From fa4d6082b6b8ead4471df500d74d062a8b4a4a32 Mon Sep 17 00:00:00 2001 From: Wencheng Wu <41542251+274869388@users.noreply.github.com> Date: Tue, 1 Mar 2022 20:55:31 +0800 Subject: [PATCH 01/10] [Fix] Adjust the order of get_classes and FileClient. (#7276) --- mmdet/datasets/custom.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmdet/datasets/custom.py b/mmdet/datasets/custom.py index e449150abce..1cda41793fa 100644 --- a/mmdet/datasets/custom.py +++ b/mmdet/datasets/custom.py @@ -74,8 +74,8 @@ def __init__(self, self.proposal_file = proposal_file self.test_mode = test_mode self.filter_empty_gt = filter_empty_gt - self.CLASSES = self.get_classes(classes) self.file_client = mmcv.FileClient(**file_client_args) + self.CLASSES = self.get_classes(classes) # join paths if data_root is specified if self.data_root is not None: From 86c2b4ddd4ddde10fc707fa8c4cf824e93bedfd6 Mon Sep 17 00:00:00 2001 From: Yue Zhou <592267829@qq.com> Date: Tue, 1 Mar 2022 20:59:00 +0800 Subject: [PATCH 02/10] delete -sv (#7277) Co-authored-by: Wenwei Zhang <40779233+ZwwWayne@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 01fdf800fc9..f76428e79d6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -265,7 +265,7 @@ jobs: - name: Build and install run: pip install -e . - name: Run unittests - run: coverage run --branch --source mmdet -m pytest tests -sv + run: coverage run --branch --source mmdet -m pytest tests - name: Generate coverage report run: | coverage xml From 93cf80962e576e336851fc421d6e8c014d4e9503 Mon Sep 17 00:00:00 2001 From: "MingJian.L" <45811724+matrixgame2018@users.noreply.github.com> Date: Thu, 3 Mar 2022 14:22:20 +0800 Subject: [PATCH 03/10] [Docs] Add Chinese version of finetune (#7178) * [Fix] Fix wrong img name in onnx2tensorrt.py (#7157) * [Docs] fix albumentations installed way (#7143) * Update finetune.md Translate the finetune.md doc to Chinese * Update finetune.md * Update finetune.md * Update finetune.md * fix lint * fx lint * fix pr Co-authored-by: Jamie Co-authored-by: BigDong --- docs/zh_cn/tutorials/finetune.md | 83 ++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/docs/zh_cn/tutorials/finetune.md b/docs/zh_cn/tutorials/finetune.md index 72792e04307..e2318187194 100644 --- a/docs/zh_cn/tutorials/finetune.md +++ b/docs/zh_cn/tutorials/finetune.md @@ -1 +1,84 @@ # 教程 7: 模型微调 + +在 COCO 数据集上预训练的检测器可以作为其他数据集(例如 CityScapes 和 KITTI 数据集)优质的预训练模型。 +本教程将指导用户如何把 [ModelZoo](../model_zoo.md) 中提供的模型用于其他数据集中并使得当前所训练的模型获得更好性能。 + +以下是在新数据集中微调模型需要的两个步骤。 + +- 按 [教程2:自定义数据集的方法](customize_dataset.md) 中的方法对新数据集添加支持中的方法对新数据集添加支持 +- 按照本教程中所讨论方法,修改配置信息 + +接下来将会以 Cityscapes Dataset 上的微调过程作为例子,具体讲述用户需要在配置中修改的五个部分。 + +## 继承基础配置 + +为了减轻编写整个配置的负担并减少漏洞的数量, MMDetection V2.0 支持从多个现有配置中继承配置信息。微调 MaskRCNN 模型的时候,新的配置信息需要使用从 `_base_/models/mask_rcnn_r50_fpn.py`中继承的配置信息来构建模型的基本结构。当使用 Cityscapes 数据集时,新的配置信息可以简便地从`_base_/datasets/cityscapes_instance.py`中继承。对于训练过程的运行设置部分,新配置需要从 `_base_/default_runtime.py`中继承。这些配置文件`configs`的目录下,用户可以选择全部内容的重新编写而不是使用继承方法。 + +```python +_base_ = [ + '../_base_/models/mask_rcnn_r50_fpn.py', + '../_base_/datasets/cityscapes_instance.py', '../_base_/default_runtime.py' +] +``` + + +## Head 的修改 +接下来新的配置还需要根据新数据集的类别数量对 Head 进行修改。只需要对 roi_head 中的 `num_classes`进行修改。修改后除了最后的预测模型的 Head 之外,预训练模型的权重的大部分都会被重新使用。 + +```python +model = dict( + pretrained=None, + roi_head=dict( + bbox_head=dict( + type='Shared2FCBBoxHead', + in_channels=256, + fc_out_channels=1024, + roi_feat_size=7, + num_classes=8, + bbox_coder=dict( + type='DeltaXYWHBBoxCoder', + target_means=[0., 0., 0., 0.], + target_stds=[0.1, 0.1, 0.2, 0.2]), + reg_class_agnostic=False, + loss_cls=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0), + loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)), + mask_head=dict( + type='FCNMaskHead', + num_convs=4, + in_channels=256, + conv_out_channels=256, + num_classes=8, + loss_mask=dict( + type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)))) +``` + +## 数据集的修改 +用户可能还需要准备数据集并编写有关数据集的配置。目前 MMDetection V2.0 的配置文件已经支持 VOC、WIDER FACE、COCO 和 Cityscapes Dataset 的数据集信息。 + +## 训练策略的修改 +微调超参数与默认的训练策略不同。它通常需要更小的学习率和更少的训练回合。 + +```python +# 优化器 +# batch size 为 8 时的 lr 配置 +optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001) +optimizer_config = dict(grad_clip=None) +# 学习策略 +lr_config = dict( + policy='step', + warmup='linear', + warmup_iters=500, + warmup_ratio=0.001, + step=[7]) +# lr_config 中的 max_epochs 和 step 需要针对自定义数据集进行专门调整 +runner = dict(max_epochs=8) +log_config = dict(interval=100) +``` + +## 使用预训练模型 + +如果要使用预训练模型时,可以在 `load_from` 中查阅新的配置信息,用户需要在训练开始之前下载好需要的模型权重,从而避免在训练过程中浪费了宝贵时间。 +```python +load_from = 'https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth' # noqa +``` From 83b8d72a6dff5d68b40e3b862f0943a7c4c41b24 Mon Sep 17 00:00:00 2001 From: Cedric Luo <26483343+chhluo@users.noreply.github.com> Date: Sun, 6 Mar 2022 17:36:35 +0800 Subject: [PATCH 04/10] set unmap_results=True in ssd_head (#7328) --- mmdet/models/dense_heads/ssd_head.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmdet/models/dense_heads/ssd_head.py b/mmdet/models/dense_heads/ssd_head.py index ee773455d1f..e362fd8016a 100644 --- a/mmdet/models/dense_heads/ssd_head.py +++ b/mmdet/models/dense_heads/ssd_head.py @@ -316,7 +316,7 @@ def loss(self, gt_bboxes_ignore_list=gt_bboxes_ignore, gt_labels_list=gt_labels, label_channels=1, - unmap_outputs=False) + unmap_outputs=True) if cls_reg_targets is None: return None (labels_list, label_weights_list, bbox_targets_list, bbox_weights_list, From 4d6f2c475a0603d37ce6d467b2b9dd7d4e80f713 Mon Sep 17 00:00:00 2001 From: Yosuke Shinya <42844407+shinya7y@users.noreply.github.com> Date: Sun, 6 Mar 2022 18:57:57 +0900 Subject: [PATCH 05/10] Update YOLOX log for non square input (#7235) --- configs/yolox/yolox_s_8x8_300e_coco.py | 2 +- configs/yolox/yolox_tiny_8x8_300e_coco.py | 2 +- mmdet/datasets/pipelines/transforms.py | 20 ++++++---- mmdet/models/detectors/yolox.py | 6 ++- mmdet/utils/__init__.py | 4 +- mmdet/utils/logger.py | 45 ++++++++++++++++++++++ tests/test_utils/test_logger.py | 47 +++++++++++++++++++++++ 7 files changed, 112 insertions(+), 14 deletions(-) create mode 100644 tests/test_utils/test_logger.py diff --git a/configs/yolox/yolox_s_8x8_300e_coco.py b/configs/yolox/yolox_s_8x8_300e_coco.py index cc730513072..2dc80882fcd 100644 --- a/configs/yolox/yolox_s_8x8_300e_coco.py +++ b/configs/yolox/yolox_s_8x8_300e_coco.py @@ -1,6 +1,6 @@ _base_ = ['../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py'] -img_scale = (640, 640) +img_scale = (640, 640) # height, width # model settings model = dict( diff --git a/configs/yolox/yolox_tiny_8x8_300e_coco.py b/configs/yolox/yolox_tiny_8x8_300e_coco.py index 3aee99ab0a6..216fbc866dd 100644 --- a/configs/yolox/yolox_tiny_8x8_300e_coco.py +++ b/configs/yolox/yolox_tiny_8x8_300e_coco.py @@ -7,7 +7,7 @@ neck=dict(in_channels=[96, 192, 384], out_channels=96), bbox_head=dict(in_channels=96, feat_channels=96)) -img_scale = (640, 640) +img_scale = (640, 640) # height, width train_pipeline = [ dict(type='Mosaic', img_scale=img_scale, pad_val=114.0), diff --git a/mmdet/datasets/pipelines/transforms.py b/mmdet/datasets/pipelines/transforms.py index fb51922886f..15f14779c46 100644 --- a/mmdet/datasets/pipelines/transforms.py +++ b/mmdet/datasets/pipelines/transforms.py @@ -11,6 +11,7 @@ from mmdet.core import PolygonMasks, find_inside_bboxes from mmdet.core.evaluation.bbox_overlaps import bbox_overlaps +from mmdet.utils import log_img_scale from ..builder import PIPELINES try: @@ -1979,9 +1980,10 @@ class Mosaic: Args: img_scale (Sequence[int]): Image size after mosaic pipeline of single - image. Default to (640, 640). + image. The shape order should be (height, width). + Default to (640, 640). center_ratio_range (Sequence[float]): Center ratio range of mosaic - output. Default to (0.5, 1.5). + output. Default to (0.5, 1.5). min_bbox_size (int | float): The minimum pixel for filtering invalid bboxes after the mosaic pipeline. Default to 0. bbox_clip_border (bool, optional): Whether to clip the objects outside @@ -2002,6 +2004,7 @@ def __init__(self, skip_filter=True, pad_val=114): assert isinstance(img_scale, tuple) + log_img_scale(img_scale, skip_square=True) self.img_scale = img_scale self.center_ratio_range = center_ratio_range self.min_bbox_size = min_bbox_size @@ -2232,7 +2235,7 @@ class MixUp: | pad | +------------------------------+ - The mixup transform steps are as follows:: + The mixup transform steps are as follows: 1. Another random image is picked by dataset and embedded in the top left patch(after padding and resizing) @@ -2241,15 +2244,15 @@ class MixUp: Args: img_scale (Sequence[int]): Image output size after mixup pipeline. - Default: (640, 640). + The shape order should be (height, width). Default: (640, 640). ratio_range (Sequence[float]): Scale ratio of mixup image. - Default: (0.5, 1.5). + Default: (0.5, 1.5). flip_ratio (float): Horizontal flip ratio of mixup image. - Default: 0.5. + Default: 0.5. pad_val (int): Pad value. Default: 114. max_iters (int): The maximum number of iterations. If the number of - iterations is greater than `max_iters`, but gt_bbox is still - empty, then the iteration is terminated. Default: 15. + iterations is greater than `max_iters`, but gt_bbox is still + empty, then the iteration is terminated. Default: 15. min_bbox_size (float): Width and height threshold to filter bboxes. If the height or width of a box is smaller than this value, it will be removed. Default: 5. @@ -2281,6 +2284,7 @@ def __init__(self, bbox_clip_border=True, skip_filter=True): assert isinstance(img_scale, tuple) + log_img_scale(img_scale, skip_square=True) self.dynamic_scale = img_scale self.ratio_range = ratio_range self.flip_ratio = flip_ratio diff --git a/mmdet/models/detectors/yolox.py b/mmdet/models/detectors/yolox.py index 2aba93f68cf..d26dc7349d8 100644 --- a/mmdet/models/detectors/yolox.py +++ b/mmdet/models/detectors/yolox.py @@ -6,6 +6,7 @@ import torch.nn.functional as F from mmcv.runner import get_dist_info +from ...utils import log_img_scale from ..builder import DETECTORS from .single_stage import SingleStageDetector @@ -29,8 +30,8 @@ class YOLOX(SingleStageDetector): of YOLOX. Default: None. pretrained (str, optional): model pretrained path. Default: None. - input_size (tuple): The model default input image size. - Default: (640, 640). + input_size (tuple): The model default input image size. The shape + order should be (height, width). Default: (640, 640). size_multiplier (int): Image size multiplication factor. Default: 32. random_size_range (tuple): The multi-scale random range during @@ -56,6 +57,7 @@ def __init__(self, init_cfg=None): super(YOLOX, self).__init__(backbone, neck, bbox_head, train_cfg, test_cfg, pretrained, init_cfg) + log_img_scale(input_size, skip_square=True) self.rank, self.world_size = get_dist_info() self._default_input_size = input_size self._input_size = input_size diff --git a/mmdet/utils/__init__.py b/mmdet/utils/__init__.py index 4bd1019e9d5..3873ec09c67 100644 --- a/mmdet/utils/__init__.py +++ b/mmdet/utils/__init__.py @@ -1,10 +1,10 @@ # Copyright (c) OpenMMLab. All rights reserved. from .collect_env import collect_env -from .logger import get_root_logger +from .logger import get_caller_name, get_root_logger, log_img_scale from .misc import find_latest_checkpoint from .setup_env import setup_multi_processes __all__ = [ 'get_root_logger', 'collect_env', 'find_latest_checkpoint', - 'setup_multi_processes' + 'setup_multi_processes', 'get_caller_name', 'log_img_scale' ] diff --git a/mmdet/utils/logger.py b/mmdet/utils/logger.py index 7e66fb6bfff..485f641b709 100644 --- a/mmdet/utils/logger.py +++ b/mmdet/utils/logger.py @@ -1,4 +1,5 @@ # Copyright (c) OpenMMLab. All rights reserved. +import inspect import logging from mmcv.utils import get_logger @@ -18,3 +19,47 @@ def get_root_logger(log_file=None, log_level=logging.INFO): logger = get_logger(name='mmdet', log_file=log_file, log_level=log_level) return logger + + +def get_caller_name(): + """Get name of caller method.""" + # this_func_frame = inspect.stack()[0][0] # i.e., get_caller_name + # callee_frame = inspect.stack()[1][0] # e.g., log_img_scale + caller_frame = inspect.stack()[2][0] # e.g., caller of log_img_scale + caller_method = caller_frame.f_code.co_name + try: + caller_class = caller_frame.f_locals['self'].__class__.__name__ + return f'{caller_class}.{caller_method}' + except KeyError: # caller is a function + return caller_method + + +def log_img_scale(img_scale, shape_order='hw', skip_square=False): + """Log image size. + + Args: + img_scale (tuple): Image size to be logged. + shape_order (str, optional): The order of image shape. + 'hw' for (height, width) and 'wh' for (width, height). + Defaults to 'hw'. + skip_square (bool, optional): Whether to skip logging for square + img_scale. Defaults to False. + + Returns: + bool: Whether to have done logging. + """ + if shape_order == 'hw': + height, width = img_scale + elif shape_order == 'wh': + width, height = img_scale + else: + raise ValueError(f'Invalid shape_order {shape_order}.') + + if skip_square and (height == width): + return False + + logger = get_root_logger() + caller = get_caller_name() + logger.info(f'image shape: height={height}, width={width} in {caller}') + + return True diff --git a/tests/test_utils/test_logger.py b/tests/test_utils/test_logger.py new file mode 100644 index 00000000000..900d6b615bf --- /dev/null +++ b/tests/test_utils/test_logger.py @@ -0,0 +1,47 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest + +from mmdet.utils import get_caller_name, log_img_scale + + +def callee_func(): + caller_name = get_caller_name() + return caller_name + + +class CallerClassForTest: + + def __init__(self): + self.caller_name = callee_func() + + +def test_get_caller_name(): + # test the case that caller is a function + caller_name = callee_func() + assert caller_name == 'test_get_caller_name' + + # test the case that caller is a method in a class + caller_class = CallerClassForTest() + assert caller_class.caller_name == 'CallerClassForTest.__init__' + + +def test_log_img_scale(): + img_scale = (800, 1333) + done_logging = log_img_scale(img_scale) + assert done_logging + + img_scale = (1333, 800) + done_logging = log_img_scale(img_scale, shape_order='wh') + assert done_logging + + with pytest.raises(ValueError): + img_scale = (1333, 800) + done_logging = log_img_scale(img_scale, shape_order='xywh') + + img_scale = (640, 640) + done_logging = log_img_scale(img_scale, skip_square=False) + assert done_logging + + img_scale = (640, 640) + done_logging = log_img_scale(img_scale, skip_square=True) + assert not done_logging From 0ea978f24b781e1416db035561e41a0a7f39b65a Mon Sep 17 00:00:00 2001 From: Cedric Luo Date: Mon, 7 Mar 2022 11:39:20 +0800 Subject: [PATCH 06/10] [Enhance] add cpu_num in cocopanoptic for pq computing (#7315) * add cpu_num in cocopanoptic for pq computing * cpu_num -> nproc * move nproc to evaluate --- .../api_wrappers/panoptic_evaluation.py | 9 ++++++-- mmdet/datasets/coco_panoptic.py | 22 +++++++++++++------ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/mmdet/datasets/api_wrappers/panoptic_evaluation.py b/mmdet/datasets/api_wrappers/panoptic_evaluation.py index 9b34201e1c5..49850e5d52b 100644 --- a/mmdet/datasets/api_wrappers/panoptic_evaluation.py +++ b/mmdet/datasets/api_wrappers/panoptic_evaluation.py @@ -170,7 +170,8 @@ def pq_compute_multi_core(matched_annotations_list, gt_folder, pred_folder, categories, - file_client=None): + file_client=None, + nproc=32): """Evaluate the metrics of Panoptic Segmentation with multithreading. Same as the function with the same name in `panopticapi`. @@ -184,6 +185,9 @@ def pq_compute_multi_core(matched_annotations_list, categories (str): The categories of the dataset. file_client (object): The file client of the dataset. If None, the backend will be set to `disk`. + nproc (int): Number of processes for panoptic quality computing. + Defaults to 32. When `nproc` exceeds the number of cpu cores, + the number of cpu cores is used. """ if PQStat is None: raise RuntimeError( @@ -195,7 +199,8 @@ def pq_compute_multi_core(matched_annotations_list, file_client_args = dict(backend='disk') file_client = mmcv.FileClient(**file_client_args) - cpu_num = multiprocessing.cpu_count() + cpu_num = min(nproc, multiprocessing.cpu_count()) + annotations_split = np.array_split(matched_annotations_list, cpu_num) print('Number of cores: {}, images per core: {}'.format( cpu_num, len(annotations_split[0]))) diff --git a/mmdet/datasets/coco_panoptic.py b/mmdet/datasets/coco_panoptic.py index cc00c13fcad..91d7ecd8b47 100644 --- a/mmdet/datasets/coco_panoptic.py +++ b/mmdet/datasets/coco_panoptic.py @@ -426,7 +426,8 @@ def evaluate_pan_json(self, result_files, outfile_prefix, logger=None, - classwise=False): + classwise=False, + nproc=32): """Evaluate PQ according to the panoptic results json file.""" imgs = self.coco.imgs gt_json = self.coco.img_ann_map # image to annotations @@ -451,9 +452,13 @@ def evaluate_pan_json(self, gt_folder = self.seg_prefix pred_folder = os.path.join(os.path.dirname(outfile_prefix), 'panoptic') - pq_stat = pq_compute_multi_core(matched_annotations_list, gt_folder, - pred_folder, self.categories, - self.file_client) + pq_stat = pq_compute_multi_core( + matched_annotations_list, + gt_folder, + pred_folder, + self.categories, + self.file_client, + nproc=nproc) metrics = [('All', None), ('Things', True), ('Stuff', False)] pq_results = {} @@ -480,6 +485,7 @@ def evaluate(self, logger=None, jsonfile_prefix=None, classwise=False, + nproc=32, **kwargs): """Evaluation in COCO Panoptic protocol. @@ -494,6 +500,9 @@ def evaluate(self, If not specified, a temp file will be created. Default: None. classwise (bool): Whether to print classwise evaluation results. Default: False. + nproc (int): Number of processes for panoptic quality computing. + Defaults to 32. When `nproc` exceeds the number of cpu cores, + the number of cpu cores is used. Returns: dict[str, float]: COCO Panoptic style evaluation metric. @@ -512,9 +521,8 @@ def evaluate(self, outfile_prefix = os.path.join(tmp_dir.name, 'results') \ if tmp_dir is not None else jsonfile_prefix if 'PQ' in metrics: - eval_pan_results = self.evaluate_pan_json(result_files, - outfile_prefix, logger, - classwise) + eval_pan_results = self.evaluate_pan_json( + result_files, outfile_prefix, logger, classwise, nproc=nproc) eval_results.update(eval_pan_results) if tmp_dir is not None: From ac7bfb3cf2352aa83fa95ef29d6f4a6405f34472 Mon Sep 17 00:00:00 2001 From: Jingwei Zhang Date: Wed, 9 Mar 2022 19:48:18 +0800 Subject: [PATCH 07/10] [Enhancement] Allow to set channel_order in LoadImageFromFile (#7258) * allow to set channel_order when loading images * fix lint * fix unit test * fix lint --- mmdet/datasets/pipelines/loading.py | 6 +++++- tests/test_data/test_pipelines/test_loading.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/mmdet/datasets/pipelines/loading.py b/mmdet/datasets/pipelines/loading.py index fc68fc3d22f..735b5573f02 100644 --- a/mmdet/datasets/pipelines/loading.py +++ b/mmdet/datasets/pipelines/loading.py @@ -37,9 +37,11 @@ class LoadImageFromFile: def __init__(self, to_float32=False, color_type='color', + channel_order='bgr', file_client_args=dict(backend='disk')): self.to_float32 = to_float32 self.color_type = color_type + self.channel_order = channel_order self.file_client_args = file_client_args.copy() self.file_client = None @@ -63,7 +65,8 @@ def __call__(self, results): filename = results['img_info']['filename'] img_bytes = self.file_client.get(filename) - img = mmcv.imfrombytes(img_bytes, flag=self.color_type) + img = mmcv.imfrombytes( + img_bytes, flag=self.color_type, channel_order=self.channel_order) if self.to_float32: img = img.astype(np.float32) @@ -79,6 +82,7 @@ def __repr__(self): repr_str = (f'{self.__class__.__name__}(' f'to_float32={self.to_float32}, ' f"color_type='{self.color_type}', " + f"channel_order='{self.channel_order}', " f'file_client_args={self.file_client_args})') return repr_str diff --git a/tests/test_data/test_pipelines/test_loading.py b/tests/test_data/test_pipelines/test_loading.py index 760b09a0327..186d28db85e 100644 --- a/tests/test_data/test_pipelines/test_loading.py +++ b/tests/test_data/test_pipelines/test_loading.py @@ -27,7 +27,7 @@ def test_load_img(self): assert results['img_shape'] == (288, 512, 3) assert results['ori_shape'] == (288, 512, 3) assert repr(transform) == transform.__class__.__name__ + \ - "(to_float32=False, color_type='color', " + \ + "(to_float32=False, color_type='color', channel_order='bgr', " + \ "file_client_args={'backend': 'disk'})" # no img_prefix From c0a500587d4cd6c22093007fc79e389a3b4013b9 Mon Sep 17 00:00:00 2001 From: jbwang1997 Date: Wed, 9 Mar 2022 19:50:36 +0800 Subject: [PATCH 08/10] [Fix] Force the inputs of `get_bboxes` in yolox_head to float32. (#7324) * Fix softnms bug * Add force_fp32 in corner_head and centripetal_head --- mmdet/models/dense_heads/centripetal_head.py | 3 +++ mmdet/models/dense_heads/corner_head.py | 5 ++++- mmdet/models/dense_heads/yolox_head.py | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/mmdet/models/dense_heads/centripetal_head.py b/mmdet/models/dense_heads/centripetal_head.py index fe85794e87a..ebc721b7623 100644 --- a/mmdet/models/dense_heads/centripetal_head.py +++ b/mmdet/models/dense_heads/centripetal_head.py @@ -2,6 +2,7 @@ import torch.nn as nn from mmcv.cnn import ConvModule, normal_init from mmcv.ops import DeformConv2d +from mmcv.runner import force_fp32 from mmdet.core import multi_apply from ..builder import HEADS, build_loss @@ -203,6 +204,7 @@ def forward_single(self, x, lvl_ind): ] return result_list + @force_fp32() def loss(self, tl_heats, br_heats, @@ -361,6 +363,7 @@ def loss_single(self, tl_hmp, br_hmp, tl_off, br_off, tl_guiding_shift, return det_loss, off_loss, guiding_loss, centripetal_loss + @force_fp32() def get_bboxes(self, tl_heats, br_heats, diff --git a/mmdet/models/dense_heads/corner_head.py b/mmdet/models/dense_heads/corner_head.py index 327094bad67..c6a2866f94a 100644 --- a/mmdet/models/dense_heads/corner_head.py +++ b/mmdet/models/dense_heads/corner_head.py @@ -6,7 +6,7 @@ import torch.nn as nn from mmcv.cnn import ConvModule, bias_init_with_prob from mmcv.ops import CornerPool, batched_nms -from mmcv.runner import BaseModule +from mmcv.runner import BaseModule, force_fp32 from mmdet.core import multi_apply from ..builder import HEADS, build_loss @@ -152,6 +152,7 @@ def __init__(self, self.train_cfg = train_cfg self.test_cfg = test_cfg + self.fp16_enabled = False self._init_layers() def _make_layers(self, out_channels, in_channels=256, feat_channels=256): @@ -509,6 +510,7 @@ def get_targets(self, return target_result + @force_fp32() def loss(self, tl_heats, br_heats, @@ -649,6 +651,7 @@ def loss_single(self, tl_hmp, br_hmp, tl_emb, br_emb, tl_off, br_off, return det_loss, pull_loss, push_loss, off_loss + @force_fp32() def get_bboxes(self, tl_heats, br_heats, diff --git a/mmdet/models/dense_heads/yolox_head.py b/mmdet/models/dense_heads/yolox_head.py index a1811c9415d..de3f93ccd36 100644 --- a/mmdet/models/dense_heads/yolox_head.py +++ b/mmdet/models/dense_heads/yolox_head.py @@ -212,6 +212,7 @@ def forward(self, feats): self.multi_level_conv_reg, self.multi_level_conv_obj) + @force_fp32(apply_to=('cls_scores', 'bbox_preds', 'objectnesses')) def get_bboxes(self, cls_scores, bbox_preds, From 56923932f275aec4b3b8bfeb6670835d34a014a7 Mon Sep 17 00:00:00 2001 From: Xiangxu-0103 Date: Wed, 9 Mar 2022 19:51:10 +0800 Subject: [PATCH 09/10] [Fix] Fix typo in FPN neck (#7347) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update readme and pretrained related (#7301) * [Docs] Add Chinese version of onnx2tensorrt.md (#7219) * Fix bug of docs * translate onnx2tensorrt.md * fix * fix end-of-file-fixer * fix some bugs * 修复链接跳转 * 修复链接跳转 * 修复链接跳转-测试1 * 修复链接跳转-测试2 * 修复链接跳转-测试2 * 修复链接跳转-测试3 * 修复链接跳转-测试5 * Fix Co-authored-by: jbwang1997 * Update useful_tools.md (#7180) * [Enhancement]: Update colab tutorials (#7310) * update colab tutorials * update * fix * fix wrong CUDA explaination * resolve comments * resolve comments * fix typo Co-authored-by: Cedric Luo Co-authored-by: tripleMu <92794867+q3394101@users.noreply.github.com> Co-authored-by: jbwang1997 Co-authored-by: kira <39787375+yangrisheng@users.noreply.github.com> Co-authored-by: Wenwei Zhang <40779233+ZwwWayne@users.noreply.github.com> --- README.md | 4 +- README_zh-CN.md | 2 +- demo/MMDet_InstanceSeg_Tutorial.ipynb | 2087 ++++++++++++++ demo/MMDet_Tutorial.ipynb | 3606 ++++++++++++++----------- docs/en/useful_tools.md | 2 +- docs/zh_cn/tutorials/onnx2tensorrt.md | 105 +- mmdet/models/necks/fpn.py | 10 +- tools/test.py | 6 +- 8 files changed, 4213 insertions(+), 1609 deletions(-) create mode 100644 demo/MMDet_InstanceSeg_Tutorial.ipynb diff --git a/README.md b/README.md index c1d63cc242e..850d90b605f 100644 --- a/README.md +++ b/README.md @@ -163,7 +163,7 @@ Results and models are available in the [model zoo](docs/en/model_zoo.md). @@ -274,7 +274,7 @@ Please refer to [get_started.md](docs/en/get_started.md) for installation. ## Getting Started Please see [get_started.md](docs/en/get_started.md) for the basic usage of MMDetection. -We provide [colab tutorial](demo/MMDet_Tutorial.ipynb), and full guidance for quick run [with existing dataset](docs/en/1_exist_data_model.md) and [with new dataset](docs/en/2_new_data_model.md) for beginners. +We provide [detection colab tutorial](demo/MMDet_Tutorial.ipynb) and [instance segmentation colab tutorial](demo/MMDet_InstanceSeg_Tutorial.ipynb), and full guidance for quick run [with existing dataset](docs/en/1_exist_data_model.md) and [with new dataset](docs/en/2_new_data_model.md) for beginners. There are also tutorials for [finetuning models](docs/en/tutorials/finetune.md), [adding new dataset](docs/en/tutorials/customize_dataset.md), [designing data pipeline](docs/en/tutorials/data_pipeline.md), [customizing models](docs/en/tutorials/customize_models.md), [customizing runtime settings](docs/en/tutorials/customize_runtime.md) and [useful tools](docs/en/useful_tools.md). Please refer to [FAQ](docs/en/faq.md) for frequently asked questions. diff --git a/README_zh-CN.md b/README_zh-CN.md index 5cb2a3384d5..59946c1ace2 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -272,7 +272,7 @@ MMDetection 是一个基于 PyTorch 的目标检测开源工具箱。它是 [Ope ## 快速入门 请参考[快速入门文档](docs/zh_cn/get_started.md)学习 MMDetection 的基本使用。 -我们提供了 [colab 教程](demo/MMDet_Tutorial.ipynb),也为新手提供了完整的运行教程,分别针对[已有数据集](docs/zh_cn/1_exist_data_model.md)和[新数据集](docs/zh_cn/2_new_data_model.md) 完整的使用指南 +我们提供了 [检测的 colab 教程](demo/MMDet_Tutorial.ipynb) 和 [实例分割的 colab 教程](demo/MMDet_InstanceSeg_Tutorial.ipynb),也为新手提供了完整的运行教程,分别针对[已有数据集](docs/zh_cn/1_exist_data_model.md)和[新数据集](docs/zh_cn/2_new_data_model.md) 完整的使用指南 我们也提供了一些进阶教程,内容覆盖了 [finetune 模型](docs/zh_cn/tutorials/finetune.md),[增加新数据集支持](docs/zh_cn/tutorials/customize_dataset.md),[设计新的数据预处理流程](docs/zh_cn/tutorials/data_pipeline.md),[增加自定义模型](docs/zh_cn/tutorials/customize_models.md),[增加自定义的运行时配置](docs/zh_cn/tutorials/customize_runtime.md),[常用工具和脚本](docs/zh_cn/useful_tools.md)。 diff --git a/demo/MMDet_InstanceSeg_Tutorial.ipynb b/demo/MMDet_InstanceSeg_Tutorial.ipynb new file mode 100644 index 00000000000..7d08f8c4058 --- /dev/null +++ b/demo/MMDet_InstanceSeg_Tutorial.ipynb @@ -0,0 +1,2087 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "aGYwt_UjIrqp" + }, + "source": [ + "# Instance Segmentation\n", + "\n", + "In this tutorial, you will learn:\n", + "- the basic structure of Mask R-CNN.\n", + "- to perform inference with a MMDetection detector.\n", + "- to train a new instance segmentation model with a new dataset.\n", + "\n", + "Let's start!\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tJxJHruNLb7Y" + }, + "source": [ + "## Install MMDetection" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Wi4LPmsR66sy", + "outputId": "76e1e1d7-5a14-428f-de09-ce652480a5bd" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "nvcc: NVIDIA (R) Cuda compiler driver\n", + "Copyright (c) 2005-2020 NVIDIA Corporation\n", + "Built on Mon_Oct_12_20:09:46_PDT_2020\n", + "Cuda compilation tools, release 11.1, V11.1.105\n", + "Build cuda_11.1.TC455_06.29190527_0\n", + "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n", + "Copyright (C) 2017 Free Software Foundation, Inc.\n", + "This is free software; see the source for copying conditions. There is NO\n", + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", + "\n" + ] + } + ], + "source": [ + "# Check nvcc version\n", + "!nvcc -V\n", + "# Check GCC version\n", + "!gcc --version" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "gkGnB9WyHSXB", + "outputId": "c36e9f21-ae04-4c91-f0fa-b22d7ba8a439" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n", + "Requirement already satisfied: torch==1.9.0+cu111 in /usr/local/lib/python3.7/dist-packages (1.9.0+cu111)\n", + "Requirement already satisfied: torchvision==0.10.0+cu111 in /usr/local/lib/python3.7/dist-packages (0.10.0+cu111)\n", + "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from torch==1.9.0+cu111) (3.10.0.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from torchvision==0.10.0+cu111) (1.19.5)\n", + "Requirement already satisfied: pillow>=5.3.0 in /usr/local/lib/python3.7/dist-packages (from torchvision==0.10.0+cu111) (7.1.2)\n", + "Looking in links: https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html\n", + "Requirement already satisfied: mmcv-full in /usr/local/lib/python3.7/dist-packages (1.4.4)\n", + "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (4.1.2.30)\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (7.1.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (1.19.5)\n", + "Requirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (21.3)\n", + "Requirement already satisfied: addict in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (2.4.0)\n", + "Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (3.13)\n", + "Requirement already satisfied: yapf in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (0.32.0)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging->mmcv-full) (3.0.7)\n", + "Cloning into 'mmdetection'...\n", + "remote: Enumerating objects: 23075, done.\u001b[K\n", + "remote: Counting objects: 100% (6/6), done.\u001b[K\n", + "remote: Compressing objects: 100% (6/6), done.\u001b[K\n", + "remote: Total 23075 (delta 1), reused 2 (delta 0), pack-reused 23069\u001b[K\n", + "Receiving objects: 100% (23075/23075), 25.84 MiB | 13.75 MiB/s, done.\n", + "Resolving deltas: 100% (16145/16145), done.\n", + "/content/mmdetection\n", + "Obtaining file:///content/mmdetection\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (3.2.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (1.19.5)\n", + "Requirement already satisfied: pycocotools in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (2.0.4)\n", + "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (1.15.0)\n", + "Requirement already satisfied: terminaltables in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (3.1.10)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (2.8.2)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (1.3.2)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (0.11.0)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (3.0.7)\n", + "Installing collected packages: mmdet\n", + " Running setup.py develop for mmdet\n", + "Successfully installed mmdet-2.21.0\n" + ] + } + ], + "source": [ + "# install dependencies: (use cu111 because colab has CUDA 11.1)\n", + "!pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html\n", + "\n", + "# install mmcv-full thus we could use CUDA operators\n", + "!pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html\n", + "\n", + "# Install mmdetection\n", + "!rm -rf mmdetection\n", + "!git clone https://github.com/open-mmlab/mmdetection.git\n", + "%cd mmdetection\n", + "\n", + "!pip install -e ." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "6hD0mmMixT0p", + "outputId": "3fdfddc5-9314-4d11-ed2b-2833795e1cb6" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.9.0+cu111 True\n", + "2.21.0\n", + "11.1\n", + "GCC 7.3\n" + ] + } + ], + "source": [ + "# Check Pytorch installation\n", + "import torch, torchvision\n", + "print(torch.__version__, torch.cuda.is_available())\n", + "\n", + "# Check MMDetection installation\n", + "import mmdet\n", + "print(mmdet.__version__)\n", + "\n", + "# Check mmcv installation\n", + "from mmcv.ops import get_compiling_cuda_version, get_compiler_version\n", + "print(get_compiling_cuda_version())\n", + "print(get_compiler_version())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gi9zw03oM4CH" + }, + "source": [ + "## Perform Inference with An MMDetection Detector" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3pFYLerc0we1" + }, + "source": [ + "### A two-stage detector\n", + "\n", + "In this tutorial, we use Mask R-CNN, a simple two-stage detector as an example.\n", + "\n", + "The high-level architecture of Mask R-CNN is shown in the following picture. More details can be found in the [paper](https://arxiv.org/abs/1703.06870).\n", + "\n", + "\"mask\n", + "\n", + "Mask R-CNN adds a mask branch based on the original Faster R-CNN. It also uses RoIAlign, a more precise version of RoIPooling for RoI feature extraction to improve the performance.\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "j4doHX4exvS1", + "outputId": "a61a514e-6408-4972-e78d-4b4ec70ec918" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-02-13 11:40:48-- https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth\n", + "Resolving download.openmmlab.com (download.openmmlab.com)... 47.252.96.28\n", + "Connecting to download.openmmlab.com (download.openmmlab.com)|47.252.96.28|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 177867103 (170M) [application/octet-stream]\n", + "Saving to: ‘checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth’\n", + "\n", + "checkpoints/mask_rc 100%[===================>] 169.63M 7.40MB/s in 23s \n", + "\n", + "2022-02-13 11:41:13 (7.28 MB/s) - ‘checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth’ saved [177867103/177867103]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir checkpoints\n", + "!wget -c https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth \\\n", + " -O checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8M5KUnX7Np3h", + "outputId": "ef343a81-a46b-4041-8f6c-a4049a5c8a4e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "load checkpoint from local path: checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth\n" + ] + }, + { + "data": { + "text/plain": [ + "MaskRCNN(\n", + " (backbone): ResNet(\n", + " (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", + " (layer1): ResLayer(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer2): ResLayer(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer3): ResLayer(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (4): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (5): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer4): ResLayer(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " )\n", + " init_cfg={'type': 'Pretrained', 'checkpoint': 'open-mmlab://detectron2/resnet50_caffe'}\n", + " (neck): FPN(\n", + " (lateral_convs): ModuleList(\n", + " (0): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1))\n", + " )\n", + " (1): ConvModule(\n", + " (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))\n", + " )\n", + " (2): ConvModule(\n", + " (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1))\n", + " )\n", + " (3): ConvModule(\n", + " (conv): Conv2d(2048, 256, kernel_size=(1, 1), stride=(1, 1))\n", + " )\n", + " )\n", + " (fpn_convs): ModuleList(\n", + " (0): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " )\n", + " (1): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " )\n", + " (2): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " )\n", + " (3): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " )\n", + " )\n", + " )\n", + " init_cfg={'type': 'Xavier', 'layer': 'Conv2d', 'distribution': 'uniform'}\n", + " (rpn_head): RPNHead(\n", + " (loss_cls): CrossEntropyLoss()\n", + " (loss_bbox): L1Loss()\n", + " (rpn_conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (rpn_cls): Conv2d(256, 3, kernel_size=(1, 1), stride=(1, 1))\n", + " (rpn_reg): Conv2d(256, 12, kernel_size=(1, 1), stride=(1, 1))\n", + " )\n", + " init_cfg={'type': 'Normal', 'layer': 'Conv2d', 'std': 0.01}\n", + " (roi_head): StandardRoIHead(\n", + " (bbox_roi_extractor): SingleRoIExtractor(\n", + " (roi_layers): ModuleList(\n", + " (0): RoIAlign(output_size=(7, 7), spatial_scale=0.25, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " (1): RoIAlign(output_size=(7, 7), spatial_scale=0.125, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " (2): RoIAlign(output_size=(7, 7), spatial_scale=0.0625, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " (3): RoIAlign(output_size=(7, 7), spatial_scale=0.03125, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " )\n", + " )\n", + " (bbox_head): Shared2FCBBoxHead(\n", + " (loss_cls): CrossEntropyLoss()\n", + " (loss_bbox): L1Loss()\n", + " (fc_cls): Linear(in_features=1024, out_features=81, bias=True)\n", + " (fc_reg): Linear(in_features=1024, out_features=320, bias=True)\n", + " (shared_convs): ModuleList()\n", + " (shared_fcs): ModuleList(\n", + " (0): Linear(in_features=12544, out_features=1024, bias=True)\n", + " (1): Linear(in_features=1024, out_features=1024, bias=True)\n", + " )\n", + " (cls_convs): ModuleList()\n", + " (cls_fcs): ModuleList()\n", + " (reg_convs): ModuleList()\n", + " (reg_fcs): ModuleList()\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " init_cfg=[{'type': 'Normal', 'std': 0.01, 'override': {'name': 'fc_cls'}}, {'type': 'Normal', 'std': 0.001, 'override': {'name': 'fc_reg'}}, {'type': 'Xavier', 'distribution': 'uniform', 'override': [{'name': 'shared_fcs'}, {'name': 'cls_fcs'}, {'name': 'reg_fcs'}]}]\n", + " (mask_roi_extractor): SingleRoIExtractor(\n", + " (roi_layers): ModuleList(\n", + " (0): RoIAlign(output_size=(14, 14), spatial_scale=0.25, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " (1): RoIAlign(output_size=(14, 14), spatial_scale=0.125, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " (2): RoIAlign(output_size=(14, 14), spatial_scale=0.0625, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " (3): RoIAlign(output_size=(14, 14), spatial_scale=0.03125, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " )\n", + " )\n", + " (mask_head): FCNMaskHead(\n", + " (loss_mask): CrossEntropyLoss()\n", + " (convs): ModuleList(\n", + " (0): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (activate): ReLU(inplace=True)\n", + " )\n", + " (1): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (activate): ReLU(inplace=True)\n", + " )\n", + " (2): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (activate): ReLU(inplace=True)\n", + " )\n", + " (3): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (activate): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (upsample): ConvTranspose2d(256, 256, kernel_size=(2, 2), stride=(2, 2))\n", + " (conv_logits): Conv2d(256, 80, kernel_size=(1, 1), stride=(1, 1))\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + ")" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import mmcv\n", + "from mmcv.runner import load_checkpoint\n", + "\n", + "from mmdet.apis import inference_detector, show_result_pyplot\n", + "from mmdet.models import build_detector\n", + "\n", + "# Choose to use a config and initialize the detector\n", + "config = 'configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco.py'\n", + "# Setup a checkpoint file to load\n", + "checkpoint = 'checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth'\n", + "\n", + "# Set the device to be used for evaluation\n", + "device='cuda:0'\n", + "\n", + "# Load the config\n", + "config = mmcv.Config.fromfile(config)\n", + "# Set pretrained to be None since we do not need pretrained model here\n", + "config.model.pretrained = None\n", + "\n", + "# Initialize the detector\n", + "model = build_detector(config.model)\n", + "\n", + "# Load checkpoint\n", + "checkpoint = load_checkpoint(model, checkpoint, map_location=device)\n", + "\n", + "# Set the classes of models for inference\n", + "model.CLASSES = checkpoint['meta']['CLASSES']\n", + "\n", + "# We need to set the model's cfg for inference\n", + "model.cfg = config\n", + "\n", + "# Convert the model to GPU\n", + "model.to(device)\n", + "# Convert the model into evaluation mode\n", + "model.eval()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pVqDQAOiKkJK" + }, + "source": [ + "From the printed model, we will find that the model does consist of the components that we described earlier. It uses ResNet as its CNN backbone, and has a RPN head and RoI Head. \n", + "The RoI Head includes box head and mask head. In addition, the model has a neural network module, named neck, directly after the CNN backbone. It is a [feature pyramid network (FPN)](https://arxiv.org/abs/1612.03144) for enhancing the multi-scale features.\n", + "\n", + "\n", + "### Inference with the detector\n", + "\n", + "The model is successfully created and loaded, let's see how good it is. We use the high-level API `inference_detector` implemented in the MMDetection. This API is created to ease the inference process. The details of the codes can be found [here](https://github.com/open-mmlab/mmdetection/blob/master/mmdet/apis/inference.py#L15)." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Wi6DRpsQPEmV", + "outputId": "8670eb7c-7e35-4c6d-edf8-9599c296fd01" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/content/mmdetection/mmdet/datasets/utils.py:69: UserWarning: \"ImageToTensor\" pipeline is replaced by \"DefaultFormatBundle\" for batch inference. It is recommended to manually replace it in the test data pipeline in your config file.\n", + " 'data pipeline in your config file.', UserWarning)\n", + "/usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at /pytorch/c10/core/TensorImpl.h:1156.)\n", + " return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n" + ] + } + ], + "source": [ + "# Use the detector to do inference\n", + "img = 'demo/demo.jpg'\n", + "result = inference_detector(model, img)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 474 + }, + "id": "UsJU5D-QPX8L", + "outputId": "61e8ec08-2e3a-49eb-fb15-67af66657f7b" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Let's plot the result\n", + "show_result_pyplot(model, img, result, score_thr=0.3)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7GrWIJywLV-V" + }, + "source": [ + "## Train a Detector on A Customized Dataset\n", + "\n", + "To train a new detector, there are usually three things to do:\n", + "1. Support a new dataset\n", + "2. Modify the config\n", + "3. Train a new detector\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "E73y5Lru-wBx" + }, + "source": [ + "### Support a new dataset\n", + "\n", + "There are three ways to support a new dataset in MMDetection: \n", + " 1. Reorganize the dataset into a COCO format\n", + " 2. Reorganize the dataset into a middle format\n", + " 3. Implement a new dataset\n", + "\n", + "We recommend the first two methods, as they are usually easier than the third.\n", + "\n", + "In this tutorial, we give an example that converts the data into COCO format because MMDetection **only support evaluating mask AP of dataset in COCO format for now**. Other methods and more advanced usages can be found in the [doc](https://mmdetection.readthedocs.io/en/latest/tutorials/customize_dataset.html).\n", + "\n", + "First, let's download the [the balloon dataset](https://github.com/matterport/Mask_RCNN/tree/master/samples/balloon)." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "rHnw5Q_nARXq", + "outputId": "5993532c-3a6f-46d2-e9ad-428cf44dae60" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-02-13 11:41:21-- https://github.com/matterport/Mask_RCNN/releases/download/v2.1/balloon_dataset.zip\n", + "Resolving github.com (github.com)... 52.192.72.89\n", + "Connecting to github.com (github.com)|52.192.72.89|:443... connected.\n", + "HTTP request sent, awaiting response... 302 Found\n", + "Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/107595270/737339e2-2b83-11e8-856a-188034eb3468?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220213%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220213T114121Z&X-Amz-Expires=300&X-Amz-Signature=cb1ba2ce6a619db5efdfb4e96bf705e7c37d7d65971b436ae970c0422623f3cf&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=107595270&response-content-disposition=attachment%3B%20filename%3Dballoon_dataset.zip&response-content-type=application%2Foctet-stream [following]\n", + "--2022-02-13 11:41:21-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/107595270/737339e2-2b83-11e8-856a-188034eb3468?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220213%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220213T114121Z&X-Amz-Expires=300&X-Amz-Signature=cb1ba2ce6a619db5efdfb4e96bf705e7c37d7d65971b436ae970c0422623f3cf&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=107595270&response-content-disposition=attachment%3B%20filename%3Dballoon_dataset.zip&response-content-type=application%2Foctet-stream\n", + "Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...\n", + "Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 38741381 (37M) [application/octet-stream]\n", + "Saving to: ‘balloon_dataset.zip’\n", + "\n", + "balloon_dataset.zip 100%[===================>] 36.95M 8.75MB/s in 4.2s \n", + "\n", + "2022-02-13 11:41:26 (8.75 MB/s) - ‘balloon_dataset.zip’ saved [38741381/38741381]\n", + "\n" + ] + } + ], + "source": [ + "# download and unzip the data\n", + "!wget https://github.com/matterport/Mask_RCNN/releases/download/v2.1/balloon_dataset.zip\n", + "!unzip balloon_dataset.zip > /dev/null" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Wuwxw1oZRtVZ", + "outputId": "4ee508e8-5acb-450d-c06b-69ceffdc85dd" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading package lists...\n", + "Building dependency tree...\n", + "Reading state information...\n", + "tree is already the newest version (1.7.0-5).\n", + "The following packages were automatically installed and are no longer required:\n", + " cuda-command-line-tools-10-0 cuda-command-line-tools-10-1\n", + " cuda-command-line-tools-11-0 cuda-compiler-10-0 cuda-compiler-10-1\n", + " cuda-compiler-11-0 cuda-cuobjdump-10-0 cuda-cuobjdump-10-1\n", + " cuda-cuobjdump-11-0 cuda-cupti-10-0 cuda-cupti-10-1 cuda-cupti-11-0\n", + " cuda-cupti-dev-11-0 cuda-documentation-10-0 cuda-documentation-10-1\n", + " cuda-documentation-11-0 cuda-documentation-11-1 cuda-gdb-10-0 cuda-gdb-10-1\n", + " cuda-gdb-11-0 cuda-gpu-library-advisor-10-0 cuda-gpu-library-advisor-10-1\n", + " cuda-libraries-10-0 cuda-libraries-10-1 cuda-libraries-11-0\n", + " cuda-memcheck-10-0 cuda-memcheck-10-1 cuda-memcheck-11-0 cuda-nsight-10-0\n", + " cuda-nsight-10-1 cuda-nsight-11-0 cuda-nsight-11-1 cuda-nsight-compute-10-0\n", + " cuda-nsight-compute-10-1 cuda-nsight-compute-11-0 cuda-nsight-compute-11-1\n", + " cuda-nsight-systems-10-1 cuda-nsight-systems-11-0 cuda-nsight-systems-11-1\n", + " cuda-nvcc-10-0 cuda-nvcc-10-1 cuda-nvcc-11-0 cuda-nvdisasm-10-0\n", + " cuda-nvdisasm-10-1 cuda-nvdisasm-11-0 cuda-nvml-dev-10-0 cuda-nvml-dev-10-1\n", + " cuda-nvml-dev-11-0 cuda-nvprof-10-0 cuda-nvprof-10-1 cuda-nvprof-11-0\n", + " cuda-nvprune-10-0 cuda-nvprune-10-1 cuda-nvprune-11-0 cuda-nvtx-10-0\n", + " cuda-nvtx-10-1 cuda-nvtx-11-0 cuda-nvvp-10-0 cuda-nvvp-10-1 cuda-nvvp-11-0\n", + " cuda-nvvp-11-1 cuda-samples-10-0 cuda-samples-10-1 cuda-samples-11-0\n", + " cuda-samples-11-1 cuda-sanitizer-11-0 cuda-sanitizer-api-10-1\n", + " cuda-toolkit-10-0 cuda-toolkit-10-1 cuda-toolkit-11-0 cuda-toolkit-11-1\n", + " cuda-tools-10-0 cuda-tools-10-1 cuda-tools-11-0 cuda-tools-11-1\n", + " cuda-visual-tools-10-0 cuda-visual-tools-10-1 cuda-visual-tools-11-0\n", + " cuda-visual-tools-11-1 default-jre dkms freeglut3 freeglut3-dev\n", + " keyboard-configuration libargon2-0 libcap2 libcryptsetup12\n", + " libdevmapper1.02.1 libfontenc1 libidn11 libip4tc0 libjansson4\n", + " libnvidia-cfg1-510 libnvidia-common-460 libnvidia-common-510\n", + " libnvidia-extra-510 libnvidia-fbc1-510 libnvidia-gl-510 libpam-systemd\n", + " libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libxfont2\n", + " libxi-dev libxkbfile1 libxmu-dev libxmu-headers libxnvctrl0 libxtst6\n", + " nsight-compute-2020.2.1 nsight-compute-2022.1.0 nsight-systems-2020.3.2\n", + " nsight-systems-2020.3.4 nsight-systems-2021.5.2 nvidia-dkms-510\n", + " nvidia-kernel-common-510 nvidia-kernel-source-510 nvidia-modprobe\n", + " nvidia-settings openjdk-11-jre policykit-1 policykit-1-gnome python3-xkit\n", + " screen-resolution-extra systemd systemd-sysv udev x11-xkb-utils\n", + " xserver-common xserver-xorg-core-hwe-18.04 xserver-xorg-video-nvidia-510\n", + "Use 'apt autoremove' to remove them.\n", + "0 upgraded, 0 newly installed, 0 to remove and 39 not upgraded.\n", + "balloon\n", + "├── train\n", + "│   ├── 10464445726_6f1e3bbe6a_k.jpg\n", + "│   ├── 12037308314_e16fb3a0f7_k.jpg\n", + "│   ├── 120853323_d4788431b9_b.jpg\n", + "│   ├── 12288043903_fe1ea17a4e_k.jpg\n", + "│   ├── 12288355124_5e340d3de3_k.jpg\n", + "│   ├── 12288446656_2c6a90e6f5_k.jpg\n", + "│   ├── 126700562_8e27720147_b.jpg\n", + "│   ├── 1297451346_5b92bdac08_b.jpg\n", + "│   ├── 14321263043_b76ef054d3_k.jpg\n", + "│   ├── 145053828_e0e748717c_b.jpg\n", + "│   ├── 14666848163_8be8e37562_k.jpg\n", + "│   ├── 15290896925_884ab33fd3_k.jpg\n", + "│   ├── 15331928994_d5b82eb368_k.jpg\n", + "│   ├── 154446334_5d41cd1375_b.jpg\n", + "│   ├── 155815494_800fc9aa32_b.jpg\n", + "│   ├── 15717689633_5f7f78c28e_k.jpg\n", + "│   ├── 16435593892_2aa8118f4a_k.jpg\n", + "│   ├── 17156759330_5af4f5a5b8_k.jpg\n", + "│   ├── 17178818589_16e58fc1e5_k.jpg\n", + "│   ├── 18849792632_aad23ad513_k.jpg\n", + "│   ├── 2311771643_f46392fcc0_b.jpg\n", + "│   ├── 2354829160_3f65a6bf6f_b.jpg\n", + "│   ├── 2385899600_94b68350af_b.jpg\n", + "│   ├── 24362039530_b151b41a52_k.jpg\n", + "│   ├── 25899693952_7c8b8b9edc_k.jpg\n", + "│   ├── 2685563244_b0d5f7eb67_b.jpg\n", + "│   ├── 2937599387_80e7d6e050_b.jpg\n", + "│   ├── 321888854_3723b6f10b_b.jpg\n", + "│   ├── 332344155_71be3a3b22_b.jpg\n", + "│   ├── 3342804367_f43682bb80_b.jpg\n", + "│   ├── 34020010494_e5cb88e1c4_k.jpg\n", + "│   ├── 351678851_e2aeebdafd_b.jpg\n", + "│   ├── 3646097131_e3e1215843_b.jpg\n", + "│   ├── 3927754171_9011487133_b.jpg\n", + "│   ├── 3945575930_ce99a7e98d_b.jpg\n", + "│   ├── 4057490235_2ffdf7d68b_b.jpg\n", + "│   ├── 4543126482_92254ef046_b.jpg\n", + "│   ├── 4552737035_3a0a4105fb_b.jpg\n", + "│   ├── 485227412_e335662bb5_b.jpg\n", + "│   ├── 4864857993_edb62f16ef_b.jpg\n", + "│   ├── 4887227769_acd2e6127d_b.jpg\n", + "│   ├── 489752654_777853a0ba_b.jpg\n", + "│   ├── 4955354786_337a598e4a_b.jpg\n", + "│   ├── 5013250607_26359229b6_b.jpg\n", + "│   ├── 5178670692_63a4365c9c_b.jpg\n", + "│   ├── 518678836_94d58e3839_b.jpg\n", + "│   ├── 5253122239_38b1e7f61c_b.jpg\n", + "│   ├── 53500107_d24b11b3c2_b.jpg\n", + "│   ├── 5560377994_cb597a4af5_b.jpg\n", + "│   ├── 5674044810_2d9e2243ff_b.jpg\n", + "│   ├── 605521662_a470fef77f_b.jpg\n", + "│   ├── 6483318883_21facf57cd_b.jpg\n", + "│   ├── 699765866_abaad7274d_b.jpg\n", + "│   ├── 7178882742_f090f3ce56_k.jpg\n", + "│   ├── 7308740338_591f27b631_k.jpg\n", + "│   ├── 7488015492_0583857ca0_k.jpg\n", + "│   ├── 8436015314_3a678c1005_k.jpg\n", + "│   ├── 873768102_7d931e5fa3_b.jpg\n", + "│   ├── 8758393087_76fcd56bd3_k.jpg\n", + "│   ├── 9210739293_2b0e0d991e_k.jpg\n", + "│   ├── 9330497995_4cf0438cb6_k.jpg\n", + "│   └── via_region_data.json\n", + "└── val\n", + " ├── 14898532020_ba6199dd22_k.jpg\n", + " ├── 16335852991_f55de7958d_k.jpg\n", + " ├── 24631331976_defa3bb61f_k.jpg\n", + " ├── 2917282960_06beee649a_b.jpg\n", + " ├── 3800636873_ace2c2795f_b.jpg\n", + " ├── 3825919971_93fb1ec581_b.jpg\n", + " ├── 410488422_5f8991f26e_b.jpg\n", + " ├── 4581425993_72b9b15fc0_b.jpg\n", + " ├── 4838031651_3e7b5ea5c7_b.jpg\n", + " ├── 5555705118_3390d70abe_b.jpg\n", + " ├── 5603212091_2dfe16ea72_b.jpg\n", + " ├── 6810773040_3d81036d05_k.jpg\n", + " ├── 8053085540_a72bd21a64_k.jpg\n", + " └── via_region_data.json\n", + "\n", + "2 directories, 76 files\n" + ] + } + ], + "source": [ + "# Check the directory structure of the tiny data\n", + "\n", + "# Install tree first\n", + "!apt-get -q install tree\n", + "!tree balloon" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 594 + }, + "id": "YnQQqzOWzE91", + "outputId": "befa7aae-a21b-42c8-c3ee-5cb4f5bf3e57" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Let's take a look at the dataset image\n", + "import mmcv\n", + "import matplotlib.pyplot as plt\n", + "\n", + "img = mmcv.imread('balloon/train/10464445726_6f1e3bbe6a_k.jpg')\n", + "plt.figure(figsize=(15, 10))\n", + "plt.imshow(mmcv.bgr2rgb(img))\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PMZvtSIl71qi" + }, + "source": [ + "After downloading the data, we need to implement a function to convert the annotation format into the COCO format. Then we can use implemented `COCODataset` to load the data and perform training and evaluation.\n", + "Let's take a look at the annotation json file.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "id": "n7rwalnPd6e1" + }, + "outputs": [], + "source": [ + "# Check the label of a single image\n", + "annotation = mmcv.load('balloon/train/via_region_data.json')" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "keLW7uqJM54Y", + "outputId": "d71b98a7-516b-48d4-852d-373f33b881f4" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'base64_img_data': '',\n", + " 'file_attributes': {},\n", + " 'filename': '34020010494_e5cb88e1c4_k.jpg',\n", + " 'fileref': '',\n", + " 'regions': {'0': {'region_attributes': {},\n", + " 'shape_attributes': {'all_points_x': [1020,\n", + " 1000,\n", + " 994,\n", + " 1003,\n", + " 1023,\n", + " 1050,\n", + " 1089,\n", + " 1134,\n", + " 1190,\n", + " 1265,\n", + " 1321,\n", + " 1361,\n", + " 1403,\n", + " 1428,\n", + " 1442,\n", + " 1445,\n", + " 1441,\n", + " 1427,\n", + " 1400,\n", + " 1361,\n", + " 1316,\n", + " 1269,\n", + " 1228,\n", + " 1198,\n", + " 1207,\n", + " 1210,\n", + " 1190,\n", + " 1177,\n", + " 1172,\n", + " 1174,\n", + " 1170,\n", + " 1153,\n", + " 1127,\n", + " 1104,\n", + " 1061,\n", + " 1032,\n", + " 1020],\n", + " 'all_points_y': [963,\n", + " 899,\n", + " 841,\n", + " 787,\n", + " 738,\n", + " 700,\n", + " 663,\n", + " 638,\n", + " 621,\n", + " 619,\n", + " 643,\n", + " 672,\n", + " 720,\n", + " 765,\n", + " 800,\n", + " 860,\n", + " 896,\n", + " 942,\n", + " 990,\n", + " 1035,\n", + " 1079,\n", + " 1112,\n", + " 1129,\n", + " 1134,\n", + " 1144,\n", + " 1153,\n", + " 1166,\n", + " 1166,\n", + " 1150,\n", + " 1136,\n", + " 1129,\n", + " 1122,\n", + " 1112,\n", + " 1084,\n", + " 1037,\n", + " 989,\n", + " 963],\n", + " 'name': 'polygon'}}},\n", + " 'size': 1115004}" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# The annotation is a dict, and its values looks like the following\n", + "annotation['34020010494_e5cb88e1c4_k.jpg1115004']" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QA1pFg-FeO3l" + }, + "source": [ + "According to the above observation, each single image has a corresponding annotation containing keys `filename` and `regions` that are necessary for training.\n", + "We need to read annotations of each image and convert them into COCO format as below:\n", + "\n", + "```python\n", + "{\n", + " \"images\": [image],\n", + " \"annotations\": [annotation], \n", + " \"categories\": [category]\n", + "}\n", + "\n", + "\n", + "image = {\n", + " \"id\": int,\n", + " \"width\": int,\n", + " \"height\": int,\n", + " \"file_name\": str,\n", + "}\n", + "\n", + "annotation = {\n", + " \"id\": int,\n", + " \"image_id\": int,\n", + " \"category_id\": int,\n", + " \"segmentation\": RLE or [polygon],\n", + " \"area\": float,\n", + " \"bbox\": [x,y,width,height],\n", + " \"iscrowd\": 0 or 1,\n", + "}\n", + "\n", + "categories = [{\n", + " \"id\": int,\n", + " \"name\": str,\n", + " \"supercategory\": str,\n", + "}]\n", + "```\n", + "**Note**: We only list the necessary keys for training, as shown above. For a full COCO format, please see [here](https://cocodataset.org/#format-data)." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "id": "GdSaB2ad0EdX" + }, + "outputs": [], + "source": [ + "import os.path as osp\n", + "\n", + "def convert_balloon_to_coco(ann_file, out_file, image_prefix):\n", + " data_infos = mmcv.load(ann_file)\n", + "\n", + " annotations = []\n", + " images = []\n", + " obj_count = 0\n", + " for idx, v in enumerate(mmcv.track_iter_progress(data_infos.values())):\n", + " filename = v['filename']\n", + " img_path = osp.join(image_prefix, filename)\n", + " height, width = mmcv.imread(img_path).shape[:2]\n", + "\n", + " images.append(dict(\n", + " id=idx,\n", + " file_name=filename,\n", + " height=height,\n", + " width=width))\n", + "\n", + " bboxes = []\n", + " labels = []\n", + " masks = []\n", + " for _, obj in v['regions'].items():\n", + " assert not obj['region_attributes']\n", + " obj = obj['shape_attributes']\n", + " px = obj['all_points_x']\n", + " py = obj['all_points_y']\n", + " poly = [(x + 0.5, y + 0.5) for x, y in zip(px, py)]\n", + " poly = [p for x in poly for p in x]\n", + "\n", + " x_min, y_min, x_max, y_max = (\n", + " min(px), min(py), max(px), max(py))\n", + "\n", + "\n", + " data_anno = dict(\n", + " image_id=idx,\n", + " id=obj_count,\n", + " category_id=0,\n", + " bbox=[x_min, y_min, x_max - x_min, y_max - y_min],\n", + " area=(x_max - x_min) * (y_max - y_min),\n", + " segmentation=[poly],\n", + " iscrowd=0)\n", + " annotations.append(data_anno)\n", + " obj_count += 1\n", + "\n", + " coco_format_json = dict(\n", + " images=images,\n", + " annotations=annotations,\n", + " categories=[{'id':0, 'name': 'balloon'}])\n", + " mmcv.dump(coco_format_json, out_file)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "G3xV5ktqlpFu", + "outputId": "af264997-25d1-4fc1-91bb-f9f1ff2c68c9" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 61/61, 29.6 task/s, elapsed: 2s, ETA: 0s\n", + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 13/13, 28.8 task/s, elapsed: 0s, ETA: 0s\n" + ] + } + ], + "source": [ + "convert_balloon_to_coco(\n", + " 'balloon/train/via_region_data.json',\n", + " 'balloon/train/annotation_coco.json',\n", + " 'balloon/train/')\n", + "convert_balloon_to_coco(\n", + " 'balloon/val/via_region_data.json',\n", + " 'balloon/val/annotation_coco.json',\n", + " 'balloon/val/')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PwqJOpBe-bMj" + }, + "source": [ + "### Modify the config\n", + "\n", + "In the next step, we need to modify the config for the training.\n", + "To accelerate the process, we finetune a detector using a pre-trained detector." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "id": "hamZrlnH-YDD" + }, + "outputs": [], + "source": [ + "from mmcv import Config\n", + "cfg = Config.fromfile('./configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_1x_coco.py')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HntziLGq-92Z" + }, + "source": [ + "Given a config that trains a Mask R-CNN on COCO dataset, we need to modify some values to use it for training on the balloon dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "pUbwD8uV0PR8", + "outputId": "0c9ba286-1111-407d-bda4-14d6a262a3e3" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Config:\n", + "model = dict(\n", + " type='MaskRCNN',\n", + " backbone=dict(\n", + " type='ResNet',\n", + " depth=50,\n", + " num_stages=4,\n", + " out_indices=(0, 1, 2, 3),\n", + " frozen_stages=1,\n", + " norm_cfg=dict(type='BN', requires_grad=False),\n", + " norm_eval=True,\n", + " style='caffe',\n", + " init_cfg=dict(\n", + " type='Pretrained',\n", + " checkpoint='open-mmlab://detectron2/resnet50_caffe')),\n", + " neck=dict(\n", + " type='FPN',\n", + " in_channels=[256, 512, 1024, 2048],\n", + " out_channels=256,\n", + " num_outs=5),\n", + " rpn_head=dict(\n", + " type='RPNHead',\n", + " in_channels=256,\n", + " feat_channels=256,\n", + " anchor_generator=dict(\n", + " type='AnchorGenerator',\n", + " scales=[8],\n", + " ratios=[0.5, 1.0, 2.0],\n", + " strides=[4, 8, 16, 32, 64]),\n", + " bbox_coder=dict(\n", + " type='DeltaXYWHBBoxCoder',\n", + " target_means=[0.0, 0.0, 0.0, 0.0],\n", + " target_stds=[1.0, 1.0, 1.0, 1.0]),\n", + " loss_cls=dict(\n", + " type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0),\n", + " loss_bbox=dict(type='L1Loss', loss_weight=1.0)),\n", + " roi_head=dict(\n", + " type='StandardRoIHead',\n", + " bbox_roi_extractor=dict(\n", + " type='SingleRoIExtractor',\n", + " roi_layer=dict(type='RoIAlign', output_size=7, sampling_ratio=0),\n", + " out_channels=256,\n", + " featmap_strides=[4, 8, 16, 32]),\n", + " bbox_head=dict(\n", + " type='Shared2FCBBoxHead',\n", + " in_channels=256,\n", + " fc_out_channels=1024,\n", + " roi_feat_size=7,\n", + " num_classes=1,\n", + " bbox_coder=dict(\n", + " type='DeltaXYWHBBoxCoder',\n", + " target_means=[0.0, 0.0, 0.0, 0.0],\n", + " target_stds=[0.1, 0.1, 0.2, 0.2]),\n", + " reg_class_agnostic=False,\n", + " loss_cls=dict(\n", + " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),\n", + " loss_bbox=dict(type='L1Loss', loss_weight=1.0)),\n", + " mask_roi_extractor=dict(\n", + " type='SingleRoIExtractor',\n", + " roi_layer=dict(type='RoIAlign', output_size=14, sampling_ratio=0),\n", + " out_channels=256,\n", + " featmap_strides=[4, 8, 16, 32]),\n", + " mask_head=dict(\n", + " type='FCNMaskHead',\n", + " num_convs=4,\n", + " in_channels=256,\n", + " conv_out_channels=256,\n", + " num_classes=1,\n", + " loss_mask=dict(\n", + " type='CrossEntropyLoss', use_mask=True, loss_weight=1.0))),\n", + " train_cfg=dict(\n", + " rpn=dict(\n", + " assigner=dict(\n", + " type='MaxIoUAssigner',\n", + " pos_iou_thr=0.7,\n", + " neg_iou_thr=0.3,\n", + " min_pos_iou=0.3,\n", + " match_low_quality=True,\n", + " ignore_iof_thr=-1),\n", + " sampler=dict(\n", + " type='RandomSampler',\n", + " num=256,\n", + " pos_fraction=0.5,\n", + " neg_pos_ub=-1,\n", + " add_gt_as_proposals=False),\n", + " allowed_border=-1,\n", + " pos_weight=-1,\n", + " debug=False),\n", + " rpn_proposal=dict(\n", + " nms_pre=2000,\n", + " max_per_img=1000,\n", + " nms=dict(type='nms', iou_threshold=0.7),\n", + " min_bbox_size=0),\n", + " rcnn=dict(\n", + " assigner=dict(\n", + " type='MaxIoUAssigner',\n", + " pos_iou_thr=0.5,\n", + " neg_iou_thr=0.5,\n", + " min_pos_iou=0.5,\n", + " match_low_quality=True,\n", + " ignore_iof_thr=-1),\n", + " sampler=dict(\n", + " type='RandomSampler',\n", + " num=512,\n", + " pos_fraction=0.25,\n", + " neg_pos_ub=-1,\n", + " add_gt_as_proposals=True),\n", + " mask_size=28,\n", + " pos_weight=-1,\n", + " debug=False)),\n", + " test_cfg=dict(\n", + " rpn=dict(\n", + " nms_pre=1000,\n", + " max_per_img=1000,\n", + " nms=dict(type='nms', iou_threshold=0.7),\n", + " min_bbox_size=0),\n", + " rcnn=dict(\n", + " score_thr=0.05,\n", + " nms=dict(type='nms', iou_threshold=0.5),\n", + " max_per_img=100,\n", + " mask_thr_binary=0.5)))\n", + "dataset_type = 'COCODataset'\n", + "data_root = 'data/coco/'\n", + "img_norm_cfg = dict(\n", + " mean=[103.53, 116.28, 123.675], std=[1.0, 1.0, 1.0], to_rgb=False)\n", + "train_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='LoadAnnotations',\n", + " with_bbox=True,\n", + " with_mask=True,\n", + " poly2mask=False),\n", + " dict(\n", + " type='Resize',\n", + " img_scale=[(1333, 640), (1333, 672), (1333, 704), (1333, 736),\n", + " (1333, 768), (1333, 800)],\n", + " multiscale_mode='value',\n", + " keep_ratio=True),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[103.53, 116.28, 123.675],\n", + " std=[1.0, 1.0, 1.0],\n", + " to_rgb=False),\n", + " dict(type='Pad', size_divisor=32),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels', 'gt_masks'])\n", + "]\n", + "test_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(1333, 800),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[103.53, 116.28, 123.675],\n", + " std=[1.0, 1.0, 1.0],\n", + " to_rgb=False),\n", + " dict(type='Pad', size_divisor=32),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + "]\n", + "data = dict(\n", + " samples_per_gpu=2,\n", + " workers_per_gpu=2,\n", + " train=dict(\n", + " type='CocoDataset',\n", + " ann_file='balloon/train/annotation_coco.json',\n", + " img_prefix='balloon/train/',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='LoadAnnotations',\n", + " with_bbox=True,\n", + " with_mask=True,\n", + " poly2mask=False),\n", + " dict(\n", + " type='Resize',\n", + " img_scale=[(1333, 640), (1333, 672), (1333, 704), (1333, 736),\n", + " (1333, 768), (1333, 800)],\n", + " multiscale_mode='value',\n", + " keep_ratio=True),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[103.53, 116.28, 123.675],\n", + " std=[1.0, 1.0, 1.0],\n", + " to_rgb=False),\n", + " dict(type='Pad', size_divisor=32),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(\n", + " type='Collect',\n", + " keys=['img', 'gt_bboxes', 'gt_labels', 'gt_masks'])\n", + " ],\n", + " classes=('balloon', )),\n", + " val=dict(\n", + " type='CocoDataset',\n", + " ann_file='balloon/val/annotation_coco.json',\n", + " img_prefix='balloon/val/',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(1333, 800),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[103.53, 116.28, 123.675],\n", + " std=[1.0, 1.0, 1.0],\n", + " to_rgb=False),\n", + " dict(type='Pad', size_divisor=32),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + " ],\n", + " classes=('balloon', )),\n", + " test=dict(\n", + " type='CocoDataset',\n", + " ann_file='balloon/val/annotation_coco.json',\n", + " img_prefix='balloon/val/',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(1333, 800),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[103.53, 116.28, 123.675],\n", + " std=[1.0, 1.0, 1.0],\n", + " to_rgb=False),\n", + " dict(type='Pad', size_divisor=32),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + " ],\n", + " classes=('balloon', )))\n", + "evaluation = dict(metric=['bbox', 'segm'], interval=12)\n", + "optimizer = dict(type='SGD', lr=0.0025, momentum=0.9, weight_decay=0.0001)\n", + "optimizer_config = dict(grad_clip=None)\n", + "lr_config = dict(\n", + " policy='step',\n", + " warmup=None,\n", + " warmup_iters=500,\n", + " warmup_ratio=0.001,\n", + " step=[8, 11])\n", + "runner = dict(type='EpochBasedRunner', max_epochs=12)\n", + "checkpoint_config = dict(interval=12)\n", + "log_config = dict(\n", + " interval=10,\n", + " hooks=[dict(type='TextLoggerHook'),\n", + " dict(type='TensorboardLoggerHook')])\n", + "custom_hooks = [dict(type='NumClassCheckHook')]\n", + "dist_params = dict(backend='nccl')\n", + "log_level = 'INFO'\n", + "load_from = 'checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth'\n", + "resume_from = None\n", + "workflow = [('train', 1)]\n", + "opencv_num_threads = 0\n", + "mp_start_method = 'fork'\n", + "work_dir = './tutorial_exps'\n", + "seed = 0\n", + "gpu_ids = range(0, 1)\n", + "\n" + ] + } + ], + "source": [ + "from mmdet.apis import set_random_seed\n", + "\n", + "# Modify dataset type and path\n", + "cfg.dataset_type = 'COCODataset'\n", + "\n", + "cfg.data.test.ann_file = 'balloon/val/annotation_coco.json'\n", + "cfg.data.test.img_prefix = 'balloon/val/'\n", + "cfg.data.test.classes = ('balloon',)\n", + "\n", + "cfg.data.train.ann_file = 'balloon/train/annotation_coco.json'\n", + "cfg.data.train.img_prefix = 'balloon/train/'\n", + "cfg.data.train.classes = ('balloon',)\n", + "\n", + "\n", + "cfg.data.val.ann_file = 'balloon/val/annotation_coco.json'\n", + "cfg.data.val.img_prefix = 'balloon/val/'\n", + "cfg.data.val.classes = ('balloon',)\n", + "\n", + "# modify num classes of the model in box head and mask head\n", + "cfg.model.roi_head.bbox_head.num_classes = 1\n", + "cfg.model.roi_head.mask_head.num_classes = 1\n", + "\n", + "# We can still the pre-trained Mask RCNN model to obtain a higher performance\n", + "cfg.load_from = 'checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth'\n", + "\n", + "# Set up working dir to save files and logs.\n", + "cfg.work_dir = './tutorial_exps'\n", + "\n", + "# The original learning rate (LR) is set for 8-GPU training.\n", + "# We divide it by 8 since we only use one GPU.\n", + "cfg.optimizer.lr = 0.02 / 8\n", + "cfg.lr_config.warmup = None\n", + "cfg.log_config.interval = 10\n", + "\n", + "# We can set the evaluation interval to reduce the evaluation times\n", + "cfg.evaluation.interval = 12\n", + "# We can set the checkpoint saving interval to reduce the storage cost\n", + "cfg.checkpoint_config.interval = 12\n", + "\n", + "# Set seed thus the results are more reproducible\n", + "cfg.seed = 0\n", + "set_random_seed(0, deterministic=False)\n", + "cfg.gpu_ids = range(1)\n", + "\n", + "# We can also use tensorboard to log the training process\n", + "cfg.log_config.hooks = [\n", + " dict(type='TextLoggerHook'),\n", + " dict(type='TensorboardLoggerHook')]\n", + "\n", + "# We can initialize the logger for training and have a look\n", + "# at the final config used for training\n", + "print(f'Config:\\n{cfg.pretty_text}')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "111W_oZV_3wa" + }, + "source": [ + "### Train a new detector\n", + "\n", + "Finally, lets initialize the dataset and detector, then train a new detector!" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "7WBWHu010PN3", + "outputId": "5c9b1ed6-393a-42fc-e16a-b5a805f394a9" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading annotations into memory...\n", + "Done (t=0.01s)\n", + "creating index...\n", + "index created!\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2022-02-13 11:41:34,851 - mmdet - INFO - load checkpoint from local path: checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth\n", + "2022-02-13 11:41:35,014 - mmdet - WARNING - The model and loaded state dict do not match exactly\n", + "\n", + "size mismatch for roi_head.bbox_head.fc_cls.weight: copying a param with shape torch.Size([81, 1024]) from checkpoint, the shape in current model is torch.Size([2, 1024]).\n", + "size mismatch for roi_head.bbox_head.fc_cls.bias: copying a param with shape torch.Size([81]) from checkpoint, the shape in current model is torch.Size([2]).\n", + "size mismatch for roi_head.bbox_head.fc_reg.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([4, 1024]).\n", + "size mismatch for roi_head.bbox_head.fc_reg.bias: copying a param with shape torch.Size([320]) from checkpoint, the shape in current model is torch.Size([4]).\n", + "size mismatch for roi_head.mask_head.conv_logits.weight: copying a param with shape torch.Size([80, 256, 1, 1]) from checkpoint, the shape in current model is torch.Size([1, 256, 1, 1]).\n", + "size mismatch for roi_head.mask_head.conv_logits.bias: copying a param with shape torch.Size([80]) from checkpoint, the shape in current model is torch.Size([1]).\n", + "2022-02-13 11:41:35,024 - mmdet - INFO - Start running, host: root@5e282d87a36d, work_dir: /content/mmdetection/tutorial_exps\n", + "2022-02-13 11:41:35,026 - mmdet - INFO - Hooks will be executed in the following order:\n", + "before_run:\n", + "(VERY_HIGH ) StepLrUpdaterHook \n", + "(NORMAL ) CheckpointHook \n", + "(LOW ) EvalHook \n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "before_train_epoch:\n", + "(VERY_HIGH ) StepLrUpdaterHook \n", + "(NORMAL ) NumClassCheckHook \n", + "(LOW ) IterTimerHook \n", + "(LOW ) EvalHook \n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "before_train_iter:\n", + "(VERY_HIGH ) StepLrUpdaterHook \n", + "(LOW ) IterTimerHook \n", + "(LOW ) EvalHook \n", + " -------------------- \n", + "after_train_iter:\n", + "(ABOVE_NORMAL) OptimizerHook \n", + "(NORMAL ) CheckpointHook \n", + "(LOW ) IterTimerHook \n", + "(LOW ) EvalHook \n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "after_train_epoch:\n", + "(NORMAL ) CheckpointHook \n", + "(LOW ) EvalHook \n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "before_val_epoch:\n", + "(NORMAL ) NumClassCheckHook \n", + "(LOW ) IterTimerHook \n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "before_val_iter:\n", + "(LOW ) IterTimerHook \n", + " -------------------- \n", + "after_val_iter:\n", + "(LOW ) IterTimerHook \n", + " -------------------- \n", + "after_val_epoch:\n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "after_run:\n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "2022-02-13 11:41:35,030 - mmdet - INFO - workflow: [('train', 1)], max: 12 epochs\n", + "2022-02-13 11:41:35,031 - mmdet - INFO - Checkpoints will be saved to /content/mmdetection/tutorial_exps by HardDiskBackend.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loading annotations into memory...\n", + "Done (t=0.00s)\n", + "creating index...\n", + "index created!\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2022-02-13 11:41:56,214 - mmdet - INFO - Epoch [1][10/31]\tlr: 2.500e-03, eta: 0:10:53, time: 1.804, data_time: 0.245, memory: 3642, loss_rpn_cls: 0.0300, loss_rpn_bbox: 0.0167, loss_cls: 0.3630, acc: 84.1797, loss_bbox: 0.4075, loss_mask: 0.4678, loss: 1.2850\n", + "2022-02-13 11:42:11,324 - mmdet - INFO - Epoch [1][20/31]\tlr: 2.500e-03, eta: 0:09:44, time: 1.517, data_time: 0.091, memory: 3692, loss_rpn_cls: 0.0335, loss_rpn_bbox: 0.0144, loss_cls: 0.1382, acc: 96.0742, loss_bbox: 0.3001, loss_mask: 0.1131, loss: 0.5993\n", + "2022-02-13 11:42:26,183 - mmdet - INFO - Epoch [1][30/31]\tlr: 2.500e-03, eta: 0:09:07, time: 1.478, data_time: 0.085, memory: 3692, loss_rpn_cls: 0.0210, loss_rpn_bbox: 0.0104, loss_cls: 0.0643, acc: 97.6172, loss_bbox: 0.1328, loss_mask: 0.1230, loss: 0.3515\n", + "2022-02-13 11:42:44,524 - mmdet - INFO - Epoch [2][10/31]\tlr: 2.500e-03, eta: 0:08:42, time: 1.666, data_time: 0.245, memory: 3692, loss_rpn_cls: 0.0078, loss_rpn_bbox: 0.0075, loss_cls: 0.0546, acc: 97.8125, loss_bbox: 0.1013, loss_mask: 0.0632, loss: 0.2345\n", + "2022-02-13 11:42:59,439 - mmdet - INFO - Epoch [2][20/31]\tlr: 2.500e-03, eta: 0:08:21, time: 1.500, data_time: 0.090, memory: 3692, loss_rpn_cls: 0.0151, loss_rpn_bbox: 0.0125, loss_cls: 0.0680, acc: 97.6172, loss_bbox: 0.1259, loss_mask: 0.1011, loss: 0.3225\n", + "2022-02-13 11:43:14,733 - mmdet - INFO - Epoch [2][30/31]\tlr: 2.500e-03, eta: 0:08:03, time: 1.526, data_time: 0.081, memory: 3692, loss_rpn_cls: 0.0103, loss_rpn_bbox: 0.0118, loss_cls: 0.0805, acc: 96.9727, loss_bbox: 0.1343, loss_mask: 0.1026, loss: 0.3394\n", + "2022-02-13 11:43:33,227 - mmdet - INFO - Epoch [3][10/31]\tlr: 2.500e-03, eta: 0:07:44, time: 1.666, data_time: 0.239, memory: 3692, loss_rpn_cls: 0.0068, loss_rpn_bbox: 0.0052, loss_cls: 0.0446, acc: 98.4961, loss_bbox: 0.0672, loss_mask: 0.0573, loss: 0.1810\n", + "2022-02-13 11:43:47,886 - mmdet - INFO - Epoch [3][20/31]\tlr: 2.500e-03, eta: 0:07:26, time: 1.467, data_time: 0.084, memory: 3692, loss_rpn_cls: 0.0047, loss_rpn_bbox: 0.0108, loss_cls: 0.0605, acc: 97.5293, loss_bbox: 0.1027, loss_mask: 0.0806, loss: 0.2593\n", + "2022-02-13 11:44:03,271 - mmdet - INFO - Epoch [3][30/31]\tlr: 2.500e-03, eta: 0:07:11, time: 1.539, data_time: 0.083, memory: 3692, loss_rpn_cls: 0.0051, loss_rpn_bbox: 0.0159, loss_cls: 0.0767, acc: 96.8652, loss_bbox: 0.1379, loss_mask: 0.0835, loss: 0.3191\n", + "2022-02-13 11:44:21,725 - mmdet - INFO - Epoch [4][10/31]\tlr: 2.500e-03, eta: 0:06:53, time: 1.679, data_time: 0.244, memory: 3692, loss_rpn_cls: 0.0037, loss_rpn_bbox: 0.0110, loss_cls: 0.0645, acc: 97.5586, loss_bbox: 0.1028, loss_mask: 0.0741, loss: 0.2560\n", + "2022-02-13 11:44:36,092 - mmdet - INFO - Epoch [4][20/31]\tlr: 2.500e-03, eta: 0:06:35, time: 1.434, data_time: 0.081, memory: 3692, loss_rpn_cls: 0.0039, loss_rpn_bbox: 0.0103, loss_cls: 0.0516, acc: 97.9102, loss_bbox: 0.0752, loss_mask: 0.0608, loss: 0.2018\n", + "2022-02-13 11:44:51,949 - mmdet - INFO - Epoch [4][30/31]\tlr: 2.500e-03, eta: 0:06:21, time: 1.579, data_time: 0.084, memory: 3796, loss_rpn_cls: 0.0052, loss_rpn_bbox: 0.0103, loss_cls: 0.0556, acc: 97.8516, loss_bbox: 0.0947, loss_mask: 0.0708, loss: 0.2367\n", + "2022-02-13 11:45:10,505 - mmdet - INFO - Epoch [5][10/31]\tlr: 2.500e-03, eta: 0:06:04, time: 1.691, data_time: 0.237, memory: 3796, loss_rpn_cls: 0.0037, loss_rpn_bbox: 0.0089, loss_cls: 0.0433, acc: 98.2715, loss_bbox: 0.0773, loss_mask: 0.0637, loss: 0.1970\n", + "2022-02-13 11:45:25,370 - mmdet - INFO - Epoch [5][20/31]\tlr: 2.500e-03, eta: 0:05:48, time: 1.490, data_time: 0.082, memory: 3855, loss_rpn_cls: 0.0036, loss_rpn_bbox: 0.0108, loss_cls: 0.0528, acc: 97.9395, loss_bbox: 0.0800, loss_mask: 0.0566, loss: 0.2038\n", + "2022-02-13 11:45:40,909 - mmdet - INFO - Epoch [5][30/31]\tlr: 2.500e-03, eta: 0:05:33, time: 1.536, data_time: 0.078, memory: 3855, loss_rpn_cls: 0.0035, loss_rpn_bbox: 0.0119, loss_cls: 0.0467, acc: 98.2715, loss_bbox: 0.0945, loss_mask: 0.0845, loss: 0.2412\n", + "2022-02-13 11:45:59,548 - mmdet - INFO - Epoch [6][10/31]\tlr: 2.500e-03, eta: 0:05:17, time: 1.700, data_time: 0.244, memory: 3855, loss_rpn_cls: 0.0028, loss_rpn_bbox: 0.0062, loss_cls: 0.0324, acc: 98.8477, loss_bbox: 0.0624, loss_mask: 0.0499, loss: 0.1536\n", + "2022-02-13 11:46:14,173 - mmdet - INFO - Epoch [6][20/31]\tlr: 2.500e-03, eta: 0:05:01, time: 1.474, data_time: 0.087, memory: 3855, loss_rpn_cls: 0.0061, loss_rpn_bbox: 0.0104, loss_cls: 0.0569, acc: 97.7441, loss_bbox: 0.0969, loss_mask: 0.0968, loss: 0.2671\n", + "2022-02-13 11:46:29,226 - mmdet - INFO - Epoch [6][30/31]\tlr: 2.500e-03, eta: 0:04:45, time: 1.503, data_time: 0.076, memory: 3855, loss_rpn_cls: 0.0040, loss_rpn_bbox: 0.0092, loss_cls: 0.0419, acc: 98.5352, loss_bbox: 0.0766, loss_mask: 0.0748, loss: 0.2066\n", + "2022-02-13 11:46:48,076 - mmdet - INFO - Epoch [7][10/31]\tlr: 2.500e-03, eta: 0:04:28, time: 1.690, data_time: 0.238, memory: 3867, loss_rpn_cls: 0.0026, loss_rpn_bbox: 0.0057, loss_cls: 0.0278, acc: 98.9355, loss_bbox: 0.0514, loss_mask: 0.0636, loss: 0.1511\n", + "2022-02-13 11:47:02,801 - mmdet - INFO - Epoch [7][20/31]\tlr: 2.500e-03, eta: 0:04:13, time: 1.487, data_time: 0.092, memory: 3867, loss_rpn_cls: 0.0026, loss_rpn_bbox: 0.0049, loss_cls: 0.0327, acc: 98.6133, loss_bbox: 0.0656, loss_mask: 0.0596, loss: 0.1654\n", + "2022-02-13 11:47:18,660 - mmdet - INFO - Epoch [7][30/31]\tlr: 2.500e-03, eta: 0:03:58, time: 1.577, data_time: 0.076, memory: 3867, loss_rpn_cls: 0.0033, loss_rpn_bbox: 0.0145, loss_cls: 0.0619, acc: 97.5000, loss_bbox: 0.1103, loss_mask: 0.0882, loss: 0.2781\n", + "2022-02-13 11:47:37,321 - mmdet - INFO - Epoch [8][10/31]\tlr: 2.500e-03, eta: 0:03:41, time: 1.696, data_time: 0.234, memory: 3867, loss_rpn_cls: 0.0019, loss_rpn_bbox: 0.0073, loss_cls: 0.0365, acc: 98.6426, loss_bbox: 0.0668, loss_mask: 0.0605, loss: 0.1730\n", + "2022-02-13 11:47:52,276 - mmdet - INFO - Epoch [8][20/31]\tlr: 2.500e-03, eta: 0:03:26, time: 1.509, data_time: 0.093, memory: 3867, loss_rpn_cls: 0.0013, loss_rpn_bbox: 0.0068, loss_cls: 0.0320, acc: 98.7695, loss_bbox: 0.0625, loss_mask: 0.0638, loss: 0.1663\n", + "2022-02-13 11:48:07,563 - mmdet - INFO - Epoch [8][30/31]\tlr: 2.500e-03, eta: 0:03:10, time: 1.519, data_time: 0.076, memory: 3867, loss_rpn_cls: 0.0024, loss_rpn_bbox: 0.0103, loss_cls: 0.0368, acc: 98.5938, loss_bbox: 0.0723, loss_mask: 0.0679, loss: 0.1897\n", + "2022-02-13 11:48:25,899 - mmdet - INFO - Epoch [9][10/31]\tlr: 2.500e-04, eta: 0:02:54, time: 1.670, data_time: 0.236, memory: 3867, loss_rpn_cls: 0.0025, loss_rpn_bbox: 0.0095, loss_cls: 0.0372, acc: 98.5449, loss_bbox: 0.0633, loss_mask: 0.0541, loss: 0.1666\n", + "2022-02-13 11:48:40,549 - mmdet - INFO - Epoch [9][20/31]\tlr: 2.500e-04, eta: 0:02:38, time: 1.473, data_time: 0.081, memory: 3867, loss_rpn_cls: 0.0015, loss_rpn_bbox: 0.0080, loss_cls: 0.0378, acc: 98.6035, loss_bbox: 0.0641, loss_mask: 0.0609, loss: 0.1724\n", + "2022-02-13 11:48:55,935 - mmdet - INFO - Epoch [9][30/31]\tlr: 2.500e-04, eta: 0:02:23, time: 1.526, data_time: 0.072, memory: 3867, loss_rpn_cls: 0.0020, loss_rpn_bbox: 0.0075, loss_cls: 0.0281, acc: 99.0137, loss_bbox: 0.0551, loss_mask: 0.0658, loss: 0.1585\n", + "2022-02-13 11:49:14,390 - mmdet - INFO - Epoch [10][10/31]\tlr: 2.500e-04, eta: 0:02:06, time: 1.681, data_time: 0.244, memory: 3867, loss_rpn_cls: 0.0013, loss_rpn_bbox: 0.0065, loss_cls: 0.0251, acc: 99.1309, loss_bbox: 0.0526, loss_mask: 0.0564, loss: 0.1418\n", + "2022-02-13 11:49:29,412 - mmdet - INFO - Epoch [10][20/31]\tlr: 2.500e-04, eta: 0:01:51, time: 1.505, data_time: 0.087, memory: 3867, loss_rpn_cls: 0.0024, loss_rpn_bbox: 0.0101, loss_cls: 0.0444, acc: 98.1543, loss_bbox: 0.0755, loss_mask: 0.0656, loss: 0.1979\n", + "2022-02-13 11:49:44,314 - mmdet - INFO - Epoch [10][30/31]\tlr: 2.500e-04, eta: 0:01:35, time: 1.488, data_time: 0.083, memory: 3867, loss_rpn_cls: 0.0020, loss_rpn_bbox: 0.0041, loss_cls: 0.0262, acc: 98.8672, loss_bbox: 0.0439, loss_mask: 0.0496, loss: 0.1258\n", + "2022-02-13 11:50:02,842 - mmdet - INFO - Epoch [11][10/31]\tlr: 2.500e-04, eta: 0:01:19, time: 1.688, data_time: 0.252, memory: 3867, loss_rpn_cls: 0.0028, loss_rpn_bbox: 0.0125, loss_cls: 0.0416, acc: 98.4570, loss_bbox: 0.0738, loss_mask: 0.0673, loss: 0.1980\n", + "2022-02-13 11:50:17,905 - mmdet - INFO - Epoch [11][20/31]\tlr: 2.500e-04, eta: 0:01:03, time: 1.510, data_time: 0.086, memory: 3867, loss_rpn_cls: 0.0013, loss_rpn_bbox: 0.0052, loss_cls: 0.0269, acc: 99.0234, loss_bbox: 0.0567, loss_mask: 0.0561, loss: 0.1461\n", + "2022-02-13 11:50:33,036 - mmdet - INFO - Epoch [11][30/31]\tlr: 2.500e-04, eta: 0:00:48, time: 1.500, data_time: 0.082, memory: 3867, loss_rpn_cls: 0.0013, loss_rpn_bbox: 0.0038, loss_cls: 0.0232, acc: 99.1113, loss_bbox: 0.0437, loss_mask: 0.0547, loss: 0.1268\n", + "2022-02-13 11:50:51,703 - mmdet - INFO - Epoch [12][10/31]\tlr: 2.500e-05, eta: 0:00:31, time: 1.700, data_time: 0.245, memory: 3867, loss_rpn_cls: 0.0016, loss_rpn_bbox: 0.0074, loss_cls: 0.0321, acc: 98.8379, loss_bbox: 0.0612, loss_mask: 0.0629, loss: 0.1653\n", + "2022-02-13 11:51:06,711 - mmdet - INFO - Epoch [12][20/31]\tlr: 2.500e-05, eta: 0:00:16, time: 1.509, data_time: 0.091, memory: 3867, loss_rpn_cls: 0.0013, loss_rpn_bbox: 0.0067, loss_cls: 0.0397, acc: 98.5059, loss_bbox: 0.0688, loss_mask: 0.0661, loss: 0.1825\n", + "2022-02-13 11:51:21,732 - mmdet - INFO - Epoch [12][30/31]\tlr: 2.500e-05, eta: 0:00:01, time: 1.503, data_time: 0.081, memory: 3867, loss_rpn_cls: 0.0012, loss_rpn_bbox: 0.0056, loss_cls: 0.0224, acc: 99.1504, loss_bbox: 0.0376, loss_mask: 0.0485, loss: 0.1153\n", + "2022-02-13 11:51:22,692 - mmdet - INFO - Saving checkpoint at 12 epochs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 13/13, 2.0 task/s, elapsed: 6s, ETA: 0s" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2022-02-13 11:51:32,064 - mmdet - INFO - Evaluating bbox...\n", + "2022-02-13 11:51:32,116 - mmdet - INFO - \n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.796\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=1000 ] = 0.904\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=1000 ] = 0.879\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.202\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.662\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.873\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.830\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=300 ] = 0.830\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=1000 ] = 0.830\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.200\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.725\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.900\n", + "\n", + "2022-02-13 11:51:32,117 - mmdet - INFO - Evaluating segm...\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading and preparing results...\n", + "DONE (t=0.00s)\n", + "creating index...\n", + "index created!\n", + "Running per image evaluation...\n", + "Evaluate annotation type *bbox*\n", + "DONE (t=0.03s).\n", + "Accumulating evaluation results...\n", + "DONE (t=0.01s).\n", + "Loading and preparing results...\n", + "DONE (t=0.00s)\n", + "creating index...\n", + "index created!\n", + "Running per image evaluation...\n", + "Evaluate annotation type *segm*\n", + "DONE (t=0.03s).\n", + "Accumulating evaluation results...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/content/mmdetection/mmdet/datasets/coco.py:478: UserWarning: The key \"bbox\" is deleted for more accurate mask AP of small/medium/large instances since v2.12.0. This does not change the overall mAP calculation.\n", + " UserWarning)\n", + "2022-02-13 11:51:32,181 - mmdet - INFO - \n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.815\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=1000 ] = 0.904\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=1000 ] = 0.857\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.126\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.707\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.886\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.852\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=300 ] = 0.852\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=1000 ] = 0.852\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.250\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.783\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.908\n", + "\n", + "2022-02-13 11:51:32,183 - mmdet - INFO - Epoch(val) [12][13]\tbbox_mAP: 0.7960, bbox_mAP_50: 0.9040, bbox_mAP_75: 0.8790, bbox_mAP_s: 0.2020, bbox_mAP_m: 0.6620, bbox_mAP_l: 0.8730, bbox_mAP_copypaste: 0.796 0.904 0.879 0.202 0.662 0.873, segm_mAP: 0.8150, segm_mAP_50: 0.9040, segm_mAP_75: 0.8570, segm_mAP_s: 0.1260, segm_mAP_m: 0.7070, segm_mAP_l: 0.8860, segm_mAP_copypaste: 0.815 0.904 0.857 0.126 0.707 0.886\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DONE (t=0.02s).\n" + ] + } + ], + "source": [ + "from mmdet.datasets import build_dataset\n", + "from mmdet.models import build_detector\n", + "from mmdet.apis import train_detector\n", + "\n", + "\n", + "# Build dataset\n", + "datasets = [build_dataset(cfg.data.train)]\n", + "\n", + "# Build the detector\n", + "model = build_detector(cfg.model)\n", + "\n", + "# Add an attribute for visualization convenience\n", + "model.CLASSES = datasets[0].CLASSES\n", + "\n", + "# Create work_dir\n", + "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n", + "train_detector(model, datasets, cfg, distributed=False, validate=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_vYQF5K2NqqI" + }, + "source": [ + "### Understand the log\n", + "From the log, we can have a basic understanding on the training process and know how well the detector is trained.\n", + "\n", + "First, since the dataset we are using is small, we loaded a Mask R-CNN model and finetune it for detection. Because the original Mask R-CNN is trained on COCO dataset that contains 80 classes but KITTI Tiny dataset only have 3 classes. Therefore, the last FC layers of the pre-trained Mask R-CNN for classification and regression have different weight shape and are not used. The pre-trained weights of mask prediction layer `mask_head.conv_logits` also does not matches the current model and is not used due to similar reason.\n", + "\n", + "Third, after training, the detector is evaluated by the default COCO-style evaluation. The results show that the detector achieves 79.6 bbox AP and 81.5 mask AP on the val dataset, not bad!\n", + "\n", + " We can also check the tensorboard to see the curves." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 840, + "resources": { + "https://localhost:6006/?tensorboardColab=true": { + "data": "PCFkb2N0eXBlIGh0bWw+PG1ldGEgbmFtZT0idGItcmVsYXRpdmUtcm9vdCIgY29udGVudD0iLi8iPjwhZG9jdHlwZSBodG1sPjwhLS0KQGxpY2Vuc2UKQ29weXJpZ2h0IDIwMTkgVGhlIFRlbnNvckZsb3cgQXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQpkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLApXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZApsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS0+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiPgo8dGl0bGU+VGVuc29yQm9hcmQ8L3RpdGxlPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTVFBQUFERUNBWUFBQURBcG81ckFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFBbHdTRmx6QUFCYWJnQUFXbTRCeFdzak9BQUFBQmwwUlZoMFUyOW1kSGRoY21VQWQzZDNMbWx1YTNOallYQmxMbTl5WjV2dVBCb0FBQmwwU1VSQlZIaWM3WjE1ZUZUVjNjYy92NXNGQ1ZSeHFWdHB0VlcyVmx4ZjYxcXRpcTBMOUdsOU5YVUJGRXBGUlRJaGhCQURDVGRBTUFFa0NZc0s3cUI5K2tENzJxZkJXaXZxVzdWYTY3NGlyZTlyYXhYMWJaVldaVEhML040LzVnNEdTR0R1ekwxejc1MDVuMzg0ek13NTU4dk0vWEsyM3prSERJR2ppemhQRjNGZTBEb01JRUVMeUdkMFBvT3dhQUF1Y1Y1YWgwVzVWUEI2a0xyeUdXT0lBRkNiL3ZTakVxZ0crdXp3S3dnZHdDMTBVQ2ZWL0RzWWhmbUxNVVFXVVJ1TEVrWUQ4eEVPMnY3R2pvWndQc3hIV014aElFdWxsSzVzNnN4bmpDR3loQzdnSkpSVzRDU2daeFAwbkg0Smk1aVU4N2pmR2czR0VMNmpUUXdFNWdHamtXN2ZkK3FHU0xLV0lzcGtNbS83SU5QZ1lBemhFMnBUUWgrcXNLZ0MrZ0x1VGJCcmVpdXdtSFlhWkRxZmVpcllBQmhEZUk0cVFpTVhBd3NRRHZQQUJEMmxOeUxVczRuYnhTYWV1V3BERW1NSUQ5RWJPUUZvUlRodCs0ditHQ0w1NTdOQXVjUjRLaTNCaGwwd2h2QUFiZUFRTEd4Z0FtRDVhb0x1NmNTZml2QUxsRXFKOFk1TDZZYWRNSWJJQUxVcHBvaHJFV1lqN0wzOWpld2FJcG5lakxLUXZXbVVjV3hMNlI5ZzJBVmppRFRSdVl6Q29nWDRCcEE5RTNSUDkveiszNEdaVXNiS1hxUWJkb014aEV1MGdhTVJtbEhPOXZBQi82T1RPdGtEUXlUU3lpTW81UkxqdFo3K0hZYWVzWUlXRUJYVVpqK2RTeXZ3UE1yWkhoVzdFV0VpbjNFYVV6a1ZvUlQ0bXljbEMrZGc4Ykl1WmFYZXdvR2VsSmtIbUJaaUQ2aE5JVVdNUjJrQUR2Q29WZGlLc0pqNHJ1c0p1cHdTUHFNS3FFS2M5WXZleWttOXprMUFFd2ZTTEtXMFkrZ1ZZNGpkb1BXY2cwVUx3bEhiWDh6Y0VHc1J5bVRhN2xlY3RZbUJGRGtyM095d3hwMk9JWkxwRFFoVDVUb2UyRjNkK1l3eFJBL29IQVpCdDdCc2IxcUZGeW1nWENyZHhTVHBJczRFV2hDTzNhWE05TFdzbzRDWVhNTWJiclRrQThZUTNWQ2IvZ2lWeUU1aDJaa1o0aU9FT1J5ZWZ0U3EybGdNWURUS2ZPQWdqM1Ixb054Q0lYVXkwWVNaSnpHR3dIbmdMT2VCNnlrc083MEhML0hBaVhmN0duUVovV252d2JEcGF3U2NNUFA5VEpnNUdFT2dzMU1JeTNiL3NLMGpUa3hxL09tU2FDdURVQnFRN1R2dHZPald2WWhRTHRma2Q1aDUzaHBDYlJkaDJhay9WQnRRS3FTRzMzZ3F0aGUwbFhPQUZ1QW9EOWRFMWxKQW1mdzBQOFBNODg0UWFsTUN6clJtcW1IWmUzNlFOaUUwOFRuTlltZDNXbE50Q3RtWDhZZ3pMZHk3UmpmcFJKaDVFUTN5ay93S004OGJReWdJZFZ5TXhRTFVaVmgyNys5M290eUpNRk5xK0lmWG10MmdpOWlQUW1ZQjF5RVVibjhqTTNPOGgxTERSRmFKb0o0S0RpbDVZUWl0NVFRa2c3RHNubDk3Rkl0eXFlWlZUOFZtaUM1aEtFb3o0aHhyNDAxWDZsbVVtRnpEMHg1S0RTVTViUWl0NFJDS3NORU13N0ozZk8wdGxCcVp5UnFQNVhxS0xtWVVRZ3ZpQkI5Q3B1WlE0RjQ2cUpKSmZPQ3AyQkNSazRaUW0ySTZQUXpMVHZ5WkNLL2VoeHVsak04OWx1d0xhbFBNL3M3M0FIdDcxRnBzUmxoSVlXNkdtZWVjSVhTRzUySFpjWVQ3RUtiSkRENzBWbTEyME9VY1FnYzI0clNVNE1YMzhoWkNqVXdJZDB2cGxwd3hoTjdBVUFwb0JzN3pjQXJ5R1pTWTFQR01oMUlEUTI5MnRyZ3FwM24ySFZrOFNwd3A4bE5lOFZCcVlFVGVFR3F6SHgzTVFyZ09uTm1Wekgvc2Q0RVoxT2JlN0lvcXdpM09JUWh3R09ERjk5V0pPTE50NDRPZGJjdVV5QnBDYlFycFlEeDRHcGE5QlZqQWwyaVNDclo2S0RkMDZISks2S1FLU1NITVBOVzB4U2JpTkxGM2RNUE1JMmtJclhGV2FMMEx5MWJnRnhRd1RXWjZ0RUVuSXVqaUZNTE0zYVlUWWVZVk1pNDdLL1plRWlsRDZFd0dFZmM4TFBzNUxNcWxqajk0cHpSNjZNMmM2VXhHN0JwbTdqYjl4V3ZyS0tSTXhyTGVPNlgrRWdsRHFPMUVlU3JWQ0gyMnY1R1pJVFlDOVdBTyswcWlOaFlITzRjeGR3OHpoMHpXYlJKUnZ4M1JDRE1QdFNIVXhtSXJvN0djSHdpOGFCWGFnVnNwWWFZNURySm5kQm45c2FqRWNzTE1JUk5ESkVtRW1mY05kNWg1YUEyaE4zUUx5L1p1R25VdFFreHMvdGREcVRtTDNzb2d4T21pWm02SVpQb0ZsSElaeHhOZWF2V0swQmxDcXhpSTFXMlFCMTYwQ2kraGxNc2NmdStwMkR4QlZ6RENpWTlLVEdKa1pvaGtlaTF4SnNzNC91cWwxa3dKalNIVXBvUXR6alFnOVBXb1ZVaHMzMXpQVWxrVDNtWTZDcWhOSVY5eFRoOFJKOHdjTWpFRUpLYTVsOUNYdVZMS1o5NHFUby9BRGFFZ1RPTml4RmtvY3YrbDlwUk9YRXZWVHAwMGhYOGdGeVgwZHZaRG1RVk1BZ295TkVReS9SNUNEYU9EWHdnTjFCQTZsUk93ZWduTFR0OFE2eERLWlk2NXVOQlA5RGFHQVl1UWJyZW5adjdiL1FtTG1JemVmcEpoMWduRUVGcnVoR1h2N3JSczkxL3FCdUpNbFhubXpLRnNvcmN6Q3B4Z1NtOWFkMFdjTVBOeDJROHp6Nm9obk83Uk5KUmFoUDQ5cW5EL3BYNE0xRlBFeldMVDZhMWlReXJvWGV4Rm5BcmdCcUMvUitPL1Q3Q1lReEdMc3hrR2t2VVdRaXM0emprTjc0d2VWYVJ1aUVSWWRoR1ZZdk4vZm1nMXVFT1hjd2lGUG9XWlg1R2RNUFBBeGhCYXlTaUVWdURycmcyaFBJb3dSZWJsUnNoeHJxRjNjd0pkenRqUXV6V2tSMUhLWmJTL1czYURIVlRiRkxPWmF4SG1BRi9hUVZIUFg4eGJXTlJJUTI1dFNzbEZWQkh1OWlITUhPNmtpSmxTNmsrWWVlRFRyZ0JheGFIQUxHQUMwbU5UbTlpMldFeWoyTG0zYlRHWDBlV1VVSnppYWVhcHB6ZWgxSE1veStRc2I4ZU5vVEJFRXEzaVA1eHUxS21Pc3NURzlpNnFaRUh1Ym16UEIvUTJCbExNUE5URE1ITjRFNHNLdVpRSHZkSVpLa09BTXhNMW5URUlGMk5oeXp4ZUNGcVR3VHYwTHI3cmhKa2ZzLzNGek0xeFAzRXE1WXJNWTlSQ1p3aEQ3cU0yRm9jN1llYVNRWmo1anVrT0xHNmhnMW9aelNmcGFqT0dNQVNHcnFZL1c3dWRaZzZadHhiQyt5ZzJGbmVrRTJadURHRUlITDJQUVhTbEVXYSt1elE4ajBXNWxQS2tHeTNHRUliUW9QZHdQc0lpaEtGQXBvYUF4S1gyRStUSDNKbXFCdGUza0dvNUU3U2NIN3JOWnpEc0NibVNCOW5LMGNCRTRKOWVGQWtjNmlhRCsydDVsU05SN3RjWTYvUjZ4OGtHZzBmSVJEcGtEQ3Zvd3hCZ01XUjNIMHM2aGloeVV1ZFF3Q3NhbzFXdjZ4YW9aekI0Z0pUeXNZd21ScHpod0crelZhOTdRMWpiRFFGUUJKUlJ4SHFOTWRZelZRYURnNHhsdll6bWZJUWZnUDk3NFROcElib3pFTGhIeTNqWWRLTU1maUNYMDBZUnc0QnlTSCtkWVUrNE53UTlHaUtCTUlJQ1h0WXBOS3JOWHVuTE1oaDJSVXBwbHl0b1JSZ0cvcHlsNWEwaEVoU2pUT2Rmdks0eFJxWWp5bURZSFhJWkc4R2Z2ZGQrR0NMSk54RGFkQXB0V3NuWDA2akhZTWc2WG8waGRzZEl1bmhkSzdCTk44b1FkaktkWlVxVnZpaXorSVRYdEpJTDA4aHZNR1NGYkxRUTNUbUNPR3UxZ2pZdDUvQU15akVZZk1IUE1jVHVHRWtCYjJpbDZVWVp3a1ZRaG9Ca04rcFRYdFZwWE9CUm1RWkRSZ1JwaUNSSG9qeWdVMm5UYXRPTk1nUkx0c2NRdlNPTXBKUFh0UXBiSjNlN0ZNVmd5Q0x1RFNFK0dTSkJDY29zK3ZDYVR1dDJacWpCa0NYQzBHWGFGZUZJNEVHdG9rMm5PbWY2R0F4WklKeUcrSUxFYkpUcFJobXlSTmdOQVZBQ3pLS0VWM1U2Mzg5eTNZWThJd3FHU0RJSStLMVcwNmJUK1ZwQUdndzVUcFFNa1VBWmliQmVxN0hWcGpoUUxZYWNJM3FHU0pEb1JtM2pWYTNtZTBHTE1lUU9VVFZFa3NFSUQra050T2tNdmhxMEdFUDBpYm9oa293a3pucXRNZDBvUTJia2lpRUErZ0d6YU9jVnJlSGNvTVVZb29rclEyamk0S2RDbjdSNHhSRGdkenJEZEtNTTduSFhRbHdkZWpOMFp5U3dYbWVhYmxSZUUzZDNHSUhiTGxOWXUwdTkwUTlsRmwyOHJETVpFYlFZUTFiWmpGTFBOaGE1eWVUT0VQdEd6aEFKbEtIQTczUW1LN1dHZzRLV1kvQVZCVmJSd1NDNURGdkd1YnVDelowaE9pTnFpQVFDaktHQURUcVRtTnFSNnY0WlVrSDVFeGFueWFXTWxURzhuMDRSN2d6UkZXbERKTmtIb1lVdW50TmFUZ3Rhak1FVDNrVzRra3M1V1VwNU9wT0MzQm5DcjgxQndYQU13aE5hWjdwUmtVWFpBdFJUd0dDNWxKVWltUjllNXM0UThad3lCQ1M3VVlXOHFYWEU5QklLZ2haa1NCRmhGVVVNbHN1d3BaU3QzaFhyQXIyZW9SU3czbFdwMFVxL2hEQkpiSjdDa0plNGF5R0tjcTZGMkpsamdTZlZacVhhSEJpMEdFUDJ5ZWN4Uk0rbzA0MkNEVnBQVEZlYmJsUStZUXpST3dOUVdsalBzenFiVTRJV1k4Z091YjVTN1FYSG9meEI2MW1wOC9oeTBHSU0vbUphaU5SSWRLTTYyYUJ6VERjcWwzRm5DTW43SUxsOVVWcll3SjkwTGljSExjYmdQYWJMbEE3SzhTaFA2UnpUamNvMVRKY3BmUkxkcUM3VGpjb2xUQXVST2ZzaXRQQVhudEhabkJTMEdFTm11RE5FZXJjSDVRZktDVmc4cFhOWnFUWUhCQzNIa0I2bWhmQVdDMkVNUld6UUJtSnFwN1ZuUFZSb013T0MxcEFKdXBxRDNYemU3USsyNXowRXJxS2pjcGI5Z0JhS2VWSWJPU1pvTWVtZ1N6aFVsN0tjWXVZRXJTVWRkQlZEOUdjOFFBZFQzZVJ6TzZoMk4rMXF6SEVLU2xuUUl0eWdOc1c2aEJnV2J5SmNUWG9uc3dTRzNzZStlaCtOV0x3QzdtK21jcmRyVENsSyt5SGZNZDltNERHZ2pTNmVvSWpIMEJ6ZGt4Q25QV2dKcWFMTEdJWFNDdEc3VjF4dExJNWdOTEFBMGcvTWRMdU5NcE14eE5zb0R3TnIyWWVIeFA3aVFkRktLb0Q3TWlnN3ZBZ2RRVXZZRTdxTVk0blRnbkptMEZyU1FlL2pMT0swSUJ5ZGFWbnVER0ZSNUdKUFVoZUovUVZyRWRya0pwN3Y3WU95a0o5cEpaZEREdDVoTGVGdElYUXArd04xeEprRTBWdEgwWlY4RFl1NUtHTzg2cDY3N3pMdG5zMkkweFVxNU5leWdBOWNLTG1lTHI1TDRnUyszRUhEMTBMb2NvcG81enJpMUNQc0U3UWV0K2hLK2lGTUE2YWo3T1hsV05XTEx0UGJDQThqdTNhRjNDQ04vRldyYUVDWmwzZ2huVkpDU01nTW9Zc1p3ZWUwQU44S1dvdGJWQkh1WlF4S0U3aWJUazJWZEF6eFJWY29UcHNzN3IwcjVKb1NGckNaVWhJNzEzSURLeHlHMEtVTXBvdEZLQmRHOFQ4YnZZc1RXVVVyK0xzM3haMGh1cmliSXVaTE14LzdJVVpzT3JXUzZ4Q2VwUHQwWDIvN29LTkJvR01JYldZQVFqVmRUSUhvUlN2clBYd0Z1QkVZVFJaK2ZWZUdrS1c4NlplUTdYVXM1R21keG5MZ1dyL3J5Z29CZFpuVXhtSkE1dE9RUWFHcjZjdFd5b0Fad0pleVZXODRGMTIyVVkzdzNoNC9GNFhXSW9CWkpyMkpzOWlIRjRCN2lLSVo3bUlVVzNnRHBaRXNtZ0ZDYWdoWndpZEFoYnRNL21qSm1DeTJFSG9UWDlWbVZtTHhLRVF2WkVUdjVIaTlpOGNSZmcwY0hvU0cwSjV2S2syczFtbU1SaGpsUHJNUGd0SWxDNGJRQmZURFlockNkR0F2dit2ekdyMkgvZW1pRGdsK1BTUzBoZ0RBNG5xVXM0RCthWmNSdkRsODZ6S3BJaXppWW9TRkVMMnJpblU1UlJSekhWM2hXUThKWlpjcGlUVHhEa0s5ZHdWNlZsTHErRFR0cWdzNWtVVThDYXdtaW1hNGt4RVU4UkpLQzRURERKQmxRNmhOb2JwOUxQdlNBcnpvdVpqc21HTVR5cXRlRnFoTkhLb0xXWTd3UitCVUw4dk9Cbm9IUS9SMkhuRGkycjRadEo2ZDhkMFFPcGsrT29VUldrRXJuL0F1VTdqS1RYNng2VVM1bXNTQ29ELzRZUTdsQXl6T2tocmU4S3pJaFZ4RUFYK0c2SVZsQStqdGpBZGVROXlIWldjTFg3NVVuVUpmbmNJb25jSktDdmtRZUJnb0F3NUNhTllxQnJvcFQrYnpISEN6SDFwM3JjeVRVdDZtZ085SU5TOTdVdG9YSEVPMFk3MkdFZkp4cTJmaXRKd0JLT2NpakVMNUVkQy9sNGRySDdxNEJWek9IaWt6RUg0RTdzeVVFZW1aNHpVSytiNU1aNlBIYWd4WklLTVdRaWV4djhZWXF6SGFVRDRrTWNBYnc1NW5oVVpxQlQ5MlU1Zk01MU1rOUx2UEhxZUEwNDBab290clEraGtCbW9aVjJ1TU5ncDVuOFJxNkVqY3hza0lTN1hTM1NxcU5ISS95cTljMWVNVmUyNHQxbExDZVZMTnY3T2d4dUFUN2k1dUwrY2lMTjVCV0U3Q0JKbnNvRHVBT00ydWN5bVRJT0NIYm1kektQZnlaUzZTQ3U5dXNqRUVnOXNydGZyaDVaeU1jTGxPNVlldXNzeG5JOG9zenpSa2lzVVN1cmhTSm9ZanpOdVFHY0ZQM1FrM2F6WDd1c3JUbHlYQUgvMFJsRElLMU1zTXlzUW1IckFXZzBjRWJ3ZzRoRTZhM0dRUW16Z1dFeUd3LzVXN1VLNlJXdXlBNmpmNFJCZ01BVEJCcC9FOU54bGtIcThBUzN6U3N6dmFFUzZUT2xZRVVMZkJaOEppQ0NIT2NyVmRCdkgxb1JaNDJ4OUpQYklaWVpUTVpFMFc2elJra2JBWUFvVEQyY3hjVjFsc3RqZ2h3OW5nWXl4R1NDMi95MUo5aGdBSWp5RVNUTmJwbk80bWc4empRZUFYUHVsSjhnN0NxVEl6OElHOHdXZkNaZ2lMT0xlcjdYS1RTeWVUZ1gvNUk0bjFGSEM2MUxMQnAvSU5JU0pzaGdBWXdtWnEzV1J3RGtTYjZZT1c1eWppVEpuSjM5TXRRQnM0eWt0QkJuOEpveUVBcXJTYUUxemxLT1lXNENrUE5UekdYcHd0TmZ3ajNRTDBScVlqVkhxb3llQXpZVFZFSVhIdTBLdFREdzBSbXpnRlhJTTNheE8vQWk2UTZYeWFiZ0hhd0d6bjFBaERoQWlySVFDT1lRQlZiakxJSEY1RjBvaVAycEc3Z1V2RVpsczZtVlVSYmFBRmNkZnRNNFNETUJzQ29GYW51enlEZEFzMjhEOXAxU1kwaWMwNHNlbE1KN3V1cG9CNTNBN0UwcXJmRURoaE4wUWY0QTY5SlBXalNhU1pyVTVFYk9vSWlsSXBOdFZ1QlNiUjFSVHdaKzRDeHFkYmhpRjR3bTRJVUU3aTYweDJrMFhtOFJEQ3oxUDhlQmN3UVdaemszdHhDZFNtbUQrekJtRk11bVVZd2tINERRRWdOR2cxUjdyS0U2Y2MyTFNIVDMxT1lyeHdaN3JTMUthRVF0cUFINlZiaGlFOFJNTVFVSUp5bTVzamJHUWVIOEp1dTBEL3dtS0V6T2IrZEVYcEF2bzVabkFWbUdnSUwxRXhCTUIzcWVhbnJuSTBjQnZ3WkEvdkpJNklzWHQ4THlYVVpnRGJXQWVjblc0Wmh2QVJKVU9Bc2tCbjhOVlVQeTZKVFR3VFNIU05raVNPaUxGNUtXMFpOZ2RTd0g4REo2ZGJoaUdjUk1zUXNEZGQzT29tZzh4bEE3RFErZXZyeFBtTzJMeVZyZ0MxT1pnQ0hpR0NwMnNiOWt6VURBRndnVlp6aGFzY2hjeEZ1WnNDVHBlR0ZPNmQ2QVdkeTJGWVBBRW1QaWxYQ2ZVcGFydWhWV3RZNXd5Yzk0aXo2and1a3dyVlpqQngxa0hxWFRaRDlJaGlDd0d3UDhyaWJGV21jeGlHeFdNWU0rUThVVFVFS0tWNkF4ZjVYbzNOOGNSNUhEalU3N29Nd1JOZFF5UllwamI3K1ZXNHp1WkVoSWVCQS95cXd4QXVvbTZJZzltV2ZzakY3dERabklueUNQaG5PRVA0aUxvaFFMaEtxem5QeXlLMW52T0o4eUJadmdIVEVEelJOd1NBc0Z5cnZIbDQxZVlIS1BjRGZiMG96eEF0Y3NNUThEVUt1VEhUUXJTT3k0QmZrZ2c3TitRaHVXSUlnR3QxQm1la20xbHRya2E0bCtpdXpSZzhJSmNNWWFIY3BsUGNkM1cwamtuQXJlVFc5MkZJZzF4N0FBWlQ0dTRBWXExak9zSlNOQVEzV2hzQ0o5Y01BY3BVcmVYRWxENDZpM293SjJQa01HK2cvTkpOQm5lRzZPSnhKUFJubXhZUTV3NjFlNy9pUzBGMEZxMG9kZGtVWnNnYW00QnFDamxPUnJzN2Z0VFZBRktXOFRmZyt6cUZFY1JwQVpjblltU1A0YlJ6QTFDLzh4dHFZOUhKQ3BTZkJLREw0Qzl4NEQ2S21DcWw2UjB3bDFhWFNacFp4MWFPUXlrbjZQdmVla09vMFZxR2QzOUpMNkdBVHU1RWpCbHlEdUZSTEk2VEt4aWJyaGtnZ3pHRXJLQkRGdE5LSjBjQWkwbWNYaEVtaW9semo5cUpWbEJ0aWhuS2FvUXJneFptOEpTM0VFcmxDczZSeTNrbDA4SXlIbFRMTWo2U1ZtSUl3NEdITWkzUFk0NmpnM0tkVEI4NldRUCtSOGNhc3NabW9KNU9oc3NWM2wxZzQ5a2lsTFN3SGpoUFkxeUNNQjg0M0t1eU0wS1l6VDVjQkp3U3RCU0RKeWh3TDUxVXlUZys4THB3ejZkZHBaVTFER0FJUWpud2lkZmxwMEZmakJseWhXZFJUcE94alBYRERPRFRPb1RZdEVzenJSUXhERmdCNXRwYVEwYThoM0lsWXpoSnJ1UnBQeXZ5ZFdGTzVyTlJtcGtJbkFUOHdjKzZERG5KVnFDSnZneVZxMWdwZ3ZwZFlWWUMyYVNaNXhTK1F3VVhBd3VBdzdKUnJ5SFNyRVdaTEZmeDEyeFdtclhRRFFHVlJhemhNNzZKVUUvQy9RYkR6cnlBY29aY3hTZ1psMTB6UUFDeFRMS0NMYklRbXdJR0E2dkEvMmJRRUFrK0FzcnB4N2RsSEU4RUpTS3c0RDZaejd0eUUyT0JVeEJ6M1cwZTB3RXNwcDBqWkJ5dFVocnNBbS9nMGE2eWtHZm94Mm5PQ25KS0I0OFpjb1oxd0xFeW5waE1ERWNJVU9DR2dNU0ZpYktBbFNoSE9PT0x6L2VZeVJCbE5tQnhvWXpuWEJuUEcwR0w2VTRvREpGRUZySlo1bU5Ud0ZHSWQ4dnhodER3TWNway9zNVJNbzdmQkMybUowSzVmMWdhZVFzbzFXck9kc0xNaCs4cGp5SDh5SVRNRDRMd20xQzFFRHNqalR4S0NjY2pUSVQwUTNvTmhsUUp0U0VBeEtaVEdsbUJNQVNsQ1dnUFdwTWhkd205SVpKSUk1dGtQdFhFT1JyQzJmODBSSi9JR0NLSnpHZUROSEloY0M2RWE0YkNFSDBpWjRnazBzZzZQdUpZSjh3OEZIUFlodWdUV1VPQXM0MTFIcTNBRWM0RkttSGJ4bXFJR0pFMlJCSzVrWS9rUm1MRU9SRjRQR2c5aHVpU0U0WklJbzI4S1BNNEUvZ0I4SGJRZWd6Ukk2Y01rVVFhYUdNTDMwS3BCajROV284aE91U2tJUUNrbWEweWp5WUtHWXFhYmF5RzFNaFpReVFSbTQzU3dFU1VreENlQ2xwUHhQZ3Y0dHN2dmM4TGN0NFFTYVNCNTVqTjZRaWx3RHRCNndrNWJ3TG55eVQrVXlibjExZ3Nid3dCempiVzJheWhnR0Vrem4zZEZyU21rUEV4U2puL1pMaE00cmRCaXdtQ3ZESkVFckhaSXJPeHNSZ0VyQ0lMcHptRW5FNWdCVVVNa2NtMGlrMW4wSUtDSWk4TmtVUnMzcFhaaktXTHM0Q1hndFlUQ01vanhEbE9Kak5SSnZMUG9PVUVUVjRiSW9uTTRmY0lKK1RaTnRhL0lKUktHU01reG10Qml3a0x4aEFPWWhNWG01WEFrWkRUMjFnL1E2a0hoc3Rrc3l0eFo0d2hka0pzUGhNYm13S0dRMDQ5TUhGZ0ZjcVJFc09Xc3B3MWZFYUVjZ3RwR0pCYS9nS1VhajNuQU0xRWV4dnJNeWd4S2VlWm9JV0VIZE5DN0FHWnhTTW94ME1rdDdHK0MxeEpqRk9NR1ZMREdDSUZ4S1pUNmxoQm5LRWtia3NLKzdUa0ZxQ2VPSU9sUER1SEJPY0t4aEF1RUp1UHBZNFlCUXhIZVRCb1BUMmd3QnE2K0taTXdaWUtjMzZ1Vzh3WUlnMmtoamVCQzNRT0kwaTBHTU1DbGdUQzgwQk1wcGhyQnpMQnRCQVpJTFdzNDhzY0UvQnRyTzhqVE9UZmZOdVlJWE9NSVRKRUp0SWh0YlJpY1FTUzFXMnM3Y0JpaWhncVUxZ2h0Z2x2OXdKakNJK1FHajZTR21MQXQ4SDM0OXpYWWpGTXBoS1RzbERjNDVjem1ER0V4OGdNWGdETzBMbU13cUxWNCtMZlJEaGJwdktZeCtVYURQNmpOaVhheUJsQjZ6Q2t6djhEUWQ3UXJNYkxSMUFBQUFBQVNVVk9SSzVDWUlJPSI+CjxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFNUUFBQURFQ0FZQUFBREFwbzVyQUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQUFsd1NGbHpBQUJhYmdBQVdtNEJ4V3NqT0FBQUFCbDBSVmgwVTI5bWRIZGhjbVVBZDNkM0xtbHVhM05qWVhCbExtOXlaNXZ1UEJvQUFCbDBTVVJCVkhpYzdaMTVlRlRWM2NjL3Y1c0ZDVlJ4cVZ0cHRWVzJWbHhmNjFxdGlxMEw5R2w5TlhVQkZFcEZSVEloaEJBRENUZEFNQUVrQ1lzSzdxQjkra0Q3MnFmQldpdnFXN1ZhNjc0aXJlOXJheFgxYlpWV1pUSEwvTjQvNWc0R1NHRHV6TDF6NzUwNW4zODR6TXc1NTh2TS9YSzIzemtIRElHaml6aFBGM0ZlMERvTUlFRUx5R2QwUG9Pd2FBQXVjVjVhaDBXNVZQQjZrTHJ5R1dPSUFGQ2IvdlNqRXFnRyt1endLd2dkd0MxMFVDZlYvRHNZaGZtTE1VUVdVUnVMRWtZRDh4RU8ydjdHam9ad1BzeEhXTXhoSUV1bGxLNXM2c3huakNHeWhDN2dKSlJXNENTZ1p4UDBuSDRKaTVpVTg3amZHZzNHRUw2alRRd0U1Z0dqa1c3ZmQrcUdTTEtXSXNwa01tLzdJTlBnWUF6aEUycFRRaCtxc0tnQytnTHVUYkJyZWl1d21IWWFaRHFmZWlyWUFCaERlSTRxUWlNWEF3c1FEdlBBQkQybE55TFVzNG5ieFNhZXVXcERFbU1JRDlFYk9RRm9SVGh0KzR2K0dDTDU1N05BdWNSNEtpM0JobDB3aHZBQWJlQVFMR3hnQW1ENWFvTHU2Y1NmaXZBTGxFcUo4WTVMNllhZE1JYklBTFVwcG9ockVXWWo3TDM5amV3YUlwbmVqTEtRdldtVWNXeEw2UjlnMkFWamlEVFJ1WXpDb2dYNEJwQTlFM1JQOS96KzM0R1pVc2JLWHFRYmRvTXhoRXUwZ2FNUm1sSE85dkFCLzZPVE90a0RReVRTeWlNbzVSTGp0WjcrSFlhZXNZSVdFQlhVWmorZFN5dndQTXJaSGhXN0VXRWluM0VhVXprVm9SVDRteWNsQytkZzhiSXVaYVhld29HZWxKa0htQlppRDZoTklVV01SMmtBRHZDb1ZkaUtzSmo0cnVzSnVwd1NQcU1LcUVLYzlZdmV5a205emsxQUV3ZlNMS1cwWStnVlk0amRvUFdjZzBVTHdsSGJYOHpjRUdzUnltVGE3bGVjdFltQkZEa3IzT3l3eHAyT0laTHBEUWhUNVRvZTJGM2QrWXd4UkEvb0hBWkJ0N0JzYjFxRkZ5bWdYQ3JkeFNUcElzNEVXaENPM2FYTTlMV3NvNENZWE1NYmJyVGtBOFlRM1ZDYi9naVZ5RTVoMlprWjRpT0VPUnllZnRTcTJsZ01ZRFRLZk9BZ2ozUjFvTnhDSVhVeTBZU1pKekdHd0huZ0xPZUI2eWtzTzcwSEwvSEFpWGY3R25RWi9XbnZ3YkRwYXdTY01QUDlUSmc1R0VPZ3MxTUl5M2Ivc0swalRreHEvT21TYUN1RFVCcVE3VHZ0dk9qV3ZZaFFMdGZrZDVoNTNocENiUmRoMmFrL1ZCdFFLcVNHMzNncXRoZTBsWE9BRnVBb0Q5ZEUxbEpBbWZ3MFA4UE04ODRRYWxNQ3pyUm1xbUhaZTM2UU5pRTA4VG5OWW1kM1dsTnRDdG1YOFlnekxkeTdSamZwUkpoNUVRM3lrL3dLTTg4YlF5Z0lkVnlNeFFMVVpWaDI3Kzkzb3R5Sk1GTnErSWZYbXQyZ2k5aVBRbVlCMXlFVWJuOGpNM084aDFMRFJGYUpvSjRLRGlsNVlRaXQ1UVFrZzdEc25sOTdGSXR5cWVaVlQ4Vm1pQzVoS0VvejRoeHI0MDFYNmxtVW1GekQweDVLRFNVNWJRaXQ0UkNLc05FTXc3SjNmTzB0bEJxWnlScVA1WHFLTG1ZVVFndmlCQjlDcHVaUTRGNDZxSkpKZk9DcDJCQ1JrNFpRbTJJNlBRekxUdnlaQ0svZWh4dWxqTTg5bHV3TGFsUE0vczczQUh0NzFGcHNSbGhJWVc2R21lZWNJWFNHNTJIWmNZVDdFS2JKREQ3MFZtMTIwT1VjUWdjMjRyU1U0TVgzOGhaQ2pVd0lkMHZwbHB3eGhON0FVQXBvQnM3emNBcnlHWlNZMVBHTWgxSURRMjkydHJncXAzbjJIVms4U3B3cDhsTmU4VkJxWUVUZUVHcXpIeDNNUXJnT25ObVZ6SC9zZDRFWjFPYmU3SW9xd2kzT0lRaHdHT0RGOTlXSk9MTnQ0NE9kYmN1VXlCcENiUXJwWUR4NEdwYTlCVmpBbDJpU0NyWjZLRGQwNkhKSzZLUUtTU0hNUE5XMHhTYmlOTEYzZE1QTUkya0lyWEZXYUwwTHkxYmdGeFF3VFdaNnRFRW5JdWppRk1MTTNhWVRZZVlWTWk0N0svWmVFaWxENkV3R0VmYzhMUHM1TE1xbGpqOTRwelI2Nk0yYzZVeEc3QnBtN2piOXhXdnJLS1JNeHJMZU82WCtFZ2xEcU8xRWVTclZDSDIydjVHWklUWUM5V0FPKzBxaU5oWUhPNGN4ZHc4emgweldiUkpSdngzUkNETVB0U0hVeG1Jcm83R2NId2k4YUJYYWdWc3BZYVk1RHJKbmRCbjlzYWpFY3NMTUlSTkRKRW1FbWZjTmQ1aDVhQTJoTjNRTHkvWnVHblV0UWt4cy90ZERxVG1MM3NvZ3hPbWlabTZJWlBvRmxISVp4eE5lYXZXSzBCbENxeGlJMVcyUUIxNjBDaStobE1zY2Z1K3AyRHhCVnpEQ2lZOUtUR0prWm9oa2VpMXhKc3M0L3VxbDFrd0pqU0hVcG9RdHpqUWc5UFdvVlVoczMxelBVbGtUM21ZNkNxaE5JVjl4VGg4Uko4d2NNakVFSkthNWw5Q1h1VkxLWjk0cVRvL0FEYUVnVE9OaXhGa29jditsOXBST1hFdlZUcDAwaFg4Z0Z5WDBkdlpEbVFWTUFnb3lORVF5L1I1Q0RhT0RYd2dOMUJBNmxST3dlZ25MVHQ4UTZ4REtaWTY1dU5CUDlEYUdBWXVRYnJlblp2N2IvUW1MbUl6ZWZwSmgxZ25FRUZydWhHWHY3clJzOTEvcUJ1Sk1sWG5tektGc29yY3pDcHhnU205YWQwV2NNUE54MlE4eno2b2huTzdSTkpSYWhQNDlxbkQvcFg0TTFGUEV6V0xUNmExaVF5cm9YZXhGbkFyZ0JxQy9SK08vVDdDWVF4R0xzeGtHa3ZVV1FpczR6amtONzR3ZVZhUnVpRVJZZGhHVll2Ti9mbWcxdUVPWGN3aUZQb1daWDVHZE1QUEF4aEJheVNpRVZ1RHJyZzJoUElvd1JlYmxSc2h4cnFGM2N3SmR6dGpRdXpXa1IxSEtaYlMvVzNhREhWVGJGTE9aYXhIbUFGL2FRVkhQWDh4YldOUklRMjV0U3NsRlZCSHU5aUhNSE82a2lKbFM2aytZZWVEVHJnQmF4YUhBTEdBQzBtTlRtOWkyV0V5ajJMbTNiVEdYMGVXVVVKemlhZWFwcHplaDFITW95K1FzYjhlTm9UQkVFcTNpUDV4dTFLbU9zc1RHOWk2cVpFSHVibXpQQi9RMkJsTE1QTlRETUhONEU0c0t1WlFIdmRJWktrT0FNeE0xblRFSUYyTmh5enhlQ0ZxVHdUdjBMcjdyaEprZnMvM0Z6TTF4UDNFcTVZck1ZOVJDWndoRDdxTTJGb2M3WWVhU1FaajVqdWtPTEc2aGcxb1p6U2ZwYWpPR01BU0dycVkvVzd1ZFpnNlp0eGJDK3lnMkZuZWtFMlp1REdFSUhMMlBRWFNsRVdhK3V6UThqMFc1bFBLa0d5M0dFSWJRb1Bkd1BzSWloS0ZBcG9hQXhLWDJFK1RIM0ptcUJ0ZTNrR281RTdTY0g3ck5aekRzQ2JtU0I5bkswY0JFNEo5ZUZBa2M2aWFEKzJ0NWxTTlI3dGNZNi9SNng4a0dnMGZJUkRwa0RDdm93eEJnTVdSM0gwczZoaWh5VXVkUXdDc2FvMVd2Nnhhb1p6QjRnSlR5c1l3bVJwemh3Ryt6VmE5N1ExamJEUUZRQkpSUnhIcU5NZFl6VlFhRGc0eGx2WXptZklRZmdQOTc0VE5wSWJvekVMaEh5M2pZZEtNTWZpQ1gwMFlSdzRCeVNIK2RZVSs0TndROUdpS0JNSUlDWHRZcE5Lck5YdW5MTWhoMlJVcHBseXRvUlJnRy9weWw1YTBoRWhTalRPZGZ2SzR4UnFZanltRFlIWElaRzhHZnZkZCtHQ0xKTnhEYWRBcHRXc25YMDZqSFlNZzZYbzBoZHNkSXVuaGRLN0JOTjhvUWRqS2RaVXFWdmlpeitJVFh0SklMMDhodk1HU0ZiTFFRM1RtQ09HdTFnall0NS9BTXlqRVlmTUhQTWNUdUdFa0JiMmlsNlVZWndrVlFob0JrTitwVFh0VnBYT0JSbVFaRFJnUnBpQ1JIb2p5Z1UyblRhdE9OTWdSTHRzY1F2U09NcEpQWHRRcGJKM2U3Rk1WZ3lDTHVEU0UrR1NKQkNjb3MrdkNhVHV0MlpxakJrQ1hDMEdYYUZlRkk0RUd0b2sybk9tZjZHQXhaSUp5RytJTEViSlRwUmhteVJOZ05BVkFDektLRVYzVTYzODl5M1lZOEl3cUdTRElJK0sxVzA2YlQrVnBBR2d3NVRwUU1rVUFaaWJCZXE3SFZwamhRTFlhY0kzcUdTSkRvUm0zalZhM21lMEdMTWVRT1VUVkVrc0VJRCtrTnRPa012aHEwR0VQMGlib2hrb3drem5xdE1kMG9RMmJraWlFQStnR3phT2NWcmVIY29NVVlvb2tyUTJqaTRLZENuN1I0eFJEZ2R6ckRkS01NN25IWFFsd2Rlak4wWnlTd1htZWFibFJlRTNkM0dJSGJMbE5ZdTB1OTBROWxGbDI4ckRNWkViUVlRMWJaakZMUE5oYTV5ZVRPRVB0R3poQUpsS0hBNzNRbUs3V0dnNEtXWS9BVkJWYlJ3U0M1REZ2R3VidUN6WjBoT2lOcWlBUUNqS0dBRFRxVG1OcVI2djRaVWtINUV4YW55YVdNbFRHOG4wNFI3Z3pSRldsREpOa0hvWVV1bnROYVRndGFqTUVUM2tXNGtrczVXVXA1T3BPQzNCbkNyODFCd1hBTXdoTmFaN3BSa1VYWkF0UlR3R0M1bEpVaW1SOWU1czRROFp3eUJDUzdVWVc4cVhYRTlCSUtnaFprU0JGaEZVVU1sc3V3cFpTdDNoWHJBcjJlb1JTdzNsV3AwVXEvaERCSmJKN0NrSmU0YXlHS2NxNkYySmxqZ1NmVlpxWGFIQmkwR0VQMnllY3hSTStvMDQyQ0RWcFBURmViYmxRK1lRelJPd05RV2xqUHN6cWJVNElXWThnT3ViNVM3UVhIb2Z4QjYxbXA4L2h5MEdJTS9tSmFpTlJJZEtNNjJhQnpURGNxbDNGbkNNbjdJTGw5VVZyWXdKOTBMaWNITGNiZ1BhYkxsQTdLOFNoUDZSelRqY28xVEpjcGZSTGRxQzdUamNvbFRBdVJPZnNpdFBBWG50SFpuQlMwR0VObXVETkVlcmNINVFmS0NWZzhwWE5acVRZSEJDM0hrQjZtaGZBV0MyRU1SV3pRQm1KcXA3Vm5QVlJvTXdPQzFwQUp1cHFEM1h6ZTdRKzI1ejBFcnFLamNwYjlnQmFLZVZJYk9TWm9NZW1nU3poVWw3S2NZdVlFclNVZGRCVkQ5R2M4UUFkVDNlUnpPNmgyTisxcXpIRUtTbG5RSXR5Z05zVzZoQmdXYnlKY1RYb25zd1NHM3NlK2VoK05XTHdDN20rbWNyZHJUQ2xLK3lIZk1kOW00REdnalM2ZW9JakgwQnpka3hDblBXZ0pxYUxMR0lYU0N0RzdWMXh0TEk1Z05MQUEwZy9NZEx1Tk1wTXh4TnNvRHdOcjJZZUh4UDdpUWRGS0tvRDdNaWc3dkFnZFFVdllFN3FNWTRuVGduSm0wRnJTUWUvakxPSzBJQnlkYVZudURHRlI1R0pQVWhlSi9RVnJFZHJrSnA3djdZT3lrSjlwSlpkRER0NWhMZUZ0SVhRcCt3TjF4SmtFMFZ0SDBaVjhEWXU1S0dPODZwNjc3ekx0bnMySTB4VXE1TmV5Z0E5Y0tMbWVMcjVMNGdTKzNFSEQxMExvY29wbzV6cmkxQ1BzRTdRZXQraEsraUZNQTZhajdPWGxXTldMTHRQYkNBOGp1M2FGM0NDTi9GV3JhRUNabDNnaG5WSkNTTWdNb1lzWndlZTBBTjhLV290YlZCSHVaUXhLRTdpYlRrMlZkQXp4UlZjb1Rwc3M3cjByNUpvU0ZyQ1pVaEk3MTNJREt4eUcwS1VNcG90RktCZEc4VDhidllzVFdVVXIrTHMzeFowaHVyaWJJdVpMTXgvN0lVWnNPcldTNnhDZXBQdDBYMi83b0tOQm9HTUliV1lBUWpWZFRJSG9SU3ZyUFh3RnVCRVlUUlorZlZlR2tLVzg2WmVRN1hVczVHbWR4bkxnV3Ivcnlnb0JkWm5VeG1KQTV0T1FRYUdyNmN0V3lvQVp3SmV5Vlc4NEYxMjJVWTN3M2g0L0Y0WFdJb0JaSnIySnM5aUhGNEI3aUtJWjdtSVVXM2dEcFpFc21nRkNhZ2had2lkQWhidE0vbWpKbUN5MkVIb1RYOVZtVm1MeEtFUXZaRVR2NUhpOWk4Y1JmZzBjSG9TRzBKNXZLazJzMW1tTVJoamxQck1QZ3RJbEM0YlFCZlREWWhyQ2RHQXZ2K3Z6R3IySC9lbWlEZ2wrUFNTMGhnREE0bnFVczREK2FaY1J2RGw4NnpLcElpemlZb1NGRUwycmluVTVSUlJ6SFYzaFdROEpaWmNwaVRUeERrSzlkd1Y2VmxMcStEVHRxZ3M1a1VVOENhd21pbWE0a3hFVThSSktDNFREREpCbFE2aE5vYnA5TFB2U0Fyem91WmpzbUdNVHlxdGVGcWhOSEtvTFdZN3dSK0JVTDh2T0Jub0hRL1IySG5EaTJyNFp0SjZkOGQwUU9waytPb1VSV2tFcm4vQXVVN2pLVFg2eDZVUzVtc1NDb0QvNFlRN2xBeXpPa2hyZThLekloVnhFQVgrRzZJVmxBK2p0akFkZVE5eUhaV2NMWDc1VW5VSmZuY0lvbmNKS0N2a1FlQmdvQXc1Q2FOWXFCcm9wVCtiekhIQ3pIMXAzcmN5VFV0Nm1nTzlJTlM5N1V0b1hIRU8wWTcyR0VmSnhxMmZpdEp3QktPY2lqRUw1RWRDL2w0ZHJIN3E0QlZ6T0hpa3pFSDRFN3N5VUVlbVo0elVLK2I1TVo2UEhhZ3haSUtNV1FpZXh2OFlZcXpIYVVENGtNY0FidzU1bmhVWnFCVDkyVTVmTTUxTWs5THZQSHFlQTA0MFpvb3RyUStoa0Jtb1pWMnVNTmdwNW44UnE2RWpjeHNrSVM3WFMzU3FxTkhJL3lxOWMxZU1WZTI0dDFsTENlVkxOdjdPZ3h1QVQ3aTV1TCtjaUxONUJXRTdDQkpuc29EdUFPTTJ1Y3ltVElPQ0hibWR6S1BmeVpTNlNDdTl1c2pFRWc5c3J0ZnJoNVp5TWNMbE81WWV1c3N4bkk4b3N6elJraXNVU3VyaFNKb1lqek51UUdjRlAzUWszYXpYN3VzclRseVhBSC8wUmxESUsxTXNNeXNRbUhyQVdnMGNFYndnNGhFNmEzR1FRbXpnV0V5R3cvNVc3VUs2Uld1eUE2amY0UkJnTUFUQkJwL0U5Tnhsa0hxOEFTM3pTc3p2YUVTNlRPbFlFVUxmQlo4SmlDQ0hPY3JWZEJ2SDFvUlo0Mng5SlBiSVpZWlRNWkUwVzZ6UmtrYkFZQW9URDJjeGNWMWxzdGpnaHc5bmdZeXhHU0MyL3kxSjloZ0FJanlFU1ROYnBuTzRtZzh6alFlQVhQdWxKOGc3Q3FUSXo4SUc4d1dmQ1pnaUxPTGVyN1hLVFN5ZVRnWC81STRuMUZIQzYxTExCcC9JTklTSnNoZ0FZd21acTNXUndEa1NiNllPVzV5amlUSm5KMzlNdFFCczR5a3RCQm44Sm95RUFxclNhRTF6bEtPWVc0Q2tQTlR6R1hwd3ROZndqM1FMMFJxWWpWSHFveWVBellUVkVJWEh1MEt0VER3MFJtemdGWElNM2F4Ty9BaTZRNlh5YWJnSGF3R3puMUFoRGhBaXJJUUNPWVFCVmJqTElIRjVGMG9pUDJwRzdnVXZFWmxzNm1WVVJiYUFGY2RmdE00U0RNQnNDb0ZhbnV6eURkQXMyOEQ5cDFTWTBpYzA0c2VsTUo3dXVwb0I1M0E3RTBxcmZFRGhoTjBRZjRBNjlKUFdqU2FTWnJVNUViT29JaWxJcE50VnVCU2JSMVJUd1orNEN4cWRiaGlGNHdtNElVRTdpNjB4MmswWG04UkRDejFQOGVCY3dRV1p6azN0eENkU21tRCt6Qm1GTXVtVVl3a0g0RFFFZ05HZzFSN3JLRTZjYzJMU0hUMzFPWXJ4d1o3clMxS2FFUXRxQUg2VmJoaUU4Uk1NUVVJSnltNXNqYkdRZUg4SnV1MEQvd21LRXpPYitkRVhwQXZvNVpuQVZtR2dJTDFFeEJNQjNxZWFucm5JMGNCdndaQS92Skk2SXNYdDhMeVhVWmdEYldBZWNuVzRaaHZBUkpVT0Fza0JuOE5WVVB5NkpUVHdUU0hTTmtpU09pTEY1S1cwWk5nZFN3SDhESjZkYmhpR2NSTXNRc0RkZDNPb21nOHhsQTdEUStldnJ4UG1PMkx5VnJnQzFPWmdDSGlHQ3Ayc2I5a3pVREFGd2dWWnpoYXNjaGN4RnVac0NUcGVHRk82ZDZBV2R5MkZZUEFFbVBpbFhDZlVwYXJ1aFZXdFk1d3ljOTRpejZqd3Vrd3JWWmpCeDFrSHFYVFpEOUloaUN3R3dQOHJpYkZXbWN4aUd4V01ZTStROFVUVUVLS1Y2QXhmNVhvM044Y1I1SERqVTc3b013Uk5kUXlSWXBqYjcrVlc0enVaRWhJZUJBL3lxd3hBdW9tNklnOW1XZnNqRjd0RFpuSW55Q1Bobk9FUDRpTG9oUUxoS3F6blB5eUsxbnZPSjh5Qlp2Z0hURUR6Uk53U0FzRnlydkhsNDFlWUhLUGNEZmIwb3p4QXRjc01ROERVS3VUSFRRclNPeTRCZmtnZzdOK1FodVdJSWdHdDFCbWVrbTFsdHJrYTRsK2l1elJnOElKY01ZYUhjcGxQY2QzVzBqa25BcmVUVzkyRklnMXg3QUFaVDR1NEFZcTFqT3NKU05BUTNXaHNDSjljTUFjcFVyZVhFbEQ0Nmkzb3dKMlBrTUcrZy9OSk5CbmVHNk9KeEpQUm5teFlRNXc2MWU3L2lTMEYwRnEwb2Rka1Vac2dhbTRCcUNqbE9ScnM3ZnRUVkFGS1c4VGZnK3pxRkVjUnBBWmNuWW1TUDRiUnpBMUMvOHh0cVk5SEpDcFNmQktETDRDOXg0RDZLbUNxbDZSMHdsMWFYU1pwWngxYU9ReWtuNlB2ZWVrT28wVnFHZDM5Skw2R0FUdTVFakJseUR1RlJMSTZUS3hpYnJoa2dnekdFcktCREZ0TktKMGNBaTBtY1hoRW1pb2x6ajlxSlZsQnRpaG5LYW9Rcmd4Wm04SlMzRUVybENzNlJ5M2tsMDhJeUhsVExNajZTVm1JSXc0R0hNaTNQWTQ2amczS2RUQjg2V1FQK1I4Y2Fzc1ptb0o1T2hzc1YzbDFnNDlraWxMU3dIamhQWTF5Q01CODQzS3V5TTBLWXpUNWNCSndTdEJTREp5aHdMNTFVeVRnKzhMcHd6NmRkcFpVMURHQUlRam53aWRmbHAwRmZqQmx5aFdkUlRwT3hqUFhERE9EVE9vVFl0RXN6clJReERGZ0I1dHBhUTBhOGgzSWxZemhKcnVScFB5dnlkV0ZPNXJOUm1wa0luQVQ4d2MrNkREbkpWcUNKdmd5VnExZ3BndnBkWVZZQzJhU1o1eFMrUXdVWEF3dUF3N0pScnlIU3JFV1pMRmZ4MTJ4V21yWFFEUUdWUmF6aE03NkpVRS9DL1FiRHpyeUFjb1pjeFNnWmwxMHpRQUN4VExLQ0xiSVFtd0lHQTZ2QS8yYlFFQWsrQXNycHg3ZGxIRThFSlNLdzRENlp6N3R5RTJPQlV4QnozVzBlMHdFc3BwMGpaQnl0VWhyc0FtL2cwYTZ5a0dmb3gybk9DbkpLQjQ4WmNvWjF3TEV5bnBoTURFY0lVT0NHZ01TRmliS0FsU2hIT09PTHovZVl5UkJsTm1CeG9Zem5YQm5QRzBHTDZVNG9ESkZFRnJKWjVtTlR3RkdJZDh2eGh0RHdNY3BrL3M1Uk1vN2ZCQzJtSjBLNWYxZ2FlUXNvMVdyT2RzTE1oKzhwanlIOHlJVE1ENEx3bTFDMUVEc2pqVHhLQ2NjalRJVDBRM29OaGxRSnRTRUF4S1pUR2xtQk1BU2xDV2dQV3BNaGR3bTlJWkpJSTV0a1B0WEVPUnJDMmY4MFJKL0lHQ0tKekdlRE5ISWhjQzZFYTRiQ0VIMGlaNGdrMHNnNlB1SllKOHc4RkhQWWh1Z1RXVU9BczQxMUhxM0FFYzRGS21IYnhtcUlHSkUyUkJLNWtZL2tSbUxFT1JGNFBHZzlodWlTRTRaSUlvMjhLUE00RS9nQjhIYlFlZ3pSSTZjTWtVUWFhR01MMzBLcEJqNE5XbzhoT3VTa0lRQ2ttYTB5anlZS0dZcWFiYXlHMU1oWlF5UVJtNDNTd0VTVWt4Q2VDbHBQeFBndjR0c3Z2YzhMY3Q0UVNhU0I1NWpONlFpbHdEdEI2d2s1YndMbnl5VCtVeWJuMTFnc2J3d0J6amJXMmF5aGdHRWt6bjNkRnJTbWtQRXhTam4vWkxoTTRyZEJpd21DdkRKRUVySFpJck94c1JnRXJDSUxwem1FbkU1Z0JVVU1rY20waWsxbjBJS0NJaThOa1VSczNwWFpqS1dMczRDWGd0WVRDTW9qeERsT0pqTlJKdkxQb09VRVRWNGJJb25NNGZjSUorVFpOdGEvSUpSS0dTTWt4bXRCaXdrTHhoQU9ZaE1YbTVYQWtaRFQyMWcvUTZrSGhzdGtzeXR4WjR3aGRrSnNQaE1ibXdLR1EwNDlNSEZnRmNxUkVzT1dzcHcxZkVhRWNndHBHSkJhL2dLVWFqM25BTTFFZXh2ck15Z3hLZWVab0lXRUhkTkM3QUdaeFNNb3gwTWt0N0crQzF4SmpGT01HVkxER0NJRnhLWlQ2bGhCbktFa2Jrc0srN1RrRnFDZU9JT2xQRHVIQk9jS3hoQXVFSnVQcFk0WUJReEhlVEJvUFQyZ3dCcTYrS1pNd1pZS2MzNnVXOHdZSWcya2hqZUJDM1FPSTBpMEdNTUNsZ1RDODBCTXBwaHJCekxCdEJBWklMV3M0OHNjRS9CdHJPOGpUT1RmZk51WUlYT01JVEpFSnRJaHRiUmljUVNTMVcyczdjQmlpaGdxVTFnaHRnbHY5d0pqQ0krUUdqNlNHbUxBdDhIMzQ5elhZakZNcGhLVHNsRGM0NWN6bURHRXg4Z01YZ0RPMExtTXdxTFY0K0xmUkRoYnB2S1l4K1VhRFA2ak5pWGF5QmxCNnpDa3p2OERRZDdRck1iTFIxQUFBQUFBU1VWT1JLNUNZSUk9Ij4KCjxzdHlsZT4KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90bycpLCBsb2NhbCgnUm9ib3RvLVJlZ3VsYXInKSwgdXJsKC9mb250LXJvYm90by91WUVDTUtvSGNPOXgxd2RtYnlISW0zLV9rZjZCeVlPNkNMWWRCNEhRRS1ZLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8nKSwgbG9jYWwoJ1JvYm90by1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vc1RkYUE2ajBQc2I5MjBWanYtbXJ6SC1fa2Y2QnlZTzZDTFlkQjRIUUUtWS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL19WWUZ4LXM4MjRrWHFfVWwyQkhxWUgtX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL3RuajRTQjZETmJkYVFuc004Q0ZxQlgtX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL29NTWdmWk1RdGhPcnlRbzluMjJkY3V2dkRpbjFwSzhhS3RlTHBlWjVjMEEud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL0tzX2NWeGlDaXdVV1ZzRldGQTNCam4tX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8nKSwgbG9jYWwoJ1JvYm90by1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vTko0dnhsZ1d3V2JFc3YxOGRBaHFubi1fa2Y2QnlZTzZDTFlkQjRIUUUtWS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9pc1otd2JDWE5LQWJuam82X1R3SFRvWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by83N0ZYRmpSYkd6TjRhQ3JTRmhsaDNvWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9qU04yQ0dWRGJjVnlDbmZKZmpTZGZJWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkJyksIGxvY2FsKCdSb2JvdG8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL1VYNmk0SnhRRG0zZlZUYzFDUHV3cW9YMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQnKSwgbG9jYWwoJ1JvYm90by1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vZC02SVlwbE9Gb2NDYWNLenh3WFNPSkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by85N3VhaHhpcVpSb25jQmFDRUkzYVc0WDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQnKSwgbG9jYWwoJ1JvYm90by1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vUHdaYy1ZYklMNDE0d0I5ckIxSUFQWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1Cb2xkSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdDZOZDRjZlBSaFpQNDRRNVFBamNDMTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tQm9sZEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL3Q2TmQ0Y2ZQUmhaUDQ0UTVRQWpjQ19acmFSMlRnOHcybHptN2tMTkwwLXcud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0N3dF9SbTY5MUxUZWJLZlkyWmtLU21JLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0MxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0M0Z3A5UThnYllyaHFHbFJhdl9JWGZrLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0M2RThrTTR4V1IxXzFiWVVSUm9qUkdjLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tQm9sZEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL3Q2TmQ0Y2ZQUmhaUDQ0UTVRQWpjQzlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09wWFVxVG8wVWdRUWhHal9TRmRMV0JrQXo0clluNDdaeTJydmlnV1FmNncud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9XeHJYSmEwQzNLZHRDN2xNYWZHNGRSa0F6NHJZbjQ3WnkycnZpZ1dRZjZ3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vY0RLaFJhWG5RVE9WYmFveHdkT3I5eGtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vMWhaZjAyUE9BTmgzMmsyVmtnRW9VQmtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdlBjeW5TTDBxSHFfNmRYN2xLVkJ5WFloamJTcHZjNDdlZTZ4Ul84MEhudy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdlN6dWxmS1NLMExMampmZWF4Y1JFaGtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9LMjNjeFdWVHJJRkQ2REpzRVZpMDdSa0F6NHJZbjQ3WnkycnZpZ1dRZjZ3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCcpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0JyksIHVybCgvZm9udC1yb2JvdG8vRmw0eTBRZE94eXlUSEVHTVhYOGtjWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0JyksIGxvY2FsKCdSb2JvdG8tTGlnaHQnKSwgdXJsKC9mb250LXJvYm90by8wZUM2ZmwwNmx1WEVZV3BCU0p2WENJWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL0kzUzF3c2dTZzlZQ3VyVjZQVWtUT1lYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0JyksIGxvY2FsKCdSb2JvdG8tTGlnaHQnKSwgdXJsKC9mb250LXJvYm90by8tTDE0SmswNm02cFVIQi01bVhRUW5ZWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCcpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0JyksIHVybCgvZm9udC1yb2JvdG8vSGdvMTNrLXRmU3BuMHFpMVNGZFVmWkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL1BydTMzcWpTaHBaU21HM3o2Vll3bllYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL05ZRFdCZEQ0Z0lxMjZHNVhZYkhzRklYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0MTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0X1pyYVIyVGc4dzJsem03a0xOTDAtdy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0d3RfUm02OTFMVGViS2ZZMlprS1NtSS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTGlnaHRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by83bThsN1RsRk8tUzNWa2hIdVIwYXQxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1MaWdodEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvLzdtOGw3VGxGTy1TM1ZraEh1UjBhdDRncDlROGdiWXJocUdsUmF2X0lYZmsud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0NkU4a000eFdSMV8xYllVUlJvalJHYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1MaWdodEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvLzdtOGw3VGxGTy1TM1ZraEh1UjBhdDlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bScpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bScpLCB1cmwoL2ZvbnQtcm9ib3RvL29IaTMwa3dRV3ZwQ1dxQWh6SGNDU0lYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0nKSwgbG9jYWwoJ1JvYm90by1NZWRpdW0nKSwgdXJsKC9mb250LXJvYm90by9aTHFLZWVsWWJBVEc2MEVwWkJTRHk0WDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vbXg5VWNrNnVCNjNWSUtGWW5FTVhyWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vckd2SGRKbnIybDc1cWIwWU5EOU55SVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vUnhaSmRuemVvM1I1elNleGdlOFVVWkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vb09lRndaTmxyVGVmekxZbWxWVjFVSVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0nKSwgbG9jYWwoJ1JvYm90by1NZWRpdW0nKSwgdXJsKC9mb250LXJvYm90by9tYm1ocHJNSDY5Wmk2ZUVQQllWRmhZWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vT0xmZkdCVGFGMFhGT1cxZ251SEYwVjRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bSBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1NZWRpdW1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9PTGZmR0JUYUYwWEZPVzFnbnVIRjBmWnJhUjJUZzh3Mmx6bTdrTE5MMC13LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMFF0X1JtNjkxTFRlYktmWTJaa0tTbUkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bSBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1NZWRpdW1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9PTGZmR0JUYUYwWEZPVzFnbnVIRjBWQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vT0xmZkdCVGFGMFhGT1cxZ251SEYwWWdwOVE4Z2JZcmhxR2xSYXZfSVhmay53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMGFFOGtNNHhXUjFfMWJZVVJSb2pSR2Mud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMGREaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZMTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZX1pyYVIyVGc4dzJsem03a0xOTDAtdy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZd3RfUm02OTFMVGViS2ZZMlprS1NtSS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vJyksIGxvY2FsKCdSb2JvdG9Nb25vLVJlZ3VsYXInKSwgdXJsKC9mb250LXJvYm90by9oTXFQTkxzdV9keXdNYTRDX0RFcFkxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8nKSwgbG9jYWwoJ1JvYm90b01vbm8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL2hNcVBOTHN1X2R5d01hNENfREVwWTRncDlROGdiWXJocUdsUmF2X0lYZmsud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZNkU4a000eFdSMV8xYllVUlJvalJHYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8nKSwgbG9jYWwoJ1JvYm90b01vbm8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL2hNcVBOTHN1X2R5d01hNENfREVwWTlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubyBCb2xkJyksIGxvY2FsKCdSb2JvdG9Nb25vLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9ONGR1VmM5QzU4dXdQaVk4XzU5RnoxeC1NMUkxdzVPTWlxblZGOHhCTGhVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vIEJvbGQnKSwgbG9jYWwoJ1JvYm90b01vbm8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL040ZHVWYzlDNTh1d1BpWThfNTlGendYYUFYdXA1bVpsZks2eFJMcmhzY28ud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6d242V3F4by14d3hpbERYUFU4Y2hWVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vIEJvbGQnKSwgbG9jYWwoJ1JvYm90b01vbm8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL040ZHVWYzlDNTh1d1BpWThfNTlGejFUN2FKTEs2bktwbjM2SU13VGNNTWMud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubyBCb2xkJyksIGxvY2FsKCdSb2JvdG9Nb25vLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9ONGR1VmM5QzU4dXdQaVk4XzU5RnpfNzlfWnVVeENpZ00yRGVzcFRuRmF3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6NGdkOU9FUFVDTjNBZFlXMGU4dGF0NC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6OGJJUVNZWm5XTGFXQzlRTkNwVEtfVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Cjwvc3R5bGU+CgoKCjxzdHlsZT4ubWF0LWJhZGdlLWNvbnRlbnR7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudHtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50e2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDEsLm1hdC1oZWFkbGluZSwubWF0LXR5cG9ncmFwaHkgaDF7Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDIsLm1hdC10aXRsZSwubWF0LXR5cG9ncmFwaHkgaDJ7Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDMsLm1hdC1zdWJoZWFkaW5nLTIsLm1hdC10eXBvZ3JhcGh5IGgze2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0LC5tYXQtc3ViaGVhZGluZy0xLC5tYXQtdHlwb2dyYXBoeSBoNHtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNSwubWF0LXR5cG9ncmFwaHkgaDV7Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDYsLm1hdC10eXBvZ3JhcGh5IGg2e2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nLC5tYXQtYm9keS0ye2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keSwubWF0LWJvZHktMSwubWF0LXR5cG9ncmFwaHl7Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5IHAsLm1hdC1ib2R5LTEgcCwubWF0LXR5cG9ncmFwaHkgcHttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbCwubWF0LWNhcHRpb257Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTQsLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00e2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktMywubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTN7Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMiwubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTJ7Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTEsLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0xe2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJ7Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b24sLm1hdC1yYWlzZWQtYnV0dG9uLC5tYXQtaWNvbi1idXR0b24sLm1hdC1zdHJva2VkLWJ1dHRvbiwubWF0LWZsYXQtYnV0dG9uLC5tYXQtZmFiLC5tYXQtbWluaS1mYWJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGV7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxle2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyIC5tYXQtY2FyZC10aXRsZXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGUsLm1hdC1jYXJkLWNvbnRlbnR7Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbHtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLC5tYXQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29ue2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGV7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGx7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbCwubWF0LWZvb3Rlci1jZWxse2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwsLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9ue2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB0aHtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGV7Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudHtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGR7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJ7cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29ue2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiwubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b257aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbntoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXh7cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcntmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtd3JhcHBlcntwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWx7dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXIsLm1hdC1ncmlkLXRpbGUtZm9vdGVye2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmUsLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSwubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50e21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVte2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3IsLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9ue2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcntoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsLC5tYXQtc3RlcHBlci1ob3Jpem9udGFse2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWx7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3J7Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcntmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWR7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3Vwe2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbCwubWF0LXRhYi1saW5re2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyLC5tYXQtdG9vbGJhciBoMSwubWF0LXRvb2xiYXIgaDIsLm1hdC10b29sYmFyIGgzLC5tYXQtdG9vbGJhciBoNCwubWF0LXRvb2xiYXIgaDUsLm1hdC10b29sYmFyIGg2e2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldHtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVte2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9ue2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVse2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb257bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWV7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlLC5tYXQtbmVzdGVkLXRyZWUtbm9kZXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGV7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVke292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudHtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcmlwcGxlLWVsZW1lbnR7ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVue2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lciwuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3B7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AsLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94e3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2t7cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemV7cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ3twYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94e3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0ey8qISovfUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5key8qISovfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcntwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3J7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5tYXQtb3B0aW9ue2NvbG9yOiMyMTIxMjF9Lm1hdC1vcHRpb246aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSwubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfS5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9Lm1hdC1vcHRpb24ubWF0LWFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA0KTtjb2xvcjojMjEyMTIxfS5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWR7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtjb2xvcjojZjU3YzAwfS5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmZjk4MDB9Lm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmNDQzMzZ9Lm1hdC1vcHRncm91cC1sYWJlbHtjb2xvcjojNjE2MTYxfS5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1wc2V1ZG8tY2hlY2tib3h7Y29sb3I6IzYxNjE2MX0ubWF0LXBzZXVkby1jaGVja2JveDo6YWZ0ZXJ7Y29sb3I6I2ZmZn0ubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZHtjb2xvcjojYjBiMGIwfS5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRle2JhY2tncm91bmQ6I2Y1N2MwMH0ubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRle2JhY2tncm91bmQ6I2ZmOTgwMH0ubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kOiNmNDQzMzZ9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZHtiYWNrZ3JvdW5kOiNiMGIwYjB9Lm1hdC1hcHAtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWVsZXZhdGlvbi16MHtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejF7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16Mntib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoze2JveC1zaGFkb3c6MHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejR7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejV7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDE0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejZ7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXo3e2JveC1zaGFkb3c6MHB4IDRweCA1cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16OHtib3gtc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejl7Ym94LXNoYWRvdzowcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDNweCAxNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMHtib3gtc2hhZG93OjBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMHB4IDE0cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMXtib3gtc2hhZG93OjBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMXB4IDE1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDRweCAyMHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMntib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxM3tib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxM3B4IDE5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNHtib3gtc2hhZG93OjBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNHB4IDIxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNXtib3gtc2hhZG93OjBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDZweCAyOHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTd7Ym94LXNoYWRvdzowcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE3cHggMjZweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDMycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE4e2JveC1zaGFkb3c6MHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDdweCAzNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxOXtib3gtc2hhZG93OjBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTlweCAyOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjB7Ym94LXNoYWRvdzowcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAyMHB4IDMxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDhweCAzOHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyMXtib3gtc2hhZG93OjBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOHB4IDQwcHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejIye2JveC1zaGFkb3c6MHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjJweCAzNXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjN7Ym94LXNoYWRvdzowcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAyM3B4IDM2cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDlweCA0NHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyNHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC10aGVtZS1sb2FkZWQtbWFya2Vye2Rpc3BsYXk6bm9uZX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKXtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtjb2xvcjojMjEyMTIxfS5tYXQtYmFkZ2V7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50e2Rpc3BsYXk6bm9uZX0ubWF0LWJhZGdlLWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czo1MCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7dHJhbnNmb3JtOnNjYWxlKDAuNik7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm5nLWFuaW1hdGUtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50LC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1iYWRnZS1jb250ZW50Lm1hdC1iYWRnZS1hY3RpdmV7dHJhbnNmb3JtOm5vbmV9Lm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnR7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtsaW5lLWhlaWdodDoxNnB4fS5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudHt0b3A6LThweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnR7Ym90dG9tOi04cHh9Lm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0Oi0xNnB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6YXV0bztyaWdodDotMTZweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6LTE2cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDphdXRvO2xlZnQ6LTE2cHh9Lm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0Oi04cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi04cHh9Lm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi04cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDphdXRvO2xlZnQ6LThweH0ubWF0LWJhZGdlLW1lZGl1bSAubWF0LWJhZGdlLWNvbnRlbnR7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtsaW5lLWhlaWdodDoyMnB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnR7dG9wOi0xMXB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnR7Ym90dG9tOi0xMXB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTIycHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6YXV0bztyaWdodDotMjJweH0ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi0yMnB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMjJweH0ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0Oi0xMXB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0OmF1dG87cmlnaHQ6LTExcHh9Lm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDotMTFweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDphdXRvO2xlZnQ6LTExcHh9Lm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnR7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtsaW5lLWhlaWdodDoyOHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudHt0b3A6LTE0cHh9Lm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50e2JvdHRvbTotMTRweH0ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTI4cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi0yOHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDotMjhweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMjhweH0ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTE0cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi0xNHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDotMTRweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMTRweH0ubWF0LWJhZGdlLWNvbnRlbnR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNmNTdjMDB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJhZGdlLWNvbnRlbnR7b3V0bGluZTpzb2xpZCAxcHg7Ym9yZGVyLXJhZGl1czowfS5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZjQ0MzM2fS5tYXQtYmFkZ2UtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50e2JhY2tncm91bmQ6I2JkYmRiZDtjb2xvcjojNzU3NTc1fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uLC5tYXQtc3Ryb2tlZC1idXR0b257Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXtjb2xvcjojZjU3YzAwfS5tYXQtYnV0dG9uLm1hdC1hY2NlbnQsLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudHtjb2xvcjojZmY5ODAwfS5tYXQtYnV0dG9uLm1hdC13YXJuLC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4sLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1pY29uLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50e29wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Lm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kOiMwMDB9Lm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1mbGF0LWJ1dHRvbiwubWF0LXJhaXNlZC1idXR0b24sLm1hdC1mYWIsLm1hdC1taW5pLWZhYntjb2xvcjojMjEyMTIxO2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwubWF0LWZhYi5tYXQtcHJpbWFyeSwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5e2NvbG9yOiNmZmZ9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtZmFiLm1hdC1hY2NlbnQsLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50e2NvbG9yOiNmZmZ9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sLm1hdC1mYWIubWF0LXdhcm4sLm1hdC1taW5pLWZhYi5tYXQtd2Fybntjb2xvcjojZmZmfS5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmFiLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LW1pbmktZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWR7Y29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtZmFiLm1hdC1wcmltYXJ5LC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnl7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwubWF0LWZhYi5tYXQtYWNjZW50LC5tYXQtbWluaS1mYWIubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sLm1hdC1mYWIubWF0LXdhcm4sLm1hdC1taW5pLWZhYi5tYXQtd2FybntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZsYXQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZhYi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LW1pbmktZmFiLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1yYWlzZWQtYnV0dG9uOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXJhaXNlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1mYWI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1taW5pLWZhYjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZmFiLm1hdC1idXR0b24tZGlzYWJsZWQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSwubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXB7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJke2JveC1zaGFkb3c6bm9uZX0ubWF0LWJ1dHRvbi10b2dnbGV7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZHtjb2xvcjojMjEyMTIxO2JhY2tncm91bmQ6I2ZmZn0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfVtkaXI9cnRsXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUrLm1hdC1idXR0b24tdG9nZ2xle2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpub25lO2JvcmRlci10b3A6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7Y29sb3I6IzYxNjE2MX0ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2NvbG9yOiMyMTIxMjF9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVke2NvbG9yOnJnYmEoMCwwLDAsLjI2KTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7YmFja2dyb3VuZDojZmZmfS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2Vke2JhY2tncm91bmQtY29sb3I6I2JkYmRiZH0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJke2JvcmRlcjpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50e2xpbmUtaGVpZ2h0OjQ4cHh9Lm1hdC1jYXJke2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtY2FyZC5tYXQtY2FyZC1mbGF0Om5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWNhcmQtc3VidGl0bGV7Y29sb3I6IzYxNjE2MX0ubWF0LWNoZWNrYm94LWZyYW1le2JvcmRlci1jb2xvcjojNjE2MTYxfS5tYXQtY2hlY2tib3gtY2hlY2ttYXJre2ZpbGw6I2ZmZn0ubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZTojZmZmICFpbXBvcnRhbnR9Lm1hdC1jaGVja2JveC1taXhlZG1hcmt7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNiMGIwYjB9Lm1hdC1jaGVja2JveC1kaXNhYmxlZDpub3QoLm1hdC1jaGVja2JveC1jaGVja2VkKSAubWF0LWNoZWNrYm94LWZyYW1le2JvcmRlci1jb2xvcjojYjBiMGIwfS5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1sYWJlbHtjb2xvcjojNjE2MTYxfS5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQ6I2Y1N2MwMH0ubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQ6I2ZmOTgwMH0ubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDojZjQ0MzM2fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7Y29sb3I6IzIxMjEyMX0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojMjEyMTIxO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpOmFjdGl2ZXtib3gtc2hhZG93OjBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVye29wYWNpdHk6LjU0fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZHtvcGFjaXR5Oi40fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXJ7YmFja2dyb3VuZDojMDAwfS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDA7Y29sb3I6I2ZmZn0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm57YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2O2NvbG9yOiNmZmZ9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmV7Y29sb3I6I2ZmZjtvcGFjaXR5Oi40fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwO2NvbG9yOiNmZmZ9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtdGFibGV7YmFja2dyb3VuZDojZmZmfS5tYXQtdGFibGUgdGhlYWQsLm1hdC10YWJsZSB0Ym9keSwubWF0LXRhYmxlIHRmb290LG1hdC1oZWFkZXItcm93LG1hdC1yb3csbWF0LWZvb3Rlci1yb3csW21hdC1oZWFkZXItcm93XSxbbWF0LXJvd10sW21hdC1mb290ZXItcm93XSwubWF0LXRhYmxlLXN0aWNreXtiYWNrZ3JvdW5kOmluaGVyaXR9bWF0LXJvdyxtYXQtaGVhZGVyLXJvdyxtYXQtZm9vdGVyLXJvdyx0aC5tYXQtaGVhZGVyLWNlbGwsdGQubWF0LWNlbGwsdGQubWF0LWZvb3Rlci1jZWxse2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtaGVhZGVyLWNlbGx7Y29sb3I6IzYxNjE2MX0ubWF0LWNlbGwsLm1hdC1mb290ZXItY2VsbHtjb2xvcjojMjEyMTIxfS5tYXQtY2FsZW5kYXItYXJyb3d7ZmlsbDpyZ2JhKDAsMCwwLC41NCl9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9ue2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcntjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVse2NvbG9yOiM2MTYxNjF9Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCwubWF0LWRhdGUtcmFuZ2UtaW5wdXQtc2VwYXJhdG9ye2NvbG9yOiMyMTIxMjE7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2NvbG9yOiM3NTc1NzV9Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3J7Y29sb3I6Izc1NzU3NX0ubWF0LWNhbGVuZGFyLWJvZHktaW4tcHJldmlld3tjb2xvcjpyZ2JhKDAsMCwwLC4yNCl9Lm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMTgpfS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDUsMTI0LDAsLjIpfS5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCwubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfS5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjQ1LCAxMjQsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDI0NSwgMTI0LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX0ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQ6IzQ2YTM1ZX0ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwO2NvbG9yOiNmZmZ9Lm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ1LDEyNCwwLC40KX0ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn0ubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjMpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50e2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwxNTIsMCwuMil9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwO2NvbG9yOiNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjQpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC4zKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ5LDE3MSwwLC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI0NCwgNjcsIDU0LCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNDQsIDY3LCA1NCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlcntiYWNrZ3JvdW5kOiNhOGRhYjV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNCl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXI+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4zKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmV7Y29sb3I6I2Y1N2MwMH0ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50e2NvbG9yOiNmZjk4MDB9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn0ubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaW5uZXJbZGlzYWJsZWRde2NvbG9yOiM3NTc1NzV9Lm1hdC1kaWFsb2ctY29udGFpbmVye2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWRpdmlkZXJ7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1kaXZpZGVyLXZlcnRpY2Fse2JvcmRlci1yaWdodC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1leHBhbnNpb24tcGFuZWx7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWFjdGlvbi1yb3d7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSksLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojZmZmfX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGV7Y29sb3I6IzIxMjEyMX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlcntjb2xvcjojNjE2MTYxfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVde2NvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9ue2NvbG9yOmluaGVyaXR9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVye2hlaWdodDo0OHB4fS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5tYXQtZXhwYW5kZWR7aGVpZ2h0OjY0cHh9Lm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoOTcsOTcsOTcsLjYpfS5tYXQtaGludHtjb2xvcjpyZ2JhKDk3LDk3LDk3LC42KX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50e2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2Vye2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LXdhcm57YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjU3YzAwfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQsLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXJ7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1lcnJvcntjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWx7Y29sb3I6IzYxNjE2MX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50e2NvbG9yOiM2MTYxNjF9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC40Mil9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7YmFja2dyb3VuZC1zaXplOjRweCAxMDAlO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC40Mil9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKTtiYWNrZ3JvdW5kLXNpemU6NHB4IDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA0KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNDIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiM3NTc1NzV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le2NvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtaW52YWxpZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtbGFiZWx7Y29sb3I6Izc1NzU3NX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le2NvbG9yOnJnYmEoMCwwLDAsLjA2KX0ubWF0LWljb24ubWF0LXByaW1hcnl7Y29sb3I6I2Y1N2MwMH0ubWF0LWljb24ubWF0LWFjY2VudHtjb2xvcjojZmY5ODAwfS5tYXQtaWNvbi5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6IzYxNjE2MX0ubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojNzU3NTc1fS5tYXQtaW5wdXQtZWxlbWVudHtjYXJldC1jb2xvcjojZjU3YzAwfS5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSg5Nyw5Nyw5NywuNDIpfS5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDk3LDk3LDk3LC40Mil9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoOTcsOTcsOTcsLjQyKX0ubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoOTcsOTcsOTcsLjQyKX0ubWF0LWZvcm0tZmllbGQubWF0LWFjY2VudCAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6I2ZmOTgwMH0ubWF0LWZvcm0tZmllbGQubWF0LXdhcm4gLm1hdC1pbnB1dC1lbGVtZW50LC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtaW5wdXQtZWxlbWVudHtjYXJldC1jb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjQ0MzM2fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVte2NvbG9yOiMyMTIxMjF9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbntjb2xvcjojMjEyMTIxfS5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVye2NvbG9yOiM2MTYxNjF9Lm1hdC1saXN0LWl0ZW0tZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5tYXQtbGlzdC1vcHRpb246aG92ZXIsLm1hdC1saXN0LW9wdGlvbjpmb2N1cywubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3ZlciwubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3Vze2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfS5tYXQtbGlzdC1zaW5nbGUtc2VsZWN0ZWQtb3B0aW9uLC5tYXQtbGlzdC1zaW5nbGUtc2VsZWN0ZWQtb3B0aW9uOmhvdmVyLC5tYXQtbGlzdC1zaW5nbGUtc2VsZWN0ZWQtb3B0aW9uOmZvY3Vze2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMTIpfS5tYXQtbWVudS1wYW5lbHtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1tZW51LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtbWVudS1pdGVte2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6IzIxMjEyMX0ubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdIC5tYXQtbWVudS1zdWJtZW51LWljb24sLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdIC5tYXQtaWNvbi1uby1jb2xvcntjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLC5tYXQtbWVudS1zdWJtZW51LWljb257Y29sb3I6cmdiYSgwLDAsMCwuNTQpfS5tYXQtbWVudS1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSwubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQ6bm90KFtkaXNhYmxlZF0pe2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfS5tYXQtcGFnaW5hdG9ye2JhY2tncm91bmQ6I2ZmZn0ubWF0LXBhZ2luYXRvciwubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlcntjb2xvcjojNjE2MTYxfS5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCwubWF0LXBhZ2luYXRvci1pbmNyZW1lbnR7Ym9yZGVyLXRvcDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpO2JvcmRlci1yaWdodDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpfS5tYXQtcGFnaW5hdG9yLWZpcnN0LC5tYXQtcGFnaW5hdG9yLWxhc3R7Ym9yZGVyLXRvcDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpfS5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCwubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcGFnaW5hdG9yLWNvbnRhaW5lcnttaW4taGVpZ2h0OjU2cHh9Lm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiNmZGRlYmZ9Lm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6I2ZkZGViZn0ubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5ke2ZpbGw6I2ZmZTViZn0ubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmU1YmZ9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiNmY2QwY2R9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6I2ZjZDBjZH0ubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSwubWF0LXNwaW5uZXIgY2lyY2xle3N0cm9rZTojZjU3YzAwfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGV7c3Ryb2tlOiNmZjk4MDB9Lm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSwubWF0LXNwaW5uZXIubWF0LXdhcm4gY2lyY2xle3N0cm9rZTojZjQ0MzM2fS5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojNjE2MTYxfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojZjU3YzAwfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnk6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOiNmZjk4MDB9Lm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6I2Y0NDMzNn0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnR7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiMyMTIxMjF9Lm1hdC1zZWxlY3QtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSg5Nyw5Nyw5NywuNDIpfS5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiM3NTc1NzV9Lm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6IzYxNjE2MX0ubWF0LXNlbGVjdC1wYW5lbHtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6I2ZmOTgwMH0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6Izc1NzU3NX0ubWF0LWRyYXdlci1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1kcmF3ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoe2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LWRyYXdlcjpub3QoLm1hdC1kcmF3ZXItc2lkZSl7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1kcmF3ZXItc2lkZXtib3JkZXItcmlnaHQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5ke2JvcmRlci1sZWZ0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMik7Ym9yZGVyLXJpZ2h0Om5vbmV9W2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGV7Ym9yZGVyLWxlZnQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKTtib3JkZXItcmlnaHQ6bm9uZX1bZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZHtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LXNsaWRlLXRvZ2dsZTpub3QoLm1hdC1jaGVja2VkKSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6IzAwMH0ubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYX0ubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtjb2xvcjojZmZmfS5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjIpfS5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7Y29sb3I6I2ZmZn0ubWF0LWFjY2VudCAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjIpfS5tYXQtd2FybiAubWF0LXNsaWRlci10cmFjay1maWxsLC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYiwubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2NvbG9yOiNmZmZ9Lm1hdC13YXJuIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuMil9Lm1hdC1zbGlkZXI6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCwubWF0LXNsaWRlci5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LXNsaWRlci1kaXNhYmxlZDpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtc2xpZGVyLW1pbi12YWx1ZSAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMjYpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3ZlciAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyl9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrc3tiYWNrZ3JvdW5kLWltYWdlOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6LW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCl9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3N7YmFja2dyb3VuZC1pbWFnZTpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCl9Lm1hdC1zdGVwLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXN0ZXAtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC1zdGVwLWhlYWRlcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWRdKSwubWF0LXN0ZXAtaGVhZGVyOmhvdmVyW2FyaWEtZGlzYWJsZWQ9ZmFsc2Vde2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDQpfS5tYXQtc3RlcC1oZWFkZXI6aG92ZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjdXJzb3I6ZGVmYXVsdH1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtc3RlcC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDpub25lfX0ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbCwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1vcHRpb25hbHtjb2xvcjojNjE2MTYxfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb257YmFja2dyb3VuZC1jb2xvcjojNjE2MTYxO2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbntjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSwubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29ue2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojZjQ0MzM2fS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZXtjb2xvcjojMjEyMTIxfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9ye2NvbG9yOiNmNDQzMzZ9Lm1hdC1zdGVwcGVyLWhvcml6b250YWwsLm1hdC1zdGVwcGVyLXZlcnRpY2Fse2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3Jle2JvcmRlci1sZWZ0LWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSwubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmV7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVye2hlaWdodDo3MnB4fS5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyLC5tYXQtdmVydGljYWwtc3RlcHBlci1oZWFkZXJ7cGFkZGluZzoyNHB4IDI0cHh9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZXt0b3A6LTE2cHg7Ym90dG9tOi0xNnB4fS5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlciwubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3Jle3RvcDozNnB4fS5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZXt0b3A6MzZweH0ubWF0LXNvcnQtaGVhZGVyLWFycm93e2NvbG9yOiM2MTYxNjF9Lm1hdC10YWItbmF2LWJhciwubWF0LXRhYi1oZWFkZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpfS5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXJ7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpO2JvcmRlci1ib3R0b206bm9uZX0ubWF0LXRhYi1sYWJlbCwubWF0LXRhYi1saW5re2NvbG9yOiMyMTIxMjF9Lm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6Izc1NzU3NX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjojMjEyMTIxfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOiM3NTc1NzV9Lm1hdC10YWItZ3JvdXBbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV0gLm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLW5hdi1iYXJbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV17Ym9yZGVyLWJvdHRvbTpub25lO2JvcmRlci10b3A6bm9uZX0ubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNjcsMzgsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMjQsMTc4LC4zKX0ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIwNSwyMTAsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC10YWItZ3JvdXAubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNjcsMzgsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluaywubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5re2NvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle2JvcmRlci1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIyNCwxNzgsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmssLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIwNSwyMTAsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluaywubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5re2NvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle2JvcmRlci1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX0ubWF0LXRvb2xiYXJ7YmFja2dyb3VuZDojZjU3YzAwO2NvbG9yOiMyMTIxMjF9Lm1hdC10b29sYmFyLm1hdC1wcmltYXJ5e2JhY2tncm91bmQ6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtdG9vbGJhci5tYXQtYWNjZW50e2JhY2tncm91bmQ6I2ZmOTgwMDtjb2xvcjojZmZmfS5tYXQtdG9vbGJhci5tYXQtd2FybntiYWNrZ3JvdW5kOiNmNDQzMzY7Y29sb3I6I2ZmZn0ubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSwubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSwubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Lm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6aW5oZXJpdH0ubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOmN1cnJlbnRDb2xvcn0ubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93c3ttaW4taGVpZ2h0OjY0cHh9Lm1hdC10b29sYmFyLXJvdywubWF0LXRvb2xiYXItc2luZ2xlLXJvd3toZWlnaHQ6NjRweH1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Lm1hdC10b29sYmFyLW11bHRpcGxlLXJvd3N7bWluLWhlaWdodDo1NnB4fS5tYXQtdG9vbGJhci1yb3csLm1hdC10b29sYmFyLXNpbmdsZS1yb3d7aGVpZ2h0OjU2cHh9fS5tYXQtdG9vbHRpcHtiYWNrZ3JvdW5kOnJnYmEoOTcsOTcsOTcsLjkpfS5tYXQtdHJlZXtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC10cmVlLW5vZGUsLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2NvbG9yOiMyMTIxMjF9Lm1hdC10cmVlLW5vZGV7bWluLWhlaWdodDo0OHB4fS5tYXQtc25hY2stYmFyLWNvbnRhaW5lcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KTtiYWNrZ3JvdW5kOiMzMjMyMzI7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbntjb2xvcjojZmY5ODAwfWJvZHl7b3ZlcmZsb3c6aGlkZGVufS5jZGstb3ZlcmxheS1jb250YWluZXJ7Y29udGFpbjpzdHJpY3R9YTpub3QoLm1hdC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbil7Y29sb3I6IzE5NzZkMn1hOm5vdCgubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uKTp2aXNpdGVke2NvbG9yOiM3YjFmYTJ9Ym9keS5kYXJrLW1vZGV7YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlIGE6bm90KC5tYXQtYnV0dG9uLC5tYXQtaWNvbi1idXR0b24pe2NvbG9yOiM0MmE1ZjV9Ym9keS5kYXJrLW1vZGUgYTpub3QoLm1hdC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbik6dmlzaXRlZHtjb2xvcjojYmE2OGM4fWJvZHkuZGFyay1tb2RlIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGlvbntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC1vcHRpb246Zm9jdXM6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA0KX1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDQpfWJvZHkuZGFyay1tb2RlIC5tYXQtb3B0aW9uLm1hdC1hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCk7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGlvbi5tYXQtb3B0aW9uLWRpc2FibGVke2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1vcHRncm91cC1sYWJlbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGdyb3VwLWRpc2FibGVkIC5tYXQtb3B0Z3JvdXAtbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3h7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVye2NvbG9yOiMzMDMwMzB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWR7Y29sb3I6IzY4Njg2OH1ib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLGJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsYm9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGV7YmFja2dyb3VuZDojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWR7YmFja2dyb3VuZDojNjg2ODY4fWJvZHkuZGFyay1tb2RlIC5tYXQtYXBwLWJhY2tncm91bmQsYm9keS5kYXJrLW1vZGUubWF0LWFwcC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6IzMwMzAzMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXowe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MXtib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoye2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejN7Ym94LXNoYWRvdzowcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16NHtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16NXtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA1cHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16Nntib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejd7Ym94LXNoYWRvdzowcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDJweCAxNnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXo4e2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16OXtib3gtc2hhZG93OjBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA5cHggMTJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEwe2JveC1zaGFkb3c6MHB4IDZweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejExe2JveC1zaGFkb3c6MHB4IDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDExcHggMTVweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEye2JveC1zaGFkb3c6MHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEze2JveC1zaGFkb3c6MHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE0e2JveC1zaGFkb3c6MHB4IDdweCA5cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE0cHggMjFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE1e2JveC1zaGFkb3c6MHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE1cHggMjJweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE2e2JveC1zaGFkb3c6MHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoxN3tib3gtc2hhZG93OjBweCA4cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTdweCAyNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MTh7Ym94LXNoYWRvdzowcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE4cHggMjhweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE5e2JveC1zaGFkb3c6MHB4IDlweCAxMnB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoyMHtib3gtc2hhZG93OjBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDIwcHggMzFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejIxe2JveC1zaGFkb3c6MHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjFweCAzM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MjJ7Ym94LXNoYWRvdzowcHggMTBweCAxNHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoyM3tib3gtc2hhZG93OjBweCAxMXB4IDE0cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDIzcHggMzZweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejI0e2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXJ7ZGlzcGxheTpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVse2JhY2tncm91bmQ6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpe2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS1jb250ZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZWY2YzAwfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgYm9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS1jb250ZW50e291dGxpbmU6c29saWQgMXB4O2JvcmRlci1yYWRpdXM6MH1ib2R5LmRhcmstbW9kZSAubWF0LWJhZGdlLWFjY2VudCAubWF0LWJhZGdlLWNvbnRlbnR7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS13YXJuIC5tYXQtYmFkZ2UtY29udGVudHtjb2xvcjojZmZmO2JhY2tncm91bmQ6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiM2ZTZlNmU7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJ7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7YmFja2dyb3VuZDojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24sYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbixib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9ue2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnl7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50e29wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpe2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbixib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24sYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5e2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50e2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LXdhcm4sYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtd2Fybntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LXByaW1hcnksYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC13YXJue2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b246bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWZhYjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1idXR0b24tZGlzYWJsZWQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLGJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cHtib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsYm9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmR7Ym94LXNoYWRvdzpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6c29saWQgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpzb2xpZCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItdG9wOnNvbGlkIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojMjEyMTIxO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyk7YmFja2dyb3VuZC1jb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZHtib3JkZXI6c29saWQgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWNhcmR7YmFja2dyb3VuZDojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FyZC1zdWJ0aXRsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWZyYW1le2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWNoZWNrbWFya3tmaWxsOiMzMDMwMzB9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHtzdHJva2U6IzMwMzAzMCAhaW1wb3J0YW50fWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsYm9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsYm9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojNjg2ODY4fWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQ6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkgLm1hdC1jaGVja2JveC1mcmFtZXtib3JkZXItY29sb3I6IzY4Njg2OH1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWRpc2FibGVkIC5tYXQtY2hlY2tib3gtbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwe2JhY2tncm91bmQtY29sb3I6IzYxNjE2MTtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZle2JveC1zaGFkb3c6MHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXJ7b3BhY2l0eTouNTR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVke29wYWNpdHk6LjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlcntiYWNrZ3JvdW5kOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWJsZXtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWJsZSB0aGVhZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYmxlIHRib2R5LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFibGUgdGZvb3QsYm9keS5kYXJrLW1vZGUgbWF0LWhlYWRlci1yb3csYm9keS5kYXJrLW1vZGUgbWF0LXJvdyxib2R5LmRhcmstbW9kZSBtYXQtZm9vdGVyLXJvdyxib2R5LmRhcmstbW9kZSBbbWF0LWhlYWRlci1yb3ddLGJvZHkuZGFyay1tb2RlIFttYXQtcm93XSxib2R5LmRhcmstbW9kZSBbbWF0LWZvb3Rlci1yb3ddLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFibGUtc3RpY2t5e2JhY2tncm91bmQ6aW5oZXJpdH1ib2R5LmRhcmstbW9kZSBtYXQtcm93LGJvZHkuZGFyay1tb2RlIG1hdC1oZWFkZXItcm93LGJvZHkuZGFyay1tb2RlIG1hdC1mb290ZXItcm93LGJvZHkuZGFyay1tb2RlIHRoLm1hdC1oZWFkZXItY2VsbCxib2R5LmRhcmstbW9kZSB0ZC5tYXQtY2VsbCxib2R5LmRhcmstbW9kZSB0ZC5tYXQtZm9vdGVyLWNlbGx7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1oZWFkZXItY2VsbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNlbGwsYm9keS5kYXJrLW1vZGUgLm1hdC1mb290ZXItY2VsbHtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYXJyb3d7ZmlsbDojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3J7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvcntjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1wcmV2aWV3e2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjI0KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyMzksMTA4LDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCxib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjM5LCAxMDgsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDIzOSwgMTA4LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQ6IzQ2YTM1ZX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC40KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksYm9keS5kYXJrLW1vZGUgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50e2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDIzOSwxMDgsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDIzOSwgMTA4LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjM5LCAxMDgsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ5LDE3MSwwLC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI0NCwgNjcsIDU0LCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNDQsIDY3LCA1NCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlcntiYWNrZ3JvdW5kOiNhOGRhYjV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXI+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmV7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaW5uZXJbZGlzYWJsZWRde2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1kaWFsb2ctY29udGFpbmVye2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kOiM0MjQyNDI7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWRpdmlkZXJ7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kaXZpZGVyLXZlcnRpY2Fse2JvcmRlci1yaWdodC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWx7YmFja2dyb3VuZDojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWFjdGlvbi1yb3d7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSksYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSxib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSl7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9QG1lZGlhKGhvdmVyOiBub25lKXtib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojNDI0MjQyfX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGV7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9ue2NvbG9yOmluaGVyaXR9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtaGludHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2Vye2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJue2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2Vye2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZXJyb3J7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7YmFja2dyb3VuZC1zaXplOjRweCAxMDAlO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAzMyUsIHRyYW5zcGFyZW50IDAlKTtiYWNrZ3JvdW5kLXNpemU6NHB4IDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXh7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4wNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWludmFsaWQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pY29uLm1hdC1wcmltYXJ5e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1pY29uLm1hdC1hY2NlbnR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWljb24ubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbntjb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbjpkaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbXtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb257Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3QtaXRlbS1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1saXN0LW9wdGlvbjpob3Zlcixib2R5LmRhcmstbW9kZSAubWF0LWxpc3Qtb3B0aW9uOmZvY3VzLGJvZHkuZGFyay1tb2RlIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cyxib2R5LmRhcmstbW9kZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXN7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb246aG92ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb246Zm9jdXN7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZW51LXBhbmVse2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZW51LWl0ZW17YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXSxib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1hdC1tZW51LXN1Ym1lbnUtaWNvbixib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1hdC1pY29uLW5vLWNvbG9ye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtc3VibWVudS1pY29ue2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZW51LWl0ZW06aG92ZXI6bm90KFtkaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSxib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZDpub3QoW2Rpc2FibGVkXSl7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3J7YmFja2dyb3VuZDojNDI0MjQyfWJvZHkuZGFyay1tb2RlIC5tYXQtcGFnaW5hdG9yLGJvZHkuZGFyay1tb2RlIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2Vye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnR7Ym9yZGVyLXRvcDoycHggc29saWQgI2ZmZjtib3JkZXItcmlnaHQ6MnB4IHNvbGlkICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3ItZmlyc3QsYm9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3ItbGFzdHtib3JkZXItdG9wOjJweCBzb2xpZCAjZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdHtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiM2MDNmMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6IzYwM2YyNH1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5ke2ZpbGw6IzYwM2YyNH1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOiM2MDNmMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiM2MTM1MzJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6IzYxMzUzMn1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIgY2lyY2xle3N0cm9rZTojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGV7c3Ryb2tlOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIubWF0LXdhcm4gY2lyY2xle3N0cm9rZTojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudDphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xle2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXNlbGVjdC12YWx1ZXtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zZWxlY3QtcGFuZWx7YmFja2dyb3VuZDojNDI0MjQyfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpe2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXItY29udGFpbmVye2JhY2tncm91bmQtY29sb3I6IzMwMzAzMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZHJhd2Vye2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZHJhd2VyLm1hdC1kcmF3ZXItcHVzaHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpe2JveC1zaGFkb3c6MHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZHJhd2VyLXNpZGV7Ym9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZHtib3JkZXItbGVmdDpzb2xpZCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMTIpO2JvcmRlci1yaWdodDpub25lfWJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRle2JvcmRlci1sZWZ0OnNvbGlkIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xMik7Ym9yZGVyLXJpZ2h0Om5vbmV9Ym9keS5kYXJrLW1vZGUgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmR7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3due2JhY2tncm91bmQtY29sb3I6cmdiYSgxODksMTg5LDE4OSwuNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kLWNvbG9yOiNiZGJkYmR9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLGJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwxMDgsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwxMDgsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsYm9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLGJvZHkuZGFyay1tb2RlIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlcjpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsYm9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1kaXNhYmxlZDpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsYm9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tze2JhY2tncm91bmQtaW1hZ2U6cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrc3tiYWNrZ3JvdW5kLWltYWdlOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KX1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXI6aG92ZXJbYXJpYS1kaXNhYmxlZD1mYWxzZV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlclthcmlhLWRpc2FibGVkPXRydWVde2N1cnNvcjpkZWZhdWx0fUBtZWRpYShob3Zlcjogbm9uZSl7Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kOm5vbmV9fWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLW9wdGlvbmFse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KTtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb257Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtYWNjZW50IC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtYWNjZW50IC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIubWF0LXdhcm4gLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIubWF0LXdhcm4gLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9ye2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1hY3RpdmV7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1lcnJvcntjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcHBlci12ZXJ0aWNhbHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZXtib3JkZXItbGVmdC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixib2R5LmRhcmstbW9kZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5le2JvcmRlci10b3AtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtc29ydC1oZWFkZXItYXJyb3d7Y29sb3I6I2M2YzZjNn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWhlYWRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLW5hdi1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLWhlYWRlcntib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xMik7Ym9yZGVyLWJvdHRvbTpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXXtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyLXRvcDpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUxLDE0MCwwLC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTEsMTQwLDAsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjA1LDIxMCwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUxLDE0MCwwLC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmssYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3tjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtib3JkZXItY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MSwxNDAsMCwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluayxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3tjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtib3JkZXItY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjA1LDIxMCwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVke2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhcntiYWNrZ3JvdW5kOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIubWF0LXByaW1hcnl7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLm1hdC1hY2NlbnR7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLm1hdC13YXJue2JhY2tncm91bmQ6I2Y0NDMzNjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtcmlwcGxlLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC12YWx1ZSxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtYXJyb3csYm9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjppbmhlcml0fWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6Y3VycmVudENvbG9yfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbHRpcHtiYWNrZ3JvdW5kOnJnYmEoOTcsOTcsOTcsLjkpfWJvZHkuZGFyay1tb2RlIC5tYXQtdHJlZXtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC10cmVlLW5vZGUsYm9keS5kYXJrLW1vZGUgLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbmFjay1iYXItY29udGFpbmVye2NvbG9yOnJnYmEoMCwwLDAsLjg3KTtiYWNrZ3JvdW5kOiNmYWZhZmE7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbntjb2xvcjppbmhlcml0fQo8L3N0eWxlPgoKPHN0eWxlPgogIGh0bWwsCiAgYm9keSB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpOwoKICAgIC8qIExlZ2FjeSBtZWNoYW5pc20gdG8gYXZvaWQgaXNzdWVzIHdpdGggc3VicGl4ZWwgYW50aS1hbGlhc2luZyBvbiBtYWNPUy4KICAgICAqCiAgICAgKiBJbiB0aGUgcGFzdCBbMV0sIG1hY09TIHN1YnBpeGVsIEFBIGNhdXNlZCBleGNlc3NpdmUgYm9sZGluZyBmb3IgbGlnaHQtb24tZGFyayB0ZXh0OyB0aGlzIHJ1bGUKICAgICAqIGF2b2lkcyB0aGF0IGJ5IHJlcXVlc3Rpbmcgbm9uLXN1YnBpeGVsIEFBIGFsd2F5cywgcmF0aGVyIHRoYW4gdGhlIGRlZmF1bHQgYmVoYXZpb3IsIHdoaWNoIGlzCiAgICAgKiB0byB1c2Ugc3VicGl4ZWwgQUEgd2hlbiBhdmFpbGFibGUuIFRoZSBvcmlnaW5hbCBpc3N1ZSB3YXMgImZpeGVkIiBieSByZW1vdmluZyBzdWJwaXhlbCBBQSBpbgogICAgICogbWFjT1MgMTQgKE1vamF2ZSksIGJ1dCBmb3IgbGVnYWN5IHJlYXNvbnMgdGhleSBwcmVzZXJ2ZWQgdGhlIGJvbGRpbmcgZWZmZWN0IGFzIGFuIG9wdGlvbi4KICAgICAqIENocm9tZSB0aGVuIGluIHR1cm4gdXBkYXRlZCBpdHMgZm9udCByZW5kZXJpbmcgdG8gYXBwbHkgdGhhdCBib2xkaW5nIGVmZmVjdCBbMl0sIHdoaWNoIG1lYW5zCiAgICAgKiB0aGF0IGV2ZW4gdGhvdWdoIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgZG9jcyBbM10gc3VnZ2VzdCB0aGF0IHNldHRpbmcgYGFudGlhbGlhc2VkYAogICAgICogd291bGQgaGF2ZSBubyBlZmZlY3QgZm9yIHJlY2VudCB2ZXJzaW9ucyBvZiBtYWNPUywgaXQgc3RpbGwgaXMgbmVlZGVkIHRvIGF2b2lkIHRoZSBib2xkaW5nLgogICAgICoKICAgICAqIFsxXTogaHR0cDovL3d3dy5saWdodGVycmEuY29tL2FydGljbGVzL21hY29zeHRleHRhYWJ1Zy8KICAgICAqIFsyXTogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9ODU4ODYxCiAgICAgKiBbM106IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9mb250LXNtb290aAogICAgICoKICAgICAqLwoKICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogIH0KICBub3NjcmlwdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgbWF4LXdpZHRoOiA2MDBweDsKICAgIHBhZGRpbmc6IDEwcHg7CiAgfQo8L3N0eWxlPgoKPC9oZWFkPjxib2R5Pjxub3NjcmlwdD4KICAgIDxoMT5UZW5zb3JCb2FyZCByZXF1aXJlcyBKYXZhU2NyaXB0PC9oMT4KICAgIDxwPlBsZWFzZSBlbmFibGUgSmF2YVNjcmlwdCBhbmQgcmVsb2FkIHRoaXMgcGFnZS48L3A+CiAgPC9ub3NjcmlwdD48dGItd2ViYXBwPjwvdGItd2ViYXBwPjxzY3JpcHQgc3JjPSJpbmRleC5qcz9fZmlsZV9oYXNoPTI5YTdkMDNhIj48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==", + "headers": [ + [ + "content-type", + "text/html; charset=utf-8" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/environment": { + "data": "eyJ2ZXJzaW9uIjogIjIuNy4wIiwgImRhdGFfbG9jYXRpb24iOiAiLi90dXRvcmlhbF9leHBzIiwgIndpbmRvd190aXRsZSI6ICIiLCAiZXhwZXJpbWVudF9uYW1lIjogIiIsICJleHBlcmltZW50X2Rlc2NyaXB0aW9uIjogIiIsICJjcmVhdGlvbl90aW1lIjogMC4wLCAiZGVidWciOiB7ImRhdGFfcHJvdmlkZXIiOiAiR3JwY0RhdGFQcm92aWRlcihhZGRyPSdsb2NhbGhvc3Q6MzMwNzcnKSIsICJmbGFncyI6IHsibG9nZGlyIjogIi4vdHV0b3JpYWxfZXhwcyIsICJsb2dkaXJfc3BlYyI6ICIiLCAiaG9zdCI6IG51bGwsICJiaW5kX2FsbCI6IGZhbHNlLCAicG9ydCI6IG51bGwsICJyZXVzZV9wb3J0IjogZmFsc2UsICJsb2FkX2Zhc3QiOiAiYXV0byIsICJleHRyYV9kYXRhX3NlcnZlcl9mbGFncyI6ICIiLCAiZ3JwY19jcmVkc190eXBlIjogImxvY2FsIiwgImdycGNfZGF0YV9wcm92aWRlciI6ICIiLCAicHVyZ2Vfb3JwaGFuZWRfZGF0YSI6IHRydWUsICJkYiI6ICIiLCAiZGJfaW1wb3J0IjogZmFsc2UsICJpbnNwZWN0IjogZmFsc2UsICJ2ZXJzaW9uX3RiIjogZmFsc2UsICJ0YWciOiAiIiwgImV2ZW50X2ZpbGUiOiAiIiwgInBhdGhfcHJlZml4IjogIiIsICJ3aW5kb3dfdGl0bGUiOiAiIiwgIm1heF9yZWxvYWRfdGhyZWFkcyI6IDEsICJyZWxvYWRfaW50ZXJ2YWwiOiA1LjAsICJyZWxvYWRfdGFzayI6ICJhdXRvIiwgInJlbG9hZF9tdWx0aWZpbGUiOiBudWxsLCAicmVsb2FkX211bHRpZmlsZV9pbmFjdGl2ZV9zZWNzIjogODY0MDAsICJnZW5lcmljX2RhdGEiOiAiYXV0byIsICJzYW1wbGVzX3Blcl9wbHVnaW4iOiB7fSwgImN1c3RvbV9wcmVkaWN0X2ZuIjogIiIsICJ3aXRfZGF0YV9kaXIiOiAiIiwgIl9fdGVuc29yYm9hcmRfc3ViY29tbWFuZCI6ICJzZXJ2ZSJ9fX0=", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/tags": { + "data": "e30=", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugins_listing": { + "data": "eyJzY2FsYXJzIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAic2NhbGFycyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtc2NhbGFyLWRhc2hib2FyZCJ9fSwgImN1c3RvbV9zY2FsYXJzIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiQ3VzdG9tIFNjYWxhcnMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWN1c3RvbS1zY2FsYXItZGFzaGJvYXJkIn19LCAiaW1hZ2VzIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiaW1hZ2VzIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1pbWFnZS1kYXNoYm9hcmQifX0sICJhdWRpbyI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogImF1ZGlvIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1hdWRpby1kYXNoYm9hcmQifX0sICJkZWJ1Z2dlci12MiI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogIkRlYnVnZ2VyIFYyIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIk5HX0NPTVBPTkVOVCJ9fSwgImdyYXBocyI6IHsiZGlzYWJsZV9yZWxvYWQiOiB0cnVlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiZ3JhcGhzIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1ncmFwaC1kYXNoYm9hcmQifX0sICJkaXN0cmlidXRpb25zIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiZGlzdHJpYnV0aW9ucyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtZGlzdHJpYnV0aW9uLWRhc2hib2FyZCJ9fSwgImhpc3RvZ3JhbXMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJoaXN0b2dyYW1zIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1oaXN0b2dyYW0tZGFzaGJvYXJkIn19LCAidGV4dCI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogInRleHQiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLXRleHQtZGFzaGJvYXJkIn19LCAicHJfY3VydmVzIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiUFIgQ3VydmVzIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1wci1jdXJ2ZS1kYXNoYm9hcmQifX0sICJwcm9maWxlX3JlZGlyZWN0IjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiUHJvZmlsZSIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtcHJvZmlsZS1yZWRpcmVjdC1kYXNoYm9hcmQifX0sICJocGFyYW1zIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiaHBhcmFtcyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtaHBhcmFtcy1kYXNoYm9hcmQifX0sICJtZXNoIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAibWVzaCIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAibWVzaC1kYXNoYm9hcmQifX0sICJ0aW1lc2VyaWVzIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiVGltZSBTZXJpZXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiTkdfQ09NUE9ORU5UIn19LCAicHJvamVjdG9yIjogeyJkaXNhYmxlX3JlbG9hZCI6IHRydWUsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJwcm9qZWN0b3IiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiSUZSQU1FIiwgIm1vZHVsZV9wYXRoIjogIi9kYXRhL3BsdWdpbi9wcm9qZWN0b3IvaW5kZXguanMifX0sICJ3aGF0aWYiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJXaGF0LUlmIFRvb2wiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiSUZSQU1FIiwgIm1vZHVsZV9wYXRoIjogIi9kYXRhL3BsdWdpbi93aGF0aWYvaW5kZXguanMifX19", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/runs": { + "data": "W10=", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/RxZJdnzeo3R5zSexge8UUZBw1xU1rKptJj_0jans920.woff2": { + "data": "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", + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/d-6IYplOFocCacKzxwXSOJBw1xU1rKptJj_0jans920.woff2": { + "data": "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", + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/oMMgfZMQthOryQo9n22dcuvvDin1pK8aKteLpeZ5c0A.woff2": { + "data": "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", + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/vPcynSL0qHq_6dX7lKVByXYhjbSpvc47ee6xR_80Hnw.woff2": { + "data": "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", + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/icon_bundle.svg": { + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiA/Pjxzdmc+PGRlZnM+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iYXJyb3dfZG93bndhcmRfMjRweCI+PHBhdGggZmlsbD0iIzAxMDEwMSIgZD0iTTIwIDEybC0xLjQxLTEuNDFMMTMgMTYuMTdWNGgtMnYxMi4xN2wtNS41OC01LjU5TDQgMTJsOCA4IDgtOHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJhcnJvd191cHdhcmRfMjRweCI+PHBhdGggZD0iTTQgMTJsMS40MSAxLjQxTDExIDcuODNWMjBoMlY3LjgzbDUuNTggNS41OUwyMCAxMmwtOC04LTggOHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJicmlnaHRuZXNzXzZfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0yMCAxNS4zMUwyMy4zMSAxMiAyMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OXpNMTIgMThWNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJidWdfcmVwb3J0XzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMjAgOGgtMi44MWMtLjQ1LS43OC0xLjA3LTEuNDUtMS44Mi0xLjk2TDE3IDQuNDEgMTUuNTkgM2wtMi4xNyAyLjE3QzEyLjk2IDUuMDYgMTIuNDkgNSAxMiA1Yy0uNDkgMC0uOTYuMDYtMS40MS4xN0w4LjQxIDMgNyA0LjQxbDEuNjIgMS42M0M3Ljg4IDYuNTUgNy4yNiA3LjIyIDYuODEgOEg0djJoMi4wOWMtLjA1LjMzLS4wOS42Ni0uMDkgMXYxSDR2MmgydjFjMCAuMzQuMDQuNjcuMDkgMUg0djJoMi44MWMxLjA0IDEuNzkgMi45NyAzIDUuMTkgM3M0LjE1LTEuMjEgNS4xOS0zSDIwdi0yaC0yLjA5Yy4wNS0uMzMuMDktLjY2LjA5LTF2LTFoMnYtMmgtMnYtMWMwLS4zNC0uMDQtLjY3LS4wOS0xSDIwVjh6bS02IDhoLTR2LTJoNHYyem0wLTRoLTR2LTJoNHYyeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImNhbmNlbF8yNHB4Ij48cGF0aCBkPSJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptNSAxMy41OUwxNS41OSAxNyAxMiAxMy40MSA4LjQxIDE3IDcgMTUuNTkgMTAuNTkgMTIgNyA4LjQxIDguNDEgNyAxMiAxMC41OSAxNS41OSA3IDE3IDguNDEgMTMuNDEgMTIgMTcgMTUuNTl6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iY2hldnJvbl9sZWZ0XzI0cHgiPjxwYXRoIGQ9Ik0xNS40MSA3LjQxTDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxTDEwLjgzIDEyeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImNoZXZyb25fcmlnaHRfMjRweCI+PHBhdGggZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImNsZWFyXzI0cHgiPjxwYXRoIGQ9Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iY2xvc2VfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iY29udGVudF9jb3B5XzI0cHgiPjxwYXRoIGQ9Ik0xNiAxSDRjLTEuMSAwLTIgLjktMiAydjE0aDJWM2gxMlYxem0zIDRIOGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxMWMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE2SDhWN2gxMXYxNHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZGFya19tb2RlXzI0cHgiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiwzYy00Ljk3LDAtOSw0LjAzLTksOXM0LjAzLDksOSw5czktNC4wMyw5LTljMC0wLjQ2LTAuMDQtMC45Mi0wLjEtMS4zNmMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNiBjLTIuOTgsMC01LjQtMi40Mi01LjQtNS40YzAtMS44MSwwLjg5LTMuNDIsMi4yNi00LjRDMTIuOTIsMy4wNCwxMi40NiwzLDEyLDNMMTIsM3oiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJkb25lXzI0cHgiPjxwYXRoIGQ9Ik05IDE2LjJMNC44IDEybC0xLjQgMS40TDkgMTkgMjEgN2wtMS40LTEuNEw5IDE2LjJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZHJhZ19pbmRpY2F0b3JfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTExIDE4YzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnptLTItOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAtNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTYgNGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTAgMmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZWRpdF8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGMuMzktLjM5LjM5LTEuMDIgMC0xLjQxbC0yLjM0LTIuMzRjLS4zOS0uMzktMS4wMi0uMzktMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3oiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJlcnJvcl8yNHB4Ij48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2NnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJleHBhbmRfbGVzc18yNHB4Ij48cGF0aCBkPSJNMTIgOGwtNiA2IDEuNDEgMS40MUwxMiAxMC44M2w0LjU5IDQuNThMMTggMTR6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iZXhwYW5kX21vcmVfMjRweCI+PHBhdGggZD0iTTE2LjU5IDguNTlMMTIgMTMuMTcgNy40MSA4LjU5IDYgMTBsNiA2IDYtNnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZmlsdGVyX2FsdF8yNHB4Ij48Zz48cGF0aCBkPSJNMCwwaDI0IE0yNCwyNEgwIiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTQuMjUsNS42MUM2LjI3LDguMiwxMCwxMywxMCwxM3Y2YzAsMC41NSwwLjQ1LDEsMSwxaDJjMC41NSwwLDEtMC40NSwxLTF2LTZjMCwwLDMuNzItNC44LDUuNzQtNy4zOSBDMjAuMjUsNC45NSwxOS43OCw0LDE4Ljk1LDRINS4wNEM0LjIxLDQsMy43NCw0Ljk1LDQuMjUsNS42MXoiLz48cGF0aCBkPSJNMCwwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48L2c+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iZmxhZ18yNHB4Ij48cGF0aCBkPSJNMTQuNCA2TDE0IDRINXYxN2gydi03aDUuNmwuNCAyaDdWNnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJmdWxsc2NyZWVuXzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNNyAxNEg1djVoNXYtMkg3di0zem0tMi00aDJWN2gzVjVINXY1em0xMiA3aC0zdjJoNXYtNWgtMnYzek0xNCA1djJoM3YzaDJWNWgtNXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJmdWxsc2NyZWVuX2V4aXRfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik01IDE2aDN2M2gydi01SDV2MnptMy04SDV2Mmg1VjVIOHYzem02IDExaDJ2LTNoM3YtMmgtNXY1em0yLTExVjVoLTJ2NWg1VjhoLTN6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iZ2V0X2FwcF8yNHB4Ij48cGF0aCBkPSJNMTkgOWgtNFYzSDl2Nkg1bDcgNyA3LTd6TTUgMTh2MmgxNHYtMkg1eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9Imdyb3VwX3dvcmtfMjRweCI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTggMTcuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6TTkuNSA4YzAtMS4zOCAxLjEyLTIuNSAyLjUtMi41czIuNSAxLjEyIDIuNSAyLjUtMS4xMiAyLjUtMi41IDIuNVM5LjUgOS4zOCA5LjUgOHptNi41IDkuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iaGVscF9vdXRsaW5lXzI0cHgiPjxwYXRoIGQ9Ik0xMSAxOGgydi0yaC0ydjJ6bTEtMTZDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0wLTE0Yy0yLjIxIDAtNCAxLjc5LTQgNGgyYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJjMCAyLTMgMS43NS0zIDVoMmMwLTIuMjUgMy0yLjUgMy01IDAtMi4yMS0xLjc5LTQtNC00eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9ImltYWdlX3NlYXJjaF8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE4IDEzdjdINFY2aDUuMDJjLjA1LS43MS4yMi0xLjM4LjQ4LTJINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtNWwtMi0yem0tMS41IDVoLTExbDIuNzUtMy41MyAxLjk2IDIuMzYgMi43NS0zLjU0em0yLjgtOS4xMWMuNDQtLjcuNy0xLjUxLjctMi4zOUMyMCA0LjAxIDE3Ljk5IDIgMTUuNSAyUzExIDQuMDEgMTEgNi41czIuMDEgNC41IDQuNDkgNC41Yy44OCAwIDEuNy0uMjYgMi4zOS0uN0wyMSAxMy40MiAyMi40MiAxMiAxOS4zIDguODl6TTE1LjUgOUMxNC4xMiA5IDEzIDcuODggMTMgNi41UzE0LjEyIDQgMTUuNSA0IDE4IDUuMTIgMTggNi41IDE2Ljg4IDkgMTUuNSA5eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImluZm9fb3V0bGluZV8yNHB4Ij48cGF0aCBkPSJNMTEgMTdoMnYtNmgtMnY2em0xLTE1QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpNMTEgOWgyVjdoLTJ2MnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ia2VlcF8yNHB4Ij48Zz48cmVjdCBmaWxsPSJub25lIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiLz48L2c+PGc+PHBhdGggZD0iTTE2LDlWNGwxLDBjMC41NSwwLDEtMC40NSwxLTF2MGMwLTAuNTUtMC40NS0xLTEtMUg3QzYuNDUsMiw2LDIuNDUsNiwzdjAgYzAsMC41NSwwLjQ1LDEsMSwxbDEsMHY1YzAsMS42Ni0xLjM0LDMtMywzaDB2Mmg1Ljk3djdsMSwxbDEtMXYtN0gxOXYtMmgwQzE3LjM0LDEyLDE2LDEwLjY2LDE2LDl6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9ImtlZXBfb3V0bGluZV8yNHB4Ij48Zz48cmVjdCBmaWxsPSJub25lIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiLz48L2c+PGc+PHBhdGggZD0iTTE0LDR2NWMwLDEuMTIsMC4zNywyLjE2LDEsM0g5YzAuNjUtMC44NiwxLTEuOSwxLTNWNEgxNCBNMTcsMkg3QzYuNDUsMiw2LDIuNDUsNiwzYzAsMC41NSwwLjQ1LDEsMSwxYzAsMCwwLDAsMCwwbDEsMHY1IGMwLDEuNjYtMS4zNCwzLTMsM3YyaDUuOTd2N2wxLDFsMS0xdi03SDE5di0yYzAsMCwwLDAsMCwwYy0xLjY2LDAtMy0xLjM0LTMtM1Y0bDEsMGMwLDAsMCwwLDAsMGMwLjU1LDAsMS0wLjQ1LDEtMSBDMTgsMi40NSwxNy41NSwyLDE3LDJMMTcsMnoiLz48L2c+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9ImxpZ2h0X21vZGVfMjRweCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTEyLDdjLTIuNzYsMC01LDIuMjQtNSw1czIuMjQsNSw1LDVzNS0yLjI0LDUtNVMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDAgYy0wLjU1LDAtMSwwLjQ1LTEsMVMxLjQ1LDEzLDIsMTN6IE0yMCwxM2wyLDBjMC41NSwwLDEtMC40NSwxLTFzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjIgYzAsMC41NSwwLjQ1LDEsMSwxczEtMC40NSwxLTFWMmMwLTAuNTUtMC40NS0xLTEtMVMxMSwxLjQ1LDExLDJ6IE0xMSwyMHYyYzAsMC41NSwwLjQ1LDEsMSwxczEtMC40NSwxLTF2LTJjMC0wLjU1LTAuNDUtMS0xLTEgQzExLjQ1LDE5LDExLDE5LjQ1LDExLDIweiBNNS45OSw0LjU4Yy0wLjM5LTAuMzktMS4wMy0wLjM5LTEuNDEsMGMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDFsMS4wNiwxLjA2IGMwLjM5LDAuMzksMS4wMywwLjM5LDEuNDEsMHMwLjM5LTEuMDMsMC0xLjQxTDUuOTksNC41OHogTTE4LjM2LDE2Ljk1Yy0wLjM5LTAuMzktMS4wMy0wLjM5LTEuNDEsMGMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgbDEuMDYsMS4wNmMwLjM5LDAuMzksMS4wMywwLjM5LDEuNDEsMGMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MUwxOC4zNiwxNi45NXogTTE5LjQyLDUuOTljMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgYy0wLjM5LTAuMzktMS4wMy0wLjM5LTEuNDEsMGwtMS4wNiwxLjA2Yy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDE5LjQyLDUuOTl6IE03LjA1LDE4LjM2IGMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDFzMS4wMywwLjM5LDEuNDEsMEw3LjA1LDE4LjM2eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJsaW5lX3dlaWdodF8yNHB4Ij48Zz48cmVjdCBmaWxsPSJub25lIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiIHg9IjAiLz48L2c+PGc+PGc+PGc+PHBhdGggZD0iTTMsMTdoMTh2LTJIM1YxN3ogTTMsMjBoMTh2LTFIM1YyMHogTTMsMTNoMTh2LTNIM1YxM3ogTTMsNHY0aDE4VjRIM3oiLz48L2c+PC9nPjwvZz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJtb3JlX3ZlcnRfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xMiA4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMCAyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJub3RpZmljYXRpb25zX25vbmVfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xMiAyMmMxLjEgMCAyLS45IDItMmgtNGMwIDEuMS45IDIgMiAyem02LTZ2LTVjMC0zLjA3LTEuNjMtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjQgNS4zNiA2IDcuOTIgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0yem0tMiAxSDh2LTZjMC0yLjQ4IDEuNTEtNC41IDQtNC41czQgMi4wMiA0IDQuNXY2eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9InBhbGV0dGVfMjRweCI+PHBhdGggZD0iTTEyIDNjLTQuOTcgMC05IDQuMDMtOSA5czQuMDMgOSA5IDljLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjM5LS4xNS0uNzQtLjM5LTEuMDEtLjIzLS4yNi0uMzgtLjYxLS4zOC0uOTkgMC0uODMuNjctMS41IDEuNS0xLjVIMTZjMi43NiAwIDUtMi4yNCA1LTUgMC00LjQyLTQuMDMtOC05LTh6bS01LjUgOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgOSA2LjUgOSA4IDkuNjcgOCAxMC41IDcuMzMgMTIgNi41IDEyem0zLTRDOC42NyA4IDggNy4zMyA4IDYuNVM4LjY3IDUgOS41IDVzMS41LjY3IDEuNSAxLjVTMTAuMzMgOCA5LjUgOHptNSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTMuNjcgNSAxNC41IDVzMS41LjY3IDEuNSAxLjVTMTUuMzMgOCAxNC41IDh6bTMgNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE2LjY3IDkgMTcuNSA5czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJyZWZyZXNoXzI0cHgiPjxwYXRoIGQ9Ik0xNy42NSA2LjM1QzE2LjIgNC45IDE0LjIxIDQgMTIgNGMtNC40MiAwLTcuOTkgMy41OC03Ljk5IDhzMy41NyA4IDcuOTkgOGMzLjczIDAgNi44NC0yLjU1IDcuNzMtNmgtMi4wOGMtLjgyIDIuMzMtMy4wNCA0LTUuNjUgNC0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJzZWFyY2hfMjRweCI+PHBhdGggZD0iTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0ic2V0dGluZ3NfMjRweCI+PHBhdGggZD0iTTE5LjQzIDEyLjk4Yy4wNC0uMzIuMDctLjY0LjA3LS45OHMtLjAzLS42Ni0uMDctLjk4bDIuMTEtMS42NWMuMTktLjE1LjI0LS40Mi4xMi0uNjRsLTItMy40NmMtLjEyLS4yMi0uMzktLjMtLjYxLS4yMmwtMi40OSAxYy0uNTItLjQtMS4wOC0uNzMtMS42OS0uOThsLS4zOC0yLjY1QzE0LjQ2IDIuMTggMTQuMjUgMiAxNCAyaC00Yy0uMjUgMC0uNDYuMTgtLjQ5LjQybC0uMzggMi42NWMtLjYxLjI1LTEuMTcuNTktMS42OS45OGwtMi40OS0xYy0uMjMtLjA5LS40OSAwLS42MS4yMmwtMiAzLjQ2Yy0uMTMuMjItLjA3LjQ5LjEyLjY0bDIuMTEgMS42NWMtLjA0LjMyLS4wNy42NS0uMDcuOThzLjAzLjY2LjA3Ljk4bC0yLjExIDEuNjVjLS4xOS4xNS0uMjQuNDItLjEyLjY0bDIgMy40NmMuMTIuMjIuMzkuMy42MS4yMmwyLjQ5LTFjLjUyLjQgMS4wOC43MyAxLjY5Ljk4bC4zOCAyLjY1Yy4wMy4yNC4yNC40Mi40OS40Mmg0Yy4yNSAwIC40Ni0uMTguNDktLjQybC4zOC0yLjY1Yy42MS0uMjUgMS4xNy0uNTkgMS42OS0uOThsMi40OSAxYy4yMy4wOS40OSAwIC42MS0uMjJsMi0zLjQ2Yy4xMi0uMjIuMDctLjQ5LS4xMi0uNjRsLTIuMTEtMS42NXpNMTIgMTUuNWMtMS45MyAwLTMuNS0xLjU3LTMuNS0zLjVzMS41Ny0zLjUgMy41LTMuNSAzLjUgMS41NyAzLjUgMy41LTEuNTcgMy41LTMuNSAzLjV6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ic2V0dGluZ3NfYmFja3VwX3Jlc3RvcmVfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xNCAxMmMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDIgLjkgMiAyIDIgMi0uOSAyLTJ6bS0yLTljLTQuOTcgMC05IDQuMDMtOSA5SDBsNCA0IDQtNEg1YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS41MSAwLTIuOTEtLjQ5LTQuMDYtMS4zbC0xLjQyIDEuNDRDOC4wNCAyMC4zIDkuOTQgMjEgMTIgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ic2V0dGluZ3Nfb3ZlcnNjYW5fMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xMi4wMSA1LjVMMTAgOGg0bC0xLjk5LTIuNXpNMTggMTB2NGwyLjUtMS45OUwxOCAxMHpNNiAxMGwtMi41IDIuMDFMNiAxNHYtNHptOCA2aC00bDIuMDEgMi41TDE0IDE2em03LTEzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOTloMTh2MTQuMDJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0idmlzaWJpbGl0eV9vZmZfMjRweCI+PHBhdGggZD0iTTEyIDdjMi43NiAwIDUgMi4yNCA1IDUgMCAuNjUtLjEzIDEuMjYtLjM2IDEuODNsMi45MiAyLjkyYzEuNTEtMS4yNiAyLjctMi44OSAzLjQzLTQuNzUtMS43My00LjM5LTYtNy41LTExLTcuNS0xLjQgMC0yLjc0LjI1LTMuOTguN2wyLjE2IDIuMTZDMTAuNzQgNy4xMyAxMS4zNSA3IDEyIDd6TTIgNC4yN2wyLjI4IDIuMjguNDYuNDZDMy4wOCA4LjMgMS43OCAxMC4wMiAxIDEyYzEuNzMgNC4zOSA2IDcuNSAxMSA3LjUgMS41NSAwIDMuMDMtLjMgNC4zOC0uODRsLjQyLjQyTDE5LjczIDIyIDIxIDIwLjczIDMuMjcgMyAyIDQuMjd6TTcuNTMgOS44bDEuNTUgMS41NWMtLjA1LjIxLS4wOC40My0uMDguNjUgMCAxLjY2IDEuMzQgMyAzIDMgLjIyIDAgLjQ0LS4wMy42NS0uMDhsMS41NSAxLjU1Yy0uNjcuMzMtMS40MS41My0yLjIuNTMtMi43NiAwLTUtMi4yNC01LTUgMC0uNzkuMi0xLjUzLjUzLTIuMnptNC4zMS0uNzhsMy4xNSAzLjE1LjAyLS4xNmMwLTEuNjYtMS4zNC0zLTMtM2wtLjE3LjAxeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9Indhcm5pbmdfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xIDIxaDIyTDEyIDIgMSAyMXptMTItM2gtMnYtMmgydjJ6bTAtNGgtMnYtNGgydjR6Ii8+PC9zdmc+PC9kZWZzPjwvc3ZnPgo=", + "headers": [ + [ + "content-type", + "image/svg+xml; charset=utf-8" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/index.js?_file_hash=29a7d03a": { + "data": "dmFyIENMT1NVUkVfTk9fREVQUyA9IHRydWU7CndpbmRvdy5wb2x5bWVyU2tpcExvYWRpbmdGb250Um9ib3RvID0gdHJ1ZTsKLyoqIHZpbTogZXQ6dHM9NDpzdz00OnN0cz00CiAqIEBsaWNlbnNlIFJlcXVpcmVKUyAyLjMuNiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycy4KICogUmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIGh0dHBzOi8vZ2l0aHViLmNvbS9yZXF1aXJlanMvcmVxdWlyZWpzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UKICovCi8vTm90IHVzaW5nIHN0cmljdDogdW5ldmVuIHN0cmljdCBzdXBwb3J0IGluIGJyb3dzZXJzLCAjMzkyLCBhbmQgY2F1c2VzCi8vcHJvYmxlbXMgd2l0aCByZXF1aXJlanMuZXhlYygpL3RyYW5zcGlsZXIgcGx1Z2lucyB0aGF0IG1heSBub3QgYmUgc3RyaWN0LgovKmpzbGludCByZWdleHA6IHRydWUsIG5vbWVuOiB0cnVlLCBzbG9wcHk6IHRydWUgKi8KLypnbG9iYWwgd2luZG93LCBuYXZpZ2F0b3IsIGRvY3VtZW50LCBpbXBvcnRTY3JpcHRzLCBzZXRUaW1lb3V0LCBvcGVyYSAqLwoKdmFyIHJlcXVpcmVqcywgcmVxdWlyZSwgZGVmaW5lOwooZnVuY3Rpb24gKGdsb2JhbCwgc2V0VGltZW91dCkgewogICAgdmFyIHJlcSwgcywgaGVhZCwgYmFzZUVsZW1lbnQsIGRhdGFNYWluLCBzcmMsCiAgICAgICAgaW50ZXJhY3RpdmVTY3JpcHQsIGN1cnJlbnRseUFkZGluZ1NjcmlwdCwgbWFpblNjcmlwdCwgc3ViUGF0aCwKICAgICAgICB2ZXJzaW9uID0gJzIuMy42JywKICAgICAgICBjb21tZW50UmVnRXhwID0gL1wvXCpbXHNcU10qP1wqXC98KFteOiInPV18XilcL1wvLiokL21nLAogICAgICAgIGNqc1JlcXVpcmVSZWdFeHAgPSAvW14uXVxzKnJlcXVpcmVccypcKFxzKlsiJ10oW14nIlxzXSspWyInXVxzKlwpL2csCiAgICAgICAganNTdWZmaXhSZWdFeHAgPSAvXC5qcyQvLAogICAgICAgIGN1cnJEaXJSZWdFeHAgPSAvXlwuXC8vLAogICAgICAgIG9wID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgICBvc3RyaW5nID0gb3AudG9TdHJpbmcsCiAgICAgICAgaGFzT3duID0gb3AuaGFzT3duUHJvcGVydHksCiAgICAgICAgaXNCcm93c2VyID0gISEodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50KSwKICAgICAgICBpc1dlYldvcmtlciA9ICFpc0Jyb3dzZXIgJiYgdHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICd1bmRlZmluZWQnLAogICAgICAgIC8vUFMzIGluZGljYXRlcyBsb2FkZWQgYW5kIGNvbXBsZXRlLCBidXQgbmVlZCB0byB3YWl0IGZvciBjb21wbGV0ZQogICAgICAgIC8vc3BlY2lmaWNhbGx5LiBTZXF1ZW5jZSBpcyAnbG9hZGluZycsICdsb2FkZWQnLCBleGVjdXRpb24sCiAgICAgICAgLy8gdGhlbiAnY29tcGxldGUnLiBUaGUgVUEgY2hlY2sgaXMgdW5mb3J0dW5hdGUsIGJ1dCBub3Qgc3VyZSBob3cKICAgICAgICAvL3RvIGZlYXR1cmUgdGVzdCB3L28gY2F1c2luZyBwZXJmIGlzc3Vlcy4KICAgICAgICByZWFkeVJlZ0V4cCA9IGlzQnJvd3NlciAmJiBuYXZpZ2F0b3IucGxhdGZvcm0gPT09ICdQTEFZU1RBVElPTiAzJyA/CiAgICAgICAgICAgICAgICAgICAgICAvXmNvbXBsZXRlJC8gOiAvXihjb21wbGV0ZXxsb2FkZWQpJC8sCiAgICAgICAgZGVmQ29udGV4dE5hbWUgPSAnXycsCiAgICAgICAgLy9PaCB0aGUgdHJhZ2VkeSwgZGV0ZWN0aW5nIG9wZXJhLiBTZWUgdGhlIHVzYWdlIG9mIGlzT3BlcmEgZm9yIHJlYXNvbi4KICAgICAgICBpc09wZXJhID0gdHlwZW9mIG9wZXJhICE9PSAndW5kZWZpbmVkJyAmJiBvcGVyYS50b1N0cmluZygpID09PSAnW29iamVjdCBPcGVyYV0nLAogICAgICAgIGNvbnRleHRzID0ge30sCiAgICAgICAgY2ZnID0ge30sCiAgICAgICAgZ2xvYmFsRGVmUXVldWUgPSBbXSwKICAgICAgICB1c2VJbnRlcmFjdGl2ZSA9IGZhbHNlOwoKICAgIC8vQ291bGQgbWF0Y2ggc29tZXRoaW5nIGxpa2UgJykvL2NvbW1lbnQnLCBkbyBub3QgbG9zZSB0aGUgcHJlZml4IHRvIGNvbW1lbnQuCiAgICBmdW5jdGlvbiBjb21tZW50UmVwbGFjZShtYXRjaCwgc2luZ2xlUHJlZml4KSB7CiAgICAgICAgcmV0dXJuIHNpbmdsZVByZWZpeCB8fCAnJzsKICAgIH0KCiAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKGl0KSB7CiAgICAgICAgcmV0dXJuIG9zdHJpbmcuY2FsbChpdCkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7CiAgICB9CgogICAgZnVuY3Rpb24gaXNBcnJheShpdCkgewogICAgICAgIHJldHVybiBvc3RyaW5nLmNhbGwoaXQpID09PSAnW29iamVjdCBBcnJheV0nOwogICAgfQoKICAgIC8qKgogICAgICogSGVscGVyIGZ1bmN0aW9uIGZvciBpdGVyYXRpbmcgb3ZlciBhbiBhcnJheS4gSWYgdGhlIGZ1bmMgcmV0dXJucwogICAgICogYSB0cnVlIHZhbHVlLCBpdCB3aWxsIGJyZWFrIG91dCBvZiB0aGUgbG9vcC4KICAgICAqLwogICAgZnVuY3Rpb24gZWFjaChhcnksIGZ1bmMpIHsKICAgICAgICBpZiAoYXJ5KSB7CiAgICAgICAgICAgIHZhciBpOwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJ5Lmxlbmd0aDsgaSArPSAxKSB7CiAgICAgICAgICAgICAgICBpZiAoYXJ5W2ldICYmIGZ1bmMoYXJ5W2ldLCBpLCBhcnkpKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGl0ZXJhdGluZyBvdmVyIGFuIGFycmF5IGJhY2t3YXJkcy4gSWYgdGhlIGZ1bmMKICAgICAqIHJldHVybnMgYSB0cnVlIHZhbHVlLCBpdCB3aWxsIGJyZWFrIG91dCBvZiB0aGUgbG9vcC4KICAgICAqLwogICAgZnVuY3Rpb24gZWFjaFJldmVyc2UoYXJ5LCBmdW5jKSB7CiAgICAgICAgaWYgKGFyeSkgewogICAgICAgICAgICB2YXIgaTsKICAgICAgICAgICAgZm9yIChpID0gYXJ5Lmxlbmd0aCAtIDE7IGkgPiAtMTsgaSAtPSAxKSB7CiAgICAgICAgICAgICAgICBpZiAoYXJ5W2ldICYmIGZ1bmMoYXJ5W2ldLCBpLCBhcnkpKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaGFzUHJvcChvYmosIHByb3ApIHsKICAgICAgICByZXR1cm4gaGFzT3duLmNhbGwob2JqLCBwcm9wKTsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRPd24ob2JqLCBwcm9wKSB7CiAgICAgICAgcmV0dXJuIGhhc1Byb3Aob2JqLCBwcm9wKSAmJiBvYmpbcHJvcF07CiAgICB9CgogICAgLyoqCiAgICAgKiBDeWNsZXMgb3ZlciBwcm9wZXJ0aWVzIGluIGFuIG9iamVjdCBhbmQgY2FsbHMgYSBmdW5jdGlvbiBmb3IgZWFjaAogICAgICogcHJvcGVydHkgdmFsdWUuIElmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgdHJ1dGh5IHZhbHVlLCB0aGVuIHRoZQogICAgICogaXRlcmF0aW9uIGlzIHN0b3BwZWQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVhY2hQcm9wKG9iaiwgZnVuYykgewogICAgICAgIHZhciBwcm9wOwogICAgICAgIGZvciAocHJvcCBpbiBvYmopIHsKICAgICAgICAgICAgaWYgKGhhc1Byb3Aob2JqLCBwcm9wKSkgewogICAgICAgICAgICAgICAgaWYgKGZ1bmMob2JqW3Byb3BdLCBwcm9wKSkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogU2ltcGxlIGZ1bmN0aW9uIHRvIG1peCBpbiBwcm9wZXJ0aWVzIGZyb20gc291cmNlIGludG8gdGFyZ2V0LAogICAgICogYnV0IG9ubHkgaWYgdGFyZ2V0IGRvZXMgbm90IGFscmVhZHkgaGF2ZSBhIHByb3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIG1peGluKHRhcmdldCwgc291cmNlLCBmb3JjZSwgZGVlcFN0cmluZ01peGluKSB7CiAgICAgICAgaWYgKHNvdXJjZSkgewogICAgICAgICAgICBlYWNoUHJvcChzb3VyY2UsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkgewogICAgICAgICAgICAgICAgaWYgKGZvcmNlIHx8ICFoYXNQcm9wKHRhcmdldCwgcHJvcCkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZGVlcFN0cmluZ01peGluICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgIWlzQXJyYXkodmFsdWUpICYmICFpc0Z1bmN0aW9uKHZhbHVlKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAhKHZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0YXJnZXRbcHJvcF0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFtwcm9wXSA9IHt9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIG1peGluKHRhcmdldFtwcm9wXSwgdmFsdWUsIGZvcmNlLCBkZWVwU3RyaW5nTWl4aW4pOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFtwcm9wXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0YXJnZXQ7CiAgICB9CgogICAgLy9TaW1pbGFyIHRvIEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLCBidXQgdGhlICd0aGlzJyBvYmplY3QgaXMgc3BlY2lmaWVkCiAgICAvL2ZpcnN0LCBzaW5jZSBpdCBpcyBlYXNpZXIgdG8gcmVhZC9maWd1cmUgb3V0IHdoYXQgJ3RoaXMnIHdpbGwgYmUuCiAgICBmdW5jdGlvbiBiaW5kKG9iaiwgZm4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkob2JqLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICB9CgogICAgZnVuY3Rpb24gc2NyaXB0cygpIHsKICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpOwogICAgfQoKICAgIGZ1bmN0aW9uIGRlZmF1bHRPbkVycm9yKGVycikgewogICAgICAgIHRocm93IGVycjsKICAgIH0KCiAgICAvL0FsbG93IGdldHRpbmcgYSBnbG9iYWwgdGhhdCBpcyBleHByZXNzZWQgaW4KICAgIC8vZG90IG5vdGF0aW9uLCBsaWtlICdhLmIuYycuCiAgICBmdW5jdGlvbiBnZXRHbG9iYWwodmFsdWUpIHsKICAgICAgICBpZiAoIXZhbHVlKSB7CiAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICB9CiAgICAgICAgdmFyIGcgPSBnbG9iYWw7CiAgICAgICAgZWFjaCh2YWx1ZS5zcGxpdCgnLicpLCBmdW5jdGlvbiAocGFydCkgewogICAgICAgICAgICBnID0gZ1twYXJ0XTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gZzsKICAgIH0KCiAgICAvKioKICAgICAqIENvbnN0cnVjdHMgYW4gZXJyb3Igd2l0aCBhIHBvaW50ZXIgdG8gYW4gVVJMIHdpdGggbW9yZSBpbmZvcm1hdGlvbi4KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZXJyb3IgSUQgdGhhdCBtYXBzIHRvIGFuIElEIG9uIGEgd2ViIHBhZ2UuCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbWVzc2FnZSBodW1hbiByZWFkYWJsZSBlcnJvci4KICAgICAqIEBwYXJhbSB7RXJyb3J9IFtlcnJdIHRoZSBvcmlnaW5hbCBlcnJvciwgaWYgdGhlcmUgaXMgb25lLgogICAgICoKICAgICAqIEByZXR1cm5zIHtFcnJvcn0KICAgICAqLwogICAgZnVuY3Rpb24gbWFrZUVycm9yKGlkLCBtc2csIGVyciwgcmVxdWlyZU1vZHVsZXMpIHsKICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtc2cgKyAnXG5odHRwczovL3JlcXVpcmVqcy5vcmcvZG9jcy9lcnJvcnMuaHRtbCMnICsgaWQpOwogICAgICAgIGUucmVxdWlyZVR5cGUgPSBpZDsKICAgICAgICBlLnJlcXVpcmVNb2R1bGVzID0gcmVxdWlyZU1vZHVsZXM7CiAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICBlLm9yaWdpbmFsRXJyb3IgPSBlcnI7CiAgICAgICAgfQogICAgICAgIHJldHVybiBlOwogICAgfQoKICAgIGlmICh0eXBlb2YgZGVmaW5lICE9PSAndW5kZWZpbmVkJykgewogICAgICAgIC8vSWYgYSBkZWZpbmUgaXMgYWxyZWFkeSBpbiBwbGF5IHZpYSBhbm90aGVyIEFNRCBsb2FkZXIsCiAgICAgICAgLy9kbyBub3Qgb3ZlcndyaXRlLgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAodHlwZW9mIHJlcXVpcmVqcyAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICBpZiAoaXNGdW5jdGlvbihyZXF1aXJlanMpKSB7CiAgICAgICAgICAgIC8vRG8gbm90IG92ZXJ3cml0ZSBhbiBleGlzdGluZyByZXF1aXJlanMgaW5zdGFuY2UuCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY2ZnID0gcmVxdWlyZWpzOwogICAgICAgIHJlcXVpcmVqcyA9IHVuZGVmaW5lZDsKICAgIH0KCiAgICAvL0FsbG93IGZvciBhIHJlcXVpcmUgY29uZmlnIG9iamVjdAogICAgaWYgKHR5cGVvZiByZXF1aXJlICE9PSAndW5kZWZpbmVkJyAmJiAhaXNGdW5jdGlvbihyZXF1aXJlKSkgewogICAgICAgIC8vYXNzdW1lIGl0IGlzIGEgY29uZmlnIG9iamVjdC4KICAgICAgICBjZmcgPSByZXF1aXJlOwogICAgICAgIHJlcXVpcmUgPSB1bmRlZmluZWQ7CiAgICB9CgogICAgZnVuY3Rpb24gbmV3Q29udGV4dChjb250ZXh0TmFtZSkgewogICAgICAgIHZhciBpbkNoZWNrTG9hZGVkLCBNb2R1bGUsIGNvbnRleHQsIGhhbmRsZXJzLAogICAgICAgICAgICBjaGVja0xvYWRlZFRpbWVvdXRJZCwKICAgICAgICAgICAgY29uZmlnID0gewogICAgICAgICAgICAgICAgLy9EZWZhdWx0cy4gRG8gbm90IHNldCBhIGRlZmF1bHQgZm9yIG1hcAogICAgICAgICAgICAgICAgLy9jb25maWcgdG8gc3BlZWQgdXAgbm9ybWFsaXplKCksIHdoaWNoCiAgICAgICAgICAgICAgICAvL3dpbGwgcnVuIGZhc3RlciBpZiB0aGVyZSBpcyBubyBkZWZhdWx0LgogICAgICAgICAgICAgICAgd2FpdFNlY29uZHM6IDcsCiAgICAgICAgICAgICAgICBiYXNlVXJsOiAnLi8nLAogICAgICAgICAgICAgICAgcGF0aHM6IHt9LAogICAgICAgICAgICAgICAgYnVuZGxlczoge30sCiAgICAgICAgICAgICAgICBwa2dzOiB7fSwKICAgICAgICAgICAgICAgIHNoaW06IHt9LAogICAgICAgICAgICAgICAgY29uZmlnOiB7fQogICAgICAgICAgICB9LAogICAgICAgICAgICByZWdpc3RyeSA9IHt9LAogICAgICAgICAgICAvL3JlZ2lzdHJ5IG9mIGp1c3QgZW5hYmxlZCBtb2R1bGVzLCB0byBzcGVlZAogICAgICAgICAgICAvL2N5Y2xlIGJyZWFraW5nIGNvZGUgd2hlbiBsb3RzIG9mIG1vZHVsZXMKICAgICAgICAgICAgLy9hcmUgcmVnaXN0ZXJlZCwgYnV0IG5vdCBhY3RpdmF0ZWQuCiAgICAgICAgICAgIGVuYWJsZWRSZWdpc3RyeSA9IHt9LAogICAgICAgICAgICB1bmRlZkV2ZW50cyA9IHt9LAogICAgICAgICAgICBkZWZRdWV1ZSA9IFtdLAogICAgICAgICAgICBkZWZpbmVkID0ge30sCiAgICAgICAgICAgIHVybEZldGNoZWQgPSB7fSwKICAgICAgICAgICAgYnVuZGxlc01hcCA9IHt9LAogICAgICAgICAgICByZXF1aXJlQ291bnRlciA9IDEsCiAgICAgICAgICAgIHVubm9ybWFsaXplZENvdW50ZXIgPSAxOwoKICAgICAgICAvKioKICAgICAgICAgKiBUcmltcyB0aGUgLiBhbmQgLi4gZnJvbSBhbiBhcnJheSBvZiBwYXRoIHNlZ21lbnRzLgogICAgICAgICAqIEl0IHdpbGwga2VlcCBhIGxlYWRpbmcgcGF0aCBzZWdtZW50IGlmIGEgLi4gd2lsbCBiZWNvbWUKICAgICAgICAgKiB0aGUgZmlyc3QgcGF0aCBzZWdtZW50LCB0byBoZWxwIHdpdGggbW9kdWxlIG5hbWUgbG9va3VwcywKICAgICAgICAgKiB3aGljaCBhY3QgbGlrZSBwYXRocywgYnV0IGNhbiBiZSByZW1hcHBlZC4gQnV0IHRoZSBlbmQgcmVzdWx0LAogICAgICAgICAqIGFsbCBwYXRocyB0aGF0IHVzZSB0aGlzIGZ1bmN0aW9uIHNob3VsZCBsb29rIG5vcm1hbGl6ZWQuCiAgICAgICAgICogTk9URTogdGhpcyBtZXRob2QgTU9ESUZJRVMgdGhlIGlucHV0IGFycmF5LgogICAgICAgICAqIEBwYXJhbSB7QXJyYXl9IGFyeSB0aGUgYXJyYXkgb2YgcGF0aCBzZWdtZW50cy4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiB0cmltRG90cyhhcnkpIHsKICAgICAgICAgICAgdmFyIGksIHBhcnQ7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcnkubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIHBhcnQgPSBhcnlbaV07CiAgICAgICAgICAgICAgICBpZiAocGFydCA9PT0gJy4nKSB7CiAgICAgICAgICAgICAgICAgICAgYXJ5LnNwbGljZShpLCAxKTsKICAgICAgICAgICAgICAgICAgICBpIC09IDE7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcnQgPT09ICcuLicpIHsKICAgICAgICAgICAgICAgICAgICAvLyBJZiBhdCB0aGUgc3RhcnQsIG9yIHByZXZpb3VzIHZhbHVlIGlzIHN0aWxsIC4uLAogICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgdGhlbSBzbyB0aGF0IHdoZW4gY29udmVydGVkIHRvIGEgcGF0aCBpdCBtYXkKICAgICAgICAgICAgICAgICAgICAvLyBzdGlsbCB3b3JrIHdoZW4gY29udmVydGVkIHRvIGEgcGF0aCwgZXZlbiB0aG91Z2gKICAgICAgICAgICAgICAgICAgICAvLyBhcyBhbiBJRCBpdCBpcyBsZXNzIHRoYW4gaWRlYWwuIEluIGxhcmdlciBwb2ludAogICAgICAgICAgICAgICAgICAgIC8vIHJlbGVhc2VzLCBtYXkgYmUgYmV0dGVyIHRvIGp1c3Qga2ljayBvdXQgYW4gZXJyb3IuCiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IDAgfHwgKGkgPT09IDEgJiYgYXJ5WzJdID09PSAnLi4nKSB8fCBhcnlbaSAtIDFdID09PSAnLi4nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXJ5LnNwbGljZShpIC0gMSwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgIGkgLT0gMjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIEdpdmVuIGEgcmVsYXRpdmUgbW9kdWxlIG5hbWUsIGxpa2UgLi9zb21ldGhpbmcsIG5vcm1hbGl6ZSBpdCB0bwogICAgICAgICAqIGEgcmVhbCBuYW1lIHRoYXQgY2FuIGJlIG1hcHBlZCB0byBhIHBhdGguCiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgdGhlIHJlbGF0aXZlIG5hbWUKICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gYmFzZU5hbWUgYSByZWFsIG5hbWUgdGhhdCB0aGUgbmFtZSBhcmcgaXMgcmVsYXRpdmUKICAgICAgICAgKiB0by4KICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGFwcGx5TWFwIGFwcGx5IHRoZSBtYXAgY29uZmlnIHRvIHRoZSB2YWx1ZS4gU2hvdWxkCiAgICAgICAgICogb25seSBiZSBkb25lIGlmIHRoaXMgbm9ybWFsaXphdGlvbiBpcyBmb3IgYSBkZXBlbmRlbmN5IElELgogICAgICAgICAqIEByZXR1cm5zIHtTdHJpbmd9IG5vcm1hbGl6ZWQgbmFtZQogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZShuYW1lLCBiYXNlTmFtZSwgYXBwbHlNYXApIHsKICAgICAgICAgICAgdmFyIHBrZ01haW4sIG1hcFZhbHVlLCBuYW1lUGFydHMsIGksIGosIG5hbWVTZWdtZW50LCBsYXN0SW5kZXgsCiAgICAgICAgICAgICAgICBmb3VuZE1hcCwgZm91bmRJLCBmb3VuZFN0YXJNYXAsIHN0YXJJLCBub3JtYWxpemVkQmFzZVBhcnRzLAogICAgICAgICAgICAgICAgYmFzZVBhcnRzID0gKGJhc2VOYW1lICYmIGJhc2VOYW1lLnNwbGl0KCcvJykpLAogICAgICAgICAgICAgICAgbWFwID0gY29uZmlnLm1hcCwKICAgICAgICAgICAgICAgIHN0YXJNYXAgPSBtYXAgJiYgbWFwWycqJ107CgogICAgICAgICAgICAvL0FkanVzdCBhbnkgcmVsYXRpdmUgcGF0aHMuCiAgICAgICAgICAgIGlmIChuYW1lKSB7CiAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zcGxpdCgnLycpOwogICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gbmFtZS5sZW5ndGggLSAxOwoKICAgICAgICAgICAgICAgIC8vIElmIHdhbnRpbmcgbm9kZSBJRCBjb21wYXRpYmlsaXR5LCBzdHJpcCAuanMgZnJvbSBlbmQKICAgICAgICAgICAgICAgIC8vIG9mIElEcy4gSGF2ZSB0byBkbyB0aGlzIGhlcmUsIGFuZCBub3QgaW4gbmFtZVRvVXJsCiAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIG5vZGUgYWxsb3dzIGVpdGhlciAuanMgb3Igbm9uIC5qcyB0byBtYXAKICAgICAgICAgICAgICAgIC8vIHRvIHNhbWUgZmlsZS4KICAgICAgICAgICAgICAgIGlmIChjb25maWcubm9kZUlkQ29tcGF0ICYmIGpzU3VmZml4UmVnRXhwLnRlc3QobmFtZVtsYXN0SW5kZXhdKSkgewogICAgICAgICAgICAgICAgICAgIG5hbWVbbGFzdEluZGV4XSA9IG5hbWVbbGFzdEluZGV4XS5yZXBsYWNlKGpzU3VmZml4UmVnRXhwLCAnJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gU3RhcnRzIHdpdGggYSAnLicgc28gbmVlZCB0aGUgYmFzZU5hbWUKICAgICAgICAgICAgICAgIGlmIChuYW1lWzBdLmNoYXJBdCgwKSA9PT0gJy4nICYmIGJhc2VQYXJ0cykgewogICAgICAgICAgICAgICAgICAgIC8vQ29udmVydCBiYXNlTmFtZSB0byBhcnJheSwgYW5kIGxvcCBvZmYgdGhlIGxhc3QgcGFydCwKICAgICAgICAgICAgICAgICAgICAvL3NvIHRoYXQgLiBtYXRjaGVzIHRoYXQgJ2RpcmVjdG9yeScgYW5kIG5vdCBuYW1lIG9mIHRoZSBiYXNlTmFtZSdzCiAgICAgICAgICAgICAgICAgICAgLy9tb2R1bGUuIEZvciBpbnN0YW5jZSwgYmFzZU5hbWUgb2YgJ29uZS90d28vdGhyZWUnLCBtYXBzIHRvCiAgICAgICAgICAgICAgICAgICAgLy8nb25lL3R3by90aHJlZS5qcycsIGJ1dCB3ZSB3YW50IHRoZSBkaXJlY3RvcnksICdvbmUvdHdvJyBmb3IKICAgICAgICAgICAgICAgICAgICAvL3RoaXMgbm9ybWFsaXphdGlvbi4KICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkQmFzZVBhcnRzID0gYmFzZVBhcnRzLnNsaWNlKDAsIGJhc2VQYXJ0cy5sZW5ndGggLSAxKTsKICAgICAgICAgICAgICAgICAgICBuYW1lID0gbm9ybWFsaXplZEJhc2VQYXJ0cy5jb25jYXQobmFtZSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdHJpbURvdHMobmFtZSk7CiAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5qb2luKCcvJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vQXBwbHkgbWFwIGNvbmZpZyBpZiBhdmFpbGFibGUuCiAgICAgICAgICAgIGlmIChhcHBseU1hcCAmJiBtYXAgJiYgKGJhc2VQYXJ0cyB8fCBzdGFyTWFwKSkgewogICAgICAgICAgICAgICAgbmFtZVBhcnRzID0gbmFtZS5zcGxpdCgnLycpOwoKICAgICAgICAgICAgICAgIG91dGVyTG9vcDogZm9yIChpID0gbmFtZVBhcnRzLmxlbmd0aDsgaSA+IDA7IGkgLT0gMSkgewogICAgICAgICAgICAgICAgICAgIG5hbWVTZWdtZW50ID0gbmFtZVBhcnRzLnNsaWNlKDAsIGkpLmpvaW4oJy8nKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2VQYXJ0cykgewogICAgICAgICAgICAgICAgICAgICAgICAvL0ZpbmQgdGhlIGxvbmdlc3QgYmFzZU5hbWUgc2VnbWVudCBtYXRjaCBpbiB0aGUgY29uZmlnLgogICAgICAgICAgICAgICAgICAgICAgICAvL1NvLCBkbyBqb2lucyBvbiB0aGUgYmlnZ2VzdCB0byBzbWFsbGVzdCBsZW5ndGhzIG9mIGJhc2VQYXJ0cy4KICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChqID0gYmFzZVBhcnRzLmxlbmd0aDsgaiA+IDA7IGogLT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwVmFsdWUgPSBnZXRPd24obWFwLCBiYXNlUGFydHMuc2xpY2UoMCwgaikuam9pbignLycpKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Jhc2VOYW1lIHNlZ21lbnQgaGFzIGNvbmZpZywgZmluZCBpZiBpdCBoYXMgb25lIGZvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzIG5hbWUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFwVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBWYWx1ZSA9IGdldE93bihtYXBWYWx1ZSwgbmFtZVNlZ21lbnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXBWYWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL01hdGNoLCB1cGRhdGUgbmFtZSB0byB0aGUgbmV3IHZhbHVlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZE1hcCA9IG1hcFZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZEkgPSBpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlckxvb3A7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvL0NoZWNrIGZvciBhIHN0YXIgbWFwIG1hdGNoLCBidXQganVzdCBob2xkIG9uIHRvIGl0LAogICAgICAgICAgICAgICAgICAgIC8vaWYgdGhlcmUgaXMgYSBzaG9ydGVyIHNlZ21lbnQgbWF0Y2ggbGF0ZXIgaW4gYSBtYXRjaGluZwogICAgICAgICAgICAgICAgICAgIC8vY29uZmlnLCB0aGVuIGZhdm9yIG92ZXIgdGhpcyBzdGFyIG1hcC4KICAgICAgICAgICAgICAgICAgICBpZiAoIWZvdW5kU3Rhck1hcCAmJiBzdGFyTWFwICYmIGdldE93bihzdGFyTWFwLCBuYW1lU2VnbWVudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRTdGFyTWFwID0gZ2V0T3duKHN0YXJNYXAsIG5hbWVTZWdtZW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgc3RhckkgPSBpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoIWZvdW5kTWFwICYmIGZvdW5kU3Rhck1hcCkgewogICAgICAgICAgICAgICAgICAgIGZvdW5kTWFwID0gZm91bmRTdGFyTWFwOwogICAgICAgICAgICAgICAgICAgIGZvdW5kSSA9IHN0YXJJOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChmb3VuZE1hcCkgewogICAgICAgICAgICAgICAgICAgIG5hbWVQYXJ0cy5zcGxpY2UoMCwgZm91bmRJLCBmb3VuZE1hcCk7CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVQYXJ0cy5qb2luKCcvJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIElmIHRoZSBuYW1lIHBvaW50cyB0byBhIHBhY2thZ2UncyBuYW1lLCB1c2UKICAgICAgICAgICAgLy8gdGhlIHBhY2thZ2UgbWFpbiBpbnN0ZWFkLgogICAgICAgICAgICBwa2dNYWluID0gZ2V0T3duKGNvbmZpZy5wa2dzLCBuYW1lKTsKCiAgICAgICAgICAgIHJldHVybiBwa2dNYWluID8gcGtnTWFpbiA6IG5hbWU7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiByZW1vdmVTY3JpcHQobmFtZSkgewogICAgICAgICAgICBpZiAoaXNCcm93c2VyKSB7CiAgICAgICAgICAgICAgICBlYWNoKHNjcmlwdHMoKSwgZnVuY3Rpb24gKHNjcmlwdE5vZGUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0Tm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmVxdWlyZW1vZHVsZScpID09PSBuYW1lICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHROb2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlY29udGV4dCcpID09PSBjb250ZXh0LmNvbnRleHROYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdE5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JpcHROb2RlKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGhhc1BhdGhGYWxsYmFjayhpZCkgewogICAgICAgICAgICB2YXIgcGF0aENvbmZpZyA9IGdldE93bihjb25maWcucGF0aHMsIGlkKTsKICAgICAgICAgICAgaWYgKHBhdGhDb25maWcgJiYgaXNBcnJheShwYXRoQ29uZmlnKSAmJiBwYXRoQ29uZmlnLmxlbmd0aCA+IDEpIHsKICAgICAgICAgICAgICAgIC8vUG9wIG9mZiB0aGUgZmlyc3QgYXJyYXkgdmFsdWUsIHNpbmNlIGl0IGZhaWxlZCwgYW5kCiAgICAgICAgICAgICAgICAvL3JldHJ5CiAgICAgICAgICAgICAgICBwYXRoQ29uZmlnLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICBjb250ZXh0LnJlcXVpcmUudW5kZWYoaWQpOwoKICAgICAgICAgICAgICAgIC8vQ3VzdG9tIHJlcXVpcmUgdGhhdCBkb2VzIG5vdCBkbyBtYXAgdHJhbnNsYXRpb24sIHNpbmNlCiAgICAgICAgICAgICAgICAvL0lEIGlzICJhYnNvbHV0ZSIsIGFscmVhZHkgbWFwcGVkL3Jlc29sdmVkLgogICAgICAgICAgICAgICAgY29udGV4dC5tYWtlUmVxdWlyZShudWxsLCB7CiAgICAgICAgICAgICAgICAgICAgc2tpcE1hcDogdHJ1ZQogICAgICAgICAgICAgICAgfSkoW2lkXSk7CgogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vVHVybnMgYSBwbHVnaW4hcmVzb3VyY2UgdG8gW3BsdWdpbiwgcmVzb3VyY2VdCiAgICAgICAgLy93aXRoIHRoZSBwbHVnaW4gYmVpbmcgdW5kZWZpbmVkIGlmIHRoZSBuYW1lCiAgICAgICAgLy9kaWQgbm90IGhhdmUgYSBwbHVnaW4gcHJlZml4LgogICAgICAgIGZ1bmN0aW9uIHNwbGl0UHJlZml4KG5hbWUpIHsKICAgICAgICAgICAgdmFyIHByZWZpeCwKICAgICAgICAgICAgICAgIGluZGV4ID0gbmFtZSA/IG5hbWUuaW5kZXhPZignIScpIDogLTE7CiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7CiAgICAgICAgICAgICAgICBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBpbmRleCk7CiAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoaW5kZXggKyAxLCBuYW1lLmxlbmd0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIFtwcmVmaXgsIG5hbWVdOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogQ3JlYXRlcyBhIG1vZHVsZSBtYXBwaW5nIHRoYXQgaW5jbHVkZXMgcGx1Z2luIHByZWZpeCwgbW9kdWxlCiAgICAgICAgICogbmFtZSwgYW5kIHBhdGguIElmIHBhcmVudE1vZHVsZU1hcCBpcyBwcm92aWRlZCBpdCB3aWxsCiAgICAgICAgICogYWxzbyBub3JtYWxpemUgdGhlIG5hbWUgdmlhIHJlcXVpcmUubm9ybWFsaXplKCkKICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIHRoZSBtb2R1bGUgbmFtZQogICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBbcGFyZW50TW9kdWxlTWFwXSBwYXJlbnQgbW9kdWxlIG1hcAogICAgICAgICAqIGZvciB0aGUgbW9kdWxlIG5hbWUsIHVzZWQgdG8gcmVzb2x2ZSByZWxhdGl2ZSBuYW1lcy4KICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGlzTm9ybWFsaXplZDogaXMgdGhlIElEIGFscmVhZHkgbm9ybWFsaXplZC4KICAgICAgICAgKiBUaGlzIGlzIHRydWUgaWYgdGhpcyBjYWxsIGlzIGRvbmUgZm9yIGEgZGVmaW5lKCkgbW9kdWxlIElELgogICAgICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gYXBwbHlNYXA6IGFwcGx5IHRoZSBtYXAgY29uZmlnIHRvIHRoZSBJRC4KICAgICAgICAgKiBTaG91bGQgb25seSBiZSB0cnVlIGlmIHRoaXMgbWFwIGlzIGZvciBhIGRlcGVuZGVuY3kuCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJucyB7T2JqZWN0fQogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIG1ha2VNb2R1bGVNYXAobmFtZSwgcGFyZW50TW9kdWxlTWFwLCBpc05vcm1hbGl6ZWQsIGFwcGx5TWFwKSB7CiAgICAgICAgICAgIHZhciB1cmwsIHBsdWdpbk1vZHVsZSwgc3VmZml4LCBuYW1lUGFydHMsCiAgICAgICAgICAgICAgICBwcmVmaXggPSBudWxsLAogICAgICAgICAgICAgICAgcGFyZW50TmFtZSA9IHBhcmVudE1vZHVsZU1hcCA/IHBhcmVudE1vZHVsZU1hcC5uYW1lIDogbnVsbCwKICAgICAgICAgICAgICAgIG9yaWdpbmFsTmFtZSA9IG5hbWUsCiAgICAgICAgICAgICAgICBpc0RlZmluZSA9IHRydWUsCiAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9ICcnOwoKICAgICAgICAgICAgLy9JZiBubyBuYW1lLCB0aGVuIGl0IG1lYW5zIGl0IGlzIGEgcmVxdWlyZSBjYWxsLCBnZW5lcmF0ZSBhbgogICAgICAgICAgICAvL2ludGVybmFsIG5hbWUuCiAgICAgICAgICAgIGlmICghbmFtZSkgewogICAgICAgICAgICAgICAgaXNEZWZpbmUgPSBmYWxzZTsKICAgICAgICAgICAgICAgIG5hbWUgPSAnX0ByJyArIChyZXF1aXJlQ291bnRlciArPSAxKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbmFtZVBhcnRzID0gc3BsaXRQcmVmaXgobmFtZSk7CiAgICAgICAgICAgIHByZWZpeCA9IG5hbWVQYXJ0c1swXTsKICAgICAgICAgICAgbmFtZSA9IG5hbWVQYXJ0c1sxXTsKCiAgICAgICAgICAgIGlmIChwcmVmaXgpIHsKICAgICAgICAgICAgICAgIHByZWZpeCA9IG5vcm1hbGl6ZShwcmVmaXgsIHBhcmVudE5hbWUsIGFwcGx5TWFwKTsKICAgICAgICAgICAgICAgIHBsdWdpbk1vZHVsZSA9IGdldE93bihkZWZpbmVkLCBwcmVmaXgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL0FjY291bnQgZm9yIHJlbGF0aXZlIHBhdGhzIGlmIHRoZXJlIGlzIGEgYmFzZSBuYW1lLgogICAgICAgICAgICBpZiAobmFtZSkgewogICAgICAgICAgICAgICAgaWYgKHByZWZpeCkgewogICAgICAgICAgICAgICAgICAgIGlmIChpc05vcm1hbGl6ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE5hbWUgPSBuYW1lOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGx1Z2luTW9kdWxlICYmIHBsdWdpbk1vZHVsZS5ub3JtYWxpemUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9QbHVnaW4gaXMgbG9hZGVkLCB1c2UgaXRzIG5vcm1hbGl6ZSBtZXRob2QuCiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWROYW1lID0gcGx1Z2luTW9kdWxlLm5vcm1hbGl6ZShuYW1lLCBmdW5jdGlvbiAobmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShuYW1lLCBwYXJlbnROYW1lLCBhcHBseU1hcCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIG5lc3RlZCBwbHVnaW4gcmVmZXJlbmNlcywgdGhlbiBkbyBub3QgdHJ5IHRvCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSwgYXMgaXQgd2lsbCBub3Qgbm9ybWFsaXplIGNvcnJlY3RseS4gVGhpcwogICAgICAgICAgICAgICAgICAgICAgICAvLyBwbGFjZXMgYSByZXN0cmljdGlvbiBvbiByZXNvdXJjZUlkcywgYW5kIHRoZSBsb25nZXIKICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGVybSBzb2x1dGlvbiBpcyBub3QgdG8gbm9ybWFsaXplIHVudGlsIHBsdWdpbnMgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvYWRlZCBhbmQgYWxsIG5vcm1hbGl6YXRpb25zIHRvIGFsbG93IGZvciBhc3luYwogICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2FkaW5nIG9mIGEgbG9hZGVyIHBsdWdpbi4gQnV0IGZvciBub3csIGZpeGVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21tb24gdXNlcy4gRGV0YWlscyBpbiAjMTEzMQogICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9IG5hbWUuaW5kZXhPZignIScpID09PSAtMSA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplKG5hbWUsIHBhcmVudE5hbWUsIGFwcGx5TWFwKSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vQSByZWd1bGFyIG1vZHVsZS4KICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZShuYW1lLCBwYXJlbnROYW1lLCBhcHBseU1hcCk7CgogICAgICAgICAgICAgICAgICAgIC8vTm9ybWFsaXplZCBuYW1lIG1heSBiZSBhIHBsdWdpbiBJRCBkdWUgdG8gbWFwIGNvbmZpZwogICAgICAgICAgICAgICAgICAgIC8vYXBwbGljYXRpb24gaW4gbm9ybWFsaXplLiBUaGUgbWFwIGNvbmZpZyB2YWx1ZXMgbXVzdAogICAgICAgICAgICAgICAgICAgIC8vYWxyZWFkeSBiZSBub3JtYWxpemVkLCBzbyBkbyBub3QgbmVlZCB0byByZWRvIHRoYXQgcGFydC4KICAgICAgICAgICAgICAgICAgICBuYW1lUGFydHMgPSBzcGxpdFByZWZpeChub3JtYWxpemVkTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gbmFtZVBhcnRzWzBdOwogICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWROYW1lID0gbmFtZVBhcnRzWzFdOwogICAgICAgICAgICAgICAgICAgIGlzTm9ybWFsaXplZCA9IHRydWU7CgogICAgICAgICAgICAgICAgICAgIHVybCA9IGNvbnRleHQubmFtZVRvVXJsKG5vcm1hbGl6ZWROYW1lKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9JZiB0aGUgaWQgaXMgYSBwbHVnaW4gaWQgdGhhdCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBpZiBpdCBuZWVkcwogICAgICAgICAgICAvL25vcm1hbGl6YXRpb24sIHN0YW1wIGl0IHdpdGggYSB1bmlxdWUgSUQgc28gdHdvIG1hdGNoaW5nIHJlbGF0aXZlCiAgICAgICAgICAgIC8vaWRzIHRoYXQgbWF5IGNvbmZsaWN0IGNhbiBiZSBzZXBhcmF0ZS4KICAgICAgICAgICAgc3VmZml4ID0gcHJlZml4ICYmICFwbHVnaW5Nb2R1bGUgJiYgIWlzTm9ybWFsaXplZCA/CiAgICAgICAgICAgICAgICAgICAgICdfdW5ub3JtYWxpemVkJyArICh1bm5vcm1hbGl6ZWRDb3VudGVyICs9IDEpIDoKICAgICAgICAgICAgICAgICAgICAgJyc7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgcHJlZml4OiBwcmVmaXgsCiAgICAgICAgICAgICAgICBuYW1lOiBub3JtYWxpemVkTmFtZSwKICAgICAgICAgICAgICAgIHBhcmVudE1hcDogcGFyZW50TW9kdWxlTWFwLAogICAgICAgICAgICAgICAgdW5ub3JtYWxpemVkOiAhIXN1ZmZpeCwKICAgICAgICAgICAgICAgIHVybDogdXJsLAogICAgICAgICAgICAgICAgb3JpZ2luYWxOYW1lOiBvcmlnaW5hbE5hbWUsCiAgICAgICAgICAgICAgICBpc0RlZmluZTogaXNEZWZpbmUsCiAgICAgICAgICAgICAgICBpZDogKHByZWZpeCA/CiAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCArICchJyArIG5vcm1hbGl6ZWROYW1lIDoKICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE5hbWUpICsgc3VmZml4CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBnZXRNb2R1bGUoZGVwTWFwKSB7CiAgICAgICAgICAgIHZhciBpZCA9IGRlcE1hcC5pZCwKICAgICAgICAgICAgICAgIG1vZCA9IGdldE93bihyZWdpc3RyeSwgaWQpOwoKICAgICAgICAgICAgaWYgKCFtb2QpIHsKICAgICAgICAgICAgICAgIG1vZCA9IHJlZ2lzdHJ5W2lkXSA9IG5ldyBjb250ZXh0Lk1vZHVsZShkZXBNYXApOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gbW9kOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gb24oZGVwTWFwLCBuYW1lLCBmbikgewogICAgICAgICAgICB2YXIgaWQgPSBkZXBNYXAuaWQsCiAgICAgICAgICAgICAgICBtb2QgPSBnZXRPd24ocmVnaXN0cnksIGlkKTsKCiAgICAgICAgICAgIGlmIChoYXNQcm9wKGRlZmluZWQsIGlkKSAmJgogICAgICAgICAgICAgICAgICAgICghbW9kIHx8IG1vZC5kZWZpbmVFbWl0Q29tcGxldGUpKSB7CiAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2RlZmluZWQnKSB7CiAgICAgICAgICAgICAgICAgICAgZm4oZGVmaW5lZFtpZF0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbW9kID0gZ2V0TW9kdWxlKGRlcE1hcCk7CiAgICAgICAgICAgICAgICBpZiAobW9kLmVycm9yICYmIG5hbWUgPT09ICdlcnJvcicpIHsKICAgICAgICAgICAgICAgICAgICBmbihtb2QuZXJyb3IpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBtb2Qub24obmFtZSwgZm4pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBvbkVycm9yKGVyciwgZXJyYmFjaykgewogICAgICAgICAgICB2YXIgaWRzID0gZXJyLnJlcXVpcmVNb2R1bGVzLAogICAgICAgICAgICAgICAgbm90aWZpZWQgPSBmYWxzZTsKCiAgICAgICAgICAgIGlmIChlcnJiYWNrKSB7CiAgICAgICAgICAgICAgICBlcnJiYWNrKGVycik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlYWNoKGlkcywgZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG1vZCA9IGdldE93bihyZWdpc3RyeSwgaWQpOwogICAgICAgICAgICAgICAgICAgIGlmIChtb2QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9TZXQgZXJyb3Igb24gbW9kdWxlLCBzbyBpdCBza2lwcyB0aW1lb3V0IGNoZWNrcy4KICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmVycm9yID0gZXJyOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kLmV2ZW50cy5lcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIGlmICghbm90aWZpZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXEub25FcnJvcihlcnIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBJbnRlcm5hbCBtZXRob2QgdG8gdHJhbnNmZXIgZ2xvYmFsUXVldWUgaXRlbXMgdG8gdGhpcyBjb250ZXh0J3MKICAgICAgICAgKiBkZWZRdWV1ZS4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiB0YWtlR2xvYmFsUXVldWUoKSB7CiAgICAgICAgICAgIC8vUHVzaCBhbGwgdGhlIGdsb2JhbERlZlF1ZXVlIGl0ZW1zIGludG8gdGhlIGNvbnRleHQncyBkZWZRdWV1ZQogICAgICAgICAgICBpZiAoZ2xvYmFsRGVmUXVldWUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBlYWNoKGdsb2JhbERlZlF1ZXVlLCBmdW5jdGlvbihxdWV1ZUl0ZW0pIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaWQgPSBxdWV1ZUl0ZW1bMF07CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpZCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5kZWZRdWV1ZU1hcFtpZF0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkZWZRdWV1ZS5wdXNoKHF1ZXVlSXRlbSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGdsb2JhbERlZlF1ZXVlID0gW107CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGhhbmRsZXJzID0gewogICAgICAgICAgICAncmVxdWlyZSc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIGlmIChtb2QucmVxdWlyZSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBtb2QucmVxdWlyZTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChtb2QucmVxdWlyZSA9IGNvbnRleHQubWFrZVJlcXVpcmUobW9kLm1hcCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICAnZXhwb3J0cyc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIG1vZC51c2luZ0V4cG9ydHMgPSB0cnVlOwogICAgICAgICAgICAgICAgaWYgKG1vZC5tYXAuaXNEZWZpbmUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAobW9kLmV4cG9ydHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChkZWZpbmVkW21vZC5tYXAuaWRdID0gbW9kLmV4cG9ydHMpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAobW9kLmV4cG9ydHMgPSBkZWZpbmVkW21vZC5tYXAuaWRdID0ge30pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ21vZHVsZSc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIGlmIChtb2QubW9kdWxlKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vZC5tb2R1bGU7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAobW9kLm1vZHVsZSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG1vZC5tYXAuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIHVyaTogbW9kLm1hcC51cmwsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldE93bihjb25maWcuY29uZmlnLCBtb2QubWFwLmlkKSB8fCB7fTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0czogbW9kLmV4cG9ydHMgfHwgKG1vZC5leHBvcnRzID0ge30pCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBmdW5jdGlvbiBjbGVhblJlZ2lzdHJ5KGlkKSB7CiAgICAgICAgICAgIC8vQ2xlYW4gdXAgbWFjaGluZXJ5IHVzZWQgZm9yIHdhaXRpbmcgbW9kdWxlcy4KICAgICAgICAgICAgZGVsZXRlIHJlZ2lzdHJ5W2lkXTsKICAgICAgICAgICAgZGVsZXRlIGVuYWJsZWRSZWdpc3RyeVtpZF07CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBicmVha0N5Y2xlKG1vZCwgdHJhY2VkLCBwcm9jZXNzZWQpIHsKICAgICAgICAgICAgdmFyIGlkID0gbW9kLm1hcC5pZDsKCiAgICAgICAgICAgIGlmIChtb2QuZXJyb3IpIHsKICAgICAgICAgICAgICAgIG1vZC5lbWl0KCdlcnJvcicsIG1vZC5lcnJvcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0cmFjZWRbaWRdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGVhY2gobW9kLmRlcE1hcHMsIGZ1bmN0aW9uIChkZXBNYXAsIGkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVwSWQgPSBkZXBNYXAuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcCA9IGdldE93bihyZWdpc3RyeSwgZGVwSWQpOwoKICAgICAgICAgICAgICAgICAgICAvL09ubHkgZm9yY2UgdGhpbmdzIHRoYXQgaGF2ZSBub3QgY29tcGxldGVkCiAgICAgICAgICAgICAgICAgICAgLy9iZWluZyBkZWZpbmVkLCBzbyBzdGlsbCBpbiB0aGUgcmVnaXN0cnksCiAgICAgICAgICAgICAgICAgICAgLy9hbmQgb25seSBpZiBpdCBoYXMgbm90IGJlZW4gbWF0Y2hlZCB1cAogICAgICAgICAgICAgICAgICAgIC8vaW4gdGhlIG1vZHVsZSBhbHJlYWR5LgogICAgICAgICAgICAgICAgICAgIGlmIChkZXAgJiYgIW1vZC5kZXBNYXRjaGVkW2ldICYmICFwcm9jZXNzZWRbZGVwSWRdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRPd24odHJhY2VkLCBkZXBJZCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZC5kZWZpbmVEZXAoaSwgZGVmaW5lZFtkZXBJZF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmNoZWNrKCk7IC8vcGFzcyBmYWxzZT8KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrQ3ljbGUoZGVwLCB0cmFjZWQsIHByb2Nlc3NlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHByb2Nlc3NlZFtpZF0gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBjaGVja0xvYWRlZCgpIHsKICAgICAgICAgICAgdmFyIGVyciwgdXNpbmdQYXRoRmFsbGJhY2ssCiAgICAgICAgICAgICAgICB3YWl0SW50ZXJ2YWwgPSBjb25maWcud2FpdFNlY29uZHMgKiAxMDAwLAogICAgICAgICAgICAgICAgLy9JdCBpcyBwb3NzaWJsZSB0byBkaXNhYmxlIHRoZSB3YWl0IGludGVydmFsIGJ5IHVzaW5nIHdhaXRTZWNvbmRzIG9mIDAuCiAgICAgICAgICAgICAgICBleHBpcmVkID0gd2FpdEludGVydmFsICYmIChjb250ZXh0LnN0YXJ0VGltZSArIHdhaXRJbnRlcnZhbCkgPCBuZXcgRGF0ZSgpLmdldFRpbWUoKSwKICAgICAgICAgICAgICAgIG5vTG9hZHMgPSBbXSwKICAgICAgICAgICAgICAgIHJlcUNhbGxzID0gW10sCiAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSBmYWxzZSwKICAgICAgICAgICAgICAgIG5lZWRDeWNsZUNoZWNrID0gdHJ1ZTsKCiAgICAgICAgICAgIC8vRG8gbm90IGJvdGhlciBpZiB0aGlzIGNhbGwgd2FzIGEgcmVzdWx0IG9mIGEgY3ljbGUgYnJlYWsuCiAgICAgICAgICAgIGlmIChpbkNoZWNrTG9hZGVkKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGluQ2hlY2tMb2FkZWQgPSB0cnVlOwoKICAgICAgICAgICAgLy9GaWd1cmUgb3V0IHRoZSBzdGF0ZSBvZiBhbGwgdGhlIG1vZHVsZXMuCiAgICAgICAgICAgIGVhY2hQcm9wKGVuYWJsZWRSZWdpc3RyeSwgZnVuY3Rpb24gKG1vZCkgewogICAgICAgICAgICAgICAgdmFyIG1hcCA9IG1vZC5tYXAsCiAgICAgICAgICAgICAgICAgICAgbW9kSWQgPSBtYXAuaWQ7CgogICAgICAgICAgICAgICAgLy9Ta2lwIHRoaW5ncyB0aGF0IGFyZSBub3QgZW5hYmxlZCBvciBpbiBlcnJvciBzdGF0ZS4KICAgICAgICAgICAgICAgIGlmICghbW9kLmVuYWJsZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFtYXAuaXNEZWZpbmUpIHsKICAgICAgICAgICAgICAgICAgICByZXFDYWxscy5wdXNoKG1vZCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFtb2QuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAvL0lmIHRoZSBtb2R1bGUgc2hvdWxkIGJlIGV4ZWN1dGVkLCBhbmQgaXQgaGFzIG5vdAogICAgICAgICAgICAgICAgICAgIC8vYmVlbiBpbml0ZWQgYW5kIHRpbWUgaXMgdXAsIHJlbWVtYmVyIGl0LgogICAgICAgICAgICAgICAgICAgIGlmICghbW9kLmluaXRlZCAmJiBleHBpcmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNQYXRoRmFsbGJhY2sobW9kSWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ1BhdGhGYWxsYmFjayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9Mb2Fkcy5wdXNoKG1vZElkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVNjcmlwdChtb2RJZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFtb2QuaW5pdGVkICYmIG1vZC5mZXRjaGVkICYmIG1hcC5pc0RlZmluZSkgewogICAgICAgICAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1hcC5wcmVmaXgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTm8gcmVhc29uIHRvIGtlZXAgbG9va2luZyBmb3IgdW5maW5pc2hlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2FkaW5nLiBJZiB0aGUgb25seSBzdGlsbExvYWRpbmcgaXMgYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9wbHVnaW4gcmVzb3VyY2UgdGhvdWdoLCBrZWVwIGdvaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9iZWNhdXNlIGl0IG1heSBiZSB0aGF0IGEgcGx1Z2luIHJlc291cmNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lzIHdhaXRpbmcgb24gYSBub24tcGx1Z2luIGN5Y2xlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChuZWVkQ3ljbGVDaGVjayA9IGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBpZiAoZXhwaXJlZCAmJiBub0xvYWRzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgLy9JZiB3YWl0IHRpbWUgZXhwaXJlZCwgdGhyb3cgZXJyb3Igb2YgdW5sb2FkZWQgbW9kdWxlcy4KICAgICAgICAgICAgICAgIGVyciA9IG1ha2VFcnJvcigndGltZW91dCcsICdMb2FkIHRpbWVvdXQgZm9yIG1vZHVsZXM6ICcgKyBub0xvYWRzLCBudWxsLCBub0xvYWRzKTsKICAgICAgICAgICAgICAgIGVyci5jb250ZXh0TmFtZSA9IGNvbnRleHQuY29udGV4dE5hbWU7CiAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihlcnIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL05vdCBleHBpcmVkLCBjaGVjayBmb3IgYSBjeWNsZS4KICAgICAgICAgICAgaWYgKG5lZWRDeWNsZUNoZWNrKSB7CiAgICAgICAgICAgICAgICBlYWNoKHJlcUNhbGxzLCBmdW5jdGlvbiAobW9kKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWtDeWNsZShtb2QsIHt9LCB7fSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9JZiBzdGlsbCB3YWl0aW5nIG9uIGxvYWRzLCBhbmQgdGhlIHdhaXRpbmcgbG9hZCBpcyBzb21ldGhpbmcKICAgICAgICAgICAgLy9vdGhlciB0aGFuIGEgcGx1Z2luIHJlc291cmNlLCBvciB0aGVyZSBhcmUgc3RpbGwgb3V0c3RhbmRpbmcKICAgICAgICAgICAgLy9zY3JpcHRzLCB0aGVuIGp1c3QgdHJ5IGJhY2sgbGF0ZXIuCiAgICAgICAgICAgIGlmICgoIWV4cGlyZWQgfHwgdXNpbmdQYXRoRmFsbGJhY2spICYmIHN0aWxsTG9hZGluZykgewogICAgICAgICAgICAgICAgLy9Tb21ldGhpbmcgaXMgc3RpbGwgd2FpdGluZyB0byBsb2FkLiBXYWl0IGZvciBpdCwgYnV0IG9ubHkKICAgICAgICAgICAgICAgIC8vaWYgYSB0aW1lb3V0IGlzIG5vdCBhbHJlYWR5IGluIGVmZmVjdC4KICAgICAgICAgICAgICAgIGlmICgoaXNCcm93c2VyIHx8IGlzV2ViV29ya2VyKSAmJiAhY2hlY2tMb2FkZWRUaW1lb3V0SWQpIHsKICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZFRpbWVvdXRJZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgfSwgNTApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpbkNoZWNrTG9hZGVkID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBNb2R1bGUgPSBmdW5jdGlvbiAobWFwKSB7CiAgICAgICAgICAgIHRoaXMuZXZlbnRzID0gZ2V0T3duKHVuZGVmRXZlbnRzLCBtYXAuaWQpIHx8IHt9OwogICAgICAgICAgICB0aGlzLm1hcCA9IG1hcDsKICAgICAgICAgICAgdGhpcy5zaGltID0gZ2V0T3duKGNvbmZpZy5zaGltLCBtYXAuaWQpOwogICAgICAgICAgICB0aGlzLmRlcEV4cG9ydHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5kZXBNYXBzID0gW107CiAgICAgICAgICAgIHRoaXMuZGVwTWF0Y2hlZCA9IFtdOwogICAgICAgICAgICB0aGlzLnBsdWdpbk1hcHMgPSB7fTsKICAgICAgICAgICAgdGhpcy5kZXBDb3VudCA9IDA7CgogICAgICAgICAgICAvKiB0aGlzLmV4cG9ydHMgdGhpcy5mYWN0b3J5CiAgICAgICAgICAgICAgIHRoaXMuZGVwTWFwcyA9IFtdLAogICAgICAgICAgICAgICB0aGlzLmVuYWJsZWQsIHRoaXMuZmV0Y2hlZAogICAgICAgICAgICAqLwogICAgICAgIH07CgogICAgICAgIE1vZHVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgIGluaXQ6IGZ1bmN0aW9uIChkZXBNYXBzLCBmYWN0b3J5LCBlcnJiYWNrLCBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKCiAgICAgICAgICAgICAgICAvL0RvIG5vdCBkbyBtb3JlIGluaXRzIGlmIGFscmVhZHkgZG9uZS4gQ2FuIGhhcHBlbiBpZiB0aGVyZQogICAgICAgICAgICAgICAgLy9hcmUgbXVsdGlwbGUgZGVmaW5lIGNhbGxzIGZvciB0aGUgc2FtZSBtb2R1bGUuIFRoYXQgaXMgbm90CiAgICAgICAgICAgICAgICAvL2Egbm9ybWFsLCBjb21tb24gY2FzZSwgYnV0IGl0IGlzIGFsc28gbm90IHVuZXhwZWN0ZWQuCiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbml0ZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdGhpcy5mYWN0b3J5ID0gZmFjdG9yeTsKCiAgICAgICAgICAgICAgICBpZiAoZXJyYmFjaykgewogICAgICAgICAgICAgICAgICAgIC8vUmVnaXN0ZXIgZm9yIGVycm9ycyBvbiB0aGlzIG1vZHVsZS4KICAgICAgICAgICAgICAgICAgICB0aGlzLm9uKCdlcnJvcicsIGVycmJhY2spOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmV2ZW50cy5lcnJvcikgewogICAgICAgICAgICAgICAgICAgIC8vSWYgbm8gZXJyYmFjayBhbHJlYWR5LCBidXQgdGhlcmUgYXJlIGVycm9yIGxpc3RlbmVycwogICAgICAgICAgICAgICAgICAgIC8vb24gdGhpcyBtb2R1bGUsIHNldCB1cCBhbiBlcnJiYWNrIHRvIHBhc3MgdG8gdGhlIGRlcHMuCiAgICAgICAgICAgICAgICAgICAgZXJyYmFjayA9IGJpbmQodGhpcywgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL0RvIGEgY29weSBvZiB0aGUgZGVwZW5kZW5jeSBhcnJheSwgc28gdGhhdAogICAgICAgICAgICAgICAgLy9zb3VyY2UgaW5wdXRzIGFyZSBub3QgbW9kaWZpZWQuIEZvciBleGFtcGxlCiAgICAgICAgICAgICAgICAvLyJzaGltIiBkZXBzIGFyZSBwYXNzZWQgaW4gaGVyZSBkaXJlY3RseSwgYW5kCiAgICAgICAgICAgICAgICAvL2RvaW5nIGEgZGlyZWN0IG1vZGlmaWNhdGlvbiBvZiB0aGUgZGVwTWFwcyBhcnJheQogICAgICAgICAgICAgICAgLy93b3VsZCBhZmZlY3QgdGhhdCBjb25maWcuCiAgICAgICAgICAgICAgICB0aGlzLmRlcE1hcHMgPSBkZXBNYXBzICYmIGRlcE1hcHMuc2xpY2UoMCk7CgogICAgICAgICAgICAgICAgdGhpcy5lcnJiYWNrID0gZXJyYmFjazsKCiAgICAgICAgICAgICAgICAvL0luZGljYXRlIHRoaXMgbW9kdWxlIGhhcyBiZSBpbml0aWFsaXplZAogICAgICAgICAgICAgICAgdGhpcy5pbml0ZWQgPSB0cnVlOwoKICAgICAgICAgICAgICAgIHRoaXMuaWdub3JlID0gb3B0aW9ucy5pZ25vcmU7CgogICAgICAgICAgICAgICAgLy9Db3VsZCBoYXZlIG9wdGlvbiB0byBpbml0IHRoaXMgbW9kdWxlIGluIGVuYWJsZWQgbW9kZSwKICAgICAgICAgICAgICAgIC8vb3IgY291bGQgaGF2ZSBiZWVuIHByZXZpb3VzbHkgbWFya2VkIGFzIGVuYWJsZWQuIEhvd2V2ZXIsCiAgICAgICAgICAgICAgICAvL3RoZSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB1bnRpbCBpbml0IGlzIGNhbGxlZC4gU28KICAgICAgICAgICAgICAgIC8vaWYgZW5hYmxlZCBwcmV2aW91c2x5LCBub3cgdHJpZ2dlciBkZXBlbmRlbmNpZXMgYXMgZW5hYmxlZC4KICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmVuYWJsZWQgfHwgdGhpcy5lbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgLy9FbmFibGUgdGhpcyBtb2R1bGUgYW5kIGRlcGVuZGVuY2llcy4KICAgICAgICAgICAgICAgICAgICAvL1dpbGwgY2FsbCB0aGlzLmNoZWNrKCkKICAgICAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZSgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBkZWZpbmVEZXA6IGZ1bmN0aW9uIChpLCBkZXBFeHBvcnRzKSB7CiAgICAgICAgICAgICAgICAvL0JlY2F1c2Ugb2YgY3ljbGVzLCBkZWZpbmVkIGNhbGxiYWNrIGZvciBhIGdpdmVuCiAgICAgICAgICAgICAgICAvL2V4cG9ydCBjYW4gYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlLgogICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRlcE1hdGNoZWRbaV0pIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcE1hdGNoZWRbaV0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVwQ291bnQgLT0gMTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcEV4cG9ydHNbaV0gPSBkZXBFeHBvcnRzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgZmV0Y2g6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmZldGNoZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmZldGNoZWQgPSB0cnVlOwoKICAgICAgICAgICAgICAgIGNvbnRleHQuc3RhcnRUaW1lID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCiAgICAgICAgICAgICAgICB2YXIgbWFwID0gdGhpcy5tYXA7CgogICAgICAgICAgICAgICAgLy9JZiB0aGUgbWFuYWdlciBpcyBmb3IgYSBwbHVnaW4gbWFuYWdlZCByZXNvdXJjZSwKICAgICAgICAgICAgICAgIC8vYXNrIHRoZSBwbHVnaW4gdG8gbG9hZCBpdCBub3cuCiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaGltKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5tYWtlUmVxdWlyZSh0aGlzLm1hcCwgewogICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVCdWlsZENhbGxiYWNrOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgfSkodGhpcy5zaGltLmRlcHMgfHwgW10sIGJpbmQodGhpcywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwLnByZWZpeCA/IHRoaXMuY2FsbFBsdWdpbigpIDogdGhpcy5sb2FkKCk7CiAgICAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL1JlZ3VsYXIgZGVwZW5kZW5jeS4KICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwLnByZWZpeCA/IHRoaXMuY2FsbFBsdWdpbigpIDogdGhpcy5sb2FkKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgdXJsID0gdGhpcy5tYXAudXJsOwoKICAgICAgICAgICAgICAgIC8vUmVndWxhciBkZXBlbmRlbmN5LgogICAgICAgICAgICAgICAgaWYgKCF1cmxGZXRjaGVkW3VybF0pIHsKICAgICAgICAgICAgICAgICAgICB1cmxGZXRjaGVkW3VybF0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9hZCh0aGlzLm1hcC5pZCwgdXJsKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDaGVja3MgaWYgdGhlIG1vZHVsZSBpcyByZWFkeSB0byBkZWZpbmUgaXRzZWxmLCBhbmQgaWYgc28sCiAgICAgICAgICAgICAqIGRlZmluZSBpdC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGNoZWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCB8fCB0aGlzLmVuYWJsaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHZhciBlcnIsIGNqc01vZHVsZSwKICAgICAgICAgICAgICAgICAgICBpZCA9IHRoaXMubWFwLmlkLAogICAgICAgICAgICAgICAgICAgIGRlcEV4cG9ydHMgPSB0aGlzLmRlcEV4cG9ydHMsCiAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IHRoaXMuZXhwb3J0cywKICAgICAgICAgICAgICAgICAgICBmYWN0b3J5ID0gdGhpcy5mYWN0b3J5OwoKICAgICAgICAgICAgICAgIGlmICghdGhpcy5pbml0ZWQpIHsKICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGZldGNoIGlmIG5vdCBhbHJlYWR5IGluIHRoZSBkZWZRdWV1ZS4KICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Byb3AoY29udGV4dC5kZWZRdWV1ZU1hcCwgaWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2goKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgdGhpcy5lcnJvcik7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmRlZmluaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgLy9UaGUgZmFjdG9yeSBjb3VsZCB0cmlnZ2VyIGFub3RoZXIgcmVxdWlyZSBjYWxsCiAgICAgICAgICAgICAgICAgICAgLy90aGF0IHdvdWxkIHJlc3VsdCBpbiBjaGVja2luZyB0aGlzIG1vZHVsZSB0bwogICAgICAgICAgICAgICAgICAgIC8vZGVmaW5lIGl0c2VsZiBhZ2Fpbi4gSWYgYWxyZWFkeSBpbiB0aGUgcHJvY2VzcwogICAgICAgICAgICAgICAgICAgIC8vb2YgZG9pbmcgdGhhdCwgc2tpcCB0aGlzIHdvcmsuCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZpbmluZyA9IHRydWU7CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlcENvdW50IDwgMSAmJiAhdGhpcy5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKGZhY3RvcnkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0lmIHRoZXJlIGlzIGFuIGVycm9yIGxpc3RlbmVyLCBmYXZvciBwYXNzaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RvIHRoYXQgaW5zdGVhZCBvZiB0aHJvd2luZyBhbiBlcnJvci4gSG93ZXZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vb25seSBkbyBpdCBmb3IgZGVmaW5lKCknZCAgbW9kdWxlcy4gcmVxdWlyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lcnJiYWNrcyBzaG91bGQgbm90IGJlIGNhbGxlZCBmb3IgZmFpbHVyZXMgaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhlaXIgY2FsbGJhY2tzICgjNjk5KS4gSG93ZXZlciBpZiBhIGdsb2JhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9vbkVycm9yIGlzIHNldCwgdXNlIHRoYXQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHRoaXMuZXZlbnRzLmVycm9yICYmIHRoaXMubWFwLmlzRGVmaW5lKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS5vbkVycm9yICE9PSBkZWZhdWx0T25FcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSBjb250ZXh0LmV4ZWNDYihpZCwgZmFjdG9yeSwgZGVwRXhwb3J0cywgZXhwb3J0cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIgPSBlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IGNvbnRleHQuZXhlY0NiKGlkLCBmYWN0b3J5LCBkZXBFeHBvcnRzLCBleHBvcnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYXZvciByZXR1cm4gdmFsdWUgb3ZlciBleHBvcnRzLiBJZiBub2RlL2NqcyBpbiBwbGF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3aWxsIG5vdCBoYXZlIGEgcmV0dXJuIHZhbHVlIGFueXdheS4gRmF2b3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vZHVsZS5leHBvcnRzIGFzc2lnbm1lbnQgb3ZlciBleHBvcnRzIG9iamVjdC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcC5pc0RlZmluZSAmJiBleHBvcnRzID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjanNNb2R1bGUgPSB0aGlzLm1vZHVsZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2pzTW9kdWxlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSBjanNNb2R1bGUuZXhwb3J0czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNpbmdFeHBvcnRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZXhwb3J0cyBhbHJlYWR5IHNldCB0aGUgZGVmaW5lZCB2YWx1ZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IHRoaXMuZXhwb3J0czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyci5yZXF1aXJlTWFwID0gdGhpcy5tYXA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyLnJlcXVpcmVNb2R1bGVzID0gdGhpcy5tYXAuaXNEZWZpbmUgPyBbdGhpcy5tYXAuaWRdIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIucmVxdWlyZVR5cGUgPSB0aGlzLm1hcC5pc0RlZmluZSA/ICdkZWZpbmUnIDogJ3JlcXVpcmUnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbkVycm9yKCh0aGlzLmVycm9yID0gZXJyKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9KdXN0IGEgbGl0ZXJhbCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IGZhY3Rvcnk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0cyA9IGV4cG9ydHM7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXAuaXNEZWZpbmUgJiYgIXRoaXMuaWdub3JlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVkW2lkXSA9IGV4cG9ydHM7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcS5vblJlc291cmNlTG9hZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNMb2FkTWFwcyA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVhY2godGhpcy5kZXBNYXBzLCBmdW5jdGlvbiAoZGVwTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc0xvYWRNYXBzLnB1c2goZGVwTWFwLm5vcm1hbGl6ZWRNYXAgfHwgZGVwTWFwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEub25SZXNvdXJjZUxvYWQoY29udGV4dCwgdGhpcy5tYXAsIHJlc0xvYWRNYXBzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9DbGVhbiB1cAogICAgICAgICAgICAgICAgICAgICAgICBjbGVhblJlZ2lzdHJ5KGlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvL0ZpbmlzaGVkIHRoZSBkZWZpbmUgc3RhZ2UuIEFsbG93IGNhbGxpbmcgY2hlY2sgYWdhaW4KICAgICAgICAgICAgICAgICAgICAvL3RvIGFsbG93IGRlZmluZSBub3RpZmljYXRpb25zIGJlbG93IGluIHRoZSBjYXNlIG9mIGEKICAgICAgICAgICAgICAgICAgICAvL2N5Y2xlLgogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5pbmcgPSBmYWxzZTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGVmaW5lZCAmJiAhdGhpcy5kZWZpbmVFbWl0dGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lRW1pdHRlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdCgnZGVmaW5lZCcsIHRoaXMuZXhwb3J0cyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lRW1pdENvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgY2FsbFBsdWdpbjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIG1hcCA9IHRoaXMubWFwLAogICAgICAgICAgICAgICAgICAgIGlkID0gbWFwLmlkLAogICAgICAgICAgICAgICAgICAgIC8vTWFwIGFscmVhZHkgbm9ybWFsaXplZCB0aGUgcHJlZml4LgogICAgICAgICAgICAgICAgICAgIHBsdWdpbk1hcCA9IG1ha2VNb2R1bGVNYXAobWFwLnByZWZpeCk7CgogICAgICAgICAgICAgICAgLy9NYXJrIHRoaXMgYXMgYSBkZXBlbmRlbmN5IGZvciB0aGlzIHBsdWdpbiwgc28gaXQKICAgICAgICAgICAgICAgIC8vY2FuIGJlIHRyYWNlZCBmb3IgY3ljbGVzLgogICAgICAgICAgICAgICAgdGhpcy5kZXBNYXBzLnB1c2gocGx1Z2luTWFwKTsKCiAgICAgICAgICAgICAgICBvbihwbHVnaW5NYXAsICdkZWZpbmVkJywgYmluZCh0aGlzLCBmdW5jdGlvbiAocGx1Z2luKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGxvYWQsIG5vcm1hbGl6ZWRNYXAsIG5vcm1hbGl6ZWRNb2QsCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1bmRsZUlkID0gZ2V0T3duKGJ1bmRsZXNNYXAsIHRoaXMubWFwLmlkKSwKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHRoaXMubWFwLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5hbWUgPSB0aGlzLm1hcC5wYXJlbnRNYXAgPyB0aGlzLm1hcC5wYXJlbnRNYXAubmFtZSA6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsUmVxdWlyZSA9IGNvbnRleHQubWFrZVJlcXVpcmUobWFwLnBhcmVudE1hcCwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlQnVpbGRDYWxsYmFjazogdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgLy9JZiBjdXJyZW50IG1hcCBpcyBub3Qgbm9ybWFsaXplZCwgd2FpdCBmb3IgdGhhdAogICAgICAgICAgICAgICAgICAgIC8vbm9ybWFsaXplZCBuYW1lIHRvIGxvYWQgaW5zdGVhZCBvZiBjb250aW51aW5nLgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcC51bm5vcm1hbGl6ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9Ob3JtYWxpemUgdGhlIElEIGlmIHRoZSBwbHVnaW4gYWxsb3dzIGl0LgogICAgICAgICAgICAgICAgICAgICAgICBpZiAocGx1Z2luLm5vcm1hbGl6ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHBsdWdpbi5ub3JtYWxpemUobmFtZSwgZnVuY3Rpb24gKG5hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplKG5hbWUsIHBhcmVudE5hbWUsIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vcHJlZml4IGFuZCBuYW1lIHNob3VsZCBhbHJlYWR5IGJlIG5vcm1hbGl6ZWQsIG5vIG5lZWQKICAgICAgICAgICAgICAgICAgICAgICAgLy9mb3IgYXBwbHlpbmcgbWFwIGNvbmZpZyBhZ2FpbiBlaXRoZXIuCiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRNYXAgPSBtYWtlTW9kdWxlTWFwKG1hcC5wcmVmaXggKyAnIScgKyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcC5wYXJlbnRNYXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICBvbihub3JtYWxpemVkTWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZmluZWQnLCBiaW5kKHRoaXMsIGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFwLm5vcm1hbGl6ZWRNYXAgPSBub3JtYWxpemVkTWFwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdChbXSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdmFsdWU7IH0sIG51bGwsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CgogICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTW9kID0gZ2V0T3duKHJlZ2lzdHJ5LCBub3JtYWxpemVkTWFwLmlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRNb2QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTWFyayB0aGlzIGFzIGEgZGVwZW5kZW5jeSBmb3IgdGhpcyBwbHVnaW4sIHNvIGl0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NhbiBiZSB0cmFjZWQgZm9yIGN5Y2xlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVwTWFwcy5wdXNoKG5vcm1hbGl6ZWRNYXApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmV2ZW50cy5lcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRNb2Qub24oJ2Vycm9yJywgYmluZCh0aGlzLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRNb2QuZW5hYmxlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vSWYgYSBwYXRocyBjb25maWcsIHRoZW4ganVzdCBsb2FkIHRoYXQgZmlsZSBpbnN0ZWFkIHRvCiAgICAgICAgICAgICAgICAgICAgLy9yZXNvbHZlIHRoZSBwbHVnaW4sIGFzIGl0IGlzIGJ1aWx0IGludG8gdGhhdCBwYXRocyBsYXllci4KICAgICAgICAgICAgICAgICAgICBpZiAoYnVuZGxlSWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXAudXJsID0gY29udGV4dC5uYW1lVG9VcmwoYnVuZGxlSWQpOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgbG9hZCA9IGJpbmQodGhpcywgZnVuY3Rpb24gKHZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdChbXSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdmFsdWU7IH0sIG51bGwsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIGxvYWQuZXJyb3IgPSBiaW5kKHRoaXMsIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyOwogICAgICAgICAgICAgICAgICAgICAgICBlcnIucmVxdWlyZU1vZHVsZXMgPSBbaWRdOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9SZW1vdmUgdGVtcCB1bm5vcm1hbGl6ZWQgbW9kdWxlcyBmb3IgdGhpcyBtb2R1bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vc2luY2UgdGhleSB3aWxsIG5ldmVyIGJlIHJlc29sdmVkIG90aGVyd2lzZSBub3cuCiAgICAgICAgICAgICAgICAgICAgICAgIGVhY2hQcm9wKHJlZ2lzdHJ5LCBmdW5jdGlvbiAobW9kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kLm1hcC5pZC5pbmRleE9mKGlkICsgJ191bm5vcm1hbGl6ZWQnKSA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFuUmVnaXN0cnkobW9kLm1hcC5pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgb25FcnJvcihlcnIpOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAvL0FsbG93IHBsdWdpbnMgdG8gbG9hZCBvdGhlciBjb2RlIHdpdGhvdXQgaGF2aW5nIHRvIGtub3cgdGhlCiAgICAgICAgICAgICAgICAgICAgLy9jb250ZXh0IG9yIGhvdyB0byAnY29tcGxldGUnIHRoZSBsb2FkLgogICAgICAgICAgICAgICAgICAgIGxvYWQuZnJvbVRleHQgPSBiaW5kKHRoaXMsIGZ1bmN0aW9uICh0ZXh0LCB0ZXh0QWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qanNsaW50IGV2aWw6IHRydWUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1vZHVsZU5hbWUgPSBtYXAubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU1hcCA9IG1ha2VNb2R1bGVNYXAobW9kdWxlTmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNJbnRlcmFjdGl2ZSA9IHVzZUludGVyYWN0aXZlOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9BcyBvZiAyLjEuMCwgc3VwcG9ydCBqdXN0IHBhc3NpbmcgdGhlIHRleHQsIHRvIHJlaW5mb3JjZQogICAgICAgICAgICAgICAgICAgICAgICAvL2Zyb21UZXh0IG9ubHkgYmVpbmcgY2FsbGVkIG9uY2UgcGVyIHJlc291cmNlLiBTdGlsbAogICAgICAgICAgICAgICAgICAgICAgICAvL3N1cHBvcnQgb2xkIHN0eWxlIG9mIHBhc3NpbmcgbW9kdWxlTmFtZSBidXQgZGlzY2FyZAogICAgICAgICAgICAgICAgICAgICAgICAvL3RoYXQgbW9kdWxlTmFtZSBpbiBmYXZvciBvZiB0aGUgaW50ZXJuYWwgcmVmLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4dEFsdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IHRleHRBbHQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vVHVybiBvZmYgaW50ZXJhY3RpdmUgc2NyaXB0IG1hdGNoaW5nIGZvciBJRSBmb3IgYW55IGRlZmluZQogICAgICAgICAgICAgICAgICAgICAgICAvL2NhbGxzIGluIHRoZSB0ZXh0LCB0aGVuIHR1cm4gaXQgYmFjayBvbiBhdCB0aGUgZW5kLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzSW50ZXJhY3RpdmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUludGVyYWN0aXZlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vUHJpbWUgdGhlIHN5c3RlbSBieSBjcmVhdGluZyBhIG1vZHVsZSBpbnN0YW5jZSBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgLy9pdC4KICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TW9kdWxlKG1vZHVsZU1hcCk7CgogICAgICAgICAgICAgICAgICAgICAgICAvL1RyYW5zZmVyIGFueSBjb25maWcgdG8gdGhpcyBvdGhlciBtb2R1bGUuCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNQcm9wKGNvbmZpZy5jb25maWcsIGlkKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmNvbmZpZ1ttb2R1bGVOYW1lXSA9IGNvbmZpZy5jb25maWdbaWRdOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLmV4ZWModGV4dCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbkVycm9yKG1ha2VFcnJvcignZnJvbXRleHRldmFsJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zyb21UZXh0IGV2YWwgZm9yICcgKyBpZCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBmYWlsZWQ6ICcgKyBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNJbnRlcmFjdGl2ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlSW50ZXJhY3RpdmUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL01hcmsgdGhpcyBhcyBhIGRlcGVuZGVuY3kgZm9yIHRoZSBwbHVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgLy9yZXNvdXJjZQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcE1hcHMucHVzaChtb2R1bGVNYXApOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9TdXBwb3J0IGFub255bW91cyBtb2R1bGVzLgogICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNvbXBsZXRlTG9hZChtb2R1bGVOYW1lKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vQmluZCB0aGUgdmFsdWUgb2YgdGhhdCBtb2R1bGUgdG8gdGhlIHZhbHVlIGZvciB0aGlzCiAgICAgICAgICAgICAgICAgICAgICAgIC8vcmVzb3VyY2UgSUQuCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsUmVxdWlyZShbbW9kdWxlTmFtZV0sIGxvYWQpOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAvL1VzZSBwYXJlbnROYW1lIGhlcmUgc2luY2UgdGhlIHBsdWdpbidzIG5hbWUgaXMgbm90IHJlbGlhYmxlLAogICAgICAgICAgICAgICAgICAgIC8vY291bGQgYmUgc29tZSB3ZWlyZCBzdHJpbmcgd2l0aCBubyBwYXRoIHRoYXQgYWN0dWFsbHkgd2FudHMgdG8KICAgICAgICAgICAgICAgICAgICAvL3JlZmVyZW5jZSB0aGUgcGFyZW50TmFtZSdzIHBhdGguCiAgICAgICAgICAgICAgICAgICAgcGx1Z2luLmxvYWQobWFwLm5hbWUsIGxvY2FsUmVxdWlyZSwgbG9hZCwgY29uZmlnKTsKICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICBjb250ZXh0LmVuYWJsZShwbHVnaW5NYXAsIHRoaXMpOwogICAgICAgICAgICAgICAgdGhpcy5wbHVnaW5NYXBzW3BsdWdpbk1hcC5pZF0gPSBwbHVnaW5NYXA7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBlbmFibGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGVuYWJsZWRSZWdpc3RyeVt0aGlzLm1hcC5pZF0gPSB0aGlzOwogICAgICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICAvL1NldCBmbGFnIG1lbnRpb25pbmcgdGhhdCB0aGUgbW9kdWxlIGlzIGVuYWJsaW5nLAogICAgICAgICAgICAgICAgLy9zbyB0aGF0IGltbWVkaWF0ZSBjYWxscyB0byB0aGUgZGVmaW5lZCBjYWxsYmFja3MKICAgICAgICAgICAgICAgIC8vZm9yIGRlcGVuZGVuY2llcyBkbyBub3QgdHJpZ2dlciBpbmFkdmVydGVudCBsb2FkCiAgICAgICAgICAgICAgICAvL3dpdGggdGhlIGRlcENvdW50IHN0aWxsIGJlaW5nIHplcm8uCiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsaW5nID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICAvL0VuYWJsZSBlYWNoIGRlcGVuZGVuY3kKICAgICAgICAgICAgICAgIGVhY2godGhpcy5kZXBNYXBzLCBiaW5kKHRoaXMsIGZ1bmN0aW9uIChkZXBNYXAsIGkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaWQsIG1vZCwgaGFuZGxlcjsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkZXBNYXAgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vRGVwZW5kZW5jeSBuZWVkcyB0byBiZSBjb252ZXJ0ZWQgdG8gYSBkZXBNYXAKICAgICAgICAgICAgICAgICAgICAgICAgLy9hbmQgd2lyZWQgdXAgdG8gdGhpcyBtb2R1bGUuCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcE1hcCA9IG1ha2VNb2R1bGVNYXAoZGVwTWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLm1hcC5pc0RlZmluZSA/IHRoaXMubWFwIDogdGhpcy5tYXAucGFyZW50TWFwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5za2lwTWFwKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBNYXBzW2ldID0gZGVwTWFwOwoKICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlciA9IGdldE93bihoYW5kbGVycywgZGVwTWFwLmlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYW5kbGVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcEV4cG9ydHNbaV0gPSBoYW5kbGVyKHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcENvdW50ICs9IDE7CgogICAgICAgICAgICAgICAgICAgICAgICBvbihkZXBNYXAsICdkZWZpbmVkJywgYmluZCh0aGlzLCBmdW5jdGlvbiAoZGVwRXhwb3J0cykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudW5kZWZlZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lRGVwKGksIGRlcEV4cG9ydHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVjaygpOwogICAgICAgICAgICAgICAgICAgICAgICB9KSk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5lcnJiYWNrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbihkZXBNYXAsICdlcnJvcicsIGJpbmQodGhpcywgdGhpcy5lcnJiYWNrKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ldmVudHMuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vIGRpcmVjdCBlcnJiYWNrIG9uIHRoaXMgbW9kdWxlLCBidXQgc29tZXRoaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbHNlIGlzIGxpc3RlbmluZyBmb3IgZXJyb3JzLCBzbyBiZSBzdXJlIHRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9wYWdhdGUgdGhlIGVycm9yIGNvcnJlY3RseS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uKGRlcE1hcCwgJ2Vycm9yJywgYmluZCh0aGlzLCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWQgPSBkZXBNYXAuaWQ7CiAgICAgICAgICAgICAgICAgICAgbW9kID0gcmVnaXN0cnlbaWRdOwoKICAgICAgICAgICAgICAgICAgICAvL1NraXAgc3BlY2lhbCBtb2R1bGVzIGxpa2UgJ3JlcXVpcmUnLCAnZXhwb3J0cycsICdtb2R1bGUnCiAgICAgICAgICAgICAgICAgICAgLy9BbHNvLCBkb24ndCBjYWxsIGVuYWJsZSBpZiBpdCBpcyBhbHJlYWR5IGVuYWJsZWQsCiAgICAgICAgICAgICAgICAgICAgLy9pbXBvcnRhbnQgaW4gY2lyY3VsYXIgZGVwZW5kZW5jeSBjYXNlcy4KICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Byb3AoaGFuZGxlcnMsIGlkKSAmJiBtb2QgJiYgIW1vZC5lbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZW5hYmxlKGRlcE1hcCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkpOwoKICAgICAgICAgICAgICAgIC8vRW5hYmxlIGVhY2ggcGx1Z2luIHRoYXQgaXMgdXNlZCBpbgogICAgICAgICAgICAgICAgLy9hIGRlcGVuZGVuY3kKICAgICAgICAgICAgICAgIGVhY2hQcm9wKHRoaXMucGx1Z2luTWFwcywgYmluZCh0aGlzLCBmdW5jdGlvbiAocGx1Z2luTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG1vZCA9IGdldE93bihyZWdpc3RyeSwgcGx1Z2luTWFwLmlkKTsKICAgICAgICAgICAgICAgICAgICBpZiAobW9kICYmICFtb2QuZW5hYmxlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmVuYWJsZShwbHVnaW5NYXAsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsaW5nID0gZmFsc2U7CgogICAgICAgICAgICAgICAgdGhpcy5jaGVjaygpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgb246IGZ1bmN0aW9uIChuYW1lLCBjYikgewogICAgICAgICAgICAgICAgdmFyIGNicyA9IHRoaXMuZXZlbnRzW25hbWVdOwogICAgICAgICAgICAgICAgaWYgKCFjYnMpIHsKICAgICAgICAgICAgICAgICAgICBjYnMgPSB0aGlzLmV2ZW50c1tuYW1lXSA9IFtdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY2JzLnB1c2goY2IpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgZW1pdDogZnVuY3Rpb24gKG5hbWUsIGV2dCkgewogICAgICAgICAgICAgICAgZWFjaCh0aGlzLmV2ZW50c1tuYW1lXSwgZnVuY3Rpb24gKGNiKSB7CiAgICAgICAgICAgICAgICAgICAgY2IoZXZ0KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdlcnJvcicpIHsKICAgICAgICAgICAgICAgICAgICAvL05vdyB0aGF0IHRoZSBlcnJvciBoYW5kbGVyIHdhcyB0cmlnZ2VyZWQsIHJlbW92ZQogICAgICAgICAgICAgICAgICAgIC8vdGhlIGxpc3RlbmVycywgc2luY2UgdGhpcyBicm9rZW4gTW9kdWxlIGluc3RhbmNlCiAgICAgICAgICAgICAgICAgICAgLy9jYW4gc3RheSBhcm91bmQgZm9yIGEgd2hpbGUgaW4gdGhlIHJlZ2lzdHJ5LgogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmV2ZW50c1tuYW1lXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIGZ1bmN0aW9uIGNhbGxHZXRNb2R1bGUoYXJncykgewogICAgICAgICAgICAvL1NraXAgbW9kdWxlcyBhbHJlYWR5IGRlZmluZWQuCiAgICAgICAgICAgIGlmICghaGFzUHJvcChkZWZpbmVkLCBhcmdzWzBdKSkgewogICAgICAgICAgICAgICAgZ2V0TW9kdWxlKG1ha2VNb2R1bGVNYXAoYXJnc1swXSwgbnVsbCwgdHJ1ZSkpLmluaXQoYXJnc1sxXSwgYXJnc1syXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKG5vZGUsIGZ1bmMsIG5hbWUsIGllTmFtZSkgewogICAgICAgICAgICAvL0Zhdm9yIGRldGFjaEV2ZW50IGJlY2F1c2Ugb2YgSUU5CiAgICAgICAgICAgIC8vaXNzdWUsIHNlZSBhdHRhY2hFdmVudC9hZGRFdmVudExpc3RlbmVyIGNvbW1lbnQgZWxzZXdoZXJlCiAgICAgICAgICAgIC8vaW4gdGhpcyBmaWxlLgogICAgICAgICAgICBpZiAobm9kZS5kZXRhY2hFdmVudCAmJiAhaXNPcGVyYSkgewogICAgICAgICAgICAgICAgLy9Qcm9iYWJseSBJRS4gSWYgbm90IGl0IHdpbGwgdGhyb3cgYW4gZXJyb3IsIHdoaWNoIHdpbGwgYmUKICAgICAgICAgICAgICAgIC8vdXNlZnVsIHRvIGtub3cuCiAgICAgICAgICAgICAgICBpZiAoaWVOYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgbm9kZS5kZXRhY2hFdmVudChpZU5hbWUsIGZ1bmMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGZ1bmMsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogR2l2ZW4gYW4gZXZlbnQgZnJvbSBhIHNjcmlwdCBub2RlLCBnZXQgdGhlIHJlcXVpcmVqcyBpbmZvIGZyb20gaXQsCiAgICAgICAgICogYW5kIHRoZW4gcmVtb3ZlcyB0aGUgZXZlbnQgbGlzdGVuZXJzIG9uIHRoZSBub2RlLgogICAgICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2dAogICAgICAgICAqIEByZXR1cm5zIHtPYmplY3R9CiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gZ2V0U2NyaXB0RGF0YShldnQpIHsKICAgICAgICAgICAgLy9Vc2luZyBjdXJyZW50VGFyZ2V0IGluc3RlYWQgb2YgdGFyZ2V0IGZvciBGaXJlZm94IDIuMCdzIHNha2UuIE5vdAogICAgICAgICAgICAvL2FsbCBvbGQgYnJvd3NlcnMgd2lsbCBiZSBzdXBwb3J0ZWQsIGJ1dCB0aGlzIG9uZSB3YXMgZWFzeSBlbm91Z2gKICAgICAgICAgICAgLy90byBzdXBwb3J0IGFuZCBzdGlsbCBtYWtlcyBzZW5zZS4KICAgICAgICAgICAgdmFyIG5vZGUgPSBldnQuY3VycmVudFRhcmdldCB8fCBldnQuc3JjRWxlbWVudDsKCiAgICAgICAgICAgIC8vUmVtb3ZlIHRoZSBsaXN0ZW5lcnMgb25jZSBoZXJlLgogICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCBjb250ZXh0Lm9uU2NyaXB0TG9hZCwgJ2xvYWQnLCAnb25yZWFkeXN0YXRlY2hhbmdlJyk7CiAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKG5vZGUsIGNvbnRleHQub25TY3JpcHRFcnJvciwgJ2Vycm9yJyk7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgbm9kZTogbm9kZSwKICAgICAgICAgICAgICAgIGlkOiBub2RlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXJlcXVpcmVtb2R1bGUnKQogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gaW50YWtlRGVmaW5lcygpIHsKICAgICAgICAgICAgdmFyIGFyZ3M7CgogICAgICAgICAgICAvL0FueSBkZWZpbmVkIG1vZHVsZXMgaW4gdGhlIGdsb2JhbCBxdWV1ZSwgaW50YWtlIHRoZW0gbm93LgogICAgICAgICAgICB0YWtlR2xvYmFsUXVldWUoKTsKCiAgICAgICAgICAgIC8vTWFrZSBzdXJlIGFueSByZW1haW5pbmcgZGVmUXVldWUgaXRlbXMgZ2V0IHByb3Blcmx5IHByb2Nlc3NlZC4KICAgICAgICAgICAgd2hpbGUgKGRlZlF1ZXVlLmxlbmd0aCkgewogICAgICAgICAgICAgICAgYXJncyA9IGRlZlF1ZXVlLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICBpZiAoYXJnc1swXSA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBvbkVycm9yKG1ha2VFcnJvcignbWlzbWF0Y2gnLCAnTWlzbWF0Y2hlZCBhbm9ueW1vdXMgZGVmaW5lKCkgbW9kdWxlOiAnICsKICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1thcmdzLmxlbmd0aCAtIDFdKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vYXJncyBhcmUgaWQsIGRlcHMsIGZhY3RvcnkuIFNob3VsZCBiZSBub3JtYWxpemVkIGJ5IHRoZQogICAgICAgICAgICAgICAgICAgIC8vZGVmaW5lKCkgZnVuY3Rpb24uCiAgICAgICAgICAgICAgICAgICAgY2FsbEdldE1vZHVsZShhcmdzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZXh0LmRlZlF1ZXVlTWFwID0ge307CiAgICAgICAgfQoKICAgICAgICBjb250ZXh0ID0gewogICAgICAgICAgICBjb25maWc6IGNvbmZpZywKICAgICAgICAgICAgY29udGV4dE5hbWU6IGNvbnRleHROYW1lLAogICAgICAgICAgICByZWdpc3RyeTogcmVnaXN0cnksCiAgICAgICAgICAgIGRlZmluZWQ6IGRlZmluZWQsCiAgICAgICAgICAgIHVybEZldGNoZWQ6IHVybEZldGNoZWQsCiAgICAgICAgICAgIGRlZlF1ZXVlOiBkZWZRdWV1ZSwKICAgICAgICAgICAgZGVmUXVldWVNYXA6IHt9LAogICAgICAgICAgICBNb2R1bGU6IE1vZHVsZSwKICAgICAgICAgICAgbWFrZU1vZHVsZU1hcDogbWFrZU1vZHVsZU1hcCwKICAgICAgICAgICAgbmV4dFRpY2s6IHJlcS5uZXh0VGljaywKICAgICAgICAgICAgb25FcnJvcjogb25FcnJvciwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBTZXQgYSBjb25maWd1cmF0aW9uIGZvciB0aGUgY29udGV4dC4KICAgICAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IGNmZyBjb25maWcgb2JqZWN0IHRvIGludGVncmF0ZS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGNvbmZpZ3VyZTogZnVuY3Rpb24gKGNmZykgewogICAgICAgICAgICAgICAgLy9NYWtlIHN1cmUgdGhlIGJhc2VVcmwgZW5kcyBpbiBhIHNsYXNoLgogICAgICAgICAgICAgICAgaWYgKGNmZy5iYXNlVXJsKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNmZy5iYXNlVXJsLmNoYXJBdChjZmcuYmFzZVVybC5sZW5ndGggLSAxKSAhPT0gJy8nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNmZy5iYXNlVXJsICs9ICcvJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gQ29udmVydCBvbGQgc3R5bGUgdXJsQXJncyBzdHJpbmcgdG8gYSBmdW5jdGlvbi4KICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2ZnLnVybEFyZ3MgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHVybEFyZ3MgPSBjZmcudXJsQXJnczsKICAgICAgICAgICAgICAgICAgICBjZmcudXJsQXJncyA9IGZ1bmN0aW9uKGlkLCB1cmwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyB1cmxBcmdzOwogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9TYXZlIG9mZiB0aGUgcGF0aHMgc2luY2UgdGhleSByZXF1aXJlIHNwZWNpYWwgcHJvY2Vzc2luZywKICAgICAgICAgICAgICAgIC8vdGhleSBhcmUgYWRkaXRpdmUuCiAgICAgICAgICAgICAgICB2YXIgc2hpbSA9IGNvbmZpZy5zaGltLAogICAgICAgICAgICAgICAgICAgIG9ianMgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhzOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICBidW5kbGVzOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcDogdHJ1ZQogICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgZWFjaFByb3AoY2ZnLCBmdW5jdGlvbiAodmFsdWUsIHByb3ApIHsKICAgICAgICAgICAgICAgICAgICBpZiAob2Jqc1twcm9wXSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbmZpZ1twcm9wXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnW3Byb3BdID0ge307CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgbWl4aW4oY29uZmlnW3Byb3BdLCB2YWx1ZSwgdHJ1ZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnW3Byb3BdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgLy9SZXZlcnNlIG1hcCB0aGUgYnVuZGxlcwogICAgICAgICAgICAgICAgaWYgKGNmZy5idW5kbGVzKSB7CiAgICAgICAgICAgICAgICAgICAgZWFjaFByb3AoY2ZnLmJ1bmRsZXMsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkgewogICAgICAgICAgICAgICAgICAgICAgICBlYWNoKHZhbHVlLCBmdW5jdGlvbiAodikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT09IHByb3ApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidW5kbGVzTWFwW3ZdID0gcHJvcDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9NZXJnZSBzaGltCiAgICAgICAgICAgICAgICBpZiAoY2ZnLnNoaW0pIHsKICAgICAgICAgICAgICAgICAgICBlYWNoUHJvcChjZmcuc2hpbSwgZnVuY3Rpb24gKHZhbHVlLCBpZCkgewogICAgICAgICAgICAgICAgICAgICAgICAvL05vcm1hbGl6ZSB0aGUgc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwczogdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh2YWx1ZS5leHBvcnRzIHx8IHZhbHVlLmluaXQpICYmICF2YWx1ZS5leHBvcnRzRm4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmV4cG9ydHNGbiA9IGNvbnRleHQubWFrZVNoaW1FeHBvcnRzKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBzaGltW2lkXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zaGltID0gc2hpbTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL0FkanVzdCBwYWNrYWdlcyBpZiBuZWNlc3NhcnkuCiAgICAgICAgICAgICAgICBpZiAoY2ZnLnBhY2thZ2VzKSB7CiAgICAgICAgICAgICAgICAgICAgZWFjaChjZmcucGFja2FnZXMsIGZ1bmN0aW9uIChwa2dPYmopIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uLCBuYW1lOwoKICAgICAgICAgICAgICAgICAgICAgICAgcGtnT2JqID0gdHlwZW9mIHBrZ09iaiA9PT0gJ3N0cmluZycgPyB7bmFtZTogcGtnT2JqfSA6IHBrZ09iajsKCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBwa2dPYmoubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSBwa2dPYmoubG9jYXRpb247CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLnBhdGhzW25hbWVdID0gcGtnT2JqLmxvY2F0aW9uOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL1NhdmUgcG9pbnRlciB0byBtYWluIG1vZHVsZSBJRCBmb3IgcGtnIG5hbWUuCiAgICAgICAgICAgICAgICAgICAgICAgIC8vUmVtb3ZlIGxlYWRpbmcgZG90IGluIG1haW4sIHNvIG1haW4gcGF0aHMgYXJlIG5vcm1hbGl6ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYW5kIHJlbW92ZSBhbnkgdHJhaWxpbmcgLmpzLCBzaW5jZSBkaWZmZXJlbnQgcGFja2FnZQogICAgICAgICAgICAgICAgICAgICAgICAvL2VudnMgaGF2ZSBkaWZmZXJlbnQgY29udmVudGlvbnM6IHNvbWUgdXNlIGEgbW9kdWxlIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vc29tZSB1c2UgYSBmaWxlIG5hbWUuCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5wa2dzW25hbWVdID0gcGtnT2JqLm5hbWUgKyAnLycgKyAocGtnT2JqLm1haW4gfHwgJ21haW4nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoY3VyckRpclJlZ0V4cCwgJycpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShqc1N1ZmZpeFJlZ0V4cCwgJycpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vSWYgdGhlcmUgYXJlIGFueSAid2FpdGluZyB0byBleGVjdXRlIiBtb2R1bGVzIGluIHRoZSByZWdpc3RyeSwKICAgICAgICAgICAgICAgIC8vdXBkYXRlIHRoZSBtYXBzIGZvciB0aGVtLCBzaW5jZSB0aGVpciBpbmZvLCBsaWtlIFVSTHMgdG8gbG9hZCwKICAgICAgICAgICAgICAgIC8vbWF5IGhhdmUgY2hhbmdlZC4KICAgICAgICAgICAgICAgIGVhY2hQcm9wKHJlZ2lzdHJ5LCBmdW5jdGlvbiAobW9kLCBpZCkgewogICAgICAgICAgICAgICAgICAgIC8vSWYgbW9kdWxlIGFscmVhZHkgaGFzIGluaXQgY2FsbGVkLCBzaW5jZSBpdCBpcyB0b28KICAgICAgICAgICAgICAgICAgICAvL2xhdGUgdG8gbW9kaWZ5IHRoZW0sIGFuZCBpZ25vcmUgdW5ub3JtYWxpemVkIG9uZXMKICAgICAgICAgICAgICAgICAgICAvL3NpbmNlIHRoZXkgYXJlIHRyYW5zaWVudC4KICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZC5pbml0ZWQgJiYgIW1vZC5tYXAudW5ub3JtYWxpemVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1vZC5tYXAgPSBtYWtlTW9kdWxlTWFwKGlkLCBudWxsLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvL0lmIGEgZGVwcyBhcnJheSBvciBhIGNvbmZpZyBjYWxsYmFjayBpcyBzcGVjaWZpZWQsIHRoZW4gY2FsbAogICAgICAgICAgICAgICAgLy9yZXF1aXJlIHdpdGggdGhvc2UgYXJncy4gVGhpcyBpcyB1c2VmdWwgd2hlbiByZXF1aXJlIGlzIGRlZmluZWQgYXMgYQogICAgICAgICAgICAgICAgLy9jb25maWcgb2JqZWN0IGJlZm9yZSByZXF1aXJlLmpzIGlzIGxvYWRlZC4KICAgICAgICAgICAgICAgIGlmIChjZmcuZGVwcyB8fCBjZmcuY2FsbGJhY2spIHsKICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnJlcXVpcmUoY2ZnLmRlcHMgfHwgW10sIGNmZy5jYWxsYmFjayk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBtYWtlU2hpbUV4cG9ydHM6IGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgICAgICAgICAgZnVuY3Rpb24gZm4oKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJldDsKICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuaW5pdCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXQgPSB2YWx1ZS5pbml0LmFwcGx5KGdsb2JhbCwgYXJndW1lbnRzKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldCB8fCAodmFsdWUuZXhwb3J0cyAmJiBnZXRHbG9iYWwodmFsdWUuZXhwb3J0cykpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGZuOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgbWFrZVJlcXVpcmU6IGZ1bmN0aW9uIChyZWxNYXAsIG9wdGlvbnMpIHsKICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwoKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGxvY2FsUmVxdWlyZShkZXBzLCBjYWxsYmFjaywgZXJyYmFjaykgewogICAgICAgICAgICAgICAgICAgIHZhciBpZCwgbWFwLCByZXF1aXJlTW9kOwoKICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5lbmFibGVCdWlsZENhbGxiYWNrICYmIGNhbGxiYWNrICYmIGlzRnVuY3Rpb24oY2FsbGJhY2spKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLl9fcmVxdWlyZUpzQnVpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkZXBzID09PSAnc3RyaW5nJykgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihjYWxsYmFjaykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vSW52YWxpZCBjYWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ3JlcXVpcmVhcmdzJywgJ0ludmFsaWQgcmVxdWlyZSBjYWxsJyksIGVycmJhY2spOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL0lmIHJlcXVpcmV8ZXhwb3J0c3xtb2R1bGUgYXJlIHJlcXVlc3RlZCwgZ2V0IHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvL3ZhbHVlIGZvciB0aGVtIGZyb20gdGhlIHNwZWNpYWwgaGFuZGxlcnMuIENhdmVhdDoKICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzIG9ubHkgd29ya3Mgd2hpbGUgbW9kdWxlIGlzIGJlaW5nIGRlZmluZWQuCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWxNYXAgJiYgaGFzUHJvcChoYW5kbGVycywgZGVwcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVyc1tkZXBzXShyZWdpc3RyeVtyZWxNYXAuaWRdKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9TeW5jaHJvbm91cyBhY2Nlc3MgdG8gb25lIG1vZHVsZS4gSWYgcmVxdWlyZS5nZXQgaXMKICAgICAgICAgICAgICAgICAgICAgICAgLy9hdmFpbGFibGUgKGFzIGluIHRoZSBOb2RlIGFkYXB0ZXIpLCBwcmVmZXIgdGhhdC4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcS5nZXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXEuZ2V0KGNvbnRleHQsIGRlcHMsIHJlbE1hcCwgbG9jYWxSZXF1aXJlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9Ob3JtYWxpemUgbW9kdWxlIG5hbWUsIGlmIGl0IGNvbnRhaW5zIC4gb3IgLi4KICAgICAgICAgICAgICAgICAgICAgICAgbWFwID0gbWFrZU1vZHVsZU1hcChkZXBzLCByZWxNYXAsIGZhbHNlLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSBtYXAuaWQ7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Byb3AoZGVmaW5lZCwgaWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ25vdGxvYWRlZCcsICdNb2R1bGUgbmFtZSAiJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIiBoYXMgbm90IGJlZW4gbG9hZGVkIHlldCBmb3IgY29udGV4dDogJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0TmFtZSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVsTWFwID8gJycgOiAnLiBVc2UgcmVxdWlyZShbXSknKSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWZpbmVkW2lkXTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vR3JhYiBkZWZpbmVzIHdhaXRpbmcgaW4gdGhlIGdsb2JhbCBxdWV1ZS4KICAgICAgICAgICAgICAgICAgICBpbnRha2VEZWZpbmVzKCk7CgogICAgICAgICAgICAgICAgICAgIC8vTWFyayBhbGwgdGhlIGRlcGVuZGVuY2llcyBhcyBuZWVkaW5nIHRvIGJlIGxvYWRlZC4KICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lm5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9Tb21lIGRlZmluZXMgY291bGQgaGF2ZSBiZWVuIGFkZGVkIHNpbmNlIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvL3JlcXVpcmUgY2FsbCwgY29sbGVjdCB0aGVtLgogICAgICAgICAgICAgICAgICAgICAgICBpbnRha2VEZWZpbmVzKCk7CgogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlTW9kID0gZ2V0TW9kdWxlKG1ha2VNb2R1bGVNYXAobnVsbCwgcmVsTWFwKSk7CgogICAgICAgICAgICAgICAgICAgICAgICAvL1N0b3JlIGlmIG1hcCBjb25maWcgc2hvdWxkIGJlIGFwcGxpZWQgdG8gdGhpcyByZXF1aXJlCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY2FsbCBmb3IgZGVwZW5kZW5jaWVzLgogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlTW9kLnNraXBNYXAgPSBvcHRpb25zLnNraXBNYXA7CgogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlTW9kLmluaXQoZGVwcywgY2FsbGJhY2ssIGVycmJhY2ssIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZCgpOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxSZXF1aXJlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG1peGluKGxvY2FsUmVxdWlyZSwgewogICAgICAgICAgICAgICAgICAgIGlzQnJvd3NlcjogaXNCcm93c2VyLAoKICAgICAgICAgICAgICAgICAgICAvKioKICAgICAgICAgICAgICAgICAgICAgKiBDb252ZXJ0cyBhIG1vZHVsZSBuYW1lICsgLmV4dGVuc2lvbiBpbnRvIGFuIFVSTCBwYXRoLgogICAgICAgICAgICAgICAgICAgICAqICpSZXF1aXJlcyogdGhlIHVzZSBvZiBhIG1vZHVsZSBuYW1lLiBJdCBkb2VzIG5vdCBzdXBwb3J0IHVzaW5nCiAgICAgICAgICAgICAgICAgICAgICogcGxhaW4gVVJMcyBsaWtlIG5hbWVUb1VybC4KICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICAgICB0b1VybDogZnVuY3Rpb24gKG1vZHVsZU5hbWVQbHVzRXh0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IG1vZHVsZU5hbWVQbHVzRXh0Lmxhc3RJbmRleE9mKCcuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50ID0gbW9kdWxlTmFtZVBsdXNFeHQuc3BsaXQoJy8nKVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVsYXRpdmUgPSBzZWdtZW50ID09PSAnLicgfHwgc2VnbWVudCA9PT0gJy4uJzsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vSGF2ZSBhIGZpbGUgZXh0ZW5zaW9uIGFsaWFzLCBhbmQgaXQgaXMgbm90IHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvL2RvdHMgZnJvbSBhIHJlbGF0aXZlIHBhdGguCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEgJiYgKCFpc1JlbGF0aXZlIHx8IGluZGV4ID4gMSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dCA9IG1vZHVsZU5hbWVQbHVzRXh0LnN1YnN0cmluZyhpbmRleCwgbW9kdWxlTmFtZVBsdXNFeHQubGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU5hbWVQbHVzRXh0ID0gbW9kdWxlTmFtZVBsdXNFeHQuc3Vic3RyaW5nKDAsIGluZGV4KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQubmFtZVRvVXJsKG5vcm1hbGl6ZShtb2R1bGVOYW1lUGx1c0V4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsTWFwICYmIHJlbE1hcC5pZCwgdHJ1ZSksIGV4dCwgIHRydWUpOwogICAgICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgICAgIGRlZmluZWQ6IGZ1bmN0aW9uIChpZCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFzUHJvcChkZWZpbmVkLCBtYWtlTW9kdWxlTWFwKGlkLCByZWxNYXAsIGZhbHNlLCB0cnVlKS5pZCk7CiAgICAgICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkOiBmdW5jdGlvbiAoaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSBtYWtlTW9kdWxlTWFwKGlkLCByZWxNYXAsIGZhbHNlLCB0cnVlKS5pZDsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhhc1Byb3AoZGVmaW5lZCwgaWQpIHx8IGhhc1Byb3AocmVnaXN0cnksIGlkKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvL09ubHkgYWxsb3cgdW5kZWYgb24gdG9wIGxldmVsIHJlcXVpcmUgY2FsbHMKICAgICAgICAgICAgICAgIGlmICghcmVsTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgbG9jYWxSZXF1aXJlLnVuZGVmID0gZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vQmluZCBhbnkgd2FpdGluZyBkZWZpbmUoKSBjYWxscyB0byB0aGlzIGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vZml4IGZvciAjNDA4CiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VHbG9iYWxRdWV1ZSgpOwoKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1hcCA9IG1ha2VNb2R1bGVNYXAoaWQsIHJlbE1hcCwgdHJ1ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2QgPSBnZXRPd24ocmVnaXN0cnksIGlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIG1vZC51bmRlZmVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlU2NyaXB0KGlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBkZWZpbmVkW2lkXTsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHVybEZldGNoZWRbbWFwLnVybF07CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB1bmRlZkV2ZW50c1tpZF07CgogICAgICAgICAgICAgICAgICAgICAgICAvL0NsZWFuIHF1ZXVlZCBkZWZpbmVzIHRvby4gR28gYmFja3dhcmRzCiAgICAgICAgICAgICAgICAgICAgICAgIC8vaW4gYXJyYXkgc28gdGhhdCB0aGUgc3BsaWNlcyBkbyBub3QKICAgICAgICAgICAgICAgICAgICAgICAgLy9tZXNzIHVwIHRoZSBpdGVyYXRpb24uCiAgICAgICAgICAgICAgICAgICAgICAgIGVhY2hSZXZlcnNlKGRlZlF1ZXVlLCBmdW5jdGlvbihhcmdzLCBpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJnc1swXSA9PT0gaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZRdWV1ZS5zcGxpY2UoaSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgY29udGV4dC5kZWZRdWV1ZU1hcFtpZF07CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0hvbGQgb24gdG8gbGlzdGVuZXJzIGluIGNhc2UgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21vZHVsZSB3aWxsIGJlIGF0dGVtcHRlZCB0byBiZSByZWxvYWRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy91c2luZyBhIGRpZmZlcmVudCBjb25maWcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kLmV2ZW50cy5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZFdmVudHNbaWRdID0gbW9kLmV2ZW50czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhblJlZ2lzdHJ5KGlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsUmVxdWlyZTsKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDYWxsZWQgdG8gZW5hYmxlIGEgbW9kdWxlIGlmIGl0IGlzIHN0aWxsIGluIHRoZSByZWdpc3RyeQogICAgICAgICAgICAgKiBhd2FpdGluZyBlbmFibGVtZW50LiBBIHNlY29uZCBhcmcsIHBhcmVudCwgdGhlIHBhcmVudCBtb2R1bGUsCiAgICAgICAgICAgICAqIGlzIHBhc3NlZCBpbiBmb3IgY29udGV4dCwgd2hlbiB0aGlzIG1ldGhvZCBpcyBvdmVycmlkZGVuIGJ5CiAgICAgICAgICAgICAqIHRoZSBvcHRpbWl6ZXIuIE5vdCBzaG93biBoZXJlIHRvIGtlZXAgY29kZSBjb21wYWN0LgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZW5hYmxlOiBmdW5jdGlvbiAoZGVwTWFwKSB7CiAgICAgICAgICAgICAgICB2YXIgbW9kID0gZ2V0T3duKHJlZ2lzdHJ5LCBkZXBNYXAuaWQpOwogICAgICAgICAgICAgICAgaWYgKG1vZCkgewogICAgICAgICAgICAgICAgICAgIGdldE1vZHVsZShkZXBNYXApLmVuYWJsZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEludGVybmFsIG1ldGhvZCB1c2VkIGJ5IGVudmlyb25tZW50IGFkYXB0ZXJzIHRvIGNvbXBsZXRlIGEgbG9hZCBldmVudC4KICAgICAgICAgICAgICogQSBsb2FkIGV2ZW50IGNvdWxkIGJlIGEgc2NyaXB0IGxvYWQgb3IganVzdCBhIGxvYWQgcGFzcyBmcm9tIGEgc3luY2hyb25vdXMKICAgICAgICAgICAgICogbG9hZCBjYWxsLgogICAgICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gbW9kdWxlTmFtZSB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRvIHBvdGVudGlhbGx5IGNvbXBsZXRlLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgY29tcGxldGVMb2FkOiBmdW5jdGlvbiAobW9kdWxlTmFtZSkgewogICAgICAgICAgICAgICAgdmFyIGZvdW5kLCBhcmdzLCBtb2QsCiAgICAgICAgICAgICAgICAgICAgc2hpbSA9IGdldE93bihjb25maWcuc2hpbSwgbW9kdWxlTmFtZSkgfHwge30sCiAgICAgICAgICAgICAgICAgICAgc2hFeHBvcnRzID0gc2hpbS5leHBvcnRzOwoKICAgICAgICAgICAgICAgIHRha2VHbG9iYWxRdWV1ZSgpOwoKICAgICAgICAgICAgICAgIHdoaWxlIChkZWZRdWV1ZS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBhcmdzID0gZGVmUXVldWUuc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgICBpZiAoYXJnc1swXSA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICBhcmdzWzBdID0gbW9kdWxlTmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgLy9JZiBhbHJlYWR5IGZvdW5kIGFuIGFub255bW91cyBtb2R1bGUgYW5kIGJvdW5kIGl0CiAgICAgICAgICAgICAgICAgICAgICAgIC8vdG8gdGhpcyBuYW1lLCB0aGVuIHRoaXMgaXMgc29tZSBvdGhlciBhbm9uIG1vZHVsZQogICAgICAgICAgICAgICAgICAgICAgICAvL3dhaXRpbmcgZm9yIGl0cyBjb21wbGV0ZUxvYWQgdG8gZmlyZS4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzWzBdID09PSBtb2R1bGVOYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vRm91bmQgbWF0Y2hpbmcgZGVmaW5lIGNhbGwgZm9yIHRoaXMgc2NyaXB0IQogICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBjYWxsR2V0TW9kdWxlKGFyZ3MpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29udGV4dC5kZWZRdWV1ZU1hcCA9IHt9OwoKICAgICAgICAgICAgICAgIC8vRG8gdGhpcyBhZnRlciB0aGUgY3ljbGUgb2YgY2FsbEdldE1vZHVsZSBpbiBjYXNlIHRoZSByZXN1bHQKICAgICAgICAgICAgICAgIC8vb2YgdGhvc2UgY2FsbHMvaW5pdCBjYWxscyBjaGFuZ2VzIHRoZSByZWdpc3RyeS4KICAgICAgICAgICAgICAgIG1vZCA9IGdldE93bihyZWdpc3RyeSwgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAgICAgaWYgKCFmb3VuZCAmJiAhaGFzUHJvcChkZWZpbmVkLCBtb2R1bGVOYW1lKSAmJiBtb2QgJiYgIW1vZC5pbml0ZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLmVuZm9yY2VEZWZpbmUgJiYgKCFzaEV4cG9ydHMgfHwgIWdldEdsb2JhbChzaEV4cG9ydHMpKSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzUGF0aEZhbGxiYWNrKG1vZHVsZU5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ25vZGVmaW5lJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05vIGRlZmluZSBjYWxsIGZvciAnICsgbW9kdWxlTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZHVsZU5hbWVdKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAvL0Egc2NyaXB0IHRoYXQgZG9lcyBub3QgY2FsbCBkZWZpbmUoKSwgc28ganVzdCBzaW11bGF0ZQogICAgICAgICAgICAgICAgICAgICAgICAvL3RoZSBjYWxsIGZvciBpdC4KICAgICAgICAgICAgICAgICAgICAgICAgY2FsbEdldE1vZHVsZShbbW9kdWxlTmFtZSwgKHNoaW0uZGVwcyB8fCBbXSksIHNoaW0uZXhwb3J0c0ZuXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNoZWNrTG9hZGVkKCk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQ29udmVydHMgYSBtb2R1bGUgbmFtZSB0byBhIGZpbGUgcGF0aC4gU3VwcG9ydHMgY2FzZXMgd2hlcmUKICAgICAgICAgICAgICogbW9kdWxlTmFtZSBtYXkgYWN0dWFsbHkgYmUganVzdCBhbiBVUkwuCiAgICAgICAgICAgICAqIE5vdGUgdGhhdCBpdCAqKmRvZXMgbm90KiogY2FsbCBub3JtYWxpemUgb24gdGhlIG1vZHVsZU5hbWUsCiAgICAgICAgICAgICAqIGl0IGlzIGFzc3VtZWQgdG8gaGF2ZSBhbHJlYWR5IGJlZW4gbm9ybWFsaXplZC4gVGhpcyBpcyBhbgogICAgICAgICAgICAgKiBpbnRlcm5hbCBBUEksIG5vdCBhIHB1YmxpYyBvbmUuIFVzZSB0b1VybCBmb3IgdGhlIHB1YmxpYyBBUEkuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBuYW1lVG9Vcmw6IGZ1bmN0aW9uIChtb2R1bGVOYW1lLCBleHQsIHNraXBFeHQpIHsKICAgICAgICAgICAgICAgIHZhciBwYXRocywgc3ltcywgaSwgcGFyZW50TW9kdWxlLCB1cmwsCiAgICAgICAgICAgICAgICAgICAgcGFyZW50UGF0aCwgYnVuZGxlSWQsCiAgICAgICAgICAgICAgICAgICAgcGtnTWFpbiA9IGdldE93bihjb25maWcucGtncywgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAgICAgaWYgKHBrZ01haW4pIHsKICAgICAgICAgICAgICAgICAgICBtb2R1bGVOYW1lID0gcGtnTWFpbjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBidW5kbGVJZCA9IGdldE93bihidW5kbGVzTWFwLCBtb2R1bGVOYW1lKTsKCiAgICAgICAgICAgICAgICBpZiAoYnVuZGxlSWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dC5uYW1lVG9VcmwoYnVuZGxlSWQsIGV4dCwgc2tpcEV4dCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9JZiBhIGNvbG9uIGlzIGluIHRoZSBVUkwsIGl0IGluZGljYXRlcyBhIHByb3RvY29sIGlzIHVzZWQgYW5kIGl0IGlzIGp1c3QKICAgICAgICAgICAgICAgIC8vYW4gVVJMIHRvIGEgZmlsZSwgb3IgaWYgaXQgc3RhcnRzIHdpdGggYSBzbGFzaCwgY29udGFpbnMgYSBxdWVyeSBhcmcgKGkuZS4gPykKICAgICAgICAgICAgICAgIC8vb3IgZW5kcyB3aXRoIC5qcywgdGhlbiBhc3N1bWUgdGhlIHVzZXIgbWVhbnQgdG8gdXNlIGFuIHVybCBhbmQgbm90IGEgbW9kdWxlIGlkLgogICAgICAgICAgICAgICAgLy9UaGUgc2xhc2ggaXMgaW1wb3J0YW50IGZvciBwcm90b2NvbC1sZXNzIFVSTHMgYXMgd2VsbCBhcyBmdWxsIHBhdGhzLgogICAgICAgICAgICAgICAgaWYgKHJlcS5qc0V4dFJlZ0V4cC50ZXN0KG1vZHVsZU5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgLy9KdXN0IGEgcGxhaW4gcGF0aCwgbm90IG1vZHVsZSBuYW1lIGxvb2t1cCwgc28ganVzdCByZXR1cm4gaXQuCiAgICAgICAgICAgICAgICAgICAgLy9BZGQgZXh0ZW5zaW9uIGlmIGl0IGlzIGluY2x1ZGVkLiBUaGlzIGlzIGEgYml0IHdvbmt5LCBvbmx5IG5vbi0uanMgdGhpbmdzIHBhc3MKICAgICAgICAgICAgICAgICAgICAvL2FuIGV4dGVuc2lvbiwgdGhpcyBtZXRob2QgcHJvYmFibHkgbmVlZHMgdG8gYmUgcmV3b3JrZWQuCiAgICAgICAgICAgICAgICAgICAgdXJsID0gbW9kdWxlTmFtZSArIChleHQgfHwgJycpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL0EgbW9kdWxlIHRoYXQgbmVlZHMgdG8gYmUgY29udmVydGVkIHRvIGEgcGF0aC4KICAgICAgICAgICAgICAgICAgICBwYXRocyA9IGNvbmZpZy5wYXRoczsKCiAgICAgICAgICAgICAgICAgICAgc3ltcyA9IG1vZHVsZU5hbWUuc3BsaXQoJy8nKTsKICAgICAgICAgICAgICAgICAgICAvL0ZvciBlYWNoIG1vZHVsZSBuYW1lIHNlZ21lbnQsIHNlZSBpZiB0aGVyZSBpcyBhIHBhdGgKICAgICAgICAgICAgICAgICAgICAvL3JlZ2lzdGVyZWQgZm9yIGl0LiBTdGFydCB3aXRoIG1vc3Qgc3BlY2lmaWMgbmFtZQogICAgICAgICAgICAgICAgICAgIC8vYW5kIHdvcmsgdXAgZnJvbSBpdC4KICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSBzeW1zLmxlbmd0aDsgaSA+IDA7IGkgLT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRNb2R1bGUgPSBzeW1zLnNsaWNlKDAsIGkpLmpvaW4oJy8nKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFBhdGggPSBnZXRPd24ocGF0aHMsIHBhcmVudE1vZHVsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnRQYXRoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0lmIGFuIGFycmF5LCBpdCBtZWFucyB0aGVyZSBhcmUgYSBmZXcgY2hvaWNlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vQ2hvb3NlIHRoZSBvbmUgdGhhdCBpcyBkZXNpcmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNBcnJheShwYXJlbnRQYXRoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFBhdGggPSBwYXJlbnRQYXRoWzBdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltcy5zcGxpY2UoMCwgaSwgcGFyZW50UGF0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy9Kb2luIHRoZSBwYXRoIHBhcnRzIHRvZ2V0aGVyLCB0aGVuIGZpZ3VyZSBvdXQgaWYgYmFzZVVybCBpcyBuZWVkZWQuCiAgICAgICAgICAgICAgICAgICAgdXJsID0gc3ltcy5qb2luKCcvJyk7CiAgICAgICAgICAgICAgICAgICAgdXJsICs9IChleHQgfHwgKC9eZGF0YVw6fF5ibG9iXDp8XD8vLnRlc3QodXJsKSB8fCBza2lwRXh0ID8gJycgOiAnLmpzJykpOwogICAgICAgICAgICAgICAgICAgIHVybCA9ICh1cmwuY2hhckF0KDApID09PSAnLycgfHwgdXJsLm1hdGNoKC9eW1x3XCtcLlwtXSs6LykgPyAnJyA6IGNvbmZpZy5iYXNlVXJsKSArIHVybDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLnVybEFyZ3MgJiYgIS9eYmxvYlw6Ly50ZXN0KHVybCkgPwogICAgICAgICAgICAgICAgICAgICAgIHVybCArIGNvbmZpZy51cmxBcmdzKG1vZHVsZU5hbWUsIHVybCkgOiB1cmw7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvL0RlbGVnYXRlcyB0byByZXEubG9hZC4gQnJva2VuIG91dCBhcyBhIHNlcGFyYXRlIGZ1bmN0aW9uIHRvCiAgICAgICAgICAgIC8vYWxsb3cgb3ZlcnJpZGluZyBpbiB0aGUgb3B0aW1pemVyLgogICAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoaWQsIHVybCkgewogICAgICAgICAgICAgICAgcmVxLmxvYWQoY29udGV4dCwgaWQsIHVybCk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogRXhlY3V0ZXMgYSBtb2R1bGUgY2FsbGJhY2sgZnVuY3Rpb24uIEJyb2tlbiBvdXQgYXMgYSBzZXBhcmF0ZSBmdW5jdGlvbgogICAgICAgICAgICAgKiBzb2xlbHkgdG8gYWxsb3cgdGhlIGJ1aWxkIHN5c3RlbSB0byBzZXF1ZW5jZSB0aGUgZmlsZXMgaW4gdGhlIGJ1aWx0CiAgICAgICAgICAgICAqIGxheWVyIGluIHRoZSByaWdodCBzZXF1ZW5jZS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQHByaXZhdGUKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGV4ZWNDYjogZnVuY3Rpb24gKG5hbWUsIGNhbGxiYWNrLCBhcmdzLCBleHBvcnRzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2suYXBwbHkoZXhwb3J0cywgYXJncyk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogY2FsbGJhY2sgZm9yIHNjcmlwdCBsb2FkcywgdXNlZCB0byBjaGVjayBzdGF0dXMgb2YgbG9hZGluZy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQHBhcmFtIHtFdmVudH0gZXZ0IHRoZSBldmVudCBmcm9tIHRoZSBicm93c2VyIGZvciB0aGUgc2NyaXB0CiAgICAgICAgICAgICAqIHRoYXQgd2FzIGxvYWRlZC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIG9uU2NyaXB0TG9hZDogZnVuY3Rpb24gKGV2dCkgewogICAgICAgICAgICAgICAgLy9Vc2luZyBjdXJyZW50VGFyZ2V0IGluc3RlYWQgb2YgdGFyZ2V0IGZvciBGaXJlZm94IDIuMCdzIHNha2UuIE5vdAogICAgICAgICAgICAgICAgLy9hbGwgb2xkIGJyb3dzZXJzIHdpbGwgYmUgc3VwcG9ydGVkLCBidXQgdGhpcyBvbmUgd2FzIGVhc3kgZW5vdWdoCiAgICAgICAgICAgICAgICAvL3RvIHN1cHBvcnQgYW5kIHN0aWxsIG1ha2VzIHNlbnNlLgogICAgICAgICAgICAgICAgaWYgKGV2dC50eXBlID09PSAnbG9hZCcgfHwKICAgICAgICAgICAgICAgICAgICAgICAgKHJlYWR5UmVnRXhwLnRlc3QoKGV2dC5jdXJyZW50VGFyZ2V0IHx8IGV2dC5zcmNFbGVtZW50KS5yZWFkeVN0YXRlKSkpIHsKICAgICAgICAgICAgICAgICAgICAvL1Jlc2V0IGludGVyYWN0aXZlIHNjcmlwdCBzbyBhIHNjcmlwdCBub2RlIGlzIG5vdCBoZWxkIG9udG8gZm9yCiAgICAgICAgICAgICAgICAgICAgLy90byBsb25nLgogICAgICAgICAgICAgICAgICAgIGludGVyYWN0aXZlU2NyaXB0ID0gbnVsbDsKCiAgICAgICAgICAgICAgICAgICAgLy9QdWxsIG91dCB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlIGFuZCB0aGUgY29udGV4dC4KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGdldFNjcmlwdERhdGEoZXZ0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNvbXBsZXRlTG9hZChkYXRhLmlkKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDYWxsYmFjayBmb3Igc2NyaXB0IGVycm9ycy4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIG9uU2NyaXB0RXJyb3I6IGZ1bmN0aW9uIChldnQpIHsKICAgICAgICAgICAgICAgIHZhciBkYXRhID0gZ2V0U2NyaXB0RGF0YShldnQpOwogICAgICAgICAgICAgICAgaWYgKCFoYXNQYXRoRmFsbGJhY2soZGF0YS5pZCkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcGFyZW50cyA9IFtdOwogICAgICAgICAgICAgICAgICAgIGVhY2hQcm9wKHJlZ2lzdHJ5LCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkuaW5kZXhPZignX0ByJykgIT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVhY2godmFsdWUuZGVwTWFwcywgZnVuY3Rpb24oZGVwTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlcE1hcC5pZCA9PT0gZGF0YS5pZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRzLnB1c2goa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ3NjcmlwdGVycm9yJywgJ1NjcmlwdCBlcnJvciBmb3IgIicgKyBkYXRhLmlkICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudHMubGVuZ3RoID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyIsIG5lZWRlZCBieTogJyArIHBhcmVudHMuam9pbignLCAnKSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICciJyksIGV2dCwgW2RhdGEuaWRdKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBjb250ZXh0LnJlcXVpcmUgPSBjb250ZXh0Lm1ha2VSZXF1aXJlKCk7CiAgICAgICAgcmV0dXJuIGNvbnRleHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBNYWluIGVudHJ5IHBvaW50LgogICAgICoKICAgICAqIElmIHRoZSBvbmx5IGFyZ3VtZW50IHRvIHJlcXVpcmUgaXMgYSBzdHJpbmcsIHRoZW4gdGhlIG1vZHVsZSB0aGF0CiAgICAgKiBpcyByZXByZXNlbnRlZCBieSB0aGF0IHN0cmluZyBpcyBmZXRjaGVkIGZvciB0aGUgYXBwcm9wcmlhdGUgY29udGV4dC4KICAgICAqCiAgICAgKiBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYW4gYXJyYXksIHRoZW4gaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGFuIGFycmF5CiAgICAgKiBvZiBkZXBlbmRlbmN5IHN0cmluZyBuYW1lcyB0byBmZXRjaC4gQW4gb3B0aW9uYWwgZnVuY3Rpb24gY2FsbGJhY2sgY2FuCiAgICAgKiBiZSBzcGVjaWZpZWQgdG8gZXhlY3V0ZSB3aGVuIGFsbCBvZiB0aG9zZSBkZXBlbmRlbmNpZXMgYXJlIGF2YWlsYWJsZS4KICAgICAqCiAgICAgKiBNYWtlIGEgbG9jYWwgcmVxIHZhcmlhYmxlIHRvIGhlbHAgQ2FqYSBjb21wbGlhbmNlIChpdCBhc3N1bWVzIHRoaW5ncwogICAgICogb24gYSByZXF1aXJlIHRoYXQgYXJlIG5vdCBzdGFuZGFyZGl6ZWQpLCBhbmQgdG8gZ2l2ZSBhIHNob3J0CiAgICAgKiBuYW1lIGZvciBtaW5pZmljYXRpb24vbG9jYWwgc2NvcGUgdXNlLgogICAgICovCiAgICByZXEgPSByZXF1aXJlanMgPSBmdW5jdGlvbiAoZGVwcywgY2FsbGJhY2ssIGVycmJhY2ssIG9wdGlvbmFsKSB7CgogICAgICAgIC8vRmluZCB0aGUgcmlnaHQgY29udGV4dCwgdXNlIGRlZmF1bHQKICAgICAgICB2YXIgY29udGV4dCwgY29uZmlnLAogICAgICAgICAgICBjb250ZXh0TmFtZSA9IGRlZkNvbnRleHROYW1lOwoKICAgICAgICAvLyBEZXRlcm1pbmUgaWYgaGF2ZSBjb25maWcgb2JqZWN0IGluIHRoZSBjYWxsLgogICAgICAgIGlmICghaXNBcnJheShkZXBzKSAmJiB0eXBlb2YgZGVwcyAhPT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgLy8gZGVwcyBpcyBhIGNvbmZpZyBvYmplY3QKICAgICAgICAgICAgY29uZmlnID0gZGVwczsKICAgICAgICAgICAgaWYgKGlzQXJyYXkoY2FsbGJhY2spKSB7CiAgICAgICAgICAgICAgICAvLyBBZGp1c3QgYXJncyBpZiB0aGVyZSBhcmUgZGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICBkZXBzID0gY2FsbGJhY2s7CiAgICAgICAgICAgICAgICBjYWxsYmFjayA9IGVycmJhY2s7CiAgICAgICAgICAgICAgICBlcnJiYWNrID0gb3B0aW9uYWw7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkZXBzID0gW107CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmNvbnRleHQpIHsKICAgICAgICAgICAgY29udGV4dE5hbWUgPSBjb25maWcuY29udGV4dDsKICAgICAgICB9CgogICAgICAgIGNvbnRleHQgPSBnZXRPd24oY29udGV4dHMsIGNvbnRleHROYW1lKTsKICAgICAgICBpZiAoIWNvbnRleHQpIHsKICAgICAgICAgICAgY29udGV4dCA9IGNvbnRleHRzW2NvbnRleHROYW1lXSA9IHJlcS5zLm5ld0NvbnRleHQoY29udGV4dE5hbWUpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGNvbmZpZykgewogICAgICAgICAgICBjb250ZXh0LmNvbmZpZ3VyZShjb25maWcpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGNvbnRleHQucmVxdWlyZShkZXBzLCBjYWxsYmFjaywgZXJyYmFjayk7CiAgICB9OwoKICAgIC8qKgogICAgICogU3VwcG9ydCByZXF1aXJlLmNvbmZpZygpIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGNvb3BlcmF0ZSB3aXRoIG90aGVyCiAgICAgKiBBTUQgbG9hZGVycyBvbiBnbG9iYWxseSBhZ3JlZWQgbmFtZXMuCiAgICAgKi8KICAgIHJlcS5jb25maWcgPSBmdW5jdGlvbiAoY29uZmlnKSB7CiAgICAgICAgcmV0dXJuIHJlcShjb25maWcpOwogICAgfTsKCiAgICAvKioKICAgICAqIEV4ZWN1dGUgc29tZXRoaW5nIGFmdGVyIHRoZSBjdXJyZW50IHRpY2sKICAgICAqIG9mIHRoZSBldmVudCBsb29wLiBPdmVycmlkZSBmb3Igb3RoZXIgZW52cwogICAgICogdGhhdCBoYXZlIGEgYmV0dGVyIHNvbHV0aW9uIHRoYW4gc2V0VGltZW91dC4KICAgICAqIEBwYXJhbSAge0Z1bmN0aW9ufSBmbiBmdW5jdGlvbiB0byBleGVjdXRlIGxhdGVyLgogICAgICovCiAgICByZXEubmV4dFRpY2sgPSB0eXBlb2Ygc2V0VGltZW91dCAhPT0gJ3VuZGVmaW5lZCcgPyBmdW5jdGlvbiAoZm4pIHsKICAgICAgICBzZXRUaW1lb3V0KGZuLCA0KTsKICAgIH0gOiBmdW5jdGlvbiAoZm4pIHsgZm4oKTsgfTsKCiAgICAvKioKICAgICAqIEV4cG9ydCByZXF1aXJlIGFzIGEgZ2xvYmFsLCBidXQgb25seSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0LgogICAgICovCiAgICBpZiAoIXJlcXVpcmUpIHsKICAgICAgICByZXF1aXJlID0gcmVxOwogICAgfQoKICAgIHJlcS52ZXJzaW9uID0gdmVyc2lvbjsKCiAgICAvL1VzZWQgdG8gZmlsdGVyIG91dCBkZXBlbmRlbmNpZXMgdGhhdCBhcmUgYWxyZWFkeSBwYXRocy4KICAgIHJlcS5qc0V4dFJlZ0V4cCA9IC9eXC98OnxcP3xcLmpzJC87CiAgICByZXEuaXNCcm93c2VyID0gaXNCcm93c2VyOwogICAgcyA9IHJlcS5zID0gewogICAgICAgIGNvbnRleHRzOiBjb250ZXh0cywKICAgICAgICBuZXdDb250ZXh0OiBuZXdDb250ZXh0CiAgICB9OwoKICAgIC8vQ3JlYXRlIGRlZmF1bHQgY29udGV4dC4KICAgIHJlcSh7fSk7CgogICAgLy9FeHBvcnRzIHNvbWUgY29udGV4dC1zZW5zaXRpdmUgbWV0aG9kcyBvbiBnbG9iYWwgcmVxdWlyZS4KICAgIGVhY2goWwogICAgICAgICd0b1VybCcsCiAgICAgICAgJ3VuZGVmJywKICAgICAgICAnZGVmaW5lZCcsCiAgICAgICAgJ3NwZWNpZmllZCcKICAgIF0sIGZ1bmN0aW9uIChwcm9wKSB7CiAgICAgICAgLy9SZWZlcmVuY2UgZnJvbSBjb250ZXh0cyBpbnN0ZWFkIG9mIGVhcmx5IGJpbmRpbmcgdG8gZGVmYXVsdCBjb250ZXh0LAogICAgICAgIC8vc28gdGhhdCBkdXJpbmcgYnVpbGRzLCB0aGUgbGF0ZXN0IGluc3RhbmNlIG9mIHRoZSBkZWZhdWx0IGNvbnRleHQKICAgICAgICAvL3dpdGggaXRzIGNvbmZpZyBnZXRzIHVzZWQuCiAgICAgICAgcmVxW3Byb3BdID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgY3R4ID0gY29udGV4dHNbZGVmQ29udGV4dE5hbWVdOwogICAgICAgICAgICByZXR1cm4gY3R4LnJlcXVpcmVbcHJvcF0uYXBwbHkoY3R4LCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICB9KTsKCiAgICBpZiAoaXNCcm93c2VyKSB7CiAgICAgICAgaGVhZCA9IHMuaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07CiAgICAgICAgLy9JZiBCQVNFIHRhZyBpcyBpbiBwbGF5LCB1c2luZyBhcHBlbmRDaGlsZCBpcyBhIHByb2JsZW0gZm9yIElFNi4KICAgICAgICAvL1doZW4gdGhhdCBicm93c2VyIGRpZXMsIHRoaXMgY2FuIGJlIHJlbW92ZWQuIERldGFpbHMgaW4gdGhpcyBqUXVlcnkgYnVnOgogICAgICAgIC8vaHR0cDovL2Rldi5qcXVlcnkuY29tL3RpY2tldC8yNzA5CiAgICAgICAgYmFzZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYmFzZScpWzBdOwogICAgICAgIGlmIChiYXNlRWxlbWVudCkgewogICAgICAgICAgICBoZWFkID0gcy5oZWFkID0gYmFzZUVsZW1lbnQucGFyZW50Tm9kZTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBBbnkgZXJyb3JzIHRoYXQgcmVxdWlyZSBleHBsaWNpdGx5IGdlbmVyYXRlcyB3aWxsIGJlIHBhc3NlZCB0byB0aGlzCiAgICAgKiBmdW5jdGlvbi4gSW50ZXJjZXB0L292ZXJyaWRlIGl0IGlmIHlvdSB3YW50IGN1c3RvbSBlcnJvciBoYW5kbGluZy4KICAgICAqIEBwYXJhbSB7RXJyb3J9IGVyciB0aGUgZXJyb3Igb2JqZWN0LgogICAgICovCiAgICByZXEub25FcnJvciA9IGRlZmF1bHRPbkVycm9yOwoKICAgIC8qKgogICAgICogQ3JlYXRlcyB0aGUgbm9kZSBmb3IgdGhlIGxvYWQgY29tbWFuZC4gT25seSB1c2VkIGluIGJyb3dzZXIgZW52cy4KICAgICAqLwogICAgcmVxLmNyZWF0ZU5vZGUgPSBmdW5jdGlvbiAoY29uZmlnLCBtb2R1bGVOYW1lLCB1cmwpIHsKICAgICAgICB2YXIgbm9kZSA9IGNvbmZpZy54aHRtbCA/CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnaHRtbDpzY3JpcHQnKSA6CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBub2RlLnR5cGUgPSBjb25maWcuc2NyaXB0VHlwZSB8fCAndGV4dC9qYXZhc2NyaXB0JzsKICAgICAgICBub2RlLmNoYXJzZXQgPSAndXRmLTgnOwogICAgICAgIG5vZGUuYXN5bmMgPSB0cnVlOwogICAgICAgIHJldHVybiBub2RlOwogICAgfTsKCiAgICAvKioKICAgICAqIERvZXMgdGhlIHJlcXVlc3QgdG8gbG9hZCBhIG1vZHVsZSBmb3IgdGhlIGJyb3dzZXIgY2FzZS4KICAgICAqIE1ha2UgdGhpcyBhIHNlcGFyYXRlIGZ1bmN0aW9uIHRvIGFsbG93IG90aGVyIGVudmlyb25tZW50cwogICAgICogdG8gb3ZlcnJpZGUgaXQuCiAgICAgKgogICAgICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHQgdGhlIHJlcXVpcmUgY29udGV4dCB0byBmaW5kIHN0YXRlLgogICAgICogQHBhcmFtIHtTdHJpbmd9IG1vZHVsZU5hbWUgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZS4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSB1cmwgdGhlIFVSTCB0byB0aGUgbW9kdWxlLgogICAgICovCiAgICByZXEubG9hZCA9IGZ1bmN0aW9uIChjb250ZXh0LCBtb2R1bGVOYW1lLCB1cmwpIHsKICAgICAgICB2YXIgY29uZmlnID0gKGNvbnRleHQgJiYgY29udGV4dC5jb25maWcpIHx8IHt9LAogICAgICAgICAgICBub2RlOwogICAgICAgIGlmIChpc0Jyb3dzZXIpIHsKICAgICAgICAgICAgLy9JbiB0aGUgYnJvd3NlciBzbyB1c2UgYSBzY3JpcHQgdGFnCiAgICAgICAgICAgIG5vZGUgPSByZXEuY3JlYXRlTm9kZShjb25maWcsIG1vZHVsZU5hbWUsIHVybCk7CgogICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlY29udGV4dCcsIGNvbnRleHQuY29udGV4dE5hbWUpOwogICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlbW9kdWxlJywgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAvL1NldCB1cCBsb2FkIGxpc3RlbmVyLiBUZXN0IGF0dGFjaEV2ZW50IGZpcnN0IGJlY2F1c2UgSUU5IGhhcwogICAgICAgICAgICAvL2Egc3VidGxlIGlzc3VlIGluIGl0cyBhZGRFdmVudExpc3RlbmVyIGFuZCBzY3JpcHQgb25sb2FkIGZpcmluZ3MKICAgICAgICAgICAgLy90aGF0IGRvIG5vdCBtYXRjaCB0aGUgYmVoYXZpb3Igb2YgYWxsIG90aGVyIGJyb3dzZXJzIHdpdGgKICAgICAgICAgICAgLy9hZGRFdmVudExpc3RlbmVyIHN1cHBvcnQsIHdoaWNoIGZpcmUgdGhlIG9ubG9hZCBldmVudCBmb3IgYQogICAgICAgICAgICAvL3NjcmlwdCByaWdodCBhZnRlciB0aGUgc2NyaXB0IGV4ZWN1dGlvbi4gU2VlOgogICAgICAgICAgICAvL2h0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL0lFL2ZlZWRiYWNrL2RldGFpbHMvNjQ4MDU3L3NjcmlwdC1vbmxvYWQtZXZlbnQtaXMtbm90LWZpcmVkLWltbWVkaWF0ZWx5LWFmdGVyLXNjcmlwdC1leGVjdXRpb24KICAgICAgICAgICAgLy9VTkZPUlRVTkFURUxZIE9wZXJhIGltcGxlbWVudHMgYXR0YWNoRXZlbnQgYnV0IGRvZXMgbm90IGZvbGxvdyB0aGUgc2NyaXB0CiAgICAgICAgICAgIC8vc2NyaXB0IGV4ZWN1dGlvbiBtb2RlLgogICAgICAgICAgICBpZiAobm9kZS5hdHRhY2hFdmVudCAmJgogICAgICAgICAgICAgICAgICAgIC8vQ2hlY2sgaWYgbm9kZS5hdHRhY2hFdmVudCBpcyBhcnRpZmljaWFsbHkgYWRkZWQgYnkgY3VzdG9tIHNjcmlwdCBvcgogICAgICAgICAgICAgICAgICAgIC8vbmF0aXZlbHkgc3VwcG9ydGVkIGJ5IGJyb3dzZXIKICAgICAgICAgICAgICAgICAgICAvL3JlYWQgaHR0cHM6Ly9naXRodWIuY29tL3JlcXVpcmVqcy9yZXF1aXJlanMvaXNzdWVzLzE4NwogICAgICAgICAgICAgICAgICAgIC8vaWYgd2UgY2FuIE5PVCBmaW5kIFtuYXRpdmUgY29kZV0gdGhlbiBpdCBtdXN0IE5PVCBuYXRpdmVseSBzdXBwb3J0ZWQuCiAgICAgICAgICAgICAgICAgICAgLy9pbiBJRTgsIG5vZGUuYXR0YWNoRXZlbnQgZG9lcyBub3QgaGF2ZSB0b1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgLy9Ob3RlIHRoZSB0ZXN0IGZvciAiW25hdGl2ZSBjb2RlIiB3aXRoIG5vIGNsb3NpbmcgYnJhY2UsIHNlZToKICAgICAgICAgICAgICAgICAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9yZXF1aXJlanMvcmVxdWlyZWpzL2lzc3Vlcy8yNzMKICAgICAgICAgICAgICAgICAgICAhKG5vZGUuYXR0YWNoRXZlbnQudG9TdHJpbmcgJiYgbm9kZS5hdHRhY2hFdmVudC50b1N0cmluZygpLmluZGV4T2YoJ1tuYXRpdmUgY29kZScpIDwgMCkgJiYKICAgICAgICAgICAgICAgICAgICAhaXNPcGVyYSkgewogICAgICAgICAgICAgICAgLy9Qcm9iYWJseSBJRS4gSUUgKGF0IGxlYXN0IDYtOCkgZG8gbm90IGZpcmUKICAgICAgICAgICAgICAgIC8vc2NyaXB0IG9ubG9hZCByaWdodCBhZnRlciBleGVjdXRpbmcgdGhlIHNjcmlwdCwgc28KICAgICAgICAgICAgICAgIC8vd2UgY2Fubm90IHRpZSB0aGUgYW5vbnltb3VzIGRlZmluZSBjYWxsIHRvIGEgbmFtZS4KICAgICAgICAgICAgICAgIC8vSG93ZXZlciwgSUUgcmVwb3J0cyB0aGUgc2NyaXB0IGFzIGJlaW5nIGluICdpbnRlcmFjdGl2ZScKICAgICAgICAgICAgICAgIC8vcmVhZHlTdGF0ZSBhdCB0aGUgdGltZSBvZiB0aGUgZGVmaW5lIGNhbGwuCiAgICAgICAgICAgICAgICB1c2VJbnRlcmFjdGl2ZSA9IHRydWU7CgogICAgICAgICAgICAgICAgbm9kZS5hdHRhY2hFdmVudCgnb25yZWFkeXN0YXRlY2hhbmdlJywgY29udGV4dC5vblNjcmlwdExvYWQpOwogICAgICAgICAgICAgICAgLy9JdCB3b3VsZCBiZSBncmVhdCB0byBhZGQgYW4gZXJyb3IgaGFuZGxlciBoZXJlIHRvIGNhdGNoCiAgICAgICAgICAgICAgICAvLzQwNHMgaW4gSUU5Ky4gSG93ZXZlciwgb25yZWFkeXN0YXRlY2hhbmdlIHdpbGwgZmlyZSBiZWZvcmUKICAgICAgICAgICAgICAgIC8vdGhlIGVycm9yIGhhbmRsZXIsIHNvIHRoYXQgZG9lcyBub3QgaGVscC4gSWYgYWRkRXZlbnRMaXN0ZW5lcgogICAgICAgICAgICAgICAgLy9pcyB1c2VkLCB0aGVuIElFIHdpbGwgZmlyZSBlcnJvciBiZWZvcmUgbG9hZCwgYnV0IHdlIGNhbm5vdAogICAgICAgICAgICAgICAgLy91c2UgdGhhdCBwYXRod2F5IGdpdmVuIHRoZSBjb25uZWN0Lm1pY3Jvc29mdC5jb20gaXNzdWUKICAgICAgICAgICAgICAgIC8vbWVudGlvbmVkIGFib3ZlIGFib3V0IG5vdCBkb2luZyB0aGUgJ3NjcmlwdCBleGVjdXRlLAogICAgICAgICAgICAgICAgLy90aGVuIGZpcmUgdGhlIHNjcmlwdCBsb2FkIGV2ZW50IGxpc3RlbmVyIGJlZm9yZSBleGVjdXRlCiAgICAgICAgICAgICAgICAvL25leHQgc2NyaXB0JyB0aGF0IG90aGVyIGJyb3dzZXJzIGRvLgogICAgICAgICAgICAgICAgLy9CZXN0IGhvcGU6IElFMTAgZml4ZXMgdGhlIGlzc3VlcywKICAgICAgICAgICAgICAgIC8vYW5kIHRoZW4gZGVzdHJveXMgYWxsIGluc3RhbGxzIG9mIElFIDYtOS4KICAgICAgICAgICAgICAgIC8vbm9kZS5hdHRhY2hFdmVudCgnb25lcnJvcicsIGNvbnRleHQub25TY3JpcHRFcnJvcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb250ZXh0Lm9uU2NyaXB0TG9hZCwgZmFsc2UpOwogICAgICAgICAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGNvbnRleHQub25TY3JpcHRFcnJvciwgZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5vZGUuc3JjID0gdXJsOwoKICAgICAgICAgICAgLy9DYWxsaW5nIG9uTm9kZUNyZWF0ZWQgYWZ0ZXIgYWxsIHByb3BlcnRpZXMgb24gdGhlIG5vZGUgaGF2ZSBiZWVuCiAgICAgICAgICAgIC8vc2V0LCBidXQgYmVmb3JlIGl0IGlzIHBsYWNlZCBpbiB0aGUgRE9NLgogICAgICAgICAgICBpZiAoY29uZmlnLm9uTm9kZUNyZWF0ZWQpIHsKICAgICAgICAgICAgICAgIGNvbmZpZy5vbk5vZGVDcmVhdGVkKG5vZGUsIGNvbmZpZywgbW9kdWxlTmFtZSwgdXJsKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9Gb3Igc29tZSBjYWNoZSBjYXNlcyBpbiBJRSA2LTgsIHRoZSBzY3JpcHQgZXhlY3V0ZXMgYmVmb3JlIHRoZSBlbmQKICAgICAgICAgICAgLy9vZiB0aGUgYXBwZW5kQ2hpbGQgZXhlY3V0aW9uLCBzbyB0byB0aWUgYW4gYW5vbnltb3VzIGRlZmluZQogICAgICAgICAgICAvL2NhbGwgdG8gdGhlIG1vZHVsZSBuYW1lICh3aGljaCBpcyBzdG9yZWQgb24gdGhlIG5vZGUpLCBob2xkIG9uCiAgICAgICAgICAgIC8vdG8gYSByZWZlcmVuY2UgdG8gdGhpcyBub2RlLCBidXQgY2xlYXIgYWZ0ZXIgdGhlIERPTSBpbnNlcnRpb24uCiAgICAgICAgICAgIGN1cnJlbnRseUFkZGluZ1NjcmlwdCA9IG5vZGU7CiAgICAgICAgICAgIGlmIChiYXNlRWxlbWVudCkgewogICAgICAgICAgICAgICAgaGVhZC5pbnNlcnRCZWZvcmUobm9kZSwgYmFzZUVsZW1lbnQpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChub2RlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjdXJyZW50bHlBZGRpbmdTY3JpcHQgPSBudWxsOwoKICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgICAgfSBlbHNlIGlmIChpc1dlYldvcmtlcikgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgLy9JbiBhIHdlYiB3b3JrZXIsIHVzZSBpbXBvcnRTY3JpcHRzLiBUaGlzIGlzIG5vdCBhIHZlcnkKICAgICAgICAgICAgICAgIC8vZWZmaWNpZW50IHVzZSBvZiBpbXBvcnRTY3JpcHRzLCBpbXBvcnRTY3JpcHRzIHdpbGwgYmxvY2sgdW50aWwKICAgICAgICAgICAgICAgIC8vaXRzIHNjcmlwdCBpcyBkb3dubG9hZGVkIGFuZCBldmFsdWF0ZWQuIEhvd2V2ZXIsIGlmIHdlYiB3b3JrZXJzCiAgICAgICAgICAgICAgICAvL2FyZSBpbiBwbGF5LCB0aGUgZXhwZWN0YXRpb24gaXMgdGhhdCBhIGJ1aWxkIGhhcyBiZWVuIGRvbmUgc28KICAgICAgICAgICAgICAgIC8vdGhhdCBvbmx5IG9uZSBzY3JpcHQgbmVlZHMgdG8gYmUgbG9hZGVkIGFueXdheS4gVGhpcyBtYXkgbmVlZAogICAgICAgICAgICAgICAgLy90byBiZSByZWV2YWx1YXRlZCBpZiBvdGhlciB1c2UgY2FzZXMgYmVjb21lIGNvbW1vbi4KCiAgICAgICAgICAgICAgICAvLyBQb3N0IGEgdGFzayB0byB0aGUgZXZlbnQgbG9vcCB0byB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBXZWJLaXQKICAgICAgICAgICAgICAgIC8vIHdoZXJlIHRoZSB3b3JrZXIgZ2V0cyBnYXJiYWdlLWNvbGxlY3RlZCBhZnRlciBjYWxsaW5nCiAgICAgICAgICAgICAgICAvLyBpbXBvcnRTY3JpcHRzKCk6IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MzMxNwogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHt9LCAwKTsKICAgICAgICAgICAgICAgIGltcG9ydFNjcmlwdHModXJsKTsKCiAgICAgICAgICAgICAgICAvL0FjY291bnQgZm9yIGFub255bW91cyBtb2R1bGVzCiAgICAgICAgICAgICAgICBjb250ZXh0LmNvbXBsZXRlTG9hZChtb2R1bGVOYW1lKTsKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgY29udGV4dC5vbkVycm9yKG1ha2VFcnJvcignaW1wb3J0c2NyaXB0cycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ltcG9ydFNjcmlwdHMgZmFpbGVkIGZvciAnICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlTmFtZSArICcgYXQgJyArIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2R1bGVOYW1lXSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfTsKCiAgICBmdW5jdGlvbiBnZXRJbnRlcmFjdGl2ZVNjcmlwdCgpIHsKICAgICAgICBpZiAoaW50ZXJhY3RpdmVTY3JpcHQgJiYgaW50ZXJhY3RpdmVTY3JpcHQucmVhZHlTdGF0ZSA9PT0gJ2ludGVyYWN0aXZlJykgewogICAgICAgICAgICByZXR1cm4gaW50ZXJhY3RpdmVTY3JpcHQ7CiAgICAgICAgfQoKICAgICAgICBlYWNoUmV2ZXJzZShzY3JpcHRzKCksIGZ1bmN0aW9uIChzY3JpcHQpIHsKICAgICAgICAgICAgaWYgKHNjcmlwdC5yZWFkeVN0YXRlID09PSAnaW50ZXJhY3RpdmUnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKGludGVyYWN0aXZlU2NyaXB0ID0gc2NyaXB0KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHJldHVybiBpbnRlcmFjdGl2ZVNjcmlwdDsKICAgIH0KCiAgICAvL0xvb2sgZm9yIGEgZGF0YS1tYWluIHNjcmlwdCBhdHRyaWJ1dGUsIHdoaWNoIGNvdWxkIGFsc28gYWRqdXN0IHRoZSBiYXNlVXJsLgogICAgaWYgKGlzQnJvd3NlciAmJiAhY2ZnLnNraXBEYXRhTWFpbikgewogICAgICAgIC8vRmlndXJlIG91dCBiYXNlVXJsLiBHZXQgaXQgZnJvbSB0aGUgc2NyaXB0IHRhZyB3aXRoIHJlcXVpcmUuanMgaW4gaXQuCiAgICAgICAgZWFjaFJldmVyc2Uoc2NyaXB0cygpLCBmdW5jdGlvbiAoc2NyaXB0KSB7CiAgICAgICAgICAgIC8vU2V0IHRoZSAnaGVhZCcgd2hlcmUgd2UgY2FuIGFwcGVuZCBjaGlsZHJlbiBieQogICAgICAgICAgICAvL3VzaW5nIHRoZSBzY3JpcHQncyBwYXJlbnQuCiAgICAgICAgICAgIGlmICghaGVhZCkgewogICAgICAgICAgICAgICAgaGVhZCA9IHNjcmlwdC5wYXJlbnROb2RlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL0xvb2sgZm9yIGEgZGF0YS1tYWluIGF0dHJpYnV0ZSB0byBzZXQgbWFpbiBzY3JpcHQgZm9yIHRoZSBwYWdlCiAgICAgICAgICAgIC8vdG8gbG9hZC4gSWYgaXQgaXMgdGhlcmUsIHRoZSBwYXRoIHRvIGRhdGEgbWFpbiBiZWNvbWVzIHRoZQogICAgICAgICAgICAvL2Jhc2VVcmwsIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHNldC4KICAgICAgICAgICAgZGF0YU1haW4gPSBzY3JpcHQuZ2V0QXR0cmlidXRlKCdkYXRhLW1haW4nKTsKICAgICAgICAgICAgaWYgKGRhdGFNYWluKSB7CiAgICAgICAgICAgICAgICAvL1ByZXNlcnZlIGRhdGFNYWluIGluIGNhc2UgaXQgaXMgYSBwYXRoIChpLmUuIGNvbnRhaW5zICc/JykKICAgICAgICAgICAgICAgIG1haW5TY3JpcHQgPSBkYXRhTWFpbjsKCiAgICAgICAgICAgICAgICAvL1NldCBmaW5hbCBiYXNlVXJsIGlmIHRoZXJlIGlzIG5vdCBhbHJlYWR5IGFuIGV4cGxpY2l0IG9uZSwKICAgICAgICAgICAgICAgIC8vYnV0IG9ubHkgZG8gc28gaWYgdGhlIGRhdGEtbWFpbiB2YWx1ZSBpcyBub3QgYSBsb2FkZXIgcGx1Z2luCiAgICAgICAgICAgICAgICAvL21vZHVsZSBJRC4KICAgICAgICAgICAgICAgIGlmICghY2ZnLmJhc2VVcmwgJiYgbWFpblNjcmlwdC5pbmRleE9mKCchJykgPT09IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgLy9QdWxsIG9mZiB0aGUgZGlyZWN0b3J5IG9mIGRhdGEtbWFpbiBmb3IgdXNlIGFzIHRoZQogICAgICAgICAgICAgICAgICAgIC8vYmFzZVVybC4KICAgICAgICAgICAgICAgICAgICBzcmMgPSBtYWluU2NyaXB0LnNwbGl0KCcvJyk7CiAgICAgICAgICAgICAgICAgICAgbWFpblNjcmlwdCA9IHNyYy5wb3AoKTsKICAgICAgICAgICAgICAgICAgICBzdWJQYXRoID0gc3JjLmxlbmd0aCA/IHNyYy5qb2luKCcvJykgICsgJy8nIDogJy4vJzsKCiAgICAgICAgICAgICAgICAgICAgY2ZnLmJhc2VVcmwgPSBzdWJQYXRoOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vU3RyaXAgb2ZmIGFueSB0cmFpbGluZyAuanMgc2luY2UgbWFpblNjcmlwdCBpcyBub3cKICAgICAgICAgICAgICAgIC8vbGlrZSBhIG1vZHVsZSBuYW1lLgogICAgICAgICAgICAgICAgbWFpblNjcmlwdCA9IG1haW5TY3JpcHQucmVwbGFjZShqc1N1ZmZpeFJlZ0V4cCwgJycpOwoKICAgICAgICAgICAgICAgIC8vSWYgbWFpblNjcmlwdCBpcyBzdGlsbCBhIHBhdGgsIGZhbGwgYmFjayB0byBkYXRhTWFpbgogICAgICAgICAgICAgICAgaWYgKHJlcS5qc0V4dFJlZ0V4cC50ZXN0KG1haW5TY3JpcHQpKSB7CiAgICAgICAgICAgICAgICAgICAgbWFpblNjcmlwdCA9IGRhdGFNYWluOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vUHV0IHRoZSBkYXRhLW1haW4gc2NyaXB0IGluIHRoZSBmaWxlcyB0byBsb2FkLgogICAgICAgICAgICAgICAgY2ZnLmRlcHMgPSBjZmcuZGVwcyA/IGNmZy5kZXBzLmNvbmNhdChtYWluU2NyaXB0KSA6IFttYWluU2NyaXB0XTsKCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBkZWZpbml0aW9ucyBvZiBtb2R1bGVzLiBEaWZmZXJzIGZyb20KICAgICAqIHJlcXVpcmUoKSBpbiB0aGF0IGEgc3RyaW5nIGZvciB0aGUgbW9kdWxlIHNob3VsZCBiZSB0aGUgZmlyc3QgYXJndW1lbnQsCiAgICAgKiBhbmQgdGhlIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgYWZ0ZXIgZGVwZW5kZW5jaWVzIGFyZSBsb2FkZWQgc2hvdWxkCiAgICAgKiByZXR1cm4gYSB2YWx1ZSB0byBkZWZpbmUgdGhlIG1vZHVsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaXJzdCBhcmd1bWVudCdzCiAgICAgKiBuYW1lLgogICAgICovCiAgICBkZWZpbmUgPSBmdW5jdGlvbiAobmFtZSwgZGVwcywgY2FsbGJhY2spIHsKICAgICAgICB2YXIgbm9kZSwgY29udGV4dDsKCiAgICAgICAgLy9BbGxvdyBmb3IgYW5vbnltb3VzIG1vZHVsZXMKICAgICAgICBpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgIC8vQWRqdXN0IGFyZ3MgYXBwcm9wcmlhdGVseQogICAgICAgICAgICBjYWxsYmFjayA9IGRlcHM7CiAgICAgICAgICAgIGRlcHMgPSBuYW1lOwogICAgICAgICAgICBuYW1lID0gbnVsbDsKICAgICAgICB9CgogICAgICAgIC8vVGhpcyBtb2R1bGUgbWF5IG5vdCBoYXZlIGRlcGVuZGVuY2llcwogICAgICAgIGlmICghaXNBcnJheShkZXBzKSkgewogICAgICAgICAgICBjYWxsYmFjayA9IGRlcHM7CiAgICAgICAgICAgIGRlcHMgPSBudWxsOwogICAgICAgIH0KCiAgICAgICAgLy9JZiBubyBuYW1lLCBhbmQgY2FsbGJhY2sgaXMgYSBmdW5jdGlvbiwgdGhlbiBmaWd1cmUgb3V0IGlmIGl0IGEKICAgICAgICAvL0NvbW1vbkpTIHRoaW5nIHdpdGggZGVwZW5kZW5jaWVzLgogICAgICAgIGlmICghZGVwcyAmJiBpc0Z1bmN0aW9uKGNhbGxiYWNrKSkgewogICAgICAgICAgICBkZXBzID0gW107CiAgICAgICAgICAgIC8vUmVtb3ZlIGNvbW1lbnRzIGZyb20gdGhlIGNhbGxiYWNrIHN0cmluZywKICAgICAgICAgICAgLy9sb29rIGZvciByZXF1aXJlIGNhbGxzLCBhbmQgcHVsbCB0aGVtIGludG8gdGhlIGRlcGVuZGVuY2llcywKICAgICAgICAgICAgLy9idXQgb25seSBpZiB0aGVyZSBhcmUgZnVuY3Rpb24gYXJncy4KICAgICAgICAgICAgaWYgKGNhbGxiYWNrLmxlbmd0aCkgewogICAgICAgICAgICAgICAgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAudG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKGNvbW1lbnRSZWdFeHAsIGNvbW1lbnRSZXBsYWNlKQogICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKGNqc1JlcXVpcmVSZWdFeHAsIGZ1bmN0aW9uIChtYXRjaCwgZGVwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlcHMucHVzaChkZXApOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIC8vTWF5IGJlIGEgQ29tbW9uSlMgdGhpbmcgZXZlbiB3aXRob3V0IHJlcXVpcmUgY2FsbHMsIGJ1dCBzdGlsbAogICAgICAgICAgICAgICAgLy9jb3VsZCB1c2UgZXhwb3J0cywgYW5kIG1vZHVsZS4gQXZvaWQgZG9pbmcgZXhwb3J0cyBhbmQgbW9kdWxlCiAgICAgICAgICAgICAgICAvL3dvcmsgdGhvdWdoIGlmIGl0IGp1c3QgbmVlZHMgcmVxdWlyZS4KICAgICAgICAgICAgICAgIC8vUkVRVUlSRVMgdGhlIGZ1bmN0aW9uIHRvIGV4cGVjdCB0aGUgQ29tbW9uSlMgdmFyaWFibGVzIGluIHRoZQogICAgICAgICAgICAgICAgLy9vcmRlciBsaXN0ZWQgYmVsb3cuCiAgICAgICAgICAgICAgICBkZXBzID0gKGNhbGxiYWNrLmxlbmd0aCA9PT0gMSA/IFsncmVxdWlyZSddIDogWydyZXF1aXJlJywgJ2V4cG9ydHMnLCAnbW9kdWxlJ10pLmNvbmNhdChkZXBzKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy9JZiBpbiBJRSA2LTggYW5kIGhpdCBhbiBhbm9ueW1vdXMgZGVmaW5lKCkgY2FsbCwgZG8gdGhlIGludGVyYWN0aXZlCiAgICAgICAgLy93b3JrLgogICAgICAgIGlmICh1c2VJbnRlcmFjdGl2ZSkgewogICAgICAgICAgICBub2RlID0gY3VycmVudGx5QWRkaW5nU2NyaXB0IHx8IGdldEludGVyYWN0aXZlU2NyaXB0KCk7CiAgICAgICAgICAgIGlmIChub2RlKSB7CiAgICAgICAgICAgICAgICBpZiAoIW5hbWUpIHsKICAgICAgICAgICAgICAgICAgICBuYW1lID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmVxdWlyZW1vZHVsZScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29udGV4dCA9IGNvbnRleHRzW25vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXJlcXVpcmVjb250ZXh0JyldOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvL0Fsd2F5cyBzYXZlIG9mZiBldmFsdWF0aW5nIHRoZSBkZWYgY2FsbCB1bnRpbCB0aGUgc2NyaXB0IG9ubG9hZCBoYW5kbGVyLgogICAgICAgIC8vVGhpcyBhbGxvd3MgbXVsdGlwbGUgbW9kdWxlcyB0byBiZSBpbiBhIGZpbGUgd2l0aG91dCBwcmVtYXR1cmVseQogICAgICAgIC8vdHJhY2luZyBkZXBlbmRlbmNpZXMsIGFuZCBhbGxvd3MgZm9yIGFub255bW91cyBtb2R1bGUgc3VwcG9ydCwKICAgICAgICAvL3doZXJlIHRoZSBtb2R1bGUgbmFtZSBpcyBub3Qga25vd24gdW50aWwgdGhlIHNjcmlwdCBvbmxvYWQgZXZlbnQKICAgICAgICAvL29jY3Vycy4gSWYgbm8gY29udGV4dCwgdXNlIHRoZSBnbG9iYWwgcXVldWUsIGFuZCBnZXQgaXQgcHJvY2Vzc2VkCiAgICAgICAgLy9pbiB0aGUgb25zY3JpcHQgbG9hZCBjYWxsYmFjay4KICAgICAgICBpZiAoY29udGV4dCkgewogICAgICAgICAgICBjb250ZXh0LmRlZlF1ZXVlLnB1c2goW25hbWUsIGRlcHMsIGNhbGxiYWNrXSk7CiAgICAgICAgICAgIGNvbnRleHQuZGVmUXVldWVNYXBbbmFtZV0gPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGdsb2JhbERlZlF1ZXVlLnB1c2goW25hbWUsIGRlcHMsIGNhbGxiYWNrXSk7CiAgICAgICAgfQogICAgfTsKCiAgICBkZWZpbmUuYW1kID0gewogICAgICAgIGpRdWVyeTogdHJ1ZQogICAgfTsKCiAgICAvKioKICAgICAqIEV4ZWN1dGVzIHRoZSB0ZXh0LiBOb3JtYWxseSBqdXN0IHVzZXMgZXZhbCwgYnV0IGNhbiBiZSBtb2RpZmllZAogICAgICogdG8gdXNlIGEgYmV0dGVyLCBlbnZpcm9ubWVudC1zcGVjaWZpYyBjYWxsLiBPbmx5IHVzZWQgZm9yIHRyYW5zcGlsaW5nCiAgICAgKiBsb2FkZXIgcGx1Z2lucywgbm90IGZvciBwbGFpbiBKUyBtb2R1bGVzLgogICAgICogQHBhcmFtIHtTdHJpbmd9IHRleHQgdGhlIHRleHQgdG8gZXhlY3V0ZS9ldmFsdWF0ZS4KICAgICAqLwogICAgcmVxLmV4ZWMgPSBmdW5jdGlvbiAodGV4dCkgewogICAgICAgIC8qanNsaW50IGV2aWw6IHRydWUgKi8KICAgICAgICByZXR1cm4gZXZhbCh0ZXh0KTsKICAgIH07CgogICAgLy9TZXQgdXAgd2l0aCBjb25maWcgaW5mby4KICAgIHJlcShjZmcpOwp9KHRoaXMsICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBzZXRUaW1lb3V0KSkpOwoKLy8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLy8KLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLy8gICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAovLwovLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgohZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9LGM9e307IWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhKXtpZigibnVtYmVyIj09dHlwZW9mIGEpcmV0dXJuIGE7dmFyIGI9e307Zm9yKHZhciBjIGluIGEpYltjXT1hW2NdO3JldHVybiBifWZ1bmN0aW9uIGQoKXt0aGlzLl9kZWxheT0wLHRoaXMuX2VuZERlbGF5PTAsdGhpcy5fZmlsbD0ibm9uZSIsdGhpcy5faXRlcmF0aW9uU3RhcnQ9MCx0aGlzLl9pdGVyYXRpb25zPTEsdGhpcy5fZHVyYXRpb249MCx0aGlzLl9wbGF5YmFja1JhdGU9MSx0aGlzLl9kaXJlY3Rpb249Im5vcm1hbCIsdGhpcy5fZWFzaW5nPSJsaW5lYXIiLHRoaXMuX2Vhc2luZ0Z1bmN0aW9uPXh9ZnVuY3Rpb24gZSgpe3JldHVybiBhLmlzRGVwcmVjYXRlZCgiSW52YWxpZCB0aW1pbmcgaW5wdXRzIiwiMjAxNi0wMy0wMiIsIlR5cGVFcnJvciBleGNlcHRpb25zIHdpbGwgYmUgdGhyb3duIGluc3RlYWQuIiwhMCl9ZnVuY3Rpb24gZihiLGMsZSl7dmFyIGY9bmV3IGQ7cmV0dXJuIGMmJihmLmZpbGw9ImJvdGgiLGYuZHVyYXRpb249ImF1dG8iKSwibnVtYmVyIiE9dHlwZW9mIGJ8fGlzTmFOKGIpP3ZvaWQgMCE9PWImJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGIpLmZvckVhY2goZnVuY3Rpb24oYyl7aWYoImF1dG8iIT1iW2NdKXtpZigoIm51bWJlciI9PXR5cGVvZiBmW2NdfHwiZHVyYXRpb24iPT1jKSYmKCJudW1iZXIiIT10eXBlb2YgYltjXXx8aXNOYU4oYltjXSkpKXJldHVybjtpZigiZmlsbCI9PWMmJi0xPT12LmluZGV4T2YoYltjXSkpcmV0dXJuO2lmKCJkaXJlY3Rpb24iPT1jJiYtMT09dy5pbmRleE9mKGJbY10pKXJldHVybjtpZigicGxheWJhY2tSYXRlIj09YyYmMSE9PWJbY10mJmEuaXNEZXByZWNhdGVkKCJBbmltYXRpb25FZmZlY3RUaW1pbmcucGxheWJhY2tSYXRlIiwiMjAxNC0xMS0yOCIsIlVzZSBBbmltYXRpb24ucGxheWJhY2tSYXRlIGluc3RlYWQuIikpcmV0dXJuO2ZbY109YltjXX19KTpmLmR1cmF0aW9uPWIsZn1mdW5jdGlvbiBnKGEpe3JldHVybiJudW1iZXIiPT10eXBlb2YgYSYmKGE9aXNOYU4oYSk/e2R1cmF0aW9uOjB9OntkdXJhdGlvbjphfSksYX1mdW5jdGlvbiBoKGIsYyl7cmV0dXJuIGI9YS5udW1lcmljVGltaW5nVG9PYmplY3QoYiksZihiLGMpfWZ1bmN0aW9uIGkoYSxiLGMsZCl7cmV0dXJuIGE8MHx8YT4xfHxjPDB8fGM+MT94OmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGYoYSxiLGMpe3JldHVybiAzKmEqKDEtYykqKDEtYykqYyszKmIqKDEtYykqYypjK2MqYypjfWlmKGU8PTApe3ZhciBnPTA7cmV0dXJuIGE+MD9nPWIvYTohYiYmYz4wJiYoZz1kL2MpLGcqZX1pZihlPj0xKXt2YXIgaD0wO3JldHVybiBjPDE/aD0oZC0xKS8oYy0xKToxPT1jJiZhPDEmJihoPShiLTEpLyhhLTEpKSwxK2gqKGUtMSl9Zm9yKHZhciBpPTAsaj0xO2k8ajspe3ZhciBrPShpK2opLzIsbD1mKGEsYyxrKTtpZihNYXRoLmFicyhlLWwpPDFlLTUpcmV0dXJuIGYoYixkLGspO2w8ZT9pPWs6aj1rfXJldHVybiBmKGIsZCxrKX19ZnVuY3Rpb24gaihhLGIpe3JldHVybiBmdW5jdGlvbihjKXtpZihjPj0xKXJldHVybiAxO3ZhciBkPTEvYTtyZXR1cm4oYys9YipkKS1jJWR9fWZ1bmN0aW9uIGsoYSl7Q3x8KEM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUpLEMuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb249IiIsQy5hbmltYXRpb25UaW1pbmdGdW5jdGlvbj1hO3ZhciBiPUMuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb247aWYoIiI9PWImJmUoKSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgZWFzaW5nIik7cmV0dXJuIGJ9ZnVuY3Rpb24gbChhKXtpZigibGluZWFyIj09YSlyZXR1cm4geDt2YXIgYj1FLmV4ZWMoYSk7aWYoYilyZXR1cm4gaS5hcHBseSh0aGlzLGIuc2xpY2UoMSkubWFwKE51bWJlcikpO3ZhciBjPUYuZXhlYyhhKTtpZihjKXJldHVybiBqKE51bWJlcihjWzFdKSxBKTt2YXIgZD1HLmV4ZWMoYSk7cmV0dXJuIGQ/aihOdW1iZXIoZFsxXSkse3N0YXJ0OnksbWlkZGxlOnosZW5kOkF9W2RbMl1dKTpCW2FdfHx4fWZ1bmN0aW9uIG0oYSl7cmV0dXJuIE1hdGguYWJzKG4oYSkvYS5wbGF5YmFja1JhdGUpfWZ1bmN0aW9uIG4oYSl7cmV0dXJuIDA9PT1hLmR1cmF0aW9ufHwwPT09YS5pdGVyYXRpb25zPzA6YS5kdXJhdGlvbiphLml0ZXJhdGlvbnN9ZnVuY3Rpb24gbyhhLGIsYyl7aWYobnVsbD09YilyZXR1cm4gSDt2YXIgZD1jLmRlbGF5K2ErYy5lbmREZWxheTtyZXR1cm4gYjxNYXRoLm1pbihjLmRlbGF5LGQpP0k6Yj49TWF0aC5taW4oYy5kZWxheSthLGQpP0o6S31mdW5jdGlvbiBwKGEsYixjLGQsZSl7c3dpdGNoKGQpe2Nhc2UgSTpyZXR1cm4iYmFja3dhcmRzIj09Ynx8ImJvdGgiPT1iPzA6bnVsbDtjYXNlIEs6cmV0dXJuIGMtZTtjYXNlIEo6cmV0dXJuImZvcndhcmRzIj09Ynx8ImJvdGgiPT1iP2E6bnVsbDtjYXNlIEg6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHEoYSxiLGMsZCxlKXt2YXIgZj1lO3JldHVybiAwPT09YT9iIT09SSYmKGYrPWMpOmYrPWQvYSxmfWZ1bmN0aW9uIHIoYSxiLGMsZCxlLGYpe3ZhciBnPWE9PT0xLzA/YiUxOmElMTtyZXR1cm4gMCE9PWd8fGMhPT1KfHwwPT09ZHx8MD09PWUmJjAhPT1mfHwoZz0xKSxnfWZ1bmN0aW9uIHMoYSxiLGMsZCl7cmV0dXJuIGE9PT1KJiZiPT09MS8wPzEvMDoxPT09Yz9NYXRoLmZsb29yKGQpLTE6TWF0aC5mbG9vcihkKX1mdW5jdGlvbiB0KGEsYixjKXt2YXIgZD1hO2lmKCJub3JtYWwiIT09YSYmInJldmVyc2UiIT09YSl7dmFyIGU9YjsiYWx0ZXJuYXRlLXJldmVyc2UiPT09YSYmKGUrPTEpLGQ9Im5vcm1hbCIsZSE9PTEvMCYmZSUyIT0wJiYoZD0icmV2ZXJzZSIpfXJldHVybiJub3JtYWwiPT09ZD9jOjEtY31mdW5jdGlvbiB1KGEsYixjKXt2YXIgZD1vKGEsYixjKSxlPXAoYSxjLmZpbGwsYixkLGMuZGVsYXkpO2lmKG51bGw9PT1lKXJldHVybiBudWxsO3ZhciBmPXEoYy5kdXJhdGlvbixkLGMuaXRlcmF0aW9ucyxlLGMuaXRlcmF0aW9uU3RhcnQpLGc9cihmLGMuaXRlcmF0aW9uU3RhcnQsZCxjLml0ZXJhdGlvbnMsZSxjLmR1cmF0aW9uKSxoPXMoZCxjLml0ZXJhdGlvbnMsZyxmKSxpPXQoYy5kaXJlY3Rpb24saCxnKTtyZXR1cm4gYy5fZWFzaW5nRnVuY3Rpb24oaSl9dmFyIHY9ImJhY2t3YXJkc3xmb3J3YXJkc3xib3RofG5vbmUiLnNwbGl0KCJ8Iiksdz0icmV2ZXJzZXxhbHRlcm5hdGV8YWx0ZXJuYXRlLXJldmVyc2UiLnNwbGl0KCJ8IikseD1mdW5jdGlvbihhKXtyZXR1cm4gYX07ZC5wcm90b3R5cGU9e19zZXRNZW1iZXI6ZnVuY3Rpb24oYixjKXt0aGlzWyJfIitiXT1jLHRoaXMuX2VmZmVjdCYmKHRoaXMuX2VmZmVjdC5fdGltaW5nSW5wdXRbYl09Yyx0aGlzLl9lZmZlY3QuX3RpbWluZz1hLm5vcm1hbGl6ZVRpbWluZ0lucHV0KHRoaXMuX2VmZmVjdC5fdGltaW5nSW5wdXQpLHRoaXMuX2VmZmVjdC5hY3RpdmVEdXJhdGlvbj1hLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKHRoaXMuX2VmZmVjdC5fdGltaW5nKSx0aGlzLl9lZmZlY3QuX2FuaW1hdGlvbiYmdGhpcy5fZWZmZWN0Ll9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCkpfSxnZXQgcGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMuX3BsYXliYWNrUmF0ZX0sc2V0IGRlbGF5KGEpe3RoaXMuX3NldE1lbWJlcigiZGVsYXkiLGEpfSxnZXQgZGVsYXkoKXtyZXR1cm4gdGhpcy5fZGVsYXl9LHNldCBlbmREZWxheShhKXt0aGlzLl9zZXRNZW1iZXIoImVuZERlbGF5IixhKX0sZ2V0IGVuZERlbGF5KCl7cmV0dXJuIHRoaXMuX2VuZERlbGF5fSxzZXQgZmlsbChhKXt0aGlzLl9zZXRNZW1iZXIoImZpbGwiLGEpfSxnZXQgZmlsbCgpe3JldHVybiB0aGlzLl9maWxsfSxzZXQgaXRlcmF0aW9uU3RhcnQoYSl7aWYoKGlzTmFOKGEpfHxhPDApJiZlKCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaXRlcmF0aW9uU3RhcnQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIsIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9uU3RhcnQiLGEpfSxnZXQgaXRlcmF0aW9uU3RhcnQoKXtyZXR1cm4gdGhpcy5faXRlcmF0aW9uU3RhcnR9LHNldCBkdXJhdGlvbihhKXtpZigiYXV0byIhPWEmJihpc05hTihhKXx8YTwwKSYmZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoImR1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlIG9yIGF1dG8sIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiZHVyYXRpb24iLGEpfSxnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fZHVyYXRpb259LHNldCBkaXJlY3Rpb24oYSl7dGhpcy5fc2V0TWVtYmVyKCJkaXJlY3Rpb24iLGEpfSxnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpcmVjdGlvbn0sc2V0IGVhc2luZyhhKXt0aGlzLl9lYXNpbmdGdW5jdGlvbj1sKGsoYSkpLHRoaXMuX3NldE1lbWJlcigiZWFzaW5nIixhKX0sZ2V0IGVhc2luZygpe3JldHVybiB0aGlzLl9lYXNpbmd9LHNldCBpdGVyYXRpb25zKGEpe2lmKChpc05hTihhKXx8YTwwKSYmZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIml0ZXJhdGlvbnMgbXVzdCBiZSBub24tbmVnYXRpdmUsIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9ucyIsYSl9LGdldCBpdGVyYXRpb25zKCl7cmV0dXJuIHRoaXMuX2l0ZXJhdGlvbnN9fTt2YXIgeT0xLHo9LjUsQT0wLEI9e2Vhc2U6aSguMjUsLjEsLjI1LDEpLCJlYXNlLWluIjppKC40MiwwLDEsMSksImVhc2Utb3V0IjppKDAsMCwuNTgsMSksImVhc2UtaW4tb3V0IjppKC40MiwwLC41OCwxKSwic3RlcC1zdGFydCI6aigxLHkpLCJzdGVwLW1pZGRsZSI6aigxLHopLCJzdGVwLWVuZCI6aigxLEEpfSxDPW51bGwsRD0iXFxzKigtP1xcZCtcXC4/XFxkKnwtP1xcLlxcZCspXFxzKiIsRT1uZXcgUmVnRXhwKCJjdWJpYy1iZXppZXJcXCgiK0QrIiwiK0QrIiwiK0QrIiwiK0QrIlxcKSIpLEY9L3N0ZXBzXChccyooXGQrKVxzKlwpLyxHPS9zdGVwc1woXHMqKFxkKylccyosXHMqKHN0YXJ0fG1pZGRsZXxlbmQpXHMqXCkvLEg9MCxJPTEsSj0yLEs9MzthLmNsb25lVGltaW5nSW5wdXQ9YyxhLm1ha2VUaW1pbmc9ZixhLm51bWVyaWNUaW1pbmdUb09iamVjdD1nLGEubm9ybWFsaXplVGltaW5nSW5wdXQ9aCxhLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uPW0sYS5jYWxjdWxhdGVJdGVyYXRpb25Qcm9ncmVzcz11LGEuY2FsY3VsYXRlUGhhc2U9byxhLm5vcm1hbGl6ZUVhc2luZz1rLGEucGFyc2VFYXNpbmdGdW5jdGlvbj1sfShhKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSxiKXtyZXR1cm4gYSBpbiBrP2tbYV1bYl18fGI6Yn1mdW5jdGlvbiBkKGEpe3JldHVybiJkaXNwbGF5Ij09PWF8fDA9PT1hLmxhc3RJbmRleE9mKCJhbmltYXRpb24iLDApfHwwPT09YS5sYXN0SW5kZXhPZigidHJhbnNpdGlvbiIsMCl9ZnVuY3Rpb24gZShhLGIsZSl7aWYoIWQoYSkpe3ZhciBmPWhbYV07aWYoZil7aS5zdHlsZVthXT1iO2Zvcih2YXIgZyBpbiBmKXt2YXIgaj1mW2ddLGs9aS5zdHlsZVtqXTtlW2pdPWMoaixrKX19ZWxzZSBlW2FdPWMoYSxiKX19ZnVuY3Rpb24gZihhKXt2YXIgYj1bXTtmb3IodmFyIGMgaW4gYSlpZighKGMgaW5bImVhc2luZyIsIm9mZnNldCIsImNvbXBvc2l0ZSJdKSl7dmFyIGQ9YVtjXTtBcnJheS5pc0FycmF5KGQpfHwoZD1bZF0pO2Zvcih2YXIgZSxmPWQubGVuZ3RoLGc9MDtnPGY7ZysrKWU9e30sZS5vZmZzZXQ9Im9mZnNldCJpbiBhP2Eub2Zmc2V0OjE9PWY/MTpnLyhmLTEpLCJlYXNpbmciaW4gYSYmKGUuZWFzaW5nPWEuZWFzaW5nKSwiY29tcG9zaXRlImluIGEmJihlLmNvbXBvc2l0ZT1hLmNvbXBvc2l0ZSksZVtjXT1kW2ddLGIucHVzaChlKX1yZXR1cm4gYi5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEub2Zmc2V0LWIub2Zmc2V0fSksYn1mdW5jdGlvbiBnKGIpe2Z1bmN0aW9uIGMoKXt2YXIgYT1kLmxlbmd0aDtudWxsPT1kW2EtMV0ub2Zmc2V0JiYoZFthLTFdLm9mZnNldD0xKSxhPjEmJm51bGw9PWRbMF0ub2Zmc2V0JiYoZFswXS5vZmZzZXQ9MCk7Zm9yKHZhciBiPTAsYz1kWzBdLm9mZnNldCxlPTE7ZTxhO2UrKyl7dmFyIGY9ZFtlXS5vZmZzZXQ7aWYobnVsbCE9Zil7Zm9yKHZhciBnPTE7ZzxlLWI7ZysrKWRbYitnXS5vZmZzZXQ9YysoZi1jKSpnLyhlLWIpO2I9ZSxjPWZ9fX1pZihudWxsPT1iKXJldHVybltdO3dpbmRvdy5TeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmQXJyYXkucHJvdG90eXBlLmZyb20mJmJbU3ltYm9sLml0ZXJhdG9yXSYmKGI9QXJyYXkuZnJvbShiKSksQXJyYXkuaXNBcnJheShiKXx8KGI9ZihiKSk7Zm9yKHZhciBkPWIubWFwKGZ1bmN0aW9uKGIpe3ZhciBjPXt9O2Zvcih2YXIgZCBpbiBiKXt2YXIgZj1iW2RdO2lmKCJvZmZzZXQiPT1kKXtpZihudWxsIT1mKXtpZihmPU51bWJlcihmKSwhaXNGaW5pdGUoZikpdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5ZnJhbWUgb2Zmc2V0cyBtdXN0IGJlIG51bWJlcnMuIik7aWYoZjwwfHxmPjEpdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5ZnJhbWUgb2Zmc2V0cyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMS4iKX19ZWxzZSBpZigiY29tcG9zaXRlIj09ZCl7aWYoImFkZCI9PWZ8fCJhY2N1bXVsYXRlIj09Zil0aHJvd3t0eXBlOkRPTUV4Y2VwdGlvbi5OT1RfU1VQUE9SVEVEX0VSUixuYW1lOiJOb3RTdXBwb3J0ZWRFcnJvciIsbWVzc2FnZToiYWRkIGNvbXBvc2l0aW5nIGlzIG5vdCBzdXBwb3J0ZWQifTtpZigicmVwbGFjZSIhPWYpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBjb21wb3NpdGUgbW9kZSAiK2YrIi4iKX1lbHNlIGY9ImVhc2luZyI9PWQ/YS5ub3JtYWxpemVFYXNpbmcoZik6IiIrZjtlKGQsZixjKX1yZXR1cm4gdm9pZCAwPT1jLm9mZnNldCYmKGMub2Zmc2V0PW51bGwpLHZvaWQgMD09Yy5lYXNpbmcmJihjLmVhc2luZz0ibGluZWFyIiksY30pLGc9ITAsaD0tMS8wLGk9MDtpPGQubGVuZ3RoO2krKyl7dmFyIGo9ZFtpXS5vZmZzZXQ7aWYobnVsbCE9ail7aWYoajxoKXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lcyBhcmUgbm90IGxvb3NlbHkgc29ydGVkIGJ5IG9mZnNldC4gU29ydCBvciBzcGVjaWZ5IG9mZnNldHMuIik7aD1qfWVsc2UgZz0hMX1yZXR1cm4gZD1kLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5vZmZzZXQ+PTAmJmEub2Zmc2V0PD0xfSksZ3x8YygpLGR9dmFyIGg9e2JhY2tncm91bmQ6WyJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kU2l6ZSIsImJhY2tncm91bmRSZXBlYXQiLCJiYWNrZ3JvdW5kQXR0YWNobWVudCIsImJhY2tncm91bmRPcmlnaW4iLCJiYWNrZ3JvdW5kQ2xpcCIsImJhY2tncm91bmRDb2xvciJdLGJvcmRlcjpbImJvcmRlclRvcENvbG9yIiwiYm9yZGVyVG9wU3R5bGUiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlclJpZ2h0Q29sb3IiLCJib3JkZXJSaWdodFN0eWxlIiwiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbUNvbG9yIiwiYm9yZGVyQm90dG9tU3R5bGUiLCJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckxlZnRDb2xvciIsImJvcmRlckxlZnRTdHlsZSIsImJvcmRlckxlZnRXaWR0aCJdLGJvcmRlckJvdHRvbTpbImJvcmRlckJvdHRvbVdpZHRoIiwiYm9yZGVyQm90dG9tU3R5bGUiLCJib3JkZXJCb3R0b21Db2xvciJdLGJvcmRlckNvbG9yOlsiYm9yZGVyVG9wQ29sb3IiLCJib3JkZXJSaWdodENvbG9yIiwiYm9yZGVyQm90dG9tQ29sb3IiLCJib3JkZXJMZWZ0Q29sb3IiXSxib3JkZXJMZWZ0OlsiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyTGVmdENvbG9yIl0sYm9yZGVyUmFkaXVzOlsiYm9yZGVyVG9wTGVmdFJhZGl1cyIsImJvcmRlclRvcFJpZ2h0UmFkaXVzIiwiYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMiLCJib3JkZXJCb3R0b21MZWZ0UmFkaXVzIl0sYm9yZGVyUmlnaHQ6WyJib3JkZXJSaWdodFdpZHRoIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlclJpZ2h0Q29sb3IiXSxib3JkZXJUb3A6WyJib3JkZXJUb3BXaWR0aCIsImJvcmRlclRvcFN0eWxlIiwiYm9yZGVyVG9wQ29sb3IiXSxib3JkZXJXaWR0aDpbImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwiYm9yZGVyTGVmdFdpZHRoIl0sZmxleDpbImZsZXhHcm93IiwiZmxleFNocmluayIsImZsZXhCYXNpcyJdLGZvbnQ6WyJmb250RmFtaWx5IiwiZm9udFNpemUiLCJmb250U3R5bGUiLCJmb250VmFyaWFudCIsImZvbnRXZWlnaHQiLCJsaW5lSGVpZ2h0Il0sbWFyZ2luOlsibWFyZ2luVG9wIiwibWFyZ2luUmlnaHQiLCJtYXJnaW5Cb3R0b20iLCJtYXJnaW5MZWZ0Il0sb3V0bGluZTpbIm91dGxpbmVDb2xvciIsIm91dGxpbmVTdHlsZSIsIm91dGxpbmVXaWR0aCJdLHBhZGRpbmc6WyJwYWRkaW5nVG9wIiwicGFkZGluZ1JpZ2h0IiwicGFkZGluZ0JvdHRvbSIsInBhZGRpbmdMZWZ0Il19LGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZGl2Iiksaj17dGhpbjoiMXB4IixtZWRpdW06IjNweCIsdGhpY2s6IjVweCJ9LGs9e2JvcmRlckJvdHRvbVdpZHRoOmosYm9yZGVyTGVmdFdpZHRoOmosYm9yZGVyUmlnaHRXaWR0aDpqLGJvcmRlclRvcFdpZHRoOmosZm9udFNpemU6eyJ4eC1zbWFsbCI6IjYwJSIsIngtc21hbGwiOiI3NSUiLHNtYWxsOiI4OSUiLG1lZGl1bToiMTAwJSIsbGFyZ2U6IjEyMCUiLCJ4LWxhcmdlIjoiMTUwJSIsInh4LWxhcmdlIjoiMjAwJSJ9LGZvbnRXZWlnaHQ6e25vcm1hbDoiNDAwIixib2xkOiI3MDAifSxvdXRsaW5lV2lkdGg6aix0ZXh0U2hhZG93Ontub25lOiIwcHggMHB4IDBweCB0cmFuc3BhcmVudCJ9LGJveFNoYWRvdzp7bm9uZToiMHB4IDBweCAwcHggMHB4IHRyYW5zcGFyZW50In19O2EuY29udmVydFRvQXJyYXlGb3JtPWYsYS5ub3JtYWxpemVLZXlmcmFtZXM9Z30oYSksZnVuY3Rpb24oYSl7dmFyIGI9e307YS5pc0RlcHJlY2F0ZWQ9ZnVuY3Rpb24oYSxjLGQsZSl7dmFyIGY9ZT8iYXJlIjoiaXMiLGc9bmV3IERhdGUsaD1uZXcgRGF0ZShjKTtyZXR1cm4gaC5zZXRNb250aChoLmdldE1vbnRoKCkrMyksIShnPGgmJihhIGluIGJ8fGNvbnNvbGUud2FybigiV2ViIEFuaW1hdGlvbnM6ICIrYSsiICIrZisiIGRlcHJlY2F0ZWQgYW5kIHdpbGwgc3RvcCB3b3JraW5nIG9uICIraC50b0RhdGVTdHJpbmcoKSsiLiAiK2QpLGJbYV09ITAsMSkpfSxhLmRlcHJlY2F0ZWQ9ZnVuY3Rpb24oYixjLGQsZSl7dmFyIGY9ZT8iYXJlIjoiaXMiO2lmKGEuaXNEZXByZWNhdGVkKGIsYyxkLGUpKXRocm93IG5ldyBFcnJvcihiKyIgIitmKyIgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gIitkKX19KGEpLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFuaW1hdGUpe3ZhciBjPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hbmltYXRlKFtdLDApLGQ9ITA7aWYoYyYmKGQ9ITEsInBsYXl8Y3VycmVudFRpbWV8cGF1c2V8cmV2ZXJzZXxwbGF5YmFja1JhdGV8Y2FuY2VsfGZpbmlzaHxzdGFydFRpbWV8cGxheVN0YXRlIi5zcGxpdCgifCIpLmZvckVhY2goZnVuY3Rpb24oYSl7dm9pZCAwPT09Y1thXSYmKGQ9ITApfSkpLCFkKXJldHVybn0hZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7Zm9yKHZhciBiPXt9LGM9MDtjPGEubGVuZ3RoO2MrKylmb3IodmFyIGQgaW4gYVtjXSlpZigib2Zmc2V0IiE9ZCYmImVhc2luZyIhPWQmJiJjb21wb3NpdGUiIT1kKXt2YXIgZT17b2Zmc2V0OmFbY10ub2Zmc2V0LGVhc2luZzphW2NdLmVhc2luZyx2YWx1ZTphW2NdW2RdfTtiW2RdPWJbZF18fFtdLGJbZF0ucHVzaChlKX1mb3IodmFyIGYgaW4gYil7dmFyIGc9YltmXTtpZigwIT1nWzBdLm9mZnNldHx8MSE9Z1tnLmxlbmd0aC0xXS5vZmZzZXQpdGhyb3d7dHlwZTpET01FeGNlcHRpb24uTk9UX1NVUFBPUlRFRF9FUlIsbmFtZToiTm90U3VwcG9ydGVkRXJyb3IiLG1lc3NhZ2U6IlBhcnRpYWwga2V5ZnJhbWVzIGFyZSBub3Qgc3VwcG9ydGVkIn19cmV0dXJuIGJ9ZnVuY3Rpb24gZShjKXt2YXIgZD1bXTtmb3IodmFyIGUgaW4gYylmb3IodmFyIGY9Y1tlXSxnPTA7ZzxmLmxlbmd0aC0xO2crKyl7dmFyIGg9ZyxpPWcrMSxqPWZbaF0ub2Zmc2V0LGs9ZltpXS5vZmZzZXQsbD1qLG09azswPT1nJiYobD0tMS8wLDA9PWsmJihpPWgpKSxnPT1mLmxlbmd0aC0yJiYobT0xLzAsMT09aiYmKGg9aSkpLGQucHVzaCh7YXBwbHlGcm9tOmwsYXBwbHlUbzptLHN0YXJ0T2Zmc2V0OmZbaF0ub2Zmc2V0LGVuZE9mZnNldDpmW2ldLm9mZnNldCxlYXNpbmdGdW5jdGlvbjphLnBhcnNlRWFzaW5nRnVuY3Rpb24oZltoXS5lYXNpbmcpLHByb3BlcnR5OmUsaW50ZXJwb2xhdGlvbjpiLnByb3BlcnR5SW50ZXJwb2xhdGlvbihlLGZbaF0udmFsdWUsZltpXS52YWx1ZSl9KX1yZXR1cm4gZC5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuc3RhcnRPZmZzZXQtYi5zdGFydE9mZnNldH0pLGR9Yi5jb252ZXJ0RWZmZWN0SW5wdXQ9ZnVuY3Rpb24oYyl7dmFyIGY9YS5ub3JtYWxpemVLZXlmcmFtZXMoYyksZz1kKGYpLGg9ZShnKTtyZXR1cm4gZnVuY3Rpb24oYSxjKXtpZihudWxsIT1jKWguZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBjPj1hLmFwcGx5RnJvbSYmYzxhLmFwcGx5VG99KS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPWMtZC5zdGFydE9mZnNldCxmPWQuZW5kT2Zmc2V0LWQuc3RhcnRPZmZzZXQsZz0wPT1mPzA6ZC5lYXNpbmdGdW5jdGlvbihlL2YpO2IuYXBwbHkoYSxkLnByb3BlcnR5LGQuaW50ZXJwb2xhdGlvbihnKSl9KTtlbHNlIGZvcih2YXIgZCBpbiBnKSJvZmZzZXQiIT1kJiYiZWFzaW5nIiE9ZCYmImNvbXBvc2l0ZSIhPWQmJmIuY2xlYXIoYSxkKX19fShhLGIpLGZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEpe3JldHVybiBhLnJlcGxhY2UoLy0oLikvZyxmdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9KX1mdW5jdGlvbiBlKGEsYixjKXtoW2NdPWhbY118fFtdLGhbY10ucHVzaChbYSxiXSl9ZnVuY3Rpb24gZihhLGIsYyl7Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspe2UoYSxiLGQoY1tmXSkpfX1mdW5jdGlvbiBnKGMsZSxmKXt2YXIgZz1jOy8tLy50ZXN0KGMpJiYhYS5pc0RlcHJlY2F0ZWQoIkh5cGhlbmF0ZWQgcHJvcGVydHkgbmFtZXMiLCIyMDE2LTAzLTIyIiwiVXNlIGNhbWVsQ2FzZSBpbnN0ZWFkLiIsITApJiYoZz1kKGMpKSwiaW5pdGlhbCIhPWUmJiJpbml0aWFsIiE9Znx8KCJpbml0aWFsIj09ZSYmKGU9aVtnXSksImluaXRpYWwiPT1mJiYoZj1pW2ddKSk7Zm9yKHZhciBqPWU9PWY/W106aFtnXSxrPTA7aiYmazxqLmxlbmd0aDtrKyspe3ZhciBsPWpba11bMF0oZSksbT1qW2tdWzBdKGYpO2lmKHZvaWQgMCE9PWwmJnZvaWQgMCE9PW0pe3ZhciBuPWpba11bMV0obCxtKTtpZihuKXt2YXIgbz1iLkludGVycG9sYXRpb24uYXBwbHkobnVsbCxuKTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIDA9PWE/ZToxPT1hP2Y6byhhKX19fX1yZXR1cm4gYi5JbnRlcnBvbGF0aW9uKCExLCEwLGZ1bmN0aW9uKGEpe3JldHVybiBhP2Y6ZX0pfXZhciBoPXt9O2IuYWRkUHJvcGVydGllc0hhbmRsZXI9Zjt2YXIgaT17YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZFBvc2l0aW9uOiIwJSAwJSIsYm9yZGVyQm90dG9tQ29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyQm90dG9tTGVmdFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21SaWdodFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21XaWR0aDoiM3B4Iixib3JkZXJMZWZ0Q29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyTGVmdFdpZHRoOiIzcHgiLGJvcmRlclJpZ2h0Q29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyUmlnaHRXaWR0aDoiM3B4Iixib3JkZXJTcGFjaW5nOiIycHgiLGJvcmRlclRvcENvbG9yOiJjdXJyZW50Q29sb3IiLGJvcmRlclRvcExlZnRSYWRpdXM6IjBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjBweCIsYm9yZGVyVG9wV2lkdGg6IjNweCIsYm90dG9tOiJhdXRvIixjbGlwOiJyZWN0KDBweCwgMHB4LCAwcHgsIDBweCkiLGNvbG9yOiJibGFjayIsZm9udFNpemU6IjEwMCUiLGZvbnRXZWlnaHQ6IjQwMCIsaGVpZ2h0OiJhdXRvIixsZWZ0OiJhdXRvIixsZXR0ZXJTcGFjaW5nOiJub3JtYWwiLGxpbmVIZWlnaHQ6IjEyMCUiLG1hcmdpbkJvdHRvbToiMHB4IixtYXJnaW5MZWZ0OiIwcHgiLG1hcmdpblJpZ2h0OiIwcHgiLG1hcmdpblRvcDoiMHB4IixtYXhIZWlnaHQ6Im5vbmUiLG1heFdpZHRoOiJub25lIixtaW5IZWlnaHQ6IjBweCIsbWluV2lkdGg6IjBweCIsb3BhY2l0eToiMS4wIixvdXRsaW5lQ29sb3I6ImludmVydCIsb3V0bGluZU9mZnNldDoiMHB4IixvdXRsaW5lV2lkdGg6IjNweCIscGFkZGluZ0JvdHRvbToiMHB4IixwYWRkaW5nTGVmdDoiMHB4IixwYWRkaW5nUmlnaHQ6IjBweCIscGFkZGluZ1RvcDoiMHB4IixyaWdodDoiYXV0byIsc3Ryb2tlRGFzaGFycmF5OiJub25lIixzdHJva2VEYXNob2Zmc2V0OiIwcHgiLHRleHRJbmRlbnQ6IjBweCIsdGV4dFNoYWRvdzoiMHB4IDBweCAwcHggdHJhbnNwYXJlbnQiLHRvcDoiYXV0byIsdHJhbnNmb3JtOiIiLHZlcnRpY2FsQWxpZ246IjBweCIsdmlzaWJpbGl0eToidmlzaWJsZSIsd2lkdGg6ImF1dG8iLHdvcmRTcGFjaW5nOiJub3JtYWwiLHpJbmRleDoiYXV0byJ9O2IucHJvcGVydHlJbnRlcnBvbGF0aW9uPWd9KGEsYiksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYil7dmFyIGM9YS5jYWxjdWxhdGVBY3RpdmVEdXJhdGlvbihiKSxkPWZ1bmN0aW9uKGQpe3JldHVybiBhLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGMsZCxiKX07cmV0dXJuIGQuX3RvdGFsRHVyYXRpb249Yi5kZWxheStjK2IuZW5kRGVsYXksZH1iLktleWZyYW1lRWZmZWN0PWZ1bmN0aW9uKGMsZSxmLGcpe3ZhciBoLGk9ZChhLm5vcm1hbGl6ZVRpbWluZ0lucHV0KGYpKSxqPWIuY29udmVydEVmZmVjdElucHV0KGUpLGs9ZnVuY3Rpb24oKXtqKGMsaCl9O3JldHVybiBrLl91cGRhdGU9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPT0oaD1pKGEpKX0say5fY2xlYXI9ZnVuY3Rpb24oKXtqKGMsbnVsbCl9LGsuX2hhc1NhbWVUYXJnZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGM9PT1hfSxrLl90YXJnZXQ9YyxrLl90b3RhbER1cmF0aW9uPWkuX3RvdGFsRHVyYXRpb24say5faWQ9ZyxrfX0oYSxiKSxmdW5jdGlvbihhLGIpe2EuYXBwbHk9ZnVuY3Rpb24oYixjLGQpe2Iuc3R5bGVbYS5wcm9wZXJ0eU5hbWUoYyldPWR9LGEuY2xlYXI9ZnVuY3Rpb24oYixjKXtiLnN0eWxlW2EucHJvcGVydHlOYW1lKGMpXT0iIn19KGIpLGZ1bmN0aW9uKGEpe3dpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGIsYyl7dmFyIGQ9IiI7cmV0dXJuIGMmJmMuaWQmJihkPWMuaWQpLGEudGltZWxpbmUuX3BsYXkoYS5LZXlmcmFtZUVmZmVjdCh0aGlzLGIsYyxkKSl9fShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSxiLGQpe2lmKCJudW1iZXIiPT10eXBlb2YgYSYmIm51bWJlciI9PXR5cGVvZiBiKXJldHVybiBhKigxLWQpK2IqZDtpZigiYm9vbGVhbiI9PXR5cGVvZiBhJiYiYm9vbGVhbiI9PXR5cGVvZiBiKXJldHVybiBkPC41P2E6YjtpZihhLmxlbmd0aD09Yi5sZW5ndGgpe2Zvcih2YXIgZT1bXSxmPTA7ZjxhLmxlbmd0aDtmKyspZS5wdXNoKGMoYVtmXSxiW2ZdLGQpKTtyZXR1cm4gZX10aHJvdyJNaXNtYXRjaGVkIGludGVycG9sYXRpb24gYXJndW1lbnRzICIrYSsiOiIrYn1hLkludGVycG9sYXRpb249ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZChjKGEsYixlKSl9fX0oYiksZnVuY3Rpb24oYSxiLGMpe2Euc2VxdWVuY2VOdW1iZXI9MDt2YXIgZD1mdW5jdGlvbihhLGIsYyl7dGhpcy50YXJnZXQ9YSx0aGlzLmN1cnJlbnRUaW1lPWIsdGhpcy50aW1lbGluZVRpbWU9Yyx0aGlzLnR5cGU9ImZpbmlzaCIsdGhpcy5idWJibGVzPSExLHRoaXMuY2FuY2VsYWJsZT0hMSx0aGlzLmN1cnJlbnRUYXJnZXQ9YSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsdGhpcy5ldmVudFBoYXNlPUV2ZW50LkFUX1RBUkdFVCx0aGlzLnRpbWVTdGFtcD1EYXRlLm5vdygpfTtiLkFuaW1hdGlvbj1mdW5jdGlvbihiKXt0aGlzLmlkPSIiLGImJmIuX2lkJiYodGhpcy5pZD1iLl9pZCksdGhpcy5fc2VxdWVuY2VOdW1iZXI9YS5zZXF1ZW5jZU51bWJlcisrLHRoaXMuX2N1cnJlbnRUaW1lPTAsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy5fcGF1c2VkPSExLHRoaXMuX3BsYXliYWNrUmF0ZT0xLHRoaXMuX2luVGltZWxpbmU9ITAsdGhpcy5fZmluaXNoZWRGbGFnPSEwLHRoaXMub25maW5pc2g9bnVsbCx0aGlzLl9maW5pc2hIYW5kbGVycz1bXSx0aGlzLl9lZmZlY3Q9Yix0aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSgwKSx0aGlzLl9pZGxlPSEwLHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMX0sYi5BbmltYXRpb24ucHJvdG90eXBlPXtfZW5zdXJlQWxpdmU6ZnVuY3Rpb24oKXt0aGlzLnBsYXliYWNrUmF0ZTwwJiYwPT09dGhpcy5jdXJyZW50VGltZT90aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSgtMSk6dGhpcy5faW5FZmZlY3Q9dGhpcy5fZWZmZWN0Ll91cGRhdGUodGhpcy5jdXJyZW50VGltZSksdGhpcy5faW5UaW1lbGluZXx8IXRoaXMuX2luRWZmZWN0JiZ0aGlzLl9maW5pc2hlZEZsYWd8fCh0aGlzLl9pblRpbWVsaW5lPSEwLGIudGltZWxpbmUuX2FuaW1hdGlvbnMucHVzaCh0aGlzKSl9LF90aWNrQ3VycmVudFRpbWU6ZnVuY3Rpb24oYSxiKXthIT10aGlzLl9jdXJyZW50VGltZSYmKHRoaXMuX2N1cnJlbnRUaW1lPWEsdGhpcy5faXNGaW5pc2hlZCYmIWImJih0aGlzLl9jdXJyZW50VGltZT10aGlzLl9wbGF5YmFja1JhdGU+MD90aGlzLl90b3RhbER1cmF0aW9uOjApLHRoaXMuX2Vuc3VyZUFsaXZlKCkpfSxnZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy5faWRsZXx8dGhpcy5fY3VycmVudFRpbWVQZW5kaW5nP251bGw6dGhpcy5fY3VycmVudFRpbWV9LHNldCBjdXJyZW50VGltZShhKXthPSthLGlzTmFOKGEpfHwoYi5yZXN0YXJ0KCksdGhpcy5fcGF1c2VkfHxudWxsPT10aGlzLl9zdGFydFRpbWV8fCh0aGlzLl9zdGFydFRpbWU9dGhpcy5fdGltZWxpbmUuY3VycmVudFRpbWUtYS90aGlzLl9wbGF5YmFja1JhdGUpLHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMSx0aGlzLl9jdXJyZW50VGltZSE9YSYmKHRoaXMuX2lkbGUmJih0aGlzLl9pZGxlPSExLHRoaXMuX3BhdXNlZD0hMCksdGhpcy5fdGlja0N1cnJlbnRUaW1lKGEsITApLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKSl9LGdldCBzdGFydFRpbWUoKXtyZXR1cm4gdGhpcy5fc3RhcnRUaW1lfSxzZXQgc3RhcnRUaW1lKGEpe2E9K2EsaXNOYU4oYSl8fHRoaXMuX3BhdXNlZHx8dGhpcy5faWRsZXx8KHRoaXMuX3N0YXJ0VGltZT1hLHRoaXMuX3RpY2tDdXJyZW50VGltZSgodGhpcy5fdGltZWxpbmUuY3VycmVudFRpbWUtdGhpcy5fc3RhcnRUaW1lKSp0aGlzLnBsYXliYWNrUmF0ZSksYi5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcykpfSxnZXQgcGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMuX3BsYXliYWNrUmF0ZX0sc2V0IHBsYXliYWNrUmF0ZShhKXtpZihhIT10aGlzLl9wbGF5YmFja1JhdGUpe3ZhciBjPXRoaXMuY3VycmVudFRpbWU7dGhpcy5fcGxheWJhY2tSYXRlPWEsdGhpcy5fc3RhcnRUaW1lPW51bGwsInBhdXNlZCIhPXRoaXMucGxheVN0YXRlJiYiaWRsZSIhPXRoaXMucGxheVN0YXRlJiYodGhpcy5fZmluaXNoZWRGbGFnPSExLHRoaXMuX2lkbGU9ITEsdGhpcy5fZW5zdXJlQWxpdmUoKSxiLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSksbnVsbCE9YyYmKHRoaXMuY3VycmVudFRpbWU9Yyl9fSxnZXQgX2lzRmluaXNoZWQoKXtyZXR1cm4hdGhpcy5faWRsZSYmKHRoaXMuX3BsYXliYWNrUmF0ZT4wJiZ0aGlzLl9jdXJyZW50VGltZT49dGhpcy5fdG90YWxEdXJhdGlvbnx8dGhpcy5fcGxheWJhY2tSYXRlPDAmJnRoaXMuX2N1cnJlbnRUaW1lPD0wKX0sZ2V0IF90b3RhbER1cmF0aW9uKCl7cmV0dXJuIHRoaXMuX2VmZmVjdC5fdG90YWxEdXJhdGlvbn0sZ2V0IHBsYXlTdGF0ZSgpe3JldHVybiB0aGlzLl9pZGxlPyJpZGxlIjpudWxsPT10aGlzLl9zdGFydFRpbWUmJiF0aGlzLl9wYXVzZWQmJjAhPXRoaXMucGxheWJhY2tSYXRlfHx0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc/InBlbmRpbmciOnRoaXMuX3BhdXNlZD8icGF1c2VkIjp0aGlzLl9pc0ZpbmlzaGVkPyJmaW5pc2hlZCI6InJ1bm5pbmcifSxfcmV3aW5kOmZ1bmN0aW9uKCl7aWYodGhpcy5fcGxheWJhY2tSYXRlPj0wKXRoaXMuX2N1cnJlbnRUaW1lPTA7ZWxzZXtpZighKHRoaXMuX3RvdGFsRHVyYXRpb248MS8wKSl0aHJvdyBuZXcgRE9NRXhjZXB0aW9uKCJVbmFibGUgdG8gcmV3aW5kIG5lZ2F0aXZlIHBsYXliYWNrIHJhdGUgYW5pbWF0aW9uIHdpdGggaW5maW5pdGUgZHVyYXRpb24iLCJJbnZhbGlkU3RhdGVFcnJvciIpO3RoaXMuX2N1cnJlbnRUaW1lPXRoaXMuX3RvdGFsRHVyYXRpb259fSxwbGF5OmZ1bmN0aW9uKCl7dGhpcy5fcGF1c2VkPSExLCh0aGlzLl9pc0ZpbmlzaGVkfHx0aGlzLl9pZGxlKSYmKHRoaXMuX3Jld2luZCgpLHRoaXMuX3N0YXJ0VGltZT1udWxsKSx0aGlzLl9maW5pc2hlZEZsYWc9ITEsdGhpcy5faWRsZT0hMSx0aGlzLl9lbnN1cmVBbGl2ZSgpLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpfSxwYXVzZTpmdW5jdGlvbigpe3RoaXMuX2lzRmluaXNoZWR8fHRoaXMuX3BhdXNlZHx8dGhpcy5faWRsZT90aGlzLl9pZGxlJiYodGhpcy5fcmV3aW5kKCksdGhpcy5faWRsZT0hMSk6dGhpcy5fY3VycmVudFRpbWVQZW5kaW5nPSEwLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuX3BhdXNlZD0hMH0sZmluaXNoOmZ1bmN0aW9uKCl7dGhpcy5faWRsZXx8KHRoaXMuY3VycmVudFRpbWU9dGhpcy5fcGxheWJhY2tSYXRlPjA/dGhpcy5fdG90YWxEdXJhdGlvbjowLHRoaXMuX3N0YXJ0VGltZT10aGlzLl90b3RhbER1cmF0aW9uLXRoaXMuY3VycmVudFRpbWUsdGhpcy5fY3VycmVudFRpbWVQZW5kaW5nPSExLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKX0sY2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5faW5FZmZlY3QmJih0aGlzLl9pbkVmZmVjdD0hMSx0aGlzLl9pZGxlPSEwLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9maW5pc2hlZEZsYWc9ITAsdGhpcy5fY3VycmVudFRpbWU9MCx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLl9lZmZlY3QuX3VwZGF0ZShudWxsKSxiLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSl9LHJldmVyc2U6ZnVuY3Rpb24oKXt0aGlzLnBsYXliYWNrUmF0ZSo9LTEsdGhpcy5wbGF5KCl9LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXsiZnVuY3Rpb24iPT10eXBlb2YgYiYmImZpbmlzaCI9PWEmJnRoaXMuX2ZpbmlzaEhhbmRsZXJzLnB1c2goYil9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXtpZigiZmluaXNoIj09YSl7dmFyIGM9dGhpcy5fZmluaXNoSGFuZGxlcnMuaW5kZXhPZihiKTtjPj0wJiZ0aGlzLl9maW5pc2hIYW5kbGVycy5zcGxpY2UoYywxKX19LF9maXJlRXZlbnRzOmZ1bmN0aW9uKGEpe2lmKHRoaXMuX2lzRmluaXNoZWQpe2lmKCF0aGlzLl9maW5pc2hlZEZsYWcpe3ZhciBiPW5ldyBkKHRoaXMsdGhpcy5fY3VycmVudFRpbWUsYSksYz10aGlzLl9maW5pc2hIYW5kbGVycy5jb25jYXQodGhpcy5vbmZpbmlzaD9bdGhpcy5vbmZpbmlzaF06W10pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLmZvckVhY2goZnVuY3Rpb24oYSl7YS5jYWxsKGIudGFyZ2V0LGIpfSl9LDApLHRoaXMuX2ZpbmlzaGVkRmxhZz0hMH19ZWxzZSB0aGlzLl9maW5pc2hlZEZsYWc9ITF9LF90aWNrOmZ1bmN0aW9uKGEsYil7dGhpcy5faWRsZXx8dGhpcy5fcGF1c2VkfHwobnVsbD09dGhpcy5fc3RhcnRUaW1lP2ImJih0aGlzLnN0YXJ0VGltZT1hLXRoaXMuX2N1cnJlbnRUaW1lL3RoaXMucGxheWJhY2tSYXRlKTp0aGlzLl9pc0ZpbmlzaGVkfHx0aGlzLl90aWNrQ3VycmVudFRpbWUoKGEtdGhpcy5fc3RhcnRUaW1lKSp0aGlzLnBsYXliYWNrUmF0ZSkpLGImJih0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc9ITEsdGhpcy5fZmlyZUV2ZW50cyhhKSl9LGdldCBfbmVlZHNUaWNrKCl7cmV0dXJuIHRoaXMucGxheVN0YXRlIGlue3BlbmRpbmc6MSxydW5uaW5nOjF9fHwhdGhpcy5fZmluaXNoZWRGbGFnfSxfdGFyZ2V0QW5pbWF0aW9uczpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX2VmZmVjdC5fdGFyZ2V0O3JldHVybiBhLl9hY3RpdmVBbmltYXRpb25zfHwoYS5fYWN0aXZlQW5pbWF0aW9ucz1bXSksYS5fYWN0aXZlQW5pbWF0aW9uc30sX21hcmtUYXJnZXQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl90YXJnZXRBbmltYXRpb25zKCk7LTE9PT1hLmluZGV4T2YodGhpcykmJmEucHVzaCh0aGlzKX0sX3VubWFya1RhcmdldDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX3RhcmdldEFuaW1hdGlvbnMoKSxiPWEuaW5kZXhPZih0aGlzKTstMSE9PWImJmEuc3BsaWNlKGIsMSl9fX0oYSxiKSxmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChhKXt2YXIgYj1qO2o9W10sYTxxLmN1cnJlbnRUaW1lJiYoYT1xLmN1cnJlbnRUaW1lKSxxLl9hbmltYXRpb25zLnNvcnQoZSkscS5fYW5pbWF0aW9ucz1oKGEsITAscS5fYW5pbWF0aW9ucylbMF0sYi5mb3JFYWNoKGZ1bmN0aW9uKGIpe2JbMV0oYSl9KSxnKCksbD12b2lkIDB9ZnVuY3Rpb24gZShhLGIpe3JldHVybiBhLl9zZXF1ZW5jZU51bWJlci1iLl9zZXF1ZW5jZU51bWJlcn1mdW5jdGlvbiBmKCl7dGhpcy5fYW5pbWF0aW9ucz1bXSx0aGlzLmN1cnJlbnRUaW1lPXdpbmRvdy5wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOjB9ZnVuY3Rpb24gZygpe28uZm9yRWFjaChmdW5jdGlvbihhKXthKCl9KSxvLmxlbmd0aD0wfWZ1bmN0aW9uIGgoYSxjLGQpe3A9ITAsbj0hMSxiLnRpbWVsaW5lLmN1cnJlbnRUaW1lPWEsbT0hMTt2YXIgZT1bXSxmPVtdLGc9W10saD1bXTtyZXR1cm4gZC5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IuX3RpY2soYSxjKSxiLl9pbkVmZmVjdD8oZi5wdXNoKGIuX2VmZmVjdCksYi5fbWFya1RhcmdldCgpKTooZS5wdXNoKGIuX2VmZmVjdCksYi5fdW5tYXJrVGFyZ2V0KCkpLGIuX25lZWRzVGljayYmKG09ITApO3ZhciBkPWIuX2luRWZmZWN0fHxiLl9uZWVkc1RpY2s7Yi5faW5UaW1lbGluZT1kLGQ/Zy5wdXNoKGIpOmgucHVzaChiKX0pLG8ucHVzaC5hcHBseShvLGUpLG8ucHVzaC5hcHBseShvLGYpLG0mJnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLHA9ITEsW2csaF19dmFyIGk9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSxqPVtdLGs9MDt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lPWZ1bmN0aW9uKGEpe3ZhciBiPWsrKztyZXR1cm4gMD09ai5sZW5ndGgmJmkoZCksai5wdXNoKFtiLGFdKSxifSx3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oYSl7ai5mb3JFYWNoKGZ1bmN0aW9uKGIpe2JbMF09PWEmJihiWzFdPWZ1bmN0aW9uKCl7fSl9KX0sZi5wcm90b3R5cGU9e19wbGF5OmZ1bmN0aW9uKGMpe2MuX3RpbWluZz1hLm5vcm1hbGl6ZVRpbWluZ0lucHV0KGMudGltaW5nKTt2YXIgZD1uZXcgYi5BbmltYXRpb24oYyk7cmV0dXJuIGQuX2lkbGU9ITEsZC5fdGltZWxpbmU9dGhpcyx0aGlzLl9hbmltYXRpb25zLnB1c2goZCksYi5yZXN0YXJ0KCksYi5hcHBseURpcnRpZWRBbmltYXRpb24oZCksZH19O3ZhciBsPXZvaWQgMCxtPSExLG49ITE7Yi5yZXN0YXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG18fChtPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLG49ITApLG59LGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uPWZ1bmN0aW9uKGEpe2lmKCFwKXthLl9tYXJrVGFyZ2V0KCk7dmFyIGM9YS5fdGFyZ2V0QW5pbWF0aW9ucygpO2Muc29ydChlKSxoKGIudGltZWxpbmUuY3VycmVudFRpbWUsITEsYy5zbGljZSgpKVsxXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPXEuX2FuaW1hdGlvbnMuaW5kZXhPZihhKTstMSE9PWImJnEuX2FuaW1hdGlvbnMuc3BsaWNlKGIsMSl9KSxnKCl9fTt2YXIgbz1bXSxwPSExLHE9bmV3IGY7Yi50aW1lbGluZT1xfShhLGIpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSxiKXt2YXIgYz1hLmV4ZWMoYik7aWYoYylyZXR1cm4gYz1hLmlnbm9yZUNhc2U/Y1swXS50b0xvd2VyQ2FzZSgpOmNbMF0sW2MsYi5zdWJzdHIoYy5sZW5ndGgpXX1mdW5jdGlvbiBjKGEsYil7Yj1iLnJlcGxhY2UoL15ccyovLCIiKTt2YXIgYz1hKGIpO2lmKGMpcmV0dXJuW2NbMF0sY1sxXS5yZXBsYWNlKC9eXHMqLywiIildfWZ1bmN0aW9uIGQoYSxkLGUpe2E9Yy5iaW5kKG51bGwsYSk7Zm9yKHZhciBmPVtdOzspe3ZhciBnPWEoZSk7aWYoIWcpcmV0dXJuW2YsZV07aWYoZi5wdXNoKGdbMF0pLGU9Z1sxXSwhKGc9YihkLGUpKXx8IiI9PWdbMV0pcmV0dXJuW2YsZV07ZT1nWzFdfX1mdW5jdGlvbiBlKGEsYil7Zm9yKHZhciBjPTAsZD0wO2Q8Yi5sZW5ndGgmJighL1xzfCwvLnRlc3QoYltkXSl8fDAhPWMpO2QrKylpZigiKCI9PWJbZF0pYysrO2Vsc2UgaWYoIikiPT1iW2RdJiYoYy0tLDA9PWMmJmQrKyxjPD0wKSlicmVhazt2YXIgZT1hKGIuc3Vic3RyKDAsZCkpO3JldHVybiB2b2lkIDA9PWU/dm9pZCAwOltlLGIuc3Vic3RyKGQpXX1mdW5jdGlvbiBmKGEsYil7Zm9yKHZhciBjPWEsZD1iO2MmJmQ7KWM+ZD9jJT1kOmQlPWM7cmV0dXJuIGM9YSpiLyhjK2QpfWZ1bmN0aW9uIGcoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWEoYik7cmV0dXJuIGMmJihjWzBdPXZvaWQgMCksY319ZnVuY3Rpb24gaChhLGIpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gYShjKXx8W2IsY119fWZ1bmN0aW9uIGkoYixjKXtmb3IodmFyIGQ9W10sZT0wO2U8Yi5sZW5ndGg7ZSsrKXt2YXIgZj1hLmNvbnN1bWVUcmltbWVkKGJbZV0sYyk7aWYoIWZ8fCIiPT1mWzBdKXJldHVybjt2b2lkIDAhPT1mWzBdJiZkLnB1c2goZlswXSksYz1mWzFdfWlmKCIiPT1jKXJldHVybiBkfWZ1bmN0aW9uIGooYSxiLGMsZCxlKXtmb3IodmFyIGc9W10saD1bXSxpPVtdLGo9ZihkLmxlbmd0aCxlLmxlbmd0aCksaz0wO2s8ajtrKyspe3ZhciBsPWIoZFtrJWQubGVuZ3RoXSxlW2slZS5sZW5ndGhdKTtpZighbClyZXR1cm47Zy5wdXNoKGxbMF0pLGgucHVzaChsWzFdKSxpLnB1c2gobFsyXSl9cmV0dXJuW2csaCxmdW5jdGlvbihiKXt2YXIgZD1iLm1hcChmdW5jdGlvbihhLGIpe3JldHVybiBpW2JdKGEpfSkuam9pbihjKTtyZXR1cm4gYT9hKGQpOmR9XX1mdW5jdGlvbiBrKGEsYixjKXtmb3IodmFyIGQ9W10sZT1bXSxmPVtdLGc9MCxoPTA7aDxjLmxlbmd0aDtoKyspaWYoImZ1bmN0aW9uIj09dHlwZW9mIGNbaF0pe3ZhciBpPWNbaF0oYVtnXSxiW2crK10pO2QucHVzaChpWzBdKSxlLnB1c2goaVsxXSksZi5wdXNoKGlbMl0pfWVsc2UhZnVuY3Rpb24oYSl7ZC5wdXNoKCExKSxlLnB1c2goITEpLGYucHVzaChmdW5jdGlvbigpe3JldHVybiBjW2FdfSl9KGgpO3JldHVybltkLGUsZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGM9MDtjPGEubGVuZ3RoO2MrKyliKz1mW2NdKGFbY10pO3JldHVybiBifV19YS5jb25zdW1lVG9rZW49YixhLmNvbnN1bWVUcmltbWVkPWMsYS5jb25zdW1lUmVwZWF0ZWQ9ZCxhLmNvbnN1bWVQYXJlbnRoZXNpc2VkPWUsYS5pZ25vcmU9ZyxhLm9wdGlvbmFsPWgsYS5jb25zdW1lTGlzdD1pLGEubWVyZ2VOZXN0ZWRSZXBlYXRlZD1qLmJpbmQobnVsbCxudWxsKSxhLm1lcmdlV3JhcHBlZE5lc3RlZFJlcGVhdGVkPWosYS5tZXJnZUxpc3Q9a30oYiksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihiKXtmdW5jdGlvbiBjKGIpe3ZhciBjPWEuY29uc3VtZVRva2VuKC9eaW5zZXQvaSxiKTtyZXR1cm4gYz8oZC5pbnNldD0hMCxjKTooYz1hLmNvbnN1bWVMZW5ndGhPclBlcmNlbnQoYikpPyhkLmxlbmd0aHMucHVzaChjWzBdKSxjKTooYz1hLmNvbnN1bWVDb2xvcihiKSxjPyhkLmNvbG9yPWNbMF0sYyk6dm9pZCAwKX12YXIgZD17aW5zZXQ6ITEsbGVuZ3RoczpbXSxjb2xvcjpudWxsfSxlPWEuY29uc3VtZVJlcGVhdGVkKGMsL14vLGIpO2lmKGUmJmVbMF0ubGVuZ3RoKXJldHVybltkLGVbMV1dfWZ1bmN0aW9uIGMoYyl7dmFyIGQ9YS5jb25zdW1lUmVwZWF0ZWQoYiwvXiwvLGMpO2lmKGQmJiIiPT1kWzFdKXJldHVybiBkWzBdfWZ1bmN0aW9uIGQoYixjKXtmb3IoO2IubGVuZ3Rocy5sZW5ndGg8TWF0aC5tYXgoYi5sZW5ndGhzLmxlbmd0aCxjLmxlbmd0aHMubGVuZ3RoKTspYi5sZW5ndGhzLnB1c2goe3B4OjB9KTtmb3IoO2MubGVuZ3Rocy5sZW5ndGg8TWF0aC5tYXgoYi5sZW5ndGhzLmxlbmd0aCxjLmxlbmd0aHMubGVuZ3RoKTspYy5sZW5ndGhzLnB1c2goe3B4OjB9KTtpZihiLmluc2V0PT1jLmluc2V0JiYhIWIuY29sb3I9PSEhYy5jb2xvcil7Zm9yKHZhciBkLGU9W10sZj1bW10sMF0sZz1bW10sMF0saD0wO2g8Yi5sZW5ndGhzLmxlbmd0aDtoKyspe3ZhciBpPWEubWVyZ2VEaW1lbnNpb25zKGIubGVuZ3Roc1toXSxjLmxlbmd0aHNbaF0sMj09aCk7ZlswXS5wdXNoKGlbMF0pLGdbMF0ucHVzaChpWzFdKSxlLnB1c2goaVsyXSl9aWYoYi5jb2xvciYmYy5jb2xvcil7dmFyIGo9YS5tZXJnZUNvbG9ycyhiLmNvbG9yLGMuY29sb3IpO2ZbMV09alswXSxnWzFdPWpbMV0sZD1qWzJdfXJldHVybltmLGcsZnVuY3Rpb24oYSl7Zm9yKHZhciBjPWIuaW5zZXQ/Imluc2V0ICI6IiAiLGY9MDtmPGUubGVuZ3RoO2YrKyljKz1lW2ZdKGFbMF1bZl0pKyIgIjtyZXR1cm4gZCYmKGMrPWQoYVsxXSkpLGN9XX19ZnVuY3Rpb24gZShiLGMsZCxlKXtmdW5jdGlvbiBmKGEpe3JldHVybntpbnNldDphLGNvbG9yOlswLDAsMCwwXSxsZW5ndGhzOlt7cHg6MH0se3B4OjB9LHtweDowfSx7cHg6MH1dfX1mb3IodmFyIGc9W10saD1bXSxpPTA7aTxkLmxlbmd0aHx8aTxlLmxlbmd0aDtpKyspe3ZhciBqPWRbaV18fGYoZVtpXS5pbnNldCksaz1lW2ldfHxmKGRbaV0uaW5zZXQpO2cucHVzaChqKSxoLnB1c2goayl9cmV0dXJuIGEubWVyZ2VOZXN0ZWRSZXBlYXRlZChiLGMsZyxoKX12YXIgZj1lLmJpbmQobnVsbCxkLCIsICIpO2EuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxmLFsiYm94LXNoYWRvdyIsInRleHQtc2hhZG93Il0pfShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGEudG9GaXhlZCgzKS5yZXBsYWNlKC8wKyQvLCIiKS5yZXBsYWNlKC9cLiQvLCIiKX1mdW5jdGlvbiBkKGEsYixjKXtyZXR1cm4gTWF0aC5taW4oYixNYXRoLm1heChhLGMpKX1mdW5jdGlvbiBlKGEpe2lmKC9eXHMqWy0rXT8oXGQqXC4pP1xkK1xzKiQvLnRlc3QoYSkpcmV0dXJuIE51bWJlcihhKX1mdW5jdGlvbiBmKGEsYil7cmV0dXJuW2EsYixjXX1mdW5jdGlvbiBnKGEsYil7aWYoMCE9YSlyZXR1cm4gaSgwLDEvMCkoYSxiKX1mdW5jdGlvbiBoKGEsYil7cmV0dXJuW2EsYixmdW5jdGlvbihhKXtyZXR1cm4gTWF0aC5yb3VuZChkKDEsMS8wLGEpKX1dfWZ1bmN0aW9uIGkoYSxiKXtyZXR1cm4gZnVuY3Rpb24oZSxmKXtyZXR1cm5bZSxmLGZ1bmN0aW9uKGUpe3JldHVybiBjKGQoYSxiLGUpKX1dfX1mdW5jdGlvbiBqKGEpe3ZhciBiPWEudHJpbSgpLnNwbGl0KC9ccypbXHMsXVxzKi8pO2lmKDAhPT1iLmxlbmd0aCl7Zm9yKHZhciBjPVtdLGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGY9ZShiW2RdKTtpZih2b2lkIDA9PT1mKXJldHVybjtjLnB1c2goZil9cmV0dXJuIGN9fWZ1bmN0aW9uIGsoYSxiKXtpZihhLmxlbmd0aD09Yi5sZW5ndGgpcmV0dXJuW2EsYixmdW5jdGlvbihhKXtyZXR1cm4gYS5tYXAoYykuam9pbigiICIpfV19ZnVuY3Rpb24gbChhLGIpe3JldHVyblthLGIsTWF0aC5yb3VuZF19YS5jbGFtcD1kLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoaixrLFsic3Ryb2tlLWRhc2hhcnJheSJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaSgwLDEvMCksWyJib3JkZXItaW1hZ2Utd2lkdGgiLCJsaW5lLWhlaWdodCJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaSgwLDEpLFsib3BhY2l0eSIsInNoYXBlLWltYWdlLXRocmVzaG9sZCJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsZyxbImZsZXgtZ3JvdyIsImZsZXgtc2hyaW5rIl0pLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoZSxoLFsib3JwaGFucyIsIndpZG93cyJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsbCxbInotaW5kZXgiXSksYS5wYXJzZU51bWJlcj1lLGEucGFyc2VOdW1iZXJMaXN0PWosYS5tZXJnZU51bWJlcnM9ZixhLm51bWJlclRvU3RyaW5nPWN9KGIpLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhLGIpe2lmKCJ2aXNpYmxlIj09YXx8InZpc2libGUiPT1iKXJldHVyblswLDEsZnVuY3Rpb24oYyl7cmV0dXJuIGM8PTA/YTpjPj0xP2I6InZpc2libGUifV19YS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihTdHJpbmcsYyxbInZpc2liaWxpdHkiXSl9KGIpLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhKXthPWEudHJpbSgpLGYuZmlsbFN0eWxlPSIjMDAwIixmLmZpbGxTdHlsZT1hO3ZhciBiPWYuZmlsbFN0eWxlO2lmKGYuZmlsbFN0eWxlPSIjZmZmIixmLmZpbGxTdHlsZT1hLGI9PWYuZmlsbFN0eWxlKXtmLmZpbGxSZWN0KDAsMCwxLDEpO3ZhciBjPWYuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpLmRhdGE7Zi5jbGVhclJlY3QoMCwwLDEsMSk7dmFyIGQ9Y1szXS8yNTU7cmV0dXJuW2NbMF0qZCxjWzFdKmQsY1syXSpkLGRdfX1mdW5jdGlvbiBkKGIsYyl7cmV0dXJuW2IsYyxmdW5jdGlvbihiKXtmdW5jdGlvbiBjKGEpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDI1NSxhKSl9aWYoYlszXSlmb3IodmFyIGQ9MDtkPDM7ZCsrKWJbZF09TWF0aC5yb3VuZChjKGJbZF0vYlszXSkpO3JldHVybiBiWzNdPWEubnVtYmVyVG9TdHJpbmcoYS5jbGFtcCgwLDEsYlszXSkpLCJyZ2JhKCIrYi5qb2luKCIsIikrIikifV19dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiY2FudmFzIik7ZS53aWR0aD1lLmhlaWdodD0xO3ZhciBmPWUuZ2V0Q29udGV4dCgiMmQiKTthLmFkZFByb3BlcnRpZXNIYW5kbGVyKGMsZCxbImJhY2tncm91bmQtY29sb3IiLCJib3JkZXItYm90dG9tLWNvbG9yIiwiYm9yZGVyLWxlZnQtY29sb3IiLCJib3JkZXItcmlnaHQtY29sb3IiLCJib3JkZXItdG9wLWNvbG9yIiwiY29sb3IiLCJmaWxsIiwiZmxvb2QtY29sb3IiLCJsaWdodGluZy1jb2xvciIsIm91dGxpbmUtY29sb3IiLCJzdG9wLWNvbG9yIiwic3Ryb2tlIiwidGV4dC1kZWNvcmF0aW9uLWNvbG9yIl0pLGEuY29uc3VtZUNvbG9yPWEuY29uc3VtZVBhcmVudGhlc2lzZWQuYmluZChudWxsLGMpLGEubWVyZ2VDb2xvcnM9ZH0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEpe2Z1bmN0aW9uIGIoKXt2YXIgYj1oLmV4ZWMoYSk7Zz1iP2JbMF06dm9pZCAwfWZ1bmN0aW9uIGMoKXt2YXIgYT1OdW1iZXIoZyk7cmV0dXJuIGIoKSxhfWZ1bmN0aW9uIGQoKXtpZigiKCIhPT1nKXJldHVybiBjKCk7YigpO3ZhciBhPWYoKTtyZXR1cm4iKSIhPT1nP05hTjooYigpLGEpfWZ1bmN0aW9uIGUoKXtmb3IodmFyIGE9ZCgpOyIqIj09PWd8fCIvIj09PWc7KXt2YXIgYz1nO2IoKTt2YXIgZT1kKCk7IioiPT09Yz9hKj1lOmEvPWV9cmV0dXJuIGF9ZnVuY3Rpb24gZigpe2Zvcih2YXIgYT1lKCk7IisiPT09Z3x8Ii0iPT09Zzspe3ZhciBjPWc7YigpO3ZhciBkPWUoKTsiKyI9PT1jP2ErPWQ6YS09ZH1yZXR1cm4gYX12YXIgZyxoPS8oW1wrXC1cd1wuXSt8W1woXClcKlwvXSkvZztyZXR1cm4gYigpLGYoKX1mdW5jdGlvbiBkKGEsYil7aWYoIjAiPT0oYj1iLnRyaW0oKS50b0xvd2VyQ2FzZSgpKSYmInB4Ii5zZWFyY2goYSk+PTApcmV0dXJue3B4OjB9O2lmKC9eW14oXSokfF5jYWxjLy50ZXN0KGIpKXtiPWIucmVwbGFjZSgvY2FsY1woL2csIigiKTt2YXIgZD17fTtiPWIucmVwbGFjZShhLGZ1bmN0aW9uKGEpe3JldHVybiBkW2FdPW51bGwsIlUiK2F9KTtmb3IodmFyIGU9IlUoIithLnNvdXJjZSsiKSIsZj1iLnJlcGxhY2UoL1stK10/KFxkKlwuKT9cZCsoW0VlXVstK10/XGQrKT8vZywiTiIpLnJlcGxhY2UobmV3IFJlZ0V4cCgiTiIrZSwiZyIpLCJEIikucmVwbGFjZSgvXHNbKy1dXHMvZywiTyIpLnJlcGxhY2UoL1xzL2csIiIpLGc9Wy9OXCooRCkvZywvKE58RClbKlwvXU4vZywvKE58RClPXDEvZywvXCgoTnxEKVwpL2ddLGg9MDtoPGcubGVuZ3RoOylnW2hdLnRlc3QoZik/KGY9Zi5yZXBsYWNlKGdbaF0sIiQxIiksaD0wKTpoKys7aWYoIkQiPT1mKXtmb3IodmFyIGkgaW4gZCl7dmFyIGo9YyhiLnJlcGxhY2UobmV3IFJlZ0V4cCgiVSIraSwiZyIpLCIiKS5yZXBsYWNlKG5ldyBSZWdFeHAoZSwiZyIpLCIqMCIpKTtpZighaXNGaW5pdGUoaikpcmV0dXJuO2RbaV09an1yZXR1cm4gZH19fWZ1bmN0aW9uIGUoYSxiKXtyZXR1cm4gZihhLGIsITApfWZ1bmN0aW9uIGYoYixjLGQpe3ZhciBlLGY9W107Zm9yKGUgaW4gYilmLnB1c2goZSk7Zm9yKGUgaW4gYylmLmluZGV4T2YoZSk8MCYmZi5wdXNoKGUpO3JldHVybiBiPWYubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBiW2FdfHwwfSksYz1mLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gY1thXXx8MH0pLFtiLGMsZnVuY3Rpb24oYil7dmFyIGM9Yi5tYXAoZnVuY3Rpb24oYyxlKXtyZXR1cm4gMT09Yi5sZW5ndGgmJmQmJihjPU1hdGgubWF4KGMsMCkpLGEubnVtYmVyVG9TdHJpbmcoYykrZltlXX0pLmpvaW4oIiArICIpO3JldHVybiBiLmxlbmd0aD4xPyJjYWxjKCIrYysiKSI6Y31dfXZhciBnPSJweHxlbXxleHxjaHxyZW18dnd8dmh8dm1pbnx2bWF4fGNtfG1tfGlufHB0fHBjIixoPWQuYmluZChudWxsLG5ldyBSZWdFeHAoZywiZyIpKSxpPWQuYmluZChudWxsLG5ldyBSZWdFeHAoZysifCUiLCJnIikpLGo9ZC5iaW5kKG51bGwsL2RlZ3xyYWR8Z3JhZHx0dXJuL2cpO2EucGFyc2VMZW5ndGg9aCxhLnBhcnNlTGVuZ3RoT3JQZXJjZW50PWksYS5jb25zdW1lTGVuZ3RoT3JQZXJjZW50PWEuY29uc3VtZVBhcmVudGhlc2lzZWQuYmluZChudWxsLGkpLGEucGFyc2VBbmdsZT1qLGEubWVyZ2VEaW1lbnNpb25zPWY7dmFyIGs9YS5jb25zdW1lUGFyZW50aGVzaXNlZC5iaW5kKG51bGwsaCksbD1hLmNvbnN1bWVSZXBlYXRlZC5iaW5kKHZvaWQgMCxrLC9eLyksbT1hLmNvbnN1bWVSZXBlYXRlZC5iaW5kKHZvaWQgMCxsLC9eLC8pO2EuY29uc3VtZVNpemVQYWlyTGlzdD1tO3ZhciBuPWZ1bmN0aW9uKGEpe3ZhciBiPW0oYSk7aWYoYiYmIiI9PWJbMV0pcmV0dXJuIGJbMF19LG89YS5tZXJnZU5lc3RlZFJlcGVhdGVkLmJpbmQodm9pZCAwLGUsIiAiKSxwPWEubWVyZ2VOZXN0ZWRSZXBlYXRlZC5iaW5kKHZvaWQgMCxvLCIsIik7YS5tZXJnZU5vbk5lZ2F0aXZlU2l6ZVBhaXI9byxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKG4scCxbImJhY2tncm91bmQtc2l6ZSJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGksZSxbImJvcmRlci1ib3R0b20td2lkdGgiLCJib3JkZXItaW1hZ2Utd2lkdGgiLCJib3JkZXItbGVmdC13aWR0aCIsImJvcmRlci1yaWdodC13aWR0aCIsImJvcmRlci10b3Atd2lkdGgiLCJmbGV4LWJhc2lzIiwiZm9udC1zaXplIiwiaGVpZ2h0IiwibGluZS1oZWlnaHQiLCJtYXgtaGVpZ2h0IiwibWF4LXdpZHRoIiwib3V0bGluZS13aWR0aCIsIndpZHRoIl0pLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoaSxmLFsiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIiwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwiYm90dG9tIiwibGVmdCIsImxldHRlci1zcGFjaW5nIiwibWFyZ2luLWJvdHRvbSIsIm1hcmdpbi1sZWZ0IiwibWFyZ2luLXJpZ2h0IiwibWFyZ2luLXRvcCIsIm1pbi1oZWlnaHQiLCJtaW4td2lkdGgiLCJvdXRsaW5lLW9mZnNldCIsInBhZGRpbmctYm90dG9tIiwicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCIsInBhZGRpbmctdG9wIiwicGVyc3BlY3RpdmUiLCJyaWdodCIsInNoYXBlLW1hcmdpbiIsInN0cm9rZS1kYXNob2Zmc2V0IiwidGV4dC1pbmRlbnQiLCJ0b3AiLCJ2ZXJ0aWNhbC1hbGlnbiIsIndvcmQtc3BhY2luZyJdKX0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGIpe3JldHVybiBhLmNvbnN1bWVMZW5ndGhPclBlcmNlbnQoYil8fGEuY29uc3VtZVRva2VuKC9eYXV0by8sYil9ZnVuY3Rpb24gZChiKXt2YXIgZD1hLmNvbnN1bWVMaXN0KFthLmlnbm9yZShhLmNvbnN1bWVUb2tlbi5iaW5kKG51bGwsL15yZWN0LykpLGEuaWdub3JlKGEuY29uc3VtZVRva2VuLmJpbmQobnVsbCwvXlwoLykpLGEuY29uc3VtZVJlcGVhdGVkLmJpbmQobnVsbCxjLC9eLC8pLGEuaWdub3JlKGEuY29uc3VtZVRva2VuLmJpbmQobnVsbCwvXlwpLykpXSxiKTtpZihkJiY0PT1kWzBdLmxlbmd0aClyZXR1cm4gZFswXX1mdW5jdGlvbiBlKGIsYyl7cmV0dXJuImF1dG8iPT1ifHwiYXV0byI9PWM/WyEwLCExLGZ1bmN0aW9uKGQpe3ZhciBlPWQ/YjpjO2lmKCJhdXRvIj09ZSlyZXR1cm4iYXV0byI7dmFyIGY9YS5tZXJnZURpbWVuc2lvbnMoZSxlKTtyZXR1cm4gZlsyXShmWzBdKX1dOmEubWVyZ2VEaW1lbnNpb25zKGIsYyl9ZnVuY3Rpb24gZihhKXtyZXR1cm4icmVjdCgiK2ErIikifXZhciBnPWEubWVyZ2VXcmFwcGVkTmVzdGVkUmVwZWF0ZWQuYmluZChudWxsLGYsZSwiLCAiKTthLnBhcnNlQm94PWQsYS5tZXJnZUJveGVzPWcsYS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihkLGcsWyJjbGlwIl0pfShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPTA7cmV0dXJuIGEubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09az9iW2MrK106YX0pfX1mdW5jdGlvbiBkKGEpe3JldHVybiBhfWZ1bmN0aW9uIGUoYil7aWYoIm5vbmUiPT0oYj1iLnRvTG93ZXJDYXNlKCkudHJpbSgpKSlyZXR1cm5bXTtmb3IodmFyIGMsZD0vXHMqKFx3KylcKChbXildKilcKS9nLGU9W10sZj0wO2M9ZC5leGVjKGIpOyl7aWYoYy5pbmRleCE9ZilyZXR1cm47Zj1jLmluZGV4K2NbMF0ubGVuZ3RoO3ZhciBnPWNbMV0saD1uW2ddO2lmKCFoKXJldHVybjt2YXIgaT1jWzJdLnNwbGl0KCIsIiksaj1oWzBdO2lmKGoubGVuZ3RoPGkubGVuZ3RoKXJldHVybjtmb3IodmFyIGs9W10sbz0wO288ai5sZW5ndGg7bysrKXt2YXIgcCxxPWlbb10scj1qW29dO2lmKHZvaWQgMD09PShwPXE/e0E6ZnVuY3Rpb24oYil7cmV0dXJuIjAiPT1iLnRyaW0oKT9tOmEucGFyc2VBbmdsZShiKX0sTjphLnBhcnNlTnVtYmVyLFQ6YS5wYXJzZUxlbmd0aE9yUGVyY2VudCxMOmEucGFyc2VMZW5ndGh9W3IudG9VcHBlckNhc2UoKV0ocSk6e2E6bSxuOmtbMF0sdDpsfVtyXSkpcmV0dXJuO2sucHVzaChwKX1pZihlLnB1c2goe3Q6ZyxkOmt9KSxkLmxhc3RJbmRleD09Yi5sZW5ndGgpcmV0dXJuIGV9fWZ1bmN0aW9uIGYoYSl7cmV0dXJuIGEudG9GaXhlZCg2KS5yZXBsYWNlKCIuMDAwMDAwIiwiIil9ZnVuY3Rpb24gZyhiLGMpe2lmKGIuZGVjb21wb3NpdGlvblBhaXIhPT1jKXtiLmRlY29tcG9zaXRpb25QYWlyPWM7dmFyIGQ9YS5tYWtlTWF0cml4RGVjb21wb3NpdGlvbihiKX1pZihjLmRlY29tcG9zaXRpb25QYWlyIT09Yil7Yy5kZWNvbXBvc2l0aW9uUGFpcj1iO3ZhciBlPWEubWFrZU1hdHJpeERlY29tcG9zaXRpb24oYyl9cmV0dXJuIG51bGw9PWRbMF18fG51bGw9PWVbMF0/W1shMV0sWyEwXSxmdW5jdGlvbihhKXtyZXR1cm4gYT9jWzBdLmQ6YlswXS5kfV06KGRbMF0ucHVzaCgwKSxlWzBdLnB1c2goMSksW2QsZSxmdW5jdGlvbihiKXt2YXIgYz1hLnF1YXQoZFswXVszXSxlWzBdWzNdLGJbNV0pO3JldHVybiBhLmNvbXBvc2VNYXRyaXgoYlswXSxiWzFdLGJbMl0sYyxiWzRdKS5tYXAoZikuam9pbigiLCIpfV0pfWZ1bmN0aW9uIGgoYSl7cmV0dXJuIGEucmVwbGFjZSgvW3h5XS8sIiIpfWZ1bmN0aW9uIGkoYSl7cmV0dXJuIGEucmVwbGFjZSgvKHh8eXx6fDNkKT8kLywiM2QiKX1mdW5jdGlvbiBqKGIsYyl7dmFyIGQ9YS5tYWtlTWF0cml4RGVjb21wb3NpdGlvbiYmITAsZT0hMTtpZighYi5sZW5ndGh8fCFjLmxlbmd0aCl7Yi5sZW5ndGh8fChlPSEwLGI9YyxjPVtdKTtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGo9YltmXS50LGs9YltmXS5kLGw9InNjYWxlIj09ai5zdWJzdHIoMCw1KT8xOjA7Yy5wdXNoKHt0OmosZDprLm1hcChmdW5jdGlvbihhKXtpZigibnVtYmVyIj09dHlwZW9mIGEpcmV0dXJuIGw7dmFyIGI9e307Zm9yKHZhciBjIGluIGEpYltjXT1sO3JldHVybiBifSl9KX19dmFyIG09ZnVuY3Rpb24oYSxiKXtyZXR1cm4icGVyc3BlY3RpdmUiPT1hJiYicGVyc3BlY3RpdmUiPT1ifHwoIm1hdHJpeCI9PWF8fCJtYXRyaXgzZCI9PWEpJiYoIm1hdHJpeCI9PWJ8fCJtYXRyaXgzZCI9PWIpfSxvPVtdLHA9W10scT1bXTtpZihiLmxlbmd0aCE9Yy5sZW5ndGgpe2lmKCFkKXJldHVybjt2YXIgcj1nKGIsYyk7bz1bclswXV0scD1bclsxXV0scT1bWyJtYXRyaXgiLFtyWzJdXV1dfWVsc2UgZm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBqLHM9YltmXS50LHQ9Y1tmXS50LHU9YltmXS5kLHY9Y1tmXS5kLHc9bltzXSx4PW5bdF07aWYobShzLHQpKXtpZighZClyZXR1cm47dmFyIHI9ZyhbYltmXV0sW2NbZl1dKTtvLnB1c2goclswXSkscC5wdXNoKHJbMV0pLHEucHVzaChbIm1hdHJpeCIsW3JbMl1dXSl9ZWxzZXtpZihzPT10KWo9cztlbHNlIGlmKHdbMl0mJnhbMl0mJmgocyk9PWgodCkpaj1oKHMpLHU9d1syXSh1KSx2PXhbMl0odik7ZWxzZXtpZighd1sxXXx8IXhbMV18fGkocykhPWkodCkpe2lmKCFkKXJldHVybjt2YXIgcj1nKGIsYyk7bz1bclswXV0scD1bclsxXV0scT1bWyJtYXRyaXgiLFtyWzJdXV1dO2JyZWFrfWo9aShzKSx1PXdbMV0odSksdj14WzFdKHYpfWZvcih2YXIgeT1bXSx6PVtdLEE9W10sQj0wO0I8dS5sZW5ndGg7QisrKXt2YXIgQz0ibnVtYmVyIj09dHlwZW9mIHVbQl0/YS5tZXJnZU51bWJlcnM6YS5tZXJnZURpbWVuc2lvbnMscj1DKHVbQl0sdltCXSk7eVtCXT1yWzBdLHpbQl09clsxXSxBLnB1c2goclsyXSl9by5wdXNoKHkpLHAucHVzaCh6KSxxLnB1c2goW2osQV0pfX1pZihlKXt2YXIgRD1vO289cCxwPUR9cmV0dXJuW28scCxmdW5jdGlvbihhKXtyZXR1cm4gYS5tYXAoZnVuY3Rpb24oYSxiKXt2YXIgYz1hLm1hcChmdW5jdGlvbihhLGMpe3JldHVybiBxW2JdWzFdW2NdKGEpfSkuam9pbigiLCIpO3JldHVybiJtYXRyaXgiPT1xW2JdWzBdJiYxNj09Yy5zcGxpdCgiLCIpLmxlbmd0aCYmKHFbYl1bMF09Im1hdHJpeDNkIikscVtiXVswXSsiKCIrYysiKSJ9KS5qb2luKCIgIil9XX12YXIgaz1udWxsLGw9e3B4OjB9LG09e2RlZzowfSxuPXttYXRyaXg6WyJOTk5OTk4iLFtrLGssMCwwLGssaywwLDAsMCwwLDEsMCxrLGssMCwxXSxkXSxtYXRyaXgzZDpbIk5OTk5OTk5OTk5OTk5OTk4iLGRdLHJvdGF0ZTpbIkEiXSxyb3RhdGV4OlsiQSJdLHJvdGF0ZXk6WyJBIl0scm90YXRlejpbIkEiXSxyb3RhdGUzZDpbIk5OTkEiXSxwZXJzcGVjdGl2ZTpbIkwiXSxzY2FsZTpbIk5uIixjKFtrLGssMV0pLGRdLHNjYWxleDpbIk4iLGMoW2ssMSwxXSksYyhbaywxXSldLHNjYWxleTpbIk4iLGMoWzEsaywxXSksYyhbMSxrXSldLHNjYWxlejpbIk4iLGMoWzEsMSxrXSldLHNjYWxlM2Q6WyJOTk4iLGRdLHNrZXc6WyJBYSIsbnVsbCxkXSxza2V3eDpbIkEiLG51bGwsYyhbayxtXSldLHNrZXd5OlsiQSIsbnVsbCxjKFttLGtdKV0sdHJhbnNsYXRlOlsiVHQiLGMoW2ssayxsXSksZF0sdHJhbnNsYXRleDpbIlQiLGMoW2ssbCxsXSksYyhbayxsXSldLHRyYW5zbGF0ZXk6WyJUIixjKFtsLGssbF0pLGMoW2wsa10pXSx0cmFuc2xhdGV6OlsiTCIsYyhbbCxsLGtdKV0sdHJhbnNsYXRlM2Q6WyJUVEwiLGRdfTthLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaixbInRyYW5zZm9ybSJdKSxhLnRyYW5zZm9ybVRvU3ZnTWF0cml4PWZ1bmN0aW9uKGIpe3ZhciBjPWEudHJhbnNmb3JtTGlzdFRvTWF0cml4KGUoYikpO3JldHVybiJtYXRyaXgoIitmKGNbMF0pKyIgIitmKGNbMV0pKyIgIitmKGNbNF0pKyIgIitmKGNbNV0pKyIgIitmKGNbMTJdKSsiICIrZihjWzEzXSkrIikifX0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7Yi5jb25jYXQoW2FdKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiYoZFthXT1iKSxlW2JdPWF9KX12YXIgZD17fSxlPXt9O2MoInRyYW5zZm9ybSIsWyJ3ZWJraXRUcmFuc2Zvcm0iLCJtc1RyYW5zZm9ybSJdKSxjKCJ0cmFuc2Zvcm1PcmlnaW4iLFsid2Via2l0VHJhbnNmb3JtT3JpZ2luIl0pLGMoInBlcnNwZWN0aXZlIixbIndlYmtpdFBlcnNwZWN0aXZlIl0pLGMoInBlcnNwZWN0aXZlT3JpZ2luIixbIndlYmtpdFBlcnNwZWN0aXZlT3JpZ2luIl0pLGEucHJvcGVydHlOYW1lPWZ1bmN0aW9uKGEpe3JldHVybiBkW2FdfHxhfSxhLnVucHJlZml4ZWRQcm9wZXJ0eU5hbWU9ZnVuY3Rpb24oYSl7cmV0dXJuIGVbYV18fGF9fShiKX0oKSxmdW5jdGlvbigpe2lmKHZvaWQgMD09PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLmFuaW1hdGUoW10pLm9uY2FuY2VsKXt2YXIgYTtpZih3aW5kb3cucGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdyl2YXIgYT1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX07ZWxzZSB2YXIgYT1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpfTt2YXIgYj1mdW5jdGlvbihhLGIsYyl7dGhpcy50YXJnZXQ9YSx0aGlzLmN1cnJlbnRUaW1lPWIsdGhpcy50aW1lbGluZVRpbWU9Yyx0aGlzLnR5cGU9ImNhbmNlbCIsdGhpcy5idWJibGVzPSExLHRoaXMuY2FuY2VsYWJsZT0hMSx0aGlzLmN1cnJlbnRUYXJnZXQ9YSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsdGhpcy5ldmVudFBoYXNlPUV2ZW50LkFUX1RBUkdFVCx0aGlzLnRpbWVTdGFtcD1EYXRlLm5vdygpfSxjPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlO3dpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGQsZSl7dmFyIGY9Yy5jYWxsKHRoaXMsZCxlKTtmLl9jYW5jZWxIYW5kbGVycz1bXSxmLm9uY2FuY2VsPW51bGw7dmFyIGc9Zi5jYW5jZWw7Zi5jYW5jZWw9ZnVuY3Rpb24oKXtnLmNhbGwodGhpcyk7dmFyIGM9bmV3IGIodGhpcyxudWxsLGEoKSksZD10aGlzLl9jYW5jZWxIYW5kbGVycy5jb25jYXQodGhpcy5vbmNhbmNlbD9bdGhpcy5vbmNhbmNlbF06W10pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkLmZvckVhY2goZnVuY3Rpb24oYSl7YS5jYWxsKGMudGFyZ2V0LGMpfSl9LDApfTt2YXIgaD1mLmFkZEV2ZW50TGlzdGVuZXI7Zi5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYil7ImZ1bmN0aW9uIj09dHlwZW9mIGImJiJjYW5jZWwiPT1hP3RoaXMuX2NhbmNlbEhhbmRsZXJzLnB1c2goYik6aC5jYWxsKHRoaXMsYSxiKX07dmFyIGk9Zi5yZW1vdmVFdmVudExpc3RlbmVyO3JldHVybiBmLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXtpZigiY2FuY2VsIj09YSl7dmFyIGM9dGhpcy5fY2FuY2VsSGFuZGxlcnMuaW5kZXhPZihiKTtjPj0wJiZ0aGlzLl9jYW5jZWxIYW5kbGVycy5zcGxpY2UoYywxKX1lbHNlIGkuY2FsbCh0aGlzLGEsYil9LGZ9fX0oKSxmdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYz1udWxsLGQ9ITE7dHJ5e3ZhciBlPWdldENvbXB1dGVkU3R5bGUoYikuZ2V0UHJvcGVydHlWYWx1ZSgib3BhY2l0eSIpLGY9IjAiPT1lPyIxIjoiMCI7Yz1iLmFuaW1hdGUoe29wYWNpdHk6W2YsZl19LHtkdXJhdGlvbjoxfSksYy5jdXJyZW50VGltZT0wLGQ9Z2V0Q29tcHV0ZWRTdHlsZShiKS5nZXRQcm9wZXJ0eVZhbHVlKCJvcGFjaXR5Iik9PWZ9Y2F0Y2goYSl7fWZpbmFsbHl7YyYmYy5jYW5jZWwoKX1pZighZCl7dmFyIGc9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU7d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24oYixjKXtyZXR1cm4gd2luZG93LlN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZBcnJheS5wcm90b3R5cGUuZnJvbSYmYltTeW1ib2wuaXRlcmF0b3JdJiYoYj1BcnJheS5mcm9tKGIpKSxBcnJheS5pc0FycmF5KGIpfHxudWxsPT09Ynx8KGI9YS5jb252ZXJ0VG9BcnJheUZvcm0oYikpLGcuY2FsbCh0aGlzLGIsYyl9fX0oYSksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7dmFyIGM9Yi50aW1lbGluZTtjLmN1cnJlbnRUaW1lPWEsYy5fZGlzY2FyZEFuaW1hdGlvbnMoKSwwPT1jLl9hbmltYXRpb25zLmxlbmd0aD9mPSExOnJlcXVlc3RBbmltYXRpb25GcmFtZShkKX12YXIgZT13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lO3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oYSl7cmV0dXJuIGUoZnVuY3Rpb24oYyl7Yi50aW1lbGluZS5fdXBkYXRlQW5pbWF0aW9uc1Byb21pc2VzKCksYShjKSxiLnRpbWVsaW5lLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKX0pfSxiLkFuaW1hdGlvblRpbWVsaW5lPWZ1bmN0aW9uKCl7dGhpcy5fYW5pbWF0aW9ucz1bXSx0aGlzLmN1cnJlbnRUaW1lPXZvaWQgMH0sYi5BbmltYXRpb25UaW1lbGluZS5wcm90b3R5cGU9e2dldEFuaW1hdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzY2FyZEFuaW1hdGlvbnMoKSx0aGlzLl9hbmltYXRpb25zLnNsaWNlKCl9LF91cGRhdGVBbmltYXRpb25zUHJvbWlzZXM6ZnVuY3Rpb24oKXtiLmFuaW1hdGlvbnNXaXRoUHJvbWlzZXM9Yi5hbmltYXRpb25zV2l0aFByb21pc2VzLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5fdXBkYXRlUHJvbWlzZXMoKX0pfSxfZGlzY2FyZEFuaW1hdGlvbnM6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKSx0aGlzLl9hbmltYXRpb25zPXRoaXMuX2FuaW1hdGlvbnMuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiJmaW5pc2hlZCIhPWEucGxheVN0YXRlJiYiaWRsZSIhPWEucGxheVN0YXRlfSl9LF9wbGF5OmZ1bmN0aW9uKGEpe3ZhciBjPW5ldyBiLkFuaW1hdGlvbihhLHRoaXMpO3JldHVybiB0aGlzLl9hbmltYXRpb25zLnB1c2goYyksYi5yZXN0YXJ0V2ViQW5pbWF0aW9uc05leHRUaWNrKCksYy5fdXBkYXRlUHJvbWlzZXMoKSxjLl9hbmltYXRpb24ucGxheSgpLGMuX3VwZGF0ZVByb21pc2VzKCksY30scGxheTpmdW5jdGlvbihhKXtyZXR1cm4gYSYmYS5yZW1vdmUoKSx0aGlzLl9wbGF5KGEpfX07dmFyIGY9ITE7Yi5yZXN0YXJ0V2ViQW5pbWF0aW9uc05leHRUaWNrPWZ1bmN0aW9uKCl7Znx8KGY9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGQpKX07dmFyIGc9bmV3IGIuQW5pbWF0aW9uVGltZWxpbmU7Yi50aW1lbGluZT1nO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LmRvY3VtZW50LCJ0aW1lbGluZSIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ319KX1jYXRjaChhKXt9dHJ5e3dpbmRvdy5kb2N1bWVudC50aW1lbGluZT1nfWNhdGNoKGEpe319KDAsYyksZnVuY3Rpb24oYSxiLGMpe2IuYW5pbWF0aW9uc1dpdGhQcm9taXNlcz1bXSxiLkFuaW1hdGlvbj1mdW5jdGlvbihiLGMpe2lmKHRoaXMuaWQ9IiIsYiYmYi5faWQmJih0aGlzLmlkPWIuX2lkKSx0aGlzLmVmZmVjdD1iLGImJihiLl9hbmltYXRpb249dGhpcyksIWMpdGhyb3cgbmV3IEVycm9yKCJBbmltYXRpb24gd2l0aCBudWxsIHRpbWVsaW5lIGlzIG5vdCBzdXBwb3J0ZWQiKTt0aGlzLl90aW1lbGluZT1jLHRoaXMuX3NlcXVlbmNlTnVtYmVyPWEuc2VxdWVuY2VOdW1iZXIrKyx0aGlzLl9ob2xkVGltZT0wLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9pc0dyb3VwPSExLHRoaXMuX2FuaW1hdGlvbj1udWxsLHRoaXMuX2NoaWxkQW5pbWF0aW9ucz1bXSx0aGlzLl9jYWxsYmFjaz1udWxsLHRoaXMuX29sZFBsYXlTdGF0ZT0iaWRsZSIsdGhpcy5fcmVidWlsZFVuZGVybHlpbmdBbmltYXRpb24oKSx0aGlzLl9hbmltYXRpb24uY2FuY2VsKCksdGhpcy5fdXBkYXRlUHJvbWlzZXMoKX0sYi5BbmltYXRpb24ucHJvdG90eXBlPXtfdXBkYXRlUHJvbWlzZXM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9vbGRQbGF5U3RhdGUsYj10aGlzLnBsYXlTdGF0ZTtyZXR1cm4gdGhpcy5fcmVhZHlQcm9taXNlJiZiIT09YSYmKCJpZGxlIj09Yj8odGhpcy5fcmVqZWN0UmVhZHlQcm9taXNlKCksdGhpcy5fcmVhZHlQcm9taXNlPXZvaWQgMCk6InBlbmRpbmciPT1hP3RoaXMuX3Jlc29sdmVSZWFkeVByb21pc2UoKToicGVuZGluZyI9PWImJih0aGlzLl9yZWFkeVByb21pc2U9dm9pZCAwKSksdGhpcy5fZmluaXNoZWRQcm9taXNlJiZiIT09YSYmKCJpZGxlIj09Yj8odGhpcy5fcmVqZWN0RmluaXNoZWRQcm9taXNlKCksdGhpcy5fZmluaXNoZWRQcm9taXNlPXZvaWQgMCk6ImZpbmlzaGVkIj09Yj90aGlzLl9yZXNvbHZlRmluaXNoZWRQcm9taXNlKCk6ImZpbmlzaGVkIj09YSYmKHRoaXMuX2ZpbmlzaGVkUHJvbWlzZT12b2lkIDApKSx0aGlzLl9vbGRQbGF5U3RhdGU9dGhpcy5wbGF5U3RhdGUsdGhpcy5fcmVhZHlQcm9taXNlfHx0aGlzLl9maW5pc2hlZFByb21pc2V9LF9yZWJ1aWxkVW5kZXJseWluZ0FuaW1hdGlvbjpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCk7dmFyIGEsYyxkLGUsZj0hIXRoaXMuX2FuaW1hdGlvbjtmJiYoYT10aGlzLnBsYXliYWNrUmF0ZSxjPXRoaXMuX3BhdXNlZCxkPXRoaXMuc3RhcnRUaW1lLGU9dGhpcy5jdXJyZW50VGltZSx0aGlzLl9hbmltYXRpb24uY2FuY2VsKCksdGhpcy5fYW5pbWF0aW9uLl93cmFwcGVyPW51bGwsdGhpcy5fYW5pbWF0aW9uPW51bGwpLCghdGhpcy5lZmZlY3R8fHRoaXMuZWZmZWN0IGluc3RhbmNlb2Ygd2luZG93LktleWZyYW1lRWZmZWN0KSYmKHRoaXMuX2FuaW1hdGlvbj1iLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdCh0aGlzLmVmZmVjdCksYi5iaW5kQW5pbWF0aW9uRm9yS2V5ZnJhbWVFZmZlY3QodGhpcykpLCh0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdHx8dGhpcy5lZmZlY3QgaW5zdGFuY2VvZiB3aW5kb3cuR3JvdXBFZmZlY3QpJiYodGhpcy5fYW5pbWF0aW9uPWIubmV3VW5kZXJseWluZ0FuaW1hdGlvbkZvckdyb3VwKHRoaXMuZWZmZWN0KSxiLmJpbmRBbmltYXRpb25Gb3JHcm91cCh0aGlzKSksdGhpcy5lZmZlY3QmJnRoaXMuZWZmZWN0Ll9vbnNhbXBsZSYmYi5iaW5kQW5pbWF0aW9uRm9yQ3VzdG9tRWZmZWN0KHRoaXMpLGYmJigxIT1hJiYodGhpcy5wbGF5YmFja1JhdGU9YSksbnVsbCE9PWQ/dGhpcy5zdGFydFRpbWU9ZDpudWxsIT09ZT90aGlzLmN1cnJlbnRUaW1lPWU6bnVsbCE9PXRoaXMuX2hvbGRUaW1lJiYodGhpcy5jdXJyZW50VGltZT10aGlzLl9ob2xkVGltZSksYyYmdGhpcy5wYXVzZSgpKSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxfdXBkYXRlQ2hpbGRyZW46ZnVuY3Rpb24oKXtpZih0aGlzLmVmZmVjdCYmImlkbGUiIT10aGlzLnBsYXlTdGF0ZSl7dmFyIGE9dGhpcy5lZmZlY3QuX3RpbWluZy5kZWxheTt0aGlzLl9jaGlsZEFuaW1hdGlvbnMuZm9yRWFjaChmdW5jdGlvbihjKXt0aGlzLl9hcnJhbmdlQ2hpbGRyZW4oYyxhKSx0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdCYmKGErPWIuZ3JvdXBDaGlsZER1cmF0aW9uKGMuZWZmZWN0KSl9LmJpbmQodGhpcykpfX0sX3NldEV4dGVybmFsQW5pbWF0aW9uOmZ1bmN0aW9uKGEpe2lmKHRoaXMuZWZmZWN0JiZ0aGlzLl9pc0dyb3VwKWZvcih2YXIgYj0wO2I8dGhpcy5lZmZlY3QuY2hpbGRyZW4ubGVuZ3RoO2IrKyl0aGlzLmVmZmVjdC5jaGlsZHJlbltiXS5fYW5pbWF0aW9uPWEsdGhpcy5fY2hpbGRBbmltYXRpb25zW2JdLl9zZXRFeHRlcm5hbEFuaW1hdGlvbihhKX0sX2NvbnN0cnVjdENoaWxkQW5pbWF0aW9uczpmdW5jdGlvbigpe2lmKHRoaXMuZWZmZWN0JiZ0aGlzLl9pc0dyb3VwKXt2YXIgYT10aGlzLmVmZmVjdC5fdGltaW5nLmRlbGF5O3RoaXMuX3JlbW92ZUNoaWxkQW5pbWF0aW9ucygpLHRoaXMuZWZmZWN0LmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGQ9Yi50aW1lbGluZS5fcGxheShjKTt0aGlzLl9jaGlsZEFuaW1hdGlvbnMucHVzaChkKSxkLnBsYXliYWNrUmF0ZT10aGlzLnBsYXliYWNrUmF0ZSx0aGlzLl9wYXVzZWQmJmQucGF1c2UoKSxjLl9hbmltYXRpb249dGhpcy5lZmZlY3QuX2FuaW1hdGlvbix0aGlzLl9hcnJhbmdlQ2hpbGRyZW4oZCxhKSx0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdCYmKGErPWIuZ3JvdXBDaGlsZER1cmF0aW9uKGMpKX0uYmluZCh0aGlzKSl9fSxfYXJyYW5nZUNoaWxkcmVuOmZ1bmN0aW9uKGEsYil7bnVsbD09PXRoaXMuc3RhcnRUaW1lP2EuY3VycmVudFRpbWU9dGhpcy5jdXJyZW50VGltZS1iL3RoaXMucGxheWJhY2tSYXRlOmEuc3RhcnRUaW1lIT09dGhpcy5zdGFydFRpbWUrYi90aGlzLnBsYXliYWNrUmF0ZSYmKGEuc3RhcnRUaW1lPXRoaXMuc3RhcnRUaW1lK2IvdGhpcy5wbGF5YmFja1JhdGUpfSxnZXQgdGltZWxpbmUoKXtyZXR1cm4gdGhpcy5fdGltZWxpbmV9LGdldCBwbGF5U3RhdGUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uP3RoaXMuX2FuaW1hdGlvbi5wbGF5U3RhdGU6ImlkbGUifSxnZXQgZmluaXNoZWQoKXtyZXR1cm4gd2luZG93LlByb21pc2U/KHRoaXMuX2ZpbmlzaGVkUHJvbWlzZXx8KC0xPT1iLmFuaW1hdGlvbnNXaXRoUHJvbWlzZXMuaW5kZXhPZih0aGlzKSYmYi5hbmltYXRpb25zV2l0aFByb21pc2VzLnB1c2godGhpcyksdGhpcy5fZmluaXNoZWRQcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGEsYil7dGhpcy5fcmVzb2x2ZUZpbmlzaGVkUHJvbWlzZT1mdW5jdGlvbigpe2EodGhpcyl9LHRoaXMuX3JlamVjdEZpbmlzaGVkUHJvbWlzZT1mdW5jdGlvbigpe2Ioe3R5cGU6RE9NRXhjZXB0aW9uLkFCT1JUX0VSUixuYW1lOiJBYm9ydEVycm9yIn0pfX0uYmluZCh0aGlzKSksImZpbmlzaGVkIj09dGhpcy5wbGF5U3RhdGUmJnRoaXMuX3Jlc29sdmVGaW5pc2hlZFByb21pc2UoKSksdGhpcy5fZmluaXNoZWRQcm9taXNlKTooY29uc29sZS53YXJuKCJBbmltYXRpb24gUHJvbWlzZXMgcmVxdWlyZSBKYXZhU2NyaXB0IFByb21pc2UgY29uc3RydWN0b3IiKSxudWxsKX0sZ2V0IHJlYWR5KCl7cmV0dXJuIHdpbmRvdy5Qcm9taXNlPyh0aGlzLl9yZWFkeVByb21pc2V8fCgtMT09Yi5hbmltYXRpb25zV2l0aFByb21pc2VzLmluZGV4T2YodGhpcykmJmIuYW5pbWF0aW9uc1dpdGhQcm9taXNlcy5wdXNoKHRoaXMpLHRoaXMuX3JlYWR5UHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihhLGIpe3RoaXMuX3Jlc29sdmVSZWFkeVByb21pc2U9ZnVuY3Rpb24oKXthKHRoaXMpfSx0aGlzLl9yZWplY3RSZWFkeVByb21pc2U9ZnVuY3Rpb24oKXtiKHt0eXBlOkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIsbmFtZToiQWJvcnRFcnJvciJ9KX19LmJpbmQodGhpcykpLCJwZW5kaW5nIiE9PXRoaXMucGxheVN0YXRlJiZ0aGlzLl9yZXNvbHZlUmVhZHlQcm9taXNlKCkpLHRoaXMuX3JlYWR5UHJvbWlzZSk6KGNvbnNvbGUud2FybigiQW5pbWF0aW9uIFByb21pc2VzIHJlcXVpcmUgSmF2YVNjcmlwdCBQcm9taXNlIGNvbnN0cnVjdG9yIiksbnVsbCl9LGdldCBvbmZpbmlzaCgpe3JldHVybiB0aGlzLl9hbmltYXRpb24ub25maW5pc2h9LHNldCBvbmZpbmlzaChhKXt0aGlzLl9hbmltYXRpb24ub25maW5pc2g9ImZ1bmN0aW9uIj09dHlwZW9mIGE/ZnVuY3Rpb24oYil7Yi50YXJnZXQ9dGhpcyxhLmNhbGwodGhpcyxiKX0uYmluZCh0aGlzKTphfSxnZXQgb25jYW5jZWwoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLm9uY2FuY2VsfSxzZXQgb25jYW5jZWwoYSl7dGhpcy5fYW5pbWF0aW9uLm9uY2FuY2VsPSJmdW5jdGlvbiI9PXR5cGVvZiBhP2Z1bmN0aW9uKGIpe2IudGFyZ2V0PXRoaXMsYS5jYWxsKHRoaXMsYil9LmJpbmQodGhpcyk6YX0sZ2V0IGN1cnJlbnRUaW1lKCl7dGhpcy5fdXBkYXRlUHJvbWlzZXMoKTt2YXIgYT10aGlzLl9hbmltYXRpb24uY3VycmVudFRpbWU7cmV0dXJuIHRoaXMuX3VwZGF0ZVByb21pc2VzKCksYX0sc2V0IGN1cnJlbnRUaW1lKGEpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5fYW5pbWF0aW9uLmN1cnJlbnRUaW1lPWlzRmluaXRlKGEpP2E6TWF0aC5zaWduKGEpKk51bWJlci5NQVhfVkFMVUUsdGhpcy5fcmVnaXN0ZXIoKSx0aGlzLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYixjKXtiLmN1cnJlbnRUaW1lPWEtY30pLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGdldCBzdGFydFRpbWUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLnN0YXJ0VGltZX0sc2V0IHN0YXJ0VGltZShhKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX2FuaW1hdGlvbi5zdGFydFRpbWU9aXNGaW5pdGUoYSk/YTpNYXRoLnNpZ24oYSkqTnVtYmVyLk1BWF9WQUxVRSx0aGlzLl9yZWdpc3RlcigpLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihiLGMpe2Iuc3RhcnRUaW1lPWErY30pLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGdldCBwbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrUmF0ZX0sc2V0IHBsYXliYWNrUmF0ZShhKXt0aGlzLl91cGRhdGVQcm9taXNlcygpO3ZhciBiPXRoaXMuY3VycmVudFRpbWU7dGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrUmF0ZT1hLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihiKXtiLnBsYXliYWNrUmF0ZT1hfSksbnVsbCE9PWImJih0aGlzLmN1cnJlbnRUaW1lPWIpLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LHBsYXk6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9hbmltYXRpb24ucGxheSgpLC0xPT10aGlzLl90aW1lbGluZS5fYW5pbWF0aW9ucy5pbmRleE9mKHRoaXMpJiZ0aGlzLl90aW1lbGluZS5fYW5pbWF0aW9ucy5wdXNoKHRoaXMpLHRoaXMuX3JlZ2lzdGVyKCksYi5hd2FpdFN0YXJ0VGltZSh0aGlzKSx0aGlzLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYSl7dmFyIGI9YS5jdXJyZW50VGltZTthLnBsYXkoKSxhLmN1cnJlbnRUaW1lPWJ9KSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxwYXVzZTpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5jdXJyZW50VGltZSYmKHRoaXMuX2hvbGRUaW1lPXRoaXMuY3VycmVudFRpbWUpLHRoaXMuX2FuaW1hdGlvbi5wYXVzZSgpLHRoaXMuX3JlZ2lzdGVyKCksdGhpcy5fZm9yRWFjaENoaWxkKGZ1bmN0aW9uKGEpe2EucGF1c2UoKX0pLHRoaXMuX3BhdXNlZD0hMCx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxmaW5pc2g6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX2FuaW1hdGlvbi5maW5pc2goKSx0aGlzLl9yZWdpc3RlcigpLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGNhbmNlbDpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5fYW5pbWF0aW9uLmNhbmNlbCgpLHRoaXMuX3JlZ2lzdGVyKCksdGhpcy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCksdGhpcy5fdXBkYXRlUHJvbWlzZXMoKX0scmV2ZXJzZTpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCk7dmFyIGE9dGhpcy5jdXJyZW50VGltZTt0aGlzLl9hbmltYXRpb24ucmV2ZXJzZSgpLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihhKXthLnJldmVyc2UoKX0pLG51bGwhPT1hJiYodGhpcy5jdXJyZW50VGltZT1hKSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9YjsiZnVuY3Rpb24iPT10eXBlb2YgYiYmKGM9ZnVuY3Rpb24oYSl7YS50YXJnZXQ9dGhpcyxiLmNhbGwodGhpcyxhKX0uYmluZCh0aGlzKSxiLl93cmFwcGVyPWMpLHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVyKGEsYyl9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXt0aGlzLl9hbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGImJmIuX3dyYXBwZXJ8fGIpfSxfcmVtb3ZlQ2hpbGRBbmltYXRpb25zOmZ1bmN0aW9uKCl7Zm9yKDt0aGlzLl9jaGlsZEFuaW1hdGlvbnMubGVuZ3RoOyl0aGlzLl9jaGlsZEFuaW1hdGlvbnMucG9wKCkuY2FuY2VsKCl9LF9mb3JFYWNoQ2hpbGQ6ZnVuY3Rpb24oYil7dmFyIGM9MDtpZih0aGlzLmVmZmVjdC5jaGlsZHJlbiYmdGhpcy5fY2hpbGRBbmltYXRpb25zLmxlbmd0aDx0aGlzLmVmZmVjdC5jaGlsZHJlbi5sZW5ndGgmJnRoaXMuX2NvbnN0cnVjdENoaWxkQW5pbWF0aW9ucygpLHRoaXMuX2NoaWxkQW5pbWF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2IuY2FsbCh0aGlzLGEsYyksdGhpcy5lZmZlY3QgaW5zdGFuY2VvZiB3aW5kb3cuU2VxdWVuY2VFZmZlY3QmJihjKz1hLmVmZmVjdC5hY3RpdmVEdXJhdGlvbil9LmJpbmQodGhpcykpLCJwZW5kaW5nIiE9dGhpcy5wbGF5U3RhdGUpe3ZhciBkPXRoaXMuZWZmZWN0Ll90aW1pbmcsZT10aGlzLmN1cnJlbnRUaW1lO251bGwhPT1lJiYoZT1hLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGEuY2FsY3VsYXRlQWN0aXZlRHVyYXRpb24oZCksZSxkKSksKG51bGw9PWV8fGlzTmFOKGUpKSYmdGhpcy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCl9fX0sd2luZG93LkFuaW1hdGlvbj1iLkFuaW1hdGlvbn0oYSxjKSxmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChiKXt0aGlzLl9mcmFtZXM9YS5ub3JtYWxpemVLZXlmcmFtZXMoYil9ZnVuY3Rpb24gZSgpe2Zvcih2YXIgYT0hMTtpLmxlbmd0aDspaS5zaGlmdCgpLl91cGRhdGVDaGlsZHJlbigpLGE9ITA7cmV0dXJuIGF9dmFyIGY9ZnVuY3Rpb24oYSl7aWYoYS5fYW5pbWF0aW9uPXZvaWQgMCxhIGluc3RhbmNlb2Ygd2luZG93LlNlcXVlbmNlRWZmZWN0fHxhIGluc3RhbmNlb2Ygd2luZG93Lkdyb3VwRWZmZWN0KWZvcih2YXIgYj0wO2I8YS5jaGlsZHJlbi5sZW5ndGg7YisrKWYoYS5jaGlsZHJlbltiXSl9O2IucmVtb3ZlTXVsdGk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXTtkLl9wYXJlbnQ/KC0xPT1iLmluZGV4T2YoZC5fcGFyZW50KSYmYi5wdXNoKGQuX3BhcmVudCksZC5fcGFyZW50LmNoaWxkcmVuLnNwbGljZShkLl9wYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihkKSwxKSxkLl9wYXJlbnQ9bnVsbCxmKGQpKTpkLl9hbmltYXRpb24mJmQuX2FuaW1hdGlvbi5lZmZlY3Q9PWQmJihkLl9hbmltYXRpb24uY2FuY2VsKCksZC5fYW5pbWF0aW9uLmVmZmVjdD1uZXcgS2V5ZnJhbWVFZmZlY3QobnVsbCxbXSksZC5fYW5pbWF0aW9uLl9jYWxsYmFjayYmKGQuX2FuaW1hdGlvbi5fY2FsbGJhY2suX2FuaW1hdGlvbj1udWxsKSxkLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCksZihkKSl9Zm9yKGM9MDtjPGIubGVuZ3RoO2MrKyliW2NdLl9yZWJ1aWxkKCl9LGIuS2V5ZnJhbWVFZmZlY3Q9ZnVuY3Rpb24oYixjLGUsZil7cmV0dXJuIHRoaXMudGFyZ2V0PWIsdGhpcy5fcGFyZW50PW51bGwsZT1hLm51bWVyaWNUaW1pbmdUb09iamVjdChlKSx0aGlzLl90aW1pbmdJbnB1dD1hLmNsb25lVGltaW5nSW5wdXQoZSksdGhpcy5fdGltaW5nPWEubm9ybWFsaXplVGltaW5nSW5wdXQoZSksdGhpcy50aW1pbmc9YS5tYWtlVGltaW5nKGUsITEsdGhpcyksdGhpcy50aW1pbmcuX2VmZmVjdD10aGlzLCJmdW5jdGlvbiI9PXR5cGVvZiBjPyhhLmRlcHJlY2F0ZWQoIkN1c3RvbSBLZXlmcmFtZUVmZmVjdCIsIjIwMTUtMDYtMjIiLCJVc2UgS2V5ZnJhbWVFZmZlY3Qub25zYW1wbGUgaW5zdGVhZC4iKSx0aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzPWMpOnRoaXMuX25vcm1hbGl6ZWRLZXlmcmFtZXM9bmV3IGQoYyksdGhpcy5fa2V5ZnJhbWVzPWMsdGhpcy5hY3RpdmVEdXJhdGlvbj1hLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKHRoaXMuX3RpbWluZyksdGhpcy5faWQ9Zix0aGlzfSxiLktleWZyYW1lRWZmZWN0LnByb3RvdHlwZT17Z2V0RnJhbWVzOmZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX25vcm1hbGl6ZWRLZXlmcmFtZXM/dGhpcy5fbm9ybWFsaXplZEtleWZyYW1lczp0aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzLl9mcmFtZXN9LHNldCBvbnNhbXBsZShhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5nZXRGcmFtZXMoKSl0aHJvdyBuZXcgRXJyb3IoIlNldHRpbmcgb25zYW1wbGUgb24gY3VzdG9tIGVmZmVjdCBLZXlmcmFtZUVmZmVjdCBpcyBub3Qgc3VwcG9ydGVkLiIpO3RoaXMuX29uc2FtcGxlPWEsdGhpcy5fYW5pbWF0aW9uJiZ0aGlzLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCl9LGdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcGFyZW50fSxjbG9uZTpmdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmdldEZyYW1lcygpKXRocm93IG5ldyBFcnJvcigiQ2xvbmluZyBjdXN0b20gZWZmZWN0cyBpcyBub3Qgc3VwcG9ydGVkLiIpO3ZhciBiPW5ldyBLZXlmcmFtZUVmZmVjdCh0aGlzLnRhcmdldCxbXSxhLmNsb25lVGltaW5nSW5wdXQodGhpcy5fdGltaW5nSW5wdXQpLHRoaXMuX2lkKTtyZXR1cm4gYi5fbm9ybWFsaXplZEtleWZyYW1lcz10aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzLGIuX2tleWZyYW1lcz10aGlzLl9rZXlmcmFtZXMsYn0scmVtb3ZlOmZ1bmN0aW9uKCl7Yi5yZW1vdmVNdWx0aShbdGhpc10pfX07dmFyIGc9RWxlbWVudC5wcm90b3R5cGUuYW5pbWF0ZTtFbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGEsYyl7dmFyIGQ9IiI7cmV0dXJuIGMmJmMuaWQmJihkPWMuaWQpLGIudGltZWxpbmUuX3BsYXkobmV3IGIuS2V5ZnJhbWVFZmZlY3QodGhpcyxhLGMsZCkpfTt2YXIgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkaXYiKTtiLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdD1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1hLnRhcmdldHx8aCxjPWEuX2tleWZyYW1lczsiZnVuY3Rpb24iPT10eXBlb2YgYyYmKGM9W10pO3ZhciBkPWEuX3RpbWluZ0lucHV0O2QuaWQ9YS5faWR9ZWxzZSB2YXIgYj1oLGM9W10sZD0wO3JldHVybiBnLmFwcGx5KGIsW2MsZF0pfSxiLmJpbmRBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdD1mdW5jdGlvbihhKXthLmVmZmVjdCYmImZ1bmN0aW9uIj09dHlwZW9mIGEuZWZmZWN0Ll9ub3JtYWxpemVkS2V5ZnJhbWVzJiZiLmJpbmRBbmltYXRpb25Gb3JDdXN0b21FZmZlY3QoYSl9O3ZhciBpPVtdO2IuYXdhaXRTdGFydFRpbWU9ZnVuY3Rpb24oYSl7bnVsbD09PWEuc3RhcnRUaW1lJiZhLl9pc0dyb3VwJiYoMD09aS5sZW5ndGgmJnJlcXVlc3RBbmltYXRpb25GcmFtZShlKSxpLnB1c2goYSkpfTt2YXIgaj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZTtPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCJnZXRDb21wdXRlZFN0eWxlIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oKXtiLnRpbWVsaW5lLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKTt2YXIgYT1qLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZSgpJiYoYT1qLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYi50aW1lbGluZS5fdXBkYXRlQW5pbWF0aW9uc1Byb21pc2VzKCksYX19KSx3aW5kb3cuS2V5ZnJhbWVFZmZlY3Q9Yi5LZXlmcmFtZUVmZmVjdCx3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QW5pbWF0aW9ucz1mdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC50aW1lbGluZS5nZXRBbmltYXRpb25zKCkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT09YS5lZmZlY3QmJmEuZWZmZWN0LnRhcmdldD09dGhpc30uYmluZCh0aGlzKSl9fShhLGMpLGZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEpe2EuX3JlZ2lzdGVyZWR8fChhLl9yZWdpc3RlcmVkPSEwLGcucHVzaChhKSxofHwoaD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSkpKX1mdW5jdGlvbiBlKGEpe3ZhciBiPWc7Zz1bXSxiLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5fc2VxdWVuY2VOdW1iZXItYi5fc2VxdWVuY2VOdW1iZXJ9KSxiPWIuZmlsdGVyKGZ1bmN0aW9uKGEpe2EoKTt2YXIgYj1hLl9hbmltYXRpb24/YS5fYW5pbWF0aW9uLnBsYXlTdGF0ZToiaWRsZSI7cmV0dXJuInJ1bm5pbmciIT1iJiYicGVuZGluZyIhPWImJihhLl9yZWdpc3RlcmVkPSExKSxhLl9yZWdpc3RlcmVkfSksZy5wdXNoLmFwcGx5KGcsYiksZy5sZW5ndGg/KGg9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpKTpoPSExfXZhciBmPShkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkaXYiKSwwKTtiLmJpbmRBbmltYXRpb25Gb3JDdXN0b21FZmZlY3Q9ZnVuY3Rpb24oYil7dmFyIGMsZT1iLmVmZmVjdC50YXJnZXQsZz0iZnVuY3Rpb24iPT10eXBlb2YgYi5lZmZlY3QuZ2V0RnJhbWVzKCk7Yz1nP2IuZWZmZWN0LmdldEZyYW1lcygpOmIuZWZmZWN0Ll9vbnNhbXBsZTt2YXIgaD1iLmVmZmVjdC50aW1pbmcsaT1udWxsO2g9YS5ub3JtYWxpemVUaW1pbmdJbnB1dChoKTt2YXIgaj1mdW5jdGlvbigpe3ZhciBkPWouX2FuaW1hdGlvbj9qLl9hbmltYXRpb24uY3VycmVudFRpbWU6bnVsbDtudWxsIT09ZCYmKGQ9YS5jYWxjdWxhdGVJdGVyYXRpb25Qcm9ncmVzcyhhLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKGgpLGQsaCksaXNOYU4oZCkmJihkPW51bGwpKSxkIT09aSYmKGc/YyhkLGUsYi5lZmZlY3QpOmMoZCxiLmVmZmVjdCxiLmVmZmVjdC5fYW5pbWF0aW9uKSksaT1kfTtqLl9hbmltYXRpb249YixqLl9yZWdpc3RlcmVkPSExLGouX3NlcXVlbmNlTnVtYmVyPWYrKyxiLl9jYWxsYmFjaz1qLGQoail9O3ZhciBnPVtdLGg9ITE7Yi5BbmltYXRpb24ucHJvdG90eXBlLl9yZWdpc3Rlcj1mdW5jdGlvbigpe3RoaXMuX2NhbGxiYWNrJiZkKHRoaXMuX2NhbGxiYWNrKX19KGEsYyksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7cmV0dXJuIGEuX3RpbWluZy5kZWxheSthLmFjdGl2ZUR1cmF0aW9uK2EuX3RpbWluZy5lbmREZWxheX1mdW5jdGlvbiBlKGIsYyxkKXt0aGlzLl9pZD1kLHRoaXMuX3BhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49Ynx8W10sdGhpcy5fcmVwYXJlbnQodGhpcy5jaGlsZHJlbiksYz1hLm51bWVyaWNUaW1pbmdUb09iamVjdChjKSx0aGlzLl90aW1pbmdJbnB1dD1hLmNsb25lVGltaW5nSW5wdXQoYyksdGhpcy5fdGltaW5nPWEubm9ybWFsaXplVGltaW5nSW5wdXQoYywhMCksdGhpcy50aW1pbmc9YS5tYWtlVGltaW5nKGMsITAsdGhpcyksdGhpcy50aW1pbmcuX2VmZmVjdD10aGlzLCJhdXRvIj09PXRoaXMuX3RpbWluZy5kdXJhdGlvbiYmKHRoaXMuX3RpbWluZy5kdXJhdGlvbj10aGlzLmFjdGl2ZUR1cmF0aW9uKX13aW5kb3cuU2VxdWVuY2VFZmZlY3Q9ZnVuY3Rpb24oKXtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sd2luZG93Lkdyb3VwRWZmZWN0PWZ1bmN0aW9uKCl7ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGUucHJvdG90eXBlPXtfaXNBbmNlc3RvcjpmdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcztudWxsIT09Yjspe2lmKGI9PWEpcmV0dXJuITA7Yj1iLl9wYXJlbnR9cmV0dXJuITF9LF9yZWJ1aWxkOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXM7YTspImF1dG8iPT09YS50aW1pbmcuZHVyYXRpb24mJihhLl90aW1pbmcuZHVyYXRpb249YS5hY3RpdmVEdXJhdGlvbiksYT1hLl9wYXJlbnQ7dGhpcy5fYW5pbWF0aW9uJiZ0aGlzLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCl9LF9yZXBhcmVudDpmdW5jdGlvbihhKXtiLnJlbW92ZU11bHRpKGEpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWFbY10uX3BhcmVudD10aGlzfSxfcHV0Q2hpbGQ6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yj8iQ2Fubm90IGFwcGVuZCBhbiBhbmNlc3RvciBvciBzZWxmIjoiQ2Fubm90IHByZXBlbmQgYW4gYW5jZXN0b3Igb3Igc2VsZiIsZD0wO2Q8YS5sZW5ndGg7ZCsrKWlmKHRoaXMuX2lzQW5jZXN0b3IoYVtkXSkpdGhyb3d7dHlwZTpET01FeGNlcHRpb24uSElFUkFSQ0hZX1JFUVVFU1RfRVJSLG5hbWU6IkhpZXJhcmNoeVJlcXVlc3RFcnJvciIsbWVzc2FnZTpjfTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyliP3RoaXMuY2hpbGRyZW4ucHVzaChhW2RdKTp0aGlzLmNoaWxkcmVuLnVuc2hpZnQoYVtkXSk7dGhpcy5fcmVwYXJlbnQoYSksdGhpcy5fcmVidWlsZCgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXt0aGlzLl9wdXRDaGlsZChhcmd1bWVudHMsITApfSxwcmVwZW5kOmZ1bmN0aW9uKCl7dGhpcy5fcHV0Q2hpbGQoYXJndW1lbnRzLCExKX0sZ2V0IHBhcmVudCgpe3JldHVybiB0aGlzLl9wYXJlbnR9LGdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoP3RoaXMuY2hpbGRyZW5bMF06bnVsbH0sZ2V0IGxhc3RDaGlsZCgpe3JldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD90aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4ubGVuZ3RoLTFdOm51bGx9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciBiPWEuY2xvbmVUaW1pbmdJbnB1dCh0aGlzLl90aW1pbmdJbnB1dCksYz1bXSxkPTA7ZDx0aGlzLmNoaWxkcmVuLmxlbmd0aDtkKyspYy5wdXNoKHRoaXMuY2hpbGRyZW5bZF0uY2xvbmUoKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBHcm91cEVmZmVjdD9uZXcgR3JvdXBFZmZlY3QoYyxiKTpuZXcgU2VxdWVuY2VFZmZlY3QoYyxiKX0scmVtb3ZlOmZ1bmN0aW9uKCl7Yi5yZW1vdmVNdWx0aShbdGhpc10pfX0sd2luZG93LlNlcXVlbmNlRWZmZWN0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNlcXVlbmNlRWZmZWN0LnByb3RvdHlwZSwiYWN0aXZlRHVyYXRpb24iLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiB0aGlzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYil7YSs9ZChiKX0pLE1hdGgubWF4KGEsMCl9fSksd2luZG93Lkdyb3VwRWZmZWN0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93Lkdyb3VwRWZmZWN0LnByb3RvdHlwZSwiYWN0aXZlRHVyYXRpb24iLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiB0aGlzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYil7YT1NYXRoLm1heChhLGQoYikpfSksYX19KSxiLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JHcm91cD1mdW5jdGlvbihjKXt2YXIgZCxlPW51bGwsZj1mdW5jdGlvbihiKXt2YXIgYz1kLl93cmFwcGVyO2lmKGMmJiJwZW5kaW5nIiE9Yy5wbGF5U3RhdGUmJmMuZWZmZWN0KXJldHVybiBudWxsPT1iP3ZvaWQgYy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCk6MD09YiYmYy5wbGF5YmFja1JhdGU8MCYmKGV8fChlPWEubm9ybWFsaXplVGltaW5nSW5wdXQoYy5lZmZlY3QudGltaW5nKSksYj1hLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGEuY2FsY3VsYXRlQWN0aXZlRHVyYXRpb24oZSksLTEsZSksaXNOYU4oYil8fG51bGw9PWIpPyhjLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYSl7YS5jdXJyZW50VGltZT0tMX0pLHZvaWQgYy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCkpOnZvaWQgMH0sZz1uZXcgS2V5ZnJhbWVFZmZlY3QobnVsbCxbXSxjLl90aW1pbmcsYy5faWQpO3JldHVybiBnLm9uc2FtcGxlPWYsZD1iLnRpbWVsaW5lLl9wbGF5KGcpfSxiLmJpbmRBbmltYXRpb25Gb3JHcm91cD1mdW5jdGlvbihhKXthLl9hbmltYXRpb24uX3dyYXBwZXI9YSxhLl9pc0dyb3VwPSEwLGIuYXdhaXRTdGFydFRpbWUoYSksYS5fY29uc3RydWN0Q2hpbGRBbmltYXRpb25zKCksYS5fc2V0RXh0ZXJuYWxBbmltYXRpb24oYSl9LGIuZ3JvdXBDaGlsZER1cmF0aW9uPWR9KGEsYyl9KCk7CgohKGZ1bmN0aW9uKCl7Ci8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uCgogICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuCgogICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEgKICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWQogICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULAogICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NCiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUgogICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUgogICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCmZ1bmN0aW9uIHQodCxlLG4saSl7dmFyIHIsbz1hcmd1bWVudHMubGVuZ3RoLGE9bzwzP2U6bnVsbD09PWk/aT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6aTtpZigib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKWE9UmVmbGVjdC5kZWNvcmF0ZSh0LGUsbixpKTtlbHNlIGZvcih2YXIgcz10Lmxlbmd0aC0xO3M+PTA7cy0tKShyPXRbc10pJiYoYT0obzwzP3IoYSk6bz4zP3IoZSxuLGEpOnIoZSxuKSl8fGEpO3JldHVybiBvPjMmJmEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sYSksYX1mdW5jdGlvbiBlKHQsZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYiZnVuY3Rpb24iPT10eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSlyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YSh0LGUpfWZ1bmN0aW9uIG4odCxlLG4saSl7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKHIsbyl7ZnVuY3Rpb24gYSh0KXt0cnl7bChpLm5leHQodCkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHModCl7dHJ5e2woaS50aHJvdyh0KSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gbCh0KXt0LmRvbmU/cih0LnZhbHVlKTooZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIG4/dDpuZXcgbigoZnVuY3Rpb24oZSl7ZSh0KX0pKX0pKHQudmFsdWUpLnRoZW4oYSxzKX1sKChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kCiAgICAgKiBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5CiAgICAgKiBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5CiAgICAgKiBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQCiAgICAgKiByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi9mdW5jdGlvbiBpKHQpe3JldHVybiBlPT57aWYodClpZihlLmhhc093blByb3BlcnR5KCJpcyIpKXtpZih0IT09ZS5pcyl0aHJvdyBuZXcgRXJyb3IoYGN1c3RvbSBlbGVtZW50IHRhZyBuYW1lcyBkbyBub3QgbWF0Y2g6ICgke3R9ICE9PSAke2UuaXN9KWApfWVsc2UgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImlzIix7dmFsdWU6dH0pO3dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoZS5pcyxlKX19ZnVuY3Rpb24gcih0LGUsbil7dC5jb25zdHJ1Y3Rvci5oYXNPd25Qcm9wZXJ0eSgicHJvcGVydGllcyIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5jb25zdHJ1Y3RvciwicHJvcGVydGllcyIse3ZhbHVlOnt9fSksdC5jb25zdHJ1Y3Rvci5wcm9wZXJ0aWVzW2VdPU9iamVjdC5hc3NpZ24oe30sdC5jb25zdHJ1Y3Rvci5wcm9wZXJ0aWVzW2VdLG4pfWZ1bmN0aW9uIG8odCl7cmV0dXJuKGUsbik9PntyKGUsbix0KX19ZnVuY3Rpb24gYSguLi50KXtyZXR1cm4oZSxuKT0+e2UuY29uc3RydWN0b3IuaGFzT3duUHJvcGVydHkoIm9ic2VydmVycyIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5jb25zdHJ1Y3Rvciwib2JzZXJ2ZXJzIix7dmFsdWU6W119KSxlLmNvbnN0cnVjdG9yLm9ic2VydmVycy5wdXNoKGAke259KCR7dC5qb2luKCIsIil9KWApfX1mdW5jdGlvbiBzKHQsLi4uZSl7cmV0dXJuKG4saSxvKT0+e2NvbnN0IGE9YF9fY29tcHV0ZSR7aX1gO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGEse3ZhbHVlOm8uZ2V0fSksby5nZXQ9dm9pZCAwLHIobixpLHtjb21wdXRlZDpgJHthfSgke1t0LC4uLmVdLmpvaW4oIiwiKX0pYH0pfX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi93aW5kb3cuSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eT1mdW5jdGlvbih0LGUpe3JldHVybiB0fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KbGV0IGwsYyx1PS8odXJsXCgpKFteKV0qKShcKSkvZyxoPS8oXlwvW15cL10pfCheIyl8KF5bXHctXGRdKjopLztmdW5jdGlvbiBkKHQsZSl7aWYodCYmaC50ZXN0KHQpKXJldHVybiB0O2lmKCIvLyI9PT10KXJldHVybiB0O2lmKHZvaWQgMD09PWwpe2w9ITE7dHJ5e2NvbnN0IHQ9bmV3IFVSTCgiYiIsImh0dHA6Ly9hIik7dC5wYXRobmFtZT0iYyUyMGQiLGw9Imh0dHA6Ly9hL2MlMjBkIj09PXQuaHJlZn1jYXRjaCh0KXt9fWlmKGV8fChlPWRvY3VtZW50LmJhc2VVUkl8fHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxsKXRyeXtyZXR1cm4gbmV3IFVSTCh0LGUpLmhyZWZ9Y2F0Y2goZSl7cmV0dXJuIHR9cmV0dXJuIGN8fChjPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgidGVtcCIpLGMuYmFzZT1jLmNyZWF0ZUVsZW1lbnQoImJhc2UiKSxjLmhlYWQuYXBwZW5kQ2hpbGQoYy5iYXNlKSxjLmFuY2hvcj1jLmNyZWF0ZUVsZW1lbnQoImEiKSxjLmJvZHkuYXBwZW5kQ2hpbGQoYy5hbmNob3IpKSxjLmJhc2UuaHJlZj1lLGMuYW5jaG9yLmhyZWY9dCxjLmFuY2hvci5ocmVmfHx0fWZ1bmN0aW9uIHAodCxlKXtyZXR1cm4gdC5yZXBsYWNlKHUsKGZ1bmN0aW9uKHQsbixpLHIpe3JldHVybiBuKyInIitkKGkucmVwbGFjZSgvWyInXS9nLCIiKSxlKSsiJyIrcn0pKX1mdW5jdGlvbiBmKHQpe3JldHVybiB0LnN1YnN0cmluZygwLHQubGFzdEluZGV4T2YoIi8iKSsxKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jb25zdCBtPSF3aW5kb3cuU2hhZHlET018fCF3aW5kb3cuU2hhZHlET00uaW5Vc2U7Qm9vbGVhbighd2luZG93LlNoYWR5Q1NTfHx3aW5kb3cuU2hhZHlDU1MubmF0aXZlQ3NzKTtjb25zdCBnPW0mJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZVN5bmMiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUmJigoKT0+e3RyeXtjb25zdCB0PW5ldyBDU1NTdHlsZVNoZWV0O3QucmVwbGFjZVN5bmMoIiIpO2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGUuYXR0YWNoU2hhZG93KHttb2RlOiJvcGVuIn0pLGUuc2hhZG93Um9vdC5hZG9wdGVkU3R5bGVTaGVldHM9W3RdLGUuc2hhZG93Um9vdC5hZG9wdGVkU3R5bGVTaGVldHNbMF09PT10fWNhdGNoKHQpe3JldHVybiExfX0pKCk7bGV0IF89d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnJvb3RQYXRofHxmKGRvY3VtZW50LmJhc2VVUkl8fHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx5PXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5zYW5pdGl6ZURPTVZhbHVlfHx2b2lkIDAsdj13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIuc2V0UGFzc2l2ZVRvdWNoR2VzdHVyZXN8fCExLGI9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnN0cmljdFRlbXBsYXRlUG9saWN5fHwhMSx4PXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5hbGxvd1RlbXBsYXRlRnJvbURvbU1vZHVsZXx8ITEsdz13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIubGVnYWN5T3B0aW1pemF0aW9uc3x8ITEsUz13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIubGVnYWN5V2FybmluZ3N8fCExLE09d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnN5bmNJbml0aWFsUmVuZGVyfHwhMSxFPXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5sZWdhY3lVbmRlZmluZWR8fCExLFQ9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLm9yZGVyZWRDb21wdXRlZHx8ITEsQz13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIucmVtb3ZlTmVzdGVkVGVtcGxhdGVzfHwhMSxBPXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5mYXN0RG9tSWZ8fCExLGs9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnN1cHByZXNzVGVtcGxhdGVOb3RpZmljYXRpb25zfHwhMSxMPXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5sZWdhY3lOb09ic2VydmVkQXR0cmlidXRlc3x8ITEsUD13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIudXNlQWRvcHRlZFN0eWxlU2hlZXRzV2l0aEJ1aWx0Q1NTfHwhMSxOPTA7Y29uc3QgST1mdW5jdGlvbih0KXtsZXQgZT10Ll9fbWl4aW5BcHBsaWNhdGlvbnM7ZXx8KGU9bmV3IFdlYWtNYXAsdC5fX21peGluQXBwbGljYXRpb25zPWUpO2xldCBuPU4rKztyZXR1cm4gZnVuY3Rpb24gaShyKXtsZXQgbz1yLl9fbWl4aW5TZXQ7aWYobyYmb1tuXSlyZXR1cm4gcjtsZXQgYT1lLHM9YS5nZXQocik7aWYoIXMpe3M9dChyKSxhLnNldChyLHMpO2xldCBlPU9iamVjdC5jcmVhdGUocy5fX21peGluU2V0fHxvfHxudWxsKTtlW25dPSEwLHMuX19taXhpblNldD1lfXJldHVybiBzfX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovbGV0IFI9e30sTz17fTtmdW5jdGlvbiB6KHQsZSl7Ult0XT1PW3QudG9Mb3dlckNhc2UoKV09ZX1mdW5jdGlvbiBEKHQpe3JldHVybiBSW3RdfHxPW3QudG9Mb3dlckNhc2UoKV19Y2xhc3MgQiBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuWyJpZCJdfXN0YXRpYyBpbXBvcnQodCxlKXtpZih0KXtsZXQgbj1EKHQpO3JldHVybiBuJiZlP24ucXVlcnlTZWxlY3RvcihlKTpufXJldHVybiBudWxsfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbixpKXtlIT09biYmdGhpcy5yZWdpc3RlcigpfWdldCBhc3NldHBhdGgoKXtpZighdGhpcy5fX2Fzc2V0cGF0aCl7Y29uc3QgdD13aW5kb3cuSFRNTEltcG9ydHMmJkhUTUxJbXBvcnRzLmltcG9ydEZvckVsZW1lbnQ/SFRNTEltcG9ydHMuaW1wb3J0Rm9yRWxlbWVudCh0aGlzKXx8ZG9jdW1lbnQ6dGhpcy5vd25lckRvY3VtZW50LGU9ZCh0aGlzLmdldEF0dHJpYnV0ZSgiYXNzZXRwYXRoIil8fCIiLHQuYmFzZVVSSSk7dGhpcy5fX2Fzc2V0cGF0aD1mKGUpfXJldHVybiB0aGlzLl9fYXNzZXRwYXRofXJlZ2lzdGVyKHQpe2lmKHQ9dHx8dGhpcy5pZCl7aWYoYiYmdm9pZCAwIT09RCh0KSl0aHJvdyB6KHQsbnVsbCksbmV3IEVycm9yKGBzdHJpY3RUZW1wbGF0ZVBvbGljeTogZG9tLW1vZHVsZSAke3R9IHJlLXJlZ2lzdGVyZWRgKTt0aGlzLmlkPXQseih0LHRoaXMpLChmdW5jdGlvbiBlKHQpe3QucXVlcnlTZWxlY3Rvcigic3R5bGUiKSYmY29uc29sZS53YXJuKCJkb20tbW9kdWxlICVzIGhhcyBzdHlsZSBvdXRzaWRlIHRlbXBsYXRlIix0LmlkKX0pKHRoaXMpfX19Qi5wcm90b3R5cGUubW9kdWxlcz1SLGN1c3RvbUVsZW1lbnRzLmRlZmluZSgiZG9tLW1vZHVsZSIsQik7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IEg9InNoYWR5LXVuc2NvcGVkIjtmdW5jdGlvbiBGKHQpe3JldHVybiBCLmltcG9ydCh0KX1mdW5jdGlvbiBWKHQpe2NvbnN0IGU9cCgodC5ib2R5P3QuYm9keTp0KS50ZXh0Q29udGVudCx0LmJhc2VVUkkpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gbi50ZXh0Q29udGVudD1lLG59ZnVuY3Rpb24gVSh0KXtjb25zdCBlPXQudHJpbSgpLnNwbGl0KC9ccysvKSxuPVtdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW4ucHVzaCguLi5qKGVbdF0pKTtyZXR1cm4gbn1mdW5jdGlvbiBqKHQpe2NvbnN0IGU9Rih0KTtpZighZSlyZXR1cm4gY29uc29sZS53YXJuKCJDb3VsZCBub3QgZmluZCBzdHlsZSBkYXRhIGluIG1vZHVsZSBuYW1lZCIsdCksW107aWYodm9pZCAwPT09ZS5fc3R5bGVzKXtjb25zdCB0PVtdO3QucHVzaCguLi5XKGUpKTtjb25zdCBuPWUucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKTtuJiZ0LnB1c2goLi4uRyhuLGUuYXNzZXRwYXRoKSksZS5fc3R5bGVzPXR9cmV0dXJuIGUuX3N0eWxlc31mdW5jdGlvbiBHKHQsZSl7aWYoIXQuX3N0eWxlcyl7Y29uc3Qgbj1bXSxpPXQuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZSIpO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXtsZXQgcj1pW3RdLG89ci5nZXRBdHRyaWJ1dGUoImluY2x1ZGUiKTtvJiZuLnB1c2goLi4uVShvKS5maWx0ZXIoKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbi5pbmRleE9mKHQpPT09ZX0pKSksZSYmKHIudGV4dENvbnRlbnQ9cChyLnRleHRDb250ZW50LGUpKSxuLnB1c2gocil9dC5fc3R5bGVzPW59cmV0dXJuIHQuX3N0eWxlc31mdW5jdGlvbiBXKHQpe2NvbnN0IGU9W10sbj10LnF1ZXJ5U2VsZWN0b3JBbGwoImxpbmtbcmVsPWltcG9ydF1bdHlwZX49Y3NzXSIpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtsZXQgaT1uW3RdO2lmKGkuaW1wb3J0KXtjb25zdCB0PWkuaW1wb3J0LG49aS5oYXNBdHRyaWJ1dGUoSCk7aWYobiYmIXQuX3Vuc2NvcGVkU3R5bGUpe2NvbnN0IGU9Vih0KTtlLnNldEF0dHJpYnV0ZShILCIiKSx0Ll91bnNjb3BlZFN0eWxlPWV9ZWxzZSB0Ll9zdHlsZXx8KHQuX3N0eWxlPVYodCkpO2UucHVzaChuP3QuX3Vuc2NvcGVkU3R5bGU6dC5fc3R5bGUpfX1yZXR1cm4gZX1mdW5jdGlvbiBxKHQpe2xldCBlPUYodCk7aWYoZSYmdm9pZCAwPT09ZS5fY3NzVGV4dCl7bGV0IHQ9KGZ1bmN0aW9uIG4odCl7bGV0IGU9IiIsbj1XKHQpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKWUrPW5bdF0udGV4dENvbnRlbnQ7cmV0dXJuIGV9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovKShlKSxuPWUucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKTtuJiYodCs9KGZ1bmN0aW9uIGkodCxlKXtsZXQgbj0iIjtjb25zdCBpPUcodCxlKTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyl7bGV0IGU9aVt0XTtlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxuKz1lLnRleHRDb250ZW50fXJldHVybiBufSkobixlLmFzc2V0cGF0aCkpLGUuX2Nzc1RleHQ9dHx8bnVsbH1yZXR1cm4gZXx8Y29uc29sZS53YXJuKCJDb3VsZCBub3QgZmluZCBzdHlsZSBkYXRhIGluIG1vZHVsZSBuYW1lZCIsdCksZSYmZS5fY3NzVGV4dHx8IiJ9Y29uc3QgWT13aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5ub1BhdGNoJiZ3aW5kb3cuU2hhZHlET00ud3JhcD93aW5kb3cuU2hhZHlET00ud3JhcDp3aW5kb3cuU2hhZHlET00/dD0+U2hhZHlET00ucGF0Y2godCk6dD0+dDsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9mdW5jdGlvbiBYKHQpe3JldHVybiB0LmluZGV4T2YoIi4iKT49MH1mdW5jdGlvbiAkKHQpe2xldCBlPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09ZT90OnQuc2xpY2UoMCxlKX1mdW5jdGlvbiBLKHQsZSl7cmV0dXJuIDA9PT10LmluZGV4T2YoZSsiLiIpfWZ1bmN0aW9uIFoodCxlKXtyZXR1cm4gMD09PWUuaW5kZXhPZih0KyIuIil9ZnVuY3Rpb24gSih0LGUsbil7cmV0dXJuIGUrbi5zbGljZSh0Lmxlbmd0aCl9ZnVuY3Rpb24gUSh0LGUpe3JldHVybiB0PT09ZXx8Syh0LGUpfHxaKHQsZSl9ZnVuY3Rpb24gdHQodCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGU9W107Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2xldCBpPXRbbl0udG9TdHJpbmcoKS5zcGxpdCgiLiIpO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKWUucHVzaChpW3RdKX1yZXR1cm4gZS5qb2luKCIuIil9cmV0dXJuIHR9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dHQodCkuc3BsaXQoIi4iKTp0LnRvU3RyaW5nKCkuc3BsaXQoIi4iKX1mdW5jdGlvbiBudCh0LGUsbil7bGV0IGk9dCxyPWV0KGUpO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXtpZighaSlyZXR1cm47aT1pW3JbdF1dfXJldHVybiBuJiYobi5wYXRoPXIuam9pbigiLiIpKSxpfWZ1bmN0aW9uIGl0KHQsZSxuKXtsZXQgaT10LHI9ZXQoZSksbz1yW3IubGVuZ3RoLTFdO2lmKHIubGVuZ3RoPjEpe2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGgtMTt0KyspaWYoaT1pW3JbdF1dLCFpKXJldHVybjtpW29dPW59ZWxzZSBpW2VdPW47cmV0dXJuIHIuam9pbigiLiIpfQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2NvbnN0IHJ0PXt9LG90PS8tW2Etel0vZyxhdD0vKFtBLVpdKS9nO2Z1bmN0aW9uIHN0KHQpe3JldHVybiBydFt0XXx8KHJ0W3RdPXQuaW5kZXhPZigiLSIpPDA/dDp0LnJlcGxhY2Uob3QsKHQ9PnRbMV0udG9VcHBlckNhc2UoKSkpKX1mdW5jdGlvbiBsdCh0KXtyZXR1cm4gcnRbdF18fChydFt0XT10LnJlcGxhY2UoYXQsIi0kMSIpLnRvTG93ZXJDYXNlKCkpfQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2xldCBjdD0wLHV0PTAsaHQ9W10sZHQ9MCxwdD0hMSxmdD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIik7bmV3IHdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKChmdW5jdGlvbiBtdCgpe3B0PSExO2NvbnN0IHQ9aHQubGVuZ3RoO2ZvcihsZXQgZT0wO2U8dDtlKyspe2xldCB0PWh0W2VdO2lmKHQpdHJ5e3QoKX1jYXRjaCh0KXtzZXRUaW1lb3V0KCgoKT0+e3Rocm93IHR9KSl9fWh0LnNwbGljZSgwLHQpLHV0Kz10fSkpLm9ic2VydmUoZnQse2NoYXJhY3RlckRhdGE6ITB9KTtjb25zdCBndD17YWZ0ZXI6dD0+KHtydW46ZT0+d2luZG93LnNldFRpbWVvdXQoZSx0KSxjYW5jZWwodCl7d2luZG93LmNsZWFyVGltZW91dCh0KX19KSxydW46KHQsZSk9PndpbmRvdy5zZXRUaW1lb3V0KHQsZSksY2FuY2VsKHQpe3dpbmRvdy5jbGVhclRpbWVvdXQodCl9fSxfdD17cnVuOnQ9PndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCksY2FuY2VsKHQpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0KX19LHl0PXtydW46dD0+d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2s/d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2sodCk6d2luZG93LnNldFRpbWVvdXQodCwxNiksY2FuY2VsKHQpe3dpbmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2s/d2luZG93LmNhbmNlbElkbGVDYWxsYmFjayh0KTp3aW5kb3cuY2xlYXJUaW1lb3V0KHQpfX0sdnQ9e3J1bjp0PT4ocHR8fChwdD0hMCxmdC50ZXh0Q29udGVudD1kdCsrKSxodC5wdXNoKHQpLGN0KyspLGNhbmNlbCh0KXtjb25zdCBlPXQtdXQ7aWYoZT49MCl7aWYoIWh0W2VdKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBhc3luYyBoYW5kbGU6ICIrdCk7aHRbZV09bnVsbH19fSxidD12dCx4dD1JKCh0PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGNyZWF0ZVByb3BlcnRpZXModCl7Y29uc3QgZT10aGlzLnByb3RvdHlwZTtmb3IobGV0IG4gaW4gdCluIGluIGV8fGUuX2NyZWF0ZVByb3BlcnR5QWNjZXNzb3Iobil9c3RhdGljIGF0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eSh0KXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfXN0YXRpYyB0eXBlRm9yUHJvcGVydHkodCl7fV9jcmVhdGVQcm9wZXJ0eUFjY2Vzc29yKHQsZSl7dGhpcy5fYWRkUHJvcGVydHlUb0F0dHJpYnV0ZU1hcCh0KSx0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fZGF0YUhhc0FjY2Vzc29yIix0aGlzKSl8fCh0aGlzLl9fZGF0YUhhc0FjY2Vzc29yPU9iamVjdC5hc3NpZ24oe30sdGhpcy5fX2RhdGFIYXNBY2Nlc3NvcikpLHRoaXMuX19kYXRhSGFzQWNjZXNzb3JbdF18fCh0aGlzLl9fZGF0YUhhc0FjY2Vzc29yW3RdPSEwLHRoaXMuX2RlZmluZVByb3BlcnR5QWNjZXNzb3IodCxlKSl9X2FkZFByb3BlcnR5VG9BdHRyaWJ1dGVNYXAodCl7dGhpcy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX2RhdGFBdHRyaWJ1dGVzIix0aGlzKSl8fCh0aGlzLl9fZGF0YUF0dHJpYnV0ZXM9T2JqZWN0LmFzc2lnbih7fSx0aGlzLl9fZGF0YUF0dHJpYnV0ZXMpKTtsZXQgZT10aGlzLl9fZGF0YUF0dHJpYnV0ZXNbdF07cmV0dXJuIGV8fChlPXRoaXMuY29uc3RydWN0b3IuYXR0cmlidXRlTmFtZUZvclByb3BlcnR5KHQpLHRoaXMuX19kYXRhQXR0cmlidXRlc1tlXT10KSxlfV9kZWZpbmVQcm9wZXJ0eUFjY2Vzc29yKHQsZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7Z2V0KCl7cmV0dXJuIHRoaXMuX19kYXRhW3RdfSxzZXQ6ZT9mdW5jdGlvbigpe306ZnVuY3Rpb24oZSl7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5KHQsZSwhMCkmJnRoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9fSl9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX19kYXRhRW5hYmxlZD0hMSx0aGlzLl9fZGF0YVJlYWR5PSExLHRoaXMuX19kYXRhSW52YWxpZD0hMSx0aGlzLl9fZGF0YT17fSx0aGlzLl9fZGF0YVBlbmRpbmc9bnVsbCx0aGlzLl9fZGF0YU9sZD1udWxsLHRoaXMuX19kYXRhSW5zdGFuY2VQcm9wcz1udWxsLHRoaXMuX19kYXRhQ291bnRlcj0wLHRoaXMuX19zZXJpYWxpemluZz0hMSx0aGlzLl9pbml0aWFsaXplUHJvcGVydGllcygpfXJlYWR5KCl7dGhpcy5fX2RhdGFSZWFkeT0hMCx0aGlzLl9mbHVzaFByb3BlcnRpZXMoKX1faW5pdGlhbGl6ZVByb3BlcnRpZXMoKXtmb3IobGV0IHQgaW4gdGhpcy5fX2RhdGFIYXNBY2Nlc3Nvcil0aGlzLmhhc093blByb3BlcnR5KHQpJiYodGhpcy5fX2RhdGFJbnN0YW5jZVByb3BzPXRoaXMuX19kYXRhSW5zdGFuY2VQcm9wc3x8e30sdGhpcy5fX2RhdGFJbnN0YW5jZVByb3BzW3RdPXRoaXNbdF0sZGVsZXRlIHRoaXNbdF0pfV9pbml0aWFsaXplSW5zdGFuY2VQcm9wZXJ0aWVzKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX1fc2V0UHJvcGVydHkodCxlKXt0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHkodCxlKSYmdGhpcy5faW52YWxpZGF0ZVByb3BlcnRpZXMoKX1fZ2V0UHJvcGVydHkodCl7cmV0dXJuIHRoaXMuX19kYXRhW3RdfV9zZXRQZW5kaW5nUHJvcGVydHkodCxlLG4pe2xldCBpPXRoaXMuX19kYXRhW3RdLHI9dGhpcy5fc2hvdWxkUHJvcGVydHlDaGFuZ2UodCxlLGkpO3JldHVybiByJiYodGhpcy5fX2RhdGFQZW5kaW5nfHwodGhpcy5fX2RhdGFQZW5kaW5nPXt9LHRoaXMuX19kYXRhT2xkPXt9KSx0aGlzLl9fZGF0YU9sZCYmISh0IGluIHRoaXMuX19kYXRhT2xkKSYmKHRoaXMuX19kYXRhT2xkW3RdPWkpLHRoaXMuX19kYXRhW3RdPWUsdGhpcy5fX2RhdGFQZW5kaW5nW3RdPWUpLHJ9X2lzUHJvcGVydHlQZW5kaW5nKHQpe3JldHVybiEoIXRoaXMuX19kYXRhUGVuZGluZ3x8IXRoaXMuX19kYXRhUGVuZGluZy5oYXNPd25Qcm9wZXJ0eSh0KSl9X2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl7IXRoaXMuX19kYXRhSW52YWxpZCYmdGhpcy5fX2RhdGFSZWFkeSYmKHRoaXMuX19kYXRhSW52YWxpZD0hMCxidC5ydW4oKCgpPT57dGhpcy5fX2RhdGFJbnZhbGlkJiYodGhpcy5fX2RhdGFJbnZhbGlkPSExLHRoaXMuX2ZsdXNoUHJvcGVydGllcygpKX0pKSl9X2VuYWJsZVByb3BlcnRpZXMoKXt0aGlzLl9fZGF0YUVuYWJsZWR8fCh0aGlzLl9fZGF0YUVuYWJsZWQ9ITAsdGhpcy5fX2RhdGFJbnN0YW5jZVByb3BzJiYodGhpcy5faW5pdGlhbGl6ZUluc3RhbmNlUHJvcGVydGllcyh0aGlzLl9fZGF0YUluc3RhbmNlUHJvcHMpLHRoaXMuX19kYXRhSW5zdGFuY2VQcm9wcz1udWxsKSx0aGlzLnJlYWR5KCkpfV9mbHVzaFByb3BlcnRpZXMoKXt0aGlzLl9fZGF0YUNvdW50ZXIrKztjb25zdCB0PXRoaXMuX19kYXRhLGU9dGhpcy5fX2RhdGFQZW5kaW5nLG49dGhpcy5fX2RhdGFPbGQ7dGhpcy5fc2hvdWxkUHJvcGVydGllc0NoYW5nZSh0LGUsbikmJih0aGlzLl9fZGF0YVBlbmRpbmc9bnVsbCx0aGlzLl9fZGF0YU9sZD1udWxsLHRoaXMuX3Byb3BlcnRpZXNDaGFuZ2VkKHQsZSxuKSksdGhpcy5fX2RhdGFDb3VudGVyLS19X3Nob3VsZFByb3BlcnRpZXNDaGFuZ2UodCxlLG4pe3JldHVybiBCb29sZWFuKGUpfV9wcm9wZXJ0aWVzQ2hhbmdlZCh0LGUsbil7fV9zaG91bGRQcm9wZXJ0eUNoYW5nZSh0LGUsbil7cmV0dXJuIG4hPT1lJiYobj09bnx8ZT09ZSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuLGkpe2UhPT1uJiZ0aGlzLl9hdHRyaWJ1dGVUb1Byb3BlcnR5KHQsbiksc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrJiZzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4saSl9X2F0dHJpYnV0ZVRvUHJvcGVydHkodCxlLG4pe2lmKCF0aGlzLl9fc2VyaWFsaXppbmcpe2NvbnN0IGk9dGhpcy5fX2RhdGFBdHRyaWJ1dGVzLHI9aSYmaVt0XXx8dDt0aGlzW3JdPXRoaXMuX2Rlc2VyaWFsaXplVmFsdWUoZSxufHx0aGlzLmNvbnN0cnVjdG9yLnR5cGVGb3JQcm9wZXJ0eShyKSl9fV9wcm9wZXJ0eVRvQXR0cmlidXRlKHQsZSxuKXt0aGlzLl9fc2VyaWFsaXppbmc9ITAsdGhpcy5fdmFsdWVUb05vZGVBdHRyaWJ1dGUodGhpcyxuPWFyZ3VtZW50cy5sZW5ndGg8Mz90aGlzW3RdOm4sZXx8dGhpcy5jb25zdHJ1Y3Rvci5hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkodCkpLHRoaXMuX19zZXJpYWxpemluZz0hMX1fdmFsdWVUb05vZGVBdHRyaWJ1dGUodCxlLG4pe2NvbnN0IGk9dGhpcy5fc2VyaWFsaXplVmFsdWUoZSk7ImNsYXNzIiE9PW4mJiJuYW1lIiE9PW4mJiJzbG90IiE9PW58fCh0PVkodCkpLHZvaWQgMD09PWk/dC5yZW1vdmVBdHRyaWJ1dGUobik6dC5zZXRBdHRyaWJ1dGUobixpKX1fc2VyaWFsaXplVmFsdWUodCl7c3dpdGNoKHR5cGVvZiB0KXtjYXNlImJvb2xlYW4iOnJldHVybiB0PyIiOnZvaWQgMDtkZWZhdWx0OnJldHVybiBudWxsIT10P3QudG9TdHJpbmcoKTp2b2lkIDB9fV9kZXNlcmlhbGl6ZVZhbHVlKHQsZSl7c3dpdGNoKGUpe2Nhc2UgQm9vbGVhbjpyZXR1cm4gbnVsbCE9PXQ7Y2FzZSBOdW1iZXI6cmV0dXJuIE51bWJlcih0KTtkZWZhdWx0OnJldHVybiB0fX19KSksd3Q9e307bGV0IFN0PUhUTUxFbGVtZW50LnByb3RvdHlwZTtmb3IoO1N0Oyl7bGV0IHQ9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoU3QpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXd0W3RbZV1dPSEwO1N0PU9iamVjdC5nZXRQcm90b3R5cGVPZihTdCl9Y29uc3QgTXQ9SSgodD0+e2NvbnN0IGU9eHQodCk7cmV0dXJuIGNsYXNzIGV4dGVuZHMgZXtzdGF0aWMgY3JlYXRlUHJvcGVydGllc0ZvckF0dHJpYnV0ZXMoKXtsZXQgdD10aGlzLm9ic2VydmVkQXR0cmlidXRlcztmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLnByb3RvdHlwZS5fY3JlYXRlUHJvcGVydHlBY2Nlc3NvcihzdCh0W2VdKSl9c3RhdGljIGF0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eSh0KXtyZXR1cm4gbHQodCl9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7dGhpcy5fX2RhdGFQcm90byYmKHRoaXMuX2luaXRpYWxpemVQcm90b1Byb3BlcnRpZXModGhpcy5fX2RhdGFQcm90byksdGhpcy5fX2RhdGFQcm90bz1udWxsKSxzdXBlci5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKX1faW5pdGlhbGl6ZVByb3RvUHJvcGVydGllcyh0KXtmb3IobGV0IGUgaW4gdCl0aGlzLl9zZXRQcm9wZXJ0eShlLHRbZV0pfV9lbnN1cmVBdHRyaWJ1dGUodCxlKXt0aGlzLmhhc0F0dHJpYnV0ZSh0KXx8dGhpcy5fdmFsdWVUb05vZGVBdHRyaWJ1dGUodGhpcyxlLHQpfV9zZXJpYWxpemVWYWx1ZSh0KXtzd2l0Y2godHlwZW9mIHQpe2Nhc2Uib2JqZWN0IjppZih0IGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gdC50b1N0cmluZygpO2lmKHQpdHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jYXRjaCh0KXtyZXR1cm4iIn1kZWZhdWx0OnJldHVybiBzdXBlci5fc2VyaWFsaXplVmFsdWUodCl9fV9kZXNlcmlhbGl6ZVZhbHVlKHQsZSl7bGV0IG47c3dpdGNoKGUpe2Nhc2UgT2JqZWN0OnRyeXtuPUpTT04ucGFyc2UodCl9Y2F0Y2goZSl7bj10fWJyZWFrO2Nhc2UgQXJyYXk6dHJ5e249SlNPTi5wYXJzZSh0KX1jYXRjaChlKXtuPW51bGwsY29uc29sZS53YXJuKGBQb2x5bWVyOjpBdHRyaWJ1dGVzOiBjb3VsZG4ndCBkZWNvZGUgQXJyYXkgYXMgSlNPTjogJHt0fWApfWJyZWFrO2Nhc2UgRGF0ZTpuPWlzTmFOKHQpP1N0cmluZyh0KTpOdW1iZXIodCksbj1uZXcgRGF0ZShuKTticmVhaztkZWZhdWx0Om49c3VwZXIuX2Rlc2VyaWFsaXplVmFsdWUodCxlKX1yZXR1cm4gbn1fZGVmaW5lUHJvcGVydHlBY2Nlc3Nvcih0LGUpeyEoZnVuY3Rpb24gbih0LGUpe2lmKCF3dFtlXSl7bGV0IG49dFtlXTt2b2lkIDAhPT1uJiYodC5fX2RhdGE/dC5fc2V0UGVuZGluZ1Byb3BlcnR5KGUsbik6KHQuX19kYXRhUHJvdG8/dC5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX2RhdGFQcm90byIsdCkpfHwodC5fX2RhdGFQcm90bz1PYmplY3QuY3JlYXRlKHQuX19kYXRhUHJvdG8pKTp0Ll9fZGF0YVByb3RvPXt9LHQuX19kYXRhUHJvdG9bZV09bikpfX0pKHRoaXMsdCksc3VwZXIuX2RlZmluZVByb3BlcnR5QWNjZXNzb3IodCxlKX1faGFzQWNjZXNzb3IodCl7cmV0dXJuIHRoaXMuX19kYXRhSGFzQWNjZXNzb3ImJnRoaXMuX19kYXRhSGFzQWNjZXNzb3JbdF19X2lzUHJvcGVydHlQZW5kaW5nKHQpe3JldHVybiBCb29sZWFuKHRoaXMuX19kYXRhUGVuZGluZyYmdCBpbiB0aGlzLl9fZGF0YVBlbmRpbmcpfX19KSksRXQ9eyJkb20taWYiOiEwLCJkb20tcmVwZWF0IjohMH07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovbGV0IFR0PSExLEN0PSExO2Z1bmN0aW9uIEF0KHQpe2xldCBlPXQuZ2V0QXR0cmlidXRlKCJpcyIpO2lmKGUmJkV0W2VdKXtsZXQgbj10O2ZvcihuLnJlbW92ZUF0dHJpYnV0ZSgiaXMiKSx0PW4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpLG4ucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQodCxuKSx0LmFwcGVuZENoaWxkKG4pO24uYXR0cmlidXRlcy5sZW5ndGg7KXQuc2V0QXR0cmlidXRlKG4uYXR0cmlidXRlc1swXS5uYW1lLG4uYXR0cmlidXRlc1swXS52YWx1ZSksbi5yZW1vdmVBdHRyaWJ1dGUobi5hdHRyaWJ1dGVzWzBdLm5hbWUpfXJldHVybiB0fWZ1bmN0aW9uIGt0KHQsZSl7bGV0IG49ZS5wYXJlbnRJbmZvJiZrdCh0LGUucGFyZW50SW5mbyk7aWYoIW4pcmV0dXJuIHQ7Zm9yKGxldCB0PW4uZmlyc3RDaGlsZCxpPTA7dDt0PXQubmV4dFNpYmxpbmcpaWYoZS5wYXJlbnRJbmRleD09PWkrKylyZXR1cm4gdH1mdW5jdGlvbiBMdCh0LGUsbixpKXtpLmlkJiYoZVtpLmlkXT1uKX1mdW5jdGlvbiBQdCh0LGUsbil7aWYobi5ldmVudHMmJm4uZXZlbnRzLmxlbmd0aClmb3IobGV0IGkscj0wLG89bi5ldmVudHM7cjxvLmxlbmd0aCYmKGk9b1tyXSk7cisrKXQuX2FkZE1ldGhvZEV2ZW50TGlzdGVuZXJUb05vZGUoZSxpLm5hbWUsaS52YWx1ZSx0KX1mdW5jdGlvbiBOdCh0LGUsbixpKXtuLnRlbXBsYXRlSW5mbyYmKGUuX3RlbXBsYXRlSW5mbz1uLnRlbXBsYXRlSW5mbyxlLl9wYXJlbnRUZW1wbGF0ZUluZm89aSl9Y29uc3QgSXQ9SSgodD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBfcGFyc2VUZW1wbGF0ZSh0LGUpe2lmKCF0Ll90ZW1wbGF0ZUluZm8pe2xldCBuPXQuX3RlbXBsYXRlSW5mbz17fTtuLm5vZGVJbmZvTGlzdD1bXSxuLm5lc3RlZFRlbXBsYXRlPUJvb2xlYW4oZSksbi5zdHJpcFdoaXRlU3BhY2U9ZSYmZS5zdHJpcFdoaXRlU3BhY2V8fHQuaGFzQXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiksdGhpcy5fcGFyc2VUZW1wbGF0ZUNvbnRlbnQodCxuLHtwYXJlbnQ6bnVsbH0pfXJldHVybiB0Ll90ZW1wbGF0ZUluZm99c3RhdGljIF9wYXJzZVRlbXBsYXRlQ29udGVudCh0LGUsbil7cmV0dXJuIHRoaXMuX3BhcnNlVGVtcGxhdGVOb2RlKHQuY29udGVudCxlLG4pfXN0YXRpYyBfcGFyc2VUZW1wbGF0ZU5vZGUodCxlLG4pe2xldCBpPSExLHI9dDtyZXR1cm4idGVtcGxhdGUiIT1yLmxvY2FsTmFtZXx8ci5oYXNBdHRyaWJ1dGUoInByZXNlcnZlLWNvbnRlbnQiKT8ic2xvdCI9PT1yLmxvY2FsTmFtZSYmKGUuaGFzSW5zZXJ0aW9uUG9pbnQ9ITApOmk9dGhpcy5fcGFyc2VUZW1wbGF0ZU5lc3RlZFRlbXBsYXRlKHIsZSxuKXx8aSwoZnVuY3Rpb24gbyh0KXsoZnVuY3Rpb24gZSgpe2lmKCFUdCl7VHQ9ITA7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO3QucGxhY2Vob2xkZXI9ImEiLEN0PXQucGxhY2Vob2xkZXI9PT10LnRleHRDb250ZW50fXJldHVybiBDdH0pKCkmJiJ0ZXh0YXJlYSI9PT10LmxvY2FsTmFtZSYmdC5wbGFjZWhvbGRlciYmdC5wbGFjZWhvbGRlcj09PXQudGV4dENvbnRlbnQmJih0LnRleHRDb250ZW50PW51bGwpfSkociksci5maXJzdENoaWxkJiZ0aGlzLl9wYXJzZVRlbXBsYXRlQ2hpbGROb2RlcyhyLGUsbiksci5oYXNBdHRyaWJ1dGVzJiZyLmhhc0F0dHJpYnV0ZXMoKSYmKGk9dGhpcy5fcGFyc2VUZW1wbGF0ZU5vZGVBdHRyaWJ1dGVzKHIsZSxuKXx8aSksaXx8bi5ub3RlZH1zdGF0aWMgX3BhcnNlVGVtcGxhdGVDaGlsZE5vZGVzKHQsZSxuKXtpZigic2NyaXB0IiE9PXQubG9jYWxOYW1lJiYic3R5bGUiIT09dC5sb2NhbE5hbWUpZm9yKGxldCBpLHI9dC5maXJzdENoaWxkLG89MDtyO3I9aSl7aWYoInRlbXBsYXRlIj09ci5sb2NhbE5hbWUmJihyPUF0KHIpKSxpPXIubmV4dFNpYmxpbmcsci5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXtsZXQgbj1pO2Zvcig7biYmbi5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFOylyLnRleHRDb250ZW50Kz1uLnRleHRDb250ZW50LGk9bi5uZXh0U2libGluZyx0LnJlbW92ZUNoaWxkKG4pLG49aTtpZihlLnN0cmlwV2hpdGVTcGFjZSYmIXIudGV4dENvbnRlbnQudHJpbSgpKXt0LnJlbW92ZUNoaWxkKHIpO2NvbnRpbnVlfX1sZXQgYT17cGFyZW50SW5kZXg6byxwYXJlbnRJbmZvOm59O3RoaXMuX3BhcnNlVGVtcGxhdGVOb2RlKHIsZSxhKSYmKGEuaW5mb0luZGV4PWUubm9kZUluZm9MaXN0LnB1c2goYSktMSksci5wYXJlbnROb2RlJiZvKyt9fXN0YXRpYyBfcGFyc2VUZW1wbGF0ZU5lc3RlZFRlbXBsYXRlKHQsZSxuKXtsZXQgaT10LHI9dGhpcy5fcGFyc2VUZW1wbGF0ZShpLGUpO3JldHVybihyLmNvbnRlbnQ9aS5jb250ZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKS5hcHBlbmRDaGlsZChpLmNvbnRlbnQpLG4udGVtcGxhdGVJbmZvPXIsITB9c3RhdGljIF9wYXJzZVRlbXBsYXRlTm9kZUF0dHJpYnV0ZXModCxlLG4pe2xldCBpPSExLHI9QXJyYXkuZnJvbSh0LmF0dHJpYnV0ZXMpO2ZvcihsZXQgbyxhPXIubGVuZ3RoLTE7bz1yW2FdO2EtLSlpPXRoaXMuX3BhcnNlVGVtcGxhdGVOb2RlQXR0cmlidXRlKHQsZSxuLG8ubmFtZSxvLnZhbHVlKXx8aTtyZXR1cm4gaX1zdGF0aWMgX3BhcnNlVGVtcGxhdGVOb2RlQXR0cmlidXRlKHQsZSxuLGkscil7cmV0dXJuIm9uLSI9PT1pLnNsaWNlKDAsMyk/KHQucmVtb3ZlQXR0cmlidXRlKGkpLG4uZXZlbnRzPW4uZXZlbnRzfHxbXSxuLmV2ZW50cy5wdXNoKHtuYW1lOmkuc2xpY2UoMyksdmFsdWU6cn0pLCEwKToiaWQiPT09aSYmKG4uaWQ9ciwhMCl9c3RhdGljIF9jb250ZW50Rm9yVGVtcGxhdGUodCl7bGV0IGU9dC5fdGVtcGxhdGVJbmZvO3JldHVybiBlJiZlLmNvbnRlbnR8fHQuY29udGVudH1fc3RhbXBUZW1wbGF0ZSh0LGUpe3QmJiF0LmNvbnRlbnQmJndpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50JiZIVE1MVGVtcGxhdGVFbGVtZW50LmRlY29yYXRlJiZIVE1MVGVtcGxhdGVFbGVtZW50LmRlY29yYXRlKHQpO2xldCBuPShlPWV8fHRoaXMuY29uc3RydWN0b3IuX3BhcnNlVGVtcGxhdGUodCkpLm5vZGVJbmZvTGlzdCxpPWRvY3VtZW50LmltcG9ydE5vZGUoZS5jb250ZW50fHx0LmNvbnRlbnQsITApO2kuX19ub0luc2VydGlvblBvaW50PSFlLmhhc0luc2VydGlvblBvaW50O2xldCByPWkubm9kZUxpc3Q9bmV3IEFycmF5KG4ubGVuZ3RoKTtpLiQ9e307Zm9yKGxldCB0LG89MCxhPW4ubGVuZ3RoO288YSYmKHQ9bltvXSk7bysrKXtsZXQgbj1yW29dPWt0KGksdCk7THQoMCxpLiQsbix0KSxOdCgwLG4sdCxlKSxQdCh0aGlzLG4sdCl9cmV0dXJuIGk9aSxpfV9hZGRNZXRob2RFdmVudExpc3RlbmVyVG9Ob2RlKHQsZSxuLGkpe2xldCByPShmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gdD10Ll9tZXRob2RIb3N0fHx0LGZ1bmN0aW9uKGUpe3Rbbl0/dFtuXShlLGUuZGV0YWlsKTpjb25zb2xlLndhcm4oImxpc3RlbmVyIG1ldGhvZCBgIituKyJgIG5vdCBkZWZpbmVkIil9fSkoaT1pfHx0LDAsbik7cmV0dXJuIHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodCxlLHIpLHJ9X2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodCxlLG4pe3QuYWRkRXZlbnRMaXN0ZW5lcihlLG4pfV9yZW1vdmVFdmVudExpc3RlbmVyRnJvbU5vZGUodCxlLG4pe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4pfX0pKTsKLyoqCiAgICAgKiBAZmlsZW92ZXJ2aWV3CiAgICAgKiBAc3VwcHJlc3Mge2NoZWNrUHJvdG90eXBhbFR5cGVzfQogICAgICogQGxpY2Vuc2UgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQKICAgICAqIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkKICAgICAqIGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkKICAgICAqIEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAKICAgICAqIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqL2xldCBSdD0wO2NvbnN0IE90PVtdLHp0PXtDT01QVVRFOiJfX2NvbXB1dGVFZmZlY3RzIixSRUZMRUNUOiJfX3JlZmxlY3RFZmZlY3RzIixOT1RJRlk6Il9fbm90aWZ5RWZmZWN0cyIsUFJPUEFHQVRFOiJfX3Byb3BhZ2F0ZUVmZmVjdHMiLE9CU0VSVkU6Il9fb2JzZXJ2ZUVmZmVjdHMiLFJFQURfT05MWToiX19yZWFkT25seSJ9LER0PS9bQS1aXS87ZnVuY3Rpb24gQnQodCxlLG4pe2xldCBpPXRbZV07aWYoaSl7aWYoIXQuaGFzT3duUHJvcGVydHkoZSkmJihpPXRbZV09T2JqZWN0LmNyZWF0ZSh0W2VdKSxuKSlmb3IobGV0IHQgaW4gaSl7bGV0IGU9aVt0XSxuPWlbdF09QXJyYXkoZS5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XX19ZWxzZSBpPXRbZV09e307cmV0dXJuIGl9ZnVuY3Rpb24gSHQodCxlLG4saSxyLG8pe2lmKGUpe2xldCBhPSExO2NvbnN0IHM9UnQrKztmb3IobGV0IGwgaW4gbil7bGV0IGM9ZVtyPyQobCk6bF07aWYoYylmb3IobGV0IGUsdT0wLGg9Yy5sZW5ndGg7dTxoJiYoZT1jW3VdKTt1KyspZS5pbmZvJiZlLmluZm8ubGFzdFJ1bj09PXN8fHImJiFWdChsLGUudHJpZ2dlcil8fChlLmluZm8mJihlLmluZm8ubGFzdFJ1bj1zKSxlLmZuKHQsbCxuLGksZS5pbmZvLHIsbyksYT0hMCl9cmV0dXJuIGF9cmV0dXJuITF9ZnVuY3Rpb24gRnQodCxlLG4saSxyLG8sYSxzKXtsZXQgbD0hMSxjPWVbYT8kKGkpOmldO2lmKGMpZm9yKGxldCBlLHU9MCxoPWMubGVuZ3RoO3U8aCYmKGU9Y1t1XSk7dSsrKWUuaW5mbyYmZS5pbmZvLmxhc3RSdW49PT1ufHxhJiYhVnQoaSxlLnRyaWdnZXIpfHwoZS5pbmZvJiYoZS5pbmZvLmxhc3RSdW49biksZS5mbih0LGkscixvLGUuaW5mbyxhLHMpLGw9ITApO3JldHVybiBsfWZ1bmN0aW9uIFZ0KHQsZSl7aWYoZSl7bGV0IG49ZS5uYW1lO3JldHVybiBuPT10fHwhKCFlLnN0cnVjdHVyZWR8fCFLKG4sdCkpfHwhKCFlLndpbGRjYXJkfHwhWihuLHQpKX1yZXR1cm4hMH1mdW5jdGlvbiBVdCh0LGUsbixpLHIpe2xldCBvPSJzdHJpbmciPT10eXBlb2Ygci5tZXRob2Q/dFtyLm1ldGhvZF06ci5tZXRob2QsYT1yLnByb3BlcnR5O28/by5jYWxsKHQsdC5fX2RhdGFbYV0saVthXSk6ci5keW5hbWljRm58fGNvbnNvbGUud2Fybigib2JzZXJ2ZXIgbWV0aG9kIGAiK3IubWV0aG9kKyJgIG5vdCBkZWZpbmVkIil9ZnVuY3Rpb24ganQodCxlLG4pe2xldCBpPSQoZSk7cmV0dXJuIGkhPT1lJiYoR3QodCxsdChpKSsiLWNoYW5nZWQiLG5bZV0sZSksITApfWZ1bmN0aW9uIEd0KHQsZSxuLGkpe2xldCByPXt2YWx1ZTpuLHF1ZXVlUHJvcGVydHk6ITB9O2kmJihyLnBhdGg9aSksWSh0KS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChlLHtkZXRhaWw6cn0pKX1mdW5jdGlvbiBXdCh0LGUsbixpLHIsbyl7bGV0IGE9KG8/JChlKTplKSE9ZT9lOm51bGwscz1hP250KHQsYSk6dC5fX2RhdGFbZV07YSYmdm9pZCAwPT09cyYmKHM9bltlXSksR3QodCxyLmV2ZW50TmFtZSxzLGEpfWZ1bmN0aW9uIHF0KHQsZSxuLGkscil7bGV0IG89dC5fX2RhdGFbZV07eSYmKG89eShvLHIuYXR0ck5hbWUsImF0dHJpYnV0ZSIsdCkpLHQuX3Byb3BlcnR5VG9BdHRyaWJ1dGUoZSxyLmF0dHJOYW1lLG8pfWNvbnN0IFl0PSh0LGUsbik9PntsZXQgaT0wLHI9ZS5sZW5ndGgtMSxvPS0xO2Zvcig7aTw9cjspe2NvbnN0IGE9aStyPj4xLHM9bi5nZXQoZVthXS5tZXRob2RJbmZvKS1uLmdldCh0Lm1ldGhvZEluZm8pO2lmKHM8MClpPWErMTtlbHNle2lmKCEocz4wKSl7bz1hO2JyZWFrfXI9YS0xfX1vPDAmJihvPXIrMSksZS5zcGxpY2UobywwLHQpfSxYdD0odCxlLG4saSxyKT0+e2NvbnN0IG89ZVtyPyQodCk6dF07aWYobylmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKyl7Y29uc3QgYT1vW2VdO2EuaW5mby5sYXN0UnVuPT09UnR8fHImJiFWdCh0LGEudHJpZ2dlcil8fChhLmluZm8ubGFzdFJ1bj1SdCxZdChhLmluZm8sbixpKSl9fTtmdW5jdGlvbiAkdCh0LGUsbixpLHIpe2xldCBvPW5lKHQsZSxuLDAscik7aWYobz09PU90KXJldHVybiExO2xldCBhPXIubWV0aG9kSW5mbztyZXR1cm4gdC5fX2RhdGFIYXNBY2Nlc3NvciYmdC5fX2RhdGFIYXNBY2Nlc3NvclthXT90Ll9zZXRQZW5kaW5nUHJvcGVydHkoYSxvLCEwKToodFthXT1vLCExKX1mdW5jdGlvbiBLdCh0LGUsbixpLHIsbyxhKXtuLmJpbmRpbmdzPW4uYmluZGluZ3N8fFtdO2xldCBzPXtraW5kOmksdGFyZ2V0OnIscGFydHM6byxsaXRlcmFsOmEsaXNDb21wb3VuZDoxIT09by5sZW5ndGh9O2lmKG4uYmluZGluZ3MucHVzaChzKSwoZnVuY3Rpb24gbCh0KXtyZXR1cm4gQm9vbGVhbih0LnRhcmdldCkmJiJhdHRyaWJ1dGUiIT10LmtpbmQmJiJ0ZXh0IiE9dC5raW5kJiYhdC5pc0NvbXBvdW5kJiYieyI9PT10LnBhcnRzWzBdLm1vZGV9KShzKSl7bGV0e2V2ZW50OnQsbmVnYXRlOmV9PXMucGFydHNbMF07cy5saXN0ZW5lckV2ZW50PXR8fGx0KHIpKyItY2hhbmdlZCIscy5saXN0ZW5lck5lZ2F0ZT1lfWxldCBjPWUubm9kZUluZm9MaXN0Lmxlbmd0aDtmb3IobGV0IG49MDtuPHMucGFydHMubGVuZ3RoO24rKyl7bGV0IGk9cy5wYXJ0c1tuXTtpLmNvbXBvdW5kSW5kZXg9bixadCh0LGUscyxpLGMpfX1mdW5jdGlvbiBadCh0LGUsbixpLHIpe2lmKCFpLmxpdGVyYWwpaWYoImF0dHJpYnV0ZSI9PT1uLmtpbmQmJiItIj09PW4udGFyZ2V0WzBdKWNvbnNvbGUud2FybigiQ2Fubm90IHNldCBhdHRyaWJ1dGUgIituLnRhcmdldCsnIGJlY2F1c2UgIi0iIGlzIG5vdCBhIHZhbGlkIGF0dHJpYnV0ZSBzdGFydGluZyBjaGFyYWN0ZXInKTtlbHNle2xldCBvPWkuZGVwZW5kZW5jaWVzLGE9e2luZGV4OnIsYmluZGluZzpuLHBhcnQ6aSxldmFsdWF0b3I6dH07Zm9yKGxldCBuPTA7bjxvLmxlbmd0aDtuKyspe2xldCBpPW9bbl07InN0cmluZyI9PXR5cGVvZiBpJiYoaT1zZShpKSxpLndpbGRjYXJkPSEwKSx0Ll9hZGRUZW1wbGF0ZVByb3BlcnR5RWZmZWN0KGUsaS5yb290UHJvcGVydHkse2ZuOkp0LGluZm86YSx0cmlnZ2VyOml9KX19fWZ1bmN0aW9uIEp0KHQsZSxuLGkscixvLGEpe2xldCBzPWFbci5pbmRleF0sbD1yLmJpbmRpbmcsYz1yLnBhcnQ7aWYobyYmYy5zb3VyY2UmJmUubGVuZ3RoPmMuc291cmNlLmxlbmd0aCYmInByb3BlcnR5Ij09bC5raW5kJiYhbC5pc0NvbXBvdW5kJiZzLl9faXNQcm9wZXJ0eUVmZmVjdHNDbGllbnQmJnMuX19kYXRhSGFzQWNjZXNzb3ImJnMuX19kYXRhSGFzQWNjZXNzb3JbbC50YXJnZXRdKXtsZXQgaT1uW2VdO2U9SihjLnNvdXJjZSxsLnRhcmdldCxlKSxzLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoZSxpLCExLCEwKSYmdC5fZW5xdWV1ZUNsaWVudChzKX1lbHNle2xldCBhPXIuZXZhbHVhdG9yLl9ldmFsdWF0ZUJpbmRpbmcodCxjLGUsbixpLG8pO2EhPT1PdCYmKGZ1bmN0aW9uIHUodCxlLG4saSxyKXtpZihyPShmdW5jdGlvbiBvKHQsZSxuLGkpe2lmKG4uaXNDb21wb3VuZCl7bGV0IHI9dC5fX2RhdGFDb21wb3VuZFN0b3JhZ2Vbbi50YXJnZXRdO3JbaS5jb21wb3VuZEluZGV4XT1lLGU9ci5qb2luKCIiKX1yZXR1cm4iYXR0cmlidXRlIiE9PW4ua2luZCYmKCJ0ZXh0Q29udGVudCIhPT1uLnRhcmdldCYmKCJ2YWx1ZSIhPT1uLnRhcmdldHx8ImlucHV0IiE9PXQubG9jYWxOYW1lJiYidGV4dGFyZWEiIT09dC5sb2NhbE5hbWUpfHwoZT1udWxsPT1lPyIiOmUpKSxlfSkoZSxyLG4saSkseSYmKHI9eShyLG4udGFyZ2V0LG4ua2luZCxlKSksImF0dHJpYnV0ZSI9PW4ua2luZCl0Ll92YWx1ZVRvTm9kZUF0dHJpYnV0ZShlLHIsbi50YXJnZXQpO2Vsc2V7bGV0IGk9bi50YXJnZXQ7ZS5fX2lzUHJvcGVydHlFZmZlY3RzQ2xpZW50JiZlLl9fZGF0YUhhc0FjY2Vzc29yJiZlLl9fZGF0YUhhc0FjY2Vzc29yW2ldP2VbenQuUkVBRF9PTkxZXSYmZVt6dC5SRUFEX09OTFldW2ldfHxlLl9zZXRQZW5kaW5nUHJvcGVydHkoaSxyKSYmdC5fZW5xdWV1ZUNsaWVudChlKTp0Ll9zZXRVbm1hbmFnZWRQcm9wZXJ0eVRvTm9kZShlLGkscil9fSkodCxzLGwsYyxhKX19ZnVuY3Rpb24gUXQodCxlKXtpZihlLmlzQ29tcG91bmQpe2xldCBuPXQuX19kYXRhQ29tcG91bmRTdG9yYWdlfHwodC5fX2RhdGFDb21wb3VuZFN0b3JhZ2U9e30pLGk9ZS5wYXJ0cyxyPW5ldyBBcnJheShpLmxlbmd0aCk7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspclt0XT1pW3RdLmxpdGVyYWw7bGV0IG89ZS50YXJnZXQ7bltvXT1yLGUubGl0ZXJhbCYmInByb3BlcnR5Ij09ZS5raW5kJiYoImNsYXNzTmFtZSI9PT1vJiYodD1ZKHQpKSx0W29dPWUubGl0ZXJhbCl9fWZ1bmN0aW9uIHRlKHQsZSxuKXtpZihuLmxpc3RlbmVyRXZlbnQpe2xldCBpPW4ucGFydHNbMF07dC5hZGRFdmVudExpc3RlbmVyKG4ubGlzdGVuZXJFdmVudCwoZnVuY3Rpb24odCl7IShmdW5jdGlvbiByKHQsZSxuLGksbyl7bGV0IGEscz10LmRldGFpbCxsPXMmJnMucGF0aDtsPyhpPUoobixpLGwpLGE9cyYmcy52YWx1ZSk6YT10LmN1cnJlbnRUYXJnZXRbbl0sYT1vPyFhOmEsZVt6dC5SRUFEX09OTFldJiZlW3p0LlJFQURfT05MWV1baV18fCFlLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoaSxhLCEwLEJvb2xlYW4obCkpfHxzJiZzLnF1ZXVlUHJvcGVydHl8fGUuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9KSh0LGUsbi50YXJnZXQsaS5zb3VyY2UsaS5uZWdhdGUpfSkpfX1mdW5jdGlvbiBlZSh0LGUsbixpLHIsbyl7bGV0IGE9e21ldGhvZE5hbWU6ZS5tZXRob2ROYW1lLGFyZ3M6ZS5hcmdzLG1ldGhvZEluZm86cixkeW5hbWljRm46bz1lLnN0YXRpY3x8byYmKCJvYmplY3QiIT10eXBlb2Ygb3x8b1tlLm1ldGhvZE5hbWVdKX07Zm9yKGxldCByLG89MDtvPGUuYXJncy5sZW5ndGgmJihyPWUuYXJnc1tvXSk7bysrKXIubGl0ZXJhbHx8dC5fYWRkUHJvcGVydHlFZmZlY3Qoci5yb290UHJvcGVydHksbix7Zm46aSxpbmZvOmEsdHJpZ2dlcjpyfSk7cmV0dXJuIG8mJnQuX2FkZFByb3BlcnR5RWZmZWN0KGUubWV0aG9kTmFtZSxuLHtmbjppLGluZm86YX0pLGF9ZnVuY3Rpb24gbmUodCxlLG4saSxyKXtsZXQgbz10Ll9tZXRob2RIb3N0fHx0LGE9b1tyLm1ldGhvZE5hbWVdO2lmKGEpe2xldCBpPXQuX21hcnNoYWxBcmdzKHIuYXJncyxlLG4pO3JldHVybiBpPT09T3Q/T3Q6YS5hcHBseShvLGkpfXIuZHluYW1pY0ZufHxjb25zb2xlLndhcm4oIm1ldGhvZCBgIityLm1ldGhvZE5hbWUrImAgbm90IGRlZmluZWQiKX1jb25zdCBpZT1bXSxyZT1uZXcgUmVnRXhwKCIoXFxbXFxbfHt7KVxccyooPzooISlcXHMqKT8oKD86W2EtekEtWl8kXVtcXHcuOiRcXC0qXSopXFxzKig/OlxcKFxccyooPzooPzooPzooKD86W2EtekEtWl8kXVtcXHcuOiRcXC0qXSopfCg/OlstK10/WzAtOV0qXFwuP1swLTldKyg/OltlRV1bLStdP1swLTldKyk/KXwoPzooPzonKD86W14nXFxcXF18XFxcXC4pKicpfCg/OlwiKD86W15cIlxcXFxdfFxcXFwuKSpcIikpKVxccyopKD86LFxccyooPzooKD86W2EtekEtWl8kXVtcXHcuOiRcXC0qXSopfCg/OlstK10/WzAtOV0qXFwuP1swLTldKyg/OltlRV1bLStdP1swLTldKyk/KXwoPzooPzonKD86W14nXFxcXF18XFxcXC4pKicpfCg/OlwiKD86W15cIlxcXFxdfFxcXFwuKSpcIikpKVxccyopKSopPylcXClcXHMqKT8pKD86XV18fX0pIiwiZyIpO2Z1bmN0aW9uIG9lKHQpe2xldCBlPSIiO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWUrPXRbbl0ubGl0ZXJhbHx8IiI7cmV0dXJuIGV9ZnVuY3Rpb24gYWUodCl7bGV0IGU9dC5tYXRjaCgvKFteXHNdKz8pXCgoW1xzXFNdKilcKS8pO2lmKGUpe2xldCB0PXttZXRob2ROYW1lOmVbMV0sc3RhdGljOiEwLGFyZ3M6aWV9O3JldHVybiBlWzJdLnRyaW0oKT8oZnVuY3Rpb24gbih0LGUpe3JldHVybiBlLmFyZ3M9dC5tYXAoKGZ1bmN0aW9uKHQpe2xldCBuPXNlKHQpO3JldHVybiBuLmxpdGVyYWx8fChlLnN0YXRpYz0hMSksbn0pLHRoaXMpLGV9KShlWzJdLnJlcGxhY2UoL1xcLC9nLCImY29tbWE7Iikuc3BsaXQoIiwiKSx0KTp0fXJldHVybiBudWxsfWZ1bmN0aW9uIHNlKHQpe2xldCBlPXQudHJpbSgpLnJlcGxhY2UoLyZjb21tYTsvZywiLCIpLnJlcGxhY2UoL1xcKC4pL2csIiQxIiksbj17bmFtZTplLHZhbHVlOiIiLGxpdGVyYWw6ITF9LGk9ZVswXTtzd2l0Y2goIi0iPT09aSYmKGk9ZVsxXSksaT49IjAiJiZpPD0iOSImJihpPSIjIiksaSl7Y2FzZSInIjpjYXNlJyInOm4udmFsdWU9ZS5zbGljZSgxLC0xKSxuLmxpdGVyYWw9ITA7YnJlYWs7Y2FzZSIjIjpuLnZhbHVlPU51bWJlcihlKSxuLmxpdGVyYWw9ITB9cmV0dXJuIG4ubGl0ZXJhbHx8KG4ucm9vdFByb3BlcnR5PSQoZSksbi5zdHJ1Y3R1cmVkPVgoZSksbi5zdHJ1Y3R1cmVkJiYobi53aWxkY2FyZD0iLioiPT1lLnNsaWNlKC0yKSxuLndpbGRjYXJkJiYobi5uYW1lPWUuc2xpY2UoMCwtMikpKSksbn1mdW5jdGlvbiBsZSh0LGUsbil7bGV0IGk9bnQodCxuKTtyZXR1cm4gdm9pZCAwPT09aSYmKGk9ZVtuXSksaX1mdW5jdGlvbiBjZSh0LGUsbixpKXtjb25zdCByPXtpbmRleFNwbGljZXM6aX07RSYmIXQuX292ZXJyaWRlTGVnYWN5VW5kZWZpbmVkJiYoZS5zcGxpY2VzPXIpLHQubm90aWZ5UGF0aChuKyIuc3BsaWNlcyIsciksdC5ub3RpZnlQYXRoKG4rIi5sZW5ndGgiLGUubGVuZ3RoKSxFJiYhdC5fb3ZlcnJpZGVMZWdhY3lVbmRlZmluZWQmJihyLmluZGV4U3BsaWNlcz1bXSl9ZnVuY3Rpb24gdWUodCxlLG4saSxyLG8pe2NlKHQsZSxuLFt7aW5kZXg6aSxhZGRlZENvdW50OnIscmVtb3ZlZDpvLG9iamVjdDplLHR5cGU6InNwbGljZSJ9XSl9Y29uc3QgaGU9SSgodD0+e2NvbnN0IGU9SXQoTXQodCkpO3JldHVybiBjbGFzcyBleHRlbmRzIGV7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX19pc1Byb3BlcnR5RWZmZWN0c0NsaWVudD0hMH1nZXQgUFJPUEVSVFlfRUZGRUNUX1RZUEVTKCl7cmV0dXJuIHp0fV9pbml0aWFsaXplUHJvcGVydGllcygpe3N1cGVyLl9pbml0aWFsaXplUHJvcGVydGllcygpLHRoaXMuX3JlZ2lzdGVySG9zdCgpLHRoaXMuX19kYXRhQ2xpZW50c1JlYWR5PSExLHRoaXMuX19kYXRhUGVuZGluZ0NsaWVudHM9bnVsbCx0aGlzLl9fZGF0YVRvTm90aWZ5PW51bGwsdGhpcy5fX2RhdGFMaW5rZWRQYXRocz1udWxsLHRoaXMuX19kYXRhSGFzUGF0aHM9ITEsdGhpcy5fX2RhdGFDb21wb3VuZFN0b3JhZ2U9dGhpcy5fX2RhdGFDb21wb3VuZFN0b3JhZ2V8fG51bGwsdGhpcy5fX2RhdGFIb3N0PXRoaXMuX19kYXRhSG9zdHx8bnVsbCx0aGlzLl9fZGF0YVRlbXA9e30sdGhpcy5fX2RhdGFDbGllbnRzSW5pdGlhbGl6ZWQ9ITF9X3JlZ2lzdGVySG9zdCgpe2lmKGRlLmxlbmd0aCl7bGV0IHQ9ZGVbZGUubGVuZ3RoLTFdO3QuX2VucXVldWVDbGllbnQodGhpcyksdGhpcy5fX2RhdGFIb3N0PXR9fV9pbml0aWFsaXplUHJvdG9Qcm9wZXJ0aWVzKHQpe3RoaXMuX19kYXRhPU9iamVjdC5jcmVhdGUodCksdGhpcy5fX2RhdGFQZW5kaW5nPU9iamVjdC5jcmVhdGUodCksdGhpcy5fX2RhdGFPbGQ9e319X2luaXRpYWxpemVJbnN0YW5jZVByb3BlcnRpZXModCl7bGV0IGU9dGhpc1t6dC5SRUFEX09OTFldO2ZvcihsZXQgbiBpbiB0KWUmJmVbbl18fCh0aGlzLl9fZGF0YVBlbmRpbmc9dGhpcy5fX2RhdGFQZW5kaW5nfHx7fSx0aGlzLl9fZGF0YU9sZD10aGlzLl9fZGF0YU9sZHx8e30sdGhpcy5fX2RhdGFbbl09dGhpcy5fX2RhdGFQZW5kaW5nW25dPXRbbl0pfV9hZGRQcm9wZXJ0eUVmZmVjdCh0LGUsbil7dGhpcy5fY3JlYXRlUHJvcGVydHlBY2Nlc3Nvcih0LGU9PXp0LlJFQURfT05MWSk7bGV0IGk9QnQodGhpcyxlLCEwKVt0XTtpfHwoaT10aGlzW2VdW3RdPVtdKSxpLnB1c2gobil9X3JlbW92ZVByb3BlcnR5RWZmZWN0KHQsZSxuKXtsZXQgaT1CdCh0aGlzLGUsITApW3RdLHI9aS5pbmRleE9mKG4pO3I+PTAmJmkuc3BsaWNlKHIsMSl9X2hhc1Byb3BlcnR5RWZmZWN0KHQsZSl7bGV0IG49dGhpc1tlXTtyZXR1cm4gQm9vbGVhbihuJiZuW3RdKX1faGFzUmVhZE9ubHlFZmZlY3QodCl7cmV0dXJuIHRoaXMuX2hhc1Byb3BlcnR5RWZmZWN0KHQsenQuUkVBRF9PTkxZKX1faGFzTm90aWZ5RWZmZWN0KHQpe3JldHVybiB0aGlzLl9oYXNQcm9wZXJ0eUVmZmVjdCh0LHp0Lk5PVElGWSl9X2hhc1JlZmxlY3RFZmZlY3QodCl7cmV0dXJuIHRoaXMuX2hhc1Byb3BlcnR5RWZmZWN0KHQsenQuUkVGTEVDVCl9X2hhc0NvbXB1dGVkRWZmZWN0KHQpe3JldHVybiB0aGlzLl9oYXNQcm9wZXJ0eUVmZmVjdCh0LHp0LkNPTVBVVEUpfV9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgodCxlLG4saSl7aWYoaXx8JChBcnJheS5pc0FycmF5KHQpP3RbMF06dCkhPT10KXtpZighaSl7bGV0IG49bnQodGhpcyx0KTtpZighKHQ9aXQodGhpcyx0LGUpKXx8IXN1cGVyLl9zaG91bGRQcm9wZXJ0eUNoYW5nZSh0LGUsbikpcmV0dXJuITF9aWYodGhpcy5fX2RhdGFIYXNQYXRocz0hMCx0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHkodCxlLG4pKXJldHVybihmdW5jdGlvbiByKHQsZSxuKXtsZXQgaT10Ll9fZGF0YUxpbmtlZFBhdGhzO2lmKGkpe2xldCByO2ZvcihsZXQgbyBpbiBpKXtsZXQgYT1pW29dO1oobyxlKT8ocj1KKG8sYSxlKSx0Ll9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgocixuLCEwLCEwKSk6WihhLGUpJiYocj1KKGEsbyxlKSx0Ll9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgocixuLCEwLCEwKSl9fX0pKHRoaXMsdCxlKSwhMH1lbHNle2lmKHRoaXMuX19kYXRhSGFzQWNjZXNzb3ImJnRoaXMuX19kYXRhSGFzQWNjZXNzb3JbdF0pcmV0dXJuIHRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eSh0LGUsbik7dGhpc1t0XT1lfXJldHVybiExfV9zZXRVbm1hbmFnZWRQcm9wZXJ0eVRvTm9kZSh0LGUsbil7bj09PXRbZV0mJiJvYmplY3QiIT10eXBlb2Ygbnx8KCJjbGFzc05hbWUiPT09ZSYmKHQ9WSh0KSksdFtlXT1uKX1fc2V0UGVuZGluZ1Byb3BlcnR5KHQsZSxuKXtsZXQgaT10aGlzLl9fZGF0YUhhc1BhdGhzJiZYKHQpO3JldHVybiEhdGhpcy5fc2hvdWxkUHJvcGVydHlDaGFuZ2UodCxlLChpP3RoaXMuX19kYXRhVGVtcDp0aGlzLl9fZGF0YSlbdF0pJiYodGhpcy5fX2RhdGFQZW5kaW5nfHwodGhpcy5fX2RhdGFQZW5kaW5nPXt9LHRoaXMuX19kYXRhT2xkPXt9KSx0IGluIHRoaXMuX19kYXRhT2xkfHwodGhpcy5fX2RhdGFPbGRbdF09dGhpcy5fX2RhdGFbdF0pLGk/dGhpcy5fX2RhdGFUZW1wW3RdPWU6dGhpcy5fX2RhdGFbdF09ZSx0aGlzLl9fZGF0YVBlbmRpbmdbdF09ZSwoaXx8dGhpc1t6dC5OT1RJRlldJiZ0aGlzW3p0Lk5PVElGWV1bdF0pJiYodGhpcy5fX2RhdGFUb05vdGlmeT10aGlzLl9fZGF0YVRvTm90aWZ5fHx7fSx0aGlzLl9fZGF0YVRvTm90aWZ5W3RdPW4pLCEwKX1fc2V0UHJvcGVydHkodCxlKXt0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHkodCxlLCEwKSYmdGhpcy5faW52YWxpZGF0ZVByb3BlcnRpZXMoKX1faW52YWxpZGF0ZVByb3BlcnRpZXMoKXt0aGlzLl9fZGF0YVJlYWR5JiZ0aGlzLl9mbHVzaFByb3BlcnRpZXMoKX1fZW5xdWV1ZUNsaWVudCh0KXt0aGlzLl9fZGF0YVBlbmRpbmdDbGllbnRzPXRoaXMuX19kYXRhUGVuZGluZ0NsaWVudHN8fFtdLHQhPT10aGlzJiZ0aGlzLl9fZGF0YVBlbmRpbmdDbGllbnRzLnB1c2godCl9X2ZsdXNoQ2xpZW50cygpe3RoaXMuX19kYXRhQ2xpZW50c1JlYWR5P3RoaXMuX19lbmFibGVPckZsdXNoQ2xpZW50cygpOih0aGlzLl9fZGF0YUNsaWVudHNSZWFkeT0hMCx0aGlzLl9yZWFkeUNsaWVudHMoKSx0aGlzLl9fZGF0YVJlYWR5PSEwKX1fX2VuYWJsZU9yRmx1c2hDbGllbnRzKCl7bGV0IHQ9dGhpcy5fX2RhdGFQZW5kaW5nQ2xpZW50cztpZih0KXt0aGlzLl9fZGF0YVBlbmRpbmdDbGllbnRzPW51bGw7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2xldCBuPXRbZV07bi5fX2RhdGFFbmFibGVkP24uX19kYXRhUGVuZGluZyYmbi5fZmx1c2hQcm9wZXJ0aWVzKCk6bi5fZW5hYmxlUHJvcGVydGllcygpfX19X3JlYWR5Q2xpZW50cygpe3RoaXMuX19lbmFibGVPckZsdXNoQ2xpZW50cygpfXNldFByb3BlcnRpZXModCxlKXtmb3IobGV0IG4gaW4gdCkhZSYmdGhpc1t6dC5SRUFEX09OTFldJiZ0aGlzW3p0LlJFQURfT05MWV1bbl18fHRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aChuLHRbbl0sITApO3RoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9cmVhZHkoKXt0aGlzLl9mbHVzaFByb3BlcnRpZXMoKSx0aGlzLl9fZGF0YUNsaWVudHNSZWFkeXx8dGhpcy5fZmx1c2hDbGllbnRzKCksdGhpcy5fX2RhdGFQZW5kaW5nJiZ0aGlzLl9mbHVzaFByb3BlcnRpZXMoKX1fcHJvcGVydGllc0NoYW5nZWQodCxlLG4pe2xldCBpLHI9dGhpcy5fX2RhdGFIYXNQYXRoczt0aGlzLl9fZGF0YUhhc1BhdGhzPSExLChmdW5jdGlvbiBvKHQsZSxuLGkpe2xldCByPXRbenQuQ09NUFVURV07aWYocilpZihUKXtSdCsrO2NvbnN0IG89KGZ1bmN0aW9uIGEodCl7bGV0IGU9dC5jb25zdHJ1Y3Rvci5fX29yZGVyZWRDb21wdXRlZERlcHM7aWYoIWUpe2U9bmV3IE1hcDtjb25zdCBuPXRbenQuQ09NUFVURV07bGV0IGkse2NvdW50czpyLHJlYWR5Om8sdG90YWw6YX09KGZ1bmN0aW9uIHModCl7Y29uc3QgZT10Ll9fY29tcHV0ZUluZm8sbj17fSxpPXRbenQuQ09NUFVURV0scj1bXTtsZXQgbz0wO2ZvcihsZXQgdCBpbiBlKXtjb25zdCBpPWVbdF07bys9blt0XT1pLmFyZ3MuZmlsdGVyKCh0PT4hdC5saXRlcmFsKSkubGVuZ3RoKyhpLmR5bmFtaWNGbj8xOjApfWZvcihsZXQgdCBpbiBpKWVbdF18fHIucHVzaCh0KTtyZXR1cm57Y291bnRzOm4scmVhZHk6cix0b3RhbDpvfX0pKHQpO2Zvcig7aT1vLnNoaWZ0KCk7KXtlLnNldChpLGUuc2l6ZSk7Y29uc3QgdD1uW2ldO3QmJnQuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5pbmZvLm1ldGhvZEluZm87LS1hLDA9PS0tcltlXSYmby5wdXNoKGUpfSkpfTAhPT1hJiZjb25zb2xlLndhcm4oYENvbXB1dGVkIGdyYXBoIGZvciAke3QubG9jYWxOYW1lfSBpbmNvbXBsZXRlOyBjaXJjdWxhcj9gKSx0LmNvbnN0cnVjdG9yLl9fb3JkZXJlZENvbXB1dGVkRGVwcz1lfXJldHVybiBlfSkodCkscz1bXTtmb3IobGV0IHQgaW4gZSlYdCh0LHIscyxvLGkpO2xldCBsO2Zvcig7bD1zLnNoaWZ0KCk7KSR0KHQsIiIsZSwwLGwpJiZYdChsLm1ldGhvZEluZm8scixzLG8saSk7T2JqZWN0LmFzc2lnbihuLHQuX19kYXRhT2xkKSxPYmplY3QuYXNzaWduKGUsdC5fX2RhdGFQZW5kaW5nKSx0Ll9fZGF0YVBlbmRpbmc9bnVsbH1lbHNle2xldCBvPWU7Zm9yKDtIdCh0LHIsbyxuLGkpOylPYmplY3QuYXNzaWduKG4sdC5fX2RhdGFPbGQpLE9iamVjdC5hc3NpZ24oZSx0Ll9fZGF0YVBlbmRpbmcpLG89dC5fX2RhdGFQZW5kaW5nLHQuX19kYXRhUGVuZGluZz1udWxsfX0pKHRoaXMsZSxuLHIpLGk9dGhpcy5fX2RhdGFUb05vdGlmeSx0aGlzLl9fZGF0YVRvTm90aWZ5PW51bGwsdGhpcy5fcHJvcGFnYXRlUHJvcGVydHlDaGFuZ2VzKGUsbixyKSx0aGlzLl9mbHVzaENsaWVudHMoKSxIdCh0aGlzLHRoaXNbenQuUkVGTEVDVF0sZSxuLHIpLEh0KHRoaXMsdGhpc1t6dC5PQlNFUlZFXSxlLG4sciksaSYmKGZ1bmN0aW9uIGEodCxlLG4saSxyKXtsZXQgbyxhLHM9dFt6dC5OT1RJRlldLGw9UnQrKztmb3IobGV0IGEgaW4gZSllW2FdJiYocyYmRnQodCxzLGwsYSxuLGkscil8fHImJmp0KHQsYSxuKSkmJihvPSEwKTtvJiYoYT10Ll9fZGF0YUhvc3QpJiZhLl9pbnZhbGlkYXRlUHJvcGVydGllcyYmYS5faW52YWxpZGF0ZVByb3BlcnRpZXMoKX0pKHRoaXMsaSxlLG4sciksMT09dGhpcy5fX2RhdGFDb3VudGVyJiYodGhpcy5fX2RhdGFUZW1wPXt9KX1fcHJvcGFnYXRlUHJvcGVydHlDaGFuZ2VzKHQsZSxuKXt0aGlzW3p0LlBST1BBR0FURV0mJkh0KHRoaXMsdGhpc1t6dC5QUk9QQUdBVEVdLHQsZSxuKSx0aGlzLl9fdGVtcGxhdGVJbmZvJiZ0aGlzLl9ydW5FZmZlY3RzRm9yVGVtcGxhdGUodGhpcy5fX3RlbXBsYXRlSW5mbyx0LGUsbil9X3J1bkVmZmVjdHNGb3JUZW1wbGF0ZSh0LGUsbixpKXtjb25zdCByPShlLGkpPT57SHQodGhpcyx0LnByb3BlcnR5RWZmZWN0cyxlLG4saSx0Lm5vZGVMaXN0KTtmb3IobGV0IHI9dC5maXJzdENoaWxkO3I7cj1yLm5leHRTaWJsaW5nKXRoaXMuX3J1bkVmZmVjdHNGb3JUZW1wbGF0ZShyLGUsbixpKX07dC5ydW5FZmZlY3RzP3QucnVuRWZmZWN0cyhyLGUsaSk6cihlLGkpfWxpbmtQYXRocyh0LGUpe3Q9dHQodCksZT10dChlKSx0aGlzLl9fZGF0YUxpbmtlZFBhdGhzPXRoaXMuX19kYXRhTGlua2VkUGF0aHN8fHt9LHRoaXMuX19kYXRhTGlua2VkUGF0aHNbdF09ZX11bmxpbmtQYXRocyh0KXt0PXR0KHQpLHRoaXMuX19kYXRhTGlua2VkUGF0aHMmJmRlbGV0ZSB0aGlzLl9fZGF0YUxpbmtlZFBhdGhzW3RdfW5vdGlmeVNwbGljZXModCxlKXtsZXQgbj17cGF0aDoiIn07Y2UodGhpcyxudCh0aGlzLHQsbiksbi5wYXRoLGUpfWdldCh0LGUpe3JldHVybiBudChlfHx0aGlzLHQpfXNldCh0LGUsbil7bj9pdChuLHQsZSk6dGhpc1t6dC5SRUFEX09OTFldJiZ0aGlzW3p0LlJFQURfT05MWV1bdF18fHRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aCh0LGUsITApJiZ0aGlzLl9pbnZhbGlkYXRlUHJvcGVydGllcygpfXB1c2godCwuLi5lKXtsZXQgbj17cGF0aDoiIn0saT1udCh0aGlzLHQsbikscj1pLmxlbmd0aCxvPWkucHVzaCguLi5lKTtyZXR1cm4gZS5sZW5ndGgmJnVlKHRoaXMsaSxuLnBhdGgscixlLmxlbmd0aCxbXSksb31wb3AodCl7bGV0IGU9e3BhdGg6IiJ9LG49bnQodGhpcyx0LGUpLGk9Qm9vbGVhbihuLmxlbmd0aCkscj1uLnBvcCgpO3JldHVybiBpJiZ1ZSh0aGlzLG4sZS5wYXRoLG4ubGVuZ3RoLDAsW3JdKSxyfXNwbGljZSh0LGUsbiwuLi5pKXtsZXQgcixvPXtwYXRoOiIifSxhPW50KHRoaXMsdCxvKTtyZXR1cm4gZTwwP2U9YS5sZW5ndGgtTWF0aC5mbG9vcigtZSk6ZSYmKGU9TWF0aC5mbG9vcihlKSkscj0yPT09YXJndW1lbnRzLmxlbmd0aD9hLnNwbGljZShlKTphLnNwbGljZShlLG4sLi4uaSksKGkubGVuZ3RofHxyLmxlbmd0aCkmJnVlKHRoaXMsYSxvLnBhdGgsZSxpLmxlbmd0aCxyKSxyfXNoaWZ0KHQpe2xldCBlPXtwYXRoOiIifSxuPW50KHRoaXMsdCxlKSxpPUJvb2xlYW4obi5sZW5ndGgpLHI9bi5zaGlmdCgpO3JldHVybiBpJiZ1ZSh0aGlzLG4sZS5wYXRoLDAsMCxbcl0pLHJ9dW5zaGlmdCh0LC4uLmUpe2xldCBuPXtwYXRoOiIifSxpPW50KHRoaXMsdCxuKSxyPWkudW5zaGlmdCguLi5lKTtyZXR1cm4gZS5sZW5ndGgmJnVlKHRoaXMsaSxuLnBhdGgsMCxlLmxlbmd0aCxbXSkscn1ub3RpZnlQYXRoKHQsZSl7bGV0IG47aWYoMT09YXJndW1lbnRzLmxlbmd0aCl7bGV0IGk9e3BhdGg6IiJ9O2U9bnQodGhpcyx0LGkpLG49aS5wYXRofWVsc2Ugbj1BcnJheS5pc0FycmF5KHQpP3R0KHQpOnQ7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5T3JQYXRoKG4sZSwhMCwhMCkmJnRoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9X2NyZWF0ZVJlYWRPbmx5UHJvcGVydHkodCxlKXt0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdCh0LHp0LlJFQURfT05MWSksZSYmKHRoaXNbIl9zZXQiKyhmdW5jdGlvbiBuKHQpe3JldHVybiB0WzBdLnRvVXBwZXJDYXNlKCkrdC5zdWJzdHJpbmcoMSl9KSh0KV09ZnVuY3Rpb24oZSl7dGhpcy5fc2V0UHJvcGVydHkodCxlKX0pfV9jcmVhdGVQcm9wZXJ0eU9ic2VydmVyKHQsZSxuKXtsZXQgaT17cHJvcGVydHk6dCxtZXRob2Q6ZSxkeW5hbWljRm46Qm9vbGVhbihuKX07dGhpcy5fYWRkUHJvcGVydHlFZmZlY3QodCx6dC5PQlNFUlZFLHtmbjpVdCxpbmZvOmksdHJpZ2dlcjp7bmFtZTp0fX0pLG4mJnRoaXMuX2FkZFByb3BlcnR5RWZmZWN0KGUsenQuT0JTRVJWRSx7Zm46VXQsaW5mbzppLHRyaWdnZXI6e25hbWU6ZX19KX1fY3JlYXRlTWV0aG9kT2JzZXJ2ZXIodCxlKXtsZXQgbj1hZSh0KTtpZighbil0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBvYnNlcnZlciBleHByZXNzaW9uICciK3QrIiciKTtlZSh0aGlzLG4senQuT0JTRVJWRSxuZSxudWxsLGUpfV9jcmVhdGVOb3RpZnlpbmdQcm9wZXJ0eSh0KXt0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdCh0LHp0Lk5PVElGWSx7Zm46V3QsaW5mbzp7ZXZlbnROYW1lOmx0KHQpKyItY2hhbmdlZCIscHJvcGVydHk6dH19KX1fY3JlYXRlUmVmbGVjdGVkUHJvcGVydHkodCl7bGV0IGU9dGhpcy5jb25zdHJ1Y3Rvci5hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkodCk7Ii0iPT09ZVswXT9jb25zb2xlLndhcm4oIlByb3BlcnR5ICIrdCsiIGNhbm5vdCBiZSByZWZsZWN0ZWQgdG8gYXR0cmlidXRlICIrZSsnIGJlY2F1c2UgIi0iIGlzIG5vdCBhIHZhbGlkIHN0YXJ0aW5nIGF0dHJpYnV0ZSBuYW1lLiBVc2UgYSBsb3dlcmNhc2UgZmlyc3QgbGV0dGVyIGZvciB0aGUgcHJvcGVydHkgaW5zdGVhZC4nKTp0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdCh0LHp0LlJFRkxFQ1Qse2ZuOnF0LGluZm86e2F0dHJOYW1lOmV9fSl9X2NyZWF0ZUNvbXB1dGVkUHJvcGVydHkodCxlLG4pe2xldCBpPWFlKGUpO2lmKCFpKXRocm93IG5ldyBFcnJvcigiTWFsZm9ybWVkIGNvbXB1dGVkIGV4cHJlc3Npb24gJyIrZSsiJyIpO2NvbnN0IHI9ZWUodGhpcyxpLHp0LkNPTVBVVEUsJHQsdCxuKTtCdCh0aGlzLCJfX2NvbXB1dGVJbmZvIilbdF09cn1fbWFyc2hhbEFyZ3ModCxlLG4pe2NvbnN0IGk9dGhpcy5fX2RhdGEscj1bXTtmb3IobGV0IG89MCxhPXQubGVuZ3RoO288YTtvKyspe2xldHtuYW1lOmEsc3RydWN0dXJlZDpzLHdpbGRjYXJkOmwsdmFsdWU6YyxsaXRlcmFsOnV9PXRbb107aWYoIXUpaWYobCl7Y29uc3QgdD1aKGEsZSkscj1sZShpLG4sdD9lOmEpO2M9e3BhdGg6dD9lOmEsdmFsdWU6cixiYXNlOnQ/bnQoaSxhKTpyfX1lbHNlIGM9cz9sZShpLG4sYSk6aVthXTtpZihFJiYhdGhpcy5fb3ZlcnJpZGVMZWdhY3lVbmRlZmluZWQmJnZvaWQgMD09PWMmJnQubGVuZ3RoPjEpcmV0dXJuIE90O3Jbb109Y31yZXR1cm4gcn1zdGF0aWMgYWRkUHJvcGVydHlFZmZlY3QodCxlLG4pe3RoaXMucHJvdG90eXBlLl9hZGRQcm9wZXJ0eUVmZmVjdCh0LGUsbil9c3RhdGljIGNyZWF0ZVByb3BlcnR5T2JzZXJ2ZXIodCxlLG4pe3RoaXMucHJvdG90eXBlLl9jcmVhdGVQcm9wZXJ0eU9ic2VydmVyKHQsZSxuKX1zdGF0aWMgY3JlYXRlTWV0aG9kT2JzZXJ2ZXIodCxlKXt0aGlzLnByb3RvdHlwZS5fY3JlYXRlTWV0aG9kT2JzZXJ2ZXIodCxlKX1zdGF0aWMgY3JlYXRlTm90aWZ5aW5nUHJvcGVydHkodCl7dGhpcy5wcm90b3R5cGUuX2NyZWF0ZU5vdGlmeWluZ1Byb3BlcnR5KHQpfXN0YXRpYyBjcmVhdGVSZWFkT25seVByb3BlcnR5KHQsZSl7dGhpcy5wcm90b3R5cGUuX2NyZWF0ZVJlYWRPbmx5UHJvcGVydHkodCxlKX1zdGF0aWMgY3JlYXRlUmVmbGVjdGVkUHJvcGVydHkodCl7dGhpcy5wcm90b3R5cGUuX2NyZWF0ZVJlZmxlY3RlZFByb3BlcnR5KHQpfXN0YXRpYyBjcmVhdGVDb21wdXRlZFByb3BlcnR5KHQsZSxuKXt0aGlzLnByb3RvdHlwZS5fY3JlYXRlQ29tcHV0ZWRQcm9wZXJ0eSh0LGUsbil9c3RhdGljIGJpbmRUZW1wbGF0ZSh0KXtyZXR1cm4gdGhpcy5wcm90b3R5cGUuX2JpbmRUZW1wbGF0ZSh0KX1fYmluZFRlbXBsYXRlKHQsZSl7bGV0IG49dGhpcy5jb25zdHJ1Y3Rvci5fcGFyc2VUZW1wbGF0ZSh0KSxpPXRoaXMuX19wcmVCb3VuZFRlbXBsYXRlSW5mbz09bjtpZighaSlmb3IobGV0IHQgaW4gbi5wcm9wZXJ0eUVmZmVjdHMpdGhpcy5fY3JlYXRlUHJvcGVydHlBY2Nlc3Nvcih0KTtpZihlKWlmKG49T2JqZWN0LmNyZWF0ZShuKSxuLndhc1ByZUJvdW5kPWksdGhpcy5fX3RlbXBsYXRlSW5mbyl7Y29uc3QgZT10Ll9wYXJlbnRUZW1wbGF0ZUluZm98fHRoaXMuX190ZW1wbGF0ZUluZm8saT1lLmxhc3RDaGlsZDtuLnBhcmVudD1lLGUubGFzdENoaWxkPW4sbi5wcmV2aW91c1NpYmxpbmc9aSxpP2kubmV4dFNpYmxpbmc9bjplLmZpcnN0Q2hpbGQ9bn1lbHNlIHRoaXMuX190ZW1wbGF0ZUluZm89bjtlbHNlIHRoaXMuX19wcmVCb3VuZFRlbXBsYXRlSW5mbz1uO3JldHVybiBufXN0YXRpYyBfYWRkVGVtcGxhdGVQcm9wZXJ0eUVmZmVjdCh0LGUsbil7KHQuaG9zdFByb3BzPXQuaG9zdFByb3BzfHx7fSlbZV09ITA7bGV0IGk9dC5wcm9wZXJ0eUVmZmVjdHM9dC5wcm9wZXJ0eUVmZmVjdHN8fHt9OyhpW2VdPWlbZV18fFtdKS5wdXNoKG4pfV9zdGFtcFRlbXBsYXRlKHQsZSl7ZT1lfHx0aGlzLl9iaW5kVGVtcGxhdGUodCwhMCksZGUucHVzaCh0aGlzKTtsZXQgbj1zdXBlci5fc3RhbXBUZW1wbGF0ZSh0LGUpO2lmKGRlLnBvcCgpLGUubm9kZUxpc3Q9bi5ub2RlTGlzdCwhZS53YXNQcmVCb3VuZCl7bGV0IHQ9ZS5jaGlsZE5vZGVzPVtdO2ZvcihsZXQgZT1uLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpdC5wdXNoKGUpfXJldHVybiBuLnRlbXBsYXRlSW5mbz1lLChmdW5jdGlvbiBpKHQsZSl7bGV0e25vZGVMaXN0Om4sbm9kZUluZm9MaXN0Oml9PWU7aWYoaS5sZW5ndGgpZm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspe2xldCByPW5bZV0sbz1pW2VdLmJpbmRpbmdzO2lmKG8pZm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspe2xldCBuPW9bZV07UXQocixuKSx0ZShyLHQsbil9ci5fX2RhdGFIb3N0PXR9fSkodGhpcyxlKSx0aGlzLl9fZGF0YUNsaWVudHNSZWFkeSYmKHRoaXMuX3J1bkVmZmVjdHNGb3JUZW1wbGF0ZShlLHRoaXMuX19kYXRhLG51bGwsITEpLHRoaXMuX2ZsdXNoQ2xpZW50cygpKSxufV9yZW1vdmVCb3VuZERvbSh0KXtjb25zdCBlPXQudGVtcGxhdGVJbmZvLHtwcmV2aW91c1NpYmxpbmc6bixuZXh0U2libGluZzppLHBhcmVudDpyfT1lO24/bi5uZXh0U2libGluZz1pOnImJihyLmZpcnN0Q2hpbGQ9aSksaT9pLnByZXZpb3VzU2libGluZz1uOnImJihyLmxhc3RDaGlsZD1uKSxlLm5leHRTaWJsaW5nPWUucHJldmlvdXNTaWJsaW5nPW51bGw7bGV0IG89ZS5jaGlsZE5vZGVzO2ZvcihsZXQgdD0wO3Q8by5sZW5ndGg7dCsrKXtsZXQgZT1vW3RdO1koWShlKS5wYXJlbnROb2RlKS5yZW1vdmVDaGlsZChlKX19c3RhdGljIF9wYXJzZVRlbXBsYXRlTm9kZSh0LG4saSl7bGV0IHI9ZS5fcGFyc2VUZW1wbGF0ZU5vZGUuY2FsbCh0aGlzLHQsbixpKTtpZih0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2xldCBlPXRoaXMuX3BhcnNlQmluZGluZ3ModC50ZXh0Q29udGVudCxuKTtlJiYodC50ZXh0Q29udGVudD1vZShlKXx8IiAiLEt0KHRoaXMsbixpLCJ0ZXh0IiwidGV4dENvbnRlbnQiLGUpLHI9ITApfXJldHVybiByfXN0YXRpYyBfcGFyc2VUZW1wbGF0ZU5vZGVBdHRyaWJ1dGUodCxuLGkscixvKXtsZXQgYT10aGlzLl9wYXJzZUJpbmRpbmdzKG8sbik7aWYoYSl7bGV0IGU9cixvPSJwcm9wZXJ0eSI7RHQudGVzdChyKT9vPSJhdHRyaWJ1dGUiOiIkIj09cltyLmxlbmd0aC0xXSYmKHI9ci5zbGljZSgwLC0xKSxvPSJhdHRyaWJ1dGUiKTtsZXQgcz1vZShhKTtyZXR1cm4gcyYmImF0dHJpYnV0ZSI9PW8mJigiY2xhc3MiPT1yJiZ0Lmhhc0F0dHJpYnV0ZSgiY2xhc3MiKSYmKHMrPSIgIit0LmdldEF0dHJpYnV0ZShyKSksdC5zZXRBdHRyaWJ1dGUocixzKSksImF0dHJpYnV0ZSI9PW8mJiJkaXNhYmxlLXVwZ3JhZGUkIj09ZSYmdC5zZXRBdHRyaWJ1dGUociwiIiksImlucHV0Ij09PXQubG9jYWxOYW1lJiYidmFsdWUiPT09ZSYmdC5zZXRBdHRyaWJ1dGUoZSwiIiksdC5yZW1vdmVBdHRyaWJ1dGUoZSksInByb3BlcnR5Ij09PW8mJihyPXN0KHIpKSxLdCh0aGlzLG4saSxvLHIsYSxzKSwhMH1yZXR1cm4gZS5fcGFyc2VUZW1wbGF0ZU5vZGVBdHRyaWJ1dGUuY2FsbCh0aGlzLHQsbixpLHIsbyl9c3RhdGljIF9wYXJzZVRlbXBsYXRlTmVzdGVkVGVtcGxhdGUodCxuLGkpe2xldCByPWUuX3BhcnNlVGVtcGxhdGVOZXN0ZWRUZW1wbGF0ZS5jYWxsKHRoaXMsdCxuLGkpO2NvbnN0IG89dC5wYXJlbnROb2RlLGE9aS50ZW1wbGF0ZUluZm8scz0iZG9tLWlmIj09PW8ubG9jYWxOYW1lO0MmJihzfHwiZG9tLXJlcGVhdCI9PT1vLmxvY2FsTmFtZSkmJihvLnJlbW92ZUNoaWxkKHQpLChpPWkucGFyZW50SW5mbykudGVtcGxhdGVJbmZvPWEsaS5ub3RlZD0hMCxyPSExKTtsZXQgbD1hLmhvc3RQcm9wcztpZihBJiZzKWwmJihuLmhvc3RQcm9wcz1PYmplY3QuYXNzaWduKG4uaG9zdFByb3BzfHx7fSxsKSxDfHwoaS5wYXJlbnRJbmZvLm5vdGVkPSEwKSk7ZWxzZXtsZXQgdD0ieyI7Zm9yKGxldCBlIGluIGwpS3QodGhpcyxuLGksInByb3BlcnR5IiwiX2hvc3RfIitlLFt7bW9kZTp0LHNvdXJjZTplLGRlcGVuZGVuY2llczpbZV0saG9zdFByb3A6ITB9XSl9cmV0dXJuIHJ9c3RhdGljIF9wYXJzZUJpbmRpbmdzKHQsZSl7bGV0IG4saT1bXSxyPTA7Zm9yKDtudWxsIT09KG49cmUuZXhlYyh0KSk7KXtuLmluZGV4PnImJmkucHVzaCh7bGl0ZXJhbDp0LnNsaWNlKHIsbi5pbmRleCl9KTtsZXQgbz1uWzFdWzBdLGE9Qm9vbGVhbihuWzJdKSxzPW5bM10udHJpbSgpLGw9ITEsYz0iIix1PS0xOyJ7Ij09byYmKHU9cy5pbmRleE9mKCI6OiIpKT4wJiYoYz1zLnN1YnN0cmluZyh1KzIpLHM9cy5zdWJzdHJpbmcoMCx1KSxsPSEwKTtsZXQgaD1hZShzKSxkPVtdO2lmKGgpe2xldHthcmdzOnQsbWV0aG9kTmFtZTpufT1oO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbj10W2VdO24ubGl0ZXJhbHx8ZC5wdXNoKG4pfWxldCBpPWUuZHluYW1pY0ZuczsoaSYmaVtuXXx8aC5zdGF0aWMpJiYoZC5wdXNoKG4pLGguZHluYW1pY0ZuPSEwKX1lbHNlIGQucHVzaChzKTtpLnB1c2goe3NvdXJjZTpzLG1vZGU6byxuZWdhdGU6YSxjdXN0b21FdmVudDpsLHNpZ25hdHVyZTpoLGRlcGVuZGVuY2llczpkLGV2ZW50OmN9KSxyPXJlLmxhc3RJbmRleH1pZihyJiZyPHQubGVuZ3RoKXtsZXQgZT10LnN1YnN0cmluZyhyKTtlJiZpLnB1c2goe2xpdGVyYWw6ZX0pfXJldHVybiBpLmxlbmd0aD9pOm51bGx9c3RhdGljIF9ldmFsdWF0ZUJpbmRpbmcodCxlLG4saSxyLG8pe2xldCBhO3JldHVybiBhPWUuc2lnbmF0dXJlP25lKHQsbixpLDAsZS5zaWduYXR1cmUpOm4hPWUuc291cmNlP250KHQsZS5zb3VyY2UpOm8mJlgobik/bnQodCxuKTp0Ll9fZGF0YVtuXSxlLm5lZ2F0ZSYmKGE9IWEpLGF9fX0pKSxkZT1bXSxwZT1JKCh0PT57Y29uc3QgZT14dCh0KTtmdW5jdGlvbiBuKHQpe2NvbnN0IGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO3JldHVybiBlLnByb3RvdHlwZSBpbnN0YW5jZW9mIHI/ZTpudWxsfWZ1bmN0aW9uIGkodCl7aWYoIXQuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19vd25Qcm9wZXJ0aWVzIix0KSkpe2xldCBlPW51bGw7aWYodC5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJwcm9wZXJ0aWVzIix0KSkpe2NvbnN0IG49dC5wcm9wZXJ0aWVzO24mJihlPSgKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KZnVuY3Rpb24gZSh0KXtjb25zdCBlPXt9O2ZvcihsZXQgbiBpbiB0KXtjb25zdCBpPXRbbl07ZVtuXT0iZnVuY3Rpb24iPT10eXBlb2YgaT97dHlwZTppfTppfXJldHVybiBlfSkobikpfXQuX19vd25Qcm9wZXJ0aWVzPWV9cmV0dXJuIHQuX19vd25Qcm9wZXJ0aWVzfWNsYXNzIHIgZXh0ZW5kcyBle3N0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7aWYoIXRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19vYnNlcnZlZEF0dHJpYnV0ZXMiLHRoaXMpKSl7Y29uc3QgdD10aGlzLl9wcm9wZXJ0aWVzO3RoaXMuX19vYnNlcnZlZEF0dHJpYnV0ZXM9dD9PYmplY3Qua2V5cyh0KS5tYXAoKHQ9PnRoaXMucHJvdG90eXBlLl9hZGRQcm9wZXJ0eVRvQXR0cmlidXRlTWFwKHQpKSk6W119cmV0dXJuIHRoaXMuX19vYnNlcnZlZEF0dHJpYnV0ZXN9c3RhdGljIGZpbmFsaXplKCl7aWYoIXRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19maW5hbGl6ZWQiLHRoaXMpKSl7Y29uc3QgdD1uKHRoaXMpO3QmJnQuZmluYWxpemUoKSx0aGlzLl9fZmluYWxpemVkPSEwLHRoaXMuX2ZpbmFsaXplQ2xhc3MoKX19c3RhdGljIF9maW5hbGl6ZUNsYXNzKCl7Y29uc3QgdD1pKHRoaXMpO3QmJnRoaXMuY3JlYXRlUHJvcGVydGllcyh0KX1zdGF0aWMgZ2V0IF9wcm9wZXJ0aWVzKCl7aWYoIXRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19wcm9wZXJ0aWVzIix0aGlzKSkpe2NvbnN0IHQ9bih0aGlzKTt0aGlzLl9fcHJvcGVydGllcz1PYmplY3QuYXNzaWduKHt9LHQmJnQuX3Byb3BlcnRpZXMsaSh0aGlzKSl9cmV0dXJuIHRoaXMuX19wcm9wZXJ0aWVzfXN0YXRpYyB0eXBlRm9yUHJvcGVydHkodCl7Y29uc3QgZT10aGlzLl9wcm9wZXJ0aWVzW3RdO3JldHVybiBlJiZlLnR5cGV9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7dGhpcy5jb25zdHJ1Y3Rvci5maW5hbGl6ZSgpLHN1cGVyLl9pbml0aWFsaXplUHJvcGVydGllcygpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2smJnN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fZW5hYmxlUHJvcGVydGllcygpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2smJnN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9fXJldHVybiByfSkpLGZlPXdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLmNzc0J1aWxkLG1lPUkoKHQ9Pntjb25zdCBlPXBlKGhlKHQpKTtmdW5jdGlvbiBuKHQsZSxuLGkpe24uY29tcHV0ZWQmJihuLnJlYWRPbmx5PSEwKSxuLmNvbXB1dGVkJiYodC5faGFzUmVhZE9ubHlFZmZlY3QoZSk/Y29uc29sZS53YXJuKGBDYW5ub3QgcmVkZWZpbmUgY29tcHV0ZWQgcHJvcGVydHkgJyR7ZX0nLmApOnQuX2NyZWF0ZUNvbXB1dGVkUHJvcGVydHkoZSxuLmNvbXB1dGVkLGkpKSxuLnJlYWRPbmx5JiYhdC5faGFzUmVhZE9ubHlFZmZlY3QoZSk/dC5fY3JlYXRlUmVhZE9ubHlQcm9wZXJ0eShlLCFuLmNvbXB1dGVkKTohMT09PW4ucmVhZE9ubHkmJnQuX2hhc1JlYWRPbmx5RWZmZWN0KGUpJiZjb25zb2xlLndhcm4oYENhbm5vdCBtYWtlIHJlYWRPbmx5IHByb3BlcnR5ICcke2V9JyBub24tcmVhZE9ubHkuYCksbi5yZWZsZWN0VG9BdHRyaWJ1dGUmJiF0Ll9oYXNSZWZsZWN0RWZmZWN0KGUpP3QuX2NyZWF0ZVJlZmxlY3RlZFByb3BlcnR5KGUpOiExPT09bi5yZWZsZWN0VG9BdHRyaWJ1dGUmJnQuX2hhc1JlZmxlY3RFZmZlY3QoZSkmJmNvbnNvbGUud2FybihgQ2Fubm90IG1ha2UgcmVmbGVjdGVkIHByb3BlcnR5ICcke2V9JyBub24tcmVmbGVjdGVkLmApLG4ubm90aWZ5JiYhdC5faGFzTm90aWZ5RWZmZWN0KGUpP3QuX2NyZWF0ZU5vdGlmeWluZ1Byb3BlcnR5KGUpOiExPT09bi5ub3RpZnkmJnQuX2hhc05vdGlmeUVmZmVjdChlKSYmY29uc29sZS53YXJuKGBDYW5ub3QgbWFrZSBub3RpZnkgcHJvcGVydHkgJyR7ZX0nIG5vbi1ub3RpZnkuYCksbi5vYnNlcnZlciYmdC5fY3JlYXRlUHJvcGVydHlPYnNlcnZlcihlLG4ub2JzZXJ2ZXIsaVtuLm9ic2VydmVyXSksdC5fYWRkUHJvcGVydHlUb0F0dHJpYnV0ZU1hcChlKX1yZXR1cm4gY2xhc3MgZXh0ZW5kcyBle3N0YXRpYyBnZXQgcG9seW1lckVsZW1lbnRWZXJzaW9uKCl7cmV0dXJuIjMuNC4xIn1zdGF0aWMgX2ZpbmFsaXplQ2xhc3MoKXtlLl9maW5hbGl6ZUNsYXNzLmNhbGwodGhpcyk7Y29uc3QgdD0oZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX293bk9ic2VydmVycyIsdCkpfHwodC5fX293bk9ic2VydmVycz10Lmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIm9ic2VydmVycyIsdCkpP3Qub2JzZXJ2ZXJzOm51bGwpLHQuX19vd25PYnNlcnZlcnN9KSh0aGlzKTt0JiZ0aGlzLmNyZWF0ZU9ic2VydmVycyh0LHRoaXMuX3Byb3BlcnRpZXMpLHRoaXMuX3ByZXBhcmVUZW1wbGF0ZSgpfXN0YXRpYyBfcHJlcGFyZVRlbXBsYXRlKCl7bGV0IHQ9dGhpcy50ZW1wbGF0ZTt0JiYoInN0cmluZyI9PXR5cGVvZiB0Pyhjb25zb2xlLmVycm9yKCJ0ZW1wbGF0ZSBnZXR0ZXIgbXVzdCByZXR1cm4gSFRNTFRlbXBsYXRlRWxlbWVudCIpLHQ9bnVsbCk6d3x8KHQ9dC5jbG9uZU5vZGUoITApKSksdGhpcy5wcm90b3R5cGUuX3RlbXBsYXRlPXR9c3RhdGljIGNyZWF0ZVByb3BlcnRpZXModCl7Zm9yKGxldCBlIGluIHQpbih0aGlzLnByb3RvdHlwZSxlLHRbZV0sdCl9c3RhdGljIGNyZWF0ZU9ic2VydmVycyh0LGUpe2NvbnN0IG49dGhpcy5wcm90b3R5cGU7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspbi5fY3JlYXRlTWV0aG9kT2JzZXJ2ZXIodFtpXSxlKX1zdGF0aWMgZ2V0IHRlbXBsYXRlKCl7aWYoIXRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX3RlbXBsYXRlIix0aGlzKSkpe2NvbnN0IHQ9dGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX3RlbXBsYXRlIix0aGlzLnByb3RvdHlwZSkpP3RoaXMucHJvdG90eXBlLl90ZW1wbGF0ZTp2b2lkIDA7dGhpcy5fdGVtcGxhdGU9dm9pZCAwIT09dD90OnRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXMiLHRoaXMpKSYmKGZ1bmN0aW9uIGUodCl7bGV0IGU9bnVsbDtpZih0JiYoIWJ8fHgpJiYoZT1CLmltcG9ydCh0LCJ0ZW1wbGF0ZSIpLGImJiFlKSl0aHJvdyBuZXcgRXJyb3IoYHN0cmljdFRlbXBsYXRlUG9saWN5OiBleHBlY3RpbmcgZG9tLW1vZHVsZSBvciBudWxsIHRlbXBsYXRlIGZvciAke3R9YCk7cmV0dXJuIGV9KSh0aGlzLmlzKXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMucHJvdG90eXBlKS5jb25zdHJ1Y3Rvci50ZW1wbGF0ZX1yZXR1cm4gdGhpcy5fdGVtcGxhdGV9c3RhdGljIHNldCB0ZW1wbGF0ZSh0KXt0aGlzLl90ZW1wbGF0ZT10fXN0YXRpYyBnZXQgaW1wb3J0UGF0aCgpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9pbXBvcnRQYXRoIix0aGlzKSkpe2NvbnN0IHQ9dGhpcy5pbXBvcnRNZXRhO2lmKHQpdGhpcy5faW1wb3J0UGF0aD1mKHQudXJsKTtlbHNle2NvbnN0IHQ9Qi5pbXBvcnQodGhpcy5pcyk7dGhpcy5faW1wb3J0UGF0aD10JiZ0LmFzc2V0cGF0aHx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMucHJvdG90eXBlKS5jb25zdHJ1Y3Rvci5pbXBvcnRQYXRofX1yZXR1cm4gdGhpcy5faW1wb3J0UGF0aH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7dGhpcy5jb25zdHJ1Y3Rvci5maW5hbGl6ZSgpLHRoaXMuY29uc3RydWN0b3IuX2ZpbmFsaXplVGVtcGxhdGUodGhpcy5sb2NhbE5hbWUpLHN1cGVyLl9pbml0aWFsaXplUHJvcGVydGllcygpLHRoaXMucm9vdFBhdGg9Xyx0aGlzLmltcG9ydFBhdGg9dGhpcy5jb25zdHJ1Y3Rvci5pbXBvcnRQYXRoO2xldCB0PShmdW5jdGlvbiBlKHQpe2lmKCF0Lmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fcHJvcGVydHlEZWZhdWx0cyIsdCkpKXt0Ll9fcHJvcGVydHlEZWZhdWx0cz1udWxsO2xldCBlPXQuX3Byb3BlcnRpZXM7Zm9yKGxldCBuIGluIGUpe2xldCBpPWVbbl07InZhbHVlImluIGkmJih0Ll9fcHJvcGVydHlEZWZhdWx0cz10Ll9fcHJvcGVydHlEZWZhdWx0c3x8e30sdC5fX3Byb3BlcnR5RGVmYXVsdHNbbl09aSl9fXJldHVybiB0Ll9fcHJvcGVydHlEZWZhdWx0c30pKHRoaXMuY29uc3RydWN0b3IpO2lmKHQpZm9yKGxldCBlIGluIHQpe2xldCBuPXRbZV07aWYodGhpcy5fY2FuQXBwbHlQcm9wZXJ0eURlZmF1bHQoZSkpe2xldCB0PSJmdW5jdGlvbiI9PXR5cGVvZiBuLnZhbHVlP24udmFsdWUuY2FsbCh0aGlzKTpuLnZhbHVlO3RoaXMuX2hhc0FjY2Vzc29yKGUpP3RoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eShlLHQsITApOnRoaXNbZV09dH19fV9jYW5BcHBseVByb3BlcnR5RGVmYXVsdCh0KXtyZXR1cm4hdGhpcy5oYXNPd25Qcm9wZXJ0eSh0KX1zdGF0aWMgX3Byb2Nlc3NTdHlsZVRleHQodCxlKXtyZXR1cm4gcCh0LGUpfXN0YXRpYyBfZmluYWxpemVUZW1wbGF0ZSh0KXtjb25zdCBlPXRoaXMucHJvdG90eXBlLl90ZW1wbGF0ZTtpZihlJiYhZS5fX3BvbHltZXJGaW5hbGl6ZWQpe2UuX19wb2x5bWVyRmluYWxpemVkPSEwO2NvbnN0IG49dGhpcy5pbXBvcnRQYXRoOyhmdW5jdGlvbiBpKHQsZSxuLHIpe2lmKCFmZSl7Y29uc3QgaT1lLmNvbnRlbnQucXVlcnlTZWxlY3RvckFsbCgic3R5bGUiKSxvPUcoZSksYT0oZnVuY3Rpb24gcyh0KXtsZXQgZT1GKHQpO3JldHVybiBlP1coZSk6W119KShuKSxsPWUuY29udGVudC5maXJzdEVsZW1lbnRDaGlsZDtmb3IobGV0IG49MDtuPGEubGVuZ3RoO24rKyl7bGV0IGk9YVtuXTtpLnRleHRDb250ZW50PXQuX3Byb2Nlc3NTdHlsZVRleHQoaS50ZXh0Q29udGVudCxyKSxlLmNvbnRlbnQuaW5zZXJ0QmVmb3JlKGksbCl9bGV0IGM9MDtmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKyl7bGV0IG49b1tlXSxhPWlbY107YSE9PW4/KG49bi5jbG9uZU5vZGUoITApLGEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobixhKSk6YysrLG4udGV4dENvbnRlbnQ9dC5fcHJvY2Vzc1N0eWxlVGV4dChuLnRleHRDb250ZW50LHIpfX1pZih3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5wcmVwYXJlVGVtcGxhdGUoZSxuKSxQJiZmZSYmZyl7Y29uc3Qgbj1lLmNvbnRlbnQucXVlcnlTZWxlY3RvckFsbCgic3R5bGUiKTtpZihuKXtsZXQgZT0iIjtBcnJheS5mcm9tKG4pLmZvckVhY2goKHQ9PntlKz10LnRleHRDb250ZW50LHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX0pKSx0Ll9zdHlsZVNoZWV0PW5ldyBDU1NTdHlsZVNoZWV0LHQuX3N0eWxlU2hlZXQucmVwbGFjZVN5bmMoZSl9fX0pKHRoaXMsZSx0LG4/ZChuKToiIiksdGhpcy5wcm90b3R5cGUuX2JpbmRUZW1wbGF0ZShlKX19Y29ubmVjdGVkQ2FsbGJhY2soKXt3aW5kb3cuU2hhZHlDU1MmJnRoaXMuX3RlbXBsYXRlJiZ3aW5kb3cuU2hhZHlDU1Muc3R5bGVFbGVtZW50KHRoaXMpLHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCl9cmVhZHkoKXt0aGlzLl90ZW1wbGF0ZSYmKHRoaXMucm9vdD10aGlzLl9zdGFtcFRlbXBsYXRlKHRoaXMuX3RlbXBsYXRlKSx0aGlzLiQ9dGhpcy5yb290LiQpLHN1cGVyLnJlYWR5KCl9X3JlYWR5Q2xpZW50cygpe3RoaXMuX3RlbXBsYXRlJiYodGhpcy5yb290PXRoaXMuX2F0dGFjaERvbSh0aGlzLnJvb3QpKSxzdXBlci5fcmVhZHlDbGllbnRzKCl9X2F0dGFjaERvbSh0KXtjb25zdCBlPVkodGhpcyk7aWYoZS5hdHRhY2hTaGFkb3cpcmV0dXJuIHQ/KGUuc2hhZG93Um9vdHx8KGUuYXR0YWNoU2hhZG93KHttb2RlOiJvcGVuIixzaGFkeVVwZ3JhZGVGcmFnbWVudDp0fSksZS5zaGFkb3dSb290LmFwcGVuZENoaWxkKHQpLHRoaXMuY29uc3RydWN0b3IuX3N0eWxlU2hlZXQmJihlLnNoYWRvd1Jvb3QuYWRvcHRlZFN0eWxlU2hlZXRzPVt0aGlzLmNvbnN0cnVjdG9yLl9zdHlsZVNoZWV0XSkpLE0mJndpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmZsdXNoSW5pdGlhbChlLnNoYWRvd1Jvb3QpLGUuc2hhZG93Um9vdCk6bnVsbDt0aHJvdyBuZXcgRXJyb3IoIlNoYWRvd0RPTSBub3QgYXZhaWxhYmxlLiBQb2x5bWVyRWxlbWVudCBjYW4gY3JlYXRlIGRvbSBhcyBjaGlsZHJlbiBpbnN0ZWFkIG9mIGluIFNoYWRvd0RPTSBieSBzZXR0aW5nIGB0aGlzLnJvb3QgPSB0aGlzO2AgYmVmb3JlIGByZWFkeWAuIil9dXBkYXRlU3R5bGVzKHQpe3dpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLnN0eWxlU3VidHJlZSh0aGlzLHQpfXJlc29sdmVVcmwodCxlKXtyZXR1cm4hZSYmdGhpcy5pbXBvcnRQYXRoJiYoZT1kKHRoaXMuaW1wb3J0UGF0aCkpLGQodCxlKX1zdGF0aWMgX3BhcnNlVGVtcGxhdGVDb250ZW50KHQsbixpKXtyZXR1cm4gbi5keW5hbWljRm5zPW4uZHluYW1pY0Zuc3x8dGhpcy5fcHJvcGVydGllcyxlLl9wYXJzZVRlbXBsYXRlQ29udGVudC5jYWxsKHRoaXMsdCxuLGkpfXN0YXRpYyBfYWRkVGVtcGxhdGVQcm9wZXJ0eUVmZmVjdCh0LG4saSl7cmV0dXJuIVN8fG4gaW4gdGhpcy5fcHJvcGVydGllc3x8aS5pbmZvLnBhcnQuc2lnbmF0dXJlJiZpLmluZm8ucGFydC5zaWduYXR1cmUuc3RhdGljfHxpLmluZm8ucGFydC5ob3N0UHJvcHx8dC5uZXN0ZWRUZW1wbGF0ZXx8Y29uc29sZS53YXJuKGBQcm9wZXJ0eSAnJHtufScgdXNlZCBpbiB0ZW1wbGF0ZSBidXQgbm90IGRlY2xhcmVkIGluICdwcm9wZXJ0aWVzJzsgYXR0cmlidXRlIHdpbGwgbm90IGJlIG9ic2VydmVkLmApLGUuX2FkZFRlbXBsYXRlUHJvcGVydHlFZmZlY3QuY2FsbCh0aGlzLHQsbixpKX19fSkpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjbGFzcyBnZXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnZhbHVlPXQudG9TdHJpbmcoKX10b1N0cmluZygpe3JldHVybiB0aGlzLnZhbHVlfX1jb25zdCBfZT1mdW5jdGlvbiB0KGUsLi4ubil7Y29uc3QgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiBpLmlubmVySFRNTD1uLnJlZHVjZSgoKHQsbixpKT0+dCsoZnVuY3Rpb24gcih0KXtpZih0IGluc3RhbmNlb2YgSFRNTFRlbXBsYXRlRWxlbWVudClyZXR1cm4gdC5pbm5lckhUTUw7aWYodCBpbnN0YW5jZW9mIGdlKXJldHVybihmdW5jdGlvbiBlKHQpe2lmKHQgaW5zdGFuY2VvZiBnZSlyZXR1cm4gdC52YWx1ZTt0aHJvdyBuZXcgRXJyb3IoYG5vbi1saXRlcmFsIHZhbHVlIHBhc3NlZCB0byBQb2x5bWVyJ3MgaHRtbExpdGVyYWwgZnVuY3Rpb246ICR7dH1gKX0pKHQpO3Rocm93IG5ldyBFcnJvcihgbm9uLXRlbXBsYXRlIHZhbHVlIHBhc3NlZCB0byBQb2x5bWVyJ3MgaHRtbCBmdW5jdGlvbjogJHt0fWApfSkobikrZVtpKzFdKSxlWzBdKSxpfSx5ZT1tZShIVE1MRWxlbWVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovdmFyIHZlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e307ZnVuY3Rpb24gYmUodCl7aWYodC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLGkuZ2V0P2k6e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSl9KSksZX12YXIgeGUsd2UsU2U9e2V4cG9ydHM6e319OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBMb2Rhc2ggPGh0dHBzOi8vbG9kYXNoLmNvbS8+CiAgICAgKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyA8aHR0cHM6Ly9vcGVuanNmLm9yZy8+CiAgICAgKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+CiAgICAgKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPgogICAgICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzCiAgICAgKi94ZT1TZSx3ZT1TZS5leHBvcnRzLGZ1bmN0aW9uKCl7dmFyIHQsZT0iRXhwZWN0ZWQgYSBmdW5jdGlvbiIsbj0iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyIsaT0iX19sb2Rhc2hfcGxhY2Vob2xkZXJfXyIscj0zMixvPTEyOCxhPTEvMCxzPTkwMDcxOTkyNTQ3NDA5OTEsbD1OYU4sYz00Mjk0OTY3Mjk1LHU9W1siYXJ5IixvXSxbImJpbmQiLDFdLFsiYmluZEtleSIsMl0sWyJjdXJyeSIsOF0sWyJjdXJyeVJpZ2h0IiwxNl0sWyJmbGlwIiw1MTJdLFsicGFydGlhbCIscl0sWyJwYXJ0aWFsUmlnaHQiLDY0XSxbInJlYXJnIiwyNTZdXSxoPSJbb2JqZWN0IEFyZ3VtZW50c10iLGQ9IltvYmplY3QgQXJyYXldIixwPSJbb2JqZWN0IEJvb2xlYW5dIixmPSJbb2JqZWN0IERhdGVdIixtPSJbb2JqZWN0IEVycm9yXSIsZz0iW29iamVjdCBGdW5jdGlvbl0iLF89IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix5PSJbb2JqZWN0IE1hcF0iLHY9IltvYmplY3QgTnVtYmVyXSIsYj0iW29iamVjdCBPYmplY3RdIix4PSJbb2JqZWN0IFByb21pc2VdIix3PSJbb2JqZWN0IFJlZ0V4cF0iLFM9IltvYmplY3QgU2V0XSIsTT0iW29iamVjdCBTdHJpbmddIixFPSJbb2JqZWN0IFN5bWJvbF0iLFQ9IltvYmplY3QgV2Vha01hcF0iLEM9IltvYmplY3QgQXJyYXlCdWZmZXJdIixBPSJbb2JqZWN0IERhdGFWaWV3XSIsaz0iW29iamVjdCBGbG9hdDMyQXJyYXldIixMPSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iLFA9IltvYmplY3QgSW50OEFycmF5XSIsTj0iW29iamVjdCBJbnQxNkFycmF5XSIsST0iW29iamVjdCBJbnQzMkFycmF5XSIsUj0iW29iamVjdCBVaW50OEFycmF5XSIsTz0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLHo9IltvYmplY3QgVWludDE2QXJyYXldIixEPSJbb2JqZWN0IFVpbnQzMkFycmF5XSIsQj0vXGJfX3AgXCs9ICcnOy9nLEg9L1xiKF9fcCBcKz0pICcnIFwrL2csRj0vKF9fZVwoLio/XCl8XGJfX3RcKSkgXCtcbicnOy9nLFY9LyYoPzphbXB8bHR8Z3R8cXVvdHwjMzkpOy9nLFU9L1smPD4iJ10vZyxqPVJlZ0V4cChWLnNvdXJjZSksRz1SZWdFeHAoVS5zb3VyY2UpLFc9LzwlLShbXHNcU10rPyklPi9nLHE9LzwlKFtcc1xTXSs/KSU+L2csWT0vPCU9KFtcc1xTXSs/KSU+L2csWD0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLywkPS9eXHcqJC8sSz0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxaPS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxKPVJlZ0V4cChaLnNvdXJjZSksUT0vXlxzKy8sdHQ9L1xzLyxldD0vXHsoPzpcblwvXCogXFt3cmFwcGVkIHdpdGggLitcXSBcKlwvKT9cbj8vLG50PS9ce1xuXC9cKiBcW3dyYXBwZWQgd2l0aCAoLispXF0gXCovLGl0PS8sPyAmIC8scnQ9L1teXHgwMC1ceDJmXHgzYS1ceDQwXHg1Yi1ceDYwXHg3Yi1ceDdmXSsvZyxvdD0vWygpPSx7fVxbXF1cL1xzXS8sYXQ9L1xcKFxcKT8vZyxzdD0vXCRceyhbXlxcfV0qKD86XFwuW15cXH1dKikqKVx9L2csbHQ9L1x3KiQvLGN0PS9eWy0rXTB4WzAtOWEtZl0rJC9pLHV0PS9eMGJbMDFdKyQvaSxodD0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxkdD0vXjBvWzAtN10rJC9pLHB0PS9eKD86MHxbMS05XVxkKikkLyxmdD0vW1x4YzAtXHhkNlx4ZDgtXHhmNlx4ZjgtXHhmZlx1MDEwMC1cdTAxN2ZdL2csbXQ9LygkXikvLGd0PS9bJ1xuXHJcdTIwMjhcdTIwMjlcXF0vZyxfdD0iXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmIix5dD0iYS16XFx4ZGYtXFx4ZjZcXHhmOC1cXHhmZiIsdnQ9IkEtWlxceGMwLVxceGQ2XFx4ZDgtXFx4ZGUiLGJ0PSJcXHhhY1xceGIxXFx4ZDdcXHhmN1xceDAwLVxceDJmXFx4M2EtXFx4NDBcXHg1Yi1cXHg2MFxceDdiLVxceGJmXFx1MjAwMC1cXHUyMDZmIFxcdFxceDBiXFxmXFx4YTBcXHVmZWZmXFxuXFxyXFx1MjAyOFxcdTIwMjlcXHUxNjgwXFx1MTgwZVxcdTIwMDBcXHUyMDAxXFx1MjAwMlxcdTIwMDNcXHUyMDA0XFx1MjAwNVxcdTIwMDZcXHUyMDA3XFx1MjAwOFxcdTIwMDlcXHUyMDBhXFx1MjAyZlxcdTIwNWZcXHUzMDAwIix4dD0iWyIrYnQrIl0iLHd0PSJbIitfdCsiXSIsU3Q9IlxcZCsiLE10PSJbIit5dCsiXSIsRXQ9IlteXFx1ZDgwMC1cXHVkZmZmIitidCtTdCsiXFx1MjcwMC1cXHUyN2JmIit5dCt2dCsiXSIsVHQ9IlxcdWQ4M2NbXFx1ZGZmYi1cXHVkZmZmXSIsQ3Q9IlteXFx1ZDgwMC1cXHVkZmZmXSIsQXQ9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLGt0PSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixMdD0iWyIrdnQrIl0iLFB0PSIoPzoiK010KyJ8IitFdCsiKSIsTnQ9Iig/OiIrTHQrInwiK0V0KyIpIixJdD0iKD86WyfigJldKD86ZHxsbHxtfHJlfHN8dHx2ZSkpPyIsUnQ9Iig/Olsn4oCZXSg/OkR8TEx8TXxSRXxTfFR8VkUpKT8iLE90PSIoPzoiK3d0KyJ8IitUdCsiKT8iLHp0PSJbXFx1ZmUwZVxcdWZlMGZdPyIsRHQ9enQrT3QrIig/OlxcdTIwMGQoPzoiK1tDdCxBdCxrdF0uam9pbigifCIpKyIpIit6dCtPdCsiKSoiLEJ0PSIoPzoiK1siW1xcdTI3MDAtXFx1MjdiZl0iLEF0LGt0XS5qb2luKCJ8IikrIikiK0R0LEh0PSIoPzoiK1tDdCt3dCsiPyIsd3QsQXQsa3QsIltcXHVkODAwLVxcdWRmZmZdIl0uam9pbigifCIpKyIpIixGdD1SZWdFeHAoIlsn4oCZXSIsImciKSxWdD1SZWdFeHAod3QsImciKSxVdD1SZWdFeHAoVHQrIig/PSIrVHQrIil8IitIdCtEdCwiZyIpLGp0PVJlZ0V4cChbTHQrIj8iK010KyIrIitJdCsiKD89IitbeHQsTHQsIiQiXS5qb2luKCJ8IikrIikiLE50KyIrIitSdCsiKD89IitbeHQsTHQrUHQsIiQiXS5qb2luKCJ8IikrIikiLEx0KyI/IitQdCsiKyIrSXQsTHQrIisiK1J0LCJcXGQqKD86MVNUfDJORHwzUkR8KD8hWzEyM10pXFxkVEgpKD89XFxifFthLXpfXSkiLCJcXGQqKD86MXN0fDJuZHwzcmR8KD8hWzEyM10pXFxkdGgpKD89XFxifFtBLVpfXSkiLFN0LEJ0XS5qb2luKCJ8IiksImciKSxHdD1SZWdFeHAoIltcXHUyMDBkXFx1ZDgwMC1cXHVkZmZmIitfdCsiXFx1ZmUwZVxcdWZlMGZdIiksV3Q9L1thLXpdW0EtWl18W0EtWl17Mn1bYS16XXxbMC05XVthLXpBLVpdfFthLXpBLVpdWzAtOV18W15hLXpBLVowLTkgXS8scXQ9WyJBcnJheSIsIkJ1ZmZlciIsIkRhdGFWaWV3IiwiRGF0ZSIsIkVycm9yIiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiRnVuY3Rpb24iLCJJbnQ4QXJyYXkiLCJJbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIk1hcCIsIk1hdGgiLCJPYmplY3QiLCJQcm9taXNlIiwiUmVnRXhwIiwiU2V0IiwiU3RyaW5nIiwiU3ltYm9sIiwiVHlwZUVycm9yIiwiVWludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiVWludDE2QXJyYXkiLCJVaW50MzJBcnJheSIsIldlYWtNYXAiLCJfIiwiY2xlYXJUaW1lb3V0IiwiaXNGaW5pdGUiLCJwYXJzZUludCIsInNldFRpbWVvdXQiXSxZdD0tMSxYdD17fTtYdFtrXT1YdFtMXT1YdFtQXT1YdFtOXT1YdFtJXT1YdFtSXT1YdFtPXT1YdFt6XT1YdFtEXT0hMCxYdFtoXT1YdFtkXT1YdFtDXT1YdFtwXT1YdFtBXT1YdFtmXT1YdFttXT1YdFtnXT1YdFt5XT1YdFt2XT1YdFtiXT1YdFt3XT1YdFtTXT1YdFtNXT1YdFtUXT0hMTt2YXIgJHQ9e307JHRbaF09JHRbZF09JHRbQ109JHRbQV09JHRbcF09JHRbZl09JHRba109JHRbTF09JHRbUF09JHRbTl09JHRbSV09JHRbeV09JHRbdl09JHRbYl09JHRbd109JHRbU109JHRbTV09JHRbRV09JHRbUl09JHRbT109JHRbel09JHRbRF09ITAsJHRbbV09JHRbZ109JHRbVF09ITE7dmFyIEt0PXsiXFwiOiJcXCIsIiciOiInIiwiXG4iOiJuIiwiXHIiOiJyIiwiXHUyMDI4IjoidTIwMjgiLCJcdTIwMjkiOiJ1MjAyOSJ9LFp0PXBhcnNlRmxvYXQsSnQ9cGFyc2VJbnQsUXQ9Im9iamVjdCI9PXR5cGVvZiB2ZSYmdmUmJnZlLk9iamVjdD09PU9iamVjdCYmdmUsdGU9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixlZT1RdHx8dGV8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksbmU9d2UmJiF3ZS5ub2RlVHlwZSYmd2UsaWU9bmUmJnhlJiYheGUubm9kZVR5cGUmJnhlLHJlPWllJiZpZS5leHBvcnRzPT09bmUsb2U9cmUmJlF0LnByb2Nlc3MsYWU9KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBpZSYmaWUucmVxdWlyZSYmaWUucmVxdWlyZSgidXRpbCIpLnR5cGVzfHxvZSYmb2UuYmluZGluZyYmb2UuYmluZGluZygidXRpbCIpfWNhdGNoKHQpe319KSgpLHNlPWFlJiZhZS5pc0FycmF5QnVmZmVyLGxlPWFlJiZhZS5pc0RhdGUsY2U9YWUmJmFlLmlzTWFwLHVlPWFlJiZhZS5pc1JlZ0V4cCxoZT1hZSYmYWUuaXNTZXQsZGU9YWUmJmFlLmlzVHlwZWRBcnJheTtmdW5jdGlvbiBwZSh0LGUsbil7c3dpdGNoKG4ubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHQuY2FsbChlKTtjYXNlIDE6cmV0dXJuIHQuY2FsbChlLG5bMF0pO2Nhc2UgMjpyZXR1cm4gdC5jYWxsKGUsblswXSxuWzFdKTtjYXNlIDM6cmV0dXJuIHQuY2FsbChlLG5bMF0sblsxXSxuWzJdKX1yZXR1cm4gdC5hcHBseShlLG4pfWZ1bmN0aW9uIGZlKHQsZSxuLGkpe2Zvcih2YXIgcj0tMSxvPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK3I8bzspe3ZhciBhPXRbcl07ZShpLGEsbihhKSx0KX1yZXR1cm4gaX1mdW5jdGlvbiBtZSh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK248aSYmITEhPT1lKHRbbl0sbix0KTspO3JldHVybiB0fWZ1bmN0aW9uIGdlKHQsZSl7Zm9yKHZhciBuPW51bGw9PXQ/MDp0Lmxlbmd0aDtuLS0mJiExIT09ZSh0W25dLG4sdCk7KTtyZXR1cm4gdH1mdW5jdGlvbiBfZSh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK248aTspaWYoIWUodFtuXSxuLHQpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHllKHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoLHI9MCxvPVtdOysrbjxpOyl7dmFyIGE9dFtuXTtlKGEsbix0KSYmKG9bcisrXT1hKX1yZXR1cm4gb31mdW5jdGlvbiBiZSh0LGUpe3JldHVybiEobnVsbD09dHx8IXQubGVuZ3RoKSYmTmUodCxlLDApPi0xfWZ1bmN0aW9uIFNlKHQsZSxuKXtmb3IodmFyIGk9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7KytpPHI7KWlmKG4oZSx0W2ldKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBNZSh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aCxyPUFycmF5KGkpOysrbjxpOylyW25dPWUodFtuXSxuLHQpO3JldHVybiByfWZ1bmN0aW9uIEVlKHQsZSl7Zm9yKHZhciBuPS0xLGk9ZS5sZW5ndGgscj10Lmxlbmd0aDsrK248aTspdFtyK25dPWVbbl07cmV0dXJuIHR9ZnVuY3Rpb24gVGUodCxlLG4saSl7dmFyIHI9LTEsbz1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKGkmJm8mJihuPXRbKytyXSk7KytyPG87KW49ZShuLHRbcl0scix0KTtyZXR1cm4gbn1mdW5jdGlvbiBDZSh0LGUsbixpKXt2YXIgcj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKGkmJnImJihuPXRbLS1yXSk7ci0tOyluPWUobix0W3JdLHIsdCk7cmV0dXJuIG59ZnVuY3Rpb24gQWUodCxlKXtmb3IodmFyIG49LTEsaT1udWxsPT10PzA6dC5sZW5ndGg7KytuPGk7KWlmKGUodFtuXSxuLHQpKXJldHVybiEwO3JldHVybiExfXZhciBrZT16ZSgibGVuZ3RoIik7ZnVuY3Rpb24gTGUodCxlLG4pe3ZhciBpO3JldHVybiBuKHQsKGZ1bmN0aW9uKHQsbixyKXtpZihlKHQsbixyKSlyZXR1cm4gaT1uLCExfSkpLGl9ZnVuY3Rpb24gUGUodCxlLG4saSl7Zm9yKHZhciByPXQubGVuZ3RoLG89bisoaT8xOi0xKTtpP28tLTorK288cjspaWYoZSh0W29dLG8sdCkpcmV0dXJuIG87cmV0dXJuLTF9ZnVuY3Rpb24gTmUodCxlLG4pe3JldHVybiBlPT1lPyhmdW5jdGlvbiBpKHQsZSxuKXtmb3IodmFyIGk9bi0xLHI9dC5sZW5ndGg7KytpPHI7KWlmKHRbaV09PT1lKXJldHVybiBpO3JldHVybi0xfSkodCxlLG4pOlBlKHQsUmUsbil9ZnVuY3Rpb24gSWUodCxlLG4saSl7Zm9yKHZhciByPW4tMSxvPXQubGVuZ3RoOysrcjxvOylpZihpKHRbcl0sZSkpcmV0dXJuIHI7cmV0dXJuLTF9ZnVuY3Rpb24gUmUodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gT2UodCxlKXt2YXIgbj1udWxsPT10PzA6dC5sZW5ndGg7cmV0dXJuIG4/SGUodCxlKS9uOmx9ZnVuY3Rpb24gemUoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBudWxsPT1uP3Q6bltlXX19ZnVuY3Rpb24gRGUoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBudWxsPT1lP3Q6ZVtuXX19ZnVuY3Rpb24gQmUodCxlLG4saSxyKXtyZXR1cm4gcih0LChmdW5jdGlvbih0LHIsbyl7bj1pPyhpPSExLHQpOmUobix0LHIsbyl9KSksbn1mdW5jdGlvbiBIZShlLG4pe2Zvcih2YXIgaSxyPS0xLG89ZS5sZW5ndGg7KytyPG87KXt2YXIgYT1uKGVbcl0pO2EhPT10JiYoaT1pPT09dD9hOmkrYSl9cmV0dXJuIGl9ZnVuY3Rpb24gRmUodCxlKXtmb3IodmFyIG49LTEsaT1BcnJheSh0KTsrK248dDspaVtuXT1lKG4pO3JldHVybiBpfWZ1bmN0aW9uIFZlKHQpe3JldHVybiB0P3Quc2xpY2UoMCxhbih0KSsxKS5yZXBsYWNlKFEsIiIpOnR9ZnVuY3Rpb24gVWUodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfX1mdW5jdGlvbiBqZSh0LGUpe3JldHVybiBNZShlLChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKX1mdW5jdGlvbiBHZSh0LGUpe3JldHVybiB0LmhhcyhlKX1mdW5jdGlvbiBXZSh0LGUpe2Zvcih2YXIgbj0tMSxpPXQubGVuZ3RoOysrbjxpJiZOZShlLHRbbl0sMCk+LTE7KTtyZXR1cm4gbn1mdW5jdGlvbiBxZSh0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aDtuLS0mJk5lKGUsdFtuXSwwKT4tMTspO3JldHVybiBufWZ1bmN0aW9uIFllKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoLGk9MDtuLS07KXRbbl09PT1lJiYrK2k7cmV0dXJuIGl9dmFyIFhlPURlKHsiw4AiOiJBIiwiw4EiOiJBIiwiw4IiOiJBIiwiw4MiOiJBIiwiw4QiOiJBIiwiw4UiOiJBIiwiw6AiOiJhIiwiw6EiOiJhIiwiw6IiOiJhIiwiw6MiOiJhIiwiw6QiOiJhIiwiw6UiOiJhIiwiw4ciOiJDIiwiw6ciOiJjIiwiw5AiOiJEIiwiw7AiOiJkIiwiw4giOiJFIiwiw4kiOiJFIiwiw4oiOiJFIiwiw4siOiJFIiwiw6giOiJlIiwiw6kiOiJlIiwiw6oiOiJlIiwiw6siOiJlIiwiw4wiOiJJIiwiw40iOiJJIiwiw44iOiJJIiwiw48iOiJJIiwiw6wiOiJpIiwiw60iOiJpIiwiw64iOiJpIiwiw68iOiJpIiwiw5EiOiJOIiwiw7EiOiJuIiwiw5IiOiJPIiwiw5MiOiJPIiwiw5QiOiJPIiwiw5UiOiJPIiwiw5YiOiJPIiwiw5giOiJPIiwiw7IiOiJvIiwiw7MiOiJvIiwiw7QiOiJvIiwiw7UiOiJvIiwiw7YiOiJvIiwiw7giOiJvIiwiw5kiOiJVIiwiw5oiOiJVIiwiw5siOiJVIiwiw5wiOiJVIiwiw7kiOiJ1Iiwiw7oiOiJ1Iiwiw7siOiJ1Iiwiw7wiOiJ1Iiwiw50iOiJZIiwiw70iOiJ5Iiwiw78iOiJ5Iiwiw4YiOiJBZSIsIsOmIjoiYWUiLCLDniI6IlRoIiwiw74iOiJ0aCIsIsOfIjoic3MiLCLEgCI6IkEiLCLEgiI6IkEiLCLEhCI6IkEiLCLEgSI6ImEiLCLEgyI6ImEiLCLEhSI6ImEiLCLEhiI6IkMiLCLEiCI6IkMiLCLEiiI6IkMiLCLEjCI6IkMiLCLEhyI6ImMiLCLEiSI6ImMiLCLEiyI6ImMiLCLEjSI6ImMiLCLEjiI6IkQiLCLEkCI6IkQiLCLEjyI6ImQiLCLEkSI6ImQiLCLEkiI6IkUiLCLElCI6IkUiLCLEliI6IkUiLCLEmCI6IkUiLCLEmiI6IkUiLCLEkyI6ImUiLCLElSI6ImUiLCLElyI6ImUiLCLEmSI6ImUiLCLEmyI6ImUiLCLEnCI6IkciLCLEniI6IkciLCLEoCI6IkciLCLEoiI6IkciLCLEnSI6ImciLCLEnyI6ImciLCLEoSI6ImciLCLEoyI6ImciLCLEpCI6IkgiLCLEpiI6IkgiLCLEpSI6ImgiLCLEpyI6ImgiLCLEqCI6IkkiLCLEqiI6IkkiLCLErCI6IkkiLCLEriI6IkkiLCLEsCI6IkkiLCLEqSI6ImkiLCLEqyI6ImkiLCLErSI6ImkiLCLEryI6ImkiLCLEsSI6ImkiLCLEtCI6IkoiLCLEtSI6ImoiLCLEtiI6IksiLCLEtyI6ImsiLCLEuCI6ImsiLCLEuSI6IkwiLCLEuyI6IkwiLCLEvSI6IkwiLCLEvyI6IkwiLCLFgSI6IkwiLCLEuiI6ImwiLCLEvCI6ImwiLCLEviI6ImwiLCLFgCI6ImwiLCLFgiI6ImwiLCLFgyI6Ik4iLCLFhSI6Ik4iLCLFhyI6Ik4iLCLFiiI6Ik4iLCLFhCI6Im4iLCLFhiI6Im4iLCLFiCI6Im4iLCLFiyI6Im4iLCLFjCI6Ik8iLCLFjiI6Ik8iLCLFkCI6Ik8iLCLFjSI6Im8iLCLFjyI6Im8iLCLFkSI6Im8iLCLFlCI6IlIiLCLFliI6IlIiLCLFmCI6IlIiLCLFlSI6InIiLCLFlyI6InIiLCLFmSI6InIiLCLFmiI6IlMiLCLFnCI6IlMiLCLFniI6IlMiLCLFoCI6IlMiLCLFmyI6InMiLCLFnSI6InMiLCLFnyI6InMiLCLFoSI6InMiLCLFoiI6IlQiLCLFpCI6IlQiLCLFpiI6IlQiLCLFoyI6InQiLCLFpSI6InQiLCLFpyI6InQiLCLFqCI6IlUiLCLFqiI6IlUiLCLFrCI6IlUiLCLFriI6IlUiLCLFsCI6IlUiLCLFsiI6IlUiLCLFqSI6InUiLCLFqyI6InUiLCLFrSI6InUiLCLFryI6InUiLCLFsSI6InUiLCLFsyI6InUiLCLFtCI6IlciLCLFtSI6InciLCLFtiI6IlkiLCLFtyI6InkiLCLFuCI6IlkiLCLFuSI6IloiLCLFuyI6IloiLCLFvSI6IloiLCLFuiI6InoiLCLFvCI6InoiLCLFviI6InoiLCLEsiI6IklKIiwixLMiOiJpaiIsIsWSIjoiT2UiLCLFkyI6Im9lIiwixYkiOiInbiIsIsW/IjoicyJ9KSwkZT1EZSh7IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCciJzoiJnF1b3Q7IiwiJyI6IiYjMzk7In0pO2Z1bmN0aW9uIEtlKHQpe3JldHVybiJcXCIrS3RbdF19ZnVuY3Rpb24gWmUodCl7cmV0dXJuIEd0LnRlc3QodCl9ZnVuY3Rpb24gSmUodCl7dmFyIGU9LTEsbj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7blsrK2VdPVtpLHRdfSkpLG59ZnVuY3Rpb24gUWUodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQoZShuKSl9fWZ1bmN0aW9uIHRuKHQsZSl7Zm9yKHZhciBuPS0xLHI9dC5sZW5ndGgsbz0wLGE9W107KytuPHI7KXt2YXIgcz10W25dO3MhPT1lJiZzIT09aXx8KHRbbl09aSxhW28rK109bil9cmV0dXJuIGF9ZnVuY3Rpb24gZW4odCl7dmFyIGU9LTEsbj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe25bKytlXT10fSkpLG59ZnVuY3Rpb24gbm4odCl7dmFyIGU9LTEsbj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe25bKytlXT1bdCx0XX0pKSxufWZ1bmN0aW9uIHJuKHQpe3JldHVybiBaZSh0KT8oZnVuY3Rpb24gZSh0KXtmb3IodmFyIGU9VXQubGFzdEluZGV4PTA7VXQudGVzdCh0KTspKytlO3JldHVybiBlfSkodCk6a2UodCl9ZnVuY3Rpb24gb24odCl7cmV0dXJuIFplKHQpPyhmdW5jdGlvbiBlKHQpe3JldHVybiB0Lm1hdGNoKFV0KXx8W119KSh0KTooZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5zcGxpdCgiIil9KSh0KX1mdW5jdGlvbiBhbih0KXtmb3IodmFyIGU9dC5sZW5ndGg7ZS0tJiZ0dC50ZXN0KHQuY2hhckF0KGUpKTspO3JldHVybiBlfXZhciBzbj1EZSh7IiZhbXA7IjoiJiIsIiZsdDsiOiI8IiwiJmd0OyI6Ij4iLCImcXVvdDsiOiciJywiJiMzOTsiOiInIn0pLGxuPShmdW5jdGlvbiB0dChfdCl7dmFyIHl0LHZ0PShfdD1udWxsPT1fdD9lZTpsbi5kZWZhdWx0cyhlZS5PYmplY3QoKSxfdCxsbi5waWNrKGVlLHF0KSkpLkFycmF5LGJ0PV90LkRhdGUseHQ9X3QuRXJyb3Isd3Q9X3QuRnVuY3Rpb24sU3Q9X3QuTWF0aCxNdD1fdC5PYmplY3QsRXQ9X3QuUmVnRXhwLFR0PV90LlN0cmluZyxDdD1fdC5UeXBlRXJyb3IsQXQ9dnQucHJvdG90eXBlLGt0PU10LnByb3RvdHlwZSxMdD1fdFsiX19jb3JlLWpzX3NoYXJlZF9fIl0sUHQ9d3QucHJvdG90eXBlLnRvU3RyaW5nLE50PWt0Lmhhc093blByb3BlcnR5LEl0PTAsUnQ9KHl0PS9bXi5dKyQvLmV4ZWMoTHQmJkx0LmtleXMmJkx0LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIit5dDoiIixPdD1rdC50b1N0cmluZyx6dD1QdC5jYWxsKE10KSxEdD1lZS5fLEJ0PUV0KCJeIitQdC5jYWxsKE50KS5yZXBsYWNlKFosIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIiksSHQ9cmU/X3QuQnVmZmVyOnQsVXQ9X3QuU3ltYm9sLEd0PV90LlVpbnQ4QXJyYXksS3Q9SHQ/SHQuYWxsb2NVbnNhZmU6dCxRdD1RZShNdC5nZXRQcm90b3R5cGVPZixNdCksdGU9TXQuY3JlYXRlLG5lPWt0LnByb3BlcnR5SXNFbnVtZXJhYmxlLGllPUF0LnNwbGljZSxvZT1VdD9VdC5pc0NvbmNhdFNwcmVhZGFibGU6dCxhZT1VdD9VdC5pdGVyYXRvcjp0LHZlPVV0P1V0LnRvU3RyaW5nVGFnOnQseGU9KGZ1bmN0aW9uKCl7dHJ5e3ZhciB0PVBvKE10LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiB0KHt9LCIiLHt9KSx0fWNhdGNoKHQpe319KSgpLHdlPV90LmNsZWFyVGltZW91dCE9PWVlLmNsZWFyVGltZW91dCYmX3QuY2xlYXJUaW1lb3V0LGtlPWJ0JiZidC5ub3chPT1lZS5EYXRlLm5vdyYmYnQubm93LERlPV90LnNldFRpbWVvdXQhPT1lZS5zZXRUaW1lb3V0JiZfdC5zZXRUaW1lb3V0LGNuPVN0LmNlaWwsdW49U3QuZmxvb3IsaG49TXQuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGRuPUh0P0h0LmlzQnVmZmVyOnQscG49X3QuaXNGaW5pdGUsZm49QXQuam9pbixtbj1RZShNdC5rZXlzLE10KSxnbj1TdC5tYXgsX249U3QubWluLHluPWJ0Lm5vdyx2bj1fdC5wYXJzZUludCxibj1TdC5yYW5kb20seG49QXQucmV2ZXJzZSx3bj1QbyhfdCwiRGF0YVZpZXciKSxTbj1QbyhfdCwiTWFwIiksTW49UG8oX3QsIlByb21pc2UiKSxFbj1QbyhfdCwiU2V0IiksVG49UG8oX3QsIldlYWtNYXAiKSxDbj1QbyhNdCwiY3JlYXRlIiksQW49VG4mJm5ldyBUbixrbj17fSxMbj1vYSh3biksUG49b2EoU24pLE5uPW9hKE1uKSxJbj1vYShFbiksUm49b2EoVG4pLE9uPVV0P1V0LnByb3RvdHlwZTp0LHpuPU9uP09uLnZhbHVlT2Y6dCxEbj1Pbj9Pbi50b1N0cmluZzp0O2Z1bmN0aW9uIEJuKHQpe2lmKE1zKHQpJiYhaHModCkmJiEodCBpbnN0YW5jZW9mIFVuKSl7aWYodCBpbnN0YW5jZW9mIFZuKXJldHVybiB0O2lmKE50LmNhbGwodCwiX193cmFwcGVkX18iKSlyZXR1cm4gYWEodCl9cmV0dXJuIG5ldyBWbih0KX12YXIgSG49KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZnVuY3Rpb24obil7aWYoIVNzKG4pKXJldHVybnt9O2lmKHRlKXJldHVybiB0ZShuKTtlLnByb3RvdHlwZT1uO3ZhciBpPW5ldyBlO3JldHVybiBlLnByb3RvdHlwZT10LGl9fSkoKTtmdW5jdGlvbiBGbigpe31mdW5jdGlvbiBWbihlLG4pe3RoaXMuX193cmFwcGVkX189ZSx0aGlzLl9fYWN0aW9uc19fPVtdLHRoaXMuX19jaGFpbl9fPSEhbix0aGlzLl9faW5kZXhfXz0wLHRoaXMuX192YWx1ZXNfXz10fWZ1bmN0aW9uIFVuKHQpe3RoaXMuX193cmFwcGVkX189dCx0aGlzLl9fYWN0aW9uc19fPVtdLHRoaXMuX19kaXJfXz0xLHRoaXMuX19maWx0ZXJlZF9fPSExLHRoaXMuX19pdGVyYXRlZXNfXz1bXSx0aGlzLl9fdGFrZUNvdW50X189Yyx0aGlzLl9fdmlld3NfXz1bXX1mdW5jdGlvbiBqbih0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1mdW5jdGlvbiBHbih0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1mdW5jdGlvbiBXbih0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1mdW5jdGlvbiBxbih0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5fX2RhdGFfXz1uZXcgV247KytlPG47KXRoaXMuYWRkKHRbZV0pfWZ1bmN0aW9uIFluKHQpe3ZhciBlPXRoaXMuX19kYXRhX189bmV3IEduKHQpO3RoaXMuc2l6ZT1lLnNpemV9ZnVuY3Rpb24gWG4odCxlKXt2YXIgbj1ocyh0KSxpPSFuJiZ1cyh0KSxyPSFuJiYhaSYmZ3ModCksbz0hbiYmIWkmJiFyJiZPcyh0KSxhPW58fGl8fHJ8fG8scz1hP0ZlKHQubGVuZ3RoLFR0KTpbXSxsPXMubGVuZ3RoO2Zvcih2YXIgYyBpbiB0KSFlJiYhTnQuY2FsbCh0LGMpfHxhJiYoImxlbmd0aCI9PWN8fHImJigib2Zmc2V0Ij09Y3x8InBhcmVudCI9PWMpfHxvJiYoImJ1ZmZlciI9PWN8fCJieXRlTGVuZ3RoIj09Y3x8ImJ5dGVPZmZzZXQiPT1jKXx8Qm8oYyxsKSl8fHMucHVzaChjKTtyZXR1cm4gc31mdW5jdGlvbiAkbihlKXt2YXIgbj1lLmxlbmd0aDtyZXR1cm4gbj9lW3ByKDAsbi0xKV06dH1mdW5jdGlvbiBLbih0LGUpe3JldHVybiBlYShYcih0KSxvaShlLDAsdC5sZW5ndGgpKX1mdW5jdGlvbiBabih0KXtyZXR1cm4gZWEoWHIodCkpfWZ1bmN0aW9uIEpuKGUsbixpKXsoaSE9PXQmJiFzcyhlW25dLGkpfHxpPT09dCYmIShuIGluIGUpKSYmaWkoZSxuLGkpfWZ1bmN0aW9uIFFuKGUsbixpKXt2YXIgcj1lW25dO050LmNhbGwoZSxuKSYmc3MocixpKSYmKGkhPT10fHxuIGluIGUpfHxpaShlLG4saSl9ZnVuY3Rpb24gdGkodCxlKXtmb3IodmFyIG49dC5sZW5ndGg7bi0tOylpZihzcyh0W25dWzBdLGUpKXJldHVybiBuO3JldHVybi0xfWZ1bmN0aW9uIGVpKHQsZSxuLGkpe3JldHVybiBOaSh0LChmdW5jdGlvbih0LHIsbyl7ZShpLHQsbih0KSxvKX0pKSxpfWZ1bmN0aW9uIG5pKHQsZSl7cmV0dXJuIHQmJiRyKGUscmwoZSksdCl9ZnVuY3Rpb24gaWkodCxlLG4peyJfX3Byb3RvX18iPT1lJiZ4ZT94ZSh0LGUse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm4sd3JpdGFibGU6ITB9KTp0W2VdPW59ZnVuY3Rpb24gcmkoZSxuKXtmb3IodmFyIGk9LTEscj1uLmxlbmd0aCxvPXZ0KHIpLGE9bnVsbD09ZTsrK2k8cjspb1tpXT1hP3Q6UXMoZSxuW2ldKTtyZXR1cm4gb31mdW5jdGlvbiBvaShlLG4saSl7cmV0dXJuIGU9PWUmJihpIT09dCYmKGU9ZTw9aT9lOmkpLG4hPT10JiYoZT1lPj1uP2U6bikpLGV9ZnVuY3Rpb24gYWkoZSxuLGkscixvLGEpe3ZhciBzLGw9MSZuLGM9MiZuLHU9NCZuO2lmKGkmJihzPW8/aShlLHIsbyxhKTppKGUpKSxzIT09dClyZXR1cm4gcztpZighU3MoZSkpcmV0dXJuIGU7dmFyIGQ9aHMoZSk7aWYoZCl7aWYocz0oZnVuY3Rpb24gbSh0KXt2YXIgZT10Lmxlbmd0aCxuPW5ldyB0LmNvbnN0cnVjdG9yKGUpO3JldHVybiBlJiYic3RyaW5nIj09dHlwZW9mIHRbMF0mJk50LmNhbGwodCwiaW5kZXgiKSYmKG4uaW5kZXg9dC5pbmRleCxuLmlucHV0PXQuaW5wdXQpLG59KShlKSwhbClyZXR1cm4gWHIoZSxzKX1lbHNle3ZhciB4PVJvKGUpLFQ9eD09Z3x8eD09XztpZihncyhlKSlyZXR1cm4gVXIoZSxsKTtpZih4PT1ifHx4PT1ofHxUJiYhbyl7aWYocz1jfHxUP3t9OnpvKGUpLCFsKXJldHVybiBjPyhmdW5jdGlvbiBIKHQsZSl7cmV0dXJuICRyKHQsSW8odCksZSl9KShlLChmdW5jdGlvbiBCKHQsZSl7cmV0dXJuIHQmJiRyKGUsb2woZSksdCl9KShzLGUpKTooZnVuY3Rpb24gRih0LGUpe3JldHVybiAkcih0LE5vKHQpLGUpfSkoZSxuaShzLGUpKX1lbHNle2lmKCEkdFt4XSlyZXR1cm4gbz9lOnt9O3M9KGZ1bmN0aW9uIFYodCxlLG4pe3ZhciBpPXQuY29uc3RydWN0b3I7c3dpdGNoKGUpe2Nhc2UgQzpyZXR1cm4ganIodCk7Y2FzZSBwOmNhc2UgZjpyZXR1cm4gbmV3IGkoK3QpO2Nhc2UgQTpyZXR1cm4oZnVuY3Rpb24gcih0LGUpe3ZhciBuPWU/anIodC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihuLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpfSkodCxuKTtjYXNlIGs6Y2FzZSBMOmNhc2UgUDpjYXNlIE46Y2FzZSBJOmNhc2UgUjpjYXNlIE86Y2FzZSB6OmNhc2UgRDpyZXR1cm4gR3IodCxuKTtjYXNlIHk6cmV0dXJuIG5ldyBpO2Nhc2UgdjpjYXNlIE06cmV0dXJuIG5ldyBpKHQpO2Nhc2UgdzpyZXR1cm4oZnVuY3Rpb24gbyh0KXt2YXIgZT1uZXcgdC5jb25zdHJ1Y3Rvcih0LnNvdXJjZSxsdC5leGVjKHQpKTtyZXR1cm4gZS5sYXN0SW5kZXg9dC5sYXN0SW5kZXgsZX0pKHQpO2Nhc2UgUzpyZXR1cm4gbmV3IGk7Y2FzZSBFOnJldHVybihmdW5jdGlvbiBhKHQpe3JldHVybiB6bj9NdCh6bi5jYWxsKHQpKTp7fX0pKHQpfX0pKGUseCxsKX19YXx8KGE9bmV3IFluKTt2YXIgVT1hLmdldChlKTtpZihVKXJldHVybiBVO2Euc2V0KGUscyksUHMoZSk/ZS5mb3JFYWNoKChmdW5jdGlvbih0KXtzLmFkZChhaSh0LG4saSx0LGUsYSkpfSkpOkVzKGUpJiZlLmZvckVhY2goKGZ1bmN0aW9uKHQscil7cy5zZXQocixhaSh0LG4saSxyLGUsYSkpfSkpO3ZhciBqPWQ/dDoodT9jP01vOlNvOmM/b2w6cmwpKGUpO3JldHVybiBtZShqfHxlLChmdW5jdGlvbih0LHIpe2omJih0PWVbcj10XSksUW4ocyxyLGFpKHQsbixpLHIsZSxhKSl9KSksc31mdW5jdGlvbiBzaShlLG4saSl7dmFyIHI9aS5sZW5ndGg7aWYobnVsbD09ZSlyZXR1cm4hcjtmb3IoZT1NdChlKTtyLS07KXt2YXIgbz1pW3JdLGE9ZVtvXTtpZihhPT09dCYmIShvIGluIGUpfHwhKDAsbltvXSkoYSkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gbGkobixpLHIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBDdChlKTtyZXR1cm4gWm8oKGZ1bmN0aW9uKCl7bi5hcHBseSh0LHIpfSksaSl9ZnVuY3Rpb24gY2kodCxlLG4saSl7dmFyIHI9LTEsbz1iZSxhPSEwLHM9dC5sZW5ndGgsbD1bXSxjPWUubGVuZ3RoO2lmKCFzKXJldHVybiBsO24mJihlPU1lKGUsVWUobikpKSxpPyhvPVNlLGE9ITEpOmUubGVuZ3RoPj0yMDAmJihvPUdlLGE9ITEsZT1uZXcgcW4oZSkpO3Q6Zm9yKDsrK3I8czspe3ZhciB1PXRbcl0saD1udWxsPT1uP3U6bih1KTtpZih1PWl8fDAhPT11P3U6MCxhJiZoPT1oKXtmb3IodmFyIGQ9YztkLS07KWlmKGVbZF09PT1oKWNvbnRpbnVlIHQ7bC5wdXNoKHUpfWVsc2UgbyhlLGgsaSl8fGwucHVzaCh1KX1yZXR1cm4gbH1Cbi50ZW1wbGF0ZVNldHRpbmdzPXtlc2NhcGU6VyxldmFsdWF0ZTpxLGludGVycG9sYXRlOlksdmFyaWFibGU6IiIsaW1wb3J0czp7XzpCbn19LChCbi5wcm90b3R5cGU9Rm4ucHJvdG90eXBlKS5jb25zdHJ1Y3Rvcj1CbiwoVm4ucHJvdG90eXBlPUhuKEZuLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPVZuLChVbi5wcm90b3R5cGU9SG4oRm4ucHJvdG90eXBlKSkuY29uc3RydWN0b3I9VW4sam4ucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIHVpKCl7dGhpcy5fX2RhdGFfXz1Dbj9DbihudWxsKTp7fSx0aGlzLnNpemU9MH0sam4ucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBoaSh0KXt2YXIgZT10aGlzLmhhcyh0KSYmZGVsZXRlIHRoaXMuX19kYXRhX19bdF07cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0sam4ucHJvdG90eXBlLmdldD1mdW5jdGlvbiBkaShlKXt2YXIgaT10aGlzLl9fZGF0YV9fO2lmKENuKXt2YXIgcj1pW2VdO3JldHVybiByPT09bj90OnJ9cmV0dXJuIE50LmNhbGwoaSxlKT9pW2VdOnR9LGpuLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gcGkoZSl7dmFyIG49dGhpcy5fX2RhdGFfXztyZXR1cm4gQ24/bltlXSE9PXQ6TnQuY2FsbChuLGUpfSxqbi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIGZpKGUsaSl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyhlKT8wOjEscltlXT1DbiYmaT09PXQ/bjppLHRoaXN9LEduLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBtaSgpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9LEduLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24gZ2kodCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPXRpKGUsdCk7cmV0dXJuIShuPDB8fChuPT1lLmxlbmd0aC0xP2UucG9wKCk6aWUuY2FsbChlLG4sMSksLS10aGlzLnNpemUsMCkpfSxHbi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIF9pKGUpe3ZhciBuPXRoaXMuX19kYXRhX18saT10aShuLGUpO3JldHVybiBpPDA/dDpuW2ldWzFdfSxHbi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIHlpKHQpe3JldHVybiB0aSh0aGlzLl9fZGF0YV9fLHQpPi0xfSxHbi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIHZpKHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXyxpPXRpKG4sdCk7cmV0dXJuIGk8MD8oKyt0aGlzLnNpemUsbi5wdXNoKFt0LGVdKSk6bltpXVsxXT1lLHRoaXN9LFduLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBiaSgpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IGpuLG1hcDpuZXcoU258fEduKSxzdHJpbmc6bmV3IGpufX0sV24ucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiB4aSh0KXt2YXIgZT1rbyh0aGlzLHQpLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxXbi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIHdpKHQpe3JldHVybiBrbyh0aGlzLHQpLmdldCh0KX0sV24ucHJvdG90eXBlLmhhcz1mdW5jdGlvbiBTaSh0KXtyZXR1cm4ga28odGhpcyx0KS5oYXModCl9LFduLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24gTWkodCxlKXt2YXIgbj1rbyh0aGlzLHQpLGk9bi5zaXplO3JldHVybiBuLnNldCh0LGUpLHRoaXMuc2l6ZSs9bi5zaXplPT1pPzA6MSx0aGlzfSxxbi5wcm90b3R5cGUuYWRkPXFuLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uIEVpKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldCh0LG4pLHRoaXN9LHFuLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gVGkodCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfSxZbi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gQ2koKXt0aGlzLl9fZGF0YV9fPW5ldyBHbix0aGlzLnNpemU9MH0sWW4ucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBBaSh0KXt2YXIgZT10aGlzLl9fZGF0YV9fLG49ZS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZT1lLnNpemUsbn0sWW4ucHJvdG90eXBlLmdldD1mdW5jdGlvbiBraSh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQodCl9LFluLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gTGkodCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfSxZbi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIFBpKHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXztpZihuIGluc3RhbmNlb2YgR24pe3ZhciBpPW4uX19kYXRhX187aWYoIVNufHxpLmxlbmd0aDwxOTkpcmV0dXJuIGkucHVzaChbdCxlXSksdGhpcy5zaXplPSsrbi5zaXplLHRoaXM7bj10aGlzLl9fZGF0YV9fPW5ldyBXbihpKX1yZXR1cm4gbi5zZXQodCxlKSx0aGlzLnNpemU9bi5zaXplLHRoaXN9O3ZhciBOaT1KcihGaSksSWk9SnIoVmksITApO2Z1bmN0aW9uIFJpKHQsZSl7dmFyIG49ITA7cmV0dXJuIE5pKHQsKGZ1bmN0aW9uKHQsaSxyKXtyZXR1cm4gbj0hIWUodCxpLHIpfSkpLG59ZnVuY3Rpb24gT2koZSxuLGkpe2Zvcih2YXIgcj0tMSxvPWUubGVuZ3RoOysrcjxvOyl7dmFyIGE9ZVtyXSxzPW4oYSk7aWYobnVsbCE9cyYmKGw9PT10P3M9PXMmJiFScyhzKTppKHMsbCkpKXZhciBsPXMsYz1hfXJldHVybiBjfWZ1bmN0aW9uIHppKHQsZSl7dmFyIG49W107cmV0dXJuIE5pKHQsKGZ1bmN0aW9uKHQsaSxyKXtlKHQsaSxyKSYmbi5wdXNoKHQpfSkpLG59ZnVuY3Rpb24gRGkodCxlLG4saSxyKXt2YXIgbz0tMSxhPXQubGVuZ3RoO2ZvcihufHwobj1Ebykscnx8KHI9W10pOysrbzxhOyl7dmFyIHM9dFtvXTtlPjAmJm4ocyk/ZT4xP0RpKHMsZS0xLG4saSxyKTpFZShyLHMpOml8fChyW3IubGVuZ3RoXT1zKX1yZXR1cm4gcn12YXIgQmk9UXIoKSxIaT1RcighMCk7ZnVuY3Rpb24gRmkodCxlKXtyZXR1cm4gdCYmQmkodCxlLHJsKX1mdW5jdGlvbiBWaSh0LGUpe3JldHVybiB0JiZIaSh0LGUscmwpfWZ1bmN0aW9uIFVpKHQsZSl7cmV0dXJuIHllKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBicyh0W2VdKX0pKX1mdW5jdGlvbiBqaShlLG4pe2Zvcih2YXIgaT0wLHI9KG49QnIobixlKSkubGVuZ3RoO251bGwhPWUmJmk8cjspZT1lW3JhKG5baSsrXSldO3JldHVybiBpJiZpPT1yP2U6dH1mdW5jdGlvbiBHaSh0LGUsbil7dmFyIGk9ZSh0KTtyZXR1cm4gaHModCk/aTpFZShpLG4odCkpfWZ1bmN0aW9uIFdpKGUpe3JldHVybiBudWxsPT1lP2U9PT10PyJbb2JqZWN0IFVuZGVmaW5lZF0iOiJbb2JqZWN0IE51bGxdIjp2ZSYmdmUgaW4gTXQoZSk/KGZ1bmN0aW9uIG4oZSl7dmFyIG49TnQuY2FsbChlLHZlKSxpPWVbdmVdO3RyeXtlW3ZlXT10O3ZhciByPSEwfWNhdGNoKHQpe312YXIgbz1PdC5jYWxsKGUpO3JldHVybiByJiYobj9lW3ZlXT1pOmRlbGV0ZSBlW3ZlXSksb30pKGUpOihmdW5jdGlvbiBpKHQpe3JldHVybiBPdC5jYWxsKHQpfSkoZSl9ZnVuY3Rpb24gcWkodCxlKXtyZXR1cm4gdD5lfWZ1bmN0aW9uIFlpKHQsZSl7cmV0dXJuIG51bGwhPXQmJk50LmNhbGwodCxlKX1mdW5jdGlvbiBYaSh0LGUpe3JldHVybiBudWxsIT10JiZlIGluIE10KHQpfWZ1bmN0aW9uICRpKGUsbixpKXtmb3IodmFyIHI9aT9TZTpiZSxvPWVbMF0ubGVuZ3RoLGE9ZS5sZW5ndGgscz1hLGw9dnQoYSksYz0xLzAsdT1bXTtzLS07KXt2YXIgaD1lW3NdO3MmJm4mJihoPU1lKGgsVWUobikpKSxjPV9uKGgubGVuZ3RoLGMpLGxbc109IWkmJihufHxvPj0xMjAmJmgubGVuZ3RoPj0xMjApP25ldyBxbihzJiZoKTp0fWg9ZVswXTt2YXIgZD0tMSxwPWxbMF07dDpmb3IoOysrZDxvJiZ1Lmxlbmd0aDxjOyl7dmFyIGY9aFtkXSxtPW4/bihmKTpmO2lmKGY9aXx8MCE9PWY/ZjowLCEocD9HZShwLG0pOnIodSxtLGkpKSl7Zm9yKHM9YTstLXM7KXt2YXIgZz1sW3NdO2lmKCEoZz9HZShnLG0pOnIoZVtzXSxtLGkpKSljb250aW51ZSB0fXAmJnAucHVzaChtKSx1LnB1c2goZil9fXJldHVybiB1fWZ1bmN0aW9uIEtpKGUsbixpKXt2YXIgcj1udWxsPT0oZT1ZbyhlLG49QnIobixlKSkpP2U6ZVtyYShfYShuKSldO3JldHVybiBudWxsPT1yP3Q6cGUocixlLGkpfWZ1bmN0aW9uIFppKHQpe3JldHVybiBNcyh0KSYmV2kodCk9PWh9ZnVuY3Rpb24gSmkoZSxuLGkscixvKXtyZXR1cm4gZT09PW58fChudWxsPT1lfHxudWxsPT1ufHwhTXMoZSkmJiFNcyhuKT9lIT1lJiZuIT1uOihmdW5jdGlvbiBhKGUsbixpLHIsbyxzKXt2YXIgbD1ocyhlKSxjPWhzKG4pLHU9bD9kOlJvKGUpLGc9Yz9kOlJvKG4pLF89KHU9dT09aD9iOnUpPT1iLHg9KGc9Zz09aD9iOmcpPT1iLFQ9dT09ZztpZihUJiZncyhlKSl7aWYoIWdzKG4pKXJldHVybiExO2w9ITAsXz0hMX1pZihUJiYhXylyZXR1cm4gc3x8KHM9bmV3IFluKSxsfHxPcyhlKT94byhlLG4saSxyLG8scyk6KGZ1bmN0aW9uIGsodCxlLG4saSxyLG8sYSl7c3dpdGNoKG4pe2Nhc2UgQTppZih0LmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8dC5ieXRlT2Zmc2V0IT1lLmJ5dGVPZmZzZXQpcmV0dXJuITE7dD10LmJ1ZmZlcixlPWUuYnVmZmVyO2Nhc2UgQzpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhbyhuZXcgR3QodCksbmV3IEd0KGUpKSk7Y2FzZSBwOmNhc2UgZjpjYXNlIHY6cmV0dXJuIHNzKCt0LCtlKTtjYXNlIG06cmV0dXJuIHQubmFtZT09ZS5uYW1lJiZ0Lm1lc3NhZ2U9PWUubWVzc2FnZTtjYXNlIHc6Y2FzZSBNOnJldHVybiB0PT1lKyIiO2Nhc2UgeTp2YXIgcz1KZTtjYXNlIFM6aWYoc3x8KHM9ZW4pLHQuc2l6ZSE9ZS5zaXplJiYhKDEmaSkpcmV0dXJuITE7dmFyIGw9YS5nZXQodCk7aWYobClyZXR1cm4gbD09ZTtpfD0yLGEuc2V0KHQsZSk7dmFyIGM9eG8ocyh0KSxzKGUpLGkscixvLGEpO3JldHVybiBhLmRlbGV0ZSh0KSxjO2Nhc2UgRTppZih6bilyZXR1cm4gem4uY2FsbCh0KT09em4uY2FsbChlKX1yZXR1cm4hMX0pKGUsbix1LGkscixvLHMpO2lmKCEoMSZpKSl7dmFyIEw9XyYmTnQuY2FsbChlLCJfX3dyYXBwZWRfXyIpLFA9eCYmTnQuY2FsbChuLCJfX3dyYXBwZWRfXyIpO2lmKEx8fFApe3ZhciBOPUw/ZS52YWx1ZSgpOmUsST1QP24udmFsdWUoKTpuO3JldHVybiBzfHwocz1uZXcgWW4pLG8oTixJLGkscixzKX19cmV0dXJuISFUJiYoc3x8KHM9bmV3IFluKSwoZnVuY3Rpb24gUihlLG4saSxyLG8sYSl7dmFyIHM9MSZpLGw9U28oZSksYz1sLmxlbmd0aDtpZihjIT1TbyhuKS5sZW5ndGgmJiFzKXJldHVybiExO2Zvcih2YXIgdT1jO3UtLTspe3ZhciBoPWxbdV07aWYoIShzP2ggaW4gbjpOdC5jYWxsKG4saCkpKXJldHVybiExfXZhciBkPWEuZ2V0KGUpLHA9YS5nZXQobik7aWYoZCYmcClyZXR1cm4gZD09biYmcD09ZTt2YXIgZj0hMDthLnNldChlLG4pLGEuc2V0KG4sZSk7Zm9yKHZhciBtPXM7Kyt1PGM7KXt2YXIgZz1lW2g9bFt1XV0sXz1uW2hdO2lmKHIpdmFyIHk9cz9yKF8sZyxoLG4sZSxhKTpyKGcsXyxoLGUsbixhKTtpZighKHk9PT10P2c9PT1ffHxvKGcsXyxpLHIsYSk6eSkpe2Y9ITE7YnJlYWt9bXx8KG09ImNvbnN0cnVjdG9yIj09aCl9aWYoZiYmIW0pe3ZhciB2PWUuY29uc3RydWN0b3IsYj1uLmNvbnN0cnVjdG9yO3Y9PWJ8fCEoImNvbnN0cnVjdG9yImluIGUpfHwhKCJjb25zdHJ1Y3RvciJpbiBuKXx8ImZ1bmN0aW9uIj09dHlwZW9mIHYmJnYgaW5zdGFuY2VvZiB2JiYiZnVuY3Rpb24iPT10eXBlb2YgYiYmYiBpbnN0YW5jZW9mIGJ8fChmPSExKX1yZXR1cm4gYS5kZWxldGUoZSksYS5kZWxldGUobiksZn0pKGUsbixpLHIsbyxzKSl9KShlLG4saSxyLEppLG8pKX1mdW5jdGlvbiBRaShlLG4saSxyKXt2YXIgbz1pLmxlbmd0aCxhPW8scz0hcjtpZihudWxsPT1lKXJldHVybiFhO2ZvcihlPU10KGUpO28tLTspe3ZhciBsPWlbb107aWYocyYmbFsyXT9sWzFdIT09ZVtsWzBdXTohKGxbMF1pbiBlKSlyZXR1cm4hMX1mb3IoOysrbzxhOyl7dmFyIGM9KGw9aVtvXSlbMF0sdT1lW2NdLGg9bFsxXTtpZihzJiZsWzJdKXtpZih1PT09dCYmIShjIGluIGUpKXJldHVybiExfWVsc2V7dmFyIGQ9bmV3IFluO2lmKHIpdmFyIHA9cih1LGgsYyxlLG4sZCk7aWYoIShwPT09dD9KaShoLHUsMyxyLGQpOnApKXJldHVybiExfX1yZXR1cm4hMH1mdW5jdGlvbiB0cih0KXtyZXR1cm4hKCFTcyh0KXx8KGZ1bmN0aW9uIGUodCl7cmV0dXJuISFSdCYmUnQgaW4gdH0pKHQpKSYmKGJzKHQpP0J0Omh0KS50ZXN0KG9hKHQpKX1mdW5jdGlvbiBlcih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGw9PXQ/TGw6Im9iamVjdCI9PXR5cGVvZiB0P2hzKHQpP2FyKHRbMF0sdFsxXSk6b3IodCk6SGwodCl9ZnVuY3Rpb24gbnIodCl7aWYoIWpvKHQpKXJldHVybiBtbih0KTt2YXIgZT1bXTtmb3IodmFyIG4gaW4gTXQodCkpTnQuY2FsbCh0LG4pJiYiY29uc3RydWN0b3IiIT1uJiZlLnB1c2gobik7cmV0dXJuIGV9ZnVuY3Rpb24gaXIodCxlKXtyZXR1cm4gdDxlfWZ1bmN0aW9uIHJyKHQsZSl7dmFyIG49LTEsaT1mcyh0KT92dCh0Lmxlbmd0aCk6W107cmV0dXJuIE5pKHQsKGZ1bmN0aW9uKHQscixvKXtpWysrbl09ZSh0LHIsbyl9KSksaX1mdW5jdGlvbiBvcih0KXt2YXIgZT1Mbyh0KTtyZXR1cm4gMT09ZS5sZW5ndGgmJmVbMF1bMl0/V28oZVswXVswXSxlWzBdWzFdKTpmdW5jdGlvbihuKXtyZXR1cm4gbj09PXR8fFFpKG4sdCxlKX19ZnVuY3Rpb24gYXIoZSxuKXtyZXR1cm4gRm8oZSkmJkdvKG4pP1dvKHJhKGUpLG4pOmZ1bmN0aW9uKGkpe3ZhciByPVFzKGksZSk7cmV0dXJuIHI9PT10JiZyPT09bj90bChpLGUpOkppKG4sciwzKX19ZnVuY3Rpb24gc3IoZSxuLGkscixvKXtlIT09biYmQmkobiwoZnVuY3Rpb24oYSxzKXtpZihvfHwobz1uZXcgWW4pLFNzKGEpKSEoZnVuY3Rpb24gbChlLG4saSxyLG8sYSxzKXt2YXIgbD0kbyhlLGkpLGM9JG8obixpKSx1PXMuZ2V0KGMpO2lmKHUpSm4oZSxpLHUpO2Vsc2V7dmFyIGg9YT9hKGwsYyxpKyIiLGUsbixzKTp0LGQ9aD09PXQ7aWYoZCl7dmFyIHA9aHMoYyksZj0hcCYmZ3MoYyksbT0hcCYmIWYmJk9zKGMpO2g9YyxwfHxmfHxtP2hzKGwpP2g9bDptcyhsKT9oPVhyKGwpOmY/KGQ9ITEsaD1VcihjLCEwKSk6bT8oZD0hMSxoPUdyKGMsITApKTpoPVtdOkFzKGMpfHx1cyhjKT8oaD1sLHVzKGwpP2g9R3MobCk6U3MobCkmJiFicyhsKXx8KGg9em8oYykpKTpkPSExfWQmJihzLnNldChjLGgpLG8oaCxjLHIsYSxzKSxzLmRlbGV0ZShjKSksSm4oZSxpLGgpfX0pKGUsbixzLGksc3IscixvKTtlbHNle3ZhciBjPXI/cigkbyhlLHMpLGEscysiIixlLG4sbyk6dDtjPT09dCYmKGM9YSksSm4oZSxzLGMpfX0pLG9sKX1mdW5jdGlvbiBscihlLG4pe3ZhciBpPWUubGVuZ3RoO2lmKGkpcmV0dXJuIEJvKG4rPW48MD9pOjAsaSk/ZVtuXTp0fWZ1bmN0aW9uIGNyKHQsZSxuKXtlPWUubGVuZ3RoP01lKGUsKGZ1bmN0aW9uKHQpe3JldHVybiBocyh0KT9mdW5jdGlvbihlKXtyZXR1cm4gamkoZSwxPT09dC5sZW5ndGg/dFswXTp0KX06dH0pKTpbTGxdO3ZhciBpPS0xO3JldHVybiBlPU1lKGUsVWUoQW8oKSkpLChmdW5jdGlvbiByKHQsZSl7dmFyIG49dC5sZW5ndGg7Zm9yKHQuc29ydChlKTtuLS07KXRbbl09dFtuXS52YWx1ZTtyZXR1cm4gdH0pKHJyKHQsKGZ1bmN0aW9uKHQsbixyKXtyZXR1cm57Y3JpdGVyaWE6TWUoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSksaW5kZXg6KytpLHZhbHVlOnR9fSkpLChmdW5jdGlvbih0LGUpe3JldHVybihmdW5jdGlvbiBpKHQsZSxuKXtmb3IodmFyIGk9LTEscj10LmNyaXRlcmlhLG89ZS5jcml0ZXJpYSxhPXIubGVuZ3RoLHM9bi5sZW5ndGg7KytpPGE7KXt2YXIgbD1XcihyW2ldLG9baV0pO2lmKGwpcmV0dXJuIGk+PXM/bDpsKigiZGVzYyI9PW5baV0/LTE6MSl9cmV0dXJuIHQuaW5kZXgtZS5pbmRleH0pKHQsZSxuKX0pKX1mdW5jdGlvbiB1cih0LGUsbil7Zm9yKHZhciBpPS0xLHI9ZS5sZW5ndGgsbz17fTsrK2k8cjspe3ZhciBhPWVbaV0scz1qaSh0LGEpO24ocyxhKSYmeXIobyxCcihhLHQpLHMpfXJldHVybiBvfWZ1bmN0aW9uIGhyKHQsZSxuLGkpe3ZhciByPWk/SWU6TmUsbz0tMSxhPWUubGVuZ3RoLHM9dDtmb3IodD09PWUmJihlPVhyKGUpKSxuJiYocz1NZSh0LFVlKG4pKSk7KytvPGE7KWZvcih2YXIgbD0wLGM9ZVtvXSx1PW4/bihjKTpjOyhsPXIocyx1LGwsaSkpPi0xOylzIT09dCYmaWUuY2FsbChzLGwsMSksaWUuY2FsbCh0LGwsMSk7cmV0dXJuIHR9ZnVuY3Rpb24gZHIodCxlKXtmb3IodmFyIG49dD9lLmxlbmd0aDowLGk9bi0xO24tLTspe3ZhciByPWVbbl07aWYobj09aXx8ciE9PW8pe3ZhciBvPXI7Qm8ocik/aWUuY2FsbCh0LHIsMSk6THIodCxyKX19cmV0dXJuIHR9ZnVuY3Rpb24gcHIodCxlKXtyZXR1cm4gdCt1bihibigpKihlLXQrMSkpfWZ1bmN0aW9uIGZyKHQsZSl7dmFyIG49IiI7aWYoIXR8fGU8MXx8ZT5zKXJldHVybiBuO2Rve2UlMiYmKG4rPXQpLChlPXVuKGUvMikpJiYodCs9dCl9d2hpbGUoZSk7cmV0dXJuIG59ZnVuY3Rpb24gbXIodCxlKXtyZXR1cm4gSm8ocW8odCxlLExsKSx0KyIiKX1mdW5jdGlvbiBncih0KXtyZXR1cm4gJG4ocGwodCkpfWZ1bmN0aW9uIF9yKHQsZSl7dmFyIG49cGwodCk7cmV0dXJuIGVhKG4sb2koZSwwLG4ubGVuZ3RoKSl9ZnVuY3Rpb24geXIoZSxuLGkscil7aWYoIVNzKGUpKXJldHVybiBlO2Zvcih2YXIgbz0tMSxhPShuPUJyKG4sZSkpLmxlbmd0aCxzPWEtMSxsPWU7bnVsbCE9bCYmKytvPGE7KXt2YXIgYz1yYShuW29dKSx1PWk7aWYoIl9fcHJvdG9fXyI9PT1jfHwiY29uc3RydWN0b3IiPT09Y3x8InByb3RvdHlwZSI9PT1jKXJldHVybiBlO2lmKG8hPXMpe3ZhciBoPWxbY107KHU9cj9yKGgsYyxsKTp0KT09PXQmJih1PVNzKGgpP2g6Qm8obltvKzFdKT9bXTp7fSl9UW4obCxjLHUpLGw9bFtjXX1yZXR1cm4gZX12YXIgdnI9QW4/ZnVuY3Rpb24odCxlKXtyZXR1cm4gQW4uc2V0KHQsZSksdH06TGwsYnI9eGU/ZnVuY3Rpb24odCxlKXtyZXR1cm4geGUodCwidG9TdHJpbmciLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTpDbChlKSx3cml0YWJsZTohMH0pfTpMbDtmdW5jdGlvbiB4cih0KXtyZXR1cm4gZWEocGwodCkpfWZ1bmN0aW9uIHdyKHQsZSxuKXt2YXIgaT0tMSxyPXQubGVuZ3RoO2U8MCYmKGU9LWU+cj8wOnIrZSksKG49bj5yP3I6bik8MCYmKG4rPXIpLHI9ZT5uPzA6bi1lPj4+MCxlPj4+PTA7Zm9yKHZhciBvPXZ0KHIpOysraTxyOylvW2ldPXRbaStlXTtyZXR1cm4gb31mdW5jdGlvbiBTcih0LGUpe3ZhciBuO3JldHVybiBOaSh0LChmdW5jdGlvbih0LGkscil7cmV0dXJuIShuPWUodCxpLHIpKX0pKSwhIW59ZnVuY3Rpb24gTXIodCxlLG4pe3ZhciBpPTAscj1udWxsPT10P2k6dC5sZW5ndGg7aWYoIm51bWJlciI9PXR5cGVvZiBlJiZlPT1lJiZyPD0yMTQ3NDgzNjQ3KXtmb3IoO2k8cjspe3ZhciBvPWkrcj4+PjEsYT10W29dO251bGwhPT1hJiYhUnMoYSkmJihuP2E8PWU6YTxlKT9pPW8rMTpyPW99cmV0dXJuIHJ9cmV0dXJuIEVyKHQsZSxMbCxuKX1mdW5jdGlvbiBFcihlLG4saSxyKXt2YXIgbz0wLGE9bnVsbD09ZT8wOmUubGVuZ3RoO2lmKDA9PT1hKXJldHVybiAwO2Zvcih2YXIgcz0obj1pKG4pKSE9bixsPW51bGw9PT1uLGM9UnMobiksdT1uPT09dDtvPGE7KXt2YXIgaD11bigobythKS8yKSxkPWkoZVtoXSkscD1kIT09dCxmPW51bGw9PT1kLG09ZD09ZCxnPVJzKGQpO2lmKHMpdmFyIF89cnx8bTtlbHNlIF89dT9tJiYocnx8cCk6bD9tJiZwJiYocnx8IWYpOmM/bSYmcCYmIWYmJihyfHwhZyk6IWYmJiFnJiYocj9kPD1uOmQ8bik7Xz9vPWgrMTphPWh9cmV0dXJuIF9uKGEsNDI5NDk2NzI5NCl9ZnVuY3Rpb24gVHIodCxlKXtmb3IodmFyIG49LTEsaT10Lmxlbmd0aCxyPTAsbz1bXTsrK248aTspe3ZhciBhPXRbbl0scz1lP2UoYSk6YTtpZighbnx8IXNzKHMsbCkpe3ZhciBsPXM7b1tyKytdPTA9PT1hPzA6YX19cmV0dXJuIG99ZnVuY3Rpb24gQ3IodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3Q6UnModCk/bDordH1mdW5jdGlvbiBBcih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoaHModCkpcmV0dXJuIE1lKHQsQXIpKyIiO2lmKFJzKHQpKXJldHVybiBEbj9Ebi5jYWxsKHQpOiIiO3ZhciBlPXQrIiI7cmV0dXJuIjAiPT1lJiYxL3Q9PS0xLzA/Ii0wIjplfWZ1bmN0aW9uIGtyKHQsZSxuKXt2YXIgaT0tMSxyPWJlLG89dC5sZW5ndGgsYT0hMCxzPVtdLGw9cztpZihuKWE9ITEscj1TZTtlbHNlIGlmKG8+PTIwMCl7dmFyIGM9ZT9udWxsOm1vKHQpO2lmKGMpcmV0dXJuIGVuKGMpO2E9ITEscj1HZSxsPW5ldyBxbn1lbHNlIGw9ZT9bXTpzO3Q6Zm9yKDsrK2k8bzspe3ZhciB1PXRbaV0saD1lP2UodSk6dTtpZih1PW58fDAhPT11P3U6MCxhJiZoPT1oKXtmb3IodmFyIGQ9bC5sZW5ndGg7ZC0tOylpZihsW2RdPT09aCljb250aW51ZSB0O2UmJmwucHVzaChoKSxzLnB1c2godSl9ZWxzZSByKGwsaCxuKXx8KGwhPT1zJiZsLnB1c2goaCkscy5wdXNoKHUpKX1yZXR1cm4gc31mdW5jdGlvbiBMcih0LGUpe3JldHVybiBudWxsPT0odD1Zbyh0LGU9QnIoZSx0KSkpfHxkZWxldGUgdFtyYShfYShlKSldfWZ1bmN0aW9uIFByKHQsZSxuLGkpe3JldHVybiB5cih0LGUsbihqaSh0LGUpKSxpKX1mdW5jdGlvbiBOcih0LGUsbixpKXtmb3IodmFyIHI9dC5sZW5ndGgsbz1pP3I6LTE7KGk/by0tOisrbzxyKSYmZSh0W29dLG8sdCk7KTtyZXR1cm4gbj93cih0LGk/MDpvLGk/bysxOnIpOndyKHQsaT9vKzE6MCxpP3I6byl9ZnVuY3Rpb24gSXIodCxlKXt2YXIgbj10O3JldHVybiBuIGluc3RhbmNlb2YgVW4mJihuPW4udmFsdWUoKSksVGUoZSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5mdW5jLmFwcGx5KGUudGhpc0FyZyxFZShbdF0sZS5hcmdzKSl9KSxuKX1mdW5jdGlvbiBScih0LGUsbil7dmFyIGk9dC5sZW5ndGg7aWYoaTwyKXJldHVybiBpP2tyKHRbMF0pOltdO2Zvcih2YXIgcj0tMSxvPXZ0KGkpOysrcjxpOylmb3IodmFyIGE9dFtyXSxzPS0xOysrczxpOylzIT1yJiYob1tyXT1jaShvW3JdfHxhLHRbc10sZSxuKSk7cmV0dXJuIGtyKERpKG8sMSksZSxuKX1mdW5jdGlvbiBPcihlLG4saSl7Zm9yKHZhciByPS0xLG89ZS5sZW5ndGgsYT1uLmxlbmd0aCxzPXt9OysrcjxvOylpKHMsZVtyXSxyPGE/bltyXTp0KTtyZXR1cm4gc31mdW5jdGlvbiB6cih0KXtyZXR1cm4gbXModCk/dDpbXX1mdW5jdGlvbiBEcih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OkxsfWZ1bmN0aW9uIEJyKHQsZSl7cmV0dXJuIGhzKHQpP3Q6Rm8odCxlKT9bdF06bmEoV3ModCkpfXZhciBIcj1tcjtmdW5jdGlvbiBGcihlLG4saSl7dmFyIHI9ZS5sZW5ndGg7cmV0dXJuIGk9aT09PXQ/cjppLCFuJiZpPj1yP2U6d3IoZSxuLGkpfXZhciBWcj13ZXx8ZnVuY3Rpb24odCl7cmV0dXJuIGVlLmNsZWFyVGltZW91dCh0KX07ZnVuY3Rpb24gVXIodCxlKXtpZihlKXJldHVybiB0LnNsaWNlKCk7dmFyIG49dC5sZW5ndGgsaT1LdD9LdChuKTpuZXcgdC5jb25zdHJ1Y3RvcihuKTtyZXR1cm4gdC5jb3B5KGkpLGl9ZnVuY3Rpb24ganIodCl7dmFyIGU9bmV3IHQuY29uc3RydWN0b3IodC5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IEd0KGUpLnNldChuZXcgR3QodCkpLGV9ZnVuY3Rpb24gR3IodCxlKXt2YXIgbj1lP2pyKHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3Iobix0LmJ5dGVPZmZzZXQsdC5sZW5ndGgpfWZ1bmN0aW9uIFdyKGUsbil7aWYoZSE9PW4pe3ZhciBpPWUhPT10LHI9bnVsbD09PWUsbz1lPT1lLGE9UnMoZSkscz1uIT09dCxsPW51bGw9PT1uLGM9bj09bix1PVJzKG4pO2lmKCFsJiYhdSYmIWEmJmU+bnx8YSYmcyYmYyYmIWwmJiF1fHxyJiZzJiZjfHwhaSYmY3x8IW8pcmV0dXJuIDE7aWYoIXImJiFhJiYhdSYmZTxufHx1JiZpJiZvJiYhciYmIWF8fGwmJmkmJm98fCFzJiZvfHwhYylyZXR1cm4tMX1yZXR1cm4gMH1mdW5jdGlvbiBxcih0LGUsbixpKXtmb3IodmFyIHI9LTEsbz10Lmxlbmd0aCxhPW4ubGVuZ3RoLHM9LTEsbD1lLmxlbmd0aCxjPWduKG8tYSwwKSx1PXZ0KGwrYyksaD0haTsrK3M8bDspdVtzXT1lW3NdO2Zvcig7KytyPGE7KShofHxyPG8pJiYodVtuW3JdXT10W3JdKTtmb3IoO2MtLTspdVtzKytdPXRbcisrXTtyZXR1cm4gdX1mdW5jdGlvbiBZcih0LGUsbixpKXtmb3IodmFyIHI9LTEsbz10Lmxlbmd0aCxhPS0xLHM9bi5sZW5ndGgsbD0tMSxjPWUubGVuZ3RoLHU9Z24oby1zLDApLGg9dnQodStjKSxkPSFpOysrcjx1OyloW3JdPXRbcl07Zm9yKHZhciBwPXI7KytsPGM7KWhbcCtsXT1lW2xdO2Zvcig7KythPHM7KShkfHxyPG8pJiYoaFtwK25bYV1dPXRbcisrXSk7cmV0dXJuIGh9ZnVuY3Rpb24gWHIodCxlKXt2YXIgbj0tMSxpPXQubGVuZ3RoO2ZvcihlfHwoZT12dChpKSk7KytuPGk7KWVbbl09dFtuXTtyZXR1cm4gZX1mdW5jdGlvbiAkcihlLG4saSxyKXt2YXIgbz0haTtpfHwoaT17fSk7Zm9yKHZhciBhPS0xLHM9bi5sZW5ndGg7KythPHM7KXt2YXIgbD1uW2FdLGM9cj9yKGlbbF0sZVtsXSxsLGksZSk6dDtjPT09dCYmKGM9ZVtsXSksbz9paShpLGwsYyk6UW4oaSxsLGMpfXJldHVybiBpfWZ1bmN0aW9uIEtyKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7dmFyIHI9aHMobik/ZmU6ZWksbz1lP2UoKTp7fTtyZXR1cm4gcihuLHQsQW8oaSwyKSxvKX19ZnVuY3Rpb24gWnIoZSl7cmV0dXJuIG1yKChmdW5jdGlvbihuLGkpe3ZhciByPS0xLG89aS5sZW5ndGgsYT1vPjE/aVtvLTFdOnQscz1vPjI/aVsyXTp0O2ZvcihhPWUubGVuZ3RoPjMmJiJmdW5jdGlvbiI9PXR5cGVvZiBhPyhvLS0sYSk6dCxzJiZIbyhpWzBdLGlbMV0scykmJihhPW88Mz90OmEsbz0xKSxuPU10KG4pOysrcjxvOyl7dmFyIGw9aVtyXTtsJiZlKG4sbCxyLGEpfXJldHVybiBufSkpfWZ1bmN0aW9uIEpyKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7aWYobnVsbD09bilyZXR1cm4gbjtpZighZnMobikpcmV0dXJuIHQobixpKTtmb3IodmFyIHI9bi5sZW5ndGgsbz1lP3I6LTEsYT1NdChuKTsoZT9vLS06KytvPHIpJiYhMSE9PWkoYVtvXSxvLGEpOyk7cmV0dXJuIG59fWZ1bmN0aW9uIFFyKHQpe3JldHVybiBmdW5jdGlvbihlLG4saSl7Zm9yKHZhciByPS0xLG89TXQoZSksYT1pKGUpLHM9YS5sZW5ndGg7cy0tOyl7dmFyIGw9YVt0P3M6KytyXTtpZighMT09PW4ob1tsXSxsLG8pKWJyZWFrfXJldHVybiBlfX1mdW5jdGlvbiB0byhlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9WmUobj1XcyhuKSk/b24obik6dCxyPWk/aVswXTpuLmNoYXJBdCgwKSxvPWk/RnIoaSwxKS5qb2luKCIiKTpuLnNsaWNlKDEpO3JldHVybiByW2VdKCkrb319ZnVuY3Rpb24gZW8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBUZShNbChnbChlKS5yZXBsYWNlKEZ0LCIiKSksdCwiIil9fWZ1bmN0aW9uIG5vKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cztzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IHQ7Y2FzZSAxOnJldHVybiBuZXcgdChlWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSk7Y2FzZSAzOnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSk7Y2FzZSA0OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdKTtjYXNlIDU6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSxlWzJdLGVbM10sZVs0XSk7Y2FzZSA2OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdLGVbNF0sZVs1XSk7Y2FzZSA3OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdLGVbNF0sZVs1XSxlWzZdKX12YXIgbj1Ibih0LnByb3RvdHlwZSksaT10LmFwcGx5KG4sZSk7cmV0dXJuIFNzKGkpP2k6bn19ZnVuY3Rpb24gaW8oZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSxyKXt2YXIgbz1NdChuKTtpZighZnMobikpe3ZhciBhPUFvKGksMyk7bj1ybChuKSxpPWZ1bmN0aW9uKHQpe3JldHVybiBhKG9bdF0sdCxvKX19dmFyIHM9ZShuLGkscik7cmV0dXJuIHM+LTE/b1thP25bc106c106dH19ZnVuY3Rpb24gcm8obil7cmV0dXJuIHdvKChmdW5jdGlvbihpKXt2YXIgcj1pLmxlbmd0aCxvPXIsYT1Wbi5wcm90b3R5cGUudGhydTtmb3IobiYmaS5yZXZlcnNlKCk7by0tOyl7dmFyIHM9aVtvXTtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgQ3QoZSk7aWYoYSYmIWwmJiJ3cmFwcGVyIj09VG8ocykpdmFyIGw9bmV3IFZuKFtdLCEwKX1mb3Iobz1sP286cjsrK288cjspe3ZhciBjPVRvKHM9aVtvXSksdT0id3JhcHBlciI9PWM/RW8ocyk6dDtsPXUmJlZvKHVbMF0pJiY0MjQ9PXVbMV0mJiF1WzRdLmxlbmd0aCYmMT09dVs5XT9sW1RvKHVbMF0pXS5hcHBseShsLHVbM10pOjE9PXMubGVuZ3RoJiZWbyhzKT9sW2NdKCk6bC50aHJ1KHMpfXJldHVybiBmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cyxlPXRbMF07aWYobCYmMT09dC5sZW5ndGgmJmhzKGUpKXJldHVybiBsLnBsYW50KGUpLnZhbHVlKCk7Zm9yKHZhciBuPTAsbz1yP2lbbl0uYXBwbHkodGhpcyx0KTplOysrbjxyOylvPWlbbl0uY2FsbCh0aGlzLG8pO3JldHVybiBvfX0pKX1mdW5jdGlvbiBvbyhlLG4saSxyLGEscyxsLGMsdSxoKXt2YXIgZD1uJm8scD0xJm4sZj0yJm4sbT0yNCZuLGc9NTEyJm4sXz1mP3Q6bm8oZSk7cmV0dXJuIGZ1bmN0aW9uIHQoKXtmb3IodmFyIG89YXJndW1lbnRzLmxlbmd0aCx5PXZ0KG8pLHY9bzt2LS07KXlbdl09YXJndW1lbnRzW3ZdO2lmKG0pdmFyIGI9Q28odCkseD1ZZSh5LGIpO2lmKHImJih5PXFyKHkscixhLG0pKSxzJiYoeT1Zcih5LHMsbCxtKSksby09eCxtJiZvPGgpe3ZhciB3PXRuKHksYik7cmV0dXJuIHBvKGUsbixvbyx0LnBsYWNlaG9sZGVyLGkseSx3LGMsdSxoLW8pfXZhciBTPXA/aTp0aGlzLE09Zj9TW2VdOmU7cmV0dXJuIG89eS5sZW5ndGgsYz95PVhvKHksYyk6ZyYmbz4xJiZ5LnJldmVyc2UoKSxkJiZ1PG8mJih5Lmxlbmd0aD11KSx0aGlzJiZ0aGlzIT09ZWUmJnRoaXMgaW5zdGFuY2VvZiB0JiYoTT1ffHxubyhNKSksTS5hcHBseShTLHkpfX1mdW5jdGlvbiBhbyh0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe3JldHVybihmdW5jdGlvbiByKHQsZSxuLGkpe3JldHVybiBGaSh0LChmdW5jdGlvbih0LHIsbyl7ZShpLG4odCkscixvKX0pKSxpfSkobix0LGUoaSkse30pfX1mdW5jdGlvbiBzbyhlLG4pe3JldHVybiBmdW5jdGlvbihpLHIpe3ZhciBvO2lmKGk9PT10JiZyPT09dClyZXR1cm4gbjtpZihpIT09dCYmKG89aSksciE9PXQpe2lmKG89PT10KXJldHVybiByOyJzdHJpbmciPT10eXBlb2YgaXx8InN0cmluZyI9PXR5cGVvZiByPyhpPUFyKGkpLHI9QXIocikpOihpPUNyKGkpLHI9Q3IocikpLG89ZShpLHIpfXJldHVybiBvfX1mdW5jdGlvbiBsbyh0KXtyZXR1cm4gd28oKGZ1bmN0aW9uKGUpe3JldHVybiBlPU1lKGUsVWUoQW8oKSkpLG1yKChmdW5jdGlvbihuKXt2YXIgaT10aGlzO3JldHVybiB0KGUsKGZ1bmN0aW9uKHQpe3JldHVybiBwZSh0LGksbil9KSl9KSl9KSl9ZnVuY3Rpb24gY28oZSxuKXt2YXIgaT0obj1uPT09dD8iICI6QXIobikpLmxlbmd0aDtpZihpPDIpcmV0dXJuIGk/ZnIobixlKTpuO3ZhciByPWZyKG4sY24oZS9ybihuKSkpO3JldHVybiBaZShuKT9GcihvbihyKSwwLGUpLmpvaW4oIiIpOnIuc2xpY2UoMCxlKX1mdW5jdGlvbiB1byhlKXtyZXR1cm4gZnVuY3Rpb24obixpLHIpe3JldHVybiByJiYibnVtYmVyIiE9dHlwZW9mIHImJkhvKG4saSxyKSYmKGk9cj10KSxuPUZzKG4pLGk9PT10PyhpPW4sbj0wKTppPUZzKGkpLChmdW5jdGlvbiBvKHQsZSxuLGkpe2Zvcih2YXIgcj0tMSxvPWduKGNuKChlLXQpLyhufHwxKSksMCksYT12dChvKTtvLS07KWFbaT9vOisrcl09dCx0Kz1uO3JldHVybiBhfSkobixpLHI9cj09PXQ/bjxpPzE6LTE6RnMociksZSl9fWZ1bmN0aW9uIGhvKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmInN0cmluZyI9PXR5cGVvZiBufHwoZT1qcyhlKSxuPWpzKG4pKSx0KGUsbil9fWZ1bmN0aW9uIHBvKGUsbixpLG8sYSxzLGwsYyx1LGgpe3ZhciBkPTgmbjtufD1kP3I6NjQsNCYobiY9fihkPzY0OnIpKXx8KG4mPS00KTt2YXIgcD1bZSxuLGEsZD9zOnQsZD9sOnQsZD90OnMsZD90OmwsYyx1LGhdLGY9aS5hcHBseSh0LHApO3JldHVybiBWbyhlKSYmS28oZixwKSxmLnBsYWNlaG9sZGVyPW8sUW8oZixlLG4pfWZ1bmN0aW9uIGZvKHQpe3ZhciBlPVN0W3RdO3JldHVybiBmdW5jdGlvbih0LG4pe2lmKHQ9anModCksKG49bnVsbD09bj8wOl9uKFZzKG4pLDI5MikpJiZwbih0KSl7dmFyIGk9KFdzKHQpKyJlIikuc3BsaXQoImUiKTtyZXR1cm4rKChpPShXcyhlKGlbMF0rImUiKygraVsxXStuKSkpKyJlIikuc3BsaXQoImUiKSlbMF0rImUiKygraVsxXS1uKSl9cmV0dXJuIGUodCl9fXZhciBtbz1FbiYmMS9lbihuZXcgRW4oWywtMF0pKVsxXT09YT9mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEVuKHQpfTpPbDtmdW5jdGlvbiBnbyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49Um8oZSk7cmV0dXJuIG49PXk/SmUoZSk6bj09Uz9ubihlKTooZnVuY3Rpb24gaSh0LGUpe3JldHVybiBNZShlLChmdW5jdGlvbihlKXtyZXR1cm5bZSx0W2VdXX0pKX0pKGUsdChlKSl9fWZ1bmN0aW9uIF9vKG4sYSxzLGwsYyx1LGgsZCl7dmFyIHA9MiZhO2lmKCFwJiYiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgQ3QoZSk7dmFyIGY9bD9sLmxlbmd0aDowO2lmKGZ8fChhJj0tOTcsbD1jPXQpLGg9aD09PXQ/aDpnbihWcyhoKSwwKSxkPWQ9PT10P2Q6VnMoZCksZi09Yz9jLmxlbmd0aDowLDY0JmEpe3ZhciBtPWwsZz1jO2w9Yz10fXZhciBfPXA/dDpFbyhuKSx5PVtuLGEscyxsLGMsbSxnLHUsaCxkXTtpZihfJiYoZnVuY3Rpb24gdih0LGUpe3ZhciBuPXRbMV0scj1lWzFdLGE9bnxyO2lmKCEoYTwxMzF8fHI9PW8mJjg9PW58fHI9PW8mJjI1Nj09biYmdFs3XS5sZW5ndGg8PWVbOF18fDM4ND09ciYmZVs3XS5sZW5ndGg8PWVbOF0mJjg9PW4pKXJldHVybiB0OzEmciYmKHRbMl09ZVsyXSxhfD0xJm4/MDo0KTt2YXIgcz1lWzNdO2lmKHMpe3ZhciBsPXRbM107dFszXT1sP3FyKGwscyxlWzRdKTpzLHRbNF09bD90bih0WzNdLGkpOmVbNF19KHM9ZVs1XSkmJih0WzVdPShsPXRbNV0pP1lyKGwscyxlWzZdKTpzLHRbNl09bD90bih0WzVdLGkpOmVbNl0pLChzPWVbN10pJiYodFs3XT1zKSxyJm8mJih0WzhdPW51bGw9PXRbOF0/ZVs4XTpfbih0WzhdLGVbOF0pKSxudWxsPT10WzldJiYodFs5XT1lWzldKSx0WzBdPWVbMF0sdFsxXT1hfSkoeSxfKSxuPXlbMF0sYT15WzFdLHM9eVsyXSxsPXlbM10sYz15WzRdLCEoZD15WzldPXlbOV09PT10P3A/MDpuLmxlbmd0aDpnbih5WzldLWYsMCkpJiYyNCZhJiYoYSY9LTI1KSxhJiYxIT1hKXc9OD09YXx8MTY9PWE/KGZ1bmN0aW9uIGIoZSxuLGkpe3ZhciByPW5vKGUpO3JldHVybiBmdW5jdGlvbiBvKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgscz12dChhKSxsPWEsYz1DbyhvKTtsLS07KXNbbF09YXJndW1lbnRzW2xdO3ZhciB1PWE8MyYmc1swXSE9PWMmJnNbYS0xXSE9PWM/W106dG4ocyxjKTtyZXR1cm4oYS09dS5sZW5ndGgpPGk/cG8oZSxuLG9vLG8ucGxhY2Vob2xkZXIsdCxzLHUsdCx0LGktYSk6cGUodGhpcyYmdGhpcyE9PWVlJiZ0aGlzIGluc3RhbmNlb2Ygbz9yOmUsdGhpcyxzKX19KShuLGEsZCk6YSE9ciYmMzMhPWF8fGMubGVuZ3RoP29vLmFwcGx5KHQseSk6KGZ1bmN0aW9uIHgodCxlLG4saSl7dmFyIHI9MSZlLG89bm8odCk7cmV0dXJuIGZ1bmN0aW9uIGUoKXtmb3IodmFyIGE9LTEscz1hcmd1bWVudHMubGVuZ3RoLGw9LTEsYz1pLmxlbmd0aCx1PXZ0KGMrcyksaD10aGlzJiZ0aGlzIT09ZWUmJnRoaXMgaW5zdGFuY2VvZiBlP286dDsrK2w8YzspdVtsXT1pW2xdO2Zvcig7cy0tOyl1W2wrK109YXJndW1lbnRzWysrYV07cmV0dXJuIHBlKGgscj9uOnRoaXMsdSl9fSkobixhLHMsbCk7ZWxzZSB2YXIgdz0oZnVuY3Rpb24gUyh0LGUsbil7dmFyIGk9MSZlLHI9bm8odCk7cmV0dXJuIGZ1bmN0aW9uIGUoKXtyZXR1cm4odGhpcyYmdGhpcyE9PWVlJiZ0aGlzIGluc3RhbmNlb2YgZT9yOnQpLmFwcGx5KGk/bjp0aGlzLGFyZ3VtZW50cyl9fSkobixhLHMpO3JldHVybiBRbygoXz92cjpLbykodyx5KSxuLGEpfWZ1bmN0aW9uIHlvKGUsbixpLHIpe3JldHVybiBlPT09dHx8c3MoZSxrdFtpXSkmJiFOdC5jYWxsKHIsaSk/bjplfWZ1bmN0aW9uIHZvKGUsbixpLHIsbyxhKXtyZXR1cm4gU3MoZSkmJlNzKG4pJiYoYS5zZXQobixlKSxzcihlLG4sdCx2byxhKSxhLmRlbGV0ZShuKSksZX1mdW5jdGlvbiBibyhlKXtyZXR1cm4gQXMoZSk/dDplfWZ1bmN0aW9uIHhvKGUsbixpLHIsbyxhKXt2YXIgcz0xJmksbD1lLmxlbmd0aCxjPW4ubGVuZ3RoO2lmKGwhPWMmJiEocyYmYz5sKSlyZXR1cm4hMTt2YXIgdT1hLmdldChlKSxoPWEuZ2V0KG4pO2lmKHUmJmgpcmV0dXJuIHU9PW4mJmg9PWU7dmFyIGQ9LTEscD0hMCxmPTImaT9uZXcgcW46dDtmb3IoYS5zZXQoZSxuKSxhLnNldChuLGUpOysrZDxsOyl7dmFyIG09ZVtkXSxnPW5bZF07aWYocil2YXIgXz1zP3IoZyxtLGQsbixlLGEpOnIobSxnLGQsZSxuLGEpO2lmKF8hPT10KXtpZihfKWNvbnRpbnVlO3A9ITE7YnJlYWt9aWYoZil7aWYoIUFlKG4sKGZ1bmN0aW9uKHQsZSl7aWYoIUdlKGYsZSkmJihtPT09dHx8byhtLHQsaSxyLGEpKSlyZXR1cm4gZi5wdXNoKGUpfSkpKXtwPSExO2JyZWFrfX1lbHNlIGlmKG0hPT1nJiYhbyhtLGcsaSxyLGEpKXtwPSExO2JyZWFrfX1yZXR1cm4gYS5kZWxldGUoZSksYS5kZWxldGUobikscH1mdW5jdGlvbiB3byhlKXtyZXR1cm4gSm8ocW8oZSx0LGRhKSxlKyIiKX1mdW5jdGlvbiBTbyh0KXtyZXR1cm4gR2kodCxybCxObyl9ZnVuY3Rpb24gTW8odCl7cmV0dXJuIEdpKHQsb2wsSW8pfXZhciBFbz1Bbj9mdW5jdGlvbih0KXtyZXR1cm4gQW4uZ2V0KHQpfTpPbDtmdW5jdGlvbiBUbyh0KXtmb3IodmFyIGU9dC5uYW1lKyIiLG49a25bZV0saT1OdC5jYWxsKGtuLGUpP24ubGVuZ3RoOjA7aS0tOyl7dmFyIHI9bltpXSxvPXIuZnVuYztpZihudWxsPT1vfHxvPT10KXJldHVybiByLm5hbWV9cmV0dXJuIGV9ZnVuY3Rpb24gQ28odCl7cmV0dXJuKE50LmNhbGwoQm4sInBsYWNlaG9sZGVyIik/Qm46dCkucGxhY2Vob2xkZXJ9ZnVuY3Rpb24gQW8oKXt2YXIgdD1Cbi5pdGVyYXRlZXx8UGw7cmV0dXJuIHQ9dD09PVBsP2VyOnQsYXJndW1lbnRzLmxlbmd0aD90KGFyZ3VtZW50c1swXSxhcmd1bWVudHNbMV0pOnR9ZnVuY3Rpb24ga28odCxlKXt2YXIgbj10Ll9fZGF0YV9fO3JldHVybihmdW5jdGlvbiBpKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiJzdHJpbmciPT1lfHwibnVtYmVyIj09ZXx8InN5bWJvbCI9PWV8fCJib29sZWFuIj09ZT8iX19wcm90b19fIiE9PXQ6bnVsbD09PXR9KShlKT9uWyJzdHJpbmciPT10eXBlb2YgZT8ic3RyaW5nIjoiaGFzaCJdOm4ubWFwfWZ1bmN0aW9uIExvKHQpe2Zvcih2YXIgZT1ybCh0KSxuPWUubGVuZ3RoO24tLTspe3ZhciBpPWVbbl0scj10W2ldO2Vbbl09W2kscixHbyhyKV19cmV0dXJuIGV9ZnVuY3Rpb24gUG8oZSxuKXt2YXIgaT0oZnVuY3Rpb24gcihlLG4pe3JldHVybiBudWxsPT1lP3Q6ZVtuXX0pKGUsbik7cmV0dXJuIHRyKGkpP2k6dH12YXIgTm89aG4/ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/W106KHQ9TXQodCkseWUoaG4odCksKGZ1bmN0aW9uKGUpe3JldHVybiBuZS5jYWxsKHQsZSl9KSkpfTpVbCxJbz1obj9mdW5jdGlvbih0KXtmb3IodmFyIGU9W107dDspRWUoZSxObyh0KSksdD1RdCh0KTtyZXR1cm4gZX06VWwsUm89V2k7ZnVuY3Rpb24gT28odCxlLG4pe2Zvcih2YXIgaT0tMSxyPShlPUJyKGUsdCkpLmxlbmd0aCxvPSExOysraTxyOyl7dmFyIGE9cmEoZVtpXSk7aWYoIShvPW51bGwhPXQmJm4odCxhKSkpYnJlYWs7dD10W2FdfXJldHVybiBvfHwrK2khPXI/bzohIShyPW51bGw9PXQ/MDp0Lmxlbmd0aCkmJndzKHIpJiZCbyhhLHIpJiYoaHModCl8fHVzKHQpKX1mdW5jdGlvbiB6byh0KXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdC5jb25zdHJ1Y3Rvcnx8am8odCk/e306SG4oUXQodCkpfWZ1bmN0aW9uIERvKHQpe3JldHVybiBocyh0KXx8dXModCl8fCEhKG9lJiZ0JiZ0W29lXSl9ZnVuY3Rpb24gQm8odCxlKXt2YXIgbj10eXBlb2YgdDtyZXR1cm4hIShlPW51bGw9PWU/czplKSYmKCJudW1iZXIiPT1ufHwic3ltYm9sIiE9biYmcHQudGVzdCh0KSkmJnQ+LTEmJnQlMT09MCYmdDxlfWZ1bmN0aW9uIEhvKHQsZSxuKXtpZighU3MobikpcmV0dXJuITE7dmFyIGk9dHlwZW9mIGU7cmV0dXJuISEoIm51bWJlciI9PWk/ZnMobikmJkJvKGUsbi5sZW5ndGgpOiJzdHJpbmciPT1pJiZlIGluIG4pJiZzcyhuW2VdLHQpfWZ1bmN0aW9uIEZvKHQsZSl7aWYoaHModCkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9biYmInN5bWJvbCIhPW4mJiJib29sZWFuIiE9biYmbnVsbCE9dCYmIVJzKHQpKXx8JC50ZXN0KHQpfHwhWC50ZXN0KHQpfHxudWxsIT1lJiZ0IGluIE10KGUpfWZ1bmN0aW9uIFZvKHQpe3ZhciBlPVRvKHQpLG49Qm5bZV07aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG58fCEoZSBpbiBVbi5wcm90b3R5cGUpKXJldHVybiExO2lmKHQ9PT1uKXJldHVybiEwO3ZhciBpPUVvKG4pO3JldHVybiEhaSYmdD09PWlbMF19KHduJiZSbyhuZXcgd24obmV3IEFycmF5QnVmZmVyKDEpKSkhPUF8fFNuJiZSbyhuZXcgU24pIT15fHxNbiYmUm8oTW4ucmVzb2x2ZSgpKSE9eHx8RW4mJlJvKG5ldyBFbikhPVN8fFRuJiZSbyhuZXcgVG4pIT1UKSYmKFJvPWZ1bmN0aW9uKGUpe3ZhciBuPVdpKGUpLGk9bj09Yj9lLmNvbnN0cnVjdG9yOnQscj1pP29hKGkpOiIiO2lmKHIpc3dpdGNoKHIpe2Nhc2UgTG46cmV0dXJuIEE7Y2FzZSBQbjpyZXR1cm4geTtjYXNlIE5uOnJldHVybiB4O2Nhc2UgSW46cmV0dXJuIFM7Y2FzZSBSbjpyZXR1cm4gVH1yZXR1cm4gbn0pO3ZhciBVbz1MdD9iczpqbDtmdW5jdGlvbiBqbyh0KXt2YXIgZT10JiZ0LmNvbnN0cnVjdG9yO3JldHVybiB0PT09KCJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLnByb3RvdHlwZXx8a3QpfWZ1bmN0aW9uIEdvKHQpe3JldHVybiB0PT10JiYhU3ModCl9ZnVuY3Rpb24gV28oZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIG51bGwhPWkmJmlbZV09PT1uJiYobiE9PXR8fGUgaW4gTXQoaSkpfX1mdW5jdGlvbiBxbyhlLG4saSl7cmV0dXJuIG49Z24obj09PXQ/ZS5sZW5ndGgtMTpuLDApLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cyxyPS0xLG89Z24odC5sZW5ndGgtbiwwKSxhPXZ0KG8pOysrcjxvOylhW3JdPXRbbityXTtyPS0xO2Zvcih2YXIgcz12dChuKzEpOysrcjxuOylzW3JdPXRbcl07cmV0dXJuIHNbbl09aShhKSxwZShlLHRoaXMscyl9fWZ1bmN0aW9uIFlvKHQsZSl7cmV0dXJuIGUubGVuZ3RoPDI/dDpqaSh0LHdyKGUsMCwtMSkpfWZ1bmN0aW9uIFhvKGUsbil7Zm9yKHZhciBpPWUubGVuZ3RoLHI9X24obi5sZW5ndGgsaSksbz1YcihlKTtyLS07KXt2YXIgYT1uW3JdO2Vbcl09Qm8oYSxpKT9vW2FdOnR9cmV0dXJuIGV9ZnVuY3Rpb24gJG8odCxlKXtpZigoImNvbnN0cnVjdG9yIiE9PWV8fCJmdW5jdGlvbiIhPXR5cGVvZiB0W2VdKSYmIl9fcHJvdG9fXyIhPWUpcmV0dXJuIHRbZV19dmFyIEtvPXRhKHZyKSxabz1EZXx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gZWUuc2V0VGltZW91dCh0LGUpfSxKbz10YShicik7ZnVuY3Rpb24gUW8odCxlLG4pe3ZhciBpPWUrIiI7cmV0dXJuIEpvKHQsKGZ1bmN0aW9uIGEodCxlKXt2YXIgbj1lLmxlbmd0aDtpZighbilyZXR1cm4gdDt2YXIgaT1uLTE7cmV0dXJuIGVbaV09KG4+MT8iJiAiOiIiKStlW2ldLGU9ZS5qb2luKG4+Mj8iLCAiOiIgIiksdC5yZXBsYWNlKGV0LCJ7XG4vKiBbd3JhcHBlZCB3aXRoICIrZSsiXSAqL1xuIil9KShpLChmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIG1lKHUsKGZ1bmN0aW9uKG4pe3ZhciBpPSJfLiIrblswXTtlJm5bMV0mJiFiZSh0LGkpJiZ0LnB1c2goaSl9KSksdC5zb3J0KCl9KSgoZnVuY3Rpb24gcih0KXt2YXIgZT10Lm1hdGNoKG50KTtyZXR1cm4gZT9lWzFdLnNwbGl0KGl0KTpbXX0pKGkpLG4pKSl9ZnVuY3Rpb24gdGEoZSl7dmFyIG49MCxpPTA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9eW4oKSxvPTE2LShyLWkpO2lmKGk9cixvPjApe2lmKCsrbj49ODAwKXJldHVybiBhcmd1bWVudHNbMF19ZWxzZSBuPTA7cmV0dXJuIGUuYXBwbHkodCxhcmd1bWVudHMpfX1mdW5jdGlvbiBlYShlLG4pe3ZhciBpPS0xLHI9ZS5sZW5ndGgsbz1yLTE7Zm9yKG49bj09PXQ/cjpuOysraTxuOyl7dmFyIGE9cHIoaSxvKSxzPWVbYV07ZVthXT1lW2ldLGVbaV09c31yZXR1cm4gZS5sZW5ndGg9bixlfXZhciBuYT0oZnVuY3Rpb24gaWEodCl7dmFyIGU9ZXModCwoZnVuY3Rpb24odCl7cmV0dXJuIDUwMD09PW4uc2l6ZSYmbi5jbGVhcigpLHR9KSksbj1lLmNhY2hlO3JldHVybiBlfSkoKGZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmZS5wdXNoKCIiKSx0LnJlcGxhY2UoSywoZnVuY3Rpb24odCxuLGkscil7ZS5wdXNoKGk/ci5yZXBsYWNlKGF0LCIkMSIpOm58fHQpfSkpLGV9KSk7ZnVuY3Rpb24gcmEodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxScyh0KSlyZXR1cm4gdDt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0tMS8wPyItMCI6ZX1mdW5jdGlvbiBvYSh0KXtpZihudWxsIT10KXt0cnl7cmV0dXJuIFB0LmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifWZ1bmN0aW9uIGFhKHQpe2lmKHQgaW5zdGFuY2VvZiBVbilyZXR1cm4gdC5jbG9uZSgpO3ZhciBlPW5ldyBWbih0Ll9fd3JhcHBlZF9fLHQuX19jaGFpbl9fKTtyZXR1cm4gZS5fX2FjdGlvbnNfXz1Ycih0Ll9fYWN0aW9uc19fKSxlLl9faW5kZXhfXz10Ll9faW5kZXhfXyxlLl9fdmFsdWVzX189dC5fX3ZhbHVlc19fLGV9dmFyIHNhPW1yKChmdW5jdGlvbih0LGUpe3JldHVybiBtcyh0KT9jaSh0LERpKGUsMSxtcywhMCkpOltdfSkpLGxhPW1yKChmdW5jdGlvbihlLG4pe3ZhciBpPV9hKG4pO3JldHVybiBtcyhpKSYmKGk9dCksbXMoZSk/Y2koZSxEaShuLDEsbXMsITApLEFvKGksMikpOltdfSkpLGNhPW1yKChmdW5jdGlvbihlLG4pe3ZhciBpPV9hKG4pO3JldHVybiBtcyhpKSYmKGk9dCksbXMoZSk/Y2koZSxEaShuLDEsbXMsITApLHQsaSk6W119KSk7ZnVuY3Rpb24gdWEodCxlLG4pe3ZhciBpPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZighaSlyZXR1cm4tMTt2YXIgcj1udWxsPT1uPzA6VnMobik7cmV0dXJuIHI8MCYmKHI9Z24oaStyLDApKSxQZSh0LEFvKGUsMykscil9ZnVuY3Rpb24gaGEoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtpZighcilyZXR1cm4tMTt2YXIgbz1yLTE7cmV0dXJuIGkhPT10JiYobz1WcyhpKSxvPWk8MD9nbihyK28sMCk6X24obyxyLTEpKSxQZShlLEFvKG4sMyksbywhMCl9ZnVuY3Rpb24gZGEodCl7cmV0dXJuIG51bGwhPXQmJnQubGVuZ3RoP0RpKHQsMSk6W119ZnVuY3Rpb24gcGEoZSl7cmV0dXJuIGUmJmUubGVuZ3RoP2VbMF06dH12YXIgZmE9bXIoKGZ1bmN0aW9uKHQpe3ZhciBlPU1lKHQsenIpO3JldHVybiBlLmxlbmd0aCYmZVswXT09PXRbMF0/JGkoZSk6W119KSksbWE9bXIoKGZ1bmN0aW9uKGUpe3ZhciBuPV9hKGUpLGk9TWUoZSx6cik7cmV0dXJuIG49PT1fYShpKT9uPXQ6aS5wb3AoKSxpLmxlbmd0aCYmaVswXT09PWVbMF0/JGkoaSxBbyhuLDIpKTpbXX0pKSxnYT1tcigoZnVuY3Rpb24oZSl7dmFyIG49X2EoZSksaT1NZShlLHpyKTtyZXR1cm4obj0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOnQpJiZpLnBvcCgpLGkubGVuZ3RoJiZpWzBdPT09ZVswXT8kaShpLHQsbik6W119KSk7ZnVuY3Rpb24gX2EoZSl7dmFyIG49bnVsbD09ZT8wOmUubGVuZ3RoO3JldHVybiBuP2Vbbi0xXTp0fXZhciB5YT1tcih2YSk7ZnVuY3Rpb24gdmEodCxlKXtyZXR1cm4gdCYmdC5sZW5ndGgmJmUmJmUubGVuZ3RoP2hyKHQsZSk6dH12YXIgYmE9d28oKGZ1bmN0aW9uKHQsZSl7dmFyIG49bnVsbD09dD8wOnQubGVuZ3RoLGk9cmkodCxlKTtyZXR1cm4gZHIodCxNZShlLChmdW5jdGlvbih0KXtyZXR1cm4gQm8odCxuKT8rdDp0fSkpLnNvcnQoV3IpKSxpfSkpO2Z1bmN0aW9uIHhhKHQpe3JldHVybiBudWxsPT10P3Q6eG4uY2FsbCh0KX12YXIgd2E9bXIoKGZ1bmN0aW9uKHQpe3JldHVybiBrcihEaSh0LDEsbXMsITApKX0pKSxTYT1tcigoZnVuY3Rpb24oZSl7dmFyIG49X2EoZSk7cmV0dXJuIG1zKG4pJiYobj10KSxrcihEaShlLDEsbXMsITApLEFvKG4sMikpfSkpLE1hPW1yKChmdW5jdGlvbihlKXt2YXIgbj1fYShlKTtyZXR1cm4gbj0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOnQsa3IoRGkoZSwxLG1zLCEwKSx0LG4pfSkpO2Z1bmN0aW9uIEVhKHQpe2lmKCF0fHwhdC5sZW5ndGgpcmV0dXJuW107dmFyIGU9MDtyZXR1cm4gdD15ZSh0LChmdW5jdGlvbih0KXtpZihtcyh0KSlyZXR1cm4gZT1nbih0Lmxlbmd0aCxlKSwhMH0pKSxGZShlLChmdW5jdGlvbihlKXtyZXR1cm4gTWUodCx6ZShlKSl9KSl9ZnVuY3Rpb24gVGEoZSxuKXtpZighZXx8IWUubGVuZ3RoKXJldHVybltdO3ZhciBpPUVhKGUpO3JldHVybiBudWxsPT1uP2k6TWUoaSwoZnVuY3Rpb24oZSl7cmV0dXJuIHBlKG4sdCxlKX0pKX12YXIgQ2E9bXIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG1zKHQpP2NpKHQsZSk6W119KSksQWE9bXIoKGZ1bmN0aW9uKHQpe3JldHVybiBScih5ZSh0LG1zKSl9KSksa2E9bXIoKGZ1bmN0aW9uKGUpe3ZhciBuPV9hKGUpO3JldHVybiBtcyhuKSYmKG49dCksUnIoeWUoZSxtcyksQW8obiwyKSl9KSksTGE9bXIoKGZ1bmN0aW9uKGUpe3ZhciBuPV9hKGUpO3JldHVybiBuPSJmdW5jdGlvbiI9PXR5cGVvZiBuP246dCxScih5ZShlLG1zKSx0LG4pfSkpLFBhPW1yKEVhKSxOYT1tcigoZnVuY3Rpb24oZSl7dmFyIG49ZS5sZW5ndGgsaT1uPjE/ZVtuLTFdOnQ7cmV0dXJuIGk9ImZ1bmN0aW9uIj09dHlwZW9mIGk/KGUucG9wKCksaSk6dCxUYShlLGkpfSkpO2Z1bmN0aW9uIElhKHQpe3ZhciBlPUJuKHQpO3JldHVybiBlLl9fY2hhaW5fXz0hMCxlfWZ1bmN0aW9uIFJhKHQsZSl7cmV0dXJuIGUodCl9dmFyIE9hPXdvKChmdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aCxpPW4/ZVswXTowLHI9dGhpcy5fX3dyYXBwZWRfXyxvPWZ1bmN0aW9uKHQpe3JldHVybiByaSh0LGUpfTtyZXR1cm4hKG4+MXx8dGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgpJiZyIGluc3RhbmNlb2YgVW4mJkJvKGkpPygocj1yLnNsaWNlKGksK2krKG4/MTowKSkpLl9fYWN0aW9uc19fLnB1c2goe2Z1bmM6UmEsYXJnczpbb10sdGhpc0FyZzp0fSksbmV3IFZuKHIsdGhpcy5fX2NoYWluX18pLnRocnUoKGZ1bmN0aW9uKGUpe3JldHVybiBuJiYhZS5sZW5ndGgmJmUucHVzaCh0KSxlfSkpKTp0aGlzLnRocnUobyl9KSksemE9S3IoKGZ1bmN0aW9uKHQsZSxuKXtOdC5jYWxsKHQsbik/Kyt0W25dOmlpKHQsbiwxKX0pKSxEYT1pbyh1YSksQmE9aW8oaGEpO2Z1bmN0aW9uIEhhKHQsZSl7cmV0dXJuKGhzKHQpP21lOk5pKSh0LEFvKGUsMykpfWZ1bmN0aW9uIEZhKHQsZSl7cmV0dXJuKGhzKHQpP2dlOklpKSh0LEFvKGUsMykpfXZhciBWYT1LcigoZnVuY3Rpb24odCxlLG4pe050LmNhbGwodCxuKT90W25dLnB1c2goZSk6aWkodCxuLFtlXSl9KSksVWE9bXIoKGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0tMSxyPSJmdW5jdGlvbiI9PXR5cGVvZiBlLG89ZnModCk/dnQodC5sZW5ndGgpOltdO3JldHVybiBOaSh0LChmdW5jdGlvbih0KXtvWysraV09cj9wZShlLHQsbik6S2kodCxlLG4pfSkpLG99KSksamE9S3IoKGZ1bmN0aW9uKHQsZSxuKXtpaSh0LG4sZSl9KSk7ZnVuY3Rpb24gR2EodCxlKXtyZXR1cm4oaHModCk/TWU6cnIpKHQsQW8oZSwzKSl9dmFyIFdhPUtyKChmdW5jdGlvbih0LGUsbil7dFtuPzA6MV0ucHVzaChlKX0pLChmdW5jdGlvbigpe3JldHVybltbXSxbXV19KSkscWE9bXIoKGZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dClyZXR1cm5bXTt2YXIgbj1lLmxlbmd0aDtyZXR1cm4gbj4xJiZIbyh0LGVbMF0sZVsxXSk/ZT1bXTpuPjImJkhvKGVbMF0sZVsxXSxlWzJdKSYmKGU9W2VbMF1dKSxjcih0LERpKGUsMSksW10pfSkpLFlhPWtlfHxmdW5jdGlvbigpe3JldHVybiBlZS5EYXRlLm5vdygpfTtmdW5jdGlvbiBYYShlLG4saSl7cmV0dXJuIG49aT90Om4sX28oZSxvLHQsdCx0LHQsbj1lJiZudWxsPT1uP2UubGVuZ3RoOm4pfWZ1bmN0aW9uICRhKG4saSl7dmFyIHI7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGkpdGhyb3cgbmV3IEN0KGUpO3JldHVybiBuPVZzKG4pLGZ1bmN0aW9uKCl7cmV0dXJuLS1uPjAmJihyPWkuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxuPD0xJiYoaT10KSxyfX12YXIgS2E9bXIoKGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0xO2lmKG4ubGVuZ3RoKXt2YXIgbz10bihuLENvKEthKSk7aXw9cn1yZXR1cm4gX28odCxpLGUsbixvKX0pKSxaYT1tcigoZnVuY3Rpb24odCxlLG4pe3ZhciBpPTM7aWYobi5sZW5ndGgpe3ZhciBvPXRuKG4sQ28oWmEpKTtpfD1yfXJldHVybiBfbyhlLGksdCxuLG8pfSkpO2Z1bmN0aW9uIEphKG4saSxyKXt2YXIgbyxhLHMsbCxjLHUsaD0wLGQ9ITEscD0hMSxmPSEwO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBDdChlKTtmdW5jdGlvbiBtKGUpe3ZhciBpPW8scj1hO3JldHVybiBvPWE9dCxoPWUsbD1uLmFwcGx5KHIsaSl9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gaD10LGM9Wm8oeSxpKSxkP20odCk6bH1mdW5jdGlvbiBfKGUpe3ZhciBuPWUtdTtyZXR1cm4gdT09PXR8fG4+PWl8fG48MHx8cCYmZS1oPj1zfWZ1bmN0aW9uIHkoKXt2YXIgdD1ZYSgpO2lmKF8odCkpcmV0dXJuIHYodCk7Yz1abyh5LChmdW5jdGlvbiBlKHQpe3ZhciBlPWktKHQtdSk7cmV0dXJuIHA/X24oZSxzLSh0LWgpKTplfSkodCkpfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIGM9dCxmJiZvP20oZSk6KG89YT10LGwpfWZ1bmN0aW9uIGIoKXt2YXIgZT1ZYSgpLG49XyhlKTtpZihvPWFyZ3VtZW50cyxhPXRoaXMsdT1lLG4pe2lmKGM9PT10KXJldHVybiBnKHUpO2lmKHApcmV0dXJuIFZyKGMpLGM9Wm8oeSxpKSxtKHUpfXJldHVybiBjPT09dCYmKGM9Wm8oeSxpKSksbH1yZXR1cm4gaT1qcyhpKXx8MCxTcyhyKSYmKGQ9ISFyLmxlYWRpbmcscz0ocD0ibWF4V2FpdCJpbiByKT9nbihqcyhyLm1heFdhaXQpfHwwLGkpOnMsZj0idHJhaWxpbmciaW4gcj8hIXIudHJhaWxpbmc6ZiksYi5jYW5jZWw9ZnVuY3Rpb24geCgpe2MhPT10JiZWcihjKSxoPTAsbz11PWE9Yz10fSxiLmZsdXNoPWZ1bmN0aW9uIHcoKXtyZXR1cm4gYz09PXQ/bDp2KFlhKCkpfSxifXZhciBRYT1tcigoZnVuY3Rpb24odCxlKXtyZXR1cm4gbGkodCwxLGUpfSkpLHRzPW1yKChmdW5jdGlvbih0LGUsbil7cmV0dXJuIGxpKHQsanMoZSl8fDAsbil9KSk7ZnVuY3Rpb24gZXModCxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9biYmImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEN0KGUpO3ZhciBpPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLHI9bj9uLmFwcGx5KHRoaXMsZSk6ZVswXSxvPWkuY2FjaGU7aWYoby5oYXMocikpcmV0dXJuIG8uZ2V0KHIpO3ZhciBhPXQuYXBwbHkodGhpcyxlKTtyZXR1cm4gaS5jYWNoZT1vLnNldChyLGEpfHxvLGF9O3JldHVybiBpLmNhY2hlPW5ldyhlcy5DYWNoZXx8V24pLGl9ZnVuY3Rpb24gbnModCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEN0KGUpO3JldHVybiBmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cztzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4hdC5jYWxsKHRoaXMpO2Nhc2UgMTpyZXR1cm4hdC5jYWxsKHRoaXMsZVswXSk7Y2FzZSAyOnJldHVybiF0LmNhbGwodGhpcyxlWzBdLGVbMV0pO2Nhc2UgMzpyZXR1cm4hdC5jYWxsKHRoaXMsZVswXSxlWzFdLGVbMl0pfXJldHVybiF0LmFwcGx5KHRoaXMsZSl9fWVzLkNhY2hlPVduO3ZhciBpcz1IcigoZnVuY3Rpb24odCxlKXt2YXIgbj0oZT0xPT1lLmxlbmd0aCYmaHMoZVswXSk/TWUoZVswXSxVZShBbygpKSk6TWUoRGkoZSwxKSxVZShBbygpKSkpLmxlbmd0aDtyZXR1cm4gbXIoKGZ1bmN0aW9uKGkpe2Zvcih2YXIgcj0tMSxvPV9uKGkubGVuZ3RoLG4pOysrcjxvOylpW3JdPWVbcl0uY2FsbCh0aGlzLGlbcl0pO3JldHVybiBwZSh0LHRoaXMsaSl9KSl9KSkscnM9bXIoKGZ1bmN0aW9uKGUsbil7dmFyIGk9dG4obixDbyhycykpO3JldHVybiBfbyhlLHIsdCxuLGkpfSkpLG9zPW1yKChmdW5jdGlvbihlLG4pe3ZhciBpPXRuKG4sQ28ob3MpKTtyZXR1cm4gX28oZSw2NCx0LG4saSl9KSksYXM9d28oKGZ1bmN0aW9uKGUsbil7cmV0dXJuIF9vKGUsMjU2LHQsdCx0LG4pfSkpO2Z1bmN0aW9uIHNzKHQsZSl7cmV0dXJuIHQ9PT1lfHx0IT10JiZlIT1lfXZhciBscz1obyhxaSksY3M9aG8oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+PWV9KSksdXM9WmkoKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30pKCkpP1ppOmZ1bmN0aW9uKHQpe3JldHVybiBNcyh0KSYmTnQuY2FsbCh0LCJjYWxsZWUiKSYmIW5lLmNhbGwodCwiY2FsbGVlIil9LGhzPXZ0LmlzQXJyYXksZHM9c2U/VWUoc2UpOmZ1bmN0aW9uIHBzKHQpe3JldHVybiBNcyh0KSYmV2kodCk9PUN9O2Z1bmN0aW9uIGZzKHQpe3JldHVybiBudWxsIT10JiZ3cyh0Lmxlbmd0aCkmJiFicyh0KX1mdW5jdGlvbiBtcyh0KXtyZXR1cm4gTXModCkmJmZzKHQpfXZhciBncz1kbnx8amwsX3M9bGU/VWUobGUpOmZ1bmN0aW9uIHlzKHQpe3JldHVybiBNcyh0KSYmV2kodCk9PWZ9O2Z1bmN0aW9uIHZzKHQpe2lmKCFNcyh0KSlyZXR1cm4hMTt2YXIgZT1XaSh0KTtyZXR1cm4gZT09bXx8IltvYmplY3QgRE9NRXhjZXB0aW9uXSI9PWV8fCJzdHJpbmciPT10eXBlb2YgdC5tZXNzYWdlJiYic3RyaW5nIj09dHlwZW9mIHQubmFtZSYmIUFzKHQpfWZ1bmN0aW9uIGJzKHQpe2lmKCFTcyh0KSlyZXR1cm4hMTt2YXIgZT1XaSh0KTtyZXR1cm4gZT09Z3x8ZT09X3x8IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iPT1lfHwiW29iamVjdCBQcm94eV0iPT1lfWZ1bmN0aW9uIHhzKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD09VnModCl9ZnVuY3Rpb24gd3ModCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PXN9ZnVuY3Rpb24gU3ModCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9ZnVuY3Rpb24gTXModCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH12YXIgRXM9Y2U/VWUoY2UpOmZ1bmN0aW9uIFRzKHQpe3JldHVybiBNcyh0KSYmUm8odCk9PXl9O2Z1bmN0aW9uIENzKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdHx8TXModCkmJldpKHQpPT12fWZ1bmN0aW9uIEFzKHQpe2lmKCFNcyh0KXx8V2kodCkhPWIpcmV0dXJuITE7dmFyIGU9UXQodCk7aWYobnVsbD09PWUpcmV0dXJuITA7dmFyIG49TnQuY2FsbChlLCJjb25zdHJ1Y3RvciIpJiZlLmNvbnN0cnVjdG9yO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuJiZuIGluc3RhbmNlb2YgbiYmUHQuY2FsbChuKT09enR9dmFyIGtzPXVlP1VlKHVlKTpmdW5jdGlvbiBMcyh0KXtyZXR1cm4gTXModCkmJldpKHQpPT13fSxQcz1oZT9VZShoZSk6ZnVuY3Rpb24gTnModCl7cmV0dXJuIE1zKHQpJiZSbyh0KT09U307ZnVuY3Rpb24gSXModCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHwhaHModCkmJk1zKHQpJiZXaSh0KT09TX1mdW5jdGlvbiBScyh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fE1zKHQpJiZXaSh0KT09RX12YXIgT3M9ZGU/VWUoZGUpOmZ1bmN0aW9uIHpzKHQpe3JldHVybiBNcyh0KSYmd3ModC5sZW5ndGgpJiYhIVh0W1dpKHQpXX0sRHM9aG8oaXIpLEJzPWhvKChmdW5jdGlvbih0LGUpe3JldHVybiB0PD1lfSkpO2Z1bmN0aW9uIEhzKHQpe2lmKCF0KXJldHVybltdO2lmKGZzKHQpKXJldHVybiBJcyh0KT9vbih0KTpYcih0KTtpZihhZSYmdFthZV0pcmV0dXJuKGZ1bmN0aW9uIGUodCl7Zm9yKHZhciBlLG49W107IShlPXQubmV4dCgpKS5kb25lOyluLnB1c2goZS52YWx1ZSk7cmV0dXJuIG59KSh0W2FlXSgpKTt2YXIgbj1Sbyh0KTtyZXR1cm4obj09eT9KZTpuPT1TP2VuOnBsKSh0KX1mdW5jdGlvbiBGcyh0KXtyZXR1cm4gdD8odD1qcyh0KSk9PT1hfHx0PT09LTEvMD8xNzk3NjkzMTM0ODYyMzE1N2UyOTIqKHQ8MD8tMToxKTp0PT10P3Q6MDowPT09dD90OjB9ZnVuY3Rpb24gVnModCl7dmFyIGU9RnModCksbj1lJTE7cmV0dXJuIGU9PWU/bj9lLW46ZTowfWZ1bmN0aW9uIFVzKHQpe3JldHVybiB0P29pKFZzKHQpLDAsYyk6MH1mdW5jdGlvbiBqcyh0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoUnModCkpcmV0dXJuIGw7aWYoU3ModCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PVNzKGUpP2UrIiI6ZX1pZigic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIDA9PT10P3Q6K3Q7dD1WZSh0KTt2YXIgbj11dC50ZXN0KHQpO3JldHVybiBufHxkdC50ZXN0KHQpP0p0KHQuc2xpY2UoMiksbj8yOjgpOmN0LnRlc3QodCk/bDordH1mdW5jdGlvbiBHcyh0KXtyZXR1cm4gJHIodCxvbCh0KSl9ZnVuY3Rpb24gV3ModCl7cmV0dXJuIG51bGw9PXQ/IiI6QXIodCl9dmFyIHFzPVpyKChmdW5jdGlvbih0LGUpe2lmKGpvKGUpfHxmcyhlKSkkcihlLHJsKGUpLHQpO2Vsc2UgZm9yKHZhciBuIGluIGUpTnQuY2FsbChlLG4pJiZRbih0LG4sZVtuXSl9KSksWXM9WnIoKGZ1bmN0aW9uKHQsZSl7JHIoZSxvbChlKSx0KX0pKSxYcz1acigoZnVuY3Rpb24odCxlLG4saSl7JHIoZSxvbChlKSx0LGkpfSkpLCRzPVpyKChmdW5jdGlvbih0LGUsbixpKXskcihlLHJsKGUpLHQsaSl9KSksS3M9d28ocmkpLFpzPW1yKChmdW5jdGlvbihlLG4pe2U9TXQoZSk7dmFyIGk9LTEscj1uLmxlbmd0aCxvPXI+Mj9uWzJdOnQ7Zm9yKG8mJkhvKG5bMF0sblsxXSxvKSYmKHI9MSk7KytpPHI7KWZvcih2YXIgYT1uW2ldLHM9b2woYSksbD0tMSxjPXMubGVuZ3RoOysrbDxjOyl7dmFyIHU9c1tsXSxoPWVbdV07KGg9PT10fHxzcyhoLGt0W3VdKSYmIU50LmNhbGwoZSx1KSkmJihlW3VdPWFbdV0pfXJldHVybiBlfSkpLEpzPW1yKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wdXNoKHQsdm8pLHBlKHNsLHQsZSl9KSk7ZnVuY3Rpb24gUXMoZSxuLGkpe3ZhciByPW51bGw9PWU/dDpqaShlLG4pO3JldHVybiByPT09dD9pOnJ9ZnVuY3Rpb24gdGwodCxlKXtyZXR1cm4gbnVsbCE9dCYmT28odCxlLFhpKX12YXIgZWw9YW8oKGZ1bmN0aW9uKHQsZSxuKXtudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZyYmKGU9T3QuY2FsbChlKSksdFtlXT1ufSksQ2woTGwpKSxubD1hbygoZnVuY3Rpb24odCxlLG4pe251bGwhPWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLnRvU3RyaW5nJiYoZT1PdC5jYWxsKGUpKSxOdC5jYWxsKHQsZSk/dFtlXS5wdXNoKG4pOnRbZV09W25dfSksQW8pLGlsPW1yKEtpKTtmdW5jdGlvbiBybCh0KXtyZXR1cm4gZnModCk/WG4odCk6bnIodCl9ZnVuY3Rpb24gb2wodCl7cmV0dXJuIGZzKHQpP1huKHQsITApOihmdW5jdGlvbiBlKHQpe2lmKCFTcyh0KSlyZXR1cm4oZnVuY3Rpb24gZSh0KXt2YXIgZT1bXTtpZihudWxsIT10KWZvcih2YXIgbiBpbiBNdCh0KSllLnB1c2gobik7cmV0dXJuIGV9KSh0KTt2YXIgbj1qbyh0KSxpPVtdO2Zvcih2YXIgciBpbiB0KSgiY29uc3RydWN0b3IiIT1yfHwhbiYmTnQuY2FsbCh0LHIpKSYmaS5wdXNoKHIpO3JldHVybiBpfSkodCl9dmFyIGFsPVpyKChmdW5jdGlvbih0LGUsbil7c3IodCxlLG4pfSkpLHNsPVpyKChmdW5jdGlvbih0LGUsbixpKXtzcih0LGUsbixpKX0pKSxsbD13bygoZnVuY3Rpb24odCxlKXt2YXIgbj17fTtpZihudWxsPT10KXJldHVybiBuO3ZhciBpPSExO2U9TWUoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGU9QnIoZSx0KSxpfHwoaT1lLmxlbmd0aD4xKSxlfSkpLCRyKHQsTW8odCksbiksaSYmKG49YWkobiw3LGJvKSk7Zm9yKHZhciByPWUubGVuZ3RoO3ItLTspTHIobixlW3JdKTtyZXR1cm4gbn0pKSxjbD13bygoZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD97fTooZnVuY3Rpb24gbih0LGUpe3JldHVybiB1cih0LGUsKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHRsKHQsbil9KSl9KSh0LGUpfSkpO2Z1bmN0aW9uIHVsKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbj1NZShNbyh0KSwoZnVuY3Rpb24odCl7cmV0dXJuW3RdfSkpO3JldHVybiBlPUFvKGUpLHVyKHQsbiwoZnVuY3Rpb24odCxuKXtyZXR1cm4gZSh0LG5bMF0pfSkpfXZhciBobD1nbyhybCksZGw9Z28ob2wpO2Z1bmN0aW9uIHBsKHQpe3JldHVybiBudWxsPT10P1tdOmplKHQscmwodCkpfXZhciBmbD1lbygoZnVuY3Rpb24odCxlLG4pe3JldHVybiBlPWUudG9Mb3dlckNhc2UoKSx0KyhuP21sKGUpOmUpfSkpO2Z1bmN0aW9uIG1sKHQpe3JldHVybiBTbChXcyh0KS50b0xvd2VyQ2FzZSgpKX1mdW5jdGlvbiBnbCh0KXtyZXR1cm4odD1Xcyh0KSkmJnQucmVwbGFjZShmdCxYZSkucmVwbGFjZShWdCwiIil9dmFyIF9sPWVvKChmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrKG4/Ii0iOiIiKStlLnRvTG93ZXJDYXNlKCl9KSkseWw9ZW8oKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdCsobj8iICI6IiIpK2UudG9Mb3dlckNhc2UoKX0pKSx2bD10bygidG9Mb3dlckNhc2UiKSxibD1lbygoZnVuY3Rpb24odCxlLG4pe3JldHVybiB0KyhuPyJfIjoiIikrZS50b0xvd2VyQ2FzZSgpfSkpLHhsPWVvKChmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrKG4/IiAiOiIiKStTbChlKX0pKSx3bD1lbygoZnVuY3Rpb24odCxlLG4pe3JldHVybiB0KyhuPyIgIjoiIikrZS50b1VwcGVyQ2FzZSgpfSkpLFNsPXRvKCJ0b1VwcGVyQ2FzZSIpO2Z1bmN0aW9uIE1sKGUsbixpKXtyZXR1cm4gZT1XcyhlKSwobj1pP3Q6bik9PT10PyhmdW5jdGlvbiByKHQpe3JldHVybiBXdC50ZXN0KHQpfSkoZSk/KGZ1bmN0aW9uIG8odCl7cmV0dXJuIHQubWF0Y2goanQpfHxbXX0pKGUpOihmdW5jdGlvbiBhKHQpe3JldHVybiB0Lm1hdGNoKHJ0KXx8W119KShlKTplLm1hdGNoKG4pfHxbXX12YXIgRWw9bXIoKGZ1bmN0aW9uKGUsbil7dHJ5e3JldHVybiBwZShlLHQsbil9Y2F0Y2godCl7cmV0dXJuIHZzKHQpP3Q6bmV3IHh0KHQpfX0pKSxUbD13bygoZnVuY3Rpb24odCxlKXtyZXR1cm4gbWUoZSwoZnVuY3Rpb24oZSl7ZT1yYShlKSxpaSh0LGUsS2EodFtlXSx0KSl9KSksdH0pKTtmdW5jdGlvbiBDbCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19dmFyIEFsPXJvKCksa2w9cm8oITApO2Z1bmN0aW9uIExsKHQpe3JldHVybiB0fWZ1bmN0aW9uIFBsKHQpe3JldHVybiBlcigiZnVuY3Rpb24iPT10eXBlb2YgdD90OmFpKHQsMSkpfXZhciBObD1tcigoZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIEtpKG4sdCxlKX19KSksSWw9bXIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBLaSh0LG4sZSl9fSkpO2Z1bmN0aW9uIFJsKHQsZSxuKXt2YXIgaT1ybChlKSxyPVVpKGUsaSk7bnVsbCE9bnx8U3MoZSkmJihyLmxlbmd0aHx8IWkubGVuZ3RoKXx8KG49ZSxlPXQsdD10aGlzLHI9VWkoZSxybChlKSkpO3ZhciBvPSEoU3MobikmJiJjaGFpbiJpbiBuJiYhbi5jaGFpbiksYT1icyh0KTtyZXR1cm4gbWUociwoZnVuY3Rpb24obil7dmFyIGk9ZVtuXTt0W25dPWksYSYmKHQucHJvdG90eXBlW25dPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fX2NoYWluX187aWYob3x8ZSl7dmFyIG49dCh0aGlzLl9fd3JhcHBlZF9fKSxyPW4uX19hY3Rpb25zX189WHIodGhpcy5fX2FjdGlvbnNfXyk7cmV0dXJuIHIucHVzaCh7ZnVuYzppLGFyZ3M6YXJndW1lbnRzLHRoaXNBcmc6dH0pLG4uX19jaGFpbl9fPWUsbn1yZXR1cm4gaS5hcHBseSh0LEVlKFt0aGlzLnZhbHVlKCldLGFyZ3VtZW50cykpfSl9KSksdH1mdW5jdGlvbiBPbCgpe312YXIgemw9bG8oTWUpLERsPWxvKF9lKSxCbD1sbyhBZSk7ZnVuY3Rpb24gSGwodCl7cmV0dXJuIEZvKHQpP3plKHJhKHQpKTooZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGppKGUsdCl9fSkodCl9dmFyIEZsPXVvKCksVmw9dW8oITApO2Z1bmN0aW9uIFVsKCl7cmV0dXJuW119ZnVuY3Rpb24gamwoKXtyZXR1cm4hMX12YXIgR2wsV2w9c28oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pLDApLHFsPWZvKCJjZWlsIiksWWw9c28oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQvZX0pLDEpLFhsPWZvKCJmbG9vciIpLCRsPXNvKChmdW5jdGlvbih0LGUpe3JldHVybiB0KmV9KSwxKSxLbD1mbygicm91bmQiKSxabD1zbygoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSksMCk7cmV0dXJuIEJuLmFmdGVyPWZ1bmN0aW9uIEpsKHQsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEN0KGUpO3JldHVybiB0PVZzKHQpLGZ1bmN0aW9uKCl7aWYoLS10PDEpcmV0dXJuIG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sQm4uYXJ5PVhhLEJuLmFzc2lnbj1xcyxCbi5hc3NpZ25Jbj1ZcyxCbi5hc3NpZ25JbldpdGg9WHMsQm4uYXNzaWduV2l0aD0kcyxCbi5hdD1LcyxCbi5iZWZvcmU9JGEsQm4uYmluZD1LYSxCbi5iaW5kQWxsPVRsLEJuLmJpbmRLZXk9WmEsQm4uY2FzdEFycmF5PWZ1bmN0aW9uIFFsKCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuW107dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBocyh0KT90Olt0XX0sQm4uY2hhaW49SWEsQm4uY2h1bms9ZnVuY3Rpb24gdGMoZSxuLGkpe249KGk/SG8oZSxuLGkpOm49PT10KT8xOmduKFZzKG4pLDApO3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtpZighcnx8bjwxKXJldHVybltdO2Zvcih2YXIgbz0wLGE9MCxzPXZ0KGNuKHIvbikpO288cjspc1thKytdPXdyKGUsbyxvKz1uKTtyZXR1cm4gc30sQm4uY29tcGFjdD1mdW5jdGlvbiBlYyh0KXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsaT0wLHI9W107KytlPG47KXt2YXIgbz10W2VdO28mJihyW2krK109byl9cmV0dXJuIHJ9LEJuLmNvbmNhdD1mdW5jdGlvbiBuYygpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg7aWYoIXQpcmV0dXJuW107Zm9yKHZhciBlPXZ0KHQtMSksbj1hcmd1bWVudHNbMF0saT10O2ktLTspZVtpLTFdPWFyZ3VtZW50c1tpXTtyZXR1cm4gRWUoaHMobik/WHIobik6W25dLERpKGUsMSkpfSxCbi5jb25kPWZ1bmN0aW9uIGljKHQpe3ZhciBuPW51bGw9PXQ/MDp0Lmxlbmd0aCxpPUFvKCk7cmV0dXJuIHQ9bj9NZSh0LChmdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdFsxXSl0aHJvdyBuZXcgQ3QoZSk7cmV0dXJuW2kodFswXSksdFsxXV19KSk6W10sbXIoKGZ1bmN0aW9uKGUpe2Zvcih2YXIgaT0tMTsrK2k8bjspe3ZhciByPXRbaV07aWYocGUoclswXSx0aGlzLGUpKXJldHVybiBwZShyWzFdLHRoaXMsZSl9fSkpfSxCbi5jb25mb3Jtcz1mdW5jdGlvbiByYyh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXt2YXIgZT1ybCh0KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHNpKG4sdCxlKX19KShhaSh0LDEpKX0sQm4uY29uc3RhbnQ9Q2wsQm4uY291bnRCeT16YSxCbi5jcmVhdGU9ZnVuY3Rpb24gb2ModCxlKXt2YXIgbj1Ibih0KTtyZXR1cm4gbnVsbD09ZT9uOm5pKG4sZSl9LEJuLmN1cnJ5PWZ1bmN0aW9uIGUobixpLHIpe3ZhciBvPV9vKG4sOCx0LHQsdCx0LHQsaT1yP3Q6aSk7cmV0dXJuIG8ucGxhY2Vob2xkZXI9ZS5wbGFjZWhvbGRlcixvfSxCbi5jdXJyeVJpZ2h0PWZ1bmN0aW9uIGUobixpLHIpe3ZhciBvPV9vKG4sMTYsdCx0LHQsdCx0LGk9cj90OmkpO3JldHVybiBvLnBsYWNlaG9sZGVyPWUucGxhY2Vob2xkZXIsb30sQm4uZGVib3VuY2U9SmEsQm4uZGVmYXVsdHM9WnMsQm4uZGVmYXVsdHNEZWVwPUpzLEJuLmRlZmVyPVFhLEJuLmRlbGF5PXRzLEJuLmRpZmZlcmVuY2U9c2EsQm4uZGlmZmVyZW5jZUJ5PWxhLEJuLmRpZmZlcmVuY2VXaXRoPWNhLEJuLmRyb3A9ZnVuY3Rpb24gYWMoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtyZXR1cm4gcj93cihlLChuPWl8fG49PT10PzE6VnMobikpPDA/MDpuLHIpOltdfSxCbi5kcm9wUmlnaHQ9ZnVuY3Rpb24gc2MoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtyZXR1cm4gcj93cihlLDAsKG49ci0obj1pfHxuPT09dD8xOlZzKG4pKSk8MD8wOm4pOltdfSxCbi5kcm9wUmlnaHRXaGlsZT1mdW5jdGlvbiBsYyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD9Ocih0LEFvKGUsMyksITAsITApOltdfSxCbi5kcm9wV2hpbGU9ZnVuY3Rpb24gY2ModCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg/TnIodCxBbyhlLDMpLCEwKTpbXX0sQm4uZmlsbD1mdW5jdGlvbiB1YyhlLG4saSxyKXt2YXIgbz1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIG8/KGkmJiJudW1iZXIiIT10eXBlb2YgaSYmSG8oZSxuLGkpJiYoaT0wLHI9byksKGZ1bmN0aW9uIGEoZSxuLGkscil7dmFyIG89ZS5sZW5ndGg7Zm9yKChpPVZzKGkpKTwwJiYoaT0taT5vPzA6bytpKSwocj1yPT09dHx8cj5vP286VnMocikpPDAmJihyKz1vKSxyPWk+cj8wOlVzKHIpO2k8cjspZVtpKytdPW47cmV0dXJuIGV9KShlLG4saSxyKSk6W119LEJuLmZpbHRlcj1mdW5jdGlvbiBoYyh0LGUpe3JldHVybihocyh0KT95ZTp6aSkodCxBbyhlLDMpKX0sQm4uZmxhdE1hcD1mdW5jdGlvbiBkYyh0LGUpe3JldHVybiBEaShHYSh0LGUpLDEpfSxCbi5mbGF0TWFwRGVlcD1mdW5jdGlvbiBwYyh0LGUpe3JldHVybiBEaShHYSh0LGUpLGEpfSxCbi5mbGF0TWFwRGVwdGg9ZnVuY3Rpb24gZmMoZSxuLGkpe3JldHVybiBpPWk9PT10PzE6VnMoaSksRGkoR2EoZSxuKSxpKX0sQm4uZmxhdHRlbj1kYSxCbi5mbGF0dGVuRGVlcD1mdW5jdGlvbiBtYyh0KXtyZXR1cm4gbnVsbCE9dCYmdC5sZW5ndGg/RGkodCxhKTpbXX0sQm4uZmxhdHRlbkRlcHRoPWZ1bmN0aW9uIGdjKGUsbil7cmV0dXJuIG51bGwhPWUmJmUubGVuZ3RoP0RpKGUsbj1uPT09dD8xOlZzKG4pKTpbXX0sQm4uZmxpcD1mdW5jdGlvbiBfYyh0KXtyZXR1cm4gX28odCw1MTIpfSxCbi5mbG93PUFsLEJuLmZsb3dSaWdodD1rbCxCbi5mcm9tUGFpcnM9ZnVuY3Rpb24geWModCl7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLGk9e307KytlPG47KXt2YXIgcj10W2VdO2lbclswXV09clsxXX1yZXR1cm4gaX0sQm4uZnVuY3Rpb25zPWZ1bmN0aW9uIHZjKHQpe3JldHVybiBudWxsPT10P1tdOlVpKHQscmwodCkpfSxCbi5mdW5jdGlvbnNJbj1mdW5jdGlvbiBiYyh0KXtyZXR1cm4gbnVsbD09dD9bXTpVaSh0LG9sKHQpKX0sQm4uZ3JvdXBCeT1WYSxCbi5pbml0aWFsPWZ1bmN0aW9uIHhjKHQpe3JldHVybiBudWxsIT10JiZ0Lmxlbmd0aD93cih0LDAsLTEpOltdfSxCbi5pbnRlcnNlY3Rpb249ZmEsQm4uaW50ZXJzZWN0aW9uQnk9bWEsQm4uaW50ZXJzZWN0aW9uV2l0aD1nYSxCbi5pbnZlcnQ9ZWwsQm4uaW52ZXJ0Qnk9bmwsQm4uaW52b2tlTWFwPVVhLEJuLml0ZXJhdGVlPVBsLEJuLmtleUJ5PWphLEJuLmtleXM9cmwsQm4ua2V5c0luPW9sLEJuLm1hcD1HYSxCbi5tYXBLZXlzPWZ1bmN0aW9uIHdjKHQsZSl7dmFyIG49e307cmV0dXJuIGU9QW8oZSwzKSxGaSh0LChmdW5jdGlvbih0LGkscil7aWkobixlKHQsaSxyKSx0KX0pKSxufSxCbi5tYXBWYWx1ZXM9ZnVuY3Rpb24gU2ModCxlKXt2YXIgbj17fTtyZXR1cm4gZT1BbyhlLDMpLEZpKHQsKGZ1bmN0aW9uKHQsaSxyKXtpaShuLGksZSh0LGkscikpfSkpLG59LEJuLm1hdGNoZXM9ZnVuY3Rpb24gTWModCl7cmV0dXJuIG9yKGFpKHQsMSkpfSxCbi5tYXRjaGVzUHJvcGVydHk9ZnVuY3Rpb24gRWModCxlKXtyZXR1cm4gYXIodCxhaShlLDEpKX0sQm4ubWVtb2l6ZT1lcyxCbi5tZXJnZT1hbCxCbi5tZXJnZVdpdGg9c2wsQm4ubWV0aG9kPU5sLEJuLm1ldGhvZE9mPUlsLEJuLm1peGluPVJsLEJuLm5lZ2F0ZT1ucyxCbi5udGhBcmc9ZnVuY3Rpb24gVGModCl7cmV0dXJuIHQ9VnModCksbXIoKGZ1bmN0aW9uKGUpe3JldHVybiBscihlLHQpfSkpfSxCbi5vbWl0PWxsLEJuLm9taXRCeT1mdW5jdGlvbiBDYyh0LGUpe3JldHVybiB1bCh0LG5zKEFvKGUpKSl9LEJuLm9uY2U9ZnVuY3Rpb24gQWModCl7cmV0dXJuICRhKDIsdCl9LEJuLm9yZGVyQnk9ZnVuY3Rpb24ga2MoZSxuLGkscil7cmV0dXJuIG51bGw9PWU/W106KGhzKG4pfHwobj1udWxsPT1uP1tdOltuXSksaHMoaT1yP3Q6aSl8fChpPW51bGw9PWk/W106W2ldKSxjcihlLG4saSkpfSxCbi5vdmVyPXpsLEJuLm92ZXJBcmdzPWlzLEJuLm92ZXJFdmVyeT1EbCxCbi5vdmVyU29tZT1CbCxCbi5wYXJ0aWFsPXJzLEJuLnBhcnRpYWxSaWdodD1vcyxCbi5wYXJ0aXRpb249V2EsQm4ucGljaz1jbCxCbi5waWNrQnk9dWwsQm4ucHJvcGVydHk9SGwsQm4ucHJvcGVydHlPZj1mdW5jdGlvbiBMYyhlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG51bGw9PWU/dDpqaShlLG4pfX0sQm4ucHVsbD15YSxCbi5wdWxsQWxsPXZhLEJuLnB1bGxBbGxCeT1mdW5jdGlvbiBQYyh0LGUsbil7cmV0dXJuIHQmJnQubGVuZ3RoJiZlJiZlLmxlbmd0aD9ocih0LGUsQW8obiwyKSk6dH0sQm4ucHVsbEFsbFdpdGg9ZnVuY3Rpb24gTmMoZSxuLGkpe3JldHVybiBlJiZlLmxlbmd0aCYmbiYmbi5sZW5ndGg/aHIoZSxuLHQsaSk6ZX0sQm4ucHVsbEF0PWJhLEJuLnJhbmdlPUZsLEJuLnJhbmdlUmlnaHQ9VmwsQm4ucmVhcmc9YXMsQm4ucmVqZWN0PWZ1bmN0aW9uIEljKHQsZSl7cmV0dXJuKGhzKHQpP3llOnppKSh0LG5zKEFvKGUsMykpKX0sQm4ucmVtb3ZlPWZ1bmN0aW9uIFJjKHQsZSl7dmFyIG49W107aWYoIXR8fCF0Lmxlbmd0aClyZXR1cm4gbjt2YXIgaT0tMSxyPVtdLG89dC5sZW5ndGg7Zm9yKGU9QW8oZSwzKTsrK2k8bzspe3ZhciBhPXRbaV07ZShhLGksdCkmJihuLnB1c2goYSksci5wdXNoKGkpKX1yZXR1cm4gZHIodCxyKSxufSxCbi5yZXN0PWZ1bmN0aW9uIE9jKG4saSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEN0KGUpO3JldHVybiBtcihuLGk9aT09PXQ/aTpWcyhpKSl9LEJuLnJldmVyc2U9eGEsQm4uc2FtcGxlU2l6ZT1mdW5jdGlvbiB6YyhlLG4saSl7cmV0dXJuIG49KGk/SG8oZSxuLGkpOm49PT10KT8xOlZzKG4pLChocyhlKT9LbjpfcikoZSxuKX0sQm4uc2V0PWZ1bmN0aW9uIERjKHQsZSxuKXtyZXR1cm4gbnVsbD09dD90OnlyKHQsZSxuKX0sQm4uc2V0V2l0aD1mdW5jdGlvbiBCYyhlLG4saSxyKXtyZXR1cm4gcj0iZnVuY3Rpb24iPT10eXBlb2Ygcj9yOnQsbnVsbD09ZT9lOnlyKGUsbixpLHIpfSxCbi5zaHVmZmxlPWZ1bmN0aW9uIEhjKHQpe3JldHVybihocyh0KT9abjp4cikodCl9LEJuLnNsaWNlPWZ1bmN0aW9uIEZjKGUsbixpKXt2YXIgcj1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIHI/KGkmJiJudW1iZXIiIT10eXBlb2YgaSYmSG8oZSxuLGkpPyhuPTAsaT1yKToobj1udWxsPT1uPzA6VnMobiksaT1pPT09dD9yOlZzKGkpKSx3cihlLG4saSkpOltdfSxCbi5zb3J0Qnk9cWEsQm4uc29ydGVkVW5pcT1mdW5jdGlvbiBWYyh0KXtyZXR1cm4gdCYmdC5sZW5ndGg/VHIodCk6W119LEJuLnNvcnRlZFVuaXFCeT1mdW5jdGlvbiBVYyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD9Ucih0LEFvKGUsMikpOltdfSxCbi5zcGxpdD1mdW5jdGlvbiBqYyhlLG4saSl7cmV0dXJuIGkmJiJudW1iZXIiIT10eXBlb2YgaSYmSG8oZSxuLGkpJiYobj1pPXQpLChpPWk9PT10P2M6aT4+PjApPyhlPVdzKGUpKSYmKCJzdHJpbmciPT10eXBlb2Ygbnx8bnVsbCE9biYmIWtzKG4pKSYmIShuPUFyKG4pKSYmWmUoZSk/RnIob24oZSksMCxpKTplLnNwbGl0KG4saSk6W119LEJuLnNwcmVhZD1mdW5jdGlvbiBHYyh0LG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBDdChlKTtyZXR1cm4gbj1udWxsPT1uPzA6Z24oVnMobiksMCksbXIoKGZ1bmN0aW9uKGUpe3ZhciBpPWVbbl0scj1GcihlLDAsbik7cmV0dXJuIGkmJkVlKHIsaSkscGUodCx0aGlzLHIpfSkpfSxCbi50YWlsPWZ1bmN0aW9uIFdjKHQpe3ZhciBlPW51bGw9PXQ/MDp0Lmxlbmd0aDtyZXR1cm4gZT93cih0LDEsZSk6W119LEJuLnRha2U9ZnVuY3Rpb24gcWMoZSxuLGkpe3JldHVybiBlJiZlLmxlbmd0aD93cihlLDAsKG49aXx8bj09PXQ/MTpWcyhuKSk8MD8wOm4pOltdfSxCbi50YWtlUmlnaHQ9ZnVuY3Rpb24gWWMoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtyZXR1cm4gcj93cihlLChuPXItKG49aXx8bj09PXQ/MTpWcyhuKSkpPDA/MDpuLHIpOltdfSxCbi50YWtlUmlnaHRXaGlsZT1mdW5jdGlvbiBYYyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD9Ocih0LEFvKGUsMyksITEsITApOltdfSxCbi50YWtlV2hpbGU9ZnVuY3Rpb24gJGModCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg/TnIodCxBbyhlLDMpKTpbXX0sQm4udGFwPWZ1bmN0aW9uIEtjKHQsZSl7cmV0dXJuIGUodCksdH0sQm4udGhyb3R0bGU9ZnVuY3Rpb24gWmModCxuLGkpe3ZhciByPSEwLG89ITA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEN0KGUpO3JldHVybiBTcyhpKSYmKHI9ImxlYWRpbmciaW4gaT8hIWkubGVhZGluZzpyLG89InRyYWlsaW5nImluIGk/ISFpLnRyYWlsaW5nOm8pLEphKHQsbix7bGVhZGluZzpyLG1heFdhaXQ6bix0cmFpbGluZzpvfSl9LEJuLnRocnU9UmEsQm4udG9BcnJheT1IcyxCbi50b1BhaXJzPWhsLEJuLnRvUGFpcnNJbj1kbCxCbi50b1BhdGg9ZnVuY3Rpb24gSmModCl7cmV0dXJuIGhzKHQpP01lKHQscmEpOlJzKHQpP1t0XTpYcihuYShXcyh0KSkpfSxCbi50b1BsYWluT2JqZWN0PUdzLEJuLnRyYW5zZm9ybT1mdW5jdGlvbiBRYyh0LGUsbil7dmFyIGk9aHModCkscj1pfHxncyh0KXx8T3ModCk7aWYoZT1BbyhlLDQpLG51bGw9PW4pe3ZhciBvPXQmJnQuY29uc3RydWN0b3I7bj1yP2k/bmV3IG86W106U3ModCkmJmJzKG8pP0huKFF0KHQpKTp7fX1yZXR1cm4ocj9tZTpGaSkodCwoZnVuY3Rpb24odCxpLHIpe3JldHVybiBlKG4sdCxpLHIpfSkpLG59LEJuLnVuYXJ5PWZ1bmN0aW9uIHR1KHQpe3JldHVybiBYYSh0LDEpfSxCbi51bmlvbj13YSxCbi51bmlvbkJ5PVNhLEJuLnVuaW9uV2l0aD1NYSxCbi51bmlxPWZ1bmN0aW9uIGV1KHQpe3JldHVybiB0JiZ0Lmxlbmd0aD9rcih0KTpbXX0sQm4udW5pcUJ5PWZ1bmN0aW9uIG51KHQsZSl7cmV0dXJuIHQmJnQubGVuZ3RoP2tyKHQsQW8oZSwyKSk6W119LEJuLnVuaXFXaXRoPWZ1bmN0aW9uIGl1KGUsbil7cmV0dXJuIG49ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjp0LGUmJmUubGVuZ3RoP2tyKGUsdCxuKTpbXX0sQm4udW5zZXQ9ZnVuY3Rpb24gcnUodCxlKXtyZXR1cm4gbnVsbD09dHx8THIodCxlKX0sQm4udW56aXA9RWEsQm4udW56aXBXaXRoPVRhLEJuLnVwZGF0ZT1mdW5jdGlvbiBvdSh0LGUsbil7cmV0dXJuIG51bGw9PXQ/dDpQcih0LGUsRHIobikpfSxCbi51cGRhdGVXaXRoPWZ1bmN0aW9uIGF1KGUsbixpLHIpe3JldHVybiByPSJmdW5jdGlvbiI9PXR5cGVvZiByP3I6dCxudWxsPT1lP2U6UHIoZSxuLERyKGkpLHIpfSxCbi52YWx1ZXM9cGwsQm4udmFsdWVzSW49ZnVuY3Rpb24gc3UodCl7cmV0dXJuIG51bGw9PXQ/W106amUodCxvbCh0KSl9LEJuLndpdGhvdXQ9Q2EsQm4ud29yZHM9TWwsQm4ud3JhcD1mdW5jdGlvbiBsdSh0LGUpe3JldHVybiBycyhEcihlKSx0KX0sQm4ueG9yPUFhLEJuLnhvckJ5PWthLEJuLnhvcldpdGg9TGEsQm4uemlwPVBhLEJuLnppcE9iamVjdD1mdW5jdGlvbiBjdSh0LGUpe3JldHVybiBPcih0fHxbXSxlfHxbXSxRbil9LEJuLnppcE9iamVjdERlZXA9ZnVuY3Rpb24gdXUodCxlKXtyZXR1cm4gT3IodHx8W10sZXx8W10seXIpfSxCbi56aXBXaXRoPU5hLEJuLmVudHJpZXM9aGwsQm4uZW50cmllc0luPWRsLEJuLmV4dGVuZD1ZcyxCbi5leHRlbmRXaXRoPVhzLFJsKEJuLEJuKSxCbi5hZGQ9V2wsQm4uYXR0ZW1wdD1FbCxCbi5jYW1lbENhc2U9ZmwsQm4uY2FwaXRhbGl6ZT1tbCxCbi5jZWlsPXFsLEJuLmNsYW1wPWZ1bmN0aW9uIGh1KGUsbixpKXtyZXR1cm4gaT09PXQmJihpPW4sbj10KSxpIT09dCYmKGk9KGk9anMoaSkpPT1pP2k6MCksbiE9PXQmJihuPShuPWpzKG4pKT09bj9uOjApLG9pKGpzKGUpLG4saSl9LEJuLmNsb25lPWZ1bmN0aW9uIGR1KHQpe3JldHVybiBhaSh0LDQpfSxCbi5jbG9uZURlZXA9ZnVuY3Rpb24gcHUodCl7cmV0dXJuIGFpKHQsNSl9LEJuLmNsb25lRGVlcFdpdGg9ZnVuY3Rpb24gZnUoZSxuKXtyZXR1cm4gYWkoZSw1LG49ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjp0KX0sQm4uY2xvbmVXaXRoPWZ1bmN0aW9uIG11KGUsbil7cmV0dXJuIGFpKGUsNCxuPSJmdW5jdGlvbiI9PXR5cGVvZiBuP246dCl9LEJuLmNvbmZvcm1zVG89ZnVuY3Rpb24gZ3UodCxlKXtyZXR1cm4gbnVsbD09ZXx8c2kodCxlLHJsKGUpKX0sQm4uZGVidXJyPWdsLEJuLmRlZmF1bHRUbz1mdW5jdGlvbiBfdSh0LGUpe3JldHVybiBudWxsPT10fHx0IT10P2U6dH0sQm4uZGl2aWRlPVlsLEJuLmVuZHNXaXRoPWZ1bmN0aW9uIHl1KGUsbixpKXtlPVdzKGUpLG49QXIobik7dmFyIHI9ZS5sZW5ndGgsbz1pPWk9PT10P3I6b2koVnMoaSksMCxyKTtyZXR1cm4oaS09bi5sZW5ndGgpPj0wJiZlLnNsaWNlKGksbyk9PW59LEJuLmVxPXNzLEJuLmVzY2FwZT1mdW5jdGlvbiB2dSh0KXtyZXR1cm4odD1Xcyh0KSkmJkcudGVzdCh0KT90LnJlcGxhY2UoVSwkZSk6dH0sQm4uZXNjYXBlUmVnRXhwPWZ1bmN0aW9uIGJ1KHQpe3JldHVybih0PVdzKHQpKSYmSi50ZXN0KHQpP3QucmVwbGFjZShaLCJcXCQmIik6dH0sQm4uZXZlcnk9ZnVuY3Rpb24geHUoZSxuLGkpe3ZhciByPWhzKGUpP19lOlJpO3JldHVybiBpJiZIbyhlLG4saSkmJihuPXQpLHIoZSxBbyhuLDMpKX0sQm4uZmluZD1EYSxCbi5maW5kSW5kZXg9dWEsQm4uZmluZEtleT1mdW5jdGlvbiB3dSh0LGUpe3JldHVybiBMZSh0LEFvKGUsMyksRmkpfSxCbi5maW5kTGFzdD1CYSxCbi5maW5kTGFzdEluZGV4PWhhLEJuLmZpbmRMYXN0S2V5PWZ1bmN0aW9uIFN1KHQsZSl7cmV0dXJuIExlKHQsQW8oZSwzKSxWaSl9LEJuLmZsb29yPVhsLEJuLmZvckVhY2g9SGEsQm4uZm9yRWFjaFJpZ2h0PUZhLEJuLmZvckluPWZ1bmN0aW9uIE11KHQsZSl7cmV0dXJuIG51bGw9PXQ/dDpCaSh0LEFvKGUsMyksb2wpfSxCbi5mb3JJblJpZ2h0PWZ1bmN0aW9uIEV1KHQsZSl7cmV0dXJuIG51bGw9PXQ/dDpIaSh0LEFvKGUsMyksb2wpfSxCbi5mb3JPd249ZnVuY3Rpb24gVHUodCxlKXtyZXR1cm4gdCYmRmkodCxBbyhlLDMpKX0sQm4uZm9yT3duUmlnaHQ9ZnVuY3Rpb24gQ3UodCxlKXtyZXR1cm4gdCYmVmkodCxBbyhlLDMpKX0sQm4uZ2V0PVFzLEJuLmd0PWxzLEJuLmd0ZT1jcyxCbi5oYXM9ZnVuY3Rpb24gQXUodCxlKXtyZXR1cm4gbnVsbCE9dCYmT28odCxlLFlpKX0sQm4uaGFzSW49dGwsQm4uaGVhZD1wYSxCbi5pZGVudGl0eT1MbCxCbi5pbmNsdWRlcz1mdW5jdGlvbiBrdSh0LGUsbixpKXt0PWZzKHQpP3Q6cGwodCksbj1uJiYhaT9WcyhuKTowO3ZhciByPXQubGVuZ3RoO3JldHVybiBuPDAmJihuPWduKHIrbiwwKSksSXModCk/bjw9ciYmdC5pbmRleE9mKGUsbik+LTE6ISFyJiZOZSh0LGUsbik+LTF9LEJuLmluZGV4T2Y9ZnVuY3Rpb24gTHUodCxlLG4pe3ZhciBpPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZighaSlyZXR1cm4tMTt2YXIgcj1udWxsPT1uPzA6VnMobik7cmV0dXJuIHI8MCYmKHI9Z24oaStyLDApKSxOZSh0LGUscil9LEJuLmluUmFuZ2U9ZnVuY3Rpb24gUHUoZSxuLGkpe3JldHVybiBuPUZzKG4pLGk9PT10PyhpPW4sbj0wKTppPUZzKGkpLChmdW5jdGlvbiByKHQsZSxuKXtyZXR1cm4gdD49X24oZSxuKSYmdDxnbihlLG4pfSkoZT1qcyhlKSxuLGkpfSxCbi5pbnZva2U9aWwsQm4uaXNBcmd1bWVudHM9dXMsQm4uaXNBcnJheT1ocyxCbi5pc0FycmF5QnVmZmVyPWRzLEJuLmlzQXJyYXlMaWtlPWZzLEJuLmlzQXJyYXlMaWtlT2JqZWN0PW1zLEJuLmlzQm9vbGVhbj1mdW5jdGlvbiBOdSh0KXtyZXR1cm4hMD09PXR8fCExPT09dHx8TXModCkmJldpKHQpPT1wfSxCbi5pc0J1ZmZlcj1ncyxCbi5pc0RhdGU9X3MsQm4uaXNFbGVtZW50PWZ1bmN0aW9uIEl1KHQpe3JldHVybiBNcyh0KSYmMT09PXQubm9kZVR5cGUmJiFBcyh0KX0sQm4uaXNFbXB0eT1mdW5jdGlvbiBSdSh0KXtpZihudWxsPT10KXJldHVybiEwO2lmKGZzKHQpJiYoaHModCl8fCJzdHJpbmciPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQuc3BsaWNlfHxncyh0KXx8T3ModCl8fHVzKHQpKSlyZXR1cm4hdC5sZW5ndGg7dmFyIGU9Um8odCk7aWYoZT09eXx8ZT09UylyZXR1cm4hdC5zaXplO2lmKGpvKHQpKXJldHVybiFucih0KS5sZW5ndGg7Zm9yKHZhciBuIGluIHQpaWYoTnQuY2FsbCh0LG4pKXJldHVybiExO3JldHVybiEwfSxCbi5pc0VxdWFsPWZ1bmN0aW9uIE91KHQsZSl7cmV0dXJuIEppKHQsZSl9LEJuLmlzRXF1YWxXaXRoPWZ1bmN0aW9uIHp1KGUsbixpKXt2YXIgcj0oaT0iZnVuY3Rpb24iPT10eXBlb2YgaT9pOnQpP2koZSxuKTp0O3JldHVybiByPT09dD9KaShlLG4sdCxpKTohIXJ9LEJuLmlzRXJyb3I9dnMsQm4uaXNGaW5pdGU9ZnVuY3Rpb24gRHUodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZwbih0KX0sQm4uaXNGdW5jdGlvbj1icyxCbi5pc0ludGVnZXI9eHMsQm4uaXNMZW5ndGg9d3MsQm4uaXNNYXA9RXMsQm4uaXNNYXRjaD1mdW5jdGlvbiBCdSh0LGUpe3JldHVybiB0PT09ZXx8UWkodCxlLExvKGUpKX0sQm4uaXNNYXRjaFdpdGg9ZnVuY3Rpb24gSHUoZSxuLGkpe3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiBpP2k6dCxRaShlLG4sTG8obiksaSl9LEJuLmlzTmFOPWZ1bmN0aW9uIEZ1KHQpe3JldHVybiBDcyh0KSYmdCE9K3R9LEJuLmlzTmF0aXZlPWZ1bmN0aW9uIFZ1KHQpe2lmKFVvKHQpKXRocm93IG5ldyB4dCgiVW5zdXBwb3J0ZWQgY29yZS1qcyB1c2UuIFRyeSBodHRwczovL25wbXMuaW8vc2VhcmNoP3E9cG9ueWZpbGwuIik7cmV0dXJuIHRyKHQpfSxCbi5pc05pbD1mdW5jdGlvbiBVdSh0KXtyZXR1cm4gbnVsbD09dH0sQm4uaXNOdWxsPWZ1bmN0aW9uIGp1KHQpe3JldHVybiBudWxsPT09dH0sQm4uaXNOdW1iZXI9Q3MsQm4uaXNPYmplY3Q9U3MsQm4uaXNPYmplY3RMaWtlPU1zLEJuLmlzUGxhaW5PYmplY3Q9QXMsQm4uaXNSZWdFeHA9a3MsQm4uaXNTYWZlSW50ZWdlcj1mdW5jdGlvbiBHdSh0KXtyZXR1cm4geHModCkmJnQ+PS05MDA3MTk5MjU0NzQwOTkxJiZ0PD1zfSxCbi5pc1NldD1QcyxCbi5pc1N0cmluZz1JcyxCbi5pc1N5bWJvbD1ScyxCbi5pc1R5cGVkQXJyYXk9T3MsQm4uaXNVbmRlZmluZWQ9ZnVuY3Rpb24gV3UoZSl7cmV0dXJuIGU9PT10fSxCbi5pc1dlYWtNYXA9ZnVuY3Rpb24gcXUodCl7cmV0dXJuIE1zKHQpJiZSbyh0KT09VH0sQm4uaXNXZWFrU2V0PWZ1bmN0aW9uIFl1KHQpe3JldHVybiBNcyh0KSYmIltvYmplY3QgV2Vha1NldF0iPT1XaSh0KX0sQm4uam9pbj1mdW5jdGlvbiBYdSh0LGUpe3JldHVybiBudWxsPT10PyIiOmZuLmNhbGwodCxlKX0sQm4ua2ViYWJDYXNlPV9sLEJuLmxhc3Q9X2EsQm4ubGFzdEluZGV4T2Y9ZnVuY3Rpb24gJHUoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtpZighcilyZXR1cm4tMTt2YXIgbz1yO3JldHVybiBpIT09dCYmKG89KG89VnMoaSkpPDA/Z24ocitvLDApOl9uKG8sci0xKSksbj09bj8oZnVuY3Rpb24gYSh0LGUsbil7Zm9yKHZhciBpPW4rMTtpLS07KWlmKHRbaV09PT1lKXJldHVybiBpO3JldHVybiBpfSkoZSxuLG8pOlBlKGUsUmUsbywhMCl9LEJuLmxvd2VyQ2FzZT15bCxCbi5sb3dlckZpcnN0PXZsLEJuLmx0PURzLEJuLmx0ZT1CcyxCbi5tYXg9ZnVuY3Rpb24gS3UoZSl7cmV0dXJuIGUmJmUubGVuZ3RoP09pKGUsTGwscWkpOnR9LEJuLm1heEJ5PWZ1bmN0aW9uIFp1KGUsbil7cmV0dXJuIGUmJmUubGVuZ3RoP09pKGUsQW8obiwyKSxxaSk6dH0sQm4ubWVhbj1mdW5jdGlvbiBKdSh0KXtyZXR1cm4gT2UodCxMbCl9LEJuLm1lYW5CeT1mdW5jdGlvbiBRdSh0LGUpe3JldHVybiBPZSh0LEFvKGUsMikpfSxCbi5taW49ZnVuY3Rpb24gdGgoZSl7cmV0dXJuIGUmJmUubGVuZ3RoP09pKGUsTGwsaXIpOnR9LEJuLm1pbkJ5PWZ1bmN0aW9uIGVoKGUsbil7cmV0dXJuIGUmJmUubGVuZ3RoP09pKGUsQW8obiwyKSxpcik6dH0sQm4uc3R1YkFycmF5PVVsLEJuLnN0dWJGYWxzZT1qbCxCbi5zdHViT2JqZWN0PWZ1bmN0aW9uIG5oKCl7cmV0dXJue319LEJuLnN0dWJTdHJpbmc9ZnVuY3Rpb24gaWgoKXtyZXR1cm4iIn0sQm4uc3R1YlRydWU9ZnVuY3Rpb24gcmgoKXtyZXR1cm4hMH0sQm4ubXVsdGlwbHk9JGwsQm4ubnRoPWZ1bmN0aW9uIG9oKGUsbil7cmV0dXJuIGUmJmUubGVuZ3RoP2xyKGUsVnMobikpOnR9LEJuLm5vQ29uZmxpY3Q9ZnVuY3Rpb24gYWgoKXtyZXR1cm4gZWUuXz09PXRoaXMmJihlZS5fPUR0KSx0aGlzfSxCbi5ub29wPU9sLEJuLm5vdz1ZYSxCbi5wYWQ9ZnVuY3Rpb24gc2godCxlLG4pe3Q9V3ModCk7dmFyIGk9KGU9VnMoZSkpP3JuKHQpOjA7aWYoIWV8fGk+PWUpcmV0dXJuIHQ7dmFyIHI9KGUtaSkvMjtyZXR1cm4gY28odW4ociksbikrdCtjbyhjbihyKSxuKX0sQm4ucGFkRW5kPWZ1bmN0aW9uIGxoKHQsZSxuKXt0PVdzKHQpO3ZhciBpPShlPVZzKGUpKT9ybih0KTowO3JldHVybiBlJiZpPGU/dCtjbyhlLWksbik6dH0sQm4ucGFkU3RhcnQ9ZnVuY3Rpb24gY2godCxlLG4pe3Q9V3ModCk7dmFyIGk9KGU9VnMoZSkpP3JuKHQpOjA7cmV0dXJuIGUmJmk8ZT9jbyhlLWksbikrdDp0fSxCbi5wYXJzZUludD1mdW5jdGlvbiB1aCh0LGUsbil7cmV0dXJuIG58fG51bGw9PWU/ZT0wOmUmJihlPStlKSx2bihXcyh0KS5yZXBsYWNlKFEsIiIpLGV8fDApfSxCbi5yYW5kb209ZnVuY3Rpb24gaGgoZSxuLGkpe2lmKGkmJiJib29sZWFuIiE9dHlwZW9mIGkmJkhvKGUsbixpKSYmKG49aT10KSxpPT09dCYmKCJib29sZWFuIj09dHlwZW9mIG4/KGk9bixuPXQpOiJib29sZWFuIj09dHlwZW9mIGUmJihpPWUsZT10KSksZT09PXQmJm49PT10PyhlPTAsbj0xKTooZT1GcyhlKSxuPT09dD8obj1lLGU9MCk6bj1GcyhuKSksZT5uKXt2YXIgcj1lO2U9bixuPXJ9aWYoaXx8ZSUxfHxuJTEpe3ZhciBvPWJuKCk7cmV0dXJuIF9uKGUrbyoobi1lK1p0KCIxZS0iKygobysiIikubGVuZ3RoLTEpKSksbil9cmV0dXJuIHByKGUsbil9LEJuLnJlZHVjZT1mdW5jdGlvbiBkaCh0LGUsbil7dmFyIGk9aHModCk/VGU6QmUscj1hcmd1bWVudHMubGVuZ3RoPDM7cmV0dXJuIGkodCxBbyhlLDQpLG4scixOaSl9LEJuLnJlZHVjZVJpZ2h0PWZ1bmN0aW9uIHBoKHQsZSxuKXt2YXIgaT1ocyh0KT9DZTpCZSxyPWFyZ3VtZW50cy5sZW5ndGg8MztyZXR1cm4gaSh0LEFvKGUsNCksbixyLElpKX0sQm4ucmVwZWF0PWZ1bmN0aW9uIGZoKGUsbixpKXtyZXR1cm4gbj0oaT9IbyhlLG4saSk6bj09PXQpPzE6VnMobiksZnIoV3MoZSksbil9LEJuLnJlcGxhY2U9ZnVuY3Rpb24gbWgoKXt2YXIgdD1hcmd1bWVudHMsZT1Xcyh0WzBdKTtyZXR1cm4gdC5sZW5ndGg8Mz9lOmUucmVwbGFjZSh0WzFdLHRbMl0pfSxCbi5yZXN1bHQ9ZnVuY3Rpb24gZ2goZSxuLGkpe3ZhciByPS0xLG89KG49QnIobixlKSkubGVuZ3RoO2ZvcihvfHwobz0xLGU9dCk7KytyPG87KXt2YXIgYT1udWxsPT1lP3Q6ZVtyYShuW3JdKV07YT09PXQmJihyPW8sYT1pKSxlPWJzKGEpP2EuY2FsbChlKTphfXJldHVybiBlfSxCbi5yb3VuZD1LbCxCbi5ydW5JbkNvbnRleHQ9dHQsQm4uc2FtcGxlPWZ1bmN0aW9uIF9oKHQpe3JldHVybihocyh0KT8kbjpncikodCl9LEJuLnNpemU9ZnVuY3Rpb24geWgodCl7aWYobnVsbD09dClyZXR1cm4gMDtpZihmcyh0KSlyZXR1cm4gSXModCk/cm4odCk6dC5sZW5ndGg7dmFyIGU9Um8odCk7cmV0dXJuIGU9PXl8fGU9PVM/dC5zaXplOm5yKHQpLmxlbmd0aH0sQm4uc25ha2VDYXNlPWJsLEJuLnNvbWU9ZnVuY3Rpb24gdmgoZSxuLGkpe3ZhciByPWhzKGUpP0FlOlNyO3JldHVybiBpJiZIbyhlLG4saSkmJihuPXQpLHIoZSxBbyhuLDMpKX0sQm4uc29ydGVkSW5kZXg9ZnVuY3Rpb24gYmgodCxlKXtyZXR1cm4gTXIodCxlKX0sQm4uc29ydGVkSW5kZXhCeT1mdW5jdGlvbiB4aCh0LGUsbil7cmV0dXJuIEVyKHQsZSxBbyhuLDIpKX0sQm4uc29ydGVkSW5kZXhPZj1mdW5jdGlvbiB3aCh0LGUpe3ZhciBuPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZihuKXt2YXIgaT1Ncih0LGUpO2lmKGk8biYmc3ModFtpXSxlKSlyZXR1cm4gaX1yZXR1cm4tMX0sQm4uc29ydGVkTGFzdEluZGV4PWZ1bmN0aW9uIFNoKHQsZSl7cmV0dXJuIE1yKHQsZSwhMCl9LEJuLnNvcnRlZExhc3RJbmRleEJ5PWZ1bmN0aW9uIE1oKHQsZSxuKXtyZXR1cm4gRXIodCxlLEFvKG4sMiksITApfSxCbi5zb3J0ZWRMYXN0SW5kZXhPZj1mdW5jdGlvbiBFaCh0LGUpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXt2YXIgbj1Ncih0LGUsITApLTE7aWYoc3ModFtuXSxlKSlyZXR1cm4gbn1yZXR1cm4tMX0sQm4uc3RhcnRDYXNlPXhsLEJuLnN0YXJ0c1dpdGg9ZnVuY3Rpb24gVGgodCxlLG4pe3JldHVybiB0PVdzKHQpLG49bnVsbD09bj8wOm9pKFZzKG4pLDAsdC5sZW5ndGgpLGU9QXIoZSksdC5zbGljZShuLG4rZS5sZW5ndGgpPT1lfSxCbi5zdWJ0cmFjdD1abCxCbi5zdW09ZnVuY3Rpb24gQ2godCl7cmV0dXJuIHQmJnQubGVuZ3RoP0hlKHQsTGwpOjB9LEJuLnN1bUJ5PWZ1bmN0aW9uIEFoKHQsZSl7cmV0dXJuIHQmJnQubGVuZ3RoP0hlKHQsQW8oZSwyKSk6MH0sQm4udGVtcGxhdGU9ZnVuY3Rpb24ga2goZSxuLGkpe3ZhciByPUJuLnRlbXBsYXRlU2V0dGluZ3M7aSYmSG8oZSxuLGkpJiYobj10KSxlPVdzKGUpLG49WHMoe30sbixyLHlvKTt2YXIgbyxhLHM9WHMoe30sbi5pbXBvcnRzLHIuaW1wb3J0cyx5byksbD1ybChzKSxjPWplKHMsbCksdT0wLGg9bi5pbnRlcnBvbGF0ZXx8bXQsZD0iX19wICs9ICciLHA9RXQoKG4uZXNjYXBlfHxtdCkuc291cmNlKyJ8IitoLnNvdXJjZSsifCIrKGg9PT1ZP3N0Om10KS5zb3VyY2UrInwiKyhuLmV2YWx1YXRlfHxtdCkuc291cmNlKyJ8JCIsImciKSxmPSIvLyMgc291cmNlVVJMPSIrKE50LmNhbGwobiwic291cmNlVVJMIik/KG4uc291cmNlVVJMKyIiKS5yZXBsYWNlKC9ccy9nLCIgIik6ImxvZGFzaC50ZW1wbGF0ZVNvdXJjZXNbIisgKytZdCsiXSIpKyJcbiI7ZS5yZXBsYWNlKHAsKGZ1bmN0aW9uKHQsbixpLHIscyxsKXtyZXR1cm4gaXx8KGk9ciksZCs9ZS5zbGljZSh1LGwpLnJlcGxhY2UoZ3QsS2UpLG4mJihvPSEwLGQrPSInICtcbl9fZSgiK24rIikgK1xuJyIpLHMmJihhPSEwLGQrPSInO1xuIitzKyI7XG5fX3AgKz0gJyIpLGkmJihkKz0iJyArXG4oKF9fdCA9ICgiK2krIikpID09IG51bGwgPyAnJyA6IF9fdCkgK1xuJyIpLHU9bCt0Lmxlbmd0aCx0fSkpLGQrPSInO1xuIjt2YXIgbT1OdC5jYWxsKG4sInZhcmlhYmxlIikmJm4udmFyaWFibGU7aWYobSl7aWYob3QudGVzdChtKSl0aHJvdyBuZXcgeHQoIkludmFsaWQgYHZhcmlhYmxlYCBvcHRpb24gcGFzc2VkIGludG8gYF8udGVtcGxhdGVgIil9ZWxzZSBkPSJ3aXRoIChvYmopIHtcbiIrZCsiXG59XG4iO2Q9KGE/ZC5yZXBsYWNlKEIsIiIpOmQpLnJlcGxhY2UoSCwiJDEiKS5yZXBsYWNlKEYsIiQxOyIpLGQ9ImZ1bmN0aW9uKCIrKG18fCJvYmoiKSsiKSB7XG4iKyhtPyIiOiJvYmogfHwgKG9iaiA9IHt9KTtcbiIpKyJ2YXIgX190LCBfX3AgPSAnJyIrKG8/IiwgX19lID0gXy5lc2NhcGUiOiIiKSsoYT8iLCBfX2ogPSBBcnJheS5wcm90b3R5cGUuam9pbjtcbmZ1bmN0aW9uIHByaW50KCkgeyBfX3AgKz0gX19qLmNhbGwoYXJndW1lbnRzLCAnJykgfVxuIjoiO1xuIikrZCsicmV0dXJuIF9fcFxufSI7dmFyIGc9RWwoKGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGwsZisicmV0dXJuICIrZCkuYXBwbHkodCxjKX0pKTtpZihnLnNvdXJjZT1kLHZzKGcpKXRocm93IGc7cmV0dXJuIGd9LEJuLnRpbWVzPWZ1bmN0aW9uIExoKHQsZSl7aWYoKHQ9VnModCkpPDF8fHQ+cylyZXR1cm5bXTt2YXIgbj1jLGk9X24odCxjKTtlPUFvKGUpLHQtPWM7Zm9yKHZhciByPUZlKGksZSk7KytuPHQ7KWUobik7cmV0dXJuIHJ9LEJuLnRvRmluaXRlPUZzLEJuLnRvSW50ZWdlcj1WcyxCbi50b0xlbmd0aD1VcyxCbi50b0xvd2VyPWZ1bmN0aW9uIFBoKHQpe3JldHVybiBXcyh0KS50b0xvd2VyQ2FzZSgpfSxCbi50b051bWJlcj1qcyxCbi50b1NhZmVJbnRlZ2VyPWZ1bmN0aW9uIE5oKHQpe3JldHVybiB0P29pKFZzKHQpLC05MDA3MTk5MjU0NzQwOTkxLHMpOjA9PT10P3Q6MH0sQm4udG9TdHJpbmc9V3MsQm4udG9VcHBlcj1mdW5jdGlvbiBJaCh0KXtyZXR1cm4gV3ModCkudG9VcHBlckNhc2UoKX0sQm4udHJpbT1mdW5jdGlvbiBSaChlLG4saSl7aWYoKGU9V3MoZSkpJiYoaXx8bj09PXQpKXJldHVybiBWZShlKTtpZighZXx8IShuPUFyKG4pKSlyZXR1cm4gZTt2YXIgcj1vbihlKSxvPW9uKG4pO3JldHVybiBGcihyLFdlKHIsbykscWUocixvKSsxKS5qb2luKCIiKX0sQm4udHJpbUVuZD1mdW5jdGlvbiBPaChlLG4saSl7aWYoKGU9V3MoZSkpJiYoaXx8bj09PXQpKXJldHVybiBlLnNsaWNlKDAsYW4oZSkrMSk7aWYoIWV8fCEobj1BcihuKSkpcmV0dXJuIGU7dmFyIHI9b24oZSk7cmV0dXJuIEZyKHIsMCxxZShyLG9uKG4pKSsxKS5qb2luKCIiKX0sQm4udHJpbVN0YXJ0PWZ1bmN0aW9uIHpoKGUsbixpKXtpZigoZT1XcyhlKSkmJihpfHxuPT09dCkpcmV0dXJuIGUucmVwbGFjZShRLCIiKTtpZighZXx8IShuPUFyKG4pKSlyZXR1cm4gZTt2YXIgcj1vbihlKTtyZXR1cm4gRnIocixXZShyLG9uKG4pKSkuam9pbigiIil9LEJuLnRydW5jYXRlPWZ1bmN0aW9uIERoKGUsbil7dmFyIGk9MzAscj0iLi4uIjtpZihTcyhuKSl7dmFyIG89InNlcGFyYXRvciJpbiBuP24uc2VwYXJhdG9yOm87aT0ibGVuZ3RoImluIG4/VnMobi5sZW5ndGgpOmkscj0ib21pc3Npb24iaW4gbj9BcihuLm9taXNzaW9uKTpyfXZhciBhPShlPVdzKGUpKS5sZW5ndGg7aWYoWmUoZSkpe3ZhciBzPW9uKGUpO2E9cy5sZW5ndGh9aWYoaT49YSlyZXR1cm4gZTt2YXIgbD1pLXJuKHIpO2lmKGw8MSlyZXR1cm4gcjt2YXIgYz1zP0ZyKHMsMCxsKS5qb2luKCIiKTplLnNsaWNlKDAsbCk7aWYobz09PXQpcmV0dXJuIGMrcjtpZihzJiYobCs9Yy5sZW5ndGgtbCksa3Mobykpe2lmKGUuc2xpY2UobCkuc2VhcmNoKG8pKXt2YXIgdSxoPWM7Zm9yKG8uZ2xvYmFsfHwobz1FdChvLnNvdXJjZSxXcyhsdC5leGVjKG8pKSsiZyIpKSxvLmxhc3RJbmRleD0wO3U9by5leGVjKGgpOyl2YXIgZD11LmluZGV4O2M9Yy5zbGljZSgwLGQ9PT10P2w6ZCl9fWVsc2UgaWYoZS5pbmRleE9mKEFyKG8pLGwpIT1sKXt2YXIgcD1jLmxhc3RJbmRleE9mKG8pO3A+LTEmJihjPWMuc2xpY2UoMCxwKSl9cmV0dXJuIGMrcn0sQm4udW5lc2NhcGU9ZnVuY3Rpb24gQmgodCl7cmV0dXJuKHQ9V3ModCkpJiZqLnRlc3QodCk/dC5yZXBsYWNlKFYsc24pOnR9LEJuLnVuaXF1ZUlkPWZ1bmN0aW9uIEhoKHQpe3ZhciBlPSsrSXQ7cmV0dXJuIFdzKHQpK2V9LEJuLnVwcGVyQ2FzZT13bCxCbi51cHBlckZpcnN0PVNsLEJuLmVhY2g9SGEsQm4uZWFjaFJpZ2h0PUZhLEJuLmZpcnN0PXBhLFJsKEJuLChHbD17fSxGaShCbiwoZnVuY3Rpb24odCxlKXtOdC5jYWxsKEJuLnByb3RvdHlwZSxlKXx8KEdsW2VdPXQpfSkpLEdsKSx7Y2hhaW46ITF9KSxCbi5WRVJTSU9OPSI0LjE3LjIxIixtZShbImJpbmQiLCJiaW5kS2V5IiwiY3VycnkiLCJjdXJyeVJpZ2h0IiwicGFydGlhbCIsInBhcnRpYWxSaWdodCJdLChmdW5jdGlvbih0KXtCblt0XS5wbGFjZWhvbGRlcj1Cbn0pKSxtZShbImRyb3AiLCJ0YWtlIl0sKGZ1bmN0aW9uKGUsbil7VW4ucHJvdG90eXBlW2VdPWZ1bmN0aW9uKGkpe2k9aT09PXQ/MTpnbihWcyhpKSwwKTt2YXIgcj10aGlzLl9fZmlsdGVyZWRfXyYmIW4/bmV3IFVuKHRoaXMpOnRoaXMuY2xvbmUoKTtyZXR1cm4gci5fX2ZpbHRlcmVkX18/ci5fX3Rha2VDb3VudF9fPV9uKGksci5fX3Rha2VDb3VudF9fKTpyLl9fdmlld3NfXy5wdXNoKHtzaXplOl9uKGksYyksdHlwZTplKyhyLl9fZGlyX188MD8iUmlnaHQiOiIiKX0pLHJ9LFVuLnByb3RvdHlwZVtlKyJSaWdodCJdPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJldmVyc2UoKVtlXSh0KS5yZXZlcnNlKCl9fSkpLG1lKFsiZmlsdGVyIiwibWFwIiwidGFrZVdoaWxlIl0sKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZSsxLGk9MT09bnx8Mz09bjtVbi5wcm90b3R5cGVbdF09ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jbG9uZSgpO3JldHVybiBlLl9faXRlcmF0ZWVzX18ucHVzaCh7aXRlcmF0ZWU6QW8odCwzKSx0eXBlOm59KSxlLl9fZmlsdGVyZWRfXz1lLl9fZmlsdGVyZWRfX3x8aSxlfX0pKSxtZShbImhlYWQiLCJsYXN0Il0sKGZ1bmN0aW9uKHQsZSl7dmFyIG49InRha2UiKyhlPyJSaWdodCI6IiIpO1VuLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3JldHVybiB0aGlzW25dKDEpLnZhbHVlKClbMF19fSkpLG1lKFsiaW5pdGlhbCIsInRhaWwiXSwoZnVuY3Rpb24odCxlKXt2YXIgbj0iZHJvcCIrKGU/IiI6IlJpZ2h0Iik7VW4ucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19maWx0ZXJlZF9fP25ldyBVbih0aGlzKTp0aGlzW25dKDEpfX0pKSxVbi5wcm90b3R5cGUuY29tcGFjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcihMbCl9LFVuLnByb3RvdHlwZS5maW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZpbHRlcih0KS5oZWFkKCl9LFVuLnByb3RvdHlwZS5maW5kTGFzdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZXZlcnNlKCkuZmluZCh0KX0sVW4ucHJvdG90eXBlLmludm9rZU1hcD1tcigoZnVuY3Rpb24odCxlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD9uZXcgVW4odGhpcyk6dGhpcy5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBLaShuLHQsZSl9KSl9KSksVW4ucHJvdG90eXBlLnJlamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5maWx0ZXIobnMoQW8odCkpKX0sVW4ucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKGUsbil7ZT1WcyhlKTt2YXIgaT10aGlzO3JldHVybiBpLl9fZmlsdGVyZWRfXyYmKGU+MHx8bjwwKT9uZXcgVW4oaSk6KGU8MD9pPWkudGFrZVJpZ2h0KC1lKTplJiYoaT1pLmRyb3AoZSkpLG4hPT10JiYoaT0obj1WcyhuKSk8MD9pLmRyb3BSaWdodCgtbik6aS50YWtlKG4tZSkpLGkpfSxVbi5wcm90b3R5cGUudGFrZVJpZ2h0V2hpbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmV2ZXJzZSgpLnRha2VXaGlsZSh0KS5yZXZlcnNlKCl9LFVuLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFrZShjKX0sRmkoVW4ucHJvdG90eXBlLChmdW5jdGlvbihlLG4pe3ZhciBpPS9eKD86ZmlsdGVyfGZpbmR8bWFwfHJlamVjdCl8V2hpbGUkLy50ZXN0KG4pLHI9L14oPzpoZWFkfGxhc3QpJC8udGVzdChuKSxvPUJuW3I/InRha2UiKygibGFzdCI9PW4/IlJpZ2h0IjoiIik6bl0sYT1yfHwvXmZpbmQvLnRlc3Qobik7byYmKEJuLnByb3RvdHlwZVtuXT1mdW5jdGlvbigpe3ZhciBuPXRoaXMuX193cmFwcGVkX18scz1yP1sxXTphcmd1bWVudHMsbD1uIGluc3RhbmNlb2YgVW4sYz1zWzBdLHU9bHx8aHMobiksaD1mdW5jdGlvbih0KXt2YXIgZT1vLmFwcGx5KEJuLEVlKFt0XSxzKSk7cmV0dXJuIHImJmQ/ZVswXTplfTt1JiZpJiYiZnVuY3Rpb24iPT10eXBlb2YgYyYmMSE9Yy5sZW5ndGgmJihsPXU9ITEpO3ZhciBkPXRoaXMuX19jaGFpbl9fLHA9ISF0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCxmPWEmJiFkLG09bCYmIXA7aWYoIWEmJnUpe249bT9uOm5ldyBVbih0aGlzKTt2YXIgZz1lLmFwcGx5KG4scyk7cmV0dXJuIGcuX19hY3Rpb25zX18ucHVzaCh7ZnVuYzpSYSxhcmdzOltoXSx0aGlzQXJnOnR9KSxuZXcgVm4oZyxkKX1yZXR1cm4gZiYmbT9lLmFwcGx5KHRoaXMscyk6KGc9dGhpcy50aHJ1KGgpLGY/cj9nLnZhbHVlKClbMF06Zy52YWx1ZSgpOmcpfSl9KSksbWUoWyJwb3AiLCJwdXNoIiwic2hpZnQiLCJzb3J0Iiwic3BsaWNlIiwidW5zaGlmdCJdLChmdW5jdGlvbih0KXt2YXIgZT1BdFt0XSxuPS9eKD86cHVzaHxzb3J0fHVuc2hpZnQpJC8udGVzdCh0KT8idGFwIjoidGhydSIsaT0vXig/OnBvcHxzaGlmdCkkLy50ZXN0KHQpO0JuLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cztpZihpJiYhdGhpcy5fX2NoYWluX18pe3ZhciByPXRoaXMudmFsdWUoKTtyZXR1cm4gZS5hcHBseShocyhyKT9yOltdLHQpfXJldHVybiB0aGlzW25dKChmdW5jdGlvbihuKXtyZXR1cm4gZS5hcHBseShocyhuKT9uOltdLHQpfSkpfX0pKSxGaShVbi5wcm90b3R5cGUsKGZ1bmN0aW9uKHQsZSl7dmFyIG49Qm5bZV07aWYobil7dmFyIGk9bi5uYW1lKyIiO050LmNhbGwoa24saSl8fChrbltpXT1bXSksa25baV0ucHVzaCh7bmFtZTplLGZ1bmM6bn0pfX0pKSxrbltvbyh0LDIpLm5hbWVdPVt7bmFtZToid3JhcHBlciIsZnVuYzp0fV0sVW4ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uIEZoKCl7dmFyIHQ9bmV3IFVuKHRoaXMuX193cmFwcGVkX18pO3JldHVybiB0Ll9fYWN0aW9uc19fPVhyKHRoaXMuX19hY3Rpb25zX18pLHQuX19kaXJfXz10aGlzLl9fZGlyX18sdC5fX2ZpbHRlcmVkX189dGhpcy5fX2ZpbHRlcmVkX18sdC5fX2l0ZXJhdGVlc19fPVhyKHRoaXMuX19pdGVyYXRlZXNfXyksdC5fX3Rha2VDb3VudF9fPXRoaXMuX190YWtlQ291bnRfXyx0Ll9fdmlld3NfXz1Ycih0aGlzLl9fdmlld3NfXyksdH0sVW4ucHJvdG90eXBlLnJldmVyc2U9ZnVuY3Rpb24gVmgoKXtpZih0aGlzLl9fZmlsdGVyZWRfXyl7dmFyIHQ9bmV3IFVuKHRoaXMpO3QuX19kaXJfXz0tMSx0Ll9fZmlsdGVyZWRfXz0hMH1lbHNlKHQ9dGhpcy5jbG9uZSgpKS5fX2Rpcl9fKj0tMTtyZXR1cm4gdH0sVW4ucHJvdG90eXBlLnZhbHVlPWZ1bmN0aW9uIFVoKCl7dmFyIHQ9dGhpcy5fX3dyYXBwZWRfXy52YWx1ZSgpLGU9dGhpcy5fX2Rpcl9fLG49aHModCksaT1lPDAscj1uP3QubGVuZ3RoOjAsbz0oZnVuY3Rpb24gYSh0LGUsbil7Zm9yKHZhciBpPS0xLHI9bi5sZW5ndGg7KytpPHI7KXt2YXIgbz1uW2ldLGE9by5zaXplO3N3aXRjaChvLnR5cGUpe2Nhc2UiZHJvcCI6dCs9YTticmVhaztjYXNlImRyb3BSaWdodCI6ZS09YTticmVhaztjYXNlInRha2UiOmU9X24oZSx0K2EpO2JyZWFrO2Nhc2UidGFrZVJpZ2h0Ijp0PWduKHQsZS1hKX19cmV0dXJue3N0YXJ0OnQsZW5kOmV9fSkoMCxyLHRoaXMuX192aWV3c19fKSxzPW8uc3RhcnQsbD1vLmVuZCxjPWwtcyx1PWk/bDpzLTEsaD10aGlzLl9faXRlcmF0ZWVzX18sZD1oLmxlbmd0aCxwPTAsZj1fbihjLHRoaXMuX190YWtlQ291bnRfXyk7aWYoIW58fCFpJiZyPT1jJiZmPT1jKXJldHVybiBJcih0LHRoaXMuX19hY3Rpb25zX18pO3ZhciBtPVtdO3Q6Zm9yKDtjLS0mJnA8Zjspe2Zvcih2YXIgZz0tMSxfPXRbdSs9ZV07KytnPGQ7KXt2YXIgeT1oW2ddLHY9eS50eXBlLGI9KDAseS5pdGVyYXRlZSkoXyk7aWYoMj09dilfPWI7ZWxzZSBpZighYil7aWYoMT09diljb250aW51ZSB0O2JyZWFrIHR9fW1bcCsrXT1ffXJldHVybiBtfSxCbi5wcm90b3R5cGUuYXQ9T2EsQm4ucHJvdG90eXBlLmNoYWluPWZ1bmN0aW9uIGpoKCl7cmV0dXJuIElhKHRoaXMpfSxCbi5wcm90b3R5cGUuY29tbWl0PWZ1bmN0aW9uIEdoKCl7cmV0dXJuIG5ldyBWbih0aGlzLnZhbHVlKCksdGhpcy5fX2NoYWluX18pfSxCbi5wcm90b3R5cGUubmV4dD1mdW5jdGlvbiBXaCgpe3RoaXMuX192YWx1ZXNfXz09PXQmJih0aGlzLl9fdmFsdWVzX189SHModGhpcy52YWx1ZSgpKSk7dmFyIGU9dGhpcy5fX2luZGV4X18+PXRoaXMuX192YWx1ZXNfXy5sZW5ndGg7cmV0dXJue2RvbmU6ZSx2YWx1ZTplP3Q6dGhpcy5fX3ZhbHVlc19fW3RoaXMuX19pbmRleF9fKytdfX0sQm4ucHJvdG90eXBlLnBsYW50PWZ1bmN0aW9uIHFoKGUpe2Zvcih2YXIgbixpPXRoaXM7aSBpbnN0YW5jZW9mIEZuOyl7dmFyIHI9YWEoaSk7ci5fX2luZGV4X189MCxyLl9fdmFsdWVzX189dCxuP28uX193cmFwcGVkX189cjpuPXI7dmFyIG89cjtpPWkuX193cmFwcGVkX199cmV0dXJuIG8uX193cmFwcGVkX189ZSxufSxCbi5wcm90b3R5cGUucmV2ZXJzZT1mdW5jdGlvbiBZaCgpe3ZhciBlPXRoaXMuX193cmFwcGVkX187aWYoZSBpbnN0YW5jZW9mIFVuKXt2YXIgbj1lO3JldHVybiB0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCYmKG49bmV3IFVuKHRoaXMpKSwobj1uLnJldmVyc2UoKSkuX19hY3Rpb25zX18ucHVzaCh7ZnVuYzpSYSxhcmdzOlt4YV0sdGhpc0FyZzp0fSksbmV3IFZuKG4sdGhpcy5fX2NoYWluX18pfXJldHVybiB0aGlzLnRocnUoeGEpfSxCbi5wcm90b3R5cGUudG9KU09OPUJuLnByb3RvdHlwZS52YWx1ZU9mPUJuLnByb3RvdHlwZS52YWx1ZT1mdW5jdGlvbiBYaCgpe3JldHVybiBJcih0aGlzLl9fd3JhcHBlZF9fLHRoaXMuX19hY3Rpb25zX18pfSxCbi5wcm90b3R5cGUuZmlyc3Q9Qm4ucHJvdG90eXBlLmhlYWQsYWUmJihCbi5wcm90b3R5cGVbYWVdPWZ1bmN0aW9uICRoKCl7cmV0dXJuIHRoaXN9KSxCbn0pKCk7aWU/KChpZS5leHBvcnRzPWxuKS5fPWxuLG5lLl89bG4pOmVlLl89bG59LmNhbGwodmUpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBNZT0hKHdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmluVXNlKTtsZXQgRWUsVGU7ZnVuY3Rpb24gQ2UodCl7RWU9KCF0fHwhdC5zaGltY3NzcHJvcGVydGllcykmJihNZXx8Qm9vbGVhbighbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvQXBwbGVXZWJLaXRcLzYwMXxFZGdlXC8xNS8pJiZ3aW5kb3cuQ1NTJiZDU1Muc3VwcG9ydHMmJkNTUy5zdXBwb3J0cygiYm94LXNoYWRvdyIsIjAgMCAwIHZhcigtLWZvbykiKSkpfXdpbmRvdy5TaGFkeUNTUyYmdm9pZCAwIT09d2luZG93LlNoYWR5Q1NTLmNzc0J1aWxkJiYoVGU9d2luZG93LlNoYWR5Q1NTLmNzc0J1aWxkKTtjb25zdCBBZT1Cb29sZWFuKHdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLmRpc2FibGVSdW50aW1lKTt3aW5kb3cuU2hhZHlDU1MmJnZvaWQgMCE9PXdpbmRvdy5TaGFkeUNTUy5uYXRpdmVDc3M/RWU9d2luZG93LlNoYWR5Q1NTLm5hdGl2ZUNzczp3aW5kb3cuU2hhZHlDU1M/KENlKHdpbmRvdy5TaGFkeUNTUyksd2luZG93LlNoYWR5Q1NTPXZvaWQgMCk6Q2Uod2luZG93LldlYkNvbXBvbmVudHMmJndpbmRvdy5XZWJDb21wb25lbnRzLmZsYWdzKTtjb25zdCBrZT1FZTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jbGFzcyBMZXtjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhcnQ9MCx0aGlzLmVuZD0wLHRoaXMucHJldmlvdXM9bnVsbCx0aGlzLnBhcmVudD1udWxsLHRoaXMucnVsZXM9bnVsbCx0aGlzLnBhcnNlZENzc1RleHQ9IiIsdGhpcy5jc3NUZXh0PSIiLHRoaXMuYXRSdWxlPSExLHRoaXMudHlwZT0wLHRoaXMua2V5ZnJhbWVzTmFtZT0iIix0aGlzLnNlbGVjdG9yPSIiLHRoaXMucGFyc2VkU2VsZWN0b3I9IiJ9fWZ1bmN0aW9uIFBlKHQpe3JldHVybiBOZSgoZnVuY3Rpb24gbih0KXtsZXQgZT1uZXcgTGU7ZS5zdGFydD0wLGUuZW5kPXQubGVuZ3RoO2xldCBuPWU7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKWlmKHRbaV09PT1PZSl7bi5ydWxlc3x8KG4ucnVsZXM9W10pO2xldCB0PW4sZT10LnJ1bGVzW3QucnVsZXMubGVuZ3RoLTFdfHxudWxsO249bmV3IExlLG4uc3RhcnQ9aSsxLG4ucGFyZW50PXQsbi5wcmV2aW91cz1lLHQucnVsZXMucHVzaChuKX1lbHNlIHRbaV09PT16ZSYmKG4uZW5kPWkrMSxuPW4ucGFyZW50fHxlKTtyZXR1cm4gZX0pKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIHQucmVwbGFjZShEZS5jb21tZW50cywiIikucmVwbGFjZShEZS5wb3J0LCIiKX0pKHQpKSx0KX1mdW5jdGlvbiBOZSh0LGUpe2xldCBuPWUuc3Vic3RyaW5nKHQuc3RhcnQsdC5lbmQtMSk7aWYodC5wYXJzZWRDc3NUZXh0PXQuY3NzVGV4dD1uLnRyaW0oKSx0LnBhcmVudCl7bj1lLnN1YnN0cmluZyh0LnByZXZpb3VzP3QucHJldmlvdXMuZW5kOnQucGFyZW50LnN0YXJ0LHQuc3RhcnQtMSksbj0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9cXChbMC05YS1mXXsxLDZ9KVxzL2dpLChmdW5jdGlvbigpe2xldCB0PWFyZ3VtZW50c1sxXSxlPTYtdC5sZW5ndGg7Zm9yKDtlLS07KXQ9IjAiK3Q7cmV0dXJuIlxcIit0fSkpfSkobiksbj1uLnJlcGxhY2UoRGUubXVsdGlwbGVTcGFjZXMsIiAiKSxuPW4uc3Vic3RyaW5nKG4ubGFzdEluZGV4T2YoIjsiKSsxKTtsZXQgaT10LnBhcnNlZFNlbGVjdG9yPXQuc2VsZWN0b3I9bi50cmltKCk7dC5hdFJ1bGU9MD09PWkuaW5kZXhPZihGZSksdC5hdFJ1bGU/MD09PWkuaW5kZXhPZihIZSk/dC50eXBlPVJlLk1FRElBX1JVTEU6aS5tYXRjaChEZS5rZXlmcmFtZXNSdWxlKSYmKHQudHlwZT1SZS5LRVlGUkFNRVNfUlVMRSx0LmtleWZyYW1lc05hbWU9dC5zZWxlY3Rvci5zcGxpdChEZS5tdWx0aXBsZVNwYWNlcykucG9wKCkpOnQudHlwZT0wPT09aS5pbmRleE9mKEJlKT9SZS5NSVhJTl9SVUxFOlJlLlNUWUxFX1JVTEV9bGV0IHI9dC5ydWxlcztpZihyKWZvcihsZXQgdCxuPTAsaT1yLmxlbmd0aDtuPGkmJih0PXJbbl0pO24rKylOZSh0LGUpO3JldHVybiB0fWZ1bmN0aW9uIEllKHQsZSxuPSIiKXtsZXQgaT0iIjtpZih0LmNzc1RleHR8fHQucnVsZXMpe2xldCBuPXQucnVsZXM7aWYobiYmIShmdW5jdGlvbiByKHQpe2xldCBlPXRbMF07cmV0dXJuIEJvb2xlYW4oZSkmJkJvb2xlYW4oZS5zZWxlY3RvcikmJjA9PT1lLnNlbGVjdG9yLmluZGV4T2YoQmUpfSkobikpZm9yKGxldCB0LHI9MCxvPW4ubGVuZ3RoO3I8byYmKHQ9bltyXSk7cisrKWk9SWUodCxlLGkpO2Vsc2UgaT1lP3QuY3NzVGV4dDooZnVuY3Rpb24gbyh0KXtyZXR1cm4oZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5yZXBsYWNlKERlLm1peGluQXBwbHksIiIpLnJlcGxhY2UoRGUudmFyQXBwbHksIiIpfSkodD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdC5yZXBsYWNlKERlLmN1c3RvbVByb3AsIiIpLnJlcGxhY2UoRGUubWl4aW5Qcm9wLCIiKX0pKHQpKX0pKHQuY3NzVGV4dCksaT1pLnRyaW0oKSxpJiYoaT0iICAiK2krIlxuIil9cmV0dXJuIGkmJih0LnNlbGVjdG9yJiYobis9dC5zZWxlY3RvcisiICIrT2UrIlxuIiksbis9aSx0LnNlbGVjdG9yJiYobis9emUrIlxuXG4iKSksbn1jb25zdCBSZT17U1RZTEVfUlVMRToxLEtFWUZSQU1FU19SVUxFOjcsTUVESUFfUlVMRTo0LE1JWElOX1JVTEU6MWUzfSxPZT0ieyIsemU9In0iLERlPXtjb21tZW50czovXC9cKlteKl0qXCorKFteLypdW14qXSpcKispKlwvL2dpbSxwb3J0Oi9AaW1wb3J0W147XSo7L2dpbSxjdXN0b21Qcm9wOi8oPzpeW147XC1cc31dKyk/LS1bXjt7fV0qPzpbXnt9O10qPyg/Ols7XG5dfCQpL2dpbSxtaXhpblByb3A6Lyg/Ol5bXjtcLVxzfV0rKT8tLVteO3t9XSo/Oltee307XSo/e1tefV0qP30oPzpbO1xuXXwkKT8vZ2ltLG1peGluQXBwbHk6L0BhcHBseVxzKlwoP1teKTtdKlwpP1xzKig/Ols7XG5dfCQpPy9naW0sdmFyQXBwbHk6L1teOzpdKj86W147XSo/dmFyXChbXjtdKlwpKD86Wztcbl18JCk/L2dpbSxrZXlmcmFtZXNSdWxlOi9eQFteXHNdKmtleWZyYW1lcy8sbXVsdGlwbGVTcGFjZXM6L1xzKy9nfSxCZT0iLS0iLEhlPSJAbWVkaWEiLEZlPSJAIixWZT0vKD86XnxbO1xze11ccyopKC0tW1x3LV0qPylccyo6XHMqKD86KCg/OicoPzpcXCd8LikqPyd8Iig/OlxcInwuKSo/InxcKFteKV0qP1wpfFtefTt7XSkrKXxceyhbXn1dKilcfSg/Oig/PVs7XHN9XSl8JCkpL2dpLFVlPS8oPzpefFxXKylAYXBwbHlccypcKD8oW14pO1xuXSopXCk/L2dpLGplPS9AbWVkaWFccyguKikvLEdlPW5ldyBTZXQ7ZnVuY3Rpb24gV2UodCl7Y29uc3QgZT10LnRleHRDb250ZW50O2lmKCFHZS5oYXMoZSkpe0dlLmFkZChlKTtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7dC5zZXRBdHRyaWJ1dGUoInNoYWR5LXVuc2NvcGVkIiwiIiksdC50ZXh0Q29udGVudD1lLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCl9fWZ1bmN0aW9uIHFlKHQpe3JldHVybiB0Lmhhc0F0dHJpYnV0ZSgic2hhZHktdW5zY29wZWQiKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9mdW5jdGlvbiBZZSh0LGUpe3JldHVybiB0Pygic3RyaW5nIj09dHlwZW9mIHQmJih0PVBlKHQpKSxlJiYkZSh0LGUpLEllKHQsa2UpKToiIn1mdW5jdGlvbiBYZSh0KXtyZXR1cm4hdC5fX2Nzc1J1bGVzJiZ0LnRleHRDb250ZW50JiYodC5fX2Nzc1J1bGVzPVBlKHQudGV4dENvbnRlbnQpKSx0Ll9fY3NzUnVsZXN8fG51bGx9ZnVuY3Rpb24gJGUodCxlLG4saSl7aWYoIXQpcmV0dXJuO2xldCByPSExLG89dC50eXBlO2lmKGkmJm89PT1SZS5NRURJQV9SVUxFKXtsZXQgZT10LnNlbGVjdG9yLm1hdGNoKGplKTtlJiYod2luZG93Lm1hdGNoTWVkaWEoZVsxXSkubWF0Y2hlc3x8KHI9ITApKX1vPT09UmUuU1RZTEVfUlVMRT9lKHQpOm4mJm89PT1SZS5LRVlGUkFNRVNfUlVMRT9uKHQpOm89PT1SZS5NSVhJTl9SVUxFJiYocj0hMCk7bGV0IGE9dC5ydWxlcztpZihhJiYhcilmb3IobGV0IHQscj0wLG89YS5sZW5ndGg7cjxvJiYodD1hW3JdKTtyKyspJGUodCxlLG4saSl9ZnVuY3Rpb24gS2UodCxlKXtsZXQgbj10LmluZGV4T2YoInZhcigiKTtpZigtMT09PW4pcmV0dXJuIGUodCwiIiwiIiwiIik7bGV0IGk9KGZ1bmN0aW9uIHIodCxlKXtsZXQgbj0wO2ZvcihsZXQgaT1lLHI9dC5sZW5ndGg7aTxyO2krKylpZigiKCI9PT10W2ldKW4rKztlbHNlIGlmKCIpIj09PXRbaV0mJjA9PS0tbilyZXR1cm4gaTtyZXR1cm4tMX0pKHQsbiszKSxvPXQuc3Vic3RyaW5nKG4rNCxpKSxhPXQuc3Vic3RyaW5nKDAsbikscz1LZSh0LnN1YnN0cmluZyhpKzEpLGUpLGw9by5pbmRleE9mKCIsIik7cmV0dXJuLTE9PT1sP2UoYSxvLnRyaW0oKSwiIixzKTplKGEsby5zdWJzdHJpbmcoMCxsKS50cmltKCksby5zdWJzdHJpbmcobCsxKS50cmltKCkscyl9d2luZG93LlNoYWR5RE9NJiZ3aW5kb3c7Y29uc3QgWmU9ImNzcy1idWlsZCI7ZnVuY3Rpb24gSmUodCl7cmV0dXJuIiIhPT0oZnVuY3Rpb24gZSh0KXtpZih2b2lkIDAhPT1UZSlyZXR1cm4gVGU7aWYodm9pZCAwPT09dC5fX2Nzc0J1aWxkKXtjb25zdCBlPXQuZ2V0QXR0cmlidXRlKFplKTtpZihlKXQuX19jc3NCdWlsZD1lO2Vsc2V7Y29uc3QgZT0oZnVuY3Rpb24gZSh0KXtjb25zdCBlPSJ0ZW1wbGF0ZSI9PT10LmxvY2FsTmFtZT90LmNvbnRlbnQuZmlyc3RDaGlsZDp0LmZpcnN0Q2hpbGQ7aWYoZSBpbnN0YW5jZW9mIENvbW1lbnQpe2NvbnN0IHQ9ZS50ZXh0Q29udGVudC50cmltKCkuc3BsaXQoIjoiKTtpZih0WzBdPT09WmUpcmV0dXJuIHRbMV19cmV0dXJuIiJ9KSh0KTsiIiE9PWUmJihmdW5jdGlvbiBuKHQpe2NvbnN0IGU9InRlbXBsYXRlIj09PXQubG9jYWxOYW1lP3QuY29udGVudC5maXJzdENoaWxkOnQuZmlyc3RDaGlsZDtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovKSh0KSx0Ll9fY3NzQnVpbGQ9ZX19cmV0dXJuIHQuX19jc3NCdWlsZHx8IiJ9KSh0KX1mdW5jdGlvbiBRZSh0LGUpe2ZvcihsZXQgbiBpbiBlKW51bGw9PT1uP3Quc3R5bGUucmVtb3ZlUHJvcGVydHkobik6dC5zdHlsZS5zZXRQcm9wZXJ0eShuLGVbbl0pfWZ1bmN0aW9uIHRuKHQsZSl7Y29uc3Qgbj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5nZXRQcm9wZXJ0eVZhbHVlKGUpO3JldHVybiBuP24udHJpbSgpOiIifQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBlbj0vO1xzKi9tLG5uPS9eXHMqKGluaXRpYWwpfChpbmhlcml0KVxzKiQvLHJuPS9ccyohaW1wb3J0YW50LztjbGFzcyBvbntjb25zdHJ1Y3Rvcigpe3RoaXMuX21hcD17fX1zZXQodCxlKXt0PXQudHJpbSgpLHRoaXMuX21hcFt0XT17cHJvcGVydGllczplLGRlcGVuZGFudHM6e319fWdldCh0KXtyZXR1cm4gdD10LnRyaW0oKSx0aGlzLl9tYXBbdF18fG51bGx9fWxldCBhbj1udWxsO2NsYXNzIHNue2NvbnN0cnVjdG9yKCl7dGhpcy5fY3VycmVudEVsZW1lbnQ9bnVsbCx0aGlzLl9tZWFzdXJlRWxlbWVudD1udWxsLHRoaXMuX21hcD1uZXcgb259ZGV0ZWN0TWl4aW4odCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7Y29uc3QgZT1VZS50ZXN0KHQpfHxWZS50ZXN0KHQpO3JldHVybiBVZS5sYXN0SW5kZXg9MCxWZS5sYXN0SW5kZXg9MCxlfSkodCl9Z2F0aGVyU3R5bGVzKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7Y29uc3QgZT1bXSxuPXQucXVlcnlTZWxlY3RvckFsbCgic3R5bGUiKTtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyl7Y29uc3QgaT1uW3RdO3FlKGkpP01lfHwoV2UoaSksaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpKTooZS5wdXNoKGkudGV4dENvbnRlbnQpLGkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpKSl9cmV0dXJuIGUuam9pbigiIikudHJpbSgpfSkodC5jb250ZW50KTtpZihlKXtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7cmV0dXJuIG4udGV4dENvbnRlbnQ9ZSx0LmNvbnRlbnQuaW5zZXJ0QmVmb3JlKG4sdC5jb250ZW50LmZpcnN0Q2hpbGQpLG59cmV0dXJuIG51bGx9dHJhbnNmb3JtVGVtcGxhdGUodCxlKXt2b2lkIDA9PT10Ll9nYXRoZXJlZFN0eWxlJiYodC5fZ2F0aGVyZWRTdHlsZT10aGlzLmdhdGhlclN0eWxlcyh0KSk7Y29uc3Qgbj10Ll9nYXRoZXJlZFN0eWxlO3JldHVybiBuP3RoaXMudHJhbnNmb3JtU3R5bGUobixlKTpudWxsfXRyYW5zZm9ybVN0eWxlKHQsZT0iIil7bGV0IG49WGUodCk7cmV0dXJuIHRoaXMudHJhbnNmb3JtUnVsZXMobixlKSx0LnRleHRDb250ZW50PVllKG4pLG59dHJhbnNmb3JtQ3VzdG9tU3R5bGUodCl7bGV0IGU9WGUodCk7cmV0dXJuICRlKGUsKHQ9PnsiOnJvb3QiPT09dC5zZWxlY3RvciYmKHQuc2VsZWN0b3I9Imh0bWwiKSx0aGlzLnRyYW5zZm9ybVJ1bGUodCl9KSksdC50ZXh0Q29udGVudD1ZZShlKSxlfXRyYW5zZm9ybVJ1bGVzKHQsZSl7dGhpcy5fY3VycmVudEVsZW1lbnQ9ZSwkZSh0LCh0PT57dGhpcy50cmFuc2Zvcm1SdWxlKHQpfSkpLHRoaXMuX2N1cnJlbnRFbGVtZW50PW51bGx9dHJhbnNmb3JtUnVsZSh0KXt0LmNzc1RleHQ9dGhpcy50cmFuc2Zvcm1Dc3NUZXh0KHQucGFyc2VkQ3NzVGV4dCx0KSwiOnJvb3QiPT09dC5zZWxlY3RvciYmKHQuc2VsZWN0b3I9Ijpob3N0ID4gKiIpfXRyYW5zZm9ybUNzc1RleHQodCxlKXtyZXR1cm4gdD10LnJlcGxhY2UoVmUsKCh0LG4saSxyKT0+dGhpcy5fcHJvZHVjZUNzc1Byb3BlcnRpZXModCxuLGkscixlKSkpLHRoaXMuX2NvbnN1bWVDc3NQcm9wZXJ0aWVzKHQsZSl9X2dldEluaXRpYWxWYWx1ZUZvclByb3BlcnR5KHQpe3JldHVybiB0aGlzLl9tZWFzdXJlRWxlbWVudHx8KHRoaXMuX21lYXN1cmVFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKSx0aGlzLl9tZWFzdXJlRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFwcGx5LXNoaW0tbWVhc3VyZSIsIiIpLHRoaXMuX21lYXN1cmVFbGVtZW50LnN0eWxlLmFsbD0iaW5pdGlhbCIsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0aGlzLl9tZWFzdXJlRWxlbWVudCkpLHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuX21lYXN1cmVFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKHQpfV9mYWxsYmFja3NGcm9tUHJldmlvdXNSdWxlcyh0KXtsZXQgZT10O2Zvcig7ZS5wYXJlbnQ7KWU9ZS5wYXJlbnQ7Y29uc3Qgbj17fTtsZXQgaT0hMTtyZXR1cm4gJGUoZSwoZT0+e2k9aXx8ZT09PXQsaXx8ZS5zZWxlY3Rvcj09PXQuc2VsZWN0b3ImJk9iamVjdC5hc3NpZ24obix0aGlzLl9jc3NUZXh0VG9NYXAoZS5wYXJzZWRDc3NUZXh0KSl9KSksbn1fY29uc3VtZUNzc1Byb3BlcnRpZXModCxlKXtsZXQgbj1udWxsO2Zvcig7bj1VZS5leGVjKHQpOyl7bGV0IGk9blswXSxyPW5bMV0sbz1uLmluZGV4LGE9bytpLmluZGV4T2YoIkBhcHBseSIpLHM9bytpLmxlbmd0aCxsPXQuc2xpY2UoMCxhKSxjPXQuc2xpY2UocyksdT1lP3RoaXMuX2ZhbGxiYWNrc0Zyb21QcmV2aW91c1J1bGVzKGUpOnt9O09iamVjdC5hc3NpZ24odSx0aGlzLl9jc3NUZXh0VG9NYXAobCkpO2xldCBoPXRoaXMuX2F0QXBwbHlUb0Nzc1Byb3BlcnRpZXMocix1KTt0PWAke2x9JHtofSR7Y31gLFVlLmxhc3RJbmRleD1vK2gubGVuZ3RofXJldHVybiB0fV9hdEFwcGx5VG9Dc3NQcm9wZXJ0aWVzKHQsZSl7dD10LnJlcGxhY2UoZW4sIiIpO2xldCBuPVtdLGk9dGhpcy5fbWFwLmdldCh0KTtpZihpfHwodGhpcy5fbWFwLnNldCh0LHt9KSxpPXRoaXMuX21hcC5nZXQodCkpLGkpe2xldCByLG8sYTt0aGlzLl9jdXJyZW50RWxlbWVudCYmKGkuZGVwZW5kYW50c1t0aGlzLl9jdXJyZW50RWxlbWVudF09ITApO2NvbnN0IHM9aS5wcm9wZXJ0aWVzO2ZvcihyIGluIHMpYT1lJiZlW3JdLG89W3IsIjogdmFyKCIsdCwiXy1fIixyXSxhJiZvLnB1c2goIiwiLGEucmVwbGFjZShybiwiIikpLG8ucHVzaCgiKSIpLHJuLnRlc3Qoc1tyXSkmJm8ucHVzaCgiICFpbXBvcnRhbnQiKSxuLnB1c2goby5qb2luKCIiKSl9cmV0dXJuIG4uam9pbigiOyAiKX1fcmVwbGFjZUluaXRpYWxPckluaGVyaXQodCxlKXtsZXQgbj1ubi5leGVjKGUpO3JldHVybiBuJiYoZT1uWzFdP3RoaXMuX2dldEluaXRpYWxWYWx1ZUZvclByb3BlcnR5KHQpOiJhcHBseS1zaGltLWluaGVyaXQiKSxlfV9jc3NUZXh0VG9NYXAodCxlPSExKXtsZXQgbixpLHI9dC5zcGxpdCgiOyIpLG89e307Zm9yKGxldCB0LGEscz0wO3M8ci5sZW5ndGg7cysrKXQ9cltzXSx0JiYoYT10LnNwbGl0KCI6IiksYS5sZW5ndGg+MSYmKG49YVswXS50cmltKCksaT1hLnNsaWNlKDEpLmpvaW4oIjoiKSxlJiYoaT10aGlzLl9yZXBsYWNlSW5pdGlhbE9ySW5oZXJpdChuLGkpKSxvW25dPWkpKTtyZXR1cm4gb31faW52YWxpZGF0ZU1peGluRW50cnkodCl7aWYoYW4pZm9yKGxldCBlIGluIHQuZGVwZW5kYW50cyllIT09dGhpcy5fY3VycmVudEVsZW1lbnQmJmFuKGUpfV9wcm9kdWNlQ3NzUHJvcGVydGllcyh0LGUsbixpLHIpe2lmKG4mJktlKG4sKCh0LGUpPT57ZSYmdGhpcy5fbWFwLmdldChlKSYmKGk9YEBhcHBseSAke2V9O2ApfSkpLCFpKXJldHVybiB0O2xldCBvPXRoaXMuX2NvbnN1bWVDc3NQcm9wZXJ0aWVzKCIiK2ksciksYT10LnNsaWNlKDAsdC5pbmRleE9mKCItLSIpKSxzPXRoaXMuX2Nzc1RleHRUb01hcChvLCEwKSxsPXMsYz10aGlzLl9tYXAuZ2V0KGUpLHU9YyYmYy5wcm9wZXJ0aWVzO3U/bD1PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUodSkscyk6dGhpcy5fbWFwLnNldChlLGwpO2xldCBoLGQscD1bXSxmPSExO2ZvcihoIGluIGwpZD1zW2hdLHZvaWQgMD09PWQmJihkPSJpbml0aWFsIiksdSYmIShoIGluIHUpJiYoZj0hMCkscC5wdXNoKGAke2V9Xy1fJHtofTogJHtkfWApO3JldHVybiBmJiZ0aGlzLl9pbnZhbGlkYXRlTWl4aW5FbnRyeShjKSxjJiYoYy5wcm9wZXJ0aWVzPWwpLG4mJihhPWAke3R9OyR7YX1gKSxgJHthfSR7cC5qb2luKCI7ICIpfTtgfX1zbi5wcm90b3R5cGUuZGV0ZWN0TWl4aW49c24ucHJvdG90eXBlLmRldGVjdE1peGluLHNuLnByb3RvdHlwZS50cmFuc2Zvcm1TdHlsZT1zbi5wcm90b3R5cGUudHJhbnNmb3JtU3R5bGUsc24ucHJvdG90eXBlLnRyYW5zZm9ybUN1c3RvbVN0eWxlPXNuLnByb3RvdHlwZS50cmFuc2Zvcm1DdXN0b21TdHlsZSxzbi5wcm90b3R5cGUudHJhbnNmb3JtUnVsZXM9c24ucHJvdG90eXBlLnRyYW5zZm9ybVJ1bGVzLHNuLnByb3RvdHlwZS50cmFuc2Zvcm1SdWxlPXNuLnByb3RvdHlwZS50cmFuc2Zvcm1SdWxlLHNuLnByb3RvdHlwZS50cmFuc2Zvcm1UZW1wbGF0ZT1zbi5wcm90b3R5cGUudHJhbnNmb3JtVGVtcGxhdGUsc24ucHJvdG90eXBlLl9zZXBhcmF0b3I9Il8tXyIsT2JqZWN0LmRlZmluZVByb3BlcnR5KHNuLnByb3RvdHlwZSwiaW52YWxpZENhbGxiYWNrIix7Z2V0OigpPT5hbixzZXQodCl7YW49dH19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgbG49e30sY249Il9hcHBseVNoaW1DdXJyZW50VmVyc2lvbiIsdW49Il9hcHBseVNoaW1OZXh0VmVyc2lvbiIsaG49Il9hcHBseVNoaW1WYWxpZGF0aW5nVmVyc2lvbiIsZG49UHJvbWlzZS5yZXNvbHZlKCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovZnVuY3Rpb24gcG4odCl7bGV0IGU9bG5bdF07ZSYmKGZ1bmN0aW9uIG4odCl7dFtjbl09dFtjbl18fDAsdFtobl09dFtobl18fDAsdFt1bl09KHRbdW5dfHwwKSsxfSkoZSl9ZnVuY3Rpb24gZm4odCl7cmV0dXJuIHRbY25dPT09dFt1bl19Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmxldCBtbixnbj1udWxsLF9uPXdpbmRvdy5IVE1MSW1wb3J0cyYmd2luZG93LkhUTUxJbXBvcnRzLndoZW5SZWFkeXx8bnVsbDtmdW5jdGlvbiB5bih0KXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7X24/X24odCk6KGdufHwoZ249bmV3IFByb21pc2UoKHQ9Pnttbj10fSkpLCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP21uKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsKCgpPT57ImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGUmJm1uKCl9KSkpLGduLnRoZW4oKGZ1bmN0aW9uKCl7dCYmdCgpfSkpKX0pKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jb25zdCB2bj0iX19zZWVuQnlTaGFkeUNTUyIsYm49Il9fc2hhZHlDU1NDYWNoZWRTdHlsZSI7bGV0IHhuPW51bGwsd249bnVsbDtjbGFzcyBTbntjb25zdHJ1Y3Rvcigpe3RoaXMuY3VzdG9tU3R5bGVzPVtdLHRoaXMuZW5xdWV1ZWQ9ITEseW4oKCgpPT57d2luZG93LlNoYWR5Q1NTLmZsdXNoQ3VzdG9tU3R5bGVzJiZ3aW5kb3cuU2hhZHlDU1MuZmx1c2hDdXN0b21TdHlsZXMoKX0pKX1lbnF1ZXVlRG9jdW1lbnRWYWxpZGF0aW9uKCl7IXRoaXMuZW5xdWV1ZWQmJnduJiYodGhpcy5lbnF1ZXVlZD0hMCx5bih3bikpfWFkZEN1c3RvbVN0eWxlKHQpe3Rbdm5dfHwodFt2bl09ITAsdGhpcy5jdXN0b21TdHlsZXMucHVzaCh0KSx0aGlzLmVucXVldWVEb2N1bWVudFZhbGlkYXRpb24oKSl9Z2V0U3R5bGVGb3JDdXN0b21TdHlsZSh0KXtpZih0W2JuXSlyZXR1cm4gdFtibl07bGV0IGU7cmV0dXJuIGU9dC5nZXRTdHlsZT90LmdldFN0eWxlKCk6dCxlfXByb2Nlc3NTdHlsZXMoKXtjb25zdCB0PXRoaXMuY3VzdG9tU3R5bGVzO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCBuPXRbZV07aWYobltibl0pY29udGludWU7Y29uc3QgaT10aGlzLmdldFN0eWxlRm9yQ3VzdG9tU3R5bGUobik7aWYoaSl7Y29uc3QgdD1pLl9fYXBwbGllZEVsZW1lbnR8fGk7eG4mJnhuKHQpLG5bYm5dPXR9fXJldHVybiB0fX1Tbi5wcm90b3R5cGUuYWRkQ3VzdG9tU3R5bGU9U24ucHJvdG90eXBlLmFkZEN1c3RvbVN0eWxlLFNuLnByb3RvdHlwZS5nZXRTdHlsZUZvckN1c3RvbVN0eWxlPVNuLnByb3RvdHlwZS5nZXRTdHlsZUZvckN1c3RvbVN0eWxlLFNuLnByb3RvdHlwZS5wcm9jZXNzU3R5bGVzPVNuLnByb3RvdHlwZS5wcm9jZXNzU3R5bGVzLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFNuLnByb3RvdHlwZSx7dHJhbnNmb3JtQ2FsbGJhY2s6e2dldDooKT0+eG4sc2V0KHQpe3huPXR9fSx2YWxpZGF0ZUNhbGxiYWNrOntnZXQ6KCk9PnduLHNldCh0KXtsZXQgZT0hMTt3bnx8KGU9ITApLHduPXQsZSYmdGhpcy5lbnF1ZXVlRG9jdW1lbnRWYWxpZGF0aW9uKCl9fX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBNbj1uZXcgc247Y2xhc3MgRW57Y29uc3RydWN0b3IoKXt0aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlPW51bGwsTW4uaW52YWxpZENhbGxiYWNrPXBufWVuc3VyZSgpe3RoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2V8fHdpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZSYmKHRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2U9d2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlLHRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UudHJhbnNmb3JtQ2FsbGJhY2s9dD0+e01uLnRyYW5zZm9ybUN1c3RvbVN0eWxlKHQpfSx0aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlLnZhbGlkYXRlQ2FsbGJhY2s9KCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5jdXN0b21TdHlsZUludGVyZmFjZS5lbnF1ZXVlZCYmdGhpcy5mbHVzaEN1c3RvbVN0eWxlcygpfSkpfSl9cHJlcGFyZVRlbXBsYXRlKHQsZSl7aWYodGhpcy5lbnN1cmUoKSxKZSh0KSlyZXR1cm47bG5bZV09dDtsZXQgbj1Nbi50cmFuc2Zvcm1UZW1wbGF0ZSh0LGUpO3QuX3N0eWxlQXN0PW59Zmx1c2hDdXN0b21TdHlsZXMoKXtpZih0aGlzLmVuc3VyZSgpLCF0aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlKXJldHVybjtsZXQgdD10aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlLnByb2Nlc3NTdHlsZXMoKTtpZih0aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlLmVucXVldWVkKXtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IG49dGhpcy5jdXN0b21TdHlsZUludGVyZmFjZS5nZXRTdHlsZUZvckN1c3RvbVN0eWxlKHRbZV0pO24mJk1uLnRyYW5zZm9ybUN1c3RvbVN0eWxlKG4pfXRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UuZW5xdWV1ZWQ9ITF9fXN0eWxlU3VidHJlZSh0LGUpe2lmKHRoaXMuZW5zdXJlKCksZSYmUWUodCxlKSx0LnNoYWRvd1Jvb3Qpe3RoaXMuc3R5bGVFbGVtZW50KHQpO2xldCBlPXQuc2hhZG93Um9vdC5jaGlsZHJlbnx8dC5zaGFkb3dSb290LmNoaWxkTm9kZXM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspdGhpcy5zdHlsZVN1YnRyZWUoZVt0XSl9ZWxzZXtsZXQgZT10LmNoaWxkcmVufHx0LmNoaWxkTm9kZXM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspdGhpcy5zdHlsZVN1YnRyZWUoZVt0XSl9fXN0eWxlRWxlbWVudCh0KXt0aGlzLmVuc3VyZSgpO2xldHtpczplfT0oZnVuY3Rpb24gbih0KXtsZXQgZT10LmxvY2FsTmFtZSxuPSIiLGk9IiI7cmV0dXJuIGU/ZS5pbmRleE9mKCItIik+LTE/bj1lOihpPWUsbj10LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUoImlzIil8fCIiKToobj10LmlzLGk9dC5leHRlbmRzKSx7aXM6bix0eXBlRXh0ZW5zaW9uOml9fSkodCksaT1sbltlXTtpZigoIWl8fCFKZShpKSkmJmkmJiFmbihpKSl7KGZ1bmN0aW9uIG4odCl7cmV0dXJuIWZuKHQpJiZ0W2huXT09PXRbdW5dfSkoaSl8fCh0aGlzLnByZXBhcmVUZW1wbGF0ZShpLGUpLChmdW5jdGlvbiByKHQpe3RbaG5dPXRbdW5dLHQuX3ZhbGlkYXRpbmd8fCh0Ll92YWxpZGF0aW5nPSEwLGRuLnRoZW4oKGZ1bmN0aW9uKCl7dFtjbl09dFt1bl0sdC5fdmFsaWRhdGluZz0hMX0pKSl9KShpKSk7bGV0IG89dC5zaGFkb3dSb290O2lmKG8pe2xldCB0PW8ucXVlcnlTZWxlY3Rvcigic3R5bGUiKTt0JiYodC5fX2Nzc1J1bGVzPWkuX3N0eWxlQXN0LHQudGV4dENvbnRlbnQ9WWUoaS5fc3R5bGVBc3QpKX19fXN0eWxlRG9jdW1lbnQodCl7dGhpcy5lbnN1cmUoKSx0aGlzLnN0eWxlU3VidHJlZShkb2N1bWVudC5ib2R5LHQpfX1pZighd2luZG93LlNoYWR5Q1NTfHwhd2luZG93LlNoYWR5Q1NTLlNjb3BpbmdTaGltKXtjb25zdCB0PW5ldyBFbjtsZXQgZT13aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZTt3aW5kb3cuU2hhZHlDU1M9e3ByZXBhcmVUZW1wbGF0ZShlLG4saSl7dC5mbHVzaEN1c3RvbVN0eWxlcygpLHQucHJlcGFyZVRlbXBsYXRlKGUsbil9LHByZXBhcmVUZW1wbGF0ZVN0eWxlcyh0LGUsbil7d2luZG93LlNoYWR5Q1NTLnByZXBhcmVUZW1wbGF0ZSh0LGUsbil9LHByZXBhcmVUZW1wbGF0ZURvbSh0LGUpe30sc3R5bGVTdWJ0cmVlKGUsbil7dC5mbHVzaEN1c3RvbVN0eWxlcygpLHQuc3R5bGVTdWJ0cmVlKGUsbil9LHN0eWxlRWxlbWVudChlKXt0LmZsdXNoQ3VzdG9tU3R5bGVzKCksdC5zdHlsZUVsZW1lbnQoZSl9LHN0eWxlRG9jdW1lbnQoZSl7dC5mbHVzaEN1c3RvbVN0eWxlcygpLHQuc3R5bGVEb2N1bWVudChlKX0sZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlOih0LGUpPT50bih0LGUpLGZsdXNoQ3VzdG9tU3R5bGVzKCl7dC5mbHVzaEN1c3RvbVN0eWxlcygpfSxuYXRpdmVDc3M6a2UsbmF0aXZlU2hhZG93Ok1lLGNzc0J1aWxkOlRlLGRpc2FibGVSdW50aW1lOkFlfSxlJiYod2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlPWUpfXdpbmRvdy5TaGFkeUNTUy5BcHBseVNoaW09TW47Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNsYXNzIFRue2NvbnN0cnVjdG9yKCl7dGhpcy5fYXN5bmNNb2R1bGU9bnVsbCx0aGlzLl9jYWxsYmFjaz1udWxsLHRoaXMuX3RpbWVyPW51bGx9c2V0Q29uZmlnKHQsZSl7dGhpcy5fYXN5bmNNb2R1bGU9dCx0aGlzLl9jYWxsYmFjaz1lLHRoaXMuX3RpbWVyPXRoaXMuX2FzeW5jTW9kdWxlLnJ1bigoKCk9Pnt0aGlzLl90aW1lcj1udWxsLENuLmRlbGV0ZSh0aGlzKSx0aGlzLl9jYWxsYmFjaygpfSkpfWNhbmNlbCgpe3RoaXMuaXNBY3RpdmUoKSYmKHRoaXMuX2NhbmNlbEFzeW5jKCksQ24uZGVsZXRlKHRoaXMpKX1fY2FuY2VsQXN5bmMoKXt0aGlzLmlzQWN0aXZlKCkmJih0aGlzLl9hc3luY01vZHVsZS5jYW5jZWwodGhpcy5fdGltZXIpLHRoaXMuX3RpbWVyPW51bGwpfWZsdXNoKCl7dGhpcy5pc0FjdGl2ZSgpJiYodGhpcy5jYW5jZWwoKSx0aGlzLl9jYWxsYmFjaygpKX1pc0FjdGl2ZSgpe3JldHVybiBudWxsIT10aGlzLl90aW1lcn1zdGF0aWMgZGVib3VuY2UodCxlLG4pe3JldHVybiB0IGluc3RhbmNlb2YgVG4/dC5fY2FuY2VsQXN5bmMoKTp0PW5ldyBUbix0LnNldENvbmZpZyhlLG4pLHR9fWxldCBDbj1uZXcgU2V0O2NvbnN0IEFuPWZ1bmN0aW9uKHQpe0NuLmFkZCh0KX0sa249ZnVuY3Rpb24oKXtjb25zdCB0PUJvb2xlYW4oQ24uc2l6ZSk7cmV0dXJuIENuLmZvckVhY2goKHQ9Pnt0cnl7dC5mbHVzaCgpfWNhdGNoKHQpe3NldFRpbWVvdXQoKCgpPT57dGhyb3cgdH0pKX19KSksdH07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmxldCBMbj0ic3RyaW5nIj09dHlwZW9mIGRvY3VtZW50LmhlYWQuc3R5bGUudG91Y2hBY3Rpb24sUG49Il9fcG9seW1lckdlc3R1cmVzIixObj0iX19wb2x5bWVyR2VzdHVyZXNIYW5kbGVkIixJbj0iX19wb2x5bWVyR2VzdHVyZXNUb3VjaEFjdGlvbiIsUm49WyJtb3VzZWRvd24iLCJtb3VzZW1vdmUiLCJtb3VzZXVwIiwiY2xpY2siXSxPbj1bMCwxLDQsMl0sem49KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiAxPT09bmV3IE1vdXNlRXZlbnQoInRlc3QiLHtidXR0b25zOjF9KS5idXR0b25zfWNhdGNoKHQpe3JldHVybiExfX0pKCk7ZnVuY3Rpb24gRG4odCl7cmV0dXJuIFJuLmluZGV4T2YodCk+LTF9bGV0IEJuPSExO2Z1bmN0aW9uIEhuKHQpe2lmKCFEbih0KSYmInRvdWNoZW5kIiE9PXQpcmV0dXJuIExuJiZCbiYmdj97cGFzc2l2ZTohMH06dm9pZCAwfSEoZnVuY3Rpb24oKXt0cnl7bGV0IHQ9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0KCl7Qm49ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsdCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsdCl9Y2F0Y2godCl7fX0pKCk7bGV0IEZuPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL2lQKD86W29hXWR8aG9uZSl8QW5kcm9pZC8pO2NvbnN0IFZuPVtdLFVuPXtidXR0b246ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLG1ldGVyOiEwLG91dHB1dDohMCx0ZXh0YXJlYTohMCxwcm9ncmVzczohMCxzZWxlY3Q6ITB9LGpuPXtidXR0b246ITAsY29tbWFuZDohMCxmaWVsZHNldDohMCxpbnB1dDohMCxrZXlnZW46ITAsb3B0Z3JvdXA6ITAsb3B0aW9uOiEwLHNlbGVjdDohMCx0ZXh0YXJlYTohMH07ZnVuY3Rpb24gR24odCl7bGV0IGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodC5sYWJlbHN8fFtdKTtpZighZS5sZW5ndGgpe2U9W107bGV0IG49dC5nZXRSb290Tm9kZSgpO2lmKHQuaWQpe2xldCBpPW4ucXVlcnlTZWxlY3RvckFsbChgbGFiZWxbZm9yID0gJHt0LmlkfV1gKTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyllLnB1c2goaVt0XSl9fXJldHVybiBlfWxldCBXbj1mdW5jdGlvbih0KXtsZXQgZT10LnNvdXJjZUNhcGFiaWxpdGllcztpZigoIWV8fGUuZmlyZXNUb3VjaEV2ZW50cykmJih0W05uXT17c2tpcDohMH0sImNsaWNrIj09PXQudHlwZSkpe2xldCBlPSExLG49Sm4odCk7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspe2lmKG5bdF0ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSlpZigibGFiZWwiPT09blt0XS5sb2NhbE5hbWUpVm4ucHVzaChuW3RdKTtlbHNlIGlmKFVuW25bdF0ubG9jYWxOYW1lXSl7bGV0IGk9R24oblt0XSk7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0KyspZT1lfHxWbi5pbmRleE9mKGlbdF0pPi0xfWlmKG5bdF09PT1Ybi5tb3VzZS50YXJnZXQpcmV0dXJufWlmKGUpcmV0dXJuO3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX07ZnVuY3Rpb24gcW4odCl7bGV0IGU9Rm4/WyJjbGljayJdOlJuO2ZvcihsZXQgbixpPTA7aTxlLmxlbmd0aDtpKyspbj1lW2ldLHQ/KFZuLmxlbmd0aD0wLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIobixXbiwhMCkpOmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIobixXbiwhMCl9ZnVuY3Rpb24gWW4odCl7bGV0IGU9dC50eXBlO2lmKCFEbihlKSlyZXR1cm4hMTtpZigibW91c2Vtb3ZlIj09PWUpe2xldCBlPXZvaWQgMD09PXQuYnV0dG9ucz8xOnQuYnV0dG9ucztyZXR1cm4gdCBpbnN0YW5jZW9mIHdpbmRvdy5Nb3VzZUV2ZW50JiYhem4mJihlPU9uW3Qud2hpY2hdfHwwKSxCb29sZWFuKDEmZSl9cmV0dXJuIDA9PT0odm9pZCAwPT09dC5idXR0b24/MDp0LmJ1dHRvbil9bGV0IFhuPXttb3VzZTp7dGFyZ2V0Om51bGwsbW91c2VJZ25vcmVKb2I6bnVsbH0sdG91Y2g6e3g6MCx5OjAsaWQ6LTEsc2Nyb2xsRGVjaWRlZDohMX19O2Z1bmN0aW9uICRuKHQsZSxuKXt0Lm1vdmVmbj1lLHQudXBmbj1uLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbil9ZnVuY3Rpb24gS24odCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0Lm1vdmVmbiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdC51cGZuKSx0Lm1vdmVmbj1udWxsLHQudXBmbj1udWxsfWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwoZnVuY3Rpb24gWm4odCl7WG4ubW91c2UubW91c2VJZ25vcmVKb2J8fHFuKCEwKSxYbi5tb3VzZS50YXJnZXQ9Sm4odClbMF0sWG4ubW91c2UubW91c2VJZ25vcmVKb2I9VG4uZGVib3VuY2UoWG4ubW91c2UubW91c2VJZ25vcmVKb2IsZ3QuYWZ0ZXIoMjUwMCksKGZ1bmN0aW9uKCl7cW4oKSxYbi5tb3VzZS50YXJnZXQ9bnVsbCxYbi5tb3VzZS5tb3VzZUlnbm9yZUpvYj1udWxsfSkpfSksISFCbiYme3Bhc3NpdmU6ITB9KTtjb25zdCBKbj13aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5ub1BhdGNoP3dpbmRvdy5TaGFkeURPTS5jb21wb3NlZFBhdGg6dD0+dC5jb21wb3NlZFBhdGgmJnQuY29tcG9zZWRQYXRoKCl8fFtdLFFuPXt9LHRpPVtdO2Z1bmN0aW9uIGVpKHQpe2NvbnN0IGU9Sm4odCk7cmV0dXJuIGUubGVuZ3RoPjA/ZVswXTp0LnRhcmdldH1mdW5jdGlvbiBuaSh0KXtsZXQgZSxuPXQudHlwZSxpPXQuY3VycmVudFRhcmdldFtQbl07aWYoIWkpcmV0dXJuO2xldCByPWlbbl07aWYocil7aWYoIXRbTm5dJiYodFtObl09e30sInRvdWNoIj09PW4uc2xpY2UoMCw1KSkpe2xldCBlPSh0PXQpLmNoYW5nZWRUb3VjaGVzWzBdO2lmKCJ0b3VjaHN0YXJ0Ij09PW4mJjE9PT10LnRvdWNoZXMubGVuZ3RoJiYoWG4udG91Y2guaWQ9ZS5pZGVudGlmaWVyKSxYbi50b3VjaC5pZCE9PWUuaWRlbnRpZmllcilyZXR1cm47TG58fCJ0b3VjaHN0YXJ0IiE9PW4mJiJ0b3VjaG1vdmUiIT09bnx8KGZ1bmN0aW9uIG8odCl7bGV0IGU9dC5jaGFuZ2VkVG91Y2hlc1swXSxuPXQudHlwZTtpZigidG91Y2hzdGFydCI9PT1uKVhuLnRvdWNoLng9ZS5jbGllbnRYLFhuLnRvdWNoLnk9ZS5jbGllbnRZLFhuLnRvdWNoLnNjcm9sbERlY2lkZWQ9ITE7ZWxzZSBpZigidG91Y2htb3ZlIj09PW4pe2lmKFhuLnRvdWNoLnNjcm9sbERlY2lkZWQpcmV0dXJuO1huLnRvdWNoLnNjcm9sbERlY2lkZWQ9ITA7bGV0IG49KGZ1bmN0aW9uIGkodCl7bGV0IGU9ImF1dG8iLG49Sm4odCk7Zm9yKGxldCB0LGk9MDtpPG4ubGVuZ3RoO2krKylpZih0PW5baV0sdFtJbl0pe2U9dFtJbl07YnJlYWt9cmV0dXJuIGV9KSh0KSxpPSExLHI9TWF0aC5hYnMoWG4udG91Y2gueC1lLmNsaWVudFgpLG89TWF0aC5hYnMoWG4udG91Y2gueS1lLmNsaWVudFkpO3QuY2FuY2VsYWJsZSYmKCJub25lIj09PW4/aT0hMDoicGFuLXgiPT09bj9pPW8+cjoicGFuLXkiPT09biYmKGk9cj5vKSksaT90LnByZXZlbnREZWZhdWx0KCk6c2koInRyYWNrIil9fSkodCl9aWYoZT10W05uXSwhZS5za2lwKXtmb3IobGV0IG4saT0wO2k8dGkubGVuZ3RoO2krKyluPXRpW2ldLHJbbi5uYW1lXSYmIWVbbi5uYW1lXSYmbi5mbG93JiZuLmZsb3cuc3RhcnQuaW5kZXhPZih0LnR5cGUpPi0xJiZuLnJlc2V0JiZuLnJlc2V0KCk7Zm9yKGxldCBpLG89MDtvPHRpLmxlbmd0aDtvKyspaT10aVtvXSxyW2kubmFtZV0mJiFlW2kubmFtZV0mJihlW2kubmFtZV09ITAsaVtuXSh0KSl9fX1mdW5jdGlvbiBpaSh0LGUsbil7cmV0dXJuISFRbltlXSYmKChmdW5jdGlvbiBpKHQsZSxuKXtsZXQgaT1RbltlXSxyPWkuZGVwcyxvPWkubmFtZSxhPXRbUG5dO2F8fCh0W1BuXT1hPXt9KTtmb3IobGV0IGUsbixpPTA7aTxyLmxlbmd0aDtpKyspZT1yW2ldLEZuJiZEbihlKSYmImNsaWNrIiE9PWV8fChuPWFbZV0sbnx8KGFbZV09bj17X2NvdW50OjB9KSwwPT09bi5fY291bnQmJnQuYWRkRXZlbnRMaXN0ZW5lcihlLG5pLEhuKGUpKSxuW29dPShuW29dfHwwKSsxLG4uX2NvdW50PShuLl9jb3VudHx8MCkrMSk7dC5hZGRFdmVudExpc3RlbmVyKGUsbiksaS50b3VjaEFjdGlvbiYmb2kodCxpLnRvdWNoQWN0aW9uKX0pKHQsZSxuKSwhMCl9ZnVuY3Rpb24gcmkodCl7dGkucHVzaCh0KTtmb3IobGV0IGU9MDtlPHQuZW1pdHMubGVuZ3RoO2UrKylRblt0LmVtaXRzW2VdXT10fWZ1bmN0aW9uIG9pKHQsZSl7TG4mJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdnQucnVuKCgoKT0+e3Quc3R5bGUudG91Y2hBY3Rpb249ZX0pKSx0W0luXT1lfWZ1bmN0aW9uIGFpKHQsZSxuKXtsZXQgaT1uZXcgRXZlbnQoZSx7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNvbXBvc2VkOiEwfSk7aWYoaS5kZXRhaWw9bixZKHQpLmRpc3BhdGNoRXZlbnQoaSksaS5kZWZhdWx0UHJldmVudGVkKXtsZXQgdD1uLnByZXZlbnRlcnx8bi5zb3VyY2VFdmVudDt0JiZ0LnByZXZlbnREZWZhdWx0JiZ0LnByZXZlbnREZWZhdWx0KCl9fWZ1bmN0aW9uIHNpKHQpe2xldCBlPShmdW5jdGlvbiBuKHQpe2ZvcihsZXQgZSxuPTA7bjx0aS5sZW5ndGg7bisrKXtlPXRpW25dO2ZvcihsZXQgbixpPTA7aTxlLmVtaXRzLmxlbmd0aDtpKyspaWYobj1lLmVtaXRzW2ldLG49PT10KXJldHVybiBlfXJldHVybiBudWxsfSkodCk7ZS5pbmZvJiYoZS5pbmZvLnByZXZlbnQ9ITApfWZ1bmN0aW9uIGxpKHQsZSxuLGkpe2UmJmFpKGUsdCx7eDpuLmNsaWVudFgseTpuLmNsaWVudFksc291cmNlRXZlbnQ6bixwcmV2ZW50ZXI6aSxwcmV2ZW50OmZ1bmN0aW9uKHQpe3JldHVybiBzaSh0KX19KX1mdW5jdGlvbiBjaSh0LGUsbil7aWYodC5wcmV2ZW50KXJldHVybiExO2lmKHQuc3RhcnRlZClyZXR1cm4hMDtsZXQgaT1NYXRoLmFicyh0LngtZSkscj1NYXRoLmFicyh0Lnktbik7cmV0dXJuIGk+PTV8fHI+PTV9ZnVuY3Rpb24gdWkodCxlLG4pe2lmKCFlKXJldHVybjtsZXQgaSxyPXQubW92ZXNbdC5tb3Zlcy5sZW5ndGgtMl0sbz10Lm1vdmVzW3QubW92ZXMubGVuZ3RoLTFdLGE9MDtyJiYoaT1vLngtci54LGE9by55LXIueSksYWkoZSwidHJhY2siLHtzdGF0ZTp0LnN0YXRlLHg6bi5jbGllbnRYLHk6bi5jbGllbnRZLGR4Om8ueC10LngsZHk6by55LXQueSxkZHg6aSxkZHk6YSxzb3VyY2VFdmVudDpuLGhvdmVyOmZ1bmN0aW9uKCl7cmV0dXJuKGZ1bmN0aW9uIHQoZSxuKXtsZXQgaT1kb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGUsbikscj1pO2Zvcig7ciYmci5zaGFkb3dSb290JiYhd2luZG93LlNoYWR5RE9NOyl7bGV0IHQ9cjtpZihyPXIuc2hhZG93Um9vdC5lbGVtZW50RnJvbVBvaW50KGUsbiksdD09PXIpYnJlYWs7ciYmKGk9cil9cmV0dXJuIGl9KShuLmNsaWVudFgsbi5jbGllbnRZKX19KX1mdW5jdGlvbiBoaSh0LGUsbil7bGV0IGk9TWF0aC5hYnMoZS5jbGllbnRYLXQueCkscj1NYXRoLmFicyhlLmNsaWVudFktdC55KSxvPWVpKG58fGUpOyFvfHxqbltvLmxvY2FsTmFtZV0mJm8uaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpfHwoaXNOYU4oaSl8fGlzTmFOKHIpfHxpPD0yNSYmcjw9MjV8fChmdW5jdGlvbiBhKHQpe2lmKCJjbGljayI9PT10LnR5cGUpe2lmKDA9PT10LmRldGFpbClyZXR1cm4hMDtsZXQgZT1laSh0KTtpZighZS5ub2RlVHlwZXx8ZS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFKXJldHVybiEwO2xldCBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT10LnBhZ2VYLHI9dC5wYWdlWTtyZXR1cm4hKGk+PW4ubGVmdCYmaTw9bi5yaWdodCYmcj49bi50b3AmJnI8PW4uYm90dG9tKX1yZXR1cm4hMX0pKGUpKSYmKHQucHJldmVudHx8YWkobywidGFwIix7eDplLmNsaWVudFgseTplLmNsaWVudFksc291cmNlRXZlbnQ6ZSxwcmV2ZW50ZXI6bn0pKX1yaSh7bmFtZToiZG93bnVwIixkZXBzOlsibW91c2Vkb3duIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIl0sZmxvdzp7c3RhcnQ6WyJtb3VzZWRvd24iLCJ0b3VjaHN0YXJ0Il0sZW5kOlsibW91c2V1cCIsInRvdWNoZW5kIl19LGVtaXRzOlsiZG93biIsInVwIl0saW5mbzp7bW92ZWZuOm51bGwsdXBmbjpudWxsfSxyZXNldDpmdW5jdGlvbigpe0tuKHRoaXMuaW5mbyl9LG1vdXNlZG93bjpmdW5jdGlvbih0KXtpZighWW4odCkpcmV0dXJuO2xldCBlPWVpKHQpLG49dGhpczskbih0aGlzLmluZm8sKGZ1bmN0aW9uIHQoaSl7WW4oaSl8fChsaSgidXAiLGUsaSksS24obi5pbmZvKSl9KSwoZnVuY3Rpb24gdChpKXtZbihpKSYmbGkoInVwIixlLGkpLEtuKG4uaW5mbyl9KSksbGkoImRvd24iLGUsdCl9LHRvdWNoc3RhcnQ6ZnVuY3Rpb24odCl7bGkoImRvd24iLGVpKHQpLHQuY2hhbmdlZFRvdWNoZXNbMF0sdCl9LHRvdWNoZW5kOmZ1bmN0aW9uKHQpe2xpKCJ1cCIsZWkodCksdC5jaGFuZ2VkVG91Y2hlc1swXSx0KX19KSxyaSh7bmFtZToidHJhY2siLHRvdWNoQWN0aW9uOiJub25lIixkZXBzOlsibW91c2Vkb3duIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIl0sZmxvdzp7c3RhcnQ6WyJtb3VzZWRvd24iLCJ0b3VjaHN0YXJ0Il0sZW5kOlsibW91c2V1cCIsInRvdWNoZW5kIl19LGVtaXRzOlsidHJhY2siXSxpbmZvOnt4OjAseTowLHN0YXRlOiJzdGFydCIsc3RhcnRlZDohMSxtb3ZlczpbXSxhZGRNb3ZlOmZ1bmN0aW9uKHQpe3RoaXMubW92ZXMubGVuZ3RoPjImJnRoaXMubW92ZXMuc2hpZnQoKSx0aGlzLm1vdmVzLnB1c2godCl9LG1vdmVmbjpudWxsLHVwZm46bnVsbCxwcmV2ZW50OiExfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuaW5mby5zdGF0ZT0ic3RhcnQiLHRoaXMuaW5mby5zdGFydGVkPSExLHRoaXMuaW5mby5tb3Zlcz1bXSx0aGlzLmluZm8ueD0wLHRoaXMuaW5mby55PTAsdGhpcy5pbmZvLnByZXZlbnQ9ITEsS24odGhpcy5pbmZvKX0sbW91c2Vkb3duOmZ1bmN0aW9uKHQpe2lmKCFZbih0KSlyZXR1cm47bGV0IGU9ZWkodCksbj10aGlzLGk9ZnVuY3Rpb24gdChpKXtsZXQgcj1pLmNsaWVudFgsbz1pLmNsaWVudFk7Y2kobi5pbmZvLHIsbykmJihuLmluZm8uc3RhdGU9bi5pbmZvLnN0YXJ0ZWQ/Im1vdXNldXAiPT09aS50eXBlPyJlbmQiOiJ0cmFjayI6InN0YXJ0Iiwic3RhcnQiPT09bi5pbmZvLnN0YXRlJiZzaSgidGFwIiksbi5pbmZvLmFkZE1vdmUoe3g6cix5Om99KSxZbihpKXx8KG4uaW5mby5zdGF0ZT0iZW5kIixLbihuLmluZm8pKSxlJiZ1aShuLmluZm8sZSxpKSxuLmluZm8uc3RhcnRlZD0hMCl9OyRuKHRoaXMuaW5mbyxpLChmdW5jdGlvbiB0KGUpe24uaW5mby5zdGFydGVkJiZpKGUpLEtuKG4uaW5mbyl9KSksdGhpcy5pbmZvLng9dC5jbGllbnRYLHRoaXMuaW5mby55PXQuY2xpZW50WX0sdG91Y2hzdGFydDpmdW5jdGlvbih0KXtsZXQgZT10LmNoYW5nZWRUb3VjaGVzWzBdO3RoaXMuaW5mby54PWUuY2xpZW50WCx0aGlzLmluZm8ueT1lLmNsaWVudFl9LHRvdWNobW92ZTpmdW5jdGlvbih0KXtsZXQgZT1laSh0KSxuPXQuY2hhbmdlZFRvdWNoZXNbMF0saT1uLmNsaWVudFgscj1uLmNsaWVudFk7Y2kodGhpcy5pbmZvLGkscikmJigic3RhcnQiPT09dGhpcy5pbmZvLnN0YXRlJiZzaSgidGFwIiksdGhpcy5pbmZvLmFkZE1vdmUoe3g6aSx5OnJ9KSx1aSh0aGlzLmluZm8sZSxuKSx0aGlzLmluZm8uc3RhdGU9InRyYWNrIix0aGlzLmluZm8uc3RhcnRlZD0hMCl9LHRvdWNoZW5kOmZ1bmN0aW9uKHQpe2xldCBlPWVpKHQpLG49dC5jaGFuZ2VkVG91Y2hlc1swXTt0aGlzLmluZm8uc3RhcnRlZCYmKHRoaXMuaW5mby5zdGF0ZT0iZW5kIix0aGlzLmluZm8uYWRkTW92ZSh7eDpuLmNsaWVudFgseTpuLmNsaWVudFl9KSx1aSh0aGlzLmluZm8sZSxuKSl9fSkscmkoe25hbWU6InRhcCIsZGVwczpbIm1vdXNlZG93biIsImNsaWNrIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIl0sZmxvdzp7c3RhcnQ6WyJtb3VzZWRvd24iLCJ0b3VjaHN0YXJ0Il0sZW5kOlsiY2xpY2siLCJ0b3VjaGVuZCJdfSxlbWl0czpbInRhcCJdLGluZm86e3g6TmFOLHk6TmFOLHByZXZlbnQ6ITF9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5pbmZvLng9TmFOLHRoaXMuaW5mby55PU5hTix0aGlzLmluZm8ucHJldmVudD0hMX0sbW91c2Vkb3duOmZ1bmN0aW9uKHQpe1luKHQpJiYodGhpcy5pbmZvLng9dC5jbGllbnRYLHRoaXMuaW5mby55PXQuY2xpZW50WSl9LGNsaWNrOmZ1bmN0aW9uKHQpe1luKHQpJiZoaSh0aGlzLmluZm8sdCl9LHRvdWNoc3RhcnQ6ZnVuY3Rpb24odCl7Y29uc3QgZT10LmNoYW5nZWRUb3VjaGVzWzBdO3RoaXMuaW5mby54PWUuY2xpZW50WCx0aGlzLmluZm8ueT1lLmNsaWVudFl9LHRvdWNoZW5kOmZ1bmN0aW9uKHQpe2hpKHRoaXMuaW5mbyx0LmNoYW5nZWRUb3VjaGVzWzBdLHQpfX0pO2NvbnN0IGRpPWVpLHBpPUkoKHQ9PmNsYXNzIGV4dGVuZHMgdHtfYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0LGUsbil7aWkodCxlLG4pfHxzdXBlci5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0LGUsbil9X3JlbW92ZUV2ZW50TGlzdGVuZXJGcm9tTm9kZSh0LGUsbil7KGZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiEhUW5bZV0mJigoZnVuY3Rpb24gaSh0LGUsbil7bGV0IGk9UW5bZV0scj1pLmRlcHMsbz1pLm5hbWUsYT10W1BuXTtpZihhKWZvcihsZXQgZSxuLGk9MDtpPHIubGVuZ3RoO2krKyllPXJbaV0sbj1hW2VdLG4mJm5bb10mJihuW29dPShuW29dfHwxKS0xLG4uX2NvdW50PShuLl9jb3VudHx8MSktMSwwPT09bi5fY291bnQmJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG5pLEhuKGUpKSk7dC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbil9KSh0LGUsbiksITApfSkodCxlLG4pfHxzdXBlci5fcmVtb3ZlRXZlbnRMaXN0ZW5lckZyb21Ob2RlKHQsZSxuKX19KSksZmk9Lzpob3N0XCg6ZGlyXCgobHRyfHJ0bClcKVwpL2csbWk9LyhbXHNcdy0jXC5cW1xdXCpdKik6ZGlyXCgobHRyfHJ0bClcKS9nLGdpPS86ZGlyXCgoPzpsdHJ8cnRsKVwpLyxfaT1Cb29sZWFuKHdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmluVXNlKSx5aT1bXTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9sZXQgdmk9bnVsbCxiaT0iIjtmdW5jdGlvbiB4aSgpe2JpPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRpciIpfWZ1bmN0aW9uIHdpKHQpe3QuX19hdXRvRGlyT3B0T3V0fHx0LnNldEF0dHJpYnV0ZSgiZGlyIixiaSl9ZnVuY3Rpb24gU2koKXt4aSgpLGJpPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRpciIpO2ZvcihsZXQgdD0wO3Q8eWkubGVuZ3RoO3QrKyl3aSh5aVt0XSl9Y29uc3QgTWk9SSgodD0+e19pfHx2aXx8KHhpKCksdmk9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoU2kpLHZpLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbImRpciJdfSkpO2NvbnN0IGU9TXQodCk7Y2xhc3MgbiBleHRlbmRzIGV7c3RhdGljIF9wcm9jZXNzU3R5bGVUZXh0KHQsbil7cmV0dXJuIHQ9ZS5fcHJvY2Vzc1N0eWxlVGV4dC5jYWxsKHRoaXMsdCxuKSwhX2kmJmdpLnRlc3QodCkmJih0PXRoaXMuX3JlcGxhY2VEaXJJbkNzc1RleHQodCksdGhpcy5fX2FjdGl2YXRlRGlyPSEwKSx0fXN0YXRpYyBfcmVwbGFjZURpckluQ3NzVGV4dCh0KXtsZXQgZT10O3JldHVybiBlPWUucmVwbGFjZShmaSwnOmhvc3QoW2Rpcj0iJDEiXSknKSxlPWUucmVwbGFjZShtaSwnOmhvc3QoW2Rpcj0iJDIiXSkgJDEnKSxlfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9fYXV0b0Rpck9wdE91dD0hMX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5fX2F1dG9EaXJPcHRPdXQ9dGhpcy5oYXNBdHRyaWJ1dGUoImRpciIpfWNvbm5lY3RlZENhbGxiYWNrKCl7ZS5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2smJnN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb25zdHJ1Y3Rvci5fX2FjdGl2YXRlRGlyJiYoKGZ1bmN0aW9uIHQoKXt2aSYmdmkudGFrZVJlY29yZHMoKS5sZW5ndGgmJlNpKCl9KSgpLHlpLnB1c2godGhpcyksd2kodGhpcykpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7aWYoZS5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2smJnN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb25zdHJ1Y3Rvci5fX2FjdGl2YXRlRGlyKXtjb25zdCB0PXlpLmluZGV4T2YodGhpcyk7dD4tMSYmeWkuc3BsaWNlKHQsMSl9fX1yZXR1cm4gbi5fX2FjdGl2YXRlRGlyPSExLG59KSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovbGV0IEVpPSExLFRpPVtdLENpPVtdO2Z1bmN0aW9uIEFpKCl7RWk9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe0VpPSExLChmdW5jdGlvbiB0KGUpe2Zvcig7ZS5sZW5ndGg7KWtpKGUuc2hpZnQoKSl9KShUaSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKWtpKGUuc2hpZnQoKSl9KShDaSl9KSl9KSl9ZnVuY3Rpb24ga2kodCl7Y29uc3QgZT10WzBdLG49dFsxXSxpPXRbMl07dHJ5e24uYXBwbHkoZSxpKX1jYXRjaCh0KXtzZXRUaW1lb3V0KCgoKT0+e3Rocm93IHR9KSl9fWZ1bmN0aW9uIExpKHQsZSxuKXtFaXx8QWkoKSxDaS5wdXNoKFt0LGUsbl0pfQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2Z1bmN0aW9uIFBpKCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoInVucmVzb2x2ZWQiKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KZnVuY3Rpb24gTmkodCxlLG4pe3JldHVybntpbmRleDp0LHJlbW92ZWQ6ZSxhZGRlZENvdW50Om59fWZ1bmN0aW9uIElpKHQsZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCxlLGkscixvLGEpe2xldCBzLGw9MCxjPTAsdT1NYXRoLm1pbihpLWUsYS1vKTtpZigwPT1lJiYwPT1vJiYobD0oZnVuY3Rpb24gaCh0LGUsbil7Zm9yKGxldCBpPTA7aTxuO2krKylpZighUmkodFtpXSxlW2ldKSlyZXR1cm4gaTtyZXR1cm4gbn0pKHQscix1KSksaT09dC5sZW5ndGgmJmE9PXIubGVuZ3RoJiYoYz0oZnVuY3Rpb24gZCh0LGUsbil7bGV0IGk9dC5sZW5ndGgscj1lLmxlbmd0aCxvPTA7Zm9yKDtvPG4mJlJpKHRbLS1pXSxlWy0tcl0pOylvKys7cmV0dXJuIG99KSh0LHIsdS1sKSksbys9bCxhLT1jLChpLT1jKS0oZSs9bCk9PTAmJmEtbz09MClyZXR1cm5bXTtpZihlPT1pKXtmb3Iocz1OaShlLFtdLDApO288YTspcy5yZW1vdmVkLnB1c2gocltvKytdKTtyZXR1cm5bc119aWYobz09YSlyZXR1cm5bTmkoZSxbXSxpLWUpXTtsZXQgcD0oZnVuY3Rpb24gbSh0KXtsZXQgZT10Lmxlbmd0aC0xLG49dFswXS5sZW5ndGgtMSxpPXRbZV1bbl0scj1bXTtmb3IoO2U+MHx8bj4wOyl7aWYoMD09ZSl7ci5wdXNoKDIpLG4tLTtjb250aW51ZX1pZigwPT1uKXtyLnB1c2goMyksZS0tO2NvbnRpbnVlfWxldCBvLGE9dFtlLTFdW24tMV0scz10W2UtMV1bbl0sbD10W2VdW24tMV07bz1zPGw/czxhP3M6YTpsPGE/bDphLG89PWE/KGE9PWk/ci5wdXNoKDApOihyLnB1c2goMSksaT1hKSxlLS0sbi0tKTpvPT1zPyhyLnB1c2goMyksZS0tLGk9cyk6KHIucHVzaCgyKSxuLS0saT1sKX1yZXR1cm4gci5yZXZlcnNlKCkscn0pKChmdW5jdGlvbiBmKHQsZSxuLGkscixvKXtsZXQgYT1vLXIrMSxzPW4tZSsxLGw9bmV3IEFycmF5KGEpO2ZvcihsZXQgdD0wO3Q8YTt0KyspbFt0XT1uZXcgQXJyYXkocyksbFt0XVswXT10O2ZvcihsZXQgdD0wO3Q8czt0KyspbFswXVt0XT10O2ZvcihsZXQgbj0xO248YTtuKyspZm9yKGxldCBvPTE7bzxzO28rKylpZihSaSh0W2Urby0xXSxpW3Irbi0xXSkpbFtuXVtvXT1sW24tMV1bby0xXTtlbHNle2xldCB0PWxbbi0xXVtvXSsxLGU9bFtuXVtvLTFdKzE7bFtuXVtvXT10PGU/dDplfXJldHVybiBsfSkodCxlLGkscixvLGEpKTtzPXZvaWQgMDtsZXQgZz1bXSxfPWUseT1vO2ZvcihsZXQgdD0wO3Q8cC5sZW5ndGg7dCsrKXN3aXRjaChwW3RdKXtjYXNlIDA6cyYmKGcucHVzaChzKSxzPXZvaWQgMCksXysrLHkrKzticmVhaztjYXNlIDE6c3x8KHM9TmkoXyxbXSwwKSkscy5hZGRlZENvdW50KyssXysrLHMucmVtb3ZlZC5wdXNoKHJbeV0pLHkrKzticmVhaztjYXNlIDI6c3x8KHM9TmkoXyxbXSwwKSkscy5hZGRlZENvdW50KyssXysrO2JyZWFrO2Nhc2UgMzpzfHwocz1OaShfLFtdLDApKSxzLnJlbW92ZWQucHVzaChyW3ldKSx5Kyt9cmV0dXJuIHMmJmcucHVzaChzKSxnfSkodCwwLHQubGVuZ3RoLGUsMCxlLmxlbmd0aCl9ZnVuY3Rpb24gUmkodCxlKXtyZXR1cm4gdD09PWV9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovZnVuY3Rpb24gT2kodCl7cmV0dXJuInNsb3QiPT09dC5sb2NhbE5hbWV9ImludGVyYWN0aXZlIj09PWRvY3VtZW50LnJlYWR5U3RhdGV8fCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP1BpKCk6d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLFBpKTtsZXQgemk9Y2xhc3N7c3RhdGljIGdldEZsYXR0ZW5lZE5vZGVzKHQpe2NvbnN0IGU9WSh0KTtyZXR1cm4gT2kodCk/KHQ9dCxlLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KSk6QXJyYXkuZnJvbShlLmNoaWxkTm9kZXMpLm1hcCgodD0+T2kodCk/WSh0PXQpLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KTpbdF0pKS5yZWR1Y2UoKCh0LGUpPT50LmNvbmNhdChlKSksW10pfWNvbnN0cnVjdG9yKHQsZSl7dGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyPW51bGwsdGhpcy5fbmF0aXZlQ2hpbGRyZW5PYnNlcnZlcj1udWxsLHRoaXMuX2Nvbm5lY3RlZD0hMSx0aGlzLl90YXJnZXQ9dCx0aGlzLmNhbGxiYWNrPWUsdGhpcy5fZWZmZWN0aXZlTm9kZXM9W10sdGhpcy5fb2JzZXJ2ZXI9bnVsbCx0aGlzLl9zY2hlZHVsZWQ9ITEsdGhpcy5fYm91bmRTY2hlZHVsZT0oKT0+e3RoaXMuX3NjaGVkdWxlKCl9LHRoaXMuY29ubmVjdCgpLHRoaXMuX3NjaGVkdWxlKCl9Y29ubmVjdCgpe09pKHRoaXMuX3RhcmdldCk/dGhpcy5fbGlzdGVuU2xvdHMoW3RoaXMuX3RhcmdldF0pOlkodGhpcy5fdGFyZ2V0KS5jaGlsZHJlbiYmKHRoaXMuX2xpc3RlblNsb3RzKFkodGhpcy5fdGFyZ2V0KS5jaGlsZHJlbiksd2luZG93LlNoYWR5RE9NP3RoaXMuX3NoYWR5Q2hpbGRyZW5PYnNlcnZlcj13aW5kb3cuU2hhZHlET00ub2JzZXJ2ZUNoaWxkcmVuKHRoaXMuX3RhcmdldCwodD0+e3RoaXMuX3Byb2Nlc3NNdXRhdGlvbnModCl9KSk6KHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKHQ9Pnt0aGlzLl9wcm9jZXNzTXV0YXRpb25zKHQpfSkpLHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl90YXJnZXQse2NoaWxkTGlzdDohMH0pKSksdGhpcy5fY29ubmVjdGVkPSEwfWRpc2Nvbm5lY3QoKXtPaSh0aGlzLl90YXJnZXQpP3RoaXMuX3VubGlzdGVuU2xvdHMoW3RoaXMuX3RhcmdldF0pOlkodGhpcy5fdGFyZ2V0KS5jaGlsZHJlbiYmKHRoaXMuX3VubGlzdGVuU2xvdHMoWSh0aGlzLl90YXJnZXQpLmNoaWxkcmVuKSx3aW5kb3cuU2hhZHlET00mJnRoaXMuX3NoYWR5Q2hpbGRyZW5PYnNlcnZlcj8od2luZG93LlNoYWR5RE9NLnVub2JzZXJ2ZUNoaWxkcmVuKHRoaXMuX3NoYWR5Q2hpbGRyZW5PYnNlcnZlciksdGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyPW51bGwpOnRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXImJih0aGlzLl9uYXRpdmVDaGlsZHJlbk9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLl9uYXRpdmVDaGlsZHJlbk9ic2VydmVyPW51bGwpKSx0aGlzLl9jb25uZWN0ZWQ9ITF9X3NjaGVkdWxlKCl7dGhpcy5fc2NoZWR1bGVkfHwodGhpcy5fc2NoZWR1bGVkPSEwLHZ0LnJ1bigoKCk9PnRoaXMuZmx1c2goKSkpKX1fcHJvY2Vzc011dGF0aW9ucyh0KXt0aGlzLl9wcm9jZXNzU2xvdE11dGF0aW9ucyh0KSx0aGlzLmZsdXNoKCl9X3Byb2Nlc3NTbG90TXV0YXRpb25zKHQpe2lmKHQpZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2xldCBuPXRbZV07bi5hZGRlZE5vZGVzJiZ0aGlzLl9saXN0ZW5TbG90cyhuLmFkZGVkTm9kZXMpLG4ucmVtb3ZlZE5vZGVzJiZ0aGlzLl91bmxpc3RlblNsb3RzKG4ucmVtb3ZlZE5vZGVzKX19Zmx1c2goKXtpZighdGhpcy5fY29ubmVjdGVkKXJldHVybiExO3dpbmRvdy5TaGFkeURPTSYmU2hhZHlET00uZmx1c2goKSx0aGlzLl9uYXRpdmVDaGlsZHJlbk9ic2VydmVyP3RoaXMuX3Byb2Nlc3NTbG90TXV0YXRpb25zKHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXIudGFrZVJlY29yZHMoKSk6dGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyJiZ0aGlzLl9wcm9jZXNzU2xvdE11dGF0aW9ucyh0aGlzLl9zaGFkeUNoaWxkcmVuT2JzZXJ2ZXIudGFrZVJlY29yZHMoKSksdGhpcy5fc2NoZWR1bGVkPSExO2xldCB0PXt0YXJnZXQ6dGhpcy5fdGFyZ2V0LGFkZGVkTm9kZXM6W10scmVtb3ZlZE5vZGVzOltdfSxlPXRoaXMuY29uc3RydWN0b3IuZ2V0RmxhdHRlbmVkTm9kZXModGhpcy5fdGFyZ2V0KSxuPUlpKGUsdGhpcy5fZWZmZWN0aXZlTm9kZXMpO2ZvcihsZXQgZSxpPTA7aTxuLmxlbmd0aCYmKGU9bltpXSk7aSsrKWZvcihsZXQgbixpPTA7aTxlLnJlbW92ZWQubGVuZ3RoJiYobj1lLnJlbW92ZWRbaV0pO2krKyl0LnJlbW92ZWROb2Rlcy5wdXNoKG4pO2ZvcihsZXQgaSxyPTA7cjxuLmxlbmd0aCYmKGk9bltyXSk7cisrKWZvcihsZXQgbj1pLmluZGV4O248aS5pbmRleCtpLmFkZGVkQ291bnQ7bisrKXQuYWRkZWROb2Rlcy5wdXNoKGVbbl0pO3RoaXMuX2VmZmVjdGl2ZU5vZGVzPWU7bGV0IGk9ITE7cmV0dXJuKHQuYWRkZWROb2Rlcy5sZW5ndGh8fHQucmVtb3ZlZE5vZGVzLmxlbmd0aCkmJihpPSEwLHRoaXMuY2FsbGJhY2suY2FsbCh0aGlzLl90YXJnZXQsdCkpLGl9X2xpc3RlblNsb3RzKHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbj10W2VdO09pKG4pJiZuLmFkZEV2ZW50TGlzdGVuZXIoInNsb3RjaGFuZ2UiLHRoaXMuX2JvdW5kU2NoZWR1bGUpfX1fdW5saXN0ZW5TbG90cyh0KXtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IG49dFtlXTtPaShuKSYmbi5yZW1vdmVFdmVudExpc3RlbmVyKCJzbG90Y2hhbmdlIix0aGlzLl9ib3VuZFNjaGVkdWxlKX19fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jb25zdCBEaT1mdW5jdGlvbigpe2xldCB0LGU7ZG97dD13aW5kb3cuU2hhZHlET00mJlNoYWR5RE9NLmZsdXNoKCksd2luZG93LlNoYWR5Q1NTJiZ3aW5kb3cuU2hhZHlDU1MuU2NvcGluZ1NoaW0mJndpbmRvdy5TaGFkeUNTUy5TY29waW5nU2hpbS5mbHVzaCgpLGU9a24oKX13aGlsZSh0fHxlKX0sQmk9RWxlbWVudC5wcm90b3R5cGUsSGk9QmkubWF0Y2hlc3x8QmkubWF0Y2hlc1NlbGVjdG9yfHxCaS5tb3pNYXRjaGVzU2VsZWN0b3J8fEJpLm1zTWF0Y2hlc1NlbGVjdG9yfHxCaS5vTWF0Y2hlc1NlbGVjdG9yfHxCaS53ZWJraXRNYXRjaGVzU2VsZWN0b3IsRmk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gSGkuY2FsbCh0LGUpfTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jbGFzcyBWaXtjb25zdHJ1Y3Rvcih0KXt3aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5pblVzZSYmd2luZG93LlNoYWR5RE9NLnBhdGNoKHQpLHRoaXMubm9kZT10fW9ic2VydmVOb2Rlcyh0KXtyZXR1cm4gbmV3IHppKHRoaXMubm9kZSx0KX11bm9ic2VydmVOb2Rlcyh0KXt0LmRpc2Nvbm5lY3QoKX1ub3RpZnlPYnNlcnZlcigpe31kZWVwQ29udGFpbnModCl7aWYoWSh0aGlzLm5vZGUpLmNvbnRhaW5zKHQpKXJldHVybiEwO2xldCBlPXQsbj10Lm93bmVyRG9jdW1lbnQ7Zm9yKDtlJiZlIT09biYmZSE9PXRoaXMubm9kZTspZT1ZKGUpLnBhcmVudE5vZGV8fFkoZSkuaG9zdDtyZXR1cm4gZT09PXRoaXMubm9kZX1nZXRPd25lclJvb3QoKXtyZXR1cm4gWSh0aGlzLm5vZGUpLmdldFJvb3ROb2RlKCl9Z2V0RGlzdHJpYnV0ZWROb2Rlcygpe3JldHVybiJzbG90Ij09PXRoaXMubm9kZS5sb2NhbE5hbWU/WSh0aGlzLm5vZGUpLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KTpbXX1nZXREZXN0aW5hdGlvbkluc2VydGlvblBvaW50cygpe2xldCB0PVtdLGU9WSh0aGlzLm5vZGUpLmFzc2lnbmVkU2xvdDtmb3IoO2U7KXQucHVzaChlKSxlPVkoZSkuYXNzaWduZWRTbG90O3JldHVybiB0fWltcG9ydE5vZGUodCxlKXtsZXQgbj10aGlzLm5vZGUgaW5zdGFuY2VvZiBEb2N1bWVudD90aGlzLm5vZGU6dGhpcy5ub2RlLm93bmVyRG9jdW1lbnQ7cmV0dXJuIFkobikuaW1wb3J0Tm9kZSh0LGUpfWdldEVmZmVjdGl2ZUNoaWxkTm9kZXMoKXtyZXR1cm4gemkuZ2V0RmxhdHRlbmVkTm9kZXModGhpcy5ub2RlKX1xdWVyeURpc3RyaWJ1dGVkRWxlbWVudHModCl7bGV0IGU9dGhpcy5nZXRFZmZlY3RpdmVDaGlsZE5vZGVzKCksbj1bXTtmb3IobGV0IGkscj0wLG89ZS5sZW5ndGg7cjxvJiYoaT1lW3JdKTtyKyspaS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZGaShpLHQpJiZuLnB1c2goaSk7cmV0dXJuIG59Z2V0IGFjdGl2ZUVsZW1lbnQoKXtsZXQgdD10aGlzLm5vZGU7cmV0dXJuIHZvaWQgMCE9PXQuX2FjdGl2ZUVsZW1lbnQ/dC5fYWN0aXZlRWxlbWVudDp0LmFjdGl2ZUVsZW1lbnR9fWZ1bmN0aW9uIFVpKHQsZSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2xldCBpPWVbbl07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZVtpXX0sY29uZmlndXJhYmxlOiEwfSl9fWNsYXNzIGppe2NvbnN0cnVjdG9yKHQpe3RoaXMuZXZlbnQ9dH1nZXQgcm9vdFRhcmdldCgpe3JldHVybiB0aGlzLnBhdGhbMF19Z2V0IGxvY2FsVGFyZ2V0KCl7cmV0dXJuIHRoaXMuZXZlbnQudGFyZ2V0fWdldCBwYXRoKCl7cmV0dXJuIHRoaXMuZXZlbnQuY29tcG9zZWRQYXRoKCl9fWxldCBHaT1WaTtpZih3aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5pblVzZSYmd2luZG93LlNoYWR5RE9NLm5vUGF0Y2gmJndpbmRvdy5TaGFkeURPTS5XcmFwcGVyKXtjbGFzcyB0IGV4dGVuZHMgd2luZG93LlNoYWR5RE9NLldyYXBwZXJ7fU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKFZpLnByb3RvdHlwZSkuZm9yRWFjaCgoZT0+eyJhY3RpdmVFbGVtZW50IiE9ZSYmKHQucHJvdG90eXBlW2VdPVZpLnByb3RvdHlwZVtlXSl9KSksVWkodC5wcm90b3R5cGUsWyJjbGFzc0xpc3QiXSksR2k9dCxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhqaS5wcm90b3R5cGUse2xvY2FsVGFyZ2V0OntnZXQoKXtjb25zdCB0PXRoaXMuZXZlbnQuY3VycmVudFRhcmdldCxlPXQmJllpKHQpLmdldE93bmVyUm9vdCgpLG49dGhpcy5wYXRoO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtjb25zdCBpPW5bdF07aWYoWWkoaSkuZ2V0T3duZXJSb290KCk9PT1lKXJldHVybiBpfX0sY29uZmlndXJhYmxlOiEwfSxwYXRoOntnZXQoKXtyZXR1cm4gd2luZG93LlNoYWR5RE9NLmNvbXBvc2VkUGF0aCh0aGlzLmV2ZW50KX0sY29uZmlndXJhYmxlOiEwfX0pfWVsc2UhKGZ1bmN0aW9uIFdpKHQsZSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2xldCBpPWVbbl07dFtpXT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGVbaV0uYXBwbHkodGhpcy5ub2RlLGFyZ3VtZW50cyl9fX0pKFZpLnByb3RvdHlwZSxbImNsb25lTm9kZSIsImFwcGVuZENoaWxkIiwiaW5zZXJ0QmVmb3JlIiwicmVtb3ZlQ2hpbGQiLCJyZXBsYWNlQ2hpbGQiLCJzZXRBdHRyaWJ1dGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJxdWVyeVNlbGVjdG9yIiwicXVlcnlTZWxlY3RvckFsbCJdKSxVaShWaS5wcm90b3R5cGUsWyJwYXJlbnROb2RlIiwiZmlyc3RDaGlsZCIsImxhc3RDaGlsZCIsIm5leHRTaWJsaW5nIiwicHJldmlvdXNTaWJsaW5nIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJsYXN0RWxlbWVudENoaWxkIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwicHJldmlvdXNFbGVtZW50U2libGluZyIsImNoaWxkTm9kZXMiLCJjaGlsZHJlbiIsImNsYXNzTGlzdCJdKSwoZnVuY3Rpb24gcWkodCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7bGV0IGk9ZVtuXTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlW2ldfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlW2ldPXR9LGNvbmZpZ3VyYWJsZTohMH0pfX0pKFZpLnByb3RvdHlwZSxbInRleHRDb250ZW50IiwiaW5uZXJIVE1MIiwiY2xhc3NOYW1lIl0pO2NvbnN0IFlpPWZ1bmN0aW9uKHQpe2lmKCh0PXR8fGRvY3VtZW50KWluc3RhbmNlb2YgR2kpcmV0dXJuIHQ7aWYodCBpbnN0YW5jZW9mIGppKXJldHVybiB0O2xldCBlPXQuX19kb21BcGk7cmV0dXJuIGV8fChlPXQgaW5zdGFuY2VvZiBFdmVudD9uZXcgamkodCk6bmV3IEdpKHQpLHQuX19kb21BcGk9ZSksZX0sWGk9d2luZG93LlNoYWR5RE9NLCRpPXdpbmRvdy5TaGFkeUNTUzsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9mdW5jdGlvbiBLaSh0LGUpe3JldHVybiBZKHQpLmdldFJvb3ROb2RlKCk9PT1lfQovKioKICAgICAqIEBmaWxlb3ZlcnZpZXcKICAgICAqIEBzdXBwcmVzcyB7Y2hlY2tQcm90b3R5cGFsVHlwZXN9CiAgICAgKiBAbGljZW5zZSBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZAogICAgICogYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heQogICAgICogYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieQogICAgICogR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUAogICAgICogcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovCmNvbnN0IFppPSJkaXNhYmxlLXVwZ3JhZGUiLEppPXQ9Pntmb3IoO3Q7KXtjb25zdCBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwib2JzZXJ2ZWRBdHRyaWJ1dGVzIik7aWYoZSlyZXR1cm4gZS5nZXQ7dD1PYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpLmNvbnN0cnVjdG9yfXJldHVybigpPT5bXX07SSgodD0+e2NvbnN0IGU9bWUodCk7bGV0IG49SmkoZSk7cmV0dXJuIGNsYXNzIGV4dGVuZHMgZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm4gbi5jYWxsKHRoaXMpLmNvbmNhdChaaSl9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7dGhpcy5oYXNBdHRyaWJ1dGUoWmkpP3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZD0hMDpzdXBlci5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKX1fZW5hYmxlUHJvcGVydGllcygpe3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZHx8c3VwZXIuX2VuYWJsZVByb3BlcnRpZXMoKX1fY2FuQXBwbHlQcm9wZXJ0eURlZmF1bHQodCl7cmV0dXJuIHN1cGVyLl9jYW5BcHBseVByb3BlcnR5RGVmYXVsdCh0KSYmISh0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQmJnRoaXMuX2lzUHJvcGVydHlQZW5kaW5nKHQpKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4saSl7dD09Wmk/dGhpcy5fX2lzVXBncmFkZURpc2FibGVkJiZudWxsPT1uJiYoc3VwZXIuX2luaXRpYWxpemVQcm9wZXJ0aWVzKCksdGhpcy5fX2lzVXBncmFkZURpc2FibGVkPSExLFkodGhpcykuaXNDb25uZWN0ZWQmJnN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCkpOnN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbixpKX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZHx8c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZHx8c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKX19fSkpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBRaT0iZGlzYWJsZS11cGdyYWRlIjtsZXQgdHI9d2luZG93LlNoYWR5Q1NTO2NvbnN0IGVyPUkoKHQ9Pntjb25zdCBlPXBpKG1lKHQpKSxuPWZlP2U6TWkoZSksaT1KaShuKSxyPXt4OiJwYW4teCIseToicGFuLXkiLG5vbmU6Im5vbmUiLGFsbDoiYXV0byJ9O2NsYXNzIG8gZXh0ZW5kcyBue2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgZ2V0IGltcG9ydE1ldGEoKXtyZXR1cm4gdGhpcy5wcm90b3R5cGUuaW1wb3J0TWV0YX1jcmVhdGVkKCl7fV9fYXR0cmlidXRlUmVhY3Rpb24odCxlLG4peyh0aGlzLl9fZGF0YUF0dHJpYnV0ZXMmJnRoaXMuX19kYXRhQXR0cmlidXRlc1t0XXx8dD09PVFpKSYmdGhpcy5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4sbnVsbCl9c2V0QXR0cmlidXRlKHQsZSl7aWYoTCYmIXRoaXMuX2xlZ2FjeUZvcmNlT2JzZXJ2ZWRBdHRyaWJ1dGVzKXtjb25zdCBuPXRoaXMuZ2V0QXR0cmlidXRlKHQpO3N1cGVyLnNldEF0dHJpYnV0ZSh0LGUpLHRoaXMuX19hdHRyaWJ1dGVSZWFjdGlvbih0LG4sU3RyaW5nKGUpKX1lbHNlIHN1cGVyLnNldEF0dHJpYnV0ZSh0LGUpfXJlbW92ZUF0dHJpYnV0ZSh0KXtpZihMJiYhdGhpcy5fbGVnYWN5Rm9yY2VPYnNlcnZlZEF0dHJpYnV0ZXMpe2NvbnN0IGU9dGhpcy5nZXRBdHRyaWJ1dGUodCk7c3VwZXIucmVtb3ZlQXR0cmlidXRlKHQpLHRoaXMuX19hdHRyaWJ1dGVSZWFjdGlvbih0LGUsbnVsbCl9ZWxzZSBzdXBlci5yZW1vdmVBdHRyaWJ1dGUodCl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm4gTCYmIXRoaXMucHJvdG90eXBlLl9sZWdhY3lGb3JjZU9ic2VydmVkQXR0cmlidXRlcz8odGhpcy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX29ic2VydmVkQXR0cmlidXRlcyIsdGhpcykpfHwodGhpcy5fX29ic2VydmVkQXR0cmlidXRlcz1bXSksdGhpcy5fX29ic2VydmVkQXR0cmlidXRlcyk6aS5jYWxsKHRoaXMpLmNvbmNhdChRaSl9X2VuYWJsZVByb3BlcnRpZXMoKXt0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWR8fHN1cGVyLl9lbmFibGVQcm9wZXJ0aWVzKCl9X2NhbkFwcGx5UHJvcGVydHlEZWZhdWx0KHQpe3JldHVybiBzdXBlci5fY2FuQXBwbHlQcm9wZXJ0eURlZmF1bHQodCkmJiEodGhpcy5fX2lzVXBncmFkZURpc2FibGVkJiZ0aGlzLl9pc1Byb3BlcnR5UGVuZGluZyh0KSl9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLl9fbmVlZHNBdHRyaWJ1dGVzQXRDb25uZWN0ZWQmJnRoaXMuX3Rha2VBdHRyaWJ1dGVzKCksdGhpcy5fX2lzVXBncmFkZURpc2FibGVkfHwoc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmlzQXR0YWNoZWQ9ITAsdGhpcy5hdHRhY2hlZCgpKX1hdHRhY2hlZCgpe31kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZHx8KHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pc0F0dGFjaGVkPSExLHRoaXMuZGV0YWNoZWQoKSl9ZGV0YWNoZWQoKXt9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuLGkpe2UhPT1uJiYodD09UWk/dGhpcy5fX2lzVXBncmFkZURpc2FibGVkJiZudWxsPT1uJiYodGhpcy5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKSx0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQ9ITEsWSh0aGlzKS5pc0Nvbm5lY3RlZCYmdGhpcy5jb25uZWN0ZWRDYWxsYmFjaygpKTooc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuLGkpLHRoaXMuYXR0cmlidXRlQ2hhbmdlZCh0LGUsbikpKX1hdHRyaWJ1dGVDaGFuZ2VkKHQsZSxuKXt9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7aWYodyYmdGhpcy5oYXNBdHRyaWJ1dGUoUWkpKXRoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZD0hMDtlbHNle2xldCB0PU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTt0Lmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9faGFzUmVnaXN0ZXJGaW5pc2hlZCIsdCkpfHwodGhpcy5fcmVnaXN0ZXJlZCgpLHQuX19oYXNSZWdpc3RlckZpbmlzaGVkPSEwKSxzdXBlci5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKSx0aGlzLnJvb3Q9dGhpcyx0aGlzLmNyZWF0ZWQoKSxMJiYhdGhpcy5fbGVnYWN5Rm9yY2VPYnNlcnZlZEF0dHJpYnV0ZXMmJih0aGlzLmhhc0F0dHJpYnV0ZXMoKT90aGlzLl90YWtlQXR0cmlidXRlcygpOnRoaXMucGFyZW50Tm9kZXx8KHRoaXMuX19uZWVkc0F0dHJpYnV0ZXNBdENvbm5lY3RlZD0hMCkpLHRoaXMuX2FwcGx5TGlzdGVuZXJzKCl9fV90YWtlQXR0cmlidXRlcygpe2NvbnN0IHQ9dGhpcy5hdHRyaWJ1dGVzO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdO3RoaXMuX19hdHRyaWJ1dGVSZWFjdGlvbihuLm5hbWUsbnVsbCxuLnZhbHVlKX19X3JlZ2lzdGVyZWQoKXt9cmVhZHkoKXt0aGlzLl9lbnN1cmVBdHRyaWJ1dGVzKCksc3VwZXIucmVhZHkoKX1fZW5zdXJlQXR0cmlidXRlcygpe31fYXBwbHlMaXN0ZW5lcnMoKXt9c2VyaWFsaXplKHQpe3JldHVybiB0aGlzLl9zZXJpYWxpemVWYWx1ZSh0KX1kZXNlcmlhbGl6ZSh0LGUpe3JldHVybiB0aGlzLl9kZXNlcmlhbGl6ZVZhbHVlKHQsZSl9cmVmbGVjdFByb3BlcnR5VG9BdHRyaWJ1dGUodCxlLG4pe3RoaXMuX3Byb3BlcnR5VG9BdHRyaWJ1dGUodCxlLG4pfXNlcmlhbGl6ZVZhbHVlVG9BdHRyaWJ1dGUodCxlLG4pe3RoaXMuX3ZhbHVlVG9Ob2RlQXR0cmlidXRlKG58fHRoaXMsdCxlKX1leHRlbmQodCxlKXtpZighdHx8IWUpcmV0dXJuIHR8fGU7bGV0IG49T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSk7Zm9yKGxldCBpLHI9MDtyPG4ubGVuZ3RoJiYoaT1uW3JdKTtyKyspe2xldCBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxpKTtuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLG4pfXJldHVybiB0fW1peGluKHQsZSl7Zm9yKGxldCBuIGluIGUpdFtuXT1lW25dO3JldHVybiB0fWNoYWluT2JqZWN0KHQsZSl7cmV0dXJuIHQmJmUmJnQhPT1lJiYodC5fX3Byb3RvX189ZSksdH1pbnN0YW5jZVRlbXBsYXRlKHQpe2xldCBlPXRoaXMuY29uc3RydWN0b3IuX2NvbnRlbnRGb3JUZW1wbGF0ZSh0KTtyZXR1cm4gZG9jdW1lbnQuaW1wb3J0Tm9kZShlLCEwKX1maXJlKHQsZSxuKXtuPW58fHt9LGU9bnVsbD09ZT97fTplO2xldCBpPW5ldyBFdmVudCh0LHtidWJibGVzOnZvaWQgMD09PW4uYnViYmxlc3x8bi5idWJibGVzLGNhbmNlbGFibGU6Qm9vbGVhbihuLmNhbmNlbGFibGUpLGNvbXBvc2VkOnZvaWQgMD09PW4uY29tcG9zZWR8fG4uY29tcG9zZWR9KTtyZXR1cm4gaS5kZXRhaWw9ZSxZKG4ubm9kZXx8dGhpcykuZGlzcGF0Y2hFdmVudChpKSxpfWxpc3Rlbih0LGUsbil7dD10fHx0aGlzO2xldCBpPXRoaXMuX19ib3VuZExpc3RlbmVyc3x8KHRoaXMuX19ib3VuZExpc3RlbmVycz1uZXcgV2Vha01hcCkscj1pLmdldCh0KTtyfHwocj17fSxpLnNldCh0LHIpKTtsZXQgbz1lK247cltvXXx8KHJbb109dGhpcy5fYWRkTWV0aG9kRXZlbnRMaXN0ZW5lclRvTm9kZSh0LGUsbix0aGlzKSl9dW5saXN0ZW4odCxlLG4pe3Q9dHx8dGhpcztsZXQgaT10aGlzLl9fYm91bmRMaXN0ZW5lcnMmJnRoaXMuX19ib3VuZExpc3RlbmVycy5nZXQodCkscj1lK24sbz1pJiZpW3JdO28mJih0aGlzLl9yZW1vdmVFdmVudExpc3RlbmVyRnJvbU5vZGUodCxlLG8pLGlbcl09bnVsbCl9c2V0U2Nyb2xsRGlyZWN0aW9uKHQsZSl7b2koZXx8dGhpcyxyW3RdfHwiYXV0byIpfSQkKHQpe3JldHVybiB0aGlzLnJvb3QucXVlcnlTZWxlY3Rvcih0KX1nZXQgZG9tSG9zdCgpe2xldCB0PVkodGhpcykuZ2V0Um9vdE5vZGUoKTtyZXR1cm4gdCBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQ/dC5ob3N0OnR9ZGlzdHJpYnV0ZUNvbnRlbnQoKXtjb25zdCB0PVlpKHRoaXMpO3dpbmRvdy5TaGFkeURPTSYmdC5zaGFkb3dSb290JiZTaGFkeURPTS5mbHVzaCgpfWdldEVmZmVjdGl2ZUNoaWxkTm9kZXMoKXtyZXR1cm4gWWkodGhpcykuZ2V0RWZmZWN0aXZlQ2hpbGROb2RlcygpfXF1ZXJ5RGlzdHJpYnV0ZWRFbGVtZW50cyh0KXtyZXR1cm4gWWkodGhpcykucXVlcnlEaXN0cmlidXRlZEVsZW1lbnRzKHQpfWdldEVmZmVjdGl2ZUNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuZ2V0RWZmZWN0aXZlQ2hpbGROb2RlcygpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERX0pKX1nZXRFZmZlY3RpdmVUZXh0Q29udGVudCgpe2xldCB0PXRoaXMuZ2V0RWZmZWN0aXZlQ2hpbGROb2RlcygpLGU9W107Zm9yKGxldCBuLGk9MDtuPXRbaV07aSsrKW4ubm9kZVR5cGUhPT1Ob2RlLkNPTU1FTlRfTk9ERSYmZS5wdXNoKG4udGV4dENvbnRlbnQpO3JldHVybiBlLmpvaW4oIiIpfXF1ZXJ5RWZmZWN0aXZlQ2hpbGRyZW4odCl7bGV0IGU9dGhpcy5xdWVyeURpc3RyaWJ1dGVkRWxlbWVudHModCk7cmV0dXJuIGUmJmVbMF19cXVlcnlBbGxFZmZlY3RpdmVDaGlsZHJlbih0KXtyZXR1cm4gdGhpcy5xdWVyeURpc3RyaWJ1dGVkRWxlbWVudHModCl9Z2V0Q29udGVudENoaWxkTm9kZXModCl7bGV0IGU9dGhpcy5yb290LnF1ZXJ5U2VsZWN0b3IodHx8InNsb3QiKTtyZXR1cm4gZT9ZaShlKS5nZXREaXN0cmlidXRlZE5vZGVzKCk6W119Z2V0Q29udGVudENoaWxkcmVuKHQpe3JldHVybiB0aGlzLmdldENvbnRlbnRDaGlsZE5vZGVzKHQpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERX0pKX1pc0xpZ2h0RGVzY2VuZGFudCh0KXtjb25zdCBlPXRoaXM7cmV0dXJuIGUhPT10JiZZKGUpLmNvbnRhaW5zKHQpJiZZKGUpLmdldFJvb3ROb2RlKCk9PT1ZKHQpLmdldFJvb3ROb2RlKCl9aXNMb2NhbERlc2NlbmRhbnQodCl7cmV0dXJuIHRoaXMucm9vdD09PVkodCkuZ2V0Um9vdE5vZGUoKX1zY29wZVN1YnRyZWUodCxlPSExKXtyZXR1cm4oZnVuY3Rpb24gbih0LGU9ITEpe2lmKCFYaXx8ISRpKXJldHVybiBudWxsO2lmKCFYaS5oYW5kbGVzRHluYW1pY1Njb3BpbmcpcmV0dXJuIG51bGw7Y29uc3Qgbj0kaS5TY29waW5nU2hpbTtpZighbilyZXR1cm4gbnVsbDtjb25zdCBpPW4uc2NvcGVGb3JOb2RlKHQpLHI9WSh0KS5nZXRSb290Tm9kZSgpLG89dD0+e2lmKCFLaSh0LHIpKXJldHVybjtjb25zdCBlPUFycmF5LmZyb20oWGkubmF0aXZlTWV0aG9kcy5xdWVyeVNlbGVjdG9yQWxsLmNhbGwodCwiKiIpKTtlLnB1c2godCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG89ZVt0XTtpZighS2kobyxyKSljb250aW51ZTtjb25zdCBhPW4uY3VycmVudFNjb3BlRm9yTm9kZShvKTthIT09aSYmKCIiIT09YSYmbi51bnNjb3BlTm9kZShvLGEpLG4uc2NvcGVOb2RlKG8saSkpfX07aWYobyh0KSxlKXtjb25zdCBlPW5ldyBNdXRhdGlvbk9ic2VydmVyKCh0PT57Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0IG49dFtlXTtmb3IobGV0IHQ9MDt0PG4uYWRkZWROb2Rlcy5sZW5ndGg7dCsrKXtjb25zdCBlPW4uYWRkZWROb2Rlc1t0XTtlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJm8oZSl9fX0pKTtyZXR1cm4gZS5vYnNlcnZlKHQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSksZX1yZXR1cm4gbnVsbH0pKHQsZSl9Z2V0Q29tcHV0ZWRTdHlsZVZhbHVlKHQpe3JldHVybiB0ci5nZXRDb21wdXRlZFN0eWxlVmFsdWUodGhpcyx0KX1kZWJvdW5jZSh0LGUsbil7cmV0dXJuIHRoaXMuX2RlYm91bmNlcnM9dGhpcy5fZGVib3VuY2Vyc3x8e30sdGhpcy5fZGVib3VuY2Vyc1t0XT1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJzW3RdLG4+MD9ndC5hZnRlcihuKTp2dCxlLmJpbmQodGhpcykpfWlzRGVib3VuY2VyQWN0aXZlKHQpe3RoaXMuX2RlYm91bmNlcnM9dGhpcy5fZGVib3VuY2Vyc3x8e307bGV0IGU9dGhpcy5fZGVib3VuY2Vyc1t0XTtyZXR1cm4hKCFlfHwhZS5pc0FjdGl2ZSgpKX1mbHVzaERlYm91bmNlcih0KXt0aGlzLl9kZWJvdW5jZXJzPXRoaXMuX2RlYm91bmNlcnN8fHt9O2xldCBlPXRoaXMuX2RlYm91bmNlcnNbdF07ZSYmZS5mbHVzaCgpfWNhbmNlbERlYm91bmNlcih0KXt0aGlzLl9kZWJvdW5jZXJzPXRoaXMuX2RlYm91bmNlcnN8fHt9O2xldCBlPXRoaXMuX2RlYm91bmNlcnNbdF07ZSYmZS5jYW5jZWwoKX1hc3luYyh0LGUpe3JldHVybiBlPjA/Z3QucnVuKHQuYmluZCh0aGlzKSxlKTp+dnQucnVuKHQuYmluZCh0aGlzKSl9Y2FuY2VsQXN5bmModCl7dDwwP3Z0LmNhbmNlbCh+dCk6Z3QuY2FuY2VsKHQpfWNyZWF0ZSh0LGUpe2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7aWYoZSlpZihuLnNldFByb3BlcnRpZXMpbi5zZXRQcm9wZXJ0aWVzKGUpO2Vsc2UgZm9yKGxldCB0IGluIGUpblt0XT1lW3RdO3JldHVybiBufWVsZW1lbnRNYXRjaGVzKHQsZSl7cmV0dXJuIEZpKGV8fHRoaXMsdCl9dG9nZ2xlQXR0cmlidXRlKHQsZSl7bGV0IG49dGhpcztyZXR1cm4gMz09PWFyZ3VtZW50cy5sZW5ndGgmJihuPWFyZ3VtZW50c1syXSksMT09YXJndW1lbnRzLmxlbmd0aCYmKGU9IW4uaGFzQXR0cmlidXRlKHQpKSxlPyhZKG4pLnNldEF0dHJpYnV0ZSh0LCIiKSwhMCk6KFkobikucmVtb3ZlQXR0cmlidXRlKHQpLCExKX10b2dnbGVDbGFzcyh0LGUsbil7bj1ufHx0aGlzLDE9PWFyZ3VtZW50cy5sZW5ndGgmJihlPSFuLmNsYXNzTGlzdC5jb250YWlucyh0KSksZT9uLmNsYXNzTGlzdC5hZGQodCk6bi5jbGFzc0xpc3QucmVtb3ZlKHQpfXRyYW5zZm9ybSh0LGUpeyhlPWV8fHRoaXMpLnN0eWxlLndlYmtpdFRyYW5zZm9ybT10LGUuc3R5bGUudHJhbnNmb3JtPXR9dHJhbnNsYXRlM2QodCxlLG4saSl7dGhpcy50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKCIrdCsiLCIrZSsiLCIrbisiKSIsaT1pfHx0aGlzKX1hcnJheURlbGV0ZSh0LGUpe2xldCBuO2lmKEFycmF5LmlzQXJyYXkodCkpe2lmKG49dC5pbmRleE9mKGUpLG4+PTApcmV0dXJuIHQuc3BsaWNlKG4sMSl9ZWxzZSBpZihuPW50KHRoaXMsdCkuaW5kZXhPZihlKSxuPj0wKXJldHVybiB0aGlzLnNwbGljZSh0LG4sMSk7cmV0dXJuIG51bGx9X2xvZ2dlcih0LGUpe3N3aXRjaChBcnJheS5pc0FycmF5KGUpJiYxPT09ZS5sZW5ndGgmJkFycmF5LmlzQXJyYXkoZVswXSkmJihlPWVbMF0pLHQpe2Nhc2UibG9nIjpjYXNlIndhcm4iOmNhc2UiZXJyb3IiOmNvbnNvbGVbdF0oLi4uZSl9fV9sb2coLi4udCl7dGhpcy5fbG9nZ2VyKCJsb2ciLHQpfV93YXJuKC4uLnQpe3RoaXMuX2xvZ2dlcigid2FybiIsdCl9X2Vycm9yKC4uLnQpe3RoaXMuX2xvZ2dlcigiZXJyb3IiLHQpfV9sb2dmKHQsLi4uZSl7cmV0dXJuWyJbJXM6OiVzXSIsdGhpcy5pcyx0LC4uLmVdfX1yZXR1cm4gby5wcm90b3R5cGUuaXM9IiIsb30pKTtmdW5jdGlvbiBucih0LGUpe2xldCBuPTAsaT0wO2Zvcig7Oyl7aWYobj09PXQubGVuZ3RoKXJldHVybiBpPT09ZS5sZW5ndGg/MDotMTtpZihpPT09ZS5sZW5ndGgpcmV0dXJuIDE7aWYocnIodFtuXSkmJnJyKGVbaV0pKXtjb25zdCByPW4sbz1pO249aXIodCxuKzEpLGk9aXIoZSxpKzEpO2NvbnN0IGE9cGFyc2VGbG9hdCh0LnNsaWNlKHIsbikpLHM9cGFyc2VGbG9hdChlLnNsaWNlKG8saSkpO2lmKGE8cylyZXR1cm4tMTtpZihhPnMpcmV0dXJuIDF9ZWxzZXtpZihvcih0W25dKSl7aWYoIW9yKGVbaV0pKXJldHVybi0xfWVsc2V7aWYob3IoZVtpXSkpcmV0dXJuIDE7aWYodFtuXTxlW2ldKXJldHVybi0xO2lmKHRbbl0+ZVtpXSlyZXR1cm4gMX1uKyssaSsrfX19ZnVuY3Rpb24gaXIodCxlKXtsZXQgbjshKGZ1bmN0aW9uKHQpe3RbdC5OQVRVUkFMPTBdPSJOQVRVUkFMIix0W3QuUkVBTD0xXT0iUkVBTCIsdFt0LkVYUE9ORU5UX1NJR049Ml09IkVYUE9ORU5UX1NJR04iLHRbdC5FWFBPTkVOVD0zXT0iRVhQT05FTlQifSkobnx8KG49e30pKTtsZXQgaT1uLk5BVFVSQUw7Zm9yKDtlPHQubGVuZ3RoO2UrKylpZihpPT09bi5OQVRVUkFMKXtpZigiLiI9PT10W2VdKWk9bi5SRUFMO2Vsc2UgaWYoImUiPT09dFtlXXx8IkUiPT09dFtlXSlpPW4uRVhQT05FTlRfU0lHTjtlbHNlIGlmKCFycih0W2VdKSlicmVha31lbHNlIGlmKGk9PT1uLlJFQUwpe2lmKCJlIj09PXRbZV18fCJFIj09PXRbZV0paT1uLkVYUE9ORU5UX1NJR047ZWxzZSBpZighcnIodFtlXSkpYnJlYWt9ZWxzZSBpZihpPT09bi5FWFBPTkVOVF9TSUdOKXtpZighcnIodFtlXSkmJiIrIiE9PXRbZV0mJiItIiE9PXRbZV0pYnJlYWs7aT1uLkVYUE9ORU5UfWVsc2UgaWYoaT09PW4uRVhQT05FTlQmJiFycih0W2VdKSlicmVhaztyZXR1cm4gZX1mdW5jdGlvbiBycih0KXtyZXR1cm4iMCI8PXQmJnQ8PSI5In1mdW5jdGlvbiBvcih0KXtyZXR1cm4iLyI9PT10fHwiXyI9PT10fHxycih0KX1mdW5jdGlvbiBhcih0KXtyZXR1cm4gU2UuZXhwb3J0cy51bmlvbi5hcHBseShudWxsLFNlLmV4cG9ydHMudmFsdWVzKHQpKS5zb3J0KG5yKX1jbGFzcyBzciBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm5hbWU9IlJlcXVlc3RDYW5jZWxsYXRpb25FcnJvciJ9fWNsYXNzIGxyIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5uYW1lPSJJbnZhbGlkUmVxdWVzdE9wdGlvbnNFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsbHIucHJvdG90eXBlKX19Y2xhc3MgY3IgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5tZXNzYWdlPWBSZXF1ZXN0TmV0d29ya0Vycm9yOiAke3Quc3RhdHVzfSBhdCAke2V9YCx0aGlzLm5hbWU9IlJlcXVlc3ROZXR3b3JrRXJyb3IiLHRoaXMucmVxPXQsdGhpcy51cmw9ZX19dmFyIHVyOyEoZnVuY3Rpb24odCl7dC5HRVQ9IkdFVCIsdC5QT1NUPSJQT1NUIn0pKHVyfHwodXI9e30pKTtjbGFzcyBocnt2YWxpZGF0ZSgpe2lmKHRoaXMubWV0aG9kVHlwZT09PXVyLkdFVCYmdGhpcy5ib2R5KXRocm93IG5ldyBscigiYm9keSBtdXN0IGJlIG1pc3NpbmcgZm9yIGEgR0VUIHJlcXVlc3QuIil9fWNsYXNzIGRye2NvbnN0cnVjdG9yKHQ9MWUzLGU9Myl7dGhpcy5fcXVldWU9W10sdGhpcy5fbkFjdGl2ZVJlcXVlc3RzPTAsdGhpcy5fblNpbXVsdGFuZW91c1JlcXVlc3RzPXQsdGhpcy5fbWF4UmV0cmllcz1lfXJlcXVlc3QodCxlKXtjb25zdCBuPShmdW5jdGlvbiBpKHQpe2NvbnN0IGU9bmV3IGhyO3JldHVybiB0PyhlLm1ldGhvZFR5cGU9dXIuUE9TVCxlLmJvZHk9KGZ1bmN0aW9uIG4odCl7Y29uc3QgZT1uZXcgRm9ybURhdGE7Zm9yKGNvbnN0W24saV1vZiBPYmplY3QuZW50cmllcyh0KSl7Y29uc3QgdD1BcnJheS5pc0FycmF5KGkpP2k6W2ldO2Zvcihjb25zdCBpIG9mIHQpZS5hcHBlbmQobixpKX1yZXR1cm4gZX0pKHQpLGUpOihlLm1ldGhvZFR5cGU9dXIuR0VULGUpfSkoZSk7cmV0dXJuIHRoaXMucmVxdWVzdFdpdGhPcHRpb25zKHQsbil9cmVxdWVzdFdpdGhPcHRpb25zKHQsZSl7cmV0dXJuIGUudmFsaWRhdGUoKSxuZXcgUHJvbWlzZSgoKHQsZSk9Pnt0aGlzLl9xdWV1ZS5wdXNoKHtyZXNvbHZlOnQscmVqZWN0OmV9KSx0aGlzLmxhdW5jaFJlcXVlc3RzKCl9KSkudGhlbigoKCk9PnRoaXMucHJvbWlzZVdpdGhSZXRyaWVzKHQsdGhpcy5fbWF4UmV0cmllcyxlKSkpLnRoZW4oKHQ9Pih0aGlzLl9uQWN0aXZlUmVxdWVzdHMtLSx0aGlzLmxhdW5jaFJlcXVlc3RzKCksdCkpLCh0PT4oIlJlcXVlc3ROZXR3b3JrRXJyb3IiPT09dC5uYW1lJiYodGhpcy5fbkFjdGl2ZVJlcXVlc3RzLS0sdGhpcy5sYXVuY2hSZXF1ZXN0cygpKSxQcm9taXNlLnJlamVjdCh0KSkpKX1mZXRjaCh0LGUpe3JldHVybiBuZXcgUHJvbWlzZSgoKHQsZSk9Pnt0aGlzLl9xdWV1ZS5wdXNoKHtyZXNvbHZlOnQscmVqZWN0OmV9KSx0aGlzLmxhdW5jaFJlcXVlc3RzKCl9KSkudGhlbigoKCk9PntsZXQgbj0xO3JldHVybiBuZXcgUHJvbWlzZSgoaT0+e2NvbnN0IHI9KCk9PntmZXRjaCh0LGUpLnRoZW4oKHQ9PntpZighdC5vayYmdGhpcy5fbWF4UmV0cmllcz5uKXJldHVybiBuKyssdm9pZCByKCk7aSh0KSx0aGlzLl9uQWN0aXZlUmVxdWVzdHMtLSx0aGlzLmxhdW5jaFJlcXVlc3RzKCl9KSl9O3IoKX0pKX0pKX1jbGVhclF1ZXVlKCl7Zm9yKDt0aGlzLl9xdWV1ZS5sZW5ndGg+MDspdGhpcy5fcXVldWUucG9wKCkucmVqZWN0KG5ldyBzcigiUmVxdWVzdCBjYW5jZWxsZWQgYnkgY2xlYXJRdWV1ZSIpKX1hY3RpdmVSZXF1ZXN0cygpe3JldHVybiB0aGlzLl9uQWN0aXZlUmVxdWVzdHN9b3V0c3RhbmRpbmdSZXF1ZXN0cygpe3JldHVybiB0aGlzLl9uQWN0aXZlUmVxdWVzdHMrdGhpcy5fcXVldWUubGVuZ3RofWxhdW5jaFJlcXVlc3RzKCl7Zm9yKDt0aGlzLl9uQWN0aXZlUmVxdWVzdHM8dGhpcy5fblNpbXVsdGFuZW91c1JlcXVlc3RzJiZ0aGlzLl9xdWV1ZS5sZW5ndGg+MDspdGhpcy5fbkFjdGl2ZVJlcXVlc3RzKyssdGhpcy5fcXVldWUucG9wKCkucmVzb2x2ZSh2b2lkIDApfXByb21pc2VXaXRoUmV0cmllcyh0LGUsbil7cmV0dXJuIHRoaXMuX3Byb21pc2VGcm9tVXJsKHQsbikudGhlbigodD0+dCksKGk9PmU+MD90aGlzLnByb21pc2VXaXRoUmV0cmllcyh0LGUtMSxuKTpQcm9taXNlLnJlamVjdChpKSkpfV9wcm9taXNlRnJvbVVybCh0LGUpe3JldHVybiBuZXcgUHJvbWlzZSgoKG4saSk9Pntjb25zdCByPShmdW5jdGlvbiBvKHQsZSxuLGkpe2NvbnN0IHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiByLm9wZW4odCxlKSxuJiYoci53aXRoQ3JlZGVudGlhbHM9biksaSYmci5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGkpLHJ9KShlLm1ldGhvZFR5cGUsdCxlLndpdGhDcmVkZW50aWFscyxlLmNvbnRlbnRUeXBlKTtyLm9ubG9hZD1mdW5jdGlvbigpezIwMD09PXIuc3RhdHVzP24oSlNPTi5wYXJzZShyLnJlc3BvbnNlVGV4dCkpOmkobmV3IGNyKHIsdCkpfSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXtpKG5ldyBjcihyLHQpKX0sZS5ib2R5P3Iuc2VuZChlLmJvZHkpOnIuc2VuZCgpfSkpfX1jb25zdCBwcj0iZXhwZXJpbWVudGFsUGx1Z2luIixmcj1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2xldCBtcj1ncigpO2Z1bmN0aW9uIGdyKHQ9ImRhdGEiLGU9ZnIpe3JldHVybiIvIj09PXRbdC5sZW5ndGgtMV0mJih0PXQuc2xpY2UoMCx0Lmxlbmd0aC0xKSkse2Vudmlyb25tZW50OigpPT55cih0LCIvZW52aXJvbm1lbnQiKSxleHBlcmltZW50czooKT0+eXIodCwiL2V4cGVyaW1lbnRzIikscGx1Z2luUm91dGU6KGUsbixpKT0+eXIodCsiL3BsdWdpbiIsYC8ke2V9JHtufWAsaSkscGx1Z2luc0xpc3Rpbmc6KCk9PnlyKHQsIi9wbHVnaW5zX2xpc3RpbmciLHZyKHtbcHJdOmUuZ2V0QWxsKHByKX0pKSxydW5zOigpPT55cih0LCIvcnVucyIpLHJ1bnNGb3JFeHBlcmltZW50OmU9PnlyKHQsIi9leHBlcmltZW50X3J1bnMiLHZyKHtleHBlcmltZW50OlN0cmluZyhlKX0pKX19ZnVuY3Rpb24gX3IoKXtyZXR1cm4gbXJ9ZnVuY3Rpb24geXIodCxlLG49bmV3IFVSTFNlYXJjaFBhcmFtcyl7bGV0IGk9dCtlO3JldHVybiBTdHJpbmcobikmJihpKz0oZS5pbmNsdWRlcygiPyIpPyImIjoiPyIpK1N0cmluZyhuKSksaX1mdW5jdGlvbiB2cih0PXt9KXtjb25zdCBlPU9iamVjdC5rZXlzKHQpLnNvcnQoKS5maWx0ZXIoKGU9PnRbZV0pKSxuPW5ldyBVUkxTZWFyY2hQYXJhbXM7cmV0dXJuIGUuZm9yRWFjaCgoZT0+e2NvbnN0IGk9dFtlXTsoQXJyYXkuaXNBcnJheShpKT9pOltpXSkuZm9yRWFjaCgodD0+bi5hcHBlbmQoZSx0KSkpfSkpLG59dmFyIGJyO2Z1bmN0aW9uIHhyKHQsZSl7Y29uc3Qgbj0oKCk9Pnt0cnl7cmV0dXJuIG5ldyBSZWdFeHAoZSl9Y2F0Y2godCl7cmV0dXJuIG51bGx9fSkoKTtyZXR1cm57bmFtZTplLG1ldGFkYXRhOnt0eXBlOmJyLlNFQVJDSF9SRVNVTFRTLHZhbGlkUmVnZXg6ISFuLHVuaXZlcnNhbFJlZ2V4OiIuKiI9PT1lfSxpdGVtczpuP3QuZmlsdGVyKCh0PT50Lm1hdGNoKG4pKSk6W119fWZ1bmN0aW9uIHdyKHQsZSxuKXtjb25zdCBpPShmdW5jdGlvbiByKHQsZT0iIil7Y29uc3Qgbj1beHIodCxlKV0saT0oZnVuY3Rpb24gcih0LGU9Ii8iKXtjb25zdCBuPVtdLGk9e307cmV0dXJuIHQuZm9yRWFjaCgodD0+e2NvbnN0IHI9dC5pbmRleE9mKGUpLG89cj49MD90LnNsaWNlKDAscik6dDtpZighaVtvXSl7Y29uc3QgdD17bmFtZTpvLG1ldGFkYXRhOnt0eXBlOmJyLlBSRUZJWF9HUk9VUH0saXRlbXM6W119O2lbb109dCxuLnB1c2godCl9aVtvXS5pdGVtcy5wdXNoKHQpfSkpLG59KSh0KTtyZXR1cm5bXS5jb25jYXQobixpKX0pKGFyKHQpLG4pLG89KGZ1bmN0aW9uIGEodCl7Y29uc3QgZT1uZXcgTWFwO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChuPT57dFtuXS5mb3JFYWNoKCh0PT57Y29uc3QgaT1lLmdldCh0KXx8W107aS5wdXNoKG4pLGUuc2V0KHQsaSl9KSl9KSksZX0pKFNlLmV4cG9ydHMucGljayh0LGUpKTtyZXR1cm4gaS5tYXAoKCh7bmFtZTp0LG1ldGFkYXRhOmUsaXRlbXM6bn0pPT4oe25hbWU6dCxtZXRhZGF0YTplLGl0ZW1zOm4ubWFwKCh0PT4oe3RhZzp0LHJ1bnM6KG8uZ2V0KHQpfHxbXSkuc2xpY2UoKX0pKSl9KSkpfWZ1bmN0aW9uIFNyKHQsZSl7Y29uc3Qgbj1ucih0LnRhZyxlLnRhZyk7cmV0dXJuIDAhPW4/bjpucih0LnJ1bixlLnJ1bil9ZnVuY3Rpb24gTXIodCxlLG4pe3JldHVybiB3cih0LGUsbikubWFwKChmdW5jdGlvbiBpKHQpe2NvbnN0IGU9U2UuZXhwb3J0cy5mbGF0dGVuKHQuaXRlbXMubWFwKCgoe3RhZzp0LHJ1bnM6ZX0pPT5lLm1hcCgoZT0+KHt0YWc6dCxydW46ZX0pKSkpKSk7cmV0dXJuIGUuc29ydChTcikse25hbWU6dC5uYW1lLG1ldGFkYXRhOnQubWV0YWRhdGEsaXRlbXM6ZX19KSl9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovIShmdW5jdGlvbih0KXt0W3QuU0VBUkNIX1JFU1VMVFM9MF09IlNFQVJDSF9SRVNVTFRTIix0W3QuUFJFRklYX0dST1VQPTFdPSJQUkVGSVhfR1JPVVAifSkoYnJ8fChicj17fSkpO2NvbnN0IEVyPXthdHRhY2hlZDohMCxkZXRhY2hlZDohMCxyZWFkeTohMCxjcmVhdGVkOiEwLGJlZm9yZVJlZ2lzdGVyOiEwLHJlZ2lzdGVyZWQ6ITAsYXR0cmlidXRlQ2hhbmdlZDohMCxsaXN0ZW5lcnM6ITAsaG9zdEF0dHJpYnV0ZXM6ITB9LFRyPXthdHRhY2hlZDohMCxkZXRhY2hlZDohMCxyZWFkeTohMCxjcmVhdGVkOiEwLGJlZm9yZVJlZ2lzdGVyOiEwLHJlZ2lzdGVyZWQ6ITAsYXR0cmlidXRlQ2hhbmdlZDohMCxiZWhhdmlvcnM6ITAsX25vQWNjZXNzb3JzOiEwfSxDcj1PYmplY3QuYXNzaWduKHtsaXN0ZW5lcnM6ITAsaG9zdEF0dHJpYnV0ZXM6ITAscHJvcGVydGllczohMCxvYnNlcnZlcnM6ITB9LFRyKTtmdW5jdGlvbiBBcih0LGUsbixpKXshKGZ1bmN0aW9uIHIodCxlLG4pe2NvbnN0IGk9dC5fbm9BY2Nlc3NvcnMscj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KTtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rKyl7bGV0IGE9cltvXTtpZighKGEgaW4gbikpaWYoaSllW2FdPXRbYV07ZWxzZXtsZXQgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsYSk7biYmKG4uY29uZmlndXJhYmxlPSEwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGEsbikpfX19KShlLHQsaSk7Zm9yKGxldCB0IGluIEVyKWVbdF0mJihuW3RdPW5bdF18fFtdLG5bdF0ucHVzaChlW3RdKSl9ZnVuY3Rpb24ga3IodCxlLG4pe2U9ZXx8W107Zm9yKGxldCBpPXQubGVuZ3RoLTE7aT49MDtpLS0pe2xldCByPXRbaV07cj9BcnJheS5pc0FycmF5KHIpP2tyKHIsZSk6ZS5pbmRleE9mKHIpPDAmJighbnx8bi5pbmRleE9mKHIpPDApJiZlLnVuc2hpZnQocik6Y29uc29sZS53YXJuKCJiZWhhdmlvciBpcyBudWxsLCBjaGVjayBmb3IgbWlzc2luZyBvciA0MDQgaW1wb3J0Iil9cmV0dXJuIGV9ZnVuY3Rpb24gTHIodCxlKXtmb3IoY29uc3QgbiBpbiBlKXtjb25zdCBpPXRbbl0scj1lW25dO3Rbbl09ISgidmFsdWUiaW4gcikmJmkmJiJ2YWx1ZSJpbiBpP09iamVjdC5hc3NpZ24oe3ZhbHVlOmkudmFsdWV9LHIpOnJ9fWNvbnN0IFByPWVyKEhUTUxFbGVtZW50KTtmdW5jdGlvbiBOcih0LGUsbil7bGV0IGk7Y29uc3Qgcj17fTtjbGFzcyBvIGV4dGVuZHMgZXtzdGF0aWMgX2ZpbmFsaXplQ2xhc3MoKXtpZih0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoImdlbmVyYXRlZEZyb20iLHRoaXMpKSl7aWYoaSlmb3IobGV0IHQsZT0wO2U8aS5sZW5ndGg7ZSsrKXQ9aVtlXSx0LnByb3BlcnRpZXMmJnRoaXMuY3JlYXRlUHJvcGVydGllcyh0LnByb3BlcnRpZXMpLHQub2JzZXJ2ZXJzJiZ0aGlzLmNyZWF0ZU9ic2VydmVycyh0Lm9ic2VydmVycyx0LnByb3BlcnRpZXMpO3QucHJvcGVydGllcyYmdGhpcy5jcmVhdGVQcm9wZXJ0aWVzKHQucHJvcGVydGllcyksdC5vYnNlcnZlcnMmJnRoaXMuY3JlYXRlT2JzZXJ2ZXJzKHQub2JzZXJ2ZXJzLHQucHJvcGVydGllcyksdGhpcy5fcHJlcGFyZVRlbXBsYXRlKCl9ZWxzZSBlLl9maW5hbGl6ZUNsYXNzLmNhbGwodGhpcyl9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7Y29uc3QgZT17fTtpZihpKWZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKUxyKGUsaVt0XS5wcm9wZXJ0aWVzKTtyZXR1cm4gTHIoZSx0LnByb3BlcnRpZXMpLGV9c3RhdGljIGdldCBvYnNlcnZlcnMoKXtsZXQgZT1bXTtpZihpKWZvcihsZXQgdCxuPTA7bjxpLmxlbmd0aDtuKyspdD1pW25dLHQub2JzZXJ2ZXJzJiYoZT1lLmNvbmNhdCh0Lm9ic2VydmVycykpO3JldHVybiB0Lm9ic2VydmVycyYmKGU9ZS5jb25jYXQodC5vYnNlcnZlcnMpKSxlfWNyZWF0ZWQoKXtzdXBlci5jcmVhdGVkKCk7Y29uc3QgdD1yLmNyZWF0ZWQ7aWYodClmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmNhbGwodGhpcyl9X3JlZ2lzdGVyZWQoKXtjb25zdCB0PW8ucHJvdG90eXBlO2lmKCF0Lmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9faGFzUmVnaXN0ZXJGaW5pc2hlZCIsdCkpKXt0Ll9faGFzUmVnaXN0ZXJGaW5pc2hlZD0hMCxzdXBlci5fcmVnaXN0ZXJlZCgpLHcmJmEodCk7Y29uc3QgZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk7bGV0IG49ci5iZWZvcmVSZWdpc3RlcjtpZihuKWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKW5bdF0uY2FsbChlKTtpZihuPXIucmVnaXN0ZXJlZCxuKWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKW5bdF0uY2FsbChlKX19X2FwcGx5TGlzdGVuZXJzKCl7c3VwZXIuX2FwcGx5TGlzdGVuZXJzKCk7Y29uc3QgdD1yLmxpc3RlbmVycztpZih0KWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCBuPXRbZV07aWYobilmb3IobGV0IHQgaW4gbil0aGlzLl9hZGRNZXRob2RFdmVudExpc3RlbmVyVG9Ob2RlKHRoaXMsdCxuW3RdKX19X2Vuc3VyZUF0dHJpYnV0ZXMoKXtjb25zdCB0PXIuaG9zdEF0dHJpYnV0ZXM7aWYodClmb3IobGV0IGU9dC5sZW5ndGgtMTtlPj0wO2UtLSl7Y29uc3Qgbj10W2VdO2ZvcihsZXQgdCBpbiBuKXRoaXMuX2Vuc3VyZUF0dHJpYnV0ZSh0LG5bdF0pfXN1cGVyLl9lbnN1cmVBdHRyaWJ1dGVzKCl9cmVhZHkoKXtzdXBlci5yZWFkeSgpO2xldCB0PXIucmVhZHk7aWYodClmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmNhbGwodGhpcyl9YXR0YWNoZWQoKXtzdXBlci5hdHRhY2hlZCgpO2xldCB0PXIuYXR0YWNoZWQ7aWYodClmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmNhbGwodGhpcyl9ZGV0YWNoZWQoKXtzdXBlci5kZXRhY2hlZCgpO2xldCB0PXIuZGV0YWNoZWQ7aWYodClmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmNhbGwodGhpcyl9YXR0cmlidXRlQ2hhbmdlZCh0LGUsbil7c3VwZXIuYXR0cmlidXRlQ2hhbmdlZCgpO2xldCBpPXIuYXR0cmlidXRlQ2hhbmdlZDtpZihpKWZvcihsZXQgcj0wO3I8aS5sZW5ndGg7cisrKWlbcl0uY2FsbCh0aGlzLHQsZSxuKX19aWYobil7QXJyYXkuaXNBcnJheShuKXx8KG49W25dKTtsZXQgdD1lLnByb3RvdHlwZS5iZWhhdmlvcnM7aT1rcihuLG51bGwsdCksby5wcm90b3R5cGUuYmVoYXZpb3JzPXQ/dC5jb25jYXQobik6aX1jb25zdCBhPWU9PntpJiYoZnVuY3Rpb24gbih0LGUsaSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspQXIodCxlW25dLGksQ3IpfSkoZSxpLHIpLEFyKGUsdCxyLFRyKX07cmV0dXJuIHd8fGEoby5wcm90b3R5cGUpLG8uZ2VuZXJhdGVkRnJvbT10LG99Y29uc3QgSXI9ZnVuY3Rpb24odCxlKXt0fHxjb25zb2xlLndhcm4oIlBvbHltZXIuQ2xhc3MgcmVxdWlyZXMgYGluZm9gIGFyZ3VtZW50Iik7bGV0IG49ZT9lKFByKTpQcjtyZXR1cm4gbj1Ocih0LG4sdC5iZWhhdmlvcnMpLG4uaXM9bi5wcm90b3R5cGUuaXM9dC5pcyxufSxScj1mdW5jdGlvbih0KXtsZXQgZTtyZXR1cm4gZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlJyLkNsYXNzKHQpLHQuX2xlZ2FjeUZvcmNlT2JzZXJ2ZWRBdHRyaWJ1dGVzJiYoZS5wcm90b3R5cGUuX2xlZ2FjeUZvcmNlT2JzZXJ2ZWRBdHRyaWJ1dGVzPXQuX2xlZ2FjeUZvcmNlT2JzZXJ2ZWRBdHRyaWJ1dGVzKSxjdXN0b21FbGVtZW50cy5kZWZpbmUoZS5pcyxlKSxlfTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KZnVuY3Rpb24gT3IodCxlLG4saSxyKXtsZXQgbztyJiYobz0ib2JqZWN0Ij09dHlwZW9mIG4mJm51bGwhPT1uLG8mJihpPXQuX19kYXRhVGVtcFtlXSkpO2xldCBhPWkhPT1uJiYoaT09aXx8bj09bik7cmV0dXJuIG8mJmEmJih0Ll9fZGF0YVRlbXBbZV09biksYX1Sci5DbGFzcz1Jcjtjb25zdCB6cj1JKCh0PT5jbGFzcyBleHRlbmRzIHR7X3Nob3VsZFByb3BlcnR5Q2hhbmdlKHQsZSxuKXtyZXR1cm4gT3IodGhpcyx0LGUsbiwhMCl9fSkpLERyPUkoKHQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57bXV0YWJsZURhdGE6Qm9vbGVhbn19X3Nob3VsZFByb3BlcnR5Q2hhbmdlKHQsZSxuKXtyZXR1cm4gT3IodGhpcyx0LGUsbix0aGlzLm11dGFibGVEYXRhKX19KSk7enIuX211dGFibGVQcm9wZXJ0eUNoYW5nZT1PcjsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KbGV0IEJyPW51bGw7ZnVuY3Rpb24gSHIoKXtyZXR1cm4gQnJ9SHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSFRNTFRlbXBsYXRlRWxlbWVudC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpIcix3cml0YWJsZTohMH19KTtjb25zdCBGcj1oZShIciksVnI9enIoRnIpLFVyPWhlKGNsYXNze30pO2Z1bmN0aW9uIGpyKHQsZSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2xldCBpPWVbbl07aWYoQm9vbGVhbih0KSE9Qm9vbGVhbihpLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fXykpaWYoaS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXQ/KGkuX19wb2x5bWVyVGV4dENvbnRlbnRfXz1pLnRleHRDb250ZW50LGkudGV4dENvbnRlbnQ9IiIpOmkudGV4dENvbnRlbnQ9aS5fX3BvbHltZXJUZXh0Q29udGVudF9fO2Vsc2UgaWYoInNsb3QiPT09aS5sb2NhbE5hbWUpaWYodClpLl9fcG9seW1lclJlcGxhY2VkX189ZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiaGlkZGVuLXNsb3QiKSxZKFkoaSkucGFyZW50Tm9kZSkucmVwbGFjZUNoaWxkKGkuX19wb2x5bWVyUmVwbGFjZWRfXyxpKTtlbHNle2NvbnN0IHQ9aS5fX3BvbHltZXJSZXBsYWNlZF9fO3QmJlkoWSh0KS5wYXJlbnROb2RlKS5yZXBsYWNlQ2hpbGQoaSx0KX1lbHNlIGkuc3R5bGUmJih0PyhpLl9fcG9seW1lckRpc3BsYXlfXz1pLnN0eWxlLmRpc3BsYXksaS5zdHlsZS5kaXNwbGF5PSJub25lIik6aS5zdHlsZS5kaXNwbGF5PWkuX19wb2x5bWVyRGlzcGxheV9fKTtpLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fXz10LGkuX3Nob3dIaWRlQ2hpbGRyZW4mJmkuX3Nob3dIaWRlQ2hpbGRyZW4odCl9fWNsYXNzIEdyIGV4dGVuZHMgVXJ7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9jb25maWd1cmVQcm9wZXJ0aWVzKHQpLHRoaXMucm9vdD10aGlzLl9zdGFtcFRlbXBsYXRlKHRoaXMuX19kYXRhSG9zdCk7bGV0IGU9W107dGhpcy5jaGlsZHJlbj1lO2ZvcihsZXQgdD10aGlzLnJvb3QuZmlyc3RDaGlsZDt0O3Q9dC5uZXh0U2libGluZyllLnB1c2godCksdC5fX3RlbXBsYXRpemVJbnN0YW5jZT10aGlzO3RoaXMuX190ZW1wbGF0aXplT3duZXImJnRoaXMuX190ZW1wbGF0aXplT3duZXIuX19oaWRlVGVtcGxhdGVDaGlsZHJlbl9fJiZ0aGlzLl9zaG93SGlkZUNoaWxkcmVuKCEwKTtsZXQgbj10aGlzLl9fdGVtcGxhdGl6ZU9wdGlvbnM7KHQmJm4uaW5zdGFuY2VQcm9wc3x8IW4uaW5zdGFuY2VQcm9wcykmJnRoaXMuX2VuYWJsZVByb3BlcnRpZXMoKX1fY29uZmlndXJlUHJvcGVydGllcyh0KXtpZih0aGlzLl9fdGVtcGxhdGl6ZU9wdGlvbnMuZm9yd2FyZEhvc3RQcm9wKWZvcihsZXQgdCBpbiB0aGlzLl9faG9zdFByb3BzKXRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eSh0LHRoaXMuX19kYXRhSG9zdFsiX2hvc3RfIit0XSk7Zm9yKGxldCBlIGluIHQpdGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5KGUsdFtlXSl9Zm9yd2FyZEhvc3RQcm9wKHQsZSl7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5T3JQYXRoKHQsZSwhMSwhMCkmJnRoaXMuX19kYXRhSG9zdC5fZW5xdWV1ZUNsaWVudCh0aGlzKX1fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0LGUsbil7aWYodGhpcy5fbWV0aG9kSG9zdCYmdGhpcy5fX3RlbXBsYXRpemVPcHRpb25zLnBhcmVudE1vZGVsKXRoaXMuX21ldGhvZEhvc3QuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodCxlLCh0PT57dC5tb2RlbD10aGlzLG4odCl9KSk7ZWxzZXtsZXQgaT10aGlzLl9fZGF0YUhvc3QuX19kYXRhSG9zdDtpJiZpLl9hZGRFdmVudExpc3RlbmVyVG9Ob2RlKHQsZSxuKX19X3Nob3dIaWRlQ2hpbGRyZW4odCl7anIodCx0aGlzLmNoaWxkcmVuKX1fc2V0VW5tYW5hZ2VkUHJvcGVydHlUb05vZGUodCxlLG4pe3QuX19oaWRlVGVtcGxhdGVDaGlsZHJlbl9fJiZ0Lm5vZGVUeXBlPT1Ob2RlLlRFWFRfTk9ERSYmInRleHRDb250ZW50Ij09ZT90Ll9fcG9seW1lclRleHRDb250ZW50X189bjpzdXBlci5fc2V0VW5tYW5hZ2VkUHJvcGVydHlUb05vZGUodCxlLG4pfWdldCBwYXJlbnRNb2RlbCgpe2xldCB0PXRoaXMuX19wYXJlbnRNb2RlbDtpZighdCl7bGV0IGU7dD10aGlzO2Rve3Q9dC5fX2RhdGFIb3N0Ll9fZGF0YUhvc3R9d2hpbGUoKGU9dC5fX3RlbXBsYXRpemVPcHRpb25zKSYmIWUucGFyZW50TW9kZWwpO3RoaXMuX19wYXJlbnRNb2RlbD10fXJldHVybiB0fWRpc3BhdGNoRXZlbnQodCl7cmV0dXJuITB9fWNvbnN0IFdyPXpyKEdyKTtmdW5jdGlvbiBxcih0KXtsZXQgZT10Ll9fZGF0YUhvc3Q7cmV0dXJuIGUmJmUuX21ldGhvZEhvc3R8fGV9ZnVuY3Rpb24gWXIodCxlKXtyZXR1cm4gZnVuY3Rpb24gdChuLGkscil7ZS5jYWxsKG4uX190ZW1wbGF0aXplT3duZXIsaS5zdWJzdHJpbmcoIl9ob3N0XyIubGVuZ3RoKSxyW2ldKX19ZnVuY3Rpb24gWHIodCxlKXtyZXR1cm4gZnVuY3Rpb24gdChuLGkscil7ZS5jYWxsKG4uX190ZW1wbGF0aXplT3duZXIsbixpLHJbaV0pfX1mdW5jdGlvbiAkcih0LGUsbil7aWYoYiYmIXFyKHQpKXRocm93IG5ldyBFcnJvcigic3RyaWN0VGVtcGxhdGVQb2xpY3k6IHRlbXBsYXRlIG93bmVyIG5vdCB0cnVzdGVkIik7aWYobj1ufHx7fSx0Ll9fdGVtcGxhdGl6ZU93bmVyKXRocm93IG5ldyBFcnJvcigiQSA8dGVtcGxhdGU+IGNhbiBvbmx5IGJlIHRlbXBsYXRpemVkIG9uY2UiKTt0Ll9fdGVtcGxhdGl6ZU93bmVyPWU7bGV0IGk9KGU/ZS5jb25zdHJ1Y3RvcjpHcikuX3BhcnNlVGVtcGxhdGUodCkscj1pLnRlbXBsYXRpemVJbnN0YW5jZUNsYXNzO3J8fChyPShmdW5jdGlvbiBvKHQsZSxuKXtsZXQgaT1uLm11dGFibGVEYXRhP1dyOkdyOyRyLm1peGluJiYoaT0kci5taXhpbihpKSk7bGV0IHI9Y2xhc3MgZXh0ZW5kcyBpe307cmV0dXJuIHIucHJvdG90eXBlLl9fdGVtcGxhdGl6ZU9wdGlvbnM9bixyLnByb3RvdHlwZS5fYmluZFRlbXBsYXRlKHQpLChmdW5jdGlvbiBvKHQsZSxuLGkpe2xldCByPW4uaG9zdFByb3BzfHx7fTtmb3IobGV0IGUgaW4gaS5pbnN0YW5jZVByb3BzKXtkZWxldGUgcltlXTtsZXQgbj1pLm5vdGlmeUluc3RhbmNlUHJvcDtuJiZ0LnByb3RvdHlwZS5fYWRkUHJvcGVydHlFZmZlY3QoZSx0LnByb3RvdHlwZS5QUk9QRVJUWV9FRkZFQ1RfVFlQRVMuTk9USUZZLHtmbjpYcigwLG4pfSl9aWYoaS5mb3J3YXJkSG9zdFByb3AmJmUuX19kYXRhSG9zdClmb3IobGV0IGUgaW4gciluLmhhc0hvc3RQcm9wc3x8KG4uaGFzSG9zdFByb3BzPSEwKSx0LnByb3RvdHlwZS5fYWRkUHJvcGVydHlFZmZlY3QoZSx0LnByb3RvdHlwZS5QUk9QRVJUWV9FRkZFQ1RfVFlQRVMuTk9USUZZLHtmbjpmdW5jdGlvbiB0KGUsbixpKXtlLl9fZGF0YUhvc3QuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aCgiX2hvc3RfIituLGlbbl0sITAsITApfX0pfSkocix0LGUsbikscn0pKHQsaSxuKSxpLnRlbXBsYXRpemVJbnN0YW5jZUNsYXNzPXIpO2NvbnN0IGE9cXIodCk7IShmdW5jdGlvbiBzKHQsZSxuLGkpe2xldCByPW4uZm9yd2FyZEhvc3RQcm9wO2lmKHImJmUuaGFzSG9zdFByb3BzKXtjb25zdCBvPSJ0ZW1wbGF0ZSI9PXQubG9jYWxOYW1lO2xldCBhPWUudGVtcGxhdGl6ZVRlbXBsYXRlQ2xhc3M7aWYoIWEpe2lmKG8pe2xldCB0PW4ubXV0YWJsZURhdGE/VnI6RnI7Y2xhc3MgaSBleHRlbmRzIHR7fWE9ZS50ZW1wbGF0aXplVGVtcGxhdGVDbGFzcz1pfWVsc2V7Y29uc3Qgbj10LmNvbnN0cnVjdG9yO2NsYXNzIGkgZXh0ZW5kcyBue31hPWUudGVtcGxhdGl6ZVRlbXBsYXRlQ2xhc3M9aX1sZXQgcz1lLmhvc3RQcm9wcztmb3IobGV0IHQgaW4gcylhLnByb3RvdHlwZS5fYWRkUHJvcGVydHlFZmZlY3QoIl9ob3N0XyIrdCxhLnByb3RvdHlwZS5QUk9QRVJUWV9FRkZFQ1RfVFlQRVMuUFJPUEFHQVRFLHtmbjpZcigwLHIpfSksYS5wcm90b3R5cGUuX2NyZWF0ZU5vdGlmeWluZ1Byb3BlcnR5KCJfaG9zdF8iK3QpO1MmJmkmJihmdW5jdGlvbiBvKHQsZSxuKXtjb25zdCBpPW4uY29uc3RydWN0b3IuX3Byb3BlcnRpZXMse3Byb3BlcnR5RWZmZWN0czpyfT10LHtpbnN0YW5jZVByb3BzOm99PWU7Zm9yKGxldCB0IGluIHIpaWYoIShpW3RdfHxvJiZvW3RdKSl7Y29uc3QgZT1yW3RdO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXtjb25zdHtwYXJ0Oml9PWVbbl0uaW5mbztpZighaS5zaWduYXR1cmV8fCFpLnNpZ25hdHVyZS5zdGF0aWMpe2NvbnNvbGUud2FybihgUHJvcGVydHkgJyR7dH0nIHVzZWQgaW4gdGVtcGxhdGUgYnV0IG5vdCBkZWNsYXJlZCBpbiAncHJvcGVydGllcyc7IGF0dHJpYnV0ZSB3aWxsIG5vdCBiZSBvYnNlcnZlZC5gKTticmVha319fX0pKGUsbixpKX1pZih0Ll9fZGF0YVByb3RvJiZPYmplY3QuYXNzaWduKHQuX19kYXRhLHQuX19kYXRhUHJvdG8pLG8pIShmdW5jdGlvbiBhKHQsZSl7QnI9dCxPYmplY3Quc2V0UHJvdG90eXBlT2YodCxlLnByb3RvdHlwZSksbmV3IGUsQnI9bnVsbH0pKHQsYSksdC5fX2RhdGFUZW1wPXt9LHQuX19kYXRhUGVuZGluZz1udWxsLHQuX19kYXRhT2xkPW51bGwsdC5fZW5hYmxlUHJvcGVydGllcygpO2Vsc2V7T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsYS5wcm90b3R5cGUpO2NvbnN0IG49ZS5ob3N0UHJvcHM7Zm9yKGxldCBlIGluIG4paWYoZT0iX2hvc3RfIitlLGUgaW4gdCl7Y29uc3Qgbj10W2VdO2RlbGV0ZSB0W2VdLHQuX19kYXRhW2VdPW59fX19KSh0LGksbixhKTtsZXQgbD1jbGFzcyBleHRlbmRzIHJ7fTtyZXR1cm4gbC5wcm90b3R5cGUuX21ldGhvZEhvc3Q9YSxsLnByb3RvdHlwZS5fX2RhdGFIb3N0PXQsbC5wcm90b3R5cGUuX190ZW1wbGF0aXplT3duZXI9ZSxsLnByb3RvdHlwZS5fX2hvc3RQcm9wcz1pLmhvc3RQcm9wcyxsPWwsbH1mdW5jdGlvbiBLcih0LGUpe2xldCBuO2Zvcig7ZTspaWYobj1lLl9fZGF0YUhvc3Q/ZTplLl9fdGVtcGxhdGl6ZUluc3RhbmNlKXtpZihuLl9fZGF0YUhvc3Q9PXQpcmV0dXJuIG47ZT1uLl9fZGF0YUhvc3R9ZWxzZSBlPVkoZSkucGFyZW50Tm9kZTtyZXR1cm4gbnVsbH0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jb25zdCBacj17dGVtcGxhdGl6ZSh0LGUpe3RoaXMuX3RlbXBsYXRpemVyVGVtcGxhdGU9dCx0aGlzLmN0b3I9JHIodCx0aGlzLHttdXRhYmxlRGF0YTpCb29sZWFuKGUpLHBhcmVudE1vZGVsOnRoaXMuX3BhcmVudE1vZGVsLGluc3RhbmNlUHJvcHM6dGhpcy5faW5zdGFuY2VQcm9wcyxmb3J3YXJkSG9zdFByb3A6dGhpcy5fZm9yd2FyZEhvc3RQcm9wVjIsbm90aWZ5SW5zdGFuY2VQcm9wOnRoaXMuX25vdGlmeUluc3RhbmNlUHJvcFYyfSl9LHN0YW1wKHQpe3JldHVybiBuZXcgdGhpcy5jdG9yKHQpfSxtb2RlbEZvckVsZW1lbnQodCl7cmV0dXJuIEtyKHRoaXMuX3RlbXBsYXRpemVyVGVtcGxhdGUsdCl9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9sZXQgSnI9ITE7ZnVuY3Rpb24gUXIoKXtpZih3JiYhbSl7aWYoIUpyKXtKcj0hMDtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7dC50ZXh0Q29udGVudD0iZG9tLWJpbmQsZG9tLWlmLGRvbS1yZXBlYXR7ZGlzcGxheTpub25lO30iLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCl9cmV0dXJuITB9cmV0dXJuITF9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovY29uc3QgdG89cGkoRHIoaGUoSFRNTEVsZW1lbnQpKSk7Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJkb20tYmluZCIsY2xhc3MgZXh0ZW5kcyB0b3tzdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVyblsibXV0YWJsZS1kYXRhIl19Y29uc3RydWN0b3IoKXtpZihzdXBlcigpLGIpdGhyb3cgbmV3IEVycm9yKCJzdHJpY3RUZW1wbGF0ZVBvbGljeTogZG9tLWJpbmQgbm90IGFsbG93ZWQiKTt0aGlzLnJvb3Q9bnVsbCx0aGlzLiQ9bnVsbCx0aGlzLl9fY2hpbGRyZW49bnVsbH1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4saSl7dGhpcy5tdXRhYmxlRGF0YT0hMH1jb25uZWN0ZWRDYWxsYmFjaygpe1FyKCl8fCh0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlzLnJlbmRlcigpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fX3JlbW92ZUNoaWxkcmVuKCl9X19pbnNlcnRDaGlsZHJlbigpe1koWSh0aGlzKS5wYXJlbnROb2RlKS5pbnNlcnRCZWZvcmUodGhpcy5yb290LHRoaXMpfV9fcmVtb3ZlQ2hpbGRyZW4oKXtpZih0aGlzLl9fY2hpbGRyZW4pZm9yKGxldCB0PTA7dDx0aGlzLl9fY2hpbGRyZW4ubGVuZ3RoO3QrKyl0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy5fX2NoaWxkcmVuW3RdKX1yZW5kZXIoKXtsZXQgdDtpZighdGhpcy5fX2NoaWxkcmVuKXtpZih0PXR8fHRoaXMucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKSwhdCl7bGV0IGU9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCgpPT57aWYodD10aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIiksIXQpdGhyb3cgbmV3IEVycm9yKCJkb20tYmluZCByZXF1aXJlcyBhIDx0ZW1wbGF0ZT4gY2hpbGQiKTtlLmRpc2Nvbm5lY3QoKSx0aGlzLnJlbmRlcigpfSkpO3JldHVybiB2b2lkIGUub2JzZXJ2ZSh0aGlzLHtjaGlsZExpc3Q6ITB9KX10aGlzLnJvb3Q9dGhpcy5fc3RhbXBUZW1wbGF0ZSh0KSx0aGlzLiQ9dGhpcy5yb290LiQsdGhpcy5fX2NoaWxkcmVuPVtdO2ZvcihsZXQgdD10aGlzLnJvb3QuZmlyc3RDaGlsZDt0O3Q9dC5uZXh0U2libGluZyl0aGlzLl9fY2hpbGRyZW5bdGhpcy5fX2NoaWxkcmVuLmxlbmd0aF09dDt0aGlzLl9lbmFibGVQcm9wZXJ0aWVzKCl9dGhpcy5fX2luc2VydENoaWxkcmVuKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZG9tLWNoYW5nZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IGVvPURyKHllKTtjbGFzcyBubyBleHRlbmRzIGVve3N0YXRpYyBnZXQgaXMoKXtyZXR1cm4iZG9tLXJlcGVhdCJ9c3RhdGljIGdldCB0ZW1wbGF0ZSgpe3JldHVybiBudWxsfXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntpdGVtczp7dHlwZTpBcnJheX0sYXM6e3R5cGU6U3RyaW5nLHZhbHVlOiJpdGVtIn0saW5kZXhBczp7dHlwZTpTdHJpbmcsdmFsdWU6ImluZGV4In0saXRlbXNJbmRleEFzOnt0eXBlOlN0cmluZyx2YWx1ZToiaXRlbXNJbmRleCJ9LHNvcnQ6e3R5cGU6RnVuY3Rpb24sb2JzZXJ2ZXI6Il9fc29ydENoYW5nZWQifSxmaWx0ZXI6e3R5cGU6RnVuY3Rpb24sb2JzZXJ2ZXI6Il9fZmlsdGVyQ2hhbmdlZCJ9LG9ic2VydmU6e3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfX29ic2VydmVDaGFuZ2VkIn0sZGVsYXk6TnVtYmVyLHJlbmRlcmVkSXRlbUNvdW50Ont0eXBlOk51bWJlcixub3RpZnk6IWsscmVhZE9ubHk6ITB9LGluaXRpYWxDb3VudDp7dHlwZTpOdW1iZXJ9LHRhcmdldEZyYW1lcmF0ZTp7dHlwZTpOdW1iZXIsdmFsdWU6MjB9LF90YXJnZXRGcmFtZVRpbWU6e3R5cGU6TnVtYmVyLGNvbXB1dGVkOiJfX2NvbXB1dGVGcmFtZVRpbWUodGFyZ2V0RnJhbWVyYXRlKSJ9LG5vdGlmeURvbUNoYW5nZTp7dHlwZTpCb29sZWFufSxyZXVzZUNodW5rZWRJbnN0YW5jZXM6e3R5cGU6Qm9vbGVhbn19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfX2l0ZW1zQ2hhbmdlZChpdGVtcy4qKSJdfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9faW5zdGFuY2VzPVtdLHRoaXMuX19yZW5kZXJEZWJvdW5jZXI9bnVsbCx0aGlzLl9faXRlbXNJZHhUb0luc3RJZHg9e30sdGhpcy5fX2NodW5rQ291bnQ9bnVsbCx0aGlzLl9fcmVuZGVyU3RhcnRUaW1lPW51bGwsdGhpcy5fX2l0ZW1zQXJyYXlDaGFuZ2VkPSExLHRoaXMuX19zaG91bGRNZWFzdXJlQ2h1bms9ITEsdGhpcy5fX3Nob3VsZENvbnRpbnVlQ2h1bmtpbmc9ITEsdGhpcy5fX2NodW5raW5nSWQ9MCx0aGlzLl9fc29ydEZuPW51bGwsdGhpcy5fX2ZpbHRlckZuPW51bGwsdGhpcy5fX29ic2VydmVQYXRocz1udWxsLHRoaXMuX19jdG9yPW51bGwsdGhpcy5fX2lzRGV0YWNoZWQ9ITAsdGhpcy50ZW1wbGF0ZT1udWxsfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9faXNEZXRhY2hlZD0hMDtmb3IobGV0IHQ9MDt0PHRoaXMuX19pbnN0YW5jZXMubGVuZ3RoO3QrKyl0aGlzLl9fZGV0YWNoSW5zdGFuY2UodCl9Y29ubmVjdGVkQ2FsbGJhY2soKXtpZihzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLFFyKCl8fCh0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlzLl9faXNEZXRhY2hlZCl7dGhpcy5fX2lzRGV0YWNoZWQ9ITE7bGV0IHQ9WShZKHRoaXMpLnBhcmVudE5vZGUpO2ZvcihsZXQgZT0wO2U8dGhpcy5fX2luc3RhbmNlcy5sZW5ndGg7ZSsrKXRoaXMuX19hdHRhY2hJbnN0YW5jZShlLHQpfX1fX2Vuc3VyZVRlbXBsYXRpemVkKCl7aWYoIXRoaXMuX19jdG9yKXtjb25zdCB0PXRoaXM7bGV0IGU9dGhpcy50ZW1wbGF0ZT10Ll90ZW1wbGF0ZUluZm8/dDp0aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIik7aWYoIWUpe2xldCB0PW5ldyBNdXRhdGlvbk9ic2VydmVyKCgoKT0+e2lmKCF0aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIikpdGhyb3cgbmV3IEVycm9yKCJkb20tcmVwZWF0IHJlcXVpcmVzIGEgPHRlbXBsYXRlPiBjaGlsZCIpO3QuZGlzY29ubmVjdCgpLHRoaXMuX19yZW5kZXIoKX0pKTtyZXR1cm4gdC5vYnNlcnZlKHRoaXMse2NoaWxkTGlzdDohMH0pLCExfWxldCBuPXt9O25bdGhpcy5hc109ITAsblt0aGlzLmluZGV4QXNdPSEwLG5bdGhpcy5pdGVtc0luZGV4QXNdPSEwLHRoaXMuX19jdG9yPSRyKGUsdGhpcyx7bXV0YWJsZURhdGE6dGhpcy5tdXRhYmxlRGF0YSxwYXJlbnRNb2RlbDohMCxpbnN0YW5jZVByb3BzOm4sZm9yd2FyZEhvc3RQcm9wOmZ1bmN0aW9uKHQsZSl7bGV0IG49dGhpcy5fX2luc3RhbmNlcztmb3IobGV0IGkscj0wO3I8bi5sZW5ndGgmJihpPW5bcl0pO3IrKylpLmZvcndhcmRIb3N0UHJvcCh0LGUpfSxub3RpZnlJbnN0YW5jZVByb3A6ZnVuY3Rpb24odCxlLG4pe2lmKFEodGhpcy5hcyxlKSl7bGV0IGk9dFt0aGlzLml0ZW1zSW5kZXhBc107ZT09dGhpcy5hcyYmKHRoaXMuaXRlbXNbaV09bik7bGV0IHI9Sih0aGlzLmFzLGAke0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKX0uJHtpfWAsZSk7dGhpcy5ub3RpZnlQYXRoKHIsbil9fX0pfXJldHVybiEwfV9fZ2V0TWV0aG9kSG9zdCgpe3JldHVybiB0aGlzLl9fZGF0YUhvc3QuX21ldGhvZEhvc3R8fHRoaXMuX19kYXRhSG9zdH1fX2Z1bmN0aW9uRnJvbVByb3BlcnR5VmFsdWUodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtsZXQgZT10LG49dGhpcy5fX2dldE1ldGhvZEhvc3QoKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbltlXS5hcHBseShuLGFyZ3VtZW50cyl9fXJldHVybiB0fV9fc29ydENoYW5nZWQodCl7dGhpcy5fX3NvcnRGbj10aGlzLl9fZnVuY3Rpb25Gcm9tUHJvcGVydHlWYWx1ZSh0KSx0aGlzLml0ZW1zJiZ0aGlzLl9fZGVib3VuY2VSZW5kZXIodGhpcy5fX3JlbmRlcil9X19maWx0ZXJDaGFuZ2VkKHQpe3RoaXMuX19maWx0ZXJGbj10aGlzLl9fZnVuY3Rpb25Gcm9tUHJvcGVydHlWYWx1ZSh0KSx0aGlzLml0ZW1zJiZ0aGlzLl9fZGVib3VuY2VSZW5kZXIodGhpcy5fX3JlbmRlcil9X19jb21wdXRlRnJhbWVUaW1lKHQpe3JldHVybiBNYXRoLmNlaWwoMWUzL3QpfV9fb2JzZXJ2ZUNoYW5nZWQoKXt0aGlzLl9fb2JzZXJ2ZVBhdGhzPXRoaXMub2JzZXJ2ZSYmdGhpcy5vYnNlcnZlLnJlcGxhY2UoIi4qIiwiLiIpLnNwbGl0KCIgIil9X19oYW5kbGVPYnNlcnZlZFBhdGhzKHQpe2lmKHRoaXMuX19zb3J0Rm58fHRoaXMuX19maWx0ZXJGbilpZih0KXtpZih0aGlzLl9fb2JzZXJ2ZVBhdGhzKXtsZXQgZT10aGlzLl9fb2JzZXJ2ZVBhdGhzO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKTA9PT10LmluZGV4T2YoZVtuXSkmJnRoaXMuX19kZWJvdW5jZVJlbmRlcih0aGlzLl9fcmVuZGVyLHRoaXMuZGVsYXkpfX1lbHNlIHRoaXMuX19kZWJvdW5jZVJlbmRlcih0aGlzLl9fcmVuZGVyLHRoaXMuZGVsYXkpfV9faXRlbXNDaGFuZ2VkKHQpe3RoaXMuaXRlbXMmJiFBcnJheS5pc0FycmF5KHRoaXMuaXRlbXMpJiZjb25zb2xlLndhcm4oImRvbS1yZXBlYXQgZXhwZWN0ZWQgYXJyYXkgZm9yIGBpdGVtc2AsIGZvdW5kIix0aGlzLml0ZW1zKSx0aGlzLl9faGFuZGxlSXRlbVBhdGgodC5wYXRoLHQudmFsdWUpfHwoIml0ZW1zIj09PXQucGF0aCYmKHRoaXMuX19pdGVtc0FycmF5Q2hhbmdlZD0hMCksdGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpKX1fX2RlYm91bmNlUmVuZGVyKHQsZT0wKXt0aGlzLl9fcmVuZGVyRGVib3VuY2VyPVRuLmRlYm91bmNlKHRoaXMuX19yZW5kZXJEZWJvdW5jZXIsZT4wP2d0LmFmdGVyKGUpOnZ0LHQuYmluZCh0aGlzKSksQW4odGhpcy5fX3JlbmRlckRlYm91bmNlcil9cmVuZGVyKCl7dGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpLERpKCl9X19yZW5kZXIoKXtpZighdGhpcy5fX2Vuc3VyZVRlbXBsYXRpemVkKCkpcmV0dXJuO2xldCB0PXRoaXMuaXRlbXN8fFtdO2NvbnN0IGU9dGhpcy5fX3NvcnRBbmRGaWx0ZXJJdGVtcyh0KSxuPXRoaXMuX19jYWxjdWxhdGVMaW1pdChlLmxlbmd0aCk7dGhpcy5fX3VwZGF0ZUluc3RhbmNlcyh0LG4sZSksdGhpcy5pbml0aWFsQ291bnQmJih0aGlzLl9fc2hvdWxkTWVhc3VyZUNodW5rfHx0aGlzLl9fc2hvdWxkQ29udGludWVDaHVua2luZykmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9fY2h1bmtpbmdJZCksdGhpcy5fX2NodW5raW5nSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy5fX2NvbnRpbnVlQ2h1bmtpbmcoKSkpKSx0aGlzLl9zZXRSZW5kZXJlZEl0ZW1Db3VudCh0aGlzLl9faW5zdGFuY2VzLmxlbmd0aCksayYmIXRoaXMubm90aWZ5RG9tQ2hhbmdlfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkb20tY2hhbmdlIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1fX3NvcnRBbmRGaWx0ZXJJdGVtcyh0KXtsZXQgZT1uZXcgQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWVbbl09bjtyZXR1cm4gdGhpcy5fX2ZpbHRlckZuJiYoZT1lLmZpbHRlcigoKGUsbixpKT0+dGhpcy5fX2ZpbHRlckZuKHRbZV0sbixpKSkpKSx0aGlzLl9fc29ydEZuJiZlLnNvcnQoKChlLG4pPT50aGlzLl9fc29ydEZuKHRbZV0sdFtuXSkpKSxlfV9fY2FsY3VsYXRlTGltaXQodCl7bGV0IGU9dDtjb25zdCBuPXRoaXMuX19pbnN0YW5jZXMubGVuZ3RoO2lmKHRoaXMuaW5pdGlhbENvdW50KXtsZXQgaTshdGhpcy5fX2NodW5rQ291bnR8fHRoaXMuX19pdGVtc0FycmF5Q2hhbmdlZCYmIXRoaXMucmV1c2VDaHVua2VkSW5zdGFuY2VzPyhlPU1hdGgubWluKHQsdGhpcy5pbml0aWFsQ291bnQpLGk9TWF0aC5tYXgoZS1uLDApLHRoaXMuX19jaHVua0NvdW50PWl8fDEpOihpPU1hdGgubWluKE1hdGgubWF4KHQtbiwwKSx0aGlzLl9fY2h1bmtDb3VudCksZT1NYXRoLm1pbihuK2ksdCkpLHRoaXMuX19zaG91bGRNZWFzdXJlQ2h1bms9aT09PXRoaXMuX19jaHVua0NvdW50LHRoaXMuX19zaG91bGRDb250aW51ZUNodW5raW5nPWU8dCx0aGlzLl9fcmVuZGVyU3RhcnRUaW1lPXBlcmZvcm1hbmNlLm5vdygpfXJldHVybiB0aGlzLl9faXRlbXNBcnJheUNoYW5nZWQ9ITEsZX1fX2NvbnRpbnVlQ2h1bmtpbmcoKXtpZih0aGlzLl9fc2hvdWxkTWVhc3VyZUNodW5rKXtjb25zdCB0PXBlcmZvcm1hbmNlLm5vdygpLXRoaXMuX19yZW5kZXJTdGFydFRpbWU7dGhpcy5fX2NodW5rQ291bnQ9TWF0aC5yb3VuZCh0aGlzLl9fY2h1bmtDb3VudCoodGhpcy5fdGFyZ2V0RnJhbWVUaW1lL3QpKXx8MX10aGlzLl9fc2hvdWxkQ29udGludWVDaHVua2luZyYmdGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpfV9fdXBkYXRlSW5zdGFuY2VzKHQsZSxuKXtjb25zdCBpPXRoaXMuX19pdGVtc0lkeFRvSW5zdElkeD17fTtsZXQgcjtmb3Iocj0wO3I8ZTtyKyspe2xldCBlPXRoaXMuX19pbnN0YW5jZXNbcl0sbz1uW3JdLGE9dFtvXTtpW29dPXIsZT8oZS5fc2V0UGVuZGluZ1Byb3BlcnR5KHRoaXMuYXMsYSksZS5fc2V0UGVuZGluZ1Byb3BlcnR5KHRoaXMuaW5kZXhBcyxyKSxlLl9zZXRQZW5kaW5nUHJvcGVydHkodGhpcy5pdGVtc0luZGV4QXMsbyksZS5fZmx1c2hQcm9wZXJ0aWVzKCkpOnRoaXMuX19pbnNlcnRJbnN0YW5jZShhLHIsbyl9Zm9yKGxldCB0PXRoaXMuX19pbnN0YW5jZXMubGVuZ3RoLTE7dD49cjt0LS0pdGhpcy5fX2RldGFjaEFuZFJlbW92ZUluc3RhbmNlKHQpfV9fZGV0YWNoSW5zdGFuY2UodCl7bGV0IGU9dGhpcy5fX2luc3RhbmNlc1t0XTtjb25zdCBuPVkoZS5yb290KTtmb3IobGV0IHQ9MDt0PGUuY2hpbGRyZW4ubGVuZ3RoO3QrKyluLmFwcGVuZENoaWxkKGUuY2hpbGRyZW5bdF0pO3JldHVybiBlfV9fYXR0YWNoSW5zdGFuY2UodCxlKXtlLmluc2VydEJlZm9yZSh0aGlzLl9faW5zdGFuY2VzW3RdLnJvb3QsdGhpcyl9X19kZXRhY2hBbmRSZW1vdmVJbnN0YW5jZSh0KXt0aGlzLl9fZGV0YWNoSW5zdGFuY2UodCksdGhpcy5fX2luc3RhbmNlcy5zcGxpY2UodCwxKX1fX3N0YW1wSW5zdGFuY2UodCxlLG4pe2xldCBpPXt9O3JldHVybiBpW3RoaXMuYXNdPXQsaVt0aGlzLmluZGV4QXNdPWUsaVt0aGlzLml0ZW1zSW5kZXhBc109bixuZXcgdGhpcy5fX2N0b3IoaSl9X19pbnNlcnRJbnN0YW5jZSh0LGUsbil7Y29uc3QgaT10aGlzLl9fc3RhbXBJbnN0YW5jZSh0LGUsbik7bGV0IHI9dGhpcy5fX2luc3RhbmNlc1tlKzFdLG89cj9yLmNoaWxkcmVuWzBdOnRoaXM7cmV0dXJuIFkoWSh0aGlzKS5wYXJlbnROb2RlKS5pbnNlcnRCZWZvcmUoaS5yb290LG8pLHRoaXMuX19pbnN0YW5jZXNbZV09aSxpfV9zaG93SGlkZUNoaWxkcmVuKHQpe2ZvcihsZXQgZT0wO2U8dGhpcy5fX2luc3RhbmNlcy5sZW5ndGg7ZSsrKXRoaXMuX19pbnN0YW5jZXNbZV0uX3Nob3dIaWRlQ2hpbGRyZW4odCl9X19oYW5kbGVJdGVtUGF0aCh0LGUpe2xldCBuPXQuc2xpY2UoNiksaT1uLmluZGV4T2YoIi4iKSxyPWk8MD9uOm4uc3Vic3RyaW5nKDAsaSk7aWYocj09cGFyc2VJbnQociwxMCkpe2xldCB0PWk8MD8iIjpuLnN1YnN0cmluZyhpKzEpO3RoaXMuX19oYW5kbGVPYnNlcnZlZFBhdGhzKHQpO2xldCBvPXRoaXMuX19pbnN0YW5jZXNbdGhpcy5fX2l0ZW1zSWR4VG9JbnN0SWR4W3JdXTtyZXR1cm4gbyYmKG8uX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aCh0aGlzLmFzKyh0PyIuIit0OiIiKSxlLCExLCEwKSxvLl9mbHVzaFByb3BlcnRpZXMoKSksITB9fWl0ZW1Gb3JFbGVtZW50KHQpe2xldCBlPXRoaXMubW9kZWxGb3JFbGVtZW50KHQpO3JldHVybiBlJiZlW3RoaXMuYXNdfWluZGV4Rm9yRWxlbWVudCh0KXtsZXQgZT10aGlzLm1vZGVsRm9yRWxlbWVudCh0KTtyZXR1cm4gZSYmZVt0aGlzLmluZGV4QXNdfW1vZGVsRm9yRWxlbWVudCh0KXtyZXR1cm4gS3IodGhpcy50ZW1wbGF0ZSx0KX19Y3VzdG9tRWxlbWVudHMuZGVmaW5lKG5vLmlzLG5vKTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY2xhc3MgaW8gZXh0ZW5kcyB5ZXtzdGF0aWMgZ2V0IGlzKCl7cmV0dXJuImRvbS1pZiJ9c3RhdGljIGdldCB0ZW1wbGF0ZSgpe3JldHVybiBudWxsfXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntpZjp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfX2RlYm91bmNlUmVuZGVyIn0scmVzdGFtcDp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfX2RlYm91bmNlUmVuZGVyIn0sbm90aWZ5RG9tQ2hhbmdlOnt0eXBlOkJvb2xlYW59fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fX3JlbmRlckRlYm91bmNlcj1udWxsLHRoaXMuX2xhc3RJZj0hMSx0aGlzLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fXz0hMX1fX2RlYm91bmNlUmVuZGVyKCl7dGhpcy5fX3JlbmRlckRlYm91bmNlcj1Ubi5kZWJvdW5jZSh0aGlzLl9fcmVuZGVyRGVib3VuY2VyLHZ0LCgoKT0+dGhpcy5fX3JlbmRlcigpKSksQW4odGhpcy5fX3JlbmRlckRlYm91bmNlcil9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO2NvbnN0IHQ9WSh0aGlzKS5wYXJlbnROb2RlO3QmJih0Lm5vZGVUeXBlIT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREV8fFkodCkuaG9zdCl8fHRoaXMuX190ZWFyZG93bkluc3RhbmNlKCl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLFFyKCl8fCh0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlzLmlmJiZ0aGlzLl9fZGVib3VuY2VSZW5kZXIoKX1fX2Vuc3VyZVRlbXBsYXRlKCl7aWYoIXRoaXMuX190ZW1wbGF0ZSl7Y29uc3QgdD10aGlzO2xldCBlPXQuX3RlbXBsYXRlSW5mbz90OlkodCkucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKTtpZighZSl7bGV0IHQ9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCgpPT57aWYoIVkodGhpcykucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKSl0aHJvdyBuZXcgRXJyb3IoImRvbS1pZiByZXF1aXJlcyBhIDx0ZW1wbGF0ZT4gY2hpbGQiKTt0LmRpc2Nvbm5lY3QoKSx0aGlzLl9fcmVuZGVyKCl9KSk7cmV0dXJuIHQub2JzZXJ2ZSh0aGlzLHtjaGlsZExpc3Q6ITB9KSwhMX10aGlzLl9fdGVtcGxhdGU9ZX1yZXR1cm4hMH1fX2Vuc3VyZUluc3RhbmNlKCl7bGV0IHQ9WSh0aGlzKS5wYXJlbnROb2RlO2lmKHRoaXMuX19oYXNJbnN0YW5jZSgpKXtsZXQgZT10aGlzLl9fZ2V0SW5zdGFuY2VOb2RlcygpO2lmKGUmJmUubGVuZ3RoJiZZKHRoaXMpLnByZXZpb3VzU2libGluZyE9PWVbZS5sZW5ndGgtMV0pZm9yKGxldCBuLGk9MDtpPGUubGVuZ3RoJiYobj1lW2ldKTtpKyspWSh0KS5pbnNlcnRCZWZvcmUobix0aGlzKX1lbHNle2lmKCF0KXJldHVybiExO2lmKCF0aGlzLl9fZW5zdXJlVGVtcGxhdGUoKSlyZXR1cm4hMTt0aGlzLl9fY3JlYXRlQW5kSW5zZXJ0SW5zdGFuY2UodCl9cmV0dXJuITB9cmVuZGVyKCl7RGkoKX1fX3JlbmRlcigpe2lmKHRoaXMuaWYpe2lmKCF0aGlzLl9fZW5zdXJlSW5zdGFuY2UoKSlyZXR1cm59ZWxzZSB0aGlzLnJlc3RhbXAmJnRoaXMuX190ZWFyZG93bkluc3RhbmNlKCk7dGhpcy5fc2hvd0hpZGVDaGlsZHJlbigpLGsmJiF0aGlzLm5vdGlmeURvbUNoYW5nZXx8dGhpcy5pZj09dGhpcy5fbGFzdElmfHwodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZG9tLWNoYW5nZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5fbGFzdElmPXRoaXMuaWYpfV9faGFzSW5zdGFuY2UoKXt9X19nZXRJbnN0YW5jZU5vZGVzKCl7fV9fY3JlYXRlQW5kSW5zZXJ0SW5zdGFuY2UodCl7fV9fdGVhcmRvd25JbnN0YW5jZSgpe31fc2hvd0hpZGVDaGlsZHJlbigpe319Y29uc3Qgcm89QT9jbGFzcyBleHRlbmRzIGlve2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9faW5zdGFuY2U9bnVsbCx0aGlzLl9fc3luY0luZm89bnVsbH1fX2hhc0luc3RhbmNlKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fX2luc3RhbmNlKX1fX2dldEluc3RhbmNlTm9kZXMoKXtyZXR1cm4gdGhpcy5fX2luc3RhbmNlLnRlbXBsYXRlSW5mby5jaGlsZE5vZGVzfV9fY3JlYXRlQW5kSW5zZXJ0SW5zdGFuY2UodCl7Y29uc3QgZT10aGlzLl9fZGF0YUhvc3R8fHRoaXM7aWYoYiYmIXRoaXMuX19kYXRhSG9zdCl0aHJvdyBuZXcgRXJyb3IoInN0cmljdFRlbXBsYXRlUG9saWN5OiB0ZW1wbGF0ZSBvd25lciBub3QgdHJ1c3RlZCIpO2NvbnN0IG49ZS5fYmluZFRlbXBsYXRlKHRoaXMuX190ZW1wbGF0ZSwhMCk7bi5ydW5FZmZlY3RzPSh0LGUsbik9PntsZXQgaT10aGlzLl9fc3luY0luZm87aWYodGhpcy5pZilpJiYodGhpcy5fX3N5bmNJbmZvPW51bGwsdGhpcy5fc2hvd0hpZGVDaGlsZHJlbigpLGU9T2JqZWN0LmFzc2lnbihpLmNoYW5nZWRQcm9wcyxlKSksdChlLG4pO2Vsc2UgaWYodGhpcy5fX2luc3RhbmNlKWlmKGl8fChpPXRoaXMuX19zeW5jSW5mbz17cnVuRWZmZWN0czp0LGNoYW5nZWRQcm9wczp7fX0pLG4pZm9yKGNvbnN0IHQgaW4gZSl7Y29uc3QgZT0kKHQpO2kuY2hhbmdlZFByb3BzW2VdPXRoaXMuX19kYXRhSG9zdFtlXX1lbHNlIE9iamVjdC5hc3NpZ24oaS5jaGFuZ2VkUHJvcHMsZSl9LHRoaXMuX19pbnN0YW5jZT1lLl9zdGFtcFRlbXBsYXRlKHRoaXMuX190ZW1wbGF0ZSxuKSxZKHQpLmluc2VydEJlZm9yZSh0aGlzLl9faW5zdGFuY2UsdGhpcyl9X19zeW5jSG9zdFByb3BlcnRpZXMoKXtjb25zdCB0PXRoaXMuX19zeW5jSW5mbzt0JiYodGhpcy5fX3N5bmNJbmZvPW51bGwsdC5ydW5FZmZlY3RzKHQuY2hhbmdlZFByb3BzLCExKSl9X190ZWFyZG93bkluc3RhbmNlKCl7dGhpcy5fX2luc3RhbmNlJiYoKHRoaXMuX19kYXRhSG9zdHx8dGhpcykuX3JlbW92ZUJvdW5kRG9tKHRoaXMuX19pbnN0YW5jZSksdGhpcy5fX2luc3RhbmNlPW51bGwsdGhpcy5fX3N5bmNJbmZvPW51bGwpfV9zaG93SGlkZUNoaWxkcmVuKCl7Y29uc3QgdD10aGlzLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fX3x8IXRoaXMuaWY7dGhpcy5fX2luc3RhbmNlJiZCb29sZWFuKHRoaXMuX19pbnN0YW5jZS5fX2hpZGRlbikhPT10JiYodGhpcy5fX2luc3RhbmNlLl9faGlkZGVuPXQsanIodCx0aGlzLl9faW5zdGFuY2UudGVtcGxhdGVJbmZvLmNoaWxkTm9kZXMpKSx0fHx0aGlzLl9fc3luY0hvc3RQcm9wZXJ0aWVzKCl9fTpjbGFzcyBleHRlbmRzIGlve2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9fY3Rvcj1udWxsLHRoaXMuX19pbnN0YW5jZT1udWxsLHRoaXMuX19pbnZhbGlkUHJvcHM9bnVsbH1fX2hhc0luc3RhbmNlKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fX2luc3RhbmNlKX1fX2dldEluc3RhbmNlTm9kZXMoKXtyZXR1cm4gdGhpcy5fX2luc3RhbmNlLmNoaWxkcmVufV9fY3JlYXRlQW5kSW5zZXJ0SW5zdGFuY2UodCl7dGhpcy5fX2N0b3J8fCh0aGlzLl9fY3Rvcj0kcih0aGlzLl9fdGVtcGxhdGUsdGhpcyx7bXV0YWJsZURhdGE6ITAsZm9yd2FyZEhvc3RQcm9wOmZ1bmN0aW9uKHQsZSl7dGhpcy5fX2luc3RhbmNlJiYodGhpcy5pZj90aGlzLl9faW5zdGFuY2UuZm9yd2FyZEhvc3RQcm9wKHQsZSk6KHRoaXMuX19pbnZhbGlkUHJvcHM9dGhpcy5fX2ludmFsaWRQcm9wc3x8T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9faW52YWxpZFByb3BzWyQodCldPSEwKSl9fSkpLHRoaXMuX19pbnN0YW5jZT1uZXcgdGhpcy5fX2N0b3IsWSh0KS5pbnNlcnRCZWZvcmUodGhpcy5fX2luc3RhbmNlLnJvb3QsdGhpcyl9X190ZWFyZG93bkluc3RhbmNlKCl7aWYodGhpcy5fX2luc3RhbmNlKXtsZXQgdD10aGlzLl9faW5zdGFuY2UuY2hpbGRyZW47aWYodCYmdC5sZW5ndGgpe2xldCBlPVkodFswXSkucGFyZW50Tm9kZTtpZihlKXtlPVkoZSk7Zm9yKGxldCBuLGk9MDtpPHQubGVuZ3RoJiYobj10W2ldKTtpKyspZS5yZW1vdmVDaGlsZChuKX19dGhpcy5fX2ludmFsaWRQcm9wcz1udWxsLHRoaXMuX19pbnN0YW5jZT1udWxsfX1fX3N5bmNIb3N0UHJvcGVydGllcygpe2xldCB0PXRoaXMuX19pbnZhbGlkUHJvcHM7aWYodCl7dGhpcy5fX2ludmFsaWRQcm9wcz1udWxsO2ZvcihsZXQgZSBpbiB0KXRoaXMuX19pbnN0YW5jZS5fc2V0UGVuZGluZ1Byb3BlcnR5KGUsdGhpcy5fX2RhdGFIb3N0W2VdKTt0aGlzLl9faW5zdGFuY2UuX2ZsdXNoUHJvcGVydGllcygpfX1fc2hvd0hpZGVDaGlsZHJlbigpe2NvbnN0IHQ9dGhpcy5fX2hpZGVUZW1wbGF0ZUNoaWxkcmVuX198fCF0aGlzLmlmO3RoaXMuX19pbnN0YW5jZSYmQm9vbGVhbih0aGlzLl9faW5zdGFuY2UuX19oaWRkZW4pIT09dCYmKHRoaXMuX19pbnN0YW5jZS5fX2hpZGRlbj10LHRoaXMuX19pbnN0YW5jZS5fc2hvd0hpZGVDaGlsZHJlbih0KSksdHx8dGhpcy5fX3N5bmNIb3N0UHJvcGVydGllcygpfX07Y3VzdG9tRWxlbWVudHMuZGVmaW5lKHJvLmlzLHJvKTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KbGV0IG9vPUkoKHQ9PntsZXQgZT1tZSh0KTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBle3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntpdGVtczp7dHlwZTpBcnJheX0sbXVsdGk6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2VsZWN0ZWQ6e3R5cGU6T2JqZWN0LG5vdGlmeTohMH0sc2VsZWN0ZWRJdGVtOnt0eXBlOk9iamVjdCxub3RpZnk6ITB9LHRvZ2dsZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9fdXBkYXRlU2VsZWN0aW9uKG11bHRpLCBpdGVtcy4qKSJdfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9fbGFzdEl0ZW1zPW51bGwsdGhpcy5fX2xhc3RNdWx0aT1udWxsLHRoaXMuX19zZWxlY3RlZE1hcD1udWxsfV9fdXBkYXRlU2VsZWN0aW9uKHQsZSl7bGV0IG49ZS5wYXRoO2lmKG49PUpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKSl7bGV0IG49ZS5iYXNlfHxbXSxpPXRoaXMuX19sYXN0SXRlbXM7aWYodCE9PXRoaXMuX19sYXN0TXVsdGkmJnRoaXMuY2xlYXJTZWxlY3Rpb24oKSxpKXtsZXQgdD1JaShuLGkpO3RoaXMuX19hcHBseVNwbGljZXModCl9dGhpcy5fX2xhc3RJdGVtcz1uLHRoaXMuX19sYXN0TXVsdGk9dH1lbHNlIGlmKGUucGF0aD09YCR7SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXRlbXMiLHRoaXMpfS5zcGxpY2VzYCl0aGlzLl9fYXBwbHlTcGxpY2VzKGUudmFsdWUuaW5kZXhTcGxpY2VzKTtlbHNle2xldCB0PW4uc2xpY2UoYCR7SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXRlbXMiLHRoaXMpfS5gLmxlbmd0aCksZT1wYXJzZUludCh0LDEwKTt0LmluZGV4T2YoIi4iKTwwJiZ0PT1lJiZ0aGlzLl9fZGVzZWxlY3RDaGFuZ2VkSWR4KGUpfX1fX2FwcGx5U3BsaWNlcyh0KXtsZXQgZT10aGlzLl9fc2VsZWN0ZWRNYXA7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2xldCBpPXRbbl07ZS5mb3JFYWNoKCgodCxuKT0+e3Q8aS5pbmRleHx8ZS5zZXQobix0Pj1pLmluZGV4K2kucmVtb3ZlZC5sZW5ndGg/dCtpLmFkZGVkQ291bnQtaS5yZW1vdmVkLmxlbmd0aDotMSl9KSk7Zm9yKGxldCB0PTA7dDxpLmFkZGVkQ291bnQ7dCsrKXtsZXQgbj1pLmluZGV4K3Q7ZS5oYXModGhpcy5pdGVtc1tuXSkmJmUuc2V0KHRoaXMuaXRlbXNbbl0sbil9fXRoaXMuX191cGRhdGVMaW5rcygpO2xldCBuPTA7ZS5mb3JFYWNoKCgodCxpKT0+e3Q8MD8odGhpcy5tdWx0aT90aGlzLnNwbGljZShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZCIsdGhpcyksbiwxKTp0aGlzLnNlbGVjdGVkPXRoaXMuc2VsZWN0ZWRJdGVtPW51bGwsZS5kZWxldGUoaSkpOm4rK30pKX1fX3VwZGF0ZUxpbmtzKCl7aWYodGhpcy5fX2RhdGFMaW5rZWRQYXRocz17fSx0aGlzLm11bHRpKXtsZXQgdD0wO3RoaXMuX19zZWxlY3RlZE1hcC5mb3JFYWNoKChlPT57ZT49MCYmdGhpcy5saW5rUGF0aHMoYCR7SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXRlbXMiLHRoaXMpfS4ke2V9YCxgJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZCIsdGhpcyl9LiR7dCsrfWApfSkpfWVsc2UgdGhpcy5fX3NlbGVjdGVkTWFwLmZvckVhY2goKHQ9Pnt0aGlzLmxpbmtQYXRocyhKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZCIsdGhpcyksYCR7SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXRlbXMiLHRoaXMpfS4ke3R9YCksdGhpcy5saW5rUGF0aHMoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgic2VsZWN0ZWRJdGVtIix0aGlzKSxgJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJpdGVtcyIsdGhpcyl9LiR7dH1gKX0pKX1jbGVhclNlbGVjdGlvbigpe3RoaXMuX19kYXRhTGlua2VkUGF0aHM9e30sdGhpcy5fX3NlbGVjdGVkTWFwPW5ldyBNYXAsdGhpcy5zZWxlY3RlZD10aGlzLm11bHRpP1tdOm51bGwsdGhpcy5zZWxlY3RlZEl0ZW09bnVsbH1pc1NlbGVjdGVkKHQpe3JldHVybiB0aGlzLl9fc2VsZWN0ZWRNYXAuaGFzKHQpfWlzSW5kZXhTZWxlY3RlZCh0KXtyZXR1cm4gdGhpcy5pc1NlbGVjdGVkKHRoaXMuaXRlbXNbdF0pfV9fZGVzZWxlY3RDaGFuZ2VkSWR4KHQpe2xldCBlPXRoaXMuX19zZWxlY3RlZEluZGV4Rm9ySXRlbUluZGV4KHQpO2lmKGU+PTApe2xldCB0PTA7dGhpcy5fX3NlbGVjdGVkTWFwLmZvckVhY2goKChuLGkpPT57ZT09dCsrJiZ0aGlzLmRlc2VsZWN0KGkpfSkpfX1fX3NlbGVjdGVkSW5kZXhGb3JJdGVtSW5kZXgodCl7bGV0IGU9dGhpcy5fX2RhdGFMaW5rZWRQYXRoc1tgJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJpdGVtcyIsdGhpcyl9LiR7dH1gXTtpZihlKXJldHVybiBwYXJzZUludChlLnNsaWNlKGAke0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoInNlbGVjdGVkIix0aGlzKX0uYC5sZW5ndGgpLDEwKX1kZXNlbGVjdCh0KXtsZXQgZT10aGlzLl9fc2VsZWN0ZWRNYXAuZ2V0KHQpO2lmKGU+PTApe2xldCBuO3RoaXMuX19zZWxlY3RlZE1hcC5kZWxldGUodCksdGhpcy5tdWx0aSYmKG49dGhpcy5fX3NlbGVjdGVkSW5kZXhGb3JJdGVtSW5kZXgoZSkpLHRoaXMuX191cGRhdGVMaW5rcygpLHRoaXMubXVsdGk/dGhpcy5zcGxpY2UoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgic2VsZWN0ZWQiLHRoaXMpLG4sMSk6dGhpcy5zZWxlY3RlZD10aGlzLnNlbGVjdGVkSXRlbT1udWxsfX1kZXNlbGVjdEluZGV4KHQpe3RoaXMuZGVzZWxlY3QodGhpcy5pdGVtc1t0XSl9c2VsZWN0KHQpe3RoaXMuc2VsZWN0SW5kZXgodGhpcy5pdGVtcy5pbmRleE9mKHQpKX1zZWxlY3RJbmRleCh0KXtsZXQgZT10aGlzLml0ZW1zW3RdO3RoaXMuaXNTZWxlY3RlZChlKT90aGlzLnRvZ2dsZSYmdGhpcy5kZXNlbGVjdEluZGV4KHQpOih0aGlzLm11bHRpfHx0aGlzLl9fc2VsZWN0ZWRNYXAuY2xlYXIoKSx0aGlzLl9fc2VsZWN0ZWRNYXAuc2V0KGUsdCksdGhpcy5fX3VwZGF0ZUxpbmtzKCksdGhpcy5tdWx0aT90aGlzLnB1c2goSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgic2VsZWN0ZWQiLHRoaXMpLGUpOnRoaXMuc2VsZWN0ZWQ9dGhpcy5zZWxlY3RlZEl0ZW09ZSl9fX0pKSh5ZSk7Y2xhc3MgYW8gZXh0ZW5kcyBvb3tzdGF0aWMgZ2V0IGlzKCl7cmV0dXJuImFycmF5LXNlbGVjdG9yIn1zdGF0aWMgZ2V0IHRlbXBsYXRlKCl7cmV0dXJuIG51bGx9fWN1c3RvbUVsZW1lbnRzLmRlZmluZShhby5pcyxhbyk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IHNvPW5ldyBTbjt3aW5kb3cuU2hhZHlDU1N8fCh3aW5kb3cuU2hhZHlDU1M9e3ByZXBhcmVUZW1wbGF0ZSh0LGUsbil7fSxwcmVwYXJlVGVtcGxhdGVEb20odCxlKXt9LHByZXBhcmVUZW1wbGF0ZVN0eWxlcyh0LGUsbil7fSxzdHlsZVN1YnRyZWUodCxlKXtzby5wcm9jZXNzU3R5bGVzKCksUWUodCxlKX0sc3R5bGVFbGVtZW50KHQpe3NvLnByb2Nlc3NTdHlsZXMoKX0sc3R5bGVEb2N1bWVudCh0KXtzby5wcm9jZXNzU3R5bGVzKCksUWUoZG9jdW1lbnQuYm9keSx0KX0sZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlOih0LGUpPT50bih0LGUpLGZsdXNoQ3VzdG9tU3R5bGVzKCl7fSxuYXRpdmVDc3M6a2UsbmF0aXZlU2hhZG93Ok1lLGNzc0J1aWxkOlRlLGRpc2FibGVSdW50aW1lOkFlfSksd2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlPXNvOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBsbz0iaW5jbHVkZSIsY289d2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlO2NsYXNzIHVvIGV4dGVuZHMgSFRNTEVsZW1lbnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX3N0eWxlPW51bGwsY28uYWRkQ3VzdG9tU3R5bGUodGhpcyl9Z2V0U3R5bGUoKXtpZih0aGlzLl9zdHlsZSlyZXR1cm4gdGhpcy5fc3R5bGU7Y29uc3QgdD10aGlzLnF1ZXJ5U2VsZWN0b3IoInN0eWxlIik7aWYoIXQpcmV0dXJuIG51bGw7dGhpcy5fc3R5bGU9dDtjb25zdCBlPXQuZ2V0QXR0cmlidXRlKGxvKTtyZXR1cm4gZSYmKHQucmVtb3ZlQXR0cmlidXRlKGxvKSx0LnRleHRDb250ZW50PShmdW5jdGlvbiBuKHQpe2xldCBlPXQudHJpbSgpLnNwbGl0KC9ccysvKSxuPSIiO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW4rPXEoZVt0XSk7cmV0dXJuIG59KShlKSt0LnRleHRDb250ZW50KSx0aGlzLm93bmVyRG9jdW1lbnQhPT13aW5kb3cuZG9jdW1lbnQmJndpbmRvdy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRoaXMpLHRoaXMuX3N0eWxlfX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KbGV0IGhvO3dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoImN1c3RvbS1zdHlsZSIsdW8pLGhvPXpyLl9tdXRhYmxlUHJvcGVydHlDaGFuZ2U7Y29uc3QgcG89e3Byb3BlcnRpZXM6e211dGFibGVEYXRhOkJvb2xlYW59LF9zaG91bGRQcm9wZXJ0eUNoYW5nZSh0LGUsbil7cmV0dXJuIGhvKHRoaXMsdCxlLG4sdGhpcy5tdXRhYmxlRGF0YSl9fSxmbz1lcihIVE1MRWxlbWVudCkucHJvdG90eXBlOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KdmFyIG1vPW5ldyBTZXQ7Y29uc3QgZ289e3Byb3BlcnRpZXM6e19wYXJlbnRSZXNpemFibGU6e3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfcGFyZW50UmVzaXphYmxlQ2hhbmdlZCJ9LF9ub3RpZnlpbmdEZXNjZW5kYW50Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxsaXN0ZW5lcnM6eyJpcm9uLXJlcXVlc3QtcmVzaXplLW5vdGlmaWNhdGlvbnMiOiJfb25Jcm9uUmVxdWVzdFJlc2l6ZU5vdGlmaWNhdGlvbnMifSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5faW50ZXJlc3RlZFJlc2l6YWJsZXM9W10sdGhpcy5fYm91bmROb3RpZnlSZXNpemU9dGhpcy5ub3RpZnlSZXNpemUuYmluZCh0aGlzKSx0aGlzLl9ib3VuZE9uRGVzY2VuZGFudElyb25SZXNpemU9dGhpcy5fb25EZXNjZW5kYW50SXJvblJlc2l6ZS5iaW5kKHRoaXMpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX3JlcXVlc3RSZXNpemVOb3RpZmljYXRpb25zKCl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fcGFyZW50UmVzaXphYmxlP3RoaXMuX3BhcmVudFJlc2l6YWJsZS5zdG9wUmVzaXplTm90aWZpY2F0aW9uc0Zvcih0aGlzKToobW8uZGVsZXRlKHRoaXMpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2JvdW5kTm90aWZ5UmVzaXplKSksdGhpcy5fcGFyZW50UmVzaXphYmxlPW51bGx9LG5vdGlmeVJlc2l6ZTpmdW5jdGlvbigpe3RoaXMuaXNBdHRhY2hlZCYmKHRoaXMuX2ludGVyZXN0ZWRSZXNpemFibGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3RoaXMucmVzaXplclNob3VsZE5vdGlmeSh0KSYmdGhpcy5fbm90aWZ5RGVzY2VuZGFudCh0KX0pLHRoaXMpLHRoaXMuX2ZpcmVSZXNpemUoKSl9LGFzc2lnblBhcmVudFJlc2l6YWJsZTpmdW5jdGlvbih0KXt0aGlzLl9wYXJlbnRSZXNpemFibGUmJnRoaXMuX3BhcmVudFJlc2l6YWJsZS5zdG9wUmVzaXplTm90aWZpY2F0aW9uc0Zvcih0aGlzKSx0aGlzLl9wYXJlbnRSZXNpemFibGU9dCx0JiYtMT09PXQuX2ludGVyZXN0ZWRSZXNpemFibGVzLmluZGV4T2YodGhpcykmJih0Ll9pbnRlcmVzdGVkUmVzaXphYmxlcy5wdXNoKHRoaXMpLHQuX3N1YnNjcmliZUlyb25SZXNpemUodGhpcykpfSxzdG9wUmVzaXplTm90aWZpY2F0aW9uc0ZvcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9pbnRlcmVzdGVkUmVzaXphYmxlcy5pbmRleE9mKHQpO2U+LTEmJih0aGlzLl9pbnRlcmVzdGVkUmVzaXphYmxlcy5zcGxpY2UoZSwxKSx0aGlzLl91bnN1YnNjcmliZUlyb25SZXNpemUodCkpfSxfc3Vic2NyaWJlSXJvblJlc2l6ZTpmdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImlyb24tcmVzaXplIix0aGlzLl9ib3VuZE9uRGVzY2VuZGFudElyb25SZXNpemUpfSxfdW5zdWJzY3JpYmVJcm9uUmVzaXplOmZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaXJvbi1yZXNpemUiLHRoaXMuX2JvdW5kT25EZXNjZW5kYW50SXJvblJlc2l6ZSl9LHJlc2l6ZXJTaG91bGROb3RpZnk6ZnVuY3Rpb24odCl7cmV0dXJuITB9LF9vbkRlc2NlbmRhbnRJcm9uUmVzaXplOmZ1bmN0aW9uKHQpe3RoaXMuX25vdGlmeWluZ0Rlc2NlbmRhbnQ/dC5zdG9wUHJvcGFnYXRpb24oKTptfHx0aGlzLl9maXJlUmVzaXplKCl9LF9maXJlUmVzaXplOmZ1bmN0aW9uKCl7dGhpcy5maXJlKCJpcm9uLXJlc2l6ZSIsbnVsbCx7bm9kZTp0aGlzLGJ1YmJsZXM6ITF9KX0sX29uSXJvblJlcXVlc3RSZXNpemVOb3RpZmljYXRpb25zOmZ1bmN0aW9uKHQpe3ZhciBlPVlpKHQpLnJvb3RUYXJnZXQ7ZSE9PXRoaXMmJihlLmFzc2lnblBhcmVudFJlc2l6YWJsZSh0aGlzKSx0aGlzLl9ub3RpZnlEZXNjZW5kYW50KGUpLHQuc3RvcFByb3BhZ2F0aW9uKCkpfSxfcGFyZW50UmVzaXphYmxlQ2hhbmdlZDpmdW5jdGlvbih0KXt0JiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9ib3VuZE5vdGlmeVJlc2l6ZSl9LF9ub3RpZnlEZXNjZW5kYW50OmZ1bmN0aW9uKHQpe3RoaXMuaXNBdHRhY2hlZCYmKHRoaXMuX25vdGlmeWluZ0Rlc2NlbmRhbnQ9ITAsdC5ub3RpZnlSZXNpemUoKSx0aGlzLl9ub3RpZnlpbmdEZXNjZW5kYW50PSExKX0sX3JlcXVlc3RSZXNpemVOb3RpZmljYXRpb25zOmZ1bmN0aW9uKCl7aWYodGhpcy5pc0F0dGFjaGVkKWlmKCJsb2FkaW5nIj09PWRvY3VtZW50LnJlYWR5U3RhdGUpe3ZhciB0PXRoaXMuX3JlcXVlc3RSZXNpemVOb3RpZmljYXRpb25zLmJpbmQodGhpcyk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsKGZ1bmN0aW9uIGUoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIixlKSx0KCl9KSl9ZWxzZSB0aGlzLl9maW5kUGFyZW50KCksdGhpcy5fcGFyZW50UmVzaXphYmxlP3RoaXMuX3BhcmVudFJlc2l6YWJsZS5faW50ZXJlc3RlZFJlc2l6YWJsZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCE9PXRoaXMmJnQuX2ZpbmRQYXJlbnQoKX0pLHRoaXMpOihtby5mb3JFYWNoKChmdW5jdGlvbih0KXt0IT09dGhpcyYmdC5fZmluZFBhcmVudCgpfSksdGhpcyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fYm91bmROb3RpZnlSZXNpemUpLHRoaXMubm90aWZ5UmVzaXplKCkpfSxfZmluZFBhcmVudDpmdW5jdGlvbigpe3RoaXMuYXNzaWduUGFyZW50UmVzaXphYmxlKG51bGwpLHRoaXMuZmlyZSgiaXJvbi1yZXF1ZXN0LXJlc2l6ZS1ub3RpZmljYXRpb25zIixudWxsLHtub2RlOnRoaXMsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSksdGhpcy5fcGFyZW50UmVzaXphYmxlP21vLmRlbGV0ZSh0aGlzKTptby5hZGQodGhpcyl9fTt2YXIgX289T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsSXJvblJlc2l6YWJsZUJlaGF2aW9yOmdvfSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL1JyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1pcm9uLWNvbGxhcHNlLXRyYW5zaXRpb24tZHVyYXRpb24sIDMwMG1zKTsKICAgICAgICAvKiBTYWZhcmkgMTAgbmVlZHMgdGhpcyBwcm9wZXJ0eSBwcmVmaXhlZCB0byBjb3JyZWN0bHkgYXBwbHkgdGhlIGN1c3RvbSBwcm9wZXJ0eSAqLwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0taXJvbi1jb2xsYXBzZS10cmFuc2l0aW9uLWR1cmF0aW9uLCAzMDBtcyk7CiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgIH0KCiAgICAgIDpob3N0KC5pcm9uLWNvbGxhcHNlLWNsb3NlZCkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KDpub3QoLmlyb24tY29sbGFwc2Utb3BlbmVkKSkgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJpcm9uLWNvbGxhcHNlIixiZWhhdmlvcnM6W2dvXSxwcm9wZXJ0aWVzOntob3Jpem9udGFsOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Il9ob3Jpem9udGFsQ2hhbmdlZCJ9LG9wZW5lZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxvYnNlcnZlcjoiX29wZW5lZENoYW5nZWQifSx0cmFuc2l0aW9uaW5nOnt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwLHJlYWRPbmx5OiEwfSxub0FuaW1hdGlvbjp7dHlwZTpCb29sZWFufSxfZGVzaXJlZFNpemU6e3R5cGU6U3RyaW5nLHZhbHVlOiIifX0sZ2V0IGRpbWVuc2lvbigpe3JldHVybiB0aGlzLmhvcml6b250YWw/IndpZHRoIjoiaGVpZ2h0In0sZ2V0IF9kaW1lbnNpb25NYXgoKXtyZXR1cm4gdGhpcy5ob3Jpem9udGFsPyJtYXhXaWR0aCI6Im1heEhlaWdodCJ9LGdldCBfZGltZW5zaW9uTWF4Q3NzKCl7cmV0dXJuIHRoaXMuaG9yaXpvbnRhbD8ibWF4LXdpZHRoIjoibWF4LWhlaWdodCJ9LGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJncm91cCIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LGxpc3RlbmVyczp7dHJhbnNpdGlvbmVuZDoiX29uVHJhbnNpdGlvbkVuZCJ9LHRvZ2dsZTpmdW5jdGlvbigpe3RoaXMub3BlbmVkPSF0aGlzLm9wZW5lZH0sc2hvdzpmdW5jdGlvbigpe3RoaXMub3BlbmVkPSEwfSxoaWRlOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ9ITF9LHVwZGF0ZVNpemU6ZnVuY3Rpb24odCxlKXt0PSJhdXRvIj09PXQ/IiI6dDt2YXIgbj1lJiYhdGhpcy5ub0FuaW1hdGlvbiYmdGhpcy5pc0F0dGFjaGVkJiZ0aGlzLl9kZXNpcmVkU2l6ZSE9PXQ7aWYodGhpcy5fZGVzaXJlZFNpemU9dCx0aGlzLl91cGRhdGVUcmFuc2l0aW9uKCExKSxuKXt2YXIgaT10aGlzLl9jYWxjU2l6ZSgpOyIiPT09dCYmKHRoaXMuc3R5bGVbdGhpcy5fZGltZW5zaW9uTWF4XT0iIix0PXRoaXMuX2NhbGNTaXplKCkpLHRoaXMuc3R5bGVbdGhpcy5fZGltZW5zaW9uTWF4XT1pLHRoaXMuc2Nyb2xsVG9wPXRoaXMuc2Nyb2xsVG9wLHRoaXMuX3VwZGF0ZVRyYW5zaXRpb24oITApLG49dCE9PWl9dGhpcy5zdHlsZVt0aGlzLl9kaW1lbnNpb25NYXhdPXQsbnx8dGhpcy5fdHJhbnNpdGlvbkVuZCgpfSxlbmFibGVUcmFuc2l0aW9uOmZ1bmN0aW9uKHQpe2ZvLl93YXJuKCJgZW5hYmxlVHJhbnNpdGlvbigpYCBpcyBkZXByZWNhdGVkLCB1c2UgYG5vQW5pbWF0aW9uYCBpbnN0ZWFkLiIpLHRoaXMubm9BbmltYXRpb249IXR9LF91cGRhdGVUcmFuc2l0aW9uOmZ1bmN0aW9uKHQpe3RoaXMuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPXQmJiF0aGlzLm5vQW5pbWF0aW9uPyIiOiIwcyJ9LF9ob3Jpem9udGFsQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuc3R5bGUudHJhbnNpdGlvblByb3BlcnR5PXRoaXMuX2RpbWVuc2lvbk1heENzcyx0aGlzLnN0eWxlWyJtYXhXaWR0aCI9PT10aGlzLl9kaW1lbnNpb25NYXg/Im1heEhlaWdodCI6Im1heFdpZHRoIl09IiIsdGhpcy51cGRhdGVTaXplKHRoaXMub3BlbmVkPyJhdXRvIjoiMHB4IiwhMSl9LF9vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhdGhpcy5vcGVuZWQpLHRoaXMuX3NldFRyYW5zaXRpb25pbmcoITApLHRoaXMudG9nZ2xlQ2xhc3MoImlyb24tY29sbGFwc2UtY2xvc2VkIiwhMSksdGhpcy50b2dnbGVDbGFzcygiaXJvbi1jb2xsYXBzZS1vcGVuZWQiLCExKSx0aGlzLnVwZGF0ZVNpemUodGhpcy5vcGVuZWQ/ImF1dG8iOiIwcHgiLCEwKSx0aGlzLm9wZW5lZCYmdGhpcy5mb2N1cygpfSxfdHJhbnNpdGlvbkVuZDpmdW5jdGlvbigpe3RoaXMuc3R5bGVbdGhpcy5fZGltZW5zaW9uTWF4XT10aGlzLl9kZXNpcmVkU2l6ZSx0aGlzLnRvZ2dsZUNsYXNzKCJpcm9uLWNvbGxhcHNlLWNsb3NlZCIsIXRoaXMub3BlbmVkKSx0aGlzLnRvZ2dsZUNsYXNzKCJpcm9uLWNvbGxhcHNlLW9wZW5lZCIsdGhpcy5vcGVuZWQpLHRoaXMuX3VwZGF0ZVRyYW5zaXRpb24oITEpLHRoaXMubm90aWZ5UmVzaXplKCksdGhpcy5fc2V0VHJhbnNpdGlvbmluZyghMSl9LF9vblRyYW5zaXRpb25FbmQ6ZnVuY3Rpb24odCl7WWkodCkucm9vdFRhcmdldD09PXRoaXMmJnRoaXMuX3RyYW5zaXRpb25FbmQoKX0sX2NhbGNTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbdGhpcy5kaW1lbnNpb25dKyJweCJ9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCB5bz1fZWAKLyogTW9zdCBjb21tb24gdXNlZCBmbGV4IHN0eWxlcyovCjxkb20tbW9kdWxlIGlkPSJpcm9uLWZsZXgiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgLmxheW91dC5ob3Jpem9udGFsLAogICAgICAubGF5b3V0LnZlcnRpY2FsIHsKICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLmxheW91dC5pbmxpbmUgewogICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDsKICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICB9CgogICAgICAubGF5b3V0Lmhvcml6b250YWwgewogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAubGF5b3V0LnZlcnRpY2FsIHsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLmxheW91dC53cmFwIHsKICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwOwogICAgICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwOwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQoKICAgICAgLmxheW91dC5uby13cmFwIHsKICAgICAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7CiAgICAgICAgLXdlYmtpdC1mbGV4LXdyYXA6IG5vd3JhcDsKICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmxheW91dC5jZW50ZXIsCiAgICAgIC5sYXlvdXQuY2VudGVyLWNlbnRlciB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmxheW91dC5jZW50ZXItanVzdGlmaWVkLAogICAgICAubGF5b3V0LmNlbnRlci1jZW50ZXIgewogICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZmxleCB7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAwLjAwMDAwMDAwMXB4OwogICAgICAgIC13ZWJraXQtZmxleDogMTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMC4wMDAwMDAwMDFweDsKICAgICAgICBmbGV4LWJhc2lzOiAwLjAwMDAwMDAwMXB4OwogICAgICB9CgogICAgICAuZmxleC1hdXRvIHsKICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICAgICAgfQoKICAgICAgLmZsZXgtbm9uZSB7CiAgICAgICAgLW1zLWZsZXg6IG5vbmU7CiAgICAgICAgLXdlYmtpdC1mbGV4OiBub25lOwogICAgICAgIGZsZXg6IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC90ZW1wbGF0ZT4KPC9kb20tbW9kdWxlPgovKiBCYXNpYyBmbGV4Ym94IHJldmVyc2Ugc3R5bGVzICovCjxkb20tbW9kdWxlIGlkPSJpcm9uLWZsZXgtcmV2ZXJzZSI+CiAgPHRlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAubGF5b3V0Lmhvcml6b250YWwtcmV2ZXJzZSwKICAgICAgLmxheW91dC52ZXJ0aWNhbC1yZXZlcnNlIHsKICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLmxheW91dC5ob3Jpem9udGFsLXJldmVyc2UgewogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7CiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOwogICAgICB9CgogICAgICAubGF5b3V0LnZlcnRpY2FsLXJldmVyc2UgewogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7CiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgICB9CgogICAgICAubGF5b3V0LndyYXAtcmV2ZXJzZSB7CiAgICAgICAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOwogICAgICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7CiAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC90ZW1wbGF0ZT4KPC9kb20tbW9kdWxlPgovKiBGbGV4Ym94IGFsaWdubWVudCAqLwo8ZG9tLW1vZHVsZSBpZD0iaXJvbi1mbGV4LWFsaWdubWVudCI+CiAgPHRlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAvKioKICAgICAgICogQWxpZ25tZW50IGluIGNyb3NzIGF4aXMuCiAgICAgICAqLwogICAgICAubGF5b3V0LnN0YXJ0IHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLmxheW91dC5jZW50ZXIsCiAgICAgIC5sYXlvdXQuY2VudGVyLWNlbnRlciB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmxheW91dC5lbmQgewogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAubGF5b3V0LmJhc2VsaW5lIHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICB9CgogICAgICAvKioKICAgICAgICogQWxpZ25tZW50IGluIG1haW4gYXhpcy4KICAgICAgICovCiAgICAgIC5sYXlvdXQuc3RhcnQtanVzdGlmaWVkIHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuY2VudGVyLWp1c3RpZmllZCwKICAgICAgLmxheW91dC5jZW50ZXItY2VudGVyIHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmxheW91dC5lbmQtanVzdGlmaWVkIHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuYXJvdW5kLWp1c3RpZmllZCB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICB9CgogICAgICAubGF5b3V0Lmp1c3RpZmllZCB7CiAgICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH0KCiAgICAgIC8qKgogICAgICAgKiBTZWxmIGFsaWdubWVudC4KICAgICAgICovCiAgICAgIC5zZWxmLXN0YXJ0IHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgICAgICAtd2Via2l0LWFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7CiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLnNlbGYtY2VudGVyIHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnNlbGYtZW5kIHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLnNlbGYtc3RyZXRjaCB7CiAgICAgICAgLW1zLWFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBzdHJldGNoOwogICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5zZWxmLWJhc2VsaW5lIHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogYmFzZWxpbmU7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBiYXNlbGluZTsKICAgICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLyoqCiAgICAgICAqIG11bHRpLWxpbmUgYWxpZ25tZW50IGluIG1haW4gYXhpcy4KICAgICAgICovCiAgICAgIC5sYXlvdXQuc3RhcnQtYWxpZ25lZCB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogZmxleC1zdGFydDsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLmxheW91dC5lbmQtYWxpZ25lZCB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQ7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuY2VudGVyLWFsaWduZWQgewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyOyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAubGF5b3V0LmJldHdlZW4tYWxpZ25lZCB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5OyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9CgogICAgICAubGF5b3V0LmFyb3VuZC1hbGlnbmVkIHsKICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGU7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC90ZW1wbGF0ZT4KPC9kb20tbW9kdWxlPgovKiBOb24tZmxleGJveCBwb3NpdGlvbmluZyBoZWxwZXIgc3R5bGVzICovCjxkb20tbW9kdWxlIGlkPSJpcm9uLWZsZXgtZmFjdG9ycyI+CiAgPHRlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAuZmxleCwKICAgICAgLmZsZXgtMSB7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAwLjAwMDAwMDAwMXB4OwogICAgICAgIC13ZWJraXQtZmxleDogMTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMC4wMDAwMDAwMDFweDsKICAgICAgICBmbGV4LWJhc2lzOiAwLjAwMDAwMDAwMXB4OwogICAgICB9CgogICAgICAuZmxleC0yIHsKICAgICAgICAtbXMtZmxleDogMjsKICAgICAgICAtd2Via2l0LWZsZXg6IDI7CiAgICAgICAgZmxleDogMjsKICAgICAgfQoKICAgICAgLmZsZXgtMyB7CiAgICAgICAgLW1zLWZsZXg6IDM7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAzOwogICAgICAgIGZsZXg6IDM7CiAgICAgIH0KCiAgICAgIC5mbGV4LTQgewogICAgICAgIC1tcy1mbGV4OiA0OwogICAgICAgIC13ZWJraXQtZmxleDogNDsKICAgICAgICBmbGV4OiA0OwogICAgICB9CgogICAgICAuZmxleC01IHsKICAgICAgICAtbXMtZmxleDogNTsKICAgICAgICAtd2Via2l0LWZsZXg6IDU7CiAgICAgICAgZmxleDogNTsKICAgICAgfQoKICAgICAgLmZsZXgtNiB7CiAgICAgICAgLW1zLWZsZXg6IDY7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA2OwogICAgICAgIGZsZXg6IDY7CiAgICAgIH0KCiAgICAgIC5mbGV4LTcgewogICAgICAgIC1tcy1mbGV4OiA3OwogICAgICAgIC13ZWJraXQtZmxleDogNzsKICAgICAgICBmbGV4OiA3OwogICAgICB9CgogICAgICAuZmxleC04IHsKICAgICAgICAtbXMtZmxleDogODsKICAgICAgICAtd2Via2l0LWZsZXg6IDg7CiAgICAgICAgZmxleDogODsKICAgICAgfQoKICAgICAgLmZsZXgtOSB7CiAgICAgICAgLW1zLWZsZXg6IDk7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA5OwogICAgICAgIGZsZXg6IDk7CiAgICAgIH0KCiAgICAgIC5mbGV4LTEwIHsKICAgICAgICAtbXMtZmxleDogMTA7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxMDsKICAgICAgICBmbGV4OiAxMDsKICAgICAgfQoKICAgICAgLmZsZXgtMTEgewogICAgICAgIC1tcy1mbGV4OiAxMTsKICAgICAgICAtd2Via2l0LWZsZXg6IDExOwogICAgICAgIGZsZXg6IDExOwogICAgICB9CgogICAgICAuZmxleC0xMiB7CiAgICAgICAgLW1zLWZsZXg6IDEyOwogICAgICAgIC13ZWJraXQtZmxleDogMTI7CiAgICAgICAgZmxleDogMTI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC90ZW1wbGF0ZT4KPC9kb20tbW9kdWxlPgo8ZG9tLW1vZHVsZSBpZD0iaXJvbi1wb3NpdGlvbmluZyI+CiAgPHRlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAuYmxvY2sgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBbaGlkZGVuXSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaW52aXNpYmxlIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnJlbGF0aXZlIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5maXQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgIH0KCiAgICAgIGJvZHkuZnVsbGJsZWVkIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgfQoKICAgICAgLnNjcm9sbCB7CiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICB9CgogICAgICAvKiBmaXhlZCBwb3NpdGlvbiAqLwogICAgICAuZml4ZWQtYm90dG9tLAogICAgICAuZml4ZWQtbGVmdCwKICAgICAgLmZpeGVkLXJpZ2h0LAogICAgICAuZml4ZWQtdG9wIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIH0KCiAgICAgIC5maXhlZC10b3AgewogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICB9CgogICAgICAuZml4ZWQtcmlnaHQgewogICAgICAgIHRvcDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5maXhlZC1ib3R0b20gewogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9CgogICAgICAuZml4ZWQtbGVmdCB7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvdGVtcGxhdGU+CjwvZG9tLW1vZHVsZT4KYDt5by5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHlvLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3Qgdm89X2VgCjxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgW2hpZGRlbl0gewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+CjxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgaHRtbCB7CgogICAgICAtLWxheW91dDogewogICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtaW5saW5lOiB7CiAgICAgICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94OwogICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgIH07CgogICAgICAtLWxheW91dC1ob3Jpem9udGFsOiB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0OwoKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWhvcml6b250YWwtcmV2ZXJzZTogewogICAgICAgIEBhcHBseSAtLWxheW91dDsKCiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsKICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7CiAgICAgIH07CgogICAgICAtLWxheW91dC12ZXJ0aWNhbDogewogICAgICAgIEBhcHBseSAtLWxheW91dDsKCiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH07CgogICAgICAtLWxheW91dC12ZXJ0aWNhbC1yZXZlcnNlOiB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0OwoKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXdyYXA6IHsKICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwOwogICAgICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwOwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXdyYXAtcmV2ZXJzZTogewogICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTsKICAgICAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOwogICAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC1hdXRvOiB7CiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvOwogICAgICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87CiAgICAgICAgZmxleDogMSAxIGF1dG87CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LW5vbmU6IHsKICAgICAgICAtbXMtZmxleDogbm9uZTsKICAgICAgICAtd2Via2l0LWZsZXg6IG5vbmU7CiAgICAgICAgZmxleDogbm9uZTsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXg6IHsKICAgICAgICAtbXMtZmxleDogMSAxIDAuMDAwMDAwMDAxcHg7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAwLjAwMDAwMDAwMXB4OwogICAgICAgIGZsZXgtYmFzaXM6IDAuMDAwMDAwMDAxcHg7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTI6IHsKICAgICAgICAtbXMtZmxleDogMjsKICAgICAgICAtd2Via2l0LWZsZXg6IDI7CiAgICAgICAgZmxleDogMjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtMzogewogICAgICAgIC1tcy1mbGV4OiAzOwogICAgICAgIC13ZWJraXQtZmxleDogMzsKICAgICAgICBmbGV4OiAzOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC00OiB7CiAgICAgICAgLW1zLWZsZXg6IDQ7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA0OwogICAgICAgIGZsZXg6IDQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTU6IHsKICAgICAgICAtbXMtZmxleDogNTsKICAgICAgICAtd2Via2l0LWZsZXg6IDU7CiAgICAgICAgZmxleDogNTsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtNjogewogICAgICAgIC1tcy1mbGV4OiA2OwogICAgICAgIC13ZWJraXQtZmxleDogNjsKICAgICAgICBmbGV4OiA2OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC03OiB7CiAgICAgICAgLW1zLWZsZXg6IDc7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA3OwogICAgICAgIGZsZXg6IDc7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTg6IHsKICAgICAgICAtbXMtZmxleDogODsKICAgICAgICAtd2Via2l0LWZsZXg6IDg7CiAgICAgICAgZmxleDogODsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtOTogewogICAgICAgIC1tcy1mbGV4OiA5OwogICAgICAgIC13ZWJraXQtZmxleDogOTsKICAgICAgICBmbGV4OiA5OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC0xMDogewogICAgICAgIC1tcy1mbGV4OiAxMDsKICAgICAgICAtd2Via2l0LWZsZXg6IDEwOwogICAgICAgIGZsZXg6IDEwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC0xMTogewogICAgICAgIC1tcy1mbGV4OiAxMTsKICAgICAgICAtd2Via2l0LWZsZXg6IDExOwogICAgICAgIGZsZXg6IDExOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC0xMjogewogICAgICAgIC1tcy1mbGV4OiAxMjsKICAgICAgICAtd2Via2l0LWZsZXg6IDEyOwogICAgICAgIGZsZXg6IDEyOwogICAgICB9OwoKICAgICAgLyogYWxpZ25tZW50IGluIGNyb3NzIGF4aXMgKi8KCiAgICAgIC0tbGF5b3V0LXN0YXJ0OiB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0OwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1jZW50ZXI6IHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZW5kOiB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDsKICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1iYXNlbGluZTogewogICAgICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZTsKICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH07CgogICAgICAvKiBhbGlnbm1lbnQgaW4gbWFpbiBheGlzICovCgogICAgICAtLWxheW91dC1zdGFydC1qdXN0aWZpZWQ6IHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1jZW50ZXItanVzdGlmaWVkOiB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyOwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH07CgogICAgICAtLWxheW91dC1lbmQtanVzdGlmaWVkOiB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogZW5kOwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtYXJvdW5kLWp1c3RpZmllZDogewogICAgICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWp1c3RpZmllZDogewogICAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtY2VudGVyLWNlbnRlcjogewogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXI7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlci1qdXN0aWZpZWQ7CiAgICAgIH07CgogICAgICAvKiBzZWxmIGFsaWdubWVudCAqLwoKICAgICAgLS1sYXlvdXQtc2VsZi1zdGFydDogewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtc2VsZi1jZW50ZXI6IHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXNlbGYtZW5kOiB7CiAgICAgICAgLW1zLWFsaWduLXNlbGY6IGZsZXgtZW5kOwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1zZWxmLXN0cmV0Y2g6IHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgICAtd2Via2l0LWFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXNlbGYtYmFzZWxpbmU6IHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogYmFzZWxpbmU7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBiYXNlbGluZTsKICAgICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZTsKICAgICAgfTsKCiAgICAgIC8qIG11bHRpLWxpbmUgYWxpZ25tZW50IGluIG1haW4gYXhpcyAqLwoKICAgICAgLS1sYXlvdXQtc3RhcnQtYWxpZ25lZDogewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1lbmQtYWxpZ25lZDogewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kOyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtY2VudGVyLWFsaWduZWQ6IHsKICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlcjsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogY2VudGVyOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWJldHdlZW4tYWxpZ25lZDogewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeTsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWFyb3VuZC1hbGlnbmVkOiB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlOyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICB9OwoKICAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICAgICAgICAgIE90aGVyIExheW91dAogICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKICAgICAgLS1sYXlvdXQtYmxvY2s6IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWludmlzaWJsZTogewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtcmVsYXRpdmU6IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH07CgogICAgICAtLWxheW91dC1maXQ6IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtc2Nyb2xsOiB7CiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZnVsbGJsZWVkOiB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgIH07CgogICAgICAvKiBmaXhlZCBwb3NpdGlvbiAqLwoKICAgICAgLS1sYXlvdXQtZml4ZWQtdG9wOiB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZml4ZWQtcmlnaHQ6IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZpeGVkLWJvdHRvbTogewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZpeGVkLWxlZnQ6IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9OwoKICAgIH0KICA8L3N0eWxlPgo8L2N1c3RvbS1zdHlsZT5gO3ZvLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodm8uY29udGVudCk7dmFyIGJvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Ym8udGV4dENvbnRlbnQ9IltoaWRkZW5dIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9Iixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGJvKTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNsYXNzIHhve2NvbnN0cnVjdG9yKHQpe3hvWyIgIl0odCksdGhpcy50eXBlPXQmJnQudHlwZXx8ImRlZmF1bHQiLHRoaXMua2V5PXQmJnQua2V5LHQmJiJ2YWx1ZSJpbiB0JiYodGhpcy52YWx1ZT10LnZhbHVlKX1nZXQgdmFsdWUoKXt2YXIgdD10aGlzLnR5cGUsZT10aGlzLmtleTtpZih0JiZlKXJldHVybiB4by50eXBlc1t0XSYmeG8udHlwZXNbdF1bZV19c2V0IHZhbHVlKHQpe3ZhciBlPXRoaXMudHlwZSxuPXRoaXMua2V5O2UmJm4mJihlPXhvLnR5cGVzW2VdPXhvLnR5cGVzW2VdfHx7fSxudWxsPT10P2RlbGV0ZSBlW25dOmVbbl09dCl9Z2V0IGxpc3QoKXtpZih0aGlzLnR5cGUpe3ZhciB0PXhvLnR5cGVzW3RoaXMudHlwZV07cmV0dXJuIHQ/T2JqZWN0LmtleXModCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gd29bdGhpcy50eXBlXVt0XX0pLHRoaXMpOltdfX1ieUtleSh0KXtyZXR1cm4gdGhpcy5rZXk9dCx0aGlzLnZhbHVlfX14b1siICJdPWZ1bmN0aW9uKCl7fSx4by50eXBlcz17fTt2YXIgd289eG8udHlwZXM7UnIoe2lzOiJpcm9uLW1ldGEiLHByb3BlcnRpZXM6e3R5cGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJkZWZhdWx0In0sa2V5Ont0eXBlOlN0cmluZ30sdmFsdWU6e3R5cGU6U3RyaW5nLG5vdGlmeTohMH0sc2VsZjp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfc2VsZkNoYW5nZWQifSxfX21ldGE6e3R5cGU6Qm9vbGVhbixjb21wdXRlZDoiX19jb21wdXRlTWV0YSh0eXBlLCBrZXksIHZhbHVlKSJ9fSxob3N0QXR0cmlidXRlczp7aGlkZGVuOiEwfSxfX2NvbXB1dGVNZXRhOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uZXcgeG8oe3R5cGU6dCxrZXk6ZX0pO3JldHVybiB2b2lkIDAhPT1uJiZuIT09aS52YWx1ZT9pLnZhbHVlPW46dGhpcy52YWx1ZSE9PWkudmFsdWUmJih0aGlzLnZhbHVlPWkudmFsdWUpLGl9LGdldCBsaXN0KCl7cmV0dXJuIHRoaXMuX19tZXRhJiZ0aGlzLl9fbWV0YS5saXN0fSxfc2VsZkNoYW5nZWQ6ZnVuY3Rpb24odCl7dCYmKHRoaXMudmFsdWU9dGhpcyl9LGJ5S2V5OmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgeG8oe3R5cGU6dGhpcy50eXBlLGtleTp0fSkudmFsdWV9fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWlubGluZTsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyLWNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CgogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CgogICAgICAgIGZpbGw6IHZhcigtLWlyb24taWNvbi1maWxsLWNvbG9yLCBjdXJyZW50Y29sb3IpOwogICAgICAgIHN0cm9rZTogdmFyKC0taXJvbi1pY29uLXN0cm9rZS1jb2xvciwgbm9uZSk7CgogICAgICAgIHdpZHRoOiB2YXIoLS1pcm9uLWljb24td2lkdGgsIDI0cHgpOwogICAgICAgIGhlaWdodDogdmFyKC0taXJvbi1pY29uLWhlaWdodCwgMjRweCk7CiAgICAgICAgQGFwcGx5IC0taXJvbi1pY29uOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CmAsaXM6Imlyb24taWNvbiIscHJvcGVydGllczp7aWNvbjp7dHlwZTpTdHJpbmd9LHRoZW1lOnt0eXBlOlN0cmluZ30sc3JjOnt0eXBlOlN0cmluZ30sX21ldGE6e3ZhbHVlOmZvLmNyZWF0ZSgiaXJvbi1tZXRhIix7dHlwZToiaWNvbnNldCJ9KX19LG9ic2VydmVyczpbIl91cGRhdGVJY29uKF9tZXRhLCBpc0F0dGFjaGVkKSIsIl91cGRhdGVJY29uKHRoZW1lLCBpc0F0dGFjaGVkKSIsIl9zcmNDaGFuZ2VkKHNyYywgaXNBdHRhY2hlZCkiLCJfaWNvbkNoYW5nZWQoaWNvbiwgaXNBdHRhY2hlZCkiXSxfREVGQVVMVF9JQ09OU0VUOiJpY29ucyIsX2ljb25DaGFuZ2VkOmZ1bmN0aW9uKHQpe3ZhciBlPSh0fHwiIikuc3BsaXQoIjoiKTt0aGlzLl9pY29uTmFtZT1lLnBvcCgpLHRoaXMuX2ljb25zZXROYW1lPWUucG9wKCl8fHRoaXMuX0RFRkFVTFRfSUNPTlNFVCx0aGlzLl91cGRhdGVJY29uKCl9LF9zcmNDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZUljb24oKX0sX3VzZXNJY29uc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWNvbnx8IXRoaXMuc3JjfSxfdXBkYXRlSWNvbjpmdW5jdGlvbigpe3RoaXMuX3VzZXNJY29uc2V0KCk/KHRoaXMuX2ltZyYmdGhpcy5faW1nLnBhcmVudE5vZGUmJllpKHRoaXMucm9vdCkucmVtb3ZlQ2hpbGQodGhpcy5faW1nKSwiIj09PXRoaXMuX2ljb25OYW1lP3RoaXMuX2ljb25zZXQmJnRoaXMuX2ljb25zZXQucmVtb3ZlSWNvbih0aGlzKTp0aGlzLl9pY29uc2V0TmFtZSYmdGhpcy5fbWV0YSYmKHRoaXMuX2ljb25zZXQ9dGhpcy5fbWV0YS5ieUtleSh0aGlzLl9pY29uc2V0TmFtZSksdGhpcy5faWNvbnNldD8odGhpcy5faWNvbnNldC5hcHBseUljb24odGhpcyx0aGlzLl9pY29uTmFtZSx0aGlzLnRoZW1lKSx0aGlzLnVubGlzdGVuKHdpbmRvdywiaXJvbi1pY29uc2V0LWFkZGVkIiwiX3VwZGF0ZUljb24iKSk6dGhpcy5saXN0ZW4od2luZG93LCJpcm9uLWljb25zZXQtYWRkZWQiLCJfdXBkYXRlSWNvbiIpKSk6KHRoaXMuX2ljb25zZXQmJnRoaXMuX2ljb25zZXQucmVtb3ZlSWNvbih0aGlzKSx0aGlzLl9pbWd8fCh0aGlzLl9pbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIiksdGhpcy5faW1nLnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLl9pbWcuc3R5bGUuaGVpZ2h0PSIxMDAlIix0aGlzLl9pbWcuZHJhZ2dhYmxlPSExKSx0aGlzLl9pbWcuc3JjPXRoaXMuc3JjLFlpKHRoaXMucm9vdCkuYXBwZW5kQ2hpbGQodGhpcy5faW1nKSl9fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7aXM6Imlyb24taWNvbnNldC1zdmciLHByb3BlcnRpZXM6e25hbWU6e3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfbmFtZUNoYW5nZWQifSxzaXplOnt0eXBlOk51bWJlcix2YWx1ZToyNH0scnRsTWlycm9yaW5nOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LHVzZUdsb2JhbFJ0bEF0dHJpYnV0ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX21ldGE9bmV3IHhvKHt0eXBlOiJpY29uc2V0IixrZXk6bnVsbCx2YWx1ZTpudWxsfSl9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5kaXNwbGF5PSJub25lIn0sZ2V0SWNvbk5hbWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ljb25zPXRoaXMuX2NyZWF0ZUljb25NYXAoKSxPYmplY3Qua2V5cyh0aGlzLl9pY29ucykubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5uYW1lKyI6Iit0fSksdGhpcyl9LGFwcGx5SWNvbjpmdW5jdGlvbih0LGUpe3RoaXMucmVtb3ZlSWNvbih0KTt2YXIgbj10aGlzLl9jbG9uZUljb24oZSx0aGlzLnJ0bE1pcnJvcmluZyYmdGhpcy5fdGFyZ2V0SXNSVEwodCkpO2lmKG4pe3ZhciBpPVlpKHQucm9vdHx8dCk7cmV0dXJuIGkuaW5zZXJ0QmVmb3JlKG4saS5jaGlsZE5vZGVzWzBdKSx0Ll9zdmdJY29uPW59cmV0dXJuIG51bGx9LHJlbW92ZUljb246ZnVuY3Rpb24odCl7dC5fc3ZnSWNvbiYmKFlpKHQucm9vdHx8dCkucmVtb3ZlQ2hpbGQodC5fc3ZnSWNvbiksdC5fc3ZnSWNvbj1udWxsKX0sX3RhcmdldElzUlRMOmZ1bmN0aW9uKHQpe2lmKG51bGw9PXRoaXMuX190YXJnZXRJc1JUTClpZih0aGlzLnVzZUdsb2JhbFJ0bEF0dHJpYnV0ZSl7dmFyIGU9ZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoImRpciIpP2RvY3VtZW50LmJvZHk6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3RoaXMuX190YXJnZXRJc1JUTD0icnRsIj09PWUuZ2V0QXR0cmlidXRlKCJkaXIiKX1lbHNlIHQmJnQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSYmKHQ9dC5ob3N0KSx0aGlzLl9fdGFyZ2V0SXNSVEw9dCYmInJ0bCI9PT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5kaXJlY3Rpb247cmV0dXJuIHRoaXMuX190YXJnZXRJc1JUTH0sX25hbWVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5fbWV0YS52YWx1ZT1udWxsLHRoaXMuX21ldGEua2V5PXRoaXMubmFtZSx0aGlzLl9tZXRhLnZhbHVlPXRoaXMsdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLmZpcmUoImlyb24taWNvbnNldC1hZGRlZCIsdGhpcyx7bm9kZTp3aW5kb3d9KX0pKX0sX2NyZWF0ZUljb25NYXA6ZnVuY3Rpb24oKXt2YXIgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBZaSh0aGlzKS5xdWVyeVNlbGVjdG9yQWxsKCJbaWRdIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dFtlLmlkXT1lfSkpLHR9LF9jbG9uZUljb246ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5faWNvbnM9dGhpcy5faWNvbnN8fHRoaXMuX2NyZWF0ZUljb25NYXAoKSx0aGlzLl9wcmVwYXJlU3ZnQ2xvbmUodGhpcy5faWNvbnNbdF0sdGhpcy5zaXplLGUpfSxfcHJlcGFyZVN2Z0Nsb25lOmZ1bmN0aW9uKHQsZSxuKXtpZih0KXt2YXIgaT10LmNsb25lTm9kZSghMCkscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIiksbz1pLmdldEF0dHJpYnV0ZSgidmlld0JveCIpfHwiMCAwICIrZSsiICIrZSxhPSJwb2ludGVyLWV2ZW50czogbm9uZTsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IjtyZXR1cm4gbiYmaS5oYXNBdHRyaWJ1dGUoIm1pcnJvci1pbi1ydGwiKSYmKGErPSItd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgtMSwxKTt0cmFuc2Zvcm06c2NhbGUoLTEsMSk7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7Iiksci5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLG8pLHIuc2V0QXR0cmlidXRlKCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwieE1pZFlNaWQgbWVldCIpLHIuc2V0QXR0cmlidXRlKCJmb2N1c2FibGUiLCJmYWxzZSIpLHIuc3R5bGUuY3NzVGV4dD1hLHIuYXBwZW5kQ2hpbGQoaSkucmVtb3ZlQXR0cmlidXRlKCJpZCIpLHJ9cmV0dXJuIG51bGx9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBTbz1fZWA8aXJvbi1pY29uc2V0LXN2ZyBuYW1lPSJpbWFnZSIgc2l6ZT0iMjQiPgo8c3ZnPjxkZWZzPgo8ZyBpZD0iYWRkLWEtcGhvdG8iPjxwYXRoIGQ9Ik0zIDRWMWgydjNoM3YySDV2M0gzVjZIMFY0aDN6bTMgNlY3aDNWNGg3bDEuODMgMkgyMWMxLjEgMCAyIC45IDIgMnYxMmMwIDEuMS0uOSAyLTIgMkg1Yy0xLjEgMC0yLS45LTItMlYxMGgzem03IDljMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTUtNSAyLjI0LTUgNSAyLjI0IDUgNSA1em0tMy4yLTVjMCAxLjc3IDEuNDMgMy4yIDMuMiAzLjJzMy4yLTEuNDMgMy4yLTMuMi0xLjQzLTMuMi0zLjItMy4yLTMuMiAxLjQzLTMuMiAzLjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWRkLXRvLXBob3RvcyI+PHBhdGggZD0iTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTEgOWgtNHY0aC0ydi00SDlWOWg0VjVoMnY0aDR2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGp1c3QiPjxwYXRoIGQ9Ik0xMiAyQzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwIDEwLTQuNDkgMTAtMTBTMTcuNTEgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMy04YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTMgMyAxLjM0IDMgM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3Npc3RhbnQiPjxwYXRoIGQ9Ik0xOSAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNGwzIDMgMy0zaDRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTUuMTIgMTAuODhMMTIgMTdsLTEuODgtNC4xMkw2IDExbDQuMTItMS44OEwxMiA1bDEuODggNC4xMkwxOCAxMWwtNC4xMiAxLjg4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2lzdGFudC1waG90byI+PHBhdGggZD0iTTE0LjQgNkwxNCA0SDV2MTdoMnYtN2g1LjZsLjQgMmg3VjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXVkaW90cmFjayI+PHBhdGggZD0iTTEyIDN2OS4yOGMtLjQ3LS4xNy0uOTctLjI4LTEuNS0uMjhDOC4wMSAxMiA2IDE0LjAxIDYgMTYuNVM4LjAxIDIxIDEwLjUgMjFjMi4zMSAwIDQuMi0xLjc1IDQuNDUtNEgxNVY2aDRWM2gtN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJibHVyLWNpcmN1bGFyIj48cGF0aCBkPSJNMTAgOWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpNNyA5LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0zIDdjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0tMy0zYy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMy02Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTQgOWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLTEuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bTMgNmMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTAtNGMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0yLTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTAtMy41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYmx1ci1saW5lYXIiPjxwYXRoIGQ9Ik01IDE3LjVjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjUuNjcgMS41IDEuNSAxLjV6TTkgMTNjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMC00Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6TTMgMjFoMTh2LTJIM3Yyek01IDkuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVTNS44MyA2LjUgNSA2LjUgMy41IDcuMTcgMy41IDggNC4xNyA5LjUgNSA5LjV6bTAgNGMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNS0xLjUuNjctMS41IDEuNS42NyAxLjUgMS41IDEuNXpNOSAxN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem04LS41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMyAzdjJoMThWM0gzem0xNCA1LjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0wIDRjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xMyA5Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAgNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wIDRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJibHVyLW9mZiI+PHBhdGggZD0iTTE0IDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptLS4yIDQuNDhsLjIuMDJjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjVsLjAyLjJjLjA5LjY3LjYxIDEuMTkgMS4yOCAxLjI4ek0xNCAzLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0tNCAwYy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptMTEgN2MuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEwIDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptOCA4Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAtNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wLTRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptLTQgMTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTIuNSA1LjI3bDMuNzggMy43OEw2IDljLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xYzAtLjEtLjAzLS4xOS0uMDYtLjI4bDIuODEgMi44MWMtLjcxLjExLTEuMjUuNzMtMS4yNSAxLjQ3IDAgLjgzLjY3IDEuNSAxLjUgMS41Ljc0IDAgMS4zNi0uNTQgMS40Ny0xLjI1bDIuODEgMi44MWMtLjA5LS4wMy0uMTgtLjA2LS4yOC0uMDYtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTFjMC0uMS0uMDMtLjE5LS4wNi0uMjhsMy43OCAzLjc4TDIwIDIwLjIzIDMuNzcgNCAyLjUgNS4yN3pNMTAgMTdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMTEtMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNNiAxM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xek0zIDkuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTcgMTFjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek02IDE3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bS0zLTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYmx1ci1vbiI+PHBhdGggZD0iTTYgMTNjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCA0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtOGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0tMyAuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTYgNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0xNSA1LjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xNCA3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAtMy41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptLTExIDEwYy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptNyA3Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMC0xN2MuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEwIDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMCA1LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em04IC41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLThjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC00Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTMgOC41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNMTQgMTdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCAzLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0tNC0xMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTAgOC41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTQtNC41Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptMC00Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTEiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTIiPjxwYXRoIGQ9Ik0xMCAyYy0xLjgyIDAtMy41My41LTUgMS4zNUM3Ljk5IDUuMDggMTAgOC4zIDEwIDEycy0yLjAxIDYuOTItNSA4LjY1QzYuNDcgMjEuNSA4LjE4IDIyIDEwIDIyYzUuNTIgMCAxMC00LjQ4IDEwLTEwUzE1LjUyIDIgMTAgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTMiPjxwYXRoIGQ9Ik05IDJjLTEuMDUgMC0yLjA1LjE2LTMgLjQ2IDQuMDYgMS4yNyA3IDUuMDYgNyA5LjU0IDAgNC40OC0yLjk0IDguMjctNyA5LjU0Ljk1LjMgMS45NS40NiAzIC40NiA1LjUyIDAgMTAtNC40OCAxMC0xMFMxNC41MiAyIDkgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTQiPjxwYXRoIGQ9Ik0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5ek0xMiAxOGMtLjg5IDAtMS43NC0uMi0yLjUtLjU1QzExLjU2IDE2LjUgMTMgMTQuNDIgMTMgMTJzLTEuNDQtNC41LTMuNS01LjQ1QzEwLjI2IDYuMiAxMS4xMSA2IDEyIDZjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYnJpZ2h0bmVzcy01Ij48cGF0aCBkPSJNMjAgMTUuMzFMMjMuMzEgMTIgMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjl6TTEyIDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTYiPjxwYXRoIGQ9Ik0yMCAxNS4zMUwyMy4zMSAxMiAyMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OXpNMTIgMThWNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTciPjxwYXRoIGQ9Ik0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5ek0xMiAxOGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6bTAtMTBjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJyb2tlbi1pbWFnZSI+PHBhdGggZD0iTTIxIDV2Ni41OWwtMy0zLjAxLTQgNC4wMS00LTQtNCA0LTMtMy4wMVY1YzAtMS4xLjktMiAyLTJoMTRjMS4xIDAgMiAuOSAyIDJ6bS0zIDYuNDJsMyAzLjAxVjE5YzAgMS4xLS45IDItMiAySDVjLTEuMSAwLTItLjktMi0ydi02LjU4bDMgMi45OSA0LTQgNCA0IDQtMy45OXoiPjwvcGF0aD48L2c+CjxnIGlkPSJicnVzaCI+PHBhdGggZD0iTTcgMTRjLTEuNjYgMC0zIDEuMzQtMyAzIDAgMS4zMS0xLjE2IDItMiAyIC45MiAxLjIyIDIuNDkgMiA0IDIgMi4yMSAwIDQtMS43OSA0LTQgMC0xLjY2LTEuMzQtMy0zLTN6bTEzLjcxLTkuMzdsLTEuMzQtMS4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBMOSAxMi4yNSAxMS43NSAxNWw4Ljk2LTguOTZjLjM5LS4zOS4zOS0xLjAyIDAtMS40MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJidXJzdC1tb2RlIj48cGF0aCBkPSJNMSA1aDJ2MTRIMXptNCAwaDJ2MTRINXptMTcgMEgxMGMtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDEyYy41NSAwIDEtLjQ1IDEtMVY2YzAtLjU1LS40NS0xLTEtMXpNMTEgMTdsMi41LTMuMTVMMTUuMjkgMTZsMi41LTMuMjJMMjEgMTdIMTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FtZXJhIj48cGF0aCBkPSJNOS40IDEwLjVsNC43Ny04LjI2QzEzLjQ3IDIuMDkgMTIuNzUgMiAxMiAyYy0yLjQgMC00LjYuODUtNi4zMiAyLjI1bDMuNjYgNi4zNS4wNi0uMXpNMjEuNTQgOWMtLjkyLTIuOTItMy4xNS01LjI2LTYtNi4zNEwxMS44OCA5aDkuNjZ6bS4yNiAxaC03LjQ5bC4yOS41IDQuNzYgOC4yNUMyMSAxNi45NyAyMiAxNC42MSAyMiAxMmMwLS42OS0uMDctMS4zNS0uMi0yek04LjU0IDEybC0zLjktNi43NUMzLjAxIDcuMDMgMiA5LjM5IDIgMTJjMCAuNjkuMDcgMS4zNS4yIDJoNy40OWwtMS4xNS0yem0tNi4wOCAzYy45MiAyLjkyIDMuMTUgNS4yNiA2IDYuMzRMMTIuMTIgMTVIMi40NnptMTEuMjcgMGwtMy45IDYuNzZjLjcuMTUgMS40Mi4yNCAyLjE3LjI0IDIuNCAwIDQuNi0uODUgNi4zMi0yLjI1bC0zLjY2LTYuMzUtLjkzIDEuNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYW1lcmEtYWx0Ij48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzLjIiPjwvY2lyY2xlPjxwYXRoIGQ9Ik05IDJMNy4xNyA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMmgtMy4xN0wxNSAySDl6bTMgMTVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhbWVyYS1mcm9udCI+PHBhdGggZD0iTTEwIDIwSDV2Mmg1djJsMy0zLTMtM3Yyem00IDB2Mmg1di0yaC01ek0xMiA4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0xLjk5LjktMS45OSAyUzEwLjkgOCAxMiA4em01LThIN0M1LjkgMCA1IC45IDUgMnYxNGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjJjMC0xLjEtLjktMi0yLTJ6TTcgMmgxMHYxMC41YzAtMS42Ny0zLjMzLTIuNS01LTIuNXMtNSAuODMtNSAyLjVWMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYW1lcmEtcmVhciI+PHBhdGggZD0iTTEwIDIwSDV2Mmg1djJsMy0zLTMtM3Yyem00IDB2Mmg1di0yaC01em0zLTIwSDdDNS45IDAgNSAuOSA1IDJ2MTRjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYyYzAtMS4xLS45LTItMi0yem0tNSA2Yy0xLjExIDAtMi0uOS0yLTJzLjg5LTIgMS45OS0yIDIgLjkgMiAyQzE0IDUuMSAxMy4xIDYgMTIgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYW1lcmEtcm9sbCI+PHBhdGggZD0iTTE0IDVjMC0xLjEtLjktMi0yLTJoLTFWMmMwLS41NS0uNDUtMS0xLTFINmMtLjU1IDAtMSAuNDUtMSAxdjFINGMtMS4xIDAtMiAuOS0yIDJ2MTVjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yaDhWNWgtOHptLTIgMTNoLTJ2LTJoMnYyem0wLTloLTJWN2gydjJ6bTQgOWgtMnYtMmgydjJ6bTAtOWgtMlY3aDJ2MnptNCA5aC0ydi0yaDJ2MnptMC05aC0yVjdoMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNlbnRlci1mb2N1cy1zdHJvbmciPjxwYXRoIGQ9Ik0xMiA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptLTcgN0gzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6TTUgNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTE0LTJoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNlbnRlci1mb2N1cy13ZWFrIj48cGF0aCBkPSJNNSAxNUgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6TTUgNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTE0LTJoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0ek0xMiA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb2xsZWN0aW9ucyI+PHBhdGggZD0iTTIyIDE2VjRjMC0xLjEtLjktMi0yLTJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnptLTExLTRsMi4wMyAyLjcxTDE2IDExbDQgNUg4bDMtNHpNMiA2djE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2SDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29sbGVjdGlvbnMtYm9va21hcmsiPjxwYXRoIGQ9Ik00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTYtNEg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTBsLTIuNS0xLjVMMTUgMTJWNGg1djh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29sb3ItbGVucyI+PHBhdGggZD0iTTEyIDNjLTQuOTcgMC05IDQuMDMtOSA5czQuMDMgOSA5IDljLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjM5LS4xNS0uNzQtLjM5LTEuMDEtLjIzLS4yNi0uMzgtLjYxLS4zOC0uOTkgMC0uODMuNjctMS41IDEuNS0xLjVIMTZjMi43NiAwIDUtMi4yNCA1LTUgMC00LjQyLTQuMDMtOC05LTh6bS01LjUgOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgOSA2LjUgOSA4IDkuNjcgOCAxMC41IDcuMzMgMTIgNi41IDEyem0zLTRDOC42NyA4IDggNy4zMyA4IDYuNVM4LjY3IDUgOS41IDVzMS41LjY3IDEuNSAxLjVTMTAuMzMgOCA5LjUgOHptNSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTMuNjcgNSAxNC41IDVzMS41LjY3IDEuNSAxLjVTMTUuMzMgOCAxNC41IDh6bTMgNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE2LjY3IDkgMTcuNSA5czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb2xvcml6ZSI+PHBhdGggZD0iTTIwLjcxIDUuNjNsLTIuMzQtMi4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBsLTMuMTIgMy4xMi0xLjkzLTEuOTEtMS40MSAxLjQxIDEuNDIgMS40MkwzIDE2LjI1VjIxaDQuNzVsOC45Mi04LjkyIDEuNDIgMS40MiAxLjQxLTEuNDEtMS45Mi0xLjkyIDMuMTItMy4xMmMuNC0uNC40LTEuMDMuMDEtMS40MnpNNi45MiAxOUw1IDE3LjA4bDguMDYtOC4wNiAxLjkyIDEuOTJMNi45MiAxOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb21wYXJlIj48cGF0aCBkPSJNMTAgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDV2MmgyVjFoLTJ2MnptMCAxNUg1bDUtNnY2em05LTE1aC01djJoNXYxM2wtNS02djloNWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNvbnRyb2wtcG9pbnQiPjxwYXRoIGQ9Ik0xMyA3aC0ydjRIN3YyaDR2NGgydi00aDR2LTJoLTRWN3ptLTEtNUM2LjQ5IDIgMiA2LjQ5IDIgMTJzNC40OSAxMCAxMCAxMCAxMC00LjQ5IDEwLTEwUzE3LjUxIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udHJvbC1wb2ludC1kdXBsaWNhdGUiPjxwYXRoIGQ9Ik0xNiA4aC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zek0yIDEyYzAtMi43OSAxLjY0LTUuMiA0LjAxLTYuMzJWMy41MkMyLjUyIDQuNzYgMCA4LjA5IDAgMTJzMi41MiA3LjI0IDYuMDEgOC40OHYtMi4xNkMzLjY0IDE3LjIgMiAxNC43OSAyIDEyem0xMy05Yy00Ljk2IDAtOSA0LjA0LTkgOXM0LjA0IDkgOSA5IDktNC4wNCA5LTktNC4wNC05LTktOXptMCAxNmMtMy44NiAwLTctMy4xNC03LTdzMy4xNC03IDctNyA3IDMuMTQgNyA3LTMuMTQgNy03IDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcCI+PHBhdGggZD0iTTE3IDE1aDJWN2MwLTEuMS0uOS0yLTItMkg5djJoOHY4ek03IDE3VjFINXY0SDF2Mmg0djEwYzAgMS4xLjkgMiAyIDJoMTB2NGgydi00aDR2LTJIN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJjcm9wLTE2LTkiPjxwYXRoIGQ9Ik0xOSA2SDVjLTEuMSAwLTIgLjktMiAydjhjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEwSDVWOGgxNHY4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtMy0yIj48cGF0aCBkPSJNMTkgNEg1Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINVY2aDE0djEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtNS00Ij48cGF0aCBkPSJNMTkgNUg1Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTJINVY3aDE0djEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtNy01Ij48cGF0aCBkPSJNMTkgN0g1Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnptMCA4SDVWOWgxNHY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtZGluIj48cGF0aCBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtZnJlZSI+PHBhdGggZD0iTTMgNXY0aDJWNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ6bTIgMTBIM3Y0YzAgMS4xLjkgMiAyIDJoNHYtMkg1di00em0xNCA0aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0em0wLTE2aC00djJoNHY0aDJWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjcm9wLWxhbmRzY2FwZSI+PHBhdGggZD0iTTE5IDVINWMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDEySDVWN2gxNHYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjcm9wLW9yaWdpbmFsIj48cGF0aCBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0em0tNS4wNC02LjcxbC0yLjc1IDMuNTQtMS45Ni0yLjM2TDYuNSAxN2gxMWwtMy41NC00LjcxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtcG9ydHJhaXQiPjxwYXRoIGQ9Ik0xNyAzSDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg3VjVoMTB2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcC1yb3RhdGUiPjxwYXRoIGQ9Ik03LjQ3IDIxLjQ5QzQuMiAxOS45MyAxLjg2IDE2Ljc2IDEuNSAxM0gwYy41MSA2LjE2IDUuNjYgMTEgMTEuOTUgMTEgLjIzIDAgLjQ0LS4wMi42Ni0uMDNMOC44IDIwLjE1bC0xLjMzIDEuMzR6TTEyLjA1IDBjLS4yMyAwLS40NC4wMi0uNjYuMDRsMy44MSAzLjgxIDEuMzMtMS4zM0MxOS44IDQuMDcgMjIuMTQgNy4yNCAyMi41IDExSDI0Yy0uNTEtNi4xNi01LjY2LTExLTExLjk1LTExek0xNiAxNGgyVjhjMC0xLjExLS45LTItMi0yaC02djJoNnY2em0tOCAyVjRINnYySDR2MmgydjhjMCAxLjEuODkgMiAyIDJoOHYyaDJ2LTJoMnYtMkg4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3Atc3F1YXJlIj48cGF0aCBkPSJNMTggNEg2Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINlY2aDEydjEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRlaGF6ZSI+PHBhdGggZD0iTTIgMTUuNXYyaDIwdi0ySDJ6bTAtNXYyaDIwdi0ySDJ6bTAtNXYyaDIwdi0ySDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGV0YWlscyI+PHBhdGggZD0iTTMgNGw5IDE2IDktMTZIM3ptMy4zOCAyaDExLjI1TDEyIDE2IDYuMzggNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJlZGl0Ij48cGF0aCBkPSJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTIuMzQtMi4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlIj48cGF0aCBkPSJNMTUgMTd2Mmgydi0yaDJ2LTJoLTJ2LTJoLTJ2MmgtMnYyaDJ6bTUtMTVINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek01IDVoNnYySDVWNXptMTUgMTVINEwyMCA0djE2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlLW5lZy0xIj48cGF0aCBkPSJNNCAxMXYyaDh2LTJINHptMTUgN2gtMlY3LjM4TDE0IDguNFY2LjdMMTguNyA1aC4zdjEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlLW5lZy0yIj48cGF0aCBkPSJNMTUuMDUgMTYuMjlsMi44Ni0zLjA3Yy4zOC0uMzkuNzItLjc5IDEuMDQtMS4xOC4zMi0uMzkuNTktLjc4LjgyLTEuMTcuMjMtLjM5LjQxLS43OC41NC0xLjE3cy4xOS0uNzkuMTktMS4xOGMwLS41My0uMDktMS4wMi0uMjctMS40Ni0uMTgtLjQ0LS40NC0uODEtLjc4LTEuMTEtLjM0LS4zMS0uNzctLjU0LTEuMjYtLjcxLS41MS0uMTYtMS4wOC0uMjQtMS43Mi0uMjQtLjY5IDAtMS4zMS4xMS0xLjg1LjMyLS41NC4yMS0xIC41MS0xLjM2Ljg4LS4zNy4zNy0uNjUuOC0uODQgMS4zLS4xOC40Ny0uMjcuOTctLjI4IDEuNWgyLjE0Yy4wMS0uMzEuMDUtLjYuMTMtLjg3LjA5LS4yOS4yMy0uNTQuNC0uNzUuMTgtLjIxLjQxLS4zNy42OC0uNDkuMjctLjEyLjYtLjE4Ljk2LS4xOC4zMSAwIC41OC4wNS44MS4xNS4yMy4xLjQzLjI1LjU5LjQzLjE2LjE4LjI4LjQuMzcuNjUuMDguMjUuMTMuNTIuMTMuODEgMCAuMjItLjAzLjQzLS4wOC42NS0uMDYuMjItLjE1LjQ1LS4yOS43LS4xNC4yNS0uMzIuNTMtLjU2LjgzLS4yMy4zLS41Mi42NS0uODggMS4wM2wtNC4xNyA0LjU1VjE4SDIxdi0xLjcxaC01Ljk1ek0yIDExdjJoOHYtMkgyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlLXBsdXMtMSI+PHBhdGggZD0iTTEwIDdIOHY0SDR2Mmg0djRoMnYtNGg0di0yaC00Vjd6bTEwIDExaC0yVjcuMzhMMTUgOC40VjYuN0wxOS43IDVoLjN2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhwb3N1cmUtcGx1cy0yIj48cGF0aCBkPSJNMTYuMDUgMTYuMjlsMi44Ni0zLjA3Yy4zOC0uMzkuNzItLjc5IDEuMDQtMS4xOC4zMi0uMzkuNTktLjc4LjgyLTEuMTcuMjMtLjM5LjQxLS43OC41NC0xLjE3LjEzLS4zOS4xOS0uNzkuMTktMS4xOCAwLS41My0uMDktMS4wMi0uMjctMS40Ni0uMTgtLjQ0LS40NC0uODEtLjc4LTEuMTEtLjM0LS4zMS0uNzctLjU0LTEuMjYtLjcxLS41MS0uMTYtMS4wOC0uMjQtMS43Mi0uMjQtLjY5IDAtMS4zMS4xMS0xLjg1LjMyLS41NC4yMS0xIC41MS0xLjM2Ljg4LS4zNy4zNy0uNjUuOC0uODQgMS4zLS4xOC40Ny0uMjcuOTctLjI4IDEuNWgyLjE0Yy4wMS0uMzEuMDUtLjYuMTMtLjg3LjA5LS4yOS4yMy0uNTQuNC0uNzUuMTgtLjIxLjQxLS4zNy42OC0uNDkuMjctLjEyLjYtLjE4Ljk2LS4xOC4zMSAwIC41OC4wNS44MS4xNS4yMy4xLjQzLjI1LjU5LjQzLjE2LjE4LjI4LjQuMzcuNjUuMDguMjUuMTMuNTIuMTMuODEgMCAuMjItLjAzLjQzLS4wOC42NS0uMDYuMjItLjE1LjQ1LS4yOS43LS4xNC4yNS0uMzIuNTMtLjU2LjgzLS4yMy4zLS41Mi42NS0uODggMS4wM2wtNC4xNyA0LjU1VjE4SDIydi0xLjcxaC01Ljk1ek04IDdINnY0SDJ2Mmg0djRoMnYtNGg0di0ySDhWN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJleHBvc3VyZS16ZXJvIj48cGF0aCBkPSJNMTYuMTQgMTIuNWMwIDEtLjEgMS44NS0uMyAyLjU1LS4yLjctLjQ4IDEuMjctLjgzIDEuNy0uMzYuNDQtLjc5Ljc1LTEuMy45NS0uNTEuMi0xLjA3LjMtMS43LjMtLjYyIDAtMS4xOC0uMS0xLjY5LS4zLS41MS0uMi0uOTUtLjUxLTEuMzEtLjk1LS4zNi0uNDQtLjY1LTEuMDEtLjg1LTEuNy0uMi0uNy0uMy0xLjU1LS4zLTIuNTV2LTIuMDRjMC0xIC4xLTEuODUuMy0yLjU1LjItLjcuNDgtMS4yNi44NC0xLjY5LjM2LS40My44LS43NCAxLjMxLS45M0MxMC44MSA1LjEgMTEuMzggNSAxMiA1Yy42MyAwIDEuMTkuMSAxLjcuMjkuNTEuMTkuOTUuNSAxLjMxLjkzLjM2LjQzLjY0Ljk5Ljg0IDEuNjkuMi43LjMgMS41NC4zIDIuNTV2Mi4wNHptLTIuMTEtMi4zNmMwLS42NC0uMDUtMS4xOC0uMTMtMS42Mi0uMDktLjQ0LS4yMi0uNzktLjQtMS4wNi0uMTctLjI3LS4zOS0uNDYtLjY0LS41OC0uMjUtLjEzLS41NC0uMTktLjg2LS4xOS0uMzIgMC0uNjEuMDYtLjg2LjE4cy0uNDcuMzEtLjY0LjU4Yy0uMTcuMjctLjMxLjYyLS40IDEuMDZzLS4xMy45OC0uMTMgMS42MnYyLjY3YzAgLjY0LjA1IDEuMTguMTQgMS42Mi4wOS40NS4yMy44MS40IDEuMDlzLjM5LjQ4LjY0LjYxLjU0LjE5Ljg3LjE5Yy4zMyAwIC42Mi0uMDYuODctLjE5cy40Ni0uMzMuNjMtLjYxYy4xNy0uMjguMy0uNjQuMzktMS4wOS4wOS0uNDUuMTMtLjk5LjEzLTEuNjJ2LTIuNjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyIj48cGF0aCBkPSJNMTUuOTYgMTAuMjlsLTIuNzUgMy41NC0xLjk2LTIuMzZMOC41IDE1aDExbC0zLjU0LTQuNzF6TTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTEiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTEgMTBoMlY1aC00djJoMnY4em03LTE0SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTIiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tNC00aC00di0yaDJjMS4xIDAgMi0uODkgMi0yVjdjMC0xLjExLS45LTItMi0yaC00djJoNHYyaC0yYy0xLjEgMC0yIC44OS0yIDJ2NGg2di0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci0zIj48cGF0aCBkPSJNMjEgMUg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTQgOHYtMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNS44MyAwIDEuNS0uNjcgMS41LTEuNVY3YzAtMS4xMS0uOS0yLTItMmgtNHYyaDR2MmgtMnYyaDJ2MmgtNHYyaDRjMS4xIDAgMi0uODkgMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci00Ij48cGF0aCBkPSJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTEyIDEwaDJWNWgtMnY0aC0yVjVoLTJ2Nmg0djR6bTYtMTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItNSI+PHBhdGggZD0iTTIxIDFIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHpNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE0IDh2LTJjMC0xLjExLS45LTItMi0yaC0yVjdoNFY1aC02djZoNHYyaC00djJoNGMxLjEgMCAyLS44OSAyLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTYiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0yaDJjMS4xIDAgMi0uODkgMi0ydi0yYzAtMS4xMS0uOS0yLTItMmgtMlY3aDRWNWgtNGMtMS4xIDAtMiAuODktMiAydjZjMCAxLjExLjkgMiAyIDJ6bTAtNGgydjJoLTJ2LTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTciPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0ybDQtOFY1aC02djJoNGwtNCA4aDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTgiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0yaDJjMS4xIDAgMi0uODkgMi0ydi0xLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LjgzIDAgMS41LS42NyAxLjUtMS41VjdjMC0xLjExLS45LTItMi0yaC0yYy0xLjEgMC0yIC44OS0yIDJ2MS41YzAgLjgzLjY3IDEuNSAxLjUgMS41LS44MyAwLTEuNS42Ny0xLjUgMS41VjEzYzAgMS4xMS45IDIgMiAyem0wLThoMnYyaC0yVjd6bTAgNGgydjJoLTJ2LTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTkiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0xNSA1aC0yYy0xLjEgMC0yIC44OS0yIDJ2MmMwIDEuMTEuOSAyIDIgMmgydjJoLTR2Mmg0YzEuMSAwIDItLjg5IDItMlY3YzAtMS4xMS0uOS0yLTItMnptMCA0aC0yVjdoMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci05LXBsdXMiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTEgN1Y4YzAtMS4xMS0uOS0yLTItMmgtMWMtMS4xIDAtMiAuODktMiAydjFjMCAxLjExLjkgMiAyIDJoMXYxSDl2MmgzYzEuMSAwIDItLjg5IDItMnptLTMtM1Y4aDF2MWgtMXptMTAtOEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgOGgtMlY3aC0ydjJoLTJ2MmgydjJoMnYtMmgydjZIN1YzaDE0djZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLWItYW5kLXciPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNmwtNy04djhINWw3LThWNWg3djE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci1jZW50ZXItZm9jdXMiPjxwYXRoIGQ9Ik01IDE1SDN2NGMwIDEuMS45IDIgMiAyaDR2LTJINXYtNHpNNSA1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnY0aDJWNXptMTQtMmgtNHYyaDR2NGgyVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6TTEyIDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci1kcmFtYSI+PHBhdGggZD0iTTE5LjM1IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYxIDUuNjQgNS4zNiA4LjA0IDIuMzUgOC4zNiAwIDEwLjkgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTkgMThINmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0aDJjMC0yLjc2LTEuODYtNS4wOC00LjQtNS43OEM4LjYxIDYuODggMTAuMiA2IDEyIDZjMy4wMyAwIDUuNSAyLjQ3IDUuNSA1LjV2LjVIMTljMS42NSAwIDMgMS4zNSAzIDNzLTEuMzUgMy0zIDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLWZyYW1lcyI+PHBhdGggZD0iTTIwIDRoLTRsLTQtNC00IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE2SDRWNmg0LjUybDMuNTItMy41TDE1LjUyIDZIMjB2MTR6TTE4IDhINnYxMGgxMiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci1oZHIiPjxwYXRoIGQ9Ik0xNCA2bC0zLjc1IDUgMi44NSAzLjgtMS42IDEuMkM5LjgxIDEzLjc1IDcgMTAgNyAxMGwtNiA4aDIyTDE0IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLW5vbmUiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci10aWx0LXNoaWZ0Ij48cGF0aCBkPSJNMTEgNC4wN1YyLjA1Yy0yLjAxLjItMy44NCAxLTUuMzIgMi4yMUw3LjEgNS42OWMxLjExLS44NiAyLjQ0LTEuNDQgMy45LTEuNjJ6bTcuMzIuMTlDMTYuODQgMy4wNSAxNS4wMSAyLjI1IDEzIDIuMDV2Mi4wMmMxLjQ2LjE4IDIuNzkuNzYgMy45IDEuNjJsMS40Mi0xLjQzek0xOS45MyAxMWgyLjAyYy0uMi0yLjAxLTEtMy44NC0yLjIxLTUuMzJMMTguMzEgNy4xYy44NiAxLjExIDEuNDQgMi40NCAxLjYyIDMuOXpNNS42OSA3LjFMNC4yNiA1LjY4QzMuMDUgNy4xNiAyLjI1IDguOTkgMi4wNSAxMWgyLjAyYy4xOC0xLjQ2Ljc2LTIuNzkgMS42Mi0zLjl6TTQuMDcgMTNIMi4wNWMuMiAyLjAxIDEgMy44NCAyLjIxIDUuMzJsMS40My0xLjQzYy0uODYtMS4xLTEuNDQtMi40My0xLjYyLTMuODl6TTE1IDEyYzAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzIDEuMzQgMyAzIDMgMy0xLjM0IDMtM3ptMy4zMSA0LjlsMS40MyAxLjQzYzEuMjEtMS40OCAyLjAxLTMuMzIgMi4yMS01LjMyaC0yLjAyYy0uMTggMS40NS0uNzYgMi43OC0xLjYyIDMuODl6TTEzIDE5LjkzdjIuMDJjMi4wMS0uMiAzLjg0LTEgNS4zMi0yLjIxbC0xLjQzLTEuNDNjLTEuMS44Ni0yLjQzIDEuNDQtMy44OSAxLjYyem0tNy4zMi0uMTlDNy4xNiAyMC45NSA5IDIxLjc1IDExIDIxLjk1di0yLjAyYy0xLjQ2LS4xOC0yLjc5LS43Ni0zLjktMS42MmwtMS40MiAxLjQzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci12aW50YWdlIj48cGF0aCBkPSJNMTguNyAxMi40Yy0uMjgtLjE2LS41Ny0uMjktLjg2LS40LjI5LS4xMS41OC0uMjQuODYtLjQgMS45Mi0xLjExIDIuOTktMy4xMiAzLTUuMTktMS43OS0xLjAzLTQuMDctMS4xMS02IDAtLjI4LjE2LS41NC4zNS0uNzguNTQuMDUtLjMxLjA4LS42My4wOC0uOTUgMC0yLjIyLTEuMjEtNC4xNS0zLTUuMTlDMTAuMjEgMS44NSA5IDMuNzggOSA2YzAgLjMyLjAzLjY0LjA4Ljk1LS4yNC0uMi0uNS0uMzktLjc4LS41NS0xLjkyLTEuMTEtNC4yLTEuMDMtNiAwIDAgMi4wNyAxLjA3IDQuMDggMyA1LjE5LjI4LjE2LjU3LjI5Ljg2LjQtLjI5LjExLS41OC4yNC0uODYuNC0xLjkyIDEuMTEtMi45OSAzLjEyLTMgNS4xOSAxLjc5IDEuMDMgNC4wNyAxLjExIDYgMCAuMjgtLjE2LjU0LS4zNS43OC0uNTQtLjA1LjMyLS4wOC42NC0uMDguOTYgMCAyLjIyIDEuMjEgNC4xNSAzIDUuMTkgMS43OS0xLjA0IDMtMi45NyAzLTUuMTkgMC0uMzItLjAzLS42NC0uMDgtLjk1LjI0LjIuNS4zOC43OC41NCAxLjkyIDEuMTEgNC4yIDEuMDMgNiAwLS4wMS0yLjA3LTEuMDgtNC4wOC0zLTUuMTl6TTEyIDE2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDQtMS43OSA0LTQgNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGFyZSI+PHBhdGggZD0iTTcgMTFIMXYyaDZ2LTJ6bTIuMTctMy4yNEw3LjA1IDUuNjQgNS42NCA3LjA1bDIuMTIgMi4xMiAxLjQxLTEuNDF6TTEzIDFoLTJ2NmgyVjF6bTUuMzYgNi4wNWwtMS40MS0xLjQxLTIuMTIgMi4xMiAxLjQxIDEuNDEgMi4xMi0yLjEyek0xNyAxMXYyaDZ2LTJoLTZ6bS01LTJjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0yLjgzIDcuMjRsMi4xMiAyLjEyIDEuNDEtMS40MS0yLjEyLTIuMTItMS40MSAxLjQxem0tOS4xOS43MWwxLjQxIDEuNDEgMi4xMi0yLjEyLTEuNDEtMS40MS0yLjEyIDIuMTJ6TTExIDIzaDJ2LTZoLTJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGFzaC1hdXRvIj48cGF0aCBkPSJNMyAydjEyaDN2OWw3LTEySDlsNC05SDN6bTE2IDBoLTJsLTMuMiA5aDEuOWwuNy0yaDMuMmwuNyAyaDEuOUwxOSAyem0tMi4xNSA1LjY1TDE4IDRsMS4xNSAzLjY1aC0yLjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxhc2gtb2ZmIj48cGF0aCBkPSJNMy4yNyAzTDIgNC4yN2w1IDVWMTNoM3Y5bDMuNTgtNi4xNEwxNy43MyAyMCAxOSAxOC43MyAzLjI3IDN6TTE3IDEwaC00bDQtOEg3djIuMThsOC40NiA4LjQ2TDE3IDEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZsYXNoLW9uIj48cGF0aCBkPSJNNyAydjExaDN2OWw3LTEyaC00bDQtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGlwIj48cGF0aCBkPSJNMTUgMjFoMnYtMmgtMnYyem00LTEyaDJWN2gtMnYyek0zIDV2MTRjMCAxLjEuOSAyIDIgMmg0di0ySDVWNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ6bTE2LTJ2MmgyYzAtMS4xLS45LTItMi0yem0tOCAyMGgyVjFoLTJ2MjJ6bTgtNmgydi0yaC0ydjJ6TTE1IDVoMlYzaC0ydjJ6bTQgOGgydi0yaC0ydjJ6bTAgOGMxLjEgMCAyLS45IDItMmgtMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyYWRpZW50Ij48cGF0aCBkPSJNMTEgOWgydjJoLTJ6bS0yIDJoMnYySDl6bTQgMGgydjJoLTJ6bTItMmgydjJoLTJ6TTcgOWgydjJIN3ptMTItNkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMThIN3YtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTItN2gtMnYyaDJ2MmgtMnYtMmgtMnYyaC0ydi0yaC0ydjJIOXYtMkg3djJINXYtMmgydi0ySDVWNWgxNHY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyYWluIj48cGF0aCBkPSJNMTAgMTJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yek02IDhjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDhjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0xMi04YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptLTQgOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTQtNGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS00LTRjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0tNC00Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJncmlkLW9mZiI+PHBhdGggZD0iTTggNHYxLjQ1bDIgMlY0aDR2NGgtMy40NWwyIDJIMTR2MS40NWwyIDJWMTBoNHY0aC0zLjQ1bDIgMkgyMHYxLjQ1bDIgMlY0YzAtMS4xLS45LTItMi0ySDQuNTVsMiAySDh6bTggMGg0djRoLTRWNHpNMS4yNyAxLjI3TDAgMi41NWwyIDJWMjBjMCAxLjEuOSAyIDIgMmgxNS40NmwyIDIgMS4yNy0xLjI3TDEuMjcgMS4yN3pNMTAgMTIuNTVMMTEuNDUgMTRIMTB2LTEuNDV6bS02LTZMNS40NSA4SDRWNi41NXpNOCAyMEg0di00aDR2NHptMC02SDR2LTRoMy40NWwuNTUuNTVWMTR6bTYgNmgtNHYtNGgzLjQ1bC41NS41NFYyMHptMiAwdi0xLjQ2TDE3LjQ2IDIwSDE2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyaWQtb24iPjxwYXRoIGQ9Ik0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNOCAyMEg0di00aDR2NHptMC02SDR2LTRoNHY0em0wLTZINFY0aDR2NHptNiAxMmgtNHYtNGg0djR6bTAtNmgtNHYtNGg0djR6bTAtNmgtNFY0aDR2NHptNiAxMmgtNHYtNGg0djR6bTAtNmgtNHYtNGg0djR6bTAtNmgtNFY0aDR2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJoZHItb2ZmIj48cGF0aCBkPSJNMTcuNSAxNXYtMmgxLjFsLjkgMkgyMWwtLjktMi4xYy41LS4yLjktLjguOS0xLjR2LTFjMC0uOC0uNy0xLjUtMS41LTEuNUgxNnY0LjlsMS4xIDEuMWguNHptMC00LjVoMnYxaC0ydi0xem0tNC41IDB2LjRsMS41IDEuNXYtMS45YzAtLjgtLjctMS41LTEuNS0xLjVoLTEuOWwxLjUgMS41aC40em0tMy41LTFsLTctNy0xLjEgMUw2LjkgOWgtLjR2MmgtMlY5SDN2NmgxLjV2LTIuNWgyVjE1SDh2LTQuOWwxLjUgMS41VjE1aDMuNGw3LjYgNy42IDEuMS0xLjEtMTIuMS0xMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJoZHItb24iPjxwYXRoIGQ9Ik0yMSAxMS41di0xYzAtLjgtLjctMS41LTEuNS0xLjVIMTZ2NmgxLjV2LTJoMS4xbC45IDJIMjFsLS45LTIuMWMuNS0uMy45LS44LjktMS40em0tMS41IDBoLTJ2LTFoMnYxem0tMTMtLjVoLTJWOUgzdjZoMS41di0yLjVoMlYxNUg4VjlINi41djJ6TTEzIDlIOS41djZIMTNjLjggMCAxLjUtLjcgMS41LTEuNXYtM2MwLS44LS43LTEuNS0xLjUtMS41em0wIDQuNWgtMnYtM2gydjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGRyLXN0cm9uZyI+PHBhdGggZD0iTTE3IDZjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02ek01IDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imhkci13ZWFrIj48cGF0aCBkPSJNNSA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMTItMmMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bTAgMTBjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImhlYWxpbmciPjxwYXRoIGQ9Ik0xNy43MyAxMi4wMmwzLjk4LTMuOThjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtNC4zNC00LjM0Yy0uMzktLjM5LTEuMDItLjM5LTEuNDEgMGwtMy45OCAzLjk4TDggMi4yOUM3LjggMi4xIDcuNTUgMiA3LjI5IDJjLS4yNSAwLS41MS4xLS43LjI5TDIuMjUgNi42M2MtLjM5LjM5LS4zOSAxLjAyIDAgMS40MWwzLjk4IDMuOThMMi4yNSAxNmMtLjM5LjM5LS4zOSAxLjAyIDAgMS40MWw0LjM0IDQuMzRjLjM5LjM5IDEuMDIuMzkgMS40MSAwbDMuOTgtMy45OCAzLjk4IDMuOThjLjIuMi40NS4yOS43MS4yOS4yNiAwIC41MS0uMS43MS0uMjlsNC4zNC00LjM0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTMuOTktMy45OHpNMTIgOWMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tNC43MSAxLjk2TDMuNjYgNy4zNGwzLjYzLTMuNjMgMy42MiAzLjYyLTMuNjIgMy42M3pNMTAgMTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMiAyYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTItNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0yLjY2IDkuMzRsLTMuNjMtMy42MiAzLjYzLTMuNjMgMy42MiAzLjYyLTMuNjIgMy42M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJpbWFnZSI+PHBhdGggZD0iTTIxIDE5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnpNOC41IDEzLjVsMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1bDMuNS00LjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW1hZ2UtYXNwZWN0LXJhdGlvIj48cGF0aCBkPSJNMTYgMTBoLTJ2Mmgydi0yem0wIDRoLTJ2Mmgydi0yem0tOC00SDZ2Mmgydi0yem00IDBoLTJ2Mmgydi0yem04LTZINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNmgxNnYxMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJpc28iPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNNS41IDcuNWgydi0ySDl2MmgyVjlIOXYySDcuNVY5aC0yVjcuNXpNMTkgMTlINUwxOSA1djE0em0tMi0ydi0xLjVoLTVWMTdoNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYW5kc2NhcGUiPjxwYXRoIGQ9Ik0xNCA2bC0zLjc1IDUgMi44NSAzLjgtMS42IDEuMkM5LjgxIDEzLjc1IDcgMTAgNyAxMGwtNiA4aDIyTDE0IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibGVhay1hZGQiPjxwYXRoIGQ9Ik02IDNIM3YzYzEuNjYgMCAzLTEuMzQgMy0zem04IDBoLTJjMCA0Ljk3LTQuMDMgOS05IDl2MmM2LjA4IDAgMTEtNC45MyAxMS0xMXptLTQgMEg4YzAgMi43Ni0yLjI0IDUtNSA1djJjMy44NyAwIDctMy4xMyA3LTd6bTAgMThoMmMwLTQuOTcgNC4wMy05IDktOXYtMmMtNi4wNyAwLTExIDQuOTMtMTEgMTF6bTggMGgzdi0zYy0xLjY2IDAtMyAxLjM0LTMgM3ptLTQgMGgyYzAtMi43NiAyLjI0LTUgNS01di0yYy0zLjg3IDAtNyAzLjEzLTcgN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsZWFrLXJlbW92ZSI+PHBhdGggZD0iTTEwIDNIOGMwIC4zNy0uMDQuNzItLjEyIDEuMDZsMS41OSAxLjU5QzkuODEgNC44NCAxMCAzLjk0IDEwIDN6TTMgNC4yN2wyLjg0IDIuODRDNS4wMyA3LjY3IDQuMDYgOCAzIDh2MmMxLjYxIDAgMy4wOS0uNTUgNC4yNy0xLjQ2TDguNyA5Ljk3QzcuMTQgMTEuMjQgNS4xNiAxMiAzIDEydjJjMi43MSAwIDUuMTktLjk5IDcuMTEtMi42MmwyLjUgMi41QzEwLjk5IDE1LjgxIDEwIDE4LjI5IDEwIDIxaDJjMC0yLjE2Ljc2LTQuMTQgMi4wMy01LjY5bDEuNDMgMS40M0MxNC41NSAxNy45MSAxNCAxOS4zOSAxNCAyMWgyYzAtMS4wNi4zMy0yLjAzLjg5LTIuODRMMTkuNzMgMjEgMjEgMTkuNzMgNC4yNyAzIDMgNC4yN3pNMTQgM2gtMmMwIDEuNS0uMzcgMi45MS0xLjAyIDQuMTZsMS40NiAxLjQ2QzEzLjQyIDYuOTggMTQgNS4wNiAxNCAzem01Ljk0IDEzLjEyYy4zNC0uMDguNjktLjEyIDEuMDYtLjEydi0yYy0uOTQgMC0xLjg0LjE5LTIuNjYuNTJsMS42IDEuNnptLTQuNTYtNC41NmwxLjQ2IDEuNDZDMTguMDkgMTIuMzcgMTkuNSAxMiAyMSAxMnYtMmMtMi4wNiAwLTMuOTguNTgtNS42MiAxLjU2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxlbnMiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxpbmtlZC1jYW1lcmEiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTQiIHI9IjMuMiI+PC9jaXJjbGU+PHBhdGggZD0iTTE2IDMuMzNjMi41OCAwIDQuNjcgMi4wOSA0LjY3IDQuNjdIMjJjMC0zLjMxLTIuNjktNi02LTZ2MS4zM00xNiA2YzEuMTEgMCAyIC44OSAyIDJoMS4zM2MwLTEuODQtMS40OS0zLjMzLTMuMzMtMy4zM1Y2Ij48L3BhdGg+PHBhdGggZD0iTTE3IDljMC0xLjExLS44OS0yLTItMlY0SDlMNy4xNyA2SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOWgtNXptLTUgMTBjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxvb2tzIj48cGF0aCBkPSJNMTIgMTBjLTMuODYgMC03IDMuMTQtNyA3aDJjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWgyYzAtMy44Ni0zLjE0LTctNy03em0wLTRDNS45MyA2IDEgMTAuOTMgMSAxN2gyYzAtNC45NiA0LjA0LTkgOS05czkgNC4wNCA5IDloMmMwLTYuMDctNC45My0xMS0xMS0xMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb29rcy0zIj48cGF0aCBkPSJNMTkuMDEgM2gtMTRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgNy41YzAgLjgzLS42NyAxLjUtMS41IDEuNS44MyAwIDEuNS42NyAxLjUgMS41VjE1YzAgMS4xMS0uOSAyLTIgMmgtNHYtMmg0di0yaC0ydi0yaDJWOWgtNFY3aDRjMS4xIDAgMiAuODkgMiAydjEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb29rcy00Ij48cGF0aCBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00IDE0aC0ydi00SDlWN2gydjRoMlY3aDJ2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9va3MtNSI+PHBhdGggZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNCA2aC00djJoMmMxLjEgMCAyIC44OSAyIDJ2MmMwIDEuMTEtLjkgMi0yIDJIOXYtMmg0di0ySDlWN2g2djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9va3MtNiI+PHBhdGggZD0iTTExIDE1aDJ2LTJoLTJ2MnptOC0xMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00IDZoLTR2MmgyYzEuMSAwIDIgLjg5IDIgMnYyYzAgMS4xMS0uOSAyLTIgMmgtMmMtMS4xIDAtMi0uODktMi0yVjljMC0xLjExLjktMiAyLTJoNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxvb2tzLW9uZSI+PHBhdGggZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNSAxNGgtMlY5aC0yVjdoNHYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb29rcy10d28iPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgOGMwIDEuMTEtLjkgMi0yIDJoLTJ2Mmg0djJIOXYtNGMwLTEuMTEuOS0yIDItMmgyVjlIOVY3aDRjMS4xIDAgMiAuODkgMiAydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG91cGUiPjxwYXRoIGQ9Ik0xMyA3aC0ydjRIN3YyaDR2NGgydi00aDR2LTJoLTRWN3ptLTEtNUM2LjQ5IDIgMiA2LjQ5IDIgMTJzNC40OSAxMCAxMCAxMGg4YzEuMSAwIDItLjkgMi0ydi04YzAtNS41MS00LjQ5LTEwLTEwLTEwem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb25vY2hyb21lLXBob3RvcyI+PHBhdGggZD0iTTIwIDVoLTMuMkwxNSAzSDlMNy4yIDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE0aC04di0xYy0yLjggMC01LTIuMi01LTVzMi4yLTUgNS01VjdoOHYxMnptLTMtNmMwLTIuOC0yLjItNS01LTV2MS44YzEuOCAwIDMuMiAxLjQgMy4yIDMuMnMtMS40IDMuMi0zLjIgMy4yVjE4YzIuOCAwIDUtMi4yIDUtNXptLTguMiAwYzAgMS44IDEuNCAzLjIgMy4yIDMuMlY5LjhjLTEuOCAwLTMuMiAxLjQtMy4yIDMuMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3ZpZS1jcmVhdGlvbiI+PHBhdGggZD0iTTE4IDRsMiA0aC0zbC0yLTRoLTJsMiA0aC0zbC0yLTRIOGwyIDRIN0w1IDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGgtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3ZpZS1maWx0ZXIiPjxwYXRoIGQ9Ik0xOCA0bDIgM2gtM2wtMi0zaC0ybDIgM2gtM2wtMi0zSDhsMiAzSDdMNSA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRoLTR6bS02Ljc1IDExLjI1TDEwIDE4bC0xLjI1LTIuNzVMNiAxNGwyLjc1LTEuMjVMMTAgMTBsMS4yNSAyLjc1TDE0IDE0bC0yLjc1IDEuMjV6bTUuNjktMy4zMUwxNiAxNGwtLjk0LTIuMDZMMTMgMTFsMi4wNi0uOTRMMTYgOGwuOTQgMi4wNkwxOSAxMWwtMi4wNi45NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJtdXNpYy1ub3RlIj48cGF0aCBkPSJNMTIgM3YxMC41NWMtLjU5LS4zNC0xLjI3LS41NS0yLS41NS0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRWN2g0VjNoLTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibmF0dXJlIj48cGF0aCBkPSJNMTMgMTYuMTJjMy40Ny0uNDEgNi4xNy0zLjM2IDYuMTctNi45NSAwLTMuODctMy4xMy03LTctN3MtNyAzLjEzLTcgN2MwIDMuNDcgMi41MiA2LjM0IDUuODMgNi44OVYyMEg1djJoMTR2LTJoLTZ2LTMuODh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibmF0dXJlLXBlb3BsZSI+PHBhdGggZD0iTTIyLjE3IDkuMTdjMC0zLjg3LTMuMTMtNy03LTdzLTcgMy4xMy03IDdjMCAzLjQ3IDIuNTIgNi4zNCA1LjgzIDYuODlWMjBINnYtM2gxdi00YzAtLjU1LS40NS0xLTEtMUgzYy0uNTUgMC0xIC40NS0xIDF2NGgxdjVoMTZ2LTJoLTN2LTMuODhjMy40Ny0uNDEgNi4xNy0zLjM2IDYuMTctNi45NXpNNC41IDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVM1LjMzIDggNC41IDggMyA4LjY3IDMgOS41IDMuNjcgMTEgNC41IDExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im5hdmlnYXRlLWJlZm9yZSI+PHBhdGggZD0iTTE1LjQxIDcuNDFMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTAuODMgMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibmF2aWdhdGUtbmV4dCI+PHBhdGggZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBhbGV0dGUiPjxwYXRoIGQ9Ik0xMiAzYy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAzIDkgOSA5Yy44MyAwIDEuNS0uNjcgMS41LTEuNSAwLS4zOS0uMTUtLjc0LS4zOS0xLjAxLS4yMy0uMjYtLjM4LS42MS0uMzgtLjk5IDAtLjgzLjY3LTEuNSAxLjUtMS41SDE2YzIuNzYgMCA1LTIuMjQgNS01IDAtNC40Mi00LjAzLTgtOS04em0tNS41IDljLS44MyAwLTEuNS0uNjctMS41LTEuNVM1LjY3IDkgNi41IDkgOCA5LjY3IDggMTAuNSA3LjMzIDEyIDYuNSAxMnptMy00QzguNjcgOCA4IDcuMzMgOCA2LjVTOC42NyA1IDkuNSA1czEuNS42NyAxLjUgMS41UzEwLjMzIDggOS41IDh6bTUgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzEzLjY3IDUgMTQuNSA1czEuNS42NyAxLjUgMS41UzE1LjMzIDggMTQuNSA4em0zIDRjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxNi42NyA5IDE3LjUgOXMxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFub3JhbWEiPjxwYXRoIGQ9Ik0yMyAxOFY2YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJ6TTguNSAxMi41bDIuNSAzLjAxTDE0LjUgMTFsNC41IDZINWwzLjUtNC41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBhbm9yYW1hLWZpc2gtZXllIj48cGF0aCBkPSJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFub3JhbWEtaG9yaXpvbnRhbCI+PHBhdGggZD0iTTIwIDYuNTR2MTAuOTFjLTIuNi0uNzctNS4yOC0xLjE2LTgtMS4xNi0yLjcyIDAtNS40LjM5LTggMS4xNlY2LjU0YzIuNi43NyA1LjI4IDEuMTYgOCAxLjE2IDIuNzIuMDEgNS40LS4zOCA4LTEuMTZNMjEuNDMgNGMtLjEgMC0uMi4wMi0uMzEuMDZDMTguMTggNS4xNiAxNS4wOSA1LjcgMTIgNS43Yy0zLjA5IDAtNi4xOC0uNTUtOS4xMi0xLjY0LS4xMS0uMDQtLjIyLS4wNi0uMzEtLjA2LS4zNCAwLS41Ny4yMy0uNTcuNjN2MTQuNzVjMCAuMzkuMjMuNjIuNTcuNjIuMSAwIC4yLS4wMi4zMS0uMDYgMi45NC0xLjEgNi4wMy0xLjY0IDkuMTItMS42NCAzLjA5IDAgNi4xOC41NSA5LjEyIDEuNjQuMTEuMDQuMjEuMDYuMzEuMDYuMzMgMCAuNTctLjIzLjU3LS42M1Y0LjYzYzAtLjQtLjI0LS42My0uNTctLjYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBhbm9yYW1hLXZlcnRpY2FsIj48cGF0aCBkPSJNMTkuOTQgMjEuMTJjLTEuMS0yLjk0LTEuNjQtNi4wMy0xLjY0LTkuMTIgMC0zLjA5LjU1LTYuMTggMS42NC05LjEyLjA0LS4xMS4wNi0uMjIuMDYtLjMxIDAtLjM0LS4yMy0uNTctLjYzLS41N0g0LjYzYy0uNCAwLS42My4yMy0uNjMuNTcgMCAuMS4wMi4yLjA2LjMxQzUuMTYgNS44MiA1LjcxIDguOTEgNS43MSAxMmMwIDMuMDktLjU1IDYuMTgtMS42NCA5LjEyLS4wNS4xMS0uMDcuMjItLjA3LjMxIDAgLjMzLjIzLjU3LjYzLjU3aDE0Ljc1Yy4zOSAwIC42My0uMjQuNjMtLjU3LS4wMS0uMS0uMDMtLjItLjA3LS4zMXpNNi41NCAyMGMuNzctMi42IDEuMTYtNS4yOCAxLjE2LTggMC0yLjcyLS4zOS01LjQtMS4xNi04aDEwLjkxYy0uNzcgMi42LTEuMTYgNS4yOC0xLjE2IDggMCAyLjcyLjM5IDUuNCAxLjE2IDhINi41NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwYW5vcmFtYS13aWRlLWFuZ2xlIj48cGF0aCBkPSJNMTIgNmMyLjQ1IDAgNC43MS4yIDcuMjkuNjQuNDcgMS43OC43MSAzLjU4LjcxIDUuMzYgMCAxLjc4LS4yNCAzLjU4LS43MSA1LjM2LTIuNTguNDQtNC44NC42NC03LjI5LjY0cy00LjcxLS4yLTcuMjktLjY0QzQuMjQgMTUuNTggNCAxMy43OCA0IDEyYzAtMS43OC4yNC0zLjU4LjcxLTUuMzZDNy4yOSA2LjIgOS41NSA2IDEyIDZtMC0yYy0yLjczIDAtNS4yMi4yNC03Ljk1LjcybC0uOTMuMTYtLjI1LjlDMi4yOSA3Ljg1IDIgOS45MyAyIDEycy4yOSA0LjE1Ljg3IDYuMjJsLjI1Ljg5LjkzLjE2YzIuNzMuNDkgNS4yMi43MyA3Ljk1LjczczUuMjItLjI0IDcuOTUtLjcybC45My0uMTYuMjUtLjg5Yy41OC0yLjA4Ljg3LTQuMTYuODctNi4yM3MtLjI5LTQuMTUtLjg3LTYuMjJsLS4yNS0uODktLjkzLS4xNkMxNy4yMiA0LjI0IDE0LjczIDQgMTIgNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90byI+PHBhdGggZD0iTTIxIDE5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnpNOC41IDEzLjVsMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1bDMuNS00LjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGhvdG8tYWxidW0iPjxwYXRoIGQ9Ik0xOCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNNiA0aDV2OGwtMi41LTEuNUw2IDEyVjR6bTAgMTVsMy0zLjg2IDIuMTQgMi41OCAzLTMuODZMMTggMTlINnoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90by1jYW1lcmEiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMuMiI+PC9jaXJjbGU+PHBhdGggZD0iTTkgMkw3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yaC0zLjE3TDE1IDJIOXptMyAxNWMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGhvdG8tZmlsdGVyIj48cGF0aCBkPSJNMTkuMDIgMTB2OUg1VjVoOVYzSDUuMDJjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTloLTJ6TTE3IDEwbC45NC0yLjA2TDIwIDdsLTIuMDYtLjk0TDE3IDRsLS45NCAyLjA2TDE0IDdsMi4wNi45NHptLTMuNzUuNzVMMTIgOGwtMS4yNSAyLjc1TDggMTJsMi43NSAxLjI1TDEyIDE2bDEuMjUtMi43NUwxNiAxMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90by1saWJyYXJ5Ij48cGF0aCBkPSJNMjIgMTZWNGMwLTEuMS0uOS0yLTItMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yem0tMTEtNGwyLjAzIDIuNzFMMTYgMTFsNCA1SDhsMy00ek0yIDZ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZIMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90by1zaXplLXNlbGVjdC1hY3R1YWwiPjxwYXRoIGQ9Ik0yMSAzSDNDMiAzIDEgNCAxIDV2MTRjMCAxLjEuOSAyIDIgMmgxOGMxIDAgMi0xIDItMlY1YzAtMS0xLTItMi0yek01IDE3bDMuNS00LjUgMi41IDMuMDFMMTQuNSAxMWw0LjUgNkg1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBob3RvLXNpemUtc2VsZWN0LWxhcmdlIj48cGF0aCBkPSJNMjEgMTVoMnYyaC0ydi0yem0wLTRoMnYyaC0ydi0yem0yIDhoLTJ2MmMxIDAgMi0xIDItMnpNMTMgM2gydjJoLTJWM3ptOCA0aDJ2MmgtMlY3em0wLTR2MmgyYzAtMS0xLTItMi0yek0xIDdoMnYySDFWN3ptMTYtNGgydjJoLTJWM3ptMCAxNmgydjJoLTJ2LTJ6TTMgM0MyIDMgMSA0IDEgNWgyVjN6bTYgMGgydjJIOVYzek01IDNoMnYySDVWM3ptLTQgOHY4YzAgMS4xLjkgMiAyIDJoMTJWMTFIMXptMiA4bDIuNS0zLjIxIDEuNzkgMi4xNSAyLjUtMy4yMkwxMyAxOUgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBob3RvLXNpemUtc2VsZWN0LXNtYWxsIj48cGF0aCBkPSJNMjMgMTVoLTJ2Mmgydi0yem0wLTRoLTJ2Mmgydi0yem0wIDhoLTJ2MmMxIDAgMi0xIDItMnpNMTUgM2gtMnYyaDJWM3ptOCA0aC0ydjJoMlY3em0tMi00djJoMmMwLTEtMS0yLTItMnpNMyAyMWg4di02SDF2NGMwIDEuMS45IDIgMiAyek0zIDdIMXYyaDJWN3ptMTIgMTJoLTJ2Mmgydi0yem00LTE2aC0ydjJoMlYzem0wIDE2aC0ydjJoMnYtMnpNMyAzQzIgMyAxIDQgMSA1aDJWM3ptMCA4SDF2Mmgydi0yem04LThIOXYyaDJWM3pNNyAzSDV2MmgyVjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGljdHVyZS1hcy1wZGYiPjxwYXRoIGQ9Ik0yMCAySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTguNSA3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDl2Mkg3LjVWN0gxMGMuODMgMCAxLjUuNjcgMS41IDEuNXYxem01IDJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yLjVWN0gxNWMuODMgMCAxLjUuNjcgMS41IDEuNXYzem00LTNIMTl2MWgxLjVWMTFIMTl2MmgtMS41VjdoM3YxLjV6TTkgOS41aDF2LTFIOXYxek00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTAgNS41aDF2LTNoLTF2M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJwb3J0cmFpdCI+PHBhdGggZD0iTTEyIDEyLjI1YzEuMjQgMCAyLjI1LTEuMDEgMi4yNS0yLjI1UzEzLjI0IDcuNzUgMTIgNy43NSA5Ljc1IDguNzYgOS43NSAxMHMxLjAxIDIuMjUgMi4yNSAyLjI1em00LjUgNGMwLTEuNS0zLTIuMjUtNC41LTIuMjVzLTQuNS43NS00LjUgMi4yNVYxN2g5di0uNzV6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW1vdmUtcmVkLWV5ZSI+PHBhdGggZD0iTTEyIDQuNUM3IDQuNSAyLjczIDcuNjEgMSAxMmMxLjczIDQuMzkgNiA3LjUgMTEgNy41czkuMjctMy4xMSAxMS03LjVjLTEuNzMtNC4zOS02LTcuNS0xMS03LjV6TTEyIDE3Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXptMC04Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJyb3RhdGUtOTAtZGVncmVlcy1jY3ciPjxwYXRoIGQ9Ik03LjM0IDYuNDFMLjg2IDEyLjlsNi40OSA2LjQ4IDYuNDktNi40OC02LjUtNi40OXpNMy42OSAxMi45bDMuNjYtMy42NkwxMSAxMi45bC0zLjY2IDMuNjYtMy42NS0zLjY2em0xNS42Ny02LjI2QzE3LjYxIDQuODggMTUuMyA0IDEzIDRWLjc2TDguNzYgNSAxMyA5LjI0VjZjMS43OSAwIDMuNTguNjggNC45NSAyLjA1IDIuNzMgMi43MyAyLjczIDcuMTcgMCA5LjlDMTYuNTggMTkuMzIgMTQuNzkgMjAgMTMgMjBjLS45NyAwLTEuOTQtLjIxLTIuODQtLjYxbC0xLjQ5IDEuNDlDMTAuMDIgMjEuNjIgMTEuNTEgMjIgMTMgMjJjMi4zIDAgNC42MS0uODggNi4zNi0yLjY0IDMuNTItMy41MSAzLjUyLTkuMjEgMC0xMi43MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyb3RhdGUtbGVmdCI+PHBhdGggZD0iTTcuMTEgOC41M0w1LjcgNy4xMUM0LjggOC4yNyA0LjI0IDkuNjEgNC4wNyAxMWgyLjAyYy4xNC0uODcuNDktMS43MiAxLjAyLTIuNDd6TTYuMDkgMTNINC4wN2MuMTcgMS4zOS43MiAyLjczIDEuNjIgMy44OWwxLjQxLTEuNDJjLS41Mi0uNzUtLjg3LTEuNTktMS4wMS0yLjQ3em0xLjAxIDUuMzJjMS4xNi45IDIuNTEgMS40NCAzLjkgMS42MVYxNy45Yy0uODctLjE1LTEuNzEtLjQ5LTIuNDYtMS4wM0w3LjEgMTguMzJ6TTEzIDQuMDdWMUw4LjQ1IDUuNTUgMTMgMTBWNi4wOWMyLjg0LjQ4IDUgMi45NCA1IDUuOTFzLTIuMTYgNS40My01IDUuOTF2Mi4wMmMzLjk1LS40OSA3LTMuODUgNy03Ljkzcy0zLjA1LTcuNDQtNy03LjkzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvdGF0ZS1yaWdodCI+PHBhdGggZD0iTTE1LjU1IDUuNTVMMTEgMXYzLjA3QzcuMDYgNC41NiA0IDcuOTIgNCAxMnMzLjA1IDcuNDQgNyA3Ljkzdi0yLjAyYy0yLjg0LS40OC01LTIuOTQtNS01LjkxczIuMTYtNS40MyA1LTUuOTFWMTBsNC41NS00LjQ1ek0xOS45MyAxMWMtLjE3LTEuMzktLjcyLTIuNzMtMS42Mi0zLjg5bC0xLjQyIDEuNDJjLjU0Ljc1Ljg4IDEuNiAxLjAyIDIuNDdoMi4wMnpNMTMgMTcuOXYyLjAyYzEuMzktLjE3IDIuNzQtLjcxIDMuOS0xLjYxbC0xLjQ0LTEuNDRjLS43NS41NC0xLjU5Ljg5LTIuNDYgMS4wM3ptMy44OS0yLjQybDEuNDIgMS40MWMuOS0xLjE2IDEuNDUtMi41IDEuNjItMy44OWgtMi4wMmMtLjE0Ljg3LS40OCAxLjcyLTEuMDIgMi40OHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzbGlkZXNob3ciPjxwYXRoIGQ9Ik0xMCA4djhsNS00LTUtNHptOS01SDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3RyYWlnaHRlbiI+PHBhdGggZD0iTTIxIDZIM2MtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTBIM1Y4aDJ2NGgyVjhoMnY0aDJWOGgydjRoMlY4aDJ2NGgyVjhoMnY4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN0eWxlIj48cGF0aCBkPSJNMi41MyAxOS42NWwxLjM0LjU2di05LjAzbC0yLjQzIDUuODZjLS40MSAxLjAyLjA4IDIuMTkgMS4wOSAyLjYxem0xOS41LTMuN0wxNy4wNyAzLjk4Yy0uMzEtLjc1LTEuMDQtMS4yMS0xLjgxLTEuMjMtLjI2IDAtLjUzLjA0LS43OS4xNUw3LjEgNS45NWMtLjc1LjMxLTEuMjEgMS4wMy0xLjIzIDEuOC0uMDEuMjcuMDQuNTQuMTUuOGw0Ljk2IDExLjk3Yy4zMS43NiAxLjA1IDEuMjIgMS44MyAxLjIzLjI2IDAgLjUyLS4wNS43Ny0uMTVsNy4zNi0zLjA1YzEuMDItLjQyIDEuNTEtMS41OSAxLjA5LTIuNnpNNy44OCA4Ljc1Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS0yIDExYzAgMS4xLjkgMiAyIDJoMS40NWwtMy40NS04LjM0djYuMzR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3dpdGNoLWNhbWVyYSI+PHBhdGggZD0iTTIwIDRoLTMuMTdMMTUgMkg5TDcuMTcgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS01IDExLjVWMTNIOXYyLjVMNS41IDEyIDkgOC41VjExaDZWOC41bDMuNSAzLjUtMy41IDMuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzd2l0Y2gtdmlkZW8iPjxwYXRoIGQ9Ik0xOCA5LjVWNmMwLS41NS0uNDUtMS0xLTFIM2MtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDE0Yy41NSAwIDEtLjQ1IDEtMXYtMy41bDQgNHYtMTNsLTQgNHptLTUgNlYxM0g3djIuNUwzLjUgMTIgNyA4LjVWMTFoNlY4LjVsMy41IDMuNS0zLjUgMy41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRhZy1mYWNlcyI+PHBhdGggZD0iTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptMy41LTljLjgzIDAgMS41LS42NyAxLjUtMS41UzE2LjMzIDggMTUuNSA4IDE0IDguNjcgMTQgOS41cy42NyAxLjUgMS41IDEuNXptLTcgMGMuODMgMCAxLjUtLjY3IDEuNS0xLjVTOS4zMyA4IDguNSA4IDcgOC42NyA3IDkuNSA3LjY3IDExIDguNSAxMXptMy41IDYuNWMyLjMzIDAgNC4zMS0xLjQ2IDUuMTEtMy41SDYuODljLjggMi4wNCAyLjc4IDMuNSA1LjExIDMuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0ZXh0dXJlIj48cGF0aCBkPSJNMTkuNTEgMy4wOEwzLjA4IDE5LjUxYy4wOS4zNC4yNy42NS41MS45LjI1LjI0LjU2LjQyLjkuNTFMMjAuOTMgNC40OWMtLjE5LS42OS0uNzMtMS4yMy0xLjQyLTEuNDF6TTExLjg4IDNMMyAxMS44OHYyLjgzTDE0LjcxIDNoLTIuODN6TTUgM2MtMS4xIDAtMiAuOS0yIDJ2Mmw0LTRINXptMTQgMThjLjU1IDAgMS4wNS0uMjIgMS40MS0uNTkuMzctLjM2LjU5LS44Ni41OS0xLjQxdi0ybC00IDRoMnptLTkuNzEgMGgyLjgzTDIxIDEyLjEyVjkuMjlMOS4yOSAyMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aW1lbGFwc2UiPjxwYXRoIGQ9Ik0xNi4yNCA3Ljc2QzE1LjA3IDYuNTkgMTMuNTQgNiAxMiA2djZsLTQuMjQgNC4yNGMyLjM0IDIuMzQgNi4xNCAyLjM0IDguNDkgMCAyLjM0LTIuMzQgMi4zNC02LjE0LS4wMS04LjQ4ek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aW1lciI+PHBhdGggZD0iTTE1IDFIOXYyaDZWMXptLTQgMTNoMlY4aC0ydjZ6bTguMDMtNi42MWwxLjQyLTEuNDJjLS40My0uNTEtLjktLjk5LTEuNDEtMS40MWwtMS40MiAxLjQyQzE2LjA3IDQuNzQgMTQuMTIgNCAxMiA0Yy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAyIDkgOSA5IDktNC4wMyA5LTljMC0yLjEyLS43NC00LjA3LTEuOTctNS42MXpNMTIgMjBjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRpbWVyLTEwIj48cGF0aCBkPSJNMCA3LjcyVjkuNGwzLTFWMThoMlY2aC0uMjVMMCA3Ljcyem0yMy43OCA2LjY1Yy0uMTQtLjI4LS4zNS0uNTMtLjYzLS43NC0uMjgtLjIxLS42MS0uMzktMS4wMS0uNTNzLS44NS0uMjctMS4zNS0uMzhjLS4zNS0uMDctLjY0LS4xNS0uODctLjIzLS4yMy0uMDgtLjQxLS4xNi0uNTUtLjI1LS4xNC0uMDktLjIzLS4xOS0uMjgtLjMtLjA1LS4xMS0uMDgtLjI0LS4wOC0uMzkgMC0uMTQuMDMtLjI4LjA5LS40MS4wNi0uMTMuMTUtLjI1LjI3LS4zNC4xMi0uMS4yNy0uMTguNDUtLjI0cy40LS4wOS42NC0uMDljLjI1IDAgLjQ3LjA0LjY2LjExLjE5LjA3LjM1LjE3LjQ4LjI5LjEzLjEyLjIyLjI2LjI5LjQyLjA2LjE2LjEuMzIuMS40OWgxLjk1YzAtLjM5LS4wOC0uNzUtLjI0LTEuMDktLjE2LS4zNC0uMzktLjYzLS42OS0uODgtLjMtLjI1LS42Ni0uNDQtMS4wOS0uNTlDMjEuNDkgOS4wNyAyMSA5IDIwLjQ2IDljLS41MSAwLS45OC4wNy0xLjM5LjIxLS40MS4xNC0uNzcuMzMtMS4wNi41Ny0uMjkuMjQtLjUxLjUyLS42Ny44NC0uMTYuMzItLjIzLjY1LS4yMyAxLjAxcy4wOC42OS4yMy45NmMuMTUuMjguMzYuNTIuNjQuNzMuMjcuMjEuNi4zOC45OC41My4zOC4xNC44MS4yNiAxLjI3LjM2LjM5LjA4LjcxLjE3Ljk1LjI2cy40My4xOS41Ny4yOWMuMTMuMS4yMi4yMi4yNy4zNC4wNS4xMi4wNy4yNS4wNy4zOSAwIC4zMi0uMTMuNTctLjQuNzctLjI3LjItLjY2LjI5LTEuMTcuMjktLjIyIDAtLjQzLS4wMi0uNjQtLjA4LS4yMS0uMDUtLjQtLjEzLS41Ni0uMjQtLjE3LS4xMS0uMy0uMjYtLjQxLS40NC0uMTEtLjE4LS4xNy0uNDEtLjE4LS42N2gtMS44OWMwIC4zNi4wOC43MS4yNCAxLjA1LjE2LjM0LjM5LjY1LjcuOTMuMzEuMjcuNjkuNDkgMS4xNS42Ni40Ni4xNy45OC4yNSAxLjU4LjI1LjUzIDAgMS4wMS0uMDYgMS40NC0uMTkuNDMtLjEzLjgtLjMxIDEuMTEtLjU0LjMxLS4yMy41NC0uNTEuNzEtLjgzLjE3LS4zMi4yNS0uNjcuMjUtMS4wNi0uMDItLjQtLjA5LS43NC0uMjQtMS4wMnptLTkuOTYtNy4zMmMtLjM0LS40LS43NS0uNy0xLjIzLS44OC0uNDctLjE4LTEuMDEtLjI3LTEuNTktLjI3LS41OCAwLTEuMTEuMDktMS41OS4yNy0uNDguMTgtLjg5LjQ3LTEuMjMuODgtLjM0LjQxLS42LjkzLS43OSAxLjU5LS4xOC42NS0uMjggMS40NS0uMjggMi4zOXYxLjkyYzAgLjk0LjA5IDEuNzQuMjggMi4zOS4xOS42Ni40NSAxLjE5LjggMS42LjM0LjQxLjc1LjcxIDEuMjMuODkuNDguMTggMS4wMS4yOCAxLjU5LjI4LjU5IDAgMS4xMi0uMDkgMS41OS0uMjguNDgtLjE4Ljg4LS40OCAxLjIyLS44OS4zNC0uNDEuNi0uOTQuNzgtMS42LjE4LS42NS4yOC0xLjQ1LjI4LTIuMzl2LTEuOTJjMC0uOTQtLjA5LTEuNzQtLjI4LTIuMzktLjE4LS42Ni0uNDQtMS4xOS0uNzgtMS41OXptLS45MiA2LjE3YzAgLjYtLjA0IDEuMTEtLjEyIDEuNTMtLjA4LjQyLS4yLjc2LS4zNiAxLjAyLS4xNi4yNi0uMzYuNDUtLjU5LjU3LS4yMy4xMi0uNTEuMTgtLjgyLjE4LS4zIDAtLjU4LS4wNi0uODItLjE4cy0uNDQtLjMxLS42LS41N2MtLjE2LS4yNi0uMjktLjYtLjM4LTEuMDItLjA5LS40Mi0uMTMtLjkzLS4xMy0xLjUzdi0yLjVjMC0uNi4wNC0xLjExLjEzLTEuNTIuMDktLjQxLjIxLS43NC4zOC0xIC4xNi0uMjUuMzYtLjQzLjYtLjU1LjI0LS4xMS41MS0uMTcuODEtLjE3LjMxIDAgLjU4LjA2LjgxLjE3LjI0LjExLjQ0LjI5LjYuNTUuMTYuMjUuMjkuNTguMzcuOTkuMDguNDEuMTMuOTIuMTMgMS41MnYyLjUxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRpbWVyLTMiPjxwYXRoIGQ9Ik0xMS42MSAxMi45N2MtLjE2LS4yNC0uMzYtLjQ2LS42Mi0uNjUtLjI1LS4xOS0uNTYtLjM1LS45My0uNDguMy0uMTQuNTctLjMuOC0uNS4yMy0uMi40Mi0uNDEuNTctLjY0LjE1LS4yMy4yNy0uNDYuMzQtLjcxLjA4LS4yNC4xMS0uNDkuMTEtLjczIDAtLjU1LS4wOS0xLjA0LS4yOC0xLjQ2LS4xOC0uNDItLjQ0LS43Ny0uNzgtMS4wNi0uMzMtLjI4LS43My0uNS0xLjItLjY0LS40NS0uMTMtLjk3LS4yLTEuNTMtLjItLjU1IDAtMS4wNi4wOC0xLjUyLjI0LS40Ny4xNy0uODcuNC0xLjIuNjktLjMzLjI5LS42LjYzLS43OCAxLjAzLS4yLjM5LS4yOS44My0uMjkgMS4yOWgxLjk4YzAtLjI2LjA1LS40OS4xNC0uNjkuMDktLjIuMjItLjM4LjM4LS41Mi4xNy0uMTQuMzYtLjI1LjU4LS4zMy4yMi0uMDguNDYtLjEyLjczLS4xMi42MSAwIDEuMDYuMTYgMS4zNi40Ny4zLjMxLjQ0Ljc1LjQ0IDEuMzIgMCAuMjctLjA0LjUyLS4xMi43NC0uMDguMjItLjIxLjQxLS4zOC41Ny0uMTcuMTYtLjM4LjI4LS42My4zNy0uMjUuMDktLjU1LjEzLS44OS4xM0g2LjcydjEuNTdINy45Yy4zNCAwIC42NC4wNC45MS4xMS4yNy4wOC41LjE5LjY5LjM1LjE5LjE2LjM0LjM2LjQ0LjYxLjEuMjQuMTYuNTQuMTYuODcgMCAuNjItLjE4IDEuMDktLjUzIDEuNDItLjM1LjMzLS44NC40OS0xLjQ1LjQ5LS4yOSAwLS41Ni0uMDQtLjgtLjEzLS4yNC0uMDgtLjQ0LS4yLS42MS0uMzYtLjE3LS4xNi0uMy0uMzQtLjM5LS41Ni0uMDktLjIyLS4xNC0uNDYtLjE0LS43Mkg0LjE5YzAgLjU1LjExIDEuMDMuMzIgMS40NS4yMS40Mi41Ljc3Ljg2IDEuMDVzLjc3LjQ5IDEuMjQuNjMuOTYuMjEgMS40OC4yMWMuNTcgMCAxLjA5LS4wOCAxLjU4LS4yMy40OS0uMTUuOTEtLjM4IDEuMjYtLjY4LjM2LS4zLjY0LS42Ni44NC0xLjEuMi0uNDMuMy0uOTMuMy0xLjQ4IDAtLjI5LS4wNC0uNTgtLjExLS44Ni0uMDgtLjI1LS4xOS0uNTEtLjM1LS43NnptOS4yNiAxLjRjLS4xNC0uMjgtLjM1LS41My0uNjMtLjc0LS4yOC0uMjEtLjYxLS4zOS0xLjAxLS41M3MtLjg1LS4yNy0xLjM1LS4zOGMtLjM1LS4wNy0uNjQtLjE1LS44Ny0uMjMtLjIzLS4wOC0uNDEtLjE2LS41NS0uMjUtLjE0LS4wOS0uMjMtLjE5LS4yOC0uMy0uMDUtLjExLS4wOC0uMjQtLjA4LS4zOXMuMDMtLjI4LjA5LS40MWMuMDYtLjEzLjE1LS4yNS4yNy0uMzQuMTItLjEuMjctLjE4LjQ1LS4yNHMuNC0uMDkuNjQtLjA5Yy4yNSAwIC40Ny4wNC42Ni4xMS4xOS4wNy4zNS4xNy40OC4yOS4xMy4xMi4yMi4yNi4yOS40Mi4wNi4xNi4xLjMyLjEuNDloMS45NWMwLS4zOS0uMDgtLjc1LS4yNC0xLjA5LS4xNi0uMzQtLjM5LS42My0uNjktLjg4LS4zLS4yNS0uNjYtLjQ0LTEuMDktLjU5LS40My0uMTUtLjkyLS4yMi0xLjQ2LS4yMi0uNTEgMC0uOTguMDctMS4zOS4yMS0uNDEuMTQtLjc3LjMzLTEuMDYuNTctLjI5LjI0LS41MS41Mi0uNjcuODQtLjE2LjMyLS4yMy42NS0uMjMgMS4wMXMuMDguNjguMjMuOTZjLjE1LjI4LjM3LjUyLjY0LjczLjI3LjIxLjYuMzguOTguNTMuMzguMTQuODEuMjYgMS4yNy4zNi4zOS4wOC43MS4xNy45NS4yNnMuNDMuMTkuNTcuMjljLjEzLjEuMjIuMjIuMjcuMzQuMDUuMTIuMDcuMjUuMDcuMzkgMCAuMzItLjEzLjU3LS40Ljc3LS4yNy4yLS42Ni4yOS0xLjE3LjI5LS4yMiAwLS40My0uMDItLjY0LS4wOC0uMjEtLjA1LS40LS4xMy0uNTYtLjI0LS4xNy0uMTEtLjMtLjI2LS40MS0uNDQtLjExLS4xOC0uMTctLjQxLS4xOC0uNjdoLTEuODljMCAuMzYuMDguNzEuMjQgMS4wNS4xNi4zNC4zOS42NS43LjkzLjMxLjI3LjY5LjQ5IDEuMTUuNjYuNDYuMTcuOTguMjUgMS41OC4yNS41MyAwIDEuMDEtLjA2IDEuNDQtLjE5LjQzLS4xMy44LS4zMSAxLjExLS41NC4zMS0uMjMuNTQtLjUxLjcxLS44My4xNy0uMzIuMjUtLjY3LjI1LTEuMDYtLjAyLS40LS4wOS0uNzQtLjI0LTEuMDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGltZXItb2ZmIj48cGF0aCBkPSJNMTkuMDQgNC41NWwtMS40MiAxLjQyQzE2LjA3IDQuNzQgMTQuMTIgNCAxMiA0Yy0xLjgzIDAtMy41My41NS00Ljk1IDEuNDhsMS40NiAxLjQ2QzkuNTMgNi4zNSAxMC43MyA2IDEyIDZjMy44NyAwIDcgMy4xMyA3IDcgMCAxLjI3LS4zNSAyLjQ3LS45NCAzLjQ5bDEuNDUgMS40NUMyMC40NSAxNi41MyAyMSAxNC44MyAyMSAxM2MwLTIuMTItLjc0LTQuMDctMS45Ny01LjYxbDEuNDItMS40Mi0xLjQxLTEuNDJ6TTE1IDFIOXYyaDZWMXptLTQgOC40NGwyIDJWOGgtMnYxLjQ0ek0zLjAyIDRMMS43NSA1LjI3IDQuNSA4LjAzQzMuNTUgOS40NSAzIDExLjE2IDMgMTNjMCA0Ljk3IDQuMDIgOSA5IDkgMS44NCAwIDMuNTUtLjU1IDQuOTgtMS41bDIuNSAyLjUgMS4yNy0xLjI3LTcuNzEtNy43MUwzLjAyIDR6TTEyIDIwYy0zLjg3IDAtNy0zLjEzLTctNyAwLTEuMjguMzUtMi40OC45NS0zLjUybDkuNTYgOS41NmMtMS4wMy42MS0yLjIzLjk2LTMuNTEuOTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idG9uYWxpdHkiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNy45M2MtMy45NC0uNDktNy0zLjg1LTctNy45M3MzLjA1LTcuNDQgNy03LjkzdjE1Ljg2em0yLTE1Ljg2YzEuMDMuMTMgMiAuNDUgMi44Ny45M0gxM3YtLjkzek0xMyA3aDUuMjRjLjI1LjMxLjQ4LjY1LjY4IDFIMTNWN3ptMCAzaDYuNzRjLjA4LjMzLjE1LjY2LjE5IDFIMTN2LTF6bTAgOS45M1YxOWgyLjg3Yy0uODcuNDgtMS44NC44LTIuODcuOTN6TTE4LjI0IDE3SDEzdi0xaDUuOTJjLS4yLjM1LS40My42OS0uNjggMXptMS41LTNIMTN2LTFoNi45M2MtLjA0LjM0LS4xMS42Ny0uMTkgMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0cmFuc2Zvcm0iPjxwYXRoIGQ9Ik0yMiAxOHYtMkg4VjRoMkw3IDEgNCA0aDJ2MkgydjJoNHY4YzAgMS4xLjkgMiAyIDJoOHYyaC0ybDMgMyAzLTNoLTJ2LTJoNHpNMTAgOGg2djZoMlY4YzAtMS4xLS45LTItMi0yaC02djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHVuZSI+PHBhdGggZD0iTTMgMTd2Mmg2di0ySDN6TTMgNXYyaDEwVjVIM3ptMTAgMTZ2LTJoOHYtMmgtOHYtMmgtMnY2aDJ6TTcgOXYySDN2Mmg0djJoMlY5SDd6bTE0IDR2LTJIMTF2MmgxMHptLTYtNGgyVjdoNFY1aC00VjNoLTJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWNvbWZ5Ij48cGF0aCBkPSJNMyA5aDRWNUgzdjR6bTAgNWg0di00SDN2NHptNSAwaDR2LTRIOHY0em01IDBoNHYtNGgtNHY0ek04IDloNFY1SDh2NHptNS00djRoNFY1aC00em01IDloNHYtNGgtNHY0ek0zIDE5aDR2LTRIM3Y0em01IDBoNHYtNEg4djR6bTUgMGg0di00aC00djR6bTUgMGg0di00aC00djR6bTAtMTR2NGg0VjVoLTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1jb21wYWN0Ij48cGF0aCBkPSJNMyAxOWg2di03SDN2N3ptNyAwaDEydi03SDEwdjd6TTMgNXY2aDE5VjVIM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWduZXR0ZSI+PHBhdGggZD0iTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOSAxNWMtNC40MiAwLTgtMi42OS04LTZzMy41OC02IDgtNiA4IDIuNjkgOCA2LTMuNTggNi04IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2ItYXV0byI+PHBhdGggZD0iTTYuODUgMTIuNjVoMi4zTDggOWwtMS4xNSAzLjY1ek0yMiA3bC0xLjIgNi4yOUwxOS4zIDdoLTEuNmwtMS40OSA2LjI5TDE1IDdoLS43NkMxMi43NyA1LjE3IDEwLjUzIDQgOCA0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4YzMuMTMgMCA1Ljg0LTEuODEgNy4xNS00LjQzbC4xLjQzSDE3bDEuNS02LjFMMjAgMTZoMS43NWwyLjA1LTlIMjJ6bS0xMS43IDlsLS43LTJINi40bC0uNyAySDMuOEw3IDdoMmwzLjIgOWgtMS45eiI+PC9wYXRoPjwvZz4KPGcgaWQ9IndiLWNsb3VkeSI+PHBhdGggZD0iTTE5LjM2IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDQgMi4zNCA4LjM2IDAgMTAuOTEgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjQtNC45NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ3Yi1pbmNhbmRlc2NlbnQiPjxwYXRoIGQ9Ik0zLjU1IDE4LjU0bDEuNDEgMS40MSAxLjc5LTEuOC0xLjQxLTEuNDEtMS43OSAxLjh6TTExIDIyLjQ1aDJWMTkuNWgtMnYyLjk1ek00IDEwLjVIMXYyaDN2LTJ6bTExLTQuMTlWMS41SDl2NC44MUM3LjIxIDcuMzUgNiA5LjI4IDYgMTEuNWMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02YzAtMi4yMi0xLjIxLTQuMTUtMy01LjE5em01IDQuMTl2Mmgzdi0yaC0zem0tMi43NiA3LjY2bDEuNzkgMS44IDEuNDEtMS40MS0xLjgtMS43OS0xLjQgMS40eiI+PC9wYXRoPjwvZz4KPGcgaWQ9IndiLWlyaWRlc2NlbnQiPjxwYXRoIGQ9Ik01IDE0LjVoMTR2LTZINXY2ek0xMSAuNTVWMy41aDJWLjU1aC0yem04LjA0IDIuNWwtMS43OSAxLjc5IDEuNDEgMS40MSAxLjgtMS43OS0xLjQyLTEuNDF6TTEzIDIyLjQ1VjE5LjVoLTJ2Mi45NWgyem03LjQ1LTMuOTFsLTEuOC0xLjc5LTEuNDEgMS40MSAxLjc5IDEuOCAxLjQyLTEuNDJ6TTMuNTUgNC40NmwxLjc5IDEuNzkgMS40MS0xLjQxLTEuNzktMS43OS0xLjQxIDEuNDF6bTEuNDEgMTUuNDlsMS43OS0xLjgtMS40MS0xLjQxLTEuNzkgMS43OSAxLjQxIDEuNDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2Itc3VubnkiPjxwYXRoIGQ9Ik02Ljc2IDQuODRsLTEuOC0xLjc5LTEuNDEgMS40MSAxLjc5IDEuNzkgMS40Mi0xLjQxek00IDEwLjVIMXYyaDN2LTJ6bTktOS45NWgtMlYzLjVoMlYuNTV6bTcuNDUgMy45MWwtMS40MS0xLjQxLTEuNzkgMS43OSAxLjQxIDEuNDEgMS43OS0xLjc5em0tMy4yMSAxMy43bDEuNzkgMS44IDEuNDEtMS40MS0xLjgtMS43OS0xLjQgMS40ek0yMCAxMC41djJoM3YtMmgtM3ptLTgtNWMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bS0xIDE2Ljk1aDJWMTkuNWgtMnYyLjk1em0tNy40NS0zLjkxbDEuNDEgMS40MSAxLjc5LTEuOC0xLjQxLTEuNDEtMS43OSAxLjh6Ij48L3BhdGg+PC9nPgo8L2RlZnM+PC9zdmc+CjwvaXJvbi1pY29uc2V0LXN2Zz5gO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoU28uY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBNbz1fZWA8aXJvbi1pY29uc2V0LXN2ZyBuYW1lPSJpY29ucyIgc2l6ZT0iMjQiPgo8c3ZnPjxkZWZzPgo8ZyBpZD0iM2Qtcm90YXRpb24iPjxwYXRoIGQ9Ik03LjUyIDIxLjQ4QzQuMjUgMTkuOTQgMS45MSAxNi43NiAxLjU1IDEzSC4wNUMuNTYgMTkuMTYgNS43MSAyNCAxMiAyNGwuNjYtLjAzLTMuODEtMy44MS0xLjMzIDEuMzJ6bS44OS02LjUyYy0uMTkgMC0uMzctLjAzLS41Mi0uMDgtLjE2LS4wNi0uMjktLjEzLS40LS4yNC0uMTEtLjEtLjItLjIyLS4yNi0uMzctLjA2LS4xNC0uMDktLjMtLjA5LS40N2gtMS4zYzAgLjM2LjA3LjY4LjIxLjk1LjE0LjI3LjMzLjUuNTYuNjkuMjQuMTguNTEuMzIuODIuNDEuMy4xLjYyLjE1Ljk2LjE1LjM3IDAgLjcyLS4wNSAxLjAzLS4xNS4zMi0uMS42LS4yNS44My0uNDRzLjQyLS40My41NS0uNzJjLjEzLS4yOS4yLS42MS4yLS45NyAwLS4xOS0uMDItLjM4LS4wNy0uNTYtLjA1LS4xOC0uMTItLjM1LS4yMy0uNTEtLjEtLjE2LS4yNC0uMy0uNC0uNDMtLjE3LS4xMy0uMzctLjIzLS42MS0uMzEuMi0uMDkuMzctLjIuNTItLjMzLjE1LS4xMy4yNy0uMjcuMzctLjQyLjEtLjE1LjE3LS4zLjIyLS40Ni4wNS0uMTYuMDctLjMyLjA3LS40OCAwLS4zNi0uMDYtLjY4LS4xOC0uOTYtLjEyLS4yOC0uMjktLjUxLS41MS0uNjktLjItLjE5LS40Ny0uMzMtLjc3LS40M0M5LjEgOC4wNSA4Ljc2IDggOC4zOSA4Yy0uMzYgMC0uNjkuMDUtMSAuMTYtLjMuMTEtLjU3LjI2LS43OS40NS0uMjEuMTktLjM4LjQxLS41MS42Ny0uMTIuMjYtLjE4LjU0LS4xOC44NWgxLjNjMC0uMTcuMDMtLjMyLjA5LS40NXMuMTQtLjI1LjI1LS4zNGMuMTEtLjA5LjIzLS4xNy4zOC0uMjIuMTUtLjA1LjMtLjA4LjQ4LS4wOC40IDAgLjcuMS44OS4zMS4xOS4yLjI5LjQ5LjI5Ljg2IDAgLjE4LS4wMy4zNC0uMDguNDktLjA1LjE1LS4xNC4yNy0uMjUuMzctLjExLjEtLjI1LjE4LS40MS4yNC0uMTYuMDYtLjM2LjA5LS41OC4wOUg3LjV2MS4wM2guNzdjLjIyIDAgLjQyLjAyLjYuMDdzLjMzLjEzLjQ1LjIzYy4xMi4xMS4yMi4yNC4yOS40LjA3LjE2LjEuMzUuMS41NyAwIC40MS0uMTIuNzItLjM1LjkzLS4yMy4yMy0uNTUuMzMtLjk1LjMzem04LjU1LTUuOTJjLS4zMi0uMzMtLjctLjU5LTEuMTQtLjc3LS40My0uMTgtLjkyLS4yNy0xLjQ2LS4yN0gxMnY4aDIuM2MuNTUgMCAxLjA2LS4wOSAxLjUxLS4yNy40NS0uMTguODQtLjQzIDEuMTYtLjc2LjMyLS4zMy41Ny0uNzMuNzQtMS4xOS4xNy0uNDcuMjYtLjk5LjI2LTEuNTd2LS40YzAtLjU4LS4wOS0xLjEtLjI2LTEuNTctLjE4LS40Ny0uNDMtLjg3LS43NS0xLjJ6bS0uMzkgMy4xNmMwIC40Mi0uMDUuNzktLjE0IDEuMTMtLjEuMzMtLjI0LjYyLS40My44NS0uMTkuMjMtLjQzLjQxLS43MS41My0uMjkuMTItLjYyLjE4LS45OS4xOGgtLjkxVjkuMTJoLjk3Yy43MiAwIDEuMjcuMjMgMS42NC42OS4zOC40Ni41NyAxLjEyLjU3IDEuOTl2LjR6TTEyIDBsLS42Ni4wMyAzLjgxIDMuODEgMS4zMy0xLjMzYzMuMjcgMS41NSA1LjYxIDQuNzIgNS45NiA4LjQ4aDEuNUMyMy40NCA0Ljg0IDE4LjI5IDAgMTIgMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2Nlc3NpYmlsaXR5Ij48cGF0aCBkPSJNMTIgMmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTkgN2gtNnYxM2gtMnYtNmgtMnY2SDlWOUgzVjdoMTh2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2Nlc3NpYmxlIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjQiIHI9IjIiPjwvY2lyY2xlPjxwYXRoIGQ9Ik0xOSAxM3YtMmMtMS41NC4wMi0zLjA5LS43NS00LjA3LTEuODNsLTEuMjktMS40M2MtLjE3LS4xOS0uMzgtLjM0LS42MS0uNDUtLjAxIDAtLjAxLS4wMS0uMDItLjAxSDEzYy0uMzUtLjItLjc1LS4zLTEuMTktLjI2QzEwLjc2IDcuMTEgMTAgOC4wNCAxMCA5LjA5VjE1YzAgMS4xLjkgMiAyIDJoNXY1aDJ2LTUuNWMwLTEuMS0uOS0yLTItMmgtM3YtMy40NWMxLjI5IDEuMDcgMy4yNSAxLjk0IDUgMS45NXptLTYuMTcgNWMtLjQxIDEuMTYtMS41MiAyLTIuODMgMi0xLjY2IDAtMy0xLjM0LTMtMyAwLTEuMzEuODQtMi40MSAyLTIuODNWMTIuMWMtMi4yOC40Ni00IDIuNDgtNCA0LjkgMCAyLjc2IDIuMjQgNSA1IDUgMi40MiAwIDQuNDQtMS43MiA0LjktNGgtMi4wN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2NvdW50LWJhbGFuY2UiPjxwYXRoIGQ9Ik00IDEwdjdoM3YtN0g0em02IDB2N2gzdi03aC0zek0yIDIyaDE5di0zSDJ2M3ptMTQtMTJ2N2gzdi03aC0zem0tNC41LTlMMiA2djJoMTlWNmwtOS41LTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWNjb3VudC1iYWxhbmNlLXdhbGxldCI+PHBhdGggZD0iTTIxIDE4djFjMCAxLjEtLjkgMi0yIDJINWMtMS4xMSAwLTItLjktMi0yVjVjMC0xLjEuODktMiAyLTJoMTRjMS4xIDAgMiAuOSAyIDJ2MWgtOWMtMS4xMSAwLTIgLjktMiAydjhjMCAxLjEuODkgMiAyIDJoOXptLTktMmgxMFY4SDEydjh6bTQtMi41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2NvdW50LWJveCI+PHBhdGggZD0iTTMgNXYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0ySDVjLTEuMTEgMC0yIC45LTIgMnptMTIgNGMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtMyAxLjM0LTMgMy0zIDMgMS4zNCAzIDN6bS05IDhjMC0yIDQtMy4xIDYtMy4xczYgMS4xIDYgMy4xdjFINnYtMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2NvdW50LWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgM2MxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgMy0zLTEuMzQtMy0zIDEuMzQtMyAzLTN6bTAgMTQuMmMtMi41IDAtNC43MS0xLjI4LTYtMy4yMi4wMy0xLjk5IDQtMy4wOCA2LTMuMDggMS45OSAwIDUuOTcgMS4wOSA2IDMuMDgtMS4yOSAxLjk0LTMuNSAzLjIyLTYgMy4yMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGQiPjxwYXRoIGQ9Ik0xOSAxM2gtNnY2aC0ydi02SDV2LTJoNlY1aDJ2Nmg2djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWRkLWFsZXJ0Ij48cGF0aCBkPSJNMTAuMDEgMjEuMDFjMCAxLjEuODkgMS45OSAxLjk5IDEuOTlzMS45OS0uODkgMS45OS0xLjk5aC0zLjk4em04Ljg3LTQuMTlWMTFjMC0zLjI1LTIuMjUtNS45Ny01LjI5LTYuNjl2LS43MkMxMy41OSAyLjcxIDEyLjg4IDIgMTIgMnMtMS41OS43MS0xLjU5IDEuNTl2LjcyQzcuMzcgNS4wMyA1LjEyIDcuNzUgNS4xMiAxMXY1LjgyTDMgMTguOTRWMjBoMTh2LTEuMDZsLTIuMTItMi4xMnpNMTYgMTMuMDFoLTN2M2gtMnYtM0g4VjExaDNWOGgydjNoM3YyLjAxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFkZC1ib3giPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMiAxMGgtNHY0aC0ydi00SDd2LTJoNFY3aDJ2NGg0djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWRkLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTUgMTFoLTR2NGgtMnYtNEg3di0yaDRWN2gydjRoNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFkZC1jaXJjbGUtb3V0bGluZSI+PHBhdGggZD0iTTEzIDdoLTJ2NEg3djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0tMS01QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGQtc2hvcHBpbmctY2FydCI+PHBhdGggZD0iTTExIDloMlY2aDNWNGgtM1YxaC0ydjNIOHYyaDN2M3ptLTQgOWMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnptMTAgMGMtMS4xIDAtMS45OS45LTEuOTkgMnMuODkgMiAxLjk5IDIgMi0uOSAyLTItLjktMi0yLTJ6bS05LjgzLTMuMjVsLjAzLS4xMi45LTEuNjNoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy44Ni03LjAxTDE5LjQyIDRoLS4wMWwtMS4xIDItMi43NiA1SDguNTNsLS4xMy0uMjdMNi4xNiA2bC0uOTUtMi0uOTQtMkgxdjJoMmwzLjYgNy41OS0xLjM1IDIuNDVjLS4xNi4yOC0uMjUuNjEtLjI1Ljk2IDAgMS4xLjkgMiAyIDJoMTJ2LTJINy40MmMtLjEzIDAtLjI1LS4xMS0uMjUtLjI1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFsYXJtIj48cGF0aCBkPSJNMjIgNS43MmwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTcuODggMy4zOUw2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMTIuNSA4SDExdjZsNC43NSAyLjg1Ljc1LTEuMjMtNC0yLjM3Vjh6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDljNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFsYXJtLWFkZCI+PHBhdGggZD0iTTcuODggMy4zOUw2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMjIgNS43MmwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDljNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3em0xLTExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTNWOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhbGFybS1vZmYiPjxwYXRoIGQ9Ik0xMiA2YzMuODcgMCA3IDMuMTMgNyA3IDAgLjg0LS4xNiAxLjY1LS40MyAyLjRsMS41MiAxLjUyYy41OC0xLjE5LjkxLTIuNTEuOTEtMy45MiAwLTQuOTctNC4wMy05LTktOS0xLjQxIDAtMi43My4zMy0zLjkyLjkxTDkuNiA2LjQzQzEwLjM1IDYuMTYgMTEuMTYgNiAxMiA2em0xMC0uMjhsLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek0yLjkyIDIuMjlMMS42NSAzLjU3IDIuOTggNC45bC0xLjExLjkzIDEuNDIgMS40MiAxLjExLS45NC44LjhDMy44MyA4LjY5IDMgMTAuNzUgMyAxM2MwIDQuOTcgNC4wMiA5IDkgOSAyLjI1IDAgNC4zMS0uODMgNS44OS0yLjJsMi4yIDIuMiAxLjI3LTEuMjdMMy44OSAzLjI3bC0uOTctLjk4em0xMy41NSAxNi4xQzE1LjI2IDE5LjM5IDEzLjcgMjAgMTIgMjBjLTMuODcgMC03LTMuMTMtNy03IDAtMS43LjYxLTMuMjYgMS42MS00LjQ3bDkuODYgOS44NnpNOC4wMiAzLjI4TDYuNiAxLjg2bC0uODYuNzEgMS40MiAxLjQyLjg2LS43MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhbGFybS1vbiI+PHBhdGggZD0iTTIyIDUuNzJsLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek03Ljg4IDMuMzlMNi42IDEuODYgMiA1LjcxbDEuMjkgMS41MyA0LjU5LTMuODV6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDljNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3em0tMS40Ni01LjQ3TDguNDEgMTIuNGwtMS4wNiAxLjA2IDMuMTggMy4xOCA2LTYtMS4wNi0xLjA2LTQuOTMgNC45NXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhbGwtb3V0Ij48cGF0aCBkPSJNMTYuMjEgNC4xNmw0IDR2LTR6bTQgMTJsLTQgNGg0em0tMTIgNGwtNC00djR6bS00LTEybDQtNGgtNHptMTIuOTUtLjk1Yy0yLjczLTIuNzMtNy4xNy0yLjczLTkuOSAwcy0yLjczIDcuMTcgMCA5LjkgNy4xNyAyLjczIDkuOSAwIDIuNzMtNy4xNiAwLTkuOXptLTEuMSA4LjhjLTIuMTMgMi4xMy01LjU3IDIuMTMtNy43IDBzLTIuMTMtNS41NyAwLTcuNyA1LjU3LTIuMTMgNy43IDAgMi4xMyA1LjU3IDAgNy43eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFuZHJvaWQiPjxwYXRoIGQ9Ik02IDE4YzAgLjU1LjQ1IDEgMSAxaDF2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41czEuNS0uNjcgMS41LTEuNVYxOWgydjMuNWMwIC44My42NyAxLjUgMS41IDEuNXMxLjUtLjY3IDEuNS0xLjVWMTloMWMuNTUgMCAxLS40NSAxLTFWOEg2djEwek0zLjUgOEMyLjY3IDggMiA4LjY3IDIgOS41djdjMCAuODMuNjcgMS41IDEuNSAxLjVTNSAxNy4zMyA1IDE2LjV2LTdDNSA4LjY3IDQuMzMgOCAzLjUgOHptMTcgMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2N2MwIC44My42NyAxLjUgMS41IDEuNXMxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41em0tNC45Ny01Ljg0bDEuMy0xLjNjLjItLjIuMi0uNTEgMC0uNzEtLjItLjItLjUxLS4yLS43MSAwbC0xLjQ4IDEuNDhDMTMuODUgMS4yMyAxMi45NSAxIDEyIDFjLS45NiAwLTEuODYuMjMtMi42Ni42M0w3Ljg1LjE1Yy0uMi0uMi0uNTEtLjItLjcxIDAtLjIuMi0uMi41MSAwIC43MWwxLjMxIDEuMzFDNi45NyAzLjI2IDYgNS4wMSA2IDdoMTJjMC0xLjk5LS45Ny0zLjc1LTIuNDctNC44NHpNMTAgNUg5VjRoMXYxem01IDBoLTFWNGgxdjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYW5ub3VuY2VtZW50Ij48cGF0aCBkPSJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDloLTJWNWgydjZ6bTAgNGgtMnYtMmgydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXBwcyI+PHBhdGggZD0iTTQgOGg0VjRINHY0em02IDEyaDR2LTRoLTR2NHptLTYgMGg0di00SDR2NHptMC02aDR2LTRINHY0em02IDBoNHYtNGgtNHY0em02LTEwdjRoNFY0aC00em0tNiA0aDRWNGgtNHY0em02IDZoNHYtNGgtNHY0em0wIDZoNHYtNGgtNHY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFyY2hpdmUiPjxwYXRoIGQ9Ik0yMC41NCA1LjIzbC0xLjM5LTEuNjhDMTguODggMy4yMSAxOC40NyAzIDE4IDNINmMtLjQ3IDAtLjg4LjIxLTEuMTYuNTVMMy40NiA1LjIzQzMuMTcgNS41NyAzIDYuMDIgMyA2LjVWMTljMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2LjVjMC0uNDgtLjE3LS45My0uNDYtMS4yN3pNMTIgMTcuNUw2LjUgMTJIMTB2LTJoNHYyaDMuNUwxMiAxNy41ek01LjEyIDVsLjgxLTFoMTJsLjk0IDFINS4xMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1iYWNrIj48cGF0aCBkPSJNMjAgMTFINy44M2w1LjU5LTUuNTlMMTIgNGwtOCA4IDggOCAxLjQxLTEuNDFMNy44MyAxM0gyMHYtMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1kb3dud2FyZCI+PHBhdGggZD0iTTIwIDEybC0xLjQxLTEuNDFMMTMgMTYuMTdWNGgtMnYxMi4xN2wtNS41OC01LjU5TDQgMTJsOCA4IDgtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1kcm9wLWRvd24iPjxwYXRoIGQ9Ik03IDEwbDUgNSA1LTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXJyb3ctZHJvcC1kb3duLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMTJsLTQtNGg4bC00IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXJyb3ctZHJvcC11cCI+PHBhdGggZD0iTTcgMTRsNS01IDUgNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1mb3J3YXJkIj48cGF0aCBkPSJNMTIgNGwtMS40MSAxLjQxTDE2LjE3IDExSDR2MmgxMi4xN2wtNS41OCA1LjU5TDEyIDIwbDgtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy11cHdhcmQiPjxwYXRoIGQ9Ik00IDEybDEuNDEgMS40MUwxMSA3LjgzVjIwaDJWNy44M2w1LjU4IDUuNTlMMjAgMTJsLTgtOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXNwZWN0LXJhdGlvIj48cGF0aCBkPSJNMTkgMTJoLTJ2M2gtM3YyaDV2LTV6TTcgOWgzVjdINXY1aDJWOXptMTQtNkgzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2Vzc21lbnQiPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxN0g3di03aDJ2N3ptNCAwaC0yVjdoMnYxMHptNCAwaC0ydi00aDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50Ij48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTIgMTRIN3YtMmg3djJ6bTMtNEg3di0yaDEwdjJ6bTAtNEg3VjdoMTB2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50LWluZCI+PHBhdGggZD0iTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0wIDRjMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDMtMy0xLjM0LTMtMyAxLjM0LTMgMy0zem02IDEySDZ2LTEuNGMwLTIgNC0zLjEgNi0zLjFzNiAxLjEgNiAzLjFWMTl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXNzaWdubWVudC1sYXRlIj48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNiAxNWgtMnYtMmgydjJ6bTAtNGgtMlY4aDJ2NnptLTEtOWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2lnbm1lbnQtcmV0dXJuIj48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTQgMTJoLTR2M2wtNS01IDUtNXYzaDR2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50LXJldHVybmVkIj48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTAgMTVsLTUtNWgzVjloNHY0aDNsLTUgNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50LXR1cm5lZC1pbiI+PHBhdGggZD0iTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tMiAxNGwtNC00IDEuNDEtMS40MUwxMCAxNC4xN2w2LjU5LTYuNTlMMTggOWwtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImF0dGFjaG1lbnQiPjxwYXRoIGQ9Ik0yIDEyLjVDMiA5LjQ2IDQuNDYgNyA3LjUgN0gxOGMyLjIxIDAgNCAxLjc5IDQgNHMtMS43OSA0LTQgNEg5LjVDOC4xMiAxNSA3IDEzLjg4IDcgMTIuNVM4LjEyIDEwIDkuNSAxMEgxN3YySDkuNDFjLS41NSAwLS41NSAxIDAgMUgxOGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTJINy41QzUuNTcgOSA0IDEwLjU3IDQgMTIuNVM1LjU3IDE2IDcuNSAxNkgxN3YySDcuNUM0LjQ2IDE4IDIgMTUuNTQgMiAxMi41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImF1dG9yZW5ldyI+PHBhdGggZD0iTTEyIDZ2M2w0LTQtNC00djNjLTQuNDIgMC04IDMuNTgtOCA4IDAgMS41Ny40NiAzLjAzIDEuMjQgNC4yNkw2LjcgMTQuOGMtLjQ1LS44My0uNy0xLjc5LS43LTIuOCAwLTMuMzEgMi42OS02IDYtNnptNi43NiAxLjc0TDE3LjMgOS4yYy40NC44NC43IDEuNzkuNyAyLjggMCAzLjMxLTIuNjkgNi02IDZ2LTNsLTQgNCA0IDR2LTNjNC40MiAwIDgtMy41OCA4LTggMC0xLjU3LS40Ni0zLjAzLTEuMjQtNC4yNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJiYWNrc3BhY2UiPjxwYXRoIGQ9Ik0yMiAzSDdjLS42OSAwLTEuMjMuMzUtMS41OS44OEwwIDEybDUuNDEgOC4xMWMuMzYuNTMuOS44OSAxLjU5Ljg5aDE1YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS0zIDEyLjU5TDE3LjU5IDE3IDE0IDEzLjQxIDEwLjQxIDE3IDkgMTUuNTkgMTIuNTkgMTIgOSA4LjQxIDEwLjQxIDcgMTQgMTAuNTkgMTcuNTkgNyAxOSA4LjQxIDE1LjQxIDEyIDE5IDE1LjU5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJhY2t1cCI+PHBhdGggZD0iTTE5LjM1IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDQgMi4zNCA4LjM2IDAgMTAuOTEgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTQgMTN2NGgtNHYtNEg3bDUtNSA1IDVoLTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYmxvY2siPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek00IDEyYzAtNC40MiAzLjU4LTggOC04IDEuODUgMCAzLjU1LjYzIDQuOSAxLjY5TDUuNjkgMTYuOUM0LjYzIDE1LjU1IDQgMTMuODUgNCAxMnptOCA4Yy0xLjg1IDAtMy41NS0uNjMtNC45LTEuNjlMMTguMzEgNy4xQzE5LjM3IDguNDUgMjAgMTAuMTUgMjAgMTJjMCA0LjQyLTMuNTggOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYm9vayI+PHBhdGggZD0iTTE4IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek02IDRoNXY4bC0yLjUtMS41TDYgMTJWNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJib29rbWFyayI+PHBhdGggZD0iTTE3IDNIN2MtMS4xIDAtMS45OS45LTEuOTkgMkw1IDIxbDctMyA3IDNWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJib29rbWFyay1ib3JkZXIiPjxwYXRoIGQ9Ik0xNyAzSDdjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNSAyMWw3LTMgNyAzVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTVsLTUtMi4xOEw3IDE4VjVoMTB2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYnVnLXJlcG9ydCI+PHBhdGggZD0iTTIwIDhoLTIuODFjLS40NS0uNzgtMS4wNy0xLjQ1LTEuODItMS45NkwxNyA0LjQxIDE1LjU5IDNsLTIuMTcgMi4xN0MxMi45NiA1LjA2IDEyLjQ5IDUgMTIgNWMtLjQ5IDAtLjk2LjA2LTEuNDEuMTdMOC40MSAzIDcgNC40MWwxLjYyIDEuNjNDNy44OCA2LjU1IDcuMjYgNy4yMiA2LjgxIDhINHYyaDIuMDljLS4wNS4zMy0uMDkuNjYtLjA5IDF2MUg0djJoMnYxYzAgLjM0LjA0LjY3LjA5IDFINHYyaDIuODFjMS4wNCAxLjc5IDIuOTcgMyA1LjE5IDNzNC4xNS0xLjIxIDUuMTktM0gyMHYtMmgtMi4wOWMuMDUtLjMzLjA5LS42Ni4wOS0xdi0xaDJ2LTJoLTJ2LTFjMC0uMzQtLjA0LS42Ny0uMDktMUgyMFY4em0tNiA4aC00di0yaDR2MnptMC00aC00di0yaDR2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJidWlsZCI+PHBhdGggZD0iTTIyLjcgMTlsLTkuMS05LjFjLjktMi4zLjQtNS0xLjUtNi45LTItMi01LTIuNC03LjQtMS4zTDkgNiA2IDkgMS42IDQuN0MuNCA3LjEuOSAxMC4xIDIuOSAxMi4xYzEuOSAxLjkgNC42IDIuNCA2LjkgMS41bDkuMSA5LjFjLjQuNCAxIC40IDEuNCAwbDIuMy0yLjNjLjUtLjQuNS0xLjEuMS0xLjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FjaGVkIj48cGF0aCBkPSJNMTkgOGwtNCA0aDNjMCAzLjMxLTIuNjkgNi02IDYtMS4wMSAwLTEuOTctLjI1LTIuOC0uN2wtMS40NiAxLjQ2QzguOTcgMTkuNTQgMTAuNDMgMjAgMTIgMjBjNC40MiAwIDgtMy41OCA4LThoM2wtNC00ek02IDEyYzAtMy4zMSAyLjY5LTYgNi02IDEuMDEgMCAxLjk3LjI1IDIuOC43bDEuNDYtMS40NkMxNS4wMyA0LjQ2IDEzLjU3IDQgMTIgNGMtNC40MiAwLTggMy41OC04IDhIMWw0IDQgNC00SDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FtZXJhLWVuaGFuY2UiPjxwYXRoIGQ9Ik05IDNMNy4xNyA1SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMmgtMy4xN0wxNSAzSDl6bTMgMTVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0wLTFsMS4yNS0yLjc1TDE2IDEzbC0yLjc1LTEuMjVMMTIgOWwtMS4yNSAyLjc1TDggMTNsMi43NSAxLjI1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhbmNlbCI+PHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTUgMTMuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhcmQtZ2lmdGNhcmQiPjxwYXRoIGQ9Ik0yMCA2aC0yLjE4Yy4xMS0uMzEuMTgtLjY1LjE4LTEgMC0xLjY2LTEuMzQtMy0zLTMtMS4wNSAwLTEuOTYuNTQtMi41IDEuMzVsLS41LjY3LS41LS42OEMxMC45NiAyLjU0IDEwLjA1IDIgOSAyIDcuMzQgMiA2IDMuMzQgNiA1YzAgLjM1LjA3LjY5LjE4IDFINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNS0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTkgNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoNS4wOEw3IDEwLjgzIDguNjIgMTIgMTEgOC43NmwxLTEuMzYgMSAxLjM2TDE1LjM4IDEyIDE3IDEwLjgzIDE0LjkyIDhIMjB2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYXJkLW1lbWJlcnNoaXAiPjxwYXRoIGQ9Ik0yMCAySDRjLTEuMTEgMC0yIC44OS0yIDJ2MTFjMCAxLjExLjg5IDIgMiAyaDR2NWw0LTIgNCAydi01aDRjMS4xMSAwIDItLjg5IDItMlY0YzAtMS4xMS0uODktMi0yLTJ6bTAgMTNINHYtMmgxNnYyem0wLTVINFY0aDE2djZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FyZC10cmF2ZWwiPjxwYXRoIGQ9Ik0yMCA2aC0zVjRjMC0xLjExLS44OS0yLTItMkg5Yy0xLjExIDAtMiAuODktMiAydjJINGMtMS4xMSAwLTIgLjg5LTIgMnYxMWMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6TTkgNGg2djJIOVY0em0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoM3YyaDJWOGg2djJoMlY4aDN2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjaGFuZ2UtaGlzdG9yeSI+PHBhdGggZD0iTTEyIDcuNzdMMTguMzkgMThINS42MUwxMiA3Ljc3TTEyIDRMMiAyMGgyMEwxMiA0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZWNrIj48cGF0aCBkPSJNOSAxNi4xN0w0LjgzIDEybC0xLjQyIDEuNDFMOSAxOSAyMSA3bC0xLjQxLTEuNDF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2hlY2stYm94Ij48cGF0aCBkPSJNMTkgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjkgMi0yVjVjMC0xLjEtLjg5LTItMi0yem0tOSAxNGwtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZWNrLWJveC1vdXRsaW5lLWJsYW5rIj48cGF0aCBkPSJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjaGVjay1jaXJjbGUiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMiAxNWwtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZXZyb24tbGVmdCI+PHBhdGggZD0iTTE1LjQxIDcuNDFMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTAuODMgMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2hldnJvbi1yaWdodCI+PHBhdGggZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNocm9tZS1yZWFkZXItbW9kZSI+PHBhdGggZD0iTTEzIDEyaDd2MS41aC03em0wLTIuNWg3VjExaC03em0wIDVoN1YxNmgtN3pNMjEgNEgzYy0xLjEgMC0yIC45LTIgMnYxM2MwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTVoLTlWNmg5djEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsYXNzIj48cGF0aCBkPSJNMTggMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTYgNGg1djhsLTIuNS0xLjVMNiAxMlY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsZWFyIj48cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3NlIj48cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTQuNSAxNEg4Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zbC4xNC4wMUM4LjU4IDguMjggMTAuMTMgNyAxMiA3YzIuMjEgMCA0IDEuNzkgNCA0aC41YzEuMzggMCAyLjUgMS4xMiAyLjUgMi41UzE3Ljg4IDE2IDE2LjUgMTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtZG9uZSI+PHBhdGggZD0iTTE5LjM1IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDQgMi4zNCA4LjM2IDAgMTAuOTEgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTAgMTdsLTMuNS0zLjUgMS40MS0xLjQxTDEwIDE0LjE3IDE1LjE4IDlsMS40MSAxLjQxTDEwIDE3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkLWRvd25sb2FkIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xNyAxM2wtNSA1LTUtNWgzVjloNHY0aDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtb2ZmIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDRjLTEuNDggMC0yLjg1LjQzLTQuMDEgMS4xN2wxLjQ2IDEuNDZDMTAuMjEgNi4yMyAxMS4wOCA2IDEyIDZjMy4wNCAwIDUuNSAyLjQ2IDUuNSA1LjV2LjVIMTljMS42NiAwIDMgMS4zNCAzIDMgMCAxLjEzLS42NCAyLjExLTEuNTYgMi42MmwxLjQ1IDEuNDVDMjMuMTYgMTguMTYgMjQgMTYuNjggMjQgMTVjMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTMgNS4yN2wyLjc1IDIuNzRDMi41NiA4LjE1IDAgMTAuNzcgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxMS43M2wyIDJMMjEgMjAuNzMgNC4yNyA0IDMgNS4yN3pNNy43MyAxMGw4IDhINmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNGgxLjczeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkLXF1ZXVlIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xOSAxOEg2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00aC43MUM3LjM3IDcuNjkgOS40OCA2IDEyIDZjMy4wNCAwIDUuNSAyLjQ2IDUuNSA1LjV2LjVIMTljMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtdXBsb2FkIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xNCAxM3Y0aC00di00SDdsNS01IDUgNWgtM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJjb2RlIj48cGF0aCBkPSJNOS40IDE2LjZMNC44IDEybDQuNi00LjZMOCA2bC02IDYgNiA2IDEuNC0xLjR6bTUuMiAwbDQuNi00LjYtNC42LTQuNkwxNiA2bDYgNi02IDYtMS40LTEuNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb21wYXJlLWFycm93cyI+PHBhdGggZD0iTTkuMDEgMTRIMnYyaDcuMDF2M0wxMyAxNWwtMy45OS00djN6bTUuOTgtMXYtM0gyMlY4aC03LjAxVjVMMTEgOWwzLjk5IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udGVudC1jb3B5Ij48cGF0aCBkPSJNMTYgMUg0Yy0xLjEgMC0yIC45LTIgMnYxNGgyVjNoMTJWMXptMyA0SDhjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTFjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxNkg4VjdoMTF2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udGVudC1jdXQiPjxwYXRoIGQ9Ik05LjY0IDcuNjRjLjIzLS41LjM2LTEuMDUuMzYtMS42NCAwLTIuMjEtMS43OS00LTQtNFMyIDMuNzkgMiA2czEuNzkgNCA0IDRjLjU5IDAgMS4xNC0uMTMgMS42NC0uMzZMMTAgMTJsLTIuMzYgMi4zNkM3LjE0IDE0LjEzIDYuNTkgMTQgNiAxNGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00YzAtLjU5LS4xMy0xLjE0LS4zNi0xLjY0TDEyIDE0bDcgN2gzdi0xTDkuNjQgNy42NHpNNiA4Yy0xLjEgMC0yLS44OS0yLTJzLjktMiAyLTIgMiAuODkgMiAyLS45IDItMiAyem0wIDEyYy0xLjEgMC0yLS44OS0yLTJzLjktMiAyLTIgMiAuODkgMiAyLS45IDItMiAyem02LTcuNWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41LjUuMjIuNS41LS4yMi41LS41LjV6TTE5IDNsLTYgNiAyIDIgNy03VjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udGVudC1wYXN0ZSI+PHBhdGggZD0iTTE5IDJoLTQuMThDMTQuNC44NCAxMy4zIDAgMTIgMGMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNyAxOEg1VjRoMnYzaDEwVjRoMnYxNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb3B5cmlnaHQiPjxwYXRoIGQ9Ik0xMC4wOCAxMC44NmMuMDUtLjMzLjE2LS42Mi4zLS44N3MuMzQtLjQ2LjU5LS42MmMuMjQtLjE1LjU0LS4yMi45MS0uMjMuMjMuMDEuNDQuMDUuNjMuMTMuMi4wOS4zOC4yMS41Mi4zNnMuMjUuMzMuMzQuNTMuMTMuNDIuMTQuNjRoMS43OWMtLjAyLS40Ny0uMTEtLjktLjI4LTEuMjlzLS40LS43My0uNy0xLjAxLS42Ni0uNS0xLjA4LS42Ni0uODgtLjIzLTEuMzktLjIzYy0uNjUgMC0xLjIyLjExLTEuNy4zNHMtLjg4LjUzLTEuMi45Mi0uNTYuODQtLjcxIDEuMzZTOCAxMS4yOSA4IDExLjg3di4yN2MwIC41OC4wOCAxLjEyLjIzIDEuNjRzLjM5Ljk3LjcxIDEuMzUuNzIuNjkgMS4yLjkxIDEuMDUuMzQgMS43LjM0Yy40NyAwIC45MS0uMDggMS4zMi0uMjNzLjc3LS4zNiAxLjA4LS42My41Ni0uNTguNzQtLjk0LjI5LS43NC4zLTEuMTVoLTEuNzljLS4wMS4yMS0uMDYuNC0uMTUuNThzLS4yMS4zMy0uMzYuNDYtLjMyLjIzLS41Mi4zYy0uMTkuMDctLjM5LjA5LS42LjEtLjM2LS4wMS0uNjYtLjA4LS44OS0uMjMtLjI1LS4xNi0uNDUtLjM3LS41OS0uNjJzLS4yNS0uNTUtLjMtLjg4LS4wOC0uNjctLjA4LTF2LS4yN2MwLS4zNS4wMy0uNjguMDgtMS4wMXpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JlYXRlIj48cGF0aCBkPSJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTIuMzQtMi4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyZWF0ZS1uZXctZm9sZGVyIj48cGF0aCBkPSJNMjAgNmgtOGwtMi0ySDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnptLTEgOGgtM3YzaC0ydi0zaC0zdi0yaDNWOWgydjNoM3YyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyZWRpdC1jYXJkIj48cGF0aCBkPSJNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2YzAtMS4xMS0uODktMi0yLTJ6bTAgMTRINHYtNmgxNnY2em0wLTEwSDRWNmgxNnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRhc2hib2FyZCI+PHBhdGggZD0iTTMgMTNoOFYzSDN2MTB6bTAgOGg4di02SDN2NnptMTAgMGg4VjExaC04djEwem0wLTE4djZoOFYzaC04eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRhdGUtcmFuZ2UiPjxwYXRoIGQ9Ik05IDExSDd2Mmgydi0yem00IDBoLTJ2Mmgydi0yem00IDBoLTJ2Mmgydi0yem0yLTdoLTFWMmgtMnYySDhWMkg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAyMGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOWgxNHYxMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJkZWxldGUiPjxwYXRoIGQ9Ik02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTE5IDRoLTMuNWwtMS0xaC01bC0xIDFINXYyaDE0VjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGVsZXRlLWZvcmV2ZXIiPjxwYXRoIGQ9Ik02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6bTIuNDYtNy4xMmwxLjQxLTEuNDFMMTIgMTIuNTlsMi4xMi0yLjEyIDEuNDEgMS40MUwxMy40MSAxNGwyLjEyIDIuMTItMS40MSAxLjQxTDEyIDE1LjQxbC0yLjEyIDIuMTItMS40MS0xLjQxTDEwLjU5IDE0bC0yLjEzLTIuMTJ6TTE1LjUgNGwtMS0xaC01bC0xIDFINXYyaDE0VjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGVsZXRlLXN3ZWVwIj48cGF0aCBkPSJNMTUgMTZoNHYyaC00em0wLThoN3YyaC03em0wIDRoNnYyaC02ek0zIDE4YzAgMS4xLjkgMiAyIDJoNmMxLjEgMCAyLS45IDItMlY4SDN2MTB6TTE0IDVoLTNsLTEtMUg2TDUgNUgydjJoMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGVzY3JpcHRpb24iPjxwYXRoIGQ9Ik0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTZIOHYtMmg4djJ6bTAtNEg4di0yaDh2MnptLTMtNVYzLjVMMTguNSA5SDEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRucyI+PHBhdGggZD0iTTIwIDEzSDRjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMXYtNmMwLS41NS0uNDUtMS0xLTF6TTcgMTljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyek0yMCAzSDRjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMVY0YzAtLjU1LS40NS0xLTEtMXpNNyA5Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJkb25lIj48cGF0aCBkPSJNOSAxNi4yTDQuOCAxMmwtMS40IDEuNEw5IDE5IDIxIDdsLTEuNC0xLjRMOSAxNi4yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRvbmUtYWxsIj48cGF0aCBkPSJNMTggN2wtMS40MS0xLjQxLTYuMzQgNi4zNCAxLjQxIDEuNDFMMTggN3ptNC4yNC0xLjQxTDExLjY2IDE2LjE3IDcuNDggMTJsLTEuNDEgMS40MUwxMS42NiAxOWwxMi0xMi0xLjQyLTEuNDF6TS40MSAxMy40MUw2IDE5bDEuNDEtMS40MUwxLjgzIDEyIC40MSAxMy40MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJkb251dC1sYXJnZSI+PHBhdGggZD0iTTExIDUuMDhWMmMtNSAuNS05IDQuODEtOSAxMHM0IDkuNSA5IDEwdi0zLjA4Yy0zLS40OC02LTMuNC02LTYuOTJzMy02LjQ0IDYtNi45MnpNMTguOTcgMTFIMjJjLS40Ny01LTQtOC41My05LTl2My4wOEMxNiA1LjUxIDE4LjU0IDggMTguOTcgMTF6TTEzIDE4LjkyVjIyYzUtLjQ3IDguNTMtNCA5LTloLTMuMDNjLS40MyAzLTIuOTcgNS40OS01Ljk3IDUuOTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZG9udXQtc21hbGwiPjxwYXRoIGQ9Ik0xMSA5LjE2VjJjLTUgLjUtOSA0Ljc5LTkgMTBzNCA5LjUgOSAxMHYtNy4xNmMtMS0uNDEtMi0xLjUyLTItMi44NHMxLTIuNDMgMi0yLjg0ek0xNC44NiAxMUgyMmMtLjQ4LTQuNzUtNC04LjUzLTktOXY3LjE2YzEgLjMgMS41Mi45OCAxLjg2IDEuODR6TTEzIDE0Ljg0VjIyYzUtLjQ3IDguNTItNC4yNSA5LTloLTcuMTRjLS4zNC44Ni0uODYgMS41NC0xLjg2IDEuODR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZHJhZnRzIj48cGF0aCBkPSJNMjEuOTkgOGMwLS43Mi0uMzctMS4zNS0uOTQtMS43TDEyIDEgMi45NSA2LjNDMi4zOCA2LjY1IDIgNy4yOCAyIDh2MTBjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMmwtLjAxLTEwek0xMiAxM0wzLjc0IDcuODQgMTIgM2w4LjI2IDQuODRMMTIgMTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZWplY3QiPjxwYXRoIGQ9Ik01IDE3aDE0djJINXptNy0xMkw1LjMzIDE1aDEzLjM0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImVycm9yIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJlcnJvci1vdXRsaW5lIj48cGF0aCBkPSJNMTEgMTVoMnYyaC0yem0wLThoMnY2aC0yem0uOTktNUM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV1cm8tc3ltYm9sIj48cGF0aCBkPSJNMTUgMTguNWMtMi41MSAwLTQuNjgtMS40Mi01Ljc2LTMuNUgxNXYtMkg4LjU4Yy0uMDUtLjMzLS4wOC0uNjYtLjA4LTFzLjAzLS42Ny4wOC0xSDE1VjlIOS4yNEMxMC4zMiA2LjkyIDEyLjUgNS41IDE1IDUuNWMxLjYxIDAgMy4wOS41OSA0LjIzIDEuNTdMMjEgNS4zQzE5LjQxIDMuODcgMTcuMyAzIDE1IDNjLTMuOTIgMC03LjI0IDIuNTEtOC40OCA2SDN2MmgzLjA2Yy0uMDQuMzMtLjA2LjY2LS4wNiAxIDAgLjM0LjAyLjY3LjA2IDFIM3YyaDMuNTJjMS4yNCAzLjQ5IDQuNTYgNiA4LjQ4IDYgMi4zMSAwIDQuNDEtLjg3IDYtMi4zbC0xLjc4LTEuNzdjLTEuMTMuOTgtMi42IDEuNTctNC4yMiAxLjU3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV2ZW50Ij48cGF0aCBkPSJNMTcgMTJoLTV2NWg1di01ek0xNiAxdjJIOFYxSDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDE5YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJoLTFWMWgtMnptMyAxOEg1VjhoMTR2MTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXZlbnQtc2VhdCI+PHBhdGggZD0iTTQgMTh2M2gzdi0zaDEwdjNoM3YtNkg0em0xNS04aDN2M2gtM3pNMiAxMGgzdjNIMnptMTUgM0g3VjVjMC0xLjEuOS0yIDItMmg2YzEuMSAwIDIgLjkgMiAydjh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhpdC10by1hcHAiPjxwYXRoIGQ9Ik0xMC4wOSAxNS41OUwxMS41IDE3bDUtNS01LTUtMS40MSAxLjQxTDEyLjY3IDExSDN2Mmg5LjY3bC0yLjU4IDIuNTl6TTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjRoMlY1aDE0djE0SDV2LTRIM3Y0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhwYW5kLWxlc3MiPjxwYXRoIGQ9Ik0xMiA4bC02IDYgMS40MSAxLjQxTDEyIDEwLjgzbDQuNTkgNC41OEwxOCAxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJleHBhbmQtbW9yZSI+PHBhdGggZD0iTTE2LjU5IDguNTlMMTIgMTMuMTcgNy40MSA4LjU5IDYgMTBsNiA2IDYtNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJleHBsb3JlIj48cGF0aCBkPSJNMTIgMTAuOWMtLjYxIDAtMS4xLjQ5LTEuMSAxLjFzLjQ5IDEuMSAxLjEgMS4xYy42MSAwIDEuMS0uNDkgMS4xLTEuMXMtLjQ5LTEuMS0xLjEtMS4xek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0yLjE5IDEyLjE5TDYgMThsMy44MS04LjE5TDE4IDZsLTMuODEgOC4xOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJleHRlbnNpb24iPjxwYXRoIGQ9Ik0yMC41IDExSDE5VjdjMC0xLjEtLjktMi0yLTJoLTRWMy41QzEzIDIuMTIgMTEuODggMSAxMC41IDFTOCAyLjEyIDggMy41VjVINGMtMS4xIDAtMS45OS45LTEuOTkgMnYzLjhIMy41YzEuNDkgMCAyLjcgMS4yMSAyLjcgMi43cy0xLjIxIDIuNy0yLjcgMi43SDJWMjBjMCAxLjEuOSAyIDIgMmgzLjh2LTEuNWMwLTEuNDkgMS4yMS0yLjcgMi43LTIuNyAxLjQ5IDAgMi43IDEuMjEgMi43IDIuN1YyMkgxN2MxLjEgMCAyLS45IDItMnYtNGgxLjVjMS4zOCAwIDIuNS0xLjEyIDIuNS0yLjVTMjEuODggMTEgMjAuNSAxMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmYWNlIj48cGF0aCBkPSJNOSAxMS43NWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVzLjU2IDEuMjUgMS4yNSAxLjI1IDEuMjUtLjU2IDEuMjUtMS4yNS0uNTYtMS4yNS0xLjI1LTEuMjV6bTYgMGMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVzLjU2IDEuMjUgMS4yNSAxLjI1IDEuMjUtLjU2IDEuMjUtMS4yNS0uNTYtMS4yNS0xLjI1LTEuMjV6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04IDAtLjI5LjAyLS41OC4wNS0uODYgMi4zNi0xLjA1IDQuMjMtMi45OCA1LjIxLTUuMzdDMTEuMDcgOC4zMyAxNC4wNSAxMCAxNy40MiAxMGMuNzggMCAxLjUzLS4wOSAyLjI1LS4yNi4yMS43MS4zMyAxLjQ3LjMzIDIuMjYgMCA0LjQxLTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmF2b3JpdGUiPjxwYXRoIGQ9Ik0xMiAyMS4zNWwtMS40NS0xLjMyQzUuNCAxNS4zNiAyIDEyLjI4IDIgOC41IDIgNS40MiA0LjQyIDMgNy41IDNjMS43NCAwIDMuNDEuODEgNC41IDIuMDlDMTMuMDkgMy44MSAxNC43NiAzIDE2LjUgMyAxOS41OCAzIDIyIDUuNDIgMjIgOC41YzAgMy43OC0zLjQgNi44Ni04LjU1IDExLjU0TDEyIDIxLjM1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZhdm9yaXRlLWJvcmRlciI+PHBhdGggZD0iTTE2LjUgM2MtMS43NCAwLTMuNDEuODEtNC41IDIuMDlDMTAuOTEgMy44MSA5LjI0IDMgNy41IDMgNC40MiAzIDIgNS40MiAyIDguNWMwIDMuNzggMy40IDYuODYgOC41NSAxMS41NEwxMiAyMS4zNWwxLjQ1LTEuMzJDMTguNiAxNS4zNiAyMiAxMi4yOCAyMiA4LjUgMjIgNS40MiAxOS41OCAzIDE2LjUgM3ptLTQuNCAxNS41NWwtLjEuMS0uMS0uMUM3LjE0IDE0LjI0IDQgMTEuMzkgNCA4LjUgNCA2LjUgNS41IDUgNy41IDVjMS41NCAwIDMuMDQuOTkgMy41NyAyLjM2aDEuODdDMTMuNDYgNS45OSAxNC45NiA1IDE2LjUgNWMyIDAgMy41IDEuNSAzLjUgMy41IDAgMi44OS0zLjE0IDUuNzQtNy45IDEwLjA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZlZWRiYWNrIj48cGF0aCBkPSJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDEyaC0ydi0yaDJ2MnptMC00aC0yVjZoMnY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbGUtZG93bmxvYWQiPjxwYXRoIGQ9Ik0xOSA5aC00VjNIOXY2SDVsNyA3IDctN3pNNSAxOHYyaDE0di0ySDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsZS11cGxvYWQiPjxwYXRoIGQ9Ik05IDE2aDZ2LTZoNGwtNy03LTcgN2g0em0tNCAyaDE0djJINXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItbGlzdCI+PHBhdGggZD0iTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbmQtaW4tcGFnZSI+PHBhdGggZD0iTTIwIDE5LjU5VjhsLTYtNkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjLjQ1IDAgLjg1LS4xNSAxLjE5LS40bC00LjQzLTQuNDNjLS44LjUyLTEuNzQuODMtMi43Ni44My0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDVjMCAxLjAyLS4zMSAxLjk2LS44MyAyLjc1TDIwIDE5LjU5ek05IDEzYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTMtMS4zNC0zLTMtMy0zIDEuMzQtMyAzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbmQtcmVwbGFjZSI+PHBhdGggZD0iTTExIDZjMS4zOCAwIDIuNjMuNTYgMy41NCAxLjQ2TDEyIDEwaDZWNGwtMi4wNSAyLjA1QzE0LjY4IDQuNzggMTIuOTMgNCAxMSA0Yy0zLjUzIDAtNi40MyAyLjYxLTYuOTIgNkg2LjFjLjQ2LTIuMjggMi40OC00IDQuOS00em01LjY0IDkuMTRjLjY2LS45IDEuMTItMS45NyAxLjI4LTMuMTRIMTUuOWMtLjQ2IDIuMjgtMi40OCA0LTQuOSA0LTEuMzggMC0yLjYzLS41Ni0zLjU0LTEuNDZMMTAgMTJINHY2bDIuMDUtMi4wNUM3LjMyIDE3LjIyIDkuMDcgMTggMTEgMThjMS41NSAwIDIuOTgtLjUxIDQuMTQtMS4zNkwyMCAyMS40OSAyMS40OSAyMGwtNC44NS00Ljg2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbmdlcnByaW50Ij48cGF0aCBkPSJNMTcuODEgNC40N2MtLjA4IDAtLjE2LS4wMi0uMjMtLjA2QzE1LjY2IDMuNDIgMTQgMyAxMi4wMSAzYy0xLjk4IDAtMy44Ni40Ny01LjU3IDEuNDEtLjI0LjEzLS41NC4wNC0uNjgtLjItLjEzLS4yNC0uMDQtLjU1LjItLjY4QzcuODIgMi41MiA5Ljg2IDIgMTIuMDEgMmMyLjEzIDAgMy45OS40NyA2LjAzIDEuNTIuMjUuMTMuMzQuNDMuMjEuNjctLjA5LjE4LS4yNi4yOC0uNDQuMjh6TTMuNSA5LjcyYy0uMSAwLS4yLS4wMy0uMjktLjA5LS4yMy0uMTYtLjI4LS40Ny0uMTItLjcuOTktMS40IDIuMjUtMi41IDMuNzUtMy4yN0M5Ljk4IDQuMDQgMTQgNC4wMyAxNy4xNSA1LjY1YzEuNS43NyAyLjc2IDEuODYgMy43NSAzLjI1LjE2LjIyLjExLjU0LS4xMi43LS4yMy4xNi0uNTQuMTEtLjctLjEyLS45LTEuMjYtMi4wNC0yLjI1LTMuMzktMi45NC0yLjg3LTEuNDctNi41NC0xLjQ3LTkuNC4wMS0xLjM2LjctMi41IDEuNy0zLjQgMi45Ni0uMDguMTQtLjIzLjIxLS4zOS4yMXptNi4yNSAxMi4wN2MtLjEzIDAtLjI2LS4wNS0uMzUtLjE1LS44Ny0uODctMS4zNC0xLjQzLTIuMDEtMi42NC0uNjktMS4yMy0xLjA1LTIuNzMtMS4wNS00LjM0IDAtMi45NyAyLjU0LTUuMzkgNS42Ni01LjM5czUuNjYgMi40MiA1LjY2IDUuMzljMCAuMjgtLjIyLjUtLjUuNXMtLjUtLjIyLS41LS41YzAtMi40Mi0yLjA5LTQuMzktNC42Ni00LjM5LTIuNTcgMC00LjY2IDEuOTctNC42NiA0LjM5IDAgMS40NC4zMiAyLjc3LjkzIDMuODUuNjQgMS4xNSAxLjA4IDEuNjQgMS44NSAyLjQyLjE5LjIuMTkuNTEgMCAuNzEtLjExLjEtLjI0LjE1LS4zNy4xNXptNy4xNy0xLjg1Yy0xLjE5IDAtMi4yNC0uMy0zLjEtLjg5LTEuNDktMS4wMS0yLjM4LTIuNjUtMi4zOC00LjM5IDAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41YzAgMS40MS43MiAyLjc0IDEuOTQgMy41Ni43MS40OCAxLjU0LjcxIDIuNTQuNzEuMjQgMCAuNjQtLjAzIDEuMDQtLjEuMjctLjA1LjUzLjEzLjU4LjQxLjA1LjI3LS4xMy41My0uNDEuNTgtLjU3LjExLTEuMDcuMTItMS4yMS4xMnpNMTQuOTEgMjJjLS4wNCAwLS4wOS0uMDEtLjEzLS4wMi0xLjU5LS40NC0yLjYzLTEuMDMtMy43Mi0yLjEtMS40LTEuMzktMi4xNy0zLjI0LTIuMTctNS4yMiAwLTEuNjIgMS4zOC0yLjk0IDMuMDgtMi45NCAxLjcgMCAzLjA4IDEuMzIgMy4wOCAyLjk0IDAgMS4wNy45MyAxLjk0IDIuMDggMS45NHMyLjA4LS44NyAyLjA4LTEuOTRjMC0zLjc3LTMuMjUtNi44My03LjI1LTYuODMtMi44NCAwLTUuNDQgMS41OC02LjYxIDQuMDMtLjM5LjgxLS41OSAxLjc2LS41OSAyLjggMCAuNzguMDcgMi4wMS42NyAzLjYxLjEuMjYtLjAzLjU1LS4yOS42NC0uMjYuMS0uNTUtLjA0LS42NC0uMjktLjQ5LTEuMzEtLjczLTIuNjEtLjczLTMuOTYgMC0xLjIuMjMtMi4yOS42OC0zLjI0IDEuMzMtMi43OSA0LjI4LTQuNiA3LjUxLTQuNiA0LjU1IDAgOC4yNSAzLjUxIDguMjUgNy44MyAwIDEuNjItMS4zOCAyLjk0LTMuMDggMi45NHMtMy4wOC0xLjMyLTMuMDgtMi45NGMwLTEuMDctLjkzLTEuOTQtMi4wOC0xLjk0cy0yLjA4Ljg3LTIuMDggMS45NGMwIDEuNzEuNjYgMy4zMSAxLjg3IDQuNTEuOTUuOTQgMS44NiAxLjQ2IDMuMjcgMS44NS4yNy4wNy40Mi4zNS4zNS42MS0uMDUuMjMtLjI2LjM4LS40Ny4zOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaXJzdC1wYWdlIj48cGF0aCBkPSJNMTguNDEgMTYuNTlMMTMuODIgMTJsNC41OS00LjU5TDE3IDZsLTYgNiA2IDZ6TTYgNmgydjEySDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxhZyI+PHBhdGggZD0iTTE0LjQgNkwxNCA0SDV2MTdoMnYtN2g1LjZsLjQgMmg3VjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxpZ2h0LWxhbmQiPjxwYXRoIGQ9Ik0yLjUgMTloMTl2MmgtMTl6bTcuMTgtNS43M2w0LjM1IDEuMTYgNS4zMSAxLjQyYy44LjIxIDEuNjItLjI2IDEuODQtMS4wNi4yMS0uOC0uMjYtMS42Mi0xLjA2LTEuODRsLTUuMzEtMS40Mi0yLjc2LTkuMDJMMTAuMTIgMnY4LjI4TDUuMTUgOC45NWwtLjkzLTIuMzItMS40NS0uMzl2NS4xN2wxLjYuNDMgNS4zMSAxLjQzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZsaWdodC10YWtlb2ZmIj48cGF0aCBkPSJNMi41IDE5aDE5djJoLTE5em0xOS41Ny05LjM2Yy0uMjEtLjgtMS4wNC0xLjI4LTEuODQtMS4wNkwxNC45MiAxMGwtNi45LTYuNDMtMS45My41MSA0LjE0IDcuMTctNC45NyAxLjMzLTEuOTctMS41NC0xLjQ1LjM5IDEuODIgMy4xNi43NyAxLjMzIDEuNi0uNDMgNS4zMS0xLjQyIDQuMzUtMS4xNkwyMSAxMS40OWMuODEtLjIzIDEuMjgtMS4wNSAxLjA3LTEuODV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxpcC10by1iYWNrIj48cGF0aCBkPSJNOSA3SDd2MmgyVjd6bTAgNEg3djJoMnYtMnptMC04Yy0xLjExIDAtMiAuOS0yIDJoMlYzem00IDEyaC0ydjJoMnYtMnptNi0xMnYyaDJjMC0xLjEtLjktMi0yLTJ6bS02IDBoLTJ2MmgyVjN6TTkgMTd2LTJIN2MwIDEuMS44OSAyIDIgMnptMTAtNGgydi0yaC0ydjJ6bTAtNGgyVjdoLTJ2MnptMCA4YzEuMSAwIDItLjkgMi0yaC0ydjJ6TTUgN0gzdjEyYzAgMS4xLjg5IDIgMiAyaDEydi0ySDVWN3ptMTAtMmgyVjNoLTJ2MnptMCAxMmgydi0yaC0ydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxpcC10by1mcm9udCI+PHBhdGggZD0iTTMgMTNoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMiA0di0ySDNjMCAxLjEuODkgMiAyIDJ6TTMgOWgyVjdIM3Yyem0xMiAxMmgydi0yaC0ydjJ6bTQtMThIOWMtMS4xMSAwLTIgLjktMiAydjEwYzAgMS4xLjg5IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTJIOVY1aDEwdjEwem0tOCA2aDJ2LTJoLTJ2MnptLTQgMGgydi0ySDd2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmb2xkZXIiPjxwYXRoIGQ9Ik0xMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJoLThsLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmb2xkZXItb3BlbiI+PHBhdGggZD0iTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWOGgxNnYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmb2xkZXItc2hhcmVkIj48cGF0aCBkPSJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS01IDNjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yem00IDhoLTh2LTFjMC0xLjMzIDIuNjctMiA0LTJzNCAuNjcgNCAydjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZm9udC1kb3dubG9hZCI+PHBhdGggZD0iTTkuOTMgMTMuNWg0LjE0TDEyIDcuOTh6TTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNC4wNSAxNi41bC0xLjE0LTNIOS4xN2wtMS4xMiAzSDUuOTZsNS4xMS0xM2gxLjg2bDUuMTEgMTNoLTIuMDl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZm9yd2FyZCI+PHBhdGggZD0iTTEyIDhWNGw4IDgtOCA4di00SDRWOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmdWxsc2NyZWVuIj48cGF0aCBkPSJNNyAxNEg1djVoNXYtMkg3di0zem0tMi00aDJWN2gzVjVINXY1em0xMiA3aC0zdjJoNXYtNWgtMnYzek0xNCA1djJoM3YzaDJWNWgtNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmdWxsc2NyZWVuLWV4aXQiPjxwYXRoIGQ9Ik01IDE2aDN2M2gydi01SDV2MnptMy04SDV2Mmg1VjVIOHYzem02IDExaDJ2LTNoM3YtMmgtNXY1em0yLTExVjVoLTJ2NWg1VjhoLTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZy10cmFuc2xhdGUiPjxwYXRoIGQ9Ik0yMCA1aC05LjEyTDEwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTNjMCAxLjEuOSAyIDIgMmg3bDEgM2g4YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6TTcuMTcgMTQuNTljLTIuMjUgMC00LjA5LTEuODMtNC4wOS00LjA5czEuODMtNC4wOSA0LjA5LTQuMDljMS4wNCAwIDEuOTkuMzcgMi43NCAxLjA3bC4wNy4wNi0xLjIzIDEuMTgtLjA2LS4wNWMtLjI5LS4yNy0uNzgtLjU5LTEuNTItLjU5LTEuMzEgMC0yLjM4IDEuMDktMi4zOCAyLjQyczEuMDcgMi40MiAyLjM4IDIuNDJjMS4zNyAwIDEuOTYtLjg3IDIuMTItMS40Nkg3LjA4VjkuOTFoMy45NWwuMDEuMDdjLjA0LjIxLjA1LjQuMDUuNjEgMCAyLjM1LTEuNjEgNC0zLjkyIDR6bTYuMDMtMS43MWMuMzMuNi43NCAxLjE4IDEuMTkgMS43bC0uNTQuNTMtLjY1LTIuMjN6bS43Ny0uNzZoLS45OWwtLjMxLTEuMDRoMy45OXMtLjM0IDEuMzEtMS41NiAyLjc0Yy0uNTItLjYyLS44OS0xLjIzLTEuMTMtMS43ek0yMSAyMGMwIC41NS0uNDUgMS0xIDFoLTdsMi0yLS44MS0yLjc3LjkyLS45MkwxNy43OSAxOGwuNzMtLjczLTIuNzEtMi42OGMuOS0xLjAzIDEuNi0yLjI1IDEuOTItMy41MUgxOXYtMS4wNGgtMy42NFY5aC0xLjA0djEuMDRoLTEuOTZMMTEuMTggNkgyMGMuNTUgMCAxIC40NSAxIDF2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ2F2ZWwiPjxwYXRoIGQ9Ik0xIDIxaDEydjJIMXpNNS4yNDUgOC4wN2wyLjgzLTIuODI3IDE0LjE0IDE0LjE0Mi0yLjgyOCAyLjgyOHpNMTIuMzE3IDFsNS42NTcgNS42NTYtMi44MyAyLjgzLTUuNjU0LTUuNjZ6TTMuODI1IDkuNDg1bDUuNjU3IDUuNjU3LTIuODI4IDIuODI4LTUuNjU3LTUuNjU3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imdlc3R1cmUiPjxwYXRoIGQ9Ik00LjU5IDYuODljLjctLjcxIDEuNC0xLjM1IDEuNzEtMS4yMi41LjIgMCAxLjAzLS4zIDEuNTItLjI1LjQyLTIuODYgMy44OS0yLjg2IDYuMzEgMCAxLjI4LjQ4IDIuMzQgMS4zNCAyLjk4Ljc1LjU2IDEuNzQuNzMgMi42NC40NiAxLjA3LS4zMSAxLjk1LTEuNCAzLjA2LTIuNzcgMS4yMS0xLjQ5IDIuODMtMy40NCA0LjA4LTMuNDQgMS42MyAwIDEuNjUgMS4wMSAxLjc2IDEuNzktMy43OC42NC01LjM4IDMuNjctNS4zOCA1LjM3IDAgMS43IDEuNDQgMy4wOSAzLjIxIDMuMDkgMS42MyAwIDQuMjktMS4zMyA0LjY5LTYuMUgyMXYtMi41aC0yLjQ3Yy0uMTUtMS42NS0xLjA5LTQuMi00LjAzLTQuMi0yLjI1IDAtNC4xOCAxLjkxLTQuOTQgMi44NC0uNTguNzMtMi4wNiAyLjQ4LTIuMjkgMi43Mi0uMjUuMy0uNjguODQtMS4xMS44NC0uNDUgMC0uNzItLjgzLS4zNi0xLjkyLjM1LTEuMDkgMS40LTIuODYgMS44NS0zLjUyLjc4LTEuMTQgMS4zLTEuOTIgMS4zLTMuMjhDOC45NSAzLjY5IDcuMzEgMyA2LjQ0IDMgNS4xMiAzIDMuOTcgNCAzLjcyIDQuMjVjLS4zNi4zNi0uNjYuNjYtLjg4LjkzbDEuNzUgMS43MXptOS4yOSAxMS42NmMtLjMxIDAtLjc0LS4yNi0uNzQtLjcyIDAtLjYuNzMtMi4yIDIuODctMi43Ni0uMyAyLjY5LTEuNDMgMy40OC0yLjEzIDMuNDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ2V0LWFwcCI+PHBhdGggZD0iTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXoiPjwvcGF0aD48L2c+CjxnIGlkPSJnaWYiPjxwYXRoIGQ9Ik0xMS41IDlIMTN2NmgtMS41ek05IDlINmMtLjYgMC0xIC41LTEgMXY0YzAgLjUuNCAxIDEgMWgzYy42IDAgMS0uNSAxLTF2LTJIOC41djEuNWgtMnYtM0gxMFYxMGMwLS41LS40LTEtMS0xem0xMCAxLjVWOWgtNC41djZIMTZ2LTJoMnYtMS41aC0ydi0xeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyYWRlIj48cGF0aCBkPSJNMTIgMTcuMjdMMTguMTggMjFsLTEuNjQtNy4wM0wyMiA5LjI0bC03LjE5LS42MUwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ3JvdXAtd29yayI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTggMTcuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6TTkuNSA4YzAtMS4zOCAxLjEyLTIuNSAyLjUtMi41czIuNSAxLjEyIDIuNSAyLjUtMS4xMiAyLjUtMi41IDIuNVM5LjUgOS4zOCA5LjUgOHptNi41IDkuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGVscCI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTdoLTJ2LTJoMnYyem0yLjA3LTcuNzVsLS45LjkyQzEzLjQ1IDEyLjkgMTMgMTMuNSAxMyAxNWgtMnYtLjVjMC0xLjEuNDUtMi4xIDEuMTctMi44M2wxLjI0LTEuMjZjLjM3LS4zNi41OS0uODYuNTktMS40MSAwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJIOGMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0YzAgLjg4LS4zNiAxLjY4LS45MyAyLjI1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImhlbHAtb3V0bGluZSI+PHBhdGggZD0iTTExIDE4aDJ2LTJoLTJ2MnptMS0xNkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTAtMTRjLTIuMjEgMC00IDEuNzktNCA0aDJjMC0xLjEuOS0yIDItMnMyIC45IDIgMmMwIDItMyAxLjc1LTMgNWgyYzAtMi4yNSAzLTIuNSAzLTUgMC0yLjIxLTEuNzktNC00LTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGlnaGxpZ2h0LW9mZiI+PHBhdGggZD0iTTE0LjU5IDhMMTIgMTAuNTkgOS40MSA4IDggOS40MSAxMC41OSAxMiA4IDE0LjU5IDkuNDEgMTYgMTIgMTMuNDEgMTQuNTkgMTYgMTYgMTQuNTkgMTMuNDEgMTIgMTYgOS40MSAxNC41OSA4ek0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJoaXN0b3J5Ij48cGF0aCBkPSJNMTMgM2MtNC45NyAwLTkgNC4wMy05IDlIMWwzLjg5IDMuODkuMDcuMTRMOSAxMkg2YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS45MyAwLTMuNjgtLjc5LTQuOTQtMi4wNmwtMS40MiAxLjQyQzguMjcgMTkuOTkgMTAuNTEgMjEgMTMgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bS0xIDV2NWw0LjI4IDIuNTQuNzItMS4yMS0zLjUtMi4wOFY4SDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImhvbWUiPjxwYXRoIGQ9Ik0xMCAyMHYtNmg0djZoNXYtOGgzTDEyIDMgMiAxMmgzdjh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaG91cmdsYXNzLWVtcHR5Ij48cGF0aCBkPSJNNiAydjZoLjAxTDYgOC4wMSAxMCAxMmwtNCA0IC4wMS4wMUg2VjIyaDEydi01Ljk5aC0uMDFMMTggMTZsLTQtNCA0LTMuOTktLjAxLS4wMUgxOFYySDZ6bTEwIDE0LjVWMjBIOHYtMy41bDQtNCA0IDR6bS00LTVsLTQtNFY0aDh2My41bC00IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaG91cmdsYXNzLWZ1bGwiPjxwYXRoIGQ9Ik02IDJ2NmguMDFMNiA4LjAxIDEwIDEybC00IDQgLjAxLjAxSDZWMjJoMTJ2LTUuOTloLS4wMUwxOCAxNmwtNC00IDQtMy45OS0uMDEtLjAxSDE4VjJINnoiPjwvcGF0aD48L2c+CjxnIGlkPSJodHRwIj48cGF0aCBkPSJNNC41IDExaC0yVjlIMXY2aDEuNXYtMi41aDJWMTVINlY5SDQuNXYyem0yLjUtLjVoMS41VjE1SDEwdi00LjVoMS41VjlIN3YxLjV6bTUuNSAwSDE0VjE1aDEuNXYtNC41SDE3VjloLTQuNXYxLjV6bTktMS41SDE4djZoMS41di0yaDJjLjggMCAxLjUtLjcgMS41LTEuNXYtMWMwLS44LS43LTEuNS0xLjUtMS41em0wIDIuNWgtMnYtMWgydjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaHR0cHMiPjxwYXRoIGQ9Ik0xOCA4aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bS02IDljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem0zLjEtOUg4LjlWNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMSAxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImltcG9ydGFudC1kZXZpY2VzIj48cGF0aCBkPSJNMjMgMTEuMDFMMTggMTFjLS41NSAwLTEgLjQ1LTEgMXY5YzAgLjU1LjQ1IDEgMSAxaDVjLjU1IDAgMS0uNDUgMS0xdi05YzAtLjU1LS40NS0uOTktMS0uOTl6TTIzIDIwaC01di03aDV2N3pNMjAgMkgyQy44OSAyIDAgMi44OSAwIDR2MTJjMCAxLjEuODkgMiAyIDJoN3YySDd2Mmg4di0yaC0ydi0yaDJ2LTJIMlY0aDE4djVoMlY0YzAtMS4xMS0uOS0yLTItMnptLTguMDMgN0wxMSA2bC0uOTcgM0g3bDIuNDcgMS43Ni0uOTQgMi45MSAyLjQ3LTEuOCAyLjQ3IDEuOC0uOTQtMi45MUwxNSA5aC0zLjAzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImluYm94Ij48cGF0aCBkPSJNMTkgM0g0Ljk5Yy0xLjExIDAtMS45OC44OS0xLjk4IDJMMyAxOWMwIDEuMS44OCAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlY1YzAtMS4xMS0uOS0yLTItMnptMCAxMmgtNGMwIDEuNjYtMS4zNSAzLTMgM3MtMy0xLjM0LTMtM0g0Ljk5VjVIMTl2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW5kZXRlcm1pbmF0ZS1jaGVjay1ib3giPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTIgMTBIN3YtMmgxMHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImluZm8iPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi02aDJ2NnptMC04aC0yVjdoMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImluZm8tb3V0bGluZSI+PHBhdGggZD0iTTExIDE3aDJ2LTZoLTJ2NnptMS0xNUM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6TTExIDloMlY3aC0ydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW5wdXQiPjxwYXRoIGQ9Ik0yMSAzLjAxSDNjLTEuMSAwLTIgLjktMiAyVjloMlY0Ljk5aDE4djE0LjAzSDNWMTVIMXY0LjAxYzAgMS4xLjkgMS45OCAyIDEuOThoMThjMS4xIDAgMi0uODggMi0xLjk4di0xNGMwLTEuMTEtLjktMi0yLTJ6TTExIDE2bDQtNC00LTR2M0gxdjJoMTB2M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJpbnZlcnQtY29sb3JzIj48cGF0aCBkPSJNMTcuNjYgNy45M0wxMiAyLjI3IDYuMzQgNy45M2MtMy4xMiAzLjEyLTMuMTIgOC4xOSAwIDExLjMxQzcuOSAyMC44IDkuOTUgMjEuNTggMTIgMjEuNThjMi4wNSAwIDQuMS0uNzggNS42Ni0yLjM0IDMuMTItMy4xMiAzLjEyLTguMTkgMC0xMS4zMXpNMTIgMTkuNTljLTEuNiAwLTMuMTEtLjYyLTQuMjQtMS43NkM2LjYyIDE2LjY5IDYgMTUuMTkgNiAxMy41OXMuNjItMy4xMSAxLjc2LTQuMjRMMTIgNS4xdjE0LjQ5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxhYmVsIj48cGF0aCBkPSJNMTcuNjMgNS44NEMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNUw1IDUuMDFDMy45IDUuMDEgMyA1LjkgMyA3djEwYzAgMS4xLjkgMS45OSAyIDEuOTlMMTYgMTljLjY3IDAgMS4yNy0uMzMgMS42My0uODRMMjIgMTJsLTQuMzctNi4xNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYWJlbC1vdXRsaW5lIj48cGF0aCBkPSJNMTcuNjMgNS44NEMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNUw1IDUuMDFDMy45IDUuMDEgMyA1LjkgMyA3djEwYzAgMS4xLjkgMS45OSAyIDEuOTlMMTYgMTljLjY3IDAgMS4yNy0uMzMgMS42My0uODRMMjIgMTJsLTQuMzctNi4xNnpNMTYgMTdINVY3aDExbDMuNTUgNUwxNiAxN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsYW5ndWFnZSI+PHBhdGggZD0iTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6bTYuOTMgNmgtMi45NWMtLjMyLTEuMjUtLjc4LTIuNDUtMS4zOC0zLjU2IDEuODQuNjMgMy4zNyAxLjkxIDQuMzMgMy41NnpNMTIgNC4wNGMuODMgMS4yIDEuNDggMi41MyAxLjkxIDMuOTZoLTMuODJjLjQzLTEuNDMgMS4wOC0yLjc2IDEuOTEtMy45NnpNNC4yNiAxNEM0LjEgMTMuMzYgNCAxMi42OSA0IDEycy4xLTEuMzYuMjYtMmgzLjM4Yy0uMDguNjYtLjE0IDEuMzItLjE0IDIgMCAuNjguMDYgMS4zNC4xNCAySDQuMjZ6bS44MiAyaDIuOTVjLjMyIDEuMjUuNzggMi40NSAxLjM4IDMuNTYtMS44NC0uNjMtMy4zNy0xLjktNC4zMy0zLjU2em0yLjk1LThINS4wOGMuOTYtMS42NiAyLjQ5LTIuOTMgNC4zMy0zLjU2QzguODEgNS41NSA4LjM1IDYuNzUgOC4wMyA4ek0xMiAxOS45NmMtLjgzLTEuMi0xLjQ4LTIuNTMtMS45MS0zLjk2aDMuODJjLS40MyAxLjQzLTEuMDggMi43Ni0xLjkxIDMuOTZ6TTE0LjM0IDE0SDkuNjZjLS4wOS0uNjYtLjE2LTEuMzItLjE2LTIgMC0uNjguMDctMS4zNS4xNi0yaDQuNjhjLjA5LjY1LjE2IDEuMzIuMTYgMiAwIC42OC0uMDcgMS4zNC0uMTYgMnptLjI1IDUuNTZjLjYtMS4xMSAxLjA2LTIuMzEgMS4zOC0zLjU2aDIuOTVjLS45NiAxLjY1LTIuNDkgMi45My00LjMzIDMuNTZ6TTE2LjM2IDE0Yy4wOC0uNjYuMTQtMS4zMi4xNC0yIDAtLjY4LS4wNi0xLjM0LS4xNC0yaDMuMzhjLjE2LjY0LjI2IDEuMzEuMjYgMnMtLjEgMS4zNi0uMjYgMmgtMy4zOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYXN0LXBhZ2UiPjxwYXRoIGQ9Ik01LjU5IDcuNDFMMTAuMTggMTJsLTQuNTkgNC41OUw3IDE4bDYtNi02LTZ6TTE2IDZoMnYxMmgtMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYXVuY2giPjxwYXRoIGQ9Ik0xOSAxOUg1VjVoN1YzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsaWdodGJ1bGItb3V0bGluZSI+PHBhdGggZD0iTTkgMjFjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTFIOXYxem0zLTE5QzguMTQgMiA1IDUuMTQgNSA5YzAgMi4zOCAxLjE5IDQuNDcgMyA1Ljc0VjE3YzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xdi0yLjI2YzEuODEtMS4yNyAzLTMuMzYgMy01Ljc0IDAtMy44Ni0zLjE0LTctNy03em0yLjg1IDExLjFsLS44NS42VjE2aC00di0yLjNsLS44NS0uNkM3LjggMTIuMTYgNyAxMC42MyA3IDljMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWMwIDEuNjMtLjggMy4xNi0yLjE1IDQuMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsaW5lLXN0eWxlIj48cGF0aCBkPSJNMyAxNmg1di0ySDN2MnptNi41IDBoNXYtMmgtNXYyem02LjUgMGg1di0yaC01djJ6TTMgMjBoMnYtMkgzdjJ6bTQgMGgydi0ySDd2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnpNMyAxMmg4di0ySDN2MnptMTAgMGg4di0yaC04djJ6TTMgNHY0aDE4VjRIM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsaW5lLXdlaWdodCI+PHBhdGggZD0iTTMgMTdoMTh2LTJIM3Yyem0wIDNoMTh2LTFIM3Yxem0wLTdoMTh2LTNIM3Yzem0wLTl2NGgxOFY0SDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibGluayI+PHBhdGggZD0iTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTggMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxpc3QiPjxwYXRoIGQ9Ik0zIDEzaDJ2LTJIM3Yyem0wIDRoMnYtMkgzdjJ6bTAtOGgyVjdIM3Yyem00IDRoMTR2LTJIN3Yyem0wIDRoMTR2LTJIN3Yyek03IDd2MmgxNFY3SDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9jayI+PHBhdGggZD0iTTE4IDhoLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2djJINmMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlYxMGMwLTEuMS0uOS0yLTItMnptLTYgOWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTMuMS05SDguOVY2YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xIDEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xdjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9jay1vcGVuIj48cGF0aCBkPSJNMTIgMTdjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem02LTloLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2aDEuOWMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMSAxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bTAgMTJINlYxMGgxMnYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb2NrLW91dGxpbmUiPjxwYXRoIGQ9Ik0xMiAxN2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYtOWgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yek04LjkgNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMXMzLjEgMS4zOSAzLjEgMy4xdjJIOC45VjZ6TTE4IDIwSDZWMTBoMTJ2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG93LXByaW9yaXR5Ij48cGF0aCBkPSJNMTQgNWg4djJoLTh6bTAgNS41aDh2MmgtOHptMCA1LjVoOHYyaC04ek0yIDExLjVDMiAxNS4wOCA0LjkyIDE4IDguNSAxOEg5djJsMy0zLTMtM3YyaC0uNUM2LjAyIDE2IDQgMTMuOTggNCAxMS41UzYuMDIgNyA4LjUgN0gxMlY1SDguNUM0LjkyIDUgMiA3LjkyIDIgMTEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb3lhbHR5Ij48cGF0aCBkPSJNMjEuNDEgMTEuNThsLTktOUMxMi4wNSAyLjIyIDExLjU1IDIgMTEgMkg0Yy0xLjEgMC0yIC45LTIgMnY3YzAgLjU1LjIyIDEuMDUuNTkgMS40Mmw5IDljLjM2LjM2Ljg2LjU4IDEuNDEuNTguNTUgMCAxLjA1LS4yMiAxLjQxLS41OWw3LTdjLjM3LS4zNi41OS0uODYuNTktMS40MSAwLS41NS0uMjMtMS4wNi0uNTktMS40MnpNNS41IDdDNC42NyA3IDQgNi4zMyA0IDUuNVM0LjY3IDQgNS41IDQgNyA0LjY3IDcgNS41IDYuMzMgNyA1LjUgN3ptMTEuNzcgOC4yN0wxMyAxOS41NGwtNC4yNy00LjI3QzguMjggMTQuODEgOCAxNC4xOSA4IDEzLjVjMC0xLjM4IDEuMTItMi41IDIuNS0yLjUuNjkgMCAxLjMyLjI4IDEuNzcuNzRsLjczLjcyLjczLS43M2MuNDUtLjQ1IDEuMDgtLjczIDEuNzctLjczIDEuMzggMCAyLjUgMS4xMiAyLjUgMi41IDAgLjY5LS4yOCAxLjMyLS43MyAxLjc3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im1haWwiPjxwYXRoIGQ9Ik0yMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgNGwtOCA1LTgtNVY2bDggNSA4LTV2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtYXJrdW5yZWFkIj48cGF0aCBkPSJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDRsLTggNS04LTVWNmw4IDUgOC01djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibWFya3VucmVhZC1tYWlsYm94Ij48cGF0aCBkPSJNMjAgNkgxMHY2SDhWNGg2VjBINnY2SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtZW51Ij48cGF0aCBkPSJNMyAxOGgxOHYtMkgzdjJ6bTAtNWgxOHYtMkgzdjJ6bTAtN3YyaDE4VjZIM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3JlLWhvcml6Ij48cGF0aCBkPSJNNiAxMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTEyIDBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0tNiAwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3JlLXZlcnQiPjxwYXRoIGQ9Ik0xMiA4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMCAyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3RvcmN5Y2xlIj48cGF0aCBkPSJNMTkuNDQgOS4wM0wxNS40MSA1SDExdjJoMy41OWwyIDJINWMtMi44IDAtNSAyLjItNSA1czIuMiA1IDUgNWMyLjQ2IDAgNC40NS0xLjY5IDQuOS00aDEuNjVsMi43Ny0yLjc3Yy0uMjEuNTQtLjMyIDEuMTQtLjMyIDEuNzcgMCAyLjggMi4yIDUgNSA1czUtMi4yIDUtNWMwLTIuNjUtMS45Ny00Ljc3LTQuNTYtNC45N3pNNy44MiAxNUM3LjQgMTYuMTUgNi4yOCAxNyA1IDE3Yy0xLjYzIDAtMy0xLjM3LTMtM3MxLjM3LTMgMy0zYzEuMjggMCAyLjQuODUgMi44MiAySDV2MmgyLjgyek0xOSAxN2MtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibW92ZS10by1pbmJveCI+PHBhdGggZD0iTTE5IDNINC45OWMtMS4xMSAwLTEuOTguOS0xLjk4IDJMMyAxOWMwIDEuMS44OCAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDEyaC00YzAgMS42Ni0xLjM1IDMtMyAzcy0zLTEuMzQtMy0zSDQuOTlWNUgxOXYxMHptLTMtNWgtMlY3aC00djNIOGw0IDQgNC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im5leHQtd2VlayI+PHBhdGggZD0iTTIwIDdoLTRWNWMwLS41NS0uMjItMS4wNS0uNTktMS40MUMxNS4wNSAzLjIyIDE0LjU1IDMgMTQgM2gtNGMtMS4xIDAtMiAuOS0yIDJ2Mkg0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6TTEwIDVoNHYyaC00VjV6bTEgMTMuNWwtMS0xIDMtMy0zLTMgMS0xIDQgNC00IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibm90ZS1hZGQiPjxwYXRoIGQ9Ik0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTRoLTN2M2gtMnYtM0g4di0yaDN2LTNoMnYzaDN2MnptLTMtN1YzLjVMMTguNSA5SDEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im9mZmxpbmUtcGluIj48cGF0aCBkPSJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6bTUgMTZIN3YtMmgxMHYyem0tNi43LTRMNyAxMC43bDEuNC0xLjQgMS45IDEuOSA1LjMtNS4zTDE3IDcuMyAxMC4zIDE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im9wYWNpdHkiPjxwYXRoIGQ9Ik0xNy42NiA4TDEyIDIuMzUgNi4zNCA4QzQuNzggOS41NiA0IDExLjY0IDQgMTMuNjRzLjc4IDQuMTEgMi4zNCA1LjY3IDMuNjEgMi4zNSA1LjY2IDIuMzUgNC4xLS43OSA1LjY2LTIuMzVTMjAgMTUuNjQgMjAgMTMuNjQgMTkuMjIgOS41NiAxNy42NiA4ek02IDE0Yy4wMS0yIC42Mi0zLjI3IDEuNzYtNC40TDEyIDUuMjdsNC4yNCA0LjM4QzE3LjM4IDEwLjc3IDE3Ljk5IDEyIDE4IDE0SDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ib3Blbi1pbi1icm93c2VyIj48cGF0aCBkPSJNMTkgNEg1Yy0xLjExIDAtMiAuOS0yIDJ2MTJjMCAxLjEuODkgMiAyIDJoNHYtMkg1VjhoMTR2MTBoLTR2Mmg0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjg5LTItMi0yem0tNyA2bC00IDRoM3Y2aDJ2LTZoM2wtNC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im9wZW4taW4tbmV3Ij48cGF0aCBkPSJNMTkgMTlINVY1aDdWM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ2N3pNMTQgM3YyaDMuNTlsLTkuODMgOS44MyAxLjQxIDEuNDFMMTkgNi40MVYxMGgyVjNoLTd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ib3Blbi13aXRoIj48cGF0aCBkPSJNMTAgOWg0VjZoM2wtNS01LTUgNWgzdjN6bS0xIDFINlY3bC01IDUgNSA1di0zaDN2LTR6bTE0IDJsLTUtNXYzaC0zdjRoM3YzbDUtNXptLTkgM2gtNHYzSDdsNSA1IDUtNWgtM3YtM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJwYWdldmlldyI+PHBhdGggZD0iTTExLjUgOUMxMC4xMiA5IDkgMTAuMTIgOSAxMS41czEuMTIgMi41IDIuNSAyLjUgMi41LTEuMTIgMi41LTIuNVMxMi44OCA5IDExLjUgOXpNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS0zLjIxIDE0LjIxbC0yLjkxLTIuOTFjLS42OS40NC0xLjUxLjctMi4zOS43QzkuMDEgMTYgNyAxMy45OSA3IDExLjVTOS4wMSA3IDExLjUgNyAxNiA5LjAxIDE2IDExLjVjMCAuODgtLjI2IDEuNjktLjcgMi4zOWwyLjkxIDIuOS0xLjQyIDEuNDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFuLXRvb2wiPjxwYXRoIGQ9Ik0yMyA1LjVWMjBjMCAyLjItMS44IDQtNCA0aC03LjNjLTEuMDggMC0yLjEtLjQzLTIuODUtMS4xOUwxIDE0LjgzczEuMjYtMS4yMyAxLjMtMS4yNWMuMjItLjE5LjQ5LS4yOS43OS0uMjkuMjIgMCAuNDIuMDYuNi4xNi4wNC4wMSA0LjMxIDIuNDYgNC4zMSAyLjQ2VjRjMC0uODMuNjctMS41IDEuNS0xLjVTMTEgMy4xNyAxMSA0djdoMVYxLjVjMC0uODMuNjctMS41IDEuNS0xLjVTMTUgLjY3IDE1IDEuNVYxMWgxVjIuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVYxMWgxVjUuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwYXltZW50Ij48cGF0aCBkPSJNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2YzAtMS4xMS0uODktMi0yLTJ6bTAgMTRINHYtNmgxNnY2em0wLTEwSDRWNmgxNnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tY2FtZXJhLW1pYyI+PHBhdGggZD0iTTIwIDVoLTMuMTdMMTUgM0g5TDcuMTcgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDd2LTIuMDljLTIuODMtLjQ4LTUtMi45NC01LTUuOTFoMmMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00aDJjMCAyLjk3LTIuMTcgNS40My01IDUuOTFWMjFoN2MxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tNiA4YzAgMS4xLS45IDItMiAycy0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwZXJtLWNvbnRhY3QtY2FsZW5kYXIiPjxwYXRoIGQ9Ik0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAzYzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM3ptNiAxMkg2di0xYzAtMiA0LTMuMSA2LTMuMXM2IDEuMSA2IDMuMXYxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tZGF0YS1zZXR0aW5nIj48cGF0aCBkPSJNMTguOTkgMTEuNWMuMzQgMCAuNjcuMDMgMSAuMDdMMjAgMCAwIDIwaDExLjU2Yy0uMDQtLjMzLS4wNy0uNjYtLjA3LTEgMC00LjE0IDMuMzYtNy41IDcuNS03LjV6bTMuNzEgNy45OWMuMDItLjE2LjA0LS4zMi4wNC0uNDkgMC0uMTctLjAxLS4zMy0uMDQtLjQ5bDEuMDYtLjgzYy4wOS0uMDguMTItLjIxLjA2LS4zMmwtMS0xLjczYy0uMDYtLjExLS4xOS0uMTUtLjMxLS4xMWwtMS4yNC41Yy0uMjYtLjItLjU0LS4zNy0uODUtLjQ5bC0uMTktMS4zMmMtLjAxLS4xMi0uMTItLjIxLS4yNC0uMjFoLTJjLS4xMiAwLS4yMy4wOS0uMjUuMjFsLS4xOSAxLjMyYy0uMy4xMy0uNTkuMjktLjg1LjQ5bC0xLjI0LS41Yy0uMTEtLjA0LS4yNCAwLS4zMS4xMWwtMSAxLjczYy0uMDYuMTEtLjA0LjI0LjA2LjMybDEuMDYuODNjLS4wMi4xNi0uMDMuMzItLjAzLjQ5IDAgLjE3LjAxLjMzLjAzLjQ5bC0xLjA2LjgzYy0uMDkuMDgtLjEyLjIxLS4wNi4zMmwxIDEuNzNjLjA2LjExLjE5LjE1LjMxLjExbDEuMjQtLjVjLjI2LjIuNTQuMzcuODUuNDlsLjE5IDEuMzJjLjAyLjEyLjEyLjIxLjI1LjIxaDJjLjEyIDAgLjIzLS4wOS4yNS0uMjFsLjE5LTEuMzJjLjMtLjEzLjU5LS4yOS44NC0uNDlsMS4yNS41Yy4xMS4wNC4yNCAwIC4zMS0uMTFsMS0xLjczYy4wNi0uMTEuMDMtLjI0LS4wNi0uMzJsLTEuMDctLjgzem0tMy43MSAxLjAxYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwZXJtLWRldmljZS1pbmZvcm1hdGlvbiI+PHBhdGggZD0iTTEzIDdoLTJ2MmgyVjd6bTAgNGgtMnY2aDJ2LTZ6bTQtOS45OUw3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMTlIN1Y1aDEwdjE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0taWRlbnRpdHkiPjxwYXRoIGQ9Ik0xMiA1LjljMS4xNiAwIDIuMS45NCAyLjEgMi4xcy0uOTQgMi4xLTIuMSAyLjFTOS45IDkuMTYgOS45IDhzLjk0LTIuMSAyLjEtMi4xbTAgOWMyLjk3IDAgNi4xIDEuNDYgNi4xIDIuMXYxLjFINS45VjE3YzAtLjY0IDMuMTMtMi4xIDYuMS0yLjFNMTIgNEM5Ljc5IDQgOCA1Ljc5IDggOHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA5Yy0yLjY3IDAtOCAxLjM0LTggNHYzaDE2di0zYzAtMi42Ni01LjMzLTQtOC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tbWVkaWEiPjxwYXRoIGQ9Ik0yIDZIMHY1aC4wMUwwIDIwYzAgMS4xLjkgMiAyIDJoMTh2LTJIMlY2em0yMC0yaC04bC0yLTJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNyAxNWw0LjUtNiAzLjUgNC41MSAyLjUtMy4wMUwyMSAxNUg3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tcGhvbmUtbXNnIj48cGF0aCBkPSJNMjAgMTUuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTctLjM1LS4xMS0uNzQtLjAzLTEuMDIuMjRsLTIuMiAyLjJjLTIuODMtMS40NC01LjE1LTMuNzUtNi41OS02LjU4bDIuMi0yLjIxYy4yOC0uMjcuMzYtLjY2LjI1LTEuMDFDOC43IDYuNDUgOC41IDUuMjUgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTEyIDN2MTBsMy0zaDZWM2gtOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwZXJtLXNjYW4td2lmaSI+PHBhdGggZD0iTTEyIDNDNi45NSAzIDMuMTUgNC44NSAwIDcuMjNMMTIgMjIgMjQgNy4yNUMyMC44NSA0Ljg3IDE3LjA1IDMgMTIgM3ptMSAxM2gtMnYtNmgydjZ6bS0yLThWNmgydjJoLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGV0cyI+PGNpcmNsZSBjeD0iNC41IiBjeT0iOS41IiByPSIyLjUiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjkiIGN5PSI1LjUiIHI9IjIuNSI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTUiIGN5PSI1LjUiIHI9IjIuNSI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTkuNSIgY3k9IjkuNSIgcj0iMi41Ij48L2NpcmNsZT48cGF0aCBkPSJNMTcuMzQgMTQuODZjLS44Ny0xLjAyLTEuNi0xLjg5LTIuNDgtMi45MS0uNDYtLjU0LTEuMDUtMS4wOC0xLjc1LTEuMzItLjExLS4wNC0uMjItLjA3LS4zMy0uMDktLjI1LS4wNC0uNTItLjA0LS43OC0uMDRzLS41MyAwLS43OS4wNWMtLjExLjAyLS4yMi4wNS0uMzMuMDktLjcuMjQtMS4yOC43OC0xLjc1IDEuMzItLjg3IDEuMDItMS42IDEuODktMi40OCAyLjkxLTEuMzEgMS4zMS0yLjkyIDIuNzYtMi42MiA0Ljc5LjI5IDEuMDIgMS4wMiAyLjAzIDIuMzMgMi4zMi43My4xNSAzLjA2LS40NCA1LjU0LS40NGguMThjMi40OCAwIDQuODEuNTggNS41NC40NCAxLjMxLS4yOSAyLjA0LTEuMzEgMi4zMy0yLjMyLjMxLTIuMDQtMS4zLTMuNDktMi42MS00Ljh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGljdHVyZS1pbi1waWN0dXJlIj48cGF0aCBkPSJNMTkgN2gtOHY2aDhWN3ptMi00SDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMS45OCAyIDEuOThoMThjMS4xIDAgMi0uODggMi0xLjk4VjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk4aDE4djE0LjAzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBpY3R1cmUtaW4tcGljdHVyZS1hbHQiPjxwYXRoIGQ9Ik0xOSAxMWgtOHY2aDh2LTZ6bTQgOFY0Ljk4QzIzIDMuODggMjIuMSAzIDIxIDNIM2MtMS4xIDAtMiAuODgtMiAxLjk4VjE5YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJ6bS0yIC4wMkgzVjQuOTdoMTh2MTQuMDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGxheS1mb3Itd29yayI+PHBhdGggZD0iTTExIDV2NS41OUg3LjVsNC41IDQuNSA0LjUtNC41SDEzVjVoLTJ6bS01IDljMCAzLjMxIDIuNjkgNiA2IDZzNi0yLjY5IDYtNmgtMmMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNEg2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBvbHltZXIiPjxwYXRoIGQ9Ik0xOSA0aC00TDcuMTEgMTYuNjMgNC41IDEyIDkgNEg1TC41IDEyIDUgMjBoNGw3Ljg5LTEyLjYzTDE5LjUgMTIgMTUgMjBoNGw0LjUtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwb3dlci1zZXR0aW5ncy1uZXciPjxwYXRoIGQ9Ik0xMyAzaC0ydjEwaDJWM3ptNC44MyAyLjE3bC0xLjQyIDEuNDJDMTcuOTkgNy44NiAxOSA5LjgxIDE5IDEyYzAgMy44Ny0zLjEzIDctNyA3cy03LTMuMTMtNy03YzAtMi4xOSAxLjAxLTQuMTQgMi41OC01LjQyTDYuMTcgNS4xN0M0LjIzIDYuODIgMyA5LjI2IDMgMTJjMCA0Ljk3IDQuMDMgOSA5IDlzOS00LjAzIDktOWMwLTIuNzQtMS4yMy01LjE4LTMuMTctNi44M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJwcmVnbmFudC13b21hbiI+PHBhdGggZD0iTTkgNGMwLTEuMTEuODktMiAyLTJzMiAuODkgMiAyLS44OSAyLTIgMi0yLS44OS0yLTJ6bTcgOWMtLjAxLTEuMzQtLjgzLTIuNTEtMi0zIDAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzdjdoMnY1aDN2LTVoM3YtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwcmludCI+PHBhdGggZD0iTTE5IDhINWMtMS42NiAwLTMgMS4zNC0zIDN2Nmg0djRoMTJ2LTRoNHYtNmMwLTEuNjYtMS4zNC0zLTMtM3ptLTMgMTFIOHYtNWg4djV6bTMtN2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0tMS05SDZ2NGgxMlYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InF1ZXJ5LWJ1aWxkZXIiPjxwYXRoIGQ9Ik0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bS41LTEzSDExdjZsNS4yNSAzLjE1Ljc1LTEuMjMtNC41LTIuNjd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icXVlc3Rpb24tYW5zd2VyIj48cGF0aCBkPSJNMjEgNmgtMnY5SDZ2MmMwIC41NS40NSAxIDEgMWgxMWw0IDRWN2MwLS41NS0uNDUtMS0xLTF6bS00IDZWM2MwLS41NS0uNDUtMS0xLTFIM2MtLjU1IDAtMSAuNDUtMSAxdjE0bDQtNGgxMGMuNTUgMCAxLS40NSAxLTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmFkaW8tYnV0dG9uLWNoZWNrZWQiPjxwYXRoIGQ9Ik0xMiA3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMC01QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyYWRpby1idXR0b24tdW5jaGVja2VkIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVjZWlwdCI+PHBhdGggZD0iTTE4IDE3SDZ2LTJoMTJ2MnptMC00SDZ2LTJoMTJ2MnptMC00SDZWN2gxMnYyek0zIDIybDEuNS0xLjVMNiAyMmwxLjUtMS41TDkgMjJsMS41LTEuNUwxMiAyMmwxLjUtMS41TDE1IDIybDEuNS0xLjVMMTggMjJsMS41LTEuNUwyMSAyMlYybC0xLjUgMS41TDE4IDJsLTEuNSAxLjVMMTUgMmwtMS41IDEuNUwxMiAybC0xLjUgMS41TDkgMiA3LjUgMy41IDYgMiA0LjUgMy41IDMgMnYyMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZWNvcmQtdm9pY2Utb3ZlciI+PGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjQiPjwvY2lyY2xlPjxwYXRoIGQ9Ik05IDE1Yy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00em03Ljc2LTkuNjRsLTEuNjggMS42OWMuODQgMS4xOC44NCAyLjcxIDAgMy44OWwxLjY4IDEuNjljMi4wMi0yLjAyIDIuMDItNS4wNyAwLTcuMjd6TTIwLjA3IDJsLTEuNjMgMS42M2MyLjc3IDMuMDIgMi43NyA3LjU2IDAgMTAuNzRMMjAuMDcgMTZjMy45LTMuODkgMy45MS05Ljk1IDAtMTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVkZWVtIj48cGF0aCBkPSJNMjAgNmgtMi4xOGMuMTEtLjMxLjE4LS42NS4xOC0xIDAtMS42Ni0xLjM0LTMtMy0zLTEuMDUgMC0xLjk2LjU0LTIuNSAxLjM1bC0uNS42Ny0uNS0uNjhDMTAuOTYgMi41NCAxMC4wNSAyIDkgMiA3LjM0IDIgNiAzLjM0IDYgNWMwIC4zNS4wNy42OS4xOCAxSDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE5YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnptLTUtMmMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xek05IDRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMTEgMTVINHYtMmgxNnYyem0wLTVINFY4aDUuMDhMNyAxMC44MyA4LjYyIDEyIDExIDguNzZsMS0xLjM2IDEgMS4zNkwxNS4zOCAxMiAxNyAxMC44MyAxNC45MiA4SDIwdjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVkbyI+PHBhdGggZD0iTTE4LjQgMTAuNkMxNi41NSA4Ljk5IDE0LjE1IDggMTEuNSA4Yy00LjY1IDAtOC41OCAzLjAzLTkuOTYgNy4yMkwzLjkgMTZjMS4wNS0zLjE5IDQuMDUtNS41IDcuNi01LjUgMS45NSAwIDMuNzMuNzIgNS4xMiAxLjg4TDEzIDE2aDlWN2wtMy42IDMuNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZWZyZXNoIj48cGF0aCBkPSJNMTcuNjUgNi4zNUMxNi4yIDQuOSAxNC4yMSA0IDEyIDRjLTQuNDIgMC03Ljk5IDMuNTgtNy45OSA4czMuNTcgOCA3Ljk5IDhjMy43MyAwIDYuODQtMi41NSA3LjczLTZoLTIuMDhjLS44MiAyLjMzLTMuMDQgNC01LjY1IDQtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNmMxLjY2IDAgMy4xNC42OSA0LjIyIDEuNzhMMTMgMTFoN1Y0bC0yLjM1IDIuMzV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVtb3ZlIj48cGF0aCBkPSJNMTkgMTNINXYtMmgxNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlbW92ZS1jaXJjbGUiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem01IDExSDd2LTJoMTB2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW1vdmUtY2lyY2xlLW91dGxpbmUiPjxwYXRoIGQ9Ik03IDExdjJoMTB2LTJIN3ptNS05QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW1vdmUtc2hvcHBpbmctY2FydCI+PHBhdGggZD0iTTIyLjczIDIyLjczTDIuNzcgMi43NyAyIDJsLS43My0uNzNMMCAyLjU0bDQuMzkgNC4zOSAyLjIxIDQuNjYtMS4zNSAyLjQ1Yy0uMTYuMjgtLjI1LjYxLS4yNS45NiAwIDEuMS45IDIgMiAyaDcuNDZsMS4zOCAxLjM4Yy0uNS4zNi0uODMuOTUtLjgzIDEuNjIgMCAxLjEuODkgMiAxLjk5IDIgLjY3IDAgMS4yNi0uMzMgMS42Mi0uODRMMjEuNDYgMjRsMS4yNy0xLjI3ek03LjQyIDE1Yy0uMTQgMC0uMjUtLjExLS4yNS0uMjVsLjAzLS4xMi45LTEuNjNoMi4zNmwyIDJINy40MnptOC4xMy0yYy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM2wzLjU4LTYuNDljLjA4LS4xNC4xMi0uMzEuMTItLjQ4IDAtLjU1LS40NS0xLTEtMUg2LjU0bDkuMDEgOXpNNyAxOGMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW9yZGVyIj48cGF0aCBkPSJNMyAxNWgxOHYtMkgzdjJ6bTAgNGgxOHYtMkgzdjJ6bTAtOGgxOFY5SDN2MnptMC02djJoMThWNUgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlcGx5Ij48cGF0aCBkPSJNMTAgOVY1bC03IDcgNyA3di00LjFjNSAwIDguNSAxLjYgMTEgNS4xLTEtNS00LTEwLTExLTExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlcGx5LWFsbCI+PHBhdGggZD0iTTcgOFY1bC03IDcgNyA3di0zbC00LTQgNC00em02IDFWNWwtNyA3IDcgN3YtNC4xYzUgMCA4LjUgMS42IDExIDUuMS0xLTUtNC0xMC0xMS0xMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZXBvcnQiPjxwYXRoIGQ9Ik0xNS43MyAzSDguMjdMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2TDIxIDE1LjczVjguMjdMMTUuNzMgM3pNMTIgMTcuM2MtLjcyIDAtMS4zLS41OC0xLjMtMS4zIDAtLjcyLjU4LTEuMyAxLjMtMS4zLjcyIDAgMS4zLjU4IDEuMyAxLjMgMCAuNzItLjU4IDEuMy0xLjMgMS4zem0xLTQuM2gtMlY3aDJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZXBvcnQtcHJvYmxlbSI+PHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZXN0b3JlIj48cGF0aCBkPSJNMTMgM2MtNC45NyAwLTkgNC4wMy05IDlIMWwzLjg5IDMuODkuMDcuMTRMOSAxMkg2YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS45MyAwLTMuNjgtLjc5LTQuOTQtMi4wNmwtMS40MiAxLjQyQzguMjcgMTkuOTkgMTAuNTEgMjEgMTMgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bS0xIDV2NWw0LjI4IDIuNTQuNzItMS4yMS0zLjUtMi4wOFY4SDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlc3RvcmUtcGFnZSI+PHBhdGggZD0iTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptLTIgMTZjLTIuMDUgMC0zLjgxLTEuMjQtNC41OC0zaDEuNzFjLjYzLjkgMS42OCAxLjUgMi44NyAxLjUgMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTMuOTMgOS41IDEyIDkuNWMtMS4zNSAwLTIuNTIuNzgtMy4xIDEuOWwxLjYgMS42aC00VjlsMS4zIDEuM0M4LjY5IDguOTIgMTAuMjMgOCAxMiA4YzIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvb20iPjxwYXRoIGQ9Ik0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTd6bTAgOS41Yy0xLjM4IDAtMi41LTEuMTItMi41LTIuNXMxLjEyLTIuNSAyLjUtMi41IDIuNSAxLjEyIDIuNSAyLjUtMS4xMiAyLjUtMi41IDIuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJyb3VuZGVkLWNvcm5lciI+PHBhdGggZD0iTTE5IDE5aDJ2MmgtMnYtMnptMC0yaDJ2LTJoLTJ2MnpNMyAxM2gydi0ySDN2MnptMCA0aDJ2LTJIM3Yyem0wLThoMlY3SDN2MnptMC00aDJWM0gzdjJ6bTQgMGgyVjNIN3Yyem04IDE2aDJ2LTJoLTJ2MnptLTQgMGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6bS04IDBoMnYtMkg3djJ6bS00IDBoMnYtMkgzdjJ6TTIxIDhjMC0yLjc2LTIuMjQtNS01LTVoLTV2Mmg1YzEuNjUgMCAzIDEuMzUgMyAzdjVoMlY4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvd2luZyI+PHBhdGggZD0iTTguNSAxNC41TDQgMTlsMS41IDEuNUw5IDE3aDJsLTIuNS0yLjV6TTE1IDFjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem02IDIwLjAxTDE4IDI0bC0yLjk5LTMuMDFWMTkuNWwtNy4xLTcuMDljLS4zMS4wNS0uNjEuMDctLjkxLjA3di0yLjE2YzEuNjYuMDMgMy42MS0uODcgNC42Ny0yLjA0bDEuNC0xLjU1Yy4xOS0uMjEuNDMtLjM4LjY5LS41LjI5LS4xNC42Mi0uMjMuOTYtLjIzaC4wM0MxNS45OSA2LjAxIDE3IDcuMDIgMTcgOC4yNnY1Ljc1YzAgLjg0LS4zNSAxLjYxLS45MiAyLjE2bC0zLjU4LTMuNTh2LTIuMjdjLS42My41Mi0xLjQzIDEuMDItMi4yOSAxLjM5TDE2LjUgMThIMThsMyAzLjAxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNhdmUiPjxwYXRoIGQ9Ik0xNyAzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3bC00LTR6bS01IDE2Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3ptMy0xMEg1VjVoMTB2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzY2hlZHVsZSI+PHBhdGggZD0iTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptLjUtMTNIMTF2Nmw1LjI1IDMuMTUuNzUtMS4yMy00LjUtMi42N3oiPjwvcGF0aD48L2c+CjxnIGlkPSJzZWFyY2giPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNlbGVjdC1hbGwiPjxwYXRoIGQ9Ik0zIDVoMlYzYy0xLjEgMC0yIC45LTIgMnptMCA4aDJ2LTJIM3Yyem00IDhoMnYtMkg3djJ6TTMgOWgyVjdIM3Yyem0xMC02aC0ydjJoMlYzem02IDB2MmgyYzAtMS4xLS45LTItMi0yek01IDIxdi0ySDNjMCAxLjEuOSAyIDIgMnptLTItNGgydi0ySDN2MnpNOSAzSDd2MmgyVjN6bTIgMThoMnYtMmgtMnYyem04LThoMnYtMmgtMnYyem0wIDhjMS4xIDAgMi0uOSAyLTJoLTJ2MnptMC0xMmgyVjdoLTJ2MnptMCA4aDJ2LTJoLTJ2MnptLTQgNGgydi0yaC0ydjJ6bTAtMTZoMlYzaC0ydjJ6TTcgMTdoMTBWN0g3djEwem0yLThoNnY2SDlWOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZW5kIj48cGF0aCBkPSJNMi4wMSAyMUwyMyAxMiAyLjAxIDMgMiAxMGwxNSAyLTE1IDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MiPjxwYXRoIGQ9Ik0xOS40MyAxMi45OGMuMDQtLjMyLjA3LS42NC4wNy0uOThzLS4wMy0uNjYtLjA3LS45OGwyLjExLTEuNjVjLjE5LS4xNS4yNC0uNDIuMTItLjY0bC0yLTMuNDZjLS4xMi0uMjItLjM5LS4zLS42MS0uMjJsLTIuNDkgMWMtLjUyLS40LTEuMDgtLjczLTEuNjktLjk4bC0uMzgtMi42NUMxNC40NiAyLjE4IDE0LjI1IDIgMTQgMmgtNGMtLjI1IDAtLjQ2LjE4LS40OS40MmwtLjM4IDIuNjVjLS42MS4yNS0xLjE3LjU5LTEuNjkuOThsLTIuNDktMWMtLjIzLS4wOS0uNDkgMC0uNjEuMjJsLTIgMy40NmMtLjEzLjIyLS4wNy40OS4xMi42NGwyLjExIDEuNjVjLS4wNC4zMi0uMDcuNjUtLjA3Ljk4cy4wMy42Ni4wNy45OGwtMi4xMSAxLjY1Yy0uMTkuMTUtLjI0LjQyLS4xMi42NGwyIDMuNDZjLjEyLjIyLjM5LjMuNjEuMjJsMi40OS0xYy41Mi40IDEuMDguNzMgMS42OS45OGwuMzggMi42NWMuMDMuMjQuMjQuNDIuNDkuNDJoNGMuMjUgMCAuNDYtLjE4LjQ5LS40MmwuMzgtMi42NWMuNjEtLjI1IDEuMTctLjU5IDEuNjktLjk4bDIuNDkgMWMuMjMuMDkuNDkgMCAuNjEtLjIybDItMy40NmMuMTItLjIyLjA3LS40OS0uMTItLjY0bC0yLjExLTEuNjV6TTEyIDE1LjVjLTEuOTMgMC0zLjUtMS41Ny0zLjUtMy41czEuNTctMy41IDMuNS0zLjUgMy41IDEuNTcgMy41IDMuNS0xLjU3IDMuNS0zLjUgMy41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWFwcGxpY2F0aW9ucyI+PHBhdGggZD0iTTEyIDEwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNy03SDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uOSAyLTJWNWMwLTEuMS0uODktMi0yLTJ6bS0xLjc1IDljMCAuMjMtLjAyLjQ2LS4wNS42OGwxLjQ4IDEuMTZjLjEzLjExLjE3LjMuMDguNDVsLTEuNCAyLjQyYy0uMDkuMTUtLjI3LjIxLS40My4xNWwtMS43NC0uN2MtLjM2LjI4LS43Ni41MS0xLjE4LjY5bC0uMjYgMS44NWMtLjAzLjE3LS4xOC4zLS4zNS4zaC0yLjhjLS4xNyAwLS4zMi0uMTMtLjM1LS4yOWwtLjI2LTEuODVjLS40My0uMTgtLjgyLS40MS0xLjE4LS42OWwtMS43NC43Yy0uMTYuMDYtLjM0IDAtLjQzLS4xNWwtMS40LTIuNDJjLS4wOS0uMTUtLjA1LS4zNC4wOC0uNDVsMS40OC0xLjE2Yy0uMDMtLjIzLS4wNS0uNDYtLjA1LS42OSAwLS4yMy4wMi0uNDYuMDUtLjY4bC0xLjQ4LTEuMTZjLS4xMy0uMTEtLjE3LS4zLS4wOC0uNDVsMS40LTIuNDJjLjA5LS4xNS4yNy0uMjEuNDMtLjE1bDEuNzQuN2MuMzYtLjI4Ljc2LS41MSAxLjE4LS42OWwuMjYtMS44NWMuMDMtLjE3LjE4LS4zLjM1LS4zaDIuOGMuMTcgMCAuMzIuMTMuMzUuMjlsLjI2IDEuODVjLjQzLjE4LjgyLjQxIDEuMTguNjlsMS43NC0uN2MuMTYtLjA2LjM0IDAgLjQzLjE1bDEuNCAyLjQyYy4wOS4xNS4wNS4zNC0uMDguNDVsLTEuNDggMS4xNmMuMDMuMjMuMDUuNDYuMDUuNjl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtYmFja3VwLXJlc3RvcmUiPjxwYXRoIGQ9Ik0xNCAxMmMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDIgLjkgMiAyIDIgMi0uOSAyLTJ6bS0yLTljLTQuOTcgMC05IDQuMDMtOSA5SDBsNCA0IDQtNEg1YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS41MSAwLTIuOTEtLjQ5LTQuMDYtMS4zbC0xLjQyIDEuNDRDOC4wNCAyMC4zIDkuOTQgMjEgMTIgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtYmx1ZXRvb3RoIj48cGF0aCBkPSJNMTEgMjRoMnYtMmgtMnYyem0tNCAwaDJ2LTJIN3Yyem04IDBoMnYtMmgtMnYyem0yLjcxLTE4LjI5TDEyIDBoLTF2Ny41OUw2LjQxIDMgNSA0LjQxIDEwLjU5IDEwIDUgMTUuNTkgNi40MSAxNyAxMSAxMi40MVYyMGgxbDUuNzEtNS43MS00LjMtNC4yOSA0LjMtNC4yOXpNMTMgMy44M2wxLjg4IDEuODhMMTMgNy41OVYzLjgzem0xLjg4IDEwLjQ2TDEzIDE2LjE3di0zLjc2bDEuODggMS44OHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1icmlnaHRuZXNzIj48cGF0aCBkPSJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyek04IDE2aDIuNWwxLjUgMS41IDEuNS0xLjVIMTZ2LTIuNWwxLjUtMS41LTEuNS0xLjVWOGgtMi41TDEyIDYuNSAxMC41IDhIOHYyLjVMNi41IDEyIDggMTMuNVYxNnptNC03YzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzVjl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtY2VsbCI+PHBhdGggZD0iTTcgMjRoMnYtMkg3djJ6bTQgMGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6TTE2IC4wMUw4IDBDNi45IDAgNiAuOSA2IDJ2MTZjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjJjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE2IDE2SDhWNGg4djEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWV0aGVybmV0Ij48cGF0aCBkPSJNNy43NyA2Ljc2TDYuMjMgNS40OC44MiAxMmw1LjQxIDYuNTIgMS41NC0xLjI4TDMuNDIgMTJsNC4zNS01LjI0ek03IDEzaDJ2LTJIN3Yyem0xMC0yaC0ydjJoMnYtMnptLTYgMmgydi0yaC0ydjJ6bTYuNzctNy41MmwtMS41NCAxLjI4TDIwLjU4IDEybC00LjM1IDUuMjQgMS41NCAxLjI4TDIzLjE4IDEybC01LjQxLTYuNTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtaW5wdXQtYW50ZW5uYSI+PHBhdGggZD0iTTEyIDVjLTMuODcgMC03IDMuMTMtNyA3aDJjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWgyYzAtMy44Ny0zLjEzLTctNy03em0xIDkuMjljLjg4LS4zOSAxLjUtMS4yNiAxLjUtMi4yOSAwLTEuMzgtMS4xMi0yLjUtMi41LTIuNVM5LjUgMTAuNjIgOS41IDEyYzAgMS4wMi42MiAxLjkgMS41IDIuMjl2My4zTDcuNTkgMjEgOSAyMi40MWwzLTMgMyAzTDE2LjQxIDIxIDEzIDE3LjU5di0zLjN6TTEyIDFDNS45MyAxIDEgNS45MyAxIDEyaDJjMC00Ljk3IDQuMDMtOSA5LTlzOSA0LjAzIDkgOWgyYzAtNi4wNy00LjkzLTExLTExLTExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWlucHV0LWNvbXBvbmVudCI+PHBhdGggZD0iTTUgMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0SDF2Nmg2VjZINVYyem00IDE0YzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgydi0ySDl2MnptLTggMGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThDNi4xNiAxOC40IDcgMTcuMyA3IDE2di0ySDF2MnpNMjEgNlYyYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRoLTJ2Nmg2VjZoLTJ6bS04LTRjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEg5djZoNlY2aC0yVjJ6bTQgMTRjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4YzEuMTYtLjQxIDItMS41MSAyLTIuODJ2LTJoLTZ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1pbnB1dC1jb21wb3NpdGUiPjxwYXRoIGQ9Ik01IDJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEgxdjZoNlY2SDVWMnptNCAxNGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThjMS4xNi0uNDEgMi0xLjUxIDItMi44MnYtMkg5djJ6bS04IDBjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4QzYuMTYgMTguNCA3IDE3LjMgNyAxNnYtMkgxdjJ6TTIxIDZWMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0aC0ydjZoNlY2aC0yem0tOC00YzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRIOXY2aDZWNmgtMlYyem00IDE0YzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgydi0yaC02djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtaW5wdXQtaGRtaSI+PHBhdGggZD0iTTE4IDdWNGMwLTEuMS0uOS0yLTItMkg4Yy0xLjEgMC0yIC45LTIgMnYzSDV2NmwzIDZ2M2g4di0zbDMtNlY3aC0xek04IDRoOHYzaC0yVjVoLTF2MmgtMlY1aC0xdjJIOFY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWlucHV0LXN2aWRlbyI+PHBhdGggZD0iTTggMTEuNWMwLS44My0uNjctMS41LTEuNS0xLjVTNSAxMC42NyA1IDExLjUgNS42NyAxMyA2LjUgMTMgOCAxMi4zMyA4IDExLjV6bTctNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNDOS42NyA1IDkgNS42NyA5IDYuNVM5LjY3IDggMTAuNSA4aDNjLjgzIDAgMS41LS42NyAxLjUtMS41ek04LjUgMTVjLS44MyAwLTEuNS42Ny0xLjUgMS41UzcuNjcgMTggOC41IDE4czEuNS0uNjcgMS41LTEuNVM5LjMzIDE1IDguNSAxNXpNMTIgMUM1LjkzIDEgMSA1LjkzIDEgMTJzNC45MyAxMSAxMSAxMSAxMS00LjkzIDExLTExUzE4LjA3IDEgMTIgMXptMCAyMGMtNC45NiAwLTktNC4wNC05LTlzNC4wNC05IDktOSA5IDQuMDQgOSA5LTQuMDQgOS05IDl6bTUuNS0xMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bS0yIDVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLW92ZXJzY2FuIj48cGF0aCBkPSJNMTIuMDEgNS41TDEwIDhoNGwtMS45OS0yLjV6TTE4IDEwdjRsMi41LTEuOTlMMTggMTB6TTYgMTBsLTIuNSAyLjAxTDYgMTR2LTR6bTggNmgtNGwyLjAxIDIuNUwxNCAxNnptNy0xM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLXBob25lIj48cGF0aCBkPSJNMTMgOWgtMnYyaDJWOXptNCAwaC0ydjJoMlY5em0zIDYuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTctLjM1LS4xMS0uNzQtLjAzLTEuMDIuMjRsLTIuMiAyLjJjLTIuODMtMS40NC01LjE1LTMuNzUtNi41OS02LjU4bDIuMi0yLjIxYy4yOC0uMjcuMzYtLjY2LjI1LTEuMDFDOC43IDYuNDUgOC41IDUuMjUgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTE5IDl2MmgyVjloLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtcG93ZXIiPjxwYXRoIGQ9Ik03IDI0aDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem0yLTIyaC0ydjEwaDJWMnptMy41NiAyLjQ0bC0xLjQ1IDEuNDVDMTYuODQgNi45NCAxOCA4LjgzIDE4IDExYzAgMy4zMS0yLjY5IDYtNiA2cy02LTIuNjktNi02YzAtMi4xNyAxLjE2LTQuMDYgMi44OC01LjEyTDcuNDQgNC40NEM1LjM2IDUuODggNCA4LjI4IDQgMTFjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOGMwLTIuNzItMS4zNi01LjEyLTMuNDQtNi41NnpNMTUgMjRoMnYtMmgtMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLXJlbW90ZSI+PHBhdGggZD0iTTE1IDlIOWMtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xVjEwYzAtLjU1LS40NS0xLTEtMXptLTMgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6TTcuMDUgNi4wNWwxLjQxIDEuNDFDOS4zNyA2LjU2IDEwLjYyIDYgMTIgNnMyLjYzLjU2IDMuNTQgMS40NmwxLjQxLTEuNDFDMTUuNjggNC43OCAxMy45MyA0IDEyIDRzLTMuNjguNzgtNC45NSAyLjA1ek0xMiAwQzguOTYgMCA2LjIxIDEuMjMgNC4yMiAzLjIybDEuNDEgMS40MUM3LjI2IDMuMDEgOS41MSAyIDEyIDJzNC43NCAxLjAxIDYuMzYgMi42NGwxLjQxLTEuNDFDMTcuNzkgMS4yMyAxNS4wNCAwIDEyIDB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3Mtdm9pY2UiPjxwYXRoIGQ9Ik03IDI0aDJ2LTJIN3Yyem01LTExYzEuNjYgMCAyLjk5LTEuMzQgMi45OS0zTDE1IDRjMC0xLjY2LTEuMzQtMy0zLTNTOSAyLjM0IDkgNHY2YzAgMS42NiAxLjM0IDMgMyAzem0tMSAxMWgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6bTQtMTRoLTEuN2MwIDMtMi41NCA1LjEtNS4zIDUuMVM2LjcgMTMgNi43IDEwSDVjMCAzLjQxIDIuNzIgNi4yMyA2IDYuNzJWMjBoMnYtMy4yOGMzLjI4LS40OSA2LTMuMzEgNi02LjcyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNob3AiPjxwYXRoIGQ9Ik0xNiA2VjRjMC0xLjExLS44OS0yLTItMmgtNGMtMS4xMSAwLTIgLjg5LTIgMnYySDJ2MTNjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmgtNnptLTYtMmg0djJoLTRWNHpNOSAxOFY5bDcuNSA0TDkgMTh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2hvcC10d28iPjxwYXRoIGQ9Ik0zIDlIMXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMkgzVjl6bTE1LTRWM2MwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMlY1aC01em0tNi0yaDR2MmgtNFYzem0wIDEyVjhsNS41IDMtNS41IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2hvcHBpbmctYmFza2V0Ij48cGF0aCBkPSJNMTcuMjEgOWwtNC4zOC02LjU2Yy0uMTktLjI4LS41MS0uNDItLjgzLS40Mi0uMzIgMC0uNjQuMTQtLjgzLjQzTDYuNzkgOUgyYy0uNTUgMC0xIC40NS0xIDEgMCAuMDkuMDEuMTguMDQuMjdsMi41NCA5LjI3Yy4yMy44NCAxIDEuNDYgMS45MiAxLjQ2aDEzYy45MiAwIDEuNjktLjYyIDEuOTMtMS40NmwyLjU0LTkuMjdMMjMgMTBjMC0uNTUtLjQ1LTEtMS0xaC00Ljc5ek05IDlsMy00LjRMMTUgOUg5em0zIDhjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNob3BwaW5nLWNhcnQiPjxwYXRoIGQ9Ik03IDE4Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yek0xIDJ2MmgybDMuNiA3LjU5LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmgxMnYtMkg3LjQyYy0uMTQgMC0uMjUtLjExLS4yNS0uMjVsLjAzLS4xMi45LTEuNjNoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5Yy4wOC0uMTQuMTItLjMxLjEyLS40OCAwLS41NS0uNDUtMS0xLTFINS4yMWwtLjk0LTJIMXptMTYgMTZjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNvcnQiPjxwYXRoIGQ9Ik0zIDE4aDZ2LTJIM3Yyek0zIDZ2MmgxOFY2SDN6bTAgN2gxMnYtMkgzdjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3BlYWtlci1ub3RlcyI+PHBhdGggZD0iTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek04IDE0SDZ2LTJoMnYyem0wLTNINlY5aDJ2MnptMC0zSDZWNmgydjJ6bTcgNmgtNXYtMmg1djJ6bTMtM2gtOFY5aDh2MnptMC0zaC04VjZoOHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNwZWFrZXItbm90ZXMtb2ZmIj48cGF0aCBkPSJNMTAuNTQgMTFsLS41NC0uNTRMNy41NCA4IDYgNi40NiAyLjM4IDIuODQgMS4yNyAxLjczIDAgM2wyLjAxIDIuMDFMMiAyMmw0LTRoOWw1LjczIDUuNzNMMjIgMjIuNDYgMTcuNTQgMThsLTctN3pNOCAxNEg2di0yaDJ2MnptLTItM1Y5bDIgMkg2em0xNC05SDQuMDhMMTAgNy45MlY2aDh2MmgtNy45MmwxIDFIMTh2MmgtNC45Mmw2Ljk5IDYuOTlDMjEuMTQgMTcuOTUgMjIgMTcuMDggMjIgMTZWNGMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzcGVsbGNoZWNrIj48cGF0aCBkPSJNMTIuNDUgMTZoMi4wOUw5LjQzIDNINy41N0wyLjQ2IDE2aDIuMDlsMS4xMi0zaDUuNjRsMS4xNCAzem0tNi4wMi01TDguNSA1LjQ4IDEwLjU3IDExSDYuNDN6bTE1LjE2LjU5bC04LjA5IDguMDlMOS44MyAxNmwtMS40MSAxLjQxIDUuMDkgNS4wOUwyMyAxM2wtMS40MS0xLjQxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN0YXIiPjxwYXRoIGQ9Ik0xMiAxNy4yN0wxOC4xOCAyMWwtMS42NC03LjAzTDIyIDkuMjRsLTcuMTktLjYxTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzdGFyLWJvcmRlciI+PHBhdGggZD0iTTIyIDkuMjRsLTcuMTktLjYyTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMSAxMiAxNy4yNyAxOC4xOCAyMWwtMS42My03LjAzTDIyIDkuMjR6TTEyIDE1LjRsLTMuNzYgMi4yNyAxLTQuMjgtMy4zMi0yLjg4IDQuMzgtLjM4TDEyIDYuMWwxLjcxIDQuMDQgNC4zOC4zOC0zLjMyIDIuODggMSA0LjI4TDEyIDE1LjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3Rhci1oYWxmIj48cGF0aCBkPSJNMjIgOS4yNGwtNy4xOS0uNjJMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxIDEyIDE3LjI3IDE4LjE4IDIxbC0xLjYzLTcuMDNMMjIgOS4yNHpNMTIgMTUuNFY2LjFsMS43MSA0LjA0IDQuMzguMzgtMy4zMiAyLjg4IDEgNC4yOEwxMiAxNS40eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN0YXJzIj48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNC4yNCAxNkwxMiAxNS40NSA3Ljc3IDE4bDEuMTItNC44MS0zLjczLTMuMjMgNC45Mi0uNDJMMTIgNWwxLjkyIDQuNTMgNC45Mi40Mi0zLjczIDMuMjNMMTYuMjMgMTh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3RvcmUiPjxwYXRoIGQ9Ik0yMCA0SDR2MmgxNlY0em0xIDEwdi0ybC0xLTVINGwtMSA1djJoMXY2aDEwdi02aDR2Nmgydi02aDF6bS05IDRINnYtNGg2djR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3ViZGlyZWN0b3J5LWFycm93LWxlZnQiPjxwYXRoIGQ9Ik0xMSA5bDEuNDIgMS40Mkw4LjgzIDE0SDE4VjRoMnYxMkg4LjgzbDMuNTkgMy41OEwxMSAyMWwtNi02IDYtNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzdWJkaXJlY3RvcnktYXJyb3ctcmlnaHQiPjxwYXRoIGQ9Ik0xOSAxNWwtNiA2LTEuNDItMS40MkwxNS4xNyAxNkg0VjRoMnYxMGg5LjE3bC0zLjU5LTMuNThMMTMgOWw2IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3ViamVjdCI+PHBhdGggZD0iTTE0IDE3SDR2MmgxMHYtMnptNi04SDR2MmgxNlY5ek00IDE1aDE2di0ySDR2MnpNNCA1djJoMTZWNUg0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN1cGVydmlzb3ItYWNjb3VudCI+PHBhdGggZD0iTTE2LjUgMTJjMS4zOCAwIDIuNDktMS4xMiAyLjQ5LTIuNVMxNy44OCA3IDE2LjUgN0MxNS4xMiA3IDE0IDguMTIgMTQgOS41czEuMTIgMi41IDIuNSAyLjV6TTkgMTFjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNTMTAuNjYgNSA5IDVDNy4zNCA1IDYgNi4zNCA2IDhzMS4zNCAzIDMgM3ptNy41IDNjLTEuODMgMC01LjUuOTItNS41IDIuNzVWMTloMTF2LTIuMjVjMC0xLjgzLTMuNjctMi43NS01LjUtMi43NXpNOSAxM2MtMi4zMyAwLTcgMS4xNy03IDMuNVYxOWg3di0yLjI1YzAtLjg1LjMzLTIuMzQgMi4zNy0zLjQ3QzEwLjUgMTMuMSA5LjY2IDEzIDkgMTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3dhcC1ob3JpeiI+PHBhdGggZD0iTTYuOTkgMTFMMyAxNWwzLjk5IDR2LTNIMTR2LTJINi45OXYtM3pNMjEgOWwtMy45OS00djNIMTB2Mmg3LjAxdjNMMjEgOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzd2FwLXZlcnQiPjxwYXRoIGQ9Ik0xNiAxNy4wMVYxMGgtMnY3LjAxaC0zTDE1IDIxbDQtMy45OWgtM3pNOSAzTDUgNi45OWgzVjE0aDJWNi45OWgzTDkgM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJzd2FwLXZlcnRpY2FsLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTYuNSA5TDEwIDUuNSAxMy41IDlIMTF2NEg5VjlINi41em0xMSA2TDE0IDE4LjUgMTAuNSAxNUgxM3YtNGgydjRoMi41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN5c3RlbS11cGRhdGUtYWx0Ij48cGF0aCBkPSJNMTIgMTYuNWw0LTRoLTN2LTloLTJ2OUg4bDQgNHptOS0xM2gtNnYxLjk5aDZ2MTQuMDNIM1Y1LjQ5aDZWMy41SDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJ2LTE0YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRhYiI+PHBhdGggZD0iTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxMHY0aDh2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGFiLXVuc2VsZWN0ZWQiPjxwYXRoIGQ9Ik0xIDloMlY3SDF2MnptMCA0aDJ2LTJIMXYyem0wLThoMlYzYy0xLjEgMC0yIC45LTIgMnptOCAxNmgydi0ySDl2MnptLTgtNGgydi0ySDF2MnptMiA0di0ySDFjMCAxLjEuOSAyIDIgMnpNMjEgM2gtOHY2aDEwVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTRoMnYtMmgtMnYyek05IDVoMlYzSDl2MnpNNSAyMWgydi0ySDV2MnpNNSA1aDJWM0g1djJ6bTE2IDE2YzEuMSAwIDItLjkgMi0yaC0ydjJ6bTAtOGgydi0yaC0ydjJ6bS04IDhoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRleHQtZm9ybWF0Ij48cGF0aCBkPSJNNSAxN3YyaDE0di0ySDV6bTQuNS00LjJoNWwuOSAyLjJoMi4xTDEyLjc1IDRoLTEuNUw2LjUgMTVoMi4xbC45LTIuMnpNMTIgNS45OEwxMy44NyAxMWgtMy43NEwxMiA1Ljk4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRoZWF0ZXJzIj48cGF0aCBkPSJNMTggM3YyaC0yVjNIOHYySDZWM0g0djE4aDJ2LTJoMnYyaDh2LTJoMnYyaDJWM2gtMnpNOCAxN0g2di0yaDJ2MnptMC00SDZ2LTJoMnYyem0wLTRINlY3aDJ2MnptMTAgOGgtMnYtMmgydjJ6bTAtNGgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aHVtYi1kb3duIj48cGF0aCBkPSJNMTUgM0g2Yy0uODMgMC0xLjU0LjUtMS44NCAxLjIybC0zLjAyIDcuMDVjLS4wOS4yMy0uMTQuNDctLjE0LjczdjEuOTFsLjAxLjAxTDEgMTRjMCAxLjEuOSAyIDIgMmg2LjMxbC0uOTUgNC41Ny0uMDMuMzJjMCAuNDEuMTcuNzkuNDQgMS4wNkw5LjgzIDIzbDYuNTktNi41OWMuMzYtLjM2LjU4LS44Ni41OC0xLjQxVjVjMC0xLjEtLjktMi0yLTJ6bTQgMHYxMmg0VjNoLTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGh1bWItdXAiPjxwYXRoIGQ9Ik0xIDIxaDRWOUgxdjEyem0yMi0xMWMwLTEuMS0uOS0yLTItMmgtNi4zMWwuOTUtNC41Ny4wMy0uMzJjMC0uNDEtLjE3LS43OS0uNDQtMS4wNkwxNC4xNyAxIDcuNTkgNy41OUM3LjIyIDcuOTUgNyA4LjQ1IDcgOXYxMGMwIDEuMS45IDIgMiAyaDljLjgzIDAgMS41NC0uNSAxLjg0LTEuMjJsMy4wMi03LjA1Yy4wOS0uMjMuMTQtLjQ3LjE0LS43M3YtMS45MWwtLjAxLS4wMUwyMyAxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aHVtYnMtdXAtZG93biI+PHBhdGggZD0iTTEyIDZjMC0uNTUtLjQ1LTEtMS0xSDUuODJsLjY2LTMuMTguMDItLjIzYzAtLjMxLS4xMy0uNTktLjMzLS44TDUuMzggMCAuNDQgNC45NEMuMTcgNS4yMSAwIDUuNTkgMCA2djYuNWMwIC44My42NyAxLjUgMS41IDEuNWg2Ljc1Yy42MiAwIDEuMTUtLjM4IDEuMzgtLjkxbDIuMjYtNS4yOWMuMDctLjE3LjExLS4zNi4xMS0uNTVWNnptMTAuNSA0aC02Ljc1Yy0uNjIgMC0xLjE1LjM4LTEuMzguOTFsLTIuMjYgNS4yOWMtLjA3LjE3LS4xMS4zNi0uMTEuNTVWMThjMCAuNTUuNDUgMSAxIDFoNS4xOGwtLjY2IDMuMTgtLjAyLjI0YzAgLjMxLjEzLjU5LjMzLjhsLjc5Ljc4IDQuOTQtNC45NGMuMjctLjI3LjQ0LS42NS40NC0xLjA2di02LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRpbWVsaW5lIj48cGF0aCBkPSJNMjMgOGMwIDEuMS0uOSAyLTIgMi0uMTggMC0uMzUtLjAyLS41MS0uMDdsLTMuNTYgMy41NWMuMDUuMTYuMDcuMzQuMDcuNTIgMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yYzAtLjE4LjAyLS4zNi4wNy0uNTJsLTIuNTUtMi41NWMtLjE2LjA1LS4zNC4wNy0uNTIuMDdzLS4zNi0uMDItLjUyLS4wN2wtNC41NSA0LjU2Yy4wNS4xNi4wNy4zMy4wNy41MSAwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTJjLjE4IDAgLjM1LjAyLjUxLjA3bDQuNTYtNC41NUM4LjAyIDkuMzYgOCA5LjE4IDggOWMwLTEuMS45LTIgMi0yczIgLjkgMiAyYzAgLjE4LS4wMi4zNi0uMDcuNTJsMi41NSAyLjU1Yy4xNi0uMDUuMzQtLjA3LjUyLS4wN3MuMzYuMDIuNTIuMDdsMy41NS0zLjU2QzE5LjAyIDguMzUgMTkgOC4xOCAxOSA4YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idG9jIj48cGF0aCBkPSJNMyA5aDE0VjdIM3Yyem0wIDRoMTR2LTJIM3Yyem0wIDRoMTR2LTJIM3Yyem0xNiAwaDJ2LTJoLTJ2MnptMC0xMHYyaDJWN2gtMnptMCA2aDJ2LTJoLTJ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0b2RheSI+PHBhdGggZD0iTTE5IDNoLTFWMWgtMnYySDhWMUg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAxOWMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOGgxNHYxMXpNNyAxMGg1djVIN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJ0b2xsIj48cGF0aCBkPSJNMTUgNGMtNC40MiAwLTggMy41OC04IDhzMy41OCA4IDggOCA4LTMuNTggOC04LTMuNTgtOC04LTh6bTAgMTRjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2ek0zIDEyYzAtMi42MSAxLjY3LTQuODMgNC01LjY1VjQuMjZDMy41NSA1LjE1IDEgOC4yNyAxIDEyczIuNTUgNi44NSA2IDcuNzR2LTIuMDljLTIuMzMtLjgyLTQtMy4wNC00LTUuNjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idG91Y2gtYXBwIj48cGF0aCBkPSJNOSAxMS4yNFY3LjVDOSA2LjEyIDEwLjEyIDUgMTEuNSA1UzE0IDYuMTIgMTQgNy41djMuNzRjMS4yMS0uODEgMi0yLjE4IDItMy43NEMxNiA1LjAxIDEzLjk5IDMgMTEuNSAzUzcgNS4wMSA3IDcuNWMwIDEuNTYuNzkgMi45MyAyIDMuNzR6bTkuODQgNC42M2wtNC41NC0yLjI2Yy0uMTctLjA3LS4zNS0uMTEtLjU0LS4xMUgxM3YtNmMwLS44My0uNjctMS41LTEuNS0xLjVTMTAgNi42NyAxMCA3LjV2MTAuNzRsLTMuNDMtLjcyYy0uMDgtLjAxLS4xNS0uMDMtLjI0LS4wMy0uMzEgMC0uNTkuMTMtLjc5LjMzbC0uNzkuOCA0Ljk0IDQuOTRjLjI3LjI3LjY1LjQ0IDEuMDYuNDRoNi43OWMuNzUgMCAxLjMzLS41NSAxLjQ0LTEuMjhsLjc1LTUuMjdjLjAxLS4wNy4wMi0uMTQuMDItLjIgMC0uNjItLjM4LTEuMTYtLjkxLTEuMzh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHJhY2stY2hhbmdlcyI+PHBhdGggZD0iTTE5LjA3IDQuOTNsLTEuNDEgMS40MUMxOS4xIDcuNzkgMjAgOS43OSAyMCAxMmMwIDQuNDItMy41OCA4LTggOHMtOC0zLjU4LTgtOGMwLTQuMDggMy4wNS03LjQ0IDctNy45M3YyLjAyQzguMTYgNi41NyA2IDkuMDMgNiAxMmMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02YzAtMS42Ni0uNjctMy4xNi0xLjc2LTQuMjRsLTEuNDEgMS40MUMxNS41NSA5LjkgMTYgMTAuOSAxNiAxMmMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNGMwLTEuODYgMS4yOC0zLjQxIDMtMy44NnYyLjE0Yy0uNi4zNS0xIC45OC0xIDEuNzIgMCAxLjEuOSAyIDIgMnMyLS45IDItMmMwLS43NC0uNC0xLjM4LTEtMS43MlYyaC0xQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBjMC0yLjc2LTEuMTItNS4yNi0yLjkzLTcuMDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHJhbnNsYXRlIj48cGF0aCBkPSJNMTIuODcgMTUuMDdsLTIuNTQtMi41MS4wMy0uMDNjMS43NC0xLjk0IDIuOTgtNC4xNyAzLjcxLTYuNTNIMTdWNGgtN1YySDh2MkgxdjEuOTloMTEuMTdDMTEuNSA3LjkyIDEwLjQ0IDkuNzUgOSAxMS4zNSA4LjA3IDEwLjMyIDcuMyA5LjE5IDYuNjkgOGgtMmMuNzMgMS42MyAxLjczIDMuMTcgMi45OCA0LjU2bC01LjA5IDUuMDJMNCAxOWw1LTUgMy4xMSAzLjExLjc2LTIuMDR6TTE4LjUgMTBoLTJMMTIgMjJoMmwxLjEyLTNoNC43NUwyMSAyMmgybC00LjUtMTJ6bS0yLjYyIDdsMS42Mi00LjMzTDE5LjEyIDE3aC0zLjI0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRyZW5kaW5nLWRvd24iPjxwYXRoIGQ9Ik0xNiAxOGwyLjI5LTIuMjktNC44OC00Ljg4LTQgNEwyIDcuNDEgMy40MSA2bDYgNiA0LTQgNi4zIDYuMjlMMjIgMTJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0cmVuZGluZy1mbGF0Ij48cGF0aCBkPSJNMjIgMTJsLTQtNHYzSDN2MmgxNXYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRyZW5kaW5nLXVwIj48cGF0aCBkPSJNMTYgNmwyLjI5IDIuMjktNC44OCA0Ljg4LTQtNEwyIDE2LjU5IDMuNDEgMThsNi02IDQgNCA2LjMtNi4yOUwyMiAxMlY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InR1cm5lZC1pbiI+PHBhdGggZD0iTTE3IDNIN2MtMS4xIDAtMS45OS45LTEuOTkgMkw1IDIxbDctMyA3IDNWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0dXJuZWQtaW4tbm90Ij48cGF0aCBkPSJNMTcgM0g3Yy0xLjEgMC0xLjk5LjktMS45OSAyTDUgMjFsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yem0wIDE1bC01LTIuMThMNyAxOFY1aDEwdjEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InVuYXJjaGl2ZSI+PHBhdGggZD0iTTIwLjU1IDUuMjJsLTEuMzktMS42OEMxOC44OCAzLjIxIDE4LjQ3IDMgMTggM0g2Yy0uNDcgMC0uODguMjEtMS4xNS41NUwzLjQ2IDUuMjJDMy4xNyA1LjU3IDMgNi4wMSAzIDYuNVYxOWMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2LjVjMC0uNDktLjE3LS45My0uNDUtMS4yOHpNMTIgOS41bDUuNSA1LjVIMTR2MmgtNHYtMkg2LjVMMTIgOS41ek01LjEyIDVsLjgyLTFoMTJsLjkzIDFINS4xMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ1bmRvIj48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idW5mb2xkLWxlc3MiPjxwYXRoIGQ9Ik03LjQxIDE4LjU5TDguODMgMjAgMTIgMTYuODMgMTUuMTcgMjBsMS40MS0xLjQxTDEyIDE0bC00LjU5IDQuNTl6bTkuMTgtMTMuMThMMTUuMTcgNCAxMiA3LjE3IDguODMgNCA3LjQxIDUuNDEgMTIgMTBsNC41OS00LjU5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InVuZm9sZC1tb3JlIj48cGF0aCBkPSJNMTIgNS44M0wxNS4xNyA5bDEuNDEtMS40MUwxMiAzIDcuNDEgNy41OSA4LjgzIDkgMTIgNS44M3ptMCAxMi4zNEw4LjgzIDE1bC0xLjQxIDEuNDFMMTIgMjFsNC41OS00LjU5TDE1LjE3IDE1IDEyIDE4LjE3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InVwZGF0ZSI+PHBhdGggZD0iTTIxIDEwLjEyaC02Ljc4bDIuNzQtMi44MmMtMi43My0yLjctNy4xNS0yLjgtOS44OC0uMS0yLjczIDIuNzEtMi43MyA3LjA4IDAgOS43OSAyLjczIDIuNzEgNy4xNSAyLjcxIDkuODggMEMxOC4zMiAxNS42NSAxOSAxNC4wOCAxOSAxMi4xaDJjMCAxLjk4LS44OCA0LjU1LTIuNjQgNi4yOS0zLjUxIDMuNDgtOS4yMSAzLjQ4LTEyLjcyIDAtMy41LTMuNDctMy41My05LjExLS4wMi0xMi41OCAzLjUxLTMuNDcgOS4xNC0zLjQ3IDEyLjY1IDBMMjEgM3Y3LjEyek0xMi41IDh2NC4yNWwzLjUgMi4wOC0uNzIgMS4yMUwxMSAxM1Y4aDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2ZXJpZmllZC11c2VyIj48cGF0aCBkPSJNMTIgMUwzIDV2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDUuMTYtMS4yNiA5LTYuNDUgOS0xMlY1bC05LTR6bS0yIDE2bC00LTQgMS40MS0xLjQxTDEwIDE0LjE3bDYuNTktNi41OUwxOCA5bC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1hZ2VuZGEiPjxwYXRoIGQ9Ik0yMCAxM0gzYy0uNTUgMC0xIC40NS0xIDF2NmMwIC41NS40NSAxIDEgMWgxN2MuNTUgMCAxLS40NSAxLTF2LTZjMC0uNTUtLjQ1LTEtMS0xem0wLTEwSDNjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE3Yy41NSAwIDEtLjQ1IDEtMVY0YzAtLjU1LS40NS0xLTEtMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWFycmF5Ij48cGF0aCBkPSJNNCAxOGgzVjVINHYxM3pNMTggNXYxM2gzVjVoLTN6TTggMThoOVY1SDh2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1jYXJvdXNlbCI+PHBhdGggZD0iTTcgMTloMTBWNEg3djE1em0tNS0yaDRWNkgydjExek0xOCA2djExaDRWNmgtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWNvbHVtbiI+PHBhdGggZD0iTTEwIDE4aDVWNWgtNXYxM3ptLTYgMGg1VjVINHYxM3pNMTYgNXYxM2g1VjVoLTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1kYXkiPjxwYXRoIGQ9Ik0yIDIxaDE5di0zSDJ2M3pNMjAgOEgzYy0uNTUgMC0xIC40NS0xIDF2NmMwIC41NS40NSAxIDEgMWgxN2MuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTF6TTIgM3YzaDE5VjNIMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWhlYWRsaW5lIj48cGF0aCBkPSJNNCAxNWgxNnYtMkg0djJ6bTAgNGgxNnYtMkg0djJ6bTAtOGgxNlY5SDR2MnptMC02djJoMTZWNUg0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctbGlzdCI+PHBhdGggZD0iTTQgMTRoNHYtNEg0djR6bTAgNWg0di00SDR2NHpNNCA5aDRWNUg0djR6bTUgNWgxMnYtNEg5djR6bTAgNWgxMnYtNEg5djR6TTkgNXY0aDEyVjVIOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LW1vZHVsZSI+PHBhdGggZD0iTTQgMTFoNVY1SDR2NnptMCA3aDV2LTZINHY2em02IDBoNXYtNmgtNXY2em02IDBoNXYtNmgtNXY2em0tNi03aDVWNWgtNXY2em02LTZ2Nmg1VjVoLTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1xdWlsdCI+PHBhdGggZD0iTTEwIDE4aDV2LTZoLTV2NnptLTYgMGg1VjVINHYxM3ptMTIgMGg1di02aC01djZ6TTEwIDV2NmgxMVY1SDEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctc3RyZWFtIj48cGF0aCBkPSJNNCAxOGgxN3YtNkg0djZ6TTQgNXY2aDE3VjVINHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LXdlZWsiPjxwYXRoIGQ9Ik02IDVIM2MtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDNjLjU1IDAgMS0uNDUgMS0xVjZjMC0uNTUtLjQ1LTEtMS0xem0xNCAwaC0zYy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoM2MuNTUgMCAxLS40NSAxLTFWNmMwLS41NS0uNDUtMS0xLTF6bS03IDBoLTNjLS41NSAwLTEgLjQ1LTEgMXYxMmMwIC41NS40NSAxIDEgMWgzYy41NSAwIDEtLjQ1IDEtMVY2YzAtLjU1LS40NS0xLTEtMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aXNpYmlsaXR5Ij48cGF0aCBkPSJNMTIgNC41QzcgNC41IDIuNzMgNy42MSAxIDEyYzEuNzMgNC4zOSA2IDcuNSAxMSA3LjVzOS4yNy0zLjExIDExLTcuNWMtMS43My00LjM5LTYtNy41LTExLTcuNXpNMTIgMTdjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0wLThjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpc2liaWxpdHktb2ZmIj48cGF0aCBkPSJNMTIgN2MyLjc2IDAgNSAyLjI0IDUgNSAwIC42NS0uMTMgMS4yNi0uMzYgMS44M2wyLjkyIDIuOTJjMS41MS0xLjI2IDIuNy0yLjg5IDMuNDMtNC43NS0xLjczLTQuMzktNi03LjUtMTEtNy41LTEuNCAwLTIuNzQuMjUtMy45OC43bDIuMTYgMi4xNkMxMC43NCA3LjEzIDExLjM1IDcgMTIgN3pNMiA0LjI3bDIuMjggMi4yOC40Ni40NkMzLjA4IDguMyAxLjc4IDEwLjAyIDEgMTJjMS43MyA0LjM5IDYgNy41IDExIDcuNSAxLjU1IDAgMy4wMy0uMyA0LjM4LS44NGwuNDIuNDJMMTkuNzMgMjIgMjEgMjAuNzMgMy4yNyAzIDIgNC4yN3pNNy41MyA5LjhsMS41NSAxLjU1Yy0uMDUuMjEtLjA4LjQzLS4wOC42NSAwIDEuNjYgMS4zNCAzIDMgMyAuMjIgMCAuNDQtLjAzLjY1LS4wOGwxLjU1IDEuNTVjLS42Ny4zMy0xLjQxLjUzLTIuMi41My0yLjc2IDAtNS0yLjI0LTUtNSAwLS43OS4yLTEuNTMuNTMtMi4yem00LjMxLS43OGwzLjE1IDMuMTUuMDItLjE2YzAtMS42Ni0xLjM0LTMtMy0zbC0uMTcuMDF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2FybmluZyI+PHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ3YXRjaC1sYXRlciI+PHBhdGggZD0iTTEyIDJDNi41IDIgMiA2LjUgMiAxMnM0LjUgMTAgMTAgMTAgMTAtNC41IDEwLTEwUzE3LjUgMiAxMiAyem00LjIgMTQuMkwxMSAxM1Y3aDEuNXY1LjJsNC41IDIuNy0uOCAxLjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2Vla2VuZCI+PHBhdGggZD0iTTIxIDEwYy0xLjEgMC0yIC45LTIgMnYzSDV2LTNjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjVjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMnYtNWMwLTEuMS0uOS0yLTItMnptLTMtNUg2Yy0xLjEgMC0yIC45LTIgMnYyLjE1YzEuMTYuNDEgMiAxLjUxIDIgMi44MlYxNGgxMnYtMi4wM2MwLTEuMy44NC0yLjQgMi0yLjgyVjdjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id29yayI+PHBhdGggZD0iTTIwIDZoLTRWNGMwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNiAwaC00VjRoNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InlvdXR1YmUtc2VhcmNoZWQtZm9yIj48cGF0aCBkPSJNMTcuMDEgMTRoLS44bC0uMjctLjI3Yy45OC0xLjE0IDEuNTctMi42MSAxLjU3LTQuMjMgMC0zLjU5LTIuOTEtNi41LTYuNS02LjVzLTYuNSAzLTYuNSA2LjVIMmwzLjg0IDQgNC4xNi00SDYuNTFDNi41MSA3IDguNTMgNSAxMS4wMSA1czQuNSAyLjAxIDQuNSA0LjVjMCAyLjQ4LTIuMDIgNC41LTQuNSA0LjUtLjY1IDAtMS4yNi0uMTQtMS44Mi0uMzhMNy43MSAxNS4xYy45Ny41NyAyLjA5LjkgMy4zLjkgMS42MSAwIDMuMDgtLjU5IDQuMjItMS41N2wuMjcuMjd2Ljc5bDUuMDEgNC45OUwyMiAxOWwtNC45OS01eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Inpvb20taW4iPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0em0yLjUtNGgtMnYySDl2LTJIN1Y5aDJWN2gxdjJoMnYxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Inpvb20tb3V0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiI+PC9wYXRoPjwvZz4KPC9kZWZzPjwvc3ZnPgo8L2lyb24taWNvbnNldC1zdmc+YDtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKE1vLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KdmFyIEVvPXsiVSswMDA4IjoiYmFja3NwYWNlIiwiVSswMDA5IjoidGFiIiwiVSswMDFCIjoiZXNjIiwiVSswMDIwIjoic3BhY2UiLCJVKzAwN0YiOiJkZWwifSxUbz17ODoiYmFja3NwYWNlIiw5OiJ0YWIiLDEzOiJlbnRlciIsMjc6ImVzYyIsMzM6InBhZ2V1cCIsMzQ6InBhZ2Vkb3duIiwzNToiZW5kIiwzNjoiaG9tZSIsMzI6InNwYWNlIiwzNzoibGVmdCIsMzg6InVwIiwzOToicmlnaHQiLDQwOiJkb3duIiw0NjoiZGVsIiwxMDY6IioifSxDbz17c2hpZnQ6InNoaWZ0S2V5IixjdHJsOiJjdHJsS2V5IixhbHQ6ImFsdEtleSIsbWV0YToibWV0YUtleSJ9LEFvPS9bYS16MC05Kl0vLGtvPS9VXCsvLExvPS9eYXJyb3cvLFBvPS9ec3BhY2UoYmFyKT8vLE5vPS9eZXNjYXBlJC87ZnVuY3Rpb24gSW8odCxlKXt2YXIgbj0iIjtpZih0KXt2YXIgaT10LnRvTG93ZXJDYXNlKCk7IiAiPT09aXx8UG8udGVzdChpKT9uPSJzcGFjZSI6Tm8udGVzdChpKT9uPSJlc2MiOjE9PWkubGVuZ3RoP2UmJiFBby50ZXN0KGkpfHwobj1pKTpuPUxvLnRlc3QoaSk/aS5yZXBsYWNlKCJhcnJvdyIsIiIpOiJtdWx0aXBseSI9PWk/IioiOml9cmV0dXJuIG59ZnVuY3Rpb24gUm8odCxlKXtyZXR1cm4oZnVuY3Rpb24gbih0LGUpe3JldHVybiB0LmtleT9Jbyh0LmtleSxlKTp0LmRldGFpbCYmdC5kZXRhaWwua2V5P0lvKHQuZGV0YWlsLmtleSxlKTooZnVuY3Rpb24gbih0KXt2YXIgZT0iIjtyZXR1cm4gdCYmKHQgaW4gRW8/ZT1Fb1t0XTprby50ZXN0KHQpPyh0PXBhcnNlSW50KHQucmVwbGFjZSgiVSsiLCIweCIpLDE2KSxlPVN0cmluZy5mcm9tQ2hhckNvZGUodCkudG9Mb3dlckNhc2UoKSk6ZT10LnRvTG93ZXJDYXNlKCkpLGV9KSh0LmtleUlkZW50aWZpZXIpfHwoZnVuY3Rpb24gaSh0KXt2YXIgZT0iIjtyZXR1cm4gTnVtYmVyKHQpJiYoZT10Pj02NSYmdDw9OTA/U3RyaW5nLmZyb21DaGFyQ29kZSgzMit0KTp0Pj0xMTImJnQ8PTEyMz8iZiIrKHQtMTEyKzEpOnQ+PTQ4JiZ0PD01Nz9TdHJpbmcodC00OCk6dD49OTYmJnQ8PTEwNT9TdHJpbmcodC05Nik6VG9bdF0pLGV9KSh0LmtleUNvZGUpfHwiIn0pKGUsdC5oYXNNb2RpZmllcnMpPT09dC5rZXkmJighdC5oYXNNb2RpZmllcnN8fCEhZS5zaGlmdEtleT09ISF0LnNoaWZ0S2V5JiYhIWUuY3RybEtleT09ISF0LmN0cmxLZXkmJiEhZS5hbHRLZXk9PSEhdC5hbHRLZXkmJiEhZS5tZXRhS2V5PT0hIXQubWV0YUtleSl9ZnVuY3Rpb24gT28odCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KCIgIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gMT09PXQubGVuZ3RoP3tjb21ibzp0LGtleTp0LGV2ZW50OiJrZXlkb3duIn06dC5zcGxpdCgiKyIpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXt2YXIgbj1lLnNwbGl0KCI6IiksaT1uWzBdLHI9blsxXTtyZXR1cm4gaSBpbiBDbz8odFtDb1tpXV09ITAsdC5oYXNNb2RpZmllcnM9ITApOih0LmtleT1pLHQuZXZlbnQ9cnx8ImtleWRvd24iKSx0fSkse2NvbWJvOnQuc3BsaXQoIjoiKS5zaGlmdCgpfSl9KSh0KX0pKX1jb25zdCB6bz17cHJvcGVydGllczp7a2V5RXZlbnRUYXJnZXQ6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSxzdG9wS2V5Ym9hcmRFdmVudFByb3BhZ2F0aW9uOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9ib3VuZEtleUhhbmRsZXJzOnt0eXBlOkFycmF5LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxfaW1wZXJhdGl2ZUtleUJpbmRpbmdzOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybnt9fX19LG9ic2VydmVyczpbIl9yZXNldEtleUV2ZW50TGlzdGVuZXJzKGtleUV2ZW50VGFyZ2V0LCBfYm91bmRLZXlIYW5kbGVycykiXSxrZXlCaW5kaW5nczp7fSxyZWdpc3RlcmVkOmZ1bmN0aW9uKCl7dGhpcy5fcHJlcEtleUJpbmRpbmdzKCl9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fbGlzdGVuS2V5RXZlbnRMaXN0ZW5lcnMoKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl91bmxpc3RlbktleUV2ZW50TGlzdGVuZXJzKCl9LGFkZE93bktleUJpbmRpbmc6ZnVuY3Rpb24odCxlKXt0aGlzLl9pbXBlcmF0aXZlS2V5QmluZGluZ3NbdF09ZSx0aGlzLl9wcmVwS2V5QmluZGluZ3MoKSx0aGlzLl9yZXNldEtleUV2ZW50TGlzdGVuZXJzKCl9LHJlbW92ZU93bktleUJpbmRpbmdzOmZ1bmN0aW9uKCl7dGhpcy5faW1wZXJhdGl2ZUtleUJpbmRpbmdzPXt9LHRoaXMuX3ByZXBLZXlCaW5kaW5ncygpLHRoaXMuX3Jlc2V0S2V5RXZlbnRMaXN0ZW5lcnMoKX0sa2V5Ym9hcmRFdmVudE1hdGNoZXNLZXlzOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPU9vKGUpLGk9MDtpPG4ubGVuZ3RoOysraSlpZihSbyhuW2ldLHQpKXJldHVybiEwO3JldHVybiExfSxfY29sbGVjdEtleUJpbmRpbmdzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5iZWhhdmlvcnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXlCaW5kaW5nc30pKTtyZXR1cm4tMT09PXQuaW5kZXhPZih0aGlzLmtleUJpbmRpbmdzKSYmdC5wdXNoKHRoaXMua2V5QmluZGluZ3MpLHR9LF9wcmVwS2V5QmluZGluZ3M6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fa2V5QmluZGluZ3M9e30sdGhpcy5fY29sbGVjdEtleUJpbmRpbmdzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpdGhpcy5fYWRkS2V5QmluZGluZyhlLHRbZV0pfSksdGhpcyksdGhpcy5faW1wZXJhdGl2ZUtleUJpbmRpbmdzKXRoaXMuX2FkZEtleUJpbmRpbmcodCx0aGlzLl9pbXBlcmF0aXZlS2V5QmluZGluZ3NbdF0pO2Zvcih2YXIgZSBpbiB0aGlzLl9rZXlCaW5kaW5ncyl0aGlzLl9rZXlCaW5kaW5nc1tlXS5zb3J0KChmdW5jdGlvbih0LGUpe3ZhciBuPXRbMF0uaGFzTW9kaWZpZXJzO3JldHVybiBuPT09ZVswXS5oYXNNb2RpZmllcnM/MDpuPy0xOjF9KSl9LF9hZGRLZXlCaW5kaW5nOmZ1bmN0aW9uKHQsZSl7T28odCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dGhpcy5fa2V5QmluZGluZ3NbdC5ldmVudF09dGhpcy5fa2V5QmluZGluZ3NbdC5ldmVudF18fFtdLHRoaXMuX2tleUJpbmRpbmdzW3QuZXZlbnRdLnB1c2goW3QsZV0pfSksdGhpcyl9LF9yZXNldEtleUV2ZW50TGlzdGVuZXJzOmZ1bmN0aW9uKCl7dGhpcy5fdW5saXN0ZW5LZXlFdmVudExpc3RlbmVycygpLHRoaXMuaXNBdHRhY2hlZCYmdGhpcy5fbGlzdGVuS2V5RXZlbnRMaXN0ZW5lcnMoKX0sX2xpc3RlbktleUV2ZW50TGlzdGVuZXJzOmZ1bmN0aW9uKCl7dGhpcy5rZXlFdmVudFRhcmdldCYmT2JqZWN0LmtleXModGhpcy5fa2V5QmluZGluZ3MpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX29uS2V5QmluZGluZ0V2ZW50LmJpbmQodGhpcyx0aGlzLl9rZXlCaW5kaW5nc1t0XSk7dGhpcy5fYm91bmRLZXlIYW5kbGVycy5wdXNoKFt0aGlzLmtleUV2ZW50VGFyZ2V0LHQsZV0pLHRoaXMua2V5RXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcih0LGUpfSksdGhpcyl9LF91bmxpc3RlbktleUV2ZW50TGlzdGVuZXJzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0O3RoaXMuX2JvdW5kS2V5SGFuZGxlcnMubGVuZ3RoOykodD10aGlzLl9ib3VuZEtleUhhbmRsZXJzLnBvcCgpKVswXS5yZW1vdmVFdmVudExpc3RlbmVyKHRbMV0sdFsyXSl9LF9vbktleUJpbmRpbmdFdmVudDpmdW5jdGlvbih0LGUpe2lmKHRoaXMuc3RvcEtleWJvYXJkRXZlbnRQcm9wYWdhdGlvbiYmZS5zdG9wUHJvcGFnYXRpb24oKSwhZS5kZWZhdWx0UHJldmVudGVkKWZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dWzBdLHI9dFtuXVsxXTtpZihSbyhpLGUpJiYodGhpcy5fdHJpZ2dlcktleUhhbmRsZXIoaSxyLGUpLGUuZGVmYXVsdFByZXZlbnRlZCkpcmV0dXJufX0sX3RyaWdnZXJLZXlIYW5kbGVyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1PYmplY3QuY3JlYXRlKHQpO2kua2V5Ym9hcmRFdmVudD1uO3ZhciByPW5ldyBDdXN0b21FdmVudCh0LmV2ZW50LHtkZXRhaWw6aSxjYW5jZWxhYmxlOiEwfSk7dGhpc1tlXS5jYWxsKHRoaXMsciksci5kZWZhdWx0UHJldmVudGVkJiZuLnByZXZlbnREZWZhdWx0KCl9fSxEbz17cHJvcGVydGllczp7c2Nyb2xsVGFyZ2V0Ont0eXBlOkhUTUxFbGVtZW50LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRTY3JvbGxUYXJnZXR9fX0sb2JzZXJ2ZXJzOlsiX3Njcm9sbFRhcmdldENoYW5nZWQoc2Nyb2xsVGFyZ2V0LCBpc0F0dGFjaGVkKSJdLF9zaG91bGRIYXZlTGlzdGVuZXI6ITAsX3Njcm9sbFRhcmdldENoYW5nZWQ6ZnVuY3Rpb24odCxlKXtpZih0aGlzLl9vbGRTY3JvbGxUYXJnZXQmJih0aGlzLl90b2dnbGVTY3JvbGxMaXN0ZW5lcighMSx0aGlzLl9vbGRTY3JvbGxUYXJnZXQpLHRoaXMuX29sZFNjcm9sbFRhcmdldD1udWxsKSxlKWlmKCJkb2N1bWVudCI9PT10KXRoaXMuc2Nyb2xsVGFyZ2V0PXRoaXMuX2RvYztlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIG49dGhpcy5kb21Ib3N0O3RoaXMuc2Nyb2xsVGFyZ2V0PW4mJm4uJD9uLiRbdF06WWkodGhpcy5vd25lckRvY3VtZW50KS5xdWVyeVNlbGVjdG9yKCIjIit0KX1lbHNlIHRoaXMuX2lzVmFsaWRTY3JvbGxUYXJnZXQoKSYmKHRoaXMuX29sZFNjcm9sbFRhcmdldD10LHRoaXMuX3RvZ2dsZVNjcm9sbExpc3RlbmVyKHRoaXMuX3Nob3VsZEhhdmVMaXN0ZW5lcix0KSl9LF9zY3JvbGxIYW5kbGVyOmZ1bmN0aW9uIHQoKXt9LGdldCBfZGVmYXVsdFNjcm9sbFRhcmdldCgpe3JldHVybiB0aGlzLl9kb2N9LGdldCBfZG9jKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9LGdldCBfc2Nyb2xsVG9wKCl7cmV0dXJuIHRoaXMuX2lzVmFsaWRTY3JvbGxUYXJnZXQoKT90aGlzLnNjcm9sbFRhcmdldD09PXRoaXMuX2RvYz93aW5kb3cucGFnZVlPZmZzZXQ6dGhpcy5zY3JvbGxUYXJnZXQuc2Nyb2xsVG9wOjB9LGdldCBfc2Nyb2xsTGVmdCgpe3JldHVybiB0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCk/dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LnBhZ2VYT2Zmc2V0OnRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbExlZnQ6MH0sc2V0IF9zY3JvbGxUb3AodCl7dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LnNjcm9sbFRvKHdpbmRvdy5wYWdlWE9mZnNldCx0KTp0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCkmJih0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3A9dCl9LHNldCBfc2Nyb2xsTGVmdCh0KXt0aGlzLnNjcm9sbFRhcmdldD09PXRoaXMuX2RvYz93aW5kb3cuc2Nyb2xsVG8odCx3aW5kb3cucGFnZVlPZmZzZXQpOnRoaXMuX2lzVmFsaWRTY3JvbGxUYXJnZXQoKSYmKHRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbExlZnQ9dCl9LHNjcm9sbDpmdW5jdGlvbih0LGUpe3ZhciBuOyJvYmplY3QiPT10eXBlb2YgdD8obj10LmxlZnQsZT10LnRvcCk6bj10LG49bnx8MCxlPWV8fDAsdGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LnNjcm9sbFRvKG4sZSk6dGhpcy5faXNWYWxpZFNjcm9sbFRhcmdldCgpJiYodGhpcy5zY3JvbGxUYXJnZXQuc2Nyb2xsTGVmdD1uLHRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbFRvcD1lKX0sZ2V0IF9zY3JvbGxUYXJnZXRXaWR0aCgpe3JldHVybiB0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCk/dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LmlubmVyV2lkdGg6dGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0V2lkdGg6MH0sZ2V0IF9zY3JvbGxUYXJnZXRIZWlnaHQoKXtyZXR1cm4gdGhpcy5faXNWYWxpZFNjcm9sbFRhcmdldCgpP3RoaXMuc2Nyb2xsVGFyZ2V0PT09dGhpcy5fZG9jP3dpbmRvdy5pbm5lckhlaWdodDp0aGlzLnNjcm9sbFRhcmdldC5vZmZzZXRIZWlnaHQ6MH0sX2lzVmFsaWRTY3JvbGxUYXJnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zY3JvbGxUYXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudH0sX3RvZ2dsZVNjcm9sbExpc3RlbmVyOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZT09PXRoaXMuX2RvYz93aW5kb3c6ZTt0P3RoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcnx8KHRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcj10aGlzLl9zY3JvbGxIYW5kbGVyLmJpbmQodGhpcyksbi5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcikpOnRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlciYmKG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9ib3VuZFNjcm9sbEhhbmRsZXIpLHRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcj1udWxsKX0sdG9nZ2xlU2Nyb2xsTGlzdGVuZXI6ZnVuY3Rpb24odCl7dGhpcy5fc2hvdWxkSGF2ZUxpc3RlbmVyPXQsdGhpcy5fdG9nZ2xlU2Nyb2xsTGlzdGVuZXIodCx0aGlzLnNjcm9sbFRhcmdldCl9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwp2YXIgQm89bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvaVAoPzpob25lfGFkOyg/OiBVOyk/IENQVSkgT1MgKFxkKykvKSxIbz1CbyYmQm9bMV0+PTgsRm89Ii0xMDAwMHB4IixWbz0tMTAwO1JyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1tYXgtZGV2aWNlLXBpeGVsLXJhdGlvOiAxKSB7CiAgICAgICAgOmhvc3QgewogICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgICNpdGVtcyB7CiAgICAgICAgQGFwcGx5IC0taXJvbi1saXN0LWl0ZW1zLWNvbnRhaW5lcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIDpob3N0KDpub3QoW2dyaWRdKSkgI2l0ZW1zID4gOjpzbG90dGVkKCopIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgI2l0ZW1zID4gOjpzbG90dGVkKCopIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGFycmF5LXNlbGVjdG9yIGlkPSJzZWxlY3RvciIgaXRlbXM9Int7aXRlbXN9fSIgc2VsZWN0ZWQ9Int7c2VsZWN0ZWRJdGVtc319IiBzZWxlY3RlZC1pdGVtPSJ7e3NlbGVjdGVkSXRlbX19Ij48L2FycmF5LXNlbGVjdG9yPgoKICAgIDxkaXYgaWQ9Iml0ZW1zIj4KICAgICAgPHNsb3Q+PC9zbG90PgogICAgPC9kaXY+CmAsaXM6Imlyb24tbGlzdCIscHJvcGVydGllczp7aXRlbXM6e3R5cGU6QXJyYXl9LGFzOnt0eXBlOlN0cmluZyx2YWx1ZToiaXRlbSJ9LGluZGV4QXM6e3R5cGU6U3RyaW5nLHZhbHVlOiJpbmRleCJ9LHNlbGVjdGVkQXM6e3R5cGU6U3RyaW5nLHZhbHVlOiJzZWxlY3RlZCJ9LGdyaWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il9ncmlkQ2hhbmdlZCJ9LHNlbGVjdGlvbkVuYWJsZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2VsZWN0ZWRJdGVtOnt0eXBlOk9iamVjdCxub3RpZnk6ITB9LHNlbGVjdGVkSXRlbXM6e3R5cGU6T2JqZWN0LG5vdGlmeTohMH0sbXVsdGlTZWxlY3Rpb246e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2Nyb2xsT2Zmc2V0Ont0eXBlOk51bWJlcix2YWx1ZTowfX0sb2JzZXJ2ZXJzOlsiX2l0ZW1zQ2hhbmdlZChpdGVtcy4qKSIsIl9zZWxlY3Rpb25FbmFibGVkQ2hhbmdlZChzZWxlY3Rpb25FbmFibGVkKSIsIl9tdWx0aVNlbGVjdGlvbkNoYW5nZWQobXVsdGlTZWxlY3Rpb24pIiwiX3NldE92ZXJmbG93KHNjcm9sbFRhcmdldCwgc2Nyb2xsT2Zmc2V0KSJdLGJlaGF2aW9yczpbWnIsZ28sRG8scG9dLF9yYXRpbzouNSxfc2Nyb2xsZXJQYWRkaW5nVG9wOjAsX3Njcm9sbFBvc2l0aW9uOjAsX3BoeXNpY2FsU2l6ZTowLF9waHlzaWNhbEF2ZXJhZ2U6MCxfcGh5c2ljYWxBdmVyYWdlQ291bnQ6MCxfcGh5c2ljYWxUb3A6MCxfdmlydHVhbENvdW50OjAsX2VzdFNjcm9sbEhlaWdodDowLF9zY3JvbGxIZWlnaHQ6MCxfdmlld3BvcnRIZWlnaHQ6MCxfdmlld3BvcnRXaWR0aDowLF9waHlzaWNhbEl0ZW1zOm51bGwsX3BoeXNpY2FsU2l6ZXM6bnVsbCxfZmlyc3RWaXNpYmxlSW5kZXhWYWw6bnVsbCxfbGFzdFZpc2libGVJbmRleFZhbDpudWxsLF9tYXhQYWdlczoyLF9mb2N1c2VkSXRlbTpudWxsLF9mb2N1c2VkVmlydHVhbEluZGV4Oi0xLF9mb2N1c2VkUGh5c2ljYWxJbmRleDotMSxfb2Zmc2NyZWVuRm9jdXNlZEl0ZW06bnVsbCxfZm9jdXNCYWNrZmlsbEl0ZW06bnVsbCxfaXRlbXNQZXJSb3c6MSxfaXRlbVdpZHRoOjAsX3Jvd0hlaWdodDowLF90ZW1wbGF0ZUNvc3Q6MCxfcGFyZW50TW9kZWw6ITAsZ2V0IF9waHlzaWNhbEJvdHRvbSgpe3JldHVybiB0aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9waHlzaWNhbFNpemV9LGdldCBfc2Nyb2xsQm90dG9tKCl7cmV0dXJuIHRoaXMuX3Njcm9sbFBvc2l0aW9uK3RoaXMuX3ZpZXdwb3J0SGVpZ2h0fSxnZXQgX3ZpcnR1YWxFbmQoKXtyZXR1cm4gdGhpcy5fdmlydHVhbFN0YXJ0K3RoaXMuX3BoeXNpY2FsQ291bnQtMX0sZ2V0IF9oaWRkZW5Db250ZW50U2l6ZSgpe3JldHVybih0aGlzLmdyaWQ/dGhpcy5fcGh5c2ljYWxSb3dzKnRoaXMuX3Jvd0hlaWdodDp0aGlzLl9waHlzaWNhbFNpemUpLXRoaXMuX3ZpZXdwb3J0SGVpZ2h0fSxnZXQgX2l0ZW1zUGFyZW50KCl7cmV0dXJuIFlpKFlpKHRoaXMuX3VzZXJUZW1wbGF0ZSkucGFyZW50Tm9kZSl9LGdldCBfbWF4U2Nyb2xsVG9wKCl7cmV0dXJuIHRoaXMuX2VzdFNjcm9sbEhlaWdodC10aGlzLl92aWV3cG9ydEhlaWdodCt0aGlzLl9zY3JvbGxPZmZzZXR9LGdldCBfbWF4VmlydHVhbFN0YXJ0KCl7dmFyIHQ9dGhpcy5fY29udmVydEluZGV4VG9Db21wbGV0ZVJvdyh0aGlzLl92aXJ0dWFsQ291bnQpO3JldHVybiBNYXRoLm1heCgwLHQtdGhpcy5fcGh5c2ljYWxDb3VudCl9LHNldCBfdmlydHVhbFN0YXJ0KHQpe3Q9dGhpcy5fY2xhbXAodCwwLHRoaXMuX21heFZpcnR1YWxTdGFydCksdGhpcy5ncmlkJiYodC09dCV0aGlzLl9pdGVtc1BlclJvdyksdGhpcy5fdmlydHVhbFN0YXJ0VmFsPXR9LGdldCBfdmlydHVhbFN0YXJ0KCl7cmV0dXJuIHRoaXMuX3ZpcnR1YWxTdGFydFZhbHx8MH0sc2V0IF9waHlzaWNhbFN0YXJ0KHQpeyh0JT10aGlzLl9waHlzaWNhbENvdW50KTwwJiYodD10aGlzLl9waHlzaWNhbENvdW50K3QpLHRoaXMuZ3JpZCYmKHQtPXQldGhpcy5faXRlbXNQZXJSb3cpLHRoaXMuX3BoeXNpY2FsU3RhcnRWYWw9dH0sZ2V0IF9waHlzaWNhbFN0YXJ0KCl7cmV0dXJuIHRoaXMuX3BoeXNpY2FsU3RhcnRWYWx8fDB9LGdldCBfcGh5c2ljYWxFbmQoKXtyZXR1cm4odGhpcy5fcGh5c2ljYWxTdGFydCt0aGlzLl9waHlzaWNhbENvdW50LTEpJXRoaXMuX3BoeXNpY2FsQ291bnR9LHNldCBfcGh5c2ljYWxDb3VudCh0KXt0aGlzLl9waHlzaWNhbENvdW50VmFsPXR9LGdldCBfcGh5c2ljYWxDb3VudCgpe3JldHVybiB0aGlzLl9waHlzaWNhbENvdW50VmFsfHwwfSxnZXQgX29wdFBoeXNpY2FsU2l6ZSgpe3JldHVybiAwPT09dGhpcy5fdmlld3BvcnRIZWlnaHQ/MS8wOnRoaXMuX3ZpZXdwb3J0SGVpZ2h0KnRoaXMuX21heFBhZ2VzfSxnZXQgX2lzVmlzaWJsZSgpe3JldHVybiBCb29sZWFuKHRoaXMub2Zmc2V0V2lkdGh8fHRoaXMub2Zmc2V0SGVpZ2h0KX0sZ2V0IGZpcnN0VmlzaWJsZUluZGV4KCl7dmFyIHQ9dGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw7aWYobnVsbD09dCl7dmFyIGU9dGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fc2Nyb2xsT2Zmc2V0O3Q9dGhpcy5faXRlcmF0ZUl0ZW1zKChmdW5jdGlvbih0LG4pe3JldHVybihlKz10aGlzLl9nZXRQaHlzaWNhbFNpemVJbmNyZW1lbnQodCkpPnRoaXMuX3Njcm9sbFBvc2l0aW9uP3RoaXMuZ3JpZD9uLW4ldGhpcy5faXRlbXNQZXJSb3c6bjp0aGlzLmdyaWQmJnRoaXMuX3ZpcnR1YWxDb3VudC0xPT09bj9uLW4ldGhpcy5faXRlbXNQZXJSb3c6dm9pZCAwfSkpfHwwLHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPXR9cmV0dXJuIHR9LGdldCBsYXN0VmlzaWJsZUluZGV4KCl7dmFyIHQ9dGhpcy5fbGFzdFZpc2libGVJbmRleFZhbDtpZihudWxsPT10KXtpZih0aGlzLmdyaWQpdD1NYXRoLm1pbih0aGlzLl92aXJ0dWFsQ291bnQsdGhpcy5maXJzdFZpc2libGVJbmRleCt0aGlzLl9lc3RSb3dzSW5WaWV3KnRoaXMuX2l0ZW1zUGVyUm93LTEpO2Vsc2V7dmFyIGU9dGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fc2Nyb2xsT2Zmc2V0O3RoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24obixpKXtlPHRoaXMuX3Njcm9sbEJvdHRvbSYmKHQ9aSksZSs9dGhpcy5fZ2V0UGh5c2ljYWxTaXplSW5jcmVtZW50KG4pfSkpfXRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9dH1yZXR1cm4gdH0sZ2V0IF9kZWZhdWx0U2Nyb2xsVGFyZ2V0KCl7cmV0dXJuIHRoaXN9LGdldCBfdmlydHVhbFJvd0NvdW50KCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLl92aXJ0dWFsQ291bnQvdGhpcy5faXRlbXNQZXJSb3cpfSxnZXQgX2VzdFJvd3NJblZpZXcoKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuX3ZpZXdwb3J0SGVpZ2h0L3RoaXMuX3Jvd0hlaWdodCl9LGdldCBfcGh5c2ljYWxSb3dzKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLl9waHlzaWNhbENvdW50L3RoaXMuX2l0ZW1zUGVyUm93KX0sZ2V0IF9zY3JvbGxPZmZzZXQoKXtyZXR1cm4gdGhpcy5fc2Nyb2xsZXJQYWRkaW5nVG9wK3RoaXMuc2Nyb2xsT2Zmc2V0fSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2RpZEZvY3VzLmJpbmQodGhpcyksITApfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2RlYm91bmNlKCJfcmVuZGVyIix0aGlzLl9yZW5kZXIsX3QpLHRoaXMubGlzdGVuKHRoaXMsImlyb24tcmVzaXplIiwiX3Jlc2l6ZUhhbmRsZXIiKSx0aGlzLmxpc3Rlbih0aGlzLCJrZXlkb3duIiwiX2tleWRvd25IYW5kbGVyIil9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy51bmxpc3Rlbih0aGlzLCJpcm9uLXJlc2l6ZSIsIl9yZXNpemVIYW5kbGVyIiksdGhpcy51bmxpc3Rlbih0aGlzLCJrZXlkb3duIiwiX2tleWRvd25IYW5kbGVyIil9LF9zZXRPdmVyZmxvdzpmdW5jdGlvbih0KXt0aGlzLnN0eWxlLndlYmtpdE92ZXJmbG93U2Nyb2xsaW5nPXQ9PT10aGlzPyJ0b3VjaCI6IiIsdGhpcy5zdHlsZS5vdmVyZmxvd1k9dD09PXRoaXM/ImF1dG8iOiIiLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2RlYm91bmNlKCJfcmVuZGVyIix0aGlzLl9yZW5kZXIsX3QpfSx1cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXM6ZnVuY3Rpb24oKXt2YXIgdD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKTt0aGlzLl9zY3JvbGxlclBhZGRpbmdUb3A9dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzPzA6cGFyc2VJbnQodFsicGFkZGluZy10b3AiXSwxMCksdGhpcy5faXNSVEw9Qm9vbGVhbigicnRsIj09PXQuZGlyZWN0aW9uKSx0aGlzLl92aWV3cG9ydFdpZHRoPXRoaXMuJC5pdGVtcy5vZmZzZXRXaWR0aCx0aGlzLl92aWV3cG9ydEhlaWdodD10aGlzLl9zY3JvbGxUYXJnZXRIZWlnaHQsdGhpcy5ncmlkJiZ0aGlzLl91cGRhdGVHcmlkTWV0cmljcygpfSxfc2Nyb2xsSGFuZGxlcjpmdW5jdGlvbigpe3ZhciB0PU1hdGgubWF4KDAsTWF0aC5taW4odGhpcy5fbWF4U2Nyb2xsVG9wLHRoaXMuX3Njcm9sbFRvcCkpLGU9dC10aGlzLl9zY3JvbGxQb3NpdGlvbixuPWU+PTA7aWYodGhpcy5fc2Nyb2xsUG9zaXRpb249dCx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCxNYXRoLmFicyhlKT50aGlzLl9waHlzaWNhbFNpemUmJnRoaXMuX3BoeXNpY2FsU2l6ZT4wKXtlLT10aGlzLl9zY3JvbGxPZmZzZXQ7dmFyIGk9TWF0aC5yb3VuZChlL3RoaXMuX3BoeXNpY2FsQXZlcmFnZSkqdGhpcy5faXRlbXNQZXJSb3c7dGhpcy5fdmlydHVhbFN0YXJ0PXRoaXMuX3ZpcnR1YWxTdGFydCtpLHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCtpLHRoaXMuX3BoeXNpY2FsVG9wPU1hdGgubWluKE1hdGguZmxvb3IodGhpcy5fdmlydHVhbFN0YXJ0L3RoaXMuX2l0ZW1zUGVyUm93KSp0aGlzLl9waHlzaWNhbEF2ZXJhZ2UsdGhpcy5fc2Nyb2xsUG9zaXRpb24pLHRoaXMuX3VwZGF0ZSgpfWVsc2UgaWYodGhpcy5fcGh5c2ljYWxDb3VudD4wKXt2YXIgcj10aGlzLl9nZXRSZXVzYWJsZXMobik7bj8odGhpcy5fcGh5c2ljYWxUb3A9ci5waHlzaWNhbFRvcCx0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0K3IuaW5kZXhlcy5sZW5ndGgsdGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0K3IuaW5kZXhlcy5sZW5ndGgpOih0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0LXIuaW5kZXhlcy5sZW5ndGgsdGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0LXIuaW5kZXhlcy5sZW5ndGgpLHRoaXMuX3VwZGF0ZShyLmluZGV4ZXMsbj9udWxsOnIuaW5kZXhlcyksdGhpcy5fZGVib3VuY2UoIl9pbmNyZWFzZVBvb2xJZk5lZWRlZCIsdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQuYmluZCh0aGlzLDApLHZ0KX19LF9nZXRSZXVzYWJsZXM6ZnVuY3Rpb24odCl7dmFyIGUsbixpLHI9W10sbz10aGlzLl9oaWRkZW5Db250ZW50U2l6ZSp0aGlzLl9yYXRpbyxhPXRoaXMuX3ZpcnR1YWxTdGFydCxzPXRoaXMuX3ZpcnR1YWxFbmQsbD10aGlzLl9waHlzaWNhbENvdW50LGM9dGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fc2Nyb2xsT2Zmc2V0LHU9dGhpcy5fc2Nyb2xsUG9zaXRpb24saD10aGlzLl9zY3JvbGxCb3R0b207Zm9yKHQ/KGU9dGhpcy5fcGh5c2ljYWxTdGFydCxuPXUtYyk6KGU9dGhpcy5fcGh5c2ljYWxFbmQsbj10aGlzLl9waHlzaWNhbEJvdHRvbSt0aGlzLl9zY3JvbGxPZmZzZXQtaCk7bi09aT10aGlzLl9nZXRQaHlzaWNhbFNpemVJbmNyZW1lbnQoZSksIShyLmxlbmd0aD49bHx8bjw9byk7KWlmKHQpe2lmKHMrci5sZW5ndGgrMT49dGhpcy5fdmlydHVhbENvdW50KWJyZWFrO2lmKGMraT49dS10aGlzLl9zY3JvbGxPZmZzZXQpYnJlYWs7ci5wdXNoKGUpLGMrPWksZT0oZSsxKSVsfWVsc2V7aWYoYS1yLmxlbmd0aDw9MClicmVhaztpZihjK3RoaXMuX3BoeXNpY2FsU2l6ZS1pPD1oKWJyZWFrO3IucHVzaChlKSxjLT1pLGU9MD09PWU/bC0xOmUtMX1yZXR1cm57aW5kZXhlczpyLHBoeXNpY2FsVG9wOmMtdGhpcy5fc2Nyb2xsT2Zmc2V0fX0sX3VwZGF0ZTpmdW5jdGlvbih0LGUpe2lmKCEodCYmMD09PXQubGVuZ3RofHwwPT09dGhpcy5fcGh5c2ljYWxDb3VudCkpe2lmKHRoaXMuX21hbmFnZUZvY3VzKCksdGhpcy5fYXNzaWduTW9kZWxzKHQpLHRoaXMuX3VwZGF0ZU1ldHJpY3ModCksZSlmb3IoO2UubGVuZ3RoOyl7dmFyIG49ZS5wb3AoKTt0aGlzLl9waHlzaWNhbFRvcC09dGhpcy5fZ2V0UGh5c2ljYWxTaXplSW5jcmVtZW50KG4pfXRoaXMuX3Bvc2l0aW9uSXRlbXMoKSx0aGlzLl91cGRhdGVTY3JvbGxlclNpemUoKX19LF9jcmVhdGVQb29sOmZ1bmN0aW9uKHQpe3ZhciBlLG47dGhpcy5fZW5zdXJlVGVtcGxhdGl6ZWQoKTt2YXIgaT1uZXcgQXJyYXkodCk7Zm9yKGU9MDtlPHQ7ZSsrKW49dGhpcy5zdGFtcChudWxsKSxpW2VdPW4ucm9vdC5xdWVyeVNlbGVjdG9yKCIqIiksdGhpcy5faXRlbXNQYXJlbnQuYXBwZW5kQ2hpbGQobi5yb290KTtyZXR1cm4gaX0sX2lzQ2xpZW50RnVsbDpmdW5jdGlvbigpe3JldHVybiAwIT10aGlzLl9zY3JvbGxCb3R0b20mJnRoaXMuX3BoeXNpY2FsQm90dG9tLTE+PXRoaXMuX3Njcm9sbEJvdHRvbSYmdGhpcy5fcGh5c2ljYWxUb3A8PXRoaXMuX3Njcm9sbFBvc2l0aW9ufSxfaW5jcmVhc2VQb29sSWZOZWVkZWQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fY2xhbXAodGhpcy5fcGh5c2ljYWxDb3VudCt0LDMsdGhpcy5fdmlydHVhbENvdW50LXRoaXMuX3ZpcnR1YWxTdGFydCk7aWYoZT10aGlzLl9jb252ZXJ0SW5kZXhUb0NvbXBsZXRlUm93KGUpLHRoaXMuZ3JpZCl7dmFyIG49ZSV0aGlzLl9pdGVtc1BlclJvdztuJiZlLW48PXRoaXMuX3BoeXNpY2FsQ291bnQmJihlKz10aGlzLl9pdGVtc1BlclJvdyksZS09bn12YXIgaT1lLXRoaXMuX3BoeXNpY2FsQ291bnQscj1NYXRoLnJvdW5kKC41KnRoaXMuX3BoeXNpY2FsQ291bnQpO2lmKCEoaTwwKSl7aWYoaT4wKXt2YXIgbz13aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7W10ucHVzaC5hcHBseSh0aGlzLl9waHlzaWNhbEl0ZW1zLHRoaXMuX2NyZWF0ZVBvb2woaSkpO2Zvcih2YXIgYT0wO2E8aTthKyspdGhpcy5fcGh5c2ljYWxTaXplcy5wdXNoKDApO3RoaXMuX3BoeXNpY2FsQ291bnQ9dGhpcy5fcGh5c2ljYWxDb3VudCtpLHRoaXMuX3BoeXNpY2FsU3RhcnQ+dGhpcy5fcGh5c2ljYWxFbmQmJnRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4KSYmdGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4KTx0aGlzLl9waHlzaWNhbEVuZCYmKHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCtpKSx0aGlzLl91cGRhdGUoKSx0aGlzLl90ZW1wbGF0ZUNvc3Q9KHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKS1vKS9pLHI9TWF0aC5yb3VuZCguNSp0aGlzLl9waHlzaWNhbENvdW50KX10aGlzLl92aXJ0dWFsRW5kPj10aGlzLl92aXJ0dWFsQ291bnQtMXx8MD09PXJ8fCh0aGlzLl9pc0NsaWVudEZ1bGwoKT90aGlzLl9waHlzaWNhbFNpemU8dGhpcy5fb3B0UGh5c2ljYWxTaXplJiZ0aGlzLl9kZWJvdW5jZSgiX2luY3JlYXNlUG9vbElmTmVlZGVkIix0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZC5iaW5kKHRoaXMsdGhpcy5fY2xhbXAoTWF0aC5yb3VuZCg1MC90aGlzLl90ZW1wbGF0ZUNvc3QpLDEscikpLHl0KTp0aGlzLl9kZWJvdW5jZSgiX2luY3JlYXNlUG9vbElmTmVlZGVkIix0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZC5iaW5kKHRoaXMsciksdnQpKX19LF9yZW5kZXI6ZnVuY3Rpb24oKXtpZih0aGlzLmlzQXR0YWNoZWQmJnRoaXMuX2lzVmlzaWJsZSlpZigwIT09dGhpcy5fcGh5c2ljYWxDb3VudCl7dmFyIHQ9dGhpcy5fZ2V0UmV1c2FibGVzKCEwKTt0aGlzLl9waHlzaWNhbFRvcD10LnBoeXNpY2FsVG9wLHRoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQrdC5pbmRleGVzLmxlbmd0aCx0aGlzLl9waHlzaWNhbFN0YXJ0PXRoaXMuX3BoeXNpY2FsU3RhcnQrdC5pbmRleGVzLmxlbmd0aCx0aGlzLl91cGRhdGUodC5pbmRleGVzKSx0aGlzLl91cGRhdGUoKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKX1lbHNlIHRoaXMuX3ZpcnR1YWxDb3VudD4wJiYodGhpcy51cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXMoKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgzKSl9LF9lbnN1cmVUZW1wbGF0aXplZDpmdW5jdGlvbigpe2lmKCF0aGlzLmN0b3Ipe3RoaXMuX3VzZXJUZW1wbGF0ZT10aGlzLnF1ZXJ5RWZmZWN0aXZlQ2hpbGRyZW4oInRlbXBsYXRlIiksdGhpcy5fdXNlclRlbXBsYXRlfHxjb25zb2xlLndhcm4oImlyb24tbGlzdCByZXF1aXJlcyBhIHRlbXBsYXRlIHRvIGJlIHByb3ZpZGVkIGluIGxpZ2h0LWRvbSIpO3ZhciB0PXtfX2tleV9fOiEwfTt0W3RoaXMuYXNdPSEwLHRbdGhpcy5pbmRleEFzXT0hMCx0W3RoaXMuc2VsZWN0ZWRBc109ITAsdC50YWJJbmRleD0hMCx0aGlzLl9pbnN0YW5jZVByb3BzPXQsdGhpcy50ZW1wbGF0aXplKHRoaXMuX3VzZXJUZW1wbGF0ZSx0aGlzLm11dGFibGVEYXRhKX19LF9ncmlkQ2hhbmdlZDpmdW5jdGlvbih0LGUpe3ZvaWQgMCE9PWUmJih0aGlzLm5vdGlmeVJlc2l6ZSgpLERpKCksdCYmdGhpcy5fdXBkYXRlR3JpZE1ldHJpY3MoKSl9LF9pdGVtc0NoYW5nZWQ6ZnVuY3Rpb24odCl7aWYoIml0ZW1zIj09PXQucGF0aCl0aGlzLl92aXJ0dWFsU3RhcnQ9MCx0aGlzLl9waHlzaWNhbFRvcD0wLHRoaXMuX3ZpcnR1YWxDb3VudD10aGlzLml0ZW1zP3RoaXMuaXRlbXMubGVuZ3RoOjAsdGhpcy5fcGh5c2ljYWxJbmRleEZvcktleT17fSx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9waHlzaWNhbENvdW50PXRoaXMuX3BoeXNpY2FsQ291bnR8fDAsdGhpcy5fcGh5c2ljYWxJdGVtcz10aGlzLl9waHlzaWNhbEl0ZW1zfHxbXSx0aGlzLl9waHlzaWNhbFNpemVzPXRoaXMuX3BoeXNpY2FsU2l6ZXN8fFtdLHRoaXMuX3BoeXNpY2FsU3RhcnQ9MCx0aGlzLl9zY3JvbGxUb3A+dGhpcy5fc2Nyb2xsT2Zmc2V0JiZ0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKDApLHRoaXMuX3JlbW92ZUZvY3VzZWRJdGVtKCksdGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLHRoaXMuX3JlbmRlcixfdCk7ZWxzZSBpZigiaXRlbXMuc3BsaWNlcyI9PT10LnBhdGgpe2lmKHRoaXMuX2FkanVzdFZpcnR1YWxJbmRleCh0LnZhbHVlLmluZGV4U3BsaWNlcyksdGhpcy5fdmlydHVhbENvdW50PXRoaXMuaXRlbXM/dGhpcy5pdGVtcy5sZW5ndGg6MCx0LnZhbHVlLmluZGV4U3BsaWNlcy5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5hZGRlZENvdW50PjB8fHQucmVtb3ZlZC5sZW5ndGg+MH0pKSl7dmFyIGU9dGhpcy5fZ2V0QWN0aXZlRWxlbWVudCgpO3RoaXMuY29udGFpbnMoZSkmJmUuYmx1cigpfXZhciBuPXQudmFsdWUuaW5kZXhTcGxpY2VzLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmluZGV4K3QuYWRkZWRDb3VudD49dGhpcy5fdmlydHVhbFN0YXJ0JiZ0LmluZGV4PD10aGlzLl92aXJ0dWFsRW5kfSksdGhpcyk7dGhpcy5faXNDbGllbnRGdWxsKCkmJiFufHx0aGlzLl9kZWJvdW5jZSgiX3JlbmRlciIsdGhpcy5fcmVuZGVyLF90KX1lbHNlIml0ZW1zLmxlbmd0aCIhPT10LnBhdGgmJnRoaXMuX2ZvcndhcmRJdGVtUGF0aCh0LnBhdGgsdC52YWx1ZSl9LF9mb3J3YXJkSXRlbVBhdGg6ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIsbz0odD10LnNsaWNlKDYpKS5pbmRleE9mKCIuIik7LTE9PT1vJiYobz10Lmxlbmd0aCk7dmFyIGE9dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pLHM9cGFyc2VJbnQodC5zdWJzdHJpbmcoMCxvKSwxMCk7KG49dGhpcy5faXNJbmRleFJlbmRlcmVkKHMpKT8oaT10aGlzLl9nZXRQaHlzaWNhbEluZGV4KHMpLHI9dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fcGh5c2ljYWxJdGVtc1tpXSkpOmEmJihyPWEpLHImJnJbdGhpcy5pbmRleEFzXT09PXMmJih0PXQuc3Vic3RyaW5nKG8rMSksci5fc2V0UGVuZGluZ1Byb3BlcnR5T3JQYXRoKHQ9dGhpcy5hcysodD8iLiIrdDoiIiksZSwhMSwhMCksci5fZmx1c2hQcm9wZXJ0aWVzJiZyLl9mbHVzaFByb3BlcnRpZXMoKSxuJiYodGhpcy5fdXBkYXRlTWV0cmljcyhbaV0pLHRoaXMuX3Bvc2l0aW9uSXRlbXMoKSx0aGlzLl91cGRhdGVTY3JvbGxlclNpemUoKSkpfSxfYWRqdXN0VmlydHVhbEluZGV4OmZ1bmN0aW9uKHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7aWYodC5yZW1vdmVkLmZvckVhY2godGhpcy5fcmVtb3ZlSXRlbSx0aGlzKSx0LmluZGV4PHRoaXMuX3ZpcnR1YWxTdGFydCl7dmFyIGU9TWF0aC5tYXgodC5hZGRlZENvdW50LXQucmVtb3ZlZC5sZW5ndGgsdC5pbmRleC10aGlzLl92aXJ0dWFsU3RhcnQpO3RoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQrZSx0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4Pj0wJiYodGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD10aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4K2UpfX0pLHRoaXMpfSxfcmVtb3ZlSXRlbTpmdW5jdGlvbih0KXt0aGlzLiQuc2VsZWN0b3IuZGVzZWxlY3QodCksdGhpcy5fZm9jdXNlZEl0ZW0mJnRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX2ZvY3VzZWRJdGVtKVt0aGlzLmFzXT09PXQmJnRoaXMuX3JlbW92ZUZvY3VzZWRJdGVtKCl9LF9pdGVyYXRlSXRlbXM6ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIsbztpZigyPT09YXJndW1lbnRzLmxlbmd0aCYmZSl7Zm9yKG89MDtvPGUubGVuZ3RoO28rKylpZihpPXRoaXMuX2NvbXB1dGVWaWR4KG49ZVtvXSksbnVsbCE9KHI9dC5jYWxsKHRoaXMsbixpKSkpcmV0dXJuIHJ9ZWxzZXtmb3Iobj10aGlzLl9waHlzaWNhbFN0YXJ0LGk9dGhpcy5fdmlydHVhbFN0YXJ0O248dGhpcy5fcGh5c2ljYWxDb3VudDtuKyssaSsrKWlmKG51bGwhPShyPXQuY2FsbCh0aGlzLG4saSkpKXJldHVybiByO2ZvcihuPTA7bjx0aGlzLl9waHlzaWNhbFN0YXJ0O24rKyxpKyspaWYobnVsbCE9KHI9dC5jYWxsKHRoaXMsbixpKSkpcmV0dXJuIHJ9fSxfY29tcHV0ZVZpZHg6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PXRoaXMuX3BoeXNpY2FsU3RhcnQ/dGhpcy5fdmlydHVhbFN0YXJ0Kyh0LXRoaXMuX3BoeXNpY2FsU3RhcnQpOnRoaXMuX3ZpcnR1YWxTdGFydCsodGhpcy5fcGh5c2ljYWxDb3VudC10aGlzLl9waHlzaWNhbFN0YXJ0KSt0fSxfYXNzaWduTW9kZWxzOmZ1bmN0aW9uKHQpe3RoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9waHlzaWNhbEl0ZW1zW3RdLGk9dGhpcy5pdGVtcyYmdGhpcy5pdGVtc1tlXTtpZihudWxsIT1pKXt2YXIgcj10aGlzLm1vZGVsRm9yRWxlbWVudChuKTtyLl9fa2V5X189bnVsbCx0aGlzLl9mb3J3YXJkUHJvcGVydHkocix0aGlzLmFzLGkpLHRoaXMuX2ZvcndhcmRQcm9wZXJ0eShyLHRoaXMuc2VsZWN0ZWRBcyx0aGlzLiQuc2VsZWN0b3IuaXNTZWxlY3RlZChpKSksdGhpcy5fZm9yd2FyZFByb3BlcnR5KHIsdGhpcy5pbmRleEFzLGUpLHRoaXMuX2ZvcndhcmRQcm9wZXJ0eShyLCJ0YWJJbmRleCIsdGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD09PWU/MDotMSksdGhpcy5fcGh5c2ljYWxJbmRleEZvcktleVtyLl9fa2V5X19dPXQsci5fZmx1c2hQcm9wZXJ0aWVzJiZyLl9mbHVzaFByb3BlcnRpZXMoITApLG4ucmVtb3ZlQXR0cmlidXRlKCJoaWRkZW4iKX1lbHNlIG4uc2V0QXR0cmlidXRlKCJoaWRkZW4iLCIiKX0pLHQpfSxfdXBkYXRlTWV0cmljczpmdW5jdGlvbih0KXtEaSgpO3ZhciBlPTAsbj0wLGk9dGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQscj10aGlzLl9waHlzaWNhbEF2ZXJhZ2U7dGhpcy5faXRlcmF0ZUl0ZW1zKChmdW5jdGlvbih0LGkpe24rPXRoaXMuX3BoeXNpY2FsU2l6ZXNbdF0sdGhpcy5fcGh5c2ljYWxTaXplc1t0XT10aGlzLl9waHlzaWNhbEl0ZW1zW3RdLm9mZnNldEhlaWdodCxlKz10aGlzLl9waHlzaWNhbFNpemVzW3RdLHRoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50Kz10aGlzLl9waHlzaWNhbFNpemVzW3RdPzE6MH0pLHQpLHRoaXMuZ3JpZD8odGhpcy5fdXBkYXRlR3JpZE1ldHJpY3MoKSx0aGlzLl9waHlzaWNhbFNpemU9TWF0aC5jZWlsKHRoaXMuX3BoeXNpY2FsQ291bnQvdGhpcy5faXRlbXNQZXJSb3cpKnRoaXMuX3Jvd0hlaWdodCk6KG49MT09PXRoaXMuX2l0ZW1zUGVyUm93P246TWF0aC5jZWlsKHRoaXMuX3BoeXNpY2FsQ291bnQvdGhpcy5faXRlbXNQZXJSb3cpKnRoaXMuX3Jvd0hlaWdodCx0aGlzLl9waHlzaWNhbFNpemU9dGhpcy5fcGh5c2ljYWxTaXplK2Utbix0aGlzLl9pdGVtc1BlclJvdz0xKSx0aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudCE9PWkmJih0aGlzLl9waHlzaWNhbEF2ZXJhZ2U9TWF0aC5yb3VuZCgocippK2UpL3RoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50KSl9LF91cGRhdGVHcmlkTWV0cmljczpmdW5jdGlvbigpe3RoaXMuX2l0ZW1XaWR0aD10aGlzLl9waHlzaWNhbENvdW50PjA/dGhpcy5fcGh5c2ljYWxJdGVtc1swXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDoyMDAsdGhpcy5fcm93SGVpZ2h0PXRoaXMuX3BoeXNpY2FsQ291bnQ+MD90aGlzLl9waHlzaWNhbEl0ZW1zWzBdLm9mZnNldEhlaWdodDoyMDAsdGhpcy5faXRlbXNQZXJSb3c9dGhpcy5faXRlbVdpZHRoP01hdGguZmxvb3IodGhpcy5fdmlld3BvcnRXaWR0aC90aGlzLl9pdGVtV2lkdGgpOnRoaXMuX2l0ZW1zUGVyUm93fSxfcG9zaXRpb25JdGVtczpmdW5jdGlvbigpe3RoaXMuX2FkanVzdFNjcm9sbFBvc2l0aW9uKCk7dmFyIHQ9dGhpcy5fcGh5c2ljYWxUb3A7aWYodGhpcy5ncmlkKXt2YXIgZT0odGhpcy5fdmlld3BvcnRXaWR0aC10aGlzLl9pdGVtc1BlclJvdyp0aGlzLl9pdGVtV2lkdGgpLzI7dGhpcy5faXRlcmF0ZUl0ZW1zKChmdW5jdGlvbihuLGkpe3ZhciByPU1hdGguZmxvb3IoaSV0aGlzLl9pdGVtc1BlclJvdyp0aGlzLl9pdGVtV2lkdGgrZSk7dGhpcy5faXNSVEwmJihyKj0tMSksdGhpcy50cmFuc2xhdGUzZChyKyJweCIsdCsicHgiLDAsdGhpcy5fcGh5c2ljYWxJdGVtc1tuXSksdGhpcy5fc2hvdWxkUmVuZGVyTmV4dFJvdyhpKSYmKHQrPXRoaXMuX3Jvd0hlaWdodCl9KSl9ZWxzZXtjb25zdCBlPVtdO3RoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24obixpKXtjb25zdCByPXRoaXMuX3BoeXNpY2FsSXRlbXNbbl07dGhpcy50cmFuc2xhdGUzZCgwLHQrInB4IiwwLHIpLHQrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbbl07Y29uc3Qgbz1yLmlkO28mJmUucHVzaChvKX0pKSxlLmxlbmd0aCYmdGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtb3ducyIsZS5qb2luKCIgIikpfX0sX2dldFBoeXNpY2FsU2l6ZUluY3JlbWVudDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ncmlkP3RoaXMuX2NvbXB1dGVWaWR4KHQpJXRoaXMuX2l0ZW1zUGVyUm93IT10aGlzLl9pdGVtc1BlclJvdy0xPzA6dGhpcy5fcm93SGVpZ2h0OnRoaXMuX3BoeXNpY2FsU2l6ZXNbdF19LF9zaG91bGRSZW5kZXJOZXh0Um93OmZ1bmN0aW9uKHQpe3JldHVybiB0JXRoaXMuX2l0ZW1zUGVyUm93PT10aGlzLl9pdGVtc1BlclJvdy0xfSxfYWRqdXN0U2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24oKXt2YXIgdD0wPT09dGhpcy5fdmlydHVhbFN0YXJ0P3RoaXMuX3BoeXNpY2FsVG9wOk1hdGgubWluKHRoaXMuX3Njcm9sbFBvc2l0aW9uK3RoaXMuX3BoeXNpY2FsVG9wLDApO2lmKDAhPT10KXt0aGlzLl9waHlzaWNhbFRvcD10aGlzLl9waHlzaWNhbFRvcC10O3ZhciBlPXRoaXMuX3Njcm9sbFBvc2l0aW9uOyFIbyYmZT4wJiZ0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKGUtdCl9fSxfcmVzZXRTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbih0KXt0aGlzLnNjcm9sbFRhcmdldCYmdD49MCYmKHRoaXMuX3Njcm9sbFRvcD10LHRoaXMuX3Njcm9sbFBvc2l0aW9uPXRoaXMuX3Njcm9sbFRvcCl9LF91cGRhdGVTY3JvbGxlclNpemU6ZnVuY3Rpb24odCl7dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0PXRoaXMuZ3JpZD90aGlzLl92aXJ0dWFsUm93Q291bnQqdGhpcy5fcm93SGVpZ2h0OnRoaXMuX3BoeXNpY2FsQm90dG9tK01hdGgubWF4KHRoaXMuX3ZpcnR1YWxDb3VudC10aGlzLl9waHlzaWNhbENvdW50LXRoaXMuX3ZpcnR1YWxTdGFydCwwKSp0aGlzLl9waHlzaWNhbEF2ZXJhZ2UsKCh0PSh0PSh0PXR8fDA9PT10aGlzLl9zY3JvbGxIZWlnaHQpfHx0aGlzLl9zY3JvbGxQb3NpdGlvbj49dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0LXRoaXMuX3BoeXNpY2FsU2l6ZSl8fHRoaXMuZ3JpZCYmdGhpcy4kLml0ZW1zLnN0eWxlLmhlaWdodDx0aGlzLl9lc3RTY3JvbGxIZWlnaHQpfHxNYXRoLmFicyh0aGlzLl9lc3RTY3JvbGxIZWlnaHQtdGhpcy5fc2Nyb2xsSGVpZ2h0KT49dGhpcy5fdmlld3BvcnRIZWlnaHQpJiYodGhpcy4kLml0ZW1zLnN0eWxlLmhlaWdodD10aGlzLl9lc3RTY3JvbGxIZWlnaHQrInB4Iix0aGlzLl9zY3JvbGxIZWlnaHQ9dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0KX0sc2Nyb2xsVG9JdGVtOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNjcm9sbFRvSW5kZXgodGhpcy5pdGVtcy5pbmRleE9mKHQpKX0sc2Nyb2xsVG9JbmRleDpmdW5jdGlvbih0KXtpZighKCJudW1iZXIiIT10eXBlb2YgdHx8dDwwfHx0PnRoaXMuaXRlbXMubGVuZ3RoLTEpJiYoRGkoKSwwIT09dGhpcy5fcGh5c2ljYWxDb3VudCkpe3Q9dGhpcy5fY2xhbXAodCwwLHRoaXMuX3ZpcnR1YWxDb3VudC0xKSwoIXRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0KXx8dD49dGhpcy5fbWF4VmlydHVhbFN0YXJ0KSYmKHRoaXMuX3ZpcnR1YWxTdGFydD10aGlzLmdyaWQ/dC0yKnRoaXMuX2l0ZW1zUGVyUm93OnQtMSksdGhpcy5fbWFuYWdlRm9jdXMoKSx0aGlzLl9hc3NpZ25Nb2RlbHMoKSx0aGlzLl91cGRhdGVNZXRyaWNzKCksdGhpcy5fcGh5c2ljYWxUb3A9TWF0aC5mbG9vcih0aGlzLl92aXJ0dWFsU3RhcnQvdGhpcy5faXRlbXNQZXJSb3cpKnRoaXMuX3BoeXNpY2FsQXZlcmFnZTtmb3IodmFyIGU9dGhpcy5fcGh5c2ljYWxTdGFydCxuPXRoaXMuX3ZpcnR1YWxTdGFydCxpPTAscj10aGlzLl9oaWRkZW5Db250ZW50U2l6ZTtuPHQmJmk8PXI7KWkrPXRoaXMuX2dldFBoeXNpY2FsU2l6ZUluY3JlbWVudChlKSxlPShlKzEpJXRoaXMuX3BoeXNpY2FsQ291bnQsbisrO3RoaXMuX3VwZGF0ZVNjcm9sbGVyU2l6ZSghMCksdGhpcy5fcG9zaXRpb25JdGVtcygpLHRoaXMuX3Jlc2V0U2Nyb2xsUG9zaXRpb24odGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fc2Nyb2xsT2Zmc2V0K2kpLHRoaXMuX2luY3JlYXNlUG9vbElmTmVlZGVkKDApLHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsfX0sX3Jlc2V0QXZlcmFnZTpmdW5jdGlvbigpe3RoaXMuX3BoeXNpY2FsQXZlcmFnZT0wLHRoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50PTB9LF9yZXNpemVIYW5kbGVyOmZ1bmN0aW9uKCl7dGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLChmdW5jdGlvbigpe3RoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2lzVmlzaWJsZT8odGhpcy51cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXMoKSx0aGlzLnRvZ2dsZVNjcm9sbExpc3RlbmVyKCEwKSx0aGlzLl9yZXNldEF2ZXJhZ2UoKSx0aGlzLl9yZW5kZXIoKSk6dGhpcy50b2dnbGVTY3JvbGxMaXN0ZW5lcighMSl9KSxfdCl9LHNlbGVjdEl0ZW06ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VsZWN0SW5kZXgodGhpcy5pdGVtcy5pbmRleE9mKHQpKX0sc2VsZWN0SW5kZXg6ZnVuY3Rpb24odCl7aWYoISh0PDB8fHQ+PXRoaXMuX3ZpcnR1YWxDb3VudCkpe2lmKCF0aGlzLm11bHRpU2VsZWN0aW9uJiZ0aGlzLnNlbGVjdGVkSXRlbSYmdGhpcy5jbGVhclNlbGVjdGlvbigpLHRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0KSl7dmFyIGU9dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fcGh5c2ljYWxJdGVtc1t0aGlzLl9nZXRQaHlzaWNhbEluZGV4KHQpXSk7ZSYmKGVbdGhpcy5zZWxlY3RlZEFzXT0hMCksdGhpcy51cGRhdGVTaXplRm9ySW5kZXgodCl9dGhpcy4kLnNlbGVjdG9yLnNlbGVjdEluZGV4KHQpfX0sZGVzZWxlY3RJdGVtOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRlc2VsZWN0SW5kZXgodGhpcy5pdGVtcy5pbmRleE9mKHQpKX0sZGVzZWxlY3RJbmRleDpmdW5jdGlvbih0KXt0PDB8fHQ+PXRoaXMuX3ZpcnR1YWxDb3VudHx8KHRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0KSYmKHRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX3BoeXNpY2FsSXRlbXNbdGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0KV0pW3RoaXMuc2VsZWN0ZWRBc109ITEsdGhpcy51cGRhdGVTaXplRm9ySW5kZXgodCkpLHRoaXMuJC5zZWxlY3Rvci5kZXNlbGVjdEluZGV4KHQpKX0sdG9nZ2xlU2VsZWN0aW9uRm9ySXRlbTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50b2dnbGVTZWxlY3Rpb25Gb3JJbmRleCh0aGlzLml0ZW1zLmluZGV4T2YodCkpfSx0b2dnbGVTZWxlY3Rpb25Gb3JJbmRleDpmdW5jdGlvbih0KXsodGhpcy4kLnNlbGVjdG9yLmlzSW5kZXhTZWxlY3RlZD90aGlzLiQuc2VsZWN0b3IuaXNJbmRleFNlbGVjdGVkKHQpOnRoaXMuJC5zZWxlY3Rvci5pc1NlbGVjdGVkKHRoaXMuaXRlbXNbdF0pKT90aGlzLmRlc2VsZWN0SW5kZXgodCk6dGhpcy5zZWxlY3RJbmRleCh0KX0sY2xlYXJTZWxlY3Rpb246ZnVuY3Rpb24oKXt0aGlzLl9pdGVyYXRlSXRlbXMoKGZ1bmN0aW9uKHQsZSl7dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fcGh5c2ljYWxJdGVtc1t0XSlbdGhpcy5zZWxlY3RlZEFzXT0hMX0pKSx0aGlzLiQuc2VsZWN0b3IuY2xlYXJTZWxlY3Rpb24oKX0sX3NlbGVjdGlvbkVuYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKHQpeyh0P3RoaXMubGlzdGVuOnRoaXMudW5saXN0ZW4pLmNhbGwodGhpcyx0aGlzLCJ0YXAiLCJfc2VsZWN0aW9uSGFuZGxlciIpfSxfc2VsZWN0aW9uSGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLm1vZGVsRm9yRWxlbWVudCh0LnRhcmdldCk7aWYoZSl7dmFyIG4saSxyPVlpKHQpLnBhdGhbMF0sbz10aGlzLl9nZXRBY3RpdmVFbGVtZW50KCksYT10aGlzLl9waHlzaWNhbEl0ZW1zW3RoaXMuX2dldFBoeXNpY2FsSW5kZXgoZVt0aGlzLmluZGV4QXNdKV07ImlucHV0IiE9PXIubG9jYWxOYW1lJiYiYnV0dG9uIiE9PXIubG9jYWxOYW1lJiYic2VsZWN0IiE9PXIubG9jYWxOYW1lJiYobj1lLnRhYkluZGV4LGUudGFiSW5kZXg9Vm8saT1vP28udGFiSW5kZXg6LTEsZS50YWJJbmRleD1uLG8mJmEhPT1vJiZhLmNvbnRhaW5zKG8pJiZpIT09Vm98fHRoaXMudG9nZ2xlU2VsZWN0aW9uRm9ySXRlbShlW3RoaXMuYXNdKSl9fSxfbXVsdGlTZWxlY3Rpb25DaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuY2xlYXJTZWxlY3Rpb24oKSx0aGlzLiQuc2VsZWN0b3IubXVsdGk9dH0sdXBkYXRlU2l6ZUZvckl0ZW06ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudXBkYXRlU2l6ZUZvckluZGV4KHRoaXMuaXRlbXMuaW5kZXhPZih0KSl9LHVwZGF0ZVNpemVGb3JJbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXNJbmRleFJlbmRlcmVkKHQpPyh0aGlzLl91cGRhdGVNZXRyaWNzKFt0aGlzLl9nZXRQaHlzaWNhbEluZGV4KHQpXSksdGhpcy5fcG9zaXRpb25JdGVtcygpLG51bGwpOm51bGx9LF9tYW5hZ2VGb2N1czpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg7dD49MCYmdDx0aGlzLl92aXJ0dWFsQ291bnQ/dGhpcy5faXNJbmRleFJlbmRlcmVkKHQpP3RoaXMuX3Jlc3RvcmVGb2N1c2VkSXRlbSgpOnRoaXMuX2NyZWF0ZUZvY3VzQmFja2ZpbGxJdGVtKCk6dGhpcy5fdmlydHVhbENvdW50PjAmJnRoaXMuX3BoeXNpY2FsQ291bnQ+MCYmKHRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4PXRoaXMuX3BoeXNpY2FsU3RhcnQsdGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD10aGlzLl92aXJ0dWFsU3RhcnQsdGhpcy5fZm9jdXNlZEl0ZW09dGhpcy5fcGh5c2ljYWxJdGVtc1t0aGlzLl9waHlzaWNhbFN0YXJ0XSl9LF9jb252ZXJ0SW5kZXhUb0NvbXBsZXRlUm93OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pdGVtc1BlclJvdz10aGlzLl9pdGVtc1BlclJvd3x8MSx0aGlzLmdyaWQ/TWF0aC5jZWlsKHQvdGhpcy5faXRlbXNQZXJSb3cpKnRoaXMuX2l0ZW1zUGVyUm93OnR9LF9pc0luZGV4UmVuZGVyZWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PXRoaXMuX3ZpcnR1YWxTdGFydCYmdDw9dGhpcy5fdmlydHVhbEVuZH0sX2lzSW5kZXhWaXNpYmxlOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj10aGlzLmZpcnN0VmlzaWJsZUluZGV4JiZ0PD10aGlzLmxhc3RWaXNpYmxlSW5kZXh9LF9nZXRQaHlzaWNhbEluZGV4OmZ1bmN0aW9uKHQpe3JldHVybih0aGlzLl9waHlzaWNhbFN0YXJ0Kyh0LXRoaXMuX3ZpcnR1YWxTdGFydCkpJXRoaXMuX3BoeXNpY2FsQ291bnR9LGZvY3VzSXRlbTpmdW5jdGlvbih0KXt0aGlzLl9mb2N1c1BoeXNpY2FsSXRlbSh0KX0sX2ZvY3VzUGh5c2ljYWxJdGVtOmZ1bmN0aW9uKHQpe2lmKCEodDwwfHx0Pj10aGlzLl92aXJ0dWFsQ291bnQpKXt0aGlzLl9yZXN0b3JlRm9jdXNlZEl0ZW0oKSx0aGlzLl9pc0luZGV4UmVuZGVyZWQodCl8fHRoaXMuc2Nyb2xsVG9JbmRleCh0KTt2YXIgZSxuPXRoaXMuX3BoeXNpY2FsSXRlbXNbdGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0KV0saT10aGlzLm1vZGVsRm9yRWxlbWVudChuKTtpLnRhYkluZGV4PVZvLG4udGFiSW5kZXg9PT1WbyYmKGU9biksZXx8KGU9WWkobikucXVlcnlTZWxlY3RvcignW3RhYmluZGV4PSItMTAwIl0nKSksaS50YWJJbmRleD0wLHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9dCxlJiZlLmZvY3VzKCl9fSxfcmVtb3ZlRm9jdXNlZEl0ZW06ZnVuY3Rpb24oKXt0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSYmdGhpcy5faXRlbXNQYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pLHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtPW51bGwsdGhpcy5fZm9jdXNCYWNrZmlsbEl0ZW09bnVsbCx0aGlzLl9mb2N1c2VkSXRlbT1udWxsLHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9LTEsdGhpcy5fZm9jdXNlZFBoeXNpY2FsSW5kZXg9LTF9LF9jcmVhdGVGb2N1c0JhY2tmaWxsSXRlbTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4O2lmKCEodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW18fHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg8MCkpe2lmKCF0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbSl7dmFyIGU9dGhpcy5zdGFtcChudWxsKTt0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbT1lLnJvb3QucXVlcnlTZWxlY3RvcigiKiIpLHRoaXMuX2l0ZW1zUGFyZW50LmFwcGVuZENoaWxkKGUucm9vdCl9dGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW09dGhpcy5fcGh5c2ljYWxJdGVtc1t0XSx0aGlzLm1vZGVsRm9yRWxlbWVudCh0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSkudGFiSW5kZXg9MCx0aGlzLl9waHlzaWNhbEl0ZW1zW3RdPXRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtLHRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4PXQsdGhpcy50cmFuc2xhdGUzZCgwLEZvLDAsdGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pfX0sX3Jlc3RvcmVGb2N1c2VkSXRlbTpmdW5jdGlvbigpe2lmKHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtJiYhKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg8MCkpe3RoaXMuX2Fzc2lnbk1vZGVscygpO3ZhciB0PXRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4PXRoaXMuX2dldFBoeXNpY2FsSW5kZXgodGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCksZT10aGlzLl9waHlzaWNhbEl0ZW1zW3RdO2lmKGUpe3ZhciBuPXRoaXMubW9kZWxGb3JFbGVtZW50KGUpLGk9dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pO25bdGhpcy5hc109PT1pW3RoaXMuYXNdPyh0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbT1lLG4udGFiSW5kZXg9LTEsdGhpcy5fcGh5c2ljYWxJdGVtc1t0XT10aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSx0aGlzLnRyYW5zbGF0ZTNkKDAsRm8sMCx0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbSkpOih0aGlzLl9yZW1vdmVGb2N1c2VkSXRlbSgpLHRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtPW51bGwpLHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtPW51bGx9fX0sX2RpZEZvY3VzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubW9kZWxGb3JFbGVtZW50KHQudGFyZ2V0KSxuPXRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX2ZvY3VzZWRJdGVtKSxpPW51bGwhPT10aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSxyPXRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg7ZSYmKG49PT1lP3RoaXMuX2lzSW5kZXhWaXNpYmxlKHIpfHx0aGlzLnNjcm9sbFRvSW5kZXgocik6KHRoaXMuX3Jlc3RvcmVGb2N1c2VkSXRlbSgpLG4mJihuLnRhYkluZGV4PS0xKSxlLnRhYkluZGV4PTAsdGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD1yPWVbdGhpcy5pbmRleEFzXSx0aGlzLl9mb2N1c2VkUGh5c2ljYWxJbmRleD10aGlzLl9nZXRQaHlzaWNhbEluZGV4KHIpLHRoaXMuX2ZvY3VzZWRJdGVtPXRoaXMuX3BoeXNpY2FsSXRlbXNbdGhpcy5fZm9jdXNlZFBoeXNpY2FsSW5kZXhdLGkmJiF0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSYmdGhpcy5fdXBkYXRlKCkpKX0sX2tleWRvd25IYW5kbGVyOmZ1bmN0aW9uKHQpe3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgNDA6dGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleDx0aGlzLl92aXJ0dWFsQ291bnQtMSYmdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgrKHRoaXMuZ3JpZD90aGlzLl9pdGVtc1BlclJvdzoxKSk7YnJlYWs7Y2FzZSAzOTp0aGlzLmdyaWQmJnRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgrKHRoaXMuX2lzUlRMPy0xOjEpKTticmVhaztjYXNlIDM4OnRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg+MCYmdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgtKHRoaXMuZ3JpZD90aGlzLl9pdGVtc1BlclJvdzoxKSk7YnJlYWs7Y2FzZSAzNzp0aGlzLmdyaWQmJnRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgrKHRoaXMuX2lzUlRMPzE6LTEpKTticmVhaztjYXNlIDEzOnRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgpLHRoaXMuc2VsZWN0aW9uRW5hYmxlZCYmdGhpcy5fc2VsZWN0aW9uSGFuZGxlcih0KX19LF9jbGFtcDpmdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGgubWluKG4sTWF0aC5tYXgoZSx0KSl9LF9kZWJvdW5jZTpmdW5jdGlvbih0LGUsbil7dGhpcy5fZGVib3VuY2Vycz10aGlzLl9kZWJvdW5jZXJzfHx7fSx0aGlzLl9kZWJvdW5jZXJzW3RdPVRuLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlcnNbdF0sbixlLmJpbmQodGhpcykpLEFuKHRoaXMuX2RlYm91bmNlcnNbdF0pfSxfZm9yd2FyZFByb3BlcnR5OmZ1bmN0aW9uKHQsZSxuKXt0Ll9zZXRQZW5kaW5nUHJvcGVydHkoZSxuKX0sX2ZvcndhcmRIb3N0UHJvcFYyOmZ1bmN0aW9uKHQsZSl7KHRoaXMuX3BoeXNpY2FsSXRlbXN8fFtdKS5jb25jYXQoW3RoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtLHRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtXSkuZm9yRWFjaCgoZnVuY3Rpb24obil7biYmdGhpcy5tb2RlbEZvckVsZW1lbnQobikuZm9yd2FyZEhvc3RQcm9wKHQsZSl9KSx0aGlzKX0sX25vdGlmeUluc3RhbmNlUHJvcFYyOmZ1bmN0aW9uKHQsZSxuKXtpZihRKHRoaXMuYXMsZSkpe3ZhciBpPXRbdGhpcy5pbmRleEFzXTtlPT10aGlzLmFzJiYodGhpcy5pdGVtc1tpXT1uKSx0aGlzLm5vdGlmeVBhdGgoSih0aGlzLmFzLCJpdGVtcy4iK2ksZSksbil9fSxfZ2V0U3RhbXBlZENoaWxkcmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BoeXNpY2FsSXRlbXN9LF9mb3J3YXJkSW5zdGFuY2VQYXRoOmZ1bmN0aW9uKHQsZSxuKXswPT09ZS5pbmRleE9mKHRoaXMuYXMrIi4iKSYmdGhpcy5ub3RpZnlQYXRoKCJpdGVtcy4iK3QuX19rZXlfXysiLiIrZS5zbGljZSh0aGlzLmFzLmxlbmd0aCsxKSxuKX0sX2ZvcndhcmRQYXJlbnRQYXRoOmZ1bmN0aW9uKHQsZSl7KHRoaXMuX3BoeXNpY2FsSXRlbXN8fFtdKS5jb25jYXQoW3RoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtLHRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtXSkuZm9yRWFjaCgoZnVuY3Rpb24obil7biYmdGhpcy5tb2RlbEZvckVsZW1lbnQobikubm90aWZ5UGF0aCh0LGUpfSksdGhpcyl9LF9mb3J3YXJkUGFyZW50UHJvcDpmdW5jdGlvbih0LGUpeyh0aGlzLl9waHlzaWNhbEl0ZW1zfHxbXSkuY29uY2F0KFt0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSx0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbV0pLmZvckVhY2goKGZ1bmN0aW9uKG4pe24mJih0aGlzLm1vZGVsRm9yRWxlbWVudChuKVt0XT1lKX0pLHRoaXMpfSxfZ2V0QWN0aXZlRWxlbWVudDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2l0ZW1zUGFyZW50Lm5vZGUuZG9tSG9zdDtyZXR1cm4gWWkodD90LnJvb3Q6ZG9jdW1lbnQpLmFjdGl2ZUVsZW1lbnR9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjbGFzcyBVb3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnNlbGVjdGlvbj1bXSx0aGlzLnNlbGVjdENhbGxiYWNrPXR9Z2V0KCl7cmV0dXJuIHRoaXMubXVsdGk/dGhpcy5zZWxlY3Rpb24uc2xpY2UoKTp0aGlzLnNlbGVjdGlvblswXX1jbGVhcih0KXt0aGlzLnNlbGVjdGlvbi5zbGljZSgpLmZvckVhY2goKGZ1bmN0aW9uKGUpeyghdHx8dC5pbmRleE9mKGUpPDApJiZ0aGlzLnNldEl0ZW1TZWxlY3RlZChlLCExKX0pLHRoaXMpfWlzU2VsZWN0ZWQodCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uLmluZGV4T2YodCk+PTB9c2V0SXRlbVNlbGVjdGVkKHQsZSl7aWYobnVsbCE9dCYmZSE9PXRoaXMuaXNTZWxlY3RlZCh0KSl7aWYoZSl0aGlzLnNlbGVjdGlvbi5wdXNoKHQpO2Vsc2V7dmFyIG49dGhpcy5zZWxlY3Rpb24uaW5kZXhPZih0KTtuPj0wJiZ0aGlzLnNlbGVjdGlvbi5zcGxpY2UobiwxKX10aGlzLnNlbGVjdENhbGxiYWNrJiZ0aGlzLnNlbGVjdENhbGxiYWNrKHQsZSl9fXNlbGVjdCh0KXt0aGlzLm11bHRpP3RoaXMudG9nZ2xlKHQpOnRoaXMuZ2V0KCkhPT10JiYodGhpcy5zZXRJdGVtU2VsZWN0ZWQodGhpcy5nZXQoKSwhMSksdGhpcy5zZXRJdGVtU2VsZWN0ZWQodCwhMCkpfXRvZ2dsZSh0KXt0aGlzLnNldEl0ZW1TZWxlY3RlZCh0LCF0aGlzLmlzU2VsZWN0ZWQodCkpfX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovY29uc3Qgam89e3Byb3BlcnRpZXM6e2F0dHJGb3JTZWxlY3RlZDp7dHlwZTpTdHJpbmcsdmFsdWU6bnVsbH0sc2VsZWN0ZWQ6e3R5cGU6U3RyaW5nLG5vdGlmeTohMH0sc2VsZWN0ZWRJdGVtOnt0eXBlOk9iamVjdCxyZWFkT25seTohMCxub3RpZnk6ITB9LGFjdGl2YXRlRXZlbnQ6e3R5cGU6U3RyaW5nLHZhbHVlOiJ0YXAiLG9ic2VydmVyOiJfYWN0aXZhdGVFdmVudENoYW5nZWQifSxzZWxlY3RhYmxlOlN0cmluZyxzZWxlY3RlZENsYXNzOnt0eXBlOlN0cmluZyx2YWx1ZToiaXJvbi1zZWxlY3RlZCJ9LHNlbGVjdGVkQXR0cmlidXRlOnt0eXBlOlN0cmluZyx2YWx1ZTpudWxsfSxmYWxsYmFja1NlbGVjdGlvbjp7dHlwZTpTdHJpbmcsdmFsdWU6bnVsbH0saXRlbXM6e3R5cGU6QXJyYXkscmVhZE9ubHk6ITAsbm90aWZ5OiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxfZXhjbHVkZWRMb2NhbE5hbWVzOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybnt0ZW1wbGF0ZToxLCJkb20tYmluZCI6MSwiZG9tLWlmIjoxLCJkb20tcmVwZWF0IjoxfX19fSxvYnNlcnZlcnM6WyJfdXBkYXRlQXR0ckZvclNlbGVjdGVkKGF0dHJGb3JTZWxlY3RlZCkiLCJfdXBkYXRlU2VsZWN0ZWQoc2VsZWN0ZWQpIiwiX2NoZWNrRmFsbGJhY2soZmFsbGJhY2tTZWxlY3Rpb24pIl0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX2JpbmRGaWx0ZXJJdGVtPXRoaXMuX2ZpbHRlckl0ZW0uYmluZCh0aGlzKSx0aGlzLl9zZWxlY3Rpb249bmV3IFVvKHRoaXMuX2FwcGx5U2VsZWN0aW9uLmJpbmQodGhpcykpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyPXRoaXMuX29ic2VydmVJdGVtcyh0aGlzKSx0aGlzLl9hZGRMaXN0ZW5lcih0aGlzLmFjdGl2YXRlRXZlbnQpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyJiZZaSh0aGlzKS51bm9ic2VydmVOb2Rlcyh0aGlzLl9vYnNlcnZlciksdGhpcy5fcmVtb3ZlTGlzdGVuZXIodGhpcy5hY3RpdmF0ZUV2ZW50KX0saW5kZXhPZjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVtcz90aGlzLml0ZW1zLmluZGV4T2YodCk6LTF9LHNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLnNlbGVjdGVkPXR9LHNlbGVjdFByZXZpb3VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pdGVtcy5sZW5ndGgsZT10LTE7dm9pZCAwIT09dGhpcy5zZWxlY3RlZCYmKGU9KE51bWJlcih0aGlzLl92YWx1ZVRvSW5kZXgodGhpcy5zZWxlY3RlZCkpLTErdCkldCksdGhpcy5zZWxlY3RlZD10aGlzLl9pbmRleFRvVmFsdWUoZSl9LHNlbGVjdE5leHQ6ZnVuY3Rpb24oKXt2YXIgdD0wO3ZvaWQgMCE9PXRoaXMuc2VsZWN0ZWQmJih0PShOdW1iZXIodGhpcy5fdmFsdWVUb0luZGV4KHRoaXMuc2VsZWN0ZWQpKSsxKSV0aGlzLml0ZW1zLmxlbmd0aCksdGhpcy5zZWxlY3RlZD10aGlzLl9pbmRleFRvVmFsdWUodCl9LHNlbGVjdEluZGV4OmZ1bmN0aW9uKHQpe3RoaXMuc2VsZWN0KHRoaXMuX2luZGV4VG9WYWx1ZSh0KSl9LGZvcmNlU3luY2hyb25vdXNJdGVtVXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5fb2JzZXJ2ZXImJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vYnNlcnZlci5mbHVzaD90aGlzLl9vYnNlcnZlci5mbHVzaCgpOnRoaXMuX3VwZGF0ZUl0ZW1zKCl9LGdldCBfc2hvdWxkVXBkYXRlU2VsZWN0aW9uKCl7cmV0dXJuIG51bGwhPXRoaXMuc2VsZWN0ZWR9LF9jaGVja0ZhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlU2VsZWN0ZWQoKX0sX2FkZExpc3RlbmVyOmZ1bmN0aW9uKHQpe3RoaXMubGlzdGVuKHRoaXMsdCwiX2FjdGl2YXRlSGFuZGxlciIpfSxfcmVtb3ZlTGlzdGVuZXI6ZnVuY3Rpb24odCl7dGhpcy51bmxpc3Rlbih0aGlzLHQsIl9hY3RpdmF0ZUhhbmRsZXIiKX0sX2FjdGl2YXRlRXZlbnRDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dGhpcy5fcmVtb3ZlTGlzdGVuZXIoZSksdGhpcy5fYWRkTGlzdGVuZXIodCl9LF91cGRhdGVJdGVtczpmdW5jdGlvbigpe3ZhciB0PVlpKHRoaXMpLnF1ZXJ5RGlzdHJpYnV0ZWRFbGVtZW50cyh0aGlzLnNlbGVjdGFibGV8fCIqIik7dD1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCx0aGlzLl9iaW5kRmlsdGVySXRlbSksdGhpcy5fc2V0SXRlbXModCl9LF91cGRhdGVBdHRyRm9yU2VsZWN0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkSXRlbSYmKHRoaXMuc2VsZWN0ZWQ9dGhpcy5fdmFsdWVGb3JJdGVtKHRoaXMuc2VsZWN0ZWRJdGVtKSl9LF91cGRhdGVTZWxlY3RlZDpmdW5jdGlvbigpe3RoaXMuX3NlbGVjdFNlbGVjdGVkKHRoaXMuc2VsZWN0ZWQpfSxfc2VsZWN0U2VsZWN0ZWQ6ZnVuY3Rpb24odCl7aWYodGhpcy5pdGVtcyl7dmFyIGU9dGhpcy5fdmFsdWVUb0l0ZW0odGhpcy5zZWxlY3RlZCk7ZT90aGlzLl9zZWxlY3Rpb24uc2VsZWN0KGUpOnRoaXMuX3NlbGVjdGlvbi5jbGVhcigpLHRoaXMuZmFsbGJhY2tTZWxlY3Rpb24mJnRoaXMuaXRlbXMubGVuZ3RoJiZ2b2lkIDA9PT10aGlzLl9zZWxlY3Rpb24uZ2V0KCkmJih0aGlzLnNlbGVjdGVkPXRoaXMuZmFsbGJhY2tTZWxlY3Rpb24pfX0sX2ZpbHRlckl0ZW06ZnVuY3Rpb24odCl7cmV0dXJuIXRoaXMuX2V4Y2x1ZGVkTG9jYWxOYW1lc1t0LmxvY2FsTmFtZV19LF92YWx1ZVRvSXRlbTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9udWxsOnRoaXMuaXRlbXNbdGhpcy5fdmFsdWVUb0luZGV4KHQpXX0sX3ZhbHVlVG9JbmRleDpmdW5jdGlvbih0KXtpZighdGhpcy5hdHRyRm9yU2VsZWN0ZWQpcmV0dXJuIE51bWJlcih0KTtmb3IodmFyIGUsbj0wO2U9dGhpcy5pdGVtc1tuXTtuKyspaWYodGhpcy5fdmFsdWVGb3JJdGVtKGUpPT10KXJldHVybiBufSxfaW5kZXhUb1ZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmF0dHJGb3JTZWxlY3RlZClyZXR1cm4gdDt2YXIgZT10aGlzLml0ZW1zW3RdO3JldHVybiBlP3RoaXMuX3ZhbHVlRm9ySXRlbShlKTp2b2lkIDB9LF92YWx1ZUZvckl0ZW06ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYoIXRoaXMuYXR0ckZvclNlbGVjdGVkKXt2YXIgZT10aGlzLmluZGV4T2YodCk7cmV0dXJuLTE9PT1lP251bGw6ZX12YXIgbj10W3N0KHRoaXMuYXR0ckZvclNlbGVjdGVkKV07cmV0dXJuIG51bGwhPW4/bjp0LmdldEF0dHJpYnV0ZSh0aGlzLmF0dHJGb3JTZWxlY3RlZCl9LF9hcHBseVNlbGVjdGlvbjpmdW5jdGlvbih0LGUpe3RoaXMuc2VsZWN0ZWRDbGFzcyYmdGhpcy50b2dnbGVDbGFzcyh0aGlzLnNlbGVjdGVkQ2xhc3MsZSx0KSx0aGlzLnNlbGVjdGVkQXR0cmlidXRlJiZ0aGlzLnRvZ2dsZUF0dHJpYnV0ZSh0aGlzLnNlbGVjdGVkQXR0cmlidXRlLGUsdCksdGhpcy5fc2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5maXJlKCJpcm9uLSIrKGU/InNlbGVjdCI6ImRlc2VsZWN0Iikse2l0ZW06dH0pfSxfc2VsZWN0aW9uQ2hhbmdlOmZ1bmN0aW9uKCl7dGhpcy5fc2V0U2VsZWN0ZWRJdGVtKHRoaXMuX3NlbGVjdGlvbi5nZXQoKSl9LF9vYnNlcnZlSXRlbXM6ZnVuY3Rpb24odCl7cmV0dXJuIFlpKHQpLm9ic2VydmVOb2RlcygoZnVuY3Rpb24odCl7dGhpcy5fdXBkYXRlSXRlbXMoKSx0aGlzLl91cGRhdGVTZWxlY3RlZCgpLHRoaXMuZmlyZSgiaXJvbi1pdGVtcy1jaGFuZ2VkIix0LHtidWJibGVzOiExLGNhbmNlbGFibGU6ITF9KX0pKX0sX2FjdGl2YXRlSGFuZGxlcjpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC50YXJnZXQsbj10aGlzLml0ZW1zO2UmJmUhPXRoaXM7KXt2YXIgaT1uLmluZGV4T2YoZSk7aWYoaT49MCl7dmFyIHI9dGhpcy5faW5kZXhUb1ZhbHVlKGkpO3JldHVybiB2b2lkIHRoaXMuX2l0ZW1BY3RpdmF0ZShyLGUpfWU9ZS5wYXJlbnROb2RlfX0sX2l0ZW1BY3RpdmF0ZTpmdW5jdGlvbih0LGUpe3RoaXMuZmlyZSgiaXJvbi1hY3RpdmF0ZSIse3NlbGVjdGVkOnQsaXRlbTplfSx7Y2FuY2VsYWJsZTohMH0pLmRlZmF1bHRQcmV2ZW50ZWR8fHRoaXMuc2VsZWN0KHQpfX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL1JyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoOm5vdChzbG90KTpub3QoLmlyb24tc2VsZWN0ZWQpKSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxzbG90Pjwvc2xvdD4KYCxpczoiaXJvbi1wYWdlcyIsYmVoYXZpb3JzOltnbyxqb10scHJvcGVydGllczp7YWN0aXZhdGVFdmVudDp7dHlwZTpTdHJpbmcsdmFsdWU6bnVsbH19LG9ic2VydmVyczpbIl9zZWxlY3RlZFBhZ2VDaGFuZ2VkKHNlbGVjdGVkKSJdLF9zZWxlY3RlZFBhZ2VDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dGhpcy5hc3luYyh0aGlzLm5vdGlmeVJlc2l6ZSl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBHbz1fZWAKPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBodG1sIHsKCiAgICAgIC0tc2hhZG93LXRyYW5zaXRpb246IHsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH07CgogICAgICAtLXNoYWRvdy1ub25lOiB7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgfTsKCiAgICAgIC8qIGZyb20gaHR0cDovL2NvZGVwZW4uaW8vc2h5bmRtYW4vcGVuL2M1Mzk0ZGRmMmU4YjJhNWM5MTg1OTA0YjU3NDIxY2RiICovCgogICAgICAtLXNoYWRvdy1lbGV2YXRpb24tMmRwOiB7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwKICAgICAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi0zZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgMXB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICB9OwoKICAgICAgLS1zaGFkb3ctZWxldmF0aW9uLTRkcDogewogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksCiAgICAgICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICB9OwoKICAgICAgLS1zaGFkb3ctZWxldmF0aW9uLTZkcDogewogICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgMXB4IDE4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi04ZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICB9OwoKICAgICAgLS1zaGFkb3ctZWxldmF0aW9uLTEyZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDEycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwKICAgICAgICAgICAgICAgICAgICAwIDRweCAyMnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgNnB4IDdweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi0xNmRwOiB7CiAgICAgICAgYm94LXNoYWRvdzogMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksCiAgICAgICAgICAgICAgICAgICAgMCAgNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAgOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgIH07CgogICAgICAtLXNoYWRvdy1lbGV2YXRpb24tMjRkcDogewogICAgICAgIGJveC1zaGFkb3c6IDAgMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgIH07CiAgICB9CiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+YDtHby5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKEdvLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgV289X2VgCjxkb20tbW9kdWxlIGlkPSJwYXBlci1tYXRlcmlhbC1zdHlsZXMiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgaHRtbCB7CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbDogewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0xOiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTJkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTI6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tNGRwOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMzogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi02ZHA7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi00OiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLThkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTU6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMTZkcDsKICAgICAgICB9OwogICAgICB9CiAgICAgIC5wYXBlci1tYXRlcmlhbCB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWw7CiAgICAgIH0KICAgICAgLnBhcGVyLW1hdGVyaWFsW2VsZXZhdGlvbj0iMSJdIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMTsKICAgICAgfQogICAgICAucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIyIl0gewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0yOwogICAgICB9CiAgICAgIC5wYXBlci1tYXRlcmlhbFtlbGV2YXRpb249IjMiXSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTM7CiAgICAgIH0KICAgICAgLnBhcGVyLW1hdGVyaWFsW2VsZXZhdGlvbj0iNCJdIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNDsKICAgICAgfQogICAgICAucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSI1Il0gewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi01OwogICAgICB9CgogICAgICAvKiBEdXBsaWNhdGUgdGhlIHN0eWxlcyBiZWNhdXNlIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJjb21wb25lbnRzL3NoYWR5Y3NzL2lzc3Vlcy8xOTMgKi8KICAgICAgOmhvc3QgewogICAgICAgIC0tcGFwZXItbWF0ZXJpYWw6IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMTogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0yZHA7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0yOiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTRkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTM6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tNmRwOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNDogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi04ZHA7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi01OiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTE2ZHA7CiAgICAgICAgfTsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWwpIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbDsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIxIl0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMTsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIyIl0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMjsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIzIl0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMzsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSI0Il0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNDsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSI1Il0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNTsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+YDtXby5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKFdvLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgcW89e3Byb3BlcnRpZXM6e2ZvY3VzZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITAscmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxkaXNhYmxlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxvYnNlcnZlcjoiX2Rpc2FibGVkQ2hhbmdlZCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxfb2xkVGFiSW5kZXg6e3R5cGU6U3RyaW5nfSxfYm91bmRGb2N1c0JsdXJIYW5kbGVyOnt0eXBlOkZ1bmN0aW9uLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZvY3VzQmx1ckhhbmRsZXIuYmluZCh0aGlzKX19fSxvYnNlcnZlcnM6WyJfY2hhbmdlZENvbnRyb2xTdGF0ZShmb2N1c2VkLCBkaXNhYmxlZCkiXSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2JvdW5kRm9jdXNCbHVySGFuZGxlciwhMCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9ib3VuZEZvY3VzQmx1ckhhbmRsZXIsITApfSxfZm9jdXNCbHVySGFuZGxlcjpmdW5jdGlvbih0KXt0aGlzLl9zZXRGb2N1c2VkKCJmb2N1cyI9PT10LnR5cGUpfSxfZGlzYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLHQ/InRydWUiOiJmYWxzZSIpLHRoaXMuc3R5bGUucG9pbnRlckV2ZW50cz10PyJub25lIjoiIix0Pyh0aGlzLl9vbGRUYWJJbmRleD10aGlzLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSx0aGlzLl9zZXRGb2N1c2VkKCExKSx0aGlzLnRhYkluZGV4PS0xLHRoaXMuYmx1cigpKTp2b2lkIDAhPT10aGlzLl9vbGRUYWJJbmRleCYmKG51bGw9PT10aGlzLl9vbGRUYWJJbmRleD90aGlzLnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKTp0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLHRoaXMuX29sZFRhYkluZGV4KSl9LF9jaGFuZ2VkQ29udHJvbFN0YXRlOmZ1bmN0aW9uKCl7dGhpcy5fY29udHJvbFN0YXRlQ2hhbmdlZCYmdGhpcy5fY29udHJvbFN0YXRlQ2hhbmdlZCgpfX0sWW89e3Byb3BlcnRpZXM6e3ByZXNzZWQ6e3R5cGU6Qm9vbGVhbixyZWFkT25seTohMCx2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il9wcmVzc2VkQ2hhbmdlZCJ9LHRvZ2dsZXM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LGFjdGl2ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LHBvaW50ZXJEb3duOnt0eXBlOkJvb2xlYW4scmVhZE9ubHk6ITAsdmFsdWU6ITF9LHJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQ6e3R5cGU6Qm9vbGVhbixyZWFkT25seTohMH0sYXJpYUFjdGl2ZUF0dHJpYnV0ZTp7dHlwZTpTdHJpbmcsdmFsdWU6ImFyaWEtcHJlc3NlZCIsb2JzZXJ2ZXI6Il9hcmlhQWN0aXZlQXR0cmlidXRlQ2hhbmdlZCJ9fSxsaXN0ZW5lcnM6e2Rvd246Il9kb3duSGFuZGxlciIsdXA6Il91cEhhbmRsZXIiLHRhcDoiX3RhcEhhbmRsZXIifSxvYnNlcnZlcnM6WyJfZm9jdXNDaGFuZ2VkKGZvY3VzZWQpIiwiX2FjdGl2ZUNoYW5nZWQoYWN0aXZlLCBhcmlhQWN0aXZlQXR0cmlidXRlKSJdLGtleUJpbmRpbmdzOnsiZW50ZXI6a2V5ZG93biI6Il9hc3luY0NsaWNrIiwic3BhY2U6a2V5ZG93biI6Il9zcGFjZUtleURvd25IYW5kbGVyIiwic3BhY2U6a2V5dXAiOiJfc3BhY2VLZXlVcEhhbmRsZXIifSxfbW91c2VFdmVudFJlOi9ebW91c2UvLF90YXBIYW5kbGVyOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVzP3RoaXMuX3VzZXJBY3RpdmF0ZSghdGhpcy5hY3RpdmUpOnRoaXMuYWN0aXZlPSExfSxfZm9jdXNDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX2RldGVjdEtleWJvYXJkRm9jdXModCksdHx8dGhpcy5fc2V0UHJlc3NlZCghMSl9LF9kZXRlY3RLZXlib2FyZEZvY3VzOmZ1bmN0aW9uKHQpe3RoaXMuX3NldFJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQoIXRoaXMucG9pbnRlckRvd24mJnQpfSxfdXNlckFjdGl2YXRlOmZ1bmN0aW9uKHQpe3RoaXMuYWN0aXZlIT09dCYmKHRoaXMuYWN0aXZlPXQsdGhpcy5maXJlKCJjaGFuZ2UiKSl9LF9kb3duSGFuZGxlcjpmdW5jdGlvbih0KXt0aGlzLl9zZXRQb2ludGVyRG93bighMCksdGhpcy5fc2V0UHJlc3NlZCghMCksdGhpcy5fc2V0UmVjZWl2ZWRGb2N1c0Zyb21LZXlib2FyZCghMSl9LF91cEhhbmRsZXI6ZnVuY3Rpb24oKXt0aGlzLl9zZXRQb2ludGVyRG93bighMSksdGhpcy5fc2V0UHJlc3NlZCghMSl9LF9zcGFjZUtleURvd25IYW5kbGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZGV0YWlsLmtleWJvYXJkRXZlbnQsbj1ZaShlKS5sb2NhbFRhcmdldDt0aGlzLmlzTGlnaHREZXNjZW5kYW50KG4pfHwoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5fc2V0UHJlc3NlZCghMCkpfSxfc3BhY2VLZXlVcEhhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIGU9WWkodC5kZXRhaWwua2V5Ym9hcmRFdmVudCkubG9jYWxUYXJnZXQ7dGhpcy5pc0xpZ2h0RGVzY2VuZGFudChlKXx8KHRoaXMucHJlc3NlZCYmdGhpcy5fYXN5bmNDbGljaygpLHRoaXMuX3NldFByZXNzZWQoITEpKX0sX2FzeW5jQ2xpY2s6ZnVuY3Rpb24oKXt0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuY2xpY2soKX0pLDEpfSxfcHJlc3NlZENoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5fY2hhbmdlZEJ1dHRvblN0YXRlKCl9LF9hcmlhQWN0aXZlQXR0cmlidXRlQ2hhbmdlZDpmdW5jdGlvbih0LGUpe2UmJmUhPXQmJnRoaXMuaGFzQXR0cmlidXRlKGUpJiZ0aGlzLnJlbW92ZUF0dHJpYnV0ZShlKX0sX2FjdGl2ZUNoYW5nZWQ6ZnVuY3Rpb24odCxlKXt0aGlzLnRvZ2dsZXM/dGhpcy5zZXRBdHRyaWJ1dGUodGhpcy5hcmlhQWN0aXZlQXR0cmlidXRlLHQ/InRydWUiOiJmYWxzZSIpOnRoaXMucmVtb3ZlQXR0cmlidXRlKHRoaXMuYXJpYUFjdGl2ZUF0dHJpYnV0ZSksdGhpcy5fY2hhbmdlZEJ1dHRvblN0YXRlKCl9LF9jb250cm9sU3RhdGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlZD90aGlzLl9zZXRQcmVzc2VkKCExKTp0aGlzLl9jaGFuZ2VkQnV0dG9uU3RhdGUoKX0sX2NoYW5nZWRCdXR0b25TdGF0ZTpmdW5jdGlvbigpe3RoaXMuX2J1dHRvblN0YXRlQ2hhbmdlZCYmdGhpcy5fYnV0dG9uU3RhdGVDaGFuZ2VkKCl9fSxYbz1bem8sWW9dOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCnZhciAkbz17ZGlzdGFuY2U6ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dC1uLG89ZS1pO3JldHVybiBNYXRoLnNxcnQocipyK28qbyl9LG5vdzp3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5ub3c/d2luZG93LnBlcmZvcm1hbmNlLm5vdy5iaW5kKHdpbmRvdy5wZXJmb3JtYW5jZSk6RGF0ZS5ub3d9O2Z1bmN0aW9uIEtvKHQpe3RoaXMuZWxlbWVudD10LHRoaXMud2lkdGg9dGhpcy5ib3VuZGluZ1JlY3Qud2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy5ib3VuZGluZ1JlY3QuaGVpZ2h0LHRoaXMuc2l6ZT1NYXRoLm1heCh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KX1mdW5jdGlvbiBabyh0KXt0aGlzLmVsZW1lbnQ9dCx0aGlzLmNvbG9yPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmNvbG9yLHRoaXMud2F2ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLndhdmVDb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy53YXZlLnN0eWxlLmJhY2tncm91bmRDb2xvcj10aGlzLmNvbG9yLHRoaXMud2F2ZS5jbGFzc0xpc3QuYWRkKCJ3YXZlIiksdGhpcy53YXZlQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIndhdmUtY29udGFpbmVyIiksWWkodGhpcy53YXZlQ29udGFpbmVyKS5hcHBlbmRDaGlsZCh0aGlzLndhdmUpLHRoaXMucmVzZXRJbnRlcmFjdGlvblN0YXRlKCl9S28ucHJvdG90eXBlPXtnZXQgYm91bmRpbmdSZWN0KCl7cmV0dXJuIHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX0sZnVydGhlc3RDb3JuZXJEaXN0YW5jZUZyb206ZnVuY3Rpb24odCxlKXt2YXIgbj0kby5kaXN0YW5jZSh0LGUsMCwwKSxpPSRvLmRpc3RhbmNlKHQsZSx0aGlzLndpZHRoLDApLHI9JG8uZGlzdGFuY2UodCxlLDAsdGhpcy5oZWlnaHQpLG89JG8uZGlzdGFuY2UodCxlLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpO3JldHVybiBNYXRoLm1heChuLGkscixvKX19LFpvLk1BWF9SQURJVVM9MzAwLFpvLnByb3RvdHlwZT17Z2V0IHJlY2VudGVycygpe3JldHVybiB0aGlzLmVsZW1lbnQucmVjZW50ZXJzfSxnZXQgY2VudGVyKCl7cmV0dXJuIHRoaXMuZWxlbWVudC5jZW50ZXJ9LGdldCBtb3VzZURvd25FbGFwc2VkKCl7dmFyIHQ7cmV0dXJuIHRoaXMubW91c2VEb3duU3RhcnQ/KHQ9JG8ubm93KCktdGhpcy5tb3VzZURvd25TdGFydCx0aGlzLm1vdXNlVXBTdGFydCYmKHQtPXRoaXMubW91c2VVcEVsYXBzZWQpLHQpOjB9LGdldCBtb3VzZVVwRWxhcHNlZCgpe3JldHVybiB0aGlzLm1vdXNlVXBTdGFydD8kby5ub3coKS10aGlzLm1vdXNlVXBTdGFydDowfSxnZXQgbW91c2VEb3duRWxhcHNlZFNlY29uZHMoKXtyZXR1cm4gdGhpcy5tb3VzZURvd25FbGFwc2VkLzFlM30sZ2V0IG1vdXNlVXBFbGFwc2VkU2Vjb25kcygpe3JldHVybiB0aGlzLm1vdXNlVXBFbGFwc2VkLzFlM30sZ2V0IG1vdXNlSW50ZXJhY3Rpb25TZWNvbmRzKCl7cmV0dXJuIHRoaXMubW91c2VEb3duRWxhcHNlZFNlY29uZHMrdGhpcy5tb3VzZVVwRWxhcHNlZFNlY29uZHN9LGdldCBpbml0aWFsT3BhY2l0eSgpe3JldHVybiB0aGlzLmVsZW1lbnQuaW5pdGlhbE9wYWNpdHl9LGdldCBvcGFjaXR5RGVjYXlWZWxvY2l0eSgpe3JldHVybiB0aGlzLmVsZW1lbnQub3BhY2l0eURlY2F5VmVsb2NpdHl9LGdldCByYWRpdXMoKXt2YXIgdD0xLjEqTWF0aC5taW4oTWF0aC5zcXJ0KHRoaXMuY29udGFpbmVyTWV0cmljcy53aWR0aCp0aGlzLmNvbnRhaW5lck1ldHJpY3Mud2lkdGgrdGhpcy5jb250YWluZXJNZXRyaWNzLmhlaWdodCp0aGlzLmNvbnRhaW5lck1ldHJpY3MuaGVpZ2h0KSxaby5NQVhfUkFESVVTKSs1LGU9dCooMS1NYXRoLnBvdyg4MCwtdGhpcy5tb3VzZUludGVyYWN0aW9uU2Vjb25kcy8oMS4xLXQvWm8uTUFYX1JBRElVUyouMikpKTtyZXR1cm4gTWF0aC5hYnMoZSl9LGdldCBvcGFjaXR5KCl7cmV0dXJuIHRoaXMubW91c2VVcFN0YXJ0P01hdGgubWF4KDAsdGhpcy5pbml0aWFsT3BhY2l0eS10aGlzLm1vdXNlVXBFbGFwc2VkU2Vjb25kcyp0aGlzLm9wYWNpdHlEZWNheVZlbG9jaXR5KTp0aGlzLmluaXRpYWxPcGFjaXR5fSxnZXQgb3V0ZXJPcGFjaXR5KCl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oLjMqdGhpcy5tb3VzZVVwRWxhcHNlZFNlY29uZHMsdGhpcy5vcGFjaXR5KSl9LGdldCBpc09wYWNpdHlGdWxseURlY2F5ZWQoKXtyZXR1cm4gdGhpcy5vcGFjaXR5PC4wMSYmdGhpcy5yYWRpdXM+PU1hdGgubWluKHRoaXMubWF4UmFkaXVzLFpvLk1BWF9SQURJVVMpfSxnZXQgaXNSZXN0aW5nQXRNYXhSYWRpdXMoKXtyZXR1cm4gdGhpcy5vcGFjaXR5Pj10aGlzLmluaXRpYWxPcGFjaXR5JiZ0aGlzLnJhZGl1cz49TWF0aC5taW4odGhpcy5tYXhSYWRpdXMsWm8uTUFYX1JBRElVUyl9LGdldCBpc0FuaW1hdGlvbkNvbXBsZXRlKCl7cmV0dXJuIHRoaXMubW91c2VVcFN0YXJ0P3RoaXMuaXNPcGFjaXR5RnVsbHlEZWNheWVkOnRoaXMuaXNSZXN0aW5nQXRNYXhSYWRpdXN9LGdldCB0cmFuc2xhdGlvbkZyYWN0aW9uKCl7cmV0dXJuIE1hdGgubWluKDEsdGhpcy5yYWRpdXMvdGhpcy5jb250YWluZXJNZXRyaWNzLnNpemUqMi9NYXRoLnNxcnQoMikpfSxnZXQgeE5vdygpe3JldHVybiB0aGlzLnhFbmQ/dGhpcy54U3RhcnQrdGhpcy50cmFuc2xhdGlvbkZyYWN0aW9uKih0aGlzLnhFbmQtdGhpcy54U3RhcnQpOnRoaXMueFN0YXJ0fSxnZXQgeU5vdygpe3JldHVybiB0aGlzLnlFbmQ/dGhpcy55U3RhcnQrdGhpcy50cmFuc2xhdGlvbkZyYWN0aW9uKih0aGlzLnlFbmQtdGhpcy55U3RhcnQpOnRoaXMueVN0YXJ0fSxnZXQgaXNNb3VzZURvd24oKXtyZXR1cm4gdGhpcy5tb3VzZURvd25TdGFydCYmIXRoaXMubW91c2VVcFN0YXJ0fSxyZXNldEludGVyYWN0aW9uU3RhdGU6ZnVuY3Rpb24oKXt0aGlzLm1heFJhZGl1cz0wLHRoaXMubW91c2VEb3duU3RhcnQ9MCx0aGlzLm1vdXNlVXBTdGFydD0wLHRoaXMueFN0YXJ0PTAsdGhpcy55U3RhcnQ9MCx0aGlzLnhFbmQ9MCx0aGlzLnlFbmQ9MCx0aGlzLnNsaWRlRGlzdGFuY2U9MCx0aGlzLmNvbnRhaW5lck1ldHJpY3M9bmV3IEtvKHRoaXMuZWxlbWVudCl9LGRyYXc6ZnVuY3Rpb24oKXt2YXIgdCxlLG47dGhpcy53YXZlLnN0eWxlLm9wYWNpdHk9dGhpcy5vcGFjaXR5LHQ9dGhpcy5yYWRpdXMvKHRoaXMuY29udGFpbmVyTWV0cmljcy5zaXplLzIpLHRoaXMud2F2ZUNvbnRhaW5lci5zdHlsZS53ZWJraXRUcmFuc2Zvcm09InRyYW5zbGF0ZSgiKyhlPXRoaXMueE5vdy10aGlzLmNvbnRhaW5lck1ldHJpY3Mud2lkdGgvMikrInB4LCAiKyhuPXRoaXMueU5vdy10aGlzLmNvbnRhaW5lck1ldHJpY3MuaGVpZ2h0LzIpKyJweCkiLHRoaXMud2F2ZUNvbnRhaW5lci5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZTNkKCIrZSsicHgsICIrbisicHgsIDApIix0aGlzLndhdmUuc3R5bGUud2Via2l0VHJhbnNmb3JtPSJzY2FsZSgiK3QrIiwiK3QrIikiLHRoaXMud2F2ZS5zdHlsZS50cmFuc2Zvcm09InNjYWxlM2QoIit0KyIsIit0KyIsMSkifSxkb3duQWN0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGFpbmVyTWV0cmljcy53aWR0aC8yLG49dGhpcy5jb250YWluZXJNZXRyaWNzLmhlaWdodC8yO3RoaXMucmVzZXRJbnRlcmFjdGlvblN0YXRlKCksdGhpcy5tb3VzZURvd25TdGFydD0kby5ub3coKSx0aGlzLmNlbnRlcj8odGhpcy54U3RhcnQ9ZSx0aGlzLnlTdGFydD1uLHRoaXMuc2xpZGVEaXN0YW5jZT0kby5kaXN0YW5jZSh0aGlzLnhTdGFydCx0aGlzLnlTdGFydCx0aGlzLnhFbmQsdGhpcy55RW5kKSk6KHRoaXMueFN0YXJ0PXQ/dC5kZXRhaWwueC10aGlzLmNvbnRhaW5lck1ldHJpY3MuYm91bmRpbmdSZWN0LmxlZnQ6dGhpcy5jb250YWluZXJNZXRyaWNzLndpZHRoLzIsdGhpcy55U3RhcnQ9dD90LmRldGFpbC55LXRoaXMuY29udGFpbmVyTWV0cmljcy5ib3VuZGluZ1JlY3QudG9wOnRoaXMuY29udGFpbmVyTWV0cmljcy5oZWlnaHQvMiksdGhpcy5yZWNlbnRlcnMmJih0aGlzLnhFbmQ9ZSx0aGlzLnlFbmQ9bix0aGlzLnNsaWRlRGlzdGFuY2U9JG8uZGlzdGFuY2UodGhpcy54U3RhcnQsdGhpcy55U3RhcnQsdGhpcy54RW5kLHRoaXMueUVuZCkpLHRoaXMubWF4UmFkaXVzPXRoaXMuY29udGFpbmVyTWV0cmljcy5mdXJ0aGVzdENvcm5lckRpc3RhbmNlRnJvbSh0aGlzLnhTdGFydCx0aGlzLnlTdGFydCksdGhpcy53YXZlQ29udGFpbmVyLnN0eWxlLnRvcD0odGhpcy5jb250YWluZXJNZXRyaWNzLmhlaWdodC10aGlzLmNvbnRhaW5lck1ldHJpY3Muc2l6ZSkvMisicHgiLHRoaXMud2F2ZUNvbnRhaW5lci5zdHlsZS5sZWZ0PSh0aGlzLmNvbnRhaW5lck1ldHJpY3Mud2lkdGgtdGhpcy5jb250YWluZXJNZXRyaWNzLnNpemUpLzIrInB4Iix0aGlzLndhdmVDb250YWluZXIuc3R5bGUud2lkdGg9dGhpcy5jb250YWluZXJNZXRyaWNzLnNpemUrInB4Iix0aGlzLndhdmVDb250YWluZXIuc3R5bGUuaGVpZ2h0PXRoaXMuY29udGFpbmVyTWV0cmljcy5zaXplKyJweCJ9LHVwQWN0aW9uOmZ1bmN0aW9uKHQpe3RoaXMuaXNNb3VzZURvd24mJih0aGlzLm1vdXNlVXBTdGFydD0kby5ub3coKSl9LHJlbW92ZTpmdW5jdGlvbigpe1lpKFlpKHRoaXMud2F2ZUNvbnRhaW5lcikucGFyZW50Tm9kZSkucmVtb3ZlQ2hpbGQodGhpcy53YXZlQ29udGFpbmVyKX19LFJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKCiAgICAgICAgLyogU2VlIFBvbHltZXJFbGVtZW50cy9wYXBlci1iZWhhdmlvcnMvaXNzdWVzLzM0LiBPbiBub24tQ2hyb21lIGJyb3dzZXJzLAogICAgICAgICAqIGNyZWF0aW5nIGEgbm9kZSAod2l0aCBhIHBvc2l0aW9uOmFic29sdXRlKSBpbiB0aGUgbWlkZGxlIG9mIGFuIGV2ZW50CiAgICAgICAgICogaGFuZGxlciAiaW50ZXJydXB0cyIgdGhhdCBldmVudCBoYW5kbGVyICh3aGljaCBoYXBwZW5zIHdoZW4gdGhlCiAgICAgICAgICogcmlwcGxlIGlzIGNyZWF0ZWQgb24gZGVtYW5kKSAqLwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbYW5pbWF0aW5nXSkgewogICAgICAgIC8qIFRoaXMgcmVzb2x2ZXMgYSByZW5kZXJpbmcgaXNzdWUgaW4gQ2hyb21lIChhcyBvZiA0MCkgd2hlcmUgdGhlCiAgICAgICAgICAgcmlwcGxlIGlzIG5vdCBwcm9wZXJseSBjbGlwcGVkIGJ5IGl0cyBwYXJlbnQgKHdoaWNoIG1heSBoYXZlCiAgICAgICAgICAgcm91bmRlZCBjb3JuZXJzKS4gU2VlOiBodHRwOi8vanNiaW4uY29tL3RlbWV4YS80CgogICAgICAgICAgIE5vdGU6IFdlIG9ubHkgYXBwbHkgdGhpcyBzdHlsZSBjb25kaXRpb25hbGx5LiBPdGhlcndpc2UsIHRoZSBicm93c2VyCiAgICAgICAgICAgd2lsbCBjcmVhdGUgYSBuZXcgY29tcG9zaXRpbmcgbGF5ZXIgZm9yIGV2ZXJ5IHJpcHBsZSBlbGVtZW50IG9uIHRoZQogICAgICAgICAgIHBhZ2UsIGFuZCB0aGF0IHdvdWxkIGJlIGJhZC4gKi8KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7CiAgICAgIH0KCiAgICAgICNiYWNrZ3JvdW5kLAogICAgICAjd2F2ZXMsCiAgICAgIC53YXZlLWNvbnRhaW5lciwKICAgICAgLndhdmUgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgICNiYWNrZ3JvdW5kLAogICAgICAud2F2ZSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgI3dhdmVzLAogICAgICAud2F2ZSB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLndhdmUtY29udGFpbmVyLAogICAgICAud2F2ZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICA6aG9zdCguY2lyY2xlKSAjYmFja2dyb3VuZCwKICAgICAgOmhvc3QoLmNpcmNsZSkgI3dhdmVzIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIDpob3N0KC5jaXJjbGUpIC53YXZlLWNvbnRhaW5lciB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJiYWNrZ3JvdW5kIj48L2Rpdj4KICAgIDxkaXYgaWQ9IndhdmVzIj48L2Rpdj4KYCxpczoicGFwZXItcmlwcGxlIixiZWhhdmlvcnM6W3pvXSxwcm9wZXJ0aWVzOntpbml0aWFsT3BhY2l0eTp7dHlwZTpOdW1iZXIsdmFsdWU6LjI1fSxvcGFjaXR5RGVjYXlWZWxvY2l0eTp7dHlwZTpOdW1iZXIsdmFsdWU6Ljh9LHJlY2VudGVyczp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxjZW50ZXI6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0scmlwcGxlczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX0sYW5pbWF0aW5nOnt0eXBlOkJvb2xlYW4scmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwLHZhbHVlOiExfSxob2xkRG93bjp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG9ic2VydmVyOiJfaG9sZERvd25DaGFuZ2VkIn0sbm9pbms6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX2FuaW1hdGluZzp7dHlwZTpCb29sZWFufSxfYm91bmRBbmltYXRlOnt0eXBlOkZ1bmN0aW9uLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYW5pbWF0ZS5iaW5kKHRoaXMpfX19LGdldCB0YXJnZXQoKXtyZXR1cm4gdGhpcy5rZXlFdmVudFRhcmdldH0sa2V5QmluZGluZ3M6eyJlbnRlcjprZXlkb3duIjoiX29uRW50ZXJLZXlkb3duIiwic3BhY2U6a2V5ZG93biI6Il9vblNwYWNlS2V5ZG93biIsInNwYWNlOmtleXVwIjoiX29uU3BhY2VLZXl1cCJ9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5rZXlFdmVudFRhcmdldD0xMT09WWkodGhpcykucGFyZW50Tm9kZS5ub2RlVHlwZT9ZaSh0aGlzKS5nZXRPd25lclJvb3QoKS5ob3N0OllpKHRoaXMpLnBhcmVudE5vZGU7dmFyIHQ9dGhpcy5rZXlFdmVudFRhcmdldDt0aGlzLmxpc3Rlbih0LCJ1cCIsInVpVXBBY3Rpb24iKSx0aGlzLmxpc3Rlbih0LCJkb3duIiwidWlEb3duQWN0aW9uIil9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy51bmxpc3Rlbih0aGlzLmtleUV2ZW50VGFyZ2V0LCJ1cCIsInVpVXBBY3Rpb24iKSx0aGlzLnVubGlzdGVuKHRoaXMua2V5RXZlbnRUYXJnZXQsImRvd24iLCJ1aURvd25BY3Rpb24iKSx0aGlzLmtleUV2ZW50VGFyZ2V0PW51bGx9LGdldCBzaG91bGRLZWVwQW5pbWF0aW5nKCl7Zm9yKHZhciB0PTA7dDx0aGlzLnJpcHBsZXMubGVuZ3RoOysrdClpZighdGhpcy5yaXBwbGVzW3RdLmlzQW5pbWF0aW9uQ29tcGxldGUpcmV0dXJuITA7cmV0dXJuITF9LHNpbXVsYXRlZFJpcHBsZTpmdW5jdGlvbigpe3RoaXMuZG93bkFjdGlvbihudWxsKSx0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMudXBBY3Rpb24oKX0pLDEpfSx1aURvd25BY3Rpb246ZnVuY3Rpb24odCl7dGhpcy5ub2lua3x8dGhpcy5kb3duQWN0aW9uKHQpfSxkb3duQWN0aW9uOmZ1bmN0aW9uKHQpe3RoaXMuaG9sZERvd24mJnRoaXMucmlwcGxlcy5sZW5ndGg+MHx8KHRoaXMuYWRkUmlwcGxlKCkuZG93bkFjdGlvbih0KSx0aGlzLl9hbmltYXRpbmd8fCh0aGlzLl9hbmltYXRpbmc9ITAsdGhpcy5hbmltYXRlKCkpKX0sdWlVcEFjdGlvbjpmdW5jdGlvbih0KXt0aGlzLm5vaW5rfHx0aGlzLnVwQWN0aW9uKHQpfSx1cEFjdGlvbjpmdW5jdGlvbih0KXt0aGlzLmhvbGREb3dufHwodGhpcy5yaXBwbGVzLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UudXBBY3Rpb24odCl9KSksdGhpcy5fYW5pbWF0aW5nPSEwLHRoaXMuYW5pbWF0ZSgpKX0sb25BbmltYXRpb25Db21wbGV0ZTpmdW5jdGlvbigpe3RoaXMuX2FuaW1hdGluZz0hMSx0aGlzLiQuYmFja2dyb3VuZC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9IiIsdGhpcy5maXJlKCJ0cmFuc2l0aW9uZW5kIil9LGFkZFJpcHBsZTpmdW5jdGlvbigpe3ZhciB0PW5ldyBabyh0aGlzKTtyZXR1cm4gWWkodGhpcy4kLndhdmVzKS5hcHBlbmRDaGlsZCh0LndhdmVDb250YWluZXIpLHRoaXMuJC5iYWNrZ3JvdW5kLnN0eWxlLmJhY2tncm91bmRDb2xvcj10LmNvbG9yLHRoaXMucmlwcGxlcy5wdXNoKHQpLHRoaXMuX3NldEFuaW1hdGluZyghMCksdH0scmVtb3ZlUmlwcGxlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucmlwcGxlcy5pbmRleE9mKHQpO2U8MHx8KHRoaXMucmlwcGxlcy5zcGxpY2UoZSwxKSx0LnJlbW92ZSgpLHRoaXMucmlwcGxlcy5sZW5ndGh8fHRoaXMuX3NldEFuaW1hdGluZyghMSkpfSxhbmltYXRlOmZ1bmN0aW9uKCl7aWYodGhpcy5fYW5pbWF0aW5nKXt2YXIgdCxlO2Zvcih0PTA7dDx0aGlzLnJpcHBsZXMubGVuZ3RoOysrdCkoZT10aGlzLnJpcHBsZXNbdF0pLmRyYXcoKSx0aGlzLiQuYmFja2dyb3VuZC5zdHlsZS5vcGFjaXR5PWUub3V0ZXJPcGFjaXR5LGUuaXNPcGFjaXR5RnVsbHlEZWNheWVkJiYhZS5pc1Jlc3RpbmdBdE1heFJhZGl1cyYmdGhpcy5yZW1vdmVSaXBwbGUoZSk7dGhpcy5zaG91bGRLZWVwQW5pbWF0aW5nfHwwIT09dGhpcy5yaXBwbGVzLmxlbmd0aD93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuX2JvdW5kQW5pbWF0ZSk6dGhpcy5vbkFuaW1hdGlvbkNvbXBsZXRlKCl9fSxhbmltYXRlUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYW5pbWF0ZSgpfSxfb25FbnRlcktleWRvd246ZnVuY3Rpb24oKXt0aGlzLnVpRG93bkFjdGlvbigpLHRoaXMuYXN5bmModGhpcy51aVVwQWN0aW9uLDEpfSxfb25TcGFjZUtleWRvd246ZnVuY3Rpb24oKXt0aGlzLnVpRG93bkFjdGlvbigpfSxfb25TcGFjZUtleXVwOmZ1bmN0aW9uKCl7dGhpcy51aVVwQWN0aW9uKCl9LF9ob2xkRG93bkNoYW5nZWQ6ZnVuY3Rpb24odCxlKXt2b2lkIDAhPT1lJiYodD90aGlzLmRvd25BY3Rpb24oKTp0aGlzLnVwQWN0aW9uKCkpfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgSm89e3Byb3BlcnRpZXM6e25vaW5rOnt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9ub2lua0NoYW5nZWQifSxfcmlwcGxlQ29udGFpbmVyOnt0eXBlOk9iamVjdH19LF9idXR0b25TdGF0ZUNoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmZvY3VzZWQmJnRoaXMuZW5zdXJlUmlwcGxlKCl9LF9kb3duSGFuZGxlcjpmdW5jdGlvbih0KXtZby5fZG93bkhhbmRsZXIuY2FsbCh0aGlzLHQpLHRoaXMucHJlc3NlZCYmdGhpcy5lbnN1cmVSaXBwbGUodCl9LGVuc3VyZVJpcHBsZTpmdW5jdGlvbih0KXtpZighdGhpcy5oYXNSaXBwbGUoKSl7dGhpcy5fcmlwcGxlPXRoaXMuX2NyZWF0ZVJpcHBsZSgpLHRoaXMuX3JpcHBsZS5ub2luaz10aGlzLm5vaW5rO3ZhciBlPXRoaXMuX3JpcHBsZUNvbnRhaW5lcnx8dGhpcy5yb290O2lmKGUmJllpKGUpLmFwcGVuZENoaWxkKHRoaXMuX3JpcHBsZSksdCl7dmFyIG49WWkodGhpcy5fcmlwcGxlQ29udGFpbmVyfHx0aGlzKSxpPVlpKHQpLnJvb3RUYXJnZXQ7bi5kZWVwQ29udGFpbnMoaSkmJnRoaXMuX3JpcHBsZS51aURvd25BY3Rpb24odCl9fX0sZ2V0UmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5zdXJlUmlwcGxlKCksdGhpcy5fcmlwcGxlfSxoYXNSaXBwbGU6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLl9yaXBwbGUpfSxfY3JlYXRlUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInBhcGVyLXJpcHBsZSIpfSxfbm9pbmtDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuaGFzUmlwcGxlKCkmJih0aGlzLl9yaXBwbGUubm9pbms9dCl9fSxRbz17cHJvcGVydGllczp7ZWxldmF0aW9uOnt0eXBlOk51bWJlcixyZWZsZWN0VG9BdHRyaWJ1dGU6ITAscmVhZE9ubHk6ITB9fSxvYnNlcnZlcnM6WyJfY2FsY3VsYXRlRWxldmF0aW9uKGZvY3VzZWQsIGRpc2FibGVkLCBhY3RpdmUsIHByZXNzZWQsIHJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQpIiwiX2NvbXB1dGVLZXlib2FyZENsYXNzKHJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQpIl0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6ImJ1dHRvbiIsdGFiaW5kZXg6IjAiLGFuaW1hdGVkOiEwfSxfY2FsY3VsYXRlRWxldmF0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9MTt0aGlzLmRpc2FibGVkP3Q9MDp0aGlzLmFjdGl2ZXx8dGhpcy5wcmVzc2VkP3Q9NDp0aGlzLnJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQmJih0PTMpLHRoaXMuX3NldEVsZXZhdGlvbih0KX0sX2NvbXB1dGVLZXlib2FyZENsYXNzOmZ1bmN0aW9uKHQpe3RoaXMudG9nZ2xlQ2xhc3MoImtleWJvYXJkLWZvY3VzIix0KX0sX3NwYWNlS2V5RG93bkhhbmRsZXI6ZnVuY3Rpb24odCl7WW8uX3NwYWNlS2V5RG93bkhhbmRsZXIuY2FsbCh0aGlzLHQpLHRoaXMuaGFzUmlwcGxlKCkmJnRoaXMuZ2V0UmlwcGxlKCkucmlwcGxlcy5sZW5ndGg8MSYmdGhpcy5fcmlwcGxlLnVpRG93bkFjdGlvbigpfSxfc3BhY2VLZXlVcEhhbmRsZXI6ZnVuY3Rpb24odCl7WW8uX3NwYWNlS2V5VXBIYW5kbGVyLmNhbGwodGhpcyx0KSx0aGlzLmhhc1JpcHBsZSgpJiZ0aGlzLl9yaXBwbGUudWlVcEFjdGlvbigpfX0sdGE9W1hvLHFvLEpvLFFvXSxlYT1fZWAKICA8c3R5bGUgaW5jbHVkZT0icGFwZXItbWF0ZXJpYWwtc3R5bGVzIj4KICAgIC8qIE5lZWQgdG8gc3BlY2lmeSB0aGUgc2FtZSBzcGVjaWZpY2l0eSBhcyB0aGUgc3R5bGVzIGltcG9ydGVkIGZyb20gcGFwZXItbWF0ZXJpYWwuICovCiAgICA6aG9zdCB7CiAgICAgIEBhcHBseSAtLWxheW91dC1pbmxpbmU7CiAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXItY2VudGVyOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIG1pbi13aWR0aDogNS4xNGVtOwogICAgICBtYXJnaW46IDAgMC4yOWVtOwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOwogICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICBmb250OiBpbmhlcml0OwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICBvdXRsaW5lLXdpZHRoOiAwOwogICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgei1pbmRleDogMDsKICAgICAgcGFkZGluZzogMC43ZW0gMC41N2VtOwoKICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgQGFwcGx5IC0tcGFwZXItYnV0dG9uOwogICAgfQoKICAgIDpob3N0KFtlbGV2YXRpb249IjEiXSkgewogICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMTsKICAgIH0KCiAgICA6aG9zdChbZWxldmF0aW9uPSIyIl0pIHsKICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTI7CiAgICB9CgogICAgOmhvc3QoW2VsZXZhdGlvbj0iMyJdKSB7CiAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0zOwogICAgfQoKICAgIDpob3N0KFtlbGV2YXRpb249IjQiXSkgewogICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNDsKICAgIH0KCiAgICA6aG9zdChbZWxldmF0aW9uPSI1Il0pIHsKICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTU7CiAgICB9CgogICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIDpob3N0KFtyYWlzZWRdLmtleWJvYXJkLWZvY3VzKSB7CiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICBAYXBwbHkgLS1wYXBlci1idXR0b24tcmFpc2VkLWtleWJvYXJkLWZvY3VzOwogICAgfQoKICAgIDpob3N0KDpub3QoW3JhaXNlZF0pLmtleWJvYXJkLWZvY3VzKSB7CiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICBAYXBwbHkgLS1wYXBlci1idXR0b24tZmxhdC1rZXlib2FyZC1mb2N1czsKICAgIH0KCiAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIGNvbG9yOiAjYThhOGE4OwogICAgICBjdXJzb3I6IGF1dG87CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwoKICAgICAgQGFwcGx5IC0tcGFwZXItYnV0dG9uLWRpc2FibGVkOwogICAgfQoKICAgIDpob3N0KFtkaXNhYmxlZF1bcmFpc2VkXSkgewogICAgICBiYWNrZ3JvdW5kOiAjZWFlYWVhOwogICAgfQoKCiAgICA6aG9zdChbYW5pbWF0ZWRdKSB7CiAgICAgIEBhcHBseSAtLXNoYWRvdy10cmFuc2l0aW9uOwogICAgfQoKICAgIHBhcGVyLXJpcHBsZSB7CiAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1idXR0b24taW5rLWNvbG9yKTsKICAgIH0KICA8L3N0eWxlPgoKICA8c2xvdD48L3Nsb3Q+YDsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovZWEuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIiksUnIoe190ZW1wbGF0ZTplYSxpczoicGFwZXItYnV0dG9uIixiZWhhdmlvcnM6W3RhXSxwcm9wZXJ0aWVzOntyYWlzZWQ6e3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsdmFsdWU6ITEsb2JzZXJ2ZXI6Il9jYWxjdWxhdGVFbGV2YXRpb24ifX0sX2NhbGN1bGF0ZUVsZXZhdGlvbjpmdW5jdGlvbigpe3RoaXMucmFpc2VkP1FvLl9jYWxjdWxhdGVFbGV2YXRpb24uYXBwbHkodGhpcyk6dGhpcy5fc2V0RWxldmF0aW9uKDApfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgbmE9X2VgCjxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgaHRtbCB7CgogICAgICAvKiBNYXRlcmlhbCBEZXNpZ24gY29sb3IgcGFsZXR0ZSBmb3IgR29vZ2xlIHByb2R1Y3RzICovCgogICAgICAtLWdvb2dsZS1yZWQtMTAwOiAjZjRjN2MzOwogICAgICAtLWdvb2dsZS1yZWQtMzAwOiAjZTY3YzczOwogICAgICAtLWdvb2dsZS1yZWQtNTAwOiAjZGI0NDM3OwogICAgICAtLWdvb2dsZS1yZWQtNzAwOiAjYzUzOTI5OwoKICAgICAgLS1nb29nbGUtYmx1ZS0xMDA6ICNjNmRhZmM7CiAgICAgIC0tZ29vZ2xlLWJsdWUtMzAwOiAjN2JhYWY3OwogICAgICAtLWdvb2dsZS1ibHVlLTUwMDogIzQyODVmNDsKICAgICAgLS1nb29nbGUtYmx1ZS03MDA6ICMzMzY3ZDY7CgogICAgICAtLWdvb2dsZS1ncmVlbi0xMDA6ICNiN2UxY2Q7CiAgICAgIC0tZ29vZ2xlLWdyZWVuLTMwMDogIzU3YmI4YTsKICAgICAgLS1nb29nbGUtZ3JlZW4tNTAwOiAjMGY5ZDU4OwogICAgICAtLWdvb2dsZS1ncmVlbi03MDA6ICMwYjgwNDM7CgogICAgICAtLWdvb2dsZS15ZWxsb3ctMTAwOiAjZmNlOGIyOwogICAgICAtLWdvb2dsZS15ZWxsb3ctMzAwOiAjZjdjYjRkOwogICAgICAtLWdvb2dsZS15ZWxsb3ctNTAwOiAjZjRiNDAwOwogICAgICAtLWdvb2dsZS15ZWxsb3ctNzAwOiAjZjA5MzAwOwoKICAgICAgLS1nb29nbGUtZ3JleS0xMDA6ICNmNWY1ZjU7CiAgICAgIC0tZ29vZ2xlLWdyZXktMzAwOiAjZTBlMGUwOwogICAgICAtLWdvb2dsZS1ncmV5LTUwMDogIzllOWU5ZTsKICAgICAgLS1nb29nbGUtZ3JleS03MDA6ICM2MTYxNjE7CgogICAgICAvKiBNYXRlcmlhbCBEZXNpZ24gY29sb3IgcGFsZXR0ZSBmcm9tIG9ubGluZSBzcGVjIGRvY3VtZW50ICovCgogICAgICAtLXBhcGVyLXJlZC01MDogI2ZmZWJlZTsKICAgICAgLS1wYXBlci1yZWQtMTAwOiAjZmZjZGQyOwogICAgICAtLXBhcGVyLXJlZC0yMDA6ICNlZjlhOWE7CiAgICAgIC0tcGFwZXItcmVkLTMwMDogI2U1NzM3MzsKICAgICAgLS1wYXBlci1yZWQtNDAwOiAjZWY1MzUwOwogICAgICAtLXBhcGVyLXJlZC01MDA6ICNmNDQzMzY7CiAgICAgIC0tcGFwZXItcmVkLTYwMDogI2U1MzkzNTsKICAgICAgLS1wYXBlci1yZWQtNzAwOiAjZDMyZjJmOwogICAgICAtLXBhcGVyLXJlZC04MDA6ICNjNjI4Mjg7CiAgICAgIC0tcGFwZXItcmVkLTkwMDogI2I3MWMxYzsKICAgICAgLS1wYXBlci1yZWQtYTEwMDogI2ZmOGE4MDsKICAgICAgLS1wYXBlci1yZWQtYTIwMDogI2ZmNTI1MjsKICAgICAgLS1wYXBlci1yZWQtYTQwMDogI2ZmMTc0NDsKICAgICAgLS1wYXBlci1yZWQtYTcwMDogI2Q1MDAwMDsKCiAgICAgIC0tcGFwZXItcGluay01MDogI2ZjZTRlYzsKICAgICAgLS1wYXBlci1waW5rLTEwMDogI2Y4YmJkMDsKICAgICAgLS1wYXBlci1waW5rLTIwMDogI2Y0OGZiMTsKICAgICAgLS1wYXBlci1waW5rLTMwMDogI2YwNjI5MjsKICAgICAgLS1wYXBlci1waW5rLTQwMDogI2VjNDA3YTsKICAgICAgLS1wYXBlci1waW5rLTUwMDogI2U5MWU2MzsKICAgICAgLS1wYXBlci1waW5rLTYwMDogI2Q4MWI2MDsKICAgICAgLS1wYXBlci1waW5rLTcwMDogI2MyMTg1YjsKICAgICAgLS1wYXBlci1waW5rLTgwMDogI2FkMTQ1NzsKICAgICAgLS1wYXBlci1waW5rLTkwMDogIzg4MGU0ZjsKICAgICAgLS1wYXBlci1waW5rLWExMDA6ICNmZjgwYWI7CiAgICAgIC0tcGFwZXItcGluay1hMjAwOiAjZmY0MDgxOwogICAgICAtLXBhcGVyLXBpbmstYTQwMDogI2Y1MDA1NzsKICAgICAgLS1wYXBlci1waW5rLWE3MDA6ICNjNTExNjI7CgogICAgICAtLXBhcGVyLXB1cnBsZS01MDogI2YzZTVmNTsKICAgICAgLS1wYXBlci1wdXJwbGUtMTAwOiAjZTFiZWU3OwogICAgICAtLXBhcGVyLXB1cnBsZS0yMDA6ICNjZTkzZDg7CiAgICAgIC0tcGFwZXItcHVycGxlLTMwMDogI2JhNjhjODsKICAgICAgLS1wYXBlci1wdXJwbGUtNDAwOiAjYWI0N2JjOwogICAgICAtLXBhcGVyLXB1cnBsZS01MDA6ICM5YzI3YjA7CiAgICAgIC0tcGFwZXItcHVycGxlLTYwMDogIzhlMjRhYTsKICAgICAgLS1wYXBlci1wdXJwbGUtNzAwOiAjN2IxZmEyOwogICAgICAtLXBhcGVyLXB1cnBsZS04MDA6ICM2YTFiOWE7CiAgICAgIC0tcGFwZXItcHVycGxlLTkwMDogIzRhMTQ4YzsKICAgICAgLS1wYXBlci1wdXJwbGUtYTEwMDogI2VhODBmYzsKICAgICAgLS1wYXBlci1wdXJwbGUtYTIwMDogI2UwNDBmYjsKICAgICAgLS1wYXBlci1wdXJwbGUtYTQwMDogI2Q1MDBmOTsKICAgICAgLS1wYXBlci1wdXJwbGUtYTcwMDogI2FhMDBmZjsKCiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtNTA6ICNlZGU3ZjY7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtMTAwOiAjZDFjNGU5OwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTIwMDogI2IzOWRkYjsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS0zMDA6ICM5NTc1Y2Q7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtNDAwOiAjN2U1N2MyOwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTUwMDogIzY3M2FiNzsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS02MDA6ICM1ZTM1YjE7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtNzAwOiAjNTEyZGE4OwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTgwMDogIzQ1MjdhMDsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS05MDA6ICMzMTFiOTI7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtYTEwMDogI2IzODhmZjsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS1hMjAwOiAjN2M0ZGZmOwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLWE0MDA6ICM2NTFmZmY7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtYTcwMDogIzYyMDBlYTsKCiAgICAgIC0tcGFwZXItaW5kaWdvLTUwOiAjZThlYWY2OwogICAgICAtLXBhcGVyLWluZGlnby0xMDA6ICNjNWNhZTk7CiAgICAgIC0tcGFwZXItaW5kaWdvLTIwMDogIzlmYThkYTsKICAgICAgLS1wYXBlci1pbmRpZ28tMzAwOiAjNzk4NmNiOwogICAgICAtLXBhcGVyLWluZGlnby00MDA6ICM1YzZiYzA7CiAgICAgIC0tcGFwZXItaW5kaWdvLTUwMDogIzNmNTFiNTsKICAgICAgLS1wYXBlci1pbmRpZ28tNjAwOiAjMzk0OWFiOwogICAgICAtLXBhcGVyLWluZGlnby03MDA6ICMzMDNmOWY7CiAgICAgIC0tcGFwZXItaW5kaWdvLTgwMDogIzI4MzU5MzsKICAgICAgLS1wYXBlci1pbmRpZ28tOTAwOiAjMWEyMzdlOwogICAgICAtLXBhcGVyLWluZGlnby1hMTAwOiAjOGM5ZWZmOwogICAgICAtLXBhcGVyLWluZGlnby1hMjAwOiAjNTM2ZGZlOwogICAgICAtLXBhcGVyLWluZGlnby1hNDAwOiAjM2Q1YWZlOwogICAgICAtLXBhcGVyLWluZGlnby1hNzAwOiAjMzA0ZmZlOwoKICAgICAgLS1wYXBlci1ibHVlLTUwOiAjZTNmMmZkOwogICAgICAtLXBhcGVyLWJsdWUtMTAwOiAjYmJkZWZiOwogICAgICAtLXBhcGVyLWJsdWUtMjAwOiAjOTBjYWY5OwogICAgICAtLXBhcGVyLWJsdWUtMzAwOiAjNjRiNWY2OwogICAgICAtLXBhcGVyLWJsdWUtNDAwOiAjNDJhNWY1OwogICAgICAtLXBhcGVyLWJsdWUtNTAwOiAjMjE5NmYzOwogICAgICAtLXBhcGVyLWJsdWUtNjAwOiAjMWU4OGU1OwogICAgICAtLXBhcGVyLWJsdWUtNzAwOiAjMTk3NmQyOwogICAgICAtLXBhcGVyLWJsdWUtODAwOiAjMTU2NWMwOwogICAgICAtLXBhcGVyLWJsdWUtOTAwOiAjMGQ0N2ExOwogICAgICAtLXBhcGVyLWJsdWUtYTEwMDogIzgyYjFmZjsKICAgICAgLS1wYXBlci1ibHVlLWEyMDA6ICM0NDhhZmY7CiAgICAgIC0tcGFwZXItYmx1ZS1hNDAwOiAjMjk3OWZmOwogICAgICAtLXBhcGVyLWJsdWUtYTcwMDogIzI5NjJmZjsKCiAgICAgIC0tcGFwZXItbGlnaHQtYmx1ZS01MDogI2UxZjVmZTsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTEwMDogI2IzZTVmYzsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTIwMDogIzgxZDRmYTsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTMwMDogIzRmYzNmNzsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTQwMDogIzI5YjZmNjsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTUwMDogIzAzYTlmNDsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTYwMDogIzAzOWJlNTsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTcwMDogIzAyODhkMTsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTgwMDogIzAyNzdiZDsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTkwMDogIzAxNTc5YjsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLWExMDA6ICM4MGQ4ZmY7CiAgICAgIC0tcGFwZXItbGlnaHQtYmx1ZS1hMjAwOiAjNDBjNGZmOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtYTQwMDogIzAwYjBmZjsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLWE3MDA6ICMwMDkxZWE7CgogICAgICAtLXBhcGVyLWN5YW4tNTA6ICNlMGY3ZmE7CiAgICAgIC0tcGFwZXItY3lhbi0xMDA6ICNiMmViZjI7CiAgICAgIC0tcGFwZXItY3lhbi0yMDA6ICM4MGRlZWE7CiAgICAgIC0tcGFwZXItY3lhbi0zMDA6ICM0ZGQwZTE7CiAgICAgIC0tcGFwZXItY3lhbi00MDA6ICMyNmM2ZGE7CiAgICAgIC0tcGFwZXItY3lhbi01MDA6ICMwMGJjZDQ7CiAgICAgIC0tcGFwZXItY3lhbi02MDA6ICMwMGFjYzE7CiAgICAgIC0tcGFwZXItY3lhbi03MDA6ICMwMDk3YTc7CiAgICAgIC0tcGFwZXItY3lhbi04MDA6ICMwMDgzOGY7CiAgICAgIC0tcGFwZXItY3lhbi05MDA6ICMwMDYwNjQ7CiAgICAgIC0tcGFwZXItY3lhbi1hMTAwOiAjODRmZmZmOwogICAgICAtLXBhcGVyLWN5YW4tYTIwMDogIzE4ZmZmZjsKICAgICAgLS1wYXBlci1jeWFuLWE0MDA6ICMwMGU1ZmY7CiAgICAgIC0tcGFwZXItY3lhbi1hNzAwOiAjMDBiOGQ0OwoKICAgICAgLS1wYXBlci10ZWFsLTUwOiAjZTBmMmYxOwogICAgICAtLXBhcGVyLXRlYWwtMTAwOiAjYjJkZmRiOwogICAgICAtLXBhcGVyLXRlYWwtMjAwOiAjODBjYmM0OwogICAgICAtLXBhcGVyLXRlYWwtMzAwOiAjNGRiNmFjOwogICAgICAtLXBhcGVyLXRlYWwtNDAwOiAjMjZhNjlhOwogICAgICAtLXBhcGVyLXRlYWwtNTAwOiAjMDA5Njg4OwogICAgICAtLXBhcGVyLXRlYWwtNjAwOiAjMDA4OTdiOwogICAgICAtLXBhcGVyLXRlYWwtNzAwOiAjMDA3OTZiOwogICAgICAtLXBhcGVyLXRlYWwtODAwOiAjMDA2OTVjOwogICAgICAtLXBhcGVyLXRlYWwtOTAwOiAjMDA0ZDQwOwogICAgICAtLXBhcGVyLXRlYWwtYTEwMDogI2E3ZmZlYjsKICAgICAgLS1wYXBlci10ZWFsLWEyMDA6ICM2NGZmZGE7CiAgICAgIC0tcGFwZXItdGVhbC1hNDAwOiAjMWRlOWI2OwogICAgICAtLXBhcGVyLXRlYWwtYTcwMDogIzAwYmZhNTsKCiAgICAgIC0tcGFwZXItZ3JlZW4tNTA6ICNlOGY1ZTk7CiAgICAgIC0tcGFwZXItZ3JlZW4tMTAwOiAjYzhlNmM5OwogICAgICAtLXBhcGVyLWdyZWVuLTIwMDogI2E1ZDZhNzsKICAgICAgLS1wYXBlci1ncmVlbi0zMDA6ICM4MWM3ODQ7CiAgICAgIC0tcGFwZXItZ3JlZW4tNDAwOiAjNjZiYjZhOwogICAgICAtLXBhcGVyLWdyZWVuLTUwMDogIzRjYWY1MDsKICAgICAgLS1wYXBlci1ncmVlbi02MDA6ICM0M2EwNDc7CiAgICAgIC0tcGFwZXItZ3JlZW4tNzAwOiAjMzg4ZTNjOwogICAgICAtLXBhcGVyLWdyZWVuLTgwMDogIzJlN2QzMjsKICAgICAgLS1wYXBlci1ncmVlbi05MDA6ICMxYjVlMjA7CiAgICAgIC0tcGFwZXItZ3JlZW4tYTEwMDogI2I5ZjZjYTsKICAgICAgLS1wYXBlci1ncmVlbi1hMjAwOiAjNjlmMGFlOwogICAgICAtLXBhcGVyLWdyZWVuLWE0MDA6ICMwMGU2NzY7CiAgICAgIC0tcGFwZXItZ3JlZW4tYTcwMDogIzAwYzg1MzsKCiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tNTA6ICNmMWY4ZTk7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tMTAwOiAjZGNlZGM4OwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTIwMDogI2M1ZTFhNTsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi0zMDA6ICNhZWQ1ODE7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tNDAwOiAjOWNjYzY1OwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTUwMDogIzhiYzM0YTsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi02MDA6ICM3Y2IzNDI7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tNzAwOiAjNjg5ZjM4OwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTgwMDogIzU1OGIyZjsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi05MDA6ICMzMzY5MWU7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tYTEwMDogI2NjZmY5MDsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi1hMjAwOiAjYjJmZjU5OwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLWE0MDA6ICM3NmZmMDM7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tYTcwMDogIzY0ZGQxNzsKCiAgICAgIC0tcGFwZXItbGltZS01MDogI2Y5ZmJlNzsKICAgICAgLS1wYXBlci1saW1lLTEwMDogI2YwZjRjMzsKICAgICAgLS1wYXBlci1saW1lLTIwMDogI2U2ZWU5YzsKICAgICAgLS1wYXBlci1saW1lLTMwMDogI2RjZTc3NTsKICAgICAgLS1wYXBlci1saW1lLTQwMDogI2Q0ZTE1NzsKICAgICAgLS1wYXBlci1saW1lLTUwMDogI2NkZGMzOTsKICAgICAgLS1wYXBlci1saW1lLTYwMDogI2MwY2EzMzsKICAgICAgLS1wYXBlci1saW1lLTcwMDogI2FmYjQyYjsKICAgICAgLS1wYXBlci1saW1lLTgwMDogIzllOWQyNDsKICAgICAgLS1wYXBlci1saW1lLTkwMDogIzgyNzcxNzsKICAgICAgLS1wYXBlci1saW1lLWExMDA6ICNmNGZmODE7CiAgICAgIC0tcGFwZXItbGltZS1hMjAwOiAjZWVmZjQxOwogICAgICAtLXBhcGVyLWxpbWUtYTQwMDogI2M2ZmYwMDsKICAgICAgLS1wYXBlci1saW1lLWE3MDA6ICNhZWVhMDA7CgogICAgICAtLXBhcGVyLXllbGxvdy01MDogI2ZmZmRlNzsKICAgICAgLS1wYXBlci15ZWxsb3ctMTAwOiAjZmZmOWM0OwogICAgICAtLXBhcGVyLXllbGxvdy0yMDA6ICNmZmY1OWQ7CiAgICAgIC0tcGFwZXIteWVsbG93LTMwMDogI2ZmZjE3NjsKICAgICAgLS1wYXBlci15ZWxsb3ctNDAwOiAjZmZlZTU4OwogICAgICAtLXBhcGVyLXllbGxvdy01MDA6ICNmZmViM2I7CiAgICAgIC0tcGFwZXIteWVsbG93LTYwMDogI2ZkZDgzNTsKICAgICAgLS1wYXBlci15ZWxsb3ctNzAwOiAjZmJjMDJkOwogICAgICAtLXBhcGVyLXllbGxvdy04MDA6ICNmOWE4MjU7CiAgICAgIC0tcGFwZXIteWVsbG93LTkwMDogI2Y1N2YxNzsKICAgICAgLS1wYXBlci15ZWxsb3ctYTEwMDogI2ZmZmY4ZDsKICAgICAgLS1wYXBlci15ZWxsb3ctYTIwMDogI2ZmZmYwMDsKICAgICAgLS1wYXBlci15ZWxsb3ctYTQwMDogI2ZmZWEwMDsKICAgICAgLS1wYXBlci15ZWxsb3ctYTcwMDogI2ZmZDYwMDsKCiAgICAgIC0tcGFwZXItYW1iZXItNTA6ICNmZmY4ZTE7CiAgICAgIC0tcGFwZXItYW1iZXItMTAwOiAjZmZlY2IzOwogICAgICAtLXBhcGVyLWFtYmVyLTIwMDogI2ZmZTA4MjsKICAgICAgLS1wYXBlci1hbWJlci0zMDA6ICNmZmQ1NGY7CiAgICAgIC0tcGFwZXItYW1iZXItNDAwOiAjZmZjYTI4OwogICAgICAtLXBhcGVyLWFtYmVyLTUwMDogI2ZmYzEwNzsKICAgICAgLS1wYXBlci1hbWJlci02MDA6ICNmZmIzMDA7CiAgICAgIC0tcGFwZXItYW1iZXItNzAwOiAjZmZhMDAwOwogICAgICAtLXBhcGVyLWFtYmVyLTgwMDogI2ZmOGYwMDsKICAgICAgLS1wYXBlci1hbWJlci05MDA6ICNmZjZmMDA7CiAgICAgIC0tcGFwZXItYW1iZXItYTEwMDogI2ZmZTU3ZjsKICAgICAgLS1wYXBlci1hbWJlci1hMjAwOiAjZmZkNzQwOwogICAgICAtLXBhcGVyLWFtYmVyLWE0MDA6ICNmZmM0MDA7CiAgICAgIC0tcGFwZXItYW1iZXItYTcwMDogI2ZmYWIwMDsKCiAgICAgIC0tcGFwZXItb3JhbmdlLTUwOiAjZmZmM2UwOwogICAgICAtLXBhcGVyLW9yYW5nZS0xMDA6ICNmZmUwYjI7CiAgICAgIC0tcGFwZXItb3JhbmdlLTIwMDogI2ZmY2M4MDsKICAgICAgLS1wYXBlci1vcmFuZ2UtMzAwOiAjZmZiNzRkOwogICAgICAtLXBhcGVyLW9yYW5nZS00MDA6ICNmZmE3MjY7CiAgICAgIC0tcGFwZXItb3JhbmdlLTUwMDogI2ZmOTgwMDsKICAgICAgLS1wYXBlci1vcmFuZ2UtNjAwOiAjZmI4YzAwOwogICAgICAtLXBhcGVyLW9yYW5nZS03MDA6ICNmNTdjMDA7CiAgICAgIC0tcGFwZXItb3JhbmdlLTgwMDogI2VmNmMwMDsKICAgICAgLS1wYXBlci1vcmFuZ2UtOTAwOiAjZTY1MTAwOwogICAgICAtLXBhcGVyLW9yYW5nZS1hMTAwOiAjZmZkMTgwOwogICAgICAtLXBhcGVyLW9yYW5nZS1hMjAwOiAjZmZhYjQwOwogICAgICAtLXBhcGVyLW9yYW5nZS1hNDAwOiAjZmY5MTAwOwogICAgICAtLXBhcGVyLW9yYW5nZS1hNzAwOiAjZmY2NTAwOwoKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS01MDogI2ZiZTllNzsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS0xMDA6ICNmZmNjYmM7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtMjAwOiAjZmZhYjkxOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTMwMDogI2ZmOGE2NTsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS00MDA6ICNmZjcwNDM7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtNTAwOiAjZmY1NzIyOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTYwMDogI2Y0NTExZTsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS03MDA6ICNlNjRhMTk7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtODAwOiAjZDg0MzE1OwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTkwMDogI2JmMzYwYzsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS1hMTAwOiAjZmY5ZTgwOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLWEyMDA6ICNmZjZlNDA7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtYTQwMDogI2ZmM2QwMDsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS1hNzAwOiAjZGQyYzAwOwoKICAgICAgLS1wYXBlci1icm93bi01MDogI2VmZWJlOTsKICAgICAgLS1wYXBlci1icm93bi0xMDA6ICNkN2NjYzg7CiAgICAgIC0tcGFwZXItYnJvd24tMjAwOiAjYmNhYWE0OwogICAgICAtLXBhcGVyLWJyb3duLTMwMDogI2ExODg3ZjsKICAgICAgLS1wYXBlci1icm93bi00MDA6ICM4ZDZlNjM7CiAgICAgIC0tcGFwZXItYnJvd24tNTAwOiAjNzk1NTQ4OwogICAgICAtLXBhcGVyLWJyb3duLTYwMDogIzZkNGM0MTsKICAgICAgLS1wYXBlci1icm93bi03MDA6ICM1ZDQwMzc7CiAgICAgIC0tcGFwZXItYnJvd24tODAwOiAjNGUzNDJlOwogICAgICAtLXBhcGVyLWJyb3duLTkwMDogIzNlMjcyMzsKCiAgICAgIC0tcGFwZXItZ3JleS01MDogI2ZhZmFmYTsKICAgICAgLS1wYXBlci1ncmV5LTEwMDogI2Y1ZjVmNTsKICAgICAgLS1wYXBlci1ncmV5LTIwMDogI2VlZWVlZTsKICAgICAgLS1wYXBlci1ncmV5LTMwMDogI2UwZTBlMDsKICAgICAgLS1wYXBlci1ncmV5LTQwMDogI2JkYmRiZDsKICAgICAgLS1wYXBlci1ncmV5LTUwMDogIzllOWU5ZTsKICAgICAgLS1wYXBlci1ncmV5LTYwMDogIzc1NzU3NTsKICAgICAgLS1wYXBlci1ncmV5LTcwMDogIzYxNjE2MTsKICAgICAgLS1wYXBlci1ncmV5LTgwMDogIzQyNDI0MjsKICAgICAgLS1wYXBlci1ncmV5LTkwMDogIzIxMjEyMTsKCiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTUwOiAjZWNlZmYxOwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS0xMDA6ICNjZmQ4ZGM7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTIwMDogI2IwYmVjNTsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktMzAwOiAjOTBhNGFlOwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS00MDA6ICM3ODkwOWM7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTUwMDogIzYwN2Q4YjsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktNjAwOiAjNTQ2ZTdhOwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS03MDA6ICM0NTVhNjQ7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTgwMDogIzM3NDc0ZjsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktOTAwOiAjMjYzMjM4OwoKICAgICAgLyogb3BhY2l0eSBmb3IgZGFyayB0ZXh0IG9uIGEgbGlnaHQgYmFja2dyb3VuZCAqLwogICAgICAtLWRhcmstZGl2aWRlci1vcGFjaXR5OiAwLjEyOwogICAgICAtLWRhcmstZGlzYWJsZWQtb3BhY2l0eTogMC4zODsgLyogb3IgaGludCB0ZXh0IG9yIGljb24gKi8KICAgICAgLS1kYXJrLXNlY29uZGFyeS1vcGFjaXR5OiAwLjU0OwogICAgICAtLWRhcmstcHJpbWFyeS1vcGFjaXR5OiAwLjg3OwoKICAgICAgLyogb3BhY2l0eSBmb3IgbGlnaHQgdGV4dCBvbiBhIGRhcmsgYmFja2dyb3VuZCAqLwogICAgICAtLWxpZ2h0LWRpdmlkZXItb3BhY2l0eTogMC4xMjsKICAgICAgLS1saWdodC1kaXNhYmxlZC1vcGFjaXR5OiAwLjM7IC8qIG9yIGhpbnQgdGV4dCBvciBpY29uICovCiAgICAgIC0tbGlnaHQtc2Vjb25kYXJ5LW9wYWNpdHk6IDAuNzsKICAgICAgLS1saWdodC1wcmltYXJ5LW9wYWNpdHk6IDEuMDsKCiAgICB9CgogIDwvc3R5bGU+CjwvY3VzdG9tLXN0eWxlPgpgO25hLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobmEuY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBpYT1fZWAKPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBodG1sIHsKICAgICAgLyoKICAgICAgICogWW91IGNhbiB1c2UgdGhlc2UgZ2VuZXJpYyB2YXJpYWJsZXMgaW4geW91ciBlbGVtZW50cyBmb3IgZWFzeSB0aGVtaW5nLgogICAgICAgKiBGb3IgZXhhbXBsZSwgaWYgYWxsIHlvdXIgZWxlbWVudHMgdXNlIFxgLS1wcmltYXJ5LXRleHQtY29sb3JcYCBhcyBpdHMgbWFpbgogICAgICAgKiBjb2xvciwgdGhlbiBzd2l0Y2hpbmcgZnJvbSBhIGxpZ2h0IHRvIGEgZGFyayB0aGVtZSBpcyBqdXN0IGEgbWF0dGVyIG9mCiAgICAgICAqIGNoYW5naW5nIHRoZSB2YWx1ZSBvZiBcYC0tcHJpbWFyeS10ZXh0LWNvbG9yXGAgaW4geW91ciBhcHBsaWNhdGlvbi4KICAgICAgICovCiAgICAgIC0tcHJpbWFyeS10ZXh0LWNvbG9yOiB2YXIoLS1saWdodC10aGVtZS10ZXh0LWNvbG9yKTsKICAgICAgLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LXRoZW1lLWJhY2tncm91bmQtY29sb3IpOwogICAgICAtLXNlY29uZGFyeS10ZXh0LWNvbG9yOiB2YXIoLS1saWdodC10aGVtZS1zZWNvbmRhcnktY29sb3IpOwogICAgICAtLWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLWxpZ2h0LXRoZW1lLWRpc2FibGVkLWNvbG9yKTsKICAgICAgLS1kaXZpZGVyLWNvbG9yOiB2YXIoLS1saWdodC10aGVtZS1kaXZpZGVyLWNvbG9yKTsKICAgICAgLS1lcnJvci1jb2xvcjogdmFyKC0tcGFwZXItZGVlcC1vcmFuZ2UtYTcwMCk7CgogICAgICAvKgogICAgICAgKiBQcmltYXJ5IGFuZCBhY2NlbnQgY29sb3JzLiBBbHNvIHNlZSBjb2xvci5qcyBmb3IgbW9yZSBjb2xvcnMuCiAgICAgICAqLwogICAgICAtLXByaW1hcnktY29sb3I6IHZhcigtLXBhcGVyLWluZGlnby01MDApOwogICAgICAtLWxpZ2h0LXByaW1hcnktY29sb3I6IHZhcigtLXBhcGVyLWluZGlnby0xMDApOwogICAgICAtLWRhcmstcHJpbWFyeS1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTcwMCk7CgogICAgICAtLWFjY2VudC1jb2xvcjogdmFyKC0tcGFwZXItcGluay1hMjAwKTsKICAgICAgLS1saWdodC1hY2NlbnQtY29sb3I6IHZhcigtLXBhcGVyLXBpbmstYTEwMCk7CiAgICAgIC0tZGFyay1hY2NlbnQtY29sb3I6IHZhcigtLXBhcGVyLXBpbmstYTQwMCk7CgoKICAgICAgLyoKICAgICAgICogTWF0ZXJpYWwgRGVzaWduIExpZ2h0IGJhY2tncm91bmQgdGhlbWUKICAgICAgICovCiAgICAgIC0tbGlnaHQtdGhlbWUtYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKICAgICAgLS1saWdodC10aGVtZS1iYXNlLWNvbG9yOiAjMDAwMDAwOwogICAgICAtLWxpZ2h0LXRoZW1lLXRleHQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktOTAwKTsKICAgICAgLS1saWdodC10aGVtZS1zZWNvbmRhcnktY29sb3I6ICM3MzczNzM7ICAvKiBmb3Igc2Vjb25kYXJ5IHRleHQgYW5kIGljb25zICovCiAgICAgIC0tbGlnaHQtdGhlbWUtZGlzYWJsZWQtY29sb3I6ICM5YjliOWI7ICAvKiBkaXNhYmxlZC9oaW50IHRleHQgKi8KICAgICAgLS1saWdodC10aGVtZS1kaXZpZGVyLWNvbG9yOiAjZGJkYmRiOwoKICAgICAgLyoKICAgICAgICogTWF0ZXJpYWwgRGVzaWduIERhcmsgYmFja2dyb3VuZCB0aGVtZQogICAgICAgKi8KICAgICAgLS1kYXJrLXRoZW1lLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktOTAwKTsKICAgICAgLS1kYXJrLXRoZW1lLWJhc2UtY29sb3I6ICNmZmZmZmY7CiAgICAgIC0tZGFyay10aGVtZS10ZXh0LWNvbG9yOiAjZmZmZmZmOwogICAgICAtLWRhcmstdGhlbWUtc2Vjb25kYXJ5LWNvbG9yOiAjYmNiY2JjOyAgLyogZm9yIHNlY29uZGFyeSB0ZXh0IGFuZCBpY29ucyAqLwogICAgICAtLWRhcmstdGhlbWUtZGlzYWJsZWQtY29sb3I6ICM2NDY0NjQ7ICAvKiBkaXNhYmxlZC9oaW50IHRleHQgKi8KICAgICAgLS1kYXJrLXRoZW1lLWRpdmlkZXItY29sb3I6ICMzYzNjM2M7CgogICAgICAvKgogICAgICAgKiBEZXByZWNhdGVkIHZhbHVlcyBiZWNhdXNlIG9mIHRoZWlyIGNvbmZ1c2luZyBuYW1lcy4KICAgICAgICovCiAgICAgIC0tdGV4dC1wcmltYXJ5LWNvbG9yOiB2YXIoLS1kYXJrLXRoZW1lLXRleHQtY29sb3IpOwogICAgICAtLWRlZmF1bHQtcHJpbWFyeS1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7CiAgICB9CiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+YDtpYS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGlhLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgcmE9e3Byb3BlcnRpZXM6e25hbWU6e3R5cGU6U3RyaW5nfSx2YWx1ZTp7bm90aWZ5OiEwLHR5cGU6U3RyaW5nfSxyZXF1aXJlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt9LGRldGFjaGVkOmZ1bmN0aW9uKCl7fX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2xldCBvYT1udWxsO2NvbnN0IGFhPXtwcm9wZXJ0aWVzOnt2YWxpZGF0b3I6e3R5cGU6U3RyaW5nfSxpbnZhbGlkOntub3RpZnk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwLHR5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX2ludmFsaWRDaGFuZ2VkIn19LHJlZ2lzdGVyZWQ6ZnVuY3Rpb24oKXtvYT1uZXcgeG8oe3R5cGU6InZhbGlkYXRvciJ9KX0sX2ludmFsaWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5pbnZhbGlkP3RoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJ0cnVlIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIpfSxnZXQgX3ZhbGlkYXRvcigpe3JldHVybiBvYSYmb2EuYnlLZXkodGhpcy52YWxpZGF0b3IpfSxoYXNWYWxpZGF0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9dGhpcy5fdmFsaWRhdG9yfSx2YWxpZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnZhbGlkPXZvaWQgMD09PXQmJnZvaWQgMCE9PXRoaXMudmFsdWU/IXRoaXMuX2dldFZhbGlkaXR5KHRoaXMudmFsdWUpOiF0aGlzLl9nZXRWYWxpZGl0eSh0KSwhdGhpcy5pbnZhbGlkfSxfZ2V0VmFsaWRpdHk6ZnVuY3Rpb24odCl7cmV0dXJuIXRoaXMuaGFzVmFsaWRhdG9yKCl8fHRoaXMuX3ZhbGlkYXRvci52YWxpZGF0ZSh0KX19LHNhPXtwcm9wZXJ0aWVzOntjaGVja2VkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVmbGVjdFRvQXR0cmlidXRlOiEwLG5vdGlmeTohMCxvYnNlcnZlcjoiX2NoZWNrZWRDaGFuZ2VkIn0sdG9nZ2xlczp7dHlwZTpCb29sZWFuLHZhbHVlOiEwLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sdmFsdWU6e3R5cGU6U3RyaW5nLHZhbHVlOiJvbiIsb2JzZXJ2ZXI6Il92YWx1ZUNoYW5nZWQifX0sb2JzZXJ2ZXJzOlsiX3JlcXVpcmVkQ2hhbmdlZChyZXF1aXJlZCkiXSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5faGFzSXJvbkNoZWNrZWRFbGVtZW50QmVoYXZpb3I9ITB9LF9nZXRWYWxpZGl0eTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kaXNhYmxlZHx8IXRoaXMucmVxdWlyZWR8fHRoaXMuY2hlY2tlZH0sX3JlcXVpcmVkQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMucmVxdWlyZWQ/dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtcmVxdWlyZWQiLCJ0cnVlIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtcmVxdWlyZWQiKX0sX2NoZWNrZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5hY3RpdmU9dGhpcy5jaGVja2VkLHRoaXMuZmlyZSgiaXJvbi1jaGFuZ2UiKX0sX3ZhbHVlQ2hhbmdlZDpmdW5jdGlvbigpe251bGw9PXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPSJvbiIpfX0sbGE9e29ic2VydmVyczpbIl9mb2N1c2VkQ2hhbmdlZChyZWNlaXZlZEZvY3VzRnJvbUtleWJvYXJkKSJdLF9mb2N1c2VkQ2hhbmdlZDpmdW5jdGlvbih0KXt0JiZ0aGlzLmVuc3VyZVJpcHBsZSgpLHRoaXMuaGFzUmlwcGxlKCkmJih0aGlzLl9yaXBwbGUuaG9sZERvd249dCl9LF9jcmVhdGVSaXBwbGU6ZnVuY3Rpb24oKXt2YXIgdD1Kby5fY3JlYXRlUmlwcGxlKCk7cmV0dXJuIHQuaWQ9ImluayIsdC5zZXRBdHRyaWJ1dGUoImNlbnRlciIsIiIpLHQuY2xhc3NMaXN0LmFkZCgiY2lyY2xlIiksdH19LGNhPVtYbyxxbyxKbyxsYV0sdWE9W2NhLFtyYSxhYSxzYV0se19jaGVja2VkQ2hhbmdlZDpmdW5jdGlvbigpe3NhLl9jaGVja2VkQ2hhbmdlZC5jYWxsKHRoaXMpLHRoaXMuaGFzUmlwcGxlKCkmJih0aGlzLmNoZWNrZWQ/dGhpcy5fcmlwcGxlLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsIiIpOnRoaXMuX3JpcHBsZS5yZW1vdmVBdHRyaWJ1dGUoImNoZWNrZWQiKSl9LF9idXR0b25TdGF0ZUNoYW5nZWQ6ZnVuY3Rpb24oKXtKby5fYnV0dG9uU3RhdGVDaGFuZ2VkLmNhbGwodGhpcyksdGhpcy5kaXNhYmxlZHx8dGhpcy5pc0F0dGFjaGVkJiYodGhpcy5jaGVja2VkPXRoaXMuYWN0aXZlKX19XSxoYT1fZWA8c3R5bGU+CiAgOmhvc3QgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1zaXplOiB2YXIoLS1wYXBlci1jaGVja2JveC1zaXplLCAxOHB4KTsKICAgIC8qIC0xcHggaXMgYSBzZW50aW5lbCBmb3IgdGhlIGRlZmF1bHQgYW5kIGlzIHJlcGxhY2VkIGluIFxgYXR0YWNoZWRcYC4gKi8KICAgIC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZTogdmFyKC0tcGFwZXItY2hlY2tib3gtaW5rLXNpemUsIC0xcHgpOwogICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgIGxpbmUtaGVpZ2h0OiAwOwogICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKICB9CgogIDpob3N0KFtoaWRkZW5dKSB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgfQoKICA6aG9zdCg6Zm9jdXMpIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgfQoKICAuaGlkZGVuIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAjY2hlY2tib3hDb250YWluZXIgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSk7CiAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSk7CiAgICBtaW4td2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSk7CiAgICBtYXJnaW46IHZhcigtLXBhcGVyLWNoZWNrYm94LW1hcmdpbiwgaW5pdGlhbCk7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdmFyKC0tcGFwZXItY2hlY2tib3gtdmVydGljYWwtYWxpZ24sIG1pZGRsZSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpOwogIH0KCiAgI2luayB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CgogICAgLyogQ2VudGVyIHRoZSByaXBwbGUgaW4gdGhlIGNoZWNrYm94IGJ5IG5lZ2F0aXZlIG9mZnNldHRpbmcgaXQgYnkKICAgICAqIChpbmtXaWR0aCAtIHJpcHBsZVdpZHRoKSAvIDIgKi8KICAgIHRvcDogY2FsYygwcHggLSAodmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSkgLSB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKSAvIDIpOwogICAgbGVmdDogY2FsYygwcHggLSAodmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSkgLSB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKSAvIDIpOwogICAgd2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtaW5rLXNpemUpOwogICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LWluay1zaXplKTsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtaW5rLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgIG9wYWNpdHk6IDAuNjsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgI2luazpkaXIocnRsKSB7CiAgICByaWdodDogY2FsYygwcHggLSAodmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSkgLSB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKSAvIDIpOwogICAgbGVmdDogYXV0bzsKICB9CgogICNpbmtbY2hlY2tlZF0gewogICAgY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgfQoKICAjY2hlY2tib3ggewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGhlaWdodDogMTAwJTsKICAgIGJvcmRlcjogc29saWQgMnB4OwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGJvcmRlci1jb2xvciAxNDBtczsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGJvcmRlci1jb2xvciAxNDBtczsKCiAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLWNoZWNrYm94LWFuaW1hdGlvbi1kdXJhdGlvbiwgMTQwbXMpOwogICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItY2hlY2tib3gtYW5pbWF0aW9uLWR1cmF0aW9uLCAxNDBtcyk7CiAgfQoKICAvKiBjaGVja2JveCBjaGVja2VkIGFuaW1hdGlvbnMgKi8KICAjY2hlY2tib3guY2hlY2tlZCAjY2hlY2ttYXJrIHsKICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjaGVja21hcmstZXhwYW5kIDE0MG1zIGVhc2Utb3V0IGZvcndhcmRzOwogICAgYW5pbWF0aW9uOiBjaGVja21hcmstZXhwYW5kIDE0MG1zIGVhc2Utb3V0IGZvcndhcmRzOwoKICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci1jaGVja2JveC1hbmltYXRpb24tZHVyYXRpb24sIDE0MG1zKTsKICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItY2hlY2tib3gtYW5pbWF0aW9uLWR1cmF0aW9uLCAxNDBtcyk7CiAgfQoKICBALXdlYmtpdC1rZXlmcmFtZXMgY2hlY2ttYXJrLWV4cGFuZCB7CiAgICAwJSB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLCAwKSByb3RhdGUoNDVkZWcpOwogICAgfQogICAgMTAwJSB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSByb3RhdGUoNDVkZWcpOwogICAgfQogIH0KCiAgQGtleWZyYW1lcyBjaGVja21hcmstZXhwYW5kIHsKICAgIDAlIHsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKSByb3RhdGUoNDVkZWcpOwogICAgfQogICAgMTAwJSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgcm90YXRlKDQ1ZGVnKTsKICAgIH0KICB9CgogICNjaGVja2JveC5jaGVja2VkIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwogIH0KCiAgI2NoZWNrbWFyayB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB3aWR0aDogMzYlOwogICAgaGVpZ2h0OiA3MCU7CiAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgYm9yZGVyLXRvcDogbm9uZTsKICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiBjYWxjKDIvMTUgKiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKTsKICAgIGJvcmRlci1ib3R0b20td2lkdGg6IGNhbGMoMi8xNSAqIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSkpOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC1jaGVja21hcmstY29sb3IsIHdoaXRlKTsKICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogOTclIDg2JTsKICAgIHRyYW5zZm9ybS1vcmlnaW46IDk3JSA4NiU7CiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogcHJvdGVjdCBhZ2FpbnN0IHBhZ2UtbGV2ZWwgYm94LXNpemluZyAqLwogIH0KCiAgI2NoZWNrbWFyazpkaXIocnRsKSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSAxNCU7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTQlOwogIH0KCiAgLyogbGFiZWwgKi8KICAjY2hlY2tib3hMYWJlbCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1wYXBlci1jaGVja2JveC1sYWJlbC1zcGFjaW5nLCA4cHgpOwogICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICBjb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtbGFiZWwtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgQGFwcGx5IC0tcGFwZXItY2hlY2tib3gtbGFiZWw7CiAgfQoKICA6aG9zdChbY2hlY2tlZF0pICNjaGVja2JveExhYmVsIHsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC1sYWJlbC1jaGVja2VkLWNvbG9yLCB2YXIoLS1wYXBlci1jaGVja2JveC1sYWJlbC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSkpOwogICAgQGFwcGx5IC0tcGFwZXItY2hlY2tib3gtbGFiZWwtY2hlY2tlZDsKICB9CgogICNjaGVja2JveExhYmVsOmRpcihydGwpIHsKICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXBhcGVyLWNoZWNrYm94LWxhYmVsLXNwYWNpbmcsIDhweCk7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgfQoKICAjY2hlY2tib3hMYWJlbFtoaWRkZW5dIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAvKiBkaXNhYmxlZCBzdGF0ZSAqLwoKICA6aG9zdChbZGlzYWJsZWRdKSAjY2hlY2tib3ggewogICAgb3BhY2l0eTogMC41OwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogIH0KCiAgOmhvc3QoW2Rpc2FibGVkXVtjaGVja2VkXSkgI2NoZWNrYm94IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICBvcGFjaXR5OiAwLjU7CiAgfQoKICA6aG9zdChbZGlzYWJsZWRdKSAjY2hlY2tib3hMYWJlbCAgewogICAgb3BhY2l0eTogMC42NTsKICB9CgogIC8qIGludmFsaWQgc3RhdGUgKi8KICAjY2hlY2tib3guaW52YWxpZDpub3QoLmNoZWNrZWQpIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtZXJyb3ItY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CiAgfQo8L3N0eWxlPgoKPGRpdiBpZD0iY2hlY2tib3hDb250YWluZXIiPgogIDxkaXYgaWQ9ImNoZWNrYm94IiBjbGFzcyQ9IltbX2NvbXB1dGVDaGVja2JveENsYXNzKGNoZWNrZWQsIGludmFsaWQpXV0iPgogICAgPGRpdiBpZD0iY2hlY2ttYXJrIiBjbGFzcyQ9IltbX2NvbXB1dGVDaGVja21hcmtDbGFzcyhjaGVja2VkKV1dIj48L2Rpdj4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGlkPSJjaGVja2JveExhYmVsIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpsZXQgZGE7aGEuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIiksUnIoe190ZW1wbGF0ZTpoYSxpczoicGFwZXItY2hlY2tib3giLGJlaGF2aW9yczpbdWFdLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJjaGVja2JveCIsImFyaWEtY2hlY2tlZCI6ITEsdGFiaW5kZXg6MH0scHJvcGVydGllczp7YXJpYUFjdGl2ZUF0dHJpYnV0ZTp7dHlwZTpTdHJpbmcsdmFsdWU6ImFyaWEtY2hlY2tlZCJ9fSxhdHRhY2hlZDpmdW5jdGlvbigpe0xpKHRoaXMsKGZ1bmN0aW9uKCl7aWYoIi0xcHgiPT09dGhpcy5nZXRDb21wdXRlZFN0eWxlVmFsdWUoIi0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSIpLnRyaW0oKSl7dmFyIHQ9dGhpcy5nZXRDb21wdXRlZFN0eWxlVmFsdWUoIi0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1zaXplIikudHJpbSgpLGU9InB4IixuPXQubWF0Y2goL1tBLVphLXpdKyQvKTtudWxsIT09biYmKGU9blswXSk7dmFyIGk9cGFyc2VGbG9hdCh0KSxyPTgvMyppOyJweCI9PT1lJiYocj1NYXRoLmZsb29yKHIpKSUyIT1pJTImJnIrKyx0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tcGFwZXItY2hlY2tib3gtaW5rLXNpemUiOnIrZX0pfX0pKX0sX2NvbXB1dGVDaGVja2JveENsYXNzOmZ1bmN0aW9uKHQsZSl7dmFyIG49IiI7cmV0dXJuIHQmJihuKz0iY2hlY2tlZCAiKSxlJiYobis9ImludmFsaWQiKSxufSxfY29tcHV0ZUNoZWNrbWFya0NsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiB0PyIiOiJoaWRkZW4ifSxfY3JlYXRlUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JpcHBsZUNvbnRhaW5lcj10aGlzLiQuY2hlY2tib3hDb250YWluZXIsbGEuX2NyZWF0ZVJpcHBsZS5jYWxsKHRoaXMpfX0pO2NvbnN0IHBhPXtwcm9wZXJ0aWVzOntzaXppbmdUYXJnZXQ6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSxmaXRJbnRvOnt0eXBlOk9iamVjdCx2YWx1ZTp3aW5kb3d9LG5vT3ZlcmxhcDp7dHlwZTpCb29sZWFufSxwb3NpdGlvblRhcmdldDp7dHlwZTpFbGVtZW50fSxob3Jpem9udGFsQWxpZ246e3R5cGU6U3RyaW5nfSx2ZXJ0aWNhbEFsaWduOnt0eXBlOlN0cmluZ30sZHluYW1pY0FsaWduOnt0eXBlOkJvb2xlYW59LGhvcml6b250YWxPZmZzZXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwfSx2ZXJ0aWNhbE9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MCxub3RpZnk6ITB9LGF1dG9GaXRPbkF0dGFjaDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxleHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9maXRJbmZvOnt0eXBlOk9iamVjdH19LGdldCBfZml0V2lkdGgoKXtyZXR1cm4gdGhpcy5maXRJbnRvPT09d2luZG93P3RoaXMuZml0SW50by5pbm5lcldpZHRoOnRoaXMuZml0SW50by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH0sZ2V0IF9maXRIZWlnaHQoKXtyZXR1cm4gdGhpcy5maXRJbnRvPT09d2luZG93P3RoaXMuZml0SW50by5pbm5lckhlaWdodDp0aGlzLmZpdEludG8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fSxnZXQgX2ZpdExlZnQoKXtyZXR1cm4gdGhpcy5maXRJbnRvPT09d2luZG93PzA6dGhpcy5maXRJbnRvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnR9LGdldCBfZml0VG9wKCl7cmV0dXJuIHRoaXMuZml0SW50bz09PXdpbmRvdz8wOnRoaXMuZml0SW50by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3B9LGdldCBfZGVmYXVsdFBvc2l0aW9uVGFyZ2V0KCl7dmFyIHQ9WWkodGhpcykucGFyZW50Tm9kZTtyZXR1cm4gdCYmdC5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmKHQ9dC5ob3N0KSx0fSxnZXQgX2xvY2FsZUhvcml6b250YWxBbGlnbigpe2lmKHRoaXMuX2lzUlRMKXtpZigicmlnaHQiPT09dGhpcy5ob3Jpem9udGFsQWxpZ24pcmV0dXJuImxlZnQiO2lmKCJsZWZ0Ij09PXRoaXMuaG9yaXpvbnRhbEFsaWduKXJldHVybiJyaWdodCJ9cmV0dXJuIHRoaXMuaG9yaXpvbnRhbEFsaWdufSxnZXQgX19zaG91bGRQb3NpdGlvbigpe3JldHVybih0aGlzLmhvcml6b250YWxBbGlnbnx8dGhpcy52ZXJ0aWNhbEFsaWduKSYmdGhpcy5wb3NpdGlvblRhcmdldH0sZ2V0IF9pc1JUTCgpe3JldHVybiB2b2lkIDA9PT10aGlzLl9tZW1vaXplZElzUlRMJiYodGhpcy5fbWVtb2l6ZWRJc1JUTD0icnRsIj09d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuZGlyZWN0aW9uKSx0aGlzLl9tZW1vaXplZElzUlRMfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMucG9zaXRpb25UYXJnZXQ9dGhpcy5wb3NpdGlvblRhcmdldHx8dGhpcy5fZGVmYXVsdFBvc2l0aW9uVGFyZ2V0LHRoaXMuYXV0b0ZpdE9uQXR0YWNoJiYoIm5vbmUiPT09d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuZGlzcGxheT9zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5maXQoKX0uYmluZCh0aGlzKSk6KHdpbmRvdy5TaGFkeURPTSYmU2hhZHlET00uZmx1c2goKSx0aGlzLmZpdCgpKSl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fX2RlZmVycmVkRml0JiYoY2xlYXJUaW1lb3V0KHRoaXMuX19kZWZlcnJlZEZpdCksdGhpcy5fX2RlZmVycmVkRml0PW51bGwpfSxmaXQ6ZnVuY3Rpb24oKXt0aGlzLnBvc2l0aW9uKCksdGhpcy5jb25zdHJhaW4oKSx0aGlzLmNlbnRlcigpfSxfZGlzY292ZXJJbmZvOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX2ZpdEluZm8pe3ZhciB0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5zaXppbmdUYXJnZXQpO3RoaXMuX2ZpdEluZm89e2lubGluZVN0eWxlOnt0b3A6dGhpcy5zdHlsZS50b3B8fCIiLGxlZnQ6dGhpcy5zdHlsZS5sZWZ0fHwiIixwb3NpdGlvbjp0aGlzLnN0eWxlLnBvc2l0aW9ufHwiIn0sc2l6ZXJJbmxpbmVTdHlsZTp7bWF4V2lkdGg6dGhpcy5zaXppbmdUYXJnZXQuc3R5bGUubWF4V2lkdGh8fCIiLG1heEhlaWdodDp0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5tYXhIZWlnaHR8fCIiLGJveFNpemluZzp0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5ib3hTaXppbmd8fCIifSxwb3NpdGlvbmVkQnk6e3ZlcnRpY2FsbHk6ImF1dG8iIT09dC50b3A/InRvcCI6ImF1dG8iIT09dC5ib3R0b20/ImJvdHRvbSI6bnVsbCxob3Jpem9udGFsbHk6ImF1dG8iIT09dC5sZWZ0PyJsZWZ0IjoiYXV0byIhPT10LnJpZ2h0PyJyaWdodCI6bnVsbH0sc2l6ZWRCeTp7aGVpZ2h0OiJub25lIiE9PWUubWF4SGVpZ2h0LHdpZHRoOiJub25lIiE9PWUubWF4V2lkdGgsbWluV2lkdGg6cGFyc2VJbnQoZS5taW5XaWR0aCwxMCl8fDAsbWluSGVpZ2h0OnBhcnNlSW50KGUubWluSGVpZ2h0LDEwKXx8MH0sbWFyZ2luOnt0b3A6cGFyc2VJbnQodC5tYXJnaW5Ub3AsMTApfHwwLHJpZ2h0OnBhcnNlSW50KHQubWFyZ2luUmlnaHQsMTApfHwwLGJvdHRvbTpwYXJzZUludCh0Lm1hcmdpbkJvdHRvbSwxMCl8fDAsbGVmdDpwYXJzZUludCh0Lm1hcmdpbkxlZnQsMTApfHwwfX19fSxyZXNldEZpdDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZpdEluZm98fHt9O2Zvcih2YXIgZSBpbiB0LnNpemVySW5saW5lU3R5bGUpdGhpcy5zaXppbmdUYXJnZXQuc3R5bGVbZV09dC5zaXplcklubGluZVN0eWxlW2VdO2Zvcih2YXIgZSBpbiB0LmlubGluZVN0eWxlKXRoaXMuc3R5bGVbZV09dC5pbmxpbmVTdHlsZVtlXTt0aGlzLl9maXRJbmZvPW51bGx9LHJlZml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zaXppbmdUYXJnZXQuc2Nyb2xsTGVmdCxlPXRoaXMuc2l6aW5nVGFyZ2V0LnNjcm9sbFRvcDt0aGlzLnJlc2V0Rml0KCksdGhpcy5maXQoKSx0aGlzLnNpemluZ1RhcmdldC5zY3JvbGxMZWZ0PXQsdGhpcy5zaXppbmdUYXJnZXQuc2Nyb2xsVG9wPWV9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX19zaG91bGRQb3NpdGlvbilyZXR1cm47dGhpcy5fZGlzY292ZXJJbmZvKCksd2luZG93LlNoYWR5RE9NJiZ3aW5kb3cuU2hhZHlET00uZmx1c2goKSx0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zaXppbmdUYXJnZXQuc3R5bGUuYm94U2l6aW5nPSJib3JkZXItYm94Iix0aGlzLnN0eWxlLmxlZnQ9IjBweCIsdGhpcy5zdHlsZS50b3A9IjBweCI7dmFyIHQ9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlPXRoaXMuX19nZXROb3JtYWxpemVkUmVjdCh0aGlzLnBvc2l0aW9uVGFyZ2V0KSxuPXRoaXMuX19nZXROb3JtYWxpemVkUmVjdCh0aGlzLmZpdEludG8pO2xldCBpLHIsbyxhO3RoaXMuZXhwYW5kU2l6aW5nVGFyZ2V0Rm9yU2Nyb2xsYmFycyYmKGk9dGhpcy5zaXppbmdUYXJnZXQub2Zmc2V0V2lkdGgscj10aGlzLnNpemluZ1RhcmdldC5vZmZzZXRIZWlnaHQsbz10aGlzLnNpemluZ1RhcmdldC5jbGllbnRXaWR0aCxhPXRoaXMuc2l6aW5nVGFyZ2V0LmNsaWVudEhlaWdodCk7dmFyIHM9dGhpcy5fZml0SW5mby5tYXJnaW4sbD10aGlzLl9fZ2V0UG9zaXRpb24odGhpcy5fbG9jYWxlSG9yaXpvbnRhbEFsaWduLHRoaXMudmVydGljYWxBbGlnbix7d2lkdGg6dC53aWR0aCtzLmxlZnQrcy5yaWdodCxoZWlnaHQ6dC5oZWlnaHQrcy50b3Arcy5ib3R0b219LHQsZSxuKSxjPWwubGVmdCtzLmxlZnQsdT1sLnRvcCtzLnRvcCxoPU1hdGgubWluKG4ucmlnaHQtcy5yaWdodCxjK3Qud2lkdGgpLGQ9TWF0aC5taW4obi5ib3R0b20tcy5ib3R0b20sdSt0LmhlaWdodCk7Yz1NYXRoLm1heChuLmxlZnQrcy5sZWZ0LE1hdGgubWluKGMsaC10aGlzLl9maXRJbmZvLnNpemVkQnkubWluV2lkdGgpKSx1PU1hdGgubWF4KG4udG9wK3MudG9wLE1hdGgubWluKHUsZC10aGlzLl9maXRJbmZvLnNpemVkQnkubWluSGVpZ2h0KSk7Y29uc3QgcD1NYXRoLm1heChoLWMsdGhpcy5fZml0SW5mby5zaXplZEJ5Lm1pbldpZHRoKSxmPU1hdGgubWF4KGQtdSx0aGlzLl9maXRJbmZvLnNpemVkQnkubWluSGVpZ2h0KTt0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5tYXhXaWR0aD1wKyJweCIsdGhpcy5zaXppbmdUYXJnZXQuc3R5bGUubWF4SGVpZ2h0PWYrInB4Ijtjb25zdCBtPWMtdC5sZWZ0LGc9dS10LnRvcDtpZih0aGlzLnN0eWxlLmxlZnQ9YCR7bX1weGAsdGhpcy5zdHlsZS50b3A9YCR7Z31weGAsdGhpcy5leHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzKXtjb25zdCB0PXRoaXMuc2l6aW5nVGFyZ2V0Lm9mZnNldEhlaWdodCxlPXQtdGhpcy5zaXppbmdUYXJnZXQuY2xpZW50SGVpZ2h0LShyLWEpO2lmKGU+MCl7Y29uc3QgaT1NYXRoLm1pbihuLmhlaWdodC1zLnRvcC1zLmJvdHRvbSxmK2UpO3RoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlLm1heEhlaWdodD1gJHtpfXB4YDtjb25zdCByPXRoaXMuc2l6aW5nVGFyZ2V0Lm9mZnNldEhlaWdodCxvPXItdDtsZXQgYTsidG9wIj09PWwudmVydGljYWxBbGlnbj9hPWc6Im1pZGRsZSI9PT1sLnZlcnRpY2FsQWxpZ24/YT1nLW8vMjoiYm90dG9tIj09PWwudmVydGljYWxBbGlnbiYmKGE9Zy1vKSxhPU1hdGgubWF4KG4udG9wK3MudG9wLE1hdGgubWluKGEsbi5ib3R0b20tcy5ib3R0b20tcikpLHRoaXMuc3R5bGUudG9wPWAke2F9cHhgfWNvbnN0IGM9dGhpcy5zaXppbmdUYXJnZXQub2Zmc2V0V2lkdGgsdT1jLXRoaXMuc2l6aW5nVGFyZ2V0LmNsaWVudFdpZHRoLShpLW8pO2lmKHU+MCl7Y29uc3QgdD0oKCk9PntpZih2b2lkIDAhPT1kYSlyZXR1cm4gZGE7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtPYmplY3QuYXNzaWduKHQuc3R5bGUse292ZXJmbG93OiJhdXRvIixwb3NpdGlvbjoiZml4ZWQiLGxlZnQ6IjBweCIsdG9wOiIwcHgiLG1heFdpZHRoOiIxMDBweCIsbWF4SGVpZ2h0OiIxMDBweCJ9KTtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLnN0eWxlLndpZHRoPSIyMDBweCIsZS5zdHlsZS5oZWlnaHQ9IjIwMHB4Iix0LmFwcGVuZENoaWxkKGUpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksZGE9TWF0aC5hYnModC5vZmZzZXRXaWR0aC0xMDApPjE/dC5vZmZzZXRXaWR0aC10LmNsaWVudFdpZHRoOjAsZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KSxkYX0pKCksZT1NYXRoLm1pbihuLndpZHRoLXMubGVmdC1zLnJpZ2h0LHArdS10KTt0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5tYXhXaWR0aD1gJHtlfXB4YDtjb25zdCBpPXRoaXMuc2l6aW5nVGFyZ2V0Lm9mZnNldFdpZHRoK3Qscj1pLWM7bGV0IG87ImxlZnQiPT09bC5ob3Jpem9udGFsQWxpZ24/bz1tOiJjZW50ZXIiPT09bC5ob3Jpem9udGFsQWxpZ24/bz1tLXIvMjoicmlnaHQiPT09bC5ob3Jpem9udGFsQWxpZ24mJihvPW0tciksbz1NYXRoLm1heChuLmxlZnQrcy5sZWZ0LE1hdGgubWluKG8sbi5yaWdodC1zLnJpZ2h0LWkpKSx0aGlzLnN0eWxlLmxlZnQ9YCR7b31weGB9fX0sY29uc3RyYWluOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX19zaG91bGRQb3NpdGlvbil7dGhpcy5fZGlzY292ZXJJbmZvKCk7dmFyIHQ9dGhpcy5fZml0SW5mbzt0LnBvc2l0aW9uZWRCeS52ZXJ0aWNhbGx5fHwodGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUudG9wPSIwcHgiKSx0LnBvc2l0aW9uZWRCeS5ob3Jpem9udGFsbHl8fCh0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdHlsZS5sZWZ0PSIwcHgiKSx0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5ib3hTaXppbmc9ImJvcmRlci1ib3giO3ZhciBlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dC5zaXplZEJ5LmhlaWdodHx8dGhpcy5fX3NpemVEaW1lbnNpb24oZSx0LnBvc2l0aW9uZWRCeS52ZXJ0aWNhbGx5LCJ0b3AiLCJib3R0b20iLCJIZWlnaHQiKSx0LnNpemVkQnkud2lkdGh8fHRoaXMuX19zaXplRGltZW5zaW9uKGUsdC5wb3NpdGlvbmVkQnkuaG9yaXpvbnRhbGx5LCJsZWZ0IiwicmlnaHQiLCJXaWR0aCIpfX0sX3NpemVEaW1lbnNpb246ZnVuY3Rpb24odCxlLG4saSxyKXt0aGlzLl9fc2l6ZURpbWVuc2lvbih0LGUsbixpLHIpfSxfX3NpemVEaW1lbnNpb246ZnVuY3Rpb24odCxlLG4saSxyKXt2YXIgbz10aGlzLl9maXRJbmZvLGE9dGhpcy5fX2dldE5vcm1hbGl6ZWRSZWN0KHRoaXMuZml0SW50bykscz0iV2lkdGgiPT09cj9hLndpZHRoOmEuaGVpZ2h0LGw9ZT09PWksYz0ib2Zmc2V0IityO3RoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlWyJtYXgiK3JdPXMtby5tYXJnaW5bbD9uOmldLShsP3MtdFtpXTp0W25dKS0odGhpc1tjXS10aGlzLnNpemluZ1RhcmdldFtjXSkrInB4In0sY2VudGVyOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX19zaG91bGRQb3NpdGlvbil7dGhpcy5fZGlzY292ZXJJbmZvKCk7dmFyIHQ9dGhpcy5fZml0SW5mby5wb3NpdGlvbmVkQnk7aWYoIXQudmVydGljYWxseXx8IXQuaG9yaXpvbnRhbGx5KXt0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdC52ZXJ0aWNhbGx5fHwodGhpcy5zdHlsZS50b3A9IjBweCIpLHQuaG9yaXpvbnRhbGx5fHwodGhpcy5zdHlsZS5sZWZ0PSIwcHgiKTt2YXIgZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49dGhpcy5fX2dldE5vcm1hbGl6ZWRSZWN0KHRoaXMuZml0SW50byk7dC52ZXJ0aWNhbGx5fHwodGhpcy5zdHlsZS50b3A9bi50b3AtZS50b3ArKG4uaGVpZ2h0LWUuaGVpZ2h0KS8yKyJweCIpLHQuaG9yaXpvbnRhbGx5fHwodGhpcy5zdHlsZS5sZWZ0PW4ubGVmdC1lLmxlZnQrKG4ud2lkdGgtZS53aWR0aCkvMisicHgiKX19fSxfX2dldE5vcm1hbGl6ZWRSZWN0OmZ1bmN0aW9uKHQpe3JldHVybiB0PT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHx0PT09d2luZG93P3t0b3A6MCxsZWZ0OjAsd2lkdGg6d2luZG93LmlubmVyV2lkdGgsaGVpZ2h0OndpbmRvdy5pbm5lckhlaWdodCxyaWdodDp3aW5kb3cuaW5uZXJXaWR0aCxib3R0b206d2luZG93LmlubmVySGVpZ2h0fTp0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfSxfX2dldE9mZnNjcmVlbkFyZWE6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPU1hdGgubWluKDAsdC50b3ApK01hdGgubWluKDAsbi5ib3R0b20tKHQudG9wK2UuaGVpZ2h0KSkscj1NYXRoLm1pbigwLHQubGVmdCkrTWF0aC5taW4oMCxuLnJpZ2h0LSh0LmxlZnQrZS53aWR0aCkpO3JldHVybiBNYXRoLmFicyhpKSplLndpZHRoK01hdGguYWJzKHIpKmUuaGVpZ2h0fSxfX2dldFBvc2l0aW9uOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt2YXIgYSxzPVt7dmVydGljYWxBbGlnbjoidG9wIixob3Jpem9udGFsQWxpZ246ImxlZnQiLHRvcDpyLnRvcCt0aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6ci5sZWZ0K3RoaXMuaG9yaXpvbnRhbE9mZnNldH0se3ZlcnRpY2FsQWxpZ246InRvcCIsaG9yaXpvbnRhbEFsaWduOiJyaWdodCIsdG9wOnIudG9wK3RoaXMudmVydGljYWxPZmZzZXQsbGVmdDpyLnJpZ2h0LW4ud2lkdGgtdGhpcy5ob3Jpem9udGFsT2Zmc2V0fSx7dmVydGljYWxBbGlnbjoiYm90dG9tIixob3Jpem9udGFsQWxpZ246ImxlZnQiLHRvcDpyLmJvdHRvbS1uLmhlaWdodC10aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6ci5sZWZ0K3RoaXMuaG9yaXpvbnRhbE9mZnNldH0se3ZlcnRpY2FsQWxpZ246ImJvdHRvbSIsaG9yaXpvbnRhbEFsaWduOiJyaWdodCIsdG9wOnIuYm90dG9tLW4uaGVpZ2h0LXRoaXMudmVydGljYWxPZmZzZXQsbGVmdDpyLnJpZ2h0LW4ud2lkdGgtdGhpcy5ob3Jpem9udGFsT2Zmc2V0fV07aWYodGhpcy5ub092ZXJsYXApe2Zvcih2YXIgbD0wLGM9cy5sZW5ndGg7bDxjO2wrKyl7dmFyIHU9e307Zm9yKHZhciBoIGluIHNbbF0pdVtoXT1zW2xdW2hdO3MucHVzaCh1KX1zWzBdLnRvcD1zWzFdLnRvcCs9ci5oZWlnaHQsc1syXS50b3A9c1szXS50b3AtPXIuaGVpZ2h0LHNbNF0ubGVmdD1zWzZdLmxlZnQrPXIud2lkdGgsc1s1XS5sZWZ0PXNbN10ubGVmdC09ci53aWR0aH1mb3IoZT0iYXV0byI9PT1lP251bGw6ZSwodD0iYXV0byI9PT10P251bGw6dCkmJiJjZW50ZXIiIT09dHx8KHMucHVzaCh7dmVydGljYWxBbGlnbjoidG9wIixob3Jpem9udGFsQWxpZ246ImNlbnRlciIsdG9wOnIudG9wK3RoaXMudmVydGljYWxPZmZzZXQrKHRoaXMubm9PdmVybGFwP3IuaGVpZ2h0OjApLGxlZnQ6ci5sZWZ0LWkud2lkdGgvMityLndpZHRoLzIrdGhpcy5ob3Jpem9udGFsT2Zmc2V0fSkscy5wdXNoKHt2ZXJ0aWNhbEFsaWduOiJib3R0b20iLGhvcml6b250YWxBbGlnbjoiY2VudGVyIix0b3A6ci5ib3R0b20tbi5oZWlnaHQtdGhpcy52ZXJ0aWNhbE9mZnNldC0odGhpcy5ub092ZXJsYXA/ci5oZWlnaHQ6MCksbGVmdDpyLmxlZnQtaS53aWR0aC8yK3Iud2lkdGgvMit0aGlzLmhvcml6b250YWxPZmZzZXR9KSksZSYmIm1pZGRsZSIhPT1lfHwocy5wdXNoKHt2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGhvcml6b250YWxBbGlnbjoibGVmdCIsdG9wOnIudG9wLWkuaGVpZ2h0LzIrci5oZWlnaHQvMit0aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6ci5sZWZ0K3RoaXMuaG9yaXpvbnRhbE9mZnNldCsodGhpcy5ub092ZXJsYXA/ci53aWR0aDowKX0pLHMucHVzaCh7dmVydGljYWxBbGlnbjoibWlkZGxlIixob3Jpem9udGFsQWxpZ246InJpZ2h0Iix0b3A6ci50b3AtaS5oZWlnaHQvMityLmhlaWdodC8yK3RoaXMudmVydGljYWxPZmZzZXQsbGVmdDpyLnJpZ2h0LW4ud2lkdGgtdGhpcy5ob3Jpem9udGFsT2Zmc2V0LSh0aGlzLm5vT3ZlcmxhcD9yLndpZHRoOjApfSkpLCJtaWRkbGUiPT09ZSYmImNlbnRlciI9PT10JiZzLnB1c2goe3ZlcnRpY2FsQWxpZ246Im1pZGRsZSIsaG9yaXpvbnRhbEFsaWduOiJjZW50ZXIiLHRvcDpyLnRvcC1pLmhlaWdodC8yK3IuaGVpZ2h0LzIrdGhpcy52ZXJ0aWNhbE9mZnNldCxsZWZ0OnIubGVmdC1pLndpZHRoLzIrci53aWR0aC8yK3RoaXMuaG9yaXpvbnRhbE9mZnNldH0pLGw9MDtsPHMubGVuZ3RoO2wrKyl7dmFyIGQ9c1tsXSxwPWQudmVydGljYWxBbGlnbj09PWUsZj1kLmhvcml6b250YWxBbGlnbj09PXQ7aWYoIXRoaXMuZHluYW1pY0FsaWduJiYhdGhpcy5ub092ZXJsYXAmJnAmJmYpe2E9ZDticmVha312YXIgbT0oIWV8fHApJiYoIXR8fGYpO2lmKHRoaXMuZHluYW1pY0FsaWdufHxtKXtpZihkLm9mZnNjcmVlbkFyZWE9dGhpcy5fX2dldE9mZnNjcmVlbkFyZWEoZCxuLG8pLDA9PT1kLm9mZnNjcmVlbkFyZWEmJm0pe2E9ZDticmVha312YXIgZz1kLm9mZnNjcmVlbkFyZWEtKGE9YXx8ZCkub2Zmc2NyZWVuQXJlYTsoZzwwfHwwPT09ZyYmKHB8fGYpKSYmKGE9ZCl9fXJldHVybiBhfX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwp2YXIgZmE9RWxlbWVudC5wcm90b3R5cGUsbWE9ZmEubWF0Y2hlc3x8ZmEubWF0Y2hlc1NlbGVjdG9yfHxmYS5tb3pNYXRjaGVzU2VsZWN0b3J8fGZhLm1zTWF0Y2hlc1NlbGVjdG9yfHxmYS5vTWF0Y2hlc1NlbGVjdG9yfHxmYS53ZWJraXRNYXRjaGVzU2VsZWN0b3I7Y29uc3QgZ2E9bmV3IGNsYXNze2dldFRhYmJhYmxlTm9kZXModCl7dmFyIGU9W107cmV0dXJuIHRoaXMuX2NvbGxlY3RUYWJiYWJsZU5vZGVzKHQsZSk/dGhpcy5fc29ydEJ5VGFiSW5kZXgoZSk6ZX1pc0ZvY3VzYWJsZSh0KXtyZXR1cm4gbWEuY2FsbCh0LCJpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgYnV0dG9uLCBvYmplY3QiKT9tYS5jYWxsKHQsIjpub3QoW2Rpc2FibGVkXSkiKTptYS5jYWxsKHQsImFbaHJlZl0sIGFyZWFbaHJlZl0sIGlmcmFtZSwgW3RhYmluZGV4XSwgW2NvbnRlbnRFZGl0YWJsZV0iKX1pc1RhYmJhYmxlKHQpe3JldHVybiB0aGlzLmlzRm9jdXNhYmxlKHQpJiZtYS5jYWxsKHQsJzpub3QoW3RhYmluZGV4PSItMSJdKScpJiZ0aGlzLl9pc1Zpc2libGUodCl9X25vcm1hbGl6ZWRUYWJJbmRleCh0KXtpZih0aGlzLmlzRm9jdXNhYmxlKHQpKXt2YXIgZT10LmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKXx8MDtyZXR1cm4gTnVtYmVyKGUpfXJldHVybi0xfV9jb2xsZWN0VGFiYmFibGVOb2Rlcyh0LGUpe2lmKHQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4hMTt2YXIgbj10O2lmKCF0aGlzLl9pc1Zpc2libGUobikpcmV0dXJuITE7dmFyIGkscj10aGlzLl9ub3JtYWxpemVkVGFiSW5kZXgobiksbz1yPjA7cj49MCYmZS5wdXNoKG4pLGk9ImNvbnRlbnQiPT09bi5sb2NhbE5hbWV8fCJzbG90Ij09PW4ubG9jYWxOYW1lP1lpKG4pLmdldERpc3RyaWJ1dGVkTm9kZXMoKTpZaShuLnJvb3R8fG4pLmNoaWxkcmVuO2Zvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKW89dGhpcy5fY29sbGVjdFRhYmJhYmxlTm9kZXMoaVthXSxlKXx8bztyZXR1cm4gb31faXNWaXNpYmxlKHQpe3ZhciBlPXQuc3R5bGU7cmV0dXJuImhpZGRlbiIhPT1lLnZpc2liaWxpdHkmJiJub25lIiE9PWUuZGlzcGxheSYmImhpZGRlbiIhPT0oZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KSkudmlzaWJpbGl0eSYmIm5vbmUiIT09ZS5kaXNwbGF5fV9zb3J0QnlUYWJJbmRleCh0KXt2YXIgZT10Lmxlbmd0aDtpZihlPDIpcmV0dXJuIHQ7dmFyIG49TWF0aC5jZWlsKGUvMiksaT10aGlzLl9zb3J0QnlUYWJJbmRleCh0LnNsaWNlKDAsbikpLHI9dGhpcy5fc29ydEJ5VGFiSW5kZXgodC5zbGljZShuKSk7cmV0dXJuIHRoaXMuX21lcmdlU29ydEJ5VGFiSW5kZXgoaSxyKX1fbWVyZ2VTb3J0QnlUYWJJbmRleCh0LGUpe2Zvcih2YXIgbj1bXTt0Lmxlbmd0aD4wJiZlLmxlbmd0aD4wOyl0aGlzLl9oYXNMb3dlclRhYk9yZGVyKHRbMF0sZVswXSk/bi5wdXNoKGUuc2hpZnQoKSk6bi5wdXNoKHQuc2hpZnQoKSk7cmV0dXJuIG4uY29uY2F0KHQsZSl9X2hhc0xvd2VyVGFiT3JkZXIodCxlKXt2YXIgbj1NYXRoLm1heCh0LnRhYkluZGV4LDApLGk9TWF0aC5tYXgoZS50YWJJbmRleCwwKTtyZXR1cm4gMD09PW58fDA9PT1pP2k+bjpuPml9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taXJvbi1vdmVybGF5LWJhY2tkcm9wLWJhY2tncm91bmQtY29sb3IsICMwMDApOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIEBhcHBseSAtLWlyb24tb3ZlcmxheS1iYWNrZHJvcDsKICAgICAgfQoKICAgICAgOmhvc3QoLm9wZW5lZCkgewogICAgICAgIG9wYWNpdHk6IHZhcigtLWlyb24tb3ZlcmxheS1iYWNrZHJvcC1vcGFjaXR5LCAwLjYpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIEBhcHBseSAtLWlyb24tb3ZlcmxheS1iYWNrZHJvcC1vcGVuZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJpcm9uLW92ZXJsYXktYmFja2Ryb3AiLHByb3BlcnRpZXM6e29wZW5lZDp7cmVmbGVjdFRvQXR0cmlidXRlOiEwLHR5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX29wZW5lZENoYW5nZWQifX0sbGlzdGVuZXJzOnt0cmFuc2l0aW9uZW5kOiJfb25UcmFuc2l0aW9uZW5kIn0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX19vcGVuZWRSYWY9bnVsbH0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmdGhpcy5fb3BlbmVkQ2hhbmdlZCh0aGlzLm9wZW5lZCl9LHByZXBhcmU6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmIXRoaXMucGFyZW50Tm9kZSYmWWkoZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQodGhpcyl9LG9wZW46ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZD0hMH0sY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZD0hMX0sY29tcGxldGU6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZHx8dGhpcy5wYXJlbnROb2RlIT09ZG9jdW1lbnQuYm9keXx8WWkodGhpcy5wYXJlbnROb2RlKS5yZW1vdmVDaGlsZCh0aGlzKX0sX29uVHJhbnNpdGlvbmVuZDpmdW5jdGlvbih0KXt0JiZ0LnRhcmdldD09PXRoaXMmJnRoaXMuY29tcGxldGUoKX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24odCl7aWYodCl0aGlzLnByZXBhcmUoKTtlbHNle3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpOyIwcyIhPT1lLnRyYW5zaXRpb25EdXJhdGlvbiYmMCE9ZS5vcGFjaXR5fHx0aGlzLmNvbXBsZXRlKCl9dGhpcy5pc0F0dGFjaGVkJiYodGhpcy5fX29wZW5lZFJhZiYmKHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9fb3BlbmVkUmFmKSx0aGlzLl9fb3BlbmVkUmFmPW51bGwpLHRoaXMuc2Nyb2xsVG9wPXRoaXMuc2Nyb2xsVG9wLHRoaXMuX19vcGVuZWRSYWY9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3RoaXMuX19vcGVuZWRSYWY9bnVsbCx0aGlzLnRvZ2dsZUNsYXNzKCJvcGVuZWQiLHRoaXMub3BlbmVkKX0uYmluZCh0aGlzKSkpfX0pO2NvbnN0IF9hPW5ldwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9vdmVybGF5cz1bXSx0aGlzLl9taW5pbXVtWj0xMDEsdGhpcy5fYmFja2Ryb3BFbGVtZW50PW51bGwsaWkoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCJ0YXAiLChmdW5jdGlvbigpe30pKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0YXAiLHRoaXMuX29uQ2FwdHVyZUNsaWNrLmJpbmQodGhpcyksITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9vbkNhcHR1cmVGb2N1cy5iaW5kKHRoaXMpLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9vbkNhcHR1cmVLZXlEb3duLmJpbmQodGhpcyksITApfWdldCBiYWNrZHJvcEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fYmFja2Ryb3BFbGVtZW50fHwodGhpcy5fYmFja2Ryb3BFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlyb24tb3ZlcmxheS1iYWNrZHJvcCIpKSx0aGlzLl9iYWNrZHJvcEVsZW1lbnR9Z2V0IGRlZXBBY3RpdmVFbGVtZW50KCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtmb3IodCYmdCBpbnN0YW5jZW9mIEVsZW1lbnQhPTB8fCh0PWRvY3VtZW50LmJvZHkpO3Qucm9vdCYmWWkodC5yb290KS5hY3RpdmVFbGVtZW50Oyl0PVlpKHQucm9vdCkuYWN0aXZlRWxlbWVudDtyZXR1cm4gdH1fYnJpbmdPdmVybGF5QXRJbmRleFRvRnJvbnQodCl7dmFyIGU9dGhpcy5fb3ZlcmxheXNbdF07aWYoZSl7dmFyIG49dGhpcy5fb3ZlcmxheXMubGVuZ3RoLTEsaT10aGlzLl9vdmVybGF5c1tuXTtpZihpJiZ0aGlzLl9zaG91bGRCZUJlaGluZE92ZXJsYXkoZSxpKSYmbi0tLCEodD49bikpe3ZhciByPU1hdGgubWF4KHRoaXMuY3VycmVudE92ZXJsYXlaKCksdGhpcy5fbWluaW11bVopO2Zvcih0aGlzLl9nZXRaKGUpPD1yJiZ0aGlzLl9hcHBseU92ZXJsYXlaKGUscik7dDxuOyl0aGlzLl9vdmVybGF5c1t0XT10aGlzLl9vdmVybGF5c1t0KzFdLHQrKzt0aGlzLl9vdmVybGF5c1tuXT1lfX19YWRkT3JSZW1vdmVPdmVybGF5KHQpe3Qub3BlbmVkP3RoaXMuYWRkT3ZlcmxheSh0KTp0aGlzLnJlbW92ZU92ZXJsYXkodCl9YWRkT3ZlcmxheSh0KXt2YXIgZT10aGlzLl9vdmVybGF5cy5pbmRleE9mKHQpO2lmKGU+PTApcmV0dXJuIHRoaXMuX2JyaW5nT3ZlcmxheUF0SW5kZXhUb0Zyb250KGUpLHZvaWQgdGhpcy50cmFja0JhY2tkcm9wKCk7dmFyIG49dGhpcy5fb3ZlcmxheXMubGVuZ3RoLGk9dGhpcy5fb3ZlcmxheXNbbi0xXSxyPU1hdGgubWF4KHRoaXMuX2dldFooaSksdGhpcy5fbWluaW11bVopLG89dGhpcy5fZ2V0Wih0KTtpJiZ0aGlzLl9zaG91bGRCZUJlaGluZE92ZXJsYXkodCxpKSYmKHRoaXMuX2FwcGx5T3ZlcmxheVooaSxyKSxuLS0scj1NYXRoLm1heCh0aGlzLl9nZXRaKHRoaXMuX292ZXJsYXlzW24tMV0pLHRoaXMuX21pbmltdW1aKSksbzw9ciYmdGhpcy5fYXBwbHlPdmVybGF5Wih0LHIpLHRoaXMuX292ZXJsYXlzLnNwbGljZShuLDAsdCksdGhpcy50cmFja0JhY2tkcm9wKCl9cmVtb3ZlT3ZlcmxheSh0KXt2YXIgZT10aGlzLl9vdmVybGF5cy5pbmRleE9mKHQpOy0xIT09ZSYmKHRoaXMuX292ZXJsYXlzLnNwbGljZShlLDEpLHRoaXMudHJhY2tCYWNrZHJvcCgpKX1jdXJyZW50T3ZlcmxheSgpe3JldHVybiB0aGlzLl9vdmVybGF5c1t0aGlzLl9vdmVybGF5cy5sZW5ndGgtMV19Y3VycmVudE92ZXJsYXlaKCl7cmV0dXJuIHRoaXMuX2dldFoodGhpcy5jdXJyZW50T3ZlcmxheSgpKX1lbnN1cmVNaW5pbXVtWih0KXt0aGlzLl9taW5pbXVtWj1NYXRoLm1heCh0aGlzLl9taW5pbXVtWix0KX1mb2N1c092ZXJsYXkoKXt2YXIgdD10aGlzLmN1cnJlbnRPdmVybGF5KCk7dCYmdC5fYXBwbHlGb2N1cygpfXRyYWNrQmFja2Ryb3AoKXt2YXIgdD10aGlzLl9vdmVybGF5V2l0aEJhY2tkcm9wKCk7KHR8fHRoaXMuX2JhY2tkcm9wRWxlbWVudCkmJih0aGlzLmJhY2tkcm9wRWxlbWVudC5zdHlsZS56SW5kZXg9dGhpcy5fZ2V0Wih0KS0xLHRoaXMuYmFja2Ryb3BFbGVtZW50Lm9wZW5lZD0hIXQsdGhpcy5iYWNrZHJvcEVsZW1lbnQucHJlcGFyZSgpKX1nZXRCYWNrZHJvcHMoKXtmb3IodmFyIHQ9W10sZT0wO2U8dGhpcy5fb3ZlcmxheXMubGVuZ3RoO2UrKyl0aGlzLl9vdmVybGF5c1tlXS53aXRoQmFja2Ryb3AmJnQucHVzaCh0aGlzLl9vdmVybGF5c1tlXSk7cmV0dXJuIHR9YmFja2Ryb3BaKCl7cmV0dXJuIHRoaXMuX2dldFoodGhpcy5fb3ZlcmxheVdpdGhCYWNrZHJvcCgpKS0xfV9vdmVybGF5V2l0aEJhY2tkcm9wKCl7Zm9yKHZhciB0PXRoaXMuX292ZXJsYXlzLmxlbmd0aC0xO3Q+PTA7dC0tKWlmKHRoaXMuX292ZXJsYXlzW3RdLndpdGhCYWNrZHJvcClyZXR1cm4gdGhpcy5fb3ZlcmxheXNbdF19X2dldFoodCl7dmFyIGU9dGhpcy5fbWluaW11bVo7aWYodCl7dmFyIG49TnVtYmVyKHQuc3R5bGUuekluZGV4fHx3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS56SW5kZXgpO249PW4mJihlPW4pfXJldHVybiBlfV9zZXRaKHQsZSl7dC5zdHlsZS56SW5kZXg9ZX1fYXBwbHlPdmVybGF5Wih0LGUpe3RoaXMuX3NldFoodCxlKzIpfV9vdmVybGF5SW5QYXRoKHQpe3Q9dHx8W107Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXS5fbWFuYWdlcj09PXRoaXMpcmV0dXJuIHRbZV19X29uQ2FwdHVyZUNsaWNrKHQpe3ZhciBlPXRoaXMuX292ZXJsYXlzLmxlbmd0aC0xO2lmKC0xIT09ZSlmb3IodmFyIG4saT1ZaSh0KS5wYXRoOyhuPXRoaXMuX292ZXJsYXlzW2VdKSYmdGhpcy5fb3ZlcmxheUluUGF0aChpKSE9PW4mJihuLl9vbkNhcHR1cmVDbGljayh0KSxuLmFsbG93Q2xpY2tUaHJvdWdoKTspZS0tfV9vbkNhcHR1cmVGb2N1cyh0KXt2YXIgZT10aGlzLmN1cnJlbnRPdmVybGF5KCk7ZSYmZS5fb25DYXB0dXJlRm9jdXModCl9X29uQ2FwdHVyZUtleURvd24odCl7dmFyIGU9dGhpcy5jdXJyZW50T3ZlcmxheSgpO2UmJih6by5rZXlib2FyZEV2ZW50TWF0Y2hlc0tleXModCwiZXNjIik/ZS5fb25DYXB0dXJlRXNjKHQpOnpvLmtleWJvYXJkRXZlbnRNYXRjaGVzS2V5cyh0LCJ0YWIiKSYmZS5fb25DYXB0dXJlVGFiKHQpKX1fc2hvdWxkQmVCZWhpbmRPdmVybGF5KHQsZSl7cmV0dXJuIXQuYWx3YXlzT25Ub3AmJmUuYWx3YXlzT25Ub3B9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovdmFyIHlhLHZhLGJhPXtwYWdlWDowLHBhZ2VZOjB9LHhhPW51bGwsd2E9W10sU2E9WyJ3aGVlbCIsIm1vdXNld2hlZWwiLCJET01Nb3VzZVNjcm9sbCIsInRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiXTtmdW5jdGlvbiBNYSh0KXtFYS5pbmRleE9mKHQpPj0wfHwoMD09PUVhLmxlbmd0aCYmKGZ1bmN0aW9uIGUoKXt5YT15YXx8VGEuYmluZCh2b2lkIDApO2Zvcih2YXIgdD0wLGU9U2EubGVuZ3RoO3Q8ZTt0KyspZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihTYVt0XSx5YSx7Y2FwdHVyZTohMCxwYXNzaXZlOiExfSl9KSgpLEVhLnB1c2godCksdmE9RWFbRWEubGVuZ3RoLTFdKX1jb25zdCBFYT1bXTtmdW5jdGlvbiBUYSh0KXtpZih0LmNhbmNlbGFibGUmJihmdW5jdGlvbiBlKHQpe3ZhciBlPVlpKHQpLnJvb3RUYXJnZXQ7aWYoInRvdWNobW92ZSIhPT10LnR5cGUmJnhhIT09ZSYmKHhhPWUsd2E9KGZ1bmN0aW9uIG4odCl7Zm9yKHZhciBlPVtdLG49dC5pbmRleE9mKHZhKSxpPTA7aTw9bjtpKyspaWYodFtpXS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXt2YXIgcj10W2ldLG89ci5zdHlsZTsic2Nyb2xsIiE9PW8ub3ZlcmZsb3cmJiJhdXRvIiE9PW8ub3ZlcmZsb3cmJihvPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHIpKSwic2Nyb2xsIiE9PW8ub3ZlcmZsb3cmJiJhdXRvIiE9PW8ub3ZlcmZsb3d8fGUucHVzaChyKX1yZXR1cm4gZX0pKFlpKHQpLnBhdGgpKSwhd2EubGVuZ3RoKXJldHVybiEwO2lmKCJ0b3VjaHN0YXJ0Ij09PXQudHlwZSlyZXR1cm4hMTt2YXIgaT0oZnVuY3Rpb24gcih0KXt2YXIgZT17ZGVsdGFYOnQuZGVsdGFYLGRlbHRhWTp0LmRlbHRhWX07aWYoImRlbHRhWCJpbiB0KTtlbHNlIGlmKCJ3aGVlbERlbHRhWCJpbiB0JiYid2hlZWxEZWx0YVkiaW4gdCllLmRlbHRhWD0tdC53aGVlbERlbHRhWCxlLmRlbHRhWT0tdC53aGVlbERlbHRhWTtlbHNlIGlmKCJ3aGVlbERlbHRhImluIHQpZS5kZWx0YVg9MCxlLmRlbHRhWT0tdC53aGVlbERlbHRhO2Vsc2UgaWYoImF4aXMiaW4gdCllLmRlbHRhWD0xPT09dC5heGlzP3QuZGV0YWlsOjAsZS5kZWx0YVk9Mj09PXQuYXhpcz90LmRldGFpbDowO2Vsc2UgaWYodC50YXJnZXRUb3VjaGVzKXt2YXIgbj10LnRhcmdldFRvdWNoZXNbMF07ZS5kZWx0YVg9YmEucGFnZVgtbi5wYWdlWCxlLmRlbHRhWT1iYS5wYWdlWS1uLnBhZ2VZfXJldHVybiBlfQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8pKHQpO3JldHVybiEoZnVuY3Rpb24gbyh0LGUsbil7aWYoZXx8bilmb3IodmFyIGk9TWF0aC5hYnMobik+PU1hdGguYWJzKGUpLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG89dFtyXTtpZihpP248MD9vLnNjcm9sbFRvcD4wOm8uc2Nyb2xsVG9wPG8uc2Nyb2xsSGVpZ2h0LW8uY2xpZW50SGVpZ2h0OmU8MD9vLnNjcm9sbExlZnQ+MDpvLnNjcm9sbExlZnQ8by5zY3JvbGxXaWR0aC1vLmNsaWVudFdpZHRoKXJldHVybiBvfX0pKHdhLGkuZGVsdGFYLGkuZGVsdGFZKX0pKHQpJiZ0LnByZXZlbnREZWZhdWx0KCksdC50YXJnZXRUb3VjaGVzKXt2YXIgbj10LnRhcmdldFRvdWNoZXNbMF07YmEucGFnZVg9bi5wYWdlWCxiYS5wYWdlWT1uLnBhZ2VZfX1jb25zdCBDYT17cHJvcGVydGllczp7b3BlbmVkOntvYnNlcnZlcjoiX29wZW5lZENoYW5nZWQiLHR5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITB9LGNhbmNlbGVkOntvYnNlcnZlcjoiX2NhbmNlbGVkQ2hhbmdlZCIscmVhZE9ubHk6ITAsdHlwZTpCb29sZWFuLHZhbHVlOiExfSx3aXRoQmFja2Ryb3A6e29ic2VydmVyOiJfd2l0aEJhY2tkcm9wQ2hhbmdlZCIsdHlwZTpCb29sZWFufSxub0F1dG9Gb2N1czp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxub0NhbmNlbE9uRXNjS2V5Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LG5vQ2FuY2VsT25PdXRzaWRlQ2xpY2s6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sY2xvc2luZ1JlYXNvbjp7dHlwZTpPYmplY3R9LHJlc3RvcmVGb2N1c09uQ2xvc2U6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYWxsb3dDbGlja1Rocm91Z2g6e3R5cGU6Qm9vbGVhbn0sYWx3YXlzT25Ub3A6e3R5cGU6Qm9vbGVhbn0sc2Nyb2xsQWN0aW9uOnt0eXBlOlN0cmluZ30sX21hbmFnZXI6e3R5cGU6T2JqZWN0LHZhbHVlOl9hfSxfZm9jdXNlZENoaWxkOnt0eXBlOk9iamVjdH19LGxpc3RlbmVyczp7Imlyb24tcmVzaXplIjoiX29uSXJvblJlc2l6ZSJ9LG9ic2VydmVyczpbIl9fdXBkYXRlU2Nyb2xsT2JzZXJ2ZXJzKGlzQXR0YWNoZWQsIG9wZW5lZCwgc2Nyb2xsQWN0aW9uKSJdLGdldCBiYWNrZHJvcEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fbWFuYWdlci5iYWNrZHJvcEVsZW1lbnR9LGdldCBfZm9jdXNOb2RlKCl7cmV0dXJuIHRoaXMuX2ZvY3VzZWRDaGlsZHx8WWkodGhpcykucXVlcnlTZWxlY3RvcigiW2F1dG9mb2N1c10iKXx8dGhpc30sZ2V0IF9mb2N1c2FibGVOb2Rlcygpe3JldHVybiBnYS5nZXRUYWJiYWJsZU5vZGVzKHRoaXMpfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuX19pc0FuaW1hdGluZz0hMSx0aGlzLl9fc2hvdWxkUmVtb3ZlVGFiSW5kZXg9ITEsdGhpcy5fX2ZpcnN0Rm9jdXNhYmxlTm9kZT10aGlzLl9fbGFzdEZvY3VzYWJsZU5vZGU9bnVsbCx0aGlzLl9fcmFmcz17fSx0aGlzLl9fcmVzdG9yZUZvY3VzTm9kZT1udWxsLHRoaXMuX19zY3JvbGxUb3A9dGhpcy5fX3Njcm9sbExlZnQ9bnVsbCx0aGlzLl9fb25DYXB0dXJlU2Nyb2xsPXRoaXMuX19vbkNhcHR1cmVTY3JvbGwuYmluZCh0aGlzKSx0aGlzLl9fcm9vdE5vZGVzPW51bGwsdGhpcy5fZW5zdXJlU2V0dXAoKX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmdGhpcy5fb3BlbmVkQ2hhbmdlZCh0aGlzLm9wZW5lZCksdGhpcy5fb2JzZXJ2ZXI9WWkodGhpcykub2JzZXJ2ZU5vZGVzKHRoaXMuX29uTm9kZXNDaGFuZ2UpfSxkZXRhY2hlZDpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLl9vYnNlcnZlciYmWWkodGhpcykudW5vYnNlcnZlTm9kZXModGhpcy5fb2JzZXJ2ZXIpLHRoaXMuX29ic2VydmVyPW51bGwsdGhpcy5fX3JhZnMpbnVsbCE9PXRoaXMuX19yYWZzW3RdJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9fcmFmc1t0XSk7dGhpcy5fX3JhZnM9e30sdGhpcy5fbWFuYWdlci5yZW1vdmVPdmVybGF5KHRoaXMpLHRoaXMuX19pc0FuaW1hdGluZyYmKHRoaXMub3BlbmVkP3RoaXMuX2ZpbmlzaFJlbmRlck9wZW5lZCgpOih0aGlzLl9hcHBseUZvY3VzKCksdGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCkpKX0sdG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy5fc2V0Q2FuY2VsZWQoITEpLHRoaXMub3BlbmVkPSF0aGlzLm9wZW5lZH0sb3BlbjpmdW5jdGlvbigpe3RoaXMuX3NldENhbmNlbGVkKCExKSx0aGlzLm9wZW5lZD0hMH0sY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLl9zZXRDYW5jZWxlZCghMSksdGhpcy5vcGVuZWQ9ITF9LGNhbmNlbDpmdW5jdGlvbih0KXt0aGlzLmZpcmUoImlyb24tb3ZlcmxheS1jYW5jZWxlZCIsdCx7Y2FuY2VsYWJsZTohMH0pLmRlZmF1bHRQcmV2ZW50ZWR8fCh0aGlzLl9zZXRDYW5jZWxlZCghMCksdGhpcy5vcGVuZWQ9ITEpfSxpbnZhbGlkYXRlVGFiYmFibGVzOmZ1bmN0aW9uKCl7dGhpcy5fX2ZpcnN0Rm9jdXNhYmxlTm9kZT10aGlzLl9fbGFzdEZvY3VzYWJsZU5vZGU9bnVsbH0sX2Vuc3VyZVNldHVwOmZ1bmN0aW9uKCl7dGhpcy5fb3ZlcmxheVNldHVwfHwodGhpcy5fb3ZlcmxheVNldHVwPSEwLHRoaXMuc3R5bGUub3V0bGluZT0ibm9uZSIsdGhpcy5zdHlsZS5kaXNwbGF5PSJub25lIil9LF9vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKHQpe3Q/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIik6dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLHRoaXMuaXNBdHRhY2hlZCYmKHRoaXMuX19pc0FuaW1hdGluZz0hMCx0aGlzLl9fZGVyYWYoIl9fb3BlbmVkQ2hhbmdlZCIsdGhpcy5fX29wZW5lZENoYW5nZWQpKX0sX2NhbmNlbGVkQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuY2xvc2luZ1JlYXNvbj10aGlzLmNsb3NpbmdSZWFzb258fHt9LHRoaXMuY2xvc2luZ1JlYXNvbi5jYW5jZWxlZD10aGlzLmNhbmNlbGVkfSxfd2l0aEJhY2tkcm9wQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMud2l0aEJhY2tkcm9wJiYhdGhpcy5oYXNBdHRyaWJ1dGUoInRhYmluZGV4Iik/KHRoaXMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksdGhpcy5fX3Nob3VsZFJlbW92ZVRhYkluZGV4PSEwKTp0aGlzLl9fc2hvdWxkUmVtb3ZlVGFiSW5kZXgmJih0aGlzLnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKSx0aGlzLl9fc2hvdWxkUmVtb3ZlVGFiSW5kZXg9ITEpLHRoaXMub3BlbmVkJiZ0aGlzLmlzQXR0YWNoZWQmJnRoaXMuX21hbmFnZXIudHJhY2tCYWNrZHJvcCgpfSxfcHJlcGFyZVJlbmRlck9wZW5lZDpmdW5jdGlvbigpe3RoaXMuX19yZXN0b3JlRm9jdXNOb2RlPXRoaXMuX21hbmFnZXIuZGVlcEFjdGl2ZUVsZW1lbnQsdGhpcy5fcHJlcGFyZVBvc2l0aW9uaW5nKCksdGhpcy5yZWZpdCgpLHRoaXMuX2ZpbmlzaFBvc2l0aW9uaW5nKCksdGhpcy5ub0F1dG9Gb2N1cyYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXRoaXMuX2ZvY3VzTm9kZSYmKHRoaXMuX2ZvY3VzTm9kZS5ibHVyKCksdGhpcy5fX3Jlc3RvcmVGb2N1c05vZGUuZm9jdXMoKSl9LF9yZW5kZXJPcGVuZWQ6ZnVuY3Rpb24oKXt0aGlzLl9maW5pc2hSZW5kZXJPcGVuZWQoKX0sX3JlbmRlckNsb3NlZDpmdW5jdGlvbigpe3RoaXMuX2ZpbmlzaFJlbmRlckNsb3NlZCgpfSxfZmluaXNoUmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5ub3RpZnlSZXNpemUoKSx0aGlzLl9faXNBbmltYXRpbmc9ITEsdGhpcy5maXJlKCJpcm9uLW92ZXJsYXktb3BlbmVkIil9LF9maW5pc2hSZW5kZXJDbG9zZWQ6ZnVuY3Rpb24oKXt0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuc3R5bGUuekluZGV4PSIiLHRoaXMubm90aWZ5UmVzaXplKCksdGhpcy5fX2lzQW5pbWF0aW5nPSExLHRoaXMuZmlyZSgiaXJvbi1vdmVybGF5LWNsb3NlZCIsdGhpcy5jbG9zaW5nUmVhc29uKX0sX3ByZXBhcmVQb3NpdGlvbmluZzpmdW5jdGlvbigpe3RoaXMuc3R5bGUudHJhbnNpdGlvbj10aGlzLnN0eWxlLndlYmtpdFRyYW5zaXRpb249Im5vbmUiLHRoaXMuc3R5bGUudHJhbnNmb3JtPXRoaXMuc3R5bGUud2Via2l0VHJhbnNmb3JtPSJub25lIix0aGlzLnN0eWxlLmRpc3BsYXk9IiJ9LF9maW5pc2hQb3NpdGlvbmluZzpmdW5jdGlvbigpe3RoaXMuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5zY3JvbGxUb3A9dGhpcy5zY3JvbGxUb3AsdGhpcy5zdHlsZS50cmFuc2l0aW9uPXRoaXMuc3R5bGUud2Via2l0VHJhbnNpdGlvbj0iIix0aGlzLnN0eWxlLnRyYW5zZm9ybT10aGlzLnN0eWxlLndlYmtpdFRyYW5zZm9ybT0iIix0aGlzLnN0eWxlLmRpc3BsYXk9IiIsdGhpcy5zY3JvbGxUb3A9dGhpcy5zY3JvbGxUb3B9LF9hcHBseUZvY3VzOmZ1bmN0aW9uKCl7aWYodGhpcy5vcGVuZWQpdGhpcy5ub0F1dG9Gb2N1c3x8dGhpcy5fZm9jdXNOb2RlLmZvY3VzKCk7ZWxzZXtpZih0aGlzLnJlc3RvcmVGb2N1c09uQ2xvc2UmJnRoaXMuX19yZXN0b3JlRm9jdXNOb2RlKXt2YXIgdD10aGlzLl9tYW5hZ2VyLmRlZXBBY3RpdmVFbGVtZW50Oyh0PT09ZG9jdW1lbnQuYm9keXx8QWEodGhpcyx0KSkmJnRoaXMuX19yZXN0b3JlRm9jdXNOb2RlLmZvY3VzKCl9dGhpcy5fX3Jlc3RvcmVGb2N1c05vZGU9bnVsbCx0aGlzLl9mb2N1c05vZGUuYmx1cigpLHRoaXMuX2ZvY3VzZWRDaGlsZD1udWxsfX0sX29uQ2FwdHVyZUNsaWNrOmZ1bmN0aW9uKHQpe3RoaXMubm9DYW5jZWxPbk91dHNpZGVDbGlja3x8dGhpcy5jYW5jZWwodCl9LF9vbkNhcHR1cmVGb2N1czpmdW5jdGlvbih0KXtpZih0aGlzLndpdGhCYWNrZHJvcCl7dmFyIGU9WWkodCkucGF0aDstMT09PWUuaW5kZXhPZih0aGlzKT8odC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9hcHBseUZvY3VzKCkpOnRoaXMuX2ZvY3VzZWRDaGlsZD1lWzBdfX0sX29uQ2FwdHVyZUVzYzpmdW5jdGlvbih0KXt0aGlzLm5vQ2FuY2VsT25Fc2NLZXl8fHRoaXMuY2FuY2VsKHQpfSxfb25DYXB0dXJlVGFiOmZ1bmN0aW9uKHQpe2lmKHRoaXMud2l0aEJhY2tkcm9wKXt0aGlzLl9fZW5zdXJlRmlyc3RMYXN0Rm9jdXNhYmxlcygpO3ZhciBlPXQuc2hpZnRLZXksbj1lP3RoaXMuX19maXJzdEZvY3VzYWJsZU5vZGU6dGhpcy5fX2xhc3RGb2N1c2FibGVOb2RlLGk9ZT90aGlzLl9fbGFzdEZvY3VzYWJsZU5vZGU6dGhpcy5fX2ZpcnN0Rm9jdXNhYmxlTm9kZSxyPSExO2lmKG49PT1pKXI9ITA7ZWxzZXt2YXIgbz10aGlzLl9tYW5hZ2VyLmRlZXBBY3RpdmVFbGVtZW50O3I9bz09PW58fG89PT10aGlzfXImJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fZm9jdXNlZENoaWxkPWksdGhpcy5fYXBwbHlGb2N1cygpKX19LF9vbklyb25SZXNpemU6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmIXRoaXMuX19pc0FuaW1hdGluZyYmdGhpcy5fX2RlcmFmKCJyZWZpdCIsdGhpcy5yZWZpdCl9LF9vbk5vZGVzQ2hhbmdlOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQmJiF0aGlzLl9faXNBbmltYXRpbmcmJih0aGlzLmludmFsaWRhdGVUYWJiYWJsZXMoKSx0aGlzLm5vdGlmeVJlc2l6ZSgpKX0sX19lbnN1cmVGaXJzdExhc3RGb2N1c2FibGVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZm9jdXNhYmxlTm9kZXM7dGhpcy5fX2ZpcnN0Rm9jdXNhYmxlTm9kZT10WzBdLHRoaXMuX19sYXN0Rm9jdXNhYmxlTm9kZT10W3QubGVuZ3RoLTFdfSxfX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZD8odGhpcy5fcHJlcGFyZVJlbmRlck9wZW5lZCgpLHRoaXMuX21hbmFnZXIuYWRkT3ZlcmxheSh0aGlzKSx0aGlzLl9hcHBseUZvY3VzKCksdGhpcy5fcmVuZGVyT3BlbmVkKCkpOih0aGlzLl9tYW5hZ2VyLnJlbW92ZU92ZXJsYXkodGhpcyksdGhpcy5fYXBwbHlGb2N1cygpLHRoaXMuX3JlbmRlckNsb3NlZCgpKX0sX19kZXJhZjpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX19yYWZzO251bGwhPT1uW3RdJiZjYW5jZWxBbmltYXRpb25GcmFtZShuW3RdKSxuW3RdPXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiBpKCl7blt0XT1udWxsLGUuY2FsbCh0aGlzKX0uYmluZCh0aGlzKSl9LF9fdXBkYXRlU2Nyb2xsT2JzZXJ2ZXJzOmZ1bmN0aW9uKHQsZSxuKXt0JiZlJiZ0aGlzLl9faXNWYWxpZFNjcm9sbEFjdGlvbihuKT8oImxvY2siPT09biYmKHRoaXMuX19zYXZlU2Nyb2xsUG9zaXRpb24oKSxNYSh0aGlzKSksdGhpcy5fX2FkZFNjcm9sbExpc3RlbmVycygpKTooKGZ1bmN0aW9uIGkodCl7dmFyIGU9RWEuaW5kZXhPZih0KTstMSE9PWUmJihFYS5zcGxpY2UoZSwxKSx2YT1FYVtFYS5sZW5ndGgtMV0sMD09PUVhLmxlbmd0aCYmKGZ1bmN0aW9uIG4oKXtmb3IodmFyIHQ9MCxlPVNhLmxlbmd0aDt0PGU7dCsrKWRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoU2FbdF0seWEse2NhcHR1cmU6ITAscGFzc2l2ZTohMX0pfSkoKSl9KSh0aGlzKSx0aGlzLl9fcmVtb3ZlU2Nyb2xsTGlzdGVuZXJzKCkpfSxfX2FkZFNjcm9sbExpc3RlbmVyczpmdW5jdGlvbigpe2lmKCF0aGlzLl9fcm9vdE5vZGVzKXtpZih0aGlzLl9fcm9vdE5vZGVzPVtdLG0pZm9yKHZhciB0PXRoaXM7dDspdC5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmdC5ob3N0JiZ0aGlzLl9fcm9vdE5vZGVzLnB1c2godCksdD10Lmhvc3R8fHQuYXNzaWduZWRTbG90fHx0LnBhcmVudE5vZGU7dGhpcy5fX3Jvb3ROb2Rlcy5wdXNoKGRvY3VtZW50KX10aGlzLl9fcm9vdE5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9fb25DYXB0dXJlU2Nyb2xsLHtjYXB0dXJlOiEwLHBhc3NpdmU6ITB9KX0pLHRoaXMpfSxfX3JlbW92ZVNjcm9sbExpc3RlbmVyczpmdW5jdGlvbigpe3RoaXMuX19yb290Tm9kZXMmJnRoaXMuX19yb290Tm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19vbkNhcHR1cmVTY3JvbGwse2NhcHR1cmU6ITAscGFzc2l2ZTohMH0pfSksdGhpcyksdGhpcy5pc0F0dGFjaGVkfHwodGhpcy5fX3Jvb3ROb2Rlcz1udWxsKX0sX19pc1ZhbGlkU2Nyb2xsQWN0aW9uOmZ1bmN0aW9uKHQpe3JldHVybiJsb2NrIj09PXR8fCJyZWZpdCI9PT10fHwiY2FuY2VsIj09PXR9LF9fb25DYXB0dXJlU2Nyb2xsOmZ1bmN0aW9uKHQpe2lmKCEodGhpcy5fX2lzQW5pbWF0aW5nfHxZaSh0KS5wYXRoLmluZGV4T2YodGhpcyk+PTApKXN3aXRjaCh0aGlzLnNjcm9sbEFjdGlvbil7Y2FzZSJsb2NrIjp0aGlzLl9fcmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7YnJlYWs7Y2FzZSJyZWZpdCI6dGhpcy5fX2RlcmFmKCJyZWZpdCIsdGhpcy5yZWZpdCk7YnJlYWs7Y2FzZSJjYW5jZWwiOnRoaXMuY2FuY2VsKHQpfX0sX19zYXZlU2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24oKXtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50Pyh0aGlzLl9fc2Nyb2xsVG9wPWRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLHRoaXMuX19zY3JvbGxMZWZ0PWRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCk6KHRoaXMuX19zY3JvbGxUb3A9TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCksdGhpcy5fX3Njcm9sbExlZnQ9TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQsZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0KSl9LF9fcmVzdG9yZVNjcm9sbFBvc2l0aW9uOmZ1bmN0aW9uKCl7ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudD8oZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A9dGhpcy5fX3Njcm9sbFRvcCxkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQ9dGhpcy5fX3Njcm9sbExlZnQpOihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wPWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wPXRoaXMuX19zY3JvbGxUb3AsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ9ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0PXRoaXMuX19zY3JvbGxMZWZ0KX19LEFhPSh0LGUpPT57Zm9yKGxldCBpPWU7aTtpPShuPWkpLmFzc2lnbmVkU2xvdHx8bi5wYXJlbnROb2RlfHxuLmhvc3QpaWYoaT09PXQpcmV0dXJuITA7dmFyIG47cmV0dXJuITF9LGthPVtwYSxnbyxDYV0sTGE9e2hvc3RBdHRyaWJ1dGVzOntyb2xlOiJkaWFsb2ciLHRhYmluZGV4OiItMSJ9LHByb3BlcnRpZXM6e21vZGFsOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9fcmVhZGllZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sb2JzZXJ2ZXJzOlsiX21vZGFsQ2hhbmdlZChtb2RhbCwgX19yZWFkaWVkKSJdLGxpc3RlbmVyczp7dGFwOiJfb25EaWFsb2dDbGljayJ9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5fX3ByZXZOb0NhbmNlbE9uT3V0c2lkZUNsaWNrPXRoaXMubm9DYW5jZWxPbk91dHNpZGVDbGljayx0aGlzLl9fcHJldk5vQ2FuY2VsT25Fc2NLZXk9dGhpcy5ub0NhbmNlbE9uRXNjS2V5LHRoaXMuX19wcmV2V2l0aEJhY2tkcm9wPXRoaXMud2l0aEJhY2tkcm9wLHRoaXMuX19yZWFkaWVkPSEwfSxfbW9kYWxDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7ZSYmKHQ/KHRoaXMuX19wcmV2Tm9DYW5jZWxPbk91dHNpZGVDbGljaz10aGlzLm5vQ2FuY2VsT25PdXRzaWRlQ2xpY2ssdGhpcy5fX3ByZXZOb0NhbmNlbE9uRXNjS2V5PXRoaXMubm9DYW5jZWxPbkVzY0tleSx0aGlzLl9fcHJldldpdGhCYWNrZHJvcD10aGlzLndpdGhCYWNrZHJvcCx0aGlzLm5vQ2FuY2VsT25PdXRzaWRlQ2xpY2s9ITAsdGhpcy5ub0NhbmNlbE9uRXNjS2V5PSEwLHRoaXMud2l0aEJhY2tkcm9wPSEwKToodGhpcy5ub0NhbmNlbE9uT3V0c2lkZUNsaWNrPXRoaXMubm9DYW5jZWxPbk91dHNpZGVDbGljayYmdGhpcy5fX3ByZXZOb0NhbmNlbE9uT3V0c2lkZUNsaWNrLHRoaXMubm9DYW5jZWxPbkVzY0tleT10aGlzLm5vQ2FuY2VsT25Fc2NLZXkmJnRoaXMuX19wcmV2Tm9DYW5jZWxPbkVzY0tleSx0aGlzLndpdGhCYWNrZHJvcD10aGlzLndpdGhCYWNrZHJvcCYmdGhpcy5fX3ByZXZXaXRoQmFja2Ryb3ApKX0sX3VwZGF0ZUNsb3NpbmdSZWFzb25Db25maXJtZWQ6ZnVuY3Rpb24odCl7dGhpcy5jbG9zaW5nUmVhc29uPXRoaXMuY2xvc2luZ1JlYXNvbnx8e30sdGhpcy5jbG9zaW5nUmVhc29uLmNvbmZpcm1lZD10fSxfb25EaWFsb2dDbGljazpmdW5jdGlvbih0KXtmb3IodmFyIGU9WWkodCkucGF0aCxuPTAsaT1lLmluZGV4T2YodGhpcyk7bjxpO24rKyl7dmFyIHI9ZVtuXTtpZihyLmhhc0F0dHJpYnV0ZSYmKHIuaGFzQXR0cmlidXRlKCJkaWFsb2ctZGlzbWlzcyIpfHxyLmhhc0F0dHJpYnV0ZSgiZGlhbG9nLWNvbmZpcm0iKSkpe3RoaXMuX3VwZGF0ZUNsb3NpbmdSZWFzb25Db25maXJtZWQoci5oYXNBdHRyaWJ1dGUoImRpYWxvZy1jb25maXJtIikpLHRoaXMuY2xvc2UoKSx0LnN0b3BQcm9wYWdhdGlvbigpO2JyZWFrfX19fSxQYT1ba2EsTGFdOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KaWYoCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIEBhcHBseSAtLWxheW91dC1yZWxhdGl2ZTsKICAgICAgfQoKICAgICAgOmhvc3QoLmlzLXNjcm9sbGVkOm5vdCg6Zmlyc3QtY2hpbGQpKTo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGl2aWRlci1jb2xvcik7CiAgICAgIH0KCiAgICAgIDpob3N0KC5jYW4tc2Nyb2xsOm5vdCguc2Nyb2xsZWQtdG8tYm90dG9tKTpub3QoOmxhc3QtY2hpbGQpKTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kaXZpZGVyLWNvbG9yKTsKICAgICAgfQoKICAgICAgLnNjcm9sbGFibGUgewogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKCiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXNjcm9sbDsKICAgICAgICBAYXBwbHkgLS1wYXBlci1kaWFsb2ctc2Nyb2xsYWJsZTsKICAgICAgfQoKICAgICAgLmZpdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZpdDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJzY3JvbGxhYmxlIiBjbGFzcz0ic2Nyb2xsYWJsZSIgb24tc2Nyb2xsPSJ1cGRhdGVTY3JvbGxTdGF0ZSI+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZSIscHJvcGVydGllczp7ZGlhbG9nRWxlbWVudDp7dHlwZTpPYmplY3R9fSxnZXQgc2Nyb2xsVGFyZ2V0KCl7cmV0dXJuIHRoaXMuJC5zY3JvbGxhYmxlfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuX2Vuc3VyZVRhcmdldCgpLHRoaXMuY2xhc3NMaXN0LmFkZCgibm8tcGFkZGluZyIpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2Vuc3VyZVRhcmdldCgpLHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlLmJpbmQodGhpcykpfSx1cGRhdGVTY3JvbGxTdGF0ZTpmdW5jdGlvbigpe3RoaXMudG9nZ2xlQ2xhc3MoImlzLXNjcm9sbGVkIix0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3A+MCksdGhpcy50b2dnbGVDbGFzcygiY2FuLXNjcm9sbCIsdGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0SGVpZ2h0PHRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbEhlaWdodCksdGhpcy50b2dnbGVDbGFzcygic2Nyb2xsZWQtdG8tYm90dG9tIix0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3ArdGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0SGVpZ2h0Pj10aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxIZWlnaHQpfSxfZW5zdXJlVGFyZ2V0OmZ1bmN0aW9uKCl7dGhpcy5kaWFsb2dFbGVtZW50PXRoaXMuZGlhbG9nRWxlbWVudHx8dGhpcy5wYXJlbnRFbGVtZW50LHRoaXMuZGlhbG9nRWxlbWVudCYmdGhpcy5kaWFsb2dFbGVtZW50LmJlaGF2aW9ycyYmdGhpcy5kaWFsb2dFbGVtZW50LmJlaGF2aW9ycy5pbmRleE9mKExhKT49MD8odGhpcy5kaWFsb2dFbGVtZW50LnNpemluZ1RhcmdldD10aGlzLnNjcm9sbFRhcmdldCx0aGlzLnNjcm9sbFRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCJmaXQiKSk6dGhpcy5kaWFsb2dFbGVtZW50JiZ0aGlzLnNjcm9sbFRhcmdldC5jbGFzc0xpc3QuYWRkKCJmaXQiKX19KSwhd2luZG93LnBvbHltZXJTa2lwTG9hZGluZ0ZvbnRSb2JvdG8pe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO3QucmVsPSJzdHlsZXNoZWV0Iix0LnR5cGU9InRleHQvY3NzIix0LmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHQuaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bytNb25vOjQwMCw3MDB8Um9ib3RvOjQwMCwzMDAsMzAwaXRhbGljLDQwMGl0YWxpYyw1MDAsNTAwaXRhbGljLDcwMCw3MDBpdGFsaWMiLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCl9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2NvbnN0IE5hPV9lYDxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgaHRtbCB7CgogICAgICAvKiBTaGFyZWQgU3R5bGVzICovCiAgICAgIC0tcGFwZXItZm9udC1jb21tb24tYmFzZTogewogICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ05vdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNvbW1vbi1jb2RlOiB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsICdDb25zb2xhcycsICdNZW5sbycsIG1vbm9zcGFjZTsKICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1jb21tb24tZXhwZW5zaXZlLWtlcm5pbmc6IHsKICAgICAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNvbW1vbi1ub3dyYXA6IHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH07CgogICAgICAvKiBNYXRlcmlhbCBGb250IFN0eWxlcyAqLwoKICAgICAgLS1wYXBlci1mb250LWRpc3BsYXk0OiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1ub3dyYXA7CgogICAgICAgIGZvbnQtc2l6ZTogMTEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4wNDRlbTsKICAgICAgICBsaW5lLWhlaWdodDogMTIwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtZGlzcGxheTM6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKCiAgICAgICAgZm9udC1zaXplOiA1NnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uMDI2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtZGlzcGxheTI6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwoKICAgICAgICBmb250LXNpemU6IDQ1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4wMThlbTsKICAgICAgICBsaW5lLWhlaWdodDogNDhweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1kaXNwbGF5MTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CgogICAgICAgIGZvbnQtc2l6ZTogMzRweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtLjAxZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtaGVhZGxpbmU6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwoKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4wMTJlbTsKICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC10aXRsZTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tbm93cmFwOwoKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1zdWJoZWFkOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKCiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtYm9keTI6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwoKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1ib2R5MTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CgogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNhcHRpb246IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKCiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDExZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtbWVudTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tbm93cmFwOwoKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1idXR0b246IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKCiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDE4ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1jb2RlMjogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWNvZGU7CgogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNvZGUxOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tY29kZTsKCiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH07CgogICAgfQoKICA8L3N0eWxlPgo8L2N1c3RvbS1zdHlsZT5gO05hLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoTmEuY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBJYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO0lhLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLElhLmlubmVySFRNTD0nPGRvbS1tb2R1bGUgaWQ9InBhcGVyLWRpYWxvZy1zaGFyZWQtc3R5bGVzIj5cbiAgPHRlbXBsYXRlPlxuICAgIDxzdHlsZT5cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMjRweCA0MHB4O1xuXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLWRpYWxvZy1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3IpKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWRpYWxvZy1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7XG5cbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1ib2R5MTtcbiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0xNmRwO1xuICAgICAgICBAYXBwbHkgLS1wYXBlci1kaWFsb2c7XG4gICAgICB9XG5cbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKCopIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgcGFkZGluZzogMCAyNHB4O1xuICAgICAgfVxuXG4gICAgICA6aG9zdCA+IDo6c2xvdHRlZCgubm8tcGFkZGluZykge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICBcbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKCo6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoKjpsYXN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIEluIDEueCwgdGhpcyBzZWxlY3RvciB3YXMgYDpob3N0ID4gOjpjb250ZW50IGgyYC4gSW4gMi54IDxzbG90PiBhbGxvd3NcbiAgICAgIHRvIHNlbGVjdCBkaXJlY3QgY2hpbGRyZW4gb25seSwgd2hpY2ggaW5jcmVhc2VzIHRoZSB3ZWlnaHQgb2YgdGhpc1xuICAgICAgc2VsZWN0b3IsIHNvIHdlIGhhdmUgdG8gcmUtZGVmaW5lIGZpcnN0LWNoaWxkL2xhc3QtY2hpbGQgbWFyZ2lucyBiZWxvdy4gKi9cbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKGgyKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtdGl0bGU7XG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRpYWxvZy10aXRsZTtcbiAgICAgIH1cblxuICAgICAgLyogQXBwbHkgbWl4aW4gYWdhaW4sIGluIGNhc2UgaXQgc2V0cyBtYXJnaW4tdG9wLiAqL1xuICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoaDI6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZGlhbG9nLXRpdGxlO1xuICAgICAgfVxuXG4gICAgICAvKiBBcHBseSBtaXhpbiBhZ2FpbiwgaW4gY2FzZSBpdCBzZXRzIG1hcmdpbi1ib3R0b20uICovXG4gICAgICA6aG9zdCA+IDo6c2xvdHRlZChoMjpsYXN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRpYWxvZy10aXRsZTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoLnBhcGVyLWRpYWxvZy1idXR0b25zKSxcbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKC5idXR0b25zKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogOHB4IDhweCA4cHggMjRweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1kaWFsb2ctYnV0dG9uLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7XG5cbiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7XG4gICAgICAgIEBhcHBseSAtLWxheW91dC1lbmQtanVzdGlmaWVkO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gIDwvdGVtcGxhdGU+XG48L2RvbS1tb2R1bGU+Jyxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKElhLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgUmE9W3twcm9wZXJ0aWVzOnthbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0fSxlbnRyeUFuaW1hdGlvbjp7b2JzZXJ2ZXI6Il9lbnRyeUFuaW1hdGlvbkNoYW5nZWQiLHR5cGU6U3RyaW5nfSxleGl0QW5pbWF0aW9uOntvYnNlcnZlcjoiX2V4aXRBbmltYXRpb25DaGFuZ2VkIix0eXBlOlN0cmluZ319LF9lbnRyeUFuaW1hdGlvbkNoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmFuaW1hdGlvbkNvbmZpZz10aGlzLmFuaW1hdGlvbkNvbmZpZ3x8e30sdGhpcy5hbmltYXRpb25Db25maWcuZW50cnk9W3tuYW1lOnRoaXMuZW50cnlBbmltYXRpb24sbm9kZTp0aGlzfV19LF9leGl0QW5pbWF0aW9uQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuYW5pbWF0aW9uQ29uZmlnPXRoaXMuYW5pbWF0aW9uQ29uZmlnfHx7fSx0aGlzLmFuaW1hdGlvbkNvbmZpZy5leGl0PVt7bmFtZTp0aGlzLmV4aXRBbmltYXRpb24sbm9kZTp0aGlzfV19LF9jb3B5UHJvcGVydGllczpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXX0sX2Nsb25lQ29uZmlnOmZ1bmN0aW9uKHQpe3ZhciBlPXtpc0Nsb25lOiEwfTtyZXR1cm4gdGhpcy5fY29weVByb3BlcnRpZXMoZSx0KSxlfSxfZ2V0QW5pbWF0aW9uQ29uZmlnUmVjdXJzaXZlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtpZih0aGlzLmFuaW1hdGlvbkNvbmZpZylpZih0aGlzLmFuaW1hdGlvbkNvbmZpZy52YWx1ZSYmImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuYW5pbWF0aW9uQ29uZmlnLnZhbHVlKXRoaXMuX3dhcm4odGhpcy5fbG9nZigicGxheUFuaW1hdGlvbiIsIlBsZWFzZSBwdXQgJ2FuaW1hdGlvbkNvbmZpZycgaW5zaWRlIG9mIHlvdXIgY29tcG9uZW50cyAncHJvcGVydGllcycgb2JqZWN0IGluc3RlYWQgb2Ygb3V0c2lkZSBvZiBpdC4iKSk7ZWxzZSBpZihpPXQ/dGhpcy5hbmltYXRpb25Db25maWdbdF06dGhpcy5hbmltYXRpb25Db25maWcsQXJyYXkuaXNBcnJheShpKXx8KGk9W2ldKSxpKWZvcih2YXIgcixvPTA7cj1pW29dO28rKylpZihyLmFuaW1hdGFibGUpci5hbmltYXRhYmxlLl9nZXRBbmltYXRpb25Db25maWdSZWN1cnNpdmUoci50eXBlfHx0LGUsbik7ZWxzZSBpZihyLmlkKXt2YXIgYT1lW3IuaWRdO2E/KGEuaXNDbG9uZXx8KGVbci5pZF09dGhpcy5fY2xvbmVDb25maWcoYSksYT1lW3IuaWRdKSx0aGlzLl9jb3B5UHJvcGVydGllcyhhLHIpKTplW3IuaWRdPXJ9ZWxzZSBuLnB1c2gocil9LGdldEFuaW1hdGlvbkNvbmZpZzpmdW5jdGlvbih0KXt2YXIgZT17fSxuPVtdO2Zvcih2YXIgaSBpbiB0aGlzLl9nZXRBbmltYXRpb25Db25maWdSZWN1cnNpdmUodCxlLG4pLGUpbi5wdXNoKGVbaV0pO3JldHVybiBufX0se19jb25maWd1cmVBbmltYXRpb25zOmZ1bmN0aW9uKHQpe3ZhciBlPVtdLG49W107aWYodC5sZW5ndGg+MClmb3IobGV0IGUsaT0wO2U9dFtpXTtpKyspe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZS5uYW1lKTtpZih0LmlzTmVvbkFuaW1hdGlvbil7bGV0IGk9bnVsbDt0LmNvbmZpZ3VyZXx8KHQuY29uZmlndXJlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSksaT10LmNvbmZpZ3VyZShlKSxuLnB1c2goe3Jlc3VsdDppLGNvbmZpZzplLG5lb25BbmltYXRpb246dH0pfWVsc2UgY29uc29sZS53YXJuKHRoaXMuaXMrIjoiLGUubmFtZSwibm90IGZvdW5kISIpfWZvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXtsZXQgdD1uW2ldLnJlc3VsdCxyPW5baV0uY29uZmlnLG89bltpXS5uZW9uQW5pbWF0aW9uO3RyeXsiZnVuY3Rpb24iIT10eXBlb2YgdC5jYW5jZWwmJih0PWRvY3VtZW50LnRpbWVsaW5lLnBsYXkodCkpfWNhdGNoKGUpe3Q9bnVsbCxjb25zb2xlLndhcm4oIkNvdWxkbnQgcGxheSIsIigiLHIubmFtZSwiKS4iLGUpfXQmJmUucHVzaCh7bmVvbkFuaW1hdGlvbjpvLGNvbmZpZzpyLGFuaW1hdGlvbjp0fSl9cmV0dXJuIGV9LF9zaG91bGRDb21wbGV0ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9ITAsbj0wO248dC5sZW5ndGg7bisrKWlmKCJmaW5pc2hlZCIhPXRbbl0uYW5pbWF0aW9uLnBsYXlTdGF0ZSl7ZT0hMTticmVha31yZXR1cm4gZX0sX2NvbXBsZXRlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0ubmVvbkFuaW1hdGlvbi5jb21wbGV0ZSh0W2VdLmNvbmZpZyk7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmFuaW1hdGlvbi5jYW5jZWwoKX0scGxheUFuaW1hdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZ2V0QW5pbWF0aW9uQ29uZmlnKHQpO2lmKG4pe3RoaXMuX2FjdGl2ZT10aGlzLl9hY3RpdmV8fHt9LHRoaXMuX2FjdGl2ZVt0XSYmKHRoaXMuX2NvbXBsZXRlKHRoaXMuX2FjdGl2ZVt0XSksZGVsZXRlIHRoaXMuX2FjdGl2ZVt0XSk7dmFyIGk9dGhpcy5fY29uZmlndXJlQW5pbWF0aW9ucyhuKTtpZigwIT1pLmxlbmd0aCl7dGhpcy5fYWN0aXZlW3RdPWk7Zm9yKHZhciByPTA7cjxpLmxlbmd0aDtyKyspaVtyXS5hbmltYXRpb24ub25maW5pc2g9ZnVuY3Rpb24oKXt0aGlzLl9zaG91bGRDb21wbGV0ZShpKSYmKHRoaXMuX2NvbXBsZXRlKGkpLGRlbGV0ZSB0aGlzLl9hY3RpdmVbdF0sdGhpcy5maXJlKCJuZW9uLWFuaW1hdGlvbi1maW5pc2giLGUse2J1YmJsZXM6ITF9KSl9LmJpbmQodGhpcyl9ZWxzZSB0aGlzLmZpcmUoIm5lb24tYW5pbWF0aW9uLWZpbmlzaCIsZSx7YnViYmxlczohMX0pfX0sY2FuY2VsQW5pbWF0aW9uOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuX2FjdGl2ZSl7dmFyIGU9dGhpcy5fYWN0aXZlW3RdO2Zvcih2YXIgbiBpbiBlKWVbbl0uYW5pbWF0aW9uLmNhbmNlbCgpfXRoaXMuX2FjdGl2ZT17fX19XTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlIGluY2x1ZGU9InBhcGVyLWRpYWxvZy1zaGFyZWQtc3R5bGVzIj48L3N0eWxlPgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJwYXBlci1kaWFsb2ciLGJlaGF2aW9yczpbUGEsUmFdLGxpc3RlbmVyczp7Im5lb24tYW5pbWF0aW9uLWZpbmlzaCI6Il9vbk5lb25BbmltYXRpb25GaW5pc2gifSxfcmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxBbmltYXRpb24oKSx0aGlzLnBsYXlBbmltYXRpb24oImVudHJ5Iil9LF9yZW5kZXJDbG9zZWQ6ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbEFuaW1hdGlvbigpLHRoaXMucGxheUFuaW1hdGlvbigiZXhpdCIpfSxfb25OZW9uQW5pbWF0aW9uRmluaXNoOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ/dGhpcy5fZmluaXNoUmVuZGVyT3BlbmVkKCk6dGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBPYT1Scih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBjbGlwOiByZWN0KDBweCwwcHgsMHB4LDBweCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGFyaWEtbGl2ZSQ9IltbbW9kZV1dIj5bW190ZXh0XV08L2Rpdj4KYCxpczoiaXJvbi1hMTF5LWFubm91bmNlciIscHJvcGVydGllczp7bW9kZTp7dHlwZTpTdHJpbmcsdmFsdWU6InBvbGl0ZSJ9LHRpbWVvdXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjE1MH0sX3RleHQ6e3R5cGU6U3RyaW5nLHZhbHVlOiIifX0sY3JlYXRlZDpmdW5jdGlvbigpe09hLmluc3RhbmNlfHwoT2EuaW5zdGFuY2U9dGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiaXJvbi1hbm5vdW5jZSIsdGhpcy5fb25Jcm9uQW5ub3VuY2UuYmluZCh0aGlzKSl9LGFubm91bmNlOmZ1bmN0aW9uKHQpe3RoaXMuX3RleHQ9IiIsdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLl90ZXh0PXR9KSx0aGlzLnRpbWVvdXQpfSxfb25Jcm9uQW5ub3VuY2U6ZnVuY3Rpb24odCl7dC5kZXRhaWwmJnQuZGV0YWlsLnRleHQmJnRoaXMuYW5ub3VuY2UodC5kZXRhaWwudGV4dCl9fSk7T2EuaW5zdGFuY2U9bnVsbCxPYS5yZXF1ZXN0QXZhaWxhYmlsaXR5PWZ1bmN0aW9uKCl7T2EuaW5zdGFuY2V8fChPYS5pbnN0YW5jZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpcm9uLWExMXktYW5ub3VuY2VyIikpLGRvY3VtZW50LmJvZHk/ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChPYS5pbnN0YW5jZSk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChPYS5pbnN0YW5jZSl9KSl9LAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxzbG90IGlkPSJjb250ZW50Ij48L3Nsb3Q+CmAsaXM6Imlyb24taW5wdXQiLGJlaGF2aW9yczpbYWFdLHByb3BlcnRpZXM6e2JpbmRWYWx1ZTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LHZhbHVlOnt0eXBlOlN0cmluZyxjb21wdXRlZDoiX2NvbXB1dGVWYWx1ZShiaW5kVmFsdWUpIn0sYWxsb3dlZFBhdHRlcm46e3R5cGU6U3RyaW5nfSxhdXRvVmFsaWRhdGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX2lucHV0RWxlbWVudDpPYmplY3R9LG9ic2VydmVyczpbIl9iaW5kVmFsdWVDaGFuZ2VkKGJpbmRWYWx1ZSwgX2lucHV0RWxlbWVudCkiXSxsaXN0ZW5lcnM6e2lucHV0OiJfb25JbnB1dCIsa2V5cHJlc3M6Il9vbktleXByZXNzIn0sY3JlYXRlZDpmdW5jdGlvbigpe09hLnJlcXVlc3RBdmFpbGFiaWxpdHkoKSx0aGlzLl9wcmV2aW91c1ZhbGlkSW5wdXQ9IiIsdGhpcy5fcGF0dGVybkFscmVhZHlDaGVja2VkPSExfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyPVlpKHRoaXMpLm9ic2VydmVOb2RlcyhmdW5jdGlvbih0KXt0aGlzLl9pbml0U2xvdHRlZElucHV0KCl9LmJpbmQodGhpcykpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyJiYoWWkodGhpcykudW5vYnNlcnZlTm9kZXModGhpcy5fb2JzZXJ2ZXIpLHRoaXMuX29ic2VydmVyPW51bGwpfSxnZXQgaW5wdXRFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2lucHV0RWxlbWVudH0sX2luaXRTbG90dGVkSW5wdXQ6ZnVuY3Rpb24oKXt0aGlzLl9pbnB1dEVsZW1lbnQ9dGhpcy5nZXRFZmZlY3RpdmVDaGlsZHJlbigpWzBdLHRoaXMuaW5wdXRFbGVtZW50JiZ0aGlzLmlucHV0RWxlbWVudC52YWx1ZSYmKHRoaXMuYmluZFZhbHVlPXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKSx0aGlzLmZpcmUoImlyb24taW5wdXQtcmVhZHkiKX0sZ2V0IF9wYXR0ZXJuUmVnRXhwKCl7dmFyIHQ7aWYodGhpcy5hbGxvd2VkUGF0dGVybil0PW5ldyBSZWdFeHAodGhpcy5hbGxvd2VkUGF0dGVybik7ZWxzZSBzd2l0Y2godGhpcy5pbnB1dEVsZW1lbnQudHlwZSl7Y2FzZSJudW1iZXIiOnQ9L1swLTkuLGUtXS99cmV0dXJuIHR9LF9iaW5kVmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7ZSYmKHZvaWQgMD09PXQ/ZS52YWx1ZT1udWxsOnQhPT1lLnZhbHVlJiYodGhpcy5pbnB1dEVsZW1lbnQudmFsdWU9dCksdGhpcy5hdXRvVmFsaWRhdGUmJnRoaXMudmFsaWRhdGUoKSx0aGlzLmZpcmUoImJpbmQtdmFsdWUtY2hhbmdlZCIse3ZhbHVlOnR9KSl9LF9vbklucHV0OmZ1bmN0aW9uKCl7dGhpcy5hbGxvd2VkUGF0dGVybiYmIXRoaXMuX3BhdHRlcm5BbHJlYWR5Q2hlY2tlZCYmKHRoaXMuX2NoZWNrUGF0dGVyblZhbGlkaXR5KCl8fCh0aGlzLl9hbm5vdW5jZUludmFsaWRDaGFyYWN0ZXIoIkludmFsaWQgc3RyaW5nIG9mIGNoYXJhY3RlcnMgbm90IGVudGVyZWQuIiksdGhpcy5pbnB1dEVsZW1lbnQudmFsdWU9dGhpcy5fcHJldmlvdXNWYWxpZElucHV0KSksdGhpcy5iaW5kVmFsdWU9dGhpcy5fcHJldmlvdXNWYWxpZElucHV0PXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLHRoaXMuX3BhdHRlcm5BbHJlYWR5Q2hlY2tlZD0hMX0sX2lzUHJpbnRhYmxlOmZ1bmN0aW9uKHQpe3JldHVybiEoOD09dC5rZXlDb2RlfHw5PT10LmtleUNvZGV8fDEzPT10LmtleUNvZGV8fDI3PT10LmtleUNvZGV8fDA9PXQuY2hhckNvZGUmJigxOT09dC5rZXlDb2RlfHwyMD09dC5rZXlDb2RlfHw0NT09dC5rZXlDb2RlfHw0Nj09dC5rZXlDb2RlfHwxNDQ9PXQua2V5Q29kZXx8MTQ1PT10LmtleUNvZGV8fHQua2V5Q29kZT4zMiYmdC5rZXlDb2RlPDQxfHx0LmtleUNvZGU+MTExJiZ0LmtleUNvZGU8MTI0KSl9LF9vbktleXByZXNzOmZ1bmN0aW9uKHQpe2lmKHRoaXMuYWxsb3dlZFBhdHRlcm58fCJudW1iZXIiPT09dGhpcy5pbnB1dEVsZW1lbnQudHlwZSl7dmFyIGU9dGhpcy5fcGF0dGVyblJlZ0V4cDtpZihlJiYhKHQubWV0YUtleXx8dC5jdHJsS2V5fHx0LmFsdEtleSkpe3RoaXMuX3BhdHRlcm5BbHJlYWR5Q2hlY2tlZD0hMDt2YXIgbj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQuY2hhckNvZGUpO3RoaXMuX2lzUHJpbnRhYmxlKHQpJiYhZS50ZXN0KG4pJiYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2Fubm91bmNlSW52YWxpZENoYXJhY3RlcigiSW52YWxpZCBjaGFyYWN0ZXIgIituKyIgbm90IGVudGVyZWQuIikpfX19LF9jaGVja1BhdHRlcm5WYWxpZGl0eTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3BhdHRlcm5SZWdFeHA7aWYoIXQpcmV0dXJuITA7Zm9yKHZhciBlPTA7ZTx0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7ZSsrKWlmKCF0LnRlc3QodGhpcy5pbnB1dEVsZW1lbnQudmFsdWVbZV0pKXJldHVybiExO3JldHVybiEwfSx2YWxpZGF0ZTpmdW5jdGlvbigpe2lmKCF0aGlzLmlucHV0RWxlbWVudClyZXR1cm4gdGhpcy5pbnZhbGlkPSExLCEwO3ZhciB0PXRoaXMuaW5wdXRFbGVtZW50LmNoZWNrVmFsaWRpdHkoKTtyZXR1cm4gdCYmKHRoaXMucmVxdWlyZWQmJiIiPT09dGhpcy5iaW5kVmFsdWU/dD0hMTp0aGlzLmhhc1ZhbGlkYXRvcigpJiYodD1hYS52YWxpZGF0ZS5jYWxsKHRoaXMsdGhpcy5iaW5kVmFsdWUpKSksdGhpcy5pbnZhbGlkPSF0LHRoaXMuZmlyZSgiaXJvbi1pbnB1dC12YWxpZGF0ZSIpLHR9LF9hbm5vdW5jZUludmFsaWRDaGFyYWN0ZXI6ZnVuY3Rpb24odCl7dGhpcy5maXJlKCJpcm9uLWFubm91bmNlIix7dGV4dDp0fSl9LF9jb21wdXRlVmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCB6YT17YXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLmZpcmUoImFkZG9uLWF0dGFjaGVkIil9LHVwZGF0ZTpmdW5jdGlvbih0KXt9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBmbG9hdDogcmlnaHQ7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY2FwdGlvbjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jaGFyLWNvdW50ZXI7CiAgICAgIH0KCiAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICA6aG9zdCg6ZGlyKHJ0bCkpIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c3Bhbj5bW19jaGFyQ291bnRlclN0cl1dPC9zcGFuPgpgLGlzOiJwYXBlci1pbnB1dC1jaGFyLWNvdW50ZXIiLGJlaGF2aW9yczpbemFdLHByb3BlcnRpZXM6e19jaGFyQ291bnRlclN0cjp7dHlwZTpTdHJpbmcsdmFsdWU6IjAifX0sdXBkYXRlOmZ1bmN0aW9uKHQpe2lmKHQuaW5wdXRFbGVtZW50KXt0LnZhbHVlPXQudmFsdWV8fCIiO3ZhciBlPXQudmFsdWUudG9TdHJpbmcoKS5sZW5ndGgudG9TdHJpbmcoKTt0LmlucHV0RWxlbWVudC5oYXNBdHRyaWJ1dGUoIm1heGxlbmd0aCIpJiYoZSs9Ii8iK3QuaW5wdXRFbGVtZW50LmdldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIikpLHRoaXMuX2NoYXJDb3VudGVyU3RyPWV9fX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgRGE9X2VgCjxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgaHRtbCB7CiAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLXNoYXJlZC1pbnB1dC1zdHlsZTogewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogdG8gbWFrZSBhIHN0YWNraW5nIGNvbnRleHQgKi8KICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LWFsaWduLCBib3R0b20pOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CiAgICAgIH07CiAgICB9CiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+CmA7RGEuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7IiksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChEYS5jb250ZW50KSxScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyOwogICAgICB9CgogICAgICA6aG9zdChbaW5saW5lXSkgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDAuMzM7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1kaXNhYmxlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIFtoaWRkZW5dIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbG9hdGVkLWxhYmVsLXBsYWNlaG9sZGVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNhcHRpb247CiAgICAgIH0KCiAgICAgIC51bmRlcmxpbmUgewogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmZvY3VzZWQtbGluZSB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZpdDsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWZvY3VzLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CgogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAsMSwxKTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMCwxLDEpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItdW5kZXJsaW5lLWZvY3VzOwogICAgICB9CgogICAgICAudW5kZXJsaW5lLmlzLWhpZ2hsaWdodGVkIC5mb2N1c2VkLWxpbmUgewogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOwogICAgICAgIHRyYW5zZm9ybTogbm9uZTsKICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuMjVzOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1czsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdHJhbnNpdGlvbi1lYXNpbmc7CiAgICAgIH0KCiAgICAgIC51bmRlcmxpbmUuaXMtaW52YWxpZCAuZm9jdXNlZC1saW5lIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnZhbGlkLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOwogICAgICAgIHRyYW5zZm9ybTogbm9uZTsKICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuMjVzOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1czsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdHJhbnNpdGlvbi1lYXNpbmc7CiAgICAgIH0KCiAgICAgIC51bmZvY3VzZWQtbGluZSB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZpdDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcikpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci11bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC51bmZvY3VzZWQtbGluZSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZDsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1jb2xvciwgdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpKTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItdW5kZXJsaW5lLWRpc2FibGVkOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleC1hdXRvOwogICAgICAgIEBhcHBseSAtLWxheW91dC1yZWxhdGl2ZTsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChsYWJlbCksCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZCgucGFwZXItaW5wdXQtbGFiZWwpIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZm9udDogaW5oZXJpdDsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcikpOwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXMsIHdpZHRoIDAuMjVzOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cywgd2lkdGggMC4yNXM7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDsKICAgICAgICAvKiBGaXggZm9yIHNhZmFyaSBub3QgZm9jdXNpbmcgMC1oZWlnaHQgZGF0ZS90aW1lIGlucHV0cyB3aXRoIC13ZWJraXQtYXBwZXJhbmNlOiBub25lOyAqLwogICAgICAgIG1pbi1oZWlnaHQ6IDFweDsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tbm93cmFwOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtc3ViaGVhZDsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWw7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdHJhbnNpdGlvbi1lYXNpbmc7CiAgICAgIH0KCgogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQobGFiZWwpOmJlZm9yZSwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1sYWJlbCk6YmVmb3JlIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWwtYmVmb3JlOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQobGFiZWwpOmFmdGVyLAogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKTphZnRlciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWxhYmVsLWFmdGVyOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1mbG9hdGluZyA6OnNsb3R0ZWQobGFiZWwpLAogICAgICAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1mbG9hdGluZyA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKSB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTc1JSkgc2NhbGUoMC43NSk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC03NSUpIHNjYWxlKDAuNzUpOwoKICAgICAgICAvKiBTaW5jZSB3ZSBzY2FsZSB0byA3NS8xMDAgb2YgdGhlIHNpemUsIHdlIGFjdHVhbGx5IGhhdmUgMTAwLzc1IG9mIHRoZQogICAgICAgIG9yaWdpbmFsIHNwYWNlIG5vdyBhdmFpbGFibGUgKi8KICAgICAgICB3aWR0aDogMTMzJTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWxhYmVsLWZsb2F0aW5nOwogICAgICB9CgogICAgICA6aG9zdCg6ZGlyKHJ0bCkpIC5pbnB1dC1jb250ZW50LmxhYmVsLWlzLWZsb2F0aW5nIDo6c2xvdHRlZChsYWJlbCksCiAgICAgIDpob3N0KDpkaXIocnRsKSkgLmlucHV0LWNvbnRlbnQubGFiZWwtaXMtZmxvYXRpbmcgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1sYWJlbCkgewogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IGF1dG87CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1oaWdobGlnaHRlZCA6OnNsb3R0ZWQobGFiZWwpLAogICAgICAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1oaWdobGlnaHRlZCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWwtZm9jdXM7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKGxhYmVsKSwKICAgICAgLmlucHV0LWNvbnRlbnQuaXMtaW52YWxpZCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnZhbGlkLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1oaWRkZW4gOjpzbG90dGVkKGxhYmVsKSwKICAgICAgLmlucHV0LWNvbnRlbnQubGFiZWwtaXMtaGlkZGVuIDo6c2xvdHRlZCgucGFwZXItaW5wdXQtbGFiZWwpIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChpbnB1dCksCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChpcm9uLWlucHV0KSwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKHRleHRhcmVhKSwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGlyb24tYXV0b2dyb3ctdGV4dGFyZWEpLAogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWlucHV0KSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLXNoYXJlZC1pbnB1dC1zdHlsZTsKICAgICAgICAvKiBUaGUgYXBwbHkgc2hpbSBkb2Vzbid0IGFwcGx5IHRoZSBuZXN0ZWQgY29sb3IgY3VzdG9tIHByb3BlcnR5LAogICAgICAgICAgc28gd2UgaGF2ZSB0byByZS1hcHBseSBpdCBoZXJlLiAqLwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGlucHV0KTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGlucHV0KTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LXdlYmtpdC1zcGlubmVyOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudC5mb2N1c2VkIDo6c2xvdHRlZChpbnB1dCksCiAgICAgIC5pbnB1dC1jb250ZW50LmZvY3VzZWQgOjpzbG90dGVkKGlyb24taW5wdXQpLAogICAgICAuaW5wdXQtY29udGVudC5mb2N1c2VkIDo6c2xvdHRlZCh0ZXh0YXJlYSksCiAgICAgIC5pbnB1dC1jb250ZW50LmZvY3VzZWQgOjpzbG90dGVkKGlyb24tYXV0b2dyb3ctdGV4dGFyZWEpLAogICAgICAuaW5wdXQtY29udGVudC5mb2N1c2VkIDo6c2xvdHRlZCgucGFwZXItaW5wdXQtaW5wdXQpIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtZm9jdXM7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKGlucHV0KSwKICAgICAgLmlucHV0LWNvbnRlbnQuaXMtaW52YWxpZCA6OnNsb3R0ZWQoaXJvbi1pbnB1dCksCiAgICAgIC5pbnB1dC1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKHRleHRhcmVhKSwKICAgICAgLmlucHV0LWNvbnRlbnQuaXMtaW52YWxpZCA6OnNsb3R0ZWQoaXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYSksCiAgICAgIC5pbnB1dC1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1pbnB1dCkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dC1pbnZhbGlkOwogICAgICB9CgogICAgICAucHJlZml4IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtc3ViaGVhZDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleC1ub25lOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LXByZWZpeDsKICAgICAgfQoKICAgICAgLnN1ZmZpeCA6OnNsb3R0ZWQoKikgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtbm9uZTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtc3VmZml4OwogICAgICB9CgogICAgICAvKiBGaXJlZm94IHNldHMgYSBtaW4td2lkdGggb24gdGhlIGlucHV0LCB3aGljaCBjYW4gY2F1c2UgbGF5b3V0IGlzc3VlcyAqLwogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoaW5wdXQpIHsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZCh0ZXh0YXJlYSkgewogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLmFkZC1vbi1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5hZGQtb24tY29udGVudC5pcy1pbnZhbGlkIDo6c2xvdHRlZCgqKSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnZhbGlkLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwogICAgICB9CgogICAgICAuYWRkLW9uLWNvbnRlbnQuaXMtaGlnaGxpZ2h0ZWQgOjpzbG90dGVkKCopIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWZvY3VzLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZmxvYXRlZC1sYWJlbC1wbGFjZWhvbGRlciIgYXJpYS1oaWRkZW49InRydWUiIGhpZGRlbj0iW1tub0xhYmVsRmxvYXRdXSI+Jm5ic3A7PC9kaXY+CgogICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmVmaXgiPjxzbG90IG5hbWU9InByZWZpeCI+PC9zbG90Pjwvc3Bhbj4KCiAgICAgIDxkaXYgY2xhc3MkPSJbW19jb21wdXRlSW5wdXRDb250ZW50Q2xhc3Mobm9MYWJlbEZsb2F0LGFsd2F5c0Zsb2F0TGFiZWwsZm9jdXNlZCxpbnZhbGlkLF9pbnB1dEhhc0NvbnRlbnQpXV0iIGlkPSJsYWJlbEFuZElucHV0Q29udGFpbmVyIj4KICAgICAgICA8c2xvdCBuYW1lPSJsYWJlbCI+PC9zbG90PgogICAgICAgIDxzbG90IG5hbWU9ImlucHV0Ij48L3Nsb3Q+CiAgICAgIDwvZGl2PgoKICAgICAgPHNwYW4gY2xhc3M9InN1ZmZpeCI+PHNsb3QgbmFtZT0ic3VmZml4Ij48L3Nsb3Q+PC9zcGFuPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcyQ9IltbX2NvbXB1dGVVbmRlcmxpbmVDbGFzcyhmb2N1c2VkLGludmFsaWQpXV0iPgogICAgICA8ZGl2IGNsYXNzPSJ1bmZvY3VzZWQtbGluZSI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZvY3VzZWQtbGluZSI+PC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzJD0iW1tfY29tcHV0ZUFkZE9uQ29udGVudENsYXNzKGZvY3VzZWQsaW52YWxpZCldXSI+CiAgICAgIDxzbG90IG5hbWU9ImFkZC1vbiI+PC9zbG90PgogICAgPC9kaXY+CmAsaXM6InBhcGVyLWlucHV0LWNvbnRhaW5lciIscHJvcGVydGllczp7bm9MYWJlbEZsb2F0Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGFsd2F5c0Zsb2F0TGFiZWw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYXR0ckZvclZhbHVlOnt0eXBlOlN0cmluZyx2YWx1ZToiYmluZC12YWx1ZSJ9LGF1dG9WYWxpZGF0ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxpbnZhbGlkOntvYnNlcnZlcjoiX2ludmFsaWRDaGFuZ2VkIix0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGZvY3VzZWQ6e3JlYWRPbmx5OiEwLHR5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITB9LF9hZGRvbnM6e3R5cGU6QXJyYXl9LF9pbnB1dEhhc0NvbnRlbnQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX2lucHV0U2VsZWN0b3I6e3R5cGU6U3RyaW5nLHZhbHVlOiJpbnB1dCxpcm9uLWlucHV0LHRleHRhcmVhLC5wYXBlci1pbnB1dC1pbnB1dCJ9LF9ib3VuZE9uRm9jdXM6e3R5cGU6RnVuY3Rpb24sdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25Gb2N1cy5iaW5kKHRoaXMpfX0sX2JvdW5kT25CbHVyOnt0eXBlOkZ1bmN0aW9uLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uQmx1ci5iaW5kKHRoaXMpfX0sX2JvdW5kT25JbnB1dDp7dHlwZTpGdW5jdGlvbix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbklucHV0LmJpbmQodGhpcyl9fSxfYm91bmRWYWx1ZUNoYW5nZWQ6e3R5cGU6RnVuY3Rpb24sdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25WYWx1ZUNoYW5nZWQuYmluZCh0aGlzKX19fSxsaXN0ZW5lcnM6eyJhZGRvbi1hdHRhY2hlZCI6Il9vbkFkZG9uQXR0YWNoZWQiLCJpcm9uLWlucHV0LXZhbGlkYXRlIjoiX29uSXJvbklucHV0VmFsaWRhdGUifSxnZXQgX3ZhbHVlQ2hhbmdlZEV2ZW50KCl7cmV0dXJuIHRoaXMuYXR0ckZvclZhbHVlKyItY2hhbmdlZCJ9LGdldCBfcHJvcGVydHlGb3JWYWx1ZSgpe3JldHVybiBzdCh0aGlzLmF0dHJGb3JWYWx1ZSl9LGdldCBfaW5wdXRFbGVtZW50KCl7cmV0dXJuIFlpKHRoaXMpLnF1ZXJ5U2VsZWN0b3IodGhpcy5faW5wdXRTZWxlY3Rvcil9LGdldCBfaW5wdXRFbGVtZW50VmFsdWUoKXtyZXR1cm4gdGhpcy5faW5wdXRFbGVtZW50W3RoaXMuX3Byb3BlcnR5Rm9yVmFsdWVdfHx0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWV9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5fX2lzRmlyc3RWYWx1ZVVwZGF0ZT0hMCx0aGlzLl9hZGRvbnN8fCh0aGlzLl9hZGRvbnM9W10pLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2JvdW5kT25Gb2N1cywhMCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9ib3VuZE9uQmx1ciwhMCl9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5hdHRyRm9yVmFsdWU/dGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5fdmFsdWVDaGFuZ2VkRXZlbnQsdGhpcy5fYm91bmRWYWx1ZUNoYW5nZWQpOnRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHRoaXMuX29uSW5wdXQpLHRoaXMuX2lucHV0RWxlbWVudFZhbHVlJiYiIiE9dGhpcy5faW5wdXRFbGVtZW50VmFsdWU/dGhpcy5faGFuZGxlVmFsdWVBbmRBdXRvVmFsaWRhdGUodGhpcy5faW5wdXRFbGVtZW50KTp0aGlzLl9oYW5kbGVWYWx1ZSh0aGlzLl9pbnB1dEVsZW1lbnQpfSxfb25BZGRvbkF0dGFjaGVkOmZ1bmN0aW9uKHQpe3RoaXMuX2FkZG9uc3x8KHRoaXMuX2FkZG9ucz1bXSk7dmFyIGU9dC50YXJnZXQ7LTE9PT10aGlzLl9hZGRvbnMuaW5kZXhPZihlKSYmKHRoaXMuX2FkZG9ucy5wdXNoKGUpLHRoaXMuaXNBdHRhY2hlZCYmdGhpcy5faGFuZGxlVmFsdWUodGhpcy5faW5wdXRFbGVtZW50KSl9LF9vbkZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5fc2V0Rm9jdXNlZCghMCl9LF9vbkJsdXI6ZnVuY3Rpb24oKXt0aGlzLl9zZXRGb2N1c2VkKCExKSx0aGlzLl9oYW5kbGVWYWx1ZUFuZEF1dG9WYWxpZGF0ZSh0aGlzLl9pbnB1dEVsZW1lbnQpfSxfb25JbnB1dDpmdW5jdGlvbih0KXt0aGlzLl9oYW5kbGVWYWx1ZUFuZEF1dG9WYWxpZGF0ZSh0LnRhcmdldCl9LF9vblZhbHVlQ2hhbmdlZDpmdW5jdGlvbih0KXt2YXIgZT10LnRhcmdldDt0aGlzLl9faXNGaXJzdFZhbHVlVXBkYXRlJiYodGhpcy5fX2lzRmlyc3RWYWx1ZVVwZGF0ZT0hMSx2b2lkIDA9PT1lLnZhbHVlfHwiIj09PWUudmFsdWUpfHx0aGlzLl9oYW5kbGVWYWx1ZUFuZEF1dG9WYWxpZGF0ZSh0LnRhcmdldCl9LF9oYW5kbGVWYWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9pbnB1dEVsZW1lbnRWYWx1ZTt0aGlzLl9pbnB1dEhhc0NvbnRlbnQ9ISghZSYmMCE9PWUmJigibnVtYmVyIiE9PXQudHlwZXx8dC5jaGVja1ZhbGlkaXR5KCkpKSx0aGlzLnVwZGF0ZUFkZG9ucyh7aW5wdXRFbGVtZW50OnQsdmFsdWU6ZSxpbnZhbGlkOnRoaXMuaW52YWxpZH0pfSxfaGFuZGxlVmFsdWVBbmRBdXRvVmFsaWRhdGU6ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5hdXRvVmFsaWRhdGUmJnQmJihlPXQudmFsaWRhdGU/dC52YWxpZGF0ZSh0aGlzLl9pbnB1dEVsZW1lbnRWYWx1ZSk6dC5jaGVja1ZhbGlkaXR5KCksdGhpcy5pbnZhbGlkPSFlKSx0aGlzLl9oYW5kbGVWYWx1ZSh0KX0sX29uSXJvbklucHV0VmFsaWRhdGU6ZnVuY3Rpb24odCl7dGhpcy5pbnZhbGlkPXRoaXMuX2lucHV0RWxlbWVudC5pbnZhbGlkfSxfaW52YWxpZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLl9hZGRvbnMmJnRoaXMudXBkYXRlQWRkb25zKHtpbnZhbGlkOnRoaXMuaW52YWxpZH0pfSx1cGRhdGVBZGRvbnM6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MDtlPXRoaXMuX2FkZG9uc1tuXTtuKyspZS51cGRhdGUodCl9LF9jb21wdXRlSW5wdXRDb250ZW50Q2xhc3M6ZnVuY3Rpb24odCxlLG4saSxyKXt2YXIgbz0iaW5wdXQtY29udGVudCI7aWYodClyJiYobys9IiBsYWJlbC1pcy1oaWRkZW4iKSxpJiYobys9IiBpcy1pbnZhbGlkIik7ZWxzZXt2YXIgYT10aGlzLnF1ZXJ5U2VsZWN0b3IoImxhYmVsIik7ZXx8cj8obys9IiBsYWJlbC1pcy1mbG9hdGluZyIsdGhpcy4kLmxhYmVsQW5kSW5wdXRDb250YWluZXIuc3R5bGUucG9zaXRpb249InN0YXRpYyIsaT9vKz0iIGlzLWludmFsaWQiOm4mJihvKz0iIGxhYmVsLWlzLWhpZ2hsaWdodGVkIikpOihhJiYodGhpcy4kLmxhYmVsQW5kSW5wdXRDb250YWluZXIuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIiksaSYmKG8rPSIgaXMtaW52YWxpZCIpKX1yZXR1cm4gbiYmKG8rPSIgZm9jdXNlZCIpLG99LF9jb21wdXRlVW5kZXJsaW5lQ2xhc3M6ZnVuY3Rpb24odCxlKXt2YXIgbj0idW5kZXJsaW5lIjtyZXR1cm4gZT9uKz0iIGlzLWludmFsaWQiOnQmJihuKz0iIGlzLWhpZ2hsaWdodGVkIiksbn0sX2NvbXB1dGVBZGRPbkNvbnRlbnRDbGFzczpmdW5jdGlvbih0LGUpe3ZhciBuPSJhZGQtb24tY29udGVudCI7cmV0dXJuIGU/bis9IiBpcy1pbnZhbGlkIjp0JiYobis9IiBpcy1oaWdobGlnaHRlZCIpLG59fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKCiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnZhbGlkLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNhcHRpb247CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtZXJyb3I7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6MDsKICAgICAgICByaWdodDowOwogICAgICB9CgogICAgICA6aG9zdChbaW52YWxpZF0pIHsKICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogICAgICB9CgogICAgICAjYTExeVdyYXBwZXIgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgOmhvc3QoW2ludmFsaWRdKSAjYTExeVdyYXBwZXIgewogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPCEtLQogICAgSWYgdGhlIHBhcGVyLWlucHV0LWVycm9yIGVsZW1lbnQgaXMgZGlyZWN0bHkgcmVmZXJlbmNlZCBieSBhbgogICAgXGBhcmlhLWRlc2NyaWJlZGJ5XGAgYXR0cmlidXRlLCBzdWNoIGFzIHdoZW4gdXNlZCBhcyBhIHBhcGVyLWlucHV0IGFkZC1vbiwKICAgIHRoZW4gYXBwbHlpbmcgXGB2aXNpYmlsaXR5OiBoaWRkZW47XGAgdG8gdGhlIHBhcGVyLWlucHV0LWVycm9yIGVsZW1lbnQgaXRzZWxmCiAgICBkb2VzIG5vdCBoaWRlIHRoZSBlcnJvci4KCiAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlOgogICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL2FjY25hbWUtMS4xLyNtYXBwaW5nX2FkZGl0aW9uYWxfbmRfZGVzY3JpcHRpb24KICAgIC0tPgogICAgPGRpdiBpZD0iYTExeVdyYXBwZXIiPgogICAgICA8c2xvdD48L3Nsb3Q+CiAgICA8L2Rpdj4KYCxpczoicGFwZXItaW5wdXQtZXJyb3IiLGJlaGF2aW9yczpbemFdLHByb3BlcnRpZXM6e2ludmFsaWQ6e3JlYWRPbmx5OiEwLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx0eXBlOkJvb2xlYW59fSx1cGRhdGU6ZnVuY3Rpb24odCl7dGhpcy5fc2V0SW52YWxpZCh0LmludmFsaWQpfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgQmE9e05leHRMYWJlbElEOjEsTmV4dEFkZG9uSUQ6MSxOZXh0SW5wdXRJRDoxfSxIYT17cHJvcGVydGllczp7bGFiZWw6e3R5cGU6U3RyaW5nfSx2YWx1ZTp7bm90aWZ5OiEwLHR5cGU6U3RyaW5nfSxkaXNhYmxlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxpbnZhbGlkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsbm90aWZ5OiEwfSxhbGxvd2VkUGF0dGVybjp7dHlwZTpTdHJpbmd9LHR5cGU6e3R5cGU6U3RyaW5nfSxsaXN0Ont0eXBlOlN0cmluZ30scGF0dGVybjp7dHlwZTpTdHJpbmd9LHJlcXVpcmVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGVycm9yTWVzc2FnZTp7dHlwZTpTdHJpbmd9LGNoYXJDb3VudGVyOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LG5vTGFiZWxGbG9hdDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxhbHdheXNGbG9hdExhYmVsOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGF1dG9WYWxpZGF0ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSx2YWxpZGF0b3I6e3R5cGU6U3RyaW5nfSxhdXRvY29tcGxldGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJvZmYifSxhdXRvZm9jdXM6e3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX2F1dG9mb2N1c0NoYW5nZWQifSxpbnB1dG1vZGU6e3R5cGU6U3RyaW5nfSxtaW5sZW5ndGg6e3R5cGU6TnVtYmVyfSxtYXhsZW5ndGg6e3R5cGU6TnVtYmVyfSxtaW46e3R5cGU6U3RyaW5nfSxtYXg6e3R5cGU6U3RyaW5nfSxzdGVwOnt0eXBlOlN0cmluZ30sbmFtZTp7dHlwZTpTdHJpbmd9LHBsYWNlaG9sZGVyOnt0eXBlOlN0cmluZyx2YWx1ZToiIn0scmVhZG9ubHk6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2l6ZTp7dHlwZTpOdW1iZXJ9LGF1dG9jYXBpdGFsaXplOnt0eXBlOlN0cmluZyx2YWx1ZToibm9uZSJ9LGF1dG9jb3JyZWN0Ont0eXBlOlN0cmluZyx2YWx1ZToib2ZmIn0sYXV0b3NhdmU6e3R5cGU6U3RyaW5nfSxyZXN1bHRzOnt0eXBlOk51bWJlcn0sYWNjZXB0Ont0eXBlOlN0cmluZ30sbXVsdGlwbGU6e3R5cGU6Qm9vbGVhbn0sX2FyaWFEZXNjcmliZWRCeTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LF9hcmlhTGFiZWxsZWRCeTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LF9pbnB1dElkOnt0eXBlOlN0cmluZyx2YWx1ZToiIn19LGxpc3RlbmVyczp7ImFkZG9uLWF0dGFjaGVkIjoiX29uQWRkb25BdHRhY2hlZCJ9LGtleUJpbmRpbmdzOnsic2hpZnQrdGFiOmtleWRvd24iOiJfb25TaGlmdFRhYkRvd24ifSxob3N0QXR0cmlidXRlczp7dGFiaW5kZXg6MH0sZ2V0IGlucHV0RWxlbWVudCgpe3JldHVybiB0aGlzLiR8fCh0aGlzLiQ9e30pLHRoaXMuJC5pbnB1dHx8KHRoaXMuX2dlbmVyYXRlSW5wdXRJZCgpLHRoaXMuJC5pbnB1dD10aGlzLiQkKCIjIit0aGlzLl9pbnB1dElkKSksdGhpcy4kLmlucHV0fSxnZXQgX2ZvY3VzYWJsZUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnR9LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLl90eXBlc1RoYXRIYXZlVGV4dD1bImRhdGUiLCJkYXRldGltZSIsImRhdGV0aW1lLWxvY2FsIiwibW9udGgiLCJ0aW1lIiwid2VlayIsImZpbGUiXX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVBcmlhTGFiZWxsZWRCeSgpLCF5ZSYmdGhpcy5pbnB1dEVsZW1lbnQmJi0xIT09dGhpcy5fdHlwZXNUaGF0SGF2ZVRleHQuaW5kZXhPZih0aGlzLmlucHV0RWxlbWVudC50eXBlKSYmKHRoaXMuYWx3YXlzRmxvYXRMYWJlbD0hMCl9LF9hcHBlbmRTdHJpbmdXaXRoU3BhY2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD90KyIgIitlOmV9LF9vbkFkZG9uQXR0YWNoZWQ6ZnVuY3Rpb24odCl7dmFyIGU9WWkodCkucm9vdFRhcmdldDtpZihlLmlkKXRoaXMuX2FyaWFEZXNjcmliZWRCeT10aGlzLl9hcHBlbmRTdHJpbmdXaXRoU3BhY2UodGhpcy5fYXJpYURlc2NyaWJlZEJ5LGUuaWQpO2Vsc2V7dmFyIG49InBhcGVyLWlucHV0LWFkZC1vbi0iK0JhLk5leHRBZGRvbklEKys7ZS5pZD1uLHRoaXMuX2FyaWFEZXNjcmliZWRCeT10aGlzLl9hcHBlbmRTdHJpbmdXaXRoU3BhY2UodGhpcy5fYXJpYURlc2NyaWJlZEJ5LG4pfX0sdmFsaWRhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQudmFsaWRhdGUoKX0sX2ZvY3VzQmx1ckhhbmRsZXI6ZnVuY3Rpb24odCl7cW8uX2ZvY3VzQmx1ckhhbmRsZXIuY2FsbCh0aGlzLHQpLHRoaXMuZm9jdXNlZCYmIXRoaXMuX3NoaWZ0VGFiUHJlc3NlZCYmdGhpcy5fZm9jdXNhYmxlRWxlbWVudCYmdGhpcy5fZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpfSxfb25TaGlmdFRhYkRvd246ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nZXRBdHRyaWJ1dGUoInRhYmluZGV4Iik7dGhpcy5fc2hpZnRUYWJQcmVzc2VkPSEwLHRoaXMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLGUpLHRoaXMuX3NoaWZ0VGFiUHJlc3NlZD0hMX0pLDEpfSxfaGFuZGxlQXV0b1ZhbGlkYXRlOmZ1bmN0aW9uKCl7dGhpcy5hdXRvVmFsaWRhdGUmJnRoaXMudmFsaWRhdGUoKX0sdXBkYXRlVmFsdWVBbmRQcmVzZXJ2ZUNhcmV0OmZ1bmN0aW9uKHQpe3RyeXt2YXIgZT10aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydDt0aGlzLnZhbHVlPXQsdGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ9ZSx0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25FbmQ9ZX1jYXRjaChlKXt0aGlzLnZhbHVlPXR9fSxfY29tcHV0ZUFsd2F5c0Zsb2F0TGFiZWw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8dH0sX3VwZGF0ZUFyaWFMYWJlbGxlZEJ5OmZ1bmN0aW9uKCl7dmFyIHQsZT1ZaSh0aGlzLnJvb3QpLnF1ZXJ5U2VsZWN0b3IoImxhYmVsIik7ZT8oZS5pZD90PWUuaWQ6KHQ9InBhcGVyLWlucHV0LWxhYmVsLSIrQmEuTmV4dExhYmVsSUQrKyxlLmlkPXQpLHRoaXMuX2FyaWFMYWJlbGxlZEJ5PXQpOnRoaXMuX2FyaWFMYWJlbGxlZEJ5PSIifSxfZ2VuZXJhdGVJbnB1dElkOmZ1bmN0aW9uKCl7dGhpcy5faW5wdXRJZCYmIiIhPT10aGlzLl9pbnB1dElkfHwodGhpcy5faW5wdXRJZD0iaW5wdXQtIitCYS5OZXh0SW5wdXRJRCsrKX0sX29uQ2hhbmdlOmZ1bmN0aW9uKHQpe3RoaXMuc2hhZG93Um9vdCYmdGhpcy5maXJlKHQudHlwZSx7c291cmNlRXZlbnQ6dH0se25vZGU6dGhpcyxidWJibGVzOnQuYnViYmxlcyxjYW5jZWxhYmxlOnQuY2FuY2VsYWJsZX0pfSxfYXV0b2ZvY3VzQ2hhbmdlZDpmdW5jdGlvbigpe2lmKHRoaXMuYXV0b2ZvY3VzJiZ0aGlzLl9mb2N1c2FibGVFbGVtZW50KXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3QgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdCE9PWRvY3VtZW50LmJvZHkmJnQhPT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fHRoaXMuX2ZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKX19fSxGYT1bcW8sem8sSGFdOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe2lzOiJwYXBlci1pbnB1dCIsX3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIDpob3N0KFtmb2N1c2VkXSkgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICBpbnB1dCB7CiAgICAgICAgLyogRmlyZWZveCBzZXRzIGEgbWluLXdpZHRoIG9uIHRoZSBpbnB1dCwgd2hpY2ggY2FuIGNhdXNlIGxheW91dCBpc3N1ZXMgKi8KICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC8qIEluIDEueCwgdGhlIDxpbnB1dD4gaXMgZGlzdHJpYnV0ZWQgdG8gcGFwZXItaW5wdXQtY29udGFpbmVyLCB3aGljaCBzdHlsZXMgaXQuCiAgICAgIEluIDIueCB0aGUgPGlyb24taW5wdXQ+IGlzIGRpc3RyaWJ1dGVkIHRvIHBhcGVyLWlucHV0LWNvbnRhaW5lciwgd2hpY2ggc3R5bGVzCiAgICAgIGl0LCBidXQgaW4gb3JkZXIgZm9yIHRoaXMgdG8gd29yayBjb3JyZWN0bHksIHdlIG5lZWQgdG8gcmVzZXQgc29tZQogICAgICBvZiB0aGUgbmF0aXZlIGlucHV0J3MgcHJvcGVydGllcyB0byBpbmhlcml0IChmcm9tIHRoZSBpcm9uLWlucHV0KSAqLwogICAgICBpcm9uLWlucHV0ID4gaW5wdXQgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1zaGFyZWQtaW5wdXQtc3R5bGU7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgICAgIGxldHRlci1zcGFjaW5nOiBpbmhlcml0OwogICAgICAgIHdvcmQtc3BhY2luZzogaW5oZXJpdDsKICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICB0ZXh0LXNoYWRvdzogaW5oZXJpdDsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBjdXJzb3I6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIGlucHV0OmRpc2FibGVkIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtZGlzYWJsZWQ7CiAgICAgIH0KCiAgICAgIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLAogICAgICBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LXdlYmtpdC1zcGlubmVyOwogICAgICB9CgogICAgICBpbnB1dDo6LXdlYmtpdC1jbGVhci1idXR0b24gewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dC13ZWJraXQtY2xlYXI7CiAgICAgIH0KCiAgICAgIGlucHV0Ojotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3IgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dC13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcjsKICAgICAgfQoKICAgICAgaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItY29sb3IsIHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIGlucHV0Oi1tb3otcGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItY29sb3IsIHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIGlucHV0OjotbW96LXBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcikpOwogICAgICB9CgogICAgICBpbnB1dDo6LW1zLWNsZWFyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbXMtY2xlYXI7CiAgICAgIH0KCiAgICAgIGlucHV0OjotbXMtcmV2ZWFsIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbXMtcmV2ZWFsOwogICAgICB9CgogICAgICBpbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItY29sb3IsIHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIGxhYmVsIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8cGFwZXItaW5wdXQtY29udGFpbmVyIGlkPSJjb250YWluZXIiIG5vLWxhYmVsLWZsb2F0PSJbW25vTGFiZWxGbG9hdF1dIiBhbHdheXMtZmxvYXQtbGFiZWw9IltbX2NvbXB1dGVBbHdheXNGbG9hdExhYmVsKGFsd2F5c0Zsb2F0TGFiZWwscGxhY2Vob2xkZXIpXV0iIGF1dG8tdmFsaWRhdGUkPSJbW2F1dG9WYWxpZGF0ZV1dIiBkaXNhYmxlZCQ9IltbZGlzYWJsZWRdXSIgaW52YWxpZD0iW1tpbnZhbGlkXV0iPgoKICAgICAgPHNsb3QgbmFtZT0icHJlZml4IiBzbG90PSJwcmVmaXgiPjwvc2xvdD4KCiAgICAgIDxsYWJlbCBoaWRkZW4kPSJbWyFsYWJlbF1dIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9yJD0iW1tfaW5wdXRJZF1dIiBzbG90PSJsYWJlbCI+W1tsYWJlbF1dPC9sYWJlbD4KCiAgICAgIDwhLS0gTmVlZCB0byBiaW5kIG1heGxlbmd0aCBzbyB0aGF0IHRoZSBwYXBlci1pbnB1dC1jaGFyLWNvdW50ZXIgd29ya3MgY29ycmVjdGx5IC0tPgogICAgICA8aXJvbi1pbnB1dCBiaW5kLXZhbHVlPSJ7e3ZhbHVlfX0iIHNsb3Q9ImlucHV0IiBjbGFzcz0iaW5wdXQtZWxlbWVudCIgaWQkPSJbW19pbnB1dElkXV0iIG1heGxlbmd0aCQ9IltbbWF4bGVuZ3RoXV0iIGFsbG93ZWQtcGF0dGVybj0iW1thbGxvd2VkUGF0dGVybl1dIiBpbnZhbGlkPSJ7e2ludmFsaWR9fSIgdmFsaWRhdG9yPSJbW3ZhbGlkYXRvcl1dIj4KICAgICAgICA8aW5wdXQgYXJpYS1sYWJlbGxlZGJ5JD0iW1tfYXJpYUxhYmVsbGVkQnldXSIgYXJpYS1kZXNjcmliZWRieSQ9IltbX2FyaWFEZXNjcmliZWRCeV1dIiBkaXNhYmxlZCQ9IltbZGlzYWJsZWRdXSIgdGl0bGUkPSJbW3RpdGxlXV0iIHR5cGUkPSJbW3R5cGVdXSIgcGF0dGVybiQ9IltbcGF0dGVybl1dIiByZXF1aXJlZCQ9IltbcmVxdWlyZWRdXSIgYXV0b2NvbXBsZXRlJD0iW1thdXRvY29tcGxldGVdXSIgYXV0b2ZvY3VzJD0iW1thdXRvZm9jdXNdXSIgaW5wdXRtb2RlJD0iW1tpbnB1dG1vZGVdXSIgbWlubGVuZ3RoJD0iW1ttaW5sZW5ndGhdXSIgbWF4bGVuZ3RoJD0iW1ttYXhsZW5ndGhdXSIgbWluJD0iW1ttaW5dXSIgbWF4JD0iW1ttYXhdXSIgc3RlcCQ9Iltbc3RlcF1dIiBuYW1lJD0iW1tuYW1lXV0iIHBsYWNlaG9sZGVyJD0iW1twbGFjZWhvbGRlcl1dIiByZWFkb25seSQ9IltbcmVhZG9ubHldXSIgbGlzdCQ9IltbbGlzdF1dIiBzaXplJD0iW1tzaXplXV0iIGF1dG9jYXBpdGFsaXplJD0iW1thdXRvY2FwaXRhbGl6ZV1dIiBhdXRvY29ycmVjdCQ9IltbYXV0b2NvcnJlY3RdXSIgb24tY2hhbmdlPSJfb25DaGFuZ2UiIHRhYmluZGV4JD0iW1t0YWJJbmRleF1dIiBhdXRvc2F2ZSQ9IltbYXV0b3NhdmVdXSIgcmVzdWx0cyQ9IltbcmVzdWx0c11dIiBhY2NlcHQkPSJbW2FjY2VwdF1dIiBtdWx0aXBsZSQ9IltbbXVsdGlwbGVdXSIgcm9sZSQ9IltbaW5wdXRSb2xlXV0iIGFyaWEtaGFzcG9wdXAkPSJbW2lucHV0QXJpYUhhc3BvcHVwXV0iPgogICAgICA8L2lyb24taW5wdXQ+CgogICAgICA8c2xvdCBuYW1lPSJzdWZmaXgiIHNsb3Q9InN1ZmZpeCI+PC9zbG90PgoKICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2Vycm9yTWVzc2FnZV1dIj4KICAgICAgICA8cGFwZXItaW5wdXQtZXJyb3IgYXJpYS1saXZlPSJhc3NlcnRpdmUiIHNsb3Q9ImFkZC1vbiI+W1tlcnJvck1lc3NhZ2VdXTwvcGFwZXItaW5wdXQtZXJyb3I+CiAgICAgIDwvdGVtcGxhdGU+CgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbY2hhckNvdW50ZXJdXSI+CiAgICAgICAgPHBhcGVyLWlucHV0LWNoYXItY291bnRlciBzbG90PSJhZGQtb24iPjwvcGFwZXItaW5wdXQtY2hhci1jb3VudGVyPgogICAgICA8L3RlbXBsYXRlPgoKICAgIDwvcGFwZXItaW5wdXQtY29udGFpbmVyPgogIGAsYmVoYXZpb3JzOltGYSxyYV0scHJvcGVydGllczp7dmFsdWU6e3R5cGU6U3RyaW5nfSxpbnB1dFJvbGU6e3R5cGU6U3RyaW5nLHZhbHVlOnZvaWQgMH0saW5wdXRBcmlhSGFzcG9wdXA6e3R5cGU6U3RyaW5nLHZhbHVlOnZvaWQgMH19LGdldCBfZm9jdXNhYmxlRWxlbWVudCgpe3JldHVybiB0aGlzLmlucHV0RWxlbWVudC5faW5wdXRFbGVtZW50fSxsaXN0ZW5lcnM6eyJpcm9uLWlucHV0LXJlYWR5IjoiX29uSXJvbklucHV0UmVhZHkifSxfb25Jcm9uSW5wdXRSZWFkeTpmdW5jdGlvbigpe3RoaXMuJC5uYXRpdmVJbnB1dHx8KHRoaXMuJC5uYXRpdmVJbnB1dD10aGlzLiQkKCJpbnB1dCIpKSx0aGlzLmlucHV0RWxlbWVudCYmLTEhPT10aGlzLl90eXBlc1RoYXRIYXZlVGV4dC5pbmRleE9mKHRoaXMuJC5uYXRpdmVJbnB1dC50eXBlKSYmKHRoaXMuYWx3YXlzRmxvYXRMYWJlbD0hMCksdGhpcy5pbnB1dEVsZW1lbnQuYmluZFZhbHVlJiZ0aGlzLiQuY29udGFpbmVyLl9oYW5kbGVWYWx1ZUFuZEF1dG9WYWxpZGF0ZSh0aGlzLmlucHV0RWxlbWVudCl9fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICB9CgogICAgICAjY29udGVudFdyYXBwZXIgOjpzbG90dGVkKCopIHsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgI2NvbnRlbnRXcmFwcGVyLmFuaW1hdGluZyA6OnNsb3R0ZWQoKikgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBpZD0iY29udGVudFdyYXBwZXIiPgogICAgICA8c2xvdCBpZD0iY29udGVudCIgbmFtZT0iZHJvcGRvd24tY29udGVudCI+PC9zbG90PgogICAgPC9kaXY+CmAsaXM6Imlyb24tZHJvcGRvd24iLGJlaGF2aW9yczpbcW8sem8sa2EsUmFdLHByb3BlcnRpZXM6e2hvcml6b250YWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6ImxlZnQiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sdmVydGljYWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6InRvcCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxvcGVuQW5pbWF0aW9uQ29uZmlnOnt0eXBlOk9iamVjdH0sY2xvc2VBbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0fSxmb2N1c1RhcmdldDp7dHlwZTpPYmplY3R9LG5vQW5pbWF0aW9uczp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxhbGxvd091dHNpZGVTY3JvbGw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX2FsbG93T3V0c2lkZVNjcm9sbENoYW5nZWQifX0sbGlzdGVuZXJzOnsibmVvbi1hbmltYXRpb24tZmluaXNoIjoiX29uTmVvbkFuaW1hdGlvbkZpbmlzaCJ9LG9ic2VydmVyczpbIl91cGRhdGVPdmVybGF5UG9zaXRpb24ocG9zaXRpb25UYXJnZXQsIHZlcnRpY2FsQWxpZ24sIGhvcml6b250YWxBbGlnbiwgdmVydGljYWxPZmZzZXQsIGhvcml6b250YWxPZmZzZXQpIl0sZ2V0IGNvbnRhaW5lZEVsZW1lbnQoKXtmb3IodmFyIHQ9WWkodGhpcy4kLmNvbnRlbnQpLmdldERpc3RyaWJ1dGVkTm9kZXMoKSxlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKWlmKHRbZV0ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4gdFtlXX0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbEFjdGlvbnx8KHRoaXMuc2Nyb2xsQWN0aW9uPXRoaXMuYWxsb3dPdXRzaWRlU2Nyb2xsPyJyZWZpdCI6ImxvY2siKSx0aGlzLl9yZWFkaWVkPSEwfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuc2l6aW5nVGFyZ2V0JiZ0aGlzLnNpemluZ1RhcmdldCE9PXRoaXN8fCh0aGlzLnNpemluZ1RhcmdldD10aGlzLmNvbnRhaW5lZEVsZW1lbnR8fHRoaXMpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuY2FuY2VsQW5pbWF0aW9uKCl9LF9vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQmJnRoaXMuZGlzYWJsZWQ/dGhpcy5jYW5jZWwoKToodGhpcy5jYW5jZWxBbmltYXRpb24oKSx0aGlzLl91cGRhdGVBbmltYXRpb25Db25maWcoKSxDYS5fb3BlbmVkQ2hhbmdlZC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxfcmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7IXRoaXMubm9BbmltYXRpb25zJiZ0aGlzLmFuaW1hdGlvbkNvbmZpZy5vcGVuPyh0aGlzLiQuY29udGVudFdyYXBwZXIuY2xhc3NMaXN0LmFkZCgiYW5pbWF0aW5nIiksdGhpcy5wbGF5QW5pbWF0aW9uKCJvcGVuIikpOkNhLl9yZW5kZXJPcGVuZWQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxfcmVuZGVyQ2xvc2VkOmZ1bmN0aW9uKCl7IXRoaXMubm9BbmltYXRpb25zJiZ0aGlzLmFuaW1hdGlvbkNvbmZpZy5jbG9zZT8odGhpcy4kLmNvbnRlbnRXcmFwcGVyLmNsYXNzTGlzdC5hZGQoImFuaW1hdGluZyIpLHRoaXMucGxheUFuaW1hdGlvbigiY2xvc2UiKSk6Q2EuX3JlbmRlckNsb3NlZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LF9vbk5lb25BbmltYXRpb25GaW5pc2g6ZnVuY3Rpb24oKXt0aGlzLiQuY29udGVudFdyYXBwZXIuY2xhc3NMaXN0LnJlbW92ZSgiYW5pbWF0aW5nIiksdGhpcy5vcGVuZWQ/dGhpcy5fZmluaXNoUmVuZGVyT3BlbmVkKCk6dGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCl9LF91cGRhdGVBbmltYXRpb25Db25maWc6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5jb250YWluZWRFbGVtZW50LGU9W10uY29uY2F0KHRoaXMub3BlbkFuaW1hdGlvbkNvbmZpZ3x8W10pLmNvbmNhdCh0aGlzLmNsb3NlQW5pbWF0aW9uQ29uZmlnfHxbXSksbj0wO248ZS5sZW5ndGg7bisrKWVbbl0ubm9kZT10O3RoaXMuYW5pbWF0aW9uQ29uZmlnPXtvcGVuOnRoaXMub3BlbkFuaW1hdGlvbkNvbmZpZyxjbG9zZTp0aGlzLmNsb3NlQW5pbWF0aW9uQ29uZmlnfX0sX3VwZGF0ZU92ZXJsYXlQb3NpdGlvbjpmdW5jdGlvbigpe3RoaXMuaXNBdHRhY2hlZCYmdGhpcy5ub3RpZnlSZXNpemUoKX0sX2FsbG93T3V0c2lkZVNjcm9sbENoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5fcmVhZGllZCYmKHQ/dGhpcy5zY3JvbGxBY3Rpb24mJiJsb2NrIiE9PXRoaXMuc2Nyb2xsQWN0aW9ufHwodGhpcy5zY3JvbGxBY3Rpb249InJlZml0Iik6dGhpcy5zY3JvbGxBY3Rpb249ImxvY2siKX0sX2FwcGx5Rm9jdXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmZvY3VzVGFyZ2V0fHx0aGlzLmNvbnRhaW5lZEVsZW1lbnQ7dCYmdGhpcy5vcGVuZWQmJiF0aGlzLm5vQXV0b0ZvY3VzP3QuZm9jdXMoKTpDYS5fYXBwbHlGb2N1cy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBWYT17cHJvcGVydGllczp7YW5pbWF0aW9uVGltaW5nOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybntkdXJhdGlvbjo1MDAsZWFzaW5nOiJjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIixmaWxsOiJib3RoIn19fX0saXNOZW9uQW5pbWF0aW9uOiEwLGNyZWF0ZWQ6ZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LmFuaW1hdGV8fGNvbnNvbGUud2FybigiTm8gd2ViIGFuaW1hdGlvbnMgZGV0ZWN0ZWQuIFRoaXMgZWxlbWVudCB3aWxsIG5vdCBmdW5jdGlvbiB3aXRob3V0IGEgd2ViIGFuaW1hdGlvbnMgcG9seWZpbGwuIil9LHRpbWluZ0Zyb21Db25maWc6ZnVuY3Rpb24odCl7aWYodC50aW1pbmcpZm9yKHZhciBlIGluIHQudGltaW5nKXRoaXMuYW5pbWF0aW9uVGltaW5nW2VdPXQudGltaW5nW2VdO3JldHVybiB0aGlzLmFuaW1hdGlvblRpbWluZ30sc2V0UHJlZml4ZWRQcm9wZXJ0eTpmdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpLHI9e3RyYW5zZm9ybTpbIndlYmtpdFRyYW5zZm9ybSJdLHRyYW5zZm9ybU9yaWdpbjpbIm1velRyYW5zZm9ybU9yaWdpbiIsIndlYmtpdFRyYW5zZm9ybU9yaWdpbiJdfVtlXSxvPTA7aT1yW29dO28rKyl0LnN0eWxlW2ldPW47dC5zdHlsZVtlXT1ufSxjb21wbGV0ZTpmdW5jdGlvbih0KXt9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovUnIoe2lzOiJmYWRlLWluLWFuaW1hdGlvbiIsYmVoYXZpb3JzOltWYV0sY29uZmlndXJlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9lZmZlY3Q9bmV3IEtleWZyYW1lRWZmZWN0KHQubm9kZSxbe29wYWNpdHk6IjAifSx7b3BhY2l0eToiMSJ9XSx0aGlzLnRpbWluZ0Zyb21Db25maWcodCkpLHRoaXMuX2VmZmVjdH19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtpczoiZmFkZS1vdXQtYW5pbWF0aW9uIixiZWhhdmlvcnM6W1ZhXSxjb25maWd1cmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2VmZmVjdD1uZXcgS2V5ZnJhbWVFZmZlY3QodC5ub2RlLFt7b3BhY2l0eToiMSJ9LHtvcGFjaXR5OiIwIn1dLHRoaXMudGltaW5nRnJvbUNvbmZpZyh0KSksdGhpcy5fZWZmZWN0fX0pLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe2lzOiJwYXBlci1tZW51LWdyb3ctaGVpZ2h0LWFuaW1hdGlvbiIsX3RlbXBsYXRlOm51bGwsYmVoYXZpb3JzOltWYV0sY29uZmlndXJlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubm9kZSxuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O3JldHVybiB0aGlzLl9lZmZlY3Q9bmV3IEtleWZyYW1lRWZmZWN0KGUsW3toZWlnaHQ6bi8yKyJweCJ9LHtoZWlnaHQ6bisicHgifV0sdGhpcy50aW1pbmdGcm9tQ29uZmlnKHQpKSx0aGlzLl9lZmZlY3R9fSksUnIoe2lzOiJwYXBlci1tZW51LWdyb3ctd2lkdGgtYW5pbWF0aW9uIixfdGVtcGxhdGU6bnVsbCxiZWhhdmlvcnM6W1ZhXSxjb25maWd1cmU6ZnVuY3Rpb24odCl7dmFyIGU9dC5ub2RlLG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtyZXR1cm4gdGhpcy5fZWZmZWN0PW5ldyBLZXlmcmFtZUVmZmVjdChlLFt7d2lkdGg6bi8yKyJweCJ9LHt3aWR0aDpuKyJweCJ9XSx0aGlzLnRpbWluZ0Zyb21Db25maWcodCkpLHRoaXMuX2VmZmVjdH19KSxScih7aXM6InBhcGVyLW1lbnUtc2hyaW5rLXdpZHRoLWFuaW1hdGlvbiIsX3RlbXBsYXRlOm51bGwsYmVoYXZpb3JzOltWYV0sY29uZmlndXJlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubm9kZSxuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7cmV0dXJuIHRoaXMuX2VmZmVjdD1uZXcgS2V5ZnJhbWVFZmZlY3QoZSxbe3dpZHRoOm4rInB4In0se3dpZHRoOm4tbi8yMCsicHgifV0sdGhpcy50aW1pbmdGcm9tQ29uZmlnKHQpKSx0aGlzLl9lZmZlY3R9fSksUnIoe2lzOiJwYXBlci1tZW51LXNocmluay1oZWlnaHQtYW5pbWF0aW9uIixfdGVtcGxhdGU6bnVsbCxiZWhhdmlvcnM6W1ZhXSxjb25maWd1cmU6ZnVuY3Rpb24odCl7dmFyIGU9dC5ub2RlLG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7cmV0dXJuIHRoaXMuc2V0UHJlZml4ZWRQcm9wZXJ0eShlLCJ0cmFuc2Zvcm1PcmlnaW4iLCIwIDAiKSx0aGlzLl9lZmZlY3Q9bmV3IEtleWZyYW1lRWZmZWN0KGUsW3toZWlnaHQ6bisicHgiLHRyYW5zZm9ybToidHJhbnNsYXRlWSgwKSJ9LHtoZWlnaHQ6bi8yKyJweCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC0yMHB4KSJ9XSx0aGlzLnRpbWluZ0Zyb21Db25maWcodCkpLHRoaXMuX2VmZmVjdH19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCnZhciBVYT17QU5JTUFUSU9OX0NVQklDX0JFWklFUjoiY3ViaWMtYmV6aWVyKC4zLC45NSwuNSwxKSIsTUFYX0FOSU1BVElPTl9USU1FX01TOjQwMH07Y29uc3QgamE9UnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLW1lbnUtYnV0dG9uOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgICAgY3Vyc29yOiBhdXRvOwogICAgICAgIGNvbG9yOiB2YXIoLS1kaXNhYmxlZC10ZXh0LWNvbG9yKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItbWVudS1idXR0b24tZGlzYWJsZWQ7CiAgICAgIH0KCiAgICAgIGlyb24tZHJvcGRvd24gewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1lbnUtYnV0dG9uLWRyb3Bkb3duOwogICAgICB9CgogICAgICAuZHJvcGRvd24tY29udGVudCB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0yZHA7CgogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItbWVudS1idXR0b24tZHJvcGRvd24tYmFja2dyb3VuZCwgdmFyKC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLW1lbnUtYnV0dG9uLWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFt2ZXJ0aWNhbC1hbGlnbj0idG9wIl0pIC5kcm9wZG93bi1jb250ZW50IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIG1hcmdpbi10b3A6IC0xMHB4OwogICAgICAgIHRvcDogMTBweDsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZlcnRpY2FsLWFsaWduPSJib3R0b20iXSkgLmRyb3Bkb3duLWNvbnRlbnQgewogICAgICAgIGJvdHRvbTogMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTBweDsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB9CgogICAgICAjdHJpZ2dlciB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgaWQ9InRyaWdnZXIiIG9uLXRhcD0idG9nZ2xlIj4KICAgICAgPHNsb3QgbmFtZT0iZHJvcGRvd24tdHJpZ2dlciI+PC9zbG90PgogICAgPC9kaXY+CgogICAgPGlyb24tZHJvcGRvd24gaWQ9ImRyb3Bkb3duIiBvcGVuZWQ9Int7b3BlbmVkfX0iIGhvcml6b250YWwtYWxpZ249IltbaG9yaXpvbnRhbEFsaWduXV0iIHZlcnRpY2FsLWFsaWduPSJbW3ZlcnRpY2FsQWxpZ25dXSIgZHluYW1pYy1hbGlnbj0iW1tkeW5hbWljQWxpZ25dXSIgaG9yaXpvbnRhbC1vZmZzZXQ9IltbaG9yaXpvbnRhbE9mZnNldF1dIiB2ZXJ0aWNhbC1vZmZzZXQ9IltbdmVydGljYWxPZmZzZXRdXSIgbm8tb3ZlcmxhcD0iW1tub092ZXJsYXBdXSIgb3Blbi1hbmltYXRpb24tY29uZmlnPSJbW29wZW5BbmltYXRpb25Db25maWddXSIgY2xvc2UtYW5pbWF0aW9uLWNvbmZpZz0iW1tjbG9zZUFuaW1hdGlvbkNvbmZpZ11dIiBuby1hbmltYXRpb25zPSJbW25vQW5pbWF0aW9uc11dIiBmb2N1cy10YXJnZXQ9IltbX2Ryb3Bkb3duQ29udGVudF1dIiBhbGxvdy1vdXRzaWRlLXNjcm9sbD0iW1thbGxvd091dHNpZGVTY3JvbGxdXSIgcmVzdG9yZS1mb2N1cy1vbi1jbG9zZT0iW1tyZXN0b3JlRm9jdXNPbkNsb3NlXV0iIG9uLWlyb24tb3ZlcmxheS1jYW5jZWxlZD0iX19vbklyb25PdmVybGF5Q2FuY2VsZWQiIGV4cGFuZC1zaXppbmctdGFyZ2V0LWZvci1zY3JvbGxiYXJzPSJbW2V4cGFuZFNpemluZ1RhcmdldEZvclNjcm9sbGJhcnNdXSI+CiAgICAgIDxkaXYgc2xvdD0iZHJvcGRvd24tY29udGVudCIgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiPgogICAgICAgIDxzbG90IGlkPSJjb250ZW50IiBuYW1lPSJkcm9wZG93bi1jb250ZW50Ij48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgPC9pcm9uLWRyb3Bkb3duPgpgLGlzOiJwYXBlci1tZW51LWJ1dHRvbiIsYmVoYXZpb3JzOlt6byxxb10scHJvcGVydGllczp7b3BlbmVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsbm90aWZ5OiEwLG9ic2VydmVyOiJfb3BlbmVkQ2hhbmdlZCJ9LGhvcml6b250YWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6ImxlZnQiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sdmVydGljYWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6InRvcCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxkeW5hbWljQWxpZ246e3R5cGU6Qm9vbGVhbn0saG9yaXpvbnRhbE9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MCxub3RpZnk6ITB9LHZlcnRpY2FsT2Zmc2V0Ont0eXBlOk51bWJlcix2YWx1ZTowLG5vdGlmeTohMH0sbm9PdmVybGFwOnt0eXBlOkJvb2xlYW59LG5vQW5pbWF0aW9uczp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxpZ25vcmVTZWxlY3Q6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sY2xvc2VPbkFjdGl2YXRlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LG9wZW5BbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW3tuYW1lOiJmYWRlLWluLWFuaW1hdGlvbiIsdGltaW5nOntkZWxheToxMDAsZHVyYXRpb246MjAwfX0se25hbWU6InBhcGVyLW1lbnUtZ3Jvdy13aWR0aC1hbmltYXRpb24iLHRpbWluZzp7ZGVsYXk6MTAwLGR1cmF0aW9uOjE1MCxlYXNpbmc6VWEuQU5JTUFUSU9OX0NVQklDX0JFWklFUn19LHtuYW1lOiJwYXBlci1tZW51LWdyb3ctaGVpZ2h0LWFuaW1hdGlvbiIsdGltaW5nOntkZWxheToxMDAsZHVyYXRpb246Mjc1LGVhc2luZzpVYS5BTklNQVRJT05fQ1VCSUNfQkVaSUVSfX1dfX0sY2xvc2VBbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW3tuYW1lOiJmYWRlLW91dC1hbmltYXRpb24iLHRpbWluZzp7ZHVyYXRpb246MTUwfX0se25hbWU6InBhcGVyLW1lbnUtc2hyaW5rLXdpZHRoLWFuaW1hdGlvbiIsdGltaW5nOntkZWxheToxMDAsZHVyYXRpb246NTAsZWFzaW5nOlVhLkFOSU1BVElPTl9DVUJJQ19CRVpJRVJ9fSx7bmFtZToicGFwZXItbWVudS1zaHJpbmstaGVpZ2h0LWFuaW1hdGlvbiIsdGltaW5nOntkdXJhdGlvbjoyMDAsZWFzaW5nOiJlYXNlLWluIn19XX19LGFsbG93T3V0c2lkZVNjcm9sbDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxyZXN0b3JlRm9jdXNPbkNsb3NlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITB9LGV4cGFuZFNpemluZ1RhcmdldEZvclNjcm9sbGJhcnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX2Ryb3Bkb3duQ29udGVudDp7dHlwZTpPYmplY3R9fSxob3N0QXR0cmlidXRlczp7cm9sZToiZ3JvdXAiLCJhcmlhLWhhc3BvcHVwIjoidHJ1ZSJ9LGxpc3RlbmVyczp7Imlyb24tYWN0aXZhdGUiOiJfb25Jcm9uQWN0aXZhdGUiLCJpcm9uLXNlbGVjdCI6Il9vbklyb25TZWxlY3QifSxnZXQgY29udGVudEVsZW1lbnQoKXtmb3IodmFyIHQ9WWkodGhpcy4kLmNvbnRlbnQpLmdldERpc3RyaWJ1dGVkTm9kZXMoKSxlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKWlmKHRbZV0ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4gdFtlXX0sdG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ/dGhpcy5jbG9zZSgpOnRoaXMub3BlbigpfSxvcGVuOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlZHx8dGhpcy4kLmRyb3Bkb3duLm9wZW4oKX0sY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLiQuZHJvcGRvd24uY2xvc2UoKX0sX29uSXJvblNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLmlnbm9yZVNlbGVjdHx8dGhpcy5jbG9zZSgpfSxfb25Jcm9uQWN0aXZhdGU6ZnVuY3Rpb24odCl7dGhpcy5jbG9zZU9uQWN0aXZhdGUmJnRoaXMuY2xvc2UoKX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24odCxlKXt0Pyh0aGlzLl9kcm9wZG93bkNvbnRlbnQ9dGhpcy5jb250ZW50RWxlbWVudCx0aGlzLmZpcmUoInBhcGVyLWRyb3Bkb3duLW9wZW4iKSk6bnVsbCE9ZSYmdGhpcy5maXJlKCJwYXBlci1kcm9wZG93bi1jbG9zZSIpfSxfZGlzYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKHQpe3FvLl9kaXNhYmxlZENoYW5nZWQuYXBwbHkodGhpcyxhcmd1bWVudHMpLHQmJnRoaXMub3BlbmVkJiZ0aGlzLmNsb3NlKCl9LF9fb25Jcm9uT3ZlcmxheUNhbmNlbGVkOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJC50cmlnZ2VyO1lpKHQuZGV0YWlsKS5wYXRoLmluZGV4T2YoZSk+LTEmJnQucHJldmVudERlZmF1bHQoKX19KTtPYmplY3Qua2V5cyhVYSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7amFbdF09VWFbdF19KSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBHYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO0dhLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLEdhLmlubmVySFRNTD0nPGlyb24taWNvbnNldC1zdmcgbmFtZT0icGFwZXItZHJvcGRvd24tbWVudSIgc2l6ZT0iMjQiPlxuPHN2Zz48ZGVmcz5cbjxnIGlkPSJhcnJvdy1kcm9wLWRvd24iPjxwYXRoIGQ9Ik03IDEwbDUgNSA1LTV6Ij48L3BhdGg+PC9nPlxuPC9kZWZzPjwvc3ZnPlxuPC9pcm9uLWljb25zZXQtc3ZnPicsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChHYS5jb250ZW50KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IFdhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7V2Euc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7IiksV2EuaW5uZXJIVE1MPSc8ZG9tLW1vZHVsZSBpZD0icGFwZXItZHJvcGRvd24tbWVudS1zaGFyZWQtc3R5bGVzIj5cbiAgPHRlbXBsYXRlPlxuICAgIDxzdHlsZT5cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgLyogTk9URShjZGF0YSk6IEJvdGggdmFsdWVzIGFyZSBuZWVkZWQsIHNpbmNlIHNvbWUgcGhvbmVzIHJlcXVpcmUgdGhlXG4gICAgICAgICAqIHZhbHVlIHRvIGJlIGB0cmFuc3BhcmVudGAuXG4gICAgICAgICAqL1xuICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4gICAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ6IHtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9O1xuXG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRyb3Bkb3duLW1lbnU7XG4gICAgICB9XG5cbiAgICAgIC8qIHBhcGVyLWRyb3Bkb3duLW1lbnUgYW5kIHBhcGVyLWRyb3Bkb3duLW1lbnUtbGlnaHQgYm90aCBkZWxlZ2F0ZSBmb2N1c1xuICAgICAgICogdG8gb3RoZXIgaW50ZXJuYWwgZWxlbWVudHMgd2hpY2ggbWFuYWdlIGZvY3VzIHN0eWxpbmcuICovXG4gICAgICA6aG9zdCg6Zm9jdXMpIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoOmRpcihydGwpKSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgIEBhcHBseSgtLXBhcGVyLWRyb3Bkb3duLW1lbnUpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRyb3Bkb3duLW1lbnUtZGlzYWJsZWQ7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtub2lua10pIHBhcGVyLXJpcHBsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtuby1sYWJlbC1mbG9hdF0pIHBhcGVyLXJpcHBsZSB7XG4gICAgICAgIHRvcDogOHB4O1xuICAgICAgfVxuXG4gICAgICBwYXBlci1yaXBwbGUge1xuICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgYm90dG9tOiA4cHg7XG4gICAgICAgIHJpZ2h0OiAwcHg7XG5cbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZHJvcGRvd24tbWVudS1yaXBwbGU7XG4gICAgICB9XG5cbiAgICAgIHBhcGVyLW1lbnUtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZHJvcGRvd24tbWVudS1idXR0b247XG4gICAgICB9XG5cbiAgICAgIHBhcGVyLWlucHV0IHtcbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZHJvcGRvd24tbWVudS1pbnB1dDtcbiAgICAgIH1cblxuICAgICAgaXJvbi1pY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWRpc2FibGVkLXRleHQtY29sb3IpO1xuXG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRyb3Bkb3duLW1lbnUtaWNvbjtcbiAgICAgIH1cbiAgICA8L3N0eWxlPlxuICA8L3RlbXBsYXRlPlxuPC9kb20tbW9kdWxlPicsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChXYS5jb250ZW50KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IHFhPWVyKEhUTUxFbGVtZW50KTtScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlIGluY2x1ZGU9InBhcGVyLWRyb3Bkb3duLW1lbnUtc2hhcmVkLXN0eWxlcyI+PC9zdHlsZT4KCiAgICA8cGFwZXItbWVudS1idXR0b24gaWQ9Im1lbnVCdXR0b24iIHZlcnRpY2FsLWFsaWduPSJbW3ZlcnRpY2FsQWxpZ25dXSIgaG9yaXpvbnRhbC1hbGlnbj0iW1tob3Jpem9udGFsQWxpZ25dXSIgZHluYW1pYy1hbGlnbj0iW1tkeW5hbWljQWxpZ25dXSIgdmVydGljYWwtb2Zmc2V0PSJbW19jb21wdXRlTWVudVZlcnRpY2FsT2Zmc2V0KG5vTGFiZWxGbG9hdCwgdmVydGljYWxPZmZzZXQpXV0iIGRpc2FibGVkPSJbW2Rpc2FibGVkXV0iIG5vLWFuaW1hdGlvbnM9Iltbbm9BbmltYXRpb25zXV0iIG9uLWlyb24tc2VsZWN0PSJfb25Jcm9uU2VsZWN0IiBvbi1pcm9uLWRlc2VsZWN0PSJfb25Jcm9uRGVzZWxlY3QiIG9wZW5lZD0ie3tvcGVuZWR9fSIgY2xvc2Utb24tYWN0aXZhdGUgYWxsb3ctb3V0c2lkZS1zY3JvbGw9IltbYWxsb3dPdXRzaWRlU2Nyb2xsXV0iIHJlc3RvcmUtZm9jdXMtb24tY2xvc2U9IltbcmVzdG9yZUZvY3VzT25DbG9zZV1dIiBleHBhbmQtc2l6aW5nLXRhcmdldC1mb3Itc2Nyb2xsYmFycz0iW1tleHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzXV0iPgogICAgICA8IS0tIHN1cHBvcnQgaHlicmlkIG1vZGU6IHVzZXIgbWlnaHQgYmUgdXNpbmcgcGFwZXItbWVudS1idXR0b24gMS54IHdoaWNoIGRpc3RyaWJ1dGVzIHZpYSA8Y29udGVudD4gLS0+CiAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duLXRyaWdnZXIiIHNsb3Q9ImRyb3Bkb3duLXRyaWdnZXIiPgogICAgICAgIDxwYXBlci1yaXBwbGU+PC9wYXBlci1yaXBwbGU+CiAgICAgICAgPCEtLSBwYXBlci1pbnB1dCBoYXMgdHlwZT0idGV4dCIgZm9yIGExMXksIGRvIG5vdCByZW1vdmUgLS0+CiAgICAgICAgPHBhcGVyLWlucHV0IGlkPSJpbnB1dCIgdHlwZT0idGV4dCIgaW52YWxpZD0iW1tpbnZhbGlkXV0iIHJlYWRvbmx5IGRpc2FibGVkPSJbW2Rpc2FibGVkXV0iIHZhbHVlPSJbW3ZhbHVlXV0iIHBsYWNlaG9sZGVyPSJbW3BsYWNlaG9sZGVyXV0iIGVycm9yLW1lc3NhZ2U9IltbZXJyb3JNZXNzYWdlXV0iIGFsd2F5cy1mbG9hdC1sYWJlbD0iW1thbHdheXNGbG9hdExhYmVsXV0iIG5vLWxhYmVsLWZsb2F0PSJbW25vTGFiZWxGbG9hdF1dIiBsYWJlbD0iW1tsYWJlbF1dIiBpbnB1dC1yb2xlPSJidXR0b24iIGlucHV0LWFyaWEtaGFzcG9wdXA9Imxpc3Rib3giIGF1dG9jb21wbGV0ZT0ib2ZmIj4KICAgICAgICAgIDwhLS0gc3VwcG9ydCBoeWJyaWQgbW9kZTogdXNlciBtaWdodCBiZSB1c2luZyBwYXBlci1pbnB1dCAxLnggd2hpY2ggZGlzdHJpYnV0ZXMgdmlhIDxjb250ZW50PiAtLT4KICAgICAgICAgIDxpcm9uLWljb24gaWNvbj0icGFwZXItZHJvcGRvd24tbWVudTphcnJvdy1kcm9wLWRvd24iIHN1ZmZpeCBzbG90PSJzdWZmaXgiPjwvaXJvbi1pY29uPgogICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgIDwvZGl2PgogICAgICA8c2xvdCBpZD0iY29udGVudCIgbmFtZT0iZHJvcGRvd24tY29udGVudCIgc2xvdD0iZHJvcGRvd24tY29udGVudCI+PC9zbG90PgogICAgPC9wYXBlci1tZW51LWJ1dHRvbj4KYCxpczoicGFwZXItZHJvcGRvd24tbWVudSIsYmVoYXZpb3JzOltYbyxxbyxyYSxhYV0scHJvcGVydGllczp7c2VsZWN0ZWRJdGVtTGFiZWw6e3R5cGU6U3RyaW5nLG5vdGlmeTohMCxyZWFkT25seTohMH0sc2VsZWN0ZWRJdGVtOnt0eXBlOk9iamVjdCxub3RpZnk6ITAscmVhZE9ubHk6ITB9LHZhbHVlOnt0eXBlOlN0cmluZyxub3RpZnk6ITB9LGxhYmVsOnt0eXBlOlN0cmluZ30scGxhY2Vob2xkZXI6e3R5cGU6U3RyaW5nfSxlcnJvck1lc3NhZ2U6e3R5cGU6U3RyaW5nfSxvcGVuZWQ6e3R5cGU6Qm9vbGVhbixub3RpZnk6ITAsdmFsdWU6ITEsb2JzZXJ2ZXI6Il9vcGVuZWRDaGFuZ2VkIn0sYWxsb3dPdXRzaWRlU2Nyb2xsOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LG5vTGFiZWxGbG9hdDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sYWx3YXlzRmxvYXRMYWJlbDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxub0FuaW1hdGlvbnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saG9yaXpvbnRhbEFsaWduOnt0eXBlOlN0cmluZyx2YWx1ZToicmlnaHQifSx2ZXJ0aWNhbEFsaWduOnt0eXBlOlN0cmluZyx2YWx1ZToidG9wIn0sdmVydGljYWxPZmZzZXQ6TnVtYmVyLGR5bmFtaWNBbGlnbjp7dHlwZTpCb29sZWFufSxyZXN0b3JlRm9jdXNPbkNsb3NlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITB9LGV4cGFuZFNpemluZ1RhcmdldEZvclNjcm9sbGJhcnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX19LGxpc3RlbmVyczp7dGFwOiJfb25UYXAifSxrZXlCaW5kaW5nczp7InVwIGRvd24iOiJvcGVuIixlc2M6ImNsb3NlIn0sb2JzZXJ2ZXJzOlsiX3NlbGVjdGVkSXRlbUNoYW5nZWQoc2VsZWN0ZWRJdGVtKSJdLF9hdHRhY2hEb20odCl7Y29uc3QgZT1ZKHRoaXMpO3JldHVybiBlLmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiIsZGVsZWdhdGVzRm9jdXM6ITAsc2hhZHlVcGdyYWRlRnJhZ21lbnQ6dH0pLGUuc2hhZG93Um9vdC5hcHBlbmRDaGlsZCh0KSxxYS5wcm90b3R5cGUuX2F0dGFjaERvbS5jYWxsKHRoaXMsdCl9LGZvY3VzKCl7dGhpcy4kLmlucHV0Ll9mb2N1c2FibGVFbGVtZW50LmZvY3VzKCl9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZW50RWxlbWVudDt0JiZ0LnNlbGVjdGVkSXRlbSYmdGhpcy5fc2V0U2VsZWN0ZWRJdGVtKHQuc2VsZWN0ZWRJdGVtKX0sZ2V0IGNvbnRlbnRFbGVtZW50KCl7Zm9yKHZhciB0PVlpKHRoaXMuJC5jb250ZW50KS5nZXREaXN0cmlidXRlZE5vZGVzKCksZT0wLG49dC5sZW5ndGg7ZTxuO2UrKylpZih0W2VdLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuIHRbZV19LG9wZW46ZnVuY3Rpb24oKXt0aGlzLiQubWVudUJ1dHRvbi5vcGVuKCl9LGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy4kLm1lbnVCdXR0b24uY2xvc2UoKX0sX29uSXJvblNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLl9zZXRTZWxlY3RlZEl0ZW0odC5kZXRhaWwuaXRlbSl9LF9vbklyb25EZXNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLl9zZXRTZWxlY3RlZEl0ZW0obnVsbCl9LF9vblRhcDpmdW5jdGlvbih0KXtkaSh0KT09PXRoaXMmJnRoaXMub3BlbigpfSxfc2VsZWN0ZWRJdGVtQ2hhbmdlZDpmdW5jdGlvbih0KXt2YXIgZTtlPXQ/dC5sYWJlbHx8dC5nZXRBdHRyaWJ1dGUoImxhYmVsIil8fHQudGV4dENvbnRlbnQudHJpbSgpOiIiLHRoaXMudmFsdWU9ZSx0aGlzLl9zZXRTZWxlY3RlZEl0ZW1MYWJlbChlKX0sX2NvbXB1dGVNZW51VmVydGljYWxPZmZzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8KHQ/LTQ6OCl9LF9nZXRWYWxpZGl0eTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kaXNhYmxlZHx8IXRoaXMucmVxdWlyZWR8fHRoaXMucmVxdWlyZWQmJiEhdGhpcy52YWx1ZX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRlbnRFbGVtZW50O3QmJnQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIix0aGlzLm9wZW5lZD8idHJ1ZSI6ImZhbHNlIil9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwp2YXIgWWE9e291dGVyU2Nyb2xsOntzY3JvbGw6ITB9LHNoYWRvd01vZGU6e3N0YW5kYXJkOjIsd2F0ZXJmYWxsOjEsIndhdGVyZmFsbC10YWxsIjoxfSx0YWxsTW9kZTp7IndhdGVyZmFsbC10YWxsIjohMH19O1JyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtdmVydGljYWw7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWw7CiAgICAgIH0KCiAgICAgICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAgICB9CgogICAgICAjbWFpblBhbmVsIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtdmVydGljYWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLWJvZHk7CiAgICAgIH0KCiAgICAgICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtY29udGFpbmVyOwogICAgICB9CgogICAgICAvKgogICAgICAgKiBtb2RlOiBzY3JvbGwKICAgICAgICovCiAgICAgIDpob3N0KFttb2RlPXNjcm9sbF0pICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtc2Nyb2xsLWNvbnRhaW5lcjsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgfQoKICAgICAgOmhvc3QoW21vZGU9c2Nyb2xsXSkgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogbW9kZTogY292ZXIKICAgICAgICovCiAgICAgIDpob3N0KFttb2RlPWNvdmVyXSkgI21haW5Db250YWluZXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbC1jb3Zlci1jb250YWluZXI7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW21vZGU9Y292ZXJdKSAjbWFpblBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogc3RhdGljOwogICAgICB9CgogICAgICAvKgogICAgICAgKiBtb2RlOiBzdGFuZGFyZAogICAgICAgKi8KICAgICAgOmhvc3QoW21vZGU9c3RhbmRhcmRdKSAjbWFpbkNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLXN0YW5kYXJkLWNvbnRhaW5lcjsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogbW9kZTogc2VhbWVkCiAgICAgICAqLwogICAgICA6aG9zdChbbW9kZT1zZWFtZWRdKSAjbWFpbkNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLXNlYW1lZC1jb250YWluZXI7CiAgICAgIH0KCgogICAgICAvKgogICAgICAgKiBtb2RlOiB3YXRlcmZhbGwKICAgICAgICovCiAgICAgIDpob3N0KFttb2RlPXdhdGVyZmFsbF0pICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtd2F0ZXJmYWxsLWNvbnRhaW5lcjsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogbW9kZTogd2F0ZXJmYWxsLXRhbGwKICAgICAgICovCiAgICAgIDpob3N0KFttb2RlPXdhdGVyZmFsbC10YWxsXSkgI21haW5Db250YWluZXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbC13YXRlcmZhbGwtdGFsbC1jb250YWluZXI7CiAgICAgIH0KCiAgICAgICNkcm9wU2hhZG93IHsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDVweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLXNoYWRvdzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgI2Ryb3BTaGFkb3cuaGFzLXNoYWRvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgI21haW5Db250YWluZXIgPiA6OnNsb3R0ZWQoLmZpdCkgewogICAgICAgIEBhcHBseSAtLWxheW91dC1maXQ7CiAgICAgIH0KCiAgICA8L3N0eWxlPgoKICAgIDxzbG90IGlkPSJoZWFkZXJTbG90IiBuYW1lPSJoZWFkZXIiPjwvc2xvdD4KCiAgICA8ZGl2IGlkPSJtYWluUGFuZWwiPgogICAgICA8ZGl2IGlkPSJtYWluQ29udGFpbmVyIiBjbGFzc1wkPSJbW19jb21wdXRlTWFpbkNvbnRhaW5lckNsYXNzKG1vZGUpXV0iPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgaWQ9ImRyb3BTaGFkb3ciPjwvZGl2PgogICAgPC9kaXY+CmAsaXM6InBhcGVyLWhlYWRlci1wYW5lbCIscHJvcGVydGllczp7bW9kZTp7dHlwZTpTdHJpbmcsdmFsdWU6InN0YW5kYXJkIixvYnNlcnZlcjoiX21vZGVDaGFuZ2VkIixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LHNoYWRvdzp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSx0YWxsQ2xhc3M6e3R5cGU6U3RyaW5nLHZhbHVlOiJ0YWxsIn0sYXRUb3A6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMCxub3RpZnk6ITAscmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfX0sb2JzZXJ2ZXJzOlsiX2NvbXB1dGVEcm9wU2hhZG93SGlkZGVuKGF0VG9wLCBtb2RlLCBzaGFkb3cpIl0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9hZGRMaXN0ZW5lcigpLHRoaXMuX2tlZXBTY3JvbGxpbmdTdGF0ZSgpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUxpc3RlbmVyKCl9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5zY3JvbGxIYW5kbGVyPXRoaXMuX3Njcm9sbC5iaW5kKHRoaXMpLGNvbnNvbGUud2Fybih0aGlzLmlzLCJpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGFwcC1sYXlvdXQgaW5zdGVhZCEiKX0sZ2V0IGhlYWRlcigpe3JldHVybiBZaSh0aGlzLiQuaGVhZGVyU2xvdCkuZ2V0RGlzdHJpYnV0ZWROb2RlcygpWzBdfSxnZXQgc2Nyb2xsZXIoKXtyZXR1cm4gdGhpcy5fZ2V0U2Nyb2xsZXJGb3JNb2RlKHRoaXMubW9kZSl9LGdldCB2aXNpYmxlU2hhZG93KCl7cmV0dXJuIHRoaXMuJC5kcm9wU2hhZG93LmNsYXNzTGlzdC5jb250YWlucygiaGFzLXNoYWRvdyIpfSxfY29tcHV0ZURyb3BTaGFkb3dIaWRkZW46ZnVuY3Rpb24odCxlLG4pe3ZhciBpPVlhLnNoYWRvd01vZGVbZV07dGhpcy50b2dnbGVDbGFzcygiaGFzLXNoYWRvdyIsISF0aGlzLnNoYWRvd3x8Mj09PWl8fDE9PT1pJiYhdCx0aGlzLiQuZHJvcFNoYWRvdyl9LF9jb21wdXRlTWFpbkNvbnRhaW5lckNsYXNzOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBlLmZsZXg9ImNvdmVyIiE9PXQsT2JqZWN0LmtleXMoZSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKS5qb2luKCIgIil9LF9hZGRMaXN0ZW5lcjpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLnNjcm9sbEhhbmRsZXIpfSxfcmVtb3ZlTGlzdGVuZXI6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5zY3JvbGxIYW5kbGVyKX0sX21vZGVDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dmFyIG49WWEsaT10aGlzLmhlYWRlcjtpJiYobi50YWxsTW9kZVtlXSYmIW4udGFsbE1vZGVbdF0/KGkuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLnRhbGxDbGFzcyksdGhpcy5hc3luYygoZnVuY3Rpb24oKXtpLmNsYXNzTGlzdC5yZW1vdmUoImFuaW1hdGUiKX0pLDIwMCkpOnRoaXMudG9nZ2xlQ2xhc3MoImFuaW1hdGUiLG4udGFsbE1vZGVbdF0saSkpLHRoaXMuX2tlZXBTY3JvbGxpbmdTdGF0ZSgpfSxfa2VlcFNjcm9sbGluZ1N0YXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zY3JvbGxlcixlPXRoaXMuaGVhZGVyO3RoaXMuX3NldEF0VG9wKDA9PT10LnNjcm9sbFRvcCksZSYmdGhpcy50YWxsQ2xhc3MmJllhLnRhbGxNb2RlW3RoaXMubW9kZV0mJnRoaXMudG9nZ2xlQ2xhc3ModGhpcy50YWxsQ2xhc3MsdGhpcy5hdFRvcHx8ZS5jbGFzc0xpc3QuY29udGFpbnModGhpcy50YWxsQ2xhc3MpJiZ0LnNjcm9sbEhlaWdodDx0aGlzLm9mZnNldEhlaWdodCxlKX0sX3Njcm9sbDpmdW5jdGlvbigpe3RoaXMuX2tlZXBTY3JvbGxpbmdTdGF0ZSgpLHRoaXMuZmlyZSgiY29udGVudC1zY3JvbGwiLHt0YXJnZXQ6dGhpcy5zY3JvbGxlcn0se2J1YmJsZXM6ITF9KX0sX2dldFNjcm9sbGVyRm9yTW9kZTpmdW5jdGlvbih0KXtyZXR1cm4gWWEub3V0ZXJTY3JvbGxbdF0/dGhpczp0aGlzLiQubWFpbkNvbnRhaW5lcn19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtpczoicGFwZXItaWNvbi1idXR0b24iLF90ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKCiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwoKICAgICAgICAvKgogICAgICAgICAgTk9URTogQm90aCB2YWx1ZXMgYXJlIG5lZWRlZCwgc2luY2Ugc29tZSBwaG9uZXMgcmVxdWlyZSB0aGUgdmFsdWUgdG8KICAgICAgICAgIGJlIFxgdHJhbnNwYXJlbnRcYC4KICAgICAgICAqLwogICAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsKICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwoKICAgICAgICAvKiBCZWNhdXNlIG9mIHBvbHltZXIvMjU1OCwgdGhpcyBzdHlsZSBoYXMgbG93ZXIgc3BlY2lmaWNpdHkgdGhhbiAqICovCiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50OwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pY29uLWJ1dHRvbjsKICAgICAgfQoKICAgICAgOmhvc3QgI2luayB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWljb24tYnV0dG9uLWluay1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWljb24tYnV0dG9uLWRpc2FibGVkLXRleHQsIHZhcigtLWRpc2FibGVkLXRleHQtY29sb3IpKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBjdXJzb3I6IGF1dG87CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWljb24tYnV0dG9uLWRpc2FibGVkOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgOmhvc3QoOmhvdmVyKSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaWNvbi1idXR0b24taG92ZXI7CiAgICAgIH0KCiAgICAgIGlyb24taWNvbiB7CiAgICAgICAgLS1pcm9uLWljb24td2lkdGg6IDEwMCU7CiAgICAgICAgLS1pcm9uLWljb24taGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxpcm9uLWljb24gaWQ9Imljb24iIHNyYz0iW1tzcmNdXSIgaWNvbj0iW1tpY29uXV0iCiAgICAgICAgICAgICAgIGFsdCQ9IltbYWx0XV0iPjwvaXJvbi1pY29uPgogIGAsaG9zdEF0dHJpYnV0ZXM6e3JvbGU6ImJ1dHRvbiIsdGFiaW5kZXg6IjAifSxiZWhhdmlvcnM6W2NhXSxyZWdpc3RlcmVkOmZ1bmN0aW9uKCl7dGhpcy5fdGVtcGxhdGUuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIil9LHByb3BlcnRpZXM6e3NyYzp7dHlwZTpTdHJpbmd9LGljb246e3R5cGU6U3RyaW5nfSxhbHQ6e3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfYWx0Q2hhbmdlZCJ9fSxfYWx0Q2hhbmdlZDpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIik7biYmZSE9bnx8dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHQpfX0pLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDQwMHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkOwogICAgICAgIHBhZGRpbmc6IDJweDsKICAgICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRhcmVhOwogICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGFyZWE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm1pcnJvci10ZXh0IHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIEBhcHBseSAtLWlyb24tYXV0b2dyb3ctdGV4dGFyZWE7CiAgICAgIH0KCiAgICAgIC5maXQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1maXQ7CiAgICAgIH0KCiAgICAgIHRleHRhcmVhIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgLyogc2VlIGNvbW1lbnRzIGluIHRlbXBsYXRlICovCiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0OwogICAgICAgIEBhcHBseSAtLWlyb24tYXV0b2dyb3ctdGV4dGFyZWE7CiAgICAgIH0KCiAgICAgIHRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsKICAgICAgICBAYXBwbHkgLS1pcm9uLWF1dG9ncm93LXRleHRhcmVhLXBsYWNlaG9sZGVyOwogICAgICB9CgogICAgICB0ZXh0YXJlYTotbW96LXBsYWNlaG9sZGVyIHsKICAgICAgICBAYXBwbHkgLS1pcm9uLWF1dG9ncm93LXRleHRhcmVhLXBsYWNlaG9sZGVyOwogICAgICB9CgogICAgICB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7CiAgICAgICAgQGFwcGx5IC0taXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYS1wbGFjZWhvbGRlcjsKICAgICAgfQoKICAgICAgdGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsKICAgICAgICBAYXBwbHkgLS1pcm9uLWF1dG9ncm93LXRleHRhcmVhLXBsYWNlaG9sZGVyOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDwhLS0gdGhlIG1pcnJvciBzaXplcyB0aGUgaW5wdXQvdGV4dGFyZWEgc28gaXQgZ3Jvd3Mgd2l0aCB0eXBpbmcgLS0+CiAgICA8IS0tIHVzZSAmIzE2MDsgaW5zdGVhZCAmbmJzcDsgb2YgdG8gYWxsb3cgdGhpcyBlbGVtZW50IHRvIGJlIHVzZWQgaW4gWEhUTUwgLS0+CiAgICA8ZGl2IGlkPSJtaXJyb3IiIGNsYXNzPSJtaXJyb3ItdGV4dCIgYXJpYS1oaWRkZW49InRydWUiPiZuYnNwOzwvZGl2PgoKICAgIDwhLS0gc2l6ZSB0aGUgaW5wdXQvdGV4dGFyZWEgd2l0aCBhIGRpdiwgYmVjYXVzZSB0aGUgdGV4dGFyZWEgaGFzIGludHJpbnNpYyBzaXplIGluIGZmIC0tPgogICAgPGRpdiBjbGFzcz0idGV4dGFyZWEtY29udGFpbmVyIGZpdCI+CiAgICAgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWUkPSJbW25hbWVdXSIgYXJpYS1sYWJlbCQ9IltbbGFiZWxdXSIgYXV0b2NvbXBsZXRlJD0iW1thdXRvY29tcGxldGVdXSIgYXV0b2ZvY3VzJD0iW1thdXRvZm9jdXNdXSIgYXV0b2NhcGl0YWxpemUkPSJbW2F1dG9jYXBpdGFsaXplXV0iIGlucHV0bW9kZSQ9IltbaW5wdXRtb2RlXV0iIHBsYWNlaG9sZGVyJD0iW1twbGFjZWhvbGRlcl1dIiByZWFkb25seSQ9IltbcmVhZG9ubHldXSIgcmVxdWlyZWQkPSJbW3JlcXVpcmVkXV0iIGRpc2FibGVkJD0iW1tkaXNhYmxlZF1dIiByb3dzJD0iW1tyb3dzXV0iIG1pbmxlbmd0aCQ9IltbbWlubGVuZ3RoXV0iIG1heGxlbmd0aCQ9IltbbWF4bGVuZ3RoXV0iPjwvdGV4dGFyZWE+CiAgICA8L2Rpdj4KYCxpczoiaXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYSIsYmVoYXZpb3JzOlthYSxxb10scHJvcGVydGllczp7dmFsdWU6e29ic2VydmVyOiJfdmFsdWVDaGFuZ2VkIix0eXBlOlN0cmluZyxub3RpZnk6ITB9LGJpbmRWYWx1ZTp7b2JzZXJ2ZXI6Il9iaW5kVmFsdWVDaGFuZ2VkIix0eXBlOlN0cmluZyxub3RpZnk6ITB9LHJvd3M6e3R5cGU6TnVtYmVyLHZhbHVlOjEsb2JzZXJ2ZXI6Il91cGRhdGVDYWNoZWQifSxtYXhSb3dzOnt0eXBlOk51bWJlcix2YWx1ZTowLG9ic2VydmVyOiJfdXBkYXRlQ2FjaGVkIn0sYXV0b2NvbXBsZXRlOnt0eXBlOlN0cmluZyx2YWx1ZToib2ZmIn0sYXV0b2ZvY3VzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGF1dG9jYXBpdGFsaXplOnt0eXBlOlN0cmluZyx2YWx1ZToibm9uZSJ9LGlucHV0bW9kZTp7dHlwZTpTdHJpbmd9LHBsYWNlaG9sZGVyOnt0eXBlOlN0cmluZ30scmVhZG9ubHk6e3R5cGU6U3RyaW5nfSxyZXF1aXJlZDp7dHlwZTpCb29sZWFufSxtaW5sZW5ndGg6e3R5cGU6TnVtYmVyfSxtYXhsZW5ndGg6e3R5cGU6TnVtYmVyfSxsYWJlbDp7dHlwZTpTdHJpbmd9fSxsaXN0ZW5lcnM6e2lucHV0OiJfb25JbnB1dCJ9LGdldCB0ZXh0YXJlYSgpe3JldHVybiB0aGlzLiQudGV4dGFyZWF9LGdldCBzZWxlY3Rpb25TdGFydCgpe3JldHVybiB0aGlzLiQudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnR9LGdldCBzZWxlY3Rpb25FbmQoKXtyZXR1cm4gdGhpcy4kLnRleHRhcmVhLnNlbGVjdGlvbkVuZH0sc2V0IHNlbGVjdGlvblN0YXJ0KHQpe3RoaXMuJC50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydD10fSxzZXQgc2VsZWN0aW9uRW5kKHQpe3RoaXMuJC50ZXh0YXJlYS5zZWxlY3Rpb25FbmQ9dH0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXtuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9pUCg/OltvYV1kfGhvbmUpLykmJiFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9PUyAxWzM0NTY3ODldLykmJih0aGlzLiQudGV4dGFyZWEuc3R5bGUubWFyZ2luTGVmdD0iLTNweCIpfSx2YWxpZGF0ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJC50ZXh0YXJlYS52YWxpZGl0eS52YWxpZDtyZXR1cm4gdCYmKHRoaXMucmVxdWlyZWQmJiIiPT09dGhpcy52YWx1ZT90PSExOnRoaXMuaGFzVmFsaWRhdG9yKCkmJih0PWFhLnZhbGlkYXRlLmNhbGwodGhpcyx0aGlzLnZhbHVlKSkpLHRoaXMuaW52YWxpZD0hdCx0aGlzLmZpcmUoImlyb24taW5wdXQtdmFsaWRhdGUiKSx0fSxfYmluZFZhbHVlQ2hhbmdlZDpmdW5jdGlvbih0KXt0aGlzLnZhbHVlPXR9LF92YWx1ZUNoYW5nZWQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy50ZXh0YXJlYTtlJiYoZS52YWx1ZSE9PXQmJihlLnZhbHVlPXR8fDA9PT10P3Q6IiIpLHRoaXMuYmluZFZhbHVlPXQsdGhpcy4kLm1pcnJvci5pbm5lckhUTUw9dGhpcy5fdmFsdWVGb3JNaXJyb3IoKSx0aGlzLmZpcmUoImJpbmQtdmFsdWUtY2hhbmdlZCIse3ZhbHVlOnRoaXMuYmluZFZhbHVlfSkpfSxfb25JbnB1dDpmdW5jdGlvbih0KXt2YXIgZT1ZaSh0KS5wYXRoO3RoaXMudmFsdWU9ZT9lWzBdLnZhbHVlOnQudGFyZ2V0LnZhbHVlfSxfY29uc3RyYWluOmZ1bmN0aW9uKHQpe3ZhciBlO2Zvcih0PXR8fFsiIl0sZT10aGlzLm1heFJvd3M+MCYmdC5sZW5ndGg+dGhpcy5tYXhSb3dzP3Quc2xpY2UoMCx0aGlzLm1heFJvd3MpOnQuc2xpY2UoMCk7dGhpcy5yb3dzPjAmJmUubGVuZ3RoPHRoaXMucm93czspZS5wdXNoKCIiKTtyZXR1cm4gZS5qb2luKCI8YnIvPiIpKyImIzE2MDsifSxfdmFsdWVGb3JNaXJyb3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRleHRhcmVhO2lmKHQpcmV0dXJuIHRoaXMudG9rZW5zPXQmJnQudmFsdWU/dC52YWx1ZS5yZXBsYWNlKC8mL2dtLCImYW1wOyIpLnJlcGxhY2UoLyIvZ20sIiZxdW90OyIpLnJlcGxhY2UoLycvZ20sIiYjMzk7IikucmVwbGFjZSgvPC9nbSwiJmx0OyIpLnJlcGxhY2UoLz4vZ20sIiZndDsiKS5zcGxpdCgiXG4iKTpbIiJdLHRoaXMuX2NvbnN0cmFpbih0aGlzLnRva2Vucyl9LF91cGRhdGVDYWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLiQubWlycm9yLmlubmVySFRNTD10aGlzLl9jb25zdHJhaW4odGhpcy50b2tlbnMpfX0pLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgbGFiZWwgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxwYXBlci1pbnB1dC1jb250YWluZXIgbm8tbGFiZWwtZmxvYXQkPSJbW25vTGFiZWxGbG9hdF1dIiBhbHdheXMtZmxvYXQtbGFiZWw9IltbX2NvbXB1dGVBbHdheXNGbG9hdExhYmVsKGFsd2F5c0Zsb2F0TGFiZWwscGxhY2Vob2xkZXIpXV0iIGF1dG8tdmFsaWRhdGUkPSJbW2F1dG9WYWxpZGF0ZV1dIiBkaXNhYmxlZCQ9IltbZGlzYWJsZWRdXSIgaW52YWxpZD0iW1tpbnZhbGlkXV0iPgoKICAgICAgPGxhYmVsIGhpZGRlbiQ9IltbIWxhYmVsXV0iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb3IkPSJbW19pbnB1dElkXV0iIHNsb3Q9ImxhYmVsIj5bW2xhYmVsXV08L2xhYmVsPgoKICAgICAgPGlyb24tYXV0b2dyb3ctdGV4dGFyZWEgY2xhc3M9InBhcGVyLWlucHV0LWlucHV0IiBzbG90PSJpbnB1dCIgaWQkPSJbW19pbnB1dElkXV0iIGFyaWEtbGFiZWxsZWRieSQ9IltbX2FyaWFMYWJlbGxlZEJ5XV0iIGFyaWEtZGVzY3JpYmVkYnkkPSJbW19hcmlhRGVzY3JpYmVkQnldXSIgYmluZC12YWx1ZT0ie3t2YWx1ZX19IiBpbnZhbGlkPSJ7e2ludmFsaWR9fSIgdmFsaWRhdG9yJD0iW1t2YWxpZGF0b3JdXSIgZGlzYWJsZWQkPSJbW2Rpc2FibGVkXV0iIGF1dG9jb21wbGV0ZSQ9IltbYXV0b2NvbXBsZXRlXV0iIGF1dG9mb2N1cyQ9IltbYXV0b2ZvY3VzXV0iIGlucHV0bW9kZSQ9IltbaW5wdXRtb2RlXV0iIG5hbWUkPSJbW25hbWVdXSIgcGxhY2Vob2xkZXIkPSJbW3BsYWNlaG9sZGVyXV0iIHJlYWRvbmx5JD0iW1tyZWFkb25seV1dIiByZXF1aXJlZCQ9IltbcmVxdWlyZWRdXSIgbWlubGVuZ3RoJD0iW1ttaW5sZW5ndGhdXSIgbWF4bGVuZ3RoJD0iW1ttYXhsZW5ndGhdXSIgYXV0b2NhcGl0YWxpemUkPSJbW2F1dG9jYXBpdGFsaXplXV0iIHJvd3MkPSJbW3Jvd3NdXSIgbWF4LXJvd3MkPSJbW21heFJvd3NdXSIgb24tY2hhbmdlPSJfb25DaGFuZ2UiPjwvaXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYT4KCiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tlcnJvck1lc3NhZ2VdXSI+CiAgICAgICAgPHBhcGVyLWlucHV0LWVycm9yIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIiBzbG90PSJhZGQtb24iPltbZXJyb3JNZXNzYWdlXV08L3BhcGVyLWlucHV0LWVycm9yPgogICAgICA8L3RlbXBsYXRlPgoKICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2NoYXJDb3VudGVyXV0iPgogICAgICAgIDxwYXBlci1pbnB1dC1jaGFyLWNvdW50ZXIgc2xvdD0iYWRkLW9uIj48L3BhcGVyLWlucHV0LWNoYXItY291bnRlcj4KICAgICAgPC90ZW1wbGF0ZT4KCiAgICA8L3BhcGVyLWlucHV0LWNvbnRhaW5lcj4KYCxpczoicGFwZXItdGV4dGFyZWEiLGJlaGF2aW9yczpbRmEscmFdLHByb3BlcnRpZXM6e19hcmlhTGFiZWxsZWRCeTp7b2JzZXJ2ZXI6Il9hcmlhTGFiZWxsZWRCeUNoYW5nZWQiLHR5cGU6U3RyaW5nfSxfYXJpYURlc2NyaWJlZEJ5OntvYnNlcnZlcjoiX2FyaWFEZXNjcmliZWRCeUNoYW5nZWQiLHR5cGU6U3RyaW5nfSx2YWx1ZTp7dHlwZTpTdHJpbmd9LHJvd3M6e3R5cGU6TnVtYmVyLHZhbHVlOjF9LG1heFJvd3M6e3R5cGU6TnVtYmVyLHZhbHVlOjB9fSxnZXQgc2VsZWN0aW9uU3RhcnQoKXtyZXR1cm4gdGhpcy4kLmlucHV0LnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0fSxzZXQgc2VsZWN0aW9uU3RhcnQodCl7dGhpcy4kLmlucHV0LnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0PXR9LGdldCBzZWxlY3Rpb25FbmQoKXtyZXR1cm4gdGhpcy4kLmlucHV0LnRleHRhcmVhLnNlbGVjdGlvbkVuZH0sc2V0IHNlbGVjdGlvbkVuZCh0KXt0aGlzLiQuaW5wdXQudGV4dGFyZWEuc2VsZWN0aW9uRW5kPXR9LF9hcmlhTGFiZWxsZWRCeUNoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5fZm9jdXNhYmxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsdCl9LF9hcmlhRGVzY3JpYmVkQnlDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX2ZvY3VzYWJsZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5Iix0KX0sZ2V0IF9mb2N1c2FibGVFbGVtZW50KCl7cmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50LnRleHRhcmVhfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgWGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtYYS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxYYS5pbm5lckhUTUw9Ijxkb20tbW9kdWxlIGlkPVwicGFwZXItaXRlbS1zaGFyZWQtc3R5bGVzXCI+XG4gIDx0ZW1wbGF0ZT5cbiAgICA8c3R5bGU+XG4gICAgICA6aG9zdCwgLnBhcGVyLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1wYXBlci1pdGVtLW1pbi1oZWlnaHQsIDQ4cHgpO1xuICAgICAgICBwYWRkaW5nOiAwcHggMTZweDtcbiAgICAgIH1cblxuICAgICAgLnBhcGVyLWl0ZW0ge1xuICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7XG4gICAgICAgIGJvcmRlcjpub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtoaWRkZW5dKSwgLnBhcGVyLWl0ZW1baGlkZGVuXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoLmlyb24tc2VsZWN0ZWQpLCAucGFwZXItaXRlbS5pcm9uLXNlbGVjdGVkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXBhcGVyLWl0ZW0tc2VsZWN0ZWQtd2VpZ2h0LCBib2xkKTtcblxuICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLXNlbGVjdGVkO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSwgLnBhcGVyLWl0ZW1bZGlzYWJsZWRdIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWl0ZW0tZGlzYWJsZWQtY29sb3IsIHZhcigtLWRpc2FibGVkLXRleHQtY29sb3IpKTtcblxuICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLWRpc2FibGVkO1xuICAgICAgfVxuXG4gICAgICA6aG9zdCg6Zm9jdXMpLCAucGFwZXItaXRlbTpmb2N1cyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3V0bGluZTogMDtcblxuICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLWZvY3VzZWQ7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KDpmb2N1cyk6YmVmb3JlLCAucGFwZXItaXRlbTpmb2N1czpiZWZvcmUge1xuICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0O1xuXG4gICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIG9wYWNpdHk6IHZhcigtLWRhcmstZGl2aWRlci1vcGFjaXR5KTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgQGFwcGx5IC0tcGFwZXItaXRlbS1mb2N1c2VkLWJlZm9yZTtcbiAgICAgIH1cbiAgICA8L3N0eWxlPlxuICA8L3RlbXBsYXRlPlxuPC9kb20tbW9kdWxlPiIsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChYYS5jb250ZW50KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0ICRhPVtYbyxxbyx7aG9zdEF0dHJpYnV0ZXM6e3JvbGU6Im9wdGlvbiIsdGFiaW5kZXg6IjAifX1dOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1pdGVtLXNoYXJlZC1zdHlsZXMiPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWl0ZW07CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLWl0ZW0iLGJlaGF2aW9yczpbJGFdfSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogbmVlZGVkIGZvciB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyB0byB3b3JrIG9uIGZmICovCiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXZlcnRpY2FsOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXItanVzdGlmaWVkOwogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4OwogICAgICB9CgogICAgICA6aG9zdChbdHdvLWxpbmVdKSB7CiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tcGFwZXItaXRlbS1ib2R5LXR3by1saW5lLW1pbi1oZWlnaHQsIDcycHgpOwogICAgICB9CgogICAgICA6aG9zdChbdGhyZWUtbGluZV0pIHsKICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1wYXBlci1pdGVtLWJvZHktdGhyZWUtbGluZS1taW4taGVpZ2h0LCA4OHB4KTsKICAgICAgfQoKICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoKikgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoW3NlY29uZGFyeV0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWJvZHkxOwoKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaXRlbS1ib2R5LXNlY29uZGFyeS1jb2xvciwgdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaXRlbS1ib2R5LXNlY29uZGFyeTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLWl0ZW0tYm9keSJ9KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGUgaW5jbHVkZT0icGFwZXItaXRlbS1zaGFyZWQtc3R5bGVzIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWl0ZW07CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaWNvbi1pdGVtOwogICAgICB9CgogICAgICAuY29udGVudC1pY29uIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaG9yaXpvbnRhbDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwoKICAgICAgICB3aWR0aDogdmFyKC0tcGFwZXItaXRlbS1pY29uLXdpZHRoLCA1NnB4KTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLWljb247CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBpZD0iY29udGVudEljb24iIGNsYXNzPSJjb250ZW50LWljb24iPgogICAgICA8c2xvdCBuYW1lPSJpdGVtLWljb24iPjwvc2xvdD4KICAgIDwvZGl2PgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJwYXBlci1pY29uLWl0ZW0iLGJlaGF2aW9yczpbJGFdfSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBLYT17cHJvcGVydGllczp7bXVsdGk6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoibXVsdGlDaGFuZ2VkIn0sc2VsZWN0ZWRWYWx1ZXM6e3R5cGU6QXJyYXksbm90aWZ5OiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxzZWxlY3RlZEl0ZW1zOnt0eXBlOkFycmF5LHJlYWRPbmx5OiEwLG5vdGlmeTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX19LG9ic2VydmVyczpbIl91cGRhdGVTZWxlY3RlZChzZWxlY3RlZFZhbHVlcy5zcGxpY2VzKSJdLHNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLm11bHRpP3RoaXMuX3RvZ2dsZVNlbGVjdGVkKHQpOnRoaXMuc2VsZWN0ZWQ9dH0sbXVsdGlDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX3NlbGVjdGlvbi5tdWx0aT10LHRoaXMuX3VwZGF0ZVNlbGVjdGVkKCl9LGdldCBfc2hvdWxkVXBkYXRlU2VsZWN0aW9uKCl7cmV0dXJuIG51bGwhPXRoaXMuc2VsZWN0ZWR8fG51bGwhPXRoaXMuc2VsZWN0ZWRWYWx1ZXMmJnRoaXMuc2VsZWN0ZWRWYWx1ZXMubGVuZ3RofSxfdXBkYXRlQXR0ckZvclNlbGVjdGVkOmZ1bmN0aW9uKCl7dGhpcy5tdWx0aT90aGlzLnNlbGVjdGVkSXRlbXMmJnRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGg+MCYmKHRoaXMuc2VsZWN0ZWRWYWx1ZXM9dGhpcy5zZWxlY3RlZEl0ZW1zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2luZGV4VG9WYWx1ZSh0aGlzLmluZGV4T2YodCkpfSksdGhpcykuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH0pLHRoaXMpKTpqby5fdXBkYXRlQXR0ckZvclNlbGVjdGVkLmFwcGx5KHRoaXMpfSxfdXBkYXRlU2VsZWN0ZWQ6ZnVuY3Rpb24oKXt0aGlzLm11bHRpP3RoaXMuX3NlbGVjdE11bHRpKHRoaXMuc2VsZWN0ZWRWYWx1ZXMpOnRoaXMuX3NlbGVjdFNlbGVjdGVkKHRoaXMuc2VsZWN0ZWQpfSxfc2VsZWN0TXVsdGk6ZnVuY3Rpb24odCl7dmFyIGU9KHRoaXMuX3ZhbHVlc1RvSXRlbXModD10fHxbXSl8fFtdKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10fSkpO3RoaXMuX3NlbGVjdGlvbi5jbGVhcihlKTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0aGlzLl9zZWxlY3Rpb24uc2V0SXRlbVNlbGVjdGVkKGVbbl0sITApO3RoaXMuZmFsbGJhY2tTZWxlY3Rpb24mJiF0aGlzLl9zZWxlY3Rpb24uZ2V0KCkubGVuZ3RoJiZ0aGlzLl92YWx1ZVRvSXRlbSh0aGlzLmZhbGxiYWNrU2VsZWN0aW9uKSYmdGhpcy5zZWxlY3QodGhpcy5mYWxsYmFja1NlbGVjdGlvbil9LF9zZWxlY3Rpb25DaGFuZ2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9zZWxlY3Rpb24uZ2V0KCk7dGhpcy5tdWx0aT8odGhpcy5fc2V0U2VsZWN0ZWRJdGVtcyh0KSx0aGlzLl9zZXRTZWxlY3RlZEl0ZW0odC5sZW5ndGg/dFswXTpudWxsKSk6bnVsbCE9dD8odGhpcy5fc2V0U2VsZWN0ZWRJdGVtcyhbdF0pLHRoaXMuX3NldFNlbGVjdGVkSXRlbSh0KSk6KHRoaXMuX3NldFNlbGVjdGVkSXRlbXMoW10pLHRoaXMuX3NldFNlbGVjdGVkSXRlbShudWxsKSl9LF90b2dnbGVTZWxlY3RlZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnNlbGVjdGVkVmFsdWVzLmluZGV4T2YodCk7ZTwwP3RoaXMucHVzaCgic2VsZWN0ZWRWYWx1ZXMiLHQpOnRoaXMuc3BsaWNlKCJzZWxlY3RlZFZhbHVlcyIsZSwxKX0sX3ZhbHVlc1RvSXRlbXM6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/bnVsbDp0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbHVlVG9JdGVtKHQpfSksdGhpcyl9fSxaYT17cHJvcGVydGllczp7Zm9jdXNlZEl0ZW06e29ic2VydmVyOiJfZm9jdXNlZEl0ZW1DaGFuZ2VkIixyZWFkT25seTohMCx0eXBlOk9iamVjdH0sYXR0ckZvckl0ZW1UaXRsZTp7dHlwZTpTdHJpbmd9LGRpc2FibGVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Il9kaXNhYmxlZENoYW5nZWQifX0sX01PRElGSUVSX0tFWVM6WyJBbHQiLCJBbHRHcmFwaCIsIkNhcHNMb2NrIiwiQ29udHJvbCIsIkZuIiwiRm5Mb2NrIiwiSHlwZXIiLCJNZXRhIiwiTnVtTG9jayIsIk9TIiwiU2Nyb2xsTG9jayIsIlNoaWZ0IiwiU3VwZXIiLCJTeW1ib2wiLCJTeW1ib2xMb2NrIl0sX1NFQVJDSF9SRVNFVF9USU1FT1VUX01TOjFlMyxfcHJldmlvdXNUYWJJbmRleDowLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJtZW51In0sb2JzZXJ2ZXJzOlsiX3VwZGF0ZU11bHRpc2VsZWN0YWJsZShtdWx0aSkiXSxsaXN0ZW5lcnM6e2ZvY3VzOiJfb25Gb2N1cyIsa2V5ZG93bjoiX29uS2V5ZG93biIsImlyb24taXRlbXMtY2hhbmdlZCI6Il9vbklyb25JdGVtc0NoYW5nZWQifSxrZXlCaW5kaW5nczp7dXA6Il9vblVwS2V5Iixkb3duOiJfb25Eb3duS2V5Iixlc2M6Il9vbkVzY0tleSIsInNoaWZ0K3RhYjprZXlkb3duIjoiX29uU2hpZnRUYWJEb3duIn0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9yZXNldFRhYmluZGljZXMoKX0sc2VsZWN0OmZ1bmN0aW9uKHQpe3RoaXMuX2RlZmF1bHRGb2N1c0FzeW5jJiYodGhpcy5jYW5jZWxBc3luYyh0aGlzLl9kZWZhdWx0Rm9jdXNBc3luYyksdGhpcy5fZGVmYXVsdEZvY3VzQXN5bmM9bnVsbCk7dmFyIGU9dGhpcy5fdmFsdWVUb0l0ZW0odCk7ZSYmZS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIil8fCh0aGlzLl9zZXRGb2N1c2VkSXRlbShlKSxLYS5zZWxlY3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sX3Jlc2V0VGFiaW5kaWNlczpmdW5jdGlvbigpe3ZhciB0PXRoaXMubXVsdGk/dGhpcy5zZWxlY3RlZEl0ZW1zJiZ0aGlzLnNlbGVjdGVkSXRlbXNbMF06dGhpcy5zZWxlY3RlZEl0ZW07dGhpcy5pdGVtcy5mb3JFYWNoKChmdW5jdGlvbihlKXtlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLGU9PT10PyIwIjoiLTEiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsdGhpcy5fc2VsZWN0aW9uLmlzU2VsZWN0ZWQoZSkpfSksdGhpcyl9LF91cGRhdGVNdWx0aXNlbGVjdGFibGU6ZnVuY3Rpb24odCl7dD90aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1tdWx0aXNlbGVjdGFibGUiLCJ0cnVlIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbXVsdGlzZWxlY3RhYmxlIil9LF9mb2N1c1dpdGhLZXlib2FyZEV2ZW50OmZ1bmN0aW9uKHQpe2lmKC0xPT09dGhpcy5fTU9ESUZJRVJfS0VZUy5pbmRleE9mKHQua2V5KSl7dGhpcy5jYW5jZWxEZWJvdW5jZXIoIl9jbGVhclNlYXJjaFRleHQiKTtmb3IodmFyIGUsbj10aGlzLl9zZWFyY2hUZXh0fHwiIixpPShuKz0odC5rZXkmJjE9PXQua2V5Lmxlbmd0aD90LmtleTpTdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSkpLnRvTG9jYWxlTG93ZXJDYXNlKCkpLmxlbmd0aCxyPTA7ZT10aGlzLml0ZW1zW3JdO3IrKylpZighZS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpe3ZhciBvPXRoaXMuYXR0ckZvckl0ZW1UaXRsZXx8InRleHRDb250ZW50IixhPShlW29dfHxlLmdldEF0dHJpYnV0ZShvKXx8IiIpLnRyaW0oKTtpZighKGEubGVuZ3RoPGkpJiZhLnNsaWNlKDAsaSkudG9Mb2NhbGVMb3dlckNhc2UoKT09bil7dGhpcy5fc2V0Rm9jdXNlZEl0ZW0oZSk7YnJlYWt9fXRoaXMuX3NlYXJjaFRleHQ9bix0aGlzLmRlYm91bmNlKCJfY2xlYXJTZWFyY2hUZXh0Iix0aGlzLl9jbGVhclNlYXJjaFRleHQsdGhpcy5fU0VBUkNIX1JFU0VUX1RJTUVPVVRfTVMpfX0sX2NsZWFyU2VhcmNoVGV4dDpmdW5jdGlvbigpe3RoaXMuX3NlYXJjaFRleHQ9IiJ9LF9mb2N1c1ByZXZpb3VzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuaXRlbXMubGVuZ3RoLGU9TnVtYmVyKHRoaXMuaW5kZXhPZih0aGlzLmZvY3VzZWRJdGVtKSksbj0xO248dCsxO24rKyl7dmFyIGk9dGhpcy5pdGVtc1soZS1uK3QpJXRdO2lmKCFpLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7dmFyIHI9WWkoaSkuZ2V0T3duZXJSb290KCl8fGRvY3VtZW50O2lmKHRoaXMuX3NldEZvY3VzZWRJdGVtKGkpLFlpKHIpLmFjdGl2ZUVsZW1lbnQ9PWkpcmV0dXJufX19LF9mb2N1c05leHQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5pdGVtcy5sZW5ndGgsZT1OdW1iZXIodGhpcy5pbmRleE9mKHRoaXMuZm9jdXNlZEl0ZW0pKSxuPTE7bjx0KzE7bisrKXt2YXIgaT10aGlzLml0ZW1zWyhlK24pJXRdO2lmKCFpLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7dmFyIHI9WWkoaSkuZ2V0T3duZXJSb290KCl8fGRvY3VtZW50O2lmKHRoaXMuX3NldEZvY3VzZWRJdGVtKGkpLFlpKHIpLmFjdGl2ZUVsZW1lbnQ9PWkpcmV0dXJufX19LF9hcHBseVNlbGVjdGlvbjpmdW5jdGlvbih0LGUpe3Quc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixlPyJ0cnVlIjoiZmFsc2UiKSxqby5fYXBwbHlTZWxlY3Rpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpfSxfZm9jdXNlZEl0ZW1DaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7ZSYmZS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSwhdHx8dC5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIil8fHRoaXMuZGlzYWJsZWR8fCh0LnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksdC5mb2N1cygpKX0sX29uSXJvbkl0ZW1zQ2hhbmdlZDpmdW5jdGlvbih0KXt0LmRldGFpbC5hZGRlZE5vZGVzLmxlbmd0aCYmdGhpcy5fcmVzZXRUYWJpbmRpY2VzKCl9LF9vblNoaWZ0VGFiRG93bjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKTtaYS5fc2hpZnRUYWJQcmVzc2VkPSEwLHRoaXMuX3NldEZvY3VzZWRJdGVtKG51bGwpLHRoaXMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLGUpLFphLl9zaGlmdFRhYlByZXNzZWQ9ITF9KSwxKX0sX29uRm9jdXM6ZnVuY3Rpb24odCl7aWYoIVphLl9zaGlmdFRhYlByZXNzZWQpe3ZhciBlPVlpKHQpLnJvb3RUYXJnZXQ7KGU9PT10aGlzfHx2b2lkIDA9PT1lLnRhYkluZGV4fHx0aGlzLmlzTGlnaHREZXNjZW5kYW50KGUpKSYmKHRoaXMuX2RlZmF1bHRGb2N1c0FzeW5jPXRoaXMuYXN5bmMoKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tdWx0aT90aGlzLnNlbGVjdGVkSXRlbXMmJnRoaXMuc2VsZWN0ZWRJdGVtc1swXTp0aGlzLnNlbGVjdGVkSXRlbTt0aGlzLl9zZXRGb2N1c2VkSXRlbShudWxsKSx0P3RoaXMuX3NldEZvY3VzZWRJdGVtKHQpOnRoaXMuaXRlbXNbMF0mJnRoaXMuX2ZvY3VzTmV4dCgpfSkpKX19LF9vblVwS2V5OmZ1bmN0aW9uKHQpe3RoaXMuX2ZvY3VzUHJldmlvdXMoKSx0LmRldGFpbC5rZXlib2FyZEV2ZW50LnByZXZlbnREZWZhdWx0KCl9LF9vbkRvd25LZXk6ZnVuY3Rpb24odCl7dGhpcy5fZm9jdXNOZXh0KCksdC5kZXRhaWwua2V5Ym9hcmRFdmVudC5wcmV2ZW50RGVmYXVsdCgpfSxfb25Fc2NLZXk6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mb2N1c2VkSXRlbTtlJiZlLmJsdXIoKX0sX29uS2V5ZG93bjpmdW5jdGlvbih0KXt0aGlzLmtleWJvYXJkRXZlbnRNYXRjaGVzS2V5cyh0LCJ1cCBkb3duIGVzYyIpfHx0aGlzLl9mb2N1c1dpdGhLZXlib2FyZEV2ZW50KHQpLHQuc3RvcFByb3BhZ2F0aW9uKCl9LF9hY3RpdmF0ZUhhbmRsZXI6ZnVuY3Rpb24odCl7am8uX2FjdGl2YXRlSGFuZGxlci5jYWxsKHRoaXMsdCksdC5zdG9wUHJvcGFnYXRpb24oKX0sX2Rpc2FibGVkQ2hhbmdlZDpmdW5jdGlvbih0KXt0Pyh0aGlzLl9wcmV2aW91c1RhYkluZGV4PXRoaXMuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpP3RoaXMudGFiSW5kZXg6MCx0aGlzLnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKSk6dGhpcy5oYXNBdHRyaWJ1dGUoInRhYmluZGV4Iil8fHRoaXMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsdGhpcy5fcHJldmlvdXNUYWJJbmRleCl9LF9zaGlmdFRhYlByZXNzZWQ6ITF9LEphPVtbam8sS2FdLHpvLFphXTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKCiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXItbGlzdGJveC1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3IpKTsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItbGlzdGJveC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWxpc3Rib3g7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJwYXBlci1saXN0Ym94IixiZWhhdmlvcnM6W0phXSxob3N0QXR0cmlidXRlczp7cm9sZToibGlzdGJveCJ9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBRYT1fZWAKPGRvbS1tb2R1bGUgaWQ9InBhcGVyLW1hdGVyaWFsLXNoYXJlZC1zdHlsZXMiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2VsZXZhdGlvbj0iMSJdKSB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0yZHA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtlbGV2YXRpb249IjIiXSkgewogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tNGRwOwogICAgICB9CgogICAgICA6aG9zdChbZWxldmF0aW9uPSIzIl0pIHsKICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTZkcDsKICAgICAgfQoKICAgICAgOmhvc3QoW2VsZXZhdGlvbj0iNCJdKSB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi04ZHA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtlbGV2YXRpb249IjUiXSkgewogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMTZkcDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+CmA7UWEuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7IiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChRYS5jb250ZW50KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGUgaW5jbHVkZT0icGFwZXItbWF0ZXJpYWwtc2hhcmVkLXN0eWxlcyI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QoW2FuaW1hdGVkXSkgewogICAgICAgIEBhcHBseSAtLXNoYWRvdy10cmFuc2l0aW9uOwogICAgICB9CiAgICAgIDpob3N0IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLW1hdGVyaWFsIixwcm9wZXJ0aWVzOntlbGV2YXRpb246e3R5cGU6TnVtYmVyLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx2YWx1ZToxfSxhbmltYXRlZDp7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx2YWx1ZTohMX19fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCB0cz17cHJvcGVydGllczp7dmFsdWU6e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sbWluOnt0eXBlOk51bWJlcix2YWx1ZTowLG5vdGlmeTohMH0sbWF4Ont0eXBlOk51bWJlcix2YWx1ZToxMDAsbm90aWZ5OiEwfSxzdGVwOnt0eXBlOk51bWJlcix2YWx1ZToxLG5vdGlmeTohMH0scmF0aW86e3R5cGU6TnVtYmVyLHZhbHVlOjAscmVhZE9ubHk6ITAsbm90aWZ5OiEwfX0sb2JzZXJ2ZXJzOlsiX3VwZGF0ZSh2YWx1ZSwgbWluLCBtYXgsIHN0ZXApIl0sX2NhbGNSYXRpbzpmdW5jdGlvbih0KXtyZXR1cm4odGhpcy5fY2xhbXBWYWx1ZSh0KS10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKX0sX2NsYW1wVmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWluKHRoaXMubWF4LE1hdGgubWF4KHRoaXMubWluLHRoaXMuX2NhbGNTdGVwKHQpKSl9LF9jYWxjU3RlcDpmdW5jdGlvbih0KXtpZih0PXBhcnNlRmxvYXQodCksIXRoaXMuc3RlcClyZXR1cm4gdDt2YXIgZT1NYXRoLnJvdW5kKCh0LXRoaXMubWluKS90aGlzLnN0ZXApO3JldHVybiB0aGlzLnN0ZXA8MT9lLygxL3RoaXMuc3RlcCkrdGhpcy5taW46ZSp0aGlzLnN0ZXArdGhpcy5taW59LF92YWxpZGF0ZVZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fY2xhbXBWYWx1ZSh0aGlzLnZhbHVlKTtyZXR1cm4gdGhpcy52YWx1ZT10aGlzLm9sZFZhbHVlPWlzTmFOKHQpP3RoaXMub2xkVmFsdWU6dCx0aGlzLnZhbHVlIT09dH0sX3VwZGF0ZTpmdW5jdGlvbigpe3RoaXMuX3ZhbGlkYXRlVmFsdWUoKSx0aGlzLl9zZXRSYXRpbygxMDAqdGhpcy5fY2FsY1JhdGlvKHRoaXMudmFsdWUpKX19OwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9Scih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDIwMHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSksIFtoaWRkZW5dIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgICNwcm9ncmVzc0NvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItcHJvZ3Jlc3MtY29udGFpbmVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgI3Byb2dyZXNzQ29udGFpbmVyLAogICAgICAvKiB0aGUgc3RyaXBlIGZvciB0aGUgaW5kZXRlcm1pbmF0ZSBhbmltYXRpb24qLwogICAgICAuaW5kZXRlcm1pbmF0ZTo6YWZ0ZXIgewogICAgICAgIGhlaWdodDogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtaGVpZ2h0LCA0cHgpOwogICAgICB9CgogICAgICAjcHJpbWFyeVByb2dyZXNzLAogICAgICAjc2Vjb25kYXJ5UHJvZ3Jlc3MsCiAgICAgIC5pbmRldGVybWluYXRlOjphZnRlciB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZpdDsKICAgICAgfQoKICAgICAgI3Byb2dyZXNzQ29udGFpbmVyLAogICAgICAuaW5kZXRlcm1pbmF0ZTo6YWZ0ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLXByb2dyZXNzLWNvbnRhaW5lci1jb2xvciwgdmFyKC0tZ29vZ2xlLWdyZXktMzAwKSk7CiAgICAgIH0KCiAgICAgIDpob3N0KC50cmFuc2l0aW5nKSAjcHJpbWFyeVByb2dyZXNzLAogICAgICA6aG9zdCgudHJhbnNpdGluZykgI3NlY29uZGFyeVByb2dyZXNzIHsKICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtOwogICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTsKCiAgICAgICAgLyogRHVyYXRpb24gKi8KICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXByb2dyZXNzLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMDhzKTsKICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci1wcm9ncmVzcy10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjA4cyk7CgogICAgICAgIC8qIFRpbWluZyBmdW5jdGlvbiAqLwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXBhcGVyLXByb2dyZXNzLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlKTsKICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UpOwoKICAgICAgICAvKiBEZWxheSAqLwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtdHJhbnNpdGlvbi1kZWxheSwgMHMpOwogICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXBhcGVyLXByb2dyZXNzLXRyYW5zaXRpb24tZGVsYXksIDBzKTsKICAgICAgfQoKICAgICAgI3ByaW1hcnlQcm9ncmVzcywKICAgICAgI3NlY29uZGFyeVByb2dyZXNzIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0OwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwKTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CgogICAgICAjcHJpbWFyeVByb2dyZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci1wcm9ncmVzcy1hY3RpdmUtY29sb3IsIHZhcigtLWdvb2dsZS1ncmVlbi01MDApKTsKICAgICAgfQoKICAgICAgI3NlY29uZGFyeVByb2dyZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci1wcm9ncmVzcy1zZWNvbmRhcnktY29sb3IsIHZhcigtLWdvb2dsZS1ncmVlbi0xMDApKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgI3ByaW1hcnlQcm9ncmVzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtZGlzYWJsZWQtYWN0aXZlLWNvbG9yLCB2YXIoLS1nb29nbGUtZ3JleS01MDApKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgI3NlY29uZGFyeVByb2dyZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci1wcm9ncmVzcy1kaXNhYmxlZC1zZWNvbmRhcnktY29sb3IsIHZhcigtLWdvb2dsZS1ncmV5LTMwMCkpOwogICAgICB9CgogICAgICA6aG9zdCg6bm90KFtkaXNhYmxlZF0pKSAjcHJpbWFyeVByb2dyZXNzLmluZGV0ZXJtaW5hdGUgewogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyOwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZS1iYXIgdmFyKC0tcGFwZXItcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1jeWNsZS1kdXJhdGlvbiwgMnMpIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICBhbmltYXRpb246IGluZGV0ZXJtaW5hdGUtYmFyIHZhcigtLXBhcGVyLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtY3ljbGUtZHVyYXRpb24sIDJzKSBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIDpob3N0KDpub3QoW2Rpc2FibGVkXSkpICNwcmltYXJ5UHJvZ3Jlc3MuaW5kZXRlcm1pbmF0ZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICIiOwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwoKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZS1zcGxpdHRlciB2YXIoLS1wYXBlci1wcm9ncmVzcy1pbmRldGVybWluYXRlLWN5Y2xlLWR1cmF0aW9uLCAycykgbGluZWFyIGluZmluaXRlOwogICAgICAgIGFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZS1zcGxpdHRlciB2YXIoLS1wYXBlci1wcm9ncmVzcy1pbmRldGVybWluYXRlLWN5Y2xlLWR1cmF0aW9uLCAycykgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZS1iYXIgewogICAgICAgIDAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMTAwJSk7CiAgICAgICAgfQogICAgICAgIDUwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDEpIHRyYW5zbGF0ZVgoMCUpOwogICAgICAgIH0KICAgICAgICA3NSUgewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKSB0cmFuc2xhdGVYKDAlKTsKICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4yOCwuNjIsLjM3LC45MSk7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwKSB0cmFuc2xhdGVYKDAlKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBpbmRldGVybWluYXRlLXNwbGl0dGVyIHsKICAgICAgICAwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgtMTI1JSk7CiAgICAgICAgfQogICAgICAgIDMwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgtMTI1JSk7CiAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNDIsMCwuNiwuOCk7CiAgICAgICAgfQogICAgICAgIDkwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgxMjUlKTsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgxMjUlKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZS1iYXIgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpIHRyYW5zbGF0ZVgoLTEwMCUpOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgdHJhbnNsYXRlWCgwJSk7CiAgICAgICAgfQogICAgICAgIDc1JSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKSB0cmFuc2xhdGVYKDAlKTsKICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMjgsLjYyLC4zNywuOTEpOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApIHRyYW5zbGF0ZVgoMCUpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBpbmRldGVybWluYXRlLXNwbGl0dGVyIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCguNzUpIHRyYW5zbGF0ZVgoLTEyNSUpOwogICAgICAgIH0KICAgICAgICAzMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKC0xMjUlKTsKICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNDIsMCwuNiwuOCk7CiAgICAgICAgfQogICAgICAgIDkwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCguNzUpIHRyYW5zbGF0ZVgoMTI1JSk7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKDEyNSUpOwogICAgICAgIH0KICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJwcm9ncmVzc0NvbnRhaW5lciI+CiAgICAgIDxkaXYgaWQ9InNlY29uZGFyeVByb2dyZXNzIiBoaWRkZW5cJD0iW1tfaGlkZVNlY29uZGFyeVByb2dyZXNzKHNlY29uZGFyeVJhdGlvKV1dIj48L2Rpdj4KICAgICAgPGRpdiBpZD0icHJpbWFyeVByb2dyZXNzIj48L2Rpdj4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci1wcm9ncmVzcyIsYmVoYXZpb3JzOlt0c10scHJvcGVydGllczp7c2Vjb25kYXJ5UHJvZ3Jlc3M6e3R5cGU6TnVtYmVyLHZhbHVlOjB9LHNlY29uZGFyeVJhdGlvOnt0eXBlOk51bWJlcix2YWx1ZTowLHJlYWRPbmx5OiEwfSxpbmRldGVybWluYXRlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Il90b2dnbGVJbmRldGVybWluYXRlIn0sZGlzYWJsZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il9kaXNhYmxlZENoYW5nZWQifX0sb2JzZXJ2ZXJzOlsiX3Byb2dyZXNzQ2hhbmdlZChzZWNvbmRhcnlQcm9ncmVzcywgdmFsdWUsIG1pbiwgbWF4LCBpbmRldGVybWluYXRlKSJdLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJwcm9ncmVzc2JhciJ9LF90b2dnbGVJbmRldGVybWluYXRlOmZ1bmN0aW9uKHQpe3RoaXMudG9nZ2xlQ2xhc3MoImluZGV0ZXJtaW5hdGUiLHQsdGhpcy4kLnByaW1hcnlQcm9ncmVzcyl9LF90cmFuc2Zvcm1Qcm9ncmVzczpmdW5jdGlvbih0LGUpe3Quc3R5bGUudHJhbnNmb3JtPXQuc3R5bGUud2Via2l0VHJhbnNmb3JtPSJzY2FsZVgoIitlLzEwMCsiKSJ9LF9tYWluUmF0aW9DaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX3RyYW5zZm9ybVByb2dyZXNzKHRoaXMuJC5wcmltYXJ5UHJvZ3Jlc3MsdCl9LF9wcm9ncmVzc0NoYW5nZWQ6ZnVuY3Rpb24odCxlLG4saSxyKXt0PXRoaXMuX2NsYW1wVmFsdWUodCksZT10aGlzLl9jbGFtcFZhbHVlKGUpO3ZhciBvPTEwMCp0aGlzLl9jYWxjUmF0aW8odCksYT0xMDAqdGhpcy5fY2FsY1JhdGlvKGUpO3RoaXMuX3NldFNlY29uZGFyeVJhdGlvKG8pLHRoaXMuX3RyYW5zZm9ybVByb2dyZXNzKHRoaXMuJC5zZWNvbmRhcnlQcm9ncmVzcyxvKSx0aGlzLl90cmFuc2Zvcm1Qcm9ncmVzcyh0aGlzLiQucHJpbWFyeVByb2dyZXNzLGEpLHRoaXMuc2Vjb25kYXJ5UHJvZ3Jlc3M9dCxyP3RoaXMucmVtb3ZlQXR0cmlidXRlKCJhcmlhLXZhbHVlbm93Iik6dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtdmFsdWVub3ciLGUpLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbWluIixuKSx0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW1heCIsaSl9LF9kaXNhYmxlZENoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLHQ/InRydWUiOiJmYWxzZSIpfSxfaGlkZVNlY29uZGFyeVByb2dyZXNzOmZ1bmN0aW9uKHQpe3JldHVybiAwPT09dH19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgZXM9X2VgCjxzdHlsZT4KICA6aG9zdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBsaW5lLWhlaWdodDogMDsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgLS1jYWxjdWxhdGVkLXBhcGVyLXJhZGlvLWJ1dHRvbi1zaXplOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tc2l6ZSwgMTZweCk7CiAgICAvKiAtMXB4IGlzIGEgc2VudGluZWwgZm9yIHRoZSBkZWZhdWx0IGFuZCBpcyByZXBsYWNlIGluIFxgYXR0YWNoZWRcYC4gKi8KICAgIC0tY2FsY3VsYXRlZC1wYXBlci1yYWRpby1idXR0b24taW5rLXNpemU6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi1pbmstc2l6ZSwgLTFweCk7CiAgfQoKICA6aG9zdCg6Zm9jdXMpIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgfQoKICAjcmFkaW9Db250YWluZXIgewogICAgQGFwcGx5IC0tbGF5b3V0LWlubGluZTsKICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXItY2VudGVyOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLXNpemUpOwogICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXJhZGlvLWJ1dHRvbi1zaXplKTsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CgogICAgQGFwcGx5IC0tcGFwZXItcmFkaW8tYnV0dG9uLXJhZGlvLWNvbnRhaW5lcjsKICB9CgogICNpbmsgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiA1MCU7CiAgICBsZWZ0OiA1MCU7CiAgICByaWdodDogYXV0bzsKICAgIHdpZHRoOiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXJhZGlvLWJ1dHRvbi1pbmstc2l6ZSk7CiAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLWluay1zaXplKTsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tdW5jaGVja2VkLWluay1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICBvcGFjaXR5OiAwLjY7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICB9CgogICNpbmtbY2hlY2tlZF0gewogICAgY29sb3I6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi1jaGVja2VkLWluay1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwogIH0KCiAgI29mZlJhZGlvLCAjb25SYWRpbyB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgdG9wOiAwOwogICAgbGVmdDogMDsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogIH0KCiAgI29mZlJhZGlvIHsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi11bmNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLXVuY2hlY2tlZC1iYWNrZ3JvdW5kLWNvbG9yLCB0cmFuc3BhcmVudCk7CiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yOHM7CiAgfQoKICAjb25SYWRpbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApOwogICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIGVhc2UgMC4yOHM7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gZWFzZSAwLjI4czsKICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgfQoKICA6aG9zdChbY2hlY2tlZF0pICNvZmZSYWRpbyB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi1jaGVja2VkLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgfQoKICA6aG9zdChbY2hlY2tlZF0pICNvblJhZGlvIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpOwogIH0KCiAgI3JhZGlvTGFiZWwgewogICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICBtYXJnaW4tbGVmdDogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLWxhYmVsLXNwYWNpbmcsIDEwcHgpOwogICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tbGFiZWwtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwoKICAgIEBhcHBseSAtLXBhcGVyLXJhZGlvLWJ1dHRvbi1sYWJlbDsKICB9CgogIDpob3N0KFtjaGVja2VkXSkgI3JhZGlvTGFiZWwgewogICAgQGFwcGx5IC0tcGFwZXItcmFkaW8tYnV0dG9uLWxhYmVsLWNoZWNrZWQ7CiAgfQoKICAjcmFkaW9MYWJlbDpkaXIocnRsKSB7CiAgICBtYXJnaW4tbGVmdDogMDsKICAgIG1hcmdpbi1yaWdodDogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLWxhYmVsLXNwYWNpbmcsIDEwcHgpOwogIH0KCiAgI3JhZGlvTGFiZWxbaGlkZGVuXSB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KCiAgLyogZGlzYWJsZWQgc3RhdGUgKi8KCiAgOmhvc3QoW2Rpc2FibGVkXSkgI29mZlJhZGlvIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLXVuY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICBvcGFjaXR5OiAwLjU7CiAgfQoKICA6aG9zdChbZGlzYWJsZWRdW2NoZWNrZWRdKSAjb25SYWRpbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tdW5jaGVja2VkLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgIG9wYWNpdHk6IDAuNTsKICB9CgogIDpob3N0KFtkaXNhYmxlZF0pICNyYWRpb0xhYmVsIHsKICAgIC8qIHNsaWdodGx5IGRhcmtlciB0aGFuIHRoZSBidXR0b24sIHNvIHRoYXQgaXQncyByZWFkYWJsZSAqLwogICAgb3BhY2l0eTogMC42NTsKICB9Cjwvc3R5bGU+Cgo8ZGl2IGlkPSJyYWRpb0NvbnRhaW5lciI+CiAgPGRpdiBpZD0ib2ZmUmFkaW8iPjwvZGl2PgogIDxkaXYgaWQ9Im9uUmFkaW8iPjwvZGl2Pgo8L2Rpdj4KCjxkaXYgaWQ9InJhZGlvTGFiZWwiPjxzbG90Pjwvc2xvdD48L2Rpdj5gO2VzLnNldEF0dHJpYnV0ZSgic3RyaXAtd2hpdGVzcGFjZSIsIiIpLFJyKHtfdGVtcGxhdGU6ZXMsaXM6InBhcGVyLXJhZGlvLWJ1dHRvbiIsYmVoYXZpb3JzOlt1YV0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InJhZGlvIiwiYXJpYS1jaGVja2VkIjohMSx0YWJpbmRleDowfSxwcm9wZXJ0aWVzOnthcmlhQWN0aXZlQXR0cmlidXRlOnt0eXBlOlN0cmluZyx2YWx1ZToiYXJpYS1jaGVja2VkIn19LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5fcmlwcGxlQ29udGFpbmVyPXRoaXMuJC5yYWRpb0NvbnRhaW5lcn0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXtMaSh0aGlzLChmdW5jdGlvbigpe2lmKCItMXB4Ij09PXRoaXMuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLWluay1zaXplIikudHJpbSgpKXt2YXIgdD1wYXJzZUZsb2F0KHRoaXMuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLXNpemUiKS50cmltKCkpLGU9TWF0aC5mbG9vcigzKnQpO2UlMiE9dCUyJiZlKyssdGhpcy51cGRhdGVTdHlsZXMoeyItLXBhcGVyLXJhZGlvLWJ1dHRvbi1pbmstc2l6ZSI6ZSsicHgifSl9fSkpfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgbnM9e2hvc3RBdHRyaWJ1dGVzOntyb2xlOiJtZW51YmFyIn0sa2V5QmluZGluZ3M6e2xlZnQ6Il9vbkxlZnRLZXkiLHJpZ2h0OiJfb25SaWdodEtleSJ9LF9vblVwS2V5OmZ1bmN0aW9uKHQpe3RoaXMuZm9jdXNlZEl0ZW0uY2xpY2soKSx0LmRldGFpbC5rZXlib2FyZEV2ZW50LnByZXZlbnREZWZhdWx0KCl9LF9vbkRvd25LZXk6ZnVuY3Rpb24odCl7dGhpcy5mb2N1c2VkSXRlbS5jbGljaygpLHQuZGV0YWlsLmtleWJvYXJkRXZlbnQucHJldmVudERlZmF1bHQoKX0sZ2V0IF9pc1JUTCgpe3JldHVybiJydGwiPT09d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuZGlyZWN0aW9ufSxfb25MZWZ0S2V5OmZ1bmN0aW9uKHQpe3RoaXMuX2lzUlRMP3RoaXMuX2ZvY3VzTmV4dCgpOnRoaXMuX2ZvY3VzUHJldmlvdXMoKSx0LmRldGFpbC5rZXlib2FyZEV2ZW50LnByZXZlbnREZWZhdWx0KCl9LF9vblJpZ2h0S2V5OmZ1bmN0aW9uKHQpe3RoaXMuX2lzUlRMP3RoaXMuX2ZvY3VzUHJldmlvdXMoKTp0aGlzLl9mb2N1c05leHQoKSx0LmRldGFpbC5rZXlib2FyZEV2ZW50LnByZXZlbnREZWZhdWx0KCl9LF9vbktleWRvd246ZnVuY3Rpb24odCl7dGhpcy5rZXlib2FyZEV2ZW50TWF0Y2hlc0tleXModCwidXAgZG93biBsZWZ0IHJpZ2h0IGVzYyIpfHx0aGlzLl9mb2N1c1dpdGhLZXlib2FyZEV2ZW50KHQpfX0saXM9W0phLG5zXTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIDpob3N0IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgcGFkZGluZzogdmFyKC0tcGFwZXItcmFkaW8tZ3JvdXAtaXRlbS1wYWRkaW5nLCAxMnB4KTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLXJhZGlvLWdyb3VwIixiZWhhdmlvcnM6W2lzXSxob3N0QXR0cmlidXRlczp7cm9sZToicmFkaW9ncm91cCJ9LHByb3BlcnRpZXM6e2F0dHJGb3JTZWxlY3RlZDp7dHlwZTpTdHJpbmcsdmFsdWU6Im5hbWUifSxzZWxlY3RlZEF0dHJpYnV0ZTp7dHlwZTpTdHJpbmcsdmFsdWU6ImNoZWNrZWQifSxzZWxlY3RhYmxlOnt0eXBlOlN0cmluZyx2YWx1ZToicGFwZXItcmFkaW8tYnV0dG9uIn0sYWxsb3dFbXB0eVNlbGVjdGlvbjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sc2VsZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbHVlVG9JdGVtKHQpO2lmKCFlfHwhZS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpe2lmKHRoaXMuc2VsZWN0ZWQpe3ZhciBuPXRoaXMuX3ZhbHVlVG9JdGVtKHRoaXMuc2VsZWN0ZWQpO2lmKHRoaXMuc2VsZWN0ZWQ9PXQpe2lmKCF0aGlzLmFsbG93RW1wdHlTZWxlY3Rpb24pcmV0dXJuIHZvaWQobiYmKG4uY2hlY2tlZD0hMCkpO3Q9IiJ9biYmKG4uY2hlY2tlZD0hMSl9am8uc2VsZWN0LmFwcGx5KHRoaXMsW3RdKSx0aGlzLmZpcmUoInBhcGVyLXJhZGlvLWdyb3VwLWNoYW5nZWQiKX19LF9hY3RpdmF0ZUZvY3VzZWRJdGVtOmZ1bmN0aW9uKCl7dGhpcy5faXRlbUFjdGl2YXRlKHRoaXMuX3ZhbHVlRm9ySXRlbSh0aGlzLmZvY3VzZWRJdGVtKSx0aGlzLmZvY3VzZWRJdGVtKX0sX29uVXBLZXk6ZnVuY3Rpb24odCl7dGhpcy5fZm9jdXNQcmV2aW91cygpLHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9hY3RpdmF0ZUZvY3VzZWRJdGVtKCl9LF9vbkRvd25LZXk6ZnVuY3Rpb24odCl7dGhpcy5fZm9jdXNOZXh0KCksdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2FjdGl2YXRlRm9jdXNlZEl0ZW0oKX0sX29uTGVmdEtleTpmdW5jdGlvbih0KXtucy5fb25MZWZ0S2V5LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9hY3RpdmF0ZUZvY3VzZWRJdGVtKCl9LF9vblJpZ2h0S2V5OmZ1bmN0aW9uKHQpe25zLl9vblJpZ2h0S2V5LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9hY3RpdmF0ZUZvY3VzZWRJdGVtKCl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBycz1fZWAKICA8c3R5bGU+CiAgICA6aG9zdCB7CiAgICAgIEBhcHBseSAtLWxheW91dDsKICAgICAgQGFwcGx5IC0tbGF5b3V0LWp1c3RpZmllZDsKICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsKICAgICAgLS1wYXBlci1wcm9ncmVzcy1hY3RpdmUtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1hY3RpdmUtY29sb3IsIHZhcigtLWdvb2dsZS1ibHVlLTcwMCkpOwogICAgICAtLXBhcGVyLXByb2dyZXNzLXNlY29uZGFyeS1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLXNlY29uZGFyeS1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtMzAwKSk7CiAgICAgIC0tcGFwZXItcHJvZ3Jlc3MtZGlzYWJsZWQtYWN0aXZlLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItZGlzYWJsZWQtYWN0aXZlLWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTQwMCkpOwogICAgICAtLXBhcGVyLXByb2dyZXNzLWRpc2FibGVkLXNlY29uZGFyeS1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWRpc2FibGVkLXNlY29uZGFyeS1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgICAgLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQ6IHZhcigtLXBhcGVyLXNsaWRlci1oZWlnaHQsIDJweCk7CiAgICB9CgogICAgLyogZm9jdXMgc2hvd3MgdGhlIHJpcHBsZSAqLwogICAgOmhvc3QoOmZvY3VzKSB7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgLyoqCiAgICAgICogTk9URShrZWFudWxlZSk6IFRob3VnaCA6aG9zdC1jb250ZXh0IGlzIG5vdCB1bml2ZXJzYWxseSBzdXBwb3J0ZWQsIHNvbWUgcGFnZXMKICAgICAgKiBzdGlsbCByZWx5IG9uIHBhcGVyLXNsaWRlciBiZWluZyBmbGlwcGVkIHdoZW4gZGlyPSJydGwiIGlzIHNldCBvbiBib2R5LiBGb3IgZnVsbAogICAgICAqIGNvbXBhdGliaWxpdHksIGRpcj0icnRsIiBtdXN0IGJlIGV4cGxpY2l0bHkgc2V0IG9uIHBhcGVyLXNsaWRlci4KICAgICAgKi8KICAgIDpkaXIocnRsKSAjc2xpZGVyQ29udGFpbmVyIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgtMSk7CiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsKICAgIH0KCiAgICAvKioKICAgICAgKiBOT1RFKGtlYW51bGVlKTogVGhpcyBpcyBzZXBhcmF0ZSBmcm9tIHRoZSBydWxlIGFib3ZlIGJlY2F1c2UgOmhvc3QtY29udGV4dCBtYXkKICAgICAgKiBub3QgYmUgcmVjb2duaXplZC4KICAgICAgKi8KICAgIDpob3N0KFtkaXI9InJ0bCJdKSAjc2xpZGVyQ29udGFpbmVyIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgtMSk7CiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsKICAgIH0KCiAgICAvKioKICAgICAgKiBOT1RFKGtlYW51bGVlKTogTmVlZGVkIHRvIG92ZXJyaWRlIHRoZSA6aG9zdC1jb250ZXh0IHJ1bGUgKHdoZXJlIHN1cHBvcnRlZCkKICAgICAgKiB0byBzdXBwb3J0IExUUiBzbGlkZXJzIGluIFJUTCBwYWdlcy4KICAgICAgKi8KICAgIDpob3N0KFtkaXI9Imx0ciJdKSAjc2xpZGVyQ29udGFpbmVyIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7CiAgICB9CgogICAgI3NsaWRlckNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogY2FsYygzMHB4ICsgdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KSk7CiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDE1cHggKyB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpLzIpOwogICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoMTVweCArIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCkvMik7CiAgICB9CgogICAgI3NsaWRlckNvbnRhaW5lcjpmb2N1cyB7CiAgICAgIG91dGxpbmU6IDA7CiAgICB9CgogICAgI3NsaWRlckNvbnRhaW5lci5lZGl0YWJsZSB7CiAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICB9CgogICAgLmJhci1jb250YWluZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAucmluZyA+IC5iYXItY29udGFpbmVyIHsKICAgICAgbGVmdDogY2FsYyg1cHggKyB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpLzIpOwogICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuMThzIGVhc2U7CiAgICB9CgogICAgLnJpbmcuZXhwYW5kLmRyYWdnaW5nID4gLmJhci1jb250YWluZXIgewogICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgfQoKICAgIC5yaW5nLmV4cGFuZDpub3QoLnBpbikgPiAuYmFyLWNvbnRhaW5lciB7CiAgICAgIGxlZnQ6IGNhbGMoOHB4ICsgdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KS8yKTsKICAgIH0KCiAgICAjc2xpZGVyQmFyIHsKICAgICAgcGFkZGluZzogMTVweCAwOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWJhci1jb2xvciwgdHJhbnNwYXJlbnQpOwogICAgICAtLXBhcGVyLXByb2dyZXNzLWNvbnRhaW5lci1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWNvbnRhaW5lci1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgICAgLS1wYXBlci1wcm9ncmVzcy1oZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCk7CiAgICB9CgogICAgLnNsaWRlci1tYXJrZXJzIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAvKiBzbGlkZXIta25vYiBpcyAzMHB4ICsgdGhlIHNsaWRlci1oZWlnaHQgc28gdGhhdCB0aGUgbWFya2VycyBzaG91bGQgc3RhcnQgYXQgYSBvZmZzZXQgb2YgMTVweCovCiAgICAgIHRvcDogMTVweDsKICAgICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogLTFweDsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIEBhcHBseSAtLWxheW91dC1ob3Jpem9udGFsOwogICAgfQoKICAgIC5zbGlkZXItbWFya2VyIHsKICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXg7CiAgICB9CiAgICAuc2xpZGVyLW1hcmtlcnM6OmFmdGVyLAogICAgLnNsaWRlci1tYXJrZXI6OmFmdGVyIHsKICAgICAgY29udGVudDogIiI7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgICAgd2lkdGg6IDJweDsKICAgICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpOwogICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1tYXJrZXJzLWNvbG9yLCAjMDAwKTsKICAgIH0KCiAgICAuc2xpZGVyLWtub2IgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHRvcDogMDsKICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTE1cHggLSB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpLzIpOwogICAgICB3aWR0aDogY2FsYygzMHB4ICsgdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KSk7CiAgICAgIGhlaWdodDogY2FsYygzMHB4ICsgdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KSk7CiAgICB9CgogICAgLnRyYW5zaXRpbmcgPiAuc2xpZGVyLWtub2IgewogICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuMDhzIGVhc2U7CiAgICB9CgogICAgLnNsaWRlci1rbm9iOmZvY3VzIHsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICAuc2xpZGVyLWtub2IuZHJhZ2dpbmcgewogICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgfQoKICAgIC5zbmFwcyA+IC5zbGlkZXIta25vYi5kcmFnZ2luZyB7CiAgICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuMDhzIGVhc2U7CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA4cyBlYXNlOwogICAgfQoKICAgIC5zbGlkZXIta25vYi1pbm5lciB7CiAgICAgIG1hcmdpbjogMTBweDsKICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwogICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIwcHgpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXIta25vYi1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtNzAwKSk7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXBhcGVyLXNsaWRlci1rbm9iLWNvbG9yLCB2YXIoLS1nb29nbGUtYmx1ZS03MDApKTsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwoKICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwoKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm0sIGJhY2tncm91bmQtY29sb3IsIGJvcmRlcjsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXI7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMThzOwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsKICAgIH0KCiAgICAuZXhwYW5kOm5vdCgucGluKSA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lciB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjUpOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7CiAgICB9CgogICAgLnJpbmcgPiAuc2xpZGVyLWtub2IgPiAuc2xpZGVyLWtub2ItaW5uZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1jb2xvciwgdHJhbnNwYXJlbnQpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1ib3JkZXItY29sb3IsIHZhcigtLXBhcGVyLWdyZXktNDAwKSk7CiAgICB9CgogICAgLnNsaWRlci1rbm9iLWlubmVyOjpiZWZvcmUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItcGluLWNvbG9yLCB2YXIoLS1nb29nbGUtYmx1ZS03MDApKTsKICAgIH0KCiAgICAucGluID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyOjpiZWZvcmUgewogICAgICBjb250ZW50OiAiIjsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgbWFyZ2luLWxlZnQ6IC0xM3B4OwogICAgICB3aWR0aDogMjZweDsKICAgICAgaGVpZ2h0OiAyNnB4OwogICAgICBib3JkZXItcmFkaXVzOiA1MCUgNTAlIDUwJSAwOwoKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDApIHRyYW5zbGF0ZSgwKTsKICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKSB0cmFuc2xhdGUoMCk7CiAgICB9CgogICAgLnNsaWRlci1rbm9iLWlubmVyOjpiZWZvcmUsCiAgICAuc2xpZGVyLWtub2ItaW5uZXI6OmFmdGVyIHsKICAgICAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gLjE4cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIC4xOHMgZWFzZTsKICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xOHMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAuMThzIGVhc2U7CiAgICB9CgogICAgLnBpbi5yaW5nID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyOjpiZWZvcmUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItcGluLXN0YXJ0LWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTQwMCkpOwogICAgfQoKICAgIC5waW4uZXhwYW5kID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyOjpiZWZvcmUgewogICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMSkgdHJhbnNsYXRlKDE3cHgsIC0xN3B4KTsKICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKSB0cmFuc2xhdGUoMTdweCwgLTE3cHgpOwogICAgfQoKICAgIC5waW4gPiAuc2xpZGVyLWtub2IgPiAuc2xpZGVyLWtub2ItaW5uZXI6OmFmdGVyIHsKICAgICAgY29udGVudDogYXR0cih2YWx1ZSk7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiA1MCU7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweDsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMjZweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBjb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWZvbnQtY29sb3IsICNmZmYpOwogICAgICBmb250LXNpemU6IDEwcHg7CgogICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCkgdHJhbnNsYXRlKDApOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDApIHRyYW5zbGF0ZSgwKTsKICAgIH0KCiAgICAucGluLmV4cGFuZCA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lcjo6YWZ0ZXIgewogICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlKDAsIC0xN3B4KTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUoMCwgLTE3cHgpOwogICAgfQoKICAgIC8qIHBhcGVyLWlucHV0ICovCiAgICAuc2xpZGVyLWlucHV0IHsKICAgICAgd2lkdGg6IDUwcHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0OiB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXNsaWRlci1pbnB1dC1jb250YWluZXItaW5wdXQ7CiAgICAgIH07CiAgICAgIEBhcHBseSAtLXBhcGVyLXNsaWRlci1pbnB1dDsKICAgIH0KCiAgICAvKiBkaXNhYmxlZCBzdGF0ZSAqLwogICAgI3NsaWRlckNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC5kaXNhYmxlZCA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1kaXNhYmxlZC1rbm9iLWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTQwMCkpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1wYXBlci1zbGlkZXItZGlzYWJsZWQta25vYi1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMC43NSwgMSk7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAwLjc1LCAxKTsKICAgIH0KCiAgICAuZGlzYWJsZWQucmluZyA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWNvbG9yLCB0cmFuc3BhcmVudCk7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWJvcmRlci1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgIH0KCiAgICBwYXBlci1yaXBwbGUgewogICAgICBjb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWtub2ItY29sb3IsIHZhcigtLWdvb2dsZS1ibHVlLTcwMCkpOwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgaWQ9InNsaWRlckNvbnRhaW5lciIgY2xhc3NcJD0iW1tfZ2V0Q2xhc3NOYW1lcyhkaXNhYmxlZCwgcGluLCBzbmFwcywgaW1tZWRpYXRlVmFsdWUsIG1pbiwgZXhwYW5kLCBkcmFnZ2luZywgdHJhbnNpdGluZywgZWRpdGFibGUpXV0iPgogICAgPGRpdiBjbGFzcz0iYmFyLWNvbnRhaW5lciI+CiAgICAgIDxwYXBlci1wcm9ncmVzcyBkaXNhYmxlZFwkPSJbW2Rpc2FibGVkXV0iIGlkPSJzbGlkZXJCYXIiIGFyaWEtaGlkZGVuPSJ0cnVlIiBtaW49IltbbWluXV0iIG1heD0iW1ttYXhdXSIgc3RlcD0iW1tzdGVwXV0iIHZhbHVlPSJbW2ltbWVkaWF0ZVZhbHVlXV0iIHNlY29uZGFyeS1wcm9ncmVzcz0iW1tzZWNvbmRhcnlQcm9ncmVzc11dIiBvbi1kb3duPSJfYmFyZG93biIgb24tdXA9Il9yZXNldEtub2IiIG9uLXRyYWNrPSJfYmFydHJhY2siIG9uLXRhcD0iX2JhcmNsaWNrIj4KICAgICAgPC9wYXBlci1wcm9ncmVzcz4KICAgIDwvZGl2PgoKICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tzbmFwc11dIj4KICAgICAgPGRpdiBjbGFzcz0ic2xpZGVyLW1hcmtlcnMiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbbWFya2Vyc11dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlci1tYXJrZXIiPjwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90ZW1wbGF0ZT4KCiAgICA8ZGl2IGlkPSJzbGlkZXJLbm9iIiBjbGFzcz0ic2xpZGVyLWtub2IiIG9uLWRvd249Il9rbm9iZG93biIgb24tdXA9Il9yZXNldEtub2IiIG9uLXRyYWNrPSJfb25UcmFjayIgb24tdHJhbnNpdGlvbmVuZD0iX2tub2JUcmFuc2l0aW9uRW5kIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZXIta25vYi1pbm5lciIgdmFsdWVcJD0iW1tpbW1lZGlhdGVWYWx1ZV1dIj48L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbZWRpdGFibGVdXSI+CiAgICA8cGFwZXItaW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJudW1iZXIiIHN0ZXA9Iltbc3RlcF1dIiBtaW49IltbbWluXV0iIG1heD0iW1ttYXhdXSIgY2xhc3M9InNsaWRlci1pbnB1dCIgZGlzYWJsZWRcJD0iW1tkaXNhYmxlZF1dIiB2YWx1ZT0iW1tpbW1lZGlhdGVWYWx1ZV1dIiBvbi1jaGFuZ2U9Il9jaGFuZ2VWYWx1ZSIgb24ta2V5ZG93bj0iX2lucHV0S2V5RG93biIgbm8tbGFiZWwtZmxvYXQ+CiAgICA8L3BhcGVyLWlucHV0PgogIDwvdGVtcGxhdGU+CmA7cnMuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIiksUnIoe190ZW1wbGF0ZTpycyxpczoicGFwZXItc2xpZGVyIixiZWhhdmlvcnM6W3pvLHJhLGNhLHRzXSxwcm9wZXJ0aWVzOnt2YWx1ZTp7dHlwZTpOdW1iZXIsdmFsdWU6MH0sc25hcHM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITB9LHBpbjp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMH0sc2Vjb25kYXJ5UHJvZ3Jlc3M6e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwLG9ic2VydmVyOiJfc2Vjb25kYXJ5UHJvZ3Jlc3NDaGFuZ2VkIn0sZWRpdGFibGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saW1tZWRpYXRlVmFsdWU6e3R5cGU6TnVtYmVyLHZhbHVlOjAscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSxtYXhNYXJrZXJzOnt0eXBlOk51bWJlcix2YWx1ZTowLG5vdGlmeTohMH0sZXhwYW5kOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVhZE9ubHk6ITB9LGlnbm9yZUJhclRvdWNoOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGRyYWdnaW5nOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSx0cmFuc2l0aW5nOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVhZE9ubHk6ITB9LG1hcmtlcnM6e3R5cGU6QXJyYXkscmVhZE9ubHk6ITAsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bXX19fSxvYnNlcnZlcnM6WyJfdXBkYXRlS25vYih2YWx1ZSwgbWluLCBtYXgsIHNuYXBzLCBzdGVwKSIsIl92YWx1ZUNoYW5nZWQodmFsdWUpIiwiX2ltbWVkaWF0ZVZhbHVlQ2hhbmdlZChpbW1lZGlhdGVWYWx1ZSkiLCJfdXBkYXRlTWFya2VycyhtYXhNYXJrZXJzLCBtaW4sIG1heCwgc25hcHMpIl0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InNsaWRlciIsdGFiaW5kZXg6MH0sa2V5QmluZGluZ3M6e2xlZnQ6Il9sZWZ0S2V5IixyaWdodDoiX3JpZ2h0S2V5IiwiZG93biBwYWdlZG93biBob21lIjoiX2RlY3JlbWVudEtleSIsInVwIHBhZ2V1cCBlbmQiOiJfaW5jcmVtZW50S2V5In0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLmlnbm9yZUJhclRvdWNoJiZvaSh0aGlzLiQuc2xpZGVyQmFyLCJhdXRvIil9LGluY3JlbWVudDpmdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5fY2xhbXBWYWx1ZSh0aGlzLnZhbHVlK3RoaXMuc3RlcCl9LGRlY3JlbWVudDpmdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5fY2xhbXBWYWx1ZSh0aGlzLnZhbHVlLXRoaXMuc3RlcCl9LF91cGRhdGVLbm9iOmZ1bmN0aW9uKHQsZSxuLGkscil7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtdmFsdWVtaW4iLGUpLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbWF4IixuKSx0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW5vdyIsdCksdGhpcy5fcG9zaXRpb25Lbm9iKDEwMCp0aGlzLl9jYWxjUmF0aW8odCkpfSxfdmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5maXJlKCJ2YWx1ZS1jaGFuZ2UiLHtjb21wb3NlZDohMH0pfSxfaW1tZWRpYXRlVmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5kcmFnZ2luZz90aGlzLmZpcmUoImltbWVkaWF0ZS12YWx1ZS1jaGFuZ2UiLHtjb21wb3NlZDohMH0pOnRoaXMudmFsdWU9dGhpcy5pbW1lZGlhdGVWYWx1ZX0sX3NlY29uZGFyeVByb2dyZXNzQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuc2Vjb25kYXJ5UHJvZ3Jlc3M9dGhpcy5fY2xhbXBWYWx1ZSh0aGlzLnNlY29uZGFyeVByb2dyZXNzKX0sX2V4cGFuZEtub2I6ZnVuY3Rpb24oKXt0aGlzLl9zZXRFeHBhbmQoITApfSxfcmVzZXRLbm9iOmZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxEZWJvdW5jZXIoImV4cGFuZEtub2IiKSx0aGlzLl9zZXRFeHBhbmQoITEpfSxfcG9zaXRpb25Lbm9iOmZ1bmN0aW9uKHQpe3RoaXMuX3NldEltbWVkaWF0ZVZhbHVlKHRoaXMuX2NhbGNTdGVwKHRoaXMuX2NhbGNLbm9iUG9zaXRpb24odCkpKSx0aGlzLl9zZXRSYXRpbygxMDAqdGhpcy5fY2FsY1JhdGlvKHRoaXMuaW1tZWRpYXRlVmFsdWUpKSx0aGlzLiQuc2xpZGVyS25vYi5zdHlsZS5sZWZ0PXRoaXMucmF0aW8rIiUiLHRoaXMuZHJhZ2dpbmcmJih0aGlzLl9rbm9ic3RhcnR4PXRoaXMucmF0aW8qdGhpcy5fdy8xMDAsdGhpcy50cmFuc2xhdGUzZCgwLDAsMCx0aGlzLiQuc2xpZGVyS25vYikpfSxfY2FsY0tub2JQb3NpdGlvbjpmdW5jdGlvbih0KXtyZXR1cm4odGhpcy5tYXgtdGhpcy5taW4pKnQvMTAwK3RoaXMubWlufSxfb25UcmFjazpmdW5jdGlvbih0KXtzd2l0Y2godC5zdG9wUHJvcGFnYXRpb24oKSx0LmRldGFpbC5zdGF0ZSl7Y2FzZSJzdGFydCI6dGhpcy5fdHJhY2tTdGFydCh0KTticmVhaztjYXNlInRyYWNrIjp0aGlzLl90cmFja1godCk7YnJlYWs7Y2FzZSJlbmQiOnRoaXMuX3RyYWNrRW5kKCl9fSxfdHJhY2tTdGFydDpmdW5jdGlvbih0KXt0aGlzLl9zZXRUcmFuc2l0aW5nKCExKSx0aGlzLl93PXRoaXMuJC5zbGlkZXJCYXIub2Zmc2V0V2lkdGgsdGhpcy5feD10aGlzLnJhdGlvKnRoaXMuX3cvMTAwLHRoaXMuX3N0YXJ0eD10aGlzLl94LHRoaXMuX2tub2JzdGFydHg9dGhpcy5fc3RhcnR4LHRoaXMuX21pbng9LXRoaXMuX3N0YXJ0eCx0aGlzLl9tYXh4PXRoaXMuX3ctdGhpcy5fc3RhcnR4LHRoaXMuJC5zbGlkZXJLbm9iLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksdGhpcy5fc2V0RHJhZ2dpbmcoITApfSxfdHJhY2tYOmZ1bmN0aW9uKHQpe3RoaXMuZHJhZ2dpbmd8fHRoaXMuX3RyYWNrU3RhcnQodCk7dmFyIGU9TWF0aC5taW4odGhpcy5fbWF4eCxNYXRoLm1heCh0aGlzLl9taW54LHQuZGV0YWlsLmR4Kih0aGlzLl9pc1JUTD8tMToxKSkpO3RoaXMuX3g9dGhpcy5fc3RhcnR4K2U7dmFyIG49dGhpcy5fY2FsY1N0ZXAodGhpcy5fY2FsY0tub2JQb3NpdGlvbih0aGlzLl94L3RoaXMuX3cqMTAwKSk7dGhpcy5fc2V0SW1tZWRpYXRlVmFsdWUobik7dmFyIGk9dGhpcy5fY2FsY1JhdGlvKHRoaXMuaW1tZWRpYXRlVmFsdWUpKnRoaXMuX3ctdGhpcy5fa25vYnN0YXJ0eDt0aGlzLnRyYW5zbGF0ZTNkKGkrInB4IiwwLDAsdGhpcy4kLnNsaWRlcktub2IpfSxfdHJhY2tFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiQuc2xpZGVyS25vYi5zdHlsZTt0aGlzLiQuc2xpZGVyS25vYi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuX3NldERyYWdnaW5nKCExKSx0aGlzLl9yZXNldEtub2IoKSx0aGlzLnZhbHVlPXRoaXMuaW1tZWRpYXRlVmFsdWUsdC50cmFuc2Zvcm09dC53ZWJraXRUcmFuc2Zvcm09IiIsdGhpcy5maXJlKCJjaGFuZ2UiLHtjb21wb3NlZDohMH0pfSxfa25vYmRvd246ZnVuY3Rpb24odCl7dGhpcy5fZXhwYW5kS25vYigpLHQucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzKCl9LF9iYXJ0cmFjazpmdW5jdGlvbih0KXt0aGlzLl9hbGxvd0JhckV2ZW50KHQpJiZ0aGlzLl9vblRyYWNrKHQpfSxfYmFyY2xpY2s6ZnVuY3Rpb24odCl7dGhpcy5fdz10aGlzLiQuc2xpZGVyQmFyLm9mZnNldFdpZHRoO3ZhciBlPXRoaXMuJC5zbGlkZXJCYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj0odC5kZXRhaWwueC1lLmxlZnQpL3RoaXMuX3cqMTAwO3RoaXMuX2lzUlRMJiYobj0xMDAtbik7dmFyIGk9dGhpcy5yYXRpbzt0aGlzLl9zZXRUcmFuc2l0aW5nKCEwKSx0aGlzLl9wb3NpdGlvbktub2IobiksaT09PXRoaXMucmF0aW8mJnRoaXMuX3NldFRyYW5zaXRpbmcoITEpLHRoaXMuYXN5bmMoKGZ1bmN0aW9uKCl7dGhpcy5maXJlKCJjaGFuZ2UiLHtjb21wb3NlZDohMH0pfSkpLHQucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzKCl9LF9iYXJkb3duOmZ1bmN0aW9uKHQpe3RoaXMuX2FsbG93QmFyRXZlbnQodCkmJih0aGlzLmRlYm91bmNlKCJleHBhbmRLbm9iIix0aGlzLl9leHBhbmRLbm9iLDYwKSx0aGlzLl9iYXJjbGljayh0KSl9LF9rbm9iVHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0KXt0LnRhcmdldD09PXRoaXMuJC5zbGlkZXJLbm9iJiZ0aGlzLl9zZXRUcmFuc2l0aW5nKCExKX0sX3VwZGF0ZU1hcmtlcnM6ZnVuY3Rpb24odCxlLG4saSl7aXx8dGhpcy5fc2V0TWFya2VycyhbXSk7dmFyIHI9TWF0aC5yb3VuZCgobi1lKS90aGlzLnN0ZXApO3I+dCYmKHI9dCksKHI8MHx8IWlzRmluaXRlKHIpKSYmKHI9MCksdGhpcy5fc2V0TWFya2VycyhuZXcgQXJyYXkocikpfSxfbWVyZ2VDbGFzc2VzOmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpLmpvaW4oIiAiKX0sX2dldENsYXNzTmFtZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWVyZ2VDbGFzc2VzKHtkaXNhYmxlZDp0aGlzLmRpc2FibGVkLHBpbjp0aGlzLnBpbixzbmFwczp0aGlzLnNuYXBzLHJpbmc6dGhpcy5pbW1lZGlhdGVWYWx1ZTw9dGhpcy5taW4sZXhwYW5kOnRoaXMuZXhwYW5kLGRyYWdnaW5nOnRoaXMuZHJhZ2dpbmcsdHJhbnNpdGluZzp0aGlzLnRyYW5zaXRpbmcsZWRpdGFibGU6dGhpcy5lZGl0YWJsZX0pfSxfYWxsb3dCYXJFdmVudDpmdW5jdGlvbih0KXtyZXR1cm4hdGhpcy5pZ25vcmVCYXJUb3VjaHx8dC5kZXRhaWwuc291cmNlRXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50fSxnZXQgX2lzUlRMKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX19pc1JUTCYmKHRoaXMuX19pc1JUTD0icnRsIj09PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmRpcmVjdGlvbiksdGhpcy5fX2lzUlRMfSxfbGVmdEtleTpmdW5jdGlvbih0KXt0aGlzLl9pc1JUTD90aGlzLl9pbmNyZW1lbnRLZXkodCk6dGhpcy5fZGVjcmVtZW50S2V5KHQpfSxfcmlnaHRLZXk6ZnVuY3Rpb24odCl7dGhpcy5faXNSVEw/dGhpcy5fZGVjcmVtZW50S2V5KHQpOnRoaXMuX2luY3JlbWVudEtleSh0KX0sX2luY3JlbWVudEtleTpmdW5jdGlvbih0KXt0aGlzLmRpc2FibGVkfHwoImVuZCI9PT10LmRldGFpbC5rZXk/dGhpcy52YWx1ZT10aGlzLm1heDp0aGlzLmluY3JlbWVudCgpLHRoaXMuZmlyZSgiY2hhbmdlIiksdC5wcmV2ZW50RGVmYXVsdCgpKX0sX2RlY3JlbWVudEtleTpmdW5jdGlvbih0KXt0aGlzLmRpc2FibGVkfHwoImhvbWUiPT09dC5kZXRhaWwua2V5P3RoaXMudmFsdWU9dGhpcy5taW46dGhpcy5kZWNyZW1lbnQoKSx0aGlzLmZpcmUoImNoYW5nZSIpLHQucHJldmVudERlZmF1bHQoKSl9LF9jaGFuZ2VWYWx1ZTpmdW5jdGlvbih0KXt0aGlzLnZhbHVlPXQudGFyZ2V0LnZhbHVlLHRoaXMuZmlyZSgiY2hhbmdlIix7Y29tcG9zZWQ6ITB9KX0sX2lucHV0S2V5RG93bjpmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfSxfY3JlYXRlUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JpcHBsZUNvbnRhaW5lcj10aGlzLiQuc2xpZGVyS25vYixsYS5fY3JlYXRlUmlwcGxlLmNhbGwodGhpcyl9LF9mb2N1c2VkQ2hhbmdlZDpmdW5jdGlvbih0KXt0JiZ0aGlzLmVuc3VyZVJpcHBsZSgpLHRoaXMuaGFzUmlwcGxlKCkmJih0aGlzLl9yaXBwbGUuc3R5bGUuZGlzcGxheT10PyIiOiJub25lIix0aGlzLl9yaXBwbGUuaG9sZERvd249dCl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBvcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO29zLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLG9zLmlubmVySFRNTD0iPGRvbS1tb2R1bGUgaWQ9XCJwYXBlci1zcGlubmVyLXN0eWxlc1wiPlxuICA8dGVtcGxhdGU+XG4gICAgPHN0eWxlPlxuICAgICAgLypcbiAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgIC8qIFNUWUxFUyBGT1IgVEhFIFNQSU5ORVIgKi9cbiAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgLypcbiAgICAgICAqIENvbnN0YW50czpcbiAgICAgICAqICAgICAgQVJDU0laRSAgICAgPSAyNzAgZGVncmVlcyAoYW1vdW50IG9mIGNpcmNsZSB0aGUgYXJjIHRha2VzIHVwKVxuICAgICAgICogICAgICBBUkNUSU1FICAgICA9IDEzMzNtcyAodGltZSBpdCB0YWtlcyB0byBleHBhbmQgYW5kIGNvbnRyYWN0IGFyYylcbiAgICAgICAqICAgICAgQVJDU1RBUlRST1QgPSAyMTYgZGVncmVlcyAoaG93IG11Y2ggdGhlIHN0YXJ0IGxvY2F0aW9uIG9mIHRoZSBhcmNcbiAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGQgcm90YXRlIGVhY2ggdGltZSwgMjE2IGdpdmVzIHVzIGFcbiAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1IHBvaW50ZWQgc3RhciBzaGFwZSAoaXQncyAzNjAvNSAqIDMpLlxuICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBhIDcgcG9pbnRlZCBzdGFyLCB3ZSBtaWdodCBkb1xuICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2MC83ICogMyA9IDE1NC4yODYpXG4gICAgICAgKiAgICAgIFNIUklOS19USU1FID0gNDAwbXNcbiAgICAgICAqL1xuXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuXG4gICAgICAgIC8qIDM2MCAqIEFSQ1RJTUUgLyAoQVJDU1RBUlRST1QgKyAoMzYwLUFSQ1NJWkUpKSAqL1xuICAgICAgICAtLXBhcGVyLXNwaW5uZXItY29udGFpbmVyLXJvdGF0aW9uLWR1cmF0aW9uOiAxNTY4bXM7XG5cbiAgICAgICAgLyogQVJDVElNRSAqL1xuICAgICAgICAtLXBhcGVyLXNwaW5uZXItZXhwYW5kLWNvbnRyYWN0LWR1cmF0aW9uOiAxMzMzbXM7XG5cbiAgICAgICAgLyogNCAqIEFSQ1RJTUUgKi9cbiAgICAgICAgLS1wYXBlci1zcGlubmVyLWZ1bGwtY3ljbGUtZHVyYXRpb246IDUzMzJtcztcblxuICAgICAgICAvKiBTSFJJTktfVElNRSAqL1xuICAgICAgICAtLXBhcGVyLXNwaW5uZXItY29vbGRvd24tZHVyYXRpb246IDQwMG1zO1xuICAgICAgfVxuXG4gICAgICAjc3Bpbm5lckNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLyogVGhlIHNwaW5uZXIgZG9lcyBub3QgaGF2ZSBhbnkgY29udGVudHMgdGhhdCB3b3VsZCBoYXZlIHRvIGJlXG4gICAgICAgICAqIGZsaXBwZWQgaWYgdGhlIGRpcmVjdGlvbiBjaGFuZ2VzLiBBbHdheXMgdXNlIGx0ciBzbyB0aGF0IHRoZVxuICAgICAgICAgKiBzdHlsZSB3b3JrcyBvdXQgY29ycmVjdGx5IGluIGJvdGggY2FzZXMuICovXG4gICAgICAgIGRpcmVjdGlvbjogbHRyO1xuICAgICAgfVxuXG4gICAgICAjc3Bpbm5lckNvbnRhaW5lci5hY3RpdmUge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogY29udGFpbmVyLXJvdGF0ZSB2YXIoLS1wYXBlci1zcGlubmVyLWNvbnRhaW5lci1yb3RhdGlvbi1kdXJhdGlvbikgbGluZWFyIGluZmluaXRlO1xuICAgICAgICBhbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgdmFyKC0tcGFwZXItc3Bpbm5lci1jb250YWluZXItcm90YXRpb24tZHVyYXRpb24pIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGNvbnRhaW5lci1yb3RhdGUge1xuICAgICAgICB0byB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY29udGFpbmVyLXJvdGF0ZSB7XG4gICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSB9XG4gICAgICB9XG5cbiAgICAgIC5zcGlubmVyLWxheWVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItc3Bpbm5lci1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtNTAwKSk7XG4gICAgICB9XG5cbiAgICAgIC5sYXllci0xIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXNwaW5uZXItbGF5ZXItMS1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtNTAwKSk7XG4gICAgICB9XG5cbiAgICAgIC5sYXllci0yIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXNwaW5uZXItbGF5ZXItMi1jb2xvciwgdmFyKC0tZ29vZ2xlLXJlZC01MDApKTtcbiAgICAgIH1cblxuICAgICAgLmxheWVyLTMge1xuICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItc3Bpbm5lci1sYXllci0zLWNvbG9yLCB2YXIoLS1nb29nbGUteWVsbG93LTUwMCkpO1xuICAgICAgfVxuXG4gICAgICAubGF5ZXItNCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1zcGlubmVyLWxheWVyLTQtY29sb3IsIHZhcigtLWdvb2dsZS1ncmVlbi01MDApKTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJTVBPUlRBTlQgTk9URSBBQk9VVCBDU1MgQU5JTUFUSU9OIFBST1BFUlRJRVMgKGtlYW51bGVlKTpcbiAgICAgICAqXG4gICAgICAgKiBpT1MgU2FmYXJpICh0ZXN0ZWQgb24gaU9TIDguMSkgZG9lcyBub3QgaGFuZGxlIGFuaW1hdGlvbi1kZWxheSB2ZXJ5IHdlbGwgLSBpdCBkb2Vzbid0XG4gICAgICAgKiBndWFyYW50ZWUgdGhhdCB0aGUgYW5pbWF0aW9uIHdpbGwgc3RhcnQgX2V4YWN0bHlfIGFmdGVyIHRoYXQgdmFsdWUuIFNvIHdlIGF2b2lkIHVzaW5nXG4gICAgICAgKiBhbmltYXRpb24tZGVsYXkgYW5kIGluc3RlYWQgc2V0IGN1c3RvbSBrZXlmcmFtZXMgZm9yIGVhY2ggY29sb3IgKGFzIGxheWVyLTJ1bmRhbnQgYXMgaXRcbiAgICAgICAqIHNlZW1zKS5cbiAgICAgICAqL1xuICAgICAgLmFjdGl2ZSAuc3Bpbm5lci1sYXllciB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXNwaW5uZXItZnVsbC1jeWNsZS1kdXJhdGlvbik7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXNwaW5uZXItZnVsbC1jeWNsZS1kdXJhdGlvbik7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKTtcbiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC5hY3RpdmUgLnNwaW5uZXItbGF5ZXIubGF5ZXItMSB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItMS1mYWRlLWluLW91dDtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItMS1mYWRlLWluLW91dDtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5sYXllci0yIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlLCBsYXllci0yLWZhZGUtaW4tb3V0O1xuICAgICAgICBhbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlLCBsYXllci0yLWZhZGUtaW4tb3V0O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZlIC5zcGlubmVyLWxheWVyLmxheWVyLTMge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGUsIGxheWVyLTMtZmFkZS1pbi1vdXQ7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGUsIGxheWVyLTMtZmFkZS1pbi1vdXQ7XG4gICAgICB9XG5cbiAgICAgIC5hY3RpdmUgLnNwaW5uZXItbGF5ZXIubGF5ZXItNCB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItNC1mYWRlLWluLW91dDtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItNC1mYWRlLWluLW91dDtcbiAgICAgIH1cblxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGZpbGwtdW5maWxsLXJvdGF0ZSB7XG4gICAgICAgIDEyLjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIH0gLyogMC41ICogQVJDU0laRSAqL1xuICAgICAgICAyNSUgICB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSB9IC8qIDEgICAqIEFSQ1NJWkUgKi9cbiAgICAgICAgMzcuNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQwNWRlZykgfSAvKiAxLjUgKiBBUkNTSVpFICovXG4gICAgICAgIDUwJSAgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpIH0gLyogMiAgICogQVJDU0laRSAqL1xuICAgICAgICA2Mi41JSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNjc1ZGVnKSB9IC8qIDIuNSAqIEFSQ1NJWkUgKi9cbiAgICAgICAgNzUlICAgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDgxMGRlZykgfSAvKiAzICAgKiBBUkNTSVpFICovXG4gICAgICAgIDg3LjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5NDVkZWcpIH0gLyogMy41ICogQVJDU0laRSAqL1xuICAgICAgICB0byAgICB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTA4MGRlZykgfSAvKiA0ICAgKiBBUkNTSVpFICovXG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgZmlsbC11bmZpbGwtcm90YXRlIHtcbiAgICAgICAgMTIuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIH0gLyogMC41ICogQVJDU0laRSAqL1xuICAgICAgICAyNSUgICB7IHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgfSAvKiAxICAgKiBBUkNTSVpFICovXG4gICAgICAgIDM3LjUlIHsgdHJhbnNmb3JtOiByb3RhdGUoNDA1ZGVnKSB9IC8qIDEuNSAqIEFSQ1NJWkUgKi9cbiAgICAgICAgNTAlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpIH0gLyogMiAgICogQVJDU0laRSAqL1xuICAgICAgICA2Mi41JSB7IHRyYW5zZm9ybTogcm90YXRlKDY3NWRlZykgfSAvKiAyLjUgKiBBUkNTSVpFICovXG4gICAgICAgIDc1JSAgIHsgdHJhbnNmb3JtOiByb3RhdGUoODEwZGVnKSB9IC8qIDMgICAqIEFSQ1NJWkUgKi9cbiAgICAgICAgODcuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5NDVkZWcpIH0gLyogMy41ICogQVJDU0laRSAqL1xuICAgICAgICB0byAgICB7IHRyYW5zZm9ybTogcm90YXRlKDEwODBkZWcpIH0gLyogNCAgICogQVJDU0laRSAqL1xuICAgICAgfVxuXG4gICAgICBALXdlYmtpdC1rZXlmcmFtZXMgbGF5ZXItMS1mYWRlLWluLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIDI1JSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICAyNiUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgODklIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDkwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICB0byB7IG9wYWNpdHk6IDEgfVxuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGxheWVyLTEtZmFkZS1pbi1vdXQge1xuICAgICAgICAwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICAyNSUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgMjYlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDg5JSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICA5MCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgdG8geyBvcGFjaXR5OiAxIH1cbiAgICAgIH1cblxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGxheWVyLTItZmFkZS1pbi1vdXQge1xuICAgICAgICAwJSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICAxNSUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgMjUlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIDUwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICA1MSUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBsYXllci0yLWZhZGUtaW4tb3V0IHtcbiAgICAgICAgMCUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgMTUlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDI1JSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICA1MCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgNTElIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMCB9XG4gICAgICB9XG5cbiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBsYXllci0zLWZhZGUtaW4tb3V0IHtcbiAgICAgICAgMCUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgNDAlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDUwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICA3NSUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgNzYlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMCB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgbGF5ZXItMy1mYWRlLWluLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDQwJSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICA1MCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgNzUlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIDc2JSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICB0byB7IG9wYWNpdHk6IDAgfVxuICAgICAgfVxuXG4gICAgICBALXdlYmtpdC1rZXlmcmFtZXMgbGF5ZXItNC1mYWRlLWluLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDY1JSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICA3NSUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgOTAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMCB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgbGF5ZXItNC1mYWRlLWluLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDY1JSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICA3NSUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgOTAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMCB9XG4gICAgICB9XG5cbiAgICAgIC5jaXJjbGUtY2xpcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogUGF0Y2ggdGhlIGdhcCB0aGF0IGFwcGVhciBiZXR3ZWVuIHRoZSB0d28gYWRqYWNlbnQgZGl2LmNpcmNsZS1jbGlwcGVyIHdoaWxlIHRoZVxuICAgICAgICogc3Bpbm5lciBpcyByb3RhdGluZyAoYXBwZWFycyBvbiBDaHJvbWUgNTAsIFNhZmFyaSA5LjEuMSwgYW5kIEVkZ2UpLlxuICAgICAgICovXG4gICAgICAuc3Bpbm5lci1sYXllcjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgbGVmdDogNDUlO1xuICAgICAgICB3aWR0aDogMTAlO1xuICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICAgIH1cblxuICAgICAgLnNwaW5uZXItbGF5ZXI6OmFmdGVyLFxuICAgICAgLmNpcmNsZS1jbGlwcGVyIC5jaXJjbGUge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wYXBlci1zcGlubmVyLXN0cm9rZS13aWR0aCwgM3B4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuXG4gICAgICAuY2lyY2xlLWNsaXBwZXIgLmNpcmNsZSB7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDIwMCU7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaXJjbGUtY2xpcHBlci5sZWZ0IC5jaXJjbGUge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTI5ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTI5ZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNpcmNsZS1jbGlwcGVyLnJpZ2h0IC5jaXJjbGUge1xuICAgICAgICBsZWZ0OiAtMTAwJTtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEyOWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMjlkZWcpO1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZlIC5nYXAtcGF0Y2g6OmFmdGVyLFxuICAgICAgLmFjdGl2ZSAuY2lyY2xlLWNsaXBwZXIgLmNpcmNsZSB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci1zcGlubmVyLWV4cGFuZC1jb250cmFjdC1kdXJhdGlvbik7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXNwaW5uZXItZXhwYW5kLWNvbnRyYWN0LWR1cmF0aW9uKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpO1xuICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2ZSAuY2lyY2xlLWNsaXBwZXIubGVmdCAuY2lyY2xlIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGVmdC1zcGluO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogbGVmdC1zcGluO1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZlIC5jaXJjbGUtY2xpcHBlci5yaWdodCAuY2lyY2xlIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcmlnaHQtc3BpbjtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHJpZ2h0LXNwaW47XG4gICAgICB9XG5cbiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBsZWZ0LXNwaW4ge1xuICAgICAgICAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKSB9XG4gICAgICAgIDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpIH1cbiAgICAgICAgdG8geyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzMGRlZykgfVxuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGxlZnQtc3BpbiB7XG4gICAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKSB9XG4gICAgICAgIDUwJSB7IHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKSB9XG4gICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKSB9XG4gICAgICB9XG5cbiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyByaWdodC1zcGluIHtcbiAgICAgICAgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpIH1cbiAgICAgICAgNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKSB9XG4gICAgICAgIHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKSB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgcmlnaHQtc3BpbiB7XG4gICAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZykgfVxuICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKSB9XG4gICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZykgfVxuICAgICAgfVxuXG4gICAgICAjc3Bpbm5lckNvbnRhaW5lci5jb29sZG93biB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIHZhcigtLXBhcGVyLXNwaW5uZXItY29udGFpbmVyLXJvdGF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGUsIGZhZGUtb3V0IHZhcigtLXBhcGVyLXNwaW5uZXItY29vbGRvd24tZHVyYXRpb24pIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKTtcbiAgICAgICAgYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIHZhcigtLXBhcGVyLXNwaW5uZXItY29udGFpbmVyLXJvdGF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGUsIGZhZGUtb3V0IHZhcigtLXBhcGVyLXNwaW5uZXItY29vbGRvd24tZHVyYXRpb24pIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKTtcbiAgICAgIH1cblxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUtb3V0IHtcbiAgICAgICAgMCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBmYWRlLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMCB9XG4gICAgICB9XG4gICAgPC9zdHlsZT5cbiAgPC90ZW1wbGF0ZT5cbjwvZG9tLW1vZHVsZT4iLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQob3MuY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBhcz17cHJvcGVydGllczp7YWN0aXZlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVmbGVjdFRvQXR0cmlidXRlOiEwLG9ic2VydmVyOiJfX2FjdGl2ZUNoYW5nZWQifSxhbHQ6e3R5cGU6U3RyaW5nLHZhbHVlOiJsb2FkaW5nIixvYnNlcnZlcjoiX19hbHRDaGFuZ2VkIn0sX19jb29saW5nRG93bjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sX19jb21wdXRlQ29udGFpbmVyQ2xhc3NlczpmdW5jdGlvbih0LGUpe3JldHVyblt0fHxlPyJhY3RpdmUiOiIiLGU/ImNvb2xkb3duIjoiIl0uam9pbigiICIpfSxfX2FjdGl2ZUNoYW5nZWQ6ZnVuY3Rpb24odCxlKXt0aGlzLl9fc2V0QXJpYUhpZGRlbighdCksdGhpcy5fX2Nvb2xpbmdEb3duPSF0JiZlfSxfX2FsdENoYW5nZWQ6ZnVuY3Rpb24odCl7ImxvYWRpbmciPT09dD90aGlzLmFsdD10aGlzLmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpfHx0Oih0aGlzLl9fc2V0QXJpYUhpZGRlbigiIj09PXQpLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0KSl9LF9fc2V0QXJpYUhpZGRlbjpmdW5jdGlvbih0KXt2YXIgZT0iYXJpYS1oaWRkZW4iO3Q/dGhpcy5zZXRBdHRyaWJ1dGUoZSwidHJ1ZSIpOnRoaXMucmVtb3ZlQXR0cmlidXRlKGUpfSxfX3Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5hY3RpdmU9ITEsdGhpcy5fX2Nvb2xpbmdEb3duPSExfX0sc3M9X2VgCiAgPHN0eWxlIGluY2x1ZGU9InBhcGVyLXNwaW5uZXItc3R5bGVzIj48L3N0eWxlPgoKICA8ZGl2IGlkPSJzcGlubmVyQ29udGFpbmVyIiBjbGFzcy1uYW1lPSJbW19fY29tcHV0ZUNvbnRhaW5lckNsYXNzZXMoYWN0aXZlLCBfX2Nvb2xpbmdEb3duKV1dIiBvbi1hbmltYXRpb25lbmQ9Il9fcmVzZXQiIG9uLXdlYmtpdC1hbmltYXRpb24tZW5kPSJfX3Jlc2V0Ij4KICAgIDxkaXYgY2xhc3M9InNwaW5uZXItbGF5ZXIiPgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciBsZWZ0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgcmlnaHQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmA7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL3NzLnNldEF0dHJpYnV0ZSgic3RyaXAtd2hpdGVzcGFjZSIsIiIpLFJyKHtfdGVtcGxhdGU6c3MsaXM6InBhcGVyLXNwaW5uZXItbGl0ZSIsYmVoYXZpb3JzOlthc119KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IGxzPV9lYAogIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1zcGlubmVyLXN0eWxlcyI+PC9zdHlsZT4KCiAgPGRpdiBpZD0ic3Bpbm5lckNvbnRhaW5lciIgY2xhc3MtbmFtZT0iW1tfX2NvbXB1dGVDb250YWluZXJDbGFzc2VzKGFjdGl2ZSwgX19jb29saW5nRG93bildXSIgb24tYW5pbWF0aW9uZW5kPSJfX3Jlc2V0IiBvbi13ZWJraXQtYW5pbWF0aW9uLWVuZD0iX19yZXNldCI+CiAgICA8ZGl2IGNsYXNzPSJzcGlubmVyLWxheWVyIGxheWVyLTEiPgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciBsZWZ0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgcmlnaHQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic3Bpbm5lci1sYXllciBsYXllci0yIj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgbGVmdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1jbGlwcGVyIHJpZ2h0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNwaW5uZXItbGF5ZXIgbGF5ZXItMyI+CiAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1jbGlwcGVyIGxlZnQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciByaWdodCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzcGlubmVyLWxheWVyIGxheWVyLTQiPgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciBsZWZ0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgcmlnaHQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmA7bHMuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIiksUnIoe190ZW1wbGF0ZTpscyxpczoicGFwZXItc3Bpbm5lciIsYmVoYXZpb3JzOlthc119KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgY3M9X2VgPGlyb24taWNvbnNldC1zdmcgbmFtZT0icGFwZXItdGFicyIgc2l6ZT0iMjQiPgo8c3ZnPjxkZWZzPgo8ZyBpZD0iY2hldnJvbi1sZWZ0Ij48cGF0aCBkPSJNMTUuNDEgNy40MUwxNCA2bC02IDYgNiA2IDEuNDEtMS40MUwxMC44MyAxMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjaGV2cm9uLXJpZ2h0Ij48cGF0aCBkPSJNMTAgNkw4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6Ij48L3BhdGg+PC9nPgo8L2RlZnM+PC9zdmc+CjwvaXJvbi1pY29uc2V0LXN2Zz5gO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoY3MuY29udGVudCksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaW5saW5lOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXI7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlci1qdXN0aWZpZWQ7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtYXV0bzsKCiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYjsKICAgICAgfQoKICAgICAgOmhvc3QoOmZvY3VzKSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2xpbmtdKSB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLnRhYi1jb250ZW50IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOwogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGN1YmljLWJlemllcigwLjQsIDAuMCwgMSwgMSk7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlci1jZW50ZXI7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtYXV0bzsKICAgICAgICBAYXBwbHkgLS1wYXBlci10YWItY29udGVudDsKICAgICAgfQoKICAgICAgOmhvc3QoOm5vdCguaXJvbi1zZWxlY3RlZCkpID4gLnRhYi1jb250ZW50IHsKICAgICAgICBvcGFjaXR5OiAwLjg7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYi1jb250ZW50LXVuc2VsZWN0ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KDpmb2N1cykgLnRhYi1jb250ZW50IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYi1jb250ZW50LWZvY3VzZWQ7CiAgICAgIH0KCiAgICAgIHBhcGVyLXJpcHBsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRhYi1pbmssIHZhcigtLXBhcGVyLXllbGxvdy1hMTAwKSk7CiAgICAgIH0KCiAgICAgIC50YWItY29udGVudCA+IDo6c2xvdHRlZChhKSB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtYXV0bzsKCiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij4KICAgICAgPHNsb3Q+PC9zbG90PgogICAgPC9kaXY+CmAsaXM6InBhcGVyLXRhYiIsYmVoYXZpb3JzOltxbyxYbyxKb10scHJvcGVydGllczp7bGluazp7dHlwZTpCb29sZWFuLHZhbHVlOiExLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH19LGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJ0YWIifSxsaXN0ZW5lcnM6e2Rvd246Il91cGRhdGVOb2luayIsdGFwOiJfb25UYXAifSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZU5vaW5rKCl9LGdldCBfcGFyZW50Tm9pbmsoKXt2YXIgdD1ZaSh0aGlzKS5wYXJlbnROb2RlO3JldHVybiEhdCYmISF0Lm5vaW5rfSxfdXBkYXRlTm9pbms6ZnVuY3Rpb24oKXt0aGlzLm5vaW5rPSEhdGhpcy5ub2lua3x8ISF0aGlzLl9wYXJlbnROb2lua30sX29uVGFwOmZ1bmN0aW9uKHQpe2lmKHRoaXMubGluayl7dmFyIGU9dGhpcy5xdWVyeUVmZmVjdGl2ZUNoaWxkcmVuKCJhIik7aWYoIWUpcmV0dXJuO2lmKHQudGFyZ2V0PT09ZSlyZXR1cm47ZS5jbGljaygpfX19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIEBhcHBseSAtLWxheW91dDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwoKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwoKICAgICAgICAvKiBOT1RFOiBCb3RoIHZhbHVlcyBhcmUgbmVlZGVkLCBzaW5jZSBzb21lIHBob25lcyByZXF1aXJlIHRoZSB2YWx1ZSB0byBiZSBcYHRyYW5zcGFyZW50XGAuICovCiAgICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOwogICAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYnM7CiAgICAgIH0KCiAgICAgIDpob3N0KDpkaXIocnRsKSkgewogICAgICAgIEBhcHBseSAtLWxheW91dC1ob3Jpem9udGFsLXJldmVyc2U7CiAgICAgIH0KCiAgICAgICN0YWJzQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleC1hdXRvOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYnMtY29udGFpbmVyOwogICAgICB9CgogICAgICAjdGFic0NvbnRlbnQgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAtbW96LWZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgLW1zLWZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgZmxleC1iYXNpczogYXV0bzsKICAgICAgICBAYXBwbHkgLS1wYXBlci10YWJzLWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgICN0YWJzQ29udGVudC5zY3JvbGxhYmxlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgI3RhYnNDb250ZW50Om5vdCguc2Nyb2xsYWJsZSksCiAgICAgICN0YWJzQ29udGVudC5zY3JvbGxhYmxlLmZpdC1jb250YWluZXIgewogICAgICAgIEBhcHBseSAtLWxheW91dC1ob3Jpem9udGFsOwogICAgICB9CgogICAgICAjdGFic0NvbnRlbnQuc2Nyb2xsYWJsZS5maXQtY29udGFpbmVyIHsKICAgICAgICBtaW4td2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICN0YWJzQ29udGVudC5zY3JvbGxhYmxlLmZpdC1jb250YWluZXIgPiA6OnNsb3R0ZWQoKikgewogICAgICAgIC8qIElFIC0gcHJldmVudCB0YWJzIGZyb20gY29tcHJlc3Npbmcgd2hlbiB0aGV5IHNob3VsZCBzY3JvbGwuICovCiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvOwogICAgICAgIC13ZWJraXQtZmxleDogMSAwIGF1dG87CiAgICAgICAgZmxleDogMSAwIGF1dG87CiAgICAgIH0KCiAgICAgIC5oaWRkZW4gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ub3QtdmlzaWJsZSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIHBhcGVyLWljb24tYnV0dG9uIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICAjc2VsZWN0aW9uQmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1wYXBlci10YWJzLXNlbGVjdGlvbi1iYXItY29sb3IsIHZhcigtLXBhcGVyLXllbGxvdy1hMTAwKSk7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm07CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYnMtc2VsZWN0aW9uLWJhcjsKICAgICAgfQoKICAgICAgI3NlbGVjdGlvbkJhci5hbGlnbi1ib3R0b20gewogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IGF1dG87CiAgICAgIH0KCiAgICAgICNzZWxlY3Rpb25CYXIuZXhwYW5kIHsKICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1czsKICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAxLCAxKTsKICAgICAgfQoKICAgICAgI3NlbGVjdGlvbkJhci5jb250cmFjdCB7CiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xOHM7CiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjAsIDAuMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgI3RhYnNDb250ZW50ID4gOjpzbG90dGVkKDpub3QoI3NlbGVjdGlvbkJhcikpIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHBhcGVyLWljb24tYnV0dG9uIGljb249InBhcGVyLXRhYnM6Y2hldnJvbi1sZWZ0IiBjbGFzcyQ9IltbX2NvbXB1dGVTY3JvbGxCdXR0b25DbGFzcyhfbGVmdEhpZGRlbiwgc2Nyb2xsYWJsZSwgaGlkZVNjcm9sbEJ1dHRvbnMpXV0iIG9uLXVwPSJfb25TY3JvbGxCdXR0b25VcCIgb24tZG93bj0iX29uTGVmdFNjcm9sbEJ1dHRvbkRvd24iIHRhYmluZGV4PSItMSI+PC9wYXBlci1pY29uLWJ1dHRvbj4KCiAgICA8ZGl2IGlkPSJ0YWJzQ29udGFpbmVyIiBvbi10cmFjaz0iX3Njcm9sbCIgb24tZG93bj0iX2Rvd24iPgogICAgICA8ZGl2IGlkPSJ0YWJzQ29udGVudCIgY2xhc3MkPSJbW19jb21wdXRlVGFic0NvbnRlbnRDbGFzcyhzY3JvbGxhYmxlLCBmaXRDb250YWluZXIpXV0iPgogICAgICAgIDxkaXYgaWQ9InNlbGVjdGlvbkJhciIgY2xhc3MkPSJbW19jb21wdXRlU2VsZWN0aW9uQmFyQ2xhc3Mobm9CYXIsIGFsaWduQm90dG9tKV1dIiBvbi10cmFuc2l0aW9uZW5kPSJfb25CYXJUcmFuc2l0aW9uRW5kIj48L2Rpdj4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPHBhcGVyLWljb24tYnV0dG9uIGljb249InBhcGVyLXRhYnM6Y2hldnJvbi1yaWdodCIgY2xhc3MkPSJbW19jb21wdXRlU2Nyb2xsQnV0dG9uQ2xhc3MoX3JpZ2h0SGlkZGVuLCBzY3JvbGxhYmxlLCBoaWRlU2Nyb2xsQnV0dG9ucyldXSIgb24tdXA9Il9vblNjcm9sbEJ1dHRvblVwIiBvbi1kb3duPSJfb25SaWdodFNjcm9sbEJ1dHRvbkRvd24iIHRhYmluZGV4PSItMSI+PC9wYXBlci1pY29uLWJ1dHRvbj4KYCxpczoicGFwZXItdGFicyIsYmVoYXZpb3JzOltnbyxpc10scHJvcGVydGllczp7bm9pbms6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX25vaW5rQ2hhbmdlZCJ9LG5vQmFyOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LG5vU2xpZGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2Nyb2xsYWJsZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxmaXRDb250YWluZXI6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sZGlzYWJsZURyYWc6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saGlkZVNjcm9sbEJ1dHRvbnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYWxpZ25Cb3R0b206e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2VsZWN0YWJsZTp7dHlwZTpTdHJpbmcsdmFsdWU6InBhcGVyLXRhYiJ9LGF1dG9zZWxlY3Q6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYXV0b3NlbGVjdERlbGF5Ont0eXBlOk51bWJlcix2YWx1ZTowfSxfc3RlcDp7dHlwZTpOdW1iZXIsdmFsdWU6MTB9LF9ob2xkRGVsYXk6e3R5cGU6TnVtYmVyLHZhbHVlOjF9LF9sZWZ0SGlkZGVuOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9yaWdodEhpZGRlbjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfcHJldmlvdXNUYWI6e3R5cGU6T2JqZWN0fX0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InRhYmxpc3QifSxsaXN0ZW5lcnM6eyJpcm9uLXJlc2l6ZSI6Il9vblRhYlNpemluZ0NoYW5nZWQiLCJpcm9uLWl0ZW1zLWNoYW5nZWQiOiJfb25UYWJTaXppbmdDaGFuZ2VkIiwiaXJvbi1zZWxlY3QiOiJfb25Jcm9uU2VsZWN0IiwiaXJvbi1kZXNlbGVjdCI6Il9vbklyb25EZXNlbGVjdCJ9LGtleUJpbmRpbmdzOnsibGVmdDprZXl1cCByaWdodDprZXl1cCI6Il9vbkFycm93S2V5dXAifSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5faG9sZEpvYj1udWxsLHRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uSXRlbT12b2lkIDAsdGhpcy5fcGVuZGluZ0FjdGl2YXRpb25UaW1lb3V0PXZvaWQgMCx0aGlzLl9iaW5kRGVsYXllZEFjdGl2YXRpb25IYW5kbGVyPXRoaXMuX2RlbGF5ZWRBY3RpdmF0aW9uSGFuZGxlci5iaW5kKHRoaXMpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5fb25CbHVyQ2FwdHVyZS5iaW5kKHRoaXMpLCEwKX0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnNldFNjcm9sbERpcmVjdGlvbigieSIsdGhpcy4kLnRhYnNDb250YWluZXIpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2NhbmNlbFBlbmRpbmdBY3RpdmF0aW9uKCl9LF9ub2lua0NoYW5nZWQ6ZnVuY3Rpb24odCl7WWkodGhpcykucXVlcnlTZWxlY3RvckFsbCgicGFwZXItdGFiIikuZm9yRWFjaCh0P3RoaXMuX3NldE5vaW5rQXR0cmlidXRlOnRoaXMuX3JlbW92ZU5vaW5rQXR0cmlidXRlKX0sX3NldE5vaW5rQXR0cmlidXRlOmZ1bmN0aW9uKHQpe3Quc2V0QXR0cmlidXRlKCJub2luayIsIiIpfSxfcmVtb3ZlTm9pbmtBdHRyaWJ1dGU6ZnVuY3Rpb24odCl7dC5yZW1vdmVBdHRyaWJ1dGUoIm5vaW5rIil9LF9jb21wdXRlU2Nyb2xsQnV0dG9uQ2xhc3M6ZnVuY3Rpb24odCxlLG4pe3JldHVybiFlfHxuPyJoaWRkZW4iOnQ/Im5vdC12aXNpYmxlIjoiIn0sX2NvbXB1dGVUYWJzQ29udGVudENsYXNzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ/InNjcm9sbGFibGUiKyhlPyIgZml0LWNvbnRhaW5lciI6IiIpOiIgZml0LWNvbnRhaW5lciJ9LF9jb21wdXRlU2VsZWN0aW9uQmFyQ2xhc3M6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD8iaGlkZGVuIjplPyJhbGlnbi1ib3R0b20iOiIifSxfb25UYWJTaXppbmdDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5kZWJvdW5jZSgiX29uVGFiU2l6aW5nQ2hhbmdlZCIsKGZ1bmN0aW9uKCl7dGhpcy5fc2Nyb2xsKCksdGhpcy5fdGFiQ2hhbmdlZCh0aGlzLnNlbGVjdGVkSXRlbSl9KSwxMCl9LF9vbklyb25TZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5fdGFiQ2hhbmdlZCh0LmRldGFpbC5pdGVtLHRoaXMuX3ByZXZpb3VzVGFiKSx0aGlzLl9wcmV2aW91c1RhYj10LmRldGFpbC5pdGVtLHRoaXMuY2FuY2VsRGVib3VuY2VyKCJ0YWItY2hhbmdlZCIpfSxfb25Jcm9uRGVzZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5kZWJvdW5jZSgidGFiLWNoYW5nZWQiLChmdW5jdGlvbigpe3RoaXMuX3RhYkNoYW5nZWQobnVsbCx0aGlzLl9wcmV2aW91c1RhYiksdGhpcy5fcHJldmlvdXNUYWI9bnVsbH0pLDEpfSxfYWN0aXZhdGVIYW5kbGVyOmZ1bmN0aW9uKCl7dGhpcy5fY2FuY2VsUGVuZGluZ0FjdGl2YXRpb24oKSxaYS5fYWN0aXZhdGVIYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sX3NjaGVkdWxlQWN0aXZhdGlvbjpmdW5jdGlvbih0LGUpe3RoaXMuX3BlbmRpbmdBY3RpdmF0aW9uSXRlbT10LHRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uVGltZW91dD10aGlzLmFzeW5jKHRoaXMuX2JpbmREZWxheWVkQWN0aXZhdGlvbkhhbmRsZXIsZSl9LF9kZWxheWVkQWN0aXZhdGlvbkhhbmRsZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wZW5kaW5nQWN0aXZhdGlvbkl0ZW07dGhpcy5fcGVuZGluZ0FjdGl2YXRpb25JdGVtPXZvaWQgMCx0aGlzLl9wZW5kaW5nQWN0aXZhdGlvblRpbWVvdXQ9dm9pZCAwLHQuZmlyZSh0aGlzLmFjdGl2YXRlRXZlbnQsbnVsbCx7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSl9LF9jYW5jZWxQZW5kaW5nQWN0aXZhdGlvbjpmdW5jdGlvbigpe3ZvaWQgMCE9PXRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uVGltZW91dCYmKHRoaXMuY2FuY2VsQXN5bmModGhpcy5fcGVuZGluZ0FjdGl2YXRpb25UaW1lb3V0KSx0aGlzLl9wZW5kaW5nQWN0aXZhdGlvbkl0ZW09dm9pZCAwLHRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uVGltZW91dD12b2lkIDApfSxfb25BcnJvd0tleXVwOmZ1bmN0aW9uKHQpe3RoaXMuYXV0b3NlbGVjdCYmdGhpcy5fc2NoZWR1bGVBY3RpdmF0aW9uKHRoaXMuZm9jdXNlZEl0ZW0sdGhpcy5hdXRvc2VsZWN0RGVsYXkpfSxfb25CbHVyQ2FwdHVyZTpmdW5jdGlvbih0KXt0LnRhcmdldD09PXRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uSXRlbSYmdGhpcy5fY2FuY2VsUGVuZGluZ0FjdGl2YXRpb24oKX0sZ2V0IF90YWJDb250YWluZXJTY3JvbGxTaXplKCl7cmV0dXJuIE1hdGgubWF4KDAsdGhpcy4kLnRhYnNDb250YWluZXIuc2Nyb2xsV2lkdGgtdGhpcy4kLnRhYnNDb250YWluZXIub2Zmc2V0V2lkdGgpfSxfc2Nyb2xsOmZ1bmN0aW9uKHQsZSl7dGhpcy5zY3JvbGxhYmxlJiZ0aGlzLl9hZmZlY3RTY3JvbGwoZSYmLWUuZGR4fHwwKX0sX2Rvd246ZnVuY3Rpb24odCl7dGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLl9kZWZhdWx0Rm9jdXNBc3luYyYmKHRoaXMuY2FuY2VsQXN5bmModGhpcy5fZGVmYXVsdEZvY3VzQXN5bmMpLHRoaXMuX2RlZmF1bHRGb2N1c0FzeW5jPW51bGwpfSksMSl9LF9hZmZlY3RTY3JvbGw6ZnVuY3Rpb24odCl7dGhpcy4kLnRhYnNDb250YWluZXIuc2Nyb2xsTGVmdCs9dDt2YXIgZT10aGlzLiQudGFic0NvbnRhaW5lci5zY3JvbGxMZWZ0O3RoaXMuX2xlZnRIaWRkZW49MD09PWUsdGhpcy5fcmlnaHRIaWRkZW49ZT09PXRoaXMuX3RhYkNvbnRhaW5lclNjcm9sbFNpemV9LF9vbkxlZnRTY3JvbGxCdXR0b25Eb3duOmZ1bmN0aW9uKCl7dGhpcy5fc2Nyb2xsVG9MZWZ0KCksdGhpcy5faG9sZEpvYj1zZXRJbnRlcnZhbCh0aGlzLl9zY3JvbGxUb0xlZnQuYmluZCh0aGlzKSx0aGlzLl9ob2xkRGVsYXkpfSxfb25SaWdodFNjcm9sbEJ1dHRvbkRvd246ZnVuY3Rpb24oKXt0aGlzLl9zY3JvbGxUb1JpZ2h0KCksdGhpcy5faG9sZEpvYj1zZXRJbnRlcnZhbCh0aGlzLl9zY3JvbGxUb1JpZ2h0LmJpbmQodGhpcyksdGhpcy5faG9sZERlbGF5KX0sX29uU2Nyb2xsQnV0dG9uVXA6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKHRoaXMuX2hvbGRKb2IpLHRoaXMuX2hvbGRKb2I9bnVsbH0sX3Njcm9sbFRvTGVmdDpmdW5jdGlvbigpe3RoaXMuX2FmZmVjdFNjcm9sbCgtdGhpcy5fc3RlcCl9LF9zY3JvbGxUb1JpZ2h0OmZ1bmN0aW9uKCl7dGhpcy5fYWZmZWN0U2Nyb2xsKHRoaXMuX3N0ZXApfSxfdGFiQ2hhbmdlZDpmdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybiB0aGlzLiQuc2VsZWN0aW9uQmFyLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZCIpLHRoaXMuJC5zZWxlY3Rpb25CYXIuY2xhc3NMaXN0LnJlbW92ZSgiY29udHJhY3QiKSx2b2lkIHRoaXMuX3Bvc2l0aW9uQmFyKDAsMCk7dmFyIG49dGhpcy4kLnRhYnNDb250ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9bi53aWR0aCxyPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1yLmxlZnQtbi5sZWZ0O2lmKHRoaXMuX3Bvcz17d2lkdGg6dGhpcy5fY2FsY1BlcmNlbnQoci53aWR0aCxpKSxsZWZ0OnRoaXMuX2NhbGNQZXJjZW50KG8saSl9LHRoaXMubm9TbGlkZXx8bnVsbD09ZSlyZXR1cm4gdGhpcy4kLnNlbGVjdGlvbkJhci5jbGFzc0xpc3QucmVtb3ZlKCJleHBhbmQiKSx0aGlzLiQuc2VsZWN0aW9uQmFyLmNsYXNzTGlzdC5yZW1vdmUoImNvbnRyYWN0Iiksdm9pZCB0aGlzLl9wb3NpdGlvbkJhcih0aGlzLl9wb3Mud2lkdGgsdGhpcy5fcG9zLmxlZnQpO3ZhciBhPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz10aGlzLml0ZW1zLmluZGV4T2YoZSksbD10aGlzLml0ZW1zLmluZGV4T2YodCk7dGhpcy4kLnNlbGVjdGlvbkJhci5jbGFzc0xpc3QuYWRkKCJleHBhbmQiKTt2YXIgYz1zPGw7dGhpcy5faXNSVEwmJihjPSFjKSxjP3RoaXMuX3Bvc2l0aW9uQmFyKHRoaXMuX2NhbGNQZXJjZW50KHIubGVmdCtyLndpZHRoLWEubGVmdCxpKS01LHRoaXMuX2xlZnQpOnRoaXMuX3Bvc2l0aW9uQmFyKHRoaXMuX2NhbGNQZXJjZW50KGEubGVmdCthLndpZHRoLXIubGVmdCxpKS01LHRoaXMuX2NhbGNQZXJjZW50KG8saSkrNSksdGhpcy5zY3JvbGxhYmxlJiZ0aGlzLl9zY3JvbGxUb1NlbGVjdGVkSWZOZWVkZWQoci53aWR0aCxvKX0sX3Njcm9sbFRvU2VsZWN0ZWRJZk5lZWRlZDpmdW5jdGlvbih0LGUpe3ZhciBuPWUtdGhpcy4kLnRhYnNDb250YWluZXIuc2Nyb2xsTGVmdDsobjwwfHwobis9dC10aGlzLiQudGFic0NvbnRhaW5lci5vZmZzZXRXaWR0aCk+MCkmJih0aGlzLiQudGFic0NvbnRhaW5lci5zY3JvbGxMZWZ0Kz1uKX0sX2NhbGNQZXJjZW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDEwMCp0L2V9LF9wb3NpdGlvbkJhcjpmdW5jdGlvbih0LGUpe2U9ZXx8MCx0aGlzLl93aWR0aD10PXR8fDAsdGhpcy5fbGVmdD1lLHRoaXMudHJhbnNmb3JtKCJ0cmFuc2xhdGVYKCIrZSsiJSkgc2NhbGVYKCIrdC8xMDArIikiLHRoaXMuJC5zZWxlY3Rpb25CYXIpfSxfb25CYXJUcmFuc2l0aW9uRW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJC5zZWxlY3Rpb25CYXIuY2xhc3NMaXN0O2UuY29udGFpbnMoImV4cGFuZCIpPyhlLnJlbW92ZSgiZXhwYW5kIiksZS5hZGQoImNvbnRyYWN0IiksdGhpcy5fcG9zaXRpb25CYXIodGhpcy5fcG9zLndpZHRoLHRoaXMuX3Bvcy5sZWZ0KSk6ZS5jb250YWlucygiY29udHJhY3QiKSYmZS5yZW1vdmUoImNvbnRyYWN0Iil9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwp2YXIgdXM9bnVsbDtScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvYXN0LWJhY2tncm91bmQtY29sb3IsICMzMjMyMzIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10b2FzdC1jb2xvciwgI2YxZjFmMSk7CiAgICAgICAgbWluLWhlaWdodDogNDhweDsKICAgICAgICBtaW4td2lkdGg6IDI4OHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHggMjRweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIG1hcmdpbjogMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcywgb3BhY2l0eSAwLjNzOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCBvcGFjaXR5IDAuM3M7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDBweCk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICB9CgogICAgICA6aG9zdCguY2Fwc3VsZSkgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KC5maXQtYm90dG9tKSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICA6aG9zdCgucGFwZXItdG9hc3Qtb3BlbikgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c3BhbiBpZD0ibGFiZWwiPnt7dGV4dH19PC9zcGFuPgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJwYXBlci10b2FzdCIsYmVoYXZpb3JzOltrYV0scHJvcGVydGllczp7Zml0SW50bzp7dHlwZTpPYmplY3QsdmFsdWU6d2luZG93LG9ic2VydmVyOiJfb25GaXRJbnRvQ2hhbmdlZCJ9LGhvcml6b250YWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6ImxlZnQifSx2ZXJ0aWNhbEFsaWduOnt0eXBlOlN0cmluZyx2YWx1ZToiYm90dG9tIn0sZHVyYXRpb246e3R5cGU6TnVtYmVyLHZhbHVlOjNlM30sdGV4dDp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LG5vQ2FuY2VsT25PdXRzaWRlQ2xpY2s6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMH0sbm9BdXRvRm9jdXM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMH19LGxpc3RlbmVyczp7dHJhbnNpdGlvbmVuZDoiX19vblRyYW5zaXRpb25FbmQifSxnZXQgdmlzaWJsZSgpe3JldHVybiBmby5fd2FybigiYHZpc2libGVgIGlzIGRlcHJlY2F0ZWQsIHVzZSBgb3BlbmVkYCBpbnN0ZWFkIiksdGhpcy5vcGVuZWR9LGdldCBfY2FuQXV0b0Nsb3NlKCl7cmV0dXJuIHRoaXMuZHVyYXRpb24+MCYmdGhpcy5kdXJhdGlvbiE9PTEvMH0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX2F1dG9DbG9zZT1udWxsLE9hLnJlcXVlc3RBdmFpbGFiaWxpdHkoKX0sc2hvdzpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4ic3RyaW5nIj09dHlwZW9mIHQmJih0PXt0ZXh0OnR9KSx0KTA9PT1lLmluZGV4T2YoIl8iKT9mby5fd2FybignVGhlIHByb3BlcnR5ICInK2UrJyIgaXMgcHJpdmF0ZSBhbmQgd2FzIG5vdCBzZXQuJyk6ZSBpbiB0aGlzP3RoaXNbZV09dFtlXTpmby5fd2FybignVGhlIHByb3BlcnR5ICInK2UrJyIgaXMgbm90IHZhbGlkLicpO3RoaXMub3BlbigpfSxoaWRlOmZ1bmN0aW9uKCl7dGhpcy5jbG9zZSgpfSxfX29uVHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0KXt0JiZ0LnRhcmdldD09PXRoaXMmJiJvcGFjaXR5Ij09PXQucHJvcGVydHlOYW1lJiYodGhpcy5vcGVuZWQ/dGhpcy5fZmluaXNoUmVuZGVyT3BlbmVkKCk6dGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCkpfSxfb3BlbmVkQ2hhbmdlZDpmdW5jdGlvbigpe251bGwhPT10aGlzLl9hdXRvQ2xvc2UmJih0aGlzLmNhbmNlbEFzeW5jKHRoaXMuX2F1dG9DbG9zZSksdGhpcy5fYXV0b0Nsb3NlPW51bGwpLHRoaXMub3BlbmVkPyh1cyYmdXMhPT10aGlzJiZ1cy5jbG9zZSgpLHVzPXRoaXMsdGhpcy5maXJlKCJpcm9uLWFubm91bmNlIix7dGV4dDp0aGlzLnRleHR9KSx0aGlzLl9jYW5BdXRvQ2xvc2UmJih0aGlzLl9hdXRvQ2xvc2U9dGhpcy5hc3luYyh0aGlzLmNsb3NlLHRoaXMuZHVyYXRpb24pKSk6dXM9PT10aGlzJiYodXM9bnVsbCksQ2EuX29wZW5lZENoYW5nZWQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxfcmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5jbGFzc0xpc3QuYWRkKCJwYXBlci10b2FzdC1vcGVuIil9LF9yZW5kZXJDbG9zZWQ6ZnVuY3Rpb24oKXt0aGlzLmNsYXNzTGlzdC5yZW1vdmUoInBhcGVyLXRvYXN0LW9wZW4iKX0sX29uRml0SW50b0NoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5wb3NpdGlvblRhcmdldD10fX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBocz1fZWAKCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KDpmb2N1cykgewogICAgICAgIG91dGxpbmU6bm9uZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1iYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIGxpbmVhciAuMDhzOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tdW5jaGVja2VkLWJhci1jb2xvciwgIzAwMDAwMCk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvZ2dsZS1idXR0b24tdW5jaGVja2VkLWJhcjsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1idXR0b24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IC0zcHg7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSBsaW5lYXIgLjA4cywgYmFja2dyb3VuZC1jb2xvciBsaW5lYXIgLjA4czsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gbGluZWFyIC4wOHMsIGJhY2tncm91bmQtY29sb3IgbGluZWFyIC4wOHM7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLXVuY2hlY2tlZC1idXR0b24tY29sb3IsIHZhcigtLXBhcGVyLWdyZXktNTApKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi11bmNoZWNrZWQtYnV0dG9uOwogICAgICB9CgogICAgICAudG9nZ2xlLWJ1dHRvbi5kcmFnZ2luZyB7CiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjaGVja2VkXTpub3QoW2Rpc2FibGVkXSkpIC50b2dnbGUtYmFyIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1jaGVja2VkLWJhci1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10b2dnbGUtYnV0dG9uLWNoZWNrZWQtYmFyOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudG9nZ2xlLWJhciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsKICAgICAgICBvcGFjaXR5OiAwLjEyOwogICAgICB9CgogICAgICA6aG9zdChbY2hlY2tlZF0pIC50b2dnbGUtYnV0dG9uIHsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDApOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDApOwogICAgICB9CgogICAgICA6aG9zdChbY2hlY2tlZF06bm90KFtkaXNhYmxlZF0pKSAudG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1jaGVja2VkLWJ1dHRvbi1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10b2dnbGUtYnV0dG9uLWNoZWNrZWQtYnV0dG9uOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudG9nZ2xlLWluayB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogLTE0cHg7CiAgICAgICAgbGVmdDogLTE0cHg7CiAgICAgICAgcmlnaHQ6IGF1dG87CiAgICAgICAgYm90dG9tOiBhdXRvOwogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tdW5jaGVja2VkLWluay1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvZ2dsZS1idXR0b24tdW5jaGVja2VkLWluazsKICAgICAgfQoKICAgICAgOmhvc3QoW2NoZWNrZWRdKSAudG9nZ2xlLWluayB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tY2hlY2tlZC1pbmstY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1jaGVja2VkLWluazsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIC8qIFRoZSB0b2dnbGUgYnV0dG9uIGhhcyBhbiBhYnNvbHV0ZSBwb3NpdGlvbiBvZiAtM3B4OyBUaGUgZXh0cmEgMXB4CiAgICAgICAgLyogYWNjb3VudHMgZm9yIHRoZSB0b2dnbGUgYnV0dG9uIHNoYWRvdyBib3guICovCiAgICAgICAgbWFyZ2luOiA0cHggMXB4OwogICAgICB9CgogICAgICAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLWxhYmVsLXNwYWNpbmcsIDhweCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tbGFiZWwtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgICB9CgogICAgICAvKiBpbnZhbGlkIHN0YXRlICovCiAgICAgIDpob3N0KFtpbnZhbGlkXSkgLnRvZ2dsZS1iYXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24taW52YWxpZC1iYXItY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtpbnZhbGlkXSkgLnRvZ2dsZS1idXR0b24gewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24taW52YWxpZC1idXR0b24tY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtpbnZhbGlkXSkgLnRvZ2dsZS1pbmsgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLWludmFsaWQtaW5rLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1jb250YWluZXIiPgogICAgICA8ZGl2IGlkPSJ0b2dnbGVCYXIiIGNsYXNzPSJ0b2dnbGUtYmFyIj48L2Rpdj4KICAgICAgPGRpdiBpZD0idG9nZ2xlQnV0dG9uIiBjbGFzcz0idG9nZ2xlLWJ1dHRvbiI+PC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtbGFiZWwiPjxzbG90Pjwvc2xvdD48L2Rpdj4KCiAgYDtocy5zZXRBdHRyaWJ1dGUoInN0cmlwLXdoaXRlc3BhY2UiLCIiKSxScih7X3RlbXBsYXRlOmhzLGlzOiJwYXBlci10b2dnbGUtYnV0dG9uIixiZWhhdmlvcnM6W3VhXSxob3N0QXR0cmlidXRlczp7cm9sZToiYnV0dG9uIiwiYXJpYS1wcmVzc2VkIjoiZmFsc2UiLHRhYmluZGV4OjB9LHByb3BlcnRpZXM6e30sbGlzdGVuZXJzOnt0cmFjazoiX29udHJhY2sifSxhdHRhY2hlZDpmdW5jdGlvbigpe0xpKHRoaXMsKGZ1bmN0aW9uKCl7b2kodGhpcywicGFuLXkiKX0pKX0sX29udHJhY2s6ZnVuY3Rpb24odCl7dmFyIGU9dC5kZXRhaWw7InN0YXJ0Ij09PWUuc3RhdGU/dGhpcy5fdHJhY2tTdGFydChlKToidHJhY2siPT09ZS5zdGF0ZT90aGlzLl90cmFja01vdmUoZSk6ImVuZCI9PT1lLnN0YXRlJiZ0aGlzLl90cmFja0VuZChlKX0sX3RyYWNrU3RhcnQ6ZnVuY3Rpb24odCl7dGhpcy5fd2lkdGg9dGhpcy4kLnRvZ2dsZUJhci5vZmZzZXRXaWR0aC8yLHRoaXMuX3RyYWNrQ2hlY2tlZD10aGlzLmNoZWNrZWQsdGhpcy4kLnRvZ2dsZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpfSxfdHJhY2tNb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZHg7dGhpcy5feD1NYXRoLm1pbih0aGlzLl93aWR0aCxNYXRoLm1heCgwLHRoaXMuX3RyYWNrQ2hlY2tlZD90aGlzLl93aWR0aCtlOmUpKSx0aGlzLnRyYW5zbGF0ZTNkKHRoaXMuX3grInB4IiwwLDAsdGhpcy4kLnRvZ2dsZUJ1dHRvbiksdGhpcy5fdXNlckFjdGl2YXRlKHRoaXMuX3g+dGhpcy5fd2lkdGgvMil9LF90cmFja0VuZDpmdW5jdGlvbih0KXt0aGlzLiQudG9nZ2xlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy50cmFuc2Zvcm0oIiIsdGhpcy4kLnRvZ2dsZUJ1dHRvbil9LF9jcmVhdGVSaXBwbGU6ZnVuY3Rpb24oKXt0aGlzLl9yaXBwbGVDb250YWluZXI9dGhpcy4kLnRvZ2dsZUJ1dHRvbjt2YXIgdD1Kby5fY3JlYXRlUmlwcGxlKCk7cmV0dXJuIHQuaWQ9ImluayIsdC5zZXRBdHRyaWJ1dGUoInJlY2VudGVycyIsIiIpLHQuY2xhc3NMaXN0LmFkZCgiY2lyY2xlIiwidG9nZ2xlLWluayIpLHR9fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItaGVpZ2h0OiB2YXIoLS1wYXBlci10b29sYmFyLWhlaWdodCwgNjRweCk7CiAgICAgICAgLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItc20taGVpZ2h0OiB2YXIoLS1wYXBlci10b29sYmFyLXNtLWhlaWdodCwgNTZweCk7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGhlaWdodDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci10b29sYmFyLWhlaWdodCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXItdG9vbGJhci1iYWNrZ3JvdW5kLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRvb2xiYXItY29sb3IsIHZhcigtLWRhcmstdGhlbWUtdGV4dC1jb2xvcikpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2xiYXI7CiAgICAgIH0KCiAgICAgIDpob3N0KC5hbmltYXRlKSB7CiAgICAgICAgdHJhbnNpdGlvbjogdmFyKC0tcGFwZXItdG9vbGJhci10cmFuc2l0aW9uLCBoZWlnaHQgMC4xOHMgZWFzZS1pbik7CiAgICAgIH0KCiAgICAgIDpob3N0KC5tZWRpdW0tdGFsbCkgewogICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItaGVpZ2h0KSAqIDIpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2xiYXItbWVkaXVtOwogICAgICB9CgogICAgICA6aG9zdCgudGFsbCkgewogICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItaGVpZ2h0KSAqIDMpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2xiYXItdGFsbDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItdG9vbHMgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1oZWlnaHQpOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaG9yaXpvbnRhbDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2xiYXItY29udGVudDsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogVE9ETzogV2hlcmUgc2hvdWxkIG1lZGlhIHF1ZXJ5IGJyZWFrcG9pbnRzIGxpdmUgc28gdGhleSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gZWxlbWVudHM/CiAgICAgICAqLwoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgOmhvc3QgewogICAgICAgICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItc20taGVpZ2h0KTsKICAgICAgICB9CgogICAgICAgIDpob3N0KC5tZWRpdW0tdGFsbCkgewogICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1zbS1oZWlnaHQpICogMik7CiAgICAgICAgfQoKICAgICAgICA6aG9zdCgudGFsbCkgewogICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1zbS1oZWlnaHQpICogMyk7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci10b29scyB7CiAgICAgICAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1zbS1oZWlnaHQpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgI3RvcEJhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAvKiBtaWRkbGUgYmFyICovCiAgICAgICNtaWRkbGVCYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoLnRhbGwpICNtaWRkbGVCYXIsCiAgICAgIDpob3N0KC5tZWRpdW0tdGFsbCkgI21pZGRsZUJhciB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOwogICAgICB9CgogICAgICAvKiBib3R0b20gYmFyICovCiAgICAgICNib3R0b21CYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogbWFrZSBlbGVtZW50cyAoZS5nLiBidXR0b25zKSByZXNwb25kIHRvIG1vdXNlL3RvdWNoIGV2ZW50cwogICAgICAgKgogICAgICAgKiBcYC50b29sYmFyLXRvb2xzXGAgZGlzYWJsZXMgdG91Y2ggZXZlbnRzIHNvIG11bHRpcGxlIHRvb2xiYXJzIGNhbiBzdGFjayBhbmQgbm90CiAgICAgICAqIGFic29yYiBldmVudHMuIEFsbCBjaGlsZHJlbiBtdXN0IGhhdmUgcG9pbnRlciBldmVudHMgcmUtZW5hYmxlZCB0byB3b3JrIGFzCiAgICAgICAqIGV4cGVjdGVkLgogICAgICAgKi8KICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQoKjpub3QoW2Rpc2FibGVkXSkpIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQoLnRpdGxlKSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXg7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXRvb2xzID4gOjpzbG90dGVkKC50aXRsZSkgewogICAgICAgIG1hcmdpbi1sZWZ0OiA1NnB4OwogICAgICB9CgogICAgICAudG9vbGJhci10b29scyA+IDo6c2xvdHRlZChwYXBlci1pY29uLWJ1dHRvbiArIC50aXRsZSkgewogICAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgICB9CgogICAgICAvKioKICAgICAgICogVGhlIC0tcGFwZXItdG9vbGJhci10aXRsZSBtaXhpbiBpcyBhcHBsaWVkIGhlcmUgaW5zdGVhZCBvZiBhYm92ZSB0bwogICAgICAgKiBmaXggdGhlIGlzc3VlIHdpdGggbWFyZ2luLWxlZnQgYmVpbmcgaWdub3JlZCBkdWUgdG8gY3NzIG9yZGVyaW5nLgogICAgICAgKi8KICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQoLnRpdGxlKSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbGJhci10aXRsZTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQocGFwZXItaWNvbi1idXR0b25baWNvbj1tZW51XSkgewogICAgICAgIG1hcmdpbi1yaWdodDogMjRweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQoLmZpdCkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IGF1dG87CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IGF1dG87CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAvKiBUT0RPKG5vbXMpOiBVbnRpbCB3ZSBoYXZlIGEgYmV0dGVyIHNvbHV0aW9uIGZvciBjbGFzc2VzIHRoYXQgZG9uJ3QgdXNlCiAgICAgICAqIC9kZWVwLyBjcmVhdGUgb3VyIG93bi4KICAgICAgICovCiAgICAgIC5zdGFydC1qdXN0aWZpZWQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1zdGFydC1qdXN0aWZpZWQ7CiAgICAgIH0KCiAgICAgIC5jZW50ZXItanVzdGlmaWVkIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyLWp1c3RpZmllZDsKICAgICAgfQoKICAgICAgLmVuZC1qdXN0aWZpZWQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1lbmQtanVzdGlmaWVkOwogICAgICB9CgogICAgICAuYXJvdW5kLWp1c3RpZmllZCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWFyb3VuZC1qdXN0aWZpZWQ7CiAgICAgIH0KCiAgICAgIC5qdXN0aWZpZWQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1qdXN0aWZpZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBpZD0idG9wQmFyIiBjbGFzc1wkPSJ0b29sYmFyLXRvb2xzIFtbX2NvbXB1dGVCYXJFeHRyYUNsYXNzZXMoanVzdGlmeSldXSI+CiAgICAgIDxzbG90IG5hbWU9InRvcCI+PC9zbG90PgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0ibWlkZGxlQmFyIiBjbGFzc1wkPSJ0b29sYmFyLXRvb2xzIFtbX2NvbXB1dGVCYXJFeHRyYUNsYXNzZXMobWlkZGxlSnVzdGlmeSldXSI+CiAgICAgIDxzbG90IG5hbWU9Im1pZGRsZSI+PC9zbG90PgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm90dG9tQmFyIiBjbGFzc1wkPSJ0b29sYmFyLXRvb2xzIFtbX2NvbXB1dGVCYXJFeHRyYUNsYXNzZXMoYm90dG9tSnVzdGlmeSldXSI+CiAgICAgIDxzbG90IG5hbWU9ImJvdHRvbSI+PC9zbG90PgogICAgPC9kaXY+CmAsaXM6InBhcGVyLXRvb2xiYXIiLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJ0b29sYmFyIn0scHJvcGVydGllczp7Ym90dG9tSnVzdGlmeTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LGp1c3RpZnk6e3R5cGU6U3RyaW5nLHZhbHVlOiIifSxtaWRkbGVKdXN0aWZ5Ont0eXBlOlN0cmluZyx2YWx1ZToiIn19LHJlYWR5OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKHRoaXMuaXMsImlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYXBwLWxheW91dCBpbnN0ZWFkISIpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyPXRoaXMuX29ic2VydmUodGhpcyksdGhpcy5fdXBkYXRlQXJpYUxhYmVsbGVkQnkoKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9vYnNlcnZlciYmdGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpfSxfb2JzZXJ2ZTpmdW5jdGlvbih0KXt2YXIgZT1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZUFyaWFMYWJlbGxlZEJ5KCl9LmJpbmQodGhpcykpO3JldHVybiBlLm9ic2VydmUodCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KSxlfSxfdXBkYXRlQXJpYUxhYmVsbGVkQnk6ZnVuY3Rpb24oKXtEaSgpO2Zvcih2YXIgdCxlPVtdLG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoWWkodGhpcy5yb290KS5xdWVyeVNlbGVjdG9yQWxsKCJzbG90IikpLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChZaSh0aGlzLnJvb3QpLnF1ZXJ5U2VsZWN0b3JBbGwoImNvbnRlbnQiKSkpLGk9MDt0PW5baV07aSsrKWZvcih2YXIgcixvPVlpKHQpLmdldERpc3RyaWJ1dGVkTm9kZXMoKSxhPTA7cj1vW2FdO2ErKylpZihyLmNsYXNzTGlzdCYmci5jbGFzc0xpc3QuY29udGFpbnMoInRpdGxlIikpaWYoci5pZCllLnB1c2goci5pZCk7ZWxzZXt2YXIgcz0icGFwZXItdG9vbGJhci1sYWJlbC0iK01hdGguZmxvb3IoMWU0Kk1hdGgucmFuZG9tKCkpO3IuaWQ9cyxlLnB1c2gocyl9ZS5sZW5ndGg+MCYmdGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsZS5qb2luKCIgIikpfSxfY29tcHV0ZUJhckV4dHJhQ2xhc3NlczpmdW5jdGlvbih0KXtyZXR1cm4gdD90KygianVzdGlmaWVkIj09PXQ/IiI6Ii1qdXN0aWZpZWQiKToiIn19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB6LWluZGV4OiAxMDAyOwogICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAjdG9vbHRpcCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci10b29sdGlwLWJhY2tncm91bmQsICM2MTYxNjEpOwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10b29sdGlwLXRleHQtY29sb3IsIHdoaXRlKTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2x0aXA7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMga2V5RnJhbWVTY2FsZVVwIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMCk7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBrZXlGcmFtZVNjYWxlRG93biB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjApOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC4wKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMga2V5RnJhbWVGYWRlSW5PcGFjaXR5IHsKICAgICAgICAwJSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIG9wYWNpdHk6IHZhcigtLXBhcGVyLXRvb2x0aXAtb3BhY2l0eSwgMC45KTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMga2V5RnJhbWVGYWRlT3V0T3BhY2l0eSB7CiAgICAgICAgMCUgewogICAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGtleUZyYW1lU2xpZGVEb3duSW4gewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICAgIDEwJSB7CiAgICAgICAgICBvcGFjaXR5OiAwLjI7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBrZXlGcmFtZVNsaWRlRG93bk91dCB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIH0KICAgICAgICAxMCUgewogICAgICAgICAgb3BhY2l0eTogMC4yOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZmFkZS1pbi1hbmltYXRpb24gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1wYXBlci10b29sdGlwLWRlbGF5LWluLCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGtleUZyYW1lRmFkZUluT3BhY2l0eTsKICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwogICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47CiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci10b29sdGlwLWR1cmF0aW9uLWluLCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbHRpcC1hbmltYXRpb247CiAgICAgIH0KCiAgICAgIC5mYWRlLW91dC1hbmltYXRpb24gewogICAgICAgIG9wYWNpdHk6IHZhcigtLXBhcGVyLXRvb2x0aXAtb3BhY2l0eSwgMC45KTsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IHZhcigtLXBhcGVyLXRvb2x0aXAtZGVsYXktb3V0LCAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1uYW1lOiBrZXlGcmFtZUZhZGVPdXRPcGFjaXR5OwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7CiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsKICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXRvb2x0aXAtZHVyYXRpb24tb3V0LCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbHRpcC1hbmltYXRpb247CiAgICAgIH0KCiAgICAgIC5zY2FsZS11cC1hbmltYXRpb24gewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tcGFwZXItdG9vbHRpcC1kZWxheS1pbiwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1uYW1lOiBrZXlGcmFtZVNjYWxlVXA7CiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItdG9vbHRpcC1kdXJhdGlvbi1pbiwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2x0aXAtYW5pbWF0aW9uOwogICAgICB9CgogICAgICAuc2NhbGUtZG93bi1hbmltYXRpb24gewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tcGFwZXItdG9vbHRpcC1kZWxheS1vdXQsIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tbmFtZToga2V5RnJhbWVTY2FsZURvd247CiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItdG9vbHRpcC1kdXJhdGlvbi1vdXQsIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sdGlwLWFuaW1hdGlvbjsKICAgICAgfQoKICAgICAgLnNsaWRlLWRvd24tYW5pbWF0aW9uIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMDBweCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IHZhcigtLXBhcGVyLXRvb2x0aXAtZGVsYXktb3V0LCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGtleUZyYW1lU2xpZGVEb3duSW47CiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4wLCAwLjAsIDAuMiwgMSk7CiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci10b29sdGlwLWR1cmF0aW9uLW91dCwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2x0aXAtYW5pbWF0aW9uOwogICAgICB9CgogICAgICAuc2xpZGUtZG93bi1hbmltYXRpb24tb3V0IHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tcGFwZXItdG9vbHRpcC1kZWxheS1vdXQsIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tbmFtZToga2V5RnJhbWVTbGlkZURvd25PdXQ7CiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDEsIDEpOwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItdG9vbHRpcC1kdXJhdGlvbi1vdXQsIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sdGlwLWFuaW1hdGlvbjsKICAgICAgfQoKICAgICAgLmNhbmNlbC1hbmltYXRpb24gewogICAgICAgIGFuaW1hdGlvbi1kZWxheTogLTMwcyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAvKiBUaGFua3MgSUUgMTAuICovCgogICAgICAuaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBpZD0idG9vbHRpcCIgY2xhc3M9ImhpZGRlbiI+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci10b29sdGlwIixob3N0QXR0cmlidXRlczp7cm9sZToidG9vbHRpcCIsdGFiaW5kZXg6LTF9LHByb3BlcnRpZXM6e2Zvcjp7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9maW5kVGFyZ2V0In0sbWFudWFsTW9kZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG9ic2VydmVyOiJfbWFudWFsTW9kZUNoYW5nZWQifSxwb3NpdGlvbjp7dHlwZTpTdHJpbmcsdmFsdWU6ImJvdHRvbSJ9LGZpdFRvVmlzaWJsZUJvdW5kczp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxvZmZzZXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjE0fSxtYXJnaW5Ub3A6e3R5cGU6TnVtYmVyLHZhbHVlOjE0fSxhbmltYXRpb25EZWxheTp7dHlwZTpOdW1iZXIsdmFsdWU6NTAwLG9ic2VydmVyOiJfZGVsYXlDaGFuZ2UifSxhbmltYXRpb25FbnRyeTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LGFuaW1hdGlvbkV4aXQ6e3R5cGU6U3RyaW5nLHZhbHVlOiIifSxhbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue2VudHJ5Olt7bmFtZToiZmFkZS1pbi1hbmltYXRpb24iLG5vZGU6dGhpcyx0aW1pbmc6e2RlbGF5OjB9fV0sZXhpdDpbe25hbWU6ImZhZGUtb3V0LWFuaW1hdGlvbiIsbm9kZTp0aGlzfV19fX0sX3Nob3dpbmc6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX19LGxpc3RlbmVyczp7d2Via2l0QW5pbWF0aW9uRW5kOiJfb25BbmltYXRpb25FbmQifSxnZXQgdGFyZ2V0KCl7dmFyIHQ9WWkodGhpcykucGFyZW50Tm9kZSxlPVlpKHRoaXMpLmdldE93bmVyUm9vdCgpO3JldHVybiB0aGlzLmZvcj9ZaShlKS5xdWVyeVNlbGVjdG9yKCIjIit0aGlzLmZvcik6dC5ub2RlVHlwZT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFP2UuaG9zdDp0fSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2ZpbmRUYXJnZXQoKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLm1hbnVhbE1vZGV8fHRoaXMuX3JlbW92ZUxpc3RlbmVycygpfSxwbGF5QW5pbWF0aW9uOmZ1bmN0aW9uKHQpeyJlbnRyeSI9PT10P3RoaXMuc2hvdygpOiJleGl0Ij09PXQmJnRoaXMuaGlkZSgpfSxjYW5jZWxBbmltYXRpb246ZnVuY3Rpb24oKXt0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QuYWRkKCJjYW5jZWwtYW5pbWF0aW9uIil9LHNob3c6ZnVuY3Rpb24oKXtpZighdGhpcy5fc2hvd2luZyl7aWYoIiI9PT1ZaSh0aGlzKS50ZXh0Q29udGVudC50cmltKCkpe2Zvcih2YXIgdD0hMCxlPVlpKHRoaXMpLmdldEVmZmVjdGl2ZUNoaWxkTm9kZXMoKSxuPTA7bjxlLmxlbmd0aDtuKyspaWYoIiIhPT1lW25dLnRleHRDb250ZW50LnRyaW0oKSl7dD0hMTticmVha31pZih0KXJldHVybn10aGlzLl9zaG93aW5nPSEwLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUoImNhbmNlbC1hbmltYXRpb24iKSx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX2dldEFuaW1hdGlvblR5cGUoImV4aXQiKSksdGhpcy51cGRhdGVQb3NpdGlvbigpLHRoaXMuX2FuaW1hdGlvblBsYXlpbmc9ITAsdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LmFkZCh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJlbnRyeSIpKX19LGhpZGU6ZnVuY3Rpb24oKXtpZih0aGlzLl9zaG93aW5nKXtpZih0aGlzLl9hbmltYXRpb25QbGF5aW5nKXJldHVybiB0aGlzLl9zaG93aW5nPSExLHZvaWQgdGhpcy5fY2FuY2VsQW5pbWF0aW9uKCk7dGhpcy5fb25BbmltYXRpb25GaW5pc2goKSx0aGlzLl9zaG93aW5nPSExLHRoaXMuX2FuaW1hdGlvblBsYXlpbmc9ITB9fSx1cGRhdGVQb3NpdGlvbjpmdW5jdGlvbigpe2lmKHRoaXMuX3RhcmdldCYmdGhpcy5vZmZzZXRQYXJlbnQpe3ZhciB0PXRoaXMub2Zmc2V0OzE0IT10aGlzLm1hcmdpblRvcCYmMTQ9PXRoaXMub2Zmc2V0JiYodD10aGlzLm1hcmdpblRvcCk7dmFyIGUsbixpPXRoaXMub2Zmc2V0UGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9dGhpcy5fdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPShyLndpZHRoLW8ud2lkdGgpLzIscz0oci5oZWlnaHQtby5oZWlnaHQpLzIsbD1yLmxlZnQtaS5sZWZ0LGM9ci50b3AtaS50b3A7c3dpdGNoKHRoaXMucG9zaXRpb24pe2Nhc2UidG9wIjplPWwrYSxuPWMtby5oZWlnaHQtdDticmVhaztjYXNlImJvdHRvbSI6ZT1sK2Esbj1jK3IuaGVpZ2h0K3Q7YnJlYWs7Y2FzZSJsZWZ0IjplPWwtby53aWR0aC10LG49YytzO2JyZWFrO2Nhc2UicmlnaHQiOmU9bCtyLndpZHRoK3Qsbj1jK3N9dGhpcy5maXRUb1Zpc2libGVCb3VuZHM/KGkubGVmdCtlK28ud2lkdGg+d2luZG93LmlubmVyV2lkdGg/KHRoaXMuc3R5bGUucmlnaHQ9IjBweCIsdGhpcy5zdHlsZS5sZWZ0PSJhdXRvIik6KHRoaXMuc3R5bGUubGVmdD1NYXRoLm1heCgwLGUpKyJweCIsdGhpcy5zdHlsZS5yaWdodD0iYXV0byIpLGkudG9wK24rby5oZWlnaHQ+d2luZG93LmlubmVySGVpZ2h0Pyh0aGlzLnN0eWxlLmJvdHRvbT1pLmhlaWdodC1jK3QrInB4Iix0aGlzLnN0eWxlLnRvcD0iYXV0byIpOih0aGlzLnN0eWxlLnRvcD1NYXRoLm1heCgtaS50b3AsbikrInB4Iix0aGlzLnN0eWxlLmJvdHRvbT0iYXV0byIpKToodGhpcy5zdHlsZS5sZWZ0PWUrInB4Iix0aGlzLnN0eWxlLnRvcD1uKyJweCIpfX0sX2FkZExpc3RlbmVyczpmdW5jdGlvbigpe3RoaXMuX3RhcmdldCYmKHRoaXMubGlzdGVuKHRoaXMuX3RhcmdldCwibW91c2VlbnRlciIsInNob3ciKSx0aGlzLmxpc3Rlbih0aGlzLl90YXJnZXQsImZvY3VzIiwic2hvdyIpLHRoaXMubGlzdGVuKHRoaXMuX3RhcmdldCwibW91c2VsZWF2ZSIsImhpZGUiKSx0aGlzLmxpc3Rlbih0aGlzLl90YXJnZXQsImJsdXIiLCJoaWRlIiksdGhpcy5saXN0ZW4odGhpcy5fdGFyZ2V0LCJ0YXAiLCJoaWRlIikpLHRoaXMubGlzdGVuKHRoaXMuJC50b29sdGlwLCJhbmltYXRpb25lbmQiLCJfb25BbmltYXRpb25FbmQiKSx0aGlzLmxpc3Rlbih0aGlzLCJtb3VzZWVudGVyIiwiaGlkZSIpfSxfZmluZFRhcmdldDpmdW5jdGlvbigpe3RoaXMubWFudWFsTW9kZXx8dGhpcy5fcmVtb3ZlTGlzdGVuZXJzKCksdGhpcy5fdGFyZ2V0PXRoaXMudGFyZ2V0LHRoaXMubWFudWFsTW9kZXx8dGhpcy5fYWRkTGlzdGVuZXJzKCl9LF9kZWxheUNoYW5nZTpmdW5jdGlvbih0KXs1MDAhPT10JiZ0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tcGFwZXItdG9vbHRpcC1kZWxheS1pbiI6dCsibXMifSl9LF9tYW51YWxNb2RlQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMubWFudWFsTW9kZT90aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKTp0aGlzLl9hZGRMaXN0ZW5lcnMoKX0sX2NhbmNlbEFuaW1hdGlvbjpmdW5jdGlvbigpe3RoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fZ2V0QW5pbWF0aW9uVHlwZSgiZW50cnkiKSksdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJleGl0IikpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUoImNhbmNlbC1hbmltYXRpb24iKSx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0sX29uQW5pbWF0aW9uRmluaXNoOmZ1bmN0aW9uKCl7dGhpcy5fc2hvd2luZyYmKHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fZ2V0QW5pbWF0aW9uVHlwZSgiZW50cnkiKSksdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSgiY2FuY2VsLWFuaW1hdGlvbiIpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5hZGQodGhpcy5fZ2V0QW5pbWF0aW9uVHlwZSgiZXhpdCIpKSl9LF9vbkFuaW1hdGlvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2FuaW1hdGlvblBsYXlpbmc9ITEsdGhpcy5fc2hvd2luZ3x8KHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fZ2V0QW5pbWF0aW9uVHlwZSgiZXhpdCIpKSx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSl9LF9nZXRBbmltYXRpb25UeXBlOmZ1bmN0aW9uKHQpe2lmKCJlbnRyeSI9PT10JiYiIiE9PXRoaXMuYW5pbWF0aW9uRW50cnkpcmV0dXJuIHRoaXMuYW5pbWF0aW9uRW50cnk7aWYoImV4aXQiPT09dCYmIiIhPT10aGlzLmFuaW1hdGlvbkV4aXQpcmV0dXJuIHRoaXMuYW5pbWF0aW9uRXhpdDtpZih0aGlzLmFuaW1hdGlvbkNvbmZpZ1t0XSYmInN0cmluZyI9PXR5cGVvZiB0aGlzLmFuaW1hdGlvbkNvbmZpZ1t0XVswXS5uYW1lKXtpZih0aGlzLmFuaW1hdGlvbkNvbmZpZ1t0XVswXS50aW1pbmcmJnRoaXMuYW5pbWF0aW9uQ29uZmlnW3RdWzBdLnRpbWluZy5kZWxheSYmMCE9PXRoaXMuYW5pbWF0aW9uQ29uZmlnW3RdWzBdLnRpbWluZy5kZWxheSl7dmFyIGU9dGhpcy5hbmltYXRpb25Db25maWdbdF1bMF0udGltaW5nLmRlbGF5OyJlbnRyeSI9PT10P3RoaXMudXBkYXRlU3R5bGVzKHsiLS1wYXBlci10b29sdGlwLWRlbGF5LWluIjplKyJtcyJ9KToiZXhpdCI9PT10JiZ0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tcGFwZXItdG9vbHRpcC1kZWxheS1vdXQiOmUrIm1zIn0pfXJldHVybiB0aGlzLmFuaW1hdGlvbkNvbmZpZ1t0XVswXS5uYW1lfX0sX3JlbW92ZUxpc3RlbmVyczpmdW5jdGlvbigpe3RoaXMuX3RhcmdldCYmKHRoaXMudW5saXN0ZW4odGhpcy5fdGFyZ2V0LCJtb3VzZWVudGVyIiwic2hvdyIpLHRoaXMudW5saXN0ZW4odGhpcy5fdGFyZ2V0LCJmb2N1cyIsInNob3ciKSx0aGlzLnVubGlzdGVuKHRoaXMuX3RhcmdldCwibW91c2VsZWF2ZSIsImhpZGUiKSx0aGlzLnVubGlzdGVuKHRoaXMuX3RhcmdldCwiYmx1ciIsImhpZGUiKSx0aGlzLnVubGlzdGVuKHRoaXMuX3RhcmdldCwidGFwIiwiaGlkZSIpKSx0aGlzLnVubGlzdGVuKHRoaXMuJC50b29sdGlwLCJhbmltYXRpb25lbmQiLCJfb25BbmltYXRpb25FbmQiKSx0aGlzLnVubGlzdGVuKHRoaXMsIm1vdXNlZW50ZXIiLCJoaWRlIil9fSk7Y2xhc3MgZHN7Y29uc3RydWN0b3IodCl7dGhpcy5saXN0ZW5lcj10fX1jb25zdCBwcz1uZXcgU2V0LGZzPW5ldyBTZXQ7ZnVuY3Rpb24gbXModCl7Y29uc3QgZT1uZXcgZHModCk7cmV0dXJuIHBzLmFkZChlKSxlfWZ1bmN0aW9uIGdzKHQpe2NvbnN0IGU9bmV3IGRzKHQpO3JldHVybiBmcy5hZGQoZSksZX1mdW5jdGlvbiBfcygpe2ZzLmZvckVhY2goKHQ9PnQubGlzdGVuZXIoKSkpfWZ1bmN0aW9uIHlzKHQpe3BzLmRlbGV0ZSh0KX1mdW5jdGlvbiB2cyh0KXtmcy5kZWxldGUodCl9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLCgoKT0+e3BzLmZvckVhY2goKHQ9PnQubGlzdGVuZXIoKSkpfSkpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIiwoKCk9Pntmcy5mb3JFYWNoKCh0PT50Lmxpc3RlbmVyKCkpKX0pKTtsZXQgYnM9ITE7ZnVuY3Rpb24geHMoKXtyZXR1cm4gYnN9bGV0IHdzPSIiO2Z1bmN0aW9uIFNzKHQpe3dzPXR9ZnVuY3Rpb24gTXMoKXtyZXR1cm4gd3N9dmFyIEVzPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLHNldFVzZUhhc2g6ZnVuY3Rpb24gVHModCl7YnM9dH0sdXNlSGFzaDp4cyxzZXRGYWtlSGFzaDpTcyxnZXRGYWtlSGFzaDpNc30pO2xldCBDcz17fTtmdW5jdGlvbiBBcygpe3JldHVybiB4cygpP3dpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpOk1zKCl9ZnVuY3Rpb24ga3ModCl7Y29uc3QgZT17fTtyZXR1cm4gdC5zcGxpdCgiJiIpLmZvckVhY2goKHQ9Pntjb25zdCBuPXQuc3BsaXQoIj0iKTsxPT09bi5sZW5ndGg/ZS5fX3RhYl9fPW5bMF06Mj09PW4ubGVuZ3RoJiYoZVtkZWNvZGVVUklDb21wb25lbnQoblswXSldPWRlY29kZVVSSUNvbXBvbmVudChuWzFdKSl9KSksZX1mdW5jdGlvbiBMcyh0LGU9ITEpe2lmKHhzKCkpaWYoZSl7Y29uc3QgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtlLmhhc2g9dCx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwiIixlLnRvU3RyaW5nKCkpfWVsc2Ugd2luZG93LmxvY2F0aW9uLmhhc2g9dDtlbHNlIFNzKHQpfWZ1bmN0aW9uIFBzKHQpe2xldCBlPSIiO3ZvaWQgMCE9PXQuX190YWJfXyYmKGUrPXQuX190YWJfXyk7Y29uc3Qgbj1PYmplY3Qua2V5cyh0KS5tYXAoKGU9PltlLHRbZV1dKSkuZmlsdGVyKCh0PT4iX190YWJfXyIhPT10WzBdKSkubWFwKCh0PT5lbmNvZGVVUklDb21wb25lbnQodFswXSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0WzFdKSkpLmpvaW4oIiYiKTtyZXR1cm4gbi5sZW5ndGg+MD9lKyImIituOmV9bXMoKCgpPT57Q3M9a3MoQXMoKSl9KSk7Y29uc3R7Z2V0Ok5zLHNldDpJcyxnZXRJbml0aWFsaXplcjpScyxnZXRPYnNlcnZlcjpPcyxkaXNwb3NlQmluZGluZzp6c309SnMoKHQ9PnQpLCh0PT50KSkse2dldDpEcyxzZXQ6QnMsZ2V0SW5pdGlhbGl6ZXI6SHMsZ2V0T2JzZXJ2ZXI6RnMsZGlzcG9zZUJpbmRpbmc6VnN9PUpzKCh0PT4idHJ1ZSI9PT10fHwiZmFsc2UiIT09dCYmdm9pZCAwKSwodD0+dC50b1N0cmluZygpKSkse2dldDpVcyxzZXQ6anMsZ2V0SW5pdGlhbGl6ZXI6R3MsZ2V0T2JzZXJ2ZXI6V3MsZGlzcG9zZUJpbmRpbmc6cXN9PUpzKCh0PT4rdCksKHQ9PnQudG9TdHJpbmcoKSkpLHtnZXQ6WXMsc2V0OlhzLGdldEluaXRpYWxpemVyOiRzLGdldE9ic2VydmVyOktzLGRpc3Bvc2VCaW5kaW5nOlpzfT1KcygodD0+SlNPTi5wYXJzZShhdG9iKHQpKSksKHQ9PmJ0b2EoSlNPTi5zdHJpbmdpZnkodCkpKSk7ZnVuY3Rpb24gSnModCxlKXtjb25zdCBuPVtdLGk9W107ZnVuY3Rpb24gcihlLG49e30pe2NvbnN0e2RlZmF1bHRWYWx1ZTppLHVzZUxvY2FsU3RvcmFnZTpyPSExfT1uLG89cj93aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZSk6a3MoQXMoKSlbZV07cmV0dXJuIG51bGw9PW8/U2UuZXhwb3J0cy5jbG9uZURlZXAoaSk6dChvKX1mdW5jdGlvbiBvKHQsbixpPXt9KXtjb25zdHtkZWZhdWx0VmFsdWU6byx1c2VMb2NhbFN0b3JhZ2U6YT0hMSx1c2VMb2NhdGlvblJlcGxhY2U6cz0hMX09aSxsPWUobik7aWYoYSl3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0odCxsKSxfcygpO2Vsc2UgaWYoIVNlLmV4cG9ydHMuaXNFcXVhbChuLHIodCx7dXNlTG9jYWxTdG9yYWdlOmF9KSkpaWYoU2UuZXhwb3J0cy5pc0VxdWFsKG4sbykpIShmdW5jdGlvbiBjKHQpe2NvbnN0IGU9a3MoQXMoKSk7ZGVsZXRlIGVbdF0sTHMoUHMoZSkpfSkodCk7ZWxzZXtjb25zdCBlPWtzKEFzKCkpO2VbdF09bCxMcyhQcyhlKSxzKX19cmV0dXJue2dldDpyLHNldDpvLGdldEluaXRpYWxpemVyOmZ1bmN0aW9uIGEodCxlKXtjb25zdCBvPU9iamVjdC5hc3NpZ24oe2RlZmF1bHRWYWx1ZTplLmRlZmF1bHRWYWx1ZSxwb2x5bWVyUHJvcGVydHk6dCx1c2VMb2NhbFN0b3JhZ2U6ITF9LGUpO3JldHVybiBmdW5jdGlvbigpe2NvbnN0IGU9UXModGhpcyx0KSxhPSgpPT57Y29uc3QgdD1yKGUsbyk7U2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpc1tvLnBvbHltZXJQcm9wZXJ0eV0pfHwodGhpc1tvLnBvbHltZXJQcm9wZXJ0eV09dCl9LHM9KG8udXNlTG9jYWxTdG9yYWdlP2dzOm1zKSgoKCk9PmEoKSkpO3JldHVybiBvLnVzZUxvY2FsU3RvcmFnZT9pLnB1c2gocyk6bi5wdXNoKHMpLGEoKSx0aGlzW28ucG9seW1lclByb3BlcnR5XX19LGdldE9ic2VydmVyOmZ1bmN0aW9uIHModCxlKXtjb25zdCBuPU9iamVjdC5hc3NpZ24oe2RlZmF1bHRWYWx1ZTplLmRlZmF1bHRWYWx1ZSxwb2x5bWVyUHJvcGVydHk6dCx1c2VMb2NhbFN0b3JhZ2U6ITF9LGUpO3JldHVybiBmdW5jdGlvbigpe28oUXModGhpcyx0KSx0aGlzW24ucG9seW1lclByb3BlcnR5XSxuKX19LGRpc3Bvc2VCaW5kaW5nOmZ1bmN0aW9uIGwoKXtuLmZvckVhY2goKHQ9PnlzKHQpKSksaS5mb3JFYWNoKCh0PT52cyh0KSkpfX19ZnVuY3Rpb24gUXModCxlKXtjb25zdCBuPXQuZGlzYW1iaWd1YXRvcjtyZXR1cm4obnVsbD09bj9bZV06W24sZV0pLmpvaW4oIi4iKX1sZXQgdGw9Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fdGFnRmlsdGVyPVJzKCJ0YWdGaWx0ZXIiLHtkZWZhdWx0VmFsdWU6IiIsdXNlTG9jYWxTdG9yYWdlOiExLHBvbHltZXJQcm9wZXJ0eToiX3RhZ0ZpbHRlciJ9KS5jYWxsKHRoaXMpLHRoaXMuX3RhZ0ZpbHRlck9ic2VydmVyPU9zKCJ0YWdGaWx0ZXIiLHtkZWZhdWx0VmFsdWU6IiIsdXNlTG9jYWxTdG9yYWdlOiExLHBvbHltZXJQcm9wZXJ0eToiX3RhZ0ZpbHRlciJ9KX1fY29tcHV0ZVRhZ0ZpbHRlcigpe3JldHVybiB0aGlzLl90YWdGaWx0ZXJ9fTtmdW5jdGlvbiBlbCh0KXtjb25zdHttb2R1bGVOYW1lOmUsc3R5bGVDb250ZW50Om59PXQsaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkb20tbW9kdWxlIikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpLG89W107dC5zdHlsZURlcGVuZGVuY2llcyYmdC5zdHlsZURlcGVuZGVuY2llcy5mb3JFYWNoKCh0PT57Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2Uuc2V0QXR0cmlidXRlKCJpbmNsdWRlIix0KSxvLnB1c2goZSl9KSk7Y29uc3QgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO09iamVjdC5hc3NpZ24oYSx7dGV4dENvbnRlbnQ6bn0pLG8uZm9yRWFjaCgodD0+e3IuY29udGVudC5hcHBlbmRDaGlsZCh0KX0pKSxyLmNvbnRlbnQuYXBwZW5kQ2hpbGQoYSksaS5hcHBlbmRDaGlsZChyKSxpLnJlZ2lzdGVyKGUpfXRsLnRlbXBsYXRlPV9lYAogICAgPHBhcGVyLWlucHV0CiAgICAgIG5vLWxhYmVsLWZsb2F0PSIiCiAgICAgIGxhYmVsPSJGaWx0ZXIgdGFncyAocmVndWxhciBleHByZXNzaW9ucyBzdXBwb3J0ZWQpIgogICAgICB2YWx1ZT0ie3tfdGFnRmlsdGVyfX0iCiAgICAgIGNsYXNzPSJzZWFyY2gtaW5wdXQiCiAgICA+CiAgICAgIDxpcm9uLWljb24gcHJlZml4PSIiIGljb249InNlYXJjaCIgc2xvdD0icHJlZml4Ij48L2lyb24taWNvbj4KICAgIDwvcGFwZXItaW5wdXQ+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDEwcHggNXB4IDEwcHggMTBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMCxjb21wdXRlZDoiX2NvbXB1dGVUYWdGaWx0ZXIoX3RhZ0ZpbHRlcikifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHRsLnByb3RvdHlwZSwidGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfdGFnRmlsdGVyT2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHRsLnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKSx0bD10KFtpKCJ0Zi10YWctZmlsdGVyZXIiKV0sdGwpLGVsKHttb2R1bGVOYW1lOiJkYXNoYm9hcmQtc3R5bGUiLHN0eWxlRGVwZW5kZW5jaWVzOlsiaXJvbi1mbGV4Il0sc3R5bGVDb250ZW50OiJcbiAgICAgIDpob3N0IHtcbiAgICAgICAgLS1zaWRlYmFyLXZlcnRpY2FsLXBhZGRpbmc6IDE1cHg7XG4gICAgICAgIC0tc2lkZWJhci1sZWZ0LXBhZGRpbmc6IDMwcHg7XG4gICAgICB9XG5cbiAgICAgIFtzbG90PSdzaWRlYmFyJ10ge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgIC5zZXR0aW5ncyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICAgIH1cblxuICAgICAgLnJ1bnMtc2VsZWN0b3Ige1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgICAgfVxuXG4gICAgICB0Zi1ydW5zLXNlbGVjdG9yIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgbGVmdDogdmFyKC0tc2lkZWJhci1sZWZ0LXBhZGRpbmcpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1zaWRlYmFyLXZlcnRpY2FsLXBhZGRpbmcpICogMik7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2gtaW5wdXQge1xuICAgICAgICBtYXJnaW46IDEwcHggNXB4IDAgMTBweDtcbiAgICAgIH1cblxuICAgICAgLnNpZGViYXItc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCB2YXIoLS10Yi11aS1ib3JkZXIpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXNpZGViYXItdmVydGljYWwtcGFkZGluZykgMFxuICAgICAgICAgIHZhcigtLXNpZGViYXItdmVydGljYWwtcGFkZGluZykgdmFyKC0tc2lkZWJhci1sZWZ0LXBhZGRpbmcpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5zaWRlYmFyLXNlY3Rpb246Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnNpZGViYXItc2VjdGlvbiBwYXBlci1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDVweDtcbiAgICAgIH1cblxuICAgICAgLnNpZGViYXItc2VjdGlvbiBwYXBlci1idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5zaWRlYmFyLXNlY3Rpb24gcGFwZXItYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAuc2lkZWJhci1zZWN0aW9uID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICB9XG5cbiAgICAgIC5zaWRlYmFyLXNlY3Rpb24gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAuc2lkZWJhci1zZWN0aW9uIGgzIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgNXB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgcGFwZXItY2hlY2tib3gge1xuICAgICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTtcbiAgICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tdGItbGluayk7XG4gICAgICB9XG5cbiAgICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS10Yi1saW5rLXZpc2l0ZWQpO1xuICAgICAgfVxuICAifSk7Y29uc3Qgbmw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtmdW5jdGlvbiBpbCh0KXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9tYXliZVNldERhcmtNb2RlKCksdGhpcy5vYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcigodD0+e3Quc29tZSgodD0+ImNsYXNzIj09PXQuYXR0cmlidXRlTmFtZSkpJiZ0aGlzLl9tYXliZVNldERhcmtNb2RlKCl9KSksdGhpcy5vYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHkse2F0dHJpYnV0ZXM6ITB9KX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3ZhciB0O3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksbnVsbD09PSh0PXRoaXMub2JzZXJ2ZXIpfHx2b2lkIDA9PT10fHx0LmRpc2Nvbm5lY3QoKX1fbWF5YmVTZXREYXJrTW9kZSgpe3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiZGFyay1tb2RlIixkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygiZGFyay1tb2RlIikpfX19bmwuc2V0QXR0cmlidXRlKCJpcyIsImN1c3RvbS1zdHlsZSIpLG5sLnRleHRDb250ZW50PSJcbiAgOnJvb3Qge1xuICAgIC0tdGItb3JhbmdlLXdlYWs6ICNmZmE3MjY7XG4gICAgLS10Yi1vcmFuZ2Utc3Ryb25nOiAjZjU3YzAwO1xuICAgIC0tdGItb3JhbmdlLWRhcms6ICNkYzczMjA7XG4gICAgLS10Yi1ncmV5LWRhcmtlcjogI2UyZTJlMjtcbiAgICAtLXRiLWdyZXktbGlnaHRlcjogI2YzZjNmMztcbiAgICAtLXRiLXVpLWRhcmstYWNjZW50OiAjNzU3NTc1O1xuICAgIC0tdGItdWktbGlnaHQtYWNjZW50OiAjZTBlMGUwO1xuICAgIC0tdGItdWktYm9yZGVyOiB2YXIoLS1wYXBlci1ncmV5LTMwMCk7XG4gICAgLS10Yi1ncmFwaC1mYWRlZDogI2UwZDRiMztcbiAgICAtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yOiB2YXIoLS1wYXBlci1ncmV5LTgwMCk7XG4gICAgLS10Yi1yYWlzZWQtYnV0dG9uLXNoYWRvdy1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIC0tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICNlOWU5ZTk7XG4gICAgLS10Yi1sYXlvdXQtYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgICAtLXRiLWxpbms6ICMxOTc2ZDI7IC8qIG1hdGVyaWFsIGJsdWUgNzAwLiAqL1xuICAgIC0tdGItbGluay12aXNpdGVkOiAjN2IxZmEyOyAvKiBtYXRlcmlhbCBwdXJwbGUgNzAwLiAqL1xuICB9XG5cbiAgOnJvb3QgLmRhcmstbW9kZSB7XG4gICAgLS10Yi11aS1ib3JkZXI6IHZhcigtLXBhcGVyLWdyZXktNzAwKTtcbiAgICAtLXRiLXVpLWRhcmstYWNjZW50OiB2YXIoLS1wYXBlci1ncmV5LTQwMCk7XG4gICAgLS10Yi11aS1saWdodC1hY2NlbnQ6IHZhcigtLXBhcGVyLWdyZXktNjAwKTtcbiAgICAtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yOiB2YXIoLS1wYXBlci1ncmV5LTQwMCk7XG4gICAgLS10Yi1yYWlzZWQtYnV0dG9uLXNoYWRvdy1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgIC0tcHJpbWFyeS10ZXh0LWNvbG9yOiAjZmZmO1xuICAgIC0tc2Vjb25kYXJ5LXRleHQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNDAwKTtcbiAgICAtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogIzMwMzAzMDsgIC8qIG1hdGVyaWFsIGdyZXkgQTQwMC4gKi9cbiAgICAtLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAjM2EzYTNhO1xuICAgIC0tdGItbGF5b3V0LWJhY2tncm91bmQtY29sb3I6ICMzYTNhM2E7XG4gICAgLS10Yi1saW5rOiAjNDJhNWY1OyAvKiBtYXRlcmlhbCBibHVlIDQwMC4gKi9cbiAgICAtLXRiLWxpbmstdmlzaXRlZDogI2JhNjhjODsgLyogbWF0ZXJpYWwgcHVycGxlIDMwMC4gKi9cbiAgICAvKiBPdmVycmlkZXMgcGFwZXItbWF0ZXJpYWwgKi9cbiAgICAtLXNoYWRvdy1lbGV2YXRpb24tMmRwXy1fYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSxcbiAgICAgIDAgMXB4IDVweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMiksXG4gICAgICAwIDNweCAxcHggLTJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIH1cbiIsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChubCksZWwoe21vZHVsZU5hbWU6InNjcm9sbGJhci1zdHlsZSIsc3R5bGVDb250ZW50OiJcbiAgICAuc2Nyb2xsYmFyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgfVxuXG4gICAgLnNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1ncmV5LTUwMCk7XG4gICAgICBjb2xvcjogdmFyKC0tcGFwZXItZ3JleS05MDApO1xuICAgIH1cbiAgICAuc2Nyb2xsYmFyIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICAifSk7bGV0IHJsPWNsYXNzIGV4dGVuZHMoaWwoeWUpKXt9O3JsLnRlbXBsYXRlPV9lYAogICAgPGRpdiBpZD0ic2lkZWJhciI+CiAgICAgIDxzbG90IG5hbWU9InNpZGViYXIiPjwvc2xvdD4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImNlbnRlciI+CiAgICAgIDxzbG90IG5hbWU9ImNlbnRlciIgY2xhc3M9InNjb2xsYmFyIj48L3Nsb3Q+CiAgICA8L2Rpdj4KICAgIDxzdHlsZSBpbmNsdWRlPSJzY3JvbGxiYXItc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIDpob3N0KC5kYXJrLW1vZGUpIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcik7CiAgICAgIH0KCiAgICAgICNzaWRlYmFyIHsKICAgICAgICBmbGV4OiAwIDAgdmFyKC0tdGYtZGFzaGJvYXJkLWxheW91dC1zaWRlYmFyLWJhc2lzLCAyNSUpOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IHZhcigtLXRmLWRhc2hib2FyZC1sYXlvdXQtc2lkZWJhci1tYXgtd2lkdGgsIDM1MHB4KTsKICAgICAgICBtaW4td2lkdGg6IHZhcigtLXRmLWRhc2hib2FyZC1sYXlvdXQtc2lkZWJhci1taW4td2lkdGgsIDI3MHB4KTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAjY2VudGVyIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIDo6c2xvdHRlZChbc2xvdD0nY2VudGVyJ10pIHsKICAgICAgICBjb250YWluOiBzdHJpY3Q7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KCiAgICAgIC50Zi1ncmFwaC1kYXNoYm9hcmQgI2NlbnRlciB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHJsPXQoW2koInRmLWRhc2hib2FyZC1sYXlvdXQiKV0scmwpO2NvbnN0IG9sPSJURi5UZW5zb3JCb2FyZC5QYWdpbmF0ZWRWaWV3LmxpbWl0IjtsZXQgYWw9bnVsbDtjb25zdCBzbD1uZXcgU2V0O2Z1bmN0aW9uIGxsKHQpe3NsLmFkZCh0KX1mdW5jdGlvbiBjbCh0KXtzbC5kZWxldGUodCl9ZnVuY3Rpb24gdWwoKXtyZXR1cm4gbnVsbD09YWwmJihhbD1VcyhvbCx7dXNlTG9jYWxTdG9yYWdlOiEwfSksKG51bGw9PWFsfHwhaXNGaW5pdGUoYWwpfHxhbDw9MCkmJihhbD0xMikpLGFsfWNsYXNzIGhsIGV4dGVuZHMgeWV7dXBkYXRlQXJyYXlQcm9wKHQsZSxuKXtsZXQgaT10aGlzLmdldCh0KTtjb25zdCByPWU7aWYoIUFycmF5LmlzQXJyYXkocikpdGhyb3cgUmFuZ2VFcnJvcihgRXhwZWN0ZWQgbmV3IHZhbHVlIHRvICcke3R9JyB0byBiZSBhbiBhcnJheS5gKTtBcnJheS5pc0FycmF5KGkpfHwoaT1bXSx0aGlzLnNldCh0LGkpKTtjb25zdCBvPW5ldyBTZXQoci5tYXAoKCh0LGUpPT5uKHQsZSkpKSk7bGV0IGE9MCxzPTA7Zm9yKDthPGkubGVuZ3RoJiZzPHIubGVuZ3RoOylvLmhhcyhuKGlbYV0sYSkpPyhuKGlbYV0sYSk9PW4ocltzXSxzKT90aGlzLnNldChgJHt0fS4ke2F9YCxyW3NdKTp0aGlzLnNwbGljZSh0LGEsMCxyW3NdKSxzKyssYSsrKTp0aGlzLnNwbGljZSh0LGEsMSk7YTxpLmxlbmd0aCYmdGhpcy5zcGxpY2UodCxhKSxzPHIubGVuZ3RoJiZ0aGlzLnB1c2godCwuLi5yLnNsaWNlKHMpKX19Y2xhc3MgZGwgZXh0ZW5kcyBobHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5hcz0iaXRlbSIsdGhpcy5fY29udGVudEFjdGl2ZT0hMCx0aGlzLl9kb21Cb290c3RyYXBwZWQ9ITEsdGhpcy5fY3Rvcj1udWxsLHRoaXMuX3JlbmRlcmVkSXRlbXM9W10sdGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3Q9bmV3IE1hcCx0aGlzLl9scnVDYWNoZWRJdGVtcz1uZXcgTWFwLHRoaXMuX2NhY2hlU2l6ZT0xMCx0aGlzLl9nZXRJdGVtS2V5PXQ9PkpTT04uc3RyaW5naWZ5KHQpLHRoaXMuX2lzQ29ubmVjdGVkPSExfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9pc0Nvbm5lY3RlZD0hMH1zZXRDYWNoZVNpemUodCl7dGhpcy5fY2FjaGVTaXplPXR9c2V0R2V0SXRlbUtleSh0KXt0aGlzLl9nZXRJdGVtS2V5PXR9dXBkYXRlRG9tKHQpe3RoaXMudXBkYXRlQXJyYXlQcm9wKCJfcmVuZGVyZWRJdGVtcyIsdCx0aGlzLl9nZXRJdGVtS2V5KX1fZW5zdXJlVGVtcGxhdGl6ZWQoKXtpZighdGhpcy5pc0Nvbm5lY3RlZClyZXR1cm4hMTtpZighdGhpcy5fY3Rvcil7Y29uc3QgdD10aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIik7dGhpcy5fY3Rvcj0kcih0LHRoaXMse3BhcmVudE1vZGVsOiEwLGluc3RhbmNlUHJvcHM6e1t0aGlzLmFzXTohMCxhY3RpdmU6dGhpcy5fY29udGVudEFjdGl2ZX0sZm9yd2FyZEhvc3RQcm9wOmZ1bmN0aW9uKHQsZSl7dGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3QuZm9yRWFjaCgobj0+e24uZm9yd2FyZEhvc3RQcm9wKHQsZSl9KSl9fSl9cmV0dXJuITB9X2Jvb3RzdHJhcERvbSgpe3RoaXMuX2Vuc3VyZVRlbXBsYXRpemVkKCkmJiF0aGlzLl9kb21Cb290c3RyYXBwZWQmJihuZXcgTXV0YXRpb25PYnNlcnZlcigodD0+e2Zvcihjb25zdCBlIG9mIHQpaWYoImNoaWxkTGlzdCI9PT1lLnR5cGUpZm9yKGNvbnN0IHQgb2YgQXJyYXkuZnJvbShlLmFkZGVkTm9kZXMpKXQgaW5zdGFuY2VvZiBFbGVtZW50JiZ0LnNldEF0dHJpYnV0ZSgic2xvdCIsIml0ZW1zIil9KSkub2JzZXJ2ZSh0aGlzLHtjaGlsZExpc3Q6ITB9KSxBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pnt0aGlzLnJlbW92ZUNoaWxkKHQpfSkpLHRoaXMuX2xydUNhY2hlZEl0ZW1zLmNsZWFyKCksdGhpcy5fcmVuZGVyZWRJdGVtcy5mb3JFYWNoKCgodCxlKT0+dGhpcy5faW5zZXJ0SXRlbSh0LGUpKSksdGhpcy5fZG9tQm9vdHN0cmFwcGVkPSEwKX1fdXBkYXRlQWN0aXZlKCl7dGhpcy5fZG9tQm9vdHN0cmFwcGVkJiZBcnJheS5mcm9tKHRoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LnZhbHVlcygpKS5mb3JFYWNoKCh0PT57dC5ub3RpZnlQYXRoKCJhY3RpdmUiLHRoaXMuX2NvbnRlbnRBY3RpdmUpfSkpfV91cGRhdGVEb20odCl7aWYodGhpcy5fZG9tQm9vdHN0cmFwcGVkJiYiX3JlbmRlcmVkSXRlbXMiIT10LnBhdGgmJiJfcmVuZGVyZWRJdGVtcy5sZW5ndGgiIT10LnBhdGgpaWYoIl9yZW5kZXJlZEl0ZW1zLnNwbGljZXMiPT09dC5wYXRoKXQudmFsdWUuaW5kZXhTcGxpY2VzLmZvckVhY2goKHQ9Pntjb25zdHtpbmRleDplLGFkZGVkQ291bnQ6bixvYmplY3Q6aSxyZW1vdmVkOnJ9PXQ7ci5mb3JFYWNoKCh0PT57dGhpcy5fcmVtb3ZlSXRlbSh0LHRoaXMuY2hpbGRyZW5bZV0pfSkpLGkuc2xpY2UoZSxlK24pLmZvckVhY2goKCh0LG4pPT50aGlzLl9pbnNlcnRJdGVtKHQsZStuKSkpLHRoaXMuX3RyaW1DYWNoZSgpfSkpO2Vsc2V7Y29uc3QgZT10aGlzLl9nZXRJdGVtS2V5KHQudmFsdWUpO3RoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LmhhcyhlKT90aGlzLl9yZW5kZXJlZFRlbXBsYXRlSW5zdC5nZXQoZSkubm90aWZ5UGF0aCh0aGlzLmFzLHQudmFsdWUpOmNvbnNvbGUud2FybihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGV4aXN0IGluIHRoZSBET00gYnV0IGNvdWxkIG5vdCBmaW5kIG9uZS5gKX19X2luc2VydEl0ZW0odCxlKXtpZighdGhpcy5fZW5zdXJlVGVtcGxhdGl6ZWQoKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHRlbXBsYXRpemVkIGJlZm9yZSBpbnNlcnRpbmcgYW4gaXRlbSIpO2xldCBuO2NvbnN0IGk9dGhpcy5fZ2V0SXRlbUtleSh0KTtpZih0aGlzLl9scnVDYWNoZWRJdGVtcy5oYXMoaSkpbj10aGlzLl9scnVDYWNoZWRJdGVtcy5nZXQoaSksdGhpcy5fbHJ1Q2FjaGVkSXRlbXMuZGVsZXRlKGkpLHRoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LmdldChpKS5ub3RpZnlQYXRoKCJhY3RpdmUiLHRoaXMuX2NvbnRlbnRBY3RpdmUpO2Vsc2V7Y29uc3QgZT1uZXcgdGhpcy5fY3Rvcih7W3RoaXMuYXNdOnQsYWN0aXZlOnRoaXMuX2NvbnRlbnRBY3RpdmV9KTtuPWUucm9vdCx0aGlzLl9yZW5kZXJlZFRlbXBsYXRlSW5zdC5zZXQoaSxlKX10aGlzLmNoaWxkcmVuW2VdP3RoaXMuaW5zZXJ0QmVmb3JlKG4sdGhpcy5jaGlsZHJlbltlXSk6KChuLm5vZGVUeXBlPT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU/QXJyYXkuZnJvbShuLmNoaWxkcmVuKTpbbl0pLmZvckVhY2goKHQ9PnQuc2V0QXR0cmlidXRlKCJzbG90IiwiaXRlbXMiKSkpLHRoaXMuYXBwZW5kQ2hpbGQobikpfV9yZW1vdmVJdGVtKHQsZSl7ZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSk7Y29uc3Qgbj10aGlzLl9nZXRJdGVtS2V5KHQpO3RoaXMuX2xydUNhY2hlZEl0ZW1zLnNldChuLGUpLHRoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LmdldChuKS5ub3RpZnlQYXRoKCJhY3RpdmUiLCExKX1fdHJpbUNhY2hlKCl7Zm9yKDt0aGlzLl9scnVDYWNoZWRJdGVtcy5zaXplPnRoaXMuX2NhY2hlU2l6ZTspe2NvbnN0W3RdPXRoaXMuX2xydUNhY2hlZEl0ZW1zLmtleXMoKTt0aGlzLl9scnVDYWNoZWRJdGVtcy5kZWxldGUodCksdGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3QuZGVsZXRlKHQpfX19dChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZGwucHJvdG90eXBlLCJhcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZGwucHJvdG90eXBlLCJpdGVtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGRsLnByb3RvdHlwZSwiX2NvbnRlbnRBY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGRsLnByb3RvdHlwZSwiX2RvbUJvb3RzdHJhcHBlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxkbC5wcm90b3R5cGUsIl9jdG9yIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxkbC5wcm90b3R5cGUsIl9yZW5kZXJlZEl0ZW1zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGRsLnByb3RvdHlwZSwiX3JlbmRlcmVkVGVtcGxhdGVJbnN0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGRsLnByb3RvdHlwZSwiX2xydUNhY2hlZEl0ZW1zIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGRsLnByb3RvdHlwZSwiX2NhY2hlU2l6ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxkbC5wcm90b3R5cGUsIl9nZXRJdGVtS2V5Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxkbC5wcm90b3R5cGUsIl9pc0Nvbm5lY3RlZCIsdm9pZCAwKSx0KFthKCJfaXNDb25uZWN0ZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGRsLnByb3RvdHlwZSwiX2Jvb3RzdHJhcERvbSIsbnVsbCksdChbYSgiX2NvbnRlbnRBY3RpdmUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGRsLnByb3RvdHlwZSwiX3VwZGF0ZUFjdGl2ZSIsbnVsbCksdChbYSgiX3JlbmRlcmVkSXRlbXMuKiIsIl9kb21Cb290c3RyYXBwZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbT2JqZWN0XSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGRsLnByb3RvdHlwZSwiX3VwZGF0ZURvbSIsbnVsbCksdChbYSgiX2NhY2hlU2l6ZSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sZGwucHJvdG90eXBlLCJfdHJpbUNhY2hlIixudWxsKTtsZXQgcGw9Y2xhc3MgZXh0ZW5kcyBkbHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5kaXNhYmxlUGFnaW5hdGlvbj0hMSx0aGlzLmdldENhdGVnb3J5SXRlbUtleT10PT5KU09OLnN0cmluZ2lmeSh0KSx0aGlzLl9saW1pdD0xMix0aGlzLl9hY3RpdmVJbmRleD0wLHRoaXMuX3BhZ2VJbnB1dFJhd1ZhbHVlPSIiLHRoaXMuX3BhZ2VJbnB1dEZvY3VzZWQ9ITF9X2NvbXB1dGVDb3VudCgpe3JldHVybiB0aGlzLmNhdGVnb3J5Lml0ZW1zLmxlbmd0aH1nZXQgX2hhc011bHRpcGxlKCl7cmV0dXJuIHRoaXMuX2NvdW50PjF9X3RvZ2dsZVBhbmUoKXt0aGlzLm9wZW5lZD0hdGhpcy5vcGVuZWR9X2NoYW5nZUNvbnRlbnRBY3RpdmUodCl7dGhpcy5fY29udGVudEFjdGl2ZT10fV9vblBhbmVSZW5kZXJlZENoYW5nZWQodCxlKXt0JiZ0IT09ZSYmdGhpcy4kLmlmUmVuZGVyZWQucmVuZGVyKCl9X2NvbXB1dGVQYW5lUmVuZGVyZWQodCl7cmV0dXJuISh0Lm1ldGFkYXRhLnR5cGU9PT1ici5TRUFSQ0hfUkVTVUxUUyYmIiI9PT10Lm5hbWUpfWdldCBfaXRlbXNSZW5kZXJlZCgpe3JldHVybiB0aGlzLl9wYW5lUmVuZGVyZWQmJnRoaXMub3BlbmVkfV9jb21wdXRlSXNTZWFyY2hSZXN1bHRzKHQpe3JldHVybiB0PT09YnIuU0VBUkNIX1JFU1VMVFN9X2NvbXB1dGVJc0ludmFsaWRTZWFyY2hSZXN1bHRzKHQpe3JldHVybiB0LnR5cGU9PT1ici5TRUFSQ0hfUkVTVUxUUyYmIXQudmFsaWRSZWdleH1fY29tcHV0ZUlzVW5pdmVyc2FsU2VhcmNoUXVlcnkodCl7cmV0dXJuIHQudHlwZT09PWJyLlNFQVJDSF9SRVNVTFRTJiZ0LnVuaXZlcnNhbFJlZ2V4fV9pc0NvbXBvc2l0ZVNlYXJjaCgpe2NvbnN0e3R5cGU6dCxjb21wb3NpdGVTZWFyY2g6ZX09dGhpcy5jYXRlZ29yeS5tZXRhZGF0YTtyZXR1cm4gZSYmdD09PWJyLlNFQVJDSF9SRVNVTFRTfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLm9wZW5lZD1udWxsPT10aGlzLmluaXRpYWxPcGVuZWR8fHRoaXMuaW5pdGlhbE9wZW5lZCx0aGlzLl9saW1pdExpc3RlbmVyPSgpPT57dGhpcy5zZXQoIl9saW1pdCIsdWwoKSl9LGxsKHRoaXMuX2xpbWl0TGlzdGVuZXIpLHRoaXMuX2xpbWl0TGlzdGVuZXIoKX1kZXRhY2hlZCgpe2NsKHRoaXMuX2xpbWl0TGlzdGVuZXIpfV91cGRhdGVSZW5kZXJlZEl0ZW1zKCl7dmFyIHQ9dGhpcy5fbGltaXQsZT10aGlzLmRpc2FibGVQYWdpbmF0aW9uO2lmKCF0aGlzLl9pdGVtc1JlbmRlcmVkKXJldHVybjtjb25zdCBuPU1hdGguZmxvb3IodGhpcy5fYWN0aXZlSW5kZXgvdCksaT10aGlzLmNhdGVnb3J5Lml0ZW1zfHxbXSxyPWU/aTppLnNsaWNlKG4qdCwobisxKSp0KTt0aGlzLnVwZGF0ZURvbShyKX1fbGltaXRDaGFuZ2VkKHQpe3RoaXMuc2V0Q2FjaGVTaXplKDIqdCl9X2dldENhdGVnb3J5SXRlbUtleUNoYW5nZWQoKXt0aGlzLnNldEdldEl0ZW1LZXkodGhpcy5nZXRDYXRlZ29yeUl0ZW1LZXkpfWdldCBfY3VycmVudFBhZ2UoKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLl9hY3RpdmVJbmRleC90aGlzLl9saW1pdCkrMX1fY29tcHV0ZVBhZ2VDb3VudCh0LGUpe3JldHVybiB0aGlzLmNhdGVnb3J5P01hdGguY2VpbCh0aGlzLmNhdGVnb3J5Lml0ZW1zLmxlbmd0aC9lKTowfWdldCBfbXVsdGlwbGVQYWdlc0V4aXN0KCl7cmV0dXJuIXRoaXMuZGlzYWJsZVBhZ2luYXRpb24mJnRoaXMuX3BhZ2VDb3VudD4xfWdldCBfaGFzUHJldmlvdXNQYWdlKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRQYWdlPjF9Z2V0IF9oYXNOZXh0UGFnZSgpe3JldHVybiB0aGlzLl9jdXJyZW50UGFnZTx0aGlzLl9wYWdlQ291bnR9X2NvbXB1dGVJbnB1dFdpZHRoKHQpe3JldHVybmBjYWxjKCR7dC50b1N0cmluZygpLmxlbmd0aH1lbSArIDIwcHgpYH1fc2V0QWN0aXZlSW5kZXgodCl7Y29uc3QgZT0odGhpcy5jYXRlZ29yeS5pdGVtc3x8W10pLmxlbmd0aC0xO3Q+ZSYmKHQ9ZSksdDwwJiYodD0wKSx0aGlzLnNldCgiX2FjdGl2ZUluZGV4Iix0KX1fY2xhbXBBY3RpdmVJbmRleCgpe3RoaXMuX3NldEFjdGl2ZUluZGV4KHRoaXMuX2FjdGl2ZUluZGV4KX1fcGVyZm9ybVByZXZpb3VzUGFnZSgpe3RoaXMuX3NldEFjdGl2ZUluZGV4KHRoaXMuX2FjdGl2ZUluZGV4LXRoaXMuX2xpbWl0KX1fcGVyZm9ybU5leHRQYWdlKCl7dGhpcy5fc2V0QWN0aXZlSW5kZXgodGhpcy5fYWN0aXZlSW5kZXgrdGhpcy5fbGltaXQpfV9jb21wdXRlUGFnZUlucHV0VmFsdWUodCxlLG4pe3JldHVybiB0P2U6bi50b1N0cmluZygpfV9oYW5kbGVQYWdlSW5wdXRFdmVudCh0KXt0aGlzLnNldCgiX3BhZ2VJbnB1dFJhd1ZhbHVlIix0LnRhcmdldC52YWx1ZSk7Y29uc3QgZT1OdW1iZXIodC50YXJnZXQudmFsdWV8fE5hTik7aWYoaXNOYU4oZSkpcmV0dXJuO2NvbnN0IG49TWF0aC5tYXgoMSxNYXRoLm1pbihlLHRoaXMuX3BhZ2VDb3VudCkpLTE7dGhpcy5fc2V0QWN0aXZlSW5kZXgodGhpcy5fbGltaXQqbil9X2hhbmRsZVBhZ2VDaGFuZ2VFdmVudCgpe3RoaXMuc2V0KCJfcGFnZUlucHV0UmF3VmFsdWUiLHRoaXMuX2N1cnJlbnRQYWdlLnRvU3RyaW5nKCkpfV9oYW5kbGVQYWdlRm9jdXNFdmVudCgpe3RoaXMuc2V0KCJfcGFnZUlucHV0UmF3VmFsdWUiLHRoaXMuX3BhZ2VJbnB1dFZhbHVlKSx0aGlzLnNldCgiX3BhZ2VJbnB1dEZvY3VzZWQiLCEwKX1faGFuZGxlUGFnZUJsdXJFdmVudCgpe3RoaXMuc2V0KCJfcGFnZUlucHV0Rm9jdXNlZCIsITEpfV91cGRhdGVQYWdlSW5wdXRWYWx1ZSh0KXtjb25zdCBlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIjcGFnZS1pbnB1dCBpbnB1dCIpO2UmJihlLnZhbHVlPXQpfV91cGRhdGVJbnB1dFdpZHRoKCl7dGhpcy51cGRhdGVTdHlsZXMoeyItLXRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3LXBhZ2UtaW5wdXQtd2lkdGgiOnRoaXMuX2lucHV0V2lkdGh9KX19O3BsLnRlbXBsYXRlPV9lYAogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19wYW5lUmVuZGVyZWRdXSIgaWQ9ImlmUmVuZGVyZWQiPgogICAgICA8YnV0dG9uIGNsYXNzPSJoZWFkaW5nIiBvbi10YXA9Il90b2dnbGVQYW5lIiBvcGVuLWJ1dHRvbiQ9Iltbb3BlbmVkXV0iPgogICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNTZWFyY2hSZXN1bHRzXV0iPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzQ29tcG9zaXRlU2VhcmNoKGNhdGVnb3J5KV1dIj4KICAgICAgICAgICAgICA8c3Bhbj5UYWdzIG1hdGNoaW5nIG11bHRpcGxlIGV4cGVyaW1lbnRzPC9zcGFuPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNJbnZhbGlkU2VhcmNoUmVzdWx0c11dIj4KICAgICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICAgID4mbmJzcDs8c3Ryb25nPihtYWxmb3JtZWQgcmVndWxhciBleHByZXNzaW9uKTwvc3Ryb25nPjwvc3BhbgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2lzQ29tcG9zaXRlU2VhcmNoKGNhdGVnb3J5KV1dIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGlnaHQiPlRhZ3MgbWF0Y2hpbmcgLzwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktbmFtZSIgdGl0bGUkPSJbW2NhdGVnb3J5Lm5hbWVdXSIKICAgICAgICAgICAgICAgID5bW2NhdGVnb3J5Lm5hbWVdXTwvc3BhbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGlnaHQiPi88L3NwYW4+CiAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1VuaXZlcnNhbFNlYXJjaFF1ZXJ5XV0iPgogICAgICAgICAgICAgICAgPHNwYW4+IChhbGwgdGFncyk8L3NwYW4+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzSW52YWxpZFNlYXJjaFJlc3VsdHNdXSI+CiAgICAgICAgICAgICAgICA8c3Bhbj4gPHN0cm9uZz4obWFsZm9ybWVkIHJlZ3VsYXIgZXhwcmVzc2lvbik8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9pc1NlYXJjaFJlc3VsdHNdXSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS1uYW1lIiB0aXRsZSQ9IltbY2F0ZWdvcnkubmFtZV1dIgogICAgICAgICAgICAgID5bW2NhdGVnb3J5Lm5hbWVdXTwvc3BhbgogICAgICAgICAgICA+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iY291bnQiPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZV1dIj4KICAgICAgICAgICAgPHNwYW4+W1tfY291bnRdXTwvc3Bhbj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8aXJvbi1pY29uIGljb249ImV4cGFuZC1tb3JlIiBjbGFzcz0iZXhwYW5kLWFycm93Ij48L2lyb24taWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvYnV0dG9uPgogICAgICA8IS0tIFRPRE8oc3RlcGhhbndsZWUpOiBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLiBGb3Igc29tZSByZWFzb24sCiAgICAgICAgdHJhbnNpdGlvbmVuZCB0aGF0IHRoZSBpcm9uLWNvbGxhcHNlIHJlbGllcyBvbiBzb21ldGltZXMgZG9lcyBub3QKICAgICAgICB0cmlnZ2VyIHdoZW4gcmVuZGVyaW5nIGEgY2hhcnQgd2l0aCBhIHNwaW5uZXIuIEEgdG95IGV4YW1wbGUgY2Fubm90CiAgICAgICAgcmVwcm9kdWNlIHRoaXMgYnVnLiAtLT4KICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJbW29wZW5lZF1dIiBuby1hbmltYXRpb249IiI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICA8c3BhbiBpZD0idG9wLW9mLWNvbnRhaW5lciI+PC9zcGFuPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19tdWx0aXBsZVBhZ2VzRXhpc3RdXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJpZy1wYWdlLWJ1dHRvbnMiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxMHB4OyI+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICAgICAgb24tdGFwPSJfcGVyZm9ybVByZXZpb3VzUGFnZSIKICAgICAgICAgICAgICAgIGRpc2FibGVkJD0iW1shX2hhc1ByZXZpb3VzUGFnZV1dIgogICAgICAgICAgICAgICAgPlByZXZpb3VzIHBhZ2U8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBvbi10YXA9Il9wZXJmb3JtTmV4dFBhZ2UiCiAgICAgICAgICAgICAgICBkaXNhYmxlZCQ9IltbIV9oYXNOZXh0UGFnZV1dIgogICAgICAgICAgICAgICAgPk5leHQgcGFnZTwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CgogICAgICAgICAgPGRpdiBpZD0iaXRlbXMiPgogICAgICAgICAgICA8c2xvdCBuYW1lPSJpdGVtcyI+PC9zbG90PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX211bHRpcGxlUGFnZXNFeGlzdF1dIj4KICAgICAgICAgICAgPGRpdiBpZD0iY29udHJvbHMtY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDAgNXB4Ij4KICAgICAgICAgICAgICAgIFBhZ2UKICAgICAgICAgICAgICAgIDxwYXBlci1pbnB1dAogICAgICAgICAgICAgICAgICBpZD0icGFnZS1pbnB1dCIKICAgICAgICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgICAgICAgICAgICBuby1sYWJlbC1mbG9hdD0iIgogICAgICAgICAgICAgICAgICBtaW49IjEiCiAgICAgICAgICAgICAgICAgIG1heD0iW1tfcGFnZUNvdW50XV0iCiAgICAgICAgICAgICAgICAgIHZhbHVlPSJbW19wYWdlSW5wdXRWYWx1ZV1dIgogICAgICAgICAgICAgICAgICBvbi1pbnB1dD0iX2hhbmRsZVBhZ2VJbnB1dEV2ZW50IgogICAgICAgICAgICAgICAgICBvbi1jaGFuZ2U9Il9oYW5kbGVQYWdlQ2hhbmdlRXZlbnQiCiAgICAgICAgICAgICAgICAgIG9uLWZvY3VzPSJfaGFuZGxlUGFnZUZvY3VzRXZlbnQiCiAgICAgICAgICAgICAgICAgIG9uLWJsdXI9Il9oYW5kbGVQYWdlQmx1ckV2ZW50IgogICAgICAgICAgICAgICAgPjwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgICAgICBvZiBbW19wYWdlQ291bnRdXQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJpZy1wYWdlLWJ1dHRvbnMiIHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICAgICAgb24tdGFwPSJfcGVyZm9ybVByZXZpb3VzUGFnZSIKICAgICAgICAgICAgICAgIGRpc2FibGVkJD0iW1shX2hhc1ByZXZpb3VzUGFnZV1dIgogICAgICAgICAgICAgICAgPlByZXZpb3VzIHBhZ2U8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBvbi10YXA9Il9wZXJmb3JtTmV4dFBhZ2UiCiAgICAgICAgICAgICAgICBkaXNhYmxlZCQ9IltbIV9oYXNOZXh0UGFnZV1dIgogICAgICAgICAgICAgICAgPk5leHQgcGFnZTwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgIDwvdGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDAgNXB4IDFweCAxMHB4OwogICAgICB9CgogICAgICA6aG9zdCg6Zmlyc3Qtb2YtdHlwZSkgewogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KDpsYXN0LW9mLXR5cGUpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggdmFyKC0tdGItcmFpc2VkLWJ1dHRvbi1zaGFkb3ctY29sb3IpOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9CgogICAgICAuaGVhZGluZzo6LW1vei1mb2N1cy1pbm5lciB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICB9CgogICAgICBbb3Blbi1idXR0b25dIHsKICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgW29wZW4tYnV0dG9uXSAuZXhwYW5kLWFycm93IHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKTsKICAgICAgfQoKICAgICAgLm5hbWUgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5saWdodCB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNTAwKTsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LW5hbWUgewogICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBwYWRkaW5nOiAycHggMDsKICAgICAgfQoKICAgICAgLmNvdW50IHsKICAgICAgICBtYXJnaW46IDAgNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItZ3JleS01MDApOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBmbGV4OiBub25lOwogICAgICB9CgogICAgICAuaGVhZGluZzo6LW1vei1mb2N1cy1pbm5lciB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcik7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMnB4OwogICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHg7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGVkZWRlOwogICAgICAgIHBhZGRpbmc6IDE1cHg7CiAgICAgIH0KCiAgICAgIC5saWdodCB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNTAwKTsKICAgICAgfQoKICAgICAgI2NvbnRyb2xzLWNvbnRhaW5lciB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgI2NvbnRyb2xzLWNvbnRhaW5lciBwYXBlci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmJpZy1wYWdlLWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC5iaWctcGFnZS1idXR0b25zIHBhcGVyLWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTsKICAgICAgICBjb2xvcjogdmFyKC0tdGItdWktZGFyay1hY2NlbnQpOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBmbGV4LWJhc2lzOiAwOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5iaWctcGFnZS1idXR0b25zIHBhcGVyLWJ1dHRvbltkaXNhYmxlZF0gewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIHNsb3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KCiAgICAgIDo6c2xvdHRlZChbc2xvdD0naXRlbXMnXSkgewogICAgICAgIC8qIFRvb2x0aXAgZm9yIGRlc2NyaXB0aW9ucyBhbmQgb3RoZXJzIGJyZWFrIHdpdGggbW9yZSBzdHJpY3Qgb25lcy4gKi8KICAgICAgICBjb250YWluOiBzdHlsZTsKICAgICAgfQoKICAgICAgI3BhZ2UtaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogdmFyKC0tdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXctcGFnZS1pbnB1dC13aWR0aCwgMTAwJSk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxwbC5wcm90b3R5cGUsImNhdGVnb3J5Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scGwucHJvdG90eXBlLCJpbml0aWFsT3BlbmVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHBsLnByb3RvdHlwZSwib3BlbmVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scGwucHJvdG90eXBlLCJkaXNhYmxlUGFnaW5hdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixjb21wdXRlZDoiX2NvbXB1dGVDb3VudChjYXRlZ29yeS5pdGVtcy4qKSJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0scGwucHJvdG90eXBlLCJfY291bnQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLGNvbXB1dGVkOiJfY29tcHV0ZVBhbmVSZW5kZXJlZChjYXRlZ29yeSkiLG9ic2VydmVyOiJfb25QYW5lUmVuZGVyZWRDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scGwucHJvdG90eXBlLCJfcGFuZVJlbmRlcmVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixjb21wdXRlZDoiX2NvbXB1dGVJc1NlYXJjaFJlc3VsdHMoY2F0ZWdvcnkubWV0YWRhdGEudHlwZSkifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxwbC5wcm90b3R5cGUsIl9pc1NlYXJjaFJlc3VsdHMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLGNvbXB1dGVkOiJfY29tcHV0ZUlzSW52YWxpZFNlYXJjaFJlc3VsdHMoY2F0ZWdvcnkubWV0YWRhdGEpIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scGwucHJvdG90eXBlLCJfaXNJbnZhbGlkU2VhcmNoUmVzdWx0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sY29tcHV0ZWQ6Il9jb21wdXRlSXNVbml2ZXJzYWxTZWFyY2hRdWVyeShjYXRlZ29yeS5tZXRhZGF0YSkifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxwbC5wcm90b3R5cGUsIl9pc1VuaXZlcnNhbFNlYXJjaFF1ZXJ5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfZ2V0Q2F0ZWdvcnlJdGVtS2V5Q2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0scGwucHJvdG90eXBlLCJnZXRDYXRlZ29yeUl0ZW1LZXkiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsb2JzZXJ2ZXI6Il9saW1pdENoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLHBsLnByb3RvdHlwZSwiX2xpbWl0Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLHBsLnByb3RvdHlwZSwiX2FjdGl2ZUluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLGNvbXB1dGVkOiJfY29tcHV0ZVBhZ2VDb3VudChjYXRlZ29yeS5pdGVtcy4qLCBfbGltaXQpIn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxwbC5wcm90b3R5cGUsIl9wYWdlQ291bnQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsY29tcHV0ZWQ6Il9jb21wdXRlSW5wdXRXaWR0aChfcGFnZUNvdW50KSIsb2JzZXJ2ZXI6Il91cGRhdGVJbnB1dFdpZHRoIn0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxwbC5wcm90b3R5cGUsIl9pbnB1dFdpZHRoIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLGNvbXB1dGVkOiJfY29tcHV0ZVBhZ2VJbnB1dFZhbHVlKF9wYWdlSW5wdXRGb2N1c2VkLCBfcGFnZUlucHV0UmF3VmFsdWUsIF9jdXJyZW50UGFnZSkiLG9ic2VydmVyOiJfdXBkYXRlUGFnZUlucHV0VmFsdWUifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHBsLnByb3RvdHlwZSwiX3BhZ2VJbnB1dFZhbHVlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHBsLnByb3RvdHlwZSwiX3BhZ2VJbnB1dFJhd1ZhbHVlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scGwucHJvdG90eXBlLCJfcGFnZUlucHV0Rm9jdXNlZCIsdm9pZCAwKSx0KFtzKCJfY291bnQiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0scGwucHJvdG90eXBlLCJfaGFzTXVsdGlwbGUiLG51bGwpLHQoW2EoIm9wZW5lZCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtCb29sZWFuXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHBsLnByb3RvdHlwZSwiX2NoYW5nZUNvbnRlbnRBY3RpdmUiLG51bGwpLHQoW3MoIm9wZW5lZCIsIl9wYW5lUmVuZGVyZWQiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0scGwucHJvdG90eXBlLCJfaXRlbXNSZW5kZXJlZCIsbnVsbCksdChbYSgiX2l0ZW1zUmVuZGVyZWQiLCJjYXRlZ29yeS5pdGVtcy4qIiwiX2xpbWl0IiwiX2FjdGl2ZUluZGV4IiwiX3BhZ2VDb3VudCIsImRpc2FibGVQYWdpbmF0aW9uIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxwbC5wcm90b3R5cGUsIl91cGRhdGVSZW5kZXJlZEl0ZW1zIixudWxsKSx0KFtzKCJfbGltaXQiLCJfYWN0aXZlSW5kZXgiKSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxwbC5wcm90b3R5cGUsIl9jdXJyZW50UGFnZSIsbnVsbCksdChbcygiX3BhZ2VDb3VudCIsImRpc2FibGVQYWdpbmF0aW9uIiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHBsLnByb3RvdHlwZSwiX211bHRpcGxlUGFnZXNFeGlzdCIsbnVsbCksdChbcygiX2N1cnJlbnRQYWdlIiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHBsLnByb3RvdHlwZSwiX2hhc1ByZXZpb3VzUGFnZSIsbnVsbCksdChbcygiX2N1cnJlbnRQYWdlIiwiX3BhZ2VDb3VudCIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxwbC5wcm90b3R5cGUsIl9oYXNOZXh0UGFnZSIsbnVsbCksdChbYSgiY2F0ZWdvcnkuaXRlbXMuKiIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0scGwucHJvdG90eXBlLCJfY2xhbXBBY3RpdmVJbmRleCIsbnVsbCkscGw9dChbaSgidGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXciKV0scGwpO2NsYXNzIGZse2NvbnN0cnVjdG9yKHQpe3RoaXMubGlzdGVuZXI9dH19Y2xhc3MgbWx7Y29uc3RydWN0b3IoKXt0aGlzLnJlcXVlc3RNYW5hZ2VyPW5ldyBkcigxKSx0aGlzLl9saXN0ZW5lcnM9bmV3IFNldCx0aGlzLmluaXRpYWxpemVkPSExfXJlZnJlc2goKXtyZXR1cm4gdGhpcy5sb2FkKCkudGhlbigoKCk9Pnt0aGlzLmluaXRpYWxpemVkPSEwfSkpfWFkZExpc3RlbmVyKHQpe2NvbnN0IGU9bmV3IGZsKHQpO3JldHVybiB0aGlzLl9saXN0ZW5lcnMuYWRkKGUpLGV9cmVtb3ZlTGlzdGVuZXJCeUtleSh0KXt0aGlzLl9saXN0ZW5lcnMuZGVsZXRlKHQpfWVtaXRDaGFuZ2UoKXt0aGlzLl9saXN0ZW5lcnMuZm9yRWFjaCgodD0+e3RyeXt0Lmxpc3RlbmVyKCl9Y2F0Y2godCl7fX0pKX19Y2xhc3MgZ2wgZXh0ZW5kcyBtbHtsb2FkKCl7Y29uc3QgdD1fcigpLmVudmlyb25tZW50KCk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57Y29uc3QgZT17ZGF0YUxvY2F0aW9uOnQuZGF0YV9sb2NhdGlvbix3aW5kb3dUaXRsZTp0LndpbmRvd190aXRsZX07dm9pZCAwIT09dC5leHBlcmltZW50X25hbWUmJihlLmV4cGVyaW1lbnROYW1lPXQuZXhwZXJpbWVudF9uYW1lKSx2b2lkIDAhPT10LmV4cGVyaW1lbnRfZGVzY3JpcHRpb24mJihlLmV4cGVyaW1lbnREZXNjcmlwdGlvbj10LmV4cGVyaW1lbnRfZGVzY3JpcHRpb24pLHZvaWQgMCE9PXQuY3JlYXRpb25fdGltZSYmKGUuY3JlYXRpb25UaW1lPXQuY3JlYXRpb25fdGltZSksU2UuZXhwb3J0cy5pc0VxdWFsKHRoaXMuZW52aXJvbm1lbnQsZSl8fCh0aGlzLmVudmlyb25tZW50PWUsdGhpcy5lbWl0Q2hhbmdlKCkpfSkpfWdldERhdGFMb2NhdGlvbigpe3JldHVybiB0aGlzLmVudmlyb25tZW50P3RoaXMuZW52aXJvbm1lbnQuZGF0YUxvY2F0aW9uOiIifWdldFdpbmRvd1RpdGxlKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ/dGhpcy5lbnZpcm9ubWVudC53aW5kb3dUaXRsZToiIn1nZXRFeHBlcmltZW50TmFtZSgpe3JldHVybiB0aGlzLmVudmlyb25tZW50P3RoaXMuZW52aXJvbm1lbnQuZXhwZXJpbWVudE5hbWU6IiJ9Z2V0RXhwZXJpbWVudERlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ/dGhpcy5lbnZpcm9ubWVudC5leHBlcmltZW50RGVzY3JpcHRpb246IiJ9Z2V0Q3JlYXRpb25UaW1lKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ/dGhpcy5lbnZpcm9ubWVudC5jcmVhdGlvblRpbWU6bnVsbH19Y29uc3QgX2w9bmV3IGdsO2NsYXNzIHlsIGV4dGVuZHMgbWx7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3J1bnM9W119bG9hZCgpe2NvbnN0IHQ9X3IoKS5ydW5zKCk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57U2UuZXhwb3J0cy5pc0VxdWFsKHRoaXMuX3J1bnMsdCl8fCh0aGlzLl9ydW5zPXQsdGhpcy5lbWl0Q2hhbmdlKCkpfSkpfWdldFJ1bnMoKXtyZXR1cm4gdGhpcy5fcnVucy5zbGljZSgpfX1jb25zdCB2bD1uZXcgeWw7ZnVuY3Rpb24gYmwodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24geGwodCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIGJsKHQoZSksbil9fSkodCkpLHtsZWZ0OmZ1bmN0aW9uKGUsbixpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj1lLmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTt0KGVbb10sbik8MD9pPW8rMTpyPW99cmV0dXJuIGl9LHJpZ2h0OmZ1bmN0aW9uKGUsbixpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj1lLmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTt0KGVbb10sbik+MD9yPW86aT1vKzF9cmV0dXJuIGl9fX12YXIgd2w9eGwoYmwpLFNsPXdsLnJpZ2h0LE1sPXdsLmxlZnQ7ZnVuY3Rpb24gRWwodCxlKXtyZXR1cm5bdCxlXX1mdW5jdGlvbiBUbCh0LGUsbil7dmFyIGkscixvLGEscz10Lmxlbmd0aCxsPWUubGVuZ3RoLGM9bmV3IEFycmF5KHMqbCk7Zm9yKG51bGw9PW4mJihuPUVsKSxpPW89MDtpPHM7KytpKWZvcihhPXRbaV0scj0wO3I8bDsrK3IsKytvKWNbb109bihhLGVbcl0pO3JldHVybiBjfWZ1bmN0aW9uIENsKHQpe3JldHVybiBudWxsPT09dD9OYU46K3R9ZnVuY3Rpb24gQWwodCxlKXt2YXIgbixpLHI9dC5sZW5ndGgsbz0wLGE9LTEscz0wLGw9MDtpZihudWxsPT1lKWZvcig7KythPHI7KWlzTmFOKG49Q2wodFthXSkpfHwobCs9KGk9bi1zKSoobi0ocys9aS8rK28pKSk7ZWxzZSBmb3IoOysrYTxyOylpc05hTihuPUNsKGUodFthXSxhLHQpKSl8fChsKz0oaT1uLXMpKihuLShzKz1pLysrbykpKTtpZihvPjEpcmV0dXJuIGwvKG8tMSl9ZnVuY3Rpb24ga2wodCxlKXt2YXIgbj1BbCh0LGUpO3JldHVybiBuP01hdGguc3FydChuKTpufWZ1bmN0aW9uIExsKHQsZSl7dmFyIG4saSxyLG89dC5sZW5ndGgsYT0tMTtpZihudWxsPT1lKXtmb3IoOysrYTxvOylpZihudWxsIT0obj10W2FdKSYmbj49bilmb3IoaT1yPW47KythPG87KW51bGwhPShuPXRbYV0pJiYoaT5uJiYoaT1uKSxyPG4mJihyPW4pKX1lbHNlIGZvcig7KythPG87KWlmKG51bGwhPShuPWUodFthXSxhLHQpKSYmbj49bilmb3IoaT1yPW47KythPG87KW51bGwhPShuPWUodFthXSxhLHQpKSYmKGk+biYmKGk9bikscjxuJiYocj1uKSk7cmV0dXJuW2kscl19dmFyIFBsPUFycmF5LnByb3RvdHlwZSxObD1QbC5zbGljZSxJbD1QbC5tYXA7ZnVuY3Rpb24gUmwodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIE9sKHQpe3JldHVybiB0fWZ1bmN0aW9uIHpsKHQsZSxuKXt0PSt0LGU9K2Usbj0ocj1hcmd1bWVudHMubGVuZ3RoKTwyPyhlPXQsdD0wLDEpOnI8Mz8xOituO2Zvcih2YXIgaT0tMSxyPTB8TWF0aC5tYXgoMCxNYXRoLmNlaWwoKGUtdCkvbikpLG89bmV3IEFycmF5KHIpOysraTxyOylvW2ldPXQraSpuO3JldHVybiBvfXZhciBEbD1NYXRoLnNxcnQoNTApLEJsPU1hdGguc3FydCgxMCksSGw9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIEZsKHQsZSxuKXt2YXIgaSxyLG8sYSxzPS0xO2lmKG49K24sKHQ9K3QpPT0oZT0rZSkmJm4+MClyZXR1cm5bdF07aWYoKGk9ZTx0KSYmKHI9dCx0PWUsZT1yKSwwPT09KGE9VmwodCxlLG4pKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxlPU1hdGguZmxvb3IoZS9hKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbChlLXQrMSkpOysrczxyOylvW3NdPSh0K3MpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksZT1NYXRoLmNlaWwoZSphKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbCh0LWUrMSkpOysrczxyOylvW3NdPSh0LXMpL2E7cmV0dXJuIGkmJm8ucmV2ZXJzZSgpLG99ZnVuY3Rpb24gVmwodCxlLG4pe3ZhciBpPShlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCksbz1pL01hdGgucG93KDEwLHIpO3JldHVybiByPj0wPyhvPj1EbD8xMDpvPj1CbD81Om8+PUhsPzI6MSkqTWF0aC5wb3coMTAscik6LU1hdGgucG93KDEwLC1yKS8obz49RGw/MTA6bz49Qmw/NTpvPj1IbD8yOjEpfWZ1bmN0aW9uIFVsKHQsZSxuKXt2YXIgaT1NYXRoLmFicyhlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCkpLG89aS9yO3JldHVybiBvPj1EbD9yKj0xMDpvPj1CbD9yKj01Om8+PUhsJiYocio9MiksZTx0Py1yOnJ9ZnVuY3Rpb24gamwodCl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmxvZyh0Lmxlbmd0aCkvTWF0aC5MTjIpKzF9ZnVuY3Rpb24gR2wodCxlLG4pe2lmKG51bGw9PW4mJihuPUNsKSxpPXQubGVuZ3RoKXtpZigoZT0rZSk8PTB8fGk8MilyZXR1cm4rbih0WzBdLDAsdCk7aWYoZT49MSlyZXR1cm4rbih0W2ktMV0saS0xLHQpO3ZhciBpLHI9KGktMSkqZSxvPU1hdGguZmxvb3IociksYT0rbih0W29dLG8sdCk7cmV0dXJuIGErKCtuKHRbbysxXSxvKzEsdCktYSkqKHItbyl9fWZ1bmN0aW9uIFdsKHQsZSl7dmFyIG4saSxyPXQubGVuZ3RoLG89LTE7aWYobnVsbD09ZSl7Zm9yKDsrK288cjspaWYobnVsbCE9KG49dFtvXSkmJm4+PW4pZm9yKGk9bjsrK288cjspbnVsbCE9KG49dFtvXSkmJm4+aSYmKGk9bil9ZWxzZSBmb3IoOysrbzxyOylpZihudWxsIT0obj1lKHRbb10sbyx0KSkmJm4+PW4pZm9yKGk9bjsrK288cjspbnVsbCE9KG49ZSh0W29dLG8sdCkpJiZuPmkmJihpPW4pO3JldHVybiBpfWZ1bmN0aW9uIHFsKHQpe2Zvcih2YXIgZSxuLGkscj10Lmxlbmd0aCxvPS0xLGE9MDsrK288cjspYSs9dFtvXS5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGEpOy0tcj49MDspZm9yKGU9KGk9dFtyXSkubGVuZ3RoOy0tZT49MDspblstLWFdPWlbZV07cmV0dXJuIG59ZnVuY3Rpb24gWWwodCxlKXt2YXIgbixpLHI9dC5sZW5ndGgsbz0tMTtpZihudWxsPT1lKXtmb3IoOysrbzxyOylpZihudWxsIT0obj10W29dKSYmbj49bilmb3IoaT1uOysrbzxyOyludWxsIT0obj10W29dKSYmaT5uJiYoaT1uKX1lbHNlIGZvcig7KytvPHI7KWlmKG51bGwhPShuPWUodFtvXSxvLHQpKSYmbj49bilmb3IoaT1uOysrbzxyOyludWxsIT0obj1lKHRbb10sbyx0KSkmJmk+biYmKGk9bik7cmV0dXJuIGl9ZnVuY3Rpb24gWGwodCl7aWYoIShyPXQubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIGU9LTEsbj1ZbCh0LCRsKSxpPW5ldyBBcnJheShuKTsrK2U8bjspZm9yKHZhciByLG89LTEsYT1pW2VdPW5ldyBBcnJheShyKTsrK288cjspYVtvXT10W29dW2VdO3JldHVybiBpfWZ1bmN0aW9uICRsKHQpe3JldHVybiB0Lmxlbmd0aH12YXIgS2w9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIFpsKHQpe3JldHVybiB0fXZhciBKbD0xZS02O2Z1bmN0aW9uIFFsKHQpe3JldHVybiJ0cmFuc2xhdGUoIisodCsuNSkrIiwwKSJ9ZnVuY3Rpb24gdGModCl7cmV0dXJuInRyYW5zbGF0ZSgwLCIrKHQrLjUpKyIpIn1mdW5jdGlvbiBlYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuK3QoZSl9fWZ1bmN0aW9uIG5jKHQpe3ZhciBlPU1hdGgubWF4KDAsdC5iYW5kd2lkdGgoKS0xKS8yO3JldHVybiB0LnJvdW5kKCkmJihlPU1hdGgucm91bmQoZSkpLGZ1bmN0aW9uKG4pe3JldHVybit0KG4pK2V9fWZ1bmN0aW9uIGljKCl7cmV0dXJuIXRoaXMuX19heGlzfWZ1bmN0aW9uIHJjKHQsZSl7dmFyIG49W10saT1udWxsLHI9bnVsbCxvPTYsYT02LHM9MyxsPTE9PT10fHw0PT09dD8tMToxLGM9ND09PXR8fDI9PT10PyJ4IjoieSIsdT0xPT09dHx8Mz09PXQ/UWw6dGM7ZnVuY3Rpb24gaChoKXt2YXIgZD1udWxsPT1pP2UudGlja3M/ZS50aWNrcy5hcHBseShlLG4pOmUuZG9tYWluKCk6aSxwPW51bGw9PXI/ZS50aWNrRm9ybWF0P2UudGlja0Zvcm1hdC5hcHBseShlLG4pOlpsOnIsZj1NYXRoLm1heChvLDApK3MsbT1lLnJhbmdlKCksZz0rbVswXSsuNSxfPSttW20ubGVuZ3RoLTFdKy41LHk9KGUuYmFuZHdpZHRoP25jOmVjKShlLmNvcHkoKSksdj1oLnNlbGVjdGlvbj9oLnNlbGVjdGlvbigpOmgsYj12LnNlbGVjdEFsbCgiLmRvbWFpbiIpLmRhdGEoW251bGxdKSx4PXYuc2VsZWN0QWxsKCIudGljayIpLmRhdGEoZCxlKS5vcmRlcigpLHc9eC5leGl0KCksUz14LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJ0aWNrIiksTT14LnNlbGVjdCgibGluZSIpLEU9eC5zZWxlY3QoInRleHQiKTtiPWIubWVyZ2UoYi5lbnRlcigpLmluc2VydCgicGF0aCIsIi50aWNrIikuYXR0cigiY2xhc3MiLCJkb21haW4iKS5hdHRyKCJzdHJva2UiLCJjdXJyZW50Q29sb3IiKSkseD14Lm1lcmdlKFMpLE09TS5tZXJnZShTLmFwcGVuZCgibGluZSIpLmF0dHIoInN0cm9rZSIsImN1cnJlbnRDb2xvciIpLmF0dHIoYysiMiIsbCpvKSksRT1FLm1lcmdlKFMuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZmlsbCIsImN1cnJlbnRDb2xvciIpLmF0dHIoYyxsKmYpLmF0dHIoImR5IiwxPT09dD8iMGVtIjozPT09dD8iMC43MWVtIjoiMC4zMmVtIikpLGghPT12JiYoYj1iLnRyYW5zaXRpb24oaCkseD14LnRyYW5zaXRpb24oaCksTT1NLnRyYW5zaXRpb24oaCksRT1FLnRyYW5zaXRpb24oaCksdz13LnRyYW5zaXRpb24oaCkuYXR0cigib3BhY2l0eSIsSmwpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PXkodCkpP3UodCk6dGhpcy5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpfSkpLFMuYXR0cigib3BhY2l0eSIsSmwpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGFyZW50Tm9kZS5fX2F4aXM7cmV0dXJuIHUoZSYmaXNGaW5pdGUoZT1lKHQpKT9lOnkodCkpfSkpKSx3LnJlbW92ZSgpLGIuYXR0cigiZCIsND09PXR8fDI9PXQ/YT8iTSIrbCphKyIsIitnKyJIMC41ViIrXysiSCIrbCphOiJNMC41LCIrZysiViIrXzphPyJNIitnKyIsIitsKmErIlYwLjVIIitfKyJWIitsKmE6Ik0iK2crIiwwLjVIIitfKSx4LmF0dHIoIm9wYWNpdHkiLDEpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiB1KHkodCkpfSkpLE0uYXR0cihjKyIyIixsKm8pLEUuYXR0cihjLGwqZikudGV4dChwKSx2LmZpbHRlcihpYykuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJmb250LXNpemUiLDEwKS5hdHRyKCJmb250LWZhbWlseSIsInNhbnMtc2VyaWYiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsMj09PXQ/InN0YXJ0Ijo0PT09dD8iZW5kIjoibWlkZGxlIiksdi5lYWNoKChmdW5jdGlvbigpe3RoaXMuX19heGlzPXl9KSl9cmV0dXJuIGguc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxoKTplfSxoLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIG49S2wuY2FsbChhcmd1bWVudHMpLGh9LGgudGlja0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P1tdOktsLmNhbGwodCksaCk6bi5zbGljZSgpfSxoLnRpY2tWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOktsLmNhbGwodCksaCk6aSYmaS5zbGljZSgpfSxoLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxoKTpyfSxoLnRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPWE9K3QsaCk6b30saC50aWNrU2l6ZUlubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSt0LGgpOm99LGgudGlja1NpemVPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxoKTphfSxoLnRpY2tQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LGgpOnN9LGh9ZnVuY3Rpb24gb2ModCl7cmV0dXJuIHJjKDMsdCl9ZnVuY3Rpb24gYWModCl7cmV0dXJuIHJjKDQsdCl9dmFyIHNjPXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIGxjKCl7Zm9yKHZhciB0LGU9MCxuPWFyZ3VtZW50cy5sZW5ndGgsaT17fTtlPG47KytlKXtpZighKHQ9YXJndW1lbnRzW2VdKyIiKXx8dCBpbiBpfHwvW1xzLl0vLnRlc3QodCkpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrdCk7aVt0XT1bXX1yZXR1cm4gbmV3IGNjKGkpfWZ1bmN0aW9uIGNjKHQpe3RoaXMuXz10fWZ1bmN0aW9uIHVjKHQsZSl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcCgoZnVuY3Rpb24odCl7dmFyIG49IiIsaT10LmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj10LnNsaWNlKGkrMSksdD10LnNsaWNlKDAsaSkpLHQmJiFlLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO3JldHVybnt0eXBlOnQsbmFtZTpufX0pKX1mdW5jdGlvbiBoYyh0LGUpe2Zvcih2YXIgbixpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKChuPXRbaV0pLm5hbWU9PT1lKXJldHVybiBuLnZhbHVlfWZ1bmN0aW9uIGRjKHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT1zYyx0PXQuc2xpY2UoMCxpKS5jb25jYXQodC5zbGljZShpKzEpKTticmVha31yZXR1cm4gbnVsbCE9biYmdC5wdXNoKHtuYW1lOmUsdmFsdWU6bn0pLHR9Y2MucHJvdG90eXBlPWxjLnByb3RvdHlwZT17Y29uc3RydWN0b3I6Y2Msb246ZnVuY3Rpb24odCxlKXt2YXIgbixpPXRoaXMuXyxyPXVjKHQrIiIsaSksbz0tMSxhPXIubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK2UpO2Zvcig7KytvPGE7KWlmKG49KHQ9cltvXSkudHlwZSlpW25dPWRjKGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09ZGMoaVtuXSx0Lm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9Zm9yKDsrK288YTspaWYoKG49KHQ9cltvXSkudHlwZSkmJihuPWhjKGlbbl0sdC5uYW1lKSkpcmV0dXJuIG59LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxlPXRoaXMuXztmb3IodmFyIG4gaW4gZSl0W25dPWVbbl0uc2xpY2UoKTtyZXR1cm4gbmV3IGNjKHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgcGM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLGZjPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpwYyx4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9O2Z1bmN0aW9uIG1jKHQpe3ZhciBlPXQrPSIiLG49ZS5pbmRleE9mKCI6Iik7cmV0dXJuIG4+PTAmJiJ4bWxucyIhPT0oZT10LnNsaWNlKDAsbikpJiYodD10LnNsaWNlKG4rMSkpLGZjLmhhc093blByb3BlcnR5KGUpP3tzcGFjZTpmY1tlXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIGdjKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudCxuPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBuPT09cGMmJmUuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PXBjP2UuY3JlYXRlRWxlbWVudCh0KTplLmNyZWF0ZUVsZW1lbnROUyhuLHQpfX1mdW5jdGlvbiBfYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiB5Yyh0KXt2YXIgZT1tYyh0KTtyZXR1cm4oZS5sb2NhbD9fYzpnYykoZSl9ZnVuY3Rpb24gdmMoKXt9ZnVuY3Rpb24gYmModCl7cmV0dXJuIG51bGw9PXQ/dmM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiB4Yygpe3JldHVybltdfWZ1bmN0aW9uIHdjKHQpe3JldHVybiBudWxsPT10P3hjOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24gU2ModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyh0KX19ZnVuY3Rpb24gTWModCl7cmV0dXJuIG5ldyBBcnJheSh0Lmxlbmd0aCl9ZnVuY3Rpb24gRWModCxlKXt0aGlzLm93bmVyRG9jdW1lbnQ9dC5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPXQubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9fZGF0YV9fPWV9ZnVuY3Rpb24gVGModCxlLG4saSxyLG8pe2Zvcih2YXIgYSxzPTAsbD1lLmxlbmd0aCxjPW8ubGVuZ3RoO3M8YzsrK3MpKGE9ZVtzXSk/KGEuX19kYXRhX189b1tzXSxpW3NdPWEpOm5bc109bmV3IEVjKHQsb1tzXSk7Zm9yKDtzPGw7KytzKShhPWVbc10pJiYocltzXT1hKX1mdW5jdGlvbiBDYyh0LGUsbixpLHIsbyxhKXt2YXIgcyxsLGMsdT17fSxoPWUubGVuZ3RoLGQ9by5sZW5ndGgscD1uZXcgQXJyYXkoaCk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiYocFtzXT1jPSIkIithLmNhbGwobCxsLl9fZGF0YV9fLHMsZSksYyBpbiB1P3Jbc109bDp1W2NdPWwpO2ZvcihzPTA7czxkOysrcykobD11W2M9IiQiK2EuY2FsbCh0LG9bc10scyxvKV0pPyhpW3NdPWwsbC5fX2RhdGFfXz1vW3NdLHVbY109bnVsbCk6bltzXT1uZXcgRWModCxvW3NdKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJnVbcFtzXV09PT1sJiYocltzXT1sKX1mdW5jdGlvbiBBYyh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBrYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gTGModCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBQYyh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKHQsZSl9fWZ1bmN0aW9uIE5jKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZSl9fWZ1bmN0aW9uIEljKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KTp0aGlzLnNldEF0dHJpYnV0ZSh0LG4pfX1mdW5jdGlvbiBSYyh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLG4pfX1mdW5jdGlvbiBPYyh0KXtyZXR1cm4gdC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gemModCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19ZnVuY3Rpb24gRGModCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLG4pfX1mdW5jdGlvbiBCYyh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09aT90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxpLG4pfX1mdW5jdGlvbiBIYyh0LGUpe3JldHVybiB0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoZSl8fE9jKHQpLmdldENvbXB1dGVkU3R5bGUodCxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKGUpfWZ1bmN0aW9uIEZjKHQpe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW3RdfX1mdW5jdGlvbiBWYyh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbdF09ZX19ZnVuY3Rpb24gVWModCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09bn19ZnVuY3Rpb24gamModCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIEdjKHQpe3JldHVybiB0LmNsYXNzTGlzdHx8bmV3IFdjKHQpfWZ1bmN0aW9uIFdjKHQpe3RoaXMuX25vZGU9dCx0aGlzLl9uYW1lcz1qYyh0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfWZ1bmN0aW9uIHFjKHQsZSl7Zm9yKHZhciBuPUdjKHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5hZGQoZVtpXSl9ZnVuY3Rpb24gWWModCxlKXtmb3IodmFyIG49R2ModCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLnJlbW92ZShlW2ldKX1mdW5jdGlvbiBYYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtxYyh0aGlzLHQpfX1mdW5jdGlvbiAkYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtZYyh0aGlzLHQpfX1mdW5jdGlvbiBLYyh0LGUpe3JldHVybiBmdW5jdGlvbigpeyhlLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9xYzpZYykodGhpcyx0KX19ZnVuY3Rpb24gWmMoKXt0aGlzLnRleHRDb250ZW50PSIifWZ1bmN0aW9uIEpjKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24gUWModCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIHR1KCl7dGhpcy5pbm5lckhUTUw9IiJ9ZnVuY3Rpb24gZXUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9dH19ZnVuY3Rpb24gbnUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBpdSgpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBydSgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIG91KCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gYXUoKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiBzdSgpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCExKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9ZnVuY3Rpb24gbHUoKXt2YXIgdD10aGlzLmNsb25lTm9kZSghMCksZT10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGU/ZS5pbnNlcnRCZWZvcmUodCx0aGlzLm5leHRTaWJsaW5nKTp0fUVjLnByb3RvdHlwZT17Y29uc3RydWN0b3I6RWMsYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCxlKX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3IodCl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHQpfX0sV2MucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtlPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKGUsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgY3U9e30sdXU9bnVsbDtmdW5jdGlvbiBodSh0LGUsbil7cmV0dXJuIHQ9ZHUodCxlLG4pLGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVsYXRlZFRhcmdldDtuJiYobj09PXRoaXN8fDgmbi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBkdSh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3ZhciByPXV1O3V1PWk7dHJ5e3QuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxuKX1maW5hbGx5e3V1PXJ9fX1mdW5jdGlvbiBwdSh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgZT0iIixuPXQuaW5kZXhPZigiLiIpO3JldHVybiBuPj0wJiYoZT10LnNsaWNlKG4rMSksdD10LnNsaWNlKDAsbikpLHt0eXBlOnQsbmFtZTplfX0pKX1mdW5jdGlvbiBmdSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fb247aWYoZSl7Zm9yKHZhciBuLGk9MCxyPS0xLG89ZS5sZW5ndGg7aTxvOysraSluPWVbaV0sdC50eXBlJiZuLnR5cGUhPT10LnR5cGV8fG4ubmFtZSE9PXQubmFtZT9lWysrcl09bjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobi50eXBlLG4ubGlzdGVuZXIsbi5jYXB0dXJlKTsrK3I/ZS5sZW5ndGg9cjpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gbXUodCxlLG4pe3ZhciBpPWN1Lmhhc093blByb3BlcnR5KHQudHlwZSk/aHU6ZHU7cmV0dXJuIGZ1bmN0aW9uKHIsbyxhKXt2YXIgcyxsPXRoaXMuX19vbixjPWkoZSxvLGEpO2lmKGwpZm9yKHZhciB1PTAsaD1sLmxlbmd0aDt1PGg7Kyt1KWlmKChzPWxbdV0pLnR5cGU9PT10LnR5cGUmJnMubmFtZT09PXQubmFtZSlyZXR1cm4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyLHMuY2FwdHVyZSksdGhpcy5hZGRFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyPWMscy5jYXB0dXJlPW4pLHZvaWQocy52YWx1ZT1lKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIodC50eXBlLGMsbikscz17dHlwZTp0LnR5cGUsbmFtZTp0Lm5hbWUsdmFsdWU6ZSxsaXN0ZW5lcjpjLGNhcHR1cmU6bn0sbD9sLnB1c2gocyk6dGhpcy5fX29uPVtzXX19ZnVuY3Rpb24gZ3UodCxlLG4saSl7dmFyIHI9dXU7dC5zb3VyY2VFdmVudD11dSx1dT10O3RyeXtyZXR1cm4gZS5hcHBseShuLGkpfWZpbmFsbHl7dXU9cn19ZnVuY3Rpb24gX3UodCxlLG4pe3ZhciBpPU9jKHQpLHI9aS5DdXN0b21FdmVudDsiZnVuY3Rpb24iPT10eXBlb2Ygcj9yPW5ldyByKGUsbik6KHI9aS5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxuPyhyLmluaXRFdmVudChlLG4uYnViYmxlcyxuLmNhbmNlbGFibGUpLHIuZGV0YWlsPW4uZGV0YWlsKTpyLmluaXRFdmVudChlLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KHIpfWZ1bmN0aW9uIHl1KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIF91KHRoaXMsdCxlKX19ZnVuY3Rpb24gdnUodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gX3UodGhpcyx0LGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmKCJvbm1vdXNlZW50ZXIiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHwoY3U9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpO3ZhciBidT1bbnVsbF07ZnVuY3Rpb24geHUodCxlKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWV9ZnVuY3Rpb24gd3UoKXtyZXR1cm4gbmV3IHh1KFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sYnUpfWZ1bmN0aW9uIFN1KHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9uZXcgeHUoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB4dShbW3RdXSxidSl9eHUucHJvdG90eXBlPXd1LnByb3RvdHlwZT17Y29uc3RydWN0b3I6eHUsc2VsZWN0OmZ1bmN0aW9uIE11KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1iYyh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhLHM9ZVtyXSxsPXMubGVuZ3RoLGM9aVtyXT1uZXcgQXJyYXkobCksdT0wO3U8bDsrK3UpKG89c1t1XSkmJihhPXQuY2FsbChvLG8uX19kYXRhX18sdSxzKSkmJigiX19kYXRhX18iaW4gbyYmKGEuX19kYXRhX189by5fX2RhdGFfXyksY1t1XT1hKTtyZXR1cm4gbmV3IHh1KGksdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBFdSh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9d2ModCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPVtdLHI9W10sbz0wO288bjsrK28pZm9yKHZhciBhLHM9ZVtvXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKShhPXNbY10pJiYoaS5wdXNoKHQuY2FsbChhLGEuX19kYXRhX18sYyxzKSksci5wdXNoKGEpKTtyZXR1cm4gbmV3IHh1KGkscil9LGZpbHRlcjpmdW5jdGlvbiBUdSh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9U2ModCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKSxyPTA7cjxuOysrcilmb3IodmFyIG8sYT1lW3JdLHM9YS5sZW5ndGgsbD1pW3JdPVtdLGM9MDtjPHM7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmwucHVzaChvKTtyZXR1cm4gbmV3IHh1KGksdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gQ3UodCxlKXtpZighdClyZXR1cm4gZj1uZXcgQXJyYXkodGhpcy5zaXplKCkpLHU9LTEsdGhpcy5lYWNoKChmdW5jdGlvbih0KXtmWysrdV09dH0pKSxmO3ZhciBuPWU/Q2M6VGMsaT10aGlzLl9wYXJlbnRzLHI9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciBhPXIubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9bmV3IEFycmF5KGEpLGM9bmV3IEFycmF5KGEpLHU9MDt1PGE7Kyt1KXt2YXIgaD1pW3VdLGQ9clt1XSxwPWQubGVuZ3RoLGY9dC5jYWxsKGgsaCYmaC5fX2RhdGFfXyx1LGkpLG09Zi5sZW5ndGgsZz1sW3VdPW5ldyBBcnJheShtKSxfPXNbdV09bmV3IEFycmF5KG0pO24oaCxkLGcsXyxjW3VdPW5ldyBBcnJheShwKSxmLGUpO2Zvcih2YXIgeSx2LGI9MCx4PTA7YjxtOysrYilpZih5PWdbYl0pe2ZvcihiPj14JiYoeD1iKzEpOyEodj1fW3hdKSYmKyt4PG07KTt5Ll9uZXh0PXZ8fG51bGx9fXJldHVybihzPW5ldyB4dShzLGkpKS5fZW50ZXI9bCxzLl9leGl0PWMsc30sZW50ZXI6ZnVuY3Rpb24gQXUoKXtyZXR1cm4gbmV3IHh1KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKE1jKSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbiBrdSgpe3JldHVybiBuZXcgeHUodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChNYyksdGhpcy5fcGFyZW50cyl9LGpvaW46ZnVuY3Rpb24gTHUodCxlLG4pe3ZhciBpPXRoaXMuZW50ZXIoKSxyPXRoaXMsbz10aGlzLmV4aXQoKTtyZXR1cm4gaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90KGkpOmkuYXBwZW5kKHQrIiIpLG51bGwhPWUmJihyPWUocikpLG51bGw9PW4/by5yZW1vdmUoKTpuKG8pLGkmJnI/aS5tZXJnZShyKS5vcmRlcigpOnJ9LG1lcmdlOmZ1bmN0aW9uIFB1KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IHh1KG8sdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uIE51KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPS0xLG49dC5sZW5ndGg7KytlPG47KWZvcih2YXIgaSxyPXRbZV0sbz1yLmxlbmd0aC0xLGE9cltvXTstLW8+PTA7KShpPXJbb10pJiYoYSYmNF5pLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpJiZhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGksYSksYT1pKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbiBJdSh0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIGUmJm4/dChlLl9fZGF0YV9fLG4uX19kYXRhX18pOiFlLSFufXR8fCh0PUFjKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGk9bi5sZW5ndGgscj1uZXcgQXJyYXkoaSksbz0wO288aTsrK28pe2Zvcih2YXIgYSxzPW5bb10sbD1zLmxlbmd0aCxjPXJbb109bmV3IEFycmF5KGwpLHU9MDt1PGw7Kyt1KShhPXNbdV0pJiYoY1t1XT1hKTtjLnNvcnQoZSl9cmV0dXJuIG5ldyB4dShyLHRoaXMuX3BhcmVudHMpLm9yZGVyKCl9LGNhbGw6ZnVuY3Rpb24gUnUoKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIE91KCl7dmFyIHQ9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxlPS0xO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7dFsrK2VdPXRoaXN9KSksdH0sbm9kZTpmdW5jdGlvbiB6dSgpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT0wLG49dC5sZW5ndGg7ZTxuOysrZSlmb3IodmFyIGk9dFtlXSxyPTAsbz1pLmxlbmd0aDtyPG87KytyKXt2YXIgYT1pW3JdO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24gRHUoKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9LGVtcHR5OmZ1bmN0aW9uIEJ1KCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uIEh1KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj0wLGk9ZS5sZW5ndGg7bjxpOysrbilmb3IodmFyIHIsbz1lW25dLGE9MCxzPW8ubGVuZ3RoO2E8czsrK2EpKHI9b1thXSkmJnQuY2FsbChyLHIuX19kYXRhX18sYSxvKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbiBGdSh0LGUpe3ZhciBuPW1jKHQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIGk9dGhpcy5ub2RlKCk7cmV0dXJuIG4ubG9jYWw/aS5nZXRBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwpOmkuZ2V0QXR0cmlidXRlKG4pfXJldHVybiB0aGlzLmVhY2goKG51bGw9PWU/bi5sb2NhbD9MYzprYzoiZnVuY3Rpb24iPT10eXBlb2YgZT9uLmxvY2FsP1JjOkljOm4ubG9jYWw/TmM6UGMpKG4sZSkpfSxzdHlsZTpmdW5jdGlvbiBWdSh0LGUsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/emM6ImZ1bmN0aW9uIj09dHlwZW9mIGU/QmM6RGMpKHQsZSxudWxsPT1uPyIiOm4pKTpIYyh0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24gVXUodCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9GYzoiZnVuY3Rpb24iPT10eXBlb2YgZT9VYzpWYykodCxlKSk6dGhpcy5ub2RlKClbdF19LGNsYXNzZWQ6ZnVuY3Rpb24ganUodCxlKXt2YXIgbj1qYyh0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaT1HYyh0aGlzLm5vZGUoKSkscj0tMSxvPW4ubGVuZ3RoOysrcjxvOylpZighaS5jb250YWlucyhuW3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgZT9LYzplP1hjOiRjKShuLGUpKX0sdGV4dDpmdW5jdGlvbiBHdSh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9aYzooImZ1bmN0aW9uIj09dHlwZW9mIHQ/UWM6SmMpKHQpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0saHRtbDpmdW5jdGlvbiBXdSh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD90dTooImZ1bmN0aW9uIj09dHlwZW9mIHQ/bnU6ZXUpKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIHF1KCl7cmV0dXJuIHRoaXMuZWFjaChpdSl9LGxvd2VyOmZ1bmN0aW9uIFl1KCl7cmV0dXJuIHRoaXMuZWFjaChydSl9LGFwcGVuZDpmdW5jdGlvbiBYdSh0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnljKHQpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KSl9LGluc2VydDpmdW5jdGlvbiAkdSh0LGUpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eWModCksaT1udWxsPT1lP291OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6YmMoZSk7cmV0dXJuIHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KSl9LHJlbW92ZTpmdW5jdGlvbiBLdSgpe3JldHVybiB0aGlzLmVhY2goYXUpfSxjbG9uZTpmdW5jdGlvbiBadSh0KXtyZXR1cm4gdGhpcy5zZWxlY3QodD9sdTpzdSl9LGRhdHVtOmZ1bmN0aW9uIEp1KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIix0KTp0aGlzLm5vZGUoKS5fX2RhdGFfX30sb246ZnVuY3Rpb24gUXUodCxlLG4pe3ZhciBpLHIsbz1wdSh0KyIiKSxhPW8ubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHM9ZT9tdTpmdSxudWxsPT1uJiYobj0hMSksaT0wO2k8YTsrK2kpdGhpcy5lYWNoKHMob1tpXSxlLG4pKTtyZXR1cm4gdGhpc312YXIgcz10aGlzLm5vZGUoKS5fX29uO2lmKHMpZm9yKHZhciBsLGM9MCx1PXMubGVuZ3RoO2M8dTsrK2MpZm9yKGk9MCxsPXNbY107aTxhOysraSlpZigocj1vW2ldKS50eXBlPT09bC50eXBlJiZyLm5hbWU9PT1sLm5hbWUpcmV0dXJuIGwudmFsdWV9LGRpc3BhdGNoOmZ1bmN0aW9uIHRoKHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/dnU6eXUpKHQsZSkpfX07dmFyIGVoPTA7ZnVuY3Rpb24gbmgoKXtyZXR1cm4gbmV3IGlofWZ1bmN0aW9uIGloKCl7dGhpcy5fPSJAIisoKytlaCkudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIHJoKCl7Zm9yKHZhciB0LGU9dXU7dD1lLnNvdXJjZUV2ZW50OyllPXQ7cmV0dXJuIGV9ZnVuY3Rpb24gb2godCxlKXt2YXIgbj10Lm93bmVyU1ZHRWxlbWVudHx8dDtpZihuLmNyZWF0ZVNWR1BvaW50KXt2YXIgaT1uLmNyZWF0ZVNWR1BvaW50KCk7cmV0dXJuIGkueD1lLmNsaWVudFgsaS55PWUuY2xpZW50WSxbKGk9aS5tYXRyaXhUcmFuc2Zvcm0odC5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpKS54LGkueV19dmFyIHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm5bZS5jbGllbnRYLXIubGVmdC10LmNsaWVudExlZnQsZS5jbGllbnRZLXIudG9wLXQuY2xpZW50VG9wXX1mdW5jdGlvbiBhaCh0KXt2YXIgZT1yaCgpO3JldHVybiBlLmNoYW5nZWRUb3VjaGVzJiYoZT1lLmNoYW5nZWRUb3VjaGVzWzBdKSxvaCh0LGUpfWZ1bmN0aW9uIHNoKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9uZXcgeHUoW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCldLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgeHUoW251bGw9PXQ/W106dF0sYnUpfWZ1bmN0aW9uIGxoKHQsZSxuKXthcmd1bWVudHMubGVuZ3RoPDMmJihuPWUsZT1yaCgpLmNoYW5nZWRUb3VjaGVzKTtmb3IodmFyIGkscj0wLG89ZT9lLmxlbmd0aDowO3I8bzsrK3IpaWYoKGk9ZVtyXSkuaWRlbnRpZmllcj09PW4pcmV0dXJuIG9oKHQsaSk7cmV0dXJuIG51bGx9ZnVuY3Rpb24gY2goKXt1dS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiB1aCgpe3V1LnByZXZlbnREZWZhdWx0KCksdXUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gaGgodCl7dmFyIGU9dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1TdSh0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLHVoLCEwKTsib25zZWxlY3RzdGFydCJpbiBlP24ub24oInNlbGVjdHN0YXJ0LmRyYWciLHVoLCEwKTooZS5fX25vc2VsZWN0PWUuc3R5bGUuTW96VXNlclNlbGVjdCxlLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiKX1mdW5jdGlvbiBkaCh0LGUpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGk9U3UodCkub24oImRyYWdzdGFydC5kcmFnIixudWxsKTtlJiYoaS5vbigiY2xpY2suZHJhZyIsdWgsITApLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aS5vbigiY2xpY2suZHJhZyIsbnVsbCl9KSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gbj9pLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKToobi5zdHlsZS5Nb3pVc2VyU2VsZWN0PW4uX19ub3NlbGVjdCxkZWxldGUgbi5fX25vc2VsZWN0KX1mdW5jdGlvbiBwaCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gZmgodCxlLG4saSxyLG8sYSxzLGwsYyl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9ZSx0aGlzLnN1YmplY3Q9bix0aGlzLmlkZW50aWZpZXI9aSx0aGlzLmFjdGl2ZT1yLHRoaXMueD1vLHRoaXMueT1hLHRoaXMuZHg9cyx0aGlzLmR5PWwsdGhpcy5fPWN9ZnVuY3Rpb24gbWgoKXtyZXR1cm4hdXUuY3RybEtleSYmIXV1LmJ1dHRvbn1mdW5jdGlvbiBnaCgpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9ZnVuY3Rpb24gX2godCl7cmV0dXJuIG51bGw9PXQ/e3g6dXUueCx5OnV1Lnl9OnR9ZnVuY3Rpb24geWgoKXtyZXR1cm4gbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzfHwib250b3VjaHN0YXJ0ImluIHRoaXN9ZnVuY3Rpb24gdmgoKXt2YXIgdCxlLG4saSxyPW1oLG89Z2gsYT1faCxzPXloLGw9e30sYz1sYygic3RhcnQiLCJkcmFnIiwiZW5kIiksdT0wLGg9MDtmdW5jdGlvbiBkKHQpe3Qub24oIm1vdXNlZG93bi5kcmFnIixwKS5maWx0ZXIocykub24oInRvdWNoc3RhcnQuZHJhZyIsZykub24oInRvdWNobW92ZS5kcmFnIixfKS5vbigidG91Y2hlbmQuZHJhZyB0b3VjaGNhbmNlbC5kcmFnIix5KS5zdHlsZSgidG91Y2gtYWN0aW9uIiwibm9uZSIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIil9ZnVuY3Rpb24gcCgpe2lmKCFpJiZyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGE9digibW91c2UiLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpLGFoLHRoaXMsYXJndW1lbnRzKTthJiYoU3UodXUudmlldykub24oIm1vdXNlbW92ZS5kcmFnIixmLCEwKS5vbigibW91c2V1cC5kcmFnIixtLCEwKSxoaCh1dS52aWV3KSxjaCgpLG49ITEsdD11dS5jbGllbnRYLGU9dXUuY2xpZW50WSxhKCJzdGFydCIpKX19ZnVuY3Rpb24gZigpe2lmKHVoKCksIW4pe3ZhciBpPXV1LmNsaWVudFgtdCxyPXV1LmNsaWVudFktZTtuPWkqaStyKnI+aH1sLm1vdXNlKCJkcmFnIil9ZnVuY3Rpb24gbSgpe1N1KHV1LnZpZXcpLm9uKCJtb3VzZW1vdmUuZHJhZyBtb3VzZXVwLmRyYWciLG51bGwpLGRoKHV1LnZpZXcsbiksdWgoKSxsLm1vdXNlKCJlbmQiKX1mdW5jdGlvbiBnKCl7aWYoci5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0LGUsbj11dS5jaGFuZ2VkVG91Y2hlcyxpPW8uYXBwbHkodGhpcyxhcmd1bWVudHMpLGE9bi5sZW5ndGg7Zm9yKHQ9MDt0PGE7Kyt0KShlPXYoblt0XS5pZGVudGlmaWVyLGksbGgsdGhpcyxhcmd1bWVudHMpKSYmKGNoKCksZSgic3RhcnQiKSl9fWZ1bmN0aW9uIF8oKXt2YXIgdCxlLG49dXUuY2hhbmdlZFRvdWNoZXMsaT1uLmxlbmd0aDtmb3IodD0wO3Q8aTsrK3QpKGU9bFtuW3RdLmlkZW50aWZpZXJdKSYmKHVoKCksZSgiZHJhZyIpKX1mdW5jdGlvbiB5KCl7dmFyIHQsZSxuPXV1LmNoYW5nZWRUb3VjaGVzLHI9bi5sZW5ndGg7Zm9yKGkmJmNsZWFyVGltZW91dChpKSxpPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aT1udWxsfSksNTAwKSx0PTA7dDxyOysrdCkoZT1sW25bdF0uaWRlbnRpZmllcl0pJiYoY2goKSxlKCJlbmQiKSl9ZnVuY3Rpb24gdih0LGUsbixpLHIpe3ZhciBvLHMsaCxwPW4oZSx0KSxmPWMuY29weSgpO2lmKGd1KG5ldyBmaChkLCJiZWZvcmVzdGFydCIsbyx0LHUscFswXSxwWzFdLDAsMCxmKSwoZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9KHV1LnN1YmplY3Q9bz1hLmFwcGx5KGkscikpJiYocz1vLngtcFswXXx8MCxoPW8ueS1wWzFdfHwwLCEwKX0pKSlyZXR1cm4gZnVuY3Rpb24gYShjKXt2YXIgbSxnPXA7c3dpdGNoKGMpe2Nhc2Uic3RhcnQiOmxbdF09YSxtPXUrKzticmVhaztjYXNlImVuZCI6ZGVsZXRlIGxbdF0sLS11O2Nhc2UiZHJhZyI6cD1uKGUsdCksbT11fWd1KG5ldyBmaChkLGMsbyx0LG0scFswXStzLHBbMV0raCxwWzBdLWdbMF0scFsxXS1nWzFdLGYpLGYuYXBwbHksZixbYyxpLHJdKX19cmV0dXJuIGQuZmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cGgoISF0KSxkKTpyfSxkLmNvbnRhaW5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnBoKHQpLGQpOm99LGQuc3ViamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnBoKHQpLGQpOmF9LGQudG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cGgoISF0KSxkKTpzfSxkLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Yy5vbi5hcHBseShjLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1jP2Q6dH0sZC5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSh0PSt0KSp0LGQpOk1hdGguc3FydChoKX0sZH1mdW5jdGlvbiBiaCh0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24geGgodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gd2goKXt9aWgucHJvdG90eXBlPW5oLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aWgsZ2V0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl87IShlIGluIHQpOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHRbZV19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0W3RoaXMuX109ZX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl8gaW4gdCYmZGVsZXRlIHRbdGhpcy5fXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX0sZmgucHJvdG90eXBlLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fLm9uLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpO3JldHVybiB0PT09dGhpcy5fP3RoaXM6dH07dmFyIFNoPS43LE1oPTEvU2gsRWg9IlxccyooWystXT9cXGQrKVxccyoiLFRoPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLENoPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixBaD0vXiMoWzAtOWEtZl17Myw4fSkkLyxraD1uZXcgUmVnRXhwKCJecmdiXFwoIitbRWgsRWgsRWhdKyJcXCkkIiksTGg9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW0NoLENoLENoXSsiXFwpJCIpLFBoPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbRWgsRWgsRWgsVGhdKyJcXCkkIiksTmg9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tDaCxDaCxDaCxUaF0rIlxcKSQiKSxJaD1uZXcgUmVnRXhwKCJeaHNsXFwoIitbVGgsQ2gsQ2hdKyJcXCkkIiksUmg9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tUaCxDaCxDaCxUaF0rIlxcKSQiKSxPaD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiB6aCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIERoKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gQmgodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9QWguZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj9IaChlKTozPT09bj9uZXcgamgoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP0ZoKGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP0ZoKGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9a2guZXhlYyh0KSk/bmV3IGpoKGVbMV0sZVsyXSxlWzNdLDEpOihlPUxoLmV4ZWModCkpP25ldyBqaCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1QaC5leGVjKHQpKT9GaChlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1OaC5leGVjKHQpKT9GaCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1JaC5leGVjKHQpKT9ZaChlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVJoLmV4ZWModCkpP1loKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6T2guaGFzT3duUHJvcGVydHkodCk/SGgoT2hbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyBqaChOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIEhoKHQpe3JldHVybiBuZXcgamgodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIEZoKHQsZSxuLGkpe3JldHVybiBpPD0wJiYodD1lPW49TmFOKSxuZXcgamgodCxlLG4saSl9ZnVuY3Rpb24gVmgodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB3aHx8KHQ9QmgodCkpLHQ/bmV3IGpoKCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyBqaH1mdW5jdGlvbiBVaCh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/VmgodCk6bmV3IGpoKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBqaCh0LGUsbixpKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gR2goKXtyZXR1cm4iIyIrcWgodGhpcy5yKStxaCh0aGlzLmcpK3FoKHRoaXMuYil9ZnVuY3Rpb24gV2goKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBxaCh0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIFloKHQsZSxuLGkpe3JldHVybiBpPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgS2godCxlLG4saSl9ZnVuY3Rpb24gWGgodCl7aWYodCBpbnN0YW5jZW9mIEtoKXJldHVybiBuZXcgS2godC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2Ygd2h8fCh0PUJoKHQpKSwhdClyZXR1cm4gbmV3IEtoO2lmKHQgaW5zdGFuY2VvZiBLaClyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsaT10LmIvMjU1LHI9TWF0aC5taW4oZSxuLGkpLG89TWF0aC5tYXgoZSxuLGkpLGE9TmFOLHM9by1yLGw9KG8rcikvMjtyZXR1cm4gcz8oYT1lPT09bz8obi1pKS9zKzYqKG48aSk6bj09PW8/KGktZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P28rcjoyLW8tcixhKj02MCk6cz1sPjAmJmw8MT8wOmEsbmV3IEtoKGEscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gJGgodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1hoKHQpOm5ldyBLaCh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gS2godCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIFpoKHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1iaCh3aCxCaCx7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDp6aCxmb3JtYXRIZXg6emgsZm9ybWF0SHNsOmZ1bmN0aW9uIEpoKCl7cmV0dXJuIFhoKHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6RGgsdG9TdHJpbmc6RGh9KSxiaChqaCxVaCx4aCh3aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9NaDpNYXRoLnBvdyhNaCx0KSxuZXcgamgodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/U2g6TWF0aC5wb3coU2gsdCksbmV3IGpoKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6R2gsZm9ybWF0SGV4OkdoLGZvcm1hdFJnYjpXaCx0b1N0cmluZzpXaH0pKSxiaChLaCwkaCx4aCh3aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9NaDpNYXRoLnBvdyhNaCx0KSxuZXcgS2godGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9TaDpNYXRoLnBvdyhTaCx0KSxuZXcgS2godGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyBqaChaaCh0Pj0yNDA/dC0yNDA6dCsxMjAscixpKSxaaCh0LHIsaSksWmgodDwxMjA/dCsyNDA6dC0xMjAscixpKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgUWg9TWF0aC5QSS8xODAsdGQ9MTgwL01hdGguUEksZWQ9Ljk2NDIyLG5kPS44MjUyMSxpZD00LzI5LHJkPTYvMjksb2Q9MypyZCpyZDtmdW5jdGlvbiBhZCh0KXtpZih0IGluc3RhbmNlb2YgbGQpcmV0dXJuIG5ldyBsZCh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBtZClyZXR1cm4gZ2QodCk7dCBpbnN0YW5jZW9mIGpofHwodD1WaCh0KSk7dmFyIGUsbixpPWRkKHQucikscj1kZCh0LmcpLG89ZGQodC5iKSxhPWNkKCguMjIyNTA0NSppKy43MTY4Nzg2KnIrLjA2MDYxNjkqbykvMSk7cmV0dXJuIGk9PT1yJiZyPT09bz9lPW49YTooZT1jZCgoLjQzNjA3NDcqaSsuMzg1MDY0OSpyKy4xNDMwODA0Km8pL2VkKSxuPWNkKCguMDEzOTMyMippKy4wOTcxMDQ1KnIrLjcxNDE3MzMqbykvbmQpKSxuZXcgbGQoMTE2KmEtMTYsNTAwKihlLWEpLDIwMCooYS1uKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIHNkKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9hZCh0KTpuZXcgbGQodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIGxkKHQsZSxuLGkpe3RoaXMubD0rdCx0aGlzLmE9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBjZCh0KXtyZXR1cm4gdD4uMDA4ODU2NDUxNjc5MDM1NjMxP01hdGgucG93KHQsMS8zKTp0L29kK2lkfWZ1bmN0aW9uIHVkKHQpe3JldHVybiB0PnJkP3QqdCp0Om9kKih0LWlkKX1mdW5jdGlvbiBoZCh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIGRkKHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIHBkKHQpe2lmKHQgaW5zdGFuY2VvZiBtZClyZXR1cm4gbmV3IG1kKHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIGxkfHwodD1hZCh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IG1kKE5hTiwwPHQubCYmdC5sPDEwMD8wOk5hTix0LmwsdC5vcGFjaXR5KTt2YXIgZT1NYXRoLmF0YW4yKHQuYix0LmEpKnRkO3JldHVybiBuZXcgbWQoZTwwP2UrMzYwOmUsTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gZmQodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3BkKHQpOm5ldyBtZCh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gbWQodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMuYz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIGdkKHQpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyBsZCh0LmwsMCwwLHQub3BhY2l0eSk7dmFyIGU9dC5oKlFoO3JldHVybiBuZXcgbGQodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX1iaChsZCxzZCx4aCh3aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBsZCh0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGxkKHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMubCsxNikvMTE2LGU9aXNOYU4odGhpcy5hKT90OnQrdGhpcy5hLzUwMCxuPWlzTmFOKHRoaXMuYik/dDp0LXRoaXMuYi8yMDA7cmV0dXJuIG5ldyBqaChoZCgzLjEzMzg1NjEqKGU9ZWQqdWQoZSkpLTEuNjE2ODY2NyoodD0xKnVkKHQpKS0uNDkwNjE0Nioobj1uZCp1ZChuKSkpLGhkKC0uOTc4NzY4NCplKzEuOTE2MTQxNSp0Ky4wMzM0NTQqbiksaGQoLjA3MTk0NTMqZS0uMjI4OTkxNCp0KzEuNDA1MjQyNypuKSx0aGlzLm9wYWNpdHkpfX0pKSxiaChtZCxmZCx4aCh3aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBtZCh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IG1kKHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIGdkKHRoaXMpLnJnYigpfX0pKTt2YXIgX2Q9LS4yOTIyNyx5ZD0tLjkwNjQ5LHZkPTEuOTcyOTQ7ZnVuY3Rpb24gYmQodCl7aWYodCBpbnN0YW5jZW9mIHdkKXJldHVybiBuZXcgd2QodC5oLHQucyx0LmwsdC5vcGFjaXR5KTt0IGluc3RhbmNlb2Ygamh8fCh0PVZoKHQpKTt2YXIgZT10LmcvMjU1LG49dC5iLzI1NSxpPSgtLjY1NTc2MzY2Njc5OTk5OTkqbit0LnIvMjU1Ki0xLjc4ODQ1MDM4MDYtMy41MTcyOTgyNDM4KmUpLy01Ljk2MTUxMjI5MTIscj1uLWksbz0odmQqKGUtaSktX2QqcikveWQsYT1NYXRoLnNxcnQobypvK3IqcikvKHZkKmkqKDEtaSkpLHM9YT9NYXRoLmF0YW4yKG8scikqdGQtMTIwOk5hTjtyZXR1cm4gbmV3IHdkKHM8MD9zKzM2MDpzLGEsaSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIHhkKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9iZCh0KTpuZXcgd2QodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIHdkKHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBTZCh0LGUsbixpLHIpe3ZhciBvPXQqdCxhPW8qdDtyZXR1cm4oKDEtMyp0KzMqby1hKSplKyg0LTYqbyszKmEpKm4rKDErMyp0KzMqby0zKmEpKmkrYSpyKS82fWZ1bmN0aW9uIE1kKHQpe3ZhciBlPXQubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPW48PTA/bj0wOm4+PTE/KG49MSxlLTEpOk1hdGguZmxvb3IobiplKSxyPXRbaV0sbz10W2krMV07cmV0dXJuIFNkKChuLWkvZSkqZSxpPjA/dFtpLTFdOjIqci1vLHIsbyxpPGUtMT90W2krMl06MipvLXIpfX1mdW5jdGlvbiBFZCh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9TWF0aC5mbG9vcigoKG4lPTEpPDA/KytuOm4pKmUpO3JldHVybiBTZCgobi1pL2UpKmUsdFsoaStlLTEpJWVdLHRbaSVlXSx0WyhpKzEpJWVdLHRbKGkrMiklZV0pfX1mdW5jdGlvbiBUZCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gQ2QodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQrbiplfX1mdW5jdGlvbiBBZCh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9DZCh0LG4+MTgwfHxuPC0xODA/bi0zNjAqTWF0aC5yb3VuZChuLzM2MCk6bik6VGQoaXNOYU4odCk/ZTp0KX1mdW5jdGlvbiBrZCh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9DZCh0LG4pOlRkKGlzTmFOKHQpP2U6dCl9Ymgod2QseGQseGgod2gse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/TWg6TWF0aC5wb3coTWgsdCksbmV3IHdkKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/U2g6TWF0aC5wb3coU2gsdCksbmV3IHdkKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9aXNOYU4odGhpcy5oKT8wOih0aGlzLmgrMTIwKSpRaCxlPSt0aGlzLmwsbj1pc05hTih0aGlzLnMpPzA6dGhpcy5zKmUqKDEtZSksaT1NYXRoLmNvcyh0KSxyPU1hdGguc2luKHQpO3JldHVybiBuZXcgamgoMjU1KihlK24qKC0uMTQ4NjEqaSsxLjc4Mjc3KnIpKSwyNTUqKGUrbiooX2QqaSt5ZCpyKSksMjU1KihlK24qKHZkKmkpKSx0aGlzLm9wYWNpdHkpfX0pKTt2YXIgTGQ9KGZ1bmN0aW9uIHQoZSl7dmFyIG49KGZ1bmN0aW9uIGkodCl7cmV0dXJuIDE9PSh0PSt0KT9rZDpmdW5jdGlvbihlLG4pe3JldHVybiBuLWU/KGZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiB0PU1hdGgucG93KHQsbiksZT1NYXRoLnBvdyhlLG4pLXQsbj0xL24sZnVuY3Rpb24oaSl7cmV0dXJuIE1hdGgucG93KHQraSplLG4pfX0pKGUsbix0KTpUZChpc05hTihlKT9uOmUpfX0pKGUpO2Z1bmN0aW9uIHIodCxlKXt2YXIgaT1uKCh0PVVoKHQpKS5yLChlPVVoKGUpKS5yKSxyPW4odC5nLGUuZyksbz1uKHQuYixlLmIpLGE9a2QodC5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LnI9aShlKSx0Lmc9cihlKSx0LmI9byhlKSx0Lm9wYWNpdHk9YShlKSx0KyIifX1yZXR1cm4gci5nYW1tYT10LHJ9KSgxKTtmdW5jdGlvbiBQZCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG4saSxyPWUubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9bmV3IEFycmF5KHIpLHM9bmV3IEFycmF5KHIpO2ZvcihuPTA7bjxyOysrbilpPVVoKGVbbl0pLG9bbl09aS5yfHwwLGFbbl09aS5nfHwwLHNbbl09aS5ifHwwO3JldHVybiBvPXQobyksYT10KGEpLHM9dChzKSxpLm9wYWNpdHk9MSxmdW5jdGlvbih0KXtyZXR1cm4gaS5yPW8odCksaS5nPWEodCksaS5iPXModCksaSsiIn19fXZhciBOZD1QZChNZCksSWQ9UGQoRWQpO2Z1bmN0aW9uIFJkKHQsZSl7ZXx8KGU9W10pO3ZhciBuLGk9dD9NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk6MCxyPWUuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24obyl7Zm9yKG49MDtuPGk7KytuKXJbbl09dFtuXSooMS1vKStlW25dKm87cmV0dXJuIHJ9fWZ1bmN0aW9uIE9kKHQpe3JldHVybiBBcnJheUJ1ZmZlci5pc1ZpZXcodCkmJiEodCBpbnN0YW5jZW9mIERhdGFWaWV3KX1mdW5jdGlvbiB6ZCh0LGUpe3ZhciBuLGk9ZT9lLmxlbmd0aDowLHI9dD9NYXRoLm1pbihpLHQubGVuZ3RoKTowLG89bmV3IEFycmF5KHIpLGE9bmV3IEFycmF5KGkpO2ZvcihuPTA7bjxyOysrbilvW25dPWpkKHRbbl0sZVtuXSk7Zm9yKDtuPGk7KytuKWFbbl09ZVtuXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKG49MDtuPHI7KytuKWFbbl09b1tuXSh0KTtyZXR1cm4gYX19ZnVuY3Rpb24gRGQodCxlKXt2YXIgbj1uZXcgRGF0ZTtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKGkpe3JldHVybiBuLnNldFRpbWUodCooMS1pKStlKmkpLG59fWZ1bmN0aW9uIEJkKHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihuKXtyZXR1cm4gdCooMS1uKStlKm59fWZ1bmN0aW9uIEhkKHQsZSl7dmFyIG4saT17fSxyPXt9O2ZvcihuIGluIG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHR8fCh0PXt9KSxudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlfHwoZT17fSksZSluIGluIHQ/aVtuXT1qZCh0W25dLGVbbl0pOnJbbl09ZVtuXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKG4gaW4gaSlyW25dPWlbbl0odCk7cmV0dXJuIHJ9fXZhciBGZD0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csVmQ9bmV3IFJlZ0V4cChGZC5zb3VyY2UsImciKTtmdW5jdGlvbiBVZCh0LGUpe3ZhciBuLGkscixvPUZkLmxhc3RJbmRleD1WZC5sYXN0SW5kZXg9MCxhPS0xLHM9W10sbD1bXTtmb3IodCs9IiIsZSs9IiI7KG49RmQuZXhlYyh0KSkmJihpPVZkLmV4ZWMoZSkpOykocj1pLmluZGV4KT5vJiYocj1lLnNsaWNlKG8sciksc1thXT9zW2FdKz1yOnNbKythXT1yKSwobj1uWzBdKT09PShpPWlbMF0pP3NbYV0/c1thXSs9aTpzWysrYV09aTooc1srK2FdPW51bGwsbC5wdXNoKHtpOmEseDpCZChuLGkpfSkpLG89VmQubGFzdEluZGV4O3JldHVybiBvPGUubGVuZ3RoJiYocj1lLnNsaWNlKG8pLHNbYV0/c1thXSs9cjpzWysrYV09cikscy5sZW5ndGg8Mj9sWzBdPyhmdW5jdGlvbiBjKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKSsiIn19KShsWzBdLngpOihmdW5jdGlvbiB1KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0pKGUpOihlPWwubGVuZ3RoLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixpPTA7aTxlOysraSlzWyhuPWxbaV0pLmldPW4ueCh0KTtyZXR1cm4gcy5qb2luKCIiKX0pfWZ1bmN0aW9uIGpkKHQsZSl7dmFyIG4saT10eXBlb2YgZTtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT09aT9UZChlKTooIm51bWJlciI9PT1pP0JkOiJzdHJpbmciPT09aT8obj1CaChlKSk/KGU9bixMZCk6VWQ6ZSBpbnN0YW5jZW9mIEJoP0xkOmUgaW5zdGFuY2VvZiBEYXRlP0RkOk9kKGUpP1JkOkFycmF5LmlzQXJyYXkoZSk/emQ6ImZ1bmN0aW9uIiE9dHlwZW9mIGUudmFsdWVPZiYmImZ1bmN0aW9uIiE9dHlwZW9mIGUudG9TdHJpbmd8fGlzTmFOKGUpP0hkOkJkKSh0LGUpfWZ1bmN0aW9uIEdkKHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5yb3VuZCh0KigxLW4pK2Uqbil9fXZhciBXZCxxZCxZZCxYZCwkZD0xODAvTWF0aC5QSSxLZD17dHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MCxyb3RhdGU6MCxza2V3WDowLHNjYWxlWDoxLHNjYWxlWToxfTtmdW5jdGlvbiBaZCh0LGUsbixpLHIsbyl7dmFyIGEscyxsO3JldHVybihhPU1hdGguc3FydCh0KnQrZSplKSkmJih0Lz1hLGUvPWEpLChsPXQqbitlKmkpJiYobi09dCpsLGktPWUqbCksKHM9TWF0aC5zcXJ0KG4qbitpKmkpKSYmKG4vPXMsaS89cyxsLz1zKSx0Kmk8ZSpuJiYodD0tdCxlPS1lLGw9LWwsYT0tYSkse3RyYW5zbGF0ZVg6cix0cmFuc2xhdGVZOm8scm90YXRlOk1hdGguYXRhbjIoZSx0KSokZCxza2V3WDpNYXRoLmF0YW4obCkqJGQsc2NhbGVYOmEsc2NhbGVZOnN9fWZ1bmN0aW9uIEpkKHQsZSxuLGkpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQubGVuZ3RoP3QucG9wKCkrIiAiOiIifXJldHVybiBmdW5jdGlvbihvLGEpe3ZhciBzPVtdLGw9W107cmV0dXJuIG89dChvKSxhPXQoYSksKGZ1bmN0aW9uIGModCxpLHIsbyxhLHMpe2lmKHQhPT1yfHxpIT09byl7dmFyIGw9YS5wdXNoKCJ0cmFuc2xhdGUoIixudWxsLGUsbnVsbCxuKTtzLnB1c2goe2k6bC00LHg6QmQodCxyKX0se2k6bC0yLHg6QmQoaSxvKX0pfWVsc2Uocnx8bykmJmEucHVzaCgidHJhbnNsYXRlKCIrcitlK28rbil9KShvLnRyYW5zbGF0ZVgsby50cmFuc2xhdGVZLGEudHJhbnNsYXRlWCxhLnRyYW5zbGF0ZVkscyxsKSwoZnVuY3Rpb24gdSh0LGUsbixvKXt0IT09ZT8odC1lPjE4MD9lKz0zNjA6ZS10PjE4MCYmKHQrPTM2MCksby5wdXNoKHtpOm4ucHVzaChyKG4pKyJyb3RhdGUoIixudWxsLGkpLTIseDpCZCh0LGUpfSkpOmUmJm4ucHVzaChyKG4pKyJyb3RhdGUoIitlK2kpfSkoby5yb3RhdGUsYS5yb3RhdGUscyxsKSwoZnVuY3Rpb24gaCh0LGUsbixvKXt0IT09ZT9vLnB1c2goe2k6bi5wdXNoKHIobikrInNrZXdYKCIsbnVsbCxpKS0yLHg6QmQodCxlKX0pOmUmJm4ucHVzaChyKG4pKyJza2V3WCgiK2UraSl9KShvLnNrZXdYLGEuc2tld1gscyxsKSwoZnVuY3Rpb24gZCh0LGUsbixpLG8sYSl7aWYodCE9PW58fGUhPT1pKXt2YXIgcz1vLnB1c2gocihvKSsic2NhbGUoIixudWxsLCIsIixudWxsLCIpIik7YS5wdXNoKHtpOnMtNCx4OkJkKHQsbil9LHtpOnMtMix4OkJkKGUsaSl9KX1lbHNlIDE9PT1uJiYxPT09aXx8by5wdXNoKHIobykrInNjYWxlKCIrbisiLCIraSsiKSIpfSkoby5zY2FsZVgsby5zY2FsZVksYS5zY2FsZVgsYS5zY2FsZVkscyxsKSxvPWE9bnVsbCxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0tMSxpPWwubGVuZ3RoOysrbjxpOylzWyhlPWxbbl0pLmldPWUueCh0KTtyZXR1cm4gcy5qb2luKCIiKX19fXZhciBRZD1KZCgoZnVuY3Rpb24gdHAodCl7cmV0dXJuIm5vbmUiPT09dD9LZDooV2R8fChXZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKSxxZD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsWWQ9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLFdkLnN0eWxlLnRyYW5zZm9ybT10LHQ9WWQuZ2V0Q29tcHV0ZWRTdHlsZShxZC5hcHBlbmRDaGlsZChXZCksbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIikscWQucmVtb3ZlQ2hpbGQoV2QpLFpkKCsodD10LnNsaWNlKDcsLTEpLnNwbGl0KCIsIikpWzBdLCt0WzFdLCt0WzJdLCt0WzNdLCt0WzRdLCt0WzVdKSl9KSwicHgsICIsInB4KSIsImRlZykiKSxlcD1KZCgoZnVuY3Rpb24gbnAodCl7cmV0dXJuIG51bGw9PXQ/S2Q6KFhkfHwoWGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSksWGQuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLHQpLCh0PVhkLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpP1pkKCh0PXQubWF0cml4KS5hLHQuYix0LmMsdC5kLHQuZSx0LmYpOktkKX0pLCIsICIsIikiLCIpIiksaXA9TWF0aC5TUVJUMjtmdW5jdGlvbiBycCh0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpKzEvdCkvMn1mdW5jdGlvbiBvcCh0LGUpe3ZhciBuLGkscj10WzBdLG89dFsxXSxhPXRbMl0scz1lWzJdLGw9ZVswXS1yLGM9ZVsxXS1vLHU9bCpsK2MqYztpZih1PDFlLTEyKWk9TWF0aC5sb2cocy9hKS9pcCxuPWZ1bmN0aW9uKHQpe3JldHVybltyK3QqbCxvK3QqYyxhKk1hdGguZXhwKGlwKnQqaSldfTtlbHNle3ZhciBoPU1hdGguc3FydCh1KSxkPShzKnMtYSphKzQqdSkvKDIqYSoyKmgpLHA9KHMqcy1hKmEtNCp1KS8oMipzKjIqaCksZj1NYXRoLmxvZyhNYXRoLnNxcnQoZCpkKzEpLWQpLG09TWF0aC5sb2coTWF0aC5zcXJ0KHAqcCsxKS1wKTtpPShtLWYpL2lwLG49ZnVuY3Rpb24odCl7dmFyIGU9dCppLG49cnAoZikscz1hLygyKmgpKihuKihmdW5jdGlvbiB1KHQpe3JldHVybigodD1NYXRoLmV4cCgyKnQpKS0xKS8odCsxKX0pKGlwKmUrZiktKGZ1bmN0aW9uIGQodCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKS0xL3QpLzJ9KShmKSk7cmV0dXJuW3IrcypsLG8rcypjLGEqbi9ycChpcCplK2YpXX19cmV0dXJuIG4uZHVyYXRpb249MWUzKmksbn1mdW5jdGlvbiBhcCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgaT10KChlPSRoKGUpKS5oLChuPSRoKG4pKS5oKSxyPWtkKGUucyxuLnMpLG89a2QoZS5sLG4ubCksYT1rZChlLm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuaD1pKHQpLGUucz1yKHQpLGUubD1vKHQpLGUub3BhY2l0eT1hKHQpLGUrIiJ9fX12YXIgc3A9YXAoQWQpLGxwPWFwKGtkKTtmdW5jdGlvbiBjcCh0LGUpe3ZhciBuPWtkKCh0PXNkKHQpKS5sLChlPXNkKGUpKS5sKSxpPWtkKHQuYSxlLmEpLHI9a2QodC5iLGUuYiksbz1rZCh0Lm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQubD1uKGUpLHQuYT1pKGUpLHQuYj1yKGUpLHQub3BhY2l0eT1vKGUpLHQrIiJ9fWZ1bmN0aW9uIHVwKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBpPXQoKGU9ZmQoZSkpLmgsKG49ZmQobikpLmgpLHI9a2QoZS5jLG4uYyksbz1rZChlLmwsbi5sKSxhPWtkKGUub3BhY2l0eSxuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5oPWkodCksZS5jPXIodCksZS5sPW8odCksZS5vcGFjaXR5PWEodCksZSsiIn19fXZhciBocD11cChBZCksZHA9dXAoa2QpO2Z1bmN0aW9uIHBwKHQpe3JldHVybihmdW5jdGlvbiBlKG4pe2Z1bmN0aW9uIGkoZSxpKXt2YXIgcj10KChlPXhkKGUpKS5oLChpPXhkKGkpKS5oKSxvPWtkKGUucyxpLnMpLGE9a2QoZS5sLGkubCkscz1rZChlLm9wYWNpdHksaS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuaD1yKHQpLGUucz1vKHQpLGUubD1hKE1hdGgucG93KHQsbikpLGUub3BhY2l0eT1zKHQpLGUrIiJ9fXJldHVybiBuPStuLGkuZ2FtbWE9ZSxpfSkoMSl9dmFyIGZwLG1wLGdwPXBwKEFkKSxfcD1wcChrZCkseXA9MCx2cD0wLGJwPTAseHA9MCx3cD0wLFNwPTAsTXA9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsRXA9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07ZnVuY3Rpb24gVHAoKXtyZXR1cm4gd3B8fChFcChDcCksd3A9TXAubm93KCkrU3ApfWZ1bmN0aW9uIENwKCl7d3A9MH1mdW5jdGlvbiBBcCgpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24ga3AodCxlLG4pe3ZhciBpPW5ldyBBcDtyZXR1cm4gaS5yZXN0YXJ0KHQsZSxuKSxpfWZ1bmN0aW9uIExwKCl7VHAoKSwrK3lwO2Zvcih2YXIgdCxlPWZwO2U7KSh0PXdwLWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS15cH1mdW5jdGlvbiBQcCgpe3dwPSh4cD1NcC5ub3coKSkrU3AseXA9dnA9MDt0cnl7THAoKX1maW5hbGx5e3lwPTAsKGZ1bmN0aW9uIHQoKXtmb3IodmFyIHQsZSxuPWZwLGk9MS8wO247KW4uX2NhbGw/KGk+bi5fdGltZSYmKGk9bi5fdGltZSksdD1uLG49bi5fbmV4dCk6KGU9bi5fbmV4dCxuLl9uZXh0PW51bGwsbj10P3QuX25leHQ9ZTpmcD1lKTttcD10LElwKGkpfSkoKSx3cD0wfX1mdW5jdGlvbiBOcCgpe3ZhciB0PU1wLm5vdygpLGU9dC14cDtlPjFlMyYmKFNwLT1lLHhwPXQpfWZ1bmN0aW9uIElwKHQpe3lwfHwodnAmJih2cD1jbGVhclRpbWVvdXQodnApKSx0LXdwPjI0Pyh0PDEvMCYmKHZwPXNldFRpbWVvdXQoUHAsdC1NcC5ub3coKS1TcCkpLGJwJiYoYnA9Y2xlYXJJbnRlcnZhbChicCkpKTooYnB8fCh4cD1NcC5ub3coKSxicD1zZXRJbnRlcnZhbChOcCwxZTMpKSx5cD0xLEVwKFBwKSkpfWZ1bmN0aW9uIFJwKHQsZSxuKXt2YXIgaT1uZXcgQXA7cmV0dXJuIGkucmVzdGFydCgoZnVuY3Rpb24obil7aS5zdG9wKCksdChuK2UpfSksZT1udWxsPT1lPzA6K2UsbiksaX1BcC5wcm90b3R5cGU9a3AucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpBcCxyZXN0YXJ0OmZ1bmN0aW9uKHQsZSxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO249KG51bGw9PW4/VHAoKTorbikrKG51bGw9PWU/MDorZSksdGhpcy5fbmV4dHx8bXA9PT10aGlzfHwobXA/bXAuX25leHQ9dGhpczpmcD10aGlzLG1wPXRoaXMpLHRoaXMuX2NhbGw9dCx0aGlzLl90aW1lPW4sSXAoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsSXAoKSl9fTt2YXIgT3A9bGMoInN0YXJ0IiwiZW5kIiwiY2FuY2VsIiwiaW50ZXJydXB0IiksenA9W107ZnVuY3Rpb24gRHAodCxlLG4saSxyLG8pe3ZhciBhPXQuX190cmFuc2l0aW9uO2lmKGEpe2lmKG4gaW4gYSlyZXR1cm59ZWxzZSB0Ll9fdHJhbnNpdGlvbj17fTshKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBpLHI9dC5fX3RyYW5zaXRpb247ZnVuY3Rpb24gbyhsKXt2YXIgYyx1LGgsZDtpZigxIT09bi5zdGF0ZSlyZXR1cm4gcygpO2ZvcihjIGluIHIpaWYoKGQ9cltjXSkubmFtZT09PW4ubmFtZSl7aWYoMz09PWQuc3RhdGUpcmV0dXJuIFJwKG8pOzQ9PT1kLnN0YXRlPyhkLnN0YXRlPTYsZC50aW1lci5zdG9wKCksZC5vbi5jYWxsKCJpbnRlcnJ1cHQiLHQsdC5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSByW2NdKTorYzxlJiYoZC5zdGF0ZT02LGQudGltZXIuc3RvcCgpLGQub24uY2FsbCgiY2FuY2VsIix0LHQuX19kYXRhX18sZC5pbmRleCxkLmdyb3VwKSxkZWxldGUgcltjXSl9aWYoUnAoKGZ1bmN0aW9uKCl7Mz09PW4uc3RhdGUmJihuLnN0YXRlPTQsbi50aW1lci5yZXN0YXJ0KGEsbi5kZWxheSxuLnRpbWUpLGEobCkpfSkpLG4uc3RhdGU9MixuLm9uLmNhbGwoInN0YXJ0Iix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSwyPT09bi5zdGF0ZSl7Zm9yKG4uc3RhdGU9MyxpPW5ldyBBcnJheShoPW4udHdlZW4ubGVuZ3RoKSxjPTAsdT0tMTtjPGg7KytjKShkPW4udHdlZW5bY10udmFsdWUuY2FsbCh0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSkmJihpWysrdV09ZCk7aS5sZW5ndGg9dSsxfX1mdW5jdGlvbiBhKGUpe2Zvcih2YXIgcj1lPG4uZHVyYXRpb24/bi5lYXNlLmNhbGwobnVsbCxlL24uZHVyYXRpb24pOihuLnRpbWVyLnJlc3RhcnQocyksbi5zdGF0ZT01LDEpLG89LTEsYT1pLmxlbmd0aDsrK288YTspaVtvXS5jYWxsKHQscik7NT09PW4uc3RhdGUmJihuLm9uLmNhbGwoImVuZCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCkscygpKX1mdW5jdGlvbiBzKCl7Zm9yKHZhciBpIGluIG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxkZWxldGUgcltlXSxyKXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259cltlXT1uLG4udGltZXI9a3AoKGZ1bmN0aW9uIGwodCl7bi5zdGF0ZT0xLG4udGltZXIucmVzdGFydChvLG4uZGVsYXksbi50aW1lKSxuLmRlbGF5PD10JiZvKHQtbi5kZWxheSl9KSwwLG4udGltZSl9KSh0LG4se25hbWU6ZSxpbmRleDppLGdyb3VwOnIsb246T3AsdHdlZW46enAsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6MH0pfWZ1bmN0aW9uIEJwKHQsZSl7dmFyIG49RnAodCxlKTtpZihuLnN0YXRlPjApdGhyb3cgbmV3IEVycm9yKCJ0b28gbGF0ZTsgYWxyZWFkeSBzY2hlZHVsZWQiKTtyZXR1cm4gbn1mdW5jdGlvbiBIcCh0LGUpe3ZhciBuPUZwKHQsZSk7aWYobi5zdGF0ZT4zKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZyIpO3JldHVybiBufWZ1bmN0aW9uIEZwKHQsZSl7dmFyIG49dC5fX3RyYW5zaXRpb247aWYoIW58fCEobj1uW2VdKSl0aHJvdyBuZXcgRXJyb3IoInRyYW5zaXRpb24gbm90IGZvdW5kIik7cmV0dXJuIG59ZnVuY3Rpb24gVnAodCxlKXt2YXIgbixpLHIsbz10Ll9fdHJhbnNpdGlvbixhPSEwO2lmKG8pe2ZvcihyIGluIGU9bnVsbD09ZT9udWxsOmUrIiIsbykobj1vW3JdKS5uYW1lPT09ZT8oaT1uLnN0YXRlPjImJm4uc3RhdGU8NSxuLnN0YXRlPTYsbi50aW1lci5zdG9wKCksbi5vbi5jYWxsKGk/ImludGVycnVwdCI6ImNhbmNlbCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksZGVsZXRlIG9bcl0pOmE9ITE7YSYmZGVsZXRlIHQuX190cmFuc2l0aW9ufX1mdW5jdGlvbiBVcCh0LGUpe3ZhciBuLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9SHAodGhpcyx0KSxvPXIudHdlZW47aWYobyE9PW4pZm9yKHZhciBhPTAscz0oaT1uPW8pLmxlbmd0aDthPHM7KythKWlmKGlbYV0ubmFtZT09PWUpeyhpPWkuc2xpY2UoKSkuc3BsaWNlKGEsMSk7YnJlYWt9ci50d2Vlbj1pfX1mdW5jdGlvbiBqcCh0LGUsbil7dmFyIGkscjtpZigiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89SHAodGhpcyx0KSxhPW8udHdlZW47aWYoYSE9PWkpe3I9KGk9YSkuc2xpY2UoKTtmb3IodmFyIHM9e25hbWU6ZSx2YWx1ZTpufSxsPTAsYz1yLmxlbmd0aDtsPGM7KytsKWlmKHJbbF0ubmFtZT09PWUpe3JbbF09czticmVha31sPT09YyYmci5wdXNoKHMpfW8udHdlZW49cn19ZnVuY3Rpb24gR3AodCxlLG4pe3ZhciBpPXQuX2lkO3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9SHAodGhpcyxpKTsodC52YWx1ZXx8KHQudmFsdWU9e30pKVtlXT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pKSxmdW5jdGlvbih0KXtyZXR1cm4gRnAodCxpKS52YWx1ZVtlXX19ZnVuY3Rpb24gV3AodCxlKXt2YXIgbjtyZXR1cm4oIm51bWJlciI9PXR5cGVvZiBlP0JkOmUgaW5zdGFuY2VvZiBCaD9MZDoobj1CaChlKSk/KGU9bixMZCk6VWQpKHQsZSl9ZnVuY3Rpb24gcXAodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIFlwKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gWHAodCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlKHQpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19ZnVuY3Rpb24gJHAodCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTtyZXR1cm4gYT09PW8/bnVsbDphPT09aT9yOnI9ZShpPWEsbil9fWZ1bmN0aW9uIEtwKHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEscyxsPW4odGhpcyk7aWYobnVsbCE9bClyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZSh0KSk9PT0ocz1sKyIiKT9udWxsOmE9PT1pJiZzPT09cj9vOihyPXMsbz1lKGk9YSxsKSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIFpwKHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEscyxsPW4odGhpcyk7aWYobnVsbCE9bClyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCkpPT09KHM9bCsiIik/bnVsbDphPT09aSYmcz09PXI/bzoocj1zLG89ZShpPWEsbCkpO3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gSnAodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dGhpcy5zZXRBdHRyaWJ1dGUodCxlLmNhbGwodGhpcyxuKSl9fWZ1bmN0aW9uIFFwKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUuY2FsbCh0aGlzLG4pKX19ZnVuY3Rpb24gdGYodCxlKXt2YXIgbixpO2Z1bmN0aW9uIHIoKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gciE9PWkmJihuPShpPXIpJiZRcCh0LHIpKSxufXJldHVybiByLl92YWx1ZT1lLHJ9ZnVuY3Rpb24gZWYodCxlKXt2YXIgbixpO2Z1bmN0aW9uIHIoKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gciE9PWkmJihuPShpPXIpJiZKcCh0LHIpKSxufXJldHVybiByLl92YWx1ZT1lLHJ9ZnVuY3Rpb24gbmYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtCcCh0aGlzLHQpLmRlbGF5PStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gcmYodCxlKXtyZXR1cm4gZT0rZSxmdW5jdGlvbigpe0JwKHRoaXMsdCkuZGVsYXk9ZX19ZnVuY3Rpb24gb2YodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtIcCh0aGlzLHQpLmR1cmF0aW9uPStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gYWYodCxlKXtyZXR1cm4gZT0rZSxmdW5jdGlvbigpe0hwKHRoaXMsdCkuZHVyYXRpb249ZX19ZnVuY3Rpb24gc2YodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7SHAodGhpcyx0KS5lYXNlPWV9fWZ1bmN0aW9uIGxmKHQsZSxuKXt2YXIgaSxyLG89KGZ1bmN0aW9uIGEodCl7cmV0dXJuKHQrIiIpLnRyaW0oKS5zcGxpdCgvXnxccysvKS5ldmVyeSgoZnVuY3Rpb24odCl7dmFyIGU9dC5pbmRleE9mKCIuIik7cmV0dXJuIGU+PTAmJih0PXQuc2xpY2UoMCxlKSksIXR8fCJzdGFydCI9PT10fSkpfSkoZSk/QnA6SHA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9byh0aGlzLHQpLHM9YS5vbjtzIT09aSYmKHI9KGk9cykuY29weSgpKS5vbihlLG4pLGEub249cn19dmFyIGNmPXd1LnByb3RvdHlwZS5jb25zdHJ1Y3RvcjtmdW5jdGlvbiB1Zih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBoZih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLmNhbGwodGhpcyxpKSxuKX19ZnVuY3Rpb24gZGYodCxlLG4pe3ZhciBpLHI7ZnVuY3Rpb24gbygpe3ZhciBvPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBvIT09ciYmKGk9KHI9bykmJmhmKHQsbyxuKSksaX1yZXR1cm4gby5fdmFsdWU9ZSxvfWZ1bmN0aW9uIHBmKHQpe3JldHVybiBmdW5jdGlvbihlKXt0aGlzLnRleHRDb250ZW50PXQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBmZih0KXt2YXIgZSxuO2Z1bmN0aW9uIGkoKXt2YXIgaT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gaSE9PW4mJihlPShuPWkpJiZwZihpKSksZX1yZXR1cm4gaS5fdmFsdWU9dCxpfXZhciBtZj0wO2Z1bmN0aW9uIGdmKHQsZSxuLGkpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZSx0aGlzLl9uYW1lPW4sdGhpcy5faWQ9aX1mdW5jdGlvbiBfZih0KXtyZXR1cm4gd3UoKS50cmFuc2l0aW9uKHQpfWZ1bmN0aW9uIHlmKCl7cmV0dXJuKyttZn12YXIgdmY9d3UucHJvdG90eXBlO2Z1bmN0aW9uIGJmKHQpe3JldHVybit0fWZ1bmN0aW9uIHhmKHQpe3JldHVybiB0KnR9ZnVuY3Rpb24gd2YodCl7cmV0dXJuIHQqKDItdCl9ZnVuY3Rpb24gU2YodCl7cmV0dXJuKCh0Kj0yKTw9MT90KnQ6LS10KigyLXQpKzEpLzJ9ZnVuY3Rpb24gTWYodCl7cmV0dXJuIHQqdCp0fWZ1bmN0aW9uIEVmKHQpe3JldHVybi0tdCp0KnQrMX1mdW5jdGlvbiBUZih0KXtyZXR1cm4oKHQqPTIpPD0xP3QqdCp0Oih0LT0yKSp0KnQrMikvMn1nZi5wcm90b3R5cGU9X2YucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpnZixzZWxlY3Q6ZnVuY3Rpb24gQ2YodCl7dmFyIGU9dGhpcy5fbmFtZSxuPXRoaXMuX2lkOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1iYyh0KSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7KythKWZvcih2YXIgcyxsLGM9aVthXSx1PWMubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9Y1tkXSkmJihsPXQuY2FsbChzLHMuX19kYXRhX18sZCxjKSkmJigiX19kYXRhX18iaW4gcyYmKGwuX19kYXRhX189cy5fX2RhdGFfXyksaFtkXT1sLERwKGhbZF0sZSxuLGQsaCxGcChzLG4pKSk7cmV0dXJuIG5ldyBnZihvLHRoaXMuX3BhcmVudHMsZSxuKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIEFmKHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9d2ModCkpO2Zvcih2YXIgaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPVtdLGE9W10scz0wO3M8cjsrK3MpZm9yKHZhciBsLGM9aVtzXSx1PWMubGVuZ3RoLGg9MDtoPHU7KytoKWlmKGw9Y1toXSl7Zm9yKHZhciBkLHA9dC5jYWxsKGwsbC5fX2RhdGFfXyxoLGMpLGY9RnAobCxuKSxtPTAsZz1wLmxlbmd0aDttPGc7KyttKShkPXBbbV0pJiZEcChkLGUsbixtLHAsZik7by5wdXNoKHApLGEucHVzaChsKX1yZXR1cm4gbmV3IGdmKG8sYSxlLG4pfSxmaWx0ZXI6ZnVuY3Rpb24ga2YodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVNjKHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGE9ZVtyXSxzPWEubGVuZ3RoLGw9aVtyXT1bXSxjPTA7YzxzOysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZsLnB1c2gobyk7cmV0dXJuIG5ldyBnZihpLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LG1lcmdlOmZ1bmN0aW9uIExmKHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IGdmKG8sdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uIFBmKCl7cmV0dXJuIG5ldyBjZih0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24gTmYoKXtmb3IodmFyIHQ9dGhpcy5fbmFtZSxlPXRoaXMuX2lkLG49eWYoKSxpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYylpZihhPXNbY10pe3ZhciB1PUZwKGEsZSk7RHAoYSx0LG4sYyxzLHt0aW1lOnUudGltZSt1LmRlbGF5K3UuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjp1LmR1cmF0aW9uLGVhc2U6dS5lYXNlfSl9cmV0dXJuIG5ldyBnZihpLHRoaXMuX3BhcmVudHMsdCxuKX0sY2FsbDp2Zi5jYWxsLG5vZGVzOnZmLm5vZGVzLG5vZGU6dmYubm9kZSxzaXplOnZmLnNpemUsZW1wdHk6dmYuZW1wdHksZWFjaDp2Zi5lYWNoLG9uOmZ1bmN0aW9uIElmKHQsZSl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9GcCh0aGlzLm5vZGUoKSxuKS5vbi5vbih0KTp0aGlzLmVhY2gobGYobix0LGUpKX0sYXR0cjpmdW5jdGlvbiBSZih0LGUpe3ZhciBuPW1jKHQpLGk9InRyYW5zZm9ybSI9PT1uP2VwOldwO3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LCJmdW5jdGlvbiI9PXR5cGVvZiBlPyhuLmxvY2FsP1pwOktwKShuLGksR3AodGhpcywiYXR0ci4iK3QsZSkpOm51bGw9PWU/KG4ubG9jYWw/WXA6cXApKG4pOihuLmxvY2FsPyRwOlhwKShuLGksZSkpfSxhdHRyVHdlZW46ZnVuY3Rpb24gT2YodCxlKXt2YXIgbj0iYXR0ci4iK3Q7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihuPXRoaXMudHdlZW4obikpJiZuLl92YWx1ZTtpZihudWxsPT1lKXJldHVybiB0aGlzLnR3ZWVuKG4sbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3ZhciBpPW1jKHQpO3JldHVybiB0aGlzLnR3ZWVuKG4sKGkubG9jYWw/dGY6ZWYpKGksZSkpfSxzdHlsZTpmdW5jdGlvbiB6Zih0LGUsbil7dmFyIGk9InRyYW5zZm9ybSI9PSh0Kz0iIik/UWQ6V3A7cmV0dXJuIG51bGw9PWU/dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHIodCxlKXt2YXIgbixpLHI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89SGModGhpcyx0KSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLEhjKHRoaXMsdCkpO3JldHVybiBvPT09YT9udWxsOm89PT1uJiZhPT09aT9yOnI9ZShuPW8saT1hKX19KSh0LGkpKS5vbigiZW5kLnN0eWxlLiIrdCx1Zih0KSk6ImZ1bmN0aW9uIj09dHlwZW9mIGU/dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIGEodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1IYyh0aGlzLHQpLHM9bih0aGlzKSxsPXMrIiI7cmV0dXJuIG51bGw9PXMmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLGw9cz1IYyh0aGlzLHQpKSxhPT09bD9udWxsOmE9PT1pJiZsPT09cj9vOihyPWwsbz1lKGk9YSxzKSl9fSkodCxpLEdwKHRoaXMsInN0eWxlLiIrdCxlKSkpLmVhY2goKGZ1bmN0aW9uIG8odCxlKXt2YXIgbixpLHIsbyxhPSJzdHlsZS4iK2Uscz0iZW5kLiIrYTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD1IcCh0aGlzLHQpLGM9bC5vbix1PW51bGw9PWwudmFsdWVbYV0/b3x8KG89dWYoZSkpOnZvaWQgMDtjPT09biYmcj09PXV8fChpPShuPWMpLmNvcHkoKSkub24ocyxyPXUpLGwub249aX19KSh0aGlzLl9pZCx0KSk6dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPUhjKHRoaXMsdCk7cmV0dXJuIGE9PT1vP251bGw6YT09PWk/cjpyPWUoaT1hLG4pfX0pKHQsaSxlKSxuKS5vbigiZW5kLnN0eWxlLiIrdCxudWxsKX0sc3R5bGVUd2VlbjpmdW5jdGlvbiBEZih0LGUsbil7dmFyIGk9InN0eWxlLiIrKHQrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGk9dGhpcy50d2VlbihpKSkmJmkuX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4oaSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oaSxkZih0LGUsbnVsbD09bj8iIjpuKSl9LHRleHQ6ZnVuY3Rpb24gQmYodCl7cmV0dXJuIHRoaXMudHdlZW4oInRleHQiLCJmdW5jdGlvbiI9PXR5cGVvZiB0PyhmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQodGhpcyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9fSkoR3AodGhpcywidGV4dCIsdCkpOihmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KShudWxsPT10PyIiOnQrIiIpKX0sdGV4dFR3ZWVuOmZ1bmN0aW9uIEhmKHQpe3ZhciBlPSJ0ZXh0IjtpZihhcmd1bWVudHMubGVuZ3RoPDEpcmV0dXJuKGU9dGhpcy50d2VlbihlKSkmJmUuX3ZhbHVlO2lmKG51bGw9PXQpcmV0dXJuIHRoaXMudHdlZW4oZSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oZSxmZih0KSl9LHJlbW92ZTpmdW5jdGlvbiBGZigpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtuIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19KSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiBWZih0LGUpe3ZhciBuPXRoaXMuX2lkO2lmKHQrPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBpLHI9RnAodGhpcy5ub2RlKCksbikudHdlZW4sbz0wLGE9ci5sZW5ndGg7bzxhOysrbylpZigoaT1yW29dKS5uYW1lPT09dClyZXR1cm4gaS52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP1VwOmpwKShuLHQsZSkpfSxkZWxheTpmdW5jdGlvbiBVZih0KXt2YXIgZT10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiB0P25mOnJmKShlLHQpKTpGcCh0aGlzLm5vZGUoKSxlKS5kZWxheX0sZHVyYXRpb246ZnVuY3Rpb24gamYodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9vZjphZikoZSx0KSk6RnAodGhpcy5ub2RlKCksZSkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24gR2YodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKHNmKGUsdCkpOkZwKHRoaXMubm9kZSgpLGUpLmVhc2V9LGVuZDpmdW5jdGlvbiBXZigpe3ZhciB0LGUsbj10aGlzLGk9bi5faWQscj1uLnNpemUoKTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG8sYSl7dmFyIHM9e3ZhbHVlOmF9LGw9e3ZhbHVlOmZ1bmN0aW9uKCl7MD09LS1yJiZvKCl9fTtuLmVhY2goKGZ1bmN0aW9uKCl7dmFyIG49SHAodGhpcyxpKSxyPW4ub247ciE9PXQmJigoZT0odD1yKS5jb3B5KCkpLl8uY2FuY2VsLnB1c2gocyksZS5fLmludGVycnVwdC5wdXNoKHMpLGUuXy5lbmQucHVzaChsKSksbi5vbj1lfSkpfSkpfX07dmFyIHFmPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIE1hdGgucG93KHQsZSl9cmV0dXJuIGU9K2Usbi5leHBvbmVudD10LG59KSgzKSxZZj0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiAxLU1hdGgucG93KDEtdCxlKX1yZXR1cm4gZT0rZSxuLmV4cG9uZW50PXQsbn0pKDMpLFhmPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuKCh0Kj0yKTw9MT9NYXRoLnBvdyh0LGUpOjItTWF0aC5wb3coMi10LGUpKS8yfXJldHVybiBlPStlLG4uZXhwb25lbnQ9dCxufSkoMyksJGY9TWF0aC5QSSxLZj0kZi8yO2Z1bmN0aW9uIFpmKHQpe3JldHVybiAxPT0rdD8xOjEtTWF0aC5jb3ModCpLZil9ZnVuY3Rpb24gSmYodCl7cmV0dXJuIE1hdGguc2luKHQqS2YpfWZ1bmN0aW9uIFFmKHQpe3JldHVybigxLU1hdGguY29zKCRmKnQpKS8yfWZ1bmN0aW9uIHRtKHQpe3JldHVybiAxLjAwMDk3NzUxNzEwNjU0OTQqKE1hdGgucG93KDIsLTEwKnQpLS4wMDA5NzY1NjI1KX1mdW5jdGlvbiBlbSh0KXtyZXR1cm4gdG0oMS0rdCl9ZnVuY3Rpb24gbm0odCl7cmV0dXJuIDEtdG0odCl9ZnVuY3Rpb24gaW0odCl7cmV0dXJuKCh0Kj0yKTw9MT90bSgxLXQpOjItdG0odC0xKSkvMn1mdW5jdGlvbiBybSh0KXtyZXR1cm4gMS1NYXRoLnNxcnQoMS10KnQpfWZ1bmN0aW9uIG9tKHQpe3JldHVybiBNYXRoLnNxcnQoMS0gLS10KnQpfWZ1bmN0aW9uIGFtKHQpe3JldHVybigodCo9Mik8PTE/MS1NYXRoLnNxcnQoMS10KnQpOk1hdGguc3FydCgxLSh0LT0yKSp0KSsxKS8yfXZhciBzbT03LjU2MjU7ZnVuY3Rpb24gbG0odCl7cmV0dXJuIDEtY20oMS10KX1mdW5jdGlvbiBjbSh0KXtyZXR1cm4odD0rdCk8LjM2MzYzNjM2MzYzNjM2MzY1P3NtKnQqdDp0PC43MjcyNzI3MjcyNzI3MjczP3NtKih0LT0uNTQ1NDU0NTQ1NDU0NTQ1NCkqdCsuNzU6dDwuOTA5MDkwOTA5MDkwOTA5MT9zbSoodC09LjgxODE4MTgxODE4MTgxODIpKnQrLjkzNzU6c20qKHQtPS45NTQ1NDU0NTQ1NDU0NTQ2KSp0Ky45ODQzNzV9ZnVuY3Rpb24gdW0odCl7cmV0dXJuKCh0Kj0yKTw9MT8xLWNtKDEtdCk6Y20odC0xKSsxKS8yfXZhciBobT0xLjcwMTU4LGRtPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuKHQ9K3QpKnQqKGUqKHQtMSkrdCl9cmV0dXJuIGU9K2Usbi5vdmVyc2hvb3Q9dCxufSkoaG0pLHBtPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuLS10KnQqKCh0KzEpKmUrdCkrMX1yZXR1cm4gZT0rZSxuLm92ZXJzaG9vdD10LG59KShobSksZm09KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4oKHQqPTIpPDE/dCp0KigoZSsxKSp0LWUpOih0LT0yKSp0KigoZSsxKSp0K2UpKzIpLzJ9cmV0dXJuIGU9K2Usbi5vdmVyc2hvb3Q9dCxufSkoaG0pLG1tPTIqTWF0aC5QSSxnbT0oZnVuY3Rpb24gdChlLG4pe3ZhciBpPU1hdGguYXNpbigxLyhlPU1hdGgubWF4KDEsZSkpKSoobi89bW0pO2Z1bmN0aW9uIHIodCl7cmV0dXJuIGUqdG0oLSAtLXQpKk1hdGguc2luKChpLXQpL24pfXJldHVybiByLmFtcGxpdHVkZT1mdW5jdGlvbihlKXtyZXR1cm4gdChlLG4qbW0pfSxyLnBlcmlvZD1mdW5jdGlvbihuKXtyZXR1cm4gdChlLG4pfSxyfSkoMSwuMyksX209KGZ1bmN0aW9uIHQoZSxuKXt2YXIgaT1NYXRoLmFzaW4oMS8oZT1NYXRoLm1heCgxLGUpKSkqKG4vPW1tKTtmdW5jdGlvbiByKHQpe3JldHVybiAxLWUqdG0odD0rdCkqTWF0aC5zaW4oKHQraSkvbil9cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKGUpe3JldHVybiB0KGUsbiptbSl9LHIucGVyaW9kPWZ1bmN0aW9uKG4pe3JldHVybiB0KGUsbil9LHJ9KSgxLC4zKSx5bT0oZnVuY3Rpb24gdChlLG4pe3ZhciBpPU1hdGguYXNpbigxLyhlPU1hdGgubWF4KDEsZSkpKSoobi89bW0pO2Z1bmN0aW9uIHIodCl7cmV0dXJuKCh0PTIqdC0xKTwwP2UqdG0oLXQpKk1hdGguc2luKChpLXQpL24pOjItZSp0bSh0KSpNYXRoLnNpbigoaSt0KS9uKSkvMn1yZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSxuKm1tKX0sci5wZXJpb2Q9ZnVuY3Rpb24obil7cmV0dXJuIHQoZSxuKX0scn0pKDEsLjMpLHZtPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGVhc2VMaW5lYXI6YmYsZWFzZVF1YWQ6U2YsZWFzZVF1YWRJbjp4ZixlYXNlUXVhZE91dDp3ZixlYXNlUXVhZEluT3V0OlNmLGVhc2VDdWJpYzpUZixlYXNlQ3ViaWNJbjpNZixlYXNlQ3ViaWNPdXQ6RWYsZWFzZUN1YmljSW5PdXQ6VGYsZWFzZVBvbHk6WGYsZWFzZVBvbHlJbjpxZixlYXNlUG9seU91dDpZZixlYXNlUG9seUluT3V0OlhmLGVhc2VTaW46UWYsZWFzZVNpbkluOlpmLGVhc2VTaW5PdXQ6SmYsZWFzZVNpbkluT3V0OlFmLGVhc2VFeHA6aW0sZWFzZUV4cEluOmVtLGVhc2VFeHBPdXQ6bm0sZWFzZUV4cEluT3V0OmltLGVhc2VDaXJjbGU6YW0sZWFzZUNpcmNsZUluOnJtLGVhc2VDaXJjbGVPdXQ6b20sZWFzZUNpcmNsZUluT3V0OmFtLGVhc2VCb3VuY2U6Y20sZWFzZUJvdW5jZUluOmxtLGVhc2VCb3VuY2VPdXQ6Y20sZWFzZUJvdW5jZUluT3V0OnVtLGVhc2VCYWNrOmZtLGVhc2VCYWNrSW46ZG0sZWFzZUJhY2tPdXQ6cG0sZWFzZUJhY2tJbk91dDpmbSxlYXNlRWxhc3RpYzpfbSxlYXNlRWxhc3RpY0luOmdtLGVhc2VFbGFzdGljT3V0Ol9tLGVhc2VFbGFzdGljSW5PdXQ6eW19KSxibT17dGltZTpudWxsLGRlbGF5OjAsZHVyYXRpb246MjUwLGVhc2U6VGZ9O2Z1bmN0aW9uIHhtKHQsZSl7Zm9yKHZhciBuOyEobj10Ll9fdHJhbnNpdGlvbil8fCEobj1uW2VdKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIGJtLnRpbWU9VHAoKSxibTtyZXR1cm4gbn13dS5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0aW9uIHdtKHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7VnAodGhpcyx0KX0pKX0sd3UucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24gU20odCl7dmFyIGUsbjt0IGluc3RhbmNlb2YgZ2Y/KGU9dC5faWQsdD10Ll9uYW1lKTooZT15ZigpLChuPWJtKS50aW1lPVRwKCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykoYT1zW2NdKSYmRHAoYSx0LGUsYyxzLG58fHhtKGEsZSkpO3JldHVybiBuZXcgZ2YoaSx0aGlzLl9wYXJlbnRzLHQsZSl9O3ZhciBNbT1bbnVsbF07ZnVuY3Rpb24gRW0odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIFRtKHQsZSxuKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1lLHRoaXMuc2VsZWN0aW9uPW59ZnVuY3Rpb24gQ20oKXt1dS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBBbSgpe3V1LnByZXZlbnREZWZhdWx0KCksdXUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9dmFyIGttPXtuYW1lOiJkcmFnIn0sTG09e25hbWU6InNwYWNlIn0sUG09e25hbWU6ImhhbmRsZSJ9LE5tPXtuYW1lOiJjZW50ZXIifTtmdW5jdGlvbiBJbSh0KXtyZXR1cm5bK3RbMF0sK3RbMV1dfWZ1bmN0aW9uIFJtKHQpe3JldHVybltJbSh0WzBdKSxJbSh0WzFdKV19ZnVuY3Rpb24gT20odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBsaChlLHV1LnRvdWNoZXMsdCl9fXZhciB6bT17bmFtZToieCIsaGFuZGxlczpbInciLCJlIl0ubWFwKEdtKSxpbnB1dDpmdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT10P251bGw6W1srdFswXSxlWzBdWzFdXSxbK3RbMV0sZVsxXVsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlt0WzBdWzBdLHRbMV1bMF1dfX0sRG09e25hbWU6InkiLGhhbmRsZXM6WyJuIiwicyJdLm1hcChHbSksaW5wdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD9udWxsOltbZVswXVswXSwrdFswXV0sW2VbMV1bMF0sK3RbMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVsxXSx0WzFdWzFdXX19LEJtPXtuYW1lOiJ4eSIsaGFuZGxlczpbIm4iLCJ3IiwiZSIsInMiLCJudyIsIm5lIiwic3ciLCJzZSJdLm1hcChHbSksaW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/bnVsbDpSbSh0KX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0fX0sSG09e292ZXJsYXk6ImNyb3NzaGFpciIsc2VsZWN0aW9uOiJtb3ZlIixuOiJucy1yZXNpemUiLGU6ImV3LXJlc2l6ZSIsczoibnMtcmVzaXplIix3OiJldy1yZXNpemUiLG53OiJud3NlLXJlc2l6ZSIsbmU6Im5lc3ctcmVzaXplIixzZToibndzZS1yZXNpemUiLHN3OiJuZXN3LXJlc2l6ZSJ9LEZtPXtlOiJ3Iix3OiJlIixudzoibmUiLG5lOiJudyIsc2U6InN3Iixzdzoic2UifSxWbT17bjoicyIsczoibiIsbnc6InN3IixuZToic2UiLHNlOiJuZSIsc3c6Im53In0sVW09e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOm51bGwsZToxLHM6bnVsbCx3Oi0xLG53Oi0xLG5lOjEsc2U6MSxzdzotMX0sam09e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOi0xLGU6bnVsbCxzOjEsdzpudWxsLG53Oi0xLG5lOi0xLHNlOjEsc3c6MX07ZnVuY3Rpb24gR20odCl7cmV0dXJue3R5cGU6dH19ZnVuY3Rpb24gV20oKXtyZXR1cm4hdXUuY3RybEtleSYmIXV1LmJ1dHRvbn1mdW5jdGlvbiBxbSgpe3ZhciB0PXRoaXMub3duZXJTVkdFbGVtZW50fHx0aGlzO3JldHVybiB0Lmhhc0F0dHJpYnV0ZSgidmlld0JveCIpP1tbKHQ9dC52aWV3Qm94LmJhc2VWYWwpLngsdC55XSxbdC54K3Qud2lkdGgsdC55K3QuaGVpZ2h0XV06W1swLDBdLFt0LndpZHRoLmJhc2VWYWwudmFsdWUsdC5oZWlnaHQuYmFzZVZhbC52YWx1ZV1dfWZ1bmN0aW9uIFltKCl7cmV0dXJuIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50c3x8Im9udG91Y2hzdGFydCJpbiB0aGlzfWZ1bmN0aW9uIFhtKHQpe2Zvcig7IXQuX19icnVzaDspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuO3JldHVybiB0Ll9fYnJ1c2h9ZnVuY3Rpb24gJG0odCl7cmV0dXJuIHRbMF1bMF09PT10WzFdWzBdfHx0WzBdWzFdPT09dFsxXVsxXX1mdW5jdGlvbiBLbSh0KXt2YXIgZT10Ll9fYnJ1c2g7cmV0dXJuIGU/ZS5kaW0ub3V0cHV0KGUuc2VsZWN0aW9uKTpudWxsfWZ1bmN0aW9uIFptKCl7cmV0dXJuIFFtKERtKX1mdW5jdGlvbiBKbSgpe3JldHVybiBRbShCbSl9ZnVuY3Rpb24gUW0odCl7dmFyIGUsbj1xbSxpPVdtLHI9WW0sbz0hMCxhPWxjKCJzdGFydCIsImJydXNoIiwiZW5kIikscz02O2Z1bmN0aW9uIGwoZSl7dmFyIG49ZS5wcm9wZXJ0eSgiX19icnVzaCIsbSkuc2VsZWN0QWxsKCIub3ZlcmxheSIpLmRhdGEoW0dtKCJvdmVybGF5IildKTtuLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJvdmVybGF5IikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5hdHRyKCJjdXJzb3IiLEhtLm92ZXJsYXkpLm1lcmdlKG4pLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9WG0odGhpcykuZXh0ZW50O1N1KHRoaXMpLmF0dHIoIngiLHRbMF1bMF0pLmF0dHIoInkiLHRbMF1bMV0pLmF0dHIoIndpZHRoIix0WzFdWzBdLXRbMF1bMF0pLmF0dHIoImhlaWdodCIsdFsxXVsxXS10WzBdWzFdKX0pKSxlLnNlbGVjdEFsbCgiLnNlbGVjdGlvbiIpLmRhdGEoW0dtKCJzZWxlY3Rpb24iKV0pLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJzZWxlY3Rpb24iKS5hdHRyKCJjdXJzb3IiLEhtLnNlbGVjdGlvbikuYXR0cigiZmlsbCIsIiM3NzciKS5hdHRyKCJmaWxsLW9wYWNpdHkiLC4zKS5hdHRyKCJzdHJva2UiLCIjZmZmIikuYXR0cigic2hhcGUtcmVuZGVyaW5nIiwiY3Jpc3BFZGdlcyIpO3ZhciBpPWUuc2VsZWN0QWxsKCIuaGFuZGxlIikuZGF0YSh0LmhhbmRsZXMsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KSk7aS5leGl0KCkucmVtb3ZlKCksaS5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwoZnVuY3Rpb24odCl7cmV0dXJuImhhbmRsZSBoYW5kbGUtLSIrdC50eXBlfSkpLmF0dHIoImN1cnNvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBIbVt0LnR5cGVdfSkpLGUuZWFjaChjKS5hdHRyKCJmaWxsIiwibm9uZSIpLmF0dHIoInBvaW50ZXItZXZlbnRzIiwiYWxsIikub24oIm1vdXNlZG93bi5icnVzaCIsZCkuZmlsdGVyKHIpLm9uKCJ0b3VjaHN0YXJ0LmJydXNoIixkKS5vbigidG91Y2htb3ZlLmJydXNoIixwKS5vbigidG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2giLGYpLnN0eWxlKCJ0b3VjaC1hY3Rpb24iLCJub25lIikuc3R5bGUoIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciIsInJnYmEoMCwwLDAsMCkiKX1mdW5jdGlvbiBjKCl7dmFyIHQ9U3UodGhpcyksZT1YbSh0aGlzKS5zZWxlY3Rpb247ZT8odC5zZWxlY3RBbGwoIi5zZWxlY3Rpb24iKS5zdHlsZSgiZGlzcGxheSIsbnVsbCkuYXR0cigieCIsZVswXVswXSkuYXR0cigieSIsZVswXVsxXSkuYXR0cigid2lkdGgiLGVbMV1bMF0tZVswXVswXSkuYXR0cigiaGVpZ2h0IixlWzFdWzFdLWVbMF1bMV0pLHQuc2VsZWN0QWxsKCIuaGFuZGxlIikuc3R5bGUoImRpc3BsYXkiLG51bGwpLmF0dHIoIngiLChmdW5jdGlvbih0KXtyZXR1cm4iZSI9PT10LnR5cGVbdC50eXBlLmxlbmd0aC0xXT9lWzFdWzBdLXMvMjplWzBdWzBdLXMvMn0pKS5hdHRyKCJ5IiwoZnVuY3Rpb24odCl7cmV0dXJuInMiPT09dC50eXBlWzBdP2VbMV1bMV0tcy8yOmVbMF1bMV0tcy8yfSkpLmF0dHIoIndpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIm4iPT09dC50eXBlfHwicyI9PT10LnR5cGU/ZVsxXVswXS1lWzBdWzBdK3M6c30pKS5hdHRyKCJoZWlnaHQiLChmdW5jdGlvbih0KXtyZXR1cm4iZSI9PT10LnR5cGV8fCJ3Ij09PXQudHlwZT9lWzFdWzFdLWVbMF1bMV0rczpzfSkpKTp0LnNlbGVjdEFsbCgiLnNlbGVjdGlvbiwuaGFuZGxlIikuc3R5bGUoImRpc3BsYXkiLCJub25lIikuYXR0cigieCIsbnVsbCkuYXR0cigieSIsbnVsbCkuYXR0cigid2lkdGgiLG51bGwpLmF0dHIoImhlaWdodCIsbnVsbCl9ZnVuY3Rpb24gdSh0LGUsbil7dmFyIGk9dC5fX2JydXNoLmVtaXR0ZXI7cmV0dXJuIWl8fG4mJmkuY2xlYW4/bmV3IGgodCxlLG4pOml9ZnVuY3Rpb24gaCh0LGUsbil7dGhpcy50aGF0PXQsdGhpcy5hcmdzPWUsdGhpcy5zdGF0ZT10Ll9fYnJ1c2gsdGhpcy5hY3RpdmU9MCx0aGlzLmNsZWFuPW59ZnVuY3Rpb24gZCgpe2lmKCghZXx8dXUudG91Y2hlcykmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbixyLGEscyxsLGgsZCxwLGYsbSxnLF89dGhpcyx5PXV1LnRhcmdldC5fX2RhdGFfXy50eXBlLHY9InNlbGVjdGlvbiI9PT0obyYmdXUubWV0YUtleT95PSJvdmVybGF5Ijp5KT9rbTpvJiZ1dS5hbHRLZXk/Tm06UG0sYj10PT09RG0/bnVsbDpVbVt5XSx4PXQ9PT16bT9udWxsOmptW3ldLHc9WG0oXyksUz13LmV4dGVudCxNPXcuc2VsZWN0aW9uLEU9U1swXVswXSxUPVNbMF1bMV0sQz1TWzFdWzBdLEE9U1sxXVsxXSxrPTAsTD0wLFA9YiYmeCYmbyYmdXUuc2hpZnRLZXksTj11dS50b3VjaGVzP09tKHV1LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIpOmFoLEk9TihfKSxSPUksTz11KF8sYXJndW1lbnRzLCEwKS5iZWZvcmVzdGFydCgpOyJvdmVybGF5Ij09PXk/KE0mJihmPSEwKSx3LnNlbGVjdGlvbj1NPVtbbj10PT09RG0/RTpJWzBdLGE9dD09PXptP1Q6SVsxXV0sW2w9dD09PURtP0M6bixkPXQ9PT16bT9BOmFdXSk6KG49TVswXVswXSxhPU1bMF1bMV0sbD1NWzFdWzBdLGQ9TVsxXVsxXSkscj1uLHM9YSxoPWwscD1kO3ZhciB6PVN1KF8pLmF0dHIoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpLEQ9ei5zZWxlY3RBbGwoIi5vdmVybGF5IikuYXR0cigiY3Vyc29yIixIbVt5XSk7aWYodXUudG91Y2hlcylPLm1vdmVkPUgsTy5lbmRlZD1WO2Vsc2V7dmFyIEI9U3UodXUudmlldykub24oIm1vdXNlbW92ZS5icnVzaCIsSCwhMCkub24oIm1vdXNldXAuYnJ1c2giLFYsITApO28mJkIub24oImtleWRvd24uYnJ1c2giLFUsITApLm9uKCJrZXl1cC5icnVzaCIsaiwhMCksaGgodXUudmlldyl9Q20oKSxWcChfKSxjLmNhbGwoXyksTy5zdGFydCgpfWZ1bmN0aW9uIEgoKXt2YXIgdD1OKF8pOyFQfHxtfHxnfHwoTWF0aC5hYnModFswXS1SWzBdKT5NYXRoLmFicyh0WzFdLVJbMV0pP2c9ITA6bT0hMCksUj10LGY9ITAsQW0oKSxGKCl9ZnVuY3Rpb24gRigpe3ZhciB0O3N3aXRjaChrPVJbMF0tSVswXSxMPVJbMV0tSVsxXSx2KXtjYXNlIExtOmNhc2Uga206YiYmKGs9TWF0aC5tYXgoRS1uLE1hdGgubWluKEMtbCxrKSkscj1uK2ssaD1sK2spLHgmJihMPU1hdGgubWF4KFQtYSxNYXRoLm1pbihBLWQsTCkpLHM9YStMLHA9ZCtMKTticmVhaztjYXNlIFBtOmI8MD8oaz1NYXRoLm1heChFLW4sTWF0aC5taW4oQy1uLGspKSxyPW4rayxoPWwpOmI+MCYmKGs9TWF0aC5tYXgoRS1sLE1hdGgubWluKEMtbCxrKSkscj1uLGg9bCtrKSx4PDA/KEw9TWF0aC5tYXgoVC1hLE1hdGgubWluKEEtYSxMKSkscz1hK0wscD1kKTp4PjAmJihMPU1hdGgubWF4KFQtZCxNYXRoLm1pbihBLWQsTCkpLHM9YSxwPWQrTCk7YnJlYWs7Y2FzZSBObTpiJiYocj1NYXRoLm1heChFLE1hdGgubWluKEMsbi1rKmIpKSxoPU1hdGgubWF4KEUsTWF0aC5taW4oQyxsK2sqYikpKSx4JiYocz1NYXRoLm1heChULE1hdGgubWluKEEsYS1MKngpKSxwPU1hdGgubWF4KFQsTWF0aC5taW4oQSxkK0wqeCkpKX1oPHImJihiKj0tMSx0PW4sbj1sLGw9dCx0PXIscj1oLGg9dCx5IGluIEZtJiZELmF0dHIoImN1cnNvciIsSG1beT1GbVt5XV0pKSxwPHMmJih4Kj0tMSx0PWEsYT1kLGQ9dCx0PXMscz1wLHA9dCx5IGluIFZtJiZELmF0dHIoImN1cnNvciIsSG1beT1WbVt5XV0pKSx3LnNlbGVjdGlvbiYmKE09dy5zZWxlY3Rpb24pLG0mJihyPU1bMF1bMF0saD1NWzFdWzBdKSxnJiYocz1NWzBdWzFdLHA9TVsxXVsxXSksTVswXVswXT09PXImJk1bMF1bMV09PT1zJiZNWzFdWzBdPT09aCYmTVsxXVsxXT09PXB8fCh3LnNlbGVjdGlvbj1bW3Isc10sW2gscF1dLGMuY2FsbChfKSxPLmJydXNoKCkpfWZ1bmN0aW9uIFYoKXtpZihDbSgpLHV1LnRvdWNoZXMpe2lmKHV1LnRvdWNoZXMubGVuZ3RoKXJldHVybjtlJiZjbGVhclRpbWVvdXQoZSksZT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2U9bnVsbH0pLDUwMCl9ZWxzZSBkaCh1dS52aWV3LGYpLEIub24oImtleWRvd24uYnJ1c2gga2V5dXAuYnJ1c2ggbW91c2Vtb3ZlLmJydXNoIG1vdXNldXAuYnJ1c2giLG51bGwpO3ouYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKSxELmF0dHIoImN1cnNvciIsSG0ub3ZlcmxheSksdy5zZWxlY3Rpb24mJihNPXcuc2VsZWN0aW9uKSwkbShNKSYmKHcuc2VsZWN0aW9uPW51bGwsYy5jYWxsKF8pKSxPLmVuZCgpfWZ1bmN0aW9uIFUoKXtzd2l0Y2godXUua2V5Q29kZSl7Y2FzZSAxNjpQPWImJng7YnJlYWs7Y2FzZSAxODp2PT09UG0mJihiJiYobD1oLWsqYixuPXIraypiKSx4JiYoZD1wLUwqeCxhPXMrTCp4KSx2PU5tLEYoKSk7YnJlYWs7Y2FzZSAzMjp2IT09UG0mJnYhPT1ObXx8KGI8MD9sPWgtazpiPjAmJihuPXItaykseDwwP2Q9cC1MOng+MCYmKGE9cy1MKSx2PUxtLEQuYXR0cigiY3Vyc29yIixIbS5zZWxlY3Rpb24pLEYoKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59QW0oKX1mdW5jdGlvbiBqKCl7c3dpdGNoKHV1LmtleUNvZGUpe2Nhc2UgMTY6UCYmKG09Zz1QPSExLEYoKSk7YnJlYWs7Y2FzZSAxODp2PT09Tm0mJihiPDA/bD1oOmI+MCYmKG49cikseDwwP2Q9cDp4PjAmJihhPXMpLHY9UG0sRigpKTticmVhaztjYXNlIDMyOnY9PT1MbSYmKHV1LmFsdEtleT8oYiYmKGw9aC1rKmIsbj1yK2sqYikseCYmKGQ9cC1MKngsYT1zK0wqeCksdj1ObSk6KGI8MD9sPWg6Yj4wJiYobj1yKSx4PDA/ZD1wOng+MCYmKGE9cyksdj1QbSksRC5hdHRyKCJjdXJzb3IiLEhtW3ldKSxGKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufUFtKCl9fWZ1bmN0aW9uIHAoKXt1KHRoaXMsYXJndW1lbnRzKS5tb3ZlZCgpfWZ1bmN0aW9uIGYoKXt1KHRoaXMsYXJndW1lbnRzKS5lbmRlZCgpfWZ1bmN0aW9uIG0oKXt2YXIgZT10aGlzLl9fYnJ1c2h8fHtzZWxlY3Rpb246bnVsbH07cmV0dXJuIGUuZXh0ZW50PVJtKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKSxlLmRpbT10LGV9cmV0dXJuIGwubW92ZT1mdW5jdGlvbihlLG4pe2Uuc2VsZWN0aW9uP2Uub24oInN0YXJ0LmJydXNoIiwoZnVuY3Rpb24oKXt1KHRoaXMsYXJndW1lbnRzKS5iZWZvcmVzdGFydCgpLnN0YXJ0KCl9KSkub24oImludGVycnVwdC5icnVzaCBlbmQuYnJ1c2giLChmdW5jdGlvbigpe3UodGhpcyxhcmd1bWVudHMpLmVuZCgpfSkpLnR3ZWVuKCJicnVzaCIsKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxpPWUuX19icnVzaCxyPXUoZSxhcmd1bWVudHMpLG89aS5zZWxlY3Rpb24sYT10LmlucHV0KCJmdW5jdGlvbiI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOm4saS5leHRlbnQpLHM9amQobyxhKTtmdW5jdGlvbiBsKHQpe2kuc2VsZWN0aW9uPTE9PT10JiZudWxsPT09YT9udWxsOnModCksYy5jYWxsKGUpLHIuYnJ1c2goKX1yZXR1cm4gbnVsbCE9PW8mJm51bGwhPT1hP2w6bCgxKX0pKTplLmVhY2goKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxpPWFyZ3VtZW50cyxyPWUuX19icnVzaCxvPXQuaW5wdXQoImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseShlLGkpOm4sci5leHRlbnQpLGE9dShlLGkpLmJlZm9yZXN0YXJ0KCk7VnAoZSksci5zZWxlY3Rpb249bnVsbD09PW8/bnVsbDpvLGMuY2FsbChlKSxhLnN0YXJ0KCkuYnJ1c2goKS5lbmQoKX0pKX0sbC5jbGVhcj1mdW5jdGlvbih0KXtsLm1vdmUodCxudWxsKX0saC5wcm90b3R5cGU9e2JlZm9yZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLnN0YXRlLmVtaXR0ZXI9dGhpcyx0aGlzLnN0YXJ0aW5nPSEwKSx0aGlzfSxzdGFydDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0aW5nPyh0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdCgic3RhcnQiKSk6dGhpcy5lbWl0KCJicnVzaCIpLHRoaXN9LGJydXNoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1pdCgiYnJ1c2giKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbihlKXtndShuZXcgVG0obCxlLHQub3V0cHV0KHRoaXMuc3RhdGUuc2VsZWN0aW9uKSksYS5hcHBseSxhLFtlLHRoaXMudGhhdCx0aGlzLmFyZ3NdKX19LGwuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RW0oUm0odCkpLGwpOm59LGwuZmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RW0oISF0KSxsKTppfSxsLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkVtKCEhdCksbCk6cn0sbC5oYW5kbGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LGwpOnN9LGwua2V5TW9kaWZpZXJzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSEhdCxsKTpvfSxsLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9YS5vbi5hcHBseShhLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1hP2w6dH0sbH12YXIgdGc9TWF0aC5jb3MsZWc9TWF0aC5zaW4sbmc9TWF0aC5QSSxpZz1uZy8yLHJnPTIqbmcsb2c9TWF0aC5tYXg7ZnVuY3Rpb24gYWcodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQoZS5zb3VyY2UudmFsdWUrZS50YXJnZXQudmFsdWUsbi5zb3VyY2UudmFsdWUrbi50YXJnZXQudmFsdWUpfX12YXIgc2c9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIGxnKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX12YXIgY2c9TWF0aC5QSSx1Zz0yKmNnLGhnPTFlLTYsZGc9dWctaGc7ZnVuY3Rpb24gcGcoKXt0aGlzLl94MD10aGlzLl95MD10aGlzLl94MT10aGlzLl95MT1udWxsLHRoaXMuXz0iIn1mdW5jdGlvbiBmZygpe3JldHVybiBuZXcgcGd9ZnVuY3Rpb24gbWcodCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIGdnKHQpe3JldHVybiB0LnRhcmdldH1mdW5jdGlvbiBfZyh0KXtyZXR1cm4gdC5yYWRpdXN9ZnVuY3Rpb24geWcodCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiB2Zyh0KXtyZXR1cm4gdC5lbmRBbmdsZX1wZy5wcm90b3R5cGU9ZmcucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpwZyxtb3ZlVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K3QpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K2UpfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5feDEmJih0aGlzLl94MT10aGlzLl94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl8rPSJaIil9LGxpbmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuXys9IkwiKyh0aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MT0rZSl9LHF1YWRyYXRpY0N1cnZlVG86ZnVuY3Rpb24odCxlLG4saSl7dGhpcy5fKz0iUSIrICt0KyIsIisgK2UrIiwiKyh0aGlzLl94MT0rbikrIiwiKyh0aGlzLl95MT0raSl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxlLG4saSxyLG8pe3RoaXMuXys9IkMiKyArdCsiLCIrICtlKyIsIisgK24rIiwiKyAraSsiLCIrKHRoaXMuX3gxPStyKSsiLCIrKHRoaXMuX3kxPStvKX0sYXJjVG86ZnVuY3Rpb24odCxlLG4saSxyKXt2YXIgbz10aGlzLl94MSxhPXRoaXMuX3kxLHM9KG49K24pLSh0PSt0KSxsPShpPStpKS0oZT0rZSksYz1vLXQsdT1hLWUsaD1jKmMrdSp1O2lmKChyPStyKTwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK3IpO2lmKG51bGw9PT10aGlzLl94MSl0aGlzLl8rPSJNIisodGhpcy5feDE9dCkrIiwiKyh0aGlzLl95MT1lKTtlbHNlIGlmKGg+aGcpaWYoTWF0aC5hYnModSpzLWwqYyk+aGcmJnIpe3ZhciBkPW4tbyxwPWktYSxmPXMqcytsKmwsbT1kKmQrcCpwLGc9TWF0aC5zcXJ0KGYpLF89TWF0aC5zcXJ0KGgpLHk9cipNYXRoLnRhbigoY2ctTWF0aC5hY29zKChmK2gtbSkvKDIqZypfKSkpLzIpLHY9eS9fLGI9eS9nO01hdGguYWJzKHYtMSk+aGcmJih0aGlzLl8rPSJMIisodCt2KmMpKyIsIisoZSt2KnUpKSx0aGlzLl8rPSJBIityKyIsIityKyIsMCwwLCIrICsodSpkPmMqcCkrIiwiKyh0aGlzLl94MT10K2IqcykrIiwiKyh0aGlzLl95MT1lK2IqbCl9ZWxzZSB0aGlzLl8rPSJMIisodGhpcy5feDE9dCkrIiwiKyh0aGlzLl95MT1lKX0sYXJjOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt0PSt0LGU9K2Usbz0hIW87dmFyIGE9KG49K24pKk1hdGguY29zKGkpLHM9bipNYXRoLnNpbihpKSxsPXQrYSxjPWUrcyx1PTFebyxoPW8/aS1yOnItaTtpZihuPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIrbik7bnVsbD09PXRoaXMuX3gxP3RoaXMuXys9Ik0iK2wrIiwiK2M6KE1hdGguYWJzKHRoaXMuX3gxLWwpPmhnfHxNYXRoLmFicyh0aGlzLl95MS1jKT5oZykmJih0aGlzLl8rPSJMIitsKyIsIitjKSxuJiYoaDwwJiYoaD1oJXVnK3VnKSxoPmRnP3RoaXMuXys9IkEiK24rIiwiK24rIiwwLDEsIit1KyIsIisodC1hKSsiLCIrKGUtcykrIkEiK24rIiwiK24rIiwwLDEsIit1KyIsIisodGhpcy5feDE9bCkrIiwiKyh0aGlzLl95MT1jKTpoPmhnJiYodGhpcy5fKz0iQSIrbisiLCIrbisiLDAsIisgKyhoPj1jZykrIiwiK3UrIiwiKyh0aGlzLl94MT10K24qTWF0aC5jb3MocikpKyIsIisodGhpcy5feTE9ZStuKk1hdGguc2luKHIpKSkpfSxyZWN0OmZ1bmN0aW9uKHQsZSxuLGkpe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rZSkrImgiKyArbisidiIrICtpKyJoIistbisiWiJ9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX319O3ZhciBiZz0iJCI7ZnVuY3Rpb24geGcoKXt9ZnVuY3Rpb24gd2codCxlKXt2YXIgbj1uZXcgeGc7aWYodCBpbnN0YW5jZW9mIHhnKXQuZWFjaCgoZnVuY3Rpb24odCxlKXtuLnNldChlLHQpfSkpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGkscj0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PWUpZm9yKDsrK3I8bzspbi5zZXQocix0W3JdKTtlbHNlIGZvcig7KytyPG87KW4uc2V0KGUoaT10W3JdLHIsdCksaSl9ZWxzZSBpZih0KWZvcih2YXIgYSBpbiB0KW4uc2V0KGEsdFthXSk7cmV0dXJuIG59ZnVuY3Rpb24gU2coKXtyZXR1cm57fX1mdW5jdGlvbiBNZyh0LGUsbil7dFtlXT1ufWZ1bmN0aW9uIEVnKCl7cmV0dXJuIHdnKCl9ZnVuY3Rpb24gVGcodCxlLG4pe3Quc2V0KGUsbil9ZnVuY3Rpb24gQ2coKXt9eGcucHJvdG90eXBlPXdnLnByb3RvdHlwZT17Y29uc3RydWN0b3I6eGcsaGFzOmZ1bmN0aW9uKHQpe3JldHVybiBiZyt0IGluIHRoaXN9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1tiZyt0XX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXNbYmcrdF09ZSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9YmcrdDtyZXR1cm4gZSBpbiB0aGlzJiZkZWxldGUgdGhpc1tlXX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09YmcmJmRlbGV0ZSB0aGlzW3RdfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PWJnJiZ0LnB1c2goZS5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1iZyYmdC5wdXNoKHRoaXNbZV0pO3JldHVybiB0fSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PWJnJiZ0LnB1c2goe2tleTplLnNsaWNlKDEpLHZhbHVlOnRoaXNbZV19KTtyZXR1cm4gdH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PWJnJiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYodFswXT09PWJnKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1iZyYmdCh0aGlzW2VdLGUuc2xpY2UoMSksdGhpcyl9fTt2YXIgQWc9d2cucHJvdG90eXBlO2Z1bmN0aW9uIGtnKHQsZSl7dmFyIG49bmV3IENnO2lmKHQgaW5zdGFuY2VvZiBDZyl0LmVhY2goKGZ1bmN0aW9uKHQpe24uYWRkKHQpfSkpO2Vsc2UgaWYodCl7dmFyIGk9LTEscj10Lmxlbmd0aDtpZihudWxsPT1lKWZvcig7KytpPHI7KW4uYWRkKHRbaV0pO2Vsc2UgZm9yKDsrK2k8cjspbi5hZGQoZSh0W2ldLGksdCkpfXJldHVybiBufWZ1bmN0aW9uIExnKHQpe3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaChuKTtyZXR1cm4gZX1DZy5wcm90b3R5cGU9a2cucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpDZyxoYXM6QWcuaGFzLGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1tiZysodCs9IiIpXT10LHRoaXN9LHJlbW92ZTpBZy5yZW1vdmUsY2xlYXI6QWcuY2xlYXIsdmFsdWVzOkFnLmtleXMsc2l6ZTpBZy5zaXplLGVtcHR5OkFnLmVtcHR5LGVhY2g6QWcuZWFjaH07dmFyIFBnPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBOZyh0LGUpe3JldHVybiB0LWV9ZnVuY3Rpb24gSWcodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIFJnKHQsZSl7Zm9yKHZhciBuLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspaWYobj1PZyh0LGVbaV0pKXJldHVybiBuO3JldHVybiAwfWZ1bmN0aW9uIE9nKHQsZSl7Zm9yKHZhciBuPWVbMF0saT1lWzFdLHI9LTEsbz0wLGE9dC5sZW5ndGgscz1hLTE7bzxhO3M9bysrKXt2YXIgbD10W29dLGM9bFswXSx1PWxbMV0saD10W3NdLGQ9aFswXSxwPWhbMV07aWYoemcobCxoLGUpKXJldHVybiAwO3U+aSE9cD5pJiZuPChkLWMpKihpLXUpLyhwLXUpK2MmJihyPS1yKX1yZXR1cm4gcn1mdW5jdGlvbiB6Zyh0LGUsbil7dmFyIGk7cmV0dXJuKGZ1bmN0aW9uIHIodCxlLG4pe3JldHVybihlWzBdLXRbMF0pKihuWzFdLXRbMV0pPT0oblswXS10WzBdKSooZVsxXS10WzFdKX0pKHQsZSxuKSYmKGZ1bmN0aW9uIG8odCxlLG4pe3JldHVybiB0PD1lJiZlPD1ufHxuPD1lJiZlPD10fSkodFtpPSsodFswXT09PWVbMF0pXSxuW2ldLGVbaV0pfWZ1bmN0aW9uIERnKCl7fXZhciBCZz1bW10sW1tbMSwxLjVdLFsuNSwxXV1dLFtbWzEuNSwxXSxbMSwxLjVdXV0sW1tbMS41LDFdLFsuNSwxXV1dLFtbWzEsLjVdLFsxLjUsMV1dXSxbW1sxLDEuNV0sWy41LDFdXSxbWzEsLjVdLFsxLjUsMV1dXSxbW1sxLC41XSxbMSwxLjVdXV0sW1tbMSwuNV0sWy41LDFdXV0sW1tbLjUsMV0sWzEsLjVdXV0sW1tbMSwxLjVdLFsxLC41XV1dLFtbWy41LDFdLFsxLC41XV0sW1sxLjUsMV0sWzEsMS41XV1dLFtbWzEuNSwxXSxbMSwuNV1dXSxbW1suNSwxXSxbMS41LDFdXV0sW1tbMSwxLjVdLFsxLjUsMV1dXSxbW1suNSwxXSxbMSwxLjVdXV0sW11dO2Z1bmN0aW9uIEhnKCl7dmFyIHQ9MSxlPTEsbj1qbCxpPXM7ZnVuY3Rpb24gcih0KXt2YXIgZT1uKHQpO2lmKEFycmF5LmlzQXJyYXkoZSkpZT1lLnNsaWNlKCkuc29ydChOZyk7ZWxzZXt2YXIgaT1MbCh0KSxyPWlbMF0sYT1pWzFdO2U9VWwocixhLGUpLGU9emwoTWF0aC5mbG9vcihyL2UpKmUsTWF0aC5mbG9vcihhL2UpKmUsZSl9cmV0dXJuIGUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbyh0LGUpfSkpfWZ1bmN0aW9uIG8obixyKXt2YXIgbz1bXSxzPVtdO3JldHVybihmdW5jdGlvbiBsKG4saSxyKXt2YXIgbyxzLGwsYyx1LGg9bmV3IEFycmF5LGQ9bmV3IEFycmF5O2ZvcihvPXM9LTEsQmdbKGw9blswXT49aSk8PDFdLmZvckVhY2gocCk7KytvPHQtMTspQmdbbHwobD1uW28rMV0+PWkpPDwxXS5mb3JFYWNoKHApO2ZvcihCZ1tsPDwwXS5mb3JFYWNoKHApOysrczxlLTE7KXtmb3Iobz0tMSxCZ1sobD1uW3MqdCt0XT49aSk8PDF8KGM9bltzKnRdPj1pKTw8Ml0uZm9yRWFjaChwKTsrK288dC0xOyl1PWMsQmdbbHwobD1uW3MqdCt0K28rMV0+PWkpPDwxfChjPW5bcyp0K28rMV0+PWkpPDwyfHU8PDNdLmZvckVhY2gocCk7QmdbbHxjPDwzXS5mb3JFYWNoKHApfWZvcihvPS0xLEJnWyhjPW5bcyp0XT49aSk8PDJdLmZvckVhY2gocCk7KytvPHQtMTspdT1jLEJnWyhjPW5bcyp0K28rMV0+PWkpPDwyfHU8PDNdLmZvckVhY2gocCk7ZnVuY3Rpb24gcCh0KXt2YXIgZSxuLGk9W3RbMF1bMF0rbyx0WzBdWzFdK3NdLGw9W3RbMV1bMF0rbyx0WzFdWzFdK3NdLGM9YShpKSx1PWEobCk7KGU9ZFtjXSk/KG49aFt1XSk/KGRlbGV0ZSBkW2UuZW5kXSxkZWxldGUgaFtuLnN0YXJ0XSxlPT09bj8oZS5yaW5nLnB1c2gobCkscihlLnJpbmcpKTpoW2Uuc3RhcnRdPWRbbi5lbmRdPXtzdGFydDplLnN0YXJ0LGVuZDpuLmVuZCxyaW5nOmUucmluZy5jb25jYXQobi5yaW5nKX0pOihkZWxldGUgZFtlLmVuZF0sZS5yaW5nLnB1c2gobCksZFtlLmVuZD11XT1lKTooZT1oW3VdKT8obj1kW2NdKT8oZGVsZXRlIGhbZS5zdGFydF0sZGVsZXRlIGRbbi5lbmRdLGU9PT1uPyhlLnJpbmcucHVzaChsKSxyKGUucmluZykpOmhbbi5zdGFydF09ZFtlLmVuZF09e3N0YXJ0Om4uc3RhcnQsZW5kOmUuZW5kLHJpbmc6bi5yaW5nLmNvbmNhdChlLnJpbmcpfSk6KGRlbGV0ZSBoW2Uuc3RhcnRdLGUucmluZy51bnNoaWZ0KGkpLGhbZS5zdGFydD1jXT1lKTpoW2NdPWRbdV09e3N0YXJ0OmMsZW5kOnUscmluZzpbaSxsXX19QmdbYzw8M10uZm9yRWFjaChwKX0pKG4sciwoZnVuY3Rpb24odCl7aSh0LG4sciksKGZ1bmN0aW9uIGUodCl7Zm9yKHZhciBlPTAsbj10Lmxlbmd0aCxpPXRbbi0xXVsxXSp0WzBdWzBdLXRbbi0xXVswXSp0WzBdWzFdOysrZTxuOylpKz10W2UtMV1bMV0qdFtlXVswXS10W2UtMV1bMF0qdFtlXVsxXTtyZXR1cm4gaX0pKHQpPjA/by5wdXNoKFt0XSk6cy5wdXNoKHQpfSkpLHMuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MCxpPW8ubGVuZ3RoO248aTsrK24paWYoLTEhPT1SZygoZT1vW25dKVswXSx0KSlyZXR1cm4gdm9pZCBlLnB1c2godCl9KSkse3R5cGU6Ik11bHRpUG9seWdvbiIsdmFsdWU6cixjb29yZGluYXRlczpvfX1mdW5jdGlvbiBhKGUpe3JldHVybiAyKmVbMF0rZVsxXSoodCsxKSo0fWZ1bmN0aW9uIHMobixpLHIpe24uZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIG8sYT1uWzBdLHM9blsxXSxsPTB8YSxjPTB8cyx1PWlbYyp0K2xdO2E+MCYmYTx0JiZsPT09YSYmKG5bMF09YSsoci0obz1pW2MqdCtsLTFdKSkvKHUtbyktLjUpLHM+MCYmczxlJiZjPT09cyYmKG5bMV09cysoci0obz1pWyhjLTEpKnQrbF0pKS8odS1vKS0uNSl9KSl9cmV0dXJuIHIuY29udG91cj1vLHIuc2l6ZT1mdW5jdGlvbihuKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5bdCxlXTt2YXIgaT1NYXRoLmNlaWwoblswXSksbz1NYXRoLmNlaWwoblsxXSk7aWYoIShpPjAmJm8+MCkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHNpemUiKTtyZXR1cm4gdD1pLGU9byxyfSxyLnRocmVzaG9sZHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpBcnJheS5pc0FycmF5KHQpP0lnKFBnLmNhbGwodCkpOklnKHQpLHIpOm59LHIuc21vb3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQ/czpEZyxyKTppPT09c30scn1mdW5jdGlvbiBGZyh0LGUsbil7Zm9yKHZhciBpPXQud2lkdGgscj10LmhlaWdodCxvPTErKG48PDEpLGE9MDthPHI7KythKWZvcih2YXIgcz0wLGw9MDtzPGkrbjsrK3MpczxpJiYobCs9dC5kYXRhW3MrYSppXSkscz49biYmKHM+PW8mJihsLT10LmRhdGFbcy1vK2EqaV0pLGUuZGF0YVtzLW4rYSppXT1sL01hdGgubWluKHMrMSxpLTErby1zLG8pKX1mdW5jdGlvbiBWZyh0LGUsbil7Zm9yKHZhciBpPXQud2lkdGgscj10LmhlaWdodCxvPTErKG48PDEpLGE9MDthPGk7KythKWZvcih2YXIgcz0wLGw9MDtzPHIrbjsrK3MpczxyJiYobCs9dC5kYXRhW2ErcyppXSkscz49biYmKHM+PW8mJihsLT10LmRhdGFbYSsocy1vKSppXSksZS5kYXRhW2ErKHMtbikqaV09bC9NYXRoLm1pbihzKzEsci0xK28tcyxvKSl9ZnVuY3Rpb24gVWcodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gamcodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gR2coKXtyZXR1cm4gMX12YXIgV2c9e30scWc9e307ZnVuY3Rpb24gWWcodCl7cmV0dXJuIG5ldyBGdW5jdGlvbigiZCIsInJldHVybiB7Iit0Lm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCkrIjogZFsiK2UrJ10gfHwgIiInfSkpLmpvaW4oIiwiKSsifSIpfWZ1bmN0aW9uIFhnKHQpe3ZhciBlPU9iamVjdC5jcmVhdGUobnVsbCksbj1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtmb3IodmFyIGkgaW4gdClpIGluIGV8fG4ucHVzaChlW2ldPWkpfSkpLG59ZnVuY3Rpb24gJGcodCxlKXt2YXIgbj10KyIiLGk9bi5sZW5ndGg7cmV0dXJuIGk8ZT9uZXcgQXJyYXkoZS1pKzEpLmpvaW4oMCkrbjpufWZ1bmN0aW9uIEtnKHQpe3ZhciBlPW5ldyBSZWdFeHAoJ1siJyt0KyJcblxyXSIpLG49dC5jaGFyQ29kZUF0KDApO2Z1bmN0aW9uIGkodCxlKXt2YXIgaSxyPVtdLG89dC5sZW5ndGgsYT0wLHM9MCxsPW88PTAsYz0hMTtmdW5jdGlvbiB1KCl7aWYobClyZXR1cm4gcWc7aWYoYylyZXR1cm4gYz0hMSxXZzt2YXIgZSxpLHI9YTtpZigzND09PXQuY2hhckNvZGVBdChyKSl7Zm9yKDthKys8byYmMzQhPT10LmNoYXJDb2RlQXQoYSl8fDM0PT09dC5jaGFyQ29kZUF0KCsrYSk7KTtyZXR1cm4oZT1hKT49bz9sPSEwOjEwPT09KGk9dC5jaGFyQ29kZUF0KGErKykpP2M9ITA6MTM9PT1pJiYoYz0hMCwxMD09PXQuY2hhckNvZGVBdChhKSYmKythKSx0LnNsaWNlKHIrMSxlLTEpLnJlcGxhY2UoLyIiL2csJyInKX1mb3IoO2E8bzspe2lmKDEwPT09KGk9dC5jaGFyQ29kZUF0KGU9YSsrKSkpYz0hMDtlbHNlIGlmKDEzPT09aSljPSEwLDEwPT09dC5jaGFyQ29kZUF0KGEpJiYrK2E7ZWxzZSBpZihpIT09biljb250aW51ZTtyZXR1cm4gdC5zbGljZShyLGUpfXJldHVybiBsPSEwLHQuc2xpY2UocixvKX1mb3IoMTA9PT10LmNoYXJDb2RlQXQoby0xKSYmLS1vLDEzPT09dC5jaGFyQ29kZUF0KG8tMSkmJi0tbzsoaT11KCkpIT09cWc7KXtmb3IodmFyIGg9W107aSE9PVdnJiZpIT09cWc7KWgucHVzaChpKSxpPXUoKTtlJiZudWxsPT0oaD1lKGgscysrKSl8fHIucHVzaChoKX1yZXR1cm4gcn1mdW5jdGlvbiByKGUsbil7cmV0dXJuIGUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBhKGVbdF0pfSkpLmpvaW4odCl9KSl9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZS5tYXAoYSkuam9pbih0KX1mdW5jdGlvbiBhKHQpe3JldHVybiBudWxsPT10PyIiOnQgaW5zdGFuY2VvZiBEYXRlPyhmdW5jdGlvbiBuKHQpe3ZhciBlPXQuZ2V0VVRDSG91cnMoKSxuPXQuZ2V0VVRDTWludXRlcygpLGk9dC5nZXRVVENTZWNvbmRzKCkscj10LmdldFVUQ01pbGxpc2Vjb25kcygpO3JldHVybiBpc05hTih0KT8iSW52YWxpZCBEYXRlIjooZnVuY3Rpb24gbyh0KXtyZXR1cm4gdDwwPyItIiskZygtdCw2KTp0Pjk5OTk/IisiKyRnKHQsNik6JGcodCw0KX0pKHQuZ2V0VVRDRnVsbFllYXIoKSkrIi0iKyRnKHQuZ2V0VVRDTW9udGgoKSsxLDIpKyItIiskZyh0LmdldFVUQ0RhdGUoKSwyKSsocj8iVCIrJGcoZSwyKSsiOiIrJGcobiwyKSsiOiIrJGcoaSwyKSsiLiIrJGcociwzKSsiWiI6aT8iVCIrJGcoZSwyKSsiOiIrJGcobiwyKSsiOiIrJGcoaSwyKSsiWiI6bnx8ZT8iVCIrJGcoZSwyKSsiOiIrJGcobiwyKSsiWiI6IiIpfSkodCk6ZS50ZXN0KHQrPSIiKT8nIicrdC5yZXBsYWNlKC8iL2csJyIiJykrJyInOnR9cmV0dXJue3BhcnNlOmZ1bmN0aW9uIHModCxlKXt2YXIgbixyLG89aSh0LChmdW5jdGlvbih0LGkpe2lmKG4pcmV0dXJuIG4odCxpLTEpO3I9dCxuPWU/KGZ1bmN0aW9uIG8odCxlKXt2YXIgbj1ZZyh0KTtyZXR1cm4gZnVuY3Rpb24oaSxyKXtyZXR1cm4gZShuKGkpLHIsdCl9fSkodCxlKTpZZyh0KX0pKTtyZXR1cm4gby5jb2x1bW5zPXJ8fFtdLG99LHBhcnNlUm93czppLGZvcm1hdDpmdW5jdGlvbiBsKGUsbil7cmV0dXJuIG51bGw9PW4mJihuPVhnKGUpKSxbbi5tYXAoYSkuam9pbih0KV0uY29uY2F0KHIoZSxuKSkuam9pbigiXG4iKX0sZm9ybWF0Qm9keTpmdW5jdGlvbiBjKHQsZSl7cmV0dXJuIG51bGw9PWUmJihlPVhnKHQpKSxyKHQsZSkuam9pbigiXG4iKX0sZm9ybWF0Um93czpmdW5jdGlvbiB1KHQpe3JldHVybiB0Lm1hcChvKS5qb2luKCJcbiIpfSxmb3JtYXRSb3c6byxmb3JtYXRWYWx1ZTphfX12YXIgWmc9S2coIiwiKSxKZz1aZy5wYXJzZSxRZz1aZy5wYXJzZVJvd3MsdF89WmcuZm9ybWF0LGVfPVpnLmZvcm1hdEJvZHksbl89WmcuZm9ybWF0Um93cyxpXz1aZy5mb3JtYXRSb3cscl89WmcuZm9ybWF0VmFsdWUsb189S2coIlx0IiksYV89b18ucGFyc2Usc189b18ucGFyc2VSb3dzLGxfPW9fLmZvcm1hdCxjXz1vXy5mb3JtYXRCb2R5LHVfPW9fLmZvcm1hdFJvd3MsaF89b18uZm9ybWF0Um93LGRfPW9fLmZvcm1hdFZhbHVlLHBfPW5ldyBEYXRlKCIyMDE5LTAxLTAxVDAwOjAwIikuZ2V0SG91cnMoKXx8bmV3IERhdGUoIjIwMTktMDctMDFUMDA6MDAiKS5nZXRIb3VycygpO2Z1bmN0aW9uIGZfKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cysiICIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5ibG9iKCl9ZnVuY3Rpb24gbV8odCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzKyIgIit0LnN0YXR1c1RleHQpO3JldHVybiB0LmFycmF5QnVmZmVyKCl9ZnVuY3Rpb24gZ18odCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzKyIgIit0LnN0YXR1c1RleHQpO3JldHVybiB0LnRleHQoKX1mdW5jdGlvbiBfXyh0LGUpe3JldHVybiBmZXRjaCh0LGUpLnRoZW4oZ18pfWZ1bmN0aW9uIHlfKHQpe3JldHVybiBmdW5jdGlvbihlLG4saSl7cmV0dXJuIDI9PT1hcmd1bWVudHMubGVuZ3RoJiYiZnVuY3Rpb24iPT10eXBlb2YgbiYmKGk9bixuPXZvaWQgMCksX18oZSxuKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gdChlLGkpfSkpfX12YXIgdl89eV8oSmcpLGJfPXlfKGFfKTtmdW5jdGlvbiB4Xyh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrIiAiK3Quc3RhdHVzVGV4dCk7aWYoMjA0IT09dC5zdGF0dXMmJjIwNSE9PXQuc3RhdHVzKXJldHVybiB0Lmpzb24oKX1mdW5jdGlvbiB3Xyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gX18oZSxuKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGUsdCl9KSl9fXZhciBTXz13XygiYXBwbGljYXRpb24veG1sIiksTV89d18oInRleHQvaHRtbCIpLEVfPXdfKCJpbWFnZS9zdmcreG1sIik7ZnVuY3Rpb24gVF8odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIENfKCl7cmV0dXJuIDFlLTYqKE1hdGgucmFuZG9tKCktLjUpfWZ1bmN0aW9uIEFfKHQsZSxuLGkpe2lmKGlzTmFOKGUpfHxpc05hTihuKSlyZXR1cm4gdDt2YXIgcixvLGEscyxsLGMsdSxoLGQscD10Ll9yb290LGY9e2RhdGE6aX0sbT10Ll94MCxnPXQuX3kwLF89dC5feDEseT10Ll95MTtpZighcClyZXR1cm4gdC5fcm9vdD1mLHQ7Zm9yKDtwLmxlbmd0aDspaWYoKGM9ZT49KG89KG0rXykvMikpP209bzpfPW8sKHU9bj49KGE9KGcreSkvMikpP2c9YTp5PWEscj1wLCEocD1wW2g9dTw8MXxjXSkpcmV0dXJuIHJbaF09Zix0O2lmKHM9K3QuX3guY2FsbChudWxsLHAuZGF0YSksbD0rdC5feS5jYWxsKG51bGwscC5kYXRhKSxlPT09cyYmbj09PWwpcmV0dXJuIGYubmV4dD1wLHI/cltoXT1mOnQuX3Jvb3Q9Zix0O2Rve3I9cj9yW2hdPW5ldyBBcnJheSg0KTp0Ll9yb290PW5ldyBBcnJheSg0KSwoYz1lPj0obz0obStfKS8yKSk/bT1vOl89bywodT1uPj0oYT0oZyt5KS8yKSk/Zz1hOnk9YX13aGlsZSgoaD11PDwxfGMpPT0oZD0obD49YSk8PDF8cz49bykpO3JldHVybiByW2RdPXAscltoXT1mLHR9ZnVuY3Rpb24ga18odCxlLG4saSxyKXt0aGlzLm5vZGU9dCx0aGlzLngwPWUsdGhpcy55MD1uLHRoaXMueDE9aSx0aGlzLnkxPXJ9ZnVuY3Rpb24gTF8odCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gUF8odCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gTl8odCxlLG4pe3ZhciBpPW5ldyBJXyhudWxsPT1lP0xfOmUsbnVsbD09bj9QXzpuLE5hTixOYU4sTmFOLE5hTik7cmV0dXJuIG51bGw9PXQ/aTppLmFkZEFsbCh0KX1mdW5jdGlvbiBJXyh0LGUsbixpLHIsbyl7dGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl94MD1uLHRoaXMuX3kwPWksdGhpcy5feDE9cix0aGlzLl95MT1vLHRoaXMuX3Jvb3Q9dm9pZCAwfWZ1bmN0aW9uIFJfKHQpe2Zvcih2YXIgZT17ZGF0YTp0LmRhdGF9LG49ZTt0PXQubmV4dDspbj1uLm5leHQ9e2RhdGE6dC5kYXRhfTtyZXR1cm4gZX12YXIgT189Tl8ucHJvdG90eXBlPUlfLnByb3RvdHlwZTtmdW5jdGlvbiB6Xyh0KXtyZXR1cm4gdC54K3Qudnh9ZnVuY3Rpb24gRF8odCl7cmV0dXJuIHQueSt0LnZ5fWZ1bmN0aW9uIEJfKHQpe3JldHVybiB0LmluZGV4fWZ1bmN0aW9uIEhfKHQsZSl7dmFyIG49dC5nZXQoZSk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2UpO3JldHVybiBufWZ1bmN0aW9uIEZfKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gVl8odCl7cmV0dXJuIHQueX1PXy5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQsZSxuPW5ldyBJXyh0aGlzLl94LHRoaXMuX3ksdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpLGk9dGhpcy5fcm9vdDtpZighaSlyZXR1cm4gbjtpZighaS5sZW5ndGgpcmV0dXJuIG4uX3Jvb3Q9Ul8oaSksbjtmb3IodD1be3NvdXJjZTppLHRhcmdldDpuLl9yb290PW5ldyBBcnJheSg0KX1dO2k9dC5wb3AoKTspZm9yKHZhciByPTA7cjw0OysrcikoZT1pLnNvdXJjZVtyXSkmJihlLmxlbmd0aD90LnB1c2goe3NvdXJjZTplLHRhcmdldDppLnRhcmdldFtyXT1uZXcgQXJyYXkoNCl9KTppLnRhcmdldFtyXT1SXyhlKSk7cmV0dXJuIG59LE9fLmFkZD1mdW5jdGlvbiBVXyh0KXt2YXIgZT0rdGhpcy5feC5jYWxsKG51bGwsdCksbj0rdGhpcy5feS5jYWxsKG51bGwsdCk7cmV0dXJuIEFfKHRoaXMuY292ZXIoZSxuKSxlLG4sdCl9LE9fLmFkZEFsbD1mdW5jdGlvbiBqXyh0KXt2YXIgZSxuLGkscixvPXQubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHM9bmV3IEFycmF5KG8pLGw9MS8wLGM9MS8wLHU9LTEvMCxoPS0xLzA7Zm9yKG49MDtuPG87KytuKWlzTmFOKGk9K3RoaXMuX3guY2FsbChudWxsLGU9dFtuXSkpfHxpc05hTihyPSt0aGlzLl95LmNhbGwobnVsbCxlKSl8fChhW25dPWksc1tuXT1yLGk8bCYmKGw9aSksaT51JiYodT1pKSxyPGMmJihjPXIpLHI+aCYmKGg9cikpO2lmKGw+dXx8Yz5oKXJldHVybiB0aGlzO2Zvcih0aGlzLmNvdmVyKGwsYykuY292ZXIodSxoKSxuPTA7bjxvOysrbilBXyh0aGlzLGFbbl0sc1tuXSx0W25dKTtyZXR1cm4gdGhpc30sT18uY292ZXI9ZnVuY3Rpb24gR18odCxlKXtpZihpc05hTih0PSt0KXx8aXNOYU4oZT0rZSkpcmV0dXJuIHRoaXM7dmFyIG49dGhpcy5feDAsaT10aGlzLl95MCxyPXRoaXMuX3gxLG89dGhpcy5feTE7aWYoaXNOYU4obikpcj0obj1NYXRoLmZsb29yKHQpKSsxLG89KGk9TWF0aC5mbG9vcihlKSkrMTtlbHNle2Zvcih2YXIgYSxzLGw9ci1uLGM9dGhpcy5fcm9vdDtuPnR8fHQ+PXJ8fGk+ZXx8ZT49bzspc3dpdGNoKHM9KGU8aSk8PDF8dDxuLChhPW5ldyBBcnJheSg0KSlbc109YyxjPWEsbCo9MixzKXtjYXNlIDA6cj1uK2wsbz1pK2w7YnJlYWs7Y2FzZSAxOm49ci1sLG89aStsO2JyZWFrO2Nhc2UgMjpyPW4rbCxpPW8tbDticmVhaztjYXNlIDM6bj1yLWwsaT1vLWx9dGhpcy5fcm9vdCYmdGhpcy5fcm9vdC5sZW5ndGgmJih0aGlzLl9yb290PWMpfXJldHVybiB0aGlzLl94MD1uLHRoaXMuX3kwPWksdGhpcy5feDE9cix0aGlzLl95MT1vLHRoaXN9LE9fLmRhdGE9ZnVuY3Rpb24gV18oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy52aXNpdCgoZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKWRve3QucHVzaChlLmRhdGEpfXdoaWxlKGU9ZS5uZXh0KX0pKSx0fSxPXy5leHRlbnQ9ZnVuY3Rpb24gcV8odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LE9fLmZpbmQ9ZnVuY3Rpb24gWV8odCxlLG4pe3ZhciBpLHIsbyxhLHMsbCxjLHU9dGhpcy5feDAsaD10aGlzLl95MCxkPXRoaXMuX3gxLHA9dGhpcy5feTEsZj1bXSxtPXRoaXMuX3Jvb3Q7Zm9yKG0mJmYucHVzaChuZXcga18obSx1LGgsZCxwKSksbnVsbD09bj9uPTEvMDoodT10LW4saD1lLW4sZD10K24scD1lK24sbio9bik7bD1mLnBvcCgpOylpZighKCEobT1sLm5vZGUpfHwocj1sLngwKT5kfHwobz1sLnkwKT5wfHwoYT1sLngxKTx1fHwocz1sLnkxKTxoKSlpZihtLmxlbmd0aCl7dmFyIGc9KHIrYSkvMixfPShvK3MpLzI7Zi5wdXNoKG5ldyBrXyhtWzNdLGcsXyxhLHMpLG5ldyBrXyhtWzJdLHIsXyxnLHMpLG5ldyBrXyhtWzFdLGcsbyxhLF8pLG5ldyBrXyhtWzBdLHIsbyxnLF8pKSwoYz0oZT49Xyk8PDF8dD49ZykmJihsPWZbZi5sZW5ndGgtMV0sZltmLmxlbmd0aC0xXT1mW2YubGVuZ3RoLTEtY10sZltmLmxlbmd0aC0xLWNdPWwpfWVsc2V7dmFyIHk9dC0rdGhpcy5feC5jYWxsKG51bGwsbS5kYXRhKSx2PWUtK3RoaXMuX3kuY2FsbChudWxsLG0uZGF0YSksYj15Knkrdip2O2lmKGI8bil7dmFyIHg9TWF0aC5zcXJ0KG49Yik7dT10LXgsaD1lLXgsZD10K3gscD1lK3gsaT1tLmRhdGF9fXJldHVybiBpfSxPXy5yZW1vdmU9ZnVuY3Rpb24gWF8odCl7aWYoaXNOYU4obz0rdGhpcy5feC5jYWxsKG51bGwsdCkpfHxpc05hTihhPSt0aGlzLl95LmNhbGwobnVsbCx0KSkpcmV0dXJuIHRoaXM7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaCxkLHA9dGhpcy5fcm9vdCxmPXRoaXMuX3gwLG09dGhpcy5feTAsZz10aGlzLl94MSxfPXRoaXMuX3kxO2lmKCFwKXJldHVybiB0aGlzO2lmKHAubGVuZ3RoKWZvcig7Oyl7aWYoKGM9bz49KHM9KGYrZykvMikpP2Y9czpnPXMsKHU9YT49KGw9KG0rXykvMikpP209bDpfPWwsZT1wLCEocD1wW2g9dTw8MXxjXSkpcmV0dXJuIHRoaXM7aWYoIXAubGVuZ3RoKWJyZWFrOyhlW2grMSYzXXx8ZVtoKzImM118fGVbaCszJjNdKSYmKG49ZSxkPWgpfWZvcig7cC5kYXRhIT09dDspaWYoaT1wLCEocD1wLm5leHQpKXJldHVybiB0aGlzO3JldHVybihyPXAubmV4dCkmJmRlbGV0ZSBwLm5leHQsaT8ocj9pLm5leHQ9cjpkZWxldGUgaS5uZXh0LHRoaXMpOmU/KHI/ZVtoXT1yOmRlbGV0ZSBlW2hdLChwPWVbMF18fGVbMV18fGVbMl18fGVbM10pJiZwPT09KGVbM118fGVbMl18fGVbMV18fGVbMF0pJiYhcC5sZW5ndGgmJihuP25bZF09cDp0aGlzLl9yb290PXApLHRoaXMpOih0aGlzLl9yb290PXIsdGhpcyl9LE9fLnJlbW92ZUFsbD1mdW5jdGlvbiAkXyh0KXtmb3IodmFyIGU9MCxuPXQubGVuZ3RoO2U8bjsrK2UpdGhpcy5yZW1vdmUodFtlXSk7cmV0dXJuIHRoaXN9LE9fLnJvb3Q9ZnVuY3Rpb24gS18oKXtyZXR1cm4gdGhpcy5fcm9vdH0sT18uc2l6ZT1mdW5jdGlvbiBaXygpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoKGZ1bmN0aW9uKGUpe2lmKCFlLmxlbmd0aClkb3srK3R9d2hpbGUoZT1lLm5leHQpfSkpLHR9LE9fLnZpc2l0PWZ1bmN0aW9uIEpfKHQpe3ZhciBlLG4saSxyLG8sYSxzPVtdLGw9dGhpcy5fcm9vdDtmb3IobCYmcy5wdXNoKG5ldyBrXyhsLHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7ZT1zLnBvcCgpOylpZighdChsPWUubm9kZSxpPWUueDAscj1lLnkwLG89ZS54MSxhPWUueTEpJiZsLmxlbmd0aCl7dmFyIGM9KGkrbykvMix1PShyK2EpLzI7KG49bFszXSkmJnMucHVzaChuZXcga18obixjLHUsbyxhKSksKG49bFsyXSkmJnMucHVzaChuZXcga18obixpLHUsYyxhKSksKG49bFsxXSkmJnMucHVzaChuZXcga18obixjLHIsbyx1KSksKG49bFswXSkmJnMucHVzaChuZXcga18obixpLHIsYyx1KSl9cmV0dXJuIHRoaXN9LE9fLnZpc2l0QWZ0ZXI9ZnVuY3Rpb24gUV8odCl7dmFyIGUsbj1bXSxpPVtdO2Zvcih0aGlzLl9yb290JiZuLnB1c2gobmV3IGtfKHRoaXMuX3Jvb3QsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtlPW4ucG9wKCk7KXt2YXIgcj1lLm5vZGU7aWYoci5sZW5ndGgpe3ZhciBvLGE9ZS54MCxzPWUueTAsbD1lLngxLGM9ZS55MSx1PShhK2wpLzIsaD0ocytjKS8yOyhvPXJbMF0pJiZuLnB1c2gobmV3IGtfKG8sYSxzLHUsaCkpLChvPXJbMV0pJiZuLnB1c2gobmV3IGtfKG8sdSxzLGwsaCkpLChvPXJbMl0pJiZuLnB1c2gobmV3IGtfKG8sYSxoLHUsYykpLChvPXJbM10pJiZuLnB1c2gobmV3IGtfKG8sdSxoLGwsYykpfWkucHVzaChlKX1mb3IoO2U9aS5wb3AoKTspdChlLm5vZGUsZS54MCxlLnkwLGUueDEsZS55MSk7cmV0dXJuIHRoaXN9LE9fLng9ZnVuY3Rpb24gdHkodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3g9dCx0aGlzKTp0aGlzLl94fSxPXy55PWZ1bmN0aW9uIGV5KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl95PXQsdGhpcyk6dGhpcy5feX07dmFyIG55PU1hdGguUEkqKDMtTWF0aC5zcXJ0KDUpKTtmdW5jdGlvbiBpeSh0LGUpe2lmKChuPSh0PWU/dC50b0V4cG9uZW50aWFsKGUtMSk6dC50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoImUiKSk8MClyZXR1cm4gbnVsbDt2YXIgbixpPXQuc2xpY2UoMCxuKTtyZXR1cm5baS5sZW5ndGg+MT9pWzBdK2kuc2xpY2UoMik6aSwrdC5zbGljZShuKzEpXX1mdW5jdGlvbiByeSh0KXtyZXR1cm4odD1peShNYXRoLmFicyh0KSkpP3RbMV06TmFOfXZhciBveSxheT0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBzeSh0KXtpZighKGU9YXkuZXhlYyh0KSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZvcm1hdDogIit0KTt2YXIgZTtyZXR1cm4gbmV3IGx5KHtmaWxsOmVbMV0sYWxpZ246ZVsyXSxzaWduOmVbM10sc3ltYm9sOmVbNF0semVybzplWzVdLHdpZHRoOmVbNl0sY29tbWE6ZVs3XSxwcmVjaXNpb246ZVs4XSYmZVs4XS5zbGljZSgxKSx0cmltOmVbOV0sdHlwZTplWzEwXX0pfWZ1bmN0aW9uIGx5KHQpe3RoaXMuZmlsbD12b2lkIDA9PT10LmZpbGw/IiAiOnQuZmlsbCsiIix0aGlzLmFsaWduPXZvaWQgMD09PXQuYWxpZ24/Ij4iOnQuYWxpZ24rIiIsdGhpcy5zaWduPXZvaWQgMD09PXQuc2lnbj8iLSI6dC5zaWduKyIiLHRoaXMuc3ltYm9sPXZvaWQgMD09PXQuc3ltYm9sPyIiOnQuc3ltYm9sKyIiLHRoaXMuemVybz0hIXQuemVybyx0aGlzLndpZHRoPXZvaWQgMD09PXQud2lkdGg/dm9pZCAwOit0LndpZHRoLHRoaXMuY29tbWE9ISF0LmNvbW1hLHRoaXMucHJlY2lzaW9uPXZvaWQgMD09PXQucHJlY2lzaW9uP3ZvaWQgMDordC5wcmVjaXNpb24sdGhpcy50cmltPSEhdC50cmltLHRoaXMudHlwZT12b2lkIDA9PT10LnR5cGU/IiI6dC50eXBlKyIifWZ1bmN0aW9uIGN5KHQsZSl7dmFyIG49aXkodCxlKTtpZighbilyZXR1cm4gdCsiIjt2YXIgaT1uWzBdLHI9blsxXTtyZXR1cm4gcjwwPyIwLiIrbmV3IEFycmF5KC1yKS5qb2luKCIwIikraTppLmxlbmd0aD5yKzE/aS5zbGljZSgwLHIrMSkrIi4iK2kuc2xpY2UocisxKTppK25ldyBBcnJheShyLWkubGVuZ3RoKzIpLmpvaW4oIjAiKX1zeS5wcm90b3R5cGU9bHkucHJvdG90eXBlLGx5LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz8iMCI6IiIpKyh2b2lkIDA9PT10aGlzLndpZHRoPyIiOk1hdGgubWF4KDEsMHx0aGlzLndpZHRoKSkrKHRoaXMuY29tbWE/IiwiOiIiKSsodm9pZCAwPT09dGhpcy5wcmVjaXNpb24/IiI6Ii4iK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpKyh0aGlzLnRyaW0/In4iOiIiKSt0aGlzLnR5cGV9O3ZhciB1eT17IiUiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuKDEwMCp0KS50b0ZpeGVkKGUpfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiB0KyIifSxkOmZ1bmN0aW9uIGh5KHQpe3JldHVybiBNYXRoLmFicyh0PU1hdGgucm91bmQodCkpPj0xZTIxP3QudG9Mb2NhbGVTdHJpbmcoImVuIikucmVwbGFjZSgvLC9nLCIiKTp0LnRvU3RyaW5nKDEwKX0sZTpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRXhwb25lbnRpYWwoZSl9LGY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0ZpeGVkKGUpfSxnOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9QcmVjaXNpb24oZSl9LG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24odCxlKXtyZXR1cm4gY3koMTAwKnQsZSl9LHI6Y3ksczpmdW5jdGlvbiBkeSh0LGUpe3ZhciBuPWl5KHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIGk9blswXSxyPW5bMV0sbz1yLShveT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihyLzMpKSkpKzEsYT1pLmxlbmd0aDtyZXR1cm4gbz09PWE/aTpvPmE/aStuZXcgQXJyYXkoby1hKzEpLmpvaW4oIjAiKTpvPjA/aS5zbGljZSgwLG8pKyIuIitpLnNsaWNlKG8pOiIwLiIrbmV3IEFycmF5KDEtbykuam9pbigiMCIpK2l5KHQsTWF0aC5tYXgoMCxlK28tMSkpWzBdfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX19O2Z1bmN0aW9uIHB5KHQpe3JldHVybiB0fXZhciBmeSxteSxneSxfeT1BcnJheS5wcm90b3R5cGUubWFwLHl5PVsieSIsInoiLCJhIiwiZiIsInAiLCJuIiwiwrUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXTtmdW5jdGlvbiB2eSh0KXt2YXIgZT12b2lkIDA9PT10Lmdyb3VwaW5nfHx2b2lkIDA9PT10LnRob3VzYW5kcz9weTooZnVuY3Rpb24gbih0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe2Zvcih2YXIgcj1uLmxlbmd0aCxvPVtdLGE9MCxzPXRbMF0sbD0wO3I+MCYmcz4wJiYobCtzKzE+aSYmKHM9TWF0aC5tYXgoMSxpLWwpKSxvLnB1c2gobi5zdWJzdHJpbmcoci09cyxyK3MpKSwhKChsKz1zKzEpPmkpKTspcz10W2E9KGErMSkldC5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKGUpfX0pKF95LmNhbGwodC5ncm91cGluZyxOdW1iZXIpLHQudGhvdXNhbmRzKyIiKSxpPXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVswXSsiIixyPXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVsxXSsiIixvPXZvaWQgMD09PXQuZGVjaW1hbD8iLiI6dC5kZWNpbWFsKyIiLGE9dm9pZCAwPT09dC5udW1lcmFscz9weTooZnVuY3Rpb24gcyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvWzAtOV0vZywoZnVuY3Rpb24oZSl7cmV0dXJuIHRbK2VdfSkpfX0pKF95LmNhbGwodC5udW1lcmFscyxTdHJpbmcpKSxsPXZvaWQgMD09PXQucGVyY2VudD8iJSI6dC5wZXJjZW50KyIiLGM9dm9pZCAwPT09dC5taW51cz8iLSI6dC5taW51cysiIix1PXZvaWQgMD09PXQubmFuPyJOYU4iOnQubmFuKyIiO2Z1bmN0aW9uIGgodCl7dmFyIG49KHQ9c3kodCkpLmZpbGwscz10LmFsaWduLGg9dC5zaWduLGQ9dC5zeW1ib2wscD10Lnplcm8sZj10LndpZHRoLG09dC5jb21tYSxnPXQucHJlY2lzaW9uLF89dC50cmltLHk9dC50eXBlOyJuIj09PXk/KG09ITAseT0iZyIpOnV5W3ldfHwodm9pZCAwPT09ZyYmKGc9MTIpLF89ITAseT0iZyIpLChwfHwiMCI9PT1uJiYiPSI9PT1zKSYmKHA9ITAsbj0iMCIscz0iPSIpO3ZhciB2PSIkIj09PWQ/aToiIyI9PT1kJiYvW2JveFhdLy50ZXN0KHkpPyIwIit5LnRvTG93ZXJDYXNlKCk6IiIsYj0iJCI9PT1kP3I6L1slcF0vLnRlc3QoeSk/bDoiIix4PXV5W3ldLHc9L1tkZWZncHJzJV0vLnRlc3QoeSk7ZnVuY3Rpb24gUyh0KXt2YXIgaSxyLGwsZD12LFM9YjtpZigiYyI9PT15KVM9eCh0KStTLHQ9IiI7ZWxzZXt2YXIgTT0odD0rdCk8MHx8MS90PDA7aWYodD1pc05hTih0KT91OngoTWF0aC5hYnModCksZyksXyYmKHQ9KGZ1bmN0aW9uIEUodCl7dDpmb3IodmFyIGUsbj10Lmxlbmd0aCxpPTEscj0tMTtpPG47KytpKXN3aXRjaCh0W2ldKXtjYXNlIi4iOnI9ZT1pO2JyZWFrO2Nhc2UiMCI6MD09PXImJihyPWkpLGU9aTticmVhaztkZWZhdWx0OmlmKCErdFtpXSlicmVhayB0O3I+MCYmKHI9MCl9cmV0dXJuIHI+MD90LnNsaWNlKDAscikrdC5zbGljZShlKzEpOnR9KSh0KSksTSYmMD09K3QmJiIrIiE9PWgmJihNPSExKSxkPShNPyIoIj09PWg/aDpjOiItIj09PWh8fCIoIj09PWg/IiI6aCkrZCxTPSgicyI9PT15P3l5Wzgrb3kvM106IiIpK1MrKE0mJiIoIj09PWg/IikiOiIiKSx3KWZvcihpPS0xLHI9dC5sZW5ndGg7KytpPHI7KWlmKDQ4PihsPXQuY2hhckNvZGVBdChpKSl8fGw+NTcpe1M9KDQ2PT09bD9vK3Quc2xpY2UoaSsxKTp0LnNsaWNlKGkpKStTLHQ9dC5zbGljZSgwLGkpO2JyZWFrfX1tJiYhcCYmKHQ9ZSh0LDEvMCkpO3ZhciBUPWQubGVuZ3RoK3QubGVuZ3RoK1MubGVuZ3RoLEM9VDxmP25ldyBBcnJheShmLVQrMSkuam9pbihuKToiIjtzd2l0Y2gobSYmcCYmKHQ9ZShDK3QsQy5sZW5ndGg/Zi1TLmxlbmd0aDoxLzApLEM9IiIpLHMpe2Nhc2UiPCI6dD1kK3QrUytDO2JyZWFrO2Nhc2UiPSI6dD1kK0MrdCtTO2JyZWFrO2Nhc2UiXiI6dD1DLnNsaWNlKDAsVD1DLmxlbmd0aD4+MSkrZCt0K1MrQy5zbGljZShUKTticmVhaztkZWZhdWx0OnQ9QytkK3QrU31yZXR1cm4gYSh0KX1yZXR1cm4gZz12b2lkIDA9PT1nPzY6L1tncHJzXS8udGVzdCh5KT9NYXRoLm1heCgxLE1hdGgubWluKDIxLGcpKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLGcpKSxTLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQrIiJ9LFN9cmV0dXJue2Zvcm1hdDpoLGZvcm1hdFByZWZpeDpmdW5jdGlvbiBkKHQsZSl7dmFyIG49aCgoKHQ9c3kodCkpLnR5cGU9ImYiLHQpKSxpPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHJ5KGUpLzMpKSkscj1NYXRoLnBvdygxMCwtaSksbz15eVs4K2kvM107cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuKHIqdCkrb319fX1mdW5jdGlvbiBieSh0KXtyZXR1cm4gZnk9dnkodCksbXk9ZnkuZm9ybWF0LGd5PWZ5LmZvcm1hdFByZWZpeCxmeX1mdW5jdGlvbiB4eSh0KXtyZXR1cm4gTWF0aC5tYXgoMCwtcnkoTWF0aC5hYnModCkpKX1mdW5jdGlvbiB3eSh0LGUpe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHJ5KGUpLzMpKSktcnkoTWF0aC5hYnModCkpKX1mdW5jdGlvbiBTeSh0LGUpe3JldHVybiB0PU1hdGguYWJzKHQpLGU9TWF0aC5hYnMoZSktdCxNYXRoLm1heCgwLHJ5KGUpLXJ5KHQpKSsxfWZ1bmN0aW9uIE15KCl7cmV0dXJuIG5ldyBFeX1mdW5jdGlvbiBFeSgpe3RoaXMucmVzZXQoKX1ieSh7ZGVjaW1hbDoiLiIsdGhvdXNhbmRzOiIsIixncm91cGluZzpbM10sY3VycmVuY3k6WyIkIiwiIl0sbWludXM6Ii0ifSksRXkucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpFeSxyZXNldDpmdW5jdGlvbigpe3RoaXMucz10aGlzLnQ9MH0sYWRkOmZ1bmN0aW9uKHQpe0N5KFR5LHQsdGhpcy50KSxDeSh0aGlzLFR5LnMsdGhpcy5zKSx0aGlzLnM/dGhpcy50Kz1UeS50OnRoaXMucz1UeS50fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc319O3ZhciBUeT1uZXcgRXk7ZnVuY3Rpb24gQ3kodCxlLG4pe3ZhciBpPXQucz1lK24scj1pLWU7dC50PWUtKGktcikrKG4tcil9dmFyIEF5PTFlLTYsa3k9MWUtMTIsTHk9TWF0aC5QSSxQeT1MeS8yLE55PUx5LzQsSXk9MipMeSxSeT0xODAvTHksT3k9THkvMTgwLHp5PU1hdGguYWJzLER5PU1hdGguYXRhbixCeT1NYXRoLmF0YW4yLEh5PU1hdGguY29zLEZ5PU1hdGguY2VpbCxWeT1NYXRoLmV4cCxVeT1NYXRoLmxvZyxqeT1NYXRoLnBvdyxHeT1NYXRoLnNpbixXeT1NYXRoLnNpZ258fGZ1bmN0aW9uKHQpe3JldHVybiB0PjA/MTp0PDA/LTE6MH0scXk9TWF0aC5zcXJ0LFl5PU1hdGgudGFuO2Z1bmN0aW9uIFh5KHQpe3JldHVybiB0PjE/MDp0PC0xP0x5Ok1hdGguYWNvcyh0KX1mdW5jdGlvbiAkeSh0KXtyZXR1cm4gdD4xP1B5OnQ8LTE/LVB5Ok1hdGguYXNpbih0KX1mdW5jdGlvbiBLeSh0KXtyZXR1cm4odD1HeSh0LzIpKSp0fWZ1bmN0aW9uIFp5KCl7fWZ1bmN0aW9uIEp5KHQsZSl7dCYmdHYuaGFzT3duUHJvcGVydHkodC50eXBlKSYmdHZbdC50eXBlXSh0LGUpfXZhciBReT17RmVhdHVyZTpmdW5jdGlvbih0LGUpe0p5KHQuZ2VvbWV0cnksZSl9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZmVhdHVyZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylKeShuW2ldLmdlb21ldHJ5LGUpfX0sdHY9e1NwaGVyZTpmdW5jdGlvbih0LGUpe2Uuc3BoZXJlKCl9LFBvaW50OmZ1bmN0aW9uKHQsZSl7ZS5wb2ludCgodD10LmNvb3JkaW5hdGVzKVswXSx0WzFdLHRbMl0pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOyllLnBvaW50KCh0PW5baV0pWzBdLHRbMV0sdFsyXSl9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtldih0LmNvb3JkaW5hdGVzLGUsMCl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspZXYobltpXSxlLDApfSxQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7bnYodC5jb29yZGluYXRlcyxlKX0sTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOyludihuW2ldLGUpfSxHZW9tZXRyeUNvbGxlY3Rpb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5nZW9tZXRyaWVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspSnkobltpXSxlKX19O2Z1bmN0aW9uIGV2KHQsZSxuKXt2YXIgaSxyPS0xLG89dC5sZW5ndGgtbjtmb3IoZS5saW5lU3RhcnQoKTsrK3I8bzspZS5wb2ludCgoaT10W3JdKVswXSxpWzFdLGlbMl0pO2UubGluZUVuZCgpfWZ1bmN0aW9uIG52KHQsZSl7dmFyIG49LTEsaT10Lmxlbmd0aDtmb3IoZS5wb2x5Z29uU3RhcnQoKTsrK248aTspZXYodFtuXSxlLDEpO2UucG9seWdvbkVuZCgpfWZ1bmN0aW9uIGl2KHQsZSl7dCYmUXkuaGFzT3duUHJvcGVydHkodC50eXBlKT9ReVt0LnR5cGVdKHQsZSk6SnkodCxlKX12YXIgcnYsb3YsYXYsc3YsbHYsY3Y9TXkoKSx1dj1NeSgpLGh2PXtwb2ludDpaeSxsaW5lU3RhcnQ6WnksbGluZUVuZDpaeSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtjdi5yZXNldCgpLGh2LmxpbmVTdGFydD1kdixodi5saW5lRW5kPXB2fSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9K2N2O3V2LmFkZCh0PDA/SXkrdDp0KSx0aGlzLmxpbmVTdGFydD10aGlzLmxpbmVFbmQ9dGhpcy5wb2ludD1aeX0sc3BoZXJlOmZ1bmN0aW9uKCl7dXYuYWRkKEl5KX19O2Z1bmN0aW9uIGR2KCl7aHYucG9pbnQ9ZnZ9ZnVuY3Rpb24gcHYoKXttdihydixvdil9ZnVuY3Rpb24gZnYodCxlKXtodi5wb2ludD1tdixydj10LG92PWUsYXY9dCo9T3ksc3Y9SHkoZT0oZSo9T3kpLzIrTnkpLGx2PUd5KGUpfWZ1bmN0aW9uIG12KHQsZSl7dmFyIG49KHQqPU95KS1hdixpPW4+PTA/MTotMSxyPWkqbixvPUh5KGU9KGUqPU95KS8yK055KSxhPUd5KGUpLHM9bHYqYSxsPXN2Km8rcypIeShyKSxjPXMqaSpHeShyKTtjdi5hZGQoQnkoYyxsKSksYXY9dCxzdj1vLGx2PWF9ZnVuY3Rpb24gZ3YodCl7cmV0dXJuW0J5KHRbMV0sdFswXSksJHkodFsyXSldfWZ1bmN0aW9uIF92KHQpe3ZhciBlPXRbMF0sbj10WzFdLGk9SHkobik7cmV0dXJuW2kqSHkoZSksaSpHeShlKSxHeShuKV19ZnVuY3Rpb24geXYodCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXSt0WzJdKmVbMl19ZnVuY3Rpb24gdnYodCxlKXtyZXR1cm5bdFsxXSplWzJdLXRbMl0qZVsxXSx0WzJdKmVbMF0tdFswXSplWzJdLHRbMF0qZVsxXS10WzFdKmVbMF1dfWZ1bmN0aW9uIGJ2KHQsZSl7dFswXSs9ZVswXSx0WzFdKz1lWzFdLHRbMl0rPWVbMl19ZnVuY3Rpb24geHYodCxlKXtyZXR1cm5bdFswXSplLHRbMV0qZSx0WzJdKmVdfWZ1bmN0aW9uIHd2KHQpe3ZhciBlPXF5KHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdKTt0WzBdLz1lLHRbMV0vPWUsdFsyXS89ZX12YXIgU3YsTXYsRXYsVHYsQ3YsQXYsa3YsTHYsUHYsTnYsSXYsUnYsT3YsenYsRHYsQnYsSHYsRnYsVnYsVXYsanYsR3YsV3YscXYsWXYsWHYsJHY9TXkoKSxLdj17cG9pbnQ6WnYsbGluZVN0YXJ0OlF2LGxpbmVFbmQ6dGIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7S3YucG9pbnQ9ZWIsS3YubGluZVN0YXJ0PW5iLEt2LmxpbmVFbmQ9aWIsJHYucmVzZXQoKSxodi5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2h2LnBvbHlnb25FbmQoKSxLdi5wb2ludD1adixLdi5saW5lU3RhcnQ9UXYsS3YubGluZUVuZD10YixjdjwwPyhTdj0tKEV2PTE4MCksTXY9LShUdj05MCkpOiR2PkF5P1R2PTkwOiR2PC0xZS02JiYoTXY9LTkwKSxOdlswXT1TdixOdlsxXT1Fdn0sc3BoZXJlOmZ1bmN0aW9uKCl7U3Y9LShFdj0xODApLE12PS0oVHY9OTApfX07ZnVuY3Rpb24gWnYodCxlKXtQdi5wdXNoKE52PVtTdj10LEV2PXRdKSxlPE12JiYoTXY9ZSksZT5UdiYmKFR2PWUpfWZ1bmN0aW9uIEp2KHQsZSl7dmFyIG49X3YoW3QqT3ksZSpPeV0pO2lmKEx2KXt2YXIgaT12dihMdixuKSxyPXZ2KFtpWzFdLC1pWzBdLDBdLGkpO3d2KHIpLHI9Z3Yocik7dmFyIG8sYT10LUN2LHM9YT4wPzE6LTEsbD1yWzBdKlJ5KnMsYz16eShhKT4xODA7Y14ocypDdjxsJiZsPHMqdCk/KG89clsxXSpSeSk+VHYmJihUdj1vKTpjXihzKkN2PChsPShsKzM2MCklMzYwLTE4MCkmJmw8cyp0KT8obz0tclsxXSpSeSk8TXYmJihNdj1vKTooZTxNdiYmKE12PWUpLGU+VHYmJihUdj1lKSksYz90PEN2P3JiKFN2LHQpPnJiKFN2LEV2KSYmKEV2PXQpOnJiKHQsRXYpPnJiKFN2LEV2KSYmKFN2PXQpOkV2Pj1Tdj8odDxTdiYmKFN2PXQpLHQ+RXYmJihFdj10KSk6dD5Ddj9yYihTdix0KT5yYihTdixFdikmJihFdj10KTpyYih0LEV2KT5yYihTdixFdikmJihTdj10KX1lbHNlIFB2LnB1c2goTnY9W1N2PXQsRXY9dF0pO2U8TXYmJihNdj1lKSxlPlR2JiYoVHY9ZSksTHY9bixDdj10fWZ1bmN0aW9uIFF2KCl7S3YucG9pbnQ9SnZ9ZnVuY3Rpb24gdGIoKXtOdlswXT1TdixOdlsxXT1FdixLdi5wb2ludD1adixMdj1udWxsfWZ1bmN0aW9uIGViKHQsZSl7aWYoTHYpe3ZhciBuPXQtQ3Y7JHYuYWRkKHp5KG4pPjE4MD9uKyhuPjA/MzYwOi0zNjApOm4pfWVsc2UgQXY9dCxrdj1lO2h2LnBvaW50KHQsZSksSnYodCxlKX1mdW5jdGlvbiBuYigpe2h2LmxpbmVTdGFydCgpfWZ1bmN0aW9uIGliKCl7ZWIoQXYsa3YpLGh2LmxpbmVFbmQoKSx6eSgkdik+QXkmJihTdj0tKEV2PTE4MCkpLE52WzBdPVN2LE52WzFdPUV2LEx2PW51bGx9ZnVuY3Rpb24gcmIodCxlKXtyZXR1cm4oZS09dCk8MD9lKzM2MDplfWZ1bmN0aW9uIG9iKHQsZSl7cmV0dXJuIHRbMF0tZVswXX1mdW5jdGlvbiBhYih0LGUpe3JldHVybiB0WzBdPD10WzFdP3RbMF08PWUmJmU8PXRbMV06ZTx0WzBdfHx0WzFdPGV9dmFyIHNiPXtzcGhlcmU6WnkscG9pbnQ6bGIsbGluZVN0YXJ0OnViLGxpbmVFbmQ6cGIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7c2IubGluZVN0YXJ0PWZiLHNiLmxpbmVFbmQ9bWJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtzYi5saW5lU3RhcnQ9dWIsc2IubGluZUVuZD1wYn19O2Z1bmN0aW9uIGxiKHQsZSl7dCo9T3k7dmFyIG49SHkoZSo9T3kpO2NiKG4qSHkodCksbipHeSh0KSxHeShlKSl9ZnVuY3Rpb24gY2IodCxlLG4peysrSXYsT3YrPSh0LU92KS9Jdix6dis9KGUtenYpL0l2LER2Kz0obi1EdikvSXZ9ZnVuY3Rpb24gdWIoKXtzYi5wb2ludD1oYn1mdW5jdGlvbiBoYih0LGUpe3QqPU95O3ZhciBuPUh5KGUqPU95KTtxdj1uKkh5KHQpLFl2PW4qR3kodCksWHY9R3koZSksc2IucG9pbnQ9ZGIsY2IocXYsWXYsWHYpfWZ1bmN0aW9uIGRiKHQsZSl7dCo9T3k7dmFyIG49SHkoZSo9T3kpLGk9bipIeSh0KSxyPW4qR3kodCksbz1HeShlKSxhPUJ5KHF5KChhPVl2Km8tWHYqcikqYSsoYT1YdippLXF2Km8pKmErKGE9cXYqci1ZdippKSphKSxxdippK1l2KnIrWHYqbyk7UnYrPWEsQnYrPWEqKHF2Kyhxdj1pKSksSHYrPWEqKFl2KyhZdj1yKSksRnYrPWEqKFh2KyhYdj1vKSksY2IocXYsWXYsWHYpfWZ1bmN0aW9uIHBiKCl7c2IucG9pbnQ9bGJ9ZnVuY3Rpb24gZmIoKXtzYi5wb2ludD1nYn1mdW5jdGlvbiBtYigpe19iKEd2LFd2KSxzYi5wb2ludD1sYn1mdW5jdGlvbiBnYih0LGUpe0d2PXQsV3Y9ZSx0Kj1PeSxlKj1PeSxzYi5wb2ludD1fYjt2YXIgbj1IeShlKTtxdj1uKkh5KHQpLFl2PW4qR3kodCksWHY9R3koZSksY2IocXYsWXYsWHYpfWZ1bmN0aW9uIF9iKHQsZSl7dCo9T3k7dmFyIG49SHkoZSo9T3kpLGk9bipIeSh0KSxyPW4qR3kodCksbz1HeShlKSxhPVl2Km8tWHYqcixzPVh2KmktcXYqbyxsPXF2KnItWXYqaSxjPXF5KGEqYStzKnMrbCpsKSx1PSR5KGMpLGg9YyYmLXUvYztWdis9aCphLFV2Kz1oKnMsanYrPWgqbCxSdis9dSxCdis9dSoocXYrKHF2PWkpKSxIdis9dSooWXYrKFl2PXIpKSxGdis9dSooWHYrKFh2PW8pKSxjYihxdixZdixYdil9ZnVuY3Rpb24geWIodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIHZiKHQsZSl7ZnVuY3Rpb24gbihuLGkpe3JldHVybiBuPXQobixpKSxlKG5bMF0sblsxXSl9cmV0dXJuIHQuaW52ZXJ0JiZlLmludmVydCYmKG4uaW52ZXJ0PWZ1bmN0aW9uKG4saSl7cmV0dXJuKG49ZS5pbnZlcnQobixpKSkmJnQuaW52ZXJ0KG5bMF0sblsxXSl9KSxufWZ1bmN0aW9uIGJiKHQsZSl7cmV0dXJuW3p5KHQpPkx5P3QrTWF0aC5yb3VuZCgtdC9JeSkqSXk6dCxlXX1mdW5jdGlvbiB4Yih0LGUsbil7cmV0dXJuKHQlPUl5KT9lfHxuP3ZiKFNiKHQpLE1iKGUsbikpOlNiKHQpOmV8fG4/TWIoZSxuKTpiYn1mdW5jdGlvbiB3Yih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm5bKGUrPXQpPkx5P2UtSXk6ZTwtTHk/ZStJeTplLG5dfX1mdW5jdGlvbiBTYih0KXt2YXIgZT13Yih0KTtyZXR1cm4gZS5pbnZlcnQ9d2IoLXQpLGV9ZnVuY3Rpb24gTWIodCxlKXt2YXIgbj1IeSh0KSxpPUd5KHQpLHI9SHkoZSksbz1HeShlKTtmdW5jdGlvbiBhKHQsZSl7dmFyIGE9SHkoZSkscz1IeSh0KSphLGw9R3kodCkqYSxjPUd5KGUpLHU9YypuK3MqaTtyZXR1cm5bQnkobCpyLXUqbyxzKm4tYyppKSwkeSh1KnIrbCpvKV19cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIGE9SHkoZSkscz1IeSh0KSphLGw9R3kodCkqYSxjPUd5KGUpLHU9YypyLWwqbztyZXR1cm5bQnkobCpyK2MqbyxzKm4rdSppKSwkeSh1Km4tcyppKV19LGF9ZnVuY3Rpb24gRWIodCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4oZT10KGVbMF0qT3ksZVsxXSpPeSkpWzBdKj1SeSxlWzFdKj1SeSxlfXJldHVybiB0PXhiKHRbMF0qT3ksdFsxXSpPeSx0Lmxlbmd0aD4yP3RbMl0qT3k6MCksZS5pbnZlcnQ9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9dC5pbnZlcnQoZVswXSpPeSxlWzFdKk95KSlbMF0qPVJ5LGVbMV0qPVJ5LGV9LGV9ZnVuY3Rpb24gVGIodCxlLG4saSxyLG8pe2lmKG4pe3ZhciBhPUh5KGUpLHM9R3koZSksbD1pKm47bnVsbD09cj8ocj1lK2kqSXksbz1lLWwvMik6KHI9Q2IoYSxyKSxvPUNiKGEsbyksKGk+MD9yPG86cj5vKSYmKHIrPWkqSXkpKTtmb3IodmFyIGMsdT1yO2k+MD91Pm86dTxvO3UtPWwpYz1ndihbYSwtcypIeSh1KSwtcypHeSh1KV0pLHQucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gQ2IodCxlKXsoZT1fdihlKSlbMF0tPXQsd3YoZSk7dmFyIG49WHkoLWVbMV0pO3JldHVybigoLWVbMl08MD8tbjpuKStJeS1BeSklSXl9ZnVuY3Rpb24gQWIoKXt2YXIgdCxlPVtdO3JldHVybntwb2ludDpmdW5jdGlvbihlLG4saSl7dC5wdXNoKFtlLG4saV0pfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtlLnB1c2godD1bXSl9LGxpbmVFbmQ6WnkscmVqb2luOmZ1bmN0aW9uKCl7ZS5sZW5ndGg+MSYmZS5wdXNoKGUucG9wKCkuY29uY2F0KGUuc2hpZnQoKSkpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgbj1lO3JldHVybiBlPVtdLHQ9bnVsbCxufX19ZnVuY3Rpb24ga2IodCxlKXtyZXR1cm4genkodFswXS1lWzBdKTxBeSYmenkodFsxXS1lWzFdKTxBeX1mdW5jdGlvbiBMYih0LGUsbixpKXt0aGlzLng9dCx0aGlzLno9ZSx0aGlzLm89bix0aGlzLmU9aSx0aGlzLnY9ITEsdGhpcy5uPXRoaXMucD1udWxsfWZ1bmN0aW9uIFBiKHQsZSxuLGkscil7dmFyIG8sYSxzPVtdLGw9W107aWYodC5mb3JFYWNoKChmdW5jdGlvbih0KXtpZighKChlPXQubGVuZ3RoLTEpPD0wKSl7dmFyIGUsbixpPXRbMF0sYT10W2VdO2lmKGtiKGksYSkpe2lmKCFpWzJdJiYhYVsyXSl7Zm9yKHIubGluZVN0YXJ0KCksbz0wO288ZTsrK28pci5wb2ludCgoaT10W29dKVswXSxpWzFdKTtyZXR1cm4gdm9pZCByLmxpbmVFbmQoKX1hWzBdKz0yZS02fXMucHVzaChuPW5ldyBMYihpLHQsbnVsbCwhMCkpLGwucHVzaChuLm89bmV3IExiKGksbnVsbCxuLCExKSkscy5wdXNoKG49bmV3IExiKGEsdCxudWxsLCExKSksbC5wdXNoKG4ubz1uZXcgTGIoYSxudWxsLG4sITApKX19KSkscy5sZW5ndGgpe2ZvcihsLnNvcnQoZSksTmIocyksTmIobCksbz0wLGE9bC5sZW5ndGg7bzxhOysrbylsW29dLmU9bj0hbjtmb3IodmFyIGMsdSxoPXNbMF07Oyl7Zm9yKHZhciBkPWgscD0hMDtkLnY7KWlmKChkPWQubik9PT1oKXJldHVybjtjPWQueixyLmxpbmVTdGFydCgpO2Rve2lmKGQudj1kLm8udj0hMCxkLmUpe2lmKHApZm9yKG89MCxhPWMubGVuZ3RoO288YTsrK28pci5wb2ludCgodT1jW29dKVswXSx1WzFdKTtlbHNlIGkoZC54LGQubi54LDEscik7ZD1kLm59ZWxzZXtpZihwKWZvcihvPShjPWQucC56KS5sZW5ndGgtMTtvPj0wOy0tbylyLnBvaW50KCh1PWNbb10pWzBdLHVbMV0pO2Vsc2UgaShkLngsZC5wLngsLTEscik7ZD1kLnB9Yz0oZD1kLm8pLnoscD0hcH13aGlsZSghZC52KTtyLmxpbmVFbmQoKX19fWZ1bmN0aW9uIE5iKHQpe2lmKGU9dC5sZW5ndGgpe2Zvcih2YXIgZSxuLGk9MCxyPXRbMF07KytpPGU7KXIubj1uPXRbaV0sbi5wPXIscj1uO3Iubj1uPXRbMF0sbi5wPXJ9fWJiLmludmVydD1iYjt2YXIgSWI9TXkoKTtmdW5jdGlvbiBSYih0KXtyZXR1cm4genkodFswXSk8PUx5P3RbMF06V3kodFswXSkqKCh6eSh0WzBdKStMeSklSXktTHkpfWZ1bmN0aW9uIE9iKHQsZSl7dmFyIG49UmIoZSksaT1lWzFdLHI9R3koaSksbz1bR3kobiksLUh5KG4pLDBdLGE9MCxzPTA7SWIucmVzZXQoKSwxPT09cj9pPVB5K0F5Oi0xPT09ciYmKGk9LVB5LUF5KTtmb3IodmFyIGw9MCxjPXQubGVuZ3RoO2w8YzsrK2wpaWYoaD0odT10W2xdKS5sZW5ndGgpZm9yKHZhciB1LGgsZD11W2gtMV0scD1SYihkKSxmPWRbMV0vMitOeSxtPUd5KGYpLGc9SHkoZiksXz0wO188aDsrK18scD12LG09eCxnPXcsZD15KXt2YXIgeT11W19dLHY9UmIoeSksYj15WzFdLzIrTnkseD1HeShiKSx3PUh5KGIpLFM9di1wLE09Uz49MD8xOi0xLEU9TSpTLFQ9RT5MeSxDPW0qeDtpZihJYi5hZGQoQnkoQypNKkd5KEUpLGcqdytDKkh5KEUpKSksYSs9VD9TK00qSXk6UyxUXnA+PW5edj49bil7dmFyIEE9dnYoX3YoZCksX3YoeSkpO3d2KEEpO3ZhciBrPXZ2KG8sQSk7d3Yoayk7dmFyIEw9KFReUz49MD8tMToxKSokeShrWzJdKTsoaT5MfHxpPT09TCYmKEFbMF18fEFbMV0pKSYmKHMrPVReUz49MD8xOi0xKX19cmV0dXJuKGE8LTFlLTZ8fGE8QXkmJkliPC0xZS02KV4xJnN9ZnVuY3Rpb24gemIodCxlLG4saSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBvLGEscyxsPWUociksYz1BYigpLHU9ZShjKSxoPSExLGQ9e3BvaW50OnAsbGluZVN0YXJ0Om0sbGluZUVuZDpnLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2QucG9pbnQ9XyxkLmxpbmVTdGFydD15LGQubGluZUVuZD12LGE9W10sbz1bXX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2QucG9pbnQ9cCxkLmxpbmVTdGFydD1tLGQubGluZUVuZD1nLGE9cWwoYSk7dmFyIHQ9T2IobyxpKTthLmxlbmd0aD8oaHx8KHIucG9seWdvblN0YXJ0KCksaD0hMCksUGIoYSxCYix0LG4scikpOnQmJihofHwoci5wb2x5Z29uU3RhcnQoKSxoPSEwKSxyLmxpbmVTdGFydCgpLG4obnVsbCxudWxsLDEsciksci5saW5lRW5kKCkpLGgmJihyLnBvbHlnb25FbmQoKSxoPSExKSxhPW89bnVsbH0sc3BoZXJlOmZ1bmN0aW9uKCl7ci5wb2x5Z29uU3RhcnQoKSxyLmxpbmVTdGFydCgpLG4obnVsbCxudWxsLDEsciksci5saW5lRW5kKCksci5wb2x5Z29uRW5kKCl9fTtmdW5jdGlvbiBwKGUsbil7dChlLG4pJiZyLnBvaW50KGUsbil9ZnVuY3Rpb24gZih0LGUpe2wucG9pbnQodCxlKX1mdW5jdGlvbiBtKCl7ZC5wb2ludD1mLGwubGluZVN0YXJ0KCl9ZnVuY3Rpb24gZygpe2QucG9pbnQ9cCxsLmxpbmVFbmQoKX1mdW5jdGlvbiBfKHQsZSl7cy5wdXNoKFt0LGVdKSx1LnBvaW50KHQsZSl9ZnVuY3Rpb24geSgpe3UubGluZVN0YXJ0KCkscz1bXX1mdW5jdGlvbiB2KCl7XyhzWzBdWzBdLHNbMF1bMV0pLHUubGluZUVuZCgpO3ZhciB0LGUsbixpLGw9dS5jbGVhbigpLGQ9Yy5yZXN1bHQoKSxwPWQubGVuZ3RoO2lmKHMucG9wKCksby5wdXNoKHMpLHM9bnVsbCxwKWlmKDEmbCl7aWYoKGU9KG49ZFswXSkubGVuZ3RoLTEpPjApe2ZvcihofHwoci5wb2x5Z29uU3RhcnQoKSxoPSEwKSxyLmxpbmVTdGFydCgpLHQ9MDt0PGU7Kyt0KXIucG9pbnQoKGk9blt0XSlbMF0saVsxXSk7ci5saW5lRW5kKCl9fWVsc2UgcD4xJiYyJmwmJmQucHVzaChkLnBvcCgpLmNvbmNhdChkLnNoaWZ0KCkpKSxhLnB1c2goZC5maWx0ZXIoRGIpKX1yZXR1cm4gZH19ZnVuY3Rpb24gRGIodCl7cmV0dXJuIHQubGVuZ3RoPjF9ZnVuY3Rpb24gQmIodCxlKXtyZXR1cm4oKHQ9dC54KVswXTwwP3RbMV0tUHktQXk6UHktdFsxXSktKChlPWUueClbMF08MD9lWzFdLVB5LUF5OlB5LWVbMV0pfXZhciBIYj16YigoZnVuY3Rpb24oKXtyZXR1cm4hMH0pLChmdW5jdGlvbiBGYih0KXt2YXIgZSxuPU5hTixpPU5hTixyPU5hTjtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKSxlPTF9LHBvaW50OmZ1bmN0aW9uKG8sYSl7dmFyIHM9bz4wP0x5Oi1MeSxsPXp5KG8tbik7enkobC1MeSk8QXk/KHQucG9pbnQobixpPShpK2EpLzI+MD9QeTotUHkpLHQucG9pbnQocixpKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQocyxpKSx0LnBvaW50KG8saSksZT0wKTpyIT09cyYmbD49THkmJih6eShuLXIpPEF5JiYobi09cipBeSksenkoby1zKTxBeSYmKG8tPXMqQXkpLGk9KGZ1bmN0aW9uIGModCxlLG4saSl7dmFyIHIsbyxhPUd5KHQtbik7cmV0dXJuIHp5KGEpPkF5P0R5KChHeShlKSoobz1IeShpKSkqR3kobiktR3koaSkqKHI9SHkoZSkpKkd5KHQpKS8ocipvKmEpKTooZStpKS8yfSkobixpLG8sYSksdC5wb2ludChyLGkpLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludChzLGkpLGU9MCksdC5wb2ludChuPW8saT1hKSxyPXN9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0LmxpbmVFbmQoKSxuPWk9TmFOfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiAyLWV9fX0pLChmdW5jdGlvbiBWYih0LGUsbixpKXt2YXIgcjtpZihudWxsPT10KWkucG9pbnQoLUx5LHI9bipQeSksaS5wb2ludCgwLHIpLGkucG9pbnQoTHksciksaS5wb2ludChMeSwwKSxpLnBvaW50KEx5LC1yKSxpLnBvaW50KDAsLXIpLGkucG9pbnQoLUx5LC1yKSxpLnBvaW50KC1MeSwwKSxpLnBvaW50KC1MeSxyKTtlbHNlIGlmKHp5KHRbMF0tZVswXSk+QXkpe3ZhciBvPXRbMF08ZVswXT9MeTotTHk7aS5wb2ludCgtbyxyPW4qby8yKSxpLnBvaW50KDAsciksaS5wb2ludChvLHIpfWVsc2UgaS5wb2ludChlWzBdLGVbMV0pfSksWy1MeSwtUHldKTtmdW5jdGlvbiBVYih0KXt2YXIgZT1IeSh0KSxuPTYqT3ksaT1lPjAscj16eShlKT5BeTtmdW5jdGlvbiBvKHQsbil7cmV0dXJuIEh5KHQpKkh5KG4pPmV9ZnVuY3Rpb24gYSh0LG4saSl7dmFyIHI9WzEsMCwwXSxvPXZ2KF92KHQpLF92KG4pKSxhPXl2KG8sbykscz1vWzBdLGw9YS1zKnM7aWYoIWwpcmV0dXJuIWkmJnQ7dmFyIGM9ZSphL2wsdT0tZSpzL2wsaD12dihyLG8pLGQ9eHYocixjKTtidihkLHh2KG8sdSkpO3ZhciBwPWgsZj15dihkLHApLG09eXYocCxwKSxnPWYqZi1tKih5dihkLGQpLTEpO2lmKCEoZzwwKSl7dmFyIF89cXkoZykseT14dihwLCgtZi1fKS9tKTtpZihidih5LGQpLHk9Z3YoeSksIWkpcmV0dXJuIHk7dmFyIHYsYj10WzBdLHg9blswXSx3PXRbMV0sUz1uWzFdO3g8YiYmKHY9YixiPXgseD12KTt2YXIgTT14LWIsRT16eShNLUx5KTxBeTtpZighRSYmUzx3JiYodj13LHc9UyxTPXYpLEV8fE08QXk/RT93K1M+MF55WzFdPCh6eSh5WzBdLWIpPEF5P3c6Uyk6dzw9eVsxXSYmeVsxXTw9UzpNPkx5XihiPD15WzBdJiZ5WzBdPD14KSl7dmFyIFQ9eHYocCwoLWYrXykvbSk7cmV0dXJuIGJ2KFQsZCksW3ksZ3YoVCldfX19ZnVuY3Rpb24gcyhlLG4pe3ZhciByPWk/dDpMeS10LG89MDtyZXR1cm4gZTwtcj9vfD0xOmU+ciYmKG98PTIpLG48LXI/b3w9NDpuPnImJihvfD04KSxvfXJldHVybiB6YihvLChmdW5jdGlvbiBsKHQpe3ZhciBlLG4sbCxjLHU7cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe2M9bD0hMSx1PTF9LHBvaW50OmZ1bmN0aW9uKGgsZCl7dmFyIHAsZj1baCxkXSxtPW8oaCxkKSxnPWk/bT8wOnMoaCxkKTptP3MoaCsoaDwwP0x5Oi1MeSksZCk6MDtpZighZSYmKGM9bD1tKSYmdC5saW5lU3RhcnQoKSxtIT09bCYmKCEocD1hKGUsZikpfHxrYihlLHApfHxrYihmLHApKSYmKGZbMl09MSksbSE9PWwpdT0wLG0/KHQubGluZVN0YXJ0KCkscD1hKGYsZSksdC5wb2ludChwWzBdLHBbMV0pKToocD1hKGUsZiksdC5wb2ludChwWzBdLHBbMV0sMiksdC5saW5lRW5kKCkpLGU9cDtlbHNlIGlmKHImJmUmJmlebSl7dmFyIF87ZyZufHwhKF89YShmLGUsITApKXx8KHU9MCxpPyh0LmxpbmVTdGFydCgpLHQucG9pbnQoX1swXVswXSxfWzBdWzFdKSx0LnBvaW50KF9bMV1bMF0sX1sxXVsxXSksdC5saW5lRW5kKCkpOih0LnBvaW50KF9bMV1bMF0sX1sxXVsxXSksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KF9bMF1bMF0sX1swXVsxXSwzKSkpfSFtfHxlJiZrYihlLGYpfHx0LnBvaW50KGZbMF0sZlsxXSksZT1mLGw9bSxuPWd9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtsJiZ0LmxpbmVFbmQoKSxlPW51bGx9LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIHV8KGMmJmwpPDwxfX19KSwoZnVuY3Rpb24gYyhlLGkscixvKXtUYihvLHQsbixyLGUsaSl9KSxpP1swLC10XTpbLUx5LHQtTHldKX12YXIgamI9MWU5LEdiPS1qYjtmdW5jdGlvbiBXYih0LGUsbixpKXtmdW5jdGlvbiByKHIsbyl7cmV0dXJuIHQ8PXImJnI8PW4mJmU8PW8mJm88PWl9ZnVuY3Rpb24gbyhyLG8scyxjKXt2YXIgdT0wLGg9MDtpZihudWxsPT1yfHwodT1hKHIscykpIT09KGg9YShvLHMpKXx8bChyLG8pPDBecz4wKWRve2MucG9pbnQoMD09PXV8fDM9PT11P3Q6bix1PjE/aTplKX13aGlsZSgodT0odStzKzQpJTQpIT09aCk7ZWxzZSBjLnBvaW50KG9bMF0sb1sxXSl9ZnVuY3Rpb24gYShpLHIpe3JldHVybiB6eShpWzBdLXQpPEF5P3I+MD8wOjM6enkoaVswXS1uKTxBeT9yPjA/MjoxOnp5KGlbMV0tZSk8QXk/cj4wPzE6MDpyPjA/MzoyfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gbCh0LngsZS54KX1mdW5jdGlvbiBsKHQsZSl7dmFyIG49YSh0LDEpLGk9YShlLDEpO3JldHVybiBuIT09aT9uLWk6MD09PW4/ZVsxXS10WzFdOjE9PT1uP3RbMF0tZVswXToyPT09bj90WzFdLWVbMV06ZVswXS10WzBdfXJldHVybiBmdW5jdGlvbihhKXt2YXIgbCxjLHUsaCxkLHAsZixtLGcsXyx5LHY9YSxiPUFiKCkseD17cG9pbnQ6VCxsaW5lU3RhcnQ6ZnVuY3Rpb24gdygpe3gucG9pbnQ9QyxjJiZjLnB1c2godT1bXSksXz0hMCxnPSExLGY9bT1OYU59LGxpbmVFbmQ6ZnVuY3Rpb24gUygpe2wmJihDKGgsZCkscCYmZyYmYi5yZWpvaW4oKSxsLnB1c2goYi5yZXN1bHQoKSkpLHgucG9pbnQ9VCxnJiZ2LmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uIE0oKXt2PWIsbD1bXSxjPVtdLHk9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24gRSgpe3ZhciBlPShmdW5jdGlvbiBuKCl7Zm9yKHZhciBlPTAsbj0wLHI9Yy5sZW5ndGg7bjxyOysrbilmb3IodmFyIG8sYSxzPWNbbl0sbD0xLHU9cy5sZW5ndGgsaD1zWzBdLGQ9aFswXSxwPWhbMV07bDx1OysrbClvPWQsYT1wLGQ9KGg9c1tsXSlbMF0scD1oWzFdLGE8PWk/cD5pJiYoZC1vKSooaS1hKT4ocC1hKSoodC1vKSYmKytlOnA8PWkmJihkLW8pKihpLWEpPChwLWEpKih0LW8pJiYtLWU7cmV0dXJuIGV9KSgpLHI9eSYmZSxoPShsPXFsKGwpKS5sZW5ndGg7KHJ8fGgpJiYoYS5wb2x5Z29uU3RhcnQoKSxyJiYoYS5saW5lU3RhcnQoKSxvKG51bGwsbnVsbCwxLGEpLGEubGluZUVuZCgpKSxoJiZQYihsLHMsZSxvLGEpLGEucG9seWdvbkVuZCgpKSx2PWEsbD1jPXU9bnVsbH19O2Z1bmN0aW9uIFQodCxlKXtyKHQsZSkmJnYucG9pbnQodCxlKX1mdW5jdGlvbiBDKG8sYSl7dmFyIHM9cihvLGEpO2lmKGMmJnUucHVzaChbbyxhXSksXyloPW8sZD1hLHA9cyxfPSExLHMmJih2LmxpbmVTdGFydCgpLHYucG9pbnQobyxhKSk7ZWxzZSBpZihzJiZnKXYucG9pbnQobyxhKTtlbHNle3ZhciBsPVtmPU1hdGgubWF4KEdiLE1hdGgubWluKGpiLGYpKSxtPU1hdGgubWF4KEdiLE1hdGgubWluKGpiLG0pKV0sYj1bbz1NYXRoLm1heChHYixNYXRoLm1pbihqYixvKSksYT1NYXRoLm1heChHYixNYXRoLm1pbihqYixhKSldOyEoZnVuY3Rpb24geCh0LGUsbixpLHIsbyl7dmFyIGEscz10WzBdLGw9dFsxXSxjPTAsdT0xLGg9ZVswXS1zLGQ9ZVsxXS1sO2lmKGE9bi1zLGh8fCEoYT4wKSl7aWYoYS89aCxoPDApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1lbHNlIGlmKGg+MCl7aWYoYT51KXJldHVybjthPmMmJihjPWEpfWlmKGE9ci1zLGh8fCEoYTwwKSl7aWYoYS89aCxoPDApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1lbHNlIGlmKGg+MCl7aWYoYTxjKXJldHVybjthPHUmJih1PWEpfWlmKGE9aS1sLGR8fCEoYT4wKSl7aWYoYS89ZCxkPDApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1lbHNlIGlmKGQ+MCl7aWYoYT51KXJldHVybjthPmMmJihjPWEpfWlmKGE9by1sLGR8fCEoYTwwKSl7aWYoYS89ZCxkPDApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1lbHNlIGlmKGQ+MCl7aWYoYTxjKXJldHVybjthPHUmJih1PWEpfXJldHVybiBjPjAmJih0WzBdPXMrYypoLHRbMV09bCtjKmQpLHU8MSYmKGVbMF09cyt1KmgsZVsxXT1sK3UqZCksITB9fX19fSkobCxiLHQsZSxuLGkpP3MmJih2LmxpbmVTdGFydCgpLHYucG9pbnQobyxhKSx5PSExKTooZ3x8KHYubGluZVN0YXJ0KCksdi5wb2ludChsWzBdLGxbMV0pKSx2LnBvaW50KGJbMF0sYlsxXSksc3x8di5saW5lRW5kKCkseT0hMSl9Zj1vLG09YSxnPXN9cmV0dXJuIHh9fXZhciBxYixZYixYYiwkYj1NeSgpLEtiPXtzcGhlcmU6WnkscG9pbnQ6WnksbGluZVN0YXJ0OmZ1bmN0aW9uIFpiKCl7S2IucG9pbnQ9UWIsS2IubGluZUVuZD1KYn0sbGluZUVuZDpaeSxwb2x5Z29uU3RhcnQ6WnkscG9seWdvbkVuZDpaeX07ZnVuY3Rpb24gSmIoKXtLYi5wb2ludD1LYi5saW5lRW5kPVp5fWZ1bmN0aW9uIFFiKHQsZSl7cWI9dCo9T3ksWWI9R3koZSo9T3kpLFhiPUh5KGUpLEtiLnBvaW50PXR4fWZ1bmN0aW9uIHR4KHQsZSl7dCo9T3k7dmFyIG49R3koZSo9T3kpLGk9SHkoZSkscj16eSh0LXFiKSxvPUh5KHIpLGE9aSpHeShyKSxzPVhiKm4tWWIqaSpvLGw9WWIqbitYYippKm87JGIuYWRkKEJ5KHF5KGEqYStzKnMpLGwpKSxxYj10LFliPW4sWGI9aX1mdW5jdGlvbiBleCh0KXtyZXR1cm4gJGIucmVzZXQoKSxpdih0LEtiKSwrJGJ9dmFyIG54PVtudWxsLG51bGxdLGl4PXt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpueH07ZnVuY3Rpb24gcngodCxlKXtyZXR1cm4gbnhbMF09dCxueFsxXT1lLGV4KGl4KX12YXIgb3g9e0ZlYXR1cmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gc3godC5nZW9tZXRyeSxlKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5mZWF0dXJlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKHN4KG5baV0uZ2VvbWV0cnksZSkpcmV0dXJuITA7cmV0dXJuITF9fSxheD17U3BoZXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LFBvaW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGx4KHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5jb29yZGluYXRlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKGx4KG5baV0sZSkpcmV0dXJuITA7cmV0dXJuITF9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gY3godC5jb29yZGluYXRlcyxlKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylpZihjeChuW2ldLGUpKXJldHVybiEwO3JldHVybiExfSxQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHV4KHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspaWYodXgobltpXSxlKSlyZXR1cm4hMDtyZXR1cm4hMX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZ2VvbWV0cmllcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKHN4KG5baV0sZSkpcmV0dXJuITA7cmV0dXJuITF9fTtmdW5jdGlvbiBzeCh0LGUpe3JldHVybiEoIXR8fCFheC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpKSYmYXhbdC50eXBlXSh0LGUpfWZ1bmN0aW9uIGx4KHQsZSl7cmV0dXJuIDA9PT1yeCh0LGUpfWZ1bmN0aW9uIGN4KHQsZSl7Zm9yKHZhciBuLGkscixvPTAsYT10Lmxlbmd0aDtvPGE7bysrKXtpZigwPT09KGk9cngodFtvXSxlKSkpcmV0dXJuITA7aWYobz4wJiYocj1yeCh0W29dLHRbby0xXSkpPjAmJm48PXImJmk8PXImJihuK2ktcikqKDEtTWF0aC5wb3coKG4taSkvciwyKSk8a3kqcilyZXR1cm4hMDtuPWl9cmV0dXJuITF9ZnVuY3Rpb24gdXgodCxlKXtyZXR1cm4hIU9iKHQubWFwKGh4KSxkeChlKSl9ZnVuY3Rpb24gaHgodCl7cmV0dXJuKHQ9dC5tYXAoZHgpKS5wb3AoKSx0fWZ1bmN0aW9uIGR4KHQpe3JldHVyblt0WzBdKk95LHRbMV0qT3ldfWZ1bmN0aW9uIHB4KHQsZSxuKXt2YXIgaT16bCh0LGUtQXksbikuY29uY2F0KGUpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVyblt0LGVdfSkpfX1mdW5jdGlvbiBmeCh0LGUsbil7dmFyIGk9emwodCxlLUF5LG4pLmNvbmNhdChlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkubWFwKChmdW5jdGlvbihlKXtyZXR1cm5bZSx0XX0pKX19ZnVuY3Rpb24gbXgoKXt2YXIgdCxlLG4saSxyLG8sYSxzLGwsYyx1LGgsZD0xMCxwPWQsZj05MCxtPTM2MCxnPTIuNTtmdW5jdGlvbiBfKCl7cmV0dXJue3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6eSgpfX1mdW5jdGlvbiB5KCl7cmV0dXJuIHpsKEZ5KGkvZikqZixuLGYpLm1hcCh1KS5jb25jYXQoemwoRnkocy9tKSptLGEsbSkubWFwKGgpKS5jb25jYXQoemwoRnkoZS9kKSpkLHQsZCkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4genkodCVmKT5BeX0pKS5tYXAobCkpLmNvbmNhdCh6bChGeShvL3ApKnAscixwKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB6eSh0JW0pPkF5fSkpLm1hcChjKSl9cmV0dXJuIF8ubGluZXM9ZnVuY3Rpb24oKXtyZXR1cm4geSgpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6IkxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOnR9fSkpfSxfLm91dGxpbmU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W3UoaSkuY29uY2F0KGgoYSkuc2xpY2UoMSksdShuKS5yZXZlcnNlKCkuc2xpY2UoMSksaChzKS5yZXZlcnNlKCkuc2xpY2UoMSkpXX19LF8uZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP18uZXh0ZW50TWFqb3IodCkuZXh0ZW50TWlub3IodCk6Xy5leHRlbnRNaW5vcigpfSxfLmV4dGVudE1ham9yPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0WzBdWzFdLGE9K3RbMV1bMV0sKGk9K3RbMF1bMF0pPihuPSt0WzFdWzBdKSYmKHQ9aSxpPW4sbj10KSxzPmEmJih0PXMscz1hLGE9dCksXy5wcmVjaXNpb24oZykpOltbaSxzXSxbbixhXV19LF8uZXh0ZW50TWlub3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K25bMF1bMV0scj0rblsxXVsxXSwoZT0rblswXVswXSk+KHQ9K25bMV1bMF0pJiYobj1lLGU9dCx0PW4pLG8+ciYmKG49byxvPXIscj1uKSxfLnByZWNpc2lvbihnKSk6W1tlLG9dLFt0LHJdXX0sXy5zdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP18uc3RlcE1ham9yKHQpLnN0ZXBNaW5vcih0KTpfLnN0ZXBNaW5vcigpfSxfLnN0ZXBNYWpvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj0rdFswXSxtPSt0WzFdLF8pOltmLG1dfSxfLnN0ZXBNaW5vcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD0rdFswXSxwPSt0WzFdLF8pOltkLHBdfSxfLnByZWNpc2lvbj1mdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz0rZCxsPXB4KG8sciw5MCksYz1meChlLHQsZyksdT1weChzLGEsOTApLGg9ZngoaSxuLGcpLF8pOmd9LF8uZXh0ZW50TWFqb3IoW1stMTgwLC04OS45OTk5OTldLFsxODAsODkuOTk5OTk5XV0pLmV4dGVudE1pbm9yKFtbLTE4MCwtODAuMDAwMDAxXSxbMTgwLDgwLjAwMDAwMV1dKX1mdW5jdGlvbiBneCh0KXtyZXR1cm4gdH12YXIgX3gseXgsdngsYngseHg9TXkoKSx3eD1NeSgpLFN4PXtwb2ludDpaeSxsaW5lU3RhcnQ6WnksbGluZUVuZDpaeSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtTeC5saW5lU3RhcnQ9TXgsU3gubGluZUVuZD1DeH0scG9seWdvbkVuZDpmdW5jdGlvbigpe1N4LmxpbmVTdGFydD1TeC5saW5lRW5kPVN4LnBvaW50PVp5LHh4LmFkZCh6eSh3eCkpLHd4LnJlc2V0KCl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PXh4LzI7cmV0dXJuIHh4LnJlc2V0KCksdH19O2Z1bmN0aW9uIE14KCl7U3gucG9pbnQ9RXh9ZnVuY3Rpb24gRXgodCxlKXtTeC5wb2ludD1UeCxfeD12eD10LHl4PWJ4PWV9ZnVuY3Rpb24gVHgodCxlKXt3eC5hZGQoYngqdC12eCplKSx2eD10LGJ4PWV9ZnVuY3Rpb24gQ3goKXtUeChfeCx5eCl9dmFyIEF4LGt4LEx4LFB4LE54PVN4LEl4PTEvMCxSeD1JeCxPeD0tSXgseng9T3gsRHg9e3BvaW50OmZ1bmN0aW9uIEJ4KHQsZSl7dDxJeCYmKEl4PXQpLHQ+T3gmJihPeD10KSxlPFJ4JiYoUng9ZSksZT56eCYmKHp4PWUpfSxsaW5lU3RhcnQ6WnksbGluZUVuZDpaeSxwb2x5Z29uU3RhcnQ6WnkscG9seWdvbkVuZDpaeSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1bW0l4LFJ4XSxbT3gsenhdXTtyZXR1cm4gT3g9eng9LShSeD1JeD0xLzApLHR9fSxIeD0wLEZ4PTAsVng9MCxVeD0wLGp4PTAsR3g9MCxXeD0wLHF4PTAsWXg9MCxYeD17cG9pbnQ6JHgsbGluZVN0YXJ0Okt4LGxpbmVFbmQ6UXgscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7WHgubGluZVN0YXJ0PXR3LFh4LmxpbmVFbmQ9ZXd9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtYeC5wb2ludD0keCxYeC5saW5lU3RhcnQ9S3gsWHgubGluZUVuZD1ReH0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9WXg/W1d4L1l4LHF4L1l4XTpHeD9bVXgvR3gsangvR3hdOlZ4P1tIeC9WeCxGeC9WeF06W05hTixOYU5dO3JldHVybiBIeD1GeD1WeD1VeD1qeD1HeD1XeD1xeD1ZeD0wLHR9fTtmdW5jdGlvbiAkeCh0LGUpe0h4Kz10LEZ4Kz1lLCsrVnh9ZnVuY3Rpb24gS3goKXtYeC5wb2ludD1aeH1mdW5jdGlvbiBaeCh0LGUpe1h4LnBvaW50PUp4LCR4KEx4PXQsUHg9ZSl9ZnVuY3Rpb24gSngodCxlKXt2YXIgbj10LUx4LGk9ZS1QeCxyPXF5KG4qbitpKmkpO1V4Kz1yKihMeCt0KS8yLGp4Kz1yKihQeCtlKS8yLEd4Kz1yLCR4KEx4PXQsUHg9ZSl9ZnVuY3Rpb24gUXgoKXtYeC5wb2ludD0keH1mdW5jdGlvbiB0dygpe1h4LnBvaW50PW53fWZ1bmN0aW9uIGV3KCl7aXcoQXgsa3gpfWZ1bmN0aW9uIG53KHQsZSl7WHgucG9pbnQ9aXcsJHgoQXg9THg9dCxreD1QeD1lKX1mdW5jdGlvbiBpdyh0LGUpe3ZhciBuPXQtTHgsaT1lLVB4LHI9cXkobipuK2kqaSk7VXgrPXIqKEx4K3QpLzIsangrPXIqKFB4K2UpLzIsR3grPXIsV3grPShyPVB4KnQtTHgqZSkqKEx4K3QpLHF4Kz1yKihQeCtlKSxZeCs9MypyLCR4KEx4PXQsUHg9ZSl9dmFyIHJ3PVh4O2Z1bmN0aW9uIG93KHQpe3RoaXMuX2NvbnRleHQ9dH1vdy5wcm90b3R5cGU9e19yYWRpdXM6NC41LHBvaW50UmFkaXVzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yYWRpdXM9dCx0aGlzfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA9PT10aGlzLl9saW5lJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX2NvbnRleHQubGluZVRvKHQsZSk7YnJlYWs7ZGVmYXVsdDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0K3RoaXMuX3JhZGl1cyxlKSx0aGlzLl9jb250ZXh0LmFyYyh0LGUsdGhpcy5fcmFkaXVzLDAsSXkpfX0scmVzdWx0Olp5fTt2YXIgYXcsc3csbHcsY3csdXcsaHc9TXkoKSxkdz17cG9pbnQ6WnksbGluZVN0YXJ0OmZ1bmN0aW9uKCl7ZHcucG9pbnQ9cHd9LGxpbmVFbmQ6ZnVuY3Rpb24oKXthdyYmZncoc3csbHcpLGR3LnBvaW50PVp5fSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXthdz0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe2F3PW51bGx9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PStodztyZXR1cm4gaHcucmVzZXQoKSx0fX07ZnVuY3Rpb24gcHcodCxlKXtkdy5wb2ludD1mdyxzdz1jdz10LGx3PXV3PWV9ZnVuY3Rpb24gZncodCxlKXtody5hZGQocXkoKGN3LT10KSpjdysodXctPWUpKnV3KSksY3c9dCx1dz1lfXZhciBtdz1kdztmdW5jdGlvbiBndygpe3RoaXMuX3N0cmluZz1bXX1mdW5jdGlvbiBfdyh0KXtyZXR1cm4ibTAsIit0KyJhIit0KyIsIit0KyIgMCAxLDEgMCwiKy0yKnQrImEiK3QrIiwiK3QrIiAwIDEsMSAwLCIrMip0KyJ6In1mdW5jdGlvbiB5dyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49bmV3IHZ3O2Zvcih2YXIgaSBpbiB0KW5baV09dFtpXTtyZXR1cm4gbi5zdHJlYW09ZSxufX1mdW5jdGlvbiB2dygpe31mdW5jdGlvbiBidyh0LGUsbil7dmFyIGk9dC5jbGlwRXh0ZW50JiZ0LmNsaXBFeHRlbnQoKTtyZXR1cm4gdC5zY2FsZSgxNTApLnRyYW5zbGF0ZShbMCwwXSksbnVsbCE9aSYmdC5jbGlwRXh0ZW50KG51bGwpLGl2KG4sdC5zdHJlYW0oRHgpKSxlKER4LnJlc3VsdCgpKSxudWxsIT1pJiZ0LmNsaXBFeHRlbnQoaSksdH1mdW5jdGlvbiB4dyh0LGUsbil7cmV0dXJuIGJ3KHQsKGZ1bmN0aW9uKG4pe3ZhciBpPWVbMV1bMF0tZVswXVswXSxyPWVbMV1bMV0tZVswXVsxXSxvPU1hdGgubWluKGkvKG5bMV1bMF0tblswXVswXSksci8oblsxXVsxXS1uWzBdWzFdKSksYT0rZVswXVswXSsoaS1vKihuWzFdWzBdK25bMF1bMF0pKS8yLHM9K2VbMF1bMV0rKHItbyooblsxXVsxXStuWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCpvKS50cmFuc2xhdGUoW2Esc10pfSksbil9ZnVuY3Rpb24gd3codCxlLG4pe3JldHVybiB4dyh0LFtbMCwwXSxlXSxuKX1mdW5jdGlvbiBTdyh0LGUsbil7cmV0dXJuIGJ3KHQsKGZ1bmN0aW9uKG4pe3ZhciBpPStlLHI9aS8oblsxXVswXS1uWzBdWzBdKSxvPShpLXIqKG5bMV1bMF0rblswXVswXSkpLzIsYT0tcipuWzBdWzFdO3Quc2NhbGUoMTUwKnIpLnRyYW5zbGF0ZShbbyxhXSl9KSxuKX1mdW5jdGlvbiBNdyh0LGUsbil7cmV0dXJuIGJ3KHQsKGZ1bmN0aW9uKG4pe3ZhciBpPStlLHI9aS8oblsxXVsxXS1uWzBdWzFdKSxvPS1yKm5bMF1bMF0sYT0oaS1yKihuWzFdWzFdK25bMF1bMV0pKS8yO3Quc2NhbGUoMTUwKnIpLnRyYW5zbGF0ZShbbyxhXSl9KSxuKX1ndy5wcm90b3R5cGU9e19yYWRpdXM6NC41LF9jaXJjbGU6X3coNC41KSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4odD0rdCkhPT10aGlzLl9yYWRpdXMmJih0aGlzLl9yYWRpdXM9dCx0aGlzLl9jaXJjbGU9bnVsbCksdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fc3RyaW5nLnB1c2goIloiKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fc3RyaW5nLnB1c2goIk0iLHQsIiwiLGUpLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3N0cmluZy5wdXNoKCJMIix0LCIsIixlKTticmVhaztkZWZhdWx0Om51bGw9PXRoaXMuX2NpcmNsZSYmKHRoaXMuX2NpcmNsZT1fdyh0aGlzLl9yYWRpdXMpKSx0aGlzLl9zdHJpbmcucHVzaCgiTSIsdCwiLCIsZSx0aGlzLl9jaXJjbGUpfX0scmVzdWx0OmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RyaW5nLmxlbmd0aCl7dmFyIHQ9dGhpcy5fc3RyaW5nLmpvaW4oIiIpO3JldHVybiB0aGlzLl9zdHJpbmc9W10sdH1yZXR1cm4gbnVsbH19LHZ3LnByb3RvdHlwZT17Y29uc3RydWN0b3I6dncscG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLnN0cmVhbS5wb2ludCh0LGUpfSxzcGhlcmU6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvbkVuZCgpfX07dmFyIEV3PUh5KDMwKk95KTtmdW5jdGlvbiBUdyh0LGUpe3JldHVybitlPyhmdW5jdGlvbiBuKHQsZSl7ZnVuY3Rpb24gbihpLHIsbyxhLHMsbCxjLHUsaCxkLHAsZixtLGcpe3ZhciBfPWMtaSx5PXUtcix2PV8qXyt5Knk7aWYodj40KmUmJm0tLSl7dmFyIGI9YStkLHg9cytwLHc9bCtmLFM9cXkoYipiK3gqeCt3KncpLE09JHkody89UyksRT16eSh6eSh3KS0xKTxBeXx8enkoby1oKTxBeT8obytoKS8yOkJ5KHgsYiksVD10KEUsTSksQz1UWzBdLEE9VFsxXSxrPUMtaSxMPUEtcixQPXkqay1fKkw7KFAqUC92PmV8fHp5KChfKmsreSpMKS92LS41KT4uM3x8YSpkK3MqcCtsKmY8RXcpJiYobihpLHIsbyxhLHMsbCxDLEEsRSxiLz1TLHgvPVMsdyxtLGcpLGcucG9pbnQoQyxBKSxuKEMsQSxFLGIseCx3LGMsdSxoLGQscCxmLG0sZykpfX1yZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGkscixvLGEscyxsLGMsdSxoLGQscCxmLG09e3BvaW50OmcsbGluZVN0YXJ0Ol8sbGluZUVuZDp2LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2UucG9seWdvblN0YXJ0KCksbS5saW5lU3RhcnQ9Yn0scG9seWdvbkVuZDpmdW5jdGlvbigpe2UucG9seWdvbkVuZCgpLG0ubGluZVN0YXJ0PV99fTtmdW5jdGlvbiBnKG4saSl7bj10KG4saSksZS5wb2ludChuWzBdLG5bMV0pfWZ1bmN0aW9uIF8oKXt1PU5hTixtLnBvaW50PXksZS5saW5lU3RhcnQoKX1mdW5jdGlvbiB5KGkscil7dmFyIG89X3YoW2kscl0pLGE9dChpLHIpO24odSxoLGMsZCxwLGYsdT1hWzBdLGg9YVsxXSxjPWksZD1vWzBdLHA9b1sxXSxmPW9bMl0sMTYsZSksZS5wb2ludCh1LGgpfWZ1bmN0aW9uIHYoKXttLnBvaW50PWcsZS5saW5lRW5kKCl9ZnVuY3Rpb24gYigpe18oKSxtLnBvaW50PXgsbS5saW5lRW5kPXd9ZnVuY3Rpb24geCh0LGUpe3koaT10LGUpLHI9dSxvPWgsYT1kLHM9cCxsPWYsbS5wb2ludD15fWZ1bmN0aW9uIHcoKXtuKHUsaCxjLGQscCxmLHIsbyxpLGEscyxsLDE2LGUpLG0ubGluZUVuZD12LHYoKX1yZXR1cm4gbX19KSh0LGUpOihmdW5jdGlvbiBpKHQpe3JldHVybiB5dyh7cG9pbnQ6ZnVuY3Rpb24oZSxuKXtlPXQoZSxuKSx0aGlzLnN0cmVhbS5wb2ludChlWzBdLGVbMV0pfX0pfSkodCl9dmFyIEN3PXl3KHtwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuc3RyZWFtLnBvaW50KHQqT3ksZSpPeSl9fSk7ZnVuY3Rpb24gQXcodCxlLG4saSxyKXtmdW5jdGlvbiBvKG8sYSl7cmV0dXJuW2UrdCoobyo9aSksbi10KihhKj1yKV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKG8sYSl7cmV0dXJuWyhvLWUpL3QqaSwobi1hKS90KnJdfSxvfWZ1bmN0aW9uIGt3KHQsZSxuLGkscixvKXt2YXIgYT1IeShvKSxzPUd5KG8pLGw9YSp0LGM9cyp0LHU9YS90LGg9cy90LGQ9KHMqbi1hKmUpL3QscD0ocyplK2EqbikvdDtmdW5jdGlvbiBmKHQsbyl7cmV0dXJuW2wqKHQqPWkpLWMqKG8qPXIpK2Usbi1jKnQtbCpvXX1yZXR1cm4gZi5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5baSoodSp0LWgqZStkKSxyKihwLWgqdC11KmUpXX0sZn1mdW5jdGlvbiBMdyh0KXtyZXR1cm4gUHcoKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSkoKX1mdW5jdGlvbiBQdyh0KXt2YXIgZSxuLGkscixvLGEscyxsLGMsdSxoPTE1MCxkPTQ4MCxwPTI1MCxmPTAsbT0wLGc9MCxfPTAseT0wLHY9MCxiPTEseD0xLHc9bnVsbCxTPUhiLE09bnVsbCxFPWd4LFQ9LjU7ZnVuY3Rpb24gQyh0KXtyZXR1cm4gbCh0WzBdKk95LHRbMV0qT3kpfWZ1bmN0aW9uIEEodCl7cmV0dXJuKHQ9bC5pbnZlcnQodFswXSx0WzFdKSkmJlt0WzBdKlJ5LHRbMV0qUnldfWZ1bmN0aW9uIGsoKXt2YXIgdD1rdyhoLDAsMCxiLHgsdikuYXBwbHkobnVsbCxlKGYsbSkpLGk9KHY/a3c6QXcpKGgsZC10WzBdLHAtdFsxXSxiLHgsdik7cmV0dXJuIG49eGIoZyxfLHkpLHM9dmIoZSxpKSxsPXZiKG4scyksYT1UdyhzLFQpLEwoKX1mdW5jdGlvbiBMKCl7cmV0dXJuIGM9dT1udWxsLEN9cmV0dXJuIEMuc3RyZWFtPWZ1bmN0aW9uKHQpe3JldHVybiBjJiZ1PT09dD9jOmM9Q3coKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHl3KHtwb2ludDpmdW5jdGlvbihlLG4pe3ZhciBpPXQoZSxuKTtyZXR1cm4gdGhpcy5zdHJlYW0ucG9pbnQoaVswXSxpWzFdKX19KX0pKG4pKFMoYShFKHU9dCkpKSkpfSxDLnByZWNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFM9dCx3PXZvaWQgMCxMKCkpOlN9LEMucG9zdGNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEU9dCxNPWk9cj1vPW51bGwsTCgpKTpFfSxDLmNsaXBBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oUz0rdD9VYih3PXQqT3kpOih3PW51bGwsSGIpLEwoKSk6dypSeX0sQy5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhFPW51bGw9PXQ/KE09aT1yPW89bnVsbCxneCk6V2IoTT0rdFswXVswXSxpPSt0WzBdWzFdLHI9K3RbMV1bMF0sbz0rdFsxXVsxXSksTCgpKTpudWxsPT1NP251bGw6W1tNLGldLFtyLG9dXX0sQy5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD0rdCxrKCkpOmh9LEMudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPSt0WzBdLHA9K3RbMV0saygpKTpbZCxwXX0sQy5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9dFswXSUzNjAqT3ksbT10WzFdJTM2MCpPeSxrKCkpOltmKlJ5LG0qUnldfSxDLnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz10WzBdJTM2MCpPeSxfPXRbMV0lMzYwKk95LHk9dC5sZW5ndGg+Mj90WzJdJTM2MCpPeTowLGsoKSk6W2cqUnksXypSeSx5KlJ5XX0sQy5hbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj10JTM2MCpPeSxrKCkpOnYqUnl9LEMucmVmbGVjdFg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9dD8tMToxLGsoKSk6YjwwfSxDLnJlZmxlY3RZPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh4PXQ/LTE6MSxrKCkpOng8MH0sQy5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9VHcocyxUPXQqdCksTCgpKTpxeShUKX0sQy5maXRFeHRlbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4geHcoQyx0LGUpfSxDLmZpdFNpemU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gd3coQyx0LGUpfSxDLmZpdFdpZHRoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFN3KEMsdCxlKX0sQy5maXRIZWlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTXcoQyx0LGUpfSxmdW5jdGlvbigpe3JldHVybiBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpLEMuaW52ZXJ0PWUuaW52ZXJ0JiZBLGsoKX19ZnVuY3Rpb24gTncodCl7dmFyIGU9MCxuPUx5LzMsaT1Qdyh0KSxyPWkoZSxuKTtyZXR1cm4gci5wYXJhbGxlbHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/aShlPXRbMF0qT3ksbj10WzFdKk95KTpbZSpSeSxuKlJ5XX0scn1mdW5jdGlvbiBJdyh0LGUpe3ZhciBuPUd5KHQpLGk9KG4rR3koZSkpLzI7aWYoenkoaSk8QXkpcmV0dXJuKGZ1bmN0aW9uIHIodCl7dmFyIGU9SHkodCk7ZnVuY3Rpb24gbih0LG4pe3JldHVyblt0KmUsR3kobikvZV19cmV0dXJuIG4uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW3QvZSwkeShuKmUpXX0sbn0pKHQpO3ZhciBvPTErbiooMippLW4pLGE9cXkobykvaTtmdW5jdGlvbiBzKHQsZSl7dmFyIG49cXkoby0yKmkqR3koZSkpL2k7cmV0dXJuW24qR3kodCo9aSksYS1uKkh5KHQpXX1yZXR1cm4gcy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1hLWUscj1CeSh0LHp5KG4pKSpXeShuKTtyZXR1cm4gbippPDAmJihyLT1MeSpXeSh0KSpXeShuKSksW3IvaSwkeSgoby0odCp0K24qbikqaSppKS8oMippKSldfSxzfWZ1bmN0aW9uIFJ3KCl7cmV0dXJuIE53KEl3KS5zY2FsZSgxNTUuNDI0KS5jZW50ZXIoWzAsMzMuNjQ0Ml0pfWZ1bmN0aW9uIE93KCl7cmV0dXJuIFJ3KCkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKS50cmFuc2xhdGUoWzQ4MCwyNTBdKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSl9ZnVuY3Rpb24gencodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9SHkoZSkscj1IeShuKSxvPXQoaSpyKTtyZXR1cm5bbypyKkd5KGUpLG8qR3kobildfX1mdW5jdGlvbiBEdyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgaT1xeShlKmUrbipuKSxyPXQoaSksbz1HeShyKSxhPUh5KHIpO3JldHVybltCeShlKm8saSphKSwkeShpJiZuKm8vaSldfX12YXIgQnc9encoKGZ1bmN0aW9uKHQpe3JldHVybiBxeSgyLygxK3QpKX0pKTtCdy5pbnZlcnQ9RHcoKGZ1bmN0aW9uKHQpe3JldHVybiAyKiR5KHQvMil9KSk7dmFyIEh3PXp3KChmdW5jdGlvbih0KXtyZXR1cm4odD1YeSh0KSkmJnQvR3kodCl9KSk7ZnVuY3Rpb24gRncodCxlKXtyZXR1cm5bdCxVeShZeSgoUHkrZSkvMikpXX1mdW5jdGlvbiBWdyh0KXt2YXIgZSxuLGkscj1Mdyh0KSxvPXIuY2VudGVyLGE9ci5zY2FsZSxzPXIudHJhbnNsYXRlLGw9ci5jbGlwRXh0ZW50LGM9bnVsbDtmdW5jdGlvbiB1KCl7dmFyIG89THkqYSgpLHM9cihFYihyLnJvdGF0ZSgpKS5pbnZlcnQoWzAsMF0pKTtyZXR1cm4gbChudWxsPT1jP1tbc1swXS1vLHNbMV0tb10sW3NbMF0rbyxzWzFdK29dXTp0PT09Rnc/W1tNYXRoLm1heChzWzBdLW8sYyksZV0sW01hdGgubWluKHNbMF0rbyxuKSxpXV06W1tjLE1hdGgubWF4KHNbMV0tbyxlKV0sW24sTWF0aC5taW4oc1sxXStvLGkpXV0pfXJldHVybiByLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhKHQpLHUoKSk6YSgpfSxyLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocyh0KSx1KCkpOnMoKX0sci5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG8odCksdSgpKTpvKCl9LHIuY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9jPWU9bj1pPW51bGw6KGM9K3RbMF1bMF0sZT0rdFswXVsxXSxuPSt0WzFdWzBdLGk9K3RbMV1bMV0pLHUoKSk6bnVsbD09Yz9udWxsOltbYyxlXSxbbixpXV19LHUoKX1mdW5jdGlvbiBVdyh0KXtyZXR1cm4gWXkoKFB5K3QpLzIpfWZ1bmN0aW9uIGp3KHQsZSl7dmFyIG49SHkodCksaT10PT09ZT9HeSh0KTpVeShuL0h5KGUpKS9VeShVdyhlKS9Vdyh0KSkscj1uKmp5KFV3KHQpLGkpL2k7aWYoIWkpcmV0dXJuIEZ3O2Z1bmN0aW9uIG8odCxlKXtyPjA/ZTwtUHkrQXkmJihlPS1QeStBeSk6ZT5QeS1BeSYmKGU9UHktQXkpO3ZhciBuPXIvankoVXcoZSksaSk7cmV0dXJuW24qR3koaSp0KSxyLW4qSHkoaSp0KV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ci1lLG89V3koaSkqcXkodCp0K24qbiksYT1CeSh0LHp5KG4pKSpXeShuKTtyZXR1cm4gbippPDAmJihhLT1MeSpXeSh0KSpXeShuKSksW2EvaSwyKkR5KGp5KHIvbywxL2kpKS1QeV19LG99ZnVuY3Rpb24gR3codCxlKXtyZXR1cm5bdCxlXX1mdW5jdGlvbiBXdyh0LGUpe3ZhciBuPUh5KHQpLGk9dD09PWU/R3kodCk6KG4tSHkoZSkpLyhlLXQpLHI9bi9pK3Q7aWYoenkoaSk8QXkpcmV0dXJuIEd3O2Z1bmN0aW9uIG8odCxlKXt2YXIgbj1yLWUsbz1pKnQ7cmV0dXJuW24qR3kobyksci1uKkh5KG8pXX1yZXR1cm4gby5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1yLWUsbz1CeSh0LHp5KG4pKSpXeShuKTtyZXR1cm4gbippPDAmJihvLT1MeSpXeSh0KSpXeShuKSksW28vaSxyLVd5KGkpKnF5KHQqdCtuKm4pXX0sb31Idy5pbnZlcnQ9RHcoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpLEZ3LmludmVydD1mdW5jdGlvbih0LGUpe3JldHVyblt0LDIqRHkoVnkoZSkpLVB5XX0sR3cuaW52ZXJ0PUd3O3ZhciBxdz0xLjM0MDI2NCxZdz0tLjA4MTEwNixYdz04OTNlLTYsJHc9LjAwMzc5NixLdz1xeSgzKS8yO2Z1bmN0aW9uIFp3KHQsZSl7dmFyIG49JHkoS3cqR3koZSkpLGk9bipuLHI9aSppKmk7cmV0dXJuW3QqSHkobikvKEt3KihxdyszKll3KmkrciooNypYdys5KiR3KmkpKSksbioocXcrWXcqaStyKihYdyskdyppKSldfWZ1bmN0aW9uIEp3KHQsZSl7dmFyIG49SHkoZSksaT1IeSh0KSpuO3JldHVybltuKkd5KHQpL2ksR3koZSkvaV19ZnVuY3Rpb24gUXcodCxlKXt2YXIgbj1lKmUsaT1uKm47cmV0dXJuW3QqKC44NzA3LS4xMzE5NzkqbitpKihpKiguMDAzOTcxKm4tLjAwMTUyOSppKS0uMDEzNzkxKSksZSooMS4wMDcyMjYrbiooLjAxNTA4NStpKiguMDI4ODc0Km4tLjA0NDQ3NS0uMDA1OTE2KmkpKSldfWZ1bmN0aW9uIHRTKHQsZSl7cmV0dXJuW0h5KGUpKkd5KHQpLEd5KGUpXX1mdW5jdGlvbiBlUyh0LGUpe3ZhciBuPUh5KGUpLGk9MStIeSh0KSpuO3JldHVybltuKkd5KHQpL2ksR3koZSkvaV19ZnVuY3Rpb24gblModCxlKXtyZXR1cm5bVXkoWXkoKFB5K2UpLzIpKSwtdF19ZnVuY3Rpb24gaVModCxlKXtyZXR1cm4gdC5wYXJlbnQ9PT1lLnBhcmVudD8xOjJ9ZnVuY3Rpb24gclModCxlKXtyZXR1cm4gdCtlLnh9ZnVuY3Rpb24gb1ModCxlKXtyZXR1cm4gTWF0aC5tYXgodCxlLnkpfWZ1bmN0aW9uIGFTKHQpe3ZhciBlPTAsbj10LmNoaWxkcmVuLGk9biYmbi5sZW5ndGg7aWYoaSlmb3IoOy0taT49MDspZSs9bltpXS52YWx1ZTtlbHNlIGU9MTt0LnZhbHVlPWV9ZnVuY3Rpb24gc1ModCxlKXt2YXIgbixpLHIsbyxhLHM9bmV3IGhTKHQpLGw9K3QudmFsdWUmJihzLnZhbHVlPXQudmFsdWUpLGM9W3NdO2ZvcihudWxsPT1lJiYoZT1sUyk7bj1jLnBvcCgpOylpZihsJiYobi52YWx1ZT0rbi5kYXRhLnZhbHVlKSwocj1lKG4uZGF0YSkpJiYoYT1yLmxlbmd0aCkpZm9yKG4uY2hpbGRyZW49bmV3IEFycmF5KGEpLG89YS0xO28+PTA7LS1vKWMucHVzaChpPW4uY2hpbGRyZW5bb109bmV3IGhTKHJbb10pKSxpLnBhcmVudD1uLGkuZGVwdGg9bi5kZXB0aCsxO3JldHVybiBzLmVhY2hCZWZvcmUodVMpfWZ1bmN0aW9uIGxTKHQpe3JldHVybiB0LmNoaWxkcmVufWZ1bmN0aW9uIGNTKHQpe3QuZGF0YT10LmRhdGEuZGF0YX1mdW5jdGlvbiB1Uyh0KXt2YXIgZT0wO2Rve3QuaGVpZ2h0PWV9d2hpbGUoKHQ9dC5wYXJlbnQpJiZ0LmhlaWdodDwrK2UpfWZ1bmN0aW9uIGhTKHQpe3RoaXMuZGF0YT10LHRoaXMuZGVwdGg9dGhpcy5oZWlnaHQ9MCx0aGlzLnBhcmVudD1udWxsfVp3LmludmVydD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbixpPWUscj1pKmksbz1yKnIqcixhPTA7YTwxMiYmKG89KHI9KGktPW49KGkqKHF3K1l3KnIrbyooWHcrJHcqcikpLWUpLyhxdyszKll3KnIrbyooNypYdys5KiR3KnIpKSkqaSkqcipyLCEoenkobik8a3kpKTsrK2EpO3JldHVybltLdyp0KihxdyszKll3KnIrbyooNypYdys5KiR3KnIpKS9IeShpKSwkeShHeShpKS9LdyldfSxKdy5pbnZlcnQ9RHcoRHkpLFF3LmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBuLGk9ZSxyPTI1O2Rve3ZhciBvPWkqaSxhPW8qbztpLT1uPShpKigxLjAwNzIyNitvKiguMDE1MDg1K2EqKC4wMjg4NzQqby0uMDQ0NDc1LS4wMDU5MTYqYSkpKS1lKS8oMS4wMDcyMjYrbyooLjA0NTI1NSthKiguMjU5ODY2Km8tLjMxMTMyNS0uMDA1OTE2KjExKmEpKSl9d2hpbGUoenkobik+QXkmJi0tcj4wKTtyZXR1cm5bdC8oLjg3MDcrKG89aSppKSoobyoobypvKm8qKC4wMDM5NzEtLjAwMTUyOSpvKS0uMDEzNzkxKS0uMTMxOTc5KSksaV19LHRTLmludmVydD1EdygkeSksZVMuaW52ZXJ0PUR3KChmdW5jdGlvbih0KXtyZXR1cm4gMipEeSh0KX0pKSxuUy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bLWUsMipEeShWeSh0KSktUHldfSxoUy5wcm90b3R5cGU9c1MucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpoUyxjb3VudDpmdW5jdGlvbiBkUygpe3JldHVybiB0aGlzLmVhY2hBZnRlcihhUyl9LGVhY2g6ZnVuY3Rpb24gcFModCl7dmFyIGUsbixpLHIsbz10aGlzLGE9W29dO2Rve2ZvcihlPWEucmV2ZXJzZSgpLGE9W107bz1lLnBvcCgpOylpZih0KG8pLG49by5jaGlsZHJlbilmb3IoaT0wLHI9bi5sZW5ndGg7aTxyOysraSlhLnB1c2gobltpXSl9d2hpbGUoYS5sZW5ndGgpO3JldHVybiB0aGlzfSxlYWNoQWZ0ZXI6ZnVuY3Rpb24gZlModCl7Zm9yKHZhciBlLG4saSxyPXRoaXMsbz1bcl0sYT1bXTtyPW8ucG9wKCk7KWlmKGEucHVzaChyKSxlPXIuY2hpbGRyZW4pZm9yKG49MCxpPWUubGVuZ3RoO248aTsrK24pby5wdXNoKGVbbl0pO2Zvcig7cj1hLnBvcCgpOyl0KHIpO3JldHVybiB0aGlzfSxlYWNoQmVmb3JlOmZ1bmN0aW9uIG1TKHQpe2Zvcih2YXIgZSxuLGk9dGhpcyxyPVtpXTtpPXIucG9wKCk7KWlmKHQoaSksZT1pLmNoaWxkcmVuKWZvcihuPWUubGVuZ3RoLTE7bj49MDstLW4pci5wdXNoKGVbbl0pO3JldHVybiB0aGlzfSxzdW06ZnVuY3Rpb24gZ1ModCl7cmV0dXJuIHRoaXMuZWFjaEFmdGVyKChmdW5jdGlvbihlKXtmb3IodmFyIG49K3QoZS5kYXRhKXx8MCxpPWUuY2hpbGRyZW4scj1pJiZpLmxlbmd0aDstLXI+PTA7KW4rPWlbcl0udmFsdWU7ZS52YWx1ZT1ufSkpfSxzb3J0OmZ1bmN0aW9uIF9TKHQpe3JldHVybiB0aGlzLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW4mJmUuY2hpbGRyZW4uc29ydCh0KX0pKX0scGF0aDpmdW5jdGlvbiB5Uyh0KXtmb3IodmFyIGU9dGhpcyxuPShmdW5jdGlvbiBpKHQsZSl7aWYodD09PWUpcmV0dXJuIHQ7dmFyIG49dC5hbmNlc3RvcnMoKSxpPWUuYW5jZXN0b3JzKCkscj1udWxsO2Zvcih0PW4ucG9wKCksZT1pLnBvcCgpO3Q9PT1lOylyPXQsdD1uLnBvcCgpLGU9aS5wb3AoKTtyZXR1cm4gcn0pKGUsdCkscj1bZV07ZSE9PW47KXIucHVzaChlPWUucGFyZW50KTtmb3IodmFyIG89ci5sZW5ndGg7dCE9PW47KXIuc3BsaWNlKG8sMCx0KSx0PXQucGFyZW50O3JldHVybiByfSxhbmNlc3RvcnM6ZnVuY3Rpb24gdlMoKXtmb3IodmFyIHQ9dGhpcyxlPVt0XTt0PXQucGFyZW50OyllLnB1c2godCk7cmV0dXJuIGV9LGRlc2NlbmRhbnRzOmZ1bmN0aW9uIGJTKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oZSl7dC5wdXNoKGUpfSkpLHR9LGxlYXZlczpmdW5jdGlvbiB4Uygpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW58fHQucHVzaChlKX0pKSx0fSxsaW5rczpmdW5jdGlvbiB3Uygpe3ZhciB0PXRoaXMsZT1bXTtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbihuKXtuIT09dCYmZS5wdXNoKHtzb3VyY2U6bi5wYXJlbnQsdGFyZ2V0Om59KX0pKSxlfSxjb3B5OmZ1bmN0aW9uIFNTKCl7cmV0dXJuIHNTKHRoaXMpLmVhY2hCZWZvcmUoY1MpfX07dmFyIE1TPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBFUyh0KXtmb3IodmFyIGUsbixpPTAscj0odD0oZnVuY3Rpb24gbyh0KXtmb3IodmFyIGUsbixpPXQubGVuZ3RoO2k7KW49TWF0aC5yYW5kb20oKSppLS18MCxlPXRbaV0sdFtpXT10W25dLHRbbl09ZTtyZXR1cm4gdH0pKE1TLmNhbGwodCkpKS5sZW5ndGgsYT1bXTtpPHI7KWU9dFtpXSxuJiZBUyhuLGUpPysraToobj1MUyhhPVRTKGEsZSkpLGk9MCk7cmV0dXJuIG59ZnVuY3Rpb24gVFModCxlKXt2YXIgbixpO2lmKGtTKGUsdCkpcmV0dXJuW2VdO2ZvcihuPTA7bjx0Lmxlbmd0aDsrK24paWYoQ1MoZSx0W25dKSYma1MoUFModFtuXSxlKSx0KSlyZXR1cm5bdFtuXSxlXTtmb3Iobj0wO248dC5sZW5ndGgtMTsrK24pZm9yKGk9bisxO2k8dC5sZW5ndGg7KytpKWlmKENTKFBTKHRbbl0sdFtpXSksZSkmJkNTKFBTKHRbbl0sZSksdFtpXSkmJkNTKFBTKHRbaV0sZSksdFtuXSkmJmtTKE5TKHRbbl0sdFtpXSxlKSx0KSlyZXR1cm5bdFtuXSx0W2ldLGVdO3Rocm93IG5ldyBFcnJvcn1mdW5jdGlvbiBDUyh0LGUpe3ZhciBuPXQuci1lLnIsaT1lLngtdC54LHI9ZS55LXQueTtyZXR1cm4gbjwwfHxuKm48aSppK3Iqcn1mdW5jdGlvbiBBUyh0LGUpe3ZhciBuPXQuci1lLnIrMWUtNixpPWUueC10Lngscj1lLnktdC55O3JldHVybiBuPjAmJm4qbj5pKmkrcipyfWZ1bmN0aW9uIGtTKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDsrK24paWYoIUFTKHQsZVtuXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gTFModCl7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDE6cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJue3g6dC54LHk6dC55LHI6dC5yfX0pKHRbMF0pO2Nhc2UgMjpyZXR1cm4gUFModFswXSx0WzFdKTtjYXNlIDM6cmV0dXJuIE5TKHRbMF0sdFsxXSx0WzJdKX19ZnVuY3Rpb24gUFModCxlKXt2YXIgbj10LngsaT10Lnkscj10LnIsbz1lLngsYT1lLnkscz1lLnIsbD1vLW4sYz1hLWksdT1zLXIsaD1NYXRoLnNxcnQobCpsK2MqYyk7cmV0dXJue3g6KG4rbytsL2gqdSkvMix5OihpK2ErYy9oKnUpLzIscjooaCtyK3MpLzJ9fWZ1bmN0aW9uIE5TKHQsZSxuKXt2YXIgaT10Lngscj10Lnksbz10LnIsYT1lLngscz1lLnksbD1lLnIsYz1uLngsdT1uLnksaD1uLnIsZD1pLWEscD1pLWMsZj1yLXMsbT1yLXUsZz1sLW8sXz1oLW8seT1pKmkrcipyLW8qbyx2PXktYSphLXMqcytsKmwsYj15LWMqYy11KnUraCpoLHg9cCpmLWQqbSx3PShmKmItbSp2KS8oMip4KS1pLFM9KG0qZy1mKl8pL3gsTT0ocCp2LWQqYikvKDIqeCktcixFPShkKl8tcCpnKS94LFQ9UypTK0UqRS0xLEM9Mioobyt3KlMrTSpFKSxBPXcqdytNKk0tbypvLGs9LShUPyhDK01hdGguc3FydChDKkMtNCpUKkEpKS8oMipUKTpBL0MpO3JldHVybnt4OmkrdytTKmsseTpyK00rRSprLHI6a319ZnVuY3Rpb24gSVModCxlLG4pe3ZhciBpLHIsbyxhLHM9dC54LWUueCxsPXQueS1lLnksYz1zKnMrbCpsO2M/KHI9ZS5yK24ucixhPXQucituLnIsKHIqPXIpPihhKj1hKT8oaT0oYythLXIpLygyKmMpLG89TWF0aC5zcXJ0KE1hdGgubWF4KDAsYS9jLWkqaSkpLG4ueD10LngtaSpzLW8qbCxuLnk9dC55LWkqbCtvKnMpOihpPShjK3ItYSkvKDIqYyksbz1NYXRoLnNxcnQoTWF0aC5tYXgoMCxyL2MtaSppKSksbi54PWUueCtpKnMtbypsLG4ueT1lLnkraSpsK28qcykpOihuLng9ZS54K24ucixuLnk9ZS55KX1mdW5jdGlvbiBSUyh0LGUpe3ZhciBuPXQucitlLnItMWUtNixpPWUueC10Lngscj1lLnktdC55O3JldHVybiBuPjAmJm4qbj5pKmkrcipyfWZ1bmN0aW9uIE9TKHQpe3ZhciBlPXQuXyxuPXQubmV4dC5fLGk9ZS5yK24ucixyPShlLngqbi5yK24ueCplLnIpL2ksbz0oZS55Km4ucituLnkqZS5yKS9pO3JldHVybiByKnIrbypvfWZ1bmN0aW9uIHpTKHQpe3RoaXMuXz10LHRoaXMubmV4dD1udWxsLHRoaXMucHJldmlvdXM9bnVsbH1mdW5jdGlvbiBEUyh0KXtpZighKHI9dC5sZW5ndGgpKXJldHVybiAwO3ZhciBlLG4saSxyLG8sYSxzLGwsYyx1LGg7aWYoKGU9dFswXSkueD0wLGUueT0wLCEocj4xKSlyZXR1cm4gZS5yO2lmKGUueD0tKG49dFsxXSkucixuLng9ZS5yLG4ueT0wLCEocj4yKSlyZXR1cm4gZS5yK24ucjtJUyhuLGUsaT10WzJdKSxlPW5ldyB6UyhlKSxuPW5ldyB6UyhuKSxpPW5ldyB6UyhpKSxlLm5leHQ9aS5wcmV2aW91cz1uLG4ubmV4dD1lLnByZXZpb3VzPWksaS5uZXh0PW4ucHJldmlvdXM9ZTt0OmZvcihzPTM7czxyOysrcyl7SVMoZS5fLG4uXyxpPXRbc10pLGk9bmV3IHpTKGkpLGw9bi5uZXh0LGM9ZS5wcmV2aW91cyx1PW4uXy5yLGg9ZS5fLnI7ZG97aWYodTw9aCl7aWYoUlMobC5fLGkuXykpe2UubmV4dD1uPWwsbi5wcmV2aW91cz1lLC0tcztjb250aW51ZSB0fXUrPWwuXy5yLGw9bC5uZXh0fWVsc2V7aWYoUlMoYy5fLGkuXykpeyhlPWMpLm5leHQ9bixuLnByZXZpb3VzPWUsLS1zO2NvbnRpbnVlIHR9aCs9Yy5fLnIsYz1jLnByZXZpb3VzfX13aGlsZShsIT09Yy5uZXh0KTtmb3IoaS5wcmV2aW91cz1lLGkubmV4dD1uLGUubmV4dD1uLnByZXZpb3VzPW49aSxvPU9TKGUpOyhpPWkubmV4dCkhPT1uOykoYT1PUyhpKSk8byYmKGU9aSxvPWEpO249ZS5uZXh0fWZvcihlPVtuLl9dLGk9bjsoaT1pLm5leHQpIT09bjspZS5wdXNoKGkuXyk7Zm9yKGk9RVMoZSkscz0wO3M8cjsrK3MpKGU9dFtzXSkueC09aS54LGUueS09aS55O3JldHVybiBpLnJ9ZnVuY3Rpb24gQlModCl7cmV0dXJuIG51bGw9PXQ/bnVsbDpIUyh0KX1mdW5jdGlvbiBIUyh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHR9ZnVuY3Rpb24gRlMoKXtyZXR1cm4gMH1mdW5jdGlvbiBWUyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gVVModCl7cmV0dXJuIE1hdGguc3FydCh0LnZhbHVlKX1mdW5jdGlvbiBqUyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbnx8KGUucj1NYXRoLm1heCgwLCt0KGUpfHwwKSl9fWZ1bmN0aW9uIEdTKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe2lmKGk9bi5jaGlsZHJlbil7dmFyIGkscixvLGE9aS5sZW5ndGgscz10KG4pKmV8fDA7aWYocylmb3Iocj0wO3I8YTsrK3IpaVtyXS5yKz1zO2lmKG89RFMoaSkscylmb3Iocj0wO3I8YTsrK3IpaVtyXS5yLT1zO24ucj1vK3N9fX1mdW5jdGlvbiBXUyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49ZS5wYXJlbnQ7ZS5yKj10LG4mJihlLng9bi54K3QqZS54LGUueT1uLnkrdCplLnkpfX1mdW5jdGlvbiBxUyh0KXt0LngwPU1hdGgucm91bmQodC54MCksdC55MD1NYXRoLnJvdW5kKHQueTApLHQueDE9TWF0aC5yb3VuZCh0LngxKSx0LnkxPU1hdGgucm91bmQodC55MSl9ZnVuY3Rpb24gWVModCxlLG4saSxyKXtmb3IodmFyIG8sYT10LmNoaWxkcmVuLHM9LTEsbD1hLmxlbmd0aCxjPXQudmFsdWUmJihpLWUpL3QudmFsdWU7KytzPGw7KShvPWFbc10pLnkwPW4sby55MT1yLG8ueDA9ZSxvLngxPWUrPW8udmFsdWUqY312YXIgWFM9e2RlcHRoOi0xfSwkUz17fTtmdW5jdGlvbiBLUyh0KXtyZXR1cm4gdC5pZH1mdW5jdGlvbiBaUyh0KXtyZXR1cm4gdC5wYXJlbnRJZH1mdW5jdGlvbiBKUyh0LGUpe3JldHVybiB0LnBhcmVudD09PWUucGFyZW50PzE6Mn1mdW5jdGlvbiBRUyh0KXt2YXIgZT10LmNoaWxkcmVuO3JldHVybiBlP2VbMF06dC50fWZ1bmN0aW9uIHRNKHQpe3ZhciBlPXQuY2hpbGRyZW47cmV0dXJuIGU/ZVtlLmxlbmd0aC0xXTp0LnR9ZnVuY3Rpb24gZU0odCxlLG4pe3ZhciBpPW4vKGUuaS10LmkpO2UuYy09aSxlLnMrPW4sdC5jKz1pLGUueis9bixlLm0rPW59ZnVuY3Rpb24gbk0odCxlLG4pe3JldHVybiB0LmEucGFyZW50PT09ZS5wYXJlbnQ/dC5hOm59ZnVuY3Rpb24gaU0odCxlKXt0aGlzLl89dCx0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49bnVsbCx0aGlzLkE9bnVsbCx0aGlzLmE9dGhpcyx0aGlzLno9MCx0aGlzLm09MCx0aGlzLmM9MCx0aGlzLnM9MCx0aGlzLnQ9bnVsbCx0aGlzLmk9ZX1mdW5jdGlvbiByTSh0LGUsbixpLHIpe2Zvcih2YXIgbyxhPXQuY2hpbGRyZW4scz0tMSxsPWEubGVuZ3RoLGM9dC52YWx1ZSYmKHItbikvdC52YWx1ZTsrK3M8bDspKG89YVtzXSkueDA9ZSxvLngxPWksby55MD1uLG8ueTE9bis9by52YWx1ZSpjfWlNLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGhTLnByb3RvdHlwZSk7dmFyIG9NPSgxK01hdGguc3FydCg1KSkvMjtmdW5jdGlvbiBhTSh0LGUsbixpLHIsbyl7Zm9yKHZhciBhLHMsbCxjLHUsaCxkLHAsZixtLGcsXz1bXSx5PWUuY2hpbGRyZW4sdj0wLGI9MCx4PXkubGVuZ3RoLHc9ZS52YWx1ZTt2PHg7KXtsPXItbixjPW8taTtkb3t1PXlbYisrXS52YWx1ZX13aGlsZSghdSYmYjx4KTtmb3IoaD1kPXUsZz11KnUqKG09TWF0aC5tYXgoYy9sLGwvYykvKHcqdCkpLGY9TWF0aC5tYXgoZC9nLGcvaCk7Yjx4OysrYil7aWYodSs9cz15W2JdLnZhbHVlLHM8aCYmKGg9cykscz5kJiYoZD1zKSxnPXUqdSptLChwPU1hdGgubWF4KGQvZyxnL2gpKT5mKXt1LT1zO2JyZWFrfWY9cH1fLnB1c2goYT17dmFsdWU6dSxkaWNlOmw8YyxjaGlsZHJlbjp5LnNsaWNlKHYsYil9KSxhLmRpY2U/WVMoYSxuLGkscix3P2krPWMqdS93Om8pOnJNKGEsbixpLHc/bis9bCp1L3c6cixvKSx3LT11LHY9Yn1yZXR1cm4gX312YXIgc009KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0LG4saSxyLG8pe2FNKGUsdCxuLGkscixvKX1yZXR1cm4gbi5yYXRpbz1mdW5jdGlvbihlKXtyZXR1cm4gdCgoZT0rZSk+MT9lOjEpfSxufSkob00pLGxNPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCxuLGkscixvKXtpZigoYT10Ll9zcXVhcmlmeSkmJmEucmF0aW89PT1lKWZvcih2YXIgYSxzLGwsYyx1LGg9LTEsZD1hLmxlbmd0aCxwPXQudmFsdWU7KytoPGQ7KXtmb3IobD0ocz1hW2hdKS5jaGlsZHJlbixjPXMudmFsdWU9MCx1PWwubGVuZ3RoO2M8dTsrK2Mpcy52YWx1ZSs9bFtjXS52YWx1ZTtzLmRpY2U/WVMocyxuLGkscixpKz0oby1pKSpzLnZhbHVlL3ApOnJNKHMsbixpLG4rPShyLW4pKnMudmFsdWUvcCxvKSxwLT1zLnZhbHVlfWVsc2UgdC5fc3F1YXJpZnk9YT1hTShlLHQsbixpLHIsbyksYS5yYXRpbz1lfXJldHVybiBuLnJhdGlvPWZ1bmN0aW9uKGUpe3JldHVybiB0KChlPStlKT4xP2U6MSl9LG59KShvTSk7ZnVuY3Rpb24gY00odCxlLG4pe3JldHVybihlWzBdLXRbMF0pKihuWzFdLXRbMV0pLShlWzFdLXRbMV0pKihuWzBdLXRbMF0pfWZ1bmN0aW9uIHVNKHQsZSl7cmV0dXJuIHRbMF0tZVswXXx8dFsxXS1lWzFdfWZ1bmN0aW9uIGhNKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxuPVswLDFdLGk9MixyPTI7cjxlOysrcil7Zm9yKDtpPjEmJmNNKHRbbltpLTJdXSx0W25baS0xXV0sdFtyXSk8PTA7KS0taTtuW2krK109cn1yZXR1cm4gbi5zbGljZSgwLGkpfWZ1bmN0aW9uIGRNKCl7cmV0dXJuIE1hdGgucmFuZG9tKCl9dmFyIHBNPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gdD1udWxsPT10PzA6K3Qsbj1udWxsPT1uPzE6K24sMT09PWFyZ3VtZW50cy5sZW5ndGg/KG49dCx0PTApOm4tPXQsZnVuY3Rpb24oKXtyZXR1cm4gZSgpKm4rdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKGRNKSxmTT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQsbil7dmFyIGkscjtyZXR1cm4gdD1udWxsPT10PzA6K3Qsbj1udWxsPT1uPzE6K24sZnVuY3Rpb24oKXt2YXIgbztpZihudWxsIT1pKW89aSxpPW51bGw7ZWxzZSBkb3tpPTIqZSgpLTEsbz0yKmUoKS0xLHI9aSppK28qb313aGlsZSghcnx8cj4xKTtyZXR1cm4gdCtuKm8qTWF0aC5zcXJ0KC0yKk1hdGgubG9nKHIpL3IpfX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoZE0pLG1NPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4oKXt2YXIgdD1mTS5zb3VyY2UoZSkuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNYXRoLmV4cCh0KCkpfX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoZE0pLGdNPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPTAsaT0wO2k8dDsrK2kpbis9ZSgpO3JldHVybiBufX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoZE0pLF9NPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7dmFyIG49Z00uc291cmNlKGUpKHQpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKCkvdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKGRNKSx5TT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybi1NYXRoLmxvZygxLWUoKSkvdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKGRNKTtmdW5jdGlvbiB2TSh0LGUpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOnRoaXMucmFuZ2UodCk7YnJlYWs7ZGVmYXVsdDp0aGlzLnJhbmdlKGUpLmRvbWFpbih0KX1yZXR1cm4gdGhpc31mdW5jdGlvbiBiTSh0LGUpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOnRoaXMuaW50ZXJwb2xhdG9yKHQpO2JyZWFrO2RlZmF1bHQ6dGhpcy5pbnRlcnBvbGF0b3IoZSkuZG9tYWluKHQpfXJldHVybiB0aGlzfXZhciB4TT1BcnJheS5wcm90b3R5cGUsd009eE0ubWFwLFNNPXhNLnNsaWNlLE1NPXtuYW1lOiJpbXBsaWNpdCJ9O2Z1bmN0aW9uIEVNKCl7dmFyIHQ9d2coKSxlPVtdLG49W10saT1NTTtmdW5jdGlvbiByKHIpe3ZhciBvPXIrIiIsYT10LmdldChvKTtpZighYSl7aWYoaSE9PU1NKXJldHVybiBpO3Quc2V0KG8sYT1lLnB1c2gocikpfXJldHVybiBuWyhhLTEpJW4ubGVuZ3RoXX1yZXR1cm4gci5kb21haW49ZnVuY3Rpb24obil7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGUuc2xpY2UoKTtlPVtdLHQ9d2coKTtmb3IodmFyIGksbyxhPS0xLHM9bi5sZW5ndGg7KythPHM7KXQuaGFzKG89KGk9blthXSkrIiIpfHx0LnNldChvLGUucHVzaChpKSk7cmV0dXJuIHJ9LHIucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49U00uY2FsbCh0KSxyKTpuLnNsaWNlKCl9LHIudW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LHIpOml9LHIuY29weT1mdW5jdGlvbigpe3JldHVybiBFTShlLG4pLnVua25vd24oaSl9LHZNLmFwcGx5KHIsYXJndW1lbnRzKSxyfWZ1bmN0aW9uIFRNKCl7dmFyIHQsZSxuPUVNKCkudW5rbm93bih2b2lkIDApLGk9bi5kb21haW4scj1uLnJhbmdlLG89WzAsMV0sYT0hMSxzPTAsbD0wLGM9LjU7ZnVuY3Rpb24gdSgpe3ZhciBuPWkoKS5sZW5ndGgsdT1vWzFdPG9bMF0saD1vW3UtMF0sZD1vWzEtdV07dD0oZC1oKS9NYXRoLm1heCgxLG4tcysyKmwpLGEmJih0PU1hdGguZmxvb3IodCkpLGgrPShkLWgtdCoobi1zKSkqYyxlPXQqKDEtcyksYSYmKGg9TWF0aC5yb3VuZChoKSxlPU1hdGgucm91bmQoZSkpO3ZhciBwPXpsKG4pLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGgrdCplfSkpO3JldHVybiByKHU/cC5yZXZlcnNlKCk6cCl9cmV0dXJuIGRlbGV0ZSBuLnVua25vd24sbi5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkodCksdSgpKTppKCl9LG4ucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89Wyt0WzBdLCt0WzFdXSx1KCkpOm8uc2xpY2UoKX0sbi5yYW5nZVJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBvPVsrdFswXSwrdFsxXV0sYT0hMCx1KCl9LG4uYmFuZHdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LG4uc3RlcD1mdW5jdGlvbigpe3JldHVybiB0fSxuLnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSEhdCx1KCkpOmF9LG4ucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1NYXRoLm1pbigxLGw9K3QpLHUoKSk6c30sbi5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9TWF0aC5taW4oMSx0KSx1KCkpOnN9LG4ucGFkZGluZ091dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPSt0LHUoKSk6bH0sbi5hbGlnbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1NYXRoLm1heCgwLE1hdGgubWluKDEsdCkpLHUoKSk6Y30sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIFRNKGkoKSxvKS5yb3VuZChhKS5wYWRkaW5nSW5uZXIocykucGFkZGluZ091dGVyKGwpLmFsaWduKGMpfSx2TS5hcHBseSh1KCksYXJndW1lbnRzKX1mdW5jdGlvbiBDTSh0KXt2YXIgZT10LmNvcHk7cmV0dXJuIHQucGFkZGluZz10LnBhZGRpbmdPdXRlcixkZWxldGUgdC5wYWRkaW5nSW5uZXIsZGVsZXRlIHQucGFkZGluZ091dGVyLHQuY29weT1mdW5jdGlvbigpe3JldHVybiBDTShlKCkpfSx0fWZ1bmN0aW9uIEFNKCl7cmV0dXJuIENNKFRNLmFwcGx5KG51bGwsYXJndW1lbnRzKS5wYWRkaW5nSW5uZXIoMSkpfWZ1bmN0aW9uIGtNKHQpe3JldHVybit0fXZhciBMTT1bMCwxXTtmdW5jdGlvbiBQTSh0KXtyZXR1cm4gdH1mdW5jdGlvbiBOTSh0LGUpe3JldHVybihlLT10PSt0KT9mdW5jdGlvbihuKXtyZXR1cm4obi10KS9lfTooZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KShpc05hTihlKT9OYU46LjUpfWZ1bmN0aW9uIElNKHQpe3ZhciBlLG49dFswXSxpPXRbdC5sZW5ndGgtMV07cmV0dXJuIG4+aSYmKGU9bixuPWksaT1lKSxmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgobixNYXRoLm1pbihpLHQpKX19ZnVuY3Rpb24gUk0odCxlLG4pe3ZhciBpPXRbMF0scj10WzFdLG89ZVswXSxhPWVbMV07cmV0dXJuIHI8aT8oaT1OTShyLGkpLG89bihhLG8pKTooaT1OTShpLHIpLG89bihvLGEpKSxmdW5jdGlvbih0KXtyZXR1cm4gbyhpKHQpKX19ZnVuY3Rpb24gT00odCxlLG4pe3ZhciBpPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKS0xLHI9bmV3IEFycmF5KGkpLG89bmV3IEFycmF5KGkpLGE9LTE7Zm9yKHRbaV08dFswXSYmKHQ9dC5zbGljZSgpLnJldmVyc2UoKSxlPWUuc2xpY2UoKS5yZXZlcnNlKCkpOysrYTxpOylyW2FdPU5NKHRbYV0sdFthKzFdKSxvW2FdPW4oZVthXSxlW2ErMV0pO3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1TbCh0LGUsMSxpKS0xO3JldHVybiBvW25dKHJbbl0oZSkpfX1mdW5jdGlvbiB6TSh0LGUpe3JldHVybiBlLmRvbWFpbih0LmRvbWFpbigpKS5yYW5nZSh0LnJhbmdlKCkpLmludGVycG9sYXRlKHQuaW50ZXJwb2xhdGUoKSkuY2xhbXAodC5jbGFtcCgpKS51bmtub3duKHQudW5rbm93bigpKX1mdW5jdGlvbiBETSgpe3ZhciB0LGUsbixpLHIsbyxhPUxNLHM9TE0sbD1qZCxjPVBNO2Z1bmN0aW9uIHUoKXtyZXR1cm4gaT1NYXRoLm1pbihhLmxlbmd0aCxzLmxlbmd0aCk+Mj9PTTpSTSxyPW89bnVsbCxofWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGlzTmFOKGU9K2UpP246KHJ8fChyPWkoYS5tYXAodCkscyxsKSkpKHQoYyhlKSkpfXJldHVybiBoLmludmVydD1mdW5jdGlvbihuKXtyZXR1cm4gYyhlKChvfHwobz1pKHMsYS5tYXAodCksQmQpKSkobikpKX0saC5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9d00uY2FsbCh0LGtNKSxjPT09UE18fChjPUlNKGEpKSx1KCkpOmEuc2xpY2UoKX0saC5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1TTS5jYWxsKHQpLHUoKSk6cy5zbGljZSgpfSxoLnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHM9U00uY2FsbCh0KSxsPUdkLHUoKX0saC5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10P0lNKGEpOlBNLGgpOmMhPT1QTX0saC5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD10LHUoKSk6bH0saC51bmtub3duPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsaCk6bn0sZnVuY3Rpb24obixpKXtyZXR1cm4gdD1uLGU9aSx1KCl9fWZ1bmN0aW9uIEJNKHQsZSl7cmV0dXJuIERNKCkodCxlKX1mdW5jdGlvbiBITSh0LGUsbixpKXt2YXIgcixvPVVsKHQsZSxuKTtzd2l0Y2goKGk9c3kobnVsbD09aT8iLGYiOmkpKS50eXBlKXtjYXNlInMiOnZhciBhPU1hdGgubWF4KE1hdGguYWJzKHQpLE1hdGguYWJzKGUpKTtyZXR1cm4gbnVsbCE9aS5wcmVjaXNpb258fGlzTmFOKHI9d3kobyxhKSl8fChpLnByZWNpc2lvbj1yKSxneShpLGEpO2Nhc2UiIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlInIiOm51bGwhPWkucHJlY2lzaW9ufHxpc05hTihyPVN5KG8sTWF0aC5tYXgoTWF0aC5hYnModCksTWF0aC5hYnMoZSkpKSl8fChpLnByZWNpc2lvbj1yLSgiZSI9PT1pLnR5cGUpKTticmVhaztjYXNlImYiOmNhc2UiJSI6bnVsbCE9aS5wcmVjaXNpb258fGlzTmFOKHI9eHkobykpfHwoaS5wcmVjaXNpb249ci0yKigiJSI9PT1pLnR5cGUpKX1yZXR1cm4gbXkoaSl9ZnVuY3Rpb24gRk0odCl7dmFyIGU9dC5kb21haW47cmV0dXJuIHQudGlja3M9ZnVuY3Rpb24odCl7dmFyIG49ZSgpO3JldHVybiBGbChuWzBdLG5bbi5sZW5ndGgtMV0sbnVsbD09dD8xMDp0KX0sdC50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsbil7dmFyIGk9ZSgpO3JldHVybiBITShpWzBdLGlbaS5sZW5ndGgtMV0sbnVsbD09dD8xMDp0LG4pfSx0Lm5pY2U9ZnVuY3Rpb24obil7bnVsbD09biYmKG49MTApO3ZhciBpLHI9ZSgpLG89MCxhPXIubGVuZ3RoLTEscz1yW29dLGw9clthXTtyZXR1cm4gbDxzJiYoaT1zLHM9bCxsPWksaT1vLG89YSxhPWkpLChpPVZsKHMsbCxuKSk+MD9pPVZsKHM9TWF0aC5mbG9vcihzL2kpKmksbD1NYXRoLmNlaWwobC9pKSppLG4pOmk8MCYmKGk9Vmwocz1NYXRoLmNlaWwocyppKS9pLGw9TWF0aC5mbG9vcihsKmkpL2ksbikpLGk+MD8ocltvXT1NYXRoLmZsb29yKHMvaSkqaSxyW2FdPU1hdGguY2VpbChsL2kpKmksZShyKSk6aTwwJiYocltvXT1NYXRoLmNlaWwocyppKS9pLHJbYV09TWF0aC5mbG9vcihsKmkpL2ksZShyKSksdH0sdH1mdW5jdGlvbiBWTSgpe3ZhciB0PUJNKFBNLFBNKTtyZXR1cm4gdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHpNKHQsVk0oKSl9LHZNLmFwcGx5KHQsYXJndW1lbnRzKSxGTSh0KX1mdW5jdGlvbiBVTSh0LGUpe3ZhciBuLGk9MCxyPSh0PXQuc2xpY2UoKSkubGVuZ3RoLTEsbz10W2ldLGE9dFtyXTtyZXR1cm4gYTxvJiYobj1pLGk9cixyPW4sbj1vLG89YSxhPW4pLHRbaV09ZS5mbG9vcihvKSx0W3JdPWUuY2VpbChhKSx0fWZ1bmN0aW9uIGpNKHQpe3JldHVybiBNYXRoLmxvZyh0KX1mdW5jdGlvbiBHTSh0KXtyZXR1cm4gTWF0aC5leHAodCl9ZnVuY3Rpb24gV00odCl7cmV0dXJuLU1hdGgubG9nKC10KX1mdW5jdGlvbiBxTSh0KXtyZXR1cm4tTWF0aC5leHAoLXQpfWZ1bmN0aW9uIFlNKHQpe3JldHVybiBpc0Zpbml0ZSh0KT8rKCIxZSIrdCk6dDwwPzA6dH1mdW5jdGlvbiBYTSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuLXQoLWUpfX1mdW5jdGlvbiAkTSh0KXt2YXIgZSxuLGk9dChqTSxHTSkscj1pLmRvbWFpbixvPTEwO2Z1bmN0aW9uIGEoKXtyZXR1cm4gZT0oZnVuY3Rpb24gYSh0KXtyZXR1cm4gdD09PU1hdGguRT9NYXRoLmxvZzoxMD09PXQmJk1hdGgubG9nMTB8fDI9PT10JiZNYXRoLmxvZzJ8fCh0PU1hdGgubG9nKHQpLGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLmxvZyhlKS90fSl9KShvKSxuPShmdW5jdGlvbiBzKHQpe3JldHVybiAxMD09PXQ/WU06dD09PU1hdGguRT9NYXRoLmV4cDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3codCxlKX19KShvKSxyKClbMF08MD8oZT1YTShlKSxuPVhNKG4pLHQoV00scU0pKTp0KGpNLEdNKSxpfXJldHVybiBpLmJhc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3QsYSgpKTpvfSxpLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocih0KSxhKCkpOnIoKX0saS50aWNrcz1mdW5jdGlvbih0KXt2YXIgaSxhPXIoKSxzPWFbMF0sbD1hW2EubGVuZ3RoLTFdOyhpPWw8cykmJihkPXMscz1sLGw9ZCk7dmFyIGMsdSxoLGQ9ZShzKSxwPWUobCksZj1udWxsPT10PzEwOit0LG09W107aWYoIShvJTEpJiZwLWQ8Zil7aWYoZD1NYXRoLnJvdW5kKGQpLTEscD1NYXRoLnJvdW5kKHApKzEscz4wKXtmb3IoO2Q8cDsrK2QpZm9yKHU9MSxjPW4oZCk7dTxvOysrdSlpZighKChoPWMqdSk8cykpe2lmKGg+bClicmVhazttLnB1c2goaCl9fWVsc2UgZm9yKDtkPHA7KytkKWZvcih1PW8tMSxjPW4oZCk7dT49MTstLXUpaWYoISgoaD1jKnUpPHMpKXtpZihoPmwpYnJlYWs7bS5wdXNoKGgpfX1lbHNlIG09RmwoZCxwLE1hdGgubWluKHAtZCxmKSkubWFwKG4pO3JldHVybiBpP20ucmV2ZXJzZSgpOm19LGkudGlja0Zvcm1hdD1mdW5jdGlvbih0LHIpe2lmKG51bGw9PXImJihyPTEwPT09bz8iLjBlIjoiLCIpLCJmdW5jdGlvbiIhPXR5cGVvZiByJiYocj1teShyKSksdD09PTEvMClyZXR1cm4gcjtudWxsPT10JiYodD0xMCk7dmFyIGE9TWF0aC5tYXgoMSxvKnQvaS50aWNrcygpLmxlbmd0aCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBpPXQvbihNYXRoLnJvdW5kKGUodCkpKTtyZXR1cm4gaSpvPG8tLjUmJihpKj1vKSxpPD1hP3IodCk6IiJ9fSxpLm5pY2U9ZnVuY3Rpb24oKXtyZXR1cm4gcihVTShyKCkse2Zsb29yOmZ1bmN0aW9uKHQpe3JldHVybiBuKE1hdGguZmxvb3IoZSh0KSkpfSxjZWlsOmZ1bmN0aW9uKHQpe3JldHVybiBuKE1hdGguY2VpbChlKHQpKSl9fSkpfSxpfWZ1bmN0aW9uIEtNKCl7dmFyIHQ9JE0oRE0oKSkuZG9tYWluKFsxLDEwXSk7cmV0dXJuIHQuY29weT1mdW5jdGlvbigpe3JldHVybiB6TSh0LEtNKCkpLmJhc2UodC5iYXNlKCkpfSx2TS5hcHBseSh0LGFyZ3VtZW50cyksdH1mdW5jdGlvbiBaTSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguc2lnbihlKSpNYXRoLmxvZzFwKE1hdGguYWJzKGUvdCkpfX1mdW5jdGlvbiBKTSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguc2lnbihlKSpNYXRoLmV4cG0xKE1hdGguYWJzKGUpKSp0fX1mdW5jdGlvbiBRTSh0KXt2YXIgZT0xLG49dChaTShlKSxKTShlKSk7cmV0dXJuIG4uY29uc3RhbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dChaTShlPStuKSxKTShlKSk6ZX0sRk0obil9ZnVuY3Rpb24gdEUodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlPDA/LU1hdGgucG93KC1lLHQpOk1hdGgucG93KGUsdCl9fWZ1bmN0aW9uIGVFKHQpe3JldHVybiB0PDA/LU1hdGguc3FydCgtdCk6TWF0aC5zcXJ0KHQpfWZ1bmN0aW9uIG5FKHQpe3JldHVybiB0PDA/LXQqdDp0KnR9ZnVuY3Rpb24gaUUodCl7dmFyIGU9dChQTSxQTSksbj0xO2Z1bmN0aW9uIGkoKXtyZXR1cm4gMT09PW4/dChQTSxQTSk6LjU9PT1uP3QoZUUsbkUpOnQodEUobiksdEUoMS9uKSl9cmV0dXJuIGUuZXhwb25lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3QsaSgpKTpufSxGTShlKX1mdW5jdGlvbiByRSgpe3ZhciB0PWlFKERNKCkpO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gek0odCxyRSgpKS5leHBvbmVudCh0LmV4cG9uZW50KCkpfSx2TS5hcHBseSh0LGFyZ3VtZW50cyksdH1mdW5jdGlvbiBvRSgpe3ZhciB0LGU9W10sbj1bXSxpPVtdO2Z1bmN0aW9uIHIoKXt2YXIgdD0wLHI9TWF0aC5tYXgoMSxuLmxlbmd0aCk7Zm9yKGk9bmV3IEFycmF5KHItMSk7Kyt0PHI7KWlbdC0xXT1HbChlLHQvcik7cmV0dXJuIG99ZnVuY3Rpb24gbyhlKXtyZXR1cm4gaXNOYU4oZT0rZSk/dDpuW1NsKGksZSldfXJldHVybiBvLmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgcj1uLmluZGV4T2YodCk7cmV0dXJuIHI8MD9bTmFOLE5hTl06W3I+MD9pW3ItMV06ZVswXSxyPGkubGVuZ3RoP2lbcl06ZVtlLmxlbmd0aC0xXV19LG8uZG9tYWluPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlLnNsaWNlKCk7ZT1bXTtmb3IodmFyIG4saT0wLG89dC5sZW5ndGg7aTxvOysraSludWxsPT0obj10W2ldKXx8aXNOYU4obj0rbil8fGUucHVzaChuKTtyZXR1cm4gZS5zb3J0KGJsKSxyKCl9LG8ucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49U00uY2FsbCh0KSxyKCkpOm4uc2xpY2UoKX0sby51bmtub3duPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbyk6dH0sby5xdWFudGlsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gaS5zbGljZSgpfSxvLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gb0UoKS5kb21haW4oZSkucmFuZ2UobikudW5rbm93bih0KX0sdk0uYXBwbHkobyxhcmd1bWVudHMpfWZ1bmN0aW9uIGFFKCl7dmFyIHQsZT0wLG49MSxpPTEscj1bLjVdLG89WzAsMV07ZnVuY3Rpb24gYShlKXtyZXR1cm4gZTw9ZT9vW1NsKHIsZSwwLGkpXTp0fWZ1bmN0aW9uIHMoKXt2YXIgdD0tMTtmb3Iocj1uZXcgQXJyYXkoaSk7Kyt0PGk7KXJbdF09KCh0KzEpKm4tKHQtaSkqZSkvKGkrMSk7cmV0dXJuIGF9cmV0dXJuIGEuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLG49K3RbMV0scygpKTpbZSxuXX0sYS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0obz1TTS5jYWxsKHQpKS5sZW5ndGgtMSxzKCkpOm8uc2xpY2UoKX0sYS5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIGE9by5pbmRleE9mKHQpO3JldHVybiBhPDA/W05hTixOYU5dOmE8MT9bZSxyWzBdXTphPj1pP1tyW2ktMV0sbl06W3JbYS0xXSxyW2FdXX0sYS51bmtub3duPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsYSk6YX0sYS50aHJlc2hvbGRzPWZ1bmN0aW9uKCl7cmV0dXJuIHIuc2xpY2UoKX0sYS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGFFKCkuZG9tYWluKFtlLG5dKS5yYW5nZShvKS51bmtub3duKHQpfSx2TS5hcHBseShGTShhKSxhcmd1bWVudHMpfXZhciBzRT1uZXcgRGF0ZSxsRT1uZXcgRGF0ZTtmdW5jdGlvbiBjRSh0LGUsbixpKXtmdW5jdGlvbiByKGUpe3JldHVybiB0KGU9MD09PWFyZ3VtZW50cy5sZW5ndGg/bmV3IERhdGU6bmV3IERhdGUoK2UpKSxlfXJldHVybiByLmZsb29yPWZ1bmN0aW9uKGUpe3JldHVybiB0KGU9bmV3IERhdGUoK2UpKSxlfSxyLmNlaWw9ZnVuY3Rpb24obil7cmV0dXJuIHQobj1uZXcgRGF0ZShuLTEpKSxlKG4sMSksdChuKSxufSxyLnJvdW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXIodCksbj1yLmNlaWwodCk7cmV0dXJuIHQtZTxuLXQ/ZTpufSxyLm9mZnNldD1mdW5jdGlvbih0LG4pe3JldHVybiBlKHQ9bmV3IERhdGUoK3QpLG51bGw9PW4/MTpNYXRoLmZsb29yKG4pKSx0fSxyLnJhbmdlPWZ1bmN0aW9uKG4saSxvKXt2YXIgYSxzPVtdO2lmKG49ci5jZWlsKG4pLG89bnVsbD09bz8xOk1hdGguZmxvb3IobyksIShuPGkmJm8+MCkpcmV0dXJuIHM7ZG97cy5wdXNoKGE9bmV3IERhdGUoK24pKSxlKG4sbyksdChuKX13aGlsZShhPG4mJm48aSk7cmV0dXJuIHN9LHIuZmlsdGVyPWZ1bmN0aW9uKG4pe3JldHVybiBjRSgoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsaSl7aWYodD49dClpZihpPDApZm9yKDsrK2k8PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLWk+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoci5jb3VudD1mdW5jdGlvbihlLGkpe3JldHVybiBzRS5zZXRUaW1lKCtlKSxsRS5zZXRUaW1lKCtpKSx0KHNFKSx0KGxFKSxNYXRoLmZsb29yKG4oc0UsbEUpKX0sci5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP3IuZmlsdGVyKGk/ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY291bnQoMCxlKSV0PT0wfSk6cjpudWxsfSkscn12YXIgdUU9Y0UoKGZ1bmN0aW9uKCl7fSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUtdH0pKTt1RS5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP2NFKChmdW5jdGlvbihlKXtlLnNldFRpbWUoTWF0aC5mbG9vcihlL3QpKnQpfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRUaW1lKCtlK24qdCl9KSwoZnVuY3Rpb24oZSxuKXtyZXR1cm4obi1lKS90fSkpOnVFOm51bGx9O3ZhciBoRT11RSxkRT11RS5yYW5nZSxwRT0xZTMsZkU9NmU0LG1FPTM2ZTUsZ0U9ODY0ZTUsX0U9NjA0OGU1LHlFPWNFKChmdW5jdGlvbih0KXt0LnNldFRpbWUodC10LmdldE1pbGxpc2Vjb25kcygpKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKnBFKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL3BFfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ1NlY29uZHMoKX0pKSx2RT15RSxiRT15RS5yYW5nZSx4RT1jRSgoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKS10LmdldFNlY29uZHMoKSpwRSl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSpmRSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9mRX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNaW51dGVzKCl9KSksd0U9eEUsU0U9eEUucmFuZ2UsTUU9Y0UoKGZ1bmN0aW9uKHQpe3Quc2V0VGltZSh0LXQuZ2V0TWlsbGlzZWNvbmRzKCktdC5nZXRTZWNvbmRzKCkqcEUtdC5nZXRNaW51dGVzKCkqZkUpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqbUUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvbUV9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pKSxFRT1NRSxURT1NRS5yYW5nZSxDRT1jRSgoZnVuY3Rpb24odCl7dC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKmZFKS9nRX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCktMX0pKSxBRT1DRSxrRT1DRS5yYW5nZTtmdW5jdGlvbiBMRSh0KXtyZXR1cm4gY0UoKGZ1bmN0aW9uKGUpe2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs3LXQpJTcpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKmZFKS9fRX0pKX12YXIgUEU9TEUoMCksTkU9TEUoMSksSUU9TEUoMiksUkU9TEUoMyksT0U9TEUoNCksekU9TEUoNSksREU9TEUoNiksQkU9UEUucmFuZ2UsSEU9TkUucmFuZ2UsRkU9SUUucmFuZ2UsVkU9UkUucmFuZ2UsVUU9T0UucmFuZ2UsakU9ekUucmFuZ2UsR0U9REUucmFuZ2UsV0U9Y0UoKGZ1bmN0aW9uKHQpe3Quc2V0RGF0ZSgxKSx0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRNb250aCh0LmdldE1vbnRoKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRNb250aCgpLXQuZ2V0TW9udGgoKSsxMiooZS5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TW9udGgoKX0pKSxxRT1XRSxZRT1XRS5yYW5nZSxYRT1jRSgoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KSk7WEUuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9jRSgoZnVuY3Rpb24oZSl7ZS5zZXRGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0RnVsbFllYXIoKS90KSp0KSxlLnNldE1vbnRoKDAsMSksZS5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0RnVsbFllYXIoZS5nZXRGdWxsWWVhcigpK24qdCl9KSk6bnVsbH07dmFyICRFPVhFLEtFPVhFLnJhbmdlLFpFPWNFKChmdW5jdGlvbih0KXt0LnNldFVUQ1NlY29uZHMoMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKmZFKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL2ZFfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbnV0ZXMoKX0pKSxKRT1aRSxRRT1aRS5yYW5nZSx0VD1jRSgoZnVuY3Rpb24odCl7dC5zZXRVVENNaW51dGVzKDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKm1FKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL21FfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0hvdXJzKCl9KSksZVQ9dFQsblQ9dFQucmFuZ2UsaVQ9Y0UoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9nRX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENEYXRlKCktMX0pKSxyVD1pVCxvVD1pVC5yYW5nZTtmdW5jdGlvbiBhVCh0KXtyZXR1cm4gY0UoKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRGF0ZShlLmdldFVUQ0RhdGUoKS0oZS5nZXRVVENEYXkoKSs3LXQpJTcpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL19FfSkpfXZhciBzVD1hVCgwKSxsVD1hVCgxKSxjVD1hVCgyKSx1VD1hVCgzKSxoVD1hVCg0KSxkVD1hVCg1KSxwVD1hVCg2KSxmVD1zVC5yYW5nZSxtVD1sVC5yYW5nZSxnVD1jVC5yYW5nZSxfVD11VC5yYW5nZSx5VD1oVC5yYW5nZSx2VD1kVC5yYW5nZSxiVD1wVC5yYW5nZSx4VD1jRSgoZnVuY3Rpb24odCl7dC5zZXRVVENEYXRlKDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ01vbnRoKHQuZ2V0VVRDTW9udGgoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldFVUQ01vbnRoKCktdC5nZXRVVENNb250aCgpKzEyKihlLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNb250aCgpfSkpLHdUPXhULFNUPXhULnJhbmdlLE1UPWNFKChmdW5jdGlvbih0KXt0LnNldFVUQ01vbnRoKDAsMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRnVsbFllYXIodC5nZXRVVENGdWxsWWVhcigpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDRnVsbFllYXIoKX0pKTtNVC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP2NFKChmdW5jdGlvbihlKXtlLnNldFVUQ0Z1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRVVENGdWxsWWVhcigpL3QpKnQpLGUuc2V0VVRDTW9udGgoMCwxKSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRVVENGdWxsWWVhcihlLmdldFVUQ0Z1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgRVQ9TVQsVFQ9TVQucmFuZ2U7ZnVuY3Rpb24gQ1QodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZSgtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCk7cmV0dXJuIGUuc2V0RnVsbFllYXIodC55KSxlfXJldHVybiBuZXcgRGF0ZSh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpfWZ1bmN0aW9uIEFUKHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIGU9bmV3IERhdGUoRGF0ZS5VVEMoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpKTtyZXR1cm4gZS5zZXRVVENGdWxsWWVhcih0LnkpLGV9cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHQueSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpfWZ1bmN0aW9uIGtUKHQsZSxuKXtyZXR1cm57eTp0LG06ZSxkOm4sSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiBMVCh0KXt2YXIgZT10LmRhdGVUaW1lLG49dC5kYXRlLGk9dC50aW1lLHI9dC5wZXJpb2RzLG89dC5kYXlzLGE9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsYz1VVChyKSx1PWpUKHIpLGg9VVQobyksZD1qVChvKSxwPVVUKGEpLGY9alQoYSksbT1VVChzKSxnPWpUKHMpLF89VVQobCkseT1qVChsKSx2PXthOmZ1bmN0aW9uIGIodCl7cmV0dXJuIGFbdC5nZXREYXkoKV19LEE6ZnVuY3Rpb24geCh0KXtyZXR1cm4gb1t0LmdldERheSgpXX0sYjpmdW5jdGlvbiB3KHQpe3JldHVybiBsW3QuZ2V0TW9udGgoKV19LEI6ZnVuY3Rpb24gUyh0KXtyZXR1cm4gc1t0LmdldE1vbnRoKCldfSxjOm51bGwsZDp1QyxlOnVDLGY6bUMsZzpUQyxHOkFDLEg6aEMsSTpkQyxqOnBDLEw6ZkMsbTpnQyxNOl9DLHA6ZnVuY3Rpb24gTSh0KXtyZXR1cm4gclsrKHQuZ2V0SG91cnMoKT49MTIpXX0scTpmdW5jdGlvbiBFKHQpe3JldHVybiAxK35+KHQuZ2V0TW9udGgoKS8zKX0sUTpaQyxzOkpDLFM6eUMsdTp2QyxVOmJDLFY6d0MsdzpTQyxXOk1DLHg6bnVsbCxYOm51bGwseTpFQyxZOkNDLFo6a0MsIiUiOktDfSxUPXthOmZ1bmN0aW9uIEModCl7cmV0dXJuIGFbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24gQSh0KXtyZXR1cm4gb1t0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbiBrKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24gTCh0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDpMQyxlOkxDLGY6T0MsZzpxQyxHOlhDLEg6UEMsSTpOQyxqOklDLEw6UkMsbTp6QyxNOkRDLHA6ZnVuY3Rpb24gUCh0KXtyZXR1cm4gclsrKHQuZ2V0VVRDSG91cnMoKT49MTIpXX0scTpmdW5jdGlvbiBOKHQpe3JldHVybiAxK35+KHQuZ2V0VVRDTW9udGgoKS8zKX0sUTpaQyxzOkpDLFM6QkMsdTpIQyxVOkZDLFY6VUMsdzpqQyxXOkdDLHg6bnVsbCxYOm51bGwseTpXQyxZOllDLFo6JEMsIiUiOktDfSxJPXthOmZ1bmN0aW9uIFIodCxlLG4pe3ZhciBpPXAuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC53PWZbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sQTpmdW5jdGlvbiBPKHQsZSxuKXt2YXIgaT1oLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQudz1kW2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LGI6ZnVuY3Rpb24geih0LGUsbil7dmFyIGk9Xy5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lm09eVtpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxCOmZ1bmN0aW9uIEQodCxlLG4pe3ZhciBpPW0uZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5tPWdbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sYzpmdW5jdGlvbiBCKHQsbixpKXtyZXR1cm4gRyh0LGUsbixpKX0sZDp0QyxlOnRDLGY6YUMsZzpLVCxHOiRULEg6bkMsSTpuQyxqOmVDLEw6b0MsbTpRVCxNOmlDLHA6ZnVuY3Rpb24gSCh0LGUsbil7dmFyIGk9Yy5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0LnA9dVtpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxxOkpULFE6bEMsczpjQyxTOnJDLHU6V1QsVTpxVCxWOllULHc6R1QsVzpYVCx4OmZ1bmN0aW9uIEYodCxlLGkpe3JldHVybiBHKHQsbixlLGkpfSxYOmZ1bmN0aW9uIFYodCxlLG4pe3JldHVybiBHKHQsaSxlLG4pfSx5OktULFk6JFQsWjpaVCwiJSI6c0N9O2Z1bmN0aW9uIFUodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGkscixvLGE9W10scz0tMSxsPTAsYz10Lmxlbmd0aDtmb3IobiBpbnN0YW5jZW9mIERhdGV8fChuPW5ldyBEYXRlKCtuKSk7KytzPGM7KTM3PT09dC5jaGFyQ29kZUF0KHMpJiYoYS5wdXNoKHQuc2xpY2UobCxzKSksbnVsbCE9KHI9elRbaT10LmNoYXJBdCgrK3MpXSk/aT10LmNoYXJBdCgrK3MpOnI9ImUiPT09aT8iICI6IjAiLChvPWVbaV0pJiYoaT1vKG4scikpLGEucHVzaChpKSxsPXMrMSk7cmV0dXJuIGEucHVzaCh0LnNsaWNlKGwscykpLGEuam9pbigiIil9fWZ1bmN0aW9uIGoodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGkscixvPWtUKDE5MDAsdm9pZCAwLDEpO2lmKEcobyx0LG4rPSIiLDApIT1uLmxlbmd0aClyZXR1cm4gbnVsbDtpZigiUSJpbiBvKXJldHVybiBuZXcgRGF0ZShvLlEpO2lmKCJzImluIG8pcmV0dXJuIG5ldyBEYXRlKDFlMypvLnMrKCJMImluIG8/by5MOjApKTtpZihlJiYhKCJaImluIG8pJiYoby5aPTApLCJwImluIG8mJihvLkg9by5IJTEyKzEyKm8ucCksdm9pZCAwPT09by5tJiYoby5tPSJxImluIG8/by5xOjApLCJWImluIG8pe2lmKG8uVjwxfHxvLlY+NTMpcmV0dXJuIG51bGw7InciaW4gb3x8KG8udz0xKSwiWiJpbiBvPyhyPShpPUFUKGtUKG8ueSwwLDEpKSkuZ2V0VVRDRGF5KCksaT1yPjR8fDA9PT1yP2xULmNlaWwoaSk6bFQoaSksaT1yVC5vZmZzZXQoaSw3KihvLlYtMSkpLG8ueT1pLmdldFVUQ0Z1bGxZZWFyKCksby5tPWkuZ2V0VVRDTW9udGgoKSxvLmQ9aS5nZXRVVENEYXRlKCkrKG8udys2KSU3KToocj0oaT1DVChrVChvLnksMCwxKSkpLmdldERheSgpLGk9cj40fHwwPT09cj9ORS5jZWlsKGkpOk5FKGkpLGk9QUUub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRGdWxsWWVhcigpLG8ubT1pLmdldE1vbnRoKCksby5kPWkuZ2V0RGF0ZSgpKyhvLncrNiklNyl9ZWxzZSgiVyJpbiBvfHwiVSJpbiBvKSYmKCJ3ImluIG98fChvLnc9InUiaW4gbz9vLnUlNzoiVyJpbiBvPzE6MCkscj0iWiJpbiBvP0FUKGtUKG8ueSwwLDEpKS5nZXRVVENEYXkoKTpDVChrVChvLnksMCwxKSkuZ2V0RGF5KCksby5tPTAsby5kPSJXImluIG8/KG8udys2KSU3Kzcqby5XLShyKzUpJTc6by53Kzcqby5VLShyKzYpJTcpO3JldHVybiJaImluIG8/KG8uSCs9by5aLzEwMHwwLG8uTSs9by5aJTEwMCxBVChvKSk6Q1Qobyl9fWZ1bmN0aW9uIEcodCxlLG4saSl7Zm9yKHZhciByLG8sYT0wLHM9ZS5sZW5ndGgsbD1uLmxlbmd0aDthPHM7KXtpZihpPj1sKXJldHVybi0xO2lmKDM3PT09KHI9ZS5jaGFyQ29kZUF0KGErKykpKXtpZihyPWUuY2hhckF0KGErKyksIShvPUlbciBpbiB6VD9lLmNoYXJBdChhKyspOnJdKXx8KGk9byh0LG4saSkpPDApcmV0dXJuLTF9ZWxzZSBpZihyIT1uLmNoYXJDb2RlQXQoaSsrKSlyZXR1cm4tMX1yZXR1cm4gaX1yZXR1cm4gdi54PVUobix2KSx2Llg9VShpLHYpLHYuYz1VKGUsdiksVC54PVUobixUKSxULlg9VShpLFQpLFQuYz1VKGUsVCkse2Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1VKHQrPSIiLHYpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPWoodCs9IiIsITEpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y0Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1VKHQrPSIiLFQpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y1BhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPWoodCs9IiIsITApO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9fX12YXIgUFQsTlQsSVQsUlQsT1QselQ9eyItIjoiIixfOiIgIiwwOiIwIn0sRFQ9L15ccypcZCsvLEJUPS9eJS8sSFQ9L1tcXF4kKis/fFtcXSgpLnt9XS9nO2Z1bmN0aW9uIEZUKHQsZSxuKXt2YXIgaT10PDA/Ii0iOiIiLHI9KGk/LXQ6dCkrIiIsbz1yLmxlbmd0aDtyZXR1cm4gaSsobzxuP25ldyBBcnJheShuLW8rMSkuam9pbihlKStyOnIpfWZ1bmN0aW9uIFZUKHQpe3JldHVybiB0LnJlcGxhY2UoSFQsIlxcJCYiKX1mdW5jdGlvbiBVVCh0KXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrdC5tYXAoVlQpLmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiBqVCh0KXtmb3IodmFyIGU9e30sbj0tMSxpPXQubGVuZ3RoOysrbjxpOyllW3Rbbl0udG9Mb3dlckNhc2UoKV09bjtyZXR1cm4gZX1mdW5jdGlvbiBHVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/KHQudz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBXVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/KHQudT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBxVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBZVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVj0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBYVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiAkVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbis0KSk7cmV0dXJuIGk/KHQueT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBLVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQueT0raVswXSsoK2lbMF0+Njg/MTkwMDoyZTMpLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFpUKHQsZSxuKXt2YXIgaT0vXihaKXwoWystXVxkXGQpKD86Oj8oXGRcZCkpPy8uZXhlYyhlLnNsaWNlKG4sbis2KSk7cmV0dXJuIGk/KHQuWj1pWzFdPzA6LShpWzJdKyhpWzNdfHwiMDAiKSksbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gSlQodCxlLG4pe3ZhciBpPURULmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpPyh0LnE9MyppWzBdLTMsbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gUVQodCxlLG4pe3ZhciBpPURULmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Lm09aVswXS0xLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHRDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5kPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGVDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzMpKTtyZXR1cm4gaT8odC5tPTAsdC5kPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG5DKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5IPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGlDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5NPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHJDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5TPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG9DKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzMpKTtyZXR1cm4gaT8odC5MPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGFDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gaT8odC5MPU1hdGguZmxvb3IoaVswXS8xZTMpLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHNDKHQsZSxuKXt2YXIgaT1CVC5leGVjKGUuc2xpY2UobixuKzEpKTtyZXR1cm4gaT9uK2lbMF0ubGVuZ3RoOi0xfWZ1bmN0aW9uIGxDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0LlE9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gY0ModCxlLG4pe3ZhciBpPURULmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQucz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB1Qyh0LGUpe3JldHVybiBGVCh0LmdldERhdGUoKSxlLDIpfWZ1bmN0aW9uIGhDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0SG91cnMoKSxlLDIpfWZ1bmN0aW9uIGRDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0SG91cnMoKSUxMnx8MTIsZSwyKX1mdW5jdGlvbiBwQyh0LGUpe3JldHVybiBGVCgxK0FFLmNvdW50KCRFKHQpLHQpLGUsMyl9ZnVuY3Rpb24gZkModCxlKXtyZXR1cm4gRlQodC5nZXRNaWxsaXNlY29uZHMoKSxlLDMpfWZ1bmN0aW9uIG1DKHQsZSl7cmV0dXJuIGZDKHQsZSkrIjAwMCJ9ZnVuY3Rpb24gZ0ModCxlKXtyZXR1cm4gRlQodC5nZXRNb250aCgpKzEsZSwyKX1mdW5jdGlvbiBfQyh0LGUpe3JldHVybiBGVCh0LmdldE1pbnV0ZXMoKSxlLDIpfWZ1bmN0aW9uIHlDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0U2Vjb25kcygpLGUsMil9ZnVuY3Rpb24gdkModCl7dmFyIGU9dC5nZXREYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIGJDKHQsZSl7cmV0dXJuIEZUKFBFLmNvdW50KCRFKHQpLTEsdCksZSwyKX1mdW5jdGlvbiB4Qyh0KXt2YXIgZT10LmdldERheSgpO3JldHVybiBlPj00fHwwPT09ZT9PRSh0KTpPRS5jZWlsKHQpfWZ1bmN0aW9uIHdDKHQsZSl7cmV0dXJuIHQ9eEModCksRlQoT0UuY291bnQoJEUodCksdCkrKDQ9PT0kRSh0KS5nZXREYXkoKSksZSwyKX1mdW5jdGlvbiBTQyh0KXtyZXR1cm4gdC5nZXREYXkoKX1mdW5jdGlvbiBNQyh0LGUpe3JldHVybiBGVChORS5jb3VudCgkRSh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gRUModCxlKXtyZXR1cm4gRlQodC5nZXRGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIFRDKHQsZSl7cmV0dXJuIEZUKCh0PXhDKHQpKS5nZXRGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIENDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0RnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiBBQyh0LGUpe3ZhciBuPXQuZ2V0RGF5KCk7cmV0dXJuIEZUKCh0PW4+PTR8fDA9PT1uP09FKHQpOk9FLmNlaWwodCkpLmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24ga0ModCl7dmFyIGU9dC5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihlPjA/Ii0iOihlKj0tMSwiKyIpKStGVChlLzYwfDAsIjAiLDIpK0ZUKGUlNjAsIjAiLDIpfWZ1bmN0aW9uIExDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0VVRDRGF0ZSgpLGUsMil9ZnVuY3Rpb24gUEModCxlKXtyZXR1cm4gRlQodC5nZXRVVENIb3VycygpLGUsMil9ZnVuY3Rpb24gTkModCxlKXtyZXR1cm4gRlQodC5nZXRVVENIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIElDKHQsZSl7cmV0dXJuIEZUKDErclQuY291bnQoRVQodCksdCksZSwzKX1mdW5jdGlvbiBSQyh0LGUpe3JldHVybiBGVCh0LmdldFVUQ01pbGxpc2Vjb25kcygpLGUsMyl9ZnVuY3Rpb24gT0ModCxlKXtyZXR1cm4gUkModCxlKSsiMDAwIn1mdW5jdGlvbiB6Qyh0LGUpe3JldHVybiBGVCh0LmdldFVUQ01vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIERDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0VVRDTWludXRlcygpLGUsMil9ZnVuY3Rpb24gQkModCxlKXtyZXR1cm4gRlQodC5nZXRVVENTZWNvbmRzKCksZSwyKX1mdW5jdGlvbiBIQyh0KXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiAwPT09ZT83OmV9ZnVuY3Rpb24gRkModCxlKXtyZXR1cm4gRlQoc1QuY291bnQoRVQodCktMSx0KSxlLDIpfWZ1bmN0aW9uIFZDKHQpe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIGU+PTR8fDA9PT1lP2hUKHQpOmhULmNlaWwodCl9ZnVuY3Rpb24gVUModCxlKXtyZXR1cm4gdD1WQyh0KSxGVChoVC5jb3VudChFVCh0KSx0KSsoND09PUVUKHQpLmdldFVUQ0RheSgpKSxlLDIpfWZ1bmN0aW9uIGpDKHQpe3JldHVybiB0LmdldFVUQ0RheSgpfWZ1bmN0aW9uIEdDKHQsZSl7cmV0dXJuIEZUKGxULmNvdW50KEVUKHQpLTEsdCksZSwyKX1mdW5jdGlvbiBXQyh0LGUpe3JldHVybiBGVCh0LmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gcUModCxlKXtyZXR1cm4gRlQoKHQ9VkModCkpLmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gWUModCxlKXtyZXR1cm4gRlQodC5nZXRVVENGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIFhDKHQsZSl7dmFyIG49dC5nZXRVVENEYXkoKTtyZXR1cm4gRlQoKHQ9bj49NHx8MD09PW4/aFQodCk6aFQuY2VpbCh0KSkuZ2V0VVRDRnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiAkQygpe3JldHVybiIrMDAwMCJ9ZnVuY3Rpb24gS0MoKXtyZXR1cm4iJSJ9ZnVuY3Rpb24gWkModCl7cmV0dXJuK3R9ZnVuY3Rpb24gSkModCl7cmV0dXJuIE1hdGguZmxvb3IoK3QvMWUzKX1mdW5jdGlvbiBRQyh0KXtyZXR1cm4gUFQ9TFQodCksTlQ9UFQuZm9ybWF0LElUPVBULnBhcnNlLFJUPVBULnV0Y0Zvcm1hdCxPVD1QVC51dGNQYXJzZSxQVH1RQyh7ZGF0ZVRpbWU6IiV4LCAlWCIsZGF0ZToiJS1tLyUtZC8lWSIsdGltZToiJS1JOiVNOiVTICVwIixwZXJpb2RzOlsiQU0iLCJQTSJdLGRheXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLHNob3J0RGF5czpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLG1vbnRoczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sc2hvcnRNb250aHM6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXX0pO3ZhciB0QT0iJVktJW0tJWRUJUg6JU06JVMuJUxaIixlQT1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZz9mdW5jdGlvbiBuQSh0KXtyZXR1cm4gdC50b0lTT1N0cmluZygpfTpSVCh0QSksaUE9K25ldyBEYXRlKCIyMDAwLTAxLTAxVDAwOjAwOjAwLjAwMFoiKT9mdW5jdGlvbiByQSh0KXt2YXIgZT1uZXcgRGF0ZSh0KTtyZXR1cm4gaXNOYU4oZSk/bnVsbDplfTpPVCh0QSksb0E9MzE1MzZlNjtmdW5jdGlvbiBhQSh0KXtyZXR1cm4gbmV3IERhdGUodCl9ZnVuY3Rpb24gc0EodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlPyt0OituZXcgRGF0ZSgrdCl9ZnVuY3Rpb24gbEEodCxlLG4saSxyLG8sYSxzLGwpe3ZhciBjPUJNKFBNLFBNKSx1PWMuaW52ZXJ0LGg9Yy5kb21haW4sZD1sKCIuJUwiKSxwPWwoIjolUyIpLGY9bCgiJUk6JU0iKSxtPWwoIiVJICVwIiksZz1sKCIlYSAlZCIpLF89bCgiJWIgJWQiKSx5PWwoIiVCIiksdj1sKCIlWSIpLGI9W1thLDEsMWUzXSxbYSw1LDVlM10sW2EsMTUsMTVlM10sW2EsMzAsM2U0XSxbbywxLDZlNF0sW28sNSwzZTVdLFtvLDE1LDllNV0sW28sMzAsMThlNV0sW3IsMSwzNmU1XSxbciwzLDEwOGU1XSxbciw2LDIxNmU1XSxbciwxMiw0MzJlNV0sW2ksMSw4NjRlNV0sW2ksMiwxNzI4ZTVdLFtuLDEsNjA0OGU1XSxbZSwxLDI1OTJlNl0sW2UsMyw3Nzc2ZTZdLFt0LDEsb0FdXTtmdW5jdGlvbiB4KHMpe3JldHVybihhKHMpPHM/ZDpvKHMpPHM/cDpyKHMpPHM/ZjppKHMpPHM/bTplKHMpPHM/bihzKTxzP2c6Xzp0KHMpPHM/eTp2KShzKX1mdW5jdGlvbiB3KGUsbixpLHIpe2lmKG51bGw9PWUmJihlPTEwKSwibnVtYmVyIj09dHlwZW9mIGUpe3ZhciBvPU1hdGguYWJzKGktbikvZSxhPXhsKChmdW5jdGlvbih0KXtyZXR1cm4gdFsyXX0pKS5yaWdodChiLG8pO2E9PT1iLmxlbmd0aD8ocj1VbChuL29BLGkvb0EsZSksZT10KTphPyhyPShhPWJbby9iW2EtMV1bMl08YlthXVsyXS9vP2EtMTphXSlbMV0sZT1hWzBdKToocj1NYXRoLm1heChVbChuLGksZSksMSksZT1zKX1yZXR1cm4gbnVsbD09cj9lOmUuZXZlcnkocil9cmV0dXJuIGMuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRGF0ZSh1KHQpKX0sYy5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/aCh3TS5jYWxsKHQsc0EpKTpoKCkubWFwKGFBKX0sYy50aWNrcz1mdW5jdGlvbih0LGUpe3ZhciBuLGk9aCgpLHI9aVswXSxvPWlbaS5sZW5ndGgtMV0sYT1vPHI7cmV0dXJuIGEmJihuPXIscj1vLG89biksbj0obj13KHQscixvLGUpKT9uLnJhbmdlKHIsbysxKTpbXSxhP24ucmV2ZXJzZSgpOm59LGMudGlja0Zvcm1hdD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1lP3g6bChlKX0sYy5uaWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49aCgpO3JldHVybih0PXcodCxuWzBdLG5bbi5sZW5ndGgtMV0sZSkpP2goVU0obix0KSk6Y30sYy5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHpNKGMsbEEodCxlLG4saSxyLG8sYSxzLGwpKX0sY31mdW5jdGlvbiBjQSgpe3JldHVybiB2TS5hcHBseShsQSgkRSxxRSxQRSxBRSxFRSx3RSx2RSxoRSxOVCkuZG9tYWluKFtuZXcgRGF0ZSgyZTMsMCwxKSxuZXcgRGF0ZSgyZTMsMCwyKV0pLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdUEoKXt2YXIgdCxlLG4saSxyLG89MCxhPTEscz1QTSxsPSExO2Z1bmN0aW9uIGMoZSl7cmV0dXJuIGlzTmFOKGU9K2UpP3I6cygwPT09bj8uNTooZT0oaShlKS10KSpuLGw/TWF0aC5tYXgoMCxNYXRoLm1pbigxLGUpKTplKSl9cmV0dXJuIGMuZG9tYWluPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWkobz0rclswXSksZT1pKGE9K3JbMV0pLG49dD09PWU/MDoxLyhlLXQpLGMpOltvLGFdfSxjLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPSEhdCxjKTpsfSxjLmludGVycG9sYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10LGMpOnN9LGMudW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LGMpOnJ9LGZ1bmN0aW9uKHIpe3JldHVybiBpPXIsdD1yKG8pLGU9cihhKSxuPXQ9PT1lPzA6MS8oZS10KSxjfX1mdW5jdGlvbiBoQSh0LGUpe3JldHVybiBlLmRvbWFpbih0LmRvbWFpbigpKS5pbnRlcnBvbGF0b3IodC5pbnRlcnBvbGF0b3IoKSkuY2xhbXAodC5jbGFtcCgpKS51bmtub3duKHQudW5rbm93bigpKX1mdW5jdGlvbiBkQSgpe3ZhciB0PWlFKHVBKCkpO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gaEEodCxkQSgpKS5leHBvbmVudCh0LmV4cG9uZW50KCkpfSxiTS5hcHBseSh0LGFyZ3VtZW50cyl9ZnVuY3Rpb24gcEEoKXt2YXIgdCxlLG4saSxyLG8sYSxzPTAsbD0uNSxjPTEsdT1QTSxoPSExO2Z1bmN0aW9uIGQodCl7cmV0dXJuIGlzTmFOKHQ9K3QpP2E6KHQ9LjUrKCh0PStvKHQpKS1lKSoodDxlP2k6ciksdShoP01hdGgubWF4KDAsTWF0aC5taW4oMSx0KSk6dCkpfXJldHVybiBkLmRvbWFpbj1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1vKHM9K2FbMF0pLGU9byhsPSthWzFdKSxuPW8oYz0rYVsyXSksaT10PT09ZT8wOi41LyhlLXQpLHI9ZT09PW4/MDouNS8obi1lKSxkKTpbcyxsLGNdfSxkLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSEhdCxkKTpofSxkLmludGVycG9sYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT10LGQpOnV9LGQudW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LGQpOmF9LGZ1bmN0aW9uKGEpe3JldHVybiBvPWEsdD1hKHMpLGU9YShsKSxuPWEoYyksaT10PT09ZT8wOi41LyhlLXQpLHI9ZT09PW4/MDouNS8obi1lKSxkfX1mdW5jdGlvbiBmQSgpe3ZhciB0PWlFKHBBKCkpO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gaEEodCxmQSgpKS5leHBvbmVudCh0LmV4cG9uZW50KCkpfSxiTS5hcHBseSh0LGFyZ3VtZW50cyl9ZnVuY3Rpb24gbUEodCl7Zm9yKHZhciBlPXQubGVuZ3RoLzZ8MCxuPW5ldyBBcnJheShlKSxpPTA7aTxlOyluW2ldPSIjIit0LnNsaWNlKDYqaSw2KisraSk7cmV0dXJuIG59dmFyIGdBPW1BKCIxZjc3YjRmZjdmMGUyY2EwMmNkNjI3Mjg5NDY3YmQ4YzU2NGJlMzc3YzI3ZjdmN2ZiY2JkMjIxN2JlY2YiKSxfQT1tQSgiN2ZjOTdmYmVhZWQ0ZmRjMDg2ZmZmZjk5Mzg2Y2IwZjAwMjdmYmY1YjE3NjY2NjY2IikseUE9bUEoIjFiOWU3N2Q5NWYwMjc1NzBiM2U3Mjk4YTY2YTYxZWU2YWIwMmE2NzYxZDY2NjY2NiIpLHZBPW1BKCJhNmNlZTMxZjc4YjRiMmRmOGEzM2EwMmNmYjlhOTllMzFhMWNmZGJmNmZmZjdmMDBjYWIyZDY2YTNkOWFmZmZmOTliMTU5MjgiKSxiQT1tQSgiZmJiNGFlYjNjZGUzY2NlYmM1ZGVjYmU0ZmVkOWE2ZmZmZmNjZTVkOGJkZmRkYWVjZjJmMmYyIikseEE9bUEoImIzZTJjZGZkY2RhY2NiZDVlOGY0Y2FlNGU2ZjVjOWZmZjJhZWYxZTJjY2NjY2NjYyIpLHdBPW1BKCJlNDFhMWMzNzdlYjg0ZGFmNGE5ODRlYTNmZjdmMDBmZmZmMzNhNjU2MjhmNzgxYmY5OTk5OTkiKSxTQT1tQSgiNjZjMmE1ZmM4ZDYyOGRhMGNiZTc4YWMzYTZkODU0ZmZkOTJmZTVjNDk0YjNiM2IzIiksTUE9bUEoIjhkZDNjN2ZmZmZiM2JlYmFkYWZiODA3MjgwYjFkM2ZkYjQ2MmIzZGU2OWZjY2RlNWQ5ZDlkOWJjODBiZGNjZWJjNWZmZWQ2ZiIpLEVBPW1BKCI0ZTc5YTdmMjhlMmNlMTU3NTk3NmI3YjI1OWExNGZlZGM5NDlhZjdhYTFmZjlkYTc5Yzc1NWZiYWIwYWIiKTtmdW5jdGlvbiBUQSh0KXtyZXR1cm4gTmQodFt0Lmxlbmd0aC0xXSl9dmFyIENBPW5ldyBBcnJheSgzKS5jb25jYXQoImQ4YjM2NWY1ZjVmNTVhYjRhYyIsImE2NjExYWRmYzI3ZDgwY2RjMTAxODU3MSIsImE2NjExYWRmYzI3ZGY1ZjVmNTgwY2RjMTAxODU3MSIsIjhjNTEwYWQ4YjM2NWY2ZThjM2M3ZWFlNTVhYjRhYzAxNjY1ZSIsIjhjNTEwYWQ4YjM2NWY2ZThjM2Y1ZjVmNWM3ZWFlNTVhYjRhYzAxNjY1ZSIsIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2M3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZSIsIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZSIsIjU0MzAwNThjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2M3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZTAwM2MzMCIsIjU0MzAwNThjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZTAwM2MzMCIpLm1hcChtQSksQUE9VEEoQ0EpLGtBPW5ldyBBcnJheSgzKS5jb25jYXQoImFmOGRjM2Y3ZjdmNzdmYmY3YiIsIjdiMzI5NGMyYTVjZmE2ZGJhMDAwODgzNyIsIjdiMzI5NGMyYTVjZmY3ZjdmN2E2ZGJhMDAwODgzNyIsIjc2MmE4M2FmOGRjM2U3ZDRlOGQ5ZjBkMzdmYmY3YjFiNzgzNyIsIjc2MmE4M2FmOGRjM2U3ZDRlOGY3ZjdmN2Q5ZjBkMzdmYmY3YjFiNzgzNyIsIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNyIsIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNyIsIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYiIsIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYiIpLm1hcChtQSksTEE9VEEoa0EpLFBBPW5ldyBBcnJheSgzKS5jb25jYXQoImU5YTNjOWY3ZjdmN2ExZDc2YSIsImQwMWM4YmYxYjZkYWI4ZTE4NjRkYWMyNiIsImQwMWM4YmYxYjZkYWY3ZjdmN2I4ZTE4NjRkYWMyNiIsImM1MWI3ZGU5YTNjOWZkZTBlZmU2ZjVkMGExZDc2YTRkOTIyMSIsImM1MWI3ZGU5YTNjOWZkZTBlZmY3ZjdmN2U2ZjVkMGExZDc2YTRkOTIyMSIsImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmU2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMSIsImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMSIsIjhlMDE1MmM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmU2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMTI3NjQxOSIsIjhlMDE1MmM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMTI3NjQxOSIpLm1hcChtQSksTkE9VEEoUEEpLElBPW5ldyBBcnJheSgzKS5jb25jYXQoIjk5OGVjM2Y3ZjdmN2YxYTM0MCIsIjVlM2M5OWIyYWJkMmZkYjg2M2U2NjEwMSIsIjVlM2M5OWIyYWJkMmY3ZjdmN2ZkYjg2M2U2NjEwMSIsIjU0Mjc4ODk5OGVjM2Q4ZGFlYmZlZTBiNmYxYTM0MGIzNTgwNiIsIjU0Mjc4ODk5OGVjM2Q4ZGFlYmY3ZjdmN2ZlZTBiNmYxYTM0MGIzNTgwNiIsIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNiIsIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNiIsIjJkMDA0YjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNjdmM2IwOCIsIjJkMDA0YjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNjdmM2IwOCIpLm1hcChtQSksUkE9VEEoSUEpLE9BPW5ldyBBcnJheSgzKS5jb25jYXQoImVmOGE2MmY3ZjdmNzY3YTljZiIsImNhMDAyMGY0YTU4MjkyYzVkZTA1NzFiMCIsImNhMDAyMGY0YTU4MmY3ZjdmNzkyYzVkZTA1NzFiMCIsImIyMTgyYmVmOGE2MmZkZGJjN2QxZTVmMDY3YTljZjIxNjZhYyIsImIyMTgyYmVmOGE2MmZkZGJjN2Y3ZjdmN2QxZTVmMDY3YTljZjIxNjZhYyIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYyIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYyIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MSIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MSIpLm1hcChtQSksekE9VEEoT0EpLERBPW5ldyBBcnJheSgzKS5jb25jYXQoImVmOGE2MmZmZmZmZjk5OTk5OSIsImNhMDAyMGY0YTU4MmJhYmFiYTQwNDA0MCIsImNhMDAyMGY0YTU4MmZmZmZmZmJhYmFiYTQwNDA0MCIsImIyMTgyYmVmOGE2MmZkZGJjN2UwZTBlMDk5OTk5OTRkNGQ0ZCIsImIyMTgyYmVmOGE2MmZkZGJjN2ZmZmZmZmUwZTBlMDk5OTk5OTRkNGQ0ZCIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2UwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZCIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZCIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2UwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZDFhMWExYSIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZDFhMWExYSIpLm1hcChtQSksQkE9VEEoREEpLEhBPW5ldyBBcnJheSgzKS5jb25jYXQoImZjOGQ1OWZmZmZiZjkxYmZkYiIsImQ3MTkxY2ZkYWU2MWFiZDllOTJjN2JiNiIsImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZDllOTJjN2JiNiIsImQ3MzAyN2ZjOGQ1OWZlZTA5MGUwZjNmODkxYmZkYjQ1NzViNCIsImQ3MzAyN2ZjOGQ1OWZlZTA5MGZmZmZiZmUwZjNmODkxYmZkYjQ1NzViNCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNCIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNDMxMzY5NSIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNDMxMzY5NSIpLm1hcChtQSksRkE9VEEoSEEpLFZBPW5ldyBBcnJheSgzKS5jb25jYXQoImZjOGQ1OWZmZmZiZjkxY2Y2MCIsImQ3MTkxY2ZkYWU2MWE2ZDk2YTFhOTY0MSIsImQ3MTkxY2ZkYWU2MWZmZmZiZmE2ZDk2YTFhOTY0MSIsImQ3MzAyN2ZjOGQ1OWZlZTA4YmQ5ZWY4YjkxY2Y2MDFhOTg1MCIsImQ3MzAyN2ZjOGQ1OWZlZTA4YmZmZmZiZmQ5ZWY4YjkxY2Y2MDFhOTg1MCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MCIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzNyIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzNyIpLm1hcChtQSksVUE9VEEoVkEpLGpBPW5ldyBBcnJheSgzKS5jb25jYXQoImZjOGQ1OWZmZmZiZjk5ZDU5NCIsImQ3MTkxY2ZkYWU2MWFiZGRhNDJiODNiYSIsImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZGRhNDJiODNiYSIsImQ1M2U0ZmZjOGQ1OWZlZTA4YmU2ZjU5ODk5ZDU5NDMyODhiZCIsImQ1M2U0ZmZjOGQ1OWZlZTA4YmZmZmZiZmU2ZjU5ODk5ZDU5NDMyODhiZCIsImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZCIsImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZCIsIjllMDE0MmQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZDVlNGZhMiIsIjllMDE0MmQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZDVlNGZhMiIpLm1hcChtQSksR0E9VEEoakEpLFdBPW5ldyBBcnJheSgzKS5jb25jYXQoImU1ZjVmOTk5ZDhjOTJjYTI1ZiIsImVkZjhmYmIyZTJlMjY2YzJhNDIzOGI0NSIsImVkZjhmYmIyZTJlMjY2YzJhNDJjYTI1ZjAwNmQyYyIsImVkZjhmYmNjZWNlNjk5ZDhjOTY2YzJhNDJjYTI1ZjAwNmQyYyIsImVkZjhmYmNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNTgyNCIsImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNTgyNCIsImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNmQyYzAwNDQxYiIpLm1hcChtQSkscUE9VEEoV0EpLFlBPW5ldyBBcnJheSgzKS5jb25jYXQoImUwZWNmNDllYmNkYTg4NTZhNyIsImVkZjhmYmIzY2RlMzhjOTZjNjg4NDE5ZCIsImVkZjhmYmIzY2RlMzhjOTZjNjg4NTZhNzgxMGY3YyIsImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjg4NTZhNzgxMGY3YyIsImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YiIsImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YiIsImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDgxMGY3YzRkMDA0YiIpLm1hcChtQSksWEE9VEEoWUEpLCRBPW5ldyBBcnJheSgzKS5jb25jYXQoImUwZjNkYmE4ZGRiNTQzYTJjYSIsImYwZjllOGJhZTRiYzdiY2NjNDJiOGNiZSIsImYwZjllOGJhZTRiYzdiY2NjNDQzYTJjYTA4NjhhYyIsImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDQzYTJjYTA4NjhhYyIsImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NTg5ZSIsImY3ZmNmMGUwZjNkYmNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NTg5ZSIsImY3ZmNmMGUwZjNkYmNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NjhhYzA4NDA4MSIpLm1hcChtQSksS0E9VEEoJEEpLFpBPW5ldyBBcnJheSgzKS5jb25jYXQoImZlZThjOGZkYmI4NGUzNGEzMyIsImZlZjBkOWZkY2M4YWZjOGQ1OWQ3MzAxZiIsImZlZjBkOWZkY2M4YWZjOGQ1OWUzNGEzM2IzMDAwMCIsImZlZjBkOWZkZDQ5ZWZkYmI4NGZjOGQ1OWUzNGEzM2IzMDAwMCIsImZlZjBkOWZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZjk5MDAwMCIsImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZjk5MDAwMCIsImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZmIzMDAwMDdmMDAwMCIpLm1hcChtQSksSkE9VEEoWkEpLFFBPW5ldyBBcnJheSgzKS5jb25jYXQoImVjZTJmMGE2YmRkYjFjOTA5OSIsImY2ZWZmN2JkYzllMTY3YTljZjAyODE4YSIsImY2ZWZmN2JkYzllMTY3YTljZjFjOTA5OTAxNmM1OSIsImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjFjOTA5OTAxNmM1OSIsImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MCIsImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MCIsImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNmM1OTAxNDYzNiIpLm1hcChtQSksdGs9VEEoUUEpLGVrPW5ldyBBcnJheSgzKS5jb25jYXQoImVjZTdmMmE2YmRkYjJiOGNiZSIsImYxZWVmNmJkYzllMTc0YTljZjA1NzBiMCIsImYxZWVmNmJkYzllMTc0YTljZjJiOGNiZTA0NWE4ZCIsImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjJiOGNiZTA0NWE4ZCIsImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDAzNGU3YiIsImZmZjdmYmVjZTdmMmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDAzNGU3YiIsImZmZjdmYmVjZTdmMmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDA0NWE4ZDAyMzg1OCIpLm1hcChtQSksbms9VEEoZWspLGlrPW5ldyBBcnJheSgzKS5jb25jYXQoImU3ZTFlZmM5OTRjN2RkMWM3NyIsImYxZWVmNmQ3YjVkOGRmNjViMGNlMTI1NiIsImYxZWVmNmQ3YjVkOGRmNjViMGRkMWM3Nzk4MDA0MyIsImYxZWVmNmQ0YjlkYWM5OTRjN2RmNjViMGRkMWM3Nzk4MDA0MyIsImYxZWVmNmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1NjkxMDAzZiIsImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1NjkxMDAzZiIsImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1Njk4MDA0MzY3MDAxZiIpLm1hcChtQSkscms9VEEoaWspLG9rPW5ldyBBcnJheSgzKS5jb25jYXQoImZkZTBkZGZhOWZiNWM1MWI4YSIsImZlZWJlMmZiYjRiOWY3NjhhMWFlMDE3ZSIsImZlZWJlMmZiYjRiOWY3NjhhMWM1MWI4YTdhMDE3NyIsImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWM1MWI4YTdhMDE3NyIsImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NyIsImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NyIsImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NzQ5MDA2YSIpLm1hcChtQSksYWs9VEEob2spLHNrPW5ldyBBcnJheSgzKS5jb25jYXQoImVkZjhiMTdmY2RiYjJjN2ZiOCIsImZmZmZjY2ExZGFiNDQxYjZjNDIyNWVhOCIsImZmZmZjY2ExZGFiNDQxYjZjNDJjN2ZiODI1MzQ5NCIsImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDJjN2ZiODI1MzQ5NCIsImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODBjMmM4NCIsImZmZmZkOWVkZjhiMWM3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODBjMmM4NCIsImZmZmZkOWVkZjhiMWM3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODI1MzQ5NDA4MWQ1OCIpLm1hcChtQSksbGs9VEEoc2spLGNrPW5ldyBBcnJheSgzKS5jb25jYXQoImY3ZmNiOWFkZGQ4ZTMxYTM1NCIsImZmZmZjY2MyZTY5OTc4YzY3OTIzODQ0MyIsImZmZmZjY2MyZTY5OTc4YzY3OTMxYTM1NDAwNjgzNyIsImZmZmZjY2Q5ZjBhM2FkZGQ4ZTc4YzY3OTMxYTM1NDAwNjgzNyIsImZmZmZjY2Q5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNWEzMiIsImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNWEzMiIsImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNjgzNzAwNDUyOSIpLm1hcChtQSksdWs9VEEoY2spLGhrPW5ldyBBcnJheSgzKS5jb25jYXQoImZmZjdiY2ZlYzQ0ZmQ5NWYwZSIsImZmZmZkNGZlZDk4ZWZlOTkyOWNjNGMwMiIsImZmZmZkNGZlZDk4ZWZlOTkyOWQ5NWYwZTk5MzQwNCIsImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWQ5NWYwZTk5MzQwNCIsImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNCIsImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNCIsImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjk5MzQwNDY2MjUwNiIpLm1hcChtQSksZGs9VEEoaGspLHBrPW5ldyBBcnJheSgzKS5jb25jYXQoImZmZWRhMGZlYjI0Y2YwM2IyMCIsImZmZmZiMmZlY2M1Y2ZkOGQzY2UzMWExYyIsImZmZmZiMmZlY2M1Y2ZkOGQzY2YwM2IyMGJkMDAyNiIsImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2YwM2IyMGJkMDAyNiIsImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2IxMDAyNiIsImZmZmZjY2ZmZWRhMGZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2IxMDAyNiIsImZmZmZjY2ZmZWRhMGZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2JkMDAyNjgwMDAyNiIpLm1hcChtQSksZms9VEEocGspLG1rPW5ldyBBcnJheSgzKS5jb25jYXQoImRlZWJmNzllY2FlMTMxODJiZCIsImVmZjNmZmJkZDdlNzZiYWVkNjIxNzFiNSIsImVmZjNmZmJkZDdlNzZiYWVkNjMxODJiZDA4NTE5YyIsImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjMxODJiZDA4NTE5YyIsImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NCIsImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NCIsImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NTE5YzA4MzA2YiIpLm1hcChtQSksZ2s9VEEobWspLF9rPW5ldyBBcnJheSgzKS5jb25jYXQoImU1ZjVlMGExZDk5YjMxYTM1NCIsImVkZjhlOWJhZTRiMzc0YzQ3NjIzOGI0NSIsImVkZjhlOWJhZTRiMzc0YzQ3NjMxYTM1NDAwNmQyYyIsImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjMxYTM1NDAwNmQyYyIsImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMiIsImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMiIsImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNmQyYzAwNDQxYiIpLm1hcChtQSkseWs9VEEoX2spLHZrPW5ldyBBcnJheSgzKS5jb25jYXQoImYwZjBmMGJkYmRiZDYzNjM2MyIsImY3ZjdmN2NjY2NjYzk2OTY5NjUyNTI1MiIsImY3ZjdmN2NjY2NjYzk2OTY5NjYzNjM2MzI1MjUyNSIsImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjYzNjM2MzI1MjUyNSIsImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNSIsImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNSIsImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNTAwMDAwMCIpLm1hcChtQSksYms9VEEodmspLHhrPW5ldyBBcnJheSgzKS5jb25jYXQoImVmZWRmNWJjYmRkYzc1NmJiMSIsImYyZjBmN2NiYzllMjllOWFjODZhNTFhMyIsImYyZjBmN2NiYzllMjllOWFjODc1NmJiMTU0Mjc4ZiIsImYyZjBmN2RhZGFlYmJjYmRkYzllOWFjODc1NmJiMTU0Mjc4ZiIsImYyZjBmN2RhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzRhMTQ4NiIsImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzRhMTQ4NiIsImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzU0Mjc4ZjNmMDA3ZCIpLm1hcChtQSksd2s9VEEoeGspLFNrPW5ldyBBcnJheSgzKS5jb25jYXQoImZlZTBkMmZjOTI3MmRlMmQyNiIsImZlZTVkOWZjYWU5MWZiNmE0YWNiMTgxZCIsImZlZTVkOWZjYWU5MWZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZGE1MGYxNTY3MDAwZCIpLm1hcChtQSksTWs9VEEoU2spLEVrPW5ldyBBcnJheSgzKS5jb25jYXQoImZlZTZjZWZkYWU2YmU2NTUwZCIsImZlZWRkZWZkYmU4NWZkOGQzY2Q5NDcwMSIsImZlZWRkZWZkYmU4NWZkOGQzY2U2NTUwZGE2MzYwMyIsImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2U2NTUwZGE2MzYwMyIsImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMThjMmQwNCIsImZmZjVlYmZlZTZjZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMThjMmQwNCIsImZmZjVlYmZlZTZjZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMWE2MzYwMzdmMjcwNCIpLm1hcChtQSksVGs9VEEoRWspLENrPV9wKHhkKDMwMCwuNSwwKSx4ZCgtMjQwLC41LDEpKSxBaz1fcCh4ZCgtMTAwLC43NSwuMzUpLHhkKDgwLDEuNSwuOCkpLGtrPV9wKHhkKDI2MCwuNzUsLjM1KSx4ZCg4MCwxLjUsLjgpKSxMaz14ZCgpLFBrPVVoKCksTms9TWF0aC5QSS8zLElrPTIqTWF0aC5QSS8zO2Z1bmN0aW9uIFJrKHQpe3ZhciBlPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdFtNYXRoLm1heCgwLE1hdGgubWluKGUtMSxNYXRoLmZsb29yKG4qZSkpKV19fXZhciBPaz1SayhtQSgiNDQwMTU0NDQwMjU2NDUwNDU3NDUwNTU5NDYwNzVhNDYwODVjNDYwYTVkNDYwYjVlNDcwZDYwNDcwZTYxNDcxMDYzNDcxMTY0NDcxMzY1NDgxNDY3NDgxNjY4NDgxNzY5NDgxODZhNDgxYTZjNDgxYjZkNDgxYzZlNDgxZDZmNDgxZjcwNDgyMDcxNDgyMTczNDgyMzc0NDgyNDc1NDgyNTc2NDgyNjc3NDgyODc4NDgyOTc5NDcyYTdhNDcyYzdhNDcyZDdiNDcyZTdjNDcyZjdkNDYzMDdlNDYzMjdlNDYzMzdmNDYzNDgwNDUzNTgxNDUzNzgxNDUzODgyNDQzOTgzNDQzYTgzNDQzYjg0NDMzZDg0NDMzZTg1NDIzZjg1NDI0MDg2NDI0MTg2NDE0Mjg3NDE0NDg3NDA0NTg4NDA0Njg4M2Y0Nzg4M2Y0ODg5M2U0OTg5M2U0YTg5M2U0YzhhM2Q0ZDhhM2Q0ZThhM2M0ZjhhM2M1MDhiM2I1MThiM2I1MjhiM2E1MzhiM2E1NDhjMzk1NThjMzk1NjhjMzg1ODhjMzg1OThjMzc1YThjMzc1YjhkMzY1YzhkMzY1ZDhkMzU1ZThkMzU1ZjhkMzQ2MDhkMzQ2MThkMzM2MjhkMzM2MzhkMzI2NDhlMzI2NThlMzE2NjhlMzE2NzhlMzE2ODhlMzA2OThlMzA2YThlMmY2YjhlMmY2YzhlMmU2ZDhlMmU2ZThlMmU2ZjhlMmQ3MDhlMmQ3MThlMmM3MThlMmM3MjhlMmM3MzhlMmI3NDhlMmI3NThlMmE3NjhlMmE3NzhlMmE3ODhlMjk3OThlMjk3YThlMjk3YjhlMjg3YzhlMjg3ZDhlMjc3ZThlMjc3ZjhlMjc4MDhlMjY4MThlMjY4MjhlMjY4MjhlMjU4MzhlMjU4NDhlMjU4NThlMjQ4NjhlMjQ4NzhlMjM4ODhlMjM4OThlMjM4YThkMjI4YjhkMjI4YzhkMjI4ZDhkMjE4ZThkMjE4ZjhkMjE5MDhkMjE5MThjMjA5MjhjMjA5MjhjMjA5MzhjMWY5NDhjMWY5NThiMWY5NjhiMWY5NzhiMWY5ODhiMWY5OThhMWY5YThhMWU5YjhhMWU5Yzg5MWU5ZDg5MWY5ZTg5MWY5Zjg4MWZhMDg4MWZhMTg4MWZhMTg3MWZhMjg3MjBhMzg2MjBhNDg2MjFhNTg1MjFhNjg1MjJhNzg1MjJhODg0MjNhOTgzMjRhYTgzMjVhYjgyMjVhYzgyMjZhZDgxMjdhZDgxMjhhZTgwMjlhZjdmMmFiMDdmMmNiMTdlMmRiMjdkMmViMzdjMmZiNDdjMzFiNTdiMzJiNjdhMzRiNjc5MzViNzc5MzdiODc4MzhiOTc3M2FiYTc2M2JiYjc1M2RiYzc0M2ZiYzczNDBiZDcyNDJiZTcxNDRiZjcwNDZjMDZmNDhjMTZlNGFjMTZkNGNjMjZjNGVjMzZiNTBjNDZhNTJjNTY5NTRjNTY4NTZjNjY3NThjNzY1NWFjODY0NWNjODYzNWVjOTYyNjBjYTYwNjNjYjVmNjVjYjVlNjdjYzVjNjljZDViNmNjZDVhNmVjZTU4NzBjZjU3NzNkMDU2NzVkMDU0NzdkMTUzN2FkMTUxN2NkMjUwN2ZkMzRlODFkMzRkODRkNDRiODZkNTQ5ODlkNTQ4OGJkNjQ2OGVkNjQ1OTBkNzQzOTNkNzQxOTVkODQwOThkODNlOWJkOTNjOWRkOTNiYTBkYTM5YTJkYTM3YTVkYjM2YThkYjM0YWFkYzMyYWRkYzMwYjBkZDJmYjJkZDJkYjVkZTJiYjhkZTI5YmFkZTI4YmRkZjI2YzBkZjI1YzJkZjIzYzVlMDIxYzhlMDIwY2FlMTFmY2RlMTFkZDBlMTFjZDJlMjFiZDVlMjFhZDhlMjE5ZGFlMzE5ZGRlMzE4ZGZlMzE4ZTJlNDE4ZTVlNDE5ZTdlNDE5ZWFlNTFhZWNlNTFiZWZlNTFjZjFlNTFkZjRlNjFlZjZlNjIwZjhlNjIxZmJlNzIzZmRlNzI1IikpLHprPVJrKG1BKCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMDkwMjAyMGIwMjAyMGQwMzAzMGYwMzAzMTIwNDA0MTQwNTA0MTYwNjA1MTgwNjA1MWEwNzA2MWMwODA3MWUwOTA3MjAwYTA4MjIwYjA5MjQwYzA5MjYwZDBhMjkwZTBiMmIxMDBiMmQxMTBjMmYxMjBkMzExMzBkMzQxNDBlMzYxNTBlMzgxNjBmM2IxODBmM2QxOTEwM2YxYTEwNDIxYzEwNDQxZDExNDcxZTExNDkyMDExNGIyMTExNGUyMjExNTAyNDEyNTMyNTEyNTUyNzEyNTgyOTExNWEyYTExNWMyYzExNWYyZDExNjEyZjExNjMzMTExNjUzMzEwNjczNDEwNjkzNjEwNmIzODEwNmMzOTBmNmUzYjBmNzAzZDBmNzEzZjBmNzI0MDBmNzQ0MjBmNzU0NDBmNzY0NTEwNzc0NzEwNzg0OTEwNzg0YTEwNzk0YzExN2E0ZTExN2I0ZjEyN2I1MTEyN2M1MjEzN2M1NDEzN2Q1NjE0N2Q1NzE1N2U1OTE1N2U1YTE2N2U1YzE2N2Y1ZDE3N2Y1ZjE4N2Y2MDE4ODA2MjE5ODA2NDFhODA2NTFhODA2NzFiODA2ODFjODE2YTFjODE2YjFkODE2ZDFkODE2ZTFlODE3MDFmODE3MjFmODE3MzIwODE3NTIxODE3NjIxODE3ODIyODE3OTIyODI3YjIzODI3YzIzODI3ZTI0ODI4MDI1ODI4MTI1ODE4MzI2ODE4NDI2ODE4NjI3ODE4ODI3ODE4OTI4ODE4YjI5ODE4YzI5ODE4ZTJhODE5MDJhODE5MTJiODE5MzJiODA5NDJjODA5NjJjODA5ODJkODA5OTJkODA5YjJlN2Y5YzJlN2Y5ZTJmN2ZhMDJmN2ZhMTMwN2VhMzMwN2VhNTMxN2VhNjMxN2RhODMyN2RhYTMzN2RhYjMzN2NhZDM0N2NhZTM0N2JiMDM1N2JiMjM1N2JiMzM2N2FiNTM2N2FiNzM3NzliODM3NzliYTM4NzhiYzM5NzhiZDM5NzdiZjNhNzdjMDNhNzZjMjNiNzVjNDNjNzVjNTNjNzRjNzNkNzNjODNlNzNjYTNlNzJjYzNmNzFjZDQwNzFjZjQwNzBkMDQxNmZkMjQyNmZkMzQzNmVkNTQ0NmRkNjQ1NmNkODQ1NmNkOTQ2NmJkYjQ3NmFkYzQ4NjlkZTQ5NjhkZjRhNjhlMDRjNjdlMjRkNjZlMzRlNjVlNDRmNjRlNTUwNjRlNzUyNjNlODUzNjJlOTU0NjJlYTU2NjFlYjU3NjBlYzU4NjBlZDVhNWZlZTViNWVlZjVkNWVmMDVmNWVmMTYwNWRmMjYyNWRmMjY0NWNmMzY1NWNmNDY3NWNmNDY5NWNmNTZiNWNmNjZjNWNmNjZlNWNmNzcwNWNmNzcyNWNmODc0NWNmODc2NWNmOTc4NWRmOTc5NWRmOTdiNWRmYTdkNWVmYTdmNWVmYTgxNWZmYjgzNWZmYjg1NjBmYjg3NjFmYzg5NjFmYzhhNjJmYzhjNjNmYzhlNjRmYzkwNjVmZDkyNjZmZDk0NjdmZDk2NjhmZDk4NjlmZDlhNmFmZDliNmJmZTlkNmNmZTlmNmRmZWExNmVmZWEzNmZmZWE1NzFmZWE3NzJmZWE5NzNmZWFhNzRmZWFjNzZmZWFlNzdmZWIwNzhmZWIyN2FmZWI0N2JmZWI2N2NmZWI3N2VmZWI5N2ZmZWJiODFmZWJkODJmZWJmODRmZWMxODVmZWMyODdmZWM0ODhmZWM2OGFmZWM4OGNmZWNhOGRmZWNjOGZmZWNkOTBmZWNmOTJmZWQxOTRmZWQzOTVmZWQ1OTdmZWQ3OTlmZWQ4OWFmZGRhOWNmZGRjOWVmZGRlYTBmZGUwYTFmZGUyYTNmZGUzYTVmZGU1YTdmZGU3YTlmZGU5YWFmZGViYWNmY2VjYWVmY2VlYjBmY2YwYjJmY2YyYjRmY2Y0YjZmY2Y2YjhmY2Y3YjlmY2Y5YmJmY2ZiYmRmY2ZkYmYiKSksRGs9UmsobUEoIjAwMDAwNDAxMDAwNTAxMDEwNjAxMDEwODAyMDEwYTAyMDIwYzAyMDIwZTAzMDIxMDA0MDMxMjA0MDMxNDA1MDQxNzA2MDQxOTA3MDUxYjA4MDUxZDA5MDYxZjBhMDcyMjBiMDcyNDBjMDgyNjBkMDgyOTBlMDkyYjEwMDkyZDExMGEzMDEyMGEzMjE0MGIzNDE1MGIzNzE2MGIzOTE4MGMzYzE5MGMzZTFiMGM0MTFjMGM0MzFlMGM0NTFmMGM0ODIxMGM0YTIzMGM0YzI0MGM0ZjI2MGM1MTI4MGI1MzI5MGI1NTJiMGI1NzJkMGI1OTJmMGE1YjMxMGE1YzMyMGE1ZTM0MGE1ZjM2MDk2MTM4MDk2MjM5MDk2MzNiMDk2NDNkMDk2NTNlMDk2NjQwMGE2NzQyMGE2ODQ0MGE2ODQ1MGE2OTQ3MGI2YTQ5MGI2YTRhMGM2YjRjMGM2YjRkMGQ2YzRmMGQ2YzUxMGU2YzUyMGU2ZDU0MGY2ZDU1MGY2ZDU3MTA2ZTU5MTA2ZTVhMTE2ZTVjMTI2ZTVkMTI2ZTVmMTM2ZTYxMTM2ZTYyMTQ2ZTY0MTU2ZTY1MTU2ZTY3MTY2ZTY5MTY2ZTZhMTc2ZTZjMTg2ZTZkMTg2ZTZmMTk2ZTcxMTk2ZTcyMWE2ZTc0MWE2ZTc1MWI2ZTc3MWM2ZDc4MWM2ZDdhMWQ2ZDdjMWQ2ZDdkMWU2ZDdmMWU2YzgwMWY2YzgyMjA2Yzg0MjA2Yjg1MjE2Yjg3MjE2Yjg4MjI2YThhMjI2YThjMjM2OThkMjM2OThmMjQ2OTkwMjU2ODkyMjU2ODkzMjY2Nzk1MjY2Nzk3Mjc2Njk4Mjc2NjlhMjg2NTliMjk2NDlkMjk2NDlmMmE2M2EwMmE2M2EyMmI2MmEzMmM2MWE1MmM2MGE2MmQ2MGE4MmU1ZmE5MmU1ZWFiMmY1ZWFkMzA1ZGFlMzA1Y2IwMzE1YmIxMzI1YWIzMzI1YWI0MzM1OWI2MzQ1OGI3MzU1N2I5MzU1NmJhMzY1NWJjMzc1NGJkMzg1M2JmMzk1MmMwM2E1MWMxM2E1MGMzM2I0ZmM0M2M0ZWM2M2Q0ZGM3M2U0Y2M4M2Y0YmNhNDA0YWNiNDE0OWNjNDI0OGNlNDM0N2NmNDQ0NmQwNDU0NWQyNDY0NGQzNDc0M2Q0NDg0MmQ1NGE0MWQ3NGIzZmQ4NGMzZWQ5NGQzZGRhNGUzY2RiNTAzYmRkNTEzYWRlNTIzOGRmNTMzN2UwNTUzNmUxNTYzNWUyNTczNGUzNTkzM2U0NWEzMWU1NWMzMGU2NWQyZmU3NWUyZWU4NjAyZGU5NjEyYmVhNjMyYWViNjQyOWViNjYyOGVjNjcyNmVkNjkyNWVlNmEyNGVmNmMyM2VmNmUyMWYwNmYyMGYxNzExZmYxNzMxZGYyNzQxY2YzNzYxYmYzNzgxOWY0NzkxOGY1N2IxN2Y1N2QxNWY2N2UxNGY2ODAxM2Y3ODIxMmY3ODQxMGY4ODUwZmY4ODcwZWY4ODkwY2Y5OGIwYmY5OGMwYWY5OGUwOWZhOTAwOGZhOTIwN2ZhOTQwN2ZiOTYwNmZiOTcwNmZiOTkwNmZiOWIwNmZiOWQwN2ZjOWYwN2ZjYTEwOGZjYTMwOWZjYTUwYWZjYTYwY2ZjYTgwZGZjYWEwZmZjYWMxMWZjYWUxMmZjYjAxNGZjYjIxNmZjYjQxOGZiYjYxYWZiYjgxZGZiYmExZmZiYmMyMWZiYmUyM2ZhYzAyNmZhYzIyOGZhYzQyYWZhYzYyZGY5YzcyZmY5YzkzMmY5Y2IzNWY4Y2QzN2Y4Y2YzYWY3ZDEzZGY3ZDM0MGY2ZDU0M2Y2ZDc0NmY1ZDk0OWY1ZGI0Y2Y0ZGQ0ZmY0ZGY1M2Y0ZTE1NmYzZTM1YWYzZTU1ZGYyZTY2MWYyZTg2NWYyZWE2OWYxZWM2ZGYxZWQ3MWYxZWY3NWYxZjE3OWYyZjI3ZGYyZjQ4MmYzZjU4NmYzZjY4YWY0Zjg4ZWY1Zjk5MmY2ZmE5NmY4ZmI5YWY5ZmM5ZGZhZmRhMWZjZmZhNCIpKSxCaz1SayhtQSgiMGQwODg3MTAwNzg4MTMwNzg5MTYwNzhhMTkwNjhjMWIwNjhkMWQwNjhlMjAwNjhmMjIwNjkwMjQwNjkxMjYwNTkxMjgwNTkyMmEwNTkzMmMwNTk0MmUwNTk1MmYwNTk2MzEwNTk3MzMwNTk3MzUwNDk4MzcwNDk5MzgwNDlhM2EwNDlhM2MwNDliM2UwNDljM2YwNDljNDEwNDlkNDMwMzllNDQwMzllNDYwMzlmNDgwMzlmNDkwM2EwNGIwM2ExNGMwMmExNGUwMmEyNTAwMmEyNTEwMmEzNTMwMmEzNTUwMmE0NTYwMWE0NTgwMWE0NTkwMWE1NWIwMWE1NWMwMWE2NWUwMWE2NjAwMWE2NjEwMGE3NjMwMGE3NjQwMGE3NjYwMGE3NjcwMGE4NjkwMGE4NmEwMGE4NmMwMGE4NmUwMGE4NmYwMGE4NzEwMGE4NzIwMWE4NzQwMWE4NzUwMWE4NzcwMWE4NzgwMWE4N2EwMmE4N2IwMmE4N2QwM2E4N2UwM2E4ODAwNGE4ODEwNGE3ODMwNWE3ODQwNWE3ODYwNmE2ODcwN2E2ODgwOGE2OGEwOWE1OGIwYWE1OGQwYmE1OGUwY2E0OGYwZGE0OTEwZWEzOTIwZmEzOTQxMGEyOTUxMWExOTYxM2ExOTgxNGEwOTkxNTlmOWExNjlmOWMxNzllOWQxODlkOWUxOTlkYTAxYTljYTExYjliYTIxZDlhYTMxZTlhYTUxZjk5YTYyMDk4YTcyMTk3YTgyMjk2YWEyMzk1YWIyNDk0YWMyNjk0YWQyNzkzYWUyODkyYjAyOTkxYjEyYTkwYjIyYjhmYjMyYzhlYjQyZThkYjUyZjhjYjYzMDhiYjczMThhYjgzMjg5YmEzMzg4YmIzNDg4YmMzNTg3YmQzNzg2YmUzODg1YmYzOTg0YzAzYTgzYzEzYjgyYzIzYzgxYzMzZDgwYzQzZTdmYzU0MDdlYzY0MTdkYzc0MjdjYzg0MzdiYzk0NDdhY2E0NTdhY2I0Njc5Y2M0Nzc4Y2M0OTc3Y2Q0YTc2Y2U0Yjc1Y2Y0Yzc0ZDA0ZDczZDE0ZTcyZDI0ZjcxZDM1MTcxZDQ1MjcwZDU1MzZmZDU1NDZlZDY1NTZkZDc1NjZjZDg1NzZiZDk1ODZhZGE1YTZhZGE1YjY5ZGI1YzY4ZGM1ZDY3ZGQ1ZTY2ZGU1ZjY1ZGU2MTY0ZGY2MjYzZTA2MzYzZTE2NDYyZTI2NTYxZTI2NjYwZTM2ODVmZTQ2OTVlZTU2YTVkZTU2YjVkZTY2YzVjZTc2ZTViZTc2ZjVhZTg3MDU5ZTk3MTU4ZTk3MjU3ZWE3NDU3ZWI3NTU2ZWI3NjU1ZWM3NzU0ZWQ3OTUzZWQ3YTUyZWU3YjUxZWY3YzUxZWY3ZTUwZjA3ZjRmZjA4MDRlZjE4MTRkZjE4MzRjZjI4NDRiZjM4NTRiZjM4NzRhZjQ4ODQ5ZjQ4OTQ4ZjU4YjQ3ZjU4YzQ2ZjY4ZDQ1ZjY4ZjQ0Zjc5MDQ0Zjc5MTQzZjc5MzQyZjg5NDQxZjg5NTQwZjk5NzNmZjk5ODNlZjk5YTNlZmE5YjNkZmE5YzNjZmE5ZTNiZmI5ZjNhZmJhMTM5ZmJhMjM4ZmNhMzM4ZmNhNTM3ZmNhNjM2ZmNhODM1ZmNhOTM0ZmRhYjMzZmRhYzMzZmRhZTMyZmRhZjMxZmRiMTMwZmRiMjJmZmRiNDJmZmRiNTJlZmViNzJkZmViODJjZmViYTJjZmViYjJiZmViZDJhZmViZTJhZmVjMDI5ZmRjMjI5ZmRjMzI4ZmRjNTI3ZmRjNjI3ZmRjODI3ZmRjYTI2ZmRjYjI2ZmNjZDI1ZmNjZTI1ZmNkMDI1ZmNkMjI1ZmJkMzI0ZmJkNTI0ZmJkNzI0ZmFkODI0ZmFkYTI0ZjlkYzI0ZjlkZDI1ZjhkZjI1ZjhlMTI1ZjdlMjI1ZjdlNDI1ZjZlNjI2ZjZlODI2ZjVlOTI2ZjVlYjI3ZjRlZDI3ZjNlZTI3ZjNmMDI3ZjJmMjI3ZjFmNDI2ZjFmNTI1ZjBmNzI0ZjBmOTIxIikpO2Z1bmN0aW9uIEhrKHQpe3JldHVybiBmdW5jdGlvbiBlKCl7cmV0dXJuIHR9fXZhciBGaz1NYXRoLmFicyxWaz1NYXRoLmF0YW4yLFVrPU1hdGguY29zLGprPU1hdGgubWF4LEdrPU1hdGgubWluLFdrPU1hdGguc2luLHFrPU1hdGguc3FydCxZaz0xZS0xMixYaz1NYXRoLlBJLCRrPVhrLzIsS2s9MipYaztmdW5jdGlvbiBaayh0KXtyZXR1cm4gdD4xPzA6dDwtMT9YazpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gSmsodCl7cmV0dXJuIHQ+PTE/JGs6dDw9LTE/LSRrOk1hdGguYXNpbih0KX1mdW5jdGlvbiBRayh0KXtyZXR1cm4gdC5pbm5lclJhZGl1c31mdW5jdGlvbiB0TCh0KXtyZXR1cm4gdC5vdXRlclJhZGl1c31mdW5jdGlvbiBlTCh0KXtyZXR1cm4gdC5zdGFydEFuZ2xlfWZ1bmN0aW9uIG5MKHQpe3JldHVybiB0LmVuZEFuZ2xlfWZ1bmN0aW9uIGlMKHQpe3JldHVybiB0JiZ0LnBhZEFuZ2xlfWZ1bmN0aW9uIHJMKHQsZSxuLGkscixvLGEscyl7dmFyIGw9bi10LGM9aS1lLHU9YS1yLGg9cy1vLGQ9aCpsLXUqYztpZighKGQqZDxZaykpcmV0dXJuW3QrKGQ9KHUqKGUtbyktaCoodC1yKSkvZCkqbCxlK2QqY119ZnVuY3Rpb24gb0wodCxlLG4saSxyLG8sYSl7dmFyIHM9dC1uLGw9ZS1pLGM9KGE/bzotbykvcWsocypzK2wqbCksdT1jKmwsaD0tYypzLGQ9dCt1LHA9ZStoLGY9bit1LG09aStoLGc9KGQrZikvMixfPShwK20pLzIseT1mLWQsdj1tLXAsYj15Knkrdip2LHg9ci1vLHc9ZCptLWYqcCxTPSh2PDA/LTE6MSkqcWsoamsoMCx4KngqYi13KncpKSxNPSh3KnYteSpTKS9iLEU9KC13KnktdipTKS9iLFQ9KHcqdit5KlMpL2IsQz0oLXcqeSt2KlMpL2IsQT1NLWcsaz1FLV8sTD1ULWcsUD1DLV87cmV0dXJuIEEqQStrKms+TCpMK1AqUCYmKE09VCxFPUMpLHtjeDpNLGN5OkUseDAxOi11LHkwMTotaCx4MTE6TSooci94LTEpLHkxMTpFKihyL3gtMSl9fWZ1bmN0aW9uIGFMKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBzTCh0KXtyZXR1cm4gbmV3IGFMKHQpfWZ1bmN0aW9uIGxMKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIGNMKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIHVMKCl7dmFyIHQ9bEwsZT1jTCxuPUhrKCEwKSxpPW51bGwscj1zTCxvPW51bGw7ZnVuY3Rpb24gYShhKXt2YXIgcyxsLGMsdT1hLmxlbmd0aCxoPSExO2ZvcihudWxsPT1pJiYobz1yKGM9ZmcoKSkpLHM9MDtzPD11OysrcykhKHM8dSYmbihsPWFbc10scyxhKSk9PT1oJiYoKGg9IWgpP28ubGluZVN0YXJ0KCk6by5saW5lRW5kKCkpLGgmJm8ucG9pbnQoK3QobCxzLGEpLCtlKGwscyxhKSk7aWYoYylyZXR1cm4gbz1udWxsLGMrIiJ8fG51bGx9cmV0dXJuIGEueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOkhrKCtlKSxhKTp0fSxhLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIaygrdCksYSk6ZX0sYS5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoISF0KSxhKTpufSxhLmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbnVsbCE9aSYmKG89cihpKSksYSk6cn0sYS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P2k9bz1udWxsOm89cihpPXQpLGEpOml9LGF9ZnVuY3Rpb24gaEwoKXt2YXIgdD1sTCxlPW51bGwsbj1IaygwKSxpPWNMLHI9SGsoITApLG89bnVsbCxhPXNMLHM9bnVsbDtmdW5jdGlvbiBsKGwpe3ZhciBjLHUsaCxkLHAsZj1sLmxlbmd0aCxtPSExLGc9bmV3IEFycmF5KGYpLF89bmV3IEFycmF5KGYpO2ZvcihudWxsPT1vJiYocz1hKHA9ZmcoKSkpLGM9MDtjPD1mOysrYyl7aWYoIShjPGYmJnIoZD1sW2NdLGMsbCkpPT09bSlpZihtPSFtKXU9YyxzLmFyZWFTdGFydCgpLHMubGluZVN0YXJ0KCk7ZWxzZXtmb3Iocy5saW5lRW5kKCkscy5saW5lU3RhcnQoKSxoPWMtMTtoPj11Oy0taClzLnBvaW50KGdbaF0sX1toXSk7cy5saW5lRW5kKCkscy5hcmVhRW5kKCl9bSYmKGdbY109K3QoZCxjLGwpLF9bY109K24oZCxjLGwpLHMucG9pbnQoZT8rZShkLGMsbCk6Z1tjXSxpPytpKGQsYyxsKTpfW2NdKSl9aWYocClyZXR1cm4gcz1udWxsLHArIiJ8fG51bGx9ZnVuY3Rpb24gYygpe3JldHVybiB1TCgpLmRlZmluZWQocikuY3VydmUoYSkuY29udGV4dChvKX1yZXR1cm4gbC54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBuP246SGsoK24pLGU9bnVsbCxsKTp0fSxsLngwPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6SGsoK2UpLGwpOnR9LGwueDE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bnVsbD09dD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGwpOmV9LGwueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxpPW51bGwsbCk6bn0sbC55MD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxsKTpufSxsLnkxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxsKTppfSxsLmxpbmVYMD1sLmxpbmVZMD1mdW5jdGlvbigpe3JldHVybiBjKCkueCh0KS55KG4pfSxsLmxpbmVZMT1mdW5jdGlvbigpe3JldHVybiBjKCkueCh0KS55KGkpfSxsLmxpbmVYMT1mdW5jdGlvbigpe3JldHVybiBjKCkueChlKS55KG4pfSxsLmRlZmluZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIayghIXQpLGwpOnJ9LGwuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dCxudWxsIT1vJiYocz1hKG8pKSxsKTphfSxsLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/bz1zPW51bGw6cz1hKG89dCksbCk6b30sbH1mdW5jdGlvbiBkTCh0LGUpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn1mdW5jdGlvbiBwTCh0KXtyZXR1cm4gdH1hTC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5saW5lVG8odCxlKX19fTt2YXIgZkw9Z0woc0wpO2Z1bmN0aW9uIG1MKHQpe3RoaXMuX2N1cnZlPXR9ZnVuY3Rpb24gZ0wodCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gbmV3IG1MKHQoZSkpfXJldHVybiBlLl9jdXJ2ZT10LGV9ZnVuY3Rpb24gX0wodCl7dmFyIGU9dC5jdXJ2ZTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoZ0wodCkpOmUoKS5fY3VydmV9LHR9ZnVuY3Rpb24geUwoKXtyZXR1cm4gX0wodUwoKS5jdXJ2ZShmTCkpfWZ1bmN0aW9uIHZMKCl7dmFyIHQ9aEwoKS5jdXJ2ZShmTCksZT10LmN1cnZlLG49dC5saW5lWDAsaT10LmxpbmVYMSxyPXQubGluZVkwLG89dC5saW5lWTE7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5zdGFydEFuZ2xlPXQueDAsZGVsZXRlIHQueDAsdC5lbmRBbmdsZT10LngxLGRlbGV0ZSB0LngxLHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuaW5uZXJSYWRpdXM9dC55MCxkZWxldGUgdC55MCx0Lm91dGVyUmFkaXVzPXQueTEsZGVsZXRlIHQueTEsdC5saW5lU3RhcnRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBfTChuKCkpfSxkZWxldGUgdC5saW5lWDAsdC5saW5lRW5kQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gX0woaSgpKX0sZGVsZXRlIHQubGluZVgxLHQubGluZUlubmVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIF9MKHIoKSl9LGRlbGV0ZSB0LmxpbmVZMCx0LmxpbmVPdXRlclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBfTChvKCkpfSxkZWxldGUgdC5saW5lWTEsdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKGdMKHQpKTplKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIGJMKHQsZSl7cmV0dXJuWyhlPStlKSpNYXRoLmNvcyh0LT1NYXRoLlBJLzIpLGUqTWF0aC5zaW4odCldfW1MLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYVN0YXJ0KCl9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhRW5kKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX2N1cnZlLnBvaW50KGUqTWF0aC5zaW4odCksZSotTWF0aC5jb3ModCkpfX07dmFyIHhMPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiB3TCh0KXtyZXR1cm4gdC5zb3VyY2V9ZnVuY3Rpb24gU0wodCl7cmV0dXJuIHQudGFyZ2V0fWZ1bmN0aW9uIE1MKHQpe3ZhciBlPXdMLG49U0wsaT1sTCxyPWNMLG89bnVsbDtmdW5jdGlvbiBhKCl7dmFyIGEscz14TC5jYWxsKGFyZ3VtZW50cyksbD1lLmFwcGx5KHRoaXMscyksYz1uLmFwcGx5KHRoaXMscyk7aWYob3x8KG89YT1mZygpKSx0KG8sK2kuYXBwbHkodGhpcywoc1swXT1sLHMpKSwrci5hcHBseSh0aGlzLHMpLCtpLmFwcGx5KHRoaXMsKHNbMF09YyxzKSksK3IuYXBwbHkodGhpcyxzKSksYSlyZXR1cm4gbz1udWxsLGErIiJ8fG51bGx9cmV0dXJuIGEuc291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsYSk6ZX0sYS50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxhKTpufSxhLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIaygrdCksYSk6aX0sYS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGEpOnJ9LGEuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT10P251bGw6dCxhKTpvfSxhfWZ1bmN0aW9uIEVMKHQsZSxuLGkscil7dC5tb3ZlVG8oZSxuKSx0LmJlemllckN1cnZlVG8oZT0oZStpKS8yLG4sZSxyLGkscil9ZnVuY3Rpb24gVEwodCxlLG4saSxyKXt0Lm1vdmVUbyhlLG4pLHQuYmV6aWVyQ3VydmVUbyhlLG49KG4rcikvMixpLG4saSxyKX1mdW5jdGlvbiBDTCh0LGUsbixpLHIpe3ZhciBvPWJMKGUsbiksYT1iTChlLG49KG4rcikvMikscz1iTChpLG4pLGw9YkwoaSxyKTt0Lm1vdmVUbyhvWzBdLG9bMV0pLHQuYmV6aWVyQ3VydmVUbyhhWzBdLGFbMV0sc1swXSxzWzFdLGxbMF0sbFsxXSl9dmFyIEFMPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KGUvWGspO3QubW92ZVRvKG4sMCksdC5hcmMoMCwwLG4sMCxLayl9fSxrTD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydChlLzUpLzI7dC5tb3ZlVG8oLTMqbiwtbiksdC5saW5lVG8oLW4sLW4pLHQubGluZVRvKC1uLC0zKm4pLHQubGluZVRvKG4sLTMqbiksdC5saW5lVG8obiwtbiksdC5saW5lVG8oMypuLC1uKSx0LmxpbmVUbygzKm4sbiksdC5saW5lVG8obixuKSx0LmxpbmVUbyhuLDMqbiksdC5saW5lVG8oLW4sMypuKSx0LmxpbmVUbygtbixuKSx0LmxpbmVUbygtMypuLG4pLHQuY2xvc2VQYXRoKCl9fSxMTD1NYXRoLnNxcnQoMS8zKSxQTD0yKkxMLE5MPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KGUvUEwpLGk9bipMTDt0Lm1vdmVUbygwLC1uKSx0LmxpbmVUbyhpLDApLHQubGluZVRvKDAsbiksdC5saW5lVG8oLWksMCksdC5jbG9zZVBhdGgoKX19LElMPU1hdGguc2luKFhrLzEwKS9NYXRoLnNpbig3KlhrLzEwKSxSTD1NYXRoLnNpbihLay8xMCkqSUwsT0w9LU1hdGguY29zKEtrLzEwKSpJTCx6TD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydCguODkwODEzMDkxNTI5Mjg1MiplKSxpPVJMKm4scj1PTCpuO3QubW92ZVRvKDAsLW4pLHQubGluZVRvKGkscik7Zm9yKHZhciBvPTE7bzw1Oysrbyl7dmFyIGE9S2sqby81LHM9TWF0aC5jb3MoYSksbD1NYXRoLnNpbihhKTt0LmxpbmVUbyhsKm4sLXMqbiksdC5saW5lVG8ocyppLWwqcixsKmkrcypyKX10LmNsb3NlUGF0aCgpfX0sREw9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLnNxcnQoZSksaT0tbi8yO3QucmVjdChpLGksbixuKX19LEJMPU1hdGguc3FydCgzKSxITD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPS1NYXRoLnNxcnQoZS8oMypCTCkpO3QubW92ZVRvKDAsMipuKSx0LmxpbmVUbygtQkwqbiwtbiksdC5saW5lVG8oQkwqbiwtbiksdC5jbG9zZVBhdGgoKX19LEZMPS0uNSxWTD1NYXRoLnNxcnQoMykvMixVTD0xL01hdGguc3FydCgxMiksakw9MyooVUwvMisxKSxHTD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydChlL2pMKSxpPW4vMixyPW4qVUwsbz1pLGE9bipVTCtuLHM9LW8sbD1hO3QubW92ZVRvKGksciksdC5saW5lVG8obyxhKSx0LmxpbmVUbyhzLGwpLHQubGluZVRvKEZMKmktVkwqcixWTCppK0ZMKnIpLHQubGluZVRvKEZMKm8tVkwqYSxWTCpvK0ZMKmEpLHQubGluZVRvKEZMKnMtVkwqbCxWTCpzK0ZMKmwpLHQubGluZVRvKEZMKmkrVkwqcixGTCpyLVZMKmkpLHQubGluZVRvKEZMKm8rVkwqYSxGTCphLVZMKm8pLHQubGluZVRvKEZMKnMrVkwqbCxGTCpsLVZMKnMpLHQuY2xvc2VQYXRoKCl9fSxXTD1bQUwsa0wsTkwsREwsekwsSEwsR0xdO2Z1bmN0aW9uIHFMKCl7fWZ1bmN0aW9uIFlMKHQsZSxuKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8oKDIqdC5feDArdC5feDEpLzMsKDIqdC5feTArdC5feTEpLzMsKHQuX3gwKzIqdC5feDEpLzMsKHQuX3kwKzIqdC5feTEpLzMsKHQuX3gwKzQqdC5feDErZSkvNiwodC5feTArNCp0Ll95MStuKS82KX1mdW5jdGlvbiBYTCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gJEwodCl7cmV0dXJuIG5ldyBYTCh0KX1mdW5jdGlvbiBLTCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gWkwodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIEpMKHQsZSl7dGhpcy5fYmFzaXM9bmV3IFhMKHQpLHRoaXMuX2JldGE9ZX1YTC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAzOllMKHRoaXMsdGhpcy5feDEsdGhpcy5feTEpO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2NvbnRleHQubGluZVRvKCg1KnRoaXMuX3gwK3RoaXMuX3gxKS82LCg1KnRoaXMuX3kwK3RoaXMuX3kxKS82KTtkZWZhdWx0OllMKHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWV9fSxLTC5wcm90b3R5cGU9e2FyZWFTdGFydDpxTCxhcmVhRW5kOnFMLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MisyKnRoaXMuX3gzKS8zLCh0aGlzLl95MisyKnRoaXMuX3kzKS8zKSx0aGlzLl9jb250ZXh0LmxpbmVUbygodGhpcy5feDMrMip0aGlzLl94MikvMywodGhpcy5feTMrMip0aGlzLl95MikvMyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCl9fSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gyPXQsdGhpcy5feTI9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94Mz10LHRoaXMuX3kzPWU7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDQ9dCx0aGlzLl95ND1lLHRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYsKHRoaXMuX3kwKzQqdGhpcy5feTErZSkvNik7YnJlYWs7ZGVmYXVsdDpZTCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0sWkwucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7dmFyIG49KHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNixpPSh0aGlzLl95MCs0KnRoaXMuX3kxK2UpLzY7dGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhuLGkpOnRoaXMuX2NvbnRleHQubW92ZVRvKG4saSk7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpZTCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0sSkwucHJvdG90eXBlPXtsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W10sdGhpcy5fYmFzaXMubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LGU9dGhpcy5feSxuPXQubGVuZ3RoLTE7aWYobj4wKWZvcih2YXIgaSxyPXRbMF0sbz1lWzBdLGE9dFtuXS1yLHM9ZVtuXS1vLGw9LTE7KytsPD1uOyl0aGlzLl9iYXNpcy5wb2ludCh0aGlzLl9iZXRhKnRbbF0rKDEtdGhpcy5fYmV0YSkqKHIrKGk9bC9uKSphKSx0aGlzLl9iZXRhKmVbbF0rKDEtdGhpcy5fYmV0YSkqKG8raSpzKSk7dGhpcy5feD10aGlzLl95PW51bGwsdGhpcy5fYmFzaXMubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtlKX19O3ZhciBRTD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiAxPT09ZT9uZXcgWEwodCk6bmV3IEpMKHQsZSl9cmV0dXJuIG4uYmV0YT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSguODUpO2Z1bmN0aW9uIHRQKHQsZSxuKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8odC5feDErdC5fayoodC5feDItdC5feDApLHQuX3kxK3QuX2sqKHQuX3kyLXQuX3kwKSx0Ll94Mit0Ll9rKih0Ll94MS1lKSx0Ll95Mit0Ll9rKih0Ll95MS1uKSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gZVAodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1lKS82fWVQLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0UCh0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDE9dCx0aGlzLl95MT1lO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6dFAodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBuUD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBuZXcgZVAodCxlKX1yZXR1cm4gbi50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKDApO2Z1bmN0aW9uIGlQKHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1pUC5wcm90b3R5cGU9e2FyZWFTdGFydDpxTCxhcmVhRW5kOnFMLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDM9dCx0aGlzLl95Mz1lO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0PXQsdGhpcy5feTQ9ZSk7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDU9dCx0aGlzLl95NT1lO2JyZWFrO2RlZmF1bHQ6dFAodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciByUD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBuZXcgaVAodCxlKX1yZXR1cm4gbi50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKDApO2Z1bmN0aW9uIG9QKHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1vUC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDp0UCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIGFQPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIG5ldyBvUCh0LGUpfXJldHVybiBuLnRlbnNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoMCk7ZnVuY3Rpb24gc1AodCxlLG4pe3ZhciBpPXQuX3gxLHI9dC5feTEsbz10Ll94MixhPXQuX3kyO2lmKHQuX2wwMV9hPllrKXt2YXIgcz0yKnQuX2wwMV8yYSszKnQuX2wwMV9hKnQuX2wxMl9hK3QuX2wxMl8yYSxsPTMqdC5fbDAxX2EqKHQuX2wwMV9hK3QuX2wxMl9hKTtpPShpKnMtdC5feDAqdC5fbDEyXzJhK3QuX3gyKnQuX2wwMV8yYSkvbCxyPShyKnMtdC5feTAqdC5fbDEyXzJhK3QuX3kyKnQuX2wwMV8yYSkvbH1pZih0Ll9sMjNfYT5Zayl7dmFyIGM9Mip0Ll9sMjNfMmErMyp0Ll9sMjNfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsdT0zKnQuX2wyM19hKih0Ll9sMjNfYSt0Ll9sMTJfYSk7bz0obypjK3QuX3gxKnQuX2wyM18yYS1lKnQuX2wxMl8yYSkvdSxhPShhKmMrdC5feTEqdC5fbDIzXzJhLW4qdC5fbDEyXzJhKS91fXQuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhpLHIsbyxhLHQuX3gyLHQuX3kyKX1mdW5jdGlvbiBsUCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1lfWxQLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gyLHRoaXMuX3kyKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6c1AodGhpcyx0LGUpfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgY1A9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gZT9uZXcgbFAodCxlKTpuZXcgZVAodCwwKX1yZXR1cm4gbi5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSguNSk7ZnVuY3Rpb24gdVAodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9ZX11UC5wcm90b3R5cGU9e2FyZWFTdGFydDpxTCxhcmVhRW5kOnFMLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PWUpO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9ZTticmVhaztkZWZhdWx0OnNQKHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIGhQPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGU/bmV3IHVQKHQsZSk6bmV3IGlQKHQsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjUpO2Z1bmN0aW9uIGRQKHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9ZFAucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OnNQKHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIHBQPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGU/bmV3IGRQKHQsZSk6bmV3IG9QKHQsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjUpO2Z1bmN0aW9uIGZQKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBtUCh0KXtyZXR1cm4gdDwwPy0xOjF9ZnVuY3Rpb24gZ1AodCxlLG4pe3ZhciBpPXQuX3gxLXQuX3gwLHI9ZS10Ll94MSxvPSh0Ll95MS10Ll95MCkvKGl8fHI8MCYmLTApLGE9KG4tdC5feTEpLyhyfHxpPDAmJi0wKSxzPShvKnIrYSppKS8oaStyKTtyZXR1cm4obVAobykrbVAoYSkpKk1hdGgubWluKE1hdGguYWJzKG8pLE1hdGguYWJzKGEpLC41Kk1hdGguYWJzKHMpKXx8MH1mdW5jdGlvbiBfUCh0LGUpe3ZhciBuPXQuX3gxLXQuX3gwO3JldHVybiBuPygzKih0Ll95MS10Ll95MCkvbi1lKS8yOmV9ZnVuY3Rpb24geVAodCxlLG4pe3ZhciBpPXQuX3gwLHI9dC5feDEsbz10Ll95MSxhPShyLWkpLzM7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGkrYSx0Ll95MCthKmUsci1hLG8tYSpuLHIsbyl9ZnVuY3Rpb24gdlAodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIGJQKHQpe3RoaXMuX2NvbnRleHQ9bmV3IHhQKHQpfWZ1bmN0aW9uIHhQKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiB3UCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gU1AodCl7dmFyIGUsbixpPXQubGVuZ3RoLTEscj1uZXcgQXJyYXkoaSksbz1uZXcgQXJyYXkoaSksYT1uZXcgQXJyYXkoaSk7Zm9yKHJbMF09MCxvWzBdPTIsYVswXT10WzBdKzIqdFsxXSxlPTE7ZTxpLTE7KytlKXJbZV09MSxvW2VdPTQsYVtlXT00KnRbZV0rMip0W2UrMV07Zm9yKHJbaS0xXT0yLG9baS0xXT03LGFbaS0xXT04KnRbaS0xXSt0W2ldLGU9MTtlPGk7KytlKW9bZV0tPW49cltlXS9vW2UtMV0sYVtlXS09biphW2UtMV07Zm9yKHJbaS0xXT1hW2ktMV0vb1tpLTFdLGU9aS0yO2U+PTA7LS1lKXJbZV09KGFbZV0tcltlKzFdKS9vW2VdO2ZvcihvW2ktMV09KHRbaV0rcltpLTFdKS8yLGU9MDtlPGktMTsrK2Upb1tlXT0yKnRbZSsxXS1yW2UrMV07cmV0dXJuW3Isb119ZnVuY3Rpb24gTVAodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fdD1lfWZ1bmN0aW9uIEVQKHQsZSl7aWYoKHI9dC5sZW5ndGgpPjEpZm9yKHZhciBuLGkscixvPTEsYT10W2VbMF1dLHM9YS5sZW5ndGg7bzxyOysrbylmb3IoaT1hLGE9dFtlW29dXSxuPTA7bjxzOysrbilhW25dWzFdKz1hW25dWzBdPWlzTmFOKGlbbl1bMV0pP2lbbl1bMF06aVtuXVsxXX1mdW5jdGlvbiBUUCh0KXtmb3IodmFyIGU9dC5sZW5ndGgsbj1uZXcgQXJyYXkoZSk7LS1lPj0wOyluW2VdPWU7cmV0dXJuIG59ZnVuY3Rpb24gQ1AodCxlKXtyZXR1cm4gdFtlXX1mdW5jdGlvbiBBUCh0KXt2YXIgZT10Lm1hcChrUCk7cmV0dXJuIFRQKHQpLnNvcnQoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGVbdF0tZVtuXX0pKX1mdW5jdGlvbiBrUCh0KXtmb3IodmFyIGUsbj0tMSxpPTAscj10Lmxlbmd0aCxvPS0xLzA7KytuPHI7KShlPSt0W25dWzFdKT5vJiYobz1lLGk9bik7cmV0dXJuIGl9ZnVuY3Rpb24gTFAodCl7dmFyIGU9dC5tYXAoUFApO3JldHVybiBUUCh0KS5zb3J0KChmdW5jdGlvbih0LG4pe3JldHVybiBlW3RdLWVbbl19KSl9ZnVuY3Rpb24gUFAodCl7Zm9yKHZhciBlLG49MCxpPS0xLHI9dC5sZW5ndGg7KytpPHI7KShlPSt0W2ldWzFdKSYmKG4rPWUpO3JldHVybiBufWZ1bmN0aW9uIE5QKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBJUCh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBSUCh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBPUCgpe3RoaXMuXz1udWxsfWZ1bmN0aW9uIHpQKHQpe3QuVT10LkM9dC5MPXQuUj10LlA9dC5OPW51bGx9ZnVuY3Rpb24gRFAodCxlKXt2YXIgbj1lLGk9ZS5SLHI9bi5VO3I/ci5MPT09bj9yLkw9aTpyLlI9aTp0Ll89aSxpLlU9cixuLlU9aSxuLlI9aS5MLG4uUiYmKG4uUi5VPW4pLGkuTD1ufWZ1bmN0aW9uIEJQKHQsZSl7dmFyIG49ZSxpPWUuTCxyPW4uVTtyP3IuTD09PW4/ci5MPWk6ci5SPWk6dC5fPWksaS5VPXIsbi5VPWksbi5MPWkuUixuLkwmJihuLkwuVT1uKSxpLlI9bn1mdW5jdGlvbiBIUCh0KXtmb3IoO3QuTDspdD10Lkw7cmV0dXJuIHR9ZnVuY3Rpb24gRlAodCxlLG4saSl7dmFyIHI9W251bGwsbnVsbF0sbz11Ti5wdXNoKHIpLTE7cmV0dXJuIHIubGVmdD10LHIucmlnaHQ9ZSxuJiZVUChyLHQsZSxuKSxpJiZVUChyLGUsdCxpKSxsTlt0LmluZGV4XS5oYWxmZWRnZXMucHVzaChvKSxsTltlLmluZGV4XS5oYWxmZWRnZXMucHVzaChvKSxyfWZ1bmN0aW9uIFZQKHQsZSxuKXt2YXIgaT1bZSxuXTtyZXR1cm4gaS5sZWZ0PXQsaX1mdW5jdGlvbiBVUCh0LGUsbixpKXt0WzBdfHx0WzFdP3QubGVmdD09PW4/dFsxXT1pOnRbMF09aToodFswXT1pLHQubGVmdD1lLHQucmlnaHQ9bil9ZnVuY3Rpb24galAodCxlLG4saSxyKXt2YXIgbyxhPXRbMF0scz10WzFdLGw9YVswXSxjPWFbMV0sdT0wLGg9MSxkPXNbMF0tbCxwPXNbMV0tYztpZihvPWUtbCxkfHwhKG8+MCkpe2lmKG8vPWQsZDwwKXtpZihvPHUpcmV0dXJuO288aCYmKGg9byl9ZWxzZSBpZihkPjApe2lmKG8+aClyZXR1cm47bz51JiYodT1vKX1pZihvPWktbCxkfHwhKG88MCkpe2lmKG8vPWQsZDwwKXtpZihvPmgpcmV0dXJuO28+dSYmKHU9byl9ZWxzZSBpZihkPjApe2lmKG88dSlyZXR1cm47bzxoJiYoaD1vKX1pZihvPW4tYyxwfHwhKG8+MCkpe2lmKG8vPXAscDwwKXtpZihvPHUpcmV0dXJuO288aCYmKGg9byl9ZWxzZSBpZihwPjApe2lmKG8+aClyZXR1cm47bz51JiYodT1vKX1pZihvPXItYyxwfHwhKG88MCkpe2lmKG8vPXAscDwwKXtpZihvPmgpcmV0dXJuO28+dSYmKHU9byl9ZWxzZSBpZihwPjApe2lmKG88dSlyZXR1cm47bzxoJiYoaD1vKX1yZXR1cm4hKHU+MHx8aDwxKXx8KHU+MCYmKHRbMF09W2wrdSpkLGMrdSpwXSksaDwxJiYodFsxXT1bbCtoKmQsYytoKnBdKSwhMCl9fX19fWZ1bmN0aW9uIEdQKHQsZSxuLGkscil7dmFyIG89dFsxXTtpZihvKXJldHVybiEwO3ZhciBhLHMsbD10WzBdLGM9dC5sZWZ0LHU9dC5yaWdodCxoPWNbMF0sZD1jWzFdLHA9dVswXSxmPXVbMV0sbT0oaCtwKS8yO2lmKGY9PT1kKXtpZihtPGV8fG0+PWkpcmV0dXJuO2lmKGg+cCl7aWYobCl7aWYobFsxXT49cilyZXR1cm59ZWxzZSBsPVttLG5dO289W20scl19ZWxzZXtpZihsKXtpZihsWzFdPG4pcmV0dXJufWVsc2UgbD1bbSxyXTtvPVttLG5dfX1lbHNlIGlmKHM9KGQrZikvMi0oYT0oaC1wKS8oZi1kKSkqbSxhPC0xfHxhPjEpaWYoaD5wKXtpZihsKXtpZihsWzFdPj1yKXJldHVybn1lbHNlIGw9WyhuLXMpL2Esbl07bz1bKHItcykvYSxyXX1lbHNle2lmKGwpe2lmKGxbMV08bilyZXR1cm59ZWxzZSBsPVsoci1zKS9hLHJdO289WyhuLXMpL2Esbl19ZWxzZSBpZihkPGYpe2lmKGwpe2lmKGxbMF0+PWkpcmV0dXJufWVsc2UgbD1bZSxhKmUrc107bz1baSxhKmkrc119ZWxzZXtpZihsKXtpZihsWzBdPGUpcmV0dXJufWVsc2UgbD1baSxhKmkrc107bz1bZSxhKmUrc119cmV0dXJuIHRbMF09bCx0WzFdPW8sITB9ZnVuY3Rpb24gV1AodCxlKXt2YXIgbj10LnNpdGUsaT1lLmxlZnQscj1lLnJpZ2h0O3JldHVybiBuPT09ciYmKHI9aSxpPW4pLHI/TWF0aC5hdGFuMihyWzFdLWlbMV0sclswXS1pWzBdKToobj09PWk/KGk9ZVsxXSxyPWVbMF0pOihpPWVbMF0scj1lWzFdKSxNYXRoLmF0YW4yKGlbMF0tclswXSxyWzFdLWlbMV0pKX1mdW5jdGlvbiBxUCh0LGUpe3JldHVybiBlWysoZS5sZWZ0IT09dC5zaXRlKV19ZnVuY3Rpb24gWVAodCxlKXtyZXR1cm4gZVsrKGUubGVmdD09PXQuc2l0ZSldfWZQLnByb3RvdHlwZT17YXJlYVN0YXJ0OnFMLGFyZWFFbmQ6cUwsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3Q9K3QsZT0rZSx0aGlzLl9wb2ludD90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOih0aGlzLl9wb2ludD0xLHRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSkpfX0sdlAucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5fdDA9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWs7Y2FzZSAzOnlQKHRoaXMsdGhpcy5fdDAsX1AodGhpcyx0aGlzLl90MCkpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt2YXIgbj1OYU47aWYoZT0rZSwodD0rdCkhPT10aGlzLl94MXx8ZSE9PXRoaXMuX3kxKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHlQKHRoaXMsX1AodGhpcyxuPWdQKHRoaXMsdCxlKSksbik7YnJlYWs7ZGVmYXVsdDp5UCh0aGlzLHRoaXMuX3QwLG49Z1AodGhpcyx0LGUpKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWUsdGhpcy5fdDA9bn19fSwoYlAucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodlAucHJvdG90eXBlKSkucG9pbnQ9ZnVuY3Rpb24odCxlKXt2UC5wcm90b3R5cGUucG9pbnQuY2FsbCh0aGlzLGUsdCl9LHhQLnByb3RvdHlwZT17bW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY29udGV4dC5tb3ZlVG8oZSx0KX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0sbGluZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY29udGV4dC5saW5lVG8oZSx0KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGUsdCxpLG4sbyxyKX19LHdQLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3gsZT10aGlzLl95LG49dC5sZW5ndGg7aWYobilpZih0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRbMF0sZVswXSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odFswXSxlWzBdKSwyPT09bil0aGlzLl9jb250ZXh0LmxpbmVUbyh0WzFdLGVbMV0pO2Vsc2UgZm9yKHZhciBpPVNQKHQpLHI9U1AoZSksbz0wLGE9MTthPG47KytvLCsrYSl0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oaVswXVtvXSxyWzBdW29dLGlbMV1bb10sclsxXVtvXSx0W2FdLGVbYV0pOyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PW4pJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lLHRoaXMuX3g9dGhpcy5feT1udWxsfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtlKX19LE1QLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9dGhpcy5feT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA8dGhpcy5fdCYmdGhpcy5fdDwxJiYyPT09dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsdGhpcy5feSksKHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU+PTAmJih0aGlzLl90PTEtdGhpcy5fdCx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDppZih0aGlzLl90PD0wKXRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsZSksdGhpcy5fY29udGV4dC5saW5lVG8odCxlKTtlbHNle3ZhciBuPXRoaXMuX3gqKDEtdGhpcy5fdCkrdCp0aGlzLl90O3RoaXMuX2NvbnRleHQubGluZVRvKG4sdGhpcy5feSksdGhpcy5fY29udGV4dC5saW5lVG8obixlKX19dGhpcy5feD10LHRoaXMuX3k9ZX19LE9QLnByb3RvdHlwZT17Y29uc3RydWN0b3I6T1AsaW5zZXJ0OmZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyO2lmKHQpe2lmKGUuUD10LGUuTj10Lk4sdC5OJiYodC5OLlA9ZSksdC5OPWUsdC5SKXtmb3IodD10LlI7dC5MOyl0PXQuTDt0Lkw9ZX1lbHNlIHQuUj1lO249dH1lbHNlIHRoaXMuXz8odD1IUCh0aGlzLl8pLGUuUD1udWxsLGUuTj10LHQuUD10Lkw9ZSxuPXQpOihlLlA9ZS5OPW51bGwsdGhpcy5fPWUsbj1udWxsKTtmb3IoZS5MPWUuUj1udWxsLGUuVT1uLGUuQz0hMCx0PWU7biYmbi5DOyluPT09KGk9bi5VKS5MPyhyPWkuUikmJnIuQz8obi5DPXIuQz0hMSxpLkM9ITAsdD1pKToodD09PW4uUiYmKERQKHRoaXMsbiksbj0odD1uKS5VKSxuLkM9ITEsaS5DPSEwLEJQKHRoaXMsaSkpOihyPWkuTCkmJnIuQz8obi5DPXIuQz0hMSxpLkM9ITAsdD1pKToodD09PW4uTCYmKEJQKHRoaXMsbiksbj0odD1uKS5VKSxuLkM9ITEsaS5DPSEwLERQKHRoaXMsaSkpLG49dC5VO3RoaXMuXy5DPSExfSxyZW1vdmU6ZnVuY3Rpb24odCl7dC5OJiYodC5OLlA9dC5QKSx0LlAmJih0LlAuTj10Lk4pLHQuTj10LlA9bnVsbDt2YXIgZSxuLGkscj10LlUsbz10LkwsYT10LlI7aWYobj1vP2E/SFAoYSk6bzphLHI/ci5MPT09dD9yLkw9bjpyLlI9bjp0aGlzLl89bixvJiZhPyhpPW4uQyxuLkM9dC5DLG4uTD1vLG8uVT1uLG4hPT1hPyhyPW4uVSxuLlU9dC5VLHIuTD10PW4uUixuLlI9YSxhLlU9bik6KG4uVT1yLHI9bix0PW4uUikpOihpPXQuQyx0PW4pLHQmJih0LlU9ciksIWkpaWYodCYmdC5DKXQuQz0hMTtlbHNle2Rve2lmKHQ9PT10aGlzLl8pYnJlYWs7aWYodD09PXIuTCl7aWYoKGU9ci5SKS5DJiYoZS5DPSExLHIuQz0hMCxEUCh0aGlzLHIpLGU9ci5SKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLlImJmUuUi5DfHwoZS5MLkM9ITEsZS5DPSEwLEJQKHRoaXMsZSksZT1yLlIpLGUuQz1yLkMsci5DPWUuUi5DPSExLERQKHRoaXMsciksdD10aGlzLl87YnJlYWt9fWVsc2UgaWYoKGU9ci5MKS5DJiYoZS5DPSExLHIuQz0hMCxCUCh0aGlzLHIpLGU9ci5MKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLkwmJmUuTC5DfHwoZS5SLkM9ITEsZS5DPSEwLERQKHRoaXMsZSksZT1yLkwpLGUuQz1yLkMsci5DPWUuTC5DPSExLEJQKHRoaXMsciksdD10aGlzLl87YnJlYWt9ZS5DPSEwLHQ9cixyPXIuVX13aGlsZSghdC5DKTt0JiYodC5DPSExKX19fTt2YXIgWFAsJFA9W107ZnVuY3Rpb24gS1AoKXt6UCh0aGlzKSx0aGlzLng9dGhpcy55PXRoaXMuYXJjPXRoaXMuc2l0ZT10aGlzLmN5PW51bGx9ZnVuY3Rpb24gWlAodCl7dmFyIGU9dC5QLG49dC5OO2lmKGUmJm4pe3ZhciBpPWUuc2l0ZSxyPXQuc2l0ZSxvPW4uc2l0ZTtpZihpIT09byl7dmFyIGE9clswXSxzPXJbMV0sbD1pWzBdLWEsYz1pWzFdLXMsdT1vWzBdLWEsaD1vWzFdLXMsZD0yKihsKmgtYyp1KTtpZighKGQ+PS1kTikpe3ZhciBwPWwqbCtjKmMsZj11KnUraCpoLG09KGgqcC1jKmYpL2QsZz0obCpmLXUqcCkvZCxfPSRQLnBvcCgpfHxuZXcgS1A7Xy5hcmM9dCxfLnNpdGU9cixfLng9bSthLF8ueT0oXy5jeT1nK3MpK01hdGguc3FydChtKm0rZypnKSx0LmNpcmNsZT1fO2Zvcih2YXIgeT1udWxsLHY9Y04uXzt2OylpZihfLnk8di55fHxfLnk9PT12LnkmJl8ueDw9di54KXtpZighdi5MKXt5PXYuUDticmVha312PXYuTH1lbHNle2lmKCF2LlIpe3k9djticmVha312PXYuUn1jTi5pbnNlcnQoeSxfKSx5fHwoWFA9Xyl9fX19ZnVuY3Rpb24gSlAodCl7dmFyIGU9dC5jaXJjbGU7ZSYmKGUuUHx8KFhQPWUuTiksY04ucmVtb3ZlKGUpLCRQLnB1c2goZSkselAoZSksdC5jaXJjbGU9bnVsbCl9dmFyIFFQPVtdO2Z1bmN0aW9uIHROKCl7elAodGhpcyksdGhpcy5lZGdlPXRoaXMuc2l0ZT10aGlzLmNpcmNsZT1udWxsfWZ1bmN0aW9uIGVOKHQpe3ZhciBlPVFQLnBvcCgpfHxuZXcgdE47cmV0dXJuIGUuc2l0ZT10LGV9ZnVuY3Rpb24gbk4odCl7SlAodCksc04ucmVtb3ZlKHQpLFFQLnB1c2godCkselAodCl9ZnVuY3Rpb24gaU4odCl7dmFyIGU9dC5jaXJjbGUsbj1lLngsaT1lLmN5LHI9W24saV0sbz10LlAsYT10Lk4scz1bdF07bk4odCk7Zm9yKHZhciBsPW87bC5jaXJjbGUmJk1hdGguYWJzKG4tbC5jaXJjbGUueCk8aE4mJk1hdGguYWJzKGktbC5jaXJjbGUuY3kpPGhOOylvPWwuUCxzLnVuc2hpZnQobCksbk4obCksbD1vO3MudW5zaGlmdChsKSxKUChsKTtmb3IodmFyIGM9YTtjLmNpcmNsZSYmTWF0aC5hYnMobi1jLmNpcmNsZS54KTxoTiYmTWF0aC5hYnMoaS1jLmNpcmNsZS5jeSk8aE47KWE9Yy5OLHMucHVzaChjKSxuTihjKSxjPWE7cy5wdXNoKGMpLEpQKGMpO3ZhciB1LGg9cy5sZW5ndGg7Zm9yKHU9MTt1PGg7Kyt1KVVQKChjPXNbdV0pLmVkZ2UsKGw9c1t1LTFdKS5zaXRlLGMuc2l0ZSxyKTsoYz1zW2gtMV0pLmVkZ2U9RlAoKGw9c1swXSkuc2l0ZSxjLnNpdGUsbnVsbCxyKSxaUChsKSxaUChjKX1mdW5jdGlvbiByTih0KXtmb3IodmFyIGUsbixpLHIsbz10WzBdLGE9dFsxXSxzPXNOLl87czspaWYoKGk9b04ocyxhKS1vKT5oTilzPXMuTDtlbHNle2lmKCEoKHI9by1hTihzLGEpKT5oTikpe2k+LWhOPyhlPXMuUCxuPXMpOnI+LWhOPyhlPXMsbj1zLk4pOmU9bj1zO2JyZWFrfWlmKCFzLlIpe2U9czticmVha31zPXMuUn0hKGZ1bmN0aW9uIGwodCl7bE5bdC5pbmRleF09e3NpdGU6dCxoYWxmZWRnZXM6W119fSkodCk7dmFyIGM9ZU4odCk7aWYoc04uaW5zZXJ0KGUsYyksZXx8bil7aWYoZT09PW4pcmV0dXJuIEpQKGUpLG49ZU4oZS5zaXRlKSxzTi5pbnNlcnQoYyxuKSxjLmVkZ2U9bi5lZGdlPUZQKGUuc2l0ZSxjLnNpdGUpLFpQKGUpLHZvaWQgWlAobik7aWYobil7SlAoZSksSlAobik7dmFyIHU9ZS5zaXRlLGg9dVswXSxkPXVbMV0scD10WzBdLWgsZj10WzFdLWQsbT1uLnNpdGUsZz1tWzBdLWgsXz1tWzFdLWQseT0yKihwKl8tZipnKSx2PXAqcCtmKmYsYj1nKmcrXypfLHg9WyhfKnYtZipiKS95K2gsKHAqYi1nKnYpL3krZF07VVAobi5lZGdlLHUsbSx4KSxjLmVkZ2U9RlAodSx0LG51bGwseCksbi5lZGdlPUZQKHQsbSxudWxsLHgpLFpQKGUpLFpQKG4pfWVsc2UgYy5lZGdlPUZQKGUuc2l0ZSxjLnNpdGUpfX1mdW5jdGlvbiBvTih0LGUpe3ZhciBuPXQuc2l0ZSxpPW5bMF0scj1uWzFdLG89ci1lO2lmKCFvKXJldHVybiBpO3ZhciBhPXQuUDtpZighYSlyZXR1cm4tMS8wO3ZhciBzPShuPWEuc2l0ZSlbMF0sbD1uWzFdLGM9bC1lO2lmKCFjKXJldHVybiBzO3ZhciB1PXMtaSxoPTEvby0xL2MsZD11L2M7cmV0dXJuIGg/KC1kK01hdGguc3FydChkKmQtMipoKih1KnUvKC0yKmMpLWwrYy8yK3Itby8yKSkpL2graTooaStzKS8yfWZ1bmN0aW9uIGFOKHQsZSl7dmFyIG49dC5OO2lmKG4pcmV0dXJuIG9OKG4sZSk7dmFyIGk9dC5zaXRlO3JldHVybiBpWzFdPT09ZT9pWzBdOjEvMH12YXIgc04sbE4sY04sdU4saE49MWUtNixkTj0xZS0xMjtmdW5jdGlvbiBwTih0LGUsbil7cmV0dXJuKHRbMF0tblswXSkqKGVbMV0tdFsxXSktKHRbMF0tZVswXSkqKG5bMV0tdFsxXSl9ZnVuY3Rpb24gZk4odCxlKXtyZXR1cm4gZVsxXS10WzFdfHxlWzBdLXRbMF19ZnVuY3Rpb24gbU4odCxlKXt2YXIgbixpLHIsbz10LnNvcnQoZk4pLnBvcCgpO2Zvcih1Tj1bXSxsTj1uZXcgQXJyYXkodC5sZW5ndGgpLHNOPW5ldyBPUCxjTj1uZXcgT1A7OylpZihyPVhQLG8mJighcnx8b1sxXTxyLnl8fG9bMV09PT1yLnkmJm9bMF08ci54KSlvWzBdPT09biYmb1sxXT09PWl8fChyTihvKSxuPW9bMF0saT1vWzFdKSxvPXQucG9wKCk7ZWxzZXtpZighcilicmVhaztpTihyLmFyYyl9aWYoKGZ1bmN0aW9uIGEoKXtmb3IodmFyIHQsZSxuLGkscj0wLG89bE4ubGVuZ3RoO3I8bzsrK3IpaWYoKHQ9bE5bcl0pJiYoaT0oZT10LmhhbGZlZGdlcykubGVuZ3RoKSl7dmFyIGE9bmV3IEFycmF5KGkpLHM9bmV3IEFycmF5KGkpO2ZvcihuPTA7bjxpOysrbilhW25dPW4sc1tuXT1XUCh0LHVOW2Vbbl1dKTtmb3IoYS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBzW2VdLXNbdF19KSksbj0wO248aTsrK24pc1tuXT1lW2Fbbl1dO2ZvcihuPTA7bjxpOysrbillW25dPXNbbl19fSkoKSxlKXt2YXIgcz0rZVswXVswXSxsPStlWzBdWzFdLGM9K2VbMV1bMF0sdT0rZVsxXVsxXTshKGZ1bmN0aW9uIGgodCxlLG4saSl7Zm9yKHZhciByLG89dU4ubGVuZ3RoO28tLTspR1Aocj11TltvXSx0LGUsbixpKSYmalAocix0LGUsbixpKSYmKE1hdGguYWJzKHJbMF1bMF0tclsxXVswXSk+aE58fE1hdGguYWJzKHJbMF1bMV0tclsxXVsxXSk+aE4pfHxkZWxldGUgdU5bb119KShzLGwsYyx1KSwoZnVuY3Rpb24gZCh0LGUsbixpKXt2YXIgcixvLGEscyxsLGMsdSxoLGQscCxmLG0sZz1sTi5sZW5ndGgsXz0hMDtmb3Iocj0wO3I8ZzsrK3IpaWYobz1sTltyXSl7Zm9yKGE9by5zaXRlLHM9KGw9by5oYWxmZWRnZXMpLmxlbmd0aDtzLS07KXVOW2xbc11dfHxsLnNwbGljZShzLDEpO2ZvcihzPTAsYz1sLmxlbmd0aDtzPGM7KWY9KHA9WVAobyx1TltsW3NdXSkpWzBdLG09cFsxXSxoPSh1PXFQKG8sdU5bbFsrK3MlY11dKSlbMF0sZD11WzFdLChNYXRoLmFicyhmLWgpPmhOfHxNYXRoLmFicyhtLWQpPmhOKSYmKGwuc3BsaWNlKHMsMCx1Ti5wdXNoKFZQKGEscCxNYXRoLmFicyhmLXQpPGhOJiZpLW0+aE4/W3QsTWF0aC5hYnMoaC10KTxoTj9kOmldOk1hdGguYWJzKG0taSk8aE4mJm4tZj5oTj9bTWF0aC5hYnMoZC1pKTxoTj9oOm4saV06TWF0aC5hYnMoZi1uKTxoTiYmbS1lPmhOP1tuLE1hdGguYWJzKGgtbik8aE4/ZDplXTpNYXRoLmFicyhtLWUpPGhOJiZmLXQ+aE4/W01hdGguYWJzKGQtZSk8aE4/aDp0LGVdOm51bGwpKS0xKSwrK2MpO2MmJihfPSExKX1pZihfKXt2YXIgeSx2LGIseD0xLzA7Zm9yKHI9MCxfPW51bGw7cjxnOysrcikobz1sTltyXSkmJihiPSh5PShhPW8uc2l0ZSlbMF0tdCkqeSsodj1hWzFdLWUpKnYpPHgmJih4PWIsXz1vKTtpZihfKXt2YXIgdz1bdCxlXSxTPVt0LGldLE09W24saV0sRT1bbixlXTtfLmhhbGZlZGdlcy5wdXNoKHVOLnB1c2goVlAoYT1fLnNpdGUsdyxTKSktMSx1Ti5wdXNoKFZQKGEsUyxNKSktMSx1Ti5wdXNoKFZQKGEsTSxFKSktMSx1Ti5wdXNoKFZQKGEsRSx3KSktMSl9fWZvcihyPTA7cjxnOysrcikobz1sTltyXSkmJihvLmhhbGZlZGdlcy5sZW5ndGh8fGRlbGV0ZSBsTltyXSl9KShzLGwsYyx1KX10aGlzLmVkZ2VzPXVOLHRoaXMuY2VsbHM9bE4sc049Y049dU49bE49bnVsbH1mdW5jdGlvbiBnTih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gX04odCxlLG4pe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPWUsdGhpcy50cmFuc2Zvcm09bn1mdW5jdGlvbiB5Tih0LGUsbil7dGhpcy5rPXQsdGhpcy54PWUsdGhpcy55PW59bU4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjptTixwb2x5Z29uczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWRnZXM7cmV0dXJuIHRoaXMuY2VsbHMubWFwKChmdW5jdGlvbihlKXt2YXIgbj1lLmhhbGZlZGdlcy5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBxUChlLHRbbl0pfSkpO3JldHVybiBuLmRhdGE9ZS5zaXRlLmRhdGEsbn0pKX0sdHJpYW5nbGVzOmZ1bmN0aW9uKCl7dmFyIHQ9W10sZT10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLmZvckVhY2goKGZ1bmN0aW9uKG4saSl7aWYobz0ocj1uLmhhbGZlZGdlcykubGVuZ3RoKWZvcih2YXIgcixvLGEscz1uLnNpdGUsbD0tMSxjPWVbcltvLTFdXSx1PWMubGVmdD09PXM/Yy5yaWdodDpjLmxlZnQ7KytsPG87KWE9dSx1PShjPWVbcltsXV0pLmxlZnQ9PT1zP2MucmlnaHQ6Yy5sZWZ0LGEmJnUmJmk8YS5pbmRleCYmaTx1LmluZGV4JiZwTihzLGEsdSk8MCYmdC5wdXNoKFtzLmRhdGEsYS5kYXRhLHUuZGF0YV0pfSkpLHR9LGxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZXMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yaWdodH0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntzb3VyY2U6dC5sZWZ0LmRhdGEsdGFyZ2V0OnQucmlnaHQuZGF0YX19KSl9LGZpbmQ6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaSxyLG89dGhpcyxhPW8uX2ZvdW5kfHwwLHM9by5jZWxscy5sZW5ndGg7IShyPW8uY2VsbHNbYV0pOylpZigrK2E+PXMpcmV0dXJuIG51bGw7dmFyIGw9dC1yLnNpdGVbMF0sYz1lLXIuc2l0ZVsxXSx1PWwqbCtjKmM7ZG97cj1vLmNlbGxzW2k9YV0sYT1udWxsLHIuaGFsZmVkZ2VzLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpPW8uZWRnZXNbbl0scz1pLmxlZnQ7aWYocyE9PXIuc2l0ZSYmc3x8KHM9aS5yaWdodCkpe3ZhciBsPXQtc1swXSxjPWUtc1sxXSxoPWwqbCtjKmM7aDx1JiYodT1oLGE9cy5pbmRleCl9fSkpfXdoaWxlKG51bGwhPT1hKTtyZXR1cm4gby5fZm91bmQ9aSxudWxsPT1ufHx1PD1uKm4/ci5zaXRlOm51bGx9fSx5Ti5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnlOLHNjYWxlOmZ1bmN0aW9uKHQpe3JldHVybiAxPT09dD90aGlzOm5ldyB5Tih0aGlzLmsqdCx0aGlzLngsdGhpcy55KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDA9PT10JjA9PT1lP3RoaXM6bmV3IHlOKHRoaXMuayx0aGlzLngrdGhpcy5rKnQsdGhpcy55K3RoaXMuayplKX0sYXBwbHk6ZnVuY3Rpb24odCl7cmV0dXJuW3RbMF0qdGhpcy5rK3RoaXMueCx0WzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24odCl7cmV0dXJuIHQqdGhpcy5rK3RoaXMueH0sYXBwbHlZOmZ1bmN0aW9uKHQpe3JldHVybiB0KnRoaXMuayt0aGlzLnl9LGludmVydDpmdW5jdGlvbih0KXtyZXR1cm5bKHRbMF0tdGhpcy54KS90aGlzLmssKHRbMV0tdGhpcy55KS90aGlzLmtdfSxpbnZlcnRYOmZ1bmN0aW9uKHQpe3JldHVybih0LXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKHQpe3JldHVybih0LXRoaXMueSkvdGhpcy5rfSxyZXNjYWxlWDpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KCkuZG9tYWluKHQucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRYLHRoaXMpLm1hcCh0LmludmVydCx0KSl9LHJlc2NhbGVZOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoKS5kb21haW4odC5yYW5nZSgpLm1hcCh0aGlzLmludmVydFksdGhpcykubWFwKHQuaW52ZXJ0LHQpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy54KyIsIit0aGlzLnkrIikgc2NhbGUoIit0aGlzLmsrIikifX07dmFyIHZOPW5ldyB5TigxLDAsMCk7ZnVuY3Rpb24gYk4odCl7Zm9yKDshdC5fX3pvb207KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybiB2TjtyZXR1cm4gdC5fX3pvb219ZnVuY3Rpb24geE4oKXt1dS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiB3Tigpe3V1LnByZXZlbnREZWZhdWx0KCksdXUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gU04oKXtyZXR1cm4hdXUuY3RybEtleSYmIXV1LmJ1dHRvbn1mdW5jdGlvbiBNTigpe3ZhciB0PXRoaXM7cmV0dXJuIHQgaW5zdGFuY2VvZiBTVkdFbGVtZW50Pyh0PXQub3duZXJTVkdFbGVtZW50fHx0KS5oYXNBdHRyaWJ1dGUoInZpZXdCb3giKT9bWyh0PXQudmlld0JveC5iYXNlVmFsKS54LHQueV0sW3QueCt0LndpZHRoLHQueSt0LmhlaWdodF1dOltbMCwwXSxbdC53aWR0aC5iYXNlVmFsLnZhbHVlLHQuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXTpbWzAsMF0sW3QuY2xpZW50V2lkdGgsdC5jbGllbnRIZWlnaHRdXX1mdW5jdGlvbiBFTigpe3JldHVybiB0aGlzLl9fem9vbXx8dk59ZnVuY3Rpb24gVE4oKXtyZXR1cm4tdXUuZGVsdGFZKigxPT09dXUuZGVsdGFNb2RlPy4wNTp1dS5kZWx0YU1vZGU/MTouMDAyKX1mdW5jdGlvbiBDTigpe3JldHVybiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHN8fCJvbnRvdWNoc3RhcnQiaW4gdGhpc31mdW5jdGlvbiBBTih0LGUsbil7dmFyIGk9dC5pbnZlcnRYKGVbMF1bMF0pLW5bMF1bMF0scj10LmludmVydFgoZVsxXVswXSktblsxXVswXSxvPXQuaW52ZXJ0WShlWzBdWzFdKS1uWzBdWzFdLGE9dC5pbnZlcnRZKGVbMV1bMV0pLW5bMV1bMV07cmV0dXJuIHQudHJhbnNsYXRlKHI+aT8oaStyKS8yOk1hdGgubWluKDAsaSl8fE1hdGgubWF4KDAsciksYT5vPyhvK2EpLzI6TWF0aC5taW4oMCxvKXx8TWF0aC5tYXgoMCxhKSl9ZnVuY3Rpb24ga04oKXt2YXIgdCxlLG49U04saT1NTixyPUFOLG89VE4sYT1DTixzPVswLDEvMF0sbD1bWy0xLzAsLTEvMF0sWzEvMCwxLzBdXSxjPTI1MCx1PW9wLGg9bGMoInN0YXJ0Iiwiem9vbSIsImVuZCIpLGQ9NTAwLHA9MDtmdW5jdGlvbiBmKHQpe3QucHJvcGVydHkoIl9fem9vbSIsRU4pLm9uKCJ3aGVlbC56b29tIix4KS5vbigibW91c2Vkb3duLnpvb20iLHcpLm9uKCJkYmxjbGljay56b29tIixTKS5maWx0ZXIoYSkub24oInRvdWNoc3RhcnQuem9vbSIsTSkub24oInRvdWNobW92ZS56b29tIixFKS5vbigidG91Y2hlbmQuem9vbSB0b3VjaGNhbmNlbC56b29tIixUKS5zdHlsZSgidG91Y2gtYWN0aW9uIiwibm9uZSIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIil9ZnVuY3Rpb24gbSh0LGUpe3JldHVybihlPU1hdGgubWF4KHNbMF0sTWF0aC5taW4oc1sxXSxlKSkpPT09dC5rP3Q6bmV3IHlOKGUsdC54LHQueSl9ZnVuY3Rpb24gZyh0LGUsbil7dmFyIGk9ZVswXS1uWzBdKnQuayxyPWVbMV0tblsxXSp0Lms7cmV0dXJuIGk9PT10LngmJnI9PT10Lnk/dDpuZXcgeU4odC5rLGkscil9ZnVuY3Rpb24gXyh0KXtyZXR1cm5bKCt0WzBdWzBdKyArdFsxXVswXSkvMiwoK3RbMF1bMV0rICt0WzFdWzFdKS8yXX1mdW5jdGlvbiB5KHQsZSxuKXt0Lm9uKCJzdGFydC56b29tIiwoZnVuY3Rpb24oKXt2KHRoaXMsYXJndW1lbnRzKS5zdGFydCgpfSkpLm9uKCJpbnRlcnJ1cHQuem9vbSBlbmQuem9vbSIsKGZ1bmN0aW9uKCl7dih0aGlzLGFyZ3VtZW50cykuZW5kKCl9KSkudHdlZW4oInpvb20iLChmdW5jdGlvbigpe3ZhciB0PXRoaXMscj1hcmd1bWVudHMsbz12KHQsciksYT1pLmFwcGx5KHQscikscz1udWxsPT1uP18oYSk6ImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseSh0LHIpOm4sbD1NYXRoLm1heChhWzFdWzBdLWFbMF1bMF0sYVsxXVsxXS1hWzBdWzFdKSxjPXQuX196b29tLGg9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0LHIpOmUsZD11KGMuaW52ZXJ0KHMpLmNvbmNhdChsL2MuayksaC5pbnZlcnQocykuY29uY2F0KGwvaC5rKSk7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDE9PT10KXQ9aDtlbHNle3ZhciBlPWQodCksbj1sL2VbMl07dD1uZXcgeU4obixzWzBdLWVbMF0qbixzWzFdLWVbMV0qbil9by56b29tKG51bGwsdCl9fSkpfWZ1bmN0aW9uIHYodCxlLG4pe3JldHVybiFuJiZ0Ll9fem9vbWluZ3x8bmV3IGIodCxlKX1mdW5jdGlvbiBiKHQsZSl7dGhpcy50aGF0PXQsdGhpcy5hcmdzPWUsdGhpcy5hY3RpdmU9MCx0aGlzLmV4dGVudD1pLmFwcGx5KHQsZSksdGhpcy50YXBzPTB9ZnVuY3Rpb24geCgpe2lmKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdD12KHRoaXMsYXJndW1lbnRzKSxlPXRoaXMuX196b29tLGk9TWF0aC5tYXgoc1swXSxNYXRoLm1pbihzWzFdLGUuaypNYXRoLnBvdygyLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKSkpLGE9YWgodGhpcyk7aWYodC53aGVlbCl0Lm1vdXNlWzBdWzBdPT09YVswXSYmdC5tb3VzZVswXVsxXT09PWFbMV18fCh0Lm1vdXNlWzFdPWUuaW52ZXJ0KHQubW91c2VbMF09YSkpLGNsZWFyVGltZW91dCh0LndoZWVsKTtlbHNle2lmKGUuaz09PWkpcmV0dXJuO3QubW91c2U9W2EsZS5pbnZlcnQoYSldLFZwKHRoaXMpLHQuc3RhcnQoKX13TigpLHQud2hlZWw9c2V0VGltZW91dChjLDE1MCksdC56b29tKCJtb3VzZSIscihnKG0oZSxpKSx0Lm1vdXNlWzBdLHQubW91c2VbMV0pLHQuZXh0ZW50LGwpKX1mdW5jdGlvbiBjKCl7dC53aGVlbD1udWxsLHQuZW5kKCl9fWZ1bmN0aW9uIHcoKXtpZighZSYmbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0PXYodGhpcyxhcmd1bWVudHMsITApLGk9U3UodXUudmlldykub24oIm1vdXNlbW92ZS56b29tIixjLCEwKS5vbigibW91c2V1cC56b29tIix1LCEwKSxvPWFoKHRoaXMpLGE9dXUuY2xpZW50WCxzPXV1LmNsaWVudFk7aGgodXUudmlldykseE4oKSx0Lm1vdXNlPVtvLHRoaXMuX196b29tLmludmVydChvKV0sVnAodGhpcyksdC5zdGFydCgpfWZ1bmN0aW9uIGMoKXtpZih3TigpLCF0Lm1vdmVkKXt2YXIgZT11dS5jbGllbnRYLWEsbj11dS5jbGllbnRZLXM7dC5tb3ZlZD1lKmUrbipuPnB9dC56b29tKCJtb3VzZSIscihnKHQudGhhdC5fX3pvb20sdC5tb3VzZVswXT1haCh0LnRoYXQpLHQubW91c2VbMV0pLHQuZXh0ZW50LGwpKX1mdW5jdGlvbiB1KCl7aS5vbigibW91c2Vtb3ZlLnpvb20gbW91c2V1cC56b29tIixudWxsKSxkaCh1dS52aWV3LHQubW92ZWQpLHdOKCksdC5lbmQoKX19ZnVuY3Rpb24gUygpe2lmKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdD10aGlzLl9fem9vbSxlPWFoKHRoaXMpLG89dC5pbnZlcnQoZSksYT10LmsqKHV1LnNoaWZ0S2V5Py41OjIpLHM9cihnKG0odCxhKSxlLG8pLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpLGwpO3dOKCksYz4wP1N1KHRoaXMpLnRyYW5zaXRpb24oKS5kdXJhdGlvbihjKS5jYWxsKHkscyxlKTpTdSh0aGlzKS5jYWxsKGYudHJhbnNmb3JtLHMpfX1mdW5jdGlvbiBNKCl7aWYobi5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBlLGkscixvLGE9dXUudG91Y2hlcyxzPWEubGVuZ3RoLGw9dih0aGlzLGFyZ3VtZW50cyx1dS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg9PT1zKTtmb3IoeE4oKSxpPTA7aTxzOysraSlvPVtvPWxoKHRoaXMsYSwocj1hW2ldKS5pZGVudGlmaWVyKSx0aGlzLl9fem9vbS5pbnZlcnQobyksci5pZGVudGlmaWVyXSxsLnRvdWNoMD9sLnRvdWNoMXx8bC50b3VjaDBbMl09PT1vWzJdfHwobC50b3VjaDE9byxsLnRhcHM9MCk6KGwudG91Y2gwPW8sZT0hMCxsLnRhcHM9MSshIXQpO3QmJih0PWNsZWFyVGltZW91dCh0KSksZSYmKGwudGFwczwyJiYodD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Q9bnVsbH0pLGQpKSxWcCh0aGlzKSxsLnN0YXJ0KCkpfX1mdW5jdGlvbiBFKCl7aWYodGhpcy5fX3pvb21pbmcpe3ZhciBlLG4saSxvLGE9dih0aGlzLGFyZ3VtZW50cykscz11dS5jaGFuZ2VkVG91Y2hlcyxjPXMubGVuZ3RoO2Zvcih3TigpLHQmJih0PWNsZWFyVGltZW91dCh0KSksYS50YXBzPTAsZT0wO2U8YzsrK2UpaT1saCh0aGlzLHMsKG49c1tlXSkuaWRlbnRpZmllciksYS50b3VjaDAmJmEudG91Y2gwWzJdPT09bi5pZGVudGlmaWVyP2EudG91Y2gwWzBdPWk6YS50b3VjaDEmJmEudG91Y2gxWzJdPT09bi5pZGVudGlmaWVyJiYoYS50b3VjaDFbMF09aSk7aWYobj1hLnRoYXQuX196b29tLGEudG91Y2gxKXt2YXIgdT1hLnRvdWNoMFswXSxoPWEudG91Y2gwWzFdLGQ9YS50b3VjaDFbMF0scD1hLnRvdWNoMVsxXSxmPShmPWRbMF0tdVswXSkqZisoZj1kWzFdLXVbMV0pKmYsXz0oXz1wWzBdLWhbMF0pKl8rKF89cFsxXS1oWzFdKSpfO249bShuLE1hdGguc3FydChmL18pKSxpPVsodVswXStkWzBdKS8yLCh1WzFdK2RbMV0pLzJdLG89WyhoWzBdK3BbMF0pLzIsKGhbMV0rcFsxXSkvMl19ZWxzZXtpZighYS50b3VjaDApcmV0dXJuO2k9YS50b3VjaDBbMF0sbz1hLnRvdWNoMFsxXX1hLnpvb20oInRvdWNoIixyKGcobixpLG8pLGEuZXh0ZW50LGwpKX19ZnVuY3Rpb24gVCgpe2lmKHRoaXMuX196b29taW5nKXt2YXIgdCxuLGk9dih0aGlzLGFyZ3VtZW50cykscj11dS5jaGFuZ2VkVG91Y2hlcyxvPXIubGVuZ3RoO2Zvcih4TigpLGUmJmNsZWFyVGltZW91dChlKSxlPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZT1udWxsfSksZCksdD0wO3Q8bzsrK3Qpbj1yW3RdLGkudG91Y2gwJiZpLnRvdWNoMFsyXT09PW4uaWRlbnRpZmllcj9kZWxldGUgaS50b3VjaDA6aS50b3VjaDEmJmkudG91Y2gxWzJdPT09bi5pZGVudGlmaWVyJiZkZWxldGUgaS50b3VjaDE7aWYoaS50b3VjaDEmJiFpLnRvdWNoMCYmKGkudG91Y2gwPWkudG91Y2gxLGRlbGV0ZSBpLnRvdWNoMSksaS50b3VjaDApaS50b3VjaDBbMV09dGhpcy5fX3pvb20uaW52ZXJ0KGkudG91Y2gwWzBdKTtlbHNlIGlmKGkuZW5kKCksMj09PWkudGFwcyl7dmFyIGE9U3UodGhpcykub24oImRibGNsaWNrLnpvb20iKTthJiZhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fXJldHVybiBmLnRyYW5zZm9ybT1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5zZWxlY3Rpb24/dC5zZWxlY3Rpb24oKTp0O2kucHJvcGVydHkoIl9fem9vbSIsRU4pLHQhPT1pP3kodCxlLG4pOmkuaW50ZXJydXB0KCkuZWFjaCgoZnVuY3Rpb24oKXt2KHRoaXMsYXJndW1lbnRzKS5zdGFydCgpLnpvb20obnVsbCwiZnVuY3Rpb24iPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplKS5lbmQoKX0pKX0sZi5zY2FsZUJ5PWZ1bmN0aW9uKHQsZSxuKXtmLnNjYWxlVG8odCwoZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9fem9vbS5rLG49ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZTtyZXR1cm4gdCpufSksbil9LGYuc2NhbGVUbz1mdW5jdGlvbih0LGUsbil7Zi50cmFuc2Zvcm0odCwoZnVuY3Rpb24oKXt2YXIgdD1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvPXRoaXMuX196b29tLGE9bnVsbD09bj9fKHQpOiJmdW5jdGlvbiI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOm4scz1vLmludmVydChhKSxjPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmU7cmV0dXJuIHIoZyhtKG8sYyksYSxzKSx0LGwpfSksbil9LGYudHJhbnNsYXRlQnk9ZnVuY3Rpb24odCxlLG4pe2YudHJhbnNmb3JtKHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcy5fX3pvb20udHJhbnNsYXRlKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUsImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6biksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbCl9KSl9LGYudHJhbnNsYXRlVG89ZnVuY3Rpb24odCxlLG4sbyl7Zi50cmFuc2Zvcm0odCwoZnVuY3Rpb24oKXt2YXIgdD1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxhPXRoaXMuX196b29tLHM9bnVsbD09bz9fKHQpOiJmdW5jdGlvbiI9PXR5cGVvZiBvP28uYXBwbHkodGhpcyxhcmd1bWVudHMpOm87cmV0dXJuIHIodk4udHJhbnNsYXRlKHNbMF0sc1sxXSkuc2NhbGUoYS5rKS50cmFuc2xhdGUoImZ1bmN0aW9uIj09dHlwZW9mIGU/LWUuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1lLCJmdW5jdGlvbiI9PXR5cGVvZiBuPy1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTotbiksdCxsKX0pLG8pfSxiLnByb3RvdHlwZT17c3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMudGhhdC5fX3pvb21pbmc9dGhpcyx0aGlzLmVtaXQoInN0YXJ0IikpLHRoaXN9LHpvb206ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5tb3VzZSYmIm1vdXNlIiE9PXQmJih0aGlzLm1vdXNlWzFdPWUuaW52ZXJ0KHRoaXMubW91c2VbMF0pKSx0aGlzLnRvdWNoMCYmInRvdWNoIiE9PXQmJih0aGlzLnRvdWNoMFsxXT1lLmludmVydCh0aGlzLnRvdWNoMFswXSkpLHRoaXMudG91Y2gxJiYidG91Y2giIT09dCYmKHRoaXMudG91Y2gxWzFdPWUuaW52ZXJ0KHRoaXMudG91Y2gxWzBdKSksdGhpcy50aGF0Ll9fem9vbT1lLHRoaXMuZW1pdCgiem9vbSIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoZGVsZXRlIHRoaXMudGhhdC5fX3pvb21pbmcsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXtndShuZXcgX04oZix0LHRoaXMudGhhdC5fX3pvb20pLGguYXBwbHksaCxbdCx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxmLndoZWVsRGVsdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpnTigrdCksZik6b30sZi5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpnTighIXQpLGYpOm59LGYudG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Z04oISF0KSxmKTphfSxmLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmdOKFtbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dKSxmKTppfSxmLnNjYWxlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzWzBdPSt0WzBdLHNbMV09K3RbMV0sZik6W3NbMF0sc1sxXV19LGYudHJhbnNsYXRlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsWzBdWzBdPSt0WzBdWzBdLGxbMV1bMF09K3RbMV1bMF0sbFswXVsxXT0rdFswXVsxXSxsWzFdWzFdPSt0WzFdWzFdLGYpOltbbFswXVswXSxsWzBdWzFdXSxbbFsxXVswXSxsWzFdWzFdXV19LGYuY29uc3RyYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsZik6cn0sZi5kdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0rdCxmKTpjfSxmLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PXQsZik6dX0sZi5vbj1mdW5jdGlvbigpe3ZhciB0PWgub24uYXBwbHkoaCxhcmd1bWVudHMpO3JldHVybiB0PT09aD9mOnR9LGYuY2xpY2tEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD0odD0rdCkqdCxmKTpNYXRoLnNxcnQocCl9LGZ9Yk4ucHJvdG90eXBlPXlOLnByb3RvdHlwZTt2YXIgTE49T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsdmVyc2lvbjoiNS43LjAiLGJpc2VjdDpTbCxiaXNlY3RSaWdodDpTbCxiaXNlY3RMZWZ0Ok1sLGFzY2VuZGluZzpibCxiaXNlY3Rvcjp4bCxjcm9zczpUbCxkZXNjZW5kaW5nOmZ1bmN0aW9uIFBOKHQsZSl7cmV0dXJuIGU8dD8tMTplPnQ/MTplPj10PzA6TmFOfSxkZXZpYXRpb246a2wsZXh0ZW50OkxsLGhpc3RvZ3JhbTpmdW5jdGlvbiBOTigpe3ZhciB0PU9sLGU9TGwsbj1qbDtmdW5jdGlvbiBpKGkpe3ZhciByLG8sYT1pLmxlbmd0aCxzPW5ldyBBcnJheShhKTtmb3Iocj0wO3I8YTsrK3Ipc1tyXT10KGlbcl0scixpKTt2YXIgbD1lKHMpLGM9bFswXSx1PWxbMV0saD1uKHMsYyx1KTtBcnJheS5pc0FycmF5KGgpfHwoaD1VbChjLHUsaCksaD16bChNYXRoLmNlaWwoYy9oKSpoLHUsaCkpO2Zvcih2YXIgZD1oLmxlbmd0aDtoWzBdPD1jOyloLnNoaWZ0KCksLS1kO2Zvcig7aFtkLTFdPnU7KWgucG9wKCksLS1kO3ZhciBwLGY9bmV3IEFycmF5KGQrMSk7Zm9yKHI9MDtyPD1kOysrcikocD1mW3JdPVtdKS54MD1yPjA/aFtyLTFdOmMscC54MT1yPGQ/aFtyXTp1O2ZvcihyPTA7cjxhOysrciljPD0obz1zW3JdKSYmbzw9dSYmZltTbChoLG8sMCxkKV0ucHVzaChpW3JdKTtyZXR1cm4gZn1yZXR1cm4gaS52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlJsKGUpLGkpOnR9LGkuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6UmwoW3RbMF0sdFsxXV0pLGkpOmV9LGkudGhyZXNob2xkcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkFycmF5LmlzQXJyYXkodCk/UmwoTmwuY2FsbCh0KSk6UmwodCksaSk6bn0saX0sdGhyZXNob2xkRnJlZWRtYW5EaWFjb25pczpmdW5jdGlvbiBJTih0LGUsbil7cmV0dXJuIHQ9SWwuY2FsbCh0LENsKS5zb3J0KGJsKSxNYXRoLmNlaWwoKG4tZSkvKDIqKEdsKHQsLjc1KS1HbCh0LC4yNSkpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHRocmVzaG9sZFNjb3R0OmZ1bmN0aW9uIFJOKHQsZSxuKXtyZXR1cm4gTWF0aC5jZWlsKChuLWUpLygzLjUqa2wodCkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdGhyZXNob2xkU3R1cmdlczpqbCxtYXg6V2wsbWVhbjpmdW5jdGlvbiBPTih0LGUpe3ZhciBuLGk9dC5sZW5ndGgscj1pLG89LTEsYT0wO2lmKG51bGw9PWUpZm9yKDsrK288aTspaXNOYU4obj1DbCh0W29dKSk/LS1yOmErPW47ZWxzZSBmb3IoOysrbzxpOylpc05hTihuPUNsKGUodFtvXSxvLHQpKSk/LS1yOmErPW47aWYocilyZXR1cm4gYS9yfSxtZWRpYW46ZnVuY3Rpb24gek4odCxlKXt2YXIgbixpPXQubGVuZ3RoLHI9LTEsbz1bXTtpZihudWxsPT1lKWZvcig7KytyPGk7KWlzTmFOKG49Q2wodFtyXSkpfHxvLnB1c2gobik7ZWxzZSBmb3IoOysrcjxpOylpc05hTihuPUNsKGUodFtyXSxyLHQpKSl8fG8ucHVzaChuKTtyZXR1cm4gR2woby5zb3J0KGJsKSwuNSl9LG1lcmdlOnFsLG1pbjpZbCxwYWlyczpmdW5jdGlvbiBETih0LGUpe251bGw9PWUmJihlPUVsKTtmb3IodmFyIG49MCxpPXQubGVuZ3RoLTEscj10WzBdLG89bmV3IEFycmF5KGk8MD8wOmkpO248aTspb1tuXT1lKHIscj10Wysrbl0pO3JldHVybiBvfSxwZXJtdXRlOmZ1bmN0aW9uIEJOKHQsZSl7Zm9yKHZhciBuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pO24tLTspaVtuXT10W2Vbbl1dO3JldHVybiBpfSxxdWFudGlsZTpHbCxyYW5nZTp6bCxzY2FuOmZ1bmN0aW9uIEhOKHQsZSl7aWYobj10Lmxlbmd0aCl7dmFyIG4saSxyPTAsbz0wLGE9dFtvXTtmb3IobnVsbD09ZSYmKGU9YmwpOysrcjxuOykoZShpPXRbcl0sYSk8MHx8MCE9PWUoYSxhKSkmJihhPWksbz1yKTtyZXR1cm4gMD09PWUoYSxhKT9vOnZvaWQgMH19LHNodWZmbGU6ZnVuY3Rpb24gRk4odCxlLG4pe2Zvcih2YXIgaSxyLG89KG51bGw9PW4/dC5sZW5ndGg6biktKGU9bnVsbD09ZT8wOitlKTtvOylyPU1hdGgucmFuZG9tKCkqby0tfDAsaT10W28rZV0sdFtvK2VdPXRbcitlXSx0W3IrZV09aTtyZXR1cm4gdH0sc3VtOmZ1bmN0aW9uIFZOKHQsZSl7dmFyIG4saT10Lmxlbmd0aCxyPS0xLG89MDtpZihudWxsPT1lKWZvcig7KytyPGk7KShuPSt0W3JdKSYmKG8rPW4pO2Vsc2UgZm9yKDsrK3I8aTspKG49K2UodFtyXSxyLHQpKSYmKG8rPW4pO3JldHVybiBvfSx0aWNrczpGbCx0aWNrSW5jcmVtZW50OlZsLHRpY2tTdGVwOlVsLHRyYW5zcG9zZTpYbCx2YXJpYW5jZTpBbCx6aXA6ZnVuY3Rpb24gVU4oKXtyZXR1cm4gWGwoYXJndW1lbnRzKX0sYXhpc1RvcDpmdW5jdGlvbiBqTih0KXtyZXR1cm4gcmMoMSx0KX0sYXhpc1JpZ2h0OmZ1bmN0aW9uIEdOKHQpe3JldHVybiByYygyLHQpfSxheGlzQm90dG9tOm9jLGF4aXNMZWZ0OmFjLGJydXNoOkptLGJydXNoWDpmdW5jdGlvbiBXTigpe3JldHVybiBRbSh6bSl9LGJydXNoWTpabSxicnVzaFNlbGVjdGlvbjpLbSxjaG9yZDpmdW5jdGlvbiBxTigpe3ZhciB0PTAsZT1udWxsLG49bnVsbCxpPW51bGw7ZnVuY3Rpb24gcihyKXt2YXIgbyxhLHMsbCxjLHUsaD1yLmxlbmd0aCxkPVtdLHA9emwoaCksZj1bXSxtPVtdLGc9bS5ncm91cHM9bmV3IEFycmF5KGgpLF89bmV3IEFycmF5KGgqaCk7Zm9yKG89MCxjPS0xOysrYzxoOyl7Zm9yKGE9MCx1PS0xOysrdTxoOylhKz1yW2NdW3VdO2QucHVzaChhKSxmLnB1c2goemwoaCkpLG8rPWF9Zm9yKGUmJnAuc29ydCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZShkW3RdLGRbbl0pfSkpLG4mJmYuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LnNvcnQoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIG4ocltlXVt0XSxyW2VdW2ldKX0pKX0pKSxsPShvPW9nKDAscmctdCpoKS9vKT90OnJnL2gsYT0wLGM9LTE7KytjPGg7KXtmb3Iocz1hLHU9LTE7Kyt1PGg7KXt2YXIgeT1wW2NdLHY9Zlt5XVt1XSxiPXJbeV1bdl0seD1hLHc9YSs9YipvO19bdipoK3ldPXtpbmRleDp5LHN1YmluZGV4OnYsc3RhcnRBbmdsZTp4LGVuZEFuZ2xlOncsdmFsdWU6Yn19Z1t5XT17aW5kZXg6eSxzdGFydEFuZ2xlOnMsZW5kQW5nbGU6YSx2YWx1ZTpkW3ldfSxhKz1sfWZvcihjPS0xOysrYzxoOylmb3IodT1jLTE7Kyt1PGg7KXt2YXIgUz1fW3UqaCtjXSxNPV9bYypoK3VdOyhTLnZhbHVlfHxNLnZhbHVlKSYmbS5wdXNoKFMudmFsdWU8TS52YWx1ZT97c291cmNlOk0sdGFyZ2V0OlN9Ontzb3VyY2U6Uyx0YXJnZXQ6TX0pfXJldHVybiBpP20uc29ydChpKTptfXJldHVybiByLnBhZEFuZ2xlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW9nKDAsZSkscik6dH0sci5zb3J0R3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQscik6ZX0sci5zb3J0U3ViZ3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQscik6bn0sci5zb3J0Q2hvcmRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P2k9bnVsbDooaT1hZyh0KSkuXz10LHIpOmkmJmkuX30scn0scmliYm9uOmZ1bmN0aW9uIFlOKCl7dmFyIHQ9bWcsZT1nZyxuPV9nLGk9eWcscj12ZyxvPW51bGw7ZnVuY3Rpb24gYSgpe3ZhciBhLHM9c2cuY2FsbChhcmd1bWVudHMpLGw9dC5hcHBseSh0aGlzLHMpLGM9ZS5hcHBseSh0aGlzLHMpLHU9K24uYXBwbHkodGhpcywoc1swXT1sLHMpKSxoPWkuYXBwbHkodGhpcyxzKS1pZyxkPXIuYXBwbHkodGhpcyxzKS1pZyxwPXUqdGcoaCksZj11KmVnKGgpLG09K24uYXBwbHkodGhpcywoc1swXT1jLHMpKSxnPWkuYXBwbHkodGhpcyxzKS1pZyxfPXIuYXBwbHkodGhpcyxzKS1pZztpZihvfHwobz1hPWZnKCkpLG8ubW92ZVRvKHAsZiksby5hcmMoMCwwLHUsaCxkKSxoPT09ZyYmZD09PV98fChvLnF1YWRyYXRpY0N1cnZlVG8oMCwwLG0qdGcoZyksbSplZyhnKSksby5hcmMoMCwwLG0sZyxfKSksby5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCxwLGYpLG8uY2xvc2VQYXRoKCksYSlyZXR1cm4gbz1udWxsLGErIiJ8fG51bGx9cmV0dXJuIGEucmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6bGcoK3QpLGEpOm59LGEuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmxnKCt0KSxhKTppfSxhLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6bGcoK3QpLGEpOnJ9LGEuc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsYSk6dH0sYS50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxhKTplfSxhLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bnVsbD09dD9udWxsOnQsYSk6b30sYX0sbmVzdDpmdW5jdGlvbiBYTigpe3ZhciB0LGUsbixpPVtdLHI9W107ZnVuY3Rpb24gbyhuLHIsYSxzKXtpZihyPj1pLmxlbmd0aClyZXR1cm4gbnVsbCE9dCYmbi5zb3J0KHQpLG51bGwhPWU/ZShuKTpuO2Zvcih2YXIgbCxjLHUsaD0tMSxkPW4ubGVuZ3RoLHA9aVtyKytdLGY9d2coKSxtPWEoKTsrK2g8ZDspKHU9Zi5nZXQobD1wKGM9bltoXSkrIiIpKT91LnB1c2goYyk6Zi5zZXQobCxbY10pO3JldHVybiBmLmVhY2goKGZ1bmN0aW9uKHQsZSl7cyhtLGUsbyh0LHIsYSxzKSl9KSksbX1mdW5jdGlvbiBhKHQsbil7aWYoKytuPmkubGVuZ3RoKXJldHVybiB0O3ZhciBvLHM9cltuLTFdO3JldHVybiBudWxsIT1lJiZuPj1pLmxlbmd0aD9vPXQuZW50cmllcygpOihvPVtdLHQuZWFjaCgoZnVuY3Rpb24odCxlKXtvLnB1c2goe2tleTplLHZhbHVlczphKHQsbil9KX0pKSksbnVsbCE9cz9vLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHModC5rZXksZS5rZXkpfSkpOm99cmV0dXJuIG49e29iamVjdDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0LDAsU2csTWcpfSxtYXA6ZnVuY3Rpb24odCl7cmV0dXJuIG8odCwwLEVnLFRnKX0sZW50cmllczpmdW5jdGlvbih0KXtyZXR1cm4gYShvKHQsMCxFZyxUZyksMCl9LGtleTpmdW5jdGlvbih0KXtyZXR1cm4gaS5wdXNoKHQpLG59LHNvcnRLZXlzOmZ1bmN0aW9uKHQpe3JldHVybiByW2kubGVuZ3RoLTFdPXQsbn0sc29ydFZhbHVlczpmdW5jdGlvbihlKXtyZXR1cm4gdD1lLG59LHJvbGx1cDpmdW5jdGlvbih0KXtyZXR1cm4gZT10LG59fX0sc2V0OmtnLG1hcDp3ZyxrZXlzOkxnLHZhbHVlczpmdW5jdGlvbiAkTih0KXt2YXIgZT1bXTtmb3IodmFyIG4gaW4gdCllLnB1c2godFtuXSk7cmV0dXJuIGV9LGVudHJpZXM6ZnVuY3Rpb24gS04odCl7dmFyIGU9W107Zm9yKHZhciBuIGluIHQpZS5wdXNoKHtrZXk6bix2YWx1ZTp0W25dfSk7cmV0dXJuIGV9LGNvbG9yOkJoLHJnYjpVaCxoc2w6JGgsbGFiOnNkLGhjbDpmZCxsY2g6ZnVuY3Rpb24gWk4odCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3BkKHQpOm5ldyBtZChuLGUsdCxudWxsPT1pPzE6aSl9LGdyYXk6ZnVuY3Rpb24gSk4odCxlKXtyZXR1cm4gbmV3IGxkKHQsMCwwLG51bGw9PWU/MTplKX0sY3ViZWhlbGl4OnhkLGNvbnRvdXJzOkhnLGNvbnRvdXJEZW5zaXR5OmZ1bmN0aW9uIFFOKCl7dmFyIHQ9VWcsZT1qZyxuPUdnLGk9OTYwLHI9NTAwLG89MjAsYT0yLHM9MypvLGw9aSsyKnM+PmEsYz1yKzIqcz4+YSx1PUlnKDIwKTtmdW5jdGlvbiBoKGkpe3ZhciByPW5ldyBGbG9hdDMyQXJyYXkobCpjKSxoPW5ldyBGbG9hdDMyQXJyYXkobCpjKTtpLmZvckVhY2goKGZ1bmN0aW9uKGksbyx1KXt2YXIgaD0rdChpLG8sdSkrcz4+YSxkPStlKGksbyx1KStzPj5hLHA9K24oaSxvLHUpO2g+PTAmJmg8bCYmZD49MCYmZDxjJiYocltoK2QqbF0rPXApfSkpLEZnKHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6cn0se3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpofSxvPj5hKSxWZyh7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOmh9LHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6cn0sbz4+YSksRmcoe3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpyfSx7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOmh9LG8+PmEpLFZnKHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6aH0se3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpyfSxvPj5hKSxGZyh7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOnJ9LHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6aH0sbz4+YSksVmcoe3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpofSx7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOnJ9LG8+PmEpO3ZhciBwPXUocik7aWYoIUFycmF5LmlzQXJyYXkocCkpe3ZhciBmPVdsKHIpO3A9VWwoMCxmLHApLChwPXpsKDAsTWF0aC5mbG9vcihmL3ApKnAscCkpLnNoaWZ0KCl9cmV0dXJuIEhnKCkudGhyZXNob2xkcyhwKS5zaXplKFtsLGNdKShyKS5tYXAoZCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gdC52YWx1ZSo9TWF0aC5wb3coMiwtMiphKSx0LmNvb3JkaW5hdGVzLmZvckVhY2gocCksdH1mdW5jdGlvbiBwKHQpe3QuZm9yRWFjaChmKX1mdW5jdGlvbiBmKHQpe3QuZm9yRWFjaChtKX1mdW5jdGlvbiBtKHQpe3RbMF09dFswXSpNYXRoLnBvdygyLGEpLXMsdFsxXT10WzFdKk1hdGgucG93KDIsYSktc31mdW5jdGlvbiBnKCl7cmV0dXJuIGw9aSsyKihzPTMqbyk+PmEsYz1yKzIqcz4+YSxofXJldHVybiBoLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpJZygrZSksaCk6dH0saC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SWcoK3QpLGgpOmV9LGgud2VpZ2h0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SWcoK3QpLGgpOm59LGguc2l6ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5baSxyXTt2YXIgZT1NYXRoLmNlaWwodFswXSksbj1NYXRoLmNlaWwodFsxXSk7aWYoIShlPj0wfHxlPj0wKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgc2l6ZSIpO3JldHVybiBpPWUscj1uLGcoKX0saC5jZWxsU2l6ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gMTw8YTtpZighKCh0PSt0KT49MSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNlbGwgc2l6ZSIpO3JldHVybiBhPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5MTjIpLGcoKX0saC50aHJlc2hvbGRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6QXJyYXkuaXNBcnJheSh0KT9JZyhQZy5jYWxsKHQpKTpJZyh0KSxoKTp1fSxoLmJhbmR3aWR0aD1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gTWF0aC5zcXJ0KG8qKG8rMSkpO2lmKCEoKHQ9K3QpPj0wKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgYmFuZHdpZHRoIik7cmV0dXJuIG89TWF0aC5yb3VuZCgoTWF0aC5zcXJ0KDQqdCp0KzEpLTEpLzIpLGcoKX0saH0sZGlzcGF0Y2g6bGMsZHJhZzp2aCxkcmFnRGlzYWJsZTpoaCxkcmFnRW5hYmxlOmRoLGRzdkZvcm1hdDpLZyxjc3ZQYXJzZTpKZyxjc3ZQYXJzZVJvd3M6UWcsY3N2Rm9ybWF0OnRfLGNzdkZvcm1hdEJvZHk6ZV8sY3N2Rm9ybWF0Um93czpuXyxjc3ZGb3JtYXRSb3c6aV8sY3N2Rm9ybWF0VmFsdWU6cl8sdHN2UGFyc2U6YV8sdHN2UGFyc2VSb3dzOnNfLHRzdkZvcm1hdDpsXyx0c3ZGb3JtYXRCb2R5OmNfLHRzdkZvcm1hdFJvd3M6dV8sdHN2Rm9ybWF0Um93OmhfLHRzdkZvcm1hdFZhbHVlOmRfLGF1dG9UeXBlOmZ1bmN0aW9uIHRJKHQpe2Zvcih2YXIgZSBpbiB0KXt2YXIgbixpLHI9dFtlXS50cmltKCk7aWYocilpZigidHJ1ZSI9PT1yKXI9ITA7ZWxzZSBpZigiZmFsc2UiPT09cilyPSExO2Vsc2UgaWYoIk5hTiI9PT1yKXI9TmFOO2Vsc2UgaWYoaXNOYU4obj0rcikpe2lmKCEoaT1yLm1hdGNoKC9eKFstK11cZHsyfSk/XGR7NH0oLVxkezJ9KC1cZHsyfSk/KT8oVFxkezJ9OlxkezJ9KDpcZHsyfShcLlxkezN9KT8pPyhafFstK11cZHsyfTpcZHsyfSk/KT8kLykpKWNvbnRpbnVlO3BfJiZpWzRdJiYhaVs3XSYmKHI9ci5yZXBsYWNlKC8tL2csIi8iKS5yZXBsYWNlKC9ULywiICIpKSxyPW5ldyBEYXRlKHIpfWVsc2Ugcj1uO2Vsc2Ugcj1udWxsO3RbZV09cn1yZXR1cm4gdH0sZWFzZUxpbmVhcjpiZixlYXNlUXVhZDpTZixlYXNlUXVhZEluOnhmLGVhc2VRdWFkT3V0OndmLGVhc2VRdWFkSW5PdXQ6U2YsZWFzZUN1YmljOlRmLGVhc2VDdWJpY0luOk1mLGVhc2VDdWJpY091dDpFZixlYXNlQ3ViaWNJbk91dDpUZixlYXNlUG9seTpYZixlYXNlUG9seUluOnFmLGVhc2VQb2x5T3V0OllmLGVhc2VQb2x5SW5PdXQ6WGYsZWFzZVNpbjpRZixlYXNlU2luSW46WmYsZWFzZVNpbk91dDpKZixlYXNlU2luSW5PdXQ6UWYsZWFzZUV4cDppbSxlYXNlRXhwSW46ZW0sZWFzZUV4cE91dDpubSxlYXNlRXhwSW5PdXQ6aW0sZWFzZUNpcmNsZTphbSxlYXNlQ2lyY2xlSW46cm0sZWFzZUNpcmNsZU91dDpvbSxlYXNlQ2lyY2xlSW5PdXQ6YW0sZWFzZUJvdW5jZTpjbSxlYXNlQm91bmNlSW46bG0sZWFzZUJvdW5jZU91dDpjbSxlYXNlQm91bmNlSW5PdXQ6dW0sZWFzZUJhY2s6Zm0sZWFzZUJhY2tJbjpkbSxlYXNlQmFja091dDpwbSxlYXNlQmFja0luT3V0OmZtLGVhc2VFbGFzdGljOl9tLGVhc2VFbGFzdGljSW46Z20sZWFzZUVsYXN0aWNPdXQ6X20sZWFzZUVsYXN0aWNJbk91dDp5bSxibG9iOmZ1bmN0aW9uIGVJKHQsZSl7cmV0dXJuIGZldGNoKHQsZSkudGhlbihmXyl9LGJ1ZmZlcjpmdW5jdGlvbiBuSSh0LGUpe3JldHVybiBmZXRjaCh0LGUpLnRoZW4obV8pfSxkc3Y6ZnVuY3Rpb24gaUkodCxlLG4saSl7Mz09PWFyZ3VtZW50cy5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoaT1uLG49dm9pZCAwKTt2YXIgcj1LZyh0KTtyZXR1cm4gX18oZSxuKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gci5wYXJzZSh0LGkpfSkpfSxjc3Y6dl8sdHN2OmJfLGltYWdlOmZ1bmN0aW9uIHJJKHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuLGkpe3ZhciByPW5ldyBJbWFnZTtmb3IodmFyIG8gaW4gZSlyW29dPWVbb107ci5vbmVycm9yPWksci5vbmxvYWQ9ZnVuY3Rpb24oKXtuKHIpfSxyLnNyYz10fSkpfSxqc29uOmZ1bmN0aW9uIG9JKHQsZSl7cmV0dXJuIGZldGNoKHQsZSkudGhlbih4Xyl9LHRleHQ6X18seG1sOlNfLGh0bWw6TV8sc3ZnOkVfLGZvcmNlQ2VudGVyOmZ1bmN0aW9uIGFJKHQsZSl7dmFyIG47ZnVuY3Rpb24gaSgpe3ZhciBpLHIsbz1uLmxlbmd0aCxhPTAscz0wO2ZvcihpPTA7aTxvOysraSlhKz0ocj1uW2ldKS54LHMrPXIueTtmb3IoYT1hL28tdCxzPXMvby1lLGk9MDtpPG87KytpKShyPW5baV0pLngtPWEsci55LT1zfXJldHVybiBudWxsPT10JiYodD0wKSxudWxsPT1lJiYoZT0wKSxpLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7bj10fSxpLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K2UsaSk6dH0saS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0LGkpOmV9LGl9LGZvcmNlQ29sbGlkZTpmdW5jdGlvbiBzSSh0KXt2YXIgZSxuLGk9MSxyPTE7ZnVuY3Rpb24gbygpe2Zvcih2YXIgdCxvLHMsbCxjLHUsaCxkPWUubGVuZ3RoLHA9MDtwPHI7KytwKWZvcihvPU5fKGUsel8sRF8pLnZpc2l0QWZ0ZXIoYSksdD0wO3Q8ZDsrK3QpaD0odT1uWyhzPWVbdF0pLmluZGV4XSkqdSxsPXMueCtzLnZ4LGM9cy55K3Mudnksby52aXNpdChmKTtmdW5jdGlvbiBmKHQsZSxuLHIsbyl7dmFyIGE9dC5kYXRhLGQ9dC5yLHA9dStkO2lmKCFhKXJldHVybiBlPmwrcHx8cjxsLXB8fG4+YytwfHxvPGMtcDtpZihhLmluZGV4PnMuaW5kZXgpe3ZhciBmPWwtYS54LWEudngsbT1jLWEueS1hLnZ5LGc9ZipmK20qbTtnPHAqcCYmKDA9PT1mJiYoZys9KGY9Q18oKSkqZiksMD09PW0mJihnKz0obT1DXygpKSptKSxnPShwLShnPU1hdGguc3FydChnKSkpL2cqaSxzLnZ4Kz0oZio9ZykqKHA9KGQqPWQpLyhoK2QpKSxzLnZ5Kz0obSo9ZykqcCxhLnZ4LT1mKihwPTEtcCksYS52eS09bSpwKX19fWZ1bmN0aW9uIGEodCl7aWYodC5kYXRhKXJldHVybiB0LnI9blt0LmRhdGEuaW5kZXhdO2Zvcih2YXIgZT10LnI9MDtlPDQ7KytlKXRbZV0mJnRbZV0ucj50LnImJih0LnI9dFtlXS5yKX1mdW5jdGlvbiBzKCl7aWYoZSl7dmFyIGkscixvPWUubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShvKSxpPTA7aTxvOysraSluWyhyPWVbaV0pLmluZGV4XT0rdChyLGksZSl9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1UXyhudWxsPT10PzE6K3QpKSxvLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7ZT10LHMoKX0sby5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LG8pOnJ9LG8uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3Qsbyk6aX0sby5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpUXygrZSkscygpLG8pOnR9LG99LGZvcmNlTGluazpmdW5jdGlvbiBsSSh0KXt2YXIgZSxuLGkscixvLGE9Ql8scz1mdW5jdGlvbiBsKHQpe3JldHVybiAxL01hdGgubWluKHJbdC5zb3VyY2UuaW5kZXhdLHJbdC50YXJnZXQuaW5kZXhdKX0sYz1UXygzMCksdT0xO2Z1bmN0aW9uIGgoaSl7Zm9yKHZhciByPTAsYT10Lmxlbmd0aDtyPHU7KytyKWZvcih2YXIgcyxsLGMsaCxkLHAsZixtPTA7bTxhOysrbSloPShjPShzPXRbbV0pLnRhcmdldCkueCtjLnZ4LShsPXMuc291cmNlKS54LWwudnh8fENfKCksZD1jLnkrYy52eS1sLnktbC52eXx8Q18oKSxkKj1wPSgocD1NYXRoLnNxcnQoaCpoK2QqZCkpLW5bbV0pL3AqaSplW21dLGMudngtPShoKj1wKSooZj1vW21dKSxjLnZ5LT1kKmYsbC52eCs9aCooZj0xLWYpLGwudnkrPWQqZn1mdW5jdGlvbiBkKCl7aWYoaSl7dmFyIHMsbCxjPWkubGVuZ3RoLHU9dC5sZW5ndGgsaD13ZyhpLGEpO2ZvcihzPTAscj1uZXcgQXJyYXkoYyk7czx1OysrcykobD10W3NdKS5pbmRleD1zLCJvYmplY3QiIT10eXBlb2YgbC5zb3VyY2UmJihsLnNvdXJjZT1IXyhoLGwuc291cmNlKSksIm9iamVjdCIhPXR5cGVvZiBsLnRhcmdldCYmKGwudGFyZ2V0PUhfKGgsbC50YXJnZXQpKSxyW2wuc291cmNlLmluZGV4XT0ocltsLnNvdXJjZS5pbmRleF18fDApKzEscltsLnRhcmdldC5pbmRleF09KHJbbC50YXJnZXQuaW5kZXhdfHwwKSsxO2ZvcihzPTAsbz1uZXcgQXJyYXkodSk7czx1OysrcylvW3NdPXJbKGw9dFtzXSkuc291cmNlLmluZGV4XS8ocltsLnNvdXJjZS5pbmRleF0rcltsLnRhcmdldC5pbmRleF0pO2U9bmV3IEFycmF5KHUpLHAoKSxuPW5ldyBBcnJheSh1KSxmKCl9fWZ1bmN0aW9uIHAoKXtpZihpKWZvcih2YXIgbj0wLHI9dC5sZW5ndGg7bjxyOysrbillW25dPStzKHRbbl0sbix0KX1mdW5jdGlvbiBmKCl7aWYoaSlmb3IodmFyIGU9MCxyPXQubGVuZ3RoO2U8cjsrK2UpbltlXT0rYyh0W2VdLGUsdCl9cmV0dXJuIG51bGw9PXQmJih0PVtdKSxoLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LGQoKX0saC5saW5rcz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLGQoKSxoKTp0fSxoLmlkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsaCk6YX0saC5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LGgpOnV9LGguc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpUXygrdCkscCgpLGgpOnN9LGguZGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpUXygrdCksZigpLGgpOmN9LGh9LGZvcmNlTWFueUJvZHk6ZnVuY3Rpb24gY0koKXt2YXIgdCxlLG4saSxyPVRfKC0zMCksbz0xLGE9MS8wLHM9LjgxO2Z1bmN0aW9uIGwoaSl7dmFyIHIsbz10Lmxlbmd0aCxhPU5fKHQsRl8sVl8pLnZpc2l0QWZ0ZXIodSk7Zm9yKG49aSxyPTA7cjxvOysrcillPXRbcl0sYS52aXNpdChoKX1mdW5jdGlvbiBjKCl7aWYodCl7dmFyIGUsbixvPXQubGVuZ3RoO2ZvcihpPW5ldyBBcnJheShvKSxlPTA7ZTxvOysrZSlpWyhuPXRbZV0pLmluZGV4XT0rcihuLGUsdCl9fWZ1bmN0aW9uIHUodCl7dmFyIGUsbixyLG8sYSxzPTAsbD0wO2lmKHQubGVuZ3RoKXtmb3Iocj1vPWE9MDthPDQ7KythKShlPXRbYV0pJiYobj1NYXRoLmFicyhlLnZhbHVlKSkmJihzKz1lLnZhbHVlLGwrPW4scis9biplLngsbys9biplLnkpO3QueD1yL2wsdC55PW8vbH1lbHNleyhlPXQpLng9ZS5kYXRhLngsZS55PWUuZGF0YS55O2Rve3MrPWlbZS5kYXRhLmluZGV4XX13aGlsZShlPWUubmV4dCl9dC52YWx1ZT1zfWZ1bmN0aW9uIGgodCxyLGwsYyl7aWYoIXQudmFsdWUpcmV0dXJuITA7dmFyIHU9dC54LWUueCxoPXQueS1lLnksZD1jLXIscD11KnUraCpoO2lmKGQqZC9zPHApcmV0dXJuIHA8YSYmKDA9PT11JiYocCs9KHU9Q18oKSkqdSksMD09PWgmJihwKz0oaD1DXygpKSpoKSxwPG8mJihwPU1hdGguc3FydChvKnApKSxlLnZ4Kz11KnQudmFsdWUqbi9wLGUudnkrPWgqdC52YWx1ZSpuL3ApLCEwO2lmKCEodC5sZW5ndGh8fHA+PWEpKXsodC5kYXRhIT09ZXx8dC5uZXh0KSYmKDA9PT11JiYocCs9KHU9Q18oKSkqdSksMD09PWgmJihwKz0oaD1DXygpKSpoKSxwPG8mJihwPU1hdGguc3FydChvKnApKSk7ZG97dC5kYXRhIT09ZSYmKGUudngrPXUqKGQ9aVt0LmRhdGEuaW5kZXhdKm4vcCksZS52eSs9aCpkKX13aGlsZSh0PXQubmV4dCl9fXJldHVybiBsLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dD1lLGMoKX0sbC5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlRfKCt0KSxjKCksbCk6cn0sbC5kaXN0YW5jZU1pbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10KnQsbCk6TWF0aC5zcXJ0KG8pfSxsLmRpc3RhbmNlTWF4PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQqdCxsKTpNYXRoLnNxcnQoYSl9LGwudGhldGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9dCp0LGwpOk1hdGguc3FydChzKX0sbH0sZm9yY2VSYWRpYWw6ZnVuY3Rpb24gdUkodCxlLG4pe3ZhciBpLHIsbyxhPVRfKC4xKTtmdW5jdGlvbiBzKHQpe2Zvcih2YXIgYT0wLHM9aS5sZW5ndGg7YTxzOysrYSl7dmFyIGw9aVthXSxjPWwueC1lfHwxZS02LHU9bC55LW58fDFlLTYsaD1NYXRoLnNxcnQoYypjK3UqdSksZD0ob1thXS1oKSpyW2FdKnQvaDtsLnZ4Kz1jKmQsbC52eSs9dSpkfX1mdW5jdGlvbiBsKCl7aWYoaSl7dmFyIGUsbj1pLmxlbmd0aDtmb3Iocj1uZXcgQXJyYXkobiksbz1uZXcgQXJyYXkobiksZT0wO2U8bjsrK2Upb1tlXT0rdChpW2VdLGUsaSkscltlXT1pc05hTihvW2VdKT8wOithKGlbZV0sZSxpKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVRfKCt0KSksbnVsbD09ZSYmKGU9MCksbnVsbD09biYmKG49MCkscy5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2k9dCxsKCl9LHMuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpUXygrdCksbCgpLHMpOmF9LHMucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6VF8oK2UpLGwoKSxzKTp0fSxzLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3Qscyk6ZX0scy55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LHMpOm59LHN9LGZvcmNlU2ltdWxhdGlvbjpmdW5jdGlvbiBoSSh0KXt2YXIgZSxuPTEsaT0uMDAxLHI9MS1NYXRoLnBvdyhpLDEvMzAwKSxvPTAsYT0uNixzPXdnKCksbD1rcCh1KSxjPWxjKCJ0aWNrIiwiZW5kIik7ZnVuY3Rpb24gdSgpe2goKSxjLmNhbGwoInRpY2siLGUpLG48aSYmKGwuc3RvcCgpLGMuY2FsbCgiZW5kIixlKSl9ZnVuY3Rpb24gaChpKXt2YXIgbCxjLHU9dC5sZW5ndGg7dm9pZCAwPT09aSYmKGk9MSk7Zm9yKHZhciBoPTA7aDxpOysraClmb3Iobis9KG8tbikqcixzLmVhY2goKGZ1bmN0aW9uKHQpe3Qobil9KSksbD0wO2w8dTsrK2wpbnVsbD09KGM9dFtsXSkuZng/Yy54Kz1jLnZ4Kj1hOihjLng9Yy5meCxjLnZ4PTApLG51bGw9PWMuZnk/Yy55Kz1jLnZ5Kj1hOihjLnk9Yy5meSxjLnZ5PTApO3JldHVybiBlfWZ1bmN0aW9uIGQoKXtmb3IodmFyIGUsbj0wLGk9dC5sZW5ndGg7bjxpOysrbil7aWYoKGU9dFtuXSkuaW5kZXg9bixudWxsIT1lLmZ4JiYoZS54PWUuZngpLG51bGwhPWUuZnkmJihlLnk9ZS5meSksaXNOYU4oZS54KXx8aXNOYU4oZS55KSl7dmFyIHI9MTAqTWF0aC5zcXJ0KG4pLG89bipueTtlLng9cipNYXRoLmNvcyhvKSxlLnk9cipNYXRoLnNpbihvKX0oaXNOYU4oZS52eCl8fGlzTmFOKGUudnkpKSYmKGUudng9ZS52eT0wKX19ZnVuY3Rpb24gcChlKXtyZXR1cm4gZS5pbml0aWFsaXplJiZlLmluaXRpYWxpemUodCksZX1yZXR1cm4gbnVsbD09dCYmKHQ9W10pLGQoKSxlPXt0aWNrOmgscmVzdGFydDpmdW5jdGlvbigpe3JldHVybiBsLnJlc3RhcnQodSksZX0sc3RvcDpmdW5jdGlvbigpe3JldHVybiBsLnN0b3AoKSxlfSxub2RlczpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uLGQoKSxzLmVhY2gocCksZSk6dH0sYWxwaGE6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3QsZSk6bn0sYWxwaGFNaW46ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3QsZSk6aX0sYWxwaGFEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdCxlKTorcn0sYWxwaGFUYXJnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3QsZSk6b30sdmVsb2NpdHlEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0xLXQsZSk6MS1hfSxmb3JjZTpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KG51bGw9PW4/cy5yZW1vdmUodCk6cy5zZXQodCxwKG4pKSxlKTpzLmdldCh0KX0sZmluZDpmdW5jdGlvbihlLG4saSl7dmFyIHIsbyxhLHMsbCxjPTAsdT10Lmxlbmd0aDtmb3IobnVsbD09aT9pPTEvMDppKj1pLGM9MDtjPHU7KytjKShhPShyPWUtKHM9dFtjXSkueCkqcisobz1uLXMueSkqbyk8aSYmKGw9cyxpPWEpO3JldHVybiBsfSxvbjpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGMub24odCxuKSxlKTpjLm9uKHQpfX19LGZvcmNlWDpmdW5jdGlvbiBkSSh0KXt2YXIgZSxuLGkscj1UXyguMSk7ZnVuY3Rpb24gbyh0KXtmb3IodmFyIHIsbz0wLGE9ZS5sZW5ndGg7bzxhOysrbykocj1lW29dKS52eCs9KGlbb10tci54KSpuW29dKnR9ZnVuY3Rpb24gYSgpe2lmKGUpe3ZhciBvLGE9ZS5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGEpLGk9bmV3IEFycmF5KGEpLG89MDtvPGE7KytvKW5bb109aXNOYU4oaVtvXT0rdChlW29dLG8sZSkpPzA6K3IoZVtvXSxvLGUpfX1yZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9VF8obnVsbD09dD8wOit0KSksby5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2U9dCxhKCl9LG8uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpUXygrdCksYSgpLG8pOnJ9LG8ueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlRfKCtlKSxhKCksbyk6dH0sb30sZm9yY2VZOmZ1bmN0aW9uIHBJKHQpe3ZhciBlLG4saSxyPVRfKC4xKTtmdW5jdGlvbiBvKHQpe2Zvcih2YXIgcixvPTAsYT1lLmxlbmd0aDtvPGE7KytvKShyPWVbb10pLnZ5Kz0oaVtvXS1yLnkpKm5bb10qdH1mdW5jdGlvbiBhKCl7aWYoZSl7dmFyIG8sYT1lLmxlbmd0aDtmb3Iobj1uZXcgQXJyYXkoYSksaT1uZXcgQXJyYXkoYSksbz0wO288YTsrK28pbltvXT1pc05hTihpW29dPSt0KGVbb10sbyxlKSk/MDorcihlW29dLG8sZSl9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1UXyhudWxsPT10PzA6K3QpKSxvLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7ZT10LGEoKX0sby5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlRfKCt0KSxhKCksbyk6cn0sby55PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6VF8oK2UpLGEoKSxvKTp0fSxvfSxmb3JtYXREZWZhdWx0TG9jYWxlOmJ5LGdldCBmb3JtYXQoKXtyZXR1cm4gbXl9LGdldCBmb3JtYXRQcmVmaXgoKXtyZXR1cm4gZ3l9LGZvcm1hdExvY2FsZTp2eSxmb3JtYXRTcGVjaWZpZXI6c3ksRm9ybWF0U3BlY2lmaWVyOmx5LHByZWNpc2lvbkZpeGVkOnh5LHByZWNpc2lvblByZWZpeDp3eSxwcmVjaXNpb25Sb3VuZDpTeSxnZW9BcmVhOmZ1bmN0aW9uIGZJKHQpe3JldHVybiB1di5yZXNldCgpLGl2KHQsaHYpLDIqdXZ9LGdlb0JvdW5kczpmdW5jdGlvbiBtSSh0KXt2YXIgZSxuLGkscixvLGEscztpZihUdj1Fdj0tKFN2PU12PTEvMCksUHY9W10saXYodCxLdiksbj1Qdi5sZW5ndGgpe2ZvcihQdi5zb3J0KG9iKSxlPTEsbz1baT1QdlswXV07ZTxuOysrZSlhYihpLChyPVB2W2VdKVswXSl8fGFiKGksclsxXSk/KHJiKGlbMF0sclsxXSk+cmIoaVswXSxpWzFdKSYmKGlbMV09clsxXSkscmIoclswXSxpWzFdKT5yYihpWzBdLGlbMV0pJiYoaVswXT1yWzBdKSk6by5wdXNoKGk9cik7Zm9yKGE9LTEvMCxlPTAsaT1vW249by5sZW5ndGgtMV07ZTw9bjtpPXIsKytlKShzPXJiKGlbMV0sKHI9b1tlXSlbMF0pKT5hJiYoYT1zLFN2PXJbMF0sRXY9aVsxXSl9cmV0dXJuIFB2PU52PW51bGwsU3Y9PT0xLzB8fE12PT09MS8wP1tbTmFOLE5hTl0sW05hTixOYU5dXTpbW1N2LE12XSxbRXYsVHZdXX0sZ2VvQ2VudHJvaWQ6ZnVuY3Rpb24gZ0kodCl7SXY9UnY9T3Y9enY9RHY9QnY9SHY9RnY9VnY9VXY9anY9MCxpdih0LHNiKTt2YXIgZT1WdixuPVV2LGk9anYscj1lKmUrbipuK2kqaTtyZXR1cm4gcjxreSYmKGU9QnYsbj1IdixpPUZ2LFJ2PEF5JiYoZT1PdixuPXp2LGk9RHYpLChyPWUqZStuKm4raSppKTxreSk/W05hTixOYU5dOltCeShuLGUpKlJ5LCR5KGkvcXkocikpKlJ5XX0sZ2VvQ2lyY2xlOmZ1bmN0aW9uIF9JKCl7dmFyIHQsZSxuPXliKFswLDBdKSxpPXliKDkwKSxyPXliKDYpLG89e3BvaW50OmZ1bmN0aW9uIGEobixpKXt0LnB1c2gobj1lKG4saSkpLG5bMF0qPVJ5LG5bMV0qPVJ5fX07ZnVuY3Rpb24gcygpe3ZhciBhPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpLHM9aS5hcHBseSh0aGlzLGFyZ3VtZW50cykqT3ksbD1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpPeTtyZXR1cm4gdD1bXSxlPXhiKC1hWzBdKk95LC1hWzFdKk95LDApLmludmVydCxUYihvLHMsbCwxKSxhPXt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbdF19LHQ9ZT1udWxsLGF9cmV0dXJuIHMuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eWIoWyt0WzBdLCt0WzFdXSkscyk6bn0scy5yYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp5YigrdCkscyk6aX0scy5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp5YigrdCkscyk6cn0sc30sZ2VvQ2xpcEFudGltZXJpZGlhbjpIYixnZW9DbGlwQ2lyY2xlOlViLGdlb0NsaXBFeHRlbnQ6ZnVuY3Rpb24geUkoKXt2YXIgdCxlLG4saT0wLHI9MCxvPTk2MCxhPTUwMDtyZXR1cm4gbj17c3RyZWFtOmZ1bmN0aW9uKG4pe3JldHVybiB0JiZlPT09bj90OnQ9V2IoaSxyLG8sYSkoZT1uKX0sZXh0ZW50OmZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPStzWzBdWzBdLHI9K3NbMF1bMV0sbz0rc1sxXVswXSxhPStzWzFdWzFdLHQ9ZT1udWxsLG4pOltbaSxyXSxbbyxhXV19fX0sZ2VvQ2xpcFJlY3RhbmdsZTpXYixnZW9Db250YWluczpmdW5jdGlvbiB2SSh0LGUpe3JldHVybih0JiZveC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP294W3QudHlwZV06c3gpKHQsZSl9LGdlb0Rpc3RhbmNlOnJ4LGdlb0dyYXRpY3VsZTpteCxnZW9HcmF0aWN1bGUxMDpmdW5jdGlvbiBiSSgpe3JldHVybiBteCgpKCl9LGdlb0ludGVycG9sYXRlOmZ1bmN0aW9uIHhJKHQsZSl7dmFyIG49dFswXSpPeSxpPXRbMV0qT3kscj1lWzBdKk95LG89ZVsxXSpPeSxhPUh5KGkpLHM9R3koaSksbD1IeShvKSxjPUd5KG8pLHU9YSpIeShuKSxoPWEqR3kobiksZD1sKkh5KHIpLHA9bCpHeShyKSxmPTIqJHkocXkoS3koby1pKSthKmwqS3koci1uKSkpLG09R3koZiksZz1mP2Z1bmN0aW9uKHQpe3ZhciBlPUd5KHQqPWYpL20sbj1HeShmLXQpL20saT1uKnUrZSpkLHI9bipoK2UqcCxvPW4qcytlKmM7cmV0dXJuW0J5KHIsaSkqUnksQnkobyxxeShpKmkrcipyKSkqUnldfTpmdW5jdGlvbigpe3JldHVybltuKlJ5LGkqUnldfTtyZXR1cm4gZy5kaXN0YW5jZT1mLGd9LGdlb0xlbmd0aDpleCxnZW9QYXRoOmZ1bmN0aW9uIHdJKHQsZSl7dmFyIG4saSxyPTQuNTtmdW5jdGlvbiBvKHQpe3JldHVybiB0JiYoImZ1bmN0aW9uIj09dHlwZW9mIHImJmkucG9pbnRSYWRpdXMoK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxpdih0LG4oaSkpKSxpLnJlc3VsdCgpfXJldHVybiBvLmFyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIGl2KHQsbihOeCkpLE54LnJlc3VsdCgpfSxvLm1lYXN1cmU9ZnVuY3Rpb24odCl7cmV0dXJuIGl2KHQsbihtdykpLG13LnJlc3VsdCgpfSxvLmJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gaXYodCxuKER4KSksRHgucmVzdWx0KCl9LG8uY2VudHJvaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGl2KHQsbihydykpLHJ3LnJlc3VsdCgpfSxvLnByb2plY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09ZT8odD1udWxsLGd4KToodD1lKS5zdHJlYW0sbyk6dH0sby5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/KGU9bnVsbCxuZXcgZ3cpOm5ldyBvdyhlPXQpLCJmdW5jdGlvbiIhPXR5cGVvZiByJiZpLnBvaW50UmFkaXVzKHIpLG8pOmV9LG8ucG9pbnRSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDooaS5wb2ludFJhZGl1cygrdCksK3QpLG8pOnJ9LG8ucHJvamVjdGlvbih0KS5jb250ZXh0KGUpfSxnZW9BbGJlcnM6T3csZ2VvQWxiZXJzVXNhOmZ1bmN0aW9uIFNJKCl7dmFyIHQsZSxuLGkscixvLGE9T3coKSxzPVJ3KCkucm90YXRlKFsxNTQsMF0pLmNlbnRlcihbLTIsNTguNV0pLnBhcmFsbGVscyhbNTUsNjVdKSxsPVJ3KCkucm90YXRlKFsxNTcsMF0pLmNlbnRlcihbLTMsMTkuOV0pLnBhcmFsbGVscyhbOCwxOF0pLGM9e3BvaW50OmZ1bmN0aW9uKHQsZSl7bz1bdCxlXX19O2Z1bmN0aW9uIHUodCl7dmFyIGU9dFswXSxhPXRbMV07cmV0dXJuIG89bnVsbCxuLnBvaW50KGUsYSksb3x8KGkucG9pbnQoZSxhKSxvKXx8KHIucG9pbnQoZSxhKSxvKX1mdW5jdGlvbiBoKCl7cmV0dXJuIHQ9ZT1udWxsLHV9cmV0dXJuIHUuaW52ZXJ0PWZ1bmN0aW9uKHQpe3ZhciBlPWEuc2NhbGUoKSxuPWEudHJhbnNsYXRlKCksaT0odFswXS1uWzBdKS9lLHI9KHRbMV0tblsxXSkvZTtyZXR1cm4ocj49LjEyJiZyPC4yMzQmJmk+PS0uNDI1JiZpPC0uMjE0P3M6cj49LjE2NiYmcjwuMjM0JiZpPj0tLjIxNCYmaTwtLjExNT9sOmEpLmludmVydCh0KX0sdS5zdHJlYW09ZnVuY3Rpb24obil7cmV0dXJuIHQmJmU9PT1uP3Q6dD0oZnVuY3Rpb24gaSh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm57cG9pbnQ6ZnVuY3Rpb24obixpKXtmb3IodmFyIHI9LTE7KytyPGU7KXRbcl0ucG9pbnQobixpKX0sc3BoZXJlOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ucG9seWdvbkVuZCgpfX19KShbYS5zdHJlYW0oZT1uKSxzLnN0cmVhbShuKSxsLnN0cmVhbShuKV0pfSx1LnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYS5wcmVjaXNpb24odCkscy5wcmVjaXNpb24odCksbC5wcmVjaXNpb24odCksaCgpKTphLnByZWNpc2lvbigpfSx1LnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhLnNjYWxlKHQpLHMuc2NhbGUoLjM1KnQpLGwuc2NhbGUodCksdS50cmFuc2xhdGUoYS50cmFuc2xhdGUoKSkpOmEuc2NhbGUoKX0sdS50cmFuc2xhdGU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGEudHJhbnNsYXRlKCk7dmFyIGU9YS5zY2FsZSgpLG89K3RbMF0sdT0rdFsxXTtyZXR1cm4gbj1hLnRyYW5zbGF0ZSh0KS5jbGlwRXh0ZW50KFtbby0uNDU1KmUsdS0uMjM4KmVdLFtvKy40NTUqZSx1Ky4yMzgqZV1dKS5zdHJlYW0oYyksaT1zLnRyYW5zbGF0ZShbby0uMzA3KmUsdSsuMjAxKmVdKS5jbGlwRXh0ZW50KFtbby0uNDI1KmUrQXksdSsuMTIqZStBeV0sW28tLjIxNCplLUF5LHUrLjIzNCplLUF5XV0pLnN0cmVhbShjKSxyPWwudHJhbnNsYXRlKFtvLS4yMDUqZSx1Ky4yMTIqZV0pLmNsaXBFeHRlbnQoW1tvLS4yMTQqZStBeSx1Ky4xNjYqZStBeV0sW28tLjExNSplLUF5LHUrLjIzNCplLUF5XV0pLnN0cmVhbShjKSxoKCl9LHUuZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHh3KHUsdCxlKX0sdS5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHd3KHUsdCxlKX0sdS5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBTdyh1LHQsZSl9LHUuZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE13KHUsdCxlKX0sdS5zY2FsZSgxMDcwKX0sZ2VvQXppbXV0aGFsRXF1YWxBcmVhOmZ1bmN0aW9uIE1JKCl7cmV0dXJuIEx3KEJ3KS5zY2FsZSgxMjQuNzUpLmNsaXBBbmdsZSgxNzkuOTk5KX0sZ2VvQXppbXV0aGFsRXF1YWxBcmVhUmF3OkJ3LGdlb0F6aW11dGhhbEVxdWlkaXN0YW50OmZ1bmN0aW9uIEVJKCl7cmV0dXJuIEx3KEh3KS5zY2FsZSg3OS40MTg4KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LGdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3Okh3LGdlb0NvbmljQ29uZm9ybWFsOmZ1bmN0aW9uIFRJKCl7cmV0dXJuIE53KGp3KS5zY2FsZSgxMDkuNSkucGFyYWxsZWxzKFszMCwzMF0pfSxnZW9Db25pY0NvbmZvcm1hbFJhdzpqdyxnZW9Db25pY0VxdWFsQXJlYTpSdyxnZW9Db25pY0VxdWFsQXJlYVJhdzpJdyxnZW9Db25pY0VxdWlkaXN0YW50OmZ1bmN0aW9uIENJKCl7cmV0dXJuIE53KFd3KS5zY2FsZSgxMzEuMTU0KS5jZW50ZXIoWzAsMTMuOTM4OV0pfSxnZW9Db25pY0VxdWlkaXN0YW50UmF3Old3LGdlb0VxdWFsRWFydGg6ZnVuY3Rpb24gQUkoKXtyZXR1cm4gTHcoWncpLnNjYWxlKDE3Ny4xNTgpfSxnZW9FcXVhbEVhcnRoUmF3Olp3LGdlb0VxdWlyZWN0YW5ndWxhcjpmdW5jdGlvbiBrSSgpe3JldHVybiBMdyhHdykuc2NhbGUoMTUyLjYzKX0sZ2VvRXF1aXJlY3Rhbmd1bGFyUmF3Okd3LGdlb0dub21vbmljOmZ1bmN0aW9uIExJKCl7cmV0dXJuIEx3KEp3KS5zY2FsZSgxNDQuMDQ5KS5jbGlwQW5nbGUoNjApfSxnZW9Hbm9tb25pY1JhdzpKdyxnZW9JZGVudGl0eTpmdW5jdGlvbiBQSSgpe3ZhciB0LGUsbixpLHIsbyxhLHM9MSxsPTAsYz0wLHU9MSxoPTEsZD0wLHA9bnVsbCxmPTEsbT0xLGc9eXcoe3BvaW50OmZ1bmN0aW9uKHQsZSl7dmFyIG49dihbdCxlXSk7dGhpcy5zdHJlYW0ucG9pbnQoblswXSxuWzFdKX19KSxfPWd4O2Z1bmN0aW9uIHkoKXtyZXR1cm4gZj1zKnUsbT1zKmgsbz1hPW51bGwsdn1mdW5jdGlvbiB2KG4pe3ZhciBpPW5bMF0qZixyPW5bMV0qbTtpZihkKXt2YXIgbz1yKnQtaSplO2k9aSp0K3IqZSxyPW99cmV0dXJuW2krbCxyK2NdfXJldHVybiB2LmludmVydD1mdW5jdGlvbihuKXt2YXIgaT1uWzBdLWwscj1uWzFdLWM7aWYoZCl7dmFyIG89cip0K2kqZTtpPWkqdC1yKmUscj1vfXJldHVybltpL2Ysci9tXX0sdi5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuIG8mJmE9PT10P286bz1nKF8oYT10KSl9LHYucG9zdGNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89dCxwPW49aT1yPW51bGwseSgpKTpffSx2LmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89bnVsbD09dD8ocD1uPWk9cj1udWxsLGd4KTpXYihwPSt0WzBdWzBdLG49K3RbMF1bMV0saT0rdFsxXVswXSxyPSt0WzFdWzFdKSx5KCkpOm51bGw9PXA/bnVsbDpbW3Asbl0sW2kscl1dfSx2LnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LHkoKSk6c30sdi50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9K3RbMF0sYz0rdFsxXSx5KCkpOltsLGNdfSx2LmFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPUd5KGQ9biUzNjAqT3kpLHQ9SHkoZCkseSgpKTpkKlJ5fSx2LnJlZmxlY3RYPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PXQ/LTE6MSx5KCkpOnU8MH0sdi5yZWZsZWN0WT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD10Py0xOjEseSgpKTpoPDB9LHYuZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHh3KHYsdCxlKX0sdi5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHd3KHYsdCxlKX0sdi5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBTdyh2LHQsZSl9LHYuZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE13KHYsdCxlKX0sdn0sZ2VvUHJvamVjdGlvbjpMdyxnZW9Qcm9qZWN0aW9uTXV0YXRvcjpQdyxnZW9NZXJjYXRvcjpmdW5jdGlvbiBOSSgpe3JldHVybiBWdyhGdykuc2NhbGUoOTYxL0l5KX0sZ2VvTWVyY2F0b3JSYXc6RncsZ2VvTmF0dXJhbEVhcnRoMTpmdW5jdGlvbiBJSSgpe3JldHVybiBMdyhRdykuc2NhbGUoMTc1LjI5NSl9LGdlb05hdHVyYWxFYXJ0aDFSYXc6UXcsZ2VvT3J0aG9ncmFwaGljOmZ1bmN0aW9uIFJJKCl7cmV0dXJuIEx3KHRTKS5zY2FsZSgyNDkuNSkuY2xpcEFuZ2xlKDkwLjAwMDAwMSl9LGdlb09ydGhvZ3JhcGhpY1Jhdzp0UyxnZW9TdGVyZW9ncmFwaGljOmZ1bmN0aW9uIE9JKCl7cmV0dXJuIEx3KGVTKS5zY2FsZSgyNTApLmNsaXBBbmdsZSgxNDIpfSxnZW9TdGVyZW9ncmFwaGljUmF3OmVTLGdlb1RyYW5zdmVyc2VNZXJjYXRvcjpmdW5jdGlvbiB6SSgpe3ZhciB0PVZ3KG5TKSxlPXQuY2VudGVyLG49dC5yb3RhdGU7cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoWy10WzFdLHRbMF1dKTpbKHQ9ZSgpKVsxXSwtdFswXV19LHQucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oW3RbMF0sdFsxXSx0Lmxlbmd0aD4yP3RbMl0rOTA6OTBdKTpbKHQ9bigpKVswXSx0WzFdLHRbMl0tOTBdfSxuKFswLDAsOTBdKS5zY2FsZSgxNTkuMTU1KX0sZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yUmF3Om5TLGdlb1JvdGF0aW9uOkViLGdlb1N0cmVhbTppdixnZW9UcmFuc2Zvcm06ZnVuY3Rpb24gREkodCl7cmV0dXJue3N0cmVhbTp5dyh0KX19LGNsdXN0ZXI6ZnVuY3Rpb24gQkkoKXt2YXIgdD1pUyxlPTEsbj0xLGk9ITE7ZnVuY3Rpb24gcihyKXt2YXIgbyxhPTA7ci5lYWNoQWZ0ZXIoKGZ1bmN0aW9uKGUpe3ZhciBuPWUuY2hpbGRyZW47bj8oZS54PShmdW5jdGlvbiBpKHQpe3JldHVybiB0LnJlZHVjZShyUywwKS90Lmxlbmd0aH0pKG4pLGUueT0oZnVuY3Rpb24gcih0KXtyZXR1cm4gMSt0LnJlZHVjZShvUywwKX0pKG4pKTooZS54PW8/YSs9dChlLG8pOjAsZS55PTAsbz1lKX0pKTt2YXIgcz0oZnVuY3Rpb24gbCh0KXtmb3IodmFyIGU7ZT10LmNoaWxkcmVuOyl0PWVbMF07cmV0dXJuIHR9KShyKSxjPShmdW5jdGlvbiB1KHQpe2Zvcih2YXIgZTtlPXQuY2hpbGRyZW47KXQ9ZVtlLmxlbmd0aC0xXTtyZXR1cm4gdH0pKHIpLGg9cy54LXQocyxjKS8yLGQ9Yy54K3QoYyxzKS8yO3JldHVybiByLmVhY2hBZnRlcihpP2Z1bmN0aW9uKHQpe3QueD0odC54LXIueCkqZSx0Lnk9KHIueS10LnkpKm59OmZ1bmN0aW9uKHQpe3QueD0odC54LWgpLyhkLWgpKmUsdC55PSgxLShyLnk/dC55L3IueToxKSkqbn0pfXJldHVybiByLnNlcGFyYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxyKTp0fSxyLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ITEsZT0rdFswXSxuPSt0WzFdLHIpOmk/bnVsbDpbZSxuXX0sci5ub2RlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMCxlPSt0WzBdLG49K3RbMV0scik6aT9bZSxuXTpudWxsfSxyfSxoaWVyYXJjaHk6c1MscGFjazpmdW5jdGlvbiBISSgpe3ZhciB0PW51bGwsZT0xLG49MSxpPUZTO2Z1bmN0aW9uIHIocil7cmV0dXJuIHIueD1lLzIsci55PW4vMix0P3IuZWFjaEJlZm9yZShqUyh0KSkuZWFjaEFmdGVyKEdTKGksLjUpKS5lYWNoQmVmb3JlKFdTKDEpKTpyLmVhY2hCZWZvcmUoalMoVVMpKS5lYWNoQWZ0ZXIoR1MoRlMsMSkpLmVhY2hBZnRlcihHUyhpLHIuci9NYXRoLm1pbihlLG4pKSkuZWFjaEJlZm9yZShXUyhNYXRoLm1pbihlLG4pLygyKnIucikpKSxyfXJldHVybiByLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1CUyhlKSxyKTp0fSxyLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0sbj0rdFsxXSxyKTpbZSxuXX0sci5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VlMoK3QpLHIpOml9LHJ9LHBhY2tTaWJsaW5nczpmdW5jdGlvbiBGSSh0KXtyZXR1cm4gRFModCksdH0scGFja0VuY2xvc2U6RVMscGFydGl0aW9uOmZ1bmN0aW9uIFZJKCl7dmFyIHQ9MSxlPTEsbj0wLGk9ITE7ZnVuY3Rpb24gcihyKXt2YXIgbz1yLmhlaWdodCsxO3JldHVybiByLngwPXIueTA9bixyLngxPXQsci55MT1lL28sci5lYWNoQmVmb3JlKChmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGkpe2kuY2hpbGRyZW4mJllTKGksaS54MCx0KihpLmRlcHRoKzEpL2UsaS54MSx0KihpLmRlcHRoKzIpL2UpO3ZhciByPWkueDAsbz1pLnkwLGE9aS54MS1uLHM9aS55MS1uO2E8ciYmKHI9YT0ocithKS8yKSxzPG8mJihvPXM9KG8rcykvMiksaS54MD1yLGkueTA9byxpLngxPWEsaS55MT1zfX0pKGUsbykpLGkmJnIuZWFjaEJlZm9yZShxUykscn1yZXR1cm4gci5yb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hIXQscik6aX0sci5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStuWzBdLGU9K25bMV0scik6W3QsZV19LHIucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdCxyKTpufSxyfSxzdHJhdGlmeTpmdW5jdGlvbiBVSSgpe3ZhciB0PUtTLGU9WlM7ZnVuY3Rpb24gbihuKXt2YXIgaSxyLG8sYSxzLGwsYyx1PW4ubGVuZ3RoLGg9bmV3IEFycmF5KHUpLGQ9e307Zm9yKHI9MDtyPHU7KytyKXM9aFtyXT1uZXcgaFMoaT1uW3JdKSxudWxsIT0obD10KGkscixuKSkmJihsKz0iIikmJihkW2M9IiQiKyhzLmlkPWwpXT1jIGluIGQ/JFM6cyk7Zm9yKHI9MDtyPHU7KytyKWlmKHM9aFtyXSxudWxsIT0obD1lKG5bcl0scixuKSkmJihsKz0iIikpe2lmKCEoYT1kWyIkIitsXSkpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2wpO2lmKGE9PT0kUyl0aHJvdyBuZXcgRXJyb3IoImFtYmlndW91czogIitsKTthLmNoaWxkcmVuP2EuY2hpbGRyZW4ucHVzaChzKTphLmNoaWxkcmVuPVtzXSxzLnBhcmVudD1hfWVsc2V7aWYobyl0aHJvdyBuZXcgRXJyb3IoIm11bHRpcGxlIHJvb3RzIik7bz1zfWlmKCFvKXRocm93IG5ldyBFcnJvcigibm8gcm9vdCIpO2lmKG8ucGFyZW50PVhTLG8uZWFjaEJlZm9yZSgoZnVuY3Rpb24odCl7dC5kZXB0aD10LnBhcmVudC5kZXB0aCsxLC0tdX0pKS5lYWNoQmVmb3JlKHVTKSxvLnBhcmVudD1udWxsLHU+MCl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIik7cmV0dXJuIG99cmV0dXJuIG4uaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9SFMoZSksbik6dH0sbi5wYXJlbnRJZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1IUyh0KSxuKTplfSxufSx0cmVlOmZ1bmN0aW9uIGpJKCl7dmFyIHQ9SlMsZT0xLG49MSxpPW51bGw7ZnVuY3Rpb24gcihyKXt2YXIgbD0oZnVuY3Rpb24gYyh0KXtmb3IodmFyIGUsbixpLHIsbyxhPW5ldyBpTSh0LDApLHM9W2FdO2U9cy5wb3AoKTspaWYoaT1lLl8uY2hpbGRyZW4pZm9yKGUuY2hpbGRyZW49bmV3IEFycmF5KG89aS5sZW5ndGgpLHI9by0xO3I+PTA7LS1yKXMucHVzaChuPWUuY2hpbGRyZW5bcl09bmV3IGlNKGlbcl0scikpLG4ucGFyZW50PWU7cmV0dXJuKGEucGFyZW50PW5ldyBpTShudWxsLDApKS5jaGlsZHJlbj1bYV0sYX0pKHIpO2lmKGwuZWFjaEFmdGVyKG8pLGwucGFyZW50Lm09LWwueixsLmVhY2hCZWZvcmUoYSksaSlyLmVhY2hCZWZvcmUocyk7ZWxzZXt2YXIgdT1yLGg9cixkPXI7ci5lYWNoQmVmb3JlKChmdW5jdGlvbih0KXt0Lng8dS54JiYodT10KSx0Lng+aC54JiYoaD10KSx0LmRlcHRoPmQuZGVwdGgmJihkPXQpfSkpO3ZhciBwPXU9PT1oPzE6dCh1LGgpLzIsZj1wLXUueCxtPWUvKGgueCtwK2YpLGc9bi8oZC5kZXB0aHx8MSk7ci5lYWNoQmVmb3JlKChmdW5jdGlvbih0KXt0Lng9KHQueCtmKSptLHQueT10LmRlcHRoKmd9KSl9cmV0dXJuIHJ9ZnVuY3Rpb24gbyhlKXt2YXIgbj1lLmNoaWxkcmVuLGk9ZS5wYXJlbnQuY2hpbGRyZW4scj1lLmk/aVtlLmktMV06bnVsbDtpZihuKXshKGZ1bmN0aW9uIG8odCl7Zm9yKHZhciBlLG49MCxpPTAscj10LmNoaWxkcmVuLG89ci5sZW5ndGg7LS1vPj0wOykoZT1yW29dKS56Kz1uLGUubSs9bixuKz1lLnMrKGkrPWUuYyl9KShlKTt2YXIgYT0oblswXS56K25bbi5sZW5ndGgtMV0ueikvMjtyPyhlLno9ci56K3QoZS5fLHIuXyksZS5tPWUuei1hKTplLno9YX1lbHNlIHImJihlLno9ci56K3QoZS5fLHIuXykpO2UucGFyZW50LkE9KGZ1bmN0aW9uIHMoZSxuLGkpe2lmKG4pe2Zvcih2YXIgcixvPWUsYT1lLHM9bixsPW8ucGFyZW50LmNoaWxkcmVuWzBdLGM9by5tLHU9YS5tLGg9cy5tLGQ9bC5tO3M9dE0ocyksbz1RUyhvKSxzJiZvOylsPVFTKGwpLChhPXRNKGEpKS5hPWUsKHI9cy56K2gtby56LWMrdChzLl8sby5fKSk+MCYmKGVNKG5NKHMsZSxpKSxlLHIpLGMrPXIsdSs9ciksaCs9cy5tLGMrPW8ubSxkKz1sLm0sdSs9YS5tO3MmJiF0TShhKSYmKGEudD1zLGEubSs9aC11KSxvJiYhUVMobCkmJihsLnQ9byxsLm0rPWMtZCxpPWUpfXJldHVybiBpfSkoZSxyLGUucGFyZW50LkF8fGlbMF0pfWZ1bmN0aW9uIGEodCl7dC5fLng9dC56K3QucGFyZW50Lm0sdC5tKz10LnBhcmVudC5tfWZ1bmN0aW9uIHModCl7dC54Kj1lLHQueT10LmRlcHRoKm59cmV0dXJuIHIuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLHIpOnR9LHIuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMSxlPSt0WzBdLG49K3RbMV0scik6aT9udWxsOltlLG5dfSxyLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEwLGU9K3RbMF0sbj0rdFsxXSxyKTppP1tlLG5dOm51bGx9LHJ9LHRyZWVtYXA6ZnVuY3Rpb24gR0koKXt2YXIgdD1zTSxlPSExLG49MSxpPTEscj1bMF0sbz1GUyxhPUZTLHM9RlMsbD1GUyxjPUZTO2Z1bmN0aW9uIHUodCl7cmV0dXJuIHQueDA9dC55MD0wLHQueDE9bix0LnkxPWksdC5lYWNoQmVmb3JlKGgpLHI9WzBdLGUmJnQuZWFjaEJlZm9yZShxUyksdH1mdW5jdGlvbiBoKGUpe3ZhciBuPXJbZS5kZXB0aF0saT1lLngwK24sdT1lLnkwK24saD1lLngxLW4sZD1lLnkxLW47aDxpJiYoaT1oPShpK2gpLzIpLGQ8dSYmKHU9ZD0odStkKS8yKSxlLngwPWksZS55MD11LGUueDE9aCxlLnkxPWQsZS5jaGlsZHJlbiYmKG49cltlLmRlcHRoKzFdPW8oZSkvMixpKz1jKGUpLW4sdSs9YShlKS1uLChoLT1zKGUpLW4pPGkmJihpPWg9KGkraCkvMiksKGQtPWwoZSktbik8dSYmKHU9ZD0odStkKS8yKSx0KGUsaSx1LGgsZCkpfXJldHVybiB1LnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSEhdCx1KTplfSx1LnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3RbMF0saT0rdFsxXSx1KTpbbixpXX0sdS50aWxlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PUhTKGUpLHUpOnR9LHUucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD91LnBhZGRpbmdJbm5lcih0KS5wYWRkaW5nT3V0ZXIodCk6dS5wYWRkaW5nSW5uZXIoKX0sdS5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpWUygrdCksdSk6b30sdS5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dS5wYWRkaW5nVG9wKHQpLnBhZGRpbmdSaWdodCh0KS5wYWRkaW5nQm90dG9tKHQpLnBhZGRpbmdMZWZ0KHQpOnUucGFkZGluZ1RvcCgpfSx1LnBhZGRpbmdUb3A9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpWUygrdCksdSk6YX0sdS5wYWRkaW5nUmlnaHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpWUygrdCksdSk6c30sdS5wYWRkaW5nQm90dG9tPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VlMoK3QpLHUpOmx9LHUucGFkZGluZ0xlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpWUygrdCksdSk6Y30sdX0sdHJlZW1hcEJpbmFyeTpmdW5jdGlvbiBXSSh0LGUsbixpLHIpe3ZhciBvLGEscz10LmNoaWxkcmVuLGw9cy5sZW5ndGgsYz1uZXcgQXJyYXkobCsxKTtmb3IoY1swXT1hPW89MDtvPGw7KytvKWNbbysxXT1hKz1zW29dLnZhbHVlOyEoZnVuY3Rpb24gdChlLG4saSxyLG8sYSxsKXtpZihlPj1uLTEpe3ZhciB1PXNbZV07cmV0dXJuIHUueDA9cix1LnkwPW8sdS54MT1hLHZvaWQodS55MT1sKX1mb3IodmFyIGg9Y1tlXSxkPWkvMitoLHA9ZSsxLGY9bi0xO3A8Zjspe3ZhciBtPXArZj4+PjE7Y1ttXTxkP3A9bSsxOmY9bX1kLWNbcC0xXTxjW3BdLWQmJmUrMTxwJiYtLXA7dmFyIGc9Y1twXS1oLF89aS1nO2lmKGEtcj5sLW8pe3ZhciB5PShyKl8rYSpnKS9pO3QoZSxwLGcscixvLHksbCksdChwLG4sXyx5LG8sYSxsKX1lbHNle3ZhciB2PShvKl8rbCpnKS9pO3QoZSxwLGcscixvLGEsdiksdChwLG4sXyxyLHYsYSxsKX19KSgwLGwsdC52YWx1ZSxlLG4saSxyKX0sdHJlZW1hcERpY2U6WVMsdHJlZW1hcFNsaWNlOnJNLHRyZWVtYXBTbGljZURpY2U6ZnVuY3Rpb24gcUkodCxlLG4saSxyKXsoMSZ0LmRlcHRoP3JNOllTKSh0LGUsbixpLHIpfSx0cmVlbWFwU3F1YXJpZnk6c00sdHJlZW1hcFJlc3F1YXJpZnk6bE0saW50ZXJwb2xhdGU6amQsaW50ZXJwb2xhdGVBcnJheTpmdW5jdGlvbiBZSSh0LGUpe3JldHVybihPZChlKT9SZDp6ZCkodCxlKX0saW50ZXJwb2xhdGVCYXNpczpNZCxpbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkOkVkLGludGVycG9sYXRlRGF0ZTpEZCxpbnRlcnBvbGF0ZURpc2NyZXRlOmZ1bmN0aW9uIFhJKHQpe3ZhciBlPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdFtNYXRoLm1heCgwLE1hdGgubWluKGUtMSxNYXRoLmZsb29yKG4qZSkpKV19fSxpbnRlcnBvbGF0ZUh1ZTpmdW5jdGlvbiAkSSh0LGUpe3ZhciBuPUFkKCt0LCtlKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9bih0KTtyZXR1cm4gZS0zNjAqTWF0aC5mbG9vcihlLzM2MCl9fSxpbnRlcnBvbGF0ZU51bWJlcjpCZCxpbnRlcnBvbGF0ZU51bWJlckFycmF5OlJkLGludGVycG9sYXRlT2JqZWN0OkhkLGludGVycG9sYXRlUm91bmQ6R2QsaW50ZXJwb2xhdGVTdHJpbmc6VWQsaW50ZXJwb2xhdGVUcmFuc2Zvcm1Dc3M6UWQsaW50ZXJwb2xhdGVUcmFuc2Zvcm1Tdmc6ZXAsaW50ZXJwb2xhdGVab29tOm9wLGludGVycG9sYXRlUmdiOkxkLGludGVycG9sYXRlUmdiQmFzaXM6TmQsaW50ZXJwb2xhdGVSZ2JCYXNpc0Nsb3NlZDpJZCxpbnRlcnBvbGF0ZUhzbDpzcCxpbnRlcnBvbGF0ZUhzbExvbmc6bHAsaW50ZXJwb2xhdGVMYWI6Y3AsaW50ZXJwb2xhdGVIY2w6aHAsaW50ZXJwb2xhdGVIY2xMb25nOmRwLGludGVycG9sYXRlQ3ViZWhlbGl4OmdwLGludGVycG9sYXRlQ3ViZWhlbGl4TG9uZzpfcCxwaWVjZXdpc2U6ZnVuY3Rpb24gS0kodCxlKXtmb3IodmFyIG49MCxpPWUubGVuZ3RoLTEscj1lWzBdLG89bmV3IEFycmF5KGk8MD8wOmkpO248aTspb1tuXT10KHIscj1lWysrbl0pO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1NYXRoLm1heCgwLE1hdGgubWluKGktMSxNYXRoLmZsb29yKHQqPWkpKSk7cmV0dXJuIG9bZV0odC1lKX19LHF1YW50aXplOmZ1bmN0aW9uIFpJKHQsZSl7Zm9yKHZhciBuPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSluW2ldPXQoaS8oZS0xKSk7cmV0dXJuIG59LHBhdGg6ZmcscG9seWdvbkFyZWE6ZnVuY3Rpb24gSkkodCl7Zm9yKHZhciBlLG49LTEsaT10Lmxlbmd0aCxyPXRbaS0xXSxvPTA7KytuPGk7KW8rPShlPXIpWzFdKihyPXRbbl0pWzBdLWVbMF0qclsxXTtyZXR1cm4gby8yfSxwb2x5Z29uQ2VudHJvaWQ6ZnVuY3Rpb24gUUkodCl7Zm9yKHZhciBlLG4saT0tMSxyPXQubGVuZ3RoLG89MCxhPTAscz10W3ItMV0sbD0wOysraTxyOylsKz1uPShlPXMpWzBdKihzPXRbaV0pWzFdLXNbMF0qZVsxXSxvKz0oZVswXStzWzBdKSpuLGErPShlWzFdK3NbMV0pKm47cmV0dXJuW28vKGwqPTMpLGEvbF19LHBvbHlnb25IdWxsOmZ1bmN0aW9uIHRSKHQpe2lmKChuPXQubGVuZ3RoKTwzKXJldHVybiBudWxsO3ZhciBlLG4saT1uZXcgQXJyYXkobikscj1uZXcgQXJyYXkobik7Zm9yKGU9MDtlPG47KytlKWlbZV09Wyt0W2VdWzBdLCt0W2VdWzFdLGVdO2ZvcihpLnNvcnQodU0pLGU9MDtlPG47KytlKXJbZV09W2lbZV1bMF0sLWlbZV1bMV1dO3ZhciBvPWhNKGkpLGE9aE0ocikscz1hWzBdPT09b1swXSxsPWFbYS5sZW5ndGgtMV09PT1vW28ubGVuZ3RoLTFdLGM9W107Zm9yKGU9by5sZW5ndGgtMTtlPj0wOy0tZSljLnB1c2godFtpW29bZV1dWzJdXSk7Zm9yKGU9K3M7ZTxhLmxlbmd0aC1sOysrZSljLnB1c2godFtpW2FbZV1dWzJdXSk7cmV0dXJuIGN9LHBvbHlnb25Db250YWluczpmdW5jdGlvbiBlUih0LGUpe2Zvcih2YXIgbixpLHI9dC5sZW5ndGgsbz10W3ItMV0sYT1lWzBdLHM9ZVsxXSxsPW9bMF0sYz1vWzFdLHU9ITEsaD0wO2g8cjsrK2gpbj0obz10W2hdKVswXSwoaT1vWzFdKT5zIT1jPnMmJmE8KGwtbikqKHMtaSkvKGMtaSkrbiYmKHU9IXUpLGw9bixjPWk7cmV0dXJuIHV9LHBvbHlnb25MZW5ndGg6ZnVuY3Rpb24gblIodCl7Zm9yKHZhciBlLG4saT0tMSxyPXQubGVuZ3RoLG89dFtyLTFdLGE9b1swXSxzPW9bMV0sbD0wOysraTxyOyllPWEsbj1zLGUtPWE9KG89dFtpXSlbMF0sbi09cz1vWzFdLGwrPU1hdGguc3FydChlKmUrbipuKTtyZXR1cm4gbH0scXVhZHRyZWU6Tl8scmFuZG9tVW5pZm9ybTpwTSxyYW5kb21Ob3JtYWw6Zk0scmFuZG9tTG9nTm9ybWFsOm1NLHJhbmRvbUJhdGVzOl9NLHJhbmRvbUlyd2luSGFsbDpnTSxyYW5kb21FeHBvbmVudGlhbDp5TSxzY2FsZUJhbmQ6VE0sc2NhbGVQb2ludDpBTSxzY2FsZUlkZW50aXR5OmZ1bmN0aW9uIHQoZSl7dmFyIG47ZnVuY3Rpb24gaSh0KXtyZXR1cm4gaXNOYU4odD0rdCk/bjp0fXJldHVybiBpLmludmVydD1pLGkuZG9tYWluPWkucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9d00uY2FsbCh0LGtNKSxpKTplLnNsaWNlKCl9LGkudW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGkpOm59LGkuY29weT1mdW5jdGlvbigpe3JldHVybiB0KGUpLnVua25vd24obil9LGU9YXJndW1lbnRzLmxlbmd0aD93TS5jYWxsKGUsa00pOlswLDFdLEZNKGkpfSxzY2FsZUxpbmVhcjpWTSxzY2FsZUxvZzpLTSxzY2FsZVN5bWxvZzpmdW5jdGlvbiB0KCl7dmFyIGU9UU0oRE0oKSk7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiB6TShlLHQoKSkuY29uc3RhbnQoZS5jb25zdGFudCgpKX0sdk0uYXBwbHkoZSxhcmd1bWVudHMpfSxzY2FsZU9yZGluYWw6RU0sc2NhbGVJbXBsaWNpdDpNTSxzY2FsZVBvdzpyRSxzY2FsZVNxcnQ6ZnVuY3Rpb24gaVIoKXtyZXR1cm4gckUuYXBwbHkobnVsbCxhcmd1bWVudHMpLmV4cG9uZW50KC41KX0sc2NhbGVRdWFudGlsZTpvRSxzY2FsZVF1YW50aXplOmFFLHNjYWxlVGhyZXNob2xkOmZ1bmN0aW9uIHQoKXt2YXIgZSxuPVsuNV0saT1bMCwxXSxyPTE7ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdDw9dD9pW1NsKG4sdCwwLHIpXTplfXJldHVybiBvLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1TTS5jYWxsKHQpLHI9TWF0aC5taW4obi5sZW5ndGgsaS5sZW5ndGgtMSksbyk6bi5zbGljZSgpfSxvLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVNNLmNhbGwodCkscj1NYXRoLm1pbihuLmxlbmd0aCxpLmxlbmd0aC0xKSxvKTppLnNsaWNlKCl9LG8uaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3ZhciBlPWkuaW5kZXhPZih0KTtyZXR1cm5bbltlLTFdLG5bZV1dfSxvLnVua25vd249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxvKTplfSxvLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLmRvbWFpbihuKS5yYW5nZShpKS51bmtub3duKGUpfSx2TS5hcHBseShvLGFyZ3VtZW50cyl9LHNjYWxlVGltZTpjQSxzY2FsZVV0YzpmdW5jdGlvbiByUigpe3JldHVybiB2TS5hcHBseShsQShFVCx3VCxzVCxyVCxlVCxKRSx2RSxoRSxSVCkuZG9tYWluKFtEYXRlLlVUQygyZTMsMCwxKSxEYXRlLlVUQygyZTMsMCwyKV0pLGFyZ3VtZW50cyl9LHNjYWxlU2VxdWVudGlhbDpmdW5jdGlvbiB0KCl7dmFyIGU9Rk0odUEoKShQTSkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gaEEoZSx0KCkpfSxiTS5hcHBseShlLGFyZ3VtZW50cyl9LHNjYWxlU2VxdWVudGlhbExvZzpmdW5jdGlvbiB0KCl7dmFyIGU9JE0odUEoKSkuZG9tYWluKFsxLDEwXSk7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiBoQShlLHQoKSkuYmFzZShlLmJhc2UoKSl9LGJNLmFwcGx5KGUsYXJndW1lbnRzKX0sc2NhbGVTZXF1ZW50aWFsUG93OmRBLHNjYWxlU2VxdWVudGlhbFNxcnQ6ZnVuY3Rpb24gb1IoKXtyZXR1cm4gZEEuYXBwbHkobnVsbCxhcmd1bWVudHMpLmV4cG9uZW50KC41KX0sc2NhbGVTZXF1ZW50aWFsU3ltbG9nOmZ1bmN0aW9uIHQoKXt2YXIgZT1RTSh1QSgpKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGhBKGUsdCgpKS5jb25zdGFudChlLmNvbnN0YW50KCkpfSxiTS5hcHBseShlLGFyZ3VtZW50cyl9LHNjYWxlU2VxdWVudGlhbFF1YW50aWxlOmZ1bmN0aW9uIHQoKXt2YXIgZT1bXSxuPVBNO2Z1bmN0aW9uIGkodCl7aWYoIWlzTmFOKHQ9K3QpKXJldHVybiBuKChTbChlLHQpLTEpLyhlLmxlbmd0aC0xKSl9cmV0dXJuIGkuZG9tYWluPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlLnNsaWNlKCk7ZT1bXTtmb3IodmFyIG4scj0wLG89dC5sZW5ndGg7cjxvOysrciludWxsPT0obj10W3JdKXx8aXNOYU4obj0rbil8fGUucHVzaChuKTtyZXR1cm4gZS5zb3J0KGJsKSxpfSxpLmludGVycG9sYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGkpOm59LGkuY29weT1mdW5jdGlvbigpe3JldHVybiB0KG4pLmRvbWFpbihlKX0sYk0uYXBwbHkoaSxhcmd1bWVudHMpfSxzY2FsZURpdmVyZ2luZzpmdW5jdGlvbiB0KCl7dmFyIGU9Rk0ocEEoKShQTSkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gaEEoZSx0KCkpfSxiTS5hcHBseShlLGFyZ3VtZW50cyl9LHNjYWxlRGl2ZXJnaW5nTG9nOmZ1bmN0aW9uIHQoKXt2YXIgZT0kTShwQSgpKS5kb21haW4oWy4xLDEsMTBdKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGhBKGUsdCgpKS5iYXNlKGUuYmFzZSgpKX0sYk0uYXBwbHkoZSxhcmd1bWVudHMpfSxzY2FsZURpdmVyZ2luZ1BvdzpmQSxzY2FsZURpdmVyZ2luZ1NxcnQ6ZnVuY3Rpb24gYVIoKXtyZXR1cm4gZkEuYXBwbHkobnVsbCxhcmd1bWVudHMpLmV4cG9uZW50KC41KX0sc2NhbGVEaXZlcmdpbmdTeW1sb2c6ZnVuY3Rpb24gdCgpe3ZhciBlPVFNKHBBKCkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gaEEoZSx0KCkpLmNvbnN0YW50KGUuY29uc3RhbnQoKSl9LGJNLmFwcGx5KGUsYXJndW1lbnRzKX0sdGlja0Zvcm1hdDpITSxzY2hlbWVDYXRlZ29yeTEwOmdBLHNjaGVtZUFjY2VudDpfQSxzY2hlbWVEYXJrMjp5QSxzY2hlbWVQYWlyZWQ6dkEsc2NoZW1lUGFzdGVsMTpiQSxzY2hlbWVQYXN0ZWwyOnhBLHNjaGVtZVNldDE6d0Esc2NoZW1lU2V0MjpTQSxzY2hlbWVTZXQzOk1BLHNjaGVtZVRhYmxlYXUxMDpFQSxpbnRlcnBvbGF0ZUJyQkc6QUEsc2NoZW1lQnJCRzpDQSxpbnRlcnBvbGF0ZVBSR246TEEsc2NoZW1lUFJHbjprQSxpbnRlcnBvbGF0ZVBpWUc6TkEsc2NoZW1lUGlZRzpQQSxpbnRlcnBvbGF0ZVB1T3I6UkEsc2NoZW1lUHVPcjpJQSxpbnRlcnBvbGF0ZVJkQnU6ekEsc2NoZW1lUmRCdTpPQSxpbnRlcnBvbGF0ZVJkR3k6QkEsc2NoZW1lUmRHeTpEQSxpbnRlcnBvbGF0ZVJkWWxCdTpGQSxzY2hlbWVSZFlsQnU6SEEsaW50ZXJwb2xhdGVSZFlsR246VUEsc2NoZW1lUmRZbEduOlZBLGludGVycG9sYXRlU3BlY3RyYWw6R0Esc2NoZW1lU3BlY3RyYWw6akEsaW50ZXJwb2xhdGVCdUduOnFBLHNjaGVtZUJ1R246V0EsaW50ZXJwb2xhdGVCdVB1OlhBLHNjaGVtZUJ1UHU6WUEsaW50ZXJwb2xhdGVHbkJ1OktBLHNjaGVtZUduQnU6JEEsaW50ZXJwb2xhdGVPclJkOkpBLHNjaGVtZU9yUmQ6WkEsaW50ZXJwb2xhdGVQdUJ1R246dGssc2NoZW1lUHVCdUduOlFBLGludGVycG9sYXRlUHVCdTpuayxzY2hlbWVQdUJ1OmVrLGludGVycG9sYXRlUHVSZDpyayxzY2hlbWVQdVJkOmlrLGludGVycG9sYXRlUmRQdTphayxzY2hlbWVSZFB1Om9rLGludGVycG9sYXRlWWxHbkJ1OmxrLHNjaGVtZVlsR25CdTpzayxpbnRlcnBvbGF0ZVlsR246dWssc2NoZW1lWWxHbjpjayxpbnRlcnBvbGF0ZVlsT3JCcjpkayxzY2hlbWVZbE9yQnI6aGssaW50ZXJwb2xhdGVZbE9yUmQ6Zmssc2NoZW1lWWxPclJkOnBrLGludGVycG9sYXRlQmx1ZXM6Z2ssc2NoZW1lQmx1ZXM6bWssaW50ZXJwb2xhdGVHcmVlbnM6eWssc2NoZW1lR3JlZW5zOl9rLGludGVycG9sYXRlR3JleXM6Ymssc2NoZW1lR3JleXM6dmssaW50ZXJwb2xhdGVQdXJwbGVzOndrLHNjaGVtZVB1cnBsZXM6eGssaW50ZXJwb2xhdGVSZWRzOk1rLHNjaGVtZVJlZHM6U2ssaW50ZXJwb2xhdGVPcmFuZ2VzOlRrLHNjaGVtZU9yYW5nZXM6RWssaW50ZXJwb2xhdGVDaXZpZGlzOmZ1bmN0aW9uIHNSKHQpe3JldHVybiB0PU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksInJnYigiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoLTQuNTQtdCooMzUuMzQtdCooMjM4MS43My10Kig2NDAyLjctdCooNzAyNC43Mi0yNzEwLjU3KnQpKSkpKSkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgzMi40OSt0KigxNzAuNzMrdCooNTIuODItdCooMTMxLjQ2LXQqKDE3Ni41OC02Ny4zNyp0KSkpKSkpKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoODEuMjQrdCooNDQyLjM2LXQqKDI0ODIuNDMtdCooNjE2Ny4yNC10Kig2NjE0Ljk0LTI0NzUuNjcqdCkpKSkpKSkrIikifSxpbnRlcnBvbGF0ZUN1YmVoZWxpeERlZmF1bHQ6Q2ssaW50ZXJwb2xhdGVSYWluYm93OmZ1bmN0aW9uIGxSKHQpeyh0PDB8fHQ+MSkmJih0LT1NYXRoLmZsb29yKHQpKTt2YXIgZT1NYXRoLmFicyh0LS41KTtyZXR1cm4gTGsuaD0zNjAqdC0xMDAsTGsucz0xLjUtMS41KmUsTGsubD0uOC0uOSplLExrKyIifSxpbnRlcnBvbGF0ZVdhcm06QWssaW50ZXJwb2xhdGVDb29sOmtrLGludGVycG9sYXRlU2luZWJvdzpmdW5jdGlvbiBjUih0KXt2YXIgZTtyZXR1cm4gdD0oLjUtdCkqTWF0aC5QSSxQay5yPTI1NSooZT1NYXRoLnNpbih0KSkqZSxQay5nPTI1NSooZT1NYXRoLnNpbih0K05rKSkqZSxQay5iPTI1NSooZT1NYXRoLnNpbih0K0lrKSkqZSxQaysiIn0saW50ZXJwb2xhdGVUdXJibzpmdW5jdGlvbiB1Uih0KXtyZXR1cm4gdD1NYXRoLm1heCgwLE1hdGgubWluKDEsdCkpLCJyZ2IoIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKDM0LjYxK3QqKDExNzIuMzMtdCooMTA3OTMuNTYtdCooMzMzMDAuMTItdCooMzgzOTQuNDktMTQ4MjUuMDUqdCkpKSkpKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKDIzLjMxK3QqKDU1Ny4zMyt0KigxMjI1LjMzLXQqKDM1NzQuOTYtdCooMTA3My43Nys3MDcuNTYqdCkpKSkpKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKDI3LjIrdCooMzIxMS4xLXQqKDE1MzI3Ljk3LXQqKDI3ODE0LXQqKDIyNTY5LjE4LTY4MzguNjYqdCkpKSkpKSkrIikifSxpbnRlcnBvbGF0ZVZpcmlkaXM6T2ssaW50ZXJwb2xhdGVNYWdtYTp6ayxpbnRlcnBvbGF0ZUluZmVybm86RGssaW50ZXJwb2xhdGVQbGFzbWE6QmssY3JlYXRlOmZ1bmN0aW9uIGhSKHQpe3JldHVybiBTdSh5Yyh0KS5jYWxsKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpfSxjcmVhdG9yOnljLGxvY2FsOm5oLG1hdGNoZXI6U2MsbW91c2U6YWgsbmFtZXNwYWNlOm1jLG5hbWVzcGFjZXM6ZmMsY2xpZW50UG9pbnQ6b2gsc2VsZWN0OlN1LHNlbGVjdEFsbDpzaCxzZWxlY3Rpb246d3Usc2VsZWN0b3I6YmMsc2VsZWN0b3JBbGw6d2Msc3R5bGU6SGMsdG91Y2g6bGgsdG91Y2hlczpmdW5jdGlvbiBkUih0LGUpe251bGw9PWUmJihlPXJoKCkudG91Y2hlcyk7Zm9yKHZhciBuPTAsaT1lP2UubGVuZ3RoOjAscj1uZXcgQXJyYXkoaSk7bjxpOysrbilyW25dPW9oKHQsZVtuXSk7cmV0dXJuIHJ9LHdpbmRvdzpPYyxnZXQgZXZlbnQoKXtyZXR1cm4gdXV9LGN1c3RvbUV2ZW50Omd1LGFyYzpmdW5jdGlvbiBwUigpe3ZhciB0PVFrLGU9dEwsbj1IaygwKSxpPW51bGwscj1lTCxvPW5MLGE9aUwscz1udWxsO2Z1bmN0aW9uIGwoKXt2YXIgbCxjLHU9K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpLGg9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLGQ9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyktJGsscD1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS0kayxmPUZrKHAtZCksbT1wPmQ7aWYoc3x8KHM9bD1mZygpKSxoPHUmJihjPWgsaD11LHU9YyksaD5ZaylpZihmPktrLVlrKXMubW92ZVRvKGgqVWsoZCksaCpXayhkKSkscy5hcmMoMCwwLGgsZCxwLCFtKSx1PllrJiYocy5tb3ZlVG8odSpVayhwKSx1KldrKHApKSxzLmFyYygwLDAsdSxwLGQsbSkpO2Vsc2V7dmFyIGcsXyx5PWQsdj1wLGI9ZCx4PXAsdz1mLFM9ZixNPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsRT1NPllrJiYoaT8raS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6cWsodSp1K2gqaCkpLFQ9R2soRmsoaC11KS8yLCtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksQz1ULEE9VDtpZihFPllrKXt2YXIgaz1KayhFL3UqV2soTSkpLEw9SmsoRS9oKldrKE0pKTsody09MiprKT5Zaz8oYis9ayo9bT8xOi0xLHgtPWspOih3PTAsYj14PShkK3ApLzIpLChTLT0yKkwpPllrPyh5Kz1MKj1tPzE6LTEsdi09TCk6KFM9MCx5PXY9KGQrcCkvMil9dmFyIFA9aCpVayh5KSxOPWgqV2soeSksST11KlVrKHgpLFI9dSpXayh4KTtpZihUPllrKXt2YXIgTyx6PWgqVWsodiksRD1oKldrKHYpLEI9dSpVayhiKSxIPXUqV2soYik7aWYoZjxYayYmKE89ckwoUCxOLEIsSCx6LEQsSSxSKSkpe3ZhciBGPVAtT1swXSxWPU4tT1sxXSxVPXotT1swXSxqPUQtT1sxXSxHPTEvV2soWmsoKEYqVStWKmopLyhxayhGKkYrVipWKSpxayhVKlUraipqKSkpLzIpLFc9cWsoT1swXSpPWzBdK09bMV0qT1sxXSk7Qz1HayhULCh1LVcpLyhHLTEpKSxBPUdrKFQsKGgtVykvKEcrMSkpfX1TPllrP0E+WWs/KGc9b0woQixILFAsTixoLEEsbSksXz1vTCh6LEQsSSxSLGgsQSxtKSxzLm1vdmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEE8VD9zLmFyYyhnLmN4LGcuY3ksQSxWayhnLnkwMSxnLngwMSksVmsoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEEsVmsoZy55MDEsZy54MDEpLFZrKGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLGgsVmsoZy5jeStnLnkxMSxnLmN4K2cueDExKSxWayhfLmN5K18ueTExLF8uY3grXy54MTEpLCFtKSxzLmFyYyhfLmN4LF8uY3ksQSxWayhfLnkxMSxfLngxMSksVmsoXy55MDEsXy54MDEpLCFtKSkpOihzLm1vdmVUbyhQLE4pLHMuYXJjKDAsMCxoLHksdiwhbSkpOnMubW92ZVRvKFAsTiksdT5ZayYmdz5Zaz9DPllrPyhnPW9MKEksUix6LEQsdSwtQyxtKSxfPW9MKFAsTixCLEgsdSwtQyxtKSxzLmxpbmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEM8VD9zLmFyYyhnLmN4LGcuY3ksQyxWayhnLnkwMSxnLngwMSksVmsoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEMsVmsoZy55MDEsZy54MDEpLFZrKGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLHUsVmsoZy5jeStnLnkxMSxnLmN4K2cueDExKSxWayhfLmN5K18ueTExLF8uY3grXy54MTEpLG0pLHMuYXJjKF8uY3gsXy5jeSxDLFZrKF8ueTExLF8ueDExKSxWayhfLnkwMSxfLngwMSksIW0pKSk6cy5hcmMoMCwwLHUseCxiLG0pOnMubGluZVRvKEksUil9ZWxzZSBzLm1vdmVUbygwLDApO2lmKHMuY2xvc2VQYXRoKCksbClyZXR1cm4gcz1udWxsLGwrIiJ8fG51bGx9cmV0dXJuIGwuY2VudHJvaWQ9ZnVuY3Rpb24oKXt2YXIgbj0oK3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzIsaT0oK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArby5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzItWGsvMjtyZXR1cm5bVWsoaSkqbixXayhpKSpuXX0sbC5pbm5lclJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOkhrKCtlKSxsKTp0fSxsLm91dGVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGwpOmV9LGwuY29ybmVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGwpOm59LGwucGFkUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxsKTppfSxsLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIaygrdCksbCk6cn0sbC5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxsKTpvfSxsLnBhZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGwpOmF9LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1udWxsPT10P251bGw6dCxsKTpzfSxsfSxhcmVhOmhMLGxpbmU6dUwscGllOmZ1bmN0aW9uIGZSKCl7dmFyIHQ9cEwsZT1kTCxuPW51bGwsaT1IaygwKSxyPUhrKEtrKSxvPUhrKDApO2Z1bmN0aW9uIGEoYSl7dmFyIHMsbCxjLHUsaCxkPWEubGVuZ3RoLHA9MCxmPW5ldyBBcnJheShkKSxtPW5ldyBBcnJheShkKSxnPStpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxfPU1hdGgubWluKEtrLE1hdGgubWF4KC1LayxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1nKSkseT1NYXRoLm1pbihNYXRoLmFicyhfKS9kLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKSx2PXkqKF88MD8tMToxKTtmb3Iocz0wO3M8ZDsrK3MpKGg9bVtmW3NdPXNdPSt0KGFbc10scyxhKSk+MCYmKHArPWgpO2ZvcihudWxsIT1lP2Yuc29ydCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZShtW3RdLG1bbl0pfSkpOm51bGwhPW4mJmYuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbihhW3RdLGFbZV0pfSkpLHM9MCxjPXA/KF8tZCp2KS9wOjA7czxkOysrcyxnPXUpbVtsPWZbc11dPXtkYXRhOmFbbF0saW5kZXg6cyx2YWx1ZTpoPW1bbF0sc3RhcnRBbmdsZTpnLGVuZEFuZ2xlOnU9ZysoaD4wP2gqYzowKSt2LHBhZEFuZ2xlOnl9O3JldHVybiBtfXJldHVybiBhLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6SGsoK2UpLGEpOnR9LGEuc29ydFZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG49bnVsbCxhKTplfSxhLnNvcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxlPW51bGwsYSk6bn0sYS5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGEpOml9LGEuZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIaygrdCksYSk6cn0sYS5wYWRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxhKTpvfSxhfSxhcmVhUmFkaWFsOnZMLHJhZGlhbEFyZWE6dkwsbGluZVJhZGlhbDp5TCxyYWRpYWxMaW5lOnlMLHBvaW50UmFkaWFsOmJMLGxpbmtIb3Jpem9udGFsOmZ1bmN0aW9uIG1SKCl7cmV0dXJuIE1MKEVMKX0sbGlua1ZlcnRpY2FsOmZ1bmN0aW9uIGdSKCl7cmV0dXJuIE1MKFRMKX0sbGlua1JhZGlhbDpmdW5jdGlvbiBfUigpe3ZhciB0PU1MKENMKTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0fSxzeW1ib2w6ZnVuY3Rpb24geVIoKXt2YXIgdD1IayhBTCksZT1Iayg2NCksbj1udWxsO2Z1bmN0aW9uIGkoKXt2YXIgaTtpZihufHwobj1pPWZnKCkpLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLmRyYXcobiwrZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGkpcmV0dXJuIG49bnVsbCxpKyIifHxudWxsfXJldHVybiBpLnR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpIayhlKSxpKTp0fSxpLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIaygrdCksaSk6ZX0saS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/bnVsbDp0LGkpOm59LGl9LHN5bWJvbHM6V0wsc3ltYm9sQ2lyY2xlOkFMLHN5bWJvbENyb3NzOmtMLHN5bWJvbERpYW1vbmQ6Tkwsc3ltYm9sU3F1YXJlOkRMLHN5bWJvbFN0YXI6ekwsc3ltYm9sVHJpYW5nbGU6SEwsc3ltYm9sV3llOkdMLGN1cnZlQmFzaXNDbG9zZWQ6ZnVuY3Rpb24gdlIodCl7cmV0dXJuIG5ldyBLTCh0KX0sY3VydmVCYXNpc09wZW46ZnVuY3Rpb24gYlIodCl7cmV0dXJuIG5ldyBaTCh0KX0sY3VydmVCYXNpczokTCxjdXJ2ZUJ1bmRsZTpRTCxjdXJ2ZUNhcmRpbmFsQ2xvc2VkOnJQLGN1cnZlQ2FyZGluYWxPcGVuOmFQLGN1cnZlQ2FyZGluYWw6blAsY3VydmVDYXRtdWxsUm9tQ2xvc2VkOmhQLGN1cnZlQ2F0bXVsbFJvbU9wZW46cFAsY3VydmVDYXRtdWxsUm9tOmNQLGN1cnZlTGluZWFyQ2xvc2VkOmZ1bmN0aW9uIHhSKHQpe3JldHVybiBuZXcgZlAodCl9LGN1cnZlTGluZWFyOnNMLGN1cnZlTW9ub3RvbmVYOmZ1bmN0aW9uIHdSKHQpe3JldHVybiBuZXcgdlAodCl9LGN1cnZlTW9ub3RvbmVZOmZ1bmN0aW9uIFNSKHQpe3JldHVybiBuZXcgYlAodCl9LGN1cnZlTmF0dXJhbDpmdW5jdGlvbiBNUih0KXtyZXR1cm4gbmV3IHdQKHQpfSxjdXJ2ZVN0ZXA6ZnVuY3Rpb24gRVIodCl7cmV0dXJuIG5ldyBNUCh0LC41KX0sY3VydmVTdGVwQWZ0ZXI6ZnVuY3Rpb24gVFIodCl7cmV0dXJuIG5ldyBNUCh0LDEpfSxjdXJ2ZVN0ZXBCZWZvcmU6ZnVuY3Rpb24gQ1IodCl7cmV0dXJuIG5ldyBNUCh0LDApfSxzdGFjazpmdW5jdGlvbiBBUigpe3ZhciB0PUhrKFtdKSxlPVRQLG49RVAsaT1DUDtmdW5jdGlvbiByKHIpe3ZhciBvLGEscz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxsPXIubGVuZ3RoLGM9cy5sZW5ndGgsdT1uZXcgQXJyYXkoYyk7Zm9yKG89MDtvPGM7KytvKXtmb3IodmFyIGgsZD1zW29dLHA9dVtvXT1uZXcgQXJyYXkobCksZj0wO2Y8bDsrK2YpcFtmXT1oPVswLCtpKHJbZl0sZCxmLHIpXSxoLmRhdGE9cltmXTtwLmtleT1kfWZvcihvPTAsYT1lKHUpO288YzsrK28pdVthW29dXS5pbmRleD1vO3JldHVybiBuKHUsYSksdX1yZXR1cm4gci5rZXlzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6SGsoeEwuY2FsbChlKSkscik6dH0sci52YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxyKTppfSxyLm9yZGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW51bGw9PXQ/VFA6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIayh4TC5jYWxsKHQpKSxyKTplfSxyLm9mZnNldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P0VQOnQscik6bn0scn0sc3RhY2tPZmZzZXRFeHBhbmQ6ZnVuY3Rpb24ga1IodCxlKXtpZigoaT10Lmxlbmd0aCk+MCl7Zm9yKHZhciBuLGkscixvPTAsYT10WzBdLmxlbmd0aDtvPGE7KytvKXtmb3Iocj1uPTA7bjxpOysrbilyKz10W25dW29dWzFdfHwwO2lmKHIpZm9yKG49MDtuPGk7KytuKXRbbl1bb11bMV0vPXJ9RVAodCxlKX19LHN0YWNrT2Zmc2V0RGl2ZXJnaW5nOmZ1bmN0aW9uIExSKHQsZSl7aWYoKHM9dC5sZW5ndGgpPjApZm9yKHZhciBuLGkscixvLGEscyxsPTAsYz10W2VbMF1dLmxlbmd0aDtsPGM7KytsKWZvcihvPWE9MCxuPTA7bjxzOysrbikocj0oaT10W2Vbbl1dW2xdKVsxXS1pWzBdKT4wPyhpWzBdPW8saVsxXT1vKz1yKTpyPDA/KGlbMV09YSxpWzBdPWErPXIpOihpWzBdPTAsaVsxXT1yKX0sc3RhY2tPZmZzZXROb25lOkVQLHN0YWNrT2Zmc2V0U2lsaG91ZXR0ZTpmdW5jdGlvbiBQUih0LGUpe2lmKChuPXQubGVuZ3RoKT4wKXtmb3IodmFyIG4saT0wLHI9dFtlWzBdXSxvPXIubGVuZ3RoO2k8bzsrK2kpe2Zvcih2YXIgYT0wLHM9MDthPG47KythKXMrPXRbYV1baV1bMV18fDA7cltpXVsxXSs9cltpXVswXT0tcy8yfUVQKHQsZSl9fSxzdGFja09mZnNldFdpZ2dsZTpmdW5jdGlvbiBOUih0LGUpe2lmKChyPXQubGVuZ3RoKT4wJiYoaT0obj10W2VbMF1dKS5sZW5ndGgpPjApe2Zvcih2YXIgbixpLHIsbz0wLGE9MTthPGk7KythKXtmb3IodmFyIHM9MCxsPTAsYz0wO3M8cjsrK3Mpe2Zvcih2YXIgdT10W2Vbc11dLGg9dVthXVsxXXx8MCxkPShoLSh1W2EtMV1bMV18fDApKS8yLHA9MDtwPHM7KytwKXt2YXIgZj10W2VbcF1dO2QrPShmW2FdWzFdfHwwKS0oZlthLTFdWzFdfHwwKX1sKz1oLGMrPWQqaH1uW2EtMV1bMV0rPW5bYS0xXVswXT1vLGwmJihvLT1jL2wpfW5bYS0xXVsxXSs9blthLTFdWzBdPW8sRVAodCxlKX19LHN0YWNrT3JkZXJBcHBlYXJhbmNlOkFQLHN0YWNrT3JkZXJBc2NlbmRpbmc6TFAsc3RhY2tPcmRlckRlc2NlbmRpbmc6ZnVuY3Rpb24gSVIodCl7cmV0dXJuIExQKHQpLnJldmVyc2UoKX0sc3RhY2tPcmRlckluc2lkZU91dDpmdW5jdGlvbiBSUih0KXt2YXIgZSxuLGk9dC5sZW5ndGgscj10Lm1hcChQUCksbz1BUCh0KSxhPTAscz0wLGw9W10sYz1bXTtmb3IoZT0wO2U8aTsrK2Upbj1vW2VdLGE8cz8oYSs9cltuXSxsLnB1c2gobikpOihzKz1yW25dLGMucHVzaChuKSk7cmV0dXJuIGMucmV2ZXJzZSgpLmNvbmNhdChsKX0sc3RhY2tPcmRlck5vbmU6VFAsc3RhY2tPcmRlclJldmVyc2U6ZnVuY3Rpb24gT1IodCl7cmV0dXJuIFRQKHQpLnJldmVyc2UoKX0sdGltZUludGVydmFsOmNFLHRpbWVNaWxsaXNlY29uZDpoRSx0aW1lTWlsbGlzZWNvbmRzOmRFLHV0Y01pbGxpc2Vjb25kOmhFLHV0Y01pbGxpc2Vjb25kczpkRSx0aW1lU2Vjb25kOnZFLHRpbWVTZWNvbmRzOmJFLHV0Y1NlY29uZDp2RSx1dGNTZWNvbmRzOmJFLHRpbWVNaW51dGU6d0UsdGltZU1pbnV0ZXM6U0UsdGltZUhvdXI6RUUsdGltZUhvdXJzOlRFLHRpbWVEYXk6QUUsdGltZURheXM6a0UsdGltZVdlZWs6UEUsdGltZVdlZWtzOkJFLHRpbWVTdW5kYXk6UEUsdGltZVN1bmRheXM6QkUsdGltZU1vbmRheTpORSx0aW1lTW9uZGF5czpIRSx0aW1lVHVlc2RheTpJRSx0aW1lVHVlc2RheXM6RkUsdGltZVdlZG5lc2RheTpSRSx0aW1lV2VkbmVzZGF5czpWRSx0aW1lVGh1cnNkYXk6T0UsdGltZVRodXJzZGF5czpVRSx0aW1lRnJpZGF5OnpFLHRpbWVGcmlkYXlzOmpFLHRpbWVTYXR1cmRheTpERSx0aW1lU2F0dXJkYXlzOkdFLHRpbWVNb250aDpxRSx0aW1lTW9udGhzOllFLHRpbWVZZWFyOiRFLHRpbWVZZWFyczpLRSx1dGNNaW51dGU6SkUsdXRjTWludXRlczpRRSx1dGNIb3VyOmVULHV0Y0hvdXJzOm5ULHV0Y0RheTpyVCx1dGNEYXlzOm9ULHV0Y1dlZWs6c1QsdXRjV2Vla3M6ZlQsdXRjU3VuZGF5OnNULHV0Y1N1bmRheXM6ZlQsdXRjTW9uZGF5OmxULHV0Y01vbmRheXM6bVQsdXRjVHVlc2RheTpjVCx1dGNUdWVzZGF5czpnVCx1dGNXZWRuZXNkYXk6dVQsdXRjV2VkbmVzZGF5czpfVCx1dGNUaHVyc2RheTpoVCx1dGNUaHVyc2RheXM6eVQsdXRjRnJpZGF5OmRULHV0Y0ZyaWRheXM6dlQsdXRjU2F0dXJkYXk6cFQsdXRjU2F0dXJkYXlzOmJULHV0Y01vbnRoOndULHV0Y01vbnRoczpTVCx1dGNZZWFyOkVULHV0Y1llYXJzOlRULHRpbWVGb3JtYXREZWZhdWx0TG9jYWxlOlFDLGdldCB0aW1lRm9ybWF0KCl7cmV0dXJuIE5UfSxnZXQgdGltZVBhcnNlKCl7cmV0dXJuIElUfSxnZXQgdXRjRm9ybWF0KCl7cmV0dXJuIFJUfSxnZXQgdXRjUGFyc2UoKXtyZXR1cm4gT1R9LHRpbWVGb3JtYXRMb2NhbGU6TFQsaXNvRm9ybWF0OmVBLGlzb1BhcnNlOmlBLG5vdzpUcCx0aW1lcjprcCx0aW1lckZsdXNoOkxwLHRpbWVvdXQ6UnAsaW50ZXJ2YWw6ZnVuY3Rpb24gelIodCxlLG4pe3ZhciBpPW5ldyBBcCxyPWU7cmV0dXJuIG51bGw9PWU/KGkucmVzdGFydCh0LGUsbiksaSk6KGU9K2Usbj1udWxsPT1uP1RwKCk6K24saS5yZXN0YXJ0KChmdW5jdGlvbiBvKGEpe2ErPXIsaS5yZXN0YXJ0KG8scis9ZSxuKSx0KGEpfSksZSxuKSxpKX0sdHJhbnNpdGlvbjpfZixhY3RpdmU6ZnVuY3Rpb24gRFIodCxlKXt2YXIgbixpLHI9dC5fX3RyYW5zaXRpb247aWYocilmb3IoaSBpbiBlPW51bGw9PWU/bnVsbDplKyIiLHIpaWYoKG49cltpXSkuc3RhdGU+MSYmbi5uYW1lPT09ZSlyZXR1cm4gbmV3IGdmKFtbdF1dLE1tLGUsK2kpO3JldHVybiBudWxsfSxpbnRlcnJ1cHQ6VnAsdm9yb25vaTpmdW5jdGlvbiBCUigpe3ZhciB0PUlQLGU9UlAsbj1udWxsO2Z1bmN0aW9uIGkoaSl7cmV0dXJuIG5ldyBtTihpLm1hcCgoZnVuY3Rpb24obixyKXt2YXIgbz1bTWF0aC5yb3VuZCh0KG4scixpKS9oTikqaE4sTWF0aC5yb3VuZChlKG4scixpKS9oTikqaE5dO3JldHVybiBvLmluZGV4PXIsby5kYXRhPW4sb30pKSxuKX1yZXR1cm4gaS5wb2x5Z29ucz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0KS5wb2x5Z29ucygpfSxpLmxpbmtzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpLmxpbmtzKCl9LGkudHJpYW5nbGVzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpLnRyaWFuZ2xlcygpfSxpLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpOUCgrZSksaSk6dH0saS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TlAoK3QpLGkpOmV9LGkuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/bnVsbDpbWyt0WzBdWzBdLCt0WzBdWzFdXSxbK3RbMV1bMF0sK3RbMV1bMV1dXSxpKTpuJiZbW25bMF1bMF0sblswXVsxXV0sW25bMV1bMF0sblsxXVsxXV1dfSxpLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9udWxsOltbMCwwXSxbK3RbMF0sK3RbMV1dXSxpKTpuJiZbblsxXVswXS1uWzBdWzBdLG5bMV1bMV0tblswXVsxXV19LGl9LHpvb206a04sem9vbVRyYW5zZm9ybTpiTix6b29tSWRlbnRpdHk6dk59KTtjb25zdCBIUj1bIiNmZjcwNDMiLCIjMDA3N2JiIiwiI2NjMzMxMSIsIiMzM2JiZWUiLCIjZWUzMzc3IiwiIzAwOTk4OCIsIiNiYmJiYmIiXTtjbGFzcyBGUiBleHRlbmRzIG1se2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9leHBlcmltZW50cz1bXX1sb2FkKCl7Y29uc3QgdD1fcigpLmV4cGVyaW1lbnRzKCk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57U2UuZXhwb3J0cy5pc0VxdWFsKHRoaXMuX2V4cGVyaW1lbnRzLHQpfHwodGhpcy5fZXhwZXJpbWVudHM9dCx0aGlzLmVtaXRDaGFuZ2UoKSl9KSl9Z2V0RXhwZXJpbWVudHMoKXtyZXR1cm4gdGhpcy5fZXhwZXJpbWVudHMuc2xpY2UoKX19Y29uc3QgVlI9bmV3IEZSO2NsYXNzIFVSe2NvbnN0cnVjdG9yKHQ9SFIpe3RoaXMucGFsZXR0ZT10LHRoaXMuaWRlbnRpZmllcnM9d2coKX1zZXREb21haW4odCl7cmV0dXJuIHRoaXMuaWRlbnRpZmllcnM9d2coKSx0LmZvckVhY2goKCh0LGUpPT57dGhpcy5pZGVudGlmaWVycy5zZXQodCx0aGlzLnBhbGV0dGVbZSV0aGlzLnBhbGV0dGUubGVuZ3RoXSl9KSksdGhpc31nZXRDb2xvcih0KXtpZighdGhpcy5pZGVudGlmaWVycy5oYXModCkpdGhyb3cgbmV3IEVycm9yKGBTdHJpbmcgJHt0fSB3YXMgbm90IGluIHRoZSBkb21haW4uYCk7cmV0dXJuIHRoaXMuaWRlbnRpZmllcnMuZ2V0KHQpfX1mdW5jdGlvbiBqUih0LGUpe2NvbnN0IG49bmV3IFVSO2Z1bmN0aW9uIGkoKXtuLnNldERvbWFpbihlKCkpfXJldHVybiB0LmFkZExpc3RlbmVyKGkpLGkoKSx0PT5uLmdldENvbG9yKHQpfWNvbnN0IEdSPWpSKHZsLCgoKT0+dmwuZ2V0UnVucygpKSk7alIoVlIsKCgpPT5WUi5nZXRFeHBlcmltZW50cygpLm1hcCgoKHtuYW1lOnR9KT0+dCkpKSksZWwoe21vZHVsZU5hbWU6InJ1bi1jb2xvci1zdHlsZSIsc3R5bGVDb250ZW50OiJcbiAgICBbY29sb3ItY2xhc3M9J2xpZ2h0LWJsdWUnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLWxpZ2h0LWJsdWUtNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLWxpZ2h0LWJsdWUtNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1saWdodC1ibHVlLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLWxpZ2h0LWJsdWUtOTAwKTtcbiAgICB9XG4gICAgW2NvbG9yLWNsYXNzPSdyZWQnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXJlZC01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItcmVkLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItcmVkLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXJlZC05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J2dyZWVuJ10gcGFwZXItY2hlY2tib3gge1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItZ3JlZW4tNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi05MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J3B1cnBsZSddIHBhcGVyLWNoZWNrYm94IHtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItcHVycGxlLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1wdXJwbGUtNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1wdXJwbGUtOTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItcHVycGxlLTkwMCk7XG4gICAgfVxuICAgIFtjb2xvci1jbGFzcz0ndGVhbCddIHBhcGVyLWNoZWNrYm94IHtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItdGVhbC01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItdGVhbC01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXRlYWwtOTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItdGVhbC05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J3BpbmsnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXBpbmstNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXBpbmstNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1waW5rLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXBpbmstOTAwKTtcbiAgICB9XG4gICAgW2NvbG9yLWNsYXNzPSdvcmFuZ2UnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItb3JhbmdlLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItb3JhbmdlLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J2Jyb3duJ10gcGFwZXItY2hlY2tib3gge1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItYnJvd24tNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi05MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J2luZGlnbyddIHBhcGVyLWNoZWNrYm94IHtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1pbmRpZ28tNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1pbmRpZ28tOTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTkwMCk7XG4gICAgfVxuICAifSk7bGV0IFdSPWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5uYW1lcz1bXSx0aGlzLmNvbG9yaW5nPXtnZXRDb2xvcjooKT0+IiJ9LHRoaXMucmVnZXg9IiIsdGhpcy5zZWxlY3Rpb25TdGF0ZT17fSx0aGlzLm1heE5hbWVzVG9FbmFibGVCeURlZmF1bHQ9NDAsdGhpcy5fZGVib3VuY2VkUmVnZXhDaGFuZ2U9dGhpcy5fZGVib3VuY2VkUmVnZXhDaGFuZ2VJbXBsKCl9X2RlYm91bmNlZFJlZ2V4Q2hhbmdlSW1wbCgpe3ZhciB0PVNlLmV4cG9ydHMuZGVib3VuY2UoKHQ9Pnt0aGlzLnJlZ2V4PXR9KSwxNTAse2xlYWRpbmc6ITF9KTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLiQkKCIjbmFtZXMtcmVnZXgiKS52YWx1ZTsiIj09ZT90aGlzLmFzeW5jKCgoKT0+e3RoaXMucmVnZXg9ZX0pLDMwKTp0KGUpfX1nZXQgX3JlZ2V4KCl7dmFyIHQ9dGhpcy5yZWdleDt0cnl7cmV0dXJuIG5ldyBSZWdFeHAodCl9Y2F0Y2godCl7cmV0dXJuIG51bGx9fV9zZXRJc29sYXRvckljb24oKXt2YXIgdD10aGlzLnNlbGVjdGlvblN0YXRlLGU9U2UuZXhwb3J0cy5maWx0ZXIoU2UuZXhwb3J0cy52YWx1ZXModCkpLmxlbmd0aDtBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgiLmlzb2xhdG9yIikpLmZvckVhY2goKGZ1bmN0aW9uKG4pe24uaWNvbj0xPT09ZSYmdFtuLm5hbWVdPyJyYWRpby1idXR0b24tY2hlY2tlZCI6InJhZGlvLWJ1dHRvbi11bmNoZWNrZWQifSkpfWNvbXB1dGVOYW1lc01hdGNoaW5nUmVnZXgodCxlKXtjb25zdCBuPXRoaXMuX3JlZ2V4O3JldHVybiBuP3RoaXMubmFtZXMuZmlsdGVyKCh0PT5uLnRlc3QodCkpKTp0aGlzLm5hbWVzfWNvbXB1dGVPdXRTZWxlY3RlZCh0LGUpe3ZhciBuPXRoaXMuc2VsZWN0aW9uU3RhdGUsaT10aGlzLm5hbWVzTWF0Y2hpbmdSZWdleC5sZW5ndGg8PXRoaXMubWF4TmFtZXNUb0VuYWJsZUJ5RGVmYXVsdDtyZXR1cm4gdGhpcy5uYW1lc01hdGNoaW5nUmVnZXguZmlsdGVyKCh0PT5udWxsPT1uW3RdP2k6blt0XSkpfXN5bmNocm9uaXplQ29sb3JzKHQpe3RoaXMuX3NldElzb2xhdG9ySWNvbigpLHRoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCJwYXBlci1jaGVja2JveCIpLmZvckVhY2goKHQ9Pntjb25zdCBlPXRoaXMuY29sb3JpbmcuZ2V0Q29sb3IodC5uYW1lKTt0LnVwZGF0ZVN0eWxlcyh7Ii0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvciI6ZSwiLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvciI6ZSwiLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3IiOmUsIi0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvciI6ZX0pfSkpLHRoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuaXNvbGF0b3IiKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10aGlzLmNvbG9yaW5nLmdldENvbG9yKHQubmFtZSk7dC5zdHlsZS5jb2xvcj1lfSkpLHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy51cGRhdGVTdHlsZXMoKX0pKX1faXNvbGF0ZU5hbWUodCl7dmFyIGU9dC50YXJnZXQubmFtZSxuPXt9O3RoaXMubmFtZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7blt0XT10PT1lfSkpLHRoaXMuc2VsZWN0aW9uU3RhdGU9bn1fY2hlY2tib3hDaGFuZ2UodCl7dmFyIGU9dC50YXJnZXQ7Y29uc3Qgbj1TZS5leHBvcnRzLmNsb25lKHRoaXMuc2VsZWN0aW9uU3RhdGUpO25bZS5uYW1lXT1lLmNoZWNrZWQsdGhpcy5zZWxlY3Rpb25TdGF0ZT1ufV9pc0NoZWNrZWQodCxlKXtyZXR1cm4tMSE9dGhpcy5vdXRTZWxlY3RlZC5pbmRleE9mKHQpfXRvZ2dsZUFsbCgpe2NvbnN0IHQ9dGhpcy5uYW1lc01hdGNoaW5nUmVnZXguc29tZSgodD0+dGhpcy5vdXRTZWxlY3RlZC5pbmNsdWRlcyh0KSkpLGU9e307dGhpcy5uYW1lcy5mb3JFYWNoKChuPT57ZVtuXT0hdH0pKSx0aGlzLnNlbGVjdGlvblN0YXRlPWV9fTtXUi50ZW1wbGF0ZT1fZWAKICAgIDxzdHlsZSBpbmNsdWRlPSJzY3JvbGxiYXItc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGUgaW5jbHVkZT0icnVuLWNvbG9yLXN0eWxlIj48L3N0eWxlPgoKICAgIDxwYXBlci1pbnB1dAogICAgICBpZD0ibmFtZXMtcmVnZXgiCiAgICAgIG5vLWxhYmVsLWZsb2F0PSIiCiAgICAgIGxhYmVsPSJXcml0ZSBhIHJlZ2V4IHRvIGZpbHRlciBydW5zIgogICAgICB2YWx1ZT0iW1tyZWdleF1dIgogICAgICBvbi1iaW5kLXZhbHVlLWNoYW5nZWQ9Il9kZWJvdW5jZWRSZWdleENoYW5nZSIKICAgID48L3BhcGVyLWlucHV0PgogICAgPGRpdiBpZD0ib3V0ZXItY29udGFpbmVyIiBjbGFzcz0ic2Nyb2xsYmFyIj4KICAgICAgPHRlbXBsYXRlCiAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgaXRlbXM9IltbbmFtZXNNYXRjaGluZ1JlZ2V4XV0iCiAgICAgICAgb24tZG9tLWNoYW5nZT0ic3luY2hyb25pemVDb2xvcnMiCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lLXJvdyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJpY29uLWNvbnRhaW5lciBjaGVja2JveC1jb250YWluZXIgdmVydGljYWwtYWxpZ24tY29udGFpbmVyIgogICAgICAgICAgPgogICAgICAgICAgICA8cGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICBjbGFzcz0iY2hlY2tib3ggdmVydGljYWwtYWxpZ24tY2VudGVyIgogICAgICAgICAgICAgIGlkJD0iY2hlY2tib3gtW1tpdGVtXV0iCiAgICAgICAgICAgICAgbmFtZT0iW1tpdGVtXV0iCiAgICAgICAgICAgICAgY2hlY2tlZCQ9IltbX2lzQ2hlY2tlZChpdGVtLCBzZWxlY3Rpb25TdGF0ZS4qKV1dIgogICAgICAgICAgICAgIG9uLWNoYW5nZT0iX2NoZWNrYm94Q2hhbmdlIgogICAgICAgICAgICA+PC9wYXBlci1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iaWNvbi1jb250YWluZXIgaXNvbGF0b3ItY29udGFpbmVyIHZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciIKICAgICAgICAgID4KICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgICAgaWNvbj0icmFkaW8tYnV0dG9uLXVuY2hlY2tlZCIKICAgICAgICAgICAgICBjbGFzcz0iaXNvbGF0b3IgdmVydGljYWwtYWxpZ24tY2VudGVyIgogICAgICAgICAgICAgIG9uLXRhcD0iX2lzb2xhdGVOYW1lIgogICAgICAgICAgICAgIG5hbWU9IltbaXRlbV1dIgogICAgICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1sYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICA8c3Bhbj5bW2l0ZW1dXTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIHBhcGVyLWlucHV0IHsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWw6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgIH0KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAjb3V0ZXItY29udGFpbmVyIHsKICAgICAgICBjb250YWluOiBjb250ZW50OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgfQogICAgICAubmFtZS1yb3cgewogICAgICAgIGNvbnRhaW46IGNvbnRlbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDVweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOyAvKiBtYWtlcyB3cmFwcGluZyBvZiBoeXBlcnBhcmFtIHN0cmluZ3MgYmV0dGVyICovCiAgICAgIH0KICAgICAgLmljb24tY29udGFpbmVyIHsKICAgICAgICBmbGV4LWdyb3c6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7CiAgICAgIH0KICAgICAgLmNoZWNrYm94IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KICAgICAgLmlzb2xhdG9yIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMHB4OwogICAgICB9CiAgICAgIC5pc29sYXRvci1jb250YWluZXIgewogICAgICAgIHBhZGRpbmctbGVmdDogNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDNweDsKICAgICAgfQogICAgICAuY2hlY2tib3gtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDsKICAgICAgfQogICAgICAuaXRlbS1sYWJlbC1jb250YWluZXIgewogICAgICAgIHBhZGRpbmctbGVmdDogNXB4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICB3aWR0aDogMHB4OyAvKiBoYWNrIHRvIGdldCB0aGUgZmxleC1ncm93IHRvIHdvcmsgcHJvcGVybHkgKi8KICAgICAgfQogICAgICAudG9vbHRpcC12YWx1ZS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHBhZGRpbmctbGVmdDogMnB4OwogICAgICB9CiAgICAgIC52ZXJ0aWNhbC1hbGlnbi1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KICAgICAgLnZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciAudmVydGljYWwtYWxpZ24tY2VudGVyIHsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgIH0KICAgICAgLnZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciAudmVydGljYWwtYWxpZ24tdG9wIHsKICAgICAgICBhbGlnbi1zZWxmOiBzdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxXUi5wcm90b3R5cGUsIm5hbWVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFdSLnByb3RvdHlwZSwiY29sb3JpbmciLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFdSLnByb3RvdHlwZSwicmVnZXgiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheSxjb21wdXRlZDoiY29tcHV0ZU5hbWVzTWF0Y2hpbmdSZWdleChuYW1lcy4qLCBfcmVnZXgpIn0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFdSLnByb3RvdHlwZSwibmFtZXNNYXRjaGluZ1JlZ2V4Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxXUi5wcm90b3R5cGUsInNlbGVjdGlvblN0YXRlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXksbm90aWZ5OiEwLGNvbXB1dGVkOiJjb21wdXRlT3V0U2VsZWN0ZWQobmFtZXNNYXRjaGluZ1JlZ2V4LiosIHNlbGVjdGlvblN0YXRlLiopIn0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFdSLnByb3RvdHlwZSwib3V0U2VsZWN0ZWQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sV1IucHJvdG90eXBlLCJtYXhOYW1lc1RvRW5hYmxlQnlEZWZhdWx0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFdSLnByb3RvdHlwZSwiX2RlYm91bmNlZFJlZ2V4Q2hhbmdlIix2b2lkIDApLHQoW3MoInJlZ2V4IiksZSgiZGVzaWduOnR5cGUiLFJlZ0V4cCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sV1IucHJvdG90eXBlLCJfcmVnZXgiLG51bGwpLHQoW2EoInNlbGVjdGlvblN0YXRlIiwibmFtZXMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFdSLnByb3RvdHlwZSwiX3NldElzb2xhdG9ySWNvbiIsbnVsbCksV1I9dChbaSgidGYtbXVsdGktY2hlY2tib3giKV0sV1IpO2xldCBxUj1jbGFzcyBleHRlbmRzIHlle2dldCBfcGFydHMoKXt2YXIgdD10aGlzLnZhbHVlLGU9dGhpcy5kZWxpbWl0ZXJQYXR0ZXJuO2NvbnN0IG49W107Zm9yKDs7KXtjb25zdCBpPW5ldyBSZWdFeHAoZSwiZyIpO2lmKGkudGVzdCh0KSwwPT09aS5sYXN0SW5kZXgpe24ucHVzaCh0KTticmVha31uLnB1c2godC5zbGljZSgwLGkubGFzdEluZGV4KSksdD10LnNsaWNlKGkubGFzdEluZGV4KX1yZXR1cm4gbn19O3FSLnRlbXBsYXRlPV9lYAogICAgPCEtLQogICAgICBUaGlzIHVnbHkgZm9ybWF0dGluZyBpcyByZXF1aXJlZCB0byBwcmV2ZW50IHNwYWNlcyBmcm9tIHNsaXBwaW5nCiAgICAgIGludG8gdGhlIEhUTUwuCiAgICAtLT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX3BhcnRzXV0iIGFzPSJwYXJ0IgogICAgICA+W1twYXJ0XV08d2JyCiAgICAvPjwvdGVtcGxhdGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxxUi5wcm90b3R5cGUsInZhbHVlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHFSLnByb3RvdHlwZSwiZGVsaW1pdGVyUGF0dGVybiIsdm9pZCAwKSx0KFtzKCJ2YWx1ZSIsImRlbGltaXRlclBhdHRlcm4iKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHFSLnByb3RvdHlwZSwiX3BhcnRzIixudWxsKSxxUj10KFtpKCJ0Zi13YnItc3RyaW5nIildLHFSKTtsZXQgWVI9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJ1blNlbGVjdGlvblN0YXRlPSRzKCJydW5TZWxlY3Rpb25TdGF0ZSIse2RlZmF1bHRWYWx1ZTp7fX0pLmNhbGwodGhpcyksdGhpcy5yZWdleElucHV0PVJzKCJyZWdleElucHV0Iix7ZGVmYXVsdFZhbHVlOiIifSkuY2FsbCh0aGlzKSx0aGlzLl9kYXRhTG9jYXRpb25DbGlwTGVuZ3RoPTI1MCx0aGlzLl9kYXRhTG9jYXRpb25EZWxpbWl0ZXJQYXR0ZXJuPSJbLz1fLC1dIix0aGlzLmNvbG9yaW5nPXtnZXRDb2xvcjpHUn0sdGhpcy5fc3RvcmVSdW5TZWxlY3Rpb25TdGF0ZT1LcygicnVuU2VsZWN0aW9uU3RhdGUiLHtkZWZhdWx0VmFsdWU6e319KSx0aGlzLl9yZWdleE9ic2VydmVyPU9zKCJyZWdleElucHV0Iix7ZGVmYXVsdFZhbHVlOiIifSl9YXR0YWNoZWQoKXt0aGlzLl9ydW5TdG9yZUxpc3RlbmVyPXZsLmFkZExpc3RlbmVyKCgoKT0+e3RoaXMuc2V0KCJydW5zIix2bC5nZXRSdW5zKCkpfSkpLHRoaXMuc2V0KCJydW5zIix2bC5nZXRSdW5zKCkpLHRoaXMuX2VudlN0b3JlTGlzdGVuZXI9X2wuYWRkTGlzdGVuZXIoKCgpPT57dGhpcy5zZXQoImRhdGFMb2NhdGlvbiIsX2wuZ2V0RGF0YUxvY2F0aW9uKCkpfSkpLHRoaXMuc2V0KCJkYXRhTG9jYXRpb24iLF9sLmdldERhdGFMb2NhdGlvbigpKX1kZXRhY2hlZCgpe3ZsLnJlbW92ZUxpc3RlbmVyQnlLZXkodGhpcy5fcnVuU3RvcmVMaXN0ZW5lciksX2wucmVtb3ZlTGlzdGVuZXJCeUtleSh0aGlzLl9lbnZTdG9yZUxpc3RlbmVyKX1fdG9nZ2xlQWxsKCl7dGhpcy4kLm11bHRpQ2hlY2tib3gudG9nZ2xlQWxsKCl9Z2V0IF9jbGlwcGVkRGF0YUxvY2F0aW9uKCl7dmFyIHQ9dGhpcy5kYXRhTG9jYXRpb24sZT10aGlzLl9kYXRhTG9jYXRpb25DbGlwTGVuZ3RoO2lmKHZvaWQgMCE9PXQpcmV0dXJuIHQubGVuZ3RoPmU/dC5zdWJzdHJpbmcoMCxlKTp0fV9vcGVuRGF0YUxvY2F0aW9uRGlhbG9nKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLiQkKCIjZGF0YS1sb2NhdGlvbi1kaWFsb2ciKS5vcGVuKCl9X3Nob3VsZFNob3dFeHBhbmREYXRhTG9jYXRpb25CdXR0b24odCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg+ZX19O1lSLnRlbXBsYXRlPV9lYAogICAgPHBhcGVyLWRpYWxvZyB3aXRoLWJhY2tkcm9wPSIiIGlkPSJkYXRhLWxvY2F0aW9uLWRpYWxvZyI+CiAgICAgIDxoMj5EYXRhIExvY2F0aW9uPC9oMj4KICAgICAgPHRmLXdici1zdHJpbmcKICAgICAgICB2YWx1ZT0iW1tkYXRhTG9jYXRpb25dXSIKICAgICAgICBkZWxpbWl0ZXItcGF0dGVybj0iW1tfZGF0YUxvY2F0aW9uRGVsaW1pdGVyUGF0dGVybl1dIgogICAgICA+CiAgICAgIDwvdGYtd2JyLXN0cmluZwogICAgPjwvcGFwZXItZGlhbG9nPgogICAgPGRpdiBpZD0idG9wLXRleHQiPgogICAgICA8aDMgaWQ9InRvb2x0aXAtaGVscCIgY2xhc3M9InRvb2x0aXAtY29udGFpbmVyIj5SdW5zPC9oMz4KICAgIDwvZGl2PgogICAgPHRmLW11bHRpLWNoZWNrYm94CiAgICAgIGlkPSJtdWx0aUNoZWNrYm94IgogICAgICBuYW1lcz0iW1tydW5zXV0iCiAgICAgIHNlbGVjdGlvbi1zdGF0ZT0ie3tydW5TZWxlY3Rpb25TdGF0ZX19IgogICAgICBvdXQtc2VsZWN0ZWQ9Int7c2VsZWN0ZWRSdW5zfX0iCiAgICAgIHJlZ2V4PSJ7e3JlZ2V4SW5wdXR9fSIKICAgICAgY29sb3Jpbmc9IltbY29sb3JpbmddXSIKICAgID48L3RmLW11bHRpLWNoZWNrYm94PgogICAgPHBhcGVyLWJ1dHRvbiBjbGFzcz0ieC1idXR0b24iIGlkPSJ0b2dnbGUtYWxsIiBvbi10YXA9Il90b2dnbGVBbGwiPgogICAgICBUb2dnbGUgQWxsIFJ1bnMKICAgIDwvcGFwZXItYnV0dG9uPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2RhdGFMb2NhdGlvbl1dIj4KICAgICAgPGRpdiBpZD0iZGF0YS1sb2NhdGlvbiI+CiAgICAgICAgPHRmLXdici1zdHJpbmcKICAgICAgICAgIHZhbHVlPSJbW19jbGlwcGVkRGF0YUxvY2F0aW9uXV0iCiAgICAgICAgICBkZWxpbWl0ZXItcGF0dGVybj0iW1tfZGF0YUxvY2F0aW9uRGVsaW1pdGVyUGF0dGVybl1dIgogICAgICAgID48L3RmLXdici1zdHJpbmcKICAgICAgICA+PCEtLQogICAgICAgICAgV2UgdXNlIEhUTUwgY29tbWVudHMgdG8gcmVtb3ZlIHNwYWNlcyBiZWZvcmUgdGhlIGVsbGlwc2lzLgogICAgICAgIC0tPjx0ZW1wbGF0ZQogICAgICAgICAgaXM9ImRvbS1pZiIKICAgICAgICAgIGlmPSJbW19zaG91bGRTaG93RXhwYW5kRGF0YUxvY2F0aW9uQnV0dG9uKGRhdGFMb2NhdGlvbiwgX2RhdGFMb2NhdGlvbkNsaXBMZW5ndGgpXV0iCiAgICAgICAgICA+PCEtLQogICAgICAgICAgLS0+PGEgaHJlZj0iIiBvbi1jbGljaz0iX29wZW5EYXRhTG9jYXRpb25EaWFsb2ciPuKApjwvYT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKICAgICAgfQogICAgICAjdG9wLXRleHQgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQogICAgICB0Zi13YnItc3RyaW5nIHsKICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOwogICAgICB9CiAgICAgIHRmLW11bHRpLWNoZWNrYm94IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICAgIC54LWJ1dHRvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRiLXVpLWxpZ2h0LWFjY2VudCk7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTsKICAgICAgfQogICAgICAjdG9vbHRpcC1oZWxwIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgIH0KICAgICAgcGFwZXItYnV0dG9uIHsKICAgICAgICBtYXJnaW4tbGVmdDogMDsKICAgICAgfQogICAgICAjZGF0YS1sb2NhdGlvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWFyZ2luOiA1cHggMCAwIDA7CiAgICAgICAgbWF4LXdpZHRoOiAyODhweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfc3RvcmVSdW5TZWxlY3Rpb25TdGF0ZSJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWVIucHJvdG90eXBlLCJydW5TZWxlY3Rpb25TdGF0ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxvYnNlcnZlcjoiX3JlZ2V4T2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFlSLnByb3RvdHlwZSwicmVnZXhJbnB1dCIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFlSLnByb3RvdHlwZSwic2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxZUi5wcm90b3R5cGUsInJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFlSLnByb3RvdHlwZSwiZGF0YUxvY2F0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLFlSLnByb3RvdHlwZSwiX2RhdGFMb2NhdGlvbkNsaXBMZW5ndGgiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWVIucHJvdG90eXBlLCJfZGF0YUxvY2F0aW9uRGVsaW1pdGVyUGF0dGVybiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxZUi5wcm90b3R5cGUsImNvbG9yaW5nIix2b2lkIDApLHQoW3MoImRhdGFMb2NhdGlvbiIsIl9kYXRhTG9jYXRpb25DbGlwTGVuZ3RoIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sWVIucHJvdG90eXBlLCJfY2xpcHBlZERhdGFMb2NhdGlvbiIsbnVsbCksWVI9dChbaSgidGYtcnVucy1zZWxlY3RvciIpXSxZUik7Y2xhc3MgWFJ7Y29uc3RydWN0b3IoKXt0aGlzLmNhbmNlbGxhdGlvbkNvdW50PTB9Y2FuY2VsbGFibGUodCl7Y29uc3QgZT10aGlzLmNhbmNlbGxhdGlvbkNvdW50O3JldHVybiBuPT50KHt2YWx1ZTpuLGNhbmNlbGxlZDp0aGlzLmNhbmNlbGxhdGlvbkNvdW50IT09ZX0pfWNhbmNlbEFsbCgpe3RoaXMuY2FuY2VsbGF0aW9uQ291bnQrK319bGV0ICRSPWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5odG1sPSIifWdldCBzYW5pdGl6ZWRIdG1sKCl7cmV0dXJuIHRoaXMuaHRtbH1hdHRhY2hlZCgpe3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5zY29wZVN1YnRyZWUodGhpcy4kLm1hcmtkb3duLCEwKX0pKX19O2Z1bmN0aW9uIEtSKHQpe3JldHVybiB0P3QudG9TdHJpbmcoKS5yZXBsYWNlKC9HTVQtXGQrIFwoKFteKV0rKVwpLywiJDEiKToiIn0kUi50ZW1wbGF0ZT1fZWAKICAgIDxkaXYgaWQ9Im1hcmtkb3duIiBpbm5lci1oLXQtbS1sPSJbW3Nhbml0aXplZEh0bWxdXSI+PC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIC8qCiAgICAgICAqIFJlZHVjZSB0b3Btb3N0IGFuZCBib3R0b21tb3N0IG1hcmdpbnMgZnJvbSAxNnB4IHRvIDAuM2VtIChyZW5kZXJzCiAgICAgICAqIGF0IGFib3V0IDQuOHB4KSB0byBrZWVwIHRoZSBsYXlvdXQgY29tcGFjdC4gVGhpcyBpbXByb3ZlcyB0aGUKICAgICAgICogYXBwZWFyYW5jZSB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIGxpbmUgb2YgdGV4dDsgc3RhbmRhcmQgTWFya2Rvd24KICAgICAgICogcmVuZGVyZXJzIHdpbGwgc3RpbGwgaW5jbHVkZSBhIFxgPHA+XGAgZWxlbWVudC4KICAgICAgICoKICAgICAgICogQnkgdGFyZ2V0aW5nIG9ubHkgdGhlIHRvcC1sZXZlbCwgZXh0cmVtYWwgZWxlbWVudHMsIHdlIHByZXNlcnZlIGFueQogICAgICAgKiBhY3R1YWwgcGFyYWdyYXBoIGJyZWFrcyBhbmQgb25seSBjaGFuZ2UgdGhlIHBhZGRpbmcgYWdhaW5zdCB0aGUKICAgICAgICogY29tcG9uZW50IGVkZ2VzLgogICAgICAgKi8KICAgICAgI21hcmtkb3duID4gcDpmaXJzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMC4zZW07CiAgICAgIH0KICAgICAgI21hcmtkb3duID4gcDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjNlbTsKICAgICAgfQoKICAgICAgLyogUGxlYXNhbnQgc3R5bGVzIGZvciBNYXJrZG93biB0YWJsZXMuICovCiAgICAgICNtYXJrZG93biB0YWJsZSB7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgfQogICAgICAjbWFya2Rvd24gdGFibGUgdGggewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgI21hcmtkb3duIHRhYmxlIHRoLAogICAgICAjbWFya2Rvd24gdGFibGUgdGQgewogICAgICAgIHBhZGRpbmc6IDZweCAxM3B4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRiLXVpLWJvcmRlciwgI2RmZTJlNSk7CiAgICAgIH0KICAgICAgI21hcmtkb3duIHRhYmxlIHRyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS10Yi11aS1ib3JkZXIsICNjNmNiZDEpOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sJFIucHJvdG90eXBlLCJodG1sIix2b2lkIDApLHQoW3MoImh0bWwiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSwkUi5wcm90b3R5cGUsInNhbml0aXplZEh0bWwiLG51bGwpLCRSPXQoW2koInRmLW1hcmtkb3duLXZpZXciKV0sJFIpLGVsKHttb2R1bGVOYW1lOiJ0Zi1jYXJkLWhlYWRpbmctc3R5bGUiLHN0eWxlQ29udGVudDoiXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvKiogSG9yaXpvbnRhbCBsaW5lIG9mIGxhYmVscy4gKi9cbiAgICAuaGVhZGluZy1yb3cge1xuICAgICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgIC8qKiBQaWVjZSBvZiB0ZXh0IGluIHRoZSBmaWd1cmUgY2FwdGlvbi4gKi9cbiAgICAuaGVhZGluZy1sYWJlbCB7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgLyoqIE1ha2VzIGxhYmVsIHNob3cgb24gdGhlIHJpZ2h0LiAqL1xuICAgIC5oZWFkaW5nLXJpZ2h0IHtcbiAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICB9XG4gICJ9KTtsZXQgWlI9Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5kaXNwbGF5TmFtZT1udWxsLHRoaXMudGFnPW51bGwsdGhpcy5ydW49bnVsbCx0aGlzLmRlc2NyaXB0aW9uPW51bGwsdGhpcy5jb2xvcj1udWxsfV91cGRhdGVIZWFkaW5nU3R5bGUoKXt0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tdGYtY2FyZC1oZWFkaW5nLWJhY2tncm91bmQtY29sb3IiOnRoaXMuX3J1bkJhY2tncm91bmQsIi0tdGYtY2FyZC1oZWFkaW5nLWNvbG9yIjp0aGlzLl9ydW5Db2xvcn0pfV9jb21wdXRlUnVuQmFja2dyb3VuZCh0KXtyZXR1cm4gdHx8Im5vbmUifV9jb21wdXRlUnVuQ29sb3IodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtpZighdClyZXR1cm4gbnVsbDtsZXQgZT10Lm1hdGNoKC9eIyhbMC05YS1mXXsxLDJ9KShbMC05YS1mXXsxLDJ9KShbMC05YS1mXXsxLDJ9KSQvKTtpZighZSlyZXR1cm4gbnVsbDtpZig0PT10Lmxlbmd0aClmb3IodmFyIG49MTtuPD0zO24rKyllW25dPWVbbl0rZVtuXTtyZXR1cm5bcGFyc2VJbnQoZVsxXSwxNikscGFyc2VJbnQoZVsyXSwxNikscGFyc2VJbnQoZVszXSwxNildfSkodCk7cmV0dXJuIGU/TWF0aC5yb3VuZCgoMjk5KmVbMF0rNTg3KmVbMV0rMTE0KmVbMl0pLzFlMyk+MTI1PyJpbmhlcml0IjoiI2VlZSI6ImluaGVyaXQifSkodCl9Z2V0IF9uYW1lTGFiZWwoKXtyZXR1cm4gdGhpcy5kaXNwbGF5TmFtZXx8dGhpcy50YWd8fCIifWdldCBfdGFnTGFiZWwoKXt2YXIgdD10aGlzLnRhZztyZXR1cm4gdCYmdCE9PXRoaXMuZGlzcGxheU5hbWU/dDoiIn1fdG9nZ2xlRGVzY3JpcHRpb25EaWFsb2codCl7Y29uc3QgZT10aGlzLiQuZGVzY3JpcHRpb25EaWFsb2c7ZS5wb3NpdGlvblRhcmdldD10LnRhcmdldCxlLnRvZ2dsZSgpfX07WlIudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZmlnY2FwdGlvbiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19uYW1lTGFiZWxdXSI+CiAgICAgICAgICAgIDxkaXYgaXRlbXByb3A9Im5hbWUiIGNsYXNzPSJoZWFkaW5nLWxhYmVsIG5hbWUiPltbX25hbWVMYWJlbF1dPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3J1bl1dIj4KICAgICAgICAgICAgPCEtLSBFeHRyYSB3cmFwcGluZyBzcGFuIG5lZWRlZCB0byBhdm9pZCBmbGV4Ym94IGJsb2NraWZpY2F0aW9uLiAtLT4KICAgICAgICAgICAgPCEtLSAoc2VlIGZsZXhib3ggc3BlYywgc2VjdGlvbiA0ICJGbGV4IEl0ZW1zIikgLS0+CiAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICBpdGVtcHJvcD0icnVuIgogICAgICAgICAgICAgICAgaWQ9ImhlYWRpbmctcnVuIgogICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRpbmctbGFiZWwgaGVhZGluZy1yaWdodCBydW4iCiAgICAgICAgICAgICAgICA+W1tydW5dXTwvc3BhbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3RhZ0xhYmVsXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIj4KICAgICAgICAgICAgICB0YWc6IDxzcGFuIGl0ZW1wcm9wPSJ0YWciPltbX3RhZ0xhYmVsXV08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZmlnY2FwdGlvbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2Rlc2NyaXB0aW9uXV0iPgogICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgaWNvbj0iaW5mbyIKICAgICAgICAgIG9uLXRhcD0iX3RvZ2dsZURlc2NyaXB0aW9uRGlhbG9nIgogICAgICAgICAgdGl0bGU9IlNob3cgc3VtbWFyeSBkZXNjcmlwdGlvbiIKICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHBhcGVyLWRpYWxvZwogICAgICAgIGlkPSJkZXNjcmlwdGlvbkRpYWxvZyIKICAgICAgICBuby1vdmVybGFwPSIiCiAgICAgICAgaG9yaXpvbnRhbC1hbGlnbj0iYXV0byIKICAgICAgICB2ZXJ0aWNhbC1hbGlnbj0iYXV0byIKICAgICAgPgogICAgICAgIDxwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZT4KICAgICAgICAgIDx0Zi1tYXJrZG93bi12aWV3IGh0bWw9IltbZGVzY3JpcHRpb25dXSI+PC90Zi1tYXJrZG93bi12aWV3PgogICAgICAgIDwvcGFwZXItZGlhbG9nLXNjcm9sbGFibGU+CiAgICAgIDwvcGFwZXItZGlhbG9nPgogICAgPC9kaXY+CiAgICA8c3R5bGUgaW5jbHVkZT0idGYtY2FyZC1oZWFkaW5nLXN0eWxlIj4KICAgICAgLmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQogICAgICAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgfQogICAgICAubmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIC5ydW4gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgcGFkZGluZzogMXB4IDRweCAycHg7CiAgICAgIH0KICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgfQogICAgICBwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZSB7CiAgICAgICAgbWF4LXdpZHRoOiA2NDBweDsKICAgICAgfQogICAgICAjaGVhZGluZy1ydW4gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRmLWNhcmQtaGVhZGluZy1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBjb2xvcjogdmFyKC0tdGYtY2FyZC1oZWFkaW5nLWNvbG9yKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFpSLnByb3RvdHlwZSwiZGlzcGxheU5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWlIucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWlIucHJvdG90eXBlLCJydW4iLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWlIucHJvdG90eXBlLCJkZXNjcmlwdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxaUi5wcm90b3R5cGUsImNvbG9yIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLGNvbXB1dGVkOiJfY29tcHV0ZVJ1bkJhY2tncm91bmQoY29sb3IpIixyZWFkT25seTohMCxvYnNlcnZlcjoiX3VwZGF0ZUhlYWRpbmdTdHlsZSJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWlIucHJvdG90eXBlLCJfcnVuQmFja2dyb3VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxjb21wdXRlZDoiX2NvbXB1dGVSdW5Db2xvcihjb2xvcikiLHJlYWRPbmx5OiEwLG9ic2VydmVyOiJfdXBkYXRlSGVhZGluZ1N0eWxlIn0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxaUi5wcm90b3R5cGUsIl9ydW5Db2xvciIsdm9pZCAwKSx0KFtzKCJkaXNwbGF5TmFtZSIsInRhZyIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFpSLnByb3RvdHlwZSwiX25hbWVMYWJlbCIsbnVsbCksdChbcygiZGlzcGxheU5hbWUiLCJ0YWciKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxaUi5wcm90b3R5cGUsIl90YWdMYWJlbCIsbnVsbCksWlI9dChbaSgidGYtY2FyZC1oZWFkaW5nIildLFpSKTtsZXQgSlI9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9tZXRhZGF0YUNhbmNlbGxlcj1uZXcgWFIsdGhpcy5fc3RlcHM9W10sdGhpcy5fYXR0YWNoZWQ9ITF9Z2V0IF9ydW5Db2xvcigpe3JldHVybiBHUih0aGlzLnJ1bil9Z2V0IF9oYXNBdExlYXN0T25lU3RlcCgpe3ZhciB0PXRoaXMuX3N0ZXBzO3JldHVybiEhdCYmdC5sZW5ndGg+MH1nZXQgX2hhc011bHRpcGxlU3RlcHMoKXt2YXIgdD10aGlzLl9zdGVwcztyZXR1cm4hIXQmJnQubGVuZ3RoPjF9Z2V0IF9tYXhTdGVwSW5kZXgoKXtyZXR1cm4gdGhpcy5fc3RlcHMubGVuZ3RoLTF9Z2V0IF9jdXJyZW50RGF0dW0oKXtyZXR1cm4gdGhpcy5fc3RlcHNbdGhpcy5fc3RlcEluZGV4XX1nZXQgX3NhbXBsZVRleHQoKXtyZXR1cm5gJHt0aGlzLnNhbXBsZSsxfWB9Z2V0IF9oYXNNdWx0aXBsZVNhbXBsZXMoKXtyZXR1cm4gdGhpcy50b3RhbFNhbXBsZXM+MX1hdHRhY2hlZCgpe3RoaXMuX2F0dGFjaGVkPSEwLHRoaXMucmVsb2FkKCl9X3JlbG9hZE9uUnVuVGFnQ2hhbmdlKCl7dGhpcy5yZWxvYWQoKX1yZWxvYWQoKXtpZighdGhpcy5fYXR0YWNoZWQpcmV0dXJuO3RoaXMuX21ldGFkYXRhQ2FuY2VsbGVyLmNhbmNlbEFsbCgpO2NvbnN0IHQ9X3IoKS5wbHVnaW5Sb3V0ZSgiYXVkaW8iLCIvYXVkaW8iLG5ldyBVUkxTZWFyY2hQYXJhbXMoe3RhZzp0aGlzLnRhZyxydW46dGhpcy5ydW4sc2FtcGxlOlN0cmluZyh0aGlzLnNhbXBsZSl9KSksZT10aGlzLl9tZXRhZGF0YUNhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e2lmKHQuY2FuY2VsbGVkKXJldHVybjtjb25zdCBlPXQudmFsdWUubWFwKHRoaXMuX2NyZWF0ZVN0ZXBEYXR1bS5iaW5kKHRoaXMpKTt0aGlzLnNldCgiX3N0ZXBzIixlKSx0aGlzLnNldCgiX3N0ZXBJbmRleCIsZS5sZW5ndGgtMSl9KSk7dGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oZSl9X2NyZWF0ZVN0ZXBEYXR1bSh0KXtjb25zdCBlPW5ldyBVUkxTZWFyY2hQYXJhbXModC5xdWVyeSk7ZS5hcHBlbmQoInRzIixTdHJpbmcodC53YWxsX3RpbWUpKTtjb25zdCBuPV9yKCkucGx1Z2luUm91dGUoImF1ZGlvIiwiL2luZGl2aWR1YWxBdWRpbyIsZSk7cmV0dXJue3dhbGxfdGltZTpLUihuZXcgRGF0ZSgxZTMqdC53YWxsX3RpbWUpKSxzdGVwOnQuc3RlcCxsYWJlbDp0LmxhYmVsLGNvbnRlbnRUeXBlOnQuY29udGVudFR5cGUsdXJsOm59fX07SlIudGVtcGxhdGU9X2VgCiAgICA8dGYtY2FyZC1oZWFkaW5nCiAgICAgIHRhZz0iW1t0YWddXSIKICAgICAgcnVuPSJbW3J1bl1dIgogICAgICBkaXNwbGF5LW5hbWU9IltbdGFnTWV0YWRhdGEuZGlzcGxheU5hbWVdXSIKICAgICAgZGVzY3JpcHRpb249IltbdGFnTWV0YWRhdGEuZGVzY3JpcHRpb25dXSIKICAgICAgY29sb3I9IltbX3J1bkNvbG9yXV0iCiAgICA+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzTXVsdGlwbGVTYW1wbGVzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctbGFiZWwiPgogICAgICAgICAgICBzYW1wbGU6IFtbX3NhbXBsZVRleHRdXSBvZiBbW3RvdGFsU2FtcGxlc11dCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNBdExlYXN0T25lU3RlcF1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIj4KICAgICAgICAgICAgc3RlcCA8c3Ryb25nPltbX2N1cnJlbnREYXR1bS5zdGVwXV08L3N0cm9uZz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19jdXJyZW50RGF0dW0ud2FsbF90aW1lXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIGhlYWRpbmctcmlnaHQiPgogICAgICAgICAgICAgIFtbX2N1cnJlbnREYXR1bS53YWxsX3RpbWVdXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzTXVsdGlwbGVTdGVwc11dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXJvdyI+CiAgICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICAgIGlkPSJzdGVwcyIKICAgICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e19zdGVwSW5kZXh9fSIKICAgICAgICAgICAgbWF4PSJbW19tYXhTdGVwSW5kZXhdXSIKICAgICAgICAgICAgbWF4LW1hcmtlcnM9IltbX21heFN0ZXBJbmRleF1dIgogICAgICAgICAgICBzbmFwcz0iIgogICAgICAgICAgICBzdGVwPSIxIgogICAgICAgICAgICB2YWx1ZT0ie3tfc3RlcEluZGV4fX0iCiAgICAgICAgICA+PC9wYXBlci1zbGlkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3RmLWNhcmQtaGVhZGluZz4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzQXRMZWFzdE9uZVN0ZXBdXSI+CiAgICAgIDxhdWRpbwogICAgICAgIGNvbnRyb2xzPSIiCiAgICAgICAgc3JjJD0iW1tfY3VycmVudERhdHVtLnVybF1dIgogICAgICAgIHR5cGUkPSJbW19jdXJyZW50RGF0dW0uY29udGVudFR5cGVdXSIKICAgICAgPjwvYXVkaW8+CiAgICAgIDx0Zi1tYXJrZG93bi12aWV3IGh0bWw9IltbX2N1cnJlbnREYXR1bS5sYWJlbF1dIj48L3RmLW1hcmtkb3duLXZpZXc+CiAgICA8L3RlbXBsYXRlPgogICAgPGRpdiBpZD0ibWFpbi1hdWRpby1jb250YWluZXIiPjwvZGl2PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJ0Zi1jYXJkLWhlYWRpbmctc3R5bGUiPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDM1MHB4OwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yOiAjNDI0MjQyOwogICAgICAgIG1hcmdpbi1yaWdodDogMTVweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CgogICAgICAjc3RlcHMgewogICAgICAgIGhlaWdodDogMTVweDsKICAgICAgICBtYXJnaW46IDAgMCAwIC0xNXB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZzogMCA1cHg7IC8qIHNvIHRoZSBzbGlkZXIga25vYiBkb2Vzbid0IGJ1dHQgb3V0ICovCiAgICAgICAgbWFyZ2luLXRvcDogNXB4OwogICAgICAgIC0tcGFwZXItc2xpZGVyLWFjdGl2ZS1jb2xvcjogdmFyKC0tc3RlcC1zbGlkZXIta25vYi1jb2xvcik7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1jb2xvcjogdmFyKC0tc3RlcC1zbGlkZXIta25vYi1jb2xvcik7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWJvcmRlci1jb2xvcjogdmFyKC0tc3RlcC1zbGlkZXIta25vYi1jb2xvcik7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLXN0YXJ0LWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEpSLnByb3RvdHlwZSwicnVuIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEpSLnByb3RvdHlwZSwidGFnIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpSLnByb3RvdHlwZSwic2FtcGxlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpSLnByb3RvdHlwZSwidG90YWxTYW1wbGVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpSLnByb3RvdHlwZSwidGFnTWV0YWRhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsZHIpXSxKUi5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLFhSKV0sSlIucHJvdG90eXBlLCJfbWV0YWRhdGFDYW5jZWxsZXIiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLEpSLnByb3RvdHlwZSwiX3N0ZXBzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpSLnByb3RvdHlwZSwiX3N0ZXBJbmRleCIsdm9pZCAwKSx0KFtzKCJydW4iKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKUi5wcm90b3R5cGUsIl9ydW5Db2xvciIsbnVsbCksdChbcygiX3N0ZXBzIiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEpSLnByb3RvdHlwZSwiX2hhc0F0TGVhc3RPbmVTdGVwIixudWxsKSx0KFtzKCJfc3RlcHMiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlIucHJvdG90eXBlLCJfaGFzTXVsdGlwbGVTdGVwcyIsbnVsbCksdChbcygiX3N0ZXBzIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlIucHJvdG90eXBlLCJfbWF4U3RlcEluZGV4IixudWxsKSx0KFtzKCJfc3RlcHMiLCJfc3RlcEluZGV4IiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlIucHJvdG90eXBlLCJfY3VycmVudERhdHVtIixudWxsKSx0KFtzKCJzYW1wbGUiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKUi5wcm90b3R5cGUsIl9zYW1wbGVUZXh0IixudWxsKSx0KFtzKCJ0b3RhbFNhbXBsZXMiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlIucHJvdG90eXBlLCJfaGFzTXVsdGlwbGVTYW1wbGVzIixudWxsKSx0KFthKCJydW4iLCJ0YWciKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEpSLnByb3RvdHlwZSwiX3JlbG9hZE9uUnVuVGFnQ2hhbmdlIixudWxsKSxKUj10KFtpKCJ0Zi1hdWRpby1sb2FkZXIiKV0sSlIpO2xldCBRUj1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVsb2FkT25SZWFkeT0hMCx0aGlzLl90YWdGaWx0ZXI9IiIsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IGRyfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKCk9Pnt0aGlzLl9yZWxvYWRBdWRpbygpfSkpfV9mZXRjaFRhZ3MoKXtjb25zdCB0PV9yKCkucGx1Z2luUm91dGUoImF1ZGlvIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoU2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47Y29uc3QgZT1hcihTZS5leHBvcnRzLm1hcFZhbHVlcyh0LCh0PT5PYmplY3Qua2V5cyh0KSkpKTt0aGlzLnNldCgiX2RhdGFOb3RGb3VuZCIsMD09PWUubGVuZ3RoKSx0aGlzLnNldCgiX3J1blRvVGFnSW5mbyIsdCl9KSl9X3JlbG9hZEF1ZGlvKCl7dGhpcy5yb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLWF1ZGlvLWxvYWRlciIpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfWdldCBfY2F0ZWdvcmllcygpe3ZhciB0PXRoaXMuX3J1blRvVGFnSW5mbyxlPXRoaXMuX3NlbGVjdGVkUnVucyxuPXRoaXMuX3RhZ0ZpbHRlcjtmdW5jdGlvbiBpKGUpe2NvbnN0IG49dFtlLnJ1bl1bZS50YWddLnNhbXBsZXM7cmV0dXJuIFNlLmV4cG9ydHMucmFuZ2UobikubWFwKCh0PT5PYmplY3QuYXNzaWduKHt9LGUse3NhbXBsZTp0LHRvdGFsU2FtcGxlczpufSkpKX1yZXR1cm4gTXIoU2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+T2JqZWN0LmtleXModCkpKSxlLG4pLm1hcCgodD0+T2JqZWN0LmFzc2lnbih7fSx0LHtpdGVtczpbXS5jb25jYXQuYXBwbHkoW10sdC5pdGVtcy5tYXAoaSkpfSkpKX1fdGFnTWV0YWRhdGEodCxlLG4pe3JldHVybiB0W2VdW25dfX07UVIudGVtcGxhdGU9X2VgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciIgc2xvdD0ic2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3IKICAgICAgICAgICAgaWQ9InJ1bnMtc2VsZWN0b3IiCiAgICAgICAgICAgIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319IgogICAgICAgICAgPjwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBhdWRpbyBkYXRhIHdhcyBmb3VuZC48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPllvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgYXVkaW8gZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0Zi10YWctZmlsdGVyZXIgdGFnLWZpbHRlcj0ie3tfdGFnRmlsdGVyfX0iPjwvdGYtdGFnLWZpbHRlcmVyPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY2F0ZWdvcmllc11dIiBhcz0iY2F0ZWdvcnkiPgogICAgICAgICAgICA8dGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXcKICAgICAgICAgICAgICBjYXRlZ29yeT0iW1tjYXRlZ29yeV1dIgogICAgICAgICAgICAgIGluaXRpYWwtb3BlbmVkPSJbW19zaG91bGRPcGVuKGluZGV4KV1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRmLWF1ZGlvLWxvYWRlcgogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIHJ1bj0iW1tpdGVtLnJ1bl1dIgogICAgICAgICAgICAgICAgICB0YWc9IltbaXRlbS50YWddXSIKICAgICAgICAgICAgICAgICAgc2FtcGxlPSJbW2l0ZW0uc2FtcGxlXV0iCiAgICAgICAgICAgICAgICAgIHRvdGFsLXNhbXBsZXM9IltbaXRlbS50b3RhbFNhbXBsZXNdXSIKICAgICAgICAgICAgICAgICAgdGFnLW1ldGFkYXRhPSJbW190YWdNZXRhZGF0YShfcnVuVG9UYWdJbmZvLCBpdGVtLnJ1biwgaXRlbS50YWcpXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgID48L3RmLWF1ZGlvLWxvYWRlcj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxRUi5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFFSLnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRUi5wcm90b3R5cGUsIl9ydW5Ub1RhZ0luZm8iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxRUi5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUVIucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0sUVIucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbcygiX3J1blRvVGFnSW5mbyIsIl9zZWxlY3RlZFJ1bnMiLCJfdGFnRmlsdGVyIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxRUi5wcm90b3R5cGUsIl9jYXRlZ29yaWVzIixudWxsKSxRUj10KFtpKCJ0Zi1hdWRpby1kYXNoYm9hcmQiKV0sUVIpO2xldCB0Tz1jbGFzcyBleHRlbmRzKGVyKHllKSl7YXR0YWNoZWQoKXt0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuZ2V0RWZmZWN0aXZlQ2hpbGRyZW4oKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RoaXMubGlzdGVuKHQsInRhcCIsIl9zZWxlY3RUYXJnZXQiKX0uYmluZCh0aGlzKSl9KSl9X3NlbGVjdFRhcmdldCh0KXt0aGlzLnNlbGVjdGVkSWQ9dC5jdXJyZW50VGFyZ2V0LmlkfV9zZWxlY3RlZElkQ2hhbmdlZCgpe3ZhciB0PXRoaXMucXVlcnlFZmZlY3RpdmVDaGlsZHJlbigiIyIrdGhpcy5zZWxlY3RlZElkKTt0JiYodGhpcy5nZXRFZmZlY3RpdmVDaGlsZHJlbigpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKX0pKSx0LmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIikpfX07ZnVuY3Rpb24gZU8odCxlKXtsZXQgbjtjb25zdCBpPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChlPT57Y29uc3Qgcj10W2VdO3ZvaWQgMD09PW4mJihuPXIuZGlzcGxheU5hbWUpLG4hPT1yLmRpc3BsYXlOYW1lJiYobj1udWxsKSx2b2lkIDA9PT1pW3IuZGVzY3JpcHRpb25dJiYoaVtyLmRlc2NyaXB0aW9uXT1bXSksaVtyLmRlc2NyaXB0aW9uXS5wdXNoKGUpfSkpLHtkaXNwbGF5TmFtZTpudWxsIT1uP246ZSxkZXNjcmlwdGlvbjooKCk9Pntjb25zdCB0PU9iamVjdC5rZXlzKGkpO3JldHVybiAwPT09dC5sZW5ndGg/IiI6MT09PXQubGVuZ3RoP3RbMF06YDxwPjxzdHJvbmc+TXVsdGlwbGUgZGVzY3JpcHRpb25zOjwvc3Ryb25nPjwvcD48dWw+JHt0Lm1hcCgodD0+e2NvbnN0IGU9aVt0XS5tYXAoKHQ9PmA8Y29kZT4ke3QucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvJi9nLCImYW1wOyIpfTwvY29kZT5gKSksbj1lLmxlbmd0aD4yP2Uuc2xpY2UoMCxlLmxlbmd0aC0xKS5qb2luKCIsICIpKyIsIGFuZCAiK2VbZS5sZW5ndGgtMV06ZS5qb2luKCIgYW5kICIpO3JldHVybmA8bGk+PHA+Rm9yICR7KGZ1bmN0aW9uIHIodCxlLG4pe3JldHVybiAxPT09dD9lOm59KShlLmxlbmd0aCwicnVuIiwicnVucyIpfSAke259OjwvcD4ke3R9PC9saT5gfSkpLmpvaW4oIiIpfTwvdWw+YH0pKCl9fXRPLnRlbXBsYXRlPV9lYAogICAgPGRpdiBpZD0id3JhcCI+CiAgICAgIDxoMz5bW25hbWVdXTwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+PHNsb3Q+PC9zbG90PjwvZGl2PgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIC5jb250ZW50LXdyYXBwZXIgOjpzbG90dGVkKCopIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi11aS1kYXJrLWFjY2VudCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LXdyYXBwZXIgOjpzbG90dGVkKCopIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi11aS1kYXJrLWFjY2VudCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LXdyYXBwZXIgOjpzbG90dGVkKC5zZWxlY3RlZCkgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTsKICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgaDMgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgICAgbWFyZ2luOiAwIDAgNXB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sdE8ucHJvdG90eXBlLCJuYW1lIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMCxvYnNlcnZlcjoiX3NlbGVjdGVkSWRDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx0Ty5wcm90b3R5cGUsInNlbGVjdGVkSWQiLHZvaWQgMCksdE89dChbaSgidGYtb3B0aW9uLXNlbGVjdG9yIildLHRPKTtsZXQgbk89Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy53ZWlnaHQ9LjYsdGhpcy5fdXBkYXRlV2VpZ2h0PVNlLmV4cG9ydHMuZGVib3VuY2UoKGZ1bmN0aW9uKHQpe3RoaXMud2VpZ2h0PXR9KSwyNTApfV9pbW1lZGlhdGVXZWlnaHROdW1iZXJGb3JQYXBlclNsaWRlckNoYW5nZWQoKXt0aGlzLl9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXQ9dGhpcy5faW1tZWRpYXRlV2VpZ2h0TnVtYmVyRm9yUGFwZXJTbGlkZXIudG9TdHJpbmcoKSx0aGlzLl91cGRhdGVXZWlnaHQuY2FsbCh0aGlzLHRoaXMuX2ltbWVkaWF0ZVdlaWdodE51bWJlckZvclBhcGVyU2xpZGVyKX1faW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0Q2hhbmdlZCgpeyt0aGlzLl9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXQ8MD90aGlzLl9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXQ9IjAiOit0aGlzLl9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXQ+MSYmKHRoaXMuX2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dD0iMSIpO3ZhciB0PSt0aGlzLl9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXQ7aXNOYU4odCl8fHRoaXMuX3VwZGF0ZVdlaWdodC5jYWxsKHRoaXMsdCl9fTtmdW5jdGlvbiBpTyh0LGUpe2NvbnN0IG49T2JqZWN0LmtleXMoZSkuc29ydCgpLmZpbHRlcigodD0+dm9pZCAwIT09ZVt0XSkpO2lmKCFuLmxlbmd0aClyZXR1cm4gdDtjb25zdCBpPS0xIT09dC5pbmRleE9mKCI/Iik/IiYiOiI/IjtyZXR1cm4gdCtpK1tdLmNvbmNhdCguLi5uLm1hcCgodD0+e2NvbnN0IG49ZVt0XTtyZXR1cm4oQXJyYXkuaXNBcnJheShuKT9uOltuXSkubWFwKChlPT5gJHt0fT0keyhmdW5jdGlvbiBuKHQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQodCkucmVwbGFjZSgvXCgvZywiJTI4IikucmVwbGFjZSgvXCkvZywiJTI5Iil9KShlKX1gKSl9KSkpLmpvaW4oIiYiKX1uTy50ZW1wbGF0ZT1fZWAKICAgIDxoMyBjbGFzcz0idGl0bGUiPlNtb290aGluZzwvaDM+CiAgICA8ZGl2IGNsYXNzPSJzbW9vdGhpbmctYmxvY2siPgogICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgaWQ9InNsaWRlciIKICAgICAgICBpbW1lZGlhdGUtdmFsdWU9Int7X2ltbWVkaWF0ZVdlaWdodE51bWJlckZvclBhcGVyU2xpZGVyfX0iCiAgICAgICAgbWF4PSJbW21heF1dIgogICAgICAgIG1pbj0iW1ttaW5dXSIKICAgICAgICBwaW4KICAgICAgICBzdGVwPSJbW3N0ZXBdXSIKICAgICAgICB0eXBlPSJudW1iZXIiCiAgICAgICAgdmFsdWU9Int7d2VpZ2h0fX0iCiAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgaWQ9ImlucHV0IgogICAgICAgIGxhYmVsPSJ3ZWlnaHQiCiAgICAgICAgbm8tbGFiZWwtZmxvYXQKICAgICAgICB2YWx1ZT0ie3tfaW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0fX0iCiAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgIHN0ZXA9Iltbc3RlcF1dIgogICAgICAgIG1pbj0iW1ttaW5dXSIKICAgICAgICBtYXg9IltbbWF4XV0iCiAgICAgID48L3BhcGVyLWlucHV0PgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIC50aXRsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICB9CgogICAgICAuc21vb3RoaW5nLWJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICBwYXBlci1zbGlkZXIgewogICAgICAgIC0tcGFwZXItc2xpZGVyLWFjdGl2ZS1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1ib3JkZXItY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLW1hcmtlcnMtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLXBpbi1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLXN0YXJ0LWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICBmbGV4LWdyb3c6IDI7CiAgICAgIH0KCiAgICAgIHBhcGVyLWlucHV0IHsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWw6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxuTy5wcm90b3R5cGUsInN0ZXAiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sbk8ucHJvdG90eXBlLCJtYXgiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sbk8ucHJvdG90eXBlLCJtaW4iLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLG5PLnByb3RvdHlwZSwid2VpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMCxvYnNlcnZlcjoiX2ltbWVkaWF0ZVdlaWdodE51bWJlckZvclBhcGVyU2xpZGVyQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sbk8ucHJvdG90eXBlLCJfaW1tZWRpYXRlV2VpZ2h0TnVtYmVyRm9yUGFwZXJTbGlkZXIiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwLG9ic2VydmVyOiJfaW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0Q2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sbk8ucHJvdG90eXBlLCJfaW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0Iix2b2lkIDApLG5PPXQoW2koInRmLXNtb290aGluZy1pbnB1dCIpXSxuTyk7dmFyIHJPPXt9LG9PPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxhTz1PYmplY3QuYXNzaWdufHxmdW5jdGlvbiB0KGUpe2Zvcih2YXIgbixpPTEscj1hcmd1bWVudHMubGVuZ3RoO2k8cjtpKyspZm9yKHZhciBvIGluIG49YXJndW1lbnRzW2ldKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLG8pJiYoZVtvXT1uW29dKTtyZXR1cm4gZX07Ci8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCiAgICB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZQogICAgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgICBUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIEFOWSBJTVBMSUVECiAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLAogICAgTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KCiAgICBTZWUgdGhlIEFwYWNoZSBWZXJzaW9uIDIuMCBMaWNlbnNlIGZvciBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMKICAgIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovZnVuY3Rpb24gc08odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdLG49MDtyZXR1cm4gZT9lLmNhbGwodCk6e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCYmbj49dC5sZW5ndGgmJih0PXZvaWQgMCkse3ZhbHVlOnQmJnRbbisrXSxkb25lOiF0fX19fWZ1bmN0aW9uIGxPKHQsZSl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFuKXJldHVybiB0O3ZhciBpLHIsbz1uLmNhbGwodCksYT1bXTt0cnl7Zm9yKDsodm9pZCAwPT09ZXx8ZS0tID4wKSYmIShpPW8ubmV4dCgpKS5kb25lOylhLnB1c2goaS52YWx1ZSl9Y2F0Y2godCl7cj17ZXJyb3I6dH19ZmluYWxseXt0cnl7aSYmIWkuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihyKXRocm93IHIuZXJyb3J9fXJldHVybiBhfWZ1bmN0aW9uIGNPKHQpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgY08/KHRoaXMudj10LHRoaXMpOm5ldyBjTyh0KX12YXIgdU89YmUoT2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsX19leHRlbmRzOmZ1bmN0aW9uIGhPKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1vTyh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0sX19hc3NpZ246YU8sX19yZXN0OmZ1bmN0aW9uIGRPKHQsZSl7dmFyIG49e307Zm9yKHZhciBpIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJmUuaW5kZXhPZihpKTwwJiYobltpXT10W2ldKTtpZihudWxsIT10JiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9MDtmb3IoaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO3I8aS5sZW5ndGg7cisrKWUuaW5kZXhPZihpW3JdKTwwJiYobltpW3JdXT10W2lbcl1dKX1yZXR1cm4gbn0sX19kZWNvcmF0ZTpmdW5jdGlvbiBwTyh0LGUsbixpKXt2YXIgcixvPWFyZ3VtZW50cy5sZW5ndGgsYT1vPDM/ZTpudWxsPT09aT9pPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTppO2lmKCJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmImZ1bmN0aW9uIj09dHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUpYT1SZWZsZWN0LmRlY29yYXRlKHQsZSxuLGkpO2Vsc2UgZm9yKHZhciBzPXQubGVuZ3RoLTE7cz49MDtzLS0pKHI9dFtzXSkmJihhPShvPDM/cihhKTpvPjM/cihlLG4sYSk6cihlLG4pKXx8YSk7cmV0dXJuIG8+MyYmYSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixhKSxhfSxfX3BhcmFtOmZ1bmN0aW9uIGZPKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7ZShuLGksdCl9fSxfX21ldGFkYXRhOmZ1bmN0aW9uIG1PKHQsZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYiZnVuY3Rpb24iPT10eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSlyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YSh0LGUpfSxfX2F3YWl0ZXI6ZnVuY3Rpb24gZ08odCxlLG4saSl7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKHIsbyl7ZnVuY3Rpb24gYSh0KXt0cnl7bChpLm5leHQodCkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHModCl7dHJ5e2woaS50aHJvdyh0KSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gbCh0KXt0LmRvbmU/cih0LnZhbHVlKTpuZXcgbigoZnVuY3Rpb24oZSl7ZSh0LnZhbHVlKX0pKS50aGVuKGEscyl9bCgoaT1pLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSkpfSxfX2dlbmVyYXRvcjpmdW5jdGlvbiBfTyh0LGUpe3ZhciBuLGkscixvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmclswXSl0aHJvdyByWzFdO3JldHVybiByWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6cygwKSx0aHJvdzpzKDEpLHJldHVybjpzKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIHMobyl7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybihmdW5jdGlvbiBsKG8pe2lmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7YTspdHJ5e2lmKG49MSxpJiYocj1pWzImb1swXT8icmV0dXJuIjpvWzBdPyJ0aHJvdyI6Im5leHQiXSkmJiEocj1yLmNhbGwoaSxvWzFdKSkuZG9uZSlyZXR1cm4gcjtzd2l0Y2goaT0wLHImJihvPVswLHIudmFsdWVdKSxvWzBdKXtjYXNlIDA6Y2FzZSAxOnI9bzticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6b1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLGk9b1sxXSxvPVswXTtjb250aW51ZTtjYXNlIDc6bz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChyPShyPWEudHJ5cykubGVuZ3RoPjAmJnJbci5sZW5ndGgtMV0pfHw2IT09b1swXSYmMiE9PW9bMF0pKXthPTA7Y29udGludWV9aWYoMz09PW9bMF0mJighcnx8b1sxXT5yWzBdJiZvWzFdPHJbM10pKXthLmxhYmVsPW9bMV07YnJlYWt9aWYoNj09PW9bMF0mJmEubGFiZWw8clsxXSl7YS5sYWJlbD1yWzFdLHI9bzticmVha31pZihyJiZhLmxhYmVsPHJbMl0pe2EubGFiZWw9clsyXSxhLm9wcy5wdXNoKG8pO2JyZWFrfXJbMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1vPWUuY2FsbCh0LGEpfWNhdGNoKHQpe289WzYsdF0saT0wfWZpbmFsbHl7bj1yPTB9aWYoNSZvWzBdKXRocm93IG9bMV07cmV0dXJue3ZhbHVlOm9bMF0/b1sxXTp2b2lkIDAsZG9uZTohMH19KShbbyxzXSl9fX0sX19leHBvcnRTdGFyOmZ1bmN0aW9uIHlPKHQsZSl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9LF9fdmFsdWVzOnNPLF9fcmVhZDpsTyxfX3NwcmVhZDpmdW5jdGlvbiB2Tygpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0PXQuY29uY2F0KGxPKGFyZ3VtZW50c1tlXSkpO3JldHVybiB0fSxfX2F3YWl0OmNPLF9fYXN5bmNHZW5lcmF0b3I6ZnVuY3Rpb24gYk8odCxlLG4pe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgaSxyPW4uYXBwbHkodCxlfHxbXSksbz1bXTtyZXR1cm4gaT17fSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iKSxpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxpO2Z1bmN0aW9uIGEodCl7clt0XSYmKGlbdF09ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuLGkpe28ucHVzaChbdCxlLG4saV0pPjF8fHModCxlKX0pKX0pfWZ1bmN0aW9uIHModCxlKXt0cnl7IShmdW5jdGlvbiBuKHQpe3QudmFsdWUgaW5zdGFuY2VvZiBjTz9Qcm9taXNlLnJlc29sdmUodC52YWx1ZS52KS50aGVuKGwsYyk6dShvWzBdWzJdLHQpfSkoclt0XShlKSl9Y2F0Y2godCl7dShvWzBdWzNdLHQpfX1mdW5jdGlvbiBsKHQpe3MoIm5leHQiLHQpfWZ1bmN0aW9uIGModCl7cygidGhyb3ciLHQpfWZ1bmN0aW9uIHUodCxlKXt0KGUpLG8uc2hpZnQoKSxvLmxlbmd0aCYmcyhvWzBdWzBdLG9bMF1bMV0pfX0sX19hc3luY0RlbGVnYXRvcjpmdW5jdGlvbiB4Tyh0KXt2YXIgZSxuO3JldHVybiBlPXt9LGkoIm5leHQiKSxpKCJ0aHJvdyIsKGZ1bmN0aW9uKHQpe3Rocm93IHR9KSksaSgicmV0dXJuIiksZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGU7ZnVuY3Rpb24gaShpLHIpe3RbaV0mJihlW2ldPWZ1bmN0aW9uKGUpe3JldHVybihuPSFuKT97dmFsdWU6Y08odFtpXShlKSksZG9uZToicmV0dXJuIj09PWl9OnI/cihlKTplfSl9fSxfX2FzeW5jVmFsdWVzOmZ1bmN0aW9uIHdPKHQpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgZT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXTtyZXR1cm4gZT9lLmNhbGwodCk6c08odCl9LF9fbWFrZVRlbXBsYXRlT2JqZWN0OmZ1bmN0aW9uIFNPKHQsZSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eT9PYmplY3QuZGVmaW5lUHJvcGVydHkodCwicmF3Iix7dmFsdWU6ZX0pOnQucmF3PWUsdH19KSk7ZnVuY3Rpb24gTU8odCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gRU8odCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIE1PKHQoZSksbil9fSkodCkpLHtsZWZ0OmZ1bmN0aW9uKGUsbixpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj1lLmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTt0KGVbb10sbik8MD9pPW8rMTpyPW99cmV0dXJuIGl9LHJpZ2h0OmZ1bmN0aW9uKGUsbixpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj1lLmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTt0KGVbb10sbik+MD9yPW86aT1vKzF9cmV0dXJuIGl9fX12YXIgVE89RU8oTU8pLENPPVRPLnJpZ2h0LEFPPVRPLmxlZnQ7ZnVuY3Rpb24ga08odCxlKXtyZXR1cm5bdCxlXX1mdW5jdGlvbiBMTyh0KXtyZXR1cm4gbnVsbD09PXQ/TmFOOit0fWZ1bmN0aW9uIFBPKHQsZSl7dmFyIG4saSxyPXQubGVuZ3RoLG89MCxhPS0xLHM9MCxsPTA7aWYobnVsbD09ZSlmb3IoOysrYTxyOylpc05hTihuPUxPKHRbYV0pKXx8KGwrPShpPW4tcykqKG4tKHMrPWkvKytvKSkpO2Vsc2UgZm9yKDsrK2E8cjspaXNOYU4obj1MTyhlKHRbYV0sYSx0KSkpfHwobCs9KGk9bi1zKSoobi0ocys9aS8rK28pKSk7aWYobz4xKXJldHVybiBsLyhvLTEpfWZ1bmN0aW9uIE5PKHQsZSl7dmFyIG49UE8odCxlKTtyZXR1cm4gbj9NYXRoLnNxcnQobik6bn1mdW5jdGlvbiBJTyh0LGUpe3ZhciBuLGkscixvPXQubGVuZ3RoLGE9LTE7aWYobnVsbD09ZSl7Zm9yKDsrK2E8bzspaWYobnVsbCE9KG49dFthXSkmJm4+PW4pZm9yKGk9cj1uOysrYTxvOyludWxsIT0obj10W2FdKSYmKGk+biYmKGk9bikscjxuJiYocj1uKSl9ZWxzZSBmb3IoOysrYTxvOylpZihudWxsIT0obj1lKHRbYV0sYSx0KSkmJm4+PW4pZm9yKGk9cj1uOysrYTxvOyludWxsIT0obj1lKHRbYV0sYSx0KSkmJihpPm4mJihpPW4pLHI8biYmKHI9bikpO3JldHVybltpLHJdfXZhciBSTz1BcnJheS5wcm90b3R5cGUsT089Uk8uc2xpY2Usek89Uk8ubWFwO2Z1bmN0aW9uIERPKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBCTyh0KXtyZXR1cm4gdH1mdW5jdGlvbiBITyh0LGUsbil7dD0rdCxlPStlLG49KHI9YXJndW1lbnRzLmxlbmd0aCk8Mj8oZT10LHQ9MCwxKTpyPDM/MTorbjtmb3IodmFyIGk9LTEscj0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChlLXQpL24pKSxvPW5ldyBBcnJheShyKTsrK2k8cjspb1tpXT10K2kqbjtyZXR1cm4gb312YXIgRk89TWF0aC5zcXJ0KDUwKSxWTz1NYXRoLnNxcnQoMTApLFVPPU1hdGguc3FydCgyKTtmdW5jdGlvbiBqTyh0LGUsbil7dmFyIGk9KGUtdCkvTWF0aC5tYXgoMCxuKSxyPU1hdGguZmxvb3IoTWF0aC5sb2coaSkvTWF0aC5MTjEwKSxvPWkvTWF0aC5wb3coMTAscik7cmV0dXJuIHI+PTA/KG8+PUZPPzEwOm8+PVZPPzU6bz49VU8/MjoxKSpNYXRoLnBvdygxMCxyKTotTWF0aC5wb3coMTAsLXIpLyhvPj1GTz8xMDpvPj1WTz81Om8+PVVPPzI6MSl9ZnVuY3Rpb24gR08odCxlLG4pe3ZhciBpPU1hdGguYWJzKGUtdCkvTWF0aC5tYXgoMCxuKSxyPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2coaSkvTWF0aC5MTjEwKSksbz1pL3I7cmV0dXJuIG8+PUZPP3IqPTEwOm8+PVZPP3IqPTU6bz49VU8mJihyKj0yKSxlPHQ/LXI6cn1mdW5jdGlvbiBXTyh0KXtyZXR1cm4gTWF0aC5jZWlsKE1hdGgubG9nKHQubGVuZ3RoKS9NYXRoLkxOMikrMX1mdW5jdGlvbiBxTyh0LGUsbil7aWYobnVsbD09biYmKG49TE8pLGk9dC5sZW5ndGgpe2lmKChlPStlKTw9MHx8aTwyKXJldHVybituKHRbMF0sMCx0KTtpZihlPj0xKXJldHVybituKHRbaS0xXSxpLTEsdCk7dmFyIGkscj0oaS0xKSplLG89TWF0aC5mbG9vcihyKSxhPStuKHRbb10sbyx0KTtyZXR1cm4gYSsoK24odFtvKzFdLG8rMSx0KS1hKSooci1vKX19ZnVuY3Rpb24gWU8odCxlKXt2YXIgbixpLHI9dC5sZW5ndGgsbz0tMTtpZihudWxsPT1lKXtmb3IoOysrbzxyOylpZihudWxsIT0obj10W29dKSYmbj49bilmb3IoaT1uOysrbzxyOyludWxsIT0obj10W29dKSYmaT5uJiYoaT1uKX1lbHNlIGZvcig7KytvPHI7KWlmKG51bGwhPShuPWUodFtvXSxvLHQpKSYmbj49bilmb3IoaT1uOysrbzxyOyludWxsIT0obj1lKHRbb10sbyx0KSkmJmk+biYmKGk9bik7cmV0dXJuIGl9ZnVuY3Rpb24gWE8odCl7aWYoIShyPXQubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIGU9LTEsbj1ZTyh0LCRPKSxpPW5ldyBBcnJheShuKTsrK2U8bjspZm9yKHZhciByLG89LTEsYT1pW2VdPW5ldyBBcnJheShyKTsrK288cjspYVtvXT10W29dW2VdO3JldHVybiBpfWZ1bmN0aW9uICRPKHQpe3JldHVybiB0Lmxlbmd0aH12YXIgS089QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIFpPKHQpe3JldHVybiB0fXZhciBKTz0xZS02O2Z1bmN0aW9uIFFPKHQpe3JldHVybiJ0cmFuc2xhdGUoIisodCsuNSkrIiwwKSJ9ZnVuY3Rpb24gdHoodCl7cmV0dXJuInRyYW5zbGF0ZSgwLCIrKHQrLjUpKyIpIn1mdW5jdGlvbiBleih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuK3QoZSl9fWZ1bmN0aW9uIG56KHQpe3ZhciBlPU1hdGgubWF4KDAsdC5iYW5kd2lkdGgoKS0xKS8yO3JldHVybiB0LnJvdW5kKCkmJihlPU1hdGgucm91bmQoZSkpLGZ1bmN0aW9uKG4pe3JldHVybit0KG4pK2V9fWZ1bmN0aW9uIGl6KCl7cmV0dXJuIXRoaXMuX19heGlzfWZ1bmN0aW9uIHJ6KHQsZSl7dmFyIG49W10saT1udWxsLHI9bnVsbCxvPTYsYT02LHM9MyxsPTE9PT10fHw0PT09dD8tMToxLGM9ND09PXR8fDI9PT10PyJ4IjoieSIsdT0xPT09dHx8Mz09PXQ/UU86dHo7ZnVuY3Rpb24gaChoKXt2YXIgZD1udWxsPT1pP2UudGlja3M/ZS50aWNrcy5hcHBseShlLG4pOmUuZG9tYWluKCk6aSxwPW51bGw9PXI/ZS50aWNrRm9ybWF0P2UudGlja0Zvcm1hdC5hcHBseShlLG4pOlpPOnIsZj1NYXRoLm1heChvLDApK3MsbT1lLnJhbmdlKCksZz0rbVswXSsuNSxfPSttW20ubGVuZ3RoLTFdKy41LHk9KGUuYmFuZHdpZHRoP256OmV6KShlLmNvcHkoKSksdj1oLnNlbGVjdGlvbj9oLnNlbGVjdGlvbigpOmgsYj12LnNlbGVjdEFsbCgiLmRvbWFpbiIpLmRhdGEoW251bGxdKSx4PXYuc2VsZWN0QWxsKCIudGljayIpLmRhdGEoZCxlKS5vcmRlcigpLHc9eC5leGl0KCksUz14LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJ0aWNrIiksTT14LnNlbGVjdCgibGluZSIpLEU9eC5zZWxlY3QoInRleHQiKTtiPWIubWVyZ2UoYi5lbnRlcigpLmluc2VydCgicGF0aCIsIi50aWNrIikuYXR0cigiY2xhc3MiLCJkb21haW4iKS5hdHRyKCJzdHJva2UiLCIjMDAwIikpLHg9eC5tZXJnZShTKSxNPU0ubWVyZ2UoUy5hcHBlbmQoImxpbmUiKS5hdHRyKCJzdHJva2UiLCIjMDAwIikuYXR0cihjKyIyIixsKm8pKSxFPUUubWVyZ2UoUy5hcHBlbmQoInRleHQiKS5hdHRyKCJmaWxsIiwiIzAwMCIpLmF0dHIoYyxsKmYpLmF0dHIoImR5IiwxPT09dD8iMGVtIjozPT09dD8iMC43MWVtIjoiMC4zMmVtIikpLGghPT12JiYoYj1iLnRyYW5zaXRpb24oaCkseD14LnRyYW5zaXRpb24oaCksTT1NLnRyYW5zaXRpb24oaCksRT1FLnRyYW5zaXRpb24oaCksdz13LnRyYW5zaXRpb24oaCkuYXR0cigib3BhY2l0eSIsSk8pLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PXkodCkpP3UodCk6dGhpcy5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpfSkpLFMuYXR0cigib3BhY2l0eSIsSk8pLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGFyZW50Tm9kZS5fX2F4aXM7cmV0dXJuIHUoZSYmaXNGaW5pdGUoZT1lKHQpKT9lOnkodCkpfSkpKSx3LnJlbW92ZSgpLGIuYXR0cigiZCIsND09PXR8fDI9PXQ/Ik0iK2wqYSsiLCIrZysiSDAuNVYiK18rIkgiK2wqYToiTSIrZysiLCIrbCphKyJWMC41SCIrXysiViIrbCphKSx4LmF0dHIoIm9wYWNpdHkiLDEpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiB1KHkodCkpfSkpLE0uYXR0cihjKyIyIixsKm8pLEUuYXR0cihjLGwqZikudGV4dChwKSx2LmZpbHRlcihpeikuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJmb250LXNpemUiLDEwKS5hdHRyKCJmb250LWZhbWlseSIsInNhbnMtc2VyaWYiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsMj09PXQ/InN0YXJ0Ijo0PT09dD8iZW5kIjoibWlkZGxlIiksdi5lYWNoKChmdW5jdGlvbigpe3RoaXMuX19heGlzPXl9KSl9cmV0dXJuIGguc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxoKTplfSxoLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIG49S08uY2FsbChhcmd1bWVudHMpLGh9LGgudGlja0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P1tdOktPLmNhbGwodCksaCk6bi5zbGljZSgpfSxoLnRpY2tWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOktPLmNhbGwodCksaCk6aSYmaS5zbGljZSgpfSxoLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxoKTpyfSxoLnRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPWE9K3QsaCk6b30saC50aWNrU2l6ZUlubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSt0LGgpOm99LGgudGlja1NpemVPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxoKTphfSxoLnRpY2tQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LGgpOnN9LGh9dmFyIG96PXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIGF6KCl7Zm9yKHZhciB0LGU9MCxuPWFyZ3VtZW50cy5sZW5ndGgsaT17fTtlPG47KytlKXtpZighKHQ9YXJndW1lbnRzW2VdKyIiKXx8dCBpbiBpfHwvW1xzLl0vLnRlc3QodCkpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrdCk7aVt0XT1bXX1yZXR1cm4gbmV3IHN6KGkpfWZ1bmN0aW9uIHN6KHQpe3RoaXMuXz10fWZ1bmN0aW9uIGx6KHQsZSl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcCgoZnVuY3Rpb24odCl7dmFyIG49IiIsaT10LmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj10LnNsaWNlKGkrMSksdD10LnNsaWNlKDAsaSkpLHQmJiFlLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO3JldHVybnt0eXBlOnQsbmFtZTpufX0pKX1mdW5jdGlvbiBjeih0LGUpe2Zvcih2YXIgbixpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKChuPXRbaV0pLm5hbWU9PT1lKXJldHVybiBuLnZhbHVlfWZ1bmN0aW9uIHV6KHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT1veix0PXQuc2xpY2UoMCxpKS5jb25jYXQodC5zbGljZShpKzEpKTticmVha31yZXR1cm4gbnVsbCE9biYmdC5wdXNoKHtuYW1lOmUsdmFsdWU6bn0pLHR9c3oucHJvdG90eXBlPWF6LnByb3RvdHlwZT17Y29uc3RydWN0b3I6c3osb246ZnVuY3Rpb24odCxlKXt2YXIgbixpPXRoaXMuXyxyPWx6KHQrIiIsaSksbz0tMSxhPXIubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK2UpO2Zvcig7KytvPGE7KWlmKG49KHQ9cltvXSkudHlwZSlpW25dPXV6KGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09dXooaVtuXSx0Lm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9Zm9yKDsrK288YTspaWYoKG49KHQ9cltvXSkudHlwZSkmJihuPWN6KGlbbl0sdC5uYW1lKSkpcmV0dXJuIG59LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxlPXRoaXMuXztmb3IodmFyIG4gaW4gZSl0W25dPWVbbl0uc2xpY2UoKTtyZXR1cm4gbmV3IHN6KHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgaHo9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLGR6PXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpoeix4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9O2Z1bmN0aW9uIHB6KHQpe3ZhciBlPXQrPSIiLG49ZS5pbmRleE9mKCI6Iik7cmV0dXJuIG4+PTAmJiJ4bWxucyIhPT0oZT10LnNsaWNlKDAsbikpJiYodD10LnNsaWNlKG4rMSkpLGR6Lmhhc093blByb3BlcnR5KGUpP3tzcGFjZTpkeltlXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIGZ6KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudCxuPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBuPT09aHomJmUuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PWh6P2UuY3JlYXRlRWxlbWVudCh0KTplLmNyZWF0ZUVsZW1lbnROUyhuLHQpfX1mdW5jdGlvbiBteih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBneih0KXt2YXIgZT1weih0KTtyZXR1cm4oZS5sb2NhbD9tejpmeikoZSl9ZnVuY3Rpb24gX3ooKXt9ZnVuY3Rpb24geXoodCl7cmV0dXJuIG51bGw9PXQ/X3o6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiB2eigpe3JldHVybltdfWZ1bmN0aW9uIGJ6KHQpe3JldHVybiBudWxsPT10P3Z6OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24geHoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyh0KX19ZnVuY3Rpb24gd3oodCl7cmV0dXJuIG5ldyBBcnJheSh0Lmxlbmd0aCl9ZnVuY3Rpb24gU3oodCxlKXt0aGlzLm93bmVyRG9jdW1lbnQ9dC5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPXQubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9fZGF0YV9fPWV9ZnVuY3Rpb24gTXoodCxlLG4saSxyLG8pe2Zvcih2YXIgYSxzPTAsbD1lLmxlbmd0aCxjPW8ubGVuZ3RoO3M8YzsrK3MpKGE9ZVtzXSk/KGEuX19kYXRhX189b1tzXSxpW3NdPWEpOm5bc109bmV3IFN6KHQsb1tzXSk7Zm9yKDtzPGw7KytzKShhPWVbc10pJiYocltzXT1hKX1mdW5jdGlvbiBFeih0LGUsbixpLHIsbyxhKXt2YXIgcyxsLGMsdT17fSxoPWUubGVuZ3RoLGQ9by5sZW5ndGgscD1uZXcgQXJyYXkoaCk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiYocFtzXT1jPSIkIithLmNhbGwobCxsLl9fZGF0YV9fLHMsZSksYyBpbiB1P3Jbc109bDp1W2NdPWwpO2ZvcihzPTA7czxkOysrcykobD11W2M9IiQiK2EuY2FsbCh0LG9bc10scyxvKV0pPyhpW3NdPWwsbC5fX2RhdGFfXz1vW3NdLHVbY109bnVsbCk6bltzXT1uZXcgU3oodCxvW3NdKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJnVbcFtzXV09PT1sJiYocltzXT1sKX1mdW5jdGlvbiBUeih0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBDeih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gQXoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBreih0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKHQsZSl9fWZ1bmN0aW9uIEx6KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZSl9fWZ1bmN0aW9uIFB6KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KTp0aGlzLnNldEF0dHJpYnV0ZSh0LG4pfX1mdW5jdGlvbiBOeih0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLG4pfX1mdW5jdGlvbiBJeih0KXtyZXR1cm4gdC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gUnoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19ZnVuY3Rpb24gT3oodCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLG4pfX1mdW5jdGlvbiB6eih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09aT90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxpLG4pfX1mdW5jdGlvbiBEeih0LGUpe3JldHVybiB0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoZSl8fEl6KHQpLmdldENvbXB1dGVkU3R5bGUodCxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKGUpfWZ1bmN0aW9uIEJ6KHQpe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW3RdfX1mdW5jdGlvbiBIeih0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbdF09ZX19ZnVuY3Rpb24gRnoodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09bn19ZnVuY3Rpb24gVnoodCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIFV6KHQpe3JldHVybiB0LmNsYXNzTGlzdHx8bmV3IGp6KHQpfWZ1bmN0aW9uIGp6KHQpe3RoaXMuX25vZGU9dCx0aGlzLl9uYW1lcz1Weih0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfWZ1bmN0aW9uIEd6KHQsZSl7Zm9yKHZhciBuPVV6KHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5hZGQoZVtpXSl9ZnVuY3Rpb24gV3oodCxlKXtmb3IodmFyIG49VXoodCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLnJlbW92ZShlW2ldKX1mdW5jdGlvbiBxeih0KXtyZXR1cm4gZnVuY3Rpb24oKXtHeih0aGlzLHQpfX1mdW5jdGlvbiBZeih0KXtyZXR1cm4gZnVuY3Rpb24oKXtXeih0aGlzLHQpfX1mdW5jdGlvbiBYeih0LGUpe3JldHVybiBmdW5jdGlvbigpeyhlLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9HejpXeikodGhpcyx0KX19ZnVuY3Rpb24gJHooKXt0aGlzLnRleHRDb250ZW50PSIifWZ1bmN0aW9uIEt6KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24gWnoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIEp6KCl7dGhpcy5pbm5lckhUTUw9IiJ9ZnVuY3Rpb24gUXoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9dH19ZnVuY3Rpb24gdEQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBlRCgpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBuRCgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGlEKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gckQoKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiBvRCgpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCExKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9ZnVuY3Rpb24gYUQoKXt2YXIgdD10aGlzLmNsb25lTm9kZSghMCksZT10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGU/ZS5pbnNlcnRCZWZvcmUodCx0aGlzLm5leHRTaWJsaW5nKTp0fVN6LnByb3RvdHlwZT17Y29uc3RydWN0b3I6U3osYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCxlKX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3IodCl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHQpfX0sanoucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtlPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKGUsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgc0Q9e30sbEQ9bnVsbDtmdW5jdGlvbiBjRCh0LGUsbil7cmV0dXJuIHQ9dUQodCxlLG4pLGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVsYXRlZFRhcmdldDtuJiYobj09PXRoaXN8fDgmbi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiB1RCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3ZhciByPWxEO2xEPWk7dHJ5e3QuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxuKX1maW5hbGx5e2xEPXJ9fX1mdW5jdGlvbiBoRCh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgZT0iIixuPXQuaW5kZXhPZigiLiIpO3JldHVybiBuPj0wJiYoZT10LnNsaWNlKG4rMSksdD10LnNsaWNlKDAsbikpLHt0eXBlOnQsbmFtZTplfX0pKX1mdW5jdGlvbiBkRCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fb247aWYoZSl7Zm9yKHZhciBuLGk9MCxyPS0xLG89ZS5sZW5ndGg7aTxvOysraSluPWVbaV0sdC50eXBlJiZuLnR5cGUhPT10LnR5cGV8fG4ubmFtZSE9PXQubmFtZT9lWysrcl09bjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobi50eXBlLG4ubGlzdGVuZXIsbi5jYXB0dXJlKTsrK3I/ZS5sZW5ndGg9cjpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gcEQodCxlLG4pe3ZhciBpPXNELmhhc093blByb3BlcnR5KHQudHlwZSk/Y0Q6dUQ7cmV0dXJuIGZ1bmN0aW9uKHIsbyxhKXt2YXIgcyxsPXRoaXMuX19vbixjPWkoZSxvLGEpO2lmKGwpZm9yKHZhciB1PTAsaD1sLmxlbmd0aDt1PGg7Kyt1KWlmKChzPWxbdV0pLnR5cGU9PT10LnR5cGUmJnMubmFtZT09PXQubmFtZSlyZXR1cm4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyLHMuY2FwdHVyZSksdGhpcy5hZGRFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyPWMscy5jYXB0dXJlPW4pLHZvaWQocy52YWx1ZT1lKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIodC50eXBlLGMsbikscz17dHlwZTp0LnR5cGUsbmFtZTp0Lm5hbWUsdmFsdWU6ZSxsaXN0ZW5lcjpjLGNhcHR1cmU6bn0sbD9sLnB1c2gocyk6dGhpcy5fX29uPVtzXX19ZnVuY3Rpb24gZkQodCxlLG4pe3ZhciBpPUl6KHQpLHI9aS5DdXN0b21FdmVudDsiZnVuY3Rpb24iPT10eXBlb2Ygcj9yPW5ldyByKGUsbik6KHI9aS5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxuPyhyLmluaXRFdmVudChlLG4uYnViYmxlcyxuLmNhbmNlbGFibGUpLHIuZGV0YWlsPW4uZGV0YWlsKTpyLmluaXRFdmVudChlLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KHIpfWZ1bmN0aW9uIG1EKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGZEKHRoaXMsdCxlKX19ZnVuY3Rpb24gZ0QodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZkQodGhpcyx0LGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmKCJvbm1vdXNlZW50ZXIiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHwoc0Q9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpO3ZhciBfRD1bbnVsbF07ZnVuY3Rpb24geUQodCxlKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWV9ZnVuY3Rpb24gdkQoKXtyZXR1cm4gbmV3IHlEKFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sX0QpfWZ1bmN0aW9uIGJEKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9uZXcgeUQoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB5RChbW3RdXSxfRCl9ZnVuY3Rpb24geEQodCl7dmFyIGU9KGZ1bmN0aW9uIG4oKXtmb3IodmFyIHQsZT1sRDt0PWUuc291cmNlRXZlbnQ7KWU9dDtyZXR1cm4gZX0pKCk7cmV0dXJuIGUuY2hhbmdlZFRvdWNoZXMmJihlPWUuY2hhbmdlZFRvdWNoZXNbMF0pLChmdW5jdGlvbiBpKHQsZSl7dmFyIG49dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIGk9bi5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBpLng9ZS5jbGllbnRYLGkueT1lLmNsaWVudFksWyhpPWkubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxpLnldfXZhciByPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW2UuY2xpZW50WC1yLmxlZnQtdC5jbGllbnRMZWZ0LGUuY2xpZW50WS1yLnRvcC10LmNsaWVudFRvcF19KSh0LGUpfWZ1bmN0aW9uIHdEKCl7bEQucHJldmVudERlZmF1bHQoKSxsRC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBTRCh0KXt2YXIgZT10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPWJEKHQpLm9uKCJkcmFnc3RhcnQuZHJhZyIsd0QsITApOyJvbnNlbGVjdHN0YXJ0ImluIGU/bi5vbigic2VsZWN0c3RhcnQuZHJhZyIsd0QsITApOihlLl9fbm9zZWxlY3Q9ZS5zdHlsZS5Nb3pVc2VyU2VsZWN0LGUuc3R5bGUuTW96VXNlclNlbGVjdD0ibm9uZSIpfWZ1bmN0aW9uIE1EKHQsZSl7dmFyIG49dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsaT1iRCh0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLG51bGwpO2UmJihpLm9uKCJjbGljay5kcmFnIix3RCwhMCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpLm9uKCJjbGljay5kcmFnIixudWxsKX0pLDApKSwib25zZWxlY3RzdGFydCJpbiBuP2kub24oInNlbGVjdHN0YXJ0LmRyYWciLG51bGwpOihuLnN0eWxlLk1velVzZXJTZWxlY3Q9bi5fX25vc2VsZWN0LGRlbGV0ZSBuLl9fbm9zZWxlY3QpfWZ1bmN0aW9uIEVEKHQsZSxuKXt0LnByb3RvdHlwZT1lLnByb3RvdHlwZT1uLG4uY29uc3RydWN0b3I9dH1mdW5jdGlvbiBURCh0LGUpe3ZhciBuPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpO2Zvcih2YXIgaSBpbiBlKW5baV09ZVtpXTtyZXR1cm4gbn1mdW5jdGlvbiBDRCgpe315RC5wcm90b3R5cGU9dkQucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp5RCxzZWxlY3Q6ZnVuY3Rpb24gQUQodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXl6KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGEscz1lW3JdLGw9cy5sZW5ndGgsYz1pW3JdPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkobz1zW3VdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyx1LHMpKSYmKCJfX2RhdGFfXyJpbiBvJiYoYS5fX2RhdGFfXz1vLl9fZGF0YV9fKSxjW3VdPWEpO3JldHVybiBuZXcgeUQoaSx0aGlzLl9wYXJlbnRzKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIGtEKHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1ieih0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9W10scj1bXSxvPTA7bzxuOysrbylmb3IodmFyIGEscz1lW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKGE9c1tjXSkmJihpLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHMpKSxyLnB1c2goYSkpO3JldHVybiBuZXcgeUQoaSxyKX0sZmlsdGVyOmZ1bmN0aW9uIExEKHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD14eih0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgeUQoaSx0aGlzLl9wYXJlbnRzKX0sZGF0YTpmdW5jdGlvbiBQRCh0LGUpe2lmKCF0KXJldHVybiBmPW5ldyBBcnJheSh0aGlzLnNpemUoKSksdT0tMSx0aGlzLmVhY2goKGZ1bmN0aW9uKHQpe2ZbKyt1XT10fSkpLGY7dmFyIG49ZT9FejpNeixpPXRoaXMuX3BhcmVudHMscj10aGlzLl9ncm91cHM7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PShmdW5jdGlvbiBvKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0pKHQpKTtmb3IodmFyIGE9ci5sZW5ndGgscz1uZXcgQXJyYXkoYSksbD1uZXcgQXJyYXkoYSksYz1uZXcgQXJyYXkoYSksdT0wO3U8YTsrK3Upe3ZhciBoPWlbdV0sZD1yW3VdLHA9ZC5sZW5ndGgsZj10LmNhbGwoaCxoJiZoLl9fZGF0YV9fLHUsaSksbT1mLmxlbmd0aCxnPWxbdV09bmV3IEFycmF5KG0pLF89c1t1XT1uZXcgQXJyYXkobSk7bihoLGQsZyxfLGNbdV09bmV3IEFycmF5KHApLGYsZSk7Zm9yKHZhciB5LHYsYj0wLHg9MDtiPG07KytiKWlmKHk9Z1tiXSl7Zm9yKGI+PXgmJih4PWIrMSk7ISh2PV9beF0pJiYrK3g8bTspO3kuX25leHQ9dnx8bnVsbH19cmV0dXJuKHM9bmV3IHlEKHMsaSkpLl9lbnRlcj1sLHMuX2V4aXQ9YyxzfSxlbnRlcjpmdW5jdGlvbiBORCgpe3JldHVybiBuZXcgeUQodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAod3opLHRoaXMuX3BhcmVudHMpfSxleGl0OmZ1bmN0aW9uIElEKCl7cmV0dXJuIG5ldyB5RCh0aGlzLl9leGl0fHx0aGlzLl9ncm91cHMubWFwKHd6KSx0aGlzLl9wYXJlbnRzKX0sam9pbjpmdW5jdGlvbiBSRCh0LGUsbil7dmFyIGk9dGhpcy5lbnRlcigpLHI9dGhpcyxvPXRoaXMuZXhpdCgpO3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoaSk6aS5hcHBlbmQodCsiIiksbnVsbCE9ZSYmKHI9ZShyKSksbnVsbD09bj9vLnJlbW92ZSgpOm4obyksaSYmcj9pLm1lcmdlKHIpLm9yZGVyKCk6cn0sbWVyZ2U6ZnVuY3Rpb24gT0QodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPXQuX2dyb3VwcyxpPWUubGVuZ3RoLHI9TWF0aC5taW4oaSxuLmxlbmd0aCksbz1uZXcgQXJyYXkoaSksYT0wO2E8cjsrK2EpZm9yKHZhciBzLGw9ZVthXSxjPW5bYV0sdT1sLmxlbmd0aCxoPW9bYV09bmV3IEFycmF5KHUpLGQ9MDtkPHU7KytkKShzPWxbZF18fGNbZF0pJiYoaFtkXT1zKTtmb3IoO2E8aTsrK2Epb1thXT1lW2FdO3JldHVybiBuZXcgeUQobyx0aGlzLl9wYXJlbnRzKX0sb3JkZXI6ZnVuY3Rpb24gekQoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9LTEsbj10Lmxlbmd0aDsrK2U8bjspZm9yKHZhciBpLHI9dFtlXSxvPXIubGVuZ3RoLTEsYT1yW29dOy0tbz49MDspKGk9cltvXSkmJihhJiY0XmkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSkmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaSxhKSxhPWkpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uIEREKHQpe2Z1bmN0aW9uIGUoZSxuKXtyZXR1cm4gZSYmbj90KGUuX19kYXRhX18sbi5fX2RhdGFfXyk6IWUtIW59dHx8KHQ9VHopO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxyPW5ldyBBcnJheShpKSxvPTA7bzxpOysrbyl7Zm9yKHZhciBhLHM9bltvXSxsPXMubGVuZ3RoLGM9cltvXT1uZXcgQXJyYXkobCksdT0wO3U8bDsrK3UpKGE9c1t1XSkmJihjW3VdPWEpO2Muc29ydChlKX1yZXR1cm4gbmV3IHlEKHIsdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbiBCRCgpe3ZhciB0PWFyZ3VtZW50c1swXTtyZXR1cm4gYXJndW1lbnRzWzBdPXRoaXMsdC5hcHBseShudWxsLGFyZ3VtZW50cyksdGhpc30sbm9kZXM6ZnVuY3Rpb24gSEQoKXt2YXIgdD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGU9LTE7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXt0WysrZV09dGhpc30pKSx0fSxub2RlOmZ1bmN0aW9uIEZEKCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPTAsbj10Lmxlbmd0aDtlPG47KytlKWZvcih2YXIgaT10W2VdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3Ipe3ZhciBhPWlbcl07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiBWRCgpe3ZhciB0PTA7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXsrK3R9KSksdH0sZW1wdHk6ZnVuY3Rpb24gVUQoKXtyZXR1cm4hdGhpcy5ub2RlKCl9LGVhY2g6ZnVuY3Rpb24gakQodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWZvcih2YXIgcixvPWVbbl0sYT0wLHM9by5sZW5ndGg7YTxzOysrYSkocj1vW2FdKSYmdC5jYWxsKHIsci5fX2RhdGFfXyxhLG8pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uIEdEKHQsZSl7dmFyIG49cHoodCk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgaT10aGlzLm5vZGUoKTtyZXR1cm4gbi5sb2NhbD9pLmdldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCk6aS5nZXRBdHRyaWJ1dGUobil9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09ZT9uLmxvY2FsP0F6OkN6OiJmdW5jdGlvbiI9PXR5cGVvZiBlP24ubG9jYWw/Tno6UHo6bi5sb2NhbD9MejpreikobixlKSl9LHN0eWxlOmZ1bmN0aW9uIFdEKHQsZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9SejoiZnVuY3Rpb24iPT10eXBlb2YgZT96ejpPeikodCxlLG51bGw9PW4/IiI6bikpOkR6KHRoaXMubm9kZSgpLHQpfSxwcm9wZXJ0eTpmdW5jdGlvbiBxRCh0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1lP0J6OiJmdW5jdGlvbiI9PXR5cGVvZiBlP0Z6Okh6KSh0LGUpKTp0aGlzLm5vZGUoKVt0XX0sY2xhc3NlZDpmdW5jdGlvbiBZRCh0LGUpe3ZhciBuPVZ6KHQrIiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBpPVV6KHRoaXMubm9kZSgpKSxyPS0xLG89bi5sZW5ndGg7KytyPG87KWlmKCFpLmNvbnRhaW5zKG5bcl0pKXJldHVybiExO3JldHVybiEwfXJldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBlP1h6OmU/cXo6WXopKG4sZSkpfSx0ZXh0OmZ1bmN0aW9uIFhEKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10PyR6OigiZnVuY3Rpb24iPT10eXBlb2YgdD9aejpLeikodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uICREKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P0p6OigiZnVuY3Rpb24iPT10eXBlb2YgdD90RDpReikodCkpOnRoaXMubm9kZSgpLmlubmVySFRNTH0scmFpc2U6ZnVuY3Rpb24gS0QoKXtyZXR1cm4gdGhpcy5lYWNoKGVEKX0sbG93ZXI6ZnVuY3Rpb24gWkQoKXtyZXR1cm4gdGhpcy5lYWNoKG5EKX0sYXBwZW5kOmZ1bmN0aW9uIEpEKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Z3oodCk7cmV0dXJuIHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pKX0saW5zZXJ0OmZ1bmN0aW9uIFFEKHQsZSl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpneih0KSxpPW51bGw9PWU/aUQ6ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTp5eihlKTtyZXR1cm4gdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pKX0scmVtb3ZlOmZ1bmN0aW9uIHRCKCl7cmV0dXJuIHRoaXMuZWFjaChyRCl9LGNsb25lOmZ1bmN0aW9uIGVCKHQpe3JldHVybiB0aGlzLnNlbGVjdCh0P2FEOm9EKX0sZGF0dW06ZnVuY3Rpb24gbkIodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iLHQpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjpmdW5jdGlvbiBpQih0LGUsbil7dmFyIGkscixvPWhEKHQrIiIpLGE9by5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtmb3Iocz1lP3BEOmRELG51bGw9PW4mJihuPSExKSxpPTA7aTxhOysraSl0aGlzLmVhY2gocyhvW2ldLGUsbikpO3JldHVybiB0aGlzfXZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocylmb3IodmFyIGwsYz0wLHU9cy5sZW5ndGg7Yzx1OysrYylmb3IoaT0wLGw9c1tjXTtpPGE7KytpKWlmKChyPW9baV0pLnR5cGU9PT1sLnR5cGUmJnIubmFtZT09PWwubmFtZSlyZXR1cm4gbC52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24gckIodCxlKXtyZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgZT9nRDptRCkodCxlKSl9fTt2YXIgb0I9LjcsYUI9MS9vQixzQj0iXFxzKihbKy1dP1xcZCspXFxzKiIsbEI9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pXFxzKiIsY0I9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLHVCPS9eIyhbMC05YS1mXXszLDh9KSQvLGhCPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tzQixzQixzQl0rIlxcKSQiKSxkQj1uZXcgUmVnRXhwKCJecmdiXFwoIitbY0IsY0IsY0JdKyJcXCkkIikscEI9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tzQixzQixzQixsQl0rIlxcKSQiKSxmQj1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW2NCLGNCLGNCLGxCXSsiXFwpJCIpLG1CPW5ldyBSZWdFeHAoIl5oc2xcXCgiK1tsQixjQixjQl0rIlxcKSQiKSxnQj1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW2xCLGNCLGNCLGxCXSsiXFwpJCIpLF9CPXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O2Z1bmN0aW9uIHlCKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gdkIoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBiQih0KXt2YXIgZSxuO3JldHVybiB0PSh0KyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwoZT11Qi5leGVjKHQpKT8obj1lWzFdLmxlbmd0aCxlPXBhcnNlSW50KGVbMV0sMTYpLDY9PT1uP3hCKGUpOjM9PT1uP25ldyBFQihlPj44JjE1fGU+PjQmMjQwLGU+PjQmMTV8MjQwJmUsKDE1JmUpPDw0fDE1JmUsMSk6OD09PW4/d0IoZT4+MjQmMjU1LGU+PjE2JjI1NSxlPj44JjI1NSwoMjU1JmUpLzI1NSk6ND09PW4/d0IoZT4+MTImMTV8ZT4+OCYyNDAsZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgoMTUmZSk8PDR8MTUmZSkvMjU1KTpudWxsKTooZT1oQi5leGVjKHQpKT9uZXcgRUIoZVsxXSxlWzJdLGVbM10sMSk6KGU9ZEIuZXhlYyh0KSk/bmV3IEVCKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLDEpOihlPXBCLmV4ZWModCkpP3dCKGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPWZCLmV4ZWModCkpP3dCKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLGVbNF0pOihlPW1CLmV4ZWModCkpP2tCKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsMSk6KGU9Z0IuZXhlYyh0KSk/a0IoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpfQi5oYXNPd25Qcm9wZXJ0eSh0KT94QihfQlt0XSk6InRyYW5zcGFyZW50Ij09PXQ/bmV3IEVCKE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24geEIodCl7cmV0dXJuIG5ldyBFQih0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gd0IodCxlLG4saSl7cmV0dXJuIGk8PTAmJih0PWU9bj1OYU4pLG5ldyBFQih0LGUsbixpKX1mdW5jdGlvbiBTQih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIENEfHwodD1iQih0KSksdD9uZXcgRUIoKHQ9dC5yZ2IoKSkucix0LmcsdC5iLHQub3BhY2l0eSk6bmV3IEVCfWZ1bmN0aW9uIE1CKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9TQih0KTpuZXcgRUIodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIEVCKHQsZSxuLGkpe3RoaXMucj0rdCx0aGlzLmc9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBUQigpe3JldHVybiIjIitBQih0aGlzLnIpK0FCKHRoaXMuZykrQUIodGhpcy5iKX1mdW5jdGlvbiBDQigpe3ZhciB0PXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PSh0PWlzTmFOKHQpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSk/InJnYigiOiJyZ2JhKCIpK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5yKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmcpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoMT09PXQ/IikiOiIsICIrdCsiKSIpfWZ1bmN0aW9uIEFCKHQpe3JldHVybigodD1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHQpfHwwKSkpPDE2PyIwIjoiIikrdC50b1N0cmluZygxNil9ZnVuY3Rpb24ga0IodCxlLG4saSl7cmV0dXJuIGk8PTA/dD1lPW49TmFOOm48PTB8fG4+PTE/dD1lPU5hTjplPD0wJiYodD1OYU4pLG5ldyBQQih0LGUsbixpKX1mdW5jdGlvbiBMQih0KXtpZih0IGluc3RhbmNlb2YgUEIpcmV0dXJuIG5ldyBQQih0LmgsdC5zLHQubCx0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBDRHx8KHQ9YkIodCkpLCF0KXJldHVybiBuZXcgUEI7aWYodCBpbnN0YW5jZW9mIFBCKXJldHVybiB0O3ZhciBlPSh0PXQucmdiKCkpLnIvMjU1LG49dC5nLzI1NSxpPXQuYi8yNTUscj1NYXRoLm1pbihlLG4saSksbz1NYXRoLm1heChlLG4saSksYT1OYU4scz1vLXIsbD0obytyKS8yO3JldHVybiBzPyhhPWU9PT1vPyhuLWkpL3MrNioobjxpKTpuPT09bz8oaS1lKS9zKzI6KGUtbikvcys0LHMvPWw8LjU/bytyOjItby1yLGEqPTYwKTpzPWw+MCYmbDwxPzA6YSxuZXcgUEIoYSxzLGwsdC5vcGFjaXR5KX1mdW5jdGlvbiBQQih0LGUsbixpKXt0aGlzLmg9K3QsdGhpcy5zPStlLHRoaXMubD0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gTkIodCxlLG4pe3JldHVybiAyNTUqKHQ8NjA/ZSsobi1lKSp0LzYwOnQ8MTgwP246dDwyNDA/ZSsobi1lKSooMjQwLXQpLzYwOmUpfWZ1bmN0aW9uIElCKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBSQih0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj8oZnVuY3Rpb24gaSh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdCtuKmV9fSkodCxuKTpJQihpc05hTih0KT9lOnQpfUVEKENELGJCLHtjb3B5OmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsdCl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4OnlCLGZvcm1hdEhleDp5Qixmb3JtYXRIc2w6ZnVuY3Rpb24gT0IoKXtyZXR1cm4gTEIodGhpcykuZm9ybWF0SHNsKCl9LGZvcm1hdFJnYjp2Qix0b1N0cmluZzp2Qn0pLEVEKEVCLE1CLFREKENELHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P2FCOk1hdGgucG93KGFCLHQpLG5ldyBFQih0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9vQjpNYXRoLnBvdyhvQix0KSxuZXcgRUIodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuLS41PD10aGlzLnImJnRoaXMucjwyNTUuNSYmLS41PD10aGlzLmcmJnRoaXMuZzwyNTUuNSYmLS41PD10aGlzLmImJnRoaXMuYjwyNTUuNSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGhleDpUQixmb3JtYXRIZXg6VEIsZm9ybWF0UmdiOkNCLHRvU3RyaW5nOkNCfSkpLEVEKFBCLChmdW5jdGlvbiB6Qih0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/TEIodCk6bmV3IFBCKHQsZSxuLG51bGw9PWk/MTppKX0pLFREKENELHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P2FCOk1hdGgucG93KGFCLHQpLG5ldyBQQih0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P29COk1hdGgucG93KG9CLHQpLG5ldyBQQih0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaCUzNjArMzYwKih0aGlzLmg8MCksZT1pc05hTih0KXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxuPXRoaXMubCxpPW4rKG48LjU/bjoxLW4pKmUscj0yKm4taTtyZXR1cm4gbmV3IEVCKE5CKHQ+PTI0MD90LTI0MDp0KzEyMCxyLGkpLE5CKHQscixpKSxOQih0PDEyMD90KzI0MDp0LTEyMCxyLGkpLHRoaXMub3BhY2l0eSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxmb3JtYXRIc2w6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJoc2woIjoiaHNsYSgiKSsodGhpcy5ofHwwKSsiLCAiKzEwMCoodGhpcy5zfHwwKSsiJSwgIisxMDAqKHRoaXMubHx8MCkrIiUiKygxPT09dD8iKSI6IiwgIit0KyIpIil9fSkpO3ZhciBEQj0oZnVuY3Rpb24gdChlKXt2YXIgbj0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gMT09KHQ9K3QpP1JCOmZ1bmN0aW9uKGUsbil7cmV0dXJuIG4tZT8oZnVuY3Rpb24gaSh0LGUsbil7cmV0dXJuIHQ9TWF0aC5wb3codCxuKSxlPU1hdGgucG93KGUsbiktdCxuPTEvbixmdW5jdGlvbihpKXtyZXR1cm4gTWF0aC5wb3codCtpKmUsbil9fSkoZSxuLHQpOklCKGlzTmFOKGUpP246ZSl9fSkoZSk7ZnVuY3Rpb24gcih0LGUpe3ZhciBpPW4oKHQ9TUIodCkpLnIsKGU9TUIoZSkpLnIpLHI9bih0LmcsZS5nKSxvPW4odC5iLGUuYiksYT1SQih0Lm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQucj1pKGUpLHQuZz1yKGUpLHQuYj1vKGUpLHQub3BhY2l0eT1hKGUpLHQrIiJ9fXJldHVybiByLmdhbW1hPXQscn0pKDEpO2Z1bmN0aW9uIEJCKHQsZSl7ZXx8KGU9W10pO3ZhciBuLGk9dD9NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk6MCxyPWUuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24obyl7Zm9yKG49MDtuPGk7KytuKXJbbl09dFtuXSooMS1vKStlW25dKm87cmV0dXJuIHJ9fWZ1bmN0aW9uIEhCKHQsZSl7dmFyIG4saT1lP2UubGVuZ3RoOjAscj10P01hdGgubWluKGksdC5sZW5ndGgpOjAsbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPHI7KytuKW9bbl09cUIodFtuXSxlW25dKTtmb3IoO248aTsrK24pYVtuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3Iobj0wO248cjsrK24pYVtuXT1vW25dKHQpO3JldHVybiBhfX1mdW5jdGlvbiBGQih0LGUpe3ZhciBuPW5ldyBEYXRlO3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24oaSl7cmV0dXJuIG4uc2V0VGltZSh0KigxLWkpK2UqaSksbn19ZnVuY3Rpb24gVkIodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiB0KigxLW4pK2Uqbn19ZnVuY3Rpb24gVUIodCxlKXt2YXIgbixpPXt9LHI9e307Zm9yKG4gaW4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e30pLG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fChlPXt9KSxlKW4gaW4gdD9pW25dPXFCKHRbbl0sZVtuXSk6cltuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3IobiBpbiBpKXJbbl09aVtuXSh0KTtyZXR1cm4gcn19dmFyIGpCPS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyxHQj1uZXcgUmVnRXhwKGpCLnNvdXJjZSwiZyIpO2Z1bmN0aW9uIFdCKHQsZSl7dmFyIG4saSxyLG89akIubGFzdEluZGV4PUdCLmxhc3RJbmRleD0wLGE9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsobj1qQi5leGVjKHQpKSYmKGk9R0IuZXhlYyhlKSk7KShyPWkuaW5kZXgpPm8mJihyPWUuc2xpY2UobyxyKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLChuPW5bMF0pPT09KGk9aVswXSk/c1thXT9zW2FdKz1pOnNbKythXT1pOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OlZCKG4saSl9KSksbz1HQi5sYXN0SW5kZXg7cmV0dXJuIG88ZS5sZW5ndGgmJihyPWUuc2xpY2Uobyksc1thXT9zW2FdKz1yOnNbKythXT1yKSxzLmxlbmd0aDwyP2xbMF0/KGZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpKyIifX0pKGxbMF0ueCk6KGZ1bmN0aW9uIHUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkoZSk6KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBuLGk9MDtpPGU7KytpKXNbKG49bFtpXSkuaV09bi54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24gcUIodCxlKXt2YXIgbixpPXR5cGVvZiBlO3JldHVybiBudWxsPT1lfHwiYm9vbGVhbiI9PT1pP0lCKGUpOigibnVtYmVyIj09PWk/VkI6InN0cmluZyI9PT1pPyhuPWJCKGUpKT8oZT1uLERCKTpXQjplIGluc3RhbmNlb2YgYkI/REI6ZSBpbnN0YW5jZW9mIERhdGU/RkI6KGZ1bmN0aW9uIHIodCl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgRGF0YVZpZXcpfSkoZSk/QkI6QXJyYXkuaXNBcnJheShlKT9IQjoiZnVuY3Rpb24iIT10eXBlb2YgZS52YWx1ZU9mJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZ3x8aXNOYU4oZSk/VUI6VkIpKHQsZSl9dmFyIFlCLFhCLCRCLEtCLFpCPTE4MC9NYXRoLlBJLEpCPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIFFCKHQsZSxuLGkscixvKXt2YXIgYSxzLGw7cmV0dXJuKGE9TWF0aC5zcXJ0KHQqdCtlKmUpKSYmKHQvPWEsZS89YSksKGw9dCpuK2UqaSkmJihuLT10KmwsaS09ZSpsKSwocz1NYXRoLnNxcnQobipuK2kqaSkpJiYobi89cyxpLz1zLGwvPXMpLHQqaTxlKm4mJih0PS10LGU9LWUsbD0tbCxhPS1hKSx7dHJhbnNsYXRlWDpyLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMihlLHQpKlpCLHNrZXdYOk1hdGguYXRhbihsKSpaQixzY2FsZVg6YSxzY2FsZVk6c319ZnVuY3Rpb24gdEgodCxlLG4saSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKG8sYSl7dmFyIHM9W10sbD1bXTtyZXR1cm4gbz10KG8pLGE9dChhKSwoZnVuY3Rpb24gYyh0LGkscixvLGEscyl7aWYodCE9PXJ8fGkhPT1vKXt2YXIgbD1hLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsZSxudWxsLG4pO3MucHVzaCh7aTpsLTQseDpWQih0LHIpfSx7aTpsLTIseDpWQihpLG8pfSl9ZWxzZShyfHxvKSYmYS5wdXNoKCJ0cmFuc2xhdGUoIityK2UrbytuKX0pKG8udHJhbnNsYXRlWCxvLnRyYW5zbGF0ZVksYS50cmFuc2xhdGVYLGEudHJhbnNsYXRlWSxzLGwpLChmdW5jdGlvbiB1KHQsZSxuLG8pe3QhPT1lPyh0LWU+MTgwP2UrPTM2MDplLXQ+MTgwJiYodCs9MzYwKSxvLnB1c2goe2k6bi5wdXNoKHIobikrInJvdGF0ZSgiLG51bGwsaSktMix4OlZCKHQsZSl9KSk6ZSYmbi5wdXNoKHIobikrInJvdGF0ZSgiK2UraSl9KShvLnJvdGF0ZSxhLnJvdGF0ZSxzLGwpLChmdW5jdGlvbiBoKHQsZSxuLG8pe3QhPT1lP28ucHVzaCh7aTpuLnB1c2gocihuKSsic2tld1goIixudWxsLGkpLTIseDpWQih0LGUpfSk6ZSYmbi5wdXNoKHIobikrInNrZXdYKCIrZStpKX0pKG8uc2tld1gsYS5za2V3WCxzLGwpLChmdW5jdGlvbiBkKHQsZSxuLGksbyxhKXtpZih0IT09bnx8ZSE9PWkpe3ZhciBzPW8ucHVzaChyKG8pKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTthLnB1c2goe2k6cy00LHg6VkIodCxuKX0se2k6cy0yLHg6VkIoZSxpKX0pfWVsc2UgMT09PW4mJjE9PT1pfHxvLnB1c2gocihvKSsic2NhbGUoIituKyIsIitpKyIpIil9KShvLnNjYWxlWCxvLnNjYWxlWSxhLnNjYWxlWCxhLnNjYWxlWSxzLGwpLG89YT1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPS0xLGk9bC5sZW5ndGg7KytuPGk7KXNbKGU9bFtuXSkuaV09ZS54KHQpO3JldHVybiBzLmpvaW4oIiIpfX19dmFyIGVILG5ILGlIPXRIKChmdW5jdGlvbiBySCh0KXtyZXR1cm4ibm9uZSI9PT10P0pCOihZQnx8KFlCPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLFhCPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwkQj1kb2N1bWVudC5kZWZhdWx0VmlldyksWUIuc3R5bGUudHJhbnNmb3JtPXQsdD0kQi5nZXRDb21wdXRlZFN0eWxlKFhCLmFwcGVuZENoaWxkKFlCKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxYQi5yZW1vdmVDaGlsZChZQiksUUIoKyh0PXQuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSlbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0pLCJweCwgIiwicHgpIiwiZGVnKSIpLG9IPXRIKChmdW5jdGlvbiBhSCh0KXtyZXR1cm4gbnVsbD09dD9KQjooS0J8fChLQj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSxLQi5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9S0IudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/UUIoKHQ9dC5tYXRyaXgpLmEsdC5iLHQuYyx0LmQsdC5lLHQuZik6SkIpfSksIiwgIiwiKSIsIikiKSxzSD0wLGxIPTAsY0g9MCx1SD0wLGhIPTAsZEg9MCxwSD0ib2JqZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxmSD0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KHQsMTcpfTtmdW5jdGlvbiBtSCgpe3JldHVybiBoSHx8KGZIKGdIKSxoSD1wSC5ub3coKStkSCl9ZnVuY3Rpb24gZ0goKXtoSD0wfWZ1bmN0aW9uIF9IKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiB5SCh0LGUsbil7dmFyIGk9bmV3IF9IO3JldHVybiBpLnJlc3RhcnQodCxlLG4pLGl9ZnVuY3Rpb24gdkgoKXtoSD0odUg9cEgubm93KCkpK2RILHNIPWxIPTA7dHJ5eyEoZnVuY3Rpb24gdCgpe21IKCksKytzSDtmb3IodmFyIHQsZT1lSDtlOykodD1oSC1lLl90aW1lKT49MCYmZS5fY2FsbC5jYWxsKG51bGwsdCksZT1lLl9uZXh0Oy0tc0h9KSgpfWZpbmFsbHl7c0g9MCwoZnVuY3Rpb24gZSgpe2Zvcih2YXIgdCxlLG49ZUgsaT0xLzA7bjspbi5fY2FsbD8oaT5uLl90aW1lJiYoaT1uLl90aW1lKSx0PW4sbj1uLl9uZXh0KTooZT1uLl9uZXh0LG4uX25leHQ9bnVsbCxuPXQ/dC5fbmV4dD1lOmVIPWUpO25IPXQseEgoaSl9KSgpLGhIPTB9fWZ1bmN0aW9uIGJIKCl7dmFyIHQ9cEgubm93KCksZT10LXVIO2U+MWUzJiYoZEgtPWUsdUg9dCl9ZnVuY3Rpb24geEgodCl7c0h8fChsSCYmKGxIPWNsZWFyVGltZW91dChsSCkpLHQtaEg+MjQ/KHQ8MS8wJiYobEg9c2V0VGltZW91dCh2SCx0LXBILm5vdygpLWRIKSksY0gmJihjSD1jbGVhckludGVydmFsKGNIKSkpOihjSHx8KHVIPXBILm5vdygpLGNIPXNldEludGVydmFsKGJILDFlMykpLHNIPTEsZkgodkgpKSl9ZnVuY3Rpb24gd0godCxlLG4pe3ZhciBpPW5ldyBfSDtyZXR1cm4gaS5yZXN0YXJ0KChmdW5jdGlvbihuKXtpLnN0b3AoKSx0KG4rZSl9KSxlPW51bGw9PWU/MDorZSxuKSxpfV9ILnByb3RvdHlwZT15SC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOl9ILHJlc3RhcnQ6ZnVuY3Rpb24odCxlLG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7bj0obnVsbD09bj9tSCgpOituKSsobnVsbD09ZT8wOitlKSx0aGlzLl9uZXh0fHxuSD09PXRoaXN8fChuSD9uSC5fbmV4dD10aGlzOmVIPXRoaXMsbkg9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9bix4SCgpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCx4SCgpKX19O3ZhciBTSD1heigic3RhcnQiLCJlbmQiLCJjYW5jZWwiLCJpbnRlcnJ1cHQiKSxNSD1bXTtmdW5jdGlvbiBFSCh0LGUsbixpLHIsbyl7dmFyIGE9dC5fX3RyYW5zaXRpb247aWYoYSl7aWYobiBpbiBhKXJldHVybn1lbHNlIHQuX190cmFuc2l0aW9uPXt9OyEoZnVuY3Rpb24gcyh0LGUsbil7dmFyIGkscj10Ll9fdHJhbnNpdGlvbjtmdW5jdGlvbiBvKGwpe3ZhciBjLHUsaCxkO2lmKDEhPT1uLnN0YXRlKXJldHVybiBzKCk7Zm9yKGMgaW4gcilpZigoZD1yW2NdKS5uYW1lPT09bi5uYW1lKXtpZigzPT09ZC5zdGF0ZSlyZXR1cm4gd0gobyk7ND09PWQuc3RhdGU/KGQuc3RhdGU9NixkLnRpbWVyLnN0b3AoKSxkLm9uLmNhbGwoImludGVycnVwdCIsdCx0Ll9fZGF0YV9fLGQuaW5kZXgsZC5ncm91cCksZGVsZXRlIHJbY10pOitjPGUmJihkLnN0YXRlPTYsZC50aW1lci5zdG9wKCksZC5vbi5jYWxsKCJjYW5jZWwiLHQsdC5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSByW2NdKX1pZih3SCgoZnVuY3Rpb24oKXszPT09bi5zdGF0ZSYmKG4uc3RhdGU9NCxuLnRpbWVyLnJlc3RhcnQoYSxuLmRlbGF5LG4udGltZSksYShsKSl9KSksbi5zdGF0ZT0yLG4ub24uY2FsbCgic3RhcnQiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLDI9PT1uLnN0YXRlKXtmb3Iobi5zdGF0ZT0zLGk9bmV3IEFycmF5KGg9bi50d2Vlbi5sZW5ndGgpLGM9MCx1PS0xO2M8aDsrK2MpKGQ9bi50d2VlbltjXS52YWx1ZS5jYWxsKHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApKSYmKGlbKyt1XT1kKTtpLmxlbmd0aD11KzF9fWZ1bmN0aW9uIGEoZSl7Zm9yKHZhciByPWU8bi5kdXJhdGlvbj9uLmVhc2UuY2FsbChudWxsLGUvbi5kdXJhdGlvbik6KG4udGltZXIucmVzdGFydChzKSxuLnN0YXRlPTUsMSksbz0tMSxhPWkubGVuZ3RoOysrbzxhOylpW29dLmNhbGwodCxyKTs1PT09bi5zdGF0ZSYmKG4ub24uY2FsbCgiZW5kIix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxzKCkpfWZ1bmN0aW9uIHMoKXtmb3IodmFyIGkgaW4gbi5zdGF0ZT02LG4udGltZXIuc3RvcCgpLGRlbGV0ZSByW2VdLHIpcmV0dXJuO2RlbGV0ZSB0Ll9fdHJhbnNpdGlvbn1yW2VdPW4sbi50aW1lcj15SCgoZnVuY3Rpb24gbCh0KXtuLnN0YXRlPTEsbi50aW1lci5yZXN0YXJ0KG8sbi5kZWxheSxuLnRpbWUpLG4uZGVsYXk8PXQmJm8odC1uLmRlbGF5KX0pLDAsbi50aW1lKX0pKHQsbix7bmFtZTplLGluZGV4OmksZ3JvdXA6cixvbjpTSCx0d2VlbjpNSCx0aW1lOm8udGltZSxkZWxheTpvLmRlbGF5LGR1cmF0aW9uOm8uZHVyYXRpb24sZWFzZTpvLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTowfSl9ZnVuY3Rpb24gVEgodCxlKXt2YXIgbj1BSCh0LGUpO2lmKG4uc3RhdGU+MCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBufWZ1bmN0aW9uIENIKHQsZSl7dmFyIG49QUgodCxlKTtpZihuLnN0YXRlPjMpdGhyb3cgbmV3IEVycm9yKCJ0b28gbGF0ZTsgYWxyZWFkeSBydW5uaW5nIik7cmV0dXJuIG59ZnVuY3Rpb24gQUgodCxlKXt2YXIgbj10Ll9fdHJhbnNpdGlvbjtpZighbnx8IShuPW5bZV0pKXRocm93IG5ldyBFcnJvcigidHJhbnNpdGlvbiBub3QgZm91bmQiKTtyZXR1cm4gbn1mdW5jdGlvbiBrSCh0LGUpe3ZhciBuLGkscixvPXQuX190cmFuc2l0aW9uLGE9ITA7aWYobyl7Zm9yKHIgaW4gZT1udWxsPT1lP251bGw6ZSsiIixvKShuPW9bcl0pLm5hbWU9PT1lPyhpPW4uc3RhdGU+MiYmbi5zdGF0ZTw1LG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxuLm9uLmNhbGwoaT8iaW50ZXJydXB0IjoiY2FuY2VsIix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxkZWxldGUgb1tyXSk6YT0hMTthJiZkZWxldGUgdC5fX3RyYW5zaXRpb259fWZ1bmN0aW9uIExIKHQsZSl7dmFyIG4saTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1DSCh0aGlzLHQpLG89ci50d2VlbjtpZihvIT09bilmb3IodmFyIGE9MCxzPShpPW49bykubGVuZ3RoO2E8czsrK2EpaWYoaVthXS5uYW1lPT09ZSl7KGk9aS5zbGljZSgpKS5zcGxpY2UoYSwxKTticmVha31yLnR3ZWVuPWl9fWZ1bmN0aW9uIFBIKHQsZSxuKXt2YXIgaSxyO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1DSCh0aGlzLHQpLGE9by50d2VlbjtpZihhIT09aSl7cj0oaT1hKS5zbGljZSgpO2Zvcih2YXIgcz17bmFtZTplLHZhbHVlOm59LGw9MCxjPXIubGVuZ3RoO2w8YzsrK2wpaWYocltsXS5uYW1lPT09ZSl7cltsXT1zO2JyZWFrfWw9PT1jJiZyLnB1c2gocyl9by50d2Vlbj1yfX1mdW5jdGlvbiBOSCh0LGUsbil7dmFyIGk9dC5faWQ7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1DSCh0aGlzLGkpOyh0LnZhbHVlfHwodC52YWx1ZT17fSkpW2VdPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpfSkpLGZ1bmN0aW9uKHQpe3JldHVybiBBSCh0LGkpLnZhbHVlW2VdfX1mdW5jdGlvbiBJSCh0LGUpe3ZhciBuO3JldHVybigibnVtYmVyIj09dHlwZW9mIGU/VkI6ZSBpbnN0YW5jZW9mIGJCP0RCOihuPWJCKGUpKT8oZT1uLERCKTpXQikodCxlKX1mdW5jdGlvbiBSSCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gT0godCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiB6SCh0LGUsbil7dmFyIGkscixvPW4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGUodCk7cmV0dXJuIGE9PT1vP251bGw6YT09PWk/cjpyPWUoaT1hLG4pfX1mdW5jdGlvbiBESCh0LGUsbil7dmFyIGkscixvPW4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19ZnVuY3Rpb24gQkgodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzLGw9bih0aGlzKTtpZihudWxsIT1sKXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlKHQpKT09PShzPWwrIiIpP251bGw6YT09PWkmJnM9PT1yP286KHI9cyxvPWUoaT1hLGwpKTt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gSEgodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzLGw9bih0aGlzKTtpZihudWxsIT1sKXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKSk9PT0ocz1sKyIiKT9udWxsOmE9PT1pJiZzPT09cj9vOihyPXMsbz1lKGk9YSxsKSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBGSCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUuY2FsbCh0aGlzLG4pKX19ZnVuY3Rpb24gVkgodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZS5jYWxsKHRoaXMsbikpfX1mdW5jdGlvbiBVSCh0LGUpe3ZhciBuLGk7ZnVuY3Rpb24gcigpe3ZhciByPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiByIT09aSYmKG49KGk9cikmJlZIKHQscikpLG59cmV0dXJuIHIuX3ZhbHVlPWUscn1mdW5jdGlvbiBqSCh0LGUpe3ZhciBuLGk7ZnVuY3Rpb24gcigpe3ZhciByPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiByIT09aSYmKG49KGk9cikmJkZIKHQscikpLG59cmV0dXJuIHIuX3ZhbHVlPWUscn1mdW5jdGlvbiBHSCh0LGUpe3JldHVybiBmdW5jdGlvbigpe1RIKHRoaXMsdCkuZGVsYXk9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBXSCh0LGUpe3JldHVybiBlPStlLGZ1bmN0aW9uKCl7VEgodGhpcyx0KS5kZWxheT1lfX1mdW5jdGlvbiBxSCh0LGUpe3JldHVybiBmdW5jdGlvbigpe0NIKHRoaXMsdCkuZHVyYXRpb249K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBZSCh0LGUpe3JldHVybiBlPStlLGZ1bmN0aW9uKCl7Q0godGhpcyx0KS5kdXJhdGlvbj1lfX1mdW5jdGlvbiBYSCh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXtDSCh0aGlzLHQpLmVhc2U9ZX19ZnVuY3Rpb24gJEgodCxlLG4pe3ZhciBpLHIsbz0oZnVuY3Rpb24gYSh0KXtyZXR1cm4odCsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pLmV2ZXJ5KChmdW5jdGlvbih0KXt2YXIgZT10LmluZGV4T2YoIi4iKTtyZXR1cm4gZT49MCYmKHQ9dC5zbGljZSgwLGUpKSwhdHx8InN0YXJ0Ij09PXR9KSl9KShlKT9USDpDSDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1vKHRoaXMsdCkscz1hLm9uO3MhPT1pJiYocj0oaT1zKS5jb3B5KCkpLm9uKGUsbiksYS5vbj1yfX12YXIgS0g9dkQucHJvdG90eXBlLmNvbnN0cnVjdG9yO2Z1bmN0aW9uIFpIKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIEpIKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUuY2FsbCh0aGlzLGkpLG4pfX1mdW5jdGlvbiBRSCh0LGUsbil7dmFyIGkscjtmdW5jdGlvbiBvKCl7dmFyIG89ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG8hPT1yJiYoaT0ocj1vKSYmSkgodCxvLG4pKSxpfXJldHVybiBvLl92YWx1ZT1lLG99ZnVuY3Rpb24gdEYodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3RoaXMudGV4dENvbnRlbnQ9dC5jYWxsKHRoaXMsZSl9fWZ1bmN0aW9uIGVGKHQpe3ZhciBlLG47ZnVuY3Rpb24gaSgpe3ZhciBpPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBpIT09biYmKGU9KG49aSkmJnRGKGkpKSxlfXJldHVybiBpLl92YWx1ZT10LGl9dmFyIG5GPTA7ZnVuY3Rpb24gaUYodCxlLG4saSl7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1lLHRoaXMuX25hbWU9bix0aGlzLl9pZD1pfWZ1bmN0aW9uIHJGKCl7cmV0dXJuKytuRn12YXIgb0Y9dkQucHJvdG90eXBlO2lGLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aUYsc2VsZWN0OmZ1bmN0aW9uIGFGKHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9eXoodCkpO2Zvcih2YXIgaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPW5ldyBBcnJheShyKSxhPTA7YTxyOysrYSlmb3IodmFyIHMsbCxjPWlbYV0sdT1jLmxlbmd0aCxoPW9bYV09bmV3IEFycmF5KHUpLGQ9MDtkPHU7KytkKShzPWNbZF0pJiYobD10LmNhbGwocyxzLl9fZGF0YV9fLGQsYykpJiYoIl9fZGF0YV9fImluIHMmJihsLl9fZGF0YV9fPXMuX19kYXRhX18pLGhbZF09bCxFSChoW2RdLGUsbixkLGgsQUgocyxuKSkpO3JldHVybiBuZXcgaUYobyx0aGlzLl9wYXJlbnRzLGUsbil9LHNlbGVjdEFsbDpmdW5jdGlvbiBzRih0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWJ6KHQpKTtmb3IodmFyIGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz1bXSxhPVtdLHM9MDtzPHI7KytzKWZvcih2YXIgbCxjPWlbc10sdT1jLmxlbmd0aCxoPTA7aDx1OysraClpZihsPWNbaF0pe2Zvcih2YXIgZCxwPXQuY2FsbChsLGwuX19kYXRhX18saCxjKSxmPUFIKGwsbiksbT0wLGc9cC5sZW5ndGg7bTxnOysrbSkoZD1wW21dKSYmRUgoZCxlLG4sbSxwLGYpO28ucHVzaChwKSxhLnB1c2gobCl9cmV0dXJuIG5ldyBpRihvLGEsZSxuKX0sZmlsdGVyOmZ1bmN0aW9uIGxGKHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD14eih0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgaUYoaSx0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfSxtZXJnZTpmdW5jdGlvbiBjRih0KXtpZih0Ll9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49dC5fZ3JvdXBzLGk9ZS5sZW5ndGgscj1NYXRoLm1pbihpLG4ubGVuZ3RoKSxvPW5ldyBBcnJheShpKSxhPTA7YTxyOysrYSlmb3IodmFyIHMsbD1lW2FdLGM9blthXSx1PWwubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9bFtkXXx8Y1tkXSkmJihoW2RdPXMpO2Zvcig7YTxpOysrYSlvW2FdPWVbYV07cmV0dXJuIG5ldyBpRihvLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbiB1Rigpe3JldHVybiBuZXcgS0godGhpcy5fZ3JvdXBzLHRoaXMuX3BhcmVudHMpfSx0cmFuc2l0aW9uOmZ1bmN0aW9uIGhGKCl7Zm9yKHZhciB0PXRoaXMuX25hbWUsZT10aGlzLl9pZCxuPXJGKCksaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPTA7bzxyOysrbylmb3IodmFyIGEscz1pW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpaWYoYT1zW2NdKXt2YXIgdT1BSChhLGUpO0VIKGEsdCxuLGMscyx7dGltZTp1LnRpbWUrdS5kZWxheSt1LmR1cmF0aW9uLGRlbGF5OjAsZHVyYXRpb246dS5kdXJhdGlvbixlYXNlOnUuZWFzZX0pfXJldHVybiBuZXcgaUYoaSx0aGlzLl9wYXJlbnRzLHQsbil9LGNhbGw6b0YuY2FsbCxub2RlczpvRi5ub2Rlcyxub2RlOm9GLm5vZGUsc2l6ZTpvRi5zaXplLGVtcHR5Om9GLmVtcHR5LGVhY2g6b0YuZWFjaCxvbjpmdW5jdGlvbiBkRih0LGUpe3ZhciBuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/QUgodGhpcy5ub2RlKCksbikub24ub24odCk6dGhpcy5lYWNoKCRIKG4sdCxlKSl9LGF0dHI6ZnVuY3Rpb24gcEYodCxlKXt2YXIgbj1weih0KSxpPSJ0cmFuc2Zvcm0iPT09bj9vSDpJSDtyZXR1cm4gdGhpcy5hdHRyVHdlZW4odCwiZnVuY3Rpb24iPT10eXBlb2YgZT8obi5sb2NhbD9ISDpCSCkobixpLE5IKHRoaXMsImF0dHIuIit0LGUpKTpudWxsPT1lPyhuLmxvY2FsP09IOlJIKShuKToobi5sb2NhbD9ESDp6SCkobixpLGUpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uIGZGKHQsZSl7dmFyIG49ImF0dHIuIit0O2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4obj10aGlzLnR3ZWVuKG4pKSYmbi5fdmFsdWU7aWYobnVsbD09ZSlyZXR1cm4gdGhpcy50d2VlbihuLG51bGwpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjt2YXIgaT1weih0KTtyZXR1cm4gdGhpcy50d2VlbihuLChpLmxvY2FsP1VIOmpIKShpLGUpKX0sc3R5bGU6ZnVuY3Rpb24gbUYodCxlLG4pe3ZhciBpPSJ0cmFuc2Zvcm0iPT0odCs9IiIpP2lIOklIO3JldHVybiBudWxsPT1lP3RoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiByKHQsZSl7dmFyIG4saSxyO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUR6KHRoaXMsdCksYT0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSxEeih0aGlzLHQpKTtyZXR1cm4gbz09PWE/bnVsbDpvPT09biYmYT09PWk/cjpyPWUobj1vLGk9YSl9fSkodCxpKSkub24oImVuZC5zdHlsZS4iK3QsWkgodCkpOiJmdW5jdGlvbiI9PXR5cGVvZiBlP3RoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiBhKHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9RHoodGhpcyx0KSxzPW4odGhpcyksbD1zKyIiO3JldHVybiBudWxsPT1zJiYodGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSxsPXM9RHoodGhpcyx0KSksYT09PWw/bnVsbDphPT09aSYmbD09PXI/bzoocj1sLG89ZShpPWEscykpfX0pKHQsaSxOSCh0aGlzLCJzdHlsZS4iK3QsZSkpKS5lYWNoKChmdW5jdGlvbiBvKHQsZSl7dmFyIG4saSxyLG8sYT0ic3R5bGUuIitlLHM9ImVuZC4iK2E7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGw9Q0godGhpcyx0KSxjPWwub24sdT1udWxsPT1sLnZhbHVlW2FdP298fChvPVpIKGUpKTp2b2lkIDA7Yz09PW4mJnI9PT11fHwoaT0obj1jKS5jb3B5KCkpLm9uKHMscj11KSxsLm9uPWl9fSkodGhpcy5faWQsdCkpOnRoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiBzKHQsZSxuKXt2YXIgaSxyLG89bisiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1Eeih0aGlzLHQpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19KSh0LGksZSksbikub24oImVuZC5zdHlsZS4iK3QsbnVsbCl9LHN0eWxlVHdlZW46ZnVuY3Rpb24gZ0YodCxlLG4pe3ZhciBpPSJzdHlsZS4iKyh0Kz0iIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihpPXRoaXMudHdlZW4oaSkpJiZpLl92YWx1ZTtpZihudWxsPT1lKXJldHVybiB0aGlzLnR3ZWVuKGksbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKGksUUgodCxlLG51bGw9PW4/IiI6bikpfSx0ZXh0OmZ1bmN0aW9uIF9GKHQpe3JldHVybiB0aGlzLnR3ZWVuKCJ0ZXh0IiwiZnVuY3Rpb24iPT10eXBlb2YgdD8oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10KHRoaXMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX0pKE5IKHRoaXMsInRleHQiLHQpKTooZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fSkobnVsbD09dD8iIjp0KyIiKSl9LHRleHRUd2VlbjpmdW5jdGlvbiB5Rih0KXt2YXIgZT0idGV4dCI7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXJldHVybihlPXRoaXMudHdlZW4oZSkpJiZlLl92YWx1ZTtpZihudWxsPT10KXJldHVybiB0aGlzLnR3ZWVuKGUsbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKGUsZUYodCkpfSxyZW1vdmU6ZnVuY3Rpb24gdkYoKXtyZXR1cm4gdGhpcy5vbigiZW5kLnJlbW92ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO2Zvcih2YXIgbiBpbiB0aGlzLl9fdHJhbnNpdGlvbilpZigrbiE9PWUpcmV0dXJuO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9fSkodGhpcy5faWQpKX0sdHdlZW46ZnVuY3Rpb24gYkYodCxlKXt2YXIgbj10aGlzLl9pZDtpZih0Kz0iIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaSxyPUFIKHRoaXMubm9kZSgpLG4pLnR3ZWVuLG89MCxhPXIubGVuZ3RoO288YTsrK28paWYoKGk9cltvXSkubmFtZT09PXQpcmV0dXJuIGkudmFsdWU7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09ZT9MSDpQSCkobix0LGUpKX0sZGVsYXk6ZnVuY3Rpb24geEYodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9HSDpXSCkoZSx0KSk6QUgodGhpcy5ub2RlKCksZSkuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0aW9uIHdGKHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIHQ/cUg6WUgpKGUsdCkpOkFIKHRoaXMubm9kZSgpLGUpLmR1cmF0aW9ufSxlYXNlOmZ1bmN0aW9uIFNGKHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChYSChlLHQpKTpBSCh0aGlzLm5vZGUoKSxlKS5lYXNlfSxlbmQ6ZnVuY3Rpb24gTUYoKXt2YXIgdCxlLG49dGhpcyxpPW4uX2lkLHI9bi5zaXplKCk7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihvLGEpe3ZhciBzPXt2YWx1ZTphfSxsPXt2YWx1ZTpmdW5jdGlvbigpezA9PS0tciYmbygpfX07bi5lYWNoKChmdW5jdGlvbigpe3ZhciBuPUNIKHRoaXMsaSkscj1uLm9uO3IhPT10JiYoKGU9KHQ9cikuY29weSgpKS5fLmNhbmNlbC5wdXNoKHMpLGUuXy5pbnRlcnJ1cHQucHVzaChzKSxlLl8uZW5kLnB1c2gobCkpLG4ub249ZX0pKX0pKX19O3ZhciBFRj17dGltZTpudWxsLGRlbGF5OjAsZHVyYXRpb246MjUwLGVhc2U6VGZ9O2Z1bmN0aW9uIFRGKHQsZSl7Zm9yKHZhciBuOyEobj10Ll9fdHJhbnNpdGlvbil8fCEobj1uW2VdKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIEVGLnRpbWU9bUgoKSxFRjtyZXR1cm4gbn1mdW5jdGlvbiBDRih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gQUYodCxlLG4pe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPWUsdGhpcy5zZWxlY3Rpb249bn1mdW5jdGlvbiBrRigpe2xELnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIExGKCl7bEQucHJldmVudERlZmF1bHQoKSxsRC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX12RC5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0aW9uIFBGKHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7a0godGhpcyx0KX0pKX0sdkQucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24gTkYodCl7dmFyIGUsbjt0IGluc3RhbmNlb2YgaUY/KGU9dC5faWQsdD10Ll9uYW1lKTooZT1yRigpLChuPUVGKS50aW1lPW1IKCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykoYT1zW2NdKSYmRUgoYSx0LGUsYyxzLG58fFRGKGEsZSkpO3JldHVybiBuZXcgaUYoaSx0aGlzLl9wYXJlbnRzLHQsZSl9O3ZhciBJRj17bmFtZToiZHJhZyJ9LFJGPXtuYW1lOiJzcGFjZSJ9LE9GPXtuYW1lOiJoYW5kbGUifSx6Rj17bmFtZToiY2VudGVyIn0sREY9e25hbWU6IngiLGhhbmRsZXM6WyJlIiwidyJdLm1hcChXRiksaW5wdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmW1t0WzBdLGVbMF1bMV1dLFt0WzFdLGVbMV1bMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVswXSx0WzFdWzBdXX19LEJGPXtuYW1lOiJ5IixoYW5kbGVzOlsibiIsInMiXS5tYXAoV0YpLGlucHV0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQmJltbZVswXVswXSx0WzBdXSxbZVsxXVswXSx0WzFdXV19LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdCYmW3RbMF1bMV0sdFsxXVsxXV19fSxIRj17bmFtZToieHkiLGhhbmRsZXM6WyJuIiwiZSIsInMiLCJ3IiwibnciLCJuZSIsInNlIiwic3ciXS5tYXAoV0YpLGlucHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0fSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSxGRj17b3ZlcmxheToiY3Jvc3NoYWlyIixzZWxlY3Rpb246Im1vdmUiLG46Im5zLXJlc2l6ZSIsZToiZXctcmVzaXplIixzOiJucy1yZXNpemUiLHc6ImV3LXJlc2l6ZSIsbnc6Im53c2UtcmVzaXplIixuZToibmVzdy1yZXNpemUiLHNlOiJud3NlLXJlc2l6ZSIsc3c6Im5lc3ctcmVzaXplIn0sVkY9e2U6InciLHc6ImUiLG53OiJuZSIsbmU6Im53IixzZToic3ciLHN3OiJzZSJ9LFVGPXtuOiJzIixzOiJuIixudzoic3ciLG5lOiJzZSIsc2U6Im5lIixzdzoibncifSxqRj17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46bnVsbCxlOjEsczpudWxsLHc6LTEsbnc6LTEsbmU6MSxzZToxLHN3Oi0xfSxHRj17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46LTEsZTpudWxsLHM6MSx3Om51bGwsbnc6LTEsbmU6LTEsc2U6MSxzdzoxfTtmdW5jdGlvbiBXRih0KXtyZXR1cm57dHlwZTp0fX1mdW5jdGlvbiBxRigpe3JldHVybiFsRC5idXR0b259ZnVuY3Rpb24gWUYoKXt2YXIgdD10aGlzLm93bmVyU1ZHRWxlbWVudHx8dGhpcztyZXR1cm5bWzAsMF0sW3Qud2lkdGguYmFzZVZhbC52YWx1ZSx0LmhlaWdodC5iYXNlVmFsLnZhbHVlXV19ZnVuY3Rpb24gWEYodCl7Zm9yKDshdC5fX2JydXNoOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHQuX19icnVzaH1mdW5jdGlvbiAkRih0KXtyZXR1cm4gdFswXVswXT09PXRbMV1bMF18fHRbMF1bMV09PT10WzFdWzFdfWZ1bmN0aW9uIEtGKHQpe3ZhciBlLG49WUYsaT1xRixyPWF6KGEsInN0YXJ0IiwiYnJ1c2giLCJlbmQiKSxvPTY7ZnVuY3Rpb24gYShlKXt2YXIgbj1lLnByb3BlcnR5KCJfX2JydXNoIixoKS5zZWxlY3RBbGwoIi5vdmVybGF5IikuZGF0YShbV0YoIm92ZXJsYXkiKV0pO24uZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsIm92ZXJsYXkiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLmF0dHIoImN1cnNvciIsRkYub3ZlcmxheSkubWVyZ2UobikuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1YRih0aGlzKS5leHRlbnQ7YkQodGhpcykuYXR0cigieCIsdFswXVswXSkuYXR0cigieSIsdFswXVsxXSkuYXR0cigid2lkdGgiLHRbMV1bMF0tdFswXVswXSkuYXR0cigiaGVpZ2h0Iix0WzFdWzFdLXRbMF1bMV0pfSkpLGUuc2VsZWN0QWxsKCIuc2VsZWN0aW9uIikuZGF0YShbV0YoInNlbGVjdGlvbiIpXSkuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsInNlbGVjdGlvbiIpLmF0dHIoImN1cnNvciIsRkYuc2VsZWN0aW9uKS5hdHRyKCJmaWxsIiwiIzc3NyIpLmF0dHIoImZpbGwtb3BhY2l0eSIsLjMpLmF0dHIoInN0cm9rZSIsIiNmZmYiKS5hdHRyKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIik7dmFyIGk9ZS5zZWxlY3RBbGwoIi5oYW5kbGUiKS5kYXRhKHQuaGFuZGxlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pKTtpLmV4aXQoKS5yZW1vdmUoKSxpLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLChmdW5jdGlvbih0KXtyZXR1cm4iaGFuZGxlIGhhbmRsZS0tIit0LnR5cGV9KSkuYXR0cigiY3Vyc29yIiwoZnVuY3Rpb24odCl7cmV0dXJuIEZGW3QudHlwZV19KSksZS5lYWNoKHMpLmF0dHIoImZpbGwiLCJub25lIikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpLm9uKCJtb3VzZWRvd24uYnJ1c2ggdG91Y2hzdGFydC5icnVzaCIsdSl9ZnVuY3Rpb24gcygpe3ZhciB0PWJEKHRoaXMpLGU9WEYodGhpcykuc2VsZWN0aW9uO2U/KHQuc2VsZWN0QWxsKCIuc2VsZWN0aW9uIikuc3R5bGUoImRpc3BsYXkiLG51bGwpLmF0dHIoIngiLGVbMF1bMF0pLmF0dHIoInkiLGVbMF1bMV0pLmF0dHIoIndpZHRoIixlWzFdWzBdLWVbMF1bMF0pLmF0dHIoImhlaWdodCIsZVsxXVsxXS1lWzBdWzFdKSx0LnNlbGVjdEFsbCgiLmhhbmRsZSIpLnN0eWxlKCJkaXNwbGF5IixudWxsKS5hdHRyKCJ4IiwoZnVuY3Rpb24odCl7cmV0dXJuImUiPT09dC50eXBlW3QudHlwZS5sZW5ndGgtMV0/ZVsxXVswXS1vLzI6ZVswXVswXS1vLzJ9KSkuYXR0cigieSIsKGZ1bmN0aW9uKHQpe3JldHVybiJzIj09PXQudHlwZVswXT9lWzFdWzFdLW8vMjplWzBdWzFdLW8vMn0pKS5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiJuIj09PXQudHlwZXx8InMiPT09dC50eXBlP2VbMV1bMF0tZVswXVswXStvOm99KSkuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuImUiPT09dC50eXBlfHwidyI9PT10LnR5cGU/ZVsxXVsxXS1lWzBdWzFdK286b30pKSk6dC5zZWxlY3RBbGwoIi5zZWxlY3Rpb24sLmhhbmRsZSIpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLmF0dHIoIngiLG51bGwpLmF0dHIoInkiLG51bGwpLmF0dHIoIndpZHRoIixudWxsKS5hdHRyKCJoZWlnaHQiLG51bGwpfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gdC5fX2JydXNoLmVtaXR0ZXJ8fG5ldyBjKHQsZSl9ZnVuY3Rpb24gYyh0LGUpe3RoaXMudGhhdD10LHRoaXMuYXJncz1lLHRoaXMuc3RhdGU9dC5fX2JydXNoLHRoaXMuYWN0aXZlPTB9ZnVuY3Rpb24gdSgpe2lmKGxELnRvdWNoZXMpe2lmKGxELmNoYW5nZWRUb3VjaGVzLmxlbmd0aDxsRC50b3VjaGVzLmxlbmd0aClyZXR1cm4gTEYoKX1lbHNlIGlmKGUpcmV0dXJuO2lmKGkuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbixyLG8sYSxjLHUsaCxkLHAsZixtLGcsXyx5PXRoaXMsdj1sRC50YXJnZXQuX19kYXRhX18udHlwZSxiPSJzZWxlY3Rpb24iPT09KGxELm1ldGFLZXk/dj0ib3ZlcmxheSI6dik/SUY6bEQuYWx0S2V5P3pGOk9GLHg9dD09PUJGP251bGw6akZbdl0sdz10PT09REY/bnVsbDpHRlt2XSxTPVhGKHkpLE09Uy5leHRlbnQsRT1TLnNlbGVjdGlvbixUPU1bMF1bMF0sQz1NWzBdWzFdLEE9TVsxXVswXSxrPU1bMV1bMV0sTD14JiZ3JiZsRC5zaGlmdEtleSxQPXhEKHkpLE49UCxJPWwoeSxhcmd1bWVudHMpLmJlZm9yZXN0YXJ0KCk7Im92ZXJsYXkiPT09dj9TLnNlbGVjdGlvbj1FPVtbbj10PT09QkY/VDpQWzBdLG89dD09PURGP0M6UFsxXV0sW2M9dD09PUJGP0E6bixoPXQ9PT1ERj9rOm9dXToobj1FWzBdWzBdLG89RVswXVsxXSxjPUVbMV1bMF0saD1FWzFdWzFdKSxyPW4sYT1vLHU9YyxkPWg7dmFyIFI9YkQoeSkuYXR0cigicG9pbnRlci1ldmVudHMiLCJub25lIiksTz1SLnNlbGVjdEFsbCgiLm92ZXJsYXkiKS5hdHRyKCJjdXJzb3IiLEZGW3ZdKTtpZihsRC50b3VjaGVzKVIub24oInRvdWNobW92ZS5icnVzaCIsRCwhMCkub24oInRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoIixILCEwKTtlbHNle3ZhciB6PWJEKGxELnZpZXcpLm9uKCJrZXlkb3duLmJydXNoIixGLCEwKS5vbigia2V5dXAuYnJ1c2giLFYsITApLm9uKCJtb3VzZW1vdmUuYnJ1c2giLEQsITApLm9uKCJtb3VzZXVwLmJydXNoIixILCEwKTtTRChsRC52aWV3KX1rRigpLGtIKHkpLHMuY2FsbCh5KSxJLnN0YXJ0KCl9ZnVuY3Rpb24gRCgpe3ZhciB0PXhEKHkpOyFMfHxnfHxffHwoTWF0aC5hYnModFswXS1OWzBdKT5NYXRoLmFicyh0WzFdLU5bMV0pP189ITA6Zz0hMCksTj10LG09ITAsTEYoKSxCKCl9ZnVuY3Rpb24gQigpe3ZhciB0O3N3aXRjaChwPU5bMF0tUFswXSxmPU5bMV0tUFsxXSxiKXtjYXNlIFJGOmNhc2UgSUY6eCYmKHA9TWF0aC5tYXgoVC1uLE1hdGgubWluKEEtYyxwKSkscj1uK3AsdT1jK3ApLHcmJihmPU1hdGgubWF4KEMtbyxNYXRoLm1pbihrLWgsZikpLGE9bytmLGQ9aCtmKTticmVhaztjYXNlIE9GOng8MD8ocD1NYXRoLm1heChULW4sTWF0aC5taW4oQS1uLHApKSxyPW4rcCx1PWMpOng+MCYmKHA9TWF0aC5tYXgoVC1jLE1hdGgubWluKEEtYyxwKSkscj1uLHU9YytwKSx3PDA/KGY9TWF0aC5tYXgoQy1vLE1hdGgubWluKGstbyxmKSksYT1vK2YsZD1oKTp3PjAmJihmPU1hdGgubWF4KEMtaCxNYXRoLm1pbihrLWgsZikpLGE9byxkPWgrZik7YnJlYWs7Y2FzZSB6Rjp4JiYocj1NYXRoLm1heChULE1hdGgubWluKEEsbi1wKngpKSx1PU1hdGgubWF4KFQsTWF0aC5taW4oQSxjK3AqeCkpKSx3JiYoYT1NYXRoLm1heChDLE1hdGgubWluKGssby1mKncpKSxkPU1hdGgubWF4KEMsTWF0aC5taW4oayxoK2YqdykpKX11PHImJih4Kj0tMSx0PW4sbj1jLGM9dCx0PXIscj11LHU9dCx2IGluIFZGJiZPLmF0dHIoImN1cnNvciIsRkZbdj1WRlt2XV0pKSxkPGEmJih3Kj0tMSx0PW8sbz1oLGg9dCx0PWEsYT1kLGQ9dCx2IGluIFVGJiZPLmF0dHIoImN1cnNvciIsRkZbdj1VRlt2XV0pKSxTLnNlbGVjdGlvbiYmKEU9Uy5zZWxlY3Rpb24pLGcmJihyPUVbMF1bMF0sdT1FWzFdWzBdKSxfJiYoYT1FWzBdWzFdLGQ9RVsxXVsxXSksRVswXVswXT09PXImJkVbMF1bMV09PT1hJiZFWzFdWzBdPT09dSYmRVsxXVsxXT09PWR8fChTLnNlbGVjdGlvbj1bW3IsYV0sW3UsZF1dLHMuY2FsbCh5KSxJLmJydXNoKCkpfWZ1bmN0aW9uIEgoKXtpZihrRigpLGxELnRvdWNoZXMpe2lmKGxELnRvdWNoZXMubGVuZ3RoKXJldHVybjtlJiZjbGVhclRpbWVvdXQoZSksZT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2U9bnVsbH0pLDUwMCksUi5vbigidG91Y2htb3ZlLmJydXNoIHRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoIixudWxsKX1lbHNlIE1EKGxELnZpZXcsbSksei5vbigia2V5ZG93bi5icnVzaCBrZXl1cC5icnVzaCBtb3VzZW1vdmUuYnJ1c2ggbW91c2V1cC5icnVzaCIsbnVsbCk7Ui5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLE8uYXR0cigiY3Vyc29yIixGRi5vdmVybGF5KSxTLnNlbGVjdGlvbiYmKEU9Uy5zZWxlY3Rpb24pLCRGKEUpJiYoUy5zZWxlY3Rpb249bnVsbCxzLmNhbGwoeSkpLEkuZW5kKCl9ZnVuY3Rpb24gRigpe3N3aXRjaChsRC5rZXlDb2RlKXtjYXNlIDE2Okw9eCYmdzticmVhaztjYXNlIDE4OmI9PT1PRiYmKHgmJihjPXUtcCp4LG49citwKngpLHcmJihoPWQtZip3LG89YStmKncpLGI9ekYsQigpKTticmVhaztjYXNlIDMyOmIhPT1PRiYmYiE9PXpGfHwoeDwwP2M9dS1wOng+MCYmKG49ci1wKSx3PDA/aD1kLWY6dz4wJiYobz1hLWYpLGI9UkYsTy5hdHRyKCJjdXJzb3IiLEZGLnNlbGVjdGlvbiksQigpKTticmVhaztkZWZhdWx0OnJldHVybn1MRigpfWZ1bmN0aW9uIFYoKXtzd2l0Y2gobEQua2V5Q29kZSl7Y2FzZSAxNjpMJiYoZz1fPUw9ITEsQigpKTticmVhaztjYXNlIDE4OmI9PT16RiYmKHg8MD9jPXU6eD4wJiYobj1yKSx3PDA/aD1kOnc+MCYmKG89YSksYj1PRixCKCkpO2JyZWFrO2Nhc2UgMzI6Yj09PVJGJiYobEQuYWx0S2V5Pyh4JiYoYz11LXAqeCxuPXIrcCp4KSx3JiYoaD1kLWYqdyxvPWErZip3KSxiPXpGKTooeDwwP2M9dTp4PjAmJihuPXIpLHc8MD9oPWQ6dz4wJiYobz1hKSxiPU9GKSxPLmF0dHIoImN1cnNvciIsRkZbdl0pLEIoKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59TEYoKX19ZnVuY3Rpb24gaCgpe3ZhciBlPXRoaXMuX19icnVzaHx8e3NlbGVjdGlvbjpudWxsfTtyZXR1cm4gZS5leHRlbnQ9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyksZS5kaW09dCxlfXJldHVybiBhLm1vdmU9ZnVuY3Rpb24oZSxuKXtlLnNlbGVjdGlvbj9lLm9uKCJzdGFydC5icnVzaCIsKGZ1bmN0aW9uKCl7bCh0aGlzLGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKS5zdGFydCgpfSkpLm9uKCJpbnRlcnJ1cHQuYnJ1c2ggZW5kLmJydXNoIiwoZnVuY3Rpb24oKXtsKHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pKS50d2VlbigiYnJ1c2giLChmdW5jdGlvbigpe3ZhciBlPXRoaXMsaT1lLl9fYnJ1c2gscj1sKGUsYXJndW1lbnRzKSxvPWkuc2VsZWN0aW9uLGE9dC5pbnB1dCgiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpuLGkuZXh0ZW50KSxjPXFCKG8sYSk7ZnVuY3Rpb24gdSh0KXtpLnNlbGVjdGlvbj0xPT09dCYmJEYoYSk/bnVsbDpjKHQpLHMuY2FsbChlKSxyLmJydXNoKCl9cmV0dXJuIG8mJmE/dTp1KDEpfSkpOmUuZWFjaCgoZnVuY3Rpb24oKXt2YXIgZT10aGlzLGk9YXJndW1lbnRzLHI9ZS5fX2JydXNoLG89dC5pbnB1dCgiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KGUsaSk6bixyLmV4dGVudCksYT1sKGUsaSkuYmVmb3Jlc3RhcnQoKTtrSChlKSxyLnNlbGVjdGlvbj1udWxsPT1vfHwkRihvKT9udWxsOm8scy5jYWxsKGUpLGEuc3RhcnQoKS5icnVzaCgpLmVuZCgpfSkpfSxjLnByb3RvdHlwZT17YmVmb3Jlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMuc3RhdGUuZW1pdHRlcj10aGlzLHRoaXMuc3RhcnRpbmc9ITApLHRoaXN9LHN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRpbmcmJih0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdCgic3RhcnQiKSksdGhpc30sYnJ1c2g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbWl0KCJicnVzaCIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoZGVsZXRlIHRoaXMuc3RhdGUuZW1pdHRlcix0aGlzLmVtaXQoImVuZCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKGUpeyEoZnVuY3Rpb24gbih0LGUsaSxyKXt2YXIgbz1sRDt0LnNvdXJjZUV2ZW50PWxELGxEPXQ7dHJ5e2UuYXBwbHkoaSxyKX1maW5hbGx5e2xEPW99fSkobmV3IEFGKGEsZSx0Lm91dHB1dCh0aGlzLnN0YXRlLnNlbGVjdGlvbikpLHIuYXBwbHkscixbZSx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxhLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkNGKFtbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dKSxhKTpufSxhLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkNGKCEhdCksYSk6aX0sYS5oYW5kbGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSt0LGEpOm99LGEub249ZnVuY3Rpb24oKXt2YXIgdD1yLm9uLmFwcGx5KHIsYXJndW1lbnRzKTtyZXR1cm4gdD09PXI/YTp0fSxhfWZ1bmN0aW9uIFpGKHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIEpGKHQsZSxuKXt0PSt0LGU9K2Usbj0ocj1hcmd1bWVudHMubGVuZ3RoKTwyPyhlPXQsdD0wLDEpOnI8Mz8xOituO2Zvcih2YXIgaT0tMSxyPTB8TWF0aC5tYXgoMCxNYXRoLmNlaWwoKGUtdCkvbikpLG89bmV3IEFycmF5KHIpOysraTxyOylvW2ldPXQraSpuO3JldHVybiBvfSEoZnVuY3Rpb24gUUYodCl7MT09PXQubGVuZ3RoJiYodD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gWkYodChlKSxuKX19KSh0KSl9KShaRik7dmFyIHRWPU1hdGguY29zLGVWPU1hdGguc2luLG5WPU1hdGguUEksaVY9blYvMixyVj0yKm5WLG9WPU1hdGgubWF4O2Z1bmN0aW9uIGFWKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB0KGUuc291cmNlLnZhbHVlK2UudGFyZ2V0LnZhbHVlLG4uc291cmNlLnZhbHVlK24udGFyZ2V0LnZhbHVlKX19dmFyIHNWPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBsVih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19dmFyIGNWPU1hdGguUEksdVY9MipjVixoVj0xZS02LGRWPXVWLWhWO2Z1bmN0aW9uIHBWKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gZlYoKXtyZXR1cm4gbmV3IHBWfWZ1bmN0aW9uIG1WKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBnVih0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gX1YodCl7cmV0dXJuIHQucmFkaXVzfWZ1bmN0aW9uIHlWKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gdlYodCl7cmV0dXJuIHQuZW5kQW5nbGV9cFYucHJvdG90eXBlPWZWLnByb3RvdHlwZT17Y29uc3RydWN0b3I6cFYsbW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJMIisodGhpcy5feDE9K3QpKyIsIisodGhpcy5feTE9K2UpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkpe3RoaXMuXys9IlEiKyArdCsiLCIrICtlKyIsIisodGhpcy5feDE9K24pKyIsIisodGhpcy5feTE9K2kpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLl8rPSJDIisgK3QrIiwiKyArZSsiLCIrICtuKyIsIisgK2krIiwiKyh0aGlzLl94MT0rcikrIiwiKyh0aGlzLl95MT0rbyl9LGFyY1RvOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG89dGhpcy5feDEsYT10aGlzLl95MSxzPShuPStuKS0odD0rdCksbD0oaT0raSktKGU9K2UpLGM9by10LHU9YS1lLGg9YypjK3UqdTtpZigocj0rcik8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIityKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSk7ZWxzZSBpZihoPmhWKWlmKE1hdGguYWJzKHUqcy1sKmMpPmhWJiZyKXt2YXIgZD1uLW8scD1pLWEsZj1zKnMrbCpsLG09ZCpkK3AqcCxnPU1hdGguc3FydChmKSxfPU1hdGguc3FydChoKSx5PXIqTWF0aC50YW4oKGNWLU1hdGguYWNvcygoZitoLW0pLygyKmcqXykpKS8yKSx2PXkvXyxiPXkvZztNYXRoLmFicyh2LTEpPmhWJiYodGhpcy5fKz0iTCIrKHQrdipjKSsiLCIrKGUrdip1KSksdGhpcy5fKz0iQSIrcisiLCIrcisiLDAsMCwiKyArKHUqZD5jKnApKyIsIisodGhpcy5feDE9dCtiKnMpKyIsIisodGhpcy5feTE9ZStiKmwpfWVsc2UgdGhpcy5fKz0iTCIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSl9LGFyYzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dD0rdCxlPStlLG89ISFvO3ZhciBhPShuPStuKSpNYXRoLmNvcyhpKSxzPW4qTWF0aC5zaW4oaSksbD10K2EsYz1lK3MsdT0xXm8saD1vP2ktcjpyLWk7aWYobjwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK24pO251bGw9PT10aGlzLl94MT90aGlzLl8rPSJNIitsKyIsIitjOihNYXRoLmFicyh0aGlzLl94MS1sKT5oVnx8TWF0aC5hYnModGhpcy5feTEtYyk+aFYpJiYodGhpcy5fKz0iTCIrbCsiLCIrYyksbiYmKGg8MCYmKGg9aCV1Vit1ViksaD5kVj90aGlzLl8rPSJBIituKyIsIituKyIsMCwxLCIrdSsiLCIrKHQtYSkrIiwiKyhlLXMpKyJBIituKyIsIituKyIsMCwxLCIrdSsiLCIrKHRoaXMuX3gxPWwpKyIsIisodGhpcy5feTE9Yyk6aD5oViYmKHRoaXMuXys9IkEiK24rIiwiK24rIiwwLCIrICsoaD49Y1YpKyIsIit1KyIsIisodGhpcy5feDE9dCtuKk1hdGguY29zKHIpKSsiLCIrKHRoaXMuX3kxPWUrbipNYXRoLnNpbihyKSkpKX0scmVjdDpmdW5jdGlvbih0LGUsbixpKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K3QpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K2UpKyJoIisgK24rInYiKyAraSsiaCIrLW4rIloifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTt2YXIgYlY9IiQiO2Z1bmN0aW9uIHhWKCl7fWZ1bmN0aW9uIHdWKHQsZSl7dmFyIG49bmV3IHhWO2lmKHQgaW5zdGFuY2VvZiB4Vil0LmVhY2goKGZ1bmN0aW9uKHQsZSl7bi5zZXQoZSx0KX0pKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBpLHI9LTEsbz10Lmxlbmd0aDtpZihudWxsPT1lKWZvcig7KytyPG87KW4uc2V0KHIsdFtyXSk7ZWxzZSBmb3IoOysrcjxvOyluLnNldChlKGk9dFtyXSxyLHQpLGkpfWVsc2UgaWYodClmb3IodmFyIGEgaW4gdCluLnNldChhLHRbYV0pO3JldHVybiBufWZ1bmN0aW9uIFNWKCl7cmV0dXJue319ZnVuY3Rpb24gTVYodCxlLG4pe3RbZV09bn1mdW5jdGlvbiBFVigpe3JldHVybiB3VigpfWZ1bmN0aW9uIFRWKHQsZSxuKXt0LnNldChlLG4pfWZ1bmN0aW9uIENWKCl7fXhWLnByb3RvdHlwZT13Vi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnhWLGhhczpmdW5jdGlvbih0KXtyZXR1cm4gYlYrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbYlYrdF19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzW2JWK3RdPWUsdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPWJWK3Q7cmV0dXJuIGUgaW4gdGhpcyYmZGVsZXRlIHRoaXNbZV19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PWJWJiZkZWxldGUgdGhpc1t0XX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1iViYmdC5wdXNoKGUuc2xpY2UoMSkpO3JldHVybiB0fSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09YlYmJnQucHVzaCh0aGlzW2VdKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1iViYmdC5wdXNoKHtrZXk6ZS5zbGljZSgxKSx2YWx1ZTp0aGlzW2VdfSk7cmV0dXJuIHR9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1iViYmKyt0O3JldHVybiB0fSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKWlmKHRbMF09PT1iVilyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09YlYmJnQodGhpc1tlXSxlLnNsaWNlKDEpLHRoaXMpfX07dmFyIEFWPXdWLnByb3RvdHlwZTtmdW5jdGlvbiBrVih0LGUpe3ZhciBuPW5ldyBDVjtpZih0IGluc3RhbmNlb2YgQ1YpdC5lYWNoKChmdW5jdGlvbih0KXtuLmFkZCh0KX0pKTtlbHNlIGlmKHQpe3ZhciBpPS0xLHI9dC5sZW5ndGg7aWYobnVsbD09ZSlmb3IoOysraTxyOyluLmFkZCh0W2ldKTtlbHNlIGZvcig7KytpPHI7KW4uYWRkKGUodFtpXSxpLHQpKX1yZXR1cm4gbn1mdW5jdGlvbiBMVih0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gUFYodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gTlYoKXt9Q1YucHJvdG90eXBlPWtWLnByb3RvdHlwZT17Y29uc3RydWN0b3I6Q1YsaGFzOkFWLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbYlYrKHQrPSIiKV09dCx0aGlzfSxyZW1vdmU6QVYucmVtb3ZlLGNsZWFyOkFWLmNsZWFyLHZhbHVlczpBVi5rZXlzLHNpemU6QVYuc2l6ZSxlbXB0eTpBVi5lbXB0eSxlYWNoOkFWLmVhY2h9O3ZhciBJVj0uNyxSVj0xL0lWLE9WPSJcXHMqKFsrLV0/XFxkKylcXHMqIix6Vj0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIixEVj0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIsQlY9L14jKFswLTlhLWZdezN9KSQvLEhWPS9eIyhbMC05YS1mXXs2fSkkLyxGVj1uZXcgUmVnRXhwKCJecmdiXFwoIitbT1YsT1YsT1ZdKyJcXCkkIiksVlY9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW0RWLERWLERWXSsiXFwpJCIpLFVWPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbT1YsT1YsT1YselZdKyJcXCkkIiksalY9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tEVixEVixEVix6Vl0rIlxcKSQiKSxHVj1uZXcgUmVnRXhwKCJeaHNsXFwoIitbelYsRFYsRFZdKyJcXCkkIiksV1Y9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1t6VixEVixEVix6Vl0rIlxcKSQiKSxxVj17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBZVih0KXt2YXIgZTtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9QlYuZXhlYyh0KSk/bmV3IEpWKChlPXBhcnNlSW50KGVbMV0sMTYpKT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOihlPUhWLmV4ZWModCkpP1hWKHBhcnNlSW50KGVbMV0sMTYpKTooZT1GVi5leGVjKHQpKT9uZXcgSlYoZVsxXSxlWzJdLGVbM10sMSk6KGU9VlYuZXhlYyh0KSk/bmV3IEpWKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLDEpOihlPVVWLmV4ZWModCkpPyRWKGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPWpWLmV4ZWModCkpPyRWKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLGVbNF0pOihlPUdWLmV4ZWModCkpP1FWKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsMSk6KGU9V1YuZXhlYyh0KSk/UVYoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpxVi5oYXNPd25Qcm9wZXJ0eSh0KT9YVihxVlt0XSk6InRyYW5zcGFyZW50Ij09PXQ/bmV3IEpWKE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gWFYodCl7cmV0dXJuIG5ldyBKVih0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gJFYodCxlLG4saSl7cmV0dXJuIGk8PTAmJih0PWU9bj1OYU4pLG5ldyBKVih0LGUsbixpKX1mdW5jdGlvbiBLVih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIE5WfHwodD1ZVih0KSksdD9uZXcgSlYoKHQ9dC5yZ2IoKSkucix0LmcsdC5iLHQub3BhY2l0eSk6bmV3IEpWfWZ1bmN0aW9uIFpWKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9LVih0KTpuZXcgSlYodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIEpWKHQsZSxuLGkpe3RoaXMucj0rdCx0aGlzLmc9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBRVih0LGUsbixpKXtyZXR1cm4gaTw9MD90PWU9bj1OYU46bjw9MHx8bj49MT90PWU9TmFOOmU8PTAmJih0PU5hTiksbmV3IG5VKHQsZSxuLGkpfWZ1bmN0aW9uIHRVKHQpe2lmKHQgaW5zdGFuY2VvZiBuVSlyZXR1cm4gbmV3IG5VKHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIE5WfHwodD1ZVih0KSksIXQpcmV0dXJuIG5ldyBuVTtpZih0IGluc3RhbmNlb2YgblUpcmV0dXJuIHQ7dmFyIGU9KHQ9dC5yZ2IoKSkuci8yNTUsbj10LmcvMjU1LGk9dC5iLzI1NSxyPU1hdGgubWluKGUsbixpKSxvPU1hdGgubWF4KGUsbixpKSxhPU5hTixzPW8tcixsPShvK3IpLzI7cmV0dXJuIHM/KGE9ZT09PW8/KG4taSkvcys2KihuPGkpOm49PT1vPyhpLWUpL3MrMjooZS1uKS9zKzQscy89bDwuNT9vK3I6Mi1vLXIsYSo9NjApOnM9bD4wJiZsPDE/MDphLG5ldyBuVShhLHMsbCx0Lm9wYWNpdHkpfWZ1bmN0aW9uIGVVKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90VSh0KTpuZXcgblUodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIG5VKHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBpVSh0LGUsbil7cmV0dXJuIDI1NSoodDw2MD9lKyhuLWUpKnQvNjA6dDwxODA/bjp0PDI0MD9lKyhuLWUpKigyNDAtdCkvNjA6ZSl9TFYoTlYsWVYse2Rpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKSsiIn19KSxMVihKVixaVixQVihOVix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9SVjpNYXRoLnBvdyhSVix0KSxuZXcgSlYodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/SVY6TWF0aC5wb3coSVYsdCksbmV3IEpWKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiAwPD10aGlzLnImJnRoaXMucjw9MjU1JiYwPD10aGlzLmcmJnRoaXMuZzw9MjU1JiYwPD10aGlzLmImJnRoaXMuYjw9MjU1JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX19KSksTFYoblUsZVUsUFYoTlYse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/UlY6TWF0aC5wb3coUlYsdCksbmV3IG5VKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/SVY6TWF0aC5wb3coSVYsdCksbmV3IG5VKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSxlPWlzTmFOKHQpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLG49dGhpcy5sLGk9bisobjwuNT9uOjEtbikqZSxyPTIqbi1pO3JldHVybiBuZXcgSlYoaVUodD49MjQwP3QtMjQwOnQrMTIwLHIsaSksaVUodCxyLGkpLGlVKHQ8MTIwP3QrMjQwOnQtMTIwLHIsaSksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9fSkpO3ZhciByVT1NYXRoLlBJLzE4MCxvVT0xODAvTWF0aC5QSSxhVT0uOTUwNDcsc1U9MS4wODg4MyxsVT00LzI5LGNVPTYvMjksdVU9MypjVSpjVTtmdW5jdGlvbiBoVSh0KXtpZih0IGluc3RhbmNlb2YgcFUpcmV0dXJuIG5ldyBwVSh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBiVSl7dmFyIGU9dC5oKnJVO3JldHVybiBuZXcgcFUodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX10IGluc3RhbmNlb2YgSlZ8fCh0PUtWKHQpKTt2YXIgbj1fVSh0LnIpLGk9X1UodC5nKSxyPV9VKHQuYiksbz1mVSgoLjQxMjQ1NjQqbisuMzU3NTc2MSppKy4xODA0Mzc1KnIpL2FVKSxhPWZVKCguMjEyNjcyOSpuKy43MTUxNTIyKmkrLjA3MjE3NSpyKS8xKTtyZXR1cm4gbmV3IHBVKDExNiphLTE2LDUwMCooby1hKSwyMDAqKGEtZlUoKC4wMTkzMzM5Km4rLjExOTE5MippKy45NTAzMDQxKnIpL3NVKSksdC5vcGFjaXR5KX1mdW5jdGlvbiBkVSh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/aFUodCk6bmV3IHBVKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBwVSh0LGUsbixpKXt0aGlzLmw9K3QsdGhpcy5hPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gZlUodCl7cmV0dXJuIHQ+LjAwODg1NjQ1MTY3OTAzNTYzMT9NYXRoLnBvdyh0LDEvMyk6dC91VStsVX1mdW5jdGlvbiBtVSh0KXtyZXR1cm4gdD5jVT90KnQqdDp1VSoodC1sVSl9ZnVuY3Rpb24gZ1UodCl7cmV0dXJuIDI1NSoodDw9LjAwMzEzMDg/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LDEvMi40KS0uMDU1KX1mdW5jdGlvbiBfVSh0KXtyZXR1cm4odC89MjU1KTw9LjA0MDQ1P3QvMTIuOTI6TWF0aC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiB5VSh0KXtpZih0IGluc3RhbmNlb2YgYlUpcmV0dXJuIG5ldyBiVSh0LmgsdC5jLHQubCx0Lm9wYWNpdHkpO3QgaW5zdGFuY2VvZiBwVXx8KHQ9aFUodCkpO3ZhciBlPU1hdGguYXRhbjIodC5iLHQuYSkqb1U7cmV0dXJuIG5ldyBiVShlPDA/ZSszNjA6ZSxNYXRoLnNxcnQodC5hKnQuYSt0LmIqdC5iKSx0LmwsdC5vcGFjaXR5KX1mdW5jdGlvbiB2VSh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/eVUodCk6bmV3IGJVKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBiVSh0LGUsbixpKXt0aGlzLmg9K3QsdGhpcy5jPStlLHRoaXMubD0rbix0aGlzLm9wYWNpdHk9K2l9TFYocFUsZFUsUFYoTlYse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgcFUodGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBwVSh0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmwrMTYpLzExNixlPWlzTmFOKHRoaXMuYSk/dDp0K3RoaXMuYS81MDAsbj1pc05hTih0aGlzLmIpP3Q6dC10aGlzLmIvMjAwO3JldHVybiB0PTEqbVUodCksbmV3IEpWKGdVKDMuMjQwNDU0MiooZT1hVSptVShlKSktMS41MzcxMzg1KnQtLjQ5ODUzMTQqKG49c1UqbVUobikpKSxnVSgtLjk2OTI2NiplKzEuODc2MDEwOCp0Ky4wNDE1NTYqbiksZ1UoLjA1NTY0MzQqZS0uMjA0MDI1OSp0KzEuMDU3MjI1MipuKSx0aGlzLm9wYWNpdHkpfX0pKSxMVihiVSx2VSxQVihOVix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBiVSh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGJVKHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIGhVKHRoaXMpLnJnYigpfX0pKTt2YXIgeFU9LS4yOTIyNyx3VT0tLjkwNjQ5LFNVPTEuOTcyOTQ7ZnVuY3Rpb24gTVUodCl7aWYodCBpbnN0YW5jZW9mIFRVKXJldHVybiBuZXcgVFUodC5oLHQucyx0LmwsdC5vcGFjaXR5KTt0IGluc3RhbmNlb2YgSlZ8fCh0PUtWKHQpKTt2YXIgZT10LmcvMjU1LG49dC5iLzI1NSxpPSgtLjY1NTc2MzY2Njc5OTk5OTkqbit0LnIvMjU1Ki0xLjc4ODQ1MDM4MDYtMy41MTcyOTgyNDM4KmUpLy01Ljk2MTUxMjI5MTIscj1uLWksbz0oU1UqKGUtaSkteFUqcikvd1UsYT1NYXRoLnNxcnQobypvK3IqcikvKFNVKmkqKDEtaSkpLHM9YT9NYXRoLmF0YW4yKG8scikqb1UtMTIwOk5hTjtyZXR1cm4gbmV3IFRVKHM8MD9zKzM2MDpzLGEsaSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIEVVKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9NVSh0KTpuZXcgVFUodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIFRVKHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1MVihUVSxFVSxQVihOVix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9SVjpNYXRoLnBvdyhSVix0KSxuZXcgVFUodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9JVjpNYXRoLnBvdyhJVix0KSxuZXcgVFUodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD1pc05hTih0aGlzLmgpPzA6KHRoaXMuaCsxMjApKnJVLGU9K3RoaXMubCxuPWlzTmFOKHRoaXMucyk/MDp0aGlzLnMqZSooMS1lKSxpPU1hdGguY29zKHQpLHI9TWF0aC5zaW4odCk7cmV0dXJuIG5ldyBKVigyNTUqKGUrbiooLS4xNDg2MSppKzEuNzgyNzcqcikpLDI1NSooZStuKih4VSppK3dVKnIpKSwyNTUqKGUrbiooU1UqaSkpLHRoaXMub3BhY2l0eSl9fSkpO3ZhciBDVT17dmFsdWU6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBBVSgpe2Zvcih2YXIgdCxlPTAsbj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxuOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaSl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgdHlwZTogIit0KTtpW3RdPVtdfXJldHVybiBuZXcga1UoaSl9ZnVuY3Rpb24ga1UodCl7dGhpcy5fPXR9ZnVuY3Rpb24gTFUodCxlKXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgbj0iIixpPXQuaW5kZXhPZigiLiIpO2lmKGk+PTAmJihuPXQuc2xpY2UoaSsxKSx0PXQuc2xpY2UoMCxpKSksdCYmIWUuaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOm59fSkpfWZ1bmN0aW9uIFBVKHQsZSl7Zm9yKHZhciBuLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYoKG49dFtpXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24gTlUodCxlLG4pe2Zvcih2YXIgaT0wLHI9dC5sZW5ndGg7aTxyOysraSlpZih0W2ldLm5hbWU9PT1lKXt0W2ldPUNVLHQ9dC5zbGljZSgwLGkpLmNvbmNhdCh0LnNsaWNlKGkrMSkpO2JyZWFrfXJldHVybiBudWxsIT1uJiZ0LnB1c2goe25hbWU6ZSx2YWx1ZTpufSksdH1rVS5wcm90b3R5cGU9QVUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjprVSxvbjpmdW5jdGlvbih0LGUpe3ZhciBuLGk9dGhpcy5fLHI9TFUodCsiIixpKSxvPS0xLGE9ci5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK288YTspaWYobj0odD1yW29dKS50eXBlKWlbbl09TlUoaVtuXSx0Lm5hbWUsZSk7ZWxzZSBpZihudWxsPT1lKWZvcihuIGluIGkpaVtuXT1OVShpW25dLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrbzxhOylpZigobj0odD1yW29dKS50eXBlKSYmKG49UFUoaVtuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcga1UodCl9LGNhbGw6ZnVuY3Rpb24odCxlKXtpZigobj1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBuLGkscj1uZXcgQXJyYXkobiksbz0wO288bjsrK28pcltvXT1hcmd1bWVudHNbbysyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2ZvcihvPTAsbj0oaT10aGlzLl9bdF0pLmxlbmd0aDtvPG47KytvKWlbb10udmFsdWUuYXBwbHkoZSxyKX0sYXBwbHk6ZnVuY3Rpb24odCxlLG4pe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKHZhciBpPXRoaXMuX1t0XSxyPTAsbz1pLmxlbmd0aDtyPG87KytyKWlbcl0udmFsdWUuYXBwbHkoZSxuKX19O3ZhciBJVT17dmFsdWU6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBSVSgpe2Zvcih2YXIgdCxlPTAsbj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxuOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaXx8L1tccy5dLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK3QpO2lbdF09W119cmV0dXJuIG5ldyBPVShpKX1mdW5jdGlvbiBPVSh0KXt0aGlzLl89dH1mdW5jdGlvbiB6VSh0LGUpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9dC5pbmRleE9mKCIuIik7aWYoaT49MCYmKG49dC5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKSx0JiYhZS5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6bn19KSl9ZnVuY3Rpb24gRFUodCxlKXtmb3IodmFyIG4saT0wLHI9dC5sZW5ndGg7aTxyOysraSlpZigobj10W2ldKS5uYW1lPT09ZSlyZXR1cm4gbi52YWx1ZX1mdW5jdGlvbiBCVSh0LGUsbil7Zm9yKHZhciBpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKHRbaV0ubmFtZT09PWUpe3RbaV09SVUsdD10LnNsaWNlKDAsaSkuY29uY2F0KHQuc2xpY2UoaSsxKSk7YnJlYWt9cmV0dXJuIG51bGwhPW4mJnQucHVzaCh7bmFtZTplLHZhbHVlOm59KSx0fU9VLnByb3RvdHlwZT1SVS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk9VLG9uOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl8scj16VSh0KyIiLGkpLG89LTEsYT1yLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2lmKG51bGwhPWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIitlKTtmb3IoOysrbzxhOylpZihuPSh0PXJbb10pLnR5cGUpaVtuXT1CVShpW25dLHQubmFtZSxlKTtlbHNlIGlmKG51bGw9PWUpZm9yKG4gaW4gaSlpW25dPUJVKGlbbl0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChuPSh0PXJbb10pLnR5cGUpJiYobj1EVShpW25dLHQubmFtZSkpKXJldHVybiBufSxjb3B5OmZ1bmN0aW9uKCl7dmFyIHQ9e30sZT10aGlzLl87Zm9yKHZhciBuIGluIGUpdFtuXT1lW25dLnNsaWNlKCk7cmV0dXJuIG5ldyBPVSh0KX0sY2FsbDpmdW5jdGlvbih0LGUpe2lmKChuPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIG4saSxyPW5ldyBBcnJheShuKSxvPTA7bzxuOysrbylyW29dPWFyZ3VtZW50c1tvKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKG89MCxuPShpPXRoaXMuX1t0XSkubGVuZ3RoO288bjsrK28paVtvXS52YWx1ZS5hcHBseShlLHIpfSxhcHBseTpmdW5jdGlvbih0LGUsbil7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3IodmFyIGk9dGhpcy5fW3RdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3IpaVtyXS52YWx1ZS5hcHBseShlLG4pfX07dmFyIEhVPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixGVT17c3ZnOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseGh0bWw6SFUseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtmdW5jdGlvbiBWVSh0KXt2YXIgZT10Kz0iIixuPWUuaW5kZXhPZigiOiIpO3JldHVybiBuPj0wJiYieG1sbnMiIT09KGU9dC5zbGljZSgwLG4pKSYmKHQ9dC5zbGljZShuKzEpKSxGVS5oYXNPd25Qcm9wZXJ0eShlKT97c3BhY2U6RlVbZV0sbG9jYWw6dH06dH1mdW5jdGlvbiBVVSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnQsbj10aGlzLm5hbWVzcGFjZVVSSTtyZXR1cm4gbj09PUhVJiZlLmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1IVT9lLmNyZWF0ZUVsZW1lbnQodCk6ZS5jcmVhdGVFbGVtZW50TlMobix0KX19ZnVuY3Rpb24galUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gR1UodCl7dmFyIGU9VlUodCk7cmV0dXJuKGUubG9jYWw/alU6VVUpKGUpfWZ1bmN0aW9uIFdVKCl7fWZ1bmN0aW9uIHFVKHQpe3JldHVybiBudWxsPT10P1dVOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3Rvcih0KX19ZnVuY3Rpb24gWVUoKXtyZXR1cm5bXX1mdW5jdGlvbiBYVSh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiAkVSh0LGUpe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189ZX1mdW5jdGlvbiBLVSh0LGUsbixpLHIsbyl7Zm9yKHZhciBhLHM9MCxsPWUubGVuZ3RoLGM9by5sZW5ndGg7czxjOysrcykoYT1lW3NdKT8oYS5fX2RhdGFfXz1vW3NdLGlbc109YSk6bltzXT1uZXcgJFUodCxvW3NdKTtmb3IoO3M8bDsrK3MpKGE9ZVtzXSkmJihyW3NdPWEpfWZ1bmN0aW9uIFpVKHQsZSxuLGkscixvLGEpe3ZhciBzLGwsYyx1PXt9LGg9ZS5sZW5ndGgsZD1vLmxlbmd0aCxwPW5ldyBBcnJheShoKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJihwW3NdPWM9IiQiK2EuY2FsbChsLGwuX19kYXRhX18scyxlKSxjIGluIHU/cltzXT1sOnVbY109bCk7Zm9yKHM9MDtzPGQ7KytzKShsPXVbYz0iJCIrYS5jYWxsKHQsb1tzXSxzLG8pXSk/KGlbc109bCxsLl9fZGF0YV9fPW9bc10sdVtjXT1udWxsKTpuW3NdPW5ldyAkVSh0LG9bc10pO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmdVtwW3NdXT09PWwmJihyW3NdPWwpfWZ1bmN0aW9uIEpVKHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIFFVKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiB0aih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGVqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19ZnVuY3Rpb24gbmoodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlKX19ZnVuY3Rpb24gaWoodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpOnRoaXMuc2V0QXR0cmlidXRlKHQsbil9fWZ1bmN0aW9uIHJqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsbil9fWZ1bmN0aW9uIG9qKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBhaih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBzaih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUsbil9fWZ1bmN0aW9uIGxqKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1pP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGksbil9fWZ1bmN0aW9uIGNqKHQsZSl7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShlKXx8b2oodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUoZSl9ZnVuY3Rpb24gdWoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19fWZ1bmN0aW9uIGhqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1lfX1mdW5jdGlvbiBkaih0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/ZGVsZXRlIHRoaXNbdF06dGhpc1t0XT1ufX1mdW5jdGlvbiBwaih0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVuY3Rpb24gZmoodCl7cmV0dXJuIHQuY2xhc3NMaXN0fHxuZXcgbWoodCl9ZnVuY3Rpb24gbWoodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPXBqKHQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9ZnVuY3Rpb24gZ2oodCxlKXtmb3IodmFyIG49ZmoodCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLmFkZChlW2ldKX1mdW5jdGlvbiBfaih0LGUpe2Zvcih2YXIgbj1maih0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4ucmVtb3ZlKGVbaV0pfWZ1bmN0aW9uIHlqKHQpe3JldHVybiBmdW5jdGlvbigpe2dqKHRoaXMsdCl9fWZ1bmN0aW9uIHZqKHQpe3JldHVybiBmdW5jdGlvbigpe19qKHRoaXMsdCl9fWZ1bmN0aW9uIGJqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7KGUuYXBwbHkodGhpcyxhcmd1bWVudHMpP2dqOl9qKSh0aGlzLHQpfX1mdW5jdGlvbiB4aigpe3RoaXMudGV4dENvbnRlbnQ9IiJ9ZnVuY3Rpb24gd2oodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX1mdW5jdGlvbiBTaih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gTWooKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBFaih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX1mdW5jdGlvbiBUaih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIENqKCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIEFqKCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24ga2ooKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBMaigpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIFBqKCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITEpLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH1mdW5jdGlvbiBOaigpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCEwKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9JFUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjokVSxhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LGUpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSxtai5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt0aGlzLl9uYW1lcy5pbmRleE9mKHQpPDAmJih0aGlzLl9uYW1lcy5wdXNoKHQpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9uYW1lcy5pbmRleE9mKHQpO2U+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UoZSwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciBJaj17fSxSaj1udWxsO2Z1bmN0aW9uIE9qKHQsZSxuKXtyZXR1cm4gdD16aih0LGUsbiksZnVuY3Rpb24oZSl7dmFyIG49ZS5yZWxhdGVkVGFyZ2V0O24mJihuPT09dGhpc3x8OCZuLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMpKXx8dC5jYWxsKHRoaXMsZSl9fWZ1bmN0aW9uIHpqKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIHI9Umo7Umo9aTt0cnl7dC5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxlLG4pfWZpbmFsbHl7Umo9cn19fWZ1bmN0aW9uIERqKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihlPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOmV9fSkpfWZ1bmN0aW9uIEJqKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMuX19vbjtpZihlKXtmb3IodmFyIG4saT0wLHI9LTEsbz1lLmxlbmd0aDtpPG87KytpKW49ZVtpXSx0LnR5cGUmJm4udHlwZSE9PXQudHlwZXx8bi5uYW1lIT09dC5uYW1lP2VbKytyXT1uOnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLnR5cGUsbi5saXN0ZW5lcixuLmNhcHR1cmUpOysrcj9lLmxlbmd0aD1yOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBIaih0LGUsbil7dmFyIGk9SWouaGFzT3duUHJvcGVydHkodC50eXBlKT9Pajp6ajtyZXR1cm4gZnVuY3Rpb24ocixvLGEpe3ZhciBzLGw9dGhpcy5fX29uLGM9aShlLG8sYSk7aWYobClmb3IodmFyIHU9MCxoPWwubGVuZ3RoO3U8aDsrK3UpaWYoKHM9bFt1XSkudHlwZT09PXQudHlwZSYmcy5uYW1lPT09dC5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXIscy5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXI9YyxzLmNhcHR1cmU9biksdm9pZChzLnZhbHVlPWUpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcih0LnR5cGUsYyxuKSxzPXt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSx2YWx1ZTplLGxpc3RlbmVyOmMsY2FwdHVyZTpufSxsP2wucHVzaChzKTp0aGlzLl9fb249W3NdfX1mdW5jdGlvbiBGaih0LGUsbixpKXt2YXIgcj1Sajt0LnNvdXJjZUV2ZW50PVJqLFJqPXQ7dHJ5e3JldHVybiBlLmFwcGx5KG4saSl9ZmluYWxseXtSaj1yfX1mdW5jdGlvbiBWaih0LGUsbil7dmFyIGk9b2oodCkscj1pLkN1c3RvbUV2ZW50OyJmdW5jdGlvbiI9PXR5cGVvZiByP3I9bmV3IHIoZSxuKToocj1pLmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLG4/KHIuaW5pdEV2ZW50KGUsbi5idWJibGVzLG4uY2FuY2VsYWJsZSksci5kZXRhaWw9bi5kZXRhaWwpOnIuaW5pdEV2ZW50KGUsITEsITEpKSx0LmRpc3BhdGNoRXZlbnQocil9ZnVuY3Rpb24gVWoodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gVmoodGhpcyx0LGUpfX1mdW5jdGlvbiBqaih0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBWaih0aGlzLHQsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChJaj17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7dmFyIEdqPVtudWxsXTtmdW5jdGlvbiBXaih0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBxaih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/bmV3IFdqKFtbZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KV1dLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgV2ooW1t0XV0sR2opfWZ1bmN0aW9uIFlqKCl7Zm9yKHZhciB0LGU9Umo7dD1lLnNvdXJjZUV2ZW50OyllPXQ7cmV0dXJuIGV9ZnVuY3Rpb24gWGoodCxlKXt2YXIgbj10Lm93bmVyU1ZHRWxlbWVudHx8dDtpZihuLmNyZWF0ZVNWR1BvaW50KXt2YXIgaT1uLmNyZWF0ZVNWR1BvaW50KCk7cmV0dXJuIGkueD1lLmNsaWVudFgsaS55PWUuY2xpZW50WSxbKGk9aS5tYXRyaXhUcmFuc2Zvcm0odC5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpKS54LGkueV19dmFyIHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm5bZS5jbGllbnRYLXIubGVmdC10LmNsaWVudExlZnQsZS5jbGllbnRZLXIudG9wLXQuY2xpZW50VG9wXX1mdW5jdGlvbiAkaih0KXt2YXIgZT1ZaigpO3JldHVybiBlLmNoYW5nZWRUb3VjaGVzJiYoZT1lLmNoYW5nZWRUb3VjaGVzWzBdKSxYaih0LGUpfWZ1bmN0aW9uIEtqKHQsZSxuKXthcmd1bWVudHMubGVuZ3RoPDMmJihuPWUsZT1ZaigpLmNoYW5nZWRUb3VjaGVzKTtmb3IodmFyIGkscj0wLG89ZT9lLmxlbmd0aDowO3I8bzsrK3IpaWYoKGk9ZVtyXSkuaWRlbnRpZmllcj09PW4pcmV0dXJuIFhqKHQsaSk7cmV0dXJuIG51bGx9ZnVuY3Rpb24gWmooKXtSai5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBKaigpe1JqLnByZXZlbnREZWZhdWx0KCksUmouc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gUWoodCl7dmFyIGU9dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1xaih0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLEpqLCEwKTsib25zZWxlY3RzdGFydCJpbiBlP24ub24oInNlbGVjdHN0YXJ0LmRyYWciLEpqLCEwKTooZS5fX25vc2VsZWN0PWUuc3R5bGUuTW96VXNlclNlbGVjdCxlLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiKX1mdW5jdGlvbiB0Ryh0LGUpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGk9cWoodCkub24oImRyYWdzdGFydC5kcmFnIixudWxsKTtlJiYoaS5vbigiY2xpY2suZHJhZyIsSmosITApLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aS5vbigiY2xpY2suZHJhZyIsbnVsbCl9KSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gbj9pLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKToobi5zdHlsZS5Nb3pVc2VyU2VsZWN0PW4uX19ub3NlbGVjdCxkZWxldGUgbi5fX25vc2VsZWN0KX1mdW5jdGlvbiBlRyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gbkcodCxlLG4saSxyLG8sYSxzLGwsYyl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9ZSx0aGlzLnN1YmplY3Q9bix0aGlzLmlkZW50aWZpZXI9aSx0aGlzLmFjdGl2ZT1yLHRoaXMueD1vLHRoaXMueT1hLHRoaXMuZHg9cyx0aGlzLmR5PWwsdGhpcy5fPWN9ZnVuY3Rpb24gaUcoKXtyZXR1cm4hUmouYnV0dG9ufWZ1bmN0aW9uIHJHKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX1mdW5jdGlvbiBvRyh0KXtyZXR1cm4gbnVsbD09dD97eDpSai54LHk6UmoueX06dH1mdW5jdGlvbiBhRygpe3JldHVybiJvbnRvdWNoc3RhcnQiaW4gdGhpc31Xai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOldqLHNlbGVjdDpmdW5jdGlvbiBzRyh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9cVUodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKSxyPTA7cjxuOysrcilmb3IodmFyIG8sYSxzPWVbcl0sbD1zLmxlbmd0aCxjPWlbcl09bmV3IEFycmF5KGwpLHU9MDt1PGw7Kyt1KShvPXNbdV0pJiYoYT10LmNhbGwobyxvLl9fZGF0YV9fLHUscykpJiYoIl9fZGF0YV9fImluIG8mJihhLl9fZGF0YV9fPW8uX19kYXRhX18pLGNbdV09YSk7cmV0dXJuIG5ldyBXaihpLHRoaXMuX3BhcmVudHMpfSxzZWxlY3RBbGw6ZnVuY3Rpb24gbEcodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PShmdW5jdGlvbiBlKHQpe3JldHVybiBudWxsPT10P1lVOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19KSh0KSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9W10sbz1bXSxhPTA7YTxpOysrYSlmb3IodmFyIHMsbD1uW2FdLGM9bC5sZW5ndGgsdT0wO3U8YzsrK3UpKHM9bFt1XSkmJihyLnB1c2godC5jYWxsKHMscy5fX2RhdGFfXyx1LGwpKSxvLnB1c2gocykpO3JldHVybiBuZXcgV2oocixvKX0sZmlsdGVyOmZ1bmN0aW9uIGNHKHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKHQpfX0pKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGk9bi5sZW5ndGgscj1uZXcgQXJyYXkoaSksbz0wO288aTsrK28pZm9yKHZhciBhLHM9bltvXSxsPXMubGVuZ3RoLGM9cltvXT1bXSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmdC5jYWxsKGEsYS5fX2RhdGFfXyx1LHMpJiZjLnB1c2goYSk7cmV0dXJuIG5ldyBXaihyLHRoaXMuX3BhcmVudHMpfSxkYXRhOmZ1bmN0aW9uIHVHKHQsZSl7aWYoIXQpcmV0dXJuIGY9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSx1PS0xLHRoaXMuZWFjaCgoZnVuY3Rpb24odCl7ZlsrK3VdPXR9KSksZjt2YXIgbj1lP1pVOktVLGk9dGhpcy5fcGFyZW50cyxyPXRoaXMuX2dyb3VwczsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9KGZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkodCkpO2Zvcih2YXIgYT1yLmxlbmd0aCxzPW5ldyBBcnJheShhKSxsPW5ldyBBcnJheShhKSxjPW5ldyBBcnJheShhKSx1PTA7dTxhOysrdSl7dmFyIGg9aVt1XSxkPXJbdV0scD1kLmxlbmd0aCxmPXQuY2FsbChoLGgmJmguX19kYXRhX18sdSxpKSxtPWYubGVuZ3RoLGc9bFt1XT1uZXcgQXJyYXkobSksXz1zW3VdPW5ldyBBcnJheShtKTtuKGgsZCxnLF8sY1t1XT1uZXcgQXJyYXkocCksZixlKTtmb3IodmFyIHksdixiPTAseD0wO2I8bTsrK2IpaWYoeT1nW2JdKXtmb3IoYj49eCYmKHg9YisxKTshKHY9X1t4XSkmJisreDxtOyk7eS5fbmV4dD12fHxudWxsfX1yZXR1cm4ocz1uZXcgV2oocyxpKSkuX2VudGVyPWwscy5fZXhpdD1jLHN9LGVudGVyOmZ1bmN0aW9uIGhHKCl7cmV0dXJuIG5ldyBXaih0aGlzLl9lbnRlcnx8dGhpcy5fZ3JvdXBzLm1hcChYVSksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24gZEcoKXtyZXR1cm4gbmV3IFdqKHRoaXMuX2V4aXR8fHRoaXMuX2dyb3Vwcy5tYXAoWFUpLHRoaXMuX3BhcmVudHMpfSxqb2luOmZ1bmN0aW9uIHBHKHQsZSxuKXt2YXIgaT10aGlzLmVudGVyKCkscj10aGlzLG89dGhpcy5leGl0KCk7cmV0dXJuIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChpKTppLmFwcGVuZCh0KyIiKSxudWxsIT1lJiYocj1lKHIpKSxudWxsPT1uP28ucmVtb3ZlKCk6bihvKSxpJiZyP2kubWVyZ2Uocikub3JkZXIoKTpyfSxtZXJnZTpmdW5jdGlvbiBmRyh0KXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49dC5fZ3JvdXBzLGk9ZS5sZW5ndGgscj1NYXRoLm1pbihpLG4ubGVuZ3RoKSxvPW5ldyBBcnJheShpKSxhPTA7YTxyOysrYSlmb3IodmFyIHMsbD1lW2FdLGM9blthXSx1PWwubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9bFtkXXx8Y1tkXSkmJihoW2RdPXMpO2Zvcig7YTxpOysrYSlvW2FdPWVbYV07cmV0dXJuIG5ldyBXaihvLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbiBtRygpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT0tMSxuPXQubGVuZ3RoOysrZTxuOylmb3IodmFyIGkscj10W2VdLG89ci5sZW5ndGgtMSxhPXJbb107LS1vPj0wOykoaT1yW29dKSYmKGEmJjReaS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihhKSYmYS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpLGEpLGE9aSk7cmV0dXJuIHRoaXN9LHNvcnQ6ZnVuY3Rpb24gZ0codCl7ZnVuY3Rpb24gZShlLG4pe3JldHVybiBlJiZuP3QoZS5fX2RhdGFfXyxuLl9fZGF0YV9fKTohZS0hbn10fHwodD1KVSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGkpLG89MDtvPGk7KytvKXtmb3IodmFyIGEscz1uW29dLGw9cy5sZW5ndGgsYz1yW29dPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmKGNbdV09YSk7Yy5zb3J0KGUpfXJldHVybiBuZXcgV2oocix0aGlzLl9wYXJlbnRzKS5vcmRlcigpfSxjYWxsOmZ1bmN0aW9uIF9HKCl7dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyx0LmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfSxub2RlczpmdW5jdGlvbiB5Rygpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksZT0tMTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3RbKytlXT10aGlzfSkpLHR9LG5vZGU6ZnVuY3Rpb24gdkcoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9MCxuPXQubGVuZ3RoO2U8bjsrK2UpZm9yKHZhciBpPXRbZV0scj0wLG89aS5sZW5ndGg7cjxvOysrcil7dmFyIGE9aVtyXTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfSxzaXplOmZ1bmN0aW9uIGJHKCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpeysrdH0pKSx0fSxlbXB0eTpmdW5jdGlvbiB4Rygpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbiB3Ryh0KXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49MCxpPWUubGVuZ3RoO248aTsrK24pZm9yKHZhciByLG89ZVtuXSxhPTAscz1vLmxlbmd0aDthPHM7KythKShyPW9bYV0pJiZ0LmNhbGwocixyLl9fZGF0YV9fLGEsbyk7cmV0dXJuIHRoaXN9LGF0dHI6ZnVuY3Rpb24gU0codCxlKXt2YXIgbj1WVSh0KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBpPXRoaXMubm9kZSgpO3JldHVybiBuLmxvY2FsP2kuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTppLmdldEF0dHJpYnV0ZShuKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP24ubG9jYWw/dGo6UVU6ImZ1bmN0aW9uIj09dHlwZW9mIGU/bi5sb2NhbD9yajppajpuLmxvY2FsP25qOmVqKShuLGUpKX0sc3R5bGU6ZnVuY3Rpb24gTUcodCxlLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1lP2FqOiJmdW5jdGlvbiI9PXR5cGVvZiBlP2xqOnNqKSh0LGUsbnVsbD09bj8iIjpuKSk6Y2oodGhpcy5ub2RlKCksdCl9LHByb3BlcnR5OmZ1bmN0aW9uIEVHKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/dWo6ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZGo6aGopKHQsZSkpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uIFRHKHQsZSl7dmFyIG49cGoodCsiIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIGk9ZmoodGhpcy5ub2RlKCkpLHI9LTEsbz1uLmxlbmd0aDsrK3I8bzspaWYoIWkuY29udGFpbnMobltyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/Ymo6ZT95ajp2aikobixlKSl9LHRleHQ6ZnVuY3Rpb24gQ0codCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/eGo6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P1NqOndqKSh0KSk6dGhpcy5ub2RlKCkudGV4dENvbnRlbnR9LGh0bWw6ZnVuY3Rpb24gQUcodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/TWo6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P1RqOkVqKSh0KSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxyYWlzZTpmdW5jdGlvbiBrRygpe3JldHVybiB0aGlzLmVhY2goQ2opfSxsb3dlcjpmdW5jdGlvbiBMRygpe3JldHVybiB0aGlzLmVhY2goQWopfSxhcHBlbmQ6ZnVuY3Rpb24gUEcodCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpHVSh0KTtyZXR1cm4gdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQoZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSkpfSxpbnNlcnQ6ZnVuY3Rpb24gTkcodCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkdVKHQpLGk9bnVsbD09ZT9rajoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOnFVKGUpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUobi5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSkpfSxyZW1vdmU6ZnVuY3Rpb24gSUcoKXtyZXR1cm4gdGhpcy5lYWNoKExqKX0sY2xvbmU6ZnVuY3Rpb24gUkcodCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/Tmo6UGopfSxkYXR1bTpmdW5jdGlvbiBPRyh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmZ1bmN0aW9uIHpHKHQsZSxuKXt2YXIgaSxyLG89RGoodCsiIiksYT1vLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2ZvcihzPWU/SGo6QmosbnVsbD09biYmKG49ITEpLGk9MDtpPGE7KytpKXRoaXMuZWFjaChzKG9baV0sZSxuKSk7cmV0dXJuIHRoaXN9dmFyIHM9dGhpcy5ub2RlKCkuX19vbjtpZihzKWZvcih2YXIgbCxjPTAsdT1zLmxlbmd0aDtjPHU7KytjKWZvcihpPTAsbD1zW2NdO2k8YTsrK2kpaWYoKHI9b1tpXSkudHlwZT09PWwudHlwZSYmci5uYW1lPT09bC5uYW1lKXJldHVybiBsLnZhbHVlfSxkaXNwYXRjaDpmdW5jdGlvbiBERyh0LGUpe3JldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2pqOlVqKSh0LGUpKX19LG5HLnByb3RvdHlwZS5vbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuXy5vbi5hcHBseSh0aGlzLl8sYXJndW1lbnRzKTtyZXR1cm4gdD09PXRoaXMuXz90aGlzOnR9O3ZhciBCRz17fSxIRz17fTtmdW5jdGlvbiBGRyh0KXtyZXR1cm4gbmV3IEZ1bmN0aW9uKCJkIiwicmV0dXJuIHsiK3QubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0KSsiOiBkWyIrZSsiXSJ9KSkuam9pbigiLCIpKyJ9Iil9ZnVuY3Rpb24gVkcodCl7dmFyIGU9bmV3IFJlZ0V4cCgnWyInK3QrIlxuXHJdIiksbj10LmNoYXJDb2RlQXQoMCk7ZnVuY3Rpb24gaSh0LGUpe3ZhciBpLHI9W10sbz10Lmxlbmd0aCxhPTAscz0wLGw9bzw9MCxjPSExO2Z1bmN0aW9uIHUoKXtpZihsKXJldHVybiBIRztpZihjKXJldHVybiBjPSExLEJHO3ZhciBlLGkscj1hO2lmKDM0PT09dC5jaGFyQ29kZUF0KHIpKXtmb3IoO2ErKzxvJiYzNCE9PXQuY2hhckNvZGVBdChhKXx8MzQ9PT10LmNoYXJDb2RlQXQoKythKTspO3JldHVybihlPWEpPj1vP2w9ITA6MTA9PT0oaT10LmNoYXJDb2RlQXQoYSsrKSk/Yz0hMDoxMz09PWkmJihjPSEwLDEwPT09dC5jaGFyQ29kZUF0KGEpJiYrK2EpLHQuc2xpY2UocisxLGUtMSkucmVwbGFjZSgvIiIvZywnIicpfWZvcig7YTxvOyl7aWYoMTA9PT0oaT10LmNoYXJDb2RlQXQoZT1hKyspKSljPSEwO2Vsc2UgaWYoMTM9PT1pKWM9ITAsMTA9PT10LmNoYXJDb2RlQXQoYSkmJisrYTtlbHNlIGlmKGkhPT1uKWNvbnRpbnVlO3JldHVybiB0LnNsaWNlKHIsZSl9cmV0dXJuIGw9ITAsdC5zbGljZShyLG8pfWZvcigxMD09PXQuY2hhckNvZGVBdChvLTEpJiYtLW8sMTM9PT10LmNoYXJDb2RlQXQoby0xKSYmLS1vOyhpPXUoKSkhPT1IRzspe2Zvcih2YXIgaD1bXTtpIT09QkcmJmkhPT1IRzspaC5wdXNoKGkpLGk9dSgpO2UmJm51bGw9PShoPWUoaCxzKyspKXx8ci5wdXNoKGgpfXJldHVybiByfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGUubWFwKG8pLmpvaW4odCl9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gbnVsbD09dD8iIjplLnRlc3QodCs9IiIpPyciJyt0LnJlcGxhY2UoLyIvZywnIiInKSsnIic6dH1yZXR1cm57cGFyc2U6ZnVuY3Rpb24gYSh0LGUpe3ZhciBuLHIsbz1pKHQsKGZ1bmN0aW9uKHQsaSl7aWYobilyZXR1cm4gbih0LGktMSk7cj10LG49ZT8oZnVuY3Rpb24gbyh0LGUpe3ZhciBuPUZHKHQpO3JldHVybiBmdW5jdGlvbihpLHIpe3JldHVybiBlKG4oaSkscix0KX19KSh0LGUpOkZHKHQpfSkpO3JldHVybiBvLmNvbHVtbnM9cnx8W10sb30scGFyc2VSb3dzOmksZm9ybWF0OmZ1bmN0aW9uIHMoZSxuKXtyZXR1cm4gbnVsbD09biYmKG49KGZ1bmN0aW9uIGkodCl7dmFyIGU9T2JqZWN0LmNyZWF0ZShudWxsKSxuPVtdO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2Zvcih2YXIgaSBpbiB0KWkgaW4gZXx8bi5wdXNoKGVbaV09aSl9KSksbn0pKGUpKSxbbi5tYXAobykuam9pbih0KV0uY29uY2F0KGUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvKGVbdF0pfSkpLmpvaW4odCl9KSkpLmpvaW4oIlxuIil9LGZvcm1hdFJvd3M6ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdC5tYXAocikuam9pbigiXG4iKX19fXZhciBVRz1WRygiLCIpLGpHPVVHLnBhcnNlLEdHPVVHLnBhcnNlUm93cyxXRz1VRy5mb3JtYXQscUc9VUcuZm9ybWF0Um93cyxZRz1WRygiXHQiKSxYRz1ZRy5wYXJzZSwkRz1ZRy5wYXJzZVJvd3MsS0c9WUcuZm9ybWF0LFpHPVlHLmZvcm1hdFJvd3M7ZnVuY3Rpb24gSkcodCl7cmV0dXJuKCh0Kj0yKTw9MT90KnQ6LS10KigyLXQpKzEpLzJ9ZnVuY3Rpb24gUUcodCl7cmV0dXJuKCh0Kj0yKTw9MT90KnQqdDoodC09MikqdCp0KzIpLzJ9dmFyIHRXPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIE1hdGgucG93KHQsZSl9cmV0dXJuIGU9K2Usbi5leHBvbmVudD10LG59KSgzKSxlVz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiAxLU1hdGgucG93KDEtdCxlKX1yZXR1cm4gZT0rZSxuLmV4cG9uZW50PXQsbn0pKDMpLG5XPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuKCh0Kj0yKTw9MT9NYXRoLnBvdyh0LGUpOjItTWF0aC5wb3coMi10LGUpKS8yfXJldHVybiBlPStlLG4uZXhwb25lbnQ9dCxufSkoMyksaVc9TWF0aC5QSSxyVz1pVy8yO2Z1bmN0aW9uIG9XKHQpe3JldHVybigxLU1hdGguY29zKGlXKnQpKS8yfWZ1bmN0aW9uIGFXKHQpe3JldHVybigodCo9Mik8PTE/TWF0aC5wb3coMiwxMCp0LTEwKToyLU1hdGgucG93KDIsMTAtMTAqdCkpLzJ9ZnVuY3Rpb24gc1codCl7cmV0dXJuKCh0Kj0yKTw9MT8xLU1hdGguc3FydCgxLXQqdCk6TWF0aC5zcXJ0KDEtKHQtPTIpKnQpKzEpLzJ9dmFyIGxXPTcuNTYyNTtmdW5jdGlvbiBjVyh0KXtyZXR1cm4odD0rdCk8LjM2MzYzNjM2MzYzNjM2MzY1P2xXKnQqdDp0PC43MjcyNzI3MjcyNzI3MjczP2xXKih0LT0uNTQ1NDU0NTQ1NDU0NTQ1NCkqdCsuNzU6dDwuOTA5MDkwOTA5MDkwOTA5MT9sVyoodC09LjgxODE4MTgxODE4MTgxODIpKnQrLjkzNzU6bFcqKHQtPS45NTQ1NDU0NTQ1NDU0NTQ2KSp0Ky45ODQzNzV9dmFyIHVXPTEuNzAxNTgsaFc9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gdCp0KigoZSsxKSp0LWUpfXJldHVybiBlPStlLG4ub3ZlcnNob290PXQsbn0pKHVXKSxkVz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybi0tdCp0KigoZSsxKSp0K2UpKzF9cmV0dXJuIGU9K2Usbi5vdmVyc2hvb3Q9dCxufSkodVcpLHBXPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuKCh0Kj0yKTwxP3QqdCooKGUrMSkqdC1lKToodC09MikqdCooKGUrMSkqdCtlKSsyKS8yfXJldHVybiBlPStlLG4ub3ZlcnNob290PXQsbn0pKHVXKSxmVz0yKk1hdGguUEksbVc9KGZ1bmN0aW9uIHQoZSxuKXt2YXIgaT1NYXRoLmFzaW4oMS8oZT1NYXRoLm1heCgxLGUpKSkqKG4vPWZXKTtmdW5jdGlvbiByKHQpe3JldHVybiBlKk1hdGgucG93KDIsMTAqLS10KSpNYXRoLnNpbigoaS10KS9uKX1yZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSxuKmZXKX0sci5wZXJpb2Q9ZnVuY3Rpb24obil7cmV0dXJuIHQoZSxuKX0scn0pKDEsLjMpLGdXPShmdW5jdGlvbiB0KGUsbil7dmFyIGk9TWF0aC5hc2luKDEvKGU9TWF0aC5tYXgoMSxlKSkpKihuLz1mVyk7ZnVuY3Rpb24gcih0KXtyZXR1cm4gMS1lKk1hdGgucG93KDIsLTEwKih0PSt0KSkqTWF0aC5zaW4oKHQraSkvbil9cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKGUpe3JldHVybiB0KGUsbipmVyl9LHIucGVyaW9kPWZ1bmN0aW9uKG4pe3JldHVybiB0KGUsbil9LHJ9KSgxLC4zKSxfVz0oZnVuY3Rpb24gdChlLG4pe3ZhciBpPU1hdGguYXNpbigxLyhlPU1hdGgubWF4KDEsZSkpKSoobi89ZlcpO2Z1bmN0aW9uIHIodCl7cmV0dXJuKCh0PTIqdC0xKTwwP2UqTWF0aC5wb3coMiwxMCp0KSpNYXRoLnNpbigoaS10KS9uKToyLWUqTWF0aC5wb3coMiwtMTAqdCkqTWF0aC5zaW4oKGkrdCkvbikpLzJ9cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKGUpe3JldHVybiB0KGUsbipmVyl9LHIucGVyaW9kPWZ1bmN0aW9uKG4pe3JldHVybiB0KGUsbil9LHJ9KSgxLC4zKTtmdW5jdGlvbiB5Vyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gdlcoKXtyZXR1cm4gMWUtNiooTWF0aC5yYW5kb20oKS0uNSl9ZnVuY3Rpb24gYlcodCxlLG4saSl7aWYoaXNOYU4oZSl8fGlzTmFOKG4pKXJldHVybiB0O3ZhciByLG8sYSxzLGwsYyx1LGgsZCxwPXQuX3Jvb3QsZj17ZGF0YTppfSxtPXQuX3gwLGc9dC5feTAsXz10Ll94MSx5PXQuX3kxO2lmKCFwKXJldHVybiB0Ll9yb290PWYsdDtmb3IoO3AubGVuZ3RoOylpZigoYz1lPj0obz0obStfKS8yKSk/bT1vOl89bywodT1uPj0oYT0oZyt5KS8yKSk/Zz1hOnk9YSxyPXAsIShwPXBbaD11PDwxfGNdKSlyZXR1cm4gcltoXT1mLHQ7aWYocz0rdC5feC5jYWxsKG51bGwscC5kYXRhKSxsPSt0Ll95LmNhbGwobnVsbCxwLmRhdGEpLGU9PT1zJiZuPT09bClyZXR1cm4gZi5uZXh0PXAscj9yW2hdPWY6dC5fcm9vdD1mLHQ7ZG97cj1yP3JbaF09bmV3IEFycmF5KDQpOnQuX3Jvb3Q9bmV3IEFycmF5KDQpLChjPWU+PShvPShtK18pLzIpKT9tPW86Xz1vLCh1PW4+PShhPShnK3kpLzIpKT9nPWE6eT1hfXdoaWxlKChoPXU8PDF8Yyk9PShkPShsPj1hKTw8MXxzPj1vKSk7cmV0dXJuIHJbZF09cCxyW2hdPWYsdH1mdW5jdGlvbiB4Vyh0LGUsbixpLHIpe3RoaXMubm9kZT10LHRoaXMueDA9ZSx0aGlzLnkwPW4sdGhpcy54MT1pLHRoaXMueTE9cn1mdW5jdGlvbiB3Vyh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBTVyh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBNVyh0LGUsbil7dmFyIGk9bmV3IEVXKG51bGw9PWU/d1c6ZSxudWxsPT1uP1NXOm4sTmFOLE5hTixOYU4sTmFOKTtyZXR1cm4gbnVsbD09dD9pOmkuYWRkQWxsKHQpfWZ1bmN0aW9uIEVXKHQsZSxuLGkscixvKXt0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3gwPW4sdGhpcy5feTA9aSx0aGlzLl94MT1yLHRoaXMuX3kxPW8sdGhpcy5fcm9vdD12b2lkIDB9ZnVuY3Rpb24gVFcodCl7Zm9yKHZhciBlPXtkYXRhOnQuZGF0YX0sbj1lO3Q9dC5uZXh0OyluPW4ubmV4dD17ZGF0YTp0LmRhdGF9O3JldHVybiBlfXZhciBDVz1NVy5wcm90b3R5cGU9RVcucHJvdG90eXBlO2Z1bmN0aW9uIEFXKHQpe3JldHVybiB0LngrdC52eH1mdW5jdGlvbiBrVyh0KXtyZXR1cm4gdC55K3Qudnl9Q1cuY29weT1mdW5jdGlvbigpe3ZhciB0LGUsbj1uZXcgRVcodGhpcy5feCx0aGlzLl95LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSxpPXRoaXMuX3Jvb3Q7aWYoIWkpcmV0dXJuIG47aWYoIWkubGVuZ3RoKXJldHVybiBuLl9yb290PVRXKGkpLG47Zm9yKHQ9W3tzb3VyY2U6aSx0YXJnZXQ6bi5fcm9vdD1uZXcgQXJyYXkoNCl9XTtpPXQucG9wKCk7KWZvcih2YXIgcj0wO3I8NDsrK3IpKGU9aS5zb3VyY2Vbcl0pJiYoZS5sZW5ndGg/dC5wdXNoKHtzb3VyY2U6ZSx0YXJnZXQ6aS50YXJnZXRbcl09bmV3IEFycmF5KDQpfSk6aS50YXJnZXRbcl09VFcoZSkpO3JldHVybiBufSxDVy5hZGQ9ZnVuY3Rpb24gTFcodCl7dmFyIGU9K3RoaXMuX3guY2FsbChudWxsLHQpLG49K3RoaXMuX3kuY2FsbChudWxsLHQpO3JldHVybiBiVyh0aGlzLmNvdmVyKGUsbiksZSxuLHQpfSxDVy5hZGRBbGw9ZnVuY3Rpb24gUFcodCl7dmFyIGUsbixpLHIsbz10Lmxlbmd0aCxhPW5ldyBBcnJheShvKSxzPW5ldyBBcnJheShvKSxsPTEvMCxjPTEvMCx1PS0xLzAsaD0tMS8wO2ZvcihuPTA7bjxvOysrbilpc05hTihpPSt0aGlzLl94LmNhbGwobnVsbCxlPXRbbl0pKXx8aXNOYU4ocj0rdGhpcy5feS5jYWxsKG51bGwsZSkpfHwoYVtuXT1pLHNbbl09cixpPGwmJihsPWkpLGk+dSYmKHU9aSkscjxjJiYoYz1yKSxyPmgmJihoPXIpKTtpZihsPnV8fGM+aClyZXR1cm4gdGhpcztmb3IodGhpcy5jb3ZlcihsLGMpLmNvdmVyKHUsaCksbj0wO248bzsrK24pYlcodGhpcyxhW25dLHNbbl0sdFtuXSk7cmV0dXJuIHRoaXN9LENXLmNvdmVyPWZ1bmN0aW9uIE5XKHQsZSl7aWYoaXNOYU4odD0rdCl8fGlzTmFOKGU9K2UpKXJldHVybiB0aGlzO3ZhciBuPXRoaXMuX3gwLGk9dGhpcy5feTAscj10aGlzLl94MSxvPXRoaXMuX3kxO2lmKGlzTmFOKG4pKXI9KG49TWF0aC5mbG9vcih0KSkrMSxvPShpPU1hdGguZmxvb3IoZSkpKzE7ZWxzZXtmb3IodmFyIGEscyxsPXItbixjPXRoaXMuX3Jvb3Q7bj50fHx0Pj1yfHxpPmV8fGU+PW87KXN3aXRjaChzPShlPGkpPDwxfHQ8biwoYT1uZXcgQXJyYXkoNCkpW3NdPWMsYz1hLGwqPTIscyl7Y2FzZSAwOnI9bitsLG89aStsO2JyZWFrO2Nhc2UgMTpuPXItbCxvPWkrbDticmVhaztjYXNlIDI6cj1uK2wsaT1vLWw7YnJlYWs7Y2FzZSAzOm49ci1sLGk9by1sfXRoaXMuX3Jvb3QmJnRoaXMuX3Jvb3QubGVuZ3RoJiYodGhpcy5fcm9vdD1jKX1yZXR1cm4gdGhpcy5feDA9bix0aGlzLl95MD1pLHRoaXMuX3gxPXIsdGhpcy5feTE9byx0aGlzfSxDVy5kYXRhPWZ1bmN0aW9uIElXKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMudmlzaXQoKGZ1bmN0aW9uKGUpe2lmKCFlLmxlbmd0aClkb3t0LnB1c2goZS5kYXRhKX13aGlsZShlPWUubmV4dCl9KSksdH0sQ1cuZXh0ZW50PWZ1bmN0aW9uIFJXKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuY292ZXIoK3RbMF1bMF0sK3RbMF1bMV0pLmNvdmVyKCt0WzFdWzBdLCt0WzFdWzFdKTppc05hTih0aGlzLl94MCk/dm9pZCAwOltbdGhpcy5feDAsdGhpcy5feTBdLFt0aGlzLl94MSx0aGlzLl95MV1dfSxDVy5maW5kPWZ1bmN0aW9uIE9XKHQsZSxuKXt2YXIgaSxyLG8sYSxzLGwsYyx1PXRoaXMuX3gwLGg9dGhpcy5feTAsZD10aGlzLl94MSxwPXRoaXMuX3kxLGY9W10sbT10aGlzLl9yb290O2ZvcihtJiZmLnB1c2gobmV3IHhXKG0sdSxoLGQscCkpLG51bGw9PW4/bj0xLzA6KHU9dC1uLGg9ZS1uLGQ9dCtuLHA9ZStuLG4qPW4pO2w9Zi5wb3AoKTspaWYoISghKG09bC5ub2RlKXx8KHI9bC54MCk+ZHx8KG89bC55MCk+cHx8KGE9bC54MSk8dXx8KHM9bC55MSk8aCkpaWYobS5sZW5ndGgpe3ZhciBnPShyK2EpLzIsXz0obytzKS8yO2YucHVzaChuZXcgeFcobVszXSxnLF8sYSxzKSxuZXcgeFcobVsyXSxyLF8sZyxzKSxuZXcgeFcobVsxXSxnLG8sYSxfKSxuZXcgeFcobVswXSxyLG8sZyxfKSksKGM9KGU+PV8pPDwxfHQ+PWcpJiYobD1mW2YubGVuZ3RoLTFdLGZbZi5sZW5ndGgtMV09ZltmLmxlbmd0aC0xLWNdLGZbZi5sZW5ndGgtMS1jXT1sKX1lbHNle3ZhciB5PXQtK3RoaXMuX3guY2FsbChudWxsLG0uZGF0YSksdj1lLSt0aGlzLl95LmNhbGwobnVsbCxtLmRhdGEpLGI9eSp5K3YqdjtpZihiPG4pe3ZhciB4PU1hdGguc3FydChuPWIpO3U9dC14LGg9ZS14LGQ9dCt4LHA9ZSt4LGk9bS5kYXRhfX1yZXR1cm4gaX0sQ1cucmVtb3ZlPWZ1bmN0aW9uIHpXKHQpe2lmKGlzTmFOKG89K3RoaXMuX3guY2FsbChudWxsLHQpKXx8aXNOYU4oYT0rdGhpcy5feS5jYWxsKG51bGwsdCkpKXJldHVybiB0aGlzO3ZhciBlLG4saSxyLG8sYSxzLGwsYyx1LGgsZCxwPXRoaXMuX3Jvb3QsZj10aGlzLl94MCxtPXRoaXMuX3kwLGc9dGhpcy5feDEsXz10aGlzLl95MTtpZighcClyZXR1cm4gdGhpcztpZihwLmxlbmd0aClmb3IoOzspe2lmKChjPW8+PShzPShmK2cpLzIpKT9mPXM6Zz1zLCh1PWE+PShsPShtK18pLzIpKT9tPWw6Xz1sLGU9cCwhKHA9cFtoPXU8PDF8Y10pKXJldHVybiB0aGlzO2lmKCFwLmxlbmd0aClicmVhazsoZVtoKzEmM118fGVbaCsyJjNdfHxlW2grMyYzXSkmJihuPWUsZD1oKX1mb3IoO3AuZGF0YSE9PXQ7KWlmKGk9cCwhKHA9cC5uZXh0KSlyZXR1cm4gdGhpcztyZXR1cm4ocj1wLm5leHQpJiZkZWxldGUgcC5uZXh0LGk/KHI/aS5uZXh0PXI6ZGVsZXRlIGkubmV4dCx0aGlzKTplPyhyP2VbaF09cjpkZWxldGUgZVtoXSwocD1lWzBdfHxlWzFdfHxlWzJdfHxlWzNdKSYmcD09PShlWzNdfHxlWzJdfHxlWzFdfHxlWzBdKSYmIXAubGVuZ3RoJiYobj9uW2RdPXA6dGhpcy5fcm9vdD1wKSx0aGlzKToodGhpcy5fcm9vdD1yLHRoaXMpfSxDVy5yZW1vdmVBbGw9ZnVuY3Rpb24gRFcodCl7Zm9yKHZhciBlPTAsbj10Lmxlbmd0aDtlPG47KytlKXRoaXMucmVtb3ZlKHRbZV0pO3JldHVybiB0aGlzfSxDVy5yb290PWZ1bmN0aW9uIEJXKCl7cmV0dXJuIHRoaXMuX3Jvb3R9LENXLnNpemU9ZnVuY3Rpb24gSFcoKXt2YXIgdD0wO3JldHVybiB0aGlzLnZpc2l0KChmdW5jdGlvbihlKXtpZighZS5sZW5ndGgpZG97Kyt0fXdoaWxlKGU9ZS5uZXh0KX0pKSx0fSxDVy52aXNpdD1mdW5jdGlvbiBGVyh0KXt2YXIgZSxuLGkscixvLGEscz1bXSxsPXRoaXMuX3Jvb3Q7Zm9yKGwmJnMucHVzaChuZXcgeFcobCx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO2U9cy5wb3AoKTspaWYoIXQobD1lLm5vZGUsaT1lLngwLHI9ZS55MCxvPWUueDEsYT1lLnkxKSYmbC5sZW5ndGgpe3ZhciBjPShpK28pLzIsdT0ocithKS8yOyhuPWxbM10pJiZzLnB1c2gobmV3IHhXKG4sYyx1LG8sYSkpLChuPWxbMl0pJiZzLnB1c2gobmV3IHhXKG4saSx1LGMsYSkpLChuPWxbMV0pJiZzLnB1c2gobmV3IHhXKG4sYyxyLG8sdSkpLChuPWxbMF0pJiZzLnB1c2gobmV3IHhXKG4saSxyLGMsdSkpfXJldHVybiB0aGlzfSxDVy52aXNpdEFmdGVyPWZ1bmN0aW9uIFZXKHQpe3ZhciBlLG49W10saT1bXTtmb3IodGhpcy5fcm9vdCYmbi5wdXNoKG5ldyB4Vyh0aGlzLl9yb290LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7ZT1uLnBvcCgpOyl7dmFyIHI9ZS5ub2RlO2lmKHIubGVuZ3RoKXt2YXIgbyxhPWUueDAscz1lLnkwLGw9ZS54MSxjPWUueTEsdT0oYStsKS8yLGg9KHMrYykvMjsobz1yWzBdKSYmbi5wdXNoKG5ldyB4VyhvLGEscyx1LGgpKSwobz1yWzFdKSYmbi5wdXNoKG5ldyB4VyhvLHUscyxsLGgpKSwobz1yWzJdKSYmbi5wdXNoKG5ldyB4VyhvLGEsaCx1LGMpKSwobz1yWzNdKSYmbi5wdXNoKG5ldyB4VyhvLHUsaCxsLGMpKX1pLnB1c2goZSl9Zm9yKDtlPWkucG9wKCk7KXQoZS5ub2RlLGUueDAsZS55MCxlLngxLGUueTEpO3JldHVybiB0aGlzfSxDVy54PWZ1bmN0aW9uIFVXKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl94PXQsdGhpcyk6dGhpcy5feH0sQ1cueT1mdW5jdGlvbiBqVyh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feT10LHRoaXMpOnRoaXMuX3l9O3ZhciBHVz0iJCI7ZnVuY3Rpb24gV1coKXt9ZnVuY3Rpb24gcVcodCxlKXt2YXIgbj1uZXcgV1c7aWYodCBpbnN0YW5jZW9mIFdXKXQuZWFjaCgoZnVuY3Rpb24odCxlKXtuLnNldChlLHQpfSkpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGkscj0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PWUpZm9yKDsrK3I8bzspbi5zZXQocix0W3JdKTtlbHNlIGZvcig7KytyPG87KW4uc2V0KGUoaT10W3JdLHIsdCksaSl9ZWxzZSBpZih0KWZvcih2YXIgYSBpbiB0KW4uc2V0KGEsdFthXSk7cmV0dXJuIG59ZnVuY3Rpb24gWVcoKXt9V1cucHJvdG90eXBlPXFXLnByb3RvdHlwZT17Y29uc3RydWN0b3I6V1csaGFzOmZ1bmN0aW9uKHQpe3JldHVybiBHVyt0IGluIHRoaXN9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1tHVyt0XX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXNbR1crdF09ZSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9R1crdDtyZXR1cm4gZSBpbiB0aGlzJiZkZWxldGUgdGhpc1tlXX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09R1cmJmRlbGV0ZSB0aGlzW3RdfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PUdXJiZ0LnB1c2goZS5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1HVyYmdC5wdXNoKHRoaXNbZV0pO3JldHVybiB0fSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PUdXJiZ0LnB1c2goe2tleTplLnNsaWNlKDEpLHZhbHVlOnRoaXNbZV19KTtyZXR1cm4gdH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PUdXJiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYodFswXT09PUdXKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1HVyYmdCh0aGlzW2VdLGUuc2xpY2UoMSksdGhpcyl9fTt2YXIgWFc9cVcucHJvdG90eXBlO2Z1bmN0aW9uICRXKHQpe3JldHVybiB0LmluZGV4fWZ1bmN0aW9uIEtXKHQsZSl7dmFyIG49dC5nZXQoZSk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2UpO3JldHVybiBufVlXLnByb3RvdHlwZT17Y29uc3RydWN0b3I6WVcsaGFzOlhXLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbR1crKHQrPSIiKV09dCx0aGlzfSxyZW1vdmU6WFcucmVtb3ZlLGNsZWFyOlhXLmNsZWFyLHZhbHVlczpYVy5rZXlzLHNpemU6WFcuc2l6ZSxlbXB0eTpYVy5lbXB0eSxlYWNoOlhXLmVhY2h9O3ZhciBaVz17dmFsdWU6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBKVygpe2Zvcih2YXIgdCxlPTAsbj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxuOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaXx8L1tccy5dLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK3QpO2lbdF09W119cmV0dXJuIG5ldyBRVyhpKX1mdW5jdGlvbiBRVyh0KXt0aGlzLl89dH1mdW5jdGlvbiB0cSh0LGUpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9dC5pbmRleE9mKCIuIik7aWYoaT49MCYmKG49dC5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKSx0JiYhZS5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6bn19KSl9ZnVuY3Rpb24gZXEodCxlKXtmb3IodmFyIG4saT0wLHI9dC5sZW5ndGg7aTxyOysraSlpZigobj10W2ldKS5uYW1lPT09ZSlyZXR1cm4gbi52YWx1ZX1mdW5jdGlvbiBucSh0LGUsbil7Zm9yKHZhciBpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKHRbaV0ubmFtZT09PWUpe3RbaV09WlcsdD10LnNsaWNlKDAsaSkuY29uY2F0KHQuc2xpY2UoaSsxKSk7YnJlYWt9cmV0dXJuIG51bGwhPW4mJnQucHVzaCh7bmFtZTplLHZhbHVlOm59KSx0fVFXLnByb3RvdHlwZT1KVy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlFXLG9uOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl8scj10cSh0KyIiLGkpLG89LTEsYT1yLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2lmKG51bGwhPWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIitlKTtmb3IoOysrbzxhOylpZihuPSh0PXJbb10pLnR5cGUpaVtuXT1ucShpW25dLHQubmFtZSxlKTtlbHNlIGlmKG51bGw9PWUpZm9yKG4gaW4gaSlpW25dPW5xKGlbbl0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChuPSh0PXJbb10pLnR5cGUpJiYobj1lcShpW25dLHQubmFtZSkpKXJldHVybiBufSxjb3B5OmZ1bmN0aW9uKCl7dmFyIHQ9e30sZT10aGlzLl87Zm9yKHZhciBuIGluIGUpdFtuXT1lW25dLnNsaWNlKCk7cmV0dXJuIG5ldyBRVyh0KX0sY2FsbDpmdW5jdGlvbih0LGUpe2lmKChuPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIG4saSxyPW5ldyBBcnJheShuKSxvPTA7bzxuOysrbylyW29dPWFyZ3VtZW50c1tvKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKG89MCxuPShpPXRoaXMuX1t0XSkubGVuZ3RoO288bjsrK28paVtvXS52YWx1ZS5hcHBseShlLHIpfSxhcHBseTpmdW5jdGlvbih0LGUsbil7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3IodmFyIGk9dGhpcy5fW3RdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3IpaVtyXS52YWx1ZS5hcHBseShlLG4pfX07dmFyIGlxLHJxLG9xPTAsYXE9MCxzcT0wLGxxPTAsY3E9MCx1cT0wLGhxPSJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLGRxPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIHBxKCl7cmV0dXJuIGNxfHwoZHEoZnEpLGNxPWhxLm5vdygpK3VxKX1mdW5jdGlvbiBmcSgpe2NxPTB9ZnVuY3Rpb24gbXEoKXt0aGlzLl9jYWxsPXRoaXMuX3RpbWU9dGhpcy5fbmV4dD1udWxsfWZ1bmN0aW9uIGdxKHQsZSxuKXt2YXIgaT1uZXcgbXE7cmV0dXJuIGkucmVzdGFydCh0LGUsbiksaX1mdW5jdGlvbiBfcSgpe2NxPShscT1ocS5ub3coKSkrdXEsb3E9YXE9MDt0cnl7IShmdW5jdGlvbiB0KCl7cHEoKSwrK29xO2Zvcih2YXIgdCxlPWlxO2U7KSh0PWNxLWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS1vcX0pKCl9ZmluYWxseXtvcT0wLChmdW5jdGlvbiBlKCl7Zm9yKHZhciB0LGUsbj1pcSxpPTEvMDtuOyluLl9jYWxsPyhpPm4uX3RpbWUmJihpPW4uX3RpbWUpLHQ9bixuPW4uX25leHQpOihlPW4uX25leHQsbi5fbmV4dD1udWxsLG49dD90Ll9uZXh0PWU6aXE9ZSk7cnE9dCx2cShpKX0pKCksY3E9MH19ZnVuY3Rpb24geXEoKXt2YXIgdD1ocS5ub3coKSxlPXQtbHE7ZT4xZTMmJih1cS09ZSxscT10KX1mdW5jdGlvbiB2cSh0KXtvcXx8KGFxJiYoYXE9Y2xlYXJUaW1lb3V0KGFxKSksdC1jcT4yND8odDwxLzAmJihhcT1zZXRUaW1lb3V0KF9xLHQtaHEubm93KCktdXEpKSxzcSYmKHNxPWNsZWFySW50ZXJ2YWwoc3EpKSk6KHNxfHwobHE9aHEubm93KCksc3E9c2V0SW50ZXJ2YWwoeXEsMWUzKSksb3E9MSxkcShfcSkpKX1mdW5jdGlvbiBicSh0KXtyZXR1cm4gdC54fWZ1bmN0aW9uIHhxKHQpe3JldHVybiB0Lnl9bXEucHJvdG90eXBlPWdxLnByb3RvdHlwZT17Y29uc3RydWN0b3I6bXEscmVzdGFydDpmdW5jdGlvbih0LGUsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtuPShudWxsPT1uP3BxKCk6K24pKyhudWxsPT1lPzA6K2UpLHRoaXMuX25leHR8fHJxPT09dGhpc3x8KHJxP3JxLl9uZXh0PXRoaXM6aXE9dGhpcyxycT10aGlzKSx0aGlzLl9jYWxsPXQsdGhpcy5fdGltZT1uLHZxKCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLHZxKCkpfX07dmFyIHdxLFNxPU1hdGguUEkqKDMtTWF0aC5zcXJ0KDUpKTtmdW5jdGlvbiBNcSh0LGUpe2lmKChuPSh0PWU/dC50b0V4cG9uZW50aWFsKGUtMSk6dC50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoImUiKSk8MClyZXR1cm4gbnVsbDt2YXIgbixpPXQuc2xpY2UoMCxuKTtyZXR1cm5baS5sZW5ndGg+MT9pWzBdK2kuc2xpY2UoMik6aSwrdC5zbGljZShuKzEpXX1mdW5jdGlvbiBFcSh0KXtyZXR1cm4odD1NcShNYXRoLmFicyh0KSkpP3RbMV06TmFOfWZ1bmN0aW9uIFRxKHQsZSl7dmFyIG49TXEodCxlKTtpZighbilyZXR1cm4gdCsiIjt2YXIgaT1uWzBdLHI9blsxXTtyZXR1cm4gcjwwPyIwLiIrbmV3IEFycmF5KC1yKS5qb2luKCIwIikraTppLmxlbmd0aD5yKzE/aS5zbGljZSgwLHIrMSkrIi4iK2kuc2xpY2UocisxKTppK25ldyBBcnJheShyLWkubGVuZ3RoKzIpLmpvaW4oIjAiKX12YXIgQ3E9eyIiOmZ1bmN0aW9uIEFxKHQsZSl7dDpmb3IodmFyIG4saT0odD10LnRvUHJlY2lzaW9uKGUpKS5sZW5ndGgscj0xLG89LTE7cjxpOysrcilzd2l0Y2godFtyXSl7Y2FzZSIuIjpvPW49cjticmVhaztjYXNlIjAiOjA9PT1vJiYobz1yKSxuPXI7YnJlYWs7Y2FzZSJlIjpicmVhayB0O2RlZmF1bHQ6bz4wJiYobz0wKX1yZXR1cm4gbz4wP3Quc2xpY2UoMCxvKSt0LnNsaWNlKG4rMSk6dH0sIiUiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuKDEwMCp0KS50b0ZpeGVkKGUpfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiB0KyIifSxkOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDEwKX0sZTpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRXhwb25lbnRpYWwoZSl9LGY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0ZpeGVkKGUpfSxnOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9QcmVjaXNpb24oZSl9LG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24odCxlKXtyZXR1cm4gVHEoMTAwKnQsZSl9LHI6VHEsczpmdW5jdGlvbiBrcSh0LGUpe3ZhciBuPU1xKHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIGk9blswXSxyPW5bMV0sbz1yLSh3cT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihyLzMpKSkpKzEsYT1pLmxlbmd0aDtyZXR1cm4gbz09PWE/aTpvPmE/aStuZXcgQXJyYXkoby1hKzEpLmpvaW4oIjAiKTpvPjA/aS5zbGljZSgwLG8pKyIuIitpLnNsaWNlKG8pOiIwLiIrbmV3IEFycmF5KDEtbykuam9pbigiMCIpK01xKHQsTWF0aC5tYXgoMCxlK28tMSkpWzBdfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX19LExxPS9eKD86KC4pPyhbPD49Xl0pKT8oWytcLVwoIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KFthLXolXSk/JC9pO2Z1bmN0aW9uIFBxKHQpe3JldHVybiBuZXcgTnEodCl9ZnVuY3Rpb24gTnEodCl7aWYoIShlPUxxLmV4ZWModCkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrdCk7dmFyIGUsbj1lWzFdfHwiICIsaT1lWzJdfHwiPiIscj1lWzNdfHwiLSIsbz1lWzRdfHwiIixhPSEhZVs1XSxzPWVbNl0mJitlWzZdLGw9ISFlWzddLGM9ZVs4XSYmK2VbOF0uc2xpY2UoMSksdT1lWzldfHwiIjsibiI9PT11PyhsPSEwLHU9ImciKTpDcVt1XXx8KHU9IiIpLChhfHwiMCI9PT1uJiYiPSI9PT1pKSYmKGE9ITAsbj0iMCIsaT0iPSIpLHRoaXMuZmlsbD1uLHRoaXMuYWxpZ249aSx0aGlzLnNpZ249cix0aGlzLnN5bWJvbD1vLHRoaXMuemVybz1hLHRoaXMud2lkdGg9cyx0aGlzLmNvbW1hPWwsdGhpcy5wcmVjaXNpb249Yyx0aGlzLnR5cGU9dX1mdW5jdGlvbiBJcSh0KXtyZXR1cm4gdH1QcS5wcm90b3R5cGU9TnEucHJvdG90eXBlLE5xLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz8iMCI6IiIpKyhudWxsPT10aGlzLndpZHRoPyIiOk1hdGgubWF4KDEsMHx0aGlzLndpZHRoKSkrKHRoaXMuY29tbWE/IiwiOiIiKSsobnVsbD09dGhpcy5wcmVjaXNpb24/IiI6Ii4iK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpK3RoaXMudHlwZX07dmFyIFJxLE9xLHpxLERxPVsieSIsInoiLCJhIiwiZiIsInAiLCJuIiwiwrUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXTtmdW5jdGlvbiBCcSh0KXt2YXIgZT10Lmdyb3VwaW5nJiZ0LnRob3VzYW5kcz8oZnVuY3Rpb24gbih0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe2Zvcih2YXIgcj1uLmxlbmd0aCxvPVtdLGE9MCxzPXRbMF0sbD0wO3I+MCYmcz4wJiYobCtzKzE+aSYmKHM9TWF0aC5tYXgoMSxpLWwpKSxvLnB1c2gobi5zdWJzdHJpbmcoci09cyxyK3MpKSwhKChsKz1zKzEpPmkpKTspcz10W2E9KGErMSkldC5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKGUpfX0pKHQuZ3JvdXBpbmcsdC50aG91c2FuZHMpOklxLGk9dC5jdXJyZW5jeSxyPXQuZGVjaW1hbCxvPXQubnVtZXJhbHM/KGZ1bmN0aW9uIGEodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1swLTldL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0WytlXX0pKX19KSh0Lm51bWVyYWxzKTpJcSxzPXQucGVyY2VudHx8IiUiO2Z1bmN0aW9uIGwodCl7dmFyIG49KHQ9UHEodCkpLmZpbGwsYT10LmFsaWduLGw9dC5zaWduLGM9dC5zeW1ib2wsdT10Lnplcm8saD10LndpZHRoLGQ9dC5jb21tYSxwPXQucHJlY2lzaW9uLGY9dC50eXBlLG09IiQiPT09Yz9pWzBdOiIjIj09PWMmJi9bYm94WF0vLnRlc3QoZik/IjAiK2YudG9Mb3dlckNhc2UoKToiIixnPSIkIj09PWM/aVsxXTovWyVwXS8udGVzdChmKT9zOiIiLF89Q3FbZl0seT0hZnx8L1tkZWZncHJzJV0vLnRlc3QoZik7ZnVuY3Rpb24gdih0KXt2YXIgaSxzLGMsdj1tLGI9ZztpZigiYyI9PT1mKWI9Xyh0KStiLHQ9IiI7ZWxzZXt2YXIgeD0odD0rdCk8MDtpZih0PV8oTWF0aC5hYnModCkscCkseCYmMD09K3QmJih4PSExKSx2PSh4PyIoIj09PWw/bDoiLSI6Ii0iPT09bHx8IigiPT09bD8iIjpsKSt2LGI9KCJzIj09PWY/RHFbOCt3cS8zXToiIikrYisoeCYmIigiPT09bD8iKSI6IiIpLHkpZm9yKGk9LTEscz10Lmxlbmd0aDsrK2k8czspaWYoNDg+KGM9dC5jaGFyQ29kZUF0KGkpKXx8Yz41Nyl7Yj0oNDY9PT1jP3IrdC5zbGljZShpKzEpOnQuc2xpY2UoaSkpK2IsdD10LnNsaWNlKDAsaSk7YnJlYWt9fWQmJiF1JiYodD1lKHQsMS8wKSk7dmFyIHc9di5sZW5ndGgrdC5sZW5ndGgrYi5sZW5ndGgsUz13PGg/bmV3IEFycmF5KGgtdysxKS5qb2luKG4pOiIiO3N3aXRjaChkJiZ1JiYodD1lKFMrdCxTLmxlbmd0aD9oLWIubGVuZ3RoOjEvMCksUz0iIiksYSl7Y2FzZSI8Ijp0PXYrdCtiK1M7YnJlYWs7Y2FzZSI9Ijp0PXYrUyt0K2I7YnJlYWs7Y2FzZSJeIjp0PVMuc2xpY2UoMCx3PVMubGVuZ3RoPj4xKSt2K3QrYitTLnNsaWNlKHcpO2JyZWFrO2RlZmF1bHQ6dD1TK3YrdCtifXJldHVybiBvKHQpfXJldHVybiBwPW51bGw9PXA/Zj82OjEyOi9bZ3Byc10vLnRlc3QoZik/TWF0aC5tYXgoMSxNYXRoLm1pbigyMSxwKSk6TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxwKSksdi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0KyIifSx2fXJldHVybntmb3JtYXQ6bCxmb3JtYXRQcmVmaXg6ZnVuY3Rpb24gYyh0LGUpe3ZhciBuPWwoKCh0PVBxKHQpKS50eXBlPSJmIix0KSksaT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihFcShlKS8zKSkpLHI9TWF0aC5wb3coMTAsLWkpLG89RHFbOCtpLzNdO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbihyKnQpK299fX19ZnVuY3Rpb24gSHEodCl7cmV0dXJuIFJxPUJxKHQpLE9xPVJxLmZvcm1hdCx6cT1ScS5mb3JtYXRQcmVmaXgsUnF9ZnVuY3Rpb24gRnEoKXtyZXR1cm4gbmV3IFZxfWZ1bmN0aW9uIFZxKCl7dGhpcy5yZXNldCgpfUhxKHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXX0pLFZxLnByb3RvdHlwZT17Y29uc3RydWN0b3I6VnEscmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLnM9dGhpcy50PTB9LGFkZDpmdW5jdGlvbih0KXtqcShVcSx0LHRoaXMudCksanEodGhpcyxVcS5zLHRoaXMucyksdGhpcy5zP3RoaXMudCs9VXEudDp0aGlzLnM9VXEudH0sdmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN9fTt2YXIgVXE9bmV3IFZxO2Z1bmN0aW9uIGpxKHQsZSxuKXt2YXIgaT10LnM9ZStuLHI9aS1lO3QudD1lLShpLXIpKyhuLXIpfXZhciBHcT0xZS02LFdxPU1hdGguUEkscXE9V3EvMixZcT1XcS80LFhxPTIqV3EsJHE9MTgwL1dxLEtxPVdxLzE4MCxacT1NYXRoLmFicyxKcT1NYXRoLmF0YW4sUXE9TWF0aC5hdGFuMix0WT1NYXRoLmNvcyxlWT1NYXRoLmNlaWwsblk9TWF0aC5leHAsaVk9TWF0aC5sb2csclk9TWF0aC5wb3csb1k9TWF0aC5zaW4sYVk9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9LHNZPU1hdGguc3FydCxsWT1NYXRoLnRhbjtmdW5jdGlvbiBjWSh0KXtyZXR1cm4gdD4xPzA6dDwtMT9XcTpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gdVkodCl7cmV0dXJuIHQ+MT9xcTp0PC0xPy1xcTpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gaFkodCl7cmV0dXJuKHQ9b1kodC8yKSkqdH1mdW5jdGlvbiBkWSgpe31mdW5jdGlvbiBwWSh0LGUpe3QmJm1ZLmhhc093blByb3BlcnR5KHQudHlwZSkmJm1ZW3QudHlwZV0odCxlKX12YXIgZlk9e0ZlYXR1cmU6ZnVuY3Rpb24odCxlKXtwWSh0Lmdlb21ldHJ5LGUpfSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmZlYXR1cmVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspcFkobltpXS5nZW9tZXRyeSxlKX19LG1ZPXtTcGhlcmU6ZnVuY3Rpb24odCxlKXtlLnNwaGVyZSgpfSxQb2ludDpmdW5jdGlvbih0LGUpe2UucG9pbnQoKHQ9dC5jb29yZGluYXRlcylbMF0sdFsxXSx0WzJdKX0sTXVsdGlQb2ludDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspZS5wb2ludCgodD1uW2ldKVswXSx0WzFdLHRbMl0pfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7Z1kodC5jb29yZGluYXRlcyxlLDApfSxNdWx0aUxpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5jb29yZGluYXRlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWdZKG5baV0sZSwwKX0sUG9seWdvbjpmdW5jdGlvbih0LGUpe19ZKHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspX1kobltpXSxlKX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZ2VvbWV0cmllcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KXBZKG5baV0sZSl9fTtmdW5jdGlvbiBnWSh0LGUsbil7dmFyIGkscj0tMSxvPXQubGVuZ3RoLW47Zm9yKGUubGluZVN0YXJ0KCk7KytyPG87KWUucG9pbnQoKGk9dFtyXSlbMF0saVsxXSxpWzJdKTtlLmxpbmVFbmQoKX1mdW5jdGlvbiBfWSh0LGUpe3ZhciBuPS0xLGk9dC5sZW5ndGg7Zm9yKGUucG9seWdvblN0YXJ0KCk7KytuPGk7KWdZKHRbbl0sZSwxKTtlLnBvbHlnb25FbmQoKX1mdW5jdGlvbiB5WSh0LGUpe3QmJmZZLmhhc093blByb3BlcnR5KHQudHlwZSk/ZllbdC50eXBlXSh0LGUpOnBZKHQsZSl9dmFyIHZZLGJZLHhZLHdZLFNZLE1ZPUZxKCksRVk9RnEoKSxUWT17cG9pbnQ6ZFksbGluZVN0YXJ0OmRZLGxpbmVFbmQ6ZFkscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7TVkucmVzZXQoKSxUWS5saW5lU3RhcnQ9Q1ksVFkubGluZUVuZD1BWX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciB0PStNWTtFWS5hZGQodDwwP1hxK3Q6dCksdGhpcy5saW5lU3RhcnQ9dGhpcy5saW5lRW5kPXRoaXMucG9pbnQ9ZFl9LHNwaGVyZTpmdW5jdGlvbigpe0VZLmFkZChYcSl9fTtmdW5jdGlvbiBDWSgpe1RZLnBvaW50PWtZfWZ1bmN0aW9uIEFZKCl7TFkodlksYlkpfWZ1bmN0aW9uIGtZKHQsZSl7VFkucG9pbnQ9TFksdlk9dCxiWT1lLHhZPXQqPUtxLHdZPXRZKGU9KGUqPUtxKS8yK1lxKSxTWT1vWShlKX1mdW5jdGlvbiBMWSh0LGUpe3ZhciBuPSh0Kj1LcSkteFksaT1uPj0wPzE6LTEscj1pKm4sbz10WShlPShlKj1LcSkvMitZcSksYT1vWShlKSxzPVNZKmEsbD13WSpvK3MqdFkociksYz1zKmkqb1kocik7TVkuYWRkKFFxKGMsbCkpLHhZPXQsd1k9byxTWT1hfWZ1bmN0aW9uIFBZKHQpe3JldHVybltRcSh0WzFdLHRbMF0pLHVZKHRbMl0pXX1mdW5jdGlvbiBOWSh0KXt2YXIgZT10WzBdLG49dFsxXSxpPXRZKG4pO3JldHVybltpKnRZKGUpLGkqb1koZSksb1kobildfWZ1bmN0aW9uIElZKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdfWZ1bmN0aW9uIFJZKHQsZSl7cmV0dXJuW3RbMV0qZVsyXS10WzJdKmVbMV0sdFsyXSplWzBdLXRbMF0qZVsyXSx0WzBdKmVbMV0tdFsxXSplWzBdXX1mdW5jdGlvbiBPWSh0LGUpe3RbMF0rPWVbMF0sdFsxXSs9ZVsxXSx0WzJdKz1lWzJdfWZ1bmN0aW9uIHpZKHQsZSl7cmV0dXJuW3RbMF0qZSx0WzFdKmUsdFsyXSplXX1mdW5jdGlvbiBEWSh0KXt2YXIgZT1zWSh0WzBdKnRbMF0rdFsxXSp0WzFdK3RbMl0qdFsyXSk7dFswXS89ZSx0WzFdLz1lLHRbMl0vPWV9dmFyIEJZLEhZLEZZLFZZLFVZLGpZLEdZLFdZLHFZLFlZLFhZLCRZLEtZLFpZLEpZLFFZLHRYLGVYLG5YLGlYLHJYLG9YLGFYLHNYLGxYLGNYLHVYPUZxKCksaFg9e3BvaW50OmRYLGxpbmVTdGFydDpmWCxsaW5lRW5kOm1YLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2hYLnBvaW50PWdYLGhYLmxpbmVTdGFydD1fWCxoWC5saW5lRW5kPXlYLHVYLnJlc2V0KCksVFkucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtUWS5wb2x5Z29uRW5kKCksaFgucG9pbnQ9ZFgsaFgubGluZVN0YXJ0PWZYLGhYLmxpbmVFbmQ9bVgsTVk8MD8oQlk9LShGWT0xODApLEhZPS0oVlk9OTApKTp1WD5HcT9WWT05MDp1WDwtMWUtNiYmKEhZPS05MCksWVlbMF09QlksWVlbMV09Rll9fTtmdW5jdGlvbiBkWCh0LGUpe3FZLnB1c2goWVk9W0JZPXQsRlk9dF0pLGU8SFkmJihIWT1lKSxlPlZZJiYoVlk9ZSl9ZnVuY3Rpb24gcFgodCxlKXt2YXIgbj1OWShbdCpLcSxlKktxXSk7aWYoV1kpe3ZhciBpPVJZKFdZLG4pLHI9UlkoW2lbMV0sLWlbMF0sMF0saSk7RFkocikscj1QWShyKTt2YXIgbyxhPXQtVVkscz1hPjA/MTotMSxsPXJbMF0qJHEqcyxjPVpxKGEpPjE4MDtjXihzKlVZPGwmJmw8cyp0KT8obz1yWzFdKiRxKT5WWSYmKFZZPW8pOmNeKHMqVVk8KGw9KGwrMzYwKSUzNjAtMTgwKSYmbDxzKnQpPyhvPS1yWzFdKiRxKTxIWSYmKEhZPW8pOihlPEhZJiYoSFk9ZSksZT5WWSYmKFZZPWUpKSxjP3Q8VVk/dlgoQlksdCk+dlgoQlksRlkpJiYoRlk9dCk6dlgodCxGWSk+dlgoQlksRlkpJiYoQlk9dCk6Rlk+PUJZPyh0PEJZJiYoQlk9dCksdD5GWSYmKEZZPXQpKTp0PlVZP3ZYKEJZLHQpPnZYKEJZLEZZKSYmKEZZPXQpOnZYKHQsRlkpPnZYKEJZLEZZKSYmKEJZPXQpfWVsc2UgcVkucHVzaChZWT1bQlk9dCxGWT10XSk7ZTxIWSYmKEhZPWUpLGU+VlkmJihWWT1lKSxXWT1uLFVZPXR9ZnVuY3Rpb24gZlgoKXtoWC5wb2ludD1wWH1mdW5jdGlvbiBtWCgpe1lZWzBdPUJZLFlZWzFdPUZZLGhYLnBvaW50PWRYLFdZPW51bGx9ZnVuY3Rpb24gZ1godCxlKXtpZihXWSl7dmFyIG49dC1VWTt1WC5hZGQoWnEobik+MTgwP24rKG4+MD8zNjA6LTM2MCk6bil9ZWxzZSBqWT10LEdZPWU7VFkucG9pbnQodCxlKSxwWCh0LGUpfWZ1bmN0aW9uIF9YKCl7VFkubGluZVN0YXJ0KCl9ZnVuY3Rpb24geVgoKXtnWChqWSxHWSksVFkubGluZUVuZCgpLFpxKHVYKT5HcSYmKEJZPS0oRlk9MTgwKSksWVlbMF09QlksWVlbMV09RlksV1k9bnVsbH1mdW5jdGlvbiB2WCh0LGUpe3JldHVybihlLT10KTwwP2UrMzYwOmV9ZnVuY3Rpb24gYlgodCxlKXtyZXR1cm4gdFswXS1lWzBdfWZ1bmN0aW9uIHhYKHQsZSl7cmV0dXJuIHRbMF08PXRbMV0/dFswXTw9ZSYmZTw9dFsxXTplPHRbMF18fHRbMV08ZX12YXIgd1g9e3NwaGVyZTpkWSxwb2ludDpTWCxsaW5lU3RhcnQ6RVgsbGluZUVuZDpBWCxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt3WC5saW5lU3RhcnQ9a1gsd1gubGluZUVuZD1MWH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3dYLmxpbmVTdGFydD1FWCx3WC5saW5lRW5kPUFYfX07ZnVuY3Rpb24gU1godCxlKXt0Kj1LcTt2YXIgbj10WShlKj1LcSk7TVgobip0WSh0KSxuKm9ZKHQpLG9ZKGUpKX1mdW5jdGlvbiBNWCh0LGUsbil7KytYWSxLWSs9KHQtS1kpL1hZLFpZKz0oZS1aWSkvWFksSlkrPShuLUpZKS9YWX1mdW5jdGlvbiBFWCgpe3dYLnBvaW50PVRYfWZ1bmN0aW9uIFRYKHQsZSl7dCo9S3E7dmFyIG49dFkoZSo9S3EpO3NYPW4qdFkodCksbFg9bipvWSh0KSxjWD1vWShlKSx3WC5wb2ludD1DWCxNWChzWCxsWCxjWCl9ZnVuY3Rpb24gQ1godCxlKXt0Kj1LcTt2YXIgbj10WShlKj1LcSksaT1uKnRZKHQpLHI9bipvWSh0KSxvPW9ZKGUpLGE9UXEoc1koKGE9bFgqby1jWCpyKSphKyhhPWNYKmktc1gqbykqYSsoYT1zWCpyLWxYKmkpKmEpLHNYKmkrbFgqcitjWCpvKTskWSs9YSxRWSs9YSooc1grKHNYPWkpKSx0WCs9YSoobFgrKGxYPXIpKSxlWCs9YSooY1grKGNYPW8pKSxNWChzWCxsWCxjWCl9ZnVuY3Rpb24gQVgoKXt3WC5wb2ludD1TWH1mdW5jdGlvbiBrWCgpe3dYLnBvaW50PVBYfWZ1bmN0aW9uIExYKCl7Tlgob1gsYVgpLHdYLnBvaW50PVNYfWZ1bmN0aW9uIFBYKHQsZSl7b1g9dCxhWD1lLHQqPUtxLGUqPUtxLHdYLnBvaW50PU5YO3ZhciBuPXRZKGUpO3NYPW4qdFkodCksbFg9bipvWSh0KSxjWD1vWShlKSxNWChzWCxsWCxjWCl9ZnVuY3Rpb24gTlgodCxlKXt0Kj1LcTt2YXIgbj10WShlKj1LcSksaT1uKnRZKHQpLHI9bipvWSh0KSxvPW9ZKGUpLGE9bFgqby1jWCpyLHM9Y1gqaS1zWCpvLGw9c1gqci1sWCppLGM9c1koYSphK3MqcytsKmwpLHU9dVkoYyksaD1jJiYtdS9jO25YKz1oKmEsaVgrPWgqcyxyWCs9aCpsLCRZKz11LFFZKz11KihzWCsoc1g9aSkpLHRYKz11KihsWCsobFg9cikpLGVYKz11KihjWCsoY1g9bykpLE1YKHNYLGxYLGNYKX1mdW5jdGlvbiBJWCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gUlgodCxlKXtmdW5jdGlvbiBuKG4saSl7cmV0dXJuIG49dChuLGkpLGUoblswXSxuWzFdKX1yZXR1cm4gdC5pbnZlcnQmJmUuaW52ZXJ0JiYobi5pbnZlcnQ9ZnVuY3Rpb24obixpKXtyZXR1cm4obj1lLmludmVydChuLGkpKSYmdC5pbnZlcnQoblswXSxuWzFdKX0pLG59ZnVuY3Rpb24gT1godCxlKXtyZXR1cm5bdD5XcT90LVhxOnQ8LVdxP3QrWHE6dCxlXX1mdW5jdGlvbiB6WCh0LGUsbil7cmV0dXJuKHQlPVhxKT9lfHxuP1JYKEJYKHQpLEhYKGUsbikpOkJYKHQpOmV8fG4/SFgoZSxuKTpPWH1mdW5jdGlvbiBEWCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm5bKGUrPXQpPldxP2UtWHE6ZTwtV3E/ZStYcTplLG5dfX1mdW5jdGlvbiBCWCh0KXt2YXIgZT1EWCh0KTtyZXR1cm4gZS5pbnZlcnQ9RFgoLXQpLGV9ZnVuY3Rpb24gSFgodCxlKXt2YXIgbj10WSh0KSxpPW9ZKHQpLHI9dFkoZSksbz1vWShlKTtmdW5jdGlvbiBhKHQsZSl7dmFyIGE9dFkoZSkscz10WSh0KSphLGw9b1kodCkqYSxjPW9ZKGUpLHU9YypuK3MqaTtyZXR1cm5bUXEobCpyLXUqbyxzKm4tYyppKSx1WSh1KnIrbCpvKV19cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIGE9dFkoZSkscz10WSh0KSphLGw9b1kodCkqYSxjPW9ZKGUpLHU9YypyLWwqbztyZXR1cm5bUXEobCpyK2MqbyxzKm4rdSppKSx1WSh1Km4tcyppKV19LGF9ZnVuY3Rpb24gRlgodCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4oZT10KGVbMF0qS3EsZVsxXSpLcSkpWzBdKj0kcSxlWzFdKj0kcSxlfXJldHVybiB0PXpYKHRbMF0qS3EsdFsxXSpLcSx0Lmxlbmd0aD4yP3RbMl0qS3E6MCksZS5pbnZlcnQ9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9dC5pbnZlcnQoZVswXSpLcSxlWzFdKktxKSlbMF0qPSRxLGVbMV0qPSRxLGV9LGV9ZnVuY3Rpb24gVlgodCxlLG4saSxyLG8pe2lmKG4pe3ZhciBhPXRZKGUpLHM9b1koZSksbD1pKm47bnVsbD09cj8ocj1lK2kqWHEsbz1lLWwvMik6KHI9VVgoYSxyKSxvPVVYKGEsbyksKGk+MD9yPG86cj5vKSYmKHIrPWkqWHEpKTtmb3IodmFyIGMsdT1yO2k+MD91Pm86dTxvO3UtPWwpYz1QWShbYSwtcyp0WSh1KSwtcypvWSh1KV0pLHQucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gVVgodCxlKXsoZT1OWShlKSlbMF0tPXQsRFkoZSk7dmFyIG49Y1koLWVbMV0pO3JldHVybigoLWVbMl08MD8tbjpuKStYcS1HcSklWHF9ZnVuY3Rpb24galgoKXt2YXIgdCxlPVtdO3JldHVybntwb2ludDpmdW5jdGlvbihlLG4pe3QucHVzaChbZSxuXSl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2UucHVzaCh0PVtdKX0sbGluZUVuZDpkWSxyZWpvaW46ZnVuY3Rpb24oKXtlLmxlbmd0aD4xJiZlLnB1c2goZS5wb3AoKS5jb25jYXQoZS5zaGlmdCgpKSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBuPWU7cmV0dXJuIGU9W10sdD1udWxsLG59fX1mdW5jdGlvbiBHWCh0LGUpe3JldHVybiBacSh0WzBdLWVbMF0pPEdxJiZacSh0WzFdLWVbMV0pPEdxfWZ1bmN0aW9uIFdYKHQsZSxuLGkpe3RoaXMueD10LHRoaXMuej1lLHRoaXMubz1uLHRoaXMuZT1pLHRoaXMudj0hMSx0aGlzLm49dGhpcy5wPW51bGx9ZnVuY3Rpb24gcVgodCxlLG4saSxyKXt2YXIgbyxhLHM9W10sbD1bXTtpZih0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCEoKGU9dC5sZW5ndGgtMSk8PTApKXt2YXIgZSxuLGk9dFswXSxhPXRbZV07aWYoR1goaSxhKSl7Zm9yKHIubGluZVN0YXJ0KCksbz0wO288ZTsrK28pci5wb2ludCgoaT10W29dKVswXSxpWzFdKTtyLmxpbmVFbmQoKX1lbHNlIHMucHVzaChuPW5ldyBXWChpLHQsbnVsbCwhMCkpLGwucHVzaChuLm89bmV3IFdYKGksbnVsbCxuLCExKSkscy5wdXNoKG49bmV3IFdYKGEsdCxudWxsLCExKSksbC5wdXNoKG4ubz1uZXcgV1goYSxudWxsLG4sITApKX19KSkscy5sZW5ndGgpe2ZvcihsLnNvcnQoZSksWVgocyksWVgobCksbz0wLGE9bC5sZW5ndGg7bzxhOysrbylsW29dLmU9bj0hbjtmb3IodmFyIGMsdSxoPXNbMF07Oyl7Zm9yKHZhciBkPWgscD0hMDtkLnY7KWlmKChkPWQubik9PT1oKXJldHVybjtjPWQueixyLmxpbmVTdGFydCgpO2Rve2lmKGQudj1kLm8udj0hMCxkLmUpe2lmKHApZm9yKG89MCxhPWMubGVuZ3RoO288YTsrK28pci5wb2ludCgodT1jW29dKVswXSx1WzFdKTtlbHNlIGkoZC54LGQubi54LDEscik7ZD1kLm59ZWxzZXtpZihwKWZvcihvPShjPWQucC56KS5sZW5ndGgtMTtvPj0wOy0tbylyLnBvaW50KCh1PWNbb10pWzBdLHVbMV0pO2Vsc2UgaShkLngsZC5wLngsLTEscik7ZD1kLnB9Yz0oZD1kLm8pLnoscD0hcH13aGlsZSghZC52KTtyLmxpbmVFbmQoKX19fWZ1bmN0aW9uIFlYKHQpe2lmKGU9dC5sZW5ndGgpe2Zvcih2YXIgZSxuLGk9MCxyPXRbMF07KytpPGU7KXIubj1uPXRbaV0sbi5wPXIscj1uO3Iubj1uPXRbMF0sbi5wPXJ9fU9YLmludmVydD1PWDt2YXIgWFg9RnEoKTtmdW5jdGlvbiAkWCh0LGUpe3ZhciBuPWVbMF0saT1lWzFdLHI9W29ZKG4pLC10WShuKSwwXSxvPTAsYT0wO1hYLnJlc2V0KCk7Zm9yKHZhciBzPTAsbD10Lmxlbmd0aDtzPGw7KytzKWlmKHU9KGM9dFtzXSkubGVuZ3RoKWZvcih2YXIgYyx1LGg9Y1t1LTFdLGQ9aFswXSxwPWhbMV0vMitZcSxmPW9ZKHApLG09dFkocCksZz0wO2c8dTsrK2csZD15LGY9YixtPXgsaD1fKXt2YXIgXz1jW2ddLHk9X1swXSx2PV9bMV0vMitZcSxiPW9ZKHYpLHg9dFkodiksdz15LWQsUz13Pj0wPzE6LTEsTT1TKncsRT1NPldxLFQ9ZipiO2lmKFhYLmFkZChRcShUKlMqb1koTSksbSp4K1QqdFkoTSkpKSxvKz1FP3crUypYcTp3LEVeZD49bl55Pj1uKXt2YXIgQz1SWShOWShoKSxOWShfKSk7RFkoQyk7dmFyIEE9UlkocixDKTtEWShBKTt2YXIgaz0oRV53Pj0wPy0xOjEpKnVZKEFbMl0pOyhpPmt8fGk9PT1rJiYoQ1swXXx8Q1sxXSkpJiYoYSs9RV53Pj0wPzE6LTEpfX1yZXR1cm4obzwtMWUtNnx8bzxHcSYmWFg8LTFlLTYpXjEmYX1mdW5jdGlvbiBLWCh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBaWCh0LGUsbil7dD0rdCxlPStlLG49KHI9YXJndW1lbnRzLmxlbmd0aCk8Mj8oZT10LHQ9MCwxKTpyPDM/MTorbjtmb3IodmFyIGk9LTEscj0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChlLXQpL24pKSxvPW5ldyBBcnJheShyKTsrK2k8cjspb1tpXT10K2kqbjtyZXR1cm4gb31mdW5jdGlvbiBKWCh0KXtmb3IodmFyIGUsbixpLHI9dC5sZW5ndGgsbz0tMSxhPTA7KytvPHI7KWErPXRbb10ubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShhKTstLXI+PTA7KWZvcihlPShpPXRbcl0pLmxlbmd0aDstLWU+PTA7KW5bLS1hXT1pW2VdO3JldHVybiBufWZ1bmN0aW9uIFFYKHQsZSxuLGkpe3JldHVybiBmdW5jdGlvbihyKXt2YXIgbyxhLHMsbD1lKHIpLGM9algoKSx1PWUoYyksaD0hMSxkPXtwb2ludDpwLGxpbmVTdGFydDptLGxpbmVFbmQ6Zyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtkLnBvaW50PV8sZC5saW5lU3RhcnQ9eSxkLmxpbmVFbmQ9dixhPVtdLG89W119LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtkLnBvaW50PXAsZC5saW5lU3RhcnQ9bSxkLmxpbmVFbmQ9ZyxhPUpYKGEpO3ZhciB0PSRYKG8saSk7YS5sZW5ndGg/KGh8fChyLnBvbHlnb25TdGFydCgpLGg9ITApLHFYKGEsZSQsdCxuLHIpKTp0JiYoaHx8KHIucG9seWdvblN0YXJ0KCksaD0hMCksci5saW5lU3RhcnQoKSxuKG51bGwsbnVsbCwxLHIpLHIubGluZUVuZCgpKSxoJiYoci5wb2x5Z29uRW5kKCksaD0hMSksYT1vPW51bGx9LHNwaGVyZTpmdW5jdGlvbigpe3IucG9seWdvblN0YXJ0KCksci5saW5lU3RhcnQoKSxuKG51bGwsbnVsbCwxLHIpLHIubGluZUVuZCgpLHIucG9seWdvbkVuZCgpfX07ZnVuY3Rpb24gcChlLG4pe3QoZSxuKSYmci5wb2ludChlLG4pfWZ1bmN0aW9uIGYodCxlKXtsLnBvaW50KHQsZSl9ZnVuY3Rpb24gbSgpe2QucG9pbnQ9ZixsLmxpbmVTdGFydCgpfWZ1bmN0aW9uIGcoKXtkLnBvaW50PXAsbC5saW5lRW5kKCl9ZnVuY3Rpb24gXyh0LGUpe3MucHVzaChbdCxlXSksdS5wb2ludCh0LGUpfWZ1bmN0aW9uIHkoKXt1LmxpbmVTdGFydCgpLHM9W119ZnVuY3Rpb24gdigpe18oc1swXVswXSxzWzBdWzFdKSx1LmxpbmVFbmQoKTt2YXIgdCxlLG4saSxsPXUuY2xlYW4oKSxkPWMucmVzdWx0KCkscD1kLmxlbmd0aDtpZihzLnBvcCgpLG8ucHVzaChzKSxzPW51bGwscClpZigxJmwpe2lmKChlPShuPWRbMF0pLmxlbmd0aC0xKT4wKXtmb3IoaHx8KHIucG9seWdvblN0YXJ0KCksaD0hMCksci5saW5lU3RhcnQoKSx0PTA7dDxlOysrdClyLnBvaW50KChpPW5bdF0pWzBdLGlbMV0pO3IubGluZUVuZCgpfX1lbHNlIHA+MSYmMiZsJiZkLnB1c2goZC5wb3AoKS5jb25jYXQoZC5zaGlmdCgpKSksYS5wdXNoKGQuZmlsdGVyKHQkKSl9cmV0dXJuIGR9fWZ1bmN0aW9uIHQkKHQpe3JldHVybiB0Lmxlbmd0aD4xfWZ1bmN0aW9uIGUkKHQsZSl7cmV0dXJuKCh0PXQueClbMF08MD90WzFdLXFxLUdxOnFxLXRbMV0pLSgoZT1lLngpWzBdPDA/ZVsxXS1xcS1HcTpxcS1lWzFdKX0hKGZ1bmN0aW9uIG4kKHQpezE9PT10Lmxlbmd0aCYmKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIEtYKHQoZSksbil9fSkodCkpfSkoS1gpO3ZhciBpJD1RWCgoZnVuY3Rpb24oKXtyZXR1cm4hMH0pLChmdW5jdGlvbiByJCh0KXt2YXIgZSxuPU5hTixpPU5hTixyPU5hTjtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKSxlPTF9LHBvaW50OmZ1bmN0aW9uKG8sYSl7dmFyIHM9bz4wP1dxOi1XcSxsPVpxKG8tbik7WnEobC1XcSk8R3E/KHQucG9pbnQobixpPShpK2EpLzI+MD9xcTotcXEpLHQucG9pbnQocixpKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQocyxpKSx0LnBvaW50KG8saSksZT0wKTpyIT09cyYmbD49V3EmJihacShuLXIpPEdxJiYobi09cipHcSksWnEoby1zKTxHcSYmKG8tPXMqR3EpLGk9KGZ1bmN0aW9uIGModCxlLG4saSl7dmFyIHIsbyxhPW9ZKHQtbik7cmV0dXJuIFpxKGEpPkdxP0pxKChvWShlKSoobz10WShpKSkqb1kobiktb1koaSkqKHI9dFkoZSkpKm9ZKHQpKS8ocipvKmEpKTooZStpKS8yfSkobixpLG8sYSksdC5wb2ludChyLGkpLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludChzLGkpLGU9MCksdC5wb2ludChuPW8saT1hKSxyPXN9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0LmxpbmVFbmQoKSxuPWk9TmFOfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiAyLWV9fX0pLChmdW5jdGlvbiBvJCh0LGUsbixpKXt2YXIgcjtpZihudWxsPT10KWkucG9pbnQoLVdxLHI9bipxcSksaS5wb2ludCgwLHIpLGkucG9pbnQoV3EsciksaS5wb2ludChXcSwwKSxpLnBvaW50KFdxLC1yKSxpLnBvaW50KDAsLXIpLGkucG9pbnQoLVdxLC1yKSxpLnBvaW50KC1XcSwwKSxpLnBvaW50KC1XcSxyKTtlbHNlIGlmKFpxKHRbMF0tZVswXSk+R3Epe3ZhciBvPXRbMF08ZVswXT9XcTotV3E7aS5wb2ludCgtbyxyPW4qby8yKSxpLnBvaW50KDAsciksaS5wb2ludChvLHIpfWVsc2UgaS5wb2ludChlWzBdLGVbMV0pfSksWy1XcSwtcXFdKTtmdW5jdGlvbiBhJCh0KXt2YXIgZT10WSh0KSxuPTYqS3EsaT1lPjAscj1acShlKT5HcTtmdW5jdGlvbiBvKHQsbil7cmV0dXJuIHRZKHQpKnRZKG4pPmV9ZnVuY3Rpb24gYSh0LG4saSl7dmFyIHI9WzEsMCwwXSxvPVJZKE5ZKHQpLE5ZKG4pKSxhPUlZKG8sbykscz1vWzBdLGw9YS1zKnM7aWYoIWwpcmV0dXJuIWkmJnQ7dmFyIGM9ZSphL2wsdT0tZSpzL2wsaD1SWShyLG8pLGQ9elkocixjKTtPWShkLHpZKG8sdSkpO3ZhciBwPWgsZj1JWShkLHApLG09SVkocCxwKSxnPWYqZi1tKihJWShkLGQpLTEpO2lmKCEoZzwwKSl7dmFyIF89c1koZykseT16WShwLCgtZi1fKS9tKTtpZihPWSh5LGQpLHk9UFkoeSksIWkpcmV0dXJuIHk7dmFyIHYsYj10WzBdLHg9blswXSx3PXRbMV0sUz1uWzFdO3g8YiYmKHY9YixiPXgseD12KTt2YXIgTT14LWIsRT1acShNLVdxKTxHcTtpZighRSYmUzx3JiYodj13LHc9UyxTPXYpLEV8fE08R3E/RT93K1M+MF55WzFdPChacSh5WzBdLWIpPEdxP3c6Uyk6dzw9eVsxXSYmeVsxXTw9UzpNPldxXihiPD15WzBdJiZ5WzBdPD14KSl7dmFyIFQ9elkocCwoLWYrXykvbSk7cmV0dXJuIE9ZKFQsZCksW3ksUFkoVCldfX19ZnVuY3Rpb24gcyhlLG4pe3ZhciByPWk/dDpXcS10LG89MDtyZXR1cm4gZTwtcj9vfD0xOmU+ciYmKG98PTIpLG48LXI/b3w9NDpuPnImJihvfD04KSxvfXJldHVybiBRWChvLChmdW5jdGlvbiBsKHQpe3ZhciBlLG4sbCxjLHU7cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe2M9bD0hMSx1PTF9LHBvaW50OmZ1bmN0aW9uKGgsZCl7dmFyIHAsZj1baCxkXSxtPW8oaCxkKSxnPWk/bT8wOnMoaCxkKTptP3MoaCsoaDwwP1dxOi1XcSksZCk6MDtpZighZSYmKGM9bD1tKSYmdC5saW5lU3RhcnQoKSxtIT09bCYmKCEocD1hKGUsZikpfHxHWChlLHApfHxHWChmLHApKSYmKGZbMF0rPUdxLGZbMV0rPUdxLG09byhmWzBdLGZbMV0pKSxtIT09bCl1PTAsbT8odC5saW5lU3RhcnQoKSxwPWEoZixlKSx0LnBvaW50KHBbMF0scFsxXSkpOihwPWEoZSxmKSx0LnBvaW50KHBbMF0scFsxXSksdC5saW5lRW5kKCkpLGU9cDtlbHNlIGlmKHImJmUmJmlebSl7dmFyIF87ZyZufHwhKF89YShmLGUsITApKXx8KHU9MCxpPyh0LmxpbmVTdGFydCgpLHQucG9pbnQoX1swXVswXSxfWzBdWzFdKSx0LnBvaW50KF9bMV1bMF0sX1sxXVsxXSksdC5saW5lRW5kKCkpOih0LnBvaW50KF9bMV1bMF0sX1sxXVsxXSksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KF9bMF1bMF0sX1swXVsxXSkpKX0hbXx8ZSYmR1goZSxmKXx8dC5wb2ludChmWzBdLGZbMV0pLGU9ZixsPW0sbj1nfSxsaW5lRW5kOmZ1bmN0aW9uKCl7bCYmdC5saW5lRW5kKCksZT1udWxsfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiB1fChjJiZsKTw8MX19fSksKGZ1bmN0aW9uIGMoZSxpLHIsbyl7Vlgobyx0LG4scixlLGkpfSksaT9bMCwtdF06Wy1XcSx0LVdxXSl9dmFyIHMkPTFlOSxsJD0tcyQ7ZnVuY3Rpb24gYyQodCxlLG4saSl7ZnVuY3Rpb24gcihyLG8pe3JldHVybiB0PD1yJiZyPD1uJiZlPD1vJiZvPD1pfWZ1bmN0aW9uIG8ocixvLHMsYyl7dmFyIHU9MCxoPTA7aWYobnVsbD09cnx8KHU9YShyLHMpKSE9PShoPWEobyxzKSl8fGwocixvKTwwXnM+MClkb3tjLnBvaW50KDA9PT11fHwzPT09dT90Om4sdT4xP2k6ZSl9d2hpbGUoKHU9KHUrcys0KSU0KSE9PWgpO2Vsc2UgYy5wb2ludChvWzBdLG9bMV0pfWZ1bmN0aW9uIGEoaSxyKXtyZXR1cm4gWnEoaVswXS10KTxHcT9yPjA/MDozOlpxKGlbMF0tbik8R3E/cj4wPzI6MTpacShpWzFdLWUpPEdxP3I+MD8xOjA6cj4wPzM6Mn1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIGwodC54LGUueCl9ZnVuY3Rpb24gbCh0LGUpe3ZhciBuPWEodCwxKSxpPWEoZSwxKTtyZXR1cm4gbiE9PWk/bi1pOjA9PT1uP2VbMV0tdFsxXToxPT09bj90WzBdLWVbMF06Mj09PW4/dFsxXS1lWzFdOmVbMF0tdFswXX1yZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGwsYyx1LGgsZCxwLGYsbSxnLF8seSx2PWEsYj1qWCgpLHg9e3BvaW50OlQsbGluZVN0YXJ0OmZ1bmN0aW9uIHcoKXt4LnBvaW50PUMsYyYmYy5wdXNoKHU9W10pLF89ITAsZz0hMSxmPW09TmFOfSxsaW5lRW5kOmZ1bmN0aW9uIFMoKXtsJiYoQyhoLGQpLHAmJmcmJmIucmVqb2luKCksbC5wdXNoKGIucmVzdWx0KCkpKSx4LnBvaW50PVQsZyYmdi5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbiBNKCl7dj1iLGw9W10sYz1bXSx5PSEwfSxwb2x5Z29uRW5kOmZ1bmN0aW9uIEUoKXt2YXIgZT0oZnVuY3Rpb24gbigpe2Zvcih2YXIgZT0wLG49MCxyPWMubGVuZ3RoO248cjsrK24pZm9yKHZhciBvLGEscz1jW25dLGw9MSx1PXMubGVuZ3RoLGg9c1swXSxkPWhbMF0scD1oWzFdO2w8dTsrK2wpbz1kLGE9cCxkPShoPXNbbF0pWzBdLHA9aFsxXSxhPD1pP3A+aSYmKGQtbykqKGktYSk+KHAtYSkqKHQtbykmJisrZTpwPD1pJiYoZC1vKSooaS1hKTwocC1hKSoodC1vKSYmLS1lO3JldHVybiBlfSkoKSxyPXkmJmUsaD0obD1KWChsKSkubGVuZ3RoOyhyfHxoKSYmKGEucG9seWdvblN0YXJ0KCksciYmKGEubGluZVN0YXJ0KCksbyhudWxsLG51bGwsMSxhKSxhLmxpbmVFbmQoKSksaCYmcVgobCxzLGUsbyxhKSxhLnBvbHlnb25FbmQoKSksdj1hLGw9Yz11PW51bGx9fTtmdW5jdGlvbiBUKHQsZSl7cih0LGUpJiZ2LnBvaW50KHQsZSl9ZnVuY3Rpb24gQyhvLGEpe3ZhciBzPXIobyxhKTtpZihjJiZ1LnB1c2goW28sYV0pLF8paD1vLGQ9YSxwPXMsXz0hMSxzJiYodi5saW5lU3RhcnQoKSx2LnBvaW50KG8sYSkpO2Vsc2UgaWYocyYmZyl2LnBvaW50KG8sYSk7ZWxzZXt2YXIgbD1bZj1NYXRoLm1heChsJCxNYXRoLm1pbihzJCxmKSksbT1NYXRoLm1heChsJCxNYXRoLm1pbihzJCxtKSldLGI9W289TWF0aC5tYXgobCQsTWF0aC5taW4ocyQsbykpLGE9TWF0aC5tYXgobCQsTWF0aC5taW4ocyQsYSkpXTshKGZ1bmN0aW9uIHgodCxlLG4saSxyLG8pe3ZhciBhLHM9dFswXSxsPXRbMV0sYz0wLHU9MSxoPWVbMF0tcyxkPWVbMV0tbDtpZihhPW4tcyxofHwhKGE+MCkpe2lmKGEvPWgsaDwwKXtpZihhPGMpcmV0dXJuO2E8dSYmKHU9YSl9ZWxzZSBpZihoPjApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1pZihhPXItcyxofHwhKGE8MCkpe2lmKGEvPWgsaDwwKXtpZihhPnUpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihoPjApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1pZihhPWktbCxkfHwhKGE+MCkpe2lmKGEvPWQsZDwwKXtpZihhPGMpcmV0dXJuO2E8dSYmKHU9YSl9ZWxzZSBpZihkPjApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1pZihhPW8tbCxkfHwhKGE8MCkpe2lmKGEvPWQsZDwwKXtpZihhPnUpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihkPjApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1yZXR1cm4gYz4wJiYodFswXT1zK2MqaCx0WzFdPWwrYypkKSx1PDEmJihlWzBdPXMrdSpoLGVbMV09bCt1KmQpLCEwfX19fX0pKGwsYix0LGUsbixpKT9zJiYodi5saW5lU3RhcnQoKSx2LnBvaW50KG8sYSkseT0hMSk6KGd8fCh2LmxpbmVTdGFydCgpLHYucG9pbnQobFswXSxsWzFdKSksdi5wb2ludChiWzBdLGJbMV0pLHN8fHYubGluZUVuZCgpLHk9ITEpfWY9byxtPWEsZz1zfXJldHVybiB4fX12YXIgdSQsaCQsZCQscCQ9RnEoKSxmJD17c3BoZXJlOmRZLHBvaW50OmRZLGxpbmVTdGFydDpmdW5jdGlvbiBtJCgpe2YkLnBvaW50PV8kLGYkLmxpbmVFbmQ9ZyR9LGxpbmVFbmQ6ZFkscG9seWdvblN0YXJ0OmRZLHBvbHlnb25FbmQ6ZFl9O2Z1bmN0aW9uIGckKCl7ZiQucG9pbnQ9ZiQubGluZUVuZD1kWX1mdW5jdGlvbiBfJCh0LGUpe3UkPXQqPUtxLGgkPW9ZKGUqPUtxKSxkJD10WShlKSxmJC5wb2ludD15JH1mdW5jdGlvbiB5JCh0LGUpe3QqPUtxO3ZhciBuPW9ZKGUqPUtxKSxpPXRZKGUpLHI9WnEodC11JCksbz10WShyKSxhPWkqb1kocikscz1kJCpuLWgkKmkqbyxsPWgkKm4rZCQqaSpvO3AkLmFkZChRcShzWShhKmErcypzKSxsKSksdSQ9dCxoJD1uLGQkPWl9ZnVuY3Rpb24gdiQodCl7cmV0dXJuIHAkLnJlc2V0KCkseVkodCxmJCksK3AkfXZhciBiJD1bbnVsbCxudWxsXSx4JD17dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6YiR9O2Z1bmN0aW9uIHckKHQsZSl7cmV0dXJuIGIkWzBdPXQsYiRbMV09ZSx2JCh4JCl9dmFyIFMkPXtGZWF0dXJlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEUkKHQuZ2VvbWV0cnksZSl9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZmVhdHVyZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylpZihFJChuW2ldLmdlb21ldHJ5LGUpKXJldHVybiEwO3JldHVybiExfX0sTSQ9e1NwaGVyZTpmdW5jdGlvbigpe3JldHVybiEwfSxQb2ludDpmdW5jdGlvbih0LGUpe3JldHVybiBUJCh0LmNvb3JkaW5hdGVzLGUpfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylpZihUJChuW2ldLGUpKXJldHVybiEwO3JldHVybiExfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEMkKHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspaWYoQyQobltpXSxlKSlyZXR1cm4hMDtyZXR1cm4hMX0sUG9seWdvbjpmdW5jdGlvbih0LGUpe3JldHVybiBBJCh0LmNvb3JkaW5hdGVzLGUpfSxNdWx0aVBvbHlnb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5jb29yZGluYXRlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKEEkKG5baV0sZSkpcmV0dXJuITA7cmV0dXJuITF9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10Lmdlb21ldHJpZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylpZihFJChuW2ldLGUpKXJldHVybiEwO3JldHVybiExfX07ZnVuY3Rpb24gRSQodCxlKXtyZXR1cm4hKCF0fHwhTSQuaGFzT3duUHJvcGVydHkodC50eXBlKSkmJk0kW3QudHlwZV0odCxlKX1mdW5jdGlvbiBUJCh0LGUpe3JldHVybiAwPT09dyQodCxlKX1mdW5jdGlvbiBDJCh0LGUpe3ZhciBuPXckKHRbMF0sdFsxXSk7cmV0dXJuIHckKHRbMF0sZSkrdyQoZSx0WzFdKTw9bitHcX1mdW5jdGlvbiBBJCh0LGUpe3JldHVybiEhJFgodC5tYXAoayQpLEwkKGUpKX1mdW5jdGlvbiBrJCh0KXtyZXR1cm4odD10Lm1hcChMJCkpLnBvcCgpLHR9ZnVuY3Rpb24gTCQodCl7cmV0dXJuW3RbMF0qS3EsdFsxXSpLcV19ZnVuY3Rpb24gUCQodCxlLG4pe3ZhciBpPVpYKHQsZS1HcSxuKS5jb25jYXQoZSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuW3QsZV19KSl9fWZ1bmN0aW9uIE4kKHQsZSxuKXt2YXIgaT1aWCh0LGUtR3EsbikuY29uY2F0KGUpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybltlLHRdfSkpfX1mdW5jdGlvbiBJJCgpe3ZhciB0LGUsbixpLHIsbyxhLHMsbCxjLHUsaCxkPTEwLHA9ZCxmPTkwLG09MzYwLGc9Mi41O2Z1bmN0aW9uIF8oKXtyZXR1cm57dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczp5KCl9fWZ1bmN0aW9uIHkoKXtyZXR1cm4gWlgoZVkoaS9mKSpmLG4sZikubWFwKHUpLmNvbmNhdChaWChlWShzL20pKm0sYSxtKS5tYXAoaCkpLmNvbmNhdChaWChlWShlL2QpKmQsdCxkKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBacSh0JWYpPkdxfSkpLm1hcChsKSkuY29uY2F0KFpYKGVZKG8vcCkqcCxyLHApLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIFpxKHQlbSk+R3F9KSkubWFwKGMpKX1yZXR1cm4gXy5saW5lcz1mdW5jdGlvbigpe3JldHVybiB5KCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm57dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dH19KSl9LF8ub3V0bGluZT1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbdShpKS5jb25jYXQoaChhKS5zbGljZSgxKSx1KG4pLnJldmVyc2UoKS5zbGljZSgxKSxoKHMpLnJldmVyc2UoKS5zbGljZSgxKSldfX0sXy5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/Xy5leHRlbnRNYWpvcih0KS5leHRlbnRNaW5vcih0KTpfLmV4dGVudE1pbm9yKCl9LF8uZXh0ZW50TWFqb3I9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9K3RbMF1bMV0sYT0rdFsxXVsxXSwoaT0rdFswXVswXSk+KG49K3RbMV1bMF0pJiYodD1pLGk9bixuPXQpLHM+YSYmKHQ9cyxzPWEsYT10KSxfLnByZWNpc2lvbihnKSk6W1tpLHNdLFtuLGFdXX0sXy5leHRlbnRNaW5vcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0rblswXVsxXSxyPStuWzFdWzFdLChlPStuWzBdWzBdKT4odD0rblsxXVswXSkmJihuPWUsZT10LHQ9biksbz5yJiYobj1vLG89cixyPW4pLF8ucHJlY2lzaW9uKGcpKTpbW2Usb10sW3Qscl1dfSxfLnN0ZXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/Xy5zdGVwTWFqb3IodCkuc3RlcE1pbm9yKHQpOl8uc3RlcE1pbm9yKCl9LF8uc3RlcE1ham9yPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPSt0WzBdLG09K3RbMV0sXyk6W2YsbV19LF8uc3RlcE1pbm9yPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPSt0WzBdLHA9K3RbMV0sXyk6W2QscF19LF8ucHJlY2lzaW9uPWZ1bmN0aW9uKGQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPStkLGw9UCQobyxyLDkwKSxjPU4kKGUsdCxnKSx1PVAkKHMsYSw5MCksaD1OJChpLG4sZyksXyk6Z30sXy5leHRlbnRNYWpvcihbWy0xODAsLTg5Ljk5OTk5OV0sWzE4MCw4OS45OTk5OTldXSkuZXh0ZW50TWlub3IoW1stMTgwLC04MC4wMDAwMDFdLFsxODAsODAuMDAwMDAxXV0pfWZ1bmN0aW9uIFIkKHQpe3JldHVybiB0fXZhciBPJCx6JCxEJCxCJCxIJD1GcSgpLEYkPUZxKCksViQ9e3BvaW50OmRZLGxpbmVTdGFydDpkWSxsaW5lRW5kOmRZLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe1YkLmxpbmVTdGFydD1VJCxWJC5saW5lRW5kPVckfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7ViQubGluZVN0YXJ0PVYkLmxpbmVFbmQ9ViQucG9pbnQ9ZFksSCQuYWRkKFpxKEYkKSksRiQucmVzZXQoKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9SCQvMjtyZXR1cm4gSCQucmVzZXQoKSx0fX07ZnVuY3Rpb24gVSQoKXtWJC5wb2ludD1qJH1mdW5jdGlvbiBqJCh0LGUpe1YkLnBvaW50PUckLE8kPUQkPXQseiQ9QiQ9ZX1mdW5jdGlvbiBHJCh0LGUpe0YkLmFkZChCJCp0LUQkKmUpLEQkPXQsQiQ9ZX1mdW5jdGlvbiBXJCgpe0ckKE8kLHokKX12YXIgcSQsWSQsWCQsJCQsSyQ9MS8wLFokPUskLEokPS1LJCxRJD1KJCx0Sz17cG9pbnQ6ZnVuY3Rpb24gZUsodCxlKXt0PEskJiYoSyQ9dCksdD5KJCYmKEokPXQpLGU8WiQmJihaJD1lKSxlPlEkJiYoUSQ9ZSl9LGxpbmVTdGFydDpkWSxsaW5lRW5kOmRZLHBvbHlnb25TdGFydDpkWSxwb2x5Z29uRW5kOmRZLHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVtbSyQsWiRdLFtKJCxRJF1dO3JldHVybiBKJD1RJD0tKFokPUskPTEvMCksdH19LG5LPTAsaUs9MCxySz0wLG9LPTAsYUs9MCxzSz0wLGxLPTAsY0s9MCx1Sz0wLGhLPXtwb2ludDpkSyxsaW5lU3RhcnQ6cEssbGluZUVuZDpnSyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtoSy5saW5lU3RhcnQ9X0ssaEsubGluZUVuZD15S30scG9seWdvbkVuZDpmdW5jdGlvbigpe2hLLnBvaW50PWRLLGhLLmxpbmVTdGFydD1wSyxoSy5saW5lRW5kPWdLfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD11Sz9bbEsvdUssY0svdUtdOnNLP1tvSy9zSyxhSy9zS106cks/W25LL3JLLGlLL3JLXTpbTmFOLE5hTl07cmV0dXJuIG5LPWlLPXJLPW9LPWFLPXNLPWxLPWNLPXVLPTAsdH19O2Z1bmN0aW9uIGRLKHQsZSl7bksrPXQsaUsrPWUsKytyS31mdW5jdGlvbiBwSygpe2hLLnBvaW50PWZLfWZ1bmN0aW9uIGZLKHQsZSl7aEsucG9pbnQ9bUssZEsoWCQ9dCwkJD1lKX1mdW5jdGlvbiBtSyh0LGUpe3ZhciBuPXQtWCQsaT1lLSQkLHI9c1kobipuK2kqaSk7b0srPXIqKFgkK3QpLzIsYUsrPXIqKCQkK2UpLzIsc0srPXIsZEsoWCQ9dCwkJD1lKX1mdW5jdGlvbiBnSygpe2hLLnBvaW50PWRLfWZ1bmN0aW9uIF9LKCl7aEsucG9pbnQ9dkt9ZnVuY3Rpb24geUsoKXtiSyhxJCxZJCl9ZnVuY3Rpb24gdksodCxlKXtoSy5wb2ludD1iSyxkSyhxJD1YJD10LFkkPSQkPWUpfWZ1bmN0aW9uIGJLKHQsZSl7dmFyIG49dC1YJCxpPWUtJCQscj1zWShuKm4raSppKTtvSys9ciooWCQrdCkvMixhSys9ciooJCQrZSkvMixzSys9cixsSys9KHI9JCQqdC1YJCplKSooWCQrdCksY0srPXIqKCQkK2UpLHVLKz0zKnIsZEsoWCQ9dCwkJD1lKX1mdW5jdGlvbiB4Syh0KXt0aGlzLl9jb250ZXh0PXR9eEsucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmFkaXVzPXQsdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKSx0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpO2JyZWFrO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5tb3ZlVG8odCt0aGlzLl9yYWRpdXMsZSksdGhpcy5fY29udGV4dC5hcmModCxlLHRoaXMuX3JhZGl1cywwLFhxKX19LHJlc3VsdDpkWX07dmFyIHdLLFNLLE1LLEVLLFRLLENLPUZxKCksQUs9e3BvaW50OmRZLGxpbmVTdGFydDpmdW5jdGlvbigpe0FLLnBvaW50PWtLfSxsaW5lRW5kOmZ1bmN0aW9uKCl7d0smJkxLKFNLLE1LKSxBSy5wb2ludD1kWX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7d0s9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt3Sz1udWxsfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD0rQ0s7cmV0dXJuIENLLnJlc2V0KCksdH19O2Z1bmN0aW9uIGtLKHQsZSl7QUsucG9pbnQ9TEssU0s9RUs9dCxNSz1USz1lfWZ1bmN0aW9uIExLKHQsZSl7Q0suYWRkKHNZKChFSy09dCkqRUsrKFRLLT1lKSpUSykpLEVLPXQsVEs9ZX1mdW5jdGlvbiBQSygpe3RoaXMuX3N0cmluZz1bXX1mdW5jdGlvbiBOSyh0KXtyZXR1cm4ibTAsIit0KyJhIit0KyIsIit0KyIgMCAxLDEgMCwiKy0yKnQrImEiK3QrIiwiK3QrIiAwIDEsMSAwLCIrMip0KyJ6In1mdW5jdGlvbiBJSyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49bmV3IFJLO2Zvcih2YXIgaSBpbiB0KW5baV09dFtpXTtyZXR1cm4gbi5zdHJlYW09ZSxufX1mdW5jdGlvbiBSSygpe31mdW5jdGlvbiBPSyh0LGUsbil7dmFyIGk9dC5jbGlwRXh0ZW50JiZ0LmNsaXBFeHRlbnQoKTtyZXR1cm4gdC5zY2FsZSgxNTApLnRyYW5zbGF0ZShbMCwwXSksbnVsbCE9aSYmdC5jbGlwRXh0ZW50KG51bGwpLHlZKG4sdC5zdHJlYW0odEspKSxlKHRLLnJlc3VsdCgpKSxudWxsIT1pJiZ0LmNsaXBFeHRlbnQoaSksdH1mdW5jdGlvbiB6Syh0LGUsbil7cmV0dXJuIE9LKHQsKGZ1bmN0aW9uKG4pe3ZhciBpPWVbMV1bMF0tZVswXVswXSxyPWVbMV1bMV0tZVswXVsxXSxvPU1hdGgubWluKGkvKG5bMV1bMF0tblswXVswXSksci8oblsxXVsxXS1uWzBdWzFdKSksYT0rZVswXVswXSsoaS1vKihuWzFdWzBdK25bMF1bMF0pKS8yLHM9K2VbMF1bMV0rKHItbyooblsxXVsxXStuWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCpvKS50cmFuc2xhdGUoW2Esc10pfSksbil9ZnVuY3Rpb24gREsodCxlLG4pe3JldHVybiB6Syh0LFtbMCwwXSxlXSxuKX1mdW5jdGlvbiBCSyh0LGUsbil7cmV0dXJuIE9LKHQsKGZ1bmN0aW9uKG4pe3ZhciBpPStlLHI9aS8oblsxXVswXS1uWzBdWzBdKSxvPShpLXIqKG5bMV1bMF0rblswXVswXSkpLzIsYT0tcipuWzBdWzFdO3Quc2NhbGUoMTUwKnIpLnRyYW5zbGF0ZShbbyxhXSl9KSxuKX1mdW5jdGlvbiBISyh0LGUsbil7cmV0dXJuIE9LKHQsKGZ1bmN0aW9uKG4pe3ZhciBpPStlLHI9aS8oblsxXVsxXS1uWzBdWzFdKSxvPS1yKm5bMF1bMF0sYT0oaS1yKihuWzFdWzFdK25bMF1bMV0pKS8yO3Quc2NhbGUoMTUwKnIpLnRyYW5zbGF0ZShbbyxhXSl9KSxuKX1QSy5wcm90b3R5cGU9e19yYWRpdXM6NC41LF9jaXJjbGU6TksoNC41KSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4odD0rdCkhPT10aGlzLl9yYWRpdXMmJih0aGlzLl9yYWRpdXM9dCx0aGlzLl9jaXJjbGU9bnVsbCksdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fc3RyaW5nLnB1c2goIloiKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fc3RyaW5nLnB1c2goIk0iLHQsIiwiLGUpLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3N0cmluZy5wdXNoKCJMIix0LCIsIixlKTticmVhaztkZWZhdWx0Om51bGw9PXRoaXMuX2NpcmNsZSYmKHRoaXMuX2NpcmNsZT1OSyh0aGlzLl9yYWRpdXMpKSx0aGlzLl9zdHJpbmcucHVzaCgiTSIsdCwiLCIsZSx0aGlzLl9jaXJjbGUpfX0scmVzdWx0OmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RyaW5nLmxlbmd0aCl7dmFyIHQ9dGhpcy5fc3RyaW5nLmpvaW4oIiIpO3JldHVybiB0aGlzLl9zdHJpbmc9W10sdH1yZXR1cm4gbnVsbH19LFJLLnByb3RvdHlwZT17Y29uc3RydWN0b3I6UksscG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLnN0cmVhbS5wb2ludCh0LGUpfSxzcGhlcmU6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvbkVuZCgpfX07dmFyIEZLPXRZKDMwKktxKTtmdW5jdGlvbiBWSyh0LGUpe3JldHVybitlPyhmdW5jdGlvbiBuKHQsZSl7ZnVuY3Rpb24gbihpLHIsbyxhLHMsbCxjLHUsaCxkLHAsZixtLGcpe3ZhciBfPWMtaSx5PXUtcix2PV8qXyt5Knk7aWYodj40KmUmJm0tLSl7dmFyIGI9YStkLHg9cytwLHc9bCtmLFM9c1koYipiK3gqeCt3KncpLE09dVkody89UyksRT1acShacSh3KS0xKTxHcXx8WnEoby1oKTxHcT8obytoKS8yOlFxKHgsYiksVD10KEUsTSksQz1UWzBdLEE9VFsxXSxrPUMtaSxMPUEtcixQPXkqay1fKkw7KFAqUC92PmV8fFpxKChfKmsreSpMKS92LS41KT4uM3x8YSpkK3MqcCtsKmY8RkspJiYobihpLHIsbyxhLHMsbCxDLEEsRSxiLz1TLHgvPVMsdyxtLGcpLGcucG9pbnQoQyxBKSxuKEMsQSxFLGIseCx3LGMsdSxoLGQscCxmLG0sZykpfX1yZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGkscixvLGEscyxsLGMsdSxoLGQscCxmLG09e3BvaW50OmcsbGluZVN0YXJ0Ol8sbGluZUVuZDp2LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2UucG9seWdvblN0YXJ0KCksbS5saW5lU3RhcnQ9Yn0scG9seWdvbkVuZDpmdW5jdGlvbigpe2UucG9seWdvbkVuZCgpLG0ubGluZVN0YXJ0PV99fTtmdW5jdGlvbiBnKG4saSl7bj10KG4saSksZS5wb2ludChuWzBdLG5bMV0pfWZ1bmN0aW9uIF8oKXt1PU5hTixtLnBvaW50PXksZS5saW5lU3RhcnQoKX1mdW5jdGlvbiB5KGkscil7dmFyIG89TlkoW2kscl0pLGE9dChpLHIpO24odSxoLGMsZCxwLGYsdT1hWzBdLGg9YVsxXSxjPWksZD1vWzBdLHA9b1sxXSxmPW9bMl0sMTYsZSksZS5wb2ludCh1LGgpfWZ1bmN0aW9uIHYoKXttLnBvaW50PWcsZS5saW5lRW5kKCl9ZnVuY3Rpb24gYigpe18oKSxtLnBvaW50PXgsbS5saW5lRW5kPXd9ZnVuY3Rpb24geCh0LGUpe3koaT10LGUpLHI9dSxvPWgsYT1kLHM9cCxsPWYsbS5wb2ludD15fWZ1bmN0aW9uIHcoKXtuKHUsaCxjLGQscCxmLHIsbyxpLGEscyxsLDE2LGUpLG0ubGluZUVuZD12LHYoKX1yZXR1cm4gbX19KSh0LGUpOihmdW5jdGlvbiBpKHQpe3JldHVybiBJSyh7cG9pbnQ6ZnVuY3Rpb24oZSxuKXtlPXQoZSxuKSx0aGlzLnN0cmVhbS5wb2ludChlWzBdLGVbMV0pfX0pfSkodCl9dmFyIFVLPUlLKHtwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuc3RyZWFtLnBvaW50KHQqS3EsZSpLcSl9fSk7ZnVuY3Rpb24gaksodCl7cmV0dXJuIEdLKChmdW5jdGlvbigpe3JldHVybiB0fSkpKCl9ZnVuY3Rpb24gR0sodCl7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaD0xNTAsZD00ODAscD0yNTAsZj0wLG09MCxnPTAsXz0wLHk9MCx2PW51bGwsYj1pJCx4PW51bGwsdz1SJCxTPS41LE09VksoQyxTKTtmdW5jdGlvbiBFKHQpe3JldHVyblsodD1vKHRbMF0qS3EsdFsxXSpLcSkpWzBdKmgrbixpLXRbMV0qaF19ZnVuY3Rpb24gVCh0KXtyZXR1cm4odD1vLmludmVydCgodFswXS1uKS9oLChpLXRbMV0pL2gpKSYmW3RbMF0qJHEsdFsxXSokcV19ZnVuY3Rpb24gQyh0LHIpe3JldHVyblsodD1lKHQscikpWzBdKmgrbixpLXRbMV0qaF19ZnVuY3Rpb24gQSgpe289Ulgocj16WChnLF8seSksZSk7dmFyIHQ9ZShmLG0pO3JldHVybiBuPWQtdFswXSpoLGk9cCt0WzFdKmgsaygpfWZ1bmN0aW9uIGsoKXtyZXR1cm4gYz11PW51bGwsRX1yZXR1cm4gRS5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuIGMmJnU9PT10P2M6Yz1VSygoZnVuY3Rpb24gZSh0KXtyZXR1cm4gSUsoe3BvaW50OmZ1bmN0aW9uKGUsbil7dmFyIGk9dChlLG4pO3JldHVybiB0aGlzLnN0cmVhbS5wb2ludChpWzBdLGlbMV0pfX0pfSkocikoYihNKHcodT10KSkpKSl9LEUucHJlY2xpcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj10LHY9dm9pZCAwLGsoKSk6Yn0sRS5wb3N0Y2xpcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz10LHg9YT1zPWw9bnVsbCxrKCkpOnd9LEUuY2xpcEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPSt0P2EkKHY9dCpLcSk6KHY9bnVsbCxpJCksaygpKTp2KiRxfSxFLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHc9bnVsbD09dD8oeD1hPXM9bD1udWxsLFIkKTpjJCh4PSt0WzBdWzBdLGE9K3RbMF1bMV0scz0rdFsxXVswXSxsPSt0WzFdWzFdKSxrKCkpOm51bGw9PXg/bnVsbDpbW3gsYV0sW3MsbF1dfSxFLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSt0LEEoKSk6aH0sRS50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9K3RbMF0scD0rdFsxXSxBKCkpOltkLHBdfSxFLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj10WzBdJTM2MCpLcSxtPXRbMV0lMzYwKktxLEEoKSk6W2YqJHEsbSokcV19LEUucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPXRbMF0lMzYwKktxLF89dFsxXSUzNjAqS3EseT10Lmxlbmd0aD4yP3RbMl0lMzYwKktxOjAsQSgpKTpbZyokcSxfKiRxLHkqJHFdfSxFLnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTT1WSyhDLFM9dCp0KSxrKCkpOnNZKFMpfSxFLmZpdEV4dGVudD1mdW5jdGlvbih0LGUpe3JldHVybiB6SyhFLHQsZSl9LEUuZml0U2l6ZT1mdW5jdGlvbih0LGUpe3JldHVybiBESyhFLHQsZSl9LEUuZml0V2lkdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gQksoRSx0LGUpfSxFLmZpdEhlaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiBISyhFLHQsZSl9LGZ1bmN0aW9uKCl7cmV0dXJuIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksRS5pbnZlcnQ9ZS5pbnZlcnQmJlQsQSgpfX1mdW5jdGlvbiBXSyh0KXt2YXIgZT0wLG49V3EvMyxpPUdLKHQpLHI9aShlLG4pO3JldHVybiByLnBhcmFsbGVscz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9pKGU9dFswXSpLcSxuPXRbMV0qS3EpOltlKiRxLG4qJHFdfSxyfWZ1bmN0aW9uIHFLKHQsZSl7dmFyIG49b1kodCksaT0obitvWShlKSkvMjtpZihacShpKTxHcSlyZXR1cm4oZnVuY3Rpb24gcih0KXt2YXIgZT10WSh0KTtmdW5jdGlvbiBuKHQsbil7cmV0dXJuW3QqZSxvWShuKS9lXX1yZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bdC9lLHVZKG4qZSldfSxufSkodCk7dmFyIG89MStuKigyKmktbiksYT1zWShvKS9pO2Z1bmN0aW9uIHModCxlKXt2YXIgbj1zWShvLTIqaSpvWShlKSkvaTtyZXR1cm5bbipvWSh0Kj1pKSxhLW4qdFkodCldfXJldHVybiBzLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBuPWEtZTtyZXR1cm5bUXEodCxacShuKSkvaSphWShuKSx1WSgoby0odCp0K24qbikqaSppKS8oMippKSldfSxzfWZ1bmN0aW9uIFlLKCl7cmV0dXJuIFdLKHFLKS5zY2FsZSgxNTUuNDI0KS5jZW50ZXIoWzAsMzMuNjQ0Ml0pfWZ1bmN0aW9uIFhLKCl7cmV0dXJuIFlLKCkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKS50cmFuc2xhdGUoWzQ4MCwyNTBdKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSl9ZnVuY3Rpb24gJEsodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9dFkoZSkscj10WShuKSxvPXQoaSpyKTtyZXR1cm5bbypyKm9ZKGUpLG8qb1kobildfX1mdW5jdGlvbiBLSyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgaT1zWShlKmUrbipuKSxyPXQoaSksbz1vWShyKSxhPXRZKHIpO3JldHVybltRcShlKm8saSphKSx1WShpJiZuKm8vaSldfX12YXIgWks9JEsoKGZ1bmN0aW9uKHQpe3JldHVybiBzWSgyLygxK3QpKX0pKTtaSy5pbnZlcnQ9S0soKGZ1bmN0aW9uKHQpe3JldHVybiAyKnVZKHQvMil9KSk7dmFyIEpLPSRLKChmdW5jdGlvbih0KXtyZXR1cm4odD1jWSh0KSkmJnQvb1kodCl9KSk7ZnVuY3Rpb24gUUsodCxlKXtyZXR1cm5bdCxpWShsWSgocXErZSkvMikpXX1mdW5jdGlvbiB0Wih0KXt2YXIgZSxuLGkscj1qSyh0KSxvPXIuY2VudGVyLGE9ci5zY2FsZSxzPXIudHJhbnNsYXRlLGw9ci5jbGlwRXh0ZW50LGM9bnVsbDtmdW5jdGlvbiB1KCl7dmFyIG89V3EqYSgpLHM9cihGWChyLnJvdGF0ZSgpKS5pbnZlcnQoWzAsMF0pKTtyZXR1cm4gbChudWxsPT1jP1tbc1swXS1vLHNbMV0tb10sW3NbMF0rbyxzWzFdK29dXTp0PT09UUs/W1tNYXRoLm1heChzWzBdLW8sYyksZV0sW01hdGgubWluKHNbMF0rbyxuKSxpXV06W1tjLE1hdGgubWF4KHNbMV0tbyxlKV0sW24sTWF0aC5taW4oc1sxXStvLGkpXV0pfXJldHVybiByLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhKHQpLHUoKSk6YSgpfSxyLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocyh0KSx1KCkpOnMoKX0sci5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG8odCksdSgpKTpvKCl9LHIuY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9jPWU9bj1pPW51bGw6KGM9K3RbMF1bMF0sZT0rdFswXVsxXSxuPSt0WzFdWzBdLGk9K3RbMV1bMV0pLHUoKSk6bnVsbD09Yz9udWxsOltbYyxlXSxbbixpXV19LHUoKX1mdW5jdGlvbiBlWih0KXtyZXR1cm4gbFkoKHFxK3QpLzIpfWZ1bmN0aW9uIG5aKHQsZSl7dmFyIG49dFkodCksaT10PT09ZT9vWSh0KTppWShuL3RZKGUpKS9pWShlWihlKS9lWih0KSkscj1uKnJZKGVaKHQpLGkpL2k7aWYoIWkpcmV0dXJuIFFLO2Z1bmN0aW9uIG8odCxlKXtyPjA/ZTwtcXErR3EmJihlPS1xcStHcSk6ZT5xcS1HcSYmKGU9cXEtR3EpO3ZhciBuPXIvclkoZVooZSksaSk7cmV0dXJuW24qb1koaSp0KSxyLW4qdFkoaSp0KV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ci1lLG89YVkoaSkqc1kodCp0K24qbik7cmV0dXJuW1FxKHQsWnEobikpL2kqYVkobiksMipKcShyWShyL28sMS9pKSktcXFdfSxvfWZ1bmN0aW9uIGlaKHQsZSl7cmV0dXJuW3QsZV19ZnVuY3Rpb24gcloodCxlKXt2YXIgbj10WSh0KSxpPXQ9PT1lP29ZKHQpOihuLXRZKGUpKS8oZS10KSxyPW4vaSt0O2lmKFpxKGkpPEdxKXJldHVybiBpWjtmdW5jdGlvbiBvKHQsZSl7dmFyIG49ci1lLG89aSp0O3JldHVybltuKm9ZKG8pLHItbip0WShvKV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ci1lO3JldHVybltRcSh0LFpxKG4pKS9pKmFZKG4pLHItYVkoaSkqc1kodCp0K24qbildfSxvfWZ1bmN0aW9uIG9aKHQsZSl7dmFyIG49dFkoZSksaT10WSh0KSpuO3JldHVybltuKm9ZKHQpL2ksb1koZSkvaV19ZnVuY3Rpb24gYVoodCxlLG4saSl7cmV0dXJuIDE9PT10JiYxPT09ZSYmMD09PW4mJjA9PT1pP1IkOklLKHtwb2ludDpmdW5jdGlvbihyLG8pe3RoaXMuc3RyZWFtLnBvaW50KHIqdCtuLG8qZStpKX19KX1mdW5jdGlvbiBzWih0LGUpe3ZhciBuPWUqZSxpPW4qbjtyZXR1cm5bdCooLjg3MDctLjEzMTk3OSpuK2kqKGkqKC4wMDM5NzEqbi0uMDAxNTI5KmkpLS4wMTM3OTEpKSxlKigxLjAwNzIyNituKiguMDE1MDg1K2kqKC4wMjg4NzQqbi0uMDQ0NDc1LS4wMDU5MTYqaSkpKV19ZnVuY3Rpb24gbFoodCxlKXtyZXR1cm5bdFkoZSkqb1kodCksb1koZSldfWZ1bmN0aW9uIGNaKHQsZSl7dmFyIG49dFkoZSksaT0xK3RZKHQpKm47cmV0dXJuW24qb1kodCkvaSxvWShlKS9pXX1mdW5jdGlvbiB1Wih0LGUpe3JldHVybltpWShsWSgocXErZSkvMikpLC10XX1mdW5jdGlvbiBoWih0LGUpe3JldHVybiB0LnBhcmVudD09PWUucGFyZW50PzE6Mn1mdW5jdGlvbiBkWih0LGUpe3JldHVybiB0K2UueH1mdW5jdGlvbiBwWih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUueSl9ZnVuY3Rpb24gZloodCl7dmFyIGU9MCxuPXQuY2hpbGRyZW4saT1uJiZuLmxlbmd0aDtpZihpKWZvcig7LS1pPj0wOyllKz1uW2ldLnZhbHVlO2Vsc2UgZT0xO3QudmFsdWU9ZX1mdW5jdGlvbiBtWih0LGUpe3ZhciBuLGkscixvLGEscz1uZXcgdloodCksbD0rdC52YWx1ZSYmKHMudmFsdWU9dC52YWx1ZSksYz1bc107Zm9yKG51bGw9PWUmJihlPWdaKTtuPWMucG9wKCk7KWlmKGwmJihuLnZhbHVlPStuLmRhdGEudmFsdWUpLChyPWUobi5kYXRhKSkmJihhPXIubGVuZ3RoKSlmb3Iobi5jaGlsZHJlbj1uZXcgQXJyYXkoYSksbz1hLTE7bz49MDstLW8pYy5wdXNoKGk9bi5jaGlsZHJlbltvXT1uZXcgdloocltvXSkpLGkucGFyZW50PW4saS5kZXB0aD1uLmRlcHRoKzE7cmV0dXJuIHMuZWFjaEJlZm9yZSh5Wil9ZnVuY3Rpb24gZ1oodCl7cmV0dXJuIHQuY2hpbGRyZW59ZnVuY3Rpb24gX1oodCl7dC5kYXRhPXQuZGF0YS5kYXRhfWZ1bmN0aW9uIHlaKHQpe3ZhciBlPTA7ZG97dC5oZWlnaHQ9ZX13aGlsZSgodD10LnBhcmVudCkmJnQuaGVpZ2h0PCsrZSl9ZnVuY3Rpb24gdloodCl7dGhpcy5kYXRhPXQsdGhpcy5kZXB0aD10aGlzLmhlaWdodD0wLHRoaXMucGFyZW50PW51bGx9SksuaW52ZXJ0PUtLKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSxRSy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdCwyKkpxKG5ZKGUpKS1xcV19LGlaLmludmVydD1pWixvWi5pbnZlcnQ9S0soSnEpLHNaLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBuLGk9ZSxyPTI1O2Rve3ZhciBvPWkqaSxhPW8qbztpLT1uPShpKigxLjAwNzIyNitvKiguMDE1MDg1K2EqKC4wMjg4NzQqby0uMDQ0NDc1LS4wMDU5MTYqYSkpKS1lKS8oMS4wMDcyMjYrbyooLjA0NTI1NSthKiguMjU5ODY2Km8tLjMxMTMyNS0uMDA1OTE2KjExKmEpKSl9d2hpbGUoWnEobik+R3EmJi0tcj4wKTtyZXR1cm5bdC8oLjg3MDcrKG89aSppKSoobyoobypvKm8qKC4wMDM5NzEtLjAwMTUyOSpvKS0uMDEzNzkxKS0uMTMxOTc5KSksaV19LGxaLmludmVydD1LSyh1WSksY1ouaW52ZXJ0PUtLKChmdW5jdGlvbih0KXtyZXR1cm4gMipKcSh0KX0pKSx1Wi5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bLWUsMipKcShuWSh0KSktcXFdfSx2Wi5wcm90b3R5cGU9bVoucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp2Wixjb3VudDpmdW5jdGlvbiBiWigpe3JldHVybiB0aGlzLmVhY2hBZnRlcihmWil9LGVhY2g6ZnVuY3Rpb24geFoodCl7dmFyIGUsbixpLHIsbz10aGlzLGE9W29dO2Rve2ZvcihlPWEucmV2ZXJzZSgpLGE9W107bz1lLnBvcCgpOylpZih0KG8pLG49by5jaGlsZHJlbilmb3IoaT0wLHI9bi5sZW5ndGg7aTxyOysraSlhLnB1c2gobltpXSl9d2hpbGUoYS5sZW5ndGgpO3JldHVybiB0aGlzfSxlYWNoQWZ0ZXI6ZnVuY3Rpb24gd1oodCl7Zm9yKHZhciBlLG4saSxyPXRoaXMsbz1bcl0sYT1bXTtyPW8ucG9wKCk7KWlmKGEucHVzaChyKSxlPXIuY2hpbGRyZW4pZm9yKG49MCxpPWUubGVuZ3RoO248aTsrK24pby5wdXNoKGVbbl0pO2Zvcig7cj1hLnBvcCgpOyl0KHIpO3JldHVybiB0aGlzfSxlYWNoQmVmb3JlOmZ1bmN0aW9uIFNaKHQpe2Zvcih2YXIgZSxuLGk9dGhpcyxyPVtpXTtpPXIucG9wKCk7KWlmKHQoaSksZT1pLmNoaWxkcmVuKWZvcihuPWUubGVuZ3RoLTE7bj49MDstLW4pci5wdXNoKGVbbl0pO3JldHVybiB0aGlzfSxzdW06ZnVuY3Rpb24gTVoodCl7cmV0dXJuIHRoaXMuZWFjaEFmdGVyKChmdW5jdGlvbihlKXtmb3IodmFyIG49K3QoZS5kYXRhKXx8MCxpPWUuY2hpbGRyZW4scj1pJiZpLmxlbmd0aDstLXI+PTA7KW4rPWlbcl0udmFsdWU7ZS52YWx1ZT1ufSkpfSxzb3J0OmZ1bmN0aW9uIEVaKHQpe3JldHVybiB0aGlzLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW4mJmUuY2hpbGRyZW4uc29ydCh0KX0pKX0scGF0aDpmdW5jdGlvbiBUWih0KXtmb3IodmFyIGU9dGhpcyxuPShmdW5jdGlvbiBpKHQsZSl7aWYodD09PWUpcmV0dXJuIHQ7dmFyIG49dC5hbmNlc3RvcnMoKSxpPWUuYW5jZXN0b3JzKCkscj1udWxsO2Zvcih0PW4ucG9wKCksZT1pLnBvcCgpO3Q9PT1lOylyPXQsdD1uLnBvcCgpLGU9aS5wb3AoKTtyZXR1cm4gcn0pKGUsdCkscj1bZV07ZSE9PW47KXIucHVzaChlPWUucGFyZW50KTtmb3IodmFyIG89ci5sZW5ndGg7dCE9PW47KXIuc3BsaWNlKG8sMCx0KSx0PXQucGFyZW50O3JldHVybiByfSxhbmNlc3RvcnM6ZnVuY3Rpb24gQ1ooKXtmb3IodmFyIHQ9dGhpcyxlPVt0XTt0PXQucGFyZW50OyllLnB1c2godCk7cmV0dXJuIGV9LGRlc2NlbmRhbnRzOmZ1bmN0aW9uIEFaKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oZSl7dC5wdXNoKGUpfSkpLHR9LGxlYXZlczpmdW5jdGlvbiBrWigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW58fHQucHVzaChlKX0pKSx0fSxsaW5rczpmdW5jdGlvbiBMWigpe3ZhciB0PXRoaXMsZT1bXTtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbihuKXtuIT09dCYmZS5wdXNoKHtzb3VyY2U6bi5wYXJlbnQsdGFyZ2V0Om59KX0pKSxlfSxjb3B5OmZ1bmN0aW9uIFBaKCl7cmV0dXJuIG1aKHRoaXMpLmVhY2hCZWZvcmUoX1opfX07dmFyIE5aPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBJWih0KXtmb3IodmFyIGUsbixpPTAscj0odD0oZnVuY3Rpb24gbyh0KXtmb3IodmFyIGUsbixpPXQubGVuZ3RoO2k7KW49TWF0aC5yYW5kb20oKSppLS18MCxlPXRbaV0sdFtpXT10W25dLHRbbl09ZTtyZXR1cm4gdH0pKE5aLmNhbGwodCkpKS5sZW5ndGgsYT1bXTtpPHI7KWU9dFtpXSxuJiZ6WihuLGUpPysraToobj1CWihhPVJaKGEsZSkpLGk9MCk7cmV0dXJuIG59ZnVuY3Rpb24gUloodCxlKXt2YXIgbixpO2lmKERaKGUsdCkpcmV0dXJuW2VdO2ZvcihuPTA7bjx0Lmxlbmd0aDsrK24paWYoT1ooZSx0W25dKSYmRFooSFoodFtuXSxlKSx0KSlyZXR1cm5bdFtuXSxlXTtmb3Iobj0wO248dC5sZW5ndGgtMTsrK24pZm9yKGk9bisxO2k8dC5sZW5ndGg7KytpKWlmKE9aKEhaKHRbbl0sdFtpXSksZSkmJk9aKEhaKHRbbl0sZSksdFtpXSkmJk9aKEhaKHRbaV0sZSksdFtuXSkmJkRaKEZaKHRbbl0sdFtpXSxlKSx0KSlyZXR1cm5bdFtuXSx0W2ldLGVdO3Rocm93IG5ldyBFcnJvcn1mdW5jdGlvbiBPWih0LGUpe3ZhciBuPXQuci1lLnIsaT1lLngtdC54LHI9ZS55LXQueTtyZXR1cm4gbjwwfHxuKm48aSppK3Iqcn1mdW5jdGlvbiB6Wih0LGUpe3ZhciBuPXQuci1lLnIrMWUtNixpPWUueC10Lngscj1lLnktdC55O3JldHVybiBuPjAmJm4qbj5pKmkrcipyfWZ1bmN0aW9uIERaKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDsrK24paWYoIXpaKHQsZVtuXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gQloodCl7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDE6cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJue3g6dC54LHk6dC55LHI6dC5yfX0pKHRbMF0pO2Nhc2UgMjpyZXR1cm4gSFoodFswXSx0WzFdKTtjYXNlIDM6cmV0dXJuIEZaKHRbMF0sdFsxXSx0WzJdKX19ZnVuY3Rpb24gSFoodCxlKXt2YXIgbj10LngsaT10Lnkscj10LnIsbz1lLngsYT1lLnkscz1lLnIsbD1vLW4sYz1hLWksdT1zLXIsaD1NYXRoLnNxcnQobCpsK2MqYyk7cmV0dXJue3g6KG4rbytsL2gqdSkvMix5OihpK2ErYy9oKnUpLzIscjooaCtyK3MpLzJ9fWZ1bmN0aW9uIEZaKHQsZSxuKXt2YXIgaT10Lngscj10Lnksbz10LnIsYT1lLngscz1lLnksbD1lLnIsYz1uLngsdT1uLnksaD1uLnIsZD1pLWEscD1pLWMsZj1yLXMsbT1yLXUsZz1sLW8sXz1oLW8seT1pKmkrcipyLW8qbyx2PXktYSphLXMqcytsKmwsYj15LWMqYy11KnUraCpoLHg9cCpmLWQqbSx3PShmKmItbSp2KS8oMip4KS1pLFM9KG0qZy1mKl8pL3gsTT0ocCp2LWQqYikvKDIqeCktcixFPShkKl8tcCpnKS94LFQ9UypTK0UqRS0xLEM9Mioobyt3KlMrTSpFKSxBPXcqdytNKk0tbypvLGs9LShUPyhDK01hdGguc3FydChDKkMtNCpUKkEpKS8oMipUKTpBL0MpO3JldHVybnt4OmkrdytTKmsseTpyK00rRSprLHI6a319ZnVuY3Rpb24gVloodCxlLG4pe3ZhciBpPXQueCxyPXQueSxvPWUucituLnIsYT10LnIrbi5yLHM9ZS54LWksbD1lLnktcixjPXMqcytsKmw7aWYoYyl7dmFyIHU9LjUrKChhKj1hKS0obyo9bykpLygyKmMpLGg9TWF0aC5zcXJ0KE1hdGgubWF4KDAsMipvKihhK2MpLShhLT1jKSphLW8qbykpLygyKmMpO24ueD1pK3UqcytoKmwsbi55PXIrdSpsLWgqc31lbHNlIG4ueD1pK2Esbi55PXJ9ZnVuY3Rpb24gVVoodCxlKXt2YXIgbj1lLngtdC54LGk9ZS55LXQueSxyPXQucitlLnI7cmV0dXJuIHIqci0xZS02Pm4qbitpKml9ZnVuY3Rpb24galoodCl7dmFyIGU9dC5fLG49dC5uZXh0Ll8saT1lLnIrbi5yLHI9KGUueCpuLnIrbi54KmUucikvaSxvPShlLnkqbi5yK24ueSplLnIpL2k7cmV0dXJuIHIqcitvKm99ZnVuY3Rpb24gR1oodCl7dGhpcy5fPXQsdGhpcy5uZXh0PW51bGwsdGhpcy5wcmV2aW91cz1udWxsfWZ1bmN0aW9uIFdaKHQpe2lmKCEocj10Lmxlbmd0aCkpcmV0dXJuIDA7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaDtpZigoZT10WzBdKS54PTAsZS55PTAsIShyPjEpKXJldHVybiBlLnI7aWYoZS54PS0obj10WzFdKS5yLG4ueD1lLnIsbi55PTAsIShyPjIpKXJldHVybiBlLnIrbi5yO1ZaKG4sZSxpPXRbMl0pLGU9bmV3IEdaKGUpLG49bmV3IEdaKG4pLGk9bmV3IEdaKGkpLGUubmV4dD1pLnByZXZpb3VzPW4sbi5uZXh0PWUucHJldmlvdXM9aSxpLm5leHQ9bi5wcmV2aW91cz1lO3Q6Zm9yKHM9MztzPHI7KytzKXtWWihlLl8sbi5fLGk9dFtzXSksaT1uZXcgR1ooaSksbD1uLm5leHQsYz1lLnByZXZpb3VzLHU9bi5fLnIsaD1lLl8ucjtkb3tpZih1PD1oKXtpZihVWihsLl8saS5fKSl7ZS5uZXh0PW49bCxuLnByZXZpb3VzPWUsLS1zO2NvbnRpbnVlIHR9dSs9bC5fLnIsbD1sLm5leHR9ZWxzZXtpZihVWihjLl8saS5fKSl7KGU9YykubmV4dD1uLG4ucHJldmlvdXM9ZSwtLXM7Y29udGludWUgdH1oKz1jLl8ucixjPWMucHJldmlvdXN9fXdoaWxlKGwhPT1jLm5leHQpO2ZvcihpLnByZXZpb3VzPWUsaS5uZXh0PW4sZS5uZXh0PW4ucHJldmlvdXM9bj1pLG89alooZSk7KGk9aS5uZXh0KSE9PW47KShhPWpaKGkpKTxvJiYoZT1pLG89YSk7bj1lLm5leHR9Zm9yKGU9W24uX10saT1uOyhpPWkubmV4dCkhPT1uOyllLnB1c2goaS5fKTtmb3IoaT1JWihlKSxzPTA7czxyOysrcykoZT10W3NdKS54LT1pLngsZS55LT1pLnk7cmV0dXJuIGkucn1mdW5jdGlvbiBxWih0KXtyZXR1cm4gbnVsbD09dD9udWxsOllaKHQpfWZ1bmN0aW9uIFlaKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdH1mdW5jdGlvbiBYWigpe3JldHVybiAwfWZ1bmN0aW9uICRaKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBLWih0KXtyZXR1cm4gTWF0aC5zcXJ0KHQudmFsdWUpfWZ1bmN0aW9uIFpaKHQpe3JldHVybiBmdW5jdGlvbihlKXtlLmNoaWxkcmVufHwoZS5yPU1hdGgubWF4KDAsK3QoZSl8fDApKX19ZnVuY3Rpb24gSloodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7aWYoaT1uLmNoaWxkcmVuKXt2YXIgaSxyLG8sYT1pLmxlbmd0aCxzPXQobikqZXx8MDtpZihzKWZvcihyPTA7cjxhOysrcilpW3JdLnIrPXM7aWYobz1XWihpKSxzKWZvcihyPTA7cjxhOysrcilpW3JdLnItPXM7bi5yPW8rc319fWZ1bmN0aW9uIFFaKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1lLnBhcmVudDtlLnIqPXQsbiYmKGUueD1uLngrdCplLngsZS55PW4ueSt0KmUueSl9fWZ1bmN0aW9uIHRKKHQpe3QueDA9TWF0aC5yb3VuZCh0LngwKSx0LnkwPU1hdGgucm91bmQodC55MCksdC54MT1NYXRoLnJvdW5kKHQueDEpLHQueTE9TWF0aC5yb3VuZCh0LnkxKX1mdW5jdGlvbiBlSih0LGUsbixpLHIpe2Zvcih2YXIgbyxhPXQuY2hpbGRyZW4scz0tMSxsPWEubGVuZ3RoLGM9dC52YWx1ZSYmKGktZSkvdC52YWx1ZTsrK3M8bDspKG89YVtzXSkueTA9bixvLnkxPXIsby54MD1lLG8ueDE9ZSs9by52YWx1ZSpjfXZhciBuSj17ZGVwdGg6LTF9LGlKPXt9O2Z1bmN0aW9uIHJKKHQpe3JldHVybiB0LmlkfWZ1bmN0aW9uIG9KKHQpe3JldHVybiB0LnBhcmVudElkfWZ1bmN0aW9uIGFKKHQsZSl7cmV0dXJuIHQucGFyZW50PT09ZS5wYXJlbnQ/MToyfWZ1bmN0aW9uIHNKKHQpe3ZhciBlPXQuY2hpbGRyZW47cmV0dXJuIGU/ZVswXTp0LnR9ZnVuY3Rpb24gbEoodCl7dmFyIGU9dC5jaGlsZHJlbjtyZXR1cm4gZT9lW2UubGVuZ3RoLTFdOnQudH1mdW5jdGlvbiBjSih0LGUsbil7dmFyIGk9bi8oZS5pLXQuaSk7ZS5jLT1pLGUucys9bix0LmMrPWksZS56Kz1uLGUubSs9bn1mdW5jdGlvbiB1Sih0LGUsbil7cmV0dXJuIHQuYS5wYXJlbnQ9PT1lLnBhcmVudD90LmE6bn1mdW5jdGlvbiBoSih0LGUpe3RoaXMuXz10LHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbj1udWxsLHRoaXMuQT1udWxsLHRoaXMuYT10aGlzLHRoaXMuej0wLHRoaXMubT0wLHRoaXMuYz0wLHRoaXMucz0wLHRoaXMudD1udWxsLHRoaXMuaT1lfWZ1bmN0aW9uIGRKKHQsZSxuLGkscil7Zm9yKHZhciBvLGE9dC5jaGlsZHJlbixzPS0xLGw9YS5sZW5ndGgsYz10LnZhbHVlJiYoci1uKS90LnZhbHVlOysrczxsOykobz1hW3NdKS54MD1lLG8ueDE9aSxvLnkwPW4sby55MT1uKz1vLnZhbHVlKmN9aEoucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodloucHJvdG90eXBlKTt2YXIgcEo9KDErTWF0aC5zcXJ0KDUpKS8yO2Z1bmN0aW9uIGZKKHQsZSxuLGkscixvKXtmb3IodmFyIGEscyxsLGMsdSxoLGQscCxmLG0sZyxfPVtdLHk9ZS5jaGlsZHJlbix2PTAsYj0wLHg9eS5sZW5ndGgsdz1lLnZhbHVlO3Y8eDspe2w9ci1uLGM9by1pO2Rve3U9eVtiKytdLnZhbHVlfXdoaWxlKCF1JiZiPHgpO2ZvcihoPWQ9dSxnPXUqdSoobT1NYXRoLm1heChjL2wsbC9jKS8odyp0KSksZj1NYXRoLm1heChkL2csZy9oKTtiPHg7KytiKXtpZih1Kz1zPXlbYl0udmFsdWUsczxoJiYoaD1zKSxzPmQmJihkPXMpLGc9dSp1Km0sKHA9TWF0aC5tYXgoZC9nLGcvaCkpPmYpe3UtPXM7YnJlYWt9Zj1wfV8ucHVzaChhPXt2YWx1ZTp1LGRpY2U6bDxjLGNoaWxkcmVuOnkuc2xpY2UodixiKX0pLGEuZGljZT9lSihhLG4saSxyLHc/aSs9Yyp1L3c6byk6ZEooYSxuLGksdz9uKz1sKnUvdzpyLG8pLHctPXUsdj1ifXJldHVybiBffXZhciBtSj0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQsbixpLHIsbyl7ZkooZSx0LG4saSxyLG8pfXJldHVybiBuLnJhdGlvPWZ1bmN0aW9uKGUpe3JldHVybiB0KChlPStlKT4xP2U6MSl9LG59KShwSiksZ0o9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0LG4saSxyLG8pe2lmKChhPXQuX3NxdWFyaWZ5KSYmYS5yYXRpbz09PWUpZm9yKHZhciBhLHMsbCxjLHUsaD0tMSxkPWEubGVuZ3RoLHA9dC52YWx1ZTsrK2g8ZDspe2ZvcihsPShzPWFbaF0pLmNoaWxkcmVuLGM9cy52YWx1ZT0wLHU9bC5sZW5ndGg7Yzx1OysrYylzLnZhbHVlKz1sW2NdLnZhbHVlO3MuZGljZT9lSihzLG4saSxyLGkrPShvLWkpKnMudmFsdWUvcCk6ZEoocyxuLGksbis9KHItbikqcy52YWx1ZS9wLG8pLHAtPXMudmFsdWV9ZWxzZSB0Ll9zcXVhcmlmeT1hPWZKKGUsdCxuLGkscixvKSxhLnJhdGlvPWV9cmV0dXJuIG4ucmF0aW89ZnVuY3Rpb24oZSl7cmV0dXJuIHQoKGU9K2UpPjE/ZToxKX0sbn0pKHBKKTtmdW5jdGlvbiBfSih0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24geUoodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gdkooKXt9dmFyIGJKPS43LHhKPTEvYkosd0o9IlxccyooWystXT9cXGQrKVxccyoiLFNKPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLE1KPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixFSj0vXiMoWzAtOWEtZl17Myw4fSkkLyxUSj1uZXcgUmVnRXhwKCJecmdiXFwoIitbd0osd0osd0pdKyJcXCkkIiksQ0o9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW01KLE1KLE1KXSsiXFwpJCIpLEFKPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbd0osd0osd0osU0pdKyJcXCkkIiksa0o9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tNSixNSixNSixTSl0rIlxcKSQiKSxMSj1uZXcgUmVnRXhwKCJeaHNsXFwoIitbU0osTUosTUpdKyJcXCkkIiksUEo9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tTSixNSixNSixTSl0rIlxcKSQiKSxOSj17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBJSigpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIFJKKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gT0oodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9RUouZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj96SihlKTozPT09bj9uZXcgRkooZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP0RKKGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP0RKKGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9VEouZXhlYyh0KSk/bmV3IEZKKGVbMV0sZVsyXSxlWzNdLDEpOihlPUNKLmV4ZWModCkpP25ldyBGSigyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1BSi5leGVjKHQpKT9ESihlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1rSi5leGVjKHQpKT9ESigyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1MSi5leGVjKHQpKT9HSihlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVBKLmV4ZWModCkpP0dKKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6TkouaGFzT3duUHJvcGVydHkodCk/ekooTkpbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyBGSihOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIHpKKHQpe3JldHVybiBuZXcgRkoodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIERKKHQsZSxuLGkpe3JldHVybiBpPD0wJiYodD1lPW49TmFOKSxuZXcgRkoodCxlLG4saSl9ZnVuY3Rpb24gQkoodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB2Snx8KHQ9T0oodCkpLHQ/bmV3IEZKKCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyBGSn1mdW5jdGlvbiBISih0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/QkoodCk6bmV3IEZKKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBGSih0LGUsbixpKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gVkooKXtyZXR1cm4iIyIrakoodGhpcy5yKStqSih0aGlzLmcpK2pKKHRoaXMuYil9ZnVuY3Rpb24gVUooKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBqSih0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEdKKHQsZSxuLGkpe3JldHVybiBpPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgWUoodCxlLG4saSl9ZnVuY3Rpb24gV0oodCl7aWYodCBpbnN0YW5jZW9mIFlKKXJldHVybiBuZXcgWUoodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2Ygdkp8fCh0PU9KKHQpKSwhdClyZXR1cm4gbmV3IFlKO2lmKHQgaW5zdGFuY2VvZiBZSilyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsaT10LmIvMjU1LHI9TWF0aC5taW4oZSxuLGkpLG89TWF0aC5tYXgoZSxuLGkpLGE9TmFOLHM9by1yLGw9KG8rcikvMjtyZXR1cm4gcz8oYT1lPT09bz8obi1pKS9zKzYqKG48aSk6bj09PW8/KGktZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P28rcjoyLW8tcixhKj02MCk6cz1sPjAmJmw8MT8wOmEsbmV3IFlKKGEscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gcUoodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1dKKHQpOm5ldyBZSih0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gWUoodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIFhKKHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1fSih2SixPSix7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpJSixmb3JtYXRIZXg6SUosZm9ybWF0SHNsOmZ1bmN0aW9uICRKKCl7cmV0dXJuIFdKKHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6UkosdG9TdHJpbmc6Ukp9KSxfSihGSixISix5Sih2Six7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD94SjpNYXRoLnBvdyh4Six0KSxuZXcgRkoodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Yko6TWF0aC5wb3coYkosdCksbmV3IEZKKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6VkosZm9ybWF0SGV4OlZKLGZvcm1hdFJnYjpVSix0b1N0cmluZzpVSn0pKSxfSihZSixxSix5Sih2Six7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD94SjpNYXRoLnBvdyh4Six0KSxuZXcgWUoodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9iSjpNYXRoLnBvdyhiSix0KSxuZXcgWUoodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyBGSihYSih0Pj0yNDA/dC0yNDA6dCsxMjAscixpKSxYSih0LHIsaSksWEoodDwxMjA/dCsyNDA6dC0xMjAscixpKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgS0o9TWF0aC5QSS8xODAsWko9MTgwL01hdGguUEksSko9Ljk2NDIyLFFKPS44MjUyMSx0UT00LzI5LGVRPTYvMjksblE9MyplUSplUTtmdW5jdGlvbiBpUSh0KXtpZih0IGluc3RhbmNlb2Ygb1EpcmV0dXJuIG5ldyBvUSh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBkUSlyZXR1cm4gcFEodCk7dCBpbnN0YW5jZW9mIEZKfHwodD1CSih0KSk7dmFyIGUsbixpPWNRKHQucikscj1jUSh0LmcpLG89Y1EodC5iKSxhPWFRKCguMjIyNTA0NSppKy43MTY4Nzg2KnIrLjA2MDYxNjkqbykvMSk7cmV0dXJuIGk9PT1yJiZyPT09bz9lPW49YTooZT1hUSgoLjQzNjA3NDcqaSsuMzg1MDY0OSpyKy4xNDMwODA0Km8pL0pKKSxuPWFRKCguMDEzOTMyMippKy4wOTcxMDQ1KnIrLjcxNDE3MzMqbykvUUopKSxuZXcgb1EoMTE2KmEtMTYsNTAwKihlLWEpLDIwMCooYS1uKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIHJRKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9pUSh0KTpuZXcgb1EodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIG9RKHQsZSxuLGkpe3RoaXMubD0rdCx0aGlzLmE9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBhUSh0KXtyZXR1cm4gdD4uMDA4ODU2NDUxNjc5MDM1NjMxP01hdGgucG93KHQsMS8zKTp0L25RK3RRfWZ1bmN0aW9uIHNRKHQpe3JldHVybiB0PmVRP3QqdCp0Om5RKih0LXRRKX1mdW5jdGlvbiBsUSh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIGNRKHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIHVRKHQpe2lmKHQgaW5zdGFuY2VvZiBkUSlyZXR1cm4gbmV3IGRRKHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIG9RfHwodD1pUSh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IGRRKE5hTiwwPHQubCYmdC5sPDEwMD8wOk5hTix0LmwsdC5vcGFjaXR5KTt2YXIgZT1NYXRoLmF0YW4yKHQuYix0LmEpKlpKO3JldHVybiBuZXcgZFEoZTwwP2UrMzYwOmUsTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gaFEodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3VRKHQpOm5ldyBkUSh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gZFEodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMuYz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIHBRKHQpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyBvUSh0LmwsMCwwLHQub3BhY2l0eSk7dmFyIGU9dC5oKktKO3JldHVybiBuZXcgb1EodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX1fSihvUSxyUSx5Sih2Six7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvUSh0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IG9RKHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMubCsxNikvMTE2LGU9aXNOYU4odGhpcy5hKT90OnQrdGhpcy5hLzUwMCxuPWlzTmFOKHRoaXMuYik/dDp0LXRoaXMuYi8yMDA7cmV0dXJuIG5ldyBGSihsUSgzLjEzMzg1NjEqKGU9Skoqc1EoZSkpLTEuNjE2ODY2NyoodD0xKnNRKHQpKS0uNDkwNjE0Nioobj1RSipzUShuKSkpLGxRKC0uOTc4NzY4NCplKzEuOTE2MTQxNSp0Ky4wMzM0NTQqbiksbFEoLjA3MTk0NTMqZS0uMjI4OTkxNCp0KzEuNDA1MjQyNypuKSx0aGlzLm9wYWNpdHkpfX0pKSxfSihkUSxoUSx5Sih2Six7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBkUSh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGRRKHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHBRKHRoaXMpLnJnYigpfX0pKTt2YXIgZlE9LS4yOTIyNyxtUT0tLjkwNjQ5LGdRPTEuOTcyOTQ7ZnVuY3Rpb24gX1EodCl7aWYodCBpbnN0YW5jZW9mIHZRKXJldHVybiBuZXcgdlEodC5oLHQucyx0LmwsdC5vcGFjaXR5KTt0IGluc3RhbmNlb2YgRkp8fCh0PUJKKHQpKTt2YXIgZT10LmcvMjU1LG49dC5iLzI1NSxpPSgtLjY1NTc2MzY2Njc5OTk5OTkqbit0LnIvMjU1Ki0xLjc4ODQ1MDM4MDYtMy41MTcyOTgyNDM4KmUpLy01Ljk2MTUxMjI5MTIscj1uLWksbz0oZ1EqKGUtaSktZlEqcikvbVEsYT1NYXRoLnNxcnQobypvK3IqcikvKGdRKmkqKDEtaSkpLHM9YT9NYXRoLmF0YW4yKG8scikqWkotMTIwOk5hTjtyZXR1cm4gbmV3IHZRKHM8MD9zKzM2MDpzLGEsaSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIHlRKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9fUSh0KTpuZXcgdlEodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIHZRKHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBiUSh0LGUsbixpLHIpe3ZhciBvPXQqdCxhPW8qdDtyZXR1cm4oKDEtMyp0KzMqby1hKSplKyg0LTYqbyszKmEpKm4rKDErMyp0KzMqby0zKmEpKmkrYSpyKS82fWZ1bmN0aW9uIHhRKHQpe3ZhciBlPXQubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPW48PTA/bj0wOm4+PTE/KG49MSxlLTEpOk1hdGguZmxvb3IobiplKSxyPXRbaV0sbz10W2krMV07cmV0dXJuIGJRKChuLWkvZSkqZSxpPjA/dFtpLTFdOjIqci1vLHIsbyxpPGUtMT90W2krMl06MipvLXIpfX1mdW5jdGlvbiB3USh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9TWF0aC5mbG9vcigoKG4lPTEpPDA/KytuOm4pKmUpO3JldHVybiBiUSgobi1pL2UpKmUsdFsoaStlLTEpJWVdLHRbaSVlXSx0WyhpKzEpJWVdLHRbKGkrMiklZV0pfX1mdW5jdGlvbiBTUSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gTVEodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQrbiplfX1mdW5jdGlvbiBFUSh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9NUSh0LG4+MTgwfHxuPC0xODA/bi0zNjAqTWF0aC5yb3VuZChuLzM2MCk6bik6U1EoaXNOYU4odCk/ZTp0KX1mdW5jdGlvbiBUUSh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9NUSh0LG4pOlNRKGlzTmFOKHQpP2U6dCl9X0oodlEseVEseUoodkose2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/eEo6TWF0aC5wb3coeEosdCksbmV3IHZRKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Yko6TWF0aC5wb3coYkosdCksbmV3IHZRKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9aXNOYU4odGhpcy5oKT8wOih0aGlzLmgrMTIwKSpLSixlPSt0aGlzLmwsbj1pc05hTih0aGlzLnMpPzA6dGhpcy5zKmUqKDEtZSksaT1NYXRoLmNvcyh0KSxyPU1hdGguc2luKHQpO3JldHVybiBuZXcgRkooMjU1KihlK24qKC0uMTQ4NjEqaSsxLjc4Mjc3KnIpKSwyNTUqKGUrbiooZlEqaSttUSpyKSksMjU1KihlK24qKGdRKmkpKSx0aGlzLm9wYWNpdHkpfX0pKTt2YXIgQ1E9KGZ1bmN0aW9uIHQoZSl7dmFyIG49KGZ1bmN0aW9uIGkodCl7cmV0dXJuIDE9PSh0PSt0KT9UUTpmdW5jdGlvbihlLG4pe3JldHVybiBuLWU/KGZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiB0PU1hdGgucG93KHQsbiksZT1NYXRoLnBvdyhlLG4pLXQsbj0xL24sZnVuY3Rpb24oaSl7cmV0dXJuIE1hdGgucG93KHQraSplLG4pfX0pKGUsbix0KTpTUShpc05hTihlKT9uOmUpfX0pKGUpO2Z1bmN0aW9uIHIodCxlKXt2YXIgaT1uKCh0PUhKKHQpKS5yLChlPUhKKGUpKS5yKSxyPW4odC5nLGUuZyksbz1uKHQuYixlLmIpLGE9VFEodC5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LnI9aShlKSx0Lmc9cihlKSx0LmI9byhlKSx0Lm9wYWNpdHk9YShlKSx0KyIifX1yZXR1cm4gci5nYW1tYT10LHJ9KSgxKTtmdW5jdGlvbiBBUSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG4saSxyPWUubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9bmV3IEFycmF5KHIpLHM9bmV3IEFycmF5KHIpO2ZvcihuPTA7bjxyOysrbilpPUhKKGVbbl0pLG9bbl09aS5yfHwwLGFbbl09aS5nfHwwLHNbbl09aS5ifHwwO3JldHVybiBvPXQobyksYT10KGEpLHM9dChzKSxpLm9wYWNpdHk9MSxmdW5jdGlvbih0KXtyZXR1cm4gaS5yPW8odCksaS5nPWEodCksaS5iPXModCksaSsiIn19fXZhciBrUT1BUSh4USksTFE9QVEod1EpO2Z1bmN0aW9uIFBRKHQsZSl7dmFyIG4saT1lP2UubGVuZ3RoOjAscj10P01hdGgubWluKGksdC5sZW5ndGgpOjAsbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPHI7KytuKW9bbl09QlEodFtuXSxlW25dKTtmb3IoO248aTsrK24pYVtuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3Iobj0wO248cjsrK24pYVtuXT1vW25dKHQpO3JldHVybiBhfX1mdW5jdGlvbiBOUSh0LGUpe3ZhciBuPW5ldyBEYXRlO3JldHVybiBlLT10PSt0LGZ1bmN0aW9uKGkpe3JldHVybiBuLnNldFRpbWUodCtlKmkpLG59fWZ1bmN0aW9uIElRKHQsZSl7cmV0dXJuIGUtPXQ9K3QsZnVuY3Rpb24obil7cmV0dXJuIHQrZSpufX1mdW5jdGlvbiBSUSh0LGUpe3ZhciBuLGk9e30scj17fTtmb3IobiBpbiBudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0fHwodD17fSksbnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZXx8KGU9e30pLGUpbiBpbiB0P2lbbl09QlEodFtuXSxlW25dKTpyW25dPWVbbl07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihuIGluIGkpcltuXT1pW25dKHQpO3JldHVybiByfX12YXIgT1E9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLHpRPW5ldyBSZWdFeHAoT1Euc291cmNlLCJnIik7ZnVuY3Rpb24gRFEodCxlKXt2YXIgbixpLHIsbz1PUS5sYXN0SW5kZXg9elEubGFzdEluZGV4PTAsYT0tMSxzPVtdLGw9W107Zm9yKHQrPSIiLGUrPSIiOyhuPU9RLmV4ZWModCkpJiYoaT16US5leGVjKGUpKTspKHI9aS5pbmRleCk+byYmKHI9ZS5zbGljZShvLHIpLHNbYV0/c1thXSs9cjpzWysrYV09ciksKG49blswXSk9PT0oaT1pWzBdKT9zW2FdP3NbYV0rPWk6c1srK2FdPWk6KHNbKythXT1udWxsLGwucHVzaCh7aTphLHg6SVEobixpKX0pKSxvPXpRLmxhc3RJbmRleDtyZXR1cm4gbzxlLmxlbmd0aCYmKHI9ZS5zbGljZShvKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLHMubGVuZ3RoPDI/bFswXT8oZnVuY3Rpb24gYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSkrIiJ9fSkobFswXS54KTooZnVuY3Rpb24gdSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KShlKTooZT1sLmxlbmd0aCxmdW5jdGlvbih0KXtmb3IodmFyIG4saT0wO2k8ZTsrK2kpc1sobj1sW2ldKS5pXT1uLngodCk7cmV0dXJuIHMuam9pbigiIil9KX1mdW5jdGlvbiBCUSh0LGUpe3ZhciBuLGk9dHlwZW9mIGU7cmV0dXJuIG51bGw9PWV8fCJib29sZWFuIj09PWk/U1EoZSk6KCJudW1iZXIiPT09aT9JUToic3RyaW5nIj09PWk/KG49T0ooZSkpPyhlPW4sQ1EpOkRROmUgaW5zdGFuY2VvZiBPSj9DUTplIGluc3RhbmNlb2YgRGF0ZT9OUTpBcnJheS5pc0FycmF5KGUpP1BROiJmdW5jdGlvbiIhPXR5cGVvZiBlLnZhbHVlT2YmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLnRvU3RyaW5nfHxpc05hTihlKT9SUTpJUSkodCxlKX12YXIgSFEsRlEsVlEsVVEsalE9MTgwL01hdGguUEksR1E9e3RyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX07ZnVuY3Rpb24gV1EodCxlLG4saSxyLG8pe3ZhciBhLHMsbDtyZXR1cm4oYT1NYXRoLnNxcnQodCp0K2UqZSkpJiYodC89YSxlLz1hKSwobD10Km4rZSppKSYmKG4tPXQqbCxpLT1lKmwpLChzPU1hdGguc3FydChuKm4raSppKSkmJihuLz1zLGkvPXMsbC89cyksdCppPGUqbiYmKHQ9LXQsZT0tZSxsPS1sLGE9LWEpLHt0cmFuc2xhdGVYOnIsdHJhbnNsYXRlWTpvLHJvdGF0ZTpNYXRoLmF0YW4yKGUsdCkqalEsc2tld1g6TWF0aC5hdGFuKGwpKmpRLHNjYWxlWDphLHNjYWxlWTpzfX1mdW5jdGlvbiBxUSh0LGUsbixpKXtmdW5jdGlvbiByKHQpe3JldHVybiB0Lmxlbmd0aD90LnBvcCgpKyIgIjoiIn1yZXR1cm4gZnVuY3Rpb24obyxhKXt2YXIgcz1bXSxsPVtdO3JldHVybiBvPXQobyksYT10KGEpLChmdW5jdGlvbiBjKHQsaSxyLG8sYSxzKXtpZih0IT09cnx8aSE9PW8pe3ZhciBsPWEucHVzaCgidHJhbnNsYXRlKCIsbnVsbCxlLG51bGwsbik7cy5wdXNoKHtpOmwtNCx4OklRKHQscil9LHtpOmwtMix4OklRKGksbyl9KX1lbHNlKHJ8fG8pJiZhLnB1c2goInRyYW5zbGF0ZSgiK3IrZStvK24pfSkoby50cmFuc2xhdGVYLG8udHJhbnNsYXRlWSxhLnRyYW5zbGF0ZVgsYS50cmFuc2xhdGVZLHMsbCksKGZ1bmN0aW9uIHUodCxlLG4sbyl7dCE9PWU/KHQtZT4xODA/ZSs9MzYwOmUtdD4xODAmJih0Kz0zNjApLG8ucHVzaCh7aTpuLnB1c2gocihuKSsicm90YXRlKCIsbnVsbCxpKS0yLHg6SVEodCxlKX0pKTplJiZuLnB1c2gocihuKSsicm90YXRlKCIrZStpKX0pKG8ucm90YXRlLGEucm90YXRlLHMsbCksKGZ1bmN0aW9uIGgodCxlLG4sbyl7dCE9PWU/by5wdXNoKHtpOm4ucHVzaChyKG4pKyJza2V3WCgiLG51bGwsaSktMix4OklRKHQsZSl9KTplJiZuLnB1c2gocihuKSsic2tld1goIitlK2kpfSkoby5za2V3WCxhLnNrZXdYLHMsbCksKGZ1bmN0aW9uIGQodCxlLG4saSxvLGEpe2lmKHQhPT1ufHxlIT09aSl7dmFyIHM9by5wdXNoKHIobykrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO2EucHVzaCh7aTpzLTQseDpJUSh0LG4pfSx7aTpzLTIseDpJUShlLGkpfSl9ZWxzZSAxPT09biYmMT09PWl8fG8ucHVzaChyKG8pKyJzY2FsZSgiK24rIiwiK2krIikiKX0pKG8uc2NhbGVYLG8uc2NhbGVZLGEuc2NhbGVYLGEuc2NhbGVZLHMsbCksbz1hPW51bGwsZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49LTEsaT1sLmxlbmd0aDsrK248aTspc1soZT1sW25dKS5pXT1lLngodCk7cmV0dXJuIHMuam9pbigiIil9fX12YXIgWVE9cVEoKGZ1bmN0aW9uIFhRKHQpe3JldHVybiJub25lIj09PXQ/R1E6KEhRfHwoSFE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIiksRlE9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFZRPWRvY3VtZW50LmRlZmF1bHRWaWV3KSxIUS5zdHlsZS50cmFuc2Zvcm09dCx0PVZRLmdldENvbXB1dGVkU3R5bGUoRlEuYXBwZW5kQ2hpbGQoSFEpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLEZRLnJlbW92ZUNoaWxkKEhRKSxXUSgrKHQ9dC5zbGljZSg3LC0xKS5zcGxpdCgiLCIpKVswXSwrdFsxXSwrdFsyXSwrdFszXSwrdFs0XSwrdFs1XSkpfSksInB4LCAiLCJweCkiLCJkZWcpIiksJFE9cVEoKGZ1bmN0aW9uIEtRKHQpe3JldHVybiBudWxsPT10P0dROihVUXx8KFVRPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIikpLFVRLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIix0KSwodD1VUS50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpKT9XUSgodD10Lm1hdHJpeCkuYSx0LmIsdC5jLHQuZCx0LmUsdC5mKTpHUSl9KSwiLCAiLCIpIiwiKSIpLFpRPU1hdGguU1FSVDI7ZnVuY3Rpb24gSlEodCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKSsxL3QpLzJ9ZnVuY3Rpb24gUVEodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9dCgoZT1xSihlKSkuaCwobj1xSihuKSkuaCkscj1UUShlLnMsbi5zKSxvPVRRKGUubCxuLmwpLGE9VFEoZS5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmg9aSh0KSxlLnM9cih0KSxlLmw9byh0KSxlLm9wYWNpdHk9YSh0KSxlKyIifX19dmFyIHQxPVFRKEVRKSxlMT1RUShUUSk7ZnVuY3Rpb24gbjEodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9dCgoZT1oUShlKSkuaCwobj1oUShuKSkuaCkscj1UUShlLmMsbi5jKSxvPVRRKGUubCxuLmwpLGE9VFEoZS5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmg9aSh0KSxlLmM9cih0KSxlLmw9byh0KSxlLm9wYWNpdHk9YSh0KSxlKyIifX19dmFyIGkxPW4xKEVRKSxyMT1uMShUUSk7ZnVuY3Rpb24gbzEodCl7cmV0dXJuKGZ1bmN0aW9uIGUobil7ZnVuY3Rpb24gaShlLGkpe3ZhciByPXQoKGU9eVEoZSkpLmgsKGk9eVEoaSkpLmgpLG89VFEoZS5zLGkucyksYT1UUShlLmwsaS5sKSxzPVRRKGUub3BhY2l0eSxpLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5oPXIodCksZS5zPW8odCksZS5sPWEoTWF0aC5wb3codCxuKSksZS5vcGFjaXR5PXModCksZSsiIn19cmV0dXJuIG49K24saS5nYW1tYT1lLGl9KSgxKX12YXIgYTE9bzEoRVEpLHMxPW8xKFRRKSxsMT1NYXRoLlBJLGMxPTIqbDEsdTE9MWUtNixoMT1jMS11MTtmdW5jdGlvbiBkMSgpe3RoaXMuX3gwPXRoaXMuX3kwPXRoaXMuX3gxPXRoaXMuX3kxPW51bGwsdGhpcy5fPSIifWZ1bmN0aW9uIHAxKCl7cmV0dXJuIG5ldyBkMX1mdW5jdGlvbiBmMSh0LGUsbil7cmV0dXJuKGVbMF0tdFswXSkqKG5bMV0tdFsxXSktKGVbMV0tdFsxXSkqKG5bMF0tdFswXSl9ZnVuY3Rpb24gbTEodCxlKXtyZXR1cm4gdFswXS1lWzBdfHx0WzFdLWVbMV19ZnVuY3Rpb24gZzEodCl7Zm9yKHZhciBlPXQubGVuZ3RoLG49WzAsMV0saT0yLHI9MjtyPGU7KytyKXtmb3IoO2k+MSYmZjEodFtuW2ktMl1dLHRbbltpLTFdXSx0W3JdKTw9MDspLS1pO25baSsrXT1yfXJldHVybiBuLnNsaWNlKDAsaSl9ZnVuY3Rpb24gXzEodCxlLG4saSl7aWYoaXNOYU4oZSl8fGlzTmFOKG4pKXJldHVybiB0O3ZhciByLG8sYSxzLGwsYyx1LGgsZCxwPXQuX3Jvb3QsZj17ZGF0YTppfSxtPXQuX3gwLGc9dC5feTAsXz10Ll94MSx5PXQuX3kxO2lmKCFwKXJldHVybiB0Ll9yb290PWYsdDtmb3IoO3AubGVuZ3RoOylpZigoYz1lPj0obz0obStfKS8yKSk/bT1vOl89bywodT1uPj0oYT0oZyt5KS8yKSk/Zz1hOnk9YSxyPXAsIShwPXBbaD11PDwxfGNdKSlyZXR1cm4gcltoXT1mLHQ7aWYocz0rdC5feC5jYWxsKG51bGwscC5kYXRhKSxsPSt0Ll95LmNhbGwobnVsbCxwLmRhdGEpLGU9PT1zJiZuPT09bClyZXR1cm4gZi5uZXh0PXAscj9yW2hdPWY6dC5fcm9vdD1mLHQ7ZG97cj1yP3JbaF09bmV3IEFycmF5KDQpOnQuX3Jvb3Q9bmV3IEFycmF5KDQpLChjPWU+PShvPShtK18pLzIpKT9tPW86Xz1vLCh1PW4+PShhPShnK3kpLzIpKT9nPWE6eT1hfXdoaWxlKChoPXU8PDF8Yyk9PShkPShsPj1hKTw8MXxzPj1vKSk7cmV0dXJuIHJbZF09cCxyW2hdPWYsdH1mdW5jdGlvbiB5MSh0LGUsbixpLHIpe3RoaXMubm9kZT10LHRoaXMueDA9ZSx0aGlzLnkwPW4sdGhpcy54MT1pLHRoaXMueTE9cn1mdW5jdGlvbiB2MSh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBiMSh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiB4MSh0LGUsbil7dmFyIGk9bmV3IHcxKG51bGw9PWU/djE6ZSxudWxsPT1uP2IxOm4sTmFOLE5hTixOYU4sTmFOKTtyZXR1cm4gbnVsbD09dD9pOmkuYWRkQWxsKHQpfWZ1bmN0aW9uIHcxKHQsZSxuLGkscixvKXt0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3gwPW4sdGhpcy5feTA9aSx0aGlzLl94MT1yLHRoaXMuX3kxPW8sdGhpcy5fcm9vdD12b2lkIDB9ZnVuY3Rpb24gUzEodCl7Zm9yKHZhciBlPXtkYXRhOnQuZGF0YX0sbj1lO3Q9dC5uZXh0OyluPW4ubmV4dD17ZGF0YTp0LmRhdGF9O3JldHVybiBlfWQxLnByb3RvdHlwZT1wMS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmQxLG1vdmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rZSl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe251bGwhPT10aGlzLl94MSYmKHRoaXMuX3gxPXRoaXMuX3gwLHRoaXMuX3kxPXRoaXMuX3kwLHRoaXMuXys9IloiKX0sbGluZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTCIrKHRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kxPStlKX0scXVhZHJhdGljQ3VydmVUbzpmdW5jdGlvbih0LGUsbixpKXt0aGlzLl8rPSJRIisgK3QrIiwiKyArZSsiLCIrKHRoaXMuX3gxPStuKSsiLCIrKHRoaXMuX3kxPStpKX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dGhpcy5fKz0iQyIrICt0KyIsIisgK2UrIiwiKyArbisiLCIrICtpKyIsIisodGhpcy5feDE9K3IpKyIsIisodGhpcy5feTE9K28pfSxhcmNUbzpmdW5jdGlvbih0LGUsbixpLHIpe3ZhciBvPXRoaXMuX3gxLGE9dGhpcy5feTEscz0obj0rbiktKHQ9K3QpLGw9KGk9K2kpLShlPStlKSxjPW8tdCx1PWEtZSxoPWMqYyt1KnU7aWYoKHI9K3IpPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIrcik7aWYobnVsbD09PXRoaXMuX3gxKXRoaXMuXys9Ik0iKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPWUpO2Vsc2UgaWYoaD51MSlpZihNYXRoLmFicyh1KnMtbCpjKT51MSYmcil7dmFyIGQ9bi1vLHA9aS1hLGY9cypzK2wqbCxtPWQqZCtwKnAsZz1NYXRoLnNxcnQoZiksXz1NYXRoLnNxcnQoaCkseT1yKk1hdGgudGFuKChsMS1NYXRoLmFjb3MoKGYraC1tKS8oMipnKl8pKSkvMiksdj15L18sYj15L2c7TWF0aC5hYnModi0xKT51MSYmKHRoaXMuXys9IkwiKyh0K3YqYykrIiwiKyhlK3YqdSkpLHRoaXMuXys9IkEiK3IrIiwiK3IrIiwwLDAsIisgKyh1KmQ+YypwKSsiLCIrKHRoaXMuX3gxPXQrYipzKSsiLCIrKHRoaXMuX3kxPWUrYipsKX1lbHNlIHRoaXMuXys9IkwiKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPWUpfSxhcmM6ZnVuY3Rpb24odCxlLG4saSxyLG8pe3Q9K3QsZT0rZTt2YXIgYT0obj0rbikqTWF0aC5jb3MoaSkscz1uKk1hdGguc2luKGkpLGw9dCthLGM9ZStzLHU9MV5vLGg9bz9pLXI6ci1pO2lmKG48MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIituKTtudWxsPT09dGhpcy5feDE/dGhpcy5fKz0iTSIrbCsiLCIrYzooTWF0aC5hYnModGhpcy5feDEtbCk+dTF8fE1hdGguYWJzKHRoaXMuX3kxLWMpPnUxKSYmKHRoaXMuXys9IkwiK2wrIiwiK2MpLG4mJihoPDAmJihoPWglYzErYzEpLGg+aDE/dGhpcy5fKz0iQSIrbisiLCIrbisiLDAsMSwiK3UrIiwiKyh0LWEpKyIsIisoZS1zKSsiQSIrbisiLCIrbisiLDAsMSwiK3UrIiwiKyh0aGlzLl94MT1sKSsiLCIrKHRoaXMuX3kxPWMpOmg+dTEmJih0aGlzLl8rPSJBIituKyIsIituKyIsMCwiKyArKGg+PWwxKSsiLCIrdSsiLCIrKHRoaXMuX3gxPXQrbipNYXRoLmNvcyhyKSkrIiwiKyh0aGlzLl95MT1lK24qTWF0aC5zaW4ocikpKSl9LHJlY3Q6ZnVuY3Rpb24odCxlLG4saSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKSsiaCIrICtuKyJ2IisgK2krImgiKy1uKyJaIn0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX07dmFyIE0xPXgxLnByb3RvdHlwZT13MS5wcm90b3R5cGU7TTEuY29weT1mdW5jdGlvbigpe3ZhciB0LGUsbj1uZXcgdzEodGhpcy5feCx0aGlzLl95LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSxpPXRoaXMuX3Jvb3Q7aWYoIWkpcmV0dXJuIG47aWYoIWkubGVuZ3RoKXJldHVybiBuLl9yb290PVMxKGkpLG47Zm9yKHQ9W3tzb3VyY2U6aSx0YXJnZXQ6bi5fcm9vdD1uZXcgQXJyYXkoNCl9XTtpPXQucG9wKCk7KWZvcih2YXIgcj0wO3I8NDsrK3IpKGU9aS5zb3VyY2Vbcl0pJiYoZS5sZW5ndGg/dC5wdXNoKHtzb3VyY2U6ZSx0YXJnZXQ6aS50YXJnZXRbcl09bmV3IEFycmF5KDQpfSk6aS50YXJnZXRbcl09UzEoZSkpO3JldHVybiBufSxNMS5hZGQ9ZnVuY3Rpb24gRTEodCl7dmFyIGU9K3RoaXMuX3guY2FsbChudWxsLHQpLG49K3RoaXMuX3kuY2FsbChudWxsLHQpO3JldHVybiBfMSh0aGlzLmNvdmVyKGUsbiksZSxuLHQpfSxNMS5hZGRBbGw9ZnVuY3Rpb24gVDEodCl7dmFyIGUsbixpLHIsbz10Lmxlbmd0aCxhPW5ldyBBcnJheShvKSxzPW5ldyBBcnJheShvKSxsPTEvMCxjPTEvMCx1PS0xLzAsaD0tMS8wO2ZvcihuPTA7bjxvOysrbilpc05hTihpPSt0aGlzLl94LmNhbGwobnVsbCxlPXRbbl0pKXx8aXNOYU4ocj0rdGhpcy5feS5jYWxsKG51bGwsZSkpfHwoYVtuXT1pLHNbbl09cixpPGwmJihsPWkpLGk+dSYmKHU9aSkscjxjJiYoYz1yKSxyPmgmJihoPXIpKTtmb3IodTxsJiYobD10aGlzLl94MCx1PXRoaXMuX3gxKSxoPGMmJihjPXRoaXMuX3kwLGg9dGhpcy5feTEpLHRoaXMuY292ZXIobCxjKS5jb3Zlcih1LGgpLG49MDtuPG87KytuKV8xKHRoaXMsYVtuXSxzW25dLHRbbl0pO3JldHVybiB0aGlzfSxNMS5jb3Zlcj1mdW5jdGlvbiBDMSh0LGUpe2lmKGlzTmFOKHQ9K3QpfHxpc05hTihlPStlKSlyZXR1cm4gdGhpczt2YXIgbj10aGlzLl94MCxpPXRoaXMuX3kwLHI9dGhpcy5feDEsbz10aGlzLl95MTtpZihpc05hTihuKSlyPShuPU1hdGguZmxvb3IodCkpKzEsbz0oaT1NYXRoLmZsb29yKGUpKSsxO2Vsc2V7aWYoIShuPnR8fHQ+cnx8aT5lfHxlPm8pKXJldHVybiB0aGlzO3ZhciBhLHMsbD1yLW4sYz10aGlzLl9yb290O3N3aXRjaChzPShlPChpK28pLzIpPDwxfHQ8KG4rcikvMil7Y2FzZSAwOmRveyhhPW5ldyBBcnJheSg0KSlbc109YyxjPWF9d2hpbGUobz1pKyhsKj0yKSx0PihyPW4rbCl8fGU+byk7YnJlYWs7Y2FzZSAxOmRveyhhPW5ldyBBcnJheSg0KSlbc109YyxjPWF9d2hpbGUobz1pKyhsKj0yKSwobj1yLWwpPnR8fGU+byk7YnJlYWs7Y2FzZSAyOmRveyhhPW5ldyBBcnJheSg0KSlbc109YyxjPWF9d2hpbGUoaT1vLShsKj0yKSx0PihyPW4rbCl8fGk+ZSk7YnJlYWs7Y2FzZSAzOmRveyhhPW5ldyBBcnJheSg0KSlbc109YyxjPWF9d2hpbGUoaT1vLShsKj0yKSwobj1yLWwpPnR8fGk+ZSl9dGhpcy5fcm9vdCYmdGhpcy5fcm9vdC5sZW5ndGgmJih0aGlzLl9yb290PWMpfXJldHVybiB0aGlzLl94MD1uLHRoaXMuX3kwPWksdGhpcy5feDE9cix0aGlzLl95MT1vLHRoaXN9LE0xLmRhdGE9ZnVuY3Rpb24gQTEoKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy52aXNpdCgoZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKWRve3QucHVzaChlLmRhdGEpfXdoaWxlKGU9ZS5uZXh0KX0pKSx0fSxNMS5leHRlbnQ9ZnVuY3Rpb24gazEodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LE0xLmZpbmQ9ZnVuY3Rpb24gTDEodCxlLG4pe3ZhciBpLHIsbyxhLHMsbCxjLHU9dGhpcy5feDAsaD10aGlzLl95MCxkPXRoaXMuX3gxLHA9dGhpcy5feTEsZj1bXSxtPXRoaXMuX3Jvb3Q7Zm9yKG0mJmYucHVzaChuZXcgeTEobSx1LGgsZCxwKSksbnVsbD09bj9uPTEvMDoodT10LW4saD1lLW4sZD10K24scD1lK24sbio9bik7bD1mLnBvcCgpOylpZighKCEobT1sLm5vZGUpfHwocj1sLngwKT5kfHwobz1sLnkwKT5wfHwoYT1sLngxKTx1fHwocz1sLnkxKTxoKSlpZihtLmxlbmd0aCl7dmFyIGc9KHIrYSkvMixfPShvK3MpLzI7Zi5wdXNoKG5ldyB5MShtWzNdLGcsXyxhLHMpLG5ldyB5MShtWzJdLHIsXyxnLHMpLG5ldyB5MShtWzFdLGcsbyxhLF8pLG5ldyB5MShtWzBdLHIsbyxnLF8pKSwoYz0oZT49Xyk8PDF8dD49ZykmJihsPWZbZi5sZW5ndGgtMV0sZltmLmxlbmd0aC0xXT1mW2YubGVuZ3RoLTEtY10sZltmLmxlbmd0aC0xLWNdPWwpfWVsc2V7dmFyIHk9dC0rdGhpcy5feC5jYWxsKG51bGwsbS5kYXRhKSx2PWUtK3RoaXMuX3kuY2FsbChudWxsLG0uZGF0YSksYj15Knkrdip2O2lmKGI8bil7dmFyIHg9TWF0aC5zcXJ0KG49Yik7dT10LXgsaD1lLXgsZD10K3gscD1lK3gsaT1tLmRhdGF9fXJldHVybiBpfSxNMS5yZW1vdmU9ZnVuY3Rpb24gUDEodCl7aWYoaXNOYU4obz0rdGhpcy5feC5jYWxsKG51bGwsdCkpfHxpc05hTihhPSt0aGlzLl95LmNhbGwobnVsbCx0KSkpcmV0dXJuIHRoaXM7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaCxkLHA9dGhpcy5fcm9vdCxmPXRoaXMuX3gwLG09dGhpcy5feTAsZz10aGlzLl94MSxfPXRoaXMuX3kxO2lmKCFwKXJldHVybiB0aGlzO2lmKHAubGVuZ3RoKWZvcig7Oyl7aWYoKGM9bz49KHM9KGYrZykvMikpP2Y9czpnPXMsKHU9YT49KGw9KG0rXykvMikpP209bDpfPWwsZT1wLCEocD1wW2g9dTw8MXxjXSkpcmV0dXJuIHRoaXM7aWYoIXAubGVuZ3RoKWJyZWFrOyhlW2grMSYzXXx8ZVtoKzImM118fGVbaCszJjNdKSYmKG49ZSxkPWgpfWZvcig7cC5kYXRhIT09dDspaWYoaT1wLCEocD1wLm5leHQpKXJldHVybiB0aGlzO3JldHVybihyPXAubmV4dCkmJmRlbGV0ZSBwLm5leHQsaT8ocj9pLm5leHQ9cjpkZWxldGUgaS5uZXh0LHRoaXMpOmU/KHI/ZVtoXT1yOmRlbGV0ZSBlW2hdLChwPWVbMF18fGVbMV18fGVbMl18fGVbM10pJiZwPT09KGVbM118fGVbMl18fGVbMV18fGVbMF0pJiYhcC5sZW5ndGgmJihuP25bZF09cDp0aGlzLl9yb290PXApLHRoaXMpOih0aGlzLl9yb290PXIsdGhpcyl9LE0xLnJlbW92ZUFsbD1mdW5jdGlvbiBOMSh0KXtmb3IodmFyIGU9MCxuPXQubGVuZ3RoO2U8bjsrK2UpdGhpcy5yZW1vdmUodFtlXSk7cmV0dXJuIHRoaXN9LE0xLnJvb3Q9ZnVuY3Rpb24gSTEoKXtyZXR1cm4gdGhpcy5fcm9vdH0sTTEuc2l6ZT1mdW5jdGlvbiBSMSgpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoKGZ1bmN0aW9uKGUpe2lmKCFlLmxlbmd0aClkb3srK3R9d2hpbGUoZT1lLm5leHQpfSkpLHR9LE0xLnZpc2l0PWZ1bmN0aW9uIE8xKHQpe3ZhciBlLG4saSxyLG8sYSxzPVtdLGw9dGhpcy5fcm9vdDtmb3IobCYmcy5wdXNoKG5ldyB5MShsLHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7ZT1zLnBvcCgpOylpZighdChsPWUubm9kZSxpPWUueDAscj1lLnkwLG89ZS54MSxhPWUueTEpJiZsLmxlbmd0aCl7dmFyIGM9KGkrbykvMix1PShyK2EpLzI7KG49bFszXSkmJnMucHVzaChuZXcgeTEobixjLHUsbyxhKSksKG49bFsyXSkmJnMucHVzaChuZXcgeTEobixpLHUsYyxhKSksKG49bFsxXSkmJnMucHVzaChuZXcgeTEobixjLHIsbyx1KSksKG49bFswXSkmJnMucHVzaChuZXcgeTEobixpLHIsYyx1KSl9cmV0dXJuIHRoaXN9LE0xLnZpc2l0QWZ0ZXI9ZnVuY3Rpb24gejEodCl7dmFyIGUsbj1bXSxpPVtdO2Zvcih0aGlzLl9yb290JiZuLnB1c2gobmV3IHkxKHRoaXMuX3Jvb3QsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtlPW4ucG9wKCk7KXt2YXIgcj1lLm5vZGU7aWYoci5sZW5ndGgpe3ZhciBvLGE9ZS54MCxzPWUueTAsbD1lLngxLGM9ZS55MSx1PShhK2wpLzIsaD0ocytjKS8yOyhvPXJbMF0pJiZuLnB1c2gobmV3IHkxKG8sYSxzLHUsaCkpLChvPXJbMV0pJiZuLnB1c2gobmV3IHkxKG8sdSxzLGwsaCkpLChvPXJbMl0pJiZuLnB1c2gobmV3IHkxKG8sYSxoLHUsYykpLChvPXJbM10pJiZuLnB1c2gobmV3IHkxKG8sdSxoLGwsYykpfWkucHVzaChlKX1mb3IoO2U9aS5wb3AoKTspdChlLm5vZGUsZS54MCxlLnkwLGUueDEsZS55MSk7cmV0dXJuIHRoaXN9LE0xLng9ZnVuY3Rpb24gRDEodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3g9dCx0aGlzKTp0aGlzLl94fSxNMS55PWZ1bmN0aW9uIEIxKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl95PXQsdGhpcyk6dGhpcy5feX07dmFyIEgxPVtdLnNsaWNlLEYxPXt9O2Z1bmN0aW9uIFYxKHQpe3RoaXMuX3NpemU9dCx0aGlzLl9jYWxsPXRoaXMuX2Vycm9yPW51bGwsdGhpcy5fdGFza3M9W10sdGhpcy5fZGF0YT1bXSx0aGlzLl93YWl0aW5nPXRoaXMuX2FjdGl2ZT10aGlzLl9lbmRlZD10aGlzLl9zdGFydD0wfWZ1bmN0aW9uIFUxKHQpe2lmKCF0Ll9zdGFydCl0cnl7IShmdW5jdGlvbiBlKHQpe2Zvcig7dC5fc3RhcnQ9dC5fd2FpdGluZyYmdC5fYWN0aXZlPHQuX3NpemU7KXt2YXIgZT10Ll9lbmRlZCt0Ll9hY3RpdmUsbj10Ll90YXNrc1tlXSxpPW4ubGVuZ3RoLTEscj1uW2ldO25baV09ajEodCxlKSwtLXQuX3dhaXRpbmcsKyt0Ll9hY3RpdmUsbj1yLmFwcGx5KG51bGwsbiksdC5fdGFza3NbZV0mJih0Ll90YXNrc1tlXT1ufHxGMSl9fSkodCl9Y2F0Y2goZSl7aWYodC5fdGFza3NbdC5fZW5kZWQrdC5fYWN0aXZlLTFdKUcxKHQsZSk7ZWxzZSBpZighdC5fZGF0YSl0aHJvdyBlfX1mdW5jdGlvbiBqMSh0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe3QuX3Rhc2tzW2VdJiYoLS10Ll9hY3RpdmUsKyt0Ll9lbmRlZCx0Ll90YXNrc1tlXT1udWxsLG51bGw9PXQuX2Vycm9yJiYobnVsbCE9bj9HMSh0LG4pOih0Ll9kYXRhW2VdPWksdC5fd2FpdGluZz9VMSh0KTpXMSh0KSkpKX19ZnVuY3Rpb24gRzEodCxlKXt2YXIgbixpPXQuX3Rhc2tzLmxlbmd0aDtmb3IodC5fZXJyb3I9ZSx0Ll9kYXRhPXZvaWQgMCx0Ll93YWl0aW5nPU5hTjstLWk+PTA7KWlmKChuPXQuX3Rhc2tzW2ldKSYmKHQuX3Rhc2tzW2ldPW51bGwsbi5hYm9ydCkpdHJ5e24uYWJvcnQoKX1jYXRjaChlKXt9dC5fYWN0aXZlPU5hTixXMSh0KX1mdW5jdGlvbiBXMSh0KXtpZighdC5fYWN0aXZlJiZ0Ll9jYWxsKXt2YXIgZT10Ll9kYXRhO3QuX2RhdGE9dm9pZCAwLHQuX2NhbGwodC5fZXJyb3IsZSl9fWZ1bmN0aW9uIHExKHQpe2lmKG51bGw9PXQpdD0xLzA7ZWxzZSBpZighKCh0PSt0KT49MSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNvbmN1cnJlbmN5Iik7cmV0dXJuIG5ldyBWMSh0KX1mdW5jdGlvbiBZMSgpe3JldHVybiBNYXRoLnJhbmRvbSgpfVYxLnByb3RvdHlwZT1xMS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlYxLGRlZmVyOmZ1bmN0aW9uKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjayIpO2lmKHRoaXMuX2NhbGwpdGhyb3cgbmV3IEVycm9yKCJkZWZlciBhZnRlciBhd2FpdCIpO2lmKG51bGwhPXRoaXMuX2Vycm9yKXJldHVybiB0aGlzO3ZhciBlPUgxLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBlLnB1c2godCksKyt0aGlzLl93YWl0aW5nLHRoaXMuX3Rhc2tzLnB1c2goZSksVTEodGhpcyksdGhpc30sYWJvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09dGhpcy5fZXJyb3ImJkcxKHRoaXMsbmV3IEVycm9yKCJhYm9ydCIpKSx0aGlzfSxhd2FpdDpmdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2siKTtpZih0aGlzLl9jYWxsKXRocm93IG5ldyBFcnJvcigibXVsdGlwbGUgYXdhaXQiKTtyZXR1cm4gdGhpcy5fY2FsbD1mdW5jdGlvbihlLG4pe3QuYXBwbHkobnVsbCxbZV0uY29uY2F0KG4pKX0sVzEodGhpcyksdGhpc30sYXdhaXRBbGw6ZnVuY3Rpb24odCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrIik7aWYodGhpcy5fY2FsbCl0aHJvdyBuZXcgRXJyb3IoIm11bHRpcGxlIGF3YWl0Iik7cmV0dXJuIHRoaXMuX2NhbGw9dCxXMSh0aGlzKSx0aGlzfX07dmFyIFgxPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gdD1udWxsPT10PzA6K3Qsbj1udWxsPT1uPzE6K24sMT09PWFyZ3VtZW50cy5sZW5ndGg/KG49dCx0PTApOm4tPXQsZnVuY3Rpb24oKXtyZXR1cm4gZSgpKm4rdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKFkxKSwkMT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQsbil7dmFyIGkscjtyZXR1cm4gdD1udWxsPT10PzA6K3Qsbj1udWxsPT1uPzE6K24sZnVuY3Rpb24oKXt2YXIgbztpZihudWxsIT1pKW89aSxpPW51bGw7ZWxzZSBkb3tpPTIqZSgpLTEsbz0yKmUoKS0xLHI9aSppK28qb313aGlsZSghcnx8cj4xKTtyZXR1cm4gdCtuKm8qTWF0aC5zcXJ0KC0yKk1hdGgubG9nKHIpL3IpfX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoWTEpLEsxPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4oKXt2YXIgdD0kMS5zb3VyY2UoZSkuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNYXRoLmV4cCh0KCkpfX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoWTEpLFoxPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPTAsaT0wO2k8dDsrK2kpbis9ZSgpO3JldHVybiBufX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoWTEpLEoxPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7dmFyIG49WjEuc291cmNlKGUpKHQpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKCkvdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKFkxKSxRMT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybi1NYXRoLmxvZygxLWUoKSkvdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKFkxKTtmdW5jdGlvbiB0MCh0LGUpe3ZhciBuLGkscixvLGE9bGMoImJlZm9yZXNlbmQiLCJwcm9ncmVzcyIsImxvYWQiLCJlcnJvciIpLHM9d2coKSxsPW5ldyBYTUxIdHRwUmVxdWVzdCxjPW51bGwsdT1udWxsLGg9MDtmdW5jdGlvbiBkKHQpe3ZhciBlLGk9bC5zdGF0dXM7aWYoIWkmJihmdW5jdGlvbiBvKHQpe3ZhciBlPXQucmVzcG9uc2VUeXBlO3JldHVybiBlJiYidGV4dCIhPT1lP3QucmVzcG9uc2U6dC5yZXNwb25zZVRleHR9KShsKXx8aT49MjAwJiZpPDMwMHx8MzA0PT09aSl7aWYocil0cnl7ZT1yLmNhbGwobixsKX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBhLmNhbGwoImVycm9yIixuLHQpfWVsc2UgZT1sO2EuY2FsbCgibG9hZCIsbixlKX1lbHNlIGEuY2FsbCgiZXJyb3IiLG4sdCl9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBYRG9tYWluUmVxdWVzdCYmISgid2l0aENyZWRlbnRpYWxzImluIGwpJiYvXihodHRwKHMpPzopP1wvXC8vLnRlc3QodCkmJihsPW5ldyBYRG9tYWluUmVxdWVzdCksIm9ubG9hZCJpbiBsP2wub25sb2FkPWwub25lcnJvcj1sLm9udGltZW91dD1kOmwub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKHQpe2wucmVhZHlTdGF0ZT4zJiZkKHQpfSxsLm9ucHJvZ3Jlc3M9ZnVuY3Rpb24odCl7YS5jYWxsKCJwcm9ncmVzcyIsbix0KX0sbj17aGVhZGVyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9KHQrIiIpLnRvTG93ZXJDYXNlKCksYXJndW1lbnRzLmxlbmd0aDwyP3MuZ2V0KHQpOihudWxsPT1lP3MucmVtb3ZlKHQpOnMuc2V0KHQsZSsiIiksbil9LG1pbWVUeXBlOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDp0KyIiLG4pOml9LHJlc3BvbnNlVHlwZTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LG4pOm99LHRpbWVvdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9K3Qsbik6aH0sdXNlcjpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwxP2M6KGM9bnVsbD09dD9udWxsOnQrIiIsbil9LHBhc3N3b3JkOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDE/dToodT1udWxsPT10P251bGw6dCsiIixuKX0scmVzcG9uc2U6ZnVuY3Rpb24odCl7cmV0dXJuIHI9dCxufSxnZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zZW5kKCJHRVQiLHQsZSl9LHBvc3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zZW5kKCJQT1NUIix0LGUpfSxzZW5kOmZ1bmN0aW9uKGUscixkKXtyZXR1cm4gbC5vcGVuKGUsdCwhMCxjLHUpLG51bGw9PWl8fHMuaGFzKCJhY2NlcHQiKXx8cy5zZXQoImFjY2VwdCIsaSsiLCovKiIpLGwuc2V0UmVxdWVzdEhlYWRlciYmcy5lYWNoKChmdW5jdGlvbih0LGUpe2wuc2V0UmVxdWVzdEhlYWRlcihlLHQpfSkpLG51bGwhPWkmJmwub3ZlcnJpZGVNaW1lVHlwZSYmbC5vdmVycmlkZU1pbWVUeXBlKGkpLG51bGwhPW8mJihsLnJlc3BvbnNlVHlwZT1vKSxoPjAmJihsLnRpbWVvdXQ9aCksbnVsbD09ZCYmImZ1bmN0aW9uIj09dHlwZW9mIHImJihkPXIscj1udWxsKSxudWxsIT1kJiYxPT09ZC5sZW5ndGgmJihkPShmdW5jdGlvbiBwKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3QobnVsbD09ZT9uOm51bGwpfX0pKGQpKSxudWxsIT1kJiZuLm9uKCJlcnJvciIsZCkub24oImxvYWQiLChmdW5jdGlvbih0KXtkKG51bGwsdCl9KSksYS5jYWxsKCJiZWZvcmVzZW5kIixuLGwpLGwuc2VuZChudWxsPT1yP251bGw6ciksbn0sYWJvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbC5hYm9ydCgpLG59LG9uOmZ1bmN0aW9uKCl7dmFyIHQ9YS5vbi5hcHBseShhLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1hP246dH19LG51bGwhPWUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIitlKTtyZXR1cm4gbi5nZXQoZSl9cmV0dXJuIG59ZnVuY3Rpb24gZTAodCxlKXtyZXR1cm4gZnVuY3Rpb24obixpKXt2YXIgcj10MChuKS5taW1lVHlwZSh0KS5yZXNwb25zZShlKTtpZihudWxsIT1pKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgaSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIraSk7cmV0dXJuIHIuZ2V0KGkpfXJldHVybiByfX12YXIgbjA9ZTAoInRleHQvaHRtbCIsKGZ1bmN0aW9uKHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudCh0LnJlc3BvbnNlVGV4dCl9KSksaTA9ZTAoImFwcGxpY2F0aW9uL2pzb24iLChmdW5jdGlvbih0KXtyZXR1cm4gSlNPTi5wYXJzZSh0LnJlc3BvbnNlVGV4dCl9KSkscjA9ZTAoInRleHQvcGxhaW4iLChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXNwb25zZVRleHR9KSksbzA9ZTAoImFwcGxpY2F0aW9uL3htbCIsKGZ1bmN0aW9uKHQpe3ZhciBlPXQucmVzcG9uc2VYTUw7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJwYXJzZSBlcnJvciIpO3JldHVybiBlfSkpO2Z1bmN0aW9uIGEwKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSxyKXthcmd1bWVudHMubGVuZ3RoPDMmJihyPWksaT1udWxsKTt2YXIgbz10MChuKS5taW1lVHlwZSh0KTtyZXR1cm4gby5yb3c9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/by5yZXNwb25zZShzMChlLGk9dCkpOml9LG8ucm93KGkpLHI/by5nZXQocik6b319ZnVuY3Rpb24gczAodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQobi5yZXNwb25zZVRleHQsZSl9fXZhciBsMD1hMCgidGV4dC9jc3YiLEpnKSxjMD1hMCgidGV4dC90YWItc2VwYXJhdGVkLXZhbHVlcyIsYV8pO2Z1bmN0aW9uIHUwKHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIGgwKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJih0PShmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB1MCh0KGUpLG4pfX0pKHQpKSx7bGVmdDpmdW5jdGlvbihlLG4saSxyKXtmb3IobnVsbD09aSYmKGk9MCksbnVsbD09ciYmKHI9ZS5sZW5ndGgpO2k8cjspe3ZhciBvPWkrcj4+PjE7dChlW29dLG4pPDA/aT1vKzE6cj1vfXJldHVybiBpfSxyaWdodDpmdW5jdGlvbihlLG4saSxyKXtmb3IobnVsbD09aSYmKGk9MCksbnVsbD09ciYmKHI9ZS5sZW5ndGgpO2k8cjspe3ZhciBvPWkrcj4+PjE7dChlW29dLG4pPjA/cj1vOmk9bysxfXJldHVybiBpfX19dmFyIGQwPWgwKHUwKS5yaWdodDtmdW5jdGlvbiBwMCh0KXtyZXR1cm4gbnVsbD09PXQ/TmFOOit0fXZhciBmMD1NYXRoLnNxcnQoNTApLG0wPU1hdGguc3FydCgxMCksZzA9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIF8wKHQsZSxuKXt2YXIgaSxyLG8sYSxzPS0xO2lmKG49K24sKHQ9K3QpPT0oZT0rZSkmJm4+MClyZXR1cm5bdF07aWYoKGk9ZTx0KSYmKHI9dCx0PWUsZT1yKSwwPT09KGE9eTAodCxlLG4pKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxlPU1hdGguZmxvb3IoZS9hKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbChlLXQrMSkpOysrczxyOylvW3NdPSh0K3MpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksZT1NYXRoLmNlaWwoZSphKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbCh0LWUrMSkpOysrczxyOylvW3NdPSh0LXMpL2E7cmV0dXJuIGkmJm8ucmV2ZXJzZSgpLG99ZnVuY3Rpb24geTAodCxlLG4pe3ZhciBpPShlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCksbz1pL01hdGgucG93KDEwLHIpO3JldHVybiByPj0wPyhvPj1mMD8xMDpvPj1tMD81Om8+PWcwPzI6MSkqTWF0aC5wb3coMTAscik6LU1hdGgucG93KDEwLC1yKS8obz49ZjA/MTA6bz49bTA/NTpvPj1nMD8yOjEpfWZ1bmN0aW9uIHYwKHQsZSxuKXt2YXIgaT1NYXRoLmFicyhlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCkpLG89aS9yO3JldHVybiBvPj1mMD9yKj0xMDpvPj1tMD9yKj01Om8+PWcwJiYocio9MiksZTx0Py1yOnJ9ZnVuY3Rpb24gYjAodCxlLG4pe2lmKG51bGw9PW4mJihuPXAwKSxpPXQubGVuZ3RoKXtpZigoZT0rZSk8PTB8fGk8MilyZXR1cm4rbih0WzBdLDAsdCk7aWYoZT49MSlyZXR1cm4rbih0W2ktMV0saS0xLHQpO3ZhciBpLHI9KGktMSkqZSxvPU1hdGguZmxvb3IociksYT0rbih0W29dLG8sdCk7cmV0dXJuIGErKCtuKHRbbysxXSxvKzEsdCktYSkqKHItbyl9fXZhciB4MD0iJCI7ZnVuY3Rpb24gdzAoKXt9ZnVuY3Rpb24gUzAodCxlKXt2YXIgbj1uZXcgdzA7aWYodCBpbnN0YW5jZW9mIHcwKXQuZWFjaCgoZnVuY3Rpb24odCxlKXtuLnNldChlLHQpfSkpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGkscj0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PWUpZm9yKDsrK3I8bzspbi5zZXQocix0W3JdKTtlbHNlIGZvcig7KytyPG87KW4uc2V0KGUoaT10W3JdLHIsdCksaSl9ZWxzZSBpZih0KWZvcih2YXIgYSBpbiB0KW4uc2V0KGEsdFthXSk7cmV0dXJuIG59ZnVuY3Rpb24gTTAoKXt9dzAucHJvdG90eXBlPVMwLnByb3RvdHlwZT17Y29uc3RydWN0b3I6dzAsaGFzOmZ1bmN0aW9uKHQpe3JldHVybiB4MCt0IGluIHRoaXN9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1t4MCt0XX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXNbeDArdF09ZSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9eDArdDtyZXR1cm4gZSBpbiB0aGlzJiZkZWxldGUgdGhpc1tlXX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09eDAmJmRlbGV0ZSB0aGlzW3RdfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PXgwJiZ0LnB1c2goZS5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT14MCYmdC5wdXNoKHRoaXNbZV0pO3JldHVybiB0fSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PXgwJiZ0LnB1c2goe2tleTplLnNsaWNlKDEpLHZhbHVlOnRoaXNbZV19KTtyZXR1cm4gdH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PXgwJiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYodFswXT09PXgwKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT14MCYmdCh0aGlzW2VdLGUuc2xpY2UoMSksdGhpcyl9fTt2YXIgRTA9UzAucHJvdG90eXBlO00wLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TTAsaGFzOkUwLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbeDArKHQrPSIiKV09dCx0aGlzfSxyZW1vdmU6RTAucmVtb3ZlLGNsZWFyOkUwLmNsZWFyLHZhbHVlczpFMC5rZXlzLHNpemU6RTAuc2l6ZSxlbXB0eTpFMC5lbXB0eSxlYWNoOkUwLmVhY2h9O3ZhciBUMD1BcnJheS5wcm90b3R5cGUsQzA9VDAubWFwLEEwPVQwLnNsaWNlLGswPXtuYW1lOiJpbXBsaWNpdCJ9O2Z1bmN0aW9uIEwwKHQpe3ZhciBlPVMwKCksbj1bXSxpPWswO2Z1bmN0aW9uIHIocil7dmFyIG89cisiIixhPWUuZ2V0KG8pO2lmKCFhKXtpZihpIT09azApcmV0dXJuIGk7ZS5zZXQobyxhPW4ucHVzaChyKSl9cmV0dXJuIHRbKGEtMSkldC5sZW5ndGhdfXJldHVybiB0PW51bGw9PXQ/W106QTAuY2FsbCh0KSxyLmRvbWFpbj1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbi5zbGljZSgpO249W10sZT1TMCgpO2Zvcih2YXIgaSxvLGE9LTEscz10Lmxlbmd0aDsrK2E8czspZS5oYXMobz0oaT10W2FdKSsiIil8fGUuc2V0KG8sbi5wdXNoKGkpKTtyZXR1cm4gcn0sci5yYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1BMC5jYWxsKGUpLHIpOnQuc2xpY2UoKX0sci51bmtub3duPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQscik6aX0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEwwKCkuZG9tYWluKG4pLnJhbmdlKHQpLnVua25vd24oaSl9LHJ9ZnVuY3Rpb24gUDAoKXt2YXIgdCxlLG49TDAoKS51bmtub3duKHZvaWQgMCksaT1uLmRvbWFpbixyPW4ucmFuZ2Usbz1bMCwxXSxhPSExLHM9MCxsPTAsYz0uNTtmdW5jdGlvbiB1KCl7dmFyIG49aSgpLmxlbmd0aCx1PW9bMV08b1swXSxoPW9bdS0wXSxkPW9bMS11XTt0PShkLWgpL01hdGgubWF4KDEsbi1zKzIqbCksYSYmKHQ9TWF0aC5mbG9vcih0KSksaCs9KGQtaC10KihuLXMpKSpjLGU9dCooMS1zKSxhJiYoaD1NYXRoLnJvdW5kKGgpLGU9TWF0aC5yb3VuZChlKSk7dmFyIHA9KGZ1bmN0aW9uIGYodCxlLG4pe3Q9K3QsZT0rZSxuPShyPWFyZ3VtZW50cy5sZW5ndGgpPDI/KGU9dCx0PTAsMSk6cjwzPzE6K247Zm9yKHZhciBpPS0xLHI9MHxNYXRoLm1heCgwLE1hdGguY2VpbCgoZS10KS9uKSksbz1uZXcgQXJyYXkocik7KytpPHI7KW9baV09dCtpKm47cmV0dXJuIG99KShuKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBoK3QqZX0pKTtyZXR1cm4gcih1P3AucmV2ZXJzZSgpOnApfXJldHVybiBkZWxldGUgbi51bmtub3duLG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpKHQpLHUoKSk6aSgpfSxuLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVsrdFswXSwrdFsxXV0sdSgpKTpvLnNsaWNlKCl9LG4ucmFuZ2VSb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gbz1bK3RbMF0sK3RbMV1dLGE9ITAsdSgpfSxuLmJhbmR3aWR0aD1mdW5jdGlvbigpe3JldHVybiBlfSxuLnN0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sbi5yb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0hIXQsdSgpKTphfSxuLnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9bD1NYXRoLm1heCgwLE1hdGgubWluKDEsdCkpLHUoKSk6c30sbi5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSx1KCkpOnN9LG4ucGFkZGluZ091dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksdSgpKTpsfSxuLmFsaWduPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksdSgpKTpjfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gUDAoKS5kb21haW4oaSgpKS5yYW5nZShvKS5yb3VuZChhKS5wYWRkaW5nSW5uZXIocykucGFkZGluZ091dGVyKGwpLmFsaWduKGMpfSx1KCl9ZnVuY3Rpb24gTjAodCl7dmFyIGU9dC5jb3B5O3JldHVybiB0LnBhZGRpbmc9dC5wYWRkaW5nT3V0ZXIsZGVsZXRlIHQucGFkZGluZ0lubmVyLGRlbGV0ZSB0LnBhZGRpbmdPdXRlcix0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gTjAoZSgpKX0sdH1mdW5jdGlvbiBJMCh0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gUjAodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gTzAoKXt9dmFyIHowPS43LEQwPTEvejAsQjA9IlxccyooWystXT9cXGQrKVxccyoiLEgwPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLEYwPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixWMD0vXiMoWzAtOWEtZl17Myw4fSkkLyxVMD1uZXcgUmVnRXhwKCJecmdiXFwoIitbQjAsQjAsQjBdKyJcXCkkIiksajA9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW0YwLEYwLEYwXSsiXFwpJCIpLEcwPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbQjAsQjAsQjAsSDBdKyJcXCkkIiksVzA9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tGMCxGMCxGMCxIMF0rIlxcKSQiKSxxMD1uZXcgUmVnRXhwKCJeaHNsXFwoIitbSDAsRjAsRjBdKyJcXCkkIiksWTA9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tIMCxGMCxGMCxIMF0rIlxcKSQiKSxYMD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiAkMCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIEswKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gWjAodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9VjAuZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj9KMChlKTozPT09bj9uZXcgbjIoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP1EwKGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP1EwKGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9VTAuZXhlYyh0KSk/bmV3IG4yKGVbMV0sZVsyXSxlWzNdLDEpOihlPWowLmV4ZWModCkpP25ldyBuMigyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1HMC5leGVjKHQpKT9RMChlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1XMC5leGVjKHQpKT9RMCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1xMC5leGVjKHQpKT9hMihlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVkwLmV4ZWModCkpP2EyKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6WDAuaGFzT3duUHJvcGVydHkodCk/SjAoWDBbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyBuMihOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIEowKHQpe3JldHVybiBuZXcgbjIodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIFEwKHQsZSxuLGkpe3JldHVybiBpPD0wJiYodD1lPW49TmFOKSxuZXcgbjIodCxlLG4saSl9ZnVuY3Rpb24gdDIodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBPMHx8KHQ9WjAodCkpLHQ/bmV3IG4yKCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyBuMn1mdW5jdGlvbiBlMih0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dDIodCk6bmV3IG4yKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBuMih0LGUsbixpKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gaTIoKXtyZXR1cm4iIyIrbzIodGhpcy5yKStvMih0aGlzLmcpK28yKHRoaXMuYil9ZnVuY3Rpb24gcjIoKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBvMih0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIGEyKHQsZSxuLGkpe3JldHVybiBpPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgbDIodCxlLG4saSl9ZnVuY3Rpb24gczIodCl7aWYodCBpbnN0YW5jZW9mIGwyKXJldHVybiBuZXcgbDIodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgTzB8fCh0PVowKHQpKSwhdClyZXR1cm4gbmV3IGwyO2lmKHQgaW5zdGFuY2VvZiBsMilyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsaT10LmIvMjU1LHI9TWF0aC5taW4oZSxuLGkpLG89TWF0aC5tYXgoZSxuLGkpLGE9TmFOLHM9by1yLGw9KG8rcikvMjtyZXR1cm4gcz8oYT1lPT09bz8obi1pKS9zKzYqKG48aSk6bj09PW8/KGktZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P28rcjoyLW8tcixhKj02MCk6cz1sPjAmJmw8MT8wOmEsbmV3IGwyKGEscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gbDIodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIGMyKHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1JMChPMCxaMCx7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDokMCxmb3JtYXRIZXg6JDAsZm9ybWF0SHNsOmZ1bmN0aW9uIHUyKCl7cmV0dXJuIHMyKHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6SzAsdG9TdHJpbmc6SzB9KSxJMChuMixlMixSMChPMCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9EMDpNYXRoLnBvdyhEMCx0KSxuZXcgbjIodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/ejA6TWF0aC5wb3coejAsdCksbmV3IG4yKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6aTIsZm9ybWF0SGV4OmkyLGZvcm1hdFJnYjpyMix0b1N0cmluZzpyMn0pKSxJMChsMiwoZnVuY3Rpb24gaDIodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3MyKHQpOm5ldyBsMih0LGUsbixudWxsPT1pPzE6aSl9KSxSMChPMCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9EMDpNYXRoLnBvdyhEMCx0KSxuZXcgbDIodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD96MDpNYXRoLnBvdyh6MCx0KSxuZXcgbDIodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyBuMihjMih0Pj0yNDA/dC0yNDA6dCsxMjAscixpKSxjMih0LHIsaSksYzIodDwxMjA/dCsyNDA6dC0xMjAscixpKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgZDI9TWF0aC5QSS8xODAscDI9MTgwL01hdGguUEksZjI9LS4xNDg2MSxtMj0xLjc4Mjc3LGcyPS0uMjkyMjcsXzI9LS45MDY0OSx5Mj0xLjk3Mjk0LHYyPXkyKl8yLGIyPXkyKm0yLHgyPW0yKmcyLV8yKmYyO2Z1bmN0aW9uIHcyKHQpe2lmKHQgaW5zdGFuY2VvZiBNMilyZXR1cm4gbmV3IE0yKHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7dCBpbnN0YW5jZW9mIG4yfHwodD10Mih0KSk7dmFyIGU9dC5nLzI1NSxuPXQuYi8yNTUsaT0oeDIqbit2MioodC5yLzI1NSktYjIqZSkvKHgyK3YyLWIyKSxyPW4taSxvPSh5MiooZS1pKS1nMipyKS9fMixhPU1hdGguc3FydChvKm8rcipyKS8oeTIqaSooMS1pKSkscz1hP01hdGguYXRhbjIobyxyKSpwMi0xMjA6TmFOO3JldHVybiBuZXcgTTIoczwwP3MrMzYwOnMsYSxpLHQub3BhY2l0eSl9ZnVuY3Rpb24gUzIodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3cyKHQpOm5ldyBNMih0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gTTIodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIEUyKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBUMih0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdCtuKmV9fWZ1bmN0aW9uIEMyKHQsZSl7dmFyIG49ZS10O3JldHVybiBuP1QyKHQsbik6RTIoaXNOYU4odCk/ZTp0KX1JMChNMixTMixSMChPMCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9EMDpNYXRoLnBvdyhEMCx0KSxuZXcgTTIodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD96MDpNYXRoLnBvdyh6MCx0KSxuZXcgTTIodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD1pc05hTih0aGlzLmgpPzA6KHRoaXMuaCsxMjApKmQyLGU9K3RoaXMubCxuPWlzTmFOKHRoaXMucyk/MDp0aGlzLnMqZSooMS1lKSxpPU1hdGguY29zKHQpLHI9TWF0aC5zaW4odCk7cmV0dXJuIG5ldyBuMigyNTUqKGUrbiooZjIqaSttMipyKSksMjU1KihlK24qKGcyKmkrXzIqcikpLDI1NSooZStuKih5MippKSksdGhpcy5vcGFjaXR5KX19KSk7dmFyIEEyPShmdW5jdGlvbiB0KGUpe3ZhciBuPShmdW5jdGlvbiBpKHQpe3JldHVybiAxPT0odD0rdCk/QzI6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbi1lPyhmdW5jdGlvbiBpKHQsZSxuKXtyZXR1cm4gdD1NYXRoLnBvdyh0LG4pLGU9TWF0aC5wb3coZSxuKS10LG49MS9uLGZ1bmN0aW9uKGkpe3JldHVybiBNYXRoLnBvdyh0K2kqZSxuKX19KShlLG4sdCk6RTIoaXNOYU4oZSk/bjplKX19KShlKTtmdW5jdGlvbiByKHQsZSl7dmFyIGk9bigodD1lMih0KSkuciwoZT1lMihlKSkucikscj1uKHQuZyxlLmcpLG89bih0LmIsZS5iKSxhPUMyKHQub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5yPWkoZSksdC5nPXIoZSksdC5iPW8oZSksdC5vcGFjaXR5PWEoZSksdCsiIn19cmV0dXJuIHIuZ2FtbWE9dCxyfSkoMSk7ZnVuY3Rpb24gazIodCxlKXtlfHwoZT1bXSk7dmFyIG4saT10P01hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoKTowLHI9ZS5zbGljZSgpO3JldHVybiBmdW5jdGlvbihvKXtmb3Iobj0wO248aTsrK24pcltuXT10W25dKigxLW8pK2Vbbl0qbztyZXR1cm4gcn19ZnVuY3Rpb24gTDIodCxlKXt2YXIgbixpPWU/ZS5sZW5ndGg6MCxyPXQ/TWF0aC5taW4oaSx0Lmxlbmd0aCk6MCxvPW5ldyBBcnJheShyKSxhPW5ldyBBcnJheShpKTtmb3Iobj0wO248cjsrK24pb1tuXT1EMih0W25dLGVbbl0pO2Zvcig7bjxpOysrbilhW25dPWVbbl07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihuPTA7bjxyOysrbilhW25dPW9bbl0odCk7cmV0dXJuIGF9fWZ1bmN0aW9uIFAyKHQsZSl7dmFyIG49bmV3IERhdGU7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihpKXtyZXR1cm4gbi5zZXRUaW1lKHQqKDEtaSkrZSppKSxufX1mdW5jdGlvbiBOMih0LGUpe3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24obil7cmV0dXJuIHQqKDEtbikrZSpufX1mdW5jdGlvbiBJMih0LGUpe3ZhciBuLGk9e30scj17fTtmb3IobiBpbiBudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0fHwodD17fSksbnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZXx8KGU9e30pLGUpbiBpbiB0P2lbbl09RDIodFtuXSxlW25dKTpyW25dPWVbbl07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihuIGluIGkpcltuXT1pW25dKHQpO3JldHVybiByfX12YXIgUjI9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLE8yPW5ldyBSZWdFeHAoUjIuc291cmNlLCJnIik7ZnVuY3Rpb24gejIodCxlKXt2YXIgbixpLHIsbz1SMi5sYXN0SW5kZXg9TzIubGFzdEluZGV4PTAsYT0tMSxzPVtdLGw9W107Zm9yKHQrPSIiLGUrPSIiOyhuPVIyLmV4ZWModCkpJiYoaT1PMi5leGVjKGUpKTspKHI9aS5pbmRleCk+byYmKHI9ZS5zbGljZShvLHIpLHNbYV0/c1thXSs9cjpzWysrYV09ciksKG49blswXSk9PT0oaT1pWzBdKT9zW2FdP3NbYV0rPWk6c1srK2FdPWk6KHNbKythXT1udWxsLGwucHVzaCh7aTphLHg6TjIobixpKX0pKSxvPU8yLmxhc3RJbmRleDtyZXR1cm4gbzxlLmxlbmd0aCYmKHI9ZS5zbGljZShvKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLHMubGVuZ3RoPDI/bFswXT8oZnVuY3Rpb24gYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSkrIiJ9fSkobFswXS54KTooZnVuY3Rpb24gdSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KShlKTooZT1sLmxlbmd0aCxmdW5jdGlvbih0KXtmb3IodmFyIG4saT0wO2k8ZTsrK2kpc1sobj1sW2ldKS5pXT1uLngodCk7cmV0dXJuIHMuam9pbigiIil9KX1mdW5jdGlvbiBEMih0LGUpe3ZhciBuLGk9dHlwZW9mIGU7cmV0dXJuIG51bGw9PWV8fCJib29sZWFuIj09PWk/RTIoZSk6KCJudW1iZXIiPT09aT9OMjoic3RyaW5nIj09PWk/KG49WjAoZSkpPyhlPW4sQTIpOnoyOmUgaW5zdGFuY2VvZiBaMD9BMjplIGluc3RhbmNlb2YgRGF0ZT9QMjooZnVuY3Rpb24gcih0KXtyZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KHQpJiYhKHQgaW5zdGFuY2VvZiBEYXRhVmlldyl9KShlKT9rMjpBcnJheS5pc0FycmF5KGUpP0wyOiJmdW5jdGlvbiIhPXR5cGVvZiBlLnZhbHVlT2YmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLnRvU3RyaW5nfHxpc05hTihlKT9JMjpOMikodCxlKX1mdW5jdGlvbiBCMih0LGUpe3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24obil7cmV0dXJuIE1hdGgucm91bmQodCooMS1uKStlKm4pfX1mdW5jdGlvbiBIMih0KXtyZXR1cm4oZnVuY3Rpb24gZShuKXtmdW5jdGlvbiBpKGUsaSl7dmFyIHI9dCgoZT1TMihlKSkuaCwoaT1TMihpKSkuaCksbz1DMihlLnMsaS5zKSxhPUMyKGUubCxpLmwpLHM9QzIoZS5vcGFjaXR5LGkub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmg9cih0KSxlLnM9byh0KSxlLmw9YShNYXRoLnBvdyh0LG4pKSxlLm9wYWNpdHk9cyh0KSxlKyIifX1yZXR1cm4gbj0rbixpLmdhbW1hPWUsaX0pKDEpfUgyKChmdW5jdGlvbiBGMih0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9UMih0LG4+MTgwfHxuPC0xODA/bi0zNjAqTWF0aC5yb3VuZChuLzM2MCk6bik6RTIoaXNOYU4odCk/ZTp0KX0pKTt2YXIgVjI9SDIoQzIpO2Z1bmN0aW9uIFUyKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBqMih0KXtyZXR1cm4rdH12YXIgRzI9WzAsMV07ZnVuY3Rpb24gVzIodCxlKXtyZXR1cm4oZS09dD0rdCk/ZnVuY3Rpb24obil7cmV0dXJuKG4tdCkvZX06VTIoZSl9ZnVuY3Rpb24gcTIodCxlLG4saSl7dmFyIHI9dFswXSxvPXRbMV0sYT1lWzBdLHM9ZVsxXTtyZXR1cm4gbzxyPyhyPW4obyxyKSxhPWkocyxhKSk6KHI9bihyLG8pLGE9aShhLHMpKSxmdW5jdGlvbih0KXtyZXR1cm4gYShyKHQpKX19ZnVuY3Rpb24gWTIodCxlLG4saSl7dmFyIHI9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpLTEsbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkocikscz0tMTtmb3IodFtyXTx0WzBdJiYodD10LnNsaWNlKCkucmV2ZXJzZSgpLGU9ZS5zbGljZSgpLnJldmVyc2UoKSk7KytzPHI7KW9bc109bih0W3NdLHRbcysxXSksYVtzXT1pKGVbc10sZVtzKzFdKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49ZDAodCxlLDEsciktMTtyZXR1cm4gYVtuXShvW25dKGUpKX19ZnVuY3Rpb24gWDIodCxlKXtyZXR1cm4gZS5kb21haW4odC5kb21haW4oKSkucmFuZ2UodC5yYW5nZSgpKS5pbnRlcnBvbGF0ZSh0LmludGVycG9sYXRlKCkpLmNsYW1wKHQuY2xhbXAoKSl9ZnVuY3Rpb24gJDIodCxlKXt2YXIgbixpLHIsbz1HMixhPUcyLHM9RDIsbD0hMTtmdW5jdGlvbiBjKCl7cmV0dXJuIG49TWF0aC5taW4oby5sZW5ndGgsYS5sZW5ndGgpPjI/WTI6cTIsaT1yPW51bGwsdX1mdW5jdGlvbiB1KGUpe3JldHVybihpfHwoaT1uKG8sYSxsPyhmdW5jdGlvbiByKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBpPXQoZT0rZSxuPStuKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ8PWU/MDp0Pj1uPzE6aSh0KX19fSkodCk6dCxzKSkpKCtlKX1yZXR1cm4gdS5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuKHJ8fChyPW4oYSxvLFcyLGw/KGZ1bmN0aW9uIGkodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9dChlPStlLG49K24pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdDw9MD9lOnQ+PTE/bjppKHQpfX19KShlKTplKSkpKCt0KX0sdS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89QzAuY2FsbCh0LGoyKSxjKCkpOm8uc2xpY2UoKX0sdS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1BMC5jYWxsKHQpLGMoKSk6YS5zbGljZSgpfSx1LnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGE9QTAuY2FsbCh0KSxzPUIyLGMoKX0sdS5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0hIXQsYygpKTpsfSx1LmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQsYygpKTpzfSxjKCl9ZnVuY3Rpb24gSzIodCxlKXtpZigobj0odD1lP3QudG9FeHBvbmVudGlhbChlLTEpOnQudG9FeHBvbmVudGlhbCgpKS5pbmRleE9mKCJlIikpPDApcmV0dXJuIG51bGw7dmFyIG4saT10LnNsaWNlKDAsbik7cmV0dXJuW2kubGVuZ3RoPjE/aVswXStpLnNsaWNlKDIpOmksK3Quc2xpY2UobisxKV19ZnVuY3Rpb24gWjIodCl7cmV0dXJuKHQ9SzIoTWF0aC5hYnModCkpKT90WzFdOk5hTn12YXIgSjIsUTI9L14oPzooLik/KFs8Pj1eXSkpPyhbK1wtKCBdKT8oWyQjXSk/KDApPyhcZCspPygsKT8oXC5cZCspPyh+KT8oW2EteiVdKT8kL2k7ZnVuY3Rpb24gdDUodCl7aWYoIShlPVEyLmV4ZWModCkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrdCk7dmFyIGU7cmV0dXJuIG5ldyBlNSh7ZmlsbDplWzFdLGFsaWduOmVbMl0sc2lnbjplWzNdLHN5bWJvbDplWzRdLHplcm86ZVs1XSx3aWR0aDplWzZdLGNvbW1hOmVbN10scHJlY2lzaW9uOmVbOF0mJmVbOF0uc2xpY2UoMSksdHJpbTplWzldLHR5cGU6ZVsxMF19KX1mdW5jdGlvbiBlNSh0KXt0aGlzLmZpbGw9dm9pZCAwPT09dC5maWxsPyIgIjp0LmZpbGwrIiIsdGhpcy5hbGlnbj12b2lkIDA9PT10LmFsaWduPyI+Ijp0LmFsaWduKyIiLHRoaXMuc2lnbj12b2lkIDA9PT10LnNpZ24/Ii0iOnQuc2lnbisiIix0aGlzLnN5bWJvbD12b2lkIDA9PT10LnN5bWJvbD8iIjp0LnN5bWJvbCsiIix0aGlzLnplcm89ISF0Lnplcm8sdGhpcy53aWR0aD12b2lkIDA9PT10LndpZHRoP3ZvaWQgMDordC53aWR0aCx0aGlzLmNvbW1hPSEhdC5jb21tYSx0aGlzLnByZWNpc2lvbj12b2lkIDA9PT10LnByZWNpc2lvbj92b2lkIDA6K3QucHJlY2lzaW9uLHRoaXMudHJpbT0hIXQudHJpbSx0aGlzLnR5cGU9dm9pZCAwPT09dC50eXBlPyIiOnQudHlwZSsiIn1mdW5jdGlvbiBuNSh0LGUpe3ZhciBuPUsyKHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIGk9blswXSxyPW5bMV07cmV0dXJuIHI8MD8iMC4iK25ldyBBcnJheSgtcikuam9pbigiMCIpK2k6aS5sZW5ndGg+cisxP2kuc2xpY2UoMCxyKzEpKyIuIitpLnNsaWNlKHIrMSk6aStuZXcgQXJyYXkoci1pLmxlbmd0aCsyKS5qb2luKCIwIil9dDUucHJvdG90eXBlPWU1LnByb3RvdHlwZSxlNS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/IjAiOiIiKSsodm9pZCAwPT09dGhpcy53aWR0aD8iIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKHZvaWQgMD09PXRoaXMucHJlY2lzaW9uPyIiOiIuIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24pKSsodGhpcy50cmltPyJ+IjoiIikrdGhpcy50eXBlfTt2YXIgaTU9eyIlIjpmdW5jdGlvbih0LGUpe3JldHVybigxMDAqdCkudG9GaXhlZChlKX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygyKX0sYzpmdW5jdGlvbih0KXtyZXR1cm4gdCsiIn0sZDpmdW5jdGlvbiByNSh0KXtyZXR1cm4gTWF0aC5hYnModD1NYXRoLnJvdW5kKHQpKT49MWUyMT90LnRvTG9jYWxlU3RyaW5nKCJlbiIpLnJlcGxhY2UoLywvZywiIik6dC50b1N0cmluZygxMCl9LGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0V4cG9uZW50aWFsKGUpfSxmOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9GaXhlZChlKX0sZzpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvUHJlY2lzaW9uKGUpfSxvOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDgpfSxwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG41KDEwMCp0LGUpfSxyOm41LHM6ZnVuY3Rpb24gbzUodCxlKXt2YXIgbj1LMih0LGUpO2lmKCFuKXJldHVybiB0KyIiO3ZhciBpPW5bMF0scj1uWzFdLG89ci0oSjI9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3Ioci8zKSkpKSsxLGE9aS5sZW5ndGg7cmV0dXJuIG89PT1hP2k6bz5hP2krbmV3IEFycmF5KG8tYSsxKS5qb2luKCIwIik6bz4wP2kuc2xpY2UoMCxvKSsiLiIraS5zbGljZShvKToiMC4iK25ldyBBcnJheSgxLW8pLmpvaW4oIjAiKStLMih0LE1hdGgubWF4KDAsZStvLTEpKVswXX0sWDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0seDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNil9fTtmdW5jdGlvbiBhNSh0KXtyZXR1cm4gdH12YXIgczUsbDUsYzUsdTU9QXJyYXkucHJvdG90eXBlLm1hcCxoNT1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIsK1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl07ZnVuY3Rpb24gZDUodCl7dmFyIGU9dC5kb21haW47cmV0dXJuIHQudGlja3M9ZnVuY3Rpb24odCl7dmFyIG49ZSgpO3JldHVybiBfMChuWzBdLG5bbi5sZW5ndGgtMV0sbnVsbD09dD8xMDp0KX0sdC50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsbil7cmV0dXJuKGZ1bmN0aW9uIGkodCxlLG4pe3ZhciBpLHI9dFswXSxvPXRbdC5sZW5ndGgtMV0sYT12MChyLG8sbnVsbD09ZT8xMDplKTtzd2l0Y2goKG49dDUobnVsbD09bj8iLGYiOm4pKS50eXBlKXtjYXNlInMiOnZhciBzPU1hdGgubWF4KE1hdGguYWJzKHIpLE1hdGguYWJzKG8pKTtyZXR1cm4gbnVsbCE9bi5wcmVjaXNpb258fGlzTmFOKGk9KGZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gTWF0aC5tYXgoMCwzKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihaMihlKS8zKSkpLVoyKE1hdGguYWJzKHQpKSl9KShhLHMpKXx8KG4ucHJlY2lzaW9uPWkpLGM1KG4scyk7Y2FzZSIiOmNhc2UiZSI6Y2FzZSJnIjpjYXNlInAiOmNhc2UiciI6bnVsbCE9bi5wcmVjaXNpb258fGlzTmFOKGk9KGZ1bmN0aW9uIGModCxlKXtyZXR1cm4gdD1NYXRoLmFicyh0KSxlPU1hdGguYWJzKGUpLXQsTWF0aC5tYXgoMCxaMihlKS1aMih0KSkrMX0pKGEsTWF0aC5tYXgoTWF0aC5hYnMociksTWF0aC5hYnMobykpKSl8fChuLnByZWNpc2lvbj1pLSgiZSI9PT1uLnR5cGUpKTticmVhaztjYXNlImYiOmNhc2UiJSI6bnVsbCE9bi5wcmVjaXNpb258fGlzTmFOKGk9KGZ1bmN0aW9uIHUodCl7cmV0dXJuIE1hdGgubWF4KDAsLVoyKE1hdGguYWJzKHQpKSl9KShhKSl8fChuLnByZWNpc2lvbj1pLTIqKCIlIj09PW4udHlwZSkpfXJldHVybiBsNShuKX0pKGUoKSx0LG4pfSx0Lm5pY2U9ZnVuY3Rpb24obil7bnVsbD09biYmKG49MTApO3ZhciBpLHI9ZSgpLG89MCxhPXIubGVuZ3RoLTEscz1yW29dLGw9clthXTtyZXR1cm4gbDxzJiYoaT1zLHM9bCxsPWksaT1vLG89YSxhPWkpLChpPXkwKHMsbCxuKSk+MD9pPXkwKHM9TWF0aC5mbG9vcihzL2kpKmksbD1NYXRoLmNlaWwobC9pKSppLG4pOmk8MCYmKGk9eTAocz1NYXRoLmNlaWwocyppKS9pLGw9TWF0aC5mbG9vcihsKmkpL2ksbikpLGk+MD8ocltvXT1NYXRoLmZsb29yKHMvaSkqaSxyW2FdPU1hdGguY2VpbChsL2kpKmksZShyKSk6aTwwJiYocltvXT1NYXRoLmNlaWwocyppKS9pLHJbYV09TWF0aC5mbG9vcihsKmkpL2ksZShyKSksdH0sdH1mdW5jdGlvbiBwNSh0LGUpe3ZhciBuLGk9MCxyPSh0PXQuc2xpY2UoKSkubGVuZ3RoLTEsbz10W2ldLGE9dFtyXTtyZXR1cm4gYTxvJiYobj1pLGk9cixyPW4sbj1vLG89YSxhPW4pLHRbaV09ZS5mbG9vcihvKSx0W3JdPWUuY2VpbChhKSx0fWZ1bmN0aW9uIGY1KHQsZSl7cmV0dXJuKGU9TWF0aC5sb2coZS90KSk/ZnVuY3Rpb24obil7cmV0dXJuIE1hdGgubG9nKG4vdCkvZX06VTIoZSl9ZnVuY3Rpb24gbTUodCxlKXtyZXR1cm4gdDwwP2Z1bmN0aW9uKG4pe3JldHVybi1NYXRoLnBvdygtZSxuKSpNYXRoLnBvdygtdCwxLW4pfTpmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5wb3coZSxuKSpNYXRoLnBvdyh0LDEtbil9fWZ1bmN0aW9uIGc1KHQpe3JldHVybiBpc0Zpbml0ZSh0KT8rKCIxZSIrdCk6dDwwPzA6dH1mdW5jdGlvbiBfNSh0KXtyZXR1cm4gMTA9PT10P2c1OnQ9PT1NYXRoLkU/TWF0aC5leHA6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucG93KHQsZSl9fWZ1bmN0aW9uIHk1KHQpe3JldHVybiB0PT09TWF0aC5FP01hdGgubG9nOjEwPT09dCYmTWF0aC5sb2cxMHx8Mj09PXQmJk1hdGgubG9nMnx8KHQ9TWF0aC5sb2codCksZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubG9nKGUpL3R9KX1mdW5jdGlvbiB2NSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuLXQoLWUpfX1mdW5jdGlvbiBiNSh0LGUpe3JldHVybiB0PDA/LU1hdGgucG93KC10LGUpOk1hdGgucG93KHQsZSl9ZnVuY3Rpb24geDUoKXt2YXIgdD0xLGU9JDIoKGZ1bmN0aW9uIG4oZSxpKXtyZXR1cm4oaT1iNShpLHQpLShlPWI1KGUsdCkpKT9mdW5jdGlvbihuKXtyZXR1cm4oYjUobix0KS1lKS9pfTpVMihpKX0pLChmdW5jdGlvbiBpKGUsbil7cmV0dXJuIG49YjUobix0KS0oZT1iNShlLHQpKSxmdW5jdGlvbihpKXtyZXR1cm4gYjUoZStuKmksMS90KX19KSkscj1lLmRvbWFpbjtyZXR1cm4gZS5leHBvbmVudD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rZSxyKHIoKSkpOnR9LGUuY29weT1mdW5jdGlvbigpe3JldHVybiBYMihlLHg1KCkuZXhwb25lbnQodCkpfSxkNShlKX0hKGZ1bmN0aW9uIHc1KHQpe3M1PShmdW5jdGlvbiBlKHQpe3ZhciBlPXZvaWQgMD09PXQuZ3JvdXBpbmd8fHZvaWQgMD09PXQudGhvdXNhbmRzP2E1OihmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7Zm9yKHZhciByPW4ubGVuZ3RoLG89W10sYT0wLHM9dFswXSxsPTA7cj4wJiZzPjAmJihsK3MrMT5pJiYocz1NYXRoLm1heCgxLGktbCkpLG8ucHVzaChuLnN1YnN0cmluZyhyLT1zLHIrcykpLCEoKGwrPXMrMSk+aSkpOylzPXRbYT0oYSsxKSV0Lmxlbmd0aF07cmV0dXJuIG8ucmV2ZXJzZSgpLmpvaW4oZSl9fSkodTUuY2FsbCh0Lmdyb3VwaW5nLE51bWJlciksdC50aG91c2FuZHMrIiIpLGk9dm9pZCAwPT09dC5jdXJyZW5jeT8iIjp0LmN1cnJlbmN5WzBdKyIiLHI9dm9pZCAwPT09dC5jdXJyZW5jeT8iIjp0LmN1cnJlbmN5WzFdKyIiLG89dm9pZCAwPT09dC5kZWNpbWFsPyIuIjp0LmRlY2ltYWwrIiIsYT12b2lkIDA9PT10Lm51bWVyYWxzP2E1OihmdW5jdGlvbiBzKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bMC05XS9nLChmdW5jdGlvbihlKXtyZXR1cm4gdFsrZV19KSl9fSkodTUuY2FsbCh0Lm51bWVyYWxzLFN0cmluZykpLGw9dm9pZCAwPT09dC5wZXJjZW50PyIlIjp0LnBlcmNlbnQrIiIsYz12b2lkIDA9PT10Lm1pbnVzPyItIjp0Lm1pbnVzKyIiLHU9dm9pZCAwPT09dC5uYW4/Ik5hTiI6dC5uYW4rIiI7ZnVuY3Rpb24gaCh0KXt2YXIgbj0odD10NSh0KSkuZmlsbCxzPXQuYWxpZ24saD10LnNpZ24sZD10LnN5bWJvbCxwPXQuemVybyxmPXQud2lkdGgsbT10LmNvbW1hLGc9dC5wcmVjaXNpb24sXz10LnRyaW0seT10LnR5cGU7Im4iPT09eT8obT0hMCx5PSJnIik6aTVbeV18fCh2b2lkIDA9PT1nJiYoZz0xMiksXz0hMCx5PSJnIiksKHB8fCIwIj09PW4mJiI9Ij09PXMpJiYocD0hMCxuPSIwIixzPSI9Iik7dmFyIHY9IiQiPT09ZD9pOiIjIj09PWQmJi9bYm94WF0vLnRlc3QoeSk/IjAiK3kudG9Mb3dlckNhc2UoKToiIixiPSIkIj09PWQ/cjovWyVwXS8udGVzdCh5KT9sOiIiLHg9aTVbeV0sdz0vW2RlZmdwcnMlXS8udGVzdCh5KTtmdW5jdGlvbiBTKHQpe3ZhciBpLHIsbCxkPXYsUz1iO2lmKCJjIj09PXkpUz14KHQpK1MsdD0iIjtlbHNle3ZhciBNPSh0PSt0KTwwfHwxL3Q8MDtpZih0PWlzTmFOKHQpP3U6eChNYXRoLmFicyh0KSxnKSxfJiYodD0oZnVuY3Rpb24gRSh0KXt0OmZvcih2YXIgZSxuPXQubGVuZ3RoLGk9MSxyPS0xO2k8bjsrK2kpc3dpdGNoKHRbaV0pe2Nhc2UiLiI6cj1lPWk7YnJlYWs7Y2FzZSIwIjowPT09ciYmKHI9aSksZT1pO2JyZWFrO2RlZmF1bHQ6aWYoISt0W2ldKWJyZWFrIHQ7cj4wJiYocj0wKX1yZXR1cm4gcj4wP3Quc2xpY2UoMCxyKSt0LnNsaWNlKGUrMSk6dH0pKHQpKSxNJiYwPT0rdCYmIisiIT09aCYmKE09ITEpLGQ9KE0/IigiPT09aD9oOmM6Ii0iPT09aHx8IigiPT09aD8iIjpoKStkLFM9KCJzIj09PXk/aDVbOCtKMi8zXToiIikrUysoTSYmIigiPT09aD8iKSI6IiIpLHcpZm9yKGk9LTEscj10Lmxlbmd0aDsrK2k8cjspaWYoNDg+KGw9dC5jaGFyQ29kZUF0KGkpKXx8bD41Nyl7Uz0oNDY9PT1sP28rdC5zbGljZShpKzEpOnQuc2xpY2UoaSkpK1MsdD10LnNsaWNlKDAsaSk7YnJlYWt9fW0mJiFwJiYodD1lKHQsMS8wKSk7dmFyIFQ9ZC5sZW5ndGgrdC5sZW5ndGgrUy5sZW5ndGgsQz1UPGY/bmV3IEFycmF5KGYtVCsxKS5qb2luKG4pOiIiO3N3aXRjaChtJiZwJiYodD1lKEMrdCxDLmxlbmd0aD9mLVMubGVuZ3RoOjEvMCksQz0iIikscyl7Y2FzZSI8Ijp0PWQrdCtTK0M7YnJlYWs7Y2FzZSI9Ijp0PWQrQyt0K1M7YnJlYWs7Y2FzZSJeIjp0PUMuc2xpY2UoMCxUPUMubGVuZ3RoPj4xKStkK3QrUytDLnNsaWNlKFQpO2JyZWFrO2RlZmF1bHQ6dD1DK2QrdCtTfXJldHVybiBhKHQpfXJldHVybiBnPXZvaWQgMD09PWc/NjovW2dwcnNdLy50ZXN0KHkpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsZykpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsZykpLFMudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdCsiIn0sU31yZXR1cm57Zm9ybWF0OmgsZm9ybWF0UHJlZml4OmZ1bmN0aW9uIGQodCxlKXt2YXIgbj1oKCgodD10NSh0KSkudHlwZT0iZiIsdCkpLGk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoWjIoZSkvMykpKSxyPU1hdGgucG93KDEwLC1pKSxvPWg1WzgraS8zXTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4ocip0KStvfX19fSkodCksbDU9czUuZm9ybWF0LGM1PXM1LmZvcm1hdFByZWZpeH0pKHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXSxtaW51czoiLSJ9KTt2YXIgUzU9bmV3IERhdGUsTTU9bmV3IERhdGU7ZnVuY3Rpb24gRTUodCxlLG4saSl7ZnVuY3Rpb24gcihlKXtyZXR1cm4gdChlPTA9PT1hcmd1bWVudHMubGVuZ3RoP25ldyBEYXRlOm5ldyBEYXRlKCtlKSksZX1yZXR1cm4gci5mbG9vcj1mdW5jdGlvbihlKXtyZXR1cm4gdChlPW5ldyBEYXRlKCtlKSksZX0sci5jZWlsPWZ1bmN0aW9uKG4pe3JldHVybiB0KG49bmV3IERhdGUobi0xKSksZShuLDEpLHQobiksbn0sci5yb3VuZD1mdW5jdGlvbih0KXt2YXIgZT1yKHQpLG49ci5jZWlsKHQpO3JldHVybiB0LWU8bi10P2U6bn0sci5vZmZzZXQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZSh0PW5ldyBEYXRlKCt0KSxudWxsPT1uPzE6TWF0aC5mbG9vcihuKSksdH0sci5yYW5nZT1mdW5jdGlvbihuLGksbyl7dmFyIGEscz1bXTtpZihuPXIuY2VpbChuKSxvPW51bGw9PW8/MTpNYXRoLmZsb29yKG8pLCEobjxpJiZvPjApKXJldHVybiBzO2Rve3MucHVzaChhPW5ldyBEYXRlKCtuKSksZShuLG8pLHQobil9d2hpbGUoYTxuJiZuPGkpO3JldHVybiBzfSxyLmZpbHRlcj1mdW5jdGlvbihuKXtyZXR1cm4gRTUoKGZ1bmN0aW9uKGUpe2lmKGU+PWUpZm9yKDt0KGUpLCFuKGUpOyllLnNldFRpbWUoZS0xKX0pLChmdW5jdGlvbih0LGkpe2lmKHQ+PXQpaWYoaTwwKWZvcig7KytpPD0wOylmb3IoO2UodCwtMSksIW4odCk7KTtlbHNlIGZvcig7LS1pPj0wOylmb3IoO2UodCwxKSwhbih0KTspO30pKX0sbiYmKHIuY291bnQ9ZnVuY3Rpb24oZSxpKXtyZXR1cm4gUzUuc2V0VGltZSgrZSksTTUuc2V0VGltZSgraSksdChTNSksdChNNSksTWF0aC5mbG9vcihuKFM1LE01KSl9LHIuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSxpc0Zpbml0ZSh0KSYmdD4wP3Q+MT9yLmZpbHRlcihpP2Z1bmN0aW9uKGUpe3JldHVybiBpKGUpJXQ9PTB9OmZ1bmN0aW9uKGUpe3JldHVybiByLmNvdW50KDAsZSkldD09MH0pOnI6bnVsbH0pLHJ9dmFyIFQ1PUU1KChmdW5jdGlvbigpe30pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLXR9KSk7VDUuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSxpc0Zpbml0ZSh0KSYmdD4wP3Q+MT9FNSgoZnVuY3Rpb24oZSl7ZS5zZXRUaW1lKE1hdGguZmxvb3IoZS90KSp0KX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0VGltZSgrZStuKnQpfSksKGZ1bmN0aW9uKGUsbil7cmV0dXJuKG4tZSkvdH0pKTpUNTpudWxsfTt2YXIgQzU9VDUsQTU9MWUzLGs1PTZlNCxMNT0zNmU1LFA1PTg2NGU1LE41PTYwNDhlNSxJNT1FNSgoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKSl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSpBNSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9BNX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENTZWNvbmRzKCl9KSksUjU9RTUoKGZ1bmN0aW9uKHQpe3Quc2V0VGltZSh0LXQuZ2V0TWlsbGlzZWNvbmRzKCktdC5nZXRTZWNvbmRzKCkqQTUpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqazUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvazV9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TWludXRlcygpfSkpLE81PUU1KChmdW5jdGlvbih0KXt0LnNldFRpbWUodC10LmdldE1pbGxpc2Vjb25kcygpLXQuZ2V0U2Vjb25kcygpKkE1LXQuZ2V0TWludXRlcygpKms1KX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKkw1KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0w1fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9KSksejU9RTUoKGZ1bmN0aW9uKHQpe3Quc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10LShlLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSprNSkvUDV9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpLTF9KSk7ZnVuY3Rpb24gRDUodCl7cmV0dXJuIEU1KChmdW5jdGlvbihlKXtlLnNldERhdGUoZS5nZXREYXRlKCktKGUuZ2V0RGF5KCkrNy10KSU3KSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10LShlLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSprNSkvTjV9KSl9dmFyIEI1PUQ1KDApLEg1PUQ1KDEpO0Q1KDIpLEQ1KDMpO3ZhciBGNT1ENSg0KTtENSg1KSxENSg2KTt2YXIgVjU9RTUoKGZ1bmN0aW9uKHQpe3Quc2V0RGF0ZSgxKSx0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRNb250aCh0LmdldE1vbnRoKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRNb250aCgpLXQuZ2V0TW9udGgoKSsxMiooZS5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TW9udGgoKX0pKSxVNT1FNSgoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KSk7VTUuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9FNSgoZnVuY3Rpb24oZSl7ZS5zZXRGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0RnVsbFllYXIoKS90KSp0KSxlLnNldE1vbnRoKDAsMSksZS5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0RnVsbFllYXIoZS5nZXRGdWxsWWVhcigpK24qdCl9KSk6bnVsbH07dmFyIGo1PVU1LEc1PUU1KChmdW5jdGlvbih0KXt0LnNldFVUQ1NlY29uZHMoMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKms1KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL2s1fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbnV0ZXMoKX0pKSxXNT1FNSgoZnVuY3Rpb24odCl7dC5zZXRVVENNaW51dGVzKDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKkw1KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0w1fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0hvdXJzKCl9KSkscTU9RTUoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9QNX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENEYXRlKCktMX0pKTtmdW5jdGlvbiBZNSh0KXtyZXR1cm4gRTUoKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRGF0ZShlLmdldFVUQ0RhdGUoKS0oZS5nZXRVVENEYXkoKSs3LXQpJTcpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL041fSkpfXZhciBYNT1ZNSgwKSwkNT1ZNSgxKTtZNSgyKSxZNSgzKTt2YXIgSzU9WTUoNCk7WTUoNSksWTUoNik7dmFyIFo1PUU1KChmdW5jdGlvbih0KXt0LnNldFVUQ0RhdGUoMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDTW9udGgodC5nZXRVVENNb250aCgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0VVRDTW9udGgoKS10LmdldFVUQ01vbnRoKCkrMTIqKGUuZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCkpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01vbnRoKCl9KSksSjU9RTUoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpfSkpO0o1LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/RTUoKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcihlLmdldFVUQ0Z1bGxZZWFyKCkvdCkqdCksZS5zZXRVVENNb250aCgwLDEpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24oZSxuKXtlLnNldFVUQ0Z1bGxZZWFyKGUuZ2V0VVRDRnVsbFllYXIoKStuKnQpfSkpOm51bGx9O3ZhciBRNT1KNTtmdW5jdGlvbiB0Myh0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBlPW5ldyBEYXRlKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKTtyZXR1cm4gZS5zZXRGdWxsWWVhcih0LnkpLGV9cmV0dXJuIG5ldyBEYXRlKHQueSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCl9ZnVuY3Rpb24gZTModCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZShEYXRlLlVUQygtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpO3JldHVybiBlLnNldFVUQ0Z1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSl9ZnVuY3Rpb24gbjModCxlLG4pe3JldHVybnt5OnQsbTplLGQ6bixIOjAsTTowLFM6MCxMOjB9fXZhciBpMyxyMyxvMyxhMz17Ii0iOiIiLF86IiAiLDA6IjAifSxzMz0vXlxzKlxkKy8sbDM9L14lLyxjMz0vW1xcXiQqKz98W1xdKCkue31dL2c7ZnVuY3Rpb24gdTModCxlLG4pe3ZhciBpPXQ8MD8iLSI6IiIscj0oaT8tdDp0KSsiIixvPXIubGVuZ3RoO3JldHVybiBpKyhvPG4/bmV3IEFycmF5KG4tbysxKS5qb2luKGUpK3I6cil9ZnVuY3Rpb24gaDModCl7cmV0dXJuIHQucmVwbGFjZShjMywiXFwkJiIpfWZ1bmN0aW9uIGQzKHQpe3JldHVybiBuZXcgUmVnRXhwKCJeKD86Iit0Lm1hcChoMykuam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uIHAzKHQpe2Zvcih2YXIgZT17fSxuPS0xLGk9dC5sZW5ndGg7KytuPGk7KWVbdFtuXS50b0xvd2VyQ2FzZSgpXT1uO3JldHVybiBlfWZ1bmN0aW9uIGYzKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzEpKTtyZXR1cm4gaT8odC53PStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG0zKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzEpKTtyZXR1cm4gaT8odC51PStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGczKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5VPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIF8zKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5WPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHkzKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5XPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHYzKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzQpKTtyZXR1cm4gaT8odC55PStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGIzKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC55PStpWzBdKygraVswXT42OD8xOTAwOjJlMyksbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geDModCxlLG4pe3ZhciBpPS9eKFopfChbKy1dXGRcZCkoPzo6PyhcZFxkKSk/Ly5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gaT8odC5aPWlbMV0/MDotKGlbMl0rKGlbM118fCIwMCIpKSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB3Myh0LGUsbil7dmFyIGk9czMuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/KHQucT0zKmlbMF0tMyxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBTMyh0LGUsbil7dmFyIGk9czMuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQubT1pWzBdLTEsbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTTModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LmQ9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gRTModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMykpO3JldHVybiBpPyh0Lm09MCx0LmQ9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gVDModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Lkg9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQzModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Lk09K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQTModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LlM9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gazModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMykpO3JldHVybiBpPyh0Lkw9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTDModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rNikpO3JldHVybiBpPyh0Lkw9TWF0aC5mbG9vcihpWzBdLzFlMyksbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gUDModCxlLG4pe3ZhciBpPWwzLmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpP24raVswXS5sZW5ndGg6LTF9ZnVuY3Rpb24gTjModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQuUT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBJMyh0LGUsbil7dmFyIGk9czMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5zPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFIzKHQsZSl7cmV0dXJuIHUzKHQuZ2V0RGF0ZSgpLGUsMil9ZnVuY3Rpb24gTzModCxlKXtyZXR1cm4gdTModC5nZXRIb3VycygpLGUsMil9ZnVuY3Rpb24gejModCxlKXtyZXR1cm4gdTModC5nZXRIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIEQzKHQsZSl7cmV0dXJuIHUzKDErejUuY291bnQoajUodCksdCksZSwzKX1mdW5jdGlvbiBCMyh0LGUpe3JldHVybiB1Myh0LmdldE1pbGxpc2Vjb25kcygpLGUsMyl9ZnVuY3Rpb24gSDModCxlKXtyZXR1cm4gQjModCxlKSsiMDAwIn1mdW5jdGlvbiBGMyh0LGUpe3JldHVybiB1Myh0LmdldE1vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIFYzKHQsZSl7cmV0dXJuIHUzKHQuZ2V0TWludXRlcygpLGUsMil9ZnVuY3Rpb24gVTModCxlKXtyZXR1cm4gdTModC5nZXRTZWNvbmRzKCksZSwyKX1mdW5jdGlvbiBqMyh0KXt2YXIgZT10LmdldERheSgpO3JldHVybiAwPT09ZT83OmV9ZnVuY3Rpb24gRzModCxlKXtyZXR1cm4gdTMoQjUuY291bnQoajUodCktMSx0KSxlLDIpfWZ1bmN0aW9uIFczKHQpe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIGU+PTR8fDA9PT1lP0Y1KHQpOkY1LmNlaWwodCl9ZnVuY3Rpb24gcTModCxlKXtyZXR1cm4gdD1XMyh0KSx1MyhGNS5jb3VudChqNSh0KSx0KSsoND09PWo1KHQpLmdldERheSgpKSxlLDIpfWZ1bmN0aW9uIFkzKHQpe3JldHVybiB0LmdldERheSgpfWZ1bmN0aW9uIFgzKHQsZSl7cmV0dXJuIHUzKEg1LmNvdW50KGo1KHQpLTEsdCksZSwyKX1mdW5jdGlvbiAkMyh0LGUpe3JldHVybiB1Myh0LmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gSzModCxlKXtyZXR1cm4gdTMoKHQ9VzModCkpLmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gWjModCxlKXtyZXR1cm4gdTModC5nZXRGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIEozKHQsZSl7dmFyIG49dC5nZXREYXkoKTtyZXR1cm4gdTMoKHQ9bj49NHx8MD09PW4/RjUodCk6RjUuY2VpbCh0KSkuZ2V0RnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiBRMyh0KXt2YXIgZT10LmdldFRpbWV6b25lT2Zmc2V0KCk7cmV0dXJuKGU+MD8iLSI6KGUqPS0xLCIrIikpK3UzKGUvNjB8MCwiMCIsMikrdTMoZSU2MCwiMCIsMil9ZnVuY3Rpb24gdDQodCxlKXtyZXR1cm4gdTModC5nZXRVVENEYXRlKCksZSwyKX1mdW5jdGlvbiBlNCh0LGUpe3JldHVybiB1Myh0LmdldFVUQ0hvdXJzKCksZSwyKX1mdW5jdGlvbiBuNCh0LGUpe3JldHVybiB1Myh0LmdldFVUQ0hvdXJzKCklMTJ8fDEyLGUsMil9ZnVuY3Rpb24gaTQodCxlKXtyZXR1cm4gdTMoMStxNS5jb3VudChRNSh0KSx0KSxlLDMpfWZ1bmN0aW9uIHI0KHQsZSl7cmV0dXJuIHUzKHQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksZSwzKX1mdW5jdGlvbiBvNCh0LGUpe3JldHVybiByNCh0LGUpKyIwMDAifWZ1bmN0aW9uIGE0KHQsZSl7cmV0dXJuIHUzKHQuZ2V0VVRDTW9udGgoKSsxLGUsMil9ZnVuY3Rpb24gczQodCxlKXtyZXR1cm4gdTModC5nZXRVVENNaW51dGVzKCksZSwyKX1mdW5jdGlvbiBsNCh0LGUpe3JldHVybiB1Myh0LmdldFVUQ1NlY29uZHMoKSxlLDIpfWZ1bmN0aW9uIGM0KHQpe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIDA9PT1lPzc6ZX1mdW5jdGlvbiB1NCh0LGUpe3JldHVybiB1MyhYNS5jb3VudChRNSh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gaDQodCl7dmFyIGU9dC5nZXRVVENEYXkoKTtyZXR1cm4gZT49NHx8MD09PWU/SzUodCk6SzUuY2VpbCh0KX1mdW5jdGlvbiBkNCh0LGUpe3JldHVybiB0PWg0KHQpLHUzKEs1LmNvdW50KFE1KHQpLHQpKyg0PT09UTUodCkuZ2V0VVRDRGF5KCkpLGUsMil9ZnVuY3Rpb24gcDQodCl7cmV0dXJuIHQuZ2V0VVRDRGF5KCl9ZnVuY3Rpb24gZjQodCxlKXtyZXR1cm4gdTMoJDUuY291bnQoUTUodCktMSx0KSxlLDIpfWZ1bmN0aW9uIG00KHQsZSl7cmV0dXJuIHUzKHQuZ2V0VVRDRnVsbFllYXIoKSUxMDAsZSwyKX1mdW5jdGlvbiBnNCh0LGUpe3JldHVybiB1MygodD1oNCh0KSkuZ2V0VVRDRnVsbFllYXIoKSUxMDAsZSwyKX1mdW5jdGlvbiBfNCh0LGUpe3JldHVybiB1Myh0LmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24geTQodCxlKXt2YXIgbj10LmdldFVUQ0RheSgpO3JldHVybiB1MygodD1uPj00fHwwPT09bj9LNSh0KTpLNS5jZWlsKHQpKS5nZXRVVENGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIHY0KCl7cmV0dXJuIiswMDAwIn1mdW5jdGlvbiBiNCgpe3JldHVybiIlIn1mdW5jdGlvbiB4NCh0KXtyZXR1cm4rdH1mdW5jdGlvbiB3NCh0KXtyZXR1cm4gTWF0aC5mbG9vcigrdC8xZTMpfSEoZnVuY3Rpb24gUzQodCl7aTM9KGZ1bmN0aW9uIGUodCl7dmFyIGU9dC5kYXRlVGltZSxuPXQuZGF0ZSxpPXQudGltZSxyPXQucGVyaW9kcyxvPXQuZGF5cyxhPXQuc2hvcnREYXlzLHM9dC5tb250aHMsbD10LnNob3J0TW9udGhzLGM9ZDMociksdT1wMyhyKSxoPWQzKG8pLGQ9cDMobykscD1kMyhhKSxmPXAzKGEpLG09ZDMocyksZz1wMyhzKSxfPWQzKGwpLHk9cDMobCksdj17YTpmdW5jdGlvbiBiKHQpe3JldHVybiBhW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uIHgodCl7cmV0dXJuIG9bdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24gdyh0KXtyZXR1cm4gbFt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uIFModCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6UjMsZTpSMyxmOkgzLGc6SzMsRzpKMyxIOk8zLEk6ejMsajpEMyxMOkIzLG06RjMsTTpWMyxwOmZ1bmN0aW9uIE0odCl7cmV0dXJuIHJbKyh0LmdldEhvdXJzKCk+PTEyKV19LHE6ZnVuY3Rpb24gRSh0KXtyZXR1cm4gMSt+fih0LmdldE1vbnRoKCkvMyl9LFE6eDQsczp3NCxTOlUzLHU6ajMsVTpHMyxWOnEzLHc6WTMsVzpYMyx4Om51bGwsWDpudWxsLHk6JDMsWTpaMyxaOlEzLCIlIjpiNH0sVD17YTpmdW5jdGlvbiBDKHQpe3JldHVybiBhW3QuZ2V0VVRDRGF5KCldfSxBOmZ1bmN0aW9uIEEodCl7cmV0dXJuIG9bdC5nZXRVVENEYXkoKV19LGI6ZnVuY3Rpb24gayh0KXtyZXR1cm4gbFt0LmdldFVUQ01vbnRoKCldfSxCOmZ1bmN0aW9uIEwodCl7cmV0dXJuIHNbdC5nZXRVVENNb250aCgpXX0sYzpudWxsLGQ6dDQsZTp0NCxmOm80LGc6ZzQsRzp5NCxIOmU0LEk6bjQsajppNCxMOnI0LG06YTQsTTpzNCxwOmZ1bmN0aW9uIFAodCl7cmV0dXJuIHJbKyh0LmdldFVUQ0hvdXJzKCk+PTEyKV19LHE6ZnVuY3Rpb24gTih0KXtyZXR1cm4gMSt+fih0LmdldFVUQ01vbnRoKCkvMyl9LFE6eDQsczp3NCxTOmw0LHU6YzQsVTp1NCxWOmQ0LHc6cDQsVzpmNCx4Om51bGwsWDpudWxsLHk6bTQsWTpfNCxaOnY0LCIlIjpiNH0sST17YTpmdW5jdGlvbiBSKHQsZSxuKXt2YXIgaT1wLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQudz1mW2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LEE6ZnVuY3Rpb24gTyh0LGUsbil7dmFyIGk9aC5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lnc9ZFtpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxiOmZ1bmN0aW9uIHoodCxlLG4pe3ZhciBpPV8uZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5tPXlbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sQjpmdW5jdGlvbiBEKHQsZSxuKXt2YXIgaT1tLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQubT1nW2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LGM6ZnVuY3Rpb24gQih0LG4saSl7cmV0dXJuIEcodCxlLG4saSl9LGQ6TTMsZTpNMyxmOkwzLGc6YjMsRzp2MyxIOlQzLEk6VDMsajpFMyxMOmszLG06UzMsTTpDMyxwOmZ1bmN0aW9uIEgodCxlLG4pe3ZhciBpPWMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5wPXVbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0scTp3MyxROk4zLHM6STMsUzpBMyx1Om0zLFU6ZzMsVjpfMyx3OmYzLFc6eTMseDpmdW5jdGlvbiBGKHQsZSxpKXtyZXR1cm4gRyh0LG4sZSxpKX0sWDpmdW5jdGlvbiBWKHQsZSxuKXtyZXR1cm4gRyh0LGksZSxuKX0seTpiMyxZOnYzLFo6eDMsIiUiOlAzfTtmdW5jdGlvbiBVKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpLHIsbyxhPVtdLHM9LTEsbD0wLGM9dC5sZW5ndGg7Zm9yKG4gaW5zdGFuY2VvZiBEYXRlfHwobj1uZXcgRGF0ZSgrbikpOysrczxjOykzNz09PXQuY2hhckNvZGVBdChzKSYmKGEucHVzaCh0LnNsaWNlKGwscykpLG51bGwhPShyPWEzW2k9dC5jaGFyQXQoKytzKV0pP2k9dC5jaGFyQXQoKytzKTpyPSJlIj09PWk/IiAiOiIwIiwobz1lW2ldKSYmKGk9byhuLHIpKSxhLnB1c2goaSksbD1zKzEpO3JldHVybiBhLnB1c2godC5zbGljZShsLHMpKSxhLmpvaW4oIiIpfX1mdW5jdGlvbiBqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpLHIsbz1uMygxOTAwLHZvaWQgMCwxKTtpZihHKG8sdCxuKz0iIiwwKSE9bi5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gbylyZXR1cm4gbmV3IERhdGUoby5RKTtpZigicyJpbiBvKXJldHVybiBuZXcgRGF0ZSgxZTMqby5zKygiTCJpbiBvP28uTDowKSk7aWYoZSYmISgiWiJpbiBvKSYmKG8uWj0wKSwicCJpbiBvJiYoby5IPW8uSCUxMisxMipvLnApLHZvaWQgMD09PW8ubSYmKG8ubT0icSJpbiBvP28ucTowKSwiViJpbiBvKXtpZihvLlY8MXx8by5WPjUzKXJldHVybiBudWxsOyJ3ImluIG98fChvLnc9MSksIloiaW4gbz8ocj0oaT1lMyhuMyhvLnksMCwxKSkpLmdldFVUQ0RheSgpLGk9cj40fHwwPT09cj8kNS5jZWlsKGkpOiQ1KGkpLGk9cTUub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRVVENGdWxsWWVhcigpLG8ubT1pLmdldFVUQ01vbnRoKCksby5kPWkuZ2V0VVRDRGF0ZSgpKyhvLncrNiklNyk6KHI9KGk9dDMobjMoby55LDAsMSkpKS5nZXREYXkoKSxpPXI+NHx8MD09PXI/SDUuY2VpbChpKTpINShpKSxpPXo1Lm9mZnNldChpLDcqKG8uVi0xKSksby55PWkuZ2V0RnVsbFllYXIoKSxvLm09aS5nZXRNb250aCgpLG8uZD1pLmdldERhdGUoKSsoby53KzYpJTcpfWVsc2UoIlciaW4gb3x8IlUiaW4gbykmJigidyJpbiBvfHwoby53PSJ1ImluIG8/by51JTc6IlciaW4gbz8xOjApLHI9IloiaW4gbz9lMyhuMyhvLnksMCwxKSkuZ2V0VVRDRGF5KCk6dDMobjMoby55LDAsMSkpLmdldERheSgpLG8ubT0wLG8uZD0iVyJpbiBvPyhvLncrNiklNys3Km8uVy0ocis1KSU3Om8udys3Km8uVS0ocis2KSU3KTtyZXR1cm4iWiJpbiBvPyhvLkgrPW8uWi8xMDB8MCxvLk0rPW8uWiUxMDAsZTMobykpOnQzKG8pfX1mdW5jdGlvbiBHKHQsZSxuLGkpe2Zvcih2YXIgcixvLGE9MCxzPWUubGVuZ3RoLGw9bi5sZW5ndGg7YTxzOyl7aWYoaT49bClyZXR1cm4tMTtpZigzNz09PShyPWUuY2hhckNvZGVBdChhKyspKSl7aWYocj1lLmNoYXJBdChhKyspLCEobz1JW3IgaW4gYTM/ZS5jaGFyQXQoYSsrKTpyXSl8fChpPW8odCxuLGkpKTwwKXJldHVybi0xfWVsc2UgaWYociE9bi5jaGFyQ29kZUF0KGkrKykpcmV0dXJuLTF9cmV0dXJuIGl9cmV0dXJuIHYueD1VKG4sdiksdi5YPVUoaSx2KSx2LmM9VShlLHYpLFQueD1VKG4sVCksVC5YPVUoaSxUKSxULmM9VShlLFQpLHtmb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9VSh0Kz0iIix2KTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLCExKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSx1dGNGb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9VSh0Kz0iIixUKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSx1dGNQYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLCEwKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfX19KSh0KSxyMz1pMy5mb3JtYXQsbzM9aTMudXRjRm9ybWF0fSkoe2RhdGVUaW1lOiIleCwgJVgiLGRhdGU6IiUtbS8lLWQvJVkiLHRpbWU6IiUtSTolTTolUyAlcCIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KTt2YXIgTTQ9MzE1MzZlNjtmdW5jdGlvbiBFNCh0KXtyZXR1cm4gbmV3IERhdGUodCl9ZnVuY3Rpb24gVDQodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlPyt0OituZXcgRGF0ZSgrdCl9ZnVuY3Rpb24gQzQodCxlLG4saSxyLG8sYSxzLGwpe3ZhciBjPSQyKFcyLE4yKSx1PWMuaW52ZXJ0LGg9Yy5kb21haW4sZD1sKCIuJUwiKSxwPWwoIjolUyIpLGY9bCgiJUk6JU0iKSxtPWwoIiVJICVwIiksZz1sKCIlYSAlZCIpLF89bCgiJWIgJWQiKSx5PWwoIiVCIiksdj1sKCIlWSIpLGI9W1thLDEsMWUzXSxbYSw1LDVlM10sW2EsMTUsMTVlM10sW2EsMzAsM2U0XSxbbywxLDZlNF0sW28sNSwzZTVdLFtvLDE1LDllNV0sW28sMzAsMThlNV0sW3IsMSwzNmU1XSxbciwzLDEwOGU1XSxbciw2LDIxNmU1XSxbciwxMiw0MzJlNV0sW2ksMSw4NjRlNV0sW2ksMiwxNzI4ZTVdLFtuLDEsNjA0OGU1XSxbZSwxLDI1OTJlNl0sW2UsMyw3Nzc2ZTZdLFt0LDEsTTRdXTtmdW5jdGlvbiB4KHMpe3JldHVybihhKHMpPHM/ZDpvKHMpPHM/cDpyKHMpPHM/ZjppKHMpPHM/bTplKHMpPHM/bihzKTxzP2c6Xzp0KHMpPHM/eTp2KShzKX1mdW5jdGlvbiB3KGUsbixpLHIpe2lmKG51bGw9PWUmJihlPTEwKSwibnVtYmVyIj09dHlwZW9mIGUpe3ZhciBvPU1hdGguYWJzKGktbikvZSxhPWgwKChmdW5jdGlvbih0KXtyZXR1cm4gdFsyXX0pKS5yaWdodChiLG8pO2E9PT1iLmxlbmd0aD8ocj12MChuL000LGkvTTQsZSksZT10KTphPyhyPShhPWJbby9iW2EtMV1bMl08YlthXVsyXS9vP2EtMTphXSlbMV0sZT1hWzBdKToocj1NYXRoLm1heCh2MChuLGksZSksMSksZT1zKX1yZXR1cm4gbnVsbD09cj9lOmUuZXZlcnkocil9cmV0dXJuIGMuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRGF0ZSh1KHQpKX0sYy5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/aChDMC5jYWxsKHQsVDQpKTpoKCkubWFwKEU0KX0sYy50aWNrcz1mdW5jdGlvbih0LGUpe3ZhciBuLGk9aCgpLHI9aVswXSxvPWlbaS5sZW5ndGgtMV0sYT1vPHI7cmV0dXJuIGEmJihuPXIscj1vLG89biksbj0obj13KHQscixvLGUpKT9uLnJhbmdlKHIsbysxKTpbXSxhP24ucmV2ZXJzZSgpOm59LGMudGlja0Zvcm1hdD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1lP3g6bChlKX0sYy5uaWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49aCgpO3JldHVybih0PXcodCxuWzBdLG5bbi5sZW5ndGgtMV0sZSkpP2gocDUobix0KSk6Y30sYy5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIFgyKGMsQzQodCxlLG4saSxyLG8sYSxzLGwpKX0sY31mdW5jdGlvbiBBNCh0KXtyZXR1cm4gdC5tYXRjaCgvLns2fS9nKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiIjIit0fSkpfXZhciBrND1BNCgiMWY3N2I0ZmY3ZjBlMmNhMDJjZDYyNzI4OTQ2N2JkOGM1NjRiZTM3N2MyN2Y3ZjdmYmNiZDIyMTdiZWNmIiksTDQ9QTQoIjM5M2I3OTUyNTRhMzZiNmVjZjljOWVkZTYzNzkzOThjYTI1MmI1Y2Y2YmNlZGI5YzhjNmQzMWJkOWUzOWU3YmE1MmU3Y2I5NDg0M2MzOWFkNDk0YWQ2NjE2YmU3OTY5YzdiNDE3M2E1NTE5NGNlNmRiZGRlOWVkNiIpLFA0PUE0KCIzMTgyYmQ2YmFlZDY5ZWNhZTFjNmRiZWZlNjU1MGRmZDhkM2NmZGFlNmJmZGQwYTIzMWEzNTQ3NGM0NzZhMWQ5OWJjN2U5YzA3NTZiYjE5ZTlhYzhiY2JkZGNkYWRhZWI2MzYzNjM5Njk2OTZiZGJkYmRkOWQ5ZDkiKSxOND1BNCgiMWY3N2I0YWVjN2U4ZmY3ZjBlZmZiYjc4MmNhMDJjOThkZjhhZDYyNzI4ZmY5ODk2OTQ2N2JkYzViMGQ1OGM1NjRiYzQ5Yzk0ZTM3N2MyZjdiNmQyN2Y3ZjdmYzdjN2M3YmNiZDIyZGJkYjhkMTdiZWNmOWVkYWU1IiksSTQ9VjIoUzIoMzAwLC41LDApLFMyKC0yNDAsLjUsMSkpLFI0PVYyKFMyKC0xMDAsLjc1LC4zNSksUzIoODAsMS41LC44KSksTzQ9VjIoUzIoMjYwLC43NSwuMzUpLFMyKDgwLDEuNSwuOCkpLHo0PVMyKCk7ZnVuY3Rpb24gRDQodCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0W01hdGgubWF4KDAsTWF0aC5taW4oZS0xLE1hdGguZmxvb3IobiplKSkpXX19dmFyIEI0PUQ0KEE0KCI0NDAxNTQ0NDAyNTY0NTA0NTc0NTA1NTk0NjA3NWE0NjA4NWM0NjBhNWQ0NjBiNWU0NzBkNjA0NzBlNjE0NzEwNjM0NzExNjQ0NzEzNjU0ODE0Njc0ODE2Njg0ODE3Njk0ODE4NmE0ODFhNmM0ODFiNmQ0ODFjNmU0ODFkNmY0ODFmNzA0ODIwNzE0ODIxNzM0ODIzNzQ0ODI0NzU0ODI1NzY0ODI2Nzc0ODI4Nzg0ODI5Nzk0NzJhN2E0NzJjN2E0NzJkN2I0NzJlN2M0NzJmN2Q0NjMwN2U0NjMyN2U0NjMzN2Y0NjM0ODA0NTM1ODE0NTM3ODE0NTM4ODI0NDM5ODM0NDNhODM0NDNiODQ0MzNkODQ0MzNlODU0MjNmODU0MjQwODY0MjQxODY0MTQyODc0MTQ0ODc0MDQ1ODg0MDQ2ODgzZjQ3ODgzZjQ4ODkzZTQ5ODkzZTRhODkzZTRjOGEzZDRkOGEzZDRlOGEzYzRmOGEzYzUwOGIzYjUxOGIzYjUyOGIzYTUzOGIzYTU0OGMzOTU1OGMzOTU2OGMzODU4OGMzODU5OGMzNzVhOGMzNzViOGQzNjVjOGQzNjVkOGQzNTVlOGQzNTVmOGQzNDYwOGQzNDYxOGQzMzYyOGQzMzYzOGQzMjY0OGUzMjY1OGUzMTY2OGUzMTY3OGUzMTY4OGUzMDY5OGUzMDZhOGUyZjZiOGUyZjZjOGUyZTZkOGUyZTZlOGUyZTZmOGUyZDcwOGUyZDcxOGUyYzcxOGUyYzcyOGUyYzczOGUyYjc0OGUyYjc1OGUyYTc2OGUyYTc3OGUyYTc4OGUyOTc5OGUyOTdhOGUyOTdiOGUyODdjOGUyODdkOGUyNzdlOGUyNzdmOGUyNzgwOGUyNjgxOGUyNjgyOGUyNjgyOGUyNTgzOGUyNTg0OGUyNTg1OGUyNDg2OGUyNDg3OGUyMzg4OGUyMzg5OGUyMzhhOGQyMjhiOGQyMjhjOGQyMjhkOGQyMThlOGQyMThmOGQyMTkwOGQyMTkxOGMyMDkyOGMyMDkyOGMyMDkzOGMxZjk0OGMxZjk1OGIxZjk2OGIxZjk3OGIxZjk4OGIxZjk5OGExZjlhOGExZTliOGExZTljODkxZTlkODkxZjllODkxZjlmODgxZmEwODgxZmExODgxZmExODcxZmEyODcyMGEzODYyMGE0ODYyMWE1ODUyMWE2ODUyMmE3ODUyMmE4ODQyM2E5ODMyNGFhODMyNWFiODIyNWFjODIyNmFkODEyN2FkODEyOGFlODAyOWFmN2YyYWIwN2YyY2IxN2UyZGIyN2QyZWIzN2MyZmI0N2MzMWI1N2IzMmI2N2EzNGI2NzkzNWI3NzkzN2I4NzgzOGI5NzczYWJhNzYzYmJiNzUzZGJjNzQzZmJjNzM0MGJkNzI0MmJlNzE0NGJmNzA0NmMwNmY0OGMxNmU0YWMxNmQ0Y2MyNmM0ZWMzNmI1MGM0NmE1MmM1Njk1NGM1Njg1NmM2Njc1OGM3NjU1YWM4NjQ1Y2M4NjM1ZWM5NjI2MGNhNjA2M2NiNWY2NWNiNWU2N2NjNWM2OWNkNWI2Y2NkNWE2ZWNlNTg3MGNmNTc3M2QwNTY3NWQwNTQ3N2QxNTM3YWQxNTE3Y2QyNTA3ZmQzNGU4MWQzNGQ4NGQ0NGI4NmQ1NDk4OWQ1NDg4YmQ2NDY4ZWQ2NDU5MGQ3NDM5M2Q3NDE5NWQ4NDA5OGQ4M2U5YmQ5M2M5ZGQ5M2JhMGRhMzlhMmRhMzdhNWRiMzZhOGRiMzRhYWRjMzJhZGRjMzBiMGRkMmZiMmRkMmRiNWRlMmJiOGRlMjliYWRlMjhiZGRmMjZjMGRmMjVjMmRmMjNjNWUwMjFjOGUwMjBjYWUxMWZjZGUxMWRkMGUxMWNkMmUyMWJkNWUyMWFkOGUyMTlkYWUzMTlkZGUzMThkZmUzMThlMmU0MThlNWU0MTllN2U0MTllYWU1MWFlY2U1MWJlZmU1MWNmMWU1MWRmNGU2MWVmNmU2MjBmOGU2MjFmYmU3MjNmZGU3MjUiKSksSDQ9RDQoQTQoIjAwMDAwNDAxMDAwNTAxMDEwNjAxMDEwODAyMDEwOTAyMDIwYjAyMDIwZDAzMDMwZjAzMDMxMjA0MDQxNDA1MDQxNjA2MDUxODA2MDUxYTA3MDYxYzA4MDcxZTA5MDcyMDBhMDgyMjBiMDkyNDBjMDkyNjBkMGEyOTBlMGIyYjEwMGIyZDExMGMyZjEyMGQzMTEzMGQzNDE0MGUzNjE1MGUzODE2MGYzYjE4MGYzZDE5MTAzZjFhMTA0MjFjMTA0NDFkMTE0NzFlMTE0OTIwMTE0YjIxMTE0ZTIyMTE1MDI0MTI1MzI1MTI1NTI3MTI1ODI5MTE1YTJhMTE1YzJjMTE1ZjJkMTE2MTJmMTE2MzMxMTE2NTMzMTA2NzM0MTA2OTM2MTA2YjM4MTA2YzM5MGY2ZTNiMGY3MDNkMGY3MTNmMGY3MjQwMGY3NDQyMGY3NTQ0MGY3NjQ1MTA3NzQ3MTA3ODQ5MTA3ODRhMTA3OTRjMTE3YTRlMTE3YjRmMTI3YjUxMTI3YzUyMTM3YzU0MTM3ZDU2MTQ3ZDU3MTU3ZTU5MTU3ZTVhMTY3ZTVjMTY3ZjVkMTc3ZjVmMTg3ZjYwMTg4MDYyMTk4MDY0MWE4MDY1MWE4MDY3MWI4MDY4MWM4MTZhMWM4MTZiMWQ4MTZkMWQ4MTZlMWU4MTcwMWY4MTcyMWY4MTczMjA4MTc1MjE4MTc2MjE4MTc4MjI4MTc5MjI4MjdiMjM4MjdjMjM4MjdlMjQ4MjgwMjU4MjgxMjU4MTgzMjY4MTg0MjY4MTg2Mjc4MTg4Mjc4MTg5Mjg4MThiMjk4MThjMjk4MThlMmE4MTkwMmE4MTkxMmI4MTkzMmI4MDk0MmM4MDk2MmM4MDk4MmQ4MDk5MmQ4MDliMmU3ZjljMmU3ZjllMmY3ZmEwMmY3ZmExMzA3ZWEzMzA3ZWE1MzE3ZWE2MzE3ZGE4MzI3ZGFhMzM3ZGFiMzM3Y2FkMzQ3Y2FlMzQ3YmIwMzU3YmIyMzU3YmIzMzY3YWI1MzY3YWI3Mzc3OWI4Mzc3OWJhMzg3OGJjMzk3OGJkMzk3N2JmM2E3N2MwM2E3NmMyM2I3NWM0M2M3NWM1M2M3NGM3M2Q3M2M4M2U3M2NhM2U3MmNjM2Y3MWNkNDA3MWNmNDA3MGQwNDE2ZmQyNDI2ZmQzNDM2ZWQ1NDQ2ZGQ2NDU2Y2Q4NDU2Y2Q5NDY2YmRiNDc2YWRjNDg2OWRlNDk2OGRmNGE2OGUwNGM2N2UyNGQ2NmUzNGU2NWU0NGY2NGU1NTA2NGU3NTI2M2U4NTM2MmU5NTQ2MmVhNTY2MWViNTc2MGVjNTg2MGVkNWE1ZmVlNWI1ZWVmNWQ1ZWYwNWY1ZWYxNjA1ZGYyNjI1ZGYyNjQ1Y2YzNjU1Y2Y0Njc1Y2Y0Njk1Y2Y1NmI1Y2Y2NmM1Y2Y2NmU1Y2Y3NzA1Y2Y3NzI1Y2Y4NzQ1Y2Y4NzY1Y2Y5Nzg1ZGY5Nzk1ZGY5N2I1ZGZhN2Q1ZWZhN2Y1ZWZhODE1ZmZiODM1ZmZiODU2MGZiODc2MWZjODk2MWZjOGE2MmZjOGM2M2ZjOGU2NGZjOTA2NWZkOTI2NmZkOTQ2N2ZkOTY2OGZkOTg2OWZkOWE2YWZkOWI2YmZlOWQ2Y2ZlOWY2ZGZlYTE2ZWZlYTM2ZmZlYTU3MWZlYTc3MmZlYTk3M2ZlYWE3NGZlYWM3NmZlYWU3N2ZlYjA3OGZlYjI3YWZlYjQ3YmZlYjY3Y2ZlYjc3ZWZlYjk3ZmZlYmI4MWZlYmQ4MmZlYmY4NGZlYzE4NWZlYzI4N2ZlYzQ4OGZlYzY4YWZlYzg4Y2ZlY2E4ZGZlY2M4ZmZlY2Q5MGZlY2Y5MmZlZDE5NGZlZDM5NWZlZDU5N2ZlZDc5OWZlZDg5YWZkZGE5Y2ZkZGM5ZWZkZGVhMGZkZTBhMWZkZTJhM2ZkZTNhNWZkZTVhN2ZkZTdhOWZkZTlhYWZkZWJhY2ZjZWNhZWZjZWViMGZjZjBiMmZjZjJiNGZjZjRiNmZjZjZiOGZjZjdiOWZjZjliYmZjZmJiZGZjZmRiZiIpKSxGND1ENChBNCgiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTBhMDIwMjBjMDIwMjBlMDMwMjEwMDQwMzEyMDQwMzE0MDUwNDE3MDYwNDE5MDcwNTFiMDgwNTFkMDkwNjFmMGEwNzIyMGIwNzI0MGMwODI2MGQwODI5MGUwOTJiMTAwOTJkMTEwYTMwMTIwYTMyMTQwYjM0MTUwYjM3MTYwYjM5MTgwYzNjMTkwYzNlMWIwYzQxMWMwYzQzMWUwYzQ1MWYwYzQ4MjEwYzRhMjMwYzRjMjQwYzRmMjYwYzUxMjgwYjUzMjkwYjU1MmIwYjU3MmQwYjU5MmYwYTViMzEwYTVjMzIwYTVlMzQwYTVmMzYwOTYxMzgwOTYyMzkwOTYzM2IwOTY0M2QwOTY1M2UwOTY2NDAwYTY3NDIwYTY4NDQwYTY4NDUwYTY5NDcwYjZhNDkwYjZhNGEwYzZiNGMwYzZiNGQwZDZjNGYwZDZjNTEwZTZjNTIwZTZkNTQwZjZkNTUwZjZkNTcxMDZlNTkxMDZlNWExMTZlNWMxMjZlNWQxMjZlNWYxMzZlNjExMzZlNjIxNDZlNjQxNTZlNjUxNTZlNjcxNjZlNjkxNjZlNmExNzZlNmMxODZlNmQxODZlNmYxOTZlNzExOTZlNzIxYTZlNzQxYTZlNzUxYjZlNzcxYzZkNzgxYzZkN2ExZDZkN2MxZDZkN2QxZTZkN2YxZTZjODAxZjZjODIyMDZjODQyMDZiODUyMTZiODcyMTZiODgyMjZhOGEyMjZhOGMyMzY5OGQyMzY5OGYyNDY5OTAyNTY4OTIyNTY4OTMyNjY3OTUyNjY3OTcyNzY2OTgyNzY2OWEyODY1OWIyOTY0OWQyOTY0OWYyYTYzYTAyYTYzYTIyYjYyYTMyYzYxYTUyYzYwYTYyZDYwYTgyZTVmYTkyZTVlYWIyZjVlYWQzMDVkYWUzMDVjYjAzMTViYjEzMjVhYjMzMjVhYjQzMzU5YjYzNDU4YjczNTU3YjkzNTU2YmEzNjU1YmMzNzU0YmQzODUzYmYzOTUyYzAzYTUxYzEzYTUwYzMzYjRmYzQzYzRlYzYzZDRkYzczZTRjYzgzZjRiY2E0MDRhY2I0MTQ5Y2M0MjQ4Y2U0MzQ3Y2Y0NDQ2ZDA0NTQ1ZDI0NjQ0ZDM0NzQzZDQ0ODQyZDU0YTQxZDc0YjNmZDg0YzNlZDk0ZDNkZGE0ZTNjZGI1MDNiZGQ1MTNhZGU1MjM4ZGY1MzM3ZTA1NTM2ZTE1NjM1ZTI1NzM0ZTM1OTMzZTQ1YTMxZTU1YzMwZTY1ZDJmZTc1ZTJlZTg2MDJkZTk2MTJiZWE2MzJhZWI2NDI5ZWI2NjI4ZWM2NzI2ZWQ2OTI1ZWU2YTI0ZWY2YzIzZWY2ZTIxZjA2ZjIwZjE3MTFmZjE3MzFkZjI3NDFjZjM3NjFiZjM3ODE5ZjQ3OTE4ZjU3YjE3ZjU3ZDE1ZjY3ZTE0ZjY4MDEzZjc4MjEyZjc4NDEwZjg4NTBmZjg4NzBlZjg4OTBjZjk4YjBiZjk4YzBhZjk4ZTA5ZmE5MDA4ZmE5MjA3ZmE5NDA3ZmI5NjA2ZmI5NzA2ZmI5OTA2ZmI5YjA2ZmI5ZDA3ZmM5ZjA3ZmNhMTA4ZmNhMzA5ZmNhNTBhZmNhNjBjZmNhODBkZmNhYTBmZmNhYzExZmNhZTEyZmNiMDE0ZmNiMjE2ZmNiNDE4ZmJiNjFhZmJiODFkZmJiYTFmZmJiYzIxZmJiZTIzZmFjMDI2ZmFjMjI4ZmFjNDJhZmFjNjJkZjljNzJmZjljOTMyZjljYjM1ZjhjZDM3ZjhjZjNhZjdkMTNkZjdkMzQwZjZkNTQzZjZkNzQ2ZjVkOTQ5ZjVkYjRjZjRkZDRmZjRkZjUzZjRlMTU2ZjNlMzVhZjNlNTVkZjJlNjYxZjJlODY1ZjJlYTY5ZjFlYzZkZjFlZDcxZjFlZjc1ZjFmMTc5ZjJmMjdkZjJmNDgyZjNmNTg2ZjNmNjhhZjRmODhlZjVmOTkyZjZmYTk2ZjhmYjlhZjlmYzlkZmFmZGExZmNmZmE0IikpLFY0PUQ0KEE0KCIwZDA4ODcxMDA3ODgxMzA3ODkxNjA3OGExOTA2OGMxYjA2OGQxZDA2OGUyMDA2OGYyMjA2OTAyNDA2OTEyNjA1OTEyODA1OTIyYTA1OTMyYzA1OTQyZTA1OTUyZjA1OTYzMTA1OTczMzA1OTczNTA0OTgzNzA0OTkzODA0OWEzYTA0OWEzYzA0OWIzZTA0OWMzZjA0OWM0MTA0OWQ0MzAzOWU0NDAzOWU0NjAzOWY0ODAzOWY0OTAzYTA0YjAzYTE0YzAyYTE0ZTAyYTI1MDAyYTI1MTAyYTM1MzAyYTM1NTAyYTQ1NjAxYTQ1ODAxYTQ1OTAxYTU1YjAxYTU1YzAxYTY1ZTAxYTY2MDAxYTY2MTAwYTc2MzAwYTc2NDAwYTc2NjAwYTc2NzAwYTg2OTAwYTg2YTAwYTg2YzAwYTg2ZTAwYTg2ZjAwYTg3MTAwYTg3MjAxYTg3NDAxYTg3NTAxYTg3NzAxYTg3ODAxYTg3YTAyYTg3YjAyYTg3ZDAzYTg3ZTAzYTg4MDA0YTg4MTA0YTc4MzA1YTc4NDA1YTc4NjA2YTY4NzA3YTY4ODA4YTY4YTA5YTU4YjBhYTU4ZDBiYTU4ZTBjYTQ4ZjBkYTQ5MTBlYTM5MjBmYTM5NDEwYTI5NTExYTE5NjEzYTE5ODE0YTA5OTE1OWY5YTE2OWY5YzE3OWU5ZDE4OWQ5ZTE5OWRhMDFhOWNhMTFiOWJhMjFkOWFhMzFlOWFhNTFmOTlhNjIwOThhNzIxOTdhODIyOTZhYTIzOTVhYjI0OTRhYzI2OTRhZDI3OTNhZTI4OTJiMDI5OTFiMTJhOTBiMjJiOGZiMzJjOGViNDJlOGRiNTJmOGNiNjMwOGJiNzMxOGFiODMyODliYTMzODhiYjM0ODhiYzM1ODdiZDM3ODZiZTM4ODViZjM5ODRjMDNhODNjMTNiODJjMjNjODFjMzNkODBjNDNlN2ZjNTQwN2VjNjQxN2RjNzQyN2NjODQzN2JjOTQ0N2FjYTQ1N2FjYjQ2NzljYzQ3NzhjYzQ5NzdjZDRhNzZjZTRiNzVjZjRjNzRkMDRkNzNkMTRlNzJkMjRmNzFkMzUxNzFkNDUyNzBkNTUzNmZkNTU0NmVkNjU1NmRkNzU2NmNkODU3NmJkOTU4NmFkYTVhNmFkYTViNjlkYjVjNjhkYzVkNjdkZDVlNjZkZTVmNjVkZTYxNjRkZjYyNjNlMDYzNjNlMTY0NjJlMjY1NjFlMjY2NjBlMzY4NWZlNDY5NWVlNTZhNWRlNTZiNWRlNjZjNWNlNzZlNWJlNzZmNWFlODcwNTllOTcxNThlOTcyNTdlYTc0NTdlYjc1NTZlYjc2NTVlYzc3NTRlZDc5NTNlZDdhNTJlZTdiNTFlZjdjNTFlZjdlNTBmMDdmNGZmMDgwNGVmMTgxNGRmMTgzNGNmMjg0NGJmMzg1NGJmMzg3NGFmNDg4NDlmNDg5NDhmNThiNDdmNThjNDZmNjhkNDVmNjhmNDRmNzkwNDRmNzkxNDNmNzkzNDJmODk0NDFmODk1NDBmOTk3M2ZmOTk4M2VmOTlhM2VmYTliM2RmYTljM2NmYTllM2JmYjlmM2FmYmExMzlmYmEyMzhmY2EzMzhmY2E1MzdmY2E2MzZmY2E4MzVmY2E5MzRmZGFiMzNmZGFjMzNmZGFlMzJmZGFmMzFmZGIxMzBmZGIyMmZmZGI0MmZmZGI1MmVmZWI3MmRmZWI4MmNmZWJhMmNmZWJiMmJmZWJkMmFmZWJlMmFmZWMwMjlmZGMyMjlmZGMzMjhmZGM1MjdmZGM2MjdmZGM4MjdmZGNhMjZmZGNiMjZmY2NkMjVmY2NlMjVmY2QwMjVmY2QyMjVmYmQzMjRmYmQ1MjRmYmQ3MjRmYWQ4MjRmYWRhMjRmOWRjMjRmOWRkMjVmOGRmMjVmOGUxMjVmN2UyMjVmN2U0MjVmNmU2MjZmNmU4MjZmNWU5MjZmNWViMjdmNGVkMjdmM2VlMjdmM2YwMjdmMmYyMjdmMWY0MjZmMWY1MjVmMGY3MjRmMGY5MjEiKSksVTQ9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLGo0PXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpVNCx4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9O2Z1bmN0aW9uIEc0KHQpe3ZhciBlPXQrPSIiLG49ZS5pbmRleE9mKCI6Iik7cmV0dXJuIG4+PTAmJiJ4bWxucyIhPT0oZT10LnNsaWNlKDAsbikpJiYodD10LnNsaWNlKG4rMSkpLGo0Lmhhc093blByb3BlcnR5KGUpP3tzcGFjZTpqNFtlXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIFc0KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudCxuPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBuPT09VTQmJmUuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PVU0P2UuY3JlYXRlRWxlbWVudCh0KTplLmNyZWF0ZUVsZW1lbnROUyhuLHQpfX1mdW5jdGlvbiBxNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBZNCh0KXt2YXIgZT1HNCh0KTtyZXR1cm4oZS5sb2NhbD9xNDpXNCkoZSl9ZnVuY3Rpb24gWDQoKXt9ZnVuY3Rpb24gJDQodCl7cmV0dXJuIG51bGw9PXQ/WDQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiBLNCgpe3JldHVybltdfWZ1bmN0aW9uIFo0KHQpe3JldHVybiBudWxsPT10P0s0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19dmFyIEo0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXModCl9fTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50KXt2YXIgUTQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2lmKCFRNC5tYXRjaGVzKXt2YXIgdDY9UTQud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxRNC5tc01hdGNoZXNTZWxlY3Rvcnx8UTQubW96TWF0Y2hlc1NlbGVjdG9yfHxRNC5vTWF0Y2hlc1NlbGVjdG9yO0o0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0Ni5jYWxsKHRoaXMsdCl9fX19dmFyIGU2PUo0O2Z1bmN0aW9uIG42KHQpe3JldHVybiBuZXcgQXJyYXkodC5sZW5ndGgpfWZ1bmN0aW9uIGk2KHQsZSl7dGhpcy5vd25lckRvY3VtZW50PXQub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST10Lm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PXQsdGhpcy5fX2RhdGFfXz1lfWZ1bmN0aW9uIHI2KHQsZSxuLGkscixvKXtmb3IodmFyIGEscz0wLGw9ZS5sZW5ndGgsYz1vLmxlbmd0aDtzPGM7KytzKShhPWVbc10pPyhhLl9fZGF0YV9fPW9bc10saVtzXT1hKTpuW3NdPW5ldyBpNih0LG9bc10pO2Zvcig7czxsOysrcykoYT1lW3NdKSYmKHJbc109YSl9ZnVuY3Rpb24gbzYodCxlLG4saSxyLG8sYSl7dmFyIHMsbCxjLHU9e30saD1lLmxlbmd0aCxkPW8ubGVuZ3RoLHA9bmV3IEFycmF5KGgpO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmKHBbc109Yz0iJCIrYS5jYWxsKGwsbC5fX2RhdGFfXyxzLGUpLGMgaW4gdT9yW3NdPWw6dVtjXT1sKTtmb3Iocz0wO3M8ZDsrK3MpKGw9dVtjPSIkIithLmNhbGwodCxvW3NdLHMsbyldKT8oaVtzXT1sLGwuX19kYXRhX189b1tzXSx1W2NdPW51bGwpOm5bc109bmV3IGk2KHQsb1tzXSk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiZ1W3Bbc11dPT09bCYmKHJbc109bCl9ZnVuY3Rpb24gYTYodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gczYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIGw2KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gYzYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUpfX1mdW5jdGlvbiB1Nih0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUpfX1mdW5jdGlvbiBoNih0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCk6dGhpcy5zZXRBdHRyaWJ1dGUodCxuKX19ZnVuY3Rpb24gZDYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxuKX19ZnVuY3Rpb24gcDYodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudCYmdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx0LmRvY3VtZW50JiZ0fHx0LmRlZmF1bHRWaWV3fWZ1bmN0aW9uIGY2KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIG02KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsZSxuKX19ZnVuY3Rpb24gZzYodCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBpPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWk/dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KTp0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsaSxuKX19ZnVuY3Rpb24gXzYodCxlKXtyZXR1cm4gdC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGUpfHxwNih0KS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShlKX1mdW5jdGlvbiB5Nih0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX19ZnVuY3Rpb24gdjYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzW3RdPWV9fWZ1bmN0aW9uIGI2KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj9kZWxldGUgdGhpc1t0XTp0aGlzW3RdPW59fWZ1bmN0aW9uIHg2KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiB3Nih0KXtyZXR1cm4gdC5jbGFzc0xpc3R8fG5ldyBTNih0KX1mdW5jdGlvbiBTNih0KXt0aGlzLl9ub2RlPXQsdGhpcy5fbmFtZXM9eDYodC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX1mdW5jdGlvbiBNNih0LGUpe2Zvcih2YXIgbj13Nih0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4uYWRkKGVbaV0pfWZ1bmN0aW9uIEU2KHQsZSl7Zm9yKHZhciBuPXc2KHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5yZW1vdmUoZVtpXSl9ZnVuY3Rpb24gVDYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7TTYodGhpcyx0KX19ZnVuY3Rpb24gQzYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7RTYodGhpcyx0KX19ZnVuY3Rpb24gQTYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXsoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk/TTY6RTYpKHRoaXMsdCl9fWZ1bmN0aW9uIGs2KCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiBMNih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fWZ1bmN0aW9uIFA2KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBONigpe3RoaXMuaW5uZXJIVE1MPSIifWZ1bmN0aW9uIEk2KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9fWZ1bmN0aW9uIFI2KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gTzYoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gejYoKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBENigpe3JldHVybiBudWxsfWZ1bmN0aW9uIEI2KCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gSDYoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMSksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gRjYoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMCksdGhpcy5uZXh0U2libGluZyl9aTYucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjppNixhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LGUpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSxTNi5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt0aGlzLl9uYW1lcy5pbmRleE9mKHQpPDAmJih0aGlzLl9uYW1lcy5wdXNoKHQpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9uYW1lcy5pbmRleE9mKHQpO2U+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UoZSwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciBWNj17fSxVNj1udWxsO2Z1bmN0aW9uIGo2KHQsZSxuKXtyZXR1cm4gdD1HNih0LGUsbiksZnVuY3Rpb24oZSl7dmFyIG49ZS5yZWxhdGVkVGFyZ2V0O24mJihuPT09dGhpc3x8OCZuLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMpKXx8dC5jYWxsKHRoaXMsZSl9fWZ1bmN0aW9uIEc2KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIHI9VTY7VTY9aTt0cnl7dC5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxlLG4pfWZpbmFsbHl7VTY9cn19fWZ1bmN0aW9uIFc2KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihlPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOmV9fSkpfWZ1bmN0aW9uIHE2KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMuX19vbjtpZihlKXtmb3IodmFyIG4saT0wLHI9LTEsbz1lLmxlbmd0aDtpPG87KytpKW49ZVtpXSx0LnR5cGUmJm4udHlwZSE9PXQudHlwZXx8bi5uYW1lIT09dC5uYW1lP2VbKytyXT1uOnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLnR5cGUsbi5saXN0ZW5lcixuLmNhcHR1cmUpOysrcj9lLmxlbmd0aD1yOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBZNih0LGUsbil7dmFyIGk9VjYuaGFzT3duUHJvcGVydHkodC50eXBlKT9qNjpHNjtyZXR1cm4gZnVuY3Rpb24ocixvLGEpe3ZhciBzLGw9dGhpcy5fX29uLGM9aShlLG8sYSk7aWYobClmb3IodmFyIHU9MCxoPWwubGVuZ3RoO3U8aDsrK3UpaWYoKHM9bFt1XSkudHlwZT09PXQudHlwZSYmcy5uYW1lPT09dC5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXIscy5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXI9YyxzLmNhcHR1cmU9biksdm9pZChzLnZhbHVlPWUpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcih0LnR5cGUsYyxuKSxzPXt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSx2YWx1ZTplLGxpc3RlbmVyOmMsY2FwdHVyZTpufSxsP2wucHVzaChzKTp0aGlzLl9fb249W3NdfX1mdW5jdGlvbiBYNih0LGUsbil7dmFyIGk9cDYodCkscj1pLkN1c3RvbUV2ZW50OyJmdW5jdGlvbiI9PXR5cGVvZiByP3I9bmV3IHIoZSxuKToocj1pLmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLG4/KHIuaW5pdEV2ZW50KGUsbi5idWJibGVzLG4uY2FuY2VsYWJsZSksci5kZXRhaWw9bi5kZXRhaWwpOnIuaW5pdEV2ZW50KGUsITEsITEpKSx0LmRpc3BhdGNoRXZlbnQocil9ZnVuY3Rpb24gJDYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gWDYodGhpcyx0LGUpfX1mdW5jdGlvbiBLNih0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBYNih0aGlzLHQsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChWNj17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7dmFyIFo2PVtudWxsXTtmdW5jdGlvbiBKNih0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBRNigpe3JldHVybiBuZXcgSjYoW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSxaNil9ZnVuY3Rpb24gdDkodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P25ldyBKNihbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCldXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IEo2KFtbdF1dLFo2KX1KNi5wcm90b3R5cGU9UTYucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpKNixzZWxlY3Q6ZnVuY3Rpb24gZTkodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PSQ0KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGEscz1lW3JdLGw9cy5sZW5ndGgsYz1pW3JdPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkobz1zW3VdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyx1LHMpKSYmKCJfX2RhdGFfXyJpbiBvJiYoYS5fX2RhdGFfXz1vLl9fZGF0YV9fKSxjW3VdPWEpO3JldHVybiBuZXcgSjYoaSx0aGlzLl9wYXJlbnRzKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIG45KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1aNCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9W10scj1bXSxvPTA7bzxuOysrbylmb3IodmFyIGEscz1lW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKGE9c1tjXSkmJihpLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHMpKSxyLnB1c2goYSkpO3JldHVybiBuZXcgSjYoaSxyKX0sZmlsdGVyOmZ1bmN0aW9uIGk5KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1lNih0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgSjYoaSx0aGlzLl9wYXJlbnRzKX0sZGF0YTpmdW5jdGlvbiByOSh0LGUpe2lmKCF0KXJldHVybiBmPW5ldyBBcnJheSh0aGlzLnNpemUoKSksdT0tMSx0aGlzLmVhY2goKGZ1bmN0aW9uKHQpe2ZbKyt1XT10fSkpLGY7dmFyIG49ZT9vNjpyNixpPXRoaXMuX3BhcmVudHMscj10aGlzLl9ncm91cHM7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PShmdW5jdGlvbiBvKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0pKHQpKTtmb3IodmFyIGE9ci5sZW5ndGgscz1uZXcgQXJyYXkoYSksbD1uZXcgQXJyYXkoYSksYz1uZXcgQXJyYXkoYSksdT0wO3U8YTsrK3Upe3ZhciBoPWlbdV0sZD1yW3VdLHA9ZC5sZW5ndGgsZj10LmNhbGwoaCxoJiZoLl9fZGF0YV9fLHUsaSksbT1mLmxlbmd0aCxnPWxbdV09bmV3IEFycmF5KG0pLF89c1t1XT1uZXcgQXJyYXkobSk7bihoLGQsZyxfLGNbdV09bmV3IEFycmF5KHApLGYsZSk7Zm9yKHZhciB5LHYsYj0wLHg9MDtiPG07KytiKWlmKHk9Z1tiXSl7Zm9yKGI+PXgmJih4PWIrMSk7ISh2PV9beF0pJiYrK3g8bTspO3kuX25leHQ9dnx8bnVsbH19cmV0dXJuKHM9bmV3IEo2KHMsaSkpLl9lbnRlcj1sLHMuX2V4aXQ9YyxzfSxlbnRlcjpmdW5jdGlvbiBvOSgpe3JldHVybiBuZXcgSjYodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAobjYpLHRoaXMuX3BhcmVudHMpfSxleGl0OmZ1bmN0aW9uIGE5KCl7cmV0dXJuIG5ldyBKNih0aGlzLl9leGl0fHx0aGlzLl9ncm91cHMubWFwKG42KSx0aGlzLl9wYXJlbnRzKX0sbWVyZ2U6ZnVuY3Rpb24gczkodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPXQuX2dyb3VwcyxpPWUubGVuZ3RoLHI9TWF0aC5taW4oaSxuLmxlbmd0aCksbz1uZXcgQXJyYXkoaSksYT0wO2E8cjsrK2EpZm9yKHZhciBzLGw9ZVthXSxjPW5bYV0sdT1sLmxlbmd0aCxoPW9bYV09bmV3IEFycmF5KHUpLGQ9MDtkPHU7KytkKShzPWxbZF18fGNbZF0pJiYoaFtkXT1zKTtmb3IoO2E8aTsrK2Epb1thXT1lW2FdO3JldHVybiBuZXcgSjYobyx0aGlzLl9wYXJlbnRzKX0sb3JkZXI6ZnVuY3Rpb24gbDkoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9LTEsbj10Lmxlbmd0aDsrK2U8bjspZm9yKHZhciBpLHI9dFtlXSxvPXIubGVuZ3RoLTEsYT1yW29dOy0tbz49MDspKGk9cltvXSkmJihhJiZhIT09aS5uZXh0U2libGluZyYmYS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpLGEpLGE9aSk7cmV0dXJuIHRoaXN9LHNvcnQ6ZnVuY3Rpb24gYzkodCl7ZnVuY3Rpb24gZShlLG4pe3JldHVybiBlJiZuP3QoZS5fX2RhdGFfXyxuLl9fZGF0YV9fKTohZS0hbn10fHwodD1hNik7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGkpLG89MDtvPGk7KytvKXtmb3IodmFyIGEscz1uW29dLGw9cy5sZW5ndGgsYz1yW29dPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmKGNbdV09YSk7Yy5zb3J0KGUpfXJldHVybiBuZXcgSjYocix0aGlzLl9wYXJlbnRzKS5vcmRlcigpfSxjYWxsOmZ1bmN0aW9uIHU5KCl7dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyx0LmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfSxub2RlczpmdW5jdGlvbiBoOSgpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksZT0tMTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3RbKytlXT10aGlzfSkpLHR9LG5vZGU6ZnVuY3Rpb24gZDkoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9MCxuPXQubGVuZ3RoO2U8bjsrK2UpZm9yKHZhciBpPXRbZV0scj0wLG89aS5sZW5ndGg7cjxvOysrcil7dmFyIGE9aVtyXTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfSxzaXplOmZ1bmN0aW9uIHA5KCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpeysrdH0pKSx0fSxlbXB0eTpmdW5jdGlvbiBmOSgpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbiBtOSh0KXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49MCxpPWUubGVuZ3RoO248aTsrK24pZm9yKHZhciByLG89ZVtuXSxhPTAscz1vLmxlbmd0aDthPHM7KythKShyPW9bYV0pJiZ0LmNhbGwocixyLl9fZGF0YV9fLGEsbyk7cmV0dXJuIHRoaXN9LGF0dHI6ZnVuY3Rpb24gZzkodCxlKXt2YXIgbj1HNCh0KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBpPXRoaXMubm9kZSgpO3JldHVybiBuLmxvY2FsP2kuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTppLmdldEF0dHJpYnV0ZShuKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP24ubG9jYWw/bDY6czY6ImZ1bmN0aW9uIj09dHlwZW9mIGU/bi5sb2NhbD9kNjpoNjpuLmxvY2FsP3U2OmM2KShuLGUpKX0sc3R5bGU6ZnVuY3Rpb24gXzkodCxlLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1lP2Y2OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2c2Om02KSh0LGUsbnVsbD09bj8iIjpuKSk6XzYodGhpcy5ub2RlKCksdCl9LHByb3BlcnR5OmZ1bmN0aW9uIHk5KHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/eTY6ImZ1bmN0aW9uIj09dHlwZW9mIGU/YjY6djYpKHQsZSkpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uIHY5KHQsZSl7dmFyIG49eDYodCsiIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIGk9dzYodGhpcy5ub2RlKCkpLHI9LTEsbz1uLmxlbmd0aDsrK3I8bzspaWYoIWkuY29udGFpbnMobltyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/QTY6ZT9UNjpDNikobixlKSl9LHRleHQ6ZnVuY3Rpb24gYjkodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/azY6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P1A2Okw2KSh0KSk6dGhpcy5ub2RlKCkudGV4dENvbnRlbnR9LGh0bWw6ZnVuY3Rpb24geDkodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/TjY6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P1I2Okk2KSh0KSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxyYWlzZTpmdW5jdGlvbiB3OSgpe3JldHVybiB0aGlzLmVhY2goTzYpfSxsb3dlcjpmdW5jdGlvbiBTOSgpe3JldHVybiB0aGlzLmVhY2goejYpfSxhcHBlbmQ6ZnVuY3Rpb24gTTkodCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpZNCh0KTtyZXR1cm4gdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQoZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSkpfSxpbnNlcnQ6ZnVuY3Rpb24gRTkodCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgdD90Olk0KHQpLGk9bnVsbD09ZT9ENjoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOiQ0KGUpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUobi5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSkpfSxyZW1vdmU6ZnVuY3Rpb24gVDkoKXtyZXR1cm4gdGhpcy5lYWNoKEI2KX0sY2xvbmU6ZnVuY3Rpb24gQzkodCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/RjY6SDYpfSxkYXR1bTpmdW5jdGlvbiBBOSh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmZ1bmN0aW9uIGs5KHQsZSxuKXt2YXIgaSxyLG89VzYodCsiIiksYT1vLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2ZvcihzPWU/WTY6cTYsbnVsbD09biYmKG49ITEpLGk9MDtpPGE7KytpKXRoaXMuZWFjaChzKG9baV0sZSxuKSk7cmV0dXJuIHRoaXN9dmFyIHM9dGhpcy5ub2RlKCkuX19vbjtpZihzKWZvcih2YXIgbCxjPTAsdT1zLmxlbmd0aDtjPHU7KytjKWZvcihpPTAsbD1zW2NdO2k8YTsrK2kpaWYoKHI9b1tpXSkudHlwZT09PWwudHlwZSYmci5uYW1lPT09bC5uYW1lKXJldHVybiBsLnZhbHVlfSxkaXNwYXRjaDpmdW5jdGlvbiBMOSh0LGUpe3JldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBlP0s2OiQ2KSh0LGUpKX19O3ZhciBQOT0wO2Z1bmN0aW9uIE45KCl7cmV0dXJuIG5ldyBJOX1mdW5jdGlvbiBJOSgpe3RoaXMuXz0iQCIrKCsrUDkpLnRvU3RyaW5nKDM2KX1mdW5jdGlvbiBSOSgpe2Zvcih2YXIgdCxlPVU2O3Q9ZS5zb3VyY2VFdmVudDspZT10O3JldHVybiBlfWZ1bmN0aW9uIE85KHQsZSl7dmFyIG49dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIGk9bi5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBpLng9ZS5jbGllbnRYLGkueT1lLmNsaWVudFksWyhpPWkubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxpLnldfXZhciByPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW2UuY2xpZW50WC1yLmxlZnQtdC5jbGllbnRMZWZ0LGUuY2xpZW50WS1yLnRvcC10LmNsaWVudFRvcF19STkucHJvdG90eXBlPU45LnByb3RvdHlwZT17Y29uc3RydWN0b3I6STksZ2V0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl87IShlIGluIHQpOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHRbZV19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0W3RoaXMuX109ZX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl8gaW4gdCYmZGVsZXRlIHRbdGhpcy5fXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX07dmFyIHo5PU1hdGguUEksRDk9Mip6OSxCOT0xZS02LEg5PUQ5LUI5O2Z1bmN0aW9uIEY5KCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gVjkoKXtyZXR1cm4gbmV3IEY5fWZ1bmN0aW9uIFU5KHQpe3JldHVybiBmdW5jdGlvbiBlKCl7cmV0dXJuIHR9fUY5LnByb3RvdHlwZT1WOS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkY5LG1vdmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rZSl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe251bGwhPT10aGlzLl94MSYmKHRoaXMuX3gxPXRoaXMuX3gwLHRoaXMuX3kxPXRoaXMuX3kwLHRoaXMuXys9IloiKX0sbGluZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTCIrKHRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kxPStlKX0scXVhZHJhdGljQ3VydmVUbzpmdW5jdGlvbih0LGUsbixpKXt0aGlzLl8rPSJRIisgK3QrIiwiKyArZSsiLCIrKHRoaXMuX3gxPStuKSsiLCIrKHRoaXMuX3kxPStpKX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dGhpcy5fKz0iQyIrICt0KyIsIisgK2UrIiwiKyArbisiLCIrICtpKyIsIisodGhpcy5feDE9K3IpKyIsIisodGhpcy5feTE9K28pfSxhcmNUbzpmdW5jdGlvbih0LGUsbixpLHIpe3ZhciBvPXRoaXMuX3gxLGE9dGhpcy5feTEscz0obj0rbiktKHQ9K3QpLGw9KGk9K2kpLShlPStlKSxjPW8tdCx1PWEtZSxoPWMqYyt1KnU7aWYoKHI9K3IpPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIrcik7aWYobnVsbD09PXRoaXMuX3gxKXRoaXMuXys9Ik0iKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPWUpO2Vsc2UgaWYoaD5COSlpZihNYXRoLmFicyh1KnMtbCpjKT5COSYmcil7dmFyIGQ9bi1vLHA9aS1hLGY9cypzK2wqbCxtPWQqZCtwKnAsZz1NYXRoLnNxcnQoZiksXz1NYXRoLnNxcnQoaCkseT1yKk1hdGgudGFuKCh6OS1NYXRoLmFjb3MoKGYraC1tKS8oMipnKl8pKSkvMiksdj15L18sYj15L2c7TWF0aC5hYnModi0xKT5COSYmKHRoaXMuXys9IkwiKyh0K3YqYykrIiwiKyhlK3YqdSkpLHRoaXMuXys9IkEiK3IrIiwiK3IrIiwwLDAsIisgKyh1KmQ+YypwKSsiLCIrKHRoaXMuX3gxPXQrYipzKSsiLCIrKHRoaXMuX3kxPWUrYipsKX1lbHNlIHRoaXMuXys9IkwiKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPWUpfSxhcmM6ZnVuY3Rpb24odCxlLG4saSxyLG8pe3Q9K3QsZT0rZSxvPSEhbzt2YXIgYT0obj0rbikqTWF0aC5jb3MoaSkscz1uKk1hdGguc2luKGkpLGw9dCthLGM9ZStzLHU9MV5vLGg9bz9pLXI6ci1pO2lmKG48MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIituKTtudWxsPT09dGhpcy5feDE/dGhpcy5fKz0iTSIrbCsiLCIrYzooTWF0aC5hYnModGhpcy5feDEtbCk+Qjl8fE1hdGguYWJzKHRoaXMuX3kxLWMpPkI5KSYmKHRoaXMuXys9IkwiK2wrIiwiK2MpLG4mJihoPDAmJihoPWglRDkrRDkpLGg+SDk/dGhpcy5fKz0iQSIrbisiLCIrbisiLDAsMSwiK3UrIiwiKyh0LWEpKyIsIisoZS1zKSsiQSIrbisiLCIrbisiLDAsMSwiK3UrIiwiKyh0aGlzLl94MT1sKSsiLCIrKHRoaXMuX3kxPWMpOmg+QjkmJih0aGlzLl8rPSJBIituKyIsIituKyIsMCwiKyArKGg+PXo5KSsiLCIrdSsiLCIrKHRoaXMuX3gxPXQrbipNYXRoLmNvcyhyKSkrIiwiKyh0aGlzLl95MT1lK24qTWF0aC5zaW4ocikpKSl9LHJlY3Q6ZnVuY3Rpb24odCxlLG4saSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKSsiaCIrICtuKyJ2IisgK2krImgiKy1uKyJaIn0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX07dmFyIGo5PU1hdGguYWJzLEc5PU1hdGguYXRhbjIsVzk9TWF0aC5jb3MscTk9TWF0aC5tYXgsWTk9TWF0aC5taW4sWDk9TWF0aC5zaW4sJDk9TWF0aC5zcXJ0LEs5PTFlLTEyLFo5PU1hdGguUEksSjk9WjkvMixROT0yKlo5O2Z1bmN0aW9uIHQ4KHQpe3JldHVybiB0PjE/MDp0PC0xP1o5Ok1hdGguYWNvcyh0KX1mdW5jdGlvbiBlOCh0KXtyZXR1cm4gdD49MT9KOTp0PD0tMT8tSjk6TWF0aC5hc2luKHQpfWZ1bmN0aW9uIG44KHQpe3JldHVybiB0LmlubmVyUmFkaXVzfWZ1bmN0aW9uIGk4KHQpe3JldHVybiB0Lm91dGVyUmFkaXVzfWZ1bmN0aW9uIHI4KHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gbzgodCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24gYTgodCl7cmV0dXJuIHQmJnQucGFkQW5nbGV9ZnVuY3Rpb24gczgodCxlLG4saSxyLG8sYSxzKXt2YXIgbD1uLXQsYz1pLWUsdT1hLXIsaD1zLW8sZD0odSooZS1vKS1oKih0LXIpKS8oaCpsLXUqYyk7cmV0dXJuW3QrZCpsLGUrZCpjXX1mdW5jdGlvbiBsOCh0LGUsbixpLHIsbyxhKXt2YXIgcz10LW4sbD1lLWksYz0oYT9vOi1vKS8kOShzKnMrbCpsKSx1PWMqbCxoPS1jKnMsZD10K3UscD1lK2gsZj1uK3UsbT1pK2gsZz0oZCtmKS8yLF89KHArbSkvMix5PWYtZCx2PW0tcCxiPXkqeSt2KnYseD1yLW8sdz1kKm0tZipwLFM9KHY8MD8tMToxKSokOShxOSgwLHgqeCpiLXcqdykpLE09KHcqdi15KlMpL2IsRT0oLXcqeS12KlMpL2IsVD0odyp2K3kqUykvYixDPSgtdyp5K3YqUykvYixBPU0tZyxrPUUtXyxMPVQtZyxQPUMtXztyZXR1cm4gQSpBK2sqaz5MKkwrUCpQJiYoTT1ULEU9Qykse2N4Ok0sY3k6RSx4MDE6LXUseTAxOi1oLHgxMTpNKihyL3gtMSkseTExOkUqKHIveC0xKX19ZnVuY3Rpb24gYzgodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHU4KHQpe3JldHVybiBuZXcgYzgodCl9ZnVuY3Rpb24gaDgodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gZDgodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gcDgoKXt2YXIgdD1oOCxlPWQ4LG49VTkoITApLGk9bnVsbCxyPXU4LG89bnVsbDtmdW5jdGlvbiBhKGEpe3ZhciBzLGwsYyx1PWEubGVuZ3RoLGg9ITE7Zm9yKG51bGw9PWkmJihvPXIoYz1WOSgpKSkscz0wO3M8PXU7KytzKSEoczx1JiZuKGw9YVtzXSxzLGEpKT09PWgmJigoaD0haCk/by5saW5lU3RhcnQoKTpvLmxpbmVFbmQoKSksaCYmby5wb2ludCgrdChsLHMsYSksK2UobCxzLGEpKTtpZihjKXJldHVybiBvPW51bGwsYysiInx8bnVsbH1yZXR1cm4gYS54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6VTkoK2UpLGEpOnR9LGEueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxhKTplfSxhLmRlZmluZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSghIXQpLGEpOm59LGEuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxudWxsIT1pJiYobz1yKGkpKSxhKTpyfSxhLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/aT1vPW51bGw6bz1yKGk9dCksYSk6aX0sYX1mdW5jdGlvbiBmOCgpe3ZhciB0PWg4LGU9bnVsbCxuPVU5KDApLGk9ZDgscj1VOSghMCksbz1udWxsLGE9dTgscz1udWxsO2Z1bmN0aW9uIGwobCl7dmFyIGMsdSxoLGQscCxmPWwubGVuZ3RoLG09ITEsZz1uZXcgQXJyYXkoZiksXz1uZXcgQXJyYXkoZik7Zm9yKG51bGw9PW8mJihzPWEocD1WOSgpKSksYz0wO2M8PWY7KytjKXtpZighKGM8ZiYmcihkPWxbY10sYyxsKSk9PT1tKWlmKG09IW0pdT1jLHMuYXJlYVN0YXJ0KCkscy5saW5lU3RhcnQoKTtlbHNle2ZvcihzLmxpbmVFbmQoKSxzLmxpbmVTdGFydCgpLGg9Yy0xO2g+PXU7LS1oKXMucG9pbnQoZ1toXSxfW2hdKTtzLmxpbmVFbmQoKSxzLmFyZWFFbmQoKX1tJiYoZ1tjXT0rdChkLGMsbCksX1tjXT0rbihkLGMsbCkscy5wb2ludChlPytlKGQsYyxsKTpnW2NdLGk/K2koZCxjLGwpOl9bY10pKX1pZihwKXJldHVybiBzPW51bGwscCsiInx8bnVsbH1mdW5jdGlvbiBjKCl7cmV0dXJuIHA4KCkuZGVmaW5lZChyKS5jdXJ2ZShhKS5jb250ZXh0KG8pfXJldHVybiBsLng9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjpVOSgrbiksZT1udWxsLGwpOnR9LGwueDA9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpVOSgrZSksbCk6dH0sbC54MT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1udWxsPT10P251bGw6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSgrdCksbCk6ZX0sbC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGk9bnVsbCxsKTpufSxsLnkwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGwpOm59LGwueTE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGwpOml9LGwubGluZVgwPWwubGluZVkwPWZ1bmN0aW9uKCl7cmV0dXJuIGMoKS54KHQpLnkobil9LGwubGluZVkxPWZ1bmN0aW9uKCl7cmV0dXJuIGMoKS54KHQpLnkoaSl9LGwubGluZVgxPWZ1bmN0aW9uKCl7cmV0dXJuIGMoKS54KGUpLnkobil9LGwuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCEhdCksbCk6cn0sbC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LG51bGwhPW8mJihzPWEobykpLGwpOmF9LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9vPXM9bnVsbDpzPWEobz10KSxsKTpvfSxsfWZ1bmN0aW9uIG04KHQsZSl7cmV0dXJuIGU8dD8tMTplPnQ/MTplPj10PzA6TmFOfWZ1bmN0aW9uIGc4KHQpe3JldHVybiB0fWM4LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpfX19O3ZhciBfOD12OCh1OCk7ZnVuY3Rpb24geTgodCl7dGhpcy5fY3VydmU9dH1mdW5jdGlvbiB2OCh0KXtmdW5jdGlvbiBlKGUpe3JldHVybiBuZXcgeTgodChlKSl9cmV0dXJuIGUuX2N1cnZlPXQsZX1mdW5jdGlvbiBiOCh0KXt2YXIgZT10LmN1cnZlO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZSh2OCh0KSk6ZSgpLl9jdXJ2ZX0sdH1mdW5jdGlvbiB4OCgpe3JldHVybiBiOChwOCgpLmN1cnZlKF84KSl9ZnVuY3Rpb24gdzgoKXt2YXIgdD1mOCgpLmN1cnZlKF84KSxlPXQuY3VydmUsbj10LmxpbmVYMCxpPXQubGluZVgxLHI9dC5saW5lWTAsbz10LmxpbmVZMTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnN0YXJ0QW5nbGU9dC54MCxkZWxldGUgdC54MCx0LmVuZEFuZ2xlPXQueDEsZGVsZXRlIHQueDEsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdC5pbm5lclJhZGl1cz10LnkwLGRlbGV0ZSB0LnkwLHQub3V0ZXJSYWRpdXM9dC55MSxkZWxldGUgdC55MSx0LmxpbmVTdGFydEFuZ2xlPWZ1bmN0aW9uKCl7cmV0dXJuIGI4KG4oKSl9LGRlbGV0ZSB0LmxpbmVYMCx0LmxpbmVFbmRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBiOChpKCkpfSxkZWxldGUgdC5saW5lWDEsdC5saW5lSW5uZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4gYjgocigpKX0sZGVsZXRlIHQubGluZVkwLHQubGluZU91dGVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIGI4KG8oKSl9LGRlbGV0ZSB0LmxpbmVZMSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UodjgodCkpOmUoKS5fY3VydmV9LHR9ZnVuY3Rpb24gUzgodCxlKXtyZXR1cm5bKGU9K2UpKk1hdGguY29zKHQtPU1hdGguUEkvMiksZSpNYXRoLnNpbih0KV19eTgucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhU3RhcnQoKX0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFFbmQoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lRW5kKCl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy5fY3VydmUucG9pbnQoZSpNYXRoLnNpbih0KSxlKi1NYXRoLmNvcyh0KSl9fTt2YXIgTTg9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIEU4KHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBUOCh0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gQzgodCl7dmFyIGU9RTgsbj1UOCxpPWg4LHI9ZDgsbz1udWxsO2Z1bmN0aW9uIGEoKXt2YXIgYSxzPU04LmNhbGwoYXJndW1lbnRzKSxsPWUuYXBwbHkodGhpcyxzKSxjPW4uYXBwbHkodGhpcyxzKTtpZihvfHwobz1hPVY5KCkpLHQobywraS5hcHBseSh0aGlzLChzWzBdPWwscykpLCtyLmFwcGx5KHRoaXMscyksK2kuYXBwbHkodGhpcywoc1swXT1jLHMpKSwrci5hcHBseSh0aGlzLHMpKSxhKXJldHVybiBvPW51bGwsYSsiInx8bnVsbH1yZXR1cm4gYS5zb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxhKTplfSxhLnRhcmdldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGEpOm59LGEueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxhKTppfSxhLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSgrdCksYSk6cn0sYS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPW51bGw9PXQ/bnVsbDp0LGEpOm99LGF9ZnVuY3Rpb24gQTgodCxlLG4saSxyKXt0Lm1vdmVUbyhlLG4pLHQuYmV6aWVyQ3VydmVUbyhlPShlK2kpLzIsbixlLHIsaSxyKX1mdW5jdGlvbiBrOCh0LGUsbixpLHIpe3QubW92ZVRvKGUsbiksdC5iZXppZXJDdXJ2ZVRvKGUsbj0obityKS8yLGksbixpLHIpfWZ1bmN0aW9uIEw4KHQsZSxuLGkscil7dmFyIG89UzgoZSxuKSxhPVM4KGUsbj0obityKS8yKSxzPVM4KGksbiksbD1TOChpLHIpO3QubW92ZVRvKG9bMF0sb1sxXSksdC5iZXppZXJDdXJ2ZVRvKGFbMF0sYVsxXSxzWzBdLHNbMV0sbFswXSxsWzFdKX12YXIgUDg9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLnNxcnQoZS9aOSk7dC5tb3ZlVG8obiwwKSx0LmFyYygwLDAsbiwwLFE5KX19LE44PXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KGUvNSkvMjt0Lm1vdmVUbygtMypuLC1uKSx0LmxpbmVUbygtbiwtbiksdC5saW5lVG8oLW4sLTMqbiksdC5saW5lVG8obiwtMypuKSx0LmxpbmVUbyhuLC1uKSx0LmxpbmVUbygzKm4sLW4pLHQubGluZVRvKDMqbixuKSx0LmxpbmVUbyhuLG4pLHQubGluZVRvKG4sMypuKSx0LmxpbmVUbygtbiwzKm4pLHQubGluZVRvKC1uLG4pLHQubGluZVRvKC0zKm4sbiksdC5jbG9zZVBhdGgoKX19LEk4PU1hdGguc3FydCgxLzMpLFI4PTIqSTgsTzg9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLnNxcnQoZS9SOCksaT1uKkk4O3QubW92ZVRvKDAsLW4pLHQubGluZVRvKGksMCksdC5saW5lVG8oMCxuKSx0LmxpbmVUbygtaSwwKSx0LmNsb3NlUGF0aCgpfX0sejg9TWF0aC5zaW4oWjkvMTApL01hdGguc2luKDcqWjkvMTApLEQ4PU1hdGguc2luKFE5LzEwKSp6OCxCOD0tTWF0aC5jb3MoUTkvMTApKno4LEg4PXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KC44OTA4MTMwOTE1MjkyODUyKmUpLGk9RDgqbixyPUI4Km47dC5tb3ZlVG8oMCwtbiksdC5saW5lVG8oaSxyKTtmb3IodmFyIG89MTtvPDU7KytvKXt2YXIgYT1ROSpvLzUscz1NYXRoLmNvcyhhKSxsPU1hdGguc2luKGEpO3QubGluZVRvKGwqbiwtcypuKSx0LmxpbmVUbyhzKmktbCpyLGwqaStzKnIpfXQuY2xvc2VQYXRoKCl9fSxGOD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydChlKSxpPS1uLzI7dC5yZWN0KGksaSxuLG4pfX0sVjg9TWF0aC5zcXJ0KDMpLFU4PXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49LU1hdGguc3FydChlLygzKlY4KSk7dC5tb3ZlVG8oMCwyKm4pLHQubGluZVRvKC1WOCpuLC1uKSx0LmxpbmVUbyhWOCpuLC1uKSx0LmNsb3NlUGF0aCgpfX0sajg9LS41LEc4PU1hdGguc3FydCgzKS8yLFc4PTEvTWF0aC5zcXJ0KDEyKSxxOD0zKihXOC8yKzEpLFk4PXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KGUvcTgpLGk9bi8yLHI9bipXOCxvPWksYT1uKlc4K24scz0tbyxsPWE7dC5tb3ZlVG8oaSxyKSx0LmxpbmVUbyhvLGEpLHQubGluZVRvKHMsbCksdC5saW5lVG8oajgqaS1HOCpyLEc4KmkrajgqciksdC5saW5lVG8oajgqby1HOCphLEc4Km8rajgqYSksdC5saW5lVG8oajgqcy1HOCpsLEc4KnMrajgqbCksdC5saW5lVG8oajgqaStHOCpyLGo4KnItRzgqaSksdC5saW5lVG8oajgqbytHOCphLGo4KmEtRzgqbyksdC5saW5lVG8oajgqcytHOCpsLGo4KmwtRzgqcyksdC5jbG9zZVBhdGgoKX19LFg4PVtQOCxOOCxPOCxGOCxIOCxVOCxZOF07ZnVuY3Rpb24gJDgoKXt9ZnVuY3Rpb24gSzgodCxlLG4pe3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbygoMip0Ll94MCt0Ll94MSkvMywoMip0Ll95MCt0Ll95MSkvMywodC5feDArMip0Ll94MSkvMywodC5feTArMip0Ll95MSkvMywodC5feDArNCp0Ll94MStlKS82LCh0Ll95MCs0KnQuX3kxK24pLzYpfWZ1bmN0aW9uIFo4KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBKOCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gUTgodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHQ3KHQsZSl7dGhpcy5fYmFzaXM9bmV3IFo4KHQpLHRoaXMuX2JldGE9ZX1aOC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAzOks4KHRoaXMsdGhpcy5feDEsdGhpcy5feTEpO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2NvbnRleHQubGluZVRvKCg1KnRoaXMuX3gwK3RoaXMuX3gxKS82LCg1KnRoaXMuX3kwK3RoaXMuX3kxKS82KTtkZWZhdWx0Oks4KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWV9fSxKOC5wcm90b3R5cGU9e2FyZWFTdGFydDokOCxhcmVhRW5kOiQ4LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MisyKnRoaXMuX3gzKS8zLCh0aGlzLl95MisyKnRoaXMuX3kzKS8zKSx0aGlzLl9jb250ZXh0LmxpbmVUbygodGhpcy5feDMrMip0aGlzLl94MikvMywodGhpcy5feTMrMip0aGlzLl95MikvMyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCl9fSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gyPXQsdGhpcy5feTI9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94Mz10LHRoaXMuX3kzPWU7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDQ9dCx0aGlzLl95ND1lLHRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYsKHRoaXMuX3kwKzQqdGhpcy5feTErZSkvNik7YnJlYWs7ZGVmYXVsdDpLOCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0sUTgucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7dmFyIG49KHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNixpPSh0aGlzLl95MCs0KnRoaXMuX3kxK2UpLzY7dGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhuLGkpOnRoaXMuX2NvbnRleHQubW92ZVRvKG4saSk7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpLOCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0sdDcucHJvdG90eXBlPXtsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W10sdGhpcy5fYmFzaXMubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LGU9dGhpcy5feSxuPXQubGVuZ3RoLTE7aWYobj4wKWZvcih2YXIgaSxyPXRbMF0sbz1lWzBdLGE9dFtuXS1yLHM9ZVtuXS1vLGw9LTE7KytsPD1uOyl0aGlzLl9iYXNpcy5wb2ludCh0aGlzLl9iZXRhKnRbbF0rKDEtdGhpcy5fYmV0YSkqKHIrKGk9bC9uKSphKSx0aGlzLl9iZXRhKmVbbF0rKDEtdGhpcy5fYmV0YSkqKG8raSpzKSk7dGhpcy5feD10aGlzLl95PW51bGwsdGhpcy5fYmFzaXMubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtlKX19O3ZhciBlNz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiAxPT09ZT9uZXcgWjgodCk6bmV3IHQ3KHQsZSl9cmV0dXJuIG4uYmV0YT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSguODUpO2Z1bmN0aW9uIG43KHQsZSxuKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8odC5feDErdC5fayoodC5feDItdC5feDApLHQuX3kxK3QuX2sqKHQuX3kyLXQuX3kwKSx0Ll94Mit0Ll9rKih0Ll94MS1lKSx0Ll95Mit0Ll9rKih0Ll95MS1uKSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gaTcodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1lKS82fWk3LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzpuNyh0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDE9dCx0aGlzLl95MT1lO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6bjcodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciByNz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBuZXcgaTcodCxlKX1yZXR1cm4gbi50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKDApO2Z1bmN0aW9uIG83KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1vNy5wcm90b3R5cGU9e2FyZWFTdGFydDokOCxhcmVhRW5kOiQ4LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDM9dCx0aGlzLl95Mz1lO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0PXQsdGhpcy5feTQ9ZSk7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDU9dCx0aGlzLl95NT1lO2JyZWFrO2RlZmF1bHQ6bjcodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBhNz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBuZXcgbzcodCxlKX1yZXR1cm4gbi50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKDApO2Z1bmN0aW9uIHM3KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1zNy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpuNyh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIGw3PShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIG5ldyBzNyh0LGUpfXJldHVybiBuLnRlbnNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoMCk7ZnVuY3Rpb24gYzcodCxlLG4pe3ZhciBpPXQuX3gxLHI9dC5feTEsbz10Ll94MixhPXQuX3kyO2lmKHQuX2wwMV9hPks5KXt2YXIgcz0yKnQuX2wwMV8yYSszKnQuX2wwMV9hKnQuX2wxMl9hK3QuX2wxMl8yYSxsPTMqdC5fbDAxX2EqKHQuX2wwMV9hK3QuX2wxMl9hKTtpPShpKnMtdC5feDAqdC5fbDEyXzJhK3QuX3gyKnQuX2wwMV8yYSkvbCxyPShyKnMtdC5feTAqdC5fbDEyXzJhK3QuX3kyKnQuX2wwMV8yYSkvbH1pZih0Ll9sMjNfYT5LOSl7dmFyIGM9Mip0Ll9sMjNfMmErMyp0Ll9sMjNfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsdT0zKnQuX2wyM19hKih0Ll9sMjNfYSt0Ll9sMTJfYSk7bz0obypjK3QuX3gxKnQuX2wyM18yYS1lKnQuX2wxMl8yYSkvdSxhPShhKmMrdC5feTEqdC5fbDIzXzJhLW4qdC5fbDEyXzJhKS91fXQuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhpLHIsbyxhLHQuX3gyLHQuX3kyKX1mdW5jdGlvbiB1Nyh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1lfXU3LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gyLHRoaXMuX3kyKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6YzcodGhpcyx0LGUpfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgaDc9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gZT9uZXcgdTcodCxlKTpuZXcgaTcodCwwKX1yZXR1cm4gbi5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSguNSk7ZnVuY3Rpb24gZDcodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9ZX1kNy5wcm90b3R5cGU9e2FyZWFTdGFydDokOCxhcmVhRW5kOiQ4LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PWUpO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9ZTticmVhaztkZWZhdWx0OmM3KHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIHA3PShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGU/bmV3IGQ3KHQsZSk6bmV3IG83KHQsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjUpO2Z1bmN0aW9uIGY3KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9ZjcucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OmM3KHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIG03PShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGU/bmV3IGY3KHQsZSk6bmV3IHM3KHQsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjUpO2Z1bmN0aW9uIGc3KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBfNyh0KXtyZXR1cm4gdDwwPy0xOjF9ZnVuY3Rpb24geTcodCxlLG4pe3ZhciBpPXQuX3gxLXQuX3gwLHI9ZS10Ll94MSxvPSh0Ll95MS10Ll95MCkvKGl8fHI8MCYmLTApLGE9KG4tdC5feTEpLyhyfHxpPDAmJi0wKSxzPShvKnIrYSppKS8oaStyKTtyZXR1cm4oXzcobykrXzcoYSkpKk1hdGgubWluKE1hdGguYWJzKG8pLE1hdGguYWJzKGEpLC41Kk1hdGguYWJzKHMpKXx8MH1mdW5jdGlvbiB2Nyh0LGUpe3ZhciBuPXQuX3gxLXQuX3gwO3JldHVybiBuPygzKih0Ll95MS10Ll95MCkvbi1lKS8yOmV9ZnVuY3Rpb24gYjcodCxlLG4pe3ZhciBpPXQuX3gwLHI9dC5feDEsbz10Ll95MSxhPShyLWkpLzM7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGkrYSx0Ll95MCthKmUsci1hLG8tYSpuLHIsbyl9ZnVuY3Rpb24geDcodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHc3KHQpe3RoaXMuX2NvbnRleHQ9bmV3IFM3KHQpfWZ1bmN0aW9uIFM3KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBNNyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gRTcodCl7dmFyIGUsbixpPXQubGVuZ3RoLTEscj1uZXcgQXJyYXkoaSksbz1uZXcgQXJyYXkoaSksYT1uZXcgQXJyYXkoaSk7Zm9yKHJbMF09MCxvWzBdPTIsYVswXT10WzBdKzIqdFsxXSxlPTE7ZTxpLTE7KytlKXJbZV09MSxvW2VdPTQsYVtlXT00KnRbZV0rMip0W2UrMV07Zm9yKHJbaS0xXT0yLG9baS0xXT03LGFbaS0xXT04KnRbaS0xXSt0W2ldLGU9MTtlPGk7KytlKW9bZV0tPW49cltlXS9vW2UtMV0sYVtlXS09biphW2UtMV07Zm9yKHJbaS0xXT1hW2ktMV0vb1tpLTFdLGU9aS0yO2U+PTA7LS1lKXJbZV09KGFbZV0tcltlKzFdKS9vW2VdO2ZvcihvW2ktMV09KHRbaV0rcltpLTFdKS8yLGU9MDtlPGktMTsrK2Upb1tlXT0yKnRbZSsxXS1yW2UrMV07cmV0dXJuW3Isb119ZnVuY3Rpb24gVDcodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fdD1lfWZ1bmN0aW9uIEM3KHQsZSl7aWYoKHI9dC5sZW5ndGgpPjEpZm9yKHZhciBuLGkscixvPTEsYT10W2VbMF1dLHM9YS5sZW5ndGg7bzxyOysrbylmb3IoaT1hLGE9dFtlW29dXSxuPTA7bjxzOysrbilhW25dWzFdKz1hW25dWzBdPWlzTmFOKGlbbl1bMV0pP2lbbl1bMF06aVtuXVsxXX1mdW5jdGlvbiBBNyh0KXtmb3IodmFyIGU9dC5sZW5ndGgsbj1uZXcgQXJyYXkoZSk7LS1lPj0wOyluW2VdPWU7cmV0dXJuIG59ZnVuY3Rpb24gazcodCxlKXtyZXR1cm4gdFtlXX1mdW5jdGlvbiBMNyh0KXt2YXIgZT10Lm1hcChQNyk7cmV0dXJuIEE3KHQpLnNvcnQoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGVbdF0tZVtuXX0pKX1mdW5jdGlvbiBQNyh0KXtmb3IodmFyIGUsbj0wLGk9LTEscj10Lmxlbmd0aDsrK2k8cjspKGU9K3RbaV1bMV0pJiYobis9ZSk7cmV0dXJuIG59ZzcucHJvdG90eXBlPXthcmVhU3RhcnQ6JDgsYXJlYUVuZDokOCxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7dD0rdCxlPStlLHRoaXMuX3BvaW50P3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6KHRoaXMuX3BvaW50PTEsdGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKSl9fSx4Ny5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT10aGlzLl90MD1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gxLHRoaXMuX3kxKTticmVhaztjYXNlIDM6YjcodGhpcyx0aGlzLl90MCx2Nyh0aGlzLHRoaXMuX3QwKSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3ZhciBuPU5hTjtpZihlPStlLCh0PSt0KSE9PXRoaXMuX3gxfHxlIT09dGhpcy5feTEpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsYjcodGhpcyx2Nyh0aGlzLG49eTcodGhpcyx0LGUpKSxuKTticmVhaztkZWZhdWx0OmI3KHRoaXMsdGhpcy5fdDAsbj15Nyh0aGlzLHQsZSkpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9ZSx0aGlzLl90MD1ufX19LCh3Ny5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh4Ny5wcm90b3R5cGUpKS5wb2ludD1mdW5jdGlvbih0LGUpe3g3LnByb3RvdHlwZS5wb2ludC5jYWxsKHRoaXMsZSx0KX0sUzcucHJvdG90eXBlPXttb3ZlVG86ZnVuY3Rpb24odCxlKXt0aGlzLl9jb250ZXh0Lm1vdmVUbyhlLHQpfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXt0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl9jb250ZXh0LmxpbmVUbyhlLHQpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oZSx0LGksbixvLHIpfX0sTTcucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD1bXSx0aGlzLl95PVtdfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5feCxlPXRoaXMuX3ksbj10Lmxlbmd0aDtpZihuKWlmKHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odFswXSxlWzBdKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0WzBdLGVbMF0pLDI9PT1uKXRoaXMuX2NvbnRleHQubGluZVRvKHRbMV0sZVsxXSk7ZWxzZSBmb3IodmFyIGk9RTcodCkscj1FNyhlKSxvPTAsYT0xO2E8bjsrK28sKythKXRoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhpWzBdW29dLHJbMF1bb10saVsxXVtvXSxyWzFdW29dLHRbYV0sZVthXSk7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09bikmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmUsdGhpcy5feD10aGlzLl95PW51bGx9LHBvaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy5feC5wdXNoKCt0KSx0aGlzLl95LnB1c2goK2UpfX0sVDcucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD10aGlzLl95PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MDx0aGlzLl90JiZ0aGlzLl90PDEmJjI9PT10aGlzLl9wb2ludCYmdGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feCx0aGlzLl95KSwodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT49MCYmKHRoaXMuX3Q9MS10aGlzLl90LHRoaXMuX2xpbmU9MS10aGlzLl9saW5lKX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OmlmKHRoaXMuX3Q8PTApdGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feCxlKSx0aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpO2Vsc2V7dmFyIG49dGhpcy5feCooMS10aGlzLl90KSt0KnRoaXMuX3Q7dGhpcy5fY29udGV4dC5saW5lVG8obix0aGlzLl95KSx0aGlzLl9jb250ZXh0LmxpbmVUbyhuLGUpfX10aGlzLl94PXQsdGhpcy5feT1lfX07dmFyIE43PW5ldyBEYXRlLEk3PW5ldyBEYXRlO2Z1bmN0aW9uIFI3KHQsZSxuLGkpe2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQoZT1uZXcgRGF0ZSgrZSkpLGV9cmV0dXJuIHIuZmxvb3I9cixyLmNlaWw9ZnVuY3Rpb24obil7cmV0dXJuIHQobj1uZXcgRGF0ZShuLTEpKSxlKG4sMSksdChuKSxufSxyLnJvdW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXIodCksbj1yLmNlaWwodCk7cmV0dXJuIHQtZTxuLXQ/ZTpufSxyLm9mZnNldD1mdW5jdGlvbih0LG4pe3JldHVybiBlKHQ9bmV3IERhdGUoK3QpLG51bGw9PW4/MTpNYXRoLmZsb29yKG4pKSx0fSxyLnJhbmdlPWZ1bmN0aW9uKG4saSxvKXt2YXIgYSxzPVtdO2lmKG49ci5jZWlsKG4pLG89bnVsbD09bz8xOk1hdGguZmxvb3IobyksIShuPGkmJm8+MCkpcmV0dXJuIHM7ZG97cy5wdXNoKGE9bmV3IERhdGUoK24pKSxlKG4sbyksdChuKX13aGlsZShhPG4mJm48aSk7cmV0dXJuIHN9LHIuZmlsdGVyPWZ1bmN0aW9uKG4pe3JldHVybiBSNygoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsaSl7aWYodD49dClpZihpPDApZm9yKDsrK2k8PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLWk+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoci5jb3VudD1mdW5jdGlvbihlLGkpe3JldHVybiBONy5zZXRUaW1lKCtlKSxJNy5zZXRUaW1lKCtpKSx0KE43KSx0KEk3KSxNYXRoLmZsb29yKG4oTjcsSTcpKX0sci5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP3IuZmlsdGVyKGk/ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY291bnQoMCxlKSV0PT0wfSk6cjpudWxsfSkscn12YXIgTzc9UjcoKGZ1bmN0aW9uKCl7fSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUtdH0pKTtPNy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP1I3KChmdW5jdGlvbihlKXtlLnNldFRpbWUoTWF0aC5mbG9vcihlL3QpKnQpfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRUaW1lKCtlK24qdCl9KSwoZnVuY3Rpb24oZSxuKXtyZXR1cm4obi1lKS90fSkpOk83Om51bGx9O3ZhciB6Nz1PNy5yYW5nZSxENz0xZTMsQjc9NmU0LEg3PTM2ZTUsRjc9ODY0ZTUsVjc9NjA0OGU1LFU3PVI3KChmdW5jdGlvbih0KXt0LnNldFRpbWUoTWF0aC5mbG9vcih0L0Q3KSpENyl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSpENyl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9EN30pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENTZWNvbmRzKCl9KSksajc9VTcucmFuZ2UsRzc9UjcoKGZ1bmN0aW9uKHQpe3Quc2V0VGltZShNYXRoLmZsb29yKHQvQjcpKkI3KX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKkI3KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0I3fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX0pKSxXNz1HNy5yYW5nZSxxNz1SNygoZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRUaW1lem9uZU9mZnNldCgpKkI3JUg3O2U8MCYmKGUrPUg3KSx0LnNldFRpbWUoTWF0aC5mbG9vcigoK3QtZSkvSDcpKkg3K2UpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqSDcpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvSDd9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pKSxZNz1xNy5yYW5nZSxYNz1SNygoZnVuY3Rpb24odCl7dC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKkI3KS9GN30pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCktMX0pKSwkNz1YNy5yYW5nZTtmdW5jdGlvbiBLNyh0KXtyZXR1cm4gUjcoKGZ1bmN0aW9uKGUpe2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs3LXQpJTcpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKkI3KS9WN30pKX12YXIgWjc9SzcoMCksSjc9SzcoMSksUTc9SzcoMiksdHR0PUs3KDMpLGV0dD1LNyg0KSxudHQ9SzcoNSksaXR0PUs3KDYpLHJ0dD1aNy5yYW5nZSxvdHQ9SjcucmFuZ2UsYXR0PVE3LnJhbmdlLHN0dD10dHQucmFuZ2UsbHR0PWV0dC5yYW5nZSxjdHQ9bnR0LnJhbmdlLHV0dD1pdHQucmFuZ2UsaHR0PVI3KChmdW5jdGlvbih0KXt0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0TW9udGgodC5nZXRNb250aCgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0TW9udGgoKS10LmdldE1vbnRoKCkrMTIqKGUuZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCkpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSksZHR0PWh0dC5yYW5nZSxwdHQ9UjcoKGZ1bmN0aW9uKHQpe3Quc2V0TW9udGgoMCwxKSx0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRGdWxsWWVhcigpfSkpO3B0dC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP1I3KChmdW5jdGlvbihlKXtlLnNldEZ1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRGdWxsWWVhcigpL3QpKnQpLGUuc2V0TW9udGgoMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgZnR0PXB0dC5yYW5nZSxtdHQ9UjcoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDU2Vjb25kcygwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqQjcpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvQjd9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTWludXRlcygpfSkpLGd0dD1tdHQucmFuZ2UsX3R0PVI3KChmdW5jdGlvbih0KXt0LnNldFVUQ01pbnV0ZXMoMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqSDcpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvSDd9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDSG91cnMoKX0pKSx5dHQ9X3R0LnJhbmdlLHZ0dD1SNygoZnVuY3Rpb24odCl7dC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0Y3fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSkpLGJ0dD12dHQucmFuZ2U7ZnVuY3Rpb24geHR0KHQpe3JldHVybiBSNygoZnVuY3Rpb24oZSl7ZS5zZXRVVENEYXRlKGUuZ2V0VVRDRGF0ZSgpLShlLmdldFVUQ0RheSgpKzctdCklNyksZS5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKSs3KmUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvVjd9KSl9dmFyIHd0dD14dHQoMCksU3R0PXh0dCgxKSxNdHQ9eHR0KDIpLEV0dD14dHQoMyksVHR0PXh0dCg0KSxDdHQ9eHR0KDUpLEF0dD14dHQoNiksa3R0PXd0dC5yYW5nZSxMdHQ9U3R0LnJhbmdlLFB0dD1NdHQucmFuZ2UsTnR0PUV0dC5yYW5nZSxJdHQ9VHR0LnJhbmdlLFJ0dD1DdHQucmFuZ2UsT3R0PUF0dC5yYW5nZSx6dHQ9UjcoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDRGF0ZSgxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENNb250aCh0LmdldFVUQ01vbnRoKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRVVENNb250aCgpLXQuZ2V0VVRDTW9udGgoKSsxMiooZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTW9udGgoKX0pKSxEdHQ9enR0LnJhbmdlLEJ0dD1SNygoZnVuY3Rpb24odCl7dC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0Z1bGxZZWFyKHQuZ2V0VVRDRnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCl9KSk7QnR0LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/UjcoKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcihlLmdldFVUQ0Z1bGxZZWFyKCkvdCkqdCksZS5zZXRVVENNb250aCgwLDEpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24oZSxuKXtlLnNldFVUQ0Z1bGxZZWFyKGUuZ2V0VVRDRnVsbFllYXIoKStuKnQpfSkpOm51bGx9O3ZhciBIdHQ9QnR0LnJhbmdlLEZ0dD1uZXcgRGF0ZSxWdHQ9bmV3IERhdGU7ZnVuY3Rpb24gVXR0KHQsZSxuLGkpe2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQoZT0wPT09YXJndW1lbnRzLmxlbmd0aD9uZXcgRGF0ZTpuZXcgRGF0ZSgrZSkpLGV9cmV0dXJuIHIuZmxvb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZT1uZXcgRGF0ZSgrZSkpLGV9LHIuY2VpbD1mdW5jdGlvbihuKXtyZXR1cm4gdChuPW5ldyBEYXRlKG4tMSkpLGUobiwxKSx0KG4pLG59LHIucm91bmQ9ZnVuY3Rpb24odCl7dmFyIGU9cih0KSxuPXIuY2VpbCh0KTtyZXR1cm4gdC1lPG4tdD9lOm59LHIub2Zmc2V0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodD1uZXcgRGF0ZSgrdCksbnVsbD09bj8xOk1hdGguZmxvb3IobikpLHR9LHIucmFuZ2U9ZnVuY3Rpb24obixpLG8pe3ZhciBhLHM9W107aWYobj1yLmNlaWwobiksbz1udWxsPT1vPzE6TWF0aC5mbG9vcihvKSwhKG48aSYmbz4wKSlyZXR1cm4gcztkb3tzLnB1c2goYT1uZXcgRGF0ZSgrbikpLGUobixvKSx0KG4pfXdoaWxlKGE8biYmbjxpKTtyZXR1cm4gc30sci5maWx0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIFV0dCgoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsaSl7aWYodD49dClpZihpPDApZm9yKDsrK2k8PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLWk+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoci5jb3VudD1mdW5jdGlvbihlLGkpe3JldHVybiBGdHQuc2V0VGltZSgrZSksVnR0LnNldFRpbWUoK2kpLHQoRnR0KSx0KFZ0dCksTWF0aC5mbG9vcihuKEZ0dCxWdHQpKX0sci5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP3IuZmlsdGVyKGk/ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY291bnQoMCxlKSV0PT0wfSk6cjpudWxsfSkscn12YXIganR0PTg2NGU1LEd0dD02MDQ4ZTUsV3R0PVV0dCgoZnVuY3Rpb24odCl7dC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtNmU0KihlLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSkvanR0fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERhdGUoKS0xfSkpO2Z1bmN0aW9uIHF0dCh0KXtyZXR1cm4gVXR0KChmdW5jdGlvbihlKXtlLnNldERhdGUoZS5nZXREYXRlKCktKGUuZ2V0RGF5KCkrNy10KSU3KSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10LTZlNCooZS5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkpL0d0dH0pKX12YXIgWXR0PXF0dCgwKSxYdHQ9cXR0KDEpO3F0dCgyKSxxdHQoMyk7dmFyICR0dD1xdHQoNCk7cXR0KDUpLHF0dCg2KTt2YXIgS3R0PVV0dCgoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KSk7S3R0LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/VXR0KChmdW5jdGlvbihlKXtlLnNldEZ1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRGdWxsWWVhcigpL3QpKnQpLGUuc2V0TW9udGgoMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgWnR0PUt0dCxKdHQ9VXR0KChmdW5jdGlvbih0KXt0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvanR0fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSkpO2Z1bmN0aW9uIFF0dCh0KXtyZXR1cm4gVXR0KChmdW5jdGlvbihlKXtlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCktKGUuZ2V0VVRDRGF5KCkrNy10KSU3KSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9HdHR9KSl9dmFyIHRldD1RdHQoMCksZWV0PVF0dCgxKTtRdHQoMiksUXR0KDMpO3ZhciBuZXQ9UXR0KDQpO1F0dCg1KSxRdHQoNik7dmFyIGlldD1VdHQoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpfSkpO2lldC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP1V0dCgoZnVuY3Rpb24oZSl7ZS5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0VVRDRnVsbFllYXIoKS90KSp0KSxlLnNldFVUQ01vbnRoKDAsMSksZS5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0VVRDRnVsbFllYXIoZS5nZXRVVENGdWxsWWVhcigpK24qdCl9KSk6bnVsbH07dmFyIHJldD1pZXQ7ZnVuY3Rpb24gb2V0KHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIGU9bmV3IERhdGUoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpO3JldHVybiBlLnNldEZ1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUodC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKX1mdW5jdGlvbiBhZXQodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZShEYXRlLlVUQygtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpO3JldHVybiBlLnNldFVUQ0Z1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSl9ZnVuY3Rpb24gc2V0KHQpe3JldHVybnt5OnQsbTowLGQ6MSxIOjAsTTowLFM6MCxMOjB9fWZ1bmN0aW9uIGNldCh0KXt2YXIgZT10LmRhdGVUaW1lLG49dC5kYXRlLGk9dC50aW1lLHI9dC5wZXJpb2RzLG89dC5kYXlzLGE9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsYz14ZXQociksdT13ZXQociksaD14ZXQobyksZD13ZXQobykscD14ZXQoYSksZj13ZXQoYSksbT14ZXQocyksZz13ZXQocyksXz14ZXQobCkseT13ZXQobCksdj17YTpmdW5jdGlvbiBiKHQpe3JldHVybiBhW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uIHgodCl7cmV0dXJuIG9bdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24gdyh0KXtyZXR1cm4gbFt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uIFModCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6amV0LGU6amV0LGY6WGV0LEg6R2V0LEk6V2V0LGo6cWV0LEw6WWV0LG06JGV0LE06S2V0LHA6ZnVuY3Rpb24gTSh0KXtyZXR1cm4gclsrKHQuZ2V0SG91cnMoKT49MTIpXX0sUTpNbnQsczpFbnQsUzpaZXQsdTpKZXQsVTpRZXQsVjp0bnQsdzplbnQsVzpubnQseDpudWxsLFg6bnVsbCx5OmludCxZOnJudCxaOm9udCwiJSI6U250fSxFPXthOmZ1bmN0aW9uIFQodCl7cmV0dXJuIGFbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24gQyh0KXtyZXR1cm4gb1t0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbiBBKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24gayh0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDphbnQsZTphbnQsZjpobnQsSDpzbnQsSTpsbnQsajpjbnQsTDp1bnQsbTpkbnQsTTpwbnQscDpmdW5jdGlvbiBMKHQpe3JldHVybiByWysodC5nZXRVVENIb3VycygpPj0xMildfSxROk1udCxzOkVudCxTOmZudCx1Om1udCxVOmdudCxWOl9udCx3OnludCxXOnZudCx4Om51bGwsWDpudWxsLHk6Ym50LFk6eG50LFo6d250LCIlIjpTbnR9LFA9e2E6ZnVuY3Rpb24gTih0LGUsbil7dmFyIGk9cC5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lnc9ZltpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxBOmZ1bmN0aW9uIEkodCxlLG4pe3ZhciBpPWguZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC53PWRbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbiBSKHQsZSxuKXt2YXIgaT1fLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQubT15W2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24gTyh0LGUsbil7dmFyIGk9bS5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lm09Z1tpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxjOmZ1bmN0aW9uIHoodCxuLGkpe3JldHVybiBVKHQsZSxuLGkpfSxkOklldCxlOklldCxmOkhldCxIOk9ldCxJOk9ldCxqOlJldCxMOkJldCxtOk5ldCxNOnpldCxwOmZ1bmN0aW9uIEQodCxlLG4pe3ZhciBpPWMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5wPXVbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sUTpWZXQsczpVZXQsUzpEZXQsdTpFZXQsVTpUZXQsVjpDZXQsdzpNZXQsVzpBZXQseDpmdW5jdGlvbiBCKHQsZSxpKXtyZXR1cm4gVSh0LG4sZSxpKX0sWDpmdW5jdGlvbiBIKHQsZSxuKXtyZXR1cm4gVSh0LGksZSxuKX0seTpMZXQsWTprZXQsWjpQZXQsIiUiOkZldH07ZnVuY3Rpb24gRih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgaSxyLG8sYT1bXSxzPS0xLGw9MCxjPXQubGVuZ3RoO2ZvcihuIGluc3RhbmNlb2YgRGF0ZXx8KG49bmV3IERhdGUoK24pKTsrK3M8YzspMzc9PT10LmNoYXJDb2RlQXQocykmJihhLnB1c2godC5zbGljZShsLHMpKSxudWxsIT0ocj1tZXRbaT10LmNoYXJBdCgrK3MpXSk/aT10LmNoYXJBdCgrK3MpOnI9ImUiPT09aT8iICI6IjAiLChvPWVbaV0pJiYoaT1vKG4scikpLGEucHVzaChpKSxsPXMrMSk7cmV0dXJuIGEucHVzaCh0LnNsaWNlKGwscykpLGEuam9pbigiIil9fWZ1bmN0aW9uIFYodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGkscixvPXNldCgxOTAwKTtpZihVKG8sdCxuKz0iIiwwKSE9bi5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gbylyZXR1cm4gbmV3IERhdGUoby5RKTtpZigicCJpbiBvJiYoby5IPW8uSCUxMisxMipvLnApLCJWImluIG8pe2lmKG8uVjwxfHxvLlY+NTMpcmV0dXJuIG51bGw7InciaW4gb3x8KG8udz0xKSwiWiJpbiBvPyhyPShpPWFldChzZXQoby55KSkpLmdldFVUQ0RheSgpLGk9cj40fHwwPT09cj9lZXQuY2VpbChpKTplZXQoaSksaT1KdHQub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRVVENGdWxsWWVhcigpLG8ubT1pLmdldFVUQ01vbnRoKCksby5kPWkuZ2V0VVRDRGF0ZSgpKyhvLncrNiklNyk6KHI9KGk9ZShzZXQoby55KSkpLmdldERheSgpLGk9cj40fHwwPT09cj9YdHQuY2VpbChpKTpYdHQoaSksaT1XdHQub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRGdWxsWWVhcigpLG8ubT1pLmdldE1vbnRoKCksby5kPWkuZ2V0RGF0ZSgpKyhvLncrNiklNyl9ZWxzZSgiVyJpbiBvfHwiVSJpbiBvKSYmKCJ3ImluIG98fChvLnc9InUiaW4gbz9vLnUlNzoiVyJpbiBvPzE6MCkscj0iWiJpbiBvP2FldChzZXQoby55KSkuZ2V0VVRDRGF5KCk6ZShzZXQoby55KSkuZ2V0RGF5KCksby5tPTAsby5kPSJXImluIG8/KG8udys2KSU3Kzcqby5XLShyKzUpJTc6by53Kzcqby5VLShyKzYpJTcpO3JldHVybiJaImluIG8/KG8uSCs9by5aLzEwMHwwLG8uTSs9by5aJTEwMCxhZXQobykpOmUobyl9fWZ1bmN0aW9uIFUodCxlLG4saSl7Zm9yKHZhciByLG8sYT0wLHM9ZS5sZW5ndGgsbD1uLmxlbmd0aDthPHM7KXtpZihpPj1sKXJldHVybi0xO2lmKDM3PT09KHI9ZS5jaGFyQ29kZUF0KGErKykpKXtpZihyPWUuY2hhckF0KGErKyksIShvPVBbciBpbiBtZXQ/ZS5jaGFyQXQoYSsrKTpyXSl8fChpPW8odCxuLGkpKTwwKXJldHVybi0xfWVsc2UgaWYociE9bi5jaGFyQ29kZUF0KGkrKykpcmV0dXJuLTF9cmV0dXJuIGl9cmV0dXJuIHYueD1GKG4sdiksdi5YPUYoaSx2KSx2LmM9RihlLHYpLEUueD1GKG4sRSksRS5YPUYoaSxFKSxFLmM9RihlLEUpLHtmb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9Rih0Kz0iIix2KTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1WKHQrPSIiLG9ldCk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0sdXRjRm9ybWF0OmZ1bmN0aW9uKHQpe3ZhciBlPUYodCs9IiIsRSk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0sdXRjUGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9Vih0LGFldCk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX19fXZhciB1ZXQsaGV0LGRldCxwZXQsZmV0LG1ldD17Ii0iOiIiLF86IiAiLDA6IjAifSxnZXQ9L15ccypcZCsvLF9ldD0vXiUvLHlldD0vW1xcXiQqKz98W1xdKCkue31dL2c7ZnVuY3Rpb24gdmV0KHQsZSxuKXt2YXIgaT10PDA/Ii0iOiIiLHI9KGk/LXQ6dCkrIiIsbz1yLmxlbmd0aDtyZXR1cm4gaSsobzxuP25ldyBBcnJheShuLW8rMSkuam9pbihlKStyOnIpfWZ1bmN0aW9uIGJldCh0KXtyZXR1cm4gdC5yZXBsYWNlKHlldCwiXFwkJiIpfWZ1bmN0aW9uIHhldCh0KXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrdC5tYXAoYmV0KS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gd2V0KHQpe2Zvcih2YXIgZT17fSxuPS0xLGk9dC5sZW5ndGg7KytuPGk7KWVbdFtuXS50b0xvd2VyQ2FzZSgpXT1uO3JldHVybiBlfWZ1bmN0aW9uIE1ldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpPyh0Lnc9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gRWV0KHQsZSxuKXt2YXIgaT1nZXQuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/KHQudT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBUZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5VPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIENldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LlY9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQWV0KHQsZSxuKXt2YXIgaT1nZXQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBrZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzQpKTtyZXR1cm4gaT8odC55PStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIExldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Lnk9K2lbMF0rKCtpWzBdPjY4PzE5MDA6MmUzKSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBQZXQodCxlLG4pe3ZhciBpPS9eKFopfChbKy1dXGRcZCkoPzo6PyhcZFxkKSk/Ly5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gaT8odC5aPWlbMV0/MDotKGlbMl0rKGlbM118fCIwMCIpKSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBOZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5tPWlbMF0tMSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBJZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5kPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFJldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuLG4rMykpO3JldHVybiBpPyh0Lm09MCx0LmQ9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gT2V0KHQsZSxuKXt2YXIgaT1nZXQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuSD0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB6ZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5NPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIERldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LlM9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQmV0KHQsZSxuKXt2YXIgaT1nZXQuZXhlYyhlLnNsaWNlKG4sbiszKSk7cmV0dXJuIGk/KHQuTD0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBIZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gaT8odC5MPU1hdGguZmxvb3IoaVswXS8xZTMpLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEZldCh0LGUsbil7dmFyIGk9X2V0LmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpP24raVswXS5sZW5ndGg6LTF9ZnVuY3Rpb24gVmV0KHQsZSxuKXt2YXIgaT1nZXQuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5RPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFVldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQuUT0xZTMqK2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gamV0KHQsZSl7cmV0dXJuIHZldCh0LmdldERhdGUoKSxlLDIpfWZ1bmN0aW9uIEdldCh0LGUpe3JldHVybiB2ZXQodC5nZXRIb3VycygpLGUsMil9ZnVuY3Rpb24gV2V0KHQsZSl7cmV0dXJuIHZldCh0LmdldEhvdXJzKCklMTJ8fDEyLGUsMil9ZnVuY3Rpb24gcWV0KHQsZSl7cmV0dXJuIHZldCgxK1d0dC5jb3VudChadHQodCksdCksZSwzKX1mdW5jdGlvbiBZZXQodCxlKXtyZXR1cm4gdmV0KHQuZ2V0TWlsbGlzZWNvbmRzKCksZSwzKX1mdW5jdGlvbiBYZXQodCxlKXtyZXR1cm4gWWV0KHQsZSkrIjAwMCJ9ZnVuY3Rpb24gJGV0KHQsZSl7cmV0dXJuIHZldCh0LmdldE1vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIEtldCh0LGUpe3JldHVybiB2ZXQodC5nZXRNaW51dGVzKCksZSwyKX1mdW5jdGlvbiBaZXQodCxlKXtyZXR1cm4gdmV0KHQuZ2V0U2Vjb25kcygpLGUsMil9ZnVuY3Rpb24gSmV0KHQpe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIDA9PT1lPzc6ZX1mdW5jdGlvbiBRZXQodCxlKXtyZXR1cm4gdmV0KFl0dC5jb3VudChadHQodCksdCksZSwyKX1mdW5jdGlvbiB0bnQodCxlKXt2YXIgbj10LmdldERheSgpO3JldHVybiB0PW4+PTR8fDA9PT1uPyR0dCh0KTokdHQuY2VpbCh0KSx2ZXQoJHR0LmNvdW50KFp0dCh0KSx0KSsoND09PVp0dCh0KS5nZXREYXkoKSksZSwyKX1mdW5jdGlvbiBlbnQodCl7cmV0dXJuIHQuZ2V0RGF5KCl9ZnVuY3Rpb24gbm50KHQsZSl7cmV0dXJuIHZldChYdHQuY291bnQoWnR0KHQpLHQpLGUsMil9ZnVuY3Rpb24gaW50KHQsZSl7cmV0dXJuIHZldCh0LmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gcm50KHQsZSl7cmV0dXJuIHZldCh0LmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gb250KHQpe3ZhciBlPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4oZT4wPyItIjooZSo9LTEsIisiKSkrdmV0KGUvNjB8MCwiMCIsMikrdmV0KGUlNjAsIjAiLDIpfWZ1bmN0aW9uIGFudCh0LGUpe3JldHVybiB2ZXQodC5nZXRVVENEYXRlKCksZSwyKX1mdW5jdGlvbiBzbnQodCxlKXtyZXR1cm4gdmV0KHQuZ2V0VVRDSG91cnMoKSxlLDIpfWZ1bmN0aW9uIGxudCh0LGUpe3JldHVybiB2ZXQodC5nZXRVVENIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIGNudCh0LGUpe3JldHVybiB2ZXQoMStKdHQuY291bnQocmV0KHQpLHQpLGUsMyl9ZnVuY3Rpb24gdW50KHQsZSl7cmV0dXJuIHZldCh0LmdldFVUQ01pbGxpc2Vjb25kcygpLGUsMyl9ZnVuY3Rpb24gaG50KHQsZSl7cmV0dXJuIHVudCh0LGUpKyIwMDAifWZ1bmN0aW9uIGRudCh0LGUpe3JldHVybiB2ZXQodC5nZXRVVENNb250aCgpKzEsZSwyKX1mdW5jdGlvbiBwbnQodCxlKXtyZXR1cm4gdmV0KHQuZ2V0VVRDTWludXRlcygpLGUsMil9ZnVuY3Rpb24gZm50KHQsZSl7cmV0dXJuIHZldCh0LmdldFVUQ1NlY29uZHMoKSxlLDIpfWZ1bmN0aW9uIG1udCh0KXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiAwPT09ZT83OmV9ZnVuY3Rpb24gZ250KHQsZSl7cmV0dXJuIHZldCh0ZXQuY291bnQocmV0KHQpLHQpLGUsMil9ZnVuY3Rpb24gX250KHQsZSl7dmFyIG49dC5nZXRVVENEYXkoKTtyZXR1cm4gdD1uPj00fHwwPT09bj9uZXQodCk6bmV0LmNlaWwodCksdmV0KG5ldC5jb3VudChyZXQodCksdCkrKDQ9PT1yZXQodCkuZ2V0VVRDRGF5KCkpLGUsMil9ZnVuY3Rpb24geW50KHQpe3JldHVybiB0LmdldFVUQ0RheSgpfWZ1bmN0aW9uIHZudCh0LGUpe3JldHVybiB2ZXQoZWV0LmNvdW50KHJldCh0KSx0KSxlLDIpfWZ1bmN0aW9uIGJudCh0LGUpe3JldHVybiB2ZXQodC5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIHhudCh0LGUpe3JldHVybiB2ZXQodC5nZXRVVENGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIHdudCgpe3JldHVybiIrMDAwMCJ9ZnVuY3Rpb24gU250KCl7cmV0dXJuIiUifWZ1bmN0aW9uIE1udCh0KXtyZXR1cm4rdH1mdW5jdGlvbiBFbnQodCl7cmV0dXJuIE1hdGguZmxvb3IoK3QvMWUzKX1mdW5jdGlvbiBUbnQodCl7cmV0dXJuIHVldD1jZXQodCksaGV0PXVldC5mb3JtYXQsZGV0PXVldC5wYXJzZSxwZXQ9dWV0LnV0Y0Zvcm1hdCxmZXQ9dWV0LnV0Y1BhcnNlLHVldH1UbnQoe2RhdGVUaW1lOiIleCwgJVgiLGRhdGU6IiUtbS8lLWQvJVkiLHRpbWU6IiUtSTolTTolUyAlcCIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KTt2YXIgQ250LEFudCxrbnQ9IiVZLSVtLSVkVCVIOiVNOiVTLiVMWiIsTG50PURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nP2Z1bmN0aW9uIFBudCh0KXtyZXR1cm4gdC50b0lTT1N0cmluZygpfTpwZXQoa250KSxObnQ9K25ldyBEYXRlKCIyMDAwLTAxLTAxVDAwOjAwOjAwLjAwMFoiKT9mdW5jdGlvbiBJbnQodCl7dmFyIGU9bmV3IERhdGUodCk7cmV0dXJuIGlzTmFOKGUpP251bGw6ZX06ZmV0KGtudCksUm50PTAsT250PTAsem50PTAsRG50PTAsQm50PTAsSG50PTAsRm50PSJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLFZudD0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KHQsMTcpfTtmdW5jdGlvbiBVbnQoKXtyZXR1cm4gQm50fHwoVm50KGpudCksQm50PUZudC5ub3coKStIbnQpfWZ1bmN0aW9uIGpudCgpe0JudD0wfWZ1bmN0aW9uIEdudCgpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24gV250KHQsZSxuKXt2YXIgaT1uZXcgR250O3JldHVybiBpLnJlc3RhcnQodCxlLG4pLGl9ZnVuY3Rpb24gcW50KCl7VW50KCksKytSbnQ7Zm9yKHZhciB0LGU9Q250O2U7KSh0PUJudC1lLl90aW1lKT49MCYmZS5fY2FsbC5jYWxsKG51bGwsdCksZT1lLl9uZXh0Oy0tUm50fWZ1bmN0aW9uIFludCgpe0JudD0oRG50PUZudC5ub3coKSkrSG50LFJudD1PbnQ9MDt0cnl7cW50KCl9ZmluYWxseXtSbnQ9MCwoZnVuY3Rpb24gdCgpe2Zvcih2YXIgdCxlLG49Q250LGk9MS8wO247KW4uX2NhbGw/KGk+bi5fdGltZSYmKGk9bi5fdGltZSksdD1uLG49bi5fbmV4dCk6KGU9bi5fbmV4dCxuLl9uZXh0PW51bGwsbj10P3QuX25leHQ9ZTpDbnQ9ZSk7QW50PXQsJG50KGkpfSkoKSxCbnQ9MH19ZnVuY3Rpb24gWG50KCl7dmFyIHQ9Rm50Lm5vdygpLGU9dC1EbnQ7ZT4xZTMmJihIbnQtPWUsRG50PXQpfWZ1bmN0aW9uICRudCh0KXtSbnR8fChPbnQmJihPbnQ9Y2xlYXJUaW1lb3V0KE9udCkpLHQtQm50PjI0Pyh0PDEvMCYmKE9udD1zZXRUaW1lb3V0KFludCx0LUZudC5ub3coKS1IbnQpKSx6bnQmJih6bnQ9Y2xlYXJJbnRlcnZhbCh6bnQpKSk6KHpudHx8KERudD1GbnQubm93KCksem50PXNldEludGVydmFsKFhudCwxZTMpKSxSbnQ9MSxWbnQoWW50KSkpfUdudC5wcm90b3R5cGU9V250LnByb3RvdHlwZT17Y29uc3RydWN0b3I6R250LHJlc3RhcnQ6ZnVuY3Rpb24odCxlLG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7bj0obnVsbD09bj9VbnQoKTorbikrKG51bGw9PWU/MDorZSksdGhpcy5fbmV4dHx8QW50PT09dGhpc3x8KEFudD9BbnQuX25leHQ9dGhpczpDbnQ9dGhpcyxBbnQ9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9biwkbnQoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsJG50KCkpfX07dmFyIEtudD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsWm50PXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpLbnQseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtmdW5jdGlvbiBKbnQodCl7dmFyIGU9dCs9IiIsbj1lLmluZGV4T2YoIjoiKTtyZXR1cm4gbj49MCYmInhtbG5zIiE9PShlPXQuc2xpY2UoMCxuKSkmJih0PXQuc2xpY2UobisxKSksWm50Lmhhc093blByb3BlcnR5KGUpP3tzcGFjZTpabnRbZV0sbG9jYWw6dH06dH1mdW5jdGlvbiBRbnQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50LG49dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIG49PT1LbnQmJmUuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PUtudD9lLmNyZWF0ZUVsZW1lbnQodCk6ZS5jcmVhdGVFbGVtZW50TlMobix0KX19ZnVuY3Rpb24gdGl0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGVpdCh0KXt2YXIgZT1KbnQodCk7cmV0dXJuKGUubG9jYWw/dGl0OlFudCkoZSl9ZnVuY3Rpb24gbml0KCl7fWZ1bmN0aW9uIGlpdCh0KXtyZXR1cm4gbnVsbD09dD9uaXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiByaXQoKXtyZXR1cm5bXX1mdW5jdGlvbiBvaXQodCl7cmV0dXJuIG51bGw9PXQ/cml0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24gYWl0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXModCl9fWZ1bmN0aW9uIHNpdCh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiBsaXQodCxlKXt0aGlzLm93bmVyRG9jdW1lbnQ9dC5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPXQubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9fZGF0YV9fPWV9ZnVuY3Rpb24gY2l0KHQsZSxuLGkscixvKXtmb3IodmFyIGEscz0wLGw9ZS5sZW5ndGgsYz1vLmxlbmd0aDtzPGM7KytzKShhPWVbc10pPyhhLl9fZGF0YV9fPW9bc10saVtzXT1hKTpuW3NdPW5ldyBsaXQodCxvW3NdKTtmb3IoO3M8bDsrK3MpKGE9ZVtzXSkmJihyW3NdPWEpfWZ1bmN0aW9uIHVpdCh0LGUsbixpLHIsbyxhKXt2YXIgcyxsLGMsdT17fSxoPWUubGVuZ3RoLGQ9by5sZW5ndGgscD1uZXcgQXJyYXkoaCk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiYocFtzXT1jPSIkIithLmNhbGwobCxsLl9fZGF0YV9fLHMsZSksYyBpbiB1P3Jbc109bDp1W2NdPWwpO2ZvcihzPTA7czxkOysrcykobD11W2M9IiQiK2EuY2FsbCh0LG9bc10scyxvKV0pPyhpW3NdPWwsbC5fX2RhdGFfXz1vW3NdLHVbY109bnVsbCk6bltzXT1uZXcgbGl0KHQsb1tzXSk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiZ1W3Bbc11dPT09bCYmKHJbc109bCl9ZnVuY3Rpb24gaGl0KHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIGRpdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gcGl0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gZml0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19ZnVuY3Rpb24gbWl0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZSl9fWZ1bmN0aW9uIGdpdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCk6dGhpcy5zZXRBdHRyaWJ1dGUodCxuKX19ZnVuY3Rpb24gX2l0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsbil9fWZ1bmN0aW9uIHlpdCh0KXtyZXR1cm4gdC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gdml0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIGJpdCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUsbil9fWZ1bmN0aW9uIHhpdCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09aT90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxpLG4pfX1mdW5jdGlvbiB3aXQodCxlKXtyZXR1cm4gdC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGUpfHx5aXQodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUoZSl9ZnVuY3Rpb24gU2l0KHQpe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW3RdfX1mdW5jdGlvbiBNaXQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzW3RdPWV9fWZ1bmN0aW9uIEVpdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/ZGVsZXRlIHRoaXNbdF06dGhpc1t0XT1ufX1mdW5jdGlvbiBUaXQodCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIENpdCh0KXtyZXR1cm4gdC5jbGFzc0xpc3R8fG5ldyBBaXQodCl9ZnVuY3Rpb24gQWl0KHQpe3RoaXMuX25vZGU9dCx0aGlzLl9uYW1lcz1UaXQodC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX1mdW5jdGlvbiBraXQodCxlKXtmb3IodmFyIG49Q2l0KHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5hZGQoZVtpXSl9ZnVuY3Rpb24gTGl0KHQsZSl7Zm9yKHZhciBuPUNpdCh0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4ucmVtb3ZlKGVbaV0pfWZ1bmN0aW9uIFBpdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtraXQodGhpcyx0KX19ZnVuY3Rpb24gTml0KHQpe3JldHVybiBmdW5jdGlvbigpe0xpdCh0aGlzLHQpfX1mdW5jdGlvbiBJaXQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXsoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk/a2l0OkxpdCkodGhpcyx0KX19ZnVuY3Rpb24gUml0KCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiBPaXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX1mdW5jdGlvbiB6aXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIERpdCgpe3RoaXMuaW5uZXJIVE1MPSIifWZ1bmN0aW9uIEJpdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX1mdW5jdGlvbiBIaXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBGaXQoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gVml0KCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gVWl0KCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gaml0KCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gR2l0KCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITEpLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH1mdW5jdGlvbiBXaXQoKXt2YXIgdD10aGlzLmNsb25lTm9kZSghMCksZT10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGU/ZS5pbnNlcnRCZWZvcmUodCx0aGlzLm5leHRTaWJsaW5nKTp0fWxpdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmxpdCxhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LGUpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSxBaXQucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtlPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKGUsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgcWl0PXt9O2Z1bmN0aW9uIFlpdCh0LGUsbil7cmV0dXJuIHQ9WGl0KHQsZSxuKSxmdW5jdGlvbihlKXt2YXIgbj1lLnJlbGF0ZWRUYXJnZXQ7biYmKG49PT10aGlzfHw4Jm4uY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykpfHx0LmNhbGwodGhpcyxlKX19ZnVuY3Rpb24gWGl0KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dHJ5e3QuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxuKX1maW5hbGx5e319fWZ1bmN0aW9uICRpdCh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgZT0iIixuPXQuaW5kZXhPZigiLiIpO3JldHVybiBuPj0wJiYoZT10LnNsaWNlKG4rMSksdD10LnNsaWNlKDAsbikpLHt0eXBlOnQsbmFtZTplfX0pKX1mdW5jdGlvbiBLaXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fX29uO2lmKGUpe2Zvcih2YXIgbixpPTAscj0tMSxvPWUubGVuZ3RoO2k8bzsrK2kpbj1lW2ldLHQudHlwZSYmbi50eXBlIT09dC50eXBlfHxuLm5hbWUhPT10Lm5hbWU/ZVsrK3JdPW46dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG4udHlwZSxuLmxpc3RlbmVyLG4uY2FwdHVyZSk7KytyP2UubGVuZ3RoPXI6ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIFppdCh0LGUsbil7dmFyIGk9cWl0Lmhhc093blByb3BlcnR5KHQudHlwZSk/WWl0OlhpdDtyZXR1cm4gZnVuY3Rpb24ocixvLGEpe3ZhciBzLGw9dGhpcy5fX29uLGM9aShlLG8sYSk7aWYobClmb3IodmFyIHU9MCxoPWwubGVuZ3RoO3U8aDsrK3UpaWYoKHM9bFt1XSkudHlwZT09PXQudHlwZSYmcy5uYW1lPT09dC5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXIscy5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXI9YyxzLmNhcHR1cmU9biksdm9pZChzLnZhbHVlPWUpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcih0LnR5cGUsYyxuKSxzPXt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSx2YWx1ZTplLGxpc3RlbmVyOmMsY2FwdHVyZTpufSxsP2wucHVzaChzKTp0aGlzLl9fb249W3NdfX1mdW5jdGlvbiBKaXQodCxlLG4pe3ZhciBpPXlpdCh0KSxyPWkuQ3VzdG9tRXZlbnQ7ImZ1bmN0aW9uIj09dHlwZW9mIHI/cj1uZXcgcihlLG4pOihyPWkuZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iiksbj8oci5pbml0RXZlbnQoZSxuLmJ1YmJsZXMsbi5jYW5jZWxhYmxlKSxyLmRldGFpbD1uLmRldGFpbCk6ci5pbml0RXZlbnQoZSwhMSwhMSkpLHQuZGlzcGF0Y2hFdmVudChyKX1mdW5jdGlvbiBRaXQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gSml0KHRoaXMsdCxlKX19ZnVuY3Rpb24gdHJ0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEppdCh0aGlzLHQsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChxaXQ9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpO3ZhciBlcnQ9W251bGxdO2Z1bmN0aW9uIG5ydCh0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBpcnQoKXtyZXR1cm4gbmV3IG5ydChbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLGVydCl9bnJ0LnByb3RvdHlwZT1pcnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpucnQsc2VsZWN0OmZ1bmN0aW9uIHJydCh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9aWl0KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGEscz1lW3JdLGw9cy5sZW5ndGgsYz1pW3JdPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkobz1zW3VdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyx1LHMpKSYmKCJfX2RhdGFfXyJpbiBvJiYoYS5fX2RhdGFfXz1vLl9fZGF0YV9fKSxjW3VdPWEpO3JldHVybiBuZXcgbnJ0KGksdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBvcnQodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PW9pdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9W10scj1bXSxvPTA7bzxuOysrbylmb3IodmFyIGEscz1lW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKGE9c1tjXSkmJihpLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHMpKSxyLnB1c2goYSkpO3JldHVybiBuZXcgbnJ0KGkscil9LGZpbHRlcjpmdW5jdGlvbiBhcnQodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWFpdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgbnJ0KGksdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gc3J0KHQsZSl7aWYoIXQpcmV0dXJuIGY9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSx1PS0xLHRoaXMuZWFjaCgoZnVuY3Rpb24odCl7ZlsrK3VdPXR9KSksZjt2YXIgbj1lP3VpdDpjaXQsaT10aGlzLl9wYXJlbnRzLHI9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciBhPXIubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9bmV3IEFycmF5KGEpLGM9bmV3IEFycmF5KGEpLHU9MDt1PGE7Kyt1KXt2YXIgaD1pW3VdLGQ9clt1XSxwPWQubGVuZ3RoLGY9dC5jYWxsKGgsaCYmaC5fX2RhdGFfXyx1LGkpLG09Zi5sZW5ndGgsZz1sW3VdPW5ldyBBcnJheShtKSxfPXNbdV09bmV3IEFycmF5KG0pO24oaCxkLGcsXyxjW3VdPW5ldyBBcnJheShwKSxmLGUpO2Zvcih2YXIgeSx2LGI9MCx4PTA7YjxtOysrYilpZih5PWdbYl0pe2ZvcihiPj14JiYoeD1iKzEpOyEodj1fW3hdKSYmKyt4PG07KTt5Ll9uZXh0PXZ8fG51bGx9fXJldHVybihzPW5ldyBucnQocyxpKSkuX2VudGVyPWwscy5fZXhpdD1jLHN9LGVudGVyOmZ1bmN0aW9uIGxydCgpe3JldHVybiBuZXcgbnJ0KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKHNpdCksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24gY3J0KCl7cmV0dXJuIG5ldyBucnQodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChzaXQpLHRoaXMuX3BhcmVudHMpfSxqb2luOmZ1bmN0aW9uIHVydCh0LGUsbil7dmFyIGk9dGhpcy5lbnRlcigpLHI9dGhpcyxvPXRoaXMuZXhpdCgpO3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoaSk6aS5hcHBlbmQodCsiIiksbnVsbCE9ZSYmKHI9ZShyKSksbnVsbD09bj9vLnJlbW92ZSgpOm4obyksaSYmcj9pLm1lcmdlKHIpLm9yZGVyKCk6cn0sbWVyZ2U6ZnVuY3Rpb24gaHJ0KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IG5ydChvLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbiBkcnQoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9LTEsbj10Lmxlbmd0aDsrK2U8bjspZm9yKHZhciBpLHI9dFtlXSxvPXIubGVuZ3RoLTEsYT1yW29dOy0tbz49MDspKGk9cltvXSkmJihhJiY0XmkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSkmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaSxhKSxhPWkpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uIHBydCh0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIGUmJm4/dChlLl9fZGF0YV9fLG4uX19kYXRhX18pOiFlLSFufXR8fCh0PWhpdCk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGkpLG89MDtvPGk7KytvKXtmb3IodmFyIGEscz1uW29dLGw9cy5sZW5ndGgsYz1yW29dPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmKGNbdV09YSk7Yy5zb3J0KGUpfXJldHVybiBuZXcgbnJ0KHIsdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbiBmcnQoKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIG1ydCgpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksZT0tMTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3RbKytlXT10aGlzfSkpLHR9LG5vZGU6ZnVuY3Rpb24gZ3J0KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPTAsbj10Lmxlbmd0aDtlPG47KytlKWZvcih2YXIgaT10W2VdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3Ipe3ZhciBhPWlbcl07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiBfcnQoKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9LGVtcHR5OmZ1bmN0aW9uIHlydCgpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbiB2cnQodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWZvcih2YXIgcixvPWVbbl0sYT0wLHM9by5sZW5ndGg7YTxzOysrYSkocj1vW2FdKSYmdC5jYWxsKHIsci5fX2RhdGFfXyxhLG8pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uIGJydCh0LGUpe3ZhciBuPUpudCh0KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBpPXRoaXMubm9kZSgpO3JldHVybiBuLmxvY2FsP2kuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTppLmdldEF0dHJpYnV0ZShuKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP24ubG9jYWw/cGl0OmRpdDoiZnVuY3Rpb24iPT10eXBlb2YgZT9uLmxvY2FsP19pdDpnaXQ6bi5sb2NhbD9taXQ6Zml0KShuLGUpKX0sc3R5bGU6ZnVuY3Rpb24geHJ0KHQsZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT92aXQ6ImZ1bmN0aW9uIj09dHlwZW9mIGU/eGl0OmJpdCkodCxlLG51bGw9PW4/IiI6bikpOndpdCh0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24gd3J0KHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/U2l0OiJmdW5jdGlvbiI9PXR5cGVvZiBlP0VpdDpNaXQpKHQsZSkpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uIFNydCh0LGUpe3ZhciBuPVRpdCh0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaT1DaXQodGhpcy5ub2RlKCkpLHI9LTEsbz1uLmxlbmd0aDsrK3I8bzspaWYoIWkuY29udGFpbnMobltyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/SWl0OmU/UGl0Ok5pdCkobixlKSl9LHRleHQ6ZnVuY3Rpb24gTXJ0KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P1JpdDooImZ1bmN0aW9uIj09dHlwZW9mIHQ/eml0Ok9pdCkodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uIEVydCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9EaXQ6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P0hpdDpCaXQpKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIFRydCgpe3JldHVybiB0aGlzLmVhY2goRml0KX0sbG93ZXI6ZnVuY3Rpb24gQ3J0KCl7cmV0dXJuIHRoaXMuZWFjaChWaXQpfSxhcHBlbmQ6ZnVuY3Rpb24gQXJ0KHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZWl0KHQpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KSl9LGluc2VydDpmdW5jdGlvbiBrcnQodCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmVpdCh0KSxpPW51bGw9PWU/VWl0OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6aWl0KGUpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUobi5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSkpfSxyZW1vdmU6ZnVuY3Rpb24gTHJ0KCl7cmV0dXJuIHRoaXMuZWFjaChqaXQpfSxjbG9uZTpmdW5jdGlvbiBQcnQodCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/V2l0OkdpdCl9LGRhdHVtOmZ1bmN0aW9uIE5ydCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmZ1bmN0aW9uIElydCh0LGUsbil7dmFyIGkscixvPSRpdCh0KyIiKSxhPW8ubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHM9ZT9aaXQ6S2l0LG51bGw9PW4mJihuPSExKSxpPTA7aTxhOysraSl0aGlzLmVhY2gocyhvW2ldLGUsbikpO3JldHVybiB0aGlzfXZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocylmb3IodmFyIGwsYz0wLHU9cy5sZW5ndGg7Yzx1OysrYylmb3IoaT0wLGw9c1tjXTtpPGE7KytpKWlmKChyPW9baV0pLnR5cGU9PT1sLnR5cGUmJnIubmFtZT09PWwubmFtZSlyZXR1cm4gbC52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24gUnJ0KHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/dHJ0OlFpdCkodCxlKSl9fTt2YXIgT3J0PXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIHpydCgpe2Zvcih2YXIgdCxlPTAsbj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxuOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaXx8L1tccy5dLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK3QpO2lbdF09W119cmV0dXJuIG5ldyBEcnQoaSl9ZnVuY3Rpb24gRHJ0KHQpe3RoaXMuXz10fWZ1bmN0aW9uIEJydCh0LGUpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9dC5pbmRleE9mKCIuIik7aWYoaT49MCYmKG49dC5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKSx0JiYhZS5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6bn19KSl9ZnVuY3Rpb24gSHJ0KHQsZSl7Zm9yKHZhciBuLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYoKG49dFtpXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24gRnJ0KHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT1PcnQsdD10LnNsaWNlKDAsaSkuY29uY2F0KHQuc2xpY2UoaSsxKSk7YnJlYWt9cmV0dXJuIG51bGwhPW4mJnQucHVzaCh7bmFtZTplLHZhbHVlOm59KSx0fURydC5wcm90b3R5cGU9enJ0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6RHJ0LG9uOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl8scj1CcnQodCsiIixpKSxvPS0xLGE9ci5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK288YTspaWYobj0odD1yW29dKS50eXBlKWlbbl09RnJ0KGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09RnJ0KGlbbl0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChuPSh0PXJbb10pLnR5cGUpJiYobj1IcnQoaVtuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcgRHJ0KHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgVnJ0LFVydCxqcnQ9MCxHcnQ9MCxXcnQ9MCxxcnQ9MCxZcnQ9MCxYcnQ9MCwkcnQ9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsS3J0PSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIFpydCgpe3JldHVybiBZcnR8fChLcnQoSnJ0KSxZcnQ9JHJ0Lm5vdygpK1hydCl9ZnVuY3Rpb24gSnJ0KCl7WXJ0PTB9ZnVuY3Rpb24gUXJ0KCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiB0b3QodCxlLG4pe3ZhciBpPW5ldyBRcnQ7cmV0dXJuIGkucmVzdGFydCh0LGUsbiksaX1mdW5jdGlvbiBlb3QoKXtZcnQ9KHFydD0kcnQubm93KCkpK1hydCxqcnQ9R3J0PTA7dHJ5eyEoZnVuY3Rpb24gdCgpe1pydCgpLCsranJ0O2Zvcih2YXIgdCxlPVZydDtlOykodD1ZcnQtZS5fdGltZSk+PTAmJmUuX2NhbGwuY2FsbChudWxsLHQpLGU9ZS5fbmV4dDstLWpydH0pKCl9ZmluYWxseXtqcnQ9MCwoZnVuY3Rpb24gZSgpe2Zvcih2YXIgdCxlLG49VnJ0LGk9MS8wO247KW4uX2NhbGw/KGk+bi5fdGltZSYmKGk9bi5fdGltZSksdD1uLG49bi5fbmV4dCk6KGU9bi5fbmV4dCxuLl9uZXh0PW51bGwsbj10P3QuX25leHQ9ZTpWcnQ9ZSk7VXJ0PXQsaW90KGkpfSkoKSxZcnQ9MH19ZnVuY3Rpb24gbm90KCl7dmFyIHQ9JHJ0Lm5vdygpLGU9dC1xcnQ7ZT4xZTMmJihYcnQtPWUscXJ0PXQpfWZ1bmN0aW9uIGlvdCh0KXtqcnR8fChHcnQmJihHcnQ9Y2xlYXJUaW1lb3V0KEdydCkpLHQtWXJ0PjI0Pyh0PDEvMCYmKEdydD1zZXRUaW1lb3V0KGVvdCx0LSRydC5ub3coKS1YcnQpKSxXcnQmJihXcnQ9Y2xlYXJJbnRlcnZhbChXcnQpKSk6KFdydHx8KHFydD0kcnQubm93KCksV3J0PXNldEludGVydmFsKG5vdCwxZTMpKSxqcnQ9MSxLcnQoZW90KSkpfWZ1bmN0aW9uIHJvdCh0LGUsbil7dmFyIGk9bmV3IFFydDtyZXR1cm4gaS5yZXN0YXJ0KChmdW5jdGlvbihuKXtpLnN0b3AoKSx0KG4rZSl9KSxlPW51bGw9PWU/MDorZSxuKSxpfVFydC5wcm90b3R5cGU9dG90LnByb3RvdHlwZT17Y29uc3RydWN0b3I6UXJ0LHJlc3RhcnQ6ZnVuY3Rpb24odCxlLG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7bj0obnVsbD09bj9acnQoKTorbikrKG51bGw9PWU/MDorZSksdGhpcy5fbmV4dHx8VXJ0PT09dGhpc3x8KFVydD9VcnQuX25leHQ9dGhpczpWcnQ9dGhpcyxVcnQ9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9bixpb3QoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsaW90KCkpfX07dmFyIG9vdD16cnQoInN0YXJ0IiwiZW5kIiwiaW50ZXJydXB0IiksYW90PVtdO2Z1bmN0aW9uIHNvdCh0LGUsbixpLHIsbyl7dmFyIGE9dC5fX3RyYW5zaXRpb247aWYoYSl7aWYobiBpbiBhKXJldHVybn1lbHNlIHQuX190cmFuc2l0aW9uPXt9OyEoZnVuY3Rpb24gcyh0LGUsbil7dmFyIGkscj10Ll9fdHJhbnNpdGlvbjtmdW5jdGlvbiBvKGwpe3ZhciBjLHUsaCxkO2lmKDEhPT1uLnN0YXRlKXJldHVybiBzKCk7Zm9yKGMgaW4gcilpZigoZD1yW2NdKS5uYW1lPT09bi5uYW1lKXtpZigzPT09ZC5zdGF0ZSlyZXR1cm4gcm90KG8pOzQ9PT1kLnN0YXRlPyhkLnN0YXRlPTYsZC50aW1lci5zdG9wKCksZC5vbi5jYWxsKCJpbnRlcnJ1cHQiLHQsdC5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSByW2NdKTorYzxlJiYoZC5zdGF0ZT02LGQudGltZXIuc3RvcCgpLGRlbGV0ZSByW2NdKX1pZihyb3QoKGZ1bmN0aW9uKCl7Mz09PW4uc3RhdGUmJihuLnN0YXRlPTQsbi50aW1lci5yZXN0YXJ0KGEsbi5kZWxheSxuLnRpbWUpLGEobCkpfSkpLG4uc3RhdGU9MixuLm9uLmNhbGwoInN0YXJ0Iix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSwyPT09bi5zdGF0ZSl7Zm9yKG4uc3RhdGU9MyxpPW5ldyBBcnJheShoPW4udHdlZW4ubGVuZ3RoKSxjPTAsdT0tMTtjPGg7KytjKShkPW4udHdlZW5bY10udmFsdWUuY2FsbCh0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSkmJihpWysrdV09ZCk7aS5sZW5ndGg9dSsxfX1mdW5jdGlvbiBhKGUpe2Zvcih2YXIgcj1lPG4uZHVyYXRpb24/bi5lYXNlLmNhbGwobnVsbCxlL24uZHVyYXRpb24pOihuLnRpbWVyLnJlc3RhcnQocyksbi5zdGF0ZT01LDEpLG89LTEsYT1pLmxlbmd0aDsrK288YTspaVtvXS5jYWxsKG51bGwscik7NT09PW4uc3RhdGUmJihuLm9uLmNhbGwoImVuZCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCkscygpKX1mdW5jdGlvbiBzKCl7Zm9yKHZhciBpIGluIG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxkZWxldGUgcltlXSxyKXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259cltlXT1uLG4udGltZXI9dG90KChmdW5jdGlvbiBsKHQpe24uc3RhdGU9MSxuLnRpbWVyLnJlc3RhcnQobyxuLmRlbGF5LG4udGltZSksbi5kZWxheTw9dCYmbyh0LW4uZGVsYXkpfSksMCxuLnRpbWUpfSkodCxuLHtuYW1lOmUsaW5kZXg6aSxncm91cDpyLG9uOm9vdCx0d2Vlbjphb3QsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6MH0pfWZ1bmN0aW9uIGxvdCh0LGUpe3ZhciBuPXVvdCh0LGUpO2lmKG4uc3RhdGU+MCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBufWZ1bmN0aW9uIGNvdCh0LGUpe3ZhciBuPXVvdCh0LGUpO2lmKG4uc3RhdGU+Mil0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHN0YXJ0ZWQiKTtyZXR1cm4gbn1mdW5jdGlvbiB1b3QodCxlKXt2YXIgbj10Ll9fdHJhbnNpdGlvbjtpZighbnx8IShuPW5bZV0pKXRocm93IG5ldyBFcnJvcigidHJhbnNpdGlvbiBub3QgZm91bmQiKTtyZXR1cm4gbn1mdW5jdGlvbiBob3QodCxlKXt2YXIgbixpLHIsbz10Ll9fdHJhbnNpdGlvbixhPSEwO2lmKG8pe2ZvcihyIGluIGU9bnVsbD09ZT9udWxsOmUrIiIsbykobj1vW3JdKS5uYW1lPT09ZT8oaT1uLnN0YXRlPjImJm4uc3RhdGU8NSxuLnN0YXRlPTYsbi50aW1lci5zdG9wKCksaSYmbi5vbi5jYWxsKCJpbnRlcnJ1cHQiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLGRlbGV0ZSBvW3JdKTphPSExO2EmJmRlbGV0ZSB0Ll9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gZG90KHQsZSxuKXt0LnByb3RvdHlwZT1lLnByb3RvdHlwZT1uLG4uY29uc3RydWN0b3I9dH1mdW5jdGlvbiBwb3QodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gZm90KCl7fXZhciBtb3Q9LjcsZ290PTEvbW90LF9vdD0iXFxzKihbKy1dP1xcZCspXFxzKiIseW90PSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLHZvdD0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIsYm90PS9eIyhbMC05YS1mXXszLDh9KSQvLHhvdD1uZXcgUmVnRXhwKCJecmdiXFwoIitbX290LF9vdCxfb3RdKyJcXCkkIiksd290PW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1t2b3Qsdm90LHZvdF0rIlxcKSQiKSxTb3Q9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tfb3QsX290LF9vdCx5b3RdKyJcXCkkIiksTW90PW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbdm90LHZvdCx2b3QseW90XSsiXFwpJCIpLEVvdD1uZXcgUmVnRXhwKCJeaHNsXFwoIitbeW90LHZvdCx2b3RdKyJcXCkkIiksVG90PW5ldyBSZWdFeHAoIl5oc2xhXFwoIitbeW90LHZvdCx2b3QseW90XSsiXFwpJCIpLENvdD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBBb3QoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXgoKX1mdW5jdGlvbiBrb3QoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBMb3QodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9Ym90LmV4ZWModCkpPyhuPWVbMV0ubGVuZ3RoLGU9cGFyc2VJbnQoZVsxXSwxNiksNj09PW4/UG90KGUpOjM9PT1uP25ldyBPb3QoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP05vdChlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LCgyNTUmZSkvMjU1KTo0PT09bj9Ob3QoZT4+MTImMTV8ZT4+OCYyNDAsZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgoMTUmZSk8PDR8MTUmZSkvMjU1KTpudWxsKTooZT14b3QuZXhlYyh0KSk/bmV3IE9vdChlWzFdLGVbMl0sZVszXSwxKTooZT13b3QuZXhlYyh0KSk/bmV3IE9vdCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1Tb3QuZXhlYyh0KSk/Tm90KGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPU1vdC5leGVjKHQpKT9Ob3QoMjU1KmVbMV0vMTAwLDI1NSplWzJdLzEwMCwyNTUqZVszXS8xMDAsZVs0XSk6KGU9RW90LmV4ZWModCkpP0hvdChlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVRvdC5leGVjKHQpKT9Ib3QoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpDb3QuaGFzT3duUHJvcGVydHkodCk/UG90KENvdFt0XSk6InRyYW5zcGFyZW50Ij09PXQ/bmV3IE9vdChOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIFBvdCh0KXtyZXR1cm4gbmV3IE9vdCh0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gTm90KHQsZSxuLGkpe3JldHVybiBpPD0wJiYodD1lPW49TmFOKSxuZXcgT290KHQsZSxuLGkpfWZ1bmN0aW9uIElvdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGZvdHx8KHQ9TG90KHQpKSx0P25ldyBPb3QoKHQ9dC5yZ2IoKSkucix0LmcsdC5iLHQub3BhY2l0eSk6bmV3IE9vdH1mdW5jdGlvbiBSb3QodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0lvdCh0KTpuZXcgT290KHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBPb3QodCxlLG4saSl7dGhpcy5yPSt0LHRoaXMuZz0rZSx0aGlzLmI9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIHpvdCgpe3JldHVybiIjIitCb3QodGhpcy5yKStCb3QodGhpcy5nKStCb3QodGhpcy5iKX1mdW5jdGlvbiBEb3QoKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBCb3QodCl7cmV0dXJuKCh0PU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodCl8fDApKSk8MTY/IjAiOiIiKSt0LnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBIb3QodCxlLG4saSl7cmV0dXJuIGk8PTA/dD1lPW49TmFOOm48PTB8fG4+PTE/dD1lPU5hTjplPD0wJiYodD1OYU4pLG5ldyBWb3QodCxlLG4saSl9ZnVuY3Rpb24gRm90KHQpe2lmKHQgaW5zdGFuY2VvZiBWb3QpcmV0dXJuIG5ldyBWb3QodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgZm90fHwodD1Mb3QodCkpLCF0KXJldHVybiBuZXcgVm90O2lmKHQgaW5zdGFuY2VvZiBWb3QpcmV0dXJuIHQ7dmFyIGU9KHQ9dC5yZ2IoKSkuci8yNTUsbj10LmcvMjU1LGk9dC5iLzI1NSxyPU1hdGgubWluKGUsbixpKSxvPU1hdGgubWF4KGUsbixpKSxhPU5hTixzPW8tcixsPShvK3IpLzI7cmV0dXJuIHM/KGE9ZT09PW8/KG4taSkvcys2KihuPGkpOm49PT1vPyhpLWUpL3MrMjooZS1uKS9zKzQscy89bDwuNT9vK3I6Mi1vLXIsYSo9NjApOnM9bD4wJiZsPDE/MDphLG5ldyBWb3QoYSxzLGwsdC5vcGFjaXR5KX1mdW5jdGlvbiBWb3QodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIFVvdCh0LGUsbil7cmV0dXJuIDI1NSoodDw2MD9lKyhuLWUpKnQvNjA6dDwxODA/bjp0PDI0MD9lKyhuLWUpKigyNDAtdCkvNjA6ZSl9ZnVuY3Rpb24gam90KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBHb3QodCxlKXt2YXIgbj1lLXQ7cmV0dXJuIG4/KGZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQrbiplfX0pKHQsbik6am90KGlzTmFOKHQpP2U6dCl9ZG90KGZvdCxMb3Qse2NvcHk6ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsdGhpcyx0KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6QW90LGZvcm1hdEhleDpBb3QsZm9ybWF0SHNsOmZ1bmN0aW9uIFdvdCgpe3JldHVybiBGb3QodGhpcykuZm9ybWF0SHNsKCl9LGZvcm1hdFJnYjprb3QsdG9TdHJpbmc6a290fSksZG90KE9vdCxSb3QscG90KGZvdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9nb3Q6TWF0aC5wb3coZ290LHQpLG5ldyBPb3QodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/bW90Ok1hdGgucG93KG1vdCx0KSxuZXcgT290KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6em90LGZvcm1hdEhleDp6b3QsZm9ybWF0UmdiOkRvdCx0b1N0cmluZzpEb3R9KSksZG90KFZvdCwoZnVuY3Rpb24gcW90KHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9Gb3QodCk6bmV3IFZvdCh0LGUsbixudWxsPT1pPzE6aSl9KSxwb3QoZm90LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P2dvdDpNYXRoLnBvdyhnb3QsdCksbmV3IFZvdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P21vdDpNYXRoLnBvdyhtb3QsdCksbmV3IFZvdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaCUzNjArMzYwKih0aGlzLmg8MCksZT1pc05hTih0KXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxuPXRoaXMubCxpPW4rKG48LjU/bjoxLW4pKmUscj0yKm4taTtyZXR1cm4gbmV3IE9vdChVb3QodD49MjQwP3QtMjQwOnQrMTIwLHIsaSksVW90KHQscixpKSxVb3QodDwxMjA/dCsyNDA6dC0xMjAscixpKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgWW90PShmdW5jdGlvbiB0KGUpe3ZhciBuPShmdW5jdGlvbiBpKHQpe3JldHVybiAxPT0odD0rdCk/R290OmZ1bmN0aW9uKGUsbil7cmV0dXJuIG4tZT8oZnVuY3Rpb24gaSh0LGUsbil7cmV0dXJuIHQ9TWF0aC5wb3codCxuKSxlPU1hdGgucG93KGUsbiktdCxuPTEvbixmdW5jdGlvbihpKXtyZXR1cm4gTWF0aC5wb3codCtpKmUsbil9fSkoZSxuLHQpOmpvdChpc05hTihlKT9uOmUpfX0pKGUpO2Z1bmN0aW9uIHIodCxlKXt2YXIgaT1uKCh0PVJvdCh0KSkuciwoZT1Sb3QoZSkpLnIpLHI9bih0LmcsZS5nKSxvPW4odC5iLGUuYiksYT1Hb3QodC5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LnI9aShlKSx0Lmc9cihlKSx0LmI9byhlKSx0Lm9wYWNpdHk9YShlKSx0KyIifX1yZXR1cm4gci5nYW1tYT10LHJ9KSgxKTtmdW5jdGlvbiBYb3QodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiB0KigxLW4pK2Uqbn19dmFyICRvdD0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csS290PW5ldyBSZWdFeHAoJG90LnNvdXJjZSwiZyIpO2Z1bmN0aW9uIFpvdCh0LGUpe3ZhciBuLGkscixvPSRvdC5sYXN0SW5kZXg9S290Lmxhc3RJbmRleD0wLGE9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsobj0kb3QuZXhlYyh0KSkmJihpPUtvdC5leGVjKGUpKTspKHI9aS5pbmRleCk+byYmKHI9ZS5zbGljZShvLHIpLHNbYV0/c1thXSs9cjpzWysrYV09ciksKG49blswXSk9PT0oaT1pWzBdKT9zW2FdP3NbYV0rPWk6c1srK2FdPWk6KHNbKythXT1udWxsLGwucHVzaCh7aTphLHg6WG90KG4saSl9KSksbz1Lb3QubGFzdEluZGV4O3JldHVybiBvPGUubGVuZ3RoJiYocj1lLnNsaWNlKG8pLHNbYV0/c1thXSs9cjpzWysrYV09cikscy5sZW5ndGg8Mj9sWzBdPyhmdW5jdGlvbiBjKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKSsiIn19KShsWzBdLngpOihmdW5jdGlvbiB1KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0pKGUpOihlPWwubGVuZ3RoLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixpPTA7aTxlOysraSlzWyhuPWxbaV0pLmldPW4ueCh0KTtyZXR1cm4gcy5qb2luKCIiKX0pfXZhciBKb3QsUW90LHRhdCxlYXQsbmF0PTE4MC9NYXRoLlBJLGlhdD17dHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MCxyb3RhdGU6MCxza2V3WDowLHNjYWxlWDoxLHNjYWxlWToxfTtmdW5jdGlvbiByYXQodCxlLG4saSxyLG8pe3ZhciBhLHMsbDtyZXR1cm4oYT1NYXRoLnNxcnQodCp0K2UqZSkpJiYodC89YSxlLz1hKSwobD10Km4rZSppKSYmKG4tPXQqbCxpLT1lKmwpLChzPU1hdGguc3FydChuKm4raSppKSkmJihuLz1zLGkvPXMsbC89cyksdCppPGUqbiYmKHQ9LXQsZT0tZSxsPS1sLGE9LWEpLHt0cmFuc2xhdGVYOnIsdHJhbnNsYXRlWTpvLHJvdGF0ZTpNYXRoLmF0YW4yKGUsdCkqbmF0LHNrZXdYOk1hdGguYXRhbihsKSpuYXQsc2NhbGVYOmEsc2NhbGVZOnN9fWZ1bmN0aW9uIG9hdCh0LGUsbixpKXtmdW5jdGlvbiByKHQpe3JldHVybiB0Lmxlbmd0aD90LnBvcCgpKyIgIjoiIn1yZXR1cm4gZnVuY3Rpb24obyxhKXt2YXIgcz1bXSxsPVtdO3JldHVybiBvPXQobyksYT10KGEpLChmdW5jdGlvbiBjKHQsaSxyLG8sYSxzKXtpZih0IT09cnx8aSE9PW8pe3ZhciBsPWEucHVzaCgidHJhbnNsYXRlKCIsbnVsbCxlLG51bGwsbik7cy5wdXNoKHtpOmwtNCx4OlhvdCh0LHIpfSx7aTpsLTIseDpYb3QoaSxvKX0pfWVsc2Uocnx8bykmJmEucHVzaCgidHJhbnNsYXRlKCIrcitlK28rbil9KShvLnRyYW5zbGF0ZVgsby50cmFuc2xhdGVZLGEudHJhbnNsYXRlWCxhLnRyYW5zbGF0ZVkscyxsKSwoZnVuY3Rpb24gdSh0LGUsbixvKXt0IT09ZT8odC1lPjE4MD9lKz0zNjA6ZS10PjE4MCYmKHQrPTM2MCksby5wdXNoKHtpOm4ucHVzaChyKG4pKyJyb3RhdGUoIixudWxsLGkpLTIseDpYb3QodCxlKX0pKTplJiZuLnB1c2gocihuKSsicm90YXRlKCIrZStpKX0pKG8ucm90YXRlLGEucm90YXRlLHMsbCksKGZ1bmN0aW9uIGgodCxlLG4sbyl7dCE9PWU/by5wdXNoKHtpOm4ucHVzaChyKG4pKyJza2V3WCgiLG51bGwsaSktMix4OlhvdCh0LGUpfSk6ZSYmbi5wdXNoKHIobikrInNrZXdYKCIrZStpKX0pKG8uc2tld1gsYS5za2V3WCxzLGwpLChmdW5jdGlvbiBkKHQsZSxuLGksbyxhKXtpZih0IT09bnx8ZSE9PWkpe3ZhciBzPW8ucHVzaChyKG8pKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTthLnB1c2goe2k6cy00LHg6WG90KHQsbil9LHtpOnMtMix4OlhvdChlLGkpfSl9ZWxzZSAxPT09biYmMT09PWl8fG8ucHVzaChyKG8pKyJzY2FsZSgiK24rIiwiK2krIikiKX0pKG8uc2NhbGVYLG8uc2NhbGVZLGEuc2NhbGVYLGEuc2NhbGVZLHMsbCksbz1hPW51bGwsZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49LTEsaT1sLmxlbmd0aDsrK248aTspc1soZT1sW25dKS5pXT1lLngodCk7cmV0dXJuIHMuam9pbigiIil9fX12YXIgYWF0PW9hdCgoZnVuY3Rpb24gc2F0KHQpe3JldHVybiJub25lIj09PXQ/aWF0OihKb3R8fChKb3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIiksUW90PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0YXQ9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLEpvdC5zdHlsZS50cmFuc2Zvcm09dCx0PXRhdC5nZXRDb21wdXRlZFN0eWxlKFFvdC5hcHBlbmRDaGlsZChKb3QpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLFFvdC5yZW1vdmVDaGlsZChKb3QpLHJhdCgrKHQ9dC5zbGljZSg3LC0xKS5zcGxpdCgiLCIpKVswXSwrdFsxXSwrdFsyXSwrdFszXSwrdFs0XSwrdFs1XSkpfSksInB4LCAiLCJweCkiLCJkZWcpIiksbGF0PW9hdCgoZnVuY3Rpb24gY2F0KHQpe3JldHVybiBudWxsPT10P2lhdDooZWF0fHwoZWF0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIikpLGVhdC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9ZWF0LnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpP3JhdCgodD10Lm1hdHJpeCkuYSx0LmIsdC5jLHQuZCx0LmUsdC5mKTppYXQpfSksIiwgIiwiKSIsIikiKTtmdW5jdGlvbiB1YXQodCxlKXt2YXIgbixpO3JldHVybiBmdW5jdGlvbigpe3ZhciByPWNvdCh0aGlzLHQpLG89ci50d2VlbjtpZihvIT09bilmb3IodmFyIGE9MCxzPShpPW49bykubGVuZ3RoO2E8czsrK2EpaWYoaVthXS5uYW1lPT09ZSl7KGk9aS5zbGljZSgpKS5zcGxpY2UoYSwxKTticmVha31yLnR3ZWVuPWl9fWZ1bmN0aW9uIGhhdCh0LGUsbil7dmFyIGkscjtpZigiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89Y290KHRoaXMsdCksYT1vLnR3ZWVuO2lmKGEhPT1pKXtyPShpPWEpLnNsaWNlKCk7Zm9yKHZhciBzPXtuYW1lOmUsdmFsdWU6bn0sbD0wLGM9ci5sZW5ndGg7bDxjOysrbClpZihyW2xdLm5hbWU9PT1lKXtyW2xdPXM7YnJlYWt9bD09PWMmJnIucHVzaChzKX1vLnR3ZWVuPXJ9fWZ1bmN0aW9uIGRhdCh0LGUsbil7dmFyIGk9dC5faWQ7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1jb3QodGhpcyxpKTsodC52YWx1ZXx8KHQudmFsdWU9e30pKVtlXT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pKSxmdW5jdGlvbih0KXtyZXR1cm4gdW90KHQsaSkudmFsdWVbZV19fWZ1bmN0aW9uIHBhdCh0LGUpe3ZhciBuO3JldHVybigibnVtYmVyIj09dHlwZW9mIGU/WG90OmUgaW5zdGFuY2VvZiBMb3Q/WW90OihuPUxvdChlKSk/KGU9bixZb3QpOlpvdCkodCxlKX1mdW5jdGlvbiBmYXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIG1hdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGdhdCh0LGUsbil7dmFyIGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10aGlzLmdldEF0dHJpYnV0ZSh0KTtyZXR1cm4gbz09PW4/bnVsbDpvPT09aT9yOnI9ZShpPW8sbil9fWZ1bmN0aW9uIF9hdCh0LGUsbil7dmFyIGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk7cmV0dXJuIG89PT1uP251bGw6bz09PWk/cjpyPWUoaT1vLG4pfX1mdW5jdGlvbiB5YXQodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPW4odGhpcyk7aWYobnVsbCE9cylyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZSh0KSk9PT1zP251bGw6YT09PWkmJnM9PT1yP286bz1lKGk9YSxyPXMpO3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiB2YXQodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPW4odGhpcyk7aWYobnVsbCE9cylyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCkpPT09cz9udWxsOmE9PT1pJiZzPT09cj9vOm89ZShpPWEscj1zKTt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGJhdCh0LGUpe2Z1bmN0aW9uIG4oKXt2YXIgbj10aGlzLGk9ZS5hcHBseShuLGFyZ3VtZW50cyk7cmV0dXJuIGkmJmZ1bmN0aW9uKGUpe24uc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGkoZSkpfX1yZXR1cm4gbi5fdmFsdWU9ZSxufWZ1bmN0aW9uIHhhdCh0LGUpe2Z1bmN0aW9uIG4oKXt2YXIgbj10aGlzLGk9ZS5hcHBseShuLGFyZ3VtZW50cyk7cmV0dXJuIGkmJmZ1bmN0aW9uKGUpe24uc2V0QXR0cmlidXRlKHQsaShlKSl9fXJldHVybiBuLl92YWx1ZT1lLG59ZnVuY3Rpb24gd2F0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7bG90KHRoaXMsdCkuZGVsYXk9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBTYXQodCxlKXtyZXR1cm4gZT0rZSxmdW5jdGlvbigpe2xvdCh0aGlzLHQpLmRlbGF5PWV9fWZ1bmN0aW9uIE1hdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe2NvdCh0aGlzLHQpLmR1cmF0aW9uPStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gRWF0KHQsZSl7cmV0dXJuIGU9K2UsZnVuY3Rpb24oKXtjb3QodGhpcyx0KS5kdXJhdGlvbj1lfX1mdW5jdGlvbiBUYXQodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7Y290KHRoaXMsdCkuZWFzZT1lfX1mdW5jdGlvbiBDYXQodCxlLG4pe3ZhciBpLHIsbz0oZnVuY3Rpb24gYSh0KXtyZXR1cm4odCsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pLmV2ZXJ5KChmdW5jdGlvbih0KXt2YXIgZT10LmluZGV4T2YoIi4iKTtyZXR1cm4gZT49MCYmKHQ9dC5zbGljZSgwLGUpKSwhdHx8InN0YXJ0Ij09PXR9KSl9KShlKT9sb3Q6Y290O3JldHVybiBmdW5jdGlvbigpe3ZhciBhPW8odGhpcyx0KSxzPWEub247cyE9PWkmJihyPShpPXMpLmNvcHkoKSkub24oZSxuKSxhLm9uPXJ9fXZhciBBYXQ9aXJ0LnByb3RvdHlwZS5jb25zdHJ1Y3RvcjtmdW5jdGlvbiBrYXQodCxlLG4pe2Z1bmN0aW9uIGkoKXt2YXIgaT10aGlzLHI9ZS5hcHBseShpLGFyZ3VtZW50cyk7cmV0dXJuIHImJmZ1bmN0aW9uKGUpe2kuc3R5bGUuc2V0UHJvcGVydHkodCxyKGUpLG4pfX1yZXR1cm4gaS5fdmFsdWU9ZSxpfXZhciBMYXQ9MDtmdW5jdGlvbiBQYXQodCxlLG4saSl7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1lLHRoaXMuX25hbWU9bix0aGlzLl9pZD1pfWZ1bmN0aW9uIE5hdCh0KXtyZXR1cm4gaXJ0KCkudHJhbnNpdGlvbih0KX1mdW5jdGlvbiBJYXQoKXtyZXR1cm4rK0xhdH12YXIgUmF0PWlydC5wcm90b3R5cGU7UGF0LnByb3RvdHlwZT1OYXQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpQYXQsc2VsZWN0OmZ1bmN0aW9uIE9hdCh0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWlpdCh0KSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7KythKWZvcih2YXIgcyxsLGM9aVthXSx1PWMubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9Y1tkXSkmJihsPXQuY2FsbChzLHMuX19kYXRhX18sZCxjKSkmJigiX19kYXRhX18iaW4gcyYmKGwuX19kYXRhX189cy5fX2RhdGFfXyksaFtkXT1sLHNvdChoW2RdLGUsbixkLGgsdW90KHMsbikpKTtyZXR1cm4gbmV3IFBhdChvLHRoaXMuX3BhcmVudHMsZSxuKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIHphdCh0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PW9pdCh0KSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89W10sYT1bXSxzPTA7czxyOysrcylmb3IodmFyIGwsYz1pW3NdLHU9Yy5sZW5ndGgsaD0wO2g8dTsrK2gpaWYobD1jW2hdKXtmb3IodmFyIGQscD10LmNhbGwobCxsLl9fZGF0YV9fLGgsYyksZj11b3QobCxuKSxtPTAsZz1wLmxlbmd0aDttPGc7KyttKShkPXBbbV0pJiZzb3QoZCxlLG4sbSxwLGYpO28ucHVzaChwKSxhLnB1c2gobCl9cmV0dXJuIG5ldyBQYXQobyxhLGUsbil9LGZpbHRlcjpmdW5jdGlvbiBEYXQodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWFpdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgUGF0KGksdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sbWVyZ2U6ZnVuY3Rpb24gQmF0KHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IFBhdChvLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbiBIYXQoKXtyZXR1cm4gbmV3IEFhdCh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24gRmF0KCl7Zm9yKHZhciB0PXRoaXMuX25hbWUsZT10aGlzLl9pZCxuPUlhdCgpLGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz0wO288cjsrK28pZm9yKHZhciBhLHM9aVtvXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKWlmKGE9c1tjXSl7dmFyIHU9dW90KGEsZSk7c290KGEsdCxuLGMscyx7dGltZTp1LnRpbWUrdS5kZWxheSt1LmR1cmF0aW9uLGRlbGF5OjAsZHVyYXRpb246dS5kdXJhdGlvbixlYXNlOnUuZWFzZX0pfXJldHVybiBuZXcgUGF0KGksdGhpcy5fcGFyZW50cyx0LG4pfSxjYWxsOlJhdC5jYWxsLG5vZGVzOlJhdC5ub2Rlcyxub2RlOlJhdC5ub2RlLHNpemU6UmF0LnNpemUsZW1wdHk6UmF0LmVtcHR5LGVhY2g6UmF0LmVhY2gsb246ZnVuY3Rpb24gVmF0KHQsZSl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj91b3QodGhpcy5ub2RlKCksbikub24ub24odCk6dGhpcy5lYWNoKENhdChuLHQsZSkpfSxhdHRyOmZ1bmN0aW9uIFVhdCh0LGUpe3ZhciBuPUpudCh0KSxpPSJ0cmFuc2Zvcm0iPT09bj9sYXQ6cGF0O3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LCJmdW5jdGlvbiI9PXR5cGVvZiBlPyhuLmxvY2FsP3ZhdDp5YXQpKG4saSxkYXQodGhpcywiYXR0ci4iK3QsZSkpOm51bGw9PWU/KG4ubG9jYWw/bWF0OmZhdCkobik6KG4ubG9jYWw/X2F0OmdhdCkobixpLGUrIiIpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uIGphdCh0LGUpe3ZhciBuPSJhdHRyLiIrdDtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKG49dGhpcy50d2VlbihuKSkmJm4uX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4obixudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7dmFyIGk9Sm50KHQpO3JldHVybiB0aGlzLnR3ZWVuKG4sKGkubG9jYWw/YmF0OnhhdCkoaSxlKSl9LHN0eWxlOmZ1bmN0aW9uIEdhdCh0LGUsbil7dmFyIGk9InRyYW5zZm9ybSI9PSh0Kz0iIik/YWF0OnBhdDtyZXR1cm4gbnVsbD09ZT90aGlzLnN0eWxlVHdlZW4odCwoZnVuY3Rpb24gbyh0LGUpe3ZhciBuLGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz13aXQodGhpcyx0KSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLHdpdCh0aGlzLHQpKTtyZXR1cm4gbz09PWE/bnVsbDpvPT09biYmYT09PWk/cjpyPWUobj1vLGk9YSl9fSkodCxpKSkub24oImVuZC5zdHlsZS4iK3QsKGZ1bmN0aW9uIHIodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19KSh0KSk6dGhpcy5zdHlsZVR3ZWVuKHQsImZ1bmN0aW9uIj09dHlwZW9mIGU/KGZ1bmN0aW9uIGEodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT13aXQodGhpcyx0KSxzPW4odGhpcyk7cmV0dXJuIG51bGw9PXMmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLHM9d2l0KHRoaXMsdCkpLGE9PT1zP251bGw6YT09PWkmJnM9PT1yP286bz1lKGk9YSxyPXMpfX0pKHQsaSxkYXQodGhpcywic3R5bGUuIit0LGUpKTooZnVuY3Rpb24gcyh0LGUsbil7dmFyIGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz13aXQodGhpcyx0KTtyZXR1cm4gbz09PW4/bnVsbDpvPT09aT9yOnI9ZShpPW8sbil9fSkodCxpLGUrIiIpLG4pfSxzdHlsZVR3ZWVuOmZ1bmN0aW9uIFdhdCh0LGUsbil7dmFyIGk9InN0eWxlLiIrKHQrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGk9dGhpcy50d2VlbihpKSkmJmkuX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4oaSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oaSxrYXQodCxlLG51bGw9PW4/IiI6bikpfSx0ZXh0OmZ1bmN0aW9uIHFhdCh0KXtyZXR1cm4gdGhpcy50d2VlbigidGV4dCIsImZ1bmN0aW9uIj09dHlwZW9mIHQ/KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dCh0aGlzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19KShkYXQodGhpcywidGV4dCIsdCkpOihmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KShudWxsPT10PyIiOnQrIiIpKX0scmVtb3ZlOmZ1bmN0aW9uIFlhdCgpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtuIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19KSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiBYYXQodCxlKXt2YXIgbj10aGlzLl9pZDtpZih0Kz0iIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaSxyPXVvdCh0aGlzLm5vZGUoKSxuKS50d2VlbixvPTAsYT1yLmxlbmd0aDtvPGE7KytvKWlmKChpPXJbb10pLm5hbWU9PT10KXJldHVybiBpLnZhbHVlO3JldHVybiBudWxsfXJldHVybiB0aGlzLmVhY2goKG51bGw9PWU/dWF0OmhhdCkobix0LGUpKX0sZGVsYXk6ZnVuY3Rpb24gJGF0KHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIHQ/d2F0OlNhdCkoZSx0KSk6dW90KHRoaXMubm9kZSgpLGUpLmRlbGF5fSxkdXJhdGlvbjpmdW5jdGlvbiBLYXQodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9NYXQ6RWF0KShlLHQpKTp1b3QodGhpcy5ub2RlKCksZSkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24gWmF0KHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChUYXQoZSx0KSk6dW90KHRoaXMubm9kZSgpLGUpLmVhc2V9fTt2YXIgSmF0PXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpUZn07ZnVuY3Rpb24gUWF0KHQsZSl7Zm9yKHZhciBuOyEobj10Ll9fdHJhbnNpdGlvbil8fCEobj1uW2VdKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIEphdC50aW1lPVpydCgpLEphdDtyZXR1cm4gbn1pcnQucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbiB0c3QodCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtob3QodGhpcyx0KX0pKX0saXJ0LnByb3RvdHlwZS50cmFuc2l0aW9uPWZ1bmN0aW9uIGVzdCh0KXt2YXIgZSxuO3QgaW5zdGFuY2VvZiBQYXQ/KGU9dC5faWQsdD10Ll9uYW1lKTooZT1JYXQoKSwobj1KYXQpLnRpbWU9WnJ0KCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykoYT1zW2NdKSYmc290KGEsdCxlLGMscyxufHxRYXQoYSxlKSk7cmV0dXJuIG5ldyBQYXQoaSx0aGlzLl9wYXJlbnRzLHQsZSl9O3ZhciBuc3Q9W251bGxdO2Z1bmN0aW9uIGlzdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gcnN0KHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIG9zdCh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBhc3QoKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBzc3QodCl7dC5VPXQuQz10Lkw9dC5SPXQuUD10Lk49bnVsbH1mdW5jdGlvbiBsc3QodCxlKXt2YXIgbj1lLGk9ZS5SLHI9bi5VO3I/ci5MPT09bj9yLkw9aTpyLlI9aTp0Ll89aSxpLlU9cixuLlU9aSxuLlI9aS5MLG4uUiYmKG4uUi5VPW4pLGkuTD1ufWZ1bmN0aW9uIGNzdCh0LGUpe3ZhciBuPWUsaT1lLkwscj1uLlU7cj9yLkw9PT1uP3IuTD1pOnIuUj1pOnQuXz1pLGkuVT1yLG4uVT1pLG4uTD1pLlIsbi5MJiYobi5MLlU9biksaS5SPW59ZnVuY3Rpb24gdXN0KHQpe2Zvcig7dC5MOyl0PXQuTDtyZXR1cm4gdH1mdW5jdGlvbiBoc3QodCxlLG4saSl7dmFyIHI9W251bGwsbnVsbF0sbz1Pc3QucHVzaChyKS0xO3JldHVybiByLmxlZnQ9dCxyLnJpZ2h0PWUsbiYmcHN0KHIsdCxlLG4pLGkmJnBzdChyLGUsdCxpKSxJc3RbdC5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksSXN0W2UuaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLHJ9ZnVuY3Rpb24gZHN0KHQsZSxuKXt2YXIgaT1bZSxuXTtyZXR1cm4gaS5sZWZ0PXQsaX1mdW5jdGlvbiBwc3QodCxlLG4saSl7dFswXXx8dFsxXT90LmxlZnQ9PT1uP3RbMV09aTp0WzBdPWk6KHRbMF09aSx0LmxlZnQ9ZSx0LnJpZ2h0PW4pfWZ1bmN0aW9uIGZzdCh0LGUsbixpLHIpe3ZhciBvLGE9dFswXSxzPXRbMV0sbD1hWzBdLGM9YVsxXSx1PTAsaD0xLGQ9c1swXS1sLHA9c1sxXS1jO2lmKG89ZS1sLGR8fCEobz4wKSl7aWYoby89ZCxkPDApe2lmKG88dSlyZXR1cm47bzxoJiYoaD1vKX1lbHNlIGlmKGQ+MCl7aWYobz5oKXJldHVybjtvPnUmJih1PW8pfWlmKG89aS1sLGR8fCEobzwwKSl7aWYoby89ZCxkPDApe2lmKG8+aClyZXR1cm47bz51JiYodT1vKX1lbHNlIGlmKGQ+MCl7aWYobzx1KXJldHVybjtvPGgmJihoPW8pfWlmKG89bi1jLHB8fCEobz4wKSl7aWYoby89cCxwPDApe2lmKG88dSlyZXR1cm47bzxoJiYoaD1vKX1lbHNlIGlmKHA+MCl7aWYobz5oKXJldHVybjtvPnUmJih1PW8pfWlmKG89ci1jLHB8fCEobzwwKSl7aWYoby89cCxwPDApe2lmKG8+aClyZXR1cm47bz51JiYodT1vKX1lbHNlIGlmKHA+MCl7aWYobzx1KXJldHVybjtvPGgmJihoPW8pfXJldHVybiEodT4wfHxoPDEpfHwodT4wJiYodFswXT1bbCt1KmQsYyt1KnBdKSxoPDEmJih0WzFdPVtsK2gqZCxjK2gqcF0pLCEwKX19fX19ZnVuY3Rpb24gbXN0KHQsZSxuLGkscil7dmFyIG89dFsxXTtpZihvKXJldHVybiEwO3ZhciBhLHMsbD10WzBdLGM9dC5sZWZ0LHU9dC5yaWdodCxoPWNbMF0sZD1jWzFdLHA9dVswXSxmPXVbMV0sbT0oaCtwKS8yO2lmKGY9PT1kKXtpZihtPGV8fG0+PWkpcmV0dXJuO2lmKGg+cCl7aWYobCl7aWYobFsxXT49cilyZXR1cm59ZWxzZSBsPVttLG5dO289W20scl19ZWxzZXtpZihsKXtpZihsWzFdPG4pcmV0dXJufWVsc2UgbD1bbSxyXTtvPVttLG5dfX1lbHNlIGlmKHM9KGQrZikvMi0oYT0oaC1wKS8oZi1kKSkqbSxhPC0xfHxhPjEpaWYoaD5wKXtpZihsKXtpZihsWzFdPj1yKXJldHVybn1lbHNlIGw9WyhuLXMpL2Esbl07bz1bKHItcykvYSxyXX1lbHNle2lmKGwpe2lmKGxbMV08bilyZXR1cm59ZWxzZSBsPVsoci1zKS9hLHJdO289WyhuLXMpL2Esbl19ZWxzZSBpZihkPGYpe2lmKGwpe2lmKGxbMF0+PWkpcmV0dXJufWVsc2UgbD1bZSxhKmUrc107bz1baSxhKmkrc119ZWxzZXtpZihsKXtpZihsWzBdPGUpcmV0dXJufWVsc2UgbD1baSxhKmkrc107bz1bZSxhKmUrc119cmV0dXJuIHRbMF09bCx0WzFdPW8sITB9ZnVuY3Rpb24gZ3N0KHQsZSl7dmFyIG49dC5zaXRlLGk9ZS5sZWZ0LHI9ZS5yaWdodDtyZXR1cm4gbj09PXImJihyPWksaT1uKSxyP01hdGguYXRhbjIoclsxXS1pWzFdLHJbMF0taVswXSk6KG49PT1pPyhpPWVbMV0scj1lWzBdKTooaT1lWzBdLHI9ZVsxXSksTWF0aC5hdGFuMihpWzBdLXJbMF0sclsxXS1pWzFdKSl9ZnVuY3Rpb24gX3N0KHQsZSl7cmV0dXJuIGVbKyhlLmxlZnQhPT10LnNpdGUpXX1mdW5jdGlvbiB5c3QodCxlKXtyZXR1cm4gZVsrKGUubGVmdD09PXQuc2l0ZSldfWFzdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmFzdCxpbnNlcnQ6ZnVuY3Rpb24odCxlKXt2YXIgbixpLHI7aWYodCl7aWYoZS5QPXQsZS5OPXQuTix0Lk4mJih0Lk4uUD1lKSx0Lk49ZSx0LlIpe2Zvcih0PXQuUjt0Lkw7KXQ9dC5MO3QuTD1lfWVsc2UgdC5SPWU7bj10fWVsc2UgdGhpcy5fPyh0PXVzdCh0aGlzLl8pLGUuUD1udWxsLGUuTj10LHQuUD10Lkw9ZSxuPXQpOihlLlA9ZS5OPW51bGwsdGhpcy5fPWUsbj1udWxsKTtmb3IoZS5MPWUuUj1udWxsLGUuVT1uLGUuQz0hMCx0PWU7biYmbi5DOyluPT09KGk9bi5VKS5MPyhyPWkuUikmJnIuQz8obi5DPXIuQz0hMSxpLkM9ITAsdD1pKToodD09PW4uUiYmKGxzdCh0aGlzLG4pLG49KHQ9bikuVSksbi5DPSExLGkuQz0hMCxjc3QodGhpcyxpKSk6KHI9aS5MKSYmci5DPyhuLkM9ci5DPSExLGkuQz0hMCx0PWkpOih0PT09bi5MJiYoY3N0KHRoaXMsbiksbj0odD1uKS5VKSxuLkM9ITEsaS5DPSEwLGxzdCh0aGlzLGkpKSxuPXQuVTt0aGlzLl8uQz0hMX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuTiYmKHQuTi5QPXQuUCksdC5QJiYodC5QLk49dC5OKSx0Lk49dC5QPW51bGw7dmFyIGUsbixpLHI9dC5VLG89dC5MLGE9dC5SO2lmKG49bz9hP3VzdChhKTpvOmEscj9yLkw9PT10P3IuTD1uOnIuUj1uOnRoaXMuXz1uLG8mJmE/KGk9bi5DLG4uQz10LkMsbi5MPW8sby5VPW4sbiE9PWE/KHI9bi5VLG4uVT10LlUsci5MPXQ9bi5SLG4uUj1hLGEuVT1uKToobi5VPXIscj1uLHQ9bi5SKSk6KGk9dC5DLHQ9biksdCYmKHQuVT1yKSwhaSlpZih0JiZ0LkMpdC5DPSExO2Vsc2V7ZG97aWYodD09PXRoaXMuXylicmVhaztpZih0PT09ci5MKXtpZigoZT1yLlIpLkMmJihlLkM9ITEsci5DPSEwLGxzdCh0aGlzLHIpLGU9ci5SKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLlImJmUuUi5DfHwoZS5MLkM9ITEsZS5DPSEwLGNzdCh0aGlzLGUpLGU9ci5SKSxlLkM9ci5DLHIuQz1lLlIuQz0hMSxsc3QodGhpcyxyKSx0PXRoaXMuXzticmVha319ZWxzZSBpZigoZT1yLkwpLkMmJihlLkM9ITEsci5DPSEwLGNzdCh0aGlzLHIpLGU9ci5MKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLkwmJmUuTC5DfHwoZS5SLkM9ITEsZS5DPSEwLGxzdCh0aGlzLGUpLGU9ci5MKSxlLkM9ci5DLHIuQz1lLkwuQz0hMSxjc3QodGhpcyxyKSx0PXRoaXMuXzticmVha31lLkM9ITAsdD1yLHI9ci5VfXdoaWxlKCF0LkMpO3QmJih0LkM9ITEpfX19O3ZhciB2c3QsYnN0PVtdO2Z1bmN0aW9uIHhzdCgpe3NzdCh0aGlzKSx0aGlzLng9dGhpcy55PXRoaXMuYXJjPXRoaXMuc2l0ZT10aGlzLmN5PW51bGx9ZnVuY3Rpb24gd3N0KHQpe3ZhciBlPXQuUCxuPXQuTjtpZihlJiZuKXt2YXIgaT1lLnNpdGUscj10LnNpdGUsbz1uLnNpdGU7aWYoaSE9PW8pe3ZhciBhPXJbMF0scz1yWzFdLGw9aVswXS1hLGM9aVsxXS1zLHU9b1swXS1hLGg9b1sxXS1zLGQ9MioobCpoLWMqdSk7aWYoIShkPj0tRHN0KSl7dmFyIHA9bCpsK2MqYyxmPXUqdStoKmgsbT0oaCpwLWMqZikvZCxnPShsKmYtdSpwKS9kLF89YnN0LnBvcCgpfHxuZXcgeHN0O18uYXJjPXQsXy5zaXRlPXIsXy54PW0rYSxfLnk9KF8uY3k9ZytzKStNYXRoLnNxcnQobSptK2cqZyksdC5jaXJjbGU9Xztmb3IodmFyIHk9bnVsbCx2PVJzdC5fO3Y7KWlmKF8ueTx2Lnl8fF8ueT09PXYueSYmXy54PD12Lngpe2lmKCF2Lkwpe3k9di5QO2JyZWFrfXY9di5MfWVsc2V7aWYoIXYuUil7eT12O2JyZWFrfXY9di5SfVJzdC5pbnNlcnQoeSxfKSx5fHwodnN0PV8pfX19fWZ1bmN0aW9uIFNzdCh0KXt2YXIgZT10LmNpcmNsZTtlJiYoZS5QfHwodnN0PWUuTiksUnN0LnJlbW92ZShlKSxic3QucHVzaChlKSxzc3QoZSksdC5jaXJjbGU9bnVsbCl9dmFyIE1zdD1bXTtmdW5jdGlvbiBFc3QoKXtzc3QodGhpcyksdGhpcy5lZGdlPXRoaXMuc2l0ZT10aGlzLmNpcmNsZT1udWxsfWZ1bmN0aW9uIFRzdCh0KXt2YXIgZT1Nc3QucG9wKCl8fG5ldyBFc3Q7cmV0dXJuIGUuc2l0ZT10LGV9ZnVuY3Rpb24gQ3N0KHQpe1NzdCh0KSxOc3QucmVtb3ZlKHQpLE1zdC5wdXNoKHQpLHNzdCh0KX1mdW5jdGlvbiBBc3QodCl7dmFyIGU9dC5jaXJjbGUsbj1lLngsaT1lLmN5LHI9W24saV0sbz10LlAsYT10Lk4scz1bdF07Q3N0KHQpO2Zvcih2YXIgbD1vO2wuY2lyY2xlJiZNYXRoLmFicyhuLWwuY2lyY2xlLngpPHpzdCYmTWF0aC5hYnMoaS1sLmNpcmNsZS5jeSk8enN0OylvPWwuUCxzLnVuc2hpZnQobCksQ3N0KGwpLGw9bztzLnVuc2hpZnQobCksU3N0KGwpO2Zvcih2YXIgYz1hO2MuY2lyY2xlJiZNYXRoLmFicyhuLWMuY2lyY2xlLngpPHpzdCYmTWF0aC5hYnMoaS1jLmNpcmNsZS5jeSk8enN0OylhPWMuTixzLnB1c2goYyksQ3N0KGMpLGM9YTtzLnB1c2goYyksU3N0KGMpO3ZhciB1LGg9cy5sZW5ndGg7Zm9yKHU9MTt1PGg7Kyt1KXBzdCgoYz1zW3VdKS5lZGdlLChsPXNbdS0xXSkuc2l0ZSxjLnNpdGUscik7KGM9c1toLTFdKS5lZGdlPWhzdCgobD1zWzBdKS5zaXRlLGMuc2l0ZSxudWxsLHIpLHdzdChsKSx3c3QoYyl9ZnVuY3Rpb24ga3N0KHQpe2Zvcih2YXIgZSxuLGkscixvPXRbMF0sYT10WzFdLHM9TnN0Ll87czspaWYoKGk9THN0KHMsYSktbyk+enN0KXM9cy5MO2Vsc2V7aWYoISgocj1vLVBzdChzLGEpKT56c3QpKXtpPi16c3Q/KGU9cy5QLG49cyk6cj4tenN0PyhlPXMsbj1zLk4pOmU9bj1zO2JyZWFrfWlmKCFzLlIpe2U9czticmVha31zPXMuUn0hKGZ1bmN0aW9uIGwodCl7SXN0W3QuaW5kZXhdPXtzaXRlOnQsaGFsZmVkZ2VzOltdfX0pKHQpO3ZhciBjPVRzdCh0KTtpZihOc3QuaW5zZXJ0KGUsYyksZXx8bil7aWYoZT09PW4pcmV0dXJuIFNzdChlKSxuPVRzdChlLnNpdGUpLE5zdC5pbnNlcnQoYyxuKSxjLmVkZ2U9bi5lZGdlPWhzdChlLnNpdGUsYy5zaXRlKSx3c3QoZSksdm9pZCB3c3Qobik7aWYobil7U3N0KGUpLFNzdChuKTt2YXIgdT1lLnNpdGUsaD11WzBdLGQ9dVsxXSxwPXRbMF0taCxmPXRbMV0tZCxtPW4uc2l0ZSxnPW1bMF0taCxfPW1bMV0tZCx5PTIqKHAqXy1mKmcpLHY9cCpwK2YqZixiPWcqZytfKl8seD1bKF8qdi1mKmIpL3kraCwocCpiLWcqdikveStkXTtwc3Qobi5lZGdlLHUsbSx4KSxjLmVkZ2U9aHN0KHUsdCxudWxsLHgpLG4uZWRnZT1oc3QodCxtLG51bGwseCksd3N0KGUpLHdzdChuKX1lbHNlIGMuZWRnZT1oc3QoZS5zaXRlLGMuc2l0ZSl9fWZ1bmN0aW9uIExzdCh0LGUpe3ZhciBuPXQuc2l0ZSxpPW5bMF0scj1uWzFdLG89ci1lO2lmKCFvKXJldHVybiBpO3ZhciBhPXQuUDtpZighYSlyZXR1cm4tMS8wO3ZhciBzPShuPWEuc2l0ZSlbMF0sbD1uWzFdLGM9bC1lO2lmKCFjKXJldHVybiBzO3ZhciB1PXMtaSxoPTEvby0xL2MsZD11L2M7cmV0dXJuIGg/KC1kK01hdGguc3FydChkKmQtMipoKih1KnUvKC0yKmMpLWwrYy8yK3Itby8yKSkpL2graTooaStzKS8yfWZ1bmN0aW9uIFBzdCh0LGUpe3ZhciBuPXQuTjtpZihuKXJldHVybiBMc3QobixlKTt2YXIgaT10LnNpdGU7cmV0dXJuIGlbMV09PT1lP2lbMF06MS8wfXZhciBOc3QsSXN0LFJzdCxPc3QsenN0PTFlLTYsRHN0PTFlLTEyO2Z1bmN0aW9uIEJzdCh0LGUsbil7cmV0dXJuKHRbMF0tblswXSkqKGVbMV0tdFsxXSktKHRbMF0tZVswXSkqKG5bMV0tdFsxXSl9ZnVuY3Rpb24gSHN0KHQsZSl7cmV0dXJuIGVbMV0tdFsxXXx8ZVswXS10WzBdfWZ1bmN0aW9uIEZzdCh0LGUpe3ZhciBuLGkscixvPXQuc29ydChIc3QpLnBvcCgpO2ZvcihPc3Q9W10sSXN0PW5ldyBBcnJheSh0Lmxlbmd0aCksTnN0PW5ldyBhc3QsUnN0PW5ldyBhc3Q7OylpZihyPXZzdCxvJiYoIXJ8fG9bMV08ci55fHxvWzFdPT09ci55JiZvWzBdPHIueCkpb1swXT09PW4mJm9bMV09PT1pfHwoa3N0KG8pLG49b1swXSxpPW9bMV0pLG89dC5wb3AoKTtlbHNle2lmKCFyKWJyZWFrO0FzdChyLmFyYyl9aWYoKGZ1bmN0aW9uIGEoKXtmb3IodmFyIHQsZSxuLGkscj0wLG89SXN0Lmxlbmd0aDtyPG87KytyKWlmKCh0PUlzdFtyXSkmJihpPShlPXQuaGFsZmVkZ2VzKS5sZW5ndGgpKXt2YXIgYT1uZXcgQXJyYXkoaSkscz1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPGk7KytuKWFbbl09bixzW25dPWdzdCh0LE9zdFtlW25dXSk7Zm9yKGEuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gc1tlXS1zW3RdfSkpLG49MDtuPGk7KytuKXNbbl09ZVthW25dXTtmb3Iobj0wO248aTsrK24pZVtuXT1zW25dfX0pKCksZSl7dmFyIHM9K2VbMF1bMF0sbD0rZVswXVsxXSxjPStlWzFdWzBdLHU9K2VbMV1bMV07IShmdW5jdGlvbiBoKHQsZSxuLGkpe2Zvcih2YXIgcixvPU9zdC5sZW5ndGg7by0tOyltc3Qocj1Pc3Rbb10sdCxlLG4saSkmJmZzdChyLHQsZSxuLGkpJiYoTWF0aC5hYnMoclswXVswXS1yWzFdWzBdKT56c3R8fE1hdGguYWJzKHJbMF1bMV0tclsxXVsxXSk+enN0KXx8ZGVsZXRlIE9zdFtvXX0pKHMsbCxjLHUpLChmdW5jdGlvbiBkKHQsZSxuLGkpe3ZhciByLG8sYSxzLGwsYyx1LGgsZCxwLGYsbSxnPUlzdC5sZW5ndGgsXz0hMDtmb3Iocj0wO3I8ZzsrK3IpaWYobz1Jc3Rbcl0pe2ZvcihhPW8uc2l0ZSxzPShsPW8uaGFsZmVkZ2VzKS5sZW5ndGg7cy0tOylPc3RbbFtzXV18fGwuc3BsaWNlKHMsMSk7Zm9yKHM9MCxjPWwubGVuZ3RoO3M8YzspZj0ocD15c3QobyxPc3RbbFtzXV0pKVswXSxtPXBbMV0saD0odT1fc3QobyxPc3RbbFsrK3MlY11dKSlbMF0sZD11WzFdLChNYXRoLmFicyhmLWgpPnpzdHx8TWF0aC5hYnMobS1kKT56c3QpJiYobC5zcGxpY2UocywwLE9zdC5wdXNoKGRzdChhLHAsTWF0aC5hYnMoZi10KTx6c3QmJmktbT56c3Q/W3QsTWF0aC5hYnMoaC10KTx6c3Q/ZDppXTpNYXRoLmFicyhtLWkpPHpzdCYmbi1mPnpzdD9bTWF0aC5hYnMoZC1pKTx6c3Q/aDpuLGldOk1hdGguYWJzKGYtbik8enN0JiZtLWU+enN0P1tuLE1hdGguYWJzKGgtbik8enN0P2Q6ZV06TWF0aC5hYnMobS1lKTx6c3QmJmYtdD56c3Q/W01hdGguYWJzKGQtZSk8enN0P2g6dCxlXTpudWxsKSktMSksKytjKTtjJiYoXz0hMSl9aWYoXyl7dmFyIHksdixiLHg9MS8wO2ZvcihyPTAsXz1udWxsO3I8ZzsrK3IpKG89SXN0W3JdKSYmKGI9KHk9KGE9by5zaXRlKVswXS10KSp5Kyh2PWFbMV0tZSkqdik8eCYmKHg9YixfPW8pO2lmKF8pe3ZhciB3PVt0LGVdLFM9W3QsaV0sTT1bbixpXSxFPVtuLGVdO18uaGFsZmVkZ2VzLnB1c2goT3N0LnB1c2goZHN0KGE9Xy5zaXRlLHcsUykpLTEsT3N0LnB1c2goZHN0KGEsUyxNKSktMSxPc3QucHVzaChkc3QoYSxNLEUpKS0xLE9zdC5wdXNoKGRzdChhLEUsdykpLTEpfX1mb3Iocj0wO3I8ZzsrK3IpKG89SXN0W3JdKSYmKG8uaGFsZmVkZ2VzLmxlbmd0aHx8ZGVsZXRlIElzdFtyXSl9KShzLGwsYyx1KX10aGlzLmVkZ2VzPU9zdCx0aGlzLmNlbGxzPUlzdCxOc3Q9UnN0PU9zdD1Jc3Q9bnVsbH1Gc3QucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpGc3QscG9seWdvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLm1hcCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5oYWxmZWRnZXMubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gX3N0KGUsdFtuXSl9KSk7cmV0dXJuIG4uZGF0YT1lLnNpdGUuZGF0YSxufSkpfSx0cmlhbmdsZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXSxlPXRoaXMuZWRnZXM7cmV0dXJuIHRoaXMuY2VsbHMuZm9yRWFjaCgoZnVuY3Rpb24obixpKXtpZihvPShyPW4uaGFsZmVkZ2VzKS5sZW5ndGgpZm9yKHZhciByLG8sYSxzPW4uc2l0ZSxsPS0xLGM9ZVtyW28tMV1dLHU9Yy5sZWZ0PT09cz9jLnJpZ2h0OmMubGVmdDsrK2w8bzspYT11LHU9KGM9ZVtyW2xdXSkubGVmdD09PXM/Yy5yaWdodDpjLmxlZnQsYSYmdSYmaTxhLmluZGV4JiZpPHUuaW5kZXgmJkJzdChzLGEsdSk8MCYmdC5wdXNoKFtzLmRhdGEsYS5kYXRhLHUuZGF0YV0pfSkpLHR9LGxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZXMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yaWdodH0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntzb3VyY2U6dC5sZWZ0LmRhdGEsdGFyZ2V0OnQucmlnaHQuZGF0YX19KSl9LGZpbmQ6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaSxyLG89dGhpcyxhPW8uX2ZvdW5kfHwwLHM9by5jZWxscy5sZW5ndGg7IShyPW8uY2VsbHNbYV0pOylpZigrK2E+PXMpcmV0dXJuIG51bGw7dmFyIGw9dC1yLnNpdGVbMF0sYz1lLXIuc2l0ZVsxXSx1PWwqbCtjKmM7ZG97cj1vLmNlbGxzW2k9YV0sYT1udWxsLHIuaGFsZmVkZ2VzLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpPW8uZWRnZXNbbl0scz1pLmxlZnQ7aWYocyE9PXIuc2l0ZSYmc3x8KHM9aS5yaWdodCkpe3ZhciBsPXQtc1swXSxjPWUtc1sxXSxoPWwqbCtjKmM7aDx1JiYodT1oLGE9cy5pbmRleCl9fSkpfXdoaWxlKG51bGwhPT1hKTtyZXR1cm4gby5fZm91bmQ9aSxudWxsPT1ufHx1PD1uKm4/ci5zaXRlOm51bGx9fTt2YXIgVnN0PXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIFVzdCgpe2Zvcih2YXIgdCxlPTAsbj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxuOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaXx8L1tccy5dLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK3QpO2lbdF09W119cmV0dXJuIG5ldyBqc3QoaSl9ZnVuY3Rpb24ganN0KHQpe3RoaXMuXz10fWZ1bmN0aW9uIEdzdCh0LGUpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9dC5pbmRleE9mKCIuIik7aWYoaT49MCYmKG49dC5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKSx0JiYhZS5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6bn19KSl9ZnVuY3Rpb24gV3N0KHQsZSl7Zm9yKHZhciBuLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYoKG49dFtpXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24gcXN0KHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT1Wc3QsdD10LnNsaWNlKDAsaSkuY29uY2F0KHQuc2xpY2UoaSsxKSk7YnJlYWt9cmV0dXJuIG51bGwhPW4mJnQucHVzaCh7bmFtZTplLHZhbHVlOm59KSx0fWpzdC5wcm90b3R5cGU9VXN0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6anN0LG9uOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl8scj1Hc3QodCsiIixpKSxvPS0xLGE9ci5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK288YTspaWYobj0odD1yW29dKS50eXBlKWlbbl09cXN0KGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09cXN0KGlbbl0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChuPSh0PXJbb10pLnR5cGUpJiYobj1Xc3QoaVtuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcganN0KHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgWXN0PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixYc3Q9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOllzdCx4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9O2Z1bmN0aW9uICRzdCh0KXt2YXIgZT10Kz0iIixuPWUuaW5kZXhPZigiOiIpO3JldHVybiBuPj0wJiYieG1sbnMiIT09KGU9dC5zbGljZSgwLG4pKSYmKHQ9dC5zbGljZShuKzEpKSxYc3QuaGFzT3duUHJvcGVydHkoZSk/e3NwYWNlOlhzdFtlXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIEtzdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnQsbj10aGlzLm5hbWVzcGFjZVVSSTtyZXR1cm4gbj09PVlzdCYmZS5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09WXN0P2UuY3JlYXRlRWxlbWVudCh0KTplLmNyZWF0ZUVsZW1lbnROUyhuLHQpfX1mdW5jdGlvbiBac3QodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gSnN0KHQpe3ZhciBlPSRzdCh0KTtyZXR1cm4oZS5sb2NhbD9ac3Q6S3N0KShlKX1mdW5jdGlvbiBRc3QoKXt9ZnVuY3Rpb24gdGx0KHQpe3JldHVybiBudWxsPT10P1FzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IodCl9fWZ1bmN0aW9uIGVsdCgpe3JldHVybltdfWZ1bmN0aW9uIG5sdCh0KXtyZXR1cm4gbnVsbD09dD9lbHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKHQpfX1mdW5jdGlvbiBpbHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyh0KX19ZnVuY3Rpb24gcmx0KHQpe3JldHVybiBuZXcgQXJyYXkodC5sZW5ndGgpfWZ1bmN0aW9uIG9sdCh0LGUpe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189ZX1mdW5jdGlvbiBhbHQodCxlLG4saSxyLG8pe2Zvcih2YXIgYSxzPTAsbD1lLmxlbmd0aCxjPW8ubGVuZ3RoO3M8YzsrK3MpKGE9ZVtzXSk/KGEuX19kYXRhX189b1tzXSxpW3NdPWEpOm5bc109bmV3IG9sdCh0LG9bc10pO2Zvcig7czxsOysrcykoYT1lW3NdKSYmKHJbc109YSl9ZnVuY3Rpb24gc2x0KHQsZSxuLGkscixvLGEpe3ZhciBzLGwsYyx1PXt9LGg9ZS5sZW5ndGgsZD1vLmxlbmd0aCxwPW5ldyBBcnJheShoKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJihwW3NdPWM9IiQiK2EuY2FsbChsLGwuX19kYXRhX18scyxlKSxjIGluIHU/cltzXT1sOnVbY109bCk7Zm9yKHM9MDtzPGQ7KytzKShsPXVbYz0iJCIrYS5jYWxsKHQsb1tzXSxzLG8pXSk/KGlbc109bCxsLl9fZGF0YV9fPW9bc10sdVtjXT1udWxsKTpuW3NdPW5ldyBvbHQodCxvW3NdKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJnVbcFtzXV09PT1sJiYocltzXT1sKX1mdW5jdGlvbiBsbHQodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gY2x0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiB1bHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBobHQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUpfX1mdW5jdGlvbiBkbHQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlKX19ZnVuY3Rpb24gcGx0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KTp0aGlzLnNldEF0dHJpYnV0ZSh0LG4pfX1mdW5jdGlvbiBmbHQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxuKX19ZnVuY3Rpb24gbWx0KHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBnbHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19ZnVuY3Rpb24gX2x0KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsZSxuKX19ZnVuY3Rpb24geWx0KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1pP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGksbil9fWZ1bmN0aW9uIHZsdCh0LGUpe3JldHVybiB0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoZSl8fG1sdCh0KS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShlKX1mdW5jdGlvbiBibHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19fWZ1bmN0aW9uIHhsdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbdF09ZX19ZnVuY3Rpb24gd2x0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj9kZWxldGUgdGhpc1t0XTp0aGlzW3RdPW59fWZ1bmN0aW9uIFNsdCh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVuY3Rpb24gTWx0KHQpe3JldHVybiB0LmNsYXNzTGlzdHx8bmV3IEVsdCh0KX1mdW5jdGlvbiBFbHQodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPVNsdCh0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfWZ1bmN0aW9uIFRsdCh0LGUpe2Zvcih2YXIgbj1NbHQodCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLmFkZChlW2ldKX1mdW5jdGlvbiBDbHQodCxlKXtmb3IodmFyIG49TWx0KHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5yZW1vdmUoZVtpXSl9ZnVuY3Rpb24gQWx0KHQpe3JldHVybiBmdW5jdGlvbigpe1RsdCh0aGlzLHQpfX1mdW5jdGlvbiBrbHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7Q2x0KHRoaXMsdCl9fWZ1bmN0aW9uIExsdCh0LGUpe3JldHVybiBmdW5jdGlvbigpeyhlLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9UbHQ6Q2x0KSh0aGlzLHQpfX1mdW5jdGlvbiBQbHQoKXt0aGlzLnRleHRDb250ZW50PSIifWZ1bmN0aW9uIE5sdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fWZ1bmN0aW9uIElsdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gUmx0KCl7dGhpcy5pbm5lckhUTUw9IiJ9ZnVuY3Rpb24gT2x0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9fWZ1bmN0aW9uIHpsdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIERsdCgpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBCbHQoKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBIbHQoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBGbHQoKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiBWbHQoKXt2YXIgdD10aGlzLmNsb25lTm9kZSghMSksZT10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGU/ZS5pbnNlcnRCZWZvcmUodCx0aGlzLm5leHRTaWJsaW5nKTp0fWZ1bmN0aW9uIFVsdCgpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCEwKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9b2x0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6b2x0LGFwcGVuZENoaWxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsZSl9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHQpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbCh0KX19LEVsdC5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt0aGlzLl9uYW1lcy5pbmRleE9mKHQpPDAmJih0aGlzLl9uYW1lcy5wdXNoKHQpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9uYW1lcy5pbmRleE9mKHQpO2U+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UoZSwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciBqbHQ9e30sR2x0PW51bGw7ZnVuY3Rpb24gV2x0KHQsZSxuKXtyZXR1cm4gdD1xbHQodCxlLG4pLGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVsYXRlZFRhcmdldDtuJiYobj09PXRoaXN8fDgmbi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBxbHQodCxlLG4pe3JldHVybiBmdW5jdGlvbihpKXt2YXIgcj1HbHQ7R2x0PWk7dHJ5e3QuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxuKX1maW5hbGx5e0dsdD1yfX19ZnVuY3Rpb24gWWx0KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihlPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOmV9fSkpfWZ1bmN0aW9uIFhsdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fb247aWYoZSl7Zm9yKHZhciBuLGk9MCxyPS0xLG89ZS5sZW5ndGg7aTxvOysraSluPWVbaV0sdC50eXBlJiZuLnR5cGUhPT10LnR5cGV8fG4ubmFtZSE9PXQubmFtZT9lWysrcl09bjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobi50eXBlLG4ubGlzdGVuZXIsbi5jYXB0dXJlKTsrK3I/ZS5sZW5ndGg9cjpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gJGx0KHQsZSxuKXt2YXIgaT1qbHQuaGFzT3duUHJvcGVydHkodC50eXBlKT9XbHQ6cWx0O3JldHVybiBmdW5jdGlvbihyLG8sYSl7dmFyIHMsbD10aGlzLl9fb24sYz1pKGUsbyxhKTtpZihsKWZvcih2YXIgdT0wLGg9bC5sZW5ndGg7dTxoOysrdSlpZigocz1sW3VdKS50eXBlPT09dC50eXBlJiZzLm5hbWU9PT10Lm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcixzLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcj1jLHMuY2FwdHVyZT1uKSx2b2lkKHMudmFsdWU9ZSk7dGhpcy5hZGRFdmVudExpc3RlbmVyKHQudHlwZSxjLG4pLHM9e3R5cGU6dC50eXBlLG5hbWU6dC5uYW1lLHZhbHVlOmUsbGlzdGVuZXI6YyxjYXB0dXJlOm59LGw/bC5wdXNoKHMpOnRoaXMuX19vbj1bc119fWZ1bmN0aW9uIEtsdCh0LGUsbil7dmFyIGk9bWx0KHQpLHI9aS5DdXN0b21FdmVudDsiZnVuY3Rpb24iPT10eXBlb2Ygcj9yPW5ldyByKGUsbik6KHI9aS5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxuPyhyLmluaXRFdmVudChlLG4uYnViYmxlcyxuLmNhbmNlbGFibGUpLHIuZGV0YWlsPW4uZGV0YWlsKTpyLmluaXRFdmVudChlLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KHIpfWZ1bmN0aW9uIFpsdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBLbHQodGhpcyx0LGUpfX1mdW5jdGlvbiBKbHQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gS2x0KHRoaXMsdCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJigib25tb3VzZWVudGVyImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8KGpsdD17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7dmFyIFFsdD1bbnVsbF07ZnVuY3Rpb24gdGN0KHQsZSl7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1lfWZ1bmN0aW9uIGVjdCgpe3JldHVybiBuZXcgdGN0KFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sUWx0KX1mdW5jdGlvbiBuY3QodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P25ldyB0Y3QoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB0Y3QoW1t0XV0sUWx0KX1mdW5jdGlvbiBpY3QoKXtmb3IodmFyIHQsZT1HbHQ7dD1lLnNvdXJjZUV2ZW50OyllPXQ7cmV0dXJuIGV9ZnVuY3Rpb24gcmN0KHQsZSl7dmFyIG49dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIGk9bi5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBpLng9ZS5jbGllbnRYLGkueT1lLmNsaWVudFksWyhpPWkubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxpLnldfXZhciByPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW2UuY2xpZW50WC1yLmxlZnQtdC5jbGllbnRMZWZ0LGUuY2xpZW50WS1yLnRvcC10LmNsaWVudFRvcF19ZnVuY3Rpb24gb2N0KHQpe3ZhciBlPWljdCgpO3JldHVybiBlLmNoYW5nZWRUb3VjaGVzJiYoZT1lLmNoYW5nZWRUb3VjaGVzWzBdKSxyY3QodCxlKX1mdW5jdGlvbiBhY3QodCxlLG4pe2FyZ3VtZW50cy5sZW5ndGg8MyYmKG49ZSxlPWljdCgpLmNoYW5nZWRUb3VjaGVzKTtmb3IodmFyIGkscj0wLG89ZT9lLmxlbmd0aDowO3I8bzsrK3IpaWYoKGk9ZVtyXSkuaWRlbnRpZmllcj09PW4pcmV0dXJuIHJjdCh0LGkpO3JldHVybiBudWxsfWZ1bmN0aW9uIHNjdCgpe0dsdC5wcmV2ZW50RGVmYXVsdCgpLEdsdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBsY3QodCl7dmFyIGU9dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1uY3QodCkub24oImRyYWdzdGFydC5kcmFnIixzY3QsITApOyJvbnNlbGVjdHN0YXJ0ImluIGU/bi5vbigic2VsZWN0c3RhcnQuZHJhZyIsc2N0LCEwKTooZS5fX25vc2VsZWN0PWUuc3R5bGUuTW96VXNlclNlbGVjdCxlLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiKX1mdW5jdGlvbiBjY3QodCxlKXt2YXIgbj10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxpPW5jdCh0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLG51bGwpO2UmJihpLm9uKCJjbGljay5kcmFnIixzY3QsITApLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aS5vbigiY2xpY2suZHJhZyIsbnVsbCl9KSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gbj9pLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKToobi5zdHlsZS5Nb3pVc2VyU2VsZWN0PW4uX19ub3NlbGVjdCxkZWxldGUgbi5fX25vc2VsZWN0KX1mdW5jdGlvbiB1Y3QodCxlLG4pe3QucHJvdG90eXBlPWUucHJvdG90eXBlPW4sbi5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIGhjdCh0LGUpe3ZhciBuPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpO2Zvcih2YXIgaSBpbiBlKW5baV09ZVtpXTtyZXR1cm4gbn1mdW5jdGlvbiBkY3QoKXt9dGN0LnByb3RvdHlwZT1lY3QucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp0Y3Qsc2VsZWN0OmZ1bmN0aW9uIHBjdCh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9dGx0KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGEscz1lW3JdLGw9cy5sZW5ndGgsYz1pW3JdPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkobz1zW3VdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyx1LHMpKSYmKCJfX2RhdGFfXyJpbiBvJiYoYS5fX2RhdGFfXz1vLl9fZGF0YV9fKSxjW3VdPWEpO3JldHVybiBuZXcgdGN0KGksdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBmY3QodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PW5sdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9W10scj1bXSxvPTA7bzxuOysrbylmb3IodmFyIGEscz1lW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKGE9c1tjXSkmJihpLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHMpKSxyLnB1c2goYSkpO3JldHVybiBuZXcgdGN0KGkscil9LGZpbHRlcjpmdW5jdGlvbiBtY3QodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWlsdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgdGN0KGksdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gZ2N0KHQsZSl7aWYoIXQpcmV0dXJuIGY9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSx1PS0xLHRoaXMuZWFjaCgoZnVuY3Rpb24odCl7ZlsrK3VdPXR9KSksZjt2YXIgbj1lP3NsdDphbHQsaT10aGlzLl9wYXJlbnRzLHI9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciBhPXIubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9bmV3IEFycmF5KGEpLGM9bmV3IEFycmF5KGEpLHU9MDt1PGE7Kyt1KXt2YXIgaD1pW3VdLGQ9clt1XSxwPWQubGVuZ3RoLGY9dC5jYWxsKGgsaCYmaC5fX2RhdGFfXyx1LGkpLG09Zi5sZW5ndGgsZz1sW3VdPW5ldyBBcnJheShtKSxfPXNbdV09bmV3IEFycmF5KG0pO24oaCxkLGcsXyxjW3VdPW5ldyBBcnJheShwKSxmLGUpO2Zvcih2YXIgeSx2LGI9MCx4PTA7YjxtOysrYilpZih5PWdbYl0pe2ZvcihiPj14JiYoeD1iKzEpOyEodj1fW3hdKSYmKyt4PG07KTt5Ll9uZXh0PXZ8fG51bGx9fXJldHVybihzPW5ldyB0Y3QocyxpKSkuX2VudGVyPWwscy5fZXhpdD1jLHN9LGVudGVyOmZ1bmN0aW9uIF9jdCgpe3JldHVybiBuZXcgdGN0KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKHJsdCksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24geWN0KCl7cmV0dXJuIG5ldyB0Y3QodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChybHQpLHRoaXMuX3BhcmVudHMpfSxqb2luOmZ1bmN0aW9uIHZjdCh0LGUsbil7dmFyIGk9dGhpcy5lbnRlcigpLHI9dGhpcyxvPXRoaXMuZXhpdCgpO3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoaSk6aS5hcHBlbmQodCsiIiksbnVsbCE9ZSYmKHI9ZShyKSksbnVsbD09bj9vLnJlbW92ZSgpOm4obyksaSYmcj9pLm1lcmdlKHIpLm9yZGVyKCk6cn0sbWVyZ2U6ZnVuY3Rpb24gYmN0KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IHRjdChvLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbiB4Y3QoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9LTEsbj10Lmxlbmd0aDsrK2U8bjspZm9yKHZhciBpLHI9dFtlXSxvPXIubGVuZ3RoLTEsYT1yW29dOy0tbz49MDspKGk9cltvXSkmJihhJiY0XmkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSkmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaSxhKSxhPWkpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uIHdjdCh0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIGUmJm4/dChlLl9fZGF0YV9fLG4uX19kYXRhX18pOiFlLSFufXR8fCh0PWxsdCk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGkpLG89MDtvPGk7KytvKXtmb3IodmFyIGEscz1uW29dLGw9cy5sZW5ndGgsYz1yW29dPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmKGNbdV09YSk7Yy5zb3J0KGUpfXJldHVybiBuZXcgdGN0KHIsdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbiBTY3QoKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIE1jdCgpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksZT0tMTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3RbKytlXT10aGlzfSkpLHR9LG5vZGU6ZnVuY3Rpb24gRWN0KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPTAsbj10Lmxlbmd0aDtlPG47KytlKWZvcih2YXIgaT10W2VdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3Ipe3ZhciBhPWlbcl07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiBUY3QoKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9LGVtcHR5OmZ1bmN0aW9uIENjdCgpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbiBBY3QodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWZvcih2YXIgcixvPWVbbl0sYT0wLHM9by5sZW5ndGg7YTxzOysrYSkocj1vW2FdKSYmdC5jYWxsKHIsci5fX2RhdGFfXyxhLG8pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uIGtjdCh0LGUpe3ZhciBuPSRzdCh0KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBpPXRoaXMubm9kZSgpO3JldHVybiBuLmxvY2FsP2kuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTppLmdldEF0dHJpYnV0ZShuKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP24ubG9jYWw/dWx0OmNsdDoiZnVuY3Rpb24iPT10eXBlb2YgZT9uLmxvY2FsP2ZsdDpwbHQ6bi5sb2NhbD9kbHQ6aGx0KShuLGUpKX0sc3R5bGU6ZnVuY3Rpb24gTGN0KHQsZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9nbHQ6ImZ1bmN0aW9uIj09dHlwZW9mIGU/eWx0Ol9sdCkodCxlLG51bGw9PW4/IiI6bikpOnZsdCh0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24gUGN0KHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/Ymx0OiJmdW5jdGlvbiI9PXR5cGVvZiBlP3dsdDp4bHQpKHQsZSkpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uIE5jdCh0LGUpe3ZhciBuPVNsdCh0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaT1NbHQodGhpcy5ub2RlKCkpLHI9LTEsbz1uLmxlbmd0aDsrK3I8bzspaWYoIWkuY29udGFpbnMobltyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/TGx0OmU/QWx0OmtsdCkobixlKSl9LHRleHQ6ZnVuY3Rpb24gSWN0KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P1BsdDooImZ1bmN0aW9uIj09dHlwZW9mIHQ/SWx0Ok5sdCkodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uIFJjdCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9SbHQ6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P3psdDpPbHQpKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIE9jdCgpe3JldHVybiB0aGlzLmVhY2goRGx0KX0sbG93ZXI6ZnVuY3Rpb24gemN0KCl7cmV0dXJuIHRoaXMuZWFjaChCbHQpfSxhcHBlbmQ6ZnVuY3Rpb24gRGN0KHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SnN0KHQpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KSl9LGluc2VydDpmdW5jdGlvbiBCY3QodCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkpzdCh0KSxpPW51bGw9PWU/SGx0OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6dGx0KGUpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUobi5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSkpfSxyZW1vdmU6ZnVuY3Rpb24gSGN0KCl7cmV0dXJuIHRoaXMuZWFjaChGbHQpfSxjbG9uZTpmdW5jdGlvbiBGY3QodCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/VWx0OlZsdCl9LGRhdHVtOmZ1bmN0aW9uIFZjdCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmZ1bmN0aW9uIFVjdCh0LGUsbil7dmFyIGkscixvPVlsdCh0KyIiKSxhPW8ubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHM9ZT8kbHQ6WGx0LG51bGw9PW4mJihuPSExKSxpPTA7aTxhOysraSl0aGlzLmVhY2gocyhvW2ldLGUsbikpO3JldHVybiB0aGlzfXZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocylmb3IodmFyIGwsYz0wLHU9cy5sZW5ndGg7Yzx1OysrYylmb3IoaT0wLGw9c1tjXTtpPGE7KytpKWlmKChyPW9baV0pLnR5cGU9PT1sLnR5cGUmJnIubmFtZT09PWwubmFtZSlyZXR1cm4gbC52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24gamN0KHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/Smx0OlpsdCkodCxlKSl9fTt2YXIgR2N0PS43LFdjdD0xL0djdCxxY3Q9IlxccyooWystXT9cXGQrKVxccyoiLFljdD0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIixYY3Q9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLCRjdD0vXiMoWzAtOWEtZl17Myw4fSkkLyxLY3Q9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW3FjdCxxY3QscWN0XSsiXFwpJCIpLFpjdD1uZXcgUmVnRXhwKCJecmdiXFwoIitbWGN0LFhjdCxYY3RdKyJcXCkkIiksSmN0PW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbcWN0LHFjdCxxY3QsWWN0XSsiXFwpJCIpLFFjdD1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW1hjdCxYY3QsWGN0LFljdF0rIlxcKSQiKSx0dXQ9bmV3IFJlZ0V4cCgiXmhzbFxcKCIrW1ljdCxYY3QsWGN0XSsiXFwpJCIpLGV1dD1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW1ljdCxYY3QsWGN0LFljdF0rIlxcKSQiKSxudXQ9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH07ZnVuY3Rpb24gaXV0KCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gcnV0KCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gb3V0KHQpe3ZhciBlLG47cmV0dXJuIHQ9KHQrIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLChlPSRjdC5leGVjKHQpKT8obj1lWzFdLmxlbmd0aCxlPXBhcnNlSW50KGVbMV0sMTYpLDY9PT1uP2F1dChlKTozPT09bj9uZXcgdXV0KGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoMTUmZSk8PDR8MTUmZSwxKTo4PT09bj9zdXQoZT4+MjQmMjU1LGU+PjE2JjI1NSxlPj44JjI1NSwoMjU1JmUpLzI1NSk6ND09PW4/c3V0KGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9S2N0LmV4ZWModCkpP25ldyB1dXQoZVsxXSxlWzJdLGVbM10sMSk6KGU9WmN0LmV4ZWModCkpP25ldyB1dXQoMjU1KmVbMV0vMTAwLDI1NSplWzJdLzEwMCwyNTUqZVszXS8xMDAsMSk6KGU9SmN0LmV4ZWModCkpP3N1dChlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1RY3QuZXhlYyh0KSk/c3V0KDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLGVbNF0pOihlPXR1dC5leGVjKHQpKT9mdXQoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCwxKTooZT1ldXQuZXhlYyh0KSk/ZnV0KGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6bnV0Lmhhc093blByb3BlcnR5KHQpP2F1dChudXRbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyB1dXQoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBhdXQodCl7cmV0dXJuIG5ldyB1dXQodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIHN1dCh0LGUsbixpKXtyZXR1cm4gaTw9MCYmKHQ9ZT1uPU5hTiksbmV3IHV1dCh0LGUsbixpKX1mdW5jdGlvbiBsdXQodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBkY3R8fCh0PW91dCh0KSksdD9uZXcgdXV0KCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyB1dXR9ZnVuY3Rpb24gY3V0KHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9sdXQodCk6bmV3IHV1dCh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gdXV0KHQsZSxuLGkpe3RoaXMucj0rdCx0aGlzLmc9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBodXQoKXtyZXR1cm4iIyIrcHV0KHRoaXMucikrcHV0KHRoaXMuZykrcHV0KHRoaXMuYil9ZnVuY3Rpb24gZHV0KCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8icmdiKCI6InJnYmEoIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuZyl8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5iKXx8MCkpKygxPT09dD8iKSI6IiwgIit0KyIpIil9ZnVuY3Rpb24gcHV0KHQpe3JldHVybigodD1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHQpfHwwKSkpPDE2PyIwIjoiIikrdC50b1N0cmluZygxNil9ZnVuY3Rpb24gZnV0KHQsZSxuLGkpe3JldHVybiBpPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgZ3V0KHQsZSxuLGkpfWZ1bmN0aW9uIG11dCh0KXtpZih0IGluc3RhbmNlb2YgZ3V0KXJldHVybiBuZXcgZ3V0KHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIGRjdHx8KHQ9b3V0KHQpKSwhdClyZXR1cm4gbmV3IGd1dDtpZih0IGluc3RhbmNlb2YgZ3V0KXJldHVybiB0O3ZhciBlPSh0PXQucmdiKCkpLnIvMjU1LG49dC5nLzI1NSxpPXQuYi8yNTUscj1NYXRoLm1pbihlLG4saSksbz1NYXRoLm1heChlLG4saSksYT1OYU4scz1vLXIsbD0obytyKS8yO3JldHVybiBzPyhhPWU9PT1vPyhuLWkpL3MrNioobjxpKTpuPT09bz8oaS1lKS9zKzI6KGUtbikvcys0LHMvPWw8LjU/bytyOjItby1yLGEqPTYwKTpzPWw+MCYmbDwxPzA6YSxuZXcgZ3V0KGEscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gZ3V0KHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBfdXQodCxlLG4pe3JldHVybiAyNTUqKHQ8NjA/ZSsobi1lKSp0LzYwOnQ8MTgwP246dDwyNDA/ZSsobi1lKSooMjQwLXQpLzYwOmUpfWZ1bmN0aW9uIHl1dCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gdnV0KHQsZSl7dmFyIG49ZS10O3JldHVybiBuPyhmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0K24qZX19KSh0LG4pOnl1dChpc05hTih0KT9lOnQpfXVjdChkY3Qsb3V0LHtjb3B5OmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsdCl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4Oml1dCxmb3JtYXRIZXg6aXV0LGZvcm1hdEhzbDpmdW5jdGlvbiBidXQoKXtyZXR1cm4gbXV0KHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6cnV0LHRvU3RyaW5nOnJ1dH0pLHVjdCh1dXQsY3V0LGhjdChkY3Qse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/V2N0Ok1hdGgucG93KFdjdCx0KSxuZXcgdXV0KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P0djdDpNYXRoLnBvdyhHY3QsdCksbmV3IHV1dCh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4Omh1dCxmb3JtYXRIZXg6aHV0LGZvcm1hdFJnYjpkdXQsdG9TdHJpbmc6ZHV0fSkpLHVjdChndXQsKGZ1bmN0aW9uIHh1dCh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/bXV0KHQpOm5ldyBndXQodCxlLG4sbnVsbD09aT8xOmkpfSksaGN0KGRjdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9XY3Q6TWF0aC5wb3coV2N0LHQpLG5ldyBndXQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9HY3Q6TWF0aC5wb3coR2N0LHQpLG5ldyBndXQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyB1dXQoX3V0KHQ+PTI0MD90LTI0MDp0KzEyMCxyLGkpLF91dCh0LHIsaSksX3V0KHQ8MTIwP3QrMjQwOnQtMTIwLHIsaSksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGZvcm1hdEhzbDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PSh0PWlzTmFOKHQpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSk/ImhzbCgiOiJoc2xhKCIpKyh0aGlzLmh8fDApKyIsICIrMTAwKih0aGlzLnN8fDApKyIlLCAiKzEwMCoodGhpcy5sfHwwKSsiJSIrKDE9PT10PyIpIjoiLCAiK3QrIikiKX19KSk7dmFyIHd1dD0oZnVuY3Rpb24gdChlKXt2YXIgbj0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gMT09KHQ9K3QpP3Z1dDpmdW5jdGlvbihlLG4pe3JldHVybiBuLWU/KGZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiB0PU1hdGgucG93KHQsbiksZT1NYXRoLnBvdyhlLG4pLXQsbj0xL24sZnVuY3Rpb24oaSl7cmV0dXJuIE1hdGgucG93KHQraSplLG4pfX0pKGUsbix0KTp5dXQoaXNOYU4oZSk/bjplKX19KShlKTtmdW5jdGlvbiByKHQsZSl7dmFyIGk9bigodD1jdXQodCkpLnIsKGU9Y3V0KGUpKS5yKSxyPW4odC5nLGUuZyksbz1uKHQuYixlLmIpLGE9dnV0KHQub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5yPWkoZSksdC5nPXIoZSksdC5iPW8oZSksdC5vcGFjaXR5PWEoZSksdCsiIn19cmV0dXJuIHIuZ2FtbWE9dCxyfSkoMSk7ZnVuY3Rpb24gU3V0KHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihuKXtyZXR1cm4gdCooMS1uKStlKm59fXZhciBNdXQ9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLEV1dD1uZXcgUmVnRXhwKE11dC5zb3VyY2UsImciKTtmdW5jdGlvbiBUdXQodCxlKXt2YXIgbixpLHIsbz1NdXQubGFzdEluZGV4PUV1dC5sYXN0SW5kZXg9MCxhPS0xLHM9W10sbD1bXTtmb3IodCs9IiIsZSs9IiI7KG49TXV0LmV4ZWModCkpJiYoaT1FdXQuZXhlYyhlKSk7KShyPWkuaW5kZXgpPm8mJihyPWUuc2xpY2UobyxyKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLChuPW5bMF0pPT09KGk9aVswXSk/c1thXT9zW2FdKz1pOnNbKythXT1pOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OlN1dChuLGkpfSkpLG89RXV0Lmxhc3RJbmRleDtyZXR1cm4gbzxlLmxlbmd0aCYmKHI9ZS5zbGljZShvKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLHMubGVuZ3RoPDI/bFswXT8oZnVuY3Rpb24gYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSkrIiJ9fSkobFswXS54KTooZnVuY3Rpb24gdSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KShlKTooZT1sLmxlbmd0aCxmdW5jdGlvbih0KXtmb3IodmFyIG4saT0wO2k8ZTsrK2kpc1sobj1sW2ldKS5pXT1uLngodCk7cmV0dXJuIHMuam9pbigiIil9KX12YXIgQ3V0LEF1dCxrdXQsTHV0LFB1dD0xODAvTWF0aC5QSSxOdXQ9e3RyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX07ZnVuY3Rpb24gSXV0KHQsZSxuLGkscixvKXt2YXIgYSxzLGw7cmV0dXJuKGE9TWF0aC5zcXJ0KHQqdCtlKmUpKSYmKHQvPWEsZS89YSksKGw9dCpuK2UqaSkmJihuLT10KmwsaS09ZSpsKSwocz1NYXRoLnNxcnQobipuK2kqaSkpJiYobi89cyxpLz1zLGwvPXMpLHQqaTxlKm4mJih0PS10LGU9LWUsbD0tbCxhPS1hKSx7dHJhbnNsYXRlWDpyLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMihlLHQpKlB1dCxza2V3WDpNYXRoLmF0YW4obCkqUHV0LHNjYWxlWDphLHNjYWxlWTpzfX1mdW5jdGlvbiBSdXQodCxlLG4saSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKG8sYSl7dmFyIHM9W10sbD1bXTtyZXR1cm4gbz10KG8pLGE9dChhKSwoZnVuY3Rpb24gYyh0LGkscixvLGEscyl7aWYodCE9PXJ8fGkhPT1vKXt2YXIgbD1hLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsZSxudWxsLG4pO3MucHVzaCh7aTpsLTQseDpTdXQodCxyKX0se2k6bC0yLHg6U3V0KGksbyl9KX1lbHNlKHJ8fG8pJiZhLnB1c2goInRyYW5zbGF0ZSgiK3IrZStvK24pfSkoby50cmFuc2xhdGVYLG8udHJhbnNsYXRlWSxhLnRyYW5zbGF0ZVgsYS50cmFuc2xhdGVZLHMsbCksKGZ1bmN0aW9uIHUodCxlLG4sbyl7dCE9PWU/KHQtZT4xODA/ZSs9MzYwOmUtdD4xODAmJih0Kz0zNjApLG8ucHVzaCh7aTpuLnB1c2gocihuKSsicm90YXRlKCIsbnVsbCxpKS0yLHg6U3V0KHQsZSl9KSk6ZSYmbi5wdXNoKHIobikrInJvdGF0ZSgiK2UraSl9KShvLnJvdGF0ZSxhLnJvdGF0ZSxzLGwpLChmdW5jdGlvbiBoKHQsZSxuLG8pe3QhPT1lP28ucHVzaCh7aTpuLnB1c2gocihuKSsic2tld1goIixudWxsLGkpLTIseDpTdXQodCxlKX0pOmUmJm4ucHVzaChyKG4pKyJza2V3WCgiK2UraSl9KShvLnNrZXdYLGEuc2tld1gscyxsKSwoZnVuY3Rpb24gZCh0LGUsbixpLG8sYSl7aWYodCE9PW58fGUhPT1pKXt2YXIgcz1vLnB1c2gocihvKSsic2NhbGUoIixudWxsLCIsIixudWxsLCIpIik7YS5wdXNoKHtpOnMtNCx4OlN1dCh0LG4pfSx7aTpzLTIseDpTdXQoZSxpKX0pfWVsc2UgMT09PW4mJjE9PT1pfHxvLnB1c2gocihvKSsic2NhbGUoIituKyIsIitpKyIpIil9KShvLnNjYWxlWCxvLnNjYWxlWSxhLnNjYWxlWCxhLnNjYWxlWSxzLGwpLG89YT1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPS0xLGk9bC5sZW5ndGg7KytuPGk7KXNbKGU9bFtuXSkuaV09ZS54KHQpO3JldHVybiBzLmpvaW4oIiIpfX19dmFyIE91dD1SdXQoKGZ1bmN0aW9uIHp1dCh0KXtyZXR1cm4ibm9uZSI9PT10P051dDooQ3V0fHwoQ3V0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLEF1dD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsa3V0PWRvY3VtZW50LmRlZmF1bHRWaWV3KSxDdXQuc3R5bGUudHJhbnNmb3JtPXQsdD1rdXQuZ2V0Q29tcHV0ZWRTdHlsZShBdXQuYXBwZW5kQ2hpbGQoQ3V0KSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxBdXQucmVtb3ZlQ2hpbGQoQ3V0KSxJdXQoKyh0PXQuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSlbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0pLCJweCwgIiwicHgpIiwiZGVnKSIpLER1dD1SdXQoKGZ1bmN0aW9uIEJ1dCh0KXtyZXR1cm4gbnVsbD09dD9OdXQ6KEx1dHx8KEx1dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSxMdXQuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLHQpLCh0PUx1dC50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpKT9JdXQoKHQ9dC5tYXRyaXgpLmEsdC5iLHQuYyx0LmQsdC5lLHQuZik6TnV0KX0pLCIsICIsIikiLCIpIiksSHV0PU1hdGguU1FSVDI7ZnVuY3Rpb24gRnV0KHQpe3JldHVybigodD1NYXRoLmV4cCh0KSkrMS90KS8yfWZ1bmN0aW9uIFZ1dCh0LGUpe3ZhciBuLGkscj10WzBdLG89dFsxXSxhPXRbMl0scz1lWzJdLGw9ZVswXS1yLGM9ZVsxXS1vLHU9bCpsK2MqYztpZih1PDFlLTEyKWk9TWF0aC5sb2cocy9hKS9IdXQsbj1mdW5jdGlvbih0KXtyZXR1cm5bcit0Kmwsbyt0KmMsYSpNYXRoLmV4cChIdXQqdCppKV19O2Vsc2V7dmFyIGg9TWF0aC5zcXJ0KHUpLGQ9KHMqcy1hKmErNCp1KS8oMiphKjIqaCkscD0ocypzLWEqYS00KnUpLygyKnMqMipoKSxmPU1hdGgubG9nKE1hdGguc3FydChkKmQrMSktZCksbT1NYXRoLmxvZyhNYXRoLnNxcnQocCpwKzEpLXApO2k9KG0tZikvSHV0LG49ZnVuY3Rpb24odCl7dmFyIGU9dCppLG49RnV0KGYpLHM9YS8oMipoKSoobiooZnVuY3Rpb24gdSh0KXtyZXR1cm4oKHQ9TWF0aC5leHAoMip0KSktMSkvKHQrMSl9KShIdXQqZStmKS0oZnVuY3Rpb24gZCh0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpLTEvdCkvMn0pKGYpKTtyZXR1cm5bcitzKmwsbytzKmMsYSpuL0Z1dChIdXQqZStmKV19fXJldHVybiBuLmR1cmF0aW9uPTFlMyppLG59dmFyIFV1dCxqdXQsR3V0PTAsV3V0PTAscXV0PTAsWXV0PTAsWHV0PTAsJHV0PTAsS3V0PSJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLFp1dD0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KHQsMTcpfTtmdW5jdGlvbiBKdXQoKXtyZXR1cm4gWHV0fHwoWnV0KFF1dCksWHV0PUt1dC5ub3coKSskdXQpfWZ1bmN0aW9uIFF1dCgpe1h1dD0wfWZ1bmN0aW9uIHRodCgpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24gZWh0KHQsZSxuKXt2YXIgaT1uZXcgdGh0O3JldHVybiBpLnJlc3RhcnQodCxlLG4pLGl9ZnVuY3Rpb24gbmh0KCl7WHV0PShZdXQ9S3V0Lm5vdygpKSskdXQsR3V0PVd1dD0wO3RyeXshKGZ1bmN0aW9uIHQoKXtKdXQoKSwrK0d1dDtmb3IodmFyIHQsZT1VdXQ7ZTspKHQ9WHV0LWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS1HdXR9KSgpfWZpbmFsbHl7R3V0PTAsKGZ1bmN0aW9uIGUoKXtmb3IodmFyIHQsZSxuPVV1dCxpPTEvMDtuOyluLl9jYWxsPyhpPm4uX3RpbWUmJihpPW4uX3RpbWUpLHQ9bixuPW4uX25leHQpOihlPW4uX25leHQsbi5fbmV4dD1udWxsLG49dD90Ll9uZXh0PWU6VXV0PWUpO2p1dD10LHJodChpKX0pKCksWHV0PTB9fWZ1bmN0aW9uIGlodCgpe3ZhciB0PUt1dC5ub3coKSxlPXQtWXV0O2U+MWUzJiYoJHV0LT1lLFl1dD10KX1mdW5jdGlvbiByaHQodCl7R3V0fHwoV3V0JiYoV3V0PWNsZWFyVGltZW91dChXdXQpKSx0LVh1dD4yND8odDwxLzAmJihXdXQ9c2V0VGltZW91dChuaHQsdC1LdXQubm93KCktJHV0KSkscXV0JiYocXV0PWNsZWFySW50ZXJ2YWwocXV0KSkpOihxdXR8fChZdXQ9S3V0Lm5vdygpLHF1dD1zZXRJbnRlcnZhbChpaHQsMWUzKSksR3V0PTEsWnV0KG5odCkpKX1mdW5jdGlvbiBvaHQodCxlLG4pe3ZhciBpPW5ldyB0aHQ7cmV0dXJuIGkucmVzdGFydCgoZnVuY3Rpb24obil7aS5zdG9wKCksdChuK2UpfSksZT1udWxsPT1lPzA6K2UsbiksaX10aHQucHJvdG90eXBlPWVodC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnRodCxyZXN0YXJ0OmZ1bmN0aW9uKHQsZSxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO249KG51bGw9PW4/SnV0KCk6K24pKyhudWxsPT1lPzA6K2UpLHRoaXMuX25leHR8fGp1dD09PXRoaXN8fChqdXQ/anV0Ll9uZXh0PXRoaXM6VXV0PXRoaXMsanV0PXRoaXMpLHRoaXMuX2NhbGw9dCx0aGlzLl90aW1lPW4scmh0KCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLHJodCgpKX19O3ZhciBhaHQ9VXN0KCJzdGFydCIsImVuZCIsImNhbmNlbCIsImludGVycnVwdCIpLHNodD1bXTtmdW5jdGlvbiBsaHQodCxlLG4saSxyLG8pe3ZhciBhPXQuX190cmFuc2l0aW9uO2lmKGEpe2lmKG4gaW4gYSlyZXR1cm59ZWxzZSB0Ll9fdHJhbnNpdGlvbj17fTshKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBpLHI9dC5fX3RyYW5zaXRpb247ZnVuY3Rpb24gbyhsKXt2YXIgYyx1LGgsZDtpZigxIT09bi5zdGF0ZSlyZXR1cm4gcygpO2ZvcihjIGluIHIpaWYoKGQ9cltjXSkubmFtZT09PW4ubmFtZSl7aWYoMz09PWQuc3RhdGUpcmV0dXJuIG9odChvKTs0PT09ZC5zdGF0ZT8oZC5zdGF0ZT02LGQudGltZXIuc3RvcCgpLGQub24uY2FsbCgiaW50ZXJydXB0Iix0LHQuX19kYXRhX18sZC5pbmRleCxkLmdyb3VwKSxkZWxldGUgcltjXSk6K2M8ZSYmKGQuc3RhdGU9NixkLnRpbWVyLnN0b3AoKSxkLm9uLmNhbGwoImNhbmNlbCIsdCx0Ll9fZGF0YV9fLGQuaW5kZXgsZC5ncm91cCksZGVsZXRlIHJbY10pfWlmKG9odCgoZnVuY3Rpb24oKXszPT09bi5zdGF0ZSYmKG4uc3RhdGU9NCxuLnRpbWVyLnJlc3RhcnQoYSxuLmRlbGF5LG4udGltZSksYShsKSl9KSksbi5zdGF0ZT0yLG4ub24uY2FsbCgic3RhcnQiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLDI9PT1uLnN0YXRlKXtmb3Iobi5zdGF0ZT0zLGk9bmV3IEFycmF5KGg9bi50d2Vlbi5sZW5ndGgpLGM9MCx1PS0xO2M8aDsrK2MpKGQ9bi50d2VlbltjXS52YWx1ZS5jYWxsKHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApKSYmKGlbKyt1XT1kKTtpLmxlbmd0aD11KzF9fWZ1bmN0aW9uIGEoZSl7Zm9yKHZhciByPWU8bi5kdXJhdGlvbj9uLmVhc2UuY2FsbChudWxsLGUvbi5kdXJhdGlvbik6KG4udGltZXIucmVzdGFydChzKSxuLnN0YXRlPTUsMSksbz0tMSxhPWkubGVuZ3RoOysrbzxhOylpW29dLmNhbGwodCxyKTs1PT09bi5zdGF0ZSYmKG4ub24uY2FsbCgiZW5kIix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxzKCkpfWZ1bmN0aW9uIHMoKXtmb3IodmFyIGkgaW4gbi5zdGF0ZT02LG4udGltZXIuc3RvcCgpLGRlbGV0ZSByW2VdLHIpcmV0dXJuO2RlbGV0ZSB0Ll9fdHJhbnNpdGlvbn1yW2VdPW4sbi50aW1lcj1laHQoKGZ1bmN0aW9uIGwodCl7bi5zdGF0ZT0xLG4udGltZXIucmVzdGFydChvLG4uZGVsYXksbi50aW1lKSxuLmRlbGF5PD10JiZvKHQtbi5kZWxheSl9KSwwLG4udGltZSl9KSh0LG4se25hbWU6ZSxpbmRleDppLGdyb3VwOnIsb246YWh0LHR3ZWVuOnNodCx0aW1lOm8udGltZSxkZWxheTpvLmRlbGF5LGR1cmF0aW9uOm8uZHVyYXRpb24sZWFzZTpvLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTowfSl9ZnVuY3Rpb24gY2h0KHQsZSl7dmFyIG49aGh0KHQsZSk7aWYobi5zdGF0ZT4wKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgc2NoZWR1bGVkIik7cmV0dXJuIG59ZnVuY3Rpb24gdWh0KHQsZSl7dmFyIG49aGh0KHQsZSk7aWYobi5zdGF0ZT4zKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZyIpO3JldHVybiBufWZ1bmN0aW9uIGhodCh0LGUpe3ZhciBuPXQuX190cmFuc2l0aW9uO2lmKCFufHwhKG49bltlXSkpdGhyb3cgbmV3IEVycm9yKCJ0cmFuc2l0aW9uIG5vdCBmb3VuZCIpO3JldHVybiBufWZ1bmN0aW9uIGRodCh0LGUpe3ZhciBuLGkscixvPXQuX190cmFuc2l0aW9uLGE9ITA7aWYobyl7Zm9yKHIgaW4gZT1udWxsPT1lP251bGw6ZSsiIixvKShuPW9bcl0pLm5hbWU9PT1lPyhpPW4uc3RhdGU+MiYmbi5zdGF0ZTw1LG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxuLm9uLmNhbGwoaT8iaW50ZXJydXB0IjoiY2FuY2VsIix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxkZWxldGUgb1tyXSk6YT0hMTthJiZkZWxldGUgdC5fX3RyYW5zaXRpb259fWZ1bmN0aW9uIHBodCh0LGUpe3ZhciBuLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9dWh0KHRoaXMsdCksbz1yLnR3ZWVuO2lmKG8hPT1uKWZvcih2YXIgYT0wLHM9KGk9bj1vKS5sZW5ndGg7YTxzOysrYSlpZihpW2FdLm5hbWU9PT1lKXsoaT1pLnNsaWNlKCkpLnNwbGljZShhLDEpO2JyZWFrfXIudHdlZW49aX19ZnVuY3Rpb24gZmh0KHQsZSxuKXt2YXIgaSxyO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz11aHQodGhpcyx0KSxhPW8udHdlZW47aWYoYSE9PWkpe3I9KGk9YSkuc2xpY2UoKTtmb3IodmFyIHM9e25hbWU6ZSx2YWx1ZTpufSxsPTAsYz1yLmxlbmd0aDtsPGM7KytsKWlmKHJbbF0ubmFtZT09PWUpe3JbbF09czticmVha31sPT09YyYmci5wdXNoKHMpfW8udHdlZW49cn19ZnVuY3Rpb24gbWh0KHQsZSxuKXt2YXIgaT10Ll9pZDtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbigpe3ZhciB0PXVodCh0aGlzLGkpOyh0LnZhbHVlfHwodC52YWx1ZT17fSkpW2VdPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpfSkpLGZ1bmN0aW9uKHQpe3JldHVybiBoaHQodCxpKS52YWx1ZVtlXX19ZnVuY3Rpb24gZ2h0KHQsZSl7dmFyIG47cmV0dXJuKCJudW1iZXIiPT10eXBlb2YgZT9TdXQ6ZSBpbnN0YW5jZW9mIG91dD93dXQ6KG49b3V0KGUpKT8oZT1uLHd1dCk6VHV0KSh0LGUpfWZ1bmN0aW9uIF9odCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24geWh0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gdmh0KHQsZSxuKXt2YXIgaSxyLG89bisiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdldEF0dHJpYnV0ZSh0KTtyZXR1cm4gYT09PW8/bnVsbDphPT09aT9yOnI9ZShpPWEsbil9fWZ1bmN0aW9uIGJodCh0LGUsbil7dmFyIGkscixvPW4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19ZnVuY3Rpb24geGh0KHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEscyxsPW4odGhpcyk7aWYobnVsbCE9bClyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZSh0KSk9PT0ocz1sKyIiKT9udWxsOmE9PT1pJiZzPT09cj9vOihyPXMsbz1lKGk9YSxsKSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIHdodCh0LGUsbil7dmFyIGkscixvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhLHMsbD1uKHRoaXMpO2lmKG51bGwhPWwpcmV0dXJuKGE9dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpKT09PShzPWwrIiIpP251bGw6YT09PWkmJnM9PT1yP286KHI9cyxvPWUoaT1hLGwpKTt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIFNodCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUuY2FsbCh0aGlzLG4pKX19ZnVuY3Rpb24gTWh0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUuY2FsbCh0aGlzLG4pKX19ZnVuY3Rpb24gRWh0KHQsZSl7dmFyIG4saTtmdW5jdGlvbiByKCl7dmFyIHI9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHIhPT1pJiYobj0oaT1yKSYmTWh0KHQscikpLG59cmV0dXJuIHIuX3ZhbHVlPWUscn1mdW5jdGlvbiBUaHQodCxlKXt2YXIgbixpO2Z1bmN0aW9uIHIoKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gciE9PWkmJihuPShpPXIpJiZTaHQodCxyKSksbn1yZXR1cm4gci5fdmFsdWU9ZSxyfWZ1bmN0aW9uIENodCh0LGUpe3JldHVybiBmdW5jdGlvbigpe2NodCh0aGlzLHQpLmRlbGF5PStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gQWh0KHQsZSl7cmV0dXJuIGU9K2UsZnVuY3Rpb24oKXtjaHQodGhpcyx0KS5kZWxheT1lfX1mdW5jdGlvbiBraHQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt1aHQodGhpcyx0KS5kdXJhdGlvbj0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIExodCh0LGUpe3JldHVybiBlPStlLGZ1bmN0aW9uKCl7dWh0KHRoaXMsdCkuZHVyYXRpb249ZX19ZnVuY3Rpb24gUGh0KHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3VodCh0aGlzLHQpLmVhc2U9ZX19ZnVuY3Rpb24gTmh0KHQsZSxuKXt2YXIgaSxyLG89KGZ1bmN0aW9uIGEodCl7cmV0dXJuKHQrIiIpLnRyaW0oKS5zcGxpdCgvXnxccysvKS5ldmVyeSgoZnVuY3Rpb24odCl7dmFyIGU9dC5pbmRleE9mKCIuIik7cmV0dXJuIGU+PTAmJih0PXQuc2xpY2UoMCxlKSksIXR8fCJzdGFydCI9PT10fSkpfSkoZSk/Y2h0OnVodDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1vKHRoaXMsdCkscz1hLm9uO3MhPT1pJiYocj0oaT1zKS5jb3B5KCkpLm9uKGUsbiksYS5vbj1yfX12YXIgSWh0PWVjdC5wcm90b3R5cGUuY29uc3RydWN0b3I7ZnVuY3Rpb24gUmh0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIE9odCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLmNhbGwodGhpcyxpKSxuKX19ZnVuY3Rpb24gemh0KHQsZSxuKXt2YXIgaSxyO2Z1bmN0aW9uIG8oKXt2YXIgbz1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbyE9PXImJihpPShyPW8pJiZPaHQodCxvLG4pKSxpfXJldHVybiBvLl92YWx1ZT1lLG99ZnVuY3Rpb24gRGh0KHQpe3JldHVybiBmdW5jdGlvbihlKXt0aGlzLnRleHRDb250ZW50PXQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBCaHQodCl7dmFyIGUsbjtmdW5jdGlvbiBpKCl7dmFyIGk9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGkhPT1uJiYoZT0obj1pKSYmRGh0KGkpKSxlfXJldHVybiBpLl92YWx1ZT10LGl9dmFyIEhodD0wO2Z1bmN0aW9uIEZodCh0LGUsbixpKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWUsdGhpcy5fbmFtZT1uLHRoaXMuX2lkPWl9ZnVuY3Rpb24gVmh0KCl7cmV0dXJuKytIaHR9dmFyIFVodD1lY3QucHJvdG90eXBlO0ZodC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkZodCxzZWxlY3Q6ZnVuY3Rpb24gamh0KHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9dGx0KHQpKTtmb3IodmFyIGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz1uZXcgQXJyYXkociksYT0wO2E8cjsrK2EpZm9yKHZhciBzLGwsYz1pW2FdLHU9Yy5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1jW2RdKSYmKGw9dC5jYWxsKHMscy5fX2RhdGFfXyxkLGMpKSYmKCJfX2RhdGFfXyJpbiBzJiYobC5fX2RhdGFfXz1zLl9fZGF0YV9fKSxoW2RdPWwsbGh0KGhbZF0sZSxuLGQsaCxoaHQocyxuKSkpO3JldHVybiBuZXcgRmh0KG8sdGhpcy5fcGFyZW50cyxlLG4pfSxzZWxlY3RBbGw6ZnVuY3Rpb24gR2h0KHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9bmx0KHQpKTtmb3IodmFyIGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz1bXSxhPVtdLHM9MDtzPHI7KytzKWZvcih2YXIgbCxjPWlbc10sdT1jLmxlbmd0aCxoPTA7aDx1OysraClpZihsPWNbaF0pe2Zvcih2YXIgZCxwPXQuY2FsbChsLGwuX19kYXRhX18saCxjKSxmPWhodChsLG4pLG09MCxnPXAubGVuZ3RoO208ZzsrK20pKGQ9cFttXSkmJmxodChkLGUsbixtLHAsZik7by5wdXNoKHApLGEucHVzaChsKX1yZXR1cm4gbmV3IEZodChvLGEsZSxuKX0sZmlsdGVyOmZ1bmN0aW9uIFdodCh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9aWx0KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGE9ZVtyXSxzPWEubGVuZ3RoLGw9aVtyXT1bXSxjPTA7YzxzOysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZsLnB1c2gobyk7cmV0dXJuIG5ldyBGaHQoaSx0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfSxtZXJnZTpmdW5jdGlvbiBxaHQodCl7aWYodC5faWQhPT10aGlzLl9pZCl0aHJvdyBuZXcgRXJyb3I7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPXQuX2dyb3VwcyxpPWUubGVuZ3RoLHI9TWF0aC5taW4oaSxuLmxlbmd0aCksbz1uZXcgQXJyYXkoaSksYT0wO2E8cjsrK2EpZm9yKHZhciBzLGw9ZVthXSxjPW5bYV0sdT1sLmxlbmd0aCxoPW9bYV09bmV3IEFycmF5KHUpLGQ9MDtkPHU7KytkKShzPWxbZF18fGNbZF0pJiYoaFtkXT1zKTtmb3IoO2E8aTsrK2Epb1thXT1lW2FdO3JldHVybiBuZXcgRmh0KG8sdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uIFlodCgpe3JldHVybiBuZXcgSWh0KHRoaXMuX2dyb3Vwcyx0aGlzLl9wYXJlbnRzKX0sdHJhbnNpdGlvbjpmdW5jdGlvbiBYaHQoKXtmb3IodmFyIHQ9dGhpcy5fbmFtZSxlPXRoaXMuX2lkLG49Vmh0KCksaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPTA7bzxyOysrbylmb3IodmFyIGEscz1pW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpaWYoYT1zW2NdKXt2YXIgdT1oaHQoYSxlKTtsaHQoYSx0LG4sYyxzLHt0aW1lOnUudGltZSt1LmRlbGF5K3UuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjp1LmR1cmF0aW9uLGVhc2U6dS5lYXNlfSl9cmV0dXJuIG5ldyBGaHQoaSx0aGlzLl9wYXJlbnRzLHQsbil9LGNhbGw6VWh0LmNhbGwsbm9kZXM6VWh0Lm5vZGVzLG5vZGU6VWh0Lm5vZGUsc2l6ZTpVaHQuc2l6ZSxlbXB0eTpVaHQuZW1wdHksZWFjaDpVaHQuZWFjaCxvbjpmdW5jdGlvbiAkaHQodCxlKXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP2hodCh0aGlzLm5vZGUoKSxuKS5vbi5vbih0KTp0aGlzLmVhY2goTmh0KG4sdCxlKSl9LGF0dHI6ZnVuY3Rpb24gS2h0KHQsZSl7dmFyIG49JHN0KHQpLGk9InRyYW5zZm9ybSI9PT1uP0R1dDpnaHQ7cmV0dXJuIHRoaXMuYXR0clR3ZWVuKHQsImZ1bmN0aW9uIj09dHlwZW9mIGU/KG4ubG9jYWw/d2h0OnhodCkobixpLG1odCh0aGlzLCJhdHRyLiIrdCxlKSk6bnVsbD09ZT8obi5sb2NhbD95aHQ6X2h0KShuKToobi5sb2NhbD9iaHQ6dmh0KShuLGksZSkpfSxhdHRyVHdlZW46ZnVuY3Rpb24gWmh0KHQsZSl7dmFyIG49ImF0dHIuIit0O2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4obj10aGlzLnR3ZWVuKG4pKSYmbi5fdmFsdWU7aWYobnVsbD09ZSlyZXR1cm4gdGhpcy50d2VlbihuLG51bGwpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjt2YXIgaT0kc3QodCk7cmV0dXJuIHRoaXMudHdlZW4obiwoaS5sb2NhbD9FaHQ6VGh0KShpLGUpKX0sc3R5bGU6ZnVuY3Rpb24gSmh0KHQsZSxuKXt2YXIgaT0idHJhbnNmb3JtIj09KHQrPSIiKT9PdXQ6Z2h0O3JldHVybiBudWxsPT1lP3RoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiByKHQsZSl7dmFyIG4saSxyO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPXZsdCh0aGlzLHQpLGE9KHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCksdmx0KHRoaXMsdCkpO3JldHVybiBvPT09YT9udWxsOm89PT1uJiZhPT09aT9yOnI9ZShuPW8saT1hKX19KSh0LGkpKS5vbigiZW5kLnN0eWxlLiIrdCxSaHQodCkpOiJmdW5jdGlvbiI9PXR5cGVvZiBlP3RoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiBhKHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dmx0KHRoaXMsdCkscz1uKHRoaXMpLGw9cysiIjtyZXR1cm4gbnVsbD09cyYmKHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCksbD1zPXZsdCh0aGlzLHQpKSxhPT09bD9udWxsOmE9PT1pJiZsPT09cj9vOihyPWwsbz1lKGk9YSxzKSl9fSkodCxpLG1odCh0aGlzLCJzdHlsZS4iK3QsZSkpKS5lYWNoKChmdW5jdGlvbiBvKHQsZSl7dmFyIG4saSxyLG8sYT0ic3R5bGUuIitlLHM9ImVuZC4iK2E7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGw9dWh0KHRoaXMsdCksYz1sLm9uLHU9bnVsbD09bC52YWx1ZVthXT9vfHwobz1SaHQoZSkpOnZvaWQgMDtjPT09biYmcj09PXV8fChpPShuPWMpLmNvcHkoKSkub24ocyxyPXUpLGwub249aX19KSh0aGlzLl9pZCx0KSk6dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXZsdCh0aGlzLHQpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19KSh0LGksZSksbikub24oImVuZC5zdHlsZS4iK3QsbnVsbCl9LHN0eWxlVHdlZW46ZnVuY3Rpb24gUWh0KHQsZSxuKXt2YXIgaT0ic3R5bGUuIisodCs9IiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4oaT10aGlzLnR3ZWVuKGkpKSYmaS5fdmFsdWU7aWYobnVsbD09ZSlyZXR1cm4gdGhpcy50d2VlbihpLG51bGwpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2VlbihpLHpodCh0LGUsbnVsbD09bj8iIjpuKSl9LHRleHQ6ZnVuY3Rpb24gdGR0KHQpe3JldHVybiB0aGlzLnR3ZWVuKCJ0ZXh0IiwiZnVuY3Rpb24iPT10eXBlb2YgdD8oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10KHRoaXMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX0pKG1odCh0aGlzLCJ0ZXh0Iix0KSk6KGZ1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX0pKG51bGw9PXQ/IiI6dCsiIikpfSx0ZXh0VHdlZW46ZnVuY3Rpb24gZWR0KHQpe3ZhciBlPSJ0ZXh0IjtpZihhcmd1bWVudHMubGVuZ3RoPDEpcmV0dXJuKGU9dGhpcy50d2VlbihlKSkmJmUuX3ZhbHVlO2lmKG51bGw9PXQpcmV0dXJuIHRoaXMudHdlZW4oZSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oZSxCaHQodCkpfSxyZW1vdmU6ZnVuY3Rpb24gbmR0KCl7cmV0dXJuIHRoaXMub24oImVuZC5yZW1vdmUiLChmdW5jdGlvbiB0KGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTtmb3IodmFyIG4gaW4gdGhpcy5fX3RyYW5zaXRpb24paWYoK24hPT1lKXJldHVybjt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfX0pKHRoaXMuX2lkKSl9LHR3ZWVuOmZ1bmN0aW9uIGlkdCh0LGUpe3ZhciBuPXRoaXMuX2lkO2lmKHQrPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBpLHI9aGh0KHRoaXMubm9kZSgpLG4pLnR3ZWVuLG89MCxhPXIubGVuZ3RoO288YTsrK28paWYoKGk9cltvXSkubmFtZT09PXQpcmV0dXJuIGkudmFsdWU7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09ZT9waHQ6Zmh0KShuLHQsZSkpfSxkZWxheTpmdW5jdGlvbiByZHQodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9DaHQ6QWh0KShlLHQpKTpoaHQodGhpcy5ub2RlKCksZSkuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0aW9uIG9kdCh0KXt2YXIgZT10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiB0P2todDpMaHQpKGUsdCkpOmhodCh0aGlzLm5vZGUoKSxlKS5kdXJhdGlvbn0sZWFzZTpmdW5jdGlvbiBhZHQodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKFBodChlLHQpKTpoaHQodGhpcy5ub2RlKCksZSkuZWFzZX0sZW5kOmZ1bmN0aW9uIHNkdCgpe3ZhciB0LGUsbj10aGlzLGk9bi5faWQscj1uLnNpemUoKTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG8sYSl7dmFyIHM9e3ZhbHVlOmF9LGw9e3ZhbHVlOmZ1bmN0aW9uKCl7MD09LS1yJiZvKCl9fTtuLmVhY2goKGZ1bmN0aW9uKCl7dmFyIG49dWh0KHRoaXMsaSkscj1uLm9uO3IhPT10JiYoKGU9KHQ9cikuY29weSgpKS5fLmNhbmNlbC5wdXNoKHMpLGUuXy5pbnRlcnJ1cHQucHVzaChzKSxlLl8uZW5kLnB1c2gobCkpLG4ub249ZX0pKX0pKX19O3ZhciBsZHQ9e3RpbWU6bnVsbCxkZWxheTowLGR1cmF0aW9uOjI1MCxlYXNlOlRmfTtmdW5jdGlvbiBjZHQodCxlKXtmb3IodmFyIG47IShuPXQuX190cmFuc2l0aW9uKXx8IShuPW5bZV0pOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm4gbGR0LnRpbWU9SnV0KCksbGR0O3JldHVybiBufWZ1bmN0aW9uIHVkdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gaGR0KHQsZSxuKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1lLHRoaXMudHJhbnNmb3JtPW59ZnVuY3Rpb24gZGR0KHQsZSxuKXt0aGlzLms9dCx0aGlzLng9ZSx0aGlzLnk9bn1lY3QucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbiBwZHQodCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtkaHQodGhpcyx0KX0pKX0sZWN0LnByb3RvdHlwZS50cmFuc2l0aW9uPWZ1bmN0aW9uIGZkdCh0KXt2YXIgZSxuO3QgaW5zdGFuY2VvZiBGaHQ/KGU9dC5faWQsdD10Ll9uYW1lKTooZT1WaHQoKSwobj1sZHQpLnRpbWU9SnV0KCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykoYT1zW2NdKSYmbGh0KGEsdCxlLGMscyxufHxjZHQoYSxlKSk7cmV0dXJuIG5ldyBGaHQoaSx0aGlzLl9wYXJlbnRzLHQsZSl9LGRkdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmRkdCxzY2FsZTpmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQ/dGhpczpuZXcgZGR0KHRoaXMuayp0LHRoaXMueCx0aGlzLnkpfSx0cmFuc2xhdGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PXQmMD09PWU/dGhpczpuZXcgZGR0KHRoaXMuayx0aGlzLngrdGhpcy5rKnQsdGhpcy55K3RoaXMuayplKX0sYXBwbHk6ZnVuY3Rpb24odCl7cmV0dXJuW3RbMF0qdGhpcy5rK3RoaXMueCx0WzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24odCl7cmV0dXJuIHQqdGhpcy5rK3RoaXMueH0sYXBwbHlZOmZ1bmN0aW9uKHQpe3JldHVybiB0KnRoaXMuayt0aGlzLnl9LGludmVydDpmdW5jdGlvbih0KXtyZXR1cm5bKHRbMF0tdGhpcy54KS90aGlzLmssKHRbMV0tdGhpcy55KS90aGlzLmtdfSxpbnZlcnRYOmZ1bmN0aW9uKHQpe3JldHVybih0LXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKHQpe3JldHVybih0LXRoaXMueSkvdGhpcy5rfSxyZXNjYWxlWDpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KCkuZG9tYWluKHQucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRYLHRoaXMpLm1hcCh0LmludmVydCx0KSl9LHJlc2NhbGVZOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoKS5kb21haW4odC5yYW5nZSgpLm1hcCh0aGlzLmludmVydFksdGhpcykubWFwKHQuaW52ZXJ0LHQpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy54KyIsIit0aGlzLnkrIikgc2NhbGUoIit0aGlzLmsrIikifX07dmFyIG1kdD1uZXcgZGR0KDEsMCwwKTtmdW5jdGlvbiBnZHQodCl7cmV0dXJuIHQuX196b29tfHxtZHR9ZnVuY3Rpb24gX2R0KCl7R2x0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIHlkdCgpe0dsdC5wcmV2ZW50RGVmYXVsdCgpLEdsdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiB2ZHQoKXtyZXR1cm4hR2x0LmJ1dHRvbn1mdW5jdGlvbiBiZHQoKXt2YXIgdCxlLG49dGhpcztyZXR1cm4gbiBpbnN0YW5jZW9mIFNWR0VsZW1lbnQ/KHQ9KG49bi5vd25lclNWR0VsZW1lbnR8fG4pLndpZHRoLmJhc2VWYWwudmFsdWUsZT1uLmhlaWdodC5iYXNlVmFsLnZhbHVlKToodD1uLmNsaWVudFdpZHRoLGU9bi5jbGllbnRIZWlnaHQpLFtbMCwwXSxbdCxlXV19ZnVuY3Rpb24geGR0KCl7cmV0dXJuIHRoaXMuX196b29tfHxtZHR9ZnVuY3Rpb24gd2R0KCl7cmV0dXJuLUdsdC5kZWx0YVkqKEdsdC5kZWx0YU1vZGU/MTIwOjEpLzUwMH1mdW5jdGlvbiBTZHQoKXtyZXR1cm4ib250b3VjaHN0YXJ0ImluIHRoaXN9ZnVuY3Rpb24gTWR0KHQsZSxuKXt2YXIgaT10LmludmVydFgoZVswXVswXSktblswXVswXSxyPXQuaW52ZXJ0WChlWzFdWzBdKS1uWzFdWzBdLG89dC5pbnZlcnRZKGVbMF1bMV0pLW5bMF1bMV0sYT10LmludmVydFkoZVsxXVsxXSktblsxXVsxXTtyZXR1cm4gdC50cmFuc2xhdGUocj5pPyhpK3IpLzI6TWF0aC5taW4oMCxpKXx8TWF0aC5tYXgoMCxyKSxhPm8/KG8rYSkvMjpNYXRoLm1pbigwLG8pfHxNYXRoLm1heCgwLGEpKX1nZHQucHJvdG90eXBlPWRkdC5wcm90b3R5cGU7dmFyIEVkdD1iZShPYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCx2ZXJzaW9uOiI0LjEzLjAiLGJpc2VjdDpDTyxiaXNlY3RSaWdodDpDTyxiaXNlY3RMZWZ0OkFPLGFzY2VuZGluZzpNTyxiaXNlY3RvcjpFTyxjcm9zczpmdW5jdGlvbiBUZHQodCxlLG4pe3ZhciBpLHIsbyxhLHM9dC5sZW5ndGgsbD1lLmxlbmd0aCxjPW5ldyBBcnJheShzKmwpO2ZvcihudWxsPT1uJiYobj1rTyksaT1vPTA7aTxzOysraSlmb3IoYT10W2ldLHI9MDtyPGw7KytyLCsrbyljW29dPW4oYSxlW3JdKTtyZXR1cm4gY30sZGVzY2VuZGluZzpmdW5jdGlvbiBDZHQodCxlKXtyZXR1cm4gZTx0Py0xOmU+dD8xOmU+PXQ/MDpOYU59LGRldmlhdGlvbjpOTyxleHRlbnQ6SU8saGlzdG9ncmFtOmZ1bmN0aW9uIEFkdCgpe3ZhciB0PUJPLGU9SU8sbj1XTztmdW5jdGlvbiBpKGkpe3ZhciByLG8sYT1pLmxlbmd0aCxzPW5ldyBBcnJheShhKTtmb3Iocj0wO3I8YTsrK3Ipc1tyXT10KGlbcl0scixpKTt2YXIgbD1lKHMpLGM9bFswXSx1PWxbMV0saD1uKHMsYyx1KTtBcnJheS5pc0FycmF5KGgpfHwoaD1HTyhjLHUsaCksaD1ITyhNYXRoLmNlaWwoYy9oKSpoLE1hdGguZmxvb3IodS9oKSpoLGgpKTtmb3IodmFyIGQ9aC5sZW5ndGg7aFswXTw9YzspaC5zaGlmdCgpLC0tZDtmb3IoO2hbZC0xXT51OyloLnBvcCgpLC0tZDt2YXIgcCxmPW5ldyBBcnJheShkKzEpO2ZvcihyPTA7cjw9ZDsrK3IpKHA9ZltyXT1bXSkueDA9cj4wP2hbci0xXTpjLHAueDE9cjxkP2hbcl06dTtmb3Iocj0wO3I8YTsrK3IpYzw9KG89c1tyXSkmJm88PXUmJmZbQ08oaCxvLDAsZCldLnB1c2goaVtyXSk7cmV0dXJuIGZ9cmV0dXJuIGkudmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpETyhlKSxpKTp0fSxpLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkRPKFt0WzBdLHRbMV1dKSxpKTplfSxpLnRocmVzaG9sZHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpBcnJheS5pc0FycmF5KHQpP0RPKE9PLmNhbGwodCkpOkRPKHQpLGkpOm59LGl9LHRocmVzaG9sZEZyZWVkbWFuRGlhY29uaXM6ZnVuY3Rpb24ga2R0KHQsZSxuKXtyZXR1cm4gdD16Ty5jYWxsKHQsTE8pLnNvcnQoTU8pLE1hdGguY2VpbCgobi1lKS8oMioocU8odCwuNzUpLXFPKHQsLjI1KSkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdGhyZXNob2xkU2NvdHQ6ZnVuY3Rpb24gTGR0KHQsZSxuKXtyZXR1cm4gTWF0aC5jZWlsKChuLWUpLygzLjUqTk8odCkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdGhyZXNob2xkU3R1cmdlczpXTyxtYXg6ZnVuY3Rpb24gUGR0KHQsZSl7dmFyIG4saSxyPXQubGVuZ3RoLG89LTE7aWYobnVsbD09ZSl7Zm9yKDsrK288cjspaWYobnVsbCE9KG49dFtvXSkmJm4+PW4pZm9yKGk9bjsrK288cjspbnVsbCE9KG49dFtvXSkmJm4+aSYmKGk9bil9ZWxzZSBmb3IoOysrbzxyOylpZihudWxsIT0obj1lKHRbb10sbyx0KSkmJm4+PW4pZm9yKGk9bjsrK288cjspbnVsbCE9KG49ZSh0W29dLG8sdCkpJiZuPmkmJihpPW4pO3JldHVybiBpfSxtZWFuOmZ1bmN0aW9uIE5kdCh0LGUpe3ZhciBuLGk9dC5sZW5ndGgscj1pLG89LTEsYT0wO2lmKG51bGw9PWUpZm9yKDsrK288aTspaXNOYU4obj1MTyh0W29dKSk/LS1yOmErPW47ZWxzZSBmb3IoOysrbzxpOylpc05hTihuPUxPKGUodFtvXSxvLHQpKSk/LS1yOmErPW47aWYocilyZXR1cm4gYS9yfSxtZWRpYW46ZnVuY3Rpb24gSWR0KHQsZSl7dmFyIG4saT10Lmxlbmd0aCxyPS0xLG89W107aWYobnVsbD09ZSlmb3IoOysrcjxpOylpc05hTihuPUxPKHRbcl0pKXx8by5wdXNoKG4pO2Vsc2UgZm9yKDsrK3I8aTspaXNOYU4obj1MTyhlKHRbcl0scix0KSkpfHxvLnB1c2gobik7cmV0dXJuIHFPKG8uc29ydChNTyksLjUpfSxtZXJnZTpmdW5jdGlvbiBSZHQodCl7Zm9yKHZhciBlLG4saSxyPXQubGVuZ3RoLG89LTEsYT0wOysrbzxyOylhKz10W29dLmxlbmd0aDtmb3Iobj1uZXcgQXJyYXkoYSk7LS1yPj0wOylmb3IoZT0oaT10W3JdKS5sZW5ndGg7LS1lPj0wOyluWy0tYV09aVtlXTtyZXR1cm4gbn0sbWluOllPLHBhaXJzOmZ1bmN0aW9uIE9kdCh0LGUpe251bGw9PWUmJihlPWtPKTtmb3IodmFyIG49MCxpPXQubGVuZ3RoLTEscj10WzBdLG89bmV3IEFycmF5KGk8MD8wOmkpO248aTspb1tuXT1lKHIscj10Wysrbl0pO3JldHVybiBvfSxwZXJtdXRlOmZ1bmN0aW9uIHpkdCh0LGUpe2Zvcih2YXIgbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKTtuLS07KWlbbl09dFtlW25dXTtyZXR1cm4gaX0scXVhbnRpbGU6cU8scmFuZ2U6SE8sc2NhbjpmdW5jdGlvbiBEZHQodCxlKXtpZihuPXQubGVuZ3RoKXt2YXIgbixpLHI9MCxvPTAsYT10W29dO2ZvcihudWxsPT1lJiYoZT1NTyk7KytyPG47KShlKGk9dFtyXSxhKTwwfHwwIT09ZShhLGEpKSYmKGE9aSxvPXIpO3JldHVybiAwPT09ZShhLGEpP286dm9pZCAwfX0sc2h1ZmZsZTpmdW5jdGlvbiBCZHQodCxlLG4pe2Zvcih2YXIgaSxyLG89KG51bGw9PW4/dC5sZW5ndGg6biktKGU9bnVsbD09ZT8wOitlKTtvOylyPU1hdGgucmFuZG9tKCkqby0tfDAsaT10W28rZV0sdFtvK2VdPXRbcitlXSx0W3IrZV09aTtyZXR1cm4gdH0sc3VtOmZ1bmN0aW9uIEhkdCh0LGUpe3ZhciBuLGk9dC5sZW5ndGgscj0tMSxvPTA7aWYobnVsbD09ZSlmb3IoOysrcjxpOykobj0rdFtyXSkmJihvKz1uKTtlbHNlIGZvcig7KytyPGk7KShuPStlKHRbcl0scix0KSkmJihvKz1uKTtyZXR1cm4gb30sdGlja3M6ZnVuY3Rpb24gRmR0KHQsZSxuKXt2YXIgaSxyLG8sYSxzPS0xO2lmKG49K24sKHQ9K3QpPT0oZT0rZSkmJm4+MClyZXR1cm5bdF07aWYoKGk9ZTx0KSYmKHI9dCx0PWUsZT1yKSwwPT09KGE9ak8odCxlLG4pKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxlPU1hdGguZmxvb3IoZS9hKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbChlLXQrMSkpOysrczxyOylvW3NdPSh0K3MpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksZT1NYXRoLmNlaWwoZSphKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbCh0LWUrMSkpOysrczxyOylvW3NdPSh0LXMpL2E7cmV0dXJuIGkmJm8ucmV2ZXJzZSgpLG99LHRpY2tJbmNyZW1lbnQ6ak8sdGlja1N0ZXA6R08sdHJhbnNwb3NlOlhPLHZhcmlhbmNlOlBPLHppcDpmdW5jdGlvbiBWZHQoKXtyZXR1cm4gWE8oYXJndW1lbnRzKX0sYXhpc1RvcDpmdW5jdGlvbiBVZHQodCl7cmV0dXJuIHJ6KDEsdCl9LGF4aXNSaWdodDpmdW5jdGlvbiBqZHQodCl7cmV0dXJuIHJ6KDIsdCl9LGF4aXNCb3R0b206ZnVuY3Rpb24gR2R0KHQpe3JldHVybiByeigzLHQpfSxheGlzTGVmdDpmdW5jdGlvbiBXZHQodCl7cmV0dXJuIHJ6KDQsdCl9LGJydXNoOmZ1bmN0aW9uIHFkdCgpe3JldHVybiBLRihIRil9LGJydXNoWDpmdW5jdGlvbiBZZHQoKXtyZXR1cm4gS0YoREYpfSxicnVzaFk6ZnVuY3Rpb24gWGR0KCl7cmV0dXJuIEtGKEJGKX0sYnJ1c2hTZWxlY3Rpb246ZnVuY3Rpb24gJGR0KHQpe3ZhciBlPXQuX19icnVzaDtyZXR1cm4gZT9lLmRpbS5vdXRwdXQoZS5zZWxlY3Rpb24pOm51bGx9LGNob3JkOmZ1bmN0aW9uIEtkdCgpe3ZhciB0PTAsZT1udWxsLG49bnVsbCxpPW51bGw7ZnVuY3Rpb24gcihyKXt2YXIgbyxhLHMsbCxjLHUsaD1yLmxlbmd0aCxkPVtdLHA9SkYoaCksZj1bXSxtPVtdLGc9bS5ncm91cHM9bmV3IEFycmF5KGgpLF89bmV3IEFycmF5KGgqaCk7Zm9yKG89MCxjPS0xOysrYzxoOyl7Zm9yKGE9MCx1PS0xOysrdTxoOylhKz1yW2NdW3VdO2QucHVzaChhKSxmLnB1c2goSkYoaCkpLG8rPWF9Zm9yKGUmJnAuc29ydCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZShkW3RdLGRbbl0pfSkpLG4mJmYuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LnNvcnQoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIG4ocltlXVt0XSxyW2VdW2ldKX0pKX0pKSxsPShvPW9WKDAsclYtdCpoKS9vKT90OnJWL2gsYT0wLGM9LTE7KytjPGg7KXtmb3Iocz1hLHU9LTE7Kyt1PGg7KXt2YXIgeT1wW2NdLHY9Zlt5XVt1XSxiPXJbeV1bdl0seD1hLHc9YSs9YipvO19bdipoK3ldPXtpbmRleDp5LHN1YmluZGV4OnYsc3RhcnRBbmdsZTp4LGVuZEFuZ2xlOncsdmFsdWU6Yn19Z1t5XT17aW5kZXg6eSxzdGFydEFuZ2xlOnMsZW5kQW5nbGU6YSx2YWx1ZTpkW3ldfSxhKz1sfWZvcihjPS0xOysrYzxoOylmb3IodT1jLTE7Kyt1PGg7KXt2YXIgUz1fW3UqaCtjXSxNPV9bYypoK3VdOyhTLnZhbHVlfHxNLnZhbHVlKSYmbS5wdXNoKFMudmFsdWU8TS52YWx1ZT97c291cmNlOk0sdGFyZ2V0OlN9Ontzb3VyY2U6Uyx0YXJnZXQ6TX0pfXJldHVybiBpP20uc29ydChpKTptfXJldHVybiByLnBhZEFuZ2xlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW9WKDAsZSkscik6dH0sci5zb3J0R3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQscik6ZX0sci5zb3J0U3ViZ3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQscik6bn0sci5zb3J0Q2hvcmRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P2k9bnVsbDooaT1hVih0KSkuXz10LHIpOmkmJmkuX30scn0scmliYm9uOmZ1bmN0aW9uIFpkdCgpe3ZhciB0PW1WLGU9Z1Ysbj1fVixpPXlWLHI9dlYsbz1udWxsO2Z1bmN0aW9uIGEoKXt2YXIgYSxzPXNWLmNhbGwoYXJndW1lbnRzKSxsPXQuYXBwbHkodGhpcyxzKSxjPWUuYXBwbHkodGhpcyxzKSx1PStuLmFwcGx5KHRoaXMsKHNbMF09bCxzKSksaD1pLmFwcGx5KHRoaXMscyktaVYsZD1yLmFwcGx5KHRoaXMscyktaVYscD11KnRWKGgpLGY9dSplVihoKSxtPStuLmFwcGx5KHRoaXMsKHNbMF09YyxzKSksZz1pLmFwcGx5KHRoaXMscyktaVYsXz1yLmFwcGx5KHRoaXMscyktaVY7aWYob3x8KG89YT1mVigpKSxvLm1vdmVUbyhwLGYpLG8uYXJjKDAsMCx1LGgsZCksaD09PWcmJmQ9PT1ffHwoby5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCxtKnRWKGcpLG0qZVYoZykpLG8uYXJjKDAsMCxtLGcsXykpLG8ucXVhZHJhdGljQ3VydmVUbygwLDAscCxmKSxvLmNsb3NlUGF0aCgpLGEpcmV0dXJuIG89bnVsbCxhKyIifHxudWxsfXJldHVybiBhLnJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmxWKCt0KSxhKTpufSxhLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpsVigrdCksYSk6aX0sYS5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmxWKCt0KSxhKTpyfSxhLnNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLGEpOnR9LGEudGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsYSk6ZX0sYS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPW51bGw9PXQ/bnVsbDp0LGEpOm99LGF9LG5lc3Q6ZnVuY3Rpb24gSmR0KCl7dmFyIHQsZSxuLGk9W10scj1bXTtmdW5jdGlvbiBvKG4scixhLHMpe2lmKHI+PWkubGVuZ3RoKXJldHVybiBudWxsIT10JiZuLnNvcnQodCksbnVsbCE9ZT9lKG4pOm47Zm9yKHZhciBsLGMsdSxoPS0xLGQ9bi5sZW5ndGgscD1pW3IrK10sZj13VigpLG09YSgpOysraDxkOykodT1mLmdldChsPXAoYz1uW2hdKSsiIikpP3UucHVzaChjKTpmLnNldChsLFtjXSk7cmV0dXJuIGYuZWFjaCgoZnVuY3Rpb24odCxlKXtzKG0sZSxvKHQscixhLHMpKX0pKSxtfWZ1bmN0aW9uIGEodCxuKXtpZigrK24+aS5sZW5ndGgpcmV0dXJuIHQ7dmFyIG8scz1yW24tMV07cmV0dXJuIG51bGwhPWUmJm4+PWkubGVuZ3RoP289dC5lbnRyaWVzKCk6KG89W10sdC5lYWNoKChmdW5jdGlvbih0LGUpe28ucHVzaCh7a2V5OmUsdmFsdWVzOmEodCxuKX0pfSkpKSxudWxsIT1zP28uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gcyh0LmtleSxlLmtleSl9KSk6b31yZXR1cm4gbj17b2JqZWN0OmZ1bmN0aW9uKHQpe3JldHVybiBvKHQsMCxTVixNVil9LG1hcDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0LDAsRVYsVFYpfSxlbnRyaWVzOmZ1bmN0aW9uKHQpe3JldHVybiBhKG8odCwwLEVWLFRWKSwwKX0sa2V5OmZ1bmN0aW9uKHQpe3JldHVybiBpLnB1c2godCksbn0sc29ydEtleXM6ZnVuY3Rpb24odCl7cmV0dXJuIHJbaS5sZW5ndGgtMV09dCxufSxzb3J0VmFsdWVzOmZ1bmN0aW9uKGUpe3JldHVybiB0PWUsbn0scm9sbHVwOmZ1bmN0aW9uKHQpe3JldHVybiBlPXQsbn19fSxzZXQ6a1YsbWFwOndWLGtleXM6ZnVuY3Rpb24gUWR0KHQpe3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaChuKTtyZXR1cm4gZX0sdmFsdWVzOmZ1bmN0aW9uIHRwdCh0KXt2YXIgZT1bXTtmb3IodmFyIG4gaW4gdCllLnB1c2godFtuXSk7cmV0dXJuIGV9LGVudHJpZXM6ZnVuY3Rpb24gZXB0KHQpe3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaCh7a2V5Om4sdmFsdWU6dFtuXX0pO3JldHVybiBlfSxjb2xvcjpZVixyZ2I6WlYsaHNsOmVVLGxhYjpkVSxoY2w6dlUsY3ViZWhlbGl4OkVVLGRpc3BhdGNoOkFVLGRyYWc6ZnVuY3Rpb24gbnB0KCl7dmFyIHQsZSxuLGkscj1pRyxvPXJHLGE9b0cscz1hRyxsPXt9LGM9UlUoInN0YXJ0IiwiZHJhZyIsImVuZCIpLHU9MCxoPTA7ZnVuY3Rpb24gZCh0KXt0Lm9uKCJtb3VzZWRvd24uZHJhZyIscCkuZmlsdGVyKHMpLm9uKCJ0b3VjaHN0YXJ0LmRyYWciLGcpLm9uKCJ0b3VjaG1vdmUuZHJhZyIsXykub24oInRvdWNoZW5kLmRyYWcgdG91Y2hjYW5jZWwuZHJhZyIseSkuc3R5bGUoInRvdWNoLWFjdGlvbiIsIm5vbmUiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpfWZ1bmN0aW9uIHAoKXtpZighaSYmci5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBhPXYoIm1vdXNlIixvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwkaix0aGlzLGFyZ3VtZW50cyk7YSYmKHFqKFJqLnZpZXcpLm9uKCJtb3VzZW1vdmUuZHJhZyIsZiwhMCkub24oIm1vdXNldXAuZHJhZyIsbSwhMCksUWooUmoudmlldyksWmooKSxuPSExLHQ9UmouY2xpZW50WCxlPVJqLmNsaWVudFksYSgic3RhcnQiKSl9fWZ1bmN0aW9uIGYoKXtpZihKaigpLCFuKXt2YXIgaT1Sai5jbGllbnRYLXQscj1Sai5jbGllbnRZLWU7bj1pKmkrcipyPmh9bC5tb3VzZSgiZHJhZyIpfWZ1bmN0aW9uIG0oKXtxaihSai52aWV3KS5vbigibW91c2Vtb3ZlLmRyYWcgbW91c2V1cC5kcmFnIixudWxsKSx0RyhSai52aWV3LG4pLEpqKCksbC5tb3VzZSgiZW5kIil9ZnVuY3Rpb24gZygpe2lmKHIuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdCxlLG49UmouY2hhbmdlZFRvdWNoZXMsaT1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxhPW4ubGVuZ3RoO2Zvcih0PTA7dDxhOysrdCkoZT12KG5bdF0uaWRlbnRpZmllcixpLEtqLHRoaXMsYXJndW1lbnRzKSkmJihaaigpLGUoInN0YXJ0IikpfX1mdW5jdGlvbiBfKCl7dmFyIHQsZSxuPVJqLmNoYW5nZWRUb3VjaGVzLGk9bi5sZW5ndGg7Zm9yKHQ9MDt0PGk7Kyt0KShlPWxbblt0XS5pZGVudGlmaWVyXSkmJihKaigpLGUoImRyYWciKSl9ZnVuY3Rpb24geSgpe3ZhciB0LGUsbj1Sai5jaGFuZ2VkVG91Y2hlcyxyPW4ubGVuZ3RoO2ZvcihpJiZjbGVhclRpbWVvdXQoaSksaT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2k9bnVsbH0pLDUwMCksdD0wO3Q8cjsrK3QpKGU9bFtuW3RdLmlkZW50aWZpZXJdKSYmKFpqKCksZSgiZW5kIikpfWZ1bmN0aW9uIHYodCxlLG4saSxyKXt2YXIgbyxzLGgscD1uKGUsdCksZj1jLmNvcHkoKTtpZihGaihuZXcgbkcoZCwiYmVmb3Jlc3RhcnQiLG8sdCx1LHBbMF0scFsxXSwwLDAsZiksKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPShSai5zdWJqZWN0PW89YS5hcHBseShpLHIpKSYmKHM9by54LXBbMF18fDAsaD1vLnktcFsxXXx8MCwhMCl9KSkpcmV0dXJuIGZ1bmN0aW9uIGEoYyl7dmFyIG0sZz1wO3N3aXRjaChjKXtjYXNlInN0YXJ0IjpsW3RdPWEsbT11Kys7YnJlYWs7Y2FzZSJlbmQiOmRlbGV0ZSBsW3RdLC0tdTtjYXNlImRyYWciOnA9bihlLHQpLG09dX1GaihuZXcgbkcoZCxjLG8sdCxtLHBbMF0rcyxwWzFdK2gscFswXS1nWzBdLHBbMV0tZ1sxXSxmKSxmLmFwcGx5LGYsW2MsaSxyXSl9fXJldHVybiBkLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmVHKCEhdCksZCk6cn0sZC5jb250YWluZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDplRyh0KSxkKTpvfSxkLnN1YmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDplRyh0KSxkKTphfSxkLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmVHKCEhdCksZCk6c30sZC5vbj1mdW5jdGlvbigpe3ZhciB0PWMub24uYXBwbHkoYyxhcmd1bWVudHMpO3JldHVybiB0PT09Yz9kOnR9LGQuY2xpY2tEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD0odD0rdCkqdCxkKTpNYXRoLnNxcnQoaCl9LGR9LGRyYWdEaXNhYmxlOlFqLGRyYWdFbmFibGU6dEcsZHN2Rm9ybWF0OlZHLGNzdlBhcnNlOmpHLGNzdlBhcnNlUm93czpHRyxjc3ZGb3JtYXQ6V0csY3N2Rm9ybWF0Um93czpxRyx0c3ZQYXJzZTpYRyx0c3ZQYXJzZVJvd3M6JEcsdHN2Rm9ybWF0OktHLHRzdkZvcm1hdFJvd3M6WkcsZWFzZUxpbmVhcjpmdW5jdGlvbiBpcHQodCl7cmV0dXJuK3R9LGVhc2VRdWFkOkpHLGVhc2VRdWFkSW46ZnVuY3Rpb24gcnB0KHQpe3JldHVybiB0KnR9LGVhc2VRdWFkT3V0OmZ1bmN0aW9uIG9wdCh0KXtyZXR1cm4gdCooMi10KX0sZWFzZVF1YWRJbk91dDpKRyxlYXNlQ3ViaWM6UUcsZWFzZUN1YmljSW46ZnVuY3Rpb24gYXB0KHQpe3JldHVybiB0KnQqdH0sZWFzZUN1YmljT3V0OmZ1bmN0aW9uIHNwdCh0KXtyZXR1cm4tLXQqdCp0KzF9LGVhc2VDdWJpY0luT3V0OlFHLGVhc2VQb2x5Om5XLGVhc2VQb2x5SW46dFcsZWFzZVBvbHlPdXQ6ZVcsZWFzZVBvbHlJbk91dDpuVyxlYXNlU2luOm9XLGVhc2VTaW5JbjpmdW5jdGlvbiBscHQodCl7cmV0dXJuIDEtTWF0aC5jb3ModCpyVyl9LGVhc2VTaW5PdXQ6ZnVuY3Rpb24gY3B0KHQpe3JldHVybiBNYXRoLnNpbih0KnJXKX0sZWFzZVNpbkluT3V0Om9XLGVhc2VFeHA6YVcsZWFzZUV4cEluOmZ1bmN0aW9uIHVwdCh0KXtyZXR1cm4gTWF0aC5wb3coMiwxMCp0LTEwKX0sZWFzZUV4cE91dDpmdW5jdGlvbiBocHQodCl7cmV0dXJuIDEtTWF0aC5wb3coMiwtMTAqdCl9LGVhc2VFeHBJbk91dDphVyxlYXNlQ2lyY2xlOnNXLGVhc2VDaXJjbGVJbjpmdW5jdGlvbiBkcHQodCl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtdCp0KX0sZWFzZUNpcmNsZU91dDpmdW5jdGlvbiBwcHQodCl7cmV0dXJuIE1hdGguc3FydCgxLSAtLXQqdCl9LGVhc2VDaXJjbGVJbk91dDpzVyxlYXNlQm91bmNlOmNXLGVhc2VCb3VuY2VJbjpmdW5jdGlvbiBmcHQodCl7cmV0dXJuIDEtY1coMS10KX0sZWFzZUJvdW5jZU91dDpjVyxlYXNlQm91bmNlSW5PdXQ6ZnVuY3Rpb24gbXB0KHQpe3JldHVybigodCo9Mik8PTE/MS1jVygxLXQpOmNXKHQtMSkrMSkvMn0sZWFzZUJhY2s6cFcsZWFzZUJhY2tJbjpoVyxlYXNlQmFja091dDpkVyxlYXNlQmFja0luT3V0OnBXLGVhc2VFbGFzdGljOmdXLGVhc2VFbGFzdGljSW46bVcsZWFzZUVsYXN0aWNPdXQ6Z1csZWFzZUVsYXN0aWNJbk91dDpfVyxmb3JjZUNlbnRlcjpmdW5jdGlvbiBncHQodCxlKXt2YXIgbjtmdW5jdGlvbiBpKCl7dmFyIGkscixvPW4ubGVuZ3RoLGE9MCxzPTA7Zm9yKGk9MDtpPG87KytpKWErPShyPW5baV0pLngscys9ci55O2ZvcihhPWEvby10LHM9cy9vLWUsaT0wO2k8bzsrK2kpKHI9bltpXSkueC09YSxyLnktPXN9cmV0dXJuIG51bGw9PXQmJih0PTApLG51bGw9PWUmJihlPTApLGkuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtuPXR9LGkueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rZSxpKTp0fSxpLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3QsaSk6ZX0saX0sZm9yY2VDb2xsaWRlOmZ1bmN0aW9uIF9wdCh0KXt2YXIgZSxuLGk9MSxyPTE7ZnVuY3Rpb24gbygpe2Zvcih2YXIgdCxvLHMsbCxjLHUsaCxkPWUubGVuZ3RoLHA9MDtwPHI7KytwKWZvcihvPU1XKGUsQVcsa1cpLnZpc2l0QWZ0ZXIoYSksdD0wO3Q8ZDsrK3QpaD0odT1uWyhzPWVbdF0pLmluZGV4XSkqdSxsPXMueCtzLnZ4LGM9cy55K3Mudnksby52aXNpdChmKTtmdW5jdGlvbiBmKHQsZSxuLHIsbyl7dmFyIGE9dC5kYXRhLGQ9dC5yLHA9dStkO2lmKCFhKXJldHVybiBlPmwrcHx8cjxsLXB8fG4+YytwfHxvPGMtcDtpZihhLmluZGV4PnMuaW5kZXgpe3ZhciBmPWwtYS54LWEudngsbT1jLWEueS1hLnZ5LGc9ZipmK20qbTtnPHAqcCYmKDA9PT1mJiYoZys9KGY9dlcoKSkqZiksMD09PW0mJihnKz0obT12VygpKSptKSxnPShwLShnPU1hdGguc3FydChnKSkpL2cqaSxzLnZ4Kz0oZio9ZykqKHA9KGQqPWQpLyhoK2QpKSxzLnZ5Kz0obSo9ZykqcCxhLnZ4LT1mKihwPTEtcCksYS52eS09bSpwKX19fWZ1bmN0aW9uIGEodCl7aWYodC5kYXRhKXJldHVybiB0LnI9blt0LmRhdGEuaW5kZXhdO2Zvcih2YXIgZT10LnI9MDtlPDQ7KytlKXRbZV0mJnRbZV0ucj50LnImJih0LnI9dFtlXS5yKX1mdW5jdGlvbiBzKCl7aWYoZSl7dmFyIGkscixvPWUubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShvKSxpPTA7aTxvOysraSluWyhyPWVbaV0pLmluZGV4XT0rdChyLGksZSl9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD15VyhudWxsPT10PzE6K3QpKSxvLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7ZT10LHMoKX0sby5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LG8pOnJ9LG8uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3Qsbyk6aX0sby5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTp5VygrZSkscygpLG8pOnR9LG99LGZvcmNlTGluazpmdW5jdGlvbiB5cHQodCl7dmFyIGUsbixpLHIsbyxhPSRXLHM9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gMS9NYXRoLm1pbihyW3Quc291cmNlLmluZGV4XSxyW3QudGFyZ2V0LmluZGV4XSl9LGM9eVcoMzApLHU9MTtmdW5jdGlvbiBoKGkpe2Zvcih2YXIgcj0wLGE9dC5sZW5ndGg7cjx1Oysrcilmb3IodmFyIHMsbCxjLGgsZCxwLGYsbT0wO208YTsrK20paD0oYz0ocz10W21dKS50YXJnZXQpLngrYy52eC0obD1zLnNvdXJjZSkueC1sLnZ4fHx2VygpLGQ9Yy55K2MudnktbC55LWwudnl8fHZXKCksZCo9cD0oKHA9TWF0aC5zcXJ0KGgqaCtkKmQpKS1uW21dKS9wKmkqZVttXSxjLnZ4LT0oaCo9cCkqKGY9b1ttXSksYy52eS09ZCpmLGwudngrPWgqKGY9MS1mKSxsLnZ5Kz1kKmZ9ZnVuY3Rpb24gZCgpe2lmKGkpe3ZhciBzLGwsYz1pLmxlbmd0aCx1PXQubGVuZ3RoLGg9cVcoaSxhKTtmb3Iocz0wLHI9bmV3IEFycmF5KGMpO3M8dTsrK3MpKGw9dFtzXSkuaW5kZXg9cywib2JqZWN0IiE9dHlwZW9mIGwuc291cmNlJiYobC5zb3VyY2U9S1coaCxsLnNvdXJjZSkpLCJvYmplY3QiIT10eXBlb2YgbC50YXJnZXQmJihsLnRhcmdldD1LVyhoLGwudGFyZ2V0KSkscltsLnNvdXJjZS5pbmRleF09KHJbbC5zb3VyY2UuaW5kZXhdfHwwKSsxLHJbbC50YXJnZXQuaW5kZXhdPShyW2wudGFyZ2V0LmluZGV4XXx8MCkrMTtmb3Iocz0wLG89bmV3IEFycmF5KHUpO3M8dTsrK3Mpb1tzXT1yWyhsPXRbc10pLnNvdXJjZS5pbmRleF0vKHJbbC5zb3VyY2UuaW5kZXhdK3JbbC50YXJnZXQuaW5kZXhdKTtlPW5ldyBBcnJheSh1KSxwKCksbj1uZXcgQXJyYXkodSksZigpfX1mdW5jdGlvbiBwKCl7aWYoaSlmb3IodmFyIG49MCxyPXQubGVuZ3RoO248cjsrK24pZVtuXT0rcyh0W25dLG4sdCl9ZnVuY3Rpb24gZigpe2lmKGkpZm9yKHZhciBlPTAscj10Lmxlbmd0aDtlPHI7KytlKW5bZV09K2ModFtlXSxlLHQpfXJldHVybiBudWxsPT10JiYodD1bXSksaC5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2k9dCxkKCl9LGgubGlua3M9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxkKCksaCk6dH0saC5pZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LGgpOmF9LGguaXRlcmF0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0rdCxoKTp1fSxoLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eVcoK3QpLHAoKSxoKTpzfSxoLmRpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eVcoK3QpLGYoKSxoKTpjfSxofSxmb3JjZU1hbnlCb2R5OmZ1bmN0aW9uIHZwdCgpe3ZhciB0LGUsbixpLHI9eVcoLTMwKSxvPTEsYT0xLzAscz0uODE7ZnVuY3Rpb24gbChpKXt2YXIgcixvPXQubGVuZ3RoLGE9TVcodCxicSx4cSkudmlzaXRBZnRlcih1KTtmb3Iobj1pLHI9MDtyPG87KytyKWU9dFtyXSxhLnZpc2l0KGgpfWZ1bmN0aW9uIGMoKXtpZih0KXt2YXIgZSxuLG89dC5sZW5ndGg7Zm9yKGk9bmV3IEFycmF5KG8pLGU9MDtlPG87KytlKWlbKG49dFtlXSkuaW5kZXhdPStyKG4sZSx0KX19ZnVuY3Rpb24gdSh0KXt2YXIgZSxuLHIsbyxhLHM9MCxsPTA7aWYodC5sZW5ndGgpe2ZvcihyPW89YT0wO2E8NDsrK2EpKGU9dFthXSkmJihuPU1hdGguYWJzKGUudmFsdWUpKSYmKHMrPWUudmFsdWUsbCs9bixyKz1uKmUueCxvKz1uKmUueSk7dC54PXIvbCx0Lnk9by9sfWVsc2V7KGU9dCkueD1lLmRhdGEueCxlLnk9ZS5kYXRhLnk7ZG97cys9aVtlLmRhdGEuaW5kZXhdfXdoaWxlKGU9ZS5uZXh0KX10LnZhbHVlPXN9ZnVuY3Rpb24gaCh0LHIsbCxjKXtpZighdC52YWx1ZSlyZXR1cm4hMDt2YXIgdT10LngtZS54LGg9dC55LWUueSxkPWMtcixwPXUqdStoKmg7aWYoZCpkL3M8cClyZXR1cm4gcDxhJiYoMD09PXUmJihwKz0odT12VygpKSp1KSwwPT09aCYmKHArPShoPXZXKCkpKmgpLHA8byYmKHA9TWF0aC5zcXJ0KG8qcCkpLGUudngrPXUqdC52YWx1ZSpuL3AsZS52eSs9aCp0LnZhbHVlKm4vcCksITA7aWYoISh0Lmxlbmd0aHx8cD49YSkpeyh0LmRhdGEhPT1lfHx0Lm5leHQpJiYoMD09PXUmJihwKz0odT12VygpKSp1KSwwPT09aCYmKHArPShoPXZXKCkpKmgpLHA8byYmKHA9TWF0aC5zcXJ0KG8qcCkpKTtkb3t0LmRhdGEhPT1lJiYoZS52eCs9dSooZD1pW3QuZGF0YS5pbmRleF0qbi9wKSxlLnZ5Kz1oKmQpfXdoaWxlKHQ9dC5uZXh0KX19cmV0dXJuIGwuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0PWUsYygpfSxsLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eVcoK3QpLGMoKSxsKTpyfSxsLmRpc3RhbmNlTWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQqdCxsKTpNYXRoLnNxcnQobyl9LGwuZGlzdGFuY2VNYXg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dCp0LGwpOk1hdGguc3FydChhKX0sbC50aGV0YT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10KnQsbCk6TWF0aC5zcXJ0KHMpfSxsfSxmb3JjZVJhZGlhbDpmdW5jdGlvbiBicHQodCxlLG4pe3ZhciBpLHIsbyxhPXlXKC4xKTtmdW5jdGlvbiBzKHQpe2Zvcih2YXIgYT0wLHM9aS5sZW5ndGg7YTxzOysrYSl7dmFyIGw9aVthXSxjPWwueC1lfHwxZS02LHU9bC55LW58fDFlLTYsaD1NYXRoLnNxcnQoYypjK3UqdSksZD0ob1thXS1oKSpyW2FdKnQvaDtsLnZ4Kz1jKmQsbC52eSs9dSpkfX1mdW5jdGlvbiBsKCl7aWYoaSl7dmFyIGUsbj1pLmxlbmd0aDtmb3Iocj1uZXcgQXJyYXkobiksbz1uZXcgQXJyYXkobiksZT0wO2U8bjsrK2Upb1tlXT0rdChpW2VdLGUsaSkscltlXT1pc05hTihvW2VdKT8wOithKGlbZV0sZSxpKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXlXKCt0KSksbnVsbD09ZSYmKGU9MCksbnVsbD09biYmKG49MCkscy5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2k9dCxsKCl9LHMuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp5VygrdCksbCgpLHMpOmF9LHMucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6eVcoK2UpLGwoKSxzKTp0fSxzLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3Qscyk6ZX0scy55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LHMpOm59LHN9LGZvcmNlU2ltdWxhdGlvbjpmdW5jdGlvbiB4cHQodCl7dmFyIGUsbj0xLGk9LjAwMSxyPTEtTWF0aC5wb3coaSwxLzMwMCksbz0wLGE9LjYscz1xVygpLGw9Z3EodSksYz1KVygidGljayIsImVuZCIpO2Z1bmN0aW9uIHUoKXtoKCksYy5jYWxsKCJ0aWNrIixlKSxuPGkmJihsLnN0b3AoKSxjLmNhbGwoImVuZCIsZSkpfWZ1bmN0aW9uIGgoKXt2YXIgZSxpLGw9dC5sZW5ndGg7Zm9yKG4rPShvLW4pKnIscy5lYWNoKChmdW5jdGlvbih0KXt0KG4pfSkpLGU9MDtlPGw7KytlKW51bGw9PShpPXRbZV0pLmZ4P2kueCs9aS52eCo9YTooaS54PWkuZngsaS52eD0wKSxudWxsPT1pLmZ5P2kueSs9aS52eSo9YTooaS55PWkuZnksaS52eT0wKX1mdW5jdGlvbiBkKCl7Zm9yKHZhciBlLG49MCxpPXQubGVuZ3RoO248aTsrK24pe2lmKChlPXRbbl0pLmluZGV4PW4saXNOYU4oZS54KXx8aXNOYU4oZS55KSl7dmFyIHI9MTAqTWF0aC5zcXJ0KG4pLG89bipTcTtlLng9cipNYXRoLmNvcyhvKSxlLnk9cipNYXRoLnNpbihvKX0oaXNOYU4oZS52eCl8fGlzTmFOKGUudnkpKSYmKGUudng9ZS52eT0wKX19ZnVuY3Rpb24gcChlKXtyZXR1cm4gZS5pbml0aWFsaXplJiZlLmluaXRpYWxpemUodCksZX1yZXR1cm4gbnVsbD09dCYmKHQ9W10pLGQoKSxlPXt0aWNrOmgscmVzdGFydDpmdW5jdGlvbigpe3JldHVybiBsLnJlc3RhcnQodSksZX0sc3RvcDpmdW5jdGlvbigpe3JldHVybiBsLnN0b3AoKSxlfSxub2RlczpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uLGQoKSxzLmVhY2gocCksZSk6dH0sYWxwaGE6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3QsZSk6bn0sYWxwaGFNaW46ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3QsZSk6aX0sYWxwaGFEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdCxlKTorcn0sYWxwaGFUYXJnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3QsZSk6b30sdmVsb2NpdHlEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0xLXQsZSk6MS1hfSxmb3JjZTpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KG51bGw9PW4/cy5yZW1vdmUodCk6cy5zZXQodCxwKG4pKSxlKTpzLmdldCh0KX0sZmluZDpmdW5jdGlvbihlLG4saSl7dmFyIHIsbyxhLHMsbCxjPTAsdT10Lmxlbmd0aDtmb3IobnVsbD09aT9pPTEvMDppKj1pLGM9MDtjPHU7KytjKShhPShyPWUtKHM9dFtjXSkueCkqcisobz1uLXMueSkqbyk8aSYmKGw9cyxpPWEpO3JldHVybiBsfSxvbjpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGMub24odCxuKSxlKTpjLm9uKHQpfX19LGZvcmNlWDpmdW5jdGlvbiB3cHQodCl7dmFyIGUsbixpLHI9eVcoLjEpO2Z1bmN0aW9uIG8odCl7Zm9yKHZhciByLG89MCxhPWUubGVuZ3RoO288YTsrK28pKHI9ZVtvXSkudngrPShpW29dLXIueCkqbltvXSp0fWZ1bmN0aW9uIGEoKXtpZihlKXt2YXIgbyxhPWUubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShhKSxpPW5ldyBBcnJheShhKSxvPTA7bzxhOysrbyluW29dPWlzTmFOKGlbb109K3QoZVtvXSxvLGUpKT8wOityKGVbb10sbyxlKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXlXKG51bGw9PXQ/MDordCkpLG8uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtlPXQsYSgpfSxvLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eVcoK3QpLGEoKSxvKTpyfSxvLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTp5VygrZSksYSgpLG8pOnR9LG99LGZvcmNlWTpmdW5jdGlvbiBTcHQodCl7dmFyIGUsbixpLHI9eVcoLjEpO2Z1bmN0aW9uIG8odCl7Zm9yKHZhciByLG89MCxhPWUubGVuZ3RoO288YTsrK28pKHI9ZVtvXSkudnkrPShpW29dLXIueSkqbltvXSp0fWZ1bmN0aW9uIGEoKXtpZihlKXt2YXIgbyxhPWUubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShhKSxpPW5ldyBBcnJheShhKSxvPTA7bzxhOysrbyluW29dPWlzTmFOKGlbb109K3QoZVtvXSxvLGUpKT8wOityKGVbb10sbyxlKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXlXKG51bGw9PXQ/MDordCkpLG8uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtlPXQsYSgpfSxvLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eVcoK3QpLGEoKSxvKTpyfSxvLnk9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTp5VygrZSksYSgpLG8pOnR9LG99LGZvcm1hdERlZmF1bHRMb2NhbGU6SHEsZ2V0IGZvcm1hdCgpe3JldHVybiBPcX0sZ2V0IGZvcm1hdFByZWZpeCgpe3JldHVybiB6cX0sZm9ybWF0TG9jYWxlOkJxLGZvcm1hdFNwZWNpZmllcjpQcSxwcmVjaXNpb25GaXhlZDpmdW5jdGlvbiBNcHQodCl7cmV0dXJuIE1hdGgubWF4KDAsLUVxKE1hdGguYWJzKHQpKSl9LHByZWNpc2lvblByZWZpeDpmdW5jdGlvbiBFcHQodCxlKXtyZXR1cm4gTWF0aC5tYXgoMCwzKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihFcShlKS8zKSkpLUVxKE1hdGguYWJzKHQpKSl9LHByZWNpc2lvblJvdW5kOmZ1bmN0aW9uIFRwdCh0LGUpe3JldHVybiB0PU1hdGguYWJzKHQpLGU9TWF0aC5hYnMoZSktdCxNYXRoLm1heCgwLEVxKGUpLUVxKHQpKSsxfSxnZW9BcmVhOmZ1bmN0aW9uIENwdCh0KXtyZXR1cm4gRVkucmVzZXQoKSx5WSh0LFRZKSwyKkVZfSxnZW9Cb3VuZHM6ZnVuY3Rpb24gQXB0KHQpe3ZhciBlLG4saSxyLG8sYSxzO2lmKFZZPUZZPS0oQlk9SFk9MS8wKSxxWT1bXSx5WSh0LGhYKSxuPXFZLmxlbmd0aCl7Zm9yKHFZLnNvcnQoYlgpLGU9MSxvPVtpPXFZWzBdXTtlPG47KytlKXhYKGksKHI9cVlbZV0pWzBdKXx8eFgoaSxyWzFdKT8odlgoaVswXSxyWzFdKT52WChpWzBdLGlbMV0pJiYoaVsxXT1yWzFdKSx2WChyWzBdLGlbMV0pPnZYKGlbMF0saVsxXSkmJihpWzBdPXJbMF0pKTpvLnB1c2goaT1yKTtmb3IoYT0tMS8wLGU9MCxpPW9bbj1vLmxlbmd0aC0xXTtlPD1uO2k9ciwrK2UpKHM9dlgoaVsxXSwocj1vW2VdKVswXSkpPmEmJihhPXMsQlk9clswXSxGWT1pWzFdKX1yZXR1cm4gcVk9WVk9bnVsbCxCWT09PTEvMHx8SFk9PT0xLzA/W1tOYU4sTmFOXSxbTmFOLE5hTl1dOltbQlksSFldLFtGWSxWWV1dfSxnZW9DZW50cm9pZDpmdW5jdGlvbiBrcHQodCl7WFk9JFk9S1k9Wlk9Slk9UVk9dFg9ZVg9blg9aVg9clg9MCx5WSh0LHdYKTt2YXIgZT1uWCxuPWlYLGk9clgscj1lKmUrbipuK2kqaTtyZXR1cm4gcjwxZS0xMiYmKGU9UVksbj10WCxpPWVYLCRZPEdxJiYoZT1LWSxuPVpZLGk9SlkpLChyPWUqZStuKm4raSppKTwxZS0xMik/W05hTixOYU5dOltRcShuLGUpKiRxLHVZKGkvc1kocikpKiRxXX0sZ2VvQ2lyY2xlOmZ1bmN0aW9uIExwdCgpe3ZhciB0LGUsbj1JWChbMCwwXSksaT1JWCg5MCkscj1JWCg2KSxvPXtwb2ludDpmdW5jdGlvbiBhKG4saSl7dC5wdXNoKG49ZShuLGkpKSxuWzBdKj0kcSxuWzFdKj0kcX19O2Z1bmN0aW9uIHMoKXt2YXIgYT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxzPWkuYXBwbHkodGhpcyxhcmd1bWVudHMpKktxLGw9ci5hcHBseSh0aGlzLGFyZ3VtZW50cykqS3E7cmV0dXJuIHQ9W10sZT16WCgtYVswXSpLcSwtYVsxXSpLcSwwKS5pbnZlcnQsVlgobyxzLGwsMSksYT17dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W3RdfSx0PWU9bnVsbCxhfXJldHVybiBzLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OklYKFsrdFswXSwrdFsxXV0pLHMpOm59LHMucmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SVgoK3QpLHMpOml9LHMucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SVgoK3QpLHMpOnJ9LHN9LGdlb0NsaXBBbnRpbWVyaWRpYW46aSQsZ2VvQ2xpcENpcmNsZTphJCxnZW9DbGlwRXh0ZW50OmZ1bmN0aW9uIFBwdCgpe3ZhciB0LGUsbixpPTAscj0wLG89OTYwLGE9NTAwO3JldHVybiBuPXtzdHJlYW06ZnVuY3Rpb24obil7cmV0dXJuIHQmJmU9PT1uP3Q6dD1jJChpLHIsbyxhKShlPW4pfSxleHRlbnQ6ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3NbMF1bMF0scj0rc1swXVsxXSxvPStzWzFdWzBdLGE9K3NbMV1bMV0sdD1lPW51bGwsbik6W1tpLHJdLFtvLGFdXX19fSxnZW9DbGlwUmVjdGFuZ2xlOmMkLGdlb0NvbnRhaW5zOmZ1bmN0aW9uIE5wdCh0LGUpe3JldHVybih0JiZTJC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP1MkW3QudHlwZV06RSQpKHQsZSl9LGdlb0Rpc3RhbmNlOnckLGdlb0dyYXRpY3VsZTpJJCxnZW9HcmF0aWN1bGUxMDpmdW5jdGlvbiBJcHQoKXtyZXR1cm4gSSQoKSgpfSxnZW9JbnRlcnBvbGF0ZTpmdW5jdGlvbiBScHQodCxlKXt2YXIgbj10WzBdKktxLGk9dFsxXSpLcSxyPWVbMF0qS3Esbz1lWzFdKktxLGE9dFkoaSkscz1vWShpKSxsPXRZKG8pLGM9b1kobyksdT1hKnRZKG4pLGg9YSpvWShuKSxkPWwqdFkocikscD1sKm9ZKHIpLGY9Mip1WShzWShoWShvLWkpK2EqbCpoWShyLW4pKSksbT1vWShmKSxnPWY/ZnVuY3Rpb24odCl7dmFyIGU9b1kodCo9ZikvbSxuPW9ZKGYtdCkvbSxpPW4qdStlKmQscj1uKmgrZSpwLG89bipzK2UqYztyZXR1cm5bUXEocixpKSokcSxRcShvLHNZKGkqaStyKnIpKSokcV19OmZ1bmN0aW9uKCl7cmV0dXJuW24qJHEsaSokcV19O3JldHVybiBnLmRpc3RhbmNlPWYsZ30sZ2VvTGVuZ3RoOnYkLGdlb1BhdGg6ZnVuY3Rpb24gT3B0KHQsZSl7dmFyIG4saSxyPTQuNTtmdW5jdGlvbiBvKHQpe3JldHVybiB0JiYoImZ1bmN0aW9uIj09dHlwZW9mIHImJmkucG9pbnRSYWRpdXMoK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKSx5WSh0LG4oaSkpKSxpLnJlc3VsdCgpfXJldHVybiBvLmFyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIHlZKHQsbihWJCkpLFYkLnJlc3VsdCgpfSxvLm1lYXN1cmU9ZnVuY3Rpb24odCl7cmV0dXJuIHlZKHQsbihBSykpLEFLLnJlc3VsdCgpfSxvLmJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4geVkodCxuKHRLKSksdEsucmVzdWx0KCl9LG8uY2VudHJvaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHlZKHQsbihoSykpLGhLLnJlc3VsdCgpfSxvLnByb2plY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09ZT8odD1udWxsLFIkKToodD1lKS5zdHJlYW0sbyk6dH0sby5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/KGU9bnVsbCxuZXcgUEspOm5ldyB4SyhlPXQpLCJmdW5jdGlvbiIhPXR5cGVvZiByJiZpLnBvaW50UmFkaXVzKHIpLG8pOmV9LG8ucG9pbnRSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDooaS5wb2ludFJhZGl1cygrdCksK3QpLG8pOnJ9LG8ucHJvamVjdGlvbih0KS5jb250ZXh0KGUpfSxnZW9BbGJlcnM6WEssZ2VvQWxiZXJzVXNhOmZ1bmN0aW9uIHpwdCgpe3ZhciB0LGUsbixpLHIsbyxhPVhLKCkscz1ZSygpLnJvdGF0ZShbMTU0LDBdKS5jZW50ZXIoWy0yLDU4LjVdKS5wYXJhbGxlbHMoWzU1LDY1XSksbD1ZSygpLnJvdGF0ZShbMTU3LDBdKS5jZW50ZXIoWy0zLDE5LjldKS5wYXJhbGxlbHMoWzgsMThdKSxjPXtwb2ludDpmdW5jdGlvbih0LGUpe289W3QsZV19fTtmdW5jdGlvbiB1KHQpe3ZhciBlPXRbMF0sYT10WzFdO3JldHVybiBvPW51bGwsbi5wb2ludChlLGEpLG98fChpLnBvaW50KGUsYSksbyl8fChyLnBvaW50KGUsYSksbyl9ZnVuY3Rpb24gaCgpe3JldHVybiB0PWU9bnVsbCx1fXJldHVybiB1LmludmVydD1mdW5jdGlvbih0KXt2YXIgZT1hLnNjYWxlKCksbj1hLnRyYW5zbGF0ZSgpLGk9KHRbMF0tblswXSkvZSxyPSh0WzFdLW5bMV0pL2U7cmV0dXJuKHI+PS4xMiYmcjwuMjM0JiZpPj0tLjQyNSYmaTwtLjIxND9zOnI+PS4xNjYmJnI8LjIzNCYmaT49LS4yMTQmJmk8LS4xMTU/bDphKS5pbnZlcnQodCl9LHUuc3RyZWFtPWZ1bmN0aW9uKG4pe3JldHVybiB0JiZlPT09bj90OnQ9KGZ1bmN0aW9uIGkodCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJue3BvaW50OmZ1bmN0aW9uKG4saSl7Zm9yKHZhciByPS0xOysrcjxlOyl0W3JdLnBvaW50KG4saSl9LHNwaGVyZTpmdW5jdGlvbigpe2Zvcih2YXIgbj0tMTsrK248ZTspdFtuXS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLnBvbHlnb25FbmQoKX19fSkoW2Euc3RyZWFtKGU9bikscy5zdHJlYW0obiksbC5zdHJlYW0obildKX0sdS5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGEucHJlY2lzaW9uKHQpLHMucHJlY2lzaW9uKHQpLGwucHJlY2lzaW9uKHQpLGgoKSk6YS5wcmVjaXNpb24oKX0sdS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYS5zY2FsZSh0KSxzLnNjYWxlKC4zNSp0KSxsLnNjYWxlKHQpLHUudHJhbnNsYXRlKGEudHJhbnNsYXRlKCkpKTphLnNjYWxlKCl9LHUudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBhLnRyYW5zbGF0ZSgpO3ZhciBlPWEuc2NhbGUoKSxvPSt0WzBdLHU9K3RbMV07cmV0dXJuIG49YS50cmFuc2xhdGUodCkuY2xpcEV4dGVudChbW28tLjQ1NSplLHUtLjIzOCplXSxbbysuNDU1KmUsdSsuMjM4KmVdXSkuc3RyZWFtKGMpLGk9cy50cmFuc2xhdGUoW28tLjMwNyplLHUrLjIwMSplXSkuY2xpcEV4dGVudChbW28tLjQyNSplK0dxLHUrLjEyKmUrR3FdLFtvLS4yMTQqZS1HcSx1Ky4yMzQqZS1HcV1dKS5zdHJlYW0oYykscj1sLnRyYW5zbGF0ZShbby0uMjA1KmUsdSsuMjEyKmVdKS5jbGlwRXh0ZW50KFtbby0uMjE0KmUrR3EsdSsuMTY2KmUrR3FdLFtvLS4xMTUqZS1HcSx1Ky4yMzQqZS1HcV1dKS5zdHJlYW0oYyksaCgpfSx1LmZpdEV4dGVudD1mdW5jdGlvbih0LGUpe3JldHVybiB6Syh1LHQsZSl9LHUuZml0U2l6ZT1mdW5jdGlvbih0LGUpe3JldHVybiBESyh1LHQsZSl9LHUuZml0V2lkdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gQksodSx0LGUpfSx1LmZpdEhlaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiBISyh1LHQsZSl9LHUuc2NhbGUoMTA3MCl9LGdlb0F6aW11dGhhbEVxdWFsQXJlYTpmdW5jdGlvbiBEcHQoKXtyZXR1cm4gaksoWkspLnNjYWxlKDEyNC43NSkuY2xpcEFuZ2xlKDE3OS45OTkpfSxnZW9BemltdXRoYWxFcXVhbEFyZWFSYXc6WkssZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnQ6ZnVuY3Rpb24gQnB0KCl7cmV0dXJuIGpLKEpLKS5zY2FsZSg3OS40MTg4KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LGdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3OkpLLGdlb0NvbmljQ29uZm9ybWFsOmZ1bmN0aW9uIEhwdCgpe3JldHVybiBXSyhuWikuc2NhbGUoMTA5LjUpLnBhcmFsbGVscyhbMzAsMzBdKX0sZ2VvQ29uaWNDb25mb3JtYWxSYXc6blosZ2VvQ29uaWNFcXVhbEFyZWE6WUssZ2VvQ29uaWNFcXVhbEFyZWFSYXc6cUssZ2VvQ29uaWNFcXVpZGlzdGFudDpmdW5jdGlvbiBGcHQoKXtyZXR1cm4gV0soclopLnNjYWxlKDEzMS4xNTQpLmNlbnRlcihbMCwxMy45Mzg5XSl9LGdlb0NvbmljRXF1aWRpc3RhbnRSYXc6closZ2VvRXF1aXJlY3Rhbmd1bGFyOmZ1bmN0aW9uIFZwdCgpe3JldHVybiBqSyhpWikuc2NhbGUoMTUyLjYzKX0sZ2VvRXF1aXJlY3Rhbmd1bGFyUmF3OmlaLGdlb0dub21vbmljOmZ1bmN0aW9uIFVwdCgpe3JldHVybiBqSyhvWikuc2NhbGUoMTQ0LjA0OSkuY2xpcEFuZ2xlKDYwKX0sZ2VvR25vbW9uaWNSYXc6b1osZ2VvSWRlbnRpdHk6ZnVuY3Rpb24ganB0KCl7dmFyIHQsZSxuLGkscixvLGE9MSxzPTAsbD0wLGM9MSx1PTEsaD1SJCxkPW51bGwscD1SJDtmdW5jdGlvbiBmKCl7cmV0dXJuIGk9cj1udWxsLG99cmV0dXJuIG89e3N0cmVhbTpmdW5jdGlvbih0KXtyZXR1cm4gaSYmcj09PXQ/aTppPWgocChyPXQpKX0scG9zdGNsaXA6ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9aSxkPXQ9ZT1uPW51bGwsZigpKTpwfSxjbGlwRXh0ZW50OmZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPW51bGw9PWk/KGQ9dD1lPW49bnVsbCxSJCk6YyQoZD0raVswXVswXSx0PStpWzBdWzFdLGU9K2lbMV1bMF0sbj0raVsxXVsxXSksZigpKTpudWxsPT1kP251bGw6W1tkLHRdLFtlLG5dXX0sc2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9YVooKGE9K3QpKmMsYSp1LHMsbCksZigpKTphfSx0cmFuc2xhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9YVooYSpjLGEqdSxzPSt0WzBdLGw9K3RbMV0pLGYoKSk6W3MsbF19LHJlZmxlY3RYOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPWFaKGEqKGM9dD8tMToxKSxhKnUscyxsKSxmKCkpOmM8MH0scmVmbGVjdFk6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9YVooYSpjLGEqKHU9dD8tMToxKSxzLGwpLGYoKSk6dTwwfSxmaXRFeHRlbnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4geksobyx0LGUpfSxmaXRTaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIERLKG8sdCxlKX0sZml0V2lkdGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gQksobyx0LGUpfSxmaXRIZWlnaHQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gSEsobyx0LGUpfX19LGdlb1Byb2plY3Rpb246akssZ2VvUHJvamVjdGlvbk11dGF0b3I6R0ssZ2VvTWVyY2F0b3I6ZnVuY3Rpb24gR3B0KCl7cmV0dXJuIHRaKFFLKS5zY2FsZSg5NjEvWHEpfSxnZW9NZXJjYXRvclJhdzpRSyxnZW9OYXR1cmFsRWFydGgxOmZ1bmN0aW9uIFdwdCgpe3JldHVybiBqSyhzWikuc2NhbGUoMTc1LjI5NSl9LGdlb05hdHVyYWxFYXJ0aDFSYXc6c1osZ2VvT3J0aG9ncmFwaGljOmZ1bmN0aW9uIHFwdCgpe3JldHVybiBqSyhsWikuc2NhbGUoMjQ5LjUpLmNsaXBBbmdsZSg5MC4wMDAwMDEpfSxnZW9PcnRob2dyYXBoaWNSYXc6bFosZ2VvU3RlcmVvZ3JhcGhpYzpmdW5jdGlvbiBZcHQoKXtyZXR1cm4gaksoY1opLnNjYWxlKDI1MCkuY2xpcEFuZ2xlKDE0Mil9LGdlb1N0ZXJlb2dyYXBoaWNSYXc6Y1osZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yOmZ1bmN0aW9uIFhwdCgpe3ZhciB0PXRaKHVaKSxlPXQuY2VudGVyLG49dC5yb3RhdGU7cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoWy10WzFdLHRbMF1dKTpbKHQ9ZSgpKVsxXSwtdFswXV19LHQucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oW3RbMF0sdFsxXSx0Lmxlbmd0aD4yP3RbMl0rOTA6OTBdKTpbKHQ9bigpKVswXSx0WzFdLHRbMl0tOTBdfSxuKFswLDAsOTBdKS5zY2FsZSgxNTkuMTU1KX0sZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yUmF3OnVaLGdlb1JvdGF0aW9uOkZYLGdlb1N0cmVhbTp5WSxnZW9UcmFuc2Zvcm06ZnVuY3Rpb24gJHB0KHQpe3JldHVybntzdHJlYW06SUsodCl9fSxjbHVzdGVyOmZ1bmN0aW9uIEtwdCgpe3ZhciB0PWhaLGU9MSxuPTEsaT0hMTtmdW5jdGlvbiByKHIpe3ZhciBvLGE9MDtyLmVhY2hBZnRlcigoZnVuY3Rpb24oZSl7dmFyIG49ZS5jaGlsZHJlbjtuPyhlLng9KGZ1bmN0aW9uIGkodCl7cmV0dXJuIHQucmVkdWNlKGRaLDApL3QubGVuZ3RofSkobiksZS55PShmdW5jdGlvbiByKHQpe3JldHVybiAxK3QucmVkdWNlKHBaLDApfSkobikpOihlLng9bz9hKz10KGUsbyk6MCxlLnk9MCxvPWUpfSkpO3ZhciBzPShmdW5jdGlvbiBsKHQpe2Zvcih2YXIgZTtlPXQuY2hpbGRyZW47KXQ9ZVswXTtyZXR1cm4gdH0pKHIpLGM9KGZ1bmN0aW9uIHUodCl7Zm9yKHZhciBlO2U9dC5jaGlsZHJlbjspdD1lW2UubGVuZ3RoLTFdO3JldHVybiB0fSkociksaD1zLngtdChzLGMpLzIsZD1jLngrdChjLHMpLzI7cmV0dXJuIHIuZWFjaEFmdGVyKGk/ZnVuY3Rpb24odCl7dC54PSh0Lngtci54KSplLHQueT0oci55LXQueSkqbn06ZnVuY3Rpb24odCl7dC54PSh0LngtaCkvKGQtaCkqZSx0Lnk9KDEtKHIueT90Lnkvci55OjEpKSpufSl9cmV0dXJuIHIuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLHIpOnR9LHIuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMSxlPSt0WzBdLG49K3RbMV0scik6aT9udWxsOltlLG5dfSxyLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEwLGU9K3RbMF0sbj0rdFsxXSxyKTppP1tlLG5dOm51bGx9LHJ9LGhpZXJhcmNoeTptWixwYWNrOmZ1bmN0aW9uIFpwdCgpe3ZhciB0PW51bGwsZT0xLG49MSxpPVhaO2Z1bmN0aW9uIHIocil7cmV0dXJuIHIueD1lLzIsci55PW4vMix0P3IuZWFjaEJlZm9yZShaWih0KSkuZWFjaEFmdGVyKEpaKGksLjUpKS5lYWNoQmVmb3JlKFFaKDEpKTpyLmVhY2hCZWZvcmUoWlooS1opKS5lYWNoQWZ0ZXIoSlooWFosMSkpLmVhY2hBZnRlcihKWihpLHIuci9NYXRoLm1pbihlLG4pKSkuZWFjaEJlZm9yZShRWihNYXRoLm1pbihlLG4pLygyKnIucikpKSxyfXJldHVybiByLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1xWihlKSxyKTp0fSxyLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0sbj0rdFsxXSxyKTpbZSxuXX0sci5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6JFooK3QpLHIpOml9LHJ9LHBhY2tTaWJsaW5nczpmdW5jdGlvbiBKcHQodCl7cmV0dXJuIFdaKHQpLHR9LHBhY2tFbmNsb3NlOklaLHBhcnRpdGlvbjpmdW5jdGlvbiBRcHQoKXt2YXIgdD0xLGU9MSxuPTAsaT0hMTtmdW5jdGlvbiByKHIpe3ZhciBvPXIuaGVpZ2h0KzE7cmV0dXJuIHIueDA9ci55MD1uLHIueDE9dCxyLnkxPWUvbyxyLmVhY2hCZWZvcmUoKGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gZnVuY3Rpb24oaSl7aS5jaGlsZHJlbiYmZUooaSxpLngwLHQqKGkuZGVwdGgrMSkvZSxpLngxLHQqKGkuZGVwdGgrMikvZSk7dmFyIHI9aS54MCxvPWkueTAsYT1pLngxLW4scz1pLnkxLW47YTxyJiYocj1hPShyK2EpLzIpLHM8byYmKG89cz0obytzKS8yKSxpLngwPXIsaS55MD1vLGkueDE9YSxpLnkxPXN9fSkoZSxvKSksaSYmci5lYWNoQmVmb3JlKHRKKSxyfXJldHVybiByLnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEhdCxyKTppfSxyLnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K25bMF0sZT0rblsxXSxyKTpbdCxlXX0sci5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LHIpOm59LHJ9LHN0cmF0aWZ5OmZ1bmN0aW9uIHRmdCgpe3ZhciB0PXJKLGU9b0o7ZnVuY3Rpb24gbihuKXt2YXIgaSxyLG8sYSxzLGwsYyx1PW4ubGVuZ3RoLGg9bmV3IEFycmF5KHUpLGQ9e307Zm9yKHI9MDtyPHU7KytyKXM9aFtyXT1uZXcgdlooaT1uW3JdKSxudWxsIT0obD10KGkscixuKSkmJihsKz0iIikmJihkW2M9IiQiKyhzLmlkPWwpXT1jIGluIGQ/aUo6cyk7Zm9yKHI9MDtyPHU7KytyKWlmKHM9aFtyXSxudWxsIT0obD1lKG5bcl0scixuKSkmJihsKz0iIikpe2lmKCEoYT1kWyIkIitsXSkpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2wpO2lmKGE9PT1pSil0aHJvdyBuZXcgRXJyb3IoImFtYmlndW91czogIitsKTthLmNoaWxkcmVuP2EuY2hpbGRyZW4ucHVzaChzKTphLmNoaWxkcmVuPVtzXSxzLnBhcmVudD1hfWVsc2V7aWYobyl0aHJvdyBuZXcgRXJyb3IoIm11bHRpcGxlIHJvb3RzIik7bz1zfWlmKCFvKXRocm93IG5ldyBFcnJvcigibm8gcm9vdCIpO2lmKG8ucGFyZW50PW5KLG8uZWFjaEJlZm9yZSgoZnVuY3Rpb24odCl7dC5kZXB0aD10LnBhcmVudC5kZXB0aCsxLC0tdX0pKS5lYWNoQmVmb3JlKHlaKSxvLnBhcmVudD1udWxsLHU+MCl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIik7cmV0dXJuIG99cmV0dXJuIG4uaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9WVooZSksbik6dH0sbi5wYXJlbnRJZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1ZWih0KSxuKTplfSxufSx0cmVlOmZ1bmN0aW9uIGVmdCgpe3ZhciB0PWFKLGU9MSxuPTEsaT1udWxsO2Z1bmN0aW9uIHIocil7dmFyIGw9KGZ1bmN0aW9uIGModCl7Zm9yKHZhciBlLG4saSxyLG8sYT1uZXcgaEoodCwwKSxzPVthXTtlPXMucG9wKCk7KWlmKGk9ZS5fLmNoaWxkcmVuKWZvcihlLmNoaWxkcmVuPW5ldyBBcnJheShvPWkubGVuZ3RoKSxyPW8tMTtyPj0wOy0tcilzLnB1c2gobj1lLmNoaWxkcmVuW3JdPW5ldyBoSihpW3JdLHIpKSxuLnBhcmVudD1lO3JldHVybihhLnBhcmVudD1uZXcgaEoobnVsbCwwKSkuY2hpbGRyZW49W2FdLGF9KShyKTtpZihsLmVhY2hBZnRlcihvKSxsLnBhcmVudC5tPS1sLnosbC5lYWNoQmVmb3JlKGEpLGkpci5lYWNoQmVmb3JlKHMpO2Vsc2V7dmFyIHU9cixoPXIsZD1yO3IuZWFjaEJlZm9yZSgoZnVuY3Rpb24odCl7dC54PHUueCYmKHU9dCksdC54PmgueCYmKGg9dCksdC5kZXB0aD5kLmRlcHRoJiYoZD10KX0pKTt2YXIgcD11PT09aD8xOnQodSxoKS8yLGY9cC11LngsbT1lLyhoLngrcCtmKSxnPW4vKGQuZGVwdGh8fDEpO3IuZWFjaEJlZm9yZSgoZnVuY3Rpb24odCl7dC54PSh0LngrZikqbSx0Lnk9dC5kZXB0aCpnfSkpfXJldHVybiByfWZ1bmN0aW9uIG8oZSl7dmFyIG49ZS5jaGlsZHJlbixpPWUucGFyZW50LmNoaWxkcmVuLHI9ZS5pP2lbZS5pLTFdOm51bGw7aWYobil7IShmdW5jdGlvbiBvKHQpe2Zvcih2YXIgZSxuPTAsaT0wLHI9dC5jaGlsZHJlbixvPXIubGVuZ3RoOy0tbz49MDspKGU9cltvXSkueis9bixlLm0rPW4sbis9ZS5zKyhpKz1lLmMpfSkoZSk7dmFyIGE9KG5bMF0ueituW24ubGVuZ3RoLTFdLnopLzI7cj8oZS56PXIueit0KGUuXyxyLl8pLGUubT1lLnotYSk6ZS56PWF9ZWxzZSByJiYoZS56PXIueit0KGUuXyxyLl8pKTtlLnBhcmVudC5BPShmdW5jdGlvbiBzKGUsbixpKXtpZihuKXtmb3IodmFyIHIsbz1lLGE9ZSxzPW4sbD1vLnBhcmVudC5jaGlsZHJlblswXSxjPW8ubSx1PWEubSxoPXMubSxkPWwubTtzPWxKKHMpLG89c0oobykscyYmbzspbD1zSihsKSwoYT1sSihhKSkuYT1lLChyPXMueitoLW8uei1jK3Qocy5fLG8uXykpPjAmJihjSih1SihzLGUsaSksZSxyKSxjKz1yLHUrPXIpLGgrPXMubSxjKz1vLm0sZCs9bC5tLHUrPWEubTtzJiYhbEooYSkmJihhLnQ9cyxhLm0rPWgtdSksbyYmIXNKKGwpJiYobC50PW8sbC5tKz1jLWQsaT1lKX1yZXR1cm4gaX0pKGUscixlLnBhcmVudC5BfHxpWzBdKX1mdW5jdGlvbiBhKHQpe3QuXy54PXQueit0LnBhcmVudC5tLHQubSs9dC5wYXJlbnQubX1mdW5jdGlvbiBzKHQpe3QueCo9ZSx0Lnk9dC5kZXB0aCpufXJldHVybiByLnNlcGFyYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxyKTp0fSxyLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ITEsZT0rdFswXSxuPSt0WzFdLHIpOmk/bnVsbDpbZSxuXX0sci5ub2RlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMCxlPSt0WzBdLG49K3RbMV0scik6aT9bZSxuXTpudWxsfSxyfSx0cmVlbWFwOmZ1bmN0aW9uIG5mdCgpe3ZhciB0PW1KLGU9ITEsbj0xLGk9MSxyPVswXSxvPVhaLGE9WFoscz1YWixsPVhaLGM9WFo7ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdC54MD10LnkwPTAsdC54MT1uLHQueTE9aSx0LmVhY2hCZWZvcmUoaCkscj1bMF0sZSYmdC5lYWNoQmVmb3JlKHRKKSx0fWZ1bmN0aW9uIGgoZSl7dmFyIG49cltlLmRlcHRoXSxpPWUueDArbix1PWUueTArbixoPWUueDEtbixkPWUueTEtbjtoPGkmJihpPWg9KGkraCkvMiksZDx1JiYodT1kPSh1K2QpLzIpLGUueDA9aSxlLnkwPXUsZS54MT1oLGUueTE9ZCxlLmNoaWxkcmVuJiYobj1yW2UuZGVwdGgrMV09byhlKS8yLGkrPWMoZSktbix1Kz1hKGUpLW4sKGgtPXMoZSktbik8aSYmKGk9aD0oaStoKS8yKSwoZC09bChlKS1uKTx1JiYodT1kPSh1K2QpLzIpLHQoZSxpLHUsaCxkKSl9cmV0dXJuIHUucm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ISF0LHUpOmV9LHUuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdFswXSxpPSt0WzFdLHUpOltuLGldfSx1LnRpbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9WVooZSksdSk6dH0sdS5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3UucGFkZGluZ0lubmVyKHQpLnBhZGRpbmdPdXRlcih0KTp1LnBhZGRpbmdJbm5lcigpfSx1LnBhZGRpbmdJbm5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OiRaKCt0KSx1KTpvfSx1LnBhZGRpbmdPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD91LnBhZGRpbmdUb3AodCkucGFkZGluZ1JpZ2h0KHQpLnBhZGRpbmdCb3R0b20odCkucGFkZGluZ0xlZnQodCk6dS5wYWRkaW5nVG9wKCl9LHUucGFkZGluZ1RvcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OiRaKCt0KSx1KTphfSx1LnBhZGRpbmdSaWdodD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OiRaKCt0KSx1KTpzfSx1LnBhZGRpbmdCb3R0b209ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDokWigrdCksdSk6bH0sdS5wYWRkaW5nTGVmdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OiRaKCt0KSx1KTpjfSx1fSx0cmVlbWFwQmluYXJ5OmZ1bmN0aW9uIGlmdCh0LGUsbixpLHIpe3ZhciBvLGEscz10LmNoaWxkcmVuLGw9cy5sZW5ndGgsYz1uZXcgQXJyYXkobCsxKTtmb3IoY1swXT1hPW89MDtvPGw7KytvKWNbbysxXT1hKz1zW29dLnZhbHVlOyEoZnVuY3Rpb24gdChlLG4saSxyLG8sYSxsKXtpZihlPj1uLTEpe3ZhciB1PXNbZV07cmV0dXJuIHUueDA9cix1LnkwPW8sdS54MT1hLHZvaWQodS55MT1sKX1mb3IodmFyIGg9Y1tlXSxkPWkvMitoLHA9ZSsxLGY9bi0xO3A8Zjspe3ZhciBtPXArZj4+PjE7Y1ttXTxkP3A9bSsxOmY9bX1kLWNbcC0xXTxjW3BdLWQmJmUrMTxwJiYtLXA7dmFyIGc9Y1twXS1oLF89aS1nO2lmKGEtcj5sLW8pe3ZhciB5PShyKl8rYSpnKS9pO3QoZSxwLGcscixvLHksbCksdChwLG4sXyx5LG8sYSxsKX1lbHNle3ZhciB2PShvKl8rbCpnKS9pO3QoZSxwLGcscixvLGEsdiksdChwLG4sXyxyLHYsYSxsKX19KSgwLGwsdC52YWx1ZSxlLG4saSxyKX0sdHJlZW1hcERpY2U6ZUosdHJlZW1hcFNsaWNlOmRKLHRyZWVtYXBTbGljZURpY2U6ZnVuY3Rpb24gcmZ0KHQsZSxuLGkscil7KDEmdC5kZXB0aD9kSjplSikodCxlLG4saSxyKX0sdHJlZW1hcFNxdWFyaWZ5Om1KLHRyZWVtYXBSZXNxdWFyaWZ5OmdKLGludGVycG9sYXRlOkJRLGludGVycG9sYXRlQXJyYXk6UFEsaW50ZXJwb2xhdGVCYXNpczp4USxpbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkOndRLGludGVycG9sYXRlRGF0ZTpOUSxpbnRlcnBvbGF0ZU51bWJlcjpJUSxpbnRlcnBvbGF0ZU9iamVjdDpSUSxpbnRlcnBvbGF0ZVJvdW5kOmZ1bmN0aW9uIG9mdCh0LGUpe3JldHVybiBlLT10PSt0LGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKHQrZSpuKX19LGludGVycG9sYXRlU3RyaW5nOkRRLGludGVycG9sYXRlVHJhbnNmb3JtQ3NzOllRLGludGVycG9sYXRlVHJhbnNmb3JtU3ZnOiRRLGludGVycG9sYXRlWm9vbTpmdW5jdGlvbiBhZnQodCxlKXt2YXIgbixpLHI9dFswXSxvPXRbMV0sYT10WzJdLHM9ZVsyXSxsPWVbMF0tcixjPWVbMV0tbyx1PWwqbCtjKmM7aWYodTwxZS0xMilpPU1hdGgubG9nKHMvYSkvWlEsbj1mdW5jdGlvbih0KXtyZXR1cm5bcit0Kmwsbyt0KmMsYSpNYXRoLmV4cChaUSp0KmkpXX07ZWxzZXt2YXIgaD1NYXRoLnNxcnQodSksZD0ocypzLWEqYSs0KnUpLygyKmEqMipoKSxwPShzKnMtYSphLTQqdSkvKDIqcyoyKmgpLGY9TWF0aC5sb2coTWF0aC5zcXJ0KGQqZCsxKS1kKSxtPU1hdGgubG9nKE1hdGguc3FydChwKnArMSktcCk7aT0obS1mKS9aUSxuPWZ1bmN0aW9uKHQpe3ZhciBlPXQqaSxuPUpRKGYpLHM9YS8oMipoKSoobiooZnVuY3Rpb24gdSh0KXtyZXR1cm4oKHQ9TWF0aC5leHAoMip0KSktMSkvKHQrMSl9KShaUSplK2YpLShmdW5jdGlvbiBkKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSktMS90KS8yfSkoZikpO3JldHVybltyK3MqbCxvK3MqYyxhKm4vSlEoWlEqZStmKV19fXJldHVybiBuLmR1cmF0aW9uPTFlMyppLG59LGludGVycG9sYXRlUmdiOkNRLGludGVycG9sYXRlUmdiQmFzaXM6a1EsaW50ZXJwb2xhdGVSZ2JCYXNpc0Nsb3NlZDpMUSxpbnRlcnBvbGF0ZUhzbDp0MSxpbnRlcnBvbGF0ZUhzbExvbmc6ZTEsaW50ZXJwb2xhdGVMYWI6ZnVuY3Rpb24gc2Z0KHQsZSl7dmFyIG49VFEoKHQ9clEodCkpLmwsKGU9clEoZSkpLmwpLGk9VFEodC5hLGUuYSkscj1UUSh0LmIsZS5iKSxvPVRRKHQub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5sPW4oZSksdC5hPWkoZSksdC5iPXIoZSksdC5vcGFjaXR5PW8oZSksdCsiIn19LGludGVycG9sYXRlSGNsOmkxLGludGVycG9sYXRlSGNsTG9uZzpyMSxpbnRlcnBvbGF0ZUN1YmVoZWxpeDphMSxpbnRlcnBvbGF0ZUN1YmVoZWxpeExvbmc6czEscXVhbnRpemU6ZnVuY3Rpb24gbGZ0KHQsZSl7Zm9yKHZhciBuPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSluW2ldPXQoaS8oZS0xKSk7cmV0dXJuIG59LHBhdGg6cDEscG9seWdvbkFyZWE6ZnVuY3Rpb24gY2Z0KHQpe2Zvcih2YXIgZSxuPS0xLGk9dC5sZW5ndGgscj10W2ktMV0sbz0wOysrbjxpOylvKz0oZT1yKVsxXSoocj10W25dKVswXS1lWzBdKnJbMV07cmV0dXJuIG8vMn0scG9seWdvbkNlbnRyb2lkOmZ1bmN0aW9uIHVmdCh0KXtmb3IodmFyIGUsbixpPS0xLHI9dC5sZW5ndGgsbz0wLGE9MCxzPXRbci0xXSxsPTA7KytpPHI7KWwrPW49KGU9cylbMF0qKHM9dFtpXSlbMV0tc1swXSplWzFdLG8rPShlWzBdK3NbMF0pKm4sYSs9KGVbMV0rc1sxXSkqbjtyZXR1cm5bby8obCo9MyksYS9sXX0scG9seWdvbkh1bGw6ZnVuY3Rpb24gaGZ0KHQpe2lmKChuPXQubGVuZ3RoKTwzKXJldHVybiBudWxsO3ZhciBlLG4saT1uZXcgQXJyYXkobikscj1uZXcgQXJyYXkobik7Zm9yKGU9MDtlPG47KytlKWlbZV09Wyt0W2VdWzBdLCt0W2VdWzFdLGVdO2ZvcihpLnNvcnQobTEpLGU9MDtlPG47KytlKXJbZV09W2lbZV1bMF0sLWlbZV1bMV1dO3ZhciBvPWcxKGkpLGE9ZzEocikscz1hWzBdPT09b1swXSxsPWFbYS5sZW5ndGgtMV09PT1vW28ubGVuZ3RoLTFdLGM9W107Zm9yKGU9by5sZW5ndGgtMTtlPj0wOy0tZSljLnB1c2godFtpW29bZV1dWzJdXSk7Zm9yKGU9K3M7ZTxhLmxlbmd0aC1sOysrZSljLnB1c2godFtpW2FbZV1dWzJdXSk7cmV0dXJuIGN9LHBvbHlnb25Db250YWluczpmdW5jdGlvbiBkZnQodCxlKXtmb3IodmFyIG4saSxyPXQubGVuZ3RoLG89dFtyLTFdLGE9ZVswXSxzPWVbMV0sbD1vWzBdLGM9b1sxXSx1PSExLGg9MDtoPHI7KytoKW49KG89dFtoXSlbMF0sKGk9b1sxXSk+cyE9Yz5zJiZhPChsLW4pKihzLWkpLyhjLWkpK24mJih1PSF1KSxsPW4sYz1pO3JldHVybiB1fSxwb2x5Z29uTGVuZ3RoOmZ1bmN0aW9uIHBmdCh0KXtmb3IodmFyIGUsbixpPS0xLHI9dC5sZW5ndGgsbz10W3ItMV0sYT1vWzBdLHM9b1sxXSxsPTA7KytpPHI7KWU9YSxuPXMsZS09YT0obz10W2ldKVswXSxuLT1zPW9bMV0sbCs9TWF0aC5zcXJ0KGUqZStuKm4pO3JldHVybiBsfSxxdWFkdHJlZTp4MSxxdWV1ZTpxMSxyYW5kb21Vbmlmb3JtOlgxLHJhbmRvbU5vcm1hbDokMSxyYW5kb21Mb2dOb3JtYWw6SzEscmFuZG9tQmF0ZXM6SjEscmFuZG9tSXJ3aW5IYWxsOloxLHJhbmRvbUV4cG9uZW50aWFsOlExLHJlcXVlc3Q6dDAsaHRtbDpuMCxqc29uOmkwLHRleHQ6cjAseG1sOm8wLGNzdjpsMCx0c3Y6YzAsc2NhbGVCYW5kOlAwLHNjYWxlUG9pbnQ6ZnVuY3Rpb24gZmZ0KCl7cmV0dXJuIE4wKFAwKCkucGFkZGluZ0lubmVyKDEpKX0sc2NhbGVJZGVudGl0eTpmdW5jdGlvbiB0KCl7dmFyIGU9WzAsMV07ZnVuY3Rpb24gbih0KXtyZXR1cm4rdH1yZXR1cm4gbi5pbnZlcnQ9bixuLmRvbWFpbj1uLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPUMwLmNhbGwodCxqMiksbik6ZS5zbGljZSgpfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLmRvbWFpbihlKX0sZDUobil9LHNjYWxlTGluZWFyOmZ1bmN0aW9uIHQoKXt2YXIgZT0kMihXMixOMik7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiBYMihlLHQoKSl9LGQ1KGUpfSxzY2FsZUxvZzpmdW5jdGlvbiB0KCl7dmFyIGU9JDIoZjUsbTUpLmRvbWFpbihbMSwxMF0pLG49ZS5kb21haW4saT0xMCxyPXk1KDEwKSxvPV81KDEwKTtmdW5jdGlvbiBhKCl7cmV0dXJuIHI9eTUoaSksbz1fNShpKSxuKClbMF08MCYmKHI9djUociksbz12NShvKSksZX1yZXR1cm4gZS5iYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0LGEoKSk6aX0sZS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG4odCksYSgpKTpuKCl9LGUudGlja3M9ZnVuY3Rpb24odCl7dmFyIGUsYT1uKCkscz1hWzBdLGw9YVthLmxlbmd0aC0xXTsoZT1sPHMpJiYoZD1zLHM9bCxsPWQpO3ZhciBjLHUsaCxkPXIocykscD1yKGwpLGY9bnVsbD09dD8xMDordCxtPVtdO2lmKCEoaSUxKSYmcC1kPGYpe2lmKGQ9TWF0aC5yb3VuZChkKS0xLHA9TWF0aC5yb3VuZChwKSsxLHM+MCl7Zm9yKDtkPHA7KytkKWZvcih1PTEsYz1vKGQpO3U8aTsrK3UpaWYoISgoaD1jKnUpPHMpKXtpZihoPmwpYnJlYWs7bS5wdXNoKGgpfX1lbHNlIGZvcig7ZDxwOysrZClmb3IodT1pLTEsYz1vKGQpO3U+PTE7LS11KWlmKCEoKGg9Yyp1KTxzKSl7aWYoaD5sKWJyZWFrO20ucHVzaChoKX19ZWxzZSBtPV8wKGQscCxNYXRoLm1pbihwLWQsZikpLm1hcChvKTtyZXR1cm4gZT9tLnJldmVyc2UoKTptfSxlLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxuKXtpZihudWxsPT1uJiYobj0xMD09PWk/Ii4wZSI6IiwiKSwiZnVuY3Rpb24iIT10eXBlb2YgbiYmKG49bDUobikpLHQ9PT0xLzApcmV0dXJuIG47bnVsbD09dCYmKHQ9MTApO3ZhciBhPU1hdGgubWF4KDEsaSp0L2UudGlja3MoKS5sZW5ndGgpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT10L28oTWF0aC5yb3VuZChyKHQpKSk7cmV0dXJuIGUqaTxpLS41JiYoZSo9aSksZTw9YT9uKHQpOiIifX0sZS5uaWNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4ocDUobigpLHtmbG9vcjpmdW5jdGlvbih0KXtyZXR1cm4gbyhNYXRoLmZsb29yKHIodCkpKX0sY2VpbDpmdW5jdGlvbih0KXtyZXR1cm4gbyhNYXRoLmNlaWwocih0KSkpfX0pKX0sZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIFgyKGUsdCgpLmJhc2UoaSkpfSxlfSxzY2FsZU9yZGluYWw6TDAsc2NhbGVJbXBsaWNpdDprMCxzY2FsZVBvdzp4NSxzY2FsZVNxcnQ6ZnVuY3Rpb24gbWZ0KCl7cmV0dXJuIHg1KCkuZXhwb25lbnQoLjUpfSxzY2FsZVF1YW50aWxlOmZ1bmN0aW9uIHQoKXt2YXIgZT1bXSxuPVtdLGk9W107ZnVuY3Rpb24gcigpe3ZhciB0PTAscj1NYXRoLm1heCgxLG4ubGVuZ3RoKTtmb3IoaT1uZXcgQXJyYXkoci0xKTsrK3Q8cjspaVt0LTFdPWIwKGUsdC9yKTtyZXR1cm4gb31mdW5jdGlvbiBvKHQpe2lmKCFpc05hTih0PSt0KSlyZXR1cm4gbltkMChpLHQpXX1yZXR1cm4gby5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIHI9bi5pbmRleE9mKHQpO3JldHVybiByPDA/W05hTixOYU5dOltyPjA/aVtyLTFdOmVbMF0scjxpLmxlbmd0aD9pW3JdOmVbZS5sZW5ndGgtMV1dfSxvLmRvbWFpbj1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZS5zbGljZSgpO2U9W107Zm9yKHZhciBuLGk9MCxvPXQubGVuZ3RoO2k8bzsrK2kpbnVsbD09KG49dFtpXSl8fGlzTmFOKG49K24pfHxlLnB1c2gobik7cmV0dXJuIGUuc29ydCh1MCkscigpfSxvLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPUEwLmNhbGwodCkscigpKTpuLnNsaWNlKCl9LG8ucXVhbnRpbGVzPWZ1bmN0aW9uKCl7cmV0dXJuIGkuc2xpY2UoKX0sby5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoKS5kb21haW4oZSkucmFuZ2Uobil9LG99LHNjYWxlUXVhbnRpemU6ZnVuY3Rpb24gdCgpe3ZhciBlPTAsbj0xLGk9MSxyPVsuNV0sbz1bMCwxXTtmdW5jdGlvbiBhKHQpe2lmKHQ8PXQpcmV0dXJuIG9bZDAocix0LDAsaSldfWZ1bmN0aW9uIHMoKXt2YXIgdD0tMTtmb3Iocj1uZXcgQXJyYXkoaSk7Kyt0PGk7KXJbdF09KCh0KzEpKm4tKHQtaSkqZSkvKGkrMSk7cmV0dXJuIGF9cmV0dXJuIGEuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLG49K3RbMV0scygpKTpbZSxuXX0sYS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0obz1BMC5jYWxsKHQpKS5sZW5ndGgtMSxzKCkpOm8uc2xpY2UoKX0sYS5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIGE9by5pbmRleE9mKHQpO3JldHVybiBhPDA/W05hTixOYU5dOmE8MT9bZSxyWzBdXTphPj1pP1tyW2ktMV0sbl06W3JbYS0xXSxyW2FdXX0sYS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoKS5kb21haW4oW2Usbl0pLnJhbmdlKG8pfSxkNShhKX0sc2NhbGVUaHJlc2hvbGQ6ZnVuY3Rpb24gdCgpe3ZhciBlPVsuNV0sbj1bMCwxXSxpPTE7ZnVuY3Rpb24gcih0KXtpZih0PD10KXJldHVybiBuW2QwKGUsdCwwLGkpXX1yZXR1cm4gci5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9QTAuY2FsbCh0KSxpPU1hdGgubWluKGUubGVuZ3RoLG4ubGVuZ3RoLTEpLHIpOmUuc2xpY2UoKX0sci5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1BMC5jYWxsKHQpLGk9TWF0aC5taW4oZS5sZW5ndGgsbi5sZW5ndGgtMSkscik6bi5zbGljZSgpfSxyLmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgaT1uLmluZGV4T2YodCk7cmV0dXJuW2VbaS0xXSxlW2ldXX0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoKS5kb21haW4oZSkucmFuZ2Uobil9LHJ9LHNjYWxlVGltZTpmdW5jdGlvbiBnZnQoKXtyZXR1cm4gQzQoajUsVjUsQjUsejUsTzUsUjUsSTUsQzUscjMpLmRvbWFpbihbbmV3IERhdGUoMmUzLDAsMSksbmV3IERhdGUoMmUzLDAsMildKX0sc2NhbGVVdGM6ZnVuY3Rpb24gX2Z0KCl7cmV0dXJuIEM0KFE1LFo1LFg1LHE1LFc1LEc1LEk1LEM1LG8zKS5kb21haW4oW0RhdGUuVVRDKDJlMywwLDEpLERhdGUuVVRDKDJlMywwLDIpXSl9LHNjaGVtZUNhdGVnb3J5MTA6azQsc2NoZW1lQ2F0ZWdvcnkyMGI6TDQsc2NoZW1lQ2F0ZWdvcnkyMGM6UDQsc2NoZW1lQ2F0ZWdvcnkyMDpONCxpbnRlcnBvbGF0ZUN1YmVoZWxpeERlZmF1bHQ6STQsaW50ZXJwb2xhdGVSYWluYm93OmZ1bmN0aW9uIHlmdCh0KXsodDwwfHx0PjEpJiYodC09TWF0aC5mbG9vcih0KSk7dmFyIGU9TWF0aC5hYnModC0uNSk7cmV0dXJuIHo0Lmg9MzYwKnQtMTAwLHo0LnM9MS41LTEuNSplLHo0Lmw9LjgtLjkqZSx6NCsiIn0saW50ZXJwb2xhdGVXYXJtOlI0LGludGVycG9sYXRlQ29vbDpPNCxpbnRlcnBvbGF0ZVZpcmlkaXM6QjQsaW50ZXJwb2xhdGVNYWdtYTpINCxpbnRlcnBvbGF0ZUluZmVybm86RjQsaW50ZXJwb2xhdGVQbGFzbWE6VjQsc2NhbGVTZXF1ZW50aWFsOmZ1bmN0aW9uIHQoZSl7dmFyIG49MCxpPTEscj0hMTtmdW5jdGlvbiBvKHQpe3ZhciBvPSh0LW4pLyhpLW4pO3JldHVybiBlKHI/TWF0aC5tYXgoMCxNYXRoLm1pbigxLG8pKTpvKX1yZXR1cm4gby5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3RbMF0saT0rdFsxXSxvKTpbbixpXX0sby5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0hIXQsbyk6cn0sby5pbnRlcnBvbGF0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxvKTplfSxvLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdChlKS5kb21haW4oW24saV0pLmNsYW1wKHIpfSxkNShvKX0sY3JlYXRlOmZ1bmN0aW9uIHZmdCh0KXtyZXR1cm4gdDkoWTQodCkuY2FsbChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX0sY3JlYXRvcjpZNCxsb2NhbDpOOSxtYXRjaGVyOmU2LG1vdXNlOmZ1bmN0aW9uIGJmdCh0KXt2YXIgZT1SOSgpO3JldHVybiBlLmNoYW5nZWRUb3VjaGVzJiYoZT1lLmNoYW5nZWRUb3VjaGVzWzBdKSxPOSh0LGUpfSxuYW1lc3BhY2U6RzQsbmFtZXNwYWNlczpqNCxjbGllbnRQb2ludDpPOSxzZWxlY3Q6dDksc2VsZWN0QWxsOmZ1bmN0aW9uIHhmdCh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/bmV3IEo2KFtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQpXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IEo2KFtudWxsPT10P1tdOnRdLFo2KX0sc2VsZWN0aW9uOlE2LHNlbGVjdG9yOiQ0LHNlbGVjdG9yQWxsOlo0LHN0eWxlOl82LHRvdWNoOmZ1bmN0aW9uIHdmdCh0LGUsbil7YXJndW1lbnRzLmxlbmd0aDwzJiYobj1lLGU9UjkoKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciBpLHI9MCxvPWU/ZS5sZW5ndGg6MDtyPG87KytyKWlmKChpPWVbcl0pLmlkZW50aWZpZXI9PT1uKXJldHVybiBPOSh0LGkpO3JldHVybiBudWxsfSx0b3VjaGVzOmZ1bmN0aW9uIFNmdCh0LGUpe251bGw9PWUmJihlPVI5KCkudG91Y2hlcyk7Zm9yKHZhciBuPTAsaT1lP2UubGVuZ3RoOjAscj1uZXcgQXJyYXkoaSk7bjxpOysrbilyW25dPU85KHQsZVtuXSk7cmV0dXJuIHJ9LHdpbmRvdzpwNixnZXQgZXZlbnQoKXtyZXR1cm4gVTZ9LGN1c3RvbUV2ZW50OmZ1bmN0aW9uIE1mdCh0LGUsbixpKXt2YXIgcj1VNjt0LnNvdXJjZUV2ZW50PVU2LFU2PXQ7dHJ5e3JldHVybiBlLmFwcGx5KG4saSl9ZmluYWxseXtVNj1yfX0sYXJjOmZ1bmN0aW9uIEVmdCgpe3ZhciB0PW44LGU9aTgsbj1VOSgwKSxpPW51bGwscj1yOCxvPW84LGE9YTgscz1udWxsO2Z1bmN0aW9uIGwoKXt2YXIgbCxjLHU9K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpLGg9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLGQ9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyktSjkscD1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1KOSxmPWo5KHAtZCksbT1wPmQ7aWYoc3x8KHM9bD1WOSgpKSxoPHUmJihjPWgsaD11LHU9YyksaD5LOSlpZihmPlE5LUs5KXMubW92ZVRvKGgqVzkoZCksaCpYOShkKSkscy5hcmMoMCwwLGgsZCxwLCFtKSx1Pks5JiYocy5tb3ZlVG8odSpXOShwKSx1Klg5KHApKSxzLmFyYygwLDAsdSxwLGQsbSkpO2Vsc2V7dmFyIGcsXyx5PWQsdj1wLGI9ZCx4PXAsdz1mLFM9ZixNPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsRT1NPks5JiYoaT8raS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6JDkodSp1K2gqaCkpLFQ9WTkoajkoaC11KS8yLCtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksQz1ULEE9VDtpZihFPks5KXt2YXIgaz1lOChFL3UqWDkoTSkpLEw9ZTgoRS9oKlg5KE0pKTsody09MiprKT5LOT8oYis9ayo9bT8xOi0xLHgtPWspOih3PTAsYj14PShkK3ApLzIpLChTLT0yKkwpPks5Pyh5Kz1MKj1tPzE6LTEsdi09TCk6KFM9MCx5PXY9KGQrcCkvMil9dmFyIFA9aCpXOSh5KSxOPWgqWDkoeSksST11Klc5KHgpLFI9dSpYOSh4KTtpZihUPks5KXt2YXIgTz1oKlc5KHYpLHo9aCpYOSh2KSxEPXUqVzkoYiksQj11Klg5KGIpO2lmKGY8Wjkpe3ZhciBIPXc+Szk/czgoUCxOLEQsQixPLHosSSxSKTpbSSxSXSxGPVAtSFswXSxWPU4tSFsxXSxVPU8tSFswXSxqPXotSFsxXSxHPTEvWDkodDgoKEYqVStWKmopLygkOShGKkYrVipWKSokOShVKlUraipqKSkpLzIpLFc9JDkoSFswXSpIWzBdK0hbMV0qSFsxXSk7Qz1ZOShULCh1LVcpLyhHLTEpKSxBPVk5KFQsKGgtVykvKEcrMSkpfX1TPks5P0E+Szk/KGc9bDgoRCxCLFAsTixoLEEsbSksXz1sOChPLHosSSxSLGgsQSxtKSxzLm1vdmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEE8VD9zLmFyYyhnLmN4LGcuY3ksQSxHOShnLnkwMSxnLngwMSksRzkoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEEsRzkoZy55MDEsZy54MDEpLEc5KGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLGgsRzkoZy5jeStnLnkxMSxnLmN4K2cueDExKSxHOShfLmN5K18ueTExLF8uY3grXy54MTEpLCFtKSxzLmFyYyhfLmN4LF8uY3ksQSxHOShfLnkxMSxfLngxMSksRzkoXy55MDEsXy54MDEpLCFtKSkpOihzLm1vdmVUbyhQLE4pLHMuYXJjKDAsMCxoLHksdiwhbSkpOnMubW92ZVRvKFAsTiksdT5LOSYmdz5LOT9DPks5PyhnPWw4KEksUixPLHosdSwtQyxtKSxfPWw4KFAsTixELEIsdSwtQyxtKSxzLmxpbmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEM8VD9zLmFyYyhnLmN4LGcuY3ksQyxHOShnLnkwMSxnLngwMSksRzkoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEMsRzkoZy55MDEsZy54MDEpLEc5KGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLHUsRzkoZy5jeStnLnkxMSxnLmN4K2cueDExKSxHOShfLmN5K18ueTExLF8uY3grXy54MTEpLG0pLHMuYXJjKF8uY3gsXy5jeSxDLEc5KF8ueTExLF8ueDExKSxHOShfLnkwMSxfLngwMSksIW0pKSk6cy5hcmMoMCwwLHUseCxiLG0pOnMubGluZVRvKEksUil9ZWxzZSBzLm1vdmVUbygwLDApO2lmKHMuY2xvc2VQYXRoKCksbClyZXR1cm4gcz1udWxsLGwrIiJ8fG51bGx9cmV0dXJuIGwuY2VudHJvaWQ9ZnVuY3Rpb24oKXt2YXIgbj0oK3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzIsaT0oK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArby5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzItWjkvMjtyZXR1cm5bVzkoaSkqbixYOShpKSpuXX0sbC5pbm5lclJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlU5KCtlKSxsKTp0fSxsLm91dGVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGwpOmV9LGwuY29ybmVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGwpOm59LGwucGFkUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxsKTppfSxsLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSgrdCksbCk6cn0sbC5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxsKTpvfSxsLnBhZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGwpOmF9LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1udWxsPT10P251bGw6dCxsKTpzfSxsfSxhcmVhOmY4LGxpbmU6cDgscGllOmZ1bmN0aW9uIFRmdCgpe3ZhciB0PWc4LGU9bTgsbj1udWxsLGk9VTkoMCkscj1VOShROSksbz1VOSgwKTtmdW5jdGlvbiBhKGEpe3ZhciBzLGwsYyx1LGgsZD1hLmxlbmd0aCxwPTAsZj1uZXcgQXJyYXkoZCksbT1uZXcgQXJyYXkoZCksZz0raS5hcHBseSh0aGlzLGFyZ3VtZW50cyksXz1NYXRoLm1pbihROSxNYXRoLm1heCgtUTksci5hcHBseSh0aGlzLGFyZ3VtZW50cyktZykpLHk9TWF0aC5taW4oTWF0aC5hYnMoXykvZCxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdj15KihfPDA/LTE6MSk7Zm9yKHM9MDtzPGQ7KytzKShoPW1bZltzXT1zXT0rdChhW3NdLHMsYSkpPjAmJihwKz1oKTtmb3IobnVsbCE9ZT9mLnNvcnQoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUobVt0XSxtW25dKX0pKTpudWxsIT1uJiZmLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oYVt0XSxhW2VdKX0pKSxzPTAsYz1wPyhfLWQqdikvcDowO3M8ZDsrK3MsZz11KW1bbD1mW3NdXT17ZGF0YTphW2xdLGluZGV4OnMsdmFsdWU6aD1tW2xdLHN0YXJ0QW5nbGU6ZyxlbmRBbmdsZTp1PWcrKGg+MD9oKmM6MCkrdixwYWRBbmdsZTp5fTtyZXR1cm4gbX1yZXR1cm4gYS52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlU5KCtlKSxhKTp0fSxhLnNvcnRWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuPW51bGwsYSk6ZX0sYS5zb3J0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsZT1udWxsLGEpOm59LGEuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxhKTppfSxhLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGEpOnJ9LGEucGFkQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSgrdCksYSk6b30sYX0sYXJlYVJhZGlhbDp3OCxyYWRpYWxBcmVhOnc4LGxpbmVSYWRpYWw6eDgscmFkaWFsTGluZTp4OCxwb2ludFJhZGlhbDpTOCxsaW5rSG9yaXpvbnRhbDpmdW5jdGlvbiBDZnQoKXtyZXR1cm4gQzgoQTgpfSxsaW5rVmVydGljYWw6ZnVuY3Rpb24gQWZ0KCl7cmV0dXJuIEM4KGs4KX0sbGlua1JhZGlhbDpmdW5jdGlvbiBrZnQoKXt2YXIgdD1DOChMOCk7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdH0sc3ltYm9sOmZ1bmN0aW9uIExmdCgpe3ZhciB0PVU5KFA4KSxlPVU5KDY0KSxuPW51bGw7ZnVuY3Rpb24gaSgpe3ZhciBpO2lmKG58fChuPWk9VjkoKSksdC5hcHBseSh0aGlzLGFyZ3VtZW50cykuZHJhdyhuLCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksaSlyZXR1cm4gbj1udWxsLGkrIiJ8fG51bGx9cmV0dXJuIGkudHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlU5KGUpLGkpOnR9LGkuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxpKTplfSxpLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9udWxsOnQsaSk6bn0saX0sc3ltYm9sczpYOCxzeW1ib2xDaXJjbGU6UDgsc3ltYm9sQ3Jvc3M6Tjgsc3ltYm9sRGlhbW9uZDpPOCxzeW1ib2xTcXVhcmU6Rjgsc3ltYm9sU3RhcjpIOCxzeW1ib2xUcmlhbmdsZTpVOCxzeW1ib2xXeWU6WTgsY3VydmVCYXNpc0Nsb3NlZDpmdW5jdGlvbiBQZnQodCl7cmV0dXJuIG5ldyBKOCh0KX0sY3VydmVCYXNpc09wZW46ZnVuY3Rpb24gTmZ0KHQpe3JldHVybiBuZXcgUTgodCl9LGN1cnZlQmFzaXM6ZnVuY3Rpb24gSWZ0KHQpe3JldHVybiBuZXcgWjgodCl9LGN1cnZlQnVuZGxlOmU3LGN1cnZlQ2FyZGluYWxDbG9zZWQ6YTcsY3VydmVDYXJkaW5hbE9wZW46bDcsY3VydmVDYXJkaW5hbDpyNyxjdXJ2ZUNhdG11bGxSb21DbG9zZWQ6cDcsY3VydmVDYXRtdWxsUm9tT3BlbjptNyxjdXJ2ZUNhdG11bGxSb206aDcsY3VydmVMaW5lYXJDbG9zZWQ6ZnVuY3Rpb24gUmZ0KHQpe3JldHVybiBuZXcgZzcodCl9LGN1cnZlTGluZWFyOnU4LGN1cnZlTW9ub3RvbmVYOmZ1bmN0aW9uIE9mdCh0KXtyZXR1cm4gbmV3IHg3KHQpfSxjdXJ2ZU1vbm90b25lWTpmdW5jdGlvbiB6ZnQodCl7cmV0dXJuIG5ldyB3Nyh0KX0sY3VydmVOYXR1cmFsOmZ1bmN0aW9uIERmdCh0KXtyZXR1cm4gbmV3IE03KHQpfSxjdXJ2ZVN0ZXA6ZnVuY3Rpb24gQmZ0KHQpe3JldHVybiBuZXcgVDcodCwuNSl9LGN1cnZlU3RlcEFmdGVyOmZ1bmN0aW9uIEhmdCh0KXtyZXR1cm4gbmV3IFQ3KHQsMSl9LGN1cnZlU3RlcEJlZm9yZTpmdW5jdGlvbiBGZnQodCl7cmV0dXJuIG5ldyBUNyh0LDApfSxzdGFjazpmdW5jdGlvbiBWZnQoKXt2YXIgdD1VOShbXSksZT1BNyxuPUM3LGk9azc7ZnVuY3Rpb24gcihyKXt2YXIgbyxhLHM9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbD1yLmxlbmd0aCxjPXMubGVuZ3RoLHU9bmV3IEFycmF5KGMpO2ZvcihvPTA7bzxjOysrbyl7Zm9yKHZhciBoLGQ9c1tvXSxwPXVbb109bmV3IEFycmF5KGwpLGY9MDtmPGw7KytmKXBbZl09aD1bMCwraShyW2ZdLGQsZixyKV0saC5kYXRhPXJbZl07cC5rZXk9ZH1mb3Iobz0wLGE9ZSh1KTtvPGM7KytvKXVbYVtvXV0uaW5kZXg9bztyZXR1cm4gbih1LGEpLHV9cmV0dXJuIHIua2V5cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlU5KE04LmNhbGwoZSkpLHIpOnR9LHIudmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSgrdCkscik6aX0sci5vcmRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1udWxsPT10P0E3OiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoTTguY2FsbCh0KSkscik6ZX0sci5vZmZzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9DNzp0LHIpOm59LHJ9LHN0YWNrT2Zmc2V0RXhwYW5kOmZ1bmN0aW9uIFVmdCh0LGUpe2lmKChpPXQubGVuZ3RoKT4wKXtmb3IodmFyIG4saSxyLG89MCxhPXRbMF0ubGVuZ3RoO288YTsrK28pe2ZvcihyPW49MDtuPGk7KytuKXIrPXRbbl1bb11bMV18fDA7aWYocilmb3Iobj0wO248aTsrK24pdFtuXVtvXVsxXS89cn1DNyh0LGUpfX0sc3RhY2tPZmZzZXREaXZlcmdpbmc6ZnVuY3Rpb24gamZ0KHQsZSl7aWYoKHM9dC5sZW5ndGgpPjEpZm9yKHZhciBuLGkscixvLGEscyxsPTAsYz10W2VbMF1dLmxlbmd0aDtsPGM7KytsKWZvcihvPWE9MCxuPTA7bjxzOysrbikocj0oaT10W2Vbbl1dW2xdKVsxXS1pWzBdKT49MD8oaVswXT1vLGlbMV09bys9cik6cjwwPyhpWzFdPWEsaVswXT1hKz1yKTppWzBdPW99LHN0YWNrT2Zmc2V0Tm9uZTpDNyxzdGFja09mZnNldFNpbGhvdWV0dGU6ZnVuY3Rpb24gR2Z0KHQsZSl7aWYoKG49dC5sZW5ndGgpPjApe2Zvcih2YXIgbixpPTAscj10W2VbMF1dLG89ci5sZW5ndGg7aTxvOysraSl7Zm9yKHZhciBhPTAscz0wO2E8bjsrK2Epcys9dFthXVtpXVsxXXx8MDtyW2ldWzFdKz1yW2ldWzBdPS1zLzJ9QzcodCxlKX19LHN0YWNrT2Zmc2V0V2lnZ2xlOmZ1bmN0aW9uIFdmdCh0LGUpe2lmKChyPXQubGVuZ3RoKT4wJiYoaT0obj10W2VbMF1dKS5sZW5ndGgpPjApe2Zvcih2YXIgbixpLHIsbz0wLGE9MTthPGk7KythKXtmb3IodmFyIHM9MCxsPTAsYz0wO3M8cjsrK3Mpe2Zvcih2YXIgdT10W2Vbc11dLGg9dVthXVsxXXx8MCxkPShoLSh1W2EtMV1bMV18fDApKS8yLHA9MDtwPHM7KytwKXt2YXIgZj10W2VbcF1dO2QrPShmW2FdWzFdfHwwKS0oZlthLTFdWzFdfHwwKX1sKz1oLGMrPWQqaH1uW2EtMV1bMV0rPW5bYS0xXVswXT1vLGwmJihvLT1jL2wpfW5bYS0xXVsxXSs9blthLTFdWzBdPW8sQzcodCxlKX19LHN0YWNrT3JkZXJBc2NlbmRpbmc6TDcsc3RhY2tPcmRlckRlc2NlbmRpbmc6ZnVuY3Rpb24gcWZ0KHQpe3JldHVybiBMNyh0KS5yZXZlcnNlKCl9LHN0YWNrT3JkZXJJbnNpZGVPdXQ6ZnVuY3Rpb24gWWZ0KHQpe3ZhciBlLG4saT10Lmxlbmd0aCxyPXQubWFwKFA3KSxvPUE3KHQpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJbZV0tclt0XX0pKSxhPTAscz0wLGw9W10sYz1bXTtmb3IoZT0wO2U8aTsrK2Upbj1vW2VdLGE8cz8oYSs9cltuXSxsLnB1c2gobikpOihzKz1yW25dLGMucHVzaChuKSk7cmV0dXJuIGMucmV2ZXJzZSgpLmNvbmNhdChsKX0sc3RhY2tPcmRlck5vbmU6QTcsc3RhY2tPcmRlclJldmVyc2U6ZnVuY3Rpb24gWGZ0KHQpe3JldHVybiBBNyh0KS5yZXZlcnNlKCl9LHRpbWVJbnRlcnZhbDpSNyx0aW1lTWlsbGlzZWNvbmQ6TzcsdGltZU1pbGxpc2Vjb25kczp6Nyx1dGNNaWxsaXNlY29uZDpPNyx1dGNNaWxsaXNlY29uZHM6ejcsdGltZVNlY29uZDpVNyx0aW1lU2Vjb25kczpqNyx1dGNTZWNvbmQ6VTcsdXRjU2Vjb25kczpqNyx0aW1lTWludXRlOkc3LHRpbWVNaW51dGVzOlc3LHRpbWVIb3VyOnE3LHRpbWVIb3VyczpZNyx0aW1lRGF5Olg3LHRpbWVEYXlzOiQ3LHRpbWVXZWVrOlo3LHRpbWVXZWVrczpydHQsdGltZVN1bmRheTpaNyx0aW1lU3VuZGF5czpydHQsdGltZU1vbmRheTpKNyx0aW1lTW9uZGF5czpvdHQsdGltZVR1ZXNkYXk6UTcsdGltZVR1ZXNkYXlzOmF0dCx0aW1lV2VkbmVzZGF5OnR0dCx0aW1lV2VkbmVzZGF5czpzdHQsdGltZVRodXJzZGF5OmV0dCx0aW1lVGh1cnNkYXlzOmx0dCx0aW1lRnJpZGF5Om50dCx0aW1lRnJpZGF5czpjdHQsdGltZVNhdHVyZGF5Oml0dCx0aW1lU2F0dXJkYXlzOnV0dCx0aW1lTW9udGg6aHR0LHRpbWVNb250aHM6ZHR0LHRpbWVZZWFyOnB0dCx0aW1lWWVhcnM6ZnR0LHV0Y01pbnV0ZTptdHQsdXRjTWludXRlczpndHQsdXRjSG91cjpfdHQsdXRjSG91cnM6eXR0LHV0Y0RheTp2dHQsdXRjRGF5czpidHQsdXRjV2Vlazp3dHQsdXRjV2Vla3M6a3R0LHV0Y1N1bmRheTp3dHQsdXRjU3VuZGF5czprdHQsdXRjTW9uZGF5OlN0dCx1dGNNb25kYXlzOkx0dCx1dGNUdWVzZGF5Ok10dCx1dGNUdWVzZGF5czpQdHQsdXRjV2VkbmVzZGF5OkV0dCx1dGNXZWRuZXNkYXlzOk50dCx1dGNUaHVyc2RheTpUdHQsdXRjVGh1cnNkYXlzOkl0dCx1dGNGcmlkYXk6Q3R0LHV0Y0ZyaWRheXM6UnR0LHV0Y1NhdHVyZGF5OkF0dCx1dGNTYXR1cmRheXM6T3R0LHV0Y01vbnRoOnp0dCx1dGNNb250aHM6RHR0LHV0Y1llYXI6QnR0LHV0Y1llYXJzOkh0dCx0aW1lRm9ybWF0RGVmYXVsdExvY2FsZTpUbnQsZ2V0IHRpbWVGb3JtYXQoKXtyZXR1cm4gaGV0fSxnZXQgdGltZVBhcnNlKCl7cmV0dXJuIGRldH0sZ2V0IHV0Y0Zvcm1hdCgpe3JldHVybiBwZXR9LGdldCB1dGNQYXJzZSgpe3JldHVybiBmZXR9LHRpbWVGb3JtYXRMb2NhbGU6Y2V0LGlzb0Zvcm1hdDpMbnQsaXNvUGFyc2U6Tm50LG5vdzpVbnQsdGltZXI6V250LHRpbWVyRmx1c2g6cW50LHRpbWVvdXQ6ZnVuY3Rpb24gJGZ0KHQsZSxuKXt2YXIgaT1uZXcgR250O3JldHVybiBpLnJlc3RhcnQoKGZ1bmN0aW9uKG4pe2kuc3RvcCgpLHQobitlKX0pLGU9bnVsbD09ZT8wOitlLG4pLGl9LGludGVydmFsOmZ1bmN0aW9uIEtmdCh0LGUsbil7dmFyIGk9bmV3IEdudCxyPWU7cmV0dXJuIG51bGw9PWU/KGkucmVzdGFydCh0LGUsbiksaSk6KGU9K2Usbj1udWxsPT1uP1VudCgpOituLGkucmVzdGFydCgoZnVuY3Rpb24gbyhhKXthKz1yLGkucmVzdGFydChvLHIrPWUsbiksdChhKX0pLGUsbiksaSl9LHRyYW5zaXRpb246TmF0LGFjdGl2ZTpmdW5jdGlvbiBaZnQodCxlKXt2YXIgbixpLHI9dC5fX3RyYW5zaXRpb247aWYocilmb3IoaSBpbiBlPW51bGw9PWU/bnVsbDplKyIiLHIpaWYoKG49cltpXSkuc3RhdGU+MSYmbi5uYW1lPT09ZSlyZXR1cm4gbmV3IFBhdChbW3RdXSxuc3QsZSwraSk7cmV0dXJuIG51bGx9LGludGVycnVwdDpob3Qsdm9yb25vaTpmdW5jdGlvbiBKZnQoKXt2YXIgdD1yc3QsZT1vc3Qsbj1udWxsO2Z1bmN0aW9uIGkoaSl7cmV0dXJuIG5ldyBGc3QoaS5tYXAoKGZ1bmN0aW9uKG4scil7dmFyIG89W01hdGgucm91bmQodChuLHIsaSkvenN0KSp6c3QsTWF0aC5yb3VuZChlKG4scixpKS96c3QpKnpzdF07cmV0dXJuIG8uaW5kZXg9cixvLmRhdGE9bixvfSkpLG4pfXJldHVybiBpLnBvbHlnb25zPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpLnBvbHlnb25zKCl9LGkubGlua3M9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCkubGlua3MoKX0saS50cmlhbmdsZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCkudHJpYW5nbGVzKCl9LGkueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOmlzdCgrZSksaSk6dH0saS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6aXN0KCt0KSxpKTplfSxpLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P251bGw6W1srdFswXVswXSwrdFswXVsxXV0sWyt0WzFdWzBdLCt0WzFdWzFdXV0saSk6biYmW1tuWzBdWzBdLG5bMF1bMV1dLFtuWzFdWzBdLG5bMV1bMV1dXX0saS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/bnVsbDpbWzAsMF0sWyt0WzBdLCt0WzFdXV0saSk6biYmW25bMV1bMF0tblswXVswXSxuWzFdWzFdLW5bMF1bMV1dfSxpfSx6b29tOmZ1bmN0aW9uIFFmdCgpe3ZhciB0LGUsbj12ZHQsaT1iZHQscj1NZHQsbz13ZHQsYT1TZHQscz1bMCwxLzBdLGw9W1stMS8wLC0xLzBdLFsxLzAsMS8wXV0sYz0yNTAsdT1WdXQsaD1bXSxkPVVzdCgic3RhcnQiLCJ6b29tIiwiZW5kIikscD01MDAsZj0wO2Z1bmN0aW9uIG0odCl7dC5wcm9wZXJ0eSgiX196b29tIix4ZHQpLm9uKCJ3aGVlbC56b29tIix3KS5vbigibW91c2Vkb3duLnpvb20iLFMpLm9uKCJkYmxjbGljay56b29tIixNKS5maWx0ZXIoYSkub24oInRvdWNoc3RhcnQuem9vbSIsRSkub24oInRvdWNobW92ZS56b29tIixUKS5vbigidG91Y2hlbmQuem9vbSB0b3VjaGNhbmNlbC56b29tIixDKS5zdHlsZSgidG91Y2gtYWN0aW9uIiwibm9uZSIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIil9ZnVuY3Rpb24gZyh0LGUpe3JldHVybihlPU1hdGgubWF4KHNbMF0sTWF0aC5taW4oc1sxXSxlKSkpPT09dC5rP3Q6bmV3IGRkdChlLHQueCx0LnkpfWZ1bmN0aW9uIF8odCxlLG4pe3ZhciBpPWVbMF0tblswXSp0Lmsscj1lWzFdLW5bMV0qdC5rO3JldHVybiBpPT09dC54JiZyPT09dC55P3Q6bmV3IGRkdCh0LmssaSxyKX1mdW5jdGlvbiB5KHQpe3JldHVyblsoK3RbMF1bMF0rICt0WzFdWzBdKS8yLCgrdFswXVsxXSsgK3RbMV1bMV0pLzJdfWZ1bmN0aW9uIHYodCxlLG4pe3Qub24oInN0YXJ0Lnpvb20iLChmdW5jdGlvbigpe2IodGhpcyxhcmd1bWVudHMpLnN0YXJ0KCl9KSkub24oImludGVycnVwdC56b29tIGVuZC56b29tIiwoZnVuY3Rpb24oKXtiKHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pKS50d2Vlbigiem9vbSIsKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxyPWFyZ3VtZW50cyxvPWIodCxyKSxhPWkuYXBwbHkodCxyKSxzPW58fHkoYSksbD1NYXRoLm1heChhWzFdWzBdLWFbMF1bMF0sYVsxXVsxXS1hWzBdWzFdKSxjPXQuX196b29tLGg9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0LHIpOmUsZD11KGMuaW52ZXJ0KHMpLmNvbmNhdChsL2MuayksaC5pbnZlcnQocykuY29uY2F0KGwvaC5rKSk7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDE9PT10KXQ9aDtlbHNle3ZhciBlPWQodCksbj1sL2VbMl07dD1uZXcgZGR0KG4sc1swXS1lWzBdKm4sc1sxXS1lWzFdKm4pfW8uem9vbShudWxsLHQpfX0pKX1mdW5jdGlvbiBiKHQsZSl7Zm9yKHZhciBuLGk9MCxyPWgubGVuZ3RoO2k8cjsrK2kpaWYoKG49aFtpXSkudGhhdD09PXQpcmV0dXJuIG47cmV0dXJuIG5ldyB4KHQsZSl9ZnVuY3Rpb24geCh0LGUpe3RoaXMudGhhdD10LHRoaXMuYXJncz1lLHRoaXMuaW5kZXg9LTEsdGhpcy5hY3RpdmU9MCx0aGlzLmV4dGVudD1pLmFwcGx5KHQsZSl9ZnVuY3Rpb24gdygpe2lmKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdD1iKHRoaXMsYXJndW1lbnRzKSxlPXRoaXMuX196b29tLGk9TWF0aC5tYXgoc1swXSxNYXRoLm1pbihzWzFdLGUuaypNYXRoLnBvdygyLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKSkpLGE9b2N0KHRoaXMpO2lmKHQud2hlZWwpdC5tb3VzZVswXVswXT09PWFbMF0mJnQubW91c2VbMF1bMV09PT1hWzFdfHwodC5tb3VzZVsxXT1lLmludmVydCh0Lm1vdXNlWzBdPWEpKSxjbGVhclRpbWVvdXQodC53aGVlbCk7ZWxzZXtpZihlLms9PT1pKXJldHVybjt0Lm1vdXNlPVthLGUuaW52ZXJ0KGEpXSxkaHQodGhpcyksdC5zdGFydCgpfXlkdCgpLHQud2hlZWw9c2V0VGltZW91dChjLDE1MCksdC56b29tKCJtb3VzZSIscihfKGcoZSxpKSx0Lm1vdXNlWzBdLHQubW91c2VbMV0pLHQuZXh0ZW50LGwpKX1mdW5jdGlvbiBjKCl7dC53aGVlbD1udWxsLHQuZW5kKCl9fWZ1bmN0aW9uIFMoKXtpZighZSYmbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0PWIodGhpcyxhcmd1bWVudHMpLGk9bmN0KEdsdC52aWV3KS5vbigibW91c2Vtb3ZlLnpvb20iLGMsITApLm9uKCJtb3VzZXVwLnpvb20iLHUsITApLG89b2N0KHRoaXMpLGE9R2x0LmNsaWVudFgscz1HbHQuY2xpZW50WTtsY3QoR2x0LnZpZXcpLF9kdCgpLHQubW91c2U9W28sdGhpcy5fX3pvb20uaW52ZXJ0KG8pXSxkaHQodGhpcyksdC5zdGFydCgpfWZ1bmN0aW9uIGMoKXtpZih5ZHQoKSwhdC5tb3ZlZCl7dmFyIGU9R2x0LmNsaWVudFgtYSxuPUdsdC5jbGllbnRZLXM7dC5tb3ZlZD1lKmUrbipuPmZ9dC56b29tKCJtb3VzZSIscihfKHQudGhhdC5fX3pvb20sdC5tb3VzZVswXT1vY3QodC50aGF0KSx0Lm1vdXNlWzFdKSx0LmV4dGVudCxsKSl9ZnVuY3Rpb24gdSgpe2kub24oIm1vdXNlbW92ZS56b29tIG1vdXNldXAuem9vbSIsbnVsbCksY2N0KEdsdC52aWV3LHQubW92ZWQpLHlkdCgpLHQuZW5kKCl9fWZ1bmN0aW9uIE0oKXtpZihuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIHQ9dGhpcy5fX3pvb20sZT1vY3QodGhpcyksbz10LmludmVydChlKSxhPXQuayooR2x0LnNoaWZ0S2V5Py41OjIpLHM9cihfKGcodCxhKSxlLG8pLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpLGwpO3lkdCgpLGM+MD9uY3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKGMpLmNhbGwodixzLGUpOm5jdCh0aGlzKS5jYWxsKG0udHJhbnNmb3JtLHMpfX1mdW5jdGlvbiBFKCl7aWYobi5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBlLGkscixvLGE9Yih0aGlzLGFyZ3VtZW50cykscz1HbHQuY2hhbmdlZFRvdWNoZXMsbD1zLmxlbmd0aDtmb3IoX2R0KCksaT0wO2k8bDsrK2kpbz1bbz1hY3QodGhpcyxzLChyPXNbaV0pLmlkZW50aWZpZXIpLHRoaXMuX196b29tLmludmVydChvKSxyLmlkZW50aWZpZXJdLGEudG91Y2gwP2EudG91Y2gxfHwoYS50b3VjaDE9byk6KGEudG91Y2gwPW8sZT0hMCk7aWYodCYmKHQ9Y2xlYXJUaW1lb3V0KHQpLCFhLnRvdWNoMSkpcmV0dXJuIGEuZW5kKCksdm9pZCgobz1uY3QodGhpcykub24oImRibGNsaWNrLnpvb20iKSkmJm8uYXBwbHkodGhpcyxhcmd1bWVudHMpKTtlJiYodD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Q9bnVsbH0pLHApLGRodCh0aGlzKSxhLnN0YXJ0KCkpfX1mdW5jdGlvbiBUKCl7dmFyIGUsbixpLG8sYT1iKHRoaXMsYXJndW1lbnRzKSxzPUdsdC5jaGFuZ2VkVG91Y2hlcyxjPXMubGVuZ3RoO2Zvcih5ZHQoKSx0JiYodD1jbGVhclRpbWVvdXQodCkpLGU9MDtlPGM7KytlKWk9YWN0KHRoaXMscywobj1zW2VdKS5pZGVudGlmaWVyKSxhLnRvdWNoMCYmYS50b3VjaDBbMl09PT1uLmlkZW50aWZpZXI/YS50b3VjaDBbMF09aTphLnRvdWNoMSYmYS50b3VjaDFbMl09PT1uLmlkZW50aWZpZXImJihhLnRvdWNoMVswXT1pKTtpZihuPWEudGhhdC5fX3pvb20sYS50b3VjaDEpe3ZhciB1PWEudG91Y2gwWzBdLGg9YS50b3VjaDBbMV0sZD1hLnRvdWNoMVswXSxwPWEudG91Y2gxWzFdLGY9KGY9ZFswXS11WzBdKSpmKyhmPWRbMV0tdVsxXSkqZixtPShtPXBbMF0taFswXSkqbSsobT1wWzFdLWhbMV0pKm07bj1nKG4sTWF0aC5zcXJ0KGYvbSkpLGk9Wyh1WzBdK2RbMF0pLzIsKHVbMV0rZFsxXSkvMl0sbz1bKGhbMF0rcFswXSkvMiwoaFsxXStwWzFdKS8yXX1lbHNle2lmKCFhLnRvdWNoMClyZXR1cm47aT1hLnRvdWNoMFswXSxvPWEudG91Y2gwWzFdfWEuem9vbSgidG91Y2giLHIoXyhuLGksbyksYS5leHRlbnQsbCkpfWZ1bmN0aW9uIEMoKXt2YXIgdCxuLGk9Yih0aGlzLGFyZ3VtZW50cykscj1HbHQuY2hhbmdlZFRvdWNoZXMsbz1yLmxlbmd0aDtmb3IoX2R0KCksZSYmY2xlYXJUaW1lb3V0KGUpLGU9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlPW51bGx9KSxwKSx0PTA7dDxvOysrdCluPXJbdF0saS50b3VjaDAmJmkudG91Y2gwWzJdPT09bi5pZGVudGlmaWVyP2RlbGV0ZSBpLnRvdWNoMDppLnRvdWNoMSYmaS50b3VjaDFbMl09PT1uLmlkZW50aWZpZXImJmRlbGV0ZSBpLnRvdWNoMTtpLnRvdWNoMSYmIWkudG91Y2gwJiYoaS50b3VjaDA9aS50b3VjaDEsZGVsZXRlIGkudG91Y2gxKSxpLnRvdWNoMD9pLnRvdWNoMFsxXT10aGlzLl9fem9vbS5pbnZlcnQoaS50b3VjaDBbMF0pOmkuZW5kKCl9cmV0dXJuIG0udHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5zZWxlY3Rpb24/dC5zZWxlY3Rpb24oKTp0O24ucHJvcGVydHkoIl9fem9vbSIseGR0KSx0IT09bj92KHQsZSk6bi5pbnRlcnJ1cHQoKS5lYWNoKChmdW5jdGlvbigpe2IodGhpcyxhcmd1bWVudHMpLnN0YXJ0KCkuem9vbShudWxsLCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUpLmVuZCgpfSkpfSxtLnNjYWxlQnk9ZnVuY3Rpb24odCxlKXttLnNjYWxlVG8odCwoZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9fem9vbS5rLG49ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZTtyZXR1cm4gdCpufSkpfSxtLnNjYWxlVG89ZnVuY3Rpb24odCxlKXttLnRyYW5zZm9ybSh0LChmdW5jdGlvbigpe3ZhciB0PWkuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dGhpcy5fX3pvb20sbz15KHQpLGE9bi5pbnZlcnQobykscz0iZnVuY3Rpb24iPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplO3JldHVybiByKF8oZyhuLHMpLG8sYSksdCxsKX0pKX0sbS50cmFuc2xhdGVCeT1mdW5jdGlvbih0LGUsbil7bS50cmFuc2Zvcm0odCwoZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLl9fem9vbS50cmFuc2xhdGUoImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZSwiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpuKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxsKX0pKX0sbS50cmFuc2xhdGVUbz1mdW5jdGlvbih0LGUsbil7bS50cmFuc2Zvcm0odCwoZnVuY3Rpb24oKXt2YXIgdD1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvPXRoaXMuX196b29tLGE9eSh0KTtyZXR1cm4gcihtZHQudHJhbnNsYXRlKGFbMF0sYVsxXSkuc2NhbGUoby5rKS50cmFuc2xhdGUoImZ1bmN0aW9uIj09dHlwZW9mIGU/LWUuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1lLCJmdW5jdGlvbiI9PXR5cGVvZiBuPy1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTotbiksdCxsKX0pKX0seC5wcm90b3R5cGU9e3N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLmluZGV4PWgucHVzaCh0aGlzKS0xLHRoaXMuZW1pdCgic3RhcnQiKSksdGhpc30sem9vbTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm1vdXNlJiYibW91c2UiIT09dCYmKHRoaXMubW91c2VbMV09ZS5pbnZlcnQodGhpcy5tb3VzZVswXSkpLHRoaXMudG91Y2gwJiYidG91Y2giIT09dCYmKHRoaXMudG91Y2gwWzFdPWUuaW52ZXJ0KHRoaXMudG91Y2gwWzBdKSksdGhpcy50b3VjaDEmJiJ0b3VjaCIhPT10JiYodGhpcy50b3VjaDFbMV09ZS5pbnZlcnQodGhpcy50b3VjaDFbMF0pKSx0aGlzLnRoYXQuX196b29tPWUsdGhpcy5lbWl0KCJ6b29tIiksdGhpc30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PS0tdGhpcy5hY3RpdmUmJihoLnNwbGljZSh0aGlzLmluZGV4LDEpLHRoaXMuaW5kZXg9LTEsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXshKGZ1bmN0aW9uIGUodCxuLGkscil7dmFyIG89R2x0O3Quc291cmNlRXZlbnQ9R2x0LEdsdD10O3RyeXtuLmFwcGx5KGkscil9ZmluYWxseXtHbHQ9b319KShuZXcgaGR0KG0sdCx0aGlzLnRoYXQuX196b29tKSxkLmFwcGx5LGQsW3QsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sbS53aGVlbERlbHRhPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6dWR0KCt0KSxtKTpvfSxtLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnVkdCghIXQpLG0pOm59LG0udG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6dWR0KCEhdCksbSk6YX0sbS5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp1ZHQoW1srdFswXVswXSwrdFswXVsxXV0sWyt0WzFdWzBdLCt0WzFdWzFdXV0pLG0pOml9LG0uc2NhbGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHNbMF09K3RbMF0sc1sxXT0rdFsxXSxtKTpbc1swXSxzWzFdXX0sbS50cmFuc2xhdGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGxbMF1bMF09K3RbMF1bMF0sbFsxXVswXT0rdFsxXVswXSxsWzBdWzFdPSt0WzBdWzFdLGxbMV1bMV09K3RbMV1bMV0sbSk6W1tsWzBdWzBdLGxbMF1bMV1dLFtsWzFdWzBdLGxbMV1bMV1dXX0sbS5jb25zdHJhaW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxtKTpyfSxtLmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPSt0LG0pOmN9LG0uaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCxtKTp1fSxtLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9ZC5vbi5hcHBseShkLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1kP206dH0sbS5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPSh0PSt0KSp0LG0pOk1hdGguc3FydChmKX0sbX0sem9vbVRyYW5zZm9ybTpnZHQsem9vbUlkZW50aXR5Om1kdH0pKTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKgogICAgICogQGZpbGVvdmVydmlldyBtYW51YWxseSBhZGQgZDMtc2VsZWN0aW9uLW11bHRpIHRvIGQzIGRlZmF1bHQgYnVuZGxlLiBNb3N0IG9mIHRoaXMgY29kZSBpcwogICAgICogY29waWVkIGZyb20gZDMtc2VsZWN0aW9uLW11bHRpQDEuMC4wLgogICAgICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kMy9kMy1zZWxlY3Rpb24tbXVsdGkvaXNzdWVzLzExIGZvciB3aHkgd2UgaGF2ZSB0byBkbyB0aGlzCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdG10PUVkdCxlbXQ9RWR0O2Z1bmN0aW9uIG5tdCh0LGUpe3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj10bXQuc2VsZWN0KHRoaXMpO2Zvcih2YXIgaSBpbiB0KW4uYXR0cihpLHRbaV0pfSkpfWZ1bmN0aW9uIGltdCh0LGUpe2Zvcih2YXIgbiBpbiBlKXQuYXR0cihuLGVbbl0pO3JldHVybiB0fWZ1bmN0aW9uIHJtdCh0LGUsbil7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxpPXRtdC5zZWxlY3QodGhpcyk7Zm9yKHZhciByIGluIHQpaS5zdHlsZShyLHRbcl0sbil9KSl9ZnVuY3Rpb24gb210KHQsZSxuKXtmb3IodmFyIGkgaW4gZSl0LnN0eWxlKGksZVtpXSxuKTtyZXR1cm4gdH1mdW5jdGlvbiBhbXQodCxlKXtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbigpe3ZhciB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dG10LnNlbGVjdCh0aGlzKTtmb3IodmFyIGkgaW4gdCluLnByb3BlcnR5KGksdFtpXSl9KSl9ZnVuY3Rpb24gc210KHQsZSl7Zm9yKHZhciBuIGluIGUpdC5wcm9wZXJ0eShuLGVbbl0pO3JldHVybiB0fWZ1bmN0aW9uIGxtdCh0LGUpe3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksaT10bXQuc2VsZWN0KHRoaXMpLnRyYW5zaXRpb24odCk7Zm9yKHZhciByIGluIG4paS5hdHRyKHIsbltyXSl9KSl9ZnVuY3Rpb24gY210KHQsZSl7Zm9yKHZhciBuIGluIGUpdC5hdHRyKG4sZVtuXSk7cmV0dXJuIHR9ZnVuY3Rpb24gdW10KHQsZSxuKXtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbigpe3ZhciBpPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpLHI9dG10LnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKHQpO2Zvcih2YXIgbyBpbiBpKXIuc3R5bGUobyxpW29dLG4pfSkpfWZ1bmN0aW9uIGhtdCh0LGUsbil7Zm9yKHZhciBpIGluIGUpdC5zdHlsZShpLGVbaV0sbik7cmV0dXJuIHR9dG10LnNlbGVjdGlvbi5wcm90b3R5cGUuYXR0cnM9ZnVuY3Rpb24gZG10KHQpe3JldHVybigiZnVuY3Rpb24iPT10eXBlb2YgdD9ubXQ6aW10KSh0aGlzLHQpfSx0bXQuc2VsZWN0aW9uLnByb3RvdHlwZS5zdHlsZXM9ZnVuY3Rpb24gcG10KHQsZSl7cmV0dXJuKCJmdW5jdGlvbiI9PXR5cGVvZiB0P3JtdDpvbXQpKHRoaXMsdCxudWxsPT1lPyIiOmUpfSx0bXQuc2VsZWN0aW9uLnByb3RvdHlwZS5wcm9wZXJ0aWVzPWZ1bmN0aW9uIGZtdCh0KXtyZXR1cm4oImZ1bmN0aW9uIj09dHlwZW9mIHQ/YW10OnNtdCkodGhpcyx0KX0sZW10LnRyYW5zaXRpb24ucHJvdG90eXBlLmF0dHJzPWZ1bmN0aW9uIG1tdCh0KXtyZXR1cm4oImZ1bmN0aW9uIj09dHlwZW9mIHQ/bG10OmNtdCkodGhpcyx0KX0sZW10LnRyYW5zaXRpb24ucHJvdG90eXBlLnN0eWxlcz1mdW5jdGlvbiBnbXQodCxlKXtyZXR1cm4oImZ1bmN0aW9uIj09dHlwZW9mIHQ/dW10OmhtdCkodGhpcyx0LG51bGw9PWU/IiI6ZSl9O3ZhciBfbXQ9e30seW10PXt9LHZtdD1iZSh2bSksYm10PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShibXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB4bXQ9RWR0O2JtdC5jb2VyY2VFeHRlcm5hbEQzPWZ1bmN0aW9uIHdtdCh0KXtpZihudWxsPT10LmF0dHJzKXtpZihudWxsPT10Lm5vZGVzKXt2YXIgZT1bXTtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbigpe2UucHVzaCh0aGlzKX0pKSx4bXQuc2VsZWN0QWxsKGUpfXJldHVybiB4bXQuc2VsZWN0QWxsKHQubm9kZXMoKSl9cmV0dXJuIHR9O3ZhciBTbXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFNtdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksU210Lm1ha2VFbnVtPWZ1bmN0aW9uIE1tdCh0KXtyZXR1cm4gdC5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZV09ZSx0fSkse30pfSwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHltdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEVtdD1ibXQsVG10PXtsaW5lYXI6dm10LmVhc2VMaW5lYXIscXVhZDp2bXQuZWFzZVF1YWQscXVhZEluOnZtdC5lYXNlUXVhZEluLHF1YWRPdXQ6dm10LmVhc2VRdWFkT3V0LHF1YWRJbk91dDp2bXQuZWFzZVF1YWRJbk91dCxjdWJpYzp2bXQuZWFzZUN1YmljLGN1YmljSW46dm10LmVhc2VDdWJpY0luLGN1YmljT3V0OnZtdC5lYXNlQ3ViaWNPdXQsY3ViaWNJbk91dDp2bXQuZWFzZUN1YmljSW5PdXQscG9seTp2bXQuZWFzZVBvbHkscG9seUluOnZtdC5lYXNlUG9seUluLHBvbHlPdXQ6dm10LmVhc2VQb2x5T3V0LHBvbHlJbk91dDp2bXQuZWFzZVBvbHlJbk91dCxzaW46dm10LmVhc2VTaW4sc2luSW46dm10LmVhc2VTaW5JbixzaW5PdXQ6dm10LmVhc2VTaW5PdXQsc2luSW5PdXQ6dm10LmVhc2VTaW5Jbk91dCxleHA6dm10LmVhc2VFeHAsZXhwSW46dm10LmVhc2VFeHBJbixleHBPdXQ6dm10LmVhc2VFeHBPdXQsZXhwSW5PdXQ6dm10LmVhc2VFeHBJbk91dCxjaXJjbGU6dm10LmVhc2VDaXJjbGUsY2lyY2xlSW46dm10LmVhc2VDaXJjbGVJbixjaXJjbGVPdXQ6dm10LmVhc2VDaXJjbGVPdXQsY2lyY2xlSW5PdXQ6dm10LmVhc2VDaXJjbGVJbk91dCxib3VuY2U6dm10LmVhc2VCb3VuY2UsYm91bmNlSW46dm10LmVhc2VCb3VuY2VJbixib3VuY2VPdXQ6dm10LmVhc2VCb3VuY2VPdXQsYm91bmNlSW5PdXQ6dm10LmVhc2VCb3VuY2VJbk91dCxiYWNrOnZtdC5lYXNlQmFjayxiYWNrSW46dm10LmVhc2VCYWNrSW4sYmFja091dDp2bXQuZWFzZUJhY2tPdXQsYmFja0luT3V0OnZtdC5lYXNlQmFja0luT3V0LGVsYXN0aWM6dm10LmVhc2VFbGFzdGljLGVsYXN0aWNJbjp2bXQuZWFzZUVsYXN0aWNJbixlbGFzdGljT3V0OnZtdC5lYXNlRWxhc3RpY091dCxlbGFzdGljSW5PdXQ6dm10LmVhc2VFbGFzdGljSW5PdXR9O3ltdC5FYXNlTmFtZT1TbXQubWFrZUVudW0oWyJsaW5lYXIiLCJxdWFkIiwicXVhZEluIiwicXVhZE91dCIsInF1YWRJbk91dCIsImN1YmljIiwiY3ViaWNJbiIsImN1YmljT3V0IiwiY3ViaWNJbk91dCIsInBvbHkiLCJwb2x5SW4iLCJwb2x5T3V0IiwicG9seUluT3V0Iiwic2luIiwic2luSW4iLCJzaW5PdXQiLCJzaW5Jbk91dCIsImV4cCIsImV4cEluIiwiZXhwT3V0IiwiZXhwSW5PdXQiLCJjaXJjbGUiLCJjaXJjbGVJbiIsImNpcmNsZU91dCIsImNpcmNsZUluT3V0IiwiYm91bmNlIiwiYm91bmNlSW4iLCJib3VuY2VPdXQiLCJib3VuY2VJbk91dCIsImJhY2siLCJiYWNrSW4iLCJiYWNrT3V0IiwiYmFja0luT3V0IiwiZWxhc3RpYyIsImVsYXN0aWNJbiIsImVsYXN0aWNPdXQiLCJlbGFzdGljSW5PdXQiXSk7dmFyIENtdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fc3RhcnREZWxheT10Ll9ERUZBVUxUX1NUQVJUX0RFTEFZX01JTExJU0VDT05EUyx0aGlzLl9zdGVwRHVyYXRpb249dC5fREVGQVVMVF9TVEVQX0RVUkFUSU9OX01JTExJU0VDT05EUyx0aGlzLl9zdGVwRGVsYXk9dC5fREVGQVVMVF9JVEVSQVRJVkVfREVMQVlfTUlMTElTRUNPTkRTLHRoaXMuX21heFRvdGFsRHVyYXRpb249dC5fREVGQVVMVF9NQVhfVE9UQUxfRFVSQVRJT05fTUlMTElTRUNPTkRTLHRoaXMuX2Vhc2luZ01vZGU9dC5fREVGQVVMVF9FQVNJTkdfTU9ERX1yZXR1cm4gdC5wcm90b3R5cGUudG90YWxUaW1lPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2dldEFkanVzdGVkSXRlcmF0aXZlRGVsYXkodCk7cmV0dXJuIHRoaXMuc3RhcnREZWxheSgpK2UqTWF0aC5tYXgodC0xLDApK3RoaXMuc3RlcER1cmF0aW9uKCl9LHQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLGk9KHQ9RW10LmNvZXJjZUV4dGVybmFsRDModCkpLnNpemUoKSxyPXRoaXMuX2dldEFkanVzdGVkSXRlcmF0aXZlRGVsYXkoaSk7cmV0dXJuIHQudHJhbnNpdGlvbigpLmVhc2UodGhpcy5fZ2V0RWFzZUZhY3RvcnkoKSkuZHVyYXRpb24odGhpcy5zdGVwRHVyYXRpb24oKSkuZGVsYXkoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uc3RhcnREZWxheSgpK3IqZX0pKS5hdHRycyhlKX0sdC5wcm90b3R5cGUuc3RhcnREZWxheT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9zdGFydERlbGF5Oih0aGlzLl9zdGFydERlbGF5PXQsdGhpcyl9LHQucHJvdG90eXBlLnN0ZXBEdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9NYXRoLm1pbih0aGlzLl9zdGVwRHVyYXRpb24sdGhpcy5fbWF4VG90YWxEdXJhdGlvbik6KHRoaXMuX3N0ZXBEdXJhdGlvbj10LHRoaXMpfSx0LnByb3RvdHlwZS5zdGVwRGVsYXk9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fc3RlcERlbGF5Oih0aGlzLl9zdGVwRGVsYXk9dCx0aGlzKX0sdC5wcm90b3R5cGUubWF4VG90YWxEdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9tYXhUb3RhbER1cmF0aW9uOih0aGlzLl9tYXhUb3RhbER1cmF0aW9uPXQsdGhpcyl9LHQucHJvdG90eXBlLmVhc2luZ01vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZWFzaW5nTW9kZToodGhpcy5fZWFzaW5nTW9kZT10LHRoaXMpfSx0LnByb3RvdHlwZS5fZ2V0RWFzZUZhY3Rvcnk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVhc2luZ01vZGUoKTtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciBlPVRtdFt0XTtyZXR1cm4gbnVsbD09ZT9UbXQubGluZWFyOmV9cmV0dXJuIHR9LHQucHJvdG90eXBlLl9nZXRBZGp1c3RlZEl0ZXJhdGl2ZURlbGF5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWF4VG90YWxEdXJhdGlvbigpLXRoaXMuc3RlcER1cmF0aW9uKCksbj0oZT1NYXRoLm1heChlLDApKS9NYXRoLm1heCh0LTEsMSk7cmV0dXJuIE1hdGgubWluKHRoaXMuc3RlcERlbGF5KCksbil9LHQuX0RFRkFVTFRfU1RBUlRfREVMQVlfTUlMTElTRUNPTkRTPTAsdC5fREVGQVVMVF9TVEVQX0RVUkFUSU9OX01JTExJU0VDT05EUz0zMDAsdC5fREVGQVVMVF9JVEVSQVRJVkVfREVMQVlfTUlMTElTRUNPTkRTPTE1LHQuX0RFRkFVTFRfTUFYX1RPVEFMX0RVUkFUSU9OX01JTExJU0VDT05EUz0xLzAsdC5fREVGQVVMVF9FQVNJTkdfTU9ERT0iZXhwT3V0Iix0fSkoKTt5bXQuRWFzaW5nPUNtdDt2YXIgQW10PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShBbXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBrbXQ9Ym10LExtdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS50b3RhbFRpbWU9ZnVuY3Rpb24odCl7cmV0dXJuIDB9LHQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4odD1rbXQuY29lcmNlRXh0ZXJuYWxEMyh0KSkuYXR0cnMoZSl9LHR9KSgpO0FtdC5OdWxsPUxtdCwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT11TztlLl9fZXhwb3J0U3Rhcih5bXQsdCksZS5fX2V4cG9ydFN0YXIoQW10LHQpfSkoX210KTt2YXIgUG10PXt9LE5tdD17fSxJbXQ9e30sUm10PXt9LE9tdD17fSx6bXQ9e30sRG10PXt9LEJtdD17fSxIbXQ9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KEhtdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEZtdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuY2FjaGU9e30sdGhpcy5jb21wdXRlPXR9cmV0dXJuIHQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jYWNoZS5oYXNPd25Qcm9wZXJ0eSh0KXx8KHRoaXMuY2FjaGVbdF09dGhpcy5jb21wdXRlKHQpKSx0aGlzLmNhY2hlW3RdfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNhY2hlPXt9LHRoaXN9LHR9KSgpO0htdC5DYWNoZT1GbXQ7dmFyIFZtdD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVm10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgVW10PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQuYXJyYXlFcT1mdW5jdGlvbih0LGUpe2lmKG51bGw9PXR8fG51bGw9PWUpcmV0dXJuIHQ9PT1lO2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXSE9PWVbbl0pcmV0dXJuITE7cmV0dXJuITB9LHQub2JqRXE9ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lfHxudWxsPT1uKXJldHVybiBlPT09bjt2YXIgaT1PYmplY3Qua2V5cyhlKS5zb3J0KCkscj1PYmplY3Qua2V5cyhuKS5zb3J0KCksbz1pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19KSksYT1yLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG5bdF19KSk7cmV0dXJuIHQuYXJyYXlFcShpLHIpJiZ0LmFycmF5RXEobyxhKX0sdC5zdHJpY3RFcT1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sdC5kZWZhdWx0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTtpZihudWxsPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCIpO3ZhciBpPU9iamVjdCh0KTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbih0KXtpZihudWxsIT10KWZvcih2YXIgZSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpJiYoaVtlXT10W2VdKX0pKSxpfSx0fSkoKTtWbXQuTWV0aG9kcz1VbXQ7dmFyIGptdD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoam10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgR210PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQuY29tYmluZVdoaXRlc3BhY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvWyBcdF0rL2csIiAiKX0sdC5pc05vdEVtcHR5U3RyaW5nPWZ1bmN0aW9uKHQpe3JldHVybiB0JiYiIiE9PXQudHJpbSgpfSx0LnRyaW1TdGFydD1mdW5jdGlvbihlLG4pe2lmKCFlKXJldHVybiBlO3ZhciBpPWUuc3BsaXQoIiIpLHI9bj9mdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdChuKS5zb21lKHQuaXNOb3RFbXB0eVN0cmluZyl9OnQuaXNOb3RFbXB0eVN0cmluZztyZXR1cm4gaS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodCtlKT90K2U6dH0pLCIiKX0sdC50cmltRW5kPWZ1bmN0aW9uKGUsbil7aWYoIWUpcmV0dXJuIGU7dmFyIGk9ZS5zcGxpdCgiIik7cmV0dXJuIGkucmV2ZXJzZSgpLChpPXQudHJpbVN0YXJ0KGkuam9pbigiIiksbikuc3BsaXQoIiIpKS5yZXZlcnNlKCksaS5qb2luKCIiKX0sdH0pKCk7am10LlN0cmluZ01ldGhvZHM9R210O3ZhciBXbXQ9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KFdtdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHFtdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5Xb3JkRGl2aWRlclJlZ0V4cD1uZXcgUmVnRXhwKCJcXFciKSx0aGlzLldoaXRlc3BhY2VSZWdFeHA9bmV3IFJlZ0V4cCgiXFxzIil9cmV0dXJuIHQucHJvdG90eXBlLnRva2VuaXplPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQuc3BsaXQoIiIpLnJlZHVjZSgoZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5zbGljZSgwLC0xKS5jb25jYXQoZS5zaG91bGRDcmVhdGVOZXdUb2tlbih0W3QubGVuZ3RoLTFdLG4pKX0pLFsiIl0pfSx0LnByb3RvdHlwZS5zaG91bGRDcmVhdGVOZXdUb2tlbj1mdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybltlXTt2YXIgbj10W3QubGVuZ3RoLTFdO3JldHVybiB0aGlzLldoaXRlc3BhY2VSZWdFeHAudGVzdChuKSYmdGhpcy5XaGl0ZXNwYWNlUmVnRXhwLnRlc3QoZSk/W3QrZV06dGhpcy5XaGl0ZXNwYWNlUmVnRXhwLnRlc3Qobil8fHRoaXMuV2hpdGVzcGFjZVJlZ0V4cC50ZXN0KGUpP1t0LGVdOnRoaXMuV29yZERpdmlkZXJSZWdFeHAudGVzdChuKT9uPT09ZT9bdCtlXTpbdCxlXTpbdCtlXX0sdH0pKCk7V210LlRva2VuaXplcj1xbXQsKGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7Zm9yKHZhciBuIGluIGUpdC5oYXNPd25Qcm9wZXJ0eShuKXx8KHRbbl09ZVtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUoSG10KSxlKFZtdCksZShqbXQpLGUoV210KX0pKEJtdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KERtdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFltdD1CbXQsWG10PXt0ZXh0Um90YXRpb246MCx0ZXh0U2hlYXI6MCx4QWxpZ246ImxlZnQiLHlBbGlnbjoidG9wIn0sJG10PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3RoaXMuX21lYXN1cmVyPXQsdGhpcy5fcGVuRmFjdG9yeT1lLHRoaXMuX3dyYXBwZXI9bn1yZXR1cm4gdC5wcm90b3R5cGUubWVhc3VyZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21lYXN1cmVyPXQsdGhpc30sdC5wcm90b3R5cGUud3JhcHBlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fd3JhcHBlcj10LHRoaXN9LHQucHJvdG90eXBlLnBlbkZhY3Rvcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BlbkZhY3Rvcnk9dCx0aGlzfSx0LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlLG4saSxyLG8pe2lmKHZvaWQgMD09PXImJihyPXt9KSxyPVltdC5NZXRob2RzLmRlZmF1bHRzKHt9LFhtdCxyKSwtMT09PXQuU3VwcG9ydGVkUm90YXRpb24uaW5kZXhPZihyLnRleHRSb3RhdGlvbikpdGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCByb3RhdGlvbiAtICIrci50ZXh0Um90YXRpb24rIi4gU3VwcG9ydGVkIHJvdGF0aW9ucyBhcmUgIit0LlN1cHBvcnRlZFJvdGF0aW9uLmpvaW4oIiwgIikpO2lmKG51bGwhPXIudGV4dFNoZWFyJiZyLnRleHRTaGVhcjwtODB8fHIudGV4dFNoZWFyPjgwKXRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgc2hlYXIgYW5nbGUgLSAiK3IudGV4dFNoZWFyKyIuIE11c3QgYmUgYmV0d2VlbiAtODAgYW5kIDgwIik7dmFyIGE9TWF0aC5hYnMoTWF0aC5hYnMoci50ZXh0Um90YXRpb24pLTkwKT40NSxzPWE/bjppLGw9YT9pOm4sYz1yLnRleHRTaGVhcix1PWMqTWF0aC5QSS8xODAsaD10aGlzLl9tZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0LGQ9aCpNYXRoLnRhbih1KSxwPXMvTWF0aC5jb3ModSktTWF0aC5hYnMoZCksZj1sKk1hdGguY29zKHUpLG09WW10LlN0cmluZ01ldGhvZHMuY29tYmluZVdoaXRlc3BhY2UoZSksZz0odGhpcy5fd3JhcHBlcj90aGlzLl93cmFwcGVyLndyYXAobSx0aGlzLl9tZWFzdXJlcixwLGYpLndyYXBwZWRUZXh0Om0pLnNwbGl0KCJcbiIpLF89dC5YT2Zmc2V0RmFjdG9yW3IueEFsaWduXSpwKk1hdGguc2luKHUpLXQuWU9mZnNldEZhY3RvcltyLnlBbGlnbl0qKGYtZy5sZW5ndGgqaCkseT1bMCwwXSx2PXIudGV4dFJvdGF0aW9uK2M7c3dpdGNoKHIudGV4dFJvdGF0aW9uKXtjYXNlIDkwOnk9W24rXywwXTticmVhaztjYXNlLTkwOnk9Wy1fLGldO2JyZWFrO2Nhc2UgMTgwOnk9W24saStfXTticmVhaztkZWZhdWx0Onk9WzAsLV9dfXZhciBiPXRoaXMuX3BlbkZhY3RvcnkuY3JlYXRlUGVuKGUse3RyYW5zbGF0ZTp5LHJvdGF0ZTp2fSxvKTt0aGlzLndyaXRlTGluZXMoZyxiLHAsaCxkLHIueEFsaWduKSxudWxsIT1iLmRlc3Ryb3kmJmIuZGVzdHJveSgpfSx0LnByb3RvdHlwZS53cml0ZUxpbmVzPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt0LmZvckVhY2goKGZ1bmN0aW9uKHQsYSl7ZS53cml0ZSh0LG4sbyxyPjA/KGErMSkqcjphKnIsKGErMSkqaSl9KSl9LHR9KSgpOyRtdC5YT2Zmc2V0RmFjdG9yPXtjZW50ZXI6LjUsbGVmdDowLHJpZ2h0OjF9LCRtdC5ZT2Zmc2V0RmFjdG9yPXtib3R0b206MSxjZW50ZXI6LjUsdG9wOjB9LCRtdC5TdXBwb3J0ZWRSb3RhdGlvbj1bLTkwLDAsMTgwLDkwXSxEbXQuV3JpdGVyPSRtdCwoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLChmdW5jdGlvbiBlKG4pe2Zvcih2YXIgaSBpbiBuKXQuaGFzT3duUHJvcGVydHkoaSl8fCh0W2ldPW5baV0pfSkoRG10KX0pKHptdCk7dmFyIEttdD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoS210LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgWm10PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQuYXBwZW5kPWZ1bmN0aW9uKGUsbil7Zm9yKHZhciBpPVtdLHI9MjtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWlbci0yXT1hcmd1bWVudHNbcl07dmFyIG89dC5jcmVhdGUuYXBwbHkodCxbbl0uY29uY2F0KGkpKTtyZXR1cm4gZS5hcHBlbmRDaGlsZChvKSxvfSx0LmNyZWF0ZT1mdW5jdGlvbihlKXtmb3IodmFyIG49W10saT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspbltpLTFdPWFyZ3VtZW50c1tpXTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiB0LmFkZENsYXNzZXMuYXBwbHkodCxbcl0uY29uY2F0KG4pKSxyfSx0LmFkZENsYXNzZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbi0xXT1hcmd1bWVudHNbbl07ZT1lLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXR9KSksbnVsbCE9dC5jbGFzc0xpc3Q/ZS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LmNsYXNzTGlzdC5hZGQoZSl9KSk6dC5zZXRBdHRyaWJ1dGUoImNsYXNzIixlLmpvaW4oIiAiKSl9LHQuZ2V0RGltZW5zaW9ucz1mdW5jdGlvbih0KXtpZih0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl0cnl7dmFyIGU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57d2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHR9fWNhdGNoKHQpe31yZXR1cm57aGVpZ2h0OjAsd2lkdGg6MH19LHR9KSgpO0ttdC5IdG1sVXRpbHM9Wm10O3ZhciBKbXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7dm9pZCAwPT09biYmKG49ITEpO3ZhciBpPXRoaXM7dGhpcy5lbGVtZW50PXQsdGhpcy5jbGFzc05hbWU9ZSx0aGlzLmFkZFRpdGxlPW4sdGhpcy5jcmVhdGVSdWxlcj1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1abXQuYXBwZW5kKGkuZWxlbWVudCwic3BhbiIsInRleHQtdG1wIixpLmNsYXNzTmFtZSk7ZS50ZXh0Q29udGVudD10O3ZhciBuPVptdC5nZXREaW1lbnNpb25zKGUpO3JldHVybiBpLmVsZW1lbnQucmVtb3ZlQ2hpbGQoZSksbn19LHRoaXMuY3JlYXRlUGVuPWZ1bmN0aW9uKHQsZSxuKXtudWxsPT1uJiYobj1pLmVsZW1lbnQpO3ZhciByPVptdC5hcHBlbmQobiwiZGl2IiwidGV4dC1ibG9jayIsaS5jbGFzc05hbWUpO3JldHVybiByLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsci5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAtMWVtKSB0cmFuc2xhdGUoIitlLnRyYW5zbGF0ZVswXSsicHgsICIrZS50cmFuc2xhdGVbMV0rInB4KSByb3RhdGUoIitlLnJvdGF0ZSsiZGVnKSIsci5zdHlsZS50cmFuc2Zvcm1PcmlnaW49IjAgMS4yZW0iLGkuYWRkVGl0bGUmJnIuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdCksaS5jcmVhdGVIdG1sTGluZVBlbihyKX19cmV0dXJuIHQucHJvdG90eXBlLnNldEFkZFRpdGxlPWZ1bmN0aW9uKHQpe3RoaXMuYWRkVGl0bGU9dH0sdC5wcm90b3R5cGUuY3JlYXRlSHRtbExpbmVQZW49ZnVuY3Rpb24odCl7cmV0dXJue3dyaXRlOmZ1bmN0aW9uKGUsbixpLHIsbyl7dmFyIGE9Wm10LmFwcGVuZCh0LCJkaXYiLCJ0ZXh0LWxpbmUiKTthLnRleHRDb250ZW50PWUsYS5zdHlsZS53aWR0aD1uKyJweCIsYS5zdHlsZS50ZXh0QWxpZ249aSxhLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsYS5zdHlsZS53aGl0ZVNwYWNlPSJub3dyYXAiLGEuc3R5bGUudG9wPW8rInB4IixhLnN0eWxlLmxlZnQ9cisicHgifX19LHR9KSgpO0ttdC5IdG1sQ29udGV4dD1KbXQsT2JqZWN0LmRlZmluZVByb3BlcnR5KE9tdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFFtdD16bXQsdGd0PUttdCxlZ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5hcHBlbmQ9ZnVuY3Rpb24oZSxuKXtmb3IodmFyIGk9W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspaVtyLTJdPWFyZ3VtZW50c1tyXTt2YXIgbz10LmNyZWF0ZS5hcHBseSh0LFtuXS5jb25jYXQoaSkpO3JldHVybiBlLmFwcGVuZENoaWxkKG8pLG99LHQuY3JlYXRlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj1bXSxpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyluW2ktMV09YXJndW1lbnRzW2ldO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LlNWR19OUyxlKTtyZXR1cm4gdGd0Lkh0bWxVdGlscy5hZGRDbGFzc2VzLmFwcGx5KHRndC5IdG1sVXRpbHMsW3JdLmNvbmNhdChuKSkscn0sdC5nZXREaW1lbnNpb25zPWZ1bmN0aW9uKHQpe2lmKHQuZ2V0QkJveCl0cnl7dmFyIGU9dC5nZXRCQm94KCk7cmV0dXJue3dpZHRoOmUud2lkdGgsaGVpZ2h0OmUuaGVpZ2h0fX1jYXRjaCh0KXt9cmV0dXJue2hlaWdodDowLHdpZHRoOjB9fSx0fSkoKTtlZ3QuU1ZHX05TPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsT210LlN2Z1V0aWxzPWVndDt2YXIgbmd0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3ZvaWQgMD09PW4mJihuPSExKTt2YXIgaT10aGlzO3RoaXMuZWxlbWVudD10LHRoaXMuY2xhc3NOYW1lPWUsdGhpcy5hZGRUaXRsZUVsZW1lbnQ9bix0aGlzLmNyZWF0ZVJ1bGVyPWZ1bmN0aW9uKCl7dmFyIHQ9aS5nZXRUZXh0RWxlbWVudHMoaS5lbGVtZW50KSxlPXQucGFyZW50RWxlbWVudCxuPXQuY29udGFpbmVyRWxlbWVudCxyPXQudGV4dEVsZW1lbnQ7cmV0dXJuIGZ1bmN0aW9uKHQpe2UuYXBwZW5kQ2hpbGQobiksci50ZXh0Q29udGVudD10O3ZhciBpPWVndC5nZXREaW1lbnNpb25zKHIpO3JldHVybiBlLnJlbW92ZUNoaWxkKG4pLGl9fSx0aGlzLmNyZWF0ZVBlbj1mdW5jdGlvbih0LGUsbil7bnVsbD09biYmKG49aS5lbGVtZW50KTt2YXIgcj1lZ3QuYXBwZW5kKG4sImciLCJ0ZXh0LWNvbnRhaW5lciIsaS5jbGFzc05hbWUpO2kuYWRkVGl0bGVFbGVtZW50JiYoZWd0LmFwcGVuZChyLCJ0aXRsZSIpLnRleHRDb250ZW50PXQsci5zZXRBdHRyaWJ1dGUoInRpdGxlIix0KSk7dmFyIG89ZWd0LmFwcGVuZChyLCJnIiwidGV4dC1hcmVhIik7cmV0dXJuIG8uc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitlLnRyYW5zbGF0ZVswXSsiLCIrZS50cmFuc2xhdGVbMV0rIilyb3RhdGUoIitlLnJvdGF0ZSsiKSIpLGkuY3JlYXRlU3ZnTGluZVBlbihvKX19cmV0dXJuIHQucHJvdG90eXBlLnNldEFkZFRpdGxlRWxlbWVudD1mdW5jdGlvbih0KXt0aGlzLmFkZFRpdGxlRWxlbWVudD10fSx0LnByb3RvdHlwZS5jcmVhdGVTdmdMaW5lUGVuPWZ1bmN0aW9uKGUpe3JldHVybnt3cml0ZTpmdW5jdGlvbihuLGkscixvLGEpe28rPWkqUW10LldyaXRlci5YT2Zmc2V0RmFjdG9yW3JdO3ZhciBzPWVndC5hcHBlbmQoZSwidGV4dCIsInRleHQtbGluZSIpO3MudGV4dENvbnRlbnQ9bixzLnNldEF0dHJpYnV0ZSgidGV4dC1hbmNob3IiLHQuQW5jaG9yTWFwW3JdKSxzLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrbysiLCIrYSsiKSIpLHMuc2V0QXR0cmlidXRlKCJ5IiwiLTAuMjVlbSIpfX19LHQucHJvdG90eXBlLmdldFRleHRFbGVtZW50cz1mdW5jdGlvbih0KXtpZigidGV4dCI9PT10LnRhZ05hbWUpcmV0dXJuIG51bGw9PShlPXQucGFyZW50RWxlbWVudCkmJihlPXQucGFyZW50Tm9kZSksZS5yZW1vdmVDaGlsZCh0KSx7Y29udGFpbmVyRWxlbWVudDp0LHBhcmVudEVsZW1lbnQ6ZSx0ZXh0RWxlbWVudDp0fTt2YXIgZSxuPXQucXVlcnlTZWxlY3RvcigidGV4dCIpO2lmKG51bGwhPW4pcmV0dXJuIG51bGw9PShlPW4ucGFyZW50RWxlbWVudCkmJihlPW4ucGFyZW50Tm9kZSksZS5yZW1vdmVDaGlsZChuKSx7Y29udGFpbmVyRWxlbWVudDpuLHBhcmVudEVsZW1lbnQ6ZSx0ZXh0RWxlbWVudDpufTt2YXIgaT1lZ3QuY3JlYXRlKCJ0ZXh0Iix0aGlzLmNsYXNzTmFtZSk7cmV0dXJue2NvbnRhaW5lckVsZW1lbnQ6aSxwYXJlbnRFbGVtZW50OnQsdGV4dEVsZW1lbnQ6aX19LHR9KSgpO25ndC5BbmNob3JNYXA9e2NlbnRlcjoibWlkZGxlIixsZWZ0OiJzdGFydCIscmlnaHQ6ImVuZCJ9LE9tdC5TdmdDb250ZXh0PW5ndDt2YXIgaWd0PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShpZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByZ3Q9em10LG9ndD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt2b2lkIDA9PT1lJiYoZT0xMCksdm9pZCAwPT09biYmKG49e30pO3ZhciBpPXRoaXM7dGhpcy5jdHg9dCx0aGlzLmxpbmVIZWlnaHQ9ZSx0aGlzLnN0eWxlPW4sdGhpcy5jcmVhdGVSdWxlcj1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5jdHguZm9udD1pLnN0eWxlLmZvbnQse3dpZHRoOmkuY3R4Lm1lYXN1cmVUZXh0KHQpLndpZHRoLGhlaWdodDppLmxpbmVIZWlnaHR9fX0sdGhpcy5jcmVhdGVQZW49ZnVuY3Rpb24odCxlLG4pe3JldHVybiBudWxsPT1uJiYobj1pLmN0eCksbi5zYXZlKCksbi50cmFuc2xhdGUoZS50cmFuc2xhdGVbMF0sZS50cmFuc2xhdGVbMV0pLG4ucm90YXRlKGUucm90YXRlKk1hdGguUEkvMTgwKSxpLmNyZWF0ZUNhbnZhc1BlbihuKX0sdm9pZCAwPT09dGhpcy5zdHlsZS5maWxsJiYodGhpcy5zdHlsZS5maWxsPSIjNDQ0Iil9cmV0dXJuIHQucHJvdG90eXBlLmNyZWF0ZUNhbnZhc1Blbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybntkZXN0cm95OmZ1bmN0aW9uKCl7dC5yZXN0b3JlKCl9LHdyaXRlOmZ1bmN0aW9uKG4saSxyLG8sYSl7bys9aSpyZ3QuV3JpdGVyLlhPZmZzZXRGYWN0b3Jbcl0sdC50ZXh0QWxpZ249cixudWxsIT1lLnN0eWxlLmZvbnQmJih0LmZvbnQ9ZS5zdHlsZS5mb250KSxudWxsIT1lLnN0eWxlLmZpbGwmJih0LmZpbGxTdHlsZT1lLnN0eWxlLmZpbGwsdC5maWxsVGV4dChuLG8sYSkpLG51bGwhPWUuc3R5bGUuc3Ryb2tlJiYodC5zdHJva2VTdHlsZT1lLnN0eWxlLmZpbGwsdC5zdHJva2VUZXh0KG4sbyxhKSl9fX0sdH0pKCk7aWd0LkNhbnZhc0NvbnRleHQ9b2d0LChmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgbiBpbiBlKXQuaGFzT3duUHJvcGVydHkobil8fCh0W25dPWVbbl0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlKE9tdCksZShpZ3QpLGUoS210KX0pKFJtdCk7dmFyIGFndD17fSxzZ3Q9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KHNndCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGxndD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMucnVsZXI9bnVsbCE9dC5jcmVhdGVSdWxlcj90LmNyZWF0ZVJ1bGVyKCk6dH1yZXR1cm4gdC5wcm90b3R5cGUubWVhc3VyZT1mdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dC5IRUlHSFRfVEVYVCksdGhpcy5ydWxlcihlKX0sdH0pKCk7bGd0LkhFSUdIVF9URVhUPSJiZHBxbCIsc2d0LkFic3RyYWN0TWVhc3VyZXI9bGd0O3ZhciBjZ3Q9e30sdWd0PXt9LGhndD17fSxkZ3Q9dmUmJnZlLl9fZXh0ZW5kc3x8KGZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9O3JldHVybiBmdW5jdGlvbihlLG4pe2Z1bmN0aW9uIGkoKXt0aGlzLmNvbnN0cnVjdG9yPWV9dChlLG4pLGUucHJvdG90eXBlPW51bGw9PT1uP09iamVjdC5jcmVhdGUobik6KGkucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyBpKX19KSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShoZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBwZ3Q9c2d0LGZndD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3ZvaWQgMD09PW4mJihuPSExKTt2YXIgaT10LmNhbGwodGhpcyxlKXx8dGhpcztyZXR1cm4gaS51c2VHdWFyZHM9bixpfXJldHVybiBkZ3QoZSx0KSxlLnByb3RvdHlwZS5fYWRkR3VhcmRzPWZ1bmN0aW9uKHQpe3JldHVybiBwZ3QuQWJzdHJhY3RNZWFzdXJlci5IRUlHSFRfVEVYVCt0K3BndC5BYnN0cmFjdE1lYXN1cmVyLkhFSUdIVF9URVhUfSxlLnByb3RvdHlwZS5fbWVhc3VyZUxpbmU9ZnVuY3Rpb24oZSxuKXt2b2lkIDA9PT1uJiYobj0hMSk7dmFyIGk9dGhpcy51c2VHdWFyZHN8fG58fC9eW1x0IF0kLy50ZXN0KGUpLHI9aT90aGlzLl9hZGRHdWFyZHMoZSk6ZSxvPXQucHJvdG90eXBlLm1lYXN1cmUuY2FsbCh0aGlzLHIpO3JldHVybiBvLndpZHRoLT1pPzIqdGhpcy5nZXRHdWFyZFdpZHRoKCk6MCxvfSxlLnByb3RvdHlwZS5tZWFzdXJlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodm9pZCAwPT09dCYmKHQ9cGd0LkFic3RyYWN0TWVhc3VyZXIuSEVJR0hUX1RFWFQpLCIiPT09dC50cmltKCkpcmV0dXJue3dpZHRoOjAsaGVpZ2h0OjB9O3ZhciBuPXQudHJpbSgpLnNwbGl0KCJcbiIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX21lYXN1cmVMaW5lKHQpfSkpO3JldHVybntoZWlnaHQ6bi5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS5oZWlnaHR9KSwwKSx3aWR0aDpuLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5tYXgodCxlLndpZHRoKX0pLDApfX0sZS5wcm90b3R5cGUuZ2V0R3VhcmRXaWR0aD1mdW5jdGlvbigpe3JldHVybiBudWxsPT10aGlzLmd1YXJkV2lkdGgmJih0aGlzLmd1YXJkV2lkdGg9dC5wcm90b3R5cGUubWVhc3VyZS5jYWxsKHRoaXMpLndpZHRoKSx0aGlzLmd1YXJkV2lkdGh9LGV9KShwZ3QuQWJzdHJhY3RNZWFzdXJlcik7aGd0Lk1lYXN1cmVyPWZndDt2YXIgbWd0PXZlJiZ2ZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXQoZSxuKSxlLnByb3RvdHlwZT1udWxsPT09bj9PYmplY3QuY3JlYXRlKG4pOihpLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgaSl9fSkoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodWd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZ2d0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gbWd0KGUsdCksZS5wcm90b3R5cGUuX21lYXN1cmVDaGFyYWN0ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvdG90eXBlLl9tZWFzdXJlTGluZS5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9tZWFzdXJlTGluZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dC5zcGxpdCgiIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fbWVhc3VyZUNoYXJhY3Rlcih0KX0pKTtyZXR1cm57aGVpZ2h0Om4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUuaGVpZ2h0KX0pLDApLHdpZHRoOm4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2Uud2lkdGh9KSwwKX19LGV9KShoZ3QuTWVhc3VyZXIpO3VndC5DaGFyYWN0ZXJNZWFzdXJlcj1nZ3Q7dmFyIF9ndD12ZSYmdmUuX19leHRlbmRzfHwoZnVuY3Rpb24oKXt2YXIgdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX10KGUsbiksZS5wcm90b3R5cGU9bnVsbD09PW4/T2JqZWN0LmNyZWF0ZShuKTooaS5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IGkpfX0pKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGNndCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHlndD1CbXQsdmd0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dmFyIGk9dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gaS5jYWNoZT1uZXcgeWd0LkNhY2hlKChmdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUNoYXJhY3Rlck5vdEZyb21DYWNoZSh0KX0pKSxpfXJldHVybiBfZ3QoZSx0KSxlLnByb3RvdHlwZS5fbWVhc3VyZUNoYXJhY3Rlck5vdEZyb21DYWNoZT1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuX21lYXN1cmVDaGFyYWN0ZXIuY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5fbWVhc3VyZUNoYXJhY3Rlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jYWNoZS5nZXQodCl9LGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5jYWNoZS5jbGVhcigpfSxlfSkodWd0LkNoYXJhY3Rlck1lYXN1cmVyKTtjZ3QuQ2FjaGVDaGFyYWN0ZXJNZWFzdXJlcj12Z3Q7dmFyIGJndD17fSx4Z3Q9dmUmJnZlLl9fZXh0ZW5kc3x8KGZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9O3JldHVybiBmdW5jdGlvbihlLG4pe2Z1bmN0aW9uIGkoKXt0aGlzLmNvbnN0cnVjdG9yPWV9dChlLG4pLGUucHJvdG90eXBlPW51bGw9PT1uP09iamVjdC5jcmVhdGUobik6KGkucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyBpKX19KSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShiZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB3Z3Q9Qm10LFNndD1zZ3QsTWd0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBuLmRpbUNhY2hlPW5ldyB3Z3QuQ2FjaGUoKGZ1bmN0aW9uKHQpe3JldHVybiBuLl9tZWFzdXJlTm90RnJvbUNhY2hlKHQpfSkpLG59cmV0dXJuIHhndChlLHQpLGUucHJvdG90eXBlLl9tZWFzdXJlTm90RnJvbUNhY2hlPWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS5tZWFzdXJlLmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUubWVhc3VyZT1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9U2d0LkFic3RyYWN0TWVhc3VyZXIuSEVJR0hUX1RFWFQpLHRoaXMuZGltQ2FjaGUuZ2V0KHQpfSxlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZGltQ2FjaGUuY2xlYXIoKSx0LnByb3RvdHlwZS5yZXNldC5jYWxsKHRoaXMpfSxlfSkoY2d0LkNhY2hlQ2hhcmFjdGVyTWVhc3VyZXIpO2JndC5DYWNoZU1lYXN1cmVyPU1ndCwoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXtmb3IodmFyIG4gaW4gZSl0Lmhhc093blByb3BlcnR5KG4pfHwodFtuXT1lW25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZShzZ3QpLGUoY2d0KSxlKGJndCksZSh1Z3QpLGUoaGd0KX0pKGFndCk7dmFyIEVndD17fSxUZ3Q9e30sQ2d0PXt9LEFndD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoQWd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIga2d0PUJtdCxMZ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMubWF4TGluZXMoMS8wKSx0aGlzLnRleHRUcmltbWluZygiZWxsaXBzaXMiKSx0aGlzLmFsbG93QnJlYWtpbmdXb3JkcyghMSksdGhpcy5fdG9rZW5pemVyPW5ldyBrZ3QuVG9rZW5pemVyLHRoaXMuX2JyZWFraW5nQ2hhcmFjdGVyPSItIn1yZXR1cm4gdC5wcm90b3R5cGUubWF4TGluZXM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbWF4TGluZXM6KHRoaXMuX21heExpbmVzPXQsdGhpcyl9LHQucHJvdG90eXBlLnRleHRUcmltbWluZz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl90ZXh0VHJpbW1pbmc7aWYoImVsbGlwc2lzIiE9PXQmJiJub25lIiE9PXQpdGhyb3cgbmV3IEVycm9yKHQrIiAtIHVuc3VwcG9ydGVkIHRleHQgdHJpbW1pbmcgb3B0aW9uLiIpO3JldHVybiB0aGlzLl90ZXh0VHJpbW1pbmc9dCx0aGlzfSx0LnByb3RvdHlwZS5hbGxvd0JyZWFraW5nV29yZHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYWxsb3dCcmVha2luZ1dvcmRzOih0aGlzLl9hbGxvd0JyZWFraW5nV29yZHM9dCx0aGlzKX0sdC5wcm90b3R5cGUud3JhcD1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzO3ZvaWQgMD09PWkmJihpPTEvMCk7dmFyIG89e25vQnJva2VXb3JkczowLG5vTGluZXM6MCxvcmlnaW5hbFRleHQ6dCx0cnVuY2F0ZWRUZXh0OiIiLHdyYXBwZWRUZXh0OiIifSxhPXthdmFpbGFibGVMaW5lczpNYXRoLm1pbihNYXRoLmZsb29yKGkvZS5tZWFzdXJlKCkuaGVpZ2h0KSx0aGlzLl9tYXhMaW5lcyksYXZhaWxhYmxlV2lkdGg6bixjYW5GaXRUZXh0OiEwLGN1cnJlbnRMaW5lOiIiLHdyYXBwaW5nOm99LHM9dC5zcGxpdCgiXG4iKTtyZXR1cm4gcy5yZWR1Y2UoKGZ1bmN0aW9uKHQsbixpKXtyZXR1cm4gci5icmVha0xpbmVUb0ZpdFdpZHRoKHQsbixpIT09cy5sZW5ndGgtMSxlKX0pLGEpLndyYXBwaW5nfSx0LnByb3RvdHlwZS5icmVha0xpbmVUb0ZpdFdpZHRoPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPXRoaXM7dC5jYW5GaXRUZXh0fHwiIj09PXQud3JhcHBpbmcudHJ1bmNhdGVkVGV4dHx8KHQud3JhcHBpbmcudHJ1bmNhdGVkVGV4dCs9IlxuIiksdD10aGlzLl90b2tlbml6ZXIudG9rZW5pemUoZSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiByLndyYXBOZXh0VG9rZW4oZSx0LGkpfSksdCk7dmFyIG89a2d0LlN0cmluZ01ldGhvZHMudHJpbUVuZCh0LmN1cnJlbnRMaW5lKTtyZXR1cm4gdC53cmFwcGluZy5ub0xpbmVzKz0rKCIiIT09byksdC53cmFwcGluZy5ub0xpbmVzPT09dC5hdmFpbGFibGVMaW5lcyYmIm5vbmUiIT09dGhpcy5fdGV4dFRyaW1taW5nJiZuP3QuY2FuRml0VGV4dD0hMTp0LndyYXBwaW5nLndyYXBwZWRUZXh0Kz1vLHQuY3VycmVudExpbmU9IlxuIix0fSx0LnByb3RvdHlwZS5jYW5GaXRUb2tlbj1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcyxyPXQuc3BsaXQoIiIpLm1hcCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gbiE9PXQubGVuZ3RoLTE/ZStpLl9icmVha2luZ0NoYXJhY3RlcjplfSkpO3JldHVybiBuLm1lYXN1cmUodCkud2lkdGg8PWV8fHIuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiBuLm1lYXN1cmUodCkud2lkdGg8PWV9KSl9LHQucHJvdG90eXBlLmFkZEVsbGlwc2lzPWZ1bmN0aW9uKHQsZSxuKXtpZigibm9uZSI9PT10aGlzLl90ZXh0VHJpbW1pbmcpcmV0dXJue3JlbWFpbmluZ1Rva2VuOiIiLHdyYXBwZWRUb2tlbjp0fTt2YXIgaT10LnN1YnN0cmluZygwKS50cmltKCkscj1uLm1lYXN1cmUoaSkud2lkdGgsbz1uLm1lYXN1cmUoIi4uLiIpLndpZHRoLGE9dC5sZW5ndGg+MCYmIlxuIj09PXRbMF0/IlxuIjoiIjtpZihlPD1vKXt2YXIgcz1NYXRoLmZsb29yKGUvKG8vMykpO3JldHVybntyZW1haW5pbmdUb2tlbjp0LHdyYXBwZWRUb2tlbjphKyIuLi4iLnN1YnN0cigwLHMpfX1mb3IoO3Irbz5lOylpPWtndC5TdHJpbmdNZXRob2RzLnRyaW1FbmQoaS5zdWJzdHIoMCxpLmxlbmd0aC0xKSkscj1uLm1lYXN1cmUoaSkud2lkdGg7cmV0dXJue3JlbWFpbmluZ1Rva2VuOmtndC5TdHJpbmdNZXRob2RzLnRyaW1FbmQodC5zdWJzdHJpbmcoaS5sZW5ndGgpLCItIikudHJpbSgpLHdyYXBwZWRUb2tlbjphK2krIi4uLiJ9fSx0LnByb3RvdHlwZS53cmFwTmV4dFRva2VuPWZ1bmN0aW9uKHQsZSxuKXtpZighZS5jYW5GaXRUZXh0fHxlLmF2YWlsYWJsZUxpbmVzPT09ZS53cmFwcGluZy5ub0xpbmVzfHwhdGhpcy5jYW5GaXRUb2tlbih0LGUuYXZhaWxhYmxlV2lkdGgsbikpcmV0dXJuIHRoaXMuZmluaXNoV3JhcHBpbmcodCxlLG4pO2Zvcih2YXIgaT10O2k7KXt2YXIgcj10aGlzLmJyZWFrVG9rZW5Ub0ZpdEluV2lkdGgoaSxlLmN1cnJlbnRMaW5lLGUuYXZhaWxhYmxlV2lkdGgsbik7aWYoZS5jdXJyZW50TGluZT1yLmxpbmUsbnVsbCE9KGk9ci5yZW1haW5pbmdUb2tlbikpe2lmKGUud3JhcHBpbmcubm9Ccm9rZVdvcmRzKz0rci5icmVha1dvcmQsKytlLndyYXBwaW5nLm5vTGluZXMsZS5hdmFpbGFibGVMaW5lcz09PWUud3JhcHBpbmcubm9MaW5lcyl7dmFyIG89dGhpcy5hZGRFbGxpcHNpcyhlLmN1cnJlbnRMaW5lLGUuYXZhaWxhYmxlV2lkdGgsbik7cmV0dXJuIGUud3JhcHBpbmcud3JhcHBlZFRleHQrPW8ud3JhcHBlZFRva2VuLGUud3JhcHBpbmcudHJ1bmNhdGVkVGV4dCs9by5yZW1haW5pbmdUb2tlbitpLGUuY3VycmVudExpbmU9IlxuIixlfWUud3JhcHBpbmcud3JhcHBlZFRleHQrPWtndC5TdHJpbmdNZXRob2RzLnRyaW1FbmQoZS5jdXJyZW50TGluZSksZS5jdXJyZW50TGluZT0iXG4ifX1yZXR1cm4gZX0sdC5wcm90b3R5cGUuZmluaXNoV3JhcHBpbmc9ZnVuY3Rpb24odCxlLG4pe2lmKGUuY2FuRml0VGV4dCYmZS5hdmFpbGFibGVMaW5lcyE9PWUud3JhcHBpbmcubm9MaW5lcyYmIm5vbmUiIT09dGhpcy5fdGV4dFRyaW1taW5nKXt2YXIgaT10aGlzLmFkZEVsbGlwc2lzKGUuY3VycmVudExpbmUrdCxlLmF2YWlsYWJsZVdpZHRoLG4pO2Uud3JhcHBpbmcud3JhcHBlZFRleHQrPWkud3JhcHBlZFRva2VuLGUud3JhcHBpbmcudHJ1bmNhdGVkVGV4dCs9aS5yZW1haW5pbmdUb2tlbixlLndyYXBwaW5nLm5vQnJva2VXb3Jkcys9KyhpLnJlbWFpbmluZ1Rva2VuLmxlbmd0aDx0Lmxlbmd0aCksZS53cmFwcGluZy5ub0xpbmVzKz0rKGkud3JhcHBlZFRva2VuLmxlbmd0aD4wKSxlLmN1cnJlbnRMaW5lPSIifWVsc2UgZS53cmFwcGluZy50cnVuY2F0ZWRUZXh0Kz10O3JldHVybiBlLmNhbkZpdFRleHQ9ITEsZX0sdC5wcm90b3R5cGUuYnJlYWtUb2tlblRvRml0SW5XaWR0aD1mdW5jdGlvbih0LGUsbixpLHIpe2lmKHZvaWQgMD09PXImJihyPXRoaXMuX2JyZWFraW5nQ2hhcmFjdGVyKSxpLm1lYXN1cmUoZSt0KS53aWR0aDw9bilyZXR1cm57YnJlYWtXb3JkOiExLGxpbmU6ZSt0LHJlbWFpbmluZ1Rva2VuOm51bGx9O2lmKCIiPT09dC50cmltKCkpcmV0dXJue2JyZWFrV29yZDohMSxsaW5lOmUscmVtYWluaW5nVG9rZW46IiJ9O2lmKCF0aGlzLl9hbGxvd0JyZWFraW5nV29yZHMmJiIiIT09ZS50cmltKCkpcmV0dXJue2JyZWFrV29yZDohMSxsaW5lOmUscmVtYWluaW5nVG9rZW46dH07Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aCYmaS5tZWFzdXJlKGUrdC5zdWJzdHJpbmcoMCxvKzEpK3IpLndpZHRoPD1uOykrK287dmFyIGE9IiI7cmV0dXJuIG8+MCYmKGE9cikse2JyZWFrV29yZDpvPjAsbGluZTplK3Quc3Vic3RyaW5nKDAsbykrYSxyZW1haW5pbmdUb2tlbjp0LnN1YnN0cmluZyhvKX19LHR9KSgpO0FndC5XcmFwcGVyPUxndDt2YXIgUGd0PXZlJiZ2ZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXQoZSxuKSxlLnByb3RvdHlwZT1udWxsPT09bj9PYmplY3QuY3JlYXRlKG4pOihpLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgaSl9fSkoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoQ2d0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgTmd0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gUGd0KGUsdCksZS5wcm90b3R5cGUud3JhcD1mdW5jdGlvbihuLGkscixvKXt2YXIgYT10aGlzO2lmKHZvaWQgMD09PW8mJihvPTEvMCksbi5zcGxpdCgiXG4iKS5sZW5ndGg+MSl0aHJvdyBuZXcgRXJyb3IoIlNpbmdsZUxpbmVXcmFwcGVyIGlzIGRlc2lnbmVkIHRvIHdvcmsgb25seSBvbiBzaW5nbGUgbGluZSIpO3ZhciBzPWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS53cmFwLmNhbGwoYSxuLGksZSxvKX0sbD1zKHIpO2lmKGwubm9MaW5lczwyKXJldHVybiBsO2Zvcih2YXIgYz0wLHU9cixoPTA7aDxlLk5PX1dSQVBfSVRFUkFUSU9OUyYmdT5jOysraCl7dmFyIGQ9KHUrYykvMixwPXMoZCk7dGhpcy5hcmVTYW1lUmVzdWx0cyhsLHApPyh1PWQsbD1wKTpjPWR9cmV0dXJuIGx9LGUucHJvdG90eXBlLmFyZVNhbWVSZXN1bHRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubm9MaW5lcz09PWUubm9MaW5lcyYmdC50cnVuY2F0ZWRUZXh0PT09ZS50cnVuY2F0ZWRUZXh0fSxlfSkoQWd0LldyYXBwZXIpO05ndC5OT19XUkFQX0lURVJBVElPTlM9NSxDZ3QuU2luZ2xlTGluZVdyYXBwZXI9Tmd0LChmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgbiBpbiBlKXQuaGFzT3duUHJvcGVydHkobil8fCh0W25dPWVbbl0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlKENndCksZShBZ3QpfSkoVGd0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRWd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSWd0PVJtdCxSZ3Q9YWd0LE9ndD1UZ3Qsemd0PXptdCxEZ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLmNvbnRleHQ9dCx0aGlzLm1lYXN1cmVyPW5ldyBSZ3QuQ2FjaGVNZWFzdXJlcih0aGlzLmNvbnRleHQpLHRoaXMud3JhcHBlcj1uZXcgT2d0LldyYXBwZXIsdGhpcy53cml0ZXI9bmV3IHpndC5Xcml0ZXIodGhpcy5tZWFzdXJlcix0aGlzLmNvbnRleHQsdGhpcy53cmFwcGVyKX1yZXR1cm4gdC5zdmc9ZnVuY3Rpb24oZSxuLGkpe3JldHVybiBuZXcgdChuZXcgSWd0LlN2Z0NvbnRleHQoZSxuLGkpKX0sdC5jYW52YXM9ZnVuY3Rpb24oZSxuLGkpe3JldHVybiBuZXcgdChuZXcgSWd0LkNhbnZhc0NvbnRleHQoZSxuLGkpKX0sdC5odG1sPWZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gbmV3IHQobmV3IElndC5IdG1sQ29udGV4dChlLG4saSkpfSx0LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0LGUsbixpLHIpe3RoaXMud3JpdGVyLndyaXRlKHQsZSxuLGkscil9LHQucHJvdG90eXBlLmNsZWFyTWVhc3VyZXJDYWNoZT1mdW5jdGlvbigpe3RoaXMubWVhc3VyZXIucmVzZXQoKX0sdH0pKCk7RWd0LlR5cGVzZXR0ZXI9RGd0LChmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgbiBpbiBlKXQuaGFzT3duUHJvcGVydHkobil8fCh0W25dPWVbbl0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlKFJtdCksZShhZ3QpLGUoRWd0KSxlKEJtdCksZShUZ3QpLGUoem10KX0pKEltdCk7dmFyIEJndD17fSxIZ3Q9e30sRmd0PXt9LFZndD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KFZndCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFVndD1FZHQsamd0PXdpbmRvdy5BcnJheTtWZ3QuYWRkPWZ1bmN0aW9uIEdndCh0LGUpe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJhdHRlbXB0ZWQgdG8gYWRkIGFycmF5cyBvZiB1bmVxdWFsIGxlbmd0aCIpO3JldHVybiB0Lm1hcCgoZnVuY3Rpb24obixpKXtyZXR1cm4gdFtpXStlW2ldfSkpfSxWZ3QudW5pcT1mdW5jdGlvbiBXZ3QodCl7dmFyIGU9VWd0LnNldCgpLG49W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5oYXMoU3RyaW5nKHQpKXx8KGUuYWRkKFN0cmluZyh0KSksbi5wdXNoKHQpKX0pKSxufSxWZ3QuZmxhdHRlbj1mdW5jdGlvbiBxZ3QodCl7cmV0dXJuIGpndC5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLHQpfSxWZ3QuY3JlYXRlRmlsbGVkQXJyYXk9ZnVuY3Rpb24gWWd0KHQsZSl7Zm9yKHZhciBuPVtdLGk9MDtpPGU7aSsrKW5baV09ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChpKTp0O3JldHVybiBufTt2YXIgWGd0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShYZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciAkZ3Q9RWR0LEtndD13aW5kb3cuTWF0aDtmdW5jdGlvbiBaZ3QodCl7dmFyIGU9JGd0LnJnYih0KSxuPWZ1bmN0aW9uKHQpe3JldHVybih0Lz0yNTUpPD0uMDM5Mjg/dC8xMi45MjpLZ3QucG93KCh0Ky4wNTUpLzEuMDU1LDIuNCl9O3JldHVybi4yMTI2Km4oZS5yKSsuNzE1MipuKGUuZykrLjA3MjIqbihlLmIpfVhndC5jb250cmFzdD1mdW5jdGlvbiBKZ3QodCxlKXt2YXIgbj1aZ3QodCkrLjA1LGk9Wmd0KGUpKy4wNTtyZXR1cm4gbj5pP24vaTppL259LFhndC5saWdodGVuQ29sb3I9ZnVuY3Rpb24gUWd0KHQsZSl7cmV0dXJuICRndC5jb2xvcih0KS5icmlnaHRlcihlKS5yZ2IoKS50b1N0cmluZygpfSxYZ3QuY29sb3JUZXN0PWZ1bmN0aW9uIHRfdCh0LGUpe3QuY2xhc3NlZChlLCEwKTt2YXIgbj10LnN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIik7aWYoInRyYW5zcGFyZW50Ij09PW4pcmV0dXJuIG51bGw7dmFyIGk9L1woKC4rKVwpLy5leGVjKG4pO2lmKCFpKXJldHVybiBudWxsO3ZhciByPWlbMV0uc3BsaXQoIiwiKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSt0LG49ZS50b1N0cmluZygxNik7cmV0dXJuIGU8MTY/IjAiK246bn0pKTtpZig0PT09ci5sZW5ndGgmJiIwMCI9PT1yWzNdKXJldHVybiBudWxsO3ZhciBvPSIjIityLmpvaW4oIiIpO3JldHVybiB0LmNsYXNzZWQoZSwhMSksb307dmFyIGVfdD17fTshKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9RWR0LG49d2luZG93Lk1hdGg7ZnVuY3Rpb24gaSh0KXt2YXIgZTt0cnl7ZT10Lm5vZGUoKS5nZXRCQm94KCl9Y2F0Y2godCl7ZT17eDowLHk6MCx3aWR0aDowLGhlaWdodDowfX1yZXR1cm4gZX10LmNvbnRhaW5zPWZ1bmN0aW9uIHIodCxlKXtmb3IodmFyIG49ZTtudWxsIT1uJiZuIT09dDspbj1uLnBhcmVudE5vZGU7cmV0dXJuIG49PT10fSx0LmVsZW1lbnRCQm94PWksdC5lbnRpdHlCb3VuZHM9ZnVuY3Rpb24gbyh0KXtpZih0IGluc3RhbmNlb2YgU1ZHRWxlbWVudClyZXR1cm4gaShlLnNlbGVjdCh0KSk7aWYodCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXt2YXIgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4Om4ubGVmdCx5Om4udG9wLHdpZHRoOm4ud2lkdGgsaGVpZ2h0Om4uaGVpZ2h0fX1yZXR1cm57eDowLHk6MCx3aWR0aDowLGhlaWdodDowfX0sdC5TQ1JFRU5fUkVGUkVTSF9SQVRFX01JTExJU0VDT05EUz0xZTMvNjAsdC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVQb2x5ZmlsbD1mdW5jdGlvbiBhKGUpe251bGwhPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShlKTpzZXRUaW1lb3V0KGUsdC5TQ1JFRU5fUkVGUkVTSF9SQVRFX01JTExJU0VDT05EUyl9LHQuZWxlbWVudFdpZHRoPWZ1bmN0aW9uIHModCl7dmFyIG49dCBpbnN0YW5jZW9mIGUuc2VsZWN0aW9uP3Qubm9kZSgpOnQsaT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShuKTtyZXR1cm4gbShpLCJ3aWR0aCIpK20oaSwicGFkZGluZy1sZWZ0IikrbShpLCJwYWRkaW5nLXJpZ2h0IikrbShpLCJib3JkZXItbGVmdC13aWR0aCIpK20oaSwiYm9yZGVyLXJpZ2h0LXdpZHRoIil9LHQuZWxlbWVudEhlaWdodD1mdW5jdGlvbiBsKHQpe3ZhciBuPXQgaW5zdGFuY2VvZiBlLnNlbGVjdGlvbj90Lm5vZGUoKTp0LGk9d2luZG93LmdldENvbXB1dGVkU3R5bGUobik7cmV0dXJuIG0oaSwiaGVpZ2h0IikrbShpLCJwYWRkaW5nLXRvcCIpK20oaSwicGFkZGluZy1ib3R0b20iKSttKGksImJvcmRlci10b3Atd2lkdGgiKSttKGksImJvcmRlci1ib3R0b20td2lkdGgiKX07dmFyIGM9Iig/OlstK10/WzAtOV0qXFwuP1swLTldKykiLHU9Iig/Oig/OlxccyssP1xccyopfCg/OixcXHMqKSkiLGg9bmV3IFJlZ0V4cCgidHJhbnNsYXRlXFxzKlxcKFxccyooIitjKyIpKD86Iit1KyIoIitjKyIpKT9cXHMqXFwpIiksZD1uZXcgUmVnRXhwKCJyb3RhdGVcXHMqXFwoXFxzKigiK2MrIilcXHMqXFwpIikscD1uZXcgUmVnRXhwKCJzY2FsZVxccypcXChcXHMqKCIrYysiKSg/OiIrdSsiKCIrYysiKSk/XFxzKlxcKSIpO2Z1bmN0aW9uIGYodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybnttaW46dCxtYXg6dH07aWYodCBpbnN0YW5jZW9mIE9iamVjdCYmIm1pbiJpbiB0JiYibWF4ImluIHQpcmV0dXJuIHQ7dGhyb3cgbmV3IEVycm9yKCJpbnB1dCAnIit0KyInIGNhbid0IGJlIHBhcnNlZCBhcyBhbiBSYW5nZSIpfWZ1bmN0aW9uIG0odCxlKXt2YXIgbj10LmdldFByb3BlcnR5VmFsdWUoZSk7cmV0dXJuIHBhcnNlRmxvYXQobil8fDB9dC5nZXRUcmFuc2xhdGVWYWx1ZXM9ZnVuY3Rpb24gZyh0KXt2YXIgZT1oLmV4ZWModC5hdHRyKCJ0cmFuc2Zvcm0iKSk7aWYobnVsbCE9ZSl7dmFyIG49ZVsyXTtyZXR1cm5bK2VbMV0sKyh2b2lkIDA9PT1uPzA6bildfXJldHVyblswLDBdfSx0LmdldFJvdGF0ZT1mdW5jdGlvbiBfKHQpe3ZhciBlPWQuZXhlYyh0LmF0dHIoInRyYW5zZm9ybSIpKTtyZXR1cm4gbnVsbCE9ZT8rZVsxXTowfSx0LmdldFNjYWxlVmFsdWVzPWZ1bmN0aW9uIHkodCl7dmFyIGU9cC5leGVjKHQuYXR0cigidHJhbnNmb3JtIikpO2lmKG51bGwhPWUpe3ZhciBuPWVbMV0saT1lWzJdO3JldHVyblsrbixudWxsPT1pPytuOitpXX1yZXR1cm5bMCwwXX0sdC5jbGllbnRSZWN0c092ZXJsYXA9ZnVuY3Rpb24gdih0LGUpe3JldHVybiEobi5mbG9vcih0LnJpZ2h0KTw9bi5jZWlsKGUubGVmdCl8fG4uY2VpbCh0LmxlZnQpPj1uLmZsb29yKGUucmlnaHQpfHxuLmZsb29yKHQuYm90dG9tKTw9bi5jZWlsKGUudG9wKXx8bi5jZWlsKHQudG9wKT49bi5mbG9vcihlLmJvdHRvbSkpfSx0LmV4cGFuZFJlY3Q9ZnVuY3Rpb24gYih0LGUpe3JldHVybntsZWZ0OnQubGVmdC1lLHRvcDp0LnRvcC1lLHJpZ2h0OnQucmlnaHQrZSxib3R0b206dC5ib3R0b20rZSx3aWR0aDp0LndpZHRoKzIqZSxoZWlnaHQ6dC5oZWlnaHQrMiplfX0sdC5jbGllbnRSZWN0SW5zaWRlPWZ1bmN0aW9uIHgodCxlKXtyZXR1cm4gbi5mbG9vcihlLmxlZnQpPD1uLmNlaWwodC5sZWZ0KSYmbi5mbG9vcihlLnRvcCk8PW4uY2VpbCh0LnRvcCkmJm4uZmxvb3IodC5yaWdodCk8PW4uY2VpbChlLnJpZ2h0KSYmbi5mbG9vcih0LmJvdHRvbSk8PW4uY2VpbChlLmJvdHRvbSl9LHQuaW50ZXJzZWN0c0JCb3g9ZnVuY3Rpb24gdyh0LGUsbixpKXt2b2lkIDA9PT1pJiYoaT0uNSk7dmFyIHI9Zih0KSxvPWYoZSk7cmV0dXJuIG4ueCtuLndpZHRoPj1yLm1pbi1pJiZuLng8PXIubWF4K2kmJm4ueStuLmhlaWdodD49by5taW4taSYmbi55PD1vLm1heCtpfSx0LmdldEh0bWxFbGVtZW50QW5jZXN0b3JzPWZ1bmN0aW9uIFModCl7Zm9yKHZhciBlPVtdO3QmJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDspZS5wdXNoKHQpLHQ9dC5wYXJlbnRFbGVtZW50O3JldHVybiBlfSx0LmdldEVsZW1lbnRUcmFuc2Zvcm09ZnVuY3Rpb24gTSh0KXt2YXIgZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpO3JldHVybihmdW5jdGlvbiBuKHQpe2lmKG51bGw9PXR8fCJub25lIj09PXQpcmV0dXJuIG51bGw7dmFyIGU9dC5tYXRjaChFKTtpZihudWxsPT1lfHxlLmxlbmd0aDwyKXJldHVybiBudWxsO3ZhciBuPWVbMV0uc3BsaXQoVCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VGbG9hdCh0KX0pKTtyZXR1cm4gNiE9bi5sZW5ndGg/bnVsbDpufSkoZS5nZXRQcm9wZXJ0eVZhbHVlKCItd2Via2l0LXRyYW5zZm9ybSIpfHxlLmdldFByb3BlcnR5VmFsdWUoIi1tb3otdHJhbnNmb3JtIil8fGUuZ2V0UHJvcGVydHlWYWx1ZSgiLW1zLXRyYW5zZm9ybSIpfHxlLmdldFByb3BlcnR5VmFsdWUoIi1vLXRyYW5zZm9ybSIpfHxlLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpKX07dmFyIEU9L15tYXRyaXhcKChbXildKylcKSQvLFQ9L1ssIF0rL30pKGVfdCk7dmFyIG5fdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkobl90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaV90PUVkdCxyX3Q9ZV90LG9fdD13aW5kb3cuTWF0aCxhX3Q9WzEsMCwwLDEsMCwwXTtmdW5jdGlvbiBzX3QodCxlKXtyZXR1cm5bdFswXSplWzBdK3RbMl0qZVsxXSx0WzFdKmVbMF0rdFszXSplWzFdLHRbMF0qZVsyXSt0WzJdKmVbM10sdFsxXSplWzJdK3RbM10qZVszXSx0WzBdKmVbNF0rdFsyXSplWzVdK3RbNF0sdFsxXSplWzRdK3RbM10qZVs1XSt0WzVdXX1mdW5jdGlvbiBsX3QodCxlKXtyZXR1cm5bdFswXSx0WzFdLHRbMl0sdFszXSx0WzBdKmVbMF0rdFsyXSplWzFdK3RbNF0sdFsxXSplWzBdK3RbM10qZVsxXSt0WzVdXX1mdW5jdGlvbiBjX3QodCl7dmFyIGU9dFswXSp0WzNdLXRbMV0qdFsyXTtpZigwPT09ZSl0aHJvdyBuZXcgRXJyb3IoInNpbmd1bGFyIG1hdHJpeCIpO3ZhciBuPTEvZTtyZXR1cm5bbip0WzNdLG4qLXRbMV0sbiotdFsyXSxuKnRbMF0sbiooLXRbM10qdFs0XSt0WzJdKnRbNV0pLG4qKHRbMV0qdFs0XSstdFswXSp0WzVdKV19bl90LmluUmFuZ2U9ZnVuY3Rpb24gdV90KHQsZSxuKXtyZXR1cm4gb190Lm1pbihlLG4pPD10JiZ0PD1vX3QubWF4KGUsbil9LG5fdC5jbGFtcD1mdW5jdGlvbiBoX3QodCxlLG4pe3JldHVybiBvX3QubWluKG9fdC5tYXgoZSx0KSxuKX0sbl90Lm1heD1mdW5jdGlvbiBkX3QodCxlLG4pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6bnVsbCxyPW51bGw9PWk/ZTpuLG89bnVsbD09aT9pX3QubWF4KHQpOmlfdC5tYXgodCxpKTtyZXR1cm4gdm9pZCAwIT09bz9vOnJ9LG5fdC5taW49ZnVuY3Rpb24gcF90KHQsZSxuKXt2YXIgaT0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOm51bGwscj1udWxsPT1pP2U6bixvPW51bGw9PWk/aV90Lm1pbih0KTppX3QubWluKHQsaSk7cmV0dXJuIHZvaWQgMCE9PW8/bzpyfSxuX3QuaXNOYU49ZnVuY3Rpb24gZl90KHQpe3JldHVybiB0IT10fSxuX3QuaXNWYWxpZE51bWJlcj1mdW5jdGlvbiBtX3QodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0LXQ8MX0sbl90LnJhbmdlPWZ1bmN0aW9uIGdfdCh0LGUsbil7aWYodm9pZCAwPT09biYmKG49MSksMD09PW4pdGhyb3cgbmV3IEVycm9yKCJzdGVwIGNhbm5vdCBiZSAwIik7Zm9yKHZhciBpPW9fdC5tYXgob190LmNlaWwoKGUtdCkvbiksMCkscj1bXSxvPTA7bzxpOysrbylyW29dPXQrbipvO3JldHVybiByfSxuX3QuZGlzdGFuY2VTcXVhcmVkPWZ1bmN0aW9uIF9fdCh0LGUpe3JldHVybiBvX3QucG93KGUueS10LnksMikrb190LnBvdyhlLngtdC54LDIpfSxuX3QuZGVncmVlc1RvUmFkaWFucz1mdW5jdGlvbiB5X3QodCl7cmV0dXJuIHQvMzYwKm9fdC5QSSoyfSxuX3Qud2l0aGluPWZ1bmN0aW9uIHZfdCh0LGUpe3JldHVybiBlLnRvcExlZnQueDw9dC54JiZlLmJvdHRvbVJpZ2h0Lng+PXQueCYmZS50b3BMZWZ0Lnk8PXQueSYmZS5ib3R0b21SaWdodC55Pj10Lnl9LG5fdC5ib3VuZHNJbnRlcnNlY3RzPWZ1bmN0aW9uIGJfdCh0LGUsbixpLHIsbyxhLHMpe3JldHVybiB0PD1yK2EmJnI8PXQrbiYmZTw9bytzJiZvPD1lK2l9LG5fdC5nZXRDdW11bGF0aXZlVHJhbnNmb3JtPWZ1bmN0aW9uIHhfdCh0KXtmb3IodmFyIGU9cl90LmdldEh0bWxFbGVtZW50QW5jZXN0b3JzKHQpLG49YV90LGk9bnVsbCxyPTAsbz1lO3I8by5sZW5ndGg7cisrKXt2YXIgYT1vW3JdLHM9cl90LmdldEVsZW1lbnRUcmFuc2Zvcm0oYSk7aWYobnVsbCE9cyl7dmFyIGw9YS5jbGllbnRXaWR0aC8yLGM9YS5jbGllbnRIZWlnaHQvMjtuPWxfdChuLFtsLGNdKSxuPWxfdChuPXNfdChuLGNfdChzKSksWy1sLC1jXSl9dmFyIHU9YS5zY3JvbGxMZWZ0LGg9YS5zY3JvbGxUb3A7bnVsbCE9PWkmJmEhPT1pfHwodS09YS5vZmZzZXRMZWZ0K2EuY2xpZW50TGVmdCxoLT1hLm9mZnNldFRvcCthLmNsaWVudFRvcCxpPWEub2Zmc2V0UGFyZW50KSxuPWxfdChuLFt1LGhdKX1yZXR1cm4gbn0sbl90Lm11bHRpcGx5TWF0cml4PXNfdCxuX3QucHJlbXVsdGlwbHlUcmFuc2xhdGU9ZnVuY3Rpb24gd190KHQsZSl7cmV0dXJuW2VbMF0sZVsxXSxlWzJdLGVbM10sZVs0XSt0WzBdLGVbNV0rdFsxXV19LG5fdC5tdWx0aXBseVRyYW5zbGF0ZT1sX3Qsbl90LmludmVydE1hdHJpeD1jX3Qsbl90LmFwcGx5VHJhbnNmb3JtPWZ1bmN0aW9uIFNfdCh0LGUpe3JldHVybnt4OnRbMF0qZS54K3RbMl0qZS55K3RbNF0seTp0WzFdKmUueCt0WzNdKmUueSt0WzVdfX07dmFyIE1fdD17fSxFX3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTctcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBUX3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49TWF0aC5jZWlsKHQubGVuZ3RoLzIpLGk9MDtpPG47aSsrKWVbMF0uaW5zZXJ0KHRbaV0pO2ZvcihpPW47aTx0Lmxlbmd0aDtpKyspZVsxXS5pbnNlcnQodFtpXSl9LHR9KSgpO0VfdC5TcGxpdFN0cmF0ZWd5VHJpdmlhbD1UX3Q7dmFyIENfdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih0LGUpe2Zvcih0PXQuc2xpY2UoKSx0aGlzLmNob29zZUZpcnN0U3BsaXQodCxlKTt0Lmxlbmd0aD4wOyl0aGlzLmFkZE5leHQodCxlKX0sdC5wcm90b3R5cGUuY2hvb3NlRmlyc3RTcGxpdD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wLGk9MCxyPXQubGVuZ3RoLTEsbz10Lmxlbmd0aC0xLGE9MTthPHQubGVuZ3RoLTE7YSsrKXt2YXIgcz10W2FdO3MuYm91bmRzLnhsPnRbcl0uYm91bmRzLnhsP3I9YTpzLmJvdW5kcy54aDx0W25dLmJvdW5kcy54aCYmKG49YSkscy5ib3VuZHMueWw+dFtvXS5ib3VuZHMueWw/bz1hOnMuYm91bmRzLnloPHRbaV0uYm91bmRzLnloJiYoaT1hKX12YXIgbD1NYXRoLmFicyh0W25dLmJvdW5kcy54aC10W3JdLmJvdW5kcy54bCk+TWF0aC5hYnModFtpXS5ib3VuZHMueWgtdFtvXS5ib3VuZHMueWwpP1tuLHJdOltpLG9dLGM9bFswXSx1PWxbMV07Yz09PXUmJihjPTAsdT10Lmxlbmd0aC0xKSxlWzBdLmluc2VydCh0LnNwbGljZShNYXRoLm1heChjLHUpLDEpWzBdKSxlWzFdLmluc2VydCh0LnNwbGljZShNYXRoLm1pbihjLHUpLDEpWzBdKX0sdC5wcm90b3R5cGUuYWRkTmV4dD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1udWxsLGk9bnVsbCxyPW51bGwsbz0wO288dC5sZW5ndGg7bysrKXt2YXIgYT10W29dLHM9ZVswXS51bmlvbkFyZWFEaWZmZXJlbmNlKGEuYm91bmRzKSxsPWVbMV0udW5pb25BcmVhRGlmZmVyZW5jZShhLmJvdW5kcyk7KHM8aXx8bnVsbD09bikmJihuPW8saT1zLHI9ZVswXSksbDxpJiYobj1vLGk9bCxyPWVbMV0pfXIuaW5zZXJ0KHQuc3BsaWNlKG4sMSlbMF0pfSx0fSkoKTtFX3QuU3BsaXRTdHJhdGVneUxpbmVhcj1DX3QsKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE3LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGUsbj1uZXcgRV90LlNwbGl0U3RyYXRlZ3lMaW5lYXI7ZnVuY3Rpb24gaSh0LG4saSl7dmFyIHI9MS8wLG89MS8wO3JldHVybiBmdW5jdGlvbihhKXt2YXIgcz1uKGEuYm91bmRzLHQpLGw9aShhLmJvdW5kcyx0KTtyZXR1cm4gbnVsbCE9YS52YWx1ZT9zPHI/KHI9cyxvPWwsZS5QQVNTX0FORF9PVkVSV1JJVEUpOnM9PT1yP2UuUEFTUzplLkZBSUw6cz5vP2UuRkFJTDoobz1NYXRoLm1heChsLG8pLGUuUEFTUyl9fWZ1bmN0aW9uIHIodCxlKXtyZXR1cm4gZnVuY3Rpb24obixpKXtyZXR1cm4gZShpLmJvdW5kcyx0KS1lKG4uYm91bmRzLHQpfX0hKGZ1bmN0aW9uKHQpe3RbdC5QQVNTPTBdPSJQQVNTIix0W3QuRkFJTD0xXT0iRkFJTCIsdFt0LlBBU1NfQU5EX09WRVJXUklURT0yXT0iUEFTU19BTkRfT1ZFUldSSVRFIn0pKGU9dC5RdWVyeVByZWRpY2F0ZVJlc3VsdHx8KHQuUXVlcnlQcmVkaWNhdGVSZXN1bHQ9e30pKSx0LmNyZWF0ZU1pbmltaXppbmdOb2RlUHJlZGljYXRlPWksdC5jcmVhdGVOb2RlU29ydD1yO3ZhciBvPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt2b2lkIDA9PT10JiYodD01KSx2b2lkIDA9PT1lJiYoZT1uKSx0aGlzLm1heE5vZGVDaGlsZHJlbj10LHRoaXMuc3BsaXRTdHJhdGVneT1lLHRoaXMucm9vdD1uZXcgYSghMCksdGhpcy5zaXplPTB9cmV0dXJuIHQucHJvdG90eXBlLmdldFJvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290fSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMucm9vdD1uZXcgYSghMCksdGhpcy5zaXplPTB9LHQucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnJvb3Q7IW4ubGVhZjspbj1uLnN1YnRyZWUodCk7dmFyIGk9YS52YWx1ZU5vZGUodCxlKTtmb3Iobi5pbnNlcnQoaSksdGhpcy5zaXplKz0xO24ub3ZlcmZsb3codGhpcy5tYXhOb2RlQ2hpbGRyZW4pOyludWxsPT0obj1uLnNwbGl0KHRoaXMuc3BsaXRTdHJhdGVneSkpLnBhcmVudCYmKHRoaXMucm9vdD1uKTtyZXR1cm4gaX0sdC5wcm90b3R5cGUubG9jYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnF1ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gZS5jb250YWlucyh0KX0pKX0sdC5wcm90b3R5cGUubG9jYXRlTmVhcmVzdD1mdW5jdGlvbih0KXt2YXIgZT1pKHQscy5kaXN0YW5jZVNxdWFyZWRUb05lYXJFZGdlLHMuZGlzdGFuY2VTcXVhcmVkVG9GYXJFZGdlKTtyZXR1cm4gdGhpcy5xdWVyeU5vZGVzKGUpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWV9KSl9LHQucHJvdG90eXBlLmxvY2F0ZU5lYXJlc3RYPWZ1bmN0aW9uKHQpe3ZhciBlPWkodCxzLmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWCxzLmFic29sdXRlRGlzdGFuY2VUb0ZhckVkZ2VYKSxuPXRoaXMucXVlcnlOb2RlcyhlKTtyZXR1cm4gbi5zb3J0KHIodCxzLmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWSkpLG4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC52YWx1ZX0pKX0sdC5wcm90b3R5cGUubG9jYXRlTmVhcmVzdFk9ZnVuY3Rpb24odCl7dmFyIGU9aSh0LHMuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VZLHMuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVkpLG49dGhpcy5xdWVyeU5vZGVzKGUpO3JldHVybiBuLnNvcnQocih0LHMuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VYKSksbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlfSkpfSx0LnByb3RvdHlwZS5pbnRlcnNlY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucXVlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiBzLmlzQm91bmRzT3ZlcmxhcEJvdW5kcyhlLHQpfSkpfSx0LnByb3RvdHlwZS5pbnRlcnNlY3RYPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnF1ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gcy5pc0JvdW5kc092ZXJsYXBYKGUsdCl9KSl9LHQucHJvdG90eXBlLmludGVyc2VjdFk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucXVlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiBzLmlzQm91bmRzT3ZlcmxhcFkoZSx0KX0pKX0sdC5wcm90b3R5cGUucXVlcnk9ZnVuY3Rpb24odCl7dmFyIGU9W107aWYobnVsbCE9dGhpcy5yb290LmJvdW5kcyYmIXQodGhpcy5yb290LmJvdW5kcykpcmV0dXJuIGU7Zm9yKHZhciBuPVt0aGlzLnJvb3RdO24ubGVuZ3RoPjA7KWZvcih2YXIgaT1uLnNoaWZ0KCkscj0wO3I8aS5lbnRyaWVzLmxlbmd0aDtyKyspe3ZhciBvPWkuZW50cmllc1tyXTt0KG8uYm91bmRzKSYmKGkubGVhZj9lLnB1c2goby52YWx1ZSk6bi5wdXNoKG8pKX1yZXR1cm4gZX0sdC5wcm90b3R5cGUucXVlcnlOb2Rlcz1mdW5jdGlvbih0KXt2YXIgbj1bXTtpZihudWxsIT10aGlzLnJvb3QuYm91bmRzJiZ0KHRoaXMucm9vdCk9PT1lLkZBSUwpcmV0dXJuIG47Zm9yKHZhciBpPVt0aGlzLnJvb3RdO2kubGVuZ3RoPjA7KWZvcih2YXIgcj1pLnNoaWZ0KCksbz0wO288ci5lbnRyaWVzLmxlbmd0aDtvKyspe3ZhciBhPXIuZW50cmllc1tvXSxzPXQoYSk7cz09PWUuUEFTU19BTkRfT1ZFUldSSVRFJiYobj1bXSkscyE9PWUuUEFTUyYmcyE9PWUuUEFTU19BTkRfT1ZFUldSSVRFfHwoci5sZWFmP24ucHVzaChhKTppLnB1c2goYSkpfXJldHVybiBufSx0fSkoKTt0LlJUcmVlPW87dmFyIGE9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLmxlYWY9dCx0aGlzLmJvdW5kcz1udWxsLHRoaXMuZW50cmllcz1bXSx0aGlzLnBhcmVudD1udWxsLHRoaXMudmFsdWU9bnVsbH1yZXR1cm4gdC52YWx1ZU5vZGU9ZnVuY3Rpb24oZSxuKXt2YXIgaT1uZXcgdCghMCk7cmV0dXJuIGkuYm91bmRzPWUsaS52YWx1ZT1uLGl9LHQucHJvdG90eXBlLm92ZXJmbG93PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVudHJpZXMubGVuZ3RoPnR9LHQucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0KXt0aGlzLmVudHJpZXMucHVzaCh0KSx0LnBhcmVudD10aGlzO2Zvcih2YXIgZT10aGlzO251bGwhPWU7KWUuYm91bmRzPXMudW5pb25BbGwoW2UuYm91bmRzLHQuYm91bmRzXSksZT1lLnBhcmVudDtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZW50cmllcy5pbmRleE9mKHQpO2lmKGU+PTApe3RoaXMuZW50cmllcy5zcGxpY2UoZSwxKTtmb3IodmFyIG49dGhpcztudWxsIT1uOyluLmJvdW5kcz1zLnVuaW9uQWxsKG4uZW50cmllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmJvdW5kc30pKSksbj1uLnBhcmVudH1yZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuc3VidHJlZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MS8wLG49bnVsbCxpPTA7aTx0aGlzLmVudHJpZXMubGVuZ3RoO2krKyl7dmFyIHI9dGhpcy5lbnRyaWVzW2ldLG89ci51bmlvbkFyZWFEaWZmZXJlbmNlKHQpOyhvPGV8fG89PT1lJiZudWxsIT1uJiZyLmVudHJpZXMubGVuZ3RoPG4uZW50cmllcy5sZW5ndGgpJiYobj1yKX1yZXR1cm4gbn0sdC5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oZSl7bnVsbCE9dGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LnJlbW92ZSh0aGlzKTt2YXIgbj1bbmV3IHQodGhpcy5sZWFmKSxuZXcgdCh0aGlzLmxlYWYpXTtlLnNwbGl0KHRoaXMuZW50cmllcyxuKTt2YXIgaT1udWxsIT10aGlzLnBhcmVudD90aGlzLnBhcmVudDpuZXcgdCghMSk7cmV0dXJuIGkuaW5zZXJ0KG5bMF0pLGkuaW5zZXJ0KG5bMV0pLGkubGVhZj0hMSxpfSx0LnByb3RvdHlwZS51bmlvbkFyZWFEaWZmZXJlbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmFicyhzLnVuaW9uKHRoaXMuYm91bmRzLHQpLmFyZWEoKS10aGlzLmJvdW5kcy5hcmVhKCkpfSx0LnByb3RvdHlwZS5tYXhEZXB0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxlYWY/MToxK3RoaXMuZW50cmllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1heERlcHRoKCl9KSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUpfSkpfSx0fSkoKTt0LlJUcmVlTm9kZT1hO3ZhciBzPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4saSl7dGhpcy54bD10LHRoaXMueWw9ZSx0aGlzLnhoPW4sdGhpcy55aD1pLHRoaXMud2lkdGg9dGhpcy54aC10aGlzLnhsLHRoaXMuaGVpZ2h0PXRoaXMueWgtdGhpcy55bH1yZXR1cm4gdC54eXdoPWZ1bmN0aW9uKGUsbixpLHIpe3JldHVybiBuZXcgdChlLG4sZStpLG4rcil9LHQuZW50aXR5Qm91bmRzPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdChlLngsZS55LGUueCtlLndpZHRoLGUueStlLmhlaWdodCl9LHQuYm91bmRzPWZ1bmN0aW9uKGUpe3JldHVybiB0LnBvaW50UGFpcihlLnRvcExlZnQsZS5ib3R0b21SaWdodCl9LHQucG9pbnRQYWlyPWZ1bmN0aW9uKGUsbil7cmV0dXJuIG5ldyB0KE1hdGgubWluKGUueCxuLngpLE1hdGgubWluKGUueSxuLnkpLE1hdGgubWF4KGUueCxuLngpLE1hdGgubWF4KGUueSxuLnkpKX0sdC5wb2ludHM9ZnVuY3Rpb24oZSl7aWYoZS5sZW5ndGg8Mil0aHJvdyBuZXcgRXJyb3IoIm5lZWQgYXQgbGVhc3QgMiBwb2ludHMgdG8gY3JlYXRlIGJvdW5kcyIpO3ZhciBuPWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC54fSkpLGk9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnl9KSk7cmV0dXJuIG5ldyB0KG4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1pbih0LGUpfSkpLGkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1pbih0LGUpfSkpLG4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUpfSkpLGkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUpfSkpKX0sdC51bmlvbj1mdW5jdGlvbihlLG4pe3JldHVybiBuZXcgdChNYXRoLm1pbihlLnhsLG4ueGwpLE1hdGgubWluKGUueWwsbi55bCksTWF0aC5tYXgoZS54aCxuLnhoKSxNYXRoLm1heChlLnloLG4ueWgpKX0sdC51bmlvbkFsbD1mdW5jdGlvbihlKXtyZXR1cm4gMD09PShlPWUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH0pKSkubGVuZ3RoP251bGw6ZS5yZWR1Y2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQudW5pb24oZSxuKX0pKX0sdC5pc0JvdW5kc092ZXJsYXBCb3VuZHM9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5pc0JvdW5kc092ZXJsYXBYKGUsbikmJnQuaXNCb3VuZHNPdmVybGFwWShlLG4pfSx0LmlzQm91bmRzT3ZlcmxhcFg9ZnVuY3Rpb24odCxlKXtyZXR1cm4hKHQueGg8ZS54bHx8dC54bD5lLnhoKX0sdC5pc0JvdW5kc092ZXJsYXBZPWZ1bmN0aW9uKHQsZSl7cmV0dXJuISh0LnloPGUueWx8fHQueWw+ZS55aCl9LHQuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VYPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC53aWR0aC8yO3JldHVybiBNYXRoLm1heChNYXRoLmFicyhlLngtKHQueGwrbikpLW4sMCl9LHQuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VZPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5oZWlnaHQvMjtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnMoZS55LSh0LnlsK24pKS1uLDApfSx0LmFic29sdXRlRGlzdGFuY2VUb0ZhckVkZ2VYPWZ1bmN0aW9uKGUsbil7dmFyIGk9dC5hYnNvbHV0ZURpc3RhbmNlVG9OZWFyRWRnZVgoZSxuKTtyZXR1cm4gMD09PWk/MDppK2Uud2lkdGh9LHQuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVk9ZnVuY3Rpb24oZSxuKXt2YXIgaT10LmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWShlLG4pO3JldHVybiAwPT09aT8wOmkrZS5oZWlnaHR9LHQuZGlzdGFuY2VTcXVhcmVkVG9OZWFyRWRnZT1mdW5jdGlvbihlLG4pe3ZhciBpPXQuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VYKGUsbikscj10LmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWShlLG4pO3JldHVybiBpKmkrcipyfSx0LmRpc3RhbmNlU3F1YXJlZFRvRmFyRWRnZT1mdW5jdGlvbihlLG4pe3ZhciBpPXQuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVgoZSxuKSxyPXQuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVkoZSxuKTtyZXR1cm4gaSppK3Iqcn0sdC5wcm90b3R5cGUuYXJlYT1mdW5jdGlvbigpe3JldHVybiBudWxsPT10aGlzLmFyZWFDYWNoZWQmJih0aGlzLmFyZWFDYWNoZWQ9KHRoaXMueGgtdGhpcy54bCkqKHRoaXMueWgtdGhpcy55bCkpLHRoaXMuYXJlYUNhY2hlZH0sdC5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueGw8PXQueCYmdGhpcy54aD49dC54JiZ0aGlzLnlsPD10LnkmJnRoaXMueWg+PXQueX0sdH0pKCk7dC5SVHJlZUJvdW5kcz1zfSkoTV90KTt2YXIgQV90PXt9OyEoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT1FZHQsbj1TZS5leHBvcnRzLGk9Rmd0O3QuSVN0YWNraW5nT3JkZXI9U210Lm1ha2VFbnVtKFsidG9wZG93biIsImJvdHRvbXVwIl0pO3ZhciByPXdpbmRvdy5NYXRoO3Quc3RhY2s9ZnVuY3Rpb24gbyhuLHIsYSxzKXt2b2lkIDA9PT1zJiYocz0iYm90dG9tdXAiKTt2YXIgbD1lLm1hcCgpLGM9ZS5tYXAoKSx1PW5ldyBpLk1hcDsidG9wZG93biI9PT1zJiYobj1uLnNsaWNlKCkpLnJldmVyc2UoKTtmb3IodmFyIGg9MCxkPW47aDxkLmxlbmd0aDtoKyspe2Zvcih2YXIgcD1kW2hdLGY9bmV3IGkuTWFwLG09cC5kYXRhKCksZz1tLmxlbmd0aCxfPTA7XzxnO18rKyl7dmFyIHk9bVtfXSx2PXIoeSxfLHApLGI9dC5ub3JtYWxpemVLZXkodikseD0rYSh5LF8scCksdz12b2lkIDAsUz14Pj0wP2w6YztTLmhhcyhiKT8odz1TLmdldChiKSxTLnNldChiLHcreCkpOih3PTAsUy5zZXQoYix4KSksZi5zZXQoYix7b2Zmc2V0OncsdmFsdWU6eCxheGlzVmFsdWU6dixvcmlnaW5hbERhdHVtOnksb3JpZ2luYWxEYXRhc2V0OnAsb3JpZ2luYWxJbmRleDpffSl9dS5zZXQocCxmKX1yZXR1cm4gdX0sdC5zdGFja2VkRXh0ZW50cz1mdW5jdGlvbiBhKHQpe3ZhciBlPW5ldyBpLk1hcCxuPW5ldyBpLk1hcDtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmZvckVhY2goKGZ1bmN0aW9uKHQscil7dmFyIG89dC5vZmZzZXQrdC52YWx1ZSxhPWkuTWF0aC5tYXgoW28sdC5vZmZzZXRdLHQub2Zmc2V0KSxzPWkuTWF0aC5taW4oW28sdC5vZmZzZXRdLHQub2Zmc2V0KSxsPXQuYXhpc1ZhbHVlO2UuaGFzKHIpP2UuZ2V0KHIpLmV4dGVudDxhJiZlLnNldChyLHtleHRlbnQ6YSxheGlzVmFsdWU6bCxzdGFja2VkRGF0dW06dH0pOmUuc2V0KHIse2V4dGVudDphLGF4aXNWYWx1ZTpsLHN0YWNrZWREYXR1bTp0fSksbi5oYXMocik/bi5nZXQocikuZXh0ZW50PnMmJm4uc2V0KHIse2V4dGVudDpzLGF4aXNWYWx1ZTpsLHN0YWNrZWREYXR1bTp0fSk6bi5zZXQocix7ZXh0ZW50OnMsYXhpc1ZhbHVlOmwsc3RhY2tlZERhdHVtOnR9KX0pKX0pKSx7bWF4aW11bUV4dGVudHM6ZSxtaW5pbXVtRXh0ZW50czpufX0sdC5zdGFja2VkRXh0ZW50PWZ1bmN0aW9uIHMoZSxuLG8pe3ZhciBhPVtdO2UuZm9yRWFjaCgoZnVuY3Rpb24oZSxpKXtmb3IodmFyIHI9aS5kYXRhKCkscz1yLmxlbmd0aCxsPTA7bDxzO2wrKyl7dmFyIGM9cltsXTtpZihudWxsPT1vfHxvKGMsbCxpKSl7dmFyIHU9ZS5nZXQodC5ub3JtYWxpemVLZXkobihjLGwsaSkpKTthLnB1c2godS52YWx1ZSt1Lm9mZnNldCl9fX0pKTt2YXIgcz1pLk1hdGgubWF4KGEsMCksbD1pLk1hdGgubWluKGEsMCk7cmV0dXJuW3IubWluKGwsMCksci5tYXgoMCxzKV19LHQubm9ybWFsaXplS2V5PW4ubWVtb2l6ZSgoZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KX0pKX0pKEFfdCk7dmFyIGtfdD17fSxMX3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShMX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLExfdC5TSE9XX1dBUk5JTkdTPSEwLExfdC5BRERfVElUTEVfRUxFTUVOVFM9ITAsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShrX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBQX3Q9TF90O2Z1bmN0aW9uIE5fdCh0KXtQX3QuU0hPV19XQVJOSU5HUyYmY29uc29sZS53YXJuKHQpfWZ1bmN0aW9uIElfdCh0LGUpe2Zvcih2YXIgbj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKyluW2ktMl09YXJndW1lbnRzW2ldO3JldHVybiAwPT09ZT8odChuKSwtMSk6d2luZG93LnNldFRpbWVvdXQodCxlLG4pfWtfdC53YXJuPU5fdCxrX3Quc2V0VGltZW91dD1JX3Qsa190LmRlYm91bmNlPWZ1bmN0aW9uIFJfdCh0LGUsbil7dmFyIGk9bnVsbCxyPVtdLG89ZnVuY3Rpb24oKXtlLmFwcGx5KG4scil9O3JldHVybiBmdW5jdGlvbigpe3I9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxjbGVhclRpbWVvdXQoaSksaT1JX3Qobyx0KX19LGtfdC5kZXByZWNhdGVkPWZ1bmN0aW9uIE9fdCh0LGUsbil7dm9pZCAwPT09biYmKG49IiIpLE5fdCgiTWV0aG9kICIrdCsiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gdmVyc2lvbiAiK2UrIi4gUGxlYXNlIHJlZmVyIHRvIHRoZSByZWxlYXNlIG5vdGVzLiAiK24pfTt2YXIgel90PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE3LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eSh6X3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBEX3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7dGhpcy5lbnRyeUluZGV4PXQsdGhpcy5leGl0SW5kZXg9dCx0aGlzLm1pbkluZGV4PXQsdGhpcy5tYXhJbmRleD10LHRoaXMuYnVja2V0VmFsdWU9ZSx0aGlzLm1pblZhbHVlPW4sdGhpcy5tYXhWYWx1ZT1ufXJldHVybiB0LnByb3RvdHlwZS5pc0luQnVja2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0PT10aGlzLmJ1Y2tldFZhbHVlfSx0LnByb3RvdHlwZS5hZGRUb0J1Y2tldD1mdW5jdGlvbih0LGUpe3Q8dGhpcy5taW5WYWx1ZSYmKHRoaXMubWluVmFsdWU9dCx0aGlzLm1pbkluZGV4PWUpLHQ+dGhpcy5tYXhWYWx1ZSYmKHRoaXMubWF4VmFsdWU9dCx0aGlzLm1heEluZGV4PWUpLHRoaXMuZXhpdEluZGV4PWV9LHQucHJvdG90eXBlLmdldFVuaXF1ZUluZGljZXM9ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy5lbnRyeUluZGV4LHRoaXMubWF4SW5kZXgsdGhpcy5taW5JbmRleCx0aGlzLmV4aXRJbmRleF07cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbihlLG4pe3JldHVybiAwPT1ufHxlIT10W24tMV19KSl9LHR9KSgpO3pfdC5CdWNrZXQ9RF90O3ZhciBCX3Q9e30sSF90PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoSF90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgRl90PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LlNldD90aGlzLl9lczZTZXQ9bmV3IHdpbmRvdy5TZXQ6dGhpcy5fdmFsdWVzPVtdLHRoaXMuc2l6ZT0wfXJldHVybiB0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXRoaXMuX2VzNlNldD8odGhpcy5fZXM2U2V0LmFkZCh0KSx0aGlzLnNpemU9dGhpcy5fZXM2U2V0LnNpemUsdGhpcyk6KHRoaXMuaGFzKHQpfHwodGhpcy5fdmFsdWVzLnB1c2godCksdGhpcy5zaXplPXRoaXMuX3ZhbHVlcy5sZW5ndGgpLHRoaXMpfSx0LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7aWYobnVsbCE9dGhpcy5fZXM2U2V0KXt2YXIgZT10aGlzLl9lczZTZXQuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemU9dGhpcy5fZXM2U2V0LnNpemUsZX12YXIgbj10aGlzLl92YWx1ZXMuaW5kZXhPZih0KTtyZXR1cm4tMSE9PW4mJih0aGlzLl92YWx1ZXMuc3BsaWNlKG4sMSksdGhpcy5zaXplPXRoaXMuX3ZhbHVlcy5sZW5ndGgsITApfSx0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXRoaXMuX2VzNlNldD90aGlzLl9lczZTZXQuaGFzKHQpOi0xIT09dGhpcy5fdmFsdWVzLmluZGV4T2YodCl9LHQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO251bGw9PXRoaXMuX2VzNlNldD90aGlzLl92YWx1ZXMuZm9yRWFjaCgoZnVuY3Rpb24oaSl7dC5jYWxsKGUsaSxpLG4pfSkpOnRoaXMuX2VzNlNldC5mb3JFYWNoKChmdW5jdGlvbihpLHIpe3JldHVybiB0LmNhbGwoZSxpLHIsbil9KSxlKX0sdH0pKCk7SF90LlNldD1GX3QsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBWX3Q9dU8sVV90PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gVl90Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmNhbGxDYWxsYmFja3M9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxlPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKG4pe24uYXBwbHkodCxlKX0pKSx0aGlzfSxlfSkoSF90LlNldCk7Ql90LkNhbGxiYWNrU2V0PVVfdDt2YXIgal90PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShqX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBHX3Q9TV90LFdfdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fZW50aXRpZXM9W10sdGhpcy5fcnRyZWU9bmV3IEdfdC5SVHJlZX1yZXR1cm4gdC5wcm90b3R5cGUuYWRkQWxsPWZ1bmN0aW9uKHQsZSxuKXtpZih0aGlzLl9lbnRpdGllcz10aGlzLl9lbnRpdGllcy5jb25jYXQodCksdm9pZCAwIT09bilmb3IodmFyIGk9R190LlJUcmVlQm91bmRzLmJvdW5kcyhuKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPUdfdC5SVHJlZUJvdW5kcy5lbnRpdHlCb3VuZHMoZShhPXRbcl0pKTtHX3QuUlRyZWVCb3VuZHMuaXNCb3VuZHNPdmVybGFwQm91bmRzKGksbykmJnRoaXMuX3J0cmVlLmluc2VydChvLGEpfWVsc2UgZm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGE7bz1HX3QuUlRyZWVCb3VuZHMuZW50aXR5Qm91bmRzKGUoYT10W3JdKSksdGhpcy5fcnRyZWUuaW5zZXJ0KG8sYSl9fSx0LnByb3RvdHlwZS5lbnRpdHlOZWFyZXN0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ydHJlZS5sb2NhdGVOZWFyZXN0KHQpLnBvcCgpfSx0LnByb3RvdHlwZS5lbnRpdHlOZWFyZXN0WD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcnRyZWUubG9jYXRlTmVhcmVzdFgodCkucG9wKCl9LHQucHJvdG90eXBlLmVudGl0eU5lYXJlc3RZPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ydHJlZS5sb2NhdGVOZWFyZXN0WSh0KS5wb3AoKX0sdC5wcm90b3R5cGUuZW50aXRpZXNJbkJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcnRyZWUuaW50ZXJzZWN0KEdfdC5SVHJlZUJvdW5kcy5lbnRpdHlCb3VuZHModCkpfSx0LnByb3RvdHlwZS5lbnRpdGllc0luWEJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcnRyZWUuaW50ZXJzZWN0WChHX3QuUlRyZWVCb3VuZHMuZW50aXR5Qm91bmRzKHQpKX0sdC5wcm90b3R5cGUuZW50aXRpZXNJbllCb3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3J0cmVlLmludGVyc2VjdFkoR190LlJUcmVlQm91bmRzLmVudGl0eUJvdW5kcyh0KSl9LHQucHJvdG90eXBlLmVudGl0aWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VudGl0aWVzfSx0fSkoKTtqX3QuRW50aXR5U3RvcmU9V190O3ZhciBxX3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KHFfdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFlfdD1uX3QsWF90PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93Lk1hcD90aGlzLl9lczZNYXA9bmV3IHdpbmRvdy5NYXA6dGhpcy5fa2V5VmFsdWVQYWlycz1bXX1yZXR1cm4gdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7aWYoWV90LmlzTmFOKHQpKXRocm93IG5ldyBFcnJvcigiTmFOIG1heSBub3QgYmUgdXNlZCBhcyBhIGtleSB0byB0aGUgTWFwIik7aWYobnVsbCE9dGhpcy5fZXM2TWFwKXJldHVybiB0aGlzLl9lczZNYXAuc2V0KHQsZSksdGhpcztmb3IodmFyIG49MDtuPHRoaXMuX2tleVZhbHVlUGFpcnMubGVuZ3RoO24rKylpZih0aGlzLl9rZXlWYWx1ZVBhaXJzW25dLmtleT09PXQpcmV0dXJuIHRoaXMuX2tleVZhbHVlUGFpcnNbbl0udmFsdWU9ZSx0aGlzO3JldHVybiB0aGlzLl9rZXlWYWx1ZVBhaXJzLnB1c2goe2tleTp0LHZhbHVlOmV9KSx0aGlzfSx0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7aWYobnVsbCE9dGhpcy5fZXM2TWFwKXJldHVybiB0aGlzLl9lczZNYXAuZ2V0KHQpO2Zvcih2YXIgZT0wO2U8dGhpcy5fa2V5VmFsdWVQYWlycy5sZW5ndGg7ZSsrKWlmKHRoaXMuX2tleVZhbHVlUGFpcnNbZV0ua2V5PT09dClyZXR1cm4gdGhpcy5fa2V5VmFsdWVQYWlyc1tlXS52YWx1ZX0sdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXRoaXMuX2VzNk1hcClyZXR1cm4gdGhpcy5fZXM2TWFwLmhhcyh0KTtmb3IodmFyIGU9MDtlPHRoaXMuX2tleVZhbHVlUGFpcnMubGVuZ3RoO2UrKylpZih0aGlzLl9rZXlWYWx1ZVBhaXJzW2VdLmtleT09PXQpcmV0dXJuITA7cmV0dXJuITF9LHQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO251bGw9PXRoaXMuX2VzNk1hcD90aGlzLl9rZXlWYWx1ZVBhaXJzLmZvckVhY2goKGZ1bmN0aW9uKGkpe3QuY2FsbChlLGkudmFsdWUsaS5rZXksbil9KSk6dGhpcy5fZXM2TWFwLmZvckVhY2goKGZ1bmN0aW9uKGkscil7cmV0dXJuIHQuY2FsbChlLGkscixuKX0pLGUpfSx0LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7aWYobnVsbCE9dGhpcy5fZXM2TWFwKXJldHVybiB0aGlzLl9lczZNYXAuZGVsZXRlKHQpO2Zvcih2YXIgZT0wO2U8dGhpcy5fa2V5VmFsdWVQYWlycy5sZW5ndGg7ZSsrKWlmKHRoaXMuX2tleVZhbHVlUGFpcnNbZV0ua2V5PT09dClyZXR1cm4gdGhpcy5fa2V5VmFsdWVQYWlycy5zcGxpY2UoZSwxKSwhMDtyZXR1cm4hMX0sdH0pKCk7cV90Lk1hcD1YX3Q7dmFyICRfdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNy1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoJF90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwkX3QuYXNzaWduPWZ1bmN0aW9uIEtfdCgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtmb3IodmFyIG49e30saT0wLHI9dDtpPHIubGVuZ3RoO2krKylmb3IodmFyIG89cltpXSxhPU9iamVjdC5rZXlzKG8pLHM9MCxsPWE7czxsLmxlbmd0aDtzKyspe3ZhciBjPWxbc107bltjXT1vW2NdfXJldHVybiBufTt2YXIgWl90PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE3LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShaX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBKX3Q9Rmd0LFFfdD0iX19QbG90dGFibGVfQ2xpZW50VHJhbnNsYXRvciI7Wl90LmdldFRyYW5zbGF0b3I9ZnVuY3Rpb24gdHl0KHQpe3ZhciBlPXQucm9vdCgpLnJvb3RFbGVtZW50KCkubm9kZSgpLG49ZVtRX3RdO3JldHVybiBudWxsPT1uJiYobj1uZXcgZXl0KGUpLGVbUV90XT1uKSxufTt2YXIgZXl0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5fcm9vdEVsZW1lbnQ9dH1yZXR1cm4gdC5wcm90b3R5cGUuY29tcHV0ZVBvc2l0aW9uPWZ1bmN0aW9uKHQsZSl7dmFyIG49e3g6dCx5OmV9LGk9Sl90Lk1hdGguZ2V0Q3VtdWxhdGl2ZVRyYW5zZm9ybSh0aGlzLl9yb290RWxlbWVudCk7cmV0dXJuIG51bGw9PWk/bjpKX3QuTWF0aC5hcHBseVRyYW5zZm9ybShpLG4pfSx0LmlzRXZlbnRJbnNpZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gSl90LkRPTS5jb250YWlucyh0LnJvb3QoKS5yb290RWxlbWVudCgpLm5vZGUoKSxlLnRhcmdldCl9LHR9KSgpO1pfdC5UcmFuc2xhdG9yPWV5dCwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT11Tzt0LkFycmF5PVZndCx0LkNvbG9yPVhndCx0LkRPTT1lX3QsdC5NYXRoPW5fdCx0LlJUcmVlPU1fdCx0LlN0YWNraW5nPUFfdCx0LldpbmRvdz1rX3QsZS5fX2V4cG9ydFN0YXIoel90LHQpLGUuX19leHBvcnRTdGFyKEJfdCx0KSxlLl9fZXhwb3J0U3RhcihibXQsdCksZS5fX2V4cG9ydFN0YXIoal90LHQpLGUuX19leHBvcnRTdGFyKHFfdCx0KSxlLl9fZXhwb3J0U3RhcigkX3QsdCksZS5fX2V4cG9ydFN0YXIoSF90LHQpLGUuX19leHBvcnRTdGFyKFpfdCx0KX0pKEZndCk7dmFyIG55dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkobnl0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaXl0PUZndCxyeXQ9SGd0LG95dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtyeXQuZmx1c2goKX0sdH0pKCk7bnl0LkltbWVkaWF0ZT1veXQ7dmFyIGF5dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtpeXQuRE9NLnJlcXVlc3RBbmltYXRpb25GcmFtZVBvbHlmaWxsKHJ5dC5mbHVzaCl9LHR9KSgpO255dC5BbmltYXRpb25GcmFtZT1heXQ7dmFyIHN5dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fdGltZW91dE1zZWM9aXl0LkRPTS5TQ1JFRU5fUkVGUkVTSF9SQVRFX01JTExJU0VDT05EU31yZXR1cm4gdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7c2V0VGltZW91dChyeXQuZmx1c2gsdGhpcy5fdGltZW91dE1zZWMpfSx0fSkoKTtueXQuVGltZW91dD1zeXQsKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9Rmd0LG49U210LGk9bnl0LHI9bmV3IGUuU2V0LG89bmV3IGUuU2V0LGE9ITEscz0hMTt0LlBvbGljeT1uLm1ha2VFbnVtKFsiaW1tZWRpYXRlIiwiYW5pbWF0aW9uRnJhbWUiLCJ0aW1lb3V0Il0pO3ZhciBsPW5ldyBpLkFuaW1hdGlvbkZyYW1lO2Z1bmN0aW9uIGModCl7by5hZGQodCksci5hZGQodCksdSgpfWZ1bmN0aW9uIHUoKXthfHwoYT0hMCxsLnJlbmRlcigpKX10LnJlbmRlclBvbGljeT1mdW5jdGlvbiBoKG4pe2lmKG51bGw9PW4pcmV0dXJuIGw7c3dpdGNoKG4pe2Nhc2UgdC5Qb2xpY3kuaW1tZWRpYXRlOmw9bmV3IGkuSW1tZWRpYXRlO2JyZWFrO2Nhc2UgdC5Qb2xpY3kuYW5pbWF0aW9uRnJhbWU6bD1uZXcgaS5BbmltYXRpb25GcmFtZTticmVhaztjYXNlIHQuUG9saWN5LnRpbWVvdXQ6bD1uZXcgaS5UaW1lb3V0O2JyZWFrO2RlZmF1bHQ6ZS5XaW5kb3cud2FybigiVW5yZWNvZ25pemVkIHJlbmRlclBvbGljeTogIituKX19LHQucmVnaXN0ZXJUb1JlbmRlcj1mdW5jdGlvbiBkKHQpe3MmJmUuV2luZG93Lndhcm4oIlJlZ2lzdGVyZWQgdG8gcmVuZGVyIHdoaWxlIG90aGVyIGNvbXBvbmVudHMgYXJlIGZsdXNoaW5nOiByZXF1ZXN0IG1heSBiZSBpZ25vcmVkIiksci5hZGQodCksdSgpfSx0LnJlZ2lzdGVyVG9Db21wdXRlTGF5b3V0QW5kUmVuZGVyPWMsdC5yZWdpc3RlclRvQ29tcHV0ZUxheW91dD1mdW5jdGlvbiBwKHQpe2ModCl9LHQuZmx1c2g9ZnVuY3Rpb24gZigpe2lmKGEpe28uZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29tcHV0ZUxheW91dCgpfSkpLHIuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVuZGVyKCl9KSkscz0hMDt2YXIgdD1uZXcgZS5TZXQ7ci5mb3JFYWNoKChmdW5jdGlvbihlKXt0cnl7ZS5yZW5kZXJJbW1lZGlhdGVseSgpfWNhdGNoKG4pe3dpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Rocm93IG59KSwwKSx0LmFkZChlKX19KSksbz1uZXcgZS5TZXQscj10LGE9ITEscz0hMX19fSkoSGd0KSwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KEJndCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGx5dD1FZHQsY3l0PUhndCx1eXQ9Rmd0LGh5dD1TZS5leHBvcnRzLGR5dD1ibXQscHl0PVNtdDtCZ3QuWEFsaWdubWVudD1weXQubWFrZUVudW0oWyJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSksQmd0LllBbGlnbm1lbnQ9cHl0Lm1ha2VFbnVtKFsidG9wIiwiY2VudGVyIiwiYm90dG9tIl0pO3ZhciBmeXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuX292ZXJmbG93SGlkZGVuPSExLHRoaXMuX29yaWdpbj17eDowLHk6MH0sdGhpcy5feEFsaWdubWVudD0ibGVmdCIsdGhpcy5feUFsaWdubWVudD0idG9wIix0aGlzLl9pc1NldHVwPSExLHRoaXMuX2lzQW5jaG9yZWQ9ITEsdGhpcy5fY3NzQ2xhc3Nlcz1uZXcgdXl0LlNldCx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fb25BbmNob3JDYWxsYmFja3M9bmV3IHV5dC5DYWxsYmFja1NldCx0aGlzLl9vbkRldGFjaENhbGxiYWNrcz1uZXcgdXl0LkNhbGxiYWNrU2V0LHRoaXMuX2Nzc0NsYXNzZXMuYWRkKCJjb21wb25lbnQiKX1yZXR1cm4gdC5wcm90b3R5cGUuYW5jaG9yPWZ1bmN0aW9uKHQpe2lmKHQ9ZHl0LmNvZXJjZUV4dGVybmFsRDModCksdGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiQ2FuJ3QgcmV1c2UgZGVzdHJveSgpLWVkIENvbXBvbmVudHMhIik7cmV0dXJuIHRoaXMuaXNSb290KCkmJih0aGlzLl9yb290RWxlbWVudD10LHRoaXMuX3Jvb3RFbGVtZW50LmNsYXNzZWQoInBsb3R0YWJsZSIsITApKSxudWxsIT10aGlzLl9lbGVtZW50P3Qubm9kZSgpLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQubm9kZSgpKToodGhpcy5fZWxlbWVudD10LmFwcGVuZCgiZGl2IiksdGhpcy5fc2V0dXAoKSksdGhpcy5faXNBbmNob3JlZD0hMCx0aGlzLl9vbkFuY2hvckNhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMpLHRoaXN9LHQucHJvdG90eXBlLm9uQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pc0FuY2hvcmVkJiZ0KHRoaXMpLHRoaXMuX29uQW5jaG9yQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSx0LnByb3RvdHlwZS5vZmZBbmNob3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX29uQW5jaG9yQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSx0LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2lzU2V0dXB8fCh0aGlzLl9jc3NDbGFzc2VzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QuX2VsZW1lbnQuY2xhc3NlZChlLCEwKX0pKSx0aGlzLl9jc3NDbGFzc2VzPW5ldyB1eXQuU2V0LHRoaXMuX2JhY2tncm91bmRDb250YWluZXI9dGhpcy5fZWxlbWVudC5hcHBlbmQoInN2ZyIpLmNsYXNzZWQoImJhY2tncm91bmQtY29udGFpbmVyIiwhMCksdGhpcy5fY29udGVudD10aGlzLl9lbGVtZW50LmFwcGVuZCgic3ZnIikuY2xhc3NlZCgiY29udGVudCIsITApLHRoaXMuX2ZvcmVncm91bmRDb250YWluZXI9dGhpcy5fZWxlbWVudC5hcHBlbmQoInN2ZyIpLmNsYXNzZWQoImZvcmVncm91bmQtY29udGFpbmVyIiwhMCksdGhpcy5fY29udGVudC5jbGFzc2VkKHRoaXMuX292ZXJmbG93SGlkZGVuPyJjb21wb25lbnQtb3ZlcmZsb3ctaGlkZGVuIjoiY29tcG9uZW50LW92ZXJmbG93LXZpc2libGUiLCEwKSx0aGlzLl9pc1NldHVwPSEwKX0sdC5wcm90b3R5cGUucmVxdWVzdGVkU3BhY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm57bWluV2lkdGg6MCxtaW5IZWlnaHQ6MH19LHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24oZSxuLGkpe2lmKG51bGw9PWV8fG51bGw9PW58fG51bGw9PWkpe2lmKG51bGw9PXRoaXMuX2VsZW1lbnQpdGhyb3cgbmV3IEVycm9yKCJhbmNob3IoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgY29tcHV0ZUxheW91dCgpIik7aWYobnVsbD09dGhpcy5fcm9vdEVsZW1lbnQpdGhyb3cgbmV3IEVycm9yKCJudWxsIGFyZ3VtZW50cyBjYW5ub3QgYmUgcGFzc2VkIHRvIGNvbXB1dGVMYXlvdXQoKSBvbiBhIG5vbi1yb290LCB1bmFuY2hvcmVkIG5vZGUiKTtlPXt4OjAseTowfTt2YXIgcj10aGlzLl9yb290RWxlbWVudC5ub2RlKCk7bj11eXQuRE9NLmVsZW1lbnRXaWR0aChyKSxpPXV5dC5ET00uZWxlbWVudEhlaWdodChyKX12YXIgbz10aGlzLl9zaXplRnJvbU9mZmVyKG4saSksYT1vLmhlaWdodCxzPW8ud2lkdGg7cmV0dXJuIHRoaXMuc2V0Qm91bmRzKHMsYSxlLngrKG4tcykqdC5feEFsaWduVG9Qcm9wb3J0aW9uW3RoaXMuX3hBbGlnbm1lbnRdLGUueSsoaS1hKSp0Ll95QWxpZ25Ub1Byb3BvcnRpb25bdGhpcy5feUFsaWdubWVudF0pLHRoaXN9LHQucHJvdG90eXBlLnNldEJvdW5kcz1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gdm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09aSYmKGk9MCksdGhpcy5fd2lkdGg9dCx0aGlzLl9oZWlnaHQ9ZSx0aGlzLl9vcmlnaW49e3g6bix5Oml9LG51bGwhPXRoaXMuX2VsZW1lbnQmJnRoaXMuX2VsZW1lbnQuc3R5bGVzKHtsZWZ0Om4rInB4IixoZWlnaHQ6ZSsicHgiLHRvcDppKyJweCIsd2lkdGg6dCsicHgifSksbnVsbCE9dGhpcy5fcmVzaXplSGFuZGxlciYmdGhpcy5fcmVzaXplSGFuZGxlcih7d2lkdGg6dCxoZWlnaHQ6ZX0pLHRoaXN9LHQucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5yZXF1ZXN0ZWRTcGFjZSh0LGUpO3JldHVybnt3aWR0aDp0aGlzLmZpeGVkV2lkdGgoKT9NYXRoLm1pbih0LG4ubWluV2lkdGgpOnQsaGVpZ2h0OnRoaXMuZml4ZWRIZWlnaHQoKT9NYXRoLm1pbihlLG4ubWluSGVpZ2h0KTplfX0sdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzQW5jaG9yZWQmJnRoaXMuX2lzU2V0dXAmJnRoaXMud2lkdGgoKT49MCYmdGhpcy5oZWlnaHQoKT49MCYmY3l0LnJlZ2lzdGVyVG9SZW5kZXIodGhpcyksdGhpc30sdC5wcm90b3R5cGUucmVuZGVyTG93UHJpb3JpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZW5kZXIoKX0sdC5wcm90b3R5cGUuX3NjaGVkdWxlQ29tcHV0ZUxheW91dD1mdW5jdGlvbigpe3RoaXMuX2lzQW5jaG9yZWQmJnRoaXMuX2lzU2V0dXAmJmN5dC5yZWdpc3RlclRvQ29tcHV0ZUxheW91dEFuZFJlbmRlcih0aGlzKX0sdC5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3Jlc2l6ZUhhbmRsZXI9dCx0aGlzfSx0LnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5yZWRyYXc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNBbmNob3JlZCYmdGhpcy5faXNTZXR1cCYmKHRoaXMuaXNSb290KCk/dGhpcy5fc2NoZWR1bGVDb21wdXRlTGF5b3V0KCk6dGhpcy5wYXJlbnQoKS5yZWRyYXcoKSksdGhpc30sdC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7fSx0LnByb3RvdHlwZS5yZW5kZXJUbz1mdW5jdGlvbih0KXtpZih0aGlzLmRldGFjaCgpLG51bGwhPXQpe3ZhciBlPXZvaWQgMDtpZighKGU9InN0cmluZyI9PXR5cGVvZiB0fHxoeXQuaXNFbGVtZW50KHQpP2x5dC5zZWxlY3QodCk6ZHl0LmNvZXJjZUV4dGVybmFsRDModCkpLm5vZGUoKXx8bnVsbD09ZS5ub2RlKCkubm9kZU5hbWUpdGhyb3cgbmV3IEVycm9yKCJQbG90dGFibGUgcmVxdWlyZXMgYSB2YWxpZCBFbGVtZW50IHRvIHJlbmRlclRvIik7aWYoInN2ZyI9PT1lLm5vZGUoKS5ub2RlTmFtZSl0aHJvdyBuZXcgRXJyb3IoIlBsb3R0YWJsZSAzLnggYW5kIGxhdGVyIGNhbiBvbmx5IHJlbmRlclRvIGFuIEhUTUwgY29tcG9uZW50OyBwYXNzIGEgZGl2IGluc3RlYWQhIik7dGhpcy5hbmNob3IoZSl9aWYobnVsbD09dGhpcy5fZWxlbWVudCl0aHJvdyBuZXcgRXJyb3IoIklmIGEgQ29tcG9uZW50IGhhcyBuZXZlciBiZWVuIHJlbmRlcmVkIGJlZm9yZSwgdGhlbiByZW5kZXJUbyBtdXN0IGJlIGdpdmVuIGEgbm9kZSB0byByZW5kZXIgdG8sIG9yIGEgZDMuU2VsZWN0aW9uLCBvciBhIHNlbGVjdG9yIHN0cmluZyIpO3JldHVybiBjeXQucmVnaXN0ZXJUb0NvbXB1dGVMYXlvdXRBbmRSZW5kZXIodGhpcyksY3l0LmZsdXNoKCksdGhpc30sdC5wcm90b3R5cGUueEFsaWdubWVudD1mdW5jdGlvbihlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl94QWxpZ25tZW50O2lmKGU9ZS50b0xvd2VyQ2FzZSgpLG51bGw9PXQuX3hBbGlnblRvUHJvcG9ydGlvbltlXSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGFsaWdubWVudDogIitlKTtyZXR1cm4gdGhpcy5feEFsaWdubWVudD1lLHRoaXMucmVkcmF3KCksdGhpc30sdC5wcm90b3R5cGUueUFsaWdubWVudD1mdW5jdGlvbihlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl95QWxpZ25tZW50O2lmKGU9ZS50b0xvd2VyQ2FzZSgpLG51bGw9PXQuX3lBbGlnblRvUHJvcG9ydGlvbltlXSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGFsaWdubWVudDogIitlKTtyZXR1cm4gdGhpcy5feUFsaWdubWVudD1lLHRoaXMucmVkcmF3KCksdGhpc30sdC5wcm90b3R5cGUuaGFzQ2xhc3M9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJihudWxsPT10aGlzLl9lbGVtZW50P3RoaXMuX2Nzc0NsYXNzZXMuaGFzKHQpOnRoaXMuX2VsZW1lbnQuY2xhc3NlZCh0KSl9LHQucHJvdG90eXBlLmFkZENsYXNzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHwobnVsbD09dGhpcy5fZWxlbWVudD90aGlzLl9jc3NDbGFzc2VzLmFkZCh0KTp0aGlzLl9lbGVtZW50LmNsYXNzZWQodCwhMCkpLHRoaXN9LHQucHJvdG90eXBlLnJlbW92ZUNsYXNzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHwobnVsbD09dGhpcy5fZWxlbWVudD90aGlzLl9jc3NDbGFzc2VzLmRlbGV0ZSh0KTp0aGlzLl9lbGVtZW50LmNsYXNzZWQodCwhMSkpLHRoaXN9LHQucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sdC5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sdC5wcm90b3R5cGUuZGV0YWNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KG51bGwpLHRoaXMuX2lzQW5jaG9yZWQmJnRoaXMuX2VsZW1lbnQucmVtb3ZlKCksdGhpcy5faXNBbmNob3JlZD0hMSx0aGlzLl9vbkRldGFjaENhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMpLHRoaXN9LHQucHJvdG90eXBlLm9uRGV0YWNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9vbkRldGFjaENhbGxiYWNrcy5hZGQodCksdGhpc30sdC5wcm90b3R5cGUub2ZmRGV0YWNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9vbkRldGFjaENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sdC5wcm90b3R5cGUucGFyZW50PWZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpcmV0dXJuIHRoaXMuX3BhcmVudDtpZihudWxsIT09dCYmIXQuaGFzKHRoaXMpKXRocm93IG5ldyBFcnJvcigiUGFzc2VkIGludmFsaWQgcGFyZW50Iik7cmV0dXJuIHRoaXMuX3BhcmVudD10LHRoaXN9LHQucHJvdG90eXBlLmJvdW5kcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMub3JpZ2luKCk7cmV0dXJue3RvcExlZnQ6dCxib3R0b21SaWdodDp7eDp0LngrdGhpcy53aWR0aCgpLHk6dC55K3RoaXMuaGVpZ2h0KCl9fX0sdC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLmRldGFjaCgpfSx0LnByb3RvdHlwZS53aWR0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWR0aH0sdC5wcm90b3R5cGUuaGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hlaWdodH0sdC5wcm90b3R5cGUub3JpZ2luPWZ1bmN0aW9uKCl7cmV0dXJue3g6dGhpcy5fb3JpZ2luLngseTp0aGlzLl9vcmlnaW4ueX19LHQucHJvdG90eXBlLm9yaWdpblRvUm9vdD1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLm9yaWdpbigpLGU9dGhpcy5wYXJlbnQoKTtudWxsIT1lOyl7dmFyIG49ZS5vcmlnaW4oKTt0LngrPW4ueCx0LnkrPW4ueSxlPWUucGFyZW50KCl9cmV0dXJuIHR9LHQucHJvdG90eXBlLnJvb3Q9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpczshdC5pc1Jvb3QoKTspdD10LnBhcmVudCgpO3JldHVybiB0fSx0LnByb3RvdHlwZS5pc1Jvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09dGhpcy5wYXJlbnQoKX0sdC5wcm90b3R5cGUuZm9yZWdyb3VuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9mb3JlZ3JvdW5kQ29udGFpbmVyfSx0LnByb3RvdHlwZS5jb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbnRlbnR9LHQucHJvdG90eXBlLmVsZW1lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxlbWVudH0sdC5wcm90b3R5cGUucm9vdEVsZW1lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290KCkuX3Jvb3RFbGVtZW50fSx0LnByb3RvdHlwZS5iYWNrZ3JvdW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tncm91bmRDb250YWluZXJ9LHQuX3hBbGlnblRvUHJvcG9ydGlvbj17bGVmdDowLGNlbnRlcjouNSxyaWdodDoxfSx0Ll95QWxpZ25Ub1Byb3BvcnRpb249e3RvcDowLGNlbnRlcjouNSxib3R0b206MX0sdH0pKCk7Qmd0LkNvbXBvbmVudD1meXQ7dmFyIG15dD17fSxneXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShneXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBfeXQ9RWR0O2Z1bmN0aW9uIHl5dCh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9Myksdnl0KHQpLGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvRml4ZWQodCl9fWZ1bmN0aW9uIHZ5dCh0KXtpZih0PDB8fHQ+MjApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdHRlciBwcmVjaXNpb24gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwIik7aWYodCE9PU1hdGguZmxvb3IodCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdHRlciBwcmVjaXNpb24gbXVzdCBiZSBhbiBpbnRlZ2VyIil9Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovZ3l0LmN1cnJlbmN5PWZ1bmN0aW9uIGJ5dCh0LGUsbil7dm9pZCAwPT09dCYmKHQ9Miksdm9pZCAwPT09ZSYmKGU9IiQiKSx2b2lkIDA9PT1uJiYobj0hMCk7dmFyIGk9eXl0KHQpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgcj1pKE1hdGguYWJzKHQpKTtyZXR1cm4iIiE9PXImJihuP3I9ZStyOnIrPWUsdDwwJiYocj0iLSIrcikpLHJ9fSxneXQuZml4ZWQ9eXl0LGd5dC5nZW5lcmFsPWZ1bmN0aW9uIHh5dCh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9Myksdnl0KHQpLGZ1bmN0aW9uKGUpe2lmKCJudW1iZXIiPT10eXBlb2YgZSl7dmFyIG49TWF0aC5wb3coMTAsdCk7cmV0dXJuIFN0cmluZyhNYXRoLnJvdW5kKGUqbikvbil9cmV0dXJuIFN0cmluZyhlKX19LGd5dC5pZGVudGl0eT1mdW5jdGlvbiB3eXQoKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KX19LGd5dC5wZXJjZW50YWdlPWZ1bmN0aW9uIFN5dCh0KXt2b2lkIDA9PT10JiYodD0wKTt2YXIgZT15eXQodCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPTEwMCp0LGk9dC50b1N0cmluZygpLHI9TWF0aC5wb3coMTAsaS5sZW5ndGgtKGkuaW5kZXhPZigiLiIpKzEpKTtyZXR1cm4gbj1wYXJzZUludCgobipyKS50b1N0cmluZygpLDEwKS9yLGUobikrIiUifX0sZ3l0LnNpU3VmZml4PWZ1bmN0aW9uIE15dCh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9Myksdnl0KHQpLGZ1bmN0aW9uKGUpe3JldHVybiBfeXQuZm9ybWF0KCIuIit0KyJzIikoZSl9fSxneXQuc2hvcnRTY2FsZT1mdW5jdGlvbiBFeXQodCl7dm9pZCAwPT09dCYmKHQ9Myksdnl0KHQpO3ZhciBlPSJLTUJUUSIsbj1feXQuZm9ybWF0KCIuIit0KyJlIiksaT1feXQuZm9ybWF0KCIuIit0KyJmIikscj1NYXRoLnBvdygxMCwzKihlLmxlbmd0aCsxKSksbz1NYXRoLnBvdygxMCwtdCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBhPU1hdGguYWJzKHQpO2lmKChhPG98fGE+PXIpJiYwIT09YSlyZXR1cm4gbih0KTtmb3IodmFyIHM9LTE7YT49TWF0aC5wb3coMWUzLHMrMikmJnM8ZS5sZW5ndGgtMTspcysrO3ZhciBsPSIiO3JldHVybiBsPS0xPT09cz9pKHQpOmkodC9NYXRoLnBvdygxZTMscysxKSkrZVtzXSwodD4wJiYiMTAwMCI9PT1sLnN1YnN0cigwLDQpfHx0PDAmJiItMTAwMCI9PT1sLnN1YnN0cigwLDUpKSYmKHM8ZS5sZW5ndGgtMT8ocysrLGw9aSh0L01hdGgucG93KDFlMyxzKzEpKStlW3NdKTpsPW4odCkpLGx9fSxneXQubXVsdGlUaW1lPWZ1bmN0aW9uIFR5dCgpe3ZhciB0PVt7c3BlY2lmaWVyOiIuJUwiLHByZWRpY2F0ZTpmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQuZ2V0TWlsbGlzZWNvbmRzKCl9fSx7c3BlY2lmaWVyOiI6JVMiLHByZWRpY2F0ZTpmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQuZ2V0U2Vjb25kcygpfX0se3NwZWNpZmllcjoiJUk6JU0iLHByZWRpY2F0ZTpmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQuZ2V0TWludXRlcygpfX0se3NwZWNpZmllcjoiJUkgJXAiLHByZWRpY2F0ZTpmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQuZ2V0SG91cnMoKX19LHtzcGVjaWZpZXI6IiVhICVkIixwcmVkaWNhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIDAhPT10LmdldERheSgpJiYxIT09dC5nZXREYXRlKCl9fSx7c3BlY2lmaWVyOiIlYiAlZCIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiAxIT09dC5nZXREYXRlKCl9fSx7c3BlY2lmaWVyOiIlYiIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiAwIT09dC5nZXRNb250aCgpfX1dO3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj10LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQucHJlZGljYXRlKGUpfSkpO3JldHVybiBfeXQudGltZUZvcm1hdChuLmxlbmd0aD4wP25bMF0uc3BlY2lmaWVyOiIlWSIpKGUpfX0sZ3l0LnRpbWU9ZnVuY3Rpb24gQ3l0KHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPSExKSxlP195dC51dGNGb3JtYXQodCk6X3l0LnRpbWVGb3JtYXQodCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShteXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBBeXQ9dU8sa3l0PUVkdCxMeXQ9SW10LFB5dD1CZ3QsTnl0PWd5dCxJeXQ9Rmd0O215dC5BeGlzT3JpZW50YXRpb249U210Lm1ha2VFbnVtKFsiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwidG9wIl0pO3ZhciBSeXQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxuKXt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7aWYoaS5fZW5kVGlja0xlbmd0aD01LGkuX2lubmVyVGlja0xlbmd0aD01LGkuX3RpY2tMYWJlbFBhZGRpbmc9MTAsaS5fbWFyZ2luPTE1LGkuX3Nob3dFbmRUaWNrTGFiZWxzPSExLGkuX2Fubm90YXRpb25zRW5hYmxlZD0hMSxpLl9hbm5vdGF0aW9uVGllckNvdW50PTEsbnVsbD09ZXx8bnVsbD09bil0aHJvdyBuZXcgRXJyb3IoIkF4aXMgcmVxdWlyZXMgYSBzY2FsZSBhbmQgb3JpZW50YXRpb24iKTtyZXR1cm4gaS5fc2NhbGU9ZSxpLm9yaWVudGF0aW9uKG4pLGkuX3NldERlZmF1bHRBbGlnbm1lbnQoKSxpLmFkZENsYXNzKCJheGlzIiksaS5pc0hvcml6b250YWwoKT9pLmFkZENsYXNzKCJ4LWF4aXMiKTppLmFkZENsYXNzKCJ5LWF4aXMiKSxpLmZvcm1hdHRlcihOeXQuaWRlbnRpdHkoKSksaS5fcmVzY2FsZUNhbGxiYWNrPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9yZXNjYWxlKCl9LGkuX3NjYWxlLm9uVXBkYXRlKGkuX3Jlc2NhbGVDYWxsYmFjayksaS5fYW5ub3RhdGVkVGlja3M9W10saS5fYW5ub3RhdGlvbkZvcm1hdHRlcj1OeXQuaWRlbnRpdHkoKSxpfXJldHVybiBBeXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9zY2FsZS5vZmZVcGRhdGUodGhpcy5fcmVzY2FsZUNhbGxiYWNrKX0sZS5wcm90b3R5cGUudGlja0xhYmVsRGF0YU9uRWxlbWVudD1mdW5jdGlvbih0KXtpZihudWxsIT10KXtmb3IodmFyIG47bnVsbCE9dCYmdC5jbGFzc0xpc3QmJnZvaWQgMD09PW47KXQuY2xhc3NMaXN0LmNvbnRhaW5zKGUuVElDS19MQUJFTF9DTEFTUyk/bj10OnQ9dC5wYXJlbnROb2RlO3JldHVybiB2b2lkIDA9PT10P3ZvaWQgMDpreXQuc2VsZWN0KHQpLmRhdHVtKCl9fSxlLnByb3RvdHlwZS5fY29tcHV0ZVdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heExhYmVsVGlja0xlbmd0aCgpfSxlLnByb3RvdHlwZS5fY29tcHV0ZUhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKX0sZS5wcm90b3R5cGUucmVxdWVzdGVkU3BhY2U9ZnVuY3Rpb24odCxuKXt2YXIgaT0wLHI9MDtyZXR1cm4gdGhpcy5pc0hvcml6b250YWwoKT8ocj10aGlzLl9jb21wdXRlSGVpZ2h0KCkrdGhpcy5fbWFyZ2luLHRoaXMuYW5ub3RhdGlvbnNFbmFibGVkKCkmJihyKz0odGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQrMiplLl9BTk5PVEFUSU9OX0xBQkVMX1BBRERJTkcpKnRoaXMuYW5ub3RhdGlvblRpZXJDb3VudCgpKSk6KGk9dGhpcy5fY29tcHV0ZVdpZHRoKCkrdGhpcy5fbWFyZ2luLHRoaXMuYW5ub3RhdGlvbnNFbmFibGVkKCkmJihpKz0odGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQrMiplLl9BTk5PVEFUSU9OX0xBQkVMX1BBRERJTkcpKnRoaXMuYW5ub3RhdGlvblRpZXJDb3VudCgpKSkse21pbldpZHRoOmksbWluSGVpZ2h0OnJ9fSxlLnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSG9yaXpvbnRhbCgpfSxlLnByb3RvdHlwZS5maXhlZFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNIb3Jpem9udGFsKCl9LGUucHJvdG90eXBlLl9yZXNjYWxlPWZ1bmN0aW9uKCl7dGhpcy5yZW5kZXIoKX0sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKSx0aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMuX3NjYWxlLnJhbmdlKFswLHRoaXMud2lkdGgoKV0pOnRoaXMuX3NjYWxlLnJhbmdlKFt0aGlzLmhlaWdodCgpLDBdKSx0aGlzfSxlLnByb3RvdHlwZS5fc2l6ZUZyb21PZmZlcj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMucmVxdWVzdGVkU3BhY2UodCxlKTtyZXR1cm4gdGhpcy5pc0hvcml6b250YWwoKT97d2lkdGg6dCxoZWlnaHQ6bi5taW5IZWlnaHR9OntoZWlnaHQ6ZSx3aWR0aDpuLm1pbldpZHRofX0sZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fdGlja01hcmtDb250YWluZXI9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZChlLlRJQ0tfTUFSS19DTEFTUysiLWNvbnRhaW5lciIsITApLHRoaXMuX3RpY2tMYWJlbENvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKGUuVElDS19MQUJFTF9DTEFTUysiLWNvbnRhaW5lciIsITApLHRoaXMuX2Jhc2VsaW5lPXRoaXMuY29udGVudCgpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImJhc2VsaW5lIiwhMCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uLWNvbnRhaW5lciIsITApLHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiYW5ub3RhdGlvbi1saW5lLWNvbnRhaW5lciIsITApLHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiYW5ub3RhdGlvbi1jaXJjbGUtY29udGFpbmVyIiwhMCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uLXJlY3QtY29udGFpbmVyIiwhMCk7dmFyIG49dGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uLWxhYmVsLWNvbnRhaW5lciIsITApLGk9bmV3IEx5dC5TdmdDb250ZXh0KG4ubm9kZSgpKTt0aGlzLl9hbm5vdGF0aW9uTWVhc3VyZXI9bmV3IEx5dC5DYWNoZU1lYXN1cmVyKGkpLHRoaXMuX2Fubm90YXRpb25Xcml0ZXI9bmV3IEx5dC5Xcml0ZXIodGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyLGkpfSxlLnByb3RvdHlwZS5fZ2V0VGlja1ZhbHVlcz1mdW5jdGlvbigpe3JldHVybltdfSxlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldFRpY2tWYWx1ZXMoKSxuPXRoaXMuX3RpY2tNYXJrQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrZS5USUNLX01BUktfQ0xBU1MpLmRhdGEodCksaT1uLmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZChlLlRJQ0tfTUFSS19DTEFTUywhMCkubWVyZ2Uobik7cmV0dXJuIGkuYXR0cnModGhpcy5fZ2VuZXJhdGVUaWNrTWFya0F0dHJIYXNoKCkpLGt5dC5zZWxlY3QoaS5ub2RlcygpWzBdKS5jbGFzc2VkKGUuRU5EX1RJQ0tfTUFSS19DTEFTUywhMCkuYXR0cnModGhpcy5fZ2VuZXJhdGVUaWNrTWFya0F0dHJIYXNoKCEwKSksa3l0LnNlbGVjdChpLm5vZGVzKClbdC5sZW5ndGgtMV0pLmNsYXNzZWQoZS5FTkRfVElDS19NQVJLX0NMQVNTLCEwKS5hdHRycyh0aGlzLl9nZW5lcmF0ZVRpY2tNYXJrQXR0ckhhc2goITApKSxuLmV4aXQoKS5yZW1vdmUoKSx0aGlzLl9iYXNlbGluZS5hdHRycyh0aGlzLl9nZW5lcmF0ZUJhc2VsaW5lQXR0ckhhc2goKSksdGhpcy5hbm5vdGF0aW9uc0VuYWJsZWQoKT90aGlzLl9kcmF3QW5ub3RhdGlvbnMoKTp0aGlzLl9yZW1vdmVBbm5vdGF0aW9ucygpLHRoaXN9LGUucHJvdG90eXBlLmFubm90YXRlZFRpY2tzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2Fubm90YXRlZFRpY2tzOih0aGlzLl9hbm5vdGF0ZWRUaWNrcz10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmFubm90YXRpb25Gb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYW5ub3RhdGlvbkZvcm1hdHRlcjoodGhpcy5fYW5ub3RhdGlvbkZvcm1hdHRlcj10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmFubm90YXRpb25zRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9hbm5vdGF0aW9uc0VuYWJsZWQ6KHRoaXMuX2Fubm90YXRpb25zRW5hYmxlZD10LHRoaXMucmVkcmF3KCksdGhpcyl9LGUucHJvdG90eXBlLmFubm90YXRpb25UaWVyQ291bnQ9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fYW5ub3RhdGlvblRpZXJDb3VudDtpZih0PDApdGhyb3cgbmV3IEVycm9yKCJhbm5vdGF0aW9uVGllckNvdW50IGNhbm5vdCBiZSBuZWdhdGl2ZSIpO3JldHVybiB0aGlzLl9hbm5vdGF0aW9uVGllckNvdW50PXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5fZHJhd0Fubm90YXRpb25zPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWUuX0FOTk9UQVRJT05fTEFCRUxfUEFERElORyxpPW5ldyBJeXQuTWFwLHI9dGhpcy5fYW5ub3RhdGVkVGlja3NUb1JlbmRlcigpO3IuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9dC5fYW5ub3RhdGlvbk1lYXN1cmVyLm1lYXN1cmUodC5hbm5vdGF0aW9uRm9ybWF0dGVyKCkoZSkpO2kuc2V0KGUse3dpZHRoOnIud2lkdGgrMipuLGhlaWdodDpyLmhlaWdodCsyKm59KX0pKTt2YXIgbz10aGlzLl9hbm5vdGF0aW9uTWVhc3VyZXIubWVhc3VyZSgpLmhlaWdodCsyKm4sYT10aGlzLl9hbm5vdGF0aW9uVG9UaWVyKGkpLHM9bmV3IEl5dC5TZXQsbD10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMuaGVpZ2h0KCk6dGhpcy53aWR0aCgpLGM9dGhpcy5fY29yZVNpemUoKSx1PU1hdGgubWluKHRoaXMuYW5ub3RhdGlvblRpZXJDb3VudCgpLE1hdGguZmxvb3IoKGwtYykvbykpO2EuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXsoLTE9PT10fHx0Pj11KSYmcy5hZGQoZSl9KSk7dmFyIGgsZD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5zZWxlY3RBbGwoIi4iK24pLmRhdGEociksbz1pLmVudGVyKCkuYXBwZW5kKGUpLmNsYXNzZWQobiwhMCkubWVyZ2UoaSk7cmV0dXJuIGkuZXhpdCgpLnJlbW92ZSgpLG99LHA9ZnVuY3Rpb24oZSl7c3dpdGNoKHQub3JpZW50YXRpb24oKSl7Y2FzZSJib3R0b20iOmNhc2UicmlnaHQiOnJldHVybiBhLmdldChlKSpvK2M7Y2FzZSJ0b3AiOmNhc2UibGVmdCI6cmV0dXJuIGwtYy1hLmdldChlKSpvfX0sZj1mdW5jdGlvbihlKXtyZXR1cm4gdC5fc2NhbGUuc2NhbGUoZSl9LG09ZnVuY3Rpb24odCl7cmV0dXJuIHMuaGFzKHQpPyJoaWRkZW4iOiJ2aXNpYmxlIn07c3dpdGNoKHRoaXMub3JpZW50YXRpb24oKSl7Y2FzZSJib3R0b20iOmNhc2UicmlnaHQiOmg9MDticmVhaztjYXNlInRvcCI6aD10aGlzLmhlaWdodCgpO2JyZWFrO2Nhc2UibGVmdCI6aD10aGlzLndpZHRoKCl9dmFyIGc9dGhpcy5pc0hvcml6b250YWwoKTtkKHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0KCIuYW5ub3RhdGlvbi1saW5lLWNvbnRhaW5lciIpLCJsaW5lIixlLkFOTk9UQVRJT05fTElORV9DTEFTUykuYXR0cnMoe3gxOmc/ZjpoLHgyOmc/ZjpwLHkxOmc/aDpmLHkyOmc/cDpmLHZpc2liaWxpdHk6bX0pLGQodGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3QoIi5hbm5vdGF0aW9uLWNpcmNsZS1jb250YWluZXIiKSwiY2lyY2xlIixlLkFOTk9UQVRJT05fQ0lSQ0xFX0NMQVNTKS5hdHRycyh7Y3g6Zz9mOmgsY3k6Zz9oOmYscjozfSk7dmFyIF89ZnVuY3Rpb24oZSl7c3dpdGNoKHQub3JpZW50YXRpb24oKSl7Y2FzZSJib3R0b20iOmNhc2UicmlnaHQiOnJldHVybiBwKGUpO2Nhc2UidG9wIjpjYXNlImxlZnQiOnJldHVybiBwKGUpLWkuZ2V0KGUpLmhlaWdodH19O2QodGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3QoIi5hbm5vdGF0aW9uLXJlY3QtY29udGFpbmVyIiksInJlY3QiLGUuQU5OT1RBVElPTl9SRUNUX0NMQVNTKS5hdHRycyh7eDpnP2Y6Xyx5Omc/XzpmLHdpZHRoOmc/ZnVuY3Rpb24odCl7cmV0dXJuIGkuZ2V0KHQpLndpZHRofTpmdW5jdGlvbih0KXtyZXR1cm4gaS5nZXQodCkuaGVpZ2h0fSxoZWlnaHQ6Zz9mdW5jdGlvbih0KXtyZXR1cm4gaS5nZXQodCkuaGVpZ2h0fTpmdW5jdGlvbih0KXtyZXR1cm4gaS5nZXQodCkud2lkdGh9LHZpc2liaWxpdHk6bX0pO3ZhciB5PXRoaXMuX2Fubm90YXRpb25Xcml0ZXIsdj10aGlzLmFubm90YXRpb25Gb3JtYXR0ZXIoKSxiPWQodGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3QoIi5hbm5vdGF0aW9uLWxhYmVsLWNvbnRhaW5lciIpLCJnIixlLkFOTk9UQVRJT05fTEFCRUxfQ0xBU1MpO2Iuc2VsZWN0QWxsKCIudGV4dC1jb250YWluZXIiKS5yZW1vdmUoKSxiLmF0dHJzKHt0cmFuc2Zvcm06ZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgiKyhnP2YodCk6Xyh0KSkrIiwiKyhnP18odCk6Zih0KSkrIikifSx2aXNpYmlsaXR5Om19KS5lYWNoKChmdW5jdGlvbih0KXt5LndyaXRlKHYodCksZz9pLmdldCh0KS53aWR0aDppLmdldCh0KS5oZWlnaHQsZz9pLmdldCh0KS5oZWlnaHQ6aS5nZXQodCkud2lkdGgse3hBbGlnbjoiY2VudGVyIix5QWxpZ246ImNlbnRlciIsdGV4dFJvdGF0aW9uOmc/MDo5MH0sa3l0LnNlbGVjdCh0aGlzKS5ub2RlKCkpfSkpfSxlLnByb3RvdHlwZS5fYW5ub3RhdGVkVGlja3NUb1JlbmRlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLl9zY2FsZS5yYW5nZSgpO3JldHVybiBJeXQuQXJyYXkudW5pcSh0aGlzLmFubm90YXRlZFRpY2tzKCkuZmlsdGVyKChmdW5jdGlvbihuKXtyZXR1cm4gbnVsbCE9biYmSXl0Lk1hdGguaW5SYW5nZSh0Ll9zY2FsZS5zY2FsZShuKSxlWzBdLGVbMV0pfSkpKX0sZS5wcm90b3R5cGUuX2NvcmVTaXplPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pc0hvcml6b250YWwoKT90aGlzLmhlaWdodCgpOnRoaXMud2lkdGgoKSxlPXRoaXMuaXNIb3Jpem9udGFsKCk/dGhpcy5fY29tcHV0ZUhlaWdodCgpOnRoaXMuX2NvbXB1dGVXaWR0aCgpO3JldHVybiBNYXRoLm1pbihlLHQpfSxlLnByb3RvdHlwZS5fYW5ub3RhdGlvblRpZXJIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQrMiplLl9BTk5PVEFUSU9OX0xBQkVMX1BBRERJTkd9LGUucHJvdG90eXBlLl9hbm5vdGF0aW9uVG9UaWVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1bW11dLGk9bmV3IEl5dC5NYXAscj10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMud2lkdGgoKTp0aGlzLmhlaWdodCgpO3JldHVybiB0aGlzLl9hbm5vdGF0ZWRUaWNrc1RvUmVuZGVyKCkuZm9yRWFjaCgoZnVuY3Rpb24obyl7dmFyIGE9ZS5fc2NhbGUuc2NhbGUobykscz10LmdldChvKS53aWR0aDtpZihhPDB8fGErcz5yKWkuc2V0KG8sLTEpO2Vsc2V7Zm9yKHZhciBsPTA7bltsXS5zb21lKChmdW5jdGlvbihuKXt2YXIgaT1lLl9zY2FsZS5zY2FsZShuKSxyPXQuZ2V0KG4pLndpZHRoO3JldHVybiBhK3M+PWkmJmE8PWkrcn0pKTspbCsrLG4ubGVuZ3RoPT09bCYmbi5wdXNoKFtdKTtuW2xdLnB1c2gobyksaS5zZXQobyxsKX19KSksaX0sZS5wcm90b3R5cGUuX3JlbW92ZUFubm90YXRpb25zPWZ1bmN0aW9uKCl7dGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLWxpbmUiKS5yZW1vdmUoKSx0aGlzLl9hbm5vdGF0aW9uQ29udGFpbmVyLnNlbGVjdEFsbCgiLmFubm90YXRpb24tY2lyY2xlIikucmVtb3ZlKCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLXJlY3QiKS5yZW1vdmUoKSx0aGlzLl9hbm5vdGF0aW9uQ29udGFpbmVyLnNlbGVjdEFsbCgiLmFubm90YXRpb24tbGFiZWwiKS5yZW1vdmUoKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlQmFzZWxpbmVBdHRySGFzaD1mdW5jdGlvbigpe3ZhciB0PXt4MTowLHkxOjAseDI6MCx5MjowfTtzd2l0Y2godGhpcy5fb3JpZW50YXRpb24pe2Nhc2UiYm90dG9tIjp0LngyPXRoaXMud2lkdGgoKTticmVhaztjYXNlInRvcCI6dC54Mj10aGlzLndpZHRoKCksdC55MT10aGlzLmhlaWdodCgpLHQueTI9dGhpcy5oZWlnaHQoKTticmVhaztjYXNlImxlZnQiOnQueDE9dGhpcy53aWR0aCgpLHQueDI9dGhpcy53aWR0aCgpLHQueTI9dGhpcy5oZWlnaHQoKTticmVhaztjYXNlInJpZ2h0Ijp0LnkyPXRoaXMuaGVpZ2h0KCl9cmV0dXJuIHR9LGUucHJvdG90eXBlLl9nZW5lcmF0ZVRpY2tNYXJrQXR0ckhhc2g9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10JiYodD0hMSk7dmFyIG49e3gxOjAseTE6MCx4MjowLHkyOjB9LGk9ZnVuY3Rpb24odCl7cmV0dXJuIGUuX3NjYWxlLnNjYWxlKHQpfTt0aGlzLmlzSG9yaXpvbnRhbCgpPyhuLngxPWksbi54Mj1pKToobi55MT1pLG4ueTI9aSk7dmFyIHI9dD90aGlzLl9lbmRUaWNrTGVuZ3RoOnRoaXMuX2lubmVyVGlja0xlbmd0aDtzd2l0Y2godGhpcy5fb3JpZW50YXRpb24pe2Nhc2UiYm90dG9tIjpuLnkyPXI7YnJlYWs7Y2FzZSJ0b3AiOm4ueTE9dGhpcy5oZWlnaHQoKSxuLnkyPXRoaXMuaGVpZ2h0KCktcjticmVhaztjYXNlImxlZnQiOm4ueDE9dGhpcy53aWR0aCgpLG4ueDI9dGhpcy53aWR0aCgpLXI7YnJlYWs7Y2FzZSJyaWdodCI6bi54Mj1yfXJldHVybiBufSxlLnByb3RvdHlwZS5fc2V0RGVmYXVsdEFsaWdubWVudD1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9vcmllbnRhdGlvbil7Y2FzZSJib3R0b20iOnRoaXMueUFsaWdubWVudCgidG9wIik7YnJlYWs7Y2FzZSJ0b3AiOnRoaXMueUFsaWdubWVudCgiYm90dG9tIik7YnJlYWs7Y2FzZSJsZWZ0Ijp0aGlzLnhBbGlnbm1lbnQoInJpZ2h0Iik7YnJlYWs7Y2FzZSJyaWdodCI6dGhpcy54QWxpZ25tZW50KCJsZWZ0Iil9fSxlLnByb3RvdHlwZS5pc0hvcml6b250YWw9ZnVuY3Rpb24oKXtyZXR1cm4idG9wIj09PXRoaXMuX29yaWVudGF0aW9ufHwiYm90dG9tIj09PXRoaXMuX29yaWVudGF0aW9ufSxlLnByb3RvdHlwZS5nZXRTY2FsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zY2FsZX0sZS5wcm90b3R5cGUuZm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2Zvcm1hdHRlcjoodGhpcy5fZm9ybWF0dGVyPXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5wcm90b3R5cGUuaW5uZXJUaWNrTGVuZ3RoPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX2lubmVyVGlja0xlbmd0aDtpZih0PDApdGhyb3cgbmV3IEVycm9yKCJpbm5lciB0aWNrIGxlbmd0aCBtdXN0IGJlIHBvc2l0aXZlIik7cmV0dXJuIHRoaXMuX2lubmVyVGlja0xlbmd0aD10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUuZW5kVGlja0xlbmd0aD1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9lbmRUaWNrTGVuZ3RoO2lmKHQ8MCl0aHJvdyBuZXcgRXJyb3IoImVuZCB0aWNrIGxlbmd0aCBtdXN0IGJlIHBvc2l0aXZlIik7cmV0dXJuIHRoaXMuX2VuZFRpY2tMZW5ndGg9dCx0aGlzLnJlZHJhdygpLHRoaXN9LGUucHJvdG90eXBlLl9tYXhMYWJlbFRpY2tMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaG93RW5kVGlja0xhYmVscygpP01hdGgubWF4KHRoaXMuaW5uZXJUaWNrTGVuZ3RoKCksdGhpcy5lbmRUaWNrTGVuZ3RoKCkpOnRoaXMuaW5uZXJUaWNrTGVuZ3RoKCl9LGUucHJvdG90eXBlLnRpY2tMYWJlbFBhZGRpbmc9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fdGlja0xhYmVsUGFkZGluZztpZih0PDApdGhyb3cgbmV3IEVycm9yKCJ0aWNrIGxhYmVsIHBhZGRpbmcgbXVzdCBiZSBwb3NpdGl2ZSIpO3JldHVybiB0aGlzLl90aWNrTGFiZWxQYWRkaW5nPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5tYXJnaW49ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fbWFyZ2luO2lmKHQ8MCl0aHJvdyBuZXcgRXJyb3IoIm1hcmdpbiBzaXplIG11c3QgYmUgcG9zaXRpdmUiKTtyZXR1cm4gdGhpcy5fbWFyZ2luPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5vcmllbnRhdGlvbj1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9vcmllbnRhdGlvbjt2YXIgZT10LnRvTG93ZXJDYXNlKCk7aWYoInRvcCIhPT1lJiYiYm90dG9tIiE9PWUmJiJsZWZ0IiE9PWUmJiJyaWdodCIhPT1lKXRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgb3JpZW50YXRpb24iKTtyZXR1cm4gdGhpcy5fb3JpZW50YXRpb249ZSx0aGlzLnJlZHJhdygpLHRoaXN9LGUucHJvdG90eXBlLnNob3dFbmRUaWNrTGFiZWxzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3Nob3dFbmRUaWNrTGFiZWxzOih0aGlzLl9zaG93RW5kVGlja0xhYmVscz10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLl9zaG93QWxsVGlja01hcmtzPWZ1bmN0aW9uKCl7dGhpcy5fdGlja01hcmtDb250YWluZXIuc2VsZWN0QWxsKCIuIitlLlRJQ0tfTUFSS19DTEFTUykuZWFjaCgoZnVuY3Rpb24oKXtreXQuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaW5oZXJpdCIpfSkpfSxlLnByb3RvdHlwZS5fc2hvd0FsbFRpY2tMYWJlbHM9ZnVuY3Rpb24oKXt0aGlzLl90aWNrTGFiZWxDb250YWluZXIuc2VsZWN0QWxsKCIuIitlLlRJQ0tfTEFCRUxfQ0xBU1MpLmVhY2goKGZ1bmN0aW9uKCl7a3l0LnNlbGVjdCh0aGlzKS5zdHlsZSgidmlzaWJpbGl0eSIsImluaGVyaXQiKX0pKX0sZS5wcm90b3R5cGUuX2hpZGVPdmVyZmxvd2luZ1RpY2tMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQoKS5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10aGlzLl90aWNrTGFiZWxDb250YWluZXIuc2VsZWN0QWxsKCIuIitlLlRJQ0tfTEFCRUxfQ0xBU1MpO24uZW1wdHkoKXx8bi5lYWNoKChmdW5jdGlvbihlLG4pe0l5dC5ET00uY2xpZW50UmVjdEluc2lkZSh0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQpfHxreXQuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9KSl9LGUucHJvdG90eXBlLl9oaWRlVGlja01hcmtzV2l0aG91dExhYmVsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fdGlja01hcmtDb250YWluZXIuc2VsZWN0QWxsKCIuIitlLlRJQ0tfTUFSS19DTEFTUyksbj10aGlzLl90aWNrTGFiZWxDb250YWluZXIuc2VsZWN0QWxsKCIuIitlLlRJQ0tfTEFCRUxfQ0xBU1MpLmZpbHRlcigoZnVuY3Rpb24odCxlKXt2YXIgbj1reXQuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5Iik7cmV0dXJuImluaGVyaXQiPT09bnx8InZpc2libGUiPT09bn0pKS5kYXRhKCk7dC5lYWNoKChmdW5jdGlvbih0LGUpey0xPT09bi5pbmRleE9mKHQpJiZreXQuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9KSl9LGUucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZS5jYWxsKHRoaXMpLHRoaXMuX2Fubm90YXRpb25NZWFzdXJlci5yZXNldCgpfSxlLkVORF9USUNLX01BUktfQ0xBU1M9ImVuZC10aWNrLW1hcmsiLGUuVElDS19NQVJLX0NMQVNTPSJ0aWNrLW1hcmsiLGUuVElDS19MQUJFTF9DTEFTUz0idGljay1sYWJlbCIsZS5BTk5PVEFUSU9OX0xJTkVfQ0xBU1M9ImFubm90YXRpb24tbGluZSIsZS5BTk5PVEFUSU9OX1JFQ1RfQ0xBU1M9ImFubm90YXRpb24tcmVjdCIsZS5BTk5PVEFUSU9OX0NJUkNMRV9DTEFTUz0iYW5ub3RhdGlvbi1jaXJjbGUiLGUuQU5OT1RBVElPTl9MQUJFTF9DTEFTUz0iYW5ub3RhdGlvbi1sYWJlbCIsZS5fQU5OT1RBVElPTl9MQUJFTF9QQURESU5HPTQsZX0pKFB5dC5Db21wb25lbnQpO215dC5BeGlzPVJ5dCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KE5tdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIE95dD11Tyx6eXQ9RWR0LER5dD1JbXQsQnl0PUJndCxIeXQ9Rmd0LEZ5dD1teXQsVnl0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dm9pZCAwPT09biYmKG49ImJvdHRvbSIpO3ZhciBpPXQuY2FsbCh0aGlzLGUsbil8fHRoaXM7cmV0dXJuIGkuX3RpY2tMYWJlbEFuZ2xlPTAsaS5fdGlja0xhYmVsU2hlYXJBbmdsZT0wLGkuYWRkQ2xhc3MoImNhdGVnb3J5LWF4aXMiKSxpfXJldHVybiBPeXQuX19leHRlbmRzKGUsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJfd3JhcHBlciIse2dldDpmdW5jdGlvbigpe3ZhciB0PW5ldyBEeXQuV3JhcHBlcjtyZXR1cm4gbnVsbCE9dGhpcy5fdGlja0xhYmVsTWF4TGluZXMmJnQubWF4TGluZXModGhpcy5fdGlja0xhYmVsTWF4TGluZXMpLHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJfd3JpdGVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEeXQuV3JpdGVyKHRoaXMuX21lYXN1cmVyLHRoaXMuX3R5cGVzZXR0ZXJDb250ZXh0LHRoaXMuX3dyYXBwZXIpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3R5cGVzZXR0ZXJDb250ZXh0PW5ldyBEeXQuU3ZnQ29udGV4dCh0aGlzLl90aWNrTGFiZWxDb250YWluZXIubm9kZSgpKSx0aGlzLl9tZWFzdXJlcj1uZXcgRHl0LkNhY2hlTWVhc3VyZXIodGhpcy5fdHlwZXNldHRlckNvbnRleHQpfSxlLnByb3RvdHlwZS5fcmVzY2FsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlZHJhdygpfSxlLnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuaXNIb3Jpem9udGFsKCk/MDp0aGlzLl90aWNrU3BhY2VSZXF1aXJlZCgpK3RoaXMubWFyZ2luKCksaT10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCkrdGhpcy5tYXJnaW4oKTowO2lmKDA9PT10aGlzLl9zY2FsZS5kb21haW4oKS5sZW5ndGgpcmV0dXJue21pbldpZHRoOjAsbWluSGVpZ2h0OjB9O2lmKHRoaXMuYW5ub3RhdGlvbnNFbmFibGVkKCkpe3ZhciByPXRoaXMuX2Fubm90YXRpb25UaWVySGVpZ2h0KCkqdGhpcy5hbm5vdGF0aW9uVGllckNvdW50KCk7dGhpcy5pc0hvcml6b250YWwoKT9pKz1yOm4rPXJ9dmFyIG89dGhpcy5fbWVhc3VyZVRpY2tMYWJlbHModCxlKTtyZXR1cm57bWluV2lkdGg6by51c2VkV2lkdGgrbixtaW5IZWlnaHQ6by51c2VkSGVpZ2h0K2l9fSxlLnByb3RvdHlwZS5fY29yZVNpemU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMuaGVpZ2h0KCk6dGhpcy53aWR0aCgpLGU9dGhpcy5pc0hvcml6b250YWwoKT90aGlzLnJlcXVlc3RlZFNwYWNlKHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpKS5taW5IZWlnaHQ6dGhpcy5yZXF1ZXN0ZWRTcGFjZSh0aGlzLndpZHRoKCksdGhpcy5oZWlnaHQoKSkubWluV2lkdGgsbj10aGlzLm1hcmdpbigpK3RoaXMuX2Fubm90YXRpb25UaWVySGVpZ2h0KCk7cmV0dXJuIE1hdGgubWluKGUtbix0KX0sZS5wcm90b3R5cGUuX2dldFRpY2tWYWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXREb3duc2FtcGxlSW5mbygpLmRvbWFpbn0sZS5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gQnl0LkNvbXBvbmVudC5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXIuY2FsbCh0aGlzLHQsZSl9LGUucHJvdG90eXBlLmdldERvd25zYW1wbGVJbmZvPWZ1bmN0aW9uKHQsbil7dm9pZCAwPT09dCYmKHQ9dGhpcy5fc2NhbGUpLHZvaWQgMD09PW4mJihuPXQuaW52ZXJ0UmFuZ2UoKSk7dmFyIGk9MD09PXRoaXMuX3RpY2tMYWJlbEFuZ2xlPzE6MS9NYXRoLmNvcyh0aGlzLl90aWNrTGFiZWxTaGVhckFuZ2xlLzE4MCpNYXRoLlBJKSxyPU1hdGguY2VpbChlLl9NSU5JTVVNX1dJRFRIX1BFUl9MQUJFTF9QWCppL3Quc3RlcFdpZHRoKCkpO3JldHVybntkb21haW46bi5maWx0ZXIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUlcj09MH0pKSxzdGVwV2lkdGg6cip0LnN0ZXBXaWR0aCgpfX0sZS5wcm90b3R5cGUudGlja0xhYmVsQW5nbGU9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fdGlja0xhYmVsQW5nbGU7aWYoMCE9PXQmJjkwIT09dCYmLTkwIT09dCl0aHJvdyBuZXcgRXJyb3IoIkFuZ2xlICIrdCsiIG5vdCBzdXBwb3J0ZWQ7IG9ubHkgMCwgOTAsIGFuZCAtOTAgYXJlIHZhbGlkIHZhbHVlcyIpO3JldHVybiB0aGlzLl90aWNrTGFiZWxBbmdsZT10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUudGlja0xhYmVsU2hlYXJBbmdsZT1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl90aWNrTGFiZWxTaGVhckFuZ2xlO2lmKHQ8LTgwfHx0PjgwKXRocm93IG5ldyBFcnJvcigiQW5nbGUgIit0KyIgbm90IHN1cHBvcnRlZDsgTXVzdCBiZSBiZXR3ZWVuIFstODAsIDgwXSIpO3JldHVybiB0aGlzLl90aWNrTGFiZWxTaGVhckFuZ2xlPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS50aWNrTGFiZWxNYXhXaWR0aD1mdW5jdGlvbih0KXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5fdGlja0xhYmVsTWF4V2lkdGg6KHRoaXMuX3RpY2tMYWJlbE1heFdpZHRoPXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5wcm90b3R5cGUudGlja0xhYmVsTWF4TGluZXM9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX3RpY2tMYWJlbE1heExpbmVzOih0aGlzLl90aWNrTGFiZWxNYXhMaW5lcz10LHRoaXMucmVkcmF3KCksdGhpcyl9LGUucHJvdG90eXBlLl90aWNrU3BhY2VSZXF1aXJlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKSt0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKX0sZS5wcm90b3R5cGUuX2RyYXdUaWNrcz1mdW5jdGlvbih0LGUpe3ZhciBuLGkscj10aGlzO3N3aXRjaCh0aGlzLnRpY2tMYWJlbEFuZ2xlKCkpe2Nhc2UgMDpuPXtsZWZ0OiJyaWdodCIscmlnaHQ6ImxlZnQiLHRvcDoiY2VudGVyIixib3R0b206ImNlbnRlciJ9LGk9e2xlZnQ6ImNlbnRlciIscmlnaHQ6ImNlbnRlciIsdG9wOiJib3R0b20iLGJvdHRvbToidG9wIn07YnJlYWs7Y2FzZSA5MDpuPXtsZWZ0OiJjZW50ZXIiLHJpZ2h0OiJjZW50ZXIiLHRvcDoicmlnaHQiLGJvdHRvbToibGVmdCJ9LGk9e2xlZnQ6InRvcCIscmlnaHQ6ImJvdHRvbSIsdG9wOiJjZW50ZXIiLGJvdHRvbToiY2VudGVyIn07YnJlYWs7Y2FzZS05MDpuPXtsZWZ0OiJjZW50ZXIiLHJpZ2h0OiJjZW50ZXIiLHRvcDoibGVmdCIsYm90dG9tOiJyaWdodCJ9LGk9e2xlZnQ6ImJvdHRvbSIscmlnaHQ6InRvcCIsdG9wOiJjZW50ZXIiLGJvdHRvbToiY2VudGVyIn19ZS5lYWNoKChmdW5jdGlvbihlKXt2YXIgbz16eXQuc2VsZWN0KHRoaXMpLGE9ci5pc0hvcml6b250YWwoKT90OnIud2lkdGgoKS1yLl90aWNrU3BhY2VSZXF1aXJlZCgpLHM9ci5pc0hvcml6b250YWwoKT9yLmhlaWdodCgpLXIuX3RpY2tTcGFjZVJlcXVpcmVkKCk6dCxsPXt4QWxpZ246bltyLm9yaWVudGF0aW9uKCldLHlBbGlnbjppW3Iub3JpZW50YXRpb24oKV0sdGV4dFJvdGF0aW9uOnIudGlja0xhYmVsQW5nbGUoKSx0ZXh0U2hlYXI6ci50aWNrTGFiZWxTaGVhckFuZ2xlKCl9O2lmKG51bGwhPXIuX3RpY2tMYWJlbE1heFdpZHRoKXtpZigibGVmdCI9PT1yLm9yaWVudGF0aW9uKCkmJmE+ci5fdGlja0xhYmVsTWF4V2lkdGgpe3ZhciBjPWEtci5fdGlja0xhYmVsTWF4V2lkdGgsdT1vLmF0dHIoInRyYW5zZm9ybSIpKyIgdHJhbnNsYXRlKCIrYysiLCAwKSI7by5hdHRyKCJ0cmFuc2Zvcm0iLHUpfWE9TWF0aC5taW4oYSxyLl90aWNrTGFiZWxNYXhXaWR0aCl9ci5fd3JpdGVyLndyaXRlKHIuZm9ybWF0dGVyKCkoZSksYSxzLGwsby5ub2RlKCkpfSkpfSxlLnByb3RvdHlwZS5fbWVhc3VyZVRpY2tMYWJlbHM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLGk9dGhpcy5fc2NhbGUuY2xvbmVXaXRob3V0UHJvdmlkZXJzKCkucmFuZ2UoWzAsdGhpcy5pc0hvcml6b250YWwoKT90OmVdKSxyPXRoaXMuZ2V0RG93bnNhbXBsZUluZm8oaSksbz1yLmRvbWFpbixhPXIuc3RlcFdpZHRoLHM9dC10aGlzLl90aWNrU3BhY2VSZXF1aXJlZCgpO3RoaXMuaXNIb3Jpem9udGFsKCkmJihzPWEsMCE9PXRoaXMuX3RpY2tMYWJlbEFuZ2xlJiYocz1lLXRoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCkpLHM9TWF0aC5tYXgocywwKSk7dmFyIGw9YTt0aGlzLmlzSG9yaXpvbnRhbCgpJiYobD1lLXRoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCksMCE9PXRoaXMuX3RpY2tMYWJlbEFuZ2xlJiYobD10LXRoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCkpLGw9TWF0aC5tYXgobCwwKSksbnVsbCE9dGhpcy5fdGlja0xhYmVsTWF4V2lkdGgmJihzPU1hdGgubWluKHMsdGhpcy5fdGlja0xhYmVsTWF4V2lkdGgpKTt2YXIgYyx1PW8ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbi5fd3JhcHBlci53cmFwKG4uZm9ybWF0dGVyKCkodCksbi5fbWVhc3VyZXIscyxsKX0pKSxoPXRoaXMuaXNIb3Jpem9udGFsKCkmJjA9PT10aGlzLl90aWNrTGFiZWxBbmdsZT96eXQuc3VtOkh5dC5NYXRoLm1heCxkPXRoaXMuaXNIb3Jpem9udGFsKCkmJjA9PT10aGlzLl90aWNrTGFiZWxBbmdsZT9IeXQuTWF0aC5tYXg6enl0LnN1bSxwPWgodSwoZnVuY3Rpb24odCl7cmV0dXJuIG4uX21lYXN1cmVyLm1lYXN1cmUodC53cmFwcGVkVGV4dCkud2lkdGh9KSwwKSxmPWQodSwoZnVuY3Rpb24odCl7cmV0dXJuIG4uX21lYXN1cmVyLm1lYXN1cmUodC53cmFwcGVkVGV4dCkuaGVpZ2h0fSksMCk7cmV0dXJuIDAhPT10aGlzLl90aWNrTGFiZWxBbmdsZSYmKHA9KGM9W2YscF0pWzBdLGY9Y1sxXSkse3VzZWRXaWR0aDpwLHVzZWRIZWlnaHQ6Zn19LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0LnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpO3ZhciBuPXRoaXMuX3NjYWxlLGk9dGhpcy5nZXREb3duc2FtcGxlSW5mbyhuKSxyPWkuZG9tYWluLG89aS5zdGVwV2lkdGgsYT1vO3RoaXMuaXNIb3Jpem9udGFsKCkmJm51bGwhPXRoaXMuX3RpY2tMYWJlbE1heFdpZHRoJiYoYT1NYXRoLm1pbihhLHRoaXMuX3RpY2tMYWJlbE1heFdpZHRoKSk7dmFyIHM9dGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrRnl0LkF4aXMuVElDS19MQUJFTF9DTEFTUykuZGF0YShyKSxsPXMuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKEZ5dC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MsITApLm1lcmdlKHMpO3MuZXhpdCgpLnJlbW92ZSgpLGwuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCxpKXt2YXIgcj1uLnNjYWxlKHQpLWEvMjtyZXR1cm4idHJhbnNsYXRlKCIrKGUuaXNIb3Jpem9udGFsKCk/cjowKSsiLCIrKGUuaXNIb3Jpem9udGFsKCk/MDpyKSsiKSJ9KSksbC50ZXh0KCIiKSx0aGlzLl9kcmF3VGlja3MobyxsKTt2YXIgYz0icmlnaHQiPT09dGhpcy5vcmllbnRhdGlvbigpP3RoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCk6MCx1PSJib3R0b20iPT09dGhpcy5vcmllbnRhdGlvbigpP3RoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCk6MDtyZXR1cm4gdGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2MrIiwiK3UrIikiKSx0aGlzLl9zaG93QWxsVGlja01hcmtzKCksdGhpcy5fc2hvd0FsbFRpY2tMYWJlbHMoKSx0aGlzLl9oaWRlVGlja01hcmtzV2l0aG91dExhYmVsKCksdGhpc30sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKSx0aGlzLmlzSG9yaXpvbnRhbCgpfHx0aGlzLl9zY2FsZS5yYW5nZShbMCx0aGlzLmhlaWdodCgpXSksdGhpc30sZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sZS5fTUlOSU1VTV9XSURUSF9QRVJfTEFCRUxfUFg9MTUsZX0pKEZ5dC5BeGlzKTtObXQuQ2F0ZWdvcnk9Vnl0O3ZhciBVeXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFV5dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGp5dD11TyxHeXQ9RWR0LFd5dD1JbXQscXl0PWd5dCxZeXQ9Rmd0LFh5dD1teXQsJHl0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dmFyIGk9dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gaS5fdGlja0xhYmVsUG9zaXRpb25pbmc9ImNlbnRlciIsaS5fdXNlc1RleHRXaWR0aEFwcHJveGltYXRpb249ITEsaS5mb3JtYXR0ZXIocXl0LmdlbmVyYWwoKSksaX1yZXR1cm4ganl0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpO3ZhciBlPW5ldyBXeXQuU3ZnQ29udGV4dCh0aGlzLl90aWNrTGFiZWxDb250YWluZXIubm9kZSgpLFh5dC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpO3RoaXMuX21lYXN1cmVyPW5ldyBXeXQuQ2FjaGVNZWFzdXJlcihlKSx0aGlzLl93cmFwcGVyPShuZXcgV3l0LldyYXBwZXIpLm1heExpbmVzKDEpfSxlLnByb3RvdHlwZS5fY29tcHV0ZVdpZHRoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fdXNlc1RleHRXaWR0aEFwcHJveGltYXRpb24/dGhpcy5fY29tcHV0ZUFwcHJveGltYXRlVGV4dFdpZHRoKCk6dGhpcy5fY29tcHV0ZUV4YWN0VGV4dFdpZHRoKCk7cmV0dXJuImNlbnRlciI9PT10aGlzLl90aWNrTGFiZWxQb3NpdGlvbmluZz90aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKSt0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKSt0Ok1hdGgubWF4KHRoaXMuX21heExhYmVsVGlja0xlbmd0aCgpLHRoaXMudGlja0xhYmVsUGFkZGluZygpK3QpfSxlLnByb3RvdHlwZS5fY29tcHV0ZUV4YWN0VGV4dFdpZHRoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX2dldFRpY2tWYWx1ZXMoKS5tYXAoKGZ1bmN0aW9uKGUpe3ZhciBuPXQuZm9ybWF0dGVyKCkoZSk7cmV0dXJuIHQuX21lYXN1cmVyLm1lYXN1cmUobikud2lkdGh9KSk7cmV0dXJuIFl5dC5NYXRoLm1heChlLDApfSxlLnByb3RvdHlwZS5fY29tcHV0ZUFwcHJveGltYXRlVGV4dFdpZHRoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX2dldFRpY2tWYWx1ZXMoKSxuPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoIk0iKS53aWR0aCxpPWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5mb3JtYXR0ZXIoKShlKS5sZW5ndGgqbn0pKTtyZXR1cm4gWXl0Lk1hdGgubWF4KGksMCl9LGUucHJvdG90eXBlLl9jb21wdXRlSGVpZ2h0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbWVhc3VyZXIubWVhc3VyZSgpLmhlaWdodDtyZXR1cm4iY2VudGVyIj09PXRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nP3RoaXMuX21heExhYmVsVGlja0xlbmd0aCgpK3RoaXMudGlja0xhYmVsUGFkZGluZygpK3Q6TWF0aC5tYXgodGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCksdGhpcy50aWNrTGFiZWxQYWRkaW5nKCkrdCl9LGUucHJvdG90eXBlLl9nZXRUaWNrVmFsdWVzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc2NhbGUsZT10LmRvbWFpbigpLG49ZVswXTw9ZVsxXT9lWzBdOmVbMV0saT1lWzBdPj1lWzFdP2VbMF06ZVsxXTtyZXR1cm4gdC50aWNrcygpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQ+PW4mJnQ8PWl9KSl9LGUucHJvdG90eXBlLl9yZXNjYWxlPWZ1bmN0aW9uKCl7aWYodGhpcy5faXNTZXR1cCl7aWYoIXRoaXMuaXNIb3Jpem9udGFsKCkpe3ZhciB0PXRoaXMuX2NvbXB1dGVXaWR0aCgpO2lmKHQ+dGhpcy53aWR0aCgpfHx0PHRoaXMud2lkdGgoKS10aGlzLm1hcmdpbigpKXJldHVybiB2b2lkIHRoaXMucmVkcmF3KCl9dGhpcy5yZW5kZXIoKX19LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0LnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpO3ZhciBuPXt4OjAseTowLGR4OiIwZW0iLGR5OiIwLjNlbSJ9LGk9dGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCkscj10aGlzLnRpY2tMYWJlbFBhZGRpbmcoKSxvPSJtaWRkbGUiLGE9MCxzPTAsbD0wLGM9MDtpZih0aGlzLmlzSG9yaXpvbnRhbCgpKXN3aXRjaCh0aGlzLl90aWNrTGFiZWxQb3NpdGlvbmluZyl7Y2FzZSJsZWZ0IjpvPSJlbmQiLGE9LXIsYz1yO2JyZWFrO2Nhc2UiY2VudGVyIjpjPWkrcjticmVhaztjYXNlInJpZ2h0IjpvPSJzdGFydCIsYT1yLGM9cn1lbHNlIHN3aXRjaCh0aGlzLl90aWNrTGFiZWxQb3NpdGlvbmluZyl7Y2FzZSJ0b3AiOm4uZHk9Ii0wLjNlbSIsbD1yLHM9LXI7YnJlYWs7Y2FzZSJjZW50ZXIiOmw9aStyO2JyZWFrO2Nhc2UiYm90dG9tIjpuLmR5PSIxZW0iLGw9cixzPXJ9dmFyIHU9dGhpcy5fZ2VuZXJhdGVUaWNrTWFya0F0dHJIYXNoKCk7c3dpdGNoKHRoaXMub3JpZW50YXRpb24oKSl7Y2FzZSJib3R0b20iOm4ueD11LngxLG4uZHk9IjAuOTVlbSIscz11LnkxK2M7YnJlYWs7Y2FzZSJ0b3AiOm4ueD11LngxLG4uZHk9Ii0uMjVlbSIscz11LnkxLWM7YnJlYWs7Y2FzZSJsZWZ0IjpvPSJlbmQiLGE9dS54MS1sLG4ueT11LnkxO2JyZWFrO2Nhc2UicmlnaHQiOm89InN0YXJ0IixhPXUueDErbCxuLnk9dS55MX12YXIgaD10aGlzLl9nZXRUaWNrVmFsdWVzKCksZD10aGlzLl90aWNrTGFiZWxDb250YWluZXIuc2VsZWN0QWxsKCIuIitYeXQuQXhpcy5USUNLX0xBQkVMX0NMQVNTKS5kYXRhKGgpO3JldHVybiBkLmV4aXQoKS5yZW1vdmUoKSxkLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZChYeXQuQXhpcy5USUNLX0xBQkVMX0NMQVNTLCEwKS5tZXJnZShkKS5zdHlsZSgidGV4dC1hbmNob3IiLG8pLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaW5oZXJpdCIpLmF0dHJzKG4pLnRleHQoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmZvcm1hdHRlcigpKHQpfSkpLHRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIithKyIsICIrcysiKSIpLHRoaXMuX3Nob3dBbGxUaWNrTWFya3MoKSx0aGlzLnNob3dFbmRUaWNrTGFiZWxzKCl8fHRoaXMuX2hpZGVFbmRUaWNrTGFiZWxzKCksdGhpcy5faGlkZU92ZXJmbG93aW5nVGlja0xhYmVscygpLHRoaXMuX2hpZGVPdmVybGFwcGluZ1RpY2tMYWJlbHMoKSwiY2VudGVyIiE9PXRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nJiZ0aGlzLl9oaWRlVGlja01hcmtzV2l0aG91dExhYmVsKCksdGhpc30sZS5wcm90b3R5cGUudGlja0xhYmVsUG9zaXRpb249ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fdGlja0xhYmVsUG9zaXRpb25pbmc7dmFyIGU9dC50b0xvd2VyQ2FzZSgpO2lmKHRoaXMuaXNIb3Jpem9udGFsKCkpe2lmKCJsZWZ0IiE9PWUmJiJjZW50ZXIiIT09ZSYmInJpZ2h0IiE9PWUpdGhyb3cgbmV3IEVycm9yKGUrIiBpcyBub3QgYSB2YWxpZCB0aWNrIGxhYmVsIHBvc2l0aW9uIGZvciBhIGhvcml6b250YWwgTnVtZXJpY0F4aXMiKX1lbHNlIGlmKCJ0b3AiIT09ZSYmImNlbnRlciIhPT1lJiYiYm90dG9tIiE9PWUpdGhyb3cgbmV3IEVycm9yKGUrIiBpcyBub3QgYSB2YWxpZCB0aWNrIGxhYmVsIHBvc2l0aW9uIGZvciBhIHZlcnRpY2FsIE51bWVyaWNBeGlzIik7cmV0dXJuIHRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nPWUsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS51c2VzVGV4dFdpZHRoQXBwcm94aW1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl91c2VzVGV4dFdpZHRoQXBwcm94aW1hdGlvbjoodGhpcy5fdXNlc1RleHRXaWR0aEFwcHJveGltYXRpb249dCx0aGlzKX0sZS5wcm90b3R5cGUuX2hpZGVFbmRUaWNrTGFiZWxzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50KCkubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGU9dGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrWHl0LkF4aXMuVElDS19MQUJFTF9DTEFTUyk7aWYoMCE9PWUuc2l6ZSgpKXt2YXIgbj1lLm5vZGVzKClbMF07WXl0LkRPTS5jbGllbnRSZWN0SW5zaWRlKG4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdCl8fEd5dC5zZWxlY3Qobikuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKTt2YXIgaT1lLm5vZGVzKClbZS5zaXplKCktMV07WXl0LkRPTS5jbGllbnRSZWN0SW5zaWRlKGkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdCl8fEd5dC5zZWxlY3QoaSkuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKX19LGUucHJvdG90eXBlLl9oaWRlT3ZlcmxhcHBpbmdUaWNrTGFiZWxzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5zZWxlY3RBbGwoIi4iK1h5dC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpLmZpbHRlcigoZnVuY3Rpb24odCxlKXt2YXIgbj1HeXQuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5Iik7cmV0dXJuImluaGVyaXQiPT09bnx8InZpc2libGUiPT09bn0pKSxlPXQubm9kZXMoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfSkpLG49MTshdGhpcy5faGFzT3ZlcmxhcFdpdGhJbnRlcnZhbChuLGUpJiZuPGUubGVuZ3RoOyluKz0xO3QuZWFjaCgoZnVuY3Rpb24odCxlKXt2YXIgaT1HeXQuc2VsZWN0KHRoaXMpO2UlbiE9MCYmaS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpfSkpfSxlLnByb3RvdHlwZS5faGFzT3ZlcmxhcFdpdGhJbnRlcnZhbD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0iY2VudGVyIj09PXRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nP3RoaXMudGlja0xhYmVsUGFkZGluZygpOjMqdGhpcy50aWNrTGFiZWxQYWRkaW5nKCksaT1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFl5dC5ET00uZXhwYW5kUmVjdCh0LG4pfSkpLHI9MDtyPGkubGVuZ3RoLXQ7cis9dClpZihZeXQuRE9NLmNsaWVudFJlY3RzT3ZlcmxhcChpW3JdLGlbcit0XSkpcmV0dXJuITE7cmV0dXJuITB9LGUucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZS5jYWxsKHRoaXMpLHRoaXMuX21lYXN1cmVyLnJlc2V0KCl9LGV9KShYeXQuQXhpcyk7VXl0Lk51bWVyaWM9JHl0O3ZhciBLeXQ9e30sWnl0PXt9LEp5dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KEp5dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFF5dD1GZ3Q7Snl0LmludGVydmFsVGlja0dlbmVyYXRvcj1mdW5jdGlvbiB0dnQodCl7aWYodDw9MCl0aHJvdyBuZXcgRXJyb3IoImludGVydmFsIG11c3QgYmUgcG9zaXRpdmUgbnVtYmVyIik7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPWUuZG9tYWluKCksaT1NYXRoLm1pbihuWzBdLG5bMV0pLHI9TWF0aC5tYXgoblswXSxuWzFdKSxvPU1hdGguY2VpbChpL3QpKnQsYT1NYXRoLmZsb29yKChyLW8pL3QpKzEscz1pJXQ9PTA/W106W2ldLGw9UXl0Lk1hdGgucmFuZ2UoMCxhKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBvK2UqdH0pKSxjPXIldD09MD9bXTpbcl07cmV0dXJuIHMuY29uY2F0KGwpLmNvbmNhdChjKX19LEp5dC5pbnRlZ2VyVGlja0dlbmVyYXRvcj1mdW5jdGlvbiBldnQoKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9dC5kZWZhdWx0VGlja3MoKTtyZXR1cm4gZS5maWx0ZXIoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHQlMT09MHx8MD09PW58fG49PT1lLmxlbmd0aC0xfSkpfX07dmFyIG52dD17fSxpdnQ9e307ZnVuY3Rpb24gcnZ0KHQsZSxuKXtyZXR1cm4gbi0obi10KSplfWZ1bmN0aW9uIG92dCh0LGUsbil7cmV0dXJuKHQqZS1uKS8oZS0xKX1mdW5jdGlvbiBhdnQodCxlLG4saSl7dmFyIHI9ZT4xLG89cj9pOm47aWYobnVsbD09bylyZXR1cm4gZTt2YXIgYT10LmdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCkscz1NYXRoLmFicyhhWzFdLWFbMF0pO3JldHVybihyP01hdGgubWluOk1hdGgubWF4KShlLG8vcyl9ZnVuY3Rpb24gc3Z0KHQsZSxuLGkscil7aWYoZTw9MSlyZXR1cm57Y2VudGVyUG9pbnQ6bix6b29tQW1vdW50OmV9O2lmKG51bGw9PWkmJm51bGw9PXIpcmV0dXJue2NlbnRlclBvaW50Om4sem9vbUFtb3VudDplfTt2YXIgbz1sdnQodCksYT0oZnVuY3Rpb24gcyh0KXt2YXIgZT10LmdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCk7cmV0dXJuIGVbMV08ZVswXX0pKHQpO2k9bnVsbD09aT9hPzEvMDotMS8wOmkscj1udWxsPT1yP2E/LTEvMDoxLzA6cjt2YXIgbD10LmdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCksYz1sWzBdLHU9bFsxXSxoPXQuc2NhbGVUcmFuc2Zvcm1hdGlvbihyKSxkPXQuc2NhbGVUcmFuc2Zvcm1hdGlvbih1KSxwPXJ2dChkLGUsbiksZj10LnNjYWxlVHJhbnNmb3JtYXRpb24oaSksbT10LnNjYWxlVHJhbnNmb3JtYXRpb24oYyksZz1ydnQobSxlLG4pLF89TWF0aC5hYnMoaC1mKTtpZihNYXRoLmFicyhwLWcpPl8pe3ZhciB5PShoLWYpLyhkLW0pO3JldHVybiAxIT09eT97Y2VudGVyUG9pbnQ6b3Z0KGQseSxoKSx6b29tQW1vdW50Onl9OntjZW50ZXJQb2ludDpuLHpvb21BbW91bnQ6eX19cmV0dXJuIHA+aCE9bz97Y2VudGVyUG9pbnQ6b3Z0KGQsZSxoKSx6b29tQW1vdW50OmV9Omc8ZiE9bz97Y2VudGVyUG9pbnQ6b3Z0KG0sZSxmKSx6b29tQW1vdW50OmV9OntjZW50ZXJQb2ludDpuLHpvb21BbW91bnQ6ZX19ZnVuY3Rpb24gbHZ0KHQpe3ZhciBlPXQucmFuZ2UoKTtyZXR1cm4gZVsxXTxlWzBdfQovKioKICAgICAqIENvcHlyaWdodCAyMDE3LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoaXZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxpdnQuem9vbU91dD1ydnQsaXZ0LmNvbnN0cmFpbmVkWm9vbT1mdW5jdGlvbiBjdnQodCxlLG4saSxyLG8sYSl7cmV0dXJuIHN2dCh0LGU9YXZ0KHQsZSxpLHIpLG4sbyxhKX0saXZ0LmNvbnN0cmFpblpvb21FeHRlbnRzPWF2dCxpdnQuY29uc3RyYWluWm9vbVZhbHVlcz1zdnQsaXZ0LmNvbnN0cmFpbmVkVHJhbnNsYXRpb249ZnVuY3Rpb24gdXZ0KHQsZSxuLGkpe3ZhciByLG89dC5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpLGE9b1swXSxzPW9bMV0sbD1sdnQodCk7aWYoZT4wIT09bCl7aWYobnVsbCE9KHI9aSkpe3ZhciBjPXQuc2NhbGVUcmFuc2Zvcm1hdGlvbihzKSx1PXQuc2NhbGVUcmFuc2Zvcm1hdGlvbihyKTtlPShsP01hdGgubWF4Ok1hdGgubWluKShjK2UsdSktY319ZWxzZSBpZihudWxsIT0ocj1uKSl7dmFyIGg9dC5zY2FsZVRyYW5zZm9ybWF0aW9uKGEpLGQ9dC5zY2FsZVRyYW5zZm9ybWF0aW9uKHIpO2U9KGw/TWF0aC5taW46TWF0aC5tYXgpKGgrZSxkKS1ofXJldHVybiBlfTt2YXIgaHZ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShodnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBkdnQ9Rmd0LHB2dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fYXV0b0RvbWFpbkF1dG9tYXRpY2FsbHk9ITAsdGhpcy5fZG9tYWluTW9kaWZpY2F0aW9uSW5Qcm9ncmVzcz0hMSx0aGlzLl91cGRhdGVJZD0wLHRoaXMuX2NhbGxiYWNrcz1uZXcgZHZ0LkNhbGxiYWNrU2V0LHRoaXMuX2luY2x1ZGVkVmFsdWVzUHJvdmlkZXJzPW5ldyBkdnQuU2V0fXJldHVybiB0LnByb3RvdHlwZS5leHRlbnRPZlZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm5bXX0sdC5wcm90b3R5cGUuX2dldEFsbEluY2x1ZGVkVmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dm9pZCAwPT09dCYmKHQ9ITEpO3ZhciBuPVtdO3JldHVybiB0aGlzLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVycy5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgcj1pKGUsdCk7bj1uLmNvbmNhdChyKX0pKSxufSx0LnByb3RvdHlwZS5fZ2V0RXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuW119LHQucHJvdG90eXBlLm9uVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3MuYWRkKHQpLHRoaXN9LHQucHJvdG90eXBlLm9mZlVwZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSx0LnByb3RvdHlwZS5fZGlzcGF0Y2hVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVJZCsrLHRoaXMuX2NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMpfSx0LnByb3RvdHlwZS5hdXRvRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2F1dG9Eb21haW5BdXRvbWF0aWNhbGx5PSEwLHRoaXMuX3NldERvbWFpbih0aGlzLl9nZXRFeHRlbnQoKSksdGhpc30sdC5wcm90b3R5cGUuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZT1mdW5jdGlvbigpe3RoaXMuX2F1dG9Eb21haW5BdXRvbWF0aWNhbGx5JiZ0aGlzLmF1dG9Eb21haW4oKX0sdC5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBzY2FsZSIpfSx0LnByb3RvdHlwZS50aWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbWFpbigpfSx0LnByb3RvdHlwZS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZ2V0RG9tYWluKCk6KHRoaXMuX2F1dG9Eb21haW5BdXRvbWF0aWNhbGx5PSExLHRoaXMuX3NldERvbWFpbih0KSx0aGlzKX0sdC5wcm90b3R5cGUuX2dldERvbWFpbj1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX2dldERvbWFpbiIpfSx0LnByb3RvdHlwZS5fc2V0RG9tYWluPWZ1bmN0aW9uKHQpe3RoaXMuX2RvbWFpbk1vZGlmaWNhdGlvbkluUHJvZ3Jlc3N8fCh0aGlzLl9kb21haW5Nb2RpZmljYXRpb25JblByb2dyZXNzPSEwLHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbih0KSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpLHRoaXMuX2RvbWFpbk1vZGlmaWNhdGlvbkluUHJvZ3Jlc3M9ITEpfSx0LnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX2JhY2tpbmdEb21haW4iKX0sdC5wcm90b3R5cGUucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZ2V0UmFuZ2UoKToodGhpcy5fc2V0UmFuZ2UodCksdGhpcyl9LHQucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX2dldFJhbmdlIil9LHQucHJvdG90eXBlLl9zZXRSYW5nZT1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIF9zZXRSYW5nZSIpfSx0LnByb3RvdHlwZS5hZGRJbmNsdWRlZFZhbHVlc1Byb3ZpZGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVycy5hZGQodCksdGhpcy5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlKCksdGhpc30sdC5wcm90b3R5cGUucmVtb3ZlSW5jbHVkZWRWYWx1ZXNQcm92aWRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW5jbHVkZWRWYWx1ZXNQcm92aWRlcnMuZGVsZXRlKHQpLHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXN9LHQucHJvdG90eXBlLnVwZGF0ZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZUlkfSx0fSkoKTtodnQuU2NhbGU9cHZ0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkobnZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZnZ0PXVPLG12dD1FZHQsZ3Z0PWl2dCxfdnQ9Rmd0LHl2dD1bMCwxXSx2dnQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX3JhbmdlPVswLDFdLG4uX2QzU2NhbGU9bXZ0LnNjYWxlQmFuZCgpLG4uX2QzU2NhbGUucmFuZ2UoeXZ0KSxuLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGU9bXZ0LnNjYWxlTGluZWFyKCksbi5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmRvbWFpbih5dnQpLG4uX2lubmVyUGFkZGluZz1lLl9jb252ZXJ0VG9QbG90dGFibGVJbm5lclBhZGRpbmcoLjMpLG4uX291dGVyUGFkZGluZz1lLl9jb252ZXJ0VG9QbG90dGFibGVPdXRlclBhZGRpbmcoLjUsLjMpLG59cmV0dXJuIGZ2dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5jbG9uZVdpdGhvdXRQcm92aWRlcnM9ZnVuY3Rpb24oKXt2YXIgdD0obmV3IGUpLmRvbWFpbih0aGlzLmRvbWFpbigpKS5yYW5nZSh0aGlzLnJhbmdlKCkpLmlubmVyUGFkZGluZyh0aGlzLmlubmVyUGFkZGluZygpKS5vdXRlclBhZGRpbmcodGhpcy5vdXRlclBhZGRpbmcoKSk7cmV0dXJuIHQuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5kb21haW4odGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmRvbWFpbigpKSx0fSxlLnByb3RvdHlwZS5leHRlbnRPZlZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gX3Z0LkFycmF5LnVuaXEodCl9LGUucHJvdG90eXBlLl9nZXRFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gX3Z0LkFycmF5LnVuaXEodGhpcy5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXMoKSl9LGUucHJvdG90eXBlLmRvbWFpbj1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuZG9tYWluLmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUuaW52ZXJ0UmFuZ2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10JiYodD10aGlzLnJhbmdlKCkpO3ZhciBuPXRoaXMuX2QzU2NhbGUuYmFuZHdpZHRoKCksaT10aGlzLmludmVydGVkVHJhbnNmb3JtYXRpb24odFswXSkscj10aGlzLmludmVydGVkVHJhbnNmb3JtYXRpb24odFsxXSksbz10aGlzLl9kM1NjYWxlLmRvbWFpbigpLGE9by5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9kM1NjYWxlKHQpK24vMn0pKSxzPW12dC5iaXNlY3QoYSxpKSxsPW12dC5iaXNlY3QoYSxyKTtyZXR1cm4gby5zbGljZShzLGwpfSxlLnByb3RvdHlwZS5yYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUucmFuZ2UuY2FsbCh0aGlzLGUpfSxlLl9jb252ZXJ0VG9QbG90dGFibGVJbm5lclBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIDEvKDEtdCktMX0sZS5fY29udmVydFRvUGxvdHRhYmxlT3V0ZXJQYWRkaW5nPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQvKDEtZSl9LGUucHJvdG90eXBlLl9zZXRCYW5kcz1mdW5jdGlvbigpe3ZhciB0PTEtMS8oMSt0aGlzLmlubmVyUGFkZGluZygpKSxlPXRoaXMub3V0ZXJQYWRkaW5nKCkvKDErdGhpcy5pbm5lclBhZGRpbmcoKSk7dGhpcy5fZDNTY2FsZS5wYWRkaW5nSW5uZXIodCksdGhpcy5fZDNTY2FsZS5wYWRkaW5nT3V0ZXIoZSl9LGUucHJvdG90eXBlLnJhbmdlQmFuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZXNjYWxlQmFuZCh0aGlzLl9kM1NjYWxlLmJhbmR3aWR0aCgpKX0sZS5wcm90b3R5cGUuc3RlcFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jlc2NhbGVCYW5kKHRoaXMuX2QzU2NhbGUuYmFuZHdpZHRoKCkqKDErdGhpcy5pbm5lclBhZGRpbmcoKSkpfSxlLnByb3RvdHlwZS50aWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbWFpbigpfSxlLnByb3RvdHlwZS5pbm5lclBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5faW5uZXJQYWRkaW5nOih0aGlzLl9pbm5lclBhZGRpbmc9dCx0aGlzLnJhbmdlKHRoaXMucmFuZ2UoKSksdGhpcy5fZGlzcGF0Y2hVcGRhdGUoKSx0aGlzKX0sZS5wcm90b3R5cGUub3V0ZXJQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX291dGVyUGFkZGluZzoodGhpcy5fb3V0ZXJQYWRkaW5nPXQsdGhpcy5yYW5nZSh0aGlzLnJhbmdlKCkpLHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCksdGhpcyl9LGUucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2QzU2NhbGUodCkrdGhpcy5fZDNTY2FsZS5iYW5kd2lkdGgoKS8yO3JldHVybiB0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUoZSl9LGUucHJvdG90eXBlLnpvb209ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5kb21haW4odGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLnJhbmdlKCkubWFwKChmdW5jdGlvbihpKXtyZXR1cm4gbi5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmludmVydChndnQuem9vbU91dChpLHQsZSkpfSkpKSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpfSxlLnByb3RvdHlwZS5wYW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUuZG9tYWluKHRoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5yYW5nZSgpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIGUuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5pbnZlcnQobit0KX0pKSksdGhpcy5fZGlzcGF0Y2hVcGRhdGUoKX0sZS5wcm90b3R5cGUuc2NhbGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlKHQpfSxlLnByb3RvdHlwZS5pbnZlcnRlZFRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUuaW52ZXJ0KHQpfSxlLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkV4dGVudD1mdW5jdGlvbigpe3JldHVybiB5dnR9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5kb21haW4oKX0sZS5wcm90b3R5cGUuc2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24odCl7dGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmRvbWFpbih0KSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpfSxlLnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpfSxlLnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2QzU2NhbGUuZG9tYWluKCk6KHRoaXMuX2QzU2NhbGUuZG9tYWluKHQpLHRoaXMuX3NldEJhbmRzKCksdGhpcyl9LGUucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yYW5nZX0sZS5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX3JhbmdlPXQsdGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLnJhbmdlKHQpLHRoaXMuX3NldEJhbmRzKCl9LGUucHJvdG90eXBlLl9yZXNjYWxlQmFuZD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5hYnModGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlKHQpLXRoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZSgwKSl9LGV9KShodnQuU2NhbGUpO252dC5DYXRlZ29yeT12dnQ7dmFyIGJ2dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoYnZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgeHZ0PXVPLHd2dD1FZHQsU3Z0PUZndCxNdnQ9aHZ0LEV2dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5jb3VudD0wLHRoaXMudHJhY2tlcj17fX1yZXR1cm4gdC5wcm90b3R5cGUuZ2V0SW5kZXg9ZnVuY3Rpb24odCl7aWYobnVsbCE9dGhpcy50cmFja2VyW3RdKXJldHVybiB0aGlzLnRyYWNrZXJbdF07dmFyIGU9dGhpcy5jb3VudDtyZXR1cm4gdGhpcy50cmFja2VyW3RdPWUsdGhpcy5jb3VudCs9MSxlfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuY291bnQ9MCx0aGlzLnRyYWNrZXI9e319LHR9KSgpLFR2dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2YXIgaSxyPXQuY2FsbCh0aGlzKXx8dGhpcztzd2l0Y2goci5fcmFuZ2VMZW5ndGg9MSxyLl90cmFja2VyPW5ldyBFdnQsbil7Y2FzZSBudWxsOmNhc2Ugdm9pZCAwOm51bGw9PWUuX3Bsb3R0YWJsZUNvbG9yQ2FjaGUmJihlLl9wbG90dGFibGVDb2xvckNhY2hlPWUuX2dldFBsb3R0YWJsZUNvbG9ycygpKSxpPXd2dC5zY2FsZU9yZGluYWwoKS5yYW5nZShlLl9wbG90dGFibGVDb2xvckNhY2hlKTticmVhaztjYXNlIkNhdGVnb3J5MTAiOmNhc2UiY2F0ZWdvcnkxMCI6Y2FzZSIxMCI6aT13dnQuc2NhbGVPcmRpbmFsKHd2dC5zY2hlbWVDYXRlZ29yeTEwKTticmVhaztjYXNlIkNhdGVnb3J5MjAiOmNhc2UiY2F0ZWdvcnkyMCI6Y2FzZSIyMCI6aT13dnQuc2NhbGVPcmRpbmFsKHd2dC5zY2hlbWVDYXRlZ29yeTIwKTticmVhaztjYXNlIkNhdGVnb3J5MjBiIjpjYXNlImNhdGVnb3J5MjBiIjpjYXNlIjIwYiI6aT13dnQuc2NhbGVPcmRpbmFsKHd2dC5zY2hlbWVDYXRlZ29yeTIwYik7YnJlYWs7Y2FzZSJDYXRlZ29yeTIwYyI6Y2FzZSJjYXRlZ29yeTIwYyI6Y2FzZSIyMGMiOmk9d3Z0LnNjYWxlT3JkaW5hbCh3dnQuc2NoZW1lQ2F0ZWdvcnkyMGMpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBDb2xvclNjYWxlIHR5cGUiKX1yZXR1cm4gci5fZDNTY2FsZT1pLHIuX3JhbmdlTGVuZ3RoPXIuX2QzU2NhbGUucmFuZ2UoKS5sZW5ndGgscn1yZXR1cm4geHZ0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmV4dGVudE9mVmFsdWVzPWZ1bmN0aW9uKHQpe3JldHVybiBTdnQuQXJyYXkudW5pcSh0KX0sZS5wcm90b3R5cGUuX2dldEV4dGVudD1mdW5jdGlvbigpe3JldHVybiBTdnQuQXJyYXkudW5pcSh0aGlzLl9nZXRBbGxJbmNsdWRlZFZhbHVlcygpKX0sZS5pbnZhbGlkYXRlQ29sb3JDYWNoZT1mdW5jdGlvbigpe2UuX3Bsb3R0YWJsZUNvbG9yQ2FjaGU9bnVsbH0sZS5fZ2V0UGxvdHRhYmxlQ29sb3JzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9d3Z0LnNlbGVjdCgiYm9keSIpLmFwcGVuZCgicGxvdHRhYmxlLWNvbG9yLXRlc3RlciIpLG49U3Z0LkNvbG9yLmNvbG9yVGVzdChlLCIiKSxpPTAscj1TdnQuQ29sb3IuY29sb3JUZXN0KGUsInBsb3R0YWJsZS1jb2xvcnMtMCIpO251bGwhPXImJmk8dGhpcy5fTUFYSU1VTV9DT0xPUlNfRlJPTV9DU1MmJihyIT09bnx8ciE9PXRbdC5sZW5ndGgtMV0pOyl0LnB1c2gociksaSsrLHI9U3Z0LkNvbG9yLmNvbG9yVGVzdChlLCJwbG90dGFibGUtY29sb3JzLSIraSk7cmV0dXJuIGUucmVtb3ZlKCksdH0sZS5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5fZDNTY2FsZSh0KSxpPXRoaXMuX3RyYWNrZXIuZ2V0SW5kZXgodCkscj1NYXRoLmZsb29yKGkvdGhpcy5fcmFuZ2VMZW5ndGgpO2lmKDA9PT1yKXJldHVybiBuO3ZhciBvPU1hdGgubG9nKHIqZS5fTE9PUF9MSUdIVEVOX0ZBQ1RPUisxKTtyZXR1cm4gU3Z0LkNvbG9yLmxpZ2h0ZW5Db2xvcihuLG8pfSxlLnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpfSxlLnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2QzU2NhbGUuZG9tYWluKCk6KHRoaXMuX2QzU2NhbGUuZG9tYWluKHQpLHRoaXMuX3RyYWNrZXIuY2xlYXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUucmFuZ2UoKX0sZS5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX2QzU2NhbGUucmFuZ2UodCksdGhpcy5fcmFuZ2VMZW5ndGg9dC5sZW5ndGh9LGUuX0xPT1BfTElHSFRFTl9GQUNUT1I9MS42LGUuX01BWElNVU1fQ09MT1JTX0ZST01fQ1NTPTI1NixlfSkoTXZ0LlNjYWxlKTtidnQuQ29sb3I9VHZ0O3ZhciBDdnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEN2dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEF2dD11TyxrdnQ9RWR0LEx2dD1GZ3QsUHZ0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZvaWQgMD09PW4mJihuPSJsaW5lYXIiKTt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7c3dpdGNoKG4pe2Nhc2UibGluZWFyIjppLl9jb2xvclNjYWxlPWt2dC5zY2FsZUxpbmVhcigpO2JyZWFrO2Nhc2UibG9nIjppLl9jb2xvclNjYWxlPWt2dC5zY2FsZUxvZygpO2JyZWFrO2Nhc2Uic3FydCI6aS5fY29sb3JTY2FsZT1rdnQuc2NhbGVTcXJ0KCk7YnJlYWs7Y2FzZSJwb3ciOmkuX2NvbG9yU2NhbGU9a3Z0LnNjYWxlUG93KCl9aWYobnVsbD09aS5fY29sb3JTY2FsZSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gUXVhbnRpdGF0aXZlU2NhbGUgc2NhbGUgdHlwZSAiK24pO3JldHVybiBpLnJhbmdlKGUuUkVEUyksaX1yZXR1cm4gQXZ0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmV4dGVudE9mVmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciBlPWt2dC5leHRlbnQodCk7cmV0dXJuIG51bGw9PWVbMF18fG51bGw9PWVbMV0/W106ZX0sZS5wcm90b3R5cGUuX2QzSW50ZXJwb2xhdGVkU2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29sb3JTY2FsZS5yYW5nZShbMCwxXSkuaW50ZXJwb2xhdGUodGhpcy5faW50ZXJwb2xhdGVDb2xvcnMoKSl9LGUucHJvdG90eXBlLl9pbnRlcnBvbGF0ZUNvbG9ycz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbG9yUmFuZ2U7aWYodC5sZW5ndGg8Mil0aHJvdyBuZXcgRXJyb3IoIkNvbG9yIHNjYWxlIGFycmF5cyBtdXN0IGhhdmUgYXQgbGVhc3QgdHdvIGVsZW1lbnRzLiIpO3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj0oZT1NYXRoLm1heCgwLE1hdGgubWluKDEsZSkpKSoodC5sZW5ndGgtMSksaT1NYXRoLmZsb29yKG4pLHI9TWF0aC5jZWlsKG4pLG89bi1pO3JldHVybiBrdnQuaW50ZXJwb2xhdGVMYWIodFtpXSx0W3JdKShvKX19fSxlLnByb3RvdHlwZS5fcmVzZXRTY2FsZT1mdW5jdGlvbigpe3RoaXMuX2QzU2NhbGU9dGhpcy5fZDNJbnRlcnBvbGF0ZWRTY2FsZSgpLHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCl9LGUucHJvdG90eXBlLmF1dG9Eb21haW49ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9nZXRBbGxJbmNsdWRlZFZhbHVlcygpO3JldHVybiB0Lmxlbmd0aD4wJiZ0aGlzLl9zZXREb21haW4oW0x2dC5NYXRoLm1pbih0LDApLEx2dC5NYXRoLm1heCh0LDApXSksdGhpc30sZS5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUodCl9LGUucHJvdG90eXBlLl9nZXREb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKCl9LGUucHJvdG90eXBlLl9iYWNraW5nU2NhbGVEb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZDNTY2FsZS5kb21haW4oKToodGhpcy5fZDNTY2FsZS5kb21haW4odCksdGhpcyl9LGUucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb2xvclJhbmdlfSxlLnByb3RvdHlwZS5fc2V0UmFuZ2U9ZnVuY3Rpb24odCl7dGhpcy5fY29sb3JSYW5nZT10LHRoaXMuX3Jlc2V0U2NhbGUoKX0sZS5SRURTPVsiI0ZGRkZGRiIsIiNGRkY2RTEiLCIjRkVGNEMwIiwiI0ZFRDk3NiIsIiNGRUIyNEMiLCIjRkQ4RDNDIiwiI0ZDNEUyQSIsIiNFMzFBMUMiLCIjQjEwMDI2Il0sZS5CTFVFUz1bIiNGRkZGRkYiLCIjQ0NGRkZGIiwiI0E1RkZGRCIsIiM4NUY3RkIiLCIjNkVEM0VGIiwiIzU1QTdFMCIsIiM0MTdGRDAiLCIjMjU0NUQzIiwiIzBCMDJFMSJdLGUuUE9TTkVHPVsiIzBCMDJFMSIsIiMyNTQ1RDMiLCIjNDE3RkQwIiwiIzU1QTdFMCIsIiM2RUQzRUYiLCIjODVGN0ZCIiwiI0E1RkZGRCIsIiNDQ0ZGRkYiLCIjRkZGRkZGIiwiI0ZGRjZFMSIsIiNGRUY0QzAiLCIjRkVEOTc2IiwiI0ZFQjI0QyIsIiNGRDhEM0MiLCIjRkM0RTJBIiwiI0UzMUExQyIsIiNCMTAwMjYiXSxlfSkoaHZ0LlNjYWxlKTtDdnQuSW50ZXJwb2xhdGVkQ29sb3I9UHZ0O3ZhciBOdnQ9e30sSXZ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoSXZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgUnZ0PXVPLE92dD1FZHQsenZ0PWl2dCxEdnQ9Rmd0LEJ2dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fdGlja0dlbmVyYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gdC5kZWZhdWx0VGlja3MoKX0sZS5fcGFkUHJvcG9ydGlvbj0uMDUsZS5fc25hcHBpbmdEb21haW5FbmFibGVkPSEwLGUuX3BhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXJzPW5ldyBEdnQuU2V0LGV9cmV0dXJuIFJ2dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5hdXRvRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RvbWFpbk1pbj1udWxsLHRoaXMuX2RvbWFpbk1heD1udWxsLHQucHJvdG90eXBlLmF1dG9Eb21haW4uY2FsbCh0aGlzKSx0aGlzfSxlLnByb3RvdHlwZS5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlPWZ1bmN0aW9uKCl7aWYobnVsbD09dGhpcy5fZG9tYWluTWlufHxudWxsPT10aGlzLl9kb21haW5NYXgpe3ZhciBlPXRoaXMuX2dldEV4dGVudCgpO2lmKG51bGwhPXRoaXMuX2RvbWFpbk1pbil7dmFyIG49ZVsxXTtyZXR1cm4gdGhpcy5fZG9tYWluTWluPj1uJiYobj10aGlzLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbihbdGhpcy5fZG9tYWluTWluLHRoaXMuX2RvbWFpbk1pbl0pWzFdKSx2b2lkIHRoaXMuX3NldERvbWFpbihbdGhpcy5fZG9tYWluTWluLG5dKX1pZihudWxsIT10aGlzLl9kb21haW5NYXgpe3ZhciBpPWVbMF07cmV0dXJuIHRoaXMuX2RvbWFpbk1heDw9aSYmKGk9dGhpcy5fZXhwYW5kU2luZ2xlVmFsdWVEb21haW4oW3RoaXMuX2RvbWFpbk1heCx0aGlzLl9kb21haW5NYXhdKVswXSksdm9pZCB0aGlzLl9zZXREb21haW4oW2ksdGhpcy5fZG9tYWluTWF4XSl9dC5wcm90b3R5cGUuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZS5jYWxsKHRoaXMpfWVsc2UgdGhpcy5fc2V0RG9tYWluKFt0aGlzLl9kb21haW5NaW4sdGhpcy5fZG9tYWluTWF4XSl9LGUucHJvdG90eXBlLl9nZXRVbmJvdW5kZWRFeHRlbnQ9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9ITEpO3ZhciBlPXRoaXMuX2dldEFsbEluY2x1ZGVkVmFsdWVzKHQpLG49dGhpcy5fZGVmYXVsdEV4dGVudCgpO2lmKDAhPT1lLmxlbmd0aCl7dmFyIGk9W0R2dC5NYXRoLm1pbihlLG5bMF0pLER2dC5NYXRoLm1heChlLG5bMV0pXTtuPXRoaXMuX3BhZERvbWFpbihpKX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuX2dldEV4dGVudD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldFVuYm91bmRlZEV4dGVudCgpO3JldHVybiBudWxsIT10aGlzLl9kb21haW5NaW4mJih0WzBdPXRoaXMuX2RvbWFpbk1pbiksbnVsbCE9dGhpcy5fZG9tYWluTWF4JiYodFsxXT10aGlzLl9kb21haW5NYXgpLHR9LGUucHJvdG90eXBlLmFkZFBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXJzLmFkZCh0KSx0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzfSxlLnByb3RvdHlwZS5yZW1vdmVQYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVycy5kZWxldGUodCksdGhpcy5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlKCksdGhpc30sZS5wcm90b3R5cGUucGFkUHJvcG9ydGlvbj1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9wYWRQcm9wb3J0aW9uO2lmKHQ8MCl0aHJvdyBuZXcgRXJyb3IoInBhZFByb3BvcnRpb24gbXVzdCBiZSBub24tbmVnYXRpdmUiKTtyZXR1cm4gdGhpcy5fcGFkUHJvcG9ydGlvbj10LHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXN9LGUucHJvdG90eXBlLl9wYWREb21haW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0WzBdLnZhbHVlT2YoKT09PXRbMV0udmFsdWVPZigpKXJldHVybiB0aGlzLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbih0KTtpZigwPT09dGhpcy5fcGFkUHJvcG9ydGlvbilyZXR1cm4gdDt2YXIgbj10aGlzLl9wYWRQcm9wb3J0aW9uLzIsaT10WzBdLHI9dFsxXSxvPSExLGE9ITE7dGhpcy5fcGFkZGluZ0V4Y2VwdGlvbnNQcm92aWRlcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dChlKS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnZhbHVlT2YoKT09PWkudmFsdWVPZigpJiYobz0hMCksdC52YWx1ZU9mKCk9PT1yLnZhbHVlT2YoKSYmKGE9ITApfSkpfSkpO3ZhciBzPXRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpO3RoaXMuX2JhY2tpbmdTY2FsZURvbWFpbih0KTt2YXIgbD1vP2k6dGhpcy5pbnZlcnQodGhpcy5zY2FsZShpKS0odGhpcy5zY2FsZShyKS10aGlzLnNjYWxlKGkpKSpuKSxjPWE/cjp0aGlzLmludmVydCh0aGlzLnNjYWxlKHIpKyh0aGlzLnNjYWxlKHIpLXRoaXMuc2NhbGUoaSkpKm4pO3JldHVybiB0aGlzLl9iYWNraW5nU2NhbGVEb21haW4ocyksdGhpcy5fc25hcHBpbmdEb21haW5FbmFibGVkP3RoaXMuX25pY2VEb21haW4oW2wsY10pOltsLGNdfSxlLnByb3RvdHlwZS5zbmFwcGluZ0RvbWFpbkVuYWJsZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fc25hcHBpbmdEb21haW5FbmFibGVkOih0aGlzLl9zbmFwcGluZ0RvbWFpbkVuYWJsZWQ9dCx0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzKX0sZS5wcm90b3R5cGUuX2V4cGFuZFNpbmdsZVZhbHVlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxlLnByb3RvdHlwZS5pbnZlcnQ9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBpbnZlcnQiKX0sZS5wcm90b3R5cGUuZG9tYWluPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiYodGhpcy5fZG9tYWluTWluPWVbMF0sdGhpcy5fZG9tYWluTWF4PWVbMV0pLHQucHJvdG90eXBlLmRvbWFpbi5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLmRvbWFpbk1pbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLmRvbWFpbigpWzBdOih0aGlzLl9kb21haW5NaW49dCx0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzKX0sZS5wcm90b3R5cGUuZG9tYWluTWF4PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuZG9tYWluKClbMV06KHRoaXMuX2RvbWFpbk1heD10LHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5leHRlbnRPZlZhbHVlcz1mdW5jdGlvbih0KXt2YXIgZT1PdnQuZXh0ZW50KHQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gRHZ0Lk1hdGguaXNWYWxpZE51bWJlcigrdCl9KSkpO3JldHVybiBudWxsPT1lWzBdfHxudWxsPT1lWzFdP1tdOmV9LGUucHJvdG90eXBlLnpvb209ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMuZG9tYWluKHRoaXMucmFuZ2UoKS5tYXAoKGZ1bmN0aW9uKGkpe3JldHVybiBuLmludmVydCh6dnQuem9vbU91dChpLHQsZSkpfSkpKX0sZS5wcm90b3R5cGUucGFuPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5kb21haW4odGhpcy5yYW5nZSgpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIGUuaW52ZXJ0KG4rdCl9KSkpfSxlLnByb3RvdHlwZS5zY2FsZVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgc2NhbGVUcmFuc2Zvcm1hdGlvbiIpfSxlLnByb3RvdHlwZS5pbnZlcnRlZFRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbiIpfSxlLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkV4dGVudD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgZ2V0VHJhbnNmb3JtYXRpb25FeHRlbnQiKX0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIGdldFRyYW5zZm9ybWF0aW9uRG9tYWluIil9LGUucHJvdG90eXBlLnNldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgc2V0VHJhbnNmb3JtYXRpb25Eb21haW4iKX0sZS5wcm90b3R5cGUuX3NldERvbWFpbj1mdW5jdGlvbihlKXt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4gRHZ0Lk1hdGguaXNOYU4odCl8fHQ9PT0xLzB8fHQ9PT0tMS8wfTtuKGVbMF0pfHxuKGVbMV0pP0R2dC5XaW5kb3cud2FybigiV2FybmluZzogUXVhbnRpdGF0aXZlU2NhbGVzIGNhbm5vdCB0YWtlIE5hTiBvciBJbmZpbml0eSBhcyBhIGRvbWFpbiB2YWx1ZS4gSWdub3JpbmcuIik6dC5wcm90b3R5cGUuX3NldERvbWFpbi5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLmRlZmF1bHRUaWNrcz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX2dldERlZmF1bHRUaWNrcyIpfSxlLnByb3RvdHlwZS50aWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl90aWNrR2VuZXJhdG9yKHRoaXMpfSxlLnByb3RvdHlwZS5fbmljZURvbWFpbj1mdW5jdGlvbih0LGUpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX25pY2VEb21haW4iKX0sZS5wcm90b3R5cGUuX2RlZmF1bHRFeHRlbnQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIF9kZWZhdWx0RXh0ZW50Iil9LGUucHJvdG90eXBlLnRpY2tHZW5lcmF0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fdGlja0dlbmVyYXRvcjoodGhpcy5fdGlja0dlbmVyYXRvcj10LHRoaXMpfSxlLl9ERUZBVUxUX05VTV9USUNLUz0xMCxlfSkoaHZ0LlNjYWxlKTtJdnQuUXVhbnRpdGF0aXZlU2NhbGU9QnZ0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoTnZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSHZ0PXVPLEZ2dD1FZHQsVnZ0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9kM1NjYWxlPUZ2dC5zY2FsZUxpbmVhcigpLGV9cmV0dXJuIEh2dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fZGVmYXVsdEV4dGVudD1mdW5jdGlvbigpe3JldHVyblswLDFdfSxlLnByb3RvdHlwZS5fZXhwYW5kU2luZ2xlVmFsdWVEb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09PT10WzFdP1t0WzBdLTEsdFsxXSsxXTp0fSxlLnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZDNTY2FsZSh0KX0sZS5wcm90b3R5cGUuc2NhbGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zY2FsZSh0KX0sZS5wcm90b3R5cGUuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnZlcnQodCl9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2dldFVuYm91bmRlZEV4dGVudCghMCl9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tYWluKCl9LGUucHJvdG90eXBlLnNldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKHQpe3RoaXMuZG9tYWluKHQpfSxlLnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpfSxlLnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2QzU2NhbGUuZG9tYWluKCk6KHRoaXMuX2QzU2NhbGUuZG9tYWluKHQpLHRoaXMpfSxlLnByb3RvdHlwZS5fZ2V0UmFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5yYW5nZSgpfSxlLnByb3RvdHlwZS5fc2V0UmFuZ2U9ZnVuY3Rpb24odCl7dGhpcy5fZDNTY2FsZS5yYW5nZSh0KX0sZS5wcm90b3R5cGUuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1NjYWxlLmludmVydCh0KX0sZS5wcm90b3R5cGUuZGVmYXVsdFRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUudGlja3MoZS5fREVGQVVMVF9OVU1fVElDS1MpfSxlLnByb3RvdHlwZS5fbmljZURvbWFpbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9kM1NjYWxlLmNvcHkoKS5kb21haW4odCkubmljZShlKS5kb21haW4oKX0sZX0pKEl2dC5RdWFudGl0YXRpdmVTY2FsZSk7TnZ0LkxpbmVhcj1WdnQ7dmFyIFV2dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoVXZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIganZ0PXVPLEd2dD1FZHQsV3Z0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPTEwKTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX2QzU2NhbGU9R3Z0LnNjYWxlTG9nKCkuYmFzZShlKSxuLl9zZXREb21haW4obi5fZGVmYXVsdEV4dGVudCgpKSxufXJldHVybiBqdnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2RlZmF1bHRFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm5bMSx0aGlzLl9kM1NjYWxlLmJhc2UoKV19LGUucHJvdG90eXBlLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gdFswXT09PXRbMV0/W3RbMF0vdGhpcy5fZDNTY2FsZS5iYXNlKCksdFsxXSp0aGlzLl9kM1NjYWxlLmJhc2UoKV06dH0sZS5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUodCl9LGUucHJvdG90eXBlLnNjYWxlVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2NhbGUodCl9LGUucHJvdG90eXBlLmludmVydGVkVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW52ZXJ0KHQpfSxlLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkV4dGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9nZXRVbmJvdW5kZWRFeHRlbnQoITApfSxlLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbWFpbigpfSxlLnByb3RvdHlwZS5zZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbih0KXt0aGlzLmRvbWFpbih0KX0sZS5wcm90b3R5cGUuX2dldERvbWFpbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9iYWNraW5nU2NhbGVEb21haW4oKX0sZS5wcm90b3R5cGUuX2JhY2tpbmdTY2FsZURvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9kM1NjYWxlLmRvbWFpbigpOih0aGlzLl9kM1NjYWxlLmRvbWFpbih0KSx0aGlzKX0sZS5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUucmFuZ2UoKX0sZS5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX2QzU2NhbGUucmFuZ2UodCl9LGUucHJvdG90eXBlLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5pbnZlcnQodCl9LGUucHJvdG90eXBlLmRlZmF1bHRUaWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnRpY2tzKGUuX0RFRkFVTFRfTlVNX1RJQ0tTKX0sZS5wcm90b3R5cGUuX25pY2VEb21haW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5jb3B5KCkuZG9tYWluKHQpLm5pY2UoKS5kb21haW4oKX0sZX0pKEl2dC5RdWFudGl0YXRpdmVTY2FsZSk7VXZ0LkxvZz1XdnQ7dmFyIHF2dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkocXZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgWXZ0PXVPLFh2dD1FZHQsJHZ0PUZndCxLdnQ9Wnl0LFp2dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2b2lkIDA9PT1lJiYoZT0xMCk7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO2lmKG4uX2xvZ1RpY2tHZW5lcmF0b3I9ZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24odCxlLG4pe3JldHVyblt0LGUsbl0uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpWzFdfSxpPSR2dC5NYXRoLm1pbihuLl91bnRyYW5zZm9ybWVkRG9tYWluLDApLHI9JHZ0Lk1hdGgubWF4KG4uX3VudHJhbnNmb3JtZWREb21haW4sMCksbz1pLGE9ZShpLHIsLW4uX3Bpdm90KSxzPWUoaSxyLG4uX3Bpdm90KSxsPXIsYz1uLl9sb2dUaWNrcygtYSwtbykubWFwKChmdW5jdGlvbih0KXtyZXR1cm4tdH0pKS5yZXZlcnNlKCksdT1uLl9sb2dUaWNrcyhzLGwpLGg9TWF0aC5tYXgoaSwtbi5fcGl2b3QpLGQ9TWF0aC5taW4ocixuLl9waXZvdCkscD1YdnQuc2NhbGVMaW5lYXIoKS5kb21haW4oW2gsZF0pLnRpY2tzKG4uX2hvd01hbnlUaWNrcyhoLGQpKSxmPWMuY29uY2F0KHApLmNvbmNhdCh1KTtyZXR1cm4gZi5sZW5ndGg8PTEmJihmPVh2dC5zY2FsZUxpbmVhcigpLmRvbWFpbihbaSxyXSkudGlja3MoS3Z0Lk1vZGlmaWVkTG9nLl9ERUZBVUxUX05VTV9USUNLUykpLGZ9LG4uX2QzU2NhbGU9WHZ0LnNjYWxlTGluZWFyKCksbi5fYmFzZT1lLG4uX3Bpdm90PW4uX2Jhc2Usbi5fc2V0RG9tYWluKG4uX2RlZmF1bHRFeHRlbnQoKSksbi50aWNrR2VuZXJhdG9yKG4uX2xvZ1RpY2tHZW5lcmF0b3IpLGU8PTEpdGhyb3cgbmV3IEVycm9yKCJNb2RpZmllZExvZ1NjYWxlOiBUaGUgYmFzZSBtdXN0IGJlID4gMSIpO3JldHVybiBufXJldHVybiBZdnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2FkanVzdGVkTG9nPWZ1bmN0aW9uKHQpe3ZhciBlPXQ8MD8tMToxO3JldHVybih0Kj1lKTx0aGlzLl9waXZvdCYmKHQrPSh0aGlzLl9waXZvdC10KS90aGlzLl9waXZvdCksKHQ9TWF0aC5sb2codCkvTWF0aC5sb2codGhpcy5fYmFzZSkpKmV9LGUucHJvdG90eXBlLl9pbnZlcnRlZEFkanVzdGVkTG9nPWZ1bmN0aW9uKHQpe3ZhciBlPXQ8MD8tMToxO3JldHVybiB0Kj1lLCh0PU1hdGgucG93KHRoaXMuX2Jhc2UsdCkpPHRoaXMuX3Bpdm90JiYodD10aGlzLl9waXZvdCoodC0xKS8odGhpcy5fcGl2b3QtMSkpLHQqZX0sZS5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUodGhpcy5fYWRqdXN0ZWRMb2codCkpfSxlLnByb3RvdHlwZS5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludmVydGVkQWRqdXN0ZWRMb2codGhpcy5fZDNTY2FsZS5pbnZlcnQodCkpfSxlLnByb3RvdHlwZS5zY2FsZVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNjYWxlKHQpfSxlLnByb3RvdHlwZS5pbnZlcnRlZFRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmludmVydCh0KX0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25FeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZ2V0VW5ib3VuZGVkRXh0ZW50KCEwKX0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21haW4oKX0sZS5wcm90b3R5cGUuc2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24odCl7dGhpcy5kb21haW4odCl9LGUucHJvdG90eXBlLl9nZXREb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdW50cmFuc2Zvcm1lZERvbWFpbn0sZS5wcm90b3R5cGUuX3NldERvbWFpbj1mdW5jdGlvbihlKXt0aGlzLl91bnRyYW5zZm9ybWVkRG9tYWluPWU7dmFyIG49W3RoaXMuX2FkanVzdGVkTG9nKGVbMF0pLHRoaXMuX2FkanVzdGVkTG9nKGVbMV0pXTt0LnByb3RvdHlwZS5fc2V0RG9tYWluLmNhbGwodGhpcyxuKX0sZS5wcm90b3R5cGUuX2JhY2tpbmdTY2FsZURvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9kM1NjYWxlLmRvbWFpbigpOih0aGlzLl9kM1NjYWxlLmRvbWFpbih0KSx0aGlzKX0sZS5wcm90b3R5cGUuX2xvZ1RpY2tzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxpPXRoaXMuX2hvd01hbnlUaWNrcyh0LGUpO2lmKDA9PT1pKXJldHVybltdO3ZhciByPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5sb2codGhpcy5fYmFzZSkpLG89TWF0aC5jZWlsKE1hdGgubG9nKGUpL01hdGgubG9nKHRoaXMuX2Jhc2UpKSxhPVh2dC5yYW5nZShvLHIsLU1hdGguY2VpbCgoby1yKS9pKSkscz1YdnQucmFuZ2UodGhpcy5fYmFzZSwxLC0odGhpcy5fYmFzZS0xKSkubWFwKE1hdGguZmxvb3IpLGw9JHZ0LkFycmF5LnVuaXEocyksYz1hLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGwubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3cobi5fYmFzZSx0LTEpKmV9KSl9KSk7cmV0dXJuICR2dC5BcnJheS5mbGF0dGVuKGMpLmZpbHRlcigoZnVuY3Rpb24obil7cmV0dXJuIHQ8PW4mJm48PWV9KSkuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpfSxlLnByb3RvdHlwZS5faG93TWFueVRpY2tzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYWRqdXN0ZWRMb2coJHZ0Lk1hdGgubWluKHRoaXMuX3VudHJhbnNmb3JtZWREb21haW4sMCkpLGk9dGhpcy5fYWRqdXN0ZWRMb2coJHZ0Lk1hdGgubWF4KHRoaXMuX3VudHJhbnNmb3JtZWREb21haW4sMCkpLHI9dGhpcy5fYWRqdXN0ZWRMb2codCksbz10aGlzLl9hZGp1c3RlZExvZyhlKTtyZXR1cm4gTWF0aC5jZWlsKChvLXIpLyhpLW4pKkt2dC5Nb2RpZmllZExvZy5fREVGQVVMVF9OVU1fVElDS1MpfSxlLnByb3RvdHlwZS5fbmljZURvbWFpbj1mdW5jdGlvbih0LGUpe3JldHVybiB0fSxlLnByb3RvdHlwZS5fZGVmYXVsdEV4dGVudD1mdW5jdGlvbigpe3JldHVyblswLHRoaXMuX2Jhc2VdfSxlLnByb3RvdHlwZS5fZXhwYW5kU2luZ2xlVmFsdWVEb21haW49ZnVuY3Rpb24odCl7aWYodFswXT09PXRbMV0pe3ZhciBlPXRbMF07cmV0dXJuIGU+MD9bZS90aGlzLl9iYXNlLGUqdGhpcy5fYmFzZV06MD09PWU/Wy10aGlzLl9iYXNlLHRoaXMuX2Jhc2VdOltlKnRoaXMuX2Jhc2UsZS90aGlzLl9iYXNlXX1yZXR1cm4gdH0sZS5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUucmFuZ2UoKX0sZS5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX2QzU2NhbGUucmFuZ2UodCl9LGUucHJvdG90eXBlLmRlZmF1bHRUaWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnRpY2tzKEt2dC5Nb2RpZmllZExvZy5fREVGQVVMVF9OVU1fVElDS1MpfSxlfSkoSXZ0LlF1YW50aXRhdGl2ZVNjYWxlKTtxdnQuTW9kaWZpZWRMb2c9WnZ0O3ZhciBKdnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEp2dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFF2dD11Tyx0YnQ9RWR0LGVidD1LeXQsbmJ0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9kM1NjYWxlPXRidC5zY2FsZVRpbWUoKSxlLmF1dG9Eb21haW4oKSxlfXJldHVybiBRdnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUudGlja0ludGVydmFsPWZ1bmN0aW9uKHQsbixpKXt2b2lkIDA9PT1uJiYobj0xKSx2b2lkIDA9PT1pJiYoaT0hMSk7dmFyIHI9dGJ0LnNjYWxlVGltZSgpLG89ZS50aW1lSW50ZXJ2YWxUb0QzVGltZSh0LGkpLmV2ZXJ5KG4pO3JldHVybiByLmRvbWFpbih0aGlzLmRvbWFpbigpKSxyLnJhbmdlKHRoaXMucmFuZ2UoKSksci50aWNrcyhvKX0sZS5wcm90b3R5cGUuX3NldERvbWFpbj1mdW5jdGlvbihlKXtpZihlWzFdPGVbMF0pdGhyb3cgbmV3IEVycm9yKCJTY2FsZS5UaW1lIGRvbWFpbiB2YWx1ZXMgbXVzdCBiZSBpbiBjaHJvbm9sb2dpY2FsIG9yZGVyIik7cmV0dXJuIHQucHJvdG90eXBlLl9zZXREb21haW4uY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5fZGVmYXVsdEV4dGVudD1mdW5jdGlvbigpe3JldHVybltuZXcgRGF0ZSgiMTk3MC0wMS0wMSIpLG5ldyBEYXRlKCIxOTcwLTAxLTAyIildfSxlLnByb3RvdHlwZS5fZXhwYW5kU2luZ2xlVmFsdWVEb21haW49ZnVuY3Rpb24odCl7dmFyIGU9dFswXS5nZXRUaW1lKCksbj10WzFdLmdldFRpbWUoKTtpZihlPT09bil7dmFyIGk9bmV3IERhdGUoZSk7aS5zZXREYXRlKGkuZ2V0RGF0ZSgpLTEpO3ZhciByPW5ldyBEYXRlKG4pO3JldHVybiByLnNldERhdGUoci5nZXREYXRlKCkrMSksW2kscl19cmV0dXJuIHR9LGUucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1NjYWxlKHQpfSxlLnByb3RvdHlwZS5zY2FsZVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNjYWxlKG5ldyBEYXRlKHQpKX0sZS5wcm90b3R5cGUuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnZlcnQodCkuZ2V0VGltZSgpfSxlLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkV4dGVudD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldFVuYm91bmRlZEV4dGVudCghMCk7cmV0dXJuW3RbMF0udmFsdWVPZigpLHRbMV0udmFsdWVPZigpXX0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmRvbWFpbigpO3JldHVyblt0WzBdLnZhbHVlT2YoKSx0WzFdLnZhbHVlT2YoKV19LGUucHJvdG90eXBlLnNldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMV07dGhpcy5kb21haW4oW25ldyBEYXRlKHRbMF0pLG5ldyBEYXRlKGUpXSl9LGUucHJvdG90eXBlLl9nZXREb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKCl9LGUucHJvdG90eXBlLl9iYWNraW5nU2NhbGVEb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZDNTY2FsZS5kb21haW4oKToodGhpcy5fZDNTY2FsZS5kb21haW4odCksdGhpcyl9LGUucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnJhbmdlKCl9LGUucHJvdG90eXBlLl9zZXRSYW5nZT1mdW5jdGlvbih0KXt0aGlzLl9kM1NjYWxlLnJhbmdlKHQpfSxlLnByb3RvdHlwZS5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUuaW52ZXJ0KHQpfSxlLnByb3RvdHlwZS5kZWZhdWx0VGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS50aWNrcyhlLl9ERUZBVUxUX05VTV9USUNLUyl9LGUucHJvdG90eXBlLl9uaWNlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1NjYWxlLmNvcHkoKS5kb21haW4odCkubmljZSgpLmRvbWFpbigpfSxlLnRpbWVJbnRlcnZhbFRvRDNUaW1lPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQpe2Nhc2UgZWJ0LlRpbWVJbnRlcnZhbC5zZWNvbmQ6cmV0dXJuIGU/dGJ0LnV0Y1NlY29uZDp0YnQudGltZVNlY29uZDtjYXNlIGVidC5UaW1lSW50ZXJ2YWwubWludXRlOnJldHVybiBlP3RidC51dGNNaW51dGU6dGJ0LnRpbWVNaW51dGU7Y2FzZSBlYnQuVGltZUludGVydmFsLmhvdXI6cmV0dXJuIGU/dGJ0LnV0Y0hvdXI6dGJ0LnRpbWVIb3VyO2Nhc2UgZWJ0LlRpbWVJbnRlcnZhbC5kYXk6cmV0dXJuIGU/dGJ0LnV0Y0RheTp0YnQudGltZURheTtjYXNlIGVidC5UaW1lSW50ZXJ2YWwud2VlazpyZXR1cm4gZT90YnQudXRjV2Vlazp0YnQudGltZVdlZWs7Y2FzZSBlYnQuVGltZUludGVydmFsLm1vbnRoOnJldHVybiBlP3RidC51dGNNb250aDp0YnQudGltZU1vbnRoO2Nhc2UgZWJ0LlRpbWVJbnRlcnZhbC55ZWFyOnJldHVybiBlP3RidC51dGNZZWFyOnRidC50aW1lWWVhcjtkZWZhdWx0OnRocm93IEVycm9yKCJUaW1lSW50ZXJ2YWwgc3BlY2lmaWVkIGRvZXMgbm90IGV4aXN0OiAiK3QpfX0sZX0pKEl2dC5RdWFudGl0YXRpdmVTY2FsZSk7SnZ0LlRpbWU9bmJ0LChmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXVPO3QuVGlja0dlbmVyYXRvcnM9Snl0LGUuX19leHBvcnRTdGFyKG52dCx0KSxlLl9fZXhwb3J0U3RhcihidnQsdCksZS5fX2V4cG9ydFN0YXIoQ3Z0LHQpLGUuX19leHBvcnRTdGFyKE52dCx0KSxlLl9fZXhwb3J0U3RhcihVdnQsdCksZS5fX2V4cG9ydFN0YXIocXZ0LHQpLGUuX19leHBvcnRTdGFyKEp2dCx0KTt2YXIgbj1udnQsaT1JdnQ7dC5pc1RyYW5zZm9ybWFibGU9ZnVuY3Rpb24gcih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGkuUXVhbnRpdGF0aXZlU2NhbGV8fHQgaW5zdGFuY2VvZiBuLkNhdGVnb3J5fX0pKFp5dCksKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU8sbj1FZHQsaT1JbXQscj1neXQsbz1aeXQsYT1GZ3Qscz1TbXQsbD1teXQ7dC5UaW1lSW50ZXJ2YWw9cy5tYWtlRW51bShbInNlY29uZCIsIm1pbnV0ZSIsImhvdXIiLCJkYXkiLCJ3ZWVrIiwibW9udGgiLCJ5ZWFyIl0pLHQuVGltZUF4aXNPcmllbnRhdGlvbj1zLm1ha2VFbnVtKFsidG9wIiwiYm90dG9tIl0pLHQuVGllckxhYmVsUG9zaXRpb249cy5tYWtlRW51bShbImJldHdlZW4iLCJjZW50ZXIiXSk7dmFyIGMsdT0oZnVuY3Rpb24ocyl7ZnVuY3Rpb24gdSh0LGUsbil7dmFyIGk9cy5jYWxsKHRoaXMsdCxlKXx8dGhpcztyZXR1cm4gaS5fbWF4VGltZUludGVydmFsUHJlY2lzaW9uPW51bGwsaS5fdGllckxhYmVsUG9zaXRpb25zPVtdLGkuX3VzZVVUQz1uLGkuYWRkQ2xhc3MoInRpbWUtYXhpcyIpLGkudGlja0xhYmVsUGFkZGluZyg1KSxpLmF4aXNDb25maWd1cmF0aW9ucyh1Ll9ERUZBVUxUX1RJTUVfQVhJU19DT05GSUdVUkFUSU9OUyhpLl91c2VVVEMpKSxpLmFubm90YXRpb25Gb3JtYXR0ZXIoci50aW1lKCIlYSAlYiAlZCwgJVkiLGkuX3VzZVVUQykpLGl9cmV0dXJuIGUuX19leHRlbmRzKHUscyksdS5wcm90b3R5cGUudGllckxhYmVsUG9zaXRpb25zPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3RpZXJMYWJlbFBvc2l0aW9ucztpZighdC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuImJldHdlZW4iPT09dC50b0xvd2VyQ2FzZSgpfHwiY2VudGVyIj09PXQudG9Mb3dlckNhc2UoKX0pKSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHBvc2l0aW9uIGZvciB0aWVyIGxhYmVscyIpO3JldHVybiB0aGlzLl90aWVyTGFiZWxQb3NpdGlvbnM9dCx0aGlzLnJlZHJhdygpLHRoaXN9LHUucHJvdG90eXBlLm1heFRpbWVJbnRlcnZhbFByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9tYXhUaW1lSW50ZXJ2YWxQcmVjaXNpb246KHRoaXMuX21heFRpbWVJbnRlcnZhbFByZWNpc2lvbj10LHRoaXMucmVkcmF3KCksdGhpcyl9LHUucHJvdG90eXBlLmN1cnJlbnRBeGlzQ29uZmlndXJhdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnNbdGhpcy5fbW9zdFByZWNpc2VDb25maWdJbmRleF19LHUucHJvdG90eXBlLmF4aXNDb25maWd1cmF0aW9ucz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnM7dGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zPXQsdGhpcy5fbnVtVGllcnM9YS5NYXRoLm1heCh0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGh9KSksMCksdGhpcy5faXNBbmNob3JlZCYmdGhpcy5fc2V0dXBEb21FbGVtZW50cygpO2Zvcih2YXIgZT10aGlzLnRpZXJMYWJlbFBvc2l0aW9ucygpLG49W10saT0wO2k8dGhpcy5fbnVtVGllcnM7aSsrKW4ucHVzaChlW2ldfHwiYmV0d2VlbiIpO3JldHVybiB0aGlzLnRpZXJMYWJlbFBvc2l0aW9ucyhuKSx0aGlzLnJlZHJhdygpLHRoaXN9LHUucHJvdG90eXBlLl9nZXRNb3N0UHJlY2lzZUNvbmZpZ3VyYXRpb25JbmRleD1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnMubGVuZ3RoO3JldHVybiB0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24obixpKXtpPGUmJm4uZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9jaGVja1RpbWVBeGlzVGllckNvbmZpZ3VyYXRpb24oZSl9KSkmJihlPWkpfSkpLGU9PT10aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnMubGVuZ3RoJiYoYS5XaW5kb3cud2Fybigiem9vbWVkIG91dCB0b28gZmFyOiBjb3VsZCBub3QgZmluZCBzdWl0YWJsZSBpbnRlcnZhbCB0byBkaXNwbGF5IGxhYmVscyIpLC0tZSksZX0sdS5wcm90b3R5cGUub3JpZW50YXRpb249ZnVuY3Rpb24odCl7aWYodCYmKCJyaWdodCI9PT10LnRvTG93ZXJDYXNlKCl8fCJsZWZ0Ij09PXQudG9Mb3dlckNhc2UoKSkpdGhyb3cgbmV3IEVycm9yKHQrIiBpcyBub3QgYSBzdXBwb3J0ZWQgb3JpZW50YXRpb24gZm9yIFRpbWVBeGlzIC0gb25seSBob3Jpem9udGFsIG9yaWVudGF0aW9ucyBhcmUgc3VwcG9ydGVkIik7cmV0dXJuIHMucHJvdG90eXBlLm9yaWVudGF0aW9uLmNhbGwodGhpcyx0KX0sdS5wcm90b3R5cGUuX2NvbXB1dGVIZWlnaHQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0O3RoaXMuX3RpZXJIZWlnaHRzPVtdO2Zvcih2YXIgZT0wO2U8dGhpcy5fbnVtVGllcnM7ZSsrKXRoaXMuX3RpZXJIZWlnaHRzLnB1c2godCt0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKSsoImJldHdlZW4iPT09dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2VdPzA6dGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCkpKTtyZXR1cm4gbi5zdW0odGhpcy5fdGllckhlaWdodHMpfSx1LnByb3RvdHlwZS5fZ2V0SW50ZXJ2YWxMZW5ndGg9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fc2NhbGUuZG9tYWluKClbMF0sbj1vLlRpbWUudGltZUludGVydmFsVG9EM1RpbWUodC5pbnRlcnZhbCx0aGlzLl91c2VVVEMpLm9mZnNldChlLHQuc3RlcCk7cmV0dXJuIG4+dGhpcy5fc2NhbGUuZG9tYWluKClbMV0/dGhpcy53aWR0aCgpOk1hdGguYWJzKHRoaXMuX3NjYWxlLnNjYWxlKG4pLXRoaXMuX3NjYWxlLnNjYWxlKGUpKX0sdS5wcm90b3R5cGUuX21heFdpZHRoRm9ySW50ZXJ2YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21lYXN1cmVyLm1lYXN1cmUodC5mb3JtYXR0ZXIodS5fTE9OR19EQVRFKSkud2lkdGh9LHUucHJvdG90eXBlLl9jaGVja1RpbWVBeGlzVGllckNvbmZpZ3VyYXRpb249ZnVuY3Rpb24odCl7aWYobnVsbCE9dGhpcy5fbWF4VGltZUludGVydmFsUHJlY2lzaW9uKXt2YXIgZT11Ll9TT1JURURfVElNRV9JTlRFUlZBTF9JTkRFWFt0aGlzLl9tYXhUaW1lSW50ZXJ2YWxQcmVjaXNpb25dLG49dS5fU09SVEVEX1RJTUVfSU5URVJWQUxfSU5ERVhbdC5pbnRlcnZhbF07aWYobnVsbCE9ZSYmbnVsbCE9biYmbjxlKXJldHVybiExfXZhciBpPXRoaXMuX21heFdpZHRoRm9ySW50ZXJ2YWwodCkrMip0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKTtyZXR1cm4gTWF0aC5taW4odGhpcy5fZ2V0SW50ZXJ2YWxMZW5ndGgodCksdGhpcy53aWR0aCgpKT49aX0sdS5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj1zLnByb3RvdHlwZS5fc2l6ZUZyb21PZmZlci5jYWxsKHRoaXMsdCxlKSxpPXRoaXMuX3RpZXJIZWlnaHRzLnJlZHVjZSgoZnVuY3Rpb24odCxlLGkscil7cmV0dXJuIHQrZT5uLmhlaWdodD90OnQrZX0pKSxyPXRoaXMubWFyZ2luKCkrKHRoaXMuYW5ub3RhdGlvbnNFbmFibGVkKCk/dGhpcy5hbm5vdGF0aW9uVGllckNvdW50KCkqdGhpcy5fYW5ub3RhdGlvblRpZXJIZWlnaHQoKTowKTtyZXR1cm4gbi5oZWlnaHQ9TWF0aC5taW4obi5oZWlnaHQsaStyKSxufSx1LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXtzLnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9zZXR1cERvbUVsZW1lbnRzKCl9LHUucHJvdG90eXBlLl9zZXR1cERvbUVsZW1lbnRzPWZ1bmN0aW9uKCl7dGhpcy5jb250ZW50KCkuc2VsZWN0QWxsKCIuIit1LlRJTUVfQVhJU19USUVSX0NMQVNTKS5yZW1vdmUoKSx0aGlzLl90aWVyTGFiZWxDb250YWluZXJzPVtdLHRoaXMuX3RpZXJNYXJrQ29udGFpbmVycz1bXSx0aGlzLl90aWVyQmFzZWxpbmVzPVtdLHRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5yZW1vdmUoKSx0aGlzLl9iYXNlbGluZS5yZW1vdmUoKTtmb3IodmFyIHQ9MDt0PHRoaXMuX251bVRpZXJzOysrdCl7dmFyIGU9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCh1LlRJTUVfQVhJU19USUVSX0NMQVNTLCEwKTt0aGlzLl90aWVyTGFiZWxDb250YWluZXJzLnB1c2goZS5hcHBlbmQoImciKS5jbGFzc2VkKGwuQXhpcy5USUNLX0xBQkVMX0NMQVNTKyItY29udGFpbmVyIiwhMCkpLHRoaXMuX3RpZXJNYXJrQ29udGFpbmVycy5wdXNoKGUuYXBwZW5kKCJnIikuY2xhc3NlZChsLkF4aXMuVElDS19NQVJLX0NMQVNTKyItY29udGFpbmVyIiwhMCkpLHRoaXMuX3RpZXJCYXNlbGluZXMucHVzaChlLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImJhc2VsaW5lIiwhMCkpfXZhciBuPW5ldyBpLlN2Z0NvbnRleHQodGhpcy5fdGllckxhYmVsQ29udGFpbmVyc1swXS5ub2RlKCkpO3RoaXMuX21lYXN1cmVyPW5ldyBpLkNhY2hlTWVhc3VyZXIobil9LHUucHJvdG90eXBlLl9nZXRUaWNrSW50ZXJ2YWxWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3NjYWxlLnRpY2tJbnRlcnZhbCh0LmludGVydmFsLHQuc3RlcCx0aGlzLl91c2VVVEMpfSx1LnByb3RvdHlwZS5fZ2V0VGlja1ZhbHVlcz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3Bvc3NpYmxlVGltZUF4aXNDb25maWd1cmF0aW9uc1t0aGlzLl9tb3N0UHJlY2lzZUNvbmZpZ0luZGV4XS5yZWR1Y2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIGUuY29uY2F0KHQuX2dldFRpY2tJbnRlcnZhbFZhbHVlcyhuKSl9KSxbXSl9LHUucHJvdG90eXBlLl9jbGVhblRpZXJzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDx0aGlzLl90aWVyTGFiZWxDb250YWluZXJzLmxlbmd0aDt0KyspdGhpcy5fdGllckxhYmVsQ29udGFpbmVyc1t0XS5zZWxlY3RBbGwoIi4iK2wuQXhpcy5USUNLX0xBQkVMX0NMQVNTKS5yZW1vdmUoKSx0aGlzLl90aWVyTWFya0NvbnRhaW5lcnNbdF0uc2VsZWN0QWxsKCIuIitsLkF4aXMuVElDS19NQVJLX0NMQVNTKS5yZW1vdmUoKSx0aGlzLl90aWVyQmFzZWxpbmVzW3RdLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9LHUucHJvdG90eXBlLl9nZXRUaWNrVmFsdWVzRm9yQ29uZmlndXJhdGlvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9zY2FsZS50aWNrSW50ZXJ2YWwodC5pbnRlcnZhbCx0LnN0ZXAsdGhpcy5fdXNlVVRDKSxuPXRoaXMuX3NjYWxlLmRvbWFpbigpLGk9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlT2YoKX0pKTtyZXR1cm4tMT09PWkuaW5kZXhPZihuWzBdLnZhbHVlT2YoKSkmJmUudW5zaGlmdChuWzBdKSwtMT09PWkuaW5kZXhPZihuWzFdLnZhbHVlT2YoKSkmJmUucHVzaChuWzFdKSxlfSx1LnByb3RvdHlwZS5fcmVuZGVyVGllckxhYmVscz1mdW5jdGlvbih0LGUsaSl7dmFyIHI9dGhpcyxvPXRoaXMuX2dldFRpY2tWYWx1ZXNGb3JDb25maWd1cmF0aW9uKGUpLGE9W107ImJldHdlZW4iPT09dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2ldJiYxPT09ZS5zdGVwP28ubWFwKChmdW5jdGlvbih0LGUpe2UrMT49by5sZW5ndGh8fGEucHVzaChuZXcgRGF0ZSgob1tlKzFdLnZhbHVlT2YoKS1vW2VdLnZhbHVlT2YoKSkvMitvW2VdLnZhbHVlT2YoKSkpfSkpOmE9bzt2YXIgcz10LnNlbGVjdEFsbCgiLiIrbC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpLmRhdGEoYSwoZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0LnZhbHVlT2YoKSl9KSksYz1zLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChsLkF4aXMuVElDS19MQUJFTF9DTEFTUywhMCk7Yy5hcHBlbmQoInRleHQiKTt2YXIgdSxoPSJjZW50ZXIiPT09dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2ldfHwxPT09ZS5zdGVwPzA6dGhpcy50aWNrTGFiZWxQYWRkaW5nKCk7dT0iYm90dG9tIj09PXRoaXMub3JpZW50YXRpb24oKT9uLnN1bSh0aGlzLl90aWVySGVpZ2h0cy5zbGljZSgwLGkrMSkpLXRoaXMudGlja0xhYmVsUGFkZGluZygpOiJjZW50ZXIiPT09dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2ldP3RoaXMuaGVpZ2h0KCktbi5zdW0odGhpcy5fdGllckhlaWdodHMuc2xpY2UoMCxpKSktdGhpcy50aWNrTGFiZWxQYWRkaW5nKCktdGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCk6dGhpcy5oZWlnaHQoKS1uLnN1bSh0aGlzLl90aWVySGVpZ2h0cy5zbGljZSgwLGkpKS10aGlzLnRpY2tMYWJlbFBhZGRpbmcoKTt2YXIgZD1zLm1lcmdlKGMpLHA9ZC5zZWxlY3RBbGwoInRleHQiKTtwLnNpemUoKT4wJiZwLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2grIiwiK3UrIikiKSxzLmV4aXQoKS5yZW1vdmUoKSxkLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiJ0cmFuc2xhdGUoIityLl9zY2FsZS5zY2FsZSh0KSsiLDApIn0pKTt2YXIgZj0iY2VudGVyIj09PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tpXXx8MT09PWUuc3RlcD8ibWlkZGxlIjoic3RhcnQiO2Quc2VsZWN0QWxsKCJ0ZXh0IikudGV4dChlLmZvcm1hdHRlcikuc3R5bGUoInRleHQtYW5jaG9yIixmKX0sdS5wcm90b3R5cGUuX3JlbmRlclRpY2tNYXJrcz1mdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuX3RpZXJNYXJrQ29udGFpbmVyc1tlXS5zZWxlY3RBbGwoIi4iK2wuQXhpcy5USUNLX01BUktfQ0xBU1MpLmRhdGEodCkscj1pLmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZChsLkF4aXMuVElDS19NQVJLX0NMQVNTLCEwKS5tZXJnZShpKSxvPXRoaXMuX2dlbmVyYXRlVGlja01hcmtBdHRySGFzaCgpLGE9dGhpcy5fdGllckhlaWdodHMuc2xpY2UoMCxlKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pLDApOyJib3R0b20iPT09dGhpcy5vcmllbnRhdGlvbigpPyhvLnkxPWEsby55Mj1hKygiY2VudGVyIj09PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tlXT90aGlzLmlubmVyVGlja0xlbmd0aCgpOnRoaXMuX3RpZXJIZWlnaHRzW2VdKSk6KG8ueTE9dGhpcy5oZWlnaHQoKS1hLG8ueTI9dGhpcy5oZWlnaHQoKS0oYSsoImNlbnRlciI9PT10aGlzLl90aWVyTGFiZWxQb3NpdGlvbnNbZV0/dGhpcy5pbm5lclRpY2tMZW5ndGgoKTp0aGlzLl90aWVySGVpZ2h0c1tlXSkpKSxyLmF0dHJzKG8pLCJib3R0b20iPT09dGhpcy5vcmllbnRhdGlvbigpPyhvLnkxPWEsby55Mj1hKygiY2VudGVyIj09PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tlXT90aGlzLmVuZFRpY2tMZW5ndGgoKTp0aGlzLl90aWVySGVpZ2h0c1tlXSkpOihvLnkxPXRoaXMuaGVpZ2h0KCktYSxvLnkyPXRoaXMuaGVpZ2h0KCktKGErKCJjZW50ZXIiPT09dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2VdP3RoaXMuZW5kVGlja0xlbmd0aCgpOnRoaXMuX3RpZXJIZWlnaHRzW2VdKSkpLG4uc2VsZWN0KHIubm9kZXMoKVswXSkuYXR0cnMobyksbi5zZWxlY3Qoci5ub2RlcygpW3Iuc2l6ZSgpLTFdKS5hdHRycyhvKSxuLnNlbGVjdChyLm5vZGVzKClbMF0pLmNsYXNzZWQobC5BeGlzLkVORF9USUNLX01BUktfQ0xBU1MsITApLG4uc2VsZWN0KHIubm9kZXMoKVtyLnNpemUoKS0xXSkuY2xhc3NlZChsLkF4aXMuRU5EX1RJQ0tfTUFSS19DTEFTUywhMCksaS5leGl0KCkucmVtb3ZlKCl9LHUucHJvdG90eXBlLl9yZW5kZXJMYWJlbGxlc3NUaWNrTWFya3M9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGlja01hcmtDb250YWluZXIuc2VsZWN0QWxsKCIuIitsLkF4aXMuVElDS19NQVJLX0NMQVNTKS5kYXRhKHQpLG49ZS5lbnRlcigpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQobC5BeGlzLlRJQ0tfTUFSS19DTEFTUywhMCkubWVyZ2UoZSksaT10aGlzLl9nZW5lcmF0ZVRpY2tNYXJrQXR0ckhhc2goKTtpLnkyPSJib3R0b20iPT09dGhpcy5vcmllbnRhdGlvbigpP3RoaXMudGlja0xhYmVsUGFkZGluZygpOnRoaXMuaGVpZ2h0KCktdGhpcy50aWNrTGFiZWxQYWRkaW5nKCksbi5hdHRycyhpKSxlLmV4aXQoKS5yZW1vdmUoKX0sdS5wcm90b3R5cGUuX2dlbmVyYXRlTGFiZWxsZXNzVGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbW9zdFByZWNpc2VDb25maWdJbmRleDwxP1tdOnRoaXMuX2dldFRpY2tJbnRlcnZhbFZhbHVlcyh0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnNbdGhpcy5fbW9zdFByZWNpc2VDb25maWdJbmRleC0xXVswXSl9LHUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9tb3N0UHJlY2lzZUNvbmZpZ0luZGV4PXRoaXMuX2dldE1vc3RQcmVjaXNlQ29uZmlndXJhdGlvbkluZGV4KCk7dmFyIGU9dGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zW3RoaXMuX21vc3RQcmVjaXNlQ29uZmlnSW5kZXhdO3RoaXMuX2NsZWFuVGllcnMoKSxlLmZvckVhY2goKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQuX3JlbmRlclRpZXJMYWJlbHModC5fdGllckxhYmVsQ29udGFpbmVyc1tuXSxlLG4pfSkpO2Zvcih2YXIgbj1lLm1hcCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5fZ2V0VGlja1ZhbHVlc0ZvckNvbmZpZ3VyYXRpb24oZSl9KSksaT0wLHI9MDtyPE1hdGgubWF4KGUubGVuZ3RoLDEpOysrcil7dmFyIG89dGhpcy5fZ2VuZXJhdGVCYXNlbGluZUF0dHJIYXNoKCk7by55MSs9ImJvdHRvbSI9PT10aGlzLm9yaWVudGF0aW9uKCk/aTotaSxvLnkyPW8ueTEsdGhpcy5fdGllckJhc2VsaW5lc1tyXS5hdHRycyhvKS5zdHlsZSgidmlzaWJpbGl0eSIsImluaGVyaXQiKSxpKz10aGlzLl90aWVySGVpZ2h0c1tyXX12YXIgYT1bXSxzPXRoaXMuX3NjYWxlLmRvbWFpbigpLGw9dGhpcy5fc2NhbGUuc2NhbGUoc1sxXSktdGhpcy5fc2NhbGUuc2NhbGUoc1swXSk7Zm9yKDEuNSp0aGlzLl9nZXRJbnRlcnZhbExlbmd0aChlWzBdKT49bCYmKGE9dGhpcy5fZ2VuZXJhdGVMYWJlbGxlc3NUaWNrcygpKSx0aGlzLl9yZW5kZXJMYWJlbGxlc3NUaWNrTWFya3MoYSksdGhpcy5faGlkZU92ZXJmbG93aW5nVGllcnMoKSxyPTA7cjxlLmxlbmd0aDsrK3IpdGhpcy5fcmVuZGVyVGlja01hcmtzKG5bcl0sciksdGhpcy5faGlkZU92ZXJsYXBwaW5nQW5kQ3V0T2ZmTGFiZWxzKHIpO3JldHVybiB0aGlzLmFubm90YXRpb25zRW5hYmxlZCgpP3RoaXMuX2RyYXdBbm5vdGF0aW9ucygpOnRoaXMuX3JlbW92ZUFubm90YXRpb25zKCksdGhpc30sdS5wcm90b3R5cGUuX2hpZGVPdmVyZmxvd2luZ1RpZXJzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuaGVpZ2h0KCksbj0wO3RoaXMuY29udGVudCgpLnNlbGVjdEFsbCgiLiIrdS5USU1FX0FYSVNfVElFUl9DTEFTUykuYXR0cigidmlzaWJpbGl0eSIsKGZ1bmN0aW9uKGkscil7cmV0dXJuKG4rPXQuX3RpZXJIZWlnaHRzW3JdKTw9ZT8iaW5oZXJpdCI6ImhpZGRlbiJ9KSl9LHUucHJvdG90eXBlLl9oaWRlT3ZlcmxhcHBpbmdBbmRDdXRPZmZMYWJlbHM9ZnVuY3Rpb24odCl7dmFyIGUsaT10aGlzLHI9dGhpcy5lbGVtZW50KCkubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dGhpcy5fdGllck1hcmtDb250YWluZXJzW3RdLnNlbGVjdEFsbCgiLiIrbC5BeGlzLlRJQ0tfTUFSS19DTEFTUykuZmlsdGVyKChmdW5jdGlvbih0LGUpe3ZhciBpPW4uc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5Iik7cmV0dXJuInZpc2libGUiPT09aXx8ImluaGVyaXQiPT09aX0pKS5ub2RlcygpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9KSk7dGhpcy5fdGllckxhYmVsQ29udGFpbmVyc1t0XS5zZWxlY3RBbGwoIi4iK2wuQXhpcy5USUNLX0xBQkVMX0NMQVNTKS5maWx0ZXIoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9bi5zZWxlY3QodGhpcykuc3R5bGUoInZpc2liaWxpdHkiKTtyZXR1cm4idmlzaWJsZSI9PT1pfHwiaW5oZXJpdCI9PT1pfSkpLmVhY2goKGZ1bmN0aW9uKHQscyl7dmFyIGwsYz10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9bi5zZWxlY3QodGhpcyksaD1vW3NdLGQ9b1tzKzFdLHA9bnVsbCE9ZSYmYS5ET00uY2xpZW50UmVjdHNPdmVybGFwKGMsZSksZj1udWxsIT1oJiZhLkRPTS5jbGllbnRSZWN0c092ZXJsYXAoYyxoKSxtPW51bGwhPWQmJmEuRE9NLmNsaWVudFJlY3RzT3ZlcmxhcChjLGQpO2w9YywhKE1hdGguZmxvb3Ioci5sZWZ0KTw9TWF0aC5jZWlsKGwubGVmdCkmJk1hdGguZmxvb3Ioci50b3ApPD1NYXRoLmNlaWwobC50b3ApJiZNYXRoLmZsb29yKGwucmlnaHQpPD1NYXRoLmNlaWwoci5sZWZ0K2kud2lkdGgoKSkmJk1hdGguZmxvb3IobC5ib3R0b20pPD1NYXRoLmNlaWwoci50b3AraS5oZWlnaHQoKSkpfHxwfHxmfHxtP3Uuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKTooZT1jLHUuc3R5bGUoInZpc2liaWxpdHkiLCJpbmhlcml0IikpfSkpfSx1LnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGU9ZnVuY3Rpb24oKXtzLnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGUuY2FsbCh0aGlzKSx0aGlzLl9tZWFzdXJlci5yZXNldCgpfSx1LlRJTUVfQVhJU19USUVSX0NMQVNTPSJ0aW1lLWF4aXMtdGllciIsdS5fU09SVEVEX1RJTUVfSU5URVJWQUxfSU5ERVg9KChjPXt9KVt0LlRpbWVJbnRlcnZhbC5zZWNvbmRdPTAsY1t0LlRpbWVJbnRlcnZhbC5taW51dGVdPTEsY1t0LlRpbWVJbnRlcnZhbC5ob3VyXT0yLGNbdC5UaW1lSW50ZXJ2YWwuZGF5XT0zLGNbdC5UaW1lSW50ZXJ2YWwud2Vla109NCxjW3QuVGltZUludGVydmFsLm1vbnRoXT01LGNbdC5UaW1lSW50ZXJ2YWwueWVhcl09NixjKSx1Ll9ERUZBVUxUX1RJTUVfQVhJU19DT05GSUdVUkFUSU9OUz1mdW5jdGlvbihlKXt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4gci50aW1lKHQsZSl9O3JldHVybltbe2ludGVydmFsOnQuVGltZUludGVydmFsLnNlY29uZCxzdGVwOjEsZm9ybWF0dGVyOm4oIiVJOiVNOiVTICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuc2Vjb25kLHN0ZXA6NSxmb3JtYXR0ZXI6bigiJUk6JU06JVMgJXAiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5zZWNvbmQsc3RlcDoxMCxmb3JtYXR0ZXI6bigiJUk6JU06JVMgJXAiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5zZWNvbmQsc3RlcDoxNSxmb3JtYXR0ZXI6bigiJUk6JU06JVMgJXAiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5zZWNvbmQsc3RlcDozMCxmb3JtYXR0ZXI6bigiJUk6JU06JVMgJXAiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5taW51dGUsc3RlcDoxLGZvcm1hdHRlcjpuKCIlSTolTSAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLm1pbnV0ZSxzdGVwOjUsZm9ybWF0dGVyOm4oIiVJOiVNICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubWludXRlLHN0ZXA6MTAsZm9ybWF0dGVyOm4oIiVJOiVNICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubWludXRlLHN0ZXA6MTUsZm9ybWF0dGVyOm4oIiVJOiVNICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubWludXRlLHN0ZXA6MzAsZm9ybWF0dGVyOm4oIiVJOiVNICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuaG91cixzdGVwOjEsZm9ybWF0dGVyOm4oIiVJICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuaG91cixzdGVwOjMsZm9ybWF0dGVyOm4oIiVJICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuaG91cixzdGVwOjYsZm9ybWF0dGVyOm4oIiVJICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuaG91cixzdGVwOjEyLGZvcm1hdHRlcjpuKCIlSSAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVhICVlIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVlIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLm1vbnRoLHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDoxLGZvcm1hdHRlcjpuKCIlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjEsZm9ybWF0dGVyOm4oIiViIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MSxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubW9udGgsc3RlcDozLGZvcm1hdHRlcjpuKCIlYiIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLm1vbnRoLHN0ZXA6Nixmb3JtYXR0ZXI6bigiJWIiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDoxLGZvcm1hdHRlcjpuKCIlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MSxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEsZm9ybWF0dGVyOm4oIiV5Iil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDo1LGZvcm1hdHRlcjpuKCIlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MjUsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDo1MCxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEwMCxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjIwMCxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjUwMCxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjFlMyxmb3JtYXR0ZXI6bigiJVkiKX1dXX0sdS5fTE9OR19EQVRFPW5ldyBEYXRlKDk5OTksOCwyOSwxMiw1OSw5OTk5KSx1fSkobC5BeGlzKTt0LlRpbWU9dX0pKEt5dCksKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU87ZS5fX2V4cG9ydFN0YXIoTm10LHQpLGUuX19leHBvcnRTdGFyKFV5dCx0KSxlLl9fZXhwb3J0U3RhcihLeXQsdCl9KShQbXQpO3ZhciBpYnQ9e30scmJ0PXt9LG9idD17fSxhYnQ9e30sc2J0PXt9LGxidD17fSxjYnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB1YnQ9Rmd0LGhidD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbj17fSx0aGlzLl9ldmVudFRhcmdldD1kb2N1bWVudCx0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0PXt9LHRoaXMuX2Nvbm5lY3RlZD0hMX1yZXR1cm4gdC5wcm90b3R5cGUuX2hhc05vQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PU9iamVjdC5rZXlzKHRoaXMuX2V2ZW50TmFtZVRvQ2FsbGJhY2tTZXQpLGU9MDtlPHQubGVuZ3RoO2UrKylpZigwIT09dGhpcy5fZXZlbnROYW1lVG9DYWxsYmFja1NldFt0W2VdXS5zaXplKXJldHVybiExO3JldHVybiEwfSx0LnByb3RvdHlwZS5fY29ubmVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fY29ubmVjdGVkfHwoT2JqZWN0LmtleXModGhpcy5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dC5fZXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihlLHQuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZV0sIndoZWVsIj09PWU/e3Bhc3NpdmU6ITF9OnZvaWQgMCl9KSksdGhpcy5fY29ubmVjdGVkPSEwKX0sdC5wcm90b3R5cGUuX2Rpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2Nvbm5lY3RlZCYmdGhpcy5faGFzTm9DYWxsYmFja3MoKSYmKE9iamVjdC5rZXlzKHRoaXMuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb24pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QuX2V2ZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0Ll9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2VdKX0pKSx0aGlzLl9jb25uZWN0ZWQ9ITEpfSx0LnByb3RvdHlwZS5fYWRkQ2FsbGJhY2tGb3JFdmVudD1mdW5jdGlvbih0LGUpe251bGw9PXRoaXMuX2V2ZW50TmFtZVRvQ2FsbGJhY2tTZXRbdF0mJih0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0W3RdPW5ldyB1YnQuQ2FsbGJhY2tTZXQpLHRoaXMuX2V2ZW50TmFtZVRvQ2FsbGJhY2tTZXRbdF0uYWRkKGUpLHRoaXMuX2Nvbm5lY3QoKX0sdC5wcm90b3R5cGUuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQ9ZnVuY3Rpb24odCxlKXtudWxsIT10aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0W3RdJiZ0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0W3RdLmRlbGV0ZShlKSx0aGlzLl9kaXNjb25uZWN0KCl9LHQucHJvdG90eXBlLl9jYWxsQ2FsbGJhY2tzRm9yRXZlbnQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbi0xXT1hcmd1bWVudHNbbl07dmFyIGk9dGhpcy5fZXZlbnROYW1lVG9DYWxsYmFja1NldFt0XTtudWxsIT1pJiZpLmNhbGxDYWxsYmFja3MuYXBwbHkoaSxlKX0sdH0pKCk7Y2J0LkRpc3BhdGNoZXI9aGJ0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkobGJ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZGJ0PXVPLHBidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9LRVlET1dOX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBuLl9wcm9jZXNzS2V5ZG93bih0KX0sbi5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9LRVlVUF9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gbi5fcHJvY2Vzc0tleXVwKHQpfSxufXJldHVybiBkYnQuX19leHRlbmRzKGUsdCksZS5nZXREaXNwYXRjaGVyPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnRbZS5fRElTUEFUQ0hFUl9LRVldO3JldHVybiBudWxsPT10JiYodD1uZXcgZSxkb2N1bWVudFtlLl9ESVNQQVRDSEVSX0tFWV09dCksdH0sZS5wcm90b3R5cGUuX3Byb2Nlc3NLZXlkb3duPWZ1bmN0aW9uKHQpe3RoaXMuX2NhbGxDYWxsYmFja3NGb3JFdmVudChlLl9LRVlET1dOX0VWRU5UX05BTUUsdC5rZXlDb2RlLHQpfSxlLnByb3RvdHlwZS5fcHJvY2Vzc0tleXVwPWZ1bmN0aW9uKHQpe3RoaXMuX2NhbGxDYWxsYmFja3NGb3JFdmVudChlLl9LRVlVUF9FVkVOVF9OQU1FLHQua2V5Q29kZSx0KX0sZS5wcm90b3R5cGUub25LZXlEb3duPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX0tFWURPV05fRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZLZXlEb3duPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KGUuX0tFWURPV05fRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vbktleVVwPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX0tFWVVQX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub2ZmS2V5VXA9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fS0VZVVBfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLl9ESVNQQVRDSEVSX0tFWT0iX19QbG90dGFibGVfRGlzcGF0Y2hlcl9LZXkiLGUuX0tFWURPV05fRVZFTlRfTkFNRT0ia2V5ZG93biIsZS5fS0VZVVBfRVZFTlRfTkFNRT0ia2V5dXAiLGV9KShjYnQuRGlzcGF0Y2hlcik7bGJ0LktleT1wYnQ7dmFyIGZidD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoZmJ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbWJ0PXVPLGdidD1GZ3QsX2J0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztpLl9sYXN0TW91c2VQb3NpdGlvbj17eDotMSx5Oi0xfSxpLl90cmFuc2xhdG9yPWdidC5nZXRUcmFuc2xhdG9yKG4pO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX01PVVNFTU9WRV9FVkVOVF9OQU1FLCJwYWdlIil9O3JldHVybiBpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX01PVVNFT1ZFUl9FVkVOVF9OQU1FXT1yLGkuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZS5fTU9VU0VNT1ZFX0VWRU5UX05BTUVdPXIsaS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9NT1VTRU9VVF9FVkVOVF9OQU1FXT1yLGkuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZS5fTU9VU0VET1dOX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX01PVVNFRE9XTl9FVkVOVF9OQU1FKX0saS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9NT1VTRVVQX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX01PVVNFVVBfRVZFTlRfTkFNRSwicGFnZSIpfSxpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX1dIRUVMX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX1dIRUVMX0VWRU5UX05BTUUpfSxpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX0RCTENMSUNLX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX0RCTENMSUNLX0VWRU5UX05BTUUpfSxpfXJldHVybiBtYnQuX19leHRlbmRzKGUsdCksZS5nZXREaXNwYXRjaGVyPWZ1bmN0aW9uKHQpe3ZhciBuPXQucm9vdCgpLnJvb3RFbGVtZW50KCksaT1uW2UuX0RJU1BBVENIRVJfS0VZXTtyZXR1cm4gbnVsbD09aSYmKGk9bmV3IGUodCksbltlLl9ESVNQQVRDSEVSX0tFWV09aSksaX0sZS5wcm90b3R5cGUub25Nb3VzZU1vdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZENhbGxiYWNrRm9yRXZlbnQoZS5fTU9VU0VNT1ZFX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub2ZmTW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KGUuX01PVVNFTU9WRV9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uTW91c2VEb3duPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX01PVVNFRE9XTl9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZk1vdXNlRG93bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudChlLl9NT1VTRURPV05fRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vbk1vdXNlVXA9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZENhbGxiYWNrRm9yRXZlbnQoZS5fTU9VU0VVUF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZk1vdXNlVXA9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fTU9VU0VVUF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uV2hlZWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZENhbGxiYWNrRm9yRXZlbnQoZS5fV0hFRUxfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZXaGVlbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudChlLl9XSEVFTF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uRGJsQ2xpY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZENhbGxiYWNrRm9yRXZlbnQoZS5fREJMQ0xJQ0tfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEYmxDbGljaz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudChlLl9EQkxDTElDS19FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLl9tZWFzdXJlQW5kRGlzcGF0Y2g9ZnVuY3Rpb24odCxlLG4saSl7aWYodm9pZCAwPT09aSYmKGk9ImVsZW1lbnQiKSwicGFnZSIhPT1pJiYiZWxlbWVudCIhPT1pKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzY29wZSAnIitpKyInLCBtdXN0IGJlICdlbGVtZW50JyBvciAncGFnZSciKTtpZigicGFnZSI9PT1pfHx0aGlzLmV2ZW50SW5zaWRlKHQsZSkpe3ZhciByPXRoaXMuX3RyYW5zbGF0b3IuY29tcHV0ZVBvc2l0aW9uKGUuY2xpZW50WCxlLmNsaWVudFkpO3RoaXMuX2xhc3RNb3VzZVBvc2l0aW9uPXIsdGhpcy5fY2FsbENhbGxiYWNrc0ZvckV2ZW50KG4sdGhpcy5sYXN0TW91c2VQb3NpdGlvbigpLGUpfX0sZS5wcm90b3R5cGUuZXZlbnRJbnNpZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ2J0LlRyYW5zbGF0b3IuaXNFdmVudEluc2lkZSh0LGUpfSxlLnByb3RvdHlwZS5sYXN0TW91c2VQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYXN0TW91c2VQb3NpdGlvbn0sZS5fRElTUEFUQ0hFUl9LRVk9Il9fUGxvdHRhYmxlX0Rpc3BhdGNoZXJfTW91c2UiLGUuX01PVVNFT1ZFUl9FVkVOVF9OQU1FPSJtb3VzZW92ZXIiLGUuX01PVVNFTU9WRV9FVkVOVF9OQU1FPSJtb3VzZW1vdmUiLGUuX01PVVNFT1VUX0VWRU5UX05BTUU9Im1vdXNlb3V0IixlLl9NT1VTRURPV05fRVZFTlRfTkFNRT0ibW91c2Vkb3duIixlLl9NT1VTRVVQX0VWRU5UX05BTUU9Im1vdXNldXAiLGUuX1dIRUVMX0VWRU5UX05BTUU9IndoZWVsIixlLl9EQkxDTElDS19FVkVOVF9OQU1FPSJkYmxjbGljayIsZX0pKGNidC5EaXNwYXRjaGVyKTtmYnQuTW91c2U9X2J0O3ZhciB5YnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KHlidCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHZidD11TyxiYnQ9Rmd0LHhidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuX3RyYW5zbGF0b3I9YmJ0LmdldFRyYW5zbGF0b3IobiksaS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9UT1VDSFNUQVJUX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX1RPVUNIU1RBUlRfRVZFTlRfTkFNRSwicGFnZSIpfSxpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX1RPVUNITU9WRV9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUFuZERpc3BhdGNoKG4sdCxlLl9UT1VDSE1PVkVfRVZFTlRfTkFNRSwicGFnZSIpfSxpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX1RPVUNIRU5EX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX1RPVUNIRU5EX0VWRU5UX05BTUUsInBhZ2UiKX0saS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9UT1VDSENBTkNFTF9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUFuZERpc3BhdGNoKG4sdCxlLl9UT1VDSENBTkNFTF9FVkVOVF9OQU1FLCJwYWdlIil9LGl9cmV0dXJuIHZidC5fX2V4dGVuZHMoZSx0KSxlLmdldERpc3BhdGNoZXI9ZnVuY3Rpb24odCl7dmFyIG49dC5yb290KCkucm9vdEVsZW1lbnQoKSxpPW5bZS5fRElTUEFUQ0hFUl9LRVldO3JldHVybiBudWxsPT1pJiYoaT1uZXcgZSh0KSxuW2UuX0RJU1BBVENIRVJfS0VZXT1pKSxpfSxlLnByb3RvdHlwZS5vblRvdWNoU3RhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZENhbGxiYWNrRm9yRXZlbnQoZS5fVE9VQ0hTVEFSVF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZlRvdWNoU3RhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fVE9VQ0hTVEFSVF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uVG91Y2hNb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX1RPVUNITU9WRV9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZlRvdWNoTW92ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudChlLl9UT1VDSE1PVkVfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vblRvdWNoRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX1RPVUNIRU5EX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub2ZmVG91Y2hFbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fVE9VQ0hFTkRfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vblRvdWNoQ2FuY2VsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX1RPVUNIQ0FOQ0VMX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub2ZmVG91Y2hDYW5jZWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fVE9VQ0hDQU5DRUxfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5fbWVhc3VyZUFuZERpc3BhdGNoPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHZvaWQgMD09PWkmJihpPSJlbGVtZW50IiksInBhZ2UiIT09aSYmImVsZW1lbnQiIT09aSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2NvcGUgJyIraSsiJywgbXVzdCBiZSAnZWxlbWVudCcgb3IgJ3BhZ2UnIik7aWYoImVsZW1lbnQiIT09aXx8dGhpcy5ldmVudEluc2lkZSh0LGUpKXtmb3IodmFyIHI9ZS5jaGFuZ2VkVG91Y2hlcyxvPXt9LGE9W10scz0wO3M8ci5sZW5ndGg7cysrKXt2YXIgbD1yW3NdLGM9bC5pZGVudGlmaWVyLHU9dGhpcy5fdHJhbnNsYXRvci5jb21wdXRlUG9zaXRpb24obC5jbGllbnRYLGwuY2xpZW50WSk7bnVsbCE9dSYmKG9bY109dSxhLnB1c2goYykpfWEubGVuZ3RoPjAmJnRoaXMuX2NhbGxDYWxsYmFja3NGb3JFdmVudChuLGEsbyxlKX19LGUucHJvdG90eXBlLmV2ZW50SW5zaWRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGJidC5UcmFuc2xhdG9yLmlzRXZlbnRJbnNpZGUodCxlKX0sZS5fRElTUEFUQ0hFUl9LRVk9Il9fUGxvdHRhYmxlX0Rpc3BhdGNoZXJfVG91Y2giLGUuX1RPVUNIU1RBUlRfRVZFTlRfTkFNRT0idG91Y2hzdGFydCIsZS5fVE9VQ0hNT1ZFX0VWRU5UX05BTUU9InRvdWNobW92ZSIsZS5fVE9VQ0hFTkRfRVZFTlRfTkFNRT0idG91Y2hlbmQiLGUuX1RPVUNIQ0FOQ0VMX0VWRU5UX05BTUU9InRvdWNoY2FuY2VsIixlfSkoY2J0LkRpc3BhdGNoZXIpO3lidC5Ub3VjaD14YnQsKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU87ZS5fX2V4cG9ydFN0YXIobGJ0LHQpLGUuX19leHBvcnRTdGFyKGZidCx0KSxlLl9fZXhwb3J0U3Rhcih5YnQsdCl9KShzYnQpO3ZhciB3YnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KHdidCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFNidD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ9dGhpczt0aGlzLl9hbmNob3JDYWxsYmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdC5fYW5jaG9yKGUpfSx0aGlzLl9lbmFibGVkPSEwfXJldHVybiB0LnByb3RvdHlwZS5hdHRhY2hUbz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZGlzY29ubmVjdCgpLHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG89dCx0aGlzLl9jb25uZWN0KCksdGhpc30sdC5wcm90b3R5cGUuZGV0YWNoRnJvbT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kZXRhY2goKX0sdC5wcm90b3R5cGUuZGV0YWNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rpc2Nvbm5lY3QoKSx0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvPW51bGwsdGhpc30sdC5wcm90b3R5cGUuZW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9lbmFibGVkOih0aGlzLl9lbmFibGVkPXQsdGhpcy5fZW5hYmxlZD90aGlzLl9jb25uZWN0KCk6dGhpcy5fZGlzY29ubmVjdCgpLHRoaXMpfSx0LnByb3RvdHlwZS5fYW5jaG9yPWZ1bmN0aW9uKHQpe3RoaXMuX2lzQW5jaG9yZWQ9ITB9LHQucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe3RoaXMuX2lzQW5jaG9yZWQ9ITF9LHQucHJvdG90eXBlLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8ub3JpZ2luVG9Sb290KCk7cmV0dXJue3g6dC54LWUueCx5OnQueS1lLnl9fSx0LnByb3RvdHlwZS5faXNJbnNpZGVDb21wb25lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIDA8PXQueCYmMDw9dC55JiZ0Lng8PXRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8ud2lkdGgoKSYmdC55PD10aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLmhlaWdodCgpfSx0LnByb3RvdHlwZS5fY29ubmVjdD1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZCgpJiZudWxsIT10aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvJiYhdGhpcy5faXNBbmNob3JlZCYmdGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby5vbkFuY2hvcih0aGlzLl9hbmNob3JDYWxsYmFjayl9LHQucHJvdG90eXBlLl9kaXNjb25uZWN0PWZ1bmN0aW9uKCl7dGhpcy5faXNBbmNob3JlZCYmdGhpcy5fdW5hbmNob3IoKSxudWxsIT10aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvJiZ0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLm9mZkFuY2hvcih0aGlzLl9hbmNob3JDYWxsYmFjayl9LHR9KSgpO3didC5JbnRlcmFjdGlvbj1TYnQsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBNYnQ9dU8sRWJ0PXNidCxUYnQ9Rmd0LENidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fY2xpY2tlZERvd249ITEsZS5fZG91YmxlQ2xpY2tpbmc9ITEsZS5fb25DbGlja0NhbGxiYWNrcz1uZXcgVGJ0LkNhbGxiYWNrU2V0LGUuX29uRG91YmxlQ2xpY2tDYWxsYmFja3M9bmV3IFRidC5DYWxsYmFja1NldCxlLl9tb3VzZURvd25DYWxsYmFjaz1mdW5jdGlvbih0LG4pe3JldHVybiBlLl9oYW5kbGVDbGlja0Rvd24odCxuKX0sZS5fbW91c2VVcENhbGxiYWNrPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2hhbmRsZUNsaWNrVXAodCxuKX0sZS5fZGJsQ2xpY2tDYWxsYmFjaz1mdW5jdGlvbih0LG4pe3JldHVybiBlLl9oYW5kbGVEYmxDbGljayh0LG4pfSxlLl90b3VjaFN0YXJ0Q2FsbGJhY2s9ZnVuY3Rpb24odCxuLGkpe3JldHVybiBlLl9oYW5kbGVDbGlja0Rvd24oblt0WzBdXSxpKX0sZS5fdG91Y2hFbmRDYWxsYmFjaz1mdW5jdGlvbih0LG4saSl7cmV0dXJuIGUuX2hhbmRsZUNsaWNrVXAoblt0WzBdXSxpKX0sZS5fdG91Y2hDYW5jZWxDYWxsYmFjaz1mdW5jdGlvbih0LG4pe3JldHVybiBlLl9jbGlja2VkRG93bj0hMX0sZX1yZXR1cm4gTWJ0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9hbmNob3I9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuX2FuY2hvci5jYWxsKHRoaXMsZSksdGhpcy5fbW91c2VEaXNwYXRjaGVyPUVidC5Nb3VzZS5nZXREaXNwYXRjaGVyKGUpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbk1vdXNlRG93bih0aGlzLl9tb3VzZURvd25DYWxsYmFjayksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9uTW91c2VVcCh0aGlzLl9tb3VzZVVwQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbkRibENsaWNrKHRoaXMuX2RibENsaWNrQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlcj1FYnQuVG91Y2guZ2V0RGlzcGF0Y2hlcihlKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hFbmQodGhpcy5fdG91Y2hFbmRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hDYW5jZWwodGhpcy5fdG91Y2hDYW5jZWxDYWxsYmFjayl9LGUucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLl91bmFuY2hvci5jYWxsKHRoaXMpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZURvd24odGhpcy5fbW91c2VEb3duQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZVVwKHRoaXMuX21vdXNlVXBDYWxsYmFjayksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9mZkRibENsaWNrKHRoaXMuX2RibENsaWNrQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1udWxsLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9mZlRvdWNoRW5kKHRoaXMuX3RvdWNoRW5kQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaENhbmNlbCh0aGlzLl90b3VjaENhbmNlbENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9bnVsbH0sZS5wcm90b3R5cGUuX2hhbmRsZUNsaWNrRG93bj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodCk7dGhpcy5faXNJbnNpZGVDb21wb25lbnQobikmJih0aGlzLl9jbGlja2VkRG93bj0hMCx0aGlzLl9jbGlja2VkUG9pbnQ9bil9LGUucHJvdG90eXBlLl9oYW5kbGVDbGlja1VwPWZ1bmN0aW9uKHQsbil7dmFyIGk9dGhpcyxyPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodCk7dGhpcy5fY2xpY2tlZERvd24mJmUuX3BvaW50c0VxdWFsKHIsdGhpcy5fY2xpY2tlZFBvaW50KSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpLl9kb3VibGVDbGlja2luZ3x8aS5fb25DbGlja0NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHIsbil9KSwwKSx0aGlzLl9jbGlja2VkRG93bj0hMX0sZS5wcm90b3R5cGUuX2hhbmRsZURibENsaWNrPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxpPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodCk7dGhpcy5fZG91YmxlQ2xpY2tpbmc9ITAsdGhpcy5fb25Eb3VibGVDbGlja0NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKGksZSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gbi5fZG91YmxlQ2xpY2tpbmc9ITF9KSwwKX0sZS5fcG9pbnRzRXF1YWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC54PT09ZS54JiZ0Lnk9PT1lLnl9LGUucHJvdG90eXBlLm9uQ2xpY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX29uQ2xpY2tDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkNsaWNrPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9vbkNsaWNrQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vbkRvdWJsZUNsaWNrPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9vbkRvdWJsZUNsaWNrQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEb3VibGVDbGljaz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fb25Eb3VibGVDbGlja0NhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZX0pKHdidC5JbnRlcmFjdGlvbik7YWJ0LkNsaWNrPUNidDt2YXIgQWJ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShBYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBrYnQ9dU8sTGJ0PXNidCxQYnQ9Rmd0LE5idD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuX2RyYWdnaW5nPSExLGkuX2NvbnN0cmFpbmVkVG9Db21wb25lbnQ9ITAsaS5fbW91c2VGaWx0ZXI9ZS5fREVGQVVMVF9NT1VTRV9GSUxURVIsaS5fZHJhZ1N0YXJ0Q2FsbGJhY2tzPW5ldyBQYnQuQ2FsbGJhY2tTZXQsaS5fZHJhZ0NhbGxiYWNrcz1uZXcgUGJ0LkNhbGxiYWNrU2V0LGkuX2RyYWdFbmRDYWxsYmFja3M9bmV3IFBidC5DYWxsYmFja1NldCxpLl9tb3VzZURvd25DYWxsYmFjaz1mdW5jdGlvbih0LGUpe3JldHVybiBpLl9zdGFydERyYWcodCxlKX0saS5fbW91c2VNb3ZlQ2FsbGJhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5fZG9EcmFnKHQsZSl9LGkuX21vdXNlVXBDYWxsYmFjaz1mdW5jdGlvbih0LGUpe3JldHVybiBpLl9lbmREcmFnKHQsZSl9LGkuX3RvdWNoU3RhcnRDYWxsYmFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGkuX3N0YXJ0RHJhZyhlW3RbMF1dLG4pfSxpLl90b3VjaE1vdmVDYWxsYmFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGkuX2RvRHJhZyhlW3RbMF1dLG4pfSxpLl90b3VjaEVuZENhbGxiYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gaS5fZW5kRHJhZyhlW3RbMF1dLG4pfSxpLl9tb3VzZUJ1dHRvbj12b2lkIDAhPT1uP246MCxpfXJldHVybiBrYnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2FuY2hvcj1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5fYW5jaG9yLmNhbGwodGhpcyxlKSx0aGlzLl9tb3VzZURpc3BhdGNoZXI9TGJ0Lk1vdXNlLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9uTW91c2VEb3duKHRoaXMuX21vdXNlRG93bkNhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25Nb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbk1vdXNlVXAodGhpcy5fbW91c2VVcENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9TGJ0LlRvdWNoLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vblRvdWNoTW92ZSh0aGlzLl90b3VjaE1vdmVDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hFbmQodGhpcy5fdG91Y2hFbmRDYWxsYmFjayl9LGUucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLl91bmFuY2hvci5jYWxsKHRoaXMpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZURvd24odGhpcy5fbW91c2VEb3duQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZVVwKHRoaXMuX21vdXNlVXBDYWxsYmFjayksdGhpcy5fbW91c2VEaXNwYXRjaGVyPW51bGwsdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9mZlRvdWNoU3RhcnQodGhpcy5fdG91Y2hTdGFydENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hNb3ZlKHRoaXMuX3RvdWNoTW92ZUNhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hFbmQodGhpcy5fdG91Y2hFbmRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyPW51bGx9LGUucHJvdG90eXBlLl90cmFuc2xhdGVBbmRDb25zdHJhaW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZSh0KTtyZXR1cm4gdGhpcy5fY29uc3RyYWluZWRUb0NvbXBvbmVudD97eDpQYnQuTWF0aC5jbGFtcChlLngsMCx0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLndpZHRoKCkpLHk6UGJ0Lk1hdGguY2xhbXAoZS55LDAsdGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby5oZWlnaHQoKSl9OmV9LGUucHJvdG90eXBlLl9zdGFydERyYWc9ZnVuY3Rpb24odCxlKXtpZighKGUgaW5zdGFuY2VvZiBNb3VzZUV2ZW50KXx8dGhpcy5fbW91c2VGaWx0ZXIoZSkpe3ZhciBuPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodCk7dGhpcy5faXNJbnNpZGVDb21wb25lbnQobikmJihlLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZHJhZ2dpbmc9ITAsdGhpcy5fZHJhZ09yaWdpbj1uLHRoaXMuX2RyYWdTdGFydENhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMuX2RyYWdPcmlnaW4pKX19LGUucHJvdG90eXBlLl9kb0RyYWc9ZnVuY3Rpb24odCxlKXt0aGlzLl9kcmFnZ2luZyYmdGhpcy5fZHJhZ0NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMuX2RyYWdPcmlnaW4sdGhpcy5fdHJhbnNsYXRlQW5kQ29uc3RyYWluKHQpKX0sZS5wcm90b3R5cGUuX2VuZERyYWc9ZnVuY3Rpb24odCxlKXtlIGluc3RhbmNlb2YgTW91c2VFdmVudCYmZS5idXR0b24hPT10aGlzLl9tb3VzZUJ1dHRvbnx8dGhpcy5fZHJhZ2dpbmcmJih0aGlzLl9kcmFnZ2luZz0hMSx0aGlzLl9kcmFnRW5kQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3ModGhpcy5fZHJhZ09yaWdpbix0aGlzLl90cmFuc2xhdGVBbmRDb25zdHJhaW4odCkpKX0sZS5wcm90b3R5cGUuY29uc3RyYWluZWRUb0NvbXBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9jb25zdHJhaW5lZFRvQ29tcG9uZW50Oih0aGlzLl9jb25zdHJhaW5lZFRvQ29tcG9uZW50PXQsdGhpcyl9LGUucHJvdG90eXBlLm1vdXNlRmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl9tb3VzZUZpbHRlcjoodGhpcy5fbW91c2VGaWx0ZXI9dCx0aGlzKX0sZS5wcm90b3R5cGUub25EcmFnU3RhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdTdGFydENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmRHJhZ1N0YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnU3RhcnRDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLm9uRHJhZz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0NhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmRHJhZz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0NhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUub25EcmFnRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnRW5kQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEcmFnRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnRW5kQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLl9ERUZBVUxUX01PVVNFX0ZJTFRFUj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXQuYnV0dG9ufSxlfSkod2J0LkludGVyYWN0aW9uKTtBYnQuRHJhZz1OYnQ7dmFyIElidD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoSWJ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgUmJ0PXVPLE9idD1zYnQsemJ0PUZndCxEYnQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX2tleVByZXNzQ2FsbGJhY2tzPXt9LGUuX2tleVJlbGVhc2VDYWxsYmFja3M9e30sZS5fbW91c2VNb3ZlQ2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuITF9LGUuX2Rvd25lZEtleXM9bmV3IHpidC5TZXQsZS5fa2V5RG93bkNhbGxiYWNrPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2hhbmRsZUtleURvd25FdmVudCh0LG4pfSxlLl9rZXlVcENhbGxiYWNrPWZ1bmN0aW9uKHQpe3JldHVybiBlLl9oYW5kbGVLZXlVcEV2ZW50KHQpfSxlfXJldHVybiBSYnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2FuY2hvcj1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5fYW5jaG9yLmNhbGwodGhpcyxlKSx0aGlzLl9wb3NpdGlvbkRpc3BhdGNoZXI9T2J0Lk1vdXNlLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fcG9zaXRpb25EaXNwYXRjaGVyLm9uTW91c2VNb3ZlKHRoaXMuX21vdXNlTW92ZUNhbGxiYWNrKSx0aGlzLl9rZXlEaXNwYXRjaGVyPU9idC5LZXkuZ2V0RGlzcGF0Y2hlcigpLHRoaXMuX2tleURpc3BhdGNoZXIub25LZXlEb3duKHRoaXMuX2tleURvd25DYWxsYmFjayksdGhpcy5fa2V5RGlzcGF0Y2hlci5vbktleVVwKHRoaXMuX2tleVVwQ2FsbGJhY2spfSxlLnByb3RvdHlwZS5fdW5hbmNob3I9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fdW5hbmNob3IuY2FsbCh0aGlzKSx0aGlzLl9wb3NpdGlvbkRpc3BhdGNoZXIub2ZmTW91c2VNb3ZlKHRoaXMuX21vdXNlTW92ZUNhbGxiYWNrKSx0aGlzLl9wb3NpdGlvbkRpc3BhdGNoZXI9bnVsbCx0aGlzLl9rZXlEaXNwYXRjaGVyLm9mZktleURvd24odGhpcy5fa2V5RG93bkNhbGxiYWNrKSx0aGlzLl9rZXlEaXNwYXRjaGVyLm9mZktleVVwKHRoaXMuX2tleVVwQ2FsbGJhY2spLHRoaXMuX2tleURpc3BhdGNoZXI9bnVsbH0sZS5wcm90b3R5cGUuX2hhbmRsZUtleURvd25FdmVudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodGhpcy5fcG9zaXRpb25EaXNwYXRjaGVyLmxhc3RNb3VzZVBvc2l0aW9uKCkpO3RoaXMuX2lzSW5zaWRlQ29tcG9uZW50KG4pJiYhZS5yZXBlYXQmJih0aGlzLl9rZXlQcmVzc0NhbGxiYWNrc1t0XSYmdGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF0uY2FsbENhbGxiYWNrcyh0KSx0aGlzLl9kb3duZWRLZXlzLmFkZCh0KSl9LGUucHJvdG90eXBlLl9oYW5kbGVLZXlVcEV2ZW50PWZ1bmN0aW9uKHQpe3RoaXMuX2Rvd25lZEtleXMuaGFzKHQpJiZ0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3RdJiZ0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3RdLmNhbGxDYWxsYmFja3ModCksdGhpcy5fZG93bmVkS2V5cy5kZWxldGUodCl9LGUucHJvdG90eXBlLm9uS2V5UHJlc3M9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF18fCh0aGlzLl9rZXlQcmVzc0NhbGxiYWNrc1t0XT1uZXcgemJ0LkNhbGxiYWNrU2V0KSx0aGlzLl9rZXlQcmVzc0NhbGxiYWNrc1t0XS5hZGQoZSksdGhpc30sZS5wcm90b3R5cGUub2ZmS2V5UHJlc3M9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF0uZGVsZXRlKGUpLDA9PT10aGlzLl9rZXlQcmVzc0NhbGxiYWNrc1t0XS5zaXplJiZkZWxldGUgdGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF0sdGhpc30sZS5wcm90b3R5cGUub25LZXlSZWxlYXNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3NbdF18fCh0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3RdPW5ldyB6YnQuQ2FsbGJhY2tTZXQpLHRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3NbdF0uYWRkKGUpLHRoaXN9LGUucHJvdG90eXBlLm9mZktleVJlbGVhc2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fa2V5UmVsZWFzZUNhbGxiYWNrc1t0XS5kZWxldGUoZSksMD09PXRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3NbdF0uc2l6ZSYmZGVsZXRlIHRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3NbdF0sdGhpc30sZX0pKHdidC5JbnRlcmFjdGlvbik7SWJ0LktleT1EYnQ7dmFyIEJidD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoQmJ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSGJ0PXVPLEZidD1FZHQsVmJ0PXNidCxVYnQ9Wnl0LGpidD1GZ3QsR2J0PW9idCxXYnQ9aXZ0LHFidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gaS5fd2hlZWxGaWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuITB9LGkuX3doZWVsQ2FsbGJhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5faGFuZGxlV2hlZWxFdmVudCh0LGUpfSxpLl90b3VjaFN0YXJ0Q2FsbGJhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpLl9oYW5kbGVUb3VjaFN0YXJ0KHQsZSxuKX0saS5fdG91Y2hNb3ZlQ2FsbGJhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpLl9oYW5kbGVQaW5jaCh0LGUsbil9LGkuX3RvdWNoRW5kQ2FsbGJhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpLl9oYW5kbGVUb3VjaEVuZCh0LGUsbil9LGkuX3RvdWNoQ2FuY2VsQ2FsbGJhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpLl9oYW5kbGVUb3VjaEVuZCh0LGUsbil9LGkuX3BhbkVuZENhbGxiYWNrcz1uZXcgamJ0LkNhbGxiYWNrU2V0LGkuX3pvb21FbmRDYWxsYmFja3M9bmV3IGpidC5DYWxsYmFja1NldCxpLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzPW5ldyBqYnQuQ2FsbGJhY2tTZXQsaS5feFNjYWxlcz1uZXcgamJ0LlNldCxpLl95U2NhbGVzPW5ldyBqYnQuU2V0LGkuX2RyYWdJbnRlcmFjdGlvbj1uZXcgR2J0LkRyYWcsaS5fc2V0dXBEcmFnSW50ZXJhY3Rpb24oKSxpLl90b3VjaElkcz1GYnQubWFwKCksaS5fbWluRG9tYWluRXh0ZW50cz1uZXcgamJ0Lk1hcCxpLl9tYXhEb21haW5FeHRlbnRzPW5ldyBqYnQuTWFwLGkuX21pbkRvbWFpblZhbHVlcz1uZXcgamJ0Lk1hcCxpLl9tYXhEb21haW5WYWx1ZXM9bmV3IGpidC5NYXAsbnVsbCE9ZSYmaS5hZGRYU2NhbGUoZSksbnVsbCE9biYmaS5hZGRZU2NhbGUobiksaX1yZXR1cm4gSGJ0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmRyYWdJbnRlcmFjdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kcmFnSW50ZXJhY3Rpb259LGUucHJvdG90eXBlLndoZWVsRmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl93aGVlbEZpbHRlcjoodGhpcy5fd2hlZWxGaWx0ZXI9dCx0aGlzKX0sZS5wcm90b3R5cGUucGFuPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy54U2NhbGVzKCkuZm9yRWFjaCgoZnVuY3Rpb24obil7bi5wYW4oZS5fY29uc3RyYWluZWRUcmFuc2xhdGlvbihuLHQueCkpfSkpLHRoaXMueVNjYWxlcygpLmZvckVhY2goKGZ1bmN0aW9uKG4pe24ucGFuKGUuX2NvbnN0cmFpbmVkVHJhbnNsYXRpb24obix0LnkpKX0pKSx0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MoKX0sZS5wcm90b3R5cGUuem9vbT1mdW5jdGlvbih0LGUsbil7dmFyIGkscixvPXRoaXM7cmV0dXJuIHZvaWQgMD09PW4mJihuPSEwKSxudWxsIT1lJiYoaT1lLngscj1lLnksbiYmKHRoaXMueFNjYWxlcygpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPW8uX2NvbnN0cmFpbmVkWm9vbShlLHQsaSk7aT1uLmNlbnRlclBvaW50LHQ9bi56b29tQW1vdW50fSkpLHRoaXMueVNjYWxlcygpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPW8uX2NvbnN0cmFpbmVkWm9vbShlLHQscik7cj1uLmNlbnRlclBvaW50LHQ9bi56b29tQW1vdW50fSkpKSksdGhpcy54U2NhbGVzKCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5yYW5nZSgpO2Uuem9vbSh0LG51bGw9PWk/KG5bMV0rblswXSkvMjppKX0pKSx0aGlzLnlTY2FsZXMoKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1lLnJhbmdlKCk7ZS56b29tKHQsbnVsbD09cj8oblsxXStuWzBdKS8yOnIpfSkpLHRoaXMuX3Bhblpvb21VcGRhdGVDYWxsYmFja3MuY2FsbENhbGxiYWNrcygpLHt6b29tQW1vdW50OnQsY2VudGVyVmFsdWU6e2NlbnRlclg6aSxjZW50ZXJZOnJ9fX0sZS5wcm90b3R5cGUuX2FuY2hvcj1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5fYW5jaG9yLmNhbGwodGhpcyxlKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24uYXR0YWNoVG8oZSksdGhpcy5fbW91c2VEaXNwYXRjaGVyPVZidC5Nb3VzZS5nZXREaXNwYXRjaGVyKHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8pLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbldoZWVsKHRoaXMuX3doZWVsQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlcj1WYnQuVG91Y2guZ2V0RGlzcGF0Y2hlcih0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hNb3ZlKHRoaXMuX3RvdWNoTW92ZUNhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaEVuZCh0aGlzLl90b3VjaEVuZENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaENhbmNlbCh0aGlzLl90b3VjaENhbmNlbENhbGxiYWNrKX0sZS5wcm90b3R5cGUuX3VuYW5jaG9yPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3VuYW5jaG9yLmNhbGwodGhpcyksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9mZldoZWVsKHRoaXMuX3doZWVsQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1udWxsLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9mZlRvdWNoTW92ZSh0aGlzLl90b3VjaE1vdmVDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9mZlRvdWNoRW5kKHRoaXMuX3RvdWNoRW5kQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaENhbmNlbCh0aGlzLl90b3VjaENhbmNlbENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9bnVsbCx0aGlzLl9kcmFnSW50ZXJhY3Rpb24uZGV0YWNoKCl9LGUucHJvdG90eXBlLl9oYW5kbGVUb3VjaFN0YXJ0PWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9MDtpPHQubGVuZ3RoJiZ0aGlzLl90b3VjaElkcy5zaXplKCk8MjtpKyspe3ZhciByPXRbaV07dGhpcy5fdG91Y2hJZHMuc2V0KHIudG9TdHJpbmcoKSx0aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKGVbcl0pKX19LGUucHJvdG90eXBlLl9oYW5kbGVQaW5jaD1mdW5jdGlvbih0LG4saSl7dmFyIHI9dGhpcztpZighKHRoaXMuX3RvdWNoSWRzLnNpemUoKTwyKSl7dmFyIG89dGhpcy5fdG91Y2hJZHMudmFsdWVzKCk7aWYodGhpcy5faXNJbnNpZGVDb21wb25lbnQodGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZShvWzBdKSkmJnRoaXMuX2lzSW5zaWRlQ29tcG9uZW50KHRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2Uob1sxXSkpKXt2YXIgYT1lLl9wb2ludERpc3RhbmNlKG9bMF0sb1sxXSk7aWYoMCE9PWEpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7ci5fdG91Y2hJZHMuaGFzKHQudG9TdHJpbmcoKSkmJnIuX3RvdWNoSWRzLnNldCh0LnRvU3RyaW5nKCksci5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZShuW3RdKSl9KSk7dmFyIHM9dGhpcy5fdG91Y2hJZHMudmFsdWVzKCksbD1lLl9wb2ludERpc3RhbmNlKHNbMF0sc1sxXSk7aWYoMCE9PWwpe3ZhciBjPWEvbCx1PXMubWFwKChmdW5jdGlvbih0LGUpe3JldHVybnt4Oih0Lngtb1tlXS54KS9jLHk6KHQueS1vW2VdLnkpL2N9fSkpLGg9ZS5jZW50ZXJQb2ludChvWzBdLG9bMV0pLGQ9dGhpcy56b29tKGMsaCkscD1kLmNlbnRlclZhbHVlLGY9ZC56b29tQW1vdW50LG09cC5jZW50ZXJYLGc9cC5jZW50ZXJZLF89by5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3g6dVtlXS54KmYrdC54LHk6dVtlXS55KmYrdC55fX0pKTt0aGlzLnBhbih7eDptLShfWzBdLngrX1sxXS54KS8yLHk6Zy0oX1swXS55K19bMV0ueSkvMn0pfX19fX0sZS5jZW50ZXJQb2ludD1mdW5jdGlvbih0LGUpe3ZhciBuPU1hdGgubWluKHQueCxlLngpLGk9TWF0aC5tYXgodC54LGUueCkscj1NYXRoLm1pbih0LnksZS55KTtyZXR1cm57eDoobitpKS8yLHk6KE1hdGgubWF4KHQueSxlLnkpK3IpLzJ9fSxlLl9wb2ludERpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5taW4odC54LGUueCksaT1NYXRoLm1heCh0LngsZS54KSxyPU1hdGgubWluKHQueSxlLnkpLG89TWF0aC5tYXgodC55LGUueSk7cmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyhpLW4sMikrTWF0aC5wb3coby1yLDIpKX0sZS5wcm90b3R5cGUuX2hhbmRsZVRvdWNoRW5kPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7aS5fdG91Y2hJZHMucmVtb3ZlKHQudG9TdHJpbmcoKSl9KSksdGhpcy5fdG91Y2hJZHMuc2l6ZSgpPjAmJnRoaXMuX3pvb21FbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcygpfSxlLnByb3RvdHlwZS5faGFuZGxlV2hlZWxFdmVudD1mdW5jdGlvbih0LG4pe2lmKHRoaXMuX3doZWVsRmlsdGVyKG4pKXt2YXIgaT10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHQpO2lmKHRoaXMuX2lzSW5zaWRlQ29tcG9uZW50KGkpKXtuLnByZXZlbnREZWZhdWx0KCk7dmFyIHI9TWF0aC5wb3coMiwoMCE9PW4uZGVsdGFZP24uZGVsdGFZOm4uZGVsdGFYKSoobi5kZWx0YU1vZGU/ZS5fUElYRUxTX1BFUl9MSU5FOjEpKi4wMDIpO3RoaXMuem9vbShyLGkpLHRoaXMuX3pvb21FbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcygpfX19LGUucHJvdG90eXBlLl9jb25zdHJhaW5lZFpvb209ZnVuY3Rpb24odCxlLG4pe3JldHVybiBXYnQuY29uc3RyYWluZWRab29tKHQsZSxuLHRoaXMubWluRG9tYWluRXh0ZW50KHQpLHRoaXMubWF4RG9tYWluRXh0ZW50KHQpLHRoaXMubWluRG9tYWluVmFsdWUodCksdGhpcy5tYXhEb21haW5WYWx1ZSh0KSl9LGUucHJvdG90eXBlLl9jb25zdHJhaW5lZFRyYW5zbGF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFdidC5jb25zdHJhaW5lZFRyYW5zbGF0aW9uKHQsZSx0aGlzLm1pbkRvbWFpblZhbHVlKHQpLHRoaXMubWF4RG9tYWluVmFsdWUodCkpfSxlLnByb3RvdHlwZS5fc2V0dXBEcmFnSW50ZXJhY3Rpb249ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXM7dGhpcy5fZHJhZ0ludGVyYWN0aW9uLmNvbnN0cmFpbmVkVG9Db21wb25lbnQoITEpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWdTdGFydCgoZnVuY3Rpb24oKXtyZXR1cm4gdD1udWxsfSkpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWcoKGZ1bmN0aW9uKG4saSl7ZS5fdG91Y2hJZHMuc2l6ZSgpPj0yfHwoZS5wYW4oe3g6KG51bGw9PXQ/bi54OnQueCktaS54LHk6KG51bGw9PXQ/bi55OnQueSktaS55fSksdD1pKX0pKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnRW5kKChmdW5jdGlvbigpe3JldHVybiBlLl9wYW5FbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcygpfSkpfSxlLnByb3RvdHlwZS5fbm9uTGluZWFyU2NhbGVXaXRoRXh0ZW50cz1mdW5jdGlvbih0KXtyZXR1cm4hKG51bGw9PXRoaXMubWluRG9tYWluRXh0ZW50KHQpfHxudWxsPT10aGlzLm1heERvbWFpbkV4dGVudCh0KXx8dCBpbnN0YW5jZW9mIFVidC5MaW5lYXJ8fHQgaW5zdGFuY2VvZiBVYnQuVGltZSl9LGUucHJvdG90eXBlLnhTY2FsZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsPT10KXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5feFNjYWxlcy5mb3JFYWNoKChmdW5jdGlvbih0KXtuLnB1c2godCl9KSksbn1yZXR1cm4gdGhpcy5feFNjYWxlcz1uZXcgamJ0LlNldCx0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuYWRkWFNjYWxlKHQpfSkpLHRoaXN9LGUucHJvdG90eXBlLnlTY2FsZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsPT10KXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5feVNjYWxlcy5mb3JFYWNoKChmdW5jdGlvbih0KXtuLnB1c2godCl9KSksbn1yZXR1cm4gdGhpcy5feVNjYWxlcz1uZXcgamJ0LlNldCx0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuYWRkWVNjYWxlKHQpfSkpLHRoaXN9LGUucHJvdG90eXBlLmFkZFhTY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5feFNjYWxlcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUucmVtb3ZlWFNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl94U2NhbGVzLmRlbGV0ZSh0KSx0aGlzLl9taW5Eb21haW5FeHRlbnRzLmRlbGV0ZSh0KSx0aGlzLl9tYXhEb21haW5FeHRlbnRzLmRlbGV0ZSh0KSx0aGlzLl9taW5Eb21haW5WYWx1ZXMuZGVsZXRlKHQpLHRoaXMuX21heERvbWFpblZhbHVlcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUuYWRkWVNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl95U2NhbGVzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5yZW1vdmVZU2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3lTY2FsZXMuZGVsZXRlKHQpLHRoaXMuX21pbkRvbWFpbkV4dGVudHMuZGVsZXRlKHQpLHRoaXMuX21heERvbWFpbkV4dGVudHMuZGVsZXRlKHQpLHRoaXMuX21pbkRvbWFpblZhbHVlcy5kZWxldGUodCksdGhpcy5fbWF4RG9tYWluVmFsdWVzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5taW5Eb21haW5FeHRlbnQ9ZnVuY3Rpb24odCxlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl9taW5Eb21haW5FeHRlbnRzLmdldCh0KTtpZihlLnZhbHVlT2YoKTwwKXRocm93IG5ldyBFcnJvcigiZXh0ZW50IG11c3QgYmUgbm9uLW5lZ2F0aXZlIik7dmFyIG49dGhpcy5tYXhEb21haW5FeHRlbnQodCk7aWYobnVsbCE9biYmbi52YWx1ZU9mKCk8ZS52YWx1ZU9mKCkpdGhyb3cgbmV3IEVycm9yKCJtaW5Eb21haW5FeHRlbnQgbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4RG9tYWluRXh0ZW50IGZvciB0aGUgc2FtZSBTY2FsZSIpO3JldHVybiB0aGlzLl9ub25MaW5lYXJTY2FsZVdpdGhFeHRlbnRzKHQpJiZqYnQuV2luZG93Lndhcm4oIlBhbm5pbmcgYW5kIHpvb21pbmcgd2l0aCBleHRlbnRzIG9uIGEgbm9ubGluZWFyIHNjYWxlIG1heSBoYXZlIHVuaW50ZW5kZWQgYmVoYXZpb3IuIiksdGhpcy5fbWluRG9tYWluRXh0ZW50cy5zZXQodCxlKSx0aGlzfSxlLnByb3RvdHlwZS5tYXhEb21haW5FeHRlbnQ9ZnVuY3Rpb24odCxlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl9tYXhEb21haW5FeHRlbnRzLmdldCh0KTtpZihlLnZhbHVlT2YoKTw9MCl0aHJvdyBuZXcgRXJyb3IoImV4dGVudCBtdXN0IGJlIHBvc2l0aXZlIik7dmFyIG49dGhpcy5taW5Eb21haW5FeHRlbnQodCk7aWYobnVsbCE9biYmZS52YWx1ZU9mKCk8bi52YWx1ZU9mKCkpdGhyb3cgbmV3IEVycm9yKCJtYXhEb21haW5FeHRlbnQgbXVzdCBiZSBsYXJnZXIgdGhhbiBtaW5Eb21haW5FeHRlbnQgZm9yIHRoZSBzYW1lIFNjYWxlIik7cmV0dXJuIHRoaXMuX25vbkxpbmVhclNjYWxlV2l0aEV4dGVudHModCkmJmpidC5XaW5kb3cud2FybigiUGFubmluZyBhbmQgem9vbWluZyB3aXRoIGV4dGVudHMgb24gYSBub25saW5lYXIgc2NhbGUgbWF5IGhhdmUgdW5pbnRlbmRlZCBiZWhhdmlvci4iKSx0aGlzLl9tYXhEb21haW5FeHRlbnRzLnNldCh0LGUpLHRoaXN9LGUucHJvdG90eXBlLm1pbkRvbWFpblZhbHVlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PWU/dGhpcy5fbWluRG9tYWluVmFsdWVzLmdldCh0KToodGhpcy5fbWluRG9tYWluVmFsdWVzLnNldCh0LGUpLHRoaXMpfSxlLnByb3RvdHlwZS5tYXhEb21haW5WYWx1ZT1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1lP3RoaXMuX21heERvbWFpblZhbHVlcy5nZXQodCk6KHRoaXMuX21heERvbWFpblZhbHVlcy5zZXQodCxlKSx0aGlzKX0sZS5wcm90b3R5cGUuc2V0TWluTWF4RG9tYWluVmFsdWVzVG89ZnVuY3Rpb24odCl7dGhpcy5fbWluRG9tYWluVmFsdWVzLmRlbGV0ZSh0KSx0aGlzLl9tYXhEb21haW5WYWx1ZXMuZGVsZXRlKHQpO3ZhciBlPXQuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4oKSxuPWVbMV07cmV0dXJuIHRoaXMubWluRG9tYWluVmFsdWUodCxlWzBdKSx0aGlzLm1heERvbWFpblZhbHVlKHQsbiksdGhpc30sZS5wcm90b3R5cGUub25QYW5FbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhbkVuZENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmUGFuRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYW5FbmRDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLm9uWm9vbUVuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fem9vbUVuZENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmWm9vbUVuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fem9vbUVuZENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUub25QYW5ab29tVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZQYW5ab29tVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLl9QSVhFTFNfUEVSX0xJTkU9MTIwLGV9KSh3YnQuSW50ZXJhY3Rpb24pO0JidC5QYW5ab29tPXFidDt2YXIgWWJ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShZYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBYYnQ9dU8sJGJ0PXNidCxLYnQ9Rmd0LFpidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fb3ZlckNvbXBvbmVudD0hMSxlLl9wb2ludGVyRW50ZXJDYWxsYmFja3M9bmV3IEtidC5DYWxsYmFja1NldCxlLl9wb2ludGVyTW92ZUNhbGxiYWNrcz1uZXcgS2J0LkNhbGxiYWNrU2V0LGUuX3BvaW50ZXJFeGl0Q2FsbGJhY2tzPW5ldyBLYnQuQ2FsbGJhY2tTZXQsZS5fbW91c2VNb3ZlQ2FsbGJhY2s9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5faGFuZGxlTW91c2VFdmVudCh0LG4pfSxlLl90b3VjaFN0YXJ0Q2FsbGJhY2s9ZnVuY3Rpb24odCxuLGkpe3JldHVybiBlLl9oYW5kbGVUb3VjaEV2ZW50KG5bdFswXV0saSl9LGV9cmV0dXJuIFhidC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fYW5jaG9yPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLl9hbmNob3IuY2FsbCh0aGlzLGUpLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj0kYnQuTW91c2UuZ2V0RGlzcGF0Y2hlcih0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25Nb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlcj0kYnQuVG91Y2guZ2V0RGlzcGF0Y2hlcih0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayl9LGUucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLl91bmFuY2hvci5jYWxsKHRoaXMpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1udWxsLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyPW51bGx9LGUucHJvdG90eXBlLl9oYW5kbGVNb3VzZUV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fbW91c2VEaXNwYXRjaGVyLmV2ZW50SW5zaWRlKHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8sZSk7dGhpcy5faGFuZGxlUG9pbnRlckV2ZW50KHQsbil9LGUucHJvdG90eXBlLl9oYW5kbGVUb3VjaEV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fdG91Y2hEaXNwYXRjaGVyLmV2ZW50SW5zaWRlKHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8sZSk7dGhpcy5faGFuZGxlUG9pbnRlckV2ZW50KHQsbil9LGUucHJvdG90eXBlLl9oYW5kbGVQb2ludGVyRXZlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHQpLGk9dGhpcy5faXNJbnNpZGVDb21wb25lbnQobik7aSYmZT8odGhpcy5fb3ZlckNvbXBvbmVudHx8dGhpcy5fcG9pbnRlckVudGVyQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobiksdGhpcy5fcG9pbnRlck1vdmVDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhuKSk6dGhpcy5fb3ZlckNvbXBvbmVudCYmdGhpcy5fcG9pbnRlckV4aXRDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhuKSx0aGlzLl9vdmVyQ29tcG9uZW50PWkmJmV9LGUucHJvdG90eXBlLm9uUG9pbnRlckVudGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wb2ludGVyRW50ZXJDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZlBvaW50ZXJFbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcG9pbnRlckVudGVyQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vblBvaW50ZXJNb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wb2ludGVyTW92ZUNhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmUG9pbnRlck1vdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BvaW50ZXJNb3ZlQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vblBvaW50ZXJFeGl0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wb2ludGVyRXhpdENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmUG9pbnRlckV4aXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BvaW50ZXJFeGl0Q2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlfSkod2J0LkludGVyYWN0aW9uKTtZYnQuUG9pbnRlcj1aYnQsKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU87ZS5fX2V4cG9ydFN0YXIoYWJ0LHQpLGUuX19leHBvcnRTdGFyKEFidCx0KSxlLl9fZXhwb3J0U3RhcihJYnQsdCksZS5fX2V4cG9ydFN0YXIoQmJ0LHQpLGUuX19leHBvcnRTdGFyKFlidCx0KSx0Lnpvb21PdXQ9aXZ0Lnpvb21PdXR9KShvYnQpO3ZhciBKYnQ9e307IShmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlLG49dU8saT1GZ3Qscj1CZ3Q7IShmdW5jdGlvbih0KXt0W3QuVkFMVUU9MF09IlZBTFVFIix0W3QuUElYRUw9MV09IlBJWEVMIn0pKGU9dC5Qcm9wZXJ0eU1vZGV8fCh0LlByb3BlcnR5TW9kZT17fSkpO3ZhciBvPShmdW5jdGlvbih0KXtmdW5jdGlvbiByKCl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9ib3hWaXNpYmxlPSExLG4uX2JveEJvdW5kcz17dG9wTGVmdDp7eDowLHk6MH0sYm90dG9tUmlnaHQ6e3g6MCx5OjB9fSxuLl94Qm91bmRzTW9kZT1lLlBJWEVMLG4uX3lCb3VuZHNNb2RlPWUuUElYRUwsbi5hZGRDbGFzcygic2VsZWN0aW9uLWJveC1sYXllciIpLG4uX2FkanVzdEJvdW5kc0NhbGxiYWNrPWZ1bmN0aW9uKCl7bi5yZW5kZXIoKX0sbi5fb3ZlcmZsb3dIaWRkZW49ITAsbi5feEV4dGVudD1bdm9pZCAwLHZvaWQgMF0sbi5feUV4dGVudD1bdm9pZCAwLHZvaWQgMF0sbn1yZXR1cm4gbi5fX2V4dGVuZHMocix0KSxyLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9ib3g9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2VsZWN0aW9uLWJveCIsITApLnJlbW92ZSgpLHRoaXMuX2JveEFyZWE9dGhpcy5fYm94LmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoInNlbGVjdGlvbi1hcmVhIiwhMCl9LHIucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3dpZHRoOnQsaGVpZ2h0OmV9fSxyLnByb3RvdHlwZS5ib3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZ2V0Qm91bmRzKCk6KHRoaXMuX3NldEJvdW5kcyh0KSx0aGlzLl94Qm91bmRzTW9kZT1lLlBJWEVMLHRoaXMuX3lCb3VuZHNNb2RlPWUuUElYRUwsdGhpcy5yZW5kZXIoKSx0aGlzKX0sci5wcm90b3R5cGUuX3NldEJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT17eDpNYXRoLm1pbih0LnRvcExlZnQueCx0LmJvdHRvbVJpZ2h0LngpLHk6TWF0aC5taW4odC50b3BMZWZ0LnksdC5ib3R0b21SaWdodC55KX0sbj17eDpNYXRoLm1heCh0LnRvcExlZnQueCx0LmJvdHRvbVJpZ2h0LngpLHk6TWF0aC5tYXgodC50b3BMZWZ0LnksdC5ib3R0b21SaWdodC55KX07dGhpcy5fYm94Qm91bmRzPXt0b3BMZWZ0OmUsYm90dG9tUmlnaHQ6bn19LHIucHJvdG90eXBlLl9nZXRCb3VuZHM9ZnVuY3Rpb24oKXtyZXR1cm57dG9wTGVmdDp7eDp0aGlzLl94Qm91bmRzTW9kZT09PWUuUElYRUw/dGhpcy5fYm94Qm91bmRzLnRvcExlZnQueDpudWxsPT10aGlzLl94U2NhbGU/MDpNYXRoLm1pbih0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzBdKSx0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzFdKSkseTp0aGlzLl95Qm91bmRzTW9kZT09PWUuUElYRUw/dGhpcy5fYm94Qm91bmRzLnRvcExlZnQueTpudWxsPT10aGlzLl95U2NhbGU/MDpNYXRoLm1pbih0aGlzLnlTY2FsZSgpLnNjYWxlKHRoaXMueUV4dGVudCgpWzBdKSx0aGlzLnlTY2FsZSgpLnNjYWxlKHRoaXMueUV4dGVudCgpWzFdKSl9LGJvdHRvbVJpZ2h0Ont4OnRoaXMuX3hCb3VuZHNNb2RlPT09ZS5QSVhFTD90aGlzLl9ib3hCb3VuZHMuYm90dG9tUmlnaHQueDpudWxsPT10aGlzLl94U2NhbGU/MDpNYXRoLm1heCh0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzBdKSx0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzFdKSkseTp0aGlzLl95Qm91bmRzTW9kZT09PWUuUElYRUw/dGhpcy5fYm94Qm91bmRzLmJvdHRvbVJpZ2h0Lnk6bnVsbD09dGhpcy5feVNjYWxlPzA6TWF0aC5tYXgodGhpcy55U2NhbGUoKS5zY2FsZSh0aGlzLnlFeHRlbnQoKVswXSksdGhpcy55U2NhbGUoKS5zY2FsZSh0aGlzLnlFeHRlbnQoKVsxXSkpfX19LHIucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7aWYodC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKSx0aGlzLl9ib3hWaXNpYmxlKXt2YXIgZT10aGlzLmJvdW5kcygpLG49ZS50b3BMZWZ0Lnkscj1lLmJvdHRvbVJpZ2h0Lnksbz1lLnRvcExlZnQueCxhPWUuYm90dG9tUmlnaHQueDtpZighKGkuTWF0aC5pc1ZhbGlkTnVtYmVyKG4pJiZpLk1hdGguaXNWYWxpZE51bWJlcihyKSYmaS5NYXRoLmlzVmFsaWROdW1iZXIobykmJmkuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpKSl0aHJvdyBuZXcgRXJyb3IoImJvdW5kcyBoYXZlIG5vdCBiZWVuIHByb3Blcmx5IHNldCIpO3RoaXMuX2JveEFyZWEuYXR0cnMoe3g6byx5Om4sd2lkdGg6YS1vLGhlaWdodDpyLW59KSx0aGlzLmNvbnRlbnQoKS5ub2RlKCkuYXBwZW5kQ2hpbGQodGhpcy5fYm94Lm5vZGUoKSl9ZWxzZSB0aGlzLl9ib3gucmVtb3ZlKCk7cmV0dXJuIHRoaXN9LHIucHJvdG90eXBlLmJveFZpc2libGU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYm94VmlzaWJsZToodGhpcy5fYm94VmlzaWJsZT10LHRoaXMucmVuZGVyKCksdGhpcyl9LHIucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sci5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sci5wcm90b3R5cGUueFNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3hTY2FsZToobnVsbCE9dGhpcy5feFNjYWxlJiZ0aGlzLl94U2NhbGUub2ZmVXBkYXRlKHRoaXMuX2FkanVzdEJvdW5kc0NhbGxiYWNrKSx0aGlzLl94U2NhbGU9dCx0aGlzLl94Qm91bmRzTW9kZT1lLlZBTFVFLHRoaXMuX3hTY2FsZS5vblVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayksdGhpcy5yZW5kZXIoKSx0aGlzKX0sci5wcm90b3R5cGUueVNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3lTY2FsZToobnVsbCE9dGhpcy5feVNjYWxlJiZ0aGlzLl95U2NhbGUub2ZmVXBkYXRlKHRoaXMuX2FkanVzdEJvdW5kc0NhbGxiYWNrKSx0aGlzLl95U2NhbGU9dCx0aGlzLl95Qm91bmRzTW9kZT1lLlZBTFVFLHRoaXMuX3lTY2FsZS5vblVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayksdGhpcy5yZW5kZXIoKSx0aGlzKX0sci5wcm90b3R5cGUueEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9nZXRYRXh0ZW50KCk6KHRoaXMuX3NldFhFeHRlbnQodCksdGhpcy5feEJvdW5kc01vZGU9ZS5WQUxVRSx0aGlzLnJlbmRlcigpLHRoaXMpfSxyLnByb3RvdHlwZS5fZ2V0WEV4dGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl94Qm91bmRzTW9kZT09PWUuVkFMVUU/dGhpcy5feEV4dGVudDpudWxsPT10aGlzLl94U2NhbGU/W3ZvaWQgMCx2b2lkIDBdOlt0aGlzLl94U2NhbGUuaW52ZXJ0KHRoaXMuX2JveEJvdW5kcy50b3BMZWZ0LngpLHRoaXMuX3hTY2FsZS5pbnZlcnQodGhpcy5fYm94Qm91bmRzLmJvdHRvbVJpZ2h0LngpXX0sci5wcm90b3R5cGUuX3NldFhFeHRlbnQ9ZnVuY3Rpb24odCl7dGhpcy5feEV4dGVudD10fSxyLnByb3RvdHlwZS55RXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2dldFlFeHRlbnQoKToodGhpcy5fc2V0WUV4dGVudCh0KSx0aGlzLl95Qm91bmRzTW9kZT1lLlZBTFVFLHRoaXMucmVuZGVyKCksdGhpcyl9LHIucHJvdG90eXBlLl9nZXRZRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3lCb3VuZHNNb2RlPT09ZS5WQUxVRT90aGlzLl95RXh0ZW50Om51bGw9PXRoaXMuX3lTY2FsZT9bdm9pZCAwLHZvaWQgMF06W3RoaXMuX3lTY2FsZS5pbnZlcnQodGhpcy5fYm94Qm91bmRzLnRvcExlZnQueSksdGhpcy5feVNjYWxlLmludmVydCh0aGlzLl9ib3hCb3VuZHMuYm90dG9tUmlnaHQueSldfSxyLnByb3RvdHlwZS5fc2V0WUV4dGVudD1mdW5jdGlvbih0KXt0aGlzLl95RXh0ZW50PXR9LHIucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksbnVsbCE9dGhpcy5feFNjYWxlJiZ0aGlzLnhTY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayksbnVsbCE9dGhpcy5feVNjYWxlJiZ0aGlzLnlTY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayl9LHJ9KShyLkNvbXBvbmVudCk7dC5TZWxlY3Rpb25Cb3hMYXllcj1vfSkoSmJ0KSwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHJidCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFFidD11Tyx0eHQ9b2J0LGV4dD1GZ3Qsbnh0PWJtdCxpeHQ9aWJ0LHJ4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fZGV0ZWN0aW9uUmFkaXVzPTMsZS5fcmVzaXphYmxlPSExLGUuX21vdmFibGU9ITEsZS5faGFzQ29ybmVycz0hMCxlLmFkZENsYXNzKCJkcmFnLWJveC1sYXllciIpLGUuX2RyYWdJbnRlcmFjdGlvbj1uZXcgdHh0LkRyYWcsZS5fc2V0VXBDYWxsYmFja3MoKSxlLl9kcmFnSW50ZXJhY3Rpb24uYXR0YWNoVG8oZSksZS5fZHJhZ1N0YXJ0Q2FsbGJhY2tzPW5ldyBleHQuQ2FsbGJhY2tTZXQsZS5fZHJhZ0NhbGxiYWNrcz1uZXcgZXh0LkNhbGxiYWNrU2V0LGUuX2RyYWdFbmRDYWxsYmFja3M9bmV3IGV4dC5DYWxsYmFja1NldCxlfXJldHVybiBRYnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX3NldFVwQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLGkscj10aGlzLG89MCxhPWZ1bmN0aW9uKGEpe3Q9ci5fZ2V0UmVzaXppbmdFZGdlcyhhKTt2YXIgcz1yLmJvdW5kcygpLGw9cy50b3BMZWZ0Lng8PWEueCYmYS54PD1zLmJvdHRvbVJpZ2h0LngmJnMudG9wTGVmdC55PD1hLnkmJmEueTw9cy5ib3R0b21SaWdodC55O3IuYm94VmlzaWJsZSgpJiYodC50b3B8fHQuYm90dG9tfHx0LmxlZnR8fHQucmlnaHQpP289MTpyLmJveFZpc2libGUoKSYmci5tb3ZhYmxlKCkmJmw/bz0yOihvPTAsci5fc2V0Qm91bmRzKHt0b3BMZWZ0OmEsYm90dG9tUmlnaHQ6YX0pLHIuX3hCb3VuZHNNb2RlPT09aXh0LlByb3BlcnR5TW9kZS5WQUxVRSYmbnVsbCE9ci54U2NhbGUoKSYmci5fc2V0WEV4dGVudChbci54U2NhbGUoKS5pbnZlcnQoYS54KSxyLnhTY2FsZSgpLmludmVydChhLngpXSksci5feUJvdW5kc01vZGU9PT1peHQuUHJvcGVydHlNb2RlLlZBTFVFJiZudWxsIT1yLnlTY2FsZSgpJiZyLl9zZXRZRXh0ZW50KFtyLnlTY2FsZSgpLmludmVydChhLnkpLHIueVNjYWxlKCkuaW52ZXJ0KGEueSldKSxyLnJlbmRlcigpKSxyLmJveFZpc2libGUoITApLHM9ci5ib3VuZHMoKSxlPXt4OnMudG9wTGVmdC54LHk6cy50b3BMZWZ0Lnl9LG49e3g6cy5ib3R0b21SaWdodC54LHk6cy5ib3R0b21SaWdodC55fSxpPWEsci5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmNhbGxDYWxsYmFja3Mocyl9LHM9ZnVuY3Rpb24oYSxzKXtzd2l0Y2gobyl7Y2FzZSAwOm4ueD1zLngsbi55PXMueTticmVhaztjYXNlIDE6dC5ib3R0b20/bi55PXMueTp0LnRvcCYmKGUueT1zLnkpLHQucmlnaHQ/bi54PXMueDp0LmxlZnQmJihlLng9cy54KTticmVhaztjYXNlIDI6dmFyIGw9cy54LWkueCxjPXMueS1pLnk7ZS54Kz1sLGUueSs9YyxuLngrPWwsbi55Kz1jLGk9c31yLl9zZXRCb3VuZHMoe3RvcExlZnQ6ZSxib3R0b21SaWdodDpufSksci5feEJvdW5kc01vZGU9PT1peHQuUHJvcGVydHlNb2RlLlZBTFVFJiZudWxsIT1yLnhTY2FsZSgpJiZyLl9zZXRYRXh0ZW50KFtyLnhTY2FsZSgpLmludmVydChlLngpLHIueFNjYWxlKCkuaW52ZXJ0KG4ueCldKSxyLl95Qm91bmRzTW9kZT09PWl4dC5Qcm9wZXJ0eU1vZGUuVkFMVUUmJm51bGwhPXIueVNjYWxlKCkmJnIuX3NldFlFeHRlbnQoW3IueVNjYWxlKCkuaW52ZXJ0KGUueSksci55U2NhbGUoKS5pbnZlcnQobi55KV0pLHIucmVuZGVyKCksci5fZHJhZ0NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHIuYm91bmRzKCkpfSxsPWZ1bmN0aW9uKHQsZSl7MD09PW8mJnQueD09PWUueCYmdC55PT09ZS55JiZyLmJveFZpc2libGUoITEpLHIuX2RyYWdFbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhyLmJvdW5kcygpKX07dGhpcy5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ1N0YXJ0KGEpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWcocyksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ0VuZChsKSx0aGlzLl9kaXNjb25uZWN0SW50ZXJhY3Rpb249ZnVuY3Rpb24oKXtyLl9kcmFnSW50ZXJhY3Rpb24ub2ZmRHJhZ1N0YXJ0KGEpLHIuX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnKHMpLHIuX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnRW5kKGwpLHIuX2RyYWdJbnRlcmFjdGlvbi5kZXRhY2goKX19LGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyk7dmFyIG49ZnVuY3Rpb24oKXtyZXR1cm4gZS5fYm94LmFwcGVuZCgibGluZSIpLnN0eWxlcyh7b3BhY2l0eTowLHN0cm9rZToicGluayIsInBvaW50ZXItZXZlbnRzIjoidmlzaWJsZVN0cm9rZSJ9KX07aWYodGhpcy5fZGV0ZWN0aW9uRWRnZVQ9bigpLmNsYXNzZWQoImRyYWctZWRnZS10YiIsITApLHRoaXMuX2RldGVjdGlvbkVkZ2VCPW4oKS5jbGFzc2VkKCJkcmFnLWVkZ2UtdGIiLCEwKSx0aGlzLl9kZXRlY3Rpb25FZGdlTD1uKCkuY2xhc3NlZCgiZHJhZy1lZGdlLWxyIiwhMCksdGhpcy5fZGV0ZWN0aW9uRWRnZVI9bigpLmNsYXNzZWQoImRyYWctZWRnZS1sciIsITApLHRoaXMuX2hhc0Nvcm5lcnMpe3ZhciBpPWZ1bmN0aW9uKCl7cmV0dXJuIGUuX2JveC5hcHBlbmQoImNpcmNsZSIpLnN0eWxlcyh7b3BhY2l0eTowLGZpbGw6InBpbmsiLCJwb2ludGVyLWV2ZW50cyI6InZpc2libGVGaWxsIn0pfTt0aGlzLl9kZXRlY3Rpb25Db3JuZXJUTD1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItdGwiLCEwKSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJUUj1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItdHIiLCEwKSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJCTD1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItYmwiLCEwKSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJCUj1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItYnIiLCEwKX19LGUucHJvdG90eXBlLl9nZXRSZXNpemluZ0VkZ2VzPWZ1bmN0aW9uKHQpe3ZhciBlPXt0b3A6ITEsYm90dG9tOiExLGxlZnQ6ITEscmlnaHQ6ITF9O2lmKCF0aGlzLnJlc2l6YWJsZSgpKXJldHVybiBlO3ZhciBuPXRoaXMuYm91bmRzKCksaT1uLnRvcExlZnQueSxyPW4uYm90dG9tUmlnaHQueSxvPW4udG9wTGVmdC54LGE9bi5ib3R0b21SaWdodC54LHM9dGhpcy5fZGV0ZWN0aW9uUmFkaXVzO3JldHVybiBvLXM8PXQueCYmdC54PD1hK3MmJihlLnRvcD1pLXM8PXQueSYmdC55PD1pK3MsZS5ib3R0b209ci1zPD10LnkmJnQueTw9citzKSxpLXM8PXQueSYmdC55PD1yK3MmJihlLmxlZnQ9by1zPD10LngmJnQueDw9bytzLGUucmlnaHQ9YS1zPD10LngmJnQueDw9YStzKSxlfSxlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe2lmKHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5ib3hWaXNpYmxlKCkpe3ZhciBlPXRoaXMuYm91bmRzKCksbj1lLnRvcExlZnQueSxpPWUuYm90dG9tUmlnaHQueSxyPWUudG9wTGVmdC54LG89ZS5ib3R0b21SaWdodC54O3RoaXMuX2RldGVjdGlvbkVkZ2VULmF0dHJzKHt4MTpyLHkxOm4seDI6byx5MjpuLCJzdHJva2Utd2lkdGgiOjIqdGhpcy5fZGV0ZWN0aW9uUmFkaXVzfSksdGhpcy5fZGV0ZWN0aW9uRWRnZUIuYXR0cnMoe3gxOnIseTE6aSx4MjpvLHkyOmksInN0cm9rZS13aWR0aCI6Mip0aGlzLl9kZXRlY3Rpb25SYWRpdXN9KSx0aGlzLl9kZXRlY3Rpb25FZGdlTC5hdHRycyh7eDE6cix5MTpuLHgyOnIseTI6aSwic3Ryb2tlLXdpZHRoIjoyKnRoaXMuX2RldGVjdGlvblJhZGl1c30pLHRoaXMuX2RldGVjdGlvbkVkZ2VSLmF0dHJzKHt4MTpvLHkxOm4seDI6byx5MjppLCJzdHJva2Utd2lkdGgiOjIqdGhpcy5fZGV0ZWN0aW9uUmFkaXVzfSksdGhpcy5faGFzQ29ybmVycyYmKHRoaXMuX2RldGVjdGlvbkNvcm5lclRMLmF0dHJzKHtjeDpyLGN5Om4scjp0aGlzLl9kZXRlY3Rpb25SYWRpdXN9KSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJUUi5hdHRycyh7Y3g6byxjeTpuLHI6dGhpcy5fZGV0ZWN0aW9uUmFkaXVzfSksdGhpcy5fZGV0ZWN0aW9uQ29ybmVyQkwuYXR0cnMoe2N4OnIsY3k6aSxyOnRoaXMuX2RldGVjdGlvblJhZGl1c30pLHRoaXMuX2RldGVjdGlvbkNvcm5lckJSLmF0dHJzKHtjeDpvLGN5Omkscjp0aGlzLl9kZXRlY3Rpb25SYWRpdXN9KSl9cmV0dXJuIHRoaXN9LGUucHJvdG90eXBlLmRldGVjdGlvblJhZGl1cz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9kZXRlY3Rpb25SYWRpdXM7aWYodDwwKXRocm93IG5ldyBFcnJvcigiZGV0ZWN0aW9uIHJhZGl1cyBjYW5ub3QgYmUgbmVnYXRpdmUuIik7cmV0dXJuIHRoaXMuX2RldGVjdGlvblJhZGl1cz10LHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUucmVzaXphYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3Jlc2l6YWJsZToodGhpcy5fcmVzaXphYmxlPXQsdGhpcy5fc2V0UmVzaXphYmxlQ2xhc3Nlcyh0KSx0aGlzKX0sZS5wcm90b3R5cGUuX3NldFJlc2l6YWJsZUNsYXNzZXM9ZnVuY3Rpb24odCl7dCYmdGhpcy5lbmFibGVkKCk/KHRoaXMuYWRkQ2xhc3MoIngtcmVzaXphYmxlIiksdGhpcy5hZGRDbGFzcygieS1yZXNpemFibGUiKSk6KHRoaXMucmVtb3ZlQ2xhc3MoIngtcmVzaXphYmxlIiksdGhpcy5yZW1vdmVDbGFzcygieS1yZXNpemFibGUiKSl9LGUucHJvdG90eXBlLm1vdmFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbW92YWJsZToodGhpcy5fbW92YWJsZT10LHRoaXMuX3NldE1vdmFibGVDbGFzcygpLHRoaXMpfSxlLnByb3RvdHlwZS5fc2V0TW92YWJsZUNsYXNzPWZ1bmN0aW9uKCl7dGhpcy5tb3ZhYmxlKCkmJnRoaXMuZW5hYmxlZCgpP3RoaXMuYWRkQ2xhc3MoIm1vdmFibGUiKTp0aGlzLnJlbW92ZUNsYXNzKCJtb3ZhYmxlIil9LGUucHJvdG90eXBlLm9uRHJhZ1N0YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnU3RhcnRDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRyYWdTdGFydD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vbkRyYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRyYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLm9uRHJhZ0VuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmRHJhZ0VuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUuZHJhZ0ludGVyYWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RyYWdJbnRlcmFjdGlvbn0sZS5wcm90b3R5cGUuZW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9kcmFnSW50ZXJhY3Rpb24uZW5hYmxlZCgpOih0aGlzLl9kcmFnSW50ZXJhY3Rpb24uZW5hYmxlZCh0KSx0aGlzLl9zZXRSZXNpemFibGVDbGFzc2VzKHRoaXMucmVzaXphYmxlKCkpLHRoaXMuX3NldE1vdmFibGVDbGFzcygpLHRoaXMpfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZSh0KX0pKSx0aGlzLl9kcmFnQ2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZSh0KX0pKSx0aGlzLl9kcmFnRW5kQ2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9kcmFnRW5kQ2FsbGJhY2tzLmRlbGV0ZSh0KX0pKSx0aGlzLl9kaXNjb25uZWN0SW50ZXJhY3Rpb24oKX0sZS5wcm90b3R5cGUuZGV0YWNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jlc2V0U3RhdGUoKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24uZGV0YWNoKCksdC5wcm90b3R5cGUuZGV0YWNoLmNhbGwodGhpcyksdGhpc30sZS5wcm90b3R5cGUuYW5jaG9yPWZ1bmN0aW9uKGUpe3JldHVybiBlPW54dC5jb2VyY2VFeHRlcm5hbEQzKGUpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5hdHRhY2hUbyh0aGlzKSx0LnByb3RvdHlwZS5hbmNob3IuY2FsbCh0aGlzLGUpLHRoaXN9LGUucHJvdG90eXBlLl9yZXNldFN0YXRlPWZ1bmN0aW9uKCl7dGhpcy5ib3VuZHMoe3RvcExlZnQ6e3g6MCx5OjB9LGJvdHRvbVJpZ2h0Ont4OjAseTowfX0pfSxlfSkoSmJ0LlNlbGVjdGlvbkJveExheWVyKTtyYnQuRHJhZ0JveExheWVyPXJ4dDt2YXIgb3h0PXt9LGF4dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGF4dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHN4dCxseHQ9dU8sY3h0PUZndCx1eHQ9Qmd0OyEoZnVuY3Rpb24odCl7dFt0LlZBTFVFPTBdPSJWQUxVRSIsdFt0LlBJWEVMPTFdPSJQSVhFTCJ9KShzeHR8fChzeHQ9e30pKTt2YXIgaHh0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztpZihpLl9tb2RlPXN4dC5WQUxVRSxuIT09ZS5PUklFTlRBVElPTl9WRVJUSUNBTCYmbiE9PWUuT1JJRU5UQVRJT05fSE9SSVpPTlRBTCl0aHJvdyBuZXcgRXJyb3IobisiIGlzIG5vdCBhIHZhbGlkIG9yaWVudGF0aW9uIGZvciBHdWlkZUxpbmVMYXllciIpO3JldHVybiBpLl9vcmllbnRhdGlvbj1uLGkuX292ZXJmbG93SGlkZGVuPSEwLGkuYWRkQ2xhc3MoImd1aWRlLWxpbmUtbGF5ZXIiKSxpLl9pc1ZlcnRpY2FsKCk/aS5hZGRDbGFzcygidmVydGljYWwiKTppLmFkZENsYXNzKCJob3Jpem9udGFsIiksaS5fc2NhbGVVcGRhdGVDYWxsYmFjaz1mdW5jdGlvbigpe2kuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWUoKSxpLnJlbmRlcigpfSxpfXJldHVybiBseHQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fZ3VpZGVMaW5lPXRoaXMuY29udGVudCgpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImd1aWRlLWxpbmUiLCEwKX0sZS5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm57d2lkdGg6dCxoZWlnaHQ6ZX19LGUucHJvdG90eXBlLl9pc1ZlcnRpY2FsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9uPT09ZS5PUklFTlRBVElPTl9WRVJUSUNBTH0sZS5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3JldHVybiEwfSxlLnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiEwfSxlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gdC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsZSxuLGkpLG51bGwhPXRoaXMuc2NhbGUoKSYmKHRoaXMuX2lzVmVydGljYWwoKT90aGlzLnNjYWxlKCkucmFuZ2UoWzAsdGhpcy53aWR0aCgpXSk6dGhpcy5zY2FsZSgpLnJhbmdlKFt0aGlzLmhlaWdodCgpLDBdKSksdGhpc30sZS5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXtyZXR1cm4gdC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKSx0aGlzLl9zeW5jUGl4ZWxQb3NpdGlvbkFuZFZhbHVlKCksdGhpcy5fZ3VpZGVMaW5lLmF0dHJzKHt4MTp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5waXhlbFBvc2l0aW9uKCk6MCx5MTp0aGlzLl9pc1ZlcnRpY2FsKCk/MDp0aGlzLnBpeGVsUG9zaXRpb24oKSx4Mjp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5waXhlbFBvc2l0aW9uKCk6dGhpcy53aWR0aCgpLHkyOnRoaXMuX2lzVmVydGljYWwoKT90aGlzLmhlaWdodCgpOnRoaXMucGl4ZWxQb3NpdGlvbigpfSksdGhpc30sZS5wcm90b3R5cGUuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWU9ZnVuY3Rpb24oKXtudWxsIT10aGlzLnNjYWxlKCkmJih0aGlzLl9tb2RlPT09c3h0LlZBTFVFJiZudWxsIT10aGlzLnZhbHVlKCk/dGhpcy5fcGl4ZWxQb3NpdGlvbj10aGlzLnNjYWxlKCkuc2NhbGUodGhpcy52YWx1ZSgpKTp0aGlzLl9tb2RlPT09c3h0LlBJWEVMJiZudWxsIT10aGlzLnBpeGVsUG9zaXRpb24oKSYmKHRoaXMuX3ZhbHVlPXRoaXMuc2NhbGUoKS5pbnZlcnQodGhpcy5waXhlbFBvc2l0aW9uKCkpKSl9LGUucHJvdG90eXBlLl9zZXRQaXhlbFBvc2l0aW9uV2l0aG91dENoYW5naW5nTW9kZT1mdW5jdGlvbih0KXt0aGlzLl9waXhlbFBvc2l0aW9uPXQsbnVsbCE9dGhpcy5zY2FsZSgpJiYodGhpcy5fdmFsdWU9dGhpcy5zY2FsZSgpLmludmVydCh0aGlzLnBpeGVsUG9zaXRpb24oKSkpLHRoaXMucmVuZGVyKCl9LGUucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3NjYWxlO3ZhciBlPXRoaXMuX3NjYWxlO3JldHVybiBudWxsIT1lJiZlLm9mZlVwZGF0ZSh0aGlzLl9zY2FsZVVwZGF0ZUNhbGxiYWNrKSx0aGlzLl9zY2FsZT10LHRoaXMuX3NjYWxlLm9uVXBkYXRlKHRoaXMuX3NjYWxlVXBkYXRlQ2FsbGJhY2spLHRoaXMuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWUoKSx0aGlzLnJlZHJhdygpLHRoaXN9LGUucHJvdG90eXBlLnZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3ZhbHVlOih0aGlzLl92YWx1ZT10LHRoaXMuX21vZGU9c3h0LlZBTFVFLHRoaXMuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWUoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5waXhlbFBvc2l0aW9uPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3BpeGVsUG9zaXRpb247aWYoIWN4dC5NYXRoLmlzVmFsaWROdW1iZXIodCkpdGhyb3cgbmV3IEVycm9yKCJwaXhlbFBvc2l0aW9uIG11c3QgYmUgYSBmaW5pdGUgbnVtYmVyIik7cmV0dXJuIHRoaXMuX3BpeGVsUG9zaXRpb249dCx0aGlzLl9tb2RlPXN4dC5QSVhFTCx0aGlzLl9zeW5jUGl4ZWxQb3NpdGlvbkFuZFZhbHVlKCksdGhpcy5yZW5kZXIoKSx0aGlzfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLG51bGwhPXRoaXMuc2NhbGUoKSYmdGhpcy5zY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9zY2FsZVVwZGF0ZUNhbGxiYWNrKX0sZS5PUklFTlRBVElPTl9WRVJUSUNBTD0idmVydGljYWwiLGUuT1JJRU5UQVRJT05fSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCIsZX0pKHV4dC5Db21wb25lbnQpO2F4dC5HdWlkZUxpbmVMYXllcj1oeHQsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShveHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBkeHQ9dU8scHh0PW9idCxmeHQ9Rmd0LG14dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyxlKXx8dGhpcztuLl9kZXRlY3Rpb25SYWRpdXM9MyxuLl9lbmFibGVkPSEwLG4uYWRkQ2xhc3MoImRyYWctbGluZS1sYXllciIpLG4uYWRkQ2xhc3MoImVuYWJsZWQiKSxuLl9kcmFnSW50ZXJhY3Rpb249bmV3IHB4dC5EcmFnLG4uX2RyYWdJbnRlcmFjdGlvbi5hdHRhY2hUbyhuKTt2YXIgaT0hMSxyPWZ1bmN0aW9uKHQpeyhmdW5jdGlvbih0KXtyZXR1cm4gbi5faXNWZXJ0aWNhbCgpJiZuLnBpeGVsUG9zaXRpb24oKS1uLmRldGVjdGlvblJhZGl1cygpPD10LngmJnQueDw9bi5waXhlbFBvc2l0aW9uKCkrbi5kZXRlY3Rpb25SYWRpdXMoKXx8IW4uX2lzVmVydGljYWwoKSYmbi5waXhlbFBvc2l0aW9uKCktbi5kZXRlY3Rpb25SYWRpdXMoKTw9dC55JiZ0Lnk8PW4ucGl4ZWxQb3NpdGlvbigpK24uZGV0ZWN0aW9uUmFkaXVzKCl9KSh0KSYmKGk9ITAsbi5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobikpfTtuLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnU3RhcnQocik7dmFyIG89ZnVuY3Rpb24odCxlKXtpJiYobi5fc2V0UGl4ZWxQb3NpdGlvbldpdGhvdXRDaGFuZ2luZ01vZGUobi5faXNWZXJ0aWNhbCgpP2UueDplLnkpLG4uX2RyYWdDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhuKSl9O24uX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWcobyk7dmFyIGE9ZnVuY3Rpb24odCxlKXtpJiYoaT0hMSxuLl9kcmFnRW5kQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobikpfTtyZXR1cm4gbi5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ0VuZChhKSxuLl9kaXNjb25uZWN0SW50ZXJhY3Rpb249ZnVuY3Rpb24oKXtuLl9kcmFnSW50ZXJhY3Rpb24ub2ZmRHJhZ1N0YXJ0KHIpLG4uX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnKG8pLG4uX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnRW5kKGEpLG4uX2RyYWdJbnRlcmFjdGlvbi5kZXRhY2goKX0sbi5fZHJhZ1N0YXJ0Q2FsbGJhY2tzPW5ldyBmeHQuQ2FsbGJhY2tTZXQsbi5fZHJhZ0NhbGxiYWNrcz1uZXcgZnh0LkNhbGxiYWNrU2V0LG4uX2RyYWdFbmRDYWxsYmFja3M9bmV3IGZ4dC5DYWxsYmFja1NldCxufXJldHVybiBkeHQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fZGV0ZWN0aW9uRWRnZT10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImxpbmUiKS5zdHlsZXMoe29wYWNpdHk6MCxzdHJva2U6InBpbmsiLCJwb2ludGVyLWV2ZW50cyI6InZpc2libGVTdHJva2UifSkuY2xhc3NlZCgiZHJhZy1lZGdlIiwhMCl9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5fZGV0ZWN0aW9uRWRnZS5hdHRycyh7eDE6dGhpcy5faXNWZXJ0aWNhbCgpP3RoaXMucGl4ZWxQb3NpdGlvbigpOjAseTE6dGhpcy5faXNWZXJ0aWNhbCgpPzA6dGhpcy5waXhlbFBvc2l0aW9uKCkseDI6dGhpcy5faXNWZXJ0aWNhbCgpP3RoaXMucGl4ZWxQb3NpdGlvbigpOnRoaXMud2lkdGgoKSx5Mjp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5oZWlnaHQoKTp0aGlzLnBpeGVsUG9zaXRpb24oKSwic3Ryb2tlLXdpZHRoIjoyKnRoaXMuX2RldGVjdGlvblJhZGl1c30pLHRoaXN9LGUucHJvdG90eXBlLmRldGVjdGlvblJhZGl1cz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9kZXRlY3Rpb25SYWRpdXM7aWYodDwwKXRocm93IG5ldyBFcnJvcigiZGV0ZWN0aW9uIHJhZGl1cyBjYW5ub3QgYmUgbmVnYXRpdmUuIik7cmV0dXJuIHRoaXMuX2RldGVjdGlvblJhZGl1cz10LHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUuZW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9lbmFibGVkOih0aGlzLl9lbmFibGVkPXQsdD90aGlzLmFkZENsYXNzKCJlbmFibGVkIik6dGhpcy5yZW1vdmVDbGFzcygiZW5hYmxlZCIpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5lbmFibGVkKHQpLHRoaXMpfSxlLnByb3RvdHlwZS5vbkRyYWdTdGFydD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEcmFnU3RhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdTdGFydENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUub25EcmFnPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEcmFnPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vbkRyYWdFbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRyYWdFbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9kcmFnU3RhcnRDYWxsYmFja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2RyYWdTdGFydENhbGxiYWNrcy5kZWxldGUodCl9KSksdGhpcy5fZHJhZ0NhbGxiYWNrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fZHJhZ0NhbGxiYWNrcy5kZWxldGUodCl9KSksdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fZHJhZ0VuZENhbGxiYWNrcy5kZWxldGUodCl9KSksdGhpcy5fZGlzY29ubmVjdEludGVyYWN0aW9uKCl9LGV9KShheHQuR3VpZGVMaW5lTGF5ZXIpO294dC5EcmFnTGluZUxheWVyPW14dDt2YXIgZ3h0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShneHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBfeHQ9dU87ZnVuY3Rpb24geXh0KHQsZSxuKXt2YXIgaT17fTtpZih2b2lkIDAhPT1uKWZvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKWlbbltyXV09bltyLTFdO3JldHVybiBmdW5jdGlvbihuKXt2YXIgcixvPXQuc2NhbGUobik7aWYoIWUpcmV0dXJuIG87dmFyIGE9dm9pZCAwPT09aVtuXT92b2lkIDA6dC5zY2FsZShpW25dKTtyZXR1cm4gdm9pZCAwIT09YSYmKHI9YSsoby1hKS8yKSxyfX12YXIgdnh0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLmFkZENsYXNzKCJncmlkbGluZXMiKSxpLl94U2NhbGU9ZSxpLl95U2NhbGU9bixpLl9yZW5kZXJDYWxsYmFjaz1mdW5jdGlvbih0KXtyZXR1cm4gaS5yZW5kZXIoKX0saS5feFNjYWxlJiZpLl94U2NhbGUub25VcGRhdGUoaS5fcmVuZGVyQ2FsbGJhY2spLGkuX3lTY2FsZSYmaS5feVNjYWxlLm9uVXBkYXRlKGkuX3JlbmRlckNhbGxiYWNrKSxpfXJldHVybiBfeHQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuYmV0d2Vlblg9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5fYmV0d2Vlblg6KHQhPT10aGlzLl9iZXR3ZWVuWCYmKHRoaXMuX2JldHdlZW5YPXQsdGhpcy5yZW5kZXIoKSksdGhpcyl9LGUucHJvdG90eXBlLmJldHdlZW5ZPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P3RoaXMuX2JldHdlZW5ZOih0IT09dGhpcy5fYmV0d2VlblkmJih0aGlzLl9iZXR3ZWVuWT10LHRoaXMucmVuZGVyKCkpLHRoaXMpfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl94U2NhbGUmJnRoaXMuX3hTY2FsZS5vZmZVcGRhdGUodGhpcy5fcmVuZGVyQ2FsbGJhY2spLHRoaXMuX3lTY2FsZSYmdGhpcy5feVNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9yZW5kZXJDYWxsYmFjayksdGhpc30sZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5feExpbmVzQ29udGFpbmVyPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpLmNsYXNzZWQoIngtZ3JpZGxpbmVzIiwhMCksdGhpcy5feUxpbmVzQ29udGFpbmVyPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInktZ3JpZGxpbmVzIiwhMCl9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5fcmVkcmF3WExpbmVzKCksdGhpcy5fcmVkcmF3WUxpbmVzKCksdGhpc30sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKSxudWxsIT10aGlzLl94U2NhbGUmJnRoaXMuX3hTY2FsZS5yYW5nZShbMCx0aGlzLndpZHRoKCldKSxudWxsIT10aGlzLl95U2NhbGUmJnRoaXMuX3lTY2FsZS5yYW5nZShbdGhpcy5oZWlnaHQoKSwwXSksdGhpc30sZS5wcm90b3R5cGUuX3JlZHJhd1hMaW5lcz1mdW5jdGlvbigpe2lmKHRoaXMuX3hTY2FsZSl7dmFyIHQ9dGhpcy5iZXR3ZWVuWCgpLGU9dGhpcy5feFNjYWxlLnRpY2tzKCkuc2xpY2UodD8xOjApLG49dGhpcy5feExpbmVzQ29udGFpbmVyLnNlbGVjdEFsbCgibGluZSIpLmRhdGEoZSk7bi5lbnRlcigpLmFwcGVuZCgibGluZSIpLm1lcmdlKG4pLmF0dHIoIngxIix5eHQodGhpcy5feFNjYWxlLHQsdGhpcy5feFNjYWxlLnRpY2tzKCkpKS5hdHRyKCJ5MSIsMCkuYXR0cigieDIiLHl4dCh0aGlzLl94U2NhbGUsdCx0aGlzLl94U2NhbGUudGlja3MoKSkpLmF0dHIoInkyIix0aGlzLmhlaWdodCgpKS5jbGFzc2VkKCJiZXR3ZWVubGluZSIsdCkuY2xhc3NlZCgiemVyb2xpbmUiLChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXR9KSksbi5leGl0KCkucmVtb3ZlKCl9fSxlLnByb3RvdHlwZS5fcmVkcmF3WUxpbmVzPWZ1bmN0aW9uKCl7aWYodGhpcy5feVNjYWxlKXt2YXIgdD10aGlzLmJldHdlZW5ZKCksZT10aGlzLl95U2NhbGUudGlja3MoKS5zbGljZSh0PzE6MCksbj10aGlzLl95TGluZXNDb250YWluZXIuc2VsZWN0QWxsKCJsaW5lIikuZGF0YShlKTtuLmVudGVyKCkuYXBwZW5kKCJsaW5lIikubWVyZ2UobikuYXR0cigieDEiLDApLmF0dHIoInkxIix5eHQodGhpcy5feVNjYWxlLHQsdGhpcy5feVNjYWxlLnRpY2tzKCkpKS5hdHRyKCJ4MiIsdGhpcy53aWR0aCgpKS5hdHRyKCJ5MiIseXh0KHRoaXMuX3lTY2FsZSx0LHRoaXMuX3lTY2FsZS50aWNrcygpKSkuY2xhc3NlZCgiYmV0d2VlbmxpbmUiLHQpLmNsYXNzZWQoInplcm9saW5lIiwoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10fSkpLG4uZXhpdCgpLnJlbW92ZSgpfX0sZX0pKEJndC5Db21wb25lbnQpO2d4dC5HcmlkbGluZXM9dnh0O3ZhciBieHQ9e30seHh0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoeHh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgd3h0PXVPLFN4dD1ibXQsTXh0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9kZXRhY2hDYWxsYmFjaz1mdW5jdGlvbih0KXtyZXR1cm4gZS5yZW1vdmUodCl9LGV9cmV0dXJuIHd4dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5hbmNob3I9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gZT1TeHQuY29lcmNlRXh0ZXJuYWxEMyhlKSx0LnByb3RvdHlwZS5hbmNob3IuY2FsbCh0aGlzLGUpLHRoaXMuX2ZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFuY2hvcihuLmVsZW1lbnQoKSl9KSksdGhpc30sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbmRlcigpfSkpLHRoaXN9LGUucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoImhhcygpIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBDb21wb25lbnRDb250YWluZXIiKX0sZS5wcm90b3R5cGUuX2Fkb3B0QW5kQW5jaG9yPWZ1bmN0aW9uKHQpe3QucGFyZW50KHRoaXMpLHQub25EZXRhY2godGhpcy5fZGV0YWNoQ2FsbGJhY2spLHRoaXMuX2lzQW5jaG9yZWQmJnQuYW5jaG9yKHRoaXMuZWxlbWVudCgpKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhhcyh0KSYmKHQub2ZmRGV0YWNoKHRoaXMuX2RldGFjaENhbGxiYWNrKSx0aGlzLl9yZW1vdmUodCksdC5kZXRhY2goKSx0aGlzLnJlZHJhdygpKSx0aGlzfSxlLnByb3RvdHlwZS5fcmVtb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiExfSxlLnByb3RvdHlwZS5fZm9yRWFjaD1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIl9mb3JFYWNoKCkgaXMgbm90IGltcGxlbWVudGVkIG9uIENvbXBvbmVudENvbnRhaW5lciIpfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMuX2ZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRlc3Ryb3koKX0pKX0sZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dGhpcy5fZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaW52YWxpZGF0ZUNhY2hlKCl9KSl9LGV9KShCZ3QuQ29tcG9uZW50KTt4eHQuQ29tcG9uZW50Q29udGFpbmVyPU14dCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGJ4dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEV4dD11TyxUeHQ9Rmd0LEN4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2b2lkIDA9PT1lJiYoZT1bXSk7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9jb21wb25lbnRzPVtdLG4uYWRkQ2xhc3MoImNvbXBvbmVudC1ncm91cCIpLGUuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uYXBwZW5kKHQpfSkpLG59cmV0dXJuIEV4dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fZm9yRWFjaD1mdW5jdGlvbih0KXt0aGlzLmNvbXBvbmVudHMoKS5mb3JFYWNoKHQpfSxlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NvbXBvbmVudHMuaW5kZXhPZih0KT49MH0sZS5wcm90b3R5cGUucmVxdWVzdGVkU3BhY2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9jb21wb25lbnRzLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIG4ucmVxdWVzdGVkU3BhY2UodCxlKX0pKTtyZXR1cm57bWluV2lkdGg6VHh0Lk1hdGgubWF4KG4sKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1pbldpZHRofSksMCksbWluSGVpZ2h0OlR4dC5NYXRoLm1heChuLChmdW5jdGlvbih0KXtyZXR1cm4gdC5taW5IZWlnaHR9KSwwKX19LGUucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24oZSxuLGkpe3ZhciByPXRoaXM7cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKSx0aGlzLl9mb3JFYWNoKChmdW5jdGlvbih0KXt0LmNvbXB1dGVMYXlvdXQoe3g6MCx5OjB9LHIud2lkdGgoKSxyLmhlaWdodCgpKX0pKSx0aGlzfSxlLnByb3RvdHlwZS5fc2l6ZUZyb21PZmZlcj1mdW5jdGlvbih0LGUpe3JldHVybnt3aWR0aDp0LGhlaWdodDplfX0sZS5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21wb25lbnRzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5maXhlZFdpZHRoKCl9KSl9LGUucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbXBvbmVudHMuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmZpeGVkSGVpZ2h0KCl9KSl9LGUucHJvdG90eXBlLmNvbXBvbmVudHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tcG9uZW50cy5zbGljZSgpfSxlLnByb3RvdHlwZS5hcHBlbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXR8fHRoaXMuaGFzKHQpfHwodC5kZXRhY2goKSx0aGlzLl9jb21wb25lbnRzLnB1c2godCksdGhpcy5fYWRvcHRBbmRBbmNob3IodCksdGhpcy5yZWRyYXcoKSksdGhpc30sZS5wcm90b3R5cGUuX3JlbW92ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9jb21wb25lbnRzLmluZGV4T2YodCk7cmV0dXJuIGU+PTAmJih0aGlzLl9jb21wb25lbnRzLnNwbGljZShlLDEpLCEwKX0sZX0pKHh4dC5Db21wb25lbnRDb250YWluZXIpO2J4dC5Hcm91cD1DeHQ7dmFyIEF4dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoQXh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIga3h0PXVPLEx4dD1JbXQsUHh0PUxfdCxOeHQ9Z3l0LEl4dD1GZ3QsUnh0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztpZihuLl90ZXh0UGFkZGluZz01LG51bGw9PWUpdGhyb3cgbmV3IEVycm9yKCJJbnRlcnBvbGF0ZWRDb2xvckxlZ2VuZCByZXF1aXJlcyBhIGludGVycG9sYXRlZENvbG9yU2NhbGUiKTtyZXR1cm4gbi5fc2NhbGU9ZSxuLl9yZWRyYXdDYWxsYmFjaz1mdW5jdGlvbih0KXtyZXR1cm4gbi5yZWRyYXcoKX0sbi5fc2NhbGUub25VcGRhdGUobi5fcmVkcmF3Q2FsbGJhY2spLG4uX2Zvcm1hdHRlcj1OeHQuZ2VuZXJhbCgpLG4uX29yaWVudGF0aW9uPSJob3Jpem9udGFsIixuLl9leHBhbmRzPSExLG4uYWRkQ2xhc3MoImxlZ2VuZCIpLG4uYWRkQ2xhc3MoImludGVycG9sYXRlZC1jb2xvci1sZWdlbmQiKSxufXJldHVybiBreHQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9zY2FsZS5vZmZVcGRhdGUodGhpcy5fcmVkcmF3Q2FsbGJhY2spfSxlLnByb3RvdHlwZS5mb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5fZm9ybWF0dGVyOih0aGlzLl9mb3JtYXR0ZXI9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5leHBhbmRzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2V4cGFuZHM6KHRoaXMuX2V4cGFuZHM9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLl9lbnN1cmVPcmllbnRhdGlvbj1mdW5jdGlvbih0KXtpZigiaG9yaXpvbnRhbCI9PT0odD10LnRvTG93ZXJDYXNlKCkpfHwibGVmdCI9PT10fHwicmlnaHQiPT09dClyZXR1cm4gdDt0aHJvdyBuZXcgRXJyb3IoJyInK3QrJyIgaXMgbm90IGEgdmFsaWQgb3JpZW50YXRpb24gZm9yIEludGVycG9sYXRlZENvbG9yTGVnZW5kJyl9LGUucHJvdG90eXBlLm9yaWVudGF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX29yaWVudGF0aW9uOih0aGlzLl9vcmllbnRhdGlvbj1lLl9lbnN1cmVPcmllbnRhdGlvbih0KSx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5maXhlZFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZXhwYW5kcygpfHx0aGlzLl9pc1ZlcnRpY2FsKCl9LGUucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZXhwYW5kcygpfHwhdGhpcy5faXNWZXJ0aWNhbCgpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVUaWNrcz1mdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD1lLl9ERUZBVUxUX05VTV9TV0FUQ0hFUyk7dmFyIG49dGhpcy5fc2NhbGUuZG9tYWluKCk7aWYoMT09PXQpcmV0dXJuW25bMF1dO2Zvcih2YXIgaT0oblsxXS1uWzBdKS8odC0xKSxyPVtdLG89MDtvPHQ7bysrKXIucHVzaChuWzBdK2kqbyk7cmV0dXJuIHJ9LGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3N3YXRjaENvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzd2F0Y2gtY29udGFpbmVyIiwhMCksdGhpcy5fc3dhdGNoQm91bmRpbmdCb3g9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgic3dhdGNoLWJvdW5kaW5nLWJveCIsITApLHRoaXMuX2xvd2VyTGFiZWw9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZChlLkxFR0VORF9MQUJFTF9DTEFTUywhMCksdGhpcy5fdXBwZXJMYWJlbD10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKGUuTEVHRU5EX0xBQkVMX0NMQVNTLCEwKTt2YXIgbj1uZXcgTHh0LlN2Z0NvbnRleHQodGhpcy5jb250ZW50KCkubm9kZSgpKTt0aGlzLl9tZWFzdXJlcj1uZXcgTHh0Lk1lYXN1cmVyKG4pLHRoaXMuX3dyYXBwZXI9bmV3IEx4dC5XcmFwcGVyLHRoaXMuX3dyaXRlcj1uZXcgTHh0LldyaXRlcih0aGlzLl9tZWFzdXJlcixuLHRoaXMuX3dyYXBwZXIpfSxlLnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbih0LG4pe3ZhciBpLHIsbz10aGlzLGE9dGhpcy5fbWVhc3VyZXIubWVhc3VyZSgpLmhlaWdodCxzPWEsbD10aGlzLl9zY2FsZS5kb21haW4oKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvLl9tZWFzdXJlci5tZWFzdXJlKG8uX2Zvcm1hdHRlcih0KSkud2lkdGh9KSksYz1lLl9ERUZBVUxUX05VTV9TV0FUQ0hFUztpZih0aGlzLl9pc1ZlcnRpY2FsKCkpe3ZhciB1PUl4dC5NYXRoLm1heChsLDApO3I9cythK3RoaXMuX3RleHRQYWRkaW5nK3UrdGhpcy5fdGV4dFBhZGRpbmcsaT1jKmF9ZWxzZSBpPXMrYStzLHI9dGhpcy5fdGV4dFBhZGRpbmcrbFswXStjKmErbFsxXSt0aGlzLl90ZXh0UGFkZGluZztyZXR1cm57bWluV2lkdGg6cixtaW5IZWlnaHQ6aX19LGUucHJvdG90eXBlLl9pc1ZlcnRpY2FsPWZ1bmN0aW9uKCl7cmV0dXJuImhvcml6b250YWwiIT09dGhpcy5fb3JpZW50YXRpb259LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0LnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpO3ZhciBuLGkscixvLGEscyxsPXRoaXMuX3NjYWxlLmRvbWFpbigpLGM9dGhpcy5fZm9ybWF0dGVyKGxbMF0pLHU9dGhpcy5fbWVhc3VyZXIubWVhc3VyZShjKS53aWR0aCxoPXRoaXMuX2Zvcm1hdHRlcihsWzFdKSxkPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoaCkud2lkdGgscD10aGlzLl9tZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0LGY9dGhpcy5fdGV4dFBhZGRpbmcsbT17eDowLHk6MH0sZz17eDowLHk6MH0sXz17eEFsaWduOiJjZW50ZXIiLHlBbGlnbjoiY2VudGVyIix0ZXh0Um90YXRpb246MH0seT17eEFsaWduOiJjZW50ZXIiLHlBbGlnbjoiY2VudGVyIix0ZXh0Um90YXRpb246MH0sdj17eDowLHk6MCx3aWR0aDowLGhlaWdodDowfTtpZih0aGlzLl9pc1ZlcnRpY2FsKCkpe3M9TWF0aC5mbG9vcih0aGlzLmhlaWdodCgpKTt2YXIgYj1NYXRoLm1heCh1LGQpO2E9KHRoaXMud2lkdGgoKS1iLTIqdGhpcy5fdGV4dFBhZGRpbmcpLzIsbj1NYXRoLm1heCh0aGlzLndpZHRoKCktYS0yKmYtYiwwKSxpPTEsbz1mdW5jdGlvbih0LG4pe3JldHVybiBlLmhlaWdodCgpLShuKzEpfSx5LnlBbGlnbj0idG9wIixtLnk9MCxfLnlBbGlnbj0iYm90dG9tIixnLnk9MCwibGVmdCI9PT10aGlzLl9vcmllbnRhdGlvbj8ocj1mdW5jdGlvbih0LGUpe3JldHVybiBmK2IrZn0seS54QWxpZ249InJpZ2h0IixtLng9LShhK24rZiksXy54QWxpZ249InJpZ2h0IixnLng9LShhK24rZikpOihyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGF9LHkueEFsaWduPSJsZWZ0IixtLng9YStuK2YsXy54QWxpZ249ImxlZnQiLGcueD1hK24rZiksdi53aWR0aD1uLHYuaGVpZ2h0PXMqaX1lbHNlIGE9TWF0aC5tYXgoZiwodGhpcy5oZWlnaHQoKS1wKS8yKSxzPU1hdGgubWF4KE1hdGguZmxvb3IodGhpcy53aWR0aCgpLTQqZi11LWQpLDApLG49MSxpPU1hdGgubWF4KHRoaXMuaGVpZ2h0KCktMiphLDApLHI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5mbG9vcih1KzIqZikrZX0sbz1mdW5jdGlvbih0LGUpe3JldHVybiBhfSx5LnhBbGlnbj0icmlnaHQiLG0ueD0tZixfLnhBbGlnbj0ibGVmdCIsZy54PWYsdi55PWEsdi53aWR0aD1zKm4sdi5oZWlnaHQ9aTt2Lng9cihudWxsLDApLHRoaXMuX3VwcGVyTGFiZWwudGV4dCgiIiksdGhpcy5fd3JpdGVyLndyaXRlKGgsdGhpcy53aWR0aCgpLHRoaXMuaGVpZ2h0KCkseSx0aGlzLl91cHBlckxhYmVsLm5vZGUoKSksdGhpcy5fdXBwZXJMYWJlbC5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIittLngrIiwgIittLnkrIikiKSx0aGlzLl9sb3dlckxhYmVsLnRleHQoIiIpLHRoaXMuX3dyaXRlci53cml0ZShjLHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpLF8sdGhpcy5fbG93ZXJMYWJlbC5ub2RlKCkpLHRoaXMuX2xvd2VyTGFiZWwuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrZy54KyIsICIrZy55KyIpIiksdGhpcy5fc3dhdGNoQm91bmRpbmdCb3guYXR0cnModik7dmFyIHg9dGhpcy5fZ2VuZXJhdGVUaWNrcyhzKSx3PXRoaXMuX3N3YXRjaENvbnRhaW5lci5zZWxlY3RBbGwoInJlY3Quc3dhdGNoIikuZGF0YSh4KSxTPXcuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKCJzd2F0Y2giLCEwKSxNPXcubWVyZ2UoUyk7cmV0dXJuIHcuZXhpdCgpLnJlbW92ZSgpLE0uYXR0cnMoe2ZpbGw6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5fc2NhbGUuc2NhbGUodCl9LHdpZHRoOm4saGVpZ2h0OmkseDpyLHk6bywic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KSxQeHQuQUREX1RJVExFX0VMRU1FTlRTJiZTLmFwcGVuZCgidGl0bGUiKS50ZXh0KChmdW5jdGlvbih0KXtyZXR1cm4gZS5fZm9ybWF0dGVyKHQpfSkpLHRoaXN9LGUuX0RFRkFVTFRfTlVNX1NXQVRDSEVTPTExLGUuTEVHRU5EX0xBQkVMX0NMQVNTPSJsZWdlbmQtbGFiZWwiLGV9KShCZ3QuQ29tcG9uZW50KTtBeHQuSW50ZXJwb2xhdGVkQ29sb3JMZWdlbmQ9Unh0O3ZhciBPeHQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KE94dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHp4dD11TyxEeHQ9SW10LEJ4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3ZvaWQgMD09PWUmJihlPSIiKSx2b2lkIDA9PT1uJiYobj0wKTt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuYWRkQ2xhc3MoImxhYmVsIiksaS50ZXh0KGUpLGkuYW5nbGUobiksaS54QWxpZ25tZW50KCJjZW50ZXIiKS55QWxpZ25tZW50KCJjZW50ZXIiKSxpLl9wYWRkaW5nPTAsaX1yZXR1cm4genh0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fbWVhc3VyZXIubWVhc3VyZSh0aGlzLl90ZXh0KTtyZXR1cm57bWluV2lkdGg6KDA9PT10aGlzLmFuZ2xlKCk/bi53aWR0aDpuLmhlaWdodCkrMip0aGlzLnBhZGRpbmcoKSxtaW5IZWlnaHQ6KDA9PT10aGlzLmFuZ2xlKCk/bi5oZWlnaHQ6bi53aWR0aCkrMip0aGlzLnBhZGRpbmcoKX19LGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3RleHRDb250YWluZXI9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIik7dmFyIGU9bmV3IER4dC5TdmdDb250ZXh0KHRoaXMuX3RleHRDb250YWluZXIubm9kZSgpKTt0aGlzLl9tZWFzdXJlcj1uZXcgRHh0LkNhY2hlTWVhc3VyZXIoZSksdGhpcy5fd3JhcHBlcj1uZXcgRHh0LldyYXBwZXIsdGhpcy5fd3JpdGVyPW5ldyBEeHQuV3JpdGVyKHRoaXMuX21lYXN1cmVyLGUsdGhpcy5fd3JhcHBlciksdGhpcy50ZXh0KHRoaXMuX3RleHQpfSxlLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3RleHQ7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiTGFiZWwudGV4dCgpIG9ubHkgdGFrZXMgc3RyaW5ncyBhcyBpbnB1dCIpO3JldHVybiB0aGlzLl90ZXh0PXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5hbmdsZT1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9hbmdsZTtpZigodCU9MzYwKT4xODA/dC09MzYwOnQ8LTE4MCYmKHQrPTM2MCksLTkwIT09dCYmMCE9PXQmJjkwIT09dCl0aHJvdyBuZXcgRXJyb3IodCsiIGlzIG5vdCBhIHZhbGlkIGFuZ2xlIGZvciBMYWJlbCIpO3JldHVybiB0aGlzLl9hbmdsZT10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUucGFkZGluZz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9wYWRkaW5nO2lmKCh0PSt0KTwwKXRocm93IG5ldyBFcnJvcih0KyIgaXMgbm90IGEgdmFsaWQgcGFkZGluZyB2YWx1ZS4gQ2Fubm90IGJlIGxlc3MgdGhhbiAwLiIpO3JldHVybiB0aGlzLl9wYWRkaW5nPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5maXhlZFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGUucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuITB9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKSx0aGlzLl90ZXh0Q29udGFpbmVyLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpO3ZhciBlPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUodGhpcy5fdGV4dCksbj1NYXRoLm1heChNYXRoLm1pbigodGhpcy5oZWlnaHQoKS1lLmhlaWdodCkvMix0aGlzLnBhZGRpbmcoKSksMCksaT1NYXRoLm1heChNYXRoLm1pbigodGhpcy53aWR0aCgpLWUud2lkdGgpLzIsdGhpcy5wYWRkaW5nKCkpLDApO3RoaXMuX3RleHRDb250YWluZXIuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIraSsiLCIrbisiKSIpO3ZhciByPXRoaXMud2lkdGgoKS0yKmksbz10aGlzLmhlaWdodCgpLTIqbixhPXt4QWxpZ246dGhpcy54QWxpZ25tZW50KCkseUFsaWduOnRoaXMueUFsaWdubWVudCgpLHRleHRSb3RhdGlvbjp0aGlzLmFuZ2xlKCl9O3JldHVybiB0aGlzLl93cml0ZXIud3JpdGUodGhpcy5fdGV4dCxyLG8sYSksdGhpc30sZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sZX0pKEJndC5Db21wb25lbnQpO094dC5MYWJlbD1CeHQ7dmFyIEh4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuLGkpe3ZhciByPXQuY2FsbCh0aGlzLG4saSl8fHRoaXM7cmV0dXJuIHIuYWRkQ2xhc3MoZS5USVRMRV9MQUJFTF9DTEFTUykscn1yZXR1cm4genh0Ll9fZXh0ZW5kcyhlLHQpLGUuVElUTEVfTEFCRUxfQ0xBU1M9InRpdGxlLWxhYmVsIixlfSkoQnh0KTtPeHQuVGl0bGVMYWJlbD1IeHQ7dmFyIEZ4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuLGkpe3ZhciByPXQuY2FsbCh0aGlzLG4saSl8fHRoaXM7cmV0dXJuIHIuYWRkQ2xhc3MoZS5BWElTX0xBQkVMX0NMQVNTKSxyfXJldHVybiB6eHQuX19leHRlbmRzKGUsdCksZS5BWElTX0xBQkVMX0NMQVNTPSJheGlzLWxhYmVsIixlfSkoQnh0KTtPeHQuQXhpc0xhYmVsPUZ4dDt2YXIgVnh0PXt9LFV4dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KFV4dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGp4dD1FZHQ7VXh0LmNpcmNsZT1mdW5jdGlvbiBHeHQoKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGp4dC5zeW1ib2woKS50eXBlKGp4dC5zeW1ib2xDaXJjbGUpLnNpemUoTWF0aC5QSSpNYXRoLnBvdyh0LzIsMikpfX0sVXh0LnNxdWFyZT1mdW5jdGlvbiBXeHQoKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGp4dC5zeW1ib2woKS50eXBlKGp4dC5zeW1ib2xTcXVhcmUpLnNpemUoTWF0aC5wb3codCwyKSl9fSxVeHQuY3Jvc3M9ZnVuY3Rpb24gcXh0KCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBqeHQuc3ltYm9sKCkudHlwZShqeHQuc3ltYm9sQ3Jvc3MpLnNpemUoNS85Kk1hdGgucG93KHQsMikpfX0sVXh0LmRpYW1vbmQ9ZnVuY3Rpb24gWXh0KCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBqeHQuc3ltYm9sKCkudHlwZShqeHQuc3ltYm9sRGlhbW9uZCkuc2l6ZShNYXRoLnRhbihNYXRoLlBJLzYpKk1hdGgucG93KHQsMikvMil9fSxVeHQudHJpYW5nbGU9ZnVuY3Rpb24gWHh0KCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBqeHQuc3ltYm9sKCkudHlwZShqeHQuc3ltYm9sVHJpYW5nbGUpLnNpemUoTWF0aC5zcXJ0KDMpKk1hdGgucG93KHQvMiwyKSl9fSxVeHQuc3Rhcj1mdW5jdGlvbiAkeHQoKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGp4dC5zeW1ib2woKS50eXBlKGp4dC5zeW1ib2xTdGFyKS5zaXplKC44OTA4MTMwOTE1MjkyODUyKk1hdGgucG93KHQvMiwyKSl9fTt2YXIgS3h0PTMqKDEvTWF0aC5zcXJ0KDEyKS8yKzEpO1V4dC53eWU9ZnVuY3Rpb24gWnh0KCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBqeHQuc3ltYm9sKCkudHlwZShqeHQuc3ltYm9sV3llKS5zaXplKEt4dCpNYXRoLnBvdyh0LzIuNCwyKSl9fSwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ4dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEp4dD11TyxReHQ9RWR0LHR3dD1JbXQsZXd0PUxfdCxud3Q9Z3l0LGl3dD1VeHQscnd0PUZndCxvd3Q9Qmd0LGF3dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt2b2lkIDA9PT10JiYodD1bXSksdm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPT09biYmKG49MS8wKSx0aGlzLmNvbHVtbnM9dCx0aGlzLmJvdHRvbVBhZGRpbmc9ZSx0aGlzLm1heFdpZHRoPW59cmV0dXJuIHQucHJvdG90eXBlLmFkZENvbHVtbj1mdW5jdGlvbih0KXt2YXIgZT10LndpZHRoLG49dGhpcy5nZXRXaWR0aEF2YWlsYWJsZSgpO3Qud2lkdGg9TWF0aC5taW4obixlKSx0aGlzLmNvbHVtbnMucHVzaCh0KX0sdC5wcm90b3R5cGUuZ2V0Qm91bmRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmNvbHVtbnNbdF0sbj0wLGk9MDtpPHQ7aSsrKW4rPXRoaXMuY29sdW1uc1tpXS53aWR0aDtyZXR1cm57dG9wTGVmdDp7eDpuLHk6MH0sYm90dG9tUmlnaHQ6e3g6bitlLndpZHRoLHk6ZS5oZWlnaHR9fX0sdC5wcm90b3R5cGUuZ2V0SGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHJ3dC5NYXRoLm1heCh0aGlzLmNvbHVtbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5oZWlnaHR9KSksMCkrdGhpcy5ib3R0b21QYWRkaW5nfSx0LnByb3RvdHlwZS5nZXRXaWR0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLm1pbih0aGlzLmNvbHVtbnMucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2Uud2lkdGh9KSwwKSx0aGlzLm1heFdpZHRoKX0sdC5wcm90b3R5cGUuZ2V0V2lkdGhBdmFpbGFibGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldFdpZHRoKCk7cmV0dXJuIE1hdGgubWF4KHRoaXMubWF4V2lkdGgtdCwwKX0sdH0pKCksc3d0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4saSl7dm9pZCAwPT09dCYmKHQ9MS8wKSx2b2lkIDA9PT1lJiYoZT0xLzApLHZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PWkmJihpPVtdKSx0aGlzLm1heFdpZHRoPXQsdGhpcy5tYXhIZWlnaHQ9ZSx0aGlzLnBhZGRpbmc9bix0aGlzLnJvd3M9aX1yZXR1cm4gdC5wcm90b3R5cGUuYWRkUm93PWZ1bmN0aW9uKHQpe3QubWF4V2lkdGg9dGhpcy5tYXhXaWR0aC0yKnRoaXMucGFkZGluZyx0aGlzLnJvd3MucHVzaCh0KX0sdC5wcm90b3R5cGUuZ2V0Q29sdW1uQm91bmRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5nZXRSb3dCb3VuZHModCksaT10aGlzLnJvd3NbdF0uZ2V0Qm91bmRzKGUpO3JldHVybiBpLnRvcExlZnQueCs9bi50b3BMZWZ0LngsaS5ib3R0b21SaWdodC54Kz1uLnRvcExlZnQueCxpLnRvcExlZnQueSs9bi50b3BMZWZ0LnksaS5ib3R0b21SaWdodC55Kz1uLnRvcExlZnQueSxpfSx0LnByb3RvdHlwZS5nZXRSb3dCb3VuZHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMucGFkZGluZyxuPXRoaXMucGFkZGluZyxpPTA7aTx0O2krKyluKz10aGlzLnJvd3NbaV0uZ2V0SGVpZ2h0KCk7cmV0dXJue3RvcExlZnQ6e3g6ZSx5Om59LGJvdHRvbVJpZ2h0Ont4OmUrdGhpcy5yb3dzW3RdLmdldFdpZHRoKCkseTpuK3RoaXMucm93c1t0XS5nZXRIZWlnaHQoKX19fSx0LnByb3RvdHlwZS5nZXRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5taW4odGhpcy5yb3dzLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLmdldEhlaWdodCgpfSksMCkrMip0aGlzLnBhZGRpbmcsdGhpcy5tYXhIZWlnaHQpfSx0LnByb3RvdHlwZS5nZXRXaWR0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLm1pbihyd3QuTWF0aC5tYXgodGhpcy5yb3dzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0V2lkdGgoKX0pKSwwKSsyKnRoaXMucGFkZGluZyx0aGlzLm1heFdpZHRoKX0sdH0pKCksbHd0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztpZihuLl9wYWRkaW5nPTUsbi5fcm93Qm90dG9tUGFkZGluZz0zLG4uYWRkQ2xhc3MoImxlZ2VuZCIpLG4ubWF4RW50cmllc1BlclJvdygxKSxudWxsPT1lKXRocm93IG5ldyBFcnJvcigiTGVnZW5kIHJlcXVpcmVzIGEgY29sb3JTY2FsZSIpO3JldHVybiBuLl9jb2xvclNjYWxlPWUsbi5fcmVkcmF3Q2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIG4ucmVkcmF3KCl9LG4uX2NvbG9yU2NhbGUub25VcGRhdGUobi5fcmVkcmF3Q2FsbGJhY2spLG4uX2Zvcm1hdHRlcj1ud3QuaWRlbnRpdHkoKSxuLm1heExpbmVzUGVyRW50cnkoMSksbi54QWxpZ25tZW50KCJyaWdodCIpLnlBbGlnbm1lbnQoInRvcCIpLG4uY29tcGFyYXRvcigoZnVuY3Rpb24odCxlKXt2YXIgaT1uLl9jb2xvclNjYWxlLmRvbWFpbigpLnNsaWNlKCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbi5fZm9ybWF0dGVyKHQpfSkpO3JldHVybiBpLmluZGV4T2YodCktaS5pbmRleE9mKGUpfSkpLG4uX3N5bWJvbEZhY3RvcnlBY2Nlc3Nvcj1mdW5jdGlvbigpe3JldHVybiBpd3QuY2lyY2xlKCl9LG4uX3N5bWJvbE9wYWNpdHlBY2Nlc3Nvcj1mdW5jdGlvbigpe3JldHVybiAxfSxufXJldHVybiBKeHQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyk7dmFyIG49dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZChlLkxFR0VORF9ST1dfQ0xBU1MsITApO24uYXBwZW5kKCJnIikuY2xhc3NlZChlLkxFR0VORF9FTlRSWV9DTEFTUywhMCkuYXBwZW5kKCJ0ZXh0Iik7dmFyIGk9bmV3IHR3dC5TdmdDb250ZXh0KG4ubm9kZSgpLG51bGwsZXd0LkFERF9USVRMRV9FTEVNRU5UUyk7dGhpcy5fbWVhc3VyZXI9bmV3IHR3dC5DYWNoZU1lYXN1cmVyKGkpLHRoaXMuX3dyYXBwZXI9KG5ldyB0d3QuV3JhcHBlcikubWF4TGluZXModGhpcy5tYXhMaW5lc1BlckVudHJ5KCkpLHRoaXMuX3dyaXRlcj1uZXcgdHd0LldyaXRlcih0aGlzLl9tZWFzdXJlcixpLHRoaXMuX3dyYXBwZXIpfSxlLnByb3RvdHlwZS5mb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZm9ybWF0dGVyOih0aGlzLl9mb3JtYXR0ZXI9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5tYXhFbnRyaWVzUGVyUm93PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX21heEVudHJpZXNQZXJSb3c6KHRoaXMuX21heEVudHJpZXNQZXJSb3c9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5tYXhMaW5lc1BlckVudHJ5PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX21heExpbmVzUGVyRW50cnk6KHRoaXMuX21heExpbmVzUGVyRW50cnk9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5tYXhXaWR0aD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9tYXhXaWR0aDoodGhpcy5fbWF4V2lkdGg9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5jb21wYXJhdG9yPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2NvbXBhcmF0b3I6KHRoaXMuX2NvbXBhcmF0b3I9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5jb2xvclNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10Pyh0aGlzLl9jb2xvclNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9yZWRyYXdDYWxsYmFjayksdGhpcy5fY29sb3JTY2FsZT10LHRoaXMuX2NvbG9yU2NhbGUub25VcGRhdGUodGhpcy5fcmVkcmF3Q2FsbGJhY2spLHRoaXMucmVkcmF3KCksdGhpcyk6dGhpcy5fY29sb3JTY2FsZX0sZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9jb2xvclNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9yZWRyYXdDYWxsYmFjayl9LGUucHJvdG90eXBlLl9idWlsZExlZ2VuZFRhYmxlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxpPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQscj1uZXcgc3d0KHQsZSx0aGlzLl9wYWRkaW5nKSxvPXRoaXMuX2NvbG9yU2NhbGUuZG9tYWluKCkuc2xpY2UoKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBuLl9jb21wYXJhdG9yKG4uX2Zvcm1hdHRlcih0KSxuLl9mb3JtYXR0ZXIoZSkpfSkpLGE9bmV3IGF3dDtyZXR1cm4gci5hZGRSb3coYSksYS5ib3R0b21QYWRkaW5nPXRoaXMuX3Jvd0JvdHRvbVBhZGRpbmcsby5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2EuY29sdW1ucy5sZW5ndGgvMj09PW4ubWF4RW50cmllc1BlclJvdygpJiYoKGE9bmV3IGF3dCkuYm90dG9tUGFkZGluZz1uLl9yb3dCb3R0b21QYWRkaW5nLHIuYWRkUm93KGEpKTt2YXIgbz1hLmdldFdpZHRoQXZhaWxhYmxlKCkscz1uLl9mb3JtYXR0ZXIodCksbD1uLl9tZWFzdXJlci5tZWFzdXJlKHMpLndpZHRoO28taS1sPDAmJmEuY29sdW1ucy5sZW5ndGg+MSYmKChhPW5ldyBhd3QpLmJvdHRvbVBhZGRpbmc9bi5fcm93Qm90dG9tUGFkZGluZyxyLmFkZFJvdyhhKSksYS5hZGRDb2x1bW4oe3dpZHRoOmksaGVpZ2h0OmksZGF0YTp7bmFtZTp0LHR5cGU6InN5bWJvbCJ9fSksbz1hLmdldFdpZHRoQXZhaWxhYmxlKCk7dmFyIGM9TWF0aC5taW4obyxsKTtuLl93cmFwcGVyLm1heExpbmVzKG4ubWF4TGluZXNQZXJFbnRyeSgpKTt2YXIgdT1uLl93cmFwcGVyLndyYXAocyxuLl9tZWFzdXJlcixjKS5ub0xpbmVzO2EuYWRkQ29sdW1uKHt3aWR0aDpjLGhlaWdodDp1KmksZGF0YTp7bmFtZTp0LHR5cGU6InRleHQifX0pfSkpLHJ9LGUucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYnVpbGRMZWdlbmRUYWJsZShyd3QuTWF0aC5taW4oW3RoaXMubWF4V2lkdGgoKSx0XSx0KSxlKTtyZXR1cm57bWluSGVpZ2h0Om4uZ2V0SGVpZ2h0KCksbWluV2lkdGg6bi5nZXRXaWR0aCgpfX0sZS5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt2YXIgbj10aGlzO2lmKCF0aGlzLl9pc1NldHVwKXJldHVybltdO3ZhciBpPXRoaXMuX2J1aWxkTGVnZW5kVGFibGUodGhpcy53aWR0aCgpLHRoaXMuaGVpZ2h0KCkpO3JldHVybiBpLnJvd3MucmVkdWNlKChmdW5jdGlvbihyLG8sYSl7aWYoMCE9PXIubGVuZ3RoKXJldHVybiByO3ZhciBzPWkuZ2V0Um93Qm91bmRzKGEpO3JldHVybiByd3QuTWF0aC53aXRoaW4odCxzKT9vLmNvbHVtbnMucmVkdWNlKChmdW5jdGlvbihyLG8scyl7dmFyIGw9aS5nZXRDb2x1bW5Cb3VuZHMoYSxzKTtpZihyd3QuTWF0aC53aXRoaW4odCxsKSl7dmFyIGM9bi5jb250ZW50KCkuc2VsZWN0QWxsKCIuIitlLkxFR0VORF9ST1dfQ0xBU1MpLm5vZGVzKClbYV0sdT1ReHQuc2VsZWN0KGMpLnNlbGVjdEFsbCgiLiIrZS5MRUdFTkRfRU5UUllfQ0xBU1MpLm5vZGVzKClbTWF0aC5mbG9vcihzLzIpXSxoPVF4dC5zZWxlY3QodSkuc2VsZWN0KCIuIitlLkxFR0VORF9TWU1CT0xfQ0xBU1MpLGQ9cnd0LkRPTS5nZXRUcmFuc2xhdGVWYWx1ZXMoUXh0LnNlbGVjdChjKSkscD1yd3QuRE9NLmdldFRyYW5zbGF0ZVZhbHVlcyhoKTtyZXR1cm5be2JvdW5kczpyd3QuRE9NLmVsZW1lbnRCQm94KFF4dC5zZWxlY3QoYykpLGRhdHVtOm8uZGF0YS5uYW1lLHBvc2l0aW9uOnt4OmRbMF0rcFswXSx5OmRbMV0rcFsxXX0sc2VsZWN0aW9uOlF4dC5zZWxlY3QodSksY29tcG9uZW50Om59XX1yZXR1cm4gcn0pLHIpOnJ9KSxbXSl9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKTt2YXIgbj10aGlzLl9idWlsZExlZ2VuZFRhYmxlKHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpKTt0aGlzLmNvbnRlbnQoKS5zZWxlY3RBbGwoIioiKS5yZW1vdmUoKTt2YXIgaT10aGlzLmNvbnRlbnQoKS5zZWxlY3RBbGwoImcuIitlLkxFR0VORF9ST1dfQ0xBU1MpLmRhdGEobi5yb3dzKSxyPWkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKGUuTEVHRU5EX1JPV19DTEFTUywhMCkubWVyZ2UoaSk7aS5leGl0KCkucmVtb3ZlKCksci5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0LGUpe3ZhciBpPW4uZ2V0Um93Qm91bmRzKGUpO3JldHVybiJ0cmFuc2xhdGUoIitpLnRvcExlZnQueCsiLCAiK2kudG9wTGVmdC55KyIpIn0pKTt2YXIgbz10aGlzO3JldHVybiByLmVhY2goKGZ1bmN0aW9uKHQsaSl7Zm9yKHZhciByPVtdLGE9MDthPHQuY29sdW1ucy5sZW5ndGg7YSs9MilyLnB1c2goW3QuY29sdW1uc1thXSx0LmNvbHVtbnNbYSsxXV0pO3ZhciBzPVF4dC5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLiIrZS5MRUdFTkRfRU5UUllfQ0xBU1MpLmRhdGEociksbD1zLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChlLkxFR0VORF9FTlRSWV9DTEFTUywhMCkubWVyZ2Uocyk7bC5hcHBlbmQoInBhdGgiKS5hdHRyKCJkIiwoZnVuY3Rpb24odCxlKXt2YXIgbj10WzBdO3JldHVybiBvLnN5bWJvbCgpKG4uZGF0YS5uYW1lLGkpKC42Km4uaGVpZ2h0KShudWxsKX0pKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0LGUpe3ZhciByPXRbMF0sbz1uLnJvd3NbaV0uY29sdW1ucy5pbmRleE9mKHIpO3JldHVybiJ0cmFuc2xhdGUoIisobi5nZXRDb2x1bW5Cb3VuZHMoaSxvKS50b3BMZWZ0Lngrci53aWR0aC8yKSsiLCAiK3IuaGVpZ2h0LzIrIikifSkpLmF0dHIoImZpbGwiLChmdW5jdGlvbih0KXtyZXR1cm4gby5fY29sb3JTY2FsZS5zY2FsZSh0WzBdLmRhdGEubmFtZSl9KSkuYXR0cigib3BhY2l0eSIsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG8uc3ltYm9sT3BhY2l0eSgpKHRbMF0uZGF0YS5uYW1lLGkpfSkpLmNsYXNzZWQoZS5MRUdFTkRfU1lNQk9MX0NMQVNTLCEwKSxsLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRleHQtY29udGFpbmVyIiwhMCkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCxlKXt2YXIgcj1uLnJvd3NbaV0uY29sdW1ucy5pbmRleE9mKHRbMV0pO3JldHVybiJ0cmFuc2xhdGUoIituLmdldENvbHVtbkJvdW5kcyhpLHIpLnRvcExlZnQueCsiLCAwKSJ9KSkuZWFjaCgoZnVuY3Rpb24odCxlLG4pe3ZhciBpPVF4dC5zZWxlY3QodGhpcykscj10WzFdO28uX3dyaXRlci53cml0ZShvLl9mb3JtYXR0ZXIoci5kYXRhLm5hbWUpLHIud2lkdGgsby5oZWlnaHQoKSx7eEFsaWduOiJsZWZ0Iix5QWxpZ246InRvcCIsdGV4dFJvdGF0aW9uOjB9LGkubm9kZSgpKX0pKSxzLmV4aXQoKS5yZW1vdmUoKX0pKSx0aGlzfSxlLnByb3RvdHlwZS5zeW1ib2w9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fc3ltYm9sRmFjdG9yeUFjY2Vzc29yOih0aGlzLl9zeW1ib2xGYWN0b3J5QWNjZXNzb3I9dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5zeW1ib2xPcGFjaXR5PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3N5bWJvbE9wYWNpdHlBY2Nlc3NvcjoodGhpcy5fc3ltYm9sT3BhY2l0eUFjY2Vzc29yPSJudW1iZXIiPT10eXBlb2YgdD9mdW5jdGlvbigpe3JldHVybiB0fTp0LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZS5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sZS5MRUdFTkRfUk9XX0NMQVNTPSJsZWdlbmQtcm93IixlLkxFR0VORF9FTlRSWV9DTEFTUz0ibGVnZW5kLWVudHJ5IixlLkxFR0VORF9TWU1CT0xfQ0xBU1M9ImxlZ2VuZC1zeW1ib2wiLGV9KShvd3QuQ29tcG9uZW50KTtWeHQuTGVnZW5kPWx3dDt2YXIgY3d0PXt9LHV3dD17fSxod3Q9e307IShmdW5jdGlvbih0KXt2YXIgZTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLChlPXQuQW5pbWF0b3J8fCh0LkFuaW1hdG9yPXt9KSkuTUFJTj0ibWFpbiIsZS5SRVNFVD0icmVzZXQifSkoaHd0KTt2YXIgZHd0PXt9LHB3dD17fSxmd3Q9e307ZnVuY3Rpb24gbXd0KHQpe3JldHVybiEwPT09KGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG51bGwhPWUmJiJvYmplY3QiPT10eXBlb2YgZSYmITE9PT1BcnJheS5pc0FycmF5KGUpfSkodCkmJiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfXZhciBnd3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShnd3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBfd3Q9Rmd0LHl3dD0wLHZ3dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dm9pZCAwPT09dCYmKHQ9W10pLHZvaWQgMD09PWUmJihlPXt9KSx0aGlzLl91cGRhdGVJZD15d3QrKyx0aGlzLl9kYXRhPXQsdGhpcy5fbWV0YWRhdGE9ZSx0aGlzLl9jYWxsYmFja3M9bmV3IF93dC5DYWxsYmFja1NldH1yZXR1cm4gdC5wcm90b3R5cGUub25VcGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcy5hZGQodCksdGhpc30sdC5wcm90b3R5cGUub2ZmVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LHQucHJvdG90eXBlLmRhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZGF0YToodGhpcy5fZGF0YT10LHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCksdGhpcyl9LHQucHJvdG90eXBlLm1ldGFkYXRhPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX21ldGFkYXRhOih0aGlzLl9tZXRhZGF0YT10LHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCksdGhpcyl9LHQucHJvdG90eXBlLnVwZGF0ZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZUlkfSx0LnByb3RvdHlwZS5fZGlzcGF0Y2hVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVJZD15d3QrKyx0aGlzLl9jYWxsYmFja3MuY2FsbENhbGxiYWNrcyh0aGlzKX0sdH0pKCk7Z3d0LkRhdGFzZXQ9dnd0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqIEBmaWxlb3ZlcnZpZXcgSW1wbGVtZW50cyB0aGUgU2lnbmF0dXJlIEFQSSB0byBoZWxwIGluIGNvbXBhcmluZyB3aGVuIHR3bwogICAgICogUGxvdHRhYmxlIG9iamVjdHMgaGF2ZSAiY2hhbmdlZCIuCiAgICAgKgogICAgICogTWVtb2l6YXRpb24gaW4gUGxvdHRhYmxlIGlzIGNvbXBsaWNhdGVkIGJ5IG11dGFibGUgc2NhbGVzIGFuZCBkYXRhc2V0cy4gV2UgY2Fubm90IHNpbXBseQogICAgICogcmVmZXJlbmNlIGNvbXBhcmUgdHdvIGUuZy4gc2NhbGVzIHNpbmNlIGl0IG1heSBoYXZlIGludGVybmFsbHkgbXV0YXRlZC4gVG8gcmVzb2x2ZSB0aGlzLAogICAgICogd2Ugd3JpdGUgYSByZWN1cnNpdmUgU2lnbmF0dXJlIGludGVyZmFjZSB0aGF0IGhvbGRzIGFuIGltbXV0YWJsZSBzbmFwc2hvdCBvZiB3aGF0ZXZlcgogICAgICogc3RhdGUgdGhlIHNjYWxlL2RhdGEgd2FzIGluIGF0IHRoZSB0aW1lLiBUaGVuIG9uIG1lbW9pemVkIGZ1bmN0aW9uIGludm9jYXRpb24gd2Ugc2lnbiB0aGUKICAgICAqIG5ldyBpbnB1dHMgYW5kIGNvbXBhcmUgdGhlIHNpZ25hdHVyZXMgdG8gZGVjaWRlIGlmIHdlIHNob3VsZCByZWNvbXB1dGUuCiAgICAgKgogICAgICogV2UgbXVzdCBoYW5kLXdyaXRlIGEgc2lnbmF0dXJlIGZvciBlYWNoIGN1c3RvbSBjbGFzcyB3ZSB3aXNoIHRvIHN1cHBvcnQuCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGJ3dD11Tyx4d3Q9Z3d0LHd3dD1odnQ7ZnVuY3Rpb24gU3d0KHQpe3JldHVybiB0IGluc3RhbmNlb2Yga3d0P3Q6dCBpbnN0YW5jZW9mIERhdGU/VHd0KHQudmFsdWVPZigpKTp0IGluc3RhbmNlb2Ygd3d0LlNjYWxlP013dCh0KTp0IGluc3RhbmNlb2YgeHd0LkRhdGFzZXQ/RXd0KHQpOihmdW5jdGlvbiB0KGUpe3ZhciBuLGk7cmV0dXJuITEhPT1td3QoZSkmJiJmdW5jdGlvbiI9PXR5cGVvZihuPWUuY29uc3RydWN0b3IpJiYhMSE9PW13dChpPW4ucHJvdG90eXBlKSYmITEhPT1pLmhhc093blByb3BlcnR5KCJpc1Byb3RvdHlwZU9mIil9KSh0KT9Bd3QodCk6QXJyYXkuaXNBcnJheSh0KT9Dd3QodCk6VHd0KHQpfWZ1bmN0aW9uIE13dCh0KXtyZXR1cm4gQXd0KHtkb21haW46dC5kb21haW4oKSxyYW5nZTp0LnJhbmdlKCksdXBkYXRlSWQ6dC51cGRhdGVJZCgpLHJlZjpUd3QodCl9KX1mdW5jdGlvbiBFd3QodCl7cmV0dXJuIEF3dCh7cmVmOlR3dCh0KSx1cGRhdGVJZDp0LnVwZGF0ZUlkKCl9KX1mdW5jdGlvbiBUd3QodCl7cmV0dXJuIG5ldyBQd3QodCl9ZnVuY3Rpb24gQ3d0KHQpe3JldHVybiBuZXcgTHd0KHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gU3d0KHQpfSkpKX1mdW5jdGlvbiBBd3QodCl7dmFyIGU9e307Zm9yKHZhciBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmKGVbbl09U3d0KHRbbl0pKTtyZXR1cm4gbmV3IE53dChlKX1md3Quc2lnbj1Td3QsZnd0LnNpZ25TY2FsZT1Nd3QsZnd0LnNpZ25EYXRhc2V0PUV3dCxmd3Quc2lnblJlZj1Ud3QsZnd0LnNpZ25BcnJheT1Dd3QsZnd0LnNpZ25PYmo9QXd0O3ZhciBrd3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuaXNEaWZmZXJlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuISh0IGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcil8fHRoaXMuaXNTaWduYXR1cmVEaWZmZXJlbnQodCl9LHR9KSgpO2Z3dC5TaWduYXR1cmU9a3d0O3ZhciBMd3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLmFycmF5PWUsbn1yZXR1cm4gYnd0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmlzU2lnbmF0dXJlRGlmZmVyZW50PWZ1bmN0aW9uKHQpe2lmKHQuYXJyYXkubGVuZ3RoIT09dGhpcy5hcnJheS5sZW5ndGgpcmV0dXJuITA7Zm9yKHZhciBlPTA7ZTx0aGlzLmFycmF5Lmxlbmd0aDtlKyspaWYodGhpcy5hcnJheVtlXS5pc0RpZmZlcmVudCh0LmFycmF5W2VdKSlyZXR1cm4hMDtyZXR1cm4hMX0sZX0pKGt3dCk7Znd0LkFycmF5U2lnbmF0dXJlPUx3dDt2YXIgUHd0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5yZWY9ZSxufXJldHVybiBid3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuaXNTaWduYXR1cmVEaWZmZXJlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmVmIT09dC5yZWZ9LGV9KShrd3QpO2Z3dC5SZWZlcmVuY2VTaWduYXR1cmU9UHd0O3ZhciBOd3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLm9iaj1lLG59cmV0dXJuIGJ3dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5pc1NpZ25hdHVyZURpZmZlcmVudD1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3Qua2V5cyh0aGlzLm9iaiksbj1PYmplY3Qua2V5cyh0Lm9iaik7aWYoZS5sZW5ndGghPT1uLmxlbmd0aClyZXR1cm4hMDtmb3IodmFyIGk9MCxyPWU7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07aWYoIXQub2JqLmhhc093blByb3BlcnR5KG8pKXJldHVybiEwO2lmKHRoaXMub2JqW29dLmlzRGlmZmVyZW50KHQub2JqW29dKSlyZXR1cm4hMH1yZXR1cm4hMX0sZX0pKGt3dCk7Znd0Lk9iamVjdFNpZ25hdHVyZT1Od3QsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICogQGZpbGVvdmVydmlldyBJbXBsZW1lbnRzIGEgZnVuY3Rpb24gbWVtb2l6ZXIgdXNpbmcgdGhlIFNpZ25hdHVyZSBBUEkuCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHB3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEl3dD1md3Q7cHd0Lm1lbW9pemU9ZnVuY3Rpb24gUnd0KHQpe3ZhciBlLG49dm9pZCAwLGk9ITEscj0hMSxvPWZ1bmN0aW9uKCl7Zm9yKHZhciBvPVtdLGE9MDthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKW9bYV09YXJndW1lbnRzW2FdO2lmKGkpcmV0dXJuIGU7dmFyIHM9SXd0LnNpZ25BcnJheShvKTtyZXR1cm4gdm9pZCAwPT09bnx8bi5pc0RpZmZlcmVudChzKT8ociYmY29uc29sZS53YXJuKCJjYWNoZSBtaXNzISBjb21wdXRpbmciKSxuPXMsZT10LmFwcGx5KHRoaXMsbykpOnImJmNvbnNvbGUud2FybigiY2FjaGUgaGl0ISIpLGV9O3JldHVybiBvLmRvTG9ja2VkPWZ1bmN0aW9uKHQpe2lmKGkpdGhyb3cgbmV3IEVycm9yKCJMb2NraW5nIGFuIGFscmVhZHkgbG9ja2VkIG1lbW9pemUgZnVuY3Rpb24hIik7aT0hMDt2YXIgZT10LmFwcGx5KHRoaXMpO3JldHVybiBpPSExLGV9LG8ubG9nUGVyZm9ybWFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSEwKSxyPXQsdGhpc30sb307dmFyIE93dD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoT3d0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgend0PVNlLmV4cG9ydHMsRHd0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLm1hcD1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuZXhpc3RzPU9iamVjdC5jcmVhdGUobnVsbCl9cmV0dXJuIHQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gZGVsZXRlIHRoaXMubWFwW3RdLGRlbGV0ZSB0aGlzLmV4aXN0c1t0XSwhMH0sdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hcFt0XX0sdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiEhdGhpcy5leGlzdHNbdF19LHQucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm1hcFt0XT1lLHRoaXMuZXhpc3RzW3RdPSEwLHRoaXN9LHR9KSgpLEJ3dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5tYXA9bmV3IER3dH1yZXR1cm4gdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hcC5nZXQodFswXSkuZ2V0KHRbMV0pfSx0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFwLmhhcyh0WzBdKSYmdGhpcy5tYXAuZ2V0KHRbMF0pLmhhcyh0WzFdKX0sdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMubWFwLmhhcyh0WzBdKXx8dGhpcy5tYXAuc2V0KHRbMF0sbmV3IER3dCksdGhpcy5tYXAuZ2V0KHRbMF0pLnNldCh0WzFdLGUpLHRoaXN9LHQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXAuaGFzKHRbMF0pJiZ0aGlzLm1hcC5nZXQodFswXSkuZGVsZXRlKHRbMV0pLCEwfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMubWFwPW5ldyBEd3R9LHQucmVzb2x2ZXI9ZnVuY3Rpb24odCxlLG4pe3JldHVybltuLnVwZGF0ZUlkKCksZV19LHR9KSgpO2Z1bmN0aW9uIEh3dCh0KXt2YXIgZT16d3QubWVtb2l6ZSh0LEJ3dC5yZXNvbHZlcik7cmV0dXJuIGUuY2FjaGU9bmV3IEJ3dCxlfU93dC5tZW1vaXplUHJvamVjdG9yPUh3dCxPd3QubWVtb2l6ZVByb2plY3RvcnM9ZnVuY3Rpb24gRnd0KHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihlKXt0W2VdPUh3dCh0W2VdKX0pKSx0fTt2YXIgVnd0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqIEBmaWxlb3ZlcnZpZXcgSW1wbGVtZW50cyBhIGNvbnZlbmllbnQgdGh1bmsgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBjb21tb24gY2FzZQogICAgICogb2YgY3JlYXRpbmcgYSBtZW1vaXplZCBmdW5jdGlvbiB0aGF0IHRha2VzIGl0cyBpbnB1dHMgZnJvbSBtdXRhYmxlIGNsYXNzIHByb3BlcnRpZXMuCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoVnd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgVXd0PWR3dDtWd3QubWVtVGh1bms9ZnVuY3Rpb24gand0KCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPXQuc2xpY2UoMCwtMSksaT10W3QubGVuZ3RoLTFdLHI9VXd0Lm1lbW9pemUoaSksbz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1uLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYXBwbHkodCl9KSk7cmV0dXJuIHIuYXBwbHkodm9pZCAwLGUpfTtyZXR1cm4gb30sKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU87ZS5fX2V4cG9ydFN0YXIocHd0LHQpLGUuX19leHBvcnRTdGFyKE93dCx0KSxlLl9fZXhwb3J0U3RhcihWd3QsdCksdC5zaWduPWZ3dC5zaWdufSkoZHd0KTt2YXIgR3d0PXt9OyEoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT1FZHQsbj0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2RyYXdTdGVwPWV9cmV0dXJuIHQucHJvdG90eXBlLmdldERyYXdTdGVwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RyYXdTdGVwfSx0LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSl7dmFyIG49ZVtlLmxlbmd0aC0xXS5hdHRyVG9BcHBsaWVkUHJvamVjdG9yO3RoaXMuX2NvbnRleHQuc2F2ZSgpLHRoaXMuX2RyYXdTdGVwKHRoaXMuX2NvbnRleHQsdCxuKSx0aGlzLl9jb250ZXh0LnJlc3RvcmUoKX0sdC5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlcz1mdW5jdGlvbigpe3JldHVybltdfSx0LnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt9LHR9KSgpO2Z1bmN0aW9uIGkodCxlLG4saSl7Zm9yKHZhciByPXt9LG89MCxhPWU7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107dC5oYXNPd25Qcm9wZXJ0eShzKSYmKHJbc109dFtzXShuLGkpKX1yZXR1cm4gcn1mdW5jdGlvbiByKHQpe3JldHVybiBudWxsIT10WyJzdHJva2Utd2lkdGgiXT9wYXJzZUZsb2F0KHRbInN0cm9rZS13aWR0aCJdKToxfWZ1bmN0aW9uIG8odCl7dmFyIGU9dFsic3Ryb2tlLWRhc2hhcnJheSJdO2lmKG51bGwhPWUpdHJ5e3JldHVybiBlLnNwbGl0KC9bICxdKy8pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlSW50KHQsMTApfSkpfWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJnZXRTdHJva2VEYXNoQXJyYXkgZmFpbGVkIHdpdGg6ICIrdCksW119cmV0dXJuW119ZnVuY3Rpb24gYSh0LG4pe2lmKG4uc3Ryb2tlKXt0LmxpbmVXaWR0aD1yKG4pO3ZhciBpPWUuY29sb3Iobi5zdHJva2UpLGE9byhuKTt0LnNldExpbmVEYXNoKGEpLGkub3BhY2l0eSo9KGZ1bmN0aW9uIHModCl7dmFyIGU9bnVsbCE9dC5vcGFjaXR5P3BhcnNlRmxvYXQodC5vcGFjaXR5KToxO3JldHVybihudWxsIT10WyJzdHJva2Utb3BhY2l0eSJdP3BhcnNlRmxvYXQodFsic3Ryb2tlLW9wYWNpdHkiXSk6MSkqZX0pKG4pLHQuc3Ryb2tlU3R5bGU9aS50b1N0cmluZygpLHQuc3Ryb2tlKCl9aWYobi5maWxsKXt2YXIgbD1lLmNvbG9yKG4uZmlsbCk7bC5vcGFjaXR5Kj0oZnVuY3Rpb24gYyh0KXt2YXIgZT1udWxsIT10Lm9wYWNpdHk/cGFyc2VGbG9hdCh0Lm9wYWNpdHkpOjE7cmV0dXJuKG51bGwhPXRbImZpbGwtb3BhY2l0eSJdP3BhcnNlRmxvYXQodFsiZmlsbC1vcGFjaXR5Il0pOjEpKmV9KShuKSx0LmZpbGxTdHlsZT1sLnRvU3RyaW5nKCksdC5maWxsKCl9fXQuQ2FudmFzRHJhd2VyPW4sdC5Db250ZXh0U3R5bGVBdHRycz1bImZpbGwtb3BhY2l0eSIsImZpbGwiLCJvcGFjaXR5Iiwic3Ryb2tlLW9wYWNpdHkiLCJzdHJva2Utd2lkdGgiLCJzdHJva2UiLCJzdHJva2UtZGFzaGFycmF5Il0sdC5yZXNvbHZlQXR0cmlidXRlc1N1YnNldFdpdGhTdHlsZXM9ZnVuY3Rpb24gcyhlLG4scixvKXtyZXR1cm4gaShlLHQuQ29udGV4dFN0eWxlQXR0cnMuY29uY2F0KG4pLHIsbyl9LHQucmVzb2x2ZUF0dHJpYnV0ZXM9aSx0LmdldFN0cm9rZVdpZHRoPXIsdC5nZXRTdHJva2VEYXNoQXJyYXk9byx0LnJlbmRlckFyZWE9ZnVuY3Rpb24gbCh0LGUsbixpKXt0LnNhdmUoKSx0LmJlZ2luUGF0aCgpLGUuY29udGV4dCh0KSxlKG4pLHQubGluZUpvaW49InJvdW5kIixhKHQsaSksdC5yZXN0b3JlKCl9LHQucmVuZGVyTGluZT1mdW5jdGlvbiBjKHQsZSxuLGkpe3Quc2F2ZSgpLHQuYmVnaW5QYXRoKCksZS5jb250ZXh0KHQpLGUobiksdC5saW5lSm9pbj0icm91bmQiLGEodCxpKSx0LnJlc3RvcmUoKX0sdC5yZW5kZXJQYXRoV2l0aFN0eWxlPWF9KShHd3QpO3ZhciBXd3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFd3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHF3dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fc3ZnRHJhd2VyRmFjdG9yeT10LHRoaXMuX2NhbnZhc0RyYXdlckZhY3Rvcnk9ZX1yZXR1cm4gdC5wcm90b3R5cGUudXNlU1ZHPWZ1bmN0aW9uKHQpe251bGwhPXRoaXMuX2N1cnJlbnREcmF3ZXImJnRoaXMuX2N1cnJlbnREcmF3ZXIucmVtb3ZlKCk7dmFyIGU9dGhpcy5fc3ZnRHJhd2VyRmFjdG9yeSgpO2UuYXR0YWNoVG8odCksdGhpcy5fY3VycmVudERyYXdlcj1lfSx0LnByb3RvdHlwZS51c2VDYW52YXM9ZnVuY3Rpb24odCl7bnVsbCE9dGhpcy5fY3VycmVudERyYXdlciYmdGhpcy5fY3VycmVudERyYXdlci5yZW1vdmUoKSx0aGlzLl9jdXJyZW50RHJhd2VyPXRoaXMuX2NhbnZhc0RyYXdlckZhY3RvcnkodC5ub2RlKCkuZ2V0Q29udGV4dCgiMmQiKSl9LHQucHJvdG90eXBlLmdldERyYXdlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJyZW50RHJhd2VyfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXtudWxsIT10aGlzLl9jdXJyZW50RHJhd2VyJiZ0aGlzLl9jdXJyZW50RHJhd2VyLnJlbW92ZSgpfSx0LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSl7dGhpcy5fY3VycmVudERyYXdlci5kcmF3KHQsZSl9LHQucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudERyYXdlci5nZXRWaXN1YWxQcmltaXRpdmVzKCl9LHQucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZUF0SW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2N1cnJlbnREcmF3ZXIuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleCh0KX0sdH0pKCk7V3d0LlByb3h5RHJhd2VyPXF3dDt2YXIgWXd0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShZd3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBYd3Q9RWR0LCR3dD1GZ3QsS3d0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt0aGlzLl9yb290PVh3dC5zZWxlY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSksdGhpcy5fY2xhc3NOYW1lPWUsdGhpcy5fc3ZnRWxlbWVudE5hbWU9dH1yZXR1cm4gdC5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5fY3JlYXRlQW5kRGVzdHJveURPTUVsZW1lbnRzKHQpO2Zvcih2YXIgaT0wLHI9ZS5sZW5ndGgsbz1mdW5jdGlvbihyKXt2YXIgbz1lW3JdOyR3dC5XaW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gbi5fZHJhd1N0ZXAobyl9KSxpKSxpKz1vLmFuaW1hdG9yLnRvdGFsVGltZSh0Lmxlbmd0aCl9LGE9MDthPHI7YSsrKW8oYSl9LHQucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09dGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVzJiYodGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVzPXRoaXMuX3NlbGVjdGlvbi5ub2RlcygpKSx0aGlzLl9jYWNoZWRWaXN1YWxQcmltaXRpdmVzTm9kZXN9LHQucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZUF0SW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXRoaXMuX2NhY2hlZFZpc3VhbFByaW1pdGl2ZXNOb2RlTWFwP251bGw6dGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVNYXAuZ2V0KHQpfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLl9yb290LnJlbW92ZSgpfSx0LnByb3RvdHlwZS5hdHRhY2hUbz1mdW5jdGlvbih0KXt0Lm5vZGUoKS5hcHBlbmRDaGlsZCh0aGlzLl9yb290Lm5vZGUoKSl9LHQucHJvdG90eXBlLmdldFJvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdH0sdC5wcm90b3R5cGUuc2VsZWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3ZnRWxlbWVudE5hbWV9LHQucHJvdG90eXBlLl9hcHBseURlZmF1bHRBdHRyaWJ1dGVzPWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUuX2NyZWF0ZUFuZERlc3Ryb3lET01FbGVtZW50cz1mdW5jdGlvbih0KXt2YXIgZT10Lm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbCE9dD97ZDp0LGk6ZX06bnVsbH0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10fSkpLG49dGhpcy5fcm9vdC5zZWxlY3RBbGwodGhpcy5zZWxlY3RvcigpKS5kYXRhKGUpO3RoaXMuX3NlbGVjdGlvbj1uLmVudGVyKCkuYXBwZW5kKHRoaXMuX3N2Z0VsZW1lbnROYW1lKS5tZXJnZShuKSxuLmV4aXQoKS5yZW1vdmUoKTt2YXIgaT1uZXcgJHd0Lk1hcDt0aGlzLl9zZWxlY3Rpb24uZWFjaCgoZnVuY3Rpb24odCl7aS5zZXQodC5pLHRoaXMpfSkpLHRoaXMuX2NhY2hlZFZpc3VhbFByaW1pdGl2ZXNOb2RlTWFwPWksdGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVzPW51bGwsdGhpcy5fc2VsZWN0aW9uLmRhdGEodGhpcy5fc2VsZWN0aW9uLmRhdGEoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmR9KSkpLG51bGwhPXRoaXMuX2NsYXNzTmFtZSYmdGhpcy5fc2VsZWN0aW9uLmNsYXNzZWQodGhpcy5fY2xhc3NOYW1lLCEwKSx0aGlzLl9hcHBseURlZmF1bHRBdHRyaWJ1dGVzKHRoaXMuX3NlbGVjdGlvbil9LHQucHJvdG90eXBlLl9kcmF3U3RlcD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO1siZmlsbCIsInN0cm9rZSJdLmZvckVhY2goKGZ1bmN0aW9uKG4pe251bGwhPXQuYXR0clRvQXBwbGllZFByb2plY3RvcltuXSYmZS5fc2VsZWN0aW9uLmF0dHIobix0LmF0dHJUb0FwcGxpZWRQcm9qZWN0b3Jbbl0pfSkpLHQuYW5pbWF0b3IuYW5pbWF0ZSh0aGlzLl9zZWxlY3Rpb24sdC5hdHRyVG9BcHBsaWVkUHJvamVjdG9yKSxudWxsIT10aGlzLl9jbGFzc05hbWUmJnRoaXMuX3NlbGVjdGlvbi5jbGFzc2VkKHRoaXMuX2NsYXNzTmFtZSwhMCl9LHR9KSgpO1l3dC5TVkdEcmF3ZXI9S3d0O3ZhciBad3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTctcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFp3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEp3dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ9dGhpczt0aGlzLnNjYWxlPTAsdGhpcy50cmFuc2xhdGU9MCx0aGlzLmNhY2hlZERvbWFpbj1bbnVsbCxudWxsXSx0aGlzLmxhc3RTZWVuRG9tYWluPVtudWxsLG51bGxdLHRoaXMudXBkYXRlRG9tYWluPWZ1bmN0aW9uKGUpe3QubGFzdFNlZW5Eb21haW49ZS5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpO3ZhciBuPWUuc2NhbGVUcmFuc2Zvcm1hdGlvbih0LmNhY2hlZERvbWFpblsxXSktZS5zY2FsZVRyYW5zZm9ybWF0aW9uKHQuY2FjaGVkRG9tYWluWzBdKSxpPWUuc2NhbGVUcmFuc2Zvcm1hdGlvbih0Lmxhc3RTZWVuRG9tYWluWzFdKS1lLnNjYWxlVHJhbnNmb3JtYXRpb24odC5sYXN0U2VlbkRvbWFpblswXSk7dC5zY2FsZT1uL2l8fDEsdC50cmFuc2xhdGU9ZS5zY2FsZVRyYW5zZm9ybWF0aW9uKHQuY2FjaGVkRG9tYWluWzBdKS1lLnNjYWxlVHJhbnNmb3JtYXRpb24odC5sYXN0U2VlbkRvbWFpblswXSkqdC5zY2FsZXx8MH19cmV0dXJuIHQucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5zY2FsZT0xLHRoaXMudHJhbnNsYXRlPTAsdGhpcy5jYWNoZWREb21haW49dGhpcy5sYXN0U2VlbkRvbWFpbn0sdC5wcm90b3R5cGUuc2V0RG9tYWluPWZ1bmN0aW9uKHQpe3RoaXMuY2FjaGVkRG9tYWluPXQuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4oKX0sdH0pKCksUXd0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXt2YXIgaT10aGlzO3RoaXMucmVuZGVyQ2FsbGJhY2s9ZSx0aGlzLmFwcGx5VHJhbnNmb3JtQ2FsbGJhY2s9bix0aGlzLmRvbWFpblRyYW5zZm9ybVg9bmV3IEp3dCx0aGlzLmRvbWFpblRyYW5zZm9ybVk9bmV3IEp3dCx0aGlzLnJlbmRlckRlZmVycmVkPWZ1bmN0aW9uKCl7aS5hcHBseVRyYW5zZm9ybSgpLGNsZWFyVGltZW91dChpLnRpbWVvdXRUb2tlbiksaS50aW1lb3V0VG9rZW49c2V0VGltZW91dCgoZnVuY3Rpb24oKXtpLnJlbmRlckNhbGxiYWNrKCl9KSx0LkRFRkVSUkVEX1JFTkRFUklOR19ERUxBWSl9fXJldHVybiB0LnByb3RvdHlwZS5zZXREb21haW5zPWZ1bmN0aW9uKHQsZSl7dCYmdGhpcy5kb21haW5UcmFuc2Zvcm1YLnNldERvbWFpbih0KSxlJiZ0aGlzLmRvbWFpblRyYW5zZm9ybVkuc2V0RG9tYWluKGUpLHRoaXMucmVuZGVyRGVmZXJyZWQoKX0sdC5wcm90b3R5cGUudXBkYXRlRG9tYWlucz1mdW5jdGlvbih0LGUpe3QmJnRoaXMuZG9tYWluVHJhbnNmb3JtWC51cGRhdGVEb21haW4odCksZSYmdGhpcy5kb21haW5UcmFuc2Zvcm1ZLnVwZGF0ZURvbWFpbihlKSx0aGlzLnJlbmRlckRlZmVycmVkKCl9LHQucHJvdG90eXBlLnJlc2V0VHJhbnNmb3Jtcz1mdW5jdGlvbigpe3RoaXMuZG9tYWluVHJhbnNmb3JtWC5yZXNldCgpLHRoaXMuZG9tYWluVHJhbnNmb3JtWS5yZXNldCgpLHRoaXMuYXBwbHlUcmFuc2Zvcm0oKX0sdC5wcm90b3R5cGUuYXBwbHlUcmFuc2Zvcm09ZnVuY3Rpb24oKXt0aGlzLmFwcGx5VHJhbnNmb3JtQ2FsbGJhY2sodGhpcy5kb21haW5UcmFuc2Zvcm1YLnRyYW5zbGF0ZSx0aGlzLmRvbWFpblRyYW5zZm9ybVkudHJhbnNsYXRlLHRoaXMuZG9tYWluVHJhbnNmb3JtWC5zY2FsZSx0aGlzLmRvbWFpblRyYW5zZm9ybVkuc2NhbGUpfSx0LkRFRkVSUkVEX1JFTkRFUklOR19ERUxBWT0yMDAsdH0pKCk7Wnd0LkRlZmVycmVkUmVuZGVyZXI9UXd0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodXd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdFN0PXVPLGVTdD1FZHQsblN0PV9tdCxpU3Q9Rmd0LHJTdD1od3Qsb1N0PWR3dCxhU3Q9Qmd0LHNTdD1Hd3QsbFN0PVd3dCxjU3Q9WXd0LHVTdD1ibXQsaFN0PVp3dDt1d3QuUmVuZGVyZXI9U210Lm1ha2VFbnVtKFsic3ZnIiwiY2FudmFzIl0pO3ZhciBkU3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7bi5fZGF0YUNoYW5nZWQ9ITEsbi5fYXR0ckV4dGVudHM9e30sbi5fYW5pbWF0ZT0hMSxuLl9hbmltYXRvcnM9e30sbi5fcHJvcGVydHlFeHRlbnRzPXt9LG4uX3Jlc2V0RW50aXR5U3RvcmU9ZnVuY3Rpb24oKXtuLl9jYWNoZWRFbnRpdHlTdG9yZT12b2lkIDB9LG4uX292ZXJmbG93SGlkZGVuPSEwLG4uYWRkQ2xhc3MoInBsb3QiKSxuLl9kYXRhc2V0VG9EcmF3ZXI9bmV3IGlTdC5NYXAsbi5fYXR0ckJpbmRpbmdzPWVTdC5tYXAoKSxuLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uX2luY2x1ZGVkVmFsdWVzRm9yU2NhbGUodCxlKX0sbi5fcmVuZGVyQ2FsbGJhY2s9ZnVuY3Rpb24oKXtyZXR1cm4gbi5yZW5kZXIoKX0sbi5fb25EYXRhc2V0VXBkYXRlQ2FsbGJhY2s9ZnVuY3Rpb24oKXtyZXR1cm4gbi5fb25EYXRhc2V0VXBkYXRlKCl9LG4uX3Byb3BlcnR5QmluZGluZ3M9ZVN0Lm1hcCgpO3ZhciBpPShuZXcgblN0LkVhc2luZykubWF4VG90YWxEdXJhdGlvbihlLl9BTklNQVRJT05fTUFYX0RVUkFUSU9OKTtyZXR1cm4gbi5hbmltYXRvcihyU3QuQW5pbWF0b3IuTUFJTixpKSxuLmFuaW1hdG9yKHJTdC5BbmltYXRvci5SRVNFVCxuZXcgblN0Lk51bGwpLG4uX2RlZmVycmVkUmVzZXRFbnRpdHlTdG9yZT1pU3QuV2luZG93LmRlYm91bmNlKGhTdC5EZWZlcnJlZFJlbmRlcmVyLkRFRkVSUkVEX1JFTkRFUklOR19ERUxBWSxuLl9yZXNldEVudGl0eVN0b3JlKSxufXJldHVybiB0U3QuX19leHRlbmRzKGUsdCksZS5nZXRUb3RhbERyYXdUaW1lPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLG4pe3JldHVybiBlK24uYW5pbWF0b3IudG90YWxUaW1lKHQubGVuZ3RoKX0pLDApfSxlLmFwcGx5RHJhd1N0ZXBzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXt2YXIgbj10LmF0dHJUb1Byb2plY3RvcixpPXt9O3JldHVybiBPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbih0KXtpW3RdPWZ1bmN0aW9uKGkscil7cmV0dXJuIG5bdF0oaSxyLGUpfX0pKSx7YXR0clRvQXBwbGllZFByb2plY3RvcjppLGFuaW1hdG9yOnQuYW5pbWF0b3J9fSkpfSxlLnByb3RvdHlwZS5hbmNob3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9dVN0LmNvZXJjZUV4dGVybmFsRDMoZSksdC5wcm90b3R5cGUuYW5jaG9yLmNhbGwodGhpcyxlKSx0aGlzLl9kYXRhQ2hhbmdlZD0hMCx0aGlzLl9yZXNldEVudGl0eVN0b3JlKCksdGhpcy5fdXBkYXRlRXh0ZW50cygpLHRoaXN9LGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5faXNTZXR1cHx8KHQucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLG51bGwhPXRoaXMuX2NhbnZhcyYmdGhpcy5fYXBwZW5kQ2FudmFzTm9kZSgpLHRoaXMuX3JlbmRlckFyZWE9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCgicmVuZGVyLWFyZWEiLCEwKSx0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldCh0KX0pKSl9LGUucHJvdG90eXBlLl9hcHBlbmRDYW52YXNOb2RlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50KCkuc2VsZWN0KCIucGxvdC1jYW52YXMtY29udGFpbmVyIik7dC5lbXB0eSgpJiYodD10aGlzLmVsZW1lbnQoKS5hcHBlbmQoImRpdiIpLmNsYXNzZWQoInBsb3QtY2FudmFzLWNvbnRhaW5lciIsITApKS5ub2RlKCkuYXBwZW5kQ2hpbGQodGhpcy5fY2FudmFzLm5vZGUoKSl9LGUucHJvdG90eXBlLnNldEJvdW5kcz1mdW5jdGlvbihlLG4saSxyKXtpZih0LnByb3RvdHlwZS5zZXRCb3VuZHMuY2FsbCh0aGlzLGUsbixpLHIpLHRoaXMuX3VwZGF0ZUV4dGVudHMoKSxudWxsIT10aGlzLl9jYW52YXMpe2lmKHRoaXMuX2J1ZmZlckNhbnZhcyYmIXRoaXMuX2J1ZmZlckNhbnZhc1ZhbGlkKXt0aGlzLl9idWZmZXJDYW52YXMuYXR0cigid2lkdGgiLHRoaXMuX2NhbnZhcy5hdHRyKCJ3aWR0aCIpKSx0aGlzLl9idWZmZXJDYW52YXMuYXR0cigiaGVpZ2h0Iix0aGlzLl9jYW52YXMuYXR0cigiaGVpZ2h0IikpO3ZhciBvPXRoaXMuX2J1ZmZlckNhbnZhcy5ub2RlKCkuZ2V0Q29udGV4dCgiMmQiKTtpZihvKXt2YXIgYT10aGlzLl9jYW52YXMubm9kZSgpO2Eud2lkdGg+MCYmYS5oZWlnaHQ+MD9vLmNhbnZhcy53aWR0aD4wJiZvLmNhbnZhcy5oZWlnaHQ+MCYmby5kcmF3SW1hZ2UoYSwwLDApOmNvbnNvbGUud2FybigiRmFpbGVkIHRvIGZpbGwgYnVmZmVyIGNhbnZhcyB3aXRoIHdpdGggMHgwIGNhbnZhcyIpfXRoaXMuX2J1ZmZlckNhbnZhc1ZhbGlkPSEwfXZhciBzPW51bGwhPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvP3dpbmRvdy5kZXZpY2VQaXhlbFJhdGlvOjE7dGhpcy5fY2FudmFzLmF0dHIoIndpZHRoIixlKnMpLHRoaXMuX2NhbnZhcy5hdHRyKCJoZWlnaHQiLG4qcyk7dmFyIGw9dGhpcy5fY2FudmFzLm5vZGUoKS5nZXRDb250ZXh0KCIyZCIpO2lmKGwmJihsLnNldFRyYW5zZm9ybShzLDAsMCxzLDAsMCksdGhpcy5fYnVmZmVyQ2FudmFzKSl7dmFyIGM9dGhpcy5fYnVmZmVyQ2FudmFzLm5vZGUoKTtjLndpZHRoPjAmJmMuaGVpZ2h0PjA/bC5jYW52YXMud2lkdGg+MCYmbC5jYW52YXMuaGVpZ2h0PjAmJmwuZHJhd0ltYWdlKGMsMCwwLGUsbik6Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZmlsbCBjYW52YXMgd2l0aCAweDAgYnVmZmVyIGNhbnZhcyIpfX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMuX3NjYWxlcygpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm9mZlVwZGF0ZShlLl9yZW5kZXJDYWxsYmFjayl9KSksdGhpcy5kYXRhc2V0cyhbXSl9LGUucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZGF0YXNldFRvRHJhd2VyLmdldCh0KTtyZXR1cm4ic3ZnIj09PXRoaXMucmVuZGVyZXIoKT9lLnVzZVNWRyh0aGlzLl9yZW5kZXJBcmVhKTplLnVzZUNhbnZhcyh0aGlzLl9jYW52YXMpLGV9LGUucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBsU3QuUHJveHlEcmF3ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBjU3QuU1ZHRHJhd2VyKCJwYXRoIiwiIil9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBzU3QuQ2FudmFzRHJhd2VyKHQsKGZ1bmN0aW9uKCl7fSkpfSkpfSxlLnByb3RvdHlwZS5fZ2V0QW5pbWF0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FuaW1hdGVPbk5leHRSZW5kZXIoKSYmdGhpcy5fYW5pbWF0b3JzW3RdfHxuZXcgblN0Lk51bGx9LGUucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVFeHRlbnRzKCksdGhpcy5fZGF0YUNoYW5nZWQ9ITAsdGhpcy5fcmVzZXRFbnRpdHlTdG9yZSgpLHRoaXMucmVuZGVyTG93UHJpb3JpdHkoKX0sZS5wcm90b3R5cGUuYXR0cj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG51bGw9PWU/dGhpcy5fYXR0ckJpbmRpbmdzLmdldCh0KToodGhpcy5fYmluZEF0dHIodCxlLG4pLHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLl9iaW5kUHJvcGVydHk9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQodCksbz1udWxsIT1yP3Iuc2NhbGU6bnVsbDt0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLnNldCh0LHthY2Nlc3NvcjoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOmZ1bmN0aW9uKCl7cmV0dXJuIGV9LHNjYWxlOm4scG9zdFNjYWxlOml9KSxudWxsIT1vJiZ0aGlzLl91bmluc3RhbGxTY2FsZUZvcktleShvLHQpLG51bGwhPW4mJnRoaXMuX2luc3RhbGxTY2FsZUZvcktleShuLHQpLHRoaXMuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGUoKX0sZS5wcm90b3R5cGUuX2JpbmRBdHRyPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9hdHRyQmluZGluZ3MuZ2V0KHQpLHI9bnVsbCE9aT9pLnNjYWxlOm51bGw7dGhpcy5fYXR0ckJpbmRpbmdzLnNldCh0LHthY2Nlc3NvcjoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOmZ1bmN0aW9uKCl7cmV0dXJuIGV9LHNjYWxlOm59KSxudWxsIT1yJiZ0aGlzLl91bmluc3RhbGxTY2FsZUZvcktleShyLHQpLG51bGwhPW4mJnRoaXMuX2luc3RhbGxTY2FsZUZvcktleShuLHQpLHRoaXMuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGUoKX0sZS5wcm90b3R5cGUuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGU9ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5fY2FjaGVkQXR0clRvUHJvamVjdG9yfSxlLnByb3RvdHlwZS5fZ2V0QXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7aWYobnVsbD09dGhpcy5fY2FjaGVkQXR0clRvUHJvamVjdG9yKXt2YXIgdD10aGlzLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3RvcigpO2UuT1BUSU1JWkVfTUVNT0laRV9QUk9KRUNUT1JTJiYodD1vU3QubWVtb2l6ZVByb2plY3RvcnModCkpLHRoaXMuX2NhY2hlZEF0dHJUb1Byb2plY3Rvcj10fXJldHVybiBpU3QuYXNzaWduKHt9LHRoaXMuX2NhY2hlZEF0dHJUb1Byb2plY3Rvcil9LGUucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvcj1mdW5jdGlvbigpe3ZhciB0PXt9O3RoaXMuX2F0dHJCaW5kaW5ncy5lYWNoKChmdW5jdGlvbihuLGkpe3RbaV09ZS5fc2NhbGVkQWNjZXNzb3Iobil9KSk7dmFyIG49dGhpcy5fcHJvcGVydHlQcm9qZWN0b3JzKCk7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKGUpe251bGw9PXRbZV0mJih0W2VdPW5bZV0pfSkpLHR9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5faXNBbmNob3JlZCYmKHRoaXMuX3BhaW50KCksdGhpcy5fZGF0YUNoYW5nZWQ9ITEpLHRoaXN9LGUucHJvdG90eXBlLnJlbmRlckxvd1ByaW9yaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbmRlckNhbGxiYWNrKCksdGhpc30sZS5wcm90b3R5cGUuYW5pbWF0ZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYW5pbWF0ZToodGhpcy5fYW5pbWF0ZT10LHRoaXMpfSxlLnByb3RvdHlwZS5kZXRhY2g9ZnVuY3Rpb24oKXtyZXR1cm4gdC5wcm90b3R5cGUuZGV0YWNoLmNhbGwodGhpcyksdGhpcy5fdXBkYXRlRXh0ZW50cygpLHRoaXN9LGUucHJvdG90eXBlLl9zY2FsZXM9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5fYXR0ckJpbmRpbmdzLmVhY2goKGZ1bmN0aW9uKGUsbil7dmFyIGk9ZS5zY2FsZTtudWxsIT1pJiYtMT09PXQuaW5kZXhPZihpKSYmdC5wdXNoKGkpfSkpLHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZWFjaCgoZnVuY3Rpb24oZSxuKXt2YXIgaT1lLnNjYWxlO251bGwhPWkmJi0xPT09dC5pbmRleE9mKGkpJiZ0LnB1c2goaSl9KSksdH0sZS5wcm90b3R5cGUuX3VwZGF0ZUV4dGVudHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX3Jlc2V0RW50aXR5U3RvcmUoKSx0aGlzLl9zY2FsZXMoKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5hZGRJbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKHQuX2luY2x1ZGVkVmFsdWVzUHJvdmlkZXIpfSkpfSxlLnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHk9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLmdldEV4dGVudHNGb3JBdHRyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYobnVsbD09dGhpcy5fYXR0ckV4dGVudHNbdF0pe3ZhciBuPW9TdC5tZW1UaHVuaygoZnVuY3Rpb24oKXtyZXR1cm4gZS5kYXRhc2V0cygpfSksKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2F0dHJCaW5kaW5ncy5nZXQodCl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09ZXx8bnVsbD09ZS5hY2Nlc3Nvcj9udWxsOnQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcFN0KHQsZSxudWxsKX0pKX0pKTt0aGlzLl9hdHRyRXh0ZW50c1t0XT1ufXJldHVybiB0aGlzLl9hdHRyRXh0ZW50c1t0XSgpfSxlLnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsPT10aGlzLl9wcm9wZXJ0eUV4dGVudHNbdF0pe3ZhciBuPW9TdC5tZW1UaHVuaygoZnVuY3Rpb24oKXtyZXR1cm4gZS5kYXRhc2V0cygpfSksKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KHQpfSksKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2ZpbHRlckZvclByb3BlcnR5KHQpfSksKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbnVsbD09ZXx8bnVsbD09ZS5hY2Nlc3Nvcj9udWxsOnQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcFN0KHQsZSxuKX0pKX0pKTt0aGlzLl9wcm9wZXJ0eUV4dGVudHNbdF09bn1yZXR1cm4gdGhpcy5fcHJvcGVydHlFeHRlbnRzW3RdKCl9LGUucHJvdG90eXBlLl9pbmNsdWRlZFZhbHVlc0ZvclNjYWxlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpZighdGhpcy5faXNBbmNob3JlZCYmIWUpcmV0dXJuW107dmFyIGk9W107cmV0dXJuIHRoaXMuX2F0dHJCaW5kaW5ncy5lYWNoKChmdW5jdGlvbihlLHIpe2lmKGUuc2NhbGU9PT10KXt2YXIgbz1uLmdldEV4dGVudHNGb3JBdHRyKHIpO251bGwhPW8mJihpPWkuY29uY2F0KGVTdC5tZXJnZShvKSkpfX0pKSx0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmVhY2goKGZ1bmN0aW9uKGUscil7aWYoZS5zY2FsZT09PXQpe3ZhciBvPW4uZ2V0RXh0ZW50c0ZvclByb3BlcnR5KHIpO251bGwhPW8mJihpPWkuY29uY2F0KGVTdC5tZXJnZShvKSkpfX0pKSxpfSxlLnByb3RvdHlwZS5hbmltYXRvcj1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lP3RoaXMuX2FuaW1hdG9yc1t0XToodGhpcy5fYW5pbWF0b3JzW3RdPWUsdGhpcyl9LGUucHJvdG90eXBlLnJlbmRlcmVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHZvaWQgMD09PXQ/bnVsbD09dGhpcy5fY2FudmFzPyJzdmciOiJjYW52YXMiOihudWxsPT10aGlzLl9jYW52YXMmJiJjYW52YXMiPT09dD8odGhpcy5fY2FudmFzPWVTdC5zZWxlY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpLmNsYXNzZWQoInBsb3QtY2FudmFzIiwhMCksdGhpcy5fYnVmZmVyQ2FudmFzPWVTdC5zZWxlY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpLG51bGwhPXRoaXMuZWxlbWVudCgpJiZ0aGlzLl9hcHBlbmRDYW52YXNOb2RlKCksdGhpcy5fZGF0YXNldFRvRHJhd2VyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QudXNlQ2FudmFzKGUuX2NhbnZhcyl9KSksdGhpcy5yZW5kZXIoKSk6bnVsbCE9dGhpcy5fY2FudmFzJiYic3ZnIj09dCYmKHRoaXMuX2NhbnZhcy5yZW1vdmUoKSx0aGlzLl9jYW52YXM9bnVsbCx0aGlzLl9idWZmZXJDYW52YXM9bnVsbCx0aGlzLl9kYXRhc2V0VG9EcmF3ZXIuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC51c2VTVkcoZS5fcmVuZGVyQXJlYSl9KSksdGhpcy5yZW5kZXIoKSksdGhpcyl9LGUucHJvdG90eXBlLmFkZERhdGFzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZERhdGFzZXQodCksdGhpcy5fb25EYXRhc2V0VXBkYXRlKCksdGhpc30sZS5wcm90b3R5cGUuX2FkZERhdGFzZXQ9ZnVuY3Rpb24odCl7dGhpcy5fcmVtb3ZlRGF0YXNldCh0KTt2YXIgZT10aGlzLl9jcmVhdGVEcmF3ZXIodCk7cmV0dXJuIHRoaXMuX2RhdGFzZXRUb0RyYXdlci5zZXQodCxlKSx0aGlzLl9pc1NldHVwJiZ0aGlzLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQodCksdC5vblVwZGF0ZSh0aGlzLl9vbkRhdGFzZXRVcGRhdGVDYWxsYmFjayksdGhpc30sZS5wcm90b3R5cGUucmVtb3ZlRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlRGF0YXNldCh0KSx0aGlzLl9vbkRhdGFzZXRVcGRhdGUoKSx0aGlzfSxlLnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4tMT09PXRoaXMuZGF0YXNldHMoKS5pbmRleE9mKHQpfHwodGhpcy5fcmVtb3ZlRGF0YXNldE5vZGVzKHQpLHQub2ZmVXBkYXRlKHRoaXMuX29uRGF0YXNldFVwZGF0ZUNhbGxiYWNrKSx0aGlzLl9kYXRhc2V0VG9EcmF3ZXIuZGVsZXRlKHQpKSx0aGlzfSxlLnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldE5vZGVzPWZ1bmN0aW9uKHQpe3RoaXMuX2RhdGFzZXRUb0RyYXdlci5nZXQodCkucmVtb3ZlKCl9LGUucHJvdG90eXBlLmRhdGFzZXRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1bXTtyZXR1cm4gdGhpcy5fZGF0YXNldFRvRHJhd2VyLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4ucHVzaChlKX0pKSxudWxsPT10P246KG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX3JlbW92ZURhdGFzZXQodCl9KSksdC5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fYWRkRGF0YXNldCh0KX0pKSx0aGlzLl9vbkRhdGFzZXRVcGRhdGUoKSx0aGlzKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7cmV0dXJuW3thdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6bmV3IG5TdC5OdWxsfV19LGUucHJvdG90eXBlLl9hZGRpdGlvbmFsUGFpbnQ9ZnVuY3Rpb24odCl7fSxlLnByb3RvdHlwZS5fYnVpbGRMaWdodHdlaWdodFBsb3RFbnRpdGllcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXtmb3IodmFyIHI9ZS5fZGF0YXNldFRvRHJhd2VyLmdldCh0KSxvPTAsYT10LmRhdGEoKSxzPWEubGVuZ3RoLGw9ZnVuY3Rpb24ocyl7dmFyIGw9YVtzXSxjPWUuX3BpeGVsUG9pbnQobCxzLHQpO2lmKGlTdC5NYXRoLmlzTmFOKGMueCl8fGlTdC5NYXRoLmlzTmFOKGMueSkpcmV0dXJuImNvbnRpbnVlIjt2YXIgdT1lO24ucHVzaCh7ZGF0dW06bCxnZXQgcG9zaXRpb24oKXtyZXR1cm4gdS5fcGl4ZWxQb2ludC5jYWxsKHUsbCxzLHQpfSxpbmRleDpzLGRhdGFzZXQ6dCxkYXRhc2V0SW5kZXg6aSxjb21wb25lbnQ6ZSxkcmF3ZXI6cix2YWxpZERhdHVtSW5kZXg6b30pLG8rK30sYz0wO2M8cztjKyspbChjKX0pKSxufSxlLnByb3RvdHlwZS5fZ2V0RGF0YVRvRHJhdz1mdW5jdGlvbigpe3ZhciB0PW5ldyBpU3QuTWFwO3JldHVybiB0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2V0KGUsZS5kYXRhKCkpfSkpLHR9LGUucHJvdG90eXBlLl9wYWludD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7ZGVsZXRlIHRoaXMuX2NhY2hlZEF0dHJUb1Byb2plY3Rvcjt2YXIgbj10aGlzLl9nZW5lcmF0ZURyYXdTdGVwcygpLGk9dGhpcy5fZ2V0RGF0YVRvRHJhdygpLHI9dGhpcy5kYXRhc2V0cygpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuX2RhdGFzZXRUb0RyYXdlci5nZXQoZSl9KSk7aWYoImNhbnZhcyI9PT10aGlzLnJlbmRlcmVyKCkpe3ZhciBvPXRoaXMuX2NhbnZhcy5ub2RlKCk7by5nZXRDb250ZXh0KCIyZCIpLmNsZWFyUmVjdCgwLDAsby5jbGllbnRXaWR0aCxvLmNsaWVudEhlaWdodCksdGhpcy5fYnVmZmVyQ2FudmFzVmFsaWQ9ITF9dGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKHQsbyl7dmFyIGE9ZS5hcHBseURyYXdTdGVwcyhuLHQpO3Jbb10uZHJhdyhpLmdldCh0KSxhKX0pKTt2YXIgYT10aGlzLmRhdGFzZXRzKCkubWFwKChmdW5jdGlvbih0LHIpe3JldHVybiBlLmdldFRvdGFsRHJhd1RpbWUoaS5nZXQodCksbil9KSkscz1pU3QuTWF0aC5tYXgoYSwwKTt0aGlzLl9hZGRpdGlvbmFsUGFpbnQocyl9LGUucHJvdG90eXBlLnNlbGVjdGlvbnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih2b2lkIDA9PT10JiYodD10aGlzLmRhdGFzZXRzKCkpLCJjYW52YXMiPT09dGhpcy5yZW5kZXJlcigpKXJldHVybiBlU3Quc2VsZWN0QWxsKCk7dmFyIG49W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGk9ZS5fZGF0YXNldFRvRHJhd2VyLmdldCh0KTtpZihudWxsIT1pKXt2YXIgcj1pLmdldFZpc3VhbFByaW1pdGl2ZXMoKTtuLnB1c2guYXBwbHkobixyKX19KSksZVN0LnNlbGVjdEFsbChuKX0sZS5wcm90b3R5cGUuZW50aXRpZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5fZ2V0RW50aXR5U3RvcmUodCkuZW50aXRpZXMoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkodCl9KSl9LGUucHJvdG90eXBlLmZpbHRlckVudGl0aWVzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuX2dldEVudGl0eVN0b3JlKCkuZW50aXRpZXMoKS5maWx0ZXIodCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fbGlnaHR3ZWlnaHRQbG90RW50aXR5VG9QbG90RW50aXR5KHQpfSkpfSxlLnByb3RvdHlwZS5fZ2V0RW50aXR5U3RvcmU9ZnVuY3Rpb24odCl7dmFyIGUsbj10aGlzLGk9ZnVuY3Rpb24odCl7cmV0dXJuIG4uX2VudGl0eUJvdW5kcyh0KX07cmV0dXJuIHZvaWQgMCE9PXQ/KChlPW5ldyBpU3QuRW50aXR5U3RvcmUpLmFkZEFsbCh0aGlzLl9idWlsZExpZ2h0d2VpZ2h0UGxvdEVudGl0aWVzKHQpLGksdGhpcy5fbG9jYWxPcmlnaW5Cb3VuZHMoKSksZSk6KHZvaWQgMD09PXRoaXMuX2NhY2hlZEVudGl0eVN0b3JlJiYoKGU9bmV3IGlTdC5FbnRpdHlTdG9yZSkuYWRkQWxsKHRoaXMuX2J1aWxkTGlnaHR3ZWlnaHRQbG90RW50aXRpZXModGhpcy5kYXRhc2V0cygpKSxpLHRoaXMuX2xvY2FsT3JpZ2luQm91bmRzKCkpLHRoaXMuX2NhY2hlZEVudGl0eVN0b3JlPWUpLHRoaXMuX2NhY2hlZEVudGl0eVN0b3JlKX0sZS5wcm90b3R5cGUuX2xvY2FsT3JpZ2luQm91bmRzPWZ1bmN0aW9uKCl7cmV0dXJue3RvcExlZnQ6e3g6MCx5OjB9LGJvdHRvbVJpZ2h0Ont4OnRoaXMud2lkdGgoKSx5OnRoaXMuaGVpZ2h0KCl9fX0sZS5wcm90b3R5cGUuX2VudGl0eUJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9waXhlbFBvaW50KHQuZGF0dW0sdC5pbmRleCx0LmRhdGFzZXQpO3JldHVybnt4OmUueCx5OmUueSx3aWR0aDowLGhlaWdodDowfX0sZS5wcm90b3R5cGUuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eT1mdW5jdGlvbih0KXtyZXR1cm57Ym91bmRzOnRoaXMuX2VudGl0eUJvdW5kcyh0KSxjb21wb25lbnQ6dC5jb21wb25lbnQsZGF0YXNldDp0LmRhdGFzZXQsZGF0YXNldEluZGV4OnQuZGF0YXNldEluZGV4LGRhdHVtOnQuZGF0dW0saW5kZXg6dC5pbmRleCxwb3NpdGlvbjp0LnBvc2l0aW9uLHNlbGVjdGlvbjplU3Quc2VsZWN0KHQuZHJhd2VyLmdldFZpc3VhbFByaW1pdGl2ZUF0SW5kZXgodC52YWxpZERhdHVtSW5kZXgpKX19LGUucHJvdG90eXBlLmVudGl0aWVzQXQ9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwbG90cyBtdXN0IGltcGxlbWVudCBlbnRpdGllc0F0Iil9LGUucHJvdG90eXBlLmVudGl0eU5lYXJlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdHlOZWFyZXN0KHQpO3JldHVybiB2b2lkIDA9PT1lP3ZvaWQgMDp0aGlzLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkoZSl9LGUucHJvdG90eXBlLmVudGl0aWVzSW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5lbnRpdGllc0luQm91bmRzKG51bGw9PWU/e3g6dC50b3BMZWZ0LngseTp0LnRvcExlZnQueSx3aWR0aDp0LmJvdHRvbVJpZ2h0LngtdC50b3BMZWZ0LngsaGVpZ2h0OnQuYm90dG9tUmlnaHQueS10LnRvcExlZnQueX06e3g6dC5taW4seTplLm1pbix3aWR0aDp0Lm1heC10Lm1pbixoZWlnaHQ6ZS5tYXgtZS5taW59KX0sZS5wcm90b3R5cGUuZW50aXRpZXNJbkJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdGllc0luQm91bmRzKHQpO2lmKG4pcmV0dXJuIG4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fbGlnaHR3ZWlnaHRQbG90RW50aXR5VG9QbG90RW50aXR5KHQpfSkpfSxlLnByb3RvdHlwZS5lbnRpdGllc0luWEJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdGllc0luWEJvdW5kcyh0KTtpZihuKXJldHVybiBuLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eSh0KX0pKX0sZS5wcm90b3R5cGUuZW50aXRpZXNJbllCb3VuZHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuX2dldEVudGl0eVN0b3JlKCkuZW50aXRpZXNJbllCb3VuZHModCk7aWYobilyZXR1cm4gbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkodCl9KSl9LGUucHJvdG90eXBlLl91bmluc3RhbGxTY2FsZUZvcktleT1mdW5jdGlvbih0LGUpe3Qub2ZmVXBkYXRlKHRoaXMuX3JlbmRlckNhbGxiYWNrKSx0Lm9mZlVwZGF0ZSh0aGlzLl9kZWZlcnJlZFJlc2V0RW50aXR5U3RvcmUpLHQucmVtb3ZlSW5jbHVkZWRWYWx1ZXNQcm92aWRlcih0aGlzLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKX0sZS5wcm90b3R5cGUuX2luc3RhbGxTY2FsZUZvcktleT1mdW5jdGlvbih0LGUpe3Qub25VcGRhdGUodGhpcy5fcmVuZGVyQ2FsbGJhY2spLHQub25VcGRhdGUodGhpcy5fZGVmZXJyZWRSZXNldEVudGl0eVN0b3JlKSx0LmFkZEluY2x1ZGVkVmFsdWVzUHJvdmlkZXIodGhpcy5faW5jbHVkZWRWYWx1ZXNQcm92aWRlcil9LGUucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnM9ZnVuY3Rpb24oKXtyZXR1cm57fX0sZS5fc2NhbGVkQWNjZXNzb3I9ZnVuY3Rpb24odCl7dmFyIGU9dC5zY2FsZSxuPXQuYWNjZXNzb3IsaT10LnBvc3RTY2FsZSxyPW51bGw9PWU/bjpmdW5jdGlvbih0LGkscil7cmV0dXJuIGUuc2NhbGUobih0LGkscikpfTtyZXR1cm4gbnVsbD09aT9yOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gaShyKHQsZSxuKSx0LGUsbil9fSxlLnByb3RvdHlwZS5fcGl4ZWxQb2ludD1mdW5jdGlvbih0LGUsbil7cmV0dXJue3g6MCx5OjB9fSxlLnByb3RvdHlwZS5fYW5pbWF0ZU9uTmV4dFJlbmRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbmltYXRlJiZ0aGlzLl9kYXRhQ2hhbmdlZH0sZS5PUFRJTUlaRV9NRU1PSVpFX1BST0pFQ1RPUlM9ITEsZS5fQU5JTUFUSU9OX01BWF9EVVJBVElPTj02MDAsZX0pKGFTdC5Db21wb25lbnQpO2Z1bmN0aW9uIHBTdCh0LGUsbil7dmFyIGk9ZS5hY2Nlc3NvcixyPWUuc2NhbGU7aWYobnVsbD09cilyZXR1cm5bXTt2YXIgbz10LmRhdGEoKTtudWxsIT1uJiYobz1vLmZpbHRlcigoZnVuY3Rpb24oZSxpKXtyZXR1cm4gbihlLGksdCl9KSkpO3ZhciBhPW8ubWFwKChmdW5jdGlvbihlLG4pe3JldHVybiBpKGUsbix0KX0pKTtyZXR1cm4gci5leHRlbnRPZlZhbHVlcyhhKX0KLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi91d3QuUGxvdD1kU3QsT2JqZWN0LmRlZmluZVByb3BlcnR5KGN3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGZTdD11TyxtU3Q9dXd0LGdTdD1GZ3QsX1N0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gZlN0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmVudGl0eU5lYXJlc3Q9ZnVuY3Rpb24odCl7dmFyIGUsbj0xLzA7cmV0dXJuIHRoaXMuY29tcG9uZW50cygpLmZvckVhY2goKGZ1bmN0aW9uKGkpe3ZhciByPWkuZW50aXR5TmVhcmVzdCh0KTtpZihudWxsIT1yKXt2YXIgbz1nU3QuTWF0aC5kaXN0YW5jZVNxdWFyZWQoci5wb3NpdGlvbix0KTtvPD1uJiYobj1vLGU9cil9fSkpLGV9LGUucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbihlKXtpZihudWxsIT1lJiYhKGUgaW5zdGFuY2VvZiBtU3QuUGxvdCkpdGhyb3cgbmV3IEVycm9yKCJQbG90IEdyb3VwIG9ubHkgYWNjZXB0cyBwbG90cyIpO3JldHVybiB0LnByb3RvdHlwZS5hcHBlbmQuY2FsbCh0aGlzLGUpLHRoaXN9LGV9KShieHQuR3JvdXApO2N3dC5QbG90R3JvdXA9X1N0O3ZhciB5U3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KHlTdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHZTdD11TyxiU3Q9RWR0LHhTdD1GZ3Qsd1N0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPVtdKTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX3Jvd1BhZGRpbmc9MCxuLl9jb2x1bW5QYWRkaW5nPTAsbi5fcm93cz1bXSxuLl9yb3dXZWlnaHRzPVtdLG4uX2NvbHVtbldlaWdodHM9W10sbi5fblJvd3M9MCxuLl9uQ29scz0wLG4uX2NhbGN1bGF0ZWRMYXlvdXQ9bnVsbCxuLmFkZENsYXNzKCJ0YWJsZSIpLGUuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7bnVsbCE9dCYmbi5hZGQodCxlLGkpfSkpfSkpLG59cmV0dXJuIHZTdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fZm9yRWFjaD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHRoaXMuX25Sb3dzO2UrKylmb3IodmFyIG49MDtuPHRoaXMuX25Db2xzO24rKyludWxsIT10aGlzLl9yb3dzW2VdW25dJiZ0KHRoaXMuX3Jvd3NbZV1bbl0pfSxlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0aGlzLl9uUm93cztlKyspZm9yKHZhciBuPTA7bjx0aGlzLl9uQ29scztuKyspaWYodGhpcy5fcm93c1tlXVtuXT09PXQpcmV0dXJuITA7cmV0dXJuITF9LGUucHJvdG90eXBlLmNvbXBvbmVudEF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ8MHx8dD49dGhpcy5fblJvd3N8fGU8MHx8ZT49dGhpcy5fbkNvbHM/bnVsbDp0aGlzLl9yb3dzW3RdW2VdfSxlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCxlLG4pe2lmKG51bGw9PXQpdGhyb3cgRXJyb3IoIkNhbm5vdCBhZGQgbnVsbCB0byBhIHRhYmxlIGNlbGwiKTtpZighdGhpcy5oYXModCkpe2lmKG51bGwhPSh0aGlzLl9yb3dzW2VdJiZ0aGlzLl9yb3dzW2VdW25dKSl0aHJvdyBuZXcgRXJyb3IoImNlbGwgaXMgb2NjdXBpZWQiKTt0LmRldGFjaCgpLHRoaXMuX25Sb3dzPU1hdGgubWF4KGUrMSx0aGlzLl9uUm93cyksdGhpcy5fbkNvbHM9TWF0aC5tYXgobisxLHRoaXMuX25Db2xzKSx0aGlzLl9wYWRUYWJsZVRvU2l6ZSh0aGlzLl9uUm93cyx0aGlzLl9uQ29scyksdGhpcy5fcm93c1tlXVtuXT10LHRoaXMuX2Fkb3B0QW5kQW5jaG9yKHQpLHRoaXMucmVkcmF3KCl9cmV0dXJuIHRoaXN9LGUucHJvdG90eXBlLl9yZW1vdmU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0aGlzLl9uUm93cztlKyspZm9yKHZhciBuPTA7bjx0aGlzLl9uQ29scztuKyspaWYodGhpcy5fcm93c1tlXVtuXT09PXQpcmV0dXJuIHRoaXMuX3Jvd3NbZV1bbl09bnVsbCwhMDtyZXR1cm4hMX0sZS5wcm90b3R5cGUuX2l0ZXJhdGVMYXlvdXQ9ZnVuY3Rpb24odCxuLGkpe3ZvaWQgMD09PWkmJihpPSExKTtmb3IodmFyIHIsbyxhLHMsbCxjPXRoaXMuX3Jvd3MsdT1iU3QudHJhbnNwb3NlKHRoaXMuX3Jvd3MpLGg9dC10aGlzLl9jb2x1bW5QYWRkaW5nKih0aGlzLl9uQ29scy0xKSxkPW4tdGhpcy5fcm93UGFkZGluZyoodGhpcy5fblJvd3MtMSkscD1lLl9jYWxjQ29tcG9uZW50V2VpZ2h0cyh0aGlzLl9yb3dXZWlnaHRzLGMsKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHx0LmZpeGVkSGVpZ2h0KCl9KSksZj1lLl9jYWxjQ29tcG9uZW50V2VpZ2h0cyh0aGlzLl9jb2x1bW5XZWlnaHRzLHUsKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHx0LmZpeGVkV2lkdGgoKX0pKSxtPWYubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQ/LjU6dH0pKSxnPXAubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQ/LjU6dH0pKSxfPWUuX2NhbGNQcm9wb3J0aW9uYWxTcGFjZShtLGgpLHk9ZS5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKGcsZCksdj14U3QuQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoMCx0aGlzLl9uQ29scyksYj14U3QuQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoMCx0aGlzLl9uUm93cykseD0wOzspe3ZhciB3PXhTdC5BcnJheS5hZGQoYix5KSxTPXhTdC5BcnJheS5hZGQodixfKTt2PShhPXRoaXMuX2RldGVybWluZUd1YXJhbnRlZXMoUyx3LGkpKS5ndWFyYW50ZWVkV2lkdGhzLGI9YS5ndWFyYW50ZWVkSGVpZ2h0cyxzPWEud2FudHNXaWR0aEFyci5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSxsPWEud2FudHNIZWlnaHRBcnIuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSk7dmFyIE09cixFPW87cj1oLWJTdC5zdW0oYS5ndWFyYW50ZWVkV2lkdGhzKSxvPWQtYlN0LnN1bShhLmd1YXJhbnRlZWRIZWlnaHRzKTt2YXIgVD12b2lkIDA7cz8oVD1hLndhbnRzV2lkdGhBcnIubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdD8uMTowfSkpLFQ9eFN0LkFycmF5LmFkZChULGYpKTpUPWY7dmFyIEM9dm9pZCAwO2lmKGw/KEM9YS53YW50c0hlaWdodEFyci5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Py4xOjB9KSksQz14U3QuQXJyYXkuYWRkKEMscCkpOkM9cCxfPWUuX2NhbGNQcm9wb3J0aW9uYWxTcGFjZShULHIpLHk9ZS5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKEMsbykseCsrLCEocj4wJiZyIT09TXx8bz4wJiZvIT09RSkpYnJlYWs7aWYoeD41KWJyZWFrfXJldHVybiByPWgtYlN0LnN1bShhLmd1YXJhbnRlZWRXaWR0aHMpLG89ZC1iU3Quc3VtKGEuZ3VhcmFudGVlZEhlaWdodHMpLHtjb2xQcm9wb3J0aW9uYWxTcGFjZTpfPWUuX2NhbGNQcm9wb3J0aW9uYWxTcGFjZShmLHIpLHJvd1Byb3BvcnRpb25hbFNwYWNlOnk9ZS5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKHAsbyksZ3VhcmFudGVlZFdpZHRoczphLmd1YXJhbnRlZWRXaWR0aHMsZ3VhcmFudGVlZEhlaWdodHM6YS5ndWFyYW50ZWVkSGVpZ2h0cyx3YW50c1dpZHRoOnMsd2FudHNIZWlnaHQ6bH19LGUucHJvdG90eXBlLl9kZXRlcm1pbmVHdWFyYW50ZWVzPWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1uJiYobj0hMSk7dmFyIGk9eFN0LkFycmF5LmNyZWF0ZUZpbGxlZEFycmF5KDAsdGhpcy5fbkNvbHMpLHI9eFN0LkFycmF5LmNyZWF0ZUZpbGxlZEFycmF5KDAsdGhpcy5fblJvd3MpLG89eFN0LkFycmF5LmNyZWF0ZUZpbGxlZEFycmF5KCExLHRoaXMuX25Db2xzKSxhPXhTdC5BcnJheS5jcmVhdGVGaWxsZWRBcnJheSghMSx0aGlzLl9uUm93cyk7cmV0dXJuIHRoaXMuX3Jvd3MuZm9yRWFjaCgoZnVuY3Rpb24ocyxsKXtzLmZvckVhY2goKGZ1bmN0aW9uKHMsYyl7dmFyIHU7dT1udWxsIT1zP3MucmVxdWVzdGVkU3BhY2UodFtjXSxlW2xdKTp7bWluV2lkdGg6MCxtaW5IZWlnaHQ6MH07dmFyIGg9bj9NYXRoLm1pbih1Lm1pbldpZHRoLHRbY10pOnUubWluV2lkdGg7aVtjXT1NYXRoLm1heChpW2NdLGgpO3ZhciBkPW4/TWF0aC5taW4odS5taW5IZWlnaHQsZVtsXSk6dS5taW5IZWlnaHQ7cltsXT1NYXRoLm1heChyW2xdLGQpLG9bY109b1tjXXx8dS5taW5XaWR0aD50W2NdLGFbbF09YVtsXXx8dS5taW5IZWlnaHQ+ZVtsXX0pKX0pKSx7Z3VhcmFudGVlZFdpZHRoczppLGd1YXJhbnRlZWRIZWlnaHRzOnIsd2FudHNXaWR0aEFycjpvLHdhbnRzSGVpZ2h0QXJyOmF9fSxlLnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9jYWxjdWxhdGVkTGF5b3V0PXRoaXMuX2l0ZXJhdGVMYXlvdXQodCxlKSx7bWluV2lkdGg6YlN0LnN1bSh0aGlzLl9jYWxjdWxhdGVkTGF5b3V0Lmd1YXJhbnRlZWRXaWR0aHMpLG1pbkhlaWdodDpiU3Quc3VtKHRoaXMuX2NhbGN1bGF0ZWRMYXlvdXQuZ3VhcmFudGVlZEhlaWdodHMpfX0sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7dmFyIHI9dGhpczt0LnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxlLG4saSk7dmFyIG89YlN0LnN1bSh0aGlzLl9jYWxjdWxhdGVkTGF5b3V0Lmd1YXJhbnRlZWRXaWR0aHMpLGE9YlN0LnN1bSh0aGlzLl9jYWxjdWxhdGVkTGF5b3V0Lmd1YXJhbnRlZWRIZWlnaHRzKSxzPXRoaXMuX2NhbGN1bGF0ZWRMYXlvdXQ7KG8+dGhpcy53aWR0aCgpfHxhPnRoaXMuaGVpZ2h0KCkpJiYocz10aGlzLl9pdGVyYXRlTGF5b3V0KHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpLCEwKSk7dmFyIGw9MCxjPXhTdC5BcnJheS5hZGQocy5yb3dQcm9wb3J0aW9uYWxTcGFjZSxzLmd1YXJhbnRlZWRIZWlnaHRzKSx1PXhTdC5BcnJheS5hZGQocy5jb2xQcm9wb3J0aW9uYWxTcGFjZSxzLmd1YXJhbnRlZWRXaWR0aHMpO3JldHVybiB0aGlzLl9yb3dzLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dmFyIG49MDt0LmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7bnVsbCE9dCYmdC5jb21wdXRlTGF5b3V0KHt4Om4seTpsfSx1W2ldLGNbZV0pLG4rPXVbaV0rci5fY29sdW1uUGFkZGluZ30pKSxsKz1jW2VdK3IuX3Jvd1BhZGRpbmd9KSksdGhpc30sZS5wcm90b3R5cGUucm93UGFkZGluZz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9yb3dQYWRkaW5nO2lmKCF4U3QuTWF0aC5pc1ZhbGlkTnVtYmVyKHQpfHx0PDApdGhyb3cgRXJyb3IoInJvd1BhZGRpbmcgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBmaW5pdGUgdmFsdWUiKTtyZXR1cm4gdGhpcy5fcm93UGFkZGluZz10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUuY29sdW1uUGFkZGluZz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9jb2x1bW5QYWRkaW5nO2lmKCF4U3QuTWF0aC5pc1ZhbGlkTnVtYmVyKHQpfHx0PDApdGhyb3cgRXJyb3IoImNvbHVtblBhZGRpbmcgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBmaW5pdGUgdmFsdWUiKTtyZXR1cm4gdGhpcy5fY29sdW1uUGFkZGluZz10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUucm93V2VpZ2h0PWZ1bmN0aW9uKHQsZSl7aWYobnVsbD09ZSlyZXR1cm4gdGhpcy5fcm93V2VpZ2h0c1t0XTtpZigheFN0Lk1hdGguaXNWYWxpZE51bWJlcihlKXx8ZTwwKXRocm93IEVycm9yKCJyb3dXZWlnaHQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBmaW5pdGUgdmFsdWUiKTtyZXR1cm4gdGhpcy5fcm93V2VpZ2h0c1t0XT1lLHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUuY29sdW1uV2VpZ2h0PWZ1bmN0aW9uKHQsZSl7aWYobnVsbD09ZSlyZXR1cm4gdGhpcy5fY29sdW1uV2VpZ2h0c1t0XTtpZigheFN0Lk1hdGguaXNWYWxpZE51bWJlcihlKXx8ZTwwKXRocm93IEVycm9yKCJjb2x1bW5XZWlnaHQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBmaW5pdGUgdmFsdWUiKTtyZXR1cm4gdGhpcy5fY29sdW1uV2VpZ2h0c1t0XT1lLHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3ZhciB0PWJTdC50cmFuc3Bvc2UodGhpcy5fcm93cyk7cmV0dXJuIGUuX2ZpeGVkU3BhY2UodCwoZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXR8fHQuZml4ZWRXaWR0aCgpfSkpfSxlLnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiBlLl9maXhlZFNwYWNlKHRoaXMuX3Jvd3MsKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHx0LmZpeGVkSGVpZ2h0KCl9KSl9LGUucHJvdG90eXBlLl9wYWRUYWJsZVRvU2l6ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wO248dDtuKyspe3ZvaWQgMD09PXRoaXMuX3Jvd3Nbbl0mJih0aGlzLl9yb3dzW25dPVtdLHRoaXMuX3Jvd1dlaWdodHNbbl09bnVsbCk7Zm9yKHZhciBpPTA7aTxlO2krKyl2b2lkIDA9PT10aGlzLl9yb3dzW25dW2ldJiYodGhpcy5fcm93c1tuXVtpXT1udWxsKX1mb3IoaT0wO2k8ZTtpKyspdm9pZCAwPT09dGhpcy5fY29sdW1uV2VpZ2h0c1tpXSYmKHRoaXMuX2NvbHVtbldlaWdodHNbaV09bnVsbCl9LGUuX2NhbGNDb21wb25lbnRXZWlnaHRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIG51bGwhPXQ/dDplW2ldLm1hcChuKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQmJmV9KSwhMCk/MDoxfSkpfSxlLl9jYWxjUHJvcG9ydGlvbmFsU3BhY2U9ZnVuY3Rpb24odCxlKXt2YXIgbj1iU3Quc3VtKHQpO3JldHVybiAwPT09bj94U3QuQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoMCx0Lmxlbmd0aCk6dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlKnQvbn0pKX0sZS5fZml4ZWRTcGFjZT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmZX0pLCEwKX07cmV0dXJuIG4odC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBuKHQubWFwKGUpKX0pKSl9LGV9KSh4eHQuQ29tcG9uZW50Q29udGFpbmVyKTt5U3QuVGFibGU9d1N0O3ZhciBTU3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFNTdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIE1TdD11TyxFU3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX21heExpbmVzPTIsZX1yZXR1cm4gTVN0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHQsZSl7dGhpcy5fd3JhcHBlci5tYXhMaW5lcyh0aGlzLl9tYXhMaW5lcyk7dmFyIG49MD09PXRoaXMuYW5nbGUoKT90OmU7MD09PW4mJihuPTEvMCk7dmFyIGk9dGhpcy5fd3JhcHBlci53cmFwKHRoaXMuX3RleHQsdGhpcy5fbWVhc3VyZXIsbikscj10aGlzLl9tZWFzdXJlci5tZWFzdXJlKGkud3JhcHBlZFRleHQpO3JldHVybnttaW5XaWR0aDooMD09PXRoaXMuYW5nbGUoKT9yLndpZHRoOnIuaGVpZ2h0KSsyKnRoaXMucGFkZGluZygpLG1pbkhlaWdodDooMD09PXRoaXMuYW5nbGUoKT9yLmhlaWdodDpyLndpZHRoKSsyKnRoaXMucGFkZGluZygpfX0sZS5wcm90b3R5cGUubWF4TGluZXM9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX21heExpbmVzOih0aGlzLl9tYXhMaW5lcz10LHRoaXMucmVkcmF3KCksdGhpcyl9LGV9KShPeHQuTGFiZWwpO1NTdC5XcmFwcGVkTGFiZWw9RVN0O3ZhciBUU3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFRTdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIENTdD11TyxBU3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGUuYWRkQ2xhc3MoIngtZHJhZy1ib3gtbGF5ZXIiKSxlLl9oYXNDb3JuZXJzPSExLGV9cmV0dXJuIENTdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gdC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsZSxuLGkpLHRoaXMuX3NldEJvdW5kcyh0aGlzLmJvdW5kcygpKSx0aGlzfSxlLnByb3RvdHlwZS5fc2V0Qm91bmRzPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLl9zZXRCb3VuZHMuY2FsbCh0aGlzLHt0b3BMZWZ0Ont4OmUudG9wTGVmdC54LHk6MH0sYm90dG9tUmlnaHQ6e3g6ZS5ib3R0b21SaWdodC54LHk6dGhpcy5oZWlnaHQoKX19KX0sZS5wcm90b3R5cGUuX3NldFJlc2l6YWJsZUNsYXNzZXM9ZnVuY3Rpb24odCl7dCYmdGhpcy5lbmFibGVkKCk/dGhpcy5hZGRDbGFzcygieC1yZXNpemFibGUiKTp0aGlzLnJlbW92ZUNsYXNzKCJ4LXJlc2l6YWJsZSIpfSxlLnByb3RvdHlwZS55U2NhbGU9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4gdC5wcm90b3R5cGUueVNjYWxlLmNhbGwodGhpcyk7dGhyb3cgbmV3IEVycm9yKCJ5U2NhbGVzIGNhbm5vdCBiZSBzZXQgb24gYW4gWERyYWdCb3hMYXllciIpfSxlLnByb3RvdHlwZS55RXh0ZW50PWZ1bmN0aW9uKGUpe2lmKG51bGw9PWUpcmV0dXJuIHQucHJvdG90eXBlLnlFeHRlbnQuY2FsbCh0aGlzKTt0aHJvdyBuZXcgRXJyb3IoIlhEcmFnQm94TGF5ZXIgaGFzIG5vIHlFeHRlbnQiKX0sZX0pKHJidC5EcmFnQm94TGF5ZXIpO1RTdC5YRHJhZ0JveExheWVyPUFTdDt2YXIga1N0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShrU3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBMU3Q9dU8sUFN0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLmFkZENsYXNzKCJ5LWRyYWctYm94LWxheWVyIiksZS5faGFzQ29ybmVycz0hMSxlfXJldHVybiBMU3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKSx0aGlzLl9zZXRCb3VuZHModGhpcy5ib3VuZHMoKSksdGhpc30sZS5wcm90b3R5cGUuX3NldEJvdW5kcz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5fc2V0Qm91bmRzLmNhbGwodGhpcyx7dG9wTGVmdDp7eDowLHk6ZS50b3BMZWZ0Lnl9LGJvdHRvbVJpZ2h0Ont4OnRoaXMud2lkdGgoKSx5OmUuYm90dG9tUmlnaHQueX19KX0sZS5wcm90b3R5cGUuX3NldFJlc2l6YWJsZUNsYXNzZXM9ZnVuY3Rpb24odCl7dCYmdGhpcy5lbmFibGVkKCk/dGhpcy5hZGRDbGFzcygieS1yZXNpemFibGUiKTp0aGlzLnJlbW92ZUNsYXNzKCJ5LXJlc2l6YWJsZSIpfSxlLnByb3RvdHlwZS54U2NhbGU9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4gdC5wcm90b3R5cGUueFNjYWxlLmNhbGwodGhpcyk7dGhyb3cgbmV3IEVycm9yKCJ4U2NhbGVzIGNhbm5vdCBiZSBzZXQgb24gYW4gWURyYWdCb3hMYXllciIpfSxlLnByb3RvdHlwZS54RXh0ZW50PWZ1bmN0aW9uKGUpe2lmKG51bGw9PWUpcmV0dXJuIHQucHJvdG90eXBlLnhFeHRlbnQuY2FsbCh0aGlzKTt0aHJvdyBuZXcgRXJyb3IoIllEcmFnQm94TGF5ZXIgaGFzIG5vIHhFeHRlbnQiKX0sZX0pKHJidC5EcmFnQm94TGF5ZXIpO2tTdC5ZRHJhZ0JveExheWVyPVBTdCwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT11TztlLl9fZXhwb3J0U3RhcihyYnQsdCksZS5fX2V4cG9ydFN0YXIob3h0LHQpLGUuX19leHBvcnRTdGFyKGd4dCx0KSxlLl9fZXhwb3J0U3RhcihieHQsdCksZS5fX2V4cG9ydFN0YXIoYXh0LHQpLGUuX19leHBvcnRTdGFyKEF4dCx0KSxlLl9fZXhwb3J0U3RhcihPeHQsdCksZS5fX2V4cG9ydFN0YXIoVnh0LHQpLGUuX19leHBvcnRTdGFyKGN3dCx0KSxlLl9fZXhwb3J0U3RhcihKYnQsdCksZS5fX2V4cG9ydFN0YXIoeVN0LHQpLGUuX19leHBvcnRTdGFyKFNTdCx0KSxlLl9fZXhwb3J0U3RhcihUU3QsdCksZS5fX2V4cG9ydFN0YXIoa1N0LHQpfSkoaWJ0KTt2YXIgTlN0PXt9LElTdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KElTdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFJTdD11TyxPU3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gdC5jYWxsKHRoaXMsInBhdGgiLCJhcmMgZmlsbCIpfHx0aGlzfXJldHVybiBSU3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2FwcGx5RGVmYXVsdEF0dHJpYnV0ZXM9ZnVuY3Rpb24odCl7dC5zdHlsZSgic3Ryb2tlIiwibm9uZSIpfSxlfSkoWXd0LlNWR0RyYXdlcik7SVN0LkFyY1NWR0RyYXdlcj1PU3Q7dmFyIHpTdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoelN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgRFN0PXVPLEJTdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiB0LmNhbGwodGhpcywicGF0aCIsImFyYyBvdXRsaW5lIil8fHRoaXN9cmV0dXJuIERTdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fYXBwbHlEZWZhdWx0QXR0cmlidXRlcz1mdW5jdGlvbih0KXt0LnN0eWxlKCJmaWxsIiwibm9uZSIpfSxlfSkoWXd0LlNWR0RyYXdlcik7elN0LkFyY091dGxpbmVTVkdEcmF3ZXI9QlN0O3ZhciBIU3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEhTdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEZTdD11TyxWU3Q9R3d0LFVTdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiB0LmNhbGwodGhpcywicGF0aCIsImFyZWEiKXx8dGhpc31yZXR1cm4gRlN0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9hcHBseURlZmF1bHRBdHRyaWJ1dGVzPWZ1bmN0aW9uKHQpe3Quc3R5bGUoInN0cm9rZSIsIm5vbmUiKX0sZS5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleD1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleC5jYWxsKHRoaXMsMCl9LGV9KShZd3QuU1ZHRHJhd2VyKTtIU3QuQXJlYVNWR0RyYXdlcj1VU3Q7dmFyIGpTdD1bIm9wYWNpdHkiLCJmaWxsIiwiZmlsbC1vcGFjaXR5Il0sR1N0PVsib3BhY2l0eSIsInN0cm9rZSIsInN0cm9rZS13aWR0aCJdO0hTdC5tYWtlQXJlYUNhbnZhc0RyYXdTdGVwPWZ1bmN0aW9uIFdTdCh0LGUpe3JldHVybiBmdW5jdGlvbihuLGkscil7dmFyIG89VlN0LnJlc29sdmVBdHRyaWJ1dGVzKHIsalN0LGlbMF0sMCk7VlN0LnJlbmRlckFyZWEobix0KCksaVswXSxvKTt2YXIgYT1WU3QucmVzb2x2ZUF0dHJpYnV0ZXMocixHU3QsaVswXSwwKTtWU3QucmVuZGVyTGluZShuLGUoKSxpWzBdLGEpfX07dmFyIHFTdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkocVN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgWVN0PXVPLFhTdD1Hd3QsJFN0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuY2FsbCh0aGlzLCJwYXRoIiwibGluZSIpfHx0aGlzfXJldHVybiBZU3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2FwcGx5RGVmYXVsdEF0dHJpYnV0ZXM9ZnVuY3Rpb24odCl7dC5zdHlsZSgiZmlsbCIsIm5vbmUiKX0sZS5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleD1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleC5jYWxsKHRoaXMsMCl9LGV9KShZd3QuU1ZHRHJhd2VyKTtxU3QuTGluZVNWR0RyYXdlcj0kU3Q7dmFyIEtTdD1bIm9wYWNpdHkiLCJzdHJva2Utb3BhY2l0eSIsInN0cm9rZS13aWR0aCIsInN0cm9rZSIsInN0cm9rZS1kYXNoYXJyYXkiXTtxU3QubWFrZUxpbmVDYW52YXNEcmF3U3RlcD1mdW5jdGlvbiBaU3QodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXt2YXIgcj1YU3QucmVzb2x2ZUF0dHJpYnV0ZXMoaSxLU3QsblswXSwwKTtYU3QucmVuZGVyTGluZShlLHQoKSxuWzBdLHIpfX07dmFyIEpTdD17fTshKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU8sbj1Hd3QsaT0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlKXt2b2lkIDA9PT1lJiYoZT0iIik7dmFyIG49dC5jYWxsKHRoaXMsInJlY3QiLCIiKXx8dGhpcztyZXR1cm4gbi5fcm9vdENsYXNzTmFtZT1lLG4uX3Jvb3QuY2xhc3NlZChuLl9yb290Q2xhc3NOYW1lLCEwKSxufXJldHVybiBlLl9fZXh0ZW5kcyhuLHQpLG59KShZd3QuU1ZHRHJhd2VyKTt0LlJlY3RhbmdsZVNWR0RyYXdlcj1pO3ZhciByPW4uQ29udGV4dFN0eWxlQXR0cnMuY29uY2F0KFsieCIsInkiLCJ3aWR0aCIsImhlaWdodCJdKTt0LlJlY3RhbmdsZUNhbnZhc0RyYXdTdGVwPWZ1bmN0aW9uKHQsZSxpKXt0LnNhdmUoKTtmb3IodmFyIG89ZS5sZW5ndGgsYT0wO2E8bzthKyspe3ZhciBzPWVbYV07aWYobnVsbCE9cyl7dmFyIGw9bi5yZXNvbHZlQXR0cmlidXRlcyhpLHIscyxhKTt0LmJlZ2luUGF0aCgpLHQucmVjdChsLngsbC55LGwud2lkdGgsbC5oZWlnaHQpLG4ucmVuZGVyUGF0aFdpdGhTdHlsZSh0LGwpfX10LnJlc3RvcmUoKX07dmFyIG89KGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIGkoZSl7cmV0dXJuIG4uY2FsbCh0aGlzLGUsdC5SZWN0YW5nbGVDYW52YXNEcmF3U3RlcCl8fHRoaXN9cmV0dXJuIGUuX19leHRlbmRzKGksbiksaX0pKG4uQ2FudmFzRHJhd2VyKTt0LlJlY3RhbmdsZUNhbnZhc0RyYXdlcj1vfSkoSlN0KTt2YXIgUVN0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShRU3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0TXQ9dU8sZU10PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuY2FsbCh0aGlzLCJsaW5lIiwiIil8fHRoaXN9cmV0dXJuIHRNdC5fX2V4dGVuZHMoZSx0KSxlfSkoWXd0LlNWR0RyYXdlcik7UVN0LlNlZ21lbnRTVkdEcmF3ZXI9ZU10O3ZhciBuTXQ9e30saU10PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE3LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoaU10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgck10PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuLGkpe3ZvaWQgMD09PWkmJihpPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKSx0aGlzLnNjcmVlbldpZHRoPWUsdGhpcy5zY3JlZW5IZWlnaHQ9bix0aGlzLmRldmljZVBpeGVsUmF0aW89aSx0aGlzLnBpeGVsV2lkdGg9ZSppLHRoaXMucGl4ZWxIZWlnaHQ9bippLHRoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHRoaXMuY3R4PXRoaXMuY2FudmFzLmdldENvbnRleHQoIjJkIiksdC5zaXplUGl4ZWxzKHRoaXMuY3R4LGUsbixpKX1yZXR1cm4gdC5zaXplUGl4ZWxzPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPXQuY2FudmFzO3Iud2lkdGg9ZSppLHIuaGVpZ2h0PW4qaSxyLnN0eWxlLndpZHRoPWUrInB4IixyLnN0eWxlLmhlaWdodD1uKyJweCIsdC5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHQuc2NhbGUoaSxpKX0sdC5wcm90b3R5cGUuYmxpdD1mdW5jdGlvbih0LGUsbil7dm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPT09biYmKG49MCksdC5kcmF3SW1hZ2UodGhpcy5jYW52YXMsZSxuLHRoaXMuc2NyZWVuV2lkdGgsdGhpcy5zY3JlZW5IZWlnaHQpfSx0LnByb3RvdHlwZS5ibGl0Q2VudGVyPWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1lJiYoZT0wKSx2b2lkIDA9PT1uJiYobj0wKSx0aGlzLmJsaXQodCxNYXRoLmZsb29yKGUtdGhpcy5zY3JlZW5XaWR0aC8yKSxNYXRoLmZsb29yKG4tdGhpcy5zY3JlZW5IZWlnaHQvMikpfSx0LnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oZSxuLGkpe3ZvaWQgMD09PWkmJihpPSExKTt2YXIgcj10aGlzLmRldmljZVBpeGVsUmF0aW87cmV0dXJuIHRoaXMuc2NyZWVuV2lkdGg9ZSx0aGlzLnNjcmVlbkhlaWdodD1uLHRoaXMucGl4ZWxXaWR0aD1lKnIsdGhpcy5waXhlbEhlaWdodD1uKnIsdC5zaXplUGl4ZWxzKHRoaXMuY3R4LGUsbixyKSxpJiZ0aGlzLmN0eC50cmFuc2xhdGUoZS8yLGUvMiksdGhpc30sdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWUucGl4ZWxXaWR0aCxpPWUucGl4ZWxIZWlnaHQscj1lLmN0eDtyZXR1cm4gci5zYXZlKCksci5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLG51bGw9PXQ/ci5jbGVhclJlY3QoMCwwLG4saSk6KHIuZmlsbFN0eWxlPXQsci5maWxsUmVjdCgwLDAsbixpKSksci5yZXN0b3JlKCksdGhpc30sdC5wcm90b3R5cGUuZ2V0SW1hZ2VEYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3R4LmdldEltYWdlRGF0YSgwLDAsdGhpcy5waXhlbFdpZHRoLHRoaXMucGl4ZWxIZWlnaHQpfSx0fSkoKTtpTXQuQ2FudmFzQnVmZmVyPXJNdCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KG5NdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG9NdD11TyxhTXQ9R3d0LHNNdD1pTXQsbE10PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuY2FsbCh0aGlzLCJwYXRoIiwic3ltYm9sIil8fHRoaXN9cmV0dXJuIG9NdC5fX2V4dGVuZHMoZSx0KSxlfSkoWXd0LlNWR0RyYXdlcik7bk10LlN5bWJvbFNWR0RyYXdlcj1sTXQ7dmFyIGNNdD1hTXQuQ29udGV4dFN0eWxlQXR0cnMuY29uY2F0KFsieCIsInkiXSk7ZnVuY3Rpb24gdU10KHQsZSxuLGkscil7cmV0dXJuIG4rcj49MCYmbi1yPD10JiZpK3I+PTAmJmktcjw9ZX1mdW5jdGlvbiBoTXQodCxlLG4pe2lmKG51bGw9PXQpcmV0dXJuITE7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciByPW5baV07aWYodFtyXSE9ZVtyXSlyZXR1cm4hMX1yZXR1cm4hMH1uTXQubWFrZVN5bWJvbENhbnZhc0RyYXdTdGVwPWZ1bmN0aW9uIGRNdCh0LGUsbixpKXt2YXIgcj10aGlzO3JldHVybiBmdW5jdGlvbihvLGEscyl7Zm9yKHZhciBsPW8uY2FudmFzLGM9bC5jbGllbnRXaWR0aCx1PWwuY2xpZW50SGVpZ2h0LGg9dm9pZCAwPT09aT9uZXcgc010LkNhbnZhc0J1ZmZlcigwLDApOmksZD1lKCkscD1uKCksZj1udWxsLG09bnVsbCxnPW51bGwsXz0wO188YS5sZW5ndGg7XysrKXt2YXIgeT1hW19dO2lmKG51bGwhPXkpe3ZhciB2PWFNdC5yZXNvbHZlQXR0cmlidXRlcyhzLGNNdCx5LF8pLGI9cCh5LF8sdCk7aWYodU10KGMsdSx2Lngsdi55LGIpKXt2YXIgeD1oTXQoZix2LGFNdC5Db250ZXh0U3R5bGVBdHRycyksdz1kKHksXyxyLl9kYXRhc2V0KTtpZih4JiZnPT1iJiZtPT13KTtlbHNle3ZhciBTPWIrYU10LmdldFN0cm9rZVdpZHRoKHYpKzE7KFM+aC5zY3JlZW5XaWR0aHx8Uz5oLnNjcmVlbkhlaWdodCkmJmgucmVzaXplKFMsUywhMCksaC5jbGVhcigpO3ZhciBNPWguY3R4O00uYmVnaW5QYXRoKCksdyhiKS5jb250ZXh0KE0pKG51bGwpLE0uY2xvc2VQYXRoKCksYU10LnJlbmRlclBhdGhXaXRoU3R5bGUoTSx2KSxtPXcsZz1iLGY9dn1oLmJsaXRDZW50ZXIobyx2Lngsdi55KX19fX19LChmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXVPO2UuX19leHBvcnRTdGFyKElTdCx0KSxlLl9fZXhwb3J0U3Rhcih6U3QsdCksZS5fX2V4cG9ydFN0YXIoSFN0LHQpLGUuX19leHBvcnRTdGFyKEd3dCx0KSxlLl9fZXhwb3J0U3RhcihXd3QsdCksZS5fX2V4cG9ydFN0YXIocVN0LHQpLGUuX19leHBvcnRTdGFyKEpTdCx0KSxlLl9fZXhwb3J0U3RhcihRU3QsdCksZS5fX2V4cG9ydFN0YXIoWXd0LHQpLGUuX19leHBvcnRTdGFyKG5NdCx0KX0pKE5TdCk7dmFyIHBNdD17fSxmTXQ9e30sbU10PXt9LGdNdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGdNdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIF9NdD11Tyx5TXQ9Wnl0LHZNdD1GZ3QsYk10PVp3dCx4TXQ9dXd0LHdNdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fYXV0b0FkanVzdFhTY2FsZURvbWFpbj0hMSxlLl9hdXRvQWRqdXN0WVNjYWxlRG9tYWluPSExLGUuX2RlZmVycmVkUmVuZGVyaW5nPSExLGUuX2FwcGx5RGVmZXJyZWRSZW5kZXJpbmdUcmFuc2Zvcm09ZnVuY3Rpb24odCxuLGkscil7ZS5faXNBbmNob3JlZCYmKG51bGwhPWUuX3JlbmRlckFyZWEmJmUuX3JlbmRlckFyZWEuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrdCsiLCAiK24rIikgc2NhbGUoIitpKyIsICIrcisiKSIpLG51bGwhPWUuX2NhbnZhcyYmZS5fY2FudmFzLnN0eWxlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIit0KyJweCwgIituKyJweCkgc2NhbGUoIitpKyIsICIrcisiKSIpKX0sZS5hZGRDbGFzcygieHktcGxvdCIpLGUuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YQ2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIGUuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YKCl9LGUuX2FkanVzdFhEb21haW5PbkNoYW5nZUZyb21ZQ2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIGUuX2FkanVzdFhEb21haW5PbkNoYW5nZUZyb21ZKCl9LGUuX3JlbmRlckNhbGxiYWNrPWZ1bmN0aW9uKCl7aWYoZS5kZWZlcnJlZFJlbmRlcmluZygpKXt2YXIgdD1lLngoKSYmZS54KCkuc2NhbGUsbj1lLnkoKSYmZS55KCkuc2NhbGU7ZS5fZGVmZXJyZWRSZW5kZXJlci51cGRhdGVEb21haW5zKHQsbil9ZWxzZSBlLnJlbmRlcigpfSxlLl9kZWZlcnJlZFJlbmRlcmVyPW5ldyBiTXQuRGVmZXJyZWRSZW5kZXJlcigoZnVuY3Rpb24oKXtyZXR1cm4gZS5yZW5kZXIoKX0pLGUuX2FwcGx5RGVmZXJyZWRSZW5kZXJpbmdUcmFuc2Zvcm0pLGV9cmV0dXJuIF9NdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWZlcnJlZFJlbmRlcmluZygpJiZ0aGlzLl9kZWZlcnJlZFJlbmRlcmVyLnJlc2V0VHJhbnNmb3JtcygpLHQucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5kZWZlcnJlZFJlbmRlcmluZz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9kZWZlcnJlZFJlbmRlcmluZztpZih0KXt2YXIgZT10aGlzLngoKSYmdGhpcy54KCkuc2NhbGUsbj10aGlzLnkoKSYmdGhpcy55KCkuc2NhbGU7dGhpcy5fZGVmZXJyZWRSZW5kZXJlci5zZXREb21haW5zKGUsbil9cmV0dXJuIHRoaXMuX2RlZmVycmVkUmVuZGVyaW5nPXQsdGhpc30sZS5wcm90b3R5cGUueD1mdW5jdGlvbih0LG4saSl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fWF9LRVkpO3RoaXMuX2JpbmRQcm9wZXJ0eShlLl9YX0tFWSx0LG4saSk7dmFyIHI9dGhpcy53aWR0aCgpO3JldHVybiBudWxsIT1uJiZudWxsIT1yJiZuLnJhbmdlKFswLHJdKSx0aGlzLl9hdXRvQWRqdXN0WVNjYWxlRG9tYWluJiZ0aGlzLl91cGRhdGVZRXh0ZW50c0FuZEF1dG9kb21haW4oKSx0aGlzLnJlbmRlcigpLHRoaXN9LGUucHJvdG90eXBlLnk9ZnVuY3Rpb24odCxuLGkpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGUuX1lfS0VZKTt0aGlzLl9iaW5kUHJvcGVydHkoZS5fWV9LRVksdCxuLGkpO3ZhciByPXRoaXMuaGVpZ2h0KCk7cmV0dXJuIG51bGwhPW4mJm51bGwhPXImJm4ucmFuZ2UobiBpbnN0YW5jZW9mIHlNdC5DYXRlZ29yeT9bMCxyXTpbciwwXSksdGhpcy5fYXV0b0FkanVzdFhTY2FsZURvbWFpbiYmdGhpcy5fdXBkYXRlWEV4dGVudHNBbmRBdXRvZG9tYWluKCksdGhpcy5yZW5kZXIoKSx0aGlzfSxlLnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHk9ZnVuY3Rpb24odCl7cmV0dXJuIngiPT09dCYmdGhpcy5fYXV0b0FkanVzdFhTY2FsZURvbWFpbj90aGlzLl9tYWtlRmlsdGVyQnlQcm9wZXJ0eSgieSIpOiJ5IiE9PXQmJiJ5MCIhPT10fHwhdGhpcy5fYXV0b0FkanVzdFlTY2FsZURvbWFpbj9udWxsOnRoaXMuX21ha2VGaWx0ZXJCeVByb3BlcnR5KCJ4Iil9LGUucHJvdG90eXBlLl9tYWtlRmlsdGVyQnlQcm9wZXJ0eT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldCh0KTtpZihudWxsIT1lKXt2YXIgbj1lLmFjY2Vzc29yLGk9ZS5zY2FsZTtpZihudWxsIT1pKXJldHVybiBmdW5jdGlvbih0LGUscil7dmFyIG89aS5yYW5nZSgpO3JldHVybiB2TXQuTWF0aC5pblJhbmdlKGkuc2NhbGUobih0LGUscikpLG9bMF0sb1sxXSl9fXJldHVybiBudWxsfSxlLnByb3RvdHlwZS5fdW5pbnN0YWxsU2NhbGVGb3JLZXk9ZnVuY3Rpb24obixpKXt0LnByb3RvdHlwZS5fdW5pbnN0YWxsU2NhbGVGb3JLZXkuY2FsbCh0aGlzLG4saSksbi5vZmZVcGRhdGUoaT09PWUuX1hfS0VZP3RoaXMuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YQ2FsbGJhY2s6dGhpcy5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVlDYWxsYmFjayl9LGUucHJvdG90eXBlLl9pbnN0YWxsU2NhbGVGb3JLZXk9ZnVuY3Rpb24obixpKXt0LnByb3RvdHlwZS5faW5zdGFsbFNjYWxlRm9yS2V5LmNhbGwodGhpcyxuLGkpLG4ub25VcGRhdGUoaT09PWUuX1hfS0VZP3RoaXMuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YQ2FsbGJhY2s6dGhpcy5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVlDYWxsYmFjayl9LGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtyZXR1cm4gdC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMueCgpLnNjYWxlJiZ0aGlzLngoKS5zY2FsZS5vZmZVcGRhdGUodGhpcy5fYWRqdXN0WURvbWFpbk9uQ2hhbmdlRnJvbVhDYWxsYmFjayksdGhpcy55KCkuc2NhbGUmJnRoaXMueSgpLnNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RYRG9tYWluT25DaGFuZ2VGcm9tWUNhbGxiYWNrKSx0aGlzfSxlLnByb3RvdHlwZS5hdXRvcmFuZ2VNb2RlPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX2F1dG9BZGp1c3RYU2NhbGVEb21haW4/IngiOnRoaXMuX2F1dG9BZGp1c3RZU2NhbGVEb21haW4/InkiOiJub25lIjtzd2l0Y2godCl7Y2FzZSJ4Ijp0aGlzLl9hdXRvQWRqdXN0WFNjYWxlRG9tYWluPSEwLHRoaXMuX2F1dG9BZGp1c3RZU2NhbGVEb21haW49ITEsdGhpcy5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVkoKTticmVhaztjYXNlInkiOnRoaXMuX2F1dG9BZGp1c3RYU2NhbGVEb21haW49ITEsdGhpcy5fYXV0b0FkanVzdFlTY2FsZURvbWFpbj0hMCx0aGlzLl9hZGp1c3RZRG9tYWluT25DaGFuZ2VGcm9tWCgpO2JyZWFrO2Nhc2Uibm9uZSI6dGhpcy5fYXV0b0FkanVzdFhTY2FsZURvbWFpbj0hMSx0aGlzLl9hdXRvQWRqdXN0WVNjYWxlRG9tYWluPSExO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNjYWxlIG5hbWUgJyIrdCsiJywgbXVzdCBiZSAneCcsICd5JyBvciAnbm9uZSciKX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7dC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsZSxuLGkpO3ZhciByPXRoaXMueCgpLG89ciYmci5zY2FsZTtudWxsIT1vJiZvLnJhbmdlKFswLHRoaXMud2lkdGgoKV0pO3ZhciBhPXRoaXMueSgpLHM9YSYmYS5zY2FsZTtyZXR1cm4gbnVsbCE9cyYmcy5yYW5nZShzIGluc3RhbmNlb2YgeU10LkNhdGVnb3J5P1swLHRoaXMuaGVpZ2h0KCldOlt0aGlzLmhlaWdodCgpLDBdKSx0aGlzfSxlLnByb3RvdHlwZS5fdXBkYXRlWEV4dGVudHNBbmRBdXRvZG9tYWluPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy54KCkuc2NhbGU7bnVsbCE9dCYmdC5hdXRvRG9tYWluKCl9LGUucHJvdG90eXBlLl91cGRhdGVZRXh0ZW50c0FuZEF1dG9kb21haW49ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnkoKS5zY2FsZTtudWxsIT10JiZ0LmF1dG9Eb21haW4oKX0sZS5wcm90b3R5cGUuc2hvd0FsbERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXBkYXRlWEV4dGVudHNBbmRBdXRvZG9tYWluKCksdGhpcy5fdXBkYXRlWUV4dGVudHNBbmRBdXRvZG9tYWluKCksdGhpc30sZS5wcm90b3R5cGUuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YPWZ1bmN0aW9uKCl7dGhpcy5fcHJvamVjdG9yc1JlYWR5KCkmJnRoaXMuX2F1dG9BZGp1c3RZU2NhbGVEb21haW4mJnRoaXMuX3VwZGF0ZVlFeHRlbnRzQW5kQXV0b2RvbWFpbigpfSxlLnByb3RvdHlwZS5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVk9ZnVuY3Rpb24oKXt0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKSYmdGhpcy5fYXV0b0FkanVzdFhTY2FsZURvbWFpbiYmdGhpcy5fdXBkYXRlWEV4dGVudHNBbmRBdXRvZG9tYWluKCl9LGUucHJvdG90eXBlLl9wcm9qZWN0b3JzUmVhZHk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLngoKSxlPXRoaXMueSgpO3JldHVybiBudWxsIT10JiZudWxsIT10LmFjY2Vzc29yJiZudWxsIT1lJiZudWxsIT1lLmFjY2Vzc29yfSxlLnByb3RvdHlwZS5fcGl4ZWxQb2ludD1mdW5jdGlvbih0LGUsbil7dmFyIGk9eE10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxyPXhNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk7cmV0dXJue3g6aSh0LGUsbikseTpyKHQsZSxuKX19LGUucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXQucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3LmNhbGwodGhpcyksaT10aGlzLmF0dHIoImRlZmluZWQiKTtyZXR1cm4gdGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKHQpe24uc2V0KHQsbi5nZXQodCkuZmlsdGVyKChmdW5jdGlvbihuLHIpe3JldHVybihmdW5jdGlvbih0LG4scil7dmFyIG89eE10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKGUueCgpKSh0LG4sciksYT14TXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IoZS55KCkpKHQsbixyKTtyZXR1cm4oIWl8fCExIT09aS5hY2Nlc3Nvcih0LG4scikpJiZ2TXQuTWF0aC5pc1ZhbGlkTnVtYmVyKG8pJiZ2TXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpfSkobixyLHQpfSkpKX0pKSxufSxlLl9YX0tFWT0ieCIsZS5fWV9LRVk9InkiLGV9KSh4TXQuUGxvdCk7Z010LlhZUGxvdD13TXQsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShtTXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBTTXQ9dU8sTU10PUVkdCxFTXQ9X210LFRNdD1OU3QsQ010PVd3dCxBTXQ9cVN0LGtNdD1aeXQsTE10PUl2dCxQTXQ9Rmd0LE5NdD1wTXQsSU10PXV3dCxSTXQ9Z010LE9NdD17bGluZWFyOk1NdC5jdXJ2ZUxpbmVhcixsaW5lYXJDbG9zZWQ6TU10LmN1cnZlTGluZWFyQ2xvc2VkLHN0ZXA6TU10LmN1cnZlU3RlcCxzdGVwQmVmb3JlOk1NdC5jdXJ2ZVN0ZXBCZWZvcmUsc3RlcEFmdGVyOk1NdC5jdXJ2ZVN0ZXBBZnRlcixiYXNpczpNTXQuY3VydmVCYXNpcyxiYXNpc09wZW46TU10LmN1cnZlQmFzaXNPcGVuLGJhc2lzQ2xvc2VkOk1NdC5jdXJ2ZUJhc2lzQ2xvc2VkLGJ1bmRsZTpNTXQuY3VydmVCdW5kbGUsY2FyZGluYWw6TU10LmN1cnZlQ2FyZGluYWwsY2FyZGluYWxPcGVuOk1NdC5jdXJ2ZUNhcmRpbmFsT3BlbixjYXJkaW5hbENsb3NlZDpNTXQuY3VydmVDYXJkaW5hbENsb3NlZCxtb25vdG9uZTpNTXQuY3VydmVNb25vdG9uZVh9O21NdC5DdXJ2ZU5hbWU9U210Lm1ha2VFbnVtKFsibGluZWFyIiwibGluZWFyQ2xvc2VkIiwic3RlcCIsInN0ZXBCZWZvcmUiLCJzdGVwQWZ0ZXIiLCJiYXNpcyIsImJhc2lzT3BlbiIsImJhc2lzQ2xvc2VkIiwiYnVuZGxlIiwiY2FyZGluYWwiLCJjYXJkaW5hbE9wZW4iLCJjYXJkaW5hbENsb3NlZCIsIm1vbm90b25lIl0pO3ZhciB6TXQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7ZS5fY3VydmU9ImxpbmVhciIsZS5fYXV0b3JhbmdlU21vb3RoPSExLGUuX2Nyb3BwZWRSZW5kZXJpbmdFbmFibGVkPSEwLGUuX2NvbGxhcHNlRGVuc2VWZXJ0aWNhbExpbmVzRW5hYmxlZD0hMSxlLl9kb3duc2FtcGxpbmdFbmFibGVkPSExLGUuYWRkQ2xhc3MoImxpbmUtcGxvdCIpO3ZhciBuPW5ldyBFTXQuRWFzaW5nO3JldHVybiBuLnN0ZXBEdXJhdGlvbihJTXQuUGxvdC5fQU5JTUFUSU9OX01BWF9EVVJBVElPTiksbi5lYXNpbmdNb2RlKCJleHBJbk91dCIpLG4ubWF4VG90YWxEdXJhdGlvbihJTXQuUGxvdC5fQU5JTUFUSU9OX01BWF9EVVJBVElPTiksZS5hbmltYXRvcihOTXQuQW5pbWF0b3IuTUFJTixuKSxlLmF0dHIoInN0cm9rZSIsKG5ldyBrTXQuQ29sb3IpLnJhbmdlKClbMF0pLGUuYXR0cigic3Ryb2tlLXdpZHRoIiwiMnB4IiksZX1yZXR1cm4gU010Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLng9ZnVuY3Rpb24oZSxuLGkpe3JldHVybiBudWxsPT1lP3QucHJvdG90eXBlLnguY2FsbCh0aGlzKToodC5wcm90b3R5cGUueC5jYWxsKHRoaXMsZSxuLGkpLHRoaXMuX3NldFNjYWxlU25hcHBpbmcoKSx0aGlzKX0sZS5wcm90b3R5cGUueT1mdW5jdGlvbihlLG4saSl7cmV0dXJuIG51bGw9PWU/dC5wcm90b3R5cGUueS5jYWxsKHRoaXMpOih0LnByb3RvdHlwZS55LmNhbGwodGhpcyxlLG4saSksdGhpcy5fc2V0U2NhbGVTbmFwcGluZygpLHRoaXMpfSxlLnByb3RvdHlwZS5hdXRvcmFuZ2VNb2RlPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3QucHJvdG90eXBlLmF1dG9yYW5nZU1vZGUuY2FsbCh0aGlzKToodC5wcm90b3R5cGUuYXV0b3JhbmdlTW9kZS5jYWxsKHRoaXMsZSksdGhpcy5fc2V0U2NhbGVTbmFwcGluZygpLHRoaXMpfSxlLnByb3RvdHlwZS5hdXRvcmFuZ2VTbW9vdGg9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYXV0b3JhbmdlU21vb3RoOih0aGlzLl9hdXRvcmFuZ2VTbW9vdGg9dCx0aGlzLl9zZXRTY2FsZVNuYXBwaW5nKCksdGhpcyl9LGUucHJvdG90eXBlLl9zZXRTY2FsZVNuYXBwaW5nPWZ1bmN0aW9uKCl7IngiPT09dGhpcy5hdXRvcmFuZ2VNb2RlKCkmJnRoaXMueCgpJiZ0aGlzLngoKS5zY2FsZSYmdGhpcy54KCkuc2NhbGUgaW5zdGFuY2VvZiBMTXQuUXVhbnRpdGF0aXZlU2NhbGUmJnRoaXMueCgpLnNjYWxlLnNuYXBwaW5nRG9tYWluRW5hYmxlZCghdGhpcy5hdXRvcmFuZ2VTbW9vdGgoKSksInkiPT09dGhpcy5hdXRvcmFuZ2VNb2RlKCkmJnRoaXMueSgpJiZ0aGlzLnkoKS5zY2FsZSYmdGhpcy55KCkuc2NhbGUgaW5zdGFuY2VvZiBMTXQuUXVhbnRpdGF0aXZlU2NhbGUmJnRoaXMueSgpLnNjYWxlLnNuYXBwaW5nRG9tYWluRW5hYmxlZCghdGhpcy5hdXRvcmFuZ2VTbW9vdGgoKSl9LGUucHJvdG90eXBlLmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2N1cnZlOih0aGlzLl9jdXJ2ZT10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmRvd25zYW1wbGluZ0VuYWJsZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZG93bnNhbXBsaW5nRW5hYmxlZDoodGhpcy5fZG93bnNhbXBsaW5nRW5hYmxlZD10LHRoaXMpfSxlLnByb3RvdHlwZS5jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZDoodGhpcy5fY3JvcHBlZFJlbmRlcmluZ0VuYWJsZWQ9dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5jb2xsYXBzZURlbnNlTGluZXNFbmFibGVkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2NvbGxhcHNlRGVuc2VWZXJ0aWNhbExpbmVzRW5hYmxlZDoodGhpcy5fY29sbGFwc2VEZW5zZVZlcnRpY2FsTGluZXNFbmFibGVkPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBuZXcgQ010LlByb3h5RHJhd2VyKChmdW5jdGlvbigpe3JldHVybiBuZXcgQU10LkxpbmVTVkdEcmF3ZXJ9KSwoZnVuY3Rpb24obil7cmV0dXJuIG5ldyBUTXQuQ2FudmFzRHJhd2VyKG4sQU10Lm1ha2VMaW5lQ2FudmFzRHJhd1N0ZXAoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2QzTGluZUZhY3RvcnkodCl9KSkpfSkpfSxlLnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHk9ZnVuY3Rpb24oZSl7dmFyIG49dC5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvclByb3BlcnR5LmNhbGwodGhpcyxlKTtpZighdGhpcy5fYXV0b3JhbmdlU21vb3RoKXJldHVybiBuO2lmKHRoaXMuYXV0b3JhbmdlTW9kZSgpIT09ZSlyZXR1cm4gbjtpZigieCIhPT10aGlzLmF1dG9yYW5nZU1vZGUoKSYmInkiIT09dGhpcy5hdXRvcmFuZ2VNb2RlKCkpcmV0dXJuIG47dmFyIGkscj10aGlzLl9nZXRFZGdlSW50ZXJzZWN0aW9uUG9pbnRzKCk7cmV0dXJuIGk9InkiPT09dGhpcy5hdXRvcmFuZ2VNb2RlKCk/ci5sZWZ0LmNvbmNhdChyLnJpZ2h0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnl9KSk6ci50b3AuY29uY2F0KHIuYm90dG9tKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnh9KSksbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBNTXQuZXh0ZW50KE1NdC5tZXJnZShbdCxpXSkpfSkpfSxlLnByb3RvdHlwZS5fZ2V0RWRnZUludGVyc2VjdGlvblBvaW50cz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoISh0aGlzLnkoKS5zY2FsZSBpbnN0YW5jZW9mIExNdC5RdWFudGl0YXRpdmVTY2FsZSYmdGhpcy54KCkuc2NhbGUgaW5zdGFuY2VvZiBMTXQuUXVhbnRpdGF0aXZlU2NhbGUpKXJldHVybntsZWZ0OltdLHJpZ2h0OltdLHRvcDpbXSxib3R0b206W119O3ZhciBlPXRoaXMueSgpLnNjYWxlLG49dGhpcy54KCkuc2NhbGUsaT17bGVmdDpbXSxyaWdodDpbXSx0b3A6W10sYm90dG9tOltdfSxyPW4uc2NhbGUobi5kb21haW4oKVswXSksbz1uLnNjYWxlKG4uZG9tYWluKClbMV0pLGE9ZS5zY2FsZShlLmRvbWFpbigpWzBdKSxzPWUuc2NhbGUoZS5kb21haW4oKVsxXSk7cmV0dXJuIHRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihsKXtmb3IodmFyIGMsdSxoLGQscD1sLmRhdGEoKSxmPTE7ZjxwLmxlbmd0aDtmKyspYz1ofHxuLnNjYWxlKHQueCgpLmFjY2Vzc29yKHBbZi0xXSxmLTEsbCkpLHU9ZHx8ZS5zY2FsZSh0LnkoKS5hY2Nlc3NvcihwW2YtMV0sZi0xLGwpKSxoPW4uc2NhbGUodC54KCkuYWNjZXNzb3IocFtmXSxmLGwpKSxkPWUuc2NhbGUodC55KCkuYWNjZXNzb3IocFtmXSxmLGwpKSxjPHI9PXI8PWgmJmkubGVmdC5wdXNoKHt4OnIseTplLmludmVydCh1KyhyLWMpKihkLXUpLyhoLWMpKX0pLGM8bz09bzw9aCYmaS5yaWdodC5wdXNoKHt4Om8seTplLmludmVydCh1KyhvLWMpKihkLXUpLyhoLWMpKX0pLHU8cz09czw9ZCYmaS50b3AucHVzaCh7eDpuLmludmVydChjKyhzLXUpKihoLWMpLyhkLXUpKSx5OnN9KSx1PGE9PWE8PWQmJmkuYm90dG9tLnB1c2goe3g6bi5pbnZlcnQoYysoYS11KSooaC1jKS8oZC11KSkseTphfSl9KSksaX0sZS5wcm90b3R5cGUuX2dldFJlc2V0WUZ1bmN0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy55KCkuc2NhbGUuZG9tYWluKCksZT1NYXRoLm1heCh0WzBdLHRbMV0pLG49TWF0aC5taW4odFswXSx0WzFdKSxpPWU8MCYmZXx8bj4wJiZufHwwLHI9dGhpcy55KCkuc2NhbGUuc2NhbGUoaSk7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gcn19LGUucHJvdG90eXBlLl9nZW5lcmF0ZURyYXdTdGVwcz1mdW5jdGlvbigpe3ZhciB0PVtdO2lmKHRoaXMuX2FuaW1hdGVPbk5leHRSZW5kZXIoKSl7dmFyIGU9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7ZS5kPXRoaXMuX2NvbnN0cnVjdExpbmVQcm9qZWN0b3IoSU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSx0aGlzLl9nZXRSZXNldFlGdW5jdGlvbigpKSx0LnB1c2goe2F0dHJUb1Byb2plY3RvcjplLGFuaW1hdG9yOnRoaXMuX2dldEFuaW1hdG9yKE5NdC5BbmltYXRvci5SRVNFVCl9KX1yZXR1cm4gdC5wdXNoKHthdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoTk10LkFuaW1hdG9yLk1BSU4pfSksdH0sZS5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIGU9dC5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yLmNhbGwodGhpcyk7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCJkIiE9PXQpe3ZhciBuPWVbdF07ZVt0XT1mdW5jdGlvbih0LGUsaSl7cmV0dXJuIHQubGVuZ3RoPjA/bih0WzBdLGUsaSk6bnVsbH19fSkpLGV9LGUucHJvdG90eXBlLmVudGl0aWVzQXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5lbnRpdHlOZWFyZXN0QnlYVGhlblkodCk7cmV0dXJuIG51bGwhPWU/W2VdOltdfSxlLnByb3RvdHlwZS5lbnRpdHlOZWFyZXN0QnlYVGhlblk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MS8wLGk9MS8wLHI9dGhpcy5ib3VuZHMoKSxvPXRoaXMuZW50aXRpZXMoKSxhPW8ubGVuZ3RoLHM9MDtzPGE7cysrKXt2YXIgbD1vW3NdO2lmKFBNdC5NYXRoLndpdGhpbihsLnBvc2l0aW9uLHIpKXt2YXIgYz1NYXRoLmFicyh0LngtbC5wb3NpdGlvbi54KSx1PU1hdGguYWJzKHQueS1sLnBvc2l0aW9uLnkpOyhjPG58fGM9PT1uJiZ1PGkpJiYoZT1sLG49YyxpPXUpfX1yZXR1cm4gZX0sZS5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciBlPXQucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnMuY2FsbCh0aGlzKTtyZXR1cm4gZS5kPXRoaXMuX2NvbnN0cnVjdExpbmVQcm9qZWN0b3IoSU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxJTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpKSxlfSxlLnByb3RvdHlwZS5fY29uc3RydWN0TGluZVByb2plY3Rvcj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKGkscixvKXtyZXR1cm4gbi5fZDNMaW5lRmFjdG9yeShvLHQsZSkoaSl9fSxlLnByb3RvdHlwZS5fZDNMaW5lRmFjdG9yeT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PWUmJihlPUlNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSkpLHZvaWQgMD09PW4mJihuPUlNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkpLE1NdC5saW5lKCkueCgoZnVuY3Rpb24obixpKXtyZXR1cm4gZShuLGksdCl9KSkueSgoZnVuY3Rpb24oZSxpKXtyZXR1cm4gbihlLGksdCl9KSkuY3VydmUodGhpcy5fZ2V0Q3VydmVGYWN0b3J5KCkpLmRlZmluZWQoKGZ1bmN0aW9uKGkscil7cmV0dXJuKGZ1bmN0aW9uKHQsaSxyKXt2YXIgbz1lKHQsaSxyKSxhPW4odCxpLHIpO3JldHVybiBQTXQuTWF0aC5pc1ZhbGlkTnVtYmVyKG8pJiZQTXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpfSkoaSxyLHQpfSkpfSxlLnByb3RvdHlwZS5fZ2V0Q3VydmVGYWN0b3J5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jdXJ2ZSgpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9T010W3RdO3JldHVybiBudWxsPT1lP09NdC5saW5lYXI6ZX1yZXR1cm4gdH0sZS5wcm90b3R5cGUuX2dldERhdGFUb0RyYXc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9bmV3IFBNdC5NYXA7cmV0dXJuIHRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgaT1uLmRhdGEoKTtpZih0Ll9jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZHx8dC5fZG93bnNhbXBsaW5nRW5hYmxlZCl7Zm9yKHZhciByPVtdLG89aS5sZW5ndGgsYT0wO2E8bzthKyspclthXT1hO3QuX2Nyb3BwZWRSZW5kZXJpbmdFbmFibGVkJiYocj10Ll9maWx0ZXJDcm9wcGVkUmVuZGVyaW5nKG4scikpLHQuX2Rvd25zYW1wbGluZ0VuYWJsZWQmJihyPXQuX2ZpbHRlckRvd25zYW1wbGluZyhuLHIpKSx0Ll9jb2xsYXBzZURlbnNlVmVydGljYWxMaW5lc0VuYWJsZWQmJihyPXQuX2ZpbHRlckRlbnNlTGluZXMobixyKSk7dmFyIHM9W10sbD1yLmxlbmd0aDtmb3IoYT0wO2E8bDthKyspc1thXT1pW3JbYV1dO2Uuc2V0KG4sW3NdKX1lbHNlIGUuc2V0KG4sW2ldKX0pKSxlfSxlLnByb3RvdHlwZS5fZmlsdGVyQ3JvcHBlZFJlbmRlcmluZz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLGk9SU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxyPUlNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSksbz10LmRhdGEoKSxhPVtdLHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gUE10Lk1hdGguaW5SYW5nZSh0LDAsbi53aWR0aCgpKSYmUE10Lk1hdGguaW5SYW5nZShlLDAsbi5oZWlnaHQoKSl9LGw9MDtsPGUubGVuZ3RoO2wrKyl7dmFyIGM9cyhpKG9bZVtsXV0sZVtsXSx0KSxyKG9bZVtsXV0sZVtsXSx0KSk7aWYoIWMmJm51bGwhPWVbbC0xXSYmbnVsbCE9b1tlW2wtMV1dKXt2YXIgdT1pKG9bZVtsLTFdXSxlW2wtMV0sdCksaD1yKG9bZVtsLTFdXSxlW2wtMV0sdCk7Yz1jfHxzKHUsaCl9aWYoIWMmJm51bGwhPWVbbCsxXSYmbnVsbCE9b1tlW2wrMV1dKXt2YXIgZD1pKG9bZVtsKzFdXSxlW2wrMV0sdCkscD1yKG9bZVtsKzFdXSxlW2wrMV0sdCk7Yz1jfHxzKGQscCl9YyYmYS5wdXNoKGVbbF0pfXJldHVybiBhfSxlLnByb3RvdHlwZS5fZmlsdGVyRG93bnNhbXBsaW5nPWZ1bmN0aW9uKHQsZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO2Zvcih2YXIgbj10LmRhdGEoKSxpPUlNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSkscj1JTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpLG89W2VbMF1dLGE9ZnVuY3Rpb24obyxhKXt2YXIgcz1pKG5bZVtvXV0sZVtvXSx0KSxsPXIobltlW29dXSxlW29dLHQpLGM9aShuW2VbbysxXV0sZVtvKzFdLHQpLHU9cihuW2VbbysxXV0sZVtvKzFdLHQpO2lmKGE9PT0xLzApcmV0dXJuIE1hdGguZmxvb3Iocyk9PT1NYXRoLmZsb29yKGMpO3ZhciBoPWwrKGMtcykqYTtyZXR1cm4gTWF0aC5mbG9vcih1KT09PU1hdGguZmxvb3IoaCl9LHM9MDtzPGUubGVuZ3RoLTE7KXtmb3IodmFyIGw9ZVtzXSxjPWkobltlW3NdXSxlW3NdLHQpLHU9cihuW2Vbc11dLGVbc10sdCksaD1pKG5bZVtzKzFdXSxlW3MrMV0sdCksZD1yKG5bZVtzKzFdXSxlW3MrMV0sdCkscD1NYXRoLmZsb29yKGMpPT09TWF0aC5mbG9vcihoKT8xLzA6KGQtdSkvKGgtYyksZj1lW3NdLG09cD09PTEvMD91OmMsZz1mLF89bSx5PSEwO3M8ZS5sZW5ndGgtMSYmKHl8fGEocyxwKSk7KXtzKysseT0hMTt2YXIgdj1wPT09MS8wP3IobltlW3NdXSxlW3NdLHQpOmkobltlW3NdXSxlW3NdLHQpO3Y+XyYmKF89dixnPWVbc10pLHY8bSYmKG09dixmPWVbc10pfXZhciBiPWVbc107ZiE9PWwmJm8ucHVzaChmKSxnIT09ZiYmZyE9PWwmJm8ucHVzaChnKSxiIT09bCYmYiE9PWYmJmIhPT1nJiZvLnB1c2goYil9cmV0dXJuIG99LGUucHJvdG90eXBlLl9maWx0ZXJEZW5zZUxpbmVzPWZ1bmN0aW9uKHQsZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO3ZhciBuPXQuZGF0YSgpLGk9SU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxyPUlNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk7cmV0dXJuIHRoaXMuX2J1Y2tldEJ5WCh0LGUsKGZ1bmN0aW9uKGUpe3JldHVybiBpKG5bZV0sZSx0KX0pLChmdW5jdGlvbihlKXtyZXR1cm4gcihuW2VdLGUsdCl9KSl9LGUucHJvdG90eXBlLl9idWNrZXRCeVg9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPVtdLG89dC5kYXRhKCksYT1udWxsLHM9ZS5sZW5ndGgsbD0wO2w8PXM7KytsKXt2YXIgYz1lW2xdO2lmKG51bGwhPW9bY10pe3ZhciB1PU1hdGguZmxvb3IobihjKSksaD1pKGMpO251bGw9PWE/YT1uZXcgUE10LkJ1Y2tldChjLHUsaCk6YS5pc0luQnVja2V0KHUpP2EuYWRkVG9CdWNrZXQoaCxjKTooci5wdXNoLmFwcGx5KHIsYS5nZXRVbmlxdWVJbmRpY2VzKCkpLGE9bmV3IFBNdC5CdWNrZXQoYyx1LGgpKX19cmV0dXJuIG51bGwhPWEmJnIucHVzaC5hcHBseShyLGEuZ2V0VW5pcXVlSW5kaWNlcygpKSxyfSxlfSkoUk10LlhZUGxvdCk7bU10LkxpbmU9ek10LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZk10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgRE10PXVPLEJNdD1FZHQsSE10PVp5dCxGTXQ9Rmd0LFZNdD1OU3QsVU10PUhTdCxqTXQ9V3d0LEdNdD1xU3QsV010PXBNdCxxTXQ9dXd0LFlNdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5hZGRDbGFzcygiYXJlYS1wbG90IiksZS55MCgwKSxlLmF0dHIoImZpbGwtb3BhY2l0eSIsLjI1KSxlLmF0dHIoImZpbGwiLChuZXcgSE10LkNvbG9yKS5yYW5nZSgpWzBdKSxlLl9saW5lRHJhd2Vycz1uZXcgRk10Lk1hcCxlfXJldHVybiBETXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUueT1mdW5jdGlvbihuLGkpe2lmKG51bGw9PW4pcmV0dXJuIHQucHJvdG90eXBlLnkuY2FsbCh0aGlzKTtpZihudWxsPT1pP3QucHJvdG90eXBlLnkuY2FsbCh0aGlzLG4pOnQucHJvdG90eXBlLnkuY2FsbCh0aGlzLG4saSksbnVsbCE9aSl7dmFyIHI9dGhpcy55MCgpLmFjY2Vzc29yO251bGwhPXImJnRoaXMuX2JpbmRQcm9wZXJ0eShlLl9ZMF9LRVkscixpKSx0aGlzLl91cGRhdGVZU2NhbGUoKX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUueTA9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fWTBfS0VZKTt2YXIgbj10aGlzLnkoKTtyZXR1cm4gdGhpcy5fYmluZFByb3BlcnR5KGUuX1kwX0tFWSx0LG4mJm4uc2NhbGUpLHRoaXMuX3VwZGF0ZVlTY2FsZSgpLHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGUuY2FsbCh0aGlzKSx0aGlzLl91cGRhdGVZU2NhbGUoKX0sZS5wcm90b3R5cGUuX2FkZERhdGFzZXQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5fbGluZURyYXdlcnMuc2V0KGUsbmV3IFZNdC5Qcm94eURyYXdlcigoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEdNdC5MaW5lU1ZHRHJhd2VyfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgVk10LkNhbnZhc0RyYXdlcih0LEdNdC5tYWtlTGluZUNhbnZhc0RyYXdTdGVwKChmdW5jdGlvbigpe3ZhciB0PXFNdC5QbG90Ll9zY2FsZWRBY2Nlc3NvcihuLngoKSksaT1xTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3Iobi55KCkpO3JldHVybiBuLl9kM0xpbmVGYWN0b3J5KGUsdCxpKX0pKSl9KSkpLHQucHJvdG90eXBlLl9hZGREYXRhc2V0LmNhbGwodGhpcyxlKSx0aGlzfSxlLnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0PWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQuY2FsbCh0aGlzLGUpO3ZhciBuPXRoaXMuX2xpbmVEcmF3ZXJzLmdldChlKTtyZXR1cm4ic3ZnIj09PXRoaXMucmVuZGVyZXIoKT9uLnVzZVNWRyh0aGlzLl9yZW5kZXJBcmVhKTpuLnVzZUNhbnZhcyh0aGlzLl9jYW52YXMpLG59LGUucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXM9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcy5jYWxsKHRoaXMsZSksdGhpcy5fbGluZURyYXdlcnMuZ2V0KGUpLnJlbW92ZSgpfSxlLnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX2dlbmVyYXRlTGluZURyYXdTdGVwcygpLG49dGhpcy5fZ2V0RGF0YVRvRHJhdygpO3RoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgcj1xTXQuUGxvdC5hcHBseURyYXdTdGVwcyhlLGkpO3QuX2xpbmVEcmF3ZXJzLmdldChpKS5kcmF3KG4uZ2V0KGkpLHIpfSkpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVMaW5lRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7dmFyIHQ9W107aWYodGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpKXt2YXIgZT10aGlzLl9nZW5lcmF0ZUxpbmVBdHRyVG9Qcm9qZWN0b3IoKTtlLmQ9dGhpcy5fY29uc3RydWN0TGluZVByb2plY3RvcihxTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHRoaXMuX2dldFJlc2V0WUZ1bmN0aW9uKCkpLHQucHVzaCh7YXR0clRvUHJvamVjdG9yOmUsYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoV010LkFuaW1hdG9yLlJFU0VUKX0pfXJldHVybiB0LnB1c2goe2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZW5lcmF0ZUxpbmVBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihXTXQuQW5pbWF0b3IuTUFJTil9KSx0fSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVMaW5lQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7cmV0dXJuIHQuZD10aGlzLl9jb25zdHJ1Y3RMaW5lUHJvamVjdG9yKHFNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSkscU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKSksdH0sZS5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBuZXcgak10LlByb3h5RHJhd2VyKChmdW5jdGlvbigpe3JldHVybiBuZXcgVU10LkFyZWFTVkdEcmF3ZXJ9KSwoZnVuY3Rpb24obil7cmV0dXJuIG5ldyBWTXQuQ2FudmFzRHJhd2VyKG4sVU10Lm1ha2VBcmVhQ2FudmFzRHJhd1N0ZXAoKGZ1bmN0aW9uKCl7dmFyIG49ZS5fY29vcmRpbmF0ZVByb2plY3RvcnMoKSxpPW5bMF0scj1uWzFdLG89blsyXSxhPWUuX2NyZWF0ZURlZmluZWRQcm9qZWN0b3IoaSxyKTtyZXR1cm4gZS5fY3JlYXRlQXJlYUdlbmVyYXRvcihpLHIsbyxhLHQpfSksKGZ1bmN0aW9uKCl7dmFyIG49ZS5fY29vcmRpbmF0ZVByb2plY3RvcnMoKSxpPW5bMF0scj1uWzFdLG89ZS5fY3JlYXRlRGVmaW5lZFByb2plY3RvcihpLHIpO3JldHVybiBlLl9jcmVhdGVUb3BMaW5lR2VuZXJhdG9yKGkscixvLHQpfSkpKX0pKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7dmFyIHQ9W107aWYodGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpKXt2YXIgZT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKTtlLmQ9dGhpcy5fY29uc3RydWN0QXJlYVByb2plY3RvcihxTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHRoaXMuX2dldFJlc2V0WUZ1bmN0aW9uKCkscU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTAoKSkpLHQucHVzaCh7YXR0clRvUHJvamVjdG9yOmUsYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoV010LkFuaW1hdG9yLlJFU0VUKX0pfXJldHVybiB0LnB1c2goe2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihXTXQuQW5pbWF0b3IuTUFJTil9KSx0fSxlLnByb3RvdHlwZS5fdXBkYXRlWVNjYWxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRFeHRlbnRzRm9yUHJvcGVydHkoInkwIiksZT1GTXQuQXJyYXkuZmxhdHRlbih0KSxuPUZNdC5BcnJheS51bmlxKGUpLGk9MT09PW4ubGVuZ3RoP25bMF06bnVsbCxyPXRoaXMueSgpLG89ciYmci5zY2FsZTtudWxsIT1vJiYobnVsbCE9dGhpcy5fY29uc3RhbnRCYXNlbGluZVZhbHVlUHJvdmlkZXImJihvLnJlbW92ZVBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXIodGhpcy5fY29uc3RhbnRCYXNlbGluZVZhbHVlUHJvdmlkZXIpLHRoaXMuX2NvbnN0YW50QmFzZWxpbmVWYWx1ZVByb3ZpZGVyPW51bGwpLG51bGwhPWkmJih0aGlzLl9jb25zdGFudEJhc2VsaW5lVmFsdWVQcm92aWRlcj1mdW5jdGlvbigpe3JldHVybltpXX0sby5hZGRQYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVyKHRoaXMuX2NvbnN0YW50QmFzZWxpbmVWYWx1ZVByb3ZpZGVyKSkpfSxlLnByb3RvdHlwZS5fZ2V0UmVzZXRZRnVuY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gcU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTAoKSl9LGUucHJvdG90eXBlLl9jb29yZGluYXRlUHJvamVjdG9ycz1mdW5jdGlvbigpe3JldHVybltxTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHFNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkscU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTAoKSldfSxlLnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIGU9dC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpLG49dGhpcy5fY29vcmRpbmF0ZVByb2plY3RvcnMoKTtyZXR1cm4gZS5kPXRoaXMuX2NvbnN0cnVjdEFyZWFQcm9qZWN0b3IoblswXSxuWzFdLG5bMl0pLGV9LGUucHJvdG90eXBlLnNlbGVjdGlvbnM9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztpZih2b2lkIDA9PT1lJiYoZT10aGlzLmRhdGFzZXRzKCkpLCJjYW52YXMiPT09dGhpcy5yZW5kZXJlcigpKXJldHVybiBCTXQuc2VsZWN0QWxsKCk7dmFyIGk9dC5wcm90b3R5cGUuc2VsZWN0aW9ucy5jYWxsKHRoaXMsZSkubm9kZXMoKTtyZXR1cm4gZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBuLl9saW5lRHJhd2Vycy5nZXQodCl9KSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH0pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gaS5wdXNoLmFwcGx5KGksdC5nZXRWaXN1YWxQcmltaXRpdmVzKCkpfSkpLEJNdC5zZWxlY3RBbGwoaSl9LGUucHJvdG90eXBlLl9jb25zdHJ1Y3RBcmVhUHJvamVjdG9yPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLHI9dGhpcy5fY3JlYXRlRGVmaW5lZFByb2plY3RvcihxTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHFNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkpO3JldHVybiBmdW5jdGlvbihvLGEscyl7cmV0dXJuIGkuX2NyZWF0ZUFyZWFHZW5lcmF0b3IodCxlLG4scixzKShvKX19LGUucHJvdG90eXBlLl9jcmVhdGVEZWZpbmVkUHJvamVjdG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSxyKXt2YXIgbz10KG4saSxyKSxhPWUobixpLHIpO3JldHVybiBGTXQuTWF0aC5pc1ZhbGlkTnVtYmVyKG8pJiZGTXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpfX0sZS5wcm90b3R5cGUuX2NyZWF0ZUFyZWFHZW5lcmF0b3I9ZnVuY3Rpb24odCxlLG4saSxyKXt2YXIgbz10aGlzLl9nZXRDdXJ2ZUZhY3RvcnkoKTtyZXR1cm4gQk10LmFyZWEoKS54KChmdW5jdGlvbihlLG4pe3JldHVybiB0KGUsbixyKX0pKS55MSgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZSh0LG4scil9KSkueTAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxlLHIpfSkpLmN1cnZlKG8pLmRlZmluZWQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkodCxlLHIpfSkpfSxlLnByb3RvdHlwZS5fY3JlYXRlVG9wTGluZUdlbmVyYXRvcj1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzLl9nZXRDdXJ2ZUZhY3RvcnkoKTtyZXR1cm4gQk10LmxpbmUoKS54KChmdW5jdGlvbihlLG4pe3JldHVybiB0KGUsbixpKX0pKS55KChmdW5jdGlvbih0LG4pe3JldHVybiBlKHQsbixpKX0pKS5jdXJ2ZShyKS5kZWZpbmVkKChmdW5jdGlvbih0LGUpe3JldHVybiBuKHQsZSxpKX0pKX0sZS5fWTBfS0VZPSJ5MCIsZX0pKG1NdC5MaW5lKTtmTXQuQXJlYT1ZTXQ7dmFyIFhNdD17fTshKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU8sbj1FZHQsaT1JbXQscj1fbXQsbz1neXQsYT1OU3Qscz1Xd3QsbD1KU3QsYz1kd3QsdT1aeXQsaD1JdnQsZD1GZ3QscD1TbXQsZj1wTXQsbT11d3QsZz1nTXQ7dC5CYXJPcmllbnRhdGlvbj1wLm1ha2VFbnVtKFsidmVydGljYWwiLCJob3Jpem9udGFsIl0pLHQuTGFiZWxzUG9zaXRpb249cC5tYWtlRW51bShbInN0YXJ0IiwibWlkZGxlIiwiZW5kIiwib3V0c2lkZSJdKSx0LkJhckFsaWdubWVudD1wLm1ha2VFbnVtKFsic3RhcnQiLCJtaWRkbGUiLCJlbmQiXSk7dmFyIF89KGZ1bmN0aW9uKHApe2Z1bmN0aW9uIGcoZSl7dm9pZCAwPT09ZSYmKGU9InZlcnRpY2FsIik7dmFyIG49cC5jYWxsKHRoaXMpfHx0aGlzO2lmKG4uX2xhYmVsRm9ybWF0dGVyPW8uaWRlbnRpdHkoKSxuLl9sYWJlbHNFbmFibGVkPSExLG4uX2xhYmVsc1Bvc2l0aW9uPXQuTGFiZWxzUG9zaXRpb24uZW5kLG4uX2hpZGVCYXJzSWZBbnlBcmVUb29XaWRlPSEwLG4uX2JhckFsaWdubWVudD0ibWlkZGxlIixuLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3M9Yy5tZW1vaXplKHkpLG4uX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M9ITAsbi5hZGRDbGFzcygiYmFyLXBsb3QiKSwidmVydGljYWwiIT09ZSYmImhvcml6b250YWwiIT09ZSl0aHJvdyBuZXcgRXJyb3IoZSsiIGlzIG5vdCBhIHZhbGlkIG9yaWVudGF0aW9uIGZvciBQbG90cy5CYXIiKTtyZXR1cm4gbi5faXNWZXJ0aWNhbD0idmVydGljYWwiPT09ZSxuLmFuaW1hdG9yKCJiYXNlbGluZSIsbmV3IHIuTnVsbCksbi5hdHRyKCJmaWxsIiwobmV3IHUuQ29sb3IpLnJhbmdlKClbMF0pLG4uYXR0cihnLl9CQVJfVEhJQ0tORVNTX0tFWSwoZnVuY3Rpb24oKXtyZXR1cm4gbi5fYmFyUGl4ZWxUaGlja25lc3MoKX0pKSxuLl9sYWJlbENvbmZpZz1uZXcgZC5NYXAsbi5fYmFzZWxpbmVWYWx1ZVByb3ZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuW24uYmFzZWxpbmVWYWx1ZSgpXX0sbn1yZXR1cm4gZS5fX2V4dGVuZHMoZyxwKSxnLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gcC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsdCxlLG4pLHRoaXMuX3VwZGF0ZUV4dGVudHMoKSx0aGlzfSxnLnByb3RvdHlwZS54PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/cC5wcm90b3R5cGUueC5jYWxsKHRoaXMpOihudWxsPT1lP3AucHJvdG90eXBlLnguY2FsbCh0aGlzLHQpOnAucHJvdG90eXBlLnguY2FsbCh0aGlzLHQsZSksdGhpcy5fdXBkYXRlVGhpY2tuZXNzQXR0cigpLHRoaXMuX3VwZGF0ZUxlbmd0aFNjYWxlKCksdGhpcyl9LGcucHJvdG90eXBlLnk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD9wLnByb3RvdHlwZS55LmNhbGwodGhpcyk6KG51bGw9PWU/cC5wcm90b3R5cGUueS5jYWxsKHRoaXMsdCk6cC5wcm90b3R5cGUueS5jYWxsKHRoaXMsdCxlKSx0aGlzLl91cGRhdGVMZW5ndGhTY2FsZSgpLHRoaXMpfSxnLnByb3RvdHlwZS5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNWZXJ0aWNhbD90aGlzLnkoKTp0aGlzLngoKX0sZy5wcm90b3R5cGUucG9zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNWZXJ0aWNhbD90aGlzLngoKTp0aGlzLnkoKX0sZy5wcm90b3R5cGUuYmFyRW5kPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGcuX0JBUl9FTkRfS0VZKTt2YXIgZT10aGlzLnBvc2l0aW9uKCk7cmV0dXJuIHRoaXMuX2JpbmRQcm9wZXJ0eShnLl9CQVJfRU5EX0tFWSx0LGUmJmUuc2NhbGUpLHRoaXMuX3VwZGF0ZVRoaWNrbmVzc0F0dHIoKSx0aGlzLl91cGRhdGVMZW5ndGhTY2FsZSgpLHRoaXMucmVuZGVyKCksdGhpc30sZy5wcm90b3R5cGUuYmFyQWxpZ25tZW50PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2JhckFsaWdubWVudDoodGhpcy5fYmFyQWxpZ25tZW50PXQsdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpcyl9LGcucHJvdG90eXBlLm9yaWVudGF0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzVmVydGljYWw/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCJ9LGcucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHMuUHJveHlEcmF3ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBsLlJlY3RhbmdsZVNWR0RyYXdlcihnLl9CQVJfQVJFQV9DTEFTUyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBhLlJlY3RhbmdsZUNhbnZhc0RyYXdlcih0KX0pKX0sZy5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7cC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fYmFzZWxpbmU9dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKCJiYXNlbGluZSIsITApfSxnLnByb3RvdHlwZS5iYXNlbGluZVZhbHVlPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpe2lmKG51bGwhPXRoaXMuX2Jhc2VsaW5lVmFsdWUpcmV0dXJuIHRoaXMuX2Jhc2VsaW5lVmFsdWU7aWYoIXRoaXMuX3Byb2plY3RvcnNSZWFkeSgpKXJldHVybiAwO3ZhciBlPXRoaXMubGVuZ3RoKCkuc2NhbGU7cmV0dXJuIGUmJmUgaW5zdGFuY2VvZiB1LlRpbWU/bmV3IERhdGUoMCk6MH1yZXR1cm4gdGhpcy5fYmFzZWxpbmVWYWx1ZT10LHRoaXMuX3VwZGF0ZUxlbmd0aFNjYWxlKCksdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpc30sZy5wcm90b3R5cGUuYWRkRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gcC5wcm90b3R5cGUuYWRkRGF0YXNldC5jYWxsKHRoaXMsdCksdGhpc30sZy5wcm90b3R5cGUuX2FkZERhdGFzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHAucHJvdG90eXBlLl9hZGREYXRhc2V0LmNhbGwodGhpcyx0KSx0aGlzfSxnLnByb3RvdHlwZS5yZW1vdmVEYXRhc2V0PWZ1bmN0aW9uKHQpe3JldHVybiBwLnByb3RvdHlwZS5yZW1vdmVEYXRhc2V0LmNhbGwodGhpcyx0KSx0aGlzfSxnLnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gcC5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXQuY2FsbCh0aGlzLHQpLHRoaXN9LGcucHJvdG90eXBlLmRhdGFzZXRzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3AucHJvdG90eXBlLmRhdGFzZXRzLmNhbGwodGhpcyk6KHAucHJvdG90eXBlLmRhdGFzZXRzLmNhbGwodGhpcyx0KSx0aGlzKX0sZy5wcm90b3R5cGUubGFiZWxzRW5hYmxlZD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT10P3RoaXMuX2xhYmVsc0VuYWJsZWQ6KHRoaXMuX2xhYmVsc0VuYWJsZWQ9dCxudWxsIT1lJiYodGhpcy5fbGFiZWxzUG9zaXRpb249ZSksdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpcyl9LGcucHJvdG90eXBlLmxhYmVsRm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2xhYmVsRm9ybWF0dGVyOih0aGlzLl9sYWJlbEZvcm1hdHRlcj10LHRoaXMuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGUoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxnLnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXAucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQuY2FsbCh0aGlzLHQpLG49dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImciKS5jbGFzc2VkKGcuX0xBQkVMX0FSRUFfQ0xBU1MsITApLHI9bmV3IGkuU3ZnQ29udGV4dChuLm5vZGUoKSksbz1uZXcgaS5DYWNoZU1lYXN1cmVyKHIpLGE9bmV3IGkuV3JpdGVyKG8scik7cmV0dXJuIHRoaXMuX2xhYmVsQ29uZmlnLnNldCh0LHtsYWJlbEFyZWE6bixtZWFzdXJlcjpvLHdyaXRlcjphfSksZX0sZy5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcz1mdW5jdGlvbih0KXtwLnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldE5vZGVzLmNhbGwodGhpcyx0KTt2YXIgZT10aGlzLl9sYWJlbENvbmZpZy5nZXQodCk7bnVsbCE9ZSYmKGUubGFiZWxBcmVhLnJlbW92ZSgpLHRoaXMuX2xhYmVsQ29uZmlnLmRlbGV0ZSh0KSl9LGcucHJvdG90eXBlLmVudGl0eU5lYXJlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWZ1bmN0aW9uKCl7dmFyIG49ZS5faXNWZXJ0aWNhbD9lLl9nZXRFbnRpdHlTdG9yZSgpLmVudGl0eU5lYXJlc3RYKHQpOmUuX2dldEVudGl0eVN0b3JlKCkuZW50aXR5TmVhcmVzdFkodCk7cmV0dXJuIHZvaWQgMD09PW4/dm9pZCAwOmUuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eShuKX07cmV0dXJuIHRoaXMuX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M/dGhpcy5fY29tcHV0ZUJhclBpeGVsVGhpY2tuZXNzLmRvTG9ja2VkKG4pOm4oKX0sZy5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49ZnVuY3Rpb24oKXtyZXR1cm4gZS5fZW50aXRpZXNJbnRlcnNlY3RpbmcodC54LHQueSl9O3JldHVybiB0aGlzLl9maXhlZEJhclBpeGVsVGhpY2tuZXNzP3RoaXMuX2NvbXB1dGVCYXJQaXhlbFRoaWNrbmVzcy5kb0xvY2tlZChuKTpuKCl9LGcucHJvdG90eXBlLmVudGl0aWVzSW5Cb3VuZHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWZ1bmN0aW9uKCl7cmV0dXJuIHAucHJvdG90eXBlLmVudGl0aWVzSW5Cb3VuZHMuY2FsbChlLHQpfTtyZXR1cm4gdGhpcy5fZml4ZWRCYXJQaXhlbFRoaWNrbmVzcz90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3MuZG9Mb2NrZWQobik6bigpfSxnLnByb3RvdHlwZS5lbnRpdGllc0luWEJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49ZnVuY3Rpb24oKXtyZXR1cm4gcC5wcm90b3R5cGUuZW50aXRpZXNJblhCb3VuZHMuY2FsbChlLHQpfTtyZXR1cm4gdGhpcy5fZml4ZWRCYXJQaXhlbFRoaWNrbmVzcz90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3MuZG9Mb2NrZWQobik6bigpfSxnLnByb3RvdHlwZS5lbnRpdGllc0luWUJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49ZnVuY3Rpb24oKXtyZXR1cm4gcC5wcm90b3R5cGUuZW50aXRpZXNJbllCb3VuZHMuY2FsbChlLHQpfTtyZXR1cm4gdGhpcy5fZml4ZWRCYXJQaXhlbFRoaWNrbmVzcz90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3MuZG9Mb2NrZWQobik6bigpfSxnLnByb3RvdHlwZS5fZW50aXRpZXNJbnRlcnNlY3Rpbmc9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49W10saT10aGlzLl9nZXRFbnRpdHlTdG9yZSgpLmVudGl0aWVzKCkscj1pLmxlbmd0aCxvPTA7bzxyO28rKyl7dmFyIGE9aVtvXTtkLkRPTS5pbnRlcnNlY3RzQkJveCh0LGUsdGhpcy5fZW50aXR5Qm91bmRzKGEpKSYmbi5wdXNoKHRoaXMuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eShhKSl9cmV0dXJuIG59LGcucHJvdG90eXBlLl91cGRhdGVMZW5ndGhTY2FsZT1mdW5jdGlvbigpe2lmKHRoaXMuX3Byb2plY3RvcnNSZWFkeSgpKXt2YXIgdD10aGlzLmxlbmd0aCgpLnNjYWxlO3QgaW5zdGFuY2VvZiBoLlF1YW50aXRhdGl2ZVNjYWxlJiYodC5hZGRQYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVyKHRoaXMuX2Jhc2VsaW5lVmFsdWVQcm92aWRlciksdC5hZGRJbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKHRoaXMuX2Jhc2VsaW5lVmFsdWVQcm92aWRlcikpfX0sZy5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9iYXJQaXhlbFRoaWNrbmVzcygpLHRoaXMuX2NvbXB1dGVCYXJQaXhlbFRoaWNrbmVzcy5kb0xvY2tlZCgoZnVuY3Rpb24oKXtyZXR1cm4gcC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0KX0pKX0sZy5wcm90b3R5cGUuX2FkZGl0aW9uYWxQYWludD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5sZW5ndGgoKS5zY2FsZS5zY2FsZSh0aGlzLmJhc2VsaW5lVmFsdWUoKSksaT17eDE6dGhpcy5faXNWZXJ0aWNhbD8wOm4seTE6dGhpcy5faXNWZXJ0aWNhbD9uOjAseDI6dGhpcy5faXNWZXJ0aWNhbD90aGlzLndpZHRoKCk6bix5Mjp0aGlzLl9pc1ZlcnRpY2FsP246dGhpcy5oZWlnaHQoKX07dGhpcy5fZ2V0QW5pbWF0b3IoImJhc2VsaW5lIikuYW5pbWF0ZSh0aGlzLl9iYXNlbGluZSxpKSx0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2xhYmVsQ29uZmlnLmdldCh0KS5sYWJlbEFyZWEuc2VsZWN0QWxsKCJnIikucmVtb3ZlKCl9KSksdGhpcy5fbGFiZWxzRW5hYmxlZCYmZC5XaW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gZS5fZHJhd0xhYmVscygpfSksdCl9LGcucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eT1mdW5jdGlvbih0KXt2YXIgZSxpPXRoaXMscj1wLnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHkuY2FsbCh0aGlzLHQpO2lmKCJ4Ij09PXQmJnRoaXMuX2lzVmVydGljYWwpZT10aGlzLngoKTtlbHNle2lmKCJ5IiE9PXR8fHRoaXMuX2lzVmVydGljYWwpcmV0dXJuIHI7ZT10aGlzLnkoKX1pZighKGUmJmUuc2NhbGUmJmUuc2NhbGUgaW5zdGFuY2VvZiBoLlF1YW50aXRhdGl2ZVNjYWxlKSlyZXR1cm4gcjt2YXIgbz1lLnNjYWxlLGE9dGhpcy5fYmFyUGl4ZWxUaGlja25lc3MoKTtyZXR1cm4gci5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBuLmV4dGVudChbby5pbnZlcnQoaS5fZ2V0UG9zaXRpb25BdHRyKG8uc2NhbGUodFswXSksYSkpLG8uaW52ZXJ0KGkuX2dldFBvc2l0aW9uQXR0cihvLnNjYWxlKHRbMF0pLGEpK2EpLG8uaW52ZXJ0KGkuX2dldFBvc2l0aW9uQXR0cihvLnNjYWxlKHRbMV0pLGEpKSxvLmludmVydChpLl9nZXRQb3NpdGlvbkF0dHIoby5zY2FsZSh0WzFdKSxhKSthKV0pfSkpfSxnLnByb3RvdHlwZS5fZ2V0UG9zaXRpb25BdHRyPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX2lzVmVydGljYWx8fCh0LT1lLGUqPS0xKSx0aGlzLl9iYXJBbGlnbm1lbnQpe2Nhc2Uic3RhcnQiOnJldHVybiB0O2Nhc2UiZW5kIjpyZXR1cm4gdC1lO2Nhc2UibWlkZGxlIjpkZWZhdWx0OnJldHVybiB0LWUvMn19LGcucHJvdG90eXBlLl9kcmF3TGFiZWxzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX2dldERhdGFUb0RyYXcoKSxuPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGk9dGhpcy5kYXRhc2V0cygpLnNvbWUoKGZ1bmN0aW9uKGkpe3JldHVybiBlLmdldChpKS5zb21lKChmdW5jdGlvbihlLHIpe3JldHVybiBudWxsIT1lJiZ0Ll9kcmF3TGFiZWwoZSxyLGksbil9KSl9KSk7dGhpcy5faGlkZUJhcnNJZkFueUFyZVRvb1dpZGUmJmkmJnRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5fbGFiZWxDb25maWcuZ2V0KGUpLmxhYmVsQXJlYS5zZWxlY3RBbGwoImciKS5yZW1vdmUoKX0pKX0sZy5wcm90b3R5cGUuX2RyYXdMYWJlbD1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzLl9sYWJlbENvbmZpZy5nZXQobiksbz1yLmxhYmVsQXJlYSxhPXIubWVhc3VyZXIscz1yLndyaXRlcixsPSgwLHRoaXMubGVuZ3RoKCkuYWNjZXNzb3IpKHQsZSxuKSxjPXRoaXMubGVuZ3RoKCkuc2NhbGUsdT1udWxsIT1jP2Muc2NhbGUobCk6bCxoPW51bGwhPWM/Yy5zY2FsZSh0aGlzLmJhc2VsaW5lVmFsdWUoKSk6dGhpcy5iYXNlbGluZVZhbHVlKCksZD17eDppLngodCxlLG4pLHk6aS55KHQsZSxuKX0scD17d2lkdGg6aS53aWR0aCh0LGUsbiksaGVpZ2h0OmkuaGVpZ2h0KHQsZSxuKX0sZj10aGlzLl9sYWJlbEZvcm1hdHRlcihsLHQsZSxuKSxtPWEubWVhc3VyZShmKSxnPXRoaXMuX3Nob3VsZFNob3dMYWJlbE9uQmFyKGQscCxtKSxfPXRoaXMuX2NhbGN1bGF0ZUxhYmVsUHJvcGVydGllcyhkLHAsbSxnLHRoaXMuX2lzVmVydGljYWw/dTw9aDp1PGgpLHk9Xy5jb250YWluZXJEaW1lbnNpb25zLHY9Xy5sYWJlbENvbnRhaW5lck9yaWdpbixiPV8ubGFiZWxPcmlnaW4seD1fLmFsaWdubWVudCx3PWkuZmlsbCh0LGUsbiksUz10aGlzLl9jcmVhdGVMYWJlbENvbnRhaW5lcihvLHYsYixtLGcsdyk7cmV0dXJuIHMud3JpdGUoZix5LndpZHRoLHkuaGVpZ2h0LHt4QWxpZ246eC54LHlBbGlnbjp4Lnl9LFMubm9kZSgpKSx0aGlzLl9pc1ZlcnRpY2FsP3Aud2lkdGg8bS53aWR0aDpwLmhlaWdodDxtLmhlaWdodH0sZy5wcm90b3R5cGUuX3Nob3VsZFNob3dMYWJlbE9uQmFyPWZ1bmN0aW9uKGUsbixpKXtpZih0aGlzLl9sYWJlbHNQb3NpdGlvbj09PXQuTGFiZWxzUG9zaXRpb24ub3V0c2lkZSlyZXR1cm4hMTt2YXIgcj10aGlzLl9pc1ZlcnRpY2FsP2UueTplLngsbz10aGlzLl9pc1ZlcnRpY2FsP24uaGVpZ2h0Om4ud2lkdGgsYT10aGlzLl9pc1ZlcnRpY2FsP3RoaXMuaGVpZ2h0KCk6dGhpcy53aWR0aCgpLHM9citvLGw9bztyZXR1cm4gcz5hP2w9YS1yOnI8MCYmKGw9cyksKHRoaXMuX2lzVmVydGljYWw/aS5oZWlnaHQ6aS53aWR0aCkrZy5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVI8PWx9LGcucHJvdG90eXBlLl9jYWxjdWxhdGVMYWJlbFByb3BlcnRpZXM9ZnVuY3Rpb24oZSxuLGkscixvKXt2YXIgYT10aGlzLHM9dGhpcy5faXNWZXJ0aWNhbD9lLnk6ZS54LGw9dGhpcy5faXNWZXJ0aWNhbD9uLmhlaWdodDpuLndpZHRoLGM9dGhpcy5faXNWZXJ0aWNhbD9pLmhlaWdodDppLndpZHRoLHU9ImNlbnRlciIsaD1sLGQ9cyxwPXMsZj1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSJ0b3BMZWZ0IjpyZXR1cm4gdT1hLl9pc1ZlcnRpY2FsPyJ0b3AiOiJsZWZ0IixkKz1nLl9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUix2b2lkKHArPWcuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSKTtjYXNlImNlbnRlciI6cmV0dXJuIHZvaWQocCs9KGwrYykvMik7Y2FzZSJib3R0b21SaWdodCI6cmV0dXJuIHU9YS5faXNWZXJ0aWNhbD8iYm90dG9tIjoicmlnaHQiLGQtPWcuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSLHZvaWQocCs9aC1nLl9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUi1jKX19O2lmKHIpc3dpdGNoKHRoaXMuX2xhYmVsc1Bvc2l0aW9uKXtjYXNlIHQuTGFiZWxzUG9zaXRpb24uc3RhcnQ6ZihvPyJib3R0b21SaWdodCI6InRvcExlZnQiKTticmVhaztjYXNlIHQuTGFiZWxzUG9zaXRpb24ubWlkZGxlOmYoImNlbnRlciIpO2JyZWFrO2Nhc2UgdC5MYWJlbHNQb3NpdGlvbi5lbmQ6ZihvPyJ0b3BMZWZ0IjoiYm90dG9tUmlnaHQiKX1lbHNlIG8/KHU9dGhpcy5faXNWZXJ0aWNhbD8idG9wIjoibGVmdCIsaD1sK2cuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSK2MsZC09Zy5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVIrYyxwLT1nLl9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUitjKToodT10aGlzLl9pc1ZlcnRpY2FsPyJib3R0b20iOiJyaWdodCIsaD1sK2cuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSK2MscCs9bCtnLl9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUik7cmV0dXJue2NvbnRhaW5lckRpbWVuc2lvbnM6e3dpZHRoOnRoaXMuX2lzVmVydGljYWw/bi53aWR0aDpoLGhlaWdodDp0aGlzLl9pc1ZlcnRpY2FsP2g6bi5oZWlnaHR9LGxhYmVsQ29udGFpbmVyT3JpZ2luOnt4OnRoaXMuX2lzVmVydGljYWw/ZS54OmQseTp0aGlzLl9pc1ZlcnRpY2FsP2Q6ZS55fSxsYWJlbE9yaWdpbjp7eDp0aGlzLl9pc1ZlcnRpY2FsP2UueCtuLndpZHRoLzItaS53aWR0aC8yOnAseTp0aGlzLl9pc1ZlcnRpY2FsP3A6ZS55K24uaGVpZ2h0LzItaS5oZWlnaHQvMn0sYWxpZ25tZW50Ont4OnRoaXMuX2lzVmVydGljYWw/ImNlbnRlciI6dSx5OnRoaXMuX2lzVmVydGljYWw/dToiY2VudGVyIn19fSxnLnByb3RvdHlwZS5fY3JlYXRlTGFiZWxDb250YWluZXI9ZnVuY3Rpb24odCxlLG4saSxyLG8pe3ZhciBhPXQuYXBwZW5kKCJnIikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrZS54KyIsICIrZS55KyIpIik7aWYocil7YS5jbGFzc2VkKCJvbi1iYXItbGFiZWwiLCEwKTt2YXIgcz0xLjYqZC5Db2xvci5jb250cmFzdCgid2hpdGUiLG8pPGQuQ29sb3IuY29udHJhc3QoImJsYWNrIixvKTthLmNsYXNzZWQocz8iZGFyay1sYWJlbCI6ImxpZ2h0LWxhYmVsIiwhMCl9ZWxzZSBhLmNsYXNzZWQoIm9mZi1iYXItbGFiZWwiLCEwKTtyZXR1cm4gYX0sZy5wcm90b3R5cGUuX2dlbmVyYXRlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7dmFyIHQ9W107aWYodGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpKXt2YXIgZT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxuPXRoaXMubGVuZ3RoKCkuc2NhbGUuc2NhbGUodGhpcy5iYXNlbGluZVZhbHVlKCkpLGk9dGhpcy5faXNWZXJ0aWNhbD8iaGVpZ2h0Ijoid2lkdGgiO2VbdGhpcy5faXNWZXJ0aWNhbD8ieSI6IngiXT1mdW5jdGlvbigpe3JldHVybiBufSxlW2ldPWZ1bmN0aW9uKCl7cmV0dXJuIDB9LHQucHVzaCh7YXR0clRvUHJvamVjdG9yOmUsYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoZi5BbmltYXRvci5SRVNFVCl9KX1yZXR1cm4gdC5wdXNoKHthdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoZi5BbmltYXRvci5NQUlOKX0pLHR9LGcucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1wLnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3IuY2FsbCh0aGlzKSxuPXRoaXMubGVuZ3RoKCkuc2NhbGUuc2NhbGUodGhpcy5iYXNlbGluZVZhbHVlKCkpLGk9dGhpcy5faXNWZXJ0aWNhbD8ieSI6IngiLHI9dGhpcy5faXNWZXJ0aWNhbD8ieCI6InkiLG89bS5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnBvc2l0aW9uKCkpLGE9bS5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLmxlbmd0aCgpKSxzPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gTWF0aC5hYnMobi1hKHQsZSxpKSl9LGw9ZVtnLl9CQVJfVEhJQ0tORVNTX0tFWV0sYz1lLmdhcCx1PW51bGw9PWM/bDpmdW5jdGlvbih0LGUsbil7dmFyIGk9bCh0LGUsbik7cmV0dXJuIGk8Zy5fQkFSX0dBUExFU1NfVEhSRVNIT0xEX1BYP2k6aS1jKHQsZSxuKX07cmV0dXJuIGUud2lkdGg9dGhpcy5faXNWZXJ0aWNhbD91OnMsZS5oZWlnaHQ9dGhpcy5faXNWZXJ0aWNhbD9zOnUsZVtpXT1mdW5jdGlvbih0LGUsaSl7dmFyIHI9YSh0LGUsaSk7cmV0dXJuIHI+bj9uOnJ9LGVbcl09ZnVuY3Rpb24oZSxuLGkpe3JldHVybiB0Ll9nZXRQb3NpdGlvbkF0dHIobyhlLG4saSksbChlLG4saSkpfSxlfSxnLnByb3RvdHlwZS5fdXBkYXRlVGhpY2tuZXNzQXR0cj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLnBvc2l0aW9uKCksbj10aGlzLmJhckVuZCgpO251bGwhPWUmJm51bGwhPW4/KHRoaXMuX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M9ITEsdGhpcy5hdHRyKGcuX0JBUl9USElDS05FU1NfS0VZLChmdW5jdGlvbih0LGkscil7dmFyIG89ZS5hY2Nlc3Nvcih0LGksciksYT1uLmFjY2Vzc29yKHQsaSxyKTtyZXR1cm4gbz1lLnNjYWxlP2Uuc2NhbGUuc2NhbGUobyk6byxhPW4uc2NhbGU/bi5zY2FsZS5zY2FsZShhKTphLE1hdGguYWJzKGEtbyl9KSkpOih0aGlzLl9maXhlZEJhclBpeGVsVGhpY2tuZXNzPSEwLHRoaXMuYXR0cihnLl9CQVJfVEhJQ0tORVNTX0tFWSwoZnVuY3Rpb24oKXtyZXR1cm4gdC5fYmFyUGl4ZWxUaGlja25lc3MoKX0pKSl9LGcucHJvdG90eXBlLl9iYXJQaXhlbFRoaWNrbmVzcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9maXhlZEJhclBpeGVsVGhpY2tuZXNzJiZ0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKT90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3ModGhpcy5wb3NpdGlvbigpLHRoaXMuZGF0YXNldHMoKSx0aGlzLl9pc1ZlcnRpY2FsP3RoaXMud2lkdGgoKTp0aGlzLmhlaWdodCgpKTowfSxnLnByb3RvdHlwZS5lbnRpdGllcz1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9dGhpcy5kYXRhc2V0cygpKSx0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKT9wLnByb3RvdHlwZS5lbnRpdGllcy5jYWxsKHRoaXMsdCk6W119LGcucHJvdG90eXBlLl9lbnRpdHlCb3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BpeGVsQm91bmRzKHQuZGF0dW0sdC5pbmRleCx0LmRhdGFzZXQpfSxnLnByb3RvdHlwZS5fcGl4ZWxCb3VuZHM9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpO3JldHVybnt4OmkueCh0LGUsbikseTppLnkodCxlLG4pLHdpZHRoOmkud2lkdGgodCxlLG4pLGhlaWdodDppLmhlaWdodCh0LGUsbil9fSxnLnByb3RvdHlwZS5fcGl4ZWxQb2ludD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5fcGl4ZWxCb3VuZHModCxlLG4pLHI9bS5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLl9pc1ZlcnRpY2FsP3RoaXMueSgpOnRoaXMueCgpKSh0LGUsbiksbz0odGhpcy5faXNWZXJ0aWNhbD90aGlzLnkoKS5zY2FsZTp0aGlzLngoKS5zY2FsZSkuc2NhbGUodGhpcy5iYXNlbGluZVZhbHVlKCkpO3JldHVybiB0aGlzLl9waXhlbFBvaW50QmFyKHIsbyxpKX0sZy5wcm90b3R5cGUuX3BpeGVsUG9pbnRCYXI9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI7cmV0dXJuIHRoaXMuX2lzVmVydGljYWw/KGk9bi54K24ud2lkdGgvMixyPXQ8PWU/bi55Om4ueStuLmhlaWdodCk6KGk9dD49ZT9uLngrbi53aWR0aDpuLngscj1uLnkrbi5oZWlnaHQvMikse3g6aSx5OnJ9fSxnLnByb3RvdHlwZS5fdW5pbnN0YWxsU2NhbGVGb3JLZXk9ZnVuY3Rpb24odCxlKXtwLnByb3RvdHlwZS5fdW5pbnN0YWxsU2NhbGVGb3JLZXkuY2FsbCh0aGlzLHQsZSl9LGcucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPW5ldyBkLk1hcCxuPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGk9dGhpcy53aWR0aCgpLHI9dGhpcy5oZWlnaHQoKTtyZXR1cm4gdGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKG8pe3ZhciBhPW8uZGF0YSgpLm1hcCgoZnVuY3Rpb24oZSxhKXtyZXR1cm4gdC5faXNEYXR1bU9uU2NyZWVuKG4saSxyLGUsYSxvKT9lOm51bGx9KSk7ZS5zZXQobyxhKX0pKSxlfSxnLnByb3RvdHlwZS5faXNEYXR1bU9uU2NyZWVuPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt2YXIgYT10LngoaSxyLG8pLHM9dC55KGkscixvKSxsPXQud2lkdGgoaSxyLG8pLGM9dC5oZWlnaHQoaSxyLG8pO3JldHVybiEhKGQuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpJiZkLk1hdGguaXNWYWxpZE51bWJlcihzKSYmZC5NYXRoLmlzVmFsaWROdW1iZXIobCkmJmQuTWF0aC5pc1ZhbGlkTnVtYmVyKGMpKSYmZC5NYXRoLmJvdW5kc0ludGVyc2VjdHMoYSxzLGwsYywwLDAsZSxuKX0sZy5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztwLnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGUuY2FsbCh0aGlzKSx0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuX2xhYmVsQ29uZmlnLmdldChlKS5tZWFzdXJlci5yZXNldCgpfSkpfSxnLl9CQVJfVEhJQ0tORVNTX1JBVElPPS45NSxnLl9CQVJfR0FQTEVTU19USFJFU0hPTERfUFg9MyxnLl9TSU5HTEVfQkFSX0RJTUVOU0lPTl9SQVRJTz0uNCxnLl9CQVJfQVJFQV9DTEFTUz0iYmFyLWFyZWEiLGcuX0JBUl9FTkRfS0VZPSJiYXJFbmQiLGcuX0JBUl9USElDS05FU1NfS0VZPSJ3aWR0aCIsZy5fTEFCRUxfQVJFQV9DTEFTUz0iYmFyLWxhYmVsLXRleHQtYXJlYSIsZy5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVI9MTAsZ30pKGcuWFlQbG90KTtmdW5jdGlvbiB5KHQsZSxpKXt2YXIgcixvPXQuc2NhbGU7aWYobyBpbnN0YW5jZW9mIHUuQ2F0ZWdvcnkpcj1vLnJhbmdlQmFuZCgpO2Vsc2V7dmFyIGE9dC5hY2Nlc3NvcixzPW4uc2V0KGQuQXJyYXkuZmxhdHRlbihlLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YSgpLm1hcCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gYShlLG4sdCl9KSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlT2YoKX0pKX0pKSkpLnZhbHVlcygpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuK3R9KSk7cy5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSk7dmFyIGw9cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvLnNjYWxlKHQpfSkpLGM9bi5wYWlycyhsKTtyPWQuTWF0aC5taW4oYywoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5hYnModFsxXS10WzBdKX0pLGkqXy5fU0lOR0xFX0JBUl9ESU1FTlNJT05fUkFUSU8pLHIqPV8uX0JBUl9USElDS05FU1NfUkFUSU99cmV0dXJuIHJ9dC5CYXI9X30pKFhNdCk7dmFyICRNdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoJE10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgS010PXVPLFpNdD1aeXQsSk10PUZndCxRTXQ9WE10LHRFdD11d3QsZUV0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPSJ2ZXJ0aWNhbCIpO3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBuLl9jbHVzdGVyT2Zmc2V0cz1uZXcgSk10Lk1hcCxufXJldHVybiBLTXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXQucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvci5jYWxsKHRoaXMpLGk9dGhpcy5fbWFrZUlubmVyU2NhbGUoKSxyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkucmFuZ2VCYW5kKCl9O24ud2lkdGg9dGhpcy5faXNWZXJ0aWNhbD9yOm4ud2lkdGgsbi5oZWlnaHQ9dGhpcy5faXNWZXJ0aWNhbD9uLmhlaWdodDpyO3ZhciBvPW4ueCxhPW4ueTtyZXR1cm4gbi54PXRoaXMuX2lzVmVydGljYWw/ZnVuY3Rpb24odCxuLGkpe3JldHVybiBvKHQsbixpKStlLl9jbHVzdGVyT2Zmc2V0cy5nZXQoaSl9OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbyh0LGUsbil9LG4ueT10aGlzLl9pc1ZlcnRpY2FsP2Z1bmN0aW9uKHQsZSxuKXtyZXR1cm4gYSh0LGUsbil9OmZ1bmN0aW9uKHQsbixpKXtyZXR1cm4gYSh0LG4saSkrZS5fY2x1c3Rlck9mZnNldHMuZ2V0KGkpfSxufSxlLnByb3RvdHlwZS5fdXBkYXRlQ2x1c3RlclBvc2l0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX21ha2VJbm5lclNjYWxlKCk7dGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKG4saSl7cmV0dXJuIHQuX2NsdXN0ZXJPZmZzZXRzLnNldChuLGUuc2NhbGUoU3RyaW5nKGkpKS1lLnJhbmdlQmFuZCgpLzIpfSkpfSxlLnByb3RvdHlwZS5fbWFrZUlubmVyU2NhbGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgWk10LkNhdGVnb3J5O3QuZG9tYWluKHRoaXMuZGF0YXNldHMoKS5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIFN0cmluZyhlKX0pKSk7dmFyIGU9dEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuYXR0cihRTXQuQmFyLl9CQVJfVEhJQ0tORVNTX0tFWSkpO3JldHVybiB0LnJhbmdlKFswLGUobnVsbCwwLG51bGwpXSksdH0sZS5wcm90b3R5cGUuX2dldERhdGFUb0RyYXc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXBkYXRlQ2x1c3RlclBvc2l0aW9uKCksdC5wcm90b3R5cGUuX2dldERhdGFUb0RyYXcuY2FsbCh0aGlzKX0sZX0pKFFNdC5CYXIpOyRNdC5DbHVzdGVyZWRCYXI9ZUV0O3ZhciBuRXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KG5FdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGlFdD11TyxyRXQ9RWR0LG9FdD1JbXQsYUV0PV9tdCxzRXQ9Z3l0LGxFdD1aeXQsY0V0PUZndCx1RXQ9SVN0LGhFdD16U3QsZEV0PVd3dCxwRXQ9a190LGZFdD11d3QsbUV0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9zdGFydEFuZ2xlPTAsZS5fZW5kQW5nbGU9MipNYXRoLlBJLGUuX2xhYmVsRm9ybWF0dGVyPXNFdC5pZGVudGl0eSgpLGUuX2xhYmVsc0VuYWJsZWQ9ITEsZS5pbm5lclJhZGl1cygwKSxlLm91dGVyUmFkaXVzKChmdW5jdGlvbigpe3ZhciB0PWUuX3BpZUNlbnRlcigpO3JldHVybiBNYXRoLm1pbihNYXRoLm1heChlLndpZHRoKCktdC54LHQueCksTWF0aC5tYXgoZS5oZWlnaHQoKS10LnksdC55KSl9KSksZS5hZGRDbGFzcygicGllLXBsb3QiKSxlLmF0dHIoImZpbGwiLChmdW5jdGlvbih0LGUpe3JldHVybiBTdHJpbmcoZSl9KSxuZXcgbEV0LkNvbG9yKSxlLl9zdHJva2VEcmF3ZXJzPW5ldyBjRXQuTWFwLGV9cmV0dXJuIGlFdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3N0cm9rZURyYXdlcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYXR0YWNoVG8oZS5fcmVuZGVyQXJlYSl9KSl9LGUucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24oZSxuLGkpe3QucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKTt2YXIgcj10aGlzLl9waWVDZW50ZXIoKTt0aGlzLl9yZW5kZXJBcmVhLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3IueCsiLCIrci55KyIpIik7dmFyIG89TWF0aC5taW4oTWF0aC5tYXgodGhpcy53aWR0aCgpLXIueCxyLngpLE1hdGgubWF4KHRoaXMuaGVpZ2h0KCktci55LHIueSkpO3JldHVybiBudWxsIT10aGlzLmlubmVyUmFkaXVzKCkuc2NhbGUmJnRoaXMuaW5uZXJSYWRpdXMoKS5zY2FsZS5yYW5nZShbMCxvXSksbnVsbCE9dGhpcy5vdXRlclJhZGl1cygpLnNjYWxlJiZ0aGlzLm91dGVyUmFkaXVzKCkuc2NhbGUucmFuZ2UoWzAsb10pLHRoaXN9LGUucHJvdG90eXBlLmFkZERhdGFzZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvdG90eXBlLmFkZERhdGFzZXQuY2FsbCh0aGlzLGUpLHRoaXN9LGUucHJvdG90eXBlLl9hZGREYXRhc2V0PWZ1bmN0aW9uKGUpe2lmKDE9PT10aGlzLmRhdGFzZXRzKCkubGVuZ3RoKXJldHVybiBjRXQuV2luZG93Lndhcm4oIk9ubHkgb25lIGRhdGFzZXQgaXMgc3VwcG9ydGVkIGluIFBpZSBwbG90cyIpLHRoaXM7dGhpcy5fdXBkYXRlUGllQW5nbGVzKCksdC5wcm90b3R5cGUuX2FkZERhdGFzZXQuY2FsbCh0aGlzLGUpO3ZhciBuPW5ldyBoRXQuQXJjT3V0bGluZVNWR0RyYXdlcjtyZXR1cm4gdGhpcy5faXNTZXR1cCYmbi5hdHRhY2hUbyh0aGlzLl9yZW5kZXJBcmVhKSx0aGlzLl9zdHJva2VEcmF3ZXJzLnNldChlLG4pLHRoaXN9LGUucHJvdG90eXBlLnJlbW92ZURhdGFzZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvdG90eXBlLnJlbW92ZURhdGFzZXQuY2FsbCh0aGlzLGUpLHRoaXN9LGUucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXM9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcy5jYWxsKHRoaXMsZSksdGhpcy5fc3Ryb2tlRHJhd2Vycy5nZXQoZSkucmVtb3ZlKCl9LGUucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldC5jYWxsKHRoaXMsZSksdGhpcy5fc3Ryb2tlRHJhd2Vycy5kZWxldGUoZSksdGhpcy5fc3RhcnRBbmdsZXM9W10sdGhpcy5fZW5kQW5nbGVzPVtdLHRoaXN9LGUucHJvdG90eXBlLnNlbGVjdGlvbnM9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt2b2lkIDA9PT1lJiYoZT10aGlzLmRhdGFzZXRzKCkpO3ZhciBpPXQucHJvdG90eXBlLnNlbGVjdGlvbnMuY2FsbCh0aGlzLGUpLm5vZGVzKCk7cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bi5fc3Ryb2tlRHJhd2Vycy5nZXQodCk7bnVsbCE9ZSYmaS5wdXNoLmFwcGx5KGksZS5nZXRWaXN1YWxQcmltaXRpdmVzKCkpfSkpLHJFdC5zZWxlY3RBbGwoaSl9LGUucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fb25EYXRhc2V0VXBkYXRlLmNhbGwodGhpcyksdGhpcy5fdXBkYXRlUGllQW5nbGVzKCksdGhpcy5yZW5kZXIoKX0sZS5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgZEV0LlByb3h5RHJhd2VyKChmdW5jdGlvbigpe3JldHVybiBuZXcgdUV0LkFyY1NWR0RyYXdlcn0pLChmdW5jdGlvbigpe3JldHVybiBwRXQud2FybigiY2FudmFzIHJlbmRlcmVyIGlzIG5vdCBzdXBwb3J0ZWQgb24gUGllIFBsb3QhIiksbnVsbH0pKX0sZS5wcm90b3R5cGUuZW50aXRpZXM9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dGhpcy5kYXRhc2V0cygpKSx0LnByb3RvdHlwZS5lbnRpdGllcy5jYWxsKHRoaXMsZSkubWFwKChmdW5jdGlvbih0KXt0LnBvc2l0aW9uLngrPW4ud2lkdGgoKS8yLHQucG9zaXRpb24ueSs9bi5oZWlnaHQoKS8yO3ZhciBlPXJFdC5zZWxlY3Qobi5fc3Ryb2tlRHJhd2Vycy5nZXQodC5kYXRhc2V0KS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4KHQuaW5kZXgpKSxpPXQ7cmV0dXJuIGkuc3Ryb2tlU2VsZWN0aW9uPWUsaX0pKX0sZS5wcm90b3R5cGUuc2VjdG9yVmFsdWU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbnVsbD09dD90aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9TRUNUT1JfVkFMVUVfS0VZKToodGhpcy5fYmluZFByb3BlcnR5KGUuX1NFQ1RPUl9WQUxVRV9LRVksdCxuKSx0aGlzLl91cGRhdGVQaWVBbmdsZXMoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5pbm5lclJhZGl1cz1mdW5jdGlvbih0LG4pe3JldHVybiBudWxsPT10P3RoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGUuX0lOTkVSX1JBRElVU19LRVkpOih0aGlzLl9iaW5kUHJvcGVydHkoZS5fSU5ORVJfUkFESVVTX0tFWSx0LG4pLHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLm91dGVyUmFkaXVzPWZ1bmN0aW9uKHQsbil7cmV0dXJuIG51bGw9PXQ/dGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fT1VURVJfUkFESVVTX0tFWSk6KHRoaXMuX2JpbmRQcm9wZXJ0eShlLl9PVVRFUl9SQURJVVNfS0VZLHQsbiksdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9zdGFydEFuZ2xlOih0aGlzLl9zdGFydEFuZ2xlPXQsdGhpcy5fdXBkYXRlUGllQW5nbGVzKCksdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZW5kQW5nbGU6KHRoaXMuX2VuZEFuZ2xlPXQsdGhpcy5fdXBkYXRlUGllQW5nbGVzKCksdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUubGFiZWxzRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9sYWJlbHNFbmFibGVkOih0aGlzLl9sYWJlbHNFbmFibGVkPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUubGFiZWxGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbGFiZWxGb3JtYXR0ZXI6KHRoaXMuX2xhYmVsRm9ybWF0dGVyPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLndpZHRoKCkvMixuPXRoaXMuaGVpZ2h0KCkvMixpPXRoaXMuX3NsaWNlSW5kZXhGb3JQb2ludCh7eDp0LngtZSx5OnQueS1ufSk7cmV0dXJuIG51bGw9PWk/W106W3RoaXMuZW50aXRpZXMoKVtpXV19LGUucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49dC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpLGk9ZkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuaW5uZXJSYWRpdXMoKSkscj1mRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5vdXRlclJhZGl1cygpKTtyZXR1cm4gbi5kPWZ1bmN0aW9uKHQsbixvKXtyZXR1cm4gckV0LmFyYygpLmlubmVyUmFkaXVzKGkodCxuLG8pKS5vdXRlclJhZGl1cyhyKHQsbixvKSkuc3RhcnRBbmdsZShlLl9zdGFydEFuZ2xlc1tuXSkuZW5kQW5nbGUoZS5fZW5kQW5nbGVzW25dKSh0LG4pfSxufSxlLnByb3RvdHlwZS5fdXBkYXRlUGllQW5nbGVzPWZ1bmN0aW9uKCl7aWYobnVsbCE9dGhpcy5zZWN0b3JWYWx1ZSgpJiYwIT09dGhpcy5kYXRhc2V0cygpLmxlbmd0aCl7dmFyIHQ9ZkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuc2VjdG9yVmFsdWUoKSksZT10aGlzLmRhdGFzZXRzKClbMF0sbj10aGlzLl9nZXREYXRhVG9EcmF3KCkuZ2V0KGUpLGk9ckV0LnBpZSgpLnNvcnQobnVsbCkuc3RhcnRBbmdsZSh0aGlzLl9zdGFydEFuZ2xlKS5lbmRBbmdsZSh0aGlzLl9lbmRBbmdsZSkudmFsdWUoKGZ1bmN0aW9uKG4saSl7cmV0dXJuIHQobixpLGUpfSkpKG4pO3RoaXMuX3N0YXJ0QW5nbGVzPWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdGFydEFuZ2xlfSkpLHRoaXMuX2VuZEFuZ2xlcz1pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZW5kQW5nbGV9KSl9fSxlLnByb3RvdHlwZS5fcGllQ2VudGVyPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLGkscj10aGlzLl9zdGFydEFuZ2xlPHRoaXMuX2VuZEFuZ2xlP3RoaXMuX3N0YXJ0QW5nbGU6dGhpcy5fZW5kQW5nbGUsbz10aGlzLl9zdGFydEFuZ2xlPHRoaXMuX2VuZEFuZ2xlP3RoaXMuX2VuZEFuZ2xlOnRoaXMuX3N0YXJ0QW5nbGUsYT1NYXRoLnNpbihyKSxzPU1hdGguY29zKHIpLGw9TWF0aC5zaW4obyksYz1NYXRoLmNvcyhvKTtyZXR1cm4gYT49MCYmbD49MD9zPj0wJiZjPj0wPyh0PXMsZT0wLGk9MCxuPWwpOnM8MCYmYzwwPyh0PTAsZT0tYyxpPTAsbj1hKTpzPj0wJiZjPDA/KHQ9cyxlPS1jLGk9MCxuPWEpOnM8MCYmYz49MCYmKHQ9MSxlPTEsaT0xLG49TWF0aC5tYXgoYSxsKSk6YT49MCYmbDwwP3M+PTAmJmM+PTA/KHQ9TWF0aC5tYXgocyxjKSxlPTEsaT0xLG49MSk6czwwJiZjPDA/KHQ9MCxlPTEsaT0tbCxuPWEpOnM+PTAmJmM8MD8odD1zLGU9MSxpPS1sLG49MSk6czwwJiZjPj0wJiYodD1jLGU9MSxpPTEsbj1hKTphPDAmJmw+PTA/cz49MCYmYz49MD8odD0xLGU9MCxpPS1hLG49bCk6czwwJiZjPDA/KHQ9MSxlPU1hdGgubWF4KC1zLC1jKSxpPTEsbj0xKTpzPj0wJiZjPDA/KHQ9MSxlPS1jLGk9LWEsbj0xKTpzPDAmJmM+PTAmJih0PTEsZT0tcyxpPTEsbj1sKTphPDAmJmw8MCYmKHM+PTAmJmM+PTA/KHQ9YyxlPTAsaT0tYSxuPTApOnM8MCYmYzwwPyh0PTAsZT0tcyxpPS1sLG49MCk6cz49MCYmYzwwPyh0PTEsZT0xLGk9TWF0aC5tYXgocywtYyksbj0xKTpzPDAmJmM+PTAmJih0PWMsZT0tcyxpPTEsbj0wKSkse3g6aStuPT0wPzA6aS8oaStuKSp0aGlzLndpZHRoKCkseTp0K2U9PTA/MDp0Lyh0K2UpKnRoaXMuaGVpZ2h0KCl9fSxlLnByb3RvdHlwZS5fZ2V0RGF0YVRvRHJhdz1mdW5jdGlvbigpe3ZhciBuPXQucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3LmNhbGwodGhpcyk7aWYoMD09PXRoaXMuZGF0YXNldHMoKS5sZW5ndGgpcmV0dXJuIG47dmFyIGk9ZkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuc2VjdG9yVmFsdWUoKSkscj10aGlzLmRhdGFzZXRzKClbMF0sbz1uLmdldChyKS5maWx0ZXIoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2lzVmFsaWREYXRhKGkodCxuLHIpKX0pKTtyZXR1cm4gbi5zZXQocixvKSxufSxlLl9pc1ZhbGlkRGF0YT1mdW5jdGlvbih0KXtyZXR1cm4gY0V0Lk1hdGguaXNWYWxpZE51bWJlcih0KSYmdD49MH0sZS5wcm90b3R5cGUuX3BpeGVsUG9pbnQ9ZnVuY3Rpb24odCxuLGkpe3ZhciByPWZFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnNlY3RvclZhbHVlKCkpO2lmKCFlLl9pc1ZhbGlkRGF0YShyKHQsbixpKSkpcmV0dXJue3g6TmFOLHk6TmFOfTt2YXIgbz0oZkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuaW5uZXJSYWRpdXMoKSkodCxuLGkpK2ZFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLm91dGVyUmFkaXVzKCkpKHQsbixpKSkvMixhPXJFdC5waWUoKS5zb3J0KG51bGwpLnZhbHVlKChmdW5jdGlvbih0LG4pe3ZhciBvPXIodCxuLGkpO3JldHVybiBlLl9pc1ZhbGlkRGF0YShvKT9vOjB9KSkuc3RhcnRBbmdsZSh0aGlzLl9zdGFydEFuZ2xlKS5lbmRBbmdsZSh0aGlzLl9lbmRBbmdsZSkoaS5kYXRhKCkpLHM9KGFbbl0uc3RhcnRBbmdsZSthW25dLmVuZEFuZ2xlKS8yO3JldHVybnt4Om8qTWF0aC5zaW4ocykseTotbypNYXRoLmNvcyhzKX19LGUucHJvdG90eXBlLl9hZGRpdGlvbmFsUGFpbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9yZW5kZXJBcmVhLnNlbGVjdCgiLmxhYmVsLWFyZWEiKS5yZW1vdmUoKSx0aGlzLl9sYWJlbHNFbmFibGVkJiZjRXQuV2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2RyYXdMYWJlbHMoKX0pLHQpO3ZhciBuPXRoaXMuX2dlbmVyYXRlU3Ryb2tlRHJhd1N0ZXBzKCksaT10aGlzLl9nZXREYXRhVG9EcmF3KCk7dGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPWZFdC5QbG90LmFwcGx5RHJhd1N0ZXBzKG4sdCk7ZS5fc3Ryb2tlRHJhd2Vycy5nZXQodCkuZHJhdyhpLmdldCh0KSxyKX0pKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlU3Ryb2tlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7cmV0dXJuW3thdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6bmV3IGFFdC5OdWxsfV19LGUucHJvdG90eXBlLl9zbGljZUluZGV4Rm9yUG9pbnQ9ZnVuY3Rpb24odCl7dmFyIGUsbj1NYXRoLnNxcnQoTWF0aC5wb3codC54LDIpK01hdGgucG93KHQueSwyKSksaT1NYXRoLmFjb3MoLXQueS9uKTt0Lng8MCYmKGk9MipNYXRoLlBJLWkpO2Zvcih2YXIgcj0wO3I8dGhpcy5fc3RhcnRBbmdsZXMubGVuZ3RoO3IrKylpZih0aGlzLl9zdGFydEFuZ2xlc1tyXTxpJiZ0aGlzLl9lbmRBbmdsZXNbcl0+aSl7ZT1yO2JyZWFrfWlmKHZvaWQgMCE9PWUpe3ZhciBvPXRoaXMuZGF0YXNldHMoKVswXSxhPW8uZGF0YSgpW2VdLHM9dGhpcy5pbm5lclJhZGl1cygpLmFjY2Vzc29yKGEsZSxvKSxsPXRoaXMub3V0ZXJSYWRpdXMoKS5hY2Nlc3NvcihhLGUsbyk7aWYobj5zJiZuPGwpcmV0dXJuIGV9cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLl9kcmF3TGFiZWxzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxuPXRoaXMuX3JlbmRlckFyZWEuYXBwZW5kKCJnIikuY2xhc3NlZCgibGFiZWwtYXJlYSIsITApLGk9bmV3IG9FdC5TdmdDb250ZXh0KG4ubm9kZSgpKSxyPW5ldyBvRXQuQ2FjaGVNZWFzdXJlcihpKSxvPW5ldyBvRXQuV3JpdGVyKHIsaSksYT10aGlzLmRhdGFzZXRzKClbMF0scz10aGlzLl9nZXREYXRhVG9EcmF3KCkuZ2V0KGEpLGw9cy5sZW5ndGgsYz1mdW5jdGlvbihpKXt2YXIgbD1zW2ldLGM9dS5zZWN0b3JWYWx1ZSgpLmFjY2Vzc29yKGwsaSxhKTtpZighY0V0Lk1hdGguaXNWYWxpZE51bWJlcihjKSlyZXR1cm4iY29udGludWUiO2M9dS5fbGFiZWxGb3JtYXR0ZXIoYyxsLGksYSk7dmFyIGg9ci5tZWFzdXJlKGMpLGQ9KHUuX2VuZEFuZ2xlc1tpXSt1Ll9zdGFydEFuZ2xlc1tpXSkvMixwPXUub3V0ZXJSYWRpdXMoKS5hY2Nlc3NvcihsLGksYSk7dS5vdXRlclJhZGl1cygpLnNjYWxlJiYocD11Lm91dGVyUmFkaXVzKCkuc2NhbGUuc2NhbGUocCkpO3ZhciBmPXUuaW5uZXJSYWRpdXMoKS5hY2Nlc3NvcihsLGksYSk7dS5pbm5lclJhZGl1cygpLnNjYWxlJiYoZj11LmlubmVyUmFkaXVzKCkuc2NhbGUuc2NhbGUoZikpO3ZhciBtPShwK2YpLzIsZz1NYXRoLnNpbihkKSptLWgud2lkdGgvMixfPS1NYXRoLmNvcyhkKSptLWguaGVpZ2h0LzIseT1be3g6Zyx5Ol99LHt4OmcseTpfK2guaGVpZ2h0fSx7eDpnK2gud2lkdGgseTpffSx7eDpnK2gud2lkdGgseTpfK2guaGVpZ2h0fV0sdj15LmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5hYnMoZS54KTw9dC53aWR0aCgpLzImJk1hdGguYWJzKGUueSk8PXQuaGVpZ2h0KCkvMn0pKTt2JiYodj15Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuX3NsaWNlSW5kZXhGb3JQb2ludChlKX0pKS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1pfSkpKTt2YXIgYj1lLmZpbGwobCxpLGEpLHg9MS42KmNFdC5Db2xvci5jb250cmFzdCgid2hpdGUiLGIpPGNFdC5Db2xvci5jb250cmFzdCgiYmxhY2siLGIpLHc9bi5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitnKyIsIitfKyIpIik7dy5jbGFzc2VkKHg/ImRhcmstbGFiZWwiOiJsaWdodC1sYWJlbCIsITApLHcuc3R5bGUoInZpc2liaWxpdHkiLHY/ImluaGVyaXQiOiJoaWRkZW4iKSxvLndyaXRlKGMsaC53aWR0aCxoLmhlaWdodCx7eEFsaWduOiJjZW50ZXIiLHlBbGlnbjoiY2VudGVyIn0sdy5ub2RlKCkpfSx1PXRoaXMsaD0wO2g8bDtoKyspYyhoKX0sZS5fSU5ORVJfUkFESVVTX0tFWT0iaW5uZXItcmFkaXVzIixlLl9PVVRFUl9SQURJVVNfS0VZPSJvdXRlci1yYWRpdXMiLGUuX1NFQ1RPUl9WQUxVRV9LRVk9InNlY3Rvci12YWx1ZSIsZX0pKGZFdC5QbG90KTtuRXQuUGllPW1FdDt2YXIgZ0V0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShnRXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBfRXQ9dU8seUV0PUVkdCx2RXQ9SW10LGJFdD1fbXQseEV0PU5TdCx3RXQ9V3d0LFNFdD1KU3QsTUV0PVp5dCxFRXQ9Rmd0LFRFdD11d3QsQ0V0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9sYWJlbHNFbmFibGVkPSExLGUuX2xhYmVsPW51bGwsZS5hbmltYXRvcigicmVjdGFuZ2xlcyIsbmV3IGJFdC5OdWxsKSxlLmFkZENsYXNzKCJyZWN0YW5nbGUtcGxvdCIpLGUuYXR0cigiZmlsbCIsKG5ldyBNRXQuQ29sb3IpLnJhbmdlKClbMF0pLGV9cmV0dXJuIF9FdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fY3JlYXRlRHJhd2VyPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB3RXQuUHJveHlEcmF3ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBTRXQuUmVjdGFuZ2xlU1ZHRHJhd2VyfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgeEV0LlJlY3RhbmdsZUNhbnZhc0RyYXdlcih0KX0pKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIG49dGhpcyxpPXQucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvci5jYWxsKHRoaXMpLHI9VEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxvPWlbZS5fWDJfS0VZXSxhPVRFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkscz1pW2UuX1kyX0tFWV0sbD10aGlzLngoKS5zY2FsZSxjPXRoaXMueSgpLnNjYWxlO3JldHVybiBudWxsIT1vPyhpLndpZHRoPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTWF0aC5hYnMobyh0LGUsbiktcih0LGUsbikpfSxpLng9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNYXRoLm1pbihvKHQsZSxuKSxyKHQsZSxuKSl9KTooaS53aWR0aD1mdW5jdGlvbih0LGUsaSl7cmV0dXJuIG4uX3JlY3RhbmdsZVdpZHRoKGwpfSxpLng9ZnVuY3Rpb24odCxlLG4pe3JldHVybiByKHQsZSxuKS0uNSppLndpZHRoKHQsZSxuKX0pLG51bGwhPXM/KGkuaGVpZ2h0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTWF0aC5hYnMocyh0LGUsbiktYSh0LGUsbikpfSxpLnk9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNYXRoLm1heChzKHQsZSxuKSxhKHQsZSxuKSktaS5oZWlnaHQodCxlLG4pfSk6KGkuaGVpZ2h0PWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbi5fcmVjdGFuZ2xlV2lkdGgoYyl9LGkueT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGEodCxlLG4pLS41KmkuaGVpZ2h0KHQsZSxuKX0pLGRlbGV0ZSBpW2UuX1gyX0tFWV0sZGVsZXRlIGlbZS5fWTJfS0VZXSxpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVEcmF3U3RlcHM9ZnVuY3Rpb24oKXtyZXR1cm5be2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcigicmVjdGFuZ2xlcyIpfV19LGUucHJvdG90eXBlLl9maWx0ZXJGb3JQcm9wZXJ0eT1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuX2ZpbHRlckZvclByb3BlcnR5LmNhbGwodGhpcywieDIiPT09ZT8ieCI6InkyIj09PWU/InkiOmUpfSxlLnByb3RvdHlwZS54PWZ1bmN0aW9uKG4saSxyKXtpZihudWxsPT1uKXJldHVybiB0LnByb3RvdHlwZS54LmNhbGwodGhpcyk7aWYobnVsbD09aT90LnByb3RvdHlwZS54LmNhbGwodGhpcyxuKTp0LnByb3RvdHlwZS54LmNhbGwodGhpcyxuLGksciksbnVsbCE9aSl7dmFyIG89dGhpcy54MigpLGE9byYmby5hY2Nlc3NvcjtudWxsIT1hJiZ0aGlzLl9iaW5kUHJvcGVydHkoZS5fWDJfS0VZLGEsaSxvLnBvc3RTY2FsZSl9cmV0dXJuIGkgaW5zdGFuY2VvZiBNRXQuQ2F0ZWdvcnkmJmkuaW5uZXJQYWRkaW5nKDApLm91dGVyUGFkZGluZygwKSx0aGlzfSxlLnByb3RvdHlwZS54Mj1mdW5jdGlvbih0LG4pe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGUuX1gyX0tFWSk7dmFyIGk9dGhpcy54KCk7cmV0dXJuIHRoaXMuX2JpbmRQcm9wZXJ0eShlLl9YMl9LRVksdCxpJiZpLnNjYWxlLG4pLHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUueT1mdW5jdGlvbihuLGkscil7aWYobnVsbD09bilyZXR1cm4gdC5wcm90b3R5cGUueS5jYWxsKHRoaXMpO2lmKG51bGw9PWk/dC5wcm90b3R5cGUueS5jYWxsKHRoaXMsbik6dC5wcm90b3R5cGUueS5jYWxsKHRoaXMsbixpLHIpLG51bGwhPWkpe3ZhciBvPXRoaXMueTIoKSxhPW8mJm8uYWNjZXNzb3I7bnVsbCE9YSYmdGhpcy5fYmluZFByb3BlcnR5KGUuX1kyX0tFWSxhLGksby5wb3N0U2NhbGUpfXJldHVybiBpIGluc3RhbmNlb2YgTUV0LkNhdGVnb3J5JiZpLmlubmVyUGFkZGluZygwKS5vdXRlclBhZGRpbmcoMCksdGhpc30sZS5wcm90b3R5cGUueTI9ZnVuY3Rpb24odCxuKXtpZihudWxsPT10KXJldHVybiB0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9ZMl9LRVkpO3ZhciBpPXRoaXMueSgpO3JldHVybiB0aGlzLl9iaW5kUHJvcGVydHkoZS5fWTJfS0VZLHQsaSYmaS5zY2FsZSxuKSx0aGlzLnJlbmRlcigpLHRoaXN9LGUucHJvdG90eXBlLmVudGl0aWVzQXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7cmV0dXJuIHRoaXMuZW50aXRpZXMoKS5maWx0ZXIoKGZ1bmN0aW9uKG4pe3ZhciBpPW4uZGF0dW0scj1uLmluZGV4LG89bi5kYXRhc2V0LGE9ZS54KGkscixvKSxzPWUueShpLHIsbyksbD1lLndpZHRoKGkscixvKSxjPWUuaGVpZ2h0KGkscixvKTtyZXR1cm4gYTw9dC54JiZ0Lng8PWErbCYmczw9dC55JiZ0Lnk8PXMrY30pKX0sZS5wcm90b3R5cGUuX2VudGl0eUJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZW50aXR5QkJveCh0LmRhdHVtLHQuaW5kZXgsdC5kYXRhc2V0LHRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpKX0sZS5wcm90b3R5cGUuX2VudGl0eUJCb3g9ZnVuY3Rpb24odCxlLG4saSl7cmV0dXJue3g6aS54KHQsZSxuKSx5OmkueSh0LGUsbiksd2lkdGg6aS53aWR0aCh0LGUsbiksaGVpZ2h0OmkuaGVpZ2h0KHQsZSxuKX19LGUucHJvdG90eXBlLmxhYmVsPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2xhYmVsOih0aGlzLl9sYWJlbD10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmxhYmVsc0VuYWJsZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbGFiZWxzRW5hYmxlZDoodGhpcy5fbGFiZWxzRW5hYmxlZD10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnM9ZnVuY3Rpb24oKXt2YXIgZT10LnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzLmNhbGwodGhpcyk7cmV0dXJuIG51bGwhPXRoaXMueDIoKSYmKGUueDI9VEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueDIoKSkpLG51bGwhPXRoaXMueTIoKSYmKGUueTI9VEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTIoKSkpLGV9LGUucHJvdG90eXBlLl9waXhlbFBvaW50PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxyPWkueCh0LGUsbiksbz1pLnkodCxlLG4pO3JldHVybnt4OnIraS53aWR0aCh0LGUsbikvMix5Om8raS5oZWlnaHQodCxlLG4pLzJ9fSxlLnByb3RvdHlwZS5fcmVjdGFuZ2xlV2lkdGg9ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIE1FdC5DYXRlZ29yeSlyZXR1cm4gdC5yYW5nZUJhbmQoKTt2YXIgZT10PT09dGhpcy54KCkuc2NhbGU/dGhpcy54KCkuYWNjZXNzb3I6dGhpcy55KCkuYWNjZXNzb3Isbj15RXQuc2V0KEVFdC5BcnJheS5mbGF0dGVuKHRoaXMuZGF0YXNldHMoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRhdGEoKS5tYXAoKGZ1bmN0aW9uKG4saSl7cmV0dXJuIGUobixpLHQpLnZhbHVlT2YoKX0pKX0pKSkpLnZhbHVlcygpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuK3R9KSksaT1FRXQuTWF0aC5taW4obiwwKSxyPUVFdC5NYXRoLm1heChuLDApLG89dC5zY2FsZShpKTtyZXR1cm4odC5zY2FsZShyKS1vKS9NYXRoLmFicyhyLWkpfSxlLnByb3RvdHlwZS5fZ2V0RGF0YVRvRHJhdz1mdW5jdGlvbigpe3ZhciB0PW5ldyBFRXQuTWFwLGU9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7cmV0dXJuIHRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgaT1uLmRhdGEoKS5tYXAoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIEVFdC5NYXRoLmlzVmFsaWROdW1iZXIoZS54KHQsaSxuKSkmJkVFdC5NYXRoLmlzVmFsaWROdW1iZXIoZS55KHQsaSxuKSkmJkVFdC5NYXRoLmlzVmFsaWROdW1iZXIoZS53aWR0aCh0LGksbikpJiZFRXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGUuaGVpZ2h0KHQsaSxuKSk/dDpudWxsfSkpO3Quc2V0KG4saSl9KSksdH0sZS5wcm90b3R5cGUuX2FkZGl0aW9uYWxQYWludD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX3JlbmRlckFyZWEuc2VsZWN0QWxsKCIubGFiZWwtYXJlYSIpLnJlbW92ZSgpLHRoaXMuX2xhYmVsc0VuYWJsZWQmJm51bGwhPXRoaXMubGFiZWwoKSYmRUV0LldpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlLl9kcmF3TGFiZWxzKCl9KSx0KX0sZS5wcm90b3R5cGUuX2RyYXdMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5fZ2V0RGF0YVRvRHJhdygpO3RoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihuLGkpe3JldHVybiB0Ll9kcmF3TGFiZWwoZSxuLGkpfSkpfSxlLnByb3RvdHlwZS5fZHJhd0xhYmVsPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCkscj10aGlzLl9yZW5kZXJBcmVhLmFwcGVuZCgiZyIpLmNsYXNzZWQoImxhYmVsLWFyZWEiLCEwKSxvPW5ldyB2RXQuU3ZnQ29udGV4dChyLm5vZGUoKSksYT1uZXcgdkV0LkNhY2hlTWVhc3VyZXIobykscz1uZXcgdkV0LldyaXRlcihhLG8pLGw9dGhpcy54KCkuc2NhbGUucmFuZ2UoKSxjPXRoaXMueSgpLnNjYWxlLnJhbmdlKCksdT1NYXRoLm1pbi5hcHBseShudWxsLGwpLGg9TWF0aC5tYXguYXBwbHkobnVsbCxsKSxkPU1hdGgubWluLmFwcGx5KG51bGwsYykscD1NYXRoLm1heC5hcHBseShudWxsLGMpLGY9dC5nZXQoZSksbT1mLmxlbmd0aCxnPTA7ZzxtO2crKyl7dmFyIF89ZltnXTtpZihudWxsIT1fKXt2YXIgeT0iIit0aGlzLmxhYmVsKCkoXyxnLGUpLHY9YS5tZWFzdXJlKHkpLGI9aS54KF8sZyxlKSx4PWkueShfLGcsZSksdz1pLndpZHRoKF8sZyxlKSxTPWkuaGVpZ2h0KF8sZyxlKTtpZih2LmhlaWdodDw9UyYmdi53aWR0aDw9dyl7dmFyIE09e21pbjpiKz0ody12LndpZHRoKS8yLG1heDpiK3Yud2lkdGh9LEU9e21pbjp4Kz0oUy12LmhlaWdodCkvMixtYXg6eCt2LmhlaWdodH07aWYoTS5taW48dXx8TS5tYXg+aHx8RS5taW48ZHx8RS5tYXg+cCljb250aW51ZTtpZih0aGlzLl9vdmVybGF5TGFiZWwoTSxFLGcsbix0KSljb250aW51ZTt2YXIgVD1pLmZpbGwoXyxnLGUpLEM9MS42KkVFdC5Db2xvci5jb250cmFzdCgid2hpdGUiLFQpPEVFdC5Db2xvci5jb250cmFzdCgiYmxhY2siLFQpLEE9ci5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitiKyIsIit4KyIpIik7QS5jbGFzc2VkKEM/ImRhcmstbGFiZWwiOiJsaWdodC1sYWJlbCIsITApLHMud3JpdGUoeSx2LndpZHRoLHYuaGVpZ2h0LHt4QWxpZ246ImNlbnRlciIseUFsaWduOiJjZW50ZXIifSxBLm5vZGUoKSl9fX19LGUucHJvdG90eXBlLl9vdmVybGF5TGFiZWw9ZnVuY3Rpb24odCxlLG4saSxyKXtmb3IodmFyIG89dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYT10aGlzLmRhdGFzZXRzKCkscz1pO3M8YS5sZW5ndGg7cysrKWZvcih2YXIgbD1hW3NdLGM9ci5nZXQobCksdT1jLmxlbmd0aCxoPXM9PT1pP24rMTowO2g8dTtoKyspaWYoRUV0LkRPTS5pbnRlcnNlY3RzQkJveCh0LGUsdGhpcy5fZW50aXR5QkJveChjW2hdLGgsbCxvKSkpcmV0dXJuITA7cmV0dXJuITF9LGUuX1gyX0tFWT0ieDIiLGUuX1kyX0tFWT0ieTIiLGV9KShnTXQuWFlQbG90KTtnRXQuUmVjdGFuZ2xlPUNFdDt2YXIgQUV0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShBRXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBrRXQ9dU8sTEV0PUltdCxQRXQ9Z3l0LE5FdD1VeHQsSUV0PVd3dCxSRXQ9bk10LE9FdD1fbXQsekV0PU5TdCxERXQ9Wnl0LEJFdD1GZ3QsSEV0PXBNdCxGRXQ9dXd0LFZFdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztlLl9sYWJlbEZvcm1hdHRlcj1QRXQuaWRlbnRpdHkoKSxlLl9sYWJlbHNFbmFibGVkPSExLGUuYWRkQ2xhc3MoInNjYXR0ZXItcGxvdCIpO3ZhciBuPW5ldyBPRXQuRWFzaW5nO24uc3RhcnREZWxheSg1KSxuLnN0ZXBEdXJhdGlvbigyNTApLG4ubWF4VG90YWxEdXJhdGlvbihGRXQuUGxvdC5fQU5JTUFUSU9OX01BWF9EVVJBVElPTiksZS5hbmltYXRvcihIRXQuQW5pbWF0b3IuTUFJTixuKSxlLmF0dHIoIm9wYWNpdHkiLC42KSxlLmF0dHIoImZpbGwiLChuZXcgREV0LkNvbG9yKS5yYW5nZSgpWzBdKSxlLnNpemUoNik7dmFyIGk9TkV0LmNpcmNsZSgpO3JldHVybiBlLnN5bWJvbCgoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxlLl9sYWJlbENvbmZpZz1uZXcgQkV0Lk1hcCxlfXJldHVybiBrRXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2J1aWxkTGlnaHR3ZWlnaHRQbG90RW50aXRpZXM9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gdC5wcm90b3R5cGUuX2J1aWxkTGlnaHR3ZWlnaHRQbG90RW50aXRpZXMuY2FsbCh0aGlzLGUpLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9RkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKG4uc2l6ZSgpKSh0LmRhdHVtLHQuaW5kZXgsdC5kYXRhc2V0KTtyZXR1cm4gdC5kaWFtZXRlcj1lLHR9KSl9LGUucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IElFdC5Qcm94eURyYXdlcigoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFJFdC5TeW1ib2xTVkdEcmF3ZXJ9KSwoZnVuY3Rpb24obil7cmV0dXJuIG5ldyB6RXQuQ2FudmFzRHJhd2VyKG4sUkV0Lm1ha2VTeW1ib2xDYW52YXNEcmF3U3RlcCh0LChmdW5jdGlvbigpe3JldHVybiBGRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IoZS5zeW1ib2woKSl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gRkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKGUuc2l6ZSgpKX0pKSl9KSl9LGUucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbnVsbD09dD90aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9TSVpFX0tFWSk6KHRoaXMuX2JpbmRQcm9wZXJ0eShlLl9TSVpFX0tFWSx0LG4pLHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLnN5bWJvbD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9TWU1CT0xfS0VZKToodGhpcy5fcHJvcGVydHlCaW5kaW5ncy5zZXQoZS5fU1lNQk9MX0tFWSx7YWNjZXNzb3I6dH0pLHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLl9nZW5lcmF0ZURyYXdTdGVwcz1mdW5jdGlvbigpe3ZhciB0PVtdO2lmKHRoaXMuX2FuaW1hdGVPbk5leHRSZW5kZXIoKSl7dmFyIGU9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksbj1GRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zeW1ib2woKSk7ZS5kPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbih0LGUsaSkoMCkobnVsbCl9LHQucHVzaCh7YXR0clRvUHJvamVjdG9yOmUsYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoSEV0LkFuaW1hdG9yLlJFU0VUKX0pfXJldHVybiB0LnB1c2goe2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihIRXQuQW5pbWF0b3IuTUFJTil9KSx0fSxlLnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIGU9dC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpLG49RkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxpPUZFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk7cmV0dXJuIGUueD1uLGUueT1pLGUudHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4idHJhbnNsYXRlKCIrbih0LGUscikrIiwiK2kodCxlLHIpKyIpIn0sZS5kPXRoaXMuX2NvbnN0cnVjdFN5bWJvbEdlbmVyYXRvcigpLGV9LGUucHJvdG90eXBlLl9jb25zdHJ1Y3RTeW1ib2xHZW5lcmF0b3I9ZnVuY3Rpb24oKXt2YXIgdD1GRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zeW1ib2woKSksZT1GRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zaXplKCkpO3JldHVybiBmdW5jdGlvbihuLGkscil7cmV0dXJuIHQobixpLHIpKGUobixpLHIpKShudWxsKX19LGUucHJvdG90eXBlLl9lbnRpdHlCb3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJue3g6dC5wb3NpdGlvbi54LXQuZGlhbWV0ZXIvMix5OnQucG9zaXRpb24ueS10LmRpYW1ldGVyLzIsd2lkdGg6dC5kaWFtZXRlcixoZWlnaHQ6dC5kaWFtZXRlcn19LGUucHJvdG90eXBlLl9lbnRpdHlWaXNpYmxlT25QbG90PWZ1bmN0aW9uKHQsZSl7dmFyIG49e21pbjplLnRvcExlZnQueCxtYXg6ZS5ib3R0b21SaWdodC54fSxpPXttaW46ZS50b3BMZWZ0LnksbWF4OmUuYm90dG9tUmlnaHQueX0scj10aGlzLl9lbnRpdHlCb3VuZHModCk7cmV0dXJuIEJFdC5ET00uaW50ZXJzZWN0c0JCb3gobixpLHIpfSxlLnByb3RvdHlwZS5lbnRpdGllc0F0PWZ1bmN0aW9uKHQpe3ZhciBlPUZFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksbj1GRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpLGk9RkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuc2l6ZSgpKTtyZXR1cm4gdGhpcy5lbnRpdGllcygpLmZpbHRlcigoZnVuY3Rpb24ocil7dmFyIG89ci5kYXR1bSxhPXIuaW5kZXgscz1yLmRhdGFzZXQsbD1lKG8sYSxzKSxjPW4obyxhLHMpLHU9aShvLGEscyk7cmV0dXJuIGwtdS8yPD10LngmJnQueDw9bCt1LzImJmMtdS8yPD10LnkmJnQueTw9Yyt1LzJ9KSl9LGUucHJvdG90eXBlLmxhYmVsc0VuYWJsZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbGFiZWxzRW5hYmxlZDoodGhpcy5fbGFiZWxzRW5hYmxlZD10LHRoaXMuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGUoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0PWZ1bmN0aW9uKG4pe3ZhciBpPXQucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQuY2FsbCh0aGlzLG4pLHI9dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImciKS5jbGFzc2VkKGUuX0xBQkVMX0FSRUFfQ0xBU1MsITApLG89bmV3IExFdC5TdmdDb250ZXh0KHIubm9kZSgpKSxhPW5ldyBMRXQuQ2FjaGVNZWFzdXJlcihvKSxzPW5ldyBMRXQuV3JpdGVyKGEsbyk7cmV0dXJuIHRoaXMuX2xhYmVsQ29uZmlnLnNldChuLHtsYWJlbEFyZWE6cixtZWFzdXJlcjphLHdyaXRlcjpzfSksaX0sZS5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldE5vZGVzLmNhbGwodGhpcyxlKTt2YXIgbj10aGlzLl9sYWJlbENvbmZpZy5nZXQoZSk7bnVsbCE9biYmKG4ubGFiZWxBcmVhLnJlbW92ZSgpLHRoaXMuX2xhYmVsQ29uZmlnLmRlbGV0ZShlKSl9LGUucHJvdG90eXBlLl9hZGRpdGlvbmFsUGFpbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2xhYmVsQ29uZmlnLmdldCh0KS5sYWJlbEFyZWEuc2VsZWN0QWxsKCJnIikucmVtb3ZlKCl9KSksdGhpcy5fbGFiZWxzRW5hYmxlZCYmQkV0LldpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlLl9kcmF3TGFiZWxzKCl9KSx0KX0sZS5wcm90b3R5cGUuX2RyYXdMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5fZ2V0RGF0YVRvRHJhdygpLG49dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7dGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKGkpe2Zvcih2YXIgcj1lLmdldChpKSxvPXIubGVuZ3RoLGE9MDthPG87YSsrKXt2YXIgcz1yW2FdO251bGwhPXMmJnQuX2RyYXdMYWJlbChzLGEsaSxuKX19KSl9LGUucHJvdG90eXBlLl9kcmF3TGFiZWw9ZnVuY3Rpb24odCxlLG4saSl7aWYobnVsbCE9dC5sYWJlbCl7dmFyIHI9dGhpcy5fbGFiZWxDb25maWcuZ2V0KG4pLG89ci5sYWJlbEFyZWEsYT1yLm1lYXN1cmVyLHM9ci53cml0ZXIsbD17eDppLngodCxlLG4pLHk6aS55KHQsZSxuKX0sYz1GRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zaXplKCkpKHQsZSxuKSx1PXRoaXMuX2xhYmVsRm9ybWF0dGVyKHQubGFiZWwsdCxlLG4pLGg9YS5tZWFzdXJlKHUpLGQ9dGhpcy5fY2FsY3VsYXRlTGFiZWxQcm9wZXJ0aWVzKGwsYyxoKSxwPWQuY29udGFpbmVyRGltZW5zaW9ucyxmPWQuYWxpZ25tZW50LG09dGhpcy5fY3JlYXRlTGFiZWxDb250YWluZXIobyxkLmxhYmVsQ29udGFpbmVyT3JpZ2luLGQubGFiZWxPcmlnaW4saCk7cy53cml0ZSh1LHAud2lkdGgscC5oZWlnaHQse3hBbGlnbjpmLngseUFsaWduOmYueX0sbS5ub2RlKCkpfX0sZS5wcm90b3R5cGUuX2NhbGN1bGF0ZUxhYmVsUHJvcGVydGllcz1mdW5jdGlvbih0LG4saSl7cmV0dXJue2NvbnRhaW5lckRpbWVuc2lvbnM6e3dpZHRoOmkud2lkdGgsaGVpZ2h0OmkuaGVpZ2h0fSxsYWJlbENvbnRhaW5lck9yaWdpbjp7eDp0LngtaS53aWR0aC8yLHk6dC55LWkuaGVpZ2h0LzIrKG48aS5oZWlnaHQ/bi8yK2UuX0xBQkVMX01BUkdJTl9GUk9NX0JVQkJMRTowKX0sbGFiZWxPcmlnaW46e3g6dC54LHk6dC55fSxhbGlnbm1lbnQ6e3g6ImNlbnRlciIseToiY2VudGVyIn19fSxlLnByb3RvdHlwZS5fY3JlYXRlTGFiZWxDb250YWluZXI9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dC5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitlLngrIiwgIitlLnkrIikiKTtyZXR1cm4gci5jbGFzc2VkKCJvbi1iYXItbGFiZWwiLCEwKSxyfSxlLl9TSVpFX0tFWT0ic2l6ZSIsZS5fU1lNQk9MX0tFWT0ic3ltYm9sIixlLl9MQUJFTF9BUkVBX0NMQVNTPSJzY2F0dGVyLWxhYmVsLXRleHQtYXJlYSIsZS5fTEFCRUxfTUFSR0lOX0ZST01fQlVCQkxFPTE1LGV9KShnTXQuWFlQbG90KTtBRXQuU2NhdHRlcj1WRXQ7dmFyIFVFdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoVUV0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgakV0PXVPLEdFdD1fbXQsV0V0PVd3dCxxRXQ9UVN0LFlFdD1aeXQsWEV0PWtfdCwkRXQ9dXd0LEtFdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5hZGRDbGFzcygic2VnbWVudC1wbG90IiksZS5hdHRyKCJzdHJva2UiLChuZXcgWUV0LkNvbG9yKS5yYW5nZSgpWzBdKSxlLmF0dHIoInN0cm9rZS13aWR0aCIsIjJweCIpLGV9cmV0dXJuIGpFdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fY3JlYXRlRHJhd2VyPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXRXQuUHJveHlEcmF3ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBxRXQuU2VnbWVudFNWR0RyYXdlcn0pLChmdW5jdGlvbigpe3JldHVybiBYRXQud2FybigiY2FudmFzIHJlbmRlcmVyIGlzIG5vdCBzdXBwb3J0ZWQgb24gU2VnbWVudCBQbG90ISIpLG51bGx9KSl9LGUucHJvdG90eXBlLl9nZW5lcmF0ZURyYXdTdGVwcz1mdW5jdGlvbigpe3JldHVyblt7YXR0clRvUHJvamVjdG9yOnRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGFuaW1hdG9yOm5ldyBHRXQuTnVsbH1dfSxlLnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHk9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvdG90eXBlLl9maWx0ZXJGb3JQcm9wZXJ0eS5jYWxsKHRoaXMsIngyIj09PWU/IngiOiJ5MiI9PT1lPyJ5IjplKX0sZS5wcm90b3R5cGUueD1mdW5jdGlvbihuLGkpe2lmKG51bGw9PW4pcmV0dXJuIHQucHJvdG90eXBlLnguY2FsbCh0aGlzKTtpZihudWxsPT1pKXQucHJvdG90eXBlLnguY2FsbCh0aGlzLG4pO2Vsc2V7dC5wcm90b3R5cGUueC5jYWxsKHRoaXMsbixpKTt2YXIgcj10aGlzLngyKCksbz1yJiZyLmFjY2Vzc29yO251bGwhPW8mJnRoaXMuX2JpbmRQcm9wZXJ0eShlLl9YMl9LRVksbyxpKX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUueDI9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fWDJfS0VZKTt2YXIgbj10aGlzLngoKTtyZXR1cm4gdGhpcy5fYmluZFByb3BlcnR5KGUuX1gyX0tFWSx0LG4mJm4uc2NhbGUpLHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUueT1mdW5jdGlvbihuLGkpe2lmKG51bGw9PW4pcmV0dXJuIHQucHJvdG90eXBlLnkuY2FsbCh0aGlzKTtpZihudWxsPT1pKXQucHJvdG90eXBlLnkuY2FsbCh0aGlzLG4pO2Vsc2V7dC5wcm90b3R5cGUueS5jYWxsKHRoaXMsbixpKTt2YXIgcj10aGlzLnkyKCksbz1yJiZyLmFjY2Vzc29yO251bGwhPW8mJnRoaXMuX2JpbmRQcm9wZXJ0eShlLl9ZMl9LRVksbyxpKX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUueTI9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fWTJfS0VZKTt2YXIgbj10aGlzLnkoKTtyZXR1cm4gdGhpcy5fYmluZFByb3BlcnR5KGUuX1kyX0tFWSx0LG4mJm4uc2NhbGUpLHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciBlPXQucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnMuY2FsbCh0aGlzKTtyZXR1cm4gZS54MT0kRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLGUueDI9bnVsbD09dGhpcy54MigpPyRFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSk6JEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueDIoKSksZS55MT0kRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpLGUueTI9bnVsbD09dGhpcy55MigpPyRFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk6JEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTIoKSksZX0sZS5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmVudGl0eU5lYXJlc3QodCk7cmV0dXJuIG51bGwhPWU/W2VdOltdfSxlLnByb3RvdHlwZS5lbnRpdGllc0luPWZ1bmN0aW9uKHQsZSl7dmFyIG4saTtyZXR1cm4gbnVsbD09ZT8obj17bWluOnQudG9wTGVmdC54LG1heDp0LmJvdHRvbVJpZ2h0Lnh9LGk9e21pbjp0LnRvcExlZnQueSxtYXg6dC5ib3R0b21SaWdodC55fSk6KG49dCxpPWUpLHRoaXMuX2VudGl0aWVzSW50ZXJzZWN0aW5nKG4saSl9LGUucHJvdG90eXBlLl9lbnRpdGllc0ludGVyc2VjdGluZz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1bXSxpPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLHI9dGhpcy5lbnRpdGllcygpLG89ci5sZW5ndGgsYT0wO2E8bzthKyspe3ZhciBzPXJbYV07dGhpcy5fbGluZUludGVyc2VjdHNCb3gocyx0LGUsaSkmJm4ucHVzaChzKX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuX2xpbmVJbnRlcnNlY3RzQm94PWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPXRoaXMsbz1pLngxKHQuZGF0dW0sdC5pbmRleCx0LmRhdGFzZXQpLGE9aS54Mih0LmRhdHVtLHQuaW5kZXgsdC5kYXRhc2V0KSxzPWkueTEodC5kYXR1bSx0LmluZGV4LHQuZGF0YXNldCksbD1pLnkyKHQuZGF0dW0sdC5pbmRleCx0LmRhdGFzZXQpO2lmKGUubWluPD1vJiZvPD1lLm1heCYmbi5taW48PXMmJnM8PW4ubWF4fHxlLm1pbjw9YSYmYTw9ZS5tYXgmJm4ubWluPD1sJiZsPD1uLm1heClyZXR1cm4hMDt2YXIgYz17eDpvLHk6c30sdT17eDphLHk6bH0saD1be3g6ZS5taW4seTpuLm1pbn0se3g6ZS5taW4seTpuLm1heH0se3g6ZS5tYXgseTpuLm1heH0se3g6ZS5tYXgseTpuLm1pbn1dO3JldHVybiBoLmZpbHRlcigoZnVuY3Rpb24odCxlKXtyZXR1cm4gMCE9PWUmJnIuX2xpbmVJbnRlcnNlY3RzU2VnbWVudChjLHUsdCxoW2UtMV0pJiZyLl9saW5lSW50ZXJzZWN0c1NlZ21lbnQodCxoW2UtMV0sYyx1KX0pKS5sZW5ndGg+MH0sZS5wcm90b3R5cGUuX2xpbmVJbnRlcnNlY3RzU2VnbWVudD1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj1mdW5jdGlvbih0LGUsbil7cmV0dXJuKGUueC10LngpKihuLnktZS55KS0oZS55LXQueSkqKG4ueC1lLngpfTtyZXR1cm4gcih0LGUsbikqcih0LGUsaSk8MH0sZS5fWDJfS0VZPSJ4MiIsZS5fWTJfS0VZPSJ5MiIsZX0pKGdNdC5YWVBsb3QpO1VFdC5TZWdtZW50PUtFdDt2YXIgWkV0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShaRXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBKRXQ9dU8sUUV0PUVkdCx0VHQ9X210LGVUdD1kd3QsblR0PUZndCxpVHQ9dXd0LHJUdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fc3RhY2tpbmdSZXN1bHQ9ZVR0Lm1lbVRodW5rKChmdW5jdGlvbigpe3JldHVybiBlLmRhdGFzZXRzKCl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS54KCkuYWNjZXNzb3J9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS55KCkuYWNjZXNzb3J9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS5fc3RhY2tpbmdPcmRlcn0pLChmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gblR0LlN0YWNraW5nLnN0YWNrKHQsZSxuLGkpfSkpLGUuX3N0YWNrZWRFeHRlbnQ9ZVR0Lm1lbVRodW5rKGUuX3N0YWNraW5nUmVzdWx0LChmdW5jdGlvbigpe3JldHVybiBlLngoKS5hY2Nlc3Nvcn0pLChmdW5jdGlvbigpe3JldHVybiBlLl9maWx0ZXJGb3JQcm9wZXJ0eSgieSIpfSksKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gblR0LlN0YWNraW5nLnN0YWNrZWRFeHRlbnQodCxlLG4pfSkpLGUuX2Jhc2VsaW5lVmFsdWU9MCxlLl9zdGFja2luZ09yZGVyPSJib3R0b211cCIsZS5hZGRDbGFzcygic3RhY2tlZC1hcmVhLXBsb3QiKSxlLl9iYXNlbGluZVZhbHVlUHJvdmlkZXI9ZnVuY3Rpb24oKXtyZXR1cm5bZS5fYmFzZWxpbmVWYWx1ZV19LGUuY3JvcHBlZFJlbmRlcmluZ0VuYWJsZWQoITEpLGV9cmV0dXJuIEpFdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT90LnByb3RvdHlwZS5jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZC5jYWxsKHRoaXMpOmU/KG5UdC5XaW5kb3cud2FybigiV2FybmluZzogU3RhY2tlZCBBcmVhIFBsb3QgZG9lcyBub3Qgc3VwcG9ydCBjcm9wcGVkIHJlbmRlcmluZy4iKSx0aGlzKTp0LnByb3RvdHlwZS5jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZC5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9nZXRBbmltYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHRUdC5OdWxsfSxlLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9iYXNlbGluZT10aGlzLl9yZW5kZXJBcmVhLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImJhc2VsaW5lIiwhMCl9LGUucHJvdG90eXBlLng9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbnVsbD09ZT90LnByb3RvdHlwZS54LmNhbGwodGhpcyk6KG51bGw9PW4/dC5wcm90b3R5cGUueC5jYWxsKHRoaXMsZSk6dC5wcm90b3R5cGUueC5jYWxsKHRoaXMsZSxuKSx0aGlzLl9jaGVja1NhbWVEb21haW4oKSx0aGlzKX0sZS5wcm90b3R5cGUueT1mdW5jdGlvbihlLG4pe3JldHVybiBudWxsPT1lP3QucHJvdG90eXBlLnkuY2FsbCh0aGlzKToobnVsbD09bj90LnByb3RvdHlwZS55LmNhbGwodGhpcyxlKTp0LnByb3RvdHlwZS55LmNhbGwodGhpcyxlLG4pLHRoaXMuX2NoZWNrU2FtZURvbWFpbigpLHRoaXMpfSxlLnByb3RvdHlwZS55T2Zmc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fc3RhY2tpbmdSZXN1bHQoKTtpZihudWxsIT1uKXt2YXIgaT1uLmdldCh0KTtpZihudWxsIT1pKXt2YXIgcj1pLmdldChTdHJpbmcoZSkpO2lmKG51bGwhPXIpcmV0dXJuIHIub2Zmc2V0fX19LGUucHJvdG90eXBlLnN0YWNraW5nT3JkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fc3RhY2tpbmdPcmRlcjoodGhpcy5fc3RhY2tpbmdPcmRlcj10LHRoaXMuX29uRGF0YXNldFVwZGF0ZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5kb3duc2FtcGxpbmdFbmFibGVkPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3QucHJvdG90eXBlLmRvd25zYW1wbGluZ0VuYWJsZWQuY2FsbCh0aGlzKTooblR0LldpbmRvdy53YXJuKCJXYXJuaW5nOiBTdGFja2VkIEFyZWEgUGxvdCBkb2VzIG5vdCBzdXBwb3J0IGRvd25zYW1wbGluZyIpLHRoaXMpfSxlLnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy55KCkuc2NhbGUuc2NhbGUodGhpcy5fYmFzZWxpbmVWYWx1ZSksZT17eDE6MCx5MTp0LHgyOnRoaXMud2lkdGgoKSx5Mjp0fTt0aGlzLl9nZXRBbmltYXRvcigiYmFzZWxpbmUiKS5hbmltYXRlKHRoaXMuX2Jhc2VsaW5lLGUpfSxlLnByb3RvdHlwZS5fdXBkYXRlWVNjYWxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy55KCksZT10JiZ0LnNjYWxlO251bGwhPWUmJihlLmFkZFBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXIodGhpcy5fYmFzZWxpbmVWYWx1ZVByb3ZpZGVyKSxlLmFkZEluY2x1ZGVkVmFsdWVzUHJvdmlkZXIodGhpcy5fYmFzZWxpbmVWYWx1ZVByb3ZpZGVyKSl9LGUucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2hlY2tTYW1lRG9tYWluKCksdC5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZS5jYWxsKHRoaXMpLHRoaXN9LGUucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eT1mdW5jdGlvbihlKXtyZXR1cm4ieSI9PT1lP1t0aGlzLl9zdGFja2VkRXh0ZW50KCldOnQucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eS5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9jaGVja1NhbWVEb21haW49ZnVuY3Rpb24oKXtpZih0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKSl7dmFyIHQ9dGhpcy5kYXRhc2V0cygpLG49dGhpcy54KCkuYWNjZXNzb3IsaT10Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFFFdC5zZXQodC5kYXRhKCkubWFwKChmdW5jdGlvbihlLGkpe3JldHVybiBuVHQuU3RhY2tpbmcubm9ybWFsaXplS2V5KG4oZSxpLHQpKX0pKSkudmFsdWVzKCl9KSkscj1lLl9kb21haW5LZXlzKHQsbik7aS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGghPT1yLmxlbmd0aH0pKSYmblR0LldpbmRvdy53YXJuKCJ0aGUgZG9tYWlucyBhY3Jvc3MgdGhlIGRhdGFzZXRzIGFyZSBub3QgdGhlIHNhbWUuIFBsb3QgbWF5IHByb2R1Y2UgdW5pbnRlbmRlZCBiZWhhdmlvci4iKX19LGUuX2RvbWFpbktleXM9ZnVuY3Rpb24odCxlKXt2YXIgbj1RRXQuc2V0KCk7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBpPXQuZGF0YSgpLHI9aS5sZW5ndGgsbz0wO288cjtvKyspbi5hZGQoZShpW29dLG8sdCkpfSkpLG4udmFsdWVzKCl9LGUucHJvdG90eXBlLl9jb29yZGluYXRlUHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1pVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLG49dGhpcy55KCkuYWNjZXNzb3IsaT10aGlzLngoKS5hY2Nlc3NvcixyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gblR0LlN0YWNraW5nLm5vcm1hbGl6ZUtleShpKHQsZSxuKSl9LG89dGhpcy5fc3RhY2tpbmdSZXN1bHQoKTtyZXR1cm5bZSxmdW5jdGlvbihlLGksYSl7dmFyIHM9K24oZSxpLGEpLGw9by5nZXQoYSkuZ2V0KHIoZSxpLGEpKS5vZmZzZXQ7cmV0dXJuIHQueSgpLnNjYWxlLnNjYWxlKHMrbCl9LGZ1bmN0aW9uKGUsbixpKXt2YXIgYT1vLmdldChpKS5nZXQocihlLG4saSkpLm9mZnNldDtyZXR1cm4gdC55KCkuc2NhbGUuc2NhbGUoYSl9XX0sZS5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciBlPXQucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnMuY2FsbCh0aGlzKSxuPXRoaXMuX2Nvb3JkaW5hdGVQcm9qZWN0b3JzKCk7cmV0dXJuIGUuZD10aGlzLl9jb25zdHJ1Y3RBcmVhUHJvamVjdG9yKG5bMF0sblsxXSxuWzJdKSxlfSxlLnByb3RvdHlwZS5fcGl4ZWxQb2ludD1mdW5jdGlvbihlLG4saSl7dmFyIHI9dC5wcm90b3R5cGUuX3BpeGVsUG9pbnQuY2FsbCh0aGlzLGUsbixpKSxvPXRoaXMueCgpLmFjY2Vzc29yKGUsbixpKSxhPXRoaXMueSgpLmFjY2Vzc29yKGUsbixpKSxzPXRoaXMueSgpLnNjYWxlLnNjYWxlKCthK3RoaXMuX3N0YWNraW5nUmVzdWx0KCkuZ2V0KGkpLmdldChuVHQuU3RhY2tpbmcubm9ybWFsaXplS2V5KG8pKS5vZmZzZXQpO3JldHVybnt4OnIueCx5OnN9fSxlfSkoZk10LkFyZWEpO1pFdC5TdGFja2VkQXJlYT1yVHQ7dmFyIG9UdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkob1R0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYVR0PXVPLHNUdD1JbXQsbFR0PWd5dCxjVHQ9ZHd0LHVUdD1GZ3QsaFR0PVhNdCxkVHQ9dXd0LHBUdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2b2lkIDA9PT1lJiYoZT0idmVydGljYWwiKTt2YXIgbj10LmNhbGwodGhpcyxlKXx8dGhpcztyZXR1cm4gbi5fZXh0cmVtYUZvcm1hdHRlcj1sVHQuaWRlbnRpdHkoKSxuLl9zdGFja2luZ1Jlc3VsdD1jVHQubWVtVGh1bmsoKGZ1bmN0aW9uKCl7cmV0dXJuIG4uZGF0YXNldHMoKX0pLChmdW5jdGlvbigpe3JldHVybiBuLnBvc2l0aW9uKCkuYWNjZXNzb3J9KSwoZnVuY3Rpb24oKXtyZXR1cm4gbi5sZW5ndGgoKS5hY2Nlc3Nvcn0pLChmdW5jdGlvbigpe3JldHVybiBuLl9zdGFja2luZ09yZGVyfSksKGZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiB1VHQuU3RhY2tpbmcuc3RhY2sodCxlLG4saSl9KSksbi5fc3RhY2tlZEV4dGVudD1jVHQubWVtVGh1bmsobi5fc3RhY2tpbmdSZXN1bHQsKGZ1bmN0aW9uKCl7cmV0dXJuIG4ucG9zaXRpb24oKS5hY2Nlc3Nvcn0pLChmdW5jdGlvbigpe3JldHVybiBuLl9maWx0ZXJGb3JQcm9wZXJ0eShuLl9pc1ZlcnRpY2FsPyJ5IjoieCIpfSksKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdVR0LlN0YWNraW5nLnN0YWNrZWRFeHRlbnQodCxlLG4pfSkpLG4uYWRkQ2xhc3MoInN0YWNrZWQtYmFyLXBsb3QiKSxuLl9zdGFja2luZ09yZGVyPSJib3R0b211cCIsbn1yZXR1cm4gYVR0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLnN0YWNraW5nT3JkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fc3RhY2tpbmdPcmRlcjoodGhpcy5fc3RhY2tpbmdPcmRlcj10LHRoaXMuX29uRGF0YXNldFVwZGF0ZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5leHRyZW1hRm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl9leHRyZW1hRm9ybWF0dGVyOih0aGlzLl9leHRyZW1hRm9ybWF0dGVyPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fbGFiZWxBcmVhPXRoaXMuX3JlbmRlckFyZWEuYXBwZW5kKCJnIikuY2xhc3NlZChoVHQuQmFyLl9MQUJFTF9BUkVBX0NMQVNTLCEwKTt2YXIgZT1uZXcgc1R0LlN2Z0NvbnRleHQodGhpcy5fbGFiZWxBcmVhLm5vZGUoKSk7dGhpcy5fbWVhc3VyZXI9bmV3IHNUdC5DYWNoZU1lYXN1cmVyKGUpLHRoaXMuX3dyaXRlcj1uZXcgc1R0LldyaXRlcih0aGlzLl9tZWFzdXJlcixlKX0sZS5wcm90b3R5cGUuX2RyYXdMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3QucHJvdG90eXBlLl9kcmF3TGFiZWxzLmNhbGwodGhpcyksdGhpcy5fbGFiZWxBcmVhLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpO3ZhciBpPSt0aGlzLmJhc2VsaW5lVmFsdWUoKSxyPXRoaXMucG9zaXRpb24oKS5zY2FsZSxvPXRoaXMubGVuZ3RoKCkuc2NhbGUsYT11VHQuU3RhY2tpbmcuc3RhY2tlZEV4dGVudHModGhpcy5fc3RhY2tpbmdSZXN1bHQoKSkscz1hLm1pbmltdW1FeHRlbnRzLGw9W10sYz1mdW5jdGlvbih0LGUpe3ZhciBhPW4uX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yKCkscz1uLndpZHRoKCksYz1uLmhlaWdodCgpO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7aWYodC5leHRlbnQhPT1pKXt2YXIgdT1uLmV4dHJlbWFGb3JtYXR0ZXIoKSh0LmV4dGVudCksaD1uLl9tZWFzdXJlci5tZWFzdXJlKHUpLGQ9dC5zdGFja2VkRGF0dW0scD1kLm9yaWdpbmFsRGF0dW0sZj1kLm9yaWdpbmFsSW5kZXgsbT1kLm9yaWdpbmFsRGF0YXNldDtpZighbi5faXNEYXR1bU9uU2NyZWVuKGEscyxjLHAsZixtKSlyZXR1cm47dmFyIGc9ZFR0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKG4uYXR0cihoVHQuQmFyLl9CQVJfVEhJQ0tORVNTX0tFWSkpKHAsZixtKSxfPW8uc2NhbGUodC5leHRlbnQpLHk9bi5fZ2V0UG9zaXRpb25BdHRyKHIuc2NhbGUodC5heGlzVmFsdWUpLGcpK2cvMix2PWUobi5faXNWZXJ0aWNhbD97eDp5LHk6X306e3g6Xyx5Onl9LGgsZyksYj0oZnVuY3Rpb24odCxlLGkpe3ZhciByPWUudG9wTGVmdCxvPXIueCxhPXIueSxzPWUuYm90dG9tUmlnaHQueC1lLnRvcExlZnQueCxsPWUuYm90dG9tUmlnaHQueS1lLnRvcExlZnQueSxjPW4uX2lzVmVydGljYWw/cz5pOmw+aTtpZighYyl7dmFyIHU9bi5fbGFiZWxBcmVhLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK28rIiwgIithKyIpIik7dS5jbGFzc2VkKCJzdGFja2VkLWJhci1sYWJlbCIsITApLG4uX3dyaXRlci53cml0ZSh0LHMsbCx7eEFsaWduOiJjZW50ZXIiLHlBbGlnbjoiY2VudGVyIn0sdS5ub2RlKCkpfXJldHVybiBjfSkodSx7dG9wTGVmdDp2LGJvdHRvbVJpZ2h0Ont4OnYueCtoLndpZHRoLHk6di55K2guaGVpZ2h0fX0sZyk7bC5wdXNoKGIpfX0pKX07YyhhLm1heGltdW1FeHRlbnRzLChmdW5jdGlvbih0LGkscil7dmFyIG89bi5faXNWZXJ0aWNhbD9pLndpZHRoOmkuaGVpZ2h0O3JldHVybnt4Om4uX2lzVmVydGljYWw/dC54LW8vMjp0LngrZS5fRVhUUkVNQV9MQUJFTF9NQVJHSU5fRlJPTV9CQVIseTpuLl9pc1ZlcnRpY2FsP3QueS0obi5faXNWZXJ0aWNhbD9pLmhlaWdodDppLndpZHRoKTp0Lnktby8yfX0pKSxjKHMsKGZ1bmN0aW9uKHQsaSxyKXt2YXIgbz1uLl9pc1ZlcnRpY2FsP2kud2lkdGg6aS5oZWlnaHQ7cmV0dXJue3g6bi5faXNWZXJ0aWNhbD90Lngtby8yOnQueC0obi5faXNWZXJ0aWNhbD9pLmhlaWdodDppLndpZHRoKSx5Om4uX2lzVmVydGljYWw/dC55K2UuX0VYVFJFTUFfTEFCRUxfTUFSR0lOX0ZST01fQkFSOnQueS1vLzJ9fSkpLGwuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSkmJnRoaXMuX2xhYmVsQXJlYS5zZWxlY3RBbGwoImciKS5yZW1vdmUoKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXQucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvci5jYWxsKHRoaXMpLGk9dGhpcy5faXNWZXJ0aWNhbD8ieSI6IngiLHI9dGhpcy5sZW5ndGgoKS5zY2FsZSxvPXRoaXMubGVuZ3RoKCkuYWNjZXNzb3IsYT10aGlzLnBvc2l0aW9uKCkuYWNjZXNzb3Iscz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHVUdC5TdGFja2luZy5ub3JtYWxpemVLZXkoYSh0LGUsbikpfSxsPXRoaXMuX3N0YWNraW5nUmVzdWx0KCksYz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHIuc2NhbGUobC5nZXQobikuZ2V0KHModCxlLG4pKS5vZmZzZXQpfSx1PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gci5zY2FsZSgrbyh0LGUsbikrbC5nZXQobikuZ2V0KHModCxlLG4pKS5vZmZzZXQpfSxoPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTWF0aC5hYnModSh0LGUsbiktYyh0LGUsbikpfTtuW3RoaXMuX2lzVmVydGljYWw/ImhlaWdodCI6IndpZHRoIl09aDt2YXIgZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuK28odCxlLG4pPDA/Yyh0LGUsbik6dSh0LGUsbil9O3JldHVybiBuW2ldPWZ1bmN0aW9uKHQsbixpKXtyZXR1cm4gZS5faXNWZXJ0aWNhbD9kKHQsbixpKTpkKHQsbixpKS1oKHQsbixpKX0sbn0sZS5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvclByb3BlcnR5PWZ1bmN0aW9uKGUpe3JldHVybiBlPT09KHRoaXMuX2lzVmVydGljYWw/InkiOiJ4Iik/W3RoaXMuX3N0YWNrZWRFeHRlbnQoKV06dC5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvclByb3BlcnR5LmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sZS5fRVhUUkVNQV9MQUJFTF9NQVJHSU5fRlJPTV9CQVI9NSxlfSkoaFR0LkJhcik7b1R0LlN0YWNrZWRCYXI9cFR0O3ZhciBmVHQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KGZUdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG1UdD11TyxnVHQ9Rmd0LF9UdD11d3QseVR0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9jb25uZWN0b3JzRW5hYmxlZD0hMSxlLmFkZENsYXNzKCJ3YXRlcmZhbGwtcGxvdCIpLGV9cmV0dXJuIG1UdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5jb25uZWN0b3JzRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9jb25uZWN0b3JzRW5hYmxlZDoodGhpcy5fY29ubmVjdG9yc0VuYWJsZWQ9dCx0aGlzKX0sZS5wcm90b3R5cGUudG90YWw9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fVE9UQUxfS0VZKToodGhpcy5fYmluZFByb3BlcnR5KGUuX1RPVEFMX0tFWSx0LG51bGwpLHRoaXMpfSxlLnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5fY29ubmVjdG9yQXJlYS5zZWxlY3RBbGwoImxpbmUiKS5yZW1vdmUoKSx0aGlzLl9jb25uZWN0b3JzRW5hYmxlZCYmZ1R0LldpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlLl9kcmF3Q29ubmVjdG9ycygpfSksdCl9LGUucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQ9ZnVuY3Rpb24obil7dmFyIGk9dC5wcm90b3R5cGUuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldC5jYWxsKHRoaXMsbik7cmV0dXJuIHRoaXMuX2Nvbm5lY3RvckFyZWE9dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImciKS5jbGFzc2VkKGUuX0NPTk5FQ1RPUl9BUkVBX0NMQVNTLCEwKSxpfSxlLnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHk9ZnVuY3Rpb24oZSl7cmV0dXJuInkiPT09ZT9bdGhpcy5fZXh0ZW50XTp0LnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHkuY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3I9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLGk9dC5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yLmNhbGwodGhpcykscj10aGlzLnkoKS5zY2FsZSxvPV9UdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnRvdGFsKCkpO3JldHVybiBudWxsPT10aGlzLmF0dHIoInkiKSYmKGkueT1mdW5jdGlvbih0LGUsaSl7dmFyIGE9bi55KCkuYWNjZXNzb3IodCxlLGkpO2lmKG8odCxlLGkpKXJldHVybiBNYXRoLm1pbihyLnNjYWxlKGEpLHIuc2NhbGUoMCkpO3ZhciBzPW4uX3N1YnRvdGFsc1tlXTtpZigwPT09ZSlyZXR1cm4gci5zY2FsZShhPDA/cy1hOnMpO3ZhciBsPW4uX3N1YnRvdGFsc1tlLTFdO3JldHVybiByLnNjYWxlKHM+bD9zOmwpfSksbnVsbD09dGhpcy5hdHRyKCJoZWlnaHQiKSYmKGkuaGVpZ2h0PWZ1bmN0aW9uKHQsZSxpKXt2YXIgYT1vKHQsZSxpKSxzPW4ueSgpLmFjY2Vzc29yKHQsZSxpKTtpZihhKXJldHVybiBNYXRoLmFicyhyLnNjYWxlKHMpLXIuc2NhbGUoMCkpO3ZhciBsPW4uX3N1YnRvdGFsc1tlXTtpZigwPT09ZSlyZXR1cm4gTWF0aC5hYnMoci5zY2FsZShsKS1yLnNjYWxlKGwtcykpO3ZhciBjPW4uX3N1YnRvdGFsc1tlLTFdO3JldHVybiBNYXRoLmFicyhyLnNjYWxlKGwpLXIuc2NhbGUoYykpfSksaS5jbGFzcz1mdW5jdGlvbih0LGkscil7dmFyIGE9IiI7cmV0dXJuIG51bGwhPW4uYXR0cigiY2xhc3MiKSYmKGE9bi5hdHRyKCJjbGFzcyIpLmFjY2Vzc29yKHQsaSxyKSsiICIpLG8odCxpLHIpP2ErZS5fQkFSX1RPVEFMX0NMQVNTOmErKG4ueSgpLmFjY2Vzc29yKHQsaSxyKT4wP2UuX0JBUl9HUk9XVEhfQ0xBU1M6ZS5fQkFSX0RFQ0xJTkVfQ0xBU1MpfSxpfSxlLnByb3RvdHlwZS5fb25EYXRhc2V0VXBkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZVN1YnRvdGFscygpLHQucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGUuY2FsbCh0aGlzKSx0aGlzfSxlLnByb3RvdHlwZS5fY2FsY3VsYXRlU3VidG90YWxzQW5kRXh0ZW50PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1OdW1iZXIuTUFYX1ZBTFVFLG49TnVtYmVyLk1JTl9WQUxVRSxpPTAscj0hMSxvPXQuZGF0YSgpLGE9by5sZW5ndGgscz0wO3M8YTtzKyspe3ZhciBsPW9bc10sYz10aGlzLnkoKS5hY2Nlc3NvcihsLHMsdCksdT10aGlzLnRvdGFsKCkuYWNjZXNzb3IobCxzLHQpO2lmKHUmJjAhPT1zfHwoaSs9YyksdGhpcy5fc3VidG90YWxzLnB1c2goaSksaTxlJiYoZT1pKSxpPm4mJihuPWkpLHUmJihjPGUmJihlPWMpLGM+biYmKG49YykpLCFyJiZ1KXtmb3IodmFyIGg9Yy1pLGQ9MDtkPHRoaXMuX3N1YnRvdGFscy5sZW5ndGg7ZCsrKXRoaXMuX3N1YnRvdGFsc1tkXSs9aDtyPSEwLGkrPWgsZSs9aCxuKz1ofX10aGlzLl9leHRlbnQ9W2Usbl19LGUucHJvdG90eXBlLl9kcmF3Q29ubmVjdG9ycz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxuPXRoaXMuZGF0YXNldHMoKVswXSxpPTE7aTxuLmRhdGEoKS5sZW5ndGg7aSsrKXt2YXIgcj1pLTEsbz1uLmRhdGEoKVtpXSxhPW4uZGF0YSgpW3JdLHM9dC54KGEscixuKSxsPXQueChvLGksbikrdC53aWR0aChvLGksbiksYz10LnkobyxpLG4pOyh0aGlzLl9zdWJ0b3RhbHNbaV0+MCYmdGhpcy5fc3VidG90YWxzW2ldPnRoaXMuX3N1YnRvdGFsc1tyXXx8dGhpcy5fc3VidG90YWxzW2ldPDAmJnRoaXMuX3N1YnRvdGFsc1tpXT49dGhpcy5fc3VidG90YWxzW3JdKSYmKGM9dC55KG8saSxuKSt0LmhlaWdodChvLGksbikpLHRoaXMuX2Nvbm5lY3RvckFyZWEuYXBwZW5kKCJsaW5lIikuY2xhc3NlZChlLl9DT05ORUNUT1JfQ0xBU1MsITApLmF0dHIoIngxIixzKS5hdHRyKCJ4MiIsbCkuYXR0cigieTEiLGMpLmF0dHIoInkyIixjKX19LGUucHJvdG90eXBlLl91cGRhdGVTdWJ0b3RhbHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmRhdGFzZXRzKCk7aWYodC5sZW5ndGg+MCl7dmFyIGU9dFt0Lmxlbmd0aC0xXTt0aGlzLl9zdWJ0b3RhbHM9bmV3IEFycmF5LHRoaXMuX2NhbGN1bGF0ZVN1YnRvdGFsc0FuZEV4dGVudChlKX19LGUuX0JBUl9ERUNMSU5FX0NMQVNTPSJ3YXRlcmZhbGwtZGVjbGluZSIsZS5fQkFSX0dST1dUSF9DTEFTUz0id2F0ZXJmYWxsLWdyb3d0aCIsZS5fQkFSX1RPVEFMX0NMQVNTPSJ3YXRlcmZhbGwtdG90YWwiLGUuX0NPTk5FQ1RPUl9DTEFTUz0iY29ubmVjdG9yIixlLl9DT05ORUNUT1JfQVJFQV9DTEFTUz0iY29ubmVjdG9yLWFyZWEiLGUuX1RPVEFMX0tFWT0idG90YWwiLGV9KShYTXQuQmFyKTtmVHQuV2F0ZXJmYWxsPXlUdCwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT11TztlLl9fZXhwb3J0U3RhcihmTXQsdCksZS5fX2V4cG9ydFN0YXIoWE10LHQpLGUuX19leHBvcnRTdGFyKGh3dCx0KSxlLl9fZXhwb3J0U3RhcigkTXQsdCksZS5fX2V4cG9ydFN0YXIobU10LHQpLGUuX19leHBvcnRTdGFyKG5FdCx0KSxlLl9fZXhwb3J0U3RhcihnRXQsdCksZS5fX2V4cG9ydFN0YXIoQUV0LHQpLGUuX19leHBvcnRTdGFyKFVFdCx0KSxlLl9fZXhwb3J0U3RhcihaRXQsdCksZS5fX2V4cG9ydFN0YXIob1R0LHQpLGUuX19leHBvcnRTdGFyKGZUdCx0KX0pKHBNdCk7dmFyIHZUdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkodlR0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx2VHQudmVyc2lvbj0iMy45LjAiLChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU87dC5BbmltYXRvcnM9X210LHQuQXhlcz1QbXQsdC5Db21wb25lbnRzPWlidCx0LkNvbmZpZ3M9TF90LHQuRm9ybWF0dGVycz1neXQsdC5SZW5kZXJDb250cm9sbGVyPUhndCx0LlJlbmRlclBvbGljaWVzPW55dCx0LlN5bWJvbEZhY3Rvcmllcz1VeHQsdC5EaXNwYXRjaGVycz1zYnQsdC5EcmF3ZXJzPU5TdCx0LkludGVyYWN0aW9ucz1vYnQsdC5QbG90cz1wTXQsdC5TY2FsZXM9Wnl0LHQuVXRpbHM9Rmd0LGUuX19leHBvcnRTdGFyKG15dCx0KSx0LlRpbWVJbnRlcnZhbD1LeXQuVGltZUludGVydmFsLGUuX19leHBvcnRTdGFyKEJndCx0KSxlLl9fZXhwb3J0U3Rhcih4eHQsdCksZS5fX2V4cG9ydFN0YXIoZ3d0LHQpLHQudmVyc2lvbj12VHQudmVyc2lvbixlLl9fZXhwb3J0U3RhcihjYnQsdCksZS5fX2V4cG9ydFN0YXIoV3d0LHQpLGUuX19leHBvcnRTdGFyKHdidCx0KSxlLl9fZXhwb3J0U3RhcihJYnQsdCksZS5fX2V4cG9ydFN0YXIoZ010LHQpLGUuX19leHBvcnRTdGFyKHV3dCx0KSxlLl9fZXhwb3J0U3RhcihJdnQsdCksZS5fX2V4cG9ydFN0YXIoaHZ0LHQpfSkock8pO2NvbnN0IGJUdD1be2NoYXJhY3Rlcjoi4pe8IixtZXRob2Q6ck8uU3ltYm9sRmFjdG9yaWVzLnNxdWFyZX0se2NoYXJhY3Rlcjoi4peGIixtZXRob2Q6ck8uU3ltYm9sRmFjdG9yaWVzLmRpYW1vbmR9LHtjaGFyYWN0ZXI6IuKWsiIsbWV0aG9kOnJPLlN5bWJvbEZhY3Rvcmllcy50cmlhbmdsZX0se2NoYXJhY3Rlcjoi4piFIixtZXRob2Q6ck8uU3ltYm9sRmFjdG9yaWVzLnN0YXJ9LHtjaGFyYWN0ZXI6IuKcmiIsbWV0aG9kOnJPLlN5bWJvbEZhY3Rvcmllcy5jcm9zc31dO3ZhciB4VHQ7ZnVuY3Rpb24gd1R0KHQpe3JldHVybiBlPT57bGV0IG4saT1NYXRoLmFicyhlKTtyZXR1cm4gaTwxZS0xNSYmKGk9MCksbj1teShpPj0xZTR8fGk+MCYmaTwuMDE/Ii4iK3QrIn5lIjoiLiIrdCsifmciKSxuKGUpfX0hKGZ1bmN0aW9uKHQpe3QuU1RFUD0ic3RlcCIsdC5SRUxBVElWRT0icmVsYXRpdmUiLHQuV0FMTF9USU1FPSJ3YWxsX3RpbWUifSkoeFR0fHwoeFR0PXt9KSk7Y29uc3QgU1R0PW15KCIuNH5zIik7ZnVuY3Rpb24gTVR0KCl7bGV0IHQ9bmV3IHJPLlNjYWxlcy5MaW5lYXI7dC50aWNrR2VuZXJhdG9yKHJPLlNjYWxlcy5UaWNrR2VuZXJhdG9ycy5pbnRlZ2VyVGlja0dlbmVyYXRvcigpKTtsZXQgZT1uZXcgck8uQXhlcy5OdW1lcmljKHQsImJvdHRvbSIpO3JldHVybiBlLmZvcm1hdHRlcihTVHQpLHtzY2FsZTp0LGF4aXM6ZSxhY2Nlc3Nvcjp0PT50LnN0ZXB9fWxldCBFVHQ9ck8uRm9ybWF0dGVycy50aW1lKCIlYSAlYiAlZSwgJUg6JU06JVMiKSxUVHQ9KHQsZSxuKT0+e2lmKG51bGwhPXQucmVsYXRpdmUpcmV0dXJuIHQucmVsYXRpdmU7bGV0IGk9bi5kYXRhKCk7cmV0dXJuKCt0LndhbGxfdGltZS0oaS5sZW5ndGg+MD8raVswXS53YWxsX3RpbWU6MCkpLzM2ZTV9LENUdD10PT57bGV0IGU9IiIsbj1NYXRoLmZsb29yKHQvMjQpO3QtPTI0Km4sbiYmKGUrPW4rImQgIik7bGV0IGk9TWF0aC5mbG9vcih0KTt0LT1pLHQqPTYwLChpfHxuKSYmKGUrPWkrImggIik7bGV0IHI9TWF0aC5mbG9vcih0KTtyZXR1cm4gdC09cix0Kj02MCwocnx8aXx8bikmJihlKz1yKyJtICIpLGUrTWF0aC5mbG9vcih0KSsicyJ9O2Z1bmN0aW9uIEFUdCh0KXtzd2l0Y2godCl7Y2FzZSB4VHQuU1RFUDpyZXR1cm4gTVR0KCk7Y2FzZSB4VHQuV0FMTF9USU1FOnJldHVybihmdW5jdGlvbiBlKCl7bGV0IHQ9bmV3IHJPLlNjYWxlcy5UaW1lO3JldHVybntzY2FsZTp0LGF4aXM6bmV3IHJPLkF4ZXMuVGltZSh0LCJib3R0b20iKSxhY2Nlc3Nvcjp0PT50LndhbGxfdGltZX19KSgpO2Nhc2UgeFR0LlJFTEFUSVZFOnJldHVybihmdW5jdGlvbiBuKCl7bGV0IHQ9bmV3IHJPLlNjYWxlcy5MaW5lYXI7cmV0dXJue3NjYWxlOnQsYXhpczpuZXcgck8uQXhlcy5OdW1lcmljKHQsImJvdHRvbSIpLGFjY2Vzc29yOlRUdH19KSgpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHhUeXBlOiAiK3QpfX12YXIga1R0O2Z1bmN0aW9uIExUdCh0KXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmxvYWRLZXk9IiIsdGhpcy5kYXRhVG9Mb2FkPVtdLHRoaXMuZ2V0RGF0YUxvYWROYW1lPXQ9PlN0cmluZyh0KSx0aGlzLmRhdGFMb2FkaW5nPSExLHRoaXMuZGF0YUxvYWRlZEF0TGVhc3RPbmNlPSExLHRoaXMuX2lzQ29ubmVjdGVkPSExLHRoaXMuX2RhdGFMb2FkU3RhdGU9bmV3IE1hcCx0aGlzLl9jYW5jZWxsZXI9bmV3IFhSLHRoaXMuX2xvYWREYXRhQXN5bmM9bnVsbCx0aGlzLl9sb2FkRGF0YT1TZS5leHBvcnRzLnRocm90dGxlKHRoaXMuX2xvYWREYXRhSW1wbCwxMDAse2xlYWRpbmc6ITAsdHJhaWxpbmc6ITB9KX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5faXNDb25uZWN0ZWQ9ITB9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX2lzQ29ubmVjdGVkPSExfXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnthY3RpdmU6e3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX2xvYWREYXRhSWZBY3RpdmUifSxfaXNDb25uZWN0ZWQ6e3R5cGU6Qm9vbGVhbn0sbG9hZEtleTp7dHlwZTpTdHJpbmd9LGRhdGFUb0xvYWQ6e3R5cGU6QXJyYXl9LGdldERhdGFMb2FkTmFtZTp7dHlwZTpPYmplY3R9LGxvYWREYXRhQ2FsbGJhY2s6e3R5cGU6T2JqZWN0fSxyZXF1ZXN0RGF0YTp7dHlwZTpPYmplY3R9fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2RhdGFUb0xvYWRDaGFuZ2VkKF9pc0Nvbm5lY3RlZCwgZGF0YVRvTG9hZC4qKSJdfW9uTG9hZEZpbmlzaCgpe31yZWxvYWQoKXt0aGlzLl9kYXRhTG9hZFN0YXRlLmNsZWFyKCksdGhpcy5fbG9hZERhdGEoKX1yZXNldCgpe251bGwhPXRoaXMuX2xvYWREYXRhQXN5bmMmJihjbGVhclRpbWVvdXQodGhpcy5fbG9hZERhdGFBc3luYyksdGhpcy5fbG9hZERhdGFBc3luYz1udWxsKSx0aGlzLl9jYW5jZWxsZXImJnRoaXMuX2NhbmNlbGxlci5jYW5jZWxBbGwoKSx0aGlzLl9kYXRhTG9hZFN0YXRlJiZ0aGlzLl9kYXRhTG9hZFN0YXRlLmNsZWFyKCksdGhpcy5faXNDb25uZWN0ZWQmJnRoaXMuX2xvYWREYXRhKCl9X2RhdGFUb0xvYWRDaGFuZ2VkKCl7dGhpcy5faXNDb25uZWN0ZWQmJnRoaXMuX2xvYWREYXRhKCl9ZGV0YWNoZWQoKXtudWxsIT10aGlzLl9sb2FkRGF0YUFzeW5jJiYoY2xlYXJUaW1lb3V0KHRoaXMuX2xvYWREYXRhQXN5bmMpLHRoaXMuX2xvYWREYXRhQXN5bmM9bnVsbCl9X2xvYWREYXRhSWZBY3RpdmUoKXt0aGlzLmFjdGl2ZSYmdGhpcy5fbG9hZERhdGEoKX1fbG9hZERhdGFJbXBsKCl7dGhpcy5hY3RpdmUmJihudWxsIT09dGhpcy5fbG9hZERhdGFBc3luYyYmY2xlYXJUaW1lb3V0KHRoaXMuX2xvYWREYXRhQXN5bmMpLHRoaXMuX2xvYWREYXRhQXN5bmM9c2V0VGltZW91dCh0aGlzLl9jYW5jZWxsZXIuY2FuY2VsbGFibGUoKHQ9PntpZih0LmNhbmNlbGxlZClyZXR1cm47dGhpcy5kYXRhTG9hZGluZz0hMDtjb25zdCBlPXRoaXMuZGF0YVRvTG9hZC5maWx0ZXIoKHQ9Pntjb25zdCBlPXRoaXMuZ2V0RGF0YUxvYWROYW1lKHQpO3JldHVybiF0aGlzLl9kYXRhTG9hZFN0YXRlLmhhcyhlKX0pKTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPXRoaXMuZ2V0RGF0YUxvYWROYW1lKHQpO3RoaXMuX2RhdGFMb2FkU3RhdGUuc2V0KGUsa1R0LkxPQURJTkcpfWNvbnN0IG49dGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT57aWYodC5jYW5jZWxsZWQpcmV0dXJuO2NvbnN0e2l0ZW06ZSxkYXRhOm59PXQudmFsdWUsaT10aGlzLmdldERhdGFMb2FkTmFtZShlKTt0aGlzLl9kYXRhTG9hZFN0YXRlLnNldChpLGtUdC5MT0FERUQpLHRoaXMubG9hZERhdGFDYWxsYmFjayh0aGlzLGUsbil9KSksaT10aGlzLl9jYW5jZWxsZXIuY2FuY2VsbGFibGUoKHQ9PntpZighdC5jYW5jZWxsZWQpe2NvbnN0IHQ9bmV3IFNldChlLm1hcCgodD0+dGhpcy5nZXREYXRhTG9hZE5hbWUodCkpKSk7dGhpcy5kYXRhVG9Mb2FkLnNvbWUoKGU9PnQuaGFzKHRoaXMuZ2V0RGF0YUxvYWROYW1lKGUpKSkpJiZ0aGlzLm9uTG9hZEZpbmlzaCgpLHRoaXMuX2xvYWREYXRhQXN5bmM9bnVsbCx0aGlzLmRhdGFMb2FkZWRBdExlYXN0T25jZT0hMH1BcnJheS5mcm9tKHRoaXMuX2RhdGFMb2FkU3RhdGUudmFsdWVzKCkpLmluY2x1ZGVzKGtUdC5MT0FESU5HKXx8KHRoaXMuZGF0YUxvYWRpbmc9ITEpfSkpO3RoaXMucmVxdWVzdERhdGEoZSxuLCgoKT0+aSh2b2lkIDApKSl9KSkpKX19fSEoZnVuY3Rpb24odCl7dFt0LkxPQURJTkc9MF09IkxPQURJTkciLHRbdC5MT0FERUQ9MV09IkxPQURFRCJ9KShrVHR8fChrVHQ9e30pKSxlbCh7bW9kdWxlTmFtZToicGxvdHRhYmxlLXN0eWxlIixzdHlsZUNvbnRlbnQ6IlxuICAgIFxuLnBsb3R0YWJsZS1jb2xvcnMtMCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1Mjc5Yzc7IC8qIElORElHTyAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkMzczZTsgLyogQ09SQUxfUkVEICovXG59XG5cbi5wbG90dGFibGUtY29sb3JzLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjNjMjYxOyAvKiBGRVJOICovXG59XG5cbi5wbG90dGFibGUtY29sb3JzLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFkNDE5OyAvKiBCUklHSFRfU1VOICovXG59XG5cbi5wbG90dGFibGUtY29sb3JzLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMyYjZmOyAvKiBKQUNBUlRBICovXG59XG5cbi5wbG90dGFibGUtY29sb3JzLTUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3OTM5OyAvKiBCVVJOSU5HX09SQU5HRSAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy02IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RiMmU2NTsgLyogQ0VSSVNFX1JFRCAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy03IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5Y2U1MDsgLyogQ09OSUZFUiAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy04IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk2MjU2NTsgLyogUk9ZQUxfSEVBVEggKi9cbn1cblxuLnBsb3R0YWJsZS1jb2xvcnMtOSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwNmNjY2M7IC8qIFJPQklOU19FR0dfQkxVRSAqL1xufVxuXG4vKipcbiAqIFVzZXItc3VwcGxpZWQgcmVuZGVyVG8gZWxlbWVudC5cbiAqL1xuLnBsb3R0YWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyAvKiBtdXN0IGJlIGJsb2NrIGVsZW1lbnRzIGZvciB3aWR0aC9oZWlnaHQgY2FsY3VsYXRpb25zIHRvIHdvcmsgaW4gRmlyZWZveC4gKi9cbiAgcG9pbnRlci1ldmVudHM6IHZpc2libGVGaWxsO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qKlxuICAgKiBQcmUgMy4wLCB1c2VycyBjb3VsZCBzZXQgdGhlIGRpbWVuc2lvbiBvZiB0aGUgcm9vdCBlbGVtZW50IGluIHR3byB3YXlzOiBlaXRoZXIgdXNpbmcgQ1NTXG4gICAqIChpbmxpbmUgb3IgdGhyb3VnaCBhIHN0eWxlc2hlZXQpLCBvciB1c2luZyB0aGUgU1ZHIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzLiBCeSBkZWZhdWx0LCB3ZVxuICAgKiBzZXQgdGhlIFNWRyB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcyB0byAxMDAlLlxuICAgKlxuICAgKiBQb3N0IDMuMCB0aGUgcm9vdCBlbGVtZW50IGlzIGFsd2F5cyBhIG5vcm1hbCBkaXYgYW5kIHRoZSBvbmx5IHdheSB0byBzZXQgdGhlIGRpbWVuc2lvbnMgaXNcbiAgICogdG8gdXNlIENTUy4gVG8gcmVwbGljYXRlIHRoZSBcIjEwMCUtYnktZGVmYXVsdFwiIGJlaGF2aW9yLCB3ZSBhcHBseSB3aWR0aC9oZWlnaHQgMTAwJS5cbiAgICovXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qKlxuICogVGhlIF9lbGVtZW50IHRoYXQgcm9vdHMgZWFjaCBDb21wb25lbnQncyBET00uXG4gKi9cbi5wbG90dGFibGUgLmNvbXBvbmVudCB7XG4gIC8qIEFsbG93IGNvbXBvbmVudHMgdG8gYmUgcG9zaXRpb25lZCB3aXRoIGV4cGxpY2l0IGxlZnQvdG9wL3dpZHRoL2hlaWdodCBzdHlsZXMgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4ucGxvdHRhYmxlIC5iYWNrZ3JvdW5kLWNvbnRhaW5lcixcbi5wbG90dGFibGUgLmNvbnRlbnQsXG4ucGxvdHRhYmxlIC5mb3JlZ3JvdW5kLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyoqXG4gKiBEb24ndCBhbGxvdyBzdmcgZWxlbWVudHMgYWJvdmUgdGhlIGNvbnRlbnQgdG8gc3RlYWwgZXZlbnRzXG4gKi9cbi5wbG90dGFibGUgLmZvcmVncm91bmQtY29udGFpbmVyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5wbG90dGFibGUgLmNvbXBvbmVudC1vdmVyZmxvdy1oaWRkZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucGxvdHRhYmxlIC5jb21wb25lbnQtb3ZlcmZsb3ctdmlzaWJsZSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ucGxvdHRhYmxlIC5wbG90LWNhbnZhcy1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucGxvdHRhYmxlIC5wbG90LWNhbnZhcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC8qKlxuICAgKiBQbGF5IHdlbGwgd2l0aCBkZWZlcnJlZCByZW5kZXJpbmcuXG4gICAqL1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwcHggMHB4IDBweDtcbn1cblxuLnBsb3R0YWJsZSB0ZXh0IHtcbiAgdGV4dC1yZW5kZXJpbmc6IGdlb21ldHJpY1ByZWNpc2lvbjtcbn1cblxuLnBsb3R0YWJsZSAubGFiZWwgdGV4dCB7XG4gIGZpbGw6ICMzMjMxM0Y7XG59XG5cbi5wbG90dGFibGUgLmJhci1sYWJlbC10ZXh0LWFyZWEgdGV4dCxcbi5wbG90dGFibGUgLnNjYXR0ZXItbGFiZWwtdGV4dC1hcmVhIHRleHQge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5wbG90dGFibGUgLmxhYmVsLWFyZWEgdGV4dCB7XG4gIGZpbGw6ICMzMjMxM0Y7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnBsb3R0YWJsZSAubGlnaHQtbGFiZWwgdGV4dCB7XG4gIGZpbGw6IHdoaXRlO1xufVxuXG4ucGxvdHRhYmxlIC5kYXJrLWxhYmVsIHRleHQge1xuICBmaWxsOiAjMzIzMTNGO1xufVxuXG4ucGxvdHRhYmxlIC5vZmYtYmFyLWxhYmVsIHRleHQge1xuICBmaWxsOiAjMzIzMTNGO1xufVxuXG4ucGxvdHRhYmxlIC5zdGFja2VkLWJhci1sYWJlbCB0ZXh0IHtcbiAgZmlsbDogIzMyMzEzRjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4ucGxvdHRhYmxlIC5zdGFja2VkLWJhci1wbG90IC5vZmYtYmFyLWxhYmVsIHtcbiAgLyogSEFDS0hBQ0sgIzI3OTU6IGNvcnJlY3Qgb2ZmLWJhciBsYWJlbCBsb2dpYyB0byBiZSBpbXBsZW1lbnRlZCBvbiBTdGFja2VkQmFyICovXG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4ucGxvdHRhYmxlIC5heGlzLWxhYmVsIHRleHQge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ucGxvdHRhYmxlIC50aXRsZS1sYWJlbCB0ZXh0IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnBsb3R0YWJsZSAuYXhpcyBsaW5lLmJhc2VsaW5lIHtcbiAgc3Ryb2tlOiAjQ0NDO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cblxuLnBsb3R0YWJsZSAuYXhpcyBsaW5lLnRpY2stbWFyayB7XG4gIHN0cm9rZTogI0NDQztcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG59XG5cbi5wbG90dGFibGUgLmF4aXMgdGV4dCB7XG4gIGZpbGw6ICMzMjMxM0Y7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnBsb3R0YWJsZSAuYXhpcyAuYW5ub3RhdGlvbi1jaXJjbGUge1xuICBmaWxsOiB3aGl0ZTtcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gIHN0cm9rZTogI0NDQztcbn1cblxuLnBsb3R0YWJsZSAuYXhpcyAuYW5ub3RhdGlvbi1saW5lIHtcbiAgc3Ryb2tlOiAjQ0NDO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cblxuLnBsb3R0YWJsZSAuYXhpcyAuYW5ub3RhdGlvbi1yZWN0IHtcbiAgc3Ryb2tlOiAjQ0NDO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbiAgZmlsbDogd2hpdGU7XG59XG5cbi5wbG90dGFibGUgLmJhci1wbG90IC5iYXNlbGluZSB7XG4gIHN0cm9rZTogIzk5OTtcbn1cblxuLnBsb3R0YWJsZSAuZ3JpZGxpbmVzIGxpbmUge1xuICBzdHJva2U6ICMzQzNDM0M7IC8qIGhhY2toYWNrOiBncmlkbGluZXMgc2hvdWxkIGJlIHNvbGlkOyBzZWUgIzgyMCAqL1xuICBvcGFjaXR5OiAwLjI1O1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cblxuLnBsb3R0YWJsZSAuc2VsZWN0aW9uLWJveC1sYXllciAuc2VsZWN0aW9uLWFyZWEge1xuICBmaWxsOiBibGFjaztcbiAgZmlsbC1vcGFjaXR5OiAwLjAzO1xuICBzdHJva2U6ICNDQ0M7XG59XG4vKiBEcmFnQm94TGF5ZXIgKi9cbi5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLngtcmVzaXphYmxlIC5kcmFnLWVkZ2UtbHIge1xuICBjdXJzb3I6IGV3LXJlc2l6ZTtcbn1cbi5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLnktcmVzaXphYmxlIC5kcmFnLWVkZ2UtdGIge1xuICBjdXJzb3I6IG5zLXJlc2l6ZTtcbn1cblxuLnBsb3R0YWJsZSAuZHJhZy1ib3gtbGF5ZXIueC1yZXNpemFibGUueS1yZXNpemFibGUgLmRyYWctY29ybmVyLXRsIHtcbiAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbn1cbi5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLngtcmVzaXphYmxlLnktcmVzaXphYmxlIC5kcmFnLWNvcm5lci10ciB7XG4gIGN1cnNvcjogbmVzdy1yZXNpemU7XG59XG4ucGxvdHRhYmxlIC5kcmFnLWJveC1sYXllci54LXJlc2l6YWJsZS55LXJlc2l6YWJsZSAuZHJhZy1jb3JuZXItYmwge1xuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xufVxuLnBsb3R0YWJsZSAuZHJhZy1ib3gtbGF5ZXIueC1yZXNpemFibGUueS1yZXNpemFibGUgLmRyYWctY29ybmVyLWJyIHtcbiAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbn1cblxuLnBsb3R0YWJsZSAuZHJhZy1ib3gtbGF5ZXIubW92YWJsZSAuc2VsZWN0aW9uLWFyZWEge1xuICBjdXJzb3I6IG1vdmU7IC8qIElFIGZhbGxiYWNrICovXG4gIGN1cnNvcjogLW1vei1ncmFiO1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG4ucGxvdHRhYmxlIC5kcmFnLWJveC1sYXllci5tb3ZhYmxlIC5zZWxlY3Rpb24tYXJlYTphY3RpdmUge1xuICBjdXJzb3I6IC1tb3otZ3JhYmJpbmc7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cbi8qIC9EcmFnQm94TGF5ZXIgKi9cblxuLnBsb3R0YWJsZSAuZ3VpZGUtbGluZS1sYXllciBsaW5lLmd1aWRlLWxpbmUge1xuICBzdHJva2U6ICNDQ0M7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xufVxuXG4ucGxvdHRhYmxlIC5kcmFnLWxpbmUtbGF5ZXIuZW5hYmxlZC52ZXJ0aWNhbCBsaW5lLmRyYWctZWRnZSB7XG4gIGN1cnNvcjogZXctcmVzaXplO1xufVxuXG4ucGxvdHRhYmxlIC5kcmFnLWxpbmUtbGF5ZXIuZW5hYmxlZC5ob3Jpem9udGFsIGxpbmUuZHJhZy1lZGdlIHtcbiAgY3Vyc29yOiBucy1yZXNpemU7XG59XG5cbi5wbG90dGFibGUgLmxlZ2VuZCB0ZXh0IHtcbiAgZmlsbDogIzMyMzEzRjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnBsb3R0YWJsZSAuaW50ZXJwb2xhdGVkLWNvbG9yLWxlZ2VuZCByZWN0LnN3YXRjaC1ib3VuZGluZy1ib3gge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6ICNDQ0M7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnBsb3R0YWJsZSAud2F0ZXJmYWxsLXBsb3QgbGluZS5jb25uZWN0b3Ige1xuICBzdHJva2U6ICNDQ0M7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xufVxuXG4ucGxvdHRhYmxlIC5waWUtcGxvdCAuYXJjLm91dGxpbmUge1xuICBzdHJva2UtbGluZWpvaW46IHJvdW5kO1xufVxuXG4ifSk7Y29uc3QgUFR0PVsxLDAsMCwxLDAsMF07Y2xhc3MgTlR0IGV4dGVuZHMgck8uVXRpbHMuVHJhbnNsYXRvcntjb21wdXRlUG9zaXRpb24odCxlKXtjb25zdCBuPXt4OnQseTplfSxpPShmdW5jdGlvbiByKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7Y29uc3QgZT1bXTtmb3IoO3QmJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDspaWYoZS5wdXNoKHQpLHQuYXNzaWduZWRTbG90KXQ9dC5hc3NpZ25lZFNsb3Q7ZWxzZSBpZih0LnBhcmVudEVsZW1lbnQpdD10LnBhcmVudEVsZW1lbnQ7ZWxzZXtjb25zdCBlPXQucGFyZW50Tm9kZTt0PWUgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50P2UuaG9zdDplIT09dD9lOm51bGx9cmV0dXJuIGV9KSh0KTtsZXQgaT1QVHQscj1udWxsO2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9ck8uVXRpbHMuRE9NLmdldEVsZW1lbnRUcmFuc2Zvcm0odCk7aWYobnVsbCE9ZSl7Y29uc3Qgbj10LmNsaWVudFdpZHRoLzIscj10LmNsaWVudEhlaWdodC8yO2k9ck8uVXRpbHMuTWF0aC5tdWx0aXBseVRyYW5zbGF0ZShpLFtuLHJdKSxpPXJPLlV0aWxzLk1hdGgubXVsdGlwbHlNYXRyaXgoaSxyTy5VdGlscy5NYXRoLmludmVydE1hdHJpeChlKSksaT1yTy5VdGlscy5NYXRoLm11bHRpcGx5VHJhbnNsYXRlKGksWy1uLC1yXSl9bGV0IG49dC5zY3JvbGxMZWZ0LG89dC5zY3JvbGxUb3A7bnVsbCE9PXImJnQhPT1yfHwobi09dC5vZmZzZXRMZWZ0K3QuY2xpZW50TGVmdCxvLT10Lm9mZnNldFRvcCt0LmNsaWVudFRvcCxyPXQub2Zmc2V0UGFyZW50KSxpPXJPLlV0aWxzLk1hdGgubXVsdGlwbHlUcmFuc2xhdGUoaSxbbixvXSl9cmV0dXJuIGl9KSh0aGlzLl9yb290RWxlbWVudCk7cmV0dXJuIG51bGw9PWk/bjpyTy5VdGlscy5NYXRoLmFwcGx5VHJhbnNmb3JtKGksbil9fWNsYXNzIElUdCBleHRlbmRzIHJPLkRpc3BhdGNoZXJzLk1vdXNle2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuX2V2ZW50VGFyZ2V0PXQucm9vdCgpLnJvb3RFbGVtZW50KCkubm9kZSgpLHRoaXMuX3RyYW5zbGF0b3I9bmV3IE5UdCh0LnJvb3QoKS5yb290RWxlbWVudCgpLm5vZGUoKSl9c3RhdGljIGdldERpc3BhdGNoZXIodCl7Y29uc3QgZT10LnJvb3QoKS5yb290RWxlbWVudCgpO2xldCBuPWVbSVR0Ll9ESVNQQVRDSEVSX0tFWV07cmV0dXJuIG58fChuPW5ldyBJVHQodCksZVtJVHQuX0RJU1BBVENIRVJfS0VZXT1uKSxufX1jbGFzcyBSVHQgZXh0ZW5kcyByTy5EaXNwYXRjaGVycy5Ub3VjaHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLl9ldmVudFRhcmdldD10LnJvb3QoKS5yb290RWxlbWVudCgpLm5vZGUoKSx0aGlzLl90cmFuc2xhdG9yPW5ldyBOVHQodC5yb290KCkucm9vdEVsZW1lbnQoKS5ub2RlKCkpfXN0YXRpYyBnZXREaXNwYXRjaGVyKHQpe2NvbnN0IGU9dC5yb290KCkucm9vdEVsZW1lbnQoKTtsZXQgbj1lW1JUdC5fRElTUEFUQ0hFUl9LRVldO3JldHVybiBufHwobj1uZXcgUlR0KHQpLGVbUlR0Ll9ESVNQQVRDSEVSX0tFWV09biksbn19ck8uSW50ZXJhY3Rpb24ucHJvdG90eXBlLl9pc0luc2lkZUNvbXBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4gMDw9dC54JiYwPD10LnkmJnQueDx0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLndpZHRoKCkmJnQueTx0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLmhlaWdodCgpfTtjbGFzcyBPVHQgZXh0ZW5kcyByTy5JbnRlcmFjdGlvbnMuUG9pbnRlcntfYW5jaG9yKHQpe2NvbnN0IGU9dGhpcztlLl9pc0FuY2hvcmVkPSEwLGUuX21vdXNlRGlzcGF0Y2hlcj1JVHQuZ2V0RGlzcGF0Y2hlcihlLl9jb21wb25lbnRBdHRhY2hlZFRvKSxlLl9tb3VzZURpc3BhdGNoZXIub25Nb3VzZU1vdmUoZS5fbW91c2VNb3ZlQ2FsbGJhY2spLGUuX3RvdWNoRGlzcGF0Y2hlcj1SVHQuZ2V0RGlzcGF0Y2hlcihlLl9jb21wb25lbnRBdHRhY2hlZFRvKSxlLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaFN0YXJ0KGUuX3RvdWNoU3RhcnRDYWxsYmFjayl9fXZhciB6VHQ7IShmdW5jdGlvbih0KXt0LkFVVE89ImF1dG8iLHQuQk9UVE9NPSJib3R0b20iLHQuUklHSFQ9InJpZ2h0In0pKHpUdHx8KHpUdD17fSkpO2NvbnN0IERUdD17Ym94U2hhZG93OiIwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAuMykiLG9wYWNpdHk6MCxwb3NpdGlvbjoiZml4ZWQiLHdpbGxDaGFuZ2U6InRyYW5zZm9ybSIsekluZGV4OjV9O2xldCBCVHQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnBvc2l0aW9uPXpUdC5BVVRPLHRoaXMubWluRGlzdEZyb21FZGdlPTE1LHRoaXMuX3N0eWxlQ2FjaGU9bnVsbCx0aGlzLl9yYWY9bnVsbCx0aGlzLl90dW5uZWw9bnVsbH1yZWFkeSgpe3RoaXMuX3N0eWxlQ2FjaGU9bnVsbCx0aGlzLl9yYWY9bnVsbCx0aGlzLl90dW5uZWw9bnVsbH1hdHRhY2hlZCgpe3RoaXMuX3R1bm5lbD10aGlzLl9jcmVhdGVUdW5uZWwoKSx0aGlzLl9oaWRlT25CbHVyPSgpPT57ZG9jdW1lbnQuaGlkZGVuJiZ0aGlzLmhpZGUoKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMuX2hpZGVPbkJsdXIpfWRldGFjaGVkKCl7dGhpcy5oaWRlKCksdGhpcy5fcmVtb3ZlVHVubmVsKHRoaXMuX3R1bm5lbCksdGhpcy5fdHVubmVsPW51bGwsd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMuX2hpZGVPbkJsdXIpfWNvbnRlbnQoKXtyZXR1cm4gdGhpcy5fdHVubmVsLnNoYWRvd1Jvb3R9aGlkZSgpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWYpLHRoaXMuX3N0eWxlQ2FjaGU9bnVsbCx0aGlzLl90dW5uZWwuc3R5bGUub3BhY2l0eT0wfXVwZGF0ZUFuZFBvc2l0aW9uKHQpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWYpLHRoaXMuX3JhZj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuaXNBdHRhY2hlZCYmdGhpcy5fcmVwb3NpdGlvbkltcGwodCl9KSl9X3JlcG9zaXRpb25JbXBsKHQpe2NvbnN0IGU9dGhpcy5fdHVubmVsLG49dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj13aW5kb3cuaW5uZXJIZWlnaHQsbz1kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoLGE9bi50b3Ascz1hK24uaGVpZ2h0LGw9aS5oZWlnaHQrMjA7bGV0IGM9bnVsbCx1PU1hdGgubWF4KHRoaXMubWluRGlzdEZyb21FZGdlLG4ubGVmdCksaD1udWxsLGQ9YTt0aGlzLnBvc2l0aW9uPT16VHQuUklHSFQ/dT1uLnJpZ2h0OihkPXMrMjAsbzx1K2kud2lkdGgrdGhpcy5taW5EaXN0RnJvbUVkZ2UmJih1PW51bGwsaD10aGlzLm1pbkRpc3RGcm9tRWRnZSkpLHRoaXMucG9zaXRpb249PXpUdC5BVVRPJiZuLnRvcC1sPjAmJnI8bi50b3Arbi5oZWlnaHQrbCYmKGQ9bnVsbCxjPXItYSsyMCk7Y29uc3QgcD17Y29udGFpbjoiY29udGVudCIsb3BhY2l0eToxLGxlZnQ6dT9gJHt1fXB4YDpudWxsLHJpZ2h0Omg/YCR7aH1weGA6bnVsbCx0b3A6ZD9gJHtkfXB4YDpudWxsLGJvdHRvbTpjP2Ake2N9cHhgOm51bGx9O1NlLmV4cG9ydHMuaXNFcXVhbCh0aGlzLl9zdHlsZUNhY2hlLHApfHwoT2JqZWN0LmFzc2lnbihlLnN0eWxlLHApLHRoaXMuX3N0eWxlQ2FjaGU9cCl9X2NyZWF0ZVR1bm5lbCgpe2lmKCF0aGlzLmNvbnRlbnRDb21wb25lbnROYW1lKXRocm93IG5ldyBSYW5nZUVycm9yKCJSZXF1aXJlIGBjb250ZW50Q29tcG9uZW50TmFtZWAgdG8gYmUgYSBuYW1lIG9mIGEgUG9seW1lciBjb21wb25lbnQiKTtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jb250ZW50Q29tcG9uZW50TmFtZSk7cmV0dXJuIE9iamVjdC5hc3NpZ24odC5zdHlsZSxEVHQpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksdH1fcmVtb3ZlVHVubmVsKHQpe2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCl9fTt0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxCVHQucHJvdG90eXBlLCJjb250ZW50Q29tcG9uZW50TmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxCVHQucHJvdG90eXBlLCJwb3NpdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxCVHQucHJvdG90eXBlLCJtaW5EaXN0RnJvbUVkZ2UiLHZvaWQgMCksQlR0PXQoW2koInZ6LWNoYXJ0LXRvb2x0aXAiKV0sQlR0KTtjb25zdCBIVHQ9bXkoIi4yfmUiKSxGVHQ9bXkoIi40fnIiKSxWVHQ9bXkoIix+Iik7ZnVuY3Rpb24gVVR0KHQpe2lmKDA9PT10KXJldHVybiIwIjtjb25zdCBlPU1hdGguYWJzKHQpO3JldHVybiBlPj0xZTR8fGU8LjAwMT9IVHQodCk6RlR0KHQpfWNvbnN0IGpUdD17Zm9ybWF0VGljazpVVHQsZm9ybWF0U2hvcnQ6VVR0LGZvcm1hdFJlYWRhYmxlKHQpe2NvbnN0IGU9TWF0aC5hYnModCk7cmV0dXJuIGU+PTFlNHx8ZTwuMDAxP0hUdCh0KTpWVHQodCl9LGZvcm1hdExvbmc6VlR0fTtteSgiMC4zfnMiKSxteSgiLC4zfmYiKSxteSgiLjR+Iik7Y29uc3QgR1R0PWNBKCkudGlja0Zvcm1hdCgpO2xldCBXVHQ7Y29uc3QgcVR0PXtmb3JtYXRUaWNrOnQ9PkdUdChuZXcgRGF0ZSh0KSksZm9ybWF0U2hvcnQ6dD0+bmV3IERhdGUodCkudG9Mb2NhbGVTdHJpbmcoV1R0LHt5ZWFyOiJudW1lcmljIixtb250aDoic2hvcnQiLGRheToibnVtZXJpYyIsaG91cjoibnVtZXJpYyIsbWludXRlOiJudW1lcmljIixzZWNvbmQ6Im51bWVyaWMifSksZm9ybWF0UmVhZGFibGU6dD0+bmV3IERhdGUodCkudG9Mb2NhbGVTdHJpbmcoV1R0LHt5ZWFyOiJudW1lcmljIixtb250aDoic2hvcnQiLGRheToibnVtZXJpYyIsaG91cjoibnVtZXJpYyIsbWludXRlOiJudW1lcmljIixzZWNvbmQ6Im51bWVyaWMiLHRpbWVab25lTmFtZToic2hvcnQifSksZm9ybWF0TG9uZzp0PT5uZXcgRGF0ZSh0KS50b0xvY2FsZVN0cmluZyhXVHQse3llYXI6Im51bWVyaWMiLG1vbnRoOiJsb25nIixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIix0aW1lWm9uZU5hbWU6InNob3J0IixmcmFjdGlvbmFsU2Vjb25kRGlnaXRzOjN9KX07dmFyIFlUdDshKGZ1bmN0aW9uKHQpe3RbdC5MSU5FQVI9MF09IkxJTkVBUiIsdFt0LkxPRzEwPTFdPSJMT0cxMCIsdFt0LlRJTUU9Ml09IlRJTUUifSkoWVR0fHwoWVR0PXt9KSk7Y2xhc3MgWFR0e2NvbnN0cnVjdG9yKCl7dGhpcy5kZWZhdWx0Rm9ybWF0dGVyPWpUdH10cmFuc2Zvcm0odCxlLG4pe2NvbnN0W2kscl09dCxvPXItaSxbYSxzXT1lO3JldHVybiAwPT09bz9hOihzLWEpL28qKG4taSkrYX1mb3J3YXJkKHQsZSxuKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0odCxlLG4pfXJldmVyc2UodCxlLG4pe3JldHVybiB0aGlzLnRyYW5zZm9ybShlLHQsbil9bmljZURvbWFpbih0KXtsZXRbZSxuXT10O2lmKG48ZSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW5wdXQ6IG1pbiBpcyBsYXJnZXIgdGhhbiBtYXgiKTtpZihuPT09ZSlyZXR1cm4gMD09PWU/Wy0xLDFdOmU8MD9bMiplLDBdOlswLDIqZV07Y29uc3QgaT1WTSgpLHI9LjA1KihuLWUrTnVtYmVyLkVQU0lMT04pLFtvLGFdPWkuZG9tYWluKFtlLXIsbityXSkubmljZSgpLmRvbWFpbigpO3JldHVybltvLGFdfXRpY2tzKHQsZSl7cmV0dXJuIFZNKCkuZG9tYWluKHQpLnRpY2tzKGUpfWlzU2FmZU51bWJlcih0KXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpfX1jbGFzcyAkVHR7Y29uc3RydWN0b3IoKXt0aGlzLmRlZmF1bHRGb3JtYXR0ZXI9alR0fXRyYW5zZm9ybSh0KXtyZXR1cm4gTWF0aC5sb2cxMCh0PjA/dDpOdW1iZXIuTUlOX1ZBTFVFKX11bnRyYW5zZm9ybSh0KXtyZXR1cm4gTWF0aC5leHAodC9NYXRoLkxPRzEwRSl9Zm9yd2FyZCh0LGUsbil7aWYobjw9MClyZXR1cm4gZVswXTtjb25zdFtpLHJdPXQsW28sYV09ZSxzPXRoaXMudHJhbnNmb3JtKGkpLGw9dGhpcy50cmFuc2Zvcm0ociktcyxjPWEtbztyZXR1cm4gbj10aGlzLnRyYW5zZm9ybShuKSxjLyhsK051bWJlci5FUFNJTE9OKSoobi1zKStvfXJldmVyc2UodCxlLG4pe2NvbnN0W2kscl09dCxbbyxhXT1lLHM9dGhpcy50cmFuc2Zvcm0oaSksbD10aGlzLnRyYW5zZm9ybShyKTtyZXR1cm4gdGhpcy51bnRyYW5zZm9ybSgobC1zKS8oYS1vK051bWJlci5FUFNJTE9OKSoobi1vKStzKX1uaWNlRG9tYWluKHQpe2NvbnN0W2Usbl09dDtpZihlPm4pdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGlucHV0OiBtaW4gaXMgbGFyZ2VyIHRoYW4gbWF4Iik7Y29uc3QgaT1NYXRoLm1heChlLE51bWJlci5NSU5fVkFMVUUpLHI9TWF0aC5tYXgobixOdW1iZXIuTUlOX1ZBTFVFKTtyZXR1cm4gbjw9MD9bTnVtYmVyLk1JTl9WQUxVRSwxXTpbTWF0aC5tYXgoTnVtYmVyLk1JTl9WQUxVRSwuNSppKSwyKnJdfXRpY2tzKHQsZSl7Y29uc3Qgbj10WzBdPD0wP051bWJlci5NSU5fVkFMVUU6dFswXSxpPXRbMV08PTA/TnVtYmVyLk1JTl9WQUxVRTp0WzFdLHI9S00oKS5kb21haW4oW24saV0pLnRpY2tzKGUpO3JldHVybiByLmxlbmd0aD9yOnR9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCkmJnQ+MH19Y2xhc3MgS1R0e2NvbnN0cnVjdG9yKCl7dGhpcy5zY2FsZT1jQSgpLHRoaXMuZGVmYXVsdEZvcm1hdHRlcj1xVHR9Zm9yd2FyZCh0LGUsbil7cmV0dXJuIHRoaXMuc2NhbGUuZG9tYWluKHQpLnJhbmdlKGUpKG4pfXJldmVyc2UodCxlLG4pe3JldHVybiB0aGlzLnNjYWxlLmRvbWFpbih0KS5yYW5nZShlKS5pbnZlcnQobikuZ2V0VGltZSgpfW5pY2VEb21haW4odCl7Y29uc3RbZSxuXT10aGlzLnNjYWxlLmRvbWFpbih0KS5uaWNlKCkuZG9tYWluKCk7cmV0dXJuW2UuZ2V0VGltZSgpLG4uZ2V0VGltZSgpXX10aWNrcyh0LGUpe3JldHVybiB0aGlzLnNjYWxlLmRvbWFpbih0KS50aWNrcyhlKS5tYXAoKHQ9PnQuZ2V0VGltZSgpKSl9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCl9fWNsYXNzIFpUdCBleHRlbmRzIHJPLlNjYWxlcy5MaW5lYXJ7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX2lnbm9yZU91dGxpZXI9ITEsdGhpcy5wYWRQcm9wb3J0aW9uKC4yKX1zZXRWYWx1ZVByb3ZpZGVyRm9yRG9tYWluKHQpe3JldHVybiB0aGlzLl92YWx1ZVByb3ZpZGVyRm9yRG9tYWluPXQsdGhpc31fbmljZURvbWFpbih0LGUpe2NvbnN0W24saV09dDtyZXR1cm4oZnVuY3Rpb24gcih0KXtzd2l0Y2godCl7Y2FzZSBZVHQuTElORUFSOnJldHVybiBuZXcgWFR0O2Nhc2UgWVR0LkxPRzEwOnJldHVybiBuZXcgJFR0O2Nhc2UgWVR0LlRJTUU6cmV0dXJuIG5ldyBLVHQ7ZGVmYXVsdDp0aHJvdyBuZXcgUmFuZ2VFcnJvcihgU2NhbGVUeXBlICR7dH0gbm90IHN1cHBvcnRlZC5gKX19KShZVHQuTElORUFSKS5uaWNlRG9tYWluKFtuLGldKX1fZ2V0VW5ib3VuZGVkRXh0ZW50KHQpe2NvbnN0IGU9dGhpcy5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXModCk7bGV0IG49dGhpcy5fZGVmYXVsdEV4dGVudCgpO2lmKDAhPT1lLmxlbmd0aCl7Y29uc3QgdD1bck8uVXRpbHMuTWF0aC5taW4oZSxuWzBdKSxyTy5VdGlscy5NYXRoLm1heChlLG5bMV0pXTtuPXRoaXMuX25pY2VEb21haW4odCl9cmV0dXJuIG59X2dldEFsbEluY2x1ZGVkVmFsdWVzKHQ9ITEpe2NvbnN0IGU9dGhpcy5fdmFsdWVQcm92aWRlckZvckRvbWFpbj90aGlzLl92YWx1ZVByb3ZpZGVyRm9yRG9tYWluKCk6W107cmV0dXJuIHRoaXMuZXh0ZW50T2ZWYWx1ZXMoZSl9ZXh0ZW50T2ZWYWx1ZXModCl7Y29uc3QgZT10LmZpbHRlcigodD0+ck8uVXRpbHMuTWF0aC5pc1ZhbGlkTnVtYmVyKHQpKSk7bGV0IG49ZTtpZih0aGlzLmlnbm9yZU91dGxpZXIoKSl7Y29uc3QgdD1lLnNvcnQoKCh0LGUpPT50LWUpKSxpPUdsKHQsLjA1KSxyPUdsKHQsLjk1KTtuPWUuZmlsdGVyKCh0PT50Pj1pJiZ0PD1yKSl9Y29uc3QgaT1MbChuKTtyZXR1cm4gbnVsbD09aVswXXx8bnVsbD09aVsxXT9bXTppfWlnbm9yZU91dGxpZXIodCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdD8odGhpcy5faWdub3JlT3V0bGllcj10LHRoaXMpOnRoaXMuX2lnbm9yZU91dGxpZXJ9fWNsYXNzIEpUdCBleHRlbmRzIHJPLlF1YW50aXRhdGl2ZVNjYWxle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9pZ25vcmVPdXRsaWVyPSExfXNldFZhbHVlUHJvdmlkZXJGb3JEb21haW4odCl7cmV0dXJuIHRoaXMuX3ZhbHVlUHJvdmlkZXJGb3JEb21haW49dCx0aGlzfWlnbm9yZU91dGxpZXIodCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdD8odGhpcy5faWdub3JlT3V0bGllcj10LHRoaXMpOnRoaXMuX2lnbm9yZU91dGxpZXJ9X2dldEFsbEluY2x1ZGVkVmFsdWVzKHQ9ITEpe2NvbnN0IGU9dGhpcy5fdmFsdWVQcm92aWRlckZvckRvbWFpbj90aGlzLl92YWx1ZVByb3ZpZGVyRm9yRG9tYWluKCk6W107cmV0dXJuIHRoaXMuZXh0ZW50T2ZWYWx1ZXMoZSl9fWNvbnN0IFFUdD1NYXRoLnBvdygyLC0xMDc0KTtmdW5jdGlvbiB0Q3QodCl7cmV0dXJuIE1hdGgubG9nMTAodCl9ZnVuY3Rpb24gZUN0KHQpe3JldHVybiBNYXRoLnBvdygxMCx0KX1jbGFzcyBuQ3QgZXh0ZW5kcyBKVHR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX2QzTG9nU2NhbGU9S00oKSx0aGlzLnBhZFByb3BvcnRpb24oLjIpfXNjYWxlKHQpe3JldHVybiB0PD0wP05hTjp0aGlzLl9kM0xvZ1NjYWxlKHQpfWludmVydCh0KXtyZXR1cm4gdGhpcy5fZDNMb2dTY2FsZS5pbnZlcnQodCl9c2NhbGVUcmFuc2Zvcm1hdGlvbih0KXtyZXR1cm4gdGhpcy5zY2FsZSh0KX1pbnZlcnRlZFRyYW5zZm9ybWF0aW9uKHQpe3JldHVybiB0aGlzLmludmVydCh0KX1nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpe3JldHVybiB0aGlzLmRvbWFpbigpfXNldFRyYW5zZm9ybWF0aW9uRG9tYWluKHQpe3RoaXMuZG9tYWluKHQpfWdldFRyYW5zZm9ybWF0aW9uRXh0ZW50KCl7cmV0dXJuIHRoaXMuX2dldFVuYm91bmRlZEV4dGVudCghMCl9X2dldERvbWFpbigpe3JldHVybiB0aGlzLl91bnRyYW5zZm9ybWVkRG9tYWlufV9zZXREb21haW4odCl7dGhpcy5fdW50cmFuc2Zvcm1lZERvbWFpbj10O2NvbnN0W2Usbl09dDtzdXBlci5fc2V0RG9tYWluKFtNYXRoLm1heChRVHQsZSksbl0pfV9uaWNlRG9tYWluKHQsZSl7Y29uc3RbbixpXT10LHI9TWF0aC5tYXgodEN0KFFUdCksdEN0KG4pKSxvPXRDdChpKSxhPW8tcixzPWE/YSp0aGlzLnBhZFByb3BvcnRpb24oKToxO3JldHVybltlQ3QoTWF0aC5tYXgodEN0KFFUdCksci1zKSksZUN0KG8rcyldfV9nZXRVbmJvdW5kZWRFeHRlbnQodCl7Y29uc3QgZT10aGlzLl9nZXRBbGxJbmNsdWRlZFZhbHVlcyh0KTtsZXQgbj10aGlzLl9kZWZhdWx0RXh0ZW50KCk7aWYoMCE9PWUubGVuZ3RoKXtjb25zdCB0PVtyTy5VdGlscy5NYXRoLm1pbihlLG5bMF0pLHJPLlV0aWxzLk1hdGgubWF4KGUsblsxXSldO249dGhpcy5fbmljZURvbWFpbih0KX1yZXR1cm4gbn1fZ2V0QWxsSW5jbHVkZWRWYWx1ZXModD0hMSl7cmV0dXJuIHN1cGVyLl9nZXRBbGxJbmNsdWRlZFZhbHVlcygpLm1hcCgodD0+dD4wP3Q6UVR0KSl9X2RlZmF1bHRFeHRlbnQoKXtyZXR1cm5bMSwxMF19X2JhY2tpbmdTY2FsZURvbWFpbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9kM0xvZ1NjYWxlLmRvbWFpbigpOih0aGlzLl9kM0xvZ1NjYWxlLmRvbWFpbih0KSx0aGlzKX1fZ2V0UmFuZ2UoKXtyZXR1cm4gdGhpcy5fZDNMb2dTY2FsZS5yYW5nZSgpfV9zZXRSYW5nZSh0KXt0aGlzLl9kM0xvZ1NjYWxlLnJhbmdlKHQpfWRlZmF1bHRUaWNrcygpe3JldHVybiB0aGlzLl9kM0xvZ1NjYWxlLnRpY2tzKDEpfXRpY2tzKCl7cmV0dXJuIHRoaXMuX2QzTG9nU2NhbGUudGlja3MoKX1leHRlbnRPZlZhbHVlcyh0KXtjb25zdCBlPXQuZmlsdGVyKCh0PT5yTy5VdGlscy5NYXRoLmlzVmFsaWROdW1iZXIodCkmJnQ+MCkpO2xldCBuPWU7aWYodGhpcy5pZ25vcmVPdXRsaWVyKCkpe2NvbnN0IHQ9ZS5tYXAodEN0KS5zb3J0KCgodCxlKT0+dC1lKSksaT1HbCh0LC4wNSkscj1HbCh0LC45NSk7bj10LmZpbHRlcigodD0+dD49aSYmdDw9cikpLm1hcChlQ3QpfWNvbnN0IGk9TGwobik7cmV0dXJuIG51bGw9PWlbMF18fG51bGw9PWlbMV0/W106aX19Y2xhc3MgaUN0IGV4dGVuZHMgck8uQ29tcG9uZW50cy5TZWxlY3Rpb25Cb3hMYXllcntjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLmVhc2VGbj1UZix0aGlzLl9hbmltYXRpb25UaW1lPTc1MCx0aGlzLnhTY2FsZSh0KSx0aGlzLnlTY2FsZShlKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb249bmV3IHJPLkludGVyYWN0aW9ucy5EcmFnLHRoaXMuX2RvdWJsZUNsaWNrSW50ZXJhY3Rpb249bmV3IHJPLkludGVyYWN0aW9ucy5DbGljayx0aGlzLnNldHVwQ2FsbGJhY2tzKCksdGhpcy51bnpvb21NZXRob2Q9bix0aGlzLm9uRGV0YWNoKCgoKT0+e3RoaXMuX2RvdWJsZUNsaWNrSW50ZXJhY3Rpb24uZGV0YWNoRnJvbSh0aGlzKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24uZGV0YWNoRnJvbSh0aGlzKX0pKSx0aGlzLm9uQW5jaG9yKCgoKT0+e3RoaXMuX2RvdWJsZUNsaWNrSW50ZXJhY3Rpb24uYXR0YWNoVG8odGhpcyksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLmF0dGFjaFRvKHRoaXMpfSkpfWludGVyYWN0aW9uU3RhcnQodCl7dGhpcy5vblN0YXJ0PXR9aW50ZXJhY3Rpb25FbmQodCl7dGhpcy5vbkVuZD10fWRyYWdJbnRlcmFjdGlvbigpe3JldHVybiB0aGlzLl9kcmFnSW50ZXJhY3Rpb259c2V0dXBDYWxsYmFja3MoKXtsZXQgdD0hMTt0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnU3RhcnQoKHQ9Pnt0aGlzLmJvdW5kcyh7dG9wTGVmdDp0LGJvdHRvbVJpZ2h0OnR9KSx0aGlzLm9uU3RhcnQoKX0pKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnKCgoZSxuKT0+e3RoaXMuYm91bmRzKHt0b3BMZWZ0OmUsYm90dG9tUmlnaHQ6bn0pLHRoaXMuYm94VmlzaWJsZSghMCksdD0hMH0pKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnRW5kKCgoZSxuKT0+e3RoaXMuYm94VmlzaWJsZSghMSksdGhpcy5ib3VuZHMoe3RvcExlZnQ6ZSxib3R0b21SaWdodDpufSksdD90aGlzLnpvb20oKTp0aGlzLm9uRW5kKCksdD0hMX0pKSx0aGlzLl9kb3VibGVDbGlja0ludGVyYWN0aW9uLm9uRG91YmxlQ2xpY2sodGhpcy51bnpvb20uYmluZCh0aGlzKSl9YW5pbWF0aW9uVGltZSh0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9hbmltYXRpb25UaW1lO2lmKHQ8MCl0aHJvdyBuZXcgRXJyb3IoImFuaW1hdGlvblRpbWUgY2Fubm90IGJlIG5lZ2F0aXZlIik7cmV0dXJuIHRoaXMuX2FuaW1hdGlvblRpbWU9dCx0aGlzfWVhc2UodCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJlYXNlIGZ1bmN0aW9uIG11c3QgYmUgYSBmdW5jdGlvbiIpO3JldHVybiAwPT09dCgwKSYmMT09PXQoMSl8fHJPLlV0aWxzLldpbmRvdy53YXJuKCJFYXNpbmcgZnVuY3Rpb24gZG9lcyBub3QgbWFpbnRhaW4gaW52YXJpYW50IGYoMCk9PTAgJiYgZigxKT09MS4gQmFkIGJlaGF2aW9yIG1heSByZXN1bHQuIiksdGhpcy5lYXNlRm49dCx0aGlzfXpvb20oKXtsZXQgdD10aGlzLnhFeHRlbnQoKVswXS52YWx1ZU9mKCksZT10aGlzLnhFeHRlbnQoKVsxXS52YWx1ZU9mKCksbj10aGlzLnlFeHRlbnQoKVsxXS52YWx1ZU9mKCksaT10aGlzLnlFeHRlbnQoKVswXS52YWx1ZU9mKCk7dCE9PWUmJm4hPT1pJiZ0aGlzLmludGVycG9sYXRlWm9vbSh0LGUsbixpKX11bnpvb20oKXtsZXQgdD10aGlzLnhTY2FsZSgpO3QuX2RvbWFpbk1pbj1udWxsLHQuX2RvbWFpbk1heD1udWxsO2xldCBlPXQuX2dldEV4dGVudCgpO3RoaXMueFNjYWxlKCkuZG9tYWluKGUpLHRoaXMudW56b29tTWV0aG9kKCl9aXNab29taW5nKHQpe3RoaXMuX2RyYWdJbnRlcmFjdGlvbi5lbmFibGVkKCF0KSx0aGlzLl9kb3VibGVDbGlja0ludGVyYWN0aW9uLmVuYWJsZWQoIXQpfWludGVycG9sYXRlWm9vbSh0LGUsbixpKXtsZXQgcj10aGlzLnhTY2FsZSgpLmRvbWFpbigpWzBdLnZhbHVlT2YoKSxvPXRoaXMueFNjYWxlKCkuZG9tYWluKClbMV0udmFsdWVPZigpLGE9dGhpcy55U2NhbGUoKS5kb21haW4oKVswXS52YWx1ZU9mKCkscz10aGlzLnlTY2FsZSgpLmRvbWFpbigpWzFdLnZhbHVlT2YoKSxsPXRoaXMuZWFzZUZuLGM9KHQsZSxuKT0+QmQodCxlKShsKG4pKTt0aGlzLmlzWm9vbWluZyghMCk7bGV0IHU9RGF0ZS5ub3coKSxoPSgpPT57bGV0IGw9RGF0ZS5ub3coKSxkPTA9PT10aGlzLl9hbmltYXRpb25UaW1lPzE6TWF0aC5taW4oMSwobC11KS90aGlzLl9hbmltYXRpb25UaW1lKSxwPWMocix0LGQpLGY9YyhvLGUsZCksbT1jKGEsbixkKSxnPWMocyxpLGQpO3RoaXMueFNjYWxlKCkuZG9tYWluKFtwLGZdKSx0aGlzLnlTY2FsZSgpLmRvbWFpbihbbSxnXSksZDwxP3JPLlV0aWxzLkRPTS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVQb2x5ZmlsbChoKToodGhpcy5vbkVuZCgpLHRoaXMuaXNab29taW5nKCExKSl9O2goKX19dmFyIHJDdCxvQ3QsYUN0LHNDdDshKGZ1bmN0aW9uKHQpe3RbdC5OT05FPTBdPSJOT05FIix0W3QuRFJBR19aT09NSU5HPTFdPSJEUkFHX1pPT01JTkciLHRbdC5QQU5OSU5HPTJdPSJQQU5OSU5HIn0pKHJDdHx8KHJDdD17fSkpO2NsYXNzIGxDdCBleHRlbmRzIHJPLkNvbXBvbmVudHMuR3JvdXB7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy5zdGF0ZT1yQ3QuTk9ORSx0aGlzLnBhblN0YXJ0Q2FsbGJhY2s9bmV3IHJPLlV0aWxzLkNhbGxiYWNrU2V0LHRoaXMucGFuRW5kQ2FsbGJhY2s9bmV3IHJPLlV0aWxzLkNhbGxiYWNrU2V0LHRoaXMucGFuWm9vbT1uZXcgck8uSW50ZXJhY3Rpb25zLlBhblpvb20odCxlKSx0aGlzLnBhblpvb20uZHJhZ0ludGVyYWN0aW9uKCkubW91c2VGaWx0ZXIoKHQ9PmxDdC5pc1BhbktleSh0KSYmMD09PXQuYnV0dG9uKSksdGhpcy5wYW5ab29tLndoZWVsRmlsdGVyKHRoaXMuY2FuU2Nyb2xsWm9vbSksdGhpcy5kcmFnWm9vbUxheWVyPW5ldyBpQ3QodCxlLG4pLHRoaXMuZHJhZ1pvb21MYXllci5kcmFnSW50ZXJhY3Rpb24oKS5tb3VzZUZpbHRlcigodD0+IWxDdC5pc1BhbktleSh0KSYmMD09PXQuYnV0dG9uKSksdGhpcy5hcHBlbmQodGhpcy5kcmFnWm9vbUxheWVyKTtjb25zdCBpPXRoaXMub25XaGVlbC5iaW5kKHRoaXMpO3RoaXMub25BbmNob3IoKCgpPT57dGhpcy5fbW91c2VEaXNwYXRjaGVyPXJPLkRpc3BhdGNoZXJzLk1vdXNlLmdldERpc3BhdGNoZXIodGhpcyksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9uV2hlZWwoaSksdGhpcy5wYW5ab29tLmF0dGFjaFRvKHRoaXMpfSkpLHRoaXMub25EZXRhY2goKCgpPT57dGhpcy5wYW5ab29tLmRldGFjaEZyb20odGhpcyksdGhpcy5fbW91c2VEaXNwYXRjaGVyJiYodGhpcy5fbW91c2VEaXNwYXRjaGVyLm9mZldoZWVsKGkpLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1udWxsKX0pKSx0aGlzLnBhblpvb20uZHJhZ0ludGVyYWN0aW9uKCkub25EcmFnU3RhcnQoKCgpPT57dGhpcy5zdGF0ZT09ckN0Lk5PTkUmJnRoaXMuc2V0U3RhdGUockN0LlBBTk5JTkcpfSkpLHRoaXMucGFuWm9vbS5kcmFnSW50ZXJhY3Rpb24oKS5vbkRyYWdFbmQoKCgpPT57dGhpcy5zdGF0ZT09ckN0LlBBTk5JTkcmJnRoaXMuc2V0U3RhdGUockN0Lk5PTkUpfSkpLHRoaXMuZHJhZ1pvb21MYXllci5kcmFnSW50ZXJhY3Rpb24oKS5vbkRyYWdTdGFydCgoKCk9Pnt0aGlzLnN0YXRlPT1yQ3QuTk9ORSYmdGhpcy5zZXRTdGF0ZShyQ3QuRFJBR19aT09NSU5HKX0pKSx0aGlzLmRyYWdab29tTGF5ZXIuZHJhZ0ludGVyYWN0aW9uKCkub25EcmFnRW5kKCgoKT0+e3RoaXMuc3RhdGU9PXJDdC5EUkFHX1pPT01JTkcmJnRoaXMuc2V0U3RhdGUockN0Lk5PTkUpfSkpfW9uV2hlZWwodCxlKXtpZih0aGlzLmNhblNjcm9sbFpvb20oZSkpcmV0dXJuO2NvbnN0IG49dGhpcy5lbGVtZW50KCk7aWYoIW4uc2VsZWN0KCIuaGVscCIpLmVtcHR5KCkpcmV0dXJuO2NvbnN0IGk9bi5hcHBlbmQoImRpdiIpLmNsYXNzZWQoImhlbHAiLCEwKTtpLmFwcGVuZCgic3BhbiIpLnRleHQoIkFsdCArIFNjcm9sbCB0byBab29tIiksaS5vbigiYW5pbWF0aW9uZW5kIiwoKCk9PntpLnJlbW92ZSgpfSkpfXN0YXRpYyBpc1BhbktleSh0KXtyZXR1cm4gQm9vbGVhbih0LmFsdEtleSl8fEJvb2xlYW4odC5zaGlmdEtleSl9Y2FuU2Nyb2xsWm9vbSh0KXtyZXR1cm4gdC5hbHRLZXl9c2V0U3RhdGUodCl7aWYodGhpcy5zdGF0ZT09dClyZXR1cm47Y29uc3QgZT10aGlzLnN0YXRlO3RoaXMuc3RhdGU9dCx0aGlzLnJvb3QoKS5yZW1vdmVDbGFzcyh0aGlzLnN0YXRlQ2xhc3NOYW1lKGUpKSx0aGlzLnJvb3QoKS5hZGRDbGFzcyh0aGlzLnN0YXRlQ2xhc3NOYW1lKHQpKSxlPT1yQ3QuUEFOTklORyYmdGhpcy5wYW5FbmRDYWxsYmFjay5jYWxsQ2FsbGJhY2tzKCksdD09ckN0LlBBTk5JTkcmJnRoaXMucGFuU3RhcnRDYWxsYmFjay5jYWxsQ2FsbGJhY2tzKCl9c3RhdGVDbGFzc05hbWUodCl7c3dpdGNoKHQpe2Nhc2UgckN0LlBBTk5JTkc6cmV0dXJuInBhbm5pbmciO2Nhc2UgckN0LkRSQUdfWk9PTUlORzpyZXR1cm4iZHJhZy16b29taW5nIjtjYXNlIHJDdC5OT05FOmRlZmF1bHQ6cmV0dXJuIiJ9fW9uUGFuU3RhcnQodCl7dGhpcy5wYW5TdGFydENhbGxiYWNrLmFkZCh0KX1vblBhbkVuZCh0KXt0aGlzLnBhbkVuZENhbGxiYWNrLmFkZCh0KX1vblNjcm9sbFpvb20odCl7dGhpcy5wYW5ab29tLm9uWm9vbUVuZCh0KX1vbkRyYWdab29tU3RhcnQodCl7dGhpcy5kcmFnWm9vbUxheWVyLmludGVyYWN0aW9uU3RhcnQodCl9b25EcmFnWm9vbUVuZCh0KXt0aGlzLmRyYWdab29tTGF5ZXIuaW50ZXJhY3Rpb25FbmQodCl9fSEoZnVuY3Rpb24odCl7dFt0LlRFWFQ9MF09IlRFWFQiLHRbdC5ET009MV09IkRPTSJ9KShvQ3R8fChvQ3Q9e30pKSwoZnVuY3Rpb24odCl7dC5MT0c9ImxvZyIsdC5MSU5FQVI9ImxpbmVhciJ9KShhQ3R8fChhQ3Q9e30pKTtjbGFzcyBjQ3R7Y29uc3RydWN0b3IodCxlLG4saSxyLG8sYSxzLGwsYyx1KXt0aGlzLmRpcnR5RGF0YXNldHM9bmV3IFNldCx0aGlzLnNlcmllc05hbWVzPVtdLHRoaXMubmFtZTJkYXRhc2V0cz17fSx0aGlzLmNvbG9yU2NhbGU9aSx0aGlzLnRvb2x0aXA9cix0aGlzLmRhdGFzZXRzPVtdLHRoaXMuX2lnbm9yZVlPdXRsaWVycz0hMSx0aGlzLmxhc3RQb2ludHNEYXRhc2V0PW5ldyByTy5EYXRhc2V0LHRoaXMubmFuRGF0YXNldD1uZXcgck8uRGF0YXNldCx0aGlzLnlWYWx1ZUFjY2Vzc29yPWUsdGhpcy5zeW1ib2xGdW5jdGlvbj1jLHRoaXMuX2RlZmF1bHRYUmFuZ2U9cyx0aGlzLl9kZWZhdWx0WVJhbmdlPWwsdGhpcy50b29sdGlwQ29sdW1ucz1vLHRoaXMuYnVpbGRDaGFydCh0LGUsbixhLHUpfWJ1aWxkQ2hhcnQodCxlLG4saSxyKXt0aGlzLmRlc3Ryb3koKTtjb25zdCBvPXQoKTt0aGlzLnhBY2Nlc3Nvcj1vLmFjY2Vzc29yLHRoaXMueFNjYWxlPW8uc2NhbGUsdGhpcy54QXhpcz1vLmF4aXMsdGhpcy54QXhpcy5tYXJnaW4oMSkudGlja0xhYmVsUGFkZGluZygzKSxyJiZ0aGlzLnhBeGlzLmZvcm1hdHRlcihyKSx0aGlzLnlTY2FsZT1jQ3QuZ2V0WVNjYWxlRnJvbVR5cGUobiksdGhpcy55U2NhbGUuc2V0VmFsdWVQcm92aWRlckZvckRvbWFpbigoKCk9PnRoaXMuZ2V0VmFsdWVzRm9yWUF4aXNEb21haW5Db21wdXRlKCkpKSx0aGlzLnlBeGlzPW5ldyByTy5BeGVzLk51bWVyaWModGhpcy55U2NhbGUsImxlZnQiKTtsZXQgYT13VHQoMyk7dGhpcy55QXhpcy5tYXJnaW4oMCkudGlja0xhYmVsUGFkZGluZyg1KS5mb3JtYXR0ZXIoYSksdGhpcy55QXhpcy51c2VzVGV4dFdpZHRoQXBwcm94aW1hdGlvbighMCksdGhpcy5maWxsQXJlYT1pO2NvbnN0IHM9bmV3IGxDdCh0aGlzLnhTY2FsZSx0aGlzLnlTY2FsZSwoKCk9PnRoaXMucmVzZXREb21haW4oKSkpO3RoaXMudG9vbHRpcEludGVyYWN0aW9uPXRoaXMuY3JlYXRlVG9vbHRpcEludGVyYWN0aW9uKHMpLHRoaXMudG9vbHRpcFBvaW50c0NvbXBvbmVudD1uZXcgck8uQ29tcG9uZW50O2NvbnN0IGw9dGhpcy5idWlsZFBsb3QodGhpcy54U2NhbGUsdGhpcy55U2NhbGUsaSk7dGhpcy5ncmlkbGluZXM9bmV3IHJPLkNvbXBvbmVudHMuR3JpZGxpbmVzKHRoaXMueFNjYWxlLHRoaXMueVNjYWxlKTtsZXQgYz1udWxsO24hPT1hQ3QuTE9HJiYoYz1uZXcgck8uQ29tcG9uZW50cy5HdWlkZUxpbmVMYXllcigiaG9yaXpvbnRhbCIpLGMuc2NhbGUodGhpcy55U2NhbGUpLnZhbHVlKDApKTtsZXQgdT1uZXcgck8uQ29tcG9uZW50cy5HdWlkZUxpbmVMYXllcigidmVydGljYWwiKTt1LnNjYWxlKHRoaXMueFNjYWxlKS52YWx1ZSgwKSx0aGlzLmNlbnRlcj1uZXcgck8uQ29tcG9uZW50cy5Hcm91cChbdGhpcy5ncmlkbGluZXMsYyx1LGwsdGhpcy50b29sdGlwUG9pbnRzQ29tcG9uZW50LHNdKSx0aGlzLmNlbnRlci5hZGRDbGFzcygibWFpbiIpLHRoaXMub3V0ZXI9bmV3IHJPLkNvbXBvbmVudHMuVGFibGUoW1t0aGlzLnlBeGlzLHRoaXMuY2VudGVyXSxbbnVsbCx0aGlzLnhBeGlzXV0pfWJ1aWxkUGxvdCh0LGUsbil7biYmKHRoaXMubWFyZ2luQXJlYVBsb3Q9bmV3IHJPLlBsb3RzLkFyZWEsdGhpcy5tYXJnaW5BcmVhUGxvdC54KHRoaXMueEFjY2Vzc29yLHQpLHRoaXMubWFyZ2luQXJlYVBsb3QueShuLmhpZ2hlckFjY2Vzc29yLGUpLHRoaXMubWFyZ2luQXJlYVBsb3QueTAobi5sb3dlckFjY2Vzc29yKSx0aGlzLm1hcmdpbkFyZWFQbG90LmF0dHIoImZpbGwiLCgodCxlLG4pPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUobi5tZXRhZGF0YSgpLm5hbWUpKSksdGhpcy5tYXJnaW5BcmVhUGxvdC5hdHRyKCJmaWxsLW9wYWNpdHkiLC4zKSx0aGlzLm1hcmdpbkFyZWFQbG90LmF0dHIoInN0cm9rZS13aWR0aCIsMCkpLHRoaXMuc21vb3RoZWRBY2Nlc3Nvcj10PT50LnNtb290aGVkO2xldCBpPW5ldyByTy5QbG90cy5MaW5lO2kueCh0aGlzLnhBY2Nlc3Nvcix0KSxpLnkodGhpcy55VmFsdWVBY2Nlc3NvcixlKSxpLmF0dHIoInN0cm9rZSIsKCh0LGUsbik9PnRoaXMuY29sb3JTY2FsZS5zY2FsZShuLm1ldGFkYXRhKCkubmFtZSkpKSx0aGlzLmxpbmVQbG90PWksdGhpcy5zZXR1cFRvb2x0aXBzKGkpO2xldCByPW5ldyByTy5QbG90cy5MaW5lO2lmKHIueCh0aGlzLnhBY2Nlc3Nvcix0KSxyLnkodGhpcy5zbW9vdGhlZEFjY2Vzc29yLGUpLHIuYXR0cigic3Ryb2tlIiwoKHQsZSxuKT0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKG4ubWV0YWRhdGEoKS5uYW1lKSkpLHRoaXMuc21vb3RoTGluZVBsb3Q9cix0aGlzLnN5bWJvbEZ1bmN0aW9uKXtjb25zdCBuPW5ldyByTy5QbG90cy5TY2F0dGVyO24ueCh0aGlzLnhBY2Nlc3Nvcix0KSxuLnkodGhpcy55VmFsdWVBY2Nlc3NvcixlKSxuLmF0dHIoImZpbGwiLCgodCxlLG4pPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUobi5tZXRhZGF0YSgpLm5hbWUpKSksbi5hdHRyKCJvcGFjaXR5IiwxKSxuLnNpemUoOCksbi5zeW1ib2woKCh0LGUsbik9PnRoaXMuc3ltYm9sRnVuY3Rpb24obi5tZXRhZGF0YSgpLm5hbWUpKSksdGhpcy5tYXJrZXJzU2NhdHRlclBsb3Q9bn1sZXQgbz1uZXcgck8uUGxvdHMuU2NhdHRlcjtvLngodGhpcy54QWNjZXNzb3IsdCksby55KHRoaXMueVZhbHVlQWNjZXNzb3IsZSksby5hdHRyKCJmaWxsIiwodD0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKHQubmFtZSkpKSxvLmF0dHIoIm9wYWNpdHkiLDEpLG8uc2l6ZSg4KSxvLmRhdGFzZXRzKFt0aGlzLmxhc3RQb2ludHNEYXRhc2V0XSksdGhpcy5zY2F0dGVyUGxvdD1vO2xldCBhPW5ldyByTy5QbG90cy5TY2F0dGVyO2EueCh0aGlzLnhBY2Nlc3Nvcix0KSxhLnkoKHQ9PnQuZGlzcGxheVkpLGUpLGEuYXR0cigiZmlsbCIsKHQ9PnRoaXMuY29sb3JTY2FsZS5zY2FsZSh0Lm5hbWUpKSksYS5hdHRyKCJvcGFjaXR5IiwxKSxhLnNpemUoMTIpLGEuZGF0YXNldHMoW3RoaXMubmFuRGF0YXNldF0pLGEuc3ltYm9sKHJPLlN5bWJvbEZhY3Rvcmllcy50cmlhbmdsZSksdGhpcy5uYW5EaXNwbGF5PWE7Y29uc3Qgcz1bYSxvLHIsaV07cmV0dXJuIHRoaXMubWFyZ2luQXJlYVBsb3QmJnMucHVzaCh0aGlzLm1hcmdpbkFyZWFQbG90KSx0aGlzLm1hcmtlcnNTY2F0dGVyUGxvdCYmcy5wdXNoKHRoaXMubWFya2Vyc1NjYXR0ZXJQbG90KSxuZXcgck8uQ29tcG9uZW50cy5Hcm91cChzKX1pZ25vcmVZT3V0bGllcnModCl7dCE9PXRoaXMuX2lnbm9yZVlPdXRsaWVycyYmKHRoaXMuX2lnbm9yZVlPdXRsaWVycz10LHRoaXMudXBkYXRlU3BlY2lhbERhdGFzZXRzKCksdGhpcy55U2NhbGUuaWdub3JlT3V0bGllcih0KSx0aGlzLnJlc2V0WURvbWFpbigpKX1nZXRWYWx1ZXNGb3JZQXhpc0RvbWFpbkNvbXB1dGUoKXtjb25zdCB0PXRoaXMuZ2V0QWNjZXNzb3JzRm9yQ29tcHV0aW5nWVJhbmdlKCk7cmV0dXJuIFNlLmV4cG9ydHMuZmxhdHRlbkRlZXAodGhpcy5kYXRhc2V0cy5tYXAoKGU9PnQubWFwKCh0PT5lLmRhdGEoKS5tYXAoKG49PnQobiwtMSxlKSkpKSkpKSkuZmlsdGVyKGlzRmluaXRlKX11cGRhdGVTcGVjaWFsRGF0YXNldHMoKXtjb25zdCB0PXRoaXMuZ2V0WUF4aXNBY2Nlc3NvcigpO2xldCBlPXRoaXMuZGF0YXNldHMubWFwKChlPT57bGV0IG49bnVsbCxpPWUuZGF0YSgpLmZpbHRlcigobj0+IWlzTmFOKHQobiwtMSxlKSkpKTtyZXR1cm4gaS5sZW5ndGg+MCYmKG49aVtpLmxlbmd0aC0xXSxuLm5hbWU9ZS5tZXRhZGF0YSgpLm5hbWUsbi5yZWxhdGl2ZT1UVHQobiwwLGUpKSxufSkpLmZpbHRlcigodD0+bnVsbCE9dCkpO3RoaXMubGFzdFBvaW50c0RhdGFzZXQuZGF0YShlKSx0aGlzLm1hcmtlcnNTY2F0dGVyUGxvdCYmdGhpcy5tYXJrZXJzU2NhdHRlclBsb3QuZGF0YXNldHModGhpcy5kYXRhc2V0cy5tYXAodGhpcy5jcmVhdGVTYW1wbGVkRGF0YXNldEZvck1hcmtlcnMpKTtsZXQgbj1TZS5leHBvcnRzLmZsYXR0ZW4odGhpcy5kYXRhc2V0cy5tYXAoKGU9PntsZXQgbj1udWxsLGk9ZS5kYXRhKCkscj0wO2Zvcig7cjxpLmxlbmd0aCYmbnVsbD09bjspaXNOYU4odChpW3JdLC0xLGUpKXx8KG49dChpW3JdLC0xLGUpKSxyKys7bnVsbD09biYmKG49MCk7bGV0IG89W107Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKylpc05hTih0KGlbcl0sLTEsZSkpPyhpW3JdLm5hbWU9ZS5tZXRhZGF0YSgpLm5hbWUsaVtyXS5kaXNwbGF5WT1uLGlbcl0ucmVsYXRpdmU9VFR0KGlbcl0sMCxlKSxvLnB1c2goaVtyXSkpOm49dChpW3JdLC0xLGUpO3JldHVybiBvfSkpKTt0aGlzLm5hbkRhdGFzZXQuZGF0YShuKX1yZXNldERvbWFpbigpe3RoaXMucmVzZXRYRG9tYWluKCksdGhpcy5yZXNldFlEb21haW4oKX1yZXNldFhEb21haW4oKXtsZXQgdDtpZihudWxsIT10aGlzLl9kZWZhdWx0WFJhbmdlKXQ9dGhpcy5fZGVmYXVsdFhSYW5nZTtlbHNle2NvbnN0IGU9dGhpcy54U2NhbGU7ZS5fZG9tYWluTWluPW51bGwsZS5fZG9tYWluTWF4PW51bGwsdD1lLl9nZXRFeHRlbnQoKX10aGlzLnhTY2FsZS5kb21haW4odCl9cmVzZXRZRG9tYWluKCl7bnVsbCE9dGhpcy5fZGVmYXVsdFlSYW5nZT90aGlzLnlTY2FsZS5kb21haW4odGhpcy5fZGVmYXVsdFlSYW5nZSk6KHRoaXMueVNjYWxlLmF1dG9Eb21haW4oKSx0aGlzLnlTY2FsZS5kb21haW4odGhpcy55U2NhbGUuZG9tYWluKCkpKX1nZXRBY2Nlc3NvcnNGb3JDb21wdXRpbmdZUmFuZ2UoKXtjb25zdCB0PVt0aGlzLmdldFlBeGlzQWNjZXNzb3IoKV07cmV0dXJuIHRoaXMuZmlsbEFyZWEmJnQucHVzaCh0aGlzLmZpbGxBcmVhLmxvd2VyQWNjZXNzb3IsdGhpcy5maWxsQXJlYS5oaWdoZXJBY2Nlc3NvciksdH1nZXRZQXhpc0FjY2Vzc29yKCl7cmV0dXJuIHRoaXMuc21vb3RoaW5nRW5hYmxlZD90aGlzLnNtb290aGVkQWNjZXNzb3I6dGhpcy55VmFsdWVBY2Nlc3Nvcn1jcmVhdGVUb29sdGlwSW50ZXJhY3Rpb24odCl7Y29uc3QgZT1uZXcgT1R0LG49KCk9PntlLmVuYWJsZWQoITEpLHRoaXMuaGlkZVRvb2x0aXBzKCl9LGk9KCk9PmUuZW5hYmxlZCghMCk7cmV0dXJuIHQub25QYW5TdGFydChuKSx0Lm9uRHJhZ1pvb21TdGFydChuKSx0Lm9uUGFuRW5kKGkpLHQub25EcmFnWm9vbUVuZChpKSx0Lm9uU2Nyb2xsWm9vbSgoKCk9PnRoaXMudXBkYXRlVG9vbHRpcENvbnRlbnQodGhpcy5fbGFzdE1vdXNlUG9zaXRpb24pKSksZS5vblBvaW50ZXJNb3ZlKCh0PT57dGhpcy5fbGFzdE1vdXNlUG9zaXRpb249dCx0aGlzLnVwZGF0ZVRvb2x0aXBDb250ZW50KHQpfSkpLGUub25Qb2ludGVyRXhpdCgoKCk9PnRoaXMuaGlkZVRvb2x0aXBzKCkpKSxlfXVwZGF0ZVRvb2x0aXBDb250ZW50KHQpe3RoaXMubGluZVBsb3QmJih3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fdG9vbHRpcFVwZGF0ZUFuaW1hdGlvbkZyYW1lKSx0aGlzLl90b29sdGlwVXBkYXRlQW5pbWF0aW9uRnJhbWU9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PntsZXQgZT17eDp0LngseTp0LnksZGF0dW06bnVsbCxkYXRhc2V0Om51bGx9LG49dGhpcy5ncmlkbGluZXMuY29udGVudCgpLm5vZGUoKS5nZXRCQm94KCksaT10aGlzLmxpbmVQbG90LmRhdGFzZXRzKCkubWFwKCh0PT50aGlzLmZpbmRDbG9zZXN0UG9pbnQoZSx0KSkpLmZpbHRlcihCb29sZWFuKSxyPXJPLlV0aWxzLkRPTS5pbnRlcnNlY3RzQkJveCxvPWkuZmlsdGVyKCh0PT5yKHQueCx0Lnksbil8fGlzTmFOKHRoaXMueVZhbHVlQWNjZXNzb3IodC5kYXR1bSwwLHQuZGF0YXNldCkpKSksYT1vLmZpbHRlcigodD0+IWlzTmFOKHRoaXMueVZhbHVlQWNjZXNzb3IodC5kYXR1bSwwLHQuZGF0YXNldCkpKSk7aWYoMCE9PWkubGVuZ3RoKXt0aGlzLnNjYXR0ZXJQbG90LmF0dHIoImRpc3BsYXkiLCJub25lIik7Y29uc3QgdD10aGlzLnRvb2x0aXBQb2ludHNDb21wb25lbnQuY29udGVudCgpLnNlbGVjdEFsbCgiLnBvaW50IikuZGF0YShhLCh0PT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lKSk7dC5lbnRlcigpLmFwcGVuZCgiY2lyY2xlIikuY2xhc3NlZCgicG9pbnQiLCEwKSx0LmF0dHIoInIiLDQpLmF0dHIoImN4IiwodD0+dC54KSkuYXR0cigiY3kiLCh0PT50LnkpKS5zdHlsZSgic3Ryb2tlIiwibm9uZSIpLmF0dHIoImZpbGwiLCh0PT50aGlzLmNvbG9yU2NhbGUuc2NhbGUodC5kYXRhc2V0Lm1ldGFkYXRhKCkubmFtZSkpKSx0LmV4aXQoKS5yZW1vdmUoKSx0aGlzLmRyYXdUb29sdGlwcyhvLGUsdGhpcy50b29sdGlwQ29sdW1ucyl9ZWxzZSB0aGlzLmhpZGVUb29sdGlwcygpfSkpKX1oaWRlVG9vbHRpcHMoKXt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fdG9vbHRpcFVwZGF0ZUFuaW1hdGlvbkZyYW1lKSx0aGlzLnRvb2x0aXAuaGlkZSgpLHRoaXMuc2NhdHRlclBsb3QuYXR0cigiZGlzcGxheSIsImJsb2NrIiksdGhpcy50b29sdGlwUG9pbnRzQ29tcG9uZW50LmNvbnRlbnQoKS5zZWxlY3RBbGwoIi5wb2ludCIpLnJlbW92ZSgpfXNldHVwVG9vbHRpcHModCl7dC5vbkRldGFjaCgoKCk9Pnt0aGlzLnRvb2x0aXBJbnRlcmFjdGlvbi5kZXRhY2hGcm9tKHQpLHRoaXMudG9vbHRpcEludGVyYWN0aW9uLmVuYWJsZWQoITEpfSkpLHQub25BbmNob3IoKCgpPT57dGhpcy50b29sdGlwSW50ZXJhY3Rpb24uYXR0YWNoVG8odCksdGhpcy50b29sdGlwSW50ZXJhY3Rpb24uZW5hYmxlZCghMCl9KSl9ZHJhd1Rvb2x0aXBzKHQsZSxuKXtpZighdC5sZW5ndGgpcmV0dXJuIHZvaWQgdGhpcy50b29sdGlwLmhpZGUoKTtjb25zdHtjb2xvclNjYWxlOml9PXRoaXM7bj1be3RpdGxlOiIiLHN0YXRpYzohMSxldmFsVHlwZTpvQ3QuRE9NLGV2YWx1YXRlKHQpe3JldHVybiBTdSh0aGlzKS5zZWxlY3QoInNwYW4iKS5zdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsKCgpPT5pLnNjYWxlKHQuZGF0YXNldC5tZXRhZGF0YSgpLm5hbWUpKSksIiJ9LGVudGVyKHQpe1N1KHRoaXMpLmFwcGVuZCgic3BhbiIpLmNsYXNzZWQoInN3YXRjaCIsITApLnN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwoKCk9Pmkuc2NhbGUodC5kYXRhc2V0Lm1ldGFkYXRhKCkubmFtZSkpKX19LC4uLm5dO2NvbnN0IHI9dD0+TWF0aC5wb3codC54LWUueCwyKStNYXRoLnBvdyh0LnktZS55LDIpLG89U2UuZXhwb3J0cy5taW4odC5tYXAocikpLGE9dGhpcy5zbW9vdGhpbmdFbmFibGVkP3RoaXMuc21vb3RoZWRBY2Nlc3Nvcjp0aGlzLnlWYWx1ZUFjY2Vzc29yO3Q9ImFzY2VuZGluZyI9PT10aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kP1NlLmV4cG9ydHMuc29ydEJ5KHQsKHQ9PmEodC5kYXR1bSwtMSx0LmRhdGFzZXQpKSk6ImRlc2NlbmRpbmciPT09dGhpcy50b29sdGlwU29ydGluZ01ldGhvZD9TZS5leHBvcnRzLnNvcnRCeSh0LCh0PT5hKHQuZGF0dW0sLTEsdC5kYXRhc2V0KSkpLnJldmVyc2UoKToibmVhcmVzdCI9PT10aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kP1NlLmV4cG9ydHMuc29ydEJ5KHQscik6dC5zbGljZSgwKS5yZXZlcnNlKCk7Y29uc3Qgcz10aGlzLGw9U3UodGhpcy50b29sdGlwLmNvbnRlbnQoKSkuc2VsZWN0KCJ0YWJsZSIpLGM9bC5zZWxlY3QoInRoZWFkIikuc2VsZWN0QWxsKCJ0aCIpLmRhdGEobiwoKHQsZSxuKT0+dC50aXRsZSkpO2MuZW50ZXIoKS5hcHBlbmQoInRoIikudGV4dCgodD0+dC50aXRsZSkpLm5vZGVzKCksYy5leGl0KCkucmVtb3ZlKCk7Y29uc3QgdT1sLnNlbGVjdCgidGJvZHkiKS5zZWxlY3RBbGwoInRyIikuZGF0YSh0LCgodCxlLG4pPT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lKSk7dS5jbGFzc2VkKCJkaXN0YW50IiwodD0+e2xldCBuPXQuZGF0YXNldC5kYXRhKClbMF0saT1TZS5leHBvcnRzLmxhc3QodC5kYXRhc2V0LmRhdGEoKSkscj10aGlzLnhTY2FsZS5zY2FsZSh0aGlzLnhBY2Nlc3NvcihuLDAsdC5kYXRhc2V0KSksbz10aGlzLnhTY2FsZS5zY2FsZSh0aGlzLnhBY2Nlc3NvcihpLDAsdC5kYXRhc2V0KSksYT10aGlzLnNtb290aGluZ0VuYWJsZWQ/dC5kYXR1bS5zbW9vdGhlZDp0aGlzLnlWYWx1ZUFjY2Vzc29yKHQuZGF0dW0sMCx0LmRhdGFzZXQpO3JldHVybiBlLng8cnx8ZS54Pm98fGlzTmFOKGEpfSkpLmNsYXNzZWQoImNsb3Nlc3QiLCh0PT5yKHQpPT09bykpLmVhY2goKGZ1bmN0aW9uKHQpe3MuZHJhd1Rvb2x0aXBSb3codGhpcyxuLHQpfSkpLm9yZGVyKCksdS5leGl0KCkucmVtb3ZlKCksdS5lbnRlcigpLmFwcGVuZCgidHIiKS5lYWNoKChmdW5jdGlvbih0KXtzLmRyYXdUb29sdGlwUm93KHRoaXMsbix0KX0pKS5ub2RlcygpLHRoaXMudG9vbHRpcC51cGRhdGVBbmRQb3NpdGlvbih0aGlzLnRhcmdldFNWRy5ub2RlKCkpfWRyYXdUb29sdGlwUm93KHQsZSxuKXtjb25zdCBpPXRoaXMscj1TdSh0KS5zZWxlY3RBbGwoInRkIikuZGF0YShlKTtyLmVhY2goKGZ1bmN0aW9uKHQpe3Quc3RhdGljfHxpLmRyYXdUb29sdGlwQ29sdW1uLmNhbGwoaSx0aGlzLHQsbil9KSksci5leGl0KCkucmVtb3ZlKCksci5lbnRlcigpLmFwcGVuZCgidGQiKS5lYWNoKChmdW5jdGlvbih0KXsiZW50ZXIiaW4gdCYmdC5lbnRlciYmdC5lbnRlci5jYWxsKHRoaXMsbiksaS5kcmF3VG9vbHRpcENvbHVtbi5jYWxsKGksdGhpcyx0LG4pfSkpfWRyYXdUb29sdGlwQ29sdW1uKHQsZSxuKXtjb25zdHtzbW9vdGhpbmdFbmFibGVkOml9PXRoaXM7ImV2YWxUeXBlImluIGUmJmUuZXZhbFR5cGU9PW9DdC5ET00/ZS5ldmFsdWF0ZS5jYWxsKHQsbix7c21vb3RoaW5nRW5hYmxlZDppfSk6U3UodCkudGV4dChlLmV2YWx1YXRlLmNhbGwodCxuLHtzbW9vdGhpbmdFbmFibGVkOml9KSl9ZmluZENsb3Nlc3RQb2ludCh0LGUpe2NvbnN0IG49ZS5kYXRhKCkubWFwKCgodCxuKT0+dGhpcy54U2NhbGUuc2NhbGUodGhpcy54QWNjZXNzb3IodCxuLGUpKSkpO2xldCBpPVNlLmV4cG9ydHMuc29ydGVkSW5kZXgobix0LngpO2lmKDA9PW4ubGVuZ3RoKXJldHVybiBudWxsO2k9PT1uLmxlbmd0aD9pLT0xOjAhPT1pJiYoaT1NYXRoLmFicyhuW2ktMV0tdC54KTxNYXRoLmFicyhuW2ldLXQueCk/aS0xOmkpO2NvbnN0IHI9ZS5kYXRhKClbaV0sbz10aGlzLnNtb290aGluZ0VuYWJsZWQ/dGhpcy5zbW9vdGhlZEFjY2Vzc29yKHIsaSxlKTp0aGlzLnlWYWx1ZUFjY2Vzc29yKHIsaSxlKTtyZXR1cm57eDpuW2ldLHk6dGhpcy55U2NhbGUuc2NhbGUobyksZGF0dW06cixkYXRhc2V0OmV9fXJlc21vb3RoRGF0YXNldCh0KXtsZXQgZT10LmRhdGEoKTtjb25zdCBuPXRoaXMuc21vb3RoaW5nV2VpZ2h0O2xldCBpPWUubGVuZ3RoPjA/MDpOYU4scj0wO2NvbnN0IG89ZS5tYXAoKChlLG4pPT50aGlzLnlWYWx1ZUFjY2Vzc29yKGUsbix0KSkpLGE9by5ldmVyeSgodD0+dD09b1swXSkpO2UuZm9yRWFjaCgoKHQsZSk9Pntjb25zdCBzPW9bZV07aWYoYXx8IU51bWJlci5pc0Zpbml0ZShzKSl0LnNtb290aGVkPXM7ZWxzZXtpPWkqbisoMS1uKSpzLHIrKztsZXQgZT0xOzEhPT1uJiYoZT0xLU1hdGgucG93KG4scikpLHQuc21vb3RoZWQ9aS9lfX0pKX1nZXREYXRhc2V0KHQpe3JldHVybiB2b2lkIDA9PT10aGlzLm5hbWUyZGF0YXNldHNbdF0mJih0aGlzLm5hbWUyZGF0YXNldHNbdF09bmV3IHJPLkRhdGFzZXQoW10se25hbWU6dCxtZXRhOm51bGx9KSksdGhpcy5uYW1lMmRhdGFzZXRzW3RdfXN0YXRpYyBnZXRZU2NhbGVGcm9tVHlwZSh0KXtpZih0PT09YUN0LkxPRylyZXR1cm4gbmV3IG5DdDtpZih0PT09YUN0LkxJTkVBUilyZXR1cm4gbmV3IFpUdDt0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB5U2NhbGUgdHlwZSAiK3QpfXNldFZpc2libGVTZXJpZXModCl7dGhpcy5kaXNhYmxlQ2hhbmdlcygpLCh0PXQuc29ydCgpKS5yZXZlcnNlKCksdGhpcy5zZXJpZXNOYW1lcz10fWRpc2FibGVDaGFuZ2VzKCl7dGhpcy5kaXJ0eURhdGFzZXRzLnNpemV8fCh0aGlzLmxpbmVQbG90LmRhdGFzZXRzKFtdKSx0aGlzLnNtb290aExpbmVQbG90JiZ0aGlzLnNtb290aExpbmVQbG90LmRhdGFzZXRzKFtdKSx0aGlzLm1hcmdpbkFyZWFQbG90JiZ0aGlzLm1hcmdpbkFyZWFQbG90LmRhdGFzZXRzKFtdKSl9Y29tbWl0Q2hhbmdlcygpe3RoaXMuZGF0YXNldHM9dGhpcy5zZXJpZXNOYW1lcy5tYXAoKHQ9PnRoaXMuZ2V0RGF0YXNldCh0KSkpLFsuLi50aGlzLmRpcnR5RGF0YXNldHNdLmZvckVhY2goKHQ9Pnt0aGlzLnNtb290aGluZ0VuYWJsZWQmJnRoaXMucmVzbW9vdGhEYXRhc2V0KHRoaXMuZ2V0RGF0YXNldCh0KSl9KSksdGhpcy51cGRhdGVTcGVjaWFsRGF0YXNldHMoKSx0aGlzLmxpbmVQbG90LmRhdGFzZXRzKHRoaXMuZGF0YXNldHMpLHRoaXMuc21vb3RoaW5nRW5hYmxlZCYmdGhpcy5zbW9vdGhMaW5lUGxvdC5kYXRhc2V0cyh0aGlzLmRhdGFzZXRzKSx0aGlzLm1hcmdpbkFyZWFQbG90JiZ0aGlzLm1hcmdpbkFyZWFQbG90LmRhdGFzZXRzKHRoaXMuZGF0YXNldHMpLHRoaXMubWVhc3VyZUJCb3hBbmRNYXliZUludmFsaWRhdGVMYXlvdXRJblJhZigpLHRoaXMuZGlydHlEYXRhc2V0cy5jbGVhcigpfWNyZWF0ZVNhbXBsZWREYXRhc2V0Rm9yTWFya2Vycyh0KXtjb25zdCBlPXQuZGF0YSgpO2lmKGUubGVuZ3RoPD0yMClyZXR1cm4gdDtjb25zdCBuPU1hdGguY2VpbChlLmxlbmd0aC8yMCksaT1uZXcgQXJyYXkoTWF0aC5mbG9vcihlLmxlbmd0aC9uKSk7Zm9yKGxldCB0PTAscj0wO3Q8aS5sZW5ndGg7dCsrLHIrPW4paVt0XT1lW3JdO3JldHVybiBuZXcgck8uRGF0YXNldChpLHQubWV0YWRhdGEoKSl9c2V0U2VyaWVzRGF0YSh0LGUpe3RoaXMuZGlzYWJsZUNoYW5nZXMoKSx0aGlzLmdldERhdGFzZXQodCkuZGF0YShlKSx0aGlzLmRpcnR5RGF0YXNldHMuYWRkKHQpfXNldFNlcmllc01ldGFkYXRhKHQsZSl7dGhpcy5kaXNhYmxlQ2hhbmdlcygpLHRoaXMuZ2V0RGF0YXNldCh0KS5tZXRhZGF0YShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5nZXREYXRhc2V0KHQpLm1ldGFkYXRhKCkpLHttZXRhOmV9KSksdGhpcy5kaXJ0eURhdGFzZXRzLmFkZCh0KX1zbW9vdGhpbmdVcGRhdGUodCl7dGhpcy5zbW9vdGhpbmdXZWlnaHQ9dCx0aGlzLmRhdGFzZXRzLmZvckVhY2goKHQ9PnRoaXMucmVzbW9vdGhEYXRhc2V0KHQpKSksdGhpcy5zbW9vdGhpbmdFbmFibGVkfHwodGhpcy5saW5lUGxvdC5hZGRDbGFzcygiZ2hvc3QiKSx0aGlzLnNjYXR0ZXJQbG90LnkodGhpcy5zbW9vdGhlZEFjY2Vzc29yLHRoaXMueVNjYWxlKSx0aGlzLnNtb290aGluZ0VuYWJsZWQ9ITAsdGhpcy5zbW9vdGhMaW5lUGxvdC5kYXRhc2V0cyh0aGlzLmRhdGFzZXRzKSksdGhpcy5tYXJrZXJzU2NhdHRlclBsb3QmJnRoaXMubWFya2Vyc1NjYXR0ZXJQbG90LnkodGhpcy5nZXRZQXhpc0FjY2Vzc29yKCksdGhpcy55U2NhbGUpLHRoaXMudXBkYXRlU3BlY2lhbERhdGFzZXRzKCl9c21vb3RoaW5nRGlzYWJsZSgpe3RoaXMuc21vb3RoaW5nRW5hYmxlZCYmKHRoaXMubGluZVBsb3QucmVtb3ZlQ2xhc3MoImdob3N0IiksdGhpcy5zY2F0dGVyUGxvdC55KHRoaXMueVZhbHVlQWNjZXNzb3IsdGhpcy55U2NhbGUpLHRoaXMuc21vb3RoTGluZVBsb3QuZGF0YXNldHMoW10pLHRoaXMuc21vb3RoaW5nRW5hYmxlZD0hMSx0aGlzLnVwZGF0ZVNwZWNpYWxEYXRhc2V0cygpKSx0aGlzLm1hcmtlcnNTY2F0dGVyUGxvdCYmdGhpcy5tYXJrZXJzU2NhdHRlclBsb3QueSh0aGlzLmdldFlBeGlzQWNjZXNzb3IoKSx0aGlzLnlTY2FsZSl9c2V0Q29sb3JTY2FsZSh0KXt0aGlzLmNvbG9yU2NhbGU9dH1zZXRUb29sdGlwQ29sdW1ucyh0KXt0aGlzLnRvb2x0aXBDb2x1bW5zPXR9c2V0VG9vbHRpcFNvcnRpbmdNZXRob2QodCl7dGhpcy50b29sdGlwU29ydGluZ01ldGhvZD10fXJlbmRlclRvKHQpe3RoaXMudGFyZ2V0U1ZHPXQsdGhpcy5vdXRlci5yZW5kZXJUbyh0KSxudWxsIT10aGlzLl9kZWZhdWx0WFJhbmdlJiZ0aGlzLnJlc2V0WERvbWFpbigpLG51bGwhPXRoaXMuX2RlZmF1bHRZUmFuZ2UmJnRoaXMucmVzZXRZRG9tYWluKCksdGhpcy5tZWFzdXJlQkJveEFuZE1heWJlSW52YWxpZGF0ZUxheW91dEluUmFmKCl9cmVkcmF3KCl7d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JlZHJhd1JhZiksdGhpcy5fcmVkcmF3UmFmPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5tZWFzdXJlQkJveEFuZE1heWJlSW52YWxpZGF0ZUxheW91dCgpLHRoaXMub3V0ZXIucmVkcmF3KCl9KSl9bWVhc3VyZUJCb3hBbmRNYXliZUludmFsaWRhdGVMYXlvdXRJblJhZigpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9pbnZhbGlkYXRlTGF5b3V0UmFmKSx0aGlzLl9pbnZhbGlkYXRlTGF5b3V0UmFmPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5tZWFzdXJlQkJveEFuZE1heWJlSW52YWxpZGF0ZUxheW91dCgpfSkpfW1lYXN1cmVCQm94QW5kTWF5YmVJbnZhbGlkYXRlTGF5b3V0KCl7aWYodGhpcy5fbGFzdERyYXdCQm94KXtjb25zdHt3aWR0aDp0fT10aGlzLl9sYXN0RHJhd0JCb3gse3dpZHRoOmV9PXRoaXMudGFyZ2V0U1ZHLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTswPT10JiZ0PGUmJnRoaXMub3V0ZXIuaW52YWxpZGF0ZUNhY2hlKCl9dGhpcy5fbGFzdERyYXdCQm94PXRoaXMudGFyZ2V0U1ZHLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1kZXN0cm95KCl7d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JlZHJhd1JhZiksd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2ludmFsaWRhdGVMYXlvdXRSYWYpLHRoaXMub3V0ZXImJnRoaXMub3V0ZXIuZGVzdHJveSgpfW9uQW5jaG9yKHQpe3RoaXMub3V0ZXImJnRoaXMub3V0ZXIub25BbmNob3IodCl9aXNEYXRhRml0VG9Eb21haW4oKXtyZXR1cm4gdCh0aGlzLnhBeGlzLmdldFNjYWxlKCkpJiZ0KHRoaXMueUF4aXMuZ2V0U2NhbGUoKSk7ZnVuY3Rpb24gdCh0KXtjb25zdCBlPXQuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4oKSxuPXQuZ2V0VHJhbnNmb3JtYXRpb25FeHRlbnQoKTtyZXR1cm4gblswXT09PWVbMF0mJm5bMV09PT1lWzFdfX19IShmdW5jdGlvbih0KXt0LkdST1VQPSJHIix0LkRJVj0iRElWIix0LlNWRz0iU1ZHIix0LlRFWFQ9IlRFWFQifSkoc0N0fHwoc0N0PXt9KSk7Y2xhc3MgdUN0IGV4dGVuZHMgY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy51bmlxdWVJZD0wLHRoaXMucm9vdD10fWV4cG9ydEFzU3RyaW5nKCl7Y29uc3QgdD10aGlzLmNvbnZlcnQodGhpcy5yb290KTtpZighdClyZXR1cm4iIjtjb25zdCBlPXRoaXMuY3JlYXRlUm9vdFN2ZygpO3JldHVybiBlLmFwcGVuZENoaWxkKHQpLGUub3V0ZXJIVE1MfWNyZWF0ZVVuaXF1ZUlkKHQpe3JldHVybmAke3R9XyR7dGhpcy51bmlxdWVJZCsrfWB9Z2V0U2l6ZSgpe3JldHVybiB0aGlzLnJvb3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y3JlYXRlUm9vdFN2Zygpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3ZnIiksZT10aGlzLmdldFNpemUoKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGVOUygic3ZnIiwidmlld0JveCIsYDAgMCAke2Uud2lkdGh9ICR7ZS5oZWlnaHR9YCksdC5zZXRBdHRyaWJ1dGUoInhtbG5zIiwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciKSx0fWNvbnZlcnQodCl7bGV0IGU9bnVsbDtjb25zdCBuPXQubm9kZU5hbWUudG9VcHBlckNhc2UoKTtpZih0Lm5vZGVUeXBlIT1Ob2RlLkVMRU1FTlRfTk9ERXx8biE9c0N0LkRJViYmbiE9c0N0LlNWRyllPXQuY2xvbmVOb2RlKCk7ZWxzZXtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoc0N0LkdST1VQKTtjb25zdCBuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLGk9cGFyc2VJbnQobi5sZWZ0LDEwKSxyPXBhcnNlSW50KG4udG9wLDEwKTtpZihpfHxyKXtjb25zdCB0PXRoaXMuY3JlYXRlVW5pcXVlSWQoImNsaXAiKTtlLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixgdHJhbnNsYXRlKCR7aX0sICR7cn0pYCksZS5zZXRBdHRyaWJ1dGUoImNsaXAtcGF0aCIsYHVybCgjJHt0fSlgKTtjb25zdCBvPXBhcnNlSW50KG4ud2lkdGgsMTApLGE9cGFyc2VJbnQobi5oZWlnaHQsMTApLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicmVjdCIpO3Muc2V0QXR0cmlidXRlKCJ3aWR0aCIsU3RyaW5nKG8pKSxzLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixTdHJpbmcoYSkpO2NvbnN0IGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJzdmciLCJjbGlwUGF0aCIpO2wuaWQ9dCxsLmFwcGVuZENoaWxkKHMpLGUuYXBwZW5kQ2hpbGQobCl9fXJldHVybiBBcnJheS5mcm9tKHQuY2hpbGROb2RlcykubWFwKCh0PT50aGlzLmNvbnZlcnQodCkpKS5maWx0ZXIoQm9vbGVhbikuZm9yRWFjaCgodD0+ZS5hcHBlbmRDaGlsZCh0KSkpLGUubm9kZU5hbWUudG9VcHBlckNhc2UoKT09c0N0LkdST1VQJiYhZS5oYXNDaGlsZE5vZGVzKCl8fHRoaXMuc2hvdWxkT21pdE5vZGUodCk/bnVsbDp0aGlzLnN0cmlwQ2xhc3ModGhpcy50cmFuc2ZlclN0eWxlKHQsZSkpfXN0cmlwQ2xhc3ModCl7cmV0dXJuIHQubm9kZVR5cGU9PU5vZGUuRUxFTUVOVF9OT0RFJiZ0LnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKSx0fXRyYW5zZmVyU3R5bGUodCxlKXtpZihlLm5vZGVUeXBlIT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4gZTtjb25zdCBuPWUsaT1lLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkscj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTtyZXR1cm4gaT09c0N0LlRFWFQmJk9iamVjdC5hc3NpZ24obi5zdHlsZSx7Zm9udEZhbWlseTpyLmZvbnRGYW1pbHksZm9udFNpemU6ci5mb250U2l6ZSxmb250V2VpZ2h0OnIuZm9udFdlaWdodH0pLGkhPXNDdC5HUk9VUCYmKG4uc2V0QXR0cmlidXRlKCJmaWxsIixyLmZpbGwpLG4uc2V0QXR0cmlidXRlKCJzdHJva2UiLHIuc3Ryb2tlKSxuLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIixyLnN0cm9rZVdpZHRoKSksIjEiIT1yLm9wYWNpdHkmJm4uc2V0QXR0cmlidXRlKCJvcGFjaXR5IixyLm9wYWNpdHkpLGV9c2hvdWxkT21pdE5vZGUodCl7cmV0dXJuITF9fXtzaG91bGRPbWl0Tm9kZSh0KXtyZXR1cm4gdC5ub2RlVHlwZT09Tm9kZS5FTEVNRU5UX05PREUmJnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJzY2F0dGVyLXBsb3QiKX19ZWwoe21vZHVsZU5hbWU6InZ6LXBhbi16b29tLXN0eWxlIixzdHlsZUNvbnRlbnQ6IlxuICAgIC5oZWxwIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDFzO1xuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlLW91dDtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzAsIDMwLCAzMCwgMC42KTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbGVmdDogMDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAuaGVscCA+IHNwYW4ge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGZhZGUtb3V0IHtcbiAgICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICAifSk7Y29uc3QgaEN0PXdUdCg0KSxkQ3Q9dD0+aXNOYU4odCk/Ik5hTiI6aEN0KHQpLHBDdD1be3RpdGxlOiJOYW1lIixldmFsdWF0ZTp0PT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lfSx7dGl0bGU6IlNtb290aGVkIixldmFsdWF0ZSh0LGUpe2NvbnN0e3Ntb290aGluZ0VuYWJsZWQ6bn09ZTtyZXR1cm4gZEN0KG4/dC5kYXR1bS5zbW9vdGhlZDp0LmRhdHVtLnNjYWxhcil9fSx7dGl0bGU6IlZhbHVlIixldmFsdWF0ZTp0PT5kQ3QodC5kYXR1bS5zY2FsYXIpfSx7dGl0bGU6IlN0ZXAiLGV2YWx1YXRlOnQ9PlNUdCh0LmRhdHVtLnN0ZXApfSx7dGl0bGU6IlRpbWUiLGV2YWx1YXRlOnQ9PkVUdCh0LmRhdHVtLndhbGxfdGltZSl9LHt0aXRsZToiUmVsYXRpdmUiLGV2YWx1YXRlOnQ9PkNUdChUVHQodC5kYXR1bSwwLHQuZGF0YXNldCkpfV07bGV0IGZDdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29sb3JTY2FsZT0obmV3IHJPLlNjYWxlcy5Db2xvcikucmFuZ2UoZ0Euc2xpY2UoMCkpLHRoaXMuc21vb3RoaW5nRW5hYmxlZD0hMSx0aGlzLnNtb290aGluZ1dlaWdodD0uNix0aGlzLnhUeXBlPW51bGwsdGhpcy54Q29tcG9uZW50c0NyZWF0aW9uTWV0aG9kPW51bGwsdGhpcy55VmFsdWVBY2Nlc3Nvcj10PT50LnNjYWxhcix0aGlzLnRvb2x0aXBDb2x1bW5zPXBDdCx0aGlzLnlTY2FsZVR5cGU9YUN0LkxJTkVBUix0aGlzLmlnbm9yZVlPdXRsaWVycz0hMSx0aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kPSJkZWZhdWx0Iix0aGlzLnRvb2x0aXBQb3NpdGlvbj16VHQuQk9UVE9NLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZT1bXSx0aGlzLl9zZXJpZXNEYXRhQ2FjaGU9e30sdGhpcy5fc2VyaWVzTWV0YWRhdGFDYWNoZT17fSx0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9bnVsbH1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5zY29wZVN1YnRyZWUodGhpcy4kLmNoYXJ0ZGl2LCEwKX1hdHRhY2hlZCgpe2NvbnN0IHQ9e2NhcHR1cmU6ITAscGFzc2l2ZTohMH07dGhpcy5fbGlzdGVuKHRoaXMsIm1vdXNlZG93biIsdGhpcy5fb25Nb3VzZURvd24uYmluZCh0aGlzKSx0KSx0aGlzLl9saXN0ZW4odGhpcywibW91c2V1cCIsdGhpcy5fb25Nb3VzZVVwLmJpbmQodGhpcyksdCksdGhpcy5fbGlzdGVuKHdpbmRvdywia2V5ZG93biIsdGhpcy5fb25LZXlEb3duLmJpbmQodGhpcyksdCksdGhpcy5fbGlzdGVuKHdpbmRvdywia2V5dXAiLHRoaXMuX29uS2V5VXAuYmluZCh0aGlzKSx0KX1kZXRhY2hlZCgpe3RoaXMuY2FuY2VsQXN5bmModGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkKSx0aGlzLl9jaGFydCYmKHRoaXMuX2NoYXJ0LmRlc3Ryb3koKSx0aGlzLl9jaGFydD12b2lkIDApLHRoaXMuX2xpc3RlbmVycyYmKHRoaXMuX2xpc3RlbmVycy5mb3JFYWNoKCgoe25vZGU6dCxldmVudE5hbWU6ZSxmdW5jOm4sb3B0aW9uOml9KT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4saSl9KSksdGhpcy5fbGlzdGVuZXJzLmNsZWFyKCkpfV9saXN0ZW4odCxlLG4saT17fSl7dGhpcy5fbGlzdGVuZXJzfHwodGhpcy5fbGlzdGVuZXJzPW5ldyBTZXQpLHRoaXMuX2xpc3RlbmVycy5hZGQoe25vZGU6dCxldmVudE5hbWU6ZSxmdW5jOm4sb3B0aW9uOml9KSx0LmFkZEV2ZW50TGlzdGVuZXIoZSxuLGkpfV9vbktleURvd24odCl7dGhpcy50b2dnbGVDbGFzcygicGFua2V5IixsQ3QuaXNQYW5LZXkodCkpfV9vbktleVVwKHQpe3RoaXMudG9nZ2xlQ2xhc3MoInBhbmtleSIsbEN0LmlzUGFuS2V5KHQpKX1fb25Nb3VzZURvd24odCl7dGhpcy50b2dnbGVDbGFzcygibW91c2Vkb3duIiwhMCl9X29uTW91c2VVcCh0KXt0aGlzLnRvZ2dsZUNsYXNzKCJtb3VzZWRvd24iLCExKX1pc0RhdGFGaXRUb0RvbWFpbigpe3JldHVybiF0aGlzLl9jaGFydHx8dGhpcy5fY2hhcnQuaXNEYXRhRml0VG9Eb21haW4oKX1zZXRWaXNpYmxlU2VyaWVzKHQpe1NlLmV4cG9ydHMuaXNFcXVhbCh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGUsdCl8fCh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGU9dCl9c2V0U2VyaWVzRGF0YSh0LGUpe3RoaXMuX3Nlcmllc0RhdGFDYWNoZVt0XT1lLHRoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5zZXRTZXJpZXNEYXRhKHQsZSl9c2V0U2VyaWVzTWV0YWRhdGEodCxlKXt0aGlzLl9zZXJpZXNNZXRhZGF0YUNhY2hlW3RdPWUsdGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0LnNldFNlcmllc01ldGFkYXRhKHQsZSl9Y29tbWl0Q2hhbmdlcygpe3RoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5jb21taXRDaGFuZ2VzKCl9cmVzZXREb21haW4oKXt0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQucmVzZXREb21haW4oKX1yZWRyYXcoKXt0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQucmVkcmF3KCl9X21ha2VDaGFydCgpe251bGwhPT10aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQmJih0aGlzLmNhbmNlbEFzeW5jKHRoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZCksdGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkPW51bGwpLHRoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZD10aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZD1udWxsO2xldCB0PXRoaXMueENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZDtpZih0aGlzLnhUeXBlfHx0P3RoaXMueFR5cGUmJih0PSgpPT5BVHQodGhpcy54VHlwZSkpOnQ9TVR0LHQmJnRoaXMueVZhbHVlQWNjZXNzb3ImJnRoaXMudG9vbHRpcENvbHVtbnMpe3ZhciBlPW5ldyBjQ3QodCx0aGlzLnlWYWx1ZUFjY2Vzc29yLHRoaXMueVNjYWxlVHlwZSx0aGlzLmNvbG9yU2NhbGUsdGhpcy4kLnRvb2x0aXAsdGhpcy50b29sdGlwQ29sdW1ucyx0aGlzLmZpbGxBcmVhLHRoaXMuZGVmYXVsdFhSYW5nZSx0aGlzLmRlZmF1bHRZUmFuZ2UsdGhpcy5zeW1ib2xGdW5jdGlvbix0aGlzLnhBeGlzRm9ybWF0dGVyKSxuPVN1KHRoaXMuJC5jaGFydGRpdik7ZS5yZW5kZXJUbyhuKSx0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQuZGVzdHJveSgpLHRoaXMuX2NoYXJ0PWUsdGhpcy5fY2hhcnQub25BbmNob3IoKCgpPT50aGlzLmZpcmUoImNoYXJ0LWF0dGFjaGVkIikpKX19KSwzNTApfV9yZWxvYWRGcm9tQ2FjaGUoKXt0aGlzLl9jaGFydCYmKHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZS5mb3JFYWNoKCh0PT57dGhpcy5fY2hhcnQuc2V0U2VyaWVzRGF0YSh0LHRoaXMuX3Nlcmllc0RhdGFDYWNoZVt0XXx8W10pfSkpLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZS5maWx0ZXIoKHQ9PnRoaXMuX3Nlcmllc01ldGFkYXRhQ2FjaGVbdF0pKS5mb3JFYWNoKCh0PT57dGhpcy5fY2hhcnQuc2V0U2VyaWVzTWV0YWRhdGEodCx0aGlzLl9zZXJpZXNNZXRhZGF0YUNhY2hlW3RdKX0pKSx0aGlzLl9jaGFydC5zZXRWaXNpYmxlU2VyaWVzKHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZSksdGhpcy5fY2hhcnQuY29tbWl0Q2hhbmdlcygpKX1fc21vb3RoaW5nQ2hhbmdlZCgpe3RoaXMuX2NoYXJ0JiYodGhpcy5zbW9vdGhpbmdFbmFibGVkP3RoaXMuX2NoYXJ0LnNtb290aGluZ1VwZGF0ZSh0aGlzLnNtb290aGluZ1dlaWdodCk6dGhpcy5fY2hhcnQuc21vb3RoaW5nRGlzYWJsZSgpKX1fb3V0bGllcnNDaGFuZ2VkKCl7dGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0Lmlnbm9yZVlPdXRsaWVycyh0aGlzLmlnbm9yZVlPdXRsaWVycyl9X2NvbG9yU2NhbGVDaGFuZ2VkKCl7dGhpcy5fY2hhcnQmJih0aGlzLl9jaGFydC5zZXRDb2xvclNjYWxlKHRoaXMuY29sb3JTY2FsZSksdGhpcy5fY2hhcnQucmVkcmF3KCkpfV90b29sdGlwQ29sdW1uc0NoYW5nZWQoKXt0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQuc2V0VG9vbHRpcENvbHVtbnModGhpcy50b29sdGlwQ29sdW1ucyl9X3Rvb2x0aXBTb3J0aW5nTWV0aG9kQ2hhbmdlZCgpe3RoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5zZXRUb29sdGlwU29ydGluZ01ldGhvZCh0aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kKX1nZXRFeHBvcnRlcigpe3JldHVybiBuZXcgdUN0KHRoaXMuJC5jaGFydGRpdil9fTtmQ3QudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGlkPSJjaGFydGRpdiI+PC9kaXY+CiAgICA8dnotY2hhcnQtdG9vbHRpcAogICAgICBpZD0idG9vbHRpcCIKICAgICAgcG9zaXRpb249IltbdG9vbHRpcFBvc2l0aW9uXV0iCiAgICAgIGNvbnRlbnQtY29tcG9uZW50LW5hbWU9InZ6LWxpbmUtY2hhcnQtdG9vbHRpcCIKICAgID48L3Z6LWNoYXJ0LXRvb2x0aXA+CiAgICA8c3R5bGUgaW5jbHVkZT0icGxvdHRhYmxlLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlIGluY2x1ZGU9InZ6LXBhbi16b29tLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQogICAgICBkaXYgewogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgIH0KCiAgICAgICNjaGFydGRpdiAubWFpbiB7CiAgICAgICAgY29udGFpbjogc3RyaWN0OwogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICA6aG9zdCgucGFua2V5KSAjY2hhcnRkaXYgOm5vdCguZHJhZy16b29taW5nKSAubWFpbiB7CiAgICAgICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7CiAgICAgICAgY3Vyc29yOiBncmFiOwogICAgICB9CgogICAgICA6aG9zdCgubW91c2Vkb3duKSAjY2hhcnRkaXYgLnBhbm5pbmcgLm1haW4gewogICAgICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZzsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICB9CgogICAgICAjY2hhcnRkaXYgewogICAgICAgIGNvbnRhaW46IHN0cmljdDsKICAgICAgfQoKICAgICAgI2NoYXJ0ZGl2IGxpbmUuZ3VpZGUtbGluZSB7CiAgICAgICAgc3Ryb2tlOiAjOTk5OwogICAgICAgIHN0cm9rZS13aWR0aDogMS41cHg7CiAgICAgIH0KICAgICAgI2NoYXJ0ZGl2OmhvdmVyIC5tYWluIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CgogICAgICAuZ2hvc3QgewogICAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgICBzdHJva2Utd2lkdGg6IDFweDsKICAgICAgfQoKICAgICAgLnBsb3R0YWJsZSAuYXhpcyB0ZXh0IHsKICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC5wbG90dGFibGUgLmdyaWRsaW5lcyBsaW5lIHsKICAgICAgICBzdHJva2U6IHZhcigtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHJPLlNjYWxlcy5Db2xvcildLGZDdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxmQ3QucHJvdG90eXBlLCJzeW1ib2xGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxmQ3QucHJvdG90eXBlLCJzbW9vdGhpbmdFbmFibGVkIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLGZDdC5wcm90b3R5cGUsInNtb290aGluZ1dlaWdodCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxmQ3QucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLGZDdC5wcm90b3R5cGUsInhDb21wb25lbnRzQ3JlYXRpb25NZXRob2QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxmQ3QucHJvdG90eXBlLCJ4QXhpc0Zvcm1hdHRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLGZDdC5wcm90b3R5cGUsInlWYWx1ZUFjY2Vzc29yIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxmQ3QucHJvdG90eXBlLCJ0b29sdGlwQ29sdW1ucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxmQ3QucHJvdG90eXBlLCJmaWxsQXJlYSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZkN0LnByb3RvdHlwZSwiZGVmYXVsdFhSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZkN0LnByb3RvdHlwZSwiZGVmYXVsdFlSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxmQ3QucHJvdG90eXBlLCJ5U2NhbGVUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZkN0LnByb3RvdHlwZSwiaWdub3JlWU91dGxpZXJzIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGZDdC5wcm90b3R5cGUsInRvb2x0aXBTb3J0aW5nTWV0aG9kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGZDdC5wcm90b3R5cGUsInRvb2x0aXBQb3NpdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxmQ3QucHJvdG90eXBlLCJfY2hhcnQiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLGZDdC5wcm90b3R5cGUsIl92aXNpYmxlU2VyaWVzQ2FjaGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZkN0LnByb3RvdHlwZSwiX3Nlcmllc0RhdGFDYWNoZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxmQ3QucHJvdG90eXBlLCJfc2VyaWVzTWV0YWRhdGFDYWNoZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmQ3QucHJvdG90eXBlLCJfbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkIix2b2lkIDApLHQoW2EoInhDb21wb25lbnRzQ3JlYXRpb25NZXRob2QiLCJ4VHlwZSIsInlWYWx1ZUFjY2Vzc29yIiwieVNjYWxlVHlwZSIsImlzQXR0YWNoZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl9tYWtlQ2hhcnQiLG51bGwpLHQoW2EoIl9jaGFydCIsIl92aXNpYmxlU2VyaWVzQ2FjaGUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl9yZWxvYWRGcm9tQ2FjaGUiLG51bGwpLHQoW2EoInNtb290aGluZ0VuYWJsZWQiLCJzbW9vdGhpbmdXZWlnaHQiLCJfY2hhcnQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl9zbW9vdGhpbmdDaGFuZ2VkIixudWxsKSx0KFthKCJpZ25vcmVZT3V0bGllcnMiLCJfY2hhcnQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl9vdXRsaWVyc0NoYW5nZWQiLG51bGwpLHQoW2EoImNvbG9yU2NhbGUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlQ2hhbmdlZCIsbnVsbCksdChbYSgidG9vbHRpcENvbHVtbnMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl90b29sdGlwQ29sdW1uc0NoYW5nZWQiLG51bGwpLHQoW2EoInRvb2x0aXBTb3J0aW5nTWV0aG9kIiwiX2NoYXJ0IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxmQ3QucHJvdG90eXBlLCJfdG9vbHRpcFNvcnRpbmdNZXRob2RDaGFuZ2VkIixudWxsKSxmQ3Q9dChbaSgidnotbGluZS1jaGFydDIiKV0sZkN0KTtsZXQgbUN0PWNsYXNzIGV4dGVuZHMgeWV7fTttQ3QudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgPHRhYmxlPgogICAgICAgIDx0aGVhZD48L3RoZWFkPgogICAgICAgIDx0Ym9keT48L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07CiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgIHRoZWFkIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIHRib2R5IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIxcHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICB9CgogICAgICAuc3dhdGNoIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICB9CgogICAgICAuY2xvc2VzdCAuc3dhdGNoIHsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggI2ZmZjsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgIH0KCiAgICAgIC5kaXN0YW50IHRkOm5vdCguc3dhdGNoKSB7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAuZ2hvc3QgewogICAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgICBzdHJva2Utd2lkdGg6IDFweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLG1DdD10KFtpKCJ2ei1saW5lLWNoYXJ0LXRvb2x0aXAiKV0sbUN0KTtjb25zdCBnQ3Q9W10sX0N0PVNlLmV4cG9ydHMudGhyb3R0bGUoKGZ1bmN0aW9uIHQoKXtpZigwPT1nQ3QubGVuZ3RoKXJldHVybjtjb25zdCBlPWdDdC5zaGlmdCgpO2UmJmUuYWN0aXZlJiYoZS5yZWRyYXcoKSxlLl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZT0hMSksd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKDApLHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9KSwxMDApO2xldCB5Q3Q9Y2xhc3MgZXh0ZW5kcyhMVHQoZXIoeWUpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3JlZHJhd1JhZj1udWxsLHRoaXMuYWN0aXZlPSExLHRoaXMubG9nU2NhbGVBY3RpdmU9ITEsdGhpcy5jb2xvclNjYWxlPXtzY2FsZTpHUn0sdGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkPSEwLHRoaXMuX21heWJlUmVuZGVyZWRJbkJhZFN0YXRlPSExfW9uTG9hZEZpbmlzaCgpe3RoaXMuY29tbWl0Q2hhbmdlcygpLHRoaXMuZGF0YVRvTG9hZC5sZW5ndGg+MCYmdGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkJiYodGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkPSExLHRoaXMuZ2V0Q2hhcnQoKS5yZXNldERvbWFpbigpKSx0aGlzLnJlZHJhdygpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxudWxsIT09dGhpcy5fcmVkcmF3UmFmJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yZWRyYXdSYWYpfWV4cG9ydEFzU3ZnU3RyaW5nKCl7cmV0dXJuIHRoaXMuZ2V0Q2hhcnQoKS5nZXRFeHBvcnRlcigpLmV4cG9ydEFzU3RyaW5nKCl9Z2V0Q2hhcnQoKXtyZXR1cm4gdGhpcy4kLmNoYXJ0fXJlc2V0RG9tYWluKCl7dGhpcy5nZXRDaGFydCgpLnJlc2V0RG9tYWluKCl9c2V0U2VyaWVzRGF0YSh0LGUpe3RoaXMuZ2V0Q2hhcnQoKS5zZXRTZXJpZXNEYXRhKHQsZSl9c2V0U2VyaWVzTWV0YWRhdGEodCxlKXt0aGlzLmdldENoYXJ0KCkuc2V0U2VyaWVzTWV0YWRhdGEodCxlKX1jb21taXRDaGFuZ2VzKCl7dGhpcy5nZXRDaGFydCgpLmNvbW1pdENoYW5nZXMoKX1yZWRyYXcoKXtudWxsIT09dGhpcy5fcmVkcmF3UmFmJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yZWRyYXdSYWYpLHRoaXMuX3JlZHJhd1JhZj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuYWN0aXZlP3RoaXMuZ2V0Q2hhcnQoKS5yZWRyYXcoKTp0aGlzLl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZT0hMH0pKX1fbG9hZEtleUNoYW5nZWQoKXt0aGlzLnJlc2V0KCksdGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkPSEwfV9kYXRhU2VyaWVzQ2hhbmdlZCgpe3RoaXMuZ2V0Q2hhcnQoKS5zZXRWaXNpYmxlU2VyaWVzKHRoaXMuZGF0YVNlcmllcyl9X2xvZ1NjYWxlQ2hhbmdlZCh0KXt0aGlzLmdldENoYXJ0KCkueVNjYWxlVHlwZT10P2FDdC5MT0c6YUN0LkxJTkVBUix0aGlzLnJlZHJhdygpfV9maXhCYWRTdGF0ZVdoZW5BY3RpdmUoKXt0aGlzLmFjdGl2ZSYmdGhpcy5fbWF5YmVSZW5kZXJlZEluQmFkU3RhdGUmJihnQ3QucHVzaCh0aGlzKSxfQ3QoKSl9X29uQ2hhcnRBdHRhY2hlZCgpe3RoaXMuYWN0aXZlfHwodGhpcy5fbWF5YmVSZW5kZXJlZEluQmFkU3RhdGU9ITApfX07eUN0LnRlbXBsYXRlPV9lYAogICAgPGRpdiBpZD0iY2hhcnQtYW5kLXNwaW5uZXItY29udGFpbmVyIj4KICAgICAgPHZ6LWxpbmUtY2hhcnQyCiAgICAgICAgaWQ9ImNoYXJ0IgogICAgICAgIGRhdGEtbG9hZGluZyQ9IltbZGF0YUxvYWRpbmddXSIKICAgICAgICBkYXRhLWxvYWRlZC1vbmNlJD0iW1tkYXRhTG9hZGVkQXRMZWFzdE9uY2VdXSIKICAgICAgICBjb2xvci1zY2FsZT0iW1tjb2xvclNjYWxlXV0iCiAgICAgICAgZGVmYXVsdC14LXJhbmdlPSJbW2RlZmF1bHRYUmFuZ2VdXSIKICAgICAgICBkZWZhdWx0LXktcmFuZ2U9IltbZGVmYXVsdFlSYW5nZV1dIgogICAgICAgIGZpbGwtYXJlYT0iW1tmaWxsQXJlYV1dIgogICAgICAgIGlnbm9yZS15LW91dGxpZXJzPSJbW2lnbm9yZVlPdXRsaWVyc11dIgogICAgICAgIG9uLWNoYXJ0LWF0dGFjaGVkPSJfb25DaGFydEF0dGFjaGVkIgogICAgICAgIHNtb290aGluZy1lbmFibGVkPSJbW3Ntb290aGluZ0VuYWJsZWRdXSIKICAgICAgICBzbW9vdGhpbmctd2VpZ2h0PSJbW3Ntb290aGluZ1dlaWdodF1dIgogICAgICAgIHN5bWJvbC1mdW5jdGlvbj0iW1tzeW1ib2xGdW5jdGlvbl1dIgogICAgICAgIHRvb2x0aXAtY29sdW1ucz0iW1t0b29sdGlwQ29sdW1uc11dIgogICAgICAgIHRvb2x0aXAtcG9zaXRpb249IltbdG9vbHRpcFBvc2l0aW9uXV0iCiAgICAgICAgdG9vbHRpcC1zb3J0aW5nLW1ldGhvZD0iW1t0b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgIHgtY29tcG9uZW50cy1jcmVhdGlvbi1tZXRob2Q9IltbeENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZF1dIgogICAgICAgIHgtdHlwZT0iW1t4VHlwZV1dIgogICAgICAgIHktdmFsdWUtYWNjZXNzb3I9IltbeVZhbHVlQWNjZXNzb3JdXSIKICAgICAgPjwvdnotbGluZS1jaGFydDI+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tkYXRhTG9hZGluZ11dIj4KICAgICAgICA8ZGl2IGlkPSJsb2FkaW5nLXNwaW5uZXItY29udGFpbmVyIj4KICAgICAgICAgIDxwYXBlci1zcGlubmVyLWxpdGUgYWN0aXZlPSIiPjwvcGFwZXItc3Bpbm5lci1saXRlPgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICA6aG9zdChbX21heWJlLXJlbmRlcmVkLWluLWJhZC1zdGF0ZV0pIHZ6LWxpbmUtY2hhcnQgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgI2NoYXJ0LWFuZC1zcGlubmVyLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAjbG9hZGluZy1zcGlubmVyLWNvbnRhaW5lciB7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgdnotbGluZS1jaGFydDIgewogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgdnotbGluZS1jaGFydDJbZGF0YS1sb2FkaW5nXSB7CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfZml4QmFkU3RhdGVXaGVuQWN0aXZlIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0seUN0LnByb3RvdHlwZSwiYWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSx5Q3QucHJvdG90eXBlLCJkYXRhU2VyaWVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0seUN0LnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfbG9nU2NhbGVDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0seUN0LnByb3RvdHlwZSwibG9nU2NhbGVBY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0seUN0LnByb3RvdHlwZSwieENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx5Q3QucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLHlDdC5wcm90b3R5cGUsInlWYWx1ZUFjY2Vzc29yIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHlDdC5wcm90b3R5cGUsImZpbGxBcmVhIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0seUN0LnByb3RvdHlwZSwic21vb3RoaW5nRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSx5Q3QucHJvdG90eXBlLCJzbW9vdGhpbmdXZWlnaHQiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLHlDdC5wcm90b3R5cGUsInRvb2x0aXBDb2x1bW5zIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHlDdC5wcm90b3R5cGUsInRvb2x0aXBTb3J0aW5nTWV0aG9kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHlDdC5wcm90b3R5cGUsInRvb2x0aXBQb3NpdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHlDdC5wcm90b3R5cGUsImlnbm9yZVlPdXRsaWVycyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0seUN0LnByb3RvdHlwZSwiZGVmYXVsdFhSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0seUN0LnByb3RvdHlwZSwiZGVmYXVsdFlSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLHlDdC5wcm90b3R5cGUsInN5bWJvbEZ1bmN0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHlDdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx5Q3QucHJvdG90eXBlLCJfcmVzZXREb21haW5Pbk5leHRMb2FkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHlDdC5wcm90b3R5cGUsIl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZSIsdm9pZCAwKSx0KFthKCJsb2FkS2V5IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx5Q3QucHJvdG90eXBlLCJfbG9hZEtleUNoYW5nZWQiLG51bGwpLHQoW2EoImRhdGFTZXJpZXMuKiIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0seUN0LnByb3RvdHlwZSwiX2RhdGFTZXJpZXNDaGFuZ2VkIixudWxsKSx5Q3Q9dChbaSgidGYtbGluZS1jaGFydC1kYXRhLWxvYWRlciIpXSx5Q3QpLGVsKHttb2R1bGVOYW1lOiJ0Zi1jdXN0b20tc2NhbGFyLWNhcmQtc3R5bGUiLHN0eWxlQ29udGVudDoiXG4gICAgOmhvc3Qge1xuICAgICAgbWFyZ2luOiA1cHggMTBweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAzMzBweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICB9XG5cbiAgICA6aG9zdChbX2V4cGFuZGVkXSkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgOmhvc3QoW19leHBhbmRlZF0pICN0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyLWNvbnRhaW5lciB7XG4gICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgI3RmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIHtcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAjYnV0dG9ucyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG5cbiAgICBwYXBlci1pY29uLWJ1dHRvbiB7XG4gICAgICBjb2xvcjogIzIxOTZmMztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICB3aWR0aDogMzJweDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIHBhZGRpbmc6IDRweDtcbiAgICB9XG5cbiAgICBwYXBlci1pY29uLWJ1dHRvbltzZWxlY3RlZF0ge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTtcbiAgICB9XG5cbiAgICAuZG93bmxvYWQtbGlua3Mge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICB9XG5cbiAgICAuZG93bmxvYWQtbGlua3MgYSB7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDJweDtcbiAgICB9XG5cbiAgICAuZG93bmxvYWQtbGlua3MgcGFwZXItZHJvcGRvd24tbWVudSB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbDoge1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICB9XG4gICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDoge1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICB9XG4gICAgfVxuICAifSk7Y2xhc3MgdkN0e2NvbnN0cnVjdG9yKHQsZSxuLGkscil7dGhpcy5ydW49dCx0aGlzLnRhZz1lLHRoaXMubmFtZT1uLHRoaXMuc2NhbGFyRGF0YT1pLHRoaXMuc3ltYm9sPXJ9Z2V0TmFtZSgpe3JldHVybiB0aGlzLm5hbWV9c2V0RGF0YSh0KXt0aGlzLnNjYWxhckRhdGE9dH1nZXREYXRhKCl7cmV0dXJuIHRoaXMuc2NhbGFyRGF0YX1nZXRSdW4oKXtyZXR1cm4gdGhpcy5ydW59Z2V0VGFnKCl7cmV0dXJuIHRoaXMudGFnfWdldFN5bWJvbCgpe3JldHVybiB0aGlzLnN5bWJvbH19ZnVuY3Rpb24gYkN0KHQsZSl7cmV0dXJuYCR7ZX0gKCR7dH0pYH1jbGFzcyB4Q3R7Y29uc3RydWN0b3IodCl7dGhpcy5ydW5CYXNlZENvbG9yU2NhbGU9dH1zY2FsZSh0KXtyZXR1cm4gdGhpcy5ydW5CYXNlZENvbG9yU2NhbGUuc2NhbGUodGhpcy5wYXJzZVJ1bk5hbWUodCkpfXBhcnNlUnVuTmFtZSh0KXtjb25zdCBlPXQubWF0Y2goL1woKC4qKVwpJC8pO3JldHVybiBlP2VbMV06IiJ9fWxldCB3Q3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmFjdGl2ZT0hMCx0aGlzLl9jb2xvclNjYWxlPW5ldyB4Q3Qoe3NjYWxlOkdSfSksdGhpcy5fbmFtZVRvRGF0YVNlcmllcz17fSx0aGlzLl9leHBhbmRlZD0hMSx0aGlzLl9yZXF1ZXN0RGF0YT0odCxlLG4pPT57Y29uc3QgaT1fcigpLnBsdWdpblJvdXRlKCJjdXN0b21fc2NhbGFycyIsIi9zY2FsYXJzIik7UHJvbWlzZS5hbGwodC5tYXAoKHQ9Pntjb25zdCBuPWlPKGkse3RhZzp0aGlzLl90YWdGaWx0ZXIscnVuOnR9KTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KG4pLnRoZW4oKG49PntlKHtpdGVtOnQsZGF0YTpufSl9KSl9KSkpLmZpbmFsbHkoKCgpPT57bigpfSkpfSx0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleD17fSx0aGlzLl9tYXRjaGVzTGlzdE9wZW5lZD0hMSx0aGlzLl9maWxsQXJlYT17bG93ZXJBY2Nlc3Nvcjp0PT50Lmxvd2VyLGhpZ2hlckFjY2Vzc29yOnQ9PnQudXBwZXJ9LHRoaXMuX3Rvb2x0aXBDb2x1bW5zPSgoKT0+e2NvbnN0IHQ9d1R0KDQpLGU9ZT0+aXNOYU4oZSk/Ik5hTiI6dChlKTtyZXR1cm5be3RpdGxlOiJOYW1lIixldmFsdWF0ZTp0PT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lfSx7dGl0bGU6IlZhbHVlIixldmFsdWF0ZTp0PT5lKHQuZGF0dW0uc2NhbGFyKX0se3RpdGxlOiJMb3dlciBNYXJnaW4iLGV2YWx1YXRlOnQ9PmUodC5kYXR1bS5sb3dlcil9LHt0aXRsZToiVXBwZXIgTWFyZ2luIixldmFsdWF0ZTp0PT5lKHQuZGF0dW0udXBwZXIpfSx7dGl0bGU6IlN0ZXAiLGV2YWx1YXRlOnQ9PlNUdCh0LmRhdHVtLnN0ZXApfSx7dGl0bGU6IlRpbWUiLGV2YWx1YXRlOnQ9PkVUdCh0LmRhdHVtLndhbGxfdGltZSl9LHt0aXRsZToiUmVsYXRpdmUiLGV2YWx1YXRlOnQ9PkNUdChUVHQodC5kYXR1bSwwLHQuZGF0YXNldCkpfV19KSgpLHRoaXMuX21pc3NpbmdUYWdzPVtdLHRoaXMuX21pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuZWQ9ITF9cmVsb2FkKCl7dGhpcy4kLmxvYWRlci5yZWxvYWQoKX1yZWRyYXcoKXt0aGlzLiQubG9hZGVyLnJlZHJhdygpfV90b2dnbGVFeHBhbmRlZCh0KXt0aGlzLnNldCgiX2V4cGFuZGVkIiwhdGhpcy5fZXhwYW5kZWQpLHRoaXMucmVkcmF3KCl9X3RvZ2dsZUxvZ1NjYWxlKCl7dGhpcy5zZXQoIl9sb2dTY2FsZUFjdGl2ZSIsIXRoaXMuX2xvZ1NjYWxlQWN0aXZlKX1fcmVzZXREb21haW4oKXtjb25zdCB0PXRoaXMuJC5sb2FkZXI7dCYmdC5yZXNldERvbWFpbigpfV9jc3ZVcmwodCxlKXtyZXR1cm4gZT9pTyh0aGlzLl9kb3dubG9hZERhdGFVcmwodCxlKSx7Zm9ybWF0OiJjc3YifSk6IiJ9X2pzb25VcmwodCxlKXtyZXR1cm4gZT9pTyh0aGlzLl9kb3dubG9hZERhdGFVcmwodCxlKSx7Zm9ybWF0OiJqc29uIn0pOiIifV9kb3dubG9hZERhdGFVcmwodCxlKXtjb25zdCBuPXRbZV0saT17dGFnOm4uZ2V0VGFnKCkscnVuOm4uZ2V0UnVuKCl9O3JldHVybiBpTyhfcigpLnBsdWdpblJvdXRlKCJjdXN0b21fc2NhbGFycyIsIi9kb3dubG9hZF9kYXRhIiksaSl9X2NyZWF0ZVByb2Nlc3NEYXRhRnVuY3Rpb24odCl7cmV0dXJuKGUsbixpKT0+e2lmKCFpLnJlZ2V4X3ZhbGlkKXJldHVybiB2b2lkIHRoaXMuc2V0KCJfdGFnRmlsdGVySW52YWxpZCIsITApO2NvbnN0IHI9U2UuZXhwb3J0cy5jbG9uZSh0aGlzLl9uYW1lVG9EYXRhU2VyaWVzKSxvPVtdO1NlLmV4cG9ydHMuZm9yRWFjaCh0LCh0PT57bGV0IGU9ITE7Y29uc3QgYT1pLnRhZ190b19ldmVudHNbdC52YWx1ZV0scz1pLnRhZ190b19ldmVudHNbdC5sb3dlcl0sbD1pLnRhZ190b19ldmVudHNbdC51cHBlcl07aWYoU2UuZXhwb3J0cy5pc1VuZGVmaW5lZChhKSYmKG8ucHVzaCh0LnZhbHVlKSxlPSEwKSxTZS5leHBvcnRzLmlzVW5kZWZpbmVkKHMpJiYoby5wdXNoKHQubG93ZXIpLGU9ITApLFNlLmV4cG9ydHMuaXNVbmRlZmluZWQobCkmJihvLnB1c2godC51cHBlciksZT0hMCksZSlyZXR1cm47Y29uc3QgYz10PT50WzFdLHU9dGhpcy5fZmluZFN0ZXBNaXNtYXRjaCh0LGEubWFwKGMpLHMubWFwKGMpLGwubWFwKGMpKTtpZih1KXJldHVybiB2b2lkIHRoaXMuc2V0KCJfc3RlcHNNaXNtYXRjaCIsdSk7Y29uc3QgaD10PT50WzJdLGQ9YS5tYXAoKCh0LGUpPT4oe3dhbGxfdGltZTpuZXcgRGF0ZSgxZTMqdFswXSksc3RlcDpjKHQpLHNjYWxhcjpoKHQpLGxvd2VyOmgoc1tlXSksdXBwZXI6aChsW2VdKX0pKSkscD1iQ3Qobix0LnZhbHVlKSxmPXJbcF07aWYoZilmLnNldERhdGEoZCk7ZWxzZXtjb25zdCBlPXRoaXMuX2NyZWF0ZU5ld0RhdGFTZXJpZXMobix0LnZhbHVlLHAsZCk7cltwXT1lfX0pKSx0aGlzLnNldCgiX25hbWVUb0RhdGFTZXJpZXMiLHIpO2NvbnN0IGE9U2UuZXhwb3J0cy5maW5kSW5kZXgodGhpcy5fbWlzc2luZ1RhZ3MsKHQ9PnQucnVuPT09bikpO2lmKG8ubGVuZ3RoJiYzIT1vLmxlbmd0aCl7Y29uc3QgdD17cnVuOm4sdGFnczpvfTthPj0wP3RoaXMuc3BsaWNlKCJfbWlzc2luZ1RhZ3MiLGEsMSx0KTp0aGlzLnB1c2goIl9taXNzaW5nVGFncyIsdCl9ZWxzZSBhPj0wJiZ0aGlzLnNwbGljZSgiX21pc3NpbmdUYWdzIixhLDEpfX1fZmluZFN0ZXBNaXNtYXRjaCh0LGUsbixpKXtyZXR1cm4gU2UuZXhwb3J0cy5pc0VxdWFsKG4sZSkmJlNlLmV4cG9ydHMuaXNFcXVhbChpLGUpP251bGw6e3Nlcmllc09iamVjdDp0LHZhbHVlU3RlcHM6ZSxsb3dlclN0ZXBzOm4sdXBwZXJTdGVwczppfX1fY3JlYXRlTmV3RGF0YVNlcmllcyh0LGUsbixpKXt0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFt0XXw9MDtjb25zdCByPW5ldyB2Q3QodCxlLG4saSxiVHRbdGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXhbdF1dKTtyZXR1cm4gdGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXhbdF09KHRoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4W3RdKzEpJWJUdC5sZW5ndGgscn1fdXBkYXRlQ2hhcnQoKXtTZS5leHBvcnRzLmZvck93bih0aGlzLl9uYW1lVG9EYXRhU2VyaWVzLCh0PT57dGhpcy4kLmxvYWRlci5zZXRTZXJpZXNEYXRhKHQuZ2V0TmFtZSgpLHQuZ2V0RGF0YSgpKX0pKSx0aGlzLiQubG9hZGVyLmNvbW1pdENoYW5nZXMoKX1nZXQgX3Nlcmllc05hbWVzKCl7Y29uc3QgdD1uZXcgU2V0KHRoaXMucnVucyk7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuX25hbWVUb0RhdGFTZXJpZXMpLmZpbHRlcigoKFtlLG5dKT0+dC5oYXMobi5ydW4pKSkubWFwKCgoW3RdKT0+dCkpfV9kZXRlcm1pbmVDb2xvcih0LGUpe3JldHVybiB0LnNjYWxlKGUpfV9yZWZyZXNoRGF0YVNlcmllcygpe3RoaXMuc2V0KCJfbmFtZVRvRGF0YVNlcmllcyIse30pfV9jcmVhdGVTeW1ib2xGdW5jdGlvbigpe3JldHVybiB0PT50aGlzLl9uYW1lVG9EYXRhU2VyaWVzW3RdLmdldFN5bWJvbCgpLm1ldGhvZCgpfV9kZXRlcm1pbmVTeW1ib2wodCxlKXtyZXR1cm4gdFtlXS5nZXRTeW1ib2woKS5jaGFyYWN0ZXJ9Z2V0IF90YWdGaWx0ZXIoKXtyZXR1cm4gU2UuZXhwb3J0cy5mbGF0dGVuKHRoaXMubWFyZ2luQ2hhcnRTZXJpZXMubWFwKCh0PT5bdC52YWx1ZSx0Lmxvd2VyLHQudXBwZXJdKSkpLm1hcCgodD0+IigiK3RoaXMuX2VzY2FwZVJlZ2V4Q2hhcmFjdGVycyh0KSsiKSIpKS5qb2luKCJ8Iil9X2VzY2FwZVJlZ2V4Q2hhcmFjdGVycyh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywiXFwkJiIpfV9nZXRUb2dnbGVDb2xsYXBzaWJsZUljb24odCl7cmV0dXJuIHQ/ImV4cGFuZC1sZXNzIjoiZXhwYW5kLW1vcmUifV90b2dnbGVNYXRjaGVzT3Blbigpe3RoaXMuc2V0KCJfbWF0Y2hlc0xpc3RPcGVuZWQiLCF0aGlzLl9tYXRjaGVzTGlzdE9wZW5lZCl9Z2V0IF90aXRsZURpc3BsYXlTdHJpbmcoKXtyZXR1cm4gdGhpcy50aXRsZXx8InVudGl0bGVkIn1fc2VwYXJhdGVXaXRoQ29tbWFzKHQpe3JldHVybiB0LmpvaW4oIiwgIil9X3RvZ2dsZU1pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuKCl7dGhpcy5zZXQoIl9taXNzaW5nVGFnc0NvbGxhcHNpYmxlT3BlbmVkIiwhdGhpcy5fbWlzc2luZ1RhZ3NDb2xsYXBzaWJsZU9wZW5lZCl9X21hdGNoTGlzdEVudHJ5Q29sb3JVcGRhdGVkKCl7Y29uc3QgdD10aGlzLiQkKCIjbWF0Y2gtbGlzdC1yZXBlYXQiKTt0JiZ0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgiLm1hdGNoLWxpc3QtZW50cnkiKS5mb3JFYWNoKChlPT57Y29uc3Qgbj10Lml0ZW1Gb3JFbGVtZW50KGUpO2Uuc3R5bGUuY29sb3I9dGhpcy5fZGV0ZXJtaW5lQ29sb3IodGhpcy5fY29sb3JTY2FsZSxuKX0pKX19O3dDdC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcgZGlzcGxheS1uYW1lPSJbW190aXRsZURpc3BsYXlTdHJpbmddXSI+PC90Zi1jYXJkLWhlYWRpbmc+CiAgICA8ZGl2IGlkPSJ0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyLWNvbnRhaW5lciI+CiAgICAgIDx0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyCiAgICAgICAgaWQ9ImxvYWRlciIKICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgY29sb3Itc2NhbGU9IltbX2NvbG9yU2NhbGVdXSIKICAgICAgICBkYXRhLXNlcmllcz0iW1tfc2VyaWVzTmFtZXNdXSIKICAgICAgICBmaWxsLWFyZWE9IltbX2ZpbGxBcmVhXV0iCiAgICAgICAgaWdub3JlLXktb3V0bGllcnM9IltbaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgbG9hZC1rZXk9IltbX3RhZ0ZpbHRlcl1dIgogICAgICAgIGRhdGEtdG8tbG9hZD0iW1tydW5zXV0iCiAgICAgICAgcmVxdWVzdC1kYXRhPSJbW19yZXF1ZXN0RGF0YV1dIgogICAgICAgIGxvZy1zY2FsZS1hY3RpdmU9IltbX2xvZ1NjYWxlQWN0aXZlXV0iCiAgICAgICAgbG9hZC1kYXRhLWNhbGxiYWNrPSJbW19jcmVhdGVQcm9jZXNzRGF0YUZ1bmN0aW9uKG1hcmdpbkNoYXJ0U2VyaWVzKV1dIgogICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tyZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgIHN5bWJvbC1mdW5jdGlvbj0iW1tfY3JlYXRlU3ltYm9sRnVuY3Rpb24oKV1dIgogICAgICAgIHRvb2x0aXAtY29sdW1ucz0iW1tfdG9vbHRpcENvbHVtbnNdXSIKICAgICAgICB0b29sdGlwLXNvcnRpbmctbWV0aG9kPSJbW3Rvb2x0aXBTb3J0aW5nTWV0aG9kXV0iCiAgICAgICAgeC10eXBlPSJbW3hUeXBlXV0iCiAgICAgID4KICAgICAgPC90Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJidXR0b25zIj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19leHBhbmRlZF1dIgogICAgICAgIGljb249ImZ1bGxzY3JlZW4iCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2xvZ1NjYWxlQWN0aXZlXV0iCiAgICAgICAgaWNvbj0ibGluZS13ZWlnaHQiCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlTG9nU2NhbGUiCiAgICAgICAgdGl0bGU9IlRvZ2dsZSB5LWF4aXMgbG9nIHNjYWxlIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgaWNvbj0ic2V0dGluZ3Mtb3ZlcnNjYW4iCiAgICAgICAgb24tdGFwPSJfcmVzZXREb21haW4iCiAgICAgICAgdGl0bGU9IkZpdCBkb21haW4gdG8gZGF0YSIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDxzcGFuIHN0eWxlPSJmbGV4LWdyb3c6IDEiPjwvc3Bhbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3Nob3dEb3dubG9hZExpbmtzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImRvd25sb2FkLWxpbmtzIj4KICAgICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICAgIG5vLWxhYmVsLWZsb2F0PSJ0cnVlIgogICAgICAgICAgICBsYWJlbD0ic2VyaWVzIHRvIGRvd25sb2FkIgogICAgICAgICAgICBzZWxlY3RlZC1pdGVtLWxhYmVsPSJ7e19kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWR9fSIKICAgICAgICAgID4KICAgICAgICAgICAgPHBhcGVyLWxpc3Rib3ggY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgICAgICBpdGVtcz0iW1tfc2VyaWVzTmFtZXNdXSIKICAgICAgICAgICAgICAgIGFzPSJkYXRhU2VyaWVzTmFtZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItaXRlbSBuby1sYWJlbC1mbG9hdD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPltbZGF0YVNlcmllc05hbWVdXTwvcGFwZXItaXRlbQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICAgIDwvcGFwZXItZHJvcGRvd24tbWVudT4KICAgICAgICAgIDxhCiAgICAgICAgICAgIGRvd25sb2FkPSJbW19kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWRdXS5jc3YiCiAgICAgICAgICAgIGhyZWY9IltbX2NzdlVybChfbmFtZVRvRGF0YVNlcmllcywgX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZCldXSIKICAgICAgICAgICAgPkNTVjwvYQogICAgICAgICAgPgogICAgICAgICAgPGEKICAgICAgICAgICAgZG93bmxvYWQ9IltbX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZF1dLmpzb24iCiAgICAgICAgICAgIGhyZWY9IltbX2pzb25VcmwoX25hbWVUb0RhdGFTZXJpZXMsIF9kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWQpXV0iCiAgICAgICAgICAgID5KU09OPC9hCiAgICAgICAgICA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2Rpdj4KCiAgICA8IS0tIGhlcmUgLS0+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX21pc3NpbmdUYWdzLmxlbmd0aF1dIj4KICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2libGUtbGlzdC10aXRsZSI+CiAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICBpY29uPSJbW19nZXRUb2dnbGVDb2xsYXBzaWJsZUljb24oX21pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuZWQpXV0iCiAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZU1pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuIgogICAgICAgICAgY2xhc3M9InRvZ2dsZS1jb2xsYXBzaWJsZS1idXR0b24iCiAgICAgICAgPgogICAgICAgIDwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNvbGxhcHNpYmxlLXRpdGxlLXRleHQiPgogICAgICAgICAgPGlyb24taWNvbiBpY29uPSJpY29uczplcnJvciI+PC9pcm9uLWljb24+IE1pc3NpbmcgVGFncwogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxpcm9uLWNvbGxhcHNlIG9wZW5lZD0iW1tfbWlzc2luZ1RhZ3NDb2xsYXBzaWJsZU9wZW5lZF1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1jb250ZW50Ij4KICAgICAgICAgIDxpcm9uLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imljb25zOmVycm9yIj48L2lyb24taWNvbj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX21pc3NpbmdUYWdzXV0iIGFzPSJtaXNzaW5nRW50cnkiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtaXNzaW5nLXRhZ3MtZm9yLXJ1bi1jb250YWluZXIiPgogICAgICAgICAgICAgIFJ1biAiW1ttaXNzaW5nRW50cnkucnVuXV0iIGxhY2tzIGRhdGEgZm9yIHRhZ3MKICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgICAgICAgIGl0ZW1zPSJbW21pc3NpbmdFbnRyeS50YWdzXV0iCiAgICAgICAgICAgICAgICAgIGFzPSJ0YWciCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxsaT5bW3RhZ11dPC9saT4KICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvZGl2PgogICAgICA8L2lyb24tY29sbGFwc2U+CiAgICA8L3RlbXBsYXRlPgoKICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfdGFnRmlsdGVySW52YWxpZF1dIj4KICAgICAgPGRpdiBjbGFzcz0iZXJyb3ItY29udGVudCI+CiAgICAgICAgPGlyb24taWNvbiBjbGFzcz0iZXJyb3ItaWNvbiIgaWNvbj0iaWNvbnM6ZXJyb3IiPjwvaXJvbi1pY29uPgogICAgICAgIFRoaXMgcmVndWxhciBleHByZXNpb24gaXMgaW52YWxpZDo8YnIgLz4KICAgICAgICA8c3BhbiBjbGFzcz0iaW52YWxpZC1yZWdleCI+W1tfdGFnRmlsdGVyXV08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC90ZW1wbGF0ZT4KCiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3N0ZXBzTWlzbWF0Y2hdXSI+CiAgICAgIDxkaXYgY2xhc3M9ImVycm9yLWNvbnRlbnQiPgogICAgICAgIDxpcm9uLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imljb25zOmVycm9yIj48L2lyb24taWNvbj4KICAgICAgICBUaGUgc3RlcHMgZm9yIHZhbHVlLCBsb3dlciwgYW5kIHVwcGVyIHRhZ3MgZG8gbm90IG1hdGNoOgogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhZy1uYW1lIj5bW19zdGVwc01pc21hdGNoLnNlcmllc09iamVjdC52YWx1ZV1dPC9zcGFuPjoKICAgICAgICAgICAgW1tfc2VwYXJhdGVXaXRoQ29tbWFzKF9zdGVwc01pc21hdGNoLnZhbHVlU3RlcHMpXV0KICAgICAgICAgIDwvbGk+CiAgICAgICAgICA8bGk+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWctbmFtZSI+W1tfc3RlcHNNaXNtYXRjaC5zZXJpZXNPYmplY3QubG93ZXJdXTwvc3Bhbj46CiAgICAgICAgICAgIFtbX3NlcGFyYXRlV2l0aENvbW1hcyhfc3RlcHNNaXNtYXRjaC5sb3dlclN0ZXBzKV1dCiAgICAgICAgICA8L2xpPgogICAgICAgICAgPGxpPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFnLW5hbWUiPltbX3N0ZXBzTWlzbWF0Y2guc2VyaWVzT2JqZWN0LnVwcGVyXV08L3NwYW4+OgogICAgICAgICAgICBbW19zZXBhcmF0ZVdpdGhDb21tYXMoX3N0ZXBzTWlzbWF0Y2gudXBwZXJTdGVwcyldXQogICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CgogICAgPGRpdiBpZD0ibWF0Y2hlcy1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJjb2xsYXBzaWJsZS1saXN0LXRpdGxlIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3Nlcmllc05hbWVzLmxlbmd0aF1dIj4KICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICBpY29uPSJbW19nZXRUb2dnbGVDb2xsYXBzaWJsZUljb24oX21hdGNoZXNMaXN0T3BlbmVkKV1dIgogICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZU1hdGNoZXNPcGVuIgogICAgICAgICAgICBjbGFzcz0idG9nZ2xlLW1hdGNoZXMtYnV0dG9uIgogICAgICAgICAgPgogICAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICA8c3BhbiBjbGFzcz0iY29sbGFwc2libGUtdGl0bGUtdGV4dCI+CiAgICAgICAgICBNYXRjaGVzIChbW19zZXJpZXNOYW1lcy5sZW5ndGhdXSkKICAgICAgICA8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3Nlcmllc05hbWVzLmxlbmd0aF1dIj4KICAgICAgICA8aXJvbi1jb2xsYXBzZSBvcGVuZWQ9IltbX21hdGNoZXNMaXN0T3BlbmVkXV0iPgogICAgICAgICAgPGRpdiBpZD0ibWF0Y2hlcy1saXN0Ij4KICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgICAgaXRlbXM9IltbX3Nlcmllc05hbWVzXV0iCiAgICAgICAgICAgICAgYXM9InNlcmllc05hbWUiCiAgICAgICAgICAgICAgaWQ9Im1hdGNoLWxpc3QtcmVwZWF0IgogICAgICAgICAgICAgIG9uLWRvbS1jaGFuZ2U9Il9tYXRjaExpc3RFbnRyeUNvbG9yVXBkYXRlZCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hdGNoLWxpc3QtZW50cnkiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1hdGNoLWVudHJ5LXN5bWJvbCI+CiAgICAgICAgICAgICAgICAgIFtbX2RldGVybWluZVN5bWJvbChfbmFtZVRvRGF0YVNlcmllcywgc2VyaWVzTmFtZSldXQogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgW1tzZXJpZXNOYW1lXV0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJ0Zi1jdXN0b20tc2NhbGFyLWNhcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5lcnJvci1jb250ZW50IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBtYXJnaW46IDEwcHggMCAwIDA7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgfQoKICAgICAgLmVycm9yLWljb24gewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZpbGw6ICNmZmY7CiAgICAgICAgbWFyZ2luOiAwIGF1dG8gNXB4IGF1dG87CiAgICAgIH0KCiAgICAgIC5pbnZhbGlkLXJlZ2V4IHsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQoKICAgICAgLmVycm9yLWNvbnRlbnQgdWwgewogICAgICAgIG1hcmdpbjogMXB4IDAgMCAwOwogICAgICAgIHBhZGRpbmc6IDAgMCAwIDE5cHg7CiAgICAgIH0KCiAgICAgIC50YWctbmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzaWJsZS1saXN0LXRpdGxlIHsKICAgICAgICBtYXJnaW46IDEwcHggMCA1cHggMDsKICAgICAgfQoKICAgICAgLmNvbGxhcHNpYmxlLXRpdGxlLXRleHQgewogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgICNtYXRjaGVzLWxpc3QgewogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIC5tYXRjaC1saXN0LWVudHJ5IHsKICAgICAgICBtYXJnaW46IDAgMCA1cHggMDsKICAgICAgfQoKICAgICAgLm1hdGNoLWVudHJ5LXN5bWJvbCB7CiAgICAgICAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgfQoKICAgICAgLm1pc3NpbmctdGFncy1mb3ItcnVuLWNvbnRhaW5lciB7CiAgICAgICAgbWFyZ2luOiA4cHggMCAwIDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sd0N0LnByb3RvdHlwZSwicnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx3Q3QucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHdDdC5wcm90b3R5cGUsImFjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx3Q3QucHJvdG90eXBlLCJ0aXRsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sd0N0LnByb3RvdHlwZSwibWFyZ2luQ2hhcnRTZXJpZXMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx3Q3QucHJvdG90eXBlLCJpZ25vcmVZT3V0bGllcnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsZHIpXSx3Q3QucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHdDdC5wcm90b3R5cGUsInNob3dEb3dubG9hZExpbmtzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHdDdC5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHdDdC5wcm90b3R5cGUsInRvb2x0aXBTb3J0aW5nTWV0aG9kIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHdDdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0N0LnByb3RvdHlwZSwiX3RhZ0ZpbHRlckludmFsaWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sd0N0LnByb3RvdHlwZSwiX25hbWVUb0RhdGFTZXJpZXMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0N0LnByb3RvdHlwZSwiX2V4cGFuZGVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0N0LnByb3RvdHlwZSwiX2xvZ1NjYWxlQWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sd0N0LnByb3RvdHlwZSwiX3JlcXVlc3REYXRhIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHdDdC5wcm90b3R5cGUsIl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHdDdC5wcm90b3R5cGUsIl9tYXRjaGVzTGlzdE9wZW5lZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx3Q3QucHJvdG90eXBlLCJfZmlsbEFyZWEiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLHdDdC5wcm90b3R5cGUsIl90b29sdGlwQ29sdW1ucyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sd0N0LnByb3RvdHlwZSwiX21pc3NpbmdUYWdzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0N0LnByb3RvdHlwZSwiX21pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sd0N0LnByb3RvdHlwZSwiX3N0ZXBzTWlzbWF0Y2giLHZvaWQgMCksdChbYSgiX25hbWVUb0RhdGFTZXJpZXMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHdDdC5wcm90b3R5cGUsIl91cGRhdGVDaGFydCIsbnVsbCksdChbcygiX25hbWVUb0RhdGFTZXJpZXMiLCJydW5zIiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sd0N0LnByb3RvdHlwZSwiX3Nlcmllc05hbWVzIixudWxsKSx0KFthKCJfdGFnRmlsdGVyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx3Q3QucHJvdG90eXBlLCJfcmVmcmVzaERhdGFTZXJpZXMiLG51bGwpLHQoW3MoIm1hcmdpbkNoYXJ0U2VyaWVzIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sd0N0LnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsbnVsbCksdChbcygidGl0bGUiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSx3Q3QucHJvdG90eXBlLCJfdGl0bGVEaXNwbGF5U3RyaW5nIixudWxsKSx3Q3Q9dChbaSgidGYtY3VzdG9tLXNjYWxhci1tYXJnaW4tY2hhcnQtY2FyZCIpXSx3Q3QpO3ZhciBTQ3Q9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsVFlQRVM6W10sZ2V0UnVuc05hbWVkOmZ1bmN0aW9uIE1DdCh0KXtyZXR1cm4gU2UuZXhwb3J0cy5rZXlzKHQpLnNvcnQobnIpfSxnZXRUYWdzOmFyLGZpbHRlclRhZ3M6ZnVuY3Rpb24gRUN0KHQsZSl7bGV0IG49W107cmV0dXJuIGUuZm9yRWFjaCgoZT0+bj1uLmNvbmNhdCh0W2VdKSkpLFNlLmV4cG9ydHMudW5pcShuKS5zb3J0KG5yKX0sTGlzdGVuS2V5OmZsLEJhc2VTdG9yZTptbCxDYW5jZWxsZXI6WFIsRW52aXJvbm1lbnRTdG9yZTpnbCxlbnZpcm9ubWVudFN0b3JlOl9sLEV4cGVyaW1lbnRzU3RvcmU6RlIsZXhwZXJpbWVudHNTdG9yZTpWUixSZXF1ZXN0Q2FuY2VsbGF0aW9uRXJyb3I6c3IsSW52YWxpZFJlcXVlc3RPcHRpb25zRXJyb3I6bHIsUmVxdWVzdE5ldHdvcmtFcnJvcjpjcixnZXQgSHR0cE1ldGhvZFR5cGUoKXtyZXR1cm4gdXJ9LFJlcXVlc3RPcHRpb25zOmhyLFJlcXVlc3RNYW5hZ2VyOmRyLGNyZWF0ZVJvdXRlcjpncixnZXRSb3V0ZXI6X3Isc2V0Um91dGVyOmZ1bmN0aW9uIFRDdCh0KXtpZihudWxsPT10KXRocm93IG5ldyBFcnJvcigiUm91dGVyIHJlcXVpcmVkLCBidXQgZ290OiAiK3QpO21yPXR9LGNyZWF0ZVNlYXJjaFBhcmFtOnZyLFJ1bnNTdG9yZTp5bCxydW5zU3RvcmU6dmwsYWRkUGFyYW1zOmlPfSk7bGV0IENDdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuYWN0aXZlPSEwLHRoaXMuX2NvbG9yU2NhbGU9bmV3IHhDdCh7c2NhbGU6R1J9KSx0aGlzLl9uYW1lVG9EYXRhU2VyaWVzPXt9LHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX3JlcXVlc3REYXRhPSh0LGUsbik9Pntjb25zdCBpPV9yKCkucGx1Z2luUm91dGUoImN1c3RvbV9zY2FsYXJzIiwiL3NjYWxhcnMiKTtQcm9taXNlLmFsbCh0Lm1hcCgodD0+e2NvbnN0IG49aU8oaSx7dGFnOnRoaXMuX3RhZ0ZpbHRlcixydW46dH0pO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QobikudGhlbigobj0+e2Uoe2l0ZW06dCxkYXRhOm59KX0pKX0pKSkuZmluYWxseSgoKCk9PntuKCl9KSl9LHRoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4PXt9LHRoaXMuX21hdGNoZXNMaXN0T3BlbmVkPSExfXJlbG9hZCgpe3RoaXMuJC5sb2FkZXIucmVsb2FkKCl9cmVkcmF3KCl7dGhpcy4kLmxvYWRlci5yZWRyYXcoKX1fdG9nZ2xlRXhwYW5kZWQodCl7dGhpcy5zZXQoIl9leHBhbmRlZCIsIXRoaXMuX2V4cGFuZGVkKSx0aGlzLnJlZHJhdygpfV90b2dnbGVMb2dTY2FsZSgpe3RoaXMuc2V0KCJfbG9nU2NhbGVBY3RpdmUiLCF0aGlzLl9sb2dTY2FsZUFjdGl2ZSl9X3Jlc2V0RG9tYWluKCl7Y29uc3QgdD10aGlzLiQubG9hZGVyO3QmJnQucmVzZXREb21haW4oKX1fY3N2VXJsKHQsZSl7cmV0dXJuIGU/aU8odGhpcy5fZG93bmxvYWREYXRhVXJsKHQsZSkse2Zvcm1hdDoiY3N2In0pOiIifV9qc29uVXJsKHQsZSl7cmV0dXJuIGU/aU8odGhpcy5fZG93bmxvYWREYXRhVXJsKHQsZSkse2Zvcm1hdDoianNvbiJ9KToiIn1fZG93bmxvYWREYXRhVXJsKHQsZSl7Y29uc3Qgbj10W2VdLGk9e3RhZzpuLmdldFRhZygpLHJ1bjpuLmdldFJ1bigpfTtyZXR1cm4gaU8oX3IoKS5wbHVnaW5Sb3V0ZSgiY3VzdG9tX3NjYWxhcnMiLCIvZG93bmxvYWRfZGF0YSIpLGkpfV9jcmVhdGVQcm9jZXNzRGF0YUZ1bmN0aW9uKCl7cmV0dXJuKHQsZSxuKT0+e2lmKG4ucmVnZXhfdmFsaWQpe2NvbnN0IHQ9U2UuZXhwb3J0cy5jbG9uZSh0aGlzLl9uYW1lVG9EYXRhU2VyaWVzKTtTZS5leHBvcnRzLmZvck93bihuLnRhZ190b19ldmVudHMsKChuLGkpPT57Y29uc3Qgcj1uLm1hcCgodD0+KHt3YWxsX3RpbWU6bmV3IERhdGUoMWUzKnRbMF0pLHN0ZXA6dFsxXSxzY2FsYXI6dFsyXX0pKSksbz1iQ3QoZSxpKSxhPXRbb107aWYoYSlhLnNldERhdGEocik7ZWxzZXtTZS5leHBvcnRzLmlzVW5kZWZpbmVkKHRoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4W2VdKSYmKHRoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4W2VdPTApO2NvbnN0IG49bmV3IHZDdChlLGksbyxyLGJUdFt0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFtlXV0pO3Rbb109bix0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFtlXT0odGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXhbZV0rMSklYlR0Lmxlbmd0aH19KSksdGhpcy5zZXQoIl9uYW1lVG9EYXRhU2VyaWVzIix0KX19fV91cGRhdGVDaGFydCgpe09iamVjdC5lbnRyaWVzKHRoaXMuX25hbWVUb0RhdGFTZXJpZXMpLmZvckVhY2goKChbdCxlXSk9Pnt0aGlzLiQubG9hZGVyLnNldFNlcmllc0RhdGEodCxlLmdldERhdGEoKSl9KSksdGhpcy4kLmxvYWRlci5jb21taXRDaGFuZ2VzKCl9X2NvbXB1dGVTZWxlY3RlZFJ1bnNTZXQodCl7Y29uc3QgZT17fTtyZXR1cm4gU2UuZXhwb3J0cy5mb3JFYWNoKHQsKHQ9PntlW3RdPTF9KSksZX1nZXQgX3Nlcmllc05hbWVzKCl7Y29uc3QgdD1uZXcgU2V0KHRoaXMucnVucyk7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuX25hbWVUb0RhdGFTZXJpZXMpLmZpbHRlcigoKFtlLG5dKT0+dC5oYXMobi5ydW4pKSkubWFwKCgoW3RdKT0+dCkpfV9kZXRlcm1pbmVDb2xvcih0LGUpe3JldHVybiB0LnNjYWxlKGUpfV9yZWZyZXNoRGF0YVNlcmllcygpe3RoaXMuc2V0KCJfbmFtZVRvRGF0YVNlcmllcyIse30pfV9jcmVhdGVTeW1ib2xGdW5jdGlvbigpe3JldHVybiB0PT50aGlzLl9uYW1lVG9EYXRhU2VyaWVzW3RdLmdldFN5bWJvbCgpLm1ldGhvZCgpfV9kZXRlcm1pbmVTeW1ib2wodCxlKXtyZXR1cm4gdFtlXS5nZXRTeW1ib2woKS5jaGFyYWN0ZXJ9Z2V0IF90YWdGaWx0ZXIoKXt2YXIgdD10aGlzLnRhZ1JlZ2V4ZXM7cmV0dXJuIDE9PT10Lmxlbmd0aD90WzBdOnQubWFwKCh0PT4iKCIrdCsiKSIpKS5qb2luKCJ8Iil9X2dldFRvZ2dsZU1hdGNoZXNJY29uKHQpe3JldHVybiB0PyJleHBhbmQtbGVzcyI6ImV4cGFuZC1tb3JlIn1fdG9nZ2xlTWF0Y2hlc09wZW4oKXt0aGlzLnNldCgiX21hdGNoZXNMaXN0T3BlbmVkIiwhdGhpcy5fbWF0Y2hlc0xpc3RPcGVuZWQpfWdldCBfdGl0bGVEaXNwbGF5U3RyaW5nKCl7cmV0dXJuIHRoaXMudGl0bGV8fCJ1bnRpdGxlZCJ9X21hdGNoTGlzdEVudHJ5Q29sb3JVcGRhdGVkKHQpe2NvbnN0IGU9dGhpcy4kJCgiI21hdGNoLWxpc3QtcmVwZWF0Iik7ZSYmdGhpcy5yb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tYXRjaC1saXN0LWVudHJ5IikuZm9yRWFjaCgodD0+e2NvbnN0IG49ZS5pdGVtRm9yRWxlbWVudCh0KTt0LnN0eWxlLmNvbG9yPXRoaXMuX2RldGVybWluZUNvbG9yKHRoaXMuX2NvbG9yU2NhbGUsbil9KSl9fTtDQ3QudGVtcGxhdGU9X2VgCiAgICA8dGYtY2FyZC1oZWFkaW5nIGRpc3BsYXktbmFtZT0iW1tfdGl0bGVEaXNwbGF5U3RyaW5nXV0iPjwvdGYtY2FyZC1oZWFkaW5nPgogICAgPGRpdiBpZD0idGYtbGluZS1jaGFydC1kYXRhLWxvYWRlci1jb250YWluZXIiPgogICAgICA8dGYtbGluZS1jaGFydC1kYXRhLWxvYWRlcgogICAgICAgIGlkPSJsb2FkZXIiCiAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgIGNvbG9yLXNjYWxlPSJbW19jb2xvclNjYWxlXV0iCiAgICAgICAgZGF0YS1zZXJpZXM9IltbX3Nlcmllc05hbWVzXV0iCiAgICAgICAgaWdub3JlLXktb3V0bGllcnM9IltbaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgbG9hZC1rZXk9IltbX3RhZ0ZpbHRlcl1dIgogICAgICAgIGRhdGEtdG8tbG9hZD0iW1tydW5zXV0iCiAgICAgICAgcmVxdWVzdC1kYXRhPSJbW19yZXF1ZXN0RGF0YV1dIgogICAgICAgIGxvZy1zY2FsZS1hY3RpdmU9IltbX2xvZ1NjYWxlQWN0aXZlXV0iCiAgICAgICAgbG9hZC1kYXRhLWNhbGxiYWNrPSJbW19jcmVhdGVQcm9jZXNzRGF0YUZ1bmN0aW9uKCldXSIKICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICBzbW9vdGhpbmctZW5hYmxlZD0iW1tzbW9vdGhpbmdFbmFibGVkXV0iCiAgICAgICAgc21vb3RoaW5nLXdlaWdodD0iW1tzbW9vdGhpbmdXZWlnaHRdXSIKICAgICAgICBzeW1ib2wtZnVuY3Rpb249IltbX2NyZWF0ZVN5bWJvbEZ1bmN0aW9uKCldXSIKICAgICAgICB0b29sdGlwLXNvcnRpbmctbWV0aG9kPSJbW3Rvb2x0aXBTb3J0aW5nTWV0aG9kXV0iCiAgICAgICAgeC10eXBlPSJbW3hUeXBlXV0iCiAgICAgID4KICAgICAgPC90Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJidXR0b25zIj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19leHBhbmRlZF1dIgogICAgICAgIGljb249ImZ1bGxzY3JlZW4iCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2xvZ1NjYWxlQWN0aXZlXV0iCiAgICAgICAgaWNvbj0ibGluZS13ZWlnaHQiCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlTG9nU2NhbGUiCiAgICAgICAgdGl0bGU9IlRvZ2dsZSB5LWF4aXMgbG9nIHNjYWxlIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgaWNvbj0ic2V0dGluZ3Mtb3ZlcnNjYW4iCiAgICAgICAgb24tdGFwPSJfcmVzZXREb21haW4iCiAgICAgICAgdGl0bGU9IkZpdCBkb21haW4gdG8gZGF0YSIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDxzcGFuIHN0eWxlPSJmbGV4LWdyb3c6IDEiPjwvc3Bhbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3Nob3dEb3dubG9hZExpbmtzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImRvd25sb2FkLWxpbmtzIj4KICAgICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICAgIG5vLWxhYmVsLWZsb2F0PSJ0cnVlIgogICAgICAgICAgICBsYWJlbD0ic2VyaWVzIHRvIGRvd25sb2FkIgogICAgICAgICAgICBzZWxlY3RlZC1pdGVtLWxhYmVsPSJ7e19kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWR9fSIKICAgICAgICAgID4KICAgICAgICAgICAgPHBhcGVyLWxpc3Rib3ggY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgICAgICBpdGVtcz0iW1tfc2VyaWVzTmFtZXNdXSIKICAgICAgICAgICAgICAgIGFzPSJkYXRhU2VyaWVzTmFtZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItaXRlbSBuby1sYWJlbC1mbG9hdD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPltbZGF0YVNlcmllc05hbWVdXTwvcGFwZXItaXRlbQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICAgIDwvcGFwZXItZHJvcGRvd24tbWVudT4KICAgICAgICAgIDxhCiAgICAgICAgICAgIGRvd25sb2FkPSJbW19kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWRdXS5jc3YiCiAgICAgICAgICAgIGhyZWY9IltbX2NzdlVybChfbmFtZVRvRGF0YVNlcmllcywgX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZCldXSIKICAgICAgICAgICAgPkNTVjwvYQogICAgICAgICAgPgogICAgICAgICAgPGEKICAgICAgICAgICAgZG93bmxvYWQ9IltbX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZF1dLmpzb24iCiAgICAgICAgICAgIGhyZWY9IltbX2pzb25VcmwoX25hbWVUb0RhdGFTZXJpZXMsIF9kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWQpXV0iCiAgICAgICAgICAgID5KU09OPC9hCiAgICAgICAgICA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9Im1hdGNoZXMtY29udGFpbmVyIj4KICAgICAgPGRpdiBpZD0ibWF0Y2hlcy1saXN0LXRpdGxlIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3Nlcmllc05hbWVzLmxlbmd0aF1dIj4KICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICBpY29uPSJbW19nZXRUb2dnbGVNYXRjaGVzSWNvbihfbWF0Y2hlc0xpc3RPcGVuZWQpXV0iCiAgICAgICAgICAgIG9uLWNsaWNrPSJfdG9nZ2xlTWF0Y2hlc09wZW4iCiAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtbWF0Y2hlcy1idXR0b24iCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgIDwvdGVtcGxhdGU+CgogICAgICAgIDxzcGFuIGNsYXNzPSJtYXRjaGVzLXRleHQiPiBNYXRjaGVzIChbW19zZXJpZXNOYW1lcy5sZW5ndGhdXSkgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zZXJpZXNOYW1lcy5sZW5ndGhdXSI+CiAgICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJbW19tYXRjaGVzTGlzdE9wZW5lZF1dIj4KICAgICAgICAgIDxkaXYgaWQ9Im1hdGNoZXMtbGlzdCI+CiAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICAgIGl0ZW1zPSJbW19zZXJpZXNOYW1lc11dIgogICAgICAgICAgICAgIGFzPSJzZXJpZXNOYW1lIgogICAgICAgICAgICAgIGlkPSJtYXRjaC1saXN0LXJlcGVhdCIKICAgICAgICAgICAgICBvbi1kb20tY2hhbmdlPSJfbWF0Y2hMaXN0RW50cnlDb2xvclVwZGF0ZWQiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXRjaC1saXN0LWVudHJ5Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtYXRjaC1lbnRyeS1zeW1ib2wiPgogICAgICAgICAgICAgICAgICBbW19kZXRlcm1pbmVTeW1ib2woX25hbWVUb0RhdGFTZXJpZXMsIHNlcmllc05hbWUpXV0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIFtbc2VyaWVzTmFtZV1dCiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2lyb24tY29sbGFwc2U+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2Rpdj4KCiAgICA8c3R5bGUgaW5jbHVkZT0idGYtY3VzdG9tLXNjYWxhci1jYXJkLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICAjbWF0Y2hlcy1saXN0LXRpdGxlIHsKICAgICAgICBtYXJnaW46IDEwcHggMCA1cHggMDsKICAgICAgfQoKICAgICAgI21hdGNoZXMtbGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLm1hdGNoLWxpc3QtZW50cnkgewogICAgICAgIG1hcmdpbjogMCAwIDVweCAwOwogICAgICB9CgogICAgICAubWF0Y2gtZW50cnktc3ltYm9sIHsKICAgICAgICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICB9CgogICAgICAubWF0Y2hlcy10ZXh0IHsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLENDdC5wcm90b3R5cGUsInJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQ0N0LnByb3RvdHlwZSwieFR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDQ3QucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQ0N0LnByb3RvdHlwZSwidGl0bGUiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLENDdC5wcm90b3R5cGUsInRhZ1JlZ2V4ZXMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDQ3QucHJvdG90eXBlLCJpZ25vcmVZT3V0bGllcnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsZHIpXSxDQ3QucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLENDdC5wcm90b3R5cGUsInNob3dEb3dubG9hZExpbmtzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQ0N0LnByb3RvdHlwZSwic21vb3RoaW5nRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxDQ3QucHJvdG90eXBlLCJzbW9vdGhpbmdXZWlnaHQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQ0N0LnByb3RvdHlwZSwidGFnTWV0YWRhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQ0N0LnByb3RvdHlwZSwidG9vbHRpcFNvcnRpbmdNZXRob2QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIseEN0KV0sQ0N0LnByb3RvdHlwZSwiX2NvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQ0N0LnByb3RvdHlwZSwiX25hbWVUb0RhdGFTZXJpZXMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQ0N0LnByb3RvdHlwZSwiX2V4cGFuZGVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQ0N0LnByb3RvdHlwZSwiX2xvZ1NjYWxlQWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sQ0N0LnByb3RvdHlwZSwiX3JlcXVlc3REYXRhIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLENDdC5wcm90b3R5cGUsIl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLENDdC5wcm90b3R5cGUsIl9tYXRjaGVzTGlzdE9wZW5lZCIsdm9pZCAwKSx0KFthKCJfbmFtZVRvRGF0YVNlcmllcyIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sQ0N0LnByb3RvdHlwZSwiX3VwZGF0ZUNoYXJ0IixudWxsKSx0KFtzKCJfbmFtZVRvRGF0YVNlcmllcyIsInJ1bnMiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxDQ3QucHJvdG90eXBlLCJfc2VyaWVzTmFtZXMiLG51bGwpLHQoW2EoIl90YWdGaWx0ZXIiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLENDdC5wcm90b3R5cGUsIl9yZWZyZXNoRGF0YVNlcmllcyIsbnVsbCksdChbcygidGFnUmVnZXhlcyIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLENDdC5wcm90b3R5cGUsIl90YWdGaWx0ZXIiLG51bGwpLHQoW3MoInRpdGxlIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sQ0N0LnByb3RvdHlwZSwiX3RpdGxlRGlzcGxheVN0cmluZyIsbnVsbCksQ0N0PXQoW2koInRmLWN1c3RvbS1zY2FsYXItbXVsdGktbGluZS1jaGFydC1jYXJkIildLENDdCk7bGV0IEFDdD1jbGFzcyBleHRlbmRzIHlle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9yZXF1ZXN0TWFuYWdlcj1uZXcgZHIoNTApLHRoaXMuX2NhbmNlbGxlcj1uZXcgWFIsdGhpcy5fc2hvd0Rvd25sb2FkTGlua3M9SHMoIl9zaG93RG93bmxvYWRMaW5rcyIse2RlZmF1bHRWYWx1ZTohMSx1c2VMb2NhbFN0b3JhZ2U6ITB9KS5jYWxsKHRoaXMpLHRoaXMuX3Ntb290aGluZ1dlaWdodD1HcygiX3Ntb290aGluZ1dlaWdodCIse2RlZmF1bHRWYWx1ZTouNn0pLmNhbGwodGhpcyksdGhpcy5faWdub3JlWU91dGxpZXJzPUhzKCJfaWdub3JlWU91dGxpZXJzIix7ZGVmYXVsdFZhbHVlOiEwLHVzZUxvY2FsU3RvcmFnZTohMH0pLmNhbGwodGhpcyksdGhpcy5feFR5cGU9InN0ZXAiLHRoaXMuX2FjdGl2ZT0hMCx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5fc2hvd0Rvd25sb2FkTGlua3NPYnNlcnZlcj1GcygiX3Nob3dEb3dubG9hZExpbmtzIix7ZGVmYXVsdFZhbHVlOiExLHVzZUxvY2FsU3RvcmFnZTohMH0pLHRoaXMuX3Ntb290aGluZ1dlaWdodE9ic2VydmVyPVdzKCJfc21vb3RoaW5nV2VpZ2h0Iix7ZGVmYXVsdFZhbHVlOi42fSksdGhpcy5faWdub3JlWU91dGxpZXJzT2JzZXJ2ZXI9RnMoIl9pZ25vcmVZT3V0bGllcnMiLHtkZWZhdWx0VmFsdWU6ITAsdXNlTG9jYWxTdG9yYWdlOiEwfSl9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMucmVsb2FkT25SZWFkeSYmdGhpcy5yZWxvYWQoKX1yZWxvYWQoKXtjb25zdCB0PV9yKCkucGx1Z2luc0xpc3RpbmcoKSxlPXRoaXMuX2NhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e3QuY2FuY2VsbGVkfHwodGhpcy5zZXQoIl9kYXRhTm90Rm91bmQiLCF0LnZhbHVlLmN1c3RvbV9zY2FsYXJzKSx0aGlzLl9kYXRhTm90Rm91bmR8fHRoaXMuX3JldHJpZXZlTGF5b3V0QW5kRGF0YSgpKX0pKTt0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oZSl9X3JlbG9hZENoYXJ0cygpe3RoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1jdXN0b20tc2NhbGFyLW1hcmdpbi1jaGFydC1jYXJkLCB0Zi1jdXN0b20tc2NhbGFyLW11bHRpLWxpbmUtY2hhcnQtY2FyZCIpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfV9yZXRyaWV2ZUxheW91dEFuZERhdGEoKXtjb25zdCB0PV9yKCkucGx1Z2luUm91dGUoImN1c3RvbV9zY2FsYXJzIiwiL2xheW91dCIpLGU9dGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT57dC5jYW5jZWxsZWR8fCh0aGlzLnNldCgiX2xheW91dCIsdC52YWx1ZSksdGhpcy5fZGF0YU5vdEZvdW5kfHx0aGlzLl9yZWxvYWRDaGFydHMoKSl9KSk7dGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKGUpfWdldCBfc21vb3RoaW5nRW5hYmxlZCgpe3JldHVybiB0aGlzLl9zbW9vdGhpbmdXZWlnaHQ+MH1nZXQgX2NhdGVnb3JpZXMoKXt2YXIgdD10aGlzLl9sYXlvdXQ7aWYoIXQuY2F0ZWdvcnkpcmV0dXJuW107bGV0IGU9ITE7cmV0dXJuIHRoaXMuX29wZW5lZENhdGVnb3JpZXN8fChlPSEwLHRoaXMuX29wZW5lZENhdGVnb3JpZXM9e30pLHQuY2F0ZWdvcnkubWFwKCh0PT4oZSYmIXQuY2xvc2VkJiYodGhpcy5fb3BlbmVkQ2F0ZWdvcmllc1t0LnRpdGxlXT0hMCkse25hbWU6dC50aXRsZSxpdGVtczp0LmNoYXJ0LG1ldGFkYXRhOnt0eXBlOmJyLlBSRUZJWF9HUk9VUCxvcGVuZWQ6ISF0aGlzLl9vcGVuZWRDYXRlZ29yaWVzW3QudGl0bGVdfX0pKSl9X2NhdGVnb3J5T3BlbmVkVG9nZ2xlZCh0KXtjb25zdCBlPXQudGFyZ2V0O2Uub3BlbmVkP3RoaXMuX29wZW5lZENhdGVnb3JpZXNbZS5jYXRlZ29yeS5uYW1lXT0hMDpkZWxldGUgdGhpcy5fb3BlbmVkQ2F0ZWdvcmllc1tlLmNhdGVnb3J5Lm5hbWVdfX07QUN0LnRlbXBsYXRlPV9lYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94IGNoZWNrZWQ9Int7X3Nob3dEb3dubG9hZExpbmtzfX0iCiAgICAgICAgICAgICAgICA+U2hvdyBkYXRhIGRvd25sb2FkIGxpbmtzPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94IGNoZWNrZWQ9Int7X2lnbm9yZVlPdXRsaWVyc319IgogICAgICAgICAgICAgICAgPklnbm9yZSBvdXRsaWVycyBpbiBjaGFydCBzY2FsaW5nPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgaWQ9InRvb2x0aXAtc29ydGluZyI+CiAgICAgICAgICAgICAgPGRpdiBpZD0idG9vbHRpcC1zb3J0aW5nLWxhYmVsIj5Ub29sdGlwIHNvcnRpbmcgbWV0aG9kOjwvZGl2PgogICAgICAgICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICAgICAgICBuby1sYWJlbC1mbG9hdD0iIgogICAgICAgICAgICAgICAgc2VsZWN0ZWQtaXRlbS1sYWJlbD0ie3tfdG9vbHRpcFNvcnRpbmdNZXRob2R9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9IjAiCiAgICAgICAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlZmF1bHQ8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlc2NlbmRpbmc8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmFzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+bmVhcmVzdDwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtc21vb3RoaW5nLWlucHV0CiAgICAgICAgICAgICAgd2VpZ2h0PSJ7e19zbW9vdGhpbmdXZWlnaHR9fSIKICAgICAgICAgICAgICBzdGVwPSIwLjAwMSIKICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICA+PC90Zi1zbW9vdGhpbmctaW5wdXQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDx0Zi1vcHRpb24tc2VsZWN0b3IKICAgICAgICAgICAgICBpZD0ieC10eXBlLXNlbGVjdG9yIgogICAgICAgICAgICAgIG5hbWU9Ikhvcml6b250YWwgQXhpcyIKICAgICAgICAgICAgICBzZWxlY3RlZC1pZD0ie3tfeFR5cGV9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InN0ZXAiPnN0ZXA8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID48IS0tCiAgICAgICAgICAgIC0tPjxwYXBlci1idXR0b24gaWQ9InJlbGF0aXZlIj5yZWxhdGl2ZTwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPjwhLS0KICAgICAgICAgICAgLS0+PHBhcGVyLWJ1dHRvbiBpZD0id2FsbF90aW1lIj53YWxsPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvdGYtb3B0aW9uLXNlbGVjdG9yPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3Igc2VsZWN0ZWQtcnVucz0ie3tfc2VsZWN0ZWRSdW5zfX0iPgogICAgICAgICAgPC90Zi1ydW5zLXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIiBzbG90PSJjZW50ZXIiIGlkPSJjYXRlZ29yaWVzLWNvbnRhaW5lciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+VGhlIGN1c3RvbSBzY2FsYXJzIGRhc2hib2FyZCBpcyBpbmFjdGl2ZS48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8b2w+CiAgICAgICAgICAgICAgPGxpPllvdSBoYXZlbid0IGxhaWQgb3V0IHRoZSBkYXNoYm9hcmQuPC9saT4KICAgICAgICAgICAgICA8bGk+WW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBzY2FsYXIgZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvb2w+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBUbyBsYXkgb3V0IHRoZSBkYXNoYm9hcmQsIHBhc3MgYSA8Y29kZT5MYXlvdXQ8L2NvZGU+IHByb3RvYnVmZmVyCiAgICAgICAgICAgICAgdG8gdGhlIDxjb2RlPnNldF9sYXlvdXQ8L2NvZGU+IG1ldGhvZC4gRm9yIGV4YW1wbGUsCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPHByZT4KZnJvbSB0ZW5zb3Jib2FyZCBpbXBvcnQgc3VtbWFyeQpmcm9tIHRlbnNvcmJvYXJkLnBsdWdpbnMuY3VzdG9tX3NjYWxhciBpbXBvcnQgbGF5b3V0X3BiMgouLi4KIyBUaGlzIGFjdGlvbiBkb2VzIG5vdCBoYXZlIHRvIGJlIHBlcmZvcm1lZCBhdCBldmVyeSBzdGVwLCBzbyB0aGUgYWN0aW9uIGlzIG5vdAojIHRha2VuIGNhcmUgb2YgYnkgYW4gb3AgaW4gdGhlIGdyYXBoLiBXZSBvbmx5IG5lZWQgdG8gc3BlY2lmeSB0aGUgbGF5b3V0IG9uY2UKIyAoaW5zdGVhZCBvZiBwZXIgc3RlcCkuCmxheW91dF9zdW1tYXJ5ID0gc3VtbWFyeV9saWIuY3VzdG9tX3NjYWxhcl9wYihsYXlvdXRfcGIyLkxheW91dCgKICBjYXRlZ29yeT1bCiAgICBsYXlvdXRfcGIyLkNhdGVnb3J5KAogICAgICB0aXRsZT0nbG9zc2VzJywKICAgICAgY2hhcnQ9WwogICAgICAgICAgbGF5b3V0X3BiMi5DaGFydCgKICAgICAgICAgICAgICB0aXRsZT0nbG9zc2VzJywKICAgICAgICAgICAgICBtdWx0aWxpbmU9bGF5b3V0X3BiMi5NdWx0aWxpbmVDaGFydENvbnRlbnQoCiAgICAgICAgICAgICAgICB0YWc9W3InbG9zcy4qJ10sCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICBsYXlvdXRfcGIyLkNoYXJ0KAogICAgICAgICAgICAgIHRpdGxlPSdiYXonLAogICAgICAgICAgICAgIG1hcmdpbj1sYXlvdXRfcGIyLk1hcmdpbkNoYXJ0Q29udGVudCgKICAgICAgICAgICAgICAgIHNlcmllcz1bCiAgICAgICAgICAgICAgICAgIGxheW91dF9wYjIuTWFyZ2luQ2hhcnRDb250ZW50LlNlcmllcygKICAgICAgICAgICAgICAgICAgICB2YWx1ZT0nbG9zcy9iYXovc2NhbGFyX3N1bW1hcnknLAogICAgICAgICAgICAgICAgICAgIGxvd2VyPSdiYXpfbG93ZXIvYmF6L3NjYWxhcl9zdW1tYXJ5JywKICAgICAgICAgICAgICAgICAgICB1cHBlcj0nYmF6X3VwcGVyL2Jhei9zY2FsYXJfc3VtbWFyeScpLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICApKSwKICAgICAgXSksCiAgICBsYXlvdXRfcGIyLkNhdGVnb3J5KAogICAgICB0aXRsZT0ndHJpZyBmdW5jdGlvbnMnLAogICAgICBjaGFydD1bCiAgICAgICAgICBsYXlvdXRfcGIyLkNoYXJ0KAogICAgICAgICAgICAgIHRpdGxlPSd3YXZlIHRyaWcgZnVuY3Rpb25zJywKICAgICAgICAgICAgICBtdWx0aWxpbmU9bGF5b3V0X3BiMi5NdWx0aWxpbmVDaGFydENvbnRlbnQoCiAgICAgICAgICAgICAgICB0YWc9W3IndHJpZ0Z1bmN0aW9ucy9jb3NpbmUnLCByJ3RyaWdGdW5jdGlvbnMvc2luZSddLAogICAgICAgICAgICAgICkpLAogICAgICAgICAgIyBUaGUgcmFuZ2Ugb2YgdGFuZ2VudCBpcyBkaWZmZXJlbnQuIExldCdzIGdpdmUgaXQgaXRzIG93biBjaGFydC4KICAgICAgICAgIGxheW91dF9wYjIuQ2hhcnQoCiAgICAgICAgICAgICAgdGl0bGU9J3RhbicsCiAgICAgICAgICAgICAgbXVsdGlsaW5lPWxheW91dF9wYjIuTXVsdGlsaW5lQ2hhcnRDb250ZW50KAogICAgICAgICAgICAgICAgdGFnPVtyJ3RyaWdGdW5jdGlvbnMvdGFuZ2VudCddLAogICAgICAgICAgICAgICkpLAogICAgICBdLAogICAgICAjIFRoaXMgY2F0ZWdvcnkgd2UgY2FyZSBsZXNzIGFib3V0LiBMZXQncyBtYWtlIGl0IGluaXRpYWxseSBjbG9zZWQuCiAgICAgIGNsb3NlZD1UcnVlKSwKICBdKSkKd3JpdGVyLmFkZF9zdW1tYXJ5KGxheW91dF9zdW1tYXJ5KQo8L3ByZQogICAgICAgICAgICA+CiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgYXM9ImNoYXJ0IgogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgZGlzYWJsZS1wYWdpbmF0aW9uCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbY2F0ZWdvcnkubWV0YWRhdGEub3BlbmVkXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbY2hhcnQubXVsdGlsaW5lXV0iPgogICAgICAgICAgICAgICAgICA8dGYtY3VzdG9tLXNjYWxhci1tdWx0aS1saW5lLWNoYXJ0LWNhcmQKICAgICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW19yZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgICAgICAgICAgICAgIHJ1bnM9IltbX3NlbGVjdGVkUnVuc11dIgogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJbW2NoYXJ0LnRpdGxlXV0iCiAgICAgICAgICAgICAgICAgICAgeC10eXBlPSJbW194VHlwZV1dIgogICAgICAgICAgICAgICAgICAgIHNtb290aGluZy1lbmFibGVkPSJbW19zbW9vdGhpbmdFbmFibGVkXV0iCiAgICAgICAgICAgICAgICAgICAgc21vb3RoaW5nLXdlaWdodD0iW1tfc21vb3RoaW5nV2VpZ2h0XV0iCiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcC1zb3J0aW5nLW1ldGhvZD0iW1t0b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgICAgICAgICAgICAgIGlnbm9yZS15LW91dGxpZXJzPSJbW19pZ25vcmVZT3V0bGllcnNdXSIKICAgICAgICAgICAgICAgICAgICBzaG93LWRvd25sb2FkLWxpbmtzPSJbW19zaG93RG93bmxvYWRMaW5rc11dIgogICAgICAgICAgICAgICAgICAgIHRhZy1yZWdleGVzPSJbW2NoYXJ0Lm11bHRpbGluZS50YWddXSIKICAgICAgICAgICAgICAgICAgPjwvdGYtY3VzdG9tLXNjYWxhci1tdWx0aS1saW5lLWNoYXJ0LWNhcmQ+CiAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2NoYXJ0Lm1hcmdpbl1dIj4KICAgICAgICAgICAgICAgICAgPHRmLWN1c3RvbS1zY2FsYXItbWFyZ2luLWNoYXJ0LWNhcmQKICAgICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW19yZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgICAgICAgICAgICAgIHJ1bnM9IltbX3NlbGVjdGVkUnVuc11dIgogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJbW2NoYXJ0LnRpdGxlXV0iCiAgICAgICAgICAgICAgICAgICAgeC10eXBlPSJbW194VHlwZV1dIgogICAgICAgICAgICAgICAgICAgIHRvb2x0aXAtc29ydGluZy1tZXRob2Q9IltbdG9vbHRpcFNvcnRpbmdNZXRob2RdXSIKICAgICAgICAgICAgICAgICAgICBpZ25vcmUteS1vdXRsaWVycz0iW1tfaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgICAgICAgICAgICAgc2hvdy1kb3dubG9hZC1saW5rcz0iW1tfc2hvd0Rvd25sb2FkTGlua3NdXSIKICAgICAgICAgICAgICAgICAgICBtYXJnaW4tY2hhcnQtc2VyaWVzPSJbW2NoYXJ0Lm1hcmdpbi5zZXJpZXNdXSIKICAgICAgICAgICAgICAgICAgPjwvdGYtY3VzdG9tLXNjYWxhci1tYXJnaW4tY2hhcnQtY2FyZD4KICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgI3Rvb2x0aXAtc29ydGluZyB7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICB9CiAgICAgICN0b29sdGlwLXNvcnRpbmcgcGFwZXItZHJvcGRvd24tbWVudSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItZm9jdXMtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIHdpZHRoOiAxMDVweDsKICAgICAgfQogICAgICAubGluZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nLXRvcDogNXB4OwogICAgICB9CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsZHIpXSxBQ3QucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsWFIpXSxBQ3QucHJvdG90eXBlLCJfY2FuY2VsbGVyIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxBQ3QucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixub3RpZnk6ITAsb2JzZXJ2ZXI6Il9zaG93RG93bmxvYWRMaW5rc09ic2VydmVyIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQUN0LnByb3RvdHlwZSwiX3Nob3dEb3dubG9hZExpbmtzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMCxvYnNlcnZlcjoiX3Ntb290aGluZ1dlaWdodE9ic2VydmVyIn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxBQ3QucHJvdG90eXBlLCJfc21vb3RoaW5nV2VpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX2lnbm9yZVlPdXRsaWVyc09ic2VydmVyIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQUN0LnByb3RvdHlwZSwiX2lnbm9yZVlPdXRsaWVycyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxBQ3QucHJvdG90eXBlLCJfeFR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQUN0LnByb3RvdHlwZSwiX2xheW91dCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEFDdC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQUN0LnByb3RvdHlwZSwiX29wZW5lZENhdGVnb3JpZXMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxBQ3QucHJvdG90eXBlLCJfYWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQUN0LnByb3RvdHlwZSwicmVsb2FkT25SZWFkeSIsdm9pZCAwKSx0KFtzKCJfc21vb3RoaW5nV2VpZ2h0IiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEFDdC5wcm90b3R5cGUsIl9zbW9vdGhpbmdFbmFibGVkIixudWxsKSx0KFtzKCJfbGF5b3V0IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxBQ3QucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCksQUN0PXQoW2koInRmLWN1c3RvbS1zY2FsYXItZGFzaGJvYXJkIildLEFDdCk7Y2xhc3Mga0N0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5ydW4yZGF0YXNldHM9e30sdGhpcy5jb2xvclNjYWxlPWUsdGhpcy5idWlsZENoYXJ0KHQpfWdldERhdGFzZXQodCl7cmV0dXJuIHZvaWQgMD09PXRoaXMucnVuMmRhdGFzZXRzW3RdJiYodGhpcy5ydW4yZGF0YXNldHNbdF09bmV3IHJPLkRhdGFzZXQoW10se3J1bjp0fSkpLHRoaXMucnVuMmRhdGFzZXRzW3RdfWJ1aWxkQ2hhcnQodCl7dGhpcy5vdXRlciYmdGhpcy5vdXRlci5kZXN0cm95KCk7bGV0IGU9QVR0KHQpO3RoaXMueEFjY2Vzc29yPWUuYWNjZXNzb3IsdGhpcy54U2NhbGU9ZS5zY2FsZSx0aGlzLnhBeGlzPWUuYXhpcyx0aGlzLnhBeGlzLm1hcmdpbigwKSx0aGlzLnhBeGlzLnRpY2tMYWJlbFBhZGRpbmcoMyksdGhpcy55U2NhbGU9bmV3IHJPLlNjYWxlcy5MaW5lYXIsdGhpcy55QXhpcz1uZXcgck8uQXhlcy5OdW1lcmljKHRoaXMueVNjYWxlLCJsZWZ0Iik7bGV0IG49d1R0KDMpO3RoaXMueUF4aXMubWFyZ2luKDApLnRpY2tMYWJlbFBhZGRpbmcoNSkuZm9ybWF0dGVyKG4pLHRoaXMueUF4aXMudXNlc1RleHRXaWR0aEFwcHJveGltYXRpb24oITApO2xldCBpPXRoaXMuYnVpbGRQbG90KHRoaXMueEFjY2Vzc29yLHRoaXMueFNjYWxlLHRoaXMueVNjYWxlKTt0aGlzLmdyaWRsaW5lcz1uZXcgck8uQ29tcG9uZW50cy5HcmlkbGluZXModGhpcy54U2NhbGUsdGhpcy55U2NhbGUpLHRoaXMuY2VudGVyPW5ldyByTy5Db21wb25lbnRzLkdyb3VwKFt0aGlzLmdyaWRsaW5lcyxpXSksdGhpcy5vdXRlcj1uZXcgck8uQ29tcG9uZW50cy5UYWJsZShbW3RoaXMueUF4aXMsdGhpcy5jZW50ZXJdLFtudWxsLHRoaXMueEF4aXNdXSl9YnVpbGRQbG90KHQsZSxuKXtsZXQgaT1bMCwyMjgsMTU4NywzMDg1LDVlMyw2OTE1LDg0MTMsOTc3MiwxZTRdLHI9U2UuZXhwb3J0cy5yYW5nZShpLmxlbmd0aC0xKS5tYXAoKHQ9PihpW3QrMV0taVt0XSkvMjUwMCkpLG89aS5tYXAoKCh0LGUpPT50PT50W2VdWzFdKSksYT1vWzRdLHM9U2UuZXhwb3J0cy5yYW5nZShvLmxlbmd0aC0xKS5tYXAoKGk9PntsZXQgYT1uZXcgck8uUGxvdHMuQXJlYTthLngodCxlKTtsZXQgcz1pPjQ/b1tpXTpvW2krMV07cmV0dXJuIGEueShpPjQ/b1tpKzFdOm9baV0sbiksYS55MChzKSxhLmF0dHIoImZpbGwiLCgodCxlLG4pPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUobi5tZXRhZGF0YSgpLnJ1bikpKSxhLmF0dHIoInN0cm9rZSIsKCh0LGUsbik9PnRoaXMuY29sb3JTY2FsZS5zY2FsZShuLm1ldGFkYXRhKCkucnVuKSkpLGEuYXR0cigic3Ryb2tlLXdlaWdodCIsKCh0LGUsbik9PiIwLjVweCIpKSxhLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwoKCk9PnJbaV0pKSxhLmF0dHIoImZpbGwtb3BhY2l0eSIsKCgpPT5yW2ldKSksYX0pKSxsPW5ldyByTy5QbG90cy5MaW5lO3JldHVybiBsLngodCxlKSxsLnkoYSxuKSxsLmF0dHIoInN0cm9rZSIsKCh0LGUsbik9PnRoaXMuY29sb3JTY2FsZS5zY2FsZShuLnJ1bikpKSx0aGlzLnBsb3RzPXMsbmV3IHJPLkNvbXBvbmVudHMuR3JvdXAocyl9c2V0VmlzaWJsZVNlcmllcyh0KXt0aGlzLnJ1bnM9dDtsZXQgZT10Lm1hcCgodD0+dGhpcy5nZXREYXRhc2V0KHQpKSk7dGhpcy5wbG90cy5mb3JFYWNoKCh0PT50LmRhdGFzZXRzKGUpKSl9c2V0U2VyaWVzRGF0YSh0LGUpe3RoaXMuZ2V0RGF0YXNldCh0KS5kYXRhKGUpfXJlbmRlclRvKHQpe3RoaXMudGFyZ2V0U1ZHPXQsdGhpcy5vdXRlci5yZW5kZXJUbyh0KX1yZWRyYXcoKXt0aGlzLm91dGVyLnJlZHJhdygpfWRlc3Ryb3koKXt0aGlzLm91dGVyLmRlc3Ryb3koKX19bGV0IExDdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29sb3JTY2FsZT0obmV3IHJPLlNjYWxlcy5Db2xvcikucmFuZ2UoZ0Euc2xpY2UoKSksdGhpcy54VHlwZT0ic3RlcCIsdGhpcy5fdmlzaWJsZVNlcmllc0NhY2hlPVtdLHRoaXMuX3Nlcmllc0RhdGFDYWNoZT17fSx0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9bnVsbH1zZXRWaXNpYmxlU2VyaWVzKHQpe3RoaXMuX3Zpc2libGVTZXJpZXNDYWNoZT10LHRoaXMuX2NoYXJ0JiYodGhpcy5fY2hhcnQuc2V0VmlzaWJsZVNlcmllcyh0KSx0aGlzLnJlZHJhdygpKX1zZXRTZXJpZXNEYXRhKHQsZSl7dGhpcy5fc2VyaWVzRGF0YUNhY2hlW3RdPWUsdGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0LnNldFNlcmllc0RhdGEodCxlKX1yZWRyYXcoKXt0aGlzLl9jaGFydC5yZWRyYXcoKX1fbWFrZUNoYXJ0KCl7dmFyIHQ9dGhpcy54VHlwZSxlPXRoaXMuY29sb3JTY2FsZSxuPXRoaXMuX2F0dGFjaGVkO251bGw9PT10aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQmJnRoaXMuY2FuY2VsQXN5bmModGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkKSx0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9dGhpcy5hc3luYygoZnVuY3Rpb24oKXtpZih0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9bnVsbCxuKXt0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQuZGVzdHJveSgpO3ZhciBpPW5ldyBrQ3QodCxlKSxyPVN1KHRoaXMuJC5jaGFydGRpdik7aS5yZW5kZXJUbyhyKSx0aGlzLl9jaGFydD1pfX0pLDM1MCl9X3JlbG9hZEZyb21DYWNoZSgpe3RoaXMuX2NoYXJ0JiYodGhpcy5fY2hhcnQuc2V0VmlzaWJsZVNlcmllcyh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGUpLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RoaXMuX2NoYXJ0LnNldFNlcmllc0RhdGEodCx0aGlzLl9zZXJpZXNEYXRhQ2FjaGVbdF18fFtdKX0uYmluZCh0aGlzKSkpfWF0dGFjaGVkKCl7dGhpcy5fYXR0YWNoZWQ9ITB9ZGV0YWNoZWQoKXt0aGlzLl9hdHRhY2hlZD0hMX19O0xDdC50ZW1wbGF0ZT1fZWAKICAgIDxzdHlsZSBpbmNsdWRlPSJwbG90dGFibGUtc3R5bGUiPjwvc3R5bGU+CiAgICA8ZGl2IGlkPSJjaGFydGRpdiI+PC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgI2NoYXJ0ZGl2IHsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgICB9CiAgICAgIC5wbG90dGFibGUgLmF4aXMgdGV4dCB7CiAgICAgICAgZmlsbDogY3VycmVudENvbG9yOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsck8uU2NhbGVzLkNvbG9yKV0sTEN0LnByb3RvdHlwZSwiY29sb3JTY2FsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxMQ3QucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLExDdC5wcm90b3R5cGUsIl9hdHRhY2hlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixrQ3QpXSxMQ3QucHJvdG90eXBlLCJfY2hhcnQiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLExDdC5wcm90b3R5cGUsIl92aXNpYmxlU2VyaWVzQ2FjaGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTEN0LnByb3RvdHlwZSwiX3Nlcmllc0RhdGFDYWNoZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxMQ3QucHJvdG90eXBlLCJfbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkIix2b2lkIDApLHQoW2EoInhUeXBlIiwiY29sb3JTY2FsZSIsIl9hdHRhY2hlZCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sTEN0LnByb3RvdHlwZSwiX21ha2VDaGFydCIsbnVsbCksdChbYSgiX2NoYXJ0IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxMQ3QucHJvdG90eXBlLCJfcmVsb2FkRnJvbUNhY2hlIixudWxsKSxMQ3Q9dChbaSgidnotZGlzdHJpYnV0aW9uLWNoYXJ0IildLExDdCk7bGV0IFBDdD1jbGFzcyBleHRlbmRzKExUdChlcih5ZSkpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5nZXREYXRhTG9hZE5hbWU9KHtydW46dH0pPT50LHRoaXMucmVxdWVzdERhdGE9KHQsZSxuKT0+e2NvbnN0IGk9X3IoKS5wbHVnaW5Sb3V0ZSgiZGlzdHJpYnV0aW9ucyIsIi9kaXN0cmlidXRpb25zIik7UHJvbWlzZS5hbGwodC5tYXAoKHQ9Pntjb25zdCBuPWlPKGkse3RhZzp0LnRhZyxydW46dC5ydW59KTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KG4pLnRoZW4oKG49PntlKHtpdGVtOnQsZGF0YTpufSl9KSl9KSkpLmZpbmFsbHkoKCgpPT57bigpfSkpfSx0aGlzLmxvYWREYXRhQ2FsbGJhY2s9KHQsZSxuKT0+e2NvbnN0IGk9bi5tYXAoKHQ9Pntjb25zdFtlLG4saV09dDtyZXR1cm4gaS53YWxsX3RpbWU9bmV3IERhdGUoMWUzKmUpLGkuc3RlcD1uLGl9KSkscj10aGlzLmdldERhdGFMb2FkTmFtZShlKTt0aGlzLiQuY2hhcnQuc2V0U2VyaWVzRGF0YShyLGkpLHRoaXMuJC5jaGFydC5zZXRWaXNpYmxlU2VyaWVzKFtyXSl9LHRoaXMuX2NvbG9yU2NhbGU9e3NjYWxlOkdSfSx0aGlzLl9leHBhbmRlZD0hMSx0aGlzLl9jYW5jZWxsZXI9bmV3IFhSfV9yZWxvYWRPblJ1blRhZ0NoYW5nZSgpe3RoaXMucmVsb2FkKCl9X3VwZGF0ZURhdGFUb0xvYWQoKXt0aGlzLmRhdGFUb0xvYWQ9W3tydW46dGhpcy5ydW4sdGFnOnRoaXMudGFnfV19Z2V0IF9ydW5Db2xvcigpe3JldHVybiB0aGlzLl9jb2xvclNjYWxlLnNjYWxlKHRoaXMucnVuKX1yZWRyYXcoKXt0aGlzLiQuY2hhcnQucmVkcmF3KCl9X3RvZ2dsZUV4cGFuZGVkKHQpe3RoaXMuc2V0KCJfZXhwYW5kZWQiLCF0aGlzLl9leHBhbmRlZCksdGhpcy5yZWRyYXcoKX19O1BDdC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBydW49IltbcnVuXV0iCiAgICAgIGRpc3BsYXktbmFtZT0iW1t0YWdNZXRhZGF0YS5kaXNwbGF5TmFtZV1dIgogICAgICBkZXNjcmlwdGlvbj0iW1t0YWdNZXRhZGF0YS5kZXNjcmlwdGlvbl1dIgogICAgICBjb2xvcj0iW1tfcnVuQ29sb3JdXSIKICAgID48L3RmLWNhcmQtaGVhZGluZz4KICAgIDwhLS0KICAgICAgVGhlIG1haW4gZGlzdHJpYnV0aW9uIHRoYXQgd2UgcmVuZGVyLiBEYXRhIGlzIHNldCBkaXJlY3RseSB3aXRoCiAgICAgIFxgc2V0U2VyaWVzRGF0YVxgLCBub3Qgd2l0aCBhIGJvdW5kIHByb3BlcnR5LgogICAgLS0+CiAgICA8dnotZGlzdHJpYnV0aW9uLWNoYXJ0CiAgICAgIGlkPSJjaGFydCIKICAgICAgeC10eXBlPSJbW3hUeXBlXV0iCiAgICAgIGNvbG9yLXNjYWxlPSJbW19jb2xvclNjYWxlXV0iCiAgICA+PC92ei1kaXN0cmlidXRpb24tY2hhcnQ+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyI+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIHNlbGVjdGVkJD0iW1tfZXhwYW5kZWRdXSIKICAgICAgICBpY29uPSJmdWxsc2NyZWVuIgogICAgICAgIG9uLXRhcD0iX3RvZ2dsZUV4cGFuZGVkIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHdpZHRoOiAzMzBweDsKICAgICAgICBoZWlnaHQ6IDIzNXB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CiAgICAgIDpob3N0KFtfZXhwYW5kZWRdKSB7CiAgICAgICAgd2lkdGg6IDcwMHB4OwogICAgICAgIGhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIHZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzIHsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIHBhcGVyLWljb24tYnV0dG9uIHsKICAgICAgICBjb2xvcjogIzIxOTZmMzsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KICAgICAgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CgogICAgICB0Zi1jYXJkLWhlYWRpbmcgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxQQ3QucHJvdG90eXBlLCJydW4iLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUEN0LnByb3RvdHlwZSwidGFnIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFBDdC5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFBDdC5wcm90b3R5cGUsInhUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFBDdC5wcm90b3R5cGUsImdldERhdGFMb2FkTmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQQ3QucHJvdG90eXBlLCJsb2FkRGF0YUNhbGxiYWNrIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFBDdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFBDdC5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLFBDdC5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLFhSKV0sUEN0LnByb3RvdHlwZSwiX2NhbmNlbGxlciIsdm9pZCAwKSx0KFthKCJydW4iLCJ0YWciKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFBDdC5wcm90b3R5cGUsIl9yZWxvYWRPblJ1blRhZ0NoYW5nZSIsbnVsbCksdChbYSgicnVuIiwidGFnIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxQQ3QucHJvdG90eXBlLCJfdXBkYXRlRGF0YVRvTG9hZCIsbnVsbCksdChbcygicnVuIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sUEN0LnByb3RvdHlwZSwiX3J1bkNvbG9yIixudWxsKSxQQ3Q9dChbaSgidGYtZGlzdHJpYnV0aW9uLWxvYWRlciIpXSxQQ3QpO2xldCBOQ3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5feFR5cGU9InN0ZXAiLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcn1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe3RoaXMuX2ZldGNoVGFncygpLnRoZW4oKCgpPT57dGhpcy5fcmVsb2FkRGlzdHJpYnV0aW9ucygpfSkpfV9mZXRjaFRhZ3MoKXtjb25zdCB0PV9yKCkucGx1Z2luUm91dGUoImRpc3RyaWJ1dGlvbnMiLCIvdGFncyIpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oKHQ9PntpZihTZS5leHBvcnRzLmlzRXF1YWwodCx0aGlzLl9ydW5Ub1RhZ0luZm8pKXJldHVybjtjb25zdCBlPVNlLmV4cG9ydHMubWFwVmFsdWVzKHQsKHQ9Pk9iamVjdC5rZXlzKHQpKSksbj1hcihlKTt0aGlzLnNldCgiX2RhdGFOb3RGb3VuZCIsMD09PW4ubGVuZ3RoKSx0aGlzLnNldCgiX3J1blRvVGFnIixlKSx0aGlzLnNldCgiX3J1blRvVGFnSW5mbyIsdCksdGhpcy5hc3luYygoKCk9Pnt0aGlzLnNldCgiX2NhdGVnb3JpZXNEb21SZWFkeSIsITApfSkpfSkpfV9yZWxvYWREaXN0cmlidXRpb25zKCl7dGhpcy5yb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLWRpc3RyaWJ1dGlvbi1sb2FkZXIiKS5mb3JFYWNoKCh0PT57dC5yZWxvYWQoKX0pKX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1nZXQgX2NhdGVnb3JpZXMoKXtyZXR1cm4gTXIodGhpcy5fcnVuVG9UYWcsdGhpcy5fc2VsZWN0ZWRSdW5zLHRoaXMuX3RhZ0ZpbHRlcil9X3RhZ01ldGFkYXRhKHQsZSxuKXtyZXR1cm4gdFtlXVtuXX19O05DdC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIiBzbG90PSJzaWRlYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtb3B0aW9uLXNlbGVjdG9yCiAgICAgICAgICAgICAgaWQ9InhUeXBlU2VsZWN0b3IiCiAgICAgICAgICAgICAgbmFtZT0iSG9yaXpvbnRhbCBheGlzIgogICAgICAgICAgICAgIHNlbGVjdGVkLWlkPSJ7e194VHlwZX19IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0ic3RlcCI+c3RlcDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InJlbGF0aXZlIj5yZWxhdGl2ZTwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9IndhbGxfdGltZSI+d2FsbDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L3RmLW9wdGlvbi1zZWxlY3Rvcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJjZW50ZXIiIHNsb3Q9ImNlbnRlciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+Tm8gZGlzdHJpYnV0aW9uIGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICBZb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IGhpc3RvZ3JhbSBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuCiAgICAgICAgICAgICAgICAoSGlzdG9ncmFtcyBhbmQgZGlzdHJpYnV0aW9ucyBib3RoIHVzZSB0aGUgaGlzdG9ncmFtIHN1bW1hcnkKICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4pCiAgICAgICAgICAgICAgPC9saT4KCiAgICAgICAgICAgICAgPGxpPlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0Zi10YWctZmlsdGVyZXIgdGFnLWZpbHRlcj0ie3tfdGFnRmlsdGVyfX0iPjwvdGYtdGFnLWZpbHRlcmVyPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY2F0ZWdvcmllc11dIiBhcz0iY2F0ZWdvcnkiPgogICAgICAgICAgICA8dGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXcKICAgICAgICAgICAgICBjYXRlZ29yeT0iW1tjYXRlZ29yeV1dIgogICAgICAgICAgICAgIGluaXRpYWwtb3BlbmVkPSJbW19zaG91bGRPcGVuKGluZGV4KV1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRmLWRpc3RyaWJ1dGlvbi1sb2FkZXIKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICBydW49IltbaXRlbS5ydW5dXSIKICAgICAgICAgICAgICAgICAgdGFnPSJbW2l0ZW0udGFnXV0iCiAgICAgICAgICAgICAgICAgIHRhZy1tZXRhZGF0YT0iW1tfdGFnTWV0YWRhdGEoX3J1blRvVGFnSW5mbywgaXRlbS5ydW4sIGl0ZW0udGFnKV1dIgogICAgICAgICAgICAgICAgICB4LXR5cGU9IltbX3hUeXBlXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgID48L3RmLWRpc3RyaWJ1dGlvbi1sb2FkZXI+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgLm5vLWRhdGEtd2FybmluZyB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE5DdC5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTkN0LnByb3RvdHlwZSwiX3hUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxOQ3QucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE5DdC5wcm90b3R5cGUsIl9ydW5Ub1RhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxOQ3QucHJvdG90eXBlLCJfcnVuVG9UYWdJbmZvIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sTkN0LnByb3RvdHlwZSwiX2RhdGFOb3RGb3VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxOQ3QucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sTkN0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLE5DdC5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtzKCJfcnVuVG9UYWciLCJfc2VsZWN0ZWRSdW5zIiwiX3RhZ0ZpbHRlciIsIl9jYXRlZ29yaWVzRG9tUmVhZHkiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLE5DdC5wcm90b3R5cGUsIl9jYXRlZ29yaWVzIixudWxsKSxOQ3Q9dChbaSgidGYtZGlzdHJpYnV0aW9uLWRhc2hib2FyZCIpXSxOQ3QpO3ZhciBJQ3Q9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsTGlzdGVuS2V5OmRzLGFkZEhhc2hMaXN0ZW5lcjptcyxhZGRTdG9yYWdlTGlzdGVuZXI6Z3MsZmlyZVN0b3JhZ2VDaGFuZ2VkOl9zLHJlbW92ZUhhc2hMaXN0ZW5lckJ5S2V5OnlzLHJlbW92ZVN0b3JhZ2VMaXN0ZW5lckJ5S2V5OnZzLGdldFVybEhhc2hEaWN0OmZ1bmN0aW9uIFJDdCgpe3JldHVybiBDc30sRElTQU1CSUdVQVRPUjoiZGlzYW1iaWd1YXRvciIsZ2V0U3RyaW5nOk5zLHNldFN0cmluZzpJcyxnZXRTdHJpbmdJbml0aWFsaXplcjpScyxnZXRTdHJpbmdPYnNlcnZlcjpPcyxkaXNwb3NlU3RyaW5nQmluZGluZzp6cyxnZXRCb29sZWFuOkRzLHNldEJvb2xlYW46QnMsZ2V0Qm9vbGVhbkluaXRpYWxpemVyOkhzLGdldEJvb2xlYW5PYnNlcnZlcjpGcyxkaXNwb3NlQm9vbGVhbkJpbmRpbmc6VnMsZ2V0TnVtYmVyOlVzLHNldE51bWJlcjpqcyxnZXROdW1iZXJJbml0aWFsaXplcjpHcyxnZXROdW1iZXJPYnNlcnZlcjpXcyxkaXNwb3NlTnVtYmVyQmluZGluZzpxcyxnZXRPYmplY3Q6WXMsc2V0T2JqZWN0OlhzLGdldE9iamVjdEluaXRpYWxpemVyOiRzLGdldE9iamVjdE9ic2VydmVyOktzLGRpc3Bvc2VPYmplY3RCaW5kaW5nOlpzLG1ha2VCaW5kaW5nczpKcyxtaWdyYXRlTGVnYWN5VVJMU2NoZW1lOmZ1bmN0aW9uIE9DdCgpe2NvbnN0IHQ9bmV3IFNldChbImV4YW1wbGVzUGF0aCIsImhpZGVNb2RlbFBhbmUyIiwibW9kZWxOYW1lMSIsIm1vZGVsTmFtZTIiLCJpbmZlcmVuY2VBZGRyZXNzMSIsImluZmVyZW5jZUFkZHJlc3MyIiwibW9kZWxUeXBlIiwibW9kZWxWZXJzaW9uMSIsIm1vZGVsVmVyc2lvbjIiLCJtb2RlbFNpZ25hdHVyZTEiLCJtb2RlbFNpZ25hdHVyZTIiLCJtYXhFeGFtcGxlcyIsImxhYmVsVm9jYWJQYXRoIiwibXVsdGlDbGFzcyIsInNlcXVlbmNlRXhhbXBsZXMiLCJtYXhDbGFzc2VzVG9EaXNwbGF5Iiwic2FtcGxpbmdPZGRzIiwidXNlUHJlZGljdEFwaSIsInByZWRpY3RJbnB1dFRlbnNvciIsInByZWRpY3RPdXRwdXRUZW5zb3IiXSksZT1rcyhBcygpKTtpZigid2hhdGlmIj09PWUuX190YWJfXylmb3IobGV0IG4gb2YgdCluIGluIGUmJihlW2BwLndoYXRpZi4ke259YF09ZVtuXSk7THMoUHMoZSkpLChmdW5jdGlvbiBuKHQpe0NzPXR9KShlKX19KSx6Q3Q9ZnVuY3Rpb24gREN0KHQsZSl7cmV0dXJuIHQ9PT1lfHx0IT10JiZlIT1lfSxCQ3Q9ekN0LEhDdD1mdW5jdGlvbiBGQ3QodCxlKXtmb3IodmFyIG49dC5sZW5ndGg7bi0tOylpZihCQ3QodFtuXVswXSxlKSlyZXR1cm4gbjtyZXR1cm4tMX0sVkN0PUhDdCxVQ3Q9QXJyYXkucHJvdG90eXBlLnNwbGljZSxqQ3Q9SEN0LEdDdD1IQ3QsV0N0PUhDdDtmdW5jdGlvbiBxQ3QodCl7dmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8bjspe3ZhciBpPXRbZV07dGhpcy5zZXQoaVswXSxpWzFdKX19cUN0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBZQ3QoKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSxxQ3QucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBYQ3QodCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPVZDdChlLHQpO3JldHVybiEobjwwfHwobj09ZS5sZW5ndGgtMT9lLnBvcCgpOlVDdC5jYWxsKGUsbiwxKSwtLXRoaXMuc2l6ZSwwKSl9LHFDdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uICRDdCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fLG49akN0KGUsdCk7cmV0dXJuIG48MD92b2lkIDA6ZVtuXVsxXX0scUN0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gS0N0KHQpe3JldHVybiBHQ3QodGhpcy5fX2RhdGFfXyx0KT4tMX0scUN0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24gWkN0KHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXyxpPVdDdChuLHQpO3JldHVybiBpPDA/KCsrdGhpcy5zaXplLG4ucHVzaChbdCxlXSkpOm5baV1bMV09ZSx0aGlzfTt2YXIgSkN0LFFDdD1xQ3QsdEF0PVFDdCxlQXQ9Im9iamVjdCI9PXR5cGVvZiB2ZSYmdmUmJnZlLk9iamVjdD09PU9iamVjdCYmdmUsbkF0PSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsaUF0PWVBdHx8bkF0fHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHJBdD1pQXQuU3ltYm9sLG9BdD1PYmplY3QucHJvdG90eXBlLGFBdD1vQXQuaGFzT3duUHJvcGVydHksc0F0PW9BdC50b1N0cmluZyxsQXQ9ckF0P3JBdC50b1N0cmluZ1RhZzp2b2lkIDAsY0F0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsdUF0PXJBdD9yQXQudG9TdHJpbmdUYWc6dm9pZCAwLGhBdD1mdW5jdGlvbiBkQXQodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD8iW29iamVjdCBVbmRlZmluZWRdIjoiW29iamVjdCBOdWxsXSI6dUF0JiZ1QXQgaW4gT2JqZWN0KHQpPyhmdW5jdGlvbiBlKHQpe3ZhciBlPWFBdC5jYWxsKHQsbEF0KSxuPXRbbEF0XTt0cnl7dFtsQXRdPXZvaWQgMDt2YXIgaT0hMH1jYXRjaCh0KXt9dmFyIHI9c0F0LmNhbGwodCk7cmV0dXJuIGkmJihlP3RbbEF0XT1uOmRlbGV0ZSB0W2xBdF0pLHJ9KSh0KTooZnVuY3Rpb24gbih0KXtyZXR1cm4gY0F0LmNhbGwodCl9KSh0KX0scEF0PWZ1bmN0aW9uIGZBdCh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1lfHwiZnVuY3Rpb24iPT1lKX0sbUF0PWhBdCxnQXQ9cEF0LF9BdD1mdW5jdGlvbiB5QXQodCl7aWYoIWdBdCh0KSlyZXR1cm4hMTt2YXIgZT1tQXQodCk7cmV0dXJuIltvYmplY3QgRnVuY3Rpb25dIj09ZXx8IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIj09ZXx8IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iPT1lfHwiW29iamVjdCBQcm94eV0iPT1lfSx2QXQ9aUF0WyJfX2NvcmUtanNfc2hhcmVkX18iXSxiQXQ9KEpDdD0vW14uXSskLy5leGVjKHZBdCYmdkF0LmtleXMmJnZBdC5rZXlzLklFX1BST1RPfHwiIikpPyJTeW1ib2woc3JjKV8xLiIrSkN0OiIiLHhBdD1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsd0F0PWZ1bmN0aW9uIFNBdCh0KXtpZihudWxsIT10KXt0cnl7cmV0dXJuIHhBdC5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn0sTUF0PV9BdCxFQXQ9cEF0LFRBdD13QXQsQ0F0PS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEFBdD1SZWdFeHAoIl4iK0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpLGtBdD1mdW5jdGlvbiBMQXQodCxlKXt2YXIgbj0oZnVuY3Rpb24gaSh0LGUpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W2VdfSkodCxlKTtyZXR1cm4oZnVuY3Rpb24gcih0KXtyZXR1cm4hKCFFQXQodCl8fChmdW5jdGlvbiBlKHQpe3JldHVybiEhYkF0JiZiQXQgaW4gdH0pKHQpKSYmKE1BdCh0KT9BQXQ6Q0F0KS50ZXN0KFRBdCh0KSl9KShuKT9uOnZvaWQgMH0sUEF0PWtBdChpQXQsIk1hcCIpLE5BdD1rQXQoT2JqZWN0LCJjcmVhdGUiKSxJQXQ9TkF0LFJBdD1OQXQsT0F0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksekF0PU5BdCxEQXQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxCQXQ9TkF0O2Z1bmN0aW9uIEhBdCh0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1IQXQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIEZBdCgpe3RoaXMuX19kYXRhX189SUF0P0lBdChudWxsKTp7fSx0aGlzLnNpemU9MH0sSEF0LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24gVkF0KHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxIQXQucHJvdG90eXBlLmdldD1mdW5jdGlvbiBVQXQodCl7dmFyIGU9dGhpcy5fX2RhdGFfXztpZihSQXQpe3ZhciBuPWVbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09bj92b2lkIDA6bn1yZXR1cm4gT0F0LmNhbGwoZSx0KT9lW3RdOnZvaWQgMH0sSEF0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gakF0KHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIHpBdD92b2lkIDAhPT1lW3RdOkRBdC5jYWxsKGUsdCl9LEhBdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIEdBdCh0LGUpe3ZhciBuPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXModCk/MDoxLG5bdF09QkF0JiZ2b2lkIDA9PT1lPyJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjplLHRoaXN9O3ZhciBXQXQ9SEF0LHFBdD1RQ3QsWUF0PVBBdCxYQXQ9ZnVuY3Rpb24gJEF0KHQsZSl7dmFyIG49dC5fX2RhdGFfXztyZXR1cm4oZnVuY3Rpb24gaSh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4ic3RyaW5nIj09ZXx8Im51bWJlciI9PWV8fCJzeW1ib2wiPT1lfHwiYm9vbGVhbiI9PWU/Il9fcHJvdG9fXyIhPT10Om51bGw9PT10fSkoZSk/blsic3RyaW5nIj09dHlwZW9mIGU/InN0cmluZyI6Imhhc2giXTpuLm1hcH0sS0F0PVhBdCxaQXQ9WEF0LEpBdD1YQXQsUUF0PVhBdDtmdW5jdGlvbiB0a3QodCl7dmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8bjspe3ZhciBpPXRbZV07dGhpcy5zZXQoaVswXSxpWzFdKX19dGt0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBla3QoKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBXQXQsbWFwOm5ldyhZQXR8fHFBdCksc3RyaW5nOm5ldyBXQXR9fSx0a3QucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBua3QodCl7dmFyIGU9S0F0KHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPWU/MTowLGV9LHRrdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIGlrdCh0KXtyZXR1cm4gWkF0KHRoaXMsdCkuZ2V0KHQpfSx0a3QucHJvdG90eXBlLmhhcz1mdW5jdGlvbiBya3QodCl7cmV0dXJuIEpBdCh0aGlzLHQpLmhhcyh0KX0sdGt0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24gb2t0KHQsZSl7dmFyIG49UUF0KHRoaXMsdCksaT1uLnNpemU7cmV0dXJuIG4uc2V0KHQsZSksdGhpcy5zaXplKz1uLnNpemU9PWk/MDoxLHRoaXN9O3ZhciBha3Q9dGt0LHNrdD1RQ3QsbGt0PVBBdCxja3Q9YWt0LHVrdD1RQ3Q7ZnVuY3Rpb24gaGt0KHQpe3ZhciBlPXRoaXMuX19kYXRhX189bmV3IHVrdCh0KTt0aGlzLnNpemU9ZS5zaXplfWhrdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gZGt0KCl7dGhpcy5fX2RhdGFfXz1uZXcgdEF0LHRoaXMuc2l6ZT0wfSxoa3QucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBwa3QodCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPWUuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemU9ZS5zaXplLG59LGhrdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIGZrdCh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQodCl9LGhrdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIG1rdCh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9LGhrdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIGdrdCh0LGUpe3ZhciBuPXRoaXMuX19kYXRhX187aWYobiBpbnN0YW5jZW9mIHNrdCl7dmFyIGk9bi5fX2RhdGFfXztpZighbGt0fHxpLmxlbmd0aDwxOTkpcmV0dXJuIGkucHVzaChbdCxlXSksdGhpcy5zaXplPSsrbi5zaXplLHRoaXM7bj10aGlzLl9fZGF0YV9fPW5ldyBja3QoaSl9cmV0dXJuIG4uc2V0KHQsZSksdGhpcy5zaXplPW4uc2l6ZSx0aGlzfTt2YXIgX2t0PWhrdCx5a3Q9ZnVuY3Rpb24gdmt0KHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoOysrbjxpJiYhMSE9PWUodFtuXSxuLHQpOyk7cmV0dXJuIHR9LGJrdD1rQXQseGt0PShmdW5jdGlvbigpe3RyeXt2YXIgdD1ia3QoT2JqZWN0LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiB0KHt9LCIiLHt9KSx0fWNhdGNoKHQpe319KSgpLHdrdD14a3QsU2t0PWZ1bmN0aW9uIE1rdCh0LGUsbil7Il9fcHJvdG9fXyI9PWUmJndrdD93a3QodCxlLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpuLHdyaXRhYmxlOiEwfSk6dFtlXT1ufSxFa3Q9U2t0LFRrdD16Q3QsQ2t0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksQWt0PWZ1bmN0aW9uIGtrdCh0LGUsbil7dmFyIGk9dFtlXTtDa3QuY2FsbCh0LGUpJiZUa3QoaSxuKSYmKHZvaWQgMCE9PW58fGUgaW4gdCl8fEVrdCh0LGUsbil9LExrdD1Ba3QsUGt0PVNrdCxOa3Q9ZnVuY3Rpb24gSWt0KHQsZSxuLGkpe3ZhciByPSFuO258fChuPXt9KTtmb3IodmFyIG89LTEsYT1lLmxlbmd0aDsrK288YTspe3ZhciBzPWVbb10sbD1pP2kobltzXSx0W3NdLHMsbix0KTp2b2lkIDA7dm9pZCAwPT09bCYmKGw9dFtzXSkscj9Qa3QobixzLGwpOkxrdChuLHMsbCl9cmV0dXJuIG59LFJrdD1mdW5jdGlvbiBPa3QodCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH0semt0PWhBdCxEa3Q9Umt0LEJrdD1mdW5jdGlvbiBIa3QodCl7cmV0dXJuIERrdCh0KSYmIltvYmplY3QgQXJndW1lbnRzXSI9PXprdCh0KX0sRmt0PVJrdCxWa3Q9T2JqZWN0LnByb3RvdHlwZSxVa3Q9Vmt0Lmhhc093blByb3BlcnR5LGprdD1Wa3QucHJvcGVydHlJc0VudW1lcmFibGUsR2t0PUJrdCgoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSkoKSk/Qmt0OmZ1bmN0aW9uKHQpe3JldHVybiBGa3QodCkmJlVrdC5jYWxsKHQsImNhbGxlZSIpJiYhamt0LmNhbGwodCwiY2FsbGVlIil9LFdrdD1BcnJheS5pc0FycmF5LHFrdD17ZXhwb3J0czp7fX0sWWt0PWZ1bmN0aW9uIFhrdCgpe3JldHVybiExfTshKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZSYmIWUubm9kZVR5cGUmJmUsaT1uJiZ0JiYhdC5ub2RlVHlwZSYmdCxyPWkmJmkuZXhwb3J0cz09PW4/aUF0LkJ1ZmZlcjp2b2lkIDA7dC5leHBvcnRzPShyP3IuaXNCdWZmZXI6dm9pZCAwKXx8WWt0fSkocWt0LHFrdC5leHBvcnRzKTt2YXIgJGt0PS9eKD86MHxbMS05XVxkKikkLyxLa3Q9ZnVuY3Rpb24gWmt0KHQsZSl7dmFyIG49dHlwZW9mIHQ7cmV0dXJuISEoZT1udWxsPT1lPzkwMDcxOTkyNTQ3NDA5OTE6ZSkmJigibnVtYmVyIj09bnx8InN5bWJvbCIhPW4mJiRrdC50ZXN0KHQpKSYmdD4tMSYmdCUxPT0wJiZ0PGV9LEprdD1mdW5jdGlvbiBRa3QodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PTkwMDcxOTkyNTQ3NDA5OTF9LHRMdD1oQXQsZUx0PUprdCxuTHQ9Umt0LGlMdD17fTtpTHRbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPWlMdFsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09aUx0WyJbb2JqZWN0IEludDhBcnJheV0iXT1pTHRbIltvYmplY3QgSW50MTZBcnJheV0iXT1pTHRbIltvYmplY3QgSW50MzJBcnJheV0iXT1pTHRbIltvYmplY3QgVWludDhBcnJheV0iXT1pTHRbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09aUx0WyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPWlMdFsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxpTHRbIltvYmplY3QgQXJndW1lbnRzXSJdPWlMdFsiW29iamVjdCBBcnJheV0iXT1pTHRbIltvYmplY3QgQXJyYXlCdWZmZXJdIl09aUx0WyJbb2JqZWN0IEJvb2xlYW5dIl09aUx0WyJbb2JqZWN0IERhdGFWaWV3XSJdPWlMdFsiW29iamVjdCBEYXRlXSJdPWlMdFsiW29iamVjdCBFcnJvcl0iXT1pTHRbIltvYmplY3QgRnVuY3Rpb25dIl09aUx0WyJbb2JqZWN0IE1hcF0iXT1pTHRbIltvYmplY3QgTnVtYmVyXSJdPWlMdFsiW29iamVjdCBPYmplY3RdIl09aUx0WyJbb2JqZWN0IFJlZ0V4cF0iXT1pTHRbIltvYmplY3QgU2V0XSJdPWlMdFsiW29iamVjdCBTdHJpbmddIl09aUx0WyJbb2JqZWN0IFdlYWtNYXBdIl09ITE7dmFyIHJMdD1mdW5jdGlvbiBvTHQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfX0sYUx0PXtleHBvcnRzOnt9fTshKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZSYmIWUubm9kZVR5cGUmJmUsaT1uJiZ0JiYhdC5ub2RlVHlwZSYmdCxyPWkmJmkuZXhwb3J0cz09PW4mJmVBdC5wcm9jZXNzLG89KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBpJiZpLnJlcXVpcmUmJmkucmVxdWlyZSgidXRpbCIpLnR5cGVzfHxyJiZyLmJpbmRpbmcmJnIuYmluZGluZygidXRpbCIpfWNhdGNoKHQpe319KSgpO3QuZXhwb3J0cz1vfSkoYUx0LGFMdC5leHBvcnRzKTt2YXIgc0x0PWFMdC5leHBvcnRzLGxMdD1zTHQmJnNMdC5pc1R5cGVkQXJyYXksY0x0PWxMdD9yTHQobEx0KTpmdW5jdGlvbiB1THQodCl7cmV0dXJuIG5MdCh0KSYmZUx0KHQubGVuZ3RoKSYmISFpTHRbdEx0KHQpXX0saEx0PUdrdCxkTHQ9V2t0LHBMdD1xa3QuZXhwb3J0cyxmTHQ9S2t0LG1MdD1jTHQsZ0x0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksX0x0PWZ1bmN0aW9uIHlMdCh0LGUpe3ZhciBuPWRMdCh0KSxpPSFuJiZoTHQodCkscj0hbiYmIWkmJnBMdCh0KSxvPSFuJiYhaSYmIXImJm1MdCh0KSxhPW58fGl8fHJ8fG8scz1hPyhmdW5jdGlvbiBsKHQsZSl7Zm9yKHZhciBuPS0xLGk9QXJyYXkodCk7KytuPHQ7KWlbbl09ZShuKTtyZXR1cm4gaX0pKHQubGVuZ3RoLFN0cmluZyk6W10sYz1zLmxlbmd0aDtmb3IodmFyIHUgaW4gdCkhZSYmIWdMdC5jYWxsKHQsdSl8fGEmJigibGVuZ3RoIj09dXx8ciYmKCJvZmZzZXQiPT11fHwicGFyZW50Ij09dSl8fG8mJigiYnVmZmVyIj09dXx8ImJ5dGVMZW5ndGgiPT11fHwiYnl0ZU9mZnNldCI9PXUpfHxmTHQodSxjKSl8fHMucHVzaCh1KTtyZXR1cm4gc30sdkx0PU9iamVjdC5wcm90b3R5cGUsYkx0PWZ1bmN0aW9uIHhMdCh0KXt2YXIgZT10JiZ0LmNvbnN0cnVjdG9yO3JldHVybiB0PT09KCJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLnByb3RvdHlwZXx8dkx0KX0sd0x0PWZ1bmN0aW9uIFNMdCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdChlKG4pKX19LE1MdD13THQoT2JqZWN0LmtleXMsT2JqZWN0KSxFTHQ9Ykx0LFRMdD1NTHQsQ0x0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksQUx0PWZ1bmN0aW9uIGtMdCh0KXtpZighRUx0KHQpKXJldHVybiBUTHQodCk7dmFyIGU9W107Zm9yKHZhciBuIGluIE9iamVjdCh0KSlDTHQuY2FsbCh0LG4pJiYiY29uc3RydWN0b3IiIT1uJiZlLnB1c2gobik7cmV0dXJuIGV9LExMdD1fQXQsUEx0PUprdCxOTHQ9ZnVuY3Rpb24gSUx0KHQpe3JldHVybiBudWxsIT10JiZQTHQodC5sZW5ndGgpJiYhTEx0KHQpfSxSTHQ9X0x0LE9MdD1BTHQsekx0PU5MdCxETHQ9ZnVuY3Rpb24gQkx0KHQpe3JldHVybiB6THQodCk/Ukx0KHQpOk9MdCh0KX0sSEx0PU5rdCxGTHQ9REx0LFZMdD1wQXQsVUx0PWJMdCxqTHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxHTHQ9X0x0LFdMdD1OTHQscUx0PWZ1bmN0aW9uIFlMdCh0KXtyZXR1cm4gV0x0KHQpP0dMdCh0LCEwKTooZnVuY3Rpb24gZSh0KXtpZighVkx0KHQpKXJldHVybihmdW5jdGlvbiBlKHQpe3ZhciBlPVtdO2lmKG51bGwhPXQpZm9yKHZhciBuIGluIE9iamVjdCh0KSllLnB1c2gobik7cmV0dXJuIGV9KSh0KTt2YXIgbj1VTHQodCksaT1bXTtmb3IodmFyIHIgaW4gdCkoImNvbnN0cnVjdG9yIiE9cnx8IW4mJmpMdC5jYWxsKHQscikpJiZpLnB1c2gocik7cmV0dXJuIGl9KSh0KX0sWEx0PU5rdCwkTHQ9cUx0LEtMdD17ZXhwb3J0czp7fX07IShmdW5jdGlvbih0LGUpe3ZhciBuPWUmJiFlLm5vZGVUeXBlJiZlLGk9biYmdCYmIXQubm9kZVR5cGUmJnQscj1pJiZpLmV4cG9ydHM9PT1uP2lBdC5CdWZmZXI6dm9pZCAwLG89cj9yLmFsbG9jVW5zYWZlOnZvaWQgMDt0LmV4cG9ydHM9ZnVuY3Rpb24gYSh0LGUpe2lmKGUpcmV0dXJuIHQuc2xpY2UoKTt2YXIgbj10Lmxlbmd0aCxpPW8/byhuKTpuZXcgdC5jb25zdHJ1Y3RvcihuKTtyZXR1cm4gdC5jb3B5KGkpLGl9fSkoS0x0LEtMdC5leHBvcnRzKTt2YXIgWkx0PWZ1bmN0aW9uIEpMdCh0LGUpe3ZhciBuPS0xLGk9dC5sZW5ndGg7Zm9yKGV8fChlPUFycmF5KGkpKTsrK248aTspZVtuXT10W25dO3JldHVybiBlfSxRTHQ9ZnVuY3Rpb24gdFB0KHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoLHI9MCxvPVtdOysrbjxpOyl7dmFyIGE9dFtuXTtlKGEsbix0KSYmKG9bcisrXT1hKX1yZXR1cm4gb30sZVB0PWZ1bmN0aW9uIG5QdCgpe3JldHVybltdfSxpUHQ9UUx0LHJQdD1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLG9QdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGFQdD1vUHQ/ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/W106KHQ9T2JqZWN0KHQpLGlQdChvUHQodCksKGZ1bmN0aW9uKGUpe3JldHVybiByUHQuY2FsbCh0LGUpfSkpKX06ZVB0LHNQdD1Oa3QsbFB0PWFQdCxjUHQ9ZnVuY3Rpb24gdVB0KHQsZSl7Zm9yKHZhciBuPS0xLGk9ZS5sZW5ndGgscj10Lmxlbmd0aDsrK248aTspdFtyK25dPWVbbl07cmV0dXJuIHR9LGhQdD13THQoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCksZFB0PWNQdCxwUHQ9aFB0LGZQdD1hUHQsbVB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdO3Q7KWRQdChlLGZQdCh0KSksdD1wUHQodCk7cmV0dXJuIGV9OmVQdCxnUHQ9Tmt0LF9QdD1tUHQseVB0PWNQdCx2UHQ9V2t0LGJQdD1mdW5jdGlvbiB4UHQodCxlLG4pe3ZhciBpPWUodCk7cmV0dXJuIHZQdCh0KT9pOnlQdChpLG4odCkpfSx3UHQ9YlB0LFNQdD1hUHQsTVB0PURMdCxFUHQ9ZnVuY3Rpb24gVFB0KHQpe3JldHVybiB3UHQodCxNUHQsU1B0KX0sQ1B0PWJQdCxBUHQ9bVB0LGtQdD1xTHQsTFB0PWtBdChpQXQsIkRhdGFWaWV3IiksUFB0PWtBdChpQXQsIlByb21pc2UiKSxOUHQ9a0F0KGlBdCwiU2V0IiksSVB0PUxQdCxSUHQ9UEF0LE9QdD1QUHQselB0PU5QdCxEUHQ9a0F0KGlBdCwiV2Vha01hcCIpLEJQdD1oQXQsSFB0PXdBdCxGUHQ9IltvYmplY3QgTWFwXSIsVlB0PSJbb2JqZWN0IFByb21pc2VdIixVUHQ9IltvYmplY3QgU2V0XSIsalB0PSJbb2JqZWN0IFdlYWtNYXBdIixHUHQ9IltvYmplY3QgRGF0YVZpZXddIixXUHQ9SFB0KElQdCkscVB0PUhQdChSUHQpLFlQdD1IUHQoT1B0KSxYUHQ9SFB0KHpQdCksJFB0PUhQdChEUHQpLEtQdD1CUHQ7KElQdCYmS1B0KG5ldyBJUHQobmV3IEFycmF5QnVmZmVyKDEpKSkhPUdQdHx8UlB0JiZLUHQobmV3IFJQdCkhPUZQdHx8T1B0JiZLUHQoT1B0LnJlc29sdmUoKSkhPVZQdHx8elB0JiZLUHQobmV3IHpQdCkhPVVQdHx8RFB0JiZLUHQobmV3IERQdCkhPWpQdCkmJihLUHQ9ZnVuY3Rpb24odCl7dmFyIGU9QlB0KHQpLG49IltvYmplY3QgT2JqZWN0XSI9PWU/dC5jb25zdHJ1Y3Rvcjp2b2lkIDAsaT1uP0hQdChuKToiIjtpZihpKXN3aXRjaChpKXtjYXNlIFdQdDpyZXR1cm4gR1B0O2Nhc2UgcVB0OnJldHVybiBGUHQ7Y2FzZSBZUHQ6cmV0dXJuIFZQdDtjYXNlIFhQdDpyZXR1cm4gVVB0O2Nhc2UgJFB0OnJldHVybiBqUHR9cmV0dXJuIGV9KTt2YXIgWlB0PUtQdCxKUHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxRUHQ9aUF0LlVpbnQ4QXJyYXksdE50PVFQdCxlTnQ9ZnVuY3Rpb24gbk50KHQpe3ZhciBlPW5ldyB0LmNvbnN0cnVjdG9yKHQuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyB0TnQoZSkuc2V0KG5ldyB0TnQodCkpLGV9LGlOdD1lTnQsck50PS9cdyokLyxvTnQ9ckF0P3JBdC5wcm90b3R5cGU6dm9pZCAwLGFOdD1vTnQ/b050LnZhbHVlT2Y6dm9pZCAwLHNOdD1lTnQsbE50PWZ1bmN0aW9uIGNOdCh0LGUpe3ZhciBuPWU/c050KHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3Iobix0LmJ5dGVPZmZzZXQsdC5sZW5ndGgpfSx1TnQ9ZU50LGhOdD1sTnQsZE50PXBBdCxwTnQ9T2JqZWN0LmNyZWF0ZSxmTnQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gZnVuY3Rpb24oZSl7aWYoIWROdChlKSlyZXR1cm57fTtpZihwTnQpcmV0dXJuIHBOdChlKTt0LnByb3RvdHlwZT1lO3ZhciBuPW5ldyB0O3JldHVybiB0LnByb3RvdHlwZT12b2lkIDAsbn19KSgpLG1OdD1mTnQsZ050PWhQdCxfTnQ9Ykx0LHlOdD1mdW5jdGlvbiB2TnQodCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQuY29uc3RydWN0b3J8fF9OdCh0KT97fTptTnQoZ050KHQpKX0sYk50PVpQdCx4TnQ9Umt0LHdOdD1hTHQuZXhwb3J0cyxTTnQ9d050JiZ3TnQuaXNNYXAsTU50PVNOdD9yTHQoU050KTpmdW5jdGlvbiBFTnQodCl7cmV0dXJuIHhOdCh0KSYmIltvYmplY3QgTWFwXSI9PWJOdCh0KX0sVE50PVpQdCxDTnQ9Umt0LEFOdD1hTHQuZXhwb3J0cyxrTnQ9QU50JiZBTnQuaXNTZXQsTE50PWtOdD9yTHQoa050KTpmdW5jdGlvbiBQTnQodCl7cmV0dXJuIENOdCh0KSYmIltvYmplY3QgU2V0XSI9PVROdCh0KX0sTk50PV9rdCxJTnQ9eWt0LFJOdD1Ba3QsT050PUtMdC5leHBvcnRzLHpOdD1aTHQsRE50PUVQdCxCTnQ9ZnVuY3Rpb24gSE50KHQpe3JldHVybiBDUHQodCxrUHQsQVB0KX0sRk50PVpQdCxWTnQ9eU50LFVOdD1Xa3Qsak50PXFrdC5leHBvcnRzLEdOdD1NTnQsV050PXBBdCxxTnQ9TE50LFlOdD1ETHQsWE50PXFMdCwkTnQ9IltvYmplY3QgQXJndW1lbnRzXSIsS050PSJbb2JqZWN0IEZ1bmN0aW9uXSIsWk50PSJbb2JqZWN0IE9iamVjdF0iLEpOdD17fTtKTnRbJE50XT1KTnRbIltvYmplY3QgQXJyYXldIl09Sk50WyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPUpOdFsiW29iamVjdCBEYXRhVmlld10iXT1KTnRbIltvYmplY3QgQm9vbGVhbl0iXT1KTnRbIltvYmplY3QgRGF0ZV0iXT1KTnRbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPUpOdFsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09Sk50WyJbb2JqZWN0IEludDhBcnJheV0iXT1KTnRbIltvYmplY3QgSW50MTZBcnJheV0iXT1KTnRbIltvYmplY3QgSW50MzJBcnJheV0iXT1KTnRbIltvYmplY3QgTWFwXSJdPUpOdFsiW29iamVjdCBOdW1iZXJdIl09Sk50W1pOdF09Sk50WyJbb2JqZWN0IFJlZ0V4cF0iXT1KTnRbIltvYmplY3QgU2V0XSJdPUpOdFsiW29iamVjdCBTdHJpbmddIl09Sk50WyJbb2JqZWN0IFN5bWJvbF0iXT1KTnRbIltvYmplY3QgVWludDhBcnJheV0iXT1KTnRbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09Sk50WyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPUpOdFsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxKTnRbIltvYmplY3QgRXJyb3JdIl09Sk50W0tOdF09Sk50WyJbb2JqZWN0IFdlYWtNYXBdIl09ITE7dmFyIFFOdD1mdW5jdGlvbiB0KGUsbixpLHIsbyxhKXt2YXIgcyxsPTEmbixjPTImbix1PTQmbjtpZihpJiYocz1vP2koZSxyLG8sYSk6aShlKSksdm9pZCAwIT09cylyZXR1cm4gcztpZighV050KGUpKXJldHVybiBlO3ZhciBoPVVOdChlKTtpZihoKXtpZihzPShmdW5jdGlvbiBkKHQpe3ZhciBlPXQubGVuZ3RoLG49bmV3IHQuY29uc3RydWN0b3IoZSk7cmV0dXJuIGUmJiJzdHJpbmciPT10eXBlb2YgdFswXSYmSlB0LmNhbGwodCwiaW5kZXgiKSYmKG4uaW5kZXg9dC5pbmRleCxuLmlucHV0PXQuaW5wdXQpLG59KShlKSwhbClyZXR1cm4gek50KGUscyl9ZWxzZXt2YXIgcD1GTnQoZSksZj1wPT1LTnR8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PXA7aWYoak50KGUpKXJldHVybiBPTnQoZSxsKTtpZihwPT1aTnR8fHA9PSROdHx8ZiYmIW8pe2lmKHM9Y3x8Zj97fTpWTnQoZSksIWwpcmV0dXJuIGM/KGZ1bmN0aW9uIGcodCxlKXtyZXR1cm4gZ1B0KHQsX1B0KHQpLGUpfSkoZSwoZnVuY3Rpb24gbSh0LGUpe3JldHVybiB0JiZYTHQoZSwkTHQoZSksdCl9KShzLGUpKTooZnVuY3Rpb24geSh0LGUpe3JldHVybiBzUHQodCxsUHQodCksZSl9KShlLChmdW5jdGlvbiBfKHQsZSl7cmV0dXJuIHQmJkhMdChlLEZMdChlKSx0KX0pKHMsZSkpfWVsc2V7aWYoIUpOdFtwXSlyZXR1cm4gbz9lOnt9O3M9KGZ1bmN0aW9uIHYodCxlLG4pe3ZhciBpPXQuY29uc3RydWN0b3I7c3dpdGNoKGUpe2Nhc2UiW29iamVjdCBBcnJheUJ1ZmZlcl0iOnJldHVybiB1TnQodCk7Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpjYXNlIltvYmplY3QgRGF0ZV0iOnJldHVybiBuZXcgaSgrdCk7Y2FzZSJbb2JqZWN0IERhdGFWaWV3XSI6cmV0dXJuKGZ1bmN0aW9uIHIodCxlKXt2YXIgbj1lP2lOdCh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKG4sdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCl9KSh0LG4pO2Nhc2UiW29iamVjdCBGbG9hdDMyQXJyYXldIjpjYXNlIltvYmplY3QgRmxvYXQ2NEFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDhBcnJheV0iOmNhc2UiW29iamVjdCBJbnQxNkFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDMyQXJyYXldIjpjYXNlIltvYmplY3QgVWludDhBcnJheV0iOmNhc2UiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MTZBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MzJBcnJheV0iOnJldHVybiBoTnQodCxuKTtjYXNlIltvYmplY3QgTWFwXSI6cmV0dXJuIG5ldyBpO2Nhc2UiW29iamVjdCBOdW1iZXJdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIG5ldyBpKHQpO2Nhc2UiW29iamVjdCBSZWdFeHBdIjpyZXR1cm4oZnVuY3Rpb24gbyh0KXt2YXIgZT1uZXcgdC5jb25zdHJ1Y3Rvcih0LnNvdXJjZSxyTnQuZXhlYyh0KSk7cmV0dXJuIGUubGFzdEluZGV4PXQubGFzdEluZGV4LGV9KSh0KTtjYXNlIltvYmplY3QgU2V0XSI6cmV0dXJuIG5ldyBpO2Nhc2UiW29iamVjdCBTeW1ib2xdIjpyZXR1cm4oZnVuY3Rpb24gYSh0KXtyZXR1cm4gYU50P09iamVjdChhTnQuY2FsbCh0KSk6e319KSh0KX19KShlLHAsbCl9fWF8fChhPW5ldyBOTnQpO3ZhciBiPWEuZ2V0KGUpO2lmKGIpcmV0dXJuIGI7YS5zZXQoZSxzKSxxTnQoZSk/ZS5mb3JFYWNoKChmdW5jdGlvbihyKXtzLmFkZCh0KHIsbixpLHIsZSxhKSl9KSk6R050KGUpJiZlLmZvckVhY2goKGZ1bmN0aW9uKHIsbyl7cy5zZXQobyx0KHIsbixpLG8sZSxhKSl9KSk7dmFyIHg9aD92b2lkIDA6KHU/Yz9CTnQ6RE50OmM/WE50OllOdCkoZSk7cmV0dXJuIElOdCh4fHxlLChmdW5jdGlvbihyLG8pe3gmJihyPWVbbz1yXSksUk50KHMsbyx0KHIsbixpLG8sZSxhKSl9KSksc30sdEl0PVFOdCxlSXQ9ZnVuY3Rpb24gbkl0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0saUl0PShmdW5jdGlvbiBySXQodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXtmb3IodmFyIHI9LTEsbz1PYmplY3QoZSksYT1pKGUpLHM9YS5sZW5ndGg7cy0tOyl7dmFyIGw9YVt0P3M6KytyXTtpZighMT09PW4ob1tsXSxsLG8pKWJyZWFrfXJldHVybiBlfX0pKCksb0l0PWlJdCxhSXQ9REx0LHNJdD1mdW5jdGlvbiBsSXQodCxlKXtyZXR1cm4gdCYmb0l0KHQsZSxhSXQpfSxjSXQ9Tkx0LHVJdD0oZnVuY3Rpb24gaEl0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7aWYobnVsbD09bilyZXR1cm4gbjtpZighY0l0KG4pKXJldHVybiB0KG4saSk7Zm9yKHZhciByPW4ubGVuZ3RoLG89ZT9yOi0xLGE9T2JqZWN0KG4pOyhlP28tLTorK288cikmJiExIT09aShhW29dLG8sYSk7KTtyZXR1cm4gbn19KShzSXQpLGRJdD1mdW5jdGlvbiBwSXQodCl7cmV0dXJuIHR9LGZJdD1kSXQsbUl0PWZ1bmN0aW9uIGdJdCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OmZJdH0sX0l0PXlrdCx5SXQ9dUl0LHZJdD1tSXQsYkl0PVdrdCx4SXQ9ZnVuY3Rpb24gd0l0KHQsZSl7cmV0dXJuKGJJdCh0KT9fSXQ6eUl0KSh0LHZJdChlKSl9LFNJdD14SXQsTUl0PXVJdCxFSXQ9YWt0O2Z1bmN0aW9uIFRJdCh0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5fX2RhdGFfXz1uZXcgRUl0OysrZTxuOyl0aGlzLmFkZCh0W2VdKX1USXQucHJvdG90eXBlLmFkZD1USXQucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24gQ0l0KHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldCh0LCJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIiksdGhpc30sVEl0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gQUl0KHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX07dmFyIGtJdD1USXQsTEl0PWZ1bmN0aW9uIFBJdCh0LGUpe3JldHVybiB0LmhhcyhlKX0sTkl0PWtJdCxJSXQ9ZnVuY3Rpb24gUkl0KHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoOysrbjxpOylpZihlKHRbbl0sbix0KSlyZXR1cm4hMDtyZXR1cm4hMX0sT0l0PUxJdCx6SXQ9ZnVuY3Rpb24gREl0KHQsZSxuLGkscixvKXt2YXIgYT0xJm4scz10Lmxlbmd0aCxsPWUubGVuZ3RoO2lmKHMhPWwmJiEoYSYmbD5zKSlyZXR1cm4hMTt2YXIgYz1vLmdldCh0KSx1PW8uZ2V0KGUpO2lmKGMmJnUpcmV0dXJuIGM9PWUmJnU9PXQ7dmFyIGg9LTEsZD0hMCxwPTImbj9uZXcgTkl0OnZvaWQgMDtmb3Ioby5zZXQodCxlKSxvLnNldChlLHQpOysraDxzOyl7dmFyIGY9dFtoXSxtPWVbaF07aWYoaSl2YXIgZz1hP2kobSxmLGgsZSx0LG8pOmkoZixtLGgsdCxlLG8pO2lmKHZvaWQgMCE9PWcpe2lmKGcpY29udGludWU7ZD0hMTticmVha31pZihwKXtpZighSUl0KGUsKGZ1bmN0aW9uKHQsZSl7aWYoIU9JdChwLGUpJiYoZj09PXR8fHIoZix0LG4saSxvKSkpcmV0dXJuIHAucHVzaChlKX0pKSl7ZD0hMTticmVha319ZWxzZSBpZihmIT09bSYmIXIoZixtLG4saSxvKSl7ZD0hMTticmVha319cmV0dXJuIG8uZGVsZXRlKHQpLG8uZGVsZXRlKGUpLGR9LEJJdD1mdW5jdGlvbiBISXQodCl7dmFyIGU9LTEsbj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe25bKytlXT10fSkpLG59LEZJdD1RUHQsVkl0PXpDdCxVSXQ9ekl0LGpJdD1mdW5jdGlvbiBHSXQodCl7dmFyIGU9LTEsbj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7blsrK2VdPVtpLHRdfSkpLG59LFdJdD1CSXQscUl0PXJBdD9yQXQucHJvdG90eXBlOnZvaWQgMCxZSXQ9cUl0P3FJdC52YWx1ZU9mOnZvaWQgMCxYSXQ9RVB0LCRJdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEtJdD1fa3QsWkl0PXpJdCxKSXQ9WlB0LFFJdD1Xa3QsdFJ0PXFrdC5leHBvcnRzLGVSdD1jTHQsblJ0PSJbb2JqZWN0IEFyZ3VtZW50c10iLGlSdD0iW29iamVjdCBBcnJheV0iLHJSdD0iW29iamVjdCBPYmplY3RdIixvUnQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxhUnQ9Umt0LHNSdD1mdW5jdGlvbiB0KGUsbixpLHIsbyl7cmV0dXJuIGU9PT1ufHwobnVsbD09ZXx8bnVsbD09bnx8IWFSdChlKSYmIWFSdChuKT9lIT1lJiZuIT1uOihmdW5jdGlvbiBhKHQsZSxuLGkscixvKXt2YXIgYT1RSXQodCkscz1RSXQoZSksbD1hP2lSdDpKSXQodCksYz1zP2lSdDpKSXQoZSksdT0obD1sPT1uUnQ/clJ0OmwpPT1yUnQsaD0oYz1jPT1uUnQ/clJ0OmMpPT1yUnQsZD1sPT1jO2lmKGQmJnRSdCh0KSl7aWYoIXRSdChlKSlyZXR1cm4hMTthPSEwLHU9ITF9aWYoZCYmIXUpcmV0dXJuIG98fChvPW5ldyBLSXQpLGF8fGVSdCh0KT9aSXQodCxlLG4saSxyLG8pOihmdW5jdGlvbiBwKHQsZSxuLGkscixvLGEpe3N3aXRjaChuKXtjYXNlIltvYmplY3QgRGF0YVZpZXddIjppZih0LmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8dC5ieXRlT2Zmc2V0IT1lLmJ5dGVPZmZzZXQpcmV0dXJuITE7dD10LmJ1ZmZlcixlPWUuYnVmZmVyO2Nhc2UiW29iamVjdCBBcnJheUJ1ZmZlcl0iOnJldHVybiEodC5ieXRlTGVuZ3RoIT1lLmJ5dGVMZW5ndGh8fCFvKG5ldyBGSXQodCksbmV3IEZJdChlKSkpO2Nhc2UiW29iamVjdCBCb29sZWFuXSI6Y2FzZSJbb2JqZWN0IERhdGVdIjpjYXNlIltvYmplY3QgTnVtYmVyXSI6cmV0dXJuIFZJdCgrdCwrZSk7Y2FzZSJbb2JqZWN0IEVycm9yXSI6cmV0dXJuIHQubmFtZT09ZS5uYW1lJiZ0Lm1lc3NhZ2U9PWUubWVzc2FnZTtjYXNlIltvYmplY3QgUmVnRXhwXSI6Y2FzZSJbb2JqZWN0IFN0cmluZ10iOnJldHVybiB0PT1lKyIiO2Nhc2UiW29iamVjdCBNYXBdIjp2YXIgcz1qSXQ7Y2FzZSJbb2JqZWN0IFNldF0iOmlmKHN8fChzPVdJdCksdC5zaXplIT1lLnNpemUmJiEoMSZpKSlyZXR1cm4hMTt2YXIgbD1hLmdldCh0KTtpZihsKXJldHVybiBsPT1lO2l8PTIsYS5zZXQodCxlKTt2YXIgYz1VSXQocyh0KSxzKGUpLGkscixvLGEpO3JldHVybiBhLmRlbGV0ZSh0KSxjO2Nhc2UiW29iamVjdCBTeW1ib2xdIjppZihZSXQpcmV0dXJuIFlJdC5jYWxsKHQpPT1ZSXQuY2FsbChlKX1yZXR1cm4hMX0pKHQsZSxsLG4saSxyLG8pO2lmKCEoMSZuKSl7dmFyIGY9dSYmb1J0LmNhbGwodCwiX193cmFwcGVkX18iKSxtPWgmJm9SdC5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYoZnx8bSl7dmFyIGc9Zj90LnZhbHVlKCk6dCxfPW0/ZS52YWx1ZSgpOmU7cmV0dXJuIG98fChvPW5ldyBLSXQpLHIoZyxfLG4saSxvKX19cmV0dXJuISFkJiYob3x8KG89bmV3IEtJdCksKGZ1bmN0aW9uIHkodCxlLG4saSxyLG8pe3ZhciBhPTEmbixzPVhJdCh0KSxsPXMubGVuZ3RoO2lmKGwhPVhJdChlKS5sZW5ndGgmJiFhKXJldHVybiExO2Zvcih2YXIgYz1sO2MtLTspe3ZhciB1PXNbY107aWYoIShhP3UgaW4gZTokSXQuY2FsbChlLHUpKSlyZXR1cm4hMX12YXIgaD1vLmdldCh0KSxkPW8uZ2V0KGUpO2lmKGgmJmQpcmV0dXJuIGg9PWUmJmQ9PXQ7dmFyIHA9ITA7by5zZXQodCxlKSxvLnNldChlLHQpO2Zvcih2YXIgZj1hOysrYzxsOyl7dmFyIG09dFt1PXNbY11dLGc9ZVt1XTtpZihpKXZhciBfPWE/aShnLG0sdSxlLHQsbyk6aShtLGcsdSx0LGUsbyk7aWYoISh2b2lkIDA9PT1fP209PT1nfHxyKG0sZyxuLGksbyk6Xykpe3A9ITE7YnJlYWt9Znx8KGY9ImNvbnN0cnVjdG9yIj09dSl9aWYocCYmIWYpe3ZhciB5PXQuY29uc3RydWN0b3Isdj1lLmNvbnN0cnVjdG9yO3k9PXZ8fCEoImNvbnN0cnVjdG9yImluIHQpfHwhKCJjb25zdHJ1Y3RvciJpbiBlKXx8ImZ1bmN0aW9uIj09dHlwZW9mIHkmJnkgaW5zdGFuY2VvZiB5JiYiZnVuY3Rpb24iPT10eXBlb2YgdiYmdiBpbnN0YW5jZW9mIHZ8fChwPSExKX1yZXR1cm4gby5kZWxldGUodCksby5kZWxldGUoZSkscH0pKHQsZSxuLGkscixvKSl9KShlLG4saSxyLHQsbykpfSxsUnQ9X2t0LGNSdD1zUnQsdVJ0PXBBdCxoUnQ9ZnVuY3Rpb24gZFJ0KHQpe3JldHVybiB0PT10JiYhdVJ0KHQpfSxwUnQ9aFJ0LGZSdD1ETHQsbVJ0PWZ1bmN0aW9uIGdSdCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbnVsbCE9biYmblt0XT09PWUmJih2b2lkIDAhPT1lfHx0IGluIE9iamVjdChuKSl9fSxfUnQ9bVJ0LHlSdD1oQXQsdlJ0PVJrdCxiUnQ9ZnVuY3Rpb24geFJ0KHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8dlJ0KHQpJiYiW29iamVjdCBTeW1ib2xdIj09eVJ0KHQpfSx3UnQ9V2t0LFNSdD1iUnQsTVJ0PS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLEVSdD0vXlx3KiQvLFRSdD1mdW5jdGlvbiBDUnQodCxlKXtpZih3UnQodCkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9biYmInN5bWJvbCIhPW4mJiJib29sZWFuIiE9biYmbnVsbCE9dCYmIVNSdCh0KSl8fEVSdC50ZXN0KHQpfHwhTVJ0LnRlc3QodCl8fG51bGwhPWUmJnQgaW4gT2JqZWN0KGUpfSxBUnQ9YWt0O2Z1bmN0aW9uIGtSdCh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0fHxudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZ1bmN0aW9uIik7dmFyIG49ZnVuY3Rpb24oKXt2YXIgaT1hcmd1bWVudHMscj1lP2UuYXBwbHkodGhpcyxpKTppWzBdLG89bi5jYWNoZTtpZihvLmhhcyhyKSlyZXR1cm4gby5nZXQocik7dmFyIGE9dC5hcHBseSh0aGlzLGkpO3JldHVybiBuLmNhY2hlPW8uc2V0KHIsYSl8fG8sYX07cmV0dXJuIG4uY2FjaGU9bmV3KGtSdC5DYWNoZXx8QVJ0KSxufWtSdC5DYWNoZT1BUnQ7dmFyIExSdCxQUnQ9a1J0LE5SdD0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxJUnQ9L1xcKFxcKT8vZyxSUnQ9KGZ1bmN0aW9uIE9SdCh0KXt2YXIgZT1QUnQodCwoZnVuY3Rpb24odCl7cmV0dXJuIDUwMD09PW4uc2l6ZSYmbi5jbGVhcigpLHR9KSksbj1lLmNhY2hlO3JldHVybiBlfSkoKGZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmZS5wdXNoKCIiKSx0LnJlcGxhY2UoTlJ0LChmdW5jdGlvbih0LG4saSxyKXtlLnB1c2goaT9yLnJlcGxhY2UoSVJ0LCIkMSIpOm58fHQpfSkpLGV9KSkselJ0PWZ1bmN0aW9uIERSdCh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aCxyPUFycmF5KGkpOysrbjxpOylyW25dPWUodFtuXSxuLHQpO3JldHVybiByfSxCUnQ9elJ0LEhSdD1Xa3QsRlJ0PWJSdCxWUnQ9ckF0P3JBdC5wcm90b3R5cGU6dm9pZCAwLFVSdD1WUnQ/VlJ0LnRvU3RyaW5nOnZvaWQgMCxqUnQ9ZnVuY3Rpb24gdChlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYoSFJ0KGUpKXJldHVybiBCUnQoZSx0KSsiIjtpZihGUnQoZSkpcmV0dXJuIFVSdD9VUnQuY2FsbChlKToiIjt2YXIgbj1lKyIiO3JldHVybiIwIj09biYmMS9lPT0tMS8wPyItMCI6bn0sR1J0PWZ1bmN0aW9uIFdSdCh0KXtyZXR1cm4gbnVsbD09dD8iIjpqUnQodCl9LHFSdD1Xa3QsWVJ0PVRSdCxYUnQ9UlJ0LCRSdD1HUnQsS1J0PWZ1bmN0aW9uIFpSdCh0LGUpe3JldHVybiBxUnQodCk/dDpZUnQodCxlKT9bdF06WFJ0KCRSdCh0KSl9LEpSdD1iUnQsUVJ0PWZ1bmN0aW9uIHRPdCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fEpSdCh0KSlyZXR1cm4gdDt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0tMS8wPyItMCI6ZX0sZU90PUtSdCxuT3Q9UVJ0LGlPdD1mdW5jdGlvbiByT3QodCxlKXtmb3IodmFyIG49MCxpPShlPWVPdChlLHQpKS5sZW5ndGg7bnVsbCE9dCYmbjxpOyl0PXRbbk90KGVbbisrXSldO3JldHVybiBuJiZuPT1pP3Q6dm9pZCAwfSxvT3Q9aU90LGFPdD1LUnQsc090PUdrdCxsT3Q9V2t0LGNPdD1La3QsdU90PUprdCxoT3Q9UVJ0LGRPdD1mdW5jdGlvbiBwT3QodCxlLG4pe2Zvcih2YXIgaT0tMSxyPShlPWFPdChlLHQpKS5sZW5ndGgsbz0hMTsrK2k8cjspe3ZhciBhPWhPdChlW2ldKTtpZighKG89bnVsbCE9dCYmbih0LGEpKSlicmVhazt0PXRbYV19cmV0dXJuIG98fCsraSE9cj9vOiEhKHI9bnVsbD09dD8wOnQubGVuZ3RoKSYmdU90KHIpJiZjT3QoYSxyKSYmKGxPdCh0KXx8c090KHQpKX0sZk90PWZ1bmN0aW9uIG1PdCh0LGUpe3JldHVybiBudWxsIT10JiZlIGluIE9iamVjdCh0KX0sZ090PWRPdCxfT3Q9ZnVuY3Rpb24geU90KHQsZSl7cmV0dXJuIG51bGwhPXQmJmdPdCh0LGUsZk90KX0sdk90PXNSdCxiT3Q9X090LHhPdD1UUnQsd090PWhSdCxTT3Q9bVJ0LE1PdD1RUnQsRU90PWZ1bmN0aW9uIFRPdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmVbdF19fSxDT3Q9aU90LEFPdD1FT3Qsa090PVRSdCxMT3Q9UVJ0LFBPdD1kSXQsTk90PVdrdCxJT3Q9ZnVuY3Rpb24gUk90KHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6bnVsbD09dD9QT3Q6Im9iamVjdCI9PXR5cGVvZiB0P05PdCh0KT8oZnVuY3Rpb24gZSh0LG4pe3JldHVybiB4T3QodCkmJndPdChuKT9TT3QoTU90KHQpLG4pOmZ1bmN0aW9uKGUpe3ZhciBpPShmdW5jdGlvbiByKHQsZSxuKXt2YXIgaT1udWxsPT10P3ZvaWQgMDpvT3QodCxlKTtyZXR1cm4gdm9pZCAwPT09aT9uOml9KShlLHQpO3JldHVybiB2b2lkIDA9PT1pJiZpPT09bj9iT3QoZSx0KTp2T3QobixpLDMpfX0pKHRbMF0sdFsxXSk6KGZ1bmN0aW9uIG4odCl7dmFyIGU9KGZ1bmN0aW9uIG4odCl7Zm9yKHZhciBlPWZSdCh0KSxuPWUubGVuZ3RoO24tLTspe3ZhciBpPWVbbl0scj10W2ldO2Vbbl09W2kscixwUnQocildfXJldHVybiBlfSkodCk7cmV0dXJuIDE9PWUubGVuZ3RoJiZlWzBdWzJdP19SdChlWzBdWzBdLGVbMF1bMV0pOmZ1bmN0aW9uKG4pe3JldHVybiBuPT09dHx8KGZ1bmN0aW9uIGkodCxlLG4scil7dmFyIG89bi5sZW5ndGgsYT1vLHM9IXI7aWYobnVsbD09dClyZXR1cm4hYTtmb3IodD1PYmplY3QodCk7by0tOyl7dmFyIGw9bltvXTtpZihzJiZsWzJdP2xbMV0hPT10W2xbMF1dOiEobFswXWluIHQpKXJldHVybiExfWZvcig7KytvPGE7KXt2YXIgYz0obD1uW29dKVswXSx1PXRbY10saD1sWzFdO2lmKHMmJmxbMl0pe2lmKHZvaWQgMD09PXUmJiEoYyBpbiB0KSlyZXR1cm4hMX1lbHNle3ZhciBkPW5ldyBsUnQ7aWYocil2YXIgcD1yKHUsaCxjLHQsZSxkKTtpZighKHZvaWQgMD09PXA/Y1J0KGgsdSwzLHIsZCk6cCkpcmV0dXJuITF9fXJldHVybiEwfSkobix0LGUpfX0pKHQpOihmdW5jdGlvbiBpKHQpe3JldHVybiBrT3QodCk/QU90KExPdCh0KSk6KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBDT3QoZSx0KX19KSh0KX0pKHQpfSxPT3Q9UUx0LHpPdD1mdW5jdGlvbiBET3QodCxlKXt2YXIgbj1bXTtyZXR1cm4gTUl0KHQsKGZ1bmN0aW9uKHQsaSxyKXtlKHQsaSxyKSYmbi5wdXNoKHQpfSkpLG59LEJPdD1JT3QsSE90PVdrdCxGT3Q9ZnVuY3Rpb24gVk90KHQsZSl7cmV0dXJuKEhPdCh0KT9PT3Q6ek90KSh0LEJPdChlKSl9LFVPdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGpPdD1mdW5jdGlvbiBHT3QodCxlKXtyZXR1cm4gbnVsbCE9dCYmVU90LmNhbGwodCxlKX0sV090PWRPdCxxT3Q9ZnVuY3Rpb24gWU90KHQsZSl7cmV0dXJuIG51bGwhPXQmJldPdCh0LGUsak90KX0sWE90PUFMdCwkT3Q9WlB0LEtPdD1Ha3QsWk90PVdrdCxKT3Q9Tkx0LFFPdD1xa3QuZXhwb3J0cyx0enQ9Ykx0LGV6dD1jTHQsbnp0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksaXp0PWZ1bmN0aW9uIHJ6dCh0KXtyZXR1cm4gdm9pZCAwPT09dH0sb3p0PXVJdCxhenQ9Tkx0LHN6dD1mdW5jdGlvbiBsenQodCxlKXt2YXIgbj0tMSxpPWF6dCh0KT9BcnJheSh0Lmxlbmd0aCk6W107cmV0dXJuIG96dCh0LChmdW5jdGlvbih0LHIsbyl7aVsrK25dPWUodCxyLG8pfSkpLGl9LGN6dD16UnQsdXp0PUlPdCxoenQ9c3p0LGR6dD1Xa3QscHp0PWZ1bmN0aW9uIGZ6dCh0LGUpe3JldHVybihkenQodCk/Y3p0Omh6dCkodCx1enQoZSkpfSxtenQ9ZnVuY3Rpb24gZ3p0KHQsZSxuLGkpe3ZhciByPS0xLG89bnVsbD09dD8wOnQubGVuZ3RoO2ZvcihpJiZvJiYobj10Wysrcl0pOysrcjxvOyluPWUobix0W3JdLHIsdCk7cmV0dXJuIG59LF96dD11SXQseXp0PUlPdCx2enQ9ZnVuY3Rpb24gYnp0KHQsZSxuLGkscil7cmV0dXJuIHIodCwoZnVuY3Rpb24odCxyLG8pe249aT8oaT0hMSx0KTplKG4sdCxyLG8pfSkpLG59LHh6dD1Xa3Qsd3p0PWZ1bmN0aW9uIFN6dCh0LGUsbil7dmFyIGk9eHp0KHQpP216dDp2enQscj1hcmd1bWVudHMubGVuZ3RoPDM7cmV0dXJuIGkodCx5enQoZSksbixyLF96dCl9LE16dD1oQXQsRXp0PVdrdCxUenQ9Umt0LEN6dD1FT3QoImxlbmd0aCIpLEF6dD1SZWdFeHAoIltcXHUyMDBkXFx1ZDgwMC1cXHVkZmZmXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXFx1ZmUwZVxcdWZlMGZdIiksa3p0PSJbXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXSIsTHp0PSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLFB6dD0iW15cXHVkODAwLVxcdWRmZmZdIixOenQ9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLEl6dD0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsUnp0PSIoPzoiK2t6dCsifCIrTHp0KyIpPyIsT3p0PSJbXFx1ZmUwZVxcdWZlMGZdPyIsenp0PU96dCtSenQrIig/OlxcdTIwMGQoPzoiK1tQenQsTnp0LEl6dF0uam9pbigifCIpKyIpIitPenQrUnp0KyIpKiIsRHp0PSIoPzoiK1tQenQra3p0KyI/IixrenQsTnp0LEl6dCwiW1xcdWQ4MDAtXFx1ZGZmZl0iXS5qb2luKCJ8IikrIikiLEJ6dD1SZWdFeHAoTHp0KyIoPz0iK0x6dCsiKXwiK0R6dCt6enQsImciKSxIenQ9Q3p0LEZ6dD1BTHQsVnp0PVpQdCxVenQ9Tkx0LGp6dD1mdW5jdGlvbiBHenQodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIEF6dC50ZXN0KHQpfSkodCk/KGZ1bmN0aW9uIG4odCl7Zm9yKHZhciBlPUJ6dC5sYXN0SW5kZXg9MDtCenQudGVzdCh0KTspKytlO3JldHVybiBlfSkodCk6SHp0KHQpfSxXenQ9eWt0LHF6dD1mTnQsWXp0PXNJdCxYenQ9SU90LCR6dD1oUHQsS3p0PVdrdCxaenQ9cWt0LmV4cG9ydHMsSnp0PV9BdCxRenQ9cEF0LHREdD1jTHQsZUR0PUdrdCxuRHQ9V2t0LGlEdD1yQXQ/ckF0LmlzQ29uY2F0U3ByZWFkYWJsZTp2b2lkIDAsckR0PWNQdCxvRHQ9ZnVuY3Rpb24gYUR0KHQpe3JldHVybiBuRHQodCl8fGVEdCh0KXx8ISEoaUR0JiZ0JiZ0W2lEdF0pfSxzRHQ9ZnVuY3Rpb24gdChlLG4saSxyLG8pe3ZhciBhPS0xLHM9ZS5sZW5ndGg7Zm9yKGl8fChpPW9EdCksb3x8KG89W10pOysrYTxzOyl7dmFyIGw9ZVthXTtuPjAmJmkobCk/bj4xP3QobCxuLTEsaSxyLG8pOnJEdChvLGwpOnJ8fChvW28ubGVuZ3RoXT1sKX1yZXR1cm4gb30sbER0PWZ1bmN0aW9uIGNEdCh0LGUsbil7c3dpdGNoKG4ubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHQuY2FsbChlKTtjYXNlIDE6cmV0dXJuIHQuY2FsbChlLG5bMF0pO2Nhc2UgMjpyZXR1cm4gdC5jYWxsKGUsblswXSxuWzFdKTtjYXNlIDM6cmV0dXJuIHQuY2FsbChlLG5bMF0sblsxXSxuWzJdKX1yZXR1cm4gdC5hcHBseShlLG4pfSx1RHQ9TWF0aC5tYXgsaER0PWZ1bmN0aW9uIGREdCh0LGUsbil7cmV0dXJuIGU9dUR0KHZvaWQgMD09PWU/dC5sZW5ndGgtMTplLDApLGZ1bmN0aW9uKCl7Zm9yKHZhciBpPWFyZ3VtZW50cyxyPS0xLG89dUR0KGkubGVuZ3RoLWUsMCksYT1BcnJheShvKTsrK3I8bzspYVtyXT1pW2Urcl07cj0tMTtmb3IodmFyIHM9QXJyYXkoZSsxKTsrK3I8ZTspc1tyXT1pW3JdO3JldHVybiBzW2VdPW4oYSksbER0KHQsdGhpcyxzKX19LHBEdD1lSXQsZkR0PXhrdCxtRHQ9RGF0ZS5ub3csZ0R0PShmdW5jdGlvbiBfRHQodCl7dmFyIGU9MCxuPTA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9bUR0KCkscj0xNi0oaS1uKTtpZihuPWkscj4wKXtpZigrK2U+PTgwMClyZXR1cm4gYXJndW1lbnRzWzBdfWVsc2UgZT0wO3JldHVybiB0LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX0pKGZEdD9mdW5jdGlvbih0LGUpe3JldHVybiBmRHQodCwidG9TdHJpbmciLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTpwRHQoZSksd3JpdGFibGU6ITB9KX06ZEl0KSx5RHQ9ZEl0LHZEdD1oRHQsYkR0PWdEdCx4RHQ9ZnVuY3Rpb24gd0R0KHQsZSl7cmV0dXJuIGJEdCh2RHQodCxlLHlEdCksdCsiIil9LFNEdD1mdW5jdGlvbiBNRHQodCxlLG4saSl7Zm9yKHZhciByPXQubGVuZ3RoLG89bisoaT8xOi0xKTtpP28tLTorK288cjspaWYoZSh0W29dLG8sdCkpcmV0dXJuIG87cmV0dXJuLTF9LEVEdD1TRHQsVER0PWZ1bmN0aW9uIENEdCh0KXtyZXR1cm4gdCE9dH0sQUR0PU5QdCxrRHQ9QUR0JiYxL0JJdChuZXcgQUR0KFssLTBdKSlbMV09PTEvMD9mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEFEdCh0KX06ZnVuY3Rpb24gTER0KCl7fSxQRHQ9a0l0LE5EdD1mdW5jdGlvbiBJRHQodCxlKXtyZXR1cm4hKG51bGw9PXR8fCF0Lmxlbmd0aCkmJihmdW5jdGlvbiBuKHQsZSxpKXtyZXR1cm4gZT09ZT8oZnVuY3Rpb24gcih0LGUsbil7Zm9yKHZhciBpPW4tMSxyPXQubGVuZ3RoOysraTxyOylpZih0W2ldPT09ZSlyZXR1cm4gaTtyZXR1cm4tMX0pKHQsZSxpKTpFRHQodCxURHQsaSl9KSh0LGUsMCk+LTF9LFJEdD1mdW5jdGlvbiBPRHQodCxlLG4pe2Zvcih2YXIgaT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK2k8cjspaWYobihlLHRbaV0pKXJldHVybiEwO3JldHVybiExfSx6RHQ9TEl0LEREdD1rRHQsQkR0PUJJdCxIRHQ9Tkx0LEZEdD1Sa3QsVkR0PWZ1bmN0aW9uIFVEdCh0KXtyZXR1cm4gRkR0KHQpJiZIRHQodCl9LGpEdD1zRHQsR0R0PVZEdCxXRHQ9eER0KChmdW5jdGlvbih0KXtyZXR1cm4oZnVuY3Rpb24gZSh0LG4saSl7dmFyIHI9LTEsbz1ORHQsYT10Lmxlbmd0aCxzPSEwLGw9W10sYz1sO2lmKGkpcz0hMSxvPVJEdDtlbHNlIGlmKGE+PTIwMCl7dmFyIHU9bj9udWxsOkREdCh0KTtpZih1KXJldHVybiBCRHQodSk7cz0hMSxvPXpEdCxjPW5ldyBQRHR9ZWxzZSBjPW4/W106bDt0OmZvcig7KytyPGE7KXt2YXIgaD10W3JdLGQ9bj9uKGgpOmg7aWYoaD1pfHwwIT09aD9oOjAscyYmZD09ZCl7Zm9yKHZhciBwPWMubGVuZ3RoO3AtLTspaWYoY1twXT09PWQpY29udGludWUgdDtuJiZjLnB1c2goZCksbC5wdXNoKGgpfWVsc2UgbyhjLGQsaSl8fChjIT09bCYmYy5wdXNoKGQpLGwucHVzaChoKSl9cmV0dXJuIGx9KShqRHQodCwxLEdEdCwhMCkpfSkpLHFEdD16UnQsWUR0PURMdCxYRHQ9ZnVuY3Rpb24gJER0KHQpe3JldHVybiBudWxsPT10P1tdOihmdW5jdGlvbiBlKHQsbil7cmV0dXJuIHFEdChuLChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKX0pKHQsWUR0KHQpKX07dHJ5e0xSdD17Y2xvbmU6ZnVuY3Rpb24gS0R0KHQpe3JldHVybiB0SXQodCw0KX0sY29uc3RhbnQ6ZUl0LGVhY2g6U0l0LGZpbHRlcjpGT3QsaGFzOnFPdCxpc0FycmF5OldrdCxpc0VtcHR5OmZ1bmN0aW9uIFpEdCh0KXtpZihudWxsPT10KXJldHVybiEwO2lmKEpPdCh0KSYmKFpPdCh0KXx8InN0cmluZyI9PXR5cGVvZiB0fHwiZnVuY3Rpb24iPT10eXBlb2YgdC5zcGxpY2V8fFFPdCh0KXx8ZXp0KHQpfHxLT3QodCkpKXJldHVybiF0Lmxlbmd0aDt2YXIgZT0kT3QodCk7aWYoIltvYmplY3QgTWFwXSI9PWV8fCJbb2JqZWN0IFNldF0iPT1lKXJldHVybiF0LnNpemU7aWYodHp0KHQpKXJldHVybiFYT3QodCkubGVuZ3RoO2Zvcih2YXIgbiBpbiB0KWlmKG56dC5jYWxsKHQsbikpcmV0dXJuITE7cmV0dXJuITB9LGlzRnVuY3Rpb246X0F0LGlzVW5kZWZpbmVkOml6dCxrZXlzOkRMdCxtYXA6cHp0LHJlZHVjZTp3enQsc2l6ZTpmdW5jdGlvbiBKRHQodCl7aWYobnVsbD09dClyZXR1cm4gMDtpZihVenQodCkpcmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHwhRXp0KHQpJiZUenQodCkmJiJbb2JqZWN0IFN0cmluZ10iPT1NenQodCl9KSh0KT9qenQodCk6dC5sZW5ndGg7dmFyIG49Vnp0KHQpO3JldHVybiJbb2JqZWN0IE1hcF0iPT1ufHwiW29iamVjdCBTZXRdIj09bj90LnNpemU6Rnp0KHQpLmxlbmd0aH0sdHJhbnNmb3JtOmZ1bmN0aW9uIFFEdCh0LGUsbil7dmFyIGk9S3p0KHQpLHI9aXx8Wnp0KHQpfHx0RHQodCk7aWYoZT1YenQoZSksbnVsbD09bil7dmFyIG89dCYmdC5jb25zdHJ1Y3RvcjtuPXI/aT9uZXcgbzpbXTpRenQodCkmJkp6dChvKT9xenQoJHp0KHQpKTp7fX1yZXR1cm4ocj9XenQ6WXp0KSh0LChmdW5jdGlvbih0LGkscil7cmV0dXJuIGUobix0LGkscil9KSksbn0sdW5pb246V0R0LHZhbHVlczpYRHR9fWNhdGNoKHQpe31MUnR8fChMUnQ9d2luZG93Ll8pO3ZhciB0QnQ9TFJ0LGVCdD10QnQsbkJ0PXJCdCxpQnQ9IlwwIjtmdW5jdGlvbiByQnQodCl7dGhpcy5faXNEaXJlY3RlZD0hZUJ0Lmhhcyh0LCJkaXJlY3RlZCIpfHx0LmRpcmVjdGVkLHRoaXMuX2lzTXVsdGlncmFwaD0hIWVCdC5oYXModCwibXVsdGlncmFwaCIpJiZ0Lm11bHRpZ3JhcGgsdGhpcy5faXNDb21wb3VuZD0hIWVCdC5oYXModCwiY29tcG91bmQiKSYmdC5jb21wb3VuZCx0aGlzLl9sYWJlbD12b2lkIDAsdGhpcy5fZGVmYXVsdE5vZGVMYWJlbEZuPWVCdC5jb25zdGFudCh2b2lkIDApLHRoaXMuX2RlZmF1bHRFZGdlTGFiZWxGbj1lQnQuY29uc3RhbnQodm9pZCAwKSx0aGlzLl9ub2Rlcz17fSx0aGlzLl9pc0NvbXBvdW5kJiYodGhpcy5fcGFyZW50PXt9LHRoaXMuX2NoaWxkcmVuPXt9LHRoaXMuX2NoaWxkcmVuWyJcMCJdPXt9KSx0aGlzLl9pbj17fSx0aGlzLl9wcmVkcz17fSx0aGlzLl9vdXQ9e30sdGhpcy5fc3Vjcz17fSx0aGlzLl9lZGdlT2Jqcz17fSx0aGlzLl9lZGdlTGFiZWxzPXt9fWZ1bmN0aW9uIG9CdCh0LGUpe3RbZV0/dFtlXSsrOnRbZV09MX1mdW5jdGlvbiBhQnQodCxlKXstLXRbZV18fGRlbGV0ZSB0W2VdfWZ1bmN0aW9uIHNCdCh0LGUsbixpKXt2YXIgcj0iIitlLG89IiIrbjtpZighdCYmcj5vKXt2YXIgYT1yO3I9byxvPWF9cmV0dXJuIHIrIgEiK28rIgEiKyhlQnQuaXNVbmRlZmluZWQoaSk/IlwwIjppKX1mdW5jdGlvbiBsQnQodCxlLG4saSl7dmFyIHI9IiIrZSxvPSIiK247aWYoIXQmJnI+byl7dmFyIGE9cjtyPW8sbz1hfXZhciBzPXt2OnIsdzpvfTtyZXR1cm4gaSYmKHMubmFtZT1pKSxzfWZ1bmN0aW9uIGNCdCh0LGUpe3JldHVybiBzQnQodCxlLnYsZS53LGUubmFtZSl9ckJ0LnByb3RvdHlwZS5fbm9kZUNvdW50PTAsckJ0LnByb3RvdHlwZS5fZWRnZUNvdW50PTAsckJ0LnByb3RvdHlwZS5pc0RpcmVjdGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzRGlyZWN0ZWR9LHJCdC5wcm90b3R5cGUuaXNNdWx0aWdyYXBoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzTXVsdGlncmFwaH0sckJ0LnByb3RvdHlwZS5pc0NvbXBvdW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzQ29tcG91bmR9LHJCdC5wcm90b3R5cGUuc2V0R3JhcGg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2xhYmVsPXQsdGhpc30sckJ0LnByb3RvdHlwZS5ncmFwaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYWJlbH0sckJ0LnByb3RvdHlwZS5zZXREZWZhdWx0Tm9kZUxhYmVsPWZ1bmN0aW9uKHQpe3JldHVybiBlQnQuaXNGdW5jdGlvbih0KXx8KHQ9ZUJ0LmNvbnN0YW50KHQpKSx0aGlzLl9kZWZhdWx0Tm9kZUxhYmVsRm49dCx0aGlzfSxyQnQucHJvdG90eXBlLm5vZGVDb3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ub2RlQ291bnR9LHJCdC5wcm90b3R5cGUubm9kZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZUJ0LmtleXModGhpcy5fbm9kZXMpfSxyQnQucHJvdG90eXBlLnNvdXJjZXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBlQnQuZmlsdGVyKHRoaXMubm9kZXMoKSwoZnVuY3Rpb24oZSl7cmV0dXJuIGVCdC5pc0VtcHR5KHQuX2luW2VdKX0pKX0sckJ0LnByb3RvdHlwZS5zaW5rcz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIGVCdC5maWx0ZXIodGhpcy5ub2RlcygpLChmdW5jdGlvbihlKXtyZXR1cm4gZUJ0LmlzRW1wdHkodC5fb3V0W2VdKX0pKX0sckJ0LnByb3RvdHlwZS5zZXROb2Rlcz1mdW5jdGlvbih0LGUpe3ZhciBuPWFyZ3VtZW50cyxpPXRoaXM7cmV0dXJuIGVCdC5lYWNoKHQsKGZ1bmN0aW9uKHQpe24ubGVuZ3RoPjE/aS5zZXROb2RlKHQsZSk6aS5zZXROb2RlKHQpfSkpLHRoaXN9LHJCdC5wcm90b3R5cGUuc2V0Tm9kZT1mdW5jdGlvbih0LGUpe3JldHVybiBlQnQuaGFzKHRoaXMuX25vZGVzLHQpPyhhcmd1bWVudHMubGVuZ3RoPjEmJih0aGlzLl9ub2Rlc1t0XT1lKSx0aGlzKToodGhpcy5fbm9kZXNbdF09YXJndW1lbnRzLmxlbmd0aD4xP2U6dGhpcy5fZGVmYXVsdE5vZGVMYWJlbEZuKHQpLHRoaXMuX2lzQ29tcG91bmQmJih0aGlzLl9wYXJlbnRbdF09aUJ0LHRoaXMuX2NoaWxkcmVuW3RdPXt9LHRoaXMuX2NoaWxkcmVuWyJcMCJdW3RdPSEwKSx0aGlzLl9pblt0XT17fSx0aGlzLl9wcmVkc1t0XT17fSx0aGlzLl9vdXRbdF09e30sdGhpcy5fc3Vjc1t0XT17fSwrK3RoaXMuX25vZGVDb3VudCx0aGlzKX0sckJ0LnByb3RvdHlwZS5ub2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ub2Rlc1t0XX0sckJ0LnByb3RvdHlwZS5oYXNOb2RlPWZ1bmN0aW9uKHQpe3JldHVybiBlQnQuaGFzKHRoaXMuX25vZGVzLHQpfSxyQnQucHJvdG90eXBlLnJlbW92ZU5vZGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihlQnQuaGFzKHRoaXMuX25vZGVzLHQpKXt2YXIgbj1mdW5jdGlvbih0KXtlLnJlbW92ZUVkZ2UoZS5fZWRnZU9ianNbdF0pfTtkZWxldGUgdGhpcy5fbm9kZXNbdF0sdGhpcy5faXNDb21wb3VuZCYmKHRoaXMuX3JlbW92ZUZyb21QYXJlbnRzQ2hpbGRMaXN0KHQpLGRlbGV0ZSB0aGlzLl9wYXJlbnRbdF0sZUJ0LmVhY2godGhpcy5jaGlsZHJlbih0KSwoZnVuY3Rpb24odCl7ZS5zZXRQYXJlbnQodCl9KSksZGVsZXRlIHRoaXMuX2NoaWxkcmVuW3RdKSxlQnQuZWFjaChlQnQua2V5cyh0aGlzLl9pblt0XSksbiksZGVsZXRlIHRoaXMuX2luW3RdLGRlbGV0ZSB0aGlzLl9wcmVkc1t0XSxlQnQuZWFjaChlQnQua2V5cyh0aGlzLl9vdXRbdF0pLG4pLGRlbGV0ZSB0aGlzLl9vdXRbdF0sZGVsZXRlIHRoaXMuX3N1Y3NbdF0sLS10aGlzLl9ub2RlQ291bnR9cmV0dXJuIHRoaXN9LHJCdC5wcm90b3R5cGUuc2V0UGFyZW50PWZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuX2lzQ29tcG91bmQpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2V0IHBhcmVudCBpbiBhIG5vbi1jb21wb3VuZCBncmFwaCIpO2lmKGVCdC5pc1VuZGVmaW5lZChlKSllPWlCdDtlbHNle2Zvcih2YXIgbj1lKz0iIjshZUJ0LmlzVW5kZWZpbmVkKG4pO249dGhpcy5wYXJlbnQobikpaWYobj09PXQpdGhyb3cgbmV3IEVycm9yKCJTZXR0aW5nICIrZSsiIGFzIHBhcmVudCBvZiAiK3QrIiB3b3VsZCBjcmVhdGUgYSBjeWNsZSIpO3RoaXMuc2V0Tm9kZShlKX1yZXR1cm4gdGhpcy5zZXROb2RlKHQpLHRoaXMuX3JlbW92ZUZyb21QYXJlbnRzQ2hpbGRMaXN0KHQpLHRoaXMuX3BhcmVudFt0XT1lLHRoaXMuX2NoaWxkcmVuW2VdW3RdPSEwLHRoaXN9LHJCdC5wcm90b3R5cGUuX3JlbW92ZUZyb21QYXJlbnRzQ2hpbGRMaXN0PWZ1bmN0aW9uKHQpe2RlbGV0ZSB0aGlzLl9jaGlsZHJlblt0aGlzLl9wYXJlbnRbdF1dW3RdfSxyQnQucHJvdG90eXBlLnBhcmVudD1mdW5jdGlvbih0KXtpZih0aGlzLl9pc0NvbXBvdW5kKXt2YXIgZT10aGlzLl9wYXJlbnRbdF07aWYoZSE9PWlCdClyZXR1cm4gZX19LHJCdC5wcm90b3R5cGUuY2hpbGRyZW49ZnVuY3Rpb24odCl7aWYoZUJ0LmlzVW5kZWZpbmVkKHQpJiYodD1pQnQpLHRoaXMuX2lzQ29tcG91bmQpe3ZhciBlPXRoaXMuX2NoaWxkcmVuW3RdO2lmKGUpcmV0dXJuIGVCdC5rZXlzKGUpfWVsc2V7aWYodD09PWlCdClyZXR1cm4gdGhpcy5ub2RlcygpO2lmKHRoaXMuaGFzTm9kZSh0KSlyZXR1cm5bXX19LHJCdC5wcm90b3R5cGUucHJlZGVjZXNzb3JzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ByZWRzW3RdO2lmKGUpcmV0dXJuIGVCdC5rZXlzKGUpfSxyQnQucHJvdG90eXBlLnN1Y2Nlc3NvcnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fc3Vjc1t0XTtpZihlKXJldHVybiBlQnQua2V5cyhlKX0sckJ0LnByb3RvdHlwZS5uZWlnaGJvcnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5wcmVkZWNlc3NvcnModCk7aWYoZSlyZXR1cm4gZUJ0LnVuaW9uKGUsdGhpcy5zdWNjZXNzb3JzKHQpKX0sckJ0LnByb3RvdHlwZS5pc0xlYWY9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT0odGhpcy5pc0RpcmVjdGVkKCk/dGhpcy5zdWNjZXNzb3JzKHQpOnRoaXMubmVpZ2hib3JzKHQpKS5sZW5ndGh9LHJCdC5wcm90b3R5cGUuZmlsdGVyTm9kZXM9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IHRoaXMuY29uc3RydWN0b3Ioe2RpcmVjdGVkOnRoaXMuX2lzRGlyZWN0ZWQsbXVsdGlncmFwaDp0aGlzLl9pc011bHRpZ3JhcGgsY29tcG91bmQ6dGhpcy5faXNDb21wb3VuZH0pO2Uuc2V0R3JhcGgodGhpcy5ncmFwaCgpKTt2YXIgbj10aGlzO2VCdC5lYWNoKHRoaXMuX25vZGVzLChmdW5jdGlvbihuLGkpe3QoaSkmJmUuc2V0Tm9kZShpLG4pfSkpLGVCdC5lYWNoKHRoaXMuX2VkZ2VPYmpzLChmdW5jdGlvbih0KXtlLmhhc05vZGUodC52KSYmZS5oYXNOb2RlKHQudykmJmUuc2V0RWRnZSh0LG4uZWRnZSh0KSl9KSk7dmFyIGk9e307ZnVuY3Rpb24gcih0KXt2YXIgbz1uLnBhcmVudCh0KTtyZXR1cm4gdm9pZCAwPT09b3x8ZS5oYXNOb2RlKG8pPyhpW3RdPW8sbyk6byBpbiBpP2lbb106cihvKX1yZXR1cm4gdGhpcy5faXNDb21wb3VuZCYmZUJ0LmVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXtlLnNldFBhcmVudCh0LHIodCkpfSkpLGV9LHJCdC5wcm90b3R5cGUuc2V0RGVmYXVsdEVkZ2VMYWJlbD1mdW5jdGlvbih0KXtyZXR1cm4gZUJ0LmlzRnVuY3Rpb24odCl8fCh0PWVCdC5jb25zdGFudCh0KSksdGhpcy5fZGVmYXVsdEVkZ2VMYWJlbEZuPXQsdGhpc30sckJ0LnByb3RvdHlwZS5lZGdlQ291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWRnZUNvdW50fSxyQnQucHJvdG90eXBlLmVkZ2VzPWZ1bmN0aW9uKCl7cmV0dXJuIGVCdC52YWx1ZXModGhpcy5fZWRnZU9ianMpfSxyQnQucHJvdG90eXBlLnNldFBhdGg9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLGk9YXJndW1lbnRzO3JldHVybiBlQnQucmVkdWNlKHQsKGZ1bmN0aW9uKHQscil7cmV0dXJuIGkubGVuZ3RoPjE/bi5zZXRFZGdlKHQscixlKTpuLnNldEVkZ2UodCxyKSxyfSkpLHRoaXN9LHJCdC5wcm90b3R5cGUuc2V0RWRnZT1mdW5jdGlvbigpe3ZhciB0LGUsbixpLHI9ITEsbz1hcmd1bWVudHNbMF07Im9iamVjdCI9PXR5cGVvZiBvJiZudWxsIT09byYmInYiaW4gbz8odD1vLnYsZT1vLncsbj1vLm5hbWUsMj09PWFyZ3VtZW50cy5sZW5ndGgmJihpPWFyZ3VtZW50c1sxXSxyPSEwKSk6KHQ9byxlPWFyZ3VtZW50c1sxXSxuPWFyZ3VtZW50c1szXSxhcmd1bWVudHMubGVuZ3RoPjImJihpPWFyZ3VtZW50c1syXSxyPSEwKSksdD0iIit0LGU9IiIrZSxlQnQuaXNVbmRlZmluZWQobil8fChuPSIiK24pO3ZhciBhPXNCdCh0aGlzLl9pc0RpcmVjdGVkLHQsZSxuKTtpZihlQnQuaGFzKHRoaXMuX2VkZ2VMYWJlbHMsYSkpcmV0dXJuIHImJih0aGlzLl9lZGdlTGFiZWxzW2FdPWkpLHRoaXM7aWYoIWVCdC5pc1VuZGVmaW5lZChuKSYmIXRoaXMuX2lzTXVsdGlncmFwaCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXQgYSBuYW1lZCBlZGdlIHdoZW4gaXNNdWx0aWdyYXBoID0gZmFsc2UiKTt0aGlzLnNldE5vZGUodCksdGhpcy5zZXROb2RlKGUpLHRoaXMuX2VkZ2VMYWJlbHNbYV09cj9pOnRoaXMuX2RlZmF1bHRFZGdlTGFiZWxGbih0LGUsbik7dmFyIHM9bEJ0KHRoaXMuX2lzRGlyZWN0ZWQsdCxlLG4pO3JldHVybiB0PXMudixlPXMudyxPYmplY3QuZnJlZXplKHMpLHRoaXMuX2VkZ2VPYmpzW2FdPXMsb0J0KHRoaXMuX3ByZWRzW2VdLHQpLG9CdCh0aGlzLl9zdWNzW3RdLGUpLHRoaXMuX2luW2VdW2FdPXMsdGhpcy5fb3V0W3RdW2FdPXMsdGhpcy5fZWRnZUNvdW50KyssdGhpc30sckJ0LnByb3RvdHlwZS5lZGdlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0xPT09YXJndW1lbnRzLmxlbmd0aD9jQnQodGhpcy5faXNEaXJlY3RlZCxhcmd1bWVudHNbMF0pOnNCdCh0aGlzLl9pc0RpcmVjdGVkLHQsZSxuKTtyZXR1cm4gdGhpcy5fZWRnZUxhYmVsc1tpXX0sckJ0LnByb3RvdHlwZS5oYXNFZGdlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0xPT09YXJndW1lbnRzLmxlbmd0aD9jQnQodGhpcy5faXNEaXJlY3RlZCxhcmd1bWVudHNbMF0pOnNCdCh0aGlzLl9pc0RpcmVjdGVkLHQsZSxuKTtyZXR1cm4gZUJ0Lmhhcyh0aGlzLl9lZGdlTGFiZWxzLGkpfSxyQnQucHJvdG90eXBlLnJlbW92ZUVkZ2U9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPTE9PT1hcmd1bWVudHMubGVuZ3RoP2NCdCh0aGlzLl9pc0RpcmVjdGVkLGFyZ3VtZW50c1swXSk6c0J0KHRoaXMuX2lzRGlyZWN0ZWQsdCxlLG4pLHI9dGhpcy5fZWRnZU9ianNbaV07cmV0dXJuIHImJih0PXIudixlPXIudyxkZWxldGUgdGhpcy5fZWRnZUxhYmVsc1tpXSxkZWxldGUgdGhpcy5fZWRnZU9ianNbaV0sYUJ0KHRoaXMuX3ByZWRzW2VdLHQpLGFCdCh0aGlzLl9zdWNzW3RdLGUpLGRlbGV0ZSB0aGlzLl9pbltlXVtpXSxkZWxldGUgdGhpcy5fb3V0W3RdW2ldLHRoaXMuX2VkZ2VDb3VudC0tKSx0aGlzfSxyQnQucHJvdG90eXBlLmluRWRnZXM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9pblt0XTtpZihuKXt2YXIgaT1lQnQudmFsdWVzKG4pO3JldHVybiBlP2VCdC5maWx0ZXIoaSwoZnVuY3Rpb24odCl7cmV0dXJuIHQudj09PWV9KSk6aX19LHJCdC5wcm90b3R5cGUub3V0RWRnZXM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9vdXRbdF07aWYobil7dmFyIGk9ZUJ0LnZhbHVlcyhuKTtyZXR1cm4gZT9lQnQuZmlsdGVyKGksKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnc9PT1lfSkpOml9fSxyQnQucHJvdG90eXBlLm5vZGVFZGdlcz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuaW5FZGdlcyh0LGUpO2lmKG4pcmV0dXJuIG4uY29uY2F0KHRoaXMub3V0RWRnZXModCxlKSl9O3ZhciB1QnQ9e0dyYXBoOm5CdCx2ZXJzaW9uOiIyLjEuOCJ9LGhCdD10QnQsZEJ0PW5CdCxwQnQ9e3dyaXRlOmZ1bmN0aW9uIGZCdCh0KXt2YXIgZT17b3B0aW9uczp7ZGlyZWN0ZWQ6dC5pc0RpcmVjdGVkKCksbXVsdGlncmFwaDp0LmlzTXVsdGlncmFwaCgpLGNvbXBvdW5kOnQuaXNDb21wb3VuZCgpfSxub2RlczpnQnQodCksZWRnZXM6X0J0KHQpfTtyZXR1cm4gaEJ0LmlzVW5kZWZpbmVkKHQuZ3JhcGgoKSl8fChlLnZhbHVlPWhCdC5jbG9uZSh0LmdyYXBoKCkpKSxlfSxyZWFkOmZ1bmN0aW9uIG1CdCh0KXt2YXIgZT1uZXcgZEJ0KHQub3B0aW9ucykuc2V0R3JhcGgodC52YWx1ZSk7cmV0dXJuIGhCdC5lYWNoKHQubm9kZXMsKGZ1bmN0aW9uKHQpe2Uuc2V0Tm9kZSh0LnYsdC52YWx1ZSksdC5wYXJlbnQmJmUuc2V0UGFyZW50KHQudix0LnBhcmVudCl9KSksaEJ0LmVhY2godC5lZGdlcywoZnVuY3Rpb24odCl7ZS5zZXRFZGdlKHt2OnQudix3OnQudyxuYW1lOnQubmFtZX0sdC52YWx1ZSl9KSksZX19O2Z1bmN0aW9uIGdCdCh0KXtyZXR1cm4gaEJ0Lm1hcCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe3ZhciBuPXQubm9kZShlKSxpPXQucGFyZW50KGUpLHI9e3Y6ZX07cmV0dXJuIGhCdC5pc1VuZGVmaW5lZChuKXx8KHIudmFsdWU9biksaEJ0LmlzVW5kZWZpbmVkKGkpfHwoci5wYXJlbnQ9aSkscn0pKX1mdW5jdGlvbiBfQnQodCl7cmV0dXJuIGhCdC5tYXAodC5lZGdlcygpLChmdW5jdGlvbihlKXt2YXIgbj10LmVkZ2UoZSksaT17djplLnYsdzplLnd9O3JldHVybiBoQnQuaXNVbmRlZmluZWQoZS5uYW1lKXx8KGkubmFtZT1lLm5hbWUpLGhCdC5pc1VuZGVmaW5lZChuKXx8KGkudmFsdWU9biksaX0pKX12YXIgeUJ0PXRCdCx2QnQ9dEJ0LGJCdD14QnQ7ZnVuY3Rpb24geEJ0KCl7dGhpcy5fYXJyPVtdLHRoaXMuX2tleUluZGljZXM9e319eEJ0LnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Fyci5sZW5ndGh9LHhCdC5wcm90b3R5cGUua2V5cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcnIubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXl9KSl9LHhCdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB2QnQuaGFzKHRoaXMuX2tleUluZGljZXMsdCl9LHhCdC5wcm90b3R5cGUucHJpb3JpdHk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fa2V5SW5kaWNlc1t0XTtpZih2b2lkIDAhPT1lKXJldHVybiB0aGlzLl9hcnJbZV0ucHJpb3JpdHl9LHhCdC5wcm90b3R5cGUubWluPWZ1bmN0aW9uKCl7aWYoMD09PXRoaXMuc2l6ZSgpKXRocm93IG5ldyBFcnJvcigiUXVldWUgdW5kZXJmbG93Iik7cmV0dXJuIHRoaXMuX2FyclswXS5rZXl9LHhCdC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fa2V5SW5kaWNlcztpZih0PVN0cmluZyh0KSwhdkJ0LmhhcyhuLHQpKXt2YXIgaT10aGlzLl9hcnIscj1pLmxlbmd0aDtyZXR1cm4gblt0XT1yLGkucHVzaCh7a2V5OnQscHJpb3JpdHk6ZX0pLHRoaXMuX2RlY3JlYXNlKHIpLCEwfXJldHVybiExfSx4QnQucHJvdG90eXBlLnJlbW92ZU1pbj1mdW5jdGlvbigpe3RoaXMuX3N3YXAoMCx0aGlzLl9hcnIubGVuZ3RoLTEpO3ZhciB0PXRoaXMuX2Fyci5wb3AoKTtyZXR1cm4gZGVsZXRlIHRoaXMuX2tleUluZGljZXNbdC5rZXldLHRoaXMuX2hlYXBpZnkoMCksdC5rZXl9LHhCdC5wcm90b3R5cGUuZGVjcmVhc2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9rZXlJbmRpY2VzW3RdO2lmKGU+dGhpcy5fYXJyW25dLnByaW9yaXR5KXRocm93IG5ldyBFcnJvcigiTmV3IHByaW9yaXR5IGlzIGdyZWF0ZXIgdGhhbiBjdXJyZW50IHByaW9yaXR5LiBLZXk6ICIrdCsiIE9sZDogIit0aGlzLl9hcnJbbl0ucHJpb3JpdHkrIiBOZXc6ICIrZSk7dGhpcy5fYXJyW25dLnByaW9yaXR5PWUsdGhpcy5fZGVjcmVhc2Uobil9LHhCdC5wcm90b3R5cGUuX2hlYXBpZnk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYXJyLG49Mip0LGk9bisxLHI9dDtuPGUubGVuZ3RoJiYocj1lW25dLnByaW9yaXR5PGVbcl0ucHJpb3JpdHk/bjpyLGk8ZS5sZW5ndGgmJihyPWVbaV0ucHJpb3JpdHk8ZVtyXS5wcmlvcml0eT9pOnIpLHIhPT10JiYodGhpcy5fc3dhcCh0LHIpLHRoaXMuX2hlYXBpZnkocikpKX0seEJ0LnByb3RvdHlwZS5fZGVjcmVhc2U9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dGhpcy5fYXJyLGk9blt0XS5wcmlvcml0eTswIT09dCYmIShuW2U9dD4+MV0ucHJpb3JpdHk8aSk7KXRoaXMuX3N3YXAodCxlKSx0PWV9LHhCdC5wcm90b3R5cGUuX3N3YXA9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9hcnIsaT10aGlzLl9rZXlJbmRpY2VzLHI9blt0XSxvPW5bZV07blt0XT1vLG5bZV09cixpW28ua2V5XT10LGlbci5rZXldPWV9O3ZhciB3QnQ9YkJ0LFNCdD1mdW5jdGlvbiBNQnQodCxlLG4saSl7cmV0dXJuKGZ1bmN0aW9uIHIodCxlLG4saSl7dmFyIHIsbyxhPXt9LHM9bmV3IHdCdCxsPWZ1bmN0aW9uKHQpe3ZhciBlPXQudiE9PXI/dC52OnQudyxpPWFbZV0sbD1uKHQpLGM9by5kaXN0YW5jZStsO2lmKGw8MCl0aHJvdyBuZXcgRXJyb3IoImRpamtzdHJhIGRvZXMgbm90IGFsbG93IG5lZ2F0aXZlIGVkZ2Ugd2VpZ2h0cy4gQmFkIGVkZ2U6ICIrdCsiIFdlaWdodDogIitsKTtjPGkuZGlzdGFuY2UmJihpLmRpc3RhbmNlPWMsaS5wcmVkZWNlc3Nvcj1yLHMuZGVjcmVhc2UoZSxjKSl9O2Zvcih0Lm5vZGVzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dD09PWU/MDpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7YVt0XT17ZGlzdGFuY2U6bn0scy5hZGQodCxuKX0pKTtzLnNpemUoKT4wJiYocj1zLnJlbW92ZU1pbigpLChvPWFbcl0pLmRpc3RhbmNlIT09TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTspaShyKS5mb3JFYWNoKGwpO3JldHVybiBhfSkodCxTdHJpbmcoZSksbnx8RUJ0LGl8fGZ1bmN0aW9uKGUpe3JldHVybiB0Lm91dEVkZ2VzKGUpfSl9LEVCdD10QnQuY29uc3RhbnQoMSksVEJ0PVNCdCxDQnQ9dEJ0LEFCdD10QnQsa0J0PWZ1bmN0aW9uIExCdCh0KXt2YXIgZT0wLG49W10saT17fSxyPVtdO2Z1bmN0aW9uIG8oYSl7dmFyIHM9aVthXT17b25TdGFjazohMCxsb3dsaW5rOmUsaW5kZXg6ZSsrfTtpZihuLnB1c2goYSksdC5zdWNjZXNzb3JzKGEpLmZvckVhY2goKGZ1bmN0aW9uKHQpe0FCdC5oYXMoaSx0KT9pW3RdLm9uU3RhY2smJihzLmxvd2xpbms9TWF0aC5taW4ocy5sb3dsaW5rLGlbdF0uaW5kZXgpKToobyh0KSxzLmxvd2xpbms9TWF0aC5taW4ocy5sb3dsaW5rLGlbdF0ubG93bGluaykpfSkpLHMubG93bGluaz09PXMuaW5kZXgpe3ZhciBsLGM9W107ZG97bD1uLnBvcCgpLGlbbF0ub25TdGFjaz0hMSxjLnB1c2gobCl9d2hpbGUoYSE9PWwpO3IucHVzaChjKX19cmV0dXJuIHQubm9kZXMoKS5mb3JFYWNoKChmdW5jdGlvbih0KXtBQnQuaGFzKGksdCl8fG8odCl9KSkscn0sUEJ0PXRCdCxOQnQ9a0J0LElCdD10QnQuY29uc3RhbnQoMSksUkJ0PXRCdCxPQnQ9ekJ0O2Z1bmN0aW9uIHpCdCh0KXt2YXIgZT17fSxuPXt9LGk9W107aWYoUkJ0LmVhY2godC5zaW5rcygpLChmdW5jdGlvbiByKG8pe2lmKFJCdC5oYXMobixvKSl0aHJvdyBuZXcgREJ0O1JCdC5oYXMoZSxvKXx8KG5bb109ITAsZVtvXT0hMCxSQnQuZWFjaCh0LnByZWRlY2Vzc29ycyhvKSxyKSxkZWxldGUgbltvXSxpLnB1c2gobykpfSkpLFJCdC5zaXplKGUpIT09dC5ub2RlQ291bnQoKSl0aHJvdyBuZXcgREJ0O3JldHVybiBpfWZ1bmN0aW9uIERCdCgpe316QnQuQ3ljbGVFeGNlcHRpb249REJ0LERCdC5wcm90b3R5cGU9bmV3IEVycm9yO3ZhciBCQnQ9T0J0LEhCdD10QnQsRkJ0PWZ1bmN0aW9uIFZCdCh0LGUsbil7SEJ0LmlzQXJyYXkoZSl8fChlPVtlXSk7dmFyIGk9KHQuaXNEaXJlY3RlZCgpP3Quc3VjY2Vzc29yczp0Lm5laWdoYm9ycykuYmluZCh0KSxyPVtdLG89e307cmV0dXJuIEhCdC5lYWNoKGUsKGZ1bmN0aW9uKGUpe2lmKCF0Lmhhc05vZGUoZSkpdGhyb3cgbmV3IEVycm9yKCJHcmFwaCBkb2VzIG5vdCBoYXZlIG5vZGU6ICIrZSk7VUJ0KHQsZSwicG9zdCI9PT1uLG8saSxyKX0pKSxyfTtmdW5jdGlvbiBVQnQodCxlLG4saSxyLG8pe0hCdC5oYXMoaSxlKXx8KGlbZV09ITAsbnx8by5wdXNoKGUpLEhCdC5lYWNoKHIoZSksKGZ1bmN0aW9uKGUpe1VCdCh0LGUsbixpLHIsbyl9KSksbiYmby5wdXNoKGUpKX12YXIgakJ0LEdCdD1GQnQsV0J0PUZCdCxxQnQ9dEJ0LFlCdD1uQnQsWEJ0PWJCdCwkQnQ9e0dyYXBoOnVCdC5HcmFwaCxqc29uOnBCdCxhbGc6e2NvbXBvbmVudHM6ZnVuY3Rpb24gS0J0KHQpe3ZhciBlLG49e30saT1bXTtmdW5jdGlvbiByKGkpe3lCdC5oYXMobixpKXx8KG5baV09ITAsZS5wdXNoKGkpLHlCdC5lYWNoKHQuc3VjY2Vzc29ycyhpKSxyKSx5QnQuZWFjaCh0LnByZWRlY2Vzc29ycyhpKSxyKSl9cmV0dXJuIHlCdC5lYWNoKHQubm9kZXMoKSwoZnVuY3Rpb24odCl7ZT1bXSxyKHQpLGUubGVuZ3RoJiZpLnB1c2goZSl9KSksaX0sZGlqa3N0cmE6U0J0LGRpamtzdHJhQWxsOmZ1bmN0aW9uIFpCdCh0LGUsbil7cmV0dXJuIENCdC50cmFuc2Zvcm0odC5ub2RlcygpLChmdW5jdGlvbihpLHIpe2lbcl09VEJ0KHQscixlLG4pfSkse30pfSxmaW5kQ3ljbGVzOmZ1bmN0aW9uIEpCdCh0KXtyZXR1cm4gUEJ0LmZpbHRlcihOQnQodCksKGZ1bmN0aW9uKGUpe3JldHVybiBlLmxlbmd0aD4xfHwxPT09ZS5sZW5ndGgmJnQuaGFzRWRnZShlWzBdLGVbMF0pfSkpfSxmbG95ZFdhcnNoYWxsOmZ1bmN0aW9uIFFCdCh0LGUsbil7cmV0dXJuKGZ1bmN0aW9uIGkodCxlLG4pe3ZhciBpPXt9LHI9dC5ub2RlcygpO3JldHVybiByLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lbdF09e30saVt0XVt0XT17ZGlzdGFuY2U6MH0sci5mb3JFYWNoKChmdW5jdGlvbihlKXt0IT09ZSYmKGlbdF1bZV09e2Rpc3RhbmNlOk51bWJlci5QT1NJVElWRV9JTkZJTklUWX0pfSkpLG4odCkuZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIHI9bi52PT09dD9uLnc6bi52LG89ZShuKTtpW3RdW3JdPXtkaXN0YW5jZTpvLHByZWRlY2Vzc29yOnR9fSkpfSkpLHIuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9aVt0XTtyLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBvPWlbbl07ci5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgaT1lW25dLHI9b1tuXSxhPW9bdF0uZGlzdGFuY2UraS5kaXN0YW5jZTthPHIuZGlzdGFuY2UmJihyLmRpc3RhbmNlPWEsci5wcmVkZWNlc3Nvcj1pLnByZWRlY2Vzc29yKX0pKX0pKX0pKSxpfSkodCxlfHxJQnQsbnx8ZnVuY3Rpb24oZSl7cmV0dXJuIHQub3V0RWRnZXMoZSl9KX0saXNBY3ljbGljOmZ1bmN0aW9uIHRIdCh0KXt0cnl7QkJ0KHQpfWNhdGNoKHQpe2lmKHQgaW5zdGFuY2VvZiBCQnQuQ3ljbGVFeGNlcHRpb24pcmV0dXJuITE7dGhyb3cgdH1yZXR1cm4hMH0scG9zdG9yZGVyOmZ1bmN0aW9uIGVIdCh0LGUpe3JldHVybiBHQnQodCxlLCJwb3N0Iil9LHByZW9yZGVyOmZ1bmN0aW9uIG5IdCh0LGUpe3JldHVybiBXQnQodCxlLCJwcmUiKX0scHJpbTpmdW5jdGlvbiBpSHQodCxlKXt2YXIgbixpPW5ldyBZQnQscj17fSxvPW5ldyBYQnQ7ZnVuY3Rpb24gYSh0KXt2YXIgaT10LnY9PT1uP3Qudzp0LnYsYT1vLnByaW9yaXR5KGkpO2lmKHZvaWQgMCE9PWEpe3ZhciBzPWUodCk7czxhJiYocltpXT1uLG8uZGVjcmVhc2UoaSxzKSl9fWlmKDA9PT10Lm5vZGVDb3VudCgpKXJldHVybiBpO3FCdC5lYWNoKHQubm9kZXMoKSwoZnVuY3Rpb24odCl7by5hZGQodCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLGkuc2V0Tm9kZSh0KX0pKSxvLmRlY3JlYXNlKHQubm9kZXMoKVswXSwwKTtmb3IodmFyIHM9ITE7by5zaXplKCk+MDspe2lmKG49by5yZW1vdmVNaW4oKSxxQnQuaGFzKHIsbikpaS5zZXRFZGdlKG4scltuXSk7ZWxzZXtpZihzKXRocm93IG5ldyBFcnJvcigiSW5wdXQgZ3JhcGggaXMgbm90IGNvbm5lY3RlZDogIit0KTtzPSEwfXQubm9kZUVkZ2VzKG4pLmZvckVhY2goYSl9cmV0dXJuIGl9LHRhcmphbjprQnQsdG9wc29ydDpPQnR9LHZlcnNpb246dUJ0LnZlcnNpb259O3RyeXtqQnQ9JEJ0fWNhdGNoKHQpe31qQnR8fChqQnQ9d2luZG93LmdyYXBobGliKTt2YXIgckh0LG9IdD1qQnQsYUh0PVFOdCxzSHQ9ekN0LGxIdD1OTHQsY0h0PUtrdCx1SHQ9cEF0LGhIdD1mdW5jdGlvbiBkSHQodCxlLG4pe2lmKCF1SHQobikpcmV0dXJuITE7dmFyIGk9dHlwZW9mIGU7cmV0dXJuISEoIm51bWJlciI9PWk/bEh0KG4pJiZjSHQoZSxuLmxlbmd0aCk6InN0cmluZyI9PWkmJmUgaW4gbikmJnNIdChuW2VdLHQpfSxwSHQ9ekN0LGZIdD1oSHQsbUh0PXFMdCxnSHQ9T2JqZWN0LnByb3RvdHlwZSxfSHQ9Z0h0Lmhhc093blByb3BlcnR5LHlIdD14RHQoKGZ1bmN0aW9uKHQsZSl7dD1PYmplY3QodCk7dmFyIG49LTEsaT1lLmxlbmd0aCxyPWk+Mj9lWzJdOnZvaWQgMDtmb3IociYmZkh0KGVbMF0sZVsxXSxyKSYmKGk9MSk7KytuPGk7KWZvcih2YXIgbz1lW25dLGE9bUh0KG8pLHM9LTEsbD1hLmxlbmd0aDsrK3M8bDspe3ZhciBjPWFbc10sdT10W2NdOyh2b2lkIDA9PT11fHxwSHQodSxnSHRbY10pJiYhX0h0LmNhbGwodCxjKSkmJih0W2NdPW9bY10pfXJldHVybiB0fSkpLHZIdD1JT3QsYkh0PU5MdCx4SHQ9REx0LHdIdD0vXHMvLFNIdD0vXlxzKy8sTUh0PXBBdCxFSHQ9YlJ0LFRIdD0vXlstK10weFswLTlhLWZdKyQvaSxDSHQ9L14wYlswMV0rJC9pLEFIdD0vXjBvWzAtN10rJC9pLGtIdD1wYXJzZUludCxMSHQ9ZnVuY3Rpb24gUEh0KHQpe3JldHVybiB0PzEvMD09PSh0PShmdW5jdGlvbiBlKHQpe2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdDtpZihFSHQodCkpcmV0dXJuIE5hTjtpZihNSHQodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PU1IdChlKT9lKyIiOmV9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9KGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQ/dC5zbGljZSgwLChmdW5jdGlvbiBlKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS0mJndIdC50ZXN0KHQuY2hhckF0KGUpKTspO3JldHVybiBlfSkodCkrMSkucmVwbGFjZShTSHQsIiIpOnR9KSh0KTt2YXIgaT1DSHQudGVzdCh0KTtyZXR1cm4gaXx8QUh0LnRlc3QodCk/a0h0KHQuc2xpY2UoMiksaT8yOjgpOlRIdC50ZXN0KHQpP05hTjordH0pKHQpKXx8dD09PS0xLzA/MTc5NzY5MzEzNDg2MjMxNTdlMjkyKih0PDA/LTE6MSk6dD09dD90OjA6MD09PXQ/dDowfSxOSHQ9TEh0LElIdD1TRHQsUkh0PUlPdCxPSHQ9TWF0aC5tYXgsekh0PShmdW5jdGlvbiBCSHQodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXt2YXIgcj1PYmplY3QoZSk7aWYoIWJIdChlKSl7dmFyIG89dkh0KG4pO2U9eEh0KGUpLG49ZnVuY3Rpb24odCl7cmV0dXJuIG8oclt0XSx0LHIpfX12YXIgYT10KGUsbixpKTtyZXR1cm4gYT4tMT9yW28/ZVthXTphXTp2b2lkIDB9fSkoKGZ1bmN0aW9uIERIdCh0LGUsbil7dmFyIGk9bnVsbD09dD8wOnQubGVuZ3RoO2lmKCFpKXJldHVybi0xO3ZhciByPW51bGw9PW4/MDooZnVuY3Rpb24gbyh0KXt2YXIgZT1OSHQodCksbj1lJTE7cmV0dXJuIGU9PWU/bj9lLW46ZTowfSkobik7cmV0dXJuIHI8MCYmKHI9T0h0KGkrciwwKSksSUh0KHQsUkh0KGUpLHIpfSkpLEhIdD1zRHQsRkh0PWZ1bmN0aW9uIFZIdCh0KXtyZXR1cm4gbnVsbCE9dCYmdC5sZW5ndGg/SEh0KHQsMSk6W119LFVIdD1pSXQsakh0PW1JdCxHSHQ9cUx0LFdIdD1Ta3QscUh0PXNJdCxZSHQ9SU90LFhIdD1iUnQsJEh0PWZ1bmN0aW9uIEtIdCh0LGUsbil7Zm9yKHZhciBpPS0xLHI9dC5sZW5ndGg7KytpPHI7KXt2YXIgbz10W2ldLGE9ZShvKTtpZihudWxsIT1hJiYodm9pZCAwPT09cz9hPT1hJiYhWEh0KGEpOm4oYSxzKSkpdmFyIHM9YSxsPW99cmV0dXJuIGx9LFpIdD0kSHQsSkh0PWZ1bmN0aW9uIFFIdCh0LGUpe3JldHVybiB0PmV9LHRGdD1kSXQsZUZ0PVNrdCxuRnQ9ekN0LGlGdD1mdW5jdGlvbiByRnQodCxlLG4peyh2b2lkIDAhPT1uJiYhbkZ0KHRbZV0sbil8fHZvaWQgMD09PW4mJiEoZSBpbiB0KSkmJmVGdCh0LGUsbil9LG9GdD1oQXQsYUZ0PWhQdCxzRnQ9Umt0LGxGdD1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsY0Z0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksdUZ0PWxGdC5jYWxsKE9iamVjdCksaEZ0PWZ1bmN0aW9uIGRGdCh0LGUpe2lmKCgiY29uc3RydWN0b3IiIT09ZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHRbZV0pJiYiX19wcm90b19fIiE9ZSlyZXR1cm4gdFtlXX0scEZ0PU5rdCxmRnQ9cUx0LG1GdD1pRnQsZ0Z0PUtMdC5leHBvcnRzLF9GdD1sTnQseUZ0PVpMdCx2RnQ9eU50LGJGdD1Ha3QseEZ0PVdrdCx3RnQ9VkR0LFNGdD1xa3QuZXhwb3J0cyxNRnQ9X0F0LEVGdD1wQXQsVEZ0PWNMdCxDRnQ9aEZ0LEFGdD1fa3Qsa0Z0PWlGdCxMRnQ9aUl0LFBGdD1wQXQsTkZ0PXFMdCxJRnQ9aEZ0LFJGdD14RHQsT0Z0PWhIdCx6RnQ9ZnVuY3Rpb24gdChlLG4saSxyLG8pe2UhPT1uJiZMRnQobiwoZnVuY3Rpb24oYSxzKXtpZihvfHwobz1uZXcgQUZ0KSxQRnQoYSkpIShmdW5jdGlvbiBsKHQsZSxuLGkscixvLGEpe3ZhciBzPUNGdCh0LG4pLGw9Q0Z0KGUsbiksYz1hLmdldChsKTtpZihjKW1GdCh0LG4sYyk7ZWxzZXt2YXIgdT1vP28ocyxsLG4rIiIsdCxlLGEpOnZvaWQgMCxoPXZvaWQgMD09PXU7aWYoaCl7dmFyIGQ9eEZ0KGwpLHA9IWQmJlNGdChsKSxmPSFkJiYhcCYmVEZ0KGwpO3U9bCxkfHxwfHxmP3hGdChzKT91PXM6d0Z0KHMpP3U9eUZ0KHMpOnA/KGg9ITEsdT1nRnQobCwhMCkpOmY/KGg9ITEsdT1fRnQobCwhMCkpOnU9W106KGZ1bmN0aW9uIG0odCl7aWYoIXNGdCh0KXx8IltvYmplY3QgT2JqZWN0XSIhPW9GdCh0KSlyZXR1cm4hMTt2YXIgZT1hRnQodCk7aWYobnVsbD09PWUpcmV0dXJuITA7dmFyIG49Y0Z0LmNhbGwoZSwiY29uc3RydWN0b3IiKSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgbiYmbiBpbnN0YW5jZW9mIG4mJmxGdC5jYWxsKG4pPT11RnR9KShsKXx8YkZ0KGwpPyh1PXMsYkZ0KHMpP3U9KGZ1bmN0aW9uIGcodCl7cmV0dXJuIHBGdCh0LGZGdCh0KSl9KShzKTpFRnQocykmJiFNRnQocyl8fCh1PXZGdChsKSkpOmg9ITF9aCYmKGEuc2V0KGwsdSkscih1LGwsaSxvLGEpLGEuZGVsZXRlKGwpKSxtRnQodCxuLHUpfX0pKGUsbixzLGksdCxyLG8pO2Vsc2V7dmFyIGM9cj9yKElGdChlLHMpLGEscysiIixlLG4sbyk6dm9pZCAwO3ZvaWQgMD09PWMmJihjPWEpLGtGdChlLHMsYyl9fSksTkZ0KX0sREZ0PShmdW5jdGlvbiBCRnQodCl7cmV0dXJuIFJGdCgoZnVuY3Rpb24oZSxuKXt2YXIgaT0tMSxyPW4ubGVuZ3RoLG89cj4xP25bci0xXTp2b2lkIDAsYT1yPjI/blsyXTp2b2lkIDA7Zm9yKG89dC5sZW5ndGg+MyYmImZ1bmN0aW9uIj09dHlwZW9mIG8/KHItLSxvKTp2b2lkIDAsYSYmT0Z0KG5bMF0sblsxXSxhKSYmKG89cjwzP3ZvaWQgMDpvLHI9MSksZT1PYmplY3QoZSk7KytpPHI7KXt2YXIgcz1uW2ldO3MmJnQoZSxzLGksbyl9cmV0dXJuIGV9KSl9KSgoZnVuY3Rpb24odCxlLG4pe3pGdCh0LGUsbil9KSksSEZ0PWZ1bmN0aW9uIEZGdCh0LGUpe3JldHVybiB0PGV9LFZGdD0kSHQsVUZ0PUhGdCxqRnQ9ZEl0LEdGdD0kSHQsV0Z0PUlPdCxxRnQ9SEZ0LFlGdD1pQXQsWEZ0PUFrdCwkRnQ9S1J0LEtGdD1La3QsWkZ0PXBBdCxKRnQ9UVJ0LFFGdD1pT3QsdFZ0PWZ1bmN0aW9uIGVWdCh0LGUsbixpKXtpZighWkZ0KHQpKXJldHVybiB0O2Zvcih2YXIgcj0tMSxvPShlPSRGdChlLHQpKS5sZW5ndGgsYT1vLTEscz10O251bGwhPXMmJisrcjxvOyl7dmFyIGw9SkZ0KGVbcl0pLGM9bjtpZigiX19wcm90b19fIj09PWx8fCJjb25zdHJ1Y3RvciI9PT1sfHwicHJvdG90eXBlIj09PWwpcmV0dXJuIHQ7aWYociE9YSl7dmFyIHU9c1tsXTt2b2lkIDA9PT0oYz1pP2kodSxsLHMpOnZvaWQgMCkmJihjPVpGdCh1KT91OktGdChlW3IrMV0pP1tdOnt9KX1YRnQocyxsLGMpLHM9c1tsXX1yZXR1cm4gdH0sblZ0PUtSdCxpVnQ9X090LHJWdD1GSHQsb1Z0PWhEdCxhVnQ9Z0R0LHNWdD0oZnVuY3Rpb24gbFZ0KHQpe3JldHVybiBhVnQob1Z0KHQsdm9pZCAwLHJWdCksdCsiIil9KSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD97fTooZnVuY3Rpb24gbih0LGUpe3JldHVybihmdW5jdGlvbiBuKHQsZSxpKXtmb3IodmFyIHI9LTEsbz1lLmxlbmd0aCxhPXt9OysrcjxvOyl7dmFyIHM9ZVtyXSxsPVFGdCh0LHMpO2kobCxzKSYmdFZ0KGEsblZ0KHMsdCksbCl9cmV0dXJuIGF9KSh0LGUsKGZ1bmN0aW9uKGUsbil7cmV0dXJuIGlWdCh0LG4pfSkpfSkodCxlKX0pKSxjVnQ9TWF0aC5jZWlsLHVWdD1NYXRoLm1heCxoVnQ9aEh0LGRWdD1MSHQscFZ0PShmdW5jdGlvbiBmVnQodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gaSYmIm51bWJlciIhPXR5cGVvZiBpJiZoVnQoZSxuLGkpJiYobj1pPXZvaWQgMCksZT1kVnQoZSksdm9pZCAwPT09bj8obj1lLGU9MCk6bj1kVnQobiksKGZ1bmN0aW9uIHIodCxlLG4saSl7Zm9yKHZhciByPS0xLG89dVZ0KGNWdCgoZS10KS8obnx8MSkpLDApLGE9QXJyYXkobyk7by0tOylhW2k/bzorK3JdPXQsdCs9bjtyZXR1cm4gYX0pKGUsbixpPXZvaWQgMD09PWk/ZTxuPzE6LTE6ZFZ0KGkpLHQpfX0pKCksbVZ0PWJSdCxnVnQ9ZnVuY3Rpb24gX1Z0KHQsZSl7aWYodCE9PWUpe3ZhciBuPXZvaWQgMCE9PXQsaT1udWxsPT09dCxyPXQ9PXQsbz1tVnQodCksYT12b2lkIDAhPT1lLHM9bnVsbD09PWUsbD1lPT1lLGM9bVZ0KGUpO2lmKCFzJiYhYyYmIW8mJnQ+ZXx8byYmYSYmbCYmIXMmJiFjfHxpJiZhJiZsfHwhbiYmbHx8IXIpcmV0dXJuIDE7aWYoIWkmJiFvJiYhYyYmdDxlfHxjJiZuJiZyJiYhaSYmIW98fHMmJm4mJnJ8fCFhJiZyfHwhbClyZXR1cm4tMX1yZXR1cm4gMH0seVZ0PXpSdCx2VnQ9aU90LGJWdD1JT3QseFZ0PXN6dCx3VnQ9ckx0LFNWdD1kSXQsTVZ0PVdrdCxFVnQ9c0R0LFRWdD1oSHQsQ1Z0PXhEdCgoZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybltdO3ZhciBuPWUubGVuZ3RoO3JldHVybiBuPjEmJlRWdCh0LGVbMF0sZVsxXSk/ZT1bXTpuPjImJlRWdChlWzBdLGVbMV0sZVsyXSkmJihlPVtlWzBdXSksKGZ1bmN0aW9uIGkodCxlLG4pe2U9ZS5sZW5ndGg/eVZ0KGUsKGZ1bmN0aW9uKHQpe3JldHVybiBNVnQodCk/ZnVuY3Rpb24oZSl7cmV0dXJuIHZWdChlLDE9PT10Lmxlbmd0aD90WzBdOnQpfTp0fSkpOltTVnRdO3ZhciBpPS0xO3JldHVybiBlPXlWdChlLHdWdChiVnQpKSwoZnVuY3Rpb24gcih0LGUpe3ZhciBuPXQubGVuZ3RoO2Zvcih0LnNvcnQoZSk7bi0tOyl0W25dPXRbbl0udmFsdWU7cmV0dXJuIHR9KSh4VnQodCwoZnVuY3Rpb24odCxuLHIpe3JldHVybntjcml0ZXJpYTp5VnQoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSksaW5kZXg6KytpLHZhbHVlOnR9fSkpLChmdW5jdGlvbih0LGUpe3JldHVybihmdW5jdGlvbiBpKHQsZSxuKXtmb3IodmFyIGk9LTEscj10LmNyaXRlcmlhLG89ZS5jcml0ZXJpYSxhPXIubGVuZ3RoLHM9bi5sZW5ndGg7KytpPGE7KXt2YXIgbD1nVnQocltpXSxvW2ldKTtpZihsKXJldHVybiBpPj1zP2w6bCooImRlc2MiPT1uW2ldPy0xOjEpfXJldHVybiB0LmluZGV4LWUuaW5kZXh9KSh0LGUsbil9KSl9KSh0LEVWdChlLDEpLFtdKX0pKSxBVnQ9R1J0LGtWdD0wLExWdD1Ba3Q7dHJ5e3JIdD17Y2xvbmVEZWVwOmZ1bmN0aW9uIFBWdCh0KXtyZXR1cm4gYUh0KHQsNSl9LGNvbnN0YW50OmVJdCxkZWZhdWx0czp5SHQsZWFjaDpTSXQsZmlsdGVyOkZPdCxmaW5kOnpIdCxmbGF0dGVuOkZIdCxmb3JFYWNoOnhJdCxmb3JJbjpmdW5jdGlvbiBOVnQodCxlKXtyZXR1cm4gbnVsbD09dD90OlVIdCh0LGpIdChlKSxHSHQpfSxoYXM6cU90LGlzVW5kZWZpbmVkOml6dCxsYXN0OmZ1bmN0aW9uIElWdCh0KXt2YXIgZT1udWxsPT10PzA6dC5sZW5ndGg7cmV0dXJuIGU/dFtlLTFdOnZvaWQgMH0sbWFwOnB6dCxtYXBWYWx1ZXM6ZnVuY3Rpb24gUlZ0KHQsZSl7dmFyIG49e307cmV0dXJuIGU9WUh0KGUpLHFIdCh0LChmdW5jdGlvbih0LGkscil7V0h0KG4saSxlKHQsaSxyKSl9KSksbn0sbWF4OmZ1bmN0aW9uIE9WdCh0KXtyZXR1cm4gdCYmdC5sZW5ndGg/Wkh0KHQsdEZ0LEpIdCk6dm9pZCAwfSxtZXJnZTpERnQsbWluOmZ1bmN0aW9uIHpWdCh0KXtyZXR1cm4gdCYmdC5sZW5ndGg/VkZ0KHQsakZ0LFVGdCk6dm9pZCAwfSxtaW5CeTpmdW5jdGlvbiBEVnQodCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg/R0Z0KHQsV0Z0KGUpLHFGdCk6dm9pZCAwfSxub3c6ZnVuY3Rpb24oKXtyZXR1cm4gWUZ0LkRhdGUubm93KCl9LHBpY2s6c1Z0LHJhbmdlOnBWdCxyZWR1Y2U6d3p0LHNvcnRCeTpDVnQsdW5pcXVlSWQ6ZnVuY3Rpb24gQlZ0KHQpe3ZhciBlPSsra1Z0O3JldHVybiBBVnQodCkrZX0sdmFsdWVzOlhEdCx6aXBPYmplY3Q6ZnVuY3Rpb24gSFZ0KHQsZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCxlLGkpe2Zvcih2YXIgcj0tMSxvPXQubGVuZ3RoLGE9ZS5sZW5ndGgscz17fTsrK3I8bzspaShzLHRbcl0scjxhP2Vbcl06dm9pZCAwKTtyZXR1cm4gc30pKHR8fFtdLGV8fFtdLExWdCl9fX1jYXRjaCh0KXt9ckh0fHwockh0PXdpbmRvdy5fKTt2YXIgRlZ0PXJIdCxWVnQ9VVZ0O2Z1bmN0aW9uIFVWdCgpe3ZhciB0PXt9O3QuX25leHQ9dC5fcHJldj10LHRoaXMuX3NlbnRpbmVsPXR9ZnVuY3Rpb24galZ0KHQpe3QuX3ByZXYuX25leHQ9dC5fbmV4dCx0Ll9uZXh0Ll9wcmV2PXQuX3ByZXYsZGVsZXRlIHQuX25leHQsZGVsZXRlIHQuX3ByZXZ9ZnVuY3Rpb24gR1Z0KHQsZSl7aWYoIl9uZXh0IiE9PXQmJiJfcHJldiIhPT10KXJldHVybiBlfVVWdC5wcm90b3R5cGUuZGVxdWV1ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3NlbnRpbmVsLGU9dC5fcHJldjtpZihlIT09dClyZXR1cm4galZ0KGUpLGV9LFVWdC5wcm90b3R5cGUuZW5xdWV1ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9zZW50aW5lbDt0Ll9wcmV2JiZ0Ll9uZXh0JiZqVnQodCksdC5fbmV4dD1lLl9uZXh0LGUuX25leHQuX3ByZXY9dCxlLl9uZXh0PXQsdC5fcHJldj1lfSxVVnQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9dGhpcy5fc2VudGluZWwsbj1lLl9wcmV2O24hPT1lOyl0LnB1c2goSlNPTi5zdHJpbmdpZnkobixHVnQpKSxuPW4uX3ByZXY7cmV0dXJuIlsiK3Quam9pbigiLCAiKSsiXSJ9O3ZhciBXVnQ9RlZ0LHFWdD1vSHQuR3JhcGgsWVZ0PVZWdCxYVnQ9V1Z0LmNvbnN0YW50KDEpO2Z1bmN0aW9uICRWdCh0LGUsbixpLHIpe3ZhciBvPXI/W106dm9pZCAwO3JldHVybiBXVnQuZm9yRWFjaCh0LmluRWRnZXMoaS52KSwoZnVuY3Rpb24oaSl7dmFyIGE9dC5lZGdlKGkpLHM9dC5ub2RlKGkudik7ciYmby5wdXNoKHt2Omkudix3Omkud30pLHMub3V0LT1hLEtWdChlLG4scyl9KSksV1Z0LmZvckVhY2godC5vdXRFZGdlcyhpLnYpLChmdW5jdGlvbihpKXt2YXIgcj10LmVkZ2UoaSksbz10Lm5vZGUoaS53KTtvLmluLT1yLEtWdChlLG4sbyl9KSksdC5yZW1vdmVOb2RlKGkudiksb31mdW5jdGlvbiBLVnQodCxlLG4pe24ub3V0P24uaW4/dFtuLm91dC1uLmluK2VdLmVucXVldWUobik6dFt0Lmxlbmd0aC0xXS5lbnF1ZXVlKG4pOnRbMF0uZW5xdWV1ZShuKX12YXIgWlZ0PUZWdCxKVnQ9e3J1bjpmdW5jdGlvbiBRVnQodCl7dmFyIGU9ImdyZWVkeSI9PT10LmdyYXBoKCkuYWN5Y2xpY2VyPyhmdW5jdGlvbiBpKHQsZSl7aWYodC5ub2RlQ291bnQoKTw9MSlyZXR1cm5bXTt2YXIgbj0oZnVuY3Rpb24gaSh0LGUpe3ZhciBuPW5ldyBxVnQsaT0wLHI9MDtXVnQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKHQpe24uc2V0Tm9kZSh0LHt2OnQsaW46MCxvdXQ6MH0pfSkpLFdWdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG89bi5lZGdlKHQudix0LncpfHwwLGE9ZSh0KTtuLnNldEVkZ2UodC52LHQudyxvK2EpLHI9TWF0aC5tYXgocixuLm5vZGUodC52KS5vdXQrPWEpLGk9TWF0aC5tYXgoaSxuLm5vZGUodC53KS5pbis9YSl9KSk7dmFyIG89V1Z0LnJhbmdlKHIraSszKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZVnR9KSksYT1pKzE7cmV0dXJuIFdWdC5mb3JFYWNoKG4ubm9kZXMoKSwoZnVuY3Rpb24odCl7S1Z0KG8sYSxuLm5vZGUodCkpfSkpLHtncmFwaDpuLGJ1Y2tldHM6byx6ZXJvSWR4OmF9fSkodCxlfHxYVnQpLHI9KGZ1bmN0aW9uIG8odCxlLG4pe2Zvcih2YXIgaSxyPVtdLG89ZVtlLmxlbmd0aC0xXSxhPWVbMF07dC5ub2RlQ291bnQoKTspe2Zvcig7aT1hLmRlcXVldWUoKTspJFZ0KHQsZSxuLGkpO2Zvcig7aT1vLmRlcXVldWUoKTspJFZ0KHQsZSxuLGkpO2lmKHQubm9kZUNvdW50KCkpZm9yKHZhciBzPWUubGVuZ3RoLTI7cz4wOy0tcylpZihpPWVbc10uZGVxdWV1ZSgpKXtyPXIuY29uY2F0KCRWdCh0LGUsbixpLCEwKSk7YnJlYWt9fXJldHVybiByfSkobi5ncmFwaCxuLmJ1Y2tldHMsbi56ZXJvSWR4KTtyZXR1cm4gV1Z0LmZsYXR0ZW4oV1Z0Lm1hcChyLChmdW5jdGlvbihlKXtyZXR1cm4gdC5vdXRFZGdlcyhlLnYsZS53KX0pKSwhMCl9KSh0LChmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5lZGdlKGUpLndlaWdodH19KSh0KSk6KGZ1bmN0aW9uIHIodCl7dmFyIGU9W10sbj17fSxpPXt9O3JldHVybiBaVnQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uIHIobyl7WlZ0LmhhcyhpLG8pfHwoaVtvXT0hMCxuW29dPSEwLFpWdC5mb3JFYWNoKHQub3V0RWRnZXMobyksKGZ1bmN0aW9uKHQpe1pWdC5oYXMobix0LncpP2UucHVzaCh0KTpyKHQudyl9KSksZGVsZXRlIG5bb10pfSkpLGV9KSh0KTtaVnQuZm9yRWFjaChlLChmdW5jdGlvbihlKXt2YXIgbj10LmVkZ2UoZSk7dC5yZW1vdmVFZGdlKGUpLG4uZm9yd2FyZE5hbWU9ZS5uYW1lLG4ucmV2ZXJzZWQ9ITAsdC5zZXRFZGdlKGUudyxlLnYsbixaVnQudW5pcXVlSWQoInJldiIpKX0pKX0sdW5kbzpmdW5jdGlvbiB0VXQodCl7WlZ0LmZvckVhY2godC5lZGdlcygpLChmdW5jdGlvbihlKXt2YXIgbj10LmVkZ2UoZSk7aWYobi5yZXZlcnNlZCl7dC5yZW1vdmVFZGdlKGUpO3ZhciBpPW4uZm9yd2FyZE5hbWU7ZGVsZXRlIG4ucmV2ZXJzZWQsZGVsZXRlIG4uZm9yd2FyZE5hbWUsdC5zZXRFZGdlKGUudyxlLnYsbixpKX19KSl9fSxlVXQ9RlZ0LG5VdD1vSHQuR3JhcGgsaVV0PXthZGREdW1teU5vZGU6Z1V0LHNpbXBsaWZ5OmZ1bmN0aW9uIHJVdCh0KXt2YXIgZT0obmV3IG5VdCkuc2V0R3JhcGgodC5ncmFwaCgpKTtyZXR1cm4gZVV0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihuKXtlLnNldE5vZGUobix0Lm5vZGUobikpfSkpLGVVdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24obil7dmFyIGk9ZS5lZGdlKG4udixuLncpfHx7d2VpZ2h0OjAsbWlubGVuOjF9LHI9dC5lZGdlKG4pO2Uuc2V0RWRnZShuLnYsbi53LHt3ZWlnaHQ6aS53ZWlnaHQrci53ZWlnaHQsbWlubGVuOk1hdGgubWF4KGkubWlubGVuLHIubWlubGVuKX0pfSkpLGV9LGFzTm9uQ29tcG91bmRHcmFwaDpmdW5jdGlvbiBvVXQodCl7dmFyIGU9bmV3IG5VdCh7bXVsdGlncmFwaDp0LmlzTXVsdGlncmFwaCgpfSkuc2V0R3JhcGgodC5ncmFwaCgpKTtyZXR1cm4gZVV0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihuKXt0LmNoaWxkcmVuKG4pLmxlbmd0aHx8ZS5zZXROb2RlKG4sdC5ub2RlKG4pKX0pKSxlVXQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKG4pe2Uuc2V0RWRnZShuLHQuZWRnZShuKSl9KSksZX0sc3VjY2Vzc29yV2VpZ2h0czpmdW5jdGlvbiBhVXQodCl7dmFyIGU9ZVV0Lm1hcCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe3ZhciBuPXt9O3JldHVybiBlVXQuZm9yRWFjaCh0Lm91dEVkZ2VzKGUpLChmdW5jdGlvbihlKXtuW2Uud109KG5bZS53XXx8MCkrdC5lZGdlKGUpLndlaWdodH0pKSxufSkpO3JldHVybiBlVXQuemlwT2JqZWN0KHQubm9kZXMoKSxlKX0scHJlZGVjZXNzb3JXZWlnaHRzOmZ1bmN0aW9uIHNVdCh0KXt2YXIgZT1lVXQubWFwKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7dmFyIG49e307cmV0dXJuIGVVdC5mb3JFYWNoKHQuaW5FZGdlcyhlKSwoZnVuY3Rpb24oZSl7bltlLnZdPShuW2Uudl18fDApK3QuZWRnZShlKS53ZWlnaHR9KSksbn0pKTtyZXR1cm4gZVV0LnppcE9iamVjdCh0Lm5vZGVzKCksZSl9LGludGVyc2VjdFJlY3Q6ZnVuY3Rpb24gbFV0KHQsZSl7dmFyIG4saSxyPXQueCxvPXQueSxhPWUueC1yLHM9ZS55LW8sbD10LndpZHRoLzIsYz10LmhlaWdodC8yO2lmKCFhJiYhcyl0aHJvdyBuZXcgRXJyb3IoIk5vdCBwb3NzaWJsZSB0byBmaW5kIGludGVyc2VjdGlvbiBpbnNpZGUgb2YgdGhlIHJlY3RhbmdsZSIpO3JldHVybiBNYXRoLmFicyhzKSpsPk1hdGguYWJzKGEpKmM/KHM8MCYmKGM9LWMpLG49YyphL3MsaT1jKTooYTwwJiYobD0tbCksbj1sLGk9bCpzL2EpLHt4OnIrbix5Om8raX19LGJ1aWxkTGF5ZXJNYXRyaXg6ZnVuY3Rpb24gY1V0KHQpe3ZhciBlPWVVdC5tYXAoZVV0LnJhbmdlKF9VdCh0KSsxKSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pKTtyZXR1cm4gZVV0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihuKXt2YXIgaT10Lm5vZGUobikscj1pLnJhbms7ZVV0LmlzVW5kZWZpbmVkKHIpfHwoZVtyXVtpLm9yZGVyXT1uKX0pKSxlfSxub3JtYWxpemVSYW5rczpmdW5jdGlvbiB1VXQodCl7dmFyIGU9ZVV0Lm1pbihlVXQubWFwKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7cmV0dXJuIHQubm9kZShlKS5yYW5rfSkpKTtlVXQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKG4pe3ZhciBpPXQubm9kZShuKTtlVXQuaGFzKGksInJhbmsiKSYmKGkucmFuay09ZSl9KSl9LHJlbW92ZUVtcHR5UmFua3M6ZnVuY3Rpb24gaFV0KHQpe3ZhciBlPWVVdC5taW4oZVV0Lm1hcCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5vZGUoZSkucmFua30pKSksbj1bXTtlVXQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGkpe3ZhciByPXQubm9kZShpKS5yYW5rLWU7bltyXXx8KG5bcl09W10pLG5bcl0ucHVzaChpKX0pKTt2YXIgaT0wLHI9dC5ncmFwaCgpLm5vZGVSYW5rRmFjdG9yO2VVdC5mb3JFYWNoKG4sKGZ1bmN0aW9uKGUsbil7ZVV0LmlzVW5kZWZpbmVkKGUpJiZuJXIhPTA/LS1pOmkmJmVVdC5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe3Qubm9kZShlKS5yYW5rKz1pfSkpfSkpfSxhZGRCb3JkZXJOb2RlOmZ1bmN0aW9uIGRVdCh0LGUsbixpKXt2YXIgcj17d2lkdGg6MCxoZWlnaHQ6MH07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+PTQmJihyLnJhbms9bixyLm9yZGVyPWkpLGdVdCh0LCJib3JkZXIiLHIsZSl9LG1heFJhbms6X1V0LHBhcnRpdGlvbjpmdW5jdGlvbiBwVXQodCxlKXt2YXIgbj17bGhzOltdLHJoczpbXX07cmV0dXJuIGVVdC5mb3JFYWNoKHQsKGZ1bmN0aW9uKHQpe2UodCk/bi5saHMucHVzaCh0KTpuLnJocy5wdXNoKHQpfSkpLG59LHRpbWU6ZnVuY3Rpb24gZlV0KHQsZSl7dmFyIG49ZVV0Lm5vdygpO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7Y29uc29sZS5sb2codCsiIHRpbWU6ICIrKGVVdC5ub3coKS1uKSsibXMiKX19LG5vdGltZTpmdW5jdGlvbiBtVXQodCxlKXtyZXR1cm4gZSgpfX07ZnVuY3Rpb24gZ1V0KHQsZSxuLGkpe3ZhciByO2Rve3I9ZVV0LnVuaXF1ZUlkKGkpfXdoaWxlKHQuaGFzTm9kZShyKSk7cmV0dXJuIG4uZHVtbXk9ZSx0LnNldE5vZGUocixuKSxyfWZ1bmN0aW9uIF9VdCh0KXtyZXR1cm4gZVV0Lm1heChlVXQubWFwKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7dmFyIG49dC5ub2RlKGUpLnJhbms7aWYoIWVVdC5pc1VuZGVmaW5lZChuKSlyZXR1cm4gbn0pKSl9dmFyIHlVdD1GVnQsdlV0PWlVdCxiVXQ9e3J1bjpmdW5jdGlvbiB4VXQodCl7dC5ncmFwaCgpLmR1bW15Q2hhaW5zPVtdLHlVdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24oZSl7IShmdW5jdGlvbiBuKHQsZSl7dmFyIG4saSxyLG89ZS52LGE9dC5ub2RlKG8pLnJhbmsscz1lLncsbD10Lm5vZGUocykucmFuayxjPWUubmFtZSx1PXQuZWRnZShlKSxoPXUubGFiZWxSYW5rO2lmKGwhPT1hKzEpe2Zvcih0LnJlbW92ZUVkZ2UoZSkscj0wLCsrYTthPGw7KytyLCsrYSl1LnBvaW50cz1bXSxuPXZVdC5hZGREdW1teU5vZGUodCwiZWRnZSIsaT17d2lkdGg6MCxoZWlnaHQ6MCxlZGdlTGFiZWw6dSxlZGdlT2JqOmUscmFuazphfSwiX2QiKSxhPT09aCYmKGkud2lkdGg9dS53aWR0aCxpLmhlaWdodD11LmhlaWdodCxpLmR1bW15PSJlZGdlLWxhYmVsIixpLmxhYmVscG9zPXUubGFiZWxwb3MpLHQuc2V0RWRnZShvLG4se3dlaWdodDp1LndlaWdodH0sYyksMD09PXImJnQuZ3JhcGgoKS5kdW1teUNoYWlucy5wdXNoKG4pLG89bjt0LnNldEVkZ2UobyxzLHt3ZWlnaHQ6dS53ZWlnaHR9LGMpfX0pKHQsZSl9KSl9LHVuZG86ZnVuY3Rpb24gd1V0KHQpe3lVdC5mb3JFYWNoKHQuZ3JhcGgoKS5kdW1teUNoYWlucywoZnVuY3Rpb24oZSl7dmFyIG4saT10Lm5vZGUoZSkscj1pLmVkZ2VMYWJlbDtmb3IodC5zZXRFZGdlKGkuZWRnZU9iaixyKTtpLmR1bW15OyluPXQuc3VjY2Vzc29ycyhlKVswXSx0LnJlbW92ZU5vZGUoZSksci5wb2ludHMucHVzaCh7eDppLngseTppLnl9KSwiZWRnZS1sYWJlbCI9PT1pLmR1bW15JiYoci54PWkueCxyLnk9aS55LHIud2lkdGg9aS53aWR0aCxyLmhlaWdodD1pLmhlaWdodCksaT10Lm5vZGUoZT1uKX0pKX19LFNVdD1GVnQsTVV0PWZ1bmN0aW9uIEVVdCh0KXt2YXIgZT17fTtTVXQuZm9yRWFjaCh0LnNvdXJjZXMoKSwoZnVuY3Rpb24gbihpKXt2YXIgcj10Lm5vZGUoaSk7aWYoU1V0LmhhcyhlLGkpKXJldHVybiByLnJhbms7ZVtpXT0hMDt2YXIgbz1TVXQubWluKFNVdC5tYXAodC5vdXRFZGdlcyhpKSwoZnVuY3Rpb24oZSl7cmV0dXJuIG4oZS53KS10LmVkZ2UoZSkubWlubGVufSkpKTtyZXR1cm4gbyE9PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSYmbnVsbCE9b3x8KG89MCksci5yYW5rPW99KSl9LFRVdD1mdW5jdGlvbiBDVXQodCxlKXtyZXR1cm4gdC5ub2RlKGUudykucmFuay10Lm5vZGUoZS52KS5yYW5rLXQuZWRnZShlKS5taW5sZW59LEFVdD1GVnQsa1V0PW9IdC5HcmFwaCxMVXQ9VFV0LFBVdD1mdW5jdGlvbiBOVXQodCl7dmFyIGUsbixpPW5ldyBrVXQoe2RpcmVjdGVkOiExfSkscj10Lm5vZGVzKClbMF0sbz10Lm5vZGVDb3VudCgpO2ZvcihpLnNldE5vZGUocix7fSk7SVV0KGksdCk8bzspZT1SVXQoaSx0KSxuPWkuaGFzTm9kZShlLnYpP0xVdCh0LGUpOi1MVXQodCxlKSxPVXQoaSx0LG4pO3JldHVybiBpfTtmdW5jdGlvbiBJVXQodCxlKXtyZXR1cm4gQVV0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbiBuKGkpe0FVdC5mb3JFYWNoKGUubm9kZUVkZ2VzKGkpLChmdW5jdGlvbihyKXt2YXIgbz1yLnYsYT1pPT09bz9yLnc6bzt0Lmhhc05vZGUoYSl8fExVdChlLHIpfHwodC5zZXROb2RlKGEse30pLHQuc2V0RWRnZShpLGEse30pLG4oYSkpfSkpfSkpLHQubm9kZUNvdW50KCl9ZnVuY3Rpb24gUlV0KHQsZSl7cmV0dXJuIEFVdC5taW5CeShlLmVkZ2VzKCksKGZ1bmN0aW9uKG4pe2lmKHQuaGFzTm9kZShuLnYpIT09dC5oYXNOb2RlKG4udykpcmV0dXJuIExVdChlLG4pfSkpfWZ1bmN0aW9uIE9VdCh0LGUsbil7QVV0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbih0KXtlLm5vZGUodCkucmFuays9bn0pKX12YXIgelV0PUZWdCxEVXQ9UFV0LEJVdD1UVXQsSFV0PU1VdCxGVXQ9b0h0LmFsZy5wcmVvcmRlcixWVXQ9b0h0LmFsZy5wb3N0b3JkZXIsVVV0PWlVdC5zaW1wbGlmeSxqVXQ9R1V0O2Z1bmN0aW9uIEdVdCh0KXt0PVVVdCh0KSxIVXQodCk7dmFyIGUsbj1EVXQodCk7Zm9yKFlVdChuKSxXVXQobix0KTtlPSRVdChuKTspWlV0KG4sdCxlLEtVdChuLHQsZSkpfWZ1bmN0aW9uIFdVdCh0LGUpe3ZhciBuPVZVdCh0LHQubm9kZXMoKSk7bj1uLnNsaWNlKDAsbi5sZW5ndGgtMSkselV0LmZvckVhY2gobiwoZnVuY3Rpb24obil7IShmdW5jdGlvbiBpKHQsZSxuKXt2YXIgaT10Lm5vZGUobik7dC5lZGdlKG4saS5wYXJlbnQpLmN1dHZhbHVlPXFVdCh0LGUsbil9KSh0LGUsbil9KSl9ZnVuY3Rpb24gcVV0KHQsZSxuKXt2YXIgaT10Lm5vZGUobikucGFyZW50LHI9ITAsbz1lLmVkZ2UobixpKSxhPTA7cmV0dXJuIG98fChyPSExLG89ZS5lZGdlKGksbikpLGE9by53ZWlnaHQselV0LmZvckVhY2goZS5ub2RlRWRnZXMobiksKGZ1bmN0aW9uKG8pe3ZhciBzPW8udj09PW4sbD1zP28udzpvLnY7aWYobCE9PWkpe3ZhciBjPXM9PT1yLHU9ZS5lZGdlKG8pLndlaWdodDtpZihhKz1jP3U6LXUsKGZ1bmN0aW9uIGgodCxlLG4pe3JldHVybiB0Lmhhc0VkZ2UoZSxuKX0pKHQsbixsKSl7dmFyIGQ9dC5lZGdlKG4sbCkuY3V0dmFsdWU7YSs9Yz8tZDpkfX19KSksYX1mdW5jdGlvbiBZVXQodCxlKXthcmd1bWVudHMubGVuZ3RoPDImJihlPXQubm9kZXMoKVswXSksWFV0KHQse30sMSxlKX1mdW5jdGlvbiBYVXQodCxlLG4saSxyKXt2YXIgbz1uLGE9dC5ub2RlKGkpO3JldHVybiBlW2ldPSEwLHpVdC5mb3JFYWNoKHQubmVpZ2hib3JzKGkpLChmdW5jdGlvbihyKXt6VXQuaGFzKGUscil8fChuPVhVdCh0LGUsbixyLGkpKX0pKSxhLmxvdz1vLGEubGltPW4rKyxyP2EucGFyZW50PXI6ZGVsZXRlIGEucGFyZW50LG59ZnVuY3Rpb24gJFV0KHQpe3JldHVybiB6VXQuZmluZCh0LmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3JldHVybiB0LmVkZ2UoZSkuY3V0dmFsdWU8MH0pKX1mdW5jdGlvbiBLVXQodCxlLG4pe3ZhciBpPW4udixyPW4udztlLmhhc0VkZ2UoaSxyKXx8KGk9bi53LHI9bi52KTt2YXIgbz10Lm5vZGUoaSksYT10Lm5vZGUocikscz1vLGw9ITE7by5saW0+YS5saW0mJihzPWEsbD0hMCk7dmFyIGM9elV0LmZpbHRlcihlLmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3JldHVybiBsPT09SlV0KDAsdC5ub2RlKGUudikscykmJmwhPT1KVXQoMCx0Lm5vZGUoZS53KSxzKX0pKTtyZXR1cm4gelV0Lm1pbkJ5KGMsKGZ1bmN0aW9uKHQpe3JldHVybiBCVXQoZSx0KX0pKX1mdW5jdGlvbiBaVXQodCxlLG4saSl7dC5yZW1vdmVFZGdlKG4udixuLncpLHQuc2V0RWRnZShpLnYsaS53LHt9KSxZVXQodCksV1V0KHQsZSksKGZ1bmN0aW9uIHIodCxlKXt2YXIgbj16VXQuZmluZCh0Lm5vZGVzKCksKGZ1bmN0aW9uKHQpe3JldHVybiFlLm5vZGUodCkucGFyZW50fSkpLGk9RlV0KHQsbik7aT1pLnNsaWNlKDEpLHpVdC5mb3JFYWNoKGksKGZ1bmN0aW9uKG4pe3ZhciBpPXQubm9kZShuKS5wYXJlbnQscj1lLmVkZ2UobixpKSxvPSExO3J8fChyPWUuZWRnZShpLG4pLG89ITApLGUubm9kZShuKS5yYW5rPWUubm9kZShpKS5yYW5rKyhvP3IubWlubGVuOi1yLm1pbmxlbil9KSl9KSh0LGUpfWZ1bmN0aW9uIEpVdCh0LGUsbil7cmV0dXJuIG4ubG93PD1lLmxpbSYmZS5saW08PW4ubGltfUdVdC5pbml0TG93TGltVmFsdWVzPVlVdCxHVXQuaW5pdEN1dFZhbHVlcz1XVXQsR1V0LmNhbGNDdXRWYWx1ZT1xVXQsR1V0LmxlYXZlRWRnZT0kVXQsR1V0LmVudGVyRWRnZT1LVXQsR1V0LmV4Y2hhbmdlRWRnZXM9WlV0O3ZhciBRVXQ9TVV0LHRqdD1QVXQsZWp0PWpVdCxuanQ9UVV0O2Z1bmN0aW9uIGlqdCh0KXtlanQodCl9dmFyIHJqdD1GVnQsb2p0PUZWdCxhanQ9aVV0O2Z1bmN0aW9uIHNqdCh0LGUsbixpLHIsbyxhKXt2YXIgcz10LmNoaWxkcmVuKGEpO2lmKHMubGVuZ3RoKXt2YXIgbD1hanQuYWRkQm9yZGVyTm9kZSh0LCJfYnQiKSxjPWFqdC5hZGRCb3JkZXJOb2RlKHQsIl9iYiIpLHU9dC5ub2RlKGEpO3Quc2V0UGFyZW50KGwsYSksdS5ib3JkZXJUb3A9bCx0LnNldFBhcmVudChjLGEpLHUuYm9yZGVyQm90dG9tPWMsb2p0LmZvckVhY2gocywoZnVuY3Rpb24ocyl7c2p0KHQsZSxuLGkscixvLHMpO3ZhciB1PXQubm9kZShzKSxoPXUuYm9yZGVyVG9wP3UuYm9yZGVyVG9wOnMsZD11LmJvcmRlckJvdHRvbT91LmJvcmRlckJvdHRvbTpzLHA9dS5ib3JkZXJUb3A/aToyKmksZj1oIT09ZD8xOnItb1thXSsxO3Quc2V0RWRnZShsLGgse3dlaWdodDpwLG1pbmxlbjpmLG5lc3RpbmdFZGdlOiEwfSksdC5zZXRFZGdlKGQsYyx7d2VpZ2h0OnAsbWlubGVuOmYsbmVzdGluZ0VkZ2U6ITB9KX0pKSx0LnBhcmVudChhKXx8dC5zZXRFZGdlKGUsbCx7d2VpZ2h0OjAsbWlubGVuOnIrb1thXX0pfWVsc2UgYSE9PWUmJnQuc2V0RWRnZShlLGEse3dlaWdodDowLG1pbmxlbjpufSl9dmFyIGxqdD1GVnQsY2p0PWlVdDtmdW5jdGlvbiB1anQodCxlLG4saSxyLG8pe3ZhciBhPXJbZV1bby0xXSxzPWNqdC5hZGREdW1teU5vZGUodCwiYm9yZGVyIix7d2lkdGg6MCxoZWlnaHQ6MCxyYW5rOm8sYm9yZGVyVHlwZTplfSxuKTtyW2VdW29dPXMsdC5zZXRQYXJlbnQocyxpKSxhJiZ0LnNldEVkZ2UoYSxzLHt3ZWlnaHQ6MX0pfXZhciBoanQ9RlZ0O2Z1bmN0aW9uIGRqdCh0KXtoanQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe3BqdCh0Lm5vZGUoZSkpfSkpLGhqdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24oZSl7cGp0KHQuZWRnZShlKSl9KSl9ZnVuY3Rpb24gcGp0KHQpe3ZhciBlPXQud2lkdGg7dC53aWR0aD10LmhlaWdodCx0LmhlaWdodD1lfWZ1bmN0aW9uIGZqdCh0KXt0Lnk9LXQueX1mdW5jdGlvbiBtanQodCl7dmFyIGU9dC54O3QueD10LnksdC55PWV9dmFyIGdqdD1GVnQsX2p0PUZWdDtmdW5jdGlvbiB5anQodCxlLG4pe2Zvcih2YXIgaT1fanQuemlwT2JqZWN0KG4sX2p0Lm1hcChuLChmdW5jdGlvbih0LGUpe3JldHVybiBlfSkpKSxyPV9qdC5mbGF0dGVuKF9qdC5tYXAoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIF9qdC5zb3J0QnkoX2p0Lm1hcCh0Lm91dEVkZ2VzKGUpLChmdW5jdGlvbihlKXtyZXR1cm57cG9zOmlbZS53XSx3ZWlnaHQ6dC5lZGdlKGUpLndlaWdodH19KSksInBvcyIpfSkpLCEwKSxvPTE7bzxuLmxlbmd0aDspbzw8PTE7dmFyIGE9MipvLTE7by09MTt2YXIgcz1fanQubWFwKG5ldyBBcnJheShhKSwoZnVuY3Rpb24oKXtyZXR1cm4gMH0pKSxsPTA7cmV0dXJuIF9qdC5mb3JFYWNoKHIuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC5wb3MrbztzW2VdKz10LndlaWdodDtmb3IodmFyIG49MDtlPjA7KWUlMiYmKG4rPXNbZSsxXSksc1tlPWUtMT4+MV0rPXQud2VpZ2h0O2wrPXQud2VpZ2h0Km59KSkpLGx9dmFyIHZqdD1GVnQsYmp0PUZWdCx4anQ9RlZ0LHdqdD1pVXQ7ZnVuY3Rpb24gU2p0KHQsZSxuKXtmb3IodmFyIGk7ZS5sZW5ndGgmJihpPXhqdC5sYXN0KGUpKS5pPD1uOyllLnBvcCgpLHQucHVzaChpLnZzKSxuKys7cmV0dXJuIG59dmFyIE1qdD1GVnQsRWp0PUZWdCxUanQ9b0h0LkdyYXBoLENqdD1GVnQsQWp0PUZWdCxranQ9ZnVuY3Rpb24gTGp0KHQsZSl7Zm9yKHZhciBuPTAsaT0xO2k8ZS5sZW5ndGg7KytpKW4rPXlqdCh0LGVbaS0xXSxlW2ldKTtyZXR1cm4gbn0sUGp0PWZ1bmN0aW9uIHQoZSxuLGkscil7dmFyIG89ZS5jaGlsZHJlbihuKSxhPWUubm9kZShuKSxzPWE/YS5ib3JkZXJMZWZ0OnZvaWQgMCxsPWE/YS5ib3JkZXJSaWdodDp2b2lkIDAsYz17fTtzJiYobz1NanQuZmlsdGVyKG8sKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09cyYmdCE9PWx9KSkpO3ZhciB1PShmdW5jdGlvbiBoKHQsZSl7cmV0dXJuIHZqdC5tYXAoZSwoZnVuY3Rpb24oZSl7dmFyIG49dC5pbkVkZ2VzKGUpO2lmKG4ubGVuZ3RoKXt2YXIgaT12anQucmVkdWNlKG4sKGZ1bmN0aW9uKGUsbil7dmFyIGk9dC5lZGdlKG4pLHI9dC5ub2RlKG4udik7cmV0dXJue3N1bTplLnN1bStpLndlaWdodCpyLm9yZGVyLHdlaWdodDplLndlaWdodCtpLndlaWdodH19KSx7c3VtOjAsd2VpZ2h0OjB9KTtyZXR1cm57djplLGJhcnljZW50ZXI6aS5zdW0vaS53ZWlnaHQsd2VpZ2h0Omkud2VpZ2h0fX1yZXR1cm57djplfX0pKX0pKGUsbyk7TWp0LmZvckVhY2godSwoZnVuY3Rpb24obil7aWYoZS5jaGlsZHJlbihuLnYpLmxlbmd0aCl7dmFyIG89dChlLG4udixpLHIpO2Nbbi52XT1vLE1qdC5oYXMobywiYmFyeWNlbnRlciIpJiYoZnVuY3Rpb24gYSh0LGUpe01qdC5pc1VuZGVmaW5lZCh0LmJhcnljZW50ZXIpPyh0LmJhcnljZW50ZXI9ZS5iYXJ5Y2VudGVyLHQud2VpZ2h0PWUud2VpZ2h0KToodC5iYXJ5Y2VudGVyPSh0LmJhcnljZW50ZXIqdC53ZWlnaHQrZS5iYXJ5Y2VudGVyKmUud2VpZ2h0KS8odC53ZWlnaHQrZS53ZWlnaHQpLHQud2VpZ2h0Kz1lLndlaWdodCl9KShuLG8pfX0pKTt2YXIgZD0oZnVuY3Rpb24gcCh0LGUpe3ZhciBuPXt9O3JldHVybiBianQuZm9yRWFjaCh0LChmdW5jdGlvbih0LGUpe3ZhciBpPW5bdC52XT17aW5kZWdyZWU6MCxpbjpbXSxvdXQ6W10sdnM6W3Qudl0saTplfTtianQuaXNVbmRlZmluZWQodC5iYXJ5Y2VudGVyKXx8KGkuYmFyeWNlbnRlcj10LmJhcnljZW50ZXIsaS53ZWlnaHQ9dC53ZWlnaHQpfSkpLGJqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIGU9blt0LnZdLGk9blt0LnddO2JqdC5pc1VuZGVmaW5lZChlKXx8Ymp0LmlzVW5kZWZpbmVkKGkpfHwoaS5pbmRlZ3JlZSsrLGUub3V0LnB1c2goblt0LnddKSl9KSksKGZ1bmN0aW9uIGkodCl7dmFyIGU9W107ZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5tZXJnZWR8fChianQuaXNVbmRlZmluZWQoZS5iYXJ5Y2VudGVyKXx8Ymp0LmlzVW5kZWZpbmVkKHQuYmFyeWNlbnRlcil8fGUuYmFyeWNlbnRlcj49dC5iYXJ5Y2VudGVyKSYmKGZ1bmN0aW9uIG4odCxlKXt2YXIgbj0wLGk9MDt0LndlaWdodCYmKG4rPXQuYmFyeWNlbnRlcip0LndlaWdodCxpKz10LndlaWdodCksZS53ZWlnaHQmJihuKz1lLmJhcnljZW50ZXIqZS53ZWlnaHQsaSs9ZS53ZWlnaHQpLHQudnM9ZS52cy5jb25jYXQodC52cyksdC5iYXJ5Y2VudGVyPW4vaSx0LndlaWdodD1pLHQuaT1NYXRoLm1pbihlLmksdC5pKSxlLm1lcmdlZD0hMH0pKHQsZSl9fWZ1bmN0aW9uIGkoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe24uaW4ucHVzaChlKSwwPT0tLW4uaW5kZWdyZWUmJnQucHVzaChuKX19Zm9yKDt0Lmxlbmd0aDspe3ZhciByPXQucG9wKCk7ZS5wdXNoKHIpLGJqdC5mb3JFYWNoKHIuaW4ucmV2ZXJzZSgpLG4ocikpLGJqdC5mb3JFYWNoKHIub3V0LGkocikpfXJldHVybiBianQubWFwKGJqdC5maWx0ZXIoZSwoZnVuY3Rpb24odCl7cmV0dXJuIXQubWVyZ2VkfSkpLChmdW5jdGlvbih0KXtyZXR1cm4gYmp0LnBpY2sodCxbInZzIiwiaSIsImJhcnljZW50ZXIiLCJ3ZWlnaHQiXSl9KSl9KShianQuZmlsdGVyKG4sKGZ1bmN0aW9uKHQpe3JldHVybiF0LmluZGVncmVlfSkpKX0pKHUsaSk7IShmdW5jdGlvbiBmKHQsZSl7TWp0LmZvckVhY2godCwoZnVuY3Rpb24odCl7dC52cz1NanQuZmxhdHRlbih0LnZzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF0/ZVt0XS52czp0fSkpLCEwKX0pKX0pKGQsYyk7dmFyIG09KGZ1bmN0aW9uIGcodCxlKXt2YXIgbj13anQucGFydGl0aW9uKHQsKGZ1bmN0aW9uKHQpe3JldHVybiB4anQuaGFzKHQsImJhcnljZW50ZXIiKX0pKSxpPW4ubGhzLHI9eGp0LnNvcnRCeShuLnJocywoZnVuY3Rpb24odCl7cmV0dXJuLXQuaX0pKSxvPVtdLGE9MCxzPTAsbD0wO2kuc29ydCgoZnVuY3Rpb24gYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gZS5iYXJ5Y2VudGVyPG4uYmFyeWNlbnRlcj8tMTplLmJhcnljZW50ZXI+bi5iYXJ5Y2VudGVyPzE6dD9uLmktZS5pOmUuaS1uLml9fSkoISFlKSksbD1TanQobyxyLGwpLHhqdC5mb3JFYWNoKGksKGZ1bmN0aW9uKHQpe2wrPXQudnMubGVuZ3RoLG8ucHVzaCh0LnZzKSxhKz10LmJhcnljZW50ZXIqdC53ZWlnaHQscys9dC53ZWlnaHQsbD1TanQobyxyLGwpfSkpO3ZhciB1PXt2czp4anQuZmxhdHRlbihvLCEwKX07cmV0dXJuIHMmJih1LmJhcnljZW50ZXI9YS9zLHUud2VpZ2h0PXMpLHV9KShkLHIpO2lmKHMmJihtLnZzPU1qdC5mbGF0dGVuKFtzLG0udnMsbF0sITApLGUucHJlZGVjZXNzb3JzKHMpLmxlbmd0aCkpe3ZhciBfPWUubm9kZShlLnByZWRlY2Vzc29ycyhzKVswXSkseT1lLm5vZGUoZS5wcmVkZWNlc3NvcnMobClbMF0pO01qdC5oYXMobSwiYmFyeWNlbnRlciIpfHwobS5iYXJ5Y2VudGVyPTAsbS53ZWlnaHQ9MCksbS5iYXJ5Y2VudGVyPShtLmJhcnljZW50ZXIqbS53ZWlnaHQrXy5vcmRlcit5Lm9yZGVyKS8obS53ZWlnaHQrMiksbS53ZWlnaHQrPTJ9cmV0dXJuIG19LE5qdD1vSHQuR3JhcGgsSWp0PWlVdDtmdW5jdGlvbiBSanQodCxlLG4pe3JldHVybiBBanQubWFwKGUsKGZ1bmN0aW9uKGUpe3JldHVybihmdW5jdGlvbiBpKHQsZSxuKXt2YXIgaT0oZnVuY3Rpb24gcih0KXtmb3IodmFyIGU7dC5oYXNOb2RlKGU9RWp0LnVuaXF1ZUlkKCJfcm9vdCIpKTspO3JldHVybiBlfSkodCksbz1uZXcgVGp0KHtjb21wb3VuZDohMH0pLnNldEdyYXBoKHtyb290Oml9KS5zZXREZWZhdWx0Tm9kZUxhYmVsKChmdW5jdGlvbihlKXtyZXR1cm4gdC5ub2RlKGUpfSkpO3JldHVybiBFanQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKHIpe3ZhciBhPXQubm9kZShyKSxzPXQucGFyZW50KHIpOyhhLnJhbms9PT1lfHxhLm1pblJhbms8PWUmJmU8PWEubWF4UmFuaykmJihvLnNldE5vZGUociksby5zZXRQYXJlbnQocixzfHxpKSxFanQuZm9yRWFjaCh0W25dKHIpLChmdW5jdGlvbihlKXt2YXIgbj1lLnY9PT1yP2UudzplLnYsaT1vLmVkZ2UobixyKSxhPUVqdC5pc1VuZGVmaW5lZChpKT8wOmkud2VpZ2h0O28uc2V0RWRnZShuLHIse3dlaWdodDp0LmVkZ2UoZSkud2VpZ2h0K2F9KX0pKSxFanQuaGFzKGEsIm1pblJhbmsiKSYmby5zZXROb2RlKHIse2JvcmRlckxlZnQ6YS5ib3JkZXJMZWZ0W2VdLGJvcmRlclJpZ2h0OmEuYm9yZGVyUmlnaHRbZV19KSl9KSksb30pKHQsZSxuKX0pKX1mdW5jdGlvbiBPanQodCxlKXt2YXIgbj1uZXcgTmp0O0FqdC5mb3JFYWNoKHQsKGZ1bmN0aW9uKHQpe3ZhciBpPXQuZ3JhcGgoKS5yb290LHI9UGp0KHQsaSxuLGUpO0FqdC5mb3JFYWNoKHIudnMsKGZ1bmN0aW9uKGUsbil7dC5ub2RlKGUpLm9yZGVyPW59KSksKGZ1bmN0aW9uIG8odCxlLG4pe3ZhciBpLHI9e307Q2p0LmZvckVhY2gobiwoZnVuY3Rpb24obil7Zm9yKHZhciBvLGEscz10LnBhcmVudChuKTtzOyl7aWYoKG89dC5wYXJlbnQocykpPyhhPXJbb10scltvXT1zKTooYT1pLGk9cyksYSYmYSE9PXMpcmV0dXJuIHZvaWQgZS5zZXRFZGdlKGEscyk7cz1vfX0pKX0pKHQsbixyLnZzKX0pKX1mdW5jdGlvbiB6anQodCxlKXtBanQuZm9yRWFjaChlLChmdW5jdGlvbihlKXtBanQuZm9yRWFjaChlLChmdW5jdGlvbihlLG4pe3Qubm9kZShlKS5vcmRlcj1ufSkpfSkpfXZhciBEanQ9RlZ0LEJqdD1vSHQuR3JhcGgsSGp0PWlVdDtmdW5jdGlvbiBGanQodCxlLG4pe2lmKGU+bil7dmFyIGk9ZTtlPW4sbj1pfXZhciByPXRbZV07cnx8KHRbZV09cj17fSkscltuXT0hMH1mdW5jdGlvbiBWanQodCxlLG4pe2lmKGU+bil7dmFyIGk9ZTtlPW4sbj1pfXJldHVybiBEanQuaGFzKHRbZV0sbil9dmFyIFVqdD1GVnQsamp0PWlVdCxHanQ9RlZ0LFdqdD1KVnQscWp0PWJVdCxZanQ9aVV0Lm5vcm1hbGl6ZVJhbmtzLFhqdD1pVXQucmVtb3ZlRW1wdHlSYW5rcywkanQ9ZnVuY3Rpb24gS2p0KHQpe3ZhciBlPWFqdC5hZGREdW1teU5vZGUodCwicm9vdCIse30sIl9yb290Iiksbj0oZnVuY3Rpb24gaSh0KXt2YXIgZT17fTtmdW5jdGlvbiBuKGkscil7dmFyIG89dC5jaGlsZHJlbihpKTtvJiZvLmxlbmd0aCYmb2p0LmZvckVhY2gobywoZnVuY3Rpb24odCl7bih0LHIrMSl9KSksZVtpXT1yfXJldHVybiBvanQuZm9yRWFjaCh0LmNoaWxkcmVuKCksKGZ1bmN0aW9uKHQpe24odCwxKX0pKSxlfSkodCkscj1vanQubWF4KG9qdC52YWx1ZXMobikpLTEsbz0yKnIrMTt0LmdyYXBoKCkubmVzdGluZ1Jvb3Q9ZSxvanQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3QuZWRnZShlKS5taW5sZW4qPW99KSk7dmFyIGE9KGZ1bmN0aW9uIHModCl7cmV0dXJuIG9qdC5yZWR1Y2UodC5lZGdlcygpLChmdW5jdGlvbihlLG4pe3JldHVybiBlK3QuZWRnZShuKS53ZWlnaHR9KSwwKX0pKHQpKzE7b2p0LmZvckVhY2godC5jaGlsZHJlbigpLChmdW5jdGlvbihpKXtzanQodCxlLG8sYSxyLG4saSl9KSksdC5ncmFwaCgpLm5vZGVSYW5rRmFjdG9yPW99LFpqdD1pVXQsSmp0PW9IdC5HcmFwaCxRanQ9WyJub2Rlc2VwIiwiZWRnZXNlcCIsInJhbmtzZXAiLCJtYXJnaW54IiwibWFyZ2lueSJdLHRHdD17cmFua3NlcDo1MCxlZGdlc2VwOjIwLG5vZGVzZXA6NTAscmFua2RpcjoidGIifSxlR3Q9WyJhY3ljbGljZXIiLCJyYW5rZXIiLCJyYW5rZGlyIiwiYWxpZ24iXSxuR3Q9WyJ3aWR0aCIsImhlaWdodCJdLGlHdD17d2lkdGg6MCxoZWlnaHQ6MH0sckd0PVsibWlubGVuIiwid2VpZ2h0Iiwid2lkdGgiLCJoZWlnaHQiLCJsYWJlbG9mZnNldCJdLG9HdD17bWlubGVuOjEsd2VpZ2h0OjEsd2lkdGg6MCxoZWlnaHQ6MCxsYWJlbG9mZnNldDoxMCxsYWJlbHBvczoiciJ9LGFHdD1bImxhYmVscG9zIl07ZnVuY3Rpb24gc0d0KHQsZSl7cmV0dXJuIEdqdC5tYXBWYWx1ZXMoR2p0LnBpY2sodCxlKSxOdW1iZXIpfWZ1bmN0aW9uIGxHdCh0KXt2YXIgZT17fTtyZXR1cm4gR2p0LmZvckVhY2godCwoZnVuY3Rpb24odCxuKXtlW24udG9Mb3dlckNhc2UoKV09dH0pKSxlfXZhciBjR3QsdUd0LGhHdD1GVnQsZEd0PWlVdCxwR3Q9b0h0LkdyYXBoLGZHdD17Z3JhcGhsaWI6b0h0LGxheW91dDpmdW5jdGlvbiBtR3QodCxlKXt2YXIgbj1lJiZlLmRlYnVnVGltaW5nP1pqdC50aW1lOlpqdC5ub3RpbWU7bigibGF5b3V0IiwoZnVuY3Rpb24oKXt2YXIgZT1uKCIgIGJ1aWxkTGF5b3V0R3JhcGgiLChmdW5jdGlvbigpe3JldHVybihmdW5jdGlvbiBlKHQpe3ZhciBlPW5ldyBKanQoe211bHRpZ3JhcGg6ITAsY29tcG91bmQ6ITB9KSxuPWxHdCh0LmdyYXBoKCkpO3JldHVybiBlLnNldEdyYXBoKEdqdC5tZXJnZSh7fSx0R3Qsc0d0KG4sUWp0KSxHanQucGljayhuLGVHdCkpKSxHanQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKG4pe3ZhciBpPWxHdCh0Lm5vZGUobikpO2Uuc2V0Tm9kZShuLEdqdC5kZWZhdWx0cyhzR3QoaSxuR3QpLGlHdCkpLGUuc2V0UGFyZW50KG4sdC5wYXJlbnQobikpfSkpLEdqdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24obil7dmFyIGk9bEd0KHQuZWRnZShuKSk7ZS5zZXRFZGdlKG4sR2p0Lm1lcmdlKHt9LG9HdCxzR3QoaSxyR3QpLEdqdC5waWNrKGksYUd0KSkpfSkpLGV9KSh0KX0pKTtuKCIgIHJ1bkxheW91dCIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUsbil7bigiICAgIG1ha2VTcGFjZUZvckVkZ2VMYWJlbHMiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1lLmdyYXBoKCk7bi5yYW5rc2VwLz0yLEdqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIGk9ZS5lZGdlKHQpO2kubWlubGVuKj0yLCJjIiE9PWkubGFiZWxwb3MudG9Mb3dlckNhc2UoKSYmKCJUQiI9PT1uLnJhbmtkaXJ8fCJCVCI9PT1uLnJhbmtkaXI/aS53aWR0aCs9aS5sYWJlbG9mZnNldDppLmhlaWdodCs9aS5sYWJlbG9mZnNldCl9KSl9KShlKX0pKSxuKCIgICAgcmVtb3ZlU2VsZkVkZ2VzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7R2p0LmZvckVhY2goZS5lZGdlcygpLChmdW5jdGlvbih0KXtpZih0LnY9PT10Lncpe3ZhciBuPWUubm9kZSh0LnYpO24uc2VsZkVkZ2VzfHwobi5zZWxmRWRnZXM9W10pLG4uc2VsZkVkZ2VzLnB1c2goe2U6dCxsYWJlbDplLmVkZ2UodCl9KSxlLnJlbW92ZUVkZ2UodCl9fSkpfSkoZSl9KSksbigiICAgIGFjeWNsaWMiLChmdW5jdGlvbigpe1dqdC5ydW4oZSl9KSksbigiICAgIG5lc3RpbmdHcmFwaC5ydW4iLChmdW5jdGlvbigpeyRqdChlKX0pKSxuKCIgICAgcmFuayIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe3N3aXRjaChlLmdyYXBoKCkucmFua2VyKXtjYXNlIm5ldHdvcmstc2ltcGxleCI6aWp0KGUpO2JyZWFrO2Nhc2UidGlnaHQtdHJlZSI6IShmdW5jdGlvbiBuKHQpe1FVdCh0KSx0anQodCl9KShlKTticmVhaztjYXNlImxvbmdlc3QtcGF0aCI6bmp0KGUpO2JyZWFrO2RlZmF1bHQ6aWp0KGUpfX0pKFpqdC5hc05vbkNvbXBvdW5kR3JhcGgoZSkpfSkpLG4oIiAgICBpbmplY3RFZGdlTGFiZWxQcm94aWVzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7R2p0LmZvckVhY2goZS5lZGdlcygpLChmdW5jdGlvbih0KXt2YXIgbj1lLmVkZ2UodCk7aWYobi53aWR0aCYmbi5oZWlnaHQpe3ZhciBpPWUubm9kZSh0LnYpLHI9ZS5ub2RlKHQudyk7Wmp0LmFkZER1bW15Tm9kZShlLCJlZGdlLXByb3h5Iix7cmFuazooci5yYW5rLWkucmFuaykvMitpLnJhbmssZTp0fSwiX2VwIil9fSkpfSkoZSl9KSksbigiICAgIHJlbW92ZUVtcHR5UmFua3MiLChmdW5jdGlvbigpe1hqdChlKX0pKSxuKCIgICAgbmVzdGluZ0dyYXBoLmNsZWFudXAiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1lLmdyYXBoKCk7ZS5yZW1vdmVOb2RlKG4ubmVzdGluZ1Jvb3QpLGRlbGV0ZSBuLm5lc3RpbmdSb290LG9qdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7ZS5lZGdlKHQpLm5lc3RpbmdFZGdlJiZlLnJlbW92ZUVkZ2UodCl9KSl9KShlKX0pKSxuKCIgICAgbm9ybWFsaXplUmFua3MiLChmdW5jdGlvbigpe1lqdChlKX0pKSxuKCIgICAgYXNzaWduUmFua01pbk1heCIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe3ZhciBuPTA7R2p0LmZvckVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXt2YXIgaT1lLm5vZGUodCk7aS5ib3JkZXJUb3AmJihpLm1pblJhbms9ZS5ub2RlKGkuYm9yZGVyVG9wKS5yYW5rLGkubWF4UmFuaz1lLm5vZGUoaS5ib3JkZXJCb3R0b20pLnJhbmssbj1HanQubWF4KG4saS5tYXhSYW5rKSl9KSksZS5ncmFwaCgpLm1heFJhbms9bn0pKGUpfSkpLG4oIiAgICByZW1vdmVFZGdlTGFiZWxQcm94aWVzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7R2p0LmZvckVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXt2YXIgbj1lLm5vZGUodCk7ImVkZ2UtcHJveHkiPT09bi5kdW1teSYmKGUuZWRnZShuLmUpLmxhYmVsUmFuaz1uLnJhbmssZS5yZW1vdmVOb2RlKHQpKX0pKX0pKGUpfSkpLG4oIiAgICBub3JtYWxpemUucnVuIiwoZnVuY3Rpb24oKXtxanQucnVuKGUpfSkpLG4oIiAgICBwYXJlbnREdW1teUNoYWlucyIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe3ZhciBuPShmdW5jdGlvbiBpKHQpe3ZhciBlPXt9LG49MDtyZXR1cm4gcmp0LmZvckVhY2godC5jaGlsZHJlbigpLChmdW5jdGlvbiBpKHIpe3ZhciBvPW47cmp0LmZvckVhY2godC5jaGlsZHJlbihyKSxpKSxlW3JdPXtsb3c6byxsaW06bisrfX0pKSxlfSkoZSk7cmp0LmZvckVhY2goZS5ncmFwaCgpLmR1bW15Q2hhaW5zLChmdW5jdGlvbih0KXtmb3IodmFyIGk9ZS5ub2RlKHQpLHI9aS5lZGdlT2JqLG89KGZ1bmN0aW9uIGEodCxlLG4saSl7dmFyIHIsbyxhPVtdLHM9W10sbD1NYXRoLm1pbihlW25dLmxvdyxlW2ldLmxvdyksYz1NYXRoLm1heChlW25dLmxpbSxlW2ldLmxpbSk7cj1uO2Rve3I9dC5wYXJlbnQociksYS5wdXNoKHIpfXdoaWxlKHImJihlW3JdLmxvdz5sfHxjPmVbcl0ubGltKSk7Zm9yKG89cixyPWk7KHI9dC5wYXJlbnQocikpIT09bzspcy5wdXNoKHIpO3JldHVybntwYXRoOmEuY29uY2F0KHMucmV2ZXJzZSgpKSxsY2E6b319KShlLG4sci52LHIudykscz1vLnBhdGgsbD1vLmxjYSxjPTAsdT1zW2NdLGg9ITA7dCE9PXIudzspe2lmKGk9ZS5ub2RlKHQpLGgpe2Zvcig7KHU9c1tjXSkhPT1sJiZlLm5vZGUodSkubWF4UmFuazxpLnJhbms7KWMrKzt1PT09bCYmKGg9ITEpfWlmKCFoKXtmb3IoO2M8cy5sZW5ndGgtMSYmZS5ub2RlKHU9c1tjKzFdKS5taW5SYW5rPD1pLnJhbms7KWMrKzt1PXNbY119ZS5zZXRQYXJlbnQodCx1KSx0PWUuc3VjY2Vzc29ycyh0KVswXX19KSl9KShlKX0pKSxuKCIgICAgYWRkQm9yZGVyU2VnbWVudHMiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXtsanQuZm9yRWFjaChlLmNoaWxkcmVuKCksKGZ1bmN0aW9uIHQobil7dmFyIGk9ZS5jaGlsZHJlbihuKSxyPWUubm9kZShuKTtpZihpLmxlbmd0aCYmbGp0LmZvckVhY2goaSx0KSxsanQuaGFzKHIsIm1pblJhbmsiKSl7ci5ib3JkZXJMZWZ0PVtdLHIuYm9yZGVyUmlnaHQ9W107Zm9yKHZhciBvPXIubWluUmFuayxhPXIubWF4UmFuaysxO288YTsrK28pdWp0KGUsImJvcmRlckxlZnQiLCJfYmwiLG4scixvKSx1anQoZSwiYm9yZGVyUmlnaHQiLCJfYnIiLG4scixvKX19KSl9KShlKX0pKSxuKCIgICAgb3JkZXIiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1JanQubWF4UmFuayhlKSxpPVJqdChlLEFqdC5yYW5nZSgxLG4rMSksImluRWRnZXMiKSxyPVJqdChlLEFqdC5yYW5nZShuLTEsLTEsLTEpLCJvdXRFZGdlcyIpLG89KGZ1bmN0aW9uIGEodCl7dmFyIGU9e30sbj1nanQuZmlsdGVyKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7cmV0dXJuIXQuY2hpbGRyZW4oZSkubGVuZ3RofSkpLGk9Z2p0Lm1heChnanQubWFwKG4sKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5vZGUoZSkucmFua30pKSkscj1nanQubWFwKGdqdC5yYW5nZShpKzEpLChmdW5jdGlvbigpe3JldHVybltdfSkpLG89Z2p0LnNvcnRCeShuLChmdW5jdGlvbihlKXtyZXR1cm4gdC5ub2RlKGUpLnJhbmt9KSk7cmV0dXJuIGdqdC5mb3JFYWNoKG8sKGZ1bmN0aW9uIG4oaSl7aWYoIWdqdC5oYXMoZSxpKSl7ZVtpXT0hMDt2YXIgbz10Lm5vZGUoaSk7cltvLnJhbmtdLnB1c2goaSksZ2p0LmZvckVhY2godC5zdWNjZXNzb3JzKGkpLG4pfX0pKSxyfSkoZSk7emp0KGUsbyk7Zm9yKHZhciBzLGw9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGM9MCx1PTA7dTw0OysrYywrK3Upe09qdChjJTI/aTpyLGMlND49Miksbz1JanQuYnVpbGRMYXllck1hdHJpeChlKTt2YXIgaD1ranQoZSxvKTtoPGwmJih1PTAscz1BanQuY2xvbmVEZWVwKG8pLGw9aCl9emp0KGUscyl9KShlKX0pKSxuKCIgICAgaW5zZXJ0U2VsZkVkZ2VzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7dmFyIG49Wmp0LmJ1aWxkTGF5ZXJNYXRyaXgoZSk7R2p0LmZvckVhY2gobiwoZnVuY3Rpb24odCl7dmFyIG49MDtHanQuZm9yRWFjaCh0LChmdW5jdGlvbih0LGkpe3ZhciByPWUubm9kZSh0KTtyLm9yZGVyPWkrbixHanQuZm9yRWFjaChyLnNlbGZFZGdlcywoZnVuY3Rpb24odCl7Wmp0LmFkZER1bW15Tm9kZShlLCJzZWxmZWRnZSIse3dpZHRoOnQubGFiZWwud2lkdGgsaGVpZ2h0OnQubGFiZWwuaGVpZ2h0LHJhbms6ci5yYW5rLG9yZGVyOmkrICsrbixlOnQuZSxsYWJlbDp0LmxhYmVsfSwiX3NlIil9KSksZGVsZXRlIHIuc2VsZkVkZ2VzfSkpfSkpfSkoZSl9KSksbigiICAgIGFkanVzdENvb3JkaW5hdGVTeXN0ZW0iLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1lLmdyYXBoKCkucmFua2Rpci50b0xvd2VyQ2FzZSgpOyJsciIhPT1uJiYicmwiIT09bnx8ZGp0KGUpfSkoZSl9KSksbigiICAgIHBvc2l0aW9uIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7KGZ1bmN0aW9uIG4odCl7dmFyIGU9amp0LmJ1aWxkTGF5ZXJNYXRyaXgodCksbj10LmdyYXBoKCkucmFua3NlcCxpPTA7VWp0LmZvckVhY2goZSwoZnVuY3Rpb24oZSl7dmFyIHI9VWp0Lm1heChVanQubWFwKGUsKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5vZGUoZSkuaGVpZ2h0fSkpKTtVanQuZm9yRWFjaChlLChmdW5jdGlvbihlKXt0Lm5vZGUoZSkueT1pK3IvMn0pKSxpKz1yK259KSl9KShlPWpqdC5hc05vbkNvbXBvdW5kR3JhcGgoZSkpLFVqdC5mb3JFYWNoKChmdW5jdGlvbiBpKHQpe3ZhciBlLG49SGp0LmJ1aWxkTGF5ZXJNYXRyaXgodCksaT1EanQubWVyZ2UoKGZ1bmN0aW9uIHIodCxlKXt2YXIgbj17fTtyZXR1cm4gRGp0LnJlZHVjZShlLChmdW5jdGlvbiBpKGUscil7dmFyIG89MCxhPTAscz1lLmxlbmd0aCxsPURqdC5sYXN0KHIpO3JldHVybiBEanQuZm9yRWFjaChyLChmdW5jdGlvbihlLGkpe3ZhciBjPShmdW5jdGlvbiB1KHQsZSl7aWYodC5ub2RlKGUpLmR1bW15KXJldHVybiBEanQuZmluZCh0LnByZWRlY2Vzc29ycyhlKSwoZnVuY3Rpb24oZSl7cmV0dXJuIHQubm9kZShlKS5kdW1teX0pKX0pKHQsZSksaD1jP3Qubm9kZShjKS5vcmRlcjpzOyhjfHxlPT09bCkmJihEanQuZm9yRWFjaChyLnNsaWNlKGEsaSsxKSwoZnVuY3Rpb24oZSl7RGp0LmZvckVhY2godC5wcmVkZWNlc3NvcnMoZSksKGZ1bmN0aW9uKGkpe3ZhciByPXQubm9kZShpKSxhPXIub3JkZXI7IShhPG98fGg8YSl8fHIuZHVtbXkmJnQubm9kZShlKS5kdW1teXx8Rmp0KG4saSxlKX0pKX0pKSxhPWkrMSxvPWgpfSkpLHJ9KSksbn0pKHQsbiksKGZ1bmN0aW9uIG8odCxlKXt2YXIgbj17fTtmdW5jdGlvbiBpKGUsaSxyLG8sYSl7dmFyIHM7RGp0LmZvckVhY2goRGp0LnJhbmdlKGksciksKGZ1bmN0aW9uKGkpe3Qubm9kZShzPWVbaV0pLmR1bW15JiZEanQuZm9yRWFjaCh0LnByZWRlY2Vzc29ycyhzKSwoZnVuY3Rpb24oZSl7dmFyIGk9dC5ub2RlKGUpO2kuZHVtbXkmJihpLm9yZGVyPG98fGkub3JkZXI+YSkmJkZqdChuLGUscyl9KSl9KSl9cmV0dXJuIERqdC5yZWR1Y2UoZSwoZnVuY3Rpb24gcihlLG4pe3ZhciByLG89LTEsYT0wO3JldHVybiBEanQuZm9yRWFjaChuLChmdW5jdGlvbihzLGwpe2lmKCJib3JkZXIiPT09dC5ub2RlKHMpLmR1bW15KXt2YXIgYz10LnByZWRlY2Vzc29ycyhzKTtjLmxlbmd0aCYmKHI9dC5ub2RlKGNbMF0pLm9yZGVyLGkobixhLGwsbyxyKSxhPWwsbz1yKX1pKG4sYSxuLmxlbmd0aCxyLGUubGVuZ3RoKX0pKSxufSkpLG59KSh0LG4pKSxhPXt9O0RqdC5mb3JFYWNoKFsidSIsImQiXSwoZnVuY3Rpb24ocil7ZT0idSI9PT1yP246RGp0LnZhbHVlcyhuKS5yZXZlcnNlKCksRGp0LmZvckVhY2goWyJsIiwiciJdLChmdW5jdGlvbihuKXsiciI9PT1uJiYoZT1EanQubWFwKGUsKGZ1bmN0aW9uKHQpe3JldHVybiBEanQudmFsdWVzKHQpLnJldmVyc2UoKX0pKSk7dmFyIG89KCJ1Ij09PXI/dC5wcmVkZWNlc3NvcnM6dC5zdWNjZXNzb3JzKS5iaW5kKHQpLHM9KGZ1bmN0aW9uIGwodCxlLG4saSl7dmFyIHI9e30sbz17fSxhPXt9O3JldHVybiBEanQuZm9yRWFjaChlLChmdW5jdGlvbih0KXtEanQuZm9yRWFjaCh0LChmdW5jdGlvbih0LGUpe3JbdF09dCxvW3RdPXQsYVt0XT1lfSkpfSkpLERqdC5mb3JFYWNoKGUsKGZ1bmN0aW9uKHQpe3ZhciBlPS0xO0RqdC5mb3JFYWNoKHQsKGZ1bmN0aW9uKHQpe3ZhciBzPWkodCk7aWYocy5sZW5ndGgpZm9yKHZhciBsPSgocz1EanQuc29ydEJ5KHMsKGZ1bmN0aW9uKHQpe3JldHVybiBhW3RdfSkpKS5sZW5ndGgtMSkvMixjPU1hdGguZmxvb3IobCksdT1NYXRoLmNlaWwobCk7Yzw9dTsrK2Mpe3ZhciBoPXNbY107b1t0XT09PXQmJmU8YVtoXSYmIVZqdChuLHQsaCkmJihvW2hdPXQsb1t0XT1yW3RdPXJbaF0sZT1hW2hdKX19KSl9KSkse3Jvb3Q6cixhbGlnbjpvfX0pKDAsZSxpLG8pLGM9KGZ1bmN0aW9uIHUodCxlLG4saSxyKXt2YXIgbz17fSxhPShmdW5jdGlvbiBzKHQsZSxuLGkpe3ZhciByPW5ldyBCanQsbz10LmdyYXBoKCksYT0oZnVuY3Rpb24gcyh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkscixvKXt2YXIgYSxzPWkubm9kZShyKSxsPWkubm9kZShvKSxjPTA7aWYoYys9cy53aWR0aC8yLERqdC5oYXMocywibGFiZWxwb3MiKSlzd2l0Y2gocy5sYWJlbHBvcy50b0xvd2VyQ2FzZSgpKXtjYXNlImwiOmE9LXMud2lkdGgvMjticmVhaztjYXNlInIiOmE9cy53aWR0aC8yfWlmKGEmJihjKz1uP2E6LWEpLGE9MCxjKz0ocy5kdW1teT9lOnQpLzIsYys9KGwuZHVtbXk/ZTp0KS8yLGMrPWwud2lkdGgvMixEanQuaGFzKGwsImxhYmVscG9zIikpc3dpdGNoKGwubGFiZWxwb3MudG9Mb3dlckNhc2UoKSl7Y2FzZSJsIjphPWwud2lkdGgvMjticmVhaztjYXNlInIiOmE9LWwud2lkdGgvMn1yZXR1cm4gYSYmKGMrPW4/YTotYSksYT0wLGN9fSkoby5ub2Rlc2VwLG8uZWRnZXNlcCxpKTtyZXR1cm4gRGp0LmZvckVhY2goZSwoZnVuY3Rpb24oZSl7dmFyIGk7RGp0LmZvckVhY2goZSwoZnVuY3Rpb24oZSl7dmFyIG89bltlXTtpZihyLnNldE5vZGUobyksaSl7dmFyIHM9bltpXSxsPXIuZWRnZShzLG8pO3Iuc2V0RWRnZShzLG8sTWF0aC5tYXgoYSh0LGUsaSksbHx8MCkpfWk9ZX0pKX0pKSxyfSkodCxlLG4sciksbD1yPyJib3JkZXJMZWZ0IjoiYm9yZGVyUmlnaHQiO2Z1bmN0aW9uIGModCxlKXtmb3IodmFyIG49YS5ub2RlcygpLGk9bi5wb3AoKSxyPXt9O2k7KXJbaV0/dChpKToocltpXT0hMCxuLnB1c2goaSksbj1uLmNvbmNhdChlKGkpKSksaT1uLnBvcCgpfXJldHVybiBjKChmdW5jdGlvbiB1KHQpe29bdF09YS5pbkVkZ2VzKHQpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5tYXgodCxvW2Uudl0rYS5lZGdlKGUpKX0pLDApfSksYS5wcmVkZWNlc3NvcnMuYmluZChhKSksYygoZnVuY3Rpb24gaChlKXt2YXIgbj1hLm91dEVkZ2VzKGUpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5taW4odCxvW2Uud10tYS5lZGdlKGUpKX0pLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksaT10Lm5vZGUoZSk7biE9PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSYmaS5ib3JkZXJUeXBlIT09bCYmKG9bZV09TWF0aC5tYXgob1tlXSxuKSl9KSxhLnN1Y2Nlc3NvcnMuYmluZChhKSksRGp0LmZvckVhY2goaSwoZnVuY3Rpb24odCl7b1t0XT1vW25bdF1dfSkpLG99KSh0LGUscy5yb290LHMuYWxpZ24sInIiPT09bik7InIiPT09biYmKGM9RGp0Lm1hcFZhbHVlcyhjLChmdW5jdGlvbih0KXtyZXR1cm4tdH0pKSksYVtyK25dPWN9KSl9KSk7dmFyIHM9KGZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gRGp0Lm1pbkJ5KERqdC52YWx1ZXMoZSksKGZ1bmN0aW9uKGUpe3ZhciBuPU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxpPU51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gRGp0LmZvckluKGUsKGZ1bmN0aW9uKGUscil7dmFyIG89KGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gdC5ub2RlKGUpLndpZHRofSkodCxyKS8yO249TWF0aC5tYXgoZStvLG4pLGk9TWF0aC5taW4oZS1vLGkpfSkpLG4taX0pKX0pKHQsYSk7cmV0dXJuKGZ1bmN0aW9uIGModCxlKXt2YXIgbj1EanQudmFsdWVzKGUpLGk9RGp0Lm1pbihuKSxyPURqdC5tYXgobik7RGp0LmZvckVhY2goWyJ1IiwiZCJdLChmdW5jdGlvbihuKXtEanQuZm9yRWFjaChbImwiLCJyIl0sKGZ1bmN0aW9uKG8pe3ZhciBhLHM9bitvLGw9dFtzXTtpZihsIT09ZSl7dmFyIGM9RGp0LnZhbHVlcyhsKTsoYT0ibCI9PT1vP2ktRGp0Lm1pbihjKTpyLURqdC5tYXgoYykpJiYodFtzXT1EanQubWFwVmFsdWVzKGwsKGZ1bmN0aW9uKHQpe3JldHVybiB0K2F9KSkpfX0pKX0pKX0pKGEscyksKGZ1bmN0aW9uIHUodCxlKXtyZXR1cm4gRGp0Lm1hcFZhbHVlcyh0LnVsLChmdW5jdGlvbihuLGkpe2lmKGUpcmV0dXJuIHRbZS50b0xvd2VyQ2FzZSgpXVtpXTt2YXIgcj1EanQuc29ydEJ5KERqdC5tYXAodCxpKSk7cmV0dXJuKHJbMV0rclsyXSkvMn0pKX0pKGEsdC5ncmFwaCgpLmFsaWduKX0pKGUpLChmdW5jdGlvbih0LG4pe2Uubm9kZShuKS54PXR9KSl9KShlKX0pKSxuKCIgICAgcG9zaXRpb25TZWxmRWRnZXMiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXtHanQuZm9yRWFjaChlLm5vZGVzKCksKGZ1bmN0aW9uKHQpe3ZhciBuPWUubm9kZSh0KTtpZigic2VsZmVkZ2UiPT09bi5kdW1teSl7dmFyIGk9ZS5ub2RlKG4uZS52KSxyPWkueCtpLndpZHRoLzIsbz1pLnksYT1uLngtcixzPWkuaGVpZ2h0LzI7ZS5zZXRFZGdlKG4uZSxuLmxhYmVsKSxlLnJlbW92ZU5vZGUodCksbi5sYWJlbC5wb2ludHM9W3t4OnIrMiphLzMseTpvLXN9LHt4OnIrNSphLzYseTpvLXN9LHt4OnIrYSx5Om99LHt4OnIrNSphLzYseTpvK3N9LHt4OnIrMiphLzMseTpvK3N9XSxuLmxhYmVsLng9bi54LG4ubGFiZWwueT1uLnl9fSkpfSkoZSl9KSksbigiICAgIHJlbW92ZUJvcmRlck5vZGVzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7R2p0LmZvckVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXtpZihlLmNoaWxkcmVuKHQpLmxlbmd0aCl7dmFyIG49ZS5ub2RlKHQpLGk9ZS5ub2RlKG4uYm9yZGVyVG9wKSxyPWUubm9kZShuLmJvcmRlckJvdHRvbSksbz1lLm5vZGUoR2p0Lmxhc3Qobi5ib3JkZXJMZWZ0KSksYT1lLm5vZGUoR2p0Lmxhc3Qobi5ib3JkZXJSaWdodCkpO24ud2lkdGg9TWF0aC5hYnMoYS54LW8ueCksbi5oZWlnaHQ9TWF0aC5hYnMoci55LWkueSksbi54PW8ueCtuLndpZHRoLzIsbi55PWkueStuLmhlaWdodC8yfX0pKSxHanQuZm9yRWFjaChlLm5vZGVzKCksKGZ1bmN0aW9uKHQpeyJib3JkZXIiPT09ZS5ub2RlKHQpLmR1bW15JiZlLnJlbW92ZU5vZGUodCl9KSl9KShlKX0pKSxuKCIgICAgbm9ybWFsaXplLnVuZG8iLChmdW5jdGlvbigpe3FqdC51bmRvKGUpfSkpLG4oIiAgICBmaXh1cEVkZ2VMYWJlbENvb3JkcyIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe0dqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG49ZS5lZGdlKHQpO2lmKEdqdC5oYXMobiwieCIpKXN3aXRjaCgibCIhPT1uLmxhYmVscG9zJiYiciIhPT1uLmxhYmVscG9zfHwobi53aWR0aC09bi5sYWJlbG9mZnNldCksbi5sYWJlbHBvcyl7Y2FzZSJsIjpuLngtPW4ud2lkdGgvMituLmxhYmVsb2Zmc2V0O2JyZWFrO2Nhc2UiciI6bi54Kz1uLndpZHRoLzIrbi5sYWJlbG9mZnNldH19KSl9KShlKX0pKSxuKCIgICAgdW5kb0Nvb3JkaW5hdGVTeXN0ZW0iLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1lLmdyYXBoKCkucmFua2Rpci50b0xvd2VyQ2FzZSgpOyJidCIhPT1uJiYicmwiIT09bnx8KGZ1bmN0aW9uIGkodCl7aGp0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihlKXtmanQodC5ub2RlKGUpKX0pKSxoanQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3ZhciBuPXQuZWRnZShlKTtoanQuZm9yRWFjaChuLnBvaW50cyxmanQpLGhqdC5oYXMobiwieSIpJiZmanQobil9KSl9KShlKSwibHIiIT09biYmInJsIiE9PW58fCgoZnVuY3Rpb24gcih0KXtoanQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe21qdCh0Lm5vZGUoZSkpfSkpLGhqdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24oZSl7dmFyIG49dC5lZGdlKGUpO2hqdC5mb3JFYWNoKG4ucG9pbnRzLG1qdCksaGp0LmhhcyhuLCJ4IikmJm1qdChuKX0pKX0pKGUpLGRqdChlKSl9KShlKX0pKSxuKCIgICAgdHJhbnNsYXRlR3JhcGgiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksaT0wLHI9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLG89MCxhPWUuZ3JhcGgoKSxzPWEubWFyZ2lueHx8MCxsPWEubWFyZ2lueXx8MDtmdW5jdGlvbiBjKHQpe3ZhciBlPXQueCxhPXQueSxzPXQud2lkdGgsbD10LmhlaWdodDtuPU1hdGgubWluKG4sZS1zLzIpLGk9TWF0aC5tYXgoaSxlK3MvMikscj1NYXRoLm1pbihyLGEtbC8yKSxvPU1hdGgubWF4KG8sYStsLzIpfUdqdC5mb3JFYWNoKGUubm9kZXMoKSwoZnVuY3Rpb24odCl7YyhlLm5vZGUodCkpfSkpLEdqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG49ZS5lZGdlKHQpO0dqdC5oYXMobiwieCIpJiZjKG4pfSkpLG4tPXMsci09bCxHanQuZm9yRWFjaChlLm5vZGVzKCksKGZ1bmN0aW9uKHQpe3ZhciBpPWUubm9kZSh0KTtpLngtPW4saS55LT1yfSkpLEdqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIGk9ZS5lZGdlKHQpO0dqdC5mb3JFYWNoKGkucG9pbnRzLChmdW5jdGlvbih0KXt0LngtPW4sdC55LT1yfSkpLEdqdC5oYXMoaSwieCIpJiYoaS54LT1uKSxHanQuaGFzKGksInkiKSYmKGkueS09cil9KSksYS53aWR0aD1pLW4rcyxhLmhlaWdodD1vLXIrbH0pKGUpfSkpLG4oIiAgICBhc3NpZ25Ob2RlSW50ZXJzZWN0cyIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe0dqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG4saSxyPWUuZWRnZSh0KSxvPWUubm9kZSh0LnYpLGE9ZS5ub2RlKHQudyk7ci5wb2ludHM/KG49ci5wb2ludHNbMF0saT1yLnBvaW50c1tyLnBvaW50cy5sZW5ndGgtMV0pOihyLnBvaW50cz1bXSxuPWEsaT1vKSxyLnBvaW50cy51bnNoaWZ0KFpqdC5pbnRlcnNlY3RSZWN0KG8sbikpLHIucG9pbnRzLnB1c2goWmp0LmludGVyc2VjdFJlY3QoYSxpKSl9KSl9KShlKX0pKSxuKCIgICAgcmV2ZXJzZVBvaW50cyIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe0dqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG49ZS5lZGdlKHQpO24ucmV2ZXJzZWQmJm4ucG9pbnRzLnJldmVyc2UoKX0pKX0pKGUpfSkpLG4oIiAgICBhY3ljbGljLnVuZG8iLChmdW5jdGlvbigpe1dqdC51bmRvKGUpfSkpfSkoZSxuKX0pKSxuKCIgIHVwZGF0ZUlucHV0R3JhcGgiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gbih0LGUpe0dqdC5mb3JFYWNoKHQubm9kZXMoKSwoZnVuY3Rpb24obil7dmFyIGk9dC5ub2RlKG4pLHI9ZS5ub2RlKG4pO2kmJihpLng9ci54LGkueT1yLnksZS5jaGlsZHJlbihuKS5sZW5ndGgmJihpLndpZHRoPXIud2lkdGgsaS5oZWlnaHQ9ci5oZWlnaHQpKX0pKSxHanQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKG4pe3ZhciBpPXQuZWRnZShuKSxyPWUuZWRnZShuKTtpLnBvaW50cz1yLnBvaW50cyxHanQuaGFzKHIsIngiKSYmKGkueD1yLngsaS55PXIueSl9KSksdC5ncmFwaCgpLndpZHRoPWUuZ3JhcGgoKS53aWR0aCx0LmdyYXBoKCkuaGVpZ2h0PWUuZ3JhcGgoKS5oZWlnaHR9KSh0LGUpfSkpfSkpfSxkZWJ1Zzp7ZGVidWdPcmRlcmluZzpmdW5jdGlvbiBnR3QodCl7dmFyIGU9ZEd0LmJ1aWxkTGF5ZXJNYXRyaXgodCksbj1uZXcgcEd0KHtjb21wb3VuZDohMCxtdWx0aWdyYXBoOiEwfSkuc2V0R3JhcGgoe30pO3JldHVybiBoR3QuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe24uc2V0Tm9kZShlLHtsYWJlbDplfSksbi5zZXRQYXJlbnQoZSwibGF5ZXIiK3Qubm9kZShlKS5yYW5rKX0pKSxoR3QuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKHQpe24uc2V0RWRnZSh0LnYsdC53LHt9LHQubmFtZSl9KSksaEd0LmZvckVhY2goZSwoZnVuY3Rpb24odCxlKXtuLnNldE5vZGUoImxheWVyIitlLHtyYW5rOiJzYW1lIn0pLGhHdC5yZWR1Y2UodCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zZXRFZGdlKHQsZSx7c3R5bGU6ImludmlzIn0pLGV9KSl9KSksbn19LHV0aWw6e3RpbWU6aVV0LnRpbWUsbm90aW1lOmlVdC5ub3RpbWV9LHZlcnNpb246IjAuOC41In07IShmdW5jdGlvbih0KXt0LkZFVENIX1BCVFhUX0JZVEVTPSJGRVRDSF9QQlRYVF9CWVRFUyIsdC5GRVRDSF9QQlRYVF9CWVRFU19GUk9NX0ZJTEVTWVNURU09IkZFVENIX1BCVFhUX0JZVEVTX0ZST01fRklMRVNZU1RFTSIsdC5GRVRDSF9QQlRYVF9CWVRFU19GUk9NX1NFUlZFUj0iRkVUQ0hfUEJUWFRfQllURVNfRlJPTV9TRVJWRVIiLHQuUEFSU0VfUEJUWFRfSU5UT19PQkpFQ1Q9IlBBUlNFX1BCVFhUX0lOVE9fT0JKRUNUIix0LkZFVENIX01FVEFEQVRBX1BCVFhUX0JZVEVTPSJGRVRDSF9NRVRBREFUQV9QQlRYVF9CWVRFUyIsdC5QQVJTRV9NRVRBREFUQV9QQlRYVF9JTlRPX09CSkVDVD0iUEFSU0VfTUVUQURBVEFfUEJUWFRfSU5UT19PQkpFQ1QiLHQuTk9STUFMSVpJTkdfTkFNRVM9Ik5PUk1BTElaSU5HX05BTUVTIix0LkJVSUxEX1NMSU1fR1JBUEg9IkJVSUxEX1NMSU1fR1JBUEgiLHQuSElFUkFSQ0hZX0FERF9OT0RFUz0iSElFUkFSQ0hZX0FERF9OT0RFUyIsdC5ISUVSQVJDSFlfREVURUNUX1NFUklFUz0iSElFUkFSQ0hZX0RFVEVDVF9TRVJJRVMiLHQuSElFUkFSQ0hZX0FERF9FREdFUz0iSElFUkFSQ0hZX0FERF9FREdFUyIsdC5ISUVSQVJDSFlfRklORF9TSU1JTEFSX1NVQkdSQVBIUz0iSElFUkFSQ0hZX0ZJTkRfU0lNSUxBUl9TVUJHUkFQSFMiLHQuUkVOREVSX0JVSUxEX0hJRVJBUkNIWT0iUkVOREVSX0JVSUxEX0hJRVJBUkNIWSIsdC5SRU5ERVJfU0NFTkVfTEFZT1VUPSJSRU5ERVJfU0NFTkVfTEFZT1VUIix0LlJFTkRFUl9TQ0VORV9CVUlMRF9TQ0VORT0iUkVOREVSX1NDRU5FX0JVSUxEX1NDRU5FIix0LkdSQVBIX0xPQURfU1VDQ0VFREVEPSJHUkFQSF9MT0FEX1NVQ0NFRURFRCIsdC5HUkFQSF9MT0FEX0ZBSUxFRD0iR1JBUEhfTE9BRF9GQUlMRUQifSkoY0d0fHwoY0d0PXt9KSksKGZ1bmN0aW9uKHQpe3QuTk9ERV9FWFBBTlNJT05fVE9HR0xFRD0iTk9ERV9FWFBBTlNJT05fVE9HR0xFRCIsdC5OT0RFX1NFQVJDSF9SRVNVTFRfRk9DVVNFRD0iTk9ERV9TRUFSQ0hfUkVTVUxUX0ZPQ1VTRUQiLHQuTk9ERV9BVVhJTElBUllfRVhUUkFDVElPTl9DSEFOR0VEPSJOT0RFX0FVWElMSUFSWV9FWFRSQUNUSU9OX0NIQU5HRUQiLHQuR1JBUEhfVFlQRV9DSEFOR0VEPSJHUkFQSF9UWVBFX0NIQU5HRUQiLHQuVFJBQ0VfSU5QVVRfTU9ERV9UT0dHTEVEPSJUUkFDRV9JTlBVVF9NT0RFX1RPR0dMRUQiLHQuTk9ERV9DT0xPUl9NT0RFX0NIQU5HRUQ9Ik5PREVfQ09MT1JfTU9ERV9DSEFOR0VEIix0LlVQTE9BREVEX0dSQVBIX0ZST01fRklMRVNZU1RFTT0iVVBMT0FERURfR1JBUEhfRlJPTV9GSUxFU1lTVEVNIn0pKHVHdHx8KHVHdD17fSkpO2NvbnN0IF9HdD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY0d0KSx1R3QpO3ZhciB5R3Q7IShmdW5jdGlvbih0KXt0Lk9QX0dSQVBIPSJvcF9ncmFwaCIsdC5DT05DRVBUVUFMX0dSQVBIPSJjb25jZXB0dWFsX2dyYXBoIix0LlBST0ZJTEU9InByb2ZpbGUifSkoeUd0fHwoeUd0PXt9KSk7bGV0IHZHdD17Tm9kZTp7Q09OVEFJTkVSOiJub2RlcyIsR1JPVVA6Im5vZGUiLFNIQVBFOiJub2Rlc2hhcGUiLENPTE9SX1RBUkdFVDoibm9kZWNvbG9ydGFyZ2V0IixMQUJFTDoibm9kZWxhYmVsIixCVVRUT05fQ09OVEFJTkVSOiJidXR0b25jb250YWluZXIiLEJVVFRPTl9DSVJDTEU6ImJ1dHRvbmNpcmNsZSIsRVhQQU5EX0JVVFRPTjoiZXhwYW5kYnV0dG9uIixDT0xMQVBTRV9CVVRUT046ImNvbGxhcHNlYnV0dG9uIn0sRWRnZTp7Q09OVEFJTkVSOiJlZGdlcyIsR1JPVVA6ImVkZ2UiLExJTkU6ImVkZ2VsaW5lIixSRUZFUkVOQ0VfRURHRToicmVmZXJlbmNlZWRnZSIsUkVGX0xJTkU6InJlZmxpbmUiLFNFTEVDVEFCTEU6InNlbGVjdGFibGVlZGdlIixTRUxFQ1RFRDoic2VsZWN0ZWRlZGdlIixTVFJVQ1RVUkFMOiJzdHJ1Y3R1cmFsIn0sQW5ub3RhdGlvbjp7T1VUQk9YOiJvdXQtYW5ub3RhdGlvbnMiLElOQk9YOiJpbi1hbm5vdGF0aW9ucyIsR1JPVVA6ImFubm90YXRpb24iLE5PREU6ImFubm90YXRpb24tbm9kZSIsRURHRToiYW5ub3RhdGlvbi1lZGdlIixDT05UUk9MX0VER0U6ImFubm90YXRpb24tY29udHJvbC1lZGdlIixMQUJFTDoiYW5ub3RhdGlvbi1sYWJlbCIsRUxMSVBTSVM6ImFubm90YXRpb24tZWxsaXBzaXMifSxTY2VuZTp7R1JPVVA6InNjZW5lIixDT1JFOiJjb3JlIixGVU5DVElPTl9MSUJSQVJZOiJmdW5jdGlvbi1saWJyYXJ5IixJTkVYVFJBQ1Q6ImluLWV4dHJhY3QiLE9VVEVYVFJBQ1Q6Im91dC1leHRyYWN0In0sU3Vic2NlbmU6e0dST1VQOiJzdWJzY2VuZSJ9LE9QTk9ERToib3AiLE1FVEFOT0RFOiJtZXRhIixTRVJJRVNOT0RFOiJzZXJpZXMiLEJSSURHRU5PREU6ImJyaWRnZSIsRUxMSVBTSVNOT0RFOiJlbGxpcHNpcyJ9O2NvbnN0IGJHdD0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciO2Z1bmN0aW9uIHhHdCh0LGUsbil7bGV0IGk9dC5ub2RlKCkuY2hpbGROb2Rlcztmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyl7bGV0IHI9aVt0XTtpZihyLnRhZ05hbWU9PT1lKWlmKG4gaW5zdGFuY2VvZiBBcnJheSl7bGV0IHQ9ITA7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspdD10JiZyLmNsYXNzTGlzdC5jb250YWlucyhuW2VdKTtpZih0KXJldHVybiBTdShyKX1lbHNlIGlmKCFufHxyLmNsYXNzTGlzdC5jb250YWlucyhuKSlyZXR1cm4gU3Uocil9cmV0dXJuIFN1KG51bGwpfWZ1bmN0aW9uIHdHdCh0LGUsbixpKXtsZXQgcj14R3QodCxlLG4pO2lmKCFyLmVtcHR5KCkpcmV0dXJuIHI7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZSk7aWYobiBpbnN0YW5jZW9mIEFycmF5KWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKW8uY2xhc3NMaXN0LmFkZChuW3RdKTtlbHNlIG8uY2xhc3NMaXN0LmFkZChuKTtyZXR1cm4gaT90Lm5vZGUoKS5pbnNlcnRCZWZvcmUobyxpKTp0Lm5vZGUoKS5hcHBlbmRDaGlsZChvKSxTdShvKS5kYXR1bSh0LmRhdHVtKCkpfWNsYXNzIFNHdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnRvdGFsQnl0ZXM9MCx0aGlzLm91dHB1dFNpemU9dH1hZGRFeGVjdXRpb25UaW1lKHQsZSl7dGhpcy5zdGFydFRpbWU9bnVsbCE9dGhpcy5zdGFydFRpbWU/TWF0aC5taW4odGhpcy5zdGFydFRpbWUsdCk6dCx0aGlzLmVuZFRpbWU9bnVsbCE9dGhpcy5lbmRUaW1lP01hdGgubWF4KHRoaXMuZW5kVGltZSxlKTplfWFkZEJ5dGVzQWxsb2NhdGlvbih0KXt0aGlzLnRvdGFsQnl0ZXM9bnVsbCE9dGhpcy50b3RhbEJ5dGVzP01hdGgubWF4KHRoaXMudG90YWxCeXRlcyx0KTp0fWNvbWJpbmUodCl7bnVsbCE9dC50b3RhbEJ5dGVzJiYodGhpcy50b3RhbEJ5dGVzKz10LnRvdGFsQnl0ZXMpLG51bGwhPXQuZ2V0VG90YWxNaWNyb3MoKSYmdGhpcy5hZGRFeGVjdXRpb25UaW1lKHQuc3RhcnRUaW1lLHQuZW5kVGltZSl9Z2V0VG90YWxNaWNyb3MoKXtyZXR1cm4gbnVsbD09dGhpcy5zdGFydFRpbWV8fG51bGw9PXRoaXMuZW5kVGltZT9udWxsOnRoaXMuZW5kVGltZS10aGlzLnN0YXJ0VGltZX19Y29uc3QgTUd0PS43NSxFR3Q9ckUoKS5leHBvbmVudCguMykuZG9tYWluKFsxLDVlNl0pLnJhbmdlKFtNR3QsMTJdKS5jbGFtcCghMCk7ZnVuY3Rpb24gVEd0KHQpeyEoZnVuY3Rpb24gZSh0KXt0Lmhhc093blByb3BlcnR5KCJ0aW1pbmdJZCIpfSkodCl9ZnVuY3Rpb24gQ0d0KHQsZSxuKXtsZXQgaT1EYXRlLm5vdygpLHI9ZSgpO2NvbnN0IG89RGF0ZS5ub3coKS1pO3JldHVybiBjb25zb2xlLmxvZyh0LCI6IixvLCJtcyIpLG4mJlRHdCh7dGltaW5nSWQ6bixldmVudFZhbHVlOm99KSxyfWZ1bmN0aW9uIEFHdCh0KXtyZXR1cm57c2V0TWVzc2FnZTpmdW5jdGlvbihlKXt0LnNldCgicHJvZ3Jlc3MiLHt2YWx1ZTp0LnByb2dyZXNzLnZhbHVlLG1zZzplfSl9LHVwZGF0ZVByb2dyZXNzOmZ1bmN0aW9uKGUpe3Quc2V0KCJwcm9ncmVzcyIse3ZhbHVlOnQucHJvZ3Jlc3MudmFsdWUrZSxtc2c6dC5wcm9ncmVzcy5tc2d9KX0scmVwb3J0RXJyb3I6ZnVuY3Rpb24oZSxuKXtjb25zb2xlLmVycm9yKG4uc3RhY2spLHQuc2V0KCJwcm9ncmVzcyIse3ZhbHVlOnQucHJvZ3Jlc3MudmFsdWUsbXNnOmUsZXJyb3I6ITB9KX19fWZ1bmN0aW9uIGtHdCh0LGUsbil7cmV0dXJue3NldE1lc3NhZ2U6ZnVuY3Rpb24oZSl7dC5zZXRNZXNzYWdlKG4rIjogIitlKX0sdXBkYXRlUHJvZ3Jlc3M6ZnVuY3Rpb24obil7dC51cGRhdGVQcm9ncmVzcyhuKmUvMTAwKX0scmVwb3J0RXJyb3I6ZnVuY3Rpb24oZSxpKXt0LnJlcG9ydEVycm9yKG4rIjogIitlLGkpfX19ZnVuY3Rpb24gTEd0KHQsZSxuLGkscil7cmV0dXJuIG5ldyBQcm9taXNlKCgobyxhKT0+e2kuc2V0TWVzc2FnZSh0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3RyeXtsZXQgYT1DR3QodCxuLHIpO2kudXBkYXRlUHJvZ3Jlc3MoZSksbyhhKX1jYXRjaChlKXtpLnJlcG9ydEVycm9yKCJGYWlsZWQgIit0LGUpfX0pLDIwKX0pKX1mdW5jdGlvbiBQR3QodCxlLG4saSxyKXtyZXR1cm4gbmV3IFByb21pc2UoKChvLGEpPT57bGV0IHM9ZnVuY3Rpb24oZSl7aS5yZXBvcnRFcnJvcigiRmFpbGVkICIrdCxlKSxhKGUpfTtpLnNldE1lc3NhZ2UodCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0cnl7bGV0IGE9RGF0ZS5ub3coKTtuKCkudGhlbigoZnVuY3Rpb24obil7Y29uc3Qgcz1EYXRlLm5vdygpLWE7Y29uc29sZS5sb2codCwiOiIscywibXMiKSxpLnVwZGF0ZVByb2dyZXNzKGUpLFRHdCh7dGltaW5nSWQ6cixldmVudFZhbHVlOnN9KSxvKG4pfSkpLmNhdGNoKHMpfWNhdGNoKHQpe3ModCl9fSksMjApfSkpfWNvbnN0IE5HdD1be3N5bWJvbDoiQiJ9LHtzeW1ib2w6IktCIixudW1Vbml0czoxMDI0fSx7c3ltYm9sOiJNQiIsbnVtVW5pdHM6MTAyNH0se3N5bWJvbDoiR0IiLG51bVVuaXRzOjEwMjR9LHtzeW1ib2w6IlRCIixudW1Vbml0czoxMDI0fSx7c3ltYm9sOiJQQiIsbnVtVW5pdHM6MTAyNH1dLElHdD1be3N5bWJvbDoiwrVzIn0se3N5bWJvbDoibXMiLG51bVVuaXRzOjFlM30se3N5bWJvbDoicyIsbnVtVW5pdHM6MWUzfSx7c3ltYm9sOiJtaW4iLG51bVVuaXRzOjYwfSx7c3ltYm9sOiJociIsbnVtVW5pdHM6NjB9LHtzeW1ib2w6ImRheXMiLG51bVVuaXRzOjI0fV07ZnVuY3Rpb24gUkd0KHQsZSxuPTApe3JldHVybiBuKzE8ZS5sZW5ndGgmJnQ+PWVbbisxXS5udW1Vbml0cz9SR3QodC9lW24rMV0ubnVtVW5pdHMsZSxuKzEpOk51bWJlcih0LnRvUHJlY2lzaW9uKDMpKSsiICIrZVtuXS5zeW1ib2x9ZnVuY3Rpb24gT0d0KHQpe3JldHVybiEoIXR8fCEodC50b3RhbEJ5dGVzPjB8fHQuZ2V0VG90YWxNaWNyb3MoKT4wfHx0Lm91dHB1dFNpemUpKX1mdW5jdGlvbiB6R3QodCl7aWYodC5sZW5ndGg8MilyZXR1cm4gdDtsZXQgZT0wLG49MCxpPVNlLmV4cG9ydHMubWluKFNlLmV4cG9ydHMubWFwKHQsKHQ9PnQubGVuZ3RoKSkpO2Zvcig7Oyl7ZSsrO2xldCByPVNlLmV4cG9ydHMubWFwKHQsKHQ9PnQuc3Vic3RyaW5nKDAsZSkpKTtpZighci5ldmVyeSgoKHQsZSk9PjA9PT1lfHx0PT09cltlLTFdKSkpYnJlYWs7aWYoZT49aSlyZXR1cm4gdDtuPWV9cmV0dXJuIFNlLmV4cG9ydHMubWFwKHQsKHQ9PnQuc3Vic3RyaW5nKG4pKSl9Y29uc3QgREd0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7ZnVuY3Rpb24gQkd0KHQsZSl7cmV0dXJuIERHdC5mb250PWAke2V9cHggUm9ib3RvLCBzYW5zLXNlcmlmYCxER3QubWVhc3VyZVRleHQodCkud2lkdGh9Y29uc3QgSEd0PSIvIixGR3Q9Il9fcm9vdF9fIixWR3Q9Il9fZnVuY3Rpb25fbGlicmFyeV9fIjt2YXIgVUd0LGpHdCxHR3QsV0d0OyEoZnVuY3Rpb24odCl7dFt0LkZVTEw9MF09IkZVTEwiLHRbdC5FTUJFRERFRD0xXT0iRU1CRURERUQiLHRbdC5NRVRBPTJdPSJNRVRBIix0W3QuU0VSSUVTPTNdPSJTRVJJRVMiLHRbdC5DT1JFPTRdPSJDT1JFIix0W3QuU0hBRE9XPTVdPSJTSEFET1ciLHRbdC5CUklER0U9Nl09IkJSSURHRSIsdFt0LkVER0U9N109IkVER0UifSkoVUd0fHwoVUd0PXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5NRVRBPTBdPSJNRVRBIix0W3QuT1A9MV09Ik9QIix0W3QuU0VSSUVTPTJdPSJTRVJJRVMiLHRbdC5CUklER0U9M109IkJSSURHRSIsdFt0LkVMTElQU0lTPTRdPSJFTExJUFNJUyJ9KShqR3R8fChqR3Q9e30pKSwoZnVuY3Rpb24odCl7dFt0LklOQ0xVREU9MF09IklOQ0xVREUiLHRbdC5FWENMVURFPTFdPSJFWENMVURFIix0W3QuVU5TUEVDSUZJRUQ9Ml09IlVOU1BFQ0lGSUVEIn0pKEdHdHx8KEdHdD17fSkpLChmdW5jdGlvbih0KXt0W3QuR1JPVVA9MF09IkdST1VQIix0W3QuVU5HUk9VUD0xXT0iVU5HUk9VUCJ9KShXR3R8fChXR3Q9e30pKTtjbGFzcyBxR3R7Y29uc3RydWN0b3IoKXt0aGlzLm5vZGVzPXt9LHRoaXMuZWRnZXM9W119fWNsYXNzIFlHdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnR5cGU9akd0LkVMTElQU0lTLHRoaXMuaXNHcm91cE5vZGU9ITEsdGhpcy5jYXJkaW5hbGl0eT0xLHRoaXMucGFyZW50Tm9kZT1udWxsLHRoaXMuc3RhdHM9bnVsbCx0aGlzLnNldE51bU1vcmVOb2Rlcyh0KSx0aGlzLmluY2x1ZGU9R0d0LlVOU1BFQ0lGSUVEfXNldE51bU1vcmVOb2Rlcyh0KXt0aGlzLm51bU1vcmVOb2Rlcz10LHRoaXMubmFtZT0iLi4uICIrdCsiIG1vcmUifX1jbGFzcyBYR3R7Y29uc3RydWN0b3IodCl7dGhpcy5vcD10Lm9wLHRoaXMubmFtZT10Lm5hbWUsdGhpcy5kZXZpY2U9dC5kZXZpY2UsdGhpcy5hdHRyPXQuYXR0cix0aGlzLmlucHV0cz0oZnVuY3Rpb24gZSh0KXtjb25zdCBlPVtdO2xldCBuPW51bGw7Zm9yKGxldCBpIG9mIHR8fFtdKXtjb25zdCB0PWkuc3RhcnRzV2l0aCgiXiIpO3QmJihpPWkuc3Vic3RyaW5nKDEpKTtsZXQgcj1pLG89IjAiO2NvbnN0IGE9aS5pbmNsdWRlcygiOiIpJiZpLm1hdGNoKG5XdCk7YSYmKHI9YVsxXSxvPWFbMl0pLG4hPT1yJiYobj1yLGUucHVzaCh7bmFtZTpyLG91dHB1dFRlbnNvcktleTpvLGlzQ29udHJvbERlcGVuZGVuY3k6dH0pKX1yZXR1cm4gZX0pKHQuaW5wdXQpLHRoaXMub3V0cHV0U2hhcGVzPShmdW5jdGlvbiBuKHQpe2lmKCF0KXJldHVybiBudWxsO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXR7a2V5Om4sdmFsdWU6aX09dFtlXTtpZigiX291dHB1dF9zaGFwZXMiPT09bil7aWYoIWkubGlzdHx8IWkubGlzdC5zaGFwZSlyZXR1cm4gbnVsbDtsZXQgbj1pLmxpc3Quc2hhcGUubWFwKCh0PT50LnVua25vd25fcmFuaz9udWxsOm51bGw9PXQuZGltfHwxPT09dC5kaW0ubGVuZ3RoJiZudWxsPT10LmRpbVswXS5zaXplP1tdOnQuZGltLm1hcCgodD0+dC5zaXplKSkpKTtyZXR1cm4gdC5zcGxpY2UoZSwxKSxufX1yZXR1cm4gbnVsbH0pKHQuYXR0ciksdGhpcy54bGFDbHVzdGVyPShmdW5jdGlvbiBpKHQpe2lmKCF0KXJldHVybiBudWxsO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKCJfWGxhQ2x1c3RlciI9PT10W2VdLmtleSlyZXR1cm4gdFtlXS52YWx1ZS5zfHxudWxsO3JldHVybiBudWxsfSkodC5hdHRyKSx0aGlzLmNvbXBhdGlibGU9ITEsdGhpcy50eXBlPWpHdC5PUCx0aGlzLmlzR3JvdXBOb2RlPSExLHRoaXMuY2FyZGluYWxpdHk9MSx0aGlzLmluRW1iZWRkaW5ncz1bXSx0aGlzLm91dEVtYmVkZGluZ3M9W10sdGhpcy5wYXJlbnROb2RlPW51bGwsdGhpcy5pbmNsdWRlPUdHdC5VTlNQRUNJRklFRCx0aGlzLm93bmluZ1Nlcmllcz1udWxsfX1mdW5jdGlvbiAkR3QodCxlPXt9KXtyZXR1cm4gbmV3IEtHdCh0LGUpfWNsYXNzIEtHdHtjb25zdHJ1Y3Rvcih0LGU9e30pe3RoaXMubmFtZT10LHRoaXMudHlwZT1qR3QuTUVUQSx0aGlzLmRlcHRoPTEsdGhpcy5pc0dyb3VwTm9kZT0hMCx0aGlzLmNhcmRpbmFsaXR5PTAsdGhpcy5tZXRhZ3JhcGg9b1d0KHQsVUd0Lk1FVEEsZSksdGhpcy5icmlkZ2VncmFwaD1udWxsLHRoaXMub3BIaXN0b2dyYW09e30sdGhpcy5kZXZpY2VIaXN0b2dyYW09e30sdGhpcy54bGFDbHVzdGVySGlzdG9ncmFtPXt9LHRoaXMuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbT17Y29tcGF0aWJsZTowLGluY29tcGF0aWJsZTowfSx0aGlzLnRlbXBsYXRlSWQ9bnVsbCx0aGlzLnBhcmVudE5vZGU9bnVsbCx0aGlzLmhhc05vbkNvbnRyb2xFZGdlcz0hMSx0aGlzLmluY2x1ZGU9R0d0LlVOU1BFQ0lGSUVELHRoaXMuYXNzb2NpYXRlZEZ1bmN0aW9uPSIifWdldEZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5tZXRhZ3JhcGgubm9kZSh0aGlzLm1ldGFncmFwaC5ub2RlcygpWzBdKX1nZXRSb290T3AoKXtsZXQgdD10aGlzLm5hbWUuc3BsaXQoIi8iKTtyZXR1cm4gdGhpcy5tZXRhZ3JhcGgubm9kZSh0aGlzLm5hbWUrIi8oIit0W3QubGVuZ3RoLTFdKyIpIil9bGVhdmVzKCl7bGV0IHQsZT1bXSxuPVt0aGlzXTtmb3IoO24ubGVuZ3RoOyl7bGV0IGk9bi5zaGlmdCgpO2kuaXNHcm91cE5vZGU/KHQ9aS5tZXRhZ3JhcGgsU2UuZXhwb3J0cy5lYWNoKHQubm9kZXMoKSwoZT0+bi5wdXNoKHQubm9kZShlKSkpKSk6ZS5wdXNoKGkubmFtZSl9cmV0dXJuIGV9fWZ1bmN0aW9uIFpHdCh0LGUpe3JldHVybiBuZXcgSkd0KHQsZSl9Y2xhc3MgSkd0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy52PXQsdGhpcy53PWUsdGhpcy5iYXNlRWRnZUxpc3Q9W10sdGhpcy5pbmJvdW5kPW51bGwsdGhpcy5udW1SZWd1bGFyRWRnZXM9MCx0aGlzLm51bUNvbnRyb2xFZGdlcz0wLHRoaXMubnVtUmVmRWRnZXM9MCx0aGlzLnRvdGFsU2l6ZT0wfWFkZEJhc2VFZGdlKHQsZSl7dGhpcy5iYXNlRWRnZUxpc3QucHVzaCh0KSx0LmlzQ29udHJvbERlcGVuZGVuY3k/dGhpcy5udW1Db250cm9sRWRnZXMrPTE6dGhpcy5udW1SZWd1bGFyRWRnZXMrPTEsdC5pc1JlZmVyZW5jZUVkZ2UmJih0aGlzLm51bVJlZkVkZ2VzKz0xKSx0aGlzLnRvdGFsU2l6ZSs9Skd0LmNvbXB1dGVTaXplT2ZFZGdlKHQsZSksZS5tYXhNZXRhRWRnZVNpemU9TWF0aC5tYXgoZS5tYXhNZXRhRWRnZVNpemUsdGhpcy50b3RhbFNpemUpfXN0YXRpYyBjb21wdXRlU2l6ZU9mRWRnZSh0LGUpe2xldCBuPWUubm9kZSh0LnYpO2lmKCFuLm91dHB1dFNoYXBlcylyZXR1cm4gMTtlLmhhc1NoYXBlSW5mbz0hMDtjb25zdCBpPU9iamVjdC5rZXlzKG4ub3V0cHV0U2hhcGVzKS5tYXAoKHQ9Pm4ub3V0cHV0U2hhcGVzW3RdKSkubWFwKCh0PT5udWxsPT10PzE6dC5yZWR1Y2UoKCh0LGUpPT4oLTE9PT1lJiYoZT0xKSx0KmUpKSwxKSkpO3JldHVybiBTZS5leHBvcnRzLnN1bShpKX19ZnVuY3Rpb24gUUd0KHQsZSxuLGkscixvKXtyZXR1cm4gbmV3IGVXdCh0LGUsbixpLHIsbyl9ZnVuY3Rpb24gdFd0KHQsZSxuLGkscil7cmV0dXJuKG4/bisiLyI6IiIpK3QrKHZvaWQgMCE9PWkmJnZvaWQgMCE9PXI/IlsiK2krIi0iK3IrIl0iOiIjIikrZX1jbGFzcyBlV3R7Y29uc3RydWN0b3IodCxlLG4saSxyLG8pe3RoaXMubmFtZT1yfHx0V3QodCxlLG4pLHRoaXMudHlwZT1qR3QuU0VSSUVTLHRoaXMuaGFzTG9vcD0hMSx0aGlzLnByZWZpeD10LHRoaXMuc3VmZml4PWUsdGhpcy5jbHVzdGVySWQ9aSx0aGlzLmlkcz1bXSx0aGlzLnBhcmVudD1uLHRoaXMuaXNHcm91cE5vZGU9ITAsdGhpcy5jYXJkaW5hbGl0eT0wLHRoaXMubWV0YWdyYXBoPW9XdChyLFVHdC5TRVJJRVMsbyksdGhpcy5icmlkZ2VncmFwaD1udWxsLHRoaXMucGFyZW50Tm9kZT1udWxsLHRoaXMuZGV2aWNlSGlzdG9ncmFtPXt9LHRoaXMueGxhQ2x1c3Rlckhpc3RvZ3JhbT17fSx0aGlzLmNvbXBhdGliaWxpdHlIaXN0b2dyYW09e2NvbXBhdGlibGU6MCxpbmNvbXBhdGlibGU6MH0sdGhpcy5oYXNOb25Db250cm9sRWRnZXM9ITEsdGhpcy5pbmNsdWRlPUdHdC5VTlNQRUNJRklFRH19Y29uc3Qgbld0PS9eKFteOl0rKTooKFx3Kzp8KVxkKykkLztmdW5jdGlvbiBpV3QodCxlLG4saSxyLG8pe2UhPT1uLm5hbWUmJnQuZWRnZXMucHVzaCh7djplLHc6bi5uYW1lLG91dHB1dFRlbnNvcktleTppLm91dHB1dFRlbnNvcktleSxpc0NvbnRyb2xEZXBlbmRlbmN5OmkuaXNDb250cm9sRGVwZW5kZW5jeSxpc1JlZmVyZW5jZUVkZ2U6ITA9PT1yLnJlZkVkZ2VzW24ub3ArIiAiK29dfSl9Y29uc3Qgcld0PXtlbmFibGVFbWJlZGRpbmc6ITAsaW5FbWJlZGRpbmdUeXBlczpbIkNvbnN0Il0sb3V0RW1iZWRkaW5nVHlwZXM6WyJeW2EtekEtWl0rU3VtbWFyeSQiXSxyZWZFZGdlczp7IkFzc2lnbiAwIjohMCwiQXNzaWduQWRkIDAiOiEwLCJBc3NpZ25TdWIgMCI6ITAsImFzc2lnbiAwIjohMCwiYXNzaWduX2FkZCAwIjohMCwiYXNzaWduX3N1YiAwIjohMCwiY291bnRfdXBfdG8gMCI6ITAsIlNjYXR0ZXJBZGQgMCI6ITAsIlNjYXR0ZXJTdWIgMCI6ITAsIlNjYXR0ZXJVcGRhdGUgMCI6ITAsInNjYXR0ZXJfYWRkIDAiOiEwLCJzY2F0dGVyX3N1YiAwIjohMCwic2NhdHRlcl91cGRhdGUgMCI6ITB9fTtmdW5jdGlvbiBvV3QodCxlLG49e30pe2NvbnN0IGk9bmV3IGZHdC5ncmFwaGxpYi5HcmFwaChuKTtyZXR1cm4gaS5zZXRHcmFwaCh7bmFtZTp0LHJhbmtkaXI6bi5yYW5rZGlyfHwiQlQiLHR5cGU6ZX0pLGl9ZnVuY3Rpb24gYVd0KHQpe3JldHVybiBmdW5jdGlvbihlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7bGV0IGk9bmV3IFJlZ0V4cCh0W25dKTtpZigic3RyaW5nIj09dHlwZW9mIGUub3AmJmUub3AubWF0Y2goaSkpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHNXdCh0KXtsZXQgZT10LnNwbGl0KEhHdCk7cmV0dXJuIHQrSEd0KyIoIitlW2UubGVuZ3RoLTFdKyIpIn1mdW5jdGlvbiBsV3QodCl7bGV0IGU9dC5ub2RlcygpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQubmVpZ2hib3JzKGUpLmxlbmd0aH0pKTtyZXR1cm4gZS5zb3J0KCksZX1mdW5jdGlvbiBjV3QodCxlKXtsZXQgbj1bXSxpPXQuaW5kZXhPZihIR3QpO2Zvcig7aT49MDspbi5wdXNoKHQuc3Vic3RyaW5nKDAsaSkpLGk9dC5pbmRleE9mKEhHdCxpKzEpO2lmKGUpe2xldCBpPWVbdF07aSYmbi5wdXNoKGkpfXJldHVybiBuLnB1c2godCksbn1mdW5jdGlvbiB1V3QodCl7cmV0dXJuIHQ9PT1HR3QuRVhDTFVERT8iQWRkIHRvIG1haW4gZ3JhcGgiOiJSZW1vdmUgZnJvbSBtYWluIGdyYXBoIn1sZXQgaFd0PSIjMGY5ZDU4IixkV3Q9IiNkYjQ0MzciLHBXdD17REVGQVVMVF9GSUxMOiIjZDlkOWQ5IixERUZBVUxUX1NUUk9LRToiI2E2YTZhNiIsU0FUVVJBVElPTjouNixMSUdIVE5FU1M6Ljg1LEVYUEFOREVEX0NPTE9SOiIjZjBmMGYwIixIVUVTOlsyMjAsMTAwLDE4MCw0MCwyMCwzNDAsMjYwLDMwMCwxNDAsNjBdLFNUUlVDVFVSRV9QQUxFVFRFKHQsZSl7bGV0IG49cFd0LkhVRVMsaT1uW3Qlbi5sZW5ndGhdLHI9TWF0aC5zaW4oaSpNYXRoLlBJLzM2MCk7cmV0dXJuICRoKGksLjAxKihlPzMwOjkwLTYwKnIpLC4wMSooZT85NTo4MCkpLnRvU3RyaW5nKCl9LERFVklDRV9QQUxFVFRFOnQ9PnBXdC5TVFJVQ1RVUkVfUEFMRVRURSh0KSxYTEFfQ0xVU1RFUl9QQUxFVFRFOnQ9PnBXdC5TVFJVQ1RVUkVfUEFMRVRURSh0KSxVTktOT1dOOiIjZWVlIixHUkFESUVOVF9PVVRMSU5FOiIjODg4In07Y29uc3QgZld0PVsiTm9PcCJdLG1XdD1bXSxnV3Q9WyIjZmZmNWYwIiwiI2ZiNmE0YSJdLF9XdD1uZXcgUmVnRXhwKCJeKD86X19mdW5jdGlvbl9saWJyYXJ5X18pPyhcXHcrKV9bYS16MC05XXs4fSg/Ol9cXGQrKT8kIik7Y2xhc3MgeVd0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmhpZXJhcmNoeT10LHRoaXMuZGlzcGxheWluZ1N0YXRzPWUsdGhpcy5hdXRvRXh0cmFjdE5vZGVzPW4sdGhpcy5pbmRleD17fSx0aGlzLnJlbmRlcmVkT3BOYW1lcz1bXSx0aGlzLmNvbXB1dGVTY2FsZXMoKSx0aGlzLmhhc1N1YmhpZXJhcmNoeT17fSx0aGlzLnJvb3Q9bmV3IFRXdCh0LnJvb3QsdC5ncmFwaE9wdGlvbnMpLHRoaXMuaW5kZXhbdC5yb290Lm5hbWVdPXRoaXMucm9vdCx0aGlzLnJlbmRlcmVkT3BOYW1lcy5wdXNoKHQucm9vdC5uYW1lKSx0aGlzLmJ1aWxkU3ViaGllcmFyY2h5KHQucm9vdC5uYW1lKSx0aGlzLnJvb3QuZXhwYW5kZWQ9ITAsdGhpcy50cmFjZUlucHV0cz0hMX1jb21wdXRlU2NhbGVzKCl7dGhpcy5kZXZpY2VDb2xvck1hcD1FTSgpLmRvbWFpbih0aGlzLmhpZXJhcmNoeS5kZXZpY2VzKS5yYW5nZShTZS5leHBvcnRzLm1hcCh6bCh0aGlzLmhpZXJhcmNoeS5kZXZpY2VzLmxlbmd0aCkscFd0LkRFVklDRV9QQUxFVFRFKSksdGhpcy54bGFDbHVzdGVyQ29sb3JNYXA9RU0oKS5kb21haW4odGhpcy5oaWVyYXJjaHkueGxhQ2x1c3RlcnMpLnJhbmdlKFNlLmV4cG9ydHMubWFwKHpsKHRoaXMuaGllcmFyY2h5LnhsYUNsdXN0ZXJzLmxlbmd0aCkscFd0LlhMQV9DTFVTVEVSX1BBTEVUVEUpKTtsZXQgdD10aGlzLmhpZXJhcmNoeS5yb290Lm1ldGFncmFwaCxlPVdsKHQubm9kZXMoKSwoKGUsbik9PntsZXQgaT10Lm5vZGUoZSk7aWYobnVsbCE9aS5zdGF0cylyZXR1cm4gaS5zdGF0cy50b3RhbEJ5dGVzfSkpO3RoaXMubWVtb3J5VXNhZ2VTY2FsZT1WTSgpLmRvbWFpbihbMCxlXSkucmFuZ2UoZ1d0KTtsZXQgbj1XbCh0Lm5vZGVzKCksKChlLG4pPT57bGV0IGk9dC5ub2RlKGUpO2lmKG51bGwhPWkuc3RhdHMpcmV0dXJuIGkuc3RhdHMuZ2V0VG90YWxNaWNyb3MoKX0pKTt0aGlzLmNvbXB1dGVUaW1lU2NhbGU9Vk0oKS5kb21haW4oWzAsbl0pLnJhbmdlKGdXdCksdGhpcy5lZGdlV2lkdGhTaXplZEJhc2VkU2NhbGU9dGhpcy5oaWVyYXJjaHkuaGFzU2hhcGVJbmZvP0VHdDpWTSgpLmRvbWFpbihbMSx0aGlzLmhpZXJhcmNoeS5tYXhNZXRhRWRnZVNpemVdKS5yYW5nZShbTUd0LDEyXSl9Z2V0UmVuZGVyTm9kZUJ5TmFtZSh0KXtyZXR1cm4gdGhpcy5pbmRleFt0XX1nZXROb2RlQnlOYW1lKHQpe3JldHVybiB0aGlzLmhpZXJhcmNoeS5ub2RlKHQpfWNvbG9ySGlzdG9ncmFtKHQsZSl7aWYoT2JqZWN0LmtleXModCkubGVuZ3RoPjApe2NvbnN0IG49U2UuZXhwb3J0cy5zdW0oT2JqZWN0LmtleXModCkubWFwKChlPT50W2VdKSkpO3JldHVybiBPYmplY3Qua2V5cyh0KS5tYXAoKGk9Pih7Y29sb3I6ZShpKSxwcm9wb3J0aW9uOnRbaV0vbn0pKSl9cmV0dXJuIG51bGx9Z2V0T3JDcmVhdGVSZW5kZXJOb2RlQnlOYW1lKHQpe2lmKCF0KXJldHVybiBudWxsO2lmKHQgaW4gdGhpcy5pbmRleClyZXR1cm4gdGhpcy5pbmRleFt0XTtsZXQgZT10aGlzLmhpZXJhcmNoeS5ub2RlKHQpO2lmKCFlKXJldHVybiBudWxsO2xldCBuPWUuaXNHcm91cE5vZGU/bmV3IFRXdChlLHRoaXMuaGllcmFyY2h5LmdyYXBoT3B0aW9ucyk6bmV3IHdXdChlKTt0aGlzLmluZGV4W3RdPW4sdGhpcy5yZW5kZXJlZE9wTmFtZXMucHVzaCh0KSxlLnN0YXRzJiYobi5tZW1vcnlDb2xvcj10aGlzLm1lbW9yeVVzYWdlU2NhbGUoZS5zdGF0cy50b3RhbEJ5dGVzKSxuLmNvbXB1dGVUaW1lQ29sb3I9dGhpcy5jb21wdXRlVGltZVNjYWxlKGUuc3RhdHMuZ2V0VG90YWxNaWNyb3MoKSkpLG4uaXNGYWRlZE91dD10aGlzLmRpc3BsYXlpbmdTdGF0cyYmIU9HdChlLnN0YXRzKTt2YXIgaT1udWxsLHI9bnVsbCxvPW51bGw7aWYoZS5pc0dyb3VwTm9kZSl7aT1lLmRldmljZUhpc3RvZ3JhbSxyPWUueGxhQ2x1c3Rlckhpc3RvZ3JhbTtsZXQgdD1lLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZSxuPWUuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU7MD09dCYmMD09bnx8KG89dC8odCtuKSl9ZWxzZXtsZXQgdD1uLm5vZGUuZGV2aWNlO3QmJihpPXtbdF06MX0pO2xldCBlPW4ubm9kZS54bGFDbHVzdGVyO2UmJihyPXtbZV06MX0pLG4ubm9kZS50eXBlPT09akd0Lk9QJiYobz1uLm5vZGUuY29tcGF0aWJsZT8xOjApfXJldHVybiBpJiYobi5kZXZpY2VDb2xvcnM9dGhpcy5jb2xvckhpc3RvZ3JhbShpLHRoaXMuZGV2aWNlQ29sb3JNYXApKSxyJiYobi54bGFDbHVzdGVyQ29sb3JzPXRoaXMuY29sb3JIaXN0b2dyYW0ocix0aGlzLnhsYUNsdXN0ZXJDb2xvck1hcCkpLG51bGwhPW8mJihuLmNvbXBhdGliaWxpdHlDb2xvcnM9W3tjb2xvcjpoV3QscHJvcG9ydGlvbjpvfSx7Y29sb3I6ZFd0LHByb3BvcnRpb246MS1vfV0pLHRoaXMuaW5kZXhbdF19Z2V0TmVhcmVzdFZpc2libGVBbmNlc3Rvcih0KXtsZXQgZT1jV3QodCksbj0wLGk9bnVsbCxyPXQ7Zm9yKDtuPGUubGVuZ3RoJiYocj1lW25dLGk9dGhpcy5nZXRSZW5kZXJOb2RlQnlOYW1lKHIpLGkuZXhwYW5kZWQpO24rKyk7aWYobj09ZS5sZW5ndGgtMil7bGV0IHQ9ZVtuKzFdO2lmKGkuaW5Bbm5vdGF0aW9ucy5ub2RlTmFtZXNbdF0pcmV0dXJuIHQ7aWYoaS5vdXRBbm5vdGF0aW9ucy5ub2RlTmFtZXNbdF0pcmV0dXJuIHR9cmV0dXJuIHJ9c2V0RGVwdGgodCl7Q1d0KHRoaXMucm9vdCwrdCl9aXNOb2RlQXV4aWxpYXJ5KHQpe2xldCBlPXRoaXMuZ2V0UmVuZGVyTm9kZUJ5TmFtZSh0Lm5vZGUucGFyZW50Tm9kZS5uYW1lKSxuPVNlLmV4cG9ydHMuZmluZChlLmlzb2xhdGVkSW5FeHRyYWN0LChlPT5lLm5vZGUubmFtZT09PXQubm9kZS5uYW1lKSk7cmV0dXJuISFufHwobj1TZS5leHBvcnRzLmZpbmQoZS5pc29sYXRlZE91dEV4dHJhY3QsKGU9PmUubm9kZS5uYW1lPT09dC5ub2RlLm5hbWUpKSwhIW4pfWdldE5hbWVzT2ZSZW5kZXJlZE9wcygpe3JldHVybiB0aGlzLnJlbmRlcmVkT3BOYW1lc31jbG9uZUFuZEFkZEZ1bmN0aW9uT3BOb2RlKHQsZSxuLGkpe2NvbnN0IHI9bi5uYW1lLnJlcGxhY2UoZSxpKTtsZXQgbz10Lm1ldGFncmFwaC5ub2RlKHIpO2lmKG8pcmV0dXJuIG87bz1uZXcgWEd0KHtuYW1lOnIsaW5wdXQ6W10sZGV2aWNlOm4uZGV2aWNlLG9wOm4ub3AsYXR0cjpTZS5leHBvcnRzLmNsb25lRGVlcChuLmF0dHIpfSksby5jYXJkaW5hbGl0eT1uLmNhcmRpbmFsaXR5LG8uaW5jbHVkZT1uLmluY2x1ZGUsby5vdXRwdXRTaGFwZXM9U2UuZXhwb3J0cy5jbG9uZURlZXAobi5vdXRwdXRTaGFwZXMpLG8ueGxhQ2x1c3Rlcj1uLnhsYUNsdXN0ZXIsby5mdW5jdGlvbklucHV0SW5kZXg9bi5mdW5jdGlvbklucHV0SW5kZXgsby5mdW5jdGlvbk91dHB1dEluZGV4PW4uZnVuY3Rpb25PdXRwdXRJbmRleCxvLmlucHV0cz1uLmlucHV0cy5tYXAoKHQ9Pntjb25zdCBuPVNlLmV4cG9ydHMuY2xvbmUodCk7cmV0dXJuIG4ubmFtZT10Lm5hbWUucmVwbGFjZShlLGkpLG59KSksby5wYXJlbnROb2RlPXQsdC5tZXRhZ3JhcGguc2V0Tm9kZShvLm5hbWUsbyksdGhpcy5oaWVyYXJjaHkuc2V0Tm9kZShvLm5hbWUsbyk7Y29uc3QgYT1uPT50aGlzLmNsb25lQW5kQWRkRnVuY3Rpb25PcE5vZGUodCxlLG4saSk7cmV0dXJuIG8uaW5FbWJlZGRpbmdzPW4uaW5FbWJlZGRpbmdzLm1hcChhKSxvLm91dEVtYmVkZGluZ3M9bi5vdXRFbWJlZGRpbmdzLm1hcChhKSxvfWNsb25lRnVuY3Rpb25MaWJyYXJ5TWV0YW5vZGUodCxlLG4saSxyKXtjb25zdCBvPXt9LGE9dGhpcy5jbG9uZUZ1bmN0aW9uTGlicmFyeU1ldGFub2RlSGVscGVyKHQsZSxuLGkscixvKTtyZXR1cm4gU2UuZXhwb3J0cy5pc0VtcHR5KG8pfHx0aGlzLnBhdGNoRWRnZXNGcm9tRnVuY3Rpb25PdXRwdXRzKGUsbyksYX1jbG9uZUZ1bmN0aW9uTGlicmFyeU1ldGFub2RlSGVscGVyKHQsZSxuLGkscixvKXtjb25zdCBhPSRHdChuLm5hbWUucmVwbGFjZShpLHIpKTtyZXR1cm4gYS5kZXB0aD1uLmRlcHRoLGEuY2FyZGluYWxpdHk9bi5jYXJkaW5hbGl0eSxhLnRlbXBsYXRlSWQ9bi50ZW1wbGF0ZUlkLGEub3BIaXN0b2dyYW09U2UuZXhwb3J0cy5jbG9uZShuLm9wSGlzdG9ncmFtKSxhLmRldmljZUhpc3RvZ3JhbT1TZS5leHBvcnRzLmNsb25lKG4uZGV2aWNlSGlzdG9ncmFtKSxhLnhsYUNsdXN0ZXJIaXN0b2dyYW09U2UuZXhwb3J0cy5jbG9uZShuLnhsYUNsdXN0ZXJIaXN0b2dyYW0pLGEuaGFzTm9uQ29udHJvbEVkZ2VzPW4uaGFzTm9uQ29udHJvbEVkZ2VzLGEuaW5jbHVkZT1uLmluY2x1ZGUsYS5ub2RlQXR0cmlidXRlcz1TZS5leHBvcnRzLmNsb25lKG4ubm9kZUF0dHJpYnV0ZXMpLGEuYXNzb2NpYXRlZEZ1bmN0aW9uPW4uYXNzb2NpYXRlZEZ1bmN0aW9uLFNlLmV4cG9ydHMuZWFjaChuLm1ldGFncmFwaC5ub2RlcygpLChzPT57Y29uc3QgbD1uLm1ldGFncmFwaC5ub2RlKHMpO3N3aXRjaChsLnR5cGUpe2Nhc2Ugakd0Lk1FVEE6Y29uc3Qgbj10aGlzLmNsb25lRnVuY3Rpb25MaWJyYXJ5TWV0YW5vZGVIZWxwZXIodCxlLGwsaSxyLG8pO24ucGFyZW50Tm9kZT1hLGEubWV0YWdyYXBoLnNldE5vZGUobi5uYW1lLG4pLHRoaXMuaGllcmFyY2h5LnNldE5vZGUobi5uYW1lLG4pO2JyZWFrO2Nhc2Ugakd0Lk9QOmNvbnN0IHM9dGhpcy5jbG9uZUFuZEFkZEZ1bmN0aW9uT3BOb2RlKGEsaSxsLHIpO1NlLmV4cG9ydHMuaXNOdW1iZXIocy5mdW5jdGlvbklucHV0SW5kZXgpJiZ0aGlzLnBhdGNoRWRnZXNJbnRvRnVuY3Rpb25JbnB1dHMoZSxzKSxTZS5leHBvcnRzLmlzTnVtYmVyKHMuZnVuY3Rpb25PdXRwdXRJbmRleCkmJihvW3MuZnVuY3Rpb25PdXRwdXRJbmRleF09cyk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4obC5uYW1lKyIgaXMgb2RkbHkgbmVpdGhlciBhIG1ldGFub2RlIG5vciBhbiBvcG5vZGUuIil9fSkpLHRoaXMuY2xvbmVMaWJyYXJ5TWV0YW5vZGVFZGdlcyhuLGEsaSxyKSxhfWNsb25lTGlicmFyeU1ldGFub2RlRWRnZXModCxlLG4saSl7U2UuZXhwb3J0cy5lYWNoKHQubWV0YWdyYXBoLmVkZ2VzKCksKHI9Pntjb25zdCBvPXQubWV0YWdyYXBoLmVkZ2UociksYT1vLnYucmVwbGFjZShuLGkpLHM9by53LnJlcGxhY2UobixpKSxsPW5ldyBKR3QoYSxzKTtsLmluYm91bmQ9by5pbmJvdW5kLGwubnVtUmVndWxhckVkZ2VzPW8ubnVtUmVndWxhckVkZ2VzLGwubnVtQ29udHJvbEVkZ2VzPW8ubnVtQ29udHJvbEVkZ2VzLGwubnVtUmVmRWRnZXM9by5udW1SZWZFZGdlcyxsLnRvdGFsU2l6ZT1vLnRvdGFsU2l6ZSxvLmJhc2VFZGdlTGlzdCYmKGwuYmFzZUVkZ2VMaXN0PW8uYmFzZUVkZ2VMaXN0Lm1hcCgodD0+e2NvbnN0IGU9U2UuZXhwb3J0cy5jbG9uZSh0KTtyZXR1cm4gZS52PXQudi5yZXBsYWNlKG4saSksZS53PXQudy5yZXBsYWNlKG4saSksZX0pKSksZS5tZXRhZ3JhcGgubm9kZShzKT9lLm1ldGFncmFwaC5zZXRFZGdlKGEscyxsKTplLm1ldGFncmFwaC5zZXRFZGdlKHMsYSxsKX0pKX1wYXRjaEVkZ2VzSW50b0Z1bmN0aW9uSW5wdXRzKHQsZSl7bGV0IG49TWF0aC5taW4oZS5mdW5jdGlvbklucHV0SW5kZXgsdC5pbnB1dHMubGVuZ3RoLTEpLGk9U2UuZXhwb3J0cy5jbG9uZSh0LmlucHV0c1tuXSk7Zm9yKDtpLmlzQ29udHJvbERlcGVuZGVuY3k7KW4rKyxpPXQuaW5wdXRzW25dO2UuaW5wdXRzLnB1c2goaSk7Y29uc3Qgcj10aGlzLmhpZXJhcmNoeS5nZXRQcmVkZWNlc3NvcnModC5uYW1lKTtsZXQgbyxhPTA7U2UuZXhwb3J0cy5lYWNoKHIucmVndWxhciwodD0+e2lmKGErPXQubnVtUmVndWxhckVkZ2VzLGE+bilyZXR1cm4gbz10LCExfSkpLFNlLmV4cG9ydHMuZWFjaChvLmJhc2VFZGdlTGlzdCwobj0+e24udz09PXQubmFtZSYmKG4udz1lLm5hbWUpLG4udj09PXQubmFtZSYmKG4udj1lLm5hbWUpfSkpfXBhdGNoRWRnZXNGcm9tRnVuY3Rpb25PdXRwdXRzKHQsZSl7Y29uc3Qgbj10aGlzLmhpZXJhcmNoeS5nZXRTdWNjZXNzb3JzKHQubmFtZSk7U2UuZXhwb3J0cy5lYWNoKG4ucmVndWxhciwobj0+e1NlLmV4cG9ydHMuZWFjaChuLmJhc2VFZGdlTGlzdCwobj0+e2NvbnN0IGk9dGhpcy5oaWVyYXJjaHkubm9kZShuLncpO1NlLmV4cG9ydHMuZWFjaChpLmlucHV0cywoaT0+e2kubmFtZT09PXQubmFtZSYmKGkubmFtZT1lW2kub3V0cHV0VGVuc29yS2V5XS5uYW1lLGkub3V0cHV0VGVuc29yS2V5PW4ub3V0cHV0VGVuc29yS2V5KX0pKX0pKSxTZS5leHBvcnRzLmVhY2gobi5iYXNlRWRnZUxpc3QsKHQ9Pnt0LnY9ZVt0Lm91dHB1dFRlbnNvcktleV0ubmFtZSx0Lm91dHB1dFRlbnNvcktleT0iMCJ9KSl9KSl9YnVpbGRTdWJoaWVyYXJjaHkodCl7aWYodCBpbiB0aGlzLmhhc1N1YmhpZXJhcmNoeSlyZXR1cm47dGhpcy5oYXNTdWJoaWVyYXJjaHlbdF09ITA7bGV0IGU9dGhpcy5pbmRleFt0XTtpZihlLm5vZGUudHlwZSE9PWpHdC5NRVRBJiZlLm5vZGUudHlwZSE9PWpHdC5TRVJJRVMpcmV0dXJuO2xldCBuPWUsaT1uLm5vZGUubWV0YWdyYXBoLHI9bi5jb3JlR3JhcGg7Y29uc3Qgbz1bXSxhPVtdO1NlLmV4cG9ydHMuaXNFbXB0eSh0aGlzLmhpZXJhcmNoeS5saWJyYXJ5RnVuY3Rpb25zKXx8KFNlLmV4cG9ydHMuZWFjaChpLm5vZGVzKCksKHQ9Pntjb25zdCBlPWkubm9kZSh0KSxuPXRoaXMuaGllcmFyY2h5LmxpYnJhcnlGdW5jdGlvbnNbZS5vcF07aWYoIW4pcmV0dXJuO2lmKDA9PT10LmluZGV4T2YoVkd0KSlyZXR1cm47Y29uc3Qgcj10aGlzLmNsb25lRnVuY3Rpb25MaWJyYXJ5TWV0YW5vZGUoaSxlLG4ubm9kZSxuLm5vZGUubmFtZSxlLm5hbWUpO28ucHVzaChlKSxhLnB1c2gocil9KSksU2UuZXhwb3J0cy5lYWNoKGEsKCh0LGUpPT57Y29uc3Qgbj1vW2VdO3QucGFyZW50Tm9kZT1uLnBhcmVudE5vZGUsaS5zZXROb2RlKG4ubmFtZSx0KSx0aGlzLmhpZXJhcmNoeS5zZXROb2RlKG4ubmFtZSx0KX0pKSksU2UuZXhwb3J0cy5lYWNoKGkubm9kZXMoKSwodD0+e2xldCBlPXRoaXMuZ2V0T3JDcmVhdGVSZW5kZXJOb2RlQnlOYW1lKHQpLG49ZS5ub2RlO3Iuc2V0Tm9kZSh0LGUpLG4uaXNHcm91cE5vZGV8fChTZS5leHBvcnRzLmVhY2gobi5pbkVtYmVkZGluZ3MsKHQ9PntsZXQgbj1uZXcgU1d0KG51bGwpLGk9bmV3IHdXdCh0KTtNV3QoZSx0LGksbixiV3QuQ09OU1RBTlQpLHRoaXMuaW5kZXhbdC5uYW1lXT1pfSkpLFNlLmV4cG9ydHMuZWFjaChuLm91dEVtYmVkZGluZ3MsKHQ9PntsZXQgbj1uZXcgU1d0KG51bGwpLGk9bmV3IHdXdCh0KTtFV3QoZSx0LGksbixiV3QuU1VNTUFSWSksdGhpcy5pbmRleFt0Lm5hbWVdPWl9KSkpfSkpLFNlLmV4cG9ydHMuZWFjaChpLmVkZ2VzKCksKHQ9PntsZXQgZT1pLmVkZ2UodCksbj1uZXcgU1d0KGUpO24uaXNGYWRlZE91dD10aGlzLmluZGV4W3Qudl0uaXNGYWRlZE91dHx8dGhpcy5pbmRleFt0LnddLmlzRmFkZWRPdXQsci5zZXRFZGdlKHQudix0Lncsbil9KSksbi5ub2RlLnR5cGU9PT1qR3QuTUVUQSYmKGZ1bmN0aW9uIHModCxlKXsoZnVuY3Rpb24gbih0KXtsZXQgZT10LmNvcmVHcmFwaDtTZS5leHBvcnRzLmVhY2goZS5ub2RlcygpLChuPT57ZS5ub2RlKG4pLm5vZGUuaW5jbHVkZSE9PUdHdC5FWENMVURFfHxuLnN0YXJ0c1dpdGgoVkd0KXx8KHQuY29yZUdyYXBoLm91dEVkZ2VzKG4pLmxlbmd0aD50LmNvcmVHcmFwaC5pbkVkZ2VzKG4pLmxlbmd0aD9rV3QodCxuKTpMV3QodCxuKSl9KSl9KSh0KSxmV3QubGVuZ3RoJiYoZnVuY3Rpb24gaSh0KXtsZXQgZT10LmNvcmVHcmFwaDtTZS5leHBvcnRzLmVhY2goZS5ub2RlcygpLChuPT57bGV0IGk9ZS5ub2RlKG4pO2kubm9kZS5pbmNsdWRlPT09R0d0LlVOU1BFQ0lGSUVEJiZQV3QoaS5ub2RlLGZXdCkmJmtXdCh0LG4pfSkpfSkodCksbVd0Lmxlbmd0aCYmKGZ1bmN0aW9uIHIodCl7bGV0IGU9dC5jb3JlR3JhcGg7U2UuZXhwb3J0cy5lYWNoKGUubm9kZXMoKSwobj0+e2xldCBpPWUubm9kZShuKTtpLm5vZGUuaW5jbHVkZT09PUdHdC5VTlNQRUNJRklFRCYmUFd0KGkubm9kZSxtV3QpJiZMV3QodCxuKX0pKX0pKHQpLGUmJihmdW5jdGlvbiBvKHQpe2xldCBlPXQuY29yZUdyYXBoLG49e30saT17fSxyPTA7aWYoU2UuZXhwb3J0cy5lYWNoKGUubm9kZXMoKSwodD0+e2lmKGUubm9kZSh0KS5ub2RlLmluY2x1ZGUhPT1HR3QuVU5TUEVDSUZJRUQpcmV0dXJuO2xldCBvPVNlLmV4cG9ydHMucmVkdWNlKGUucHJlZGVjZXNzb3JzKHQpLCgobixpKT0+bisoZS5lZGdlKGksdCkubWV0YWVkZ2UubnVtUmVndWxhckVkZ2VzPzE6MCkpLDApOzA9PT1vJiZlLnByZWRlY2Vzc29ycyh0KS5sZW5ndGg+MCYmKG89ZS5wcmVkZWNlc3NvcnModCkubGVuZ3RoKTtsZXQgYT1TZS5leHBvcnRzLnJlZHVjZShlLnN1Y2Nlc3NvcnModCksKChuLGkpPT5uKyhlLmVkZ2UodCxpKS5tZXRhZWRnZS5udW1SZWd1bGFyRWRnZXM/MTowKSksMCk7MD09PWEmJmUuc3VjY2Vzc29ycyh0KS5sZW5ndGg+MCYmKGE9ZS5zdWNjZXNzb3JzKHQpLmxlbmd0aCksblt0XT1vLGlbdF09YSxyKyt9KSkscjwxNSlyZXR1cm47bGV0IG89TWF0aC5yb3VuZCguNzUqciksYT1NYXRoLnJvdW5kKC4yNSpyKSxzPU9iamVjdC5rZXlzKG4pLnNvcnQoKCh0LGUpPT5uW3RdLW5bZV0pKSxsPW5bc1tvXV0sYz1sK2wtbltzW2FdXTtjPU1hdGgubWF4KGMsNCk7Zm9yKGxldCBlPXItMTtuW3NbZV1dPmM7ZS0tKUxXdCh0LHNbZV0pO2xldCB1PU9iamVjdC5rZXlzKGkpLnNvcnQoKCh0LGUpPT5pW3RdLWlbZV0pKSxoPWlbdVtvXV0sZD1oKzQqKGgtaVt1W2FdXSk7ZD1NYXRoLm1heChkLDQpO2ZvcihsZXQgbj1yLTE7aVt1W25dXT5kO24tLSl7bGV0IGk9ZS5ub2RlKHVbbl0pO2kmJiFpLmlzSW5FeHRyYWN0JiZrV3QodCx1W25dKX19KSh0KSwoZnVuY3Rpb24gYSh0KXtsZXQgZT10LmNvcmVHcmFwaCxuPXt9O1NlLmV4cG9ydHMuZWFjaChlLmVkZ2VzKCksKHQ9PntlLmVkZ2UodCkubWV0YWVkZ2UubnVtUmVndWxhckVkZ2VzfHwoKG5bdC52XT1uW3Qudl18fFtdKS5wdXNoKHQpLChuW3Qud109blt0LnddfHxbXSkucHVzaCh0KSl9KSksU2UuZXhwb3J0cy5lYWNoKG4sKCh0LG4pPT57dC5sZW5ndGg+NCYmU2UuZXhwb3J0cy5lYWNoKHQsKHQ9PkFXdChlLHQudix0LncpKSl9KSl9KSh0KTtsZXQgcz10LmNvcmVHcmFwaDtTZS5leHBvcnRzLmVhY2gocy5ub2RlcygpLChlPT57bGV0IG49cy5ub2RlKGUpLGk9cy5uZWlnaGJvcnMoZSkubGVuZ3RoO2lmKG4ubm9kZS5pbmNsdWRlPT09R0d0LlVOU1BFQ0lGSUVEJiYwPT09aSl7bGV0IGk9bi5vdXRBbm5vdGF0aW9ucy5saXN0Lmxlbmd0aD4wLHI9bi5pbkFubm90YXRpb25zLmxpc3QubGVuZ3RoPjA7bi5pc0luRXh0cmFjdD8odC5pc29sYXRlZEluRXh0cmFjdC5wdXNoKG4pLG4ubm9kZS5pbmNsdWRlPUdHdC5FWENMVURFLHMucmVtb3ZlTm9kZShlKSk6bi5pc091dEV4dHJhY3Q/KHQuaXNvbGF0ZWRPdXRFeHRyYWN0LnB1c2gobiksbi5ub2RlLmluY2x1ZGU9R0d0LkVYQ0xVREUscy5yZW1vdmVOb2RlKGUpKTppJiYhcj8obi5pc0luRXh0cmFjdD0hMCx0Lmlzb2xhdGVkSW5FeHRyYWN0LnB1c2gobiksbi5ub2RlLmluY2x1ZGU9R0d0LkVYQ0xVREUscy5yZW1vdmVOb2RlKGUpKTpyJiYhaSYmKG4uaXNPdXRFeHRyYWN0PSEwLHQuaXNvbGF0ZWRPdXRFeHRyYWN0LnB1c2gobiksbi5ub2RlLmluY2x1ZGU9R0d0LkVYQ0xVREUscy5yZW1vdmVOb2RlKGUpKX19KSl9KShuLHRoaXMuYXV0b0V4dHJhY3ROb2RlcyksU2UuZXhwb3J0cy5pc0VtcHR5KHRoaXMuaGllcmFyY2h5LmxpYnJhcnlGdW5jdGlvbnMpfHx0aGlzLmJ1aWxkU3ViaGllcmFyY2hpZXNGb3JOZWVkZWRGdW5jdGlvbnMoaSksdD09PUZHdCYmU2UuZXhwb3J0cy5mb3JPd24odGhpcy5oaWVyYXJjaHkubGlicmFyeUZ1bmN0aW9ucywoKHQsZSk9Pntjb25zdCBpPXQubm9kZSxvPXRoaXMuZ2V0T3JDcmVhdGVSZW5kZXJOb2RlQnlOYW1lKGkubmFtZSk7bi5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdC5wdXNoKG8pLG8ubm9kZS5pbmNsdWRlPUdHdC5FWENMVURFLHIucmVtb3ZlTm9kZShpLm5hbWUpfSkpO2xldCBsPW4ubm9kZS5wYXJlbnROb2RlO2lmKCFsKXJldHVybjtsZXQgYz10aGlzLmluZGV4W2wubmFtZV0sdT0odCwuLi5lKT0+ZS5jb25jYXQoW3Q/IklOIjoiT1VUIl0pLmpvaW4oIn5+IiksaD10aGlzLmhpZXJhcmNoeS5nZXRCcmlkZ2VncmFwaCh0KSxkPXtpbjp7fSxvdXQ6e30sY29udHJvbDp7fX07U2UuZXhwb3J0cy5lYWNoKGguZWRnZXMoKSwodD0+e2xldCBlPSEhaS5ub2RlKHQudyksbj1lP3Qudjp0Lnc7aC5lZGdlKHQpLm51bVJlZ3VsYXJFZGdlcz9lP2Qub3V0W25dPShkLm91dFtuXXx8MCkrMTpkLmluW25dPShkLmluW25dfHwwKSsxOmQuY29udHJvbFtuXT0oZC5jb250cm9sW25dfHwwKSsxfSkpO2xldCBwPXRoaXMuaGllcmFyY2h5LmdldE5vZGVNYXAoKTtTZS5leHBvcnRzLmVhY2goaC5lZGdlcygpLChuPT57bGV0IG89aC5lZGdlKG4pLGE9ISFpLm5vZGUobi53KSxbcyxmXT1hP1tuLncsbi52XTpbbi52LG4ud10sbT10aGlzLmluZGV4W3NdLGc9dGhpcy5pbmRleFtmXSxfPWc/Zy5ub2RlOnBbZl0seT0hby5udW1SZWd1bGFyRWRnZXMmJmQuY29udHJvbFtmXT40LFssdl09YT9bZS5pbkFubm90YXRpb25zLG0uaW5Bbm5vdGF0aW9uc106W2Uub3V0QW5ub3RhdGlvbnMsbS5vdXRBbm5vdGF0aW9uc10sYj1udWxsLHg9ITE7aWYoISgoYT9kLm91dDpkLmluKVtmXT40KSYmIXkmJm0uaXNJbkNvcmUoKSl7bGV0IGU9ZT0+Yy5jb3JlR3JhcGguZWRnZShhP3t2OmUsdzp0fTp7djp0LHc6ZX0pO2I9ZShmKSxifHwoYj1lKHUoYSxmLGwubmFtZSkpKSx4PSEhYn1sZXQgdz0hMTtpZihiJiYhby5udW1SZWd1bGFyRWRnZXMpe2xldCB0PWIsZT1jLm5vZGU7Zm9yKDt0LmFkam9pbmluZ01ldGFlZGdlOyl0PXQuYWRqb2luaW5nTWV0YWVkZ2UsZT1lLnBhcmVudE5vZGU7bGV0IG49dGhpcy5oaWVyYXJjaHkuZ2V0VG9wb2xvZ2ljYWxPcmRlcmluZyhlLm5hbWUpLGk9dC5tZXRhZWRnZTt3PW5baS52XT5uW2kud119aWYoeD14JiYhdywheClyZXR1cm4gdm9pZCB2LnB1c2gobmV3IHZXdChfLGcsbmV3IFNXdChvKSxiV3QuU0hPUlRDVVQsYSkpO2xldCBTPXUoYSx0KSxNPXUoYSxmLHQpLEU9ci5ub2RlKE0pO2lmKCFFKXtsZXQgdD1yLm5vZGUoUyk7dHx8KHQ9bmV3IHdXdCh7bmFtZTpTLHR5cGU6akd0LkJSSURHRSxpc0dyb3VwTm9kZTohMSxjYXJkaW5hbGl0eTowLHBhcmVudE5vZGU6bnVsbCxzdGF0czpudWxsLGluY2x1ZGU6R0d0LlVOU1BFQ0lGSUVELGluYm91bmQ6YSxub2RlQXR0cmlidXRlczp7fX0pLHRoaXMuaW5kZXhbU109dCxyLnNldE5vZGUoUyx0KSksRT1uZXcgd1d0KHtuYW1lOk0sdHlwZTpqR3QuQlJJREdFLGlzR3JvdXBOb2RlOiExLGNhcmRpbmFsaXR5OjEscGFyZW50Tm9kZTpudWxsLHN0YXRzOm51bGwsaW5jbHVkZTpHR3QuVU5TUEVDSUZJRUQsaW5ib3VuZDphLG5vZGVBdHRyaWJ1dGVzOnt9fSksdGhpcy5pbmRleFtNXT1FLHIuc2V0Tm9kZShNLEUpLHIuc2V0UGFyZW50KE0sUyksdC5ub2RlLmNhcmRpbmFsaXR5Kyt9bGV0IFQ9bmV3IFNXdChvKTtULmFkam9pbmluZ01ldGFlZGdlPWIsYT9yLnNldEVkZ2UoTSxzLFQpOnIuc2V0RWRnZShzLE0sVCl9KSksU2UuZXhwb3J0cy5lYWNoKFshMCwhMV0sKGU9PntsZXQgbj11KGUsdCksaT1yLm5vZGUobik7aSYmU2UuZXhwb3J0cy5lYWNoKHIubm9kZXMoKSwobz0+e2lmKHIubm9kZShvKS5ub2RlLnR5cGU9PT1qR3QuQlJJREdFKXJldHVybjtpZighKGU/IXIucHJlZGVjZXNzb3JzKG8pLmxlbmd0aDohci5zdWNjZXNzb3JzKG8pLmxlbmd0aCkpcmV0dXJuO2xldCBhPXUoZSx0LCJTVFJVQ1RVUkFMX1RBUkdFVCIpLHM9ci5ub2RlKGEpO3N8fChzPW5ldyB3V3Qoe25hbWU6YSx0eXBlOmpHdC5CUklER0UsaXNHcm91cE5vZGU6ITEsY2FyZGluYWxpdHk6MSxwYXJlbnROb2RlOm51bGwsc3RhdHM6bnVsbCxpbmNsdWRlOkdHdC5VTlNQRUNJRklFRCxpbmJvdW5kOmUsbm9kZUF0dHJpYnV0ZXM6e319KSxzLnN0cnVjdHVyYWw9ITAsdGhpcy5pbmRleFthXT1zLHIuc2V0Tm9kZShhLHMpLGkubm9kZS5jYXJkaW5hbGl0eSsrLHIuc2V0UGFyZW50KGEsbikpO2xldCBsPW5ldyBTV3QobnVsbCk7bC5zdHJ1Y3R1cmFsPSEwLGwud2VpZ2h0LS0sZT9yLnNldEVkZ2UoYSxvLGwpOnIuc2V0RWRnZShvLGEsbCl9KSl9KSl9YnVpbGRTdWJoaWVyYXJjaGllc0Zvck5lZWRlZEZ1bmN0aW9ucyh0KXtTZS5leHBvcnRzLmVhY2godC5lZGdlcygpLChlPT57bGV0IG49dC5lZGdlKGUpLGk9bmV3IFNXdChuKTtTZS5leHBvcnRzLmZvckVhY2goaS5tZXRhZWRnZS5iYXNlRWRnZUxpc3QsKHQ9Pntjb25zdCBlPXQudi5zcGxpdChIR3QpO2ZvcihsZXQgdD1lLmxlbmd0aDt0Pj0wO3QtLSl7Y29uc3Qgbj1lLnNsaWNlKDAsdCksaT10aGlzLmhpZXJhcmNoeS5ub2RlKG4uam9pbihIR3QpKTtpZihpKXtpZihpLnR5cGU9PT1qR3QuT1AmJnRoaXMuaGllcmFyY2h5LmxpYnJhcnlGdW5jdGlvbnNbaS5vcF0pZm9yKGxldCB0PTE7dDxuLmxlbmd0aDt0Kyspe2NvbnN0IGU9bi5zbGljZSgwLHQpLmpvaW4oSEd0KTtlJiZ0aGlzLmJ1aWxkU3ViaGllcmFyY2h5KGUpfWJyZWFrfX19KSl9KSl9fWNsYXNzIHZXdHtjb25zdHJ1Y3Rvcih0LGUsbixpLHIpe3RoaXMubm9kZT10LHRoaXMucmVuZGVyTm9kZUluZm89ZSx0aGlzLnJlbmRlck1ldGFlZGdlSW5mbz1uLHRoaXMuYW5ub3RhdGlvblR5cGU9aSx0aGlzLmR4PTAsdGhpcy5keT0wLHRoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLG4mJm4ubWV0YWVkZ2UmJih0aGlzLnY9bi5tZXRhZWRnZS52LHRoaXMudz1uLm1ldGFlZGdlLncpLHRoaXMuaXNJbj1yLHRoaXMucG9pbnRzPVtdfX12YXIgYld0OyEoZnVuY3Rpb24odCl7dFt0LlNIT1JUQ1VUPTBdPSJTSE9SVENVVCIsdFt0LkNPTlNUQU5UPTFdPSJDT05TVEFOVCIsdFt0LlNVTU1BUlk9Ml09IlNVTU1BUlkiLHRbdC5FTExJUFNJUz0zXT0iRUxMSVBTSVMifSkoYld0fHwoYld0PXt9KSk7Y2xhc3MgeFd0e2NvbnN0cnVjdG9yKCl7dGhpcy5saXN0PVtdLHRoaXMubm9kZU5hbWVzPXt9fXB1c2godCl7aWYodC5ub2RlLm5hbWUgaW4gdGhpcy5ub2RlTmFtZXMpcmV0dXJuO2lmKHRoaXMubm9kZU5hbWVzW3Qubm9kZS5uYW1lXT0hMCx0aGlzLmxpc3QubGVuZ3RoPDUpcmV0dXJuIHZvaWQgdGhpcy5saXN0LnB1c2godCk7bGV0IGU9dGhpcy5saXN0W3RoaXMubGlzdC5sZW5ndGgtMV07aWYoZS5hbm5vdGF0aW9uVHlwZT09PWJXdC5FTExJUFNJUyl7bGV0IHQ9ZS5ub2RlO3JldHVybiB2b2lkIHQuc2V0TnVtTW9yZU5vZGVzKCsrdC5udW1Nb3JlTm9kZXMpfWxldCBuPW5ldyBZR3QoMSk7dGhpcy5saXN0LnB1c2gobmV3IHZXdChuLG5ldyB3V3QobiksbnVsbCxiV3QuRUxMSVBTSVMsdC5pc0luKSl9fWNsYXNzIHdXdHtjb25zdHJ1Y3Rvcih0KXtpZih0aGlzLm5vZGU9dCx0aGlzLmV4cGFuZGVkPSExLHRoaXMuaW5Bbm5vdGF0aW9ucz1uZXcgeFd0LHRoaXMub3V0QW5ub3RhdGlvbnM9bmV3IHhXdCx0aGlzLng9MCx0aGlzLnk9MCx0aGlzLndpZHRoPTAsdGhpcy5oZWlnaHQ9MCx0aGlzLmluYm94V2lkdGg9MCx0aGlzLm91dGJveFdpZHRoPTAsdGhpcy5leGNsdWRlZD0hMSx0aGlzLnN0cnVjdHVyYWw9ITEsdGhpcy5sYWJlbE9mZnNldD0wLHRoaXMucmFkaXVzPTAsdGhpcy5sYWJlbEhlaWdodD0wLHRoaXMucGFkZGluZ1RvcD0wLHRoaXMucGFkZGluZ0xlZnQ9MCx0aGlzLnBhZGRpbmdSaWdodD0wLHRoaXMucGFkZGluZ0JvdHRvbT0wLHRoaXMuaXNJbkV4dHJhY3Q9ITEsdGhpcy5pc091dEV4dHJhY3Q9ITEsdGhpcy5jb3JlQm94PXt3aWR0aDowLGhlaWdodDowfSx0aGlzLmlzRmFkZWRPdXQ9ITEsdGhpcy5kaXNwbGF5TmFtZT10Lm5hbWUuc3Vic3RyaW5nKHQubmFtZS5sYXN0SW5kZXhPZihIR3QpKzEpLHQudHlwZT09PWpHdC5NRVRBJiZ0LmFzc29jaWF0ZWRGdW5jdGlvbil7Y29uc3QgdD10aGlzLmRpc3BsYXlOYW1lLm1hdGNoKF9XdCk7dD90aGlzLmRpc3BsYXlOYW1lPXRbMV06U2UuZXhwb3J0cy5zdGFydHNXaXRoKHRoaXMuZGlzcGxheU5hbWUsVkd0KSYmKHRoaXMuZGlzcGxheU5hbWU9dGhpcy5kaXNwbGF5TmFtZS5zdWJzdHJpbmcoVkd0Lmxlbmd0aCkpfX1pc0luQ29yZSgpe3JldHVybiF0aGlzLmlzSW5FeHRyYWN0JiYhdGhpcy5pc091dEV4dHJhY3QmJiF0aGlzLmlzTGlicmFyeUZ1bmN0aW9ufX1jbGFzcyBTV3R7Y29uc3RydWN0b3IodCl7dGhpcy5tZXRhZWRnZT10LHRoaXMuYWRqb2luaW5nTWV0YWVkZ2U9bnVsbCx0aGlzLnN0cnVjdHVyYWw9ITEsdGhpcy53ZWlnaHQ9MSx0aGlzLmlzRmFkZWRPdXQ9ITF9fWZ1bmN0aW9uIE1XdCh0LGUsbixpLHIpe2xldCBvPW5ldyB2V3QoZSxuLGksciwhMCk7dC5pbkFubm90YXRpb25zLnB1c2gobyl9ZnVuY3Rpb24gRVd0KHQsZSxuLGkscil7bGV0IG89bmV3IHZXdChlLG4saSxyLCExKTt0Lm91dEFubm90YXRpb25zLnB1c2gobyl9Y2xhc3MgVFd0IGV4dGVuZHMgd1d0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCk7bGV0IG49dC5tZXRhZ3JhcGguZ3JhcGgoKTt0aGlzLmNvcmVHcmFwaD1vV3Qobi5uYW1lLFVHdC5DT1JFLGUpLHRoaXMuaW5FeHRyYWN0Qm94PXt3aWR0aDowLGhlaWdodDowfSx0aGlzLm91dEV4dHJhY3RCb3g9e3dpZHRoOjAsaGVpZ2h0OjB9LHRoaXMubGlicmFyeUZ1bmN0aW9uc0JveD17d2lkdGg6MCxoZWlnaHQ6MH0sdGhpcy5pc29sYXRlZEluRXh0cmFjdD1bXSx0aGlzLmlzb2xhdGVkT3V0RXh0cmFjdD1bXSx0aGlzLmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0PVtdfX1mdW5jdGlvbiBDV3QodCxlKXt0LmNvcmVHcmFwaCYmKGZ1bmN0aW9uIG4odCxlKXtTZS5leHBvcnRzLmVhY2godC5ub2RlcygpLChuPT57bGV0IGk9dC5ub2RlKG4pO2lmKGkuZXhwYW5kZWQ9ZT4xLGU+MClzd2l0Y2goaS5ub2RlLnR5cGUpe2Nhc2Ugakd0Lk1FVEE6Y2FzZSBqR3QuU0VSSUVTOkNXdChpLGUtMSl9fSkpfSkodC5jb3JlR3JhcGgsZSl9ZnVuY3Rpb24gQVd0KHQsZSxuKXtsZXQgaT10Lm5vZGUoZSkscj10Lm5vZGUobiksbz10LmVkZ2UoZSxuKTsoaS5ub2RlLmluY2x1ZGUhPT1HR3QuSU5DTFVERSYmci5ub2RlLmluY2x1ZGUhPT1HR3QuSU5DTFVERXx8aS5ub2RlLmluY2x1ZGU9PT1HR3QuRVhDTFVERXx8ci5ub2RlLmluY2x1ZGU9PT1HR3QuRVhDTFVERSkmJihFV3QoaSxyLm5vZGUscixvLGJXdC5TSE9SVENVVCksTVd0KHIsaS5ub2RlLGksbyxiV3QuU0hPUlRDVVQpLHQucmVtb3ZlRWRnZShlLG4pKX1mdW5jdGlvbiBrV3QodCxlLG4pe2xldCBpPXQuY29yZUdyYXBoLHI9aS5ub2RlKGUpO3IuaXNPdXRFeHRyYWN0PSEwLFNlLmV4cG9ydHMuZWFjaChpLnByZWRlY2Vzc29ycyhlKSwoKHQsbik9PntBV3QoaSx0LGUpfSkpLFNlLmV4cG9ydHMuZWFjaChpLnN1Y2Nlc3NvcnMoZSksKCh0LG4pPT57QVd0KGksZSx0KX0pKSwwPT09aS5uZWlnaGJvcnMoZSkubGVuZ3RoJiYoci5ub2RlLmluY2x1ZGU9R0d0LkVYQ0xVREUsdC5pc29sYXRlZE91dEV4dHJhY3QucHVzaChyKSxpLnJlbW92ZU5vZGUoZSkpfWZ1bmN0aW9uIExXdCh0LGUsbil7bGV0IGk9dC5jb3JlR3JhcGgscj1pLm5vZGUoZSk7ci5pc0luRXh0cmFjdD0hMCxTZS5leHBvcnRzLmVhY2goaS5zdWNjZXNzb3JzKGUpLCgodCxuKT0+e0FXdChpLGUsdCl9KSksU2UuZXhwb3J0cy5lYWNoKGkucHJlZGVjZXNzb3JzKGUpLCgodCxuKT0+e0FXdChpLHQsZSl9KSksMD09PWkubmVpZ2hib3JzKGUpLmxlbmd0aCYmKHIubm9kZS5pbmNsdWRlPUdHdC5FWENMVURFLHQuaXNvbGF0ZWRJbkV4dHJhY3QucHVzaChyKSxpLnJlbW92ZU5vZGUoZSkpfWZ1bmN0aW9uIFBXdCh0LGUpe2lmKHQudHlwZT09PWpHdC5PUCl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspaWYodC5vcD09PWVbbl0pcmV0dXJuITB9ZWxzZSBpZih0LnR5cGU9PT1qR3QuTUVUQSl7bGV0IG49dC5nZXRSb290T3AoKTtpZihuKWZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKG4ub3A9PT1lW3RdKXJldHVybiEwfXJldHVybiExfWNvbnN0IE5XdD17YW5pbWF0aW9uOntkdXJhdGlvbjoyNTB9LGdyYXBoOnttZXRhOntub2RlU2VwOjUscmFua1NlcDoyNSxlZGdlU2VwOjV9LHNlcmllczp7bm9kZVNlcDo1LHJhbmtTZXA6MjUsZWRnZVNlcDo1fSxwYWRkaW5nOntwYWRkaW5nVG9wOjQwLHBhZGRpbmdMZWZ0OjIwfX0sc3Vic2NlbmU6e21ldGE6e3BhZGRpbmdUb3A6MTAscGFkZGluZ0JvdHRvbToxMCxwYWRkaW5nTGVmdDoxMCxwYWRkaW5nUmlnaHQ6MTAsbGFiZWxIZWlnaHQ6MjAsZXh0cmFjdFhPZmZzZXQ6MTUsZXh0cmFjdFlPZmZzZXQ6MjB9LHNlcmllczp7cGFkZGluZ1RvcDoxMCxwYWRkaW5nQm90dG9tOjEwLHBhZGRpbmdMZWZ0OjEwLHBhZGRpbmdSaWdodDoxMCxsYWJlbEhlaWdodDoxMH19LG5vZGVTaXplOnttZXRhOntyYWRpdXM6NSx3aWR0aDo2MCxtYXhMYWJlbFdpZHRoOjUyLGhlaWdodDpWTSgpLmRvbWFpbihbMSwyMDBdKS5yYW5nZShbMTUsNjBdKS5jbGFtcCghMCksZXhwYW5kQnV0dG9uUmFkaXVzOjN9LG9wOnt3aWR0aDoxNSxoZWlnaHQ6NixyYWRpdXM6MyxsYWJlbE9mZnNldDotOCxtYXhMYWJlbFdpZHRoOjMwfSxzZXJpZXM6e2V4cGFuZGVkOntyYWRpdXM6MTAsbGFiZWxPZmZzZXQ6MH0sdmVydGljYWw6e3dpZHRoOjE2LGhlaWdodDoxMyxsYWJlbE9mZnNldDotMTN9LGhvcml6b250YWw6e3dpZHRoOjI0LGhlaWdodDo4LHJhZGl1czoxMCxsYWJlbE9mZnNldDotMTB9fSxicmlkZ2U6e3dpZHRoOjIwLGhlaWdodDoyMCxyYWRpdXM6MixsYWJlbE9mZnNldDowfX0sc2hvcnRjdXRTaXplOntvcDp7d2lkdGg6MTAsaGVpZ2h0OjR9LG1ldGE6e3dpZHRoOjEyLGhlaWdodDo0LHJhZGl1czoxfSxzZXJpZXM6e3dpZHRoOjE0LGhlaWdodDo0fX0sYW5ub3RhdGlvbnM6e2luYm94V2lkdGg6NTAsb3V0Ym94V2lkdGg6NTAseE9mZnNldDoxMCx5T2Zmc2V0OjMsbGFiZWxPZmZzZXQ6MixtYXhMYWJlbFdpZHRoOjQwfSxjb25zdGFudDp7c2l6ZTp7d2lkdGg6NCxoZWlnaHQ6NH19LHNlcmllczp7bWF4U3RhY2tDb3VudDozLHBhcmFsbGVsU3RhY2tPZmZzZXRSYXRpbzouMix0b3dlclN0YWNrT2Zmc2V0UmF0aW86LjV9LG1pbmltYXA6e3NpemU6MTUwfX0sSVd0PTE0MDtmdW5jdGlvbiBSV3QodCl7dC5ub2RlLmlzR3JvdXBOb2RlJiYoZnVuY3Rpb24gZSh0KXtsZXQgZT10LmNvcmVHcmFwaC5ub2RlcygpLm1hcCgoZT0+dC5jb3JlR3JhcGgubm9kZShlKSkpLmNvbmNhdCh0Lmlzb2xhdGVkSW5FeHRyYWN0LHQuaXNvbGF0ZWRPdXRFeHRyYWN0LHQubGlicmFyeUZ1bmN0aW9uc0V4dHJhY3QpO1NlLmV4cG9ydHMuZWFjaChlLCh0PT57c3dpdGNoKHQubm9kZS50eXBlKXtjYXNlIGpHdC5PUDpTZS5leHBvcnRzLmV4dGVuZCh0LE5XdC5ub2RlU2l6ZS5vcCk7YnJlYWs7Y2FzZSBqR3QuQlJJREdFOlNlLmV4cG9ydHMuZXh0ZW5kKHQsTld0Lm5vZGVTaXplLmJyaWRnZSk7YnJlYWs7Y2FzZSBqR3QuTUVUQTp0LmV4cGFuZGVkP1JXdCh0KTooU2UuZXhwb3J0cy5leHRlbmQodCxOV3Qubm9kZVNpemUubWV0YSksdC5oZWlnaHQ9Tld0Lm5vZGVTaXplLm1ldGEuaGVpZ2h0KHQubm9kZS5jYXJkaW5hbGl0eSkpO2JyZWFrO2Nhc2Ugakd0LlNFUklFUzp0LmV4cGFuZGVkPyhTZS5leHBvcnRzLmV4dGVuZCh0LE5XdC5ub2RlU2l6ZS5zZXJpZXMuZXhwYW5kZWQpLFJXdCh0KSk6U2UuZXhwb3J0cy5leHRlbmQodCx0Lm5vZGUuaGFzTm9uQ29udHJvbEVkZ2VzP05XdC5ub2RlU2l6ZS5zZXJpZXMudmVydGljYWw6Tld0Lm5vZGVTaXplLnNlcmllcy5ob3Jpem9udGFsKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJVbnJlY29nbml6ZWQgbm9kZSB0eXBlOiAiK3Qubm9kZS50eXBlKX10LmV4cGFuZGVkfHwoZnVuY3Rpb24gZSh0KXt0LmluYm94V2lkdGg9dC5pbkFubm90YXRpb25zLmxpc3QubGVuZ3RoPjA/Tld0LmFubm90YXRpb25zLmluYm94V2lkdGg6MCx0Lm91dGJveFdpZHRoPXQub3V0QW5ub3RhdGlvbnMubGlzdC5sZW5ndGg+MD9OV3QuYW5ub3RhdGlvbnMub3V0Ym94V2lkdGg6MCx0LmNvcmVCb3gud2lkdGg9dC53aWR0aCx0LmNvcmVCb3guaGVpZ2h0PXQuaGVpZ2h0LHQud2lkdGg9TWF0aC5tYXgodC5jb3JlQm94LndpZHRoK3QuaW5ib3hXaWR0aCt0Lm91dGJveFdpZHRoLDMqdC5kaXNwbGF5TmFtZS5sZW5ndGgpfSkodCksKGZ1bmN0aW9uIG4odCl7aWYodC5leHBhbmRlZClyZXR1cm47bGV0IGU9dC5pbkFubm90YXRpb25zLmxpc3Qsbj10Lm91dEFubm90YXRpb25zLmxpc3Q7U2UuZXhwb3J0cy5lYWNoKGUsKHQ9PnpXdCh0KSkpLFNlLmV4cG9ydHMuZWFjaChuLCh0PT56V3QodCkpKTtsZXQgaT1OV3QuYW5ub3RhdGlvbnMscj1TZS5leHBvcnRzLnJlZHVjZShlLCgoZSxuLHIpPT57bGV0IG89cj4wP2kueU9mZnNldDowO3JldHVybiBuLmR4PS0odC5jb3JlQm94LndpZHRoK24ud2lkdGgpLzItaS54T2Zmc2V0LG4uZHk9ZStvK24uaGVpZ2h0LzIsZStvK24uaGVpZ2h0fSksMCk7U2UuZXhwb3J0cy5lYWNoKGUsKHQ9Pnt0LmR5LT1yLzIsdC5sYWJlbE9mZnNldD1pLmxhYmVsT2Zmc2V0fSkpO2xldCBvPVNlLmV4cG9ydHMucmVkdWNlKG4sKChlLG4scik9PntsZXQgbz1yPjA/aS55T2Zmc2V0OjA7cmV0dXJuIG4uZHg9KHQuY29yZUJveC53aWR0aCtuLndpZHRoKS8yK2kueE9mZnNldCxuLmR5PWUrbytuLmhlaWdodC8yLGUrbytuLmhlaWdodH0pLDApO1NlLmV4cG9ydHMuZWFjaChuLCh0PT57dC5keS09by8yLHQubGFiZWxPZmZzZXQ9aS5sYWJlbE9mZnNldH0pKTtsZXQgYT1NYXRoLm1pbih0LmhlaWdodC8yLXQucmFkaXVzLHIvMik7YT1hPDA/MDphO2xldCBzPVZNKCkuZG9tYWluKFswLGUubGVuZ3RoLTFdKS5yYW5nZShbLWEsYV0pO1NlLmV4cG9ydHMuZWFjaChlLCgobixpKT0+e24ucG9pbnRzPVt7ZHg6bi5keCtuLndpZHRoLzIsZHk6bi5keX0se2R4Oi10LmNvcmVCb3gud2lkdGgvMixkeTplLmxlbmd0aD4xP3MoaSk6MH1dfSkpO2xldCBsPU1hdGgubWluKHQuaGVpZ2h0LzItdC5yYWRpdXMsby8yKTtsPWw8MD8wOmw7bGV0IGM9Vk0oKS5kb21haW4oWzAsbi5sZW5ndGgtMV0pLnJhbmdlKFstbCxsXSk7U2UuZXhwb3J0cy5lYWNoKG4sKChlLGkpPT57ZS5wb2ludHM9W3tkeDp0LmNvcmVCb3gud2lkdGgvMixkeTpuLmxlbmd0aD4xP2MoaSk6MH0se2R4OmUuZHgtZS53aWR0aC8yLGR5OmUuZHl9XX0pKSx0LmhlaWdodD1NYXRoLm1heCh0LmhlaWdodCxyLG8pfSkodCl9KSl9KSh0KSx0Lm5vZGUudHlwZT09PWpHdC5NRVRBPyhmdW5jdGlvbiBuKHQpe2xldCBlPU5XdC5zdWJzY2VuZS5tZXRhO1NlLmV4cG9ydHMuZXh0ZW5kKHQsZSksU2UuZXhwb3J0cy5leHRlbmQodC5jb3JlQm94LE9XdCh0LmNvcmVHcmFwaCxOV3QuZ3JhcGgubWV0YSkpO2xldCBuPXQuaXNvbGF0ZWRJbkV4dHJhY3QubGVuZ3RoP1NlLmV4cG9ydHMubWF4QnkodC5pc29sYXRlZEluRXh0cmFjdCwodD0+dC53aWR0aCkpLndpZHRoOm51bGw7dC5pbkV4dHJhY3RCb3gud2lkdGg9bnVsbCE9bj9uOjAsdC5pbkV4dHJhY3RCb3guaGVpZ2h0PVNlLmV4cG9ydHMucmVkdWNlKHQuaXNvbGF0ZWRJbkV4dHJhY3QsKCh0LG4saSk9PntsZXQgcj1pPjA/ZS5leHRyYWN0WU9mZnNldDowO3JldHVybiBuLng9MCxuLnk9dCtyK24uaGVpZ2h0LzIsdCtyK24uaGVpZ2h0fSksMCk7bGV0IGk9dC5pc29sYXRlZE91dEV4dHJhY3QubGVuZ3RoP1NlLmV4cG9ydHMubWF4QnkodC5pc29sYXRlZE91dEV4dHJhY3QsKHQ9PnQud2lkdGgpKS53aWR0aDpudWxsO3Qub3V0RXh0cmFjdEJveC53aWR0aD1udWxsIT1pP2k6MCx0Lm91dEV4dHJhY3RCb3guaGVpZ2h0PVNlLmV4cG9ydHMucmVkdWNlKHQuaXNvbGF0ZWRPdXRFeHRyYWN0LCgodCxuLGkpPT57bGV0IHI9aT4wP2UuZXh0cmFjdFlPZmZzZXQ6MDtyZXR1cm4gbi54PTAsbi55PXQrcituLmhlaWdodC8yLHQrcituLmhlaWdodH0pLDApO2xldCByPXQubGlicmFyeUZ1bmN0aW9uc0V4dHJhY3QubGVuZ3RoP1NlLmV4cG9ydHMubWF4QnkodC5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdCwodD0+dC53aWR0aCkpLndpZHRoOm51bGw7dC5saWJyYXJ5RnVuY3Rpb25zQm94LndpZHRoPW51bGwhPXI/cjowLHQubGlicmFyeUZ1bmN0aW9uc0JveC5oZWlnaHQ9U2UuZXhwb3J0cy5yZWR1Y2UodC5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdCwoKHQsbixpKT0+e2xldCByPWk+MD9lLmV4dHJhY3RZT2Zmc2V0OjA7cmV0dXJuIG4ueD0wLG4ueT10K3Irbi5oZWlnaHQvMix0K3Irbi5oZWlnaHR9KSwwKTtsZXQgbz0wO3QuaXNvbGF0ZWRJbkV4dHJhY3QubGVuZ3RoPjAmJm8rKyx0Lmlzb2xhdGVkT3V0RXh0cmFjdC5sZW5ndGg+MCYmbysrLHQubGlicmFyeUZ1bmN0aW9uc0V4dHJhY3QubGVuZ3RoPjAmJm8rKyx0LmNvcmVHcmFwaC5ub2RlQ291bnQoKT4wJiZvKys7bGV0IGE9bzw9MT8wOm8qTld0LnN1YnNjZW5lLm1ldGEuZXh0cmFjdFhPZmZzZXQ7Y29uc3Qgcz1NYXRoLm1heChJV3QsdC5pbkV4dHJhY3RCb3gud2lkdGgrdC5vdXRFeHRyYWN0Qm94LndpZHRoKTt0LmNvcmVCb3gud2lkdGgrPXMrYSt0LmxpYnJhcnlGdW5jdGlvbnNCb3gud2lkdGgrYSx0LmNvcmVCb3guaGVpZ2h0PWUubGFiZWxIZWlnaHQrTWF0aC5tYXgodC5pbkV4dHJhY3RCb3guaGVpZ2h0LHQuY29yZUJveC5oZWlnaHQsdC5saWJyYXJ5RnVuY3Rpb25zQm94LmhlaWdodCx0Lm91dEV4dHJhY3RCb3guaGVpZ2h0KSx0LndpZHRoPXQuY29yZUJveC53aWR0aCtlLnBhZGRpbmdMZWZ0K2UucGFkZGluZ1JpZ2h0LHQuaGVpZ2h0PXQucGFkZGluZ1RvcCt0LmNvcmVCb3guaGVpZ2h0K3QucGFkZGluZ0JvdHRvbX0pKHQpOnQubm9kZS50eXBlPT09akd0LlNFUklFUyYmKGZ1bmN0aW9uIGkodCl7bGV0IGU9dC5jb3JlR3JhcGgsbj1OV3Quc3Vic2NlbmUuc2VyaWVzO1NlLmV4cG9ydHMuZXh0ZW5kKHQsbiksU2UuZXhwb3J0cy5leHRlbmQodC5jb3JlQm94LE9XdCh0LmNvcmVHcmFwaCxOV3QuZ3JhcGguc2VyaWVzKSksU2UuZXhwb3J0cy5lYWNoKGUubm9kZXMoKSwodD0+e2Uubm9kZSh0KS5leGNsdWRlZD0hMX0pKSx0LndpZHRoPXQuY29yZUJveC53aWR0aCtuLnBhZGRpbmdMZWZ0K24ucGFkZGluZ1JpZ2h0LHQuaGVpZ2h0PXQuY29yZUJveC5oZWlnaHQrbi5wYWRkaW5nVG9wK24ucGFkZGluZ0JvdHRvbX0pKHQpfWZ1bmN0aW9uIE9XdCh0LGUpe1NlLmV4cG9ydHMuZXh0ZW5kKHQuZ3JhcGgoKSx7bm9kZXNlcDplLm5vZGVTZXAscmFua3NlcDplLnJhbmtTZXAsZWRnZXNlcDplLmVkZ2VTZXB9KTtsZXQgbj1bXTtpZihTZS5leHBvcnRzLmVhY2godC5ub2RlcygpLChlPT57dC5ub2RlKGUpLm5vZGUudHlwZT09PWpHdC5CUklER0V8fG4ucHVzaChlKX0pKSwhbi5sZW5ndGgpcmV0dXJue3dpZHRoOjAsaGVpZ2h0OjB9O2ZHdC5sYXlvdXQodCk7bGV0IGk9MS8wLHI9MS8wLG89LTEvMCxhPS0xLzA7cmV0dXJuIFNlLmV4cG9ydHMuZWFjaChuLChlPT57bGV0IG49dC5ub2RlKGUpLHM9LjUqbi53aWR0aCxsPW4ueC1zLGM9bi54K3M7aT1sPGk/bDppLG89Yz5vP2M6bztsZXQgdT0uNSpuLmhlaWdodCxoPW4ueS11LGQ9bi55K3U7cj1oPHI/aDpyLGE9ZD5hP2Q6YX0pKSxTZS5leHBvcnRzLmVhY2godC5lZGdlcygpLChlPT57bGV0IG49dC5lZGdlKGUpO2lmKG4uc3RydWN0dXJhbClyZXR1cm47bGV0IHM9dC5ub2RlKG4ubWV0YWVkZ2UudiksbD10Lm5vZGUobi5tZXRhZWRnZS53KTtpZigzPT09bi5wb2ludHMubGVuZ3RoJiYoZnVuY3Rpb24gYyh0KXtsZXQgZT1CV3QodFswXSx0WzFdKTtmb3IobGV0IG49MTtuPHQubGVuZ3RoLTE7bisrKXtsZXQgaT1CV3QodFtuXSx0W24rMV0pO2lmKE1hdGguYWJzKGktZSk+MSlyZXR1cm4hMTtlPWl9cmV0dXJuITB9KShuLnBvaW50cykpe2lmKG51bGwhPXMpe2xldCB0PXMuZXhwYW5kZWQ/cy54OkRXdChzKTtuLnBvaW50c1swXS54PXR9aWYobnVsbCE9bCl7bGV0IHQ9bC5leHBhbmRlZD9sLng6RFd0KGwpO24ucG9pbnRzWzJdLng9dH1uLnBvaW50cz1bbi5wb2ludHNbMF0sbi5wb2ludHNbMV1dfW51bGwhPWwmJihuLnBvaW50c1tuLnBvaW50cy5sZW5ndGgtMV09SFd0KG4ucG9pbnRzW24ucG9pbnRzLmxlbmd0aC0yXSxsKSksbnVsbCE9cyYmKG4ucG9pbnRzWzBdPUhXdChuLnBvaW50c1sxXSxzKSksU2UuZXhwb3J0cy5lYWNoKG4ucG9pbnRzLCh0PT57aT10Lng8aT90Lng6aSxvPXQueD5vP3QueDpvLHI9dC55PHI/dC55OnIsYT10Lnk+YT90Lnk6YX0pKX0pKSxTZS5leHBvcnRzLmVhY2godC5ub2RlcygpLChlPT57bGV0IG49dC5ub2RlKGUpO24ueC09aSxuLnktPXJ9KSksU2UuZXhwb3J0cy5lYWNoKHQuZWRnZXMoKSwoZT0+e1NlLmV4cG9ydHMuZWFjaCh0LmVkZ2UoZSkucG9pbnRzLCh0PT57dC54LT1pLHQueS09cn0pKX0pKSx7d2lkdGg6by1pLGhlaWdodDphLXJ9fWZ1bmN0aW9uIHpXdCh0KXtzd2l0Y2godC5hbm5vdGF0aW9uVHlwZSl7Y2FzZSBiV3QuQ09OU1RBTlQ6U2UuZXhwb3J0cy5leHRlbmQodCxOV3QuY29uc3RhbnQuc2l6ZSk7YnJlYWs7Y2FzZSBiV3QuU0hPUlRDVVQ6aWYodC5ub2RlLnR5cGU9PT1qR3QuT1ApU2UuZXhwb3J0cy5leHRlbmQodCxOV3Quc2hvcnRjdXRTaXplLm9wKTtlbHNlIGlmKHQubm9kZS50eXBlPT09akd0Lk1FVEEpU2UuZXhwb3J0cy5leHRlbmQodCxOV3Quc2hvcnRjdXRTaXplLm1ldGEpO2Vsc2V7aWYodC5ub2RlLnR5cGUhPT1qR3QuU0VSSUVTKXRocm93IEVycm9yKCJJbnZhbGlkIG5vZGUgdHlwZTogIit0Lm5vZGUudHlwZSk7U2UuZXhwb3J0cy5leHRlbmQodCxOV3Quc2hvcnRjdXRTaXplLnNlcmllcyl9YnJlYWs7Y2FzZSBiV3QuU1VNTUFSWTpTZS5leHBvcnRzLmV4dGVuZCh0LE5XdC5jb25zdGFudC5zaXplKX19ZnVuY3Rpb24gRFd0KHQpe3JldHVybiB0LmV4cGFuZGVkP3QueDp0LngtdC53aWR0aC8yKyh0LmluQW5ub3RhdGlvbnMubGlzdC5sZW5ndGg/dC5pbmJveFdpZHRoOjApK3QuY29yZUJveC53aWR0aC8yfWZ1bmN0aW9uIEJXdCh0LGUpe3JldHVybiAxODAqTWF0aC5hdGFuKChlLnktdC55KS8oZS54LXQueCkpL01hdGguUEl9ZnVuY3Rpb24gSFd0KHQsZSl7bGV0IG4saSxyPWUuZXhwYW5kZWQ/ZS54OkRXdChlKSxvPWUueSxhPXQueC1yLHM9dC55LW8sbD1lLmV4cGFuZGVkP2Uud2lkdGg6ZS5jb3JlQm94LndpZHRoLGM9ZS5leHBhbmRlZD9lLmhlaWdodDplLmNvcmVCb3guaGVpZ2h0O3JldHVybiBNYXRoLmFicyhzKSpsLzI+TWF0aC5hYnMoYSkqYy8yPyhzPDAmJihjPS1jKSxuPTA9PT1zPzA6Yy8yKmEvcyxpPWMvMik6KGE8MCYmKGw9LWwpLG49bC8yLGk9MD09PWE/MDpsLzIqcy9hKSx7eDpyK24seTpvK2l9fWNvbnN0IEZXdD14R3QsVld0PXZHdDtsZXQgVVd0PVt7YmFja2dyb3VuZF9jb2xvcjoiI0NDMkYyQyIsbGFiZWw6Ik5hTiJ9LHtiYWNrZ3JvdW5kX2NvbG9yOiIjRkY4RDAwIixsYWJlbDoiLeKIniJ9LHtiYWNrZ3JvdW5kX2NvbG9yOiIjRUFFQUVBIixsYWJlbDoiLSJ9LHtiYWNrZ3JvdW5kX2NvbG9yOiIjQTVBNUE1IixsYWJlbDoiMCJ9LHtiYWNrZ3JvdW5kX2NvbG9yOiIjMjYyNjI2IixsYWJlbDoiKyJ9LHtiYWNrZ3JvdW5kX2NvbG9yOiIjMDAzRUQ0IixsYWJlbDoiK+KIniJ9XTtmdW5jdGlvbiBqV3QodCxlLG4pe251bGwhPXQuYXR0cigidHJhbnNmb3JtIikmJih0PXQudHJhbnNpdGlvbigicG9zaXRpb24iKSksdC5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitlKyIsIituKyIpIil9ZnVuY3Rpb24gR1d0KHQsZSxuLGkscil7dC50cmFuc2l0aW9uKCkuYXR0cigieCIsZS1pLzIpLmF0dHIoInkiLG4tci8yKS5hdHRyKCJ3aWR0aCIsaSkuYXR0cigiaGVpZ2h0IixyKX1mdW5jdGlvbiBXV3QodCxlLG4saSxyKXt0LnRyYW5zaXRpb24oKS5hdHRyKCJjeCIsZSkuYXR0cigiY3kiLG4pLmF0dHIoInJ4IixpLzIpLmF0dHIoInJ5IixyLzIpfWZ1bmN0aW9uIHFXdCh0LGUpe3JldHVybiBlP3QudG9GaXhlZCgwKTpNYXRoLmFicyh0KT49MT90LnRvRml4ZWQoMSk6dC50b0V4cG9uZW50aWFsKDEpfWxldCBZV3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnNwZWNpZmljSGVhbHRoUGlsbFN0ZXA9MCx0aGlzLmhlYWx0aFBpbGxFbnRyaWVzPVVXdH1yZWFkeSgpe3N1cGVyLnJlYWR5KCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW5Db250YWluZXIiKSxlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInRmLWRhc2hib2FyZC1sYXlvdXQgLnNjcm9sbGJhciIpO3QmJmUmJih0LnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLGUuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpfV9oZWFsdGhQaWxsc0F2YWlsYWJsZSh0LGUpe3JldHVybiB0JiZlfV9jb21wdXRlVGVuc29yQ291bnRTdHJpbmcodCxlKXtyZXR1cm4gdD90W2VdLnRvRml4ZWQoMCk6IiJ9Z2V0IGhlYWx0aFBpbGxWYWx1ZXNGb3JTZWxlY3RlZE5vZGUoKXt2YXIgdD10aGlzLnNlbGVjdGVkTm9kZTtpZih0aGlzLmFyZUhlYWx0aFBpbGxzTG9hZGluZylyZXR1cm4gbnVsbDtpZighdClyZXR1cm4gbnVsbDtjb25zdCBlPXRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxsc1t0XTtpZighZSlyZXR1cm4gbnVsbDtjb25zdCBuPWVbdGhpcy5hbGxTdGVwc01vZGVFbmFibGVkPzA6dGhpcy5oZWFsdGhQaWxsU3RlcEluZGV4XTtyZXR1cm4gbj9uLnZhbHVlLnNsaWNlKDIsOCk6bnVsbH1nZXQgX2N1cnJlbnRTdGVwRGlzcGxheVZhbHVlKCl7dmFyIHQ9dGhpcy5ub2RlTmFtZXNUb0hlYWx0aFBpbGxzLGU9dGhpcy5oZWFsdGhQaWxsU3RlcEluZGV4LG49dGhpcy5hcmVIZWFsdGhQaWxsc0xvYWRpbmc7aWYodGhpcy5hbGxTdGVwc01vZGVFbmFibGVkKXJldHVybiB0aGlzLnNwZWNpZmljSGVhbHRoUGlsbFN0ZXAudG9GaXhlZCgwKTtpZihuKXJldHVybiAwO2ZvcihsZXQgbiBpbiB0KXJldHVybiB0W25dW2VdLnN0ZXAudG9GaXhlZCgwKTtyZXR1cm4gMH1nZXQgX2JpZ2dlc3RTdGVwRXZlclNlZW4oKXt2YXIgdD10aGlzLm5vZGVOYW1lc1RvSGVhbHRoUGlsbHM7Zm9yKGxldCBuIGluIHQpe3ZhciBlPXRbbl07cmV0dXJuIE1hdGgubWF4KHRoaXMuX2JpZ2dlc3RTdGVwRXZlclNlZW4sZVtlLmxlbmd0aC0xXS5zdGVwKX1yZXR1cm4gdGhpcy5fYmlnZ2VzdFN0ZXBFdmVyU2Vlbnx8MH1nZXQgX21heFN0ZXBJbmRleCgpe3ZhciB0PXRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxscztmb3IobGV0IGUgaW4gdClyZXR1cm4gdFtlXS5sZW5ndGgtMTtyZXR1cm4gMH1faGFzRGVidWdnZXJOdW1lcmljQWxlcnRzKHQpe3JldHVybiB0JiZ0Lmxlbmd0aH1fdXBkYXRlQWxlcnRzTGlzdCgpe3ZhciB0PXRoaXMuZGVidWdnZXJOdW1lcmljQWxlcnRzLGU9dGhpcy4kJCgiI251bWVyaWMtYWxlcnRzLWJvZHkiKTtpZihlKXtlLmlubmVyVGV4dD0iIjtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXSxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIiksbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpO28uaW5uZXJUZXh0PShmPWkuZmlyc3RfdGltZXN0YW1wLChtPStuZXcgRGF0ZS0rbmV3IERhdGUoZi8xZTMpKTwzZTQ/Imp1c3Qgbm93IjptPDZlND9NYXRoLmZsb29yKG0vMWUzKSsiIHNlY29uZHMgYWdvIjptPDEyZTQ/ImEgbWludXRlIGFnbyI6bTwzNmU1P01hdGguZmxvb3IobS82ZTQpKyIgbWludXRlcyBhZ28iOjE9PU1hdGguZmxvb3IobS8zNmU1KT8iYW4gaG91ciBhZ28iOm08ODY0ZTU/TWF0aC5mbG9vcihtLzM2ZTUpKyIgaG91cnMgYWdvIjptPDE3MjhlNT8ieWVzdGVyZGF5IjpNYXRoLmZsb29yKG0vODY0ZTUpKyIgZGF5cyBhZ28iKSxvLmNsYXNzTGlzdC5hZGQoImZpcnN0LW9mZmVuc2UtdGQiKSxyLmFwcGVuZENoaWxkKG8pO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7YS5jbGFzc0xpc3QuYWRkKCJ0ZW5zb3ItZGV2aWNlLXRkIik7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5jbGFzc0xpc3QuYWRkKCJ0ZW5zb3Itc2VjdGlvbi13aXRoaW4tdGFibGUiKSxzLmlubmVyVGV4dD1pLnRlbnNvcl9uYW1lLHRoaXMuX2FkZE9wRXhwYW5zaW9uTGlzdGVuZXIocyxpLnRlbnNvcl9uYW1lKSxhLmFwcGVuZENoaWxkKHMpO3ZhciBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wuY2xhc3NMaXN0LmFkZCgiZGV2aWNlLXNlY3Rpb24td2l0aGluLXRhYmxlIiksbC5pbm5lclRleHQ9IigiK2kuZGV2aWNlX25hbWUrIikiLGEuYXBwZW5kQ2hpbGQobCksci5hcHBlbmRDaGlsZChhKTt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtjLmNsYXNzTGlzdC5hZGQoIm1pbmktaGVhbHRoLXBpbGwiKTt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpO2lmKHUuY2xhc3NMaXN0LmFkZCgibWluaS1oZWFsdGgtcGlsbC10ZCIpLHUuYXBwZW5kQ2hpbGQoYyksci5hcHBlbmRDaGlsZCh1KSxpLm5lZ19pbmZfZXZlbnRfY291bnQpe3ZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2guY2xhc3NMaXN0LmFkZCgibmVnYXRpdmUtaW5mLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiIpLGguaW5uZXJUZXh0PWkubmVnX2luZl9ldmVudF9jb3VudCxoLnNldEF0dHJpYnV0ZSgidGl0bGUiLGkubmVnX2luZl9ldmVudF9jb3VudCsiIGV2ZW50cyB3aXRoIC3iiJ4iKSxjLmFwcGVuZENoaWxkKGgpfWlmKGkucG9zX2luZl9ldmVudF9jb3VudCl7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5jbGFzc0xpc3QuYWRkKCJwb3NpdGl2ZS1pbmYtbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIiksZC5pbm5lclRleHQ9aS5wb3NfaW5mX2V2ZW50X2NvdW50LGQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsaS5wb3NfaW5mX2V2ZW50X2NvdW50KyIgZXZlbnRzIHdpdGggK+KIniIpLGMuYXBwZW5kQ2hpbGQoZCl9aWYoaS5uYW5fZXZlbnRfY291bnQpe3ZhciBwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3AuY2xhc3NMaXN0LmFkZCgibmFuLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiIpLHAuaW5uZXJUZXh0PWkubmFuX2V2ZW50X2NvdW50LHAuc2V0QXR0cmlidXRlKCJ0aXRsZSIsaS5uYW5fZXZlbnRfY291bnQrIiBldmVudHMgd2l0aCBOYU4iKSxjLmFwcGVuZENoaWxkKHApfVlpKGUpLmFwcGVuZENoaWxkKHIpfXZhciBmLG19fV9hZGRPcEV4cGFuc2lvbkxpc3RlbmVyKHQsZSl7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCgpPT57dmFyIHQsbj0oZnVuY3Rpb24gaSh0LGUsbil7Y29uc3QgaT1uLnNwbGl0KCIvIikscj1pW2kubGVuZ3RoLTFdLm1hdGNoKC8oLiopOlx3Ky8pOzI9PT1yLmxlbmd0aCYmKGlbaS5sZW5ndGgtMV09clsxXSk7bGV0IG89aVswXSxhPWUuZ2V0UmVuZGVyTm9kZUJ5TmFtZShvKTtmb3IobGV0IG49MTtuPGkubGVuZ3RoJiZhLm5vZGUudHlwZSE9PWpHdC5PUDtuKyspZS5idWlsZFN1YmhpZXJhcmNoeShvKSxhLmV4cGFuZGVkPSEwLHQuc2V0Tm9kZUV4cGFuZGVkKGEpLG8rPSIvIitpW25dLGE9ZS5nZXRSZW5kZXJOb2RlQnlOYW1lKG8pO3JldHVybiBhLm5vZGUubmFtZX0pKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY2VuZSIpLHRoaXMucmVuZGVySGllcmFyY2h5LGUpLHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidGYtZ3JhcGgtaW5mbyNncmFwaC1pbmZvIik7ciYmKHQ9ci5zY3JvbGxIZWlnaHQtci5zY3JvbGxUb3ApO3ZhciBvPXRoaXMuc2VsZWN0ZWROb2RlO3RoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLG4pO3ZhciBhPSgpPT57ci5zY3JvbGxUb3A9ci5zY3JvbGxIZWlnaHQtdH07ciYmKG8/YSgpOndpbmRvdy5zZXRUaW1lb3V0KGEsMjApKX0pKX19O3ZhciBYV3Q7WVd0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBoMiB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtbGVnZW5kIHsKICAgICAgICBwYWRkaW5nOiAxNXB4OwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtbGVnZW5kIGgyIHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtZW50cnkgewogICAgICAgIG1hcmdpbjogMTBweCAxMHB4IDEwcHggMDsKICAgICAgfQoKICAgICAgLmhlYWx0aC1waWxsLWVudHJ5IC5jb2xvci1wcmV2aWV3IHsKICAgICAgICB3aWR0aDogMjZweDsKICAgICAgICBoZWlnaHQ6IDI2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW46IDAgMTBweCAwIDA7CiAgICAgIH0KCiAgICAgIC5oZWFsdGgtcGlsbC1lbnRyeSAuY29sb3ItbGFiZWwsCiAgICAgIC5oZWFsdGgtcGlsbC1lbnRyeSAudGVuc29yLWNvdW50IHsKICAgICAgICBjb2xvcjogIzc3NzsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMjJweDsKICAgICAgICBsaW5lLWhlaWdodDogMjZweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtZW50cnkgLnRlbnNvci1jb3VudCB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICB9CgogICAgICAjaGVhbHRoLXBpbGwtc3RlcC1zbGlkZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogMCAwIDAgLTE1cHg7CiAgICAgICAgLyogMzEgY29tZXMgZnJvbSBhZGRpbmcgYSBwYWRkaW5nIG9mIDE1cHggZnJvbSBib3RoIHNpZGVzIG9mIHRoZSBwYXBlci1zbGlkZXIsIHN1YnRyYWN0aW5nCiAgICogMXB4IHNvIHRoYXQgdGhlIHNsaWRlciB3aWR0aCBhbGlnbnMgd2l0aCB0aGUgaW1hZ2UgKHRoZSBsYXN0IHNsaWRlciBtYXJrZXIgdGFrZXMgdXAgMXB4KSwKICAgKiBhbmQgYWRkaW5nIDJweCB0byBhY2NvdW50IGZvciBhIGJvcmRlciBvZiAxcHggb24gYm90aCBzaWRlcyBvZiB0aGUgaW1hZ2UuIDMwIC0gMSArIDIuCiAgICogQXBwYXJlbnRseSwgdGhlIHBhcGVyLXNsaWRlciBsYWNrcyBhIG1peGluIGZvciB0aG9zZSBwYWRkaW5nIHZhbHVlcy4gKi8KICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMzFweCk7CiAgICAgIH0KCiAgICAgICNoZWFsdGgtcGlsbHMtbG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgICAgfQoKICAgICAgI2hlYWx0aC1waWxsLXN0ZXAtbnVtYmVyLWlucHV0IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgICAgfQoKICAgICAgI251bWVyaWMtYWxlcnRzLXRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgICNudW1lcmljLWFsZXJ0cy10YWJsZSB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQoKICAgICAgI251bWVyaWMtYWxlcnRzLXRhYmxlIHRkIHsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgICB9CgogICAgICAjbnVtZXJpYy1hbGVydHMtdGFibGUgLmZpcnN0LW9mZmVuc2UtdGQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmZpcnN0LW9mZmVuc2UtdGQgewogICAgICAgIHdpZHRoOiA4MHB4OwogICAgICB9CgogICAgICAudGVuc29yLWRldmljZS10ZCB7CiAgICAgICAgbWF4LXdpZHRoOiAxNDBweDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC50ZW5zb3Itc2VjdGlvbi13aXRoaW4tdGFibGUgewogICAgICAgIGNvbG9yOiAjMjY2MjM2OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC50ZW5zb3Itc2VjdGlvbi13aXRoaW4tdGFibGU6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5kZXZpY2Utc2VjdGlvbi13aXRoaW4tdGFibGUgewogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICB9CgogICAgICAubWluaS1oZWFsdGgtcGlsbCB7CiAgICAgICAgd2lkdGg6IDEzMHB4OwogICAgICB9CgogICAgICAubWluaS1oZWFsdGgtcGlsbCA+IGRpdiB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiA2MHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgI2V2ZW50LWNvdW50cy10aCB7CiAgICAgICAgcGFkZGluZzogMCAwIDAgMTBweDsKICAgICAgfQoKICAgICAgLm5lZ2F0aXZlLWluZi1taW5pLWhlYWx0aC1waWxsLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6IHJnYigyNTUsIDE0MSwgMCk7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wb3NpdGl2ZS1pbmYtbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoMCwgNjIsIDIxMik7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5uYW4tbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoMjA0LCA0NywgNDQpOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICB9CgogICAgICAubmVnYXRpdmUtaW5mLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiwKICAgICAgLnBvc2l0aXZlLWluZi1taW5pLWhlYWx0aC1waWxsLXNlY3Rpb24sCiAgICAgIC5uYW4tbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIG1hcmdpbjogMCAwIDAgMTBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5uby1udW1lcmljLWFsZXJ0cy1ub3RpZmljYXRpb24gewogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJjYXJkIGhlYWx0aC1waWxsLWxlZ2VuZCI+CiAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4KICAgICAgICBFbmFibGUgYWxsIChub3QganVzdCBzYW1wbGVkKSBzdGVwcy4gUmVxdWlyZXMgc2xvdyBkaXNrIHJlYWQuCiAgICAgIDwvZGl2PgogICAgICA8cGFwZXItdG9nZ2xlLWJ1dHRvbgogICAgICAgIGlkPSJlbmFibGVBbGxTdGVwc01vZGVUb2dnbGUiCiAgICAgICAgY2hlY2tlZD0ie3thbGxTdGVwc01vZGVFbmFibGVkfX0iCiAgICAgID4KICAgICAgPC9wYXBlci10b2dnbGUtYnV0dG9uPgogICAgICA8aDI+CiAgICAgICAgU3RlcCBvZiBIZWFsdGggUGlsbHM6CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2FsbFN0ZXBzTW9kZUVuYWJsZWRdXSI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgICAgICBpZD0iaGVhbHRoLXBpbGwtc3RlcC1udW1iZXItaW5wdXQiCiAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgbWF4PSJbW19iaWdnZXN0U3RlcEV2ZXJTZWVuXV0iCiAgICAgICAgICAgIHZhbHVlPSJ7e3NwZWNpZmljSGVhbHRoUGlsbFN0ZXA6OmlucHV0fX0iCiAgICAgICAgICAvPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFhbGxTdGVwc01vZGVFbmFibGVkXV0iPgogICAgICAgICAgW1tfY3VycmVudFN0ZXBEaXNwbGF5VmFsdWVdXQogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHBhcGVyLXNwaW5uZXItbGl0ZQogICAgICAgICAgYWN0aXZlCiAgICAgICAgICBoaWRkZW4kPSJbWyFhcmVIZWFsdGhQaWxsc0xvYWRpbmddXSIKICAgICAgICAgIGlkPSJoZWFsdGgtcGlsbHMtbG9hZGluZy1zcGlubmVyIgogICAgICAgID48L3BhcGVyLXNwaW5uZXItbGl0ZT4KICAgICAgPC9oMj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2FsbFN0ZXBzTW9kZUVuYWJsZWRdXSI+CiAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgaWQ9ImhlYWx0aC1waWxsLXN0ZXAtc2xpZGVyIgogICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e3NwZWNpZmljSGVhbHRoUGlsbFN0ZXB9fSIKICAgICAgICAgIG1heD0iW1tfYmlnZ2VzdFN0ZXBFdmVyU2Vlbl1dIgogICAgICAgICAgc25hcHMKICAgICAgICAgIHN0ZXA9IjEiCiAgICAgICAgICB2YWx1ZT0ie3tzcGVjaWZpY0hlYWx0aFBpbGxTdGVwfX0iCiAgICAgICAgPjwvcGFwZXItc2xpZGVyPgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIWFsbFN0ZXBzTW9kZUVuYWJsZWRdXSI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19tYXhTdGVwSW5kZXhdXSI+CiAgICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICAgIGlkPSJoZWFsdGgtcGlsbC1zdGVwLXNsaWRlciIKICAgICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e2hlYWx0aFBpbGxTdGVwSW5kZXh9fSIKICAgICAgICAgICAgbWF4PSJbW19tYXhTdGVwSW5kZXhdXSIKICAgICAgICAgICAgc25hcHMKICAgICAgICAgICAgc3RlcD0iMSIKICAgICAgICAgICAgdmFsdWU9Int7aGVhbHRoUGlsbFN0ZXBJbmRleH19IgogICAgICAgICAgPjwvcGFwZXItc2xpZGVyPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxoMj4KICAgICAgICBIZWFsdGggUGlsbAogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1toZWFsdGhQaWxsVmFsdWVzRm9yU2VsZWN0ZWROb2RlXV0iPgogICAgICAgICAgQ291bnRzIGZvciBTZWxlY3RlZCBOb2RlCiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIWhlYWx0aFBpbGxWYWx1ZXNGb3JTZWxlY3RlZE5vZGVdXSI+CiAgICAgICAgICBMZWdlbmQKICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2gyPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW2hlYWx0aFBpbGxFbnRyaWVzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWx0aC1waWxsLWVudHJ5Ij4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9ImNvbG9yLXByZXZpZXciCiAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kOltbaXRlbS5iYWNrZ3JvdW5kX2NvbG9yXV0iCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sYWJlbCI+W1tpdGVtLmxhYmVsXV08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRlbnNvci1jb3VudCI+CiAgICAgICAgICAgIFtbX2NvbXB1dGVUZW5zb3JDb3VudFN0cmluZyhoZWFsdGhQaWxsVmFsdWVzRm9yU2VsZWN0ZWROb2RlLAogICAgICAgICAgICBpbmRleCldXQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxkaXYgaGlkZGVuJD0iW1shX2hhc0RlYnVnZ2VyTnVtZXJpY0FsZXJ0cyhkZWJ1Z2dlck51bWVyaWNBbGVydHMpXV0iPgogICAgICAgIDxoMiBpZD0ibnVtZXJpYy1hbGVydHMtaGVhZGVyIj5OdW1lcmljIEFsZXJ0czwvaDI+CiAgICAgICAgPHA+QWxlcnRzIGFyZSBzb3J0ZWQgZnJvbSB0b3AgdG8gYm90dG9tIGJ5IGluY3JlYXNpbmcgdGltZXN0YW1wLjwvcD4KICAgICAgICA8ZGl2IGlkPSJudW1lcmljLWFsZXJ0cy10YWJsZS1jb250YWluZXIiPgogICAgICAgICAgPHRhYmxlIGlkPSJudW1lcmljLWFsZXJ0cy10YWJsZSI+CiAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGg+Rmlyc3QgT2ZmZW5zZTwvdGg+CiAgICAgICAgICAgICAgICA8dGg+VGVuc29yIChEZXZpY2UpPC90aD4KICAgICAgICAgICAgICAgIDx0aCBpZD0iZXZlbnQtY291bnRzLXRoIj5FdmVudCBDb3VudHM8L3RoPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgIDx0Ym9keSBpZD0ibnVtZXJpYy1hbGVydHMtYm9keSI+PC90Ym9keT4KICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8dGVtcGxhdGUKICAgICAgICBpcz0iZG9tLWlmIgogICAgICAgIGlmPSJbWyFfaGFzRGVidWdnZXJOdW1lcmljQWxlcnRzKGRlYnVnZ2VyTnVtZXJpY0FsZXJ0cyldXSIKICAgICAgPgogICAgICAgIDxwIGNsYXNzPSJuby1udW1lcmljLWFsZXJ0cy1ub3RpZmljYXRpb24iPgogICAgICAgICAgTm8gbnVtZXJpYyBhbGVydHMgc28gZmFyLiBUaGF0IGlzIGxpa2VseSBnb29kLiBBbGVydHMgaW5kaWNhdGUgdGhlCiAgICAgICAgICBwcmVzZW5jZSBvZiBOYU4gb3IgKCsvLSkgSW5maW5pdHkgdmFsdWVzLCB3aGljaCBtYXkgYmUgY29uY2VybmluZy4KICAgICAgICA8L3A+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3BhcGVyLW1hdGVyaWFsPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIseVd0KV0sWVd0LnByb3RvdHlwZSwicmVuZGVySGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXksbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFlXdC5wcm90b3R5cGUsImRlYnVnZ2VyTnVtZXJpY0FsZXJ0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxZV3QucHJvdG90eXBlLCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxZV3QucHJvdG90eXBlLCJoZWFsdGhQaWxsU3RlcEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxZV3QucHJvdG90eXBlLCJzcGVjaWZpY0hlYWx0aFBpbGxTdGVwIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxZV3QucHJvdG90eXBlLCJzZWxlY3RlZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFlXdC5wcm90b3R5cGUsImhpZ2hsaWdodGVkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWVd0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlSW5jbHVkZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWVd0LnByb3RvdHlwZSwiYXJlSGVhbHRoUGlsbHNMb2FkaW5nIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxZV3QucHJvdG90eXBlLCJoZWFsdGhQaWxsRW50cmllcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFlXdC5wcm90b3R5cGUsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLHZvaWQgMCksdChbcygibm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsImhlYWx0aFBpbGxTdGVwSW5kZXgiLCJzZWxlY3RlZE5vZGUiLCJhbGxTdGVwc01vZGVFbmFibGVkIiwiYXJlSGVhbHRoUGlsbHNMb2FkaW5nIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZV3QucHJvdG90eXBlLCJoZWFsdGhQaWxsVmFsdWVzRm9yU2VsZWN0ZWROb2RlIixudWxsKSx0KFtzKCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiwiaGVhbHRoUGlsbFN0ZXBJbmRleCIsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLCJzcGVjaWZpY0hlYWx0aFBpbGxTdGVwIiwiYXJlSGVhbHRoUGlsbHNMb2FkaW5nIiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sWVd0LnByb3RvdHlwZSwiX2N1cnJlbnRTdGVwRGlzcGxheVZhbHVlIixudWxsKSx0KFtzKCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sWVd0LnByb3RvdHlwZSwiX2JpZ2dlc3RTdGVwRXZlclNlZW4iLG51bGwpLHQoW3MoIm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMiKSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZV3QucHJvdG90eXBlLCJfbWF4U3RlcEluZGV4IixudWxsKSx0KFthKCJkZWJ1Z2dlck51bWVyaWNBbGVydHMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFlXdC5wcm90b3R5cGUsIl91cGRhdGVBbGVydHNMaXN0IixudWxsKSxZV3Q9dChbaSgidGYtZ3JhcGgtZGVidWdnZXItZGF0YS1jYXJkIildLFlXdCksKGZ1bmN0aW9uKHQpe3QuQ09OU1Q9IkNPTlNUIix0Lk1FVEE9Ik1FVEEiLHQuT1A9Ik9QIix0LlNFUklFUz0iU0VSSUVTIix0LlNVTU1BUlk9IlNVTU1BUlkifSkoWFd0fHwoWFd0PXt9KSk7bGV0ICRXdD1jbGFzcyBleHRlbmRzKGVyKGlsKHllKSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnZlcnRpY2FsPSExLHRoaXMuZmlsbE92ZXJyaWRlPW51bGwsdGhpcy5zdHJva2VPdmVycmlkZT1udWxsLHRoaXMuaGVpZ2h0PTIwLHRoaXMuZmFkZWQ9ITF9Z2V0U3ZnRGVmaW5hYmxlRWxlbWVudCgpe3JldHVybiB0aGlzLiQuc3ZnRGVmc31nZXQgX2ZpbGwoKXt2YXIgdD10aGlzLmZpbGxPdmVycmlkZTtpZihudWxsIT10KXJldHVybiB0O3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UgWFd0Lk1FVEE6cmV0dXJuIHBXdC5ERUZBVUxUX0ZJTEw7Y2FzZSBYV3QuU0VSSUVTOnJldHVybiJ3aGl0ZSI7ZGVmYXVsdDpyZXR1cm4iI2ZmZmZmZiJ9fWdldCBfc3Ryb2tlKCl7dmFyIHQ9dGhpcy5zdHJva2VPdmVycmlkZTtpZihudWxsIT10KXJldHVybiB0O3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UgWFd0Lk1FVEE6cmV0dXJuIHBXdC5ERUZBVUxUX1NUUk9LRTtjYXNlIFhXdC5TRVJJRVM6ZGVmYXVsdDpyZXR1cm4iI2IyYjJiMiJ9fV9pc1R5cGUodCxlKXtyZXR1cm4gdD09PWV9X2ZhZGVkQ2xhc3ModCxlKXtyZXR1cm4gdD8iZmFkZWQtIitlOiIifX07JFd0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1zaXplOiAwOwogICAgICB9CgogICAgICA6aG9zdCguZGFyay1tb2RlKSBzdmcgewogICAgICAgIGZpbHRlcjogaW52ZXJ0KDEpOwogICAgICB9CgogICAgICAuZmFkZWQtcmVjdCB7CiAgICAgICAgZmlsbDogdXJsKCNyZWN0SGF0Y2gpOwogICAgICB9CgogICAgICAuZmFkZWQtZWxsaXBzZSB7CiAgICAgICAgZmlsbDogdXJsKCNlbGxpcHNlSGF0Y2gpOwogICAgICB9CgogICAgICAuZmFkZWQtcmVjdCwKICAgICAgLmZhZGVkLWVsbGlwc2UsCiAgICAgIC5mYWRlZC1zZXJpZXMgewogICAgICAgIHN0cm9rZTogdmFyKC0tdGItZ3JhcGgtZmFkZWQpICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgI3JlY3RIYXRjaCBsaW5lLAogICAgICAjZWxsaXBzZUhhdGNoIGxpbmUgewogICAgICAgIGNvbG9yOiAjZTBkNGIzICFpbXBvcnRhbnQ7CiAgICAgICAgZmlsbDogd2hpdGU7CiAgICAgICAgc3Ryb2tlOiAjZTBkNGIzICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8IS0tIFNWRyBmb3IgZGVmaW5pdGlvbnMgLS0+CiAgICA8c3ZnIGhlaWdodD0iMCIgd2lkdGg9IjAiIGlkPSJzdmdEZWZzIj4KICAgICAgPGRlZnM+CiAgICAgICAgPCEtLSBIYXRjaCBwYXR0ZXJucyBmb3IgZmFkZWQgb3V0IG5vZGVzLiAtLT4KICAgICAgICA8cGF0dGVybgogICAgICAgICAgaWQ9InJlY3RIYXRjaCIKICAgICAgICAgIHBhdHRlcm5UcmFuc2Zvcm09InJvdGF0ZSg0NSAwIDApIgogICAgICAgICAgd2lkdGg9IjUiCiAgICAgICAgICBoZWlnaHQ9IjUiCiAgICAgICAgICBwYXR0ZXJuVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgID4KICAgICAgICAgIDxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAxIj48L2xpbmU+CiAgICAgICAgPC9wYXR0ZXJuPgogICAgICAgIDxwYXR0ZXJuCiAgICAgICAgICBpZD0iZWxsaXBzZUhhdGNoIgogICAgICAgICAgcGF0dGVyblRyYW5zZm9ybT0icm90YXRlKDQ1IDAgMCkiCiAgICAgICAgICB3aWR0aD0iMiIKICAgICAgICAgIGhlaWdodD0iMiIKICAgICAgICAgIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgPgogICAgICAgICAgPGxpbmUgeDE9IjAiIHkxPSIwIiB4Mj0iMCIgeTI9IjIiIHN0eWxlPSJzdHJva2Utd2lkdGg6IDEiPjwvbGluZT4KICAgICAgICA8L3BhdHRlcm4+CiAgICAgICAgPCEtLSBUZW1wbGF0ZSBmb3IgYW4gT3Agbm9kZSBlbGxpcHNlLiAtLT4KICAgICAgICA8ZWxsaXBzZQogICAgICAgICAgaWQ9Im9wLW5vZGUtc3RhbXAiCiAgICAgICAgICByeD0iNy41IgogICAgICAgICAgcnk9IjMiCiAgICAgICAgICBzdHJva2U9ImluaGVyaXQiCiAgICAgICAgICBmaWxsPSJpbmhlcml0IgogICAgICAgID48L2VsbGlwc2U+CiAgICAgICAgPCEtLSBUZW1wbGF0ZSBmb3IgYW4gT3Agbm9kZSBhbm5vdGF0aW9uIGVsbGlwc2UgKHNtYWxsZXIpLiAtLT4KICAgICAgICA8ZWxsaXBzZQogICAgICAgICAgaWQ9Im9wLW5vZGUtYW5ub3RhdGlvbi1zdGFtcCIKICAgICAgICAgIHJ4PSI1IgogICAgICAgICAgcnk9IjIiCiAgICAgICAgICBzdHJva2U9ImluaGVyaXQiCiAgICAgICAgICBmaWxsPSJpbmhlcml0IgogICAgICAgID48L2VsbGlwc2U+CiAgICAgICAgPCEtLSBWZXJ0aWNhbGx5IHN0YWNrZWQgc2VyaWVzIG9mIE9wIG5vZGVzIHdoZW4gdW5leHBhbmRlZC4gLS0+CiAgICAgICAgPGcgaWQ9Im9wLXNlcmllcy12ZXJ0aWNhbC1zdGFtcCI+CiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSI5Ij48L3VzZT4KICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjgiIHk9IjYiPjwvdXNlPgogICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIgeD0iOCIgeT0iMyI+PC91c2U+CiAgICAgICAgPC9nPgogICAgICAgIDxnIGlkPSJvcC1zZXJpZXMtaG9yaXpvbnRhbC1zdGFtcCI+CiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSIxNiIgeT0iNCI+PC91c2U+CiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSIxMiIgeT0iNCI+PC91c2U+CiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSI0Ij48L3VzZT4KICAgICAgICA8L2c+CiAgICAgICAgPGcKICAgICAgICAgIGlkPSJzdW1tYXJ5LWljb24iCiAgICAgICAgICBmaWxsPSIjODQ4NDg0IgogICAgICAgICAgaGVpZ2h0PSIxMiIKICAgICAgICAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgICAgICAgIHdpZHRoPSIxMiIKICAgICAgICA+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMTdIN3YtN2gydjd6bTQgMGgtMlY3aDJ2MTB6bTQgMGgtMnYtNGgydjR6IgogICAgICAgICAgPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICAgIDwvZGVmcz4KICAgIDwvc3ZnPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1R5cGUodHlwZSwgJ0NPTlNUJyldXSI+CiAgICAgIDxzdmcKICAgICAgICBoZWlnaHQkPSJbW2hlaWdodF1dIgogICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgdmlld0JveD0iMCAwIDEwIDEwIgogICAgICA+CiAgICAgICAgPGNpcmNsZQogICAgICAgICAgY3g9IjUiCiAgICAgICAgICBjeT0iNSIKICAgICAgICAgIHI9IjMiCiAgICAgICAgICBmaWxsJD0iW1tfZmlsbF1dIgogICAgICAgICAgc3Ryb2tlJD0iW1tfc3Ryb2tlXV0iCiAgICAgICAgPjwvY2lyY2xlPgogICAgICA8L3N2Zz4KICAgIDwvdGVtcGxhdGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzVHlwZSh0eXBlLCAnU1VNTUFSWScpXV0iPgogICAgICA8c3ZnCiAgICAgICAgd2lkdGgkPSJbW2hlaWdodF1dIgogICAgICAgIGhlaWdodCQ9IltbaGVpZ2h0XV0iCiAgICAgICAgdmlld0JveD0iMCAwIDI0IDI0IgogICAgICAgIGZpbGw9IiM4NDg0ODQiCiAgICAgID4KICAgICAgICA8cGF0aAogICAgICAgICAgZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE3SDd2LTdoMnY3em00IDBoLTJWN2gydjEwem00IDBoLTJ2LTRoMnY0eiIKICAgICAgICA+PC9wYXRoPgogICAgICA8L3N2Zz4KICAgIDwvdGVtcGxhdGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzVHlwZSh0eXBlLCAnT1AnKV1dIj4KICAgICAgPHN2ZwogICAgICAgIGhlaWdodCQ9IltbaGVpZ2h0XV0iCiAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICB2aWV3Qm94PSIwIDAgMTYgOCIKICAgICAgPgogICAgICAgIDx1c2UKICAgICAgICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgICAgICAgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiCiAgICAgICAgICBmaWxsJD0iW1tfZmlsbF1dIgogICAgICAgICAgc3Ryb2tlJD0iW1tfc3Ryb2tlXV0iCiAgICAgICAgICBjbGFzcyQ9Int7X2ZhZGVkQ2xhc3MoZmFkZWQsICdlbGxpcHNlJyl9fSIKICAgICAgICAgIHg9IjgiCiAgICAgICAgICB5PSI0IgogICAgICAgID48L3VzZT4KICAgICAgPC9zdmc+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1R5cGUodHlwZSwgJ01FVEEnKV1dIj4KICAgICAgPHN2ZwogICAgICAgIGhlaWdodCQ9IltbaGVpZ2h0XV0iCiAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICB2aWV3Qm94PSIwIDAgMzcgMTYiCiAgICAgID4KICAgICAgICA8cmVjdAogICAgICAgICAgeD0iMSIKICAgICAgICAgIHk9IjEiCiAgICAgICAgICBmaWxsJD0iW1tfZmlsbF1dIgogICAgICAgICAgc3Ryb2tlJD0iW1tfc3Ryb2tlXV0iCiAgICAgICAgICBjbGFzcyQ9Int7X2ZhZGVkQ2xhc3MoZmFkZWQsICdyZWN0Jyl9fSIKICAgICAgICAgIHN0cm9rZS13aWR0aD0iMnB4IgogICAgICAgICAgaGVpZ2h0PSIxNCIKICAgICAgICAgIHdpZHRoPSIzNSIKICAgICAgICAgIHJ4PSI1IgogICAgICAgICAgcnk9IjUiCiAgICAgICAgPjwvcmVjdD4KICAgICAgPC9zdmc+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1R5cGUodHlwZSwgJ1NFUklFUycpXV0iPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbdmVydGljYWxdXSI+CiAgICAgICAgPHN2ZwogICAgICAgICAgaGVpZ2h0JD0iW1toZWlnaHRdXSIKICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgICB2aWV3Qm94PSIwIDAgMTYgMTUiCiAgICAgICAgPgogICAgICAgICAgPHVzZQogICAgICAgICAgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgICAgICAgICAgeGxpbms6aHJlZj0iI29wLXNlcmllcy12ZXJ0aWNhbC1zdGFtcCIKICAgICAgICAgICAgZmlsbCQ9IltbX2ZpbGxdXSIKICAgICAgICAgICAgc3Ryb2tlJD0iW1tfc3Ryb2tlXV0iCiAgICAgICAgICAgIGNsYXNzJD0ie3tfZmFkZWRDbGFzcyhmYWRlZCwgJ3NlcmllcycpfX0iCiAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgIHk9IjIiCiAgICAgICAgICA+PC91c2U+CiAgICAgICAgPC9zdmc+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shdmVydGljYWxdXSI+CiAgICAgICAgPHN2ZwogICAgICAgICAgaGVpZ2h0JD0iW1toZWlnaHRdXSIKICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgICB2aWV3Qm94PSIwIDAgMjQgMTAiCiAgICAgICAgPgogICAgICAgICAgPHVzZQogICAgICAgICAgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgICAgICAgICAgeGxpbms6aHJlZj0iI29wLXNlcmllcy1ob3Jpem9udGFsLXN0YW1wIgogICAgICAgICAgICBmaWxsJD0iW1tfZmlsbF1dIgogICAgICAgICAgICBzdHJva2UkPSJbW19zdHJva2VdXSIKICAgICAgICAgICAgY2xhc3MkPSJ7e19mYWRlZENsYXNzKGZhZGVkLCAnc2VyaWVzJyl9fSIKICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgeT0iMSIKICAgICAgICAgID48L3VzZT4KICAgICAgICA8L3N2Zz4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvdGVtcGxhdGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSwkV3QucHJvdG90eXBlLCJ0eXBlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sJFd0LnByb3RvdHlwZSwidmVydGljYWwiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sJFd0LnByb3RvdHlwZSwiZmlsbE92ZXJyaWRlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLCRXdC5wcm90b3R5cGUsInN0cm9rZU92ZXJyaWRlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLCRXdC5wcm90b3R5cGUsImhlaWdodCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLCRXdC5wcm90b3R5cGUsImZhZGVkIix2b2lkIDApLHQoW3MoInR5cGUiLCJmaWxsT3ZlcnJpZGUiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSwkV3QucHJvdG90eXBlLCJfZmlsbCIsbnVsbCksdChbcygidHlwZSIsInN0cm9rZU92ZXJyaWRlIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sJFd0LnByb3RvdHlwZSwiX3N0cm9rZSIsbnVsbCksJFd0PXQoW2koInRmLWdyYXBoLWljb24iKV0sJFd0KTt2YXIgS1d0PU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGdldCBHcmFwaEljb25UeXBlKCl7cmV0dXJuIFhXdH19KTtmdW5jdGlvbiBaV3QodCxlKXtjb25zdCBuPXQuZ2V0Q29udGV4dE1lbnUoKSxpPVN1KHQuZ2V0Q29udGV4dE1lbnUoKSk7cmV0dXJuIGZ1bmN0aW9uKHIsbyl7bGV0IGE9dXU7Y29uc3Qgcz0oZnVuY3Rpb24gbCh0KXtsZXQgZT0wLG49MCxpPXQ7Zm9yKDtpJiZpLm9mZnNldExlZnQ+PTAmJmkub2Zmc2V0VG9wPj0wOyllKz1pLm9mZnNldExlZnQtaS5zY3JvbGxMZWZ0LG4rPWkub2Zmc2V0VG9wLWkuc2Nyb2xsVG9wLGk9aS5vZmZzZXRQYXJlbnQ7cmV0dXJue2xlZnQ6ZSx0b3A6bn19KSh0KTtmdW5jdGlvbiBjKHQpe3QmJnQuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXMobil8fChpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixjLHtjYXB0dXJlOiEwfSkpfWkuc3R5bGUoImRpc3BsYXkiLCJibG9jayIpLnN0eWxlKCJsZWZ0IixhLmNsaWVudFgtcy5sZWZ0KzErInB4Iikuc3R5bGUoInRvcCIsYS5jbGllbnRZLXMudG9wKzErInB4IiksYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCksZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGMse2NhcHR1cmU6ITB9KSxpLmh0bWwoIiIpLGkuYXBwZW5kKCJ1bCIpLnNlbGVjdEFsbCgibGkiKS5kYXRhKGUpLmVudGVyKCkuYXBwZW5kKCJsaSIpLm9uKCJjbGljayIsKCh0LGUpPT57dC5hY3Rpb24odGhpcyxyLG8pLGMoKX0pKS5odG1sKChmdW5jdGlvbih0KXtyZXR1cm4gdC50aXRsZShyKX0pKX19bGV0IEpXdD1hRSgpLmRvbWFpbihbTUd0LDEyXSkucmFuZ2UoWyJzbWFsbCIsIm1lZGl1bSIsImxhcmdlIiwieGxhcmdlIl0pO2Z1bmN0aW9uIFFXdCh0KXtyZXR1cm4gdC52KyItLSIrdC53fWZ1bmN0aW9uIHRxdCh0LGUpe2xldCBuPWUuZ2V0Tm9kZUJ5TmFtZSh0LnYpO2lmKG51bGw9PW4ub3V0cHV0U2hhcGVzfHxTZS5leHBvcnRzLmlzRW1wdHkobi5vdXRwdXRTaGFwZXMpKXJldHVybiBudWxsO2xldCBpPW4ub3V0cHV0U2hhcGVzW3Qub3V0cHV0VGVuc29yS2V5XTtyZXR1cm4gbnVsbD09aT9udWxsOjA9PT1pLmxlbmd0aD8ic2NhbGFyIjppLm1hcCgodD0+LTE9PT10PyI/Ijp0KSkuam9pbigiw5ciKX1mdW5jdGlvbiBlcXQodCxlKXtyZXR1cm4gZS5lZGdlTGFiZWxGdW5jdGlvbj9lLmVkZ2VMYWJlbEZ1bmN0aW9uKHQsZSk6dC5iYXNlRWRnZUxpc3QubGVuZ3RoPjE/dC5iYXNlRWRnZUxpc3QubGVuZ3RoKyIgdGVuc29ycyI6dHF0KHQuYmFzZUVkZ2VMaXN0WzBdLGUpfWZ1bmN0aW9uIG5xdCh0LGUsbil7Y29uc3QgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYkd0LCJwYXRoIik7Zm9yKGxldCByPTE7cjx0Lmxlbmd0aDtyKyspaWYoaS5zZXRBdHRyaWJ1dGUoImQiLG4odC5zbGljZSgwLHIpKSksaS5nZXRUb3RhbExlbmd0aCgpPmUpcmV0dXJuIHItMTtyZXR1cm4gdC5sZW5ndGgtMX1mdW5jdGlvbiBpcXQodCxlLG4pe2xldCBpPXVMKCkueCgodD0+dC54KSkueSgodD0+dC55KSkscj1TdShkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwicGF0aCIpKS5hdHRyKCJkIixpKHQpKSxvPStlLmF0dHIoIm1hcmtlcldpZHRoIiksYT1lLmF0dHIoInZpZXdCb3giKS5zcGxpdCgiICIpLm1hcChOdW1iZXIpLHM9YVsyXS1hWzBdLGw9K2UuYXR0cigicmVmWCIpLGM9ci5ub2RlKCk7aWYobil7Y29uc3QgZT1vKigxLWwvcyksbj1jLmdldFBvaW50QXRMZW5ndGgoZSkscj1ucXQodCxlLGkpO3JldHVybiB0W3ItMV09e3g6bi54LHk6bi55fSx0LnNsaWNlKHItMSl9e2NvbnN0IGU9MS1sL3Msbj1jLmdldFRvdGFsTGVuZ3RoKCktbyplLHI9Yy5nZXRQb2ludEF0TGVuZ3RoKG4pLGE9bnF0KHQsbixpKTtyZXR1cm4gdFthXT17eDpyLngseTpyLnl9LHQuc2xpY2UoMCxhKzEpfX1mdW5jdGlvbiBycXQodCxlLG4saSl7aT1pfHx2R3QuRWRnZS5MSU5FLGUubGFiZWwmJmUubGFiZWwuc3RydWN0dXJhbCYmKGkrPSIgIit2R3QuRWRnZS5TVFJVQ1RVUkFMKSxlLmxhYmVsJiZlLmxhYmVsLm1ldGFlZGdlJiZlLmxhYmVsLm1ldGFlZGdlLm51bVJlZkVkZ2VzJiYoaSs9IiAiK3ZHdC5FZGdlLlJFRkVSRU5DRV9FREdFKSxuLmhhbmRsZUVkZ2VTZWxlY3RlZCYmKGkrPSIgIit2R3QuRWRnZS5TRUxFQ1RBQkxFKTtsZXQgcixvPSJwYXRoXyIrUVd0KGUpO2lmKG4ucmVuZGVySGllcmFyY2h5LmVkZ2VXaWR0aEZ1bmN0aW9uKXI9bi5yZW5kZXJIaWVyYXJjaHkuZWRnZVdpZHRoRnVuY3Rpb24oZSxpKTtlbHNle2xldCB0PTE7bnVsbCE9ZS5sYWJlbCYmbnVsbCE9ZS5sYWJlbC5tZXRhZWRnZSYmKHQ9ZS5sYWJlbC5tZXRhZWRnZS50b3RhbFNpemUpLHI9bi5yZW5kZXJIaWVyYXJjaHkuZWRnZVdpZHRoU2l6ZWRCYXNlZFNjYWxlKHQpfWxldCBhPXQuYXBwZW5kKCJwYXRoIikuYXR0cigiaWQiLG8pLmF0dHIoImNsYXNzIixpKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixyKyJweCIpO2lmKGUubGFiZWwmJmUubGFiZWwubWV0YWVkZ2UpaWYoZS5sYWJlbC5tZXRhZWRnZS5udW1SZWZFZGdlcyl7Y29uc3QgdD1gcmVmZXJlbmNlLWFycm93aGVhZC0ke0pXdChyKX1gO2Euc3R5bGUoIm1hcmtlci1zdGFydCIsYHVybCgjJHt0fSlgKSxlLmxhYmVsLnN0YXJ0TWFya2VySWQ9dH1lbHNle2NvbnN0IHQ9YGRhdGFmbG93LWFycm93aGVhZC0ke0pXdChyKX1gO2Euc3R5bGUoIm1hcmtlci1lbmQiLGB1cmwoIyR7dH0pYCksZS5sYWJlbC5lbmRNYXJrZXJJZD10fWlmKG51bGw9PWUubGFiZWx8fG51bGw9PWUubGFiZWwubWV0YWVkZ2UpcmV0dXJuO2xldCBzPWVxdChlLmxhYmVsLm1ldGFlZGdlLG4ucmVuZGVySGllcmFyY2h5KTtudWxsIT1zJiZ0LmFwcGVuZCgidGV4dCIpLmFwcGVuZCgidGV4dFBhdGgiKS5hdHRyKCJ4bGluazpocmVmIiwiIyIrbykuYXR0cigic3RhcnRPZmZzZXQiLCI1MCUiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmF0dHIoImRvbWluYW50LWJhc2VsaW5lIiwiY2VudHJhbCIpLnRleHQocyl9bGV0IG9xdD11TCgpLmN1cnZlKCRMKS54KCh0PT50LngpKS55KCh0PT50LnkpKTt2YXIgYXF0O2Z1bmN0aW9uIHNxdCh0LGUsbil7bGV0IGk9d0d0KHQsImciLHZHdC5Ob2RlLkNPTlRBSU5FUikuc2VsZWN0QWxsKChmdW5jdGlvbigpe3JldHVybiB0aGlzLmNoaWxkTm9kZXN9KSkuZGF0YShlLCh0PT50Lm5vZGUubmFtZSsiOiIrdC5ub2RlLnR5cGUpKTtyZXR1cm4gaS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImRhdGEtbmFtZSIsKHQ9PnQubm9kZS5uYW1lKSkuZWFjaCgoZnVuY3Rpb24odCl7bGV0IGU9U3UodGhpcyk7bi5hZGROb2RlR3JvdXAodC5ub2RlLm5hbWUsZSl9KSkubWVyZ2UoaSkuYXR0cigiY2xhc3MiLCh0PT52R3QuTm9kZS5HUk9VUCsiICIreXF0KHQpKSkuZWFjaCgoZnVuY3Rpb24odCl7bGV0IGU9U3UodGhpcyk7QXF0KHdHdChlLCJnIix2R3QuQW5ub3RhdGlvbi5JTkJPWCksdC5pbkFubm90YXRpb25zLHQsbiksQXF0KHdHdChlLCJnIix2R3QuQW5ub3RhdGlvbi5PVVRCT1gpLHQub3V0QW5ub3RhdGlvbnMsdCxuKTtsZXQgaT1fcXQoZSx0LHZHdC5Ob2RlLlNIQVBFKTt0Lm5vZGUuaXNHcm91cE5vZGUmJihmdW5jdGlvbiByKHQsZSxuKXtsZXQgaT13R3QodCwiZyIsdkd0Lk5vZGUuQlVUVE9OX0NPTlRBSU5FUik7d0d0KGksImNpcmNsZSIsdkd0Lk5vZGUuQlVUVE9OX0NJUkNMRSksd0d0KGksInBhdGgiLHZHdC5Ob2RlLkVYUEFORF9CVVRUT04pLmF0dHIoImQiLCJNMCwtMi4yIFYyLjIgTS0yLjIsMCBIMi4yIiksd0d0KGksInBhdGgiLHZHdC5Ob2RlLkNPTExBUFNFX0JVVFRPTikuYXR0cigiZCIsIk0tMi4yLDAgSDIuMiIpLGkub24oImNsaWNrIiwodD0+e3V1LnN0b3BQcm9wYWdhdGlvbigpLG4uZmlyZSgibm9kZS10b2dnbGUtZXhwYW5kIix7bmFtZTp0Lm5vZGUubmFtZX0pfSkpLChmdW5jdGlvbiByKHQsZSl7bGV0IG49RFd0KGUpKyhlLmV4cGFuZGVkP2Uud2lkdGg6ZS5jb3JlQm94LndpZHRoKS8yLTYsaT1lLnktKGUuZXhwYW5kZWQ/ZS5oZWlnaHQ6ZS5jb3JlQm94LmhlaWdodCkvMis2O2Uubm9kZS50eXBlIT09akd0LlNFUklFU3x8ZS5leHBhbmRlZHx8KG4rPTEwLGktPTIpO2xldCByPSJ0cmFuc2xhdGUoIituKyIsIitpKyIpIjt0LnNlbGVjdEFsbCgicGF0aCIpLnRyYW5zaXRpb24oKS5hdHRyKCJ0cmFuc2Zvcm0iLHIpLHQuc2VsZWN0KCJjaXJjbGUiKS50cmFuc2l0aW9uKCkuYXR0cih7Y3g6bixjeTppLHI6Tld0Lm5vZGVTaXplLm1ldGEuZXhwYW5kQnV0dG9uUmFkaXVzfSl9KShpLGUpfSkoaSx0LG4pLGNxdChpLHQsbiksKGZ1bmN0aW9uIG8odCxlLG4pe2lmKGUubm9kZS5pc0dyb3VwTm9kZSl7aWYoZS5leHBhbmRlZClyZXR1cm4gTHF0KHQsZSxuLHZHdC5TdWJzY2VuZS5HUk9VUCk7Rld0KHQsImciLHZHdC5TdWJzY2VuZS5HUk9VUCkucmVtb3ZlKCl9fSkoZSx0LG4pLGNxdCgoZnVuY3Rpb24gYSh0LGUsbil7bGV0IGk9ZS5kaXNwbGF5TmFtZSxyPWUubm9kZS50eXBlPT09akd0Lk1FVEEmJiFlLmV4cGFuZGVkLG89d0d0KHQsInRleHQiLHZHdC5Ob2RlLkxBQkVMKSxhPW8ubm9kZSgpO2EucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChhKSxvLmF0dHIoImR5IiwiLjM1ZW0iKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpO2xldCBzPTg7c3dpdGNoKGUubm9kZS50eXBlKXtjYXNlIGpHdC5NRVRBOnM9ZS5leHBhbmRlZD85Ojg7YnJlYWs7Y2FzZSBqR3QuT1A6cz02fWlmKHIpe2kubGVuZ3RoPm4ubWF4TWV0YW5vZGVMYWJlbExlbmd0aCYmKGk9aS5zdWJzdHIoMCxuLm1heE1ldGFub2RlTGFiZWxMZW5ndGgtMikrIuKApiIpO2xldCB0PShmdW5jdGlvbiBsKHQpe3JldHVybiBtcXR8fChtcXQ9Vk0oKS5kb21haW4oW3QubWF4TWV0YW5vZGVMYWJlbExlbmd0aExhcmdlRm9udCx0Lm1heE1ldGFub2RlTGFiZWxMZW5ndGhdKS5yYW5nZShbdC5tYXhNZXRhbm9kZUxhYmVsTGVuZ3RoRm9udFNpemUsdC5taW5NZXRhbm9kZUxhYmVsTGVuZ3RoRm9udFNpemVdKS5jbGFtcCghMCkpLG1xdH0pKG4pO28uYXR0cigiZm9udC1zaXplIix0KGkubGVuZ3RoKSsicHgiKSxzPXQoaS5sZW5ndGgpfXJldHVybiBmcXQoby50ZXh0KGkpLGUubm9kZS50eXBlLHMsZSksb30pKGUsdCxuKSx0LG4sdC5ub2RlLnR5cGU9PT1qR3QuTUVUQSksd3F0KGUsdCxuKSwoZnVuY3Rpb24gcyh0LGUpe2xldCBuPUZXdCh0LCJnIix2R3QuTm9kZS5TSEFQRSksaT1EV3QoZSk7c3dpdGNoKGUubm9kZS50eXBlKXtjYXNlIGpHdC5PUDp7Y29uc3Qgcj1lLm5vZGU7U2UuZXhwb3J0cy5pc051bWJlcihyLmZ1bmN0aW9uSW5wdXRJbmRleCl8fFNlLmV4cG9ydHMuaXNOdW1iZXIoci5mdW5jdGlvbk91dHB1dEluZGV4KT8oZnVuY3Rpb24gcih0LGUsbixpLG8pe2NvbnN0IGE9by8yLHM9aS8yLGw9W1tlLG4tYV0sW2UrcyxuK2FdLFtlLXMsbithXV07dC50cmFuc2l0aW9uKCkuYXR0cigicG9pbnRzIixsLm1hcCgodD0+dC5qb2luKCIsIikpKS5qb2luKCIgIikpfSkoRld0KG4sInBvbHlnb24iKSxlLngsZS55LGUuY29yZUJveC53aWR0aCxlLmNvcmVCb3guaGVpZ2h0KTpXV3QoRld0KG4sImVsbGlwc2UiKSxpLGUueSxlLmNvcmVCb3gud2lkdGgsZS5jb3JlQm94LmhlaWdodCksZ3F0KHQsaSxlLnksZS5sYWJlbE9mZnNldCk7YnJlYWt9Y2FzZSBqR3QuTUVUQTp7bGV0IHI9bi5zZWxlY3RBbGwoInJlY3QiKTtlLmV4cGFuZGVkPyhHV3QocixlLngsZS55LGUud2lkdGgsZS5oZWlnaHQpLGxxdCh0LGUpLGdxdCh0LGksZS55LC1lLmhlaWdodC8yK2UubGFiZWxIZWlnaHQvMikpOihHV3QocixpLGUueSxlLmNvcmVCb3gud2lkdGgsZS5jb3JlQm94LmhlaWdodCksZ3F0KHQsaSxlLnksMCkpO2JyZWFrfWNhc2Ugakd0LlNFUklFUzp7bGV0IHI9Rld0KG4sInVzZSIpO2UuZXhwYW5kZWQ/KEdXdChyLGUueCxlLnksZS53aWR0aCxlLmhlaWdodCksbHF0KHQsZSksZ3F0KHQsaSxlLnksLWUuaGVpZ2h0LzIrZS5sYWJlbEhlaWdodC8yKSk6KEdXdChyLGksZS55LGUuY29yZUJveC53aWR0aCxlLmNvcmVCb3guaGVpZ2h0KSxncXQodCxpLGUueSxlLmxhYmVsT2Zmc2V0KSk7YnJlYWt9Y2FzZSBqR3QuQlJJREdFOkdXdChGV3QobiwicmVjdCIpLGUueCxlLnksZS53aWR0aCxlLmhlaWdodCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5yZWNvZ25pemVkIG5vZGUgdHlwZTogIitlLm5vZGUudHlwZSl9fSkoZSx0KX0pKSxpLmV4aXQoKS5lYWNoKChmdW5jdGlvbih0KXtuLnJlbW92ZU5vZGVHcm91cCh0Lm5vZGUubmFtZSk7bGV0IGU9U3UodGhpcyk7dC5pbkFubm90YXRpb25zLmxpc3QubGVuZ3RoPjAmJmUuc2VsZWN0KCIuIit2R3QuQW5ub3RhdGlvbi5JTkJPWCkuc2VsZWN0QWxsKCIuIit2R3QuQW5ub3RhdGlvbi5HUk9VUCkuZWFjaCgoZT0+e24ucmVtb3ZlQW5ub3RhdGlvbkdyb3VwKGUsdCl9KSksdC5vdXRBbm5vdGF0aW9ucy5saXN0Lmxlbmd0aD4wJiZlLnNlbGVjdCgiLiIrdkd0LkFubm90YXRpb24uT1VUQk9YKS5zZWxlY3RBbGwoIi4iK3ZHdC5Bbm5vdGF0aW9uLkdST1VQKS5lYWNoKChlPT57bi5yZW1vdmVBbm5vdGF0aW9uR3JvdXAoZSx0KX0pKX0pKS5yZW1vdmUoKSxpfWZ1bmN0aW9uIGxxdCh0LGUpe2xldCBuPWUueC1lLndpZHRoLzIrZS5wYWRkaW5nTGVmdCxpPWUueS1lLmhlaWdodC8yK2UucGFkZGluZ1RvcDtqV3QoRld0KHQsImciLHZHdC5TdWJzY2VuZS5HUk9VUCksbixpKX1mdW5jdGlvbiBjcXQodCxlLG4saSl7aWYoaSlyZXR1cm4gdm9pZCB0LmF0dHIoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpO2xldCByPVpXdChuLHVxdChlLm5vZGUsbikpO3Qub24oImRibGNsaWNrIiwodD0+e24uZmlyZSgibm9kZS10b2dnbGUtZXhwYW5kIix7bmFtZTp0Lm5vZGUubmFtZX0pfSkpLm9uKCJtb3VzZW92ZXIiLCh0PT57bi5pc05vZGVFeHBhbmRlZCh0KXx8bi5maXJlKCJub2RlLWhpZ2hsaWdodCIse25hbWU6dC5ub2RlLm5hbWV9KX0pKS5vbigibW91c2VvdXQiLCh0PT57bi5pc05vZGVFeHBhbmRlZCh0KXx8bi5maXJlKCJub2RlLXVuaGlnaGxpZ2h0Iix7bmFtZTp0Lm5vZGUubmFtZX0pfSkpLm9uKCJjbGljayIsKHQ9Pnt1dS5zdG9wUHJvcGFnYXRpb24oKSxuLmZpcmUoIm5vZGUtc2VsZWN0Iix7bmFtZTp0Lm5vZGUubmFtZX0pfSkpLm9uKCJjb250ZXh0bWVudSIsKCh0LGUpPT57bi5maXJlKCJub2RlLXNlbGVjdCIse25hbWU6dC5ub2RlLm5hbWV9KSxyLmNhbGwodCxlKX0pKX1mdW5jdGlvbiB1cXQodCxlKXtsZXQgbj1be3RpdGxlOmU9PnVXdCh0LmluY2x1ZGUpLGFjdGlvbjoobixpLHIpPT57ZS5maXJlKCJub2RlLXRvZ2dsZS1leHRyYWN0Iix7bmFtZTp0Lm5hbWV9KX19XTtyZXR1cm4gZS5ub2RlQ29udGV4dE1lbnVJdGVtcyYmKG49bi5jb25jYXQoZS5ub2RlQ29udGV4dE1lbnVJdGVtcykpLGhxdCh0KSYmbi5wdXNoKHt0aXRsZTplPT5wcXQodCksYWN0aW9uOihuLGkscik9PntlLmZpcmUoIm5vZGUtdG9nZ2xlLXNlcmllc2dyb3VwIix7bmFtZTpkcXQodCl9KX19KSxufWZ1bmN0aW9uIGhxdCh0KXtyZXR1cm4gbnVsbCE9PWRxdCh0KX1mdW5jdGlvbiBkcXQodCl7cmV0dXJuIHQ/dC50eXBlPT09akd0LlNFUklFUz90Lm5hbWU6dC50eXBlPT09akd0Lk9QP3Qub3duaW5nU2VyaWVzOm51bGw6bnVsbH1mdW5jdGlvbiBwcXQodCl7cmV0dXJuKGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQ9PT1XR3QuR1JPVVA/IlVuZ3JvdXAgdGhpcyBzZXJpZXMgb2Ygbm9kZXMiOiJHcm91cCB0aGlzIHNlcmllcyBvZiBub2RlcyJ9KShudWxsIT09KGZ1bmN0aW9uIGUodCl7bGV0IGU9bnVsbDtyZXR1cm4gdD8odC50eXBlPT09akd0LlNFUklFUz9lPXQ6dC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUudHlwZT09PWpHdC5TRVJJRVMmJihlPXQucGFyZW50Tm9kZSksZSk6bnVsbH0pKHQpP1dHdC5HUk9VUDpXR3QuVU5HUk9VUCl9ZnVuY3Rpb24gZnF0KHQsZSxuLGkpe2xldCByPXQubm9kZSgpLG89ci50ZXh0Q29udGVudCxhPW51bGw7c3dpdGNoKGUpe2Nhc2Ugakd0Lk1FVEE6aSYmIWkuZXhwYW5kZWQmJihhPU5XdC5ub2RlU2l6ZS5tZXRhLm1heExhYmVsV2lkdGgpO2JyZWFrO2Nhc2Ugakd0Lk9QOmE9Tld0Lm5vZGVTaXplLm9wLm1heExhYmVsV2lkdGg7YnJlYWs7Y2FzZS0xOmE9Tld0LmFubm90YXRpb25zLm1heExhYmVsV2lkdGh9aWYobnVsbCE9PWEpcmV0dXJuIHIudGV4dENvbnRlbnQ9KGZ1bmN0aW9uIHModCxlLG4pe2lmKCF0KXJldHVybiIiO2lmKEJHdCh0LGUpPD1uKXJldHVybiB0O2xldCBpPTAscj10Lmxlbmd0aDtmb3IoO2k8cjspe2NvbnN0IG89aStNYXRoLnJvdW5kKChyLWkpLzIpO0JHdCh0LnNsaWNlKDAsbykrIuKApiIsZSk8PW4/aT1vOnI9by0xfXJldHVybiAwPT09aT90WzBdOnQuc2xpY2UoMCxpKSsi4oCmIn0pKHIudGV4dENvbnRlbnQsbixhKSx0LmFwcGVuZCgidGl0bGUiKS50ZXh0KG8pfSEoZnVuY3Rpb24odCl7dC5OT05FPSJub25lIix0LkNPTVBVVEVfVElNRT0iY29tcHV0ZV90aW1lIix0LkRFVklDRT0iZGV2aWNlIix0Lk1FTU9SWT0ibWVtb3J5Iix0Lk9QX0NPTVBBVElCSUxJVFk9Im9wX2NvbXBhdGliaWxpdHkiLHQuU1RSVUNUVVJFPSJzdHJ1Y3R1cmUiLHQuWExBX0NMVVNURVI9InhsYV9jbHVzdGVyIn0pKGFxdHx8KGFxdD17fSkpO2xldCBtcXQ9bnVsbDtmdW5jdGlvbiBncXQodCxlLG4saSl7Rld0KHQsInRleHQiLHZHdC5Ob2RlLkxBQkVMKS50cmFuc2l0aW9uKCkuYXR0cigieCIsZSkuYXR0cigieSIsbitpKX1mdW5jdGlvbiBfcXQodCxlLG4pe2xldCBpPXdHdCh0LCJnIixuKTtzd2l0Y2goZS5ub2RlLnR5cGUpe2Nhc2Ugakd0Lk9QOmNvbnN0IHQ9ZS5ub2RlO2lmKFNlLmV4cG9ydHMuaXNOdW1iZXIodC5mdW5jdGlvbklucHV0SW5kZXgpfHxTZS5leHBvcnRzLmlzTnVtYmVyKHQuZnVuY3Rpb25PdXRwdXRJbmRleCkpe3dHdChpLCJwb2x5Z29uIix2R3QuTm9kZS5DT0xPUl9UQVJHRVQpO2JyZWFrfXdHdChpLCJlbGxpcHNlIix2R3QuTm9kZS5DT0xPUl9UQVJHRVQpO2JyZWFrO2Nhc2Ugakd0LlNFUklFUzpsZXQgbj0iYW5ub3RhdGlvbiIscj1lO3IuY29yZUdyYXBoJiYobj1yLm5vZGUuaGFzTm9uQ29udHJvbEVkZ2VzPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwiKTtsZXQgbz1bdkd0Lk5vZGUuQ09MT1JfVEFSR0VUXTtyLmlzRmFkZWRPdXQmJm8ucHVzaCgiZmFkZWQtZWxsaXBzZSIpLHdHdChpLCJ1c2UiLG8pLmF0dHIoInhsaW5rOmhyZWYiLCIjb3Atc2VyaWVzLSIrbisiLXN0YW1wIiksd0d0KGksInJlY3QiLHZHdC5Ob2RlLkNPTE9SX1RBUkdFVCkuYXR0cigicngiLGUucmFkaXVzKS5hdHRyKCJyeSIsZS5yYWRpdXMpO2JyZWFrO2Nhc2Ugakd0LkJSSURHRTpjYXNlIGpHdC5NRVRBOndHdChpLCJyZWN0Iix2R3QuTm9kZS5DT0xPUl9UQVJHRVQpLmF0dHIoInJ4IixlLnJhZGl1cykuYXR0cigicnkiLGUucmFkaXVzKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJVbnJlY29nbml6ZWQgbm9kZSB0eXBlOiAiK2Uubm9kZS50eXBlKX1yZXR1cm4gaX1mdW5jdGlvbiB5cXQodCl7c3dpdGNoKHQubm9kZS50eXBlKXtjYXNlIGpHdC5PUDpyZXR1cm4gdkd0Lk9QTk9ERTtjYXNlIGpHdC5NRVRBOnJldHVybiB2R3QuTUVUQU5PREU7Y2FzZSBqR3QuU0VSSUVTOnJldHVybiB2R3QuU0VSSUVTTk9ERTtjYXNlIGpHdC5CUklER0U6cmV0dXJuIHZHdC5CUklER0VOT0RFO2Nhc2Ugakd0LkVMTElQU0lTOnJldHVybiB2R3QuRUxMSVBTSVNOT0RFfXRocm93IEVycm9yKCJVbnJlY29nbml6ZWQgbm9kZSB0eXBlOiAiK3Qubm9kZS50eXBlKX1mdW5jdGlvbiB2cXQodCxlLG4pe2xldCBpPShmdW5jdGlvbiByKHQpe3JldHVybiB0LnJlcGxhY2UoLyhbOi5cW1xdLC9cXFwoXCldKS9nLCJcXCQxIil9KSh0KTtpZighbilyZXR1cm5gdXJsKCMke2l9KWA7bGV0IG89U3UobiksYT1vLnNlbGVjdCgiZGVmcyNfZ3JhcGgtZ3JhZGllbnRzIik7YS5lbXB0eSgpJiYoYT1vLmFwcGVuZCgiZGVmcyIpLmF0dHIoImlkIiwiX2dyYXBoLWdyYWRpZW50cyIpKTtsZXQgcz1hLnNlbGVjdCgibGluZWFyR3JhZGllbnQjIitpKTtpZihzLmVtcHR5KCkpe3M9YS5hcHBlbmQoImxpbmVhckdyYWRpZW50IikuYXR0cigiaWQiLHQpLHMuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCk7bGV0IG49MDtTZS5leHBvcnRzLmVhY2goZSwodD0+e2xldCBlPXQuY29sb3I7cy5hcHBlbmQoInN0b3AiKS5hdHRyKCJvZmZzZXQiLG4pLmF0dHIoInN0b3AtY29sb3IiLGUpLHMuYXBwZW5kKCJzdG9wIikuYXR0cigib2Zmc2V0IixuK3QucHJvcG9ydGlvbikuYXR0cigic3RvcC1jb2xvciIsZSksbis9dC5wcm9wb3J0aW9ufSkpfXJldHVybmB1cmwoIyR7aX0pYH1mdW5jdGlvbiBicXQodCl7U3UodCkuc2VsZWN0KCJkZWZzI19ncmFwaC1ncmFkaWVudHMiKS5yZW1vdmUoKX1mdW5jdGlvbiB4cXQodCxlLG4saSxyKXtsZXQgbz1wV3Q7c3dpdGNoKHQ9dHx8KCgpPT4wKSxlKXtjYXNlIGFxdC5OT05FOmNhc2UgYXF0LlNUUlVDVFVSRTppZihuLm5vZGUudHlwZT09PWpHdC5NRVRBKXtsZXQgcj1uLm5vZGUudGVtcGxhdGVJZDtyZXR1cm4gZT09PWFxdC5TVFJVQ1RVUkUmJm51bGwhPT1yP28uU1RSVUNUVVJFX1BBTEVUVEUodChyKSxpKTpvLlVOS05PV059cmV0dXJuIG4ubm9kZS50eXBlPT09akd0LlNFUklFUz9pP28uRVhQQU5ERURfQ09MT1I6IndoaXRlIjpuLm5vZGUudHlwZT09PWpHdC5CUklER0U/bi5zdHJ1Y3R1cmFsPyIjZjBlIjpuLm5vZGUuaW5ib3VuZD8iIzBlZiI6IiNmZTAiOlNlLmV4cG9ydHMuaXNOdW1iZXIobi5ub2RlLmZ1bmN0aW9uSW5wdXRJbmRleCk/IiM3OTU1NDgiOlNlLmV4cG9ydHMuaXNOdW1iZXIobi5ub2RlLmZ1bmN0aW9uT3V0cHV0SW5kZXgpPyIjMDA5Njg4Ijoid2hpdGUiO2Nhc2UgYXF0LkRFVklDRTpyZXR1cm4gbnVsbD09bi5kZXZpY2VDb2xvcnM/by5VTktOT1dOOmk/by5FWFBBTkRFRF9DT0xPUjp2cXQoImRldmljZS0iK24ubm9kZS5uYW1lLG4uZGV2aWNlQ29sb3JzLHIpO2Nhc2UgYXF0LlhMQV9DTFVTVEVSOnJldHVybiBudWxsPT1uLnhsYUNsdXN0ZXJDb2xvcnM/by5VTktOT1dOOmk/by5FWFBBTkRFRF9DT0xPUjp2cXQoInhsYS0iK24ubm9kZS5uYW1lLG4ueGxhQ2x1c3RlckNvbG9ycyxyKTtjYXNlIGFxdC5DT01QVVRFX1RJTUU6cmV0dXJuIGk/by5FWFBBTkRFRF9DT0xPUjpuLmNvbXB1dGVUaW1lQ29sb3J8fG8uVU5LTk9XTjtjYXNlIGFxdC5NRU1PUlk6cmV0dXJuIGk/by5FWFBBTkRFRF9DT0xPUjpuLm1lbW9yeUNvbG9yfHxvLlVOS05PV047Y2FzZSBhcXQuT1BfQ09NUEFUSUJJTElUWTpyZXR1cm4gbnVsbD09bi5jb21wYXRpYmlsaXR5Q29sb3JzP28uVU5LTk9XTjppP28uRVhQQU5ERURfQ09MT1I6dnF0KCJvcC1jb21wYXQtIituLm5vZGUubmFtZSxuLmNvbXBhdGliaWxpdHlDb2xvcnMscik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gY2FzZSB0byBjb2xvciBub2RlcyBieSIpfX1mdW5jdGlvbiB3cXQodCxlLG4saSl7aT1pfHx2R3QuTm9kZS5TSEFQRTtjb25zdCByPW4uaXNOb2RlSGlnaGxpZ2h0ZWQoZS5ub2RlLm5hbWUpLG89bi5pc05vZGVTZWxlY3RlZChlLm5vZGUubmFtZSksYT1lLmlzSW5FeHRyYWN0fHxlLmlzT3V0RXh0cmFjdHx8ZS5pc0xpYnJhcnlGdW5jdGlvbixzPWUuZXhwYW5kZWQmJmkhPT12R3QuQW5ub3RhdGlvbi5OT0RFLGw9ZS5pc0ZhZGVkT3V0O3QuY2xhc3NlZCgiaGlnaGxpZ2h0ZWQiLHIpLHQuY2xhc3NlZCgic2VsZWN0ZWQiLG8pLHQuY2xhc3NlZCgiZXh0cmFjdCIsYSksdC5jbGFzc2VkKCJleHBhbmRlZCIscyksdC5jbGFzc2VkKCJmYWRlZCIsbCk7Y29uc3QgYz10LnNlbGVjdCgiLiIraSsiIC4iK3ZHdC5Ob2RlLkNPTE9SX1RBUkdFVCksdT14cXQobi50ZW1wbGF0ZUluZGV4LG4uY29sb3JCeSxlLHMsbi5nZXRHcmFwaFN2Z1Jvb3QoKSk7Yy5zdHlsZSgiZmlsbCIsdSksYy5zdHlsZSgic3Ryb2tlIixvP251bGw6U3F0KHUpKX1mdW5jdGlvbiBTcXQodCl7cmV0dXJuInVybCI9PT10LnN1YnN0cmluZygwLDMpP3BXdC5HUkFESUVOVF9PVVRMSU5FOlVoKHQpLmRhcmtlcigpLnRvU3RyaW5nKCl9ZnVuY3Rpb24gTXF0KHQsZSxuLGkpe2NvbnN0IHI9U3UodCk7aWYoci5zZWxlY3RBbGwoIi5pbnB1dC1oaWdobGlnaHQiKS5jbGFzc2VkKCJpbnB1dC1oaWdobGlnaHQiLCExKSxyLnNlbGVjdEFsbCgiLm5vbi1pbnB1dCIpLmNsYXNzZWQoIm5vbi1pbnB1dCIsITEpLHIuc2VsZWN0QWxsKCIuaW5wdXQtcGFyZW50IikuY2xhc3NlZCgiaW5wdXQtcGFyZW50IiwhMSksci5zZWxlY3RBbGwoIi5pbnB1dC1jaGlsZCIpLmNsYXNzZWQoImlucHV0LWNoaWxkIiwhMSksci5zZWxlY3RBbGwoIi5pbnB1dC1lZGdlLWhpZ2hsaWdodCIpLmNsYXNzZWQoImlucHV0LWVkZ2UtaGlnaGxpZ2h0IiwhMSksci5zZWxlY3RBbGwoIi5ub24taW5wdXQtZWRnZS1oaWdobGlnaHQiKS5jbGFzc2VkKCJub24taW5wdXQtZWRnZS1oaWdobGlnaHQiLCExKSxyLnNlbGVjdEFsbCgiLmlucHV0LWhpZ2hsaWdodC1zZWxlY3RlZCIpLmNsYXNzZWQoImlucHV0LWhpZ2hsaWdodC1zZWxlY3RlZCIsITEpLCFlfHwhaXx8IW4pcmV0dXJuO2xldCBvPUVxdChuLGUpLGE9e307U2UuZXhwb3J0cy5lYWNoKG8sKGZ1bmN0aW9uKG4pe2E9VHF0KHQsZSxuLGEpfSkpO2xldCBzPU9iamVjdC5rZXlzKGEpLGw9KGZ1bmN0aW9uIGModCxlKXtsZXQgbj17fTtyZXR1cm4gU2UuZXhwb3J0cy5lYWNoKGUsKGZ1bmN0aW9uKGUpe2xldCBpPXQuZ2V0Tm9kZUJ5TmFtZShlKSxyPUNxdCh0LGkpO25bci5uYW1lXT1yfSkpLG59KShlLHMpOyEoZnVuY3Rpb24gdSh0LGUpe1NlLmV4cG9ydHMuZm9yT3duKGUsKGZ1bmN0aW9uKGUpe2xldCBuPWU7Zm9yKDtuLm5hbWUhPT1GR3Q7KXtjb25zdCBlPVN1KHQpLnNlbGVjdChgLm5vZGVbZGF0YS1uYW1lPSIke24ubmFtZX0iXWApOyFlLm5vZGVzKCkubGVuZ3RofHxlLmNsYXNzZWQoImlucHV0LWhpZ2hsaWdodCIpfHxlLmNsYXNzZWQoInNlbGVjdGVkIil8fGUuY2xhc3NlZCgib3AiKXx8ZS5jbGFzc2VkKCJpbnB1dC1wYXJlbnQiLCEwKSxuPW4ucGFyZW50Tm9kZX19KSl9KSh0LGwpLHIuc2VsZWN0QWxsKCJnLm5vZGU6bm90KC5zZWxlY3RlZCk6bm90KC5pbnB1dC1oaWdobGlnaHQpOm5vdCguaW5wdXQtcGFyZW50KTpub3QoLmlucHV0LWNoaWxkcmVuKSIpLmNsYXNzZWQoIm5vbi1pbnB1dCIsITApLmVhY2goKGZ1bmN0aW9uKHQpe3Iuc2VsZWN0QWxsKGBbZGF0YS1uYW1lPSIke3Qubm9kZS5uYW1lfSJdYCkuY2xhc3NlZCgibm9uLWlucHV0IiwhMCl9KSksci5zZWxlY3RBbGwoImcuZWRnZTpub3QoLmlucHV0LWVkZ2UtaGlnaGxpZ2h0KSIpLmNsYXNzZWQoIm5vbi1pbnB1dC1lZGdlLWhpZ2hsaWdodCIsITApfWZ1bmN0aW9uIEVxdCh0LGUpe2xldCBuPVtdLGk9ZS5nZXROb2RlQnlOYW1lKHQpO2lmKGkgaW5zdGFuY2VvZiBYR3QpcmV0dXJuW2ldLmNvbmNhdChpLmluRW1iZWRkaW5ncyk7bGV0IHI9aS5tZXRhZ3JhcGgubm9kZXMoKTtyZXR1cm4gU2UuZXhwb3J0cy5lYWNoKHIsKGZ1bmN0aW9uKHQpe249bi5jb25jYXQoRXF0KHQsZSkpfSkpLG59ZnVuY3Rpb24gVHF0KHQsZSxuLGkpe2lmKGlbbi5uYW1lXSlyZXR1cm4gaTtpW24ubmFtZV09ITA7bGV0IHI9bi5pbnB1dHMsbz1DcXQoZSxuKTtTdSh0KS5zZWxlY3QoYC5ub2RlW2RhdGEtbmFtZT0iJHtvLm5hbWV9Il1gKS5jbGFzc2VkKCJpbnB1dC1oaWdobGlnaHQiLCEwKTtsZXQgYT17fTtTZS5leHBvcnRzLmVhY2gociwoZnVuY3Rpb24odCl7bGV0IG49ZS5nZXROb2RlQnlOYW1lKHQubmFtZSk7aWYodm9pZCAwPT09bilyZXR1cm47aWYobiBpbnN0YW5jZW9mIEtHdCl7bGV0IHQ9c1d0KG4ubmFtZSk7bj1lLmdldE5vZGVCeU5hbWUodCl9bGV0IGk9Q3F0KGUsbikscj1hW2kubmFtZV07cj9yLm9wTm9kZXMucHVzaChuKTphW2kubmFtZV09e3Zpc2libGVQYXJlbnQ6aSxvcE5vZGVzOltuXX19KSk7bGV0IHM9e30sbD1bb107c1tvLm5hbWVdPXt0cmFjZWQ6ITEsaW5kZXg6MCxjb25uZWN0aW9uRW5kcG9pbnRzOltdfTtsZXQgYz1vO2ZvcihsZXQgdD0xO2MubmFtZSE9PUZHdDt0KyspYz1jLnBhcmVudE5vZGUsc1tjLm5hbWVdPXt0cmFjZWQ6ITEsaW5kZXg6dCxjb25uZWN0aW9uRW5kcG9pbnRzOltdfSxsW3RdPWM7cmV0dXJuIFNlLmV4cG9ydHMuZm9yT3duKGEsKGZ1bmN0aW9uKG4scil7bGV0IGE9bi52aXNpYmxlUGFyZW50O1NlLmV4cG9ydHMuZWFjaChuLm9wTm9kZXMsKGZ1bmN0aW9uKG4pe2k9VHF0KHQsZSxuLGkpfSkpLGEubmFtZSE9PW8ubmFtZSYmKGZ1bmN0aW9uIGModCxlLG4saSl7bGV0IHI9ZSxvPWUsYT1bXTtmb3IoOyFuW3IubmFtZV07KW8ubmFtZSE9PXIubmFtZSYmYS5wdXNoKFtvLHJdKSxvPXIscj1yLnBhcmVudE5vZGU7bGV0IHM9bltyLm5hbWVdLmluZGV4LGw9aVtNYXRoLm1heChzLTEsMCldLm5hbWUsYz1sLHU9by5uYW1lLGg9by5uYW1lO2NvbnN0IGQ9U3UodCk7ZC5zZWxlY3RBbGwoYFtkYXRhLWVkZ2U9IiR7aH0tLSR7bH0iXWApLmNsYXNzZWQoImlucHV0LWVkZ2UtaGlnaGxpZ2h0IiwhMCksU2UuZXhwb3J0cy5lYWNoKGEsKGZ1bmN0aW9uKHQpe2Quc2VsZWN0QWxsKGBbZGF0YS1lZGdlPSIke3RbMF0ubmFtZX0tLSR7Y31+fiR7dFsxXS5uYW1lfX5+T1VUIl1gKS5jbGFzc2VkKCJpbnB1dC1lZGdlLWhpZ2hsaWdodCIsITApfSkpO2ZvcihsZXQgdD0xO3Q8czt0KyspZC5zZWxlY3RBbGwoYFtkYXRhLWVkZ2U9IiR7dX1+fiR7aVt0XS5uYW1lfX5+SU4tLSR7aVt0LTFdLm5hbWV9Il1gKS5jbGFzc2VkKCJpbnB1dC1lZGdlLWhpZ2hsaWdodCIsITApfSkodCxhLHMsbCl9KSksaX1mdW5jdGlvbiBDcXQodCxlKXtsZXQgbj0hMSxpPWU7Zm9yKDshbjspaWYoaT0oZT1pKS5wYXJlbnROb2RlLHZvaWQgMD09PWkpbj0hMDtlbHNle2xldCBlPXQuZ2V0UmVuZGVyTm9kZUJ5TmFtZShpLm5hbWUpO2UmJihlLmV4cGFuZGVkfHxpIGluc3RhbmNlb2YgWEd0KSYmKG49ITApfXJldHVybiBlfWZ1bmN0aW9uIEFxdCh0LGUsbixpKXtsZXQgcj10LnNlbGVjdEFsbCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfSkpLmRhdGEoZS5saXN0LCh0PT50Lm5vZGUubmFtZSkpO3JldHVybiByLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiZGF0YS1uYW1lIiwodD0+dC5ub2RlLm5hbWUpKS5lYWNoKChmdW5jdGlvbih0KXtsZXQgZT1TdSh0aGlzKTtpLmFkZEFubm90YXRpb25Hcm91cCh0LG4sZSk7bGV0IHI9dkd0LkFubm90YXRpb24uRURHRSxvPXQucmVuZGVyTWV0YWVkZ2VJbmZvJiZ0LnJlbmRlck1ldGFlZGdlSW5mby5tZXRhZWRnZTtvJiYhby5udW1SZWd1bGFyRWRnZXMmJihyKz0iICIrdkd0LkFubm90YXRpb24uQ09OVFJPTF9FREdFKSxvJiZvLm51bVJlZkVkZ2VzJiYocis9IiAiK3ZHdC5FZGdlLlJFRl9MSU5FKSxycXQoZSx0LGksciksdC5hbm5vdGF0aW9uVHlwZSE9PWJXdC5FTExJUFNJUz8oKGZ1bmN0aW9uIGEodCxlKXtsZXQgbj1lLm5vZGUubmFtZS5zcGxpdCgiLyIpO2txdCh0LG5bbi5sZW5ndGgtMV0sZSxudWxsKX0pKGUsdCksKGZ1bmN0aW9uIHModCxlKXtlLmFubm90YXRpb25UeXBlPT09Yld0LlNVTU1BUlk/d0d0KHQsInVzZSIpLmF0dHIoImNsYXNzIiwic3VtbWFyeSIpLmF0dHIoInhsaW5rOmhyZWYiLCIjc3VtbWFyeS1pY29uIikuYXR0cigiY3Vyc29yIiwicG9pbnRlciIpOndHdChfcXQodCxlLHZHdC5Bbm5vdGF0aW9uLk5PREUpLCJ0aXRsZSIpLnRleHQoZS5ub2RlLm5hbWUpfSkoZSx0KSk6a3F0KGUsdC5ub2RlLm5hbWUsdCx2R3QuQW5ub3RhdGlvbi5FTExJUFNJUyl9KSkubWVyZ2UocikuYXR0cigiY2xhc3MiLCh0PT52R3QuQW5ub3RhdGlvbi5HUk9VUCsiICIrKGZ1bmN0aW9uIGUodCl7cmV0dXJuKGJXdFt0XXx8IiIpLnRvTG93ZXJDYXNlKCl8fG51bGx9KSh0LmFubm90YXRpb25UeXBlKSsiICIreXF0KHQpKSkuZWFjaCgoZnVuY3Rpb24odCl7bGV0IGU9U3UodGhpcyk7IShmdW5jdGlvbiByKHQsZSxuLGkpe2xldCByPURXdChlKTtuLnJlbmRlck5vZGVJbmZvJiZuLmFubm90YXRpb25UeXBlIT09Yld0LkVMTElQU0lTJiZ3cXQodCxuLnJlbmRlck5vZGVJbmZvLGksdkd0LkFubm90YXRpb24uTk9ERSksbi5hbm5vdGF0aW9uVHlwZT09PWJXdC5TVU1NQVJZJiYobi53aWR0aCs9MTApLHQuc2VsZWN0KCJ0ZXh0LiIrdkd0LkFubm90YXRpb24uTEFCRUwpLnRyYW5zaXRpb24oKS5hdHRyKCJ4IixyK24uZHgrKG4uaXNJbj8tMToxKSoobi53aWR0aC8yK24ubGFiZWxPZmZzZXQpKS5hdHRyKCJ5IixlLnkrbi5keSksdC5zZWxlY3QoInVzZS5zdW1tYXJ5IikudHJhbnNpdGlvbigpLmF0dHIoIngiLHIrbi5keC0zKS5hdHRyKCJ5IixlLnkrbi5keS02KSxXV3QodC5zZWxlY3QoIi4iK3ZHdC5Bbm5vdGF0aW9uLk5PREUrIiBlbGxpcHNlIikscituLmR4LGUueStuLmR5LG4ud2lkdGgsbi5oZWlnaHQpLEdXdCh0LnNlbGVjdCgiLiIrdkd0LkFubm90YXRpb24uTk9ERSsiIHJlY3QiKSxyK24uZHgsZS55K24uZHksbi53aWR0aCxuLmhlaWdodCksR1d0KHQuc2VsZWN0KCIuIit2R3QuQW5ub3RhdGlvbi5OT0RFKyIgdXNlIikscituLmR4LGUueStuLmR5LG4ud2lkdGgsbi5oZWlnaHQpLHQuc2VsZWN0KCJwYXRoLiIrdkd0LkFubm90YXRpb24uRURHRSkudHJhbnNpdGlvbigpLmF0dHIoImQiLCh0PT57bGV0IG49dC5wb2ludHMubWFwKCh0PT4oe3g6dC5keCtyLHk6dC5keStlLnl9KSkpO3JldHVybiBvcXQobil9KSl9KShlLG4sdCxpKSx0LmFubm90YXRpb25UeXBlIT09Yld0LkVMTElQU0lTJiYoZnVuY3Rpb24gbyh0LGUsbixpKXt0Lm9uKCJtb3VzZW92ZXIiLCh0PT57aS5maXJlKCJhbm5vdGF0aW9uLWhpZ2hsaWdodCIse25hbWU6dC5ub2RlLm5hbWUsaG9zdE5hbWU6ZS5ub2RlLm5hbWV9KX0pKS5vbigibW91c2VvdXQiLCh0PT57aS5maXJlKCJhbm5vdGF0aW9uLXVuaGlnaGxpZ2h0Iix7bmFtZTp0Lm5vZGUubmFtZSxob3N0TmFtZTplLm5vZGUubmFtZX0pfSkpLm9uKCJjbGljayIsKHQ9Pnt1dS5zdG9wUHJvcGFnYXRpb24oKSxpLmZpcmUoImFubm90YXRpb24tc2VsZWN0Iix7bmFtZTp0Lm5vZGUubmFtZSxob3N0TmFtZTplLm5vZGUubmFtZX0pfSkpLG4uYW5ub3RhdGlvblR5cGUhPT1iV3QuU1VNTUFSWSYmbi5hbm5vdGF0aW9uVHlwZSE9PWJXdC5DT05TVEFOVCYmdC5vbigiY29udGV4dG1lbnUiLFpXdChpLHVxdChuLm5vZGUsaSkpKX0pKGUsbix0LGkpfSkpLHIuZXhpdCgpLmVhY2goKGZ1bmN0aW9uKHQpe2kucmVtb3ZlQW5ub3RhdGlvbkdyb3VwKHQsbil9KSkucmVtb3ZlKCkscn1mdW5jdGlvbiBrcXQodCxlLG4saSl7bGV0IHI9dkd0LkFubm90YXRpb24uTEFCRUw7cmV0dXJuIGkmJihyKz0iICIraSksZnF0KHQuYXBwZW5kKCJ0ZXh0IikuYXR0cigiY2xhc3MiLHIpLmF0dHIoImR5IiwiLjM1ZW0iKS5hdHRyKCJ0ZXh0LWFuY2hvciIsbi5pc0luPyJlbmQiOiJzdGFydCIpLnRleHQoZSksLTEsNSl9ZnVuY3Rpb24gTHF0KHQsZSxuLGkpe2xldCByPXhHdCh0LCJnIixpPWl8fHZHdC5TY2VuZS5HUk9VUCkuZW1wdHkoKSxvPXdHdCh0LCJnIixpKSxhPXdHdChvLCJnIix2R3QuU2NlbmUuQ09SRSkscz1TZS5leHBvcnRzLnJlZHVjZShlLmNvcmVHcmFwaC5ub2RlcygpLCgodCxuKT0+e2xldCBpPWUuY29yZUdyYXBoLm5vZGUobik7cmV0dXJuIGkuZXhjbHVkZWR8fHQucHVzaChpKSx0fSksW10pO3JldHVybiBlLm5vZGUudHlwZT09PWpHdC5TRVJJRVMmJnMucmV2ZXJzZSgpLChmdW5jdGlvbiBsKHQsZSxuKXtjb25zdCBpPW47bGV0IHI9W107cj1TZS5leHBvcnRzLnJlZHVjZShlLmVkZ2VzKCksKCh0LG4pPT57bGV0IGk9ZS5lZGdlKG4pO3JldHVybiB0LnB1c2goe3Y6bi52LHc6bi53LGxhYmVsOml9KSx0fSkscik7bGV0IG89d0d0KHQsImciLHZHdC5FZGdlLkNPTlRBSU5FUikuc2VsZWN0QWxsKChmdW5jdGlvbigpe3JldHVybiB0aGlzLmNoaWxkTm9kZXN9KSkuZGF0YShyLFFXdCk7by5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIix2R3QuRWRnZS5HUk9VUCkuYXR0cigiZGF0YS1lZGdlIixRV3QpLmVhY2goKGZ1bmN0aW9uKHQpe2xldCBlPVN1KHRoaXMpO3QubGFiZWwuZWRnZUdyb3VwPWUsaS5fZWRnZUdyb3VwSW5kZXhbUVd0KHQpXT1lLGkuaGFuZGxlRWRnZVNlbGVjdGVkJiZlLm9uKCJjbGljayIsKHQ9Pnt1dS5zdG9wUHJvcGFnYXRpb24oKSxpLmZpcmUoImVkZ2Utc2VsZWN0Iix7ZWRnZURhdGE6dCxlZGdlR3JvdXA6ZX0pfSkpLHJxdChlLHQsaSl9KSkubWVyZ2UobykuZWFjaCgoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSxuKXtTdShuKS5zZWxlY3QoInBhdGguIit2R3QuRWRnZS5MSU5FKS50cmFuc2l0aW9uKCkuYXR0clR3ZWVuKCJkIiwoZnVuY3Rpb24odCxuLGkpe3JldHVybihmdW5jdGlvbiByKHQsZSxuLGksbyl7bGV0IGE9bi5sYWJlbCxzPWEuYWRqb2luaW5nTWV0YWVkZ2UsbD1hLnBvaW50cztjb25zdHtzaGFkb3dSb290OmN9PXQ7aWYobi5sYWJlbC5zdGFydE1hcmtlcklkJiYobD1pcXQobCxTdShjLnF1ZXJ5U2VsZWN0b3IoIiMiK24ubGFiZWwuc3RhcnRNYXJrZXJJZCkpLCEwKSksbi5sYWJlbC5lbmRNYXJrZXJJZCYmKGw9aXF0KGwsU3UoYy5xdWVyeVNlbGVjdG9yKCIjIituLmxhYmVsLmVuZE1hcmtlcklkKSksITEpKSwhcylyZXR1cm4gamQobyxvcXQobCkpO2xldCB1PXMuZWRnZUdyb3VwLm5vZGUoKS5maXJzdENoaWxkLGg9YS5tZXRhZWRnZS5pbmJvdW5kO3JldHVybiBmdW5jdGlvbih0KXtsZXQgbj11LmdldFBvaW50QXRMZW5ndGgoaD91LmdldFRvdGFsTGVuZ3RoKCk6MCkubWF0cml4VHJhbnNmb3JtKHUuZ2V0Q1RNKCkpLm1hdHJpeFRyYW5zZm9ybShlLmdldENUTSgpLmludmVyc2UoKSksaT1oPzA6bC5sZW5ndGgtMTtyZXR1cm4gbFtpXS54PW4ueCxsW2ldLnk9bi55LG9xdChsKX19KShlLHRoaXMsdCwwLGkpfSkpfSkobix0aGlzKX0pKS5lYWNoKChmdW5jdGlvbih0KXshKGZ1bmN0aW9uIGUodCxuLGkpe3QuY2xhc3NlZCgiZmFkZWQiLG4ubGFiZWwuaXNGYWRlZE91dCk7bGV0IHI9bi5sYWJlbC5tZXRhZWRnZTt0LnNlbGVjdCgicGF0aC4iK3ZHdC5FZGdlLkxJTkUpLmNsYXNzZWQoImNvbnRyb2wtZGVwIixyJiYhci5udW1SZWd1bGFyRWRnZXMpfSkoU3UodGhpcyksdCl9KSksby5leGl0KCkuZWFjaCgodD0+e2RlbGV0ZSBpLl9lZGdlR3JvdXBJbmRleFtRV3QodCldfSkpLnJlbW92ZSgpfSkoYSxlLmNvcmVHcmFwaCxuKSxzcXQoYSxzLG4pLGUuaXNvbGF0ZWRJbkV4dHJhY3QubGVuZ3RoPjA/c3F0KHdHdChvLCJnIix2R3QuU2NlbmUuSU5FWFRSQUNUKSxlLmlzb2xhdGVkSW5FeHRyYWN0LG4pOnhHdChvLCJnIix2R3QuU2NlbmUuSU5FWFRSQUNUKS5yZW1vdmUoKSxlLmlzb2xhdGVkT3V0RXh0cmFjdC5sZW5ndGg+MD9zcXQod0d0KG8sImciLHZHdC5TY2VuZS5PVVRFWFRSQUNUKSxlLmlzb2xhdGVkT3V0RXh0cmFjdCxuKTp4R3QobywiZyIsdkd0LlNjZW5lLk9VVEVYVFJBQ1QpLnJlbW92ZSgpLGUubGlicmFyeUZ1bmN0aW9uc0V4dHJhY3QubGVuZ3RoPjA/c3F0KHdHdChvLCJnIix2R3QuU2NlbmUuRlVOQ1RJT05fTElCUkFSWSksZS5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdCxuKTp4R3QobywiZyIsdkd0LlNjZW5lLkZVTkNUSU9OX0xJQlJBUlkpLnJlbW92ZSgpLChmdW5jdGlvbiBjKHQsZSl7bGV0IG49ZS5ub2RlLnR5cGU9PT1qR3QuU0VSSUVTPzA6Tld0LnN1YnNjZW5lLm1ldGEubGFiZWxIZWlnaHQ7ald0KEZXdCh0LCJnIixWV3QuU2NlbmUuQ09SRSksMCxuKTtsZXQgaT1lLmlzb2xhdGVkSW5FeHRyYWN0Lmxlbmd0aD4wLHI9ZS5pc29sYXRlZE91dEV4dHJhY3QubGVuZ3RoPjAsbz1lLmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0Lmxlbmd0aD4wLGE9Tld0LnN1YnNjZW5lLm1ldGEuZXh0cmFjdFhPZmZzZXQscz0wO2lmKGkmJihzKz1lLm91dEV4dHJhY3RCb3gud2lkdGgpLHImJihzKz1lLm91dEV4dHJhY3RCb3gud2lkdGgpLGkpe2xldCBpPWUuY29yZUJveC53aWR0aDtpPXM8SVd0P2ktSVd0K2UuaW5FeHRyYWN0Qm94LndpZHRoLzI6aS1lLmluRXh0cmFjdEJveC53aWR0aC8yLWUub3V0RXh0cmFjdEJveC53aWR0aC0ocj9hOjApLGk9aS1lLmxpYnJhcnlGdW5jdGlvbnNCb3gud2lkdGgtKG8/YTowKSxqV3QoRld0KHQsImciLFZXdC5TY2VuZS5JTkVYVFJBQ1QpLGksbil9aWYocil7bGV0IGk9ZS5jb3JlQm94LndpZHRoO3M8SVd0P2k9aS1JV3QrZS5vdXRFeHRyYWN0Qm94LndpZHRoLzI6aS09ZS5vdXRFeHRyYWN0Qm94LndpZHRoLzIsaT1pLWUubGlicmFyeUZ1bmN0aW9uc0JveC53aWR0aC0obz9hOjApLGpXdChGV3QodCwiZyIsVld0LlNjZW5lLk9VVEVYVFJBQ1QpLGksbil9aWYobyl7bGV0IGk9ZS5jb3JlQm94LndpZHRoLWUubGlicmFyeUZ1bmN0aW9uc0JveC53aWR0aC8yO2pXdChGV3QodCwiZyIsVld0LlNjZW5lLkZVTkNUSU9OX0xJQlJBUlkpLGksbil9fSkobyxlKSxyJiZvLmF0dHIoIm9wYWNpdHkiLDApLnRyYW5zaXRpb24oKS5hdHRyKCJvcGFjaXR5IiwxKSxvfWxldCBQcXQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm5vZGU9bnVsbCx0aGlzLnJlbmRlckluZm89bnVsbCx0aGlzLmNvbG9yQnk9YXF0LlNUUlVDVFVSRSx0aGlzLnRlbXBsYXRlSW5kZXg9bnVsbCx0aGlzLnR5cGU9bnVsbCx0aGlzLnZlcnRpY2FsPSExLHRoaXMuY29uc3Q9ITEsdGhpcy5zdW1tYXJ5PSExLHRoaXMuZmlsbD1udWxsLHRoaXMuaGVpZ2h0PTIwfV9jb21wdXRlRmlsbE92ZXJyaWRlKHQsZSxuLGkscil7cmV0dXJuIHQmJmUmJmk/eHF0KGksbixlLCExKTpyfV9nZXRTdHJva2VPdmVycmlkZSh0KXtyZXR1cm4gdD9TcXQodCk6bnVsbH1fZ2V0VHlwZSh0LGUsbixpKXtjb25zdHtHcmFwaEljb25UeXBlOnJ9PUtXdDtpZih0KXN3aXRjaCh0LnR5cGUpe2Nhc2Ugakd0Lk9QOntjb25zdCBpPXQub3A7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBpP3IuT1A6IkNvbnN0Ij09PWl8fG4/ci5DT05TVDppLmVuZHNXaXRoKCJTdW1tYXJ5Iil8fGU/ci5TVU1NQVJZOnIuT1B9Y2FzZSBqR3QuTUVUQTpyZXR1cm4gci5NRVRBO2Nhc2Ugakd0LlNFUklFUzpyZXR1cm4gci5TRVJJRVN9cmV0dXJuIGl9X2lzVmVydGljYWwodCxlKXtyZXR1cm4gdD90Lmhhc05vbkNvbnRyb2xFZGdlczohIWV9X2dldEZhZGVkKHQpe3JldHVybiB0JiZ0LmlzRmFkZWRPdXR9X29uRmlsbE92ZXJyaWRlQ2hhbmdlZCh0LGUpe2NvbnN0e25vZGU6bixyZW5kZXJJbmZvOmksY29sb3JCeTpyLHRlbXBsYXRlSW5kZXg6b309dGhpczt0IT09ZSYmYnF0KHRoaXMuJC5pY29uLmdldFN2Z0RlZmluYWJsZUVsZW1lbnQoKSksbiYmaSYmbyYmeHF0KG8scixpLCExLHRoaXMuJC5pY29uLmdldFN2Z0RlZmluYWJsZUVsZW1lbnQoKSl9fTtQcXQudGVtcGxhdGU9X2VgCiAgICA8c3R5bGU+CiAgICAgIHRmLWdyYXBoLWljb24gewogICAgICAgIC0tdGItZ3JhcGgtZmFkZWQ6IHZhcigtLXRiLWdyYXBoLWZhZGVkKTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDx0Zi1ncmFwaC1pY29uCiAgICAgIGlkPSJpY29uIgogICAgICB0eXBlPSJbW19nZXRUeXBlKG5vZGUsIHN1bW1hcnksIGNvbnN0LCB0eXBlKV1dIgogICAgICBoZWlnaHQ9IltbaGVpZ2h0XV0iCiAgICAgIGZpbGwtb3ZlcnJpZGU9IltbX2ZpbGxPdmVycmlkZV1dIgogICAgICBzdHJva2Utb3ZlcnJpZGU9IltbX2dldFN0cm9rZU92ZXJyaWRlKF9maWxsT3ZlcnJpZGUpXV0iCiAgICAgIGZhZGVkPSJbW19nZXRGYWRlZChyZW5kZXJJbmZvKV1dIgogICAgICB2ZXJ0aWNhbD0iW1tfaXNWZXJ0aWNhbChub2RlLCB2ZXJ0aWNhbCldXSIKICAgID48L3RmLWdyYXBoLWljb24+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQcXQucHJvdG90eXBlLCJub2RlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFBxdC5wcm90b3R5cGUsInJlbmRlckluZm8iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUHF0LnByb3RvdHlwZSwiY29sb3JCeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLFBxdC5wcm90b3R5cGUsInRlbXBsYXRlSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUHF0LnByb3RvdHlwZSwidHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFBxdC5wcm90b3R5cGUsInZlcnRpY2FsIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sUHF0LnByb3RvdHlwZSwiY29uc3QiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxQcXQucHJvdG90eXBlLCJzdW1tYXJ5Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFBxdC5wcm90b3R5cGUsImZpbGwiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sUHF0LnByb3RvdHlwZSwiaGVpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLGNvbXB1dGVkOiJfY29tcHV0ZUZpbGxPdmVycmlkZShub2RlLCByZW5kZXJJbmZvLCBjb2xvckJ5LCB0ZW1wbGF0ZUluZGV4LCBmaWxsKSIsb2JzZXJ2ZXI6Il9vbkZpbGxPdmVycmlkZUNoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFBxdC5wcm90b3R5cGUsIl9maWxsT3ZlcnJpZGUiLHZvaWQgMCksUHF0PXQoW2koInRmLW5vZGUtaWNvbiIpXSxQcXQpO2xldCBOcXQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe19pdGVtVHlwZUNoYW5nZWQoKXsic3Vibm9kZSIhPT10aGlzLml0ZW1UeXBlP3RoaXMuJFsibGlzdC1pdGVtIl0uY2xhc3NMaXN0LmFkZCgiY2xpY2thYmxlIik6dGhpcy4kWyJsaXN0LWl0ZW0iXS5jbGFzc0xpc3QucmVtb3ZlKCJjbGlja2FibGUiKX1fbm9kZUxpc3RlbmVyKHQpe3RoaXMuZmlyZSgibm9kZS1saXN0LWl0ZW0tIit0LnR5cGUse25vZGVOYW1lOnRoaXMubmFtZSx0eXBlOnRoaXMuaXRlbVR5cGV9KX1fZmFkZWRDbGFzcyh0KXtyZXR1cm4gdCYmdC5pc0ZhZGVkT3V0PyJmYWRlZCI6IiJ9fTtmdW5jdGlvbiBJcXQodCxlLG4pe3JldHVybiBTZS5leHBvcnRzLnNvcnRCeSh0LFt0PT5lLm5vZGUodCkub3AsdD0+ZS5ub2RlKHQpLnRlbXBsYXRlSWQsdD0+ZS5uZWlnaGJvcnModCkubGVuZ3RoLHQ9PmUucHJlZGVjZXNzb3JzKHQpLmxlbmd0aCx0PT5lLnN1Y2Nlc3NvcnModCkubGVuZ3RoLHQ9PnQuc3Vic3RyKG4ubGVuZ3RoKV0pfWZ1bmN0aW9uIFJxdCh0LGUpe2lmKCEoZnVuY3Rpb24gbih0LGUpe2xldCBuPWxXdCh0KSxpPWxXdChlKTtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKylpZihuW3RdIT09aVt0XSlyZXR1cm4hMTtyZXR1cm4hMH0pKHQsZSkpcmV0dXJuITE7bGV0IGk9dC5ncmFwaCgpLm5hbWUscj1lLmdyYXBoKCkubmFtZSxvPXt9LGE9e30scz1bXTtmdW5jdGlvbiBsKHQsZSl7bGV0IG49dC5zdWJzdHIoaS5sZW5ndGgpLGw9ZS5zdWJzdHIoci5sZW5ndGgpO3JldHVybiBvW25dXmFbbF0/KGNvbnNvbGUud2FybigiZGlmZmVyZW50IHZpc2l0IHBhdHRlcm4iLCJbIitpKyJdIixuLCJbIityKyJdIixsKSwhMCk6KG9bbl18fChvW25dPWFbbF09ITAscy5wdXNoKHtuMTp0LG4yOmV9KSksITEpfWxldCBjPXQuc291cmNlcygpLHU9ZS5zb3VyY2VzKCk7aWYoYy5sZW5ndGghPT11Lmxlbmd0aClyZXR1cm4gY29uc29sZS5sb2coImRpZmZlcmVudCBzb3VyY2UgbGVuZ3RoIiksITE7Yz1JcXQoYyx0LGkpLHU9SXF0KHUsZSxyKTtmb3IobGV0IHQ9MDt0PGMubGVuZ3RoO3QrKylpZihsKGNbdF0sdVt0XSkpcmV0dXJuITE7Zm9yKDtzLmxlbmd0aD4wOyl7bGV0IG49cy5wb3AoKTtpZighT3F0KHQubm9kZShuLm4xKSxlLm5vZGUobi5uMikpKXJldHVybiExO2xldCBvPXQuc3VjY2Vzc29ycyhuLm4xKSxhPWUuc3VjY2Vzc29ycyhuLm4yKTtpZihvLmxlbmd0aCE9PWEubGVuZ3RoKXJldHVybiBjb25zb2xlLmxvZygiIyBvZiBzdWNjZXNzb3JzIG1pc21hdGNoIixvLGEpLCExO289SXF0KG8sdCxpKSxhPUlxdChhLGUscik7Zm9yKGxldCB0PTA7dDxvLmxlbmd0aDt0KyspaWYobChvW3RdLGFbdF0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIE9xdCh0LGUpe2lmKHQudHlwZT09PWpHdC5NRVRBKXtsZXQgbj10LGk9ZTtyZXR1cm4gbi50ZW1wbGF0ZUlkJiZpLnRlbXBsYXRlSWQmJm4udGVtcGxhdGVJZD09PWkudGVtcGxhdGVJZH1pZih0LnR5cGU9PT1qR3QuT1AmJmUudHlwZT09PWpHdC5PUClyZXR1cm4gdC5vcD09PWUub3A7aWYodC50eXBlPT09akd0LlNFUklFUyYmZS50eXBlPT09akd0LlNFUklFUyl7bGV0IG49dCxpPWUscj1uLm1ldGFncmFwaC5ub2RlQ291bnQoKTtyZXR1cm4gcj09PWkubWV0YWdyYXBoLm5vZGVDb3VudCgpJiYoMD09PXJ8fG4ubWV0YWdyYXBoLm5vZGUobi5tZXRhZ3JhcGgubm9kZXMoKVswXSkub3A9PT1pLm1ldGFncmFwaC5ub2RlKGkubWV0YWdyYXBoLm5vZGVzKClbMF0pLm9wKX1yZXR1cm4hMX12YXIgenF0O05xdC50ZW1wbGF0ZT1fZWAKICAgIDxzdHlsZT4KICAgICAgI2xpc3QtaXRlbSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBmb250LXNpemU6IDExcHQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAjbGlzdC1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nb29nbGUteWVsbG93LTEwMCk7CiAgICAgIH0KCiAgICAgIC5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDBweDsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbS5leGNsdWRlZCBzcGFuIHsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuLmVkZ2UtbGFiZWwgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsKICAgICAgfQoKICAgICAgLm5vZGUtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMXB4OwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmZhZGVkIHNwYW4gewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1mYWRlZCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdgogICAgICBpZD0ibGlzdC1pdGVtIgogICAgICBvbi1tb3VzZW92ZXI9Il9ub2RlTGlzdGVuZXIiCiAgICAgIG9uLW1vdXNlb3V0PSJfbm9kZUxpc3RlbmVyIgogICAgICBvbi1jbGljaz0iX25vZGVMaXN0ZW5lciIKICAgID4KICAgICAgPGRpdiBjbGFzcyQ9Int7X2ZhZGVkQ2xhc3MoaXRlbVJlbmRlckluZm8pfX0iPgogICAgICAgIDx0Zi1ub2RlLWljb24KICAgICAgICAgIGNsYXNzPSJub2RlLWljb24iCiAgICAgICAgICBoZWlnaHQ9IjEyIgogICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgY29sb3ItYnktcGFyYW1zPSJbW2NvbG9yQnlQYXJhbXNdXSIKICAgICAgICAgIG5vZGU9IltbaXRlbU5vZGVdXSIKICAgICAgICAgIHJlbmRlci1pbmZvPSJbW2l0ZW1SZW5kZXJJbmZvXV0iCiAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1t0ZW1wbGF0ZUluZGV4XV0iCiAgICAgICAgPgogICAgICAgIDwvdGYtbm9kZS1pY29uPgogICAgICAgIDxzcGFuIHRpdGxlJD0iW1tuYW1lXV0iPltbbmFtZV1dPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTnF0LnByb3RvdHlwZSwiY2FyZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTnF0LnByb3RvdHlwZSwiaXRlbU5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTnF0LnByb3RvdHlwZSwiZWRnZUxhYmVsIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE5xdC5wcm90b3R5cGUsIml0ZW1SZW5kZXJJbmZvIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLE5xdC5wcm90b3R5cGUsIm5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9pdGVtVHlwZUNoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLE5xdC5wcm90b3R5cGUsIml0ZW1UeXBlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLE5xdC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTnF0LnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLE5xdC5wcm90b3R5cGUsInRlbXBsYXRlSW5kZXgiLHZvaWQgMCksTnF0PXQoW2koInRmLWdyYXBoLW9wLWNvbXBhdC1saXN0LWl0ZW0iKV0sTnF0KSwoZnVuY3Rpb24odCl7dFt0LlRFTVBMQVRFU19VUERBVEVEPTBdPSJURU1QTEFURVNfVVBEQVRFRCJ9KSh6cXR8fCh6cXQ9e30pKTtjbGFzcyBEcXQgZXh0ZW5kcyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZXZlbnRUeXBlVG9MaXN0ZW5lcnM9bmV3IE1hcH1nZXRMaXN0ZW5lcnModCl7cmV0dXJuIHRoaXMuZXZlbnRUeXBlVG9MaXN0ZW5lcnMuaGFzKHQpfHx0aGlzLmV2ZW50VHlwZVRvTGlzdGVuZXJzLnNldCh0LFtdKSx0aGlzLmV2ZW50VHlwZVRvTGlzdGVuZXJzLmdldCh0KX1hZGRMaXN0ZW5lcih0LGUpe3RoaXMuZ2V0TGlzdGVuZXJzKHQpLnB1c2goZSl9cmVtb3ZlTGlzdGVuZXIodCxlKXtjb25zdCBuPXRoaXMuZ2V0TGlzdGVuZXJzKHQpLmZpbHRlcigodD0+dCE9PWUpKTt0aGlzLmV2ZW50VHlwZVRvTGlzdGVuZXJzLnNldCh0LG4pfWRpc3BhdGNoRXZlbnQodCxlKXtmb3IoY29uc3QgbiBvZiB0aGlzLmdldExpc3RlbmVycyh0KSluKGUpfX17Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmhhc1NoYXBlSW5mbz0hMSx0aGlzLm1heE1ldGFFZGdlU2l6ZT0xLHRoaXMuZ3JhcGhPcHRpb25zPXt9LHRoaXMudGVtcGxhdGVzPW51bGwsdGhpcy5ncmFwaE9wdGlvbnMuY29tcG91bmQ9ITAsdGhpcy5ncmFwaE9wdGlvbnMucmFua2Rpcj10LnJhbmtEaXJlY3Rpb24sdGhpcy5yb290PSRHdChGR3QsdGhpcy5ncmFwaE9wdGlvbnMpLHRoaXMubGlicmFyeUZ1bmN0aW9ucz17fSx0aGlzLnNlcmllc0dyb3VwTWFwPW5ldyBNYXAodC5zZXJpZXNNYXApLHRoaXMuZGV2aWNlcz1udWxsLHRoaXMueGxhQ2x1c3RlcnM9bnVsbCx0aGlzLnZlcmlmeVRlbXBsYXRlPXQudmVyaWZ5VGVtcGxhdGUsdGhpcy5pbmRleD17fSx0aGlzLmluZGV4Ll9fcm9vdF9fPXRoaXMucm9vdCx0aGlzLm9yZGVyaW5ncz17fX1nZXRTZXJpZXNHcm91cFR5cGUodCl7dmFyIGU7cmV0dXJuIG51bGwhPT0oZT10aGlzLnNlcmllc0dyb3VwTWFwLmdldCh0KSkmJnZvaWQgMCE9PWU/ZTpXR3QuR1JPVVB9c2V0U2VyaWVzR3JvdXBUeXBlKHQsZSl7cmV0dXJuIHRoaXMuc2VyaWVzR3JvdXBNYXAuc2V0KHQsZSl9YnVpbGRTZXJpZXNHcm91cE1hcFRvZ2dsZWQodCl7Y29uc3QgZT10aGlzLmdldFNlcmllc0dyb3VwVHlwZSh0KT09PVdHdC5HUk9VUD9XR3QuVU5HUk9VUDpXR3QuR1JPVVA7cmV0dXJuIG5ldyBNYXAoWy4uLnRoaXMuc2VyaWVzR3JvdXBNYXAsW3QsZV1dKX1nZXROb2RlTWFwKCl7cmV0dXJuIHRoaXMuaW5kZXh9bm9kZSh0KXtyZXR1cm4gdGhpcy5pbmRleFt0XX1zZXROb2RlKHQsZSl7dGhpcy5pbmRleFt0XT1lfWdldEJyaWRnZWdyYXBoKHQpe2xldCBlPXRoaXMuaW5kZXhbdF07aWYoIWUpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIG5vZGUgaW4gaGllcmFyY2h5OiAiK3QpO2lmKCEoIm1ldGFncmFwaCJpbiBlKSlyZXR1cm4gbnVsbDtpZihlLmJyaWRnZWdyYXBoKXJldHVybiBlLmJyaWRnZWdyYXBoO2xldCBuPWUuYnJpZGdlZ3JhcGg9b1d0KCJCUklER0VHUkFQSCIsVUd0LkJSSURHRSx0aGlzLmdyYXBoT3B0aW9ucyk7aWYoIWUucGFyZW50Tm9kZXx8ISgibWV0YWdyYXBoImluIGUucGFyZW50Tm9kZSkpcmV0dXJuIG47bGV0IGk9ZS5wYXJlbnROb2RlLHI9aS5tZXRhZ3JhcGgsbz10aGlzLmdldEJyaWRnZWdyYXBoKGkubmFtZSk7cmV0dXJuIFNlLmV4cG9ydHMuZWFjaChbcixvXSwoZT0+e2UuZWRnZXMoKS5maWx0ZXIoKGU9PmUudj09PXR8fGUudz09PXQpKS5mb3JFYWNoKChpPT57bGV0IHI9aS53PT09dCxvPWUuZWRnZShpKTtTZS5leHBvcnRzLmVhY2goby5iYXNlRWRnZUxpc3QsKGU9PntsZXRbbyxhXT1yP1tlLncsaS52XTpbZS52LGkud10scz10aGlzLmdldENoaWxkTmFtZSh0LG8pLGw9e3Y6cj9hOnMsdzpyP3M6YX0sYz1uLmVkZ2UobCk7Y3x8KGM9Wkd0KGwudixsLncpLGMuaW5ib3VuZD1yLG4uc2V0RWRnZShsLnYsbC53LGMpKSxjLmFkZEJhc2VFZGdlKGUsdGhpcyl9KSl9KSl9KSksbn1nZXRDaGlsZE5hbWUodCxlKXtsZXQgbj10aGlzLmluZGV4W2VdO2Zvcig7bjspe2lmKG4ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLm5hbWU9PT10KXJldHVybiBuLm5hbWU7bj1uLnBhcmVudE5vZGV9dGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIGltbWVkaWF0ZSBjaGlsZCBmb3IgZGVzY2VuZGFudDogIitlKX1nZXRQcmVkZWNlc3NvcnModCl7bGV0IGU9dGhpcy5pbmRleFt0XTtpZighZSl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgbm9kZSB3aXRoIG5hbWU6ICIrdCk7bGV0IG49dGhpcy5nZXRPbmVXYXlFZGdlcyhlLCEwKTtyZXR1cm4gZS5pc0dyb3VwTm9kZXx8U2UuZXhwb3J0cy5lYWNoKGUuaW5FbWJlZGRpbmdzLChpPT57U2UuZXhwb3J0cy5lYWNoKGUuaW5wdXRzLChlPT57aWYoZS5uYW1lPT09aS5uYW1lKXtsZXQgcj1uZXcgSkd0KGkubmFtZSx0KTtyLmFkZEJhc2VFZGdlKHtpc0NvbnRyb2xEZXBlbmRlbmN5OmUuaXNDb250cm9sRGVwZW5kZW5jeSxvdXRwdXRUZW5zb3JLZXk6ZS5vdXRwdXRUZW5zb3JLZXksaXNSZWZlcmVuY2VFZGdlOiExLHY6aS5uYW1lLHc6dH0sdGhpcyksbi5yZWd1bGFyLnB1c2gocil9fSkpfSkpLG59Z2V0U3VjY2Vzc29ycyh0KXtsZXQgZT10aGlzLmluZGV4W3RdO2lmKCFlKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBub2RlIHdpdGggbmFtZTogIit0KTtsZXQgbj10aGlzLmdldE9uZVdheUVkZ2VzKGUsITEpO3JldHVybiBlLmlzR3JvdXBOb2RlfHxTZS5leHBvcnRzLmVhY2goZS5vdXRFbWJlZGRpbmdzLChlPT57U2UuZXhwb3J0cy5lYWNoKGUuaW5wdXRzLChpPT57aWYoaS5uYW1lPT09dCl7bGV0IHI9bmV3IEpHdCh0LGUubmFtZSk7ci5hZGRCYXNlRWRnZSh7aXNDb250cm9sRGVwZW5kZW5jeTppLmlzQ29udHJvbERlcGVuZGVuY3ksb3V0cHV0VGVuc29yS2V5Omkub3V0cHV0VGVuc29yS2V5LGlzUmVmZXJlbmNlRWRnZTohMSx2OnQsdzplLm5hbWV9LHRoaXMpLG4ucmVndWxhci5wdXNoKHIpfX0pKX0pKSxufWdldE9uZVdheUVkZ2VzKHQsZSl7bGV0IG49e2NvbnRyb2w6W10scmVndWxhcjpbXX07aWYoIXQucGFyZW50Tm9kZXx8IXQucGFyZW50Tm9kZS5pc0dyb3VwTm9kZSlyZXR1cm4gbjtsZXQgaT10LnBhcmVudE5vZGUscj1pLm1ldGFncmFwaCxvPXRoaXMuZ2V0QnJpZGdlZ3JhcGgoaS5uYW1lKTtyZXR1cm4gQnF0KHIsdCxlLG4pLEJxdChvLHQsZSxuKSxufWdldFRvcG9sb2dpY2FsT3JkZXJpbmcodCl7bGV0IGU9dGhpcy5pbmRleFt0XTtpZighZSl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgbm9kZSB3aXRoIG5hbWU6ICIrdCk7aWYoIWUuaXNHcm91cE5vZGUpcmV0dXJuIG51bGw7aWYodCBpbiB0aGlzLm9yZGVyaW5ncylyZXR1cm4gdGhpcy5vcmRlcmluZ3NbdF07bGV0IG49e30saT17fSxyPWUubWV0YWdyYXBoO1NlLmV4cG9ydHMuZWFjaChyLmVkZ2VzKCksKHQ9PntyLmVkZ2UodCkubnVtUmVndWxhckVkZ2VzJiYodC52IGluIG58fChuW3Qudl09W10pLG5bdC52XS5wdXNoKHQudyksaVt0LnddPSEwKX0pKTtsZXQgbz1TZS5leHBvcnRzLmRpZmZlcmVuY2UoU2UuZXhwb3J0cy5rZXlzKG4pLFNlLmV4cG9ydHMua2V5cyhpKSksYT10aGlzLm9yZGVyaW5nc1t0XT17fSxzPTA7Zm9yKDtvLmxlbmd0aDspe2xldCB0PW8uc2hpZnQoKTthW3RdPXMrKyxTZS5leHBvcnRzLmVhY2goblt0XSwodD0+by5wdXNoKHQpKSksZGVsZXRlIG5bdF19cmV0dXJuIGF9Z2V0VGVtcGxhdGVJbmRleCgpe2lmKCF0aGlzLnRlbXBsYXRlcylyZXR1cm4gbnVsbDtsZXQgdD1MZyh0aGlzLnRlbXBsYXRlcyk7aWYoIXQubGVuZ3RoKXJldHVybiBudWxsO2xldCBlPUVNKCkuZG9tYWluKHQpLnJhbmdlKHpsKDAsdC5sZW5ndGgpKTtyZXR1cm4gdD0+ZSh0KX11cGRhdGVUZW1wbGF0ZXMoKXtDR3QoIkZpbmRpbmcgc2ltaWxhciBzdWJncmFwaHMiLCgoKT0+e3RoaXMudGVtcGxhdGVzPShmdW5jdGlvbiB0KGUsbil7bGV0IGk9KGZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gU2UuZXhwb3J0cy5yZWR1Y2UodCwoZnVuY3Rpb24odCxuKXtsZXQgaT1uWzBdLHI9W107cmV0dXJuIG5bMV0ubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspaWYoIWV8fFJxdChyW25dLm1ldGFub2RlLm1ldGFncmFwaCx0Lm1ldGFncmFwaCkpcmV0dXJuIHQudGVtcGxhdGVJZD1yW25dLm1ldGFub2RlLnRlbXBsYXRlSWQsdm9pZCByW25dLm1lbWJlcnMucHVzaCh0Lm5hbWUpO3QudGVtcGxhdGVJZD1pKyJbIityLmxlbmd0aCsiXSIsci5wdXNoKHttZXRhbm9kZTp0LG1lbWJlcnM6W3QubmFtZV19KX0pKSxyLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RbZS5tZXRhbm9kZS50ZW1wbGF0ZUlkXT17bGV2ZWw6blsxXS5sZXZlbCxub2RlczplLm1lbWJlcnN9fSkpLHR9KSx7fSl9KSgoZnVuY3Rpb24gcih0KXtjb25zdCBlPXQuZ2V0Tm9kZU1hcCgpO2xldCBuPU9iamVjdC5rZXlzKGUpLnJlZHVjZSgoKHQsbik9Pntjb25zdCBpPWVbbl07aWYoaS50eXBlIT09akd0Lk1FVEEpcmV0dXJuIHQ7bGV0IHI9bi5zcGxpdCgiLyIpLmxlbmd0aC0xLG89KGZ1bmN0aW9uIGEodCl7cmV0dXJuIFNlLmV4cG9ydHMubWFwKHtkZXB0aDp0LmRlcHRoLCJ8VnwiOnQubWV0YWdyYXBoLm5vZGVzKCkubGVuZ3RoLCJ8RXwiOnQubWV0YWdyYXBoLmVkZ2VzKCkubGVuZ3RofSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZSsiPSIrdH0pKS5qb2luKCIgIikrIiBbb3BzXSAiK1NlLmV4cG9ydHMubWFwKHQub3BIaXN0b2dyYW0sKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUrIj0iK3R9KSkuam9pbigiLCIpfSkoaSkscz10W29dfHx7bm9kZXM6W10sbGV2ZWw6cn07cmV0dXJuIHRbb109cyxzLm5vZGVzLnB1c2goaSkscy5sZXZlbD5yJiYocy5sZXZlbD1yKSx0fSkse30pO3JldHVybiBPYmplY3Qua2V5cyhuKS5tYXAoKHQ9Plt0LG5bdF1dKSkuZmlsdGVyKCgoW3QsZV0pPT57Y29uc3R7bm9kZXM6bn09ZTtpZihuLmxlbmd0aD4xKXJldHVybiEwO2NvbnN0IGk9blswXTtyZXR1cm4gaS50eXBlPT09akd0Lk1FVEEmJmkuYXNzb2NpYXRlZEZ1bmN0aW9ufSkpLnNvcnQoKChbdCxlXSk9PmUubm9kZXNbMF0uZGVwdGgpKX0pKGUpLG4pO3JldHVybiBPYmplY3Qua2V5cyhpKS5zb3J0KCh0PT5pW3RdLmxldmVsKSkucmVkdWNlKCgodCxlKT0+KHRbZV09aVtlXSx0KSkse30pfSkodGhpcyx0aGlzLnZlcmlmeVRlbXBsYXRlKSx0aGlzLmRpc3BhdGNoRXZlbnQoenF0LlRFTVBMQVRFU19VUERBVEVEKX0pLF9HdC5ISUVSQVJDSFlfRklORF9TSU1JTEFSX1NVQkdSQVBIUyl9fWZ1bmN0aW9uIEJxdCh0LGUsbixpKXtsZXQgcj1uP3QuaW5FZGdlcyhlLm5hbWUpOnQub3V0RWRnZXMoZS5uYW1lKTtTZS5leHBvcnRzLmVhY2gociwoZT0+e2xldCBuPXQuZWRnZShlKTsobi5udW1SZWd1bGFyRWRnZXM/aS5yZWd1bGFyOmkuY29udHJvbCkucHVzaChuKX0pKX1jb25zdCBIcXQ9e3ZlcmlmeVRlbXBsYXRlOiEwLHNlcmllc05vZGVNaW5TaXplOjUsc2VyaWVzTWFwOm5ldyBNYXAscmFua0RpcmVjdGlvbjoiQlQiLHVzZUdlbmVyYWxpemVkU2VyaWVzUGF0dGVybnM6ITF9O2Z1bmN0aW9uIEZxdCh0LGUsbil7Y29uc3QgaT1uZXcgRHF0KGUpLHI9e307cmV0dXJuIExHdCgiQWRkaW5nIG5vZGVzIiwzMCwoKCk9PntsZXQgZT17fSxuPXt9O1NlLmV4cG9ydHMuZWFjaCh0Lm5vZGVzLCgodCxpKT0+e3QuZGV2aWNlJiYoZVt0LmRldmljZV09ITApLHQueGxhQ2x1c3RlciYmKG5bdC54bGFDbHVzdGVyXT0hMCl9KSksaS5kZXZpY2VzPVNlLmV4cG9ydHMua2V5cyhlKSxpLnhsYUNsdXN0ZXJzPVNlLmV4cG9ydHMua2V5cyhuKSwoZnVuY3Rpb24gcih0LGUpe2NvbnN0IG49e307U2UuZXhwb3J0cy5lYWNoKGUubm9kZXMsKChlLGkpPT57bGV0IHI9Y1d0KGUubmFtZSksbz10LnJvb3Q7by5kZXB0aD1NYXRoLm1heChyLmxlbmd0aCxvLmRlcHRoKSxuW2Uub3BdfHwobltlLm9wXT1bXSksbltlLm9wXS5wdXNoKGUpO2ZvcihsZXQgaT0wO2k8ci5sZW5ndGgmJihvLmRlcHRoPU1hdGgubWF4KG8uZGVwdGgsci5sZW5ndGgtaSksby5jYXJkaW5hbGl0eSs9ZS5jYXJkaW5hbGl0eSxvLm9wSGlzdG9ncmFtW2Uub3BdPShvLm9wSGlzdG9ncmFtW2Uub3BdfHwwKSsxLG51bGwhPWUuZGV2aWNlJiYoby5kZXZpY2VIaXN0b2dyYW1bZS5kZXZpY2VdPShvLmRldmljZUhpc3RvZ3JhbVtlLmRldmljZV18fDApKzEpLG51bGwhPWUueGxhQ2x1c3RlciYmKG8ueGxhQ2x1c3Rlckhpc3RvZ3JhbVtlLnhsYUNsdXN0ZXJdPShvLnhsYUNsdXN0ZXJIaXN0b2dyYW1bZS54bGFDbHVzdGVyXXx8MCkrMSksZS5jb21wYXRpYmxlP28uY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZXx8MCkrMTpvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlfHwwKSsxLFNlLmV4cG9ydHMuZWFjaChlLmluRW1iZWRkaW5ncywodD0+e3QuY29tcGF0aWJsZT9vLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZT0oby5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGV8fDApKzE6by5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZT0oby5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZXx8MCkrMX0pKSxTZS5leHBvcnRzLmVhY2goZS5vdXRFbWJlZGRpbmdzLCh0PT57dC5jb21wYXRpYmxlP28uY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZXx8MCkrMTpvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlfHwwKSsxfSkpLGkhPT1yLmxlbmd0aC0xKTtpKyspe2xldCBlPXJbaV0sYT10Lm5vZGUoZSk7aWYoIWEmJihhPSRHdChlLHQuZ3JhcGhPcHRpb25zKSxhLnBhcmVudE5vZGU9byx0LnNldE5vZGUoZSxhKSxvLm1ldGFncmFwaC5zZXROb2RlKGUsYSksMD09PWUuaW5kZXhPZihWR3QpJiZvLm5hbWU9PT1GR3QpKXtjb25zdCBpPWUuc3Vic3RyaW5nKFZHdC5sZW5ndGgpO25baV18fChuW2ldPVtdKSx0LmxpYnJhcnlGdW5jdGlvbnNbaV09e25vZGU6YSx1c2FnZXM6bltpXX0sYS5hc3NvY2lhdGVkRnVuY3Rpb249aX1vPWF9dC5zZXROb2RlKGUubmFtZSxlKSxlLnBhcmVudE5vZGU9byxvLm1ldGFncmFwaC5zZXROb2RlKGUubmFtZSxlKSxTZS5leHBvcnRzLmVhY2goZS5pbkVtYmVkZGluZ3MsKGZ1bmN0aW9uKG4pe3Quc2V0Tm9kZShuLm5hbWUsbiksbi5wYXJlbnROb2RlPWV9KSksU2UuZXhwb3J0cy5lYWNoKGUub3V0RW1iZWRkaW5ncywoZnVuY3Rpb24obil7dC5zZXROb2RlKG4ubmFtZSxuKSxuLnBhcmVudE5vZGU9ZX0pKX0pKX0pKGksdCl9KSxuLF9HdC5ISUVSQVJDSFlfQUREX05PREVTKS50aGVuKCgoKT0+TEd0KCJEZXRlY3Qgc2VyaWVzIiwzMCwoKCk9PntlLnNlcmllc05vZGVNaW5TaXplPjAmJlZxdChpLnJvb3QsaSxyLGUuc2VyaWVzTm9kZU1pblNpemUsZS5zZXJpZXNNYXAsZS51c2VHZW5lcmFsaXplZFNlcmllc1BhdHRlcm5zKX0pLG4sX0d0LkhJRVJBUkNIWV9ERVRFQ1RfU0VSSUVTKSkpLnRoZW4oKCgpPT5MR3QoIkFkZGluZyBlZGdlcyIsNDAsKCgpPT57IShmdW5jdGlvbiBlKHQsbixpKXtsZXQgcj10LmdldE5vZGVNYXAoKSxvPVtdLGE9W10scz0odCxlKT0+e2xldCBuPTA7Zm9yKDt0OyllW24rK109dC5uYW1lLHQ9dC5wYXJlbnROb2RlO3JldHVybiBuLTF9O1NlLmV4cG9ydHMuZWFjaChuLmVkZ2VzLChlPT57bGV0IGk9cyhuLm5vZGVzW2Uudl0sbyksbD1zKG4ubm9kZXNbZS53XSxhKTtpZigtMT09PWl8fC0xPT09bClyZXR1cm47Zm9yKDtvW2ldPT09YVtsXTspaWYoaS0tLGwtLSxpPDB8fGw8MCl0aHJvdyBFcnJvcigiTm8gZGlmZmVyZW5jZSBmb3VuZCBiZXR3ZWVuIGFuY2VzdG9yIHBhdGhzLiIpO2xldCBjPXJbb1tpKzFdXSx1PW9baV0saD1hW2xdLGQ9Yy5tZXRhZ3JhcGguZWRnZSh1LGgpO2R8fChkPVpHdCh1LGgpLGMubWV0YWdyYXBoLnNldEVkZ2UodSxoLGQpKSxjLmhhc05vbkNvbnRyb2xFZGdlc3x8ZS5pc0NvbnRyb2xEZXBlbmRlbmN5fHwoYy5oYXNOb25Db250cm9sRWRnZXM9ITApLGQuYWRkQmFzZUVkZ2UoZSx0KX0pKX0pKGksdCl9KSxuLF9HdC5ISUVSQVJDSFlfQUREX0VER0VTKSkpLnRoZW4oKCgpPT5pKSl9ZnVuY3Rpb24gVnF0KHQsZSxuLGkscixvKXtsZXQgYT10Lm1ldGFncmFwaDtTZS5leHBvcnRzLmVhY2goYS5ub2RlcygpLCh0PT57bGV0IHM9YS5ub2RlKHQpO3MudHlwZT09PWpHdC5NRVRBJiZWcXQocyxlLG4saSxyLG8pfSkpO2xldCBzPShmdW5jdGlvbiBsKHQpe3JldHVybiBTZS5leHBvcnRzLnJlZHVjZSh0Lm5vZGVzKCksKChlLG4pPT57bGV0IGk9dC5ub2RlKG4pO2lmKGkudHlwZT09PWpHdC5NRVRBKXJldHVybiBlO2xldCByPWkub3A7cmV0dXJuIHImJihlW3JdPWVbcl18fFtdLGVbcl0ucHVzaChpLm5hbWUpKSxlfSkse30pfSkoYSksYz0obz9qcXQ6VXF0KShzLGEsZS5ncmFwaE9wdGlvbnMpO1NlLmV4cG9ydHMuZWFjaChjLChmdW5jdGlvbih0LHIpe2xldCBvPXQubWV0YWdyYXBoLm5vZGVzKCk7U2UuZXhwb3J0cy5lYWNoKG8sKHQ9PntsZXQgZT1hLm5vZGUodCk7ZS5vd25pbmdTZXJpZXN8fChlLm93bmluZ1Nlcmllcz1yKX0pKSxvLmxlbmd0aDxpJiZlLmdldFNlcmllc0dyb3VwVHlwZSh0Lm5hbWUpPT09V0d0LkdST1VQJiZlLnNldFNlcmllc0dyb3VwVHlwZSh0Lm5hbWUsV0d0LlVOR1JPVVApLGUuZ2V0U2VyaWVzR3JvdXBUeXBlKHQubmFtZSkhPT1XR3QuVU5HUk9VUCYmKGUuc2V0Tm9kZShyLHQpLGEuc2V0Tm9kZShyLHQpLFNlLmV4cG9ydHMuZWFjaChvLChlPT57bGV0IGk9YS5ub2RlKGUpO3QubWV0YWdyYXBoLnNldE5vZGUoZSxpKSx0LnBhcmVudE5vZGU9aS5wYXJlbnROb2RlLHQuY2FyZGluYWxpdHkrKyxudWxsIT1pLmRldmljZSYmKHQuZGV2aWNlSGlzdG9ncmFtW2kuZGV2aWNlXT0odC5kZXZpY2VIaXN0b2dyYW1baS5kZXZpY2VdfHwwKSsxKSxudWxsIT1pLnhsYUNsdXN0ZXImJih0LnhsYUNsdXN0ZXJIaXN0b2dyYW1baS54bGFDbHVzdGVyXT0odC54bGFDbHVzdGVySGlzdG9ncmFtW2kueGxhQ2x1c3Rlcl18fDApKzEpLGkuY29tcGF0aWJsZT90LmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGV8fDApKzE6dC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZXx8MCkrMSxTZS5leHBvcnRzLmVhY2goaS5pbkVtYmVkZGluZ3MsKGU9PntlLmNvbXBhdGlibGU/dC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGU9KHQuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlfHwwKSsxOnQuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU9KHQuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGV8fDApKzF9KSksU2UuZXhwb3J0cy5lYWNoKGkub3V0RW1iZWRkaW5ncywoZT0+e2UuY29tcGF0aWJsZT90LmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGV8fDApKzE6dC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZXx8MCkrMX0pKSxpLnBhcmVudE5vZGU9dCxuW2VdPXIsYS5yZW1vdmVOb2RlKGUpfSkpKX0pKX1mdW5jdGlvbiBVcXQodCxlLG4pe2xldCBpPXt9O3JldHVybiBTZS5leHBvcnRzLmVhY2godCwoZnVuY3Rpb24odCxyKXtpZih0Lmxlbmd0aDw9MSlyZXR1cm47bGV0IG89e307U2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQpe2NvbnN0IGU9IioiPT09dC5jaGFyQXQodC5sZW5ndGgtMSksaT10LnNwbGl0KCIvIikscj1pW2kubGVuZ3RoLTFdLGE9aS5zbGljZSgwLGkubGVuZ3RoLTEpLmpvaW4oIi8iKSxzPXIubWF0Y2goL14oXEQqKShcZCspJC8pO2xldCBsLGMsdT0iIjtzPyhsPXNbMV0sYz1zWzJdKToobD1lP3Iuc3Vic3RyKDAsci5sZW5ndGgtMSk6cixjPTAsdT1lPyIqIjoiIik7Y29uc3QgaD10V3QobCx1LGEpO29baF09b1toXXx8W107Y29uc3QgZD1RR3QobCx1LGEsK2MsdCxuKTtvW2hdLnB1c2goZCl9KSksU2UuZXhwb3J0cy5lYWNoKG8sKGZ1bmN0aW9uKHQsbyl7aWYodC5sZW5ndGg8MilyZXR1cm47dC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybit0LmNsdXN0ZXJJZC0rZS5jbHVzdGVySWR9KSk7bGV0IGE9W3RbMF1dO2ZvcihsZXQgbz0xO288dC5sZW5ndGg7bysrKXtsZXQgcz10W29dO3MuY2x1c3RlcklkIT09YVthLmxlbmd0aC0xXS5jbHVzdGVySWQrMT8oR3F0KGEsaSwrcixlLG4pLGE9W3NdKTphLnB1c2gocyl9R3F0KGEsaSwrcixlLG4pfSkpfSkpLGl9ZnVuY3Rpb24ganF0KHQsZSxuKXtsZXQgaT17fTtyZXR1cm4gU2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQscil7aWYodC5sZW5ndGg8PTEpcmV0dXJuO2xldCBvPXt9LGE9e307U2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQpe2xldCBlPSIqIj09PXQuY2hhckF0KHQubGVuZ3RoLTEpLGk9dC5zcGxpdCgiLyIpLHI9aVtpLmxlbmd0aC0xXSxzPWkuc2xpY2UoMCxpLmxlbmd0aC0xKS5qb2luKCIvIik7Y29uc3QgbD0vKFxkKykvZztsZXQgYyx1LGgsZCxwLGY9MDtmb3IoO2M9bC5leGVjKHIpOykrK2YsdT1yLnNsaWNlKDAsYy5pbmRleCksaD1jWzBdLGQ9ci5zbGljZShjLmluZGV4K2NbMF0ubGVuZ3RoKSxwPXRXdCh1LGQscyksb1twXT1vW3BdLG9bcF18fChvW3BdPVFHdCh1LGQscywraCx0LG4pKSxvW3BdLmlkcy5wdXNoKGgpLGFbdF09YVt0XXx8W10sYVt0XS5wdXNoKFtwLGhdKTtmPDEmJih1PWU/ci5zdWJzdHIoMCxyLmxlbmd0aC0xKTpyLGg9MCxkPWU/IioiOiIiLHA9dFd0KHUsZCxzKSxvW3BdPW9bcF0sb1twXXx8KG9bcF09UUd0KHUsZCxzLCtoLHQsbikpLG9bcF0uaWRzLnB1c2goaCksYVt0XT1hW3RdfHxbXSxhW3RdLnB1c2goW3AsaF0pKX0pKTt2YXIgcz17fTtTZS5leHBvcnRzLmVhY2goYSwoZnVuY3Rpb24odCxlKXt0LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG9bZVswXV0uaWRzLmxlbmd0aC1vW3RbMF1dLmlkcy5sZW5ndGh9KSk7dmFyIGk9dFswXVswXSxyPXRbMF1bMV07c1tpXT1zW2ldfHxbXTtjb25zdCBhPWUuc3BsaXQoIi8iKSxsPWEuc2xpY2UoMCxhLmxlbmd0aC0xKS5qb2luKCIvIik7dmFyIGM9UUd0KG9baV0ucHJlZml4LG9baV0uc3VmZml4LGwsK3IsZSxuKTtzW2ldLnB1c2goYyl9KSksU2UuZXhwb3J0cy5lYWNoKHMsKGZ1bmN0aW9uKHQsbyl7aWYodC5sZW5ndGg8MilyZXR1cm47dC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybit0LmNsdXN0ZXJJZC0rZS5jbHVzdGVySWR9KSk7bGV0IGE9W3RbMF1dO2ZvcihsZXQgbz0xO288dC5sZW5ndGg7bysrKXtsZXQgcz10W29dO3MuY2x1c3RlcklkIT09YVthLmxlbmd0aC0xXS5jbHVzdGVySWQrMT8oR3F0KGEsaSwrcixlLG4pLGE9W3NdKTphLnB1c2gocyl9R3F0KGEsaSwrcixlLG4pfSkpfSkpLGl9ZnVuY3Rpb24gR3F0KHQsZSxuLGkscil7aWYodC5sZW5ndGg+MSl7bGV0IG89dFd0KHRbMF0ucHJlZml4LHRbMF0uc3VmZml4LHRbMF0ucGFyZW50LHRbMF0uY2x1c3RlcklkLHRbdC5sZW5ndGgtMV0uY2x1c3RlcklkKSxhPVFHdCh0WzBdLnByZWZpeCx0WzBdLnN1ZmZpeCx0WzBdLnBhcmVudCxuLG8scik7U2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQpe2EuaWRzLnB1c2godC5jbHVzdGVySWQpLGEubWV0YWdyYXBoLnNldE5vZGUodC5uYW1lLGkubm9kZSh0Lm5hbWUpKX0pKSxlW29dPWF9fWxldCBXcXQ9Y2xhc3MgZXh0ZW5kcyhlcihpbCh5ZSkpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZXhwYW5kZWQ9ITAsdGhpcy5fb3BDb21wYXRDb2xvcj1oV3QsdGhpcy5fb3BJbmNvbXBhdENvbG9yPWRXdCx0aGlzLl90ZW1wbGF0ZUluZGV4PW51bGx9X2dldE5vZGUodCxlKXtyZXR1cm4gZS5ub2RlKHQpfV9nZXRSZW5kZXJJbmZvKHQsZSl7cmV0dXJuIHRoaXMucmVuZGVySGllcmFyY2h5LmdldE9yQ3JlYXRlUmVuZGVyTm9kZUJ5TmFtZSh0KX1fdG9nZ2xlRXhwYW5kZWQoKXt0aGlzLl9leHBhbmRlZD0hdGhpcy5fZXhwYW5kZWR9X2dldFRvZ2dsZUljb24odCl7cmV0dXJuIHQ/ImV4cGFuZC1sZXNzIjoiZXhwYW5kLW1vcmUifV9yZXNpemVMaXN0KHQpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCk7ZSYmZS5maXJlKCJpcm9uLXJlc2l6ZSIpfWdldCBfaW5jb21wYXRpYmxlT3BOb2Rlcygpe2NvbnN0IHQ9dGhpcy5ncmFwaEhpZXJhcmNoeTtyZXR1cm4gdCYmdC5yb290Pyh0aGlzLmFzeW5jKHRoaXMuX3Jlc2l6ZUxpc3QuYmluZCh0aGlzLCIjaW5jb21wYXRpYmxlT3BzTGlzdCIpKSwoZnVuY3Rpb24gZSh0KXtjb25zdCBlPVtdLG49e307cmV0dXJuIFNlLmV4cG9ydHMuZWFjaCh0LnJvb3QubGVhdmVzKCksKGk9PntsZXQgcj10Lm5vZGUoaSk7aWYoci50eXBlPT1qR3QuT1Ape2xldCBpPXI7aWYoIWkuY29tcGF0aWJsZSlpZihpLm93bmluZ1Nlcmllcyl7aWYodC5nZXRTZXJpZXNHcm91cFR5cGUoaS5vd25pbmdTZXJpZXMpPT09V0d0LlVOR1JPVVApZS5wdXNoKGkpO2Vsc2UgaWYoIW5baS5vd25pbmdTZXJpZXNdKXtsZXQgcj10Lm5vZGUoaS5vd25pbmdTZXJpZXMpO3ImJihuW2kub3duaW5nU2VyaWVzXT1yLGUucHVzaChyKSl9fWVsc2UgZS5wdXNoKGkpO1NlLmV4cG9ydHMuZWFjaChpLmluRW1iZWRkaW5ncywodD0+e3QuY29tcGF0aWJsZXx8ZS5wdXNoKHQpfSkpLFNlLmV4cG9ydHMuZWFjaChpLm91dEVtYmVkZGluZ3MsKHQ9Pnt0LmNvbXBhdGlibGV8fGUucHVzaCh0KX0pKX19KSksZX0pKHQpKTpbXX1nZXQgX29wQ29tcGF0U2NvcmUoKXt2YXIgdD10aGlzLmdyYXBoSGllcmFyY2h5O2lmKHQmJnQucm9vdCl7dmFyIGU9dC5yb290LG49ZS5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGUsaT1lLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlO3JldHVybiAwPT1uJiYwPT1pPzA6TWF0aC5mbG9vcigxMDAqbi8obitpKSkvMTAwfXJldHVybiAwfWdldCBfb3BDb21wYXRTY29yZUxhYmVsKCl7dmFyIHQ9dGhpcy5fb3BDb21wYXRTY29yZTtyZXR1cm4gbXkoIi4wJSIpKHQpfWdldCBfdG90YWxJbmNvbXBhdE9wcygpe3ZhciB0PXRoaXMuZ3JhcGhIaWVyYXJjaHk7cmV0dXJuIHQmJnQucm9vdD90LnJvb3QuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU6MH1fZ3JhcGhIaWVyYXJjaHlDaGFuZ2VkKCl7dGhpcy5fdGVtcGxhdGVJbmRleD10aGlzLmdyYXBoSGllcmFyY2h5LmdldFRlbXBsYXRlSW5kZXgoKSx0aGlzLmdyYXBoSGllcmFyY2h5LmFkZExpc3RlbmVyKHpxdC5URU1QTEFURVNfVVBEQVRFRCwoKCk9Pnt0aGlzLl90ZW1wbGF0ZUluZGV4PXRoaXMuZ3JhcGhIaWVyYXJjaHkuZ2V0VGVtcGxhdGVJbmRleCgpfSkpfX07V3F0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIC5pbmNvbXBhdGlibGUtb3BzLWxpc3QgewogICAgICAgIGhlaWdodDogMzUwcHg7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgaXJvbi1saXN0IHsKICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICAgICAgfQoKICAgICAgcGFwZXItaXRlbSB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcik7CiAgICAgIH0KCiAgICAgIHBhcGVyLWl0ZW0tYm9keVt0d28tbGluZV0gewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggNHB4OwogICAgICB9CgogICAgICAuZXhwYW5kZWRJbmZvIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJwdDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLm5vZGUtbmFtZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgZm9udC1zaXplOiAxNHB0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBmb250LXNpemU6IDEycHQ7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYnV0dG9uIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgbWF4LWhlaWdodDogMjBweDsKICAgICAgICBtYXgtd2lkdGg6IDIwcHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLm5vbi1jb250cm9sLWxpc3QtaXRlbSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OwogICAgICB9CgogICAgICBkaXYub3AtY29tcGF0LWRpc3BsYXkgewogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAvKioKICAgICAgICogU2FkbHksIGJlY2F1c2UgdGhlIHdob2xlIGJvZHkgaXMgaW52ZXJ0ZWQgaW4gY29sb3IsIGxlZ2VuZHMgYWxzbyBuZWVkCiAgICAgICAqIHRvIGJlIGludmVydGVkLgogICAgICAgKiovCiAgICAgIDpob3N0KC5kYXJrLW1vZGUpIGRpdi5vcC1jb21wYXQtZGlzcGxheSB7CiAgICAgICAgZmlsdGVyOiBpbnZlcnQoMSk7CiAgICAgIH0KCiAgICAgIHN2Zy5vcC1jb21wYXQgewogICAgICAgIHdpZHRoOiAyNTBweDsKICAgICAgICBoZWlnaHQ6IDI1cHg7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgIH0KCiAgICAgIGRpdi5vcC1jb21wYXQtdmFsdWUgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiBibGFjazsKICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8cGFwZXItaXRlbT4KICAgICAgPHBhcGVyLWl0ZW0tYm9keSB0d28tbGluZT4KICAgICAgICA8ZGl2PgogICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgIGljb249Int7X2dldFRvZ2dsZUljb24oX2V4cGFuZGVkKX19IgogICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZUV4cGFuZGVkIgogICAgICAgICAgICBjbGFzcz0idG9nZ2xlLWJ1dHRvbiIKICAgICAgICAgID4KICAgICAgICAgIDwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJub2RlLW5hbWUiIGlkPSJub2RldGl0bGUiPltbbm9kZVRpdGxlXV08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNlY29uZGFyeT4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3AtY29tcGF0LWRpc3BsYXkiPgogICAgICAgICAgICAgIDxzdmcKICAgICAgICAgICAgICAgIGNsYXNzPSJvcC1jb21wYXQiCiAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pZCBtZWV0IgogICAgICAgICAgICAgICAgdmlld0JveD0iMCAwIDI1MCAyNSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVmcz4KICAgICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJvcC1jb21wYXQtZmlsbCI+CiAgICAgICAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yJD0iW1tfb3BDb21wYXRDb2xvcl1dIj48L3N0b3A+CiAgICAgICAgICAgICAgICAgICAgPHN0b3AKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCQ9IltbX29wQ29tcGF0U2NvcmVdXSIKICAgICAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3IkPSJbW19vcENvbXBhdENvbG9yXV0iCiAgICAgICAgICAgICAgICAgICAgPjwvc3RvcD4KICAgICAgICAgICAgICAgICAgICA8c3RvcAogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0JD0iW1tfb3BDb21wYXRTY29yZV1dIgogICAgICAgICAgICAgICAgICAgICAgc3RvcC1jb2xvciQ9IltbX29wSW5jb21wYXRDb2xvcl1dIgogICAgICAgICAgICAgICAgICAgID48L3N0b3A+CiAgICAgICAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yJD0iW1tfb3BJbmNvbXBhdENvbG9yIF1dIj48L3N0b3A+CiAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgICAgICAgICA8L2RlZnM+CiAgICAgICAgICAgICAgICA8cmVjdAogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjI1IgogICAgICAgICAgICAgICAgICB3aWR0aD0iMjUwIgogICAgICAgICAgICAgICAgICByeD0iNSIKICAgICAgICAgICAgICAgICAgcnk9IjUiCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiB1cmwoJyNvcC1jb21wYXQtZmlsbCcpOyIKICAgICAgICAgICAgICAgID48L3JlY3Q+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3AtY29tcGF0LXZhbHVlIj5bW19vcENvbXBhdFNjb3JlTGFiZWxdXTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3BhcGVyLWl0ZW0tYm9keT4KICAgIDwvcGFwZXItaXRlbT4KCiAgICA8aXJvbi1jb2xsYXBzZSBvcGVuZWQ9Int7X2V4cGFuZGVkfX0iPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Int7X2V4cGFuZGVkfX0iIHJlc3RhbXA9InRydWUiPgogICAgICAgIDxkaXYgY2xhc3M9ImV4cGFuZGVkSW5mbyI+CiAgICAgICAgICBJbmNvbXBhdGlibGUgT3BlcmF0aW9uczogKDxzcGFuPltbX3RvdGFsSW5jb21wYXRPcHNdXTwvc3Bhbj4pCiAgICAgICAgICA8aXJvbi1saXN0CiAgICAgICAgICAgIGNsYXNzPSJpbmNvbXBhdGlibGUtb3BzLWxpc3QiCiAgICAgICAgICAgIGlkPSJpbmNvbXBhdGlibGVPcHNMaXN0IgogICAgICAgICAgICBpdGVtcz0iW1tfaW5jb21wYXRpYmxlT3BOb2Rlc11dIgogICAgICAgICAgPgogICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgPHRmLWdyYXBoLW9wLWNvbXBhdC1saXN0LWl0ZW0KICAgICAgICAgICAgICAgIGNsYXNzPSJub24tY29udHJvbC1saXN0LWl0ZW0iCiAgICAgICAgICAgICAgICBpdGVtLW5vZGU9IltbaXRlbV1dIgogICAgICAgICAgICAgICAgaXRlbS1yZW5kZXItaW5mbz0iW1tfZ2V0UmVuZGVySW5mbyhpdGVtLm5hbWUsIHJlbmRlckhpZXJhcmNoeSldXSIKICAgICAgICAgICAgICAgIG5hbWU9IltbaXRlbS5uYW1lXV0iCiAgICAgICAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1tfdGVtcGxhdGVJbmRleF1dIgogICAgICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICAgICAgaXRlbS10eXBlPSJpbmNvbXBhdGlibGUtb3BzIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8L3RmLWdyYXBoLW9wLWNvbXBhdC1saXN0LWl0ZW0+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvaXJvbi1jb2xsYXBzZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLERxdCldLFdxdC5wcm90b3R5cGUsImdyYXBoSGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHlXdCldLFdxdC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxXcXQucHJvdG90eXBlLCJub2RlVGl0bGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxXcXQucHJvdG90eXBlLCJfZXhwYW5kZWQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sV3F0LnByb3RvdHlwZSwiX29wQ29tcGF0Q29sb3IiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sV3F0LnByb3RvdHlwZSwiX29wSW5jb21wYXRDb2xvciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLFdxdC5wcm90b3R5cGUsIl90ZW1wbGF0ZUluZGV4Iix2b2lkIDApLHQoW3MoImdyYXBoSGllcmFyY2h5IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxXcXQucHJvdG90eXBlLCJfaW5jb21wYXRpYmxlT3BOb2RlcyIsbnVsbCksdChbcygiZ3JhcGhIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxXcXQucHJvdG90eXBlLCJfb3BDb21wYXRTY29yZSIsbnVsbCksdChbcygiX29wQ29tcGF0U2NvcmUiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxXcXQucHJvdG90eXBlLCJfb3BDb21wYXRTY29yZUxhYmVsIixudWxsKSx0KFtzKCJncmFwaEhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFdxdC5wcm90b3R5cGUsIl90b3RhbEluY29tcGF0T3BzIixudWxsKSx0KFthKCJncmFwaEhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sV3F0LnByb3RvdHlwZSwiX2dyYXBoSGllcmFyY2h5Q2hhbmdlZCIsbnVsbCksV3F0PXQoW2koInRmLWdyYXBoLW9wLWNvbXBhdC1jYXJkIildLFdxdCk7bGV0IHFxdD1jbGFzcyBleHRlbmRzKGVyKGlsKHllKSkpe19pdGVtVHlwZUNoYW5nZWQoKXsic3Vibm9kZSIhPT10aGlzLml0ZW1UeXBlP3RoaXMuJFsibGlzdC1pdGVtIl0uY2xhc3NMaXN0LmFkZCgiY2xpY2thYmxlIik6dGhpcy4kWyJsaXN0LWl0ZW0iXS5jbGFzc0xpc3QucmVtb3ZlKCJjbGlja2FibGUiKX1fbm9kZUxpc3RlbmVyKHQpe3RoaXMuZmlyZSgibm9kZS1saXN0LWl0ZW0tIit0LnR5cGUse2NhcmROb2RlOnRoaXMuY2FyZE5vZGUubmFtZSxub2RlTmFtZTp0aGlzLm5hbWUsdHlwZTp0aGlzLml0ZW1UeXBlfSl9X2ZhZGVkQ2xhc3ModCl7cmV0dXJuIHQmJnQuaXNGYWRlZE91dD8iZmFkZWQiOiIifX07cXF0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICAjbGlzdC1pdGVtIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIGZvbnQtc2l6ZTogMTFwdDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgICNsaXN0LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdvb2dsZS15ZWxsb3ctMTAwKTsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgI2xpc3QtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXIteWVsbG93LTkwMCk7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgIH0KCiAgICAgIC5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDBweDsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbS5leGNsdWRlZCBzcGFuIHsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuLmVkZ2UtbGFiZWwgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsKICAgICAgfQoKICAgICAgLm5vZGUtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMXB4OwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmZhZGVkIHNwYW4gewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1mYWRlZCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2CiAgICAgIGlkPSJsaXN0LWl0ZW0iCiAgICAgIG9uLW1vdXNlb3Zlcj0iX25vZGVMaXN0ZW5lciIKICAgICAgb24tbW91c2VvdXQ9Il9ub2RlTGlzdGVuZXIiCiAgICAgIG9uLWNsaWNrPSJfbm9kZUxpc3RlbmVyIgogICAgPgogICAgICA8ZGl2IGNsYXNzJD0ie3tfZmFkZWRDbGFzcyhpdGVtUmVuZGVySW5mbyl9fSI+CiAgICAgICAgPHRmLW5vZGUtaWNvbgogICAgICAgICAgY2xhc3M9Im5vZGUtaWNvbiIKICAgICAgICAgIGhlaWdodD0iMTIiCiAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICBjb2xvci1ieS1wYXJhbXM9IltbY29sb3JCeVBhcmFtc11dIgogICAgICAgICAgbm9kZT0iW1tpdGVtTm9kZV1dIgogICAgICAgICAgcmVuZGVyLWluZm89IltbaXRlbVJlbmRlckluZm9dXSIKICAgICAgICAgIHRlbXBsYXRlLWluZGV4PSJbW3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICA+PC90Zi1ub2RlLWljb24+CiAgICAgICAgPHNwYW4gdGl0bGUkPSJbW25hbWVdXSI+W1tuYW1lXV08L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImVkZ2UtbGFiZWwiPltbZWRnZUxhYmVsXV08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxxcXQucHJvdG90eXBlLCJjYXJkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxxcXQucHJvdG90eXBlLCJpdGVtTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxxcXQucHJvdG90eXBlLCJlZGdlTGFiZWwiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0scXF0LnByb3RvdHlwZSwiaXRlbVJlbmRlckluZm8iLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0scXF0LnByb3RvdHlwZSwibmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxvYnNlcnZlcjoiX2l0ZW1UeXBlQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0scXF0LnByb3RvdHlwZSwiaXRlbVR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0scXF0LnByb3RvdHlwZSwiY29sb3JCeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxxcXQucHJvdG90eXBlLCJjb2xvckJ5UGFyYW1zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHFxdC5wcm90b3R5cGUsInRlbXBsYXRlSW5kZXgiLHZvaWQgMCkscXF0PXQoW2koInRmLW5vZGUtbGlzdC1pdGVtIildLHFxdCk7bGV0IFlxdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2V4cGFuZGVkPSEwLHRoaXMuX29wZW5lZENvbnRyb2xQcmVkPSExLHRoaXMuX29wZW5lZENvbnRyb2xTdWNjPSExLHRoaXMuX3RlbXBsYXRlSW5kZXg9bnVsbH1leHBhbmROb2RlKCl7dGhpcy5maXJlKCJfbm9kZS5leHBhbmQiLHRoaXMubm9kZSl9X2dldE5vZGUodCxlKXtyZXR1cm4gZS5ub2RlKHQpfV9nZXROb2RlU3RhdHModCxlKXt2YXIgbj10aGlzLl9nZXROb2RlKHQsZSk7cmV0dXJuIG4/bi5zdGF0czpudWxsfV9nZXRUb3RhbE1pY3Jvcyh0KXtyZXR1cm4gdD90LmdldFRvdGFsTWljcm9zKCk6MH1nZXQgX2hhc0Rpc3BsYXlhYmxlTm9kZVN0YXRzKCl7cmV0dXJuIE9HdCh0aGlzLl9ub2RlU3RhdHMpfWdldCBfbm9kZVN0YXRzRm9ybWF0dGVkQnl0ZXMoKXt2YXIgdD10aGlzLl9ub2RlU3RhdHM7aWYodCYmdC50b3RhbEJ5dGVzKXJldHVybiBSR3QodC50b3RhbEJ5dGVzLE5HdCl9Z2V0IF9ub2RlU3RhdHNGb3JtYXR0ZWRDb21wdXRlVGltZSgpe3ZhciB0PXRoaXMuX25vZGVTdGF0cztpZih0JiZ0LmdldFRvdGFsTWljcm9zKCkpcmV0dXJuIFJHdCh0LmdldFRvdGFsTWljcm9zKCksSUd0KX1nZXQgX25vZGVTdGF0c0Zvcm1hdHRlZE91dHB1dFNpemVzKCl7dmFyIHQ9dGhpcy5fbm9kZVN0YXRzO2lmKHQmJnQub3V0cHV0U2l6ZSYmdC5vdXRwdXRTaXplLmxlbmd0aClyZXR1cm4gU2UuZXhwb3J0cy5tYXAodC5vdXRwdXRTaXplLChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQubGVuZ3RoPyJzY2FsYXIiOiJbIit0LmpvaW4oIiwgIikrIl0ifSkpfV9nZXRSZW5kZXJJbmZvKHQsZSl7cmV0dXJuIHRoaXMucmVuZGVySGllcmFyY2h5LmdldE9yQ3JlYXRlUmVuZGVyTm9kZUJ5TmFtZSh0KX1nZXQgX2F0dHJpYnV0ZXMoKXt2YXIgdD10aGlzLl9ub2RlO2lmKHRoaXMuYXN5bmModGhpcy5fcmVzaXplTGlzdC5iaW5kKHRoaXMsIiNhdHRyaWJ1dGVzTGlzdCIpKSwhdHx8IXQuYXR0cilyZXR1cm5bXTt2YXIgZT1bXTtyZXR1cm4gU2UuZXhwb3J0cy5lYWNoKHQuYXR0ciwoZnVuY3Rpb24odCl7Il90b29fbGFyZ2VfYXR0cnMiPT09dC5rZXk/ZT1lLmNvbmNhdCh0LnZhbHVlLmxpc3Qucy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntrZXk6dCx2YWx1ZToiVG9vIGxhcmdlIHRvIHNob3cuLi4ifX0pKSk6ZS5wdXNoKHtrZXk6dC5rZXksdmFsdWU6SlNPTi5zdHJpbmdpZnkodC52YWx1ZSl9KX0pKSxlfWdldCBfZGV2aWNlKCl7dmFyIHQ9dGhpcy5fbm9kZTtyZXR1cm4gdD90LmRldmljZTpudWxsfWdldCBfc3VjY2Vzc29ycygpe3ZhciB0PXRoaXMuX25vZGUsZT10aGlzLmdyYXBoSGllcmFyY2h5O3JldHVybiB0aGlzLl9yZWZyZXNoTm9kZUl0ZW1MaXN0KCJpbnB1dHNMaXN0IiksdD90aGlzLl9jb252ZXJ0RWRnZUxpc3RUb0VkZ2VJbmZvTGlzdChlLmdldFN1Y2Nlc3NvcnModC5uYW1lKSwhMSx0LmlzR3JvdXBOb2RlKTp7cmVndWxhcjpbXSxjb250cm9sOltdfX1nZXQgX3ByZWRlY2Vzc29ycygpe3ZhciB0PXRoaXMuX25vZGUsZT10aGlzLmdyYXBoSGllcmFyY2h5O3JldHVybiB0aGlzLl9yZWZyZXNoTm9kZUl0ZW1MaXN0KCJvdXRwdXRzTGlzdCIpLHQ/dGhpcy5fY29udmVydEVkZ2VMaXN0VG9FZGdlSW5mb0xpc3QoZS5nZXRQcmVkZWNlc3NvcnModC5uYW1lKSwhMCx0LmlzR3JvdXBOb2RlKTp7cmVndWxhcjpbXSxjb250cm9sOltdfX1nZXQgX2Z1bmN0aW9uVXNhZ2VzKCl7dmFyIHQ9dGhpcy5fbm9kZSxlPXRoaXMuZ3JhcGhIaWVyYXJjaHk7aWYodGhpcy5fcmVmcmVzaE5vZGVJdGVtTGlzdCgiZnVuY3Rpb25Vc2FnZXNMaXN0IiksIXR8fHQudHlwZSE9PWpHdC5NRVRBKXJldHVybltdO2NvbnN0IG49ZS5saWJyYXJ5RnVuY3Rpb25zW3QuYXNzb2NpYXRlZEZ1bmN0aW9uXTtyZXR1cm4gbj9uLnVzYWdlczpbXX1fcmVmcmVzaE5vZGVJdGVtTGlzdCh0KXt0aGlzLmFzeW5jKHRoaXMuX3Jlc2l6ZUxpc3QuYmluZCh0aGlzLGAjJHt0fWApKX1fY29udmVydEVkZ2VMaXN0VG9FZGdlSW5mb0xpc3QodCxlLG4pe3ZhciBpPXQ9PlNlLmV4cG9ydHMubWFwKHQuYmFzZUVkZ2VMaXN0LCh0PT57dmFyIG49ZT90LnY6dC53O3JldHVybntuYW1lOm4sbm9kZTp0aGlzLl9nZXROb2RlKG4sdGhpcy5ncmFwaEhpZXJhcmNoeSksZWRnZUxhYmVsOnRxdCh0LHRoaXMucmVuZGVySGllcmFyY2h5KSxyZW5kZXJJbmZvOnRoaXMuX2dldFJlbmRlckluZm8obix0aGlzLnJlbmRlckhpZXJhcmNoeSl9fSkpLHI9ZnVuY3Rpb24odCl7dmFyIHI9W107cmV0dXJuIFNlLmV4cG9ydHMuZWFjaCh0LCh0PT57dmFyIG89ZT90LnY6dC53O24mJjEhPXQuYmFzZUVkZ2VMaXN0Lmxlbmd0aD9yLnB1c2goe25hbWU6byxub2RlOnRoaXMuX2dldE5vZGUobyx0aGlzLmdyYXBoSGllcmFyY2h5KSxlZGdlTGFiZWw6ZXF0KHQsdGhpcy5yZW5kZXJIaWVyYXJjaHkpLHJlbmRlckluZm86dGhpcy5fZ2V0UmVuZGVySW5mbyhvLHRoaXMucmVuZGVySGllcmFyY2h5KX0pOnI9ci5jb25jYXQoaSh0KSl9KSkscn0uYmluZCh0aGlzKTtyZXR1cm57cmVndWxhcjpyKHQucmVndWxhciksY29udHJvbDpyKHQuY29udHJvbCl9fWdldCBfc3Vibm9kZXMoKXt2YXIgdD10aGlzLl9ub2RlO3JldHVybiB0JiZ0Lm1ldGFncmFwaD90Lm1ldGFncmFwaC5ub2RlcygpOm51bGx9Z2V0IF90b3RhbFByZWRlY2Vzc29ycygpe3ZhciB0PXRoaXMuX3ByZWRlY2Vzc29ycztyZXR1cm4gdC5yZWd1bGFyLmxlbmd0aCt0LmNvbnRyb2wubGVuZ3RofWdldCBfdG90YWxTdWNjZXNzb3JzKCl7dmFyIHQ9dGhpcy5fc3VjY2Vzc29ycztyZXR1cm4gdC5yZWd1bGFyLmxlbmd0aCt0LmNvbnRyb2wubGVuZ3RofV90b2dnbGVDb250cm9sUHJlZCgpe3RoaXMuX29wZW5lZENvbnRyb2xQcmVkPSF0aGlzLl9vcGVuZWRDb250cm9sUHJlZH1fdG9nZ2xlQ29udHJvbFN1Y2MoKXt0aGlzLl9vcGVuZWRDb250cm9sU3VjYz0hdGhpcy5fb3BlbmVkQ29udHJvbFN1Y2N9X3RvZ2dsZUV4cGFuZGVkKCl7dGhpcy5fZXhwYW5kZWQ9IXRoaXMuX2V4cGFuZGVkfV9nZXRUb2dnbGVJY29uKHQpe3JldHVybiB0PyJleHBhbmQtbGVzcyI6ImV4cGFuZC1tb3JlIn1fcmVzZXRTdGF0ZSgpe3RoaXMuX29wZW5lZENvbnRyb2xQcmVkPSExLHRoaXMuX29wZW5lZENvbnRyb2xTdWNjPSExLHRoaXMuc2V0KCJfZ3JvdXBCdXR0b25UZXh0IixwcXQodGhpcy5fbm9kZSkpfV9yZXNpemVMaXN0KHQpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCk7ZSYmZS5maXJlKCJpcm9uLXJlc2l6ZSIpfV90b2dnbGVJbmNsdWRlKCl7dGhpcy5maXJlKCJub2RlLXRvZ2dsZS1pbmNsdXNpb24iLHtuYW1lOnRoaXMuZ3JhcGhOb2RlTmFtZX0pfV9ub2RlSW5jbHVkZVN0YXRlQ2hhbmdlZCh0LGUpe3RoaXMuc2V0KCJfYXV4QnV0dG9uVGV4dCIsdVd0KHQpKX1fdG9nZ2xlR3JvdXAoKXt2YXIgdD1kcXQodGhpcy5fbm9kZSk7dGhpcy5maXJlKCJub2RlLXRvZ2dsZS1zZXJpZXNncm91cCIse25hbWU6dH0pfV9pc0xpYnJhcnlGdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5uYW1lLnN0YXJ0c1dpdGgoVkd0KX1faXNJblNlcmllcyh0KXtyZXR1cm4gaHF0KHQpfV9ncmFwaEhpZXJhcmNoeUNoYW5nZWQoKXt0aGlzLl90ZW1wbGF0ZUluZGV4PXRoaXMuZ3JhcGhIaWVyYXJjaHkuZ2V0VGVtcGxhdGVJbmRleCgpLHRoaXMuZ3JhcGhIaWVyYXJjaHkuYWRkTGlzdGVuZXIoenF0LlRFTVBMQVRFU19VUERBVEVELCgoKT0+e3RoaXMuX3RlbXBsYXRlSW5kZXg9dGhpcy5ncmFwaEhpZXJhcmNoeS5nZXRUZW1wbGF0ZUluZGV4KCl9KSl9fTtZcXQudGVtcGxhdGU9X2VgCiAgICA8c3R5bGU+CiAgICAgIC5zdWItbGlzdC1ncm91cCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEycHQ7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLnN1Yi1saXN0IHsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgICAgIH0KCiAgICAgIC5hdHRyLWxlZnQgewogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICAgIHdpZHRoOiAzMCU7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZm9udC1zaXplOiAxMXB0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC5hdHRyLXJpZ2h0IHsKICAgICAgICBtYXJnaW4tbGVmdDogMzAlOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC5zdWItbGlzdC10YWJsZSB7CiAgICAgICAgZGlzcGxheTogdGFibGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5zdWItbGlzdC10YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdzsKICAgICAgfQoKICAgICAgLnN1Yi1saXN0LXRhYmxlLXJvdyAuc3ViLWxpc3QtdGFibGUtY2VsbDpsYXN0LWNoaWxkIHsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgfQoKICAgICAgLnN1Yi1saXN0LXRhYmxlLWNlbGwgewogICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsKICAgICAgICBmb250LXNpemU6IDExcHQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBtYXgtd2lkdGg6IDIwMHB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICB9CgogICAgICBwYXBlci1pdGVtIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcik7CiAgICAgIH0KCiAgICAgIHBhcGVyLWl0ZW0tYm9keVt0d28tbGluZV0gewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggNHB4OwogICAgICB9CgogICAgICAuZXhwYW5kZWRJbmZvIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgLmNvbnRyb2xEZXBzIHsKICAgICAgICBwYWRkaW5nOiAwIDAgMCA4cHg7CiAgICAgIH0KCiAgICAgIC5ub2RlLW5hbWUgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIGZvbnQtc2l6ZTogMTRwdDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubm9kZS1pY29uIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBmb250LXNpemU6IDEycHQ7CiAgICAgIH0KCiAgICAgIC5jb250cm9sTGluZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYnV0dG9uIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgbWF4LWhlaWdodDogMjBweDsKICAgICAgICBtYXgtd2lkdGg6IDIwcHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtdG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgbWF4LWhlaWdodDogMjBweDsKICAgICAgICBtYXgtd2lkdGg6IDIwcHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1pbmNsdWRlLWdyb3VwIHsKICAgICAgICBwYWRkaW5nLXRvcDogNHB4OwogICAgICB9CgogICAgICAudG9nZ2xlLWluY2x1ZGUgewogICAgICAgIG1hcmdpbjogNXB4IDZweDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKICAgICAgICBwYWRkaW5nOiA0cHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBwdDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICB9CgogICAgICAudG9nZ2xlLWluY2x1ZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdvb2dsZS15ZWxsb3ctMTAwKTsKICAgICAgfQoKICAgICAgLm5vbi1jb250cm9sLWxpc3QtaXRlbSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHBhcGVyLWl0ZW0+CiAgICAgIDxwYXBlci1pdGVtLWJvZHkgdHdvLWxpbmU+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICBpY29uPSJ7e19nZXRUb2dnbGVJY29uKF9leHBhbmRlZCl9fSIKICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVFeHBhbmRlZCIKICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1idXR0b24iCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm9kZS1uYW1lIj4KICAgICAgICAgICAgPHRmLXdici1zdHJpbmcgdmFsdWU9IltbX25vZGUubmFtZV1dIiBkZWxpbWl0ZXItcGF0dGVybj0iLyI+CiAgICAgICAgICAgIDwvdGYtd2JyLXN0cmluZz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2Vjb25kYXJ5PgogICAgICAgICAgPHRmLW5vZGUtaWNvbgogICAgICAgICAgICBjbGFzcz0ibm9kZS1pY29uIgogICAgICAgICAgICBub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgIHJlbmRlci1pbmZvPSJbW19nZXRSZW5kZXJJbmZvKGdyYXBoTm9kZU5hbWUsIHJlbmRlckhpZXJhcmNoeSldXSIKICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1tfdGVtcGxhdGVJbmRleF1dIgogICAgICAgICAgPjwvdGYtbm9kZS1pY29uPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJ7e19ub2RlLm9wfX0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+CiAgICAgICAgICAgICAgT3BlcmF0aW9uOgogICAgICAgICAgICAgIDxzcGFuPltbX25vZGUub3BdXTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJ7e19ub2RlLm1ldGFncmFwaH19Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPgogICAgICAgICAgICAgIFN1YmdyYXBoOgogICAgICAgICAgICAgIDxzcGFuPltbX25vZGUuY2FyZGluYWxpdHldXTwvc3Bhbj4gbm9kZXMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvZGl2PgogICAgICA8L3BhcGVyLWl0ZW0tYm9keT4KICAgIDwvcGFwZXItaXRlbT4KICAgIDxpcm9uLWNvbGxhcHNlIG9wZW5lZD0ie3tfZXhwYW5kZWR9fSI+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfZXhwYW5kZWR9fSIgcmVzdGFtcD0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZXhwYW5kZWRJbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LWdyb3VwIGF0dHJpYnV0ZXMiPgogICAgICAgICAgICBBdHRyaWJ1dGVzICg8c3Bhbj5bW19hdHRyaWJ1dGVzLmxlbmd0aF1dPC9zcGFuPikKICAgICAgICAgICAgPGlyb24tbGlzdAogICAgICAgICAgICAgIGNsYXNzPSJzdWItbGlzdCIKICAgICAgICAgICAgICBpZD0iYXR0cmlidXRlc0xpc3QiCiAgICAgICAgICAgICAgaXRlbXM9IltbX2F0dHJpYnV0ZXNdXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dHItbGVmdCI+W1tpdGVtLmtleV1dPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dHItcmlnaHQiPltbaXRlbS52YWx1ZV1dPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfZGV2aWNlfX0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItbGlzdC1ncm91cCBkZXZpY2UiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dHItbGVmdCI+RGV2aWNlPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXR0ci1yaWdodCI+W1tfZGV2aWNlXV08L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LWdyb3VwIHByZWRlY2Vzc29ycyI+CiAgICAgICAgICAgIElucHV0cyAoPHNwYW4+W1tfdG90YWxQcmVkZWNlc3NvcnNdXTwvc3Bhbj4pCiAgICAgICAgICAgIDxpcm9uLWxpc3QKICAgICAgICAgICAgICBjbGFzcz0ic3ViLWxpc3QiCiAgICAgICAgICAgICAgaWQ9ImlucHV0c0xpc3QiCiAgICAgICAgICAgICAgaXRlbXM9IltbX3ByZWRlY2Vzc29ycy5yZWd1bGFyXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtbm9kZS1saXN0LWl0ZW0KICAgICAgICAgICAgICAgICAgY2xhc3M9Im5vbi1jb250cm9sLWxpc3QtaXRlbSIKICAgICAgICAgICAgICAgICAgY2FyZC1ub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgICAgICAgIGl0ZW0tbm9kZT0iW1tpdGVtLm5vZGVdXSIKICAgICAgICAgICAgICAgICAgZWRnZS1sYWJlbD0iW1tpdGVtLmVkZ2VMYWJlbF1dIgogICAgICAgICAgICAgICAgICBpdGVtLXJlbmRlci1pbmZvPSJbW2l0ZW0ucmVuZGVySW5mb11dIgogICAgICAgICAgICAgICAgICBuYW1lPSJbW2l0ZW0ubmFtZV1dIgogICAgICAgICAgICAgICAgICBpdGVtLXR5cGU9InByZWRlY2Vzc29ycyIKICAgICAgICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1tfdGVtcGxhdGVJbmRleF1dIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPC90Zi1ub2RlLWxpc3QtaXRlbT4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19wcmVkZWNlc3NvcnMuY29udHJvbC5sZW5ndGhdXSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbERlcHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbExpbmUiPgogICAgICAgICAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgICAgICAgICBpY29uPSJ7e19nZXRUb2dnbGVJY29uKF9vcGVuZWRDb250cm9sUHJlZCl9fSIKICAgICAgICAgICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZUNvbnRyb2xQcmVkIgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLXRvZ2dsZS1idXR0b24iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgICAgICAgICAgQ29udHJvbCBkZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJ7e19vcGVuZWRDb250cm9sUHJlZH19IiBuby1hbmltYXRpb24+CiAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgICAgIGlzPSJkb20taWYiCiAgICAgICAgICAgICAgICAgICAgaWY9Int7X29wZW5lZENvbnRyb2xQcmVkfX0iCiAgICAgICAgICAgICAgICAgICAgcmVzdGFtcD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxpcm9uLWxpc3QKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJzdWItbGlzdCIKICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zPSJbW19wcmVkZWNlc3NvcnMuY29udHJvbF1dIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRmLW5vZGUtbGlzdC1pdGVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FyZC1ub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS1ub2RlPSJbW2l0ZW0ubm9kZV1dIgogICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tcmVuZGVyLWluZm89IltbaXRlbS5yZW5kZXJJbmZvXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iW1tpdGVtLm5hbWVdXSIKICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLXR5cGU9InByZWRlY2Vzc29ycyIKICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LWdyb3VwIHN1Y2Nlc3NvcnMiPgogICAgICAgICAgICBPdXRwdXRzICg8c3Bhbj5bW190b3RhbFN1Y2Nlc3NvcnNdXTwvc3Bhbj4pCiAgICAgICAgICAgIDxpcm9uLWxpc3QKICAgICAgICAgICAgICBjbGFzcz0ic3ViLWxpc3QiCiAgICAgICAgICAgICAgaWQ9Im91dHB1dHNMaXN0IgogICAgICAgICAgICAgIGl0ZW1zPSJbW19zdWNjZXNzb3JzLnJlZ3VsYXJdXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1ub2RlLWxpc3QtaXRlbQogICAgICAgICAgICAgICAgICBjbGFzcz0ibm9uLWNvbnRyb2wtbGlzdC1pdGVtIgogICAgICAgICAgICAgICAgICBjYXJkLW5vZGU9IltbX25vZGVdXSIKICAgICAgICAgICAgICAgICAgaXRlbS1ub2RlPSJbW2l0ZW0ubm9kZV1dIgogICAgICAgICAgICAgICAgICBlZGdlLWxhYmVsPSJbW2l0ZW0uZWRnZUxhYmVsXV0iCiAgICAgICAgICAgICAgICAgIGl0ZW0tcmVuZGVyLWluZm89IltbaXRlbS5yZW5kZXJJbmZvXV0iCiAgICAgICAgICAgICAgICAgIG5hbWU9IltbaXRlbS5uYW1lXV0iCiAgICAgICAgICAgICAgICAgIGl0ZW0tdHlwZT0ic3VjY2Vzc29yIgogICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgIHRlbXBsYXRlLWluZGV4PSJbW190ZW1wbGF0ZUluZGV4XV0iCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvaXJvbi1saXN0PgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3N1Y2Nlc3NvcnMuY29udHJvbC5sZW5ndGhdXSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbERlcHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbExpbmUiPgogICAgICAgICAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgICAgICAgICBpY29uPSJ7e19nZXRUb2dnbGVJY29uKF9vcGVuZWRDb250cm9sU3VjYyl9fSIKICAgICAgICAgICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZUNvbnRyb2xTdWNjIgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLXRvZ2dsZS1idXR0b24iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgICAgICAgICAgQ29udHJvbCBkZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJ7e19vcGVuZWRDb250cm9sU3VjY319IiBuby1hbmltYXRpb24+CiAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgICAgIGlzPSJkb20taWYiCiAgICAgICAgICAgICAgICAgICAgaWY9Int7X29wZW5lZENvbnRyb2xTdWNjfX0iCiAgICAgICAgICAgICAgICAgICAgcmVzdGFtcD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxpcm9uLWxpc3QgY2xhc3M9InN1Yi1saXN0IiBpdGVtcz0iW1tfc3VjY2Vzc29ycy5jb250cm9sXV0iPgogICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgICAgICAgICA8dGYtbm9kZS1saXN0LWl0ZW0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJkLW5vZGU9IltbX25vZGVdXSIKICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLW5vZGU9IltbaXRlbS5ub2RlXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS1yZW5kZXItaW5mbz0iW1tpdGVtLnJlbmRlckluZm9dXSIKICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJbW2l0ZW0ubmFtZV1dIgogICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tdHlwZT0ic3VjY2Vzc29ycyIKICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJ7e19oYXNEaXNwbGF5YWJsZU5vZGVTdGF0c319Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtZ3JvdXAgbm9kZS1zdGF0cyI+CiAgICAgICAgICAgICAgTm9kZSBTdGF0cwogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfbm9kZVN0YXRzLnRvdGFsQnl0ZXN9fSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+TWVtb3J5PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICBbW19ub2RlU3RhdHNGb3JtYXR0ZWRCeXRlc11dCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfZ2V0VG90YWxNaWNyb3MoX25vZGVTdGF0cyl9fSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+Q29tcHV0ZSBUaW1lPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICBbW19ub2RlU3RhdHNGb3JtYXR0ZWRDb21wdXRlVGltZV1dCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfbm9kZVN0YXRzLm91dHB1dFNpemV9fSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+VGVuc29yIE91dHB1dCBTaXplczwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLWNlbGwiPgogICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICAgICAgICAgICAgICBpdGVtcz0ie3tfbm9kZVN0YXRzRm9ybWF0dGVkT3V0cHV0U2l6ZXN9fSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgW1tpdGVtXV0gPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2Z1bmN0aW9uVXNhZ2VzLmxlbmd0aF1dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtZ3JvdXAgcHJlZGVjZXNzb3JzIj4KICAgICAgICAgICAgICBVc2FnZXMgb2YgdGhlIEZ1bmN0aW9uICg8c3Bhbj5bW19mdW5jdGlvblVzYWdlcy5sZW5ndGhdXTwvc3Bhbj4pCiAgICAgICAgICAgICAgPGlyb24tbGlzdAogICAgICAgICAgICAgICAgY2xhc3M9InN1Yi1saXN0IgogICAgICAgICAgICAgICAgaWQ9ImZ1bmN0aW9uVXNhZ2VzTGlzdCIKICAgICAgICAgICAgICAgIGl0ZW1zPSJbW19mdW5jdGlvblVzYWdlc11dIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgPHRmLW5vZGUtbGlzdC1pdGVtCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im5vbi1jb250cm9sLWxpc3QtaXRlbSIKICAgICAgICAgICAgICAgICAgICBjYXJkLW5vZGU9IltbX25vZGVdXSIKICAgICAgICAgICAgICAgICAgICBpdGVtLW5vZGU9IltbaXRlbV1dIgogICAgICAgICAgICAgICAgICAgIG5hbWU9IltbaXRlbS5uYW1lXV0iCiAgICAgICAgICAgICAgICAgICAgaXRlbS10eXBlPSJmdW5jdGlvblVzYWdlcyIKICAgICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2lzTGlicmFyeUZ1bmN0aW9uKF9ub2RlKV1dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLWluY2x1ZGUtZ3JvdXAiPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24KICAgICAgICAgICAgICAgIHJhaXNlZAogICAgICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1pbmNsdWRlIgogICAgICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVJbmNsdWRlIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuPltbX2F1eEJ1dHRvblRleHRdXTwvc3Bhbj4KICAgICAgICAgICAgICA8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfaXNJblNlcmllcyhfbm9kZSl9fSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1pbmNsdWRlLWdyb3VwIj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICByYWlzZWQKICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtaW5jbHVkZSIKICAgICAgICAgICAgICAgIG9uLWNsaWNrPSJfdG9nZ2xlR3JvdXAiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHNwYW4+W1tfZ3JvdXBCdXR0b25UZXh0XV08L3NwYW4+CiAgICAgICAgICAgICAgPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvaXJvbi1jb2xsYXBzZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFlxdC5wcm90b3R5cGUsImdyYXBoTm9kZU5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRHF0KV0sWXF0LnByb3RvdHlwZSwiZ3JhcGhIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWXF0LnByb3RvdHlwZSwicmVuZGVySGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFlxdC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3QsY29tcHV0ZWQ6Il9nZXROb2RlKGdyYXBoTm9kZU5hbWUsIGdyYXBoSGllcmFyY2h5KSIsb2JzZXJ2ZXI6Il9yZXNldFN0YXRlIn0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxZcXQucHJvdG90eXBlLCJfbm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxjb21wdXRlZDoiX2dldE5vZGVTdGF0cyhncmFwaE5vZGVOYW1lLCBncmFwaEhpZXJhcmNoeSkiLG9ic2VydmVyOiJfcmVzZXRTdGF0ZSJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWXF0LnByb3RvdHlwZSwiX25vZGVTdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixvYnNlcnZlcjoiX25vZGVJbmNsdWRlU3RhdGVDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxZcXQucHJvdG90eXBlLCJub2RlSW5jbHVkZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFlxdC5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFlxdC5wcm90b3R5cGUsIl9vcGVuZWRDb250cm9sUHJlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFlxdC5wcm90b3R5cGUsIl9vcGVuZWRDb250cm9sU3VjYyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxZcXQucHJvdG90eXBlLCJfYXV4QnV0dG9uVGV4dCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxZcXQucHJvdG90eXBlLCJfZ3JvdXBCdXR0b25UZXh0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sWXF0LnByb3RvdHlwZSwiX3RlbXBsYXRlSW5kZXgiLHZvaWQgMCksdChbcygiX25vZGVTdGF0cyIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZcXQucHJvdG90eXBlLCJfaGFzRGlzcGxheWFibGVOb2RlU3RhdHMiLG51bGwpLHQoW3MoIl9ub2RlU3RhdHMiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZcXQucHJvdG90eXBlLCJfbm9kZVN0YXRzRm9ybWF0dGVkQnl0ZXMiLG51bGwpLHQoW3MoIl9ub2RlU3RhdHMiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZcXQucHJvdG90eXBlLCJfbm9kZVN0YXRzRm9ybWF0dGVkQ29tcHV0ZVRpbWUiLG51bGwpLHQoW3MoIl9ub2RlU3RhdHMiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9ub2RlU3RhdHNGb3JtYXR0ZWRPdXRwdXRTaXplcyIsbnVsbCksdChbcygiX25vZGUiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9hdHRyaWJ1dGVzIixudWxsKSx0KFtzKCJfbm9kZSIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9kZXZpY2UiLG51bGwpLHQoW3MoIl9ub2RlIiwiZ3JhcGhIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZcXQucHJvdG90eXBlLCJfc3VjY2Vzc29ycyIsbnVsbCksdChbcygiX25vZGUiLCJncmFwaEhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixPYmplY3QpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9wcmVkZWNlc3NvcnMiLG51bGwpLHQoW3MoIl9ub2RlIiwiZ3JhcGhIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9mdW5jdGlvblVzYWdlcyIsbnVsbCksdChbcygiX25vZGUiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9zdWJub2RlcyIsbnVsbCksdChbcygiX3ByZWRlY2Vzc29ycyIpLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl90b3RhbFByZWRlY2Vzc29ycyIsbnVsbCksdChbcygiX3N1Y2Nlc3NvcnMiKSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZcXQucHJvdG90eXBlLCJfdG90YWxTdWNjZXNzb3JzIixudWxsKSx0KFthKCJncmFwaEhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sWXF0LnByb3RvdHlwZSwiX2dyYXBoSGllcmFyY2h5Q2hhbmdlZCIsbnVsbCksWXF0PXQoW2koInRmLW5vZGUtaW5mbyIpXSxZcXQpO2xldCBYcXQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe3JlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtbGlzdC1pdGVtLWNsaWNrIix0aGlzLl9ub2RlTGlzdEl0ZW1DbGlja2VkLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS1saXN0LWl0ZW0tbW91c2VvdmVyIix0aGlzLl9ub2RlTGlzdEl0ZW1Nb3VzZW92ZXIuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJub2RlLWxpc3QtaXRlbS1tb3VzZW91dCIsdGhpcy5fbm9kZUxpc3RJdGVtTW91c2VvdXQuYmluZCh0aGlzKSl9X25vZGVMaXN0SXRlbUNsaWNrZWQodCl7dGhpcy5zZWxlY3RlZE5vZGU9dC5kZXRhaWwubm9kZU5hbWV9X25vZGVMaXN0SXRlbU1vdXNlb3Zlcih0KXt0aGlzLmhpZ2hsaWdodGVkTm9kZT10LmRldGFpbC5ub2RlTmFtZX1fbm9kZUxpc3RJdGVtTW91c2VvdXQoKXt0aGlzLmhpZ2hsaWdodGVkTm9kZT1udWxsfV9oZWFsdGhQaWxsc0F2YWlsYWJsZSh0LGUpe3JldHVybiB0JiZlJiZPYmplY3Qua2V5cyhlKS5sZW5ndGg+MH1fZXF1YWxzKHQsZSl7cmV0dXJuIHQ9PT1lfX07WHF0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3IpOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXgtaGVpZ2h0OiA2NTBweDsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgaDIgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tzZWxlY3RlZE5vZGV9fSI+CiAgICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJjYXJkIj4KICAgICAgICA8dGYtbm9kZS1pbmZvCiAgICAgICAgICBncmFwaC1oaWVyYXJjaHk9IltbZ3JhcGhIaWVyYXJjaHldXSIKICAgICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgICBmbGF0LWdyYXBoPSJbW2dyYXBoXV0iCiAgICAgICAgICBncmFwaC1ub2RlLW5hbWU9Iltbc2VsZWN0ZWROb2RlXV0iCiAgICAgICAgICBub2RlLWluY2x1ZGU9Iltbc2VsZWN0ZWROb2RlSW5jbHVkZV1dIgogICAgICAgICAgaGlnaGxpZ2h0ZWQtbm9kZT0ie3toaWdobGlnaHRlZE5vZGV9fSIKICAgICAgICAgIGNvbG9yLWJ5PSJbW2NvbG9yQnldXSIKICAgICAgICA+CiAgICAgICAgPC90Zi1ub2RlLWluZm8+CiAgICAgIDwvcGFwZXItbWF0ZXJpYWw+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19lcXVhbHMoY29sb3JCeSwgJ29wX2NvbXBhdGliaWxpdHknKV1dIj4KICAgICAgPHRmLWdyYXBoLW9wLWNvbXBhdC1jYXJkCiAgICAgICAgZ3JhcGgtaGllcmFyY2h5PSJbW2dyYXBoSGllcmFyY2h5XV0iCiAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0iW1tyZW5kZXJIaWVyYXJjaHldXSIKICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgbm9kZS10aXRsZT0iW1tjb21wYXROb2RlVGl0bGVdXSIKICAgICAgPgogICAgICA8L3RmLWdyYXBoLW9wLWNvbXBhdC1jYXJkPgogICAgPC90ZW1wbGF0ZT4KICAgIDx0ZW1wbGF0ZQogICAgICBpcz0iZG9tLWlmIgogICAgICBpZj0iW1tfaGVhbHRoUGlsbHNBdmFpbGFibGUoZGVidWdnZXJEYXRhRW5hYmxlZCwgbm9kZU5hbWVzVG9IZWFsdGhQaWxscyldXSIKICAgID4KICAgICAgPHRmLWdyYXBoLWRlYnVnZ2VyLWRhdGEtY2FyZAogICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgZGVidWdnZXItbnVtZXJpYy1hbGVydHM9IltbZGVidWdnZXJOdW1lcmljQWxlcnRzXV0iCiAgICAgICAgbm9kZS1uYW1lcy10by1oZWFsdGgtcGlsbHM9Iltbbm9kZU5hbWVzVG9IZWFsdGhQaWxsc11dIgogICAgICAgIHNlbGVjdGVkLW5vZGU9Int7c2VsZWN0ZWROb2RlfX0iCiAgICAgICAgaGlnaGxpZ2h0ZWQtbm9kZT0ie3toaWdobGlnaHRlZE5vZGV9fSIKICAgICAgICBhcmUtaGVhbHRoLXBpbGxzLWxvYWRpbmc9IltbYXJlSGVhbHRoUGlsbHNMb2FkaW5nXV0iCiAgICAgICAgYWxsLXN0ZXBzLW1vZGUtZW5hYmxlZD0ie3thbGxTdGVwc01vZGVFbmFibGVkfX0iCiAgICAgICAgc3BlY2lmaWMtaGVhbHRoLXBpbGwtc3RlcD0ie3tzcGVjaWZpY0hlYWx0aFBpbGxTdGVwfX0iCiAgICAgICAgaGVhbHRoLXBpbGwtc3RlcC1pbmRleD0ie3toZWFsdGhQaWxsU3RlcEluZGV4fX0iCiAgICAgID4KICAgICAgPC90Zi1ncmFwaC1kZWJ1Z2dlci1kYXRhLWNhcmQ+CiAgICA8L3RlbXBsYXRlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWHF0LnByb3RvdHlwZSwidGl0bGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRHF0KV0sWHF0LnByb3RvdHlwZSwiZ3JhcGhIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIscUd0KV0sWHF0LnByb3RvdHlwZSwiZ3JhcGgiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIseVd0KV0sWHF0LnByb3RvdHlwZSwicmVuZGVySGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFhxdC5wcm90b3R5cGUsIm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLFhxdC5wcm90b3R5cGUsImhlYWx0aFBpbGxTdGVwSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWHF0LnByb3RvdHlwZSwiY29sb3JCeSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxYcXQucHJvdG90eXBlLCJjb21wYXROb2RlVGl0bGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFhxdC5wcm90b3R5cGUsInNlbGVjdGVkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWHF0LnByb3RvdHlwZSwiaGlnaGxpZ2h0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxYcXQucHJvdG90eXBlLCJzZWxlY3RlZE5vZGVJbmNsdWRlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sWHF0LnByb3RvdHlwZSwiZGVidWdnZXJEYXRhRW5hYmxlZCIsdm9pZCAwKSxYcXQ9dChbaSgidGYtZ3JhcGgtaW5mbyIpXSxYcXQpO2NsYXNzICRxdHtjb25zdHJ1Y3Rvcih0LGUsbixpLHIsbyl7dGhpcy5zdmc9dCx0aGlzLmxhYmVsUGFkZGluZz1vLHRoaXMuem9vbUc9ZSx0aGlzLm1haW5ab29tPW4sdGhpcy5tYXhXYW5kSD1yO2xldCBhPVN1KGkuc2hhZG93Um9vdCkscz1hLnNlbGVjdCgic3ZnIiksbD1zLnNlbGVjdCgicmVjdCIpO3RoaXMudmlld3BvaW50Q29vcmQ9e3g6MCx5OjB9O2xldCBjPXZoKCkuc3ViamVjdChPYmplY3QpLm9uKCJkcmFnIiwodD0+e3RoaXMudmlld3BvaW50Q29vcmQueD11dS54LHRoaXMudmlld3BvaW50Q29vcmQueT11dS55LHRoaXMudXBkYXRlVmlld3BvaW50KCl9KSk7bC5kYXR1bSh0aGlzLnZpZXdwb2ludENvb3JkKS5jYWxsKGMpLHMub24oImNsaWNrIiwoKCk9PntpZih1dS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtsZXQgdD1OdW1iZXIobC5hdHRyKCJ3aWR0aCIpKSxlPU51bWJlcihsLmF0dHIoImhlaWdodCIpKSxuPWFoKHMubm9kZSgpKTt0aGlzLnZpZXdwb2ludENvb3JkLng9blswXS10LzIsdGhpcy52aWV3cG9pbnRDb29yZC55PW5bMV0tZS8yLHRoaXMudXBkYXRlVmlld3BvaW50KCl9KSksdGhpcy52aWV3cG9pbnQ9bC5ub2RlKCksdGhpcy5taW5pbWFwU3ZnPXMubm9kZSgpLHRoaXMubWluaW1hcD1pLHRoaXMuY2FudmFzPWEuc2VsZWN0KCJjYW52YXMuZmlyc3QiKS5ub2RlKCksdGhpcy5jYW52YXNCdWZmZXI9YS5zZWxlY3QoImNhbnZhcy5zZWNvbmQiKS5ub2RlKCksdGhpcy5kb3dubG9hZENhbnZhcz1hLnNlbGVjdCgiY2FudmFzLmRvd25sb2FkIikubm9kZSgpLFN1KHRoaXMuZG93bmxvYWRDYW52YXMpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLHRoaXMudXBkYXRlKCl9dXBkYXRlVmlld3BvaW50KCl7U3UodGhpcy52aWV3cG9pbnQpLmF0dHIoIngiLHRoaXMudmlld3BvaW50Q29vcmQueCkuYXR0cigieSIsdGhpcy52aWV3cG9pbnRDb29yZC55KTtsZXQgdD0tdGhpcy52aWV3cG9pbnRDb29yZC54KnRoaXMuc2NhbGVNYWluL3RoaXMuc2NhbGVNaW5pbWFwLGU9LXRoaXMudmlld3BvaW50Q29vcmQueSp0aGlzLnNjYWxlTWFpbi90aGlzLnNjYWxlTWluaW1hcDtTdSh0aGlzLnN2ZykuY2FsbCh0aGlzLm1haW5ab29tLnRyYW5zZm9ybSx2Ti50cmFuc2xhdGUodCxlKS5zY2FsZSh0aGlzLnNjYWxlTWFpbikpfWdldEltYWdlQmxvYigpe3JldHVybiBuZXcgUHJvbWlzZSgodD0+e3RoaXMuZG93bmxvYWRDYW52YXMudG9CbG9iKChlPT57dChlKX0pLCJpbWFnZS9wbmciKX0pKX11cGRhdGUoKXtsZXQgdD1udWxsO3RyeXtpZih0PXRoaXMuem9vbUcuZ2V0QkJveCgpLDA9PT10LndpZHRoKXJldHVybn1jYXRjaCh0KXtyZXR1cm59bGV0IGU9U3UodGhpcy5zdmcpLG49IiI7Y29uc3QgaT10aGlzLnN2ZyxyPShpLmdldFJvb3ROb2RlP2kuZ2V0Um9vdE5vZGUoKTp0aGlzLnN2Zy5wYXJlbnROb2RlKS5zdHlsZVNoZWV0cztmb3IobGV0IHQ9MDt0PHIubGVuZ3RoO3QrKyl0cnl7bGV0IGU9clt0XS5jc3NSdWxlc3x8clt0XS5ydWxlcztpZihudWxsPT1lKWNvbnRpbnVlO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW4rPWVbdF0uY3NzVGV4dC5yZXBsYWNlKC8gP3RmLVtcdy1dKyA/L2csIiIpKyJcbiJ9Y2F0Y2godCl7aWYoIlNlY3VyaXR5RXJyb3IiIT09dC5uYW1lKXRocm93IHR9bGV0IG89ZS5hcHBlbmQoInN0eWxlIik7by50ZXh0KG4pO2xldCBhPVN1KHRoaXMuem9vbUcpLHM9YS5hdHRyKCJ0cmFuc2Zvcm0iKTthLmF0dHIoInRyYW5zZm9ybSIsbnVsbCksdC5oZWlnaHQrPXQueSx0LndpZHRoKz10LngsdC5oZWlnaHQrPTIqdGhpcy5sYWJlbFBhZGRpbmcsdC53aWR0aCs9Mip0aGlzLmxhYmVsUGFkZGluZyxlLmF0dHIoIndpZHRoIix0LndpZHRoKS5hdHRyKCJoZWlnaHQiLHQuaGVpZ2h0KSx0aGlzLnNjYWxlTWluaW1hcD10aGlzLm1heFdhbmRIL01hdGgubWF4KHQud2lkdGgsdC5oZWlnaHQpLHRoaXMubWluaW1hcFNpemU9e3dpZHRoOnQud2lkdGgqdGhpcy5zY2FsZU1pbmltYXAsaGVpZ2h0OnQuaGVpZ2h0KnRoaXMuc2NhbGVNaW5pbWFwfSxTdSh0aGlzLm1pbmltYXBTdmcpLmF0dHIodGhpcy5taW5pbWFwU2l6ZSksU3UodGhpcy5jYW52YXNCdWZmZXIpLmF0dHIodGhpcy5taW5pbWFwU2l6ZSk7Y29uc3QgbD1TdSh0aGlzLmRvd25sb2FkQ2FudmFzKTtsLnN0eWxlKCJ3aWR0aCIsdC53aWR0aCksbC5zdHlsZSgiaGVpZ2h0Iix0LmhlaWdodCksbC5hdHRyKCJ3aWR0aCIsMyp0LndpZHRoKSxsLmF0dHIoImhlaWdodCIsMyp0LmhlaWdodCksbnVsbCE9dGhpcy50cmFuc2xhdGUmJm51bGwhPXRoaXMuem9vbSYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy56b29tKCkpKTtsZXQgYz0obmV3IFhNTFNlcmlhbGl6ZXIpLnNlcmlhbGl6ZVRvU3RyaW5nKHRoaXMuc3ZnKTtvLnJlbW92ZSgpLGUuYXR0cigid2lkdGgiLG51bGwpLmF0dHIoImhlaWdodCIsbnVsbCksYS5hdHRyKCJ0cmFuc2Zvcm0iLHMpO2xldCB1PW5ldyBJbWFnZTt1Lm9ubG9hZD0oKT0+e2xldCB0PXRoaXMuY2FudmFzQnVmZmVyLmdldENvbnRleHQoIjJkIik7dC5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzQnVmZmVyLndpZHRoLHRoaXMuY2FudmFzQnVmZmVyLmhlaWdodCksdC5kcmF3SW1hZ2UodSwwLDAsdGhpcy5taW5pbWFwU2l6ZS53aWR0aCx0aGlzLm1pbmltYXBTaXplLmhlaWdodCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e1N1KHRoaXMuY2FudmFzQnVmZmVyKS5zdHlsZSgiZGlzcGxheSIsbnVsbCksU3UodGhpcy5jYW52YXMpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLFt0aGlzLmNhbnZhcyx0aGlzLmNhbnZhc0J1ZmZlcl09W3RoaXMuY2FudmFzQnVmZmVyLHRoaXMuY2FudmFzXX0pKTtsZXQgZT10aGlzLmRvd25sb2FkQ2FudmFzLmdldENvbnRleHQoIjJkIik7ZS5jbGVhclJlY3QoMCwwLHRoaXMuZG93bmxvYWRDYW52YXMud2lkdGgsdGhpcy5kb3dubG9hZENhbnZhcy5oZWlnaHQpLGUuZHJhd0ltYWdlKHUsMCwwLHRoaXMuZG93bmxvYWRDYW52YXMud2lkdGgsdGhpcy5kb3dubG9hZENhbnZhcy5oZWlnaHQpfSx1Lm9uZXJyb3I9KCk9PntsZXQgdD1uZXcgQmxvYihbY10se3R5cGU6ImltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCJ9KTt1LnNyYz1VUkwuY3JlYXRlT2JqZWN0VVJMKHQpfSx1LnNyYz0iZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsIitlbmNvZGVVUklDb21wb25lbnQoYyl9em9vbSh0KXtpZihudWxsPT10aGlzLnNjYWxlTWluaW1hcClyZXR1cm47dCYmKHRoaXMudHJhbnNsYXRlPVt0LngsdC55XSx0aGlzLnNjYWxlTWFpbj10LmspO2xldCBlPXRoaXMuc3ZnLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49U3UodGhpcy52aWV3cG9pbnQpO3RoaXMudmlld3BvaW50Q29vcmQueD0tdGhpcy50cmFuc2xhdGVbMF0qdGhpcy5zY2FsZU1pbmltYXAvdGhpcy5zY2FsZU1haW4sdGhpcy52aWV3cG9pbnRDb29yZC55PS10aGlzLnRyYW5zbGF0ZVsxXSp0aGlzLnNjYWxlTWluaW1hcC90aGlzLnNjYWxlTWFpbjtsZXQgaT1lLndpZHRoKnRoaXMuc2NhbGVNaW5pbWFwL3RoaXMuc2NhbGVNYWluLHI9ZS5oZWlnaHQqdGhpcy5zY2FsZU1pbmltYXAvdGhpcy5zY2FsZU1haW47bi5hdHRyKCJ4Iix0aGlzLnZpZXdwb2ludENvb3JkLngpLmF0dHIoInkiLHRoaXMudmlld3BvaW50Q29vcmQueSkuYXR0cigid2lkdGgiLGkpLmF0dHIoImhlaWdodCIscik7bGV0IG89dGhpcy5taW5pbWFwU2l6ZS53aWR0aCxhPXRoaXMubWluaW1hcFNpemUuaGVpZ2h0LHM9dGhpcy52aWV3cG9pbnRDb29yZC54LGw9dGhpcy52aWV3cG9pbnRDb29yZC55OyhNYXRoLm1pbihNYXRoLm1heCgwLHMraSksbyktTWF0aC5taW4oTWF0aC5tYXgoMCxzKSxvKSkqKE1hdGgubWluKE1hdGgubWF4KDAsbCtyKSxhKS1NYXRoLm1pbihNYXRoLm1heCgwLGwpLGEpKS8obyphKTwuOD90aGlzLm1pbmltYXAuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6dGhpcy5taW5pbWFwLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfX1sZXQgS3F0PWNsYXNzIGV4dGVuZHMgeWV7aW5pdCh0LGUsbixpLHIpe3JldHVybiBuZXcgJHF0KHQsZSxuLHRoaXMsaSxyKX19O0txdC50ZW1wbGF0ZT1fZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXI7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KC5oaWRkZW4pIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICBjYW52YXMgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7CiAgICAgIH0KCiAgICAgIHJlY3QgewogICAgICAgIGZpbGw6IHdoaXRlOwogICAgICAgIHN0cm9rZTogIzExMTExMTsKICAgICAgICBzdHJva2Utd2lkdGg6IDFweDsKICAgICAgICBmaWxsLW9wYWNpdHk6IDA7CiAgICAgICAgZmlsdGVyOiB1cmwoI21pbmltYXBEcm9wU2hhZG93KTsKICAgICAgICBjdXJzb3I6IG1vdmU7CiAgICAgIH0KCiAgICAgIHN2ZyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHN2Zz4KICAgICAgPGRlZnM+CiAgICAgICAgPGZpbHRlcgogICAgICAgICAgaWQ9Im1pbmltYXBEcm9wU2hhZG93IgogICAgICAgICAgeD0iLTIwJSIKICAgICAgICAgIHk9Ii0yMCUiCiAgICAgICAgICB3aWR0aD0iMTUwJSIKICAgICAgICAgIGhlaWdodD0iMTUwJSIKICAgICAgICA+CiAgICAgICAgICA8ZmVPZmZzZXQgcmVzdWx0PSJvZmZPdXQiIGluPSJTb3VyY2VHcmFwaGljIiBkeD0iMSIgZHk9IjEiPjwvZmVPZmZzZXQ+CiAgICAgICAgICA8ZmVDb2xvck1hdHJpeAogICAgICAgICAgICByZXN1bHQ9Im1hdHJpeE91dCIKICAgICAgICAgICAgaW49Im9mZk91dCIKICAgICAgICAgICAgdHlwZT0ibWF0cml4IgogICAgICAgICAgICB2YWx1ZXM9IjAuMSAwIDAgMCAwIDAgMC4xIDAgMCAwIDAgMCAwLjEgMCAwIDAgMCAwIDAuNSAwIgogICAgICAgICAgPjwvZmVDb2xvck1hdHJpeD4KICAgICAgICAgIDxmZUdhdXNzaWFuQmx1cgogICAgICAgICAgICByZXN1bHQ9ImJsdXJPdXQiCiAgICAgICAgICAgIGluPSJtYXRyaXhPdXQiCiAgICAgICAgICAgIHN0ZERldmlhdGlvbj0iMiIKICAgICAgICAgID48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgPGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iYmx1ck91dCIgbW9kZT0ibm9ybWFsIj48L2ZlQmxlbmQ+CiAgICAgICAgPC9maWx0ZXI+CiAgICAgIDwvZGVmcz4KICAgICAgPHJlY3Q+PC9yZWN0PgogICAgPC9zdmc+CiAgICA8Y2FudmFzIGNsYXNzPSJmaXJzdCI+PC9jYW52YXM+CiAgICA8IS0tIEFkZGl0aW9uYWwgY2FudmFzIHRvIHVzZSBhcyBidWZmZXIgdG8gYXZvaWQgZmxpY2tlcmluZyBiZXR3ZWVuIHVwZGF0ZXMgLS0+CiAgICA8Y2FudmFzIGNsYXNzPSJzZWNvbmQiPjwvY2FudmFzPgogICAgPGNhbnZhcyBjbGFzcz0iZG93bmxvYWQiPjwvY2FudmFzPgogIGAsS3F0PXQoW2koInRmLWdyYXBoLW1pbmltYXAiKV0sS3F0KTtjb25zdCBacXQ9X2VgCiAgPHN0eWxlPgogICAgOmhvc3QoLmRhcmstbW9kZSkgewogICAgICBmaWx0ZXI6IGludmVydCgxKTsKICAgIH0KCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KCiAgICAjc3ZnIHsKICAgICAgZmxleDogMTsKICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KCiAgICAjaGlkZGVuIHsKICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICB0b3A6IDBweDsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgfQoKICAgIHRleHQgewogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgIH0KCiAgICAvKiAtLS0gTm9kZSBhbmQgYW5ub3RhdGlvbi1ub2RlIGZvciBNZXRhbm9kZSAtLS0gKi8KCiAgICAubWV0YSA+IC5ub2Rlc2hhcGUgPiByZWN0LAogICAgLm1ldGEgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZmlsbDogaHNsKDAsIDAlLCA3MCUpOwogICAgfQogICAgLm5vZGUubWV0YS5oaWdobGlnaHRlZCA+IC5ub2Rlc2hhcGUgPiByZWN0LAogICAgLm5vZGUubWV0YS5oaWdobGlnaHRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQogICAgLmFubm90YXRpb24ubWV0YS5oaWdobGlnaHRlZCA+IC5ub2Rlc2hhcGUgPiByZWN0LAogICAgLmFubm90YXRpb24ubWV0YS5oaWdobGlnaHRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgc3Ryb2tlLXdpZHRoOiAxOwogICAgfQogICAgLm1ldGEuc2VsZWN0ZWQgPiAubm9kZXNoYXBlID4gcmVjdCwKICAgIC5tZXRhLnNlbGVjdGVkID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQogICAgLm5vZGUubWV0YS5zZWxlY3RlZC5leHBhbmRlZCA+IC5ub2Rlc2hhcGUgPiByZWN0LAogICAgLm5vZGUubWV0YS5zZWxlY3RlZC5leHBhbmRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgc3Ryb2tlOiByZWQ7CiAgICAgIHN0cm9rZS13aWR0aDogMzsKICAgIH0KICAgIC5hbm5vdGF0aW9uLm1ldGEuc2VsZWN0ZWQgPiAubm9kZXNoYXBlID4gcmVjdCwKICAgIC5hbm5vdGF0aW9uLm1ldGEuc2VsZWN0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIHN0cm9rZTogcmVkOwogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CiAgICAubm9kZS5tZXRhLnNlbGVjdGVkLmV4cGFuZGVkLmhpZ2hsaWdodGVkID4gLm5vZGVzaGFwZSA+IHJlY3QsCiAgICAubm9kZS5tZXRhLnNlbGVjdGVkLmV4cGFuZGVkLmhpZ2hsaWdodGVkID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiA0OwogICAgfQoKICAgIC5mYWRlZCwKICAgIC5mYWRlZCByZWN0LAogICAgLmZhZGVkIGVsbGlwc2UsCiAgICAuZmFkZWQgcGF0aCwKICAgIC5mYWRlZCB1c2UsCiAgICAjcmVjdEhhdGNoIGxpbmUsCiAgICAjZWxsaXBzZUhhdGNoIGxpbmUgewogICAgICBjb2xvcjogI2UwZDRiMyAhaW1wb3J0YW50OwogICAgICBmaWxsOiB3aGl0ZTsKICAgICAgc3Ryb2tlOiAjZTBkNGIzICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZhZGVkIHBhdGggewogICAgICBzdHJva2Utd2lkdGg6IDFweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mYWRlZCByZWN0IHsKICAgICAgZmlsbDogdXJsKCNyZWN0SGF0Y2gpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZhZGVkIGVsbGlwc2UsCiAgICAuZmFkZWQgdXNlIHsKICAgICAgZmlsbDogdXJsKCNlbGxpcHNlSGF0Y2gpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZhZGVkIHRleHQgewogICAgICBvcGFjaXR5OiAwOwogICAgfQoKICAgIC8qIFJ1bGVzIHVzZWQgZm9yIGlucHV0LXRyYWNpbmcuICovCiAgICAuaW5wdXQtaGlnaGxpZ2h0ID4gKiA+IHJlY3QsCiAgICAuaW5wdXQtaGlnaGxpZ2h0ID4gKiA+IGVsbGlwc2UsCiAgICAuaW5wdXQtaGlnaGxpZ2h0ID4gKiA+IHVzZSB7CiAgICAgIGZpbGw6IHdoaXRlOwogICAgICBzdHJva2U6ICNmZjk4MDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAvKiAgLSBGYWRlZCBub24taW5wdXQgc3R5bGluZyAqLwogICAgLm5vbi1pbnB1dCA+ICogPiByZWN0LAoubm9uLWlucHV0ID4gKiA+IGVsbGlwc2UsCi5ub24taW5wdXQgPiAqID4gdXNlLAovKiBGb3IgQ29uc3Qgbm9kZXMuICovCi5ub24taW5wdXQgPiAqID4gLmNvbnN0YW50Om5vdChbY2xhc3MqPSJpbnB1dC1oaWdobGlnaHQiXSkgPgogIC5hbm5vdGF0aW9uLW5vZGUgPiBlbGxpcHNlLAovKiBGb3Igc3R5bGluZyBvZiBhbm5vdGF0aW9uIG5vZGVzIG9mIG5vbi1pbnB1dCBub2Rlcy4gKi8KLm5vbi1pbnB1dCA+IGcgPiAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgc3Ryb2tlOiAjZTBkNGIzICFpbXBvcnRhbnQ7CiAgICAgIHN0cm9rZS13aWR0aDogaW5oZXJpdDsKICAgICAgc3Ryb2tlLWRhc2hhcnJheTogaW5oZXJpdDsKICAgIH0KCiAgICAubm9uLWlucHV0IHBhdGggewogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICB9CgogICAgLm5vbi1pbnB1dCA+IC5ub2Rlc2hhcGUgPiByZWN0LAoubm9uLWlucHV0ID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QsCi8qIEZvciBzdHlsaW5nIG9mIGFubm90YXRpb24gbm9kZXMgb2Ygbm9uLWlucHV0IG5vZGVzLiAqLwoubm9uLWlucHV0ID4gZyA+IC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBmaWxsOiB1cmwoI3JlY3RIYXRjaCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAubm9uLWlucHV0IGVsbGlwc2UsCiAgICAubm9uLWlucHV0IHVzZSB7CiAgICAgIGZpbGw6IHVybCgjZWxsaXBzZUhhdGNoKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ub24taW5wdXQgPiB0ZXh0IHsKICAgICAgb3BhY2l0eTogMDsKICAgIH0KCiAgICAubm9uLWlucHV0IC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tZWRnZSB7CiAgICAgIG1hcmtlci1lbmQ6IHVybCgjYW5ub3RhdGlvbi1hcnJvd2hlYWQtZmFkZWQpOwogICAgfQoKICAgIC5ub24taW5wdXQgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1lZGdlLnJlZmxpbmUgewogICAgICBtYXJrZXItc3RhcnQ6IHVybCgjcmVmLWFubm90YXRpb24tYXJyb3doZWFkLWZhZGVkKTsKICAgIH0KCiAgICAvKiBJbnB1dCBlZGdlcy4gKi8KICAgIC5pbnB1dC1lZGdlLWhpZ2hsaWdodCA+IHRleHQgewogICAgICBmaWxsOiBibGFjayAhaW1wb3J0YW50OwogICAgfQogICAgLmlucHV0LWhpZ2hsaWdodCA+IC5pbi1hbm5vdGF0aW9ucyA+IC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tZWRnZSwKICAgIC5pbnB1dC1oaWdobGlnaHQtc2VsZWN0ZWQKICAgICAgPiAuaW4tYW5ub3RhdGlvbnMKICAgICAgPiAuYW5ub3RhdGlvbgogICAgICA+IC5hbm5vdGF0aW9uLWVkZ2UgewogICAgICBzdHJva2U6ICM5OTkgIWltcG9ydGFudDsKICAgIH0KCiAgICAvKiBOb24taW5wdXQgZWRnZXMuICovCiAgICAubm9uLWlucHV0LWVkZ2UtaGlnaGxpZ2h0LAoubm9uLWlucHV0ID4gZyA+IC5hbm5vdGF0aW9uID4gcGF0aCwKLyogQW5ub3RhdGlvbiBzdHlsZXMgKGxhYmVsIGFuZCBlZGdlcyByZXNwZWN0aXZlbHkpLiAqLwoubm9uLWlucHV0ID4gZyA+Ci5hbm5vdGF0aW9uOm5vdCguaW5wdXQtaGlnaGxpZ2h0KTpub3QoLmlucHV0LWhpZ2hsaWdodC1zZWxlY3RlZCkgPgouYW5ub3RhdGlvbi1sYWJlbAovKi5hbm5vdGF0aW9uLWVkZ2UqLyB7CiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIH0KCiAgICAvKiAtLS0gT3AgTm9kZSAtLS0gKi8KCiAgICAub3AgPiAubm9kZXNoYXBlID4gLm5vZGVjb2xvcnRhcmdldCwKICAgIC5vcCA+IC5hbm5vdGF0aW9uLW5vZGUgPiAubm9kZWNvbG9ydGFyZ2V0IHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBmaWxsOiAjZmZmOwogICAgICBzdHJva2U6ICNjY2M7CiAgICB9CgogICAgLm9wLnNlbGVjdGVkID4gLm5vZGVzaGFwZSA+IC5ub2RlY29sb3J0YXJnZXQsCiAgICAub3Auc2VsZWN0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gLm5vZGVjb2xvcnRhcmdldCB7CiAgICAgIHN0cm9rZTogcmVkOwogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CgogICAgLm9wLmhpZ2hsaWdodGVkID4gLm5vZGVzaGFwZSA+IC5ub2RlY29sb3J0YXJnZXQsCiAgICAub3AuaGlnaGxpZ2h0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gLm5vZGVjb2xvcnRhcmdldCB7CiAgICAgIHN0cm9rZS13aWR0aDogMjsKICAgIH0KCiAgICAvKiAtLS0gU2VyaWVzIE5vZGUgLS0tICovCgogICAgLyogQnkgZGVmYXVsdCwgZG9uJ3Qgc2hvdyB0aGUgc2VyaWVzIGJhY2tncm91bmQgPHJlY3Q+LiAqLwogICAgLnNlcmllcyA+IC5ub2Rlc2hhcGUgPiByZWN0IHsKICAgICAgZmlsbDogaHNsKDAsIDAlLCA3MCUpOwogICAgICBmaWxsLW9wYWNpdHk6IDA7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDUsIDU7CiAgICAgIHN0cm9rZS1vcGFjaXR5OiAwOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLyogT25jZSBleHBhbmRlZCwgc2hvdyB0aGUgc2VyaWVzIGJhY2tncm91bmQgPHJlY3Q+IGFuZCBoaWRlIHRoZSA8dXNlPi4gKi8KICAgIC5zZXJpZXMuZXhwYW5kZWQgPiAubm9kZXNoYXBlID4gcmVjdCB7CiAgICAgIGZpbGwtb3BhY2l0eTogMC4xNTsKICAgICAgc3Ryb2tlOiBoc2woMCwgMCUsIDcwJSk7CiAgICAgIHN0cm9rZS1vcGFjaXR5OiAxOwogICAgfQogICAgLnNlcmllcy5leHBhbmRlZCA+IC5ub2Rlc2hhcGUgPiB1c2UgewogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICB9CgogICAgLyoqCiAqIFRPRE86IFNpbXBsaWZ5IHRoaXMgYnkgYXBwbHlpbmcgYSBzdGFibGUgY2xhc3MgbmFtZSB0byBhbGwgPGc+CiAqIGVsZW1lbnRzIHRoYXQgY3VycmVudGx5IGhhdmUgZWl0aGVyIHRoZSBub2Rlc2hhcGUgb3IgYW5ub3RhdGlvbi1ub2RlIGNsYXNzZXMuCiAqLwogICAgLnNlcmllcyA+IC5ub2Rlc2hhcGUgPiB1c2UsCiAgICAuc2VyaWVzID4gLmFubm90YXRpb24tbm9kZSA+IHVzZSB7CiAgICAgIHN0cm9rZTogI2NjYzsKICAgIH0KICAgIC5zZXJpZXMuaGlnaGxpZ2h0ZWQgPiAubm9kZXNoYXBlID4gdXNlLAogICAgLnNlcmllcy5oaWdobGlnaHRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiB1c2UgewogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CiAgICAuc2VyaWVzLnNlbGVjdGVkID4gLm5vZGVzaGFwZSA+IHVzZSwKICAgIC5zZXJpZXMuc2VsZWN0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gdXNlIHsKICAgICAgc3Ryb2tlOiByZWQ7CiAgICAgIHN0cm9rZS13aWR0aDogMjsKICAgIH0KCiAgICAuc2VyaWVzLnNlbGVjdGVkID4gLm5vZGVzaGFwZSA+IHJlY3QgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQoKICAgIC5hbm5vdGF0aW9uLnNlcmllcy5zZWxlY3RlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiB1c2UgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQoKICAgIC8qIC0tLSBCcmlkZ2UgTm9kZSAtLS0gKi8KICAgIC5icmlkZ2UgPiAubm9kZXNoYXBlID4gcmVjdCB7CiAgICAgIHN0cm9rZTogI2YwZjsKICAgICAgb3BhY2l0eTogMC4yOwogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC8qIC0tLSBTdHJ1Y3R1cmFsIEVsZW1lbnRzIC0tLSAqLwogICAgLmVkZ2UgPiBwYXRoLmVkZ2VsaW5lLnN0cnVjdHVyYWwgewogICAgICBzdHJva2U6ICNmMGY7CiAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAvKiBSZWZlcmVuY2UgRWRnZSAqLwogICAgLmVkZ2UgPiBwYXRoLmVkZ2VsaW5lLnJlZmVyZW5jZWVkZ2UgewogICAgICBzdHJva2U6ICNmZmI3NGQ7CiAgICAgIG9wYWNpdHk6IDE7CiAgICB9CgogICAgLyogLS0tIFNlcmllcyBOb2RlcyAtLS0gKi8KCiAgICAvKiBIaWRlIHRoZSByZWN0IGZvciBhIHNlcmllcycgYW5ub3RhdGlvbi4gKi8KICAgIC5zZXJpZXMgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLyogLS0tIE5vZGUgbGFiZWwgLS0tICovCgogICAgLm5vZGUgewogICAgICAvKiBQcm92aWRlIGEgaGludCB0byBicm93c2VycyB0byBhdm9pZCB1c2luZyB0aGVpciBzdGF0aWMgcmFzdGVyaXphdGlvbgogICAgICBhdCBpbml0aWFsIHNjYWxlLCB3aGljaCBsb29rcyB2ZXJ5IHBpeGVsYXRlZCBvbiBDaHJvbWl1bSB3aGVuIHpvb21lZCBpbi4KICAgICAgTm90ZSB0aGF0IHdlIGludGVudGlvbmFsbHkgZG8gKm5vdCogdXNlICd3aWxsLWNoYW5nZTogdHJhbnNmb3JtJyBhbmQKICAgICAgJ3RyYW5zbGF0ZVooMCkgaGVyZSwgd2hpY2ggaW50cm9kdWNlIGJsdXJyaW5lc3Mgb24gRmlyZWZveC4KICAgICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2lzc3Vlcy80NzQ0ICovCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigxcHgpOwogICAgfQoKICAgIC5ub2RlID4gdGV4dC5ub2RlbGFiZWwgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGZpbGw6ICM0NDQ7CiAgICB9CgogICAgLm1ldGEuZXhwYW5kZWQgPiB0ZXh0Lm5vZGVsYWJlbCB7CiAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgfQoKICAgIC5zZXJpZXMgPiB0ZXh0Lm5vZGVsYWJlbCB7CiAgICAgIGZvbnQtc2l6ZTogOHB4OwogICAgfQoKICAgIC5vcCA+IHRleHQubm9kZWxhYmVsIHsKICAgICAgZm9udC1zaXplOiA2cHg7CiAgICB9CgogICAgLmJyaWRnZSA+IHRleHQubm9kZWxhYmVsIHsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAubm9kZS5tZXRhLmV4cGFuZGVkID4gdGV4dC5ub2RlbGFiZWwgewogICAgICBjdXJzb3I6IG5vcm1hbDsKICAgIH0KCiAgICAuYW5ub3RhdGlvbi5tZXRhLmhpZ2hsaWdodGVkID4gdGV4dC5hbm5vdGF0aW9uLWxhYmVsIHsKICAgICAgZmlsbDogIzUwYTNmNzsKICAgIH0KCiAgICAuYW5ub3RhdGlvbi5tZXRhLnNlbGVjdGVkID4gdGV4dC5hbm5vdGF0aW9uLWxhYmVsIHsKICAgICAgZmlsbDogIzQyODVmNDsKICAgIH0KCiAgICAvKiAtLS0gQW5ub3RhdGlvbiAtLS0gKi8KCiAgICAvKiBvbmx5IGFwcGxpZWQgZm9yIGFubm90YXRpb25zIHRoYXQgYXJlIG5vdCBzdW1tYXJ5IG9yIGNvbnN0YW50LgooLnN1bW1hcnksIC5jb25zdGFudCBnZXRzIG92ZXJyaWRkZW4gYmVsb3cpICovCiAgICAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLW5vZGUgPiAqIHsKICAgICAgc3Ryb2tlLXdpZHRoOiAwLjU7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDE7CiAgICB9CgogICAgLmFubm90YXRpb24uc3VtbWFyeSA+IC5hbm5vdGF0aW9uLW5vZGUgPiAqLAogICAgLmFubm90YXRpb24uY29uc3RhbnQgPiAuYW5ub3RhdGlvbi1ub2RlID4gKiB7CiAgICAgIHN0cm9rZS13aWR0aDogMTsKICAgICAgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsKICAgIH0KCiAgICAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWVkZ2UgewogICAgICBmaWxsOiBub25lOwogICAgICBzdHJva2U6ICNhYWE7CiAgICAgIHN0cm9rZS13aWR0aDogMC41OwogICAgICBtYXJrZXItZW5kOiB1cmwoI2Fubm90YXRpb24tYXJyb3doZWFkKTsKICAgIH0KCiAgICAuZmFkZWQgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1lZGdlIHsKICAgICAgbWFya2VyLWVuZDogdXJsKCNhbm5vdGF0aW9uLWFycm93aGVhZC1mYWRlZCk7CiAgICB9CgogICAgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1lZGdlLnJlZmxpbmUgewogICAgICBtYXJrZXItc3RhcnQ6IHVybCgjcmVmLWFubm90YXRpb24tYXJyb3doZWFkKTsKICAgIH0KCiAgICAuZmFkZWQgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1lZGdlLnJlZmxpbmUgewogICAgICBtYXJrZXItc3RhcnQ6IHVybCgjcmVmLWFubm90YXRpb24tYXJyb3doZWFkLWZhZGVkKTsKICAgIH0KCiAgICAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWNvbnRyb2wtZWRnZSB7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDE7CiAgICB9CgogICAgI2Fubm90YXRpb24tYXJyb3doZWFkIHsKICAgICAgZmlsbDogI2FhYTsKICAgIH0KCiAgICAjYW5ub3RhdGlvbi1hcnJvd2hlYWQtZmFkZWQgewogICAgICBmaWxsOiAjZTBkNGIzOwogICAgfQoKICAgICNyZWYtYW5ub3RhdGlvbi1hcnJvd2hlYWQgewogICAgICBmaWxsOiAjYWFhOwogICAgfQoKICAgICNyZWYtYW5ub3RhdGlvbi1hcnJvd2hlYWQtZmFkZWQgewogICAgICBmaWxsOiAjZTBkNGIzOwogICAgfQoKICAgIC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tbGFiZWwgewogICAgICBmb250LXNpemU6IDVweDsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQogICAgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1sYWJlbC5hbm5vdGF0aW9uLWVsbGlwc2lzIHsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgfQoKICAgIC8qIEhpZGUgYW5ub3RhdGlvbnMgb24gZXhwYW5kZWQgbWV0YSBub2RlcyBzaW5jZSB0aGV5J3JlIHJlZHVuZGFudC4gKi8KICAgIC5leHBhbmRlZCA+IC5pbi1hbm5vdGF0aW9ucywKICAgIC5leHBhbmRlZCA+IC5vdXQtYW5ub3RhdGlvbnMgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC8qIC0tLSBBbm5vdGF0aW9uOiBDb25zdGFudCAtLS0gKi8KCiAgICAuY29uc3RhbnQgPiAuYW5ub3RhdGlvbi1ub2RlID4gZWxsaXBzZSB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZmlsbDogd2hpdGU7CiAgICAgIHN0cm9rZTogIzg0ODQ4NDsKICAgIH0KCiAgICAuY29uc3RhbnQuc2VsZWN0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gZWxsaXBzZSB7CiAgICAgIGZpbGw6IHdoaXRlOwogICAgICBzdHJva2U6IHJlZDsKICAgIH0KCiAgICAuY29uc3RhbnQuaGlnaGxpZ2h0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gZWxsaXBzZSB7CiAgICAgIHN0cm9rZS13aWR0aDogMS41OwogICAgfQoKICAgIC8qIC0tLSBBbm5vdGF0aW9uOiBTdW1tYXJ5IC0tLSAqLwoKICAgIC5zdW1tYXJ5ID4gLmFubm90YXRpb24tbm9kZSA+IGVsbGlwc2UgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGZpbGw6ICNkYjQ0Mzc7CiAgICAgIHN0cm9rZTogI2RiNDQzNzsKICAgIH0KCiAgICAuc3VtbWFyeS5zZWxlY3RlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiBlbGxpcHNlIHsKICAgICAgZmlsbDogI2E1MjcxNDsKICAgICAgc3Ryb2tlOiAjYTUyNzE0OwogICAgfQoKICAgIC5zdW1tYXJ5LmhpZ2hsaWdodGVkID4gLmFubm90YXRpb24tbm9kZSA+IGVsbGlwc2UgewogICAgICBzdHJva2Utd2lkdGg6IDEuNTsKICAgIH0KCiAgICAvKiAtLS0gRWRnZSAtLS0gKi8KCiAgICAuZWRnZSA+IHBhdGguZWRnZWxpbmUgewogICAgICBmaWxsOiBub25lOwogICAgICBzdHJva2U6ICNiYmI7CiAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAwLjc1OwogICAgfQoKICAgIC5lZGdlIC5zZWxlY3RhYmxlZWRnZSB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KCiAgICAuc2VsZWN0ZWRlZGdlID4gcGF0aC5lZGdlbGluZSB7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgc3Ryb2tlOiAjZjAwOwogICAgfQoKICAgIC5lZGdlLnNlbGVjdGVkZWRnZSB0ZXh0IHsKICAgICAgZmlsbDogIzAwMDsKICAgIH0KCiAgICAvKiBMYWJlbHMgc2hvd2luZyB0ZW5zb3Igc2hhcGVzIG9uIGVkZ2VzICovCiAgICAuZWRnZSA+IHRleHQgewogICAgICBmb250LXNpemU6IDMuNXB4OwogICAgICBmaWxsOiAjNjY2OwogICAgfQoKICAgIC5kYXRhZmxvdy1hcnJvd2hlYWQgewogICAgICBmaWxsOiAjYmJiOwogICAgfQoKICAgIC5yZWZlcmVuY2UtYXJyb3doZWFkIHsKICAgICAgZmlsbDogI2ZmYjc0ZDsKICAgIH0KCiAgICAuc2VsZWN0ZWQtYXJyb3doZWFkIHsKICAgICAgZmlsbDogI2YwMDsKICAgIH0KCiAgICAuZWRnZSAuY29udHJvbC1kZXAgewogICAgICBzdHJva2UtZGFzaGFycmF5OiAyLCAyOwogICAgfQoKICAgIC8qIC0tLSBHcm91cCBub2RlIGV4cGFuZC9jb2xsYXBzZSBidXR0b24gLS0tICovCgogICAgLyogSGlkZXMgZXhwYW5kL2NvbGxhcHNlIGJ1dHRvbnMgd2hlbiBhIG5vZGUgaXNuJ3QgZXhwYW5kZWQgb3IgaGlnaGxpZ2h0ZWQuIFVzaW5nCiAgIGluY3JlZGlibHkgc21hbGwgb3BhY2l0eSBzbyB0aGF0IHRoZSBib3VuZGluZyBib3ggb2YgdGhlIDxnPiBwYXJlbnQgc3RpbGwgdGFrZXMKICAgdGhpcyBjb250YWluZXIgaW50byBhY2NvdW50IGV2ZW4gd2hlbiBpdCBpc24ndCB2aXNpYmxlICovCiAgICAubm9kZTpub3QoLmhpZ2hsaWdodGVkKTpub3QoLmV4cGFuZGVkKSA+IC5ub2Rlc2hhcGUgPiAuYnV0dG9uY29udGFpbmVyIHsKICAgICAgb3BhY2l0eTogMC4wMTsKICAgIH0KICAgIC5ub2RlLmhpZ2hsaWdodGVkID4gLm5vZGVzaGFwZSA+IC5idXR0b25jb250YWluZXIgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CiAgICAuYnV0dG9uY2lyY2xlIHsKICAgICAgZmlsbDogI2U3ODExZDsKICAgIH0KICAgIC5idXR0b25jaXJjbGU6aG92ZXIgewogICAgICBmaWxsOiAjYjk2NzE3OwogICAgfQogICAgLmV4cGFuZGJ1dHRvbiwKICAgIC5jb2xsYXBzZWJ1dHRvbiB7CiAgICAgIHN0cm9rZTogd2hpdGU7CiAgICB9CiAgICAvKiBEbyBub3QgbGV0IHRoZSBwYXRoIGVsZW1lbnRzIGluIHRoZSBidXR0b24gdGFrZSBwb2ludGVyIGZvY3VzICovCiAgICAubm9kZSA+IC5ub2Rlc2hhcGUgPiAuYnV0dG9uY29udGFpbmVyID4gLmV4cGFuZGJ1dHRvbiwKICAgIC5ub2RlID4gLm5vZGVzaGFwZSA+IC5idXR0b25jb250YWluZXIgPiAuY29sbGFwc2VidXR0b24gewogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KICAgIC8qIE9ubHkgc2hvdyB0aGUgZXhwYW5kIGJ1dHRvbiB3aGVuIGEgbm9kZSBpcyBjb2xsYXBzZWQgYW5kIG9ubHkgc2hvdyB0aGUKICAgY29sbGFwc2UgYnV0dG9uIHdoZW4gYSBub2RlIGlzIGV4cGFuZGVkLiAqLwogICAgLm5vZGUuZXhwYW5kZWQgPiAubm9kZXNoYXBlID4gLmJ1dHRvbmNvbnRhaW5lciA+IC5leHBhbmRidXR0b24gewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLm5vZGU6bm90KC5leHBhbmRlZCkgPiAubm9kZXNoYXBlID4gLmJ1dHRvbmNvbnRhaW5lciA+IC5jb2xsYXBzZWJ1dHRvbiB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLmhlYWx0aC1waWxsLXN0YXRzIHsKICAgICAgZm9udC1zaXplOiA0cHg7CiAgICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7CiAgICB9CgogICAgLmhlYWx0aC1waWxsIHJlY3QgewogICAgICBmaWx0ZXI6IHVybCgjaGVhbHRoLXBpbGwtc2hhZG93KTsKICAgICAgcng6IDM7CiAgICAgIHJ5OiAzOwogICAgfQoKICAgIC50aXRsZUNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgdG9wOiAyMHB4OwogICAgfQoKICAgIC50aXRsZSwKICAgIC5hdXhUaXRsZSwKICAgIC5mdW5jdGlvbkxpYnJhcnlUaXRsZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIH0KCiAgICAjbWluaW1hcCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgcmlnaHQ6IDIwcHg7CiAgICAgIGJvdHRvbTogMjBweDsKICAgIH0KCiAgICAuY29udGV4dC1tZW51IHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBkaXNwbGF5OiBub25lOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyOwogICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgbWluLXdpZHRoOiAxNTBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Q0ZDRkNDsKICAgIH0KCiAgICAuY29udGV4dC1tZW51IHVsIHsKICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIH0KCiAgICAuY29udGV4dC1tZW51IHVsIGxpIHsKICAgICAgcGFkZGluZzogNHB4IDE2cHg7CiAgICB9CgogICAgLmNvbnRleHQtbWVudSB1bCBsaTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMzkxM2U7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9InRpdGxlQ29udGFpbmVyIj4KICAgIDxkaXYgaWQ9InRpdGxlIiBjbGFzcz0idGl0bGUiPk1haW4gR3JhcGg8L2Rpdj4KICAgIDxkaXYgaWQ9ImF1eFRpdGxlIiBjbGFzcz0iYXV4VGl0bGUiPkF1eGlsaWFyeSBOb2RlczwvZGl2PgogICAgPGRpdiBpZD0iZnVuY3Rpb25MaWJyYXJ5VGl0bGUiIGNsYXNzPSJmdW5jdGlvbkxpYnJhcnlUaXRsZSI+RnVuY3Rpb25zPC9kaXY+CiAgPC9kaXY+CiAgPHN2ZyBpZD0ic3ZnIj4KICAgIDxkZWZzPgogICAgICA8IS0tIEFycm93IGhlYWRzIGZvciByZWZlcmVuY2UgZWRnZSBwYXRocyBvZiBkaWZmZXJlbnQgcHJlZGVmaW5lZCBzaXplcyBwZXIgY29sb3IuIC0tPgogICAgICA8cGF0aAogICAgICAgIGlkPSJyZWZlcmVuY2UtYXJyb3doZWFkLXBhdGgiCiAgICAgICAgZD0iTSAwLDAgTCAxMCw1IEwgMCwxMCBDIDMsNyAzLDMgMCwwIgogICAgICA+PC9wYXRoPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9InJlZmVyZW5jZS1hcnJvd2hlYWQiCiAgICAgICAgaWQ9InJlZmVyZW5jZS1hcnJvd2hlYWQtc21hbGwiCiAgICAgICAgdmlld0JveD0iMCAwIDEwIDEwIgogICAgICAgIG1hcmtlcldpZHRoPSI1IgogICAgICAgIG1hcmtlckhlaWdodD0iNSIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcmVmZXJlbmNlLWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0icmVmZXJlbmNlLWFycm93aGVhZCIKICAgICAgICBpZD0icmVmZXJlbmNlLWFycm93aGVhZC1tZWRpdW0iCiAgICAgICAgdmlld0JveD0iMCAwIDEwIDEwIgogICAgICAgIG1hcmtlcldpZHRoPSIxMyIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjEzIgogICAgICAgIHJlZlg9IjIiCiAgICAgICAgcmVmWT0iNSIKICAgICAgICBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSIKICAgICAgICBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgID4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNyZWZlcmVuY2UtYXJyb3doZWFkLXBhdGgiPjwvdXNlPgogICAgICA8L21hcmtlcj4KICAgICAgPG1hcmtlcgogICAgICAgIGNsYXNzPSJyZWZlcmVuY2UtYXJyb3doZWFkIgogICAgICAgIGlkPSJyZWZlcmVuY2UtYXJyb3doZWFkLWxhcmdlIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iMTYiCiAgICAgICAgbWFya2VySGVpZ2h0PSIxNiIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcmVmZXJlbmNlLWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0icmVmZXJlbmNlLWFycm93aGVhZCIKICAgICAgICBpZD0icmVmZXJlbmNlLWFycm93aGVhZC14bGFyZ2UiCiAgICAgICAgdmlld0JveD0iMCAwIDEwIDEwIgogICAgICAgIG1hcmtlcldpZHRoPSIyMCIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjIwIgogICAgICAgIHJlZlg9IjIiCiAgICAgICAgcmVmWT0iNSIKICAgICAgICBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSIKICAgICAgICBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgID4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNyZWZlcmVuY2UtYXJyb3doZWFkLXBhdGgiPjwvdXNlPgogICAgICA8L21hcmtlcj4KCiAgICAgIDwhLS0gQXJyb3cgaGVhZHMgZm9yIGRhdGFmbG93IGVkZ2UgcGF0aHMgb2YgZGlmZmVyZW50IHByZWRlZmluZWQgc2l6ZXMgcGVyIGNvbG9yLiAtLT4KICAgICAgPHBhdGgKICAgICAgICBpZD0iZGF0YWZsb3ctYXJyb3doZWFkLXBhdGgiCiAgICAgICAgZD0iTSAwLDAgTCAxMCw1IEwgMCwxMCBDIDMsNyAzLDMgMCwwIgogICAgICA+PC9wYXRoPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9ImRhdGFmbG93LWFycm93aGVhZCIKICAgICAgICBpZD0iZGF0YWZsb3ctYXJyb3doZWFkLXNtYWxsIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iNSIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjUiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2RhdGFmbG93LWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0iZGF0YWZsb3ctYXJyb3doZWFkIgogICAgICAgIGlkPSJkYXRhZmxvdy1hcnJvd2hlYWQtbWVkaXVtIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iMTMiCiAgICAgICAgbWFya2VySGVpZ2h0PSIxMyIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjZGF0YWZsb3ctYXJyb3doZWFkLXBhdGgiPjwvdXNlPgogICAgICA8L21hcmtlcj4KICAgICAgPG1hcmtlcgogICAgICAgIGNsYXNzPSJkYXRhZmxvdy1hcnJvd2hlYWQiCiAgICAgICAgaWQ9ImRhdGFmbG93LWFycm93aGVhZC1sYXJnZSIKICAgICAgICB2aWV3Qm94PSIwIDAgMTAgMTAiCiAgICAgICAgbWFya2VyV2lkdGg9IjE2IgogICAgICAgIG1hcmtlckhlaWdodD0iMTYiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2RhdGFmbG93LWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0iZGF0YWZsb3ctYXJyb3doZWFkIgogICAgICAgIGlkPSJkYXRhZmxvdy1hcnJvd2hlYWQteGxhcmdlIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iMjAiCiAgICAgICAgbWFya2VySGVpZ2h0PSIyMCIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjZGF0YWZsb3ctYXJyb3doZWFkLXBhdGgiPjwvdXNlPgogICAgICA8L21hcmtlcj4KCiAgICAgIDwhLS0gQXJyb3cgaGVhZCBmb3IgYW5ub3RhdGlvbiBlZGdlIHBhdGhzLiAtLT4KICAgICAgPG1hcmtlcgogICAgICAgIGlkPSJhbm5vdGF0aW9uLWFycm93aGVhZCIKICAgICAgICBtYXJrZXJXaWR0aD0iNSIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjUiCiAgICAgICAgcmVmWD0iNSIKICAgICAgICByZWZZPSIyLjUiCiAgICAgICAgb3JpZW50PSJhdXRvIgogICAgICA+CiAgICAgICAgPHBhdGggZD0iTSAwLDAgTCA1LDIuNSBMIDAsNSBMIDAsMCI+PC9wYXRoPgogICAgICA8L21hcmtlcj4KICAgICAgPG1hcmtlcgogICAgICAgIGlkPSJhbm5vdGF0aW9uLWFycm93aGVhZC1mYWRlZCIKICAgICAgICBtYXJrZXJXaWR0aD0iNSIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjUiCiAgICAgICAgcmVmWD0iNSIKICAgICAgICByZWZZPSIyLjUiCiAgICAgICAgb3JpZW50PSJhdXRvIgogICAgICA+CiAgICAgICAgPHBhdGggZD0iTSAwLDAgTCA1LDIuNSBMIDAsNSBMIDAsMCI+PC9wYXRoPgogICAgICA8L21hcmtlcj4KICAgICAgPG1hcmtlcgogICAgICAgIGlkPSJyZWYtYW5ub3RhdGlvbi1hcnJvd2hlYWQiCiAgICAgICAgbWFya2VyV2lkdGg9IjUiCiAgICAgICAgbWFya2VySGVpZ2h0PSI1IgogICAgICAgIHJlZlg9IjAiCiAgICAgICAgcmVmWT0iMi41IgogICAgICAgIG9yaWVudD0iYXV0byIKICAgICAgPgogICAgICAgIDxwYXRoIGQ9Ik0gNSwwIEwgMCwyLjUgTCA1LDUgTCA1LDAiPjwvcGF0aD4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBpZD0icmVmLWFubm90YXRpb24tYXJyb3doZWFkLWZhZGVkIgogICAgICAgIG1hcmtlcldpZHRoPSI1IgogICAgICAgIG1hcmtlckhlaWdodD0iNSIKICAgICAgICByZWZYPSIwIgogICAgICAgIHJlZlk9IjIuNSIKICAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgID4KICAgICAgICA8cGF0aCBkPSJNIDUsMCBMIDAsMi41IEwgNSw1IEwgNSwwIj48L3BhdGg+CiAgICAgIDwvbWFya2VyPgogICAgICA8IS0tIFRlbXBsYXRlIGZvciBhbiBPcCBub2RlIGVsbGlwc2UuIC0tPgogICAgICA8ZWxsaXBzZQogICAgICAgIGlkPSJvcC1ub2RlLXN0YW1wIgogICAgICAgIHJ4PSI3LjUiCiAgICAgICAgcnk9IjMiCiAgICAgICAgc3Ryb2tlPSJpbmhlcml0IgogICAgICAgIGZpbGw9ImluaGVyaXQiCiAgICAgID48L2VsbGlwc2U+CiAgICAgIDwhLS0gVGVtcGxhdGUgZm9yIGFuIE9wIG5vZGUgYW5ub3RhdGlvbiBlbGxpcHNlIChzbWFsbGVyKS4gLS0+CiAgICAgIDxlbGxpcHNlCiAgICAgICAgaWQ9Im9wLW5vZGUtYW5ub3RhdGlvbi1zdGFtcCIKICAgICAgICByeD0iNSIKICAgICAgICByeT0iMiIKICAgICAgICBzdHJva2U9ImluaGVyaXQiCiAgICAgICAgZmlsbD0iaW5oZXJpdCIKICAgICAgPjwvZWxsaXBzZT4KICAgICAgPCEtLSBWZXJ0aWNhbGx5IHN0YWNrZWQgc2VyaWVzIG9mIE9wIG5vZGVzIHdoZW4gdW5leHBhbmRlZC4gLS0+CiAgICAgIDxnIGlkPSJvcC1zZXJpZXMtdmVydGljYWwtc3RhbXAiPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjgiIHk9IjkiPjwvdXNlPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjgiIHk9IjYiPjwvdXNlPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjgiIHk9IjMiPjwvdXNlPgogICAgICA8L2c+CiAgICAgIDwhLS0gSG9yaXpvbnRhbGx5IHN0YWNrZWQgc2VyaWVzIG9mIE9wIG5vZGVzIHdoZW4gdW5leHBhbmRlZC4gLS0+CiAgICAgIDxnIGlkPSJvcC1zZXJpZXMtaG9yaXpvbnRhbC1zdGFtcCI+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIgeD0iMTYiIHk9IjQiPjwvdXNlPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjEyIiB5PSI0Ij48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSI0Ij48L3VzZT4KICAgICAgPC9nPgogICAgICA8IS0tIEhvcml6b250YWxseSBzdGFja2VkIHNlcmllcyBvZiBPcCBub2RlcyBmb3IgYW5ub3RhdGlvbi4gLS0+CiAgICAgIDxnIGlkPSJvcC1zZXJpZXMtYW5ub3RhdGlvbi1zdGFtcCI+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1hbm5vdGF0aW9uLXN0YW1wIiB4PSI5IiB5PSIyIj48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLWFubm90YXRpb24tc3RhbXAiIHg9IjciIHk9IjIiPjwvdXNlPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtYW5ub3RhdGlvbi1zdGFtcCIgeD0iNSIgeT0iMiI+PC91c2U+CiAgICAgIDwvZz4KICAgICAgPHN2ZwogICAgICAgIGlkPSJzdW1tYXJ5LWljb24iCiAgICAgICAgZmlsbD0iIzg0ODQ4NCIKICAgICAgICBoZWlnaHQ9IjEyIgogICAgICAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgICAgICB3aWR0aD0iMTIiCiAgICAgID4KICAgICAgICA8cGF0aAogICAgICAgICAgZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE3SDd2LTdoMnY3em00IDBoLTJWN2gydjEwem00IDBoLTJ2LTRoMnY0eiIKICAgICAgICA+PC9wYXRoPgogICAgICA8L3N2Zz4KCiAgICAgIDwhLS0gSGF0Y2ggcGF0dGVybnMgZm9yIGZhZGVkIG91dCBub2Rlcy4gLS0+CiAgICAgIDxwYXR0ZXJuCiAgICAgICAgaWQ9InJlY3RIYXRjaCIKICAgICAgICBwYXR0ZXJuVHJhbnNmb3JtPSJyb3RhdGUoNDUgMCAwKSIKICAgICAgICB3aWR0aD0iNSIKICAgICAgICBoZWlnaHQ9IjUiCiAgICAgICAgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAxIj48L2xpbmU+CiAgICAgIDwvcGF0dGVybj4KICAgICAgPHBhdHRlcm4KICAgICAgICBpZD0iZWxsaXBzZUhhdGNoIgogICAgICAgIHBhdHRlcm5UcmFuc2Zvcm09InJvdGF0ZSg0NSAwIDApIgogICAgICAgIHdpZHRoPSIyIgogICAgICAgIGhlaWdodD0iMiIKICAgICAgICBwYXR0ZXJuVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPGxpbmUgeDE9IjAiIHkxPSIwIiB4Mj0iMCIgeTI9IjIiIHN0eWxlPSJzdHJva2Utd2lkdGg6IDEiPjwvbGluZT4KICAgICAgPC9wYXR0ZXJuPgoKICAgICAgPCEtLSBBIHNoYWRvdyBmb3IgaGVhbHRoIHBpbGxzLiAtLT4KICAgICAgPGZpbHRlcgogICAgICAgIGlkPSJoZWFsdGgtcGlsbC1zaGFkb3ciCiAgICAgICAgeD0iLTQwJSIKICAgICAgICB5PSItNDAlIgogICAgICAgIHdpZHRoPSIxODAlIgogICAgICAgIGhlaWdodD0iMTgwJSIKICAgICAgPgogICAgICAgIDxmZUdhdXNzaWFuQmx1ciBpbj0iU291cmNlQWxwaGEiIHN0ZERldmlhdGlvbj0iMC44Ij48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjAiIHJlc3VsdD0ib2Zmc2V0Ymx1ciI+PC9mZU9mZnNldD4KICAgICAgICA8ZmVGbG9vZCBmbG9vZC1jb2xvcj0iIzAwMDAwMCI+PC9mZUZsb29kPgogICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9Im9mZnNldGJsdXIiIG9wZXJhdG9yPSJpbiI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICA8ZmVNZXJnZT4KICAgICAgICAgIDxmZU1lcmdlTm9kZT48L2ZlTWVyZ2VOb2RlPgogICAgICAgICAgPGZlTWVyZ2VOb2RlIGluPSJTb3VyY2VHcmFwaGljIj48L2ZlTWVyZ2VOb2RlPgogICAgICAgIDwvZmVNZXJnZT4KICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8IS0tIE1ha2UgYSBsYXJnZSByZWN0YW5nbGUgdGhhdCBmaWxscyB0aGUgc3ZnIHNwYWNlIHNvIHRoYXQKICB6b29tIGV2ZW50cyBnZXQgY2FwdHVyZWQgb24gc2FmYXJpIC0tPgogICAgPHJlY3QgZmlsbD0id2hpdGUiIHdpZHRoPSIxMDAwMCIgaGVpZ2h0PSIxMDAwMCI+PC9yZWN0PgogICAgPGcgaWQ9InJvb3QiPjwvZz4KICA8L3N2Zz4KICA8dGYtZ3JhcGgtbWluaW1hcCBpZD0ibWluaW1hcCI+PC90Zi1ncmFwaC1taW5pbWFwPgogIDxkaXYgaWQ9ImNvbnRleHRNZW51IiBjbGFzcz0iY29udGV4dC1tZW51Ij48L2Rpdj4KYDtsZXQgSnF0PWNsYXNzIGV4dGVuZHMoZXIoaWwoeWUpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3pvb21lZD0hMSx0aGlzLl96b29tU3RhcnRDb29yZHM9bnVsbCx0aGlzLl96b29tVHJhbnNmb3JtPW51bGwsdGhpcy5fbWF4Wm9vbURpc3RhbmNlRm9yQ2xpY2s9MjAsdGhpcy5fbm9kZUdyb3VwSW5kZXg9e30sdGhpcy5fYW5ub3RhdGlvbkdyb3VwSW5kZXg9e30sdGhpcy5fZWRnZUdyb3VwSW5kZXg9e30sdGhpcy5tYXhNZXRhbm9kZUxhYmVsTGVuZ3RoRm9udFNpemU9OSx0aGlzLm1pbk1ldGFub2RlTGFiZWxMZW5ndGhGb250U2l6ZT02LHRoaXMubWF4TWV0YW5vZGVMYWJlbExlbmd0aExhcmdlRm9udD0xMSx0aGlzLm1heE1ldGFub2RlTGFiZWxMZW5ndGg9MTh9Z2V0Tm9kZSh0KXtyZXR1cm4gdGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0UmVuZGVyTm9kZUJ5TmFtZSh0KX1pc05vZGVFeHBhbmRlZCh0KXtyZXR1cm4gdC5leHBhbmRlZH1zZXROb2RlRXhwYW5kZWQodCl7dGhpcy5fYnVpbGQodGhpcy5yZW5kZXJIaWVyYXJjaHkpLHRoaXMuX3VwZGF0ZUxhYmVscyghdGhpcy5fem9vbWVkKX1wYW5Ub05vZGUodCl7KGZ1bmN0aW9uIGUodCxuLGkscil7Y29uc3Qgbz1TdShuKS5zZWxlY3QoYFtkYXRhLW5hbWU9IiR7dH0iXWApLm5vZGUoKTtpZighbylyZXR1cm4gY29uc29sZS53YXJuKGBwYW5Ub05vZGUoKSBmYWlsZWQgZm9yIG5vZGUgbmFtZSAiJHt0fSJgKSwhMTtsZXQgYT1vLmdldEJCb3goKSxzPW8uZ2V0U2NyZWVuQ1RNKCksbD1uLmNyZWF0ZVNWR1BvaW50KCksYz1uLmNyZWF0ZVNWR1BvaW50KCk7bC54PWEueCxsLnk9YS55LGMueD1hLngrYS53aWR0aCxjLnk9YS55K2EuaGVpZ2h0LGw9bC5tYXRyaXhUcmFuc2Zvcm0ocyksYz1jLm1hdHJpeFRyYW5zZm9ybShzKTtsZXQgdT0odCxlLG4saSk9PiEodD5uJiZlPGkpLGg9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjb25zdCBkPWgudG9wK2guaGVpZ2h0LTE1MDtpZih1KGwueCxjLngsaC5sZWZ0LGgubGVmdCtoLndpZHRoLTMyMCl8fHUobC55LGMueSxoLnRvcCxkKSl7bGV0IHQ9aC5sZWZ0K2gud2lkdGgvMi0obC54K2MueCkvMixlPWgudG9wK2guaGVpZ2h0LzItKGwueStjLnkpLzI7Y29uc3QgaT1iTihuKTtyZXR1cm4gU3UobikudHJhbnNpdGlvbigpLmR1cmF0aW9uKDUwMCkuY2FsbChyLnRyYW5zbGF0ZUJ5LHQvaS5rLGUvaS5rKSwhMH1yZXR1cm4hMX0pKHQsdGhpcy4kLnN2ZywwLHRoaXMuX3pvb20pJiYodGhpcy5fem9vbWVkPSEwKX1nZXRHcmFwaFN2Z1Jvb3QoKXtyZXR1cm4gdGhpcy4kLnN2Z31nZXRDb250ZXh0TWVudSgpe3JldHVybiB0aGlzLiQuY29udGV4dE1lbnV9X3Jlc2V0U3RhdGUoKXt0aGlzLl9ub2RlR3JvdXBJbmRleD17fSx0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleD17fSx0aGlzLl9lZGdlR3JvdXBJbmRleD17fSx0aGlzLl91cGRhdGVMYWJlbHMoITEpLFN1KHRoaXMuJC5zdmcpLnNlbGVjdCgiI3Jvb3QiKS5zZWxlY3RBbGwoIioiKS5yZW1vdmUoKSxicXQodGhpcy4kLnN2Zyl9X2J1aWxkKHQpe3RoaXMudGVtcGxhdGVJbmRleD10LmhpZXJhcmNoeS5nZXRUZW1wbGF0ZUluZGV4KCksQ0d0KCJ0Zi1ncmFwaC1zY2VuZSAobGF5b3V0KToiLGZ1bmN0aW9uKCl7Uld0KHQucm9vdCl9LmJpbmQodGhpcyksX0d0LlJFTkRFUl9TQ0VORV9MQVlPVVQpLENHdCgidGYtZ3JhcGgtc2NlbmUgKGJ1aWxkIHNjZW5lKToiLGZ1bmN0aW9uKCl7THF0KFN1KHRoaXMuJC5yb290KSx0LnJvb3QsdGhpcyksKGZ1bmN0aW9uIGUodCxuKXtTdSh0KS5vbigiY2xpY2siLCgoKT0+e24uZmlyZSgiZ3JhcGgtc2VsZWN0Iil9KSl9KSh0aGlzLiQuc3ZnLHRoaXMpLHRoaXMuX3VwZGF0ZUlucHV0VHJhY2UoKX0uYmluZCh0aGlzKSxfR3QuUkVOREVSX1NDRU5FX0JVSUxEX1NDRU5FKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlSGVhbHRoUGlsbHModGhpcy5ub2RlTmFtZXNUb0hlYWx0aFBpbGxzLHRoaXMuaGVhbHRoUGlsbFN0ZXBJbmRleCksdGhpcy5taW5pbWFwLnVwZGF0ZSgpfS5iaW5kKHRoaXMpLE5XdC5hbmltYXRpb24uZHVyYXRpb24pfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLl96b29tPWtOKCkub24oImVuZCIsZnVuY3Rpb24oKXt0aGlzLl96b29tU3RhcnRDb29yZHMmJihNYXRoLnNxcnQoTWF0aC5wb3codGhpcy5fem9vbVN0YXJ0Q29vcmRzLngtdGhpcy5fem9vbVRyYW5zZm9ybS54LDIpK01hdGgucG93KHRoaXMuX3pvb21TdGFydENvb3Jkcy55LXRoaXMuX3pvb21UcmFuc2Zvcm0ueSwyKSk8dGhpcy5fbWF4Wm9vbURpc3RhbmNlRm9yQ2xpY2s/dGhpcy5fZmlyZUVuYWJsZUNsaWNrKCk6c2V0VGltZW91dCh0aGlzLl9maXJlRW5hYmxlQ2xpY2suYmluZCh0aGlzKSw1MCkpLHRoaXMuX3pvb21TdGFydENvb3Jkcz1udWxsfS5iaW5kKHRoaXMpKS5vbigiem9vbSIsZnVuY3Rpb24oKXt0aGlzLl96b29tVHJhbnNmb3JtPXV1LnRyYW5zZm9ybSx0aGlzLl96b29tU3RhcnRDb29yZHN8fCh0aGlzLl96b29tU3RhcnRDb29yZHM9dGhpcy5fem9vbVRyYW5zZm9ybSx0aGlzLmZpcmUoImRpc2FibGUtY2xpY2siKSksdGhpcy5fem9vbWVkPSEwLFN1KHRoaXMuJC5yb290KS5hdHRyKCJ0cmFuc2Zvcm0iLHV1LnRyYW5zZm9ybSksdGhpcy5taW5pbWFwLnpvb20odXUudHJhbnNmb3JtKX0uYmluZCh0aGlzKSksU3UodGhpcy4kLnN2ZykuY2FsbCh0aGlzLl96b29tKS5vbigiZGJsY2xpY2suem9vbSIsbnVsbCksU3Uod2luZG93KS5vbigicmVzaXplIixmdW5jdGlvbigpe3RoaXMubWluaW1hcC56b29tKCl9LmJpbmQodGhpcykpLHRoaXMubWluaW1hcD10aGlzLiQubWluaW1hcC5pbml0KHRoaXMuJC5zdmcsdGhpcy4kLnJvb3QsdGhpcy5fem9vbSxOV3QubWluaW1hcC5zaXplLE5XdC5zdWJzY2VuZS5tZXRhLmxhYmVsSGVpZ2h0KX1hdHRhY2hlZCgpe3RoaXMuc2V0KCJfaXNBdHRhY2hlZCIsITApfWRldGFjaGVkKCl7dGhpcy5zZXQoIl9pc0F0dGFjaGVkIiwhMSl9X3JlbmRlckhpZXJhcmNoeUNoYW5nZWQoKXt2YXIgdD10aGlzLnJlbmRlckhpZXJhcmNoeTt0aGlzLl9oYXNSZW5kZXJIaWVyYXJjaHlCZWVuRml0T25jZT0hMSx0aGlzLl9yZXNldFN0YXRlKCksdGhpcy5fYnVpbGQodCl9X2FuaW1hdGVBbmRGaXQoKXshdGhpcy5faGFzUmVuZGVySGllcmFyY2h5QmVlbkZpdE9uY2UmJnRoaXMuX2lzQXR0YWNoZWQmJnNldFRpbWVvdXQodGhpcy5maXQuYmluZCh0aGlzKSxOV3QuYW5pbWF0aW9uLmR1cmF0aW9uKX1fdXBkYXRlTGFiZWxzKHQpe3ZhciBlPXRoaXMuJCQoIi50aXRsZSIpLG49ZS5zdHlsZSxpPXRoaXMuJCQoIi5hdXhUaXRsZSIpLHI9aS5zdHlsZSxvPXRoaXMuJCQoIi5mdW5jdGlvbkxpYnJhcnlUaXRsZSIpLnN0eWxlO2NvbnN0IGE9U3UodGhpcy4kLnN2Zyk7dmFyIHM9YS5zZWxlY3QoIi4iK1ZXdC5TY2VuZS5HUk9VUCsiPi4iK1ZXdC5TY2VuZS5DT1JFKS5ub2RlKCk7aWYodCYmcyYmdGhpcy5wcm9ncmVzcyYmMTAwPT09dGhpcy5wcm9ncmVzcy52YWx1ZSl7dmFyIGw9YS5zZWxlY3QoIi4iK1ZXdC5TY2VuZS5HUk9VUCsiPi4iK1ZXdC5TY2VuZS5JTkVYVFJBQ1QpLm5vZGUoKXx8YS5zZWxlY3QoIi4iK1ZXdC5TY2VuZS5HUk9VUCsiPi4iK1ZXdC5TY2VuZS5PVVRFWFRSQUNUKS5ub2RlKCksYz1zLmdldENUTSgpLmUsdT1sP2wuZ2V0Q1RNKCkuZTpudWxsO24uZGlzcGxheT0iaW5saW5lIixuLmxlZnQ9YysicHgiLG51bGwhPT11JiZ1IT09Yz8oci5kaXNwbGF5PSJpbmxpbmUiLHU9TWF0aC5tYXgoYytlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLHUpLHIubGVmdD11KyJweCIpOnIuZGlzcGxheT0ibm9uZSI7bGV0IHQ9YS5zZWxlY3QoIi4iK1ZXdC5TY2VuZS5HUk9VUCsiPi4iK1ZXdC5TY2VuZS5GVU5DVElPTl9MSUJSQVJZKS5ub2RlKCksaD10P3QuZ2V0Q1RNKCkuZTpudWxsO251bGwhPT1oJiZoIT09dT8oby5kaXNwbGF5PSJpbmxpbmUiLGg9TWF0aC5tYXgodStpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLGgpLG8ubGVmdD1oKyJweCIpOm8uZGlzcGxheT0ibm9uZSJ9ZWxzZSBuLmRpc3BsYXk9Im5vbmUiLHIuZGlzcGxheT0ibm9uZSIsby5kaXNwbGF5PSJub25lIn1ub2RlQ29sb3JzQ2hhbmdlZCgpe251bGwhPXRoaXMucmVuZGVySGllcmFyY2h5JiYodGhpcy50ZW1wbGF0ZUluZGV4PXRoaXMucmVuZGVySGllcmFyY2h5LmhpZXJhcmNoeS5nZXRUZW1wbGF0ZUluZGV4KCksU2UuZXhwb3J0cy5lYWNoKHRoaXMuX25vZGVHcm91cEluZGV4LCgodCxlKT0+e3RoaXMuX3VwZGF0ZU5vZGVTdGF0ZShlKX0pKSx0aGlzLm1pbmltYXAudXBkYXRlKCkpfWZpdCgpe3RoaXMuX2hhc1JlbmRlckhpZXJhcmNoeUJlZW5GaXRPbmNlPSEwLChmdW5jdGlvbiB0KGUsbixpLHIpe2xldCBvPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1udWxsO3RyeXtpZihhPW4uZ2V0QkJveCgpLDA9PT1hLndpZHRoKXJldHVybn1jYXRjaCh0KXtyZXR1cm59bGV0IHM9LjkqTWF0aC5taW4oby53aWR0aC9hLndpZHRoLG8uaGVpZ2h0L2EuaGVpZ2h0LDIpLGw9Tld0LmdyYXBoO2NvbnN0IGM9dk4uc2NhbGUocykudHJhbnNsYXRlKGwucGFkZGluZy5wYWRkaW5nTGVmdCxsLnBhZGRpbmcucGFkZGluZ1RvcCk7U3UoZSkudHJhbnNpdGlvbigpLmR1cmF0aW9uKDUwMCkuY2FsbChpLnRyYW5zZm9ybSxjKS5vbigiZW5kLmZpdHRlZCIsKCgpPT57aS5vbigiZW5kLmZpdHRlZCIsbnVsbCkscigpfSkpfSkodGhpcy4kLnN2Zyx0aGlzLiQucm9vdCx0aGlzLl96b29tLGZ1bmN0aW9uKCl7dGhpcy5fem9vbWVkPSExfS5iaW5kKHRoaXMpKX1nZXRJbWFnZUJsb2IoKXtyZXR1cm4gdGhpcy5taW5pbWFwLmdldEltYWdlQmxvYigpfWlzTm9kZVNlbGVjdGVkKHQpe3JldHVybiB0PT09dGhpcy5zZWxlY3RlZE5vZGV9aXNOb2RlSGlnaGxpZ2h0ZWQodCl7cmV0dXJuIHQ9PT10aGlzLmhpZ2hsaWdodGVkTm9kZX1hZGRBbm5vdGF0aW9uR3JvdXAodCxlLG4pe3ZhciBpPXQubm9kZS5uYW1lO3RoaXMuX2Fubm90YXRpb25Hcm91cEluZGV4W2ldPXRoaXMuX2Fubm90YXRpb25Hcm91cEluZGV4W2ldfHx7fSx0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleFtpXVtlLm5vZGUubmFtZV09bn1nZXRBbm5vdGF0aW9uR3JvdXBzSW5kZXgodCl7cmV0dXJuIHRoaXMuX2Fubm90YXRpb25Hcm91cEluZGV4W3RdfXJlbW92ZUFubm90YXRpb25Hcm91cCh0LGUpe2RlbGV0ZSB0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleFt0Lm5vZGUubmFtZV1bZS5ub2RlLm5hbWVdfWFkZE5vZGVHcm91cCh0LGUpe3RoaXMuX25vZGVHcm91cEluZGV4W3RdPWV9Z2V0Tm9kZUdyb3VwKHQpe3JldHVybiB0aGlzLl9ub2RlR3JvdXBJbmRleFt0XX1yZW1vdmVOb2RlR3JvdXAodCl7ZGVsZXRlIHRoaXMuX25vZGVHcm91cEluZGV4W3RdfWFkZEVkZ2VHcm91cCh0LGUpe3RoaXMuX2VkZ2VHcm91cEluZGV4W3RdPWV9Z2V0RWRnZUdyb3VwKHQpe3JldHVybiB0aGlzLl9lZGdlR3JvdXBJbmRleFt0XX1fdXBkYXRlSGVhbHRoUGlsbHMoKXshKGZ1bmN0aW9uIHQoZSxuLGkpe2lmKCFuKXJldHVybjtsZXQgcj0xO1N1KGUpLnNlbGVjdEFsbCgiZy5ub2Rlc2hhcGUiKS5lYWNoKChmdW5jdGlvbih0KXtjb25zdCBlPW5bdC5ub2RlLm5hbWVdOyEoZnVuY3Rpb24gbyh0LGUsbixpLHI9NjAsYT0xMCxzPTAsbCl7aWYoU3UodC5wYXJlbnROb2RlKS5zZWxlY3RBbGwoIi5oZWFsdGgtcGlsbCIpLnJlbW92ZSgpLCFlKXJldHVybjtjb25zdCBjPWUudmFsdWUsdT1jLnNsaWNlKDIsOCksaD11WzBdLGQ9dVsxXSxwPXVbNV07bGV0IGY9Y1sxXTtjb25zdCBtPXttaW46Y1s4XSxtYXg6Y1s5XSxtZWFuOmNbMTBdLHN0ZGRldjpNYXRoLnNxcnQoY1sxMV0pfTtudWxsPT1yJiYocj02MCksbnVsbD09YSYmKGE9MTApLG51bGw9PXMmJihzPTApLG51bGwhPW4mJm4ubm9kZS50eXBlPT09akd0Lk9QJiYoci89MixhLz0yKTtsZXQgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYkd0LCJnIik7Zy5jbGFzc0xpc3QuYWRkKCJoZWFsdGgtcGlsbCIpO2xldCBfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhiR3QsImRlZnMiKTtnLmFwcGVuZENoaWxkKF8pO2xldCB5PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhiR3QsImxpbmVhckdyYWRpZW50Iik7Y29uc3Qgdj0iaGVhbHRoLXBpbGwtZ3JhZGllbnQtIitpO3kuc2V0QXR0cmlidXRlKCJpZCIsdik7bGV0IGI9MCx4PSIwJSI7Zm9yKGxldCB0PTA7dDx1Lmxlbmd0aDt0Kyspe2lmKCF1W3RdKWNvbnRpbnVlO2IrPXVbdF07bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGJHdCwic3RvcCIpO2Uuc2V0QXR0cmlidXRlKCJvZmZzZXQiLHgpLGUuc2V0QXR0cmlidXRlKCJzdG9wLWNvbG9yIixVV3RbdF0uYmFja2dyb3VuZF9jb2xvcikseS5hcHBlbmRDaGlsZChlKTtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYkd0LCJzdG9wIiksaT0xMDAqYi9mKyIlIjtuLnNldEF0dHJpYnV0ZSgib2Zmc2V0IixpKSxuLnNldEF0dHJpYnV0ZSgic3RvcC1jb2xvciIsVVd0W3RdLmJhY2tncm91bmRfY29sb3IpLHkuYXBwZW5kQ2hpbGQobikseD1pfV8uYXBwZW5kQ2hpbGQoeSk7bGV0IHc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGJHdCwicmVjdCIpO3cuc2V0QXR0cmlidXRlKCJmaWxsIiwidXJsKCMiK3YrIikiKSx3LnNldEF0dHJpYnV0ZSgid2lkdGgiLFN0cmluZyhyKSksdy5zZXRBdHRyaWJ1dGUoImhlaWdodCIsU3RyaW5nKGEpKSx3LnNldEF0dHJpYnV0ZSgieSIsU3RyaW5nKHMpKSxnLmFwcGVuZENoaWxkKHcpO2xldCBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhiR3QsInRpdGxlIik7Uy50ZXh0Q29udGVudD0oZnVuY3Rpb24gTSh0LGUsbixpKXtsZXQgcj0iRGV2aWNlOiAiK3QuZGV2aWNlX25hbWUrIlxuIjtyKz0iZHR5cGU6ICIrdC5kdHlwZSsiXG4iO2xldCBvPSIoc2NhbGFyKSI7dC5zaGFwZS5sZW5ndGg+MCYmKG89IigiK3Quc2hhcGUuam9pbigiLCIpKyIpIikscis9Ilxuc2hhcGU6ICIrbysiXG5cbiIscis9IiMoZWxlbWVudHMpOiAiK2UrIlxuIjtjb25zdCBhPVtdO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKW5bdF0+MCYmYS5wdXNoKCIjKCIrVVd0W3RdLmxhYmVsKyIpOiAiK25bdF0pO3JldHVybiByKz1hLmpvaW4oIiwgIikrIlxuXG4iLGkubWF4Pj1pLm1pbiYmKHIrPSJtaW46ICIraS5taW4rIiwgbWF4OiAiK2kubWF4KyJcbiIscis9Im1lYW46ICIraS5tZWFuKyIsIHN0ZGRldjogIitpLnN0ZGRldikscn0pKGUsZix1LG0pLGcuYXBwZW5kQ2hpbGQoUyk7bGV0IEU9ITE7aWYobnVsbCE9bil7bGV0IHQ9bi55LWEtbi5oZWlnaHQvMi0yO2lmKG4ubGFiZWxPZmZzZXQ8MCYmKHQrPW4ubGFiZWxPZmZzZXQpLGcuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIisobi54LXIvMikrIiwgIit0KyIpIiksdVsyXXx8dVszXXx8dVs0XSl7bGV0IHQ9bi5ub2RlLmF0dHI7aWYodCYmdC5sZW5ndGgpZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYoIlQiPT09dFtlXS5rZXkpe2xldCBuPXRbZV0udmFsdWUudHlwZTtFPW4mJi9eRFRfKEJPT0x8SU5UfFVJTlQpLy50ZXN0KG4pO2JyZWFrfX19bGV0IFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGJHdCwidGV4dCIpO2lmKE51bWJlci5pc0Zpbml0ZShtLm1pbikmJk51bWJlci5pc0Zpbml0ZShtLm1heCkpe2NvbnN0IHQ9cVd0KG0ubWluLEUpLGU9cVd0KG0ubWF4LEUpO2lmKFQudGV4dENvbnRlbnQ9Zj4xP3QrIiB+ICIrZTp0LGg+MHx8ZD4wfHxwPjApe1QudGV4dENvbnRlbnQrPSIgKCI7Y29uc3QgdD1bXTtoPjAmJnQucHVzaChgTmFOw5cke2h9YCksZD4wJiZ0LnB1c2goYC3iiJ7DlyR7ZH1gKSxwPjAmJnQucHVzaChgK+KInsOXJHtwfWApLFQudGV4dENvbnRlbnQrPXQuam9pbigiOyAiKSsiKSJ9fWVsc2UgVC50ZXh0Q29udGVudD0iKE5vIGZpbml0ZSBlbGVtZW50cykiO1QuY2xhc3NMaXN0LmFkZCgiaGVhbHRoLXBpbGwtc3RhdHMiKSxudWxsPT1sJiYobD1yLzIpLFQuc2V0QXR0cmlidXRlKCJ4IixTdHJpbmcobCkpLFQuc2V0QXR0cmlidXRlKCJ5IixTdHJpbmcocy0yKSksZy5hcHBlbmRDaGlsZChUKSxZaSh0LnBhcmVudE5vZGUpLmFwcGVuZENoaWxkKGcpfSkodGhpcyxlP2VbaV06bnVsbCx0LHIrKyl9KSl9KSh0aGlzLiQuc3ZnLHRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxscyx0aGlzLmhlYWx0aFBpbGxTdGVwSW5kZXgpfV91cGRhdGVOb2RlU3RhdGUodCl7dmFyIGU9dGhpcy5nZXROb2RlKHQpLG49dGhpcy5nZXROb2RlR3JvdXAodCk7biYmd3F0KG4sZSx0aGlzKSxlLm5vZGUudHlwZT09PWpHdC5NRVRBJiZlLm5vZGUuYXNzb2NpYXRlZEZ1bmN0aW9uJiYhZS5pc0xpYnJhcnlGdW5jdGlvbiYmd3F0KFN1KCIuIitWV3QuU2NlbmUuR1JPVVArIj4uIitWV3QuU2NlbmUuRlVOQ1RJT05fTElCUkFSWSsnIGdbZGF0YS1uYW1lPSInKyhWR3QrZS5ub2RlLmFzc29jaWF0ZWRGdW5jdGlvbikrJyJdJyksZSx0aGlzKTt2YXIgaT10aGlzLmdldEFubm90YXRpb25Hcm91cHNJbmRleCh0KTtTZS5leHBvcnRzLmVhY2goaSwoKHQsbik9Pnt3cXQodCxlLHRoaXMsVld0LkFubm90YXRpb24uTk9ERSl9KSl9X3NlbGVjdGVkTm9kZUNoYW5nZWQodCxlKXtpZih0IT09ZSYmKGUmJnRoaXMuX3VwZGF0ZU5vZGVTdGF0ZShlKSx0KSl7dGhpcy5taW5pbWFwLnVwZGF0ZSgpO2Zvcih2YXIgbixpPXRoaXMucmVuZGVySGllcmFyY2h5LmhpZXJhcmNoeS5ub2RlKHQpLHI9W107bnVsbCE9aS5wYXJlbnROb2RlJiZpLnBhcmVudE5vZGUubmFtZSE9Rkd0OylyLnB1c2goKGk9aS5wYXJlbnROb2RlKS5uYW1lKTtTZS5leHBvcnRzLmZvckVhY2hSaWdodChyLCh0PT57dGhpcy5yZW5kZXJIaWVyYXJjaHkuYnVpbGRTdWJoaWVyYXJjaHkodCk7dmFyIGU9dGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0UmVuZGVyTm9kZUJ5TmFtZSh0KTtlLm5vZGUuaXNHcm91cE5vZGUmJiFlLmV4cGFuZGVkJiYoZS5leHBhbmRlZD0hMCxufHwobj1lKSl9KSksbiYmKHRoaXMuc2V0Tm9kZUV4cGFuZGVkKG4pLHRoaXMuX3pvb21lZD0hMCksdCYmdGhpcy5fdXBkYXRlTm9kZVN0YXRlKHQpLHNldFRpbWVvdXQoKCgpPT57dGhpcy5wYW5Ub05vZGUodCl9KSxOV3QuYW5pbWF0aW9uLmR1cmF0aW9uKX19X2hpZ2hsaWdodGVkTm9kZUNoYW5nZWQodCxlKXt0IT09ZSYmKHQmJnRoaXMuX3VwZGF0ZU5vZGVTdGF0ZSh0KSxlJiZ0aGlzLl91cGRhdGVOb2RlU3RhdGUoZSkpfV9vblpvb21DaGFuZ2VkKCl7dGhpcy5fdXBkYXRlTGFiZWxzKCF0aGlzLl96b29tZWQpfV9maXJlRW5hYmxlQ2xpY2soKXt0aGlzLmZpcmUoImVuYWJsZS1jbGljayIpfV91cGRhdGVJbnB1dFRyYWNlKCl7TXF0KHRoaXMuZ2V0R3JhcGhTdmdSb290KCksdGhpcy5yZW5kZXJIaWVyYXJjaHksdGhpcy5zZWxlY3RlZE5vZGUsdGhpcy50cmFjZUlucHV0cyl9fTtKcXQudGVtcGxhdGU9WnF0LHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHlXdCldLEpxdC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxKcXQucHJvdG90eXBlLCJuYW1lIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEpxdC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxKcXQucHJvdG90eXBlLCJ0cmFjZUlucHV0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEpxdC5wcm90b3R5cGUsIl9oYXNSZW5kZXJIaWVyYXJjaHlCZWVuRml0T25jZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEpxdC5wcm90b3R5cGUsIl9pc0F0dGFjaGVkIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpxdC5wcm90b3R5cGUsIl96b29tIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfaGlnaGxpZ2h0ZWROb2RlQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sSnF0LnByb3RvdHlwZSwiaGlnaGxpZ2h0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfc2VsZWN0ZWROb2RlQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sSnF0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpxdC5wcm90b3R5cGUsImhhbmRsZUVkZ2VTZWxlY3RlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9vblpvb21DaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSnF0LnByb3RvdHlwZSwiX3pvb21lZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxKcXQucHJvdG90eXBlLCJfem9vbVN0YXJ0Q29vcmRzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpxdC5wcm90b3R5cGUsIl96b29tVHJhbnNmb3JtIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpxdC5wcm90b3R5cGUsIl9tYXhab29tRGlzdGFuY2VGb3JDbGljayIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLEpxdC5wcm90b3R5cGUsInRlbXBsYXRlSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSnF0LnByb3RvdHlwZSwiX25vZGVHcm91cEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpxdC5wcm90b3R5cGUsIl9hbm5vdGF0aW9uR3JvdXBJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxKcXQucHJvdG90eXBlLCJfZWRnZUdyb3VwSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sSnF0LnByb3RvdHlwZSwibWF4TWV0YW5vZGVMYWJlbExlbmd0aEZvbnRTaXplIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpxdC5wcm90b3R5cGUsIm1pbk1ldGFub2RlTGFiZWxMZW5ndGhGb250U2l6ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxKcXQucHJvdG90eXBlLCJtYXhNZXRhbm9kZUxhYmVsTGVuZ3RoTGFyZ2VGb250Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpxdC5wcm90b3R5cGUsIm1heE1ldGFub2RlTGFiZWxMZW5ndGgiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSnF0LnByb3RvdHlwZSwicHJvZ3Jlc3MiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLEpxdC5wcm90b3R5cGUsIm5vZGVDb250ZXh0TWVudUl0ZW1zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpxdC5wcm90b3R5cGUsIm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sSnF0LnByb3RvdHlwZSwiaGVhbHRoUGlsbFN0ZXBJbmRleCIsdm9pZCAwKSx0KFthKCJyZW5kZXJIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEpxdC5wcm90b3R5cGUsIl9yZW5kZXJIaWVyYXJjaHlDaGFuZ2VkIixudWxsKSx0KFthKCJfaXNBdHRhY2hlZCIsInJlbmRlckhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sSnF0LnByb3RvdHlwZSwiX2FuaW1hdGVBbmRGaXQiLG51bGwpLHQoW2EoImNvbG9yQnkiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEpxdC5wcm90b3R5cGUsIm5vZGVDb2xvcnNDaGFuZ2VkIixudWxsKSx0KFthKCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiwiaGVhbHRoUGlsbFN0ZXBJbmRleCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sSnF0LnByb3RvdHlwZSwiX3VwZGF0ZUhlYWx0aFBpbGxzIixudWxsKSx0KFthKCJ0cmFjZUlucHV0cyIsInNlbGVjdGVkTm9kZSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sSnF0LnByb3RvdHlwZSwiX3VwZGF0ZUlucHV0VHJhY2UiLG51bGwpLEpxdD10KFtpKCJ0Zi1ncmFwaC1zY2VuZSIpXSxKcXQpO2xldCBRcXQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9yZW5kZXJEZXB0aD0xLHRoaXMuX2FsbG93R3JhcGhTZWxlY3Q9ITAsdGhpcy5lZGdlV2lkdGhGdW5jdGlvbj0iIix0aGlzLmhhbmRsZU5vZGVTZWxlY3RlZD0iIix0aGlzLmVkZ2VMYWJlbEZ1bmN0aW9uPSIiLHRoaXMuaGFuZGxlRWRnZVNlbGVjdGVkPSIifXBhblRvTm9kZSh0KXt0aGlzLiQkKCJ0Zi1ncmFwaC1zY2VuZSIpLnBhblRvTm9kZSh0KX1fYXV0b0V4dHJhY3ROb2Rlc0NoYW5nZWQoKXt2YXIgdD10aGlzLmdyYXBoSGllcmFyY2h5O2lmKHQpe2Zvcihjb25zdCBlIG9mIE9iamVjdC52YWx1ZXModC5nZXROb2RlTWFwKCkpKWUuaW5jbHVkZT1HR3QuVU5TUEVDSUZJRUQ7dGhpcy5fYnVpbGRSZW5kZXJIaWVyYXJjaHkodCl9fV9idWlsZE5ld1JlbmRlckhpZXJhcmNoeSgpe3ZhciB0PXRoaXMuZ3JhcGhIaWVyYXJjaHk7dCYmdGhpcy5fYnVpbGRSZW5kZXJIaWVyYXJjaHkodCl9X3N0YXRzQ2hhbmdlZCgpe3ZhciB0PXRoaXMuc3RhdHMsZT10aGlzLmRldmljZXNGb3JTdGF0czt0aGlzLmdyYXBoSGllcmFyY2h5JiYodCYmZSYmKChmdW5jdGlvbiBuKHQsZSxpKXtTZS5leHBvcnRzLmVhY2godC5ub2RlcywodD0+e3Quc3RhdHM9bnVsbH0pKSxTZS5leHBvcnRzLmVhY2goZS5kZXZfc3RhdHMsKGU9PntpJiYhaVtlLmRldmljZV18fFNlLmV4cG9ydHMuZWFjaChlLm5vZGVfc3RhdHMsKG49PntsZXQgaT1uLm5vZGVfbmFtZSBpbiB0Lm5vZGVzP24ubm9kZV9uYW1lOnNXdChuLm5vZGVfbmFtZSk7aWYoIShpIGluIHQubm9kZXMpKXJldHVybjtsZXQgcj0wO24ubWVtb3J5JiZTZS5leHBvcnRzLmVhY2gobi5tZW1vcnksKHQ9Pnt0LnRvdGFsX2J5dGVzJiYodC50b3RhbF9ieXRlcz4wP3IrPU51bWJlcih0LnRvdGFsX2J5dGVzKTpjb25zb2xlLmxvZygiaWdub3JpbmcgbmVnYXRpdmUgbWVtb3J5IGFsbG9jYXRpb24gZm9yICIraSkpfSkpO2xldCBvPW51bGw7bi5vdXRwdXQmJihvPVNlLmV4cG9ydHMubWFwKG4ub3V0cHV0LCh0PT5TZS5leHBvcnRzLm1hcCh0LnRlbnNvcl9kZXNjcmlwdGlvbi5zaGFwZS5kaW0sKHQ9Pk51bWJlcih0LnNpemUpKSkpKSksdC5ub2Rlc1tpXS5kZXZpY2U9ZS5kZXZpY2UsbnVsbD09dC5ub2Rlc1tpXS5zdGF0cyYmKHQubm9kZXNbaV0uc3RhdHM9bmV3IFNHdChvKSksdC5ub2Rlc1tpXS5zdGF0cy5hZGRCeXRlc0FsbG9jYXRpb24ociksbi5hbGxfZW5kX3JlbF9taWNyb3MmJihuLmFsbF9lbmRfcmVsX21pY3Jvcz4wP3Qubm9kZXNbaV0uc3RhdHMuYWRkRXhlY3V0aW9uVGltZShuLmFsbF9zdGFydF9taWNyb3Msbi5hbGxfc3RhcnRfbWljcm9zK24uYWxsX2VuZF9yZWxfbWljcm9zKTpjb25zb2xlLmxvZygiaWdub3JpbmcgbmVnYXRpdmUgcnVudGltZSBmb3IgIitpKSl9KSl9KSl9KSh0aGlzLmJhc2ljR3JhcGgsdCxlKSwoZnVuY3Rpb24gaSh0LGUpe2xldCBuPXt9LGk9e307U2UuZXhwb3J0cy5lYWNoKHQucm9vdC5sZWF2ZXMoKSwoZT0+e2xldCByPXQubm9kZShlKTtudWxsIT1yLmRldmljZSYmKG5bci5kZXZpY2VdPSEwKSxudWxsIT1yLnhsYUNsdXN0ZXImJihpW3IueGxhQ2x1c3Rlcl09ITApfSkpLHQuZGV2aWNlcz1TZS5leHBvcnRzLmtleXMobiksdC54bGFDbHVzdGVycz1TZS5leHBvcnRzLmtleXMoaSksU2UuZXhwb3J0cy5lYWNoKHQuZ2V0Tm9kZU1hcCgpLCgodCxlKT0+e3QuaXNHcm91cE5vZGUmJih0LnN0YXRzPW5ldyBTR3QobnVsbCksdC5kZXZpY2VIaXN0b2dyYW09e30pfSkpLFNlLmV4cG9ydHMuZWFjaCh0LnJvb3QubGVhdmVzKCksKGU9PntsZXQgbj10Lm5vZGUoZSksaT1uO2Zvcig7bnVsbCE9aS5wYXJlbnROb2RlOyl7aWYobnVsbCE9bi5kZXZpY2Upe2xldCB0PWkucGFyZW50Tm9kZS5kZXZpY2VIaXN0b2dyYW07dFtuLmRldmljZV09KHRbbi5kZXZpY2VdfHwwKSsxfWlmKG51bGwhPW4ueGxhQ2x1c3Rlcil7bGV0IHQ9aS5wYXJlbnROb2RlLnhsYUNsdXN0ZXJIaXN0b2dyYW07dFtuLnhsYUNsdXN0ZXJdPSh0W24ueGxhQ2x1c3Rlcl18fDApKzF9bnVsbCE9bi5zdGF0cyYmaS5wYXJlbnROb2RlLnN0YXRzLmNvbWJpbmUobi5zdGF0cyksaT1pLnBhcmVudE5vZGV9fSkpfSkodGhpcy5ncmFwaEhpZXJhcmNoeSkpLHRoaXMuX2J1aWxkUmVuZGVySGllcmFyY2h5KHRoaXMuZ3JhcGhIaWVyYXJjaHkpKX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJncmFwaC1zZWxlY3QiLHRoaXMuX2dyYXBoU2VsZWN0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJkaXNhYmxlLWNsaWNrIix0aGlzLl9kaXNhYmxlQ2xpY2suYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJlbmFibGUtY2xpY2siLHRoaXMuX2VuYWJsZUNsaWNrLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS10b2dnbGUtZXhwYW5kIix0aGlzLl9ub2RlVG9nZ2xlRXhwYW5kLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS1zZWxlY3QiLHRoaXMuX25vZGVTZWxlY3RlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtaGlnaGxpZ2h0Iix0aGlzLl9ub2RlSGlnaGxpZ2h0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJub2RlLXVuaGlnaGxpZ2h0Iix0aGlzLl9ub2RlVW5oaWdobGlnaHRlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtdG9nZ2xlLWV4dHJhY3QiLHRoaXMuX25vZGVUb2dnbGVFeHRyYWN0LmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS10b2dnbGUtc2VyaWVzZ3JvdXAiLHRoaXMuX25vZGVUb2dnbGVTZXJpZXNHcm91cC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImVkZ2Utc2VsZWN0Iix0aGlzLl9lZGdlU2VsZWN0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJhbm5vdGF0aW9uLXNlbGVjdCIsdGhpcy5fbm9kZVNlbGVjdGVkLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYW5ub3RhdGlvbi1oaWdobGlnaHQiLHRoaXMuX25vZGVIaWdobGlnaHRlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImFubm90YXRpb24tdW5oaWdobGlnaHQiLHRoaXMuX25vZGVVbmhpZ2hsaWdodGVkLmJpbmQodGhpcykpfV9idWlsZFJlbmRlckhpZXJhcmNoeSh0KXtpZih0LnJvb3QudHlwZSE9PWpHdC5NRVRBKXJldHVybjtjb25zdCBlPXRoaXMsbj1DR3QoIm5ldyB0Zl9ncmFwaF9yZW5kZXIuSGllcmFyY2h5IiwoKCk9Pntjb25zdCBuPW5ldyB5V3QodCwhIXRoaXMuc3RhdHMsdGhpcy5hdXRvRXh0cmFjdE5vZGVzKTtmdW5jdGlvbiBpKHQpe3JldHVybnttaW5WYWx1ZTp0LmRvbWFpbigpWzBdLG1heFZhbHVlOnQuZG9tYWluKClbMV0sc3RhcnRDb2xvcjp0LnJhbmdlKClbMF0sZW5kQ29sb3I6dC5yYW5nZSgpWzFdfX1yZXR1cm4gbi5lZGdlTGFiZWxGdW5jdGlvbj10aGlzLmVkZ2VMYWJlbEZ1bmN0aW9uLG4uZWRnZVdpZHRoRnVuY3Rpb249dGhpcy5lZGdlV2lkdGhGdW5jdGlvbixlLl9zZXRDb2xvckJ5UGFyYW1zKHtjb21wdXRlX3RpbWU6aShuLmNvbXB1dGVUaW1lU2NhbGUpLG1lbW9yeTppKG4ubWVtb3J5VXNhZ2VTY2FsZSksZGV2aWNlOlNlLmV4cG9ydHMubWFwKG4uZGV2aWNlQ29sb3JNYXAuZG9tYWluKCksKGZ1bmN0aW9uKHQpe3JldHVybntkZXZpY2U6dCxjb2xvcjpuLmRldmljZUNvbG9yTWFwKHQpfX0pKSx4bGFfY2x1c3RlcjpTZS5leHBvcnRzLm1hcChuLnhsYUNsdXN0ZXJDb2xvck1hcC5kb21haW4oKSwoZnVuY3Rpb24odCl7cmV0dXJue3hsYV9jbHVzdGVyOnQsY29sb3I6bi54bGFDbHVzdGVyQ29sb3JNYXAodCl9fSkpfSksbn0pLF9HdC5SRU5ERVJfQlVJTERfSElFUkFSQ0hZKTtlLl9zZXRSZW5kZXJIaWVyYXJjaHkobil9X2dldFZpc2libGUodCl7cmV0dXJuIHQ/dGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0TmVhcmVzdFZpc2libGVBbmNlc3Rvcih0KTp0fWZpdCgpe3RoaXMuJC5zY2VuZS5maXQoKX1nZXRJbWFnZUJsb2IoKXtyZXR1cm4gdGhpcy4kLnNjZW5lLmdldEltYWdlQmxvYigpfV9ncmFwaENoYW5nZWQoKXt0aGlzLmdyYXBoSGllcmFyY2h5JiYodGhpcy5ncmFwaEhpZXJhcmNoeS5hZGRMaXN0ZW5lcih6cXQuVEVNUExBVEVTX1VQREFURUQsKCgpPT57dGhpcy4kLnNjZW5lLm5vZGVDb2xvcnNDaGFuZ2VkKCl9KSksdGhpcy5maXJlKCJncmFwaC1zZWxlY3QiKSl9X2dyYXBoU2VsZWN0ZWQodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdCYmKHRoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLG51bGwpLHRoaXMuc2V0KCJzZWxlY3RlZEVkZ2UiLG51bGwpKSx0aGlzLl9hbGxvd0dyYXBoU2VsZWN0PSEwfV9kaXNhYmxlQ2xpY2sodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdD0hMX1fZW5hYmxlQ2xpY2sodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdD0hMH1fc2VsZWN0ZWROb2RlQ2hhbmdlZCgpe3RoaXMuaGFuZGxlTm9kZVNlbGVjdGVkJiZ0aGlzLmhhbmRsZU5vZGVTZWxlY3RlZCh0aGlzLnNlbGVjdGVkTm9kZSl9X3NlbGVjdGVkRWRnZUNoYW5nZWQoKXt2YXIgdD10aGlzLnNlbGVjdGVkRWRnZTt0aGlzLl9kZXNlbGVjdFByZXZpb3VzRWRnZSgpLHQmJih0aGlzLl9sYXN0U2VsZWN0ZWRFZGdlR3JvdXAuY2xhc3NlZChWV3QuRWRnZS5TRUxFQ1RFRCwhMCksdGhpcy5fdXBkYXRlTWFya2VyT2ZTZWxlY3RlZEVkZ2UodCkpLHRoaXMuaGFuZGxlRWRnZVNlbGVjdGVkJiZ0aGlzLmhhbmRsZUVkZ2VTZWxlY3RlZCh0KX1fbm9kZVNlbGVjdGVkKHQpe3RoaXMuX2FsbG93R3JhcGhTZWxlY3QmJnRoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLHQuZGV0YWlsLm5hbWUpLHRoaXMuX2FsbG93R3JhcGhTZWxlY3Q9ITB9X2VkZ2VTZWxlY3RlZCh0KXt0aGlzLl9hbGxvd0dyYXBoU2VsZWN0JiYodGhpcy5zZXQoIl9sYXN0U2VsZWN0ZWRFZGdlR3JvdXAiLHQuZGV0YWlsLmVkZ2VHcm91cCksdGhpcy5zZXQoInNlbGVjdGVkRWRnZSIsdC5kZXRhaWwuZWRnZURhdGEpKSx0aGlzLl9hbGxvd0dyYXBoU2VsZWN0PSEwfV9ub2RlSGlnaGxpZ2h0ZWQodCl7dGhpcy5zZXQoImhpZ2hsaWdodGVkTm9kZSIsdC5kZXRhaWwubmFtZSl9X25vZGVVbmhpZ2hsaWdodGVkKHQpe3RoaXMuc2V0KCJoaWdobGlnaHRlZE5vZGUiLG51bGwpfV9ub2RlVG9nZ2xlRXhwYW5kKHQpe3RoaXMuX25vZGVTZWxlY3RlZCh0KTt2YXIgZT10LmRldGFpbC5uYW1lLG49dGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0UmVuZGVyTm9kZUJ5TmFtZShlKTtuLm5vZGUudHlwZSE9PWpHdC5PUCYmKHRoaXMucmVuZGVySGllcmFyY2h5LmJ1aWxkU3ViaGllcmFyY2h5KGUpLG4uZXhwYW5kZWQ9IW4uZXhwYW5kZWQsdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLiQuc2NlbmUuc2V0Tm9kZUV4cGFuZGVkKG4pfSksNzUpLFRHdCh7YWN0aW9uSWQ6X0d0Lk5PREVfRVhQQU5TSU9OX1RPR0dMRUQsZXZlbnRMYWJlbDpuLmV4cGFuZGVkPyJleHBhbmRlZCI6ImNvbGxhcHNlZCJ9KSl9X25vZGVUb2dnbGVFeHRyYWN0KHQpe3RoaXMubm9kZVRvZ2dsZUV4dHJhY3QodC5kZXRhaWwubmFtZSl9bm9kZVRvZ2dsZUV4dHJhY3QodCl7Y29uc3QgZT10aGlzLnJlbmRlckhpZXJhcmNoeS5nZXRSZW5kZXJOb2RlQnlOYW1lKHQpO2Uubm9kZS5pbmNsdWRlPWUubm9kZS5pbmNsdWRlPT1HR3QuSU5DTFVERT9HR3QuRVhDTFVERTplLm5vZGUuaW5jbHVkZT09R0d0LkVYQ0xVREV8fHRoaXMucmVuZGVySGllcmFyY2h5LmlzTm9kZUF1eGlsaWFyeShlKT9HR3QuSU5DTFVERTpHR3QuRVhDTFVERSx0aGlzLl9idWlsZFJlbmRlckhpZXJhcmNoeSh0aGlzLmdyYXBoSGllcmFyY2h5KSxUR3Qoe2FjdGlvbklkOl9HdC5OT0RFX0FVWElMSUFSWV9FWFRSQUNUSU9OX0NIQU5HRUQsZXZlbnRMYWJlbDplLm5vZGUuaW5jbHVkZT09PUdHdC5JTkNMVURFPyJBdXhpbGlhcnkgdG8gTWFpbiI6Ik1haW4gdG8gQXV4aWxpYXJ5In0pfV9ub2RlVG9nZ2xlU2VyaWVzR3JvdXAodCl7dGhpcy5ub2RlVG9nZ2xlU2VyaWVzR3JvdXAodC5kZXRhaWwubmFtZSl9bm9kZVRvZ2dsZVNlcmllc0dyb3VwKHQpe3RoaXMuc2V0KCJwcm9ncmVzcyIse3ZhbHVlOjAsbXNnOiIifSk7dmFyIGU9a0d0KEFHdCh0aGlzKSwxMDAsIk5hbWVzcGFjZSBoaWVyYXJjaHkiKTtjb25zdCBuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmhpZXJhcmNoeVBhcmFtcykse3Nlcmllc01hcDp0aGlzLmdyYXBoSGllcmFyY2h5LmJ1aWxkU2VyaWVzR3JvdXBNYXBUb2dnbGVkKHQpfSk7RnF0KHRoaXMuYmFzaWNHcmFwaCxuLGUpLnRoZW4oZnVuY3Rpb24odCl7dGhpcy5zZXQoImdyYXBoSGllcmFyY2h5Iix0KSx0aGlzLl9idWlsZFJlbmRlckhpZXJhcmNoeSh0aGlzLmdyYXBoSGllcmFyY2h5KX0uYmluZCh0aGlzKSl9X2Rlc2VsZWN0UHJldmlvdXNFZGdlKCl7U3UoIi4iK1ZXdC5FZGdlLlNFTEVDVEVEKS5jbGFzc2VkKFZXdC5FZGdlLlNFTEVDVEVELCExKS5lYWNoKCgodCxlKT0+e2lmKHQubGFiZWwpe2NvbnN0IGU9U3UodGhpcykuc2VsZWN0QWxsKCJwYXRoLmVkZ2VsaW5lIik7dC5sYWJlbC5zdGFydE1hcmtlcklkJiZlLnN0eWxlKCJtYXJrZXItc3RhcnQiLGB1cmwoIyR7dC5sYWJlbC5zdGFydE1hcmtlcklkfSlgKSx0LmxhYmVsLmVuZE1hcmtlcklkJiZlLnN0eWxlKCJtYXJrZXItZW5kIixgdXJsKCMke3QubGFiZWwuZW5kTWFya2VySWR9KWApfX0pKX1fdXBkYXRlTWFya2VyT2ZTZWxlY3RlZEVkZ2UodCl7aWYodC5sYWJlbCl7Y29uc3QgZT10LmxhYmVsLnN0YXJ0TWFya2VySWR8fHQubGFiZWwuZW5kTWFya2VySWQ7aWYoZSl7Y29uc3Qgbj1lLnJlcGxhY2UoImRhdGFmbG93LSIsInNlbGVjdGVkLSIpO2xldCBpPXRoaXMuJCQoIiMiK24pO2lmKCFpKXtjb25zdCB0PXRoaXMuJC5zY2VuZS5xdWVyeVNlbGVjdG9yKCIjIitlKTtpPXQuY2xvbmVOb2RlKCEwKSxpLnNldEF0dHJpYnV0ZSgiaWQiLG4pLGkuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQtYXJyb3doZWFkIiksdC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGkpfWNvbnN0IHI9dC5sYWJlbC5zdGFydE1hcmtlcklkPyJtYXJrZXItc3RhcnQiOiJtYXJrZXItZW5kIjt0aGlzLl9sYXN0U2VsZWN0ZWRFZGdlR3JvdXAuc2VsZWN0QWxsKCJwYXRoLmVkZ2VsaW5lIikuc3R5bGUocixgdXJsKCMke259KWApfX19bm90KHQpe3JldHVybiF0fX07UXF0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICAuY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXZlcnRpY2FsOwogICAgICB9CgogICAgICAuYXV0byB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtYXV0bzsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtdmVydGljYWw7CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIHBhcGVyLWJ1dHRvbiB7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3RpdGxlXV0iPgogICAgICAgICAgPGgyPltbdGl0bGVdXTwvaDI+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGYtZ3JhcGgtc2NlbmUKICAgICAgICAgIGlkPSJzY2VuZSIKICAgICAgICAgIGNsYXNzPSJhdXRvIgogICAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0iW1tyZW5kZXJIaWVyYXJjaHldXSIKICAgICAgICAgIGhpZ2hsaWdodGVkLW5vZGU9IltbX2dldFZpc2libGUoaGlnaGxpZ2h0ZWROb2RlKV1dIgogICAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tzZWxlY3RlZE5vZGV9fSIKICAgICAgICAgIHNlbGVjdGVkLWVkZ2U9Int7c2VsZWN0ZWRFZGdlfX0iCiAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICBwcm9ncmVzcz0iW1twcm9ncmVzc11dIgogICAgICAgICAgbm9kZS1jb250ZXh0LW1lbnUtaXRlbXM9Iltbbm9kZUNvbnRleHRNZW51SXRlbXNdXSIKICAgICAgICAgIG5vZGUtbmFtZXMtdG8taGVhbHRoLXBpbGxzPSJbW25vZGVOYW1lc1RvSGVhbHRoUGlsbHNdXSIKICAgICAgICAgIGhlYWx0aC1waWxsLXN0ZXAtaW5kZXg9Int7aGVhbHRoUGlsbFN0ZXBJbmRleH19IgogICAgICAgICAgaGFuZGxlLWVkZ2Utc2VsZWN0ZWQ9IltbaGFuZGxlRWRnZVNlbGVjdGVkXV0iCiAgICAgICAgICB0cmFjZS1pbnB1dHM9IltbdHJhY2VJbnB1dHNdXSIKICAgICAgICA+PC90Zi1ncmFwaC1zY2VuZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMCxvYnNlcnZlcjoiX2dyYXBoQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsRHF0KV0sUXF0LnByb3RvdHlwZSwiZ3JhcGhIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIscUd0KV0sUXF0LnByb3RvdHlwZSwiYmFzaWNHcmFwaCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJzdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJkZXZpY2VzRm9yU3RhdHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sUXF0LnByb3RvdHlwZSwiaGllcmFyY2h5UGFyYW1zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJwcm9ncmVzcyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxRcXQucHJvdG90eXBlLCJ0aXRsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUXF0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJzZWxlY3RlZEVkZ2UiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sUXF0LnByb3RvdHlwZSwiX2xhc3RTZWxlY3RlZEVkZ2VHcm91cCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUXF0LnByb3RvdHlwZSwiaGlnaGxpZ2h0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFFxdC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLHJlYWRPbmx5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFFxdC5wcm90b3R5cGUsImNvbG9yQnlQYXJhbXMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3QscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLHlXdCldLFFxdC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFFxdC5wcm90b3R5cGUsInRyYWNlSW5wdXRzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sUXF0LnByb3RvdHlwZSwiYXV0b0V4dHJhY3ROb2RlcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sUXF0LnByb3RvdHlwZSwibm9kZUNvbnRleHRNZW51SXRlbXMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sUXF0LnByb3RvdHlwZSwiX3JlbmRlckRlcHRoIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sUXF0LnByb3RvdHlwZSwiX2FsbG93R3JhcGhTZWxlY3QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sUXF0LnByb3RvdHlwZSwibm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxRcXQucHJvdG90eXBlLCJoZWFsdGhQaWxsU3RlcEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFFxdC5wcm90b3R5cGUsImVkZ2VXaWR0aEZ1bmN0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFFxdC5wcm90b3R5cGUsImhhbmRsZU5vZGVTZWxlY3RlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJlZGdlTGFiZWxGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJoYW5kbGVFZGdlU2VsZWN0ZWQiLHZvaWQgMCksdChbYSgiYXV0b0V4dHJhY3ROb2RlcyIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sUXF0LnByb3RvdHlwZSwiX2F1dG9FeHRyYWN0Tm9kZXNDaGFuZ2VkIixudWxsKSx0KFthKCJncmFwaEhpZXJhcmNoeSIsImVkZ2VXaWR0aEZ1bmN0aW9uIiwiaGFuZGxlTm9kZVNlbGVjdGVkIiwiZWRnZUxhYmVsRnVuY3Rpb24iLCJoYW5kbGVFZGdlU2VsZWN0ZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFFxdC5wcm90b3R5cGUsIl9idWlsZE5ld1JlbmRlckhpZXJhcmNoeSIsbnVsbCksdChbYSgic3RhdHMiLCJkZXZpY2VzRm9yU3RhdHMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFFxdC5wcm90b3R5cGUsIl9zdGF0c0NoYW5nZWQiLG51bGwpLHQoW2EoInNlbGVjdGVkTm9kZSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sUXF0LnByb3RvdHlwZSwiX3NlbGVjdGVkTm9kZUNoYW5nZWQiLG51bGwpLHQoW2EoInNlbGVjdGVkRWRnZSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sUXF0LnByb3RvdHlwZSwiX3NlbGVjdGVkRWRnZUNoYW5nZWQiLG51bGwpLFFxdD10KFtpKCJ0Zi1ncmFwaCIpXSxRcXQpO2NvbnN0IHRZdD17TUFYX05PREVfQ09VTlQ6MWU0LE1BWF9FREdFX0NPVU5UOjFlNH07bGV0IGVZdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuaGllcmFyY2h5UGFyYW1zPUhxdCx0aGlzLmFsbFN0ZXBzTW9kZUVuYWJsZWQ9ITEsdGhpcy5zcGVjaWZpY0hlYWx0aFBpbGxTdGVwPTAsdGhpcy5jb21wYXROb2RlVGl0bGU9IlRQVSBDb21wYXRpYmlsaXR5In1maXQoKXt0aGlzLiQuZ3JhcGguZml0KCl9ZG93bmxvYWRBc0ltYWdlKHQpe3JldHVybiBuKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT15aWVsZCB0aGlzLiQuZ3JhcGguZ2V0SW1hZ2VCbG9iKCksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7bi5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoZSksbi5kb3dubG9hZD10LG4uY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKG4uaHJlZil9KSl9X2lzTm90Q29tcGxldGUodCl7cmV0dXJuIHQudmFsdWU8MTAwfV9nZXRDb250YWluZXJDbGFzcyh0KXt2YXIgZT0iY29udGFpbmVyIjtyZXR1cm4gdC5lcnJvciYmKGUrPSIgZXJyb3IiKSx0aGlzLl9pc05vdENvbXBsZXRlKHQpJiYoZSs9IiBsb2FkaW5nIiksZX1fb25Ob2RlSW5jbHVzaW9uVG9nZ2xlZCh0KXt0aGlzLiQuZ3JhcGgubm9kZVRvZ2dsZUV4dHJhY3QodC5kZXRhaWwubmFtZSl9X29uTm9kZVNlcmllc0dyb3VwVG9nZ2xlZCh0KXt0aGlzLiQuZ3JhcGgubm9kZVRvZ2dsZVNlcmllc0dyb3VwKHQuZGV0YWlsLm5hbWUpfV91cGRhdGVOb2RlSW5jbHVkZSgpe2NvbnN0IHQ9dGhpcy5yZW5kZXJIaWVyYXJjaHk/dGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0Tm9kZUJ5TmFtZSh0aGlzLnNlbGVjdGVkTm9kZSk6bnVsbDt0aGlzLl9zZWxlY3RlZE5vZGVJbmNsdWRlPXQ/dC5pbmNsdWRlOkdHdC5VTlNQRUNJRklFRH1fc2xpbUdyYXBoQ2hhbmdlZCgpe2lmKCF0aGlzLmdyYXBoKXJldHVybjtjb25zdHtNQVhfTk9ERV9DT1VOVDp0LE1BWF9FREdFX0NPVU5UOmV9PXRZdDtPYmplY3Qua2V5cyh0aGlzLmdyYXBoLm5vZGVzKS5sZW5ndGg+dCYmdGhpcy5ncmFwaC5lZGdlcy5sZW5ndGg+ZSYmdGhpcy5jb2xvckJ5PT09YXF0LlNUUlVDVFVSRSYmKHRoaXMuY29sb3JCeT1hcXQuTk9ORSl9X2Vuc3VyZVRlbXBsYXRlcygpe3RoaXMuZ3JhcGhIaWVyYXJjaHkmJnRoaXMuY29sb3JCeT09PWFxdC5TVFJVQ1RVUkUmJih0aGlzLmdyYXBoSGllcmFyY2h5LmdldFRlbXBsYXRlSW5kZXgoKXx8dGhpcy5ncmFwaEhpZXJhcmNoeS51cGRhdGVUZW1wbGF0ZXMoKSl9fTtlWXQudGVtcGxhdGU9X2VgCiAgICA8c3R5bGU+CiAgICAgIDo6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC9kZWVwLyAuY2xvc2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgbGVmdDogMTVweDsKICAgICAgICBib3R0b206IDE1cHg7CiAgICAgIH0KCiAgICAgIC5jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuY29udGFpbmVyLmxvYWRpbmcgewogICAgICAgIGN1cnNvcjogcHJvZ3Jlc3M7CiAgICAgICAgb3BhY2l0eTogMC4xOwogICAgICB9CgogICAgICAuY29udGFpbmVyLmxvYWRpbmcuZXJyb3IgewogICAgICAgIGN1cnNvcjogYXV0bzsKICAgICAgfQoKICAgICAgI2luZm8gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogNXB4OwogICAgICAgIHRvcDogNXB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBtYXgtd2lkdGg6IDM4MHB4OwogICAgICAgIG1pbi13aWR0aDogMzIwcHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOwogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMmRwOwogICAgICB9CgogICAgICAjbWFpbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAjcHJvZ3Jlc3MtYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0MHB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAjcHJvZ3Jlc3MtbXNnIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdpZHRoOiA0MDBweDsKICAgICAgfQoKICAgICAgcGFwZXItcHJvZ3Jlc3MgewogICAgICAgIHdpZHRoOiA0MDBweDsKICAgICAgICAtLXBhcGVyLXByb2dyZXNzLWhlaWdodDogNnB4OwogICAgICAgIC0tcGFwZXItcHJvZ3Jlc3MtYWN0aXZlLWNvbG9yOiAjZjM5MTNlOwogICAgICB9CgogICAgICAuY29udGV4dC1tZW51IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWluLXdpZHRoOiAxNTBweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDRkNGQ0OwogICAgICB9CgogICAgICAvZGVlcC8gLmNvbnRleHQtbWVudSB1bCB7CiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgL2RlZXAvIC5jb250ZXh0LW1lbnUgdWwgbGkgewogICAgICAgIHBhZGRpbmc6IDRweCAxNnB4OwogICAgICB9CgogICAgICAvZGVlcC8gLmNvbnRleHQtbWVudSB1bCBsaTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YzOTEzZTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzTm90Q29tcGxldGUocHJvZ3Jlc3MpXV0iPgogICAgICA8ZGl2IGlkPSJwcm9ncmVzcy1iYXIiPgogICAgICAgIDxkaXYgaWQ9InByb2dyZXNzLW1zZyI+W1twcm9ncmVzcy5tc2ddXTwvZGl2PgogICAgICAgIDxwYXBlci1wcm9ncmVzcyB2YWx1ZT0iW1twcm9ncmVzcy52YWx1ZV1dIj48L3BhcGVyLXByb2dyZXNzPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CiAgICA8ZGl2IGNsYXNzJD0iW1tfZ2V0Q29udGFpbmVyQ2xhc3MocHJvZ3Jlc3MpXV0iPgogICAgICA8ZGl2IGlkPSJtYWluIj4KICAgICAgICA8dGYtZ3JhcGgKICAgICAgICAgIGlkPSJncmFwaCIKICAgICAgICAgIGdyYXBoLWhpZXJhcmNoeT0ie3tncmFwaEhpZXJhcmNoeX19IgogICAgICAgICAgYmFzaWMtZ3JhcGg9IltbZ3JhcGhdXSIKICAgICAgICAgIGhpZXJhcmNoeS1wYXJhbXM9IltbaGllcmFyY2h5UGFyYW1zXV0iCiAgICAgICAgICByZW5kZXItaGllcmFyY2h5PSJ7e3JlbmRlckhpZXJhcmNoeX19IgogICAgICAgICAgZGV2aWNlcy1mb3Itc3RhdHM9IltbZGV2aWNlc0ZvclN0YXRzXV0iCiAgICAgICAgICBzdGF0cz0iW1tzdGF0c11dIgogICAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tzZWxlY3RlZE5vZGV9fSIKICAgICAgICAgIGhpZ2hsaWdodGVkLW5vZGU9Int7X2hpZ2hsaWdodGVkTm9kZX19IgogICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgY29sb3ItYnktcGFyYW1zPSJ7e2NvbG9yQnlQYXJhbXN9fSIKICAgICAgICAgIHByb2dyZXNzPSJ7e3Byb2dyZXNzfX0iCiAgICAgICAgICBlZGdlLWxhYmVsLWZ1bmN0aW9uPSJbW2VkZ2VMYWJlbEZ1bmN0aW9uXV0iCiAgICAgICAgICBlZGdlLXdpZHRoLWZ1bmN0aW9uPSJbW2VkZ2VXaWR0aEZ1bmN0aW9uXV0iCiAgICAgICAgICBub2RlLW5hbWVzLXRvLWhlYWx0aC1waWxscz0iW1tub2RlTmFtZXNUb0hlYWx0aFBpbGxzXV0iCiAgICAgICAgICBoZWFsdGgtcGlsbC1zdGVwLWluZGV4PSJbW2hlYWx0aFBpbGxTdGVwSW5kZXhdXSIKICAgICAgICAgIGhhbmRsZS1ub2RlLXNlbGVjdGVkPSJbW2hhbmRsZU5vZGVTZWxlY3RlZF1dIgogICAgICAgICAgaGFuZGxlLWVkZ2Utc2VsZWN0ZWQ9IltbaGFuZGxlRWRnZVNlbGVjdGVkXV0iCiAgICAgICAgICB0cmFjZS1pbnB1dHM9IltbdHJhY2VJbnB1dHNdXSIKICAgICAgICAgIGF1dG8tZXh0cmFjdC1ub2Rlcz0iW1thdXRvRXh0cmFjdE5vZGVzXV0iCiAgICAgICAgPjwvdGYtZ3JhcGg+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGlkPSJpbmZvIj4KICAgICAgICA8dGYtZ3JhcGgtaW5mbwogICAgICAgICAgaWQ9ImdyYXBoLWluZm8iCiAgICAgICAgICB0aXRsZT0ic2VsZWN0ZWQiCiAgICAgICAgICBncmFwaC1oaWVyYXJjaHk9IltbZ3JhcGhIaWVyYXJjaHldXSIKICAgICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgICBncmFwaD0iW1tncmFwaF1dIgogICAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tzZWxlY3RlZE5vZGV9fSIKICAgICAgICAgIHNlbGVjdGVkLW5vZGUtaW5jbHVkZT0ie3tfc2VsZWN0ZWROb2RlSW5jbHVkZX19IgogICAgICAgICAgaGlnaGxpZ2h0ZWQtbm9kZT0ie3tfaGlnaGxpZ2h0ZWROb2RlfX0iCiAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICBjb2xvci1ieS1wYXJhbXM9IltbY29sb3JCeVBhcmFtc11dIgogICAgICAgICAgZGVidWdnZXItZGF0YS1lbmFibGVkPSJbW2RlYnVnZ2VyRGF0YUVuYWJsZWRdXSIKICAgICAgICAgIGFyZS1oZWFsdGgtcGlsbHMtbG9hZGluZz0iW1thcmVIZWFsdGhQaWxsc0xvYWRpbmddXSIKICAgICAgICAgIGRlYnVnZ2VyLW51bWVyaWMtYWxlcnRzPSJbW2RlYnVnZ2VyTnVtZXJpY0FsZXJ0c11dIgogICAgICAgICAgbm9kZS1uYW1lcy10by1oZWFsdGgtcGlsbHM9Iltbbm9kZU5hbWVzVG9IZWFsdGhQaWxsc11dIgogICAgICAgICAgYWxsLXN0ZXBzLW1vZGUtZW5hYmxlZD0ie3thbGxTdGVwc01vZGVFbmFibGVkfX0iCiAgICAgICAgICBzcGVjaWZpYy1oZWFsdGgtcGlsbC1zdGVwPSJ7e3NwZWNpZmljSGVhbHRoUGlsbFN0ZXB9fSIKICAgICAgICAgIGhlYWx0aC1waWxsLXN0ZXAtaW5kZXg9Int7aGVhbHRoUGlsbFN0ZXBJbmRleH19IgogICAgICAgICAgY29tcGF0LW5vZGUtdGl0bGU9IltbY29tcGF0Tm9kZVRpdGxlXV0iCiAgICAgICAgICBvbi1ub2RlLXRvZ2dsZS1pbmNsdXNpb249Il9vbk5vZGVJbmNsdXNpb25Ub2dnbGVkIgogICAgICAgICAgb24tbm9kZS10b2dnbGUtc2VyaWVzZ3JvdXA9Il9vbk5vZGVTZXJpZXNHcm91cFRvZ2dsZWQiCiAgICAgICAgPjwvdGYtZ3JhcGgtaW5mbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLERxdCldLGVZdC5wcm90b3R5cGUsImdyYXBoSGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHFHdCldLGVZdC5wcm90b3R5cGUsImdyYXBoIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGVZdC5wcm90b3R5cGUsImhpZXJhcmNoeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJzdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJwcm9ncmVzcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGVZdC5wcm90b3R5cGUsInRyYWNlSW5wdXRzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZVl0LnByb3RvdHlwZSwiYXV0b0V4dHJhY3ROb2RlcyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZVl0LnByb3RvdHlwZSwiY29sb3JCeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZVl0LnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIseVd0KV0sZVl0LnByb3RvdHlwZSwicmVuZGVySGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZVl0LnByb3RvdHlwZSwiZGVidWdnZXJEYXRhRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGVZdC5wcm90b3R5cGUsImFyZUhlYWx0aFBpbGxzTG9hZGluZyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLGVZdC5wcm90b3R5cGUsImRlYnVnZ2VyTnVtZXJpY0FsZXJ0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGVZdC5wcm90b3R5cGUsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLGVZdC5wcm90b3R5cGUsInNwZWNpZmljSGVhbHRoUGlsbFN0ZXAiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sZVl0LnByb3RvdHlwZSwiaGVhbHRoUGlsbFN0ZXBJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZVl0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGVZdC5wcm90b3R5cGUsImNvbXBhdE5vZGVUaXRsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJlZGdlV2lkdGhGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxlWXQucHJvdG90eXBlLCJfc2VsZWN0ZWROb2RlSW5jbHVkZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxlWXQucHJvdG90eXBlLCJfaGlnaGxpZ2h0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGVZdC5wcm90b3R5cGUsImhhbmRsZU5vZGVTZWxlY3RlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJlZGdlTGFiZWxGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJoYW5kbGVFZGdlU2VsZWN0ZWQiLHZvaWQgMCksdChbYSgic2VsZWN0ZWROb2RlIiwicmVuZGVySGllcmFyY2h5IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxlWXQucHJvdG90eXBlLCJfdXBkYXRlTm9kZUluY2x1ZGUiLG51bGwpLHQoW2EoImdyYXBoIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxlWXQucHJvdG90eXBlLCJfc2xpbUdyYXBoQ2hhbmdlZCIsbnVsbCksdChbYSgiY29sb3JCeSIsImdyYXBoSGllcmFyY2h5IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxlWXQucHJvdG90eXBlLCJfZW5zdXJlVGVtcGxhdGVzIixudWxsKSxlWXQ9dChbaSgidGYtZ3JhcGgtYm9hcmQiKV0sZVl0KTtsZXQgbll0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fcmF3UmVnZXhJbnB1dD0iIix0aGlzLl9wcmV2aW91c1JlZ2V4SW5wdXQ9IiIsdGhpcy5fc2VhcmNoVGltZW91dERlbGF5PTE1MCx0aGlzLl9tYXhSZWdleFJlc3VsdHM9NDJ9Z2V0IF9yZWdleElucHV0KCl7cmV0dXJuIHRoaXMuX3Jhd1JlZ2V4SW5wdXQudHJpbSgpfV9yZWdleElucHV0Q2hhbmdlZCgpe3RoaXMuX3JlcXVlc3RTZWFyY2goKX1fY2xlYXJTZWFyY2hSZXN1bHRzKCl7dGhpcy5zZXQoIl9yZWdleE1hdGNoZXMiLFtdKX1fcmVxdWVzdFNlYXJjaCgpe3RoaXMuX3NlYXJjaFBlbmRpbmd8fCh0aGlzLl9yZWdleElucHV0IT09dGhpcy5fcHJldmlvdXNSZWdleElucHV0Pyh0aGlzLl9zZWFyY2hQZW5kaW5nPSEwLHRoaXMuX2V4ZWN1dGVTZWFyY2goKSx0aGlzLmFzeW5jKCgoKT0+e3RoaXMuX3NlYXJjaFBlbmRpbmc9ITEsdGhpcy5fcmVxdWVzdFNlYXJjaCgpfSksdGhpcy5fc2VhcmNoVGltZW91dERlbGF5KSk6dGhpcy5fc2VhcmNoUGVuZGluZz0hMSl9X2V4ZWN1dGVTZWFyY2goKXtpZih0aGlzLl9wcmV2aW91c1JlZ2V4SW5wdXQ9dGhpcy5fcmVnZXhJbnB1dCwhdGhpcy5fcmVnZXhJbnB1dClyZXR1cm4gdm9pZCB0aGlzLl9jbGVhclNlYXJjaFJlc3VsdHMoKTt0cnl7dmFyIHQ9bmV3IFJlZ0V4cCh0aGlzLl9yZWdleElucHV0KX1jYXRjaCh0KXtyZXR1cm4gdm9pZCB0aGlzLl9jbGVhclNlYXJjaFJlc3VsdHMoKX1jb25zdCBlPVtdLG49dGhpcy5yZW5kZXJIaWVyYXJjaHkuaGllcmFyY2h5LmdldE5vZGVNYXAoKTtTZS5leHBvcnRzLmVhY2gobiwoKG4saSk9PntpZihlLmxlbmd0aD49dGhpcy5fbWF4UmVnZXhSZXN1bHRzKXJldHVybiExO3QudGVzdChpKSYmZS5wdXNoKGkpfSkpLHRoaXMuc2V0KCJfcmVnZXhNYXRjaGVzIixlKX1fbWF0Y2hDbGlja2VkKHQpe3RoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLHQubW9kZWwuaXRlbSksVEd0KHthY3Rpb25JZDpfR3QuTk9ERV9TRUFSQ0hfUkVTVUxUX0ZPQ1VTRUR9KX19O25ZdC50ZW1wbGF0ZT1fZWAKICAgIDxkaXYgaWQ9InNlYXJjaC1jb250YWluZXIiPgogICAgICA8cGFwZXItaW5wdXQKICAgICAgICBpZD0icnVucy1yZWdleCIKICAgICAgICBsYWJlbD0iU2VhcmNoIG5vZGVzIChyZWdleCkiCiAgICAgICAgdmFsdWU9Int7X3Jhd1JlZ2V4SW5wdXR9fSIKICAgICAgPgogICAgICA8L3BhcGVyLWlucHV0PgogICAgICA8ZGl2IGlkPSJzZWFyY2gtcmVzdWx0cy1hbmNob3IiPgogICAgICAgIDxkaXYgaWQ9InNlYXJjaC1yZXN1bHRzIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX3JlZ2V4TWF0Y2hlc11dIj4KICAgICAgICAgICAgPGRpdiBpZD0ic2VhcmNoLW1hdGNoIiBvbi1jbGljaz0iX21hdGNoQ2xpY2tlZCI+W1tpdGVtXV08L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgICNzZWFyY2gtY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgfQoKICAgICAgI3J1bnMtcmVnZXggewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAjc2VhcmNoLXJlc3VsdHMtYW5jaG9yIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgICNzZWFyY2gtcmVzdWx0cyB7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAjc2VhcmNoLW1hdGNoIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICBwYWRkaW5nOiAzcHg7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgZGlyZWN0aW9uOiBydGw7CiAgICAgIH0KCiAgICAgICNzZWFyY2gtbWF0Y2g6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRiLW9yYW5nZS13ZWFrKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxuWXQucHJvdG90eXBlLCJyZW5kZXJIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLG5ZdC5wcm90b3R5cGUsInNlbGVjdGVkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxuWXQucHJvdG90eXBlLCJfcmF3UmVnZXhJbnB1dCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxuWXQucHJvdG90eXBlLCJfcHJldmlvdXNSZWdleElucHV0Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLG5ZdC5wcm90b3R5cGUsIl9zZWFyY2hUaW1lb3V0RGVsYXkiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxuWXQucHJvdG90eXBlLCJfc2VhcmNoUGVuZGluZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxuWXQucHJvdG90eXBlLCJfbWF4UmVnZXhSZXN1bHRzIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxuWXQucHJvdG90eXBlLCJfcmVnZXhNYXRjaGVzIix2b2lkIDApLHQoW3MoInJlbmRlckhpZXJhcmNoeSIsIl9yYXdSZWdleElucHV0IiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sbll0LnByb3RvdHlwZSwiX3JlZ2V4SW5wdXQiLG51bGwpLHQoW2EoIl9yZWdleElucHV0IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxuWXQucHJvdG90eXBlLCJfcmVnZXhJbnB1dENoYW5nZWQiLG51bGwpLG5ZdD10KFtpKCJ0Zi1ncmFwaC1ub2RlLXNlYXJjaCIpXSxuWXQpO2NvbnN0IGlZdD0vZGV2aWNlOihbXjpdKzpbMC05XSspJC8scll0PVt7cmVnZXg6aVl0fV0sb1l0PVtdLGFZdD1uZXcgU2V0KFthcXQuQ09NUFVURV9USU1FLGFxdC5NRU1PUlldKTtsZXQgc1l0PWNsYXNzIGV4dGVuZHMoZXIoaWwoeWUpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuQ29sb3JCeT1hcXQsdGhpcy5zdGF0cz1udWxsLHRoaXMuZGV2aWNlc0ZvclN0YXRzPW51bGwsdGhpcy5jb2xvckJ5PWFxdC5TVFJVQ1RVUkUsdGhpcy5kYXRhc2V0cz1bXSx0aGlzLl9zZWxlY3RlZFJ1bkluZGV4PTAsdGhpcy50cmFjZUlucHV0cz0hMSx0aGlzLmF1dG9FeHRyYWN0Tm9kZXM9ITAsdGhpcy5fc2VsZWN0ZWRUYWdJbmRleD0wLHRoaXMuX3NlbGVjdGVkR3JhcGhUeXBlPXlHdC5PUF9HUkFQSCx0aGlzLnNob3dTZXNzaW9uUnVuc0Ryb3Bkb3duPSEwLHRoaXMuc2hvd1VwbG9hZEJ1dHRvbj0hMCx0aGlzLl9sZWdlbmRPcGVuZWQ9ITAsdGhpcy5fZG93bmxvYWRGaWxlbmFtZT0iZ3JhcGgucG5nIn1fb25HcmFwaFR5cGVDaGFuZ2VkQnlVc2VyR2VzdHVyZSgpe1RHdCh7YWN0aW9uSWQ6X0d0LkdSQVBIX1RZUEVfQ0hBTkdFRCxldmVudExhYmVsOnRoaXMuX3NlbGVjdGVkR3JhcGhUeXBlfSl9X29uQ29sb3JCeUNoYW5nZWRCeVVzZXJHZXN0dXJlKCl7VEd0KHthY3Rpb25JZDpfR3QuTk9ERV9DT0xPUl9NT0RFX0NIQU5HRUQsZXZlbnRMYWJlbDp0aGlzLmNvbG9yQnl9KX1fb25UcmFjZUlucHV0c0NoYW5nZWRCeVVzZXJHZXN0dXJlKCl7VEd0KHthY3Rpb25JZDpfR3QuVFJBQ0VfSU5QVVRfTU9ERV9UT0dHTEVEfSl9X3hsYUNsdXN0ZXJzUHJvdmlkZWQodCl7cmV0dXJuIHQmJnQuaGllcmFyY2h5JiZ0LmhpZXJhcmNoeS54bGFDbHVzdGVycy5sZW5ndGg+MH1fc3RhdHNDaGFuZ2VkKHQpe2lmKG51bGwhPXQpe3ZhciBlPXt9O1NlLmV4cG9ydHMuZWFjaCh0LmRldl9zdGF0cywoZnVuY3Rpb24odCl7dmFyIG49U2UuZXhwb3J0cy5zb21lKHJZdCwoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVnZXgudGVzdCh0LmRldmljZSl9KSksaT1TZS5leHBvcnRzLnNvbWUob1l0LChmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWdleC50ZXN0KHQuZGV2aWNlKX0pKTtuJiYhaSYmKGVbdC5kZXZpY2VdPSEwKX0pKSx0aGlzLnNldCgiZGV2aWNlc0ZvclN0YXRzIixlKX19Z2V0IF9jdXJyZW50RGV2aWNlcygpe3ZhciB0PXRoaXMuZGV2aWNlc0ZvclN0YXRzO2NvbnN0IGU9dGhpcy5zdGF0cyxuPShlP2UuZGV2X3N0YXRzOltdKS5tYXAoKHQ9PnQuZGV2aWNlKSkuZmlsdGVyKCh0PT5yWXQuc29tZSgoZT0+ZS5yZWdleC50ZXN0KHQpKSkpKSxpPXpHdChuKTtpZigxPT1pLmxlbmd0aCl7Y29uc3QgdD1pWzBdLm1hdGNoKGlZdCk7dCYmKGlbMF09dFsxXSl9cmV0dXJuIG4ubWFwKCgoZSxuKT0+e2xldCByPW51bGw7cmV0dXJuIG9ZdC5mb3JFYWNoKCh0PT57dC5yZWdleC50ZXN0KGUpJiYocj10Lm1zZyl9KSkse2RldmljZTplLHN1ZmZpeDppW25dLHVzZWQ6dFtlXSxpZ25vcmVkTXNnOnJ9fSkpfV9kZXZpY2VDaGVja2JveENsaWNrZWQodCl7Y29uc3QgZT10LnRhcmdldCxuPU9iamVjdC5hc3NpZ24oe30sdGhpcy5kZXZpY2VzRm9yU3RhdHMpLGk9ZS52YWx1ZTtlLmNoZWNrZWQ/bltpXT0hMDpkZWxldGUgbltpXSx0aGlzLnNldCgiZGV2aWNlc0ZvclN0YXRzIixuKX1fbnVtVGFncyh0LGUpe3JldHVybiB0aGlzLl9nZXRUYWdzKHQsZSkubGVuZ3RofV9nZXRUYWdzKHQsZSl7cmV0dXJuIHQmJnRbZV0/dFtlXS50YWdzOltdfV9maXQoKXt0aGlzLmZpcmUoImZpdC10YXAiKX1faXNHcmFkaWVudENvbG9yaW5nKHQsZSl7cmV0dXJuIGFZdC5oYXMoZSkmJm51bGwhPXR9X2VxdWFscyh0LGUpe3JldHVybiB0PT09ZX1nZXQgX2N1cnJlbnREZXZpY2VQYXJhbXMoKXtjb25zdCB0PXRoaXMuY29sb3JCeVBhcmFtcy5kZXZpY2UuZmlsdGVyKCh0PT5yWXQuc29tZSgoZT0+ZS5yZWdleC50ZXN0KHQuZGV2aWNlKSkpKSksZT16R3QodC5tYXAoKHQ9PnQuZGV2aWNlKSkpO2lmKDE9PWUubGVuZ3RoKXt2YXIgbj1lWzBdLm1hdGNoKGlZdCk7biYmKGVbMF09blsxXSl9cmV0dXJuIHQubWFwKCgodCxuKT0+KHtkZXZpY2U6ZVtuXSxjb2xvcjp0LmNvbG9yfSkpKX1nZXQgX2N1cnJlbnRYbGFDbHVzdGVyUGFyYW1zKCl7cmV0dXJuIHRoaXMuY29sb3JCeVBhcmFtcy54bGFfY2x1c3Rlcn1nZXQgX2N1cnJlbnRHcmFkaWVudFBhcmFtcygpe3ZhciB0PXRoaXMuY29sb3JCeVBhcmFtcyxlPXRoaXMuY29sb3JCeTtpZighdGhpcy5faXNHcmFkaWVudENvbG9yaW5nKHRoaXMuc3RhdHMsZSkpcmV0dXJuO2NvbnN0IG49dFtlXTtsZXQgaT1uLm1pblZhbHVlLHI9bi5tYXhWYWx1ZTtyZXR1cm4gZT09PWFxdC5NRU1PUlk/KGk9Ukd0KGksTkd0KSxyPVJHdChyLE5HdCkpOmU9PT1hcXQuQ09NUFVURV9USU1FJiYoaT1SR3QoaSxJR3QpLHI9Ukd0KHIsSUd0KSkse21pblZhbHVlOmksbWF4VmFsdWU6cixzdGFydENvbG9yOm4uc3RhcnRDb2xvcixlbmRDb2xvcjpuLmVuZENvbG9yfX1kb3dubG9hZCgpe3RoaXMuZmlyZSgiZG93bmxvYWQtaW1hZ2UtcmVxdWVzdGVkIix0aGlzLl9kb3dubG9hZEZpbGVuYW1lKX1fdXBkYXRlRmlsZUlucHV0KHQpe2NvbnN0IGU9dC50YXJnZXQuZmlsZXNbMF07aWYoIWUpcmV0dXJuO2xldCBuPWUubmFtZTtjb25zdCBpPW4ubGFzdEluZGV4T2YoIi4iKTtpPj0wJiYobj1uLnN1YnN0cmluZygwLGkpKTtjb25zdCByPW4ubGFzdEluZGV4T2YoIi8iKTtyPj0wJiYobj1uLnN1YnN0cmluZyhyKzEpKSx0aGlzLl9zZXREb3dubG9hZEZpbGVuYW1lKG4pLHRoaXMuc2V0KCJzZWxlY3RlZEZpbGUiLHQpLFRHdCh7YWN0aW9uSWQ6X0d0LlVQTE9BREVEX0dSQVBIX0ZST01fRklMRVNZU1RFTX0pfV9kYXRhc2V0c0NoYW5nZWQodCxlKXt2YXIgbjtudWxsIT1lJiYodGhpcy5fc2VsZWN0ZWRSdW5JbmRleD0wKSx0aGlzLl9zZXREb3dubG9hZEZpbGVuYW1lKG51bGw9PT0obj10aGlzLmRhdGFzZXRzW3RoaXMuX3NlbGVjdGVkUnVuSW5kZXhdKXx8dm9pZCAwPT09bj92b2lkIDA6bi5uYW1lKX1fY29tcHV0ZVNlbGVjdGlvbih0LGUsbixpKXtyZXR1cm4gdFtlXSYmdFtlXS50YWdzW25dP3tydW46dFtlXS5uYW1lLHRhZzp0W2VdLnRhZ3Nbbl0udGFnLHR5cGU6aX06bnVsbH1fc2VsZWN0ZWRSdW5JbmRleENoYW5nZWQodCl7dmFyIGU7dGhpcy5kYXRhc2V0cyYmKHRoaXMuY29sb3JCeT1hcXQuU1RSVUNUVVJFLHRoaXMuX3NlbGVjdGVkVGFnSW5kZXg9MCx0aGlzLl9zZWxlY3RlZEdyYXBoVHlwZT10aGlzLl9nZXREZWZhdWx0U2VsZWN0aW9uVHlwZSgpLHRoaXMudHJhY2VJbnB1dHM9ITEsdGhpcy5fc2V0RG93bmxvYWRGaWxlbmFtZShudWxsPT09KGU9dGhpcy5kYXRhc2V0c1t0XSl8fHZvaWQgMD09PWU/dm9pZCAwOmUubmFtZSkpfV9zZWxlY3RlZFRhZ0luZGV4Q2hhbmdlZCgpe3RoaXMuX3NlbGVjdGVkR3JhcGhUeXBlPXRoaXMuX2dldERlZmF1bHRTZWxlY3Rpb25UeXBlKCl9X2dldERlZmF1bHRTZWxlY3Rpb25UeXBlKCl7Y29uc3R7ZGF0YXNldHM6dCxfc2VsZWN0ZWRSdW5JbmRleDplLF9zZWxlY3RlZFRhZ0luZGV4Om59PXRoaXM7aWYoIXR8fCF0W2VdfHwhdFtlXS50YWdzW25dfHx0W2VdLnRhZ3Nbbl0ub3BHcmFwaClyZXR1cm4geUd0Lk9QX0dSQVBIO2NvbnN0IGk9dFtlXTtyZXR1cm4gaS50YWdzW25dLnByb2ZpbGU/eUd0LlBST0ZJTEU6aS50YWdzW25dLmNvbmNlcHR1YWxHcmFwaD95R3QuQ09OQ0VQVFVBTF9HUkFQSDp5R3QuT1BfR1JBUEh9X2dldEZpbGUoKXt0aGlzLiQkKCIjZmlsZSIpLmNsaWNrKCl9X3NldERvd25sb2FkRmlsZW5hbWUodCl7dGhpcy5fZG93bmxvYWRGaWxlbmFtZT0odHx8ImdyYXBoIikrIi5wbmcifV9zdGF0c05vdE51bGwodCl7cmV0dXJuIG51bGwhPT10fV90b2dnbGVMZWdlbmRPcGVuKCl7dGhpcy5zZXQoIl9sZWdlbmRPcGVuZWQiLCF0aGlzLl9sZWdlbmRPcGVuZWQpfV9nZXRUb2dnbGVMZWdlbmRJY29uKHQpe3JldHVybiB0PyJleHBhbmQtbW9yZSI6ImV4cGFuZC1sZXNzIn1fZ2V0U2VsZWN0aW9uT3BHcmFwaERpc2FibGVkKHQsZSxuKXtyZXR1cm4hdFtlXXx8IXRbZV0udGFnc1tuXXx8IXRbZV0udGFnc1tuXS5vcEdyYXBofV9nZXRTZWxlY3Rpb25Qcm9maWxlRGlzYWJsZWQodCxlLG4pe3JldHVybiF0W2VdfHwhdFtlXS50YWdzW25dfHwhdFtlXS50YWdzW25dLnByb2ZpbGV9X2dldFNlbGVjdGlvbkNvbmNlcHR1YWxHcmFwaERpc2FibGVkKHQsZSxuKXtyZXR1cm4hdFtlXXx8IXRbZV0udGFnc1tuXXx8IXRbZV0udGFnc1tuXS5jb25jZXB0dWFsR3JhcGh9fTtzWXQudGVtcGxhdGU9X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogIzU1NTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIC0tdGItZ3JhcGgtY29udHJvbHMtdGl0bGUtY29sb3I6ICMwMDA7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy1sZWdlbmQtdGV4dC1jb2xvcjogIzAwMDsKICAgICAgICAtLXRiLWdyYXBoLWNvbnRyb2xzLXRleHQtY29sb3I6ICM1NTU7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy10aXRsZS1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy1zdWJ0aXRsZS1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItc2hhcmVkLWlucHV0LXN0eWxlXy1fZm9udC1zaXplOiAxNHB4OwogICAgICAgIC0tcGFwZXItZm9udC1zdWJoZWFkXy1fZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICA6aG9zdCguZGFyay1tb2RlKSB7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy10aXRsZS1jb2xvcjogI2ZmZjsKICAgICAgICAtLXRiLWdyYXBoLWNvbnRyb2xzLWxlZ2VuZC10ZXh0LWNvbG9yOiAjZjNmM2YzOwogICAgICAgIC0tdGItZ3JhcGgtY29udHJvbHMtdGV4dC1jb2xvcjogI2VlZTsKICAgICAgfQoKICAgICAgcGFwZXItZHJvcGRvd24tbWVudSB7CiAgICAgICAgLS1wYXBlci1kcm9wZG93bi1tZW51LWlucHV0OiB7CiAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgY29sb3I6IGdyYXk7CiAgICAgICAgfQogICAgICAgIC0taXJvbi1pY29uLXdpZHRoOiAxNXB4OwogICAgICAgIC0taXJvbi1pY29uLWhlaWdodDogMTVweDsKICAgICAgICAtLXByaW1hcnktdGV4dC1jb2xvcjogZ3JheTsKICAgICAgICAtLXBhcGVyLWl0ZW0tbWluLWhlaWdodDogMzBweDsKICAgICAgfQoKICAgICAgcGFwZXItYnV0dG9uW3JhaXNlZF0ua2V5Ym9hcmQtZm9jdXMgewogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC5ydW4tZHJvcGRvd24gewogICAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyOiB7CiAgICAgICAgICBwYWRkaW5nOiA1cHggMCA1cHggNXB4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7CiAgICAgIH0KCiAgICAgIHRhYmxlIHRyIHsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmFsbGNvbnRyb2xzIHsKICAgICAgICBwYWRkaW5nOiAwIDIwcHggMjBweDsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmxlZ2VuZC1ob2xkZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy10ZXh0LWNvbG9yKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmxlZ2VuZC10b29sYmFyIHsKICAgICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tdGItZ3JhcGgtY29udHJvbHMtbGVnZW5kLXRleHQtY29sb3IpOwogICAgICAgIGZvbnQ6IGluaGVyaXQ7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmxlZ2VuZC10b29sYmFyLAogICAgICAubGVnZW5kLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDhweCAyMHB4OwogICAgICB9CgogICAgICAudG9nZ2xlLWxlZ2VuZC1idXR0b24gewogICAgICAgIG1heC1oZWlnaHQ6IDIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtbGVnZW5kLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGItZ3JhcGgtY29udHJvbHMtc3VidGl0bGUtZm9udC1zaXplKTsKICAgICAgfQoKICAgICAgcGFwZXItcmFkaW8tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA1cHg7CiAgICAgIH0KICAgICAgc3ZnLmljb24sCiAgICAgIHRmLWdyYXBoLWljb24gewogICAgICAgIHdpZHRoOiA2MHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQogICAgICAuZG9tYWluVmFsdWVzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIHdpZHRoOiAxNjVweDsKICAgICAgfQogICAgICAuZG9tYWluU3RhcnQgewogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICB9CiAgICAgIC5kb21haW5FbmQgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgfQogICAgICAuY29sb3JCb3ggewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICB9CgogICAgICAuaW1hZ2UtaWNvbiB7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICB9CgogICAgICAuaGVscC1pY29uIHsKICAgICAgICBoZWlnaHQ6IDE1cHg7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5ncmF5IHsKICAgICAgICBjb2xvcjogIzY2NjsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXRiLWdyYXBoLWNvbnRyb2xzLXRpdGxlLWZvbnQtc2l6ZSk7CiAgICAgICAgbWFyZ2luOiA4cHggNXB4IDhweCAwOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy10aXRsZS1jb2xvcik7CiAgICAgIH0KICAgICAgLnRpdGxlIHNtYWxsIHsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICB9CiAgICAgIC5kZXZpY2VMaXN0LAogICAgICAueGxhQ2x1c3Rlckxpc3QgewogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgICNmaWxlIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLmNvbG9yLWxlZ2VuZC1yb3cgewogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY2xlYXI6IGJvdGg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNXB4OwogICAgICB9CgogICAgICAuY29sb3ItbGVnZW5kLXJvdyAubGFiZWwsCiAgICAgIC5jb2xvci1sZWdlbmQtcm93IHN2ZywKICAgICAgLmNvbG9yLWxlZ2VuZC1yb3cgdGYtZ3JhcGgtaWNvbiB7CiAgICAgICAgZmxleDogMCAwIDQwcHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAuZGV2aWNlcy1jaGVja2JveCBpbnB1dCB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAuY29udHJvbC1ob2xkZXIgLmljb24tYnV0dG9uIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXRiLWdyYXBoLWNvbnRyb2xzLXN1YnRpdGxlLWZvbnQtc2l6ZSk7CiAgICAgICAgbWFyZ2luOiAwIC01cHg7CiAgICAgICAgcGFkZGluZzogNXB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy10ZXh0LWNvbG9yKTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi10ZXh0IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICAgIH0KCiAgICAgIC51cGxvYWQtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMTY1cHg7CiAgICAgICAgaGVpZ2h0OiAyNXB4OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1pY29uIHsKICAgICAgICB3aWR0aDogMjZweDsKICAgICAgICBoZWlnaHQ6IDI2cHg7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS01MDApOwogICAgICB9CgogICAgICAuaGlkZGVuLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAuYWxsY29udHJvbHMgLmNvbnRyb2wtaG9sZGVyIHsKICAgICAgICBjbGVhcjogYm90aDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLmFsbGNvbnRyb2xzIC5jb250cm9sLWhvbGRlci5jb250cm9sLW9wdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDAgMCAxNXB4IDE1cHg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLmFsbGNvbnRyb2xzIC5jb250cm9sLWhvbGRlciBwYXBlci10b2dnbGUtYnV0dG9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgIH0KCiAgICAgIHNwYW4uY291bnRlciB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy1zdWJ0aXRsZS1mb250LXNpemUpOwogICAgICAgIGNvbG9yOiBncmF5OwogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7CiAgICAgIH0KCiAgICAgIC5ydW5zLXJvdyAudGl0bGUsCiAgICAgIC50YWdzLXJvdyAudGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICB9CgogICAgICAucnVucy1yb3cgcGFwZXItaXRlbSwKICAgICAgLnRhZ3Mtcm93IHBhcGVyLWl0ZW0gewogICAgICAgIC0tcGFwZXItaXRlbTogewogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIHRhYmxlLmNvbnRyb2wtaG9sZGVyIHsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgfQoKICAgICAgdGFibGUudGYtZ3JhcGgtY29udHJvbHMgdGQuaW5wdXQtZWxlbWVudC10YWJsZS1kYXRhIHsKICAgICAgICBwYWRkaW5nOiAwIDAgMCAyMHB4OwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xvci10ZXh0IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuY29sb3ItdGV4dC5ncmFkaWVudC1jb250YWluZXIgewogICAgICAgIG1hcmdpbjogMCA1cHg7CiAgICAgIH0KCiAgICAgIC8qKiBPdmVycmlkZSBpbmxpbmUgc3R5bGVzIHRoYXQgc3VwcHJlc3MgcG9pbnRlciBldmVudHMgZm9yIGRpc2FibGVkIGJ1dHRvbnMuIE90aGVyd2lzZSwgdGhlICovCiAgICAgIC8qICB0b29sdGlwcyBkbyBub3QgYXBwZWFyLiAqLwogICAgICBwYXBlci1yYWRpby1ncm91cCBwYXBlci1yYWRpby1idXR0b24gewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZWdlbmQtY2xhcmlmaWVyIHsKICAgICAgICBjb2xvcjogIzI2NjIzNjsKICAgICAgICBjdXJzb3I6IGhlbHA7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAubGVnZW5kLWNsYXJpZmllciBwYXBlci10b29sdGlwIHsKICAgICAgICB3aWR0aDogMTUwcHg7CiAgICAgIH0KCiAgICAgIC8qKiBPdGhlcndpc2UsIHBvbHltZXIgVUkgY29udHJvbHMgYXBwZWFyIGF0b3Agbm9kZSBzZWFyY2guICovCiAgICAgIHRmLWdyYXBoLW5vZGUtc2VhcmNoIHsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBwYXBlci1kcm9wZG93bi1tZW51IHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iYWxsY29udHJvbHMiPgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciI+CiAgICAgICAgPHRmLWdyYXBoLW5vZGUtc2VhcmNoCiAgICAgICAgICBzZWxlY3RlZC1ub2RlPSJ7e3NlbGVjdGVkTm9kZX19IgogICAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0iW1tyZW5kZXJIaWVyYXJjaHldXSIKICAgICAgICA+PC90Zi1ncmFwaC1ub2RlLXNlYXJjaD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIj4KICAgICAgICA8cGFwZXItYnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgb24tdGFwPSJfZml0IiBhbHQ9IkZpdCB0byBzY3JlZW4iPgogICAgICAgICAgPGlyb24taWNvbiBpY29uPSJhc3BlY3QtcmF0aW8iIGNsYXNzPSJidXR0b24taWNvbiI+PC9pcm9uLWljb24+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYnV0dG9uLXRleHQiPkZpdCB0byBzY3JlZW48L3NwYW4+CiAgICAgICAgPC9wYXBlci1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciI+CiAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgY2xhc3M9Imljb24tYnV0dG9uIgogICAgICAgICAgb24tY2xpY2s9ImRvd25sb2FkIgogICAgICAgICAgYWx0PSJEb3dubG9hZCBQTkciCiAgICAgICAgPgogICAgICAgICAgPGlyb24taWNvbiBpY29uPSJmaWxlLWRvd25sb2FkIiBjbGFzcz0iYnV0dG9uLWljb24iPjwvaXJvbi1pY29uPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImJ1dHRvbi10ZXh0Ij5Eb3dubG9hZCBQTkc8L3NwYW4+CiAgICAgICAgPC9wYXBlci1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Iltbc2hvd1VwbG9hZEJ1dHRvbl1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciI+CiAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgIGNsYXNzPSJpY29uLWJ1dHRvbiIKICAgICAgICAgICAgb24tY2xpY2s9Il9nZXRGaWxlIgogICAgICAgICAgICBhbHQ9IlVwbG9hZCBmaWxlIgogICAgICAgICAgICB0aXRsZT0iVXBsb2FkIGEgcGJ0eHQgZmlsZSB0byB2aWV3IGEgZ3JhcGggZnJvbSB0aGUgbG9jYWwgZmlsZXN5c3RlbSIKICAgICAgICAgID4KICAgICAgICAgICAgPGlyb24taWNvbiBpY29uPSJmaWxlLXVwbG9hZCIgY2xhc3M9ImJ1dHRvbi1pY29uIj48L2lyb24taWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJ1dHRvbi10ZXh0Ij5VcGxvYWQgZmlsZTwvc3Bhbj4KICAgICAgICAgIDwvcGFwZXItYnV0dG9uPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImhpZGRlbi1pbnB1dCI+CiAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgIHR5cGU9ImZpbGUiCiAgICAgICAgICAgICAgaWQ9ImZpbGUiCiAgICAgICAgICAgICAgbmFtZT0iZmlsZSIKICAgICAgICAgICAgICBvbi1jaGFuZ2U9Il91cGRhdGVGaWxlSW5wdXQiCiAgICAgICAgICAgICAgYWNjZXB0PSIucGJ0eHQiCiAgICAgICAgICAgIC8+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIgcnVucy1yb3ciPgogICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4KICAgICAgICAgIFJ1biA8c3BhbiBjbGFzcz0iY291bnRlciI+KFtbZGF0YXNldHMubGVuZ3RoXV0pPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICBuby1sYWJlbC1mbG9hdAogICAgICAgICAgbm8tYW5pbWF0aW9ucwogICAgICAgICAgbm9pbmsKICAgICAgICAgIGhvcml6b250YWwtYWxpZ249ImxlZnQiCiAgICAgICAgICBjbGFzcz0icnVuLWRyb3Bkb3duIgogICAgICAgID4KICAgICAgICAgIDxwYXBlci1saXN0Ym94CiAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICBzZWxlY3RlZD0ie3tfc2VsZWN0ZWRSdW5JbmRleH19IgogICAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW2RhdGFzZXRzXV0iPgogICAgICAgICAgICAgIDxwYXBlci1pdGVtPltbaXRlbS5uYW1lXV08L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8L3BhcGVyLWxpc3Rib3g+CiAgICAgICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgogICAgICA8L2Rpdj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3Nob3dTZXNzaW9uUnVuc0Ryb3Bkb3duXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIHRhZ3Mtcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4KICAgICAgICAgICAgVGFnCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudGVyIgogICAgICAgICAgICAgID4oW1tfbnVtVGFncyhkYXRhc2V0cywgX3NlbGVjdGVkUnVuSW5kZXgpXV0pPC9zcGFuCiAgICAgICAgICAgID4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgICAgbm8tbGFiZWwtZmxvYXQKICAgICAgICAgICAgbm8tYW5pbWF0aW9ucwogICAgICAgICAgICBob3Jpem9udGFsLWFsaWduPSJsZWZ0IgogICAgICAgICAgICBub2luawogICAgICAgICAgICBjbGFzcz0icnVuLWRyb3Bkb3duIgogICAgICAgICAgPgogICAgICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICAgIHNlbGVjdGVkPSJ7e19zZWxlY3RlZFRhZ0luZGV4fX0iCiAgICAgICAgICAgICAgc2xvdD0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgICAgICBpdGVtcz0iW1tfZ2V0VGFncyhkYXRhc2V0cywgX3NlbGVjdGVkUnVuSW5kZXgpXV0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+W1tpdGVtLmRpc3BsYXlOYW1lXV08L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC9wYXBlci1saXN0Ym94PgogICAgICAgICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+R3JhcGggdHlwZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciBjb250cm9sLW9wdGlvbnMiPgogICAgICAgIDxwYXBlci1yYWRpby1ncm91cAogICAgICAgICAgc2VsZWN0ZWQ9Int7X3NlbGVjdGVkR3JhcGhUeXBlfX0iCiAgICAgICAgICBvbi1wYXBlci1yYWRpby1ncm91cC1jaGFuZ2VkPSJfb25HcmFwaFR5cGVDaGFuZ2VkQnlVc2VyR2VzdHVyZSIKICAgICAgICA+CiAgICAgICAgICA8IS0tIE5vdGUgdGhhdCB0aGUgbmFtZSBoYXMgdG8gbWF0Y2ggdGhhdCBvZiB0Zl9ncmFwaF9jb21tb24uU2VsZWN0aW9uVHlwZS4gLS0+CiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIG5hbWU9Im9wX2dyYXBoIgogICAgICAgICAgICBkaXNhYmxlZD0iW1tfZ2V0U2VsZWN0aW9uT3BHcmFwaERpc2FibGVkKGRhdGFzZXRzLCBfc2VsZWN0ZWRSdW5JbmRleCwgX3NlbGVjdGVkVGFnSW5kZXgpXV0iCiAgICAgICAgICAgID5PcCBncmFwaDwvcGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICA+CiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIG5hbWU9ImNvbmNlcHR1YWxfZ3JhcGgiCiAgICAgICAgICAgIGRpc2FibGVkPSJbW19nZXRTZWxlY3Rpb25Db25jZXB0dWFsR3JhcGhEaXNhYmxlZChkYXRhc2V0cywgX3NlbGVjdGVkUnVuSW5kZXgsIF9zZWxlY3RlZFRhZ0luZGV4KV1dIgogICAgICAgICAgICA+Q29uY2VwdHVhbCBncmFwaDwvcGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICA+CiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIG5hbWU9InByb2ZpbGUiCiAgICAgICAgICAgIGRpc2FibGVkPSJbW19nZXRTZWxlY3Rpb25Qcm9maWxlRGlzYWJsZWQoZGF0YXNldHMsIF9zZWxlY3RlZFJ1bkluZGV4LCBfc2VsZWN0ZWRUYWdJbmRleCldXSIKICAgICAgICAgICAgPlByb2ZpbGU8L3BhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgPgogICAgICAgIDwvcGFwZXItcmFkaW8tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+Tm9kZSBvcHRpb25zPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIGNvbnRyb2wtb3B0aW9ucyI+CiAgICAgICAgPHBhcGVyLXRvZ2dsZS1idXR0b24KICAgICAgICAgIGNoZWNrZWQ9Int7dHJhY2VJbnB1dHN9fSIKICAgICAgICAgIG9uLWNoYW5nZT0iX29uVHJhY2VJbnB1dHNDaGFuZ2VkQnlVc2VyR2VzdHVyZSIKICAgICAgICA+CiAgICAgICAgICBUcmFjZSBpbnB1dHMKICAgICAgICA8L3BhcGVyLXRvZ2dsZS1idXR0b24+CiAgICAgICAgPHBhcGVyLXRvZ2dsZS1idXR0b24gY2hlY2tlZD0ie3thdXRvRXh0cmFjdE5vZGVzfX0iPgogICAgICAgICAgQXV0by1leHRyYWN0IGhpZ2gtZGVncmVlIG5vZGVzCiAgICAgICAgPC9wYXBlci10b2dnbGUtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2hlYWx0aFBpbGxzRmVhdHVyZUVuYWJsZWRdXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIiPgogICAgICAgICAgPHBhcGVyLXRvZ2dsZS1idXR0b24gY2hlY2tlZD0ie3toZWFsdGhQaWxsc1RvZ2dsZWRPbn19IgogICAgICAgICAgICA+U2hvdyBoZWFsdGggcGlsbHM8L3BhcGVyLXRvZ2dsZS1idXR0b24KICAgICAgICAgID4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPkNvbG9yIGJ5PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIGNvbnRyb2wtb3B0aW9ucyI+CiAgICAgICAgPHBhcGVyLXJhZGlvLWdyb3VwCiAgICAgICAgICBzZWxlY3RlZD0ie3tjb2xvckJ5fX0iCiAgICAgICAgICBvbi1wYXBlci1yYWRpby1ncm91cC1jaGFuZ2VkPSJfb25Db2xvckJ5Q2hhbmdlZEJ5VXNlckdlc3R1cmUiCiAgICAgICAgPgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbiBuYW1lPSJbW0NvbG9yQnkuTk9ORV1dIj5Ob25lPC9wYXBlci1yYWRpby1idXR0b24+CgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbiBuYW1lPSJbW0NvbG9yQnkuU1RSVUNUVVJFXV0iCiAgICAgICAgICAgID5TdHJ1Y3R1cmU8L3BhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgPgoKICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24gbmFtZT0iW1tDb2xvckJ5LkRFVklDRV1dIgogICAgICAgICAgICA+RGV2aWNlPC9wYXBlci1yYWRpby1idXR0b24KICAgICAgICAgID4KCiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIGlkPSJ4bGEtY2x1c3Rlci1yYWRpby1idXR0b24iCiAgICAgICAgICAgIG5hbWU9IltbQ29sb3JCeS5YTEFfQ0xVU1RFUl1dIgogICAgICAgICAgICBkaXNhYmxlZD0iW1shX3hsYUNsdXN0ZXJzUHJvdmlkZWQocmVuZGVySGllcmFyY2h5KV1dIgogICAgICAgICAgPgogICAgICAgICAgICBYTEEgY2x1c3RlcgogICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgIGZvcj0ieGxhLWNsdXN0ZXItcmFkaW8tYnV0dG9uIgogICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgID4KICAgICAgICAgICAgQ29sb3JpbmcgYnkgWExBIGNsdXN0ZXIgaXMgb25seSBlbmFibGVkIGlmIGF0IGxlYXN0IDEgb3Agc3BlY2lmaWVzCiAgICAgICAgICAgIGFuIFhMQSBjbHVzdGVyLgogICAgICAgICAgPC9wYXBlci10b29sdGlwPgoKICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24KICAgICAgICAgICAgaWQ9ImNvbXB1dGUtdGltZS1yYWRpby1idXR0b24iCiAgICAgICAgICAgIG5hbWU9IltbQ29sb3JCeS5DT01QVVRFX1RJTUVdXSIKICAgICAgICAgICAgZGlzYWJsZWQ9IltbIXN0YXRzXV0iCiAgICAgICAgICA+CiAgICAgICAgICAgIENvbXB1dGUgdGltZQogICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgIGZvcj0iY29tcHV0ZS10aW1lLXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICA+CiAgICAgICAgICAgIENvbG9yaW5nIGJ5IGNvbXB1dGUgdGltZSBpcyBvbmx5IGVuYWJsZWQgaWYgdGhlIFJ1bk1ldGFkYXRhIHByb3RvIGlzCiAgICAgICAgICAgIHBhc3NlZCB0byB0aGUgRmlsZVdyaXRlciB3aGVuIGEgc3BlY2lmaWMgc2Vzc2lvbiBpcyBydW4uCiAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgICBpZD0ibWVtb3J5LXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgbmFtZT0iW1tDb2xvckJ5Lk1FTU9SWV1dIgogICAgICAgICAgICBkaXNhYmxlZD0iW1shc3RhdHNdXSIKICAgICAgICAgID4KICAgICAgICAgICAgTWVtb3J5CiAgICAgICAgICA8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgZm9yPSJtZW1vcnktcmFkaW8tYnV0dG9uIgogICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgID4KICAgICAgICAgICAgQ29sb3JpbmcgYnkgbWVtb3J5IGlzIG9ubHkgZW5hYmxlZCBpZiB0aGUgUnVuTWV0YWRhdGEgcHJvdG8gaXMKICAgICAgICAgICAgcGFzc2VkIHRvIHRoZSBGaWxlV3JpdGVyIHdoZW4gYSBzcGVjaWZpYyBzZXNzaW9uIGlzIHJ1bi4KICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KCiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIGlkPSJ0cHUtY29tcGF0aWJpbGl0eS1yYWRpby1idXR0b24iCiAgICAgICAgICAgIG5hbWU9IltbQ29sb3JCeS5PUF9DT01QQVRJQklMSVRZXV0iCiAgICAgICAgICA+CiAgICAgICAgICAgIFRQVSBjb21wYXRpYmlsaXR5CiAgICAgICAgICA8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgZm9yPSJ0cHUtY29tcGF0aWJpbGl0eS1yYWRpby1idXR0b24iCiAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgPgogICAgICAgICAgICBDb2xvcmluZyBieSB3aGV0aGVyIGFuIG9wZXJhdGlvbiBpcyBjb21wYXRpYmxlIGZvciB0aGUgVFBVIGRldmljZS4KICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICA8L3BhcGVyLXJhZGlvLWdyb3VwPgogICAgICAgIDxzcGFuIGNsYXNzPSJzcGFjZXIiPjwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1ob2xkZXIiPgogICAgICA8YnV0dG9uIGNsYXNzPSJsZWdlbmQtdG9vbGJhciIgb24tY2xpY2s9Il90b2dnbGVMZWdlbmRPcGVuIj4KICAgICAgICA8c3BhbiBjbGFzcz0idG9nZ2xlLWxlZ2VuZC10ZXh0Ij5MZWdlbmQ8L3NwYW4+CiAgICAgICAgPGlyb24taWNvbgogICAgICAgICAgaWNvbj0iW1tfZ2V0VG9nZ2xlTGVnZW5kSWNvbihfbGVnZW5kT3BlbmVkKV1dIgogICAgICAgICAgY2xhc3M9InRvZ2dsZS1sZWdlbmQtYnV0dG9uIgogICAgICAgID4KICAgICAgICA8L2lyb24taWNvbj4KICAgICAgPC9idXR0b24+CiAgICAgIDxpcm9uLWNvbGxhcHNlIG9wZW5lZD0iW1tfbGVnZW5kT3BlbmVkXV0iIGNsYXNzPSJsZWdlbmQtY29udGVudCI+CiAgICAgICAgPCEtLSBDb2xvci1tb2RlLXNwZWNpZmljIGxlZ2VuZCBpdGVtcyAtLT4KICAgICAgICA8ZGl2PgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc0dyYWRpZW50Q29sb3Jpbmcoc3RhdHMsIGNvbG9yQnkpXV0iPgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNDAiIGhlaWdodD0iMjAiIGNsYXNzPSJjb2xvci10ZXh0IGdyYWRpZW50LWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50IgogICAgICAgICAgICAgICAgICB4MT0iMCUiCiAgICAgICAgICAgICAgICAgIHkxPSIwJSIKICAgICAgICAgICAgICAgICAgeDI9IjEwMCUiCiAgICAgICAgICAgICAgICAgIHkyPSIwJSIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPHN0b3AKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ic3RhcnQiCiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwJSIKICAgICAgICAgICAgICAgICAgICBzdG9wLWNvbG9yJD0iW1tfY3VycmVudEdyYWRpZW50UGFyYW1zLnN0YXJ0Q29sb3JdXSIKICAgICAgICAgICAgICAgICAgPjwvc3RvcD4KICAgICAgICAgICAgICAgICAgPHN0b3AKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZW5kIgogICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMTAwJSIKICAgICAgICAgICAgICAgICAgICBzdG9wLWNvbG9yJD0iW1tfY3VycmVudEdyYWRpZW50UGFyYW1zLmVuZENvbG9yXV0iCiAgICAgICAgICAgICAgICAgID48L3N0b3A+CiAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgICAgICA8cmVjdAogICAgICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICAgICB3aWR0aD0iMTM1IgogICAgICAgICAgICAgICAgaGVpZ2h0PSIyMCIKICAgICAgICAgICAgICAgIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQpIgogICAgICAgICAgICAgICAgc3Ryb2tlPSJibGFjayIKICAgICAgICAgICAgICA+PC9yZWN0PgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9tYWluVmFsdWVzIGNvbG9yLXRleHQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpblN0YXJ0Ij5bW19jdXJyZW50R3JhZGllbnRQYXJhbXMubWluVmFsdWVdXTwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpbkVuZCI+W1tfY3VycmVudEdyYWRpZW50UGFyYW1zLm1heFZhbHVlXV08L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxiciBzdHlsZT0iY2xlYXI6IGJvdGgiIC8+CiAgICAgICAgICAgIDxkaXY+RGV2aWNlcyBpbmNsdWRlZCBpbiBzdGF0czo8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV2aWNlTGlzdCI+CiAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY3VycmVudERldmljZXNdXSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93IGRldmljZXMtY2hlY2tib3giPgogICAgICAgICAgICAgICAgICA8c3BhbgogICAgICAgICAgICAgICAgICAgID48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgICAgICAgdmFsdWUkPSJbW2l0ZW0uZGV2aWNlXV0iCiAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkJD0iW1tpdGVtLnVzZWRdXSIKICAgICAgICAgICAgICAgICAgICAgIG9uLWNsaWNrPSJfZGV2aWNlQ2hlY2tib3hDbGlja2VkIgogICAgICAgICAgICAgICAgICAvPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+W1tpdGVtLnN1ZmZpeF1dPC9zcGFuPgogICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbaXRlbS5pZ25vcmVkTXNnXV0iPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgaWNvbj0iaGVscCIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJoZWxwLWljb24iCiAgICAgICAgICAgICAgICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgID5bW2l0ZW0uaWdub3JlZE1zZ11dPC9wYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19lcXVhbHMoY29sb3JCeSwgJ3N0cnVjdHVyZScpXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci10ZXh0Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCI+IGNvbG9ycyA8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj5zYW1lIHN1YnN0cnVjdHVyZTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uCiAgICAgICAgICAgICAgICAgIHR5cGU9Ik1FVEEiCiAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTYiCiAgICAgICAgICAgICAgICAgIGZpbGwtb3ZlcnJpZGU9IiNlZWUiCiAgICAgICAgICAgICAgICAgIHN0cm9rZS1vdmVycmlkZT0iI2E2YTZhNiIKICAgICAgICAgICAgICAgID48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj51bmlxdWUgc3Vic3RydWN0dXJlPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2VxdWFscyhjb2xvckJ5LCAnZGV2aWNlJyldXSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY3VycmVudERldmljZVBhcmFtc11dIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbgogICAgICAgICAgICAgICAgICAgIHR5cGU9Ik1FVEEiCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNiIKICAgICAgICAgICAgICAgICAgICBmaWxsLW92ZXJyaWRlPSJbW2l0ZW0uY29sb3JdXSIKICAgICAgICAgICAgICAgICAgICBzdHJva2Utb3ZlcnJpZGU9IiNhNmE2YTYiCiAgICAgICAgICAgICAgICAgID48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2xvci1sZWdlbmQtdmFsdWUiPltbaXRlbS5kZXZpY2VdXTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyI+CiAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbgogICAgICAgICAgICAgICAgICB0eXBlPSJNRVRBIgogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE2IgogICAgICAgICAgICAgICAgICBmaWxsLW92ZXJyaWRlPSIjZWVlIgogICAgICAgICAgICAgICAgICBzdHJva2Utb3ZlcnJpZGU9IiNhNmE2YTYiCiAgICAgICAgICAgICAgICA+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+dW5rbm93biBkZXZpY2U8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZXF1YWxzKGNvbG9yQnksICd4bGFfY2x1c3RlcicpXV0iPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2N1cnJlbnRYbGFDbHVzdGVyUGFyYW1zXV0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzdmc+CiAgICAgICAgICAgICAgICAgICAgPHVzZQogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgICAgICAgICAgICAgICAgICAgICB4bGluazpocmVmPSIjdW5maWxsZWQtcmVjdCIKICAgICAgICAgICAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6W1tpdGVtLmNvbG9yXV0iCiAgICAgICAgICAgICAgICAgICAgPjwvdXNlPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+W1tpdGVtLnhsYV9jbHVzdGVyXV08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgICAgPHN2Zz4KICAgICAgICAgICAgICAgICAgPHVzZQogICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgICAgICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNncmV5LXJlY3QiCiAgICAgICAgICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgICAgICA+PC91c2U+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2xvci1sZWdlbmQtdmFsdWUiPnVua25vd24gWExBIGNsdXN0ZXI8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZXF1YWxzKGNvbG9yQnksICdvcF9jb21wYXRpYmlsaXR5JyldXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLXRleHQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24KICAgICAgICAgICAgICAgICAgdHlwZT0iT1AiCiAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTYiCiAgICAgICAgICAgICAgICAgIGZpbGwtb3ZlcnJpZGU9IiMwZjlkNTgiCiAgICAgICAgICAgICAgICAgIHN0cm9rZS1vdmVycmlkZT0iI2NjYyIKICAgICAgICAgICAgICAgID48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj5WYWxpZCBPcDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uCiAgICAgICAgICAgICAgICAgIHR5cGU9Ik9QIgogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE2IgogICAgICAgICAgICAgICAgICBmaWxsLW92ZXJyaWRlPSIjZGI0NDM3IgogICAgICAgICAgICAgICAgICBzdHJva2Utb3ZlcnJpZGU9IiNjY2MiCiAgICAgICAgICAgICAgICA+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+SW52YWxpZCBPcDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zdGF0c05vdE51bGwoc3RhdHMpXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbiB0eXBlPSJNRVRBIiBoZWlnaHQ9IjE2IiBmYWRlZD48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+dW51c2VkIHN1YnN0cnVjdHVyZTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIENvbW1vbiBsZWdlbmQgaXRlbXMgLS0+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgPHRkPigqID0gZXhwYW5kYWJsZSk8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbgogICAgICAgICAgICAgICAgICAgIHR5cGU9Ik1FVEEiCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNiIKICAgICAgICAgICAgICAgICAgICBmaWxsLW92ZXJyaWRlPSIjZDlkOWQ5IgogICAgICAgICAgICAgICAgICAgIHN0cm9rZS1vdmVycmlkZT0iI2NjYyIKICAgICAgICAgICAgICAgICAgPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIE5hbWVzcGFjZTxzcGFuIGNsYXNzPSJncmF5Ij4qPC9zcGFuPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgRW5jYXBzdWxhdGVzIGEgc2V0IG9mIG5vZGVzLiBOYW1lc3BhY2UgaXMgaGllcmFyY2hpY2FsIGFuZAogICAgICAgICAgICAgICAgICAgICAgYmFzZWQgb24gc2NvcGUuCiAgICAgICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uIHR5cGU9Ik9QIiBoZWlnaHQ9IjE2Ij48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICBPcE5vZGUKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLWNsYXJpZmllciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Pzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIE5vZGUgdGhhdCBwZXJmb3JtcyBhbiBvcGVyYXRpb24uIFRoZXNlIG5vZGVzIGNhbm5vdAogICAgICAgICAgICAgICAgICAgICAgZXhwYW5kLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbiB0eXBlPSJTRVJJRVMiIGhlaWdodD0iMTYiPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIFVuY29ubmVjdGVkIHNlcmllczxzcGFuIGNsYXNzPSJncmF5Ij4qPC9zcGFuPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgU2VxdWVuY2Ugb2YgbnVtYmVyZWQgbm9kZXMgdGhhdCBhcmUgbm90IGNvbm5lY3RlZCB0byBlYWNoCiAgICAgICAgICAgICAgICAgICAgICBvdGhlci4KICAgICAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24KICAgICAgICAgICAgICAgICAgICB0eXBlPSJTRVJJRVMiCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNiIKICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbAogICAgICAgICAgICAgICAgICA+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgQ29ubmVjdGVkIHNlcmllczxzcGFuIGNsYXNzPSJncmF5Ij4qPC9zcGFuPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgU2VxdWVuY2Ugb2YgbnVtYmVyZWQgbm9kZXMgdGhhdCBhcmUgY29ubmVjdGVkIHRvIGVhY2gKICAgICAgICAgICAgICAgICAgICAgIG90aGVyLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIj4KICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlCiAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJ3aGl0ZSIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT0iIzg0ODQ4NCIKICAgICAgICAgICAgICAgICAgICAgIGN4PSIxMCIKICAgICAgICAgICAgICAgICAgICAgIGN5PSIxMCIKICAgICAgICAgICAgICAgICAgICAgIHI9IjUiCiAgICAgICAgICAgICAgICAgICAgPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIENvbnN0YW50CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBOb2RlIHRoYXQgb3V0cHV0cyBhIGNvbnN0YW50IHZhbHVlLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbiB0eXBlPSJTVU1NQVJZIiBoZWlnaHQ9IjIwIj48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICBTdW1tYXJ5CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBOb2RlIHRoYXQgY29sbGVjdHMgZGF0YSBmb3IgdmlzdWFsaXphdGlvbiB3aXRoaW4KICAgICAgICAgICAgICAgICAgICAgIFRlbnNvckJvYXJkLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8c3ZnCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imljb24iCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNXB4IgogICAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgICAgICAgICAgICAgdmlld0JveD0iMCAwIDE1IDE1IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICAgICAgICA8bWFya2VyCiAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJkYXRhZmxvdy1hcnJvd2hlYWQtbGVnZW5kIgogICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSIjYmJiIgogICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJXaWR0aD0iMTAiCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtlckhlaWdodD0iMTAiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZlg9IjkiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZlk9IjUiCiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNIDAsMCBMIDEwLDUgTCAwLDEwIEMgMyw3IDMsMyAwLDAiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgIDwvbWFya2VyPgogICAgICAgICAgICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgbWFya2VyLWVuZD0idXJsKCNkYXRhZmxvdy1hcnJvd2hlYWQtbGVnZW5kKSIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT0iI2JiYiIKICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0yIDkgbCAyOSAwIgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogICAgICAgICAgICAgICAgICAgID48L3BhdGg+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgRGF0YWZsb3cgZWRnZQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgRWRnZSBzaG93aW5nIHRoZSBkYXRhIGZsb3cgYmV0d2VlbiBvcGVyYXRpb25zLiBFZGdlcyBmbG93CiAgICAgICAgICAgICAgICAgICAgICB1cHdhcmRzIHVubGVzcyBhcnJvd2hlYWRzIHNwZWNpZnkgb3RoZXJ3aXNlLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8c3ZnCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imljb24iCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNXB4IgogICAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgICAgICAgICAgICAgdmlld0JveD0iMCAwIDE1IDE1IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT0iI2JiYiIKICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0yIDkgbCAyOSAwIgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hhcnJheT0iMiwgMiIKICAgICAgICAgICAgICAgICAgICA+PC9wYXRoPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIENvbnRyb2wgZGVwZW5kZW5jeSBlZGdlCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBFZGdlIHNob3dpbmcgdGhlIGNvbnRyb2wgZGVwZW5kZW5jeSBiZXR3ZWVuIG9wZXJhdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxzdmcKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiIKICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE1cHgiCiAgICAgICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PSIwIDAgMTUgMTUiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8ZGVmcz4KICAgICAgICAgICAgICAgICAgICAgIDxtYXJrZXIKICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InJlZmVyZW5jZS1hcnJvd2hlYWQtbGVnZW5kIgogICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSIjRkZCNzREIgogICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJXaWR0aD0iMTAiCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtlckhlaWdodD0iMTAiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZlg9IjkiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZlk9IjUiCiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNIDAsMCBMIDEwLDUgTCAwLDEwIEMgMyw3IDMsMyAwLDAiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgIDwvbWFya2VyPgogICAgICAgICAgICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgbWFya2VyLWVuZD0idXJsKCNyZWZlcmVuY2UtYXJyb3doZWFkLWxlZ2VuZCkiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9IiNGRkI3NEQiCiAgICAgICAgICAgICAgICAgICAgICBkPSJNMiA5IGwgMjkgMCIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICAgICAgICAgICAgICAgICAgICA+PC9wYXRoPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZSBlZGdlCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBFZGdlIHNob3dpbmcgdGhhdCB0aGUgb3V0Z29pbmcgb3BlcmF0aW9uIG5vZGUgY2FuIG11dGF0ZQogICAgICAgICAgICAgICAgICAgICAgdGhlIGluY29taW5nIHRlbnNvci4KICAgICAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9pcm9uLWNvbGxhcHNlPgogICAgPC9kaXY+CiAgYCx0KFtvKHt0eXBlOk9iamVjdCxvYnNlcnZlcjoiX3N0YXRzQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sc1l0LnByb3RvdHlwZSwic3RhdHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHNZdC5wcm90b3R5cGUsImRldmljZXNGb3JTdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sc1l0LnByb3RvdHlwZSwiY29sb3JCeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sc1l0LnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5LG9ic2VydmVyOiJfZGF0YXNldHNDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxzWXQucHJvdG90eXBlLCJkYXRhc2V0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIix5V3QpXSxzWXQucHJvdG90eXBlLCJyZW5kZXJIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLHJlYWRPbmx5OiEwLGNvbXB1dGVkOiJfY29tcHV0ZVNlbGVjdGlvbihkYXRhc2V0cywgX3NlbGVjdGVkUnVuSW5kZXgsIF9zZWxlY3RlZFRhZ0luZGV4LCBfc2VsZWN0ZWRHcmFwaFR5cGUpIn0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxzWXQucHJvdG90eXBlLCJzZWxlY3Rpb24iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHNZdC5wcm90b3R5cGUsInNlbGVjdGVkRmlsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixvYnNlcnZlcjoiX3NlbGVjdGVkUnVuSW5kZXhDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxzWXQucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5JbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxzWXQucHJvdG90eXBlLCJ0cmFjZUlucHV0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxzWXQucHJvdG90eXBlLCJhdXRvRXh0cmFjdE5vZGVzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG9ic2VydmVyOiJfc2VsZWN0ZWRUYWdJbmRleENoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLHNZdC5wcm90b3R5cGUsIl9zZWxlY3RlZFRhZ0luZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHNZdC5wcm90b3R5cGUsIl9zZWxlY3RlZEdyYXBoVHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sc1l0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sc1l0LnByb3RvdHlwZSwic2hvd1Nlc3Npb25SdW5zRHJvcGRvd24iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxzWXQucHJvdG90eXBlLCJzaG93VXBsb2FkQnV0dG9uIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sc1l0LnByb3RvdHlwZSwiaGVhbHRoUGlsbHNGZWF0dXJlRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxzWXQucHJvdG90eXBlLCJoZWFsdGhQaWxsc1RvZ2dsZWRPbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHNZdC5wcm90b3R5cGUsIl9sZWdlbmRPcGVuZWQiLHZvaWQgMCksdChbcygiZGV2aWNlc0ZvclN0YXRzIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxzWXQucHJvdG90eXBlLCJfY3VycmVudERldmljZXMiLG51bGwpLHQoW3MoImNvbG9yQnlQYXJhbXMiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHNZdC5wcm90b3R5cGUsIl9jdXJyZW50RGV2aWNlUGFyYW1zIixudWxsKSx0KFtzKCJjb2xvckJ5UGFyYW1zIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxzWXQucHJvdG90eXBlLCJfY3VycmVudFhsYUNsdXN0ZXJQYXJhbXMiLG51bGwpLHQoW3MoImNvbG9yQnlQYXJhbXMiLCJjb2xvckJ5IiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sc1l0LnByb3RvdHlwZSwiX2N1cnJlbnRHcmFkaWVudFBhcmFtcyIsbnVsbCksc1l0PXQoW2koInRmLWdyYXBoLWNvbnRyb2xzIildLHNZdCk7Y2xhc3MgbFl0e2lzTm90VHB1T3AodCl7cmV0dXJuLTEhPXQudG9Mb3dlckNhc2UoKS5zZWFyY2goImNwdToiKXx8LTEhPXQudG9Mb3dlckNhc2UoKS5zZWFyY2goImdwdToiKXx8LTE9PXQudG9Mb3dlckNhc2UoKS5zZWFyY2goInRwdSIpfW9wVmFsaWQodCl7cmV0dXJuIDA9PXQubmFtZS5zZWFyY2goVkd0KXx8IXQub3B8fCEoIXQuZGV2aWNlfHwhdGhpcy5pc05vdFRwdU9wKHQuZGV2aWNlKSl8fCEoIXQuZGV2aWNlfHwtMT09dC5kZXZpY2Uuc2VhcmNoKCJUUFVfU1lTVEVNIikpfHxTZS5leHBvcnRzLmluY2x1ZGVzKGxZdC5XSElURUxJU1QsdC5vcCl9fWZ1bmN0aW9uIGNZdCh0KXtyZXR1cm4gbmV3IFByb21pc2UoKChlLG4pPT57ZmV0Y2godCkudGhlbigodD0+e3Qub2s/dC5hcnJheUJ1ZmZlcigpLnRoZW4oZSxuKTp0LnRleHQoKS50aGVuKG4sbil9KSl9KSl9bFl0LldISVRFTElTVD1bIkFicyIsIkFjb3MiLCJBY29zaCIsIkFkZCIsIkFkZE4iLCJBZGRWMiIsIkFkanVzdENvbnRyYXN0djIiLCJBZGp1c3RIdWUiLCJBZGp1c3RTYXR1cmF0aW9uIiwiQWxsIiwiQWxsVG9BbGwiLCJBbmdsZSIsIkFueSIsIkFwcHJveGltYXRlRXF1YWwiLCJBcmdNYXgiLCJBcmdNaW4iLCJBc2luIiwiQXNpbmgiLCJBc3NlcnQiLCJBc3NpZ25BZGRWYXJpYWJsZU9wIiwiQXNzaWduU3ViVmFyaWFibGVPcCIsIkFzc2lnblZhcmlhYmxlT3AiLCJBdGFuIiwiQXRhbjIiLCJBdGFuaCIsIkF2Z1Bvb2wiLCJBdmdQb29sM0QiLCJBdmdQb29sM0RHcmFkIiwiQXZnUG9vbEdyYWQiLCJCYXRjaE1hdE11bCIsIkJhdGNoTWF0TXVsVjIiLCJCYXRjaFRvU3BhY2UiLCJCYXRjaFRvU3BhY2VORCIsIkJlc3NlbEkwZSIsIkJlc3NlbEkxZSIsIkJldGFpbmMiLCJCaWFzQWRkIiwiQmlhc0FkZEdyYWQiLCJCaWFzQWRkVjEiLCJCaXRjYXN0IiwiQml0d2lzZUFuZCIsIkJpdHdpc2VPciIsIkJpdHdpc2VYb3IiLCJCcm9hZGNhc3RBcmdzIiwiQnJvYWRjYXN0R3JhZGllbnRBcmdzIiwiQnJvYWRjYXN0VG8iLCJCdWNrZXRpemUiLCJDYXNlIiwiQ2FzdCIsIkNlaWwiLCJDaGVja051bWVyaWNzIiwiQ2hvbGVza3kiLCJDbGlwQnlWYWx1ZSIsIkNvbGxlY3RpdmVQZXJtdXRlIiwiQ29sbGVjdGl2ZVJlZHVjZVYyIiwiQ29tcGxleCIsIkNvbXBsZXhBYnMiLCJDb25jYXQiLCJDb25jYXRPZmZzZXQiLCJDb25jYXRWMiIsIkNvbmoiLCJDb25qdWdhdGVUcmFuc3Bvc2UiLCJDb25zdCIsIkNvbnRyb2xUcmlnZ2VyIiwiQ29udjJEIiwiQ29udjJEQmFja3Byb3BGaWx0ZXIiLCJDb252MkRCYWNrcHJvcElucHV0IiwiQ29udjNEIiwiQ29udjNEQmFja3Byb3BGaWx0ZXJWMiIsIkNvbnYzREJhY2twcm9wSW5wdXRWMiIsIkNvcyIsIkNvc2giLCJDcm9zcyIsIkNyb3NzUmVwbGljYVN1bSIsIkN1bXByb2QiLCJDdW1zdW0iLCJEYXRhRm9ybWF0RGltTWFwIiwiRGF0YUZvcm1hdFZlY1Blcm11dGUiLCJEZXB0aFRvU3BhY2UiLCJEZXB0aHdpc2VDb252MmROYXRpdmUiLCJEZXB0aHdpc2VDb252MmROYXRpdmVCYWNrcHJvcEZpbHRlciIsIkRlcHRod2lzZUNvbnYyZE5hdGl2ZUJhY2twcm9wSW5wdXQiLCJEZXF1YW50aXplIiwiRGV2aWNlSW5kZXgiLCJEaWFnIiwiRGlhZ1BhcnQiLCJEaWdhbW1hIiwiRGl2IiwiRGl2Tm9OYW4iLCJEeW5hbWljU3RpdGNoIiwiRWluc3VtIiwiRWx1IiwiRWx1R3JhZCIsIkVtcHR5IiwiRW1wdHlUZW5zb3JMaXN0IiwiRW5zdXJlU2hhcGUiLCJFcXVhbCIsIkVyZiIsIkVyZmMiLCJFcmZpbnYiLCJFeHAiLCJFeHBhbmREaW1zIiwiRXhwbTEiLCJFeHRyYWN0SW1hZ2VQYXRjaGVzIiwiRkZUIiwiRkZUMkQiLCJGRlQzRCIsIkZha2VQYXJhbSIsIkZha2VRdWFudFdpdGhNaW5NYXhBcmdzIiwiRmFrZVF1YW50V2l0aE1pbk1heEFyZ3NHcmFkaWVudCIsIkZha2VRdWFudFdpdGhNaW5NYXhWYXJzIiwiRmFrZVF1YW50V2l0aE1pbk1heFZhcnNHcmFkaWVudCIsIkZpbGwiLCJGbG9vciIsIkZsb29yRGl2IiwiRmxvb3JNb2QiLCJGdXNlZEJhdGNoTm9ybSIsIkZ1c2VkQmF0Y2hOb3JtR3JhZCIsIkZ1c2VkQmF0Y2hOb3JtR3JhZFYyIiwiRnVzZWRCYXRjaE5vcm1HcmFkVjMiLCJGdXNlZEJhdGNoTm9ybVYyIiwiRnVzZWRCYXRjaE5vcm1WMyIsIkdhdGhlciIsIkdhdGhlck5kIiwiR2F0aGVyVjIiLCJHZXRJdGVtIiwiR3JlYXRlciIsIkdyZWF0ZXJFcXVhbCIsIkhTVlRvUkdCIiwiSUZGVCIsIklGRlQyRCIsIklGRlQzRCIsIklSRkZUIiwiSVJGRlQyRCIsIklSRkZUM0QiLCJJZGVudGl0eSIsIklkZW50aXR5TiIsIklmIiwiSWdhbW1hIiwiSWdhbW1hR3JhZEEiLCJJZ2FtbWFjIiwiSW1hZyIsIkluVG9wS1YyIiwiSW5mZWVkRGVxdWV1ZSIsIkluZmVlZERlcXVldWVUdXBsZSIsIklucGxhY2VBZGQiLCJJbnBsYWNlVXBkYXRlIiwiSW52IiwiSW52ZXJ0IiwiSW52ZXJ0UGVybXV0YXRpb24iLCJJc0Zpbml0ZSIsIklzSW5mIiwiSXNOYW4iLCJLdGhPcmRlclN0YXRpc3RpYyIsIkwyTG9zcyIsIkxSTiIsIkxSTkdyYWQiLCJMZWFreVJlbHUiLCJMZWFreVJlbHVHcmFkIiwiTGVmdFNoaWZ0IiwiTGVzcyIsIkxlc3NFcXVhbCIsIkxnYW1tYSIsIkxpblNwYWNlIiwiTGlzdERpZmYiLCJMb2ciLCJMb2cxcCIsIkxvZ1NvZnRtYXgiLCJMb2dpY2FsQW5kIiwiTG9naWNhbE5vdCIsIkxvZ2ljYWxPciIsIkxvd2VyQm91bmQiLCJNYWtlVW5pcXVlIiwiTWF0TXVsIiwiTWF0cml4QmFuZFBhcnQiLCJNYXRyaXhEaWFnIiwiTWF0cml4RGlhZ1BhcnQiLCJNYXRyaXhEaWFnUGFydFYyIiwiTWF0cml4RGlhZ1BhcnRWMyIsIk1hdHJpeERpYWdWMiIsIk1hdHJpeERpYWdWMyIsIk1hdHJpeEludmVyc2UiLCJNYXRyaXhTZXREaWFnIiwiTWF0cml4U2V0RGlhZ1YyIiwiTWF0cml4U2V0RGlhZ1YzIiwiTWF0cml4U29sdmUiLCJNYXRyaXhUcmlhbmd1bGFyU29sdmUiLCJNYXgiLCJNYXhQb29sIiwiTWF4UG9vbDNEIiwiTWF4UG9vbDNER3JhZCIsIk1heFBvb2wzREdyYWRHcmFkIiwiTWF4UG9vbEdyYWQiLCJNYXhQb29sR3JhZEdyYWQiLCJNYXhQb29sR3JhZEdyYWRWMiIsIk1heFBvb2xHcmFkVjIiLCJNYXhQb29sVjIiLCJNYXhpbXVtIiwiTWVhbiIsIk1pbiIsIk1pbmltdW0iLCJNaXJyb3JQYWQiLCJNaXJyb3JQYWRHcmFkIiwiTW9kIiwiTXVsIiwiTXVsTm9OYW4iLCJNdWx0aW5vbWlhbCIsIk5kdHJpIiwiTmVnIiwiTmV4dEFmdGVyIiwiTm9PcCIsIk5vbk1heFN1cHByZXNzaW9uVjQiLCJOb3RFcXVhbCIsIk9uZUhvdCIsIk9uZXNMaWtlIiwiT3V0ZmVlZEVucXVldWUiLCJPdXRmZWVkRW5xdWV1ZVR1cGxlIiwiUGFjayIsIlBhZCIsIlBhZFYyIiwiUGFyYWxsZWxEeW5hbWljU3RpdGNoIiwiUGFyYW1ldGVyaXplZFRydW5jYXRlZE5vcm1hbCIsIlBhcnRpdGlvbmVkQ2FsbCIsIlBsYWNlaG9sZGVyV2l0aERlZmF1bHQiLCJQb2x5Z2FtbWEiLCJQb3B1bGF0aW9uQ291bnQiLCJQb3ciLCJQcmV2ZW50R3JhZGllbnQiLCJQcm9kIiwiUXIiLCJRdWFudGl6ZUFuZERlcXVhbnRpemVWMiIsIlF1YW50aXplQW5kRGVxdWFudGl6ZVYzIiwiUkZGVCIsIlJGRlQyRCIsIlJGRlQzRCIsIlJHQlRvSFNWIiwiUmFuZG9tR2FtbWFHcmFkIiwiUmFuZG9tU2h1ZmZsZSIsIlJhbmRvbVN0YW5kYXJkTm9ybWFsIiwiUmFuZG9tVW5pZm9ybSIsIlJhbmRvbVVuaWZvcm1JbnQiLCJSYW5nZSIsIlJhbmsiLCJSZWFkVmFyaWFibGVPcCIsIlJlYWwiLCJSZWFsRGl2IiwiUmVjaXByb2NhbCIsIlJlY2lwcm9jYWxHcmFkIiwiUmVsdSIsIlJlbHU2IiwiUmVsdTZHcmFkIiwiUmVsdUdyYWQiLCJSZXNoYXBlIiwiUmVzaXplQmlsaW5lYXIiLCJSZXNpemVCaWxpbmVhckdyYWQiLCJSZXNpemVOZWFyZXN0TmVpZ2hib3IiLCJSZXNpemVOZWFyZXN0TmVpZ2hib3JHcmFkIiwiUmVzb3VyY2VBcHBseUFkYU1heCIsIlJlc291cmNlQXBwbHlBZGFkZWx0YSIsIlJlc291cmNlQXBwbHlBZGFncmFkIiwiUmVzb3VyY2VBcHBseUFkYWdyYWREQSIsIlJlc291cmNlQXBwbHlBZGFncmFkVjIiLCJSZXNvdXJjZUFwcGx5QWRhbSIsIlJlc291cmNlQXBwbHlBZGRTaWduIiwiUmVzb3VyY2VBcHBseUNlbnRlcmVkUk1TUHJvcCIsIlJlc291cmNlQXBwbHlGdHJsIiwiUmVzb3VyY2VBcHBseUZ0cmxWMiIsIlJlc291cmNlQXBwbHlHcmFkaWVudERlc2NlbnQiLCJSZXNvdXJjZUFwcGx5S2VyYXNNb21lbnR1bSIsIlJlc291cmNlQXBwbHlNb21lbnR1bSIsIlJlc291cmNlQXBwbHlQb3dlclNpZ24iLCJSZXNvdXJjZUFwcGx5UHJveGltYWxBZGFncmFkIiwiUmVzb3VyY2VBcHBseVByb3hpbWFsR3JhZGllbnREZXNjZW50IiwiUmVzb3VyY2VBcHBseVJNU1Byb3AiLCJSZXNvdXJjZUdhdGhlciIsIlJlc291cmNlU2NhdHRlckFkZCIsIlJlc291cmNlU2NhdHRlckRpdiIsIlJlc291cmNlU2NhdHRlck1heCIsIlJlc291cmNlU2NhdHRlck1pbiIsIlJlc291cmNlU2NhdHRlck11bCIsIlJlc291cmNlU2NhdHRlck5kQWRkIiwiUmVzb3VyY2VTY2F0dGVyTmRTdWIiLCJSZXNvdXJjZVNjYXR0ZXJOZFVwZGF0ZSIsIlJlc291cmNlU2NhdHRlclN1YiIsIlJlc291cmNlU2NhdHRlclVwZGF0ZSIsIlJlc291cmNlU3RyaWRlZFNsaWNlQXNzaWduIiwiUmV2ZXJzZSIsIlJldmVyc2VTZXF1ZW5jZSIsIlJldmVyc2VWMiIsIlJpZ2h0U2hpZnQiLCJSaW50IiwiUm5nUmVhZEFuZFNraXAiLCJSbmdTa2lwIiwiUm9sbCIsIlJvdW5kIiwiUnNxcnQiLCJSc3FydEdyYWQiLCJTY2F0dGVyTmQiLCJTZWxlY3QiLCJTZWxlY3RWMiIsIlNlbGZBZGpvaW50RWlnVjIiLCJTZWx1IiwiU2VsdUdyYWQiLCJTaGFwZSIsIlNoYXBlTiIsIlNpZ21vaWQiLCJTaWdtb2lkR3JhZCIsIlNpZ24iLCJTaW4iLCJTaW5oIiwiU2l6ZSIsIlNsaWNlIiwiU25hcHNob3QiLCJTb2Z0bWF4IiwiU29mdG1heENyb3NzRW50cm9weVdpdGhMb2dpdHMiLCJTb2Z0cGx1cyIsIlNvZnRwbHVzR3JhZCIsIlNvZnRzaWduIiwiU29mdHNpZ25HcmFkIiwiU3BhY2VUb0JhdGNoIiwiU3BhY2VUb0JhdGNoTkQiLCJTcGFjZVRvRGVwdGgiLCJTcGFyc2VNYXRNdWwiLCJTcGFyc2VTb2Z0bWF4Q3Jvc3NFbnRyb3B5V2l0aExvZ2l0cyIsIlNwYXJzZVRvRGVuc2UiLCJTcGxpdCIsIlNwbGl0ViIsIlNxcnQiLCJTcXJ0R3JhZCIsIlNxdWFyZSIsIlNxdWFyZWREaWZmZXJlbmNlIiwiU3F1ZWV6ZSIsIlN0YWNrQ2xvc2VWMiIsIlN0YWNrUG9wVjIiLCJTdGFja1B1c2hWMiIsIlN0YWNrVjIiLCJTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbCIsIlN0YXRlZnVsU3RhbmRhcmROb3JtYWxWMiIsIlN0YXRlZnVsVHJ1bmNhdGVkTm9ybWFsIiwiU3RhdGVmdWxVbmlmb3JtIiwiU3RhdGVmdWxVbmlmb3JtRnVsbEludCIsIlN0YXRlZnVsVW5pZm9ybUludCIsIlN0YXRlbGVzc0Nhc2UiLCJTdGF0ZWxlc3NJZiIsIlN0YXRlbGVzc011bHRpbm9taWFsIiwiU3RhdGVsZXNzUmFuZG9tR2V0QWxnIiwiU3RhdGVsZXNzUmFuZG9tR2V0S2V5Q291bnRlciIsIlN0YXRlbGVzc1JhbmRvbUdldEtleUNvdW50ZXJBbGciLCJTdGF0ZWxlc3NSYW5kb21Ob3JtYWwiLCJTdGF0ZWxlc3NSYW5kb21Ob3JtYWxWMiIsIlN0YXRlbGVzc1JhbmRvbVVuaWZvcm0iLCJTdGF0ZWxlc3NSYW5kb21Vbmlmb3JtRnVsbEludCIsIlN0YXRlbGVzc1JhbmRvbVVuaWZvcm1GdWxsSW50VjIiLCJTdGF0ZWxlc3NSYW5kb21Vbmlmb3JtSW50IiwiU3RhdGVsZXNzUmFuZG9tVW5pZm9ybUludFYyIiwiU3RhdGVsZXNzUmFuZG9tVW5pZm9ybVYyIiwiU3RhdGVsZXNzVHJ1bmNhdGVkTm9ybWFsIiwiU3RhdGVsZXNzVHJ1bmNhdGVkTm9ybWFsVjIiLCJTdGF0ZWxlc3NXaGlsZSIsIlN0b3BHcmFkaWVudCIsIlN0cmlkZWRTbGljZSIsIlN0cmlkZWRTbGljZUdyYWQiLCJTdWIiLCJTdW0iLCJTdmQiLCJTeW1ib2xpY0dyYWRpZW50IiwiVFBVRW1iZWRkaW5nQWN0aXZhdGlvbnMiLCJUYW4iLCJUYW5oIiwiVGFuaEdyYWQiLCJUZW5zb3JBcnJheUNsb3NlVjMiLCJUZW5zb3JBcnJheUNvbmNhdFYzIiwiVGVuc29yQXJyYXlHYXRoZXJWMyIsIlRlbnNvckFycmF5R3JhZFYzIiwiVGVuc29yQXJyYXlSZWFkVjMiLCJUZW5zb3JBcnJheVNjYXR0ZXJWMyIsIlRlbnNvckFycmF5U2l6ZVYzIiwiVGVuc29yQXJyYXlTcGxpdFYzIiwiVGVuc29yQXJyYXlWMyIsIlRlbnNvckFycmF5V3JpdGVWMyIsIlRlbnNvckxpc3RDb25jYXRWMiIsIlRlbnNvckxpc3RFbGVtZW50U2hhcGUiLCJUZW5zb3JMaXN0RnJvbVRlbnNvciIsIlRlbnNvckxpc3RHYXRoZXIiLCJUZW5zb3JMaXN0R2V0SXRlbSIsIlRlbnNvckxpc3RMZW5ndGgiLCJUZW5zb3JMaXN0UG9wQmFjayIsIlRlbnNvckxpc3RQdXNoQmFjayIsIlRlbnNvckxpc3RSZXNlcnZlIiwiVGVuc29yTGlzdFNldEl0ZW0iLCJUZW5zb3JMaXN0U3BsaXQiLCJUZW5zb3JMaXN0U3RhY2siLCJUZW5zb3JTY2F0dGVyQWRkIiwiVGVuc29yU2NhdHRlck1heCIsIlRlbnNvclNjYXR0ZXJNaW4iLCJUZW5zb3JTY2F0dGVyU3ViIiwiVGVuc29yU2NhdHRlclVwZGF0ZSIsIlRlbnNvclN0cmlkZWRTbGljZVVwZGF0ZSIsIlRpbGUiLCJUb3BLVW5pcXVlIiwiVG9wS1YyIiwiVG9wS1dpdGhVbmlxdWUiLCJUcmFuc3Bvc2UiLCJUcmlkaWFnb25hbFNvbHZlIiwiVHJ1bmNhdGVEaXYiLCJUcnVuY2F0ZU1vZCIsIlRydW5jYXRlZE5vcm1hbCIsIlVuaXF1ZSIsIlVucGFjayIsIlVuc29ydGVkU2VnbWVudE1heCIsIlVuc29ydGVkU2VnbWVudE1pbiIsIlVuc29ydGVkU2VnbWVudFByb2QiLCJVbnNvcnRlZFNlZ21lbnRTdW0iLCJVcHBlckJvdW5kIiwiVmFySXNJbml0aWFsaXplZE9wIiwiVmFyaWFibGVTaGFwZSIsIldoZXJlIiwiV2hpbGUiLCJYZGl2eSIsIlhsYUJyb2FkY2FzdEhlbHBlciIsIlhsYUNvbnYiLCJYbGFDb252VjIiLCJYbGFEZXF1YW50aXplIiwiWGxhRG90IiwiWGxhRG90VjIiLCJYbGFEeW5hbWljU2xpY2UiLCJYbGFEeW5hbWljVXBkYXRlU2xpY2UiLCJYbGFFaW5zdW0iLCJYbGFHYXRoZXIiLCJYbGFIb3N0Q29tcHV0ZSIsIlhsYUlmIiwiWGxhS2V5VmFsdWVTb3J0IiwiWGxhUGFkIiwiWGxhUmVjdiIsIlhsYVJlY3ZGcm9tSG9zdCIsIlhsYVJlZHVjZSIsIlhsYVJlZHVjZVdpbmRvdyIsIlhsYVJlcGxpY2FJZCIsIlhsYVNjYXR0ZXIiLCJYbGFTZWxlY3RBbmRTY2F0dGVyIiwiWGxhU2VsZkFkam9pbnRFaWciLCJYbGFTZW5kIiwiWGxhU2VuZFRvSG9zdCIsIlhsYVNldEJvdW5kIiwiWGxhU2V0RHluYW1pY0RpbWVuc2lvblNpemUiLCJYbGFTaGFyZGluZyIsIlhsYVNvcnQiLCJYbGFTcG1kRnVsbFRvU2hhcmRTaGFwZSIsIlhsYVNwbWRTaGFyZFRvRnVsbFNoYXBlIiwiWGxhU3ZkIiwiWGxhVmFyaWFkaWNSZWR1Y2UiLCJYbGFWYXJpYWRpY1NvcnQiLCJYbGFXaGlsZSIsIlhsb2cxcHkiLCJYbG9neSIsIlplcm9zTGlrZSIsIlpldGEiLCJFbnRlciIsIkV4aXQiLCJMb29wQ29uZCIsIk1lcmdlIiwiTmV4dEl0ZXJhdGlvbiIsIlN3aXRjaCIsIl9BcmciLCJfQXJyYXlUb0xpc3QiLCJfRnVzZWRCYXRjaE5vcm1FeCIsIl9MaXN0VG9BcnJheSIsIl9QYXJhbGxlbENvbmNhdFVwZGF0ZSIsIl9SZWN2VFBVRW1iZWRkaW5nQWN0aXZhdGlvbnMiLCJfUmVjdlRQVUVtYmVkZGluZ0RlZHVwbGljYXRpb25EYXRhIiwiX1JldHZhbCIsIl9TZW5kVFBVRW1iZWRkaW5nR3JhZGllbnRzIiwiX1RQVUNvbXBpbGUiLCJfVFBVRXhlY3V0ZSIsIl9VbmFyeU9wc0NvbXBvc2l0aW9uIiwiVFBVQ29tcGlsYXRpb25SZXN1bHQiLCJUUFVSZXBsaWNhdGVkSW5wdXQiLCJUUFVSZXBsaWNhdGVkT3V0cHV0IiwiVFBVUmVwbGljYXRlTWV0YWRhdGEiLCJNZXJnZVYyQ2hlY2twb2ludHMiLCJSZXN0b3JlVjIiLCJTYXZlVjIiLCJBYm9ydCIsIkFzc2VydCIsIkFzc2lnbiIsIlBsYWNlaG9sZGVyIiwiUGxhY2Vob2xkZXJWMiIsIlNoYXJkZWRGaWxlbmFtZSIsIlN0cmluZ0pvaW4iLCJWYXJpYWJsZSIsIlZhcmlhYmxlVjIiLCJWYXJIYW5kbGVPcCIsIkF1ZGlvU3VtbWFyeSIsIkF1ZGlvU3VtbWFyeVYyIiwiRGVidWdOdW1lcmljU3VtbWFyeSIsIkhpc3RvZ3JhbVN1bW1hcnkiLCJJbWFnZVN1bW1hcnkiLCJNZXJnZVN1bW1hcnkiLCJTY2FsYXJTdW1tYXJ5IiwiU3RhdHNBZ2dyZWdhdG9yU3VtbWFyeSJdO2NvbnN0IHVZdD17ImxpYnJhcnkuZnVuY3Rpb24iOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5pbnB1dCI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ciI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS5saXN0LmIiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC5mIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3QuZnVuYyI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS5saXN0LmkiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC5zIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3Quc2hhcGUiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC5zaGFwZS5kaW0iOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC50ZW5zb3IiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC50eXBlIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLnNoYXBlLmRpbSI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS50ZW5zb3Iuc3RyaW5nX3ZhbCI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS50ZW5zb3IudGVuc29yX3NoYXBlLmRpbSI6ITAsImxpYnJhcnkuZnVuY3Rpb24uc2lnbmF0dXJlLmlucHV0X2FyZyI6ITAsImxpYnJhcnkuZnVuY3Rpb24uc2lnbmF0dXJlLm91dHB1dF9hcmciOiEwLCJsaWJyYXJ5LnZlcnNpb25zIjohMCxub2RlOiEwLCJub2RlLmlucHV0IjohMCwibm9kZS5hdHRyIjohMCwibm9kZS5hdHRyLnZhbHVlLmxpc3QuYiI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LmYiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC5mdW5jIjohMCwibm9kZS5hdHRyLnZhbHVlLmxpc3QuaSI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LnMiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC5zaGFwZSI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LnNoYXBlLmRpbSI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LnRlbnNvciI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LnR5cGUiOiEwLCJub2RlLmF0dHIudmFsdWUuc2hhcGUuZGltIjohMCwibm9kZS5hdHRyLnZhbHVlLnRlbnNvci5zdHJpbmdfdmFsIjohMCwibm9kZS5hdHRyLnZhbHVlLnRlbnNvci50ZW5zb3Jfc2hhcGUuZGltIjohMH0saFl0PXsic3RlcF9zdGF0cy5kZXZfc3RhdHMiOiEwLCJzdGVwX3N0YXRzLmRldl9zdGF0cy5ub2RlX3N0YXRzIjohMCwic3RlcF9zdGF0cy5kZXZfc3RhdHMubm9kZV9zdGF0cy5vdXRwdXQiOiEwLCJzdGVwX3N0YXRzLmRldl9zdGF0cy5ub2RlX3N0YXRzLm1lbW9yeSI6ITAsInN0ZXBfc3RhdHMuZGV2X3N0YXRzLm5vZGVfc3RhdHMub3V0cHV0LnRlbnNvcl9kZXNjcmlwdGlvbi5zaGFwZS5kaW0iOiEwfTtmdW5jdGlvbiBkWXQodCxlKXtsZXQgbj17fSxpPVtdLHI9W10sbz1uO2Z1bmN0aW9uIGEodCxuLGkscil7bGV0IG89dFtuXTtudWxsPT1vP3Rbbl09ci5qb2luKCIuIilpbiBlP1tpXTppOkFycmF5LmlzQXJyYXkobyk/by5wdXNoKGkpOnRbbl09W28saV19cmV0dXJuKGZ1bmN0aW9uIHModCxlLG49MWU2LGk9IlxuIil7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8peyEoZnVuY3Rpb24gYShzLGwsYyl7Y29uc3QgdT1jPj10LmJ5dGVMZW5ndGgsaD1sLnNwbGl0KGkpO2hbMF09cytoWzBdO2NvbnN0IGQ9dT8iIjpoLnBvcCgpO2ZvcihsZXQgdCBvZiBoKXRyeXtlKHQpfWNhdGNoKHQpe3JldHVybiB2b2lkIG8odCl9aWYodSlyZXR1cm4gdm9pZCByKCEwKTtjb25zdCBwPW5ldyBCbG9iKFt0LnNsaWNlKGMsYytuKV0pLGY9bmV3IEZpbGVSZWFkZXI7Zi5vbmxvYWQ9ZnVuY3Rpb24odCl7YShkLHQudGFyZ2V0LnJlc3VsdCxjK24pfSxmLnJlYWRBc1RleHQocCl9KSgiIiwiIiwwKX0pKX0pKHQsKGZ1bmN0aW9uKHQpe2lmKHQ9dC50cmltKCkpc3dpdGNoKHRbdC5sZW5ndGgtMV0pe2Nhc2UieyI6bGV0IGU9dC5zdWJzdHJpbmcoMCx0Lmxlbmd0aC0yKS50cmltKCksbj17fTtpLnB1c2gobyksci5wdXNoKGUpLGEobyxlLG4sciksbz1uO2JyZWFrO2Nhc2UifSI6bz1pLnBvcCgpLHIucG9wKCk7YnJlYWs7ZGVmYXVsdDpsZXQgcz0oZnVuY3Rpb24gZSh0KXtsZXQgZT10LmluZGV4T2YoIjoiKTtyZXR1cm57bmFtZTp0LnN1YnN0cmluZygwLGUpLnRyaW0oKSx2YWx1ZTooZnVuY3Rpb24gbih0KXtpZigidHJ1ZSI9PT10KXJldHVybiEwO2lmKCJmYWxzZSI9PT10KXJldHVybiExO2lmKCciJz09PXRbMF0pcmV0dXJuIHQuc3Vic3RyaW5nKDEsdC5sZW5ndGgtMSk7bGV0IGU9cGFyc2VGbG9hdCh0KTtyZXR1cm4gaXNOYU4oZSk/dDplfSkodC5zdWJzdHJpbmcoZSsyKS50cmltKCkpfX0pKHQpO2EobyxzLm5hbWUscy52YWx1ZSxyLmNvbmNhdChzLm5hbWUpKX19KSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gbn0pKX1sZXQgcFl0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb21wYXRpYmlsaXR5UHJvdmlkZXI9bmV3IGxZdCx0aGlzLmhpZXJhcmNoeVBhcmFtcz1IcXQsdGhpcy5fdGVtcGxhdGU9bnVsbH1fc2VsZWN0aW9uQ2hhbmdlZCgpe3RoaXMuc2VsZWN0aW9uJiZ0aGlzLmRlYm91bmNlKCJzZWxlY3Rpb25jaGFuZ2UiLCgoKT0+e3RoaXMuX2xvYWQodGhpcy5zZWxlY3Rpb24pfSkpfV9sb2FkKHQpe2NvbnN0e3J1bjplLHRhZzpuLHR5cGU6aX09dDtzd2l0Y2goaSl7Y2FzZSB5R3QuT1BfR1JBUEg6Y2FzZSB5R3QuQ09OQ0VQVFVBTF9HUkFQSDp7KGZ1bmN0aW9uKCl7dGhpcy5fc2V0T3V0U3RhdHMobnVsbCl9KS5iaW5kKHRoaXMpKCk7Y29uc3QgdD1uZXcgVVJMU2VhcmNoUGFyYW1zO3Quc2V0KCJydW4iLGUpLHQuc2V0KCJjb25jZXB0dWFsIixTdHJpbmcoaT09PXlHdC5DT05DRVBUVUFMX0dSQVBIKSksbiYmdC5zZXQoInRhZyIsbik7Y29uc3Qgcj1fcigpLnBsdWdpblJvdXRlKCJncmFwaHMiLCIvZ3JhcGgiLHQpO3JldHVybiB0aGlzLl9mZXRjaEFuZENvbnN0cnVjdEhpZXJhcmNoaWNhbEdyYXBoKHIpLnRoZW4oKCgpPT57dGhpcy5fZ3JhcGhSdW5UYWc9e3J1bjplLHRhZzpufX0pKX1jYXNlIHlHdC5QUk9GSUxFOntjb25zdHt0YWdzOnR9PXRoaXMuZGF0YXNldHMuZmluZCgoKHtuYW1lOnR9KT0+dD09PWUpKSxpPXQuZmluZCgodD0+dC50YWc9PT1uKSkub3BHcmFwaD9uOm51bGw7Y29uc29sZS5hc3NlcnQodC5maW5kKCh0PT50LnRhZz09PWkpKSxgUmVxdWlyZWQgdGFnICgke2l9KSBpcyBtaXNzaW5nLmApO2NvbnN0IHI9dGhpcy5fZ3JhcGhSdW5UYWcmJnRoaXMuX2dyYXBoUnVuVGFnLnJ1bj09PWUmJnRoaXMuX2dyYXBoUnVuVGFnLnRhZz09PWk/UHJvbWlzZS5yZXNvbHZlKCk6dGhpcy5fbG9hZCh7cnVuOmUsdGFnOmksdHlwZTp5R3QuT1BfR1JBUEh9KSxvPW5ldyBVUkxTZWFyY2hQYXJhbXM7by5zZXQoInRhZyIsbiksby5zZXQoInJ1biIsZSk7Y29uc3QgYT1fcigpLnBsdWdpblJvdXRlKCJncmFwaHMiLCIvcnVuX21ldGFkYXRhIixvKTtyZXR1cm4gci50aGVuKCgoKT0+dGhpcy5fcmVhZEFuZFBhcnNlTWV0YWRhdGEoYSkpKX1kZWZhdWx0OnJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoYFVua25vd24gc2VsZWN0aW9uIHR5cGU6ICR7aX1gKSl9fV9yZWFkQW5kUGFyc2VNZXRhZGF0YSh0KXt0aGlzLnNldCgicHJvZ3Jlc3MiLHt2YWx1ZTowLG1zZzoiIn0pLChmdW5jdGlvbiBlKHQsbil7cmV0dXJuKGZ1bmN0aW9uIGkodCxlLG4scixvKXtyLnNldE1lc3NhZ2UodCk7dHJ5e2xldCBpPUNHdCh0LG4sbyk7cmV0dXJuIHIudXBkYXRlUHJvZ3Jlc3MoZSksaX1jYXRjaChlKXtyLnJlcG9ydEVycm9yKCJGYWlsZWQgIit0LGUpfX0pKCJSZWFkaW5nIG1ldGFkYXRhIHBidHh0Iiw0MCwoKCk9Pm51bGw9PXQ/UHJvbWlzZS5yZXNvbHZlKG51bGwpOmNZdCh0KSksbixfR3QuRkVUQ0hfTUVUQURBVEFfUEJUWFRfQllURVMpLnRoZW4oKHQ9PlBHdCgiUGFyc2luZyBtZXRhZGF0YS5wYnR4dCIsNjAsKCgpPT5udWxsIT10PyhmdW5jdGlvbiBlKHQpe3JldHVybiBkWXQodCxoWXQpLnRoZW4oKHQ9PnQuc3RlcF9zdGF0cykpfSkodCk6UHJvbWlzZS5yZXNvbHZlKG51bGwpKSxuLF9HdC5QQVJTRV9NRVRBREFUQV9QQlRYVF9JTlRPX09CSkVDVCkpKX0pKHQsQUd0KHRoaXMpKS50aGVuKGZ1bmN0aW9uKHQpe3RoaXMuX3NldE91dFN0YXRzKHQpfS5iaW5kKHRoaXMpKX1fZmV0Y2hBbmRDb25zdHJ1Y3RIaWVyYXJjaGljYWxHcmFwaCh0LGUpe3JldHVybiB0aGlzLnNldCgicHJvZ3Jlc3MiLHt2YWx1ZTowLG1zZzoiIn0pLChmdW5jdGlvbiBpKHQsZSxyLG89bmV3IGxZdCxhPUhxdCl7Y29uc3Qgcz1rR3QodCwzMCwiRGF0YSIpLGw9a0d0KHQsMjAsIkdyYXBoIiksYz1rR3QodCw1MCwiTmFtZXNwYWNlIGhpZXJhcmNoeSIpLHU9RGF0ZS5ub3coKTtyZXR1cm4oZnVuY3Rpb24gaCh0LGUsaSl7cmV0dXJuIFBHdCgiUmVhZGluZyBncmFwaCBwYnR4dCIsNDAsKCgpPT5uKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3Qgbj1EYXRlLm5vdygpO2lmKGUpe2NvbnN0IHQ9eWllbGQgbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsbil7bGV0IGk9bmV3IEZpbGVSZWFkZXI7aS5vbmxvYWQ9KCk9PnQoaS5yZXN1bHQpLGkub25lcnJvcj0oKT0+bihpLmVycm9yKSxpLnJlYWRBc0FycmF5QnVmZmVyKGUpfSkpO3JldHVybiBUR3Qoe3RpbWluZ0lkOl9HdC5GRVRDSF9QQlRYVF9CWVRFU19GUk9NX0ZJTEVTWVNURU0sZXZlbnRWYWx1ZTpEYXRlLm5vdygpLW59KSx0fWNvbnN0IGk9eWllbGQgY1l0KHQpO3JldHVybiBUR3Qoe3RpbWluZ0lkOl9HdC5GRVRDSF9QQlRYVF9CWVRFU19GUk9NX1NFUlZFUixldmVudFZhbHVlOkRhdGUubm93KCktbn0pLGl9KSkpLGksX0d0LkZFVENIX1BCVFhUX0JZVEVTKS50aGVuKCh0PT5QR3QoIlBhcnNpbmcgZ3JhcGgucGJ0eHQiLDYwLCgoKT0+KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGRZdCh0LHVZdCl9KSh0KSksaSxfR3QuUEFSU0VfUEJUWFRfSU5UT19PQkpFQ1QpKSl9KShlLHIscykudGhlbigoZnVuY3Rpb24odCl7aWYoIXQubm9kZSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBncmFwaCBpcyBlbXB0eS4gVGhpcyBjYW4gaGFwcGVuIHdoZW4gVGVuc29yRmxvdyBjb3VsZCBub3QgdHJhY2UgYW55IGdyYXBoLiBQbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvaXNzdWVzLzE5NjEgZm9yIG1vcmUgaW5mb3JtYXRpb24uIik7cmV0dXJuKGZ1bmN0aW9uIGUodCxuLGkpe2xldCByPXt9LG89e30sYT17fSxzPWFXdChuLmluRW1iZWRkaW5nVHlwZXMpLGw9YVd0KG4ub3V0RW1iZWRkaW5nVHlwZXMpLGM9W10sdT10Lm5vZGUsaD1uZXcgQXJyYXkodS5sZW5ndGgpO3JldHVybiBMR3QoIk5vcm1hbGl6aW5nIG5hbWVzIiwzMCwoKCk9PntsZXQgZT1uZXcgQXJyYXkodS5sZW5ndGgpLG49MDtjb25zdCBpPXQ9PntsZXQgaT1uZXcgWEd0KHQpO3JldHVybiBzKGkpPyhjLnB1c2goaS5uYW1lKSxyW2kubmFtZV09aSxpKTpsKGkpPyhjLnB1c2goaS5uYW1lKSxvW2kubmFtZV09aSxTZS5leHBvcnRzLmVhY2goaS5pbnB1dHMsKHQ9PntsZXQgZT10Lm5hbWU7YVtlXT1hW2VdfHxbXSxhW2VdLnB1c2goaSl9KSksaSk6KGVbbl09aSxoW25dPWkubmFtZSxuKyssaSl9O3JldHVybiBTZS5leHBvcnRzLmVhY2godSxpKSx0LmxpYnJhcnkmJnQubGlicmFyeS5mdW5jdGlvbiYmU2UuZXhwb3J0cy5lYWNoKHQubGlicmFyeS5mdW5jdGlvbiwodD0+e2NvbnN0IGU9Vkd0K3Quc2lnbmF0dXJlLm5hbWU7aWYoaSh7bmFtZTplLGlucHV0OltdLGRldmljZToiIixvcDoiIixhdHRyOltdfSksdC5zaWduYXR1cmUuaW5wdXRfYXJnKXtsZXQgbj0wO2NvbnN0IHI9dD0+e2koe25hbWU6ZStIR3QrdC5uYW1lLGlucHV0OltdLGRldmljZToiIixvcDoiaW5wdXRfYXJnIixhdHRyOlt7a2V5OiJUIix2YWx1ZTp7dHlwZTp0LnR5cGV9fV19KS5mdW5jdGlvbklucHV0SW5kZXg9bixuKyt9O3Quc2lnbmF0dXJlLmlucHV0X2FyZy5uYW1lP3IodC5zaWduYXR1cmUuaW5wdXRfYXJnKTpTZS5leHBvcnRzLmVhY2godC5zaWduYXR1cmUuaW5wdXRfYXJnLHIpfWxldCBuPTA7Y29uc3Qgcj17fTtpZih0LnNpZ25hdHVyZS5vdXRwdXRfYXJnKXtjb25zdCBpPXQ9PntyW2UrSEd0K3QubmFtZV09bixuKyt9O3Quc2lnbmF0dXJlLm91dHB1dF9hcmcubmFtZT9pKHQuc2lnbmF0dXJlLm91dHB1dF9hcmcpOlNlLmV4cG9ydHMuZWFjaCh0LnNpZ25hdHVyZS5vdXRwdXRfYXJnLGkpfVNlLmV4cG9ydHMuZWFjaCh0Lm5vZGVfZGVmLCh0PT57dC5uYW1lPWUrIi8iK3QubmFtZSwic3RyaW5nIj09dHlwZW9mIHQuaW5wdXQmJih0LmlucHV0PVt0LmlucHV0XSk7Y29uc3Qgbj1pKHQpO1NlLmV4cG9ydHMuaXNOdW1iZXIoclt0Lm5hbWVdKSYmKG4uZnVuY3Rpb25PdXRwdXRJbmRleD1yW3QubmFtZV0pLFNlLmV4cG9ydHMuZWFjaChuLmlucHV0cywodD0+e3QubmFtZT1lK0hHdCt0Lm5hbWV9KSl9KSl9KSksZS5zcGxpY2UobiksaC5zcGxpY2UobiksZX0pLGksX0d0Lk5PUk1BTElaSU5HX05BTUVTKS50aGVuKCh0PT5MR3QoIkJ1aWxkaW5nIHRoZSBkYXRhIHN0cnVjdHVyZSIsNzAsKCgpPT57bGV0IGU9KGZ1bmN0aW9uIGkodCxlKXtsZXQgbj17fSxpPXt9O3Quc29ydCgpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGgtMTsrK2Upe2xldCByPXRbZV07U2UuZXhwb3J0cy5lYWNoKGNXdChyKS5zbGljZSgwLC0xKSwodD0+e2lbdF09ITB9KSk7Zm9yKGxldCBpPWUrMTtpPHQubGVuZ3RoOysraSl7bGV0IGU9dFtpXTtpZighU2UuZXhwb3J0cy5zdGFydHNXaXRoKGUscikpYnJlYWs7aWYoZS5sZW5ndGg+ci5sZW5ndGgmJmUuY2hhckF0KHIubGVuZ3RoKT09PUhHdCl7bltyXT1zV3Qocik7YnJlYWt9fX1yZXR1cm4gU2UuZXhwb3J0cy5lYWNoKGUsKHQ9Pnt0IGluIGkmJihuW3RdPXNXdCh0KSl9KSksbn0pKGgsYykscz1uZXcgcUd0O3JldHVybiBTZS5leHBvcnRzLmVhY2godCwodD0+e2xldCBuPWVbdC5uYW1lXXx8dC5uYW1lO3Mubm9kZXNbbl09dCx0Lm5hbWUgaW4gYSYmKHQub3V0RW1iZWRkaW5ncz1hW3QubmFtZV0sU2UuZXhwb3J0cy5lYWNoKHQub3V0RW1iZWRkaW5ncywodD0+e3QubmFtZT1lW3QubmFtZV18fHQubmFtZX0pKSksdC5uYW1lPW59KSksU2UuZXhwb3J0cy5lYWNoKHQsKHQ9PntTZS5leHBvcnRzLmVhY2godC5pbnB1dHMsKChpLGEpPT57bGV0IGw9aS5uYW1lO2lmKGwgaW4gcil7bGV0IGk9cltsXTt0LmluRW1iZWRkaW5ncy5wdXNoKGkpO2ZvcihsZXQgciBvZiBpLmlucHV0cylpV3QocyxlW3IubmFtZV18fHIubmFtZSx0LHIsbixhKX1lbHNlIGlmKGwgaW4gbyl7bGV0IHI9b1tsXTtmb3IobGV0IG8gb2Ygci5pbnB1dHMpaVd0KHMsZVtvLm5hbWVdfHxvLm5hbWUsdCxpLG4sYSl9ZWxzZSBpV3QocyxlW2xdfHxsLHQsaSxuLGEpfSkpfSkpLFNlLmV4cG9ydHMuZWFjaChyLCgodCxuKT0+e3QubmFtZT1lW3QubmFtZV18fHQubmFtZX0pKSxzfSksaSxfR3QuQlVJTERfU0xJTV9HUkFQSCkpKX0pKHQscld0LGwpfSksKCgpPT57dGhyb3cgbmV3IEVycm9yKCJNYWxmb3JtZWQgR3JhcGhEZWYuIFRoaXMgY2FuIHNvbWV0aW1lcyBiZSBjYXVzZWQgYnkgYSBiYWQgbmV0d29yayBjb25uZWN0aW9uIG9yIGRpZmZpY3VsdHkgcmVjb25jaWxpbmcgbXVsdGlwbGUgR3JhcGhEZWZzOyBmb3IgdGhlIGxhdHRlciBjYXNlLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvaXNzdWVzLzE5MjkuIil9KSkudGhlbigodD0+bih0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpeyEoZnVuY3Rpb24gZSh0LG4pe2lmKG51bGw9PT1uKXRocm93IG5ldyBFcnJvcigiQ29tcGF0aWJpbGl0eSBwcm92aWRlciByZXF1aXJlZCwgYnV0IGdvdDogIituKTtTZS5leHBvcnRzLmVhY2godC5ub2RlcywodD0+e3QuY29tcGF0aWJsZT1uLm9wVmFsaWQodCksU2UuZXhwb3J0cy5lYWNoKHQuaW5FbWJlZGRpbmdzLCh0PT57dC5jb21wYXRpYmxlPW4ub3BWYWxpZCh0KX0pKSxTZS5leHBvcnRzLmVhY2godC5vdXRFbWJlZGRpbmdzLCh0PT57dC5jb21wYXRpYmxlPW4ub3BWYWxpZCh0KX0pKX0pKX0pKHQsbyk7Y29uc3Qgbj15aWVsZCBGcXQodCxhLGMpO3JldHVybiBUR3Qoe3RpbWluZ0lkOl9HdC5HUkFQSF9MT0FEX1NVQ0NFRURFRCxldmVudFZhbHVlOkRhdGUubm93KCktdX0pLHtncmFwaDp0LGdyYXBoSGllcmFyY2h5Om59fSkpKSkuY2F0Y2goKGU9Pnt0aHJvdyB0LnJlcG9ydEVycm9yKGBHcmFwaCB2aXN1YWxpemF0aW9uIGZhaWxlZC5cblxuJHtlfWAsZSksVEd0KHt0aW1pbmdJZDpfR3QuR1JBUEhfTE9BRF9GQUlMRUQsZXZlbnRWYWx1ZTpEYXRlLm5vdygpLXV9KSxlfSkpfSkoQUd0KHRoaXMpLHQsZSx0aGlzLmNvbXBhdGliaWxpdHlQcm92aWRlcix0aGlzLmhpZXJhcmNoeVBhcmFtcykudGhlbihmdW5jdGlvbih7Z3JhcGg6dCxncmFwaEhpZXJhcmNoeTplfSl7dGhpcy5fc2V0T3V0R3JhcGgodCksdGhpcy5fc2V0T3V0R3JhcGhIaWVyYXJjaHkoZSl9LmJpbmQodGhpcykpfV9zZWxlY3RlZEZpbGVDaGFuZ2VkKCl7dmFyIHQ9dGhpcy5zZWxlY3RlZEZpbGU7aWYoIXQpcmV0dXJuO2NvbnN0IGU9dC50YXJnZXQsbj1lLmZpbGVzWzBdO24mJihlLnZhbHVlPSIiLHRoaXMuX2ZldGNoQW5kQ29uc3RydWN0SGllcmFyY2hpY2FsR3JhcGgobnVsbCxuKSl9fTt0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0scFl0LnByb3RvdHlwZSwiZGF0YXNldHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHBZdC5wcm90b3R5cGUsInByb2dyZXNzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHBZdC5wcm90b3R5cGUsInNlbGVjdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxwWXQucHJvdG90eXBlLCJzZWxlY3RlZEZpbGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0scFl0LnByb3RvdHlwZSwiY29tcGF0aWJpbGl0eVByb3ZpZGVyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHBZdC5wcm90b3R5cGUsImhpZXJhcmNoeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxyZWFkT25seTohMCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsRHF0KV0scFl0LnByb3RvdHlwZSwib3V0R3JhcGhIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3QscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLHFHdCldLHBZdC5wcm90b3R5cGUsIm91dEdyYXBoIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LHJlYWRPbmx5OiEwLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxwWXQucHJvdG90eXBlLCJvdXRTdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxwWXQucHJvdG90eXBlLCJfZ3JhcGhSdW5UYWciLHZvaWQgMCksdChbYSgic2VsZWN0aW9uIiwiY29tcGF0aWJpbGl0eVByb3ZpZGVyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxwWXQucHJvdG90eXBlLCJfc2VsZWN0aW9uQ2hhbmdlZCIsbnVsbCksdChbYSgic2VsZWN0ZWRGaWxlIiwiY29tcGF0aWJpbGl0eVByb3ZpZGVyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxwWXQucHJvdG90eXBlLCJfc2VsZWN0ZWRGaWxlQ2hhbmdlZCIsbnVsbCkscFl0PXQoW2koInRmLWdyYXBoLWRhc2hib2FyZC1sb2FkZXIiKV0scFl0KTtsZXQgZll0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZGF0YXNldHM9W10sdGhpcy5fZGF0YXNldHNGZXRjaGVkPSExLHRoaXMuX3NlbGVjdGVkRGF0YXNldD0wLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcix0aGlzLl9jYW5jZWxsZXI9bmV3IFhSLHRoaXMuc3BlY2lmaWNIZWFsdGhQaWxsU3RlcD0wLHRoaXMuaGVhbHRoUGlsbHNUb2dnbGVkT249ITEsdGhpcy5fZGVidWdnZXJOdW1lcmljQWxlcnRzPVtdLHRoaXMuX25vZGVOYW1lc1RvSGVhbHRoUGlsbHM9e30sdGhpcy5faGVhbHRoUGlsbFJlcXVlc3RJZD0xLHRoaXMuX2hlYWx0aFBpbGxTdGVwUmVxdWVzdFRpbWVyRGVsYXk9NTAwLHRoaXMucnVuPVJzKCJydW4iLHtkZWZhdWx0VmFsdWU6IiIsdXNlTG9jYWxTdG9yYWdlOiExfSkuY2FsbCh0aGlzKSx0aGlzLl9ydW5PYnNlcnZlcj1PcygicnVuIix7ZGVmYXVsdFZhbHVlOiIiLHBvbHltZXJQcm9wZXJ0eToicnVuIix1c2VMb2NhbFN0b3JhZ2U6ITF9KX1hdHRhY2hlZCgpe3RoaXMuc2V0KCJfaXNBdHRhY2hlZCIsITApfWRldGFjaGVkKCl7dGhpcy5zZXQoIl9pc0F0dGFjaGVkIiwhMSl9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS10b2dnbGUtZXhwYW5kIix0aGlzLl9oYW5kbGVOb2RlVG9nZ2xlRXhwYW5kLmJpbmQodGhpcykpfXJlbG9hZCgpe3RoaXMuX2RlYnVnZ2VyRGF0YUVuYWJsZWR8fHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QoX3IoKS5wbHVnaW5zTGlzdGluZygpKS50aGVuKHRoaXMuX2NhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e3QuY2FuY2VsbGVkfHx0LnZhbHVlLmRlYnVnZ2VyJiZ0aGlzLnNldCgiX2RlYnVnZ2VyRGF0YUVuYWJsZWQiLCEwKX0pKSksdGhpcy5fbWF5YmVGZXRjaEhlYWx0aFBpbGxzKCl9X2ZpdCgpe3RoaXMuJCQoIiNncmFwaGJvYXJkIikuZml0KCl9X29uRG93bmxvYWRJbWFnZVJlcXVlc3RlZCh0KXt0aGlzLiQkKCIjZ3JhcGhib2FyZCIpLmRvd25sb2FkQXNJbWFnZSh0LmRldGFpbCl9X2dldEdyYXBoRGlzcGxheUNsYXNzTmFtZSh0LGUpe3JldHVybiB0fHxlLmxlbmd0aD8iIjoibm8tZ3JhcGgifV9mZXRjaERhdGFzZXQoKXtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdChfcigpLnBsdWdpblJvdXRlKCJncmFwaHMiLCIvaW5mbyIpKX1fZmV0Y2hIZWFsdGhQaWxscyh0LGUpe2NvbnN0IG49e25vZGVfbmFtZXM6SlNPTi5zdHJpbmdpZnkodCkscnVuOiJfX2RlYnVnZ2VyX2RhdGFfXyJ9O3ZvaWQgMCE9PWUmJihuLnN0ZXA9ZSk7Y29uc3QgaT1fcigpLnBsdWdpblJvdXRlKCJkZWJ1Z2dlciIsIi9oZWFsdGhfcGlsbHMiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdChpLG4pfV9mZXRjaERlYnVnZ2VyTnVtZXJpY3NBbGVydHMoKXtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdChfcigpLnBsdWdpblJvdXRlKCJkZWJ1Z2dlciIsIi9udW1lcmljc19hbGVydF9yZXBvcnQiKSl9X2dyYXBoVXJsKHQsZSxuKXtyZXR1cm4gX3IoKS5wbHVnaW5Sb3V0ZSgiZ3JhcGhzIiwiL2dyYXBoIixuZXcgVVJMU2VhcmNoUGFyYW1zKHtydW46dCxsaW1pdF9hdHRyX3NpemU6ZSxsYXJnZV9hdHRyc19rZXk6bn0pKX1fc2hvdWxkUmVxdWVzdEhlYWx0aFBpbGxzKCl7cmV0dXJuIHRoaXMuX2RlYnVnZ2VyRGF0YUVuYWJsZWQmJnRoaXMuaGVhbHRoUGlsbHNUb2dnbGVkT24mJnRoaXMuX3JlbmRlckhpZXJhcmNoeSYmdGhpcy5fZGF0YXNldHNTdGF0ZSh0aGlzLl9kYXRhc2V0c0ZldGNoZWQsdGhpcy5fZGF0YXNldHMsIlBSRVNFTlQiKX1fbWF5YmVJbml0aWFsaXplRGFzaGJvYXJkKCl7IXRoaXMuX2luaXRpYWxpemVkJiZ0aGlzLl9pc0F0dGFjaGVkJiYodGhpcy5zZXQoIl9jb21wYXRpYmlsaXR5UHJvdmlkZXIiLG5ldyBsWXQpLHRoaXMuX2luaXRpYWxpemVkPSEwLHRoaXMuX2ZldGNoRGF0YXNldCgpLnRoZW4oKHQ9Pntjb25zdCBlPU9iamVjdC5rZXlzKHQpO3RoaXMuX2RhdGFzZXRzPWUuc29ydChucikubWFwKChlPT57Y29uc3Qgbj10W2VdLGk9T2JqZWN0LmtleXMobi50YWdzKS5zb3J0KG5yKS5tYXAoKHQ9Pm4udGFnc1t0XSkpLm1hcCgoKHt0YWc6dCxjb25jZXB0dWFsX2dyYXBoOmUsb3BfZ3JhcGg6bixwcm9maWxlOml9KT0+KHt0YWc6dCxkaXNwbGF5TmFtZTp0LGNvbmNlcHR1YWxHcmFwaDplLG9wR3JhcGg6bixwcm9maWxlOml9KSkpO3JldHVybntuYW1lOmUsdGFnczpuLnJ1bl9ncmFwaD9be3RhZzpudWxsLGRpc3BsYXlOYW1lOiJEZWZhdWx0Iixjb25jZXB0dWFsR3JhcGg6ITEsb3BHcmFwaDohMCxwcm9maWxlOiExfSwuLi5pXTppfX0pKSx0aGlzLl9kYXRhc2V0c0ZldGNoZWQ9ITB9KSkpfV9kZXRlcm1pbmVTZWxlY3RlZERhdGFzZXQoKXt2YXIgdD10aGlzLl9kYXRhc2V0c0ZldGNoZWQsZT10aGlzLl9kYXRhc2V0cyxuPXRoaXMucnVuO2lmKCFuKXJldHVybiB2b2lkIHRoaXMuc2V0KCJfc2VsZWN0ZWREYXRhc2V0IiwwKTtjb25zdCBpPWUuZmluZEluZGV4KCh0PT50Lm5hbWU9PT1uKSk7aWYoLTEhPT1pKXRoaXMuc2V0KCJfc2VsZWN0ZWREYXRhc2V0IixpKTtlbHNlIGlmKHQpe2NvbnN0IHQ9dGhpcy4kJCgiI2Vycm9yLWRpYWxvZyIpO3QudGV4dENvbnRlbnQ9YE5vIGRhdGFzZXQgbmFtZWQgIiR7bn0iIGNvdWxkIGJlIGZvdW5kLmAsdC5vcGVuKCl9fV91cGRhdGVTZWxlY3RlZERhdGFzZXROYW1lKCl7dmFyIHQ9dGhpcy5fZGF0YXNldHMsZT10aGlzLl9zZWxlY3RlZERhdGFzZXQ7dGhpcy5fZGF0YXNldHNGZXRjaGVkJiYodC5sZW5ndGg8PWV8fHRoaXMuc2V0KCJydW4iLHRbZV0ubmFtZSkpfV9yZXF1ZXN0SGVhbHRoUGlsbHMoKXt0aGlzLnNldCgiX2FyZUhlYWx0aFBpbGxzTG9hZGluZyIsITApO3ZhciB0PSsrdGhpcy5faGVhbHRoUGlsbFJlcXVlc3RJZDtudWxsIT09dGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZCYmKHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZCksdGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZD1udWxsKSx0aGlzLmFsbFN0ZXBzTW9kZUVuYWJsZWQ/dGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZD1udWxsLHRoaXMuX2luaXRpYXRlTmV0d29ya1JlcXVlc3RGb3JIZWFsdGhQaWxscyh0KX0uYmluZCh0aGlzKSx0aGlzLl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lckRlbGF5KTp0aGlzLl9pbml0aWF0ZU5ldHdvcmtSZXF1ZXN0Rm9ySGVhbHRoUGlsbHModCl9X2luaXRpYXRlTmV0d29ya1JlcXVlc3RGb3JIZWFsdGhQaWxscyh0KXtpZih0aGlzLl9oZWFsdGhQaWxsUmVxdWVzdElkIT09dClyZXR1cm47Y29uc3QgZT10aGlzLmFsbFN0ZXBzTW9kZUVuYWJsZWQ/dGhpcy5zcGVjaWZpY0hlYWx0aFBpbGxTdGVwOnZvaWQgMCxuPXRoaXMuX2ZldGNoSGVhbHRoUGlsbHModGhpcy5fcmVuZGVySGllcmFyY2h5LmdldE5hbWVzT2ZSZW5kZXJlZE9wcygpLGUpLGk9dGhpcy5fZmV0Y2hEZWJ1Z2dlck51bWVyaWNzQWxlcnRzKCk7UHJvbWlzZS5hbGwoW24saV0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIG49ZVswXSxpPWVbMV07aWYodGhpcy5oZWFsdGhQaWxsc1RvZ2dsZWRPbiYmdD09PXRoaXMuX2hlYWx0aFBpbGxSZXF1ZXN0SWQpe2Zvcih2YXIgciBpbiBuKXt0aGlzLnNldCgiX2hlYWx0aFBpbGxTdGVwSW5kZXgiLG5bcl0ubGVuZ3RoLTEpO2JyZWFrfXRoaXMuc2V0KCJfZGVidWdnZXJOdW1lcmljQWxlcnRzIixpKSx0aGlzLnNldCgiX25vZGVOYW1lc1RvSGVhbHRoUGlsbHMiLG4pLHRoaXMuc2V0KCJfYXJlSGVhbHRoUGlsbHNMb2FkaW5nIiwhMSksdGhpcy5zZXQoIl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lcklkIixudWxsKX19LmJpbmQodGhpcykpfV9kYXRhc2V0c1N0YXRlKHQsZSxuKXtyZXR1cm4gdD9lJiZlLmxlbmd0aD8iUFJFU0VOVCI9PT1uOiJFTVBUWSI9PT1uOiJOT1RfTE9BREVEIj09PW59X3JlbmRlckhpZXJhcmNoeUNoYW5nZWQodCl7dGhpcy5yZWxvYWQoKX1faGFuZGxlTm9kZVRvZ2dsZUV4cGFuZCgpe3RoaXMuX21heWJlRmV0Y2hIZWFsdGhQaWxscygpfV9oZWFsdGhQaWxsc1RvZ2dsZWRPbkNoYW5nZWQodCl7dD90aGlzLnJlbG9hZCgpOnRoaXMuc2V0KCJfbm9kZU5hbWVzVG9IZWFsdGhQaWxscyIse30pfV9tYXliZUZldGNoSGVhbHRoUGlsbHMoKXt0aGlzLl9zaG91bGRSZXF1ZXN0SGVhbHRoUGlsbHMoKSYmdGhpcy5fcmVxdWVzdEhlYWx0aFBpbGxzKCl9fTtmWXQudGVtcGxhdGU9X2VgCiAgICA8cGFwZXItZGlhbG9nIGlkPSJlcnJvci1kaWFsb2ciIHdpdGgtYmFja2Ryb3A+PC9wYXBlci1kaWFsb2c+CiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPHRmLWdyYXBoLWNvbnRyb2xzCiAgICAgICAgaWQ9ImNvbnRyb2xzIgogICAgICAgIGNsYXNzPSJzaWRlYmFyIgogICAgICAgIHNsb3Q9InNpZGViYXIiCiAgICAgICAgZGV2aWNlcy1mb3Itc3RhdHM9Int7X2RldmljZXNGb3JTdGF0c319IgogICAgICAgIGNvbG9yLWJ5LXBhcmFtcz0iW1tfY29sb3JCeVBhcmFtc11dIgogICAgICAgIHN0YXRzPSJbW19zdGF0c11dIgogICAgICAgIGNvbG9yLWJ5PSJ7e19jb2xvckJ5fX0iCiAgICAgICAgZGF0YXNldHM9IltbX2RhdGFzZXRzXV0iCiAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0iW1tfcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgc2VsZWN0aW9uPSJ7e19zZWxlY3Rpb259fSIKICAgICAgICBzZWxlY3RlZC1maWxlPSJ7e19zZWxlY3RlZEZpbGV9fSIKICAgICAgICBzZWxlY3RlZC1ub2RlPSJ7e19zZWxlY3RlZE5vZGV9fSIKICAgICAgICBoZWFsdGgtcGlsbHMtZmVhdHVyZS1lbmFibGVkPSJbW19kZWJ1Z2dlckRhdGFFbmFibGVkXV0iCiAgICAgICAgaGVhbHRoLXBpbGxzLXRvZ2dsZWQtb249Int7aGVhbHRoUGlsbHNUb2dnbGVkT259fSIKICAgICAgICBvbi1maXQtdGFwPSJfZml0IgogICAgICAgIHRyYWNlLWlucHV0cz0ie3tfdHJhY2VJbnB1dHN9fSIKICAgICAgICBhdXRvLWV4dHJhY3Qtbm9kZXM9Int7X2F1dG9FeHRyYWN0Tm9kZXN9fSIKICAgICAgICBvbi1kb3dubG9hZC1pbWFnZS1yZXF1ZXN0ZWQ9Il9vbkRvd25sb2FkSW1hZ2VSZXF1ZXN0ZWQiCiAgICAgID48L3RmLWdyYXBoLWNvbnRyb2xzPgogICAgICA8ZGl2CiAgICAgICAgY2xhc3MkPSJjZW50ZXIgW1tfZ2V0R3JhcGhEaXNwbGF5Q2xhc3NOYW1lKF9zZWxlY3RlZEZpbGUsIF9kYXRhc2V0cyldXSIKICAgICAgICBzbG90PSJjZW50ZXIiCiAgICAgID4KICAgICAgICA8dGYtZ3JhcGgtZGFzaGJvYXJkLWxvYWRlcgogICAgICAgICAgaWQ9ImxvYWRlciIKICAgICAgICAgIGRhdGFzZXRzPSJbW19kYXRhc2V0c11dIgogICAgICAgICAgc2VsZWN0aW9uPSJbW19zZWxlY3Rpb25dXSIKICAgICAgICAgIHNlbGVjdGVkLWZpbGU9IltbX3NlbGVjdGVkRmlsZV1dIgogICAgICAgICAgb3V0LWdyYXBoLWhpZXJhcmNoeT0ie3tfZ3JhcGhIaWVyYXJjaHl9fSIKICAgICAgICAgIG91dC1ncmFwaD0ie3tfZ3JhcGh9fSIKICAgICAgICAgIG91dC1zdGF0cz0ie3tfc3RhdHN9fSIKICAgICAgICAgIHByb2dyZXNzPSJ7e19wcm9ncmVzc319IgogICAgICAgICAgaGllcmFyY2h5LXBhcmFtcz0iW1tfaGllcmFyY2h5UGFyYW1zXV0iCiAgICAgICAgICBjb21wYXRpYmlsaXR5LXByb3ZpZGVyPSJbW19jb21wYXRpYmlsaXR5UHJvdmlkZXJdXSIKICAgICAgICA+PC90Zi1ncmFwaC1kYXNoYm9hcmQtbG9hZGVyPgogICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtbWVzc2FnZSI+CiAgICAgICAgICA8aDM+Tm8gZ3JhcGggZGVmaW5pdGlvbiBmaWxlcyB3ZXJlIGZvdW5kLjwvaDM+CiAgICAgICAgICA8cD4KICAgICAgICAgICAgVG8gc3RvcmUgYSBncmFwaCwgY3JlYXRlIGEKICAgICAgICAgICAgPGNvZGU+dGYuc3VtbWFyeS5GaWxlV3JpdGVyPC9jb2RlPgogICAgICAgICAgICBhbmQgcGFzcyB0aGUgZ3JhcGggZWl0aGVyIHZpYSB0aGUgY29uc3RydWN0b3IsIG9yIGJ5IGNhbGxpbmcgaXRzCiAgICAgICAgICAgIDxjb2RlPmFkZF9ncmFwaCgpPC9jb2RlPiBtZXRob2QuIFlvdSBtYXkgd2FudCB0byBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL3RlbnNvcmJvYXJkL2dyYXBocyIKICAgICAgICAgICAgICA+ZXhhbWluaW5nIHRoZSBUZW5zb3JGbG93IGdyYXBoIHR1dG9yaWFsPC9hCiAgICAgICAgICAgID4uCiAgICAgICAgICA8L3A+CgogICAgICAgICAgPHA+CiAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvIGFkZAogICAgICAgICAgICBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgID4KICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgPi4KICAgICAgICAgIDwvcD4KCiAgICAgICAgICA8cD4KICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgPGEKICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgID4KICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhcGhib2FyZCI+CiAgICAgICAgICA8dGYtZ3JhcGgtYm9hcmQKICAgICAgICAgICAgaWQ9ImdyYXBoYm9hcmQiCiAgICAgICAgICAgIGRldmljZXMtZm9yLXN0YXRzPSJbW19kZXZpY2VzRm9yU3RhdHNdXSIKICAgICAgICAgICAgY29sb3ItYnk9Int7X2NvbG9yQnl9fSIKICAgICAgICAgICAgY29sb3ItYnktcGFyYW1zPSJ7e19jb2xvckJ5UGFyYW1zfX0iCiAgICAgICAgICAgIGdyYXBoLWhpZXJhcmNoeT0iW1tfZ3JhcGhIaWVyYXJjaHldXSIKICAgICAgICAgICAgZ3JhcGg9IltbX2dyYXBoXV0iCiAgICAgICAgICAgIGhpZXJhcmNoeS1wYXJhbXM9IltbX2hpZXJhcmNoeVBhcmFtc11dIgogICAgICAgICAgICBwcm9ncmVzcz0iW1tfcHJvZ3Jlc3NdXSIKICAgICAgICAgICAgZGVidWdnZXItZGF0YS1lbmFibGVkPSJbW19kZWJ1Z2dlckRhdGFFbmFibGVkXV0iCiAgICAgICAgICAgIGFyZS1oZWFsdGgtcGlsbHMtbG9hZGluZz0iW1tfYXJlSGVhbHRoUGlsbHNMb2FkaW5nXV0iCiAgICAgICAgICAgIGRlYnVnZ2VyLW51bWVyaWMtYWxlcnRzPSJbW19kZWJ1Z2dlck51bWVyaWNBbGVydHNdXSIKICAgICAgICAgICAgbm9kZS1uYW1lcy10by1oZWFsdGgtcGlsbHM9IltbX25vZGVOYW1lc1RvSGVhbHRoUGlsbHNdXSIKICAgICAgICAgICAgYWxsLXN0ZXBzLW1vZGUtZW5hYmxlZD0ie3thbGxTdGVwc01vZGVFbmFibGVkfX0iCiAgICAgICAgICAgIHNwZWNpZmljLWhlYWx0aC1waWxsLXN0ZXA9Int7c3BlY2lmaWNIZWFsdGhQaWxsU3RlcH19IgogICAgICAgICAgICBoZWFsdGgtcGlsbC1zdGVwLWluZGV4PSJbW19oZWFsdGhQaWxsU3RlcEluZGV4XV0iCiAgICAgICAgICAgIHJlbmRlci1oaWVyYXJjaHk9Int7X3JlbmRlckhpZXJhcmNoeX19IgogICAgICAgICAgICBzZWxlY3RlZC1ub2RlPSJ7e19zZWxlY3RlZE5vZGV9fSIKICAgICAgICAgICAgc3RhdHM9IltbX3N0YXRzXV0iCiAgICAgICAgICAgIHRyYWNlLWlucHV0cz0iW1tfdHJhY2VJbnB1dHNdXSIKICAgICAgICAgICAgYXV0by1leHRyYWN0LW5vZGVzPSJbW19hdXRvRXh0cmFjdE5vZGVzXV0iCiAgICAgICAgICA+PC90Zi1ncmFwaC1ib2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IC9kZWVwLyB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuc2lkZWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jZW50ZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIHBhcGVyLWRpYWxvZyB7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgfQoKICAgICAgLm5vLWRhdGEtbWVzc2FnZSB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KCiAgICAgIC5ncmFwaGJvYXJkIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5uby1ncmFwaCAuZ3JhcGhib2FyZCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmNlbnRlcjpub3QoLm5vLWdyYXBoKSAubm8tZGF0YS1tZXNzYWdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICBhIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItbGluayk7CiAgICAgIH0KCiAgICAgIGE6dmlzaXRlZCB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLWxpbmstdmlzaXRlZCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZll0LnByb3RvdHlwZSwiX2RhdGFzZXRzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZll0LnByb3RvdHlwZSwiX2RhdGFzZXRzRmV0Y2hlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmWXQucHJvdG90eXBlLCJfc2VsZWN0ZWREYXRhc2V0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfcmVuZGVySGllcmFyY2h5Q2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIseVd0KV0sZll0LnByb3RvdHlwZSwiX3JlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLGZZdC5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixYUildLGZZdC5wcm90b3R5cGUsIl9jYW5jZWxsZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxmWXQucHJvdG90eXBlLCJfZGVidWdnZXJEYXRhRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGZZdC5wcm90b3R5cGUsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sZll0LnByb3RvdHlwZSwic3BlY2lmaWNIZWFsdGhQaWxsU3RlcCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9oZWFsdGhQaWxsc1RvZ2dsZWRPbkNoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxmWXQucHJvdG90eXBlLCJoZWFsdGhQaWxsc1RvZ2dsZWRPbiIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZll0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZll0LnByb3RvdHlwZSwiX2lzQXR0YWNoZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxmWXQucHJvdG90eXBlLCJfaW5pdGlhbGl6ZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxmWXQucHJvdG90eXBlLCJfYXJlSGVhbHRoUGlsbHNMb2FkaW5nIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXksbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZll0LnByb3RvdHlwZSwiX2RlYnVnZ2VyTnVtZXJpY0FsZXJ0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxmWXQucHJvdG90eXBlLCJfbm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmWXQucHJvdG90eXBlLCJfaGVhbHRoUGlsbFN0ZXBJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmWXQucHJvdG90eXBlLCJfaGVhbHRoUGlsbFJlcXVlc3RJZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmWXQucHJvdG90eXBlLCJfaGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmWXQucHJvdG90eXBlLCJfaGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJEZWxheSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZll0LnByb3RvdHlwZSwicnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITAsb2JzZXJ2ZXI6Il9ydW5PYnNlcnZlciJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZll0LnByb3RvdHlwZSwicnVuIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGZZdC5wcm90b3R5cGUsIl9zZWxlY3Rpb24iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZll0LnByb3RvdHlwZSwiX2NvbXBhdGliaWxpdHlQcm92aWRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGZZdC5wcm90b3R5cGUsIl90cmFjZUlucHV0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGZZdC5wcm90b3R5cGUsIl9hdXRvRXh0cmFjdE5vZGVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGZZdC5wcm90b3R5cGUsIl9zZWxlY3RlZEZpbGUiLHZvaWQgMCksdChbYSgiX2lzQXR0YWNoZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZZdC5wcm90b3R5cGUsIl9tYXliZUluaXRpYWxpemVEYXNoYm9hcmQiLG51bGwpLHQoW2EoIl9kYXRhc2V0c0ZldGNoZWQiLCJfZGF0YXNldHMiLCJydW4iKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZZdC5wcm90b3R5cGUsIl9kZXRlcm1pbmVTZWxlY3RlZERhdGFzZXQiLG51bGwpLHQoW2EoIl9kYXRhc2V0c0ZldGNoZWQiLCJfZGF0YXNldHMiLCJfc2VsZWN0ZWREYXRhc2V0IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxmWXQucHJvdG90eXBlLCJfdXBkYXRlU2VsZWN0ZWREYXRhc2V0TmFtZSIsbnVsbCksZll0PXQoW2koInRmLWdyYXBoLWRhc2hib2FyZCIpXSxmWXQpO2NvbnN0IG1ZdD1MTjtsZXQgZ1l0PWNsYXNzIGV4dGVuZHMoZXIoaWwoeWUpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMubW9kZT0ib2Zmc2V0Iix0aGlzLnRpbWVQcm9wZXJ0eT0ic3RlcCIsdGhpcy5iaW5zPSJiaW5zIix0aGlzLng9IngiLHRoaXMuZHg9ImR4Iix0aGlzLnk9InkiLHRoaXMuY29sb3JTY2FsZT1tWXQuc2NhbGVPcmRpbmFsKG1ZdC5zY2hlbWVDYXRlZ29yeTEwKSx0aGlzLm1vZGVUcmFuc2l0aW9uRHVyYXRpb249NTAwLHRoaXMuX25hbWU9bnVsbCx0aGlzLl9kYXRhPW51bGx9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuc2NvcGVTdWJ0cmVlKHRoaXMuJC5zdmcsITApfWF0dGFjaGVkKCl7dGhpcy5fYXR0YWNoZWQ9ITB9ZGV0YWNoZWQoKXt0aGlzLl9hdHRhY2hlZD0hMX1zZXRTZXJpZXNEYXRhKHQsZSl7dGhpcy5fbmFtZT10LHRoaXMuX2RhdGE9ZSx0aGlzLnJlZHJhdygpfV9yZWRyYXdPbkNoYW5nZSgpe3RoaXMucmVkcmF3KCl9cmVkcmF3KCl7dGhpcy5fZHJhdygwKX1fbW9kZVJlZHJhdygpe3RoaXMuX2RyYXcodGhpcy5tb2RlVHJhbnNpdGlvbkR1cmF0aW9uKX1fZHJhdyh0KXtpZighdGhpcy5fYXR0YWNoZWR8fCF0aGlzLl9kYXRhKXJldHVybjtpZih2b2lkIDA9PT10KXRocm93IG5ldyBFcnJvcigidnotaGlzdG9ncmFtLXRpbWVzZXJpZXMgX2RyYXcgbmVlZHMgZHVyYXRpb24iKTtpZih0aGlzLl9kYXRhLmxlbmd0aDw9MCl0aHJvdyBuZXcgRXJyb3IoIk5vdCBlbm91Z2ggc3RlcHMgaW4gdGhlIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXS5oYXNPd25Qcm9wZXJ0eSh0aGlzLmJpbnMpKXRocm93IG5ldyBFcnJvcigiTm8gYmlucyBwcm9wZXJ0eSBvZiAnIit0aGlzLmJpbnMrIicgaW4gZGF0YSIpO2lmKHRoaXMuX2RhdGFbMF1bdGhpcy5iaW5zXS5sZW5ndGg8PTApdGhyb3cgbmV3IEVycm9yKCJNdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGJpbiBpbiBiaW5zIGluIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXVt0aGlzLmJpbnNdWzBdLmhhc093blByb3BlcnR5KHRoaXMueCkpdGhyb3cgbmV3IEVycm9yKCJObyB4IHByb3BlcnR5ICciK3RoaXMueCsiJyBvbiBiaW5zIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXVt0aGlzLmJpbnNdWzBdLmhhc093blByb3BlcnR5KHRoaXMuZHgpKXRocm93IG5ldyBFcnJvcigiTm8gZHggcHJvcGVydHkgJyIrdGhpcy5keCsiJyBvbiBiaW5zIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXVt0aGlzLmJpbnNdWzBdLmhhc093blByb3BlcnR5KHRoaXMueSkpdGhyb3cgbmV3IEVycm9yKCJObyB5IHByb3BlcnR5ICciK3RoaXMueSsiJyBvbiBiaW5zIGRhdGEiKTt2YXIgZT10aGlzLnRpbWVQcm9wZXJ0eSxuPXRoaXMueCxpPXRoaXMuYmlucyxyPXRoaXMuZHgsbz10aGlzLnksYT10aGlzLl9kYXRhLHM9dGhpcy5tb2RlLGw9bVl0LmhjbCh0aGlzLmNvbG9yU2NhbGUodGhpcy5fbmFtZSkpLGM9bVl0LnNlbGVjdCh0aGlzLiQudG9vbHRpcCksdT1mdW5jdGlvbih0KXtyZXR1cm4gdFtuXX0saD1mdW5jdGlvbih0KXtyZXR1cm4gdFtvXX0sZD1mdW5jdGlvbih0KXtyZXR1cm4gdFtuXSt0W3JdfSxwPWZ1bmN0aW9uKHQpe3JldHVybiB0W2VdfTsicmVsYXRpdmUiPT09ZSYmKHA9ZnVuY3Rpb24odCl7cmV0dXJuIHQud2FsbF90aW1lLWFbMF0ud2FsbF90aW1lfSk7dmFyIGYsbT10aGlzLiQuc3ZnLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGc9bS53aWR0aCxfPW0uaGVpZ2h0LHk9e3RvcDo1LHJpZ2h0OjYwLGJvdHRvbToyMCxsZWZ0OjI0fTsib2Zmc2V0Ij09PXM/eS50b3A9NSsoZj1fLzIuNSk6Zj1fLXkudG9wLXkuYm90dG9tO3ZhciB2PWcteS5sZWZ0LXkucmlnaHQsYj1fLXkudG9wLXkuYm90dG9tO21ZdC5taW4oYSx1KSxtWXQubWF4KGEsZCk7dmFyIHg9bVl0LmZvcm1hdCgiLjNuIiksdz1tWXQuZm9ybWF0KCIuMGYiKTsid2FsbF90aW1lIj09PWU/dz1tWXQudGltZUZvcm1hdCgiJW0vJWQgJVgiKToicmVsYXRpdmUiPT09ZSYmKHc9ZnVuY3Rpb24odCl7cmV0dXJuIG1ZdC5mb3JtYXQoIi4xciIpKHQvMzZlNSkrImgifSk7dmFyIFM9YS5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuW21ZdC5taW4odFtpXSx1KSxtWXQubWF4KHRbaV0sZCldfSkpLE09YS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBtWXQuZXh0ZW50KHRbaV0saCl9KSksRT01MDAsVD1tWXQuZXh0ZW50KGEscCksQz0oIndhbGxfdGltZSI9PT1lP21ZdC5zY2FsZVRpbWUoKTptWXQuc2NhbGVMaW5lYXIoKSkuZG9tYWluKFQpLnJhbmdlKFswLCJvZmZzZXQiPT09cz9iOjBdKSxBPW1ZdC5zY2FsZUxpbmVhcigpLmRvbWFpbihbMCxtWXQubWF4KGEsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1bZV1bMV19KSldKS5yYW5nZShbZiwwXSksaz1tWXQuc2NhbGVMaW5lYXIoKS5kb21haW4oQS5kb21haW4oKSkucmFuZ2UoW0UsMF0pLEw9bVl0LnNjYWxlTGluZWFyKCkuZG9tYWluKFttWXQubWluKGEsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIFNbZV1bMF19KSksbVl0Lm1heChhLChmdW5jdGlvbih0LGUpe3JldHVybiBTW2VdWzFdfSkpXSkubmljZSgpLnJhbmdlKFswLHZdKSxQPW1ZdC5zY2FsZUxpbmVhcigpLmRvbWFpbihMLmRvbWFpbigpKS5yYW5nZShbMCxFXSk7Y29uc3QgTj1tWXQuc2NhbGVMaW5lYXIoKS5kb21haW4obVl0LmV4dGVudChhLHApKS5yYW5nZShbbC5icmlnaHRlcigpLGwuZGFya2VyKCldKS5pbnRlcnBvbGF0ZShtWXQuaW50ZXJwb2xhdGVIY2wpO3ZhciBJPW1ZdC5heGlzQm90dG9tKEwpLnRpY2tzKE1hdGgubWF4KDIsdi8yMCkpLFI9bVl0LmF4aXNSaWdodChDKS50aWNrcyhNYXRoLm1heCgyLGIvMTUpKS50aWNrRm9ybWF0KHcpLE89bVl0LmF4aXNSaWdodChBKS50aWNrcyhNYXRoLm1heCgyLGIvMTUpKS50aWNrU2l6ZSh2KzUpLnRpY2tGb3JtYXQoeCksej1mdW5jdGlvbih0KXtyZXR1cm4gdFtuXSt0W3JdLzJ9LEQ9bVl0LmxpbmUoKS54KChmdW5jdGlvbih0KXtyZXR1cm4gUCh6KHQpKX0pKS55KChmdW5jdGlvbih0KXtyZXR1cm4gayh0W29dKX0pKSxCPXRoaXMuJC5zdmcsSD1tWXQuc2VsZWN0KEIpLEY9SC50cmFuc2l0aW9uKCkuZHVyYXRpb24odCksVj1ILnNlbGVjdCgiZyIpLmNsYXNzZWQoInNtYWxsIiwoZnVuY3Rpb24oKXtyZXR1cm4gdj4wJiZ2PD0xNTB9KSkuY2xhc3NlZCgibWVkaXVtIiwoZnVuY3Rpb24oKXtyZXR1cm4gdj4xNTAmJnY8PTMwMH0pKS5jbGFzc2VkKCJsYXJnZSIsKGZ1bmN0aW9uKCl7cmV0dXJuIHY+MzAwfSkpLFU9Ri5zZWxlY3QoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIit5LmxlZnQrIiwiK3kudG9wKyIpIiksaj1tWXQuYmlzZWN0b3IoZCkubGVmdCxHPVYuc2VsZWN0KCIuc3RhZ2UiKS5vbigibW91c2VvdmVyIiwoZnVuY3Rpb24oKXtKLnN0eWxlKCJvcGFjaXR5IiwxKSxldC5zdHlsZSgib3BhY2l0eSIsMSkscnQuc3R5bGUoIm9wYWNpdHkiLDEpLHN0LnN0eWxlKCJvcGFjaXR5IiwxKSxjLnN0eWxlKCJvcGFjaXR5IiwxKX0pKS5vbigibW91c2VvdXQiLChmdW5jdGlvbigpe0ouc3R5bGUoIm9wYWNpdHkiLDApLGV0LnN0eWxlKCJvcGFjaXR5IiwwKSxydC5zdHlsZSgib3BhY2l0eSIsMCksc3Quc3R5bGUoIm9wYWNpdHkiLDApLEouY2xhc3NlZCgiaG92ZXItY2xvc2VzdCIsITEpLEsuY2xhc3NlZCgib3V0bGluZS1ob3ZlciIsITEpLGMuc3R5bGUoIm9wYWNpdHkiLDApfSkpLm9uKCJtb3VzZW1vdmUiLChmdW5jdGlvbiBXKCl7dmFyIHQsYT1tWXQubW91c2UodGhpcyksbD1MLmludmVydChhWzBdKTtmdW5jdGlvbiB1KHQpe3JldHVybiBNYXRoLm1pbih0W2ldLmxlbmd0aC0xLGoodFtpXSxsKSl9Qy5pbnZlcnQoYVsxXSk7dmFyIGgsZD0xLzA7Si5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbihlLGwpe3ZhciBjPXUoZSk7aD1lO3ZhciBtPUwoZVtpXVtjXVtuXStlW2ldW2NdW3JdLzIpLGc9QShlW2ldW2NdW29dKSxfPSJvZmZzZXQiPT09cz9DKHAoZSkpLShmLWcpOmcseT1NYXRoLmFicyhhWzFdLV8pO3JldHVybiB5PGQmJihkPXksdD1lKSwidHJhbnNsYXRlKCIrbSsiLCIrZysiKSJ9KSksSi5zZWxlY3QoInRleHQiKS50ZXh0KChmdW5jdGlvbih0KXt2YXIgZT11KHQpO3JldHVybiB0W2ldW2VdW29dfSkpLEouY2xhc3NlZCgiaG92ZXItY2xvc2VzdCIsKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dH0pKSxLLmNsYXNzZWQoIm91dGxpbmUtaG92ZXIiLChmdW5jdGlvbihlKXtyZXR1cm4gZT09PXR9KSk7dmFyIG09dShoKTtldC5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrTChoW2ldW21dW25dK2hbaV1bbV1bcl0vMikrIiwgIitiKyIpIn0pKS5zZWxlY3QoInRleHQiKS50ZXh0KChmdW5jdGlvbih0KXtyZXR1cm4geChoW2ldW21dW25dK2hbaV1bbV1bcl0vMil9KSk7dmFyIGc9Ui50aWNrRm9ybWF0KCk7cnQuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24oZSl7cmV0dXJuInRyYW5zbGF0ZSgiK3YrIiwgIisoIm9mZnNldCI9PT1zP0MocCh0KSk6MCkrIikifSkpLnN0eWxlKCJkaXNwbGF5Iiwib2Zmc2V0Ij09PXM/IiI6Im5vbmUiKS5zZWxlY3QoInRleHQiKS50ZXh0KChmdW5jdGlvbihlKXtyZXR1cm4gZyhwKHQpKX0pKTt2YXIgXz1PLnRpY2tGb3JtYXQoKTtzdC5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbihlKXtyZXR1cm4idHJhbnNsYXRlKCIrdisiLCAiKygib2Zmc2V0Ij09PXM/MDpBKHRbaV1bbV1bb10pKSsiKSJ9KSkuc3R5bGUoImRpc3BsYXkiLCJvZmZzZXQiPT09cz8ibm9uZSI6IiIpLnNlbGVjdCgidGV4dCIpLnRleHQoKGZ1bmN0aW9uKGUpe3JldHVybiBfKHRbaV1bbV1bb10pfSkpO3ZhciB5PW1ZdC5tb3VzZShCKTtjLnN0eWxlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIisoeVswXSsxNSkrInB4LCIrKHlbMV0tMTUpKyJweCkiKS5zZWxlY3QoInNwYW4iKS50ZXh0KCJvZmZzZXQiPT09cz9fKHRbaV1bbV1bb10pOigic3RlcCI9PT1lPyJzdGVwICI6IiIpK2cocCh0KSkpfSkpO0cuc2VsZWN0KCIuYmFja2dyb3VuZCIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiKy15LmxlZnQrIiwiKy15LnRvcCsiKSIpLmF0dHIoIndpZHRoIixnKS5hdHRyKCJoZWlnaHQiLF8pO3ZhciBxPUcuc2VsZWN0QWxsKCIuaGlzdG9ncmFtIikuZGF0YShhKTtxLmV4aXQoKS5yZW1vdmUoKTt2YXIgWT1xLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJoaXN0b2dyYW0iKSxYPVkubWVyZ2UocSkuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gcCh0KS1wKGUpfSkpLCQ9VS5zZWxlY3RBbGwoIi5oaXN0b2dyYW0iKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKDAsICIrKCJvZmZzZXQiPT09cz9DKHAodCkpLWY6MCkrIikifSkpO1kuYXBwZW5kKCJsaW5lIikuYXR0cigiY2xhc3MiLCJiYXNlbGluZSIpLCQuc2VsZWN0KCIuYmFzZWxpbmUiKS5zdHlsZSgic3Ryb2tlLW9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4ib2Zmc2V0Ij09PXM/LjE6MH0pKS5hdHRyKCJ5MSIsZikuYXR0cigieTIiLGYpLmF0dHIoIngyIix2KSxZLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwib3V0bGluZSIpO3ZhciBLPVguc2VsZWN0KCIub3V0bGluZSIpLmF0dHIoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKS5hdHRyKCJkIiwoZnVuY3Rpb24odCl7cmV0dXJuKGZ1bmN0aW9uKHQpe3JldHVybiJNIitQKHoodFswXSkpKyIsIitrKDApKyJMIitEKHQpLnNsaWNlKDEpKyJMIitQKHoodFt0Lmxlbmd0aC0xXSkpKyIsIitrKDApfSkodFtpXSl9KSkuc3R5bGUoInN0cm9rZS13aWR0aCIsMSk7JC5zZWxlY3QoIi5vdXRsaW5lIikuYXR0cigidHJhbnNmb3JtIiwic2NhbGUoIit2L0UrIiwgIitmL0UrIikiKS5zdHlsZSgic3Ryb2tlIiwoZnVuY3Rpb24odCl7cmV0dXJuIm9mZnNldCI9PT1zPyIiOk4ocCh0KSl9KSkuc3R5bGUoImZpbGwtb3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiJvZmZzZXQiPT09cz8xOjB9KSkuc3R5bGUoImZpbGwiLChmdW5jdGlvbih0KXtyZXR1cm4gTihwKHQpKX0pKTt2YXIgWj1ZLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiaG92ZXIiKSxKPVguc2VsZWN0KCIuaG92ZXIiKS5zdHlsZSgiZmlsbCIsKGZ1bmN0aW9uKHQpe3JldHVybiBOKHAodCkpfSkpO1ouYXBwZW5kKCJjaXJjbGUiKS5hdHRyKCJyIiwyKSxaLmFwcGVuZCgidGV4dCIpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLmF0dHIoImR4Iiw0KTt2YXIgUT1WLnNlbGVjdCgiLngtYXhpcy1ob3ZlciIpLnNlbGVjdEFsbCgiLmxhYmVsIikuZGF0YShbIngiXSksdHQ9US5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwibGFiZWwiKSxldD1RLm1lcmdlKHR0KTt0dC5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4IiwtMjApLmF0dHIoInkiLDYpLmF0dHIoIndpZHRoIiw0MCkuYXR0cigiaGVpZ2h0IiwxNCksdHQuYXBwZW5kKCJsaW5lIikuYXR0cigieDEiLDApLmF0dHIoIngyIiwwKS5hdHRyKCJ5MSIsMCkuYXR0cigieTIiLDYpLHR0LmFwcGVuZCgidGV4dCIpLmF0dHIoImR5IiwxOCk7dmFyIG50PVYuc2VsZWN0KCIueS1heGlzLWhvdmVyIikuc2VsZWN0QWxsKCIubGFiZWwiKS5kYXRhKFsieSJdKSxpdD1udC5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwibGFiZWwiKSxydD1udC5tZXJnZShpdCk7aXQuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsOCkuYXR0cigieSIsLTYpLmF0dHIoIndpZHRoIiw0MCkuYXR0cigiaGVpZ2h0IiwxNCksaXQuYXBwZW5kKCJsaW5lIikuYXR0cigieDEiLDApLmF0dHIoIngyIiw2KS5hdHRyKCJ5MSIsMCkuYXR0cigieTIiLDApLGl0LmFwcGVuZCgidGV4dCIpLmF0dHIoImR4Iiw4KS5hdHRyKCJkeSIsNCk7dmFyIG90PVYuc2VsZWN0KCIueS1zbGljZS1heGlzLWhvdmVyIikuc2VsZWN0QWxsKCIubGFiZWwiKS5kYXRhKFsieSJdKSxhdD1vdC5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwibGFiZWwiKSxzdD1vdC5tZXJnZShhdCk7YXQuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsOCkuYXR0cigieSIsLTYpLmF0dHIoIndpZHRoIiw0MCkuYXR0cigiaGVpZ2h0IiwxNCksYXQuYXBwZW5kKCJsaW5lIikuYXR0cigieDEiLDApLmF0dHIoIngyIiw2KS5hdHRyKCJ5MSIsMCkuYXR0cigieTIiLDApLGF0LmFwcGVuZCgidGV4dCIpLmF0dHIoImR4Iiw4KS5hdHRyKCJkeSIsNCksVS5zZWxlY3QoIi55LmF4aXMuc2xpY2UiKS5zdHlsZSgib3BhY2l0eSIsIm9mZnNldCI9PT1zPzA6MSkuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKDAsICIrKCJvZmZzZXQiPT09cz8tZjowKSsiKSIpLmNhbGwoTyksVS5zZWxlY3QoIi54LmF4aXMiKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMCwgIitiKyIpIikuY2FsbChJKSxVLnNlbGVjdCgiLnkuYXhpcyIpLnN0eWxlKCJvcGFjaXR5Iiwib2Zmc2V0Ij09PXM/MTowKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIit2KyIsICIrKCJvZmZzZXQiPT09cz8wOmIpKyIpIikuY2FsbChSKSxVLnNlbGVjdEFsbCgiLnRpY2sgdGV4dCIpLmF0dHIoImZpbGwiLCIjYWFhIiksVS5zZWxlY3RBbGwoIi5heGlzIHBhdGguZG9tYWluIikuYXR0cigic3Ryb2tlIiwibm9uZSIpfX07ZnVuY3Rpb24gX1l0KHQpe2NvbnN0W2UsbixpXT10O3JldHVybnt3YWxsX3RpbWU6ZSxzdGVwOm4sbWluOllsKGkubWFwKCgoW3QsLF0pPT50KSkpLG1heDpXbChpLm1hcCgoKFssdF0pPT50KSkpLGJ1Y2tldHM6aS5tYXAoKChbdCxlLG5dKT0+KHtsZWZ0OnQscmlnaHQ6ZSxjb3VudDpufSkpKX19ZnVuY3Rpb24geVl0KHQsZSxuLGk9MzApe249PT1lJiYobj0xLjEqZSsxLGU9ZS8xLjEtMSk7Y29uc3Qgcj0obi1lKS9pO2xldCBvPTA7cmV0dXJuIHpsKGUsbixyKS5tYXAoKGk9Pntjb25zdCBhPWkrcjtsZXQgcz0wO2Zvcig7bzx0LmJ1Y2tldHMubGVuZ3RoOyl7Y29uc3Qgcj1NYXRoLm1pbihuLHQuYnVja2V0c1tvXS5yaWdodCksbD1NYXRoLm1heChlLHQuYnVja2V0c1tvXS5sZWZ0KSxjPU1hdGgubWluKHIsYSktTWF0aC5tYXgobCxpKSx1PWMvKHItbCkqdC5idWNrZXRzW29dLmNvdW50O2lmKHMrPWM+MD91OjAscj5hKWJyZWFrO28rK31yZXR1cm57eDppLGR4OnIseTpzfX0pKX1nWXQudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGlkPSJ0b29sdGlwIj48c3Bhbj48L3NwYW4+PC9kaXY+CiAgICA8c3ZnIGlkPSJzdmciPgogICAgICA8Zz4KICAgICAgICA8ZyBjbGFzcz0iYXhpcyB4Ij48L2c+CiAgICAgICAgPGcgY2xhc3M9ImF4aXMgeSI+PC9nPgogICAgICAgIDxnIGNsYXNzPSJheGlzIHkgc2xpY2UiPjwvZz4KICAgICAgICA8ZyBjbGFzcz0ic3RhZ2UiPgogICAgICAgICAgPHJlY3QgY2xhc3M9ImJhY2tncm91bmQiPjwvcmVjdD4KICAgICAgICA8L2c+CiAgICAgICAgPGcgY2xhc3M9IngtYXhpcy1ob3ZlciI+PC9nPgogICAgICAgIDxnIGNsYXNzPSJ5LWF4aXMtaG92ZXIiPjwvZz4KICAgICAgICA8ZyBjbGFzcz0ieS1zbGljZS1heGlzLWhvdmVyIj48L2c+CiAgICAgIDwvZz4KICAgIDwvc3ZnPgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAjYWFhOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItYmctY29sb3I6ICNmZmY7CiAgICAgICAgLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1vdXRsaW5lLWNvbG9yOiAjZmZmOwogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItb3V0bGluZS1jb2xvcjogIzAwMDsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgewogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItYmctY29sb3I6IHZhcigKICAgICAgICAgIC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yCiAgICAgICAgKTsKICAgICAgICAtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLW91dGxpbmUtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNjAwKTsKICAgICAgICAtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLWhvdmVyLW91dGxpbmUtY29sb3I6ICNmZmY7CiAgICAgIH0KCiAgICAgIHN2ZyB7CiAgICAgICAgZm9udC1mYW1pbHk6IHJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgIH0KCiAgICAgIHRleHQgewogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgI3Rvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLmJhY2tncm91bmQgewogICAgICAgIGZpbGwtb3BhY2l0eTogMDsKICAgICAgICBmaWxsOiByZWQ7CiAgICAgIH0KCiAgICAgIC5oaXN0b2dyYW0gewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuaG92ZXIgewogICAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgICAgIGRvbWluYW50LWJhc2VsaW5lOiBtaWRkbGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLmhvdmVyIGNpcmNsZSB7CiAgICAgICAgc3Ryb2tlOiB3aGl0ZTsKICAgICAgICBzdHJva2Utb3BhY2l0eTogMC41OwogICAgICAgIHN0cm9rZS13aWR0aDogMXB4OwogICAgICB9CgogICAgICAuaG92ZXIgdGV4dCB7CiAgICAgICAgZmlsbDogYmxhY2s7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLmhvdmVyLmhvdmVyLWNsb3Nlc3QgY2lyY2xlIHsKICAgICAgICBmaWxsOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1ob3Zlci1vdXRsaW5lLWNvbG9yKSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaG92ZXIuaG92ZXItY2xvc2VzdCB0ZXh0IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuYmFzZWxpbmUgewogICAgICAgIHN0cm9rZTogYmxhY2s7CiAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTsKICAgICAgfQoKICAgICAgLm91dGxpbmUgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1vdXRsaW5lLWNvbG9yKTsKICAgICAgICBzdHJva2Utb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAub3V0bGluZS5vdXRsaW5lLWhvdmVyIHsKICAgICAgICBzdHJva2U6IHZhcigtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLWhvdmVyLW91dGxpbmUtY29sb3IpICFpbXBvcnRhbnQ7CiAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC54LWF4aXMtaG92ZXIsCiAgICAgIC55LWF4aXMtaG92ZXIsCiAgICAgIC55LXNsaWNlLWF4aXMtaG92ZXIgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIC5sYWJlbCwKICAgICAgLnktYXhpcy1ob3ZlciAubGFiZWwsCiAgICAgIC55LXNsaWNlLWF4aXMtaG92ZXIgLmxhYmVsIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB0ZXh0LWFuY2hvcjogZW5kOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIHRleHQgewogICAgICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC55LWF4aXMtaG92ZXIgdGV4dCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciB0ZXh0IHsKICAgICAgICB0ZXh0LWFuY2hvcjogc3RhcnQ7CiAgICAgIH0KCiAgICAgIC54LWF4aXMtaG92ZXIgbGluZSwKICAgICAgLnktYXhpcy1ob3ZlciBsaW5lLAogICAgICAueS1zbGljZS1heGlzLWhvdmVyIGxpbmUgewogICAgICAgIHN0cm9rZTogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIHJlY3QsCiAgICAgIC55LWF4aXMtaG92ZXIgcmVjdCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciByZWN0IHsKICAgICAgICBmaWxsOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1ob3Zlci1iZy1jb2xvcik7CiAgICAgIH0KCiAgICAgICN0b29sdGlwLAogICAgICAueC1heGlzLWhvdmVyIHRleHQsCiAgICAgIC55LWF4aXMtaG92ZXIgdGV4dCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciB0ZXh0IHsKICAgICAgICBjb2xvcjogdmFyKC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItb3V0bGluZS1jb2xvcik7CiAgICAgIH0KCiAgICAgIC5heGlzIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC5heGlzIHBhdGguZG9tYWluIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICB9CgogICAgICAuYXhpcyAudGljayBsaW5lIHsKICAgICAgICBzdHJva2U6ICNkZGQ7CiAgICAgIH0KCiAgICAgIC5heGlzLnNsaWNlIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAuYXhpcy5zbGljZSAudGljayBsaW5lIHsKICAgICAgICBzdHJva2UtZGFzaGFycmF5OiAyOwogICAgICB9CgogICAgICAuc21hbGwgLmF4aXMgdGV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICAuc21hbGwgLmF4aXMgLnRpY2s6Zmlyc3Qtb2YtdHlwZSB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAuc21hbGwgLmF4aXMgLnRpY2s6bGFzdC1vZi10eXBlIHRleHQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5tZWRpdW0gLmF4aXMgdGV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICAubWVkaXVtIC5heGlzIC50aWNrOm50aC1jaGlsZCgybiArIDEpIHRleHQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5sYXJnZSAuYXhpcyB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICAgIC5sYXJnZSAuYXhpcyAudGljazpudGgtY2hpbGQoMm4gKyAxKSB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGdZdC5wcm90b3R5cGUsIm1vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZ1l0LnByb3RvdHlwZSwidGltZVByb3BlcnR5Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGdZdC5wcm90b3R5cGUsImJpbnMiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZ1l0LnByb3RvdHlwZSwieCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxnWXQucHJvdG90eXBlLCJkeCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxnWXQucHJvdG90eXBlLCJ5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGdZdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sZ1l0LnByb3RvdHlwZSwibW9kZVRyYW5zaXRpb25EdXJhdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGdZdC5wcm90b3R5cGUsIl9hdHRhY2hlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxnWXQucHJvdG90eXBlLCJfbmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZ1l0LnByb3RvdHlwZSwiX2RhdGEiLHZvaWQgMCksdChbYSgidGltZVByb3BlcnR5IiwiY29sb3JTY2FsZSIsIl9hdHRhY2hlZCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sZ1l0LnByb3RvdHlwZSwiX3JlZHJhd09uQ2hhbmdlIixudWxsKSx0KFthKCJtb2RlIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxnWXQucHJvdG90eXBlLCJfbW9kZVJlZHJhdyIsbnVsbCksZ1l0PXQoW2koInZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzIildLGdZdCk7bGV0IHZZdD1jbGFzcyBleHRlbmRzKExUdChlcih5ZSkpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5nZXREYXRhTG9hZE5hbWU9KHtydW46dH0pPT50LHRoaXMucmVxdWVzdERhdGE9KHQsZSxuKT0+e2NvbnN0IGk9X3IoKS5wbHVnaW5Sb3V0ZSgiaGlzdG9ncmFtcyIsIi9oaXN0b2dyYW1zIik7UHJvbWlzZS5hbGwodC5tYXAoKHQ9Pntjb25zdCBuPWlPKGkse3RhZzp0LnRhZyxydW46dC5ydW59KTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KG4pLnRoZW4oKG49PntlKHtpdGVtOnQsZGF0YTpufSl9KSl9KSkpLmZpbmFsbHkoKCgpPT57bigpfSkpfSx0aGlzLmxvYWREYXRhQ2FsbGJhY2s9KHQsZSxuKT0+e2NvbnN0IGk9KGZ1bmN0aW9uIHIodCl7Y29uc3QgZT10Lm1hcChfWXQpLG49WWwoZSwodD0+dC5taW4pKSxpPVdsKGUsKHQ9PnQubWF4KSk7cmV0dXJuIGUubWFwKCh0PT4oe3dhbGxfdGltZTp0LndhbGxfdGltZSxzdGVwOnQuc3RlcCxiaW5zOnlZdCh0LG4saSl9KSkpfSkobiksbz10aGlzLmdldERhdGFMb2FkTmFtZShlKTt0aGlzLiQuY2hhcnQuc2V0U2VyaWVzRGF0YShvLGkpfSx0aGlzLl9jb2xvclNjYWxlRnVuY3Rpb249R1IsdGhpcy5fZXhwYW5kZWQ9ITF9X3JlbG9hZE9uUnVuVGFnUmVxdWVzdE1hbmFnZXJDaGFuZ2UoKXt0aGlzLnJlbG9hZCgpfV91cGRhdGVEYXRhVG9Mb2FkKCl7dGhpcy5kYXRhVG9Mb2FkPVt7cnVuOnRoaXMucnVuLHRhZzp0aGlzLnRhZ31dfWdldCBfcnVuQ29sb3IoKXtyZXR1cm4gdGhpcy5fY29sb3JTY2FsZUZ1bmN0aW9uKHRoaXMucnVuKX1yZWRyYXcoKXt0aGlzLiQuY2hhcnQucmVkcmF3KCl9X3RvZ2dsZUV4cGFuZGVkKHQpe3RoaXMuc2V0KCJfZXhwYW5kZWQiLCF0aGlzLl9leHBhbmRlZCksdGhpcy5yZWRyYXcoKX19O3ZZdC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBydW49IltbcnVuXV0iCiAgICAgIGRpc3BsYXktbmFtZT0iW1t0YWdNZXRhZGF0YS5kaXNwbGF5TmFtZV1dIgogICAgICBkZXNjcmlwdGlvbj0iW1t0YWdNZXRhZGF0YS5kZXNjcmlwdGlvbl1dIgogICAgICBjb2xvcj0iW1tfcnVuQ29sb3JdXSIKICAgID48L3RmLWNhcmQtaGVhZGluZz4KICAgIDwhLS0KICAgICAgVGhlIG1haW4gaGlzdG9ncmFtIHRoYXQgd2UgcmVuZGVyLiBEYXRhIGlzIHNldCBkaXJlY3RseSB3aXRoCiAgICAgIFxgc2V0U2VyaWVzRGF0YVxgLCBub3Qgd2l0aCBhIGJvdW5kIHByb3BlcnR5LgogICAgLS0+CiAgICA8dnotaGlzdG9ncmFtLXRpbWVzZXJpZXMKICAgICAgaWQ9ImNoYXJ0IgogICAgICB0aW1lLXByb3BlcnR5PSJbW3RpbWVQcm9wZXJ0eV1dIgogICAgICBtb2RlPSJbW2hpc3RvZ3JhbU1vZGVdXSIKICAgICAgY29sb3Itc2NhbGU9IltbX2NvbG9yU2NhbGVGdW5jdGlvbl1dIgogICAgPjwvdnotaGlzdG9ncmFtLXRpbWVzZXJpZXM+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyI+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIHNlbGVjdGVkJD0iW1tfZXhwYW5kZWRdXSIKICAgICAgICBpY29uPSJmdWxsc2NyZWVuIgogICAgICAgIG9uLXRhcD0iX3RvZ2dsZUV4cGFuZGVkIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHdpZHRoOiAzMzBweDsKICAgICAgICBoZWlnaHQ6IDIzNXB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CiAgICAgIDpob3N0KFtfZXhwYW5kZWRdKSB7CiAgICAgICAgd2lkdGg6IDcwMHB4OwogICAgICAgIGhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIHZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzIHsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGNvbG9yOiAjMjE5NmYzOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CgogICAgICB0Zi1jYXJkLWhlYWRpbmcgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgd2lkdGg6IDkwJTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHZZdC5wcm90b3R5cGUsInJ1biIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx2WXQucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdll0LnByb3RvdHlwZSwiZ2V0RGF0YUxvYWROYW1lIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0sdll0LnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdll0LnByb3RvdHlwZSwibG9hZERhdGFDYWxsYmFjayIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx2WXQucHJvdG90eXBlLCJ0YWdNZXRhZGF0YSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx2WXQucHJvdG90eXBlLCJ0aW1lUHJvcGVydHkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sdll0LnByb3RvdHlwZSwiaGlzdG9ncmFtTW9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLHZZdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlRnVuY3Rpb24iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sdll0LnByb3RvdHlwZSwiX2V4cGFuZGVkIix2b2lkIDApLHQoW2EoInJ1biIsInRhZyIsInJlcXVlc3RNYW5hZ2VyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx2WXQucHJvdG90eXBlLCJfcmVsb2FkT25SdW5UYWdSZXF1ZXN0TWFuYWdlckNoYW5nZSIsbnVsbCksdChbYSgicnVuIiwidGFnIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx2WXQucHJvdG90eXBlLCJfdXBkYXRlRGF0YVRvTG9hZCIsbnVsbCksdChbcygicnVuIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sdll0LnByb3RvdHlwZSwiX3J1bkNvbG9yIixudWxsKSx2WXQ9dChbaSgidGYtaGlzdG9ncmFtLWxvYWRlciIpXSx2WXQpO2xldCBiWXQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5faGlzdG9ncmFtTW9kZT0ib2Zmc2V0Iix0aGlzLl90aW1lUHJvcGVydHk9InN0ZXAiLHRoaXMuX3Jlc3RhbXA9ITEsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IGRyfV9yZWRyYXdDYXRlZ29yeVBhbmUodCxlKXtlJiZ0LnRhcmdldC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1oaXN0b2dyYW0tbG9hZGVyIikuZm9yRWFjaCgodD0+dC5yZWRyYXcoKSkpfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKCk9Pnt0aGlzLl9yZWxvYWRIaXN0b2dyYW1zKCl9KSl9X2ZldGNoVGFncygpe2NvbnN0IHQ9X3IoKS5wbHVnaW5Sb3V0ZSgiaGlzdG9ncmFtcyIsIi90YWdzIik7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbigodD0+e2lmKFNlLmV4cG9ydHMuaXNFcXVhbCh0LHRoaXMuX3J1blRvVGFnSW5mbykpcmV0dXJuO2NvbnN0IGU9U2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+T2JqZWN0LmtleXModCkpKSxuPWFyKGUpO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIiwwPT09bi5sZW5ndGgpLHRoaXMuc2V0KCJfcnVuVG9UYWciLGUpLHRoaXMuc2V0KCJfcnVuVG9UYWdJbmZvIix0KSx0aGlzLmFzeW5jKCgoKT0+e3RoaXMuc2V0KCJfY2F0ZWdvcmllc0RvbVJlYWR5IiwhMCl9KSl9KSl9X3JlbG9hZEhpc3RvZ3JhbXMoKXt0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtaGlzdG9ncmFtLWxvYWRlciIpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfWdldCBfY2F0ZWdvcmllcygpe3JldHVybiBNcih0aGlzLl9ydW5Ub1RhZyx0aGlzLl9zZWxlY3RlZFJ1bnMsdGhpcy5fdGFnRmlsdGVyKX1fdGFnTWV0YWRhdGEodCxlLG4pe3JldHVybiB0W2VdW25dfX07ZnVuY3Rpb24geFl0KHQpe3JldHVybiIiIT09dC5kaXNwbGF5TmFtZSYmdm9pZCAwIT09dC5kaXNwbGF5TmFtZT90LmRpc3BsYXlOYW1lOnQubmFtZX1mdW5jdGlvbiB3WXQodCl7aWYoIiIhPT10LmRpc3BsYXlOYW1lJiZ2b2lkIDAhPT10LmRpc3BsYXlOYW1lKXJldHVybiB0LmRpc3BsYXlOYW1lO2xldCBlPXQubmFtZS5ncm91cCxuPXQubmFtZS50YWc7cmV0dXJuIHZvaWQgMD09PWUmJihlPSIiKSx2b2lkIDA9PT1uJiYobj0iIiksIiI9PT1lP246ZSsiLiIrbn1mdW5jdGlvbiBTWXQodCxlKXtyZXR1cm4gZTx0LmhwYXJhbUNvbHVtbnMubGVuZ3RoP3hZdCh0LmhwYXJhbUNvbHVtbnNbZV0uaHBhcmFtSW5mbyk6d1l0KHQubWV0cmljQ29sdW1uc1tlLXQuaHBhcmFtQ29sdW1ucy5sZW5ndGhdLm1ldHJpY0luZm8pfWZ1bmN0aW9uIE1ZdCh0KXtyZXR1cm4gdC5ocGFyYW1Db2x1bW5zLmxlbmd0aH1mdW5jdGlvbiBFWXQodCl7cmV0dXJuIHQubWV0cmljQ29sdW1ucy5sZW5ndGh9ZnVuY3Rpb24gVFl0KHQpe3JldHVybiBNWXQodCkrRVl0KHQpfWZ1bmN0aW9uIENZdCh0LGUpe3JldHVybiB0W2VdfWZ1bmN0aW9uIEFZdCh0LGUpe3JldHVybiB0LmZpbmQoKHQ9PlNlLmV4cG9ydHMuaXNFcXVhbCh0Lm5hbWUsZSkpKX1mdW5jdGlvbiBrWXQodCxlLG4pe3JldHVybiBlLmhwYXJhbXNbdC5ocGFyYW1Db2x1bW5zW25dLmhwYXJhbUluZm8ubmFtZV19ZnVuY3Rpb24gTFl0KHQsZSxuKXtjb25zdCBpPUFZdChlLm1ldHJpY1ZhbHVlcyx0Lm1ldHJpY0NvbHVtbnNbbl0ubWV0cmljSW5mby5uYW1lKTtyZXR1cm4gdm9pZCAwPT09aT92b2lkIDA6aS52YWx1ZX1mdW5jdGlvbiBQWXQodCxlLG4pe3JldHVybiBuPHQuaHBhcmFtQ29sdW1ucy5sZW5ndGg/a1l0KHQsZSxuKTpMWXQodCxlLG4tdC5ocGFyYW1Db2x1bW5zLmxlbmd0aCl9ZnVuY3Rpb24gTll0KHQsZSxuKXtyZXR1cm4gTGwoZSwoZT0+UFl0KHQsZSxuKSkpfWZ1bmN0aW9uIElZdCh0LGUsbil7bGV0IGk7aWYobjxlLmhwYXJhbUluZm9zLmxlbmd0aClpPXQuaHBhcmFtQ29sdW1ucy5maW5kSW5kZXgoKHQ9PnQuaHBhcmFtSW5mby5uYW1lPT09ZS5ocGFyYW1JbmZvc1tuXS5uYW1lKSk7ZWxzZXtjb25zdCByPWUubWV0cmljSW5mb3Nbbi1lLmhwYXJhbUluZm9zLmxlbmd0aF0ubmFtZTtpPXQuaHBhcmFtQ29sdW1ucy5sZW5ndGgrdC5tZXRyaWNDb2x1bW5zLmZpbmRJbmRleCgodD0+dC5tZXRyaWNJbmZvLm5hbWU9PT1yKSl9cmV0dXJuIGNvbnNvbGUuYXNzZXJ0KC0xIT09aSksaX1mdW5jdGlvbiBSWXQodCl7cmV0dXJuIHQuaHBhcmFtSW5mb3MubGVuZ3RofWZ1bmN0aW9uIE9ZdCh0KXtyZXR1cm4gdC5tZXRyaWNJbmZvcy5sZW5ndGh9ZnVuY3Rpb24gell0KHQsZSxuKXtyZXR1cm4gTGwoZSwoZT0+Rll0KHQsZSxuKSkpfWZ1bmN0aW9uIERZdCh0LGUpe3JldHVybiB0LmZpbmQoKHQ9PnQubmFtZT09PWUpKX1mdW5jdGlvbiBCWXQodCxlLG4pe3JldHVybiBlLmhwYXJhbXNbdC5ocGFyYW1JbmZvc1tuXS5uYW1lXX1mdW5jdGlvbiBIWXQodCxlLG4pe2NvbnN0IGk9QVl0KGUubWV0cmljVmFsdWVzLHQubWV0cmljSW5mb3Nbbl0ubmFtZSk7cmV0dXJuIHZvaWQgMD09PWk/dm9pZCAwOmkudmFsdWV9ZnVuY3Rpb24gRll0KHQsZSxuKXtyZXR1cm4gbjx0LmhwYXJhbUluZm9zLmxlbmd0aD9CWXQodCxlLG4pOkhZdCh0LGUsbi10LmhwYXJhbUluZm9zLmxlbmd0aCl9ZnVuY3Rpb24gVll0KHQpe3JldHVybiBTZS5leHBvcnRzLmlzTnVtYmVyKHQpP3QudG9QcmVjaXNpb24oNSk6dm9pZCAwPT09dD8iIjp0LnRvU3RyaW5nKCl9ZnVuY3Rpb24gVVl0KHQsZSl7cmV0dXJuIHQqdCtlKmV9ZnVuY3Rpb24gall0KHQsZSxuLGkpe3JldHVybiBNYXRoLnNxcnQoVVl0KHQtbixlLWkpKX1mdW5jdGlvbiBHWXQodCxlLG4saSxyLG8pe2lmKHQ8biYmZTxpKXJldHVybiBqWXQodCxlLG4saSk7aWYobjw9dCYmdDxyJiZlPGkpcmV0dXJuIGktZTtpZihyPD10JiZlPGkpcmV0dXJuIGpZdCh0LGUscixpKTtpZih0PG4mJmk8PWUmJmU8bylyZXR1cm4gbi10O2lmKG48PXQmJnQ8ciYmaTw9ZSYmZTxvKXJldHVybiAwO2lmKHI8PXQmJmk8PWUmJmU8bylyZXR1cm4gdC1yO2lmKHQ8biYmbzw9ZSlyZXR1cm4gall0KHQsZSxuLG8pO2lmKG48PXQmJnQ8ciYmbzw9ZSlyZXR1cm4gZS1vO2lmKHI8PXQmJm88PWUpcmV0dXJuIGpZdCh0LGUscixvKTt0aHJvdyJQb2ludCAoeCx5KSBtdXN0IGJlIGluIG9uZSBvZiB0aGUgcmVnaW9ucyBkZWZpbmVkIGFib3ZlLiJ9ZnVuY3Rpb24gV1l0KHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/InRyYW5zbGF0ZSgiK3QrIikiOiJ0cmFuc2xhdGUoIit0KyIsIitlKyIpIn1mdW5jdGlvbiBxWXQodCxlLG4pe2NvbnN0IGk9dC5nZXQoZSx0KTtBcnJheS5pc0FycmF5KGkpP3Quc3BsaWNlLmFwcGx5KHQsW2UsMCxpLmxlbmd0aF0uY29uY2F0KG4pKTp0LnNldChlLG4pfWZ1bmN0aW9uIFlZdCh0KXtsZXQgZT0wO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7KytuKWU9MzEqZSt0LmNoYXJDb2RlQXQobikmNDI5NDk2NzI5NTtyZXR1cm4gZStNYXRoLnBvdygyLDMxKX1iWXQudGVtcGxhdGU9X2VgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBzbG90PSJzaWRlYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtb3B0aW9uLXNlbGVjdG9yCiAgICAgICAgICAgICAgaWQ9Imhpc3RvZ3JhbU1vZGVTZWxlY3RvciIKICAgICAgICAgICAgICBuYW1lPSJIaXN0b2dyYW0gbW9kZSIKICAgICAgICAgICAgICBzZWxlY3RlZC1pZD0ie3tfaGlzdG9ncmFtTW9kZX19IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0ib3ZlcmxheSI+b3ZlcmxheTwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9Im9mZnNldCI+b2Zmc2V0PC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvdGYtb3B0aW9uLXNlbGVjdG9yPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtb3B0aW9uLXNlbGVjdG9yCiAgICAgICAgICAgICAgaWQ9InRpbWVQcm9wZXJ0eVNlbGVjdG9yIgogICAgICAgICAgICAgIG5hbWU9Ik9mZnNldCB0aW1lIGF4aXMiCiAgICAgICAgICAgICAgc2VsZWN0ZWQtaWQ9Int7X3RpbWVQcm9wZXJ0eX19IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0ic3RlcCI+c3RlcDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InJlbGF0aXZlIj5yZWxhdGl2ZTwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9IndhbGxfdGltZSI+d2FsbDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L3RmLW9wdGlvbi1zZWxlY3Rvcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBoaXN0b2dyYW0gZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIFlvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgaGlzdG9ncmFtIGRhdGEgdG8geW91ciBldmVudCBmaWxlcy4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UZW5zb3JCb2FyZCBjYW7igJl0IGZpbmQgeW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8KICAgICAgICAgICAgICBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICAgID4uCiAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8dGYtdGFnLWZpbHRlcmVyIHRhZy1maWx0ZXI9Int7X3RhZ0ZpbHRlcn19Ij48L3RmLXRhZy1maWx0ZXJlcj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgY2F0ZWdvcnk9IltbY2F0ZWdvcnldXSIKICAgICAgICAgICAgICBpbml0aWFsLW9wZW5lZD0iW1tfc2hvdWxkT3BlbihpbmRleCldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1oaXN0b2dyYW0tbG9hZGVyCiAgICAgICAgICAgICAgICAgIHJ1bj0iW1tpdGVtLnJ1bl1dIgogICAgICAgICAgICAgICAgICB0YWc9IltbaXRlbS50YWddXSIKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICB0YWctbWV0YWRhdGE9IltbX3RhZ01ldGFkYXRhKF9ydW5Ub1RhZ0luZm8sIGl0ZW0ucnVuLCBpdGVtLnRhZyldXSIKICAgICAgICAgICAgICAgICAgdGltZS1wcm9wZXJ0eT0iW1tfdGltZVByb3BlcnR5XV0iCiAgICAgICAgICAgICAgICAgIGhpc3RvZ3JhbS1tb2RlPSJbW19oaXN0b2dyYW1Nb2RlXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgID48L3RmLWhpc3RvZ3JhbS1sb2FkZXI+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgLm5vLWRhdGEtd2FybmluZyB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGJZdC5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sYll0LnByb3RvdHlwZSwiX2hpc3RvZ3JhbU1vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sYll0LnByb3RvdHlwZSwiX3RpbWVQcm9wZXJ0eSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sYll0LnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxiWXQucHJvdG90eXBlLCJfcnVuVG9UYWciLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sYll0LnByb3RvdHlwZSwiX3J1blRvVGFnSW5mbyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGJZdC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sYll0LnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGJZdC5wcm90b3R5cGUsIl9yZXN0YW1wIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sYll0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLGJZdC5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtzKCJfcnVuVG9UYWciLCJfc2VsZWN0ZWRSdW5zIiwiX3RhZ0ZpbHRlciIsIl9jYXRlZ29yaWVzRG9tUmVhZHkiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGJZdC5wcm90b3R5cGUsIl9jYXRlZ29yaWVzIixudWxsKSxiWXQ9dChbaSgidGYtaGlzdG9ncmFtLWRhc2hib2FyZCIpXSxiWXQpO3ZhciBYWXQ9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsaHBhcmFtTmFtZTp4WXQsbWV0cmljTmFtZTp3WXQsc2NoZW1hQ29sdW1uTmFtZTpTWXQsbnVtSFBhcmFtczpNWXQsbnVtTWV0cmljczpFWXQsbnVtQ29sdW1uczpUWXQsaHBhcmFtVmFsdWVCeU5hbWU6Q1l0LG1ldHJpY1ZhbHVlQnlOYW1lOkFZdCxocGFyYW1WYWx1ZUJ5SW5kZXg6a1l0LG1ldHJpY1ZhbHVlQnlJbmRleDpMWXQsY29sdW1uVmFsdWVCeUluZGV4OlBZdCxudW1lcmljQ29sdW1uRXh0ZW50Ok5ZdCxnZXRBYnNvbHV0ZUNvbHVtbkluZGV4OklZdCxzY2hlbWFWaXNpYmxlQ29sdW1uTmFtZTpmdW5jdGlvbiAkWXQodCxlKXtyZXR1cm4gZTx0LmhwYXJhbUluZm9zLmxlbmd0aD94WXQodC5ocGFyYW1JbmZvc1tlXSk6d1l0KHQubWV0cmljSW5mb3NbZS10LmhwYXJhbUluZm9zLmxlbmd0aF0pfSxudW1WaXNpYmxlSFBhcmFtczpSWXQsbnVtVmlzaWJsZU1ldHJpY3M6T1l0LG51bVZpc2libGVDb2x1bW5zOmZ1bmN0aW9uIEtZdCh0KXtyZXR1cm4gUll0KHQpK09ZdCh0KX0sdmlzaWJsZU51bWVyaWNDb2x1bW5FeHRlbnQ6ell0LHByZXR0eVByaW50SFBhcmFtVmFsdWVCeU5hbWU6ZnVuY3Rpb24gWll0KHQsZSl7cmV0dXJuIFZZdChDWXQodCxlKSl9LHByZXR0eVByaW50TWV0cmljVmFsdWVCeU5hbWU6ZnVuY3Rpb24gSll0KHQsZSl7cmV0dXJuIFZZdChBWXQodCxlKSl9LHNlc3Npb25Hcm91cFdpdGhOYW1lOkRZdCxocGFyYW1WYWx1ZUJ5VmlzaWJsZUluZGV4OkJZdCxtZXRyaWNWYWx1ZUJ5VmlzaWJsZUluZGV4OkhZdCxjb2x1bW5WYWx1ZUJ5VmlzaWJsZUluZGV4OkZZdCxwcmV0dHlQcmludDpWWXQsbDJOb3JtU3F1YXJlZDpVWXQsZXVjbGlkZWFuRGlzdDpqWXQscG9pbnRUb1JlY3RhbmdsZURpc3Q6R1l0LHRyYW5zbGF0ZVN0cjpXWXQscm90YXRlU3RyOmZ1bmN0aW9uIFFZdCh0LGUsbil7bGV0IGk9InJvdGF0ZSgiK3Q7cmV0dXJuIHZvaWQgMCE9PWUmJnZvaWQgMCE9PW4mJihpPWkrIiwiK2UrIiwiK24pLGkrPSIpIixpfSxpc051bGxPclVuZGVmaW5lZDpmdW5jdGlvbiB0WHQodCl7cmV0dXJuIG51bGw9PXR9LHF1YWRUcmVlVmlzaXRQb2ludHNJblJlY3Q6ZnVuY3Rpb24gZVh0KHQsZSxuLGkscixvKXt0LnZpc2l0KCgoYSxzLGwsYyx1KT0+e2lmKHZvaWQgMD09PWEubGVuZ3RoKXtkb3tjb25zdCBzPXQueCgpKGEuZGF0YSksbD10LnkoKShhLmRhdGEpO2U8PXMmJnM8aSYmbjw9bCYmbDxyJiZvKGEuZGF0YSl9d2hpbGUoYT1hLm5leHQpO3JldHVybiEwfXJldHVybiBzPj1pfHxjPD1lfHxsPj1yfHx1PD1ufSkpfSxxdWFkVHJlZVZpc2l0UG9pbnRzSW5EaXNrOmZ1bmN0aW9uIG5YdCh0LGUsbixpLHIpe3QudmlzaXQoKChvLGEscyxsLGMpPT57aWYodm9pZCAwPT09by5sZW5ndGgpe2Rve2NvbnN0IGE9dC54KCkoby5kYXRhKSxzPXQueSgpKG8uZGF0YSksbD1qWXQoZSxuLGEscyk7bDw9aSYmcihvLmRhdGEsbCl9d2hpbGUobz1vLm5leHQpO3JldHVybiEwfXJldHVybiBHWXQoZSxuLGEscyxsLGMpPml9KSl9LGZpbHRlclNldDpmdW5jdGlvbiBpWHQodCxlKXtjb25zdCBuPW5ldyBTZXQ7cmV0dXJuIHQuZm9yRWFjaCgodD0+e2UodCkmJm4uYWRkKHQpfSkpLG59LHNldEFycmF5T2JzZXJ2YWJseTpxWXQsaGFzaE9mU3RyaW5nOllZdH0pO2xldCByWHQ9Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5vcmllbnRhdGlvbj0iaG9yaXpvbnRhbCJ9fTtyWHQudGVtcGxhdGU9X2VgCiAgICA8c2xvdCBuYW1lPSJjb250ZW50Ij48L3Nsb3Q+CgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIDpob3N0IHNsb3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICA6aG9zdCA6OnNsb3R0ZWQoKikgewogICAgICAgIGZsZXg6IDAgMCBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbb3JpZW50YXRpb249J2hvcml6b250YWwnXSkgc2xvdCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pIHNsb3QgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QgOjpzbG90dGVkKCo6bm90KDpsYXN0LWNoaWxkKSkgewogICAgICAgIGJvcmRlcjogMCBzb2xpZCB2YXIoLS1kaXZpZGVyLWNvbG9yLCAjY2NjKTsKICAgICAgfQoKICAgICAgOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddKSA6OnNsb3R0ZWQoKjpub3QoOmxhc3QtY2hpbGQpKSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogNXB4OwogICAgICB9CgogICAgICA6aG9zdChbb3JpZW50YXRpb249J2hvcml6b250YWwnXSkgOjpzbG90dGVkKCo6bm90KDpsYXN0LWNoaWxkKSkgewogICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogNXB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmcscmVmbGVjdFRvQXR0cmlidXRlOiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHJYdC5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix2b2lkIDApLHJYdD10KFtpKCJocGFyYW1zLXNwbGl0LWxheW91dCIpXSxyWHQpO2xldCBvWHQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvbmZpZ3VyYXRpb249e3NjaGVtYTp7aHBhcmFtQ29sdW1uczpbXSxtZXRyaWNDb2x1bW5zOltdfSxjb2x1bW5zVmlzaWJpbGl0eTpbXSx2aXNpYmxlU2NoZW1hOntocGFyYW1JbmZvczpbXSxtZXRyaWNJbmZvczpbXX19LHRoaXMuc2Vzc2lvbkdyb3Vwcz1bXSx0aGlzLmRhdGFMb2FkZWRXaXRoTm9uRW1wdHlIcGFyYW1zPSExLHRoaXMuZGF0YUxvYWRlZFdpdGhFbXB0eUhwYXJhbXM9ITEsdGhpcy5fc3RhdHVzZXM9W3t2YWx1ZToiU1RBVFVTX1VOS05PV04iLGRpc3BsYXlOYW1lOiJVbmtub3duIixhbGxvd2VkOiEwfSx7dmFsdWU6IlNUQVRVU19TVUNDRVNTIixkaXNwbGF5TmFtZToiU3VjY2VzcyIsYWxsb3dlZDohMH0se3ZhbHVlOiJTVEFUVVNfRkFJTFVSRSIsZGlzcGxheU5hbWU6IkZhaWx1cmUiLGFsbG93ZWQ6ITB9LHt2YWx1ZToiU1RBVFVTX1JVTk5JTkciLGRpc3BsYXlOYW1lOiJSdW5uaW5nIixhbGxvd2VkOiEwfV0sdGhpcy5fZ2V0RXhwZXJpbWVudFJlc29sdmVkPW5ldyBQcm9taXNlKCh0PT57dGhpcy5fcmVzb2x2ZUdldEV4cGVyaW1lbnQ9dH0pKSx0aGlzLl9saXN0U2Vzc2lvbkdyb3Vwc0NhbmNlbGxlcj1uZXcgWFIsdGhpcy5fcGFnZVNpemVJbnB1dD17dmFsdWU6IjEwMCIsaW52YWxpZDohMX0sdGhpcy5fcGFnZU51bWJlcklucHV0PXt2YWx1ZToiMSIsaW52YWxpZDohMX0sdGhpcy5fcGFnZUNvdW50U3RyPSI/Iix0aGlzLl9ocGFyYW1OYW1lPXhZdCx0aGlzLl9tZXRyaWNOYW1lPXdZdCx0aGlzLl9wcmV0dHlQcmludD1WWXR9cmVsb2FkKCl7dGhpcy5fcXVlcnlTZXJ2ZXIoKX1fY3N2VXJsKHQsZSl7cmV0dXJuIHRoaXMuX2Rvd25sb2FkRGF0YVVybCh0LGUsImNzdiIpfV9qc29uVXJsKHQsZSl7cmV0dXJuIHRoaXMuX2Rvd25sb2FkRGF0YVVybCh0LGUsImpzb24iKX1fbGF0ZXhVcmwodCxlKXtyZXR1cm4gdGhpcy5fZG93bmxvYWREYXRhVXJsKHQsZSwibGF0ZXgiKX1fZG93bmxvYWREYXRhVXJsKHQsZSxuKXtyZXR1cm4gdGhpcy5iYWNrZW5kLmdldERvd25sb2FkVXJsKG4sdCxlLmNvbHVtbnNWaXNpYmlsaXR5KX1fY29tcHV0ZUV4cGVyaW1lbnRBbmRSZWxhdGVkUHJvcHMoKXtjb25zdCB0PVhZdDt0LmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuYmFja2VuZCl8fHQuaXNOdWxsT3JVbmRlZmluZWQodGhpcy5leHBlcmltZW50TmFtZSl8fHRoaXMuYmFja2VuZC5nZXRFeHBlcmltZW50KHtleHBlcmltZW50TmFtZTp0aGlzLmV4cGVyaW1lbnROYW1lfSkudGhlbigodD0+e1NlLmV4cG9ydHMuaXNFcXVhbCh0LHRoaXMuX2V4cGVyaW1lbnQpfHwodGhpcy5zZXQoIl9leHBlcmltZW50Iix0KSx0aGlzLl9jb21wdXRlSFBhcmFtcygpLHRoaXMuX2NvbXB1dGVNZXRyaWNzKCksdGhpcy5fcXVlcnlTZXJ2ZXIoKSx0aGlzLl9yZXNvbHZlR2V0RXhwZXJpbWVudCgpKX0pKS5maW5hbGx5KCgoKT0+e3RoaXMuX2NvbXB1dGVEYXRhRm91bmQoKX0pKX1fY29tcHV0ZURhdGFGb3VuZCgpe2NvbnN0IHQ9Qm9vbGVhbih0aGlzLl9leHBlcmltZW50JiZ0aGlzLl9leHBlcmltZW50LmhwYXJhbUluZm9zJiZ0aGlzLl9leHBlcmltZW50LmhwYXJhbUluZm9zLmxlbmd0aD4wJiZ0aGlzLl9leHBlcmltZW50Lm1ldHJpY0luZm9zJiZ0aGlzLl9leHBlcmltZW50Lm1ldHJpY0luZm9zLmxlbmd0aD4wKTt0aGlzLnNldCgiZGF0YUxvYWRlZFdpdGhOb25FbXB0eUhwYXJhbXMiLHQpLHRoaXMuc2V0KCJkYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtcyIsIXQpfV9jb21wdXRlSFBhcmFtcygpe2NvbnN0IHQ9W107dGhpcy5fZXhwZXJpbWVudC5ocGFyYW1JbmZvcy5mb3JFYWNoKCgoZSxuKT0+e2NvbnN0IGk9e2luZm86ZSxkaXNwbGF5ZWQ6bjw1LGZpbHRlcjp7fX07aS5pbmZvLmhhc093blByb3BlcnR5KCJkb21haW5EaXNjcmV0ZSIpPyhpLmZpbHRlci5kb21haW5EaXNjcmV0ZT1bXSxpLmluZm8uZG9tYWluRGlzY3JldGUuZm9yRWFjaCgodD0+e2kuZmlsdGVyLmRvbWFpbkRpc2NyZXRlLnB1c2goe3ZhbHVlOnQsY2hlY2tlZDohMH0pfSkpKToiREFUQV9UWVBFX0JPT0wiPT09aS5pbmZvLnR5cGU/aS5maWx0ZXIuZG9tYWluRGlzY3JldGU9W3t2YWx1ZTohMSxjaGVja2VkOiEwfSx7dmFsdWU6ITAsY2hlY2tlZDohMH1dOiJEQVRBX1RZUEVfRkxPQVQ2NCI9PT1pLmluZm8udHlwZT9pLmZpbHRlci5pbnRlcnZhbD17bWluOnt2YWx1ZToiIixpbnZhbGlkOiExfSxtYXg6e3ZhbHVlOiIiLGludmFsaWQ6ITF9fToiREFUQV9UWVBFX1NUUklORyI9PT1pLmluZm8udHlwZT9pLmZpbHRlci5yZWdleHA9IiI6Y29uc29sZS53YXJuKCJ1bmtub3duIGhwYXJhbS5pbmZvLnR5cGU6ICVzIixpLmluZm8udHlwZSksdC5wdXNoKGkpfSkpLHRoaXMuc2V0KCJfaHBhcmFtcyIsdCl9X2NvbXB1dGVNZXRyaWNzKCl7Y29uc3QgdD1bXTt0aGlzLl9leHBlcmltZW50Lm1ldHJpY0luZm9zLmZvckVhY2goKChlLG4pPT57dC5wdXNoKHtpbmZvOmUsZmlsdGVyOntpbnRlcnZhbDp7bWluOnt2YWx1ZToiIixpbnZhbGlkOiExfSxtYXg6e3ZhbHVlOiIiLGludmFsaWQ6ITF9fX0sZGlzcGxheWVkOm48NX0pfSkpLHRoaXMuc2V0KCJfbWV0cmljcyIsdCl9X2NvbXB1dGVTY2hlbWEoKXtyZXR1cm4gdGhpcy5faHBhcmFtcyYmdGhpcy5fbWV0cmljcz97aHBhcmFtQ29sdW1uczp0aGlzLl9ocGFyYW1zLm1hcCgodD0+KHtocGFyYW1JbmZvOnQuaW5mb30pKSksbWV0cmljQ29sdW1uczp0aGlzLl9tZXRyaWNzLm1hcCgodD0+KHttZXRyaWNJbmZvOnQuaW5mb30pKSl9OntocGFyYW1Db2x1bW5zOltdLG1ldHJpY0NvbHVtbnM6W119fV91cGRhdGVDb25maWd1cmF0aW9uKCl7dGhpcy5kZWJvdW5jZSgiX3VwZGF0ZUNvbmZpZ3VyYXRpb24iLCgoKT0+e3RoaXMuY29uZmlndXJhdGlvbj17c2NoZW1hOnRoaXMuX2NvbXB1dGVTY2hlbWEoKSxjb2x1bW5zVmlzaWJpbGl0eTp0aGlzLl9jb21wdXRlQ29sdW1uc1Zpc2liaWxpdHkoKSx2aXNpYmxlU2NoZW1hOnRoaXMuX2NvbXB1dGVWaXNpYmxlU2NoZW1hKCl9fSkpfV9jb21wdXRlQ29sdW1uc1Zpc2liaWxpdHkoKXtyZXR1cm4gdGhpcy5faHBhcmFtcyYmdGhpcy5fbWV0cmljcz90aGlzLl9ocGFyYW1zLm1hcCgodD0+dC5kaXNwbGF5ZWQpKS5jb25jYXQodGhpcy5fbWV0cmljcy5tYXAoKHQ9PnQuZGlzcGxheWVkKSkpOltdfV9jb21wdXRlVmlzaWJsZVNjaGVtYSgpe3JldHVybiB0aGlzLl9ocGFyYW1zJiZ0aGlzLl9tZXRyaWNzP3tocGFyYW1JbmZvczp0aGlzLl9ocGFyYW1zLmZpbHRlcigodD0+dC5kaXNwbGF5ZWQpKS5tYXAoKHQ9PnQuaW5mbykpLG1ldHJpY0luZm9zOnRoaXMuX21ldHJpY3MuZmlsdGVyKCh0PT50LmRpc3BsYXllZCkpLm1hcCgodD0+dC5pbmZvKSl9OntocGFyYW1JbmZvczpbXSxtZXRyaWNJbmZvczpbXX19X3F1ZXJ5U2VydmVyKCl7dGhpcy5kZWJvdW5jZSgicXVlcnlTZXJ2ZXIiLCgoKT0+dGhpcy5fcXVlcnlTZXJ2ZXJOb0RlYm91bmNlKCkpLDEwMCl9X3F1ZXJ5U2VydmVyTm9EZWJvdW5jZSgpe2lmKHRoaXMuX2hwYXJhbXMmJnRoaXMuX21ldHJpY3MpcmV0dXJuIHRoaXMuX3NlbmRMaXN0U2Vzc2lvbkdyb3Vwc1JlcXVlc3QoKS50aGVuKHRoaXMuX2xpc3RTZXNzaW9uR3JvdXBzQ2FuY2VsbGVyLmNhbmNlbGxhYmxlKCgoe3ZhbHVlOnQsY2FuY2VsbGVkOmV9KT0+e2V8fCh0LnRvdGFsU2l6ZT49MD8odGhpcy5zZXQoIl9wYWdlQ291bnRTdHIiLFN0cmluZyhNYXRoLmNlaWwodC50b3RhbFNpemUvK3RoaXMuX3BhZ2VTaXplSW5wdXQudmFsdWUpKSksdGhpcy5zZXQoIl90b3RhbFNlc3Npb25Hcm91cHNDb3VudFN0ciIsdC50b3RhbFNpemUpKToodGhpcy5zZXQoIl9wYWdlQ291bnRTdHIiLCI/IiksdGhpcy5zZXQoIl90b3RhbFNlc3Npb25Hcm91cHNDb3VudFN0ciIsIlVua25vd24iKSkscVl0KHRoaXMsInNlc3Npb25Hcm91cHMiLHQuc2Vzc2lvbkdyb3VwcykpfSkpKX1fc2VuZExpc3RTZXNzaW9uR3JvdXBzUmVxdWVzdCgpe2NvbnN0IHQ9dGhpcy5fYnVpbGRMaXN0U2Vzc2lvbkdyb3Vwc1JlcXVlc3QoKTtpZihudWxsIT09dClyZXR1cm4gdGhpcy5zZXQoIl9zZXNzaW9uR3JvdXBzUmVxdWVzdCIsdCksdGhpcy5fbGlzdFNlc3Npb25Hcm91cHNDYW5jZWxsZXIuY2FuY2VsQWxsKCksdGhpcy5iYWNrZW5kLmxpc3RTZXNzaW9uR3JvdXBzKHQpfV9idWlsZExpc3RTZXNzaW9uR3JvdXBzUmVxdWVzdCgpe2NvbnN0IHQ9dGhpcztsZXQgZT0hMDtmdW5jdGlvbiBuKG4pe2NvbnN0IGk9dC5nZXQobisiLm1pbi52YWx1ZSIpO2NvbnNvbGUuYXNzZXJ0KHZvaWQgMCE9PWkpO2NvbnN0IHI9IiI9PT1pPyItSW5maW5pdHkiOitpO3Quc2V0KG4rIi5taW4uaW52YWxpZCIsaXNOYU4ocikpLGU9ZSYmIWlzTmFOKHIpO2NvbnN0IG89dC5nZXQobisiLm1heC52YWx1ZSIpO2NvbnNvbGUuYXNzZXJ0KHZvaWQgMCE9PW8pO2NvbnN0IGE9IiI9PT1vPyJJbmZpbml0eSI6K287cmV0dXJuIHQuc2V0KG4rIi5tYXguaW52YWxpZCIsaXNOYU4oYSkpLGU9ZSYmIWlzTmFOKGEpLGlzTmFOKHIpfHxpc05hTihhKT9udWxsOnttaW5WYWx1ZTpyLG1heFZhbHVlOmF9fWZ1bmN0aW9uIGkobil7Y29uc3QgaT10LmdldChuKyIudmFsdWUiKTtjb25zb2xlLmFzc2VydCh2b2lkIDAhPT1pKTtjb25zdCByPStpLG89TnVtYmVyLmlzSW50ZWdlcihyKSYmcj4wO3JldHVybiB0LnNldChuKyIuaW52YWxpZCIsIW8pLGU9ZSYmbyxvP3I6bnVsbH1jb25zdCByPXRoaXMuX3N0YXR1c2VzLmZpbHRlcigodD0+dC5hbGxvd2VkKSkubWFwKCh0PT50LnZhbHVlKSk7bGV0IG89W107aWYodGhpcy5faHBhcmFtcy5mb3JFYWNoKCgodCxlKT0+e2xldCBpPXtocGFyYW06dC5pbmZvLm5hbWV9O2lmKHQuZmlsdGVyLmRvbWFpbkRpc2NyZXRlKWkuZmlsdGVyRGlzY3JldGU9W10sdC5maWx0ZXIuZG9tYWluRGlzY3JldGUuZm9yRWFjaCgodD0+e3QuY2hlY2tlZCYmaS5maWx0ZXJEaXNjcmV0ZS5wdXNoKHQudmFsdWUpfSkpO2Vsc2UgaWYodC5maWx0ZXIuaW50ZXJ2YWwpaS5maWx0ZXJJbnRlcnZhbD1uKCJfaHBhcmFtcy4iK2UrIi5maWx0ZXIuaW50ZXJ2YWwiKTtlbHNle2lmKCF0LmZpbHRlci5yZWdleHApcmV0dXJuIGNvbnNvbGUuZXJyb3IoImhwYXJhbS5maWx0ZXIgd2l0aCBubyBkb21haW5EaXNjcmV0ZSwgaW50ZXJ2YWwgb3IgcmVnZXhwIHByb3BlcnRpZXMgc2V0OiAlcyIsdCksbnVsbDtpLmZpbHRlclJlZ2V4cD10LmZpbHRlci5yZWdleHB9by5wdXNoKGkpfSkpLHRoaXMuX21ldHJpY3MuZm9yRWFjaCgoKHQsZSk9PntsZXQgaT17bWV0cmljOnQuaW5mby5uYW1lLGZpbHRlckludGVydmFsOm4oIl9tZXRyaWNzLiIrZSsiLmZpbHRlci5pbnRlcnZhbCIpfTtvLnB1c2goaSl9KSksdm9pZCAwIT09dGhpcy5fc29ydEJ5SW5kZXgmJnZvaWQgMCE9PXRoaXMuX3NvcnREaXJlY3Rpb24pe2lmKCEodGhpcy5fc29ydEJ5SW5kZXggaW4gbykpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIk5vIGNvbHVtbiBpbiBjb2xQYXJhbXMgd2l0aCBpbmRleCBzb3J0QnlJbmRleDogJXMiLHRoaXMuX3NvcnRCeUluZGV4KSxudWxsO29bdGhpcy5fc29ydEJ5SW5kZXhdLm9yZGVyPTA9PT10aGlzLl9zb3J0RGlyZWN0aW9uPyJPUkRFUl9BU0MiOiJPUkRFUl9ERVNDIn1jb25zdCBhPWkoIl9wYWdlTnVtYmVySW5wdXQiKSxzPWkoIl9wYWdlU2l6ZUlucHV0Iik7cmV0dXJuIGU/e2V4cGVyaW1lbnROYW1lOnRoaXMuZXhwZXJpbWVudE5hbWUsYWxsb3dlZFN0YXR1c2VzOnIsY29sUGFyYW1zOm8sc3RhcnRJbmRleDpzKihhLTEpLHNsaWNlU2l6ZTpzfTpudWxsfV9tZXRyaWNTb3J0QnlJbmRleCh0KXtyZXR1cm4gdCt0aGlzLl9ocGFyYW1zLmxlbmd0aH19O29YdC50ZW1wbGF0ZT1fZWAKICAgIDxocGFyYW1zLXNwbGl0LWxheW91dCBvcmllbnRhdGlvbj0idmVydGljYWwiPgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIGNsYXNzPSJzZWN0aW9uIGh5cGVycGFyYW1ldGVycyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SHlwZXJwYXJhbWV0ZXJzPC9kaXY+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0ie3tfaHBhcmFtc319IiBhcz0iaHBhcmFtIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhwYXJhbSI+CiAgICAgICAgICAgIDxwYXBlci1jaGVja2JveAogICAgICAgICAgICAgIGNoZWNrZWQ9Int7aHBhcmFtLmRpc3BsYXllZH19IgogICAgICAgICAgICAgIGNsYXNzPSJocGFyYW0tY2hlY2tib3giCiAgICAgICAgICAgID4KICAgICAgICAgICAgICBbW19ocGFyYW1OYW1lKGhwYXJhbS5pbmZvKV1dCiAgICAgICAgICAgIDwvcGFwZXItY2hlY2tib3g+CiAgICAgICAgICAgIDwhLS0gUHJlY2lzZWx5IG9uZSBvZiB0aGUgdGVtcGxhdGVzIGJlbG93IHdpbGwgYmUgc3RhbXBlZC4tLT4KICAgICAgICAgICAgPCEtLSAxLiBBIGxpc3Qgb2YgY2hlY2tib3hlcyAtLT4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2hwYXJhbS5maWx0ZXIuZG9tYWluRGlzY3JldGVdXSI+CiAgICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICAgICAgICAgIGl0ZW1zPSJbW2hwYXJhbS5maWx0ZXIuZG9tYWluRGlzY3JldGVdXSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICAgICAgY2hlY2tlZD0ie3tpdGVtLmNoZWNrZWR9fSIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImRpc2NyZXRlLXZhbHVlLWNoZWNrYm94IgogICAgICAgICAgICAgICAgICBvbi1jaGFuZ2U9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgW1tfcHJldHR5UHJpbnQoaXRlbS52YWx1ZSldXQogICAgICAgICAgICAgICAgPC9wYXBlci1jaGVja2JveD4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8IS0tIDIuIEEgbnVtZXJpYyBpbnRlcnZhbCAtLT4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2hwYXJhbS5maWx0ZXIuaW50ZXJ2YWxdXSI+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWluIgogICAgICAgICAgICAgICAgdmFsdWU9Int7aHBhcmFtLmZpbHRlci5pbnRlcnZhbC5taW4udmFsdWV9fSIKICAgICAgICAgICAgICAgIGFsbG93ZWRfcGF0dGVybj0iWzAtOS5lXFwtXSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJbW2hwYXJhbS5maWx0ZXIuaW50ZXJ2YWwubWluLmludmFsaWRdXSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSItaW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWF4IgogICAgICAgICAgICAgICAgdmFsdWU9Int7aHBhcmFtLmZpbHRlci5pbnRlcnZhbC5tYXgudmFsdWV9fSIKICAgICAgICAgICAgICAgIGFsbG93ZWRfcGF0dGVybj0iWzAtOS5lXFwtXSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJbW2hwYXJhbS5maWx0ZXIuaW50ZXJ2YWwubWF4LmludmFsaWRdXSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIraW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwhLS0gMy4gQSByZWdleHAgLS0+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tocGFyYW0uZmlsdGVyLnJlZ2V4cF1dIj4KICAgICAgICAgICAgICA8cGFwZXItaW5wdXQKICAgICAgICAgICAgICAgIGxhYmVsPSJSZWd1bGFyIGV4cHJlc3Npb24iCiAgICAgICAgICAgICAgICB2YWx1ZT0ie3tocGFyYW0uZmlsdGVyLnJlZ2V4cH19IgogICAgICAgICAgICAgICAgb24tdmFsdWUtY2hhbmdlZD0iX3F1ZXJ5U2VydmVyIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8L3BhcGVyLWlucHV0PgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgY2xhc3M9InNlY3Rpb24gbWV0cmljcyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWV0cmljczwvZGl2PgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9Int7X21ldHJpY3N9fSIgYXM9Im1ldHJpYyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPgogICAgICAgICAgICA8IS0tIFRPRE8oZXJleik6IE1ha2UgaXQgZWFzaWVyIHRvIGhhbmRsZSBhIGxhcmdlIG51bWJlciBvZgogICAgICAgICAgICAgICAgICBtZXRyaWNzOgogICAgICAgICAgICAgICAgICAxLiBBZGQgYW4gJ2lzb2xhdG9yJyByYWRpby1idXR0b24gdG8gc2VsZWN0IGp1c3Qgb25lCiAgICAgICAgICAgICAgICAgIG1ldHJpYyBhbmQKICAgICAgICAgICAgICAgICAgaGlkZSBhbGwgdGhlIHJlc3QKICAgICAgICAgICAgICAgICAgMi4gQWRkIGEgJ3RvZ2dsZS1hbGwnIGJ1dHRvbiB0aGF0IHdpbGwgaGlkZS91bmhpZGUKICAgICAgICAgICAgICAgICAgICBhbGwgdGhlCiAgICAgICAgICAgICAgICAgIG1ldHJpY3MuCiAgICAgICAgICAgICAgICAgIFVzZSBzaW1pbGFyIGxvZ2ljL2FwcGVhcmFuY2UgdG8gdGhlIHJ1bi1zZWxlY3RvciBvZgogICAgICAgICAgICAgICAgICBzY2FsYXJzLi0tPgogICAgICAgICAgICA8cGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICBjaGVja2VkPSJ7e21ldHJpYy5kaXNwbGF5ZWR9fSIKICAgICAgICAgICAgICBjbGFzcz0ibWV0cmljLWNoZWNrYm94IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgW1tfbWV0cmljTmFtZShtZXRyaWMuaW5mbyldXQogICAgICAgICAgICA8L3BhcGVyLWNoZWNrYm94PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCI+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWluIgogICAgICAgICAgICAgICAgdmFsdWU9Int7bWV0cmljLmZpbHRlci5pbnRlcnZhbC5taW4udmFsdWV9fSIKICAgICAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOS5lXFwtXSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJ7e21ldHJpYy5maWx0ZXIuaW50ZXJ2YWwubWluLmludmFsaWR9fSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSItaW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCI+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWF4IgogICAgICAgICAgICAgICAgYWxsb3dlZC1wYXR0ZXJuPSJbMC05LmVcXC1dIgogICAgICAgICAgICAgICAgdmFsdWU9Int7bWV0cmljLmZpbHRlci5pbnRlcnZhbC5tYXgudmFsdWV9fSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJ7e21ldHJpYy5maWx0ZXIuaW50ZXJ2YWwubWF4LmludmFsaWR9fSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIraW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgY2xhc3M9InNlY3Rpb24gc3RhdHVzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdGF0dXM8L2Rpdj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19zdGF0dXNlc11dIiBhcz0ic3RhdHVzIj4KICAgICAgICAgIDxwYXBlci1jaGVja2JveCBjaGVja2VkPSJ7e3N0YXR1cy5hbGxvd2VkfX0iIG9uLWNoYW5nZT0iX3F1ZXJ5U2VydmVyIj4KICAgICAgICAgICAgW1tzdGF0dXMuZGlzcGxheU5hbWVdXQogICAgICAgICAgPC9wYXBlci1jaGVja2JveD4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBjbGFzcz0ic2VjdGlvbiBzb3J0aW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Tb3J0aW5nPC9kaXY+CiAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgIGxhYmVsPSJTb3J0IGJ5IgogICAgICAgICAgb24tc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICBob3Jpem9udGFsLWFsaWduPSJsZWZ0IgogICAgICAgID4KICAgICAgICAgIDxwYXBlci1saXN0Ym94CiAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICBzZWxlY3RlZD0ie3tfc29ydEJ5SW5kZXh9fSIKICAgICAgICAgICAgb24tc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICA+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2hwYXJhbXNdXSIgYXM9ImhwYXJhbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+IFtbX2hwYXJhbU5hbWUoaHBhcmFtLmluZm8pXV0gPC9wYXBlci1pdGVtPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19tZXRyaWNzXV0iIGFzPSJtZXRyaWMiPgogICAgICAgICAgICAgIDxwYXBlci1pdGVtPiBbW19tZXRyaWNOYW1lKG1ldHJpYy5pbmZvKV1dIDwvcGFwZXItaXRlbT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgIGxhYmVsPSJEaXJlY3Rpb24iCiAgICAgICAgICBvbi1zZWxlY3RlZC1pdGVtLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgIGhvcml6b250YWwtYWxpZ249ImxlZnQiCiAgICAgICAgPgogICAgICAgICAgPHBhcGVyLWxpc3Rib3gKICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgIHNlbGVjdGVkPSJ7e19zb3J0RGlyZWN0aW9ufX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxwYXBlci1pdGVtPkFzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgICAgPHBhcGVyLWl0ZW0+RGVzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIGNsYXNzPSJzZWN0aW9uIHBhZ2luZyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UGFnaW5nPC9kaXY+CiAgICAgICAgPGRpdj4KICAgICAgICAgIE51bWJlciBvZiBtYXRjaGluZyBzZXNzaW9uIGdyb3VwczogW1tfdG90YWxTZXNzaW9uR3JvdXBzQ291bnRTdHJdXQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImlubGluZS1lbGVtZW50IHBhZ2UtbnVtYmVyLWlucHV0Ij4KICAgICAgICAgIDxwYXBlci1pbnB1dAogICAgICAgICAgICBsYWJlbD0iUGFnZSAjIgogICAgICAgICAgICB2YWx1ZT0ie3tfcGFnZU51bWJlcklucHV0LnZhbHVlfX0iCiAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOV0iCiAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgIGludmFsaWQ9IltbX3BhZ2VOdW1iZXJJbnB1dC5pbnZhbGlkXV0iCiAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBzbG90PSJzdWZmaXgiIGNsYXNzPSJwYWdlLXN1ZmZpeCI+LyBbW19wYWdlQ291bnRTdHJdXTwvZGl2PgogICAgICAgICAgPC9wYXBlci1pbnB1dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCBwYWdlLXNpemUtaW5wdXQiPgogICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgIGxhYmVsPSJNYXggIyBvZiBzZXNzaW9uIGdyb3VwcyBwZXIgcGFnZToiCiAgICAgICAgICAgIHZhbHVlPSJ7e19wYWdlU2l6ZUlucHV0LnZhbHVlfX0iCiAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOV0iCiAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgIGludmFsaWQ9IltbX3BhZ2VTaXplSW5wdXQuaW52YWxpZF1dIgogICAgICAgICAgICBvbi12YWx1ZS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWlucHV0PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBjbGFzcz0ic2VjdGlvbiBkb3dubG9hZCI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zZXNzaW9uR3JvdXBzUmVxdWVzdF1dIj4KICAgICAgICAgIERvd25sb2FkIGRhdGEgYXMKICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGlkPSJjc3ZMaW5rIgogICAgICAgICAgICAgIGRvd25sb2FkPSJocGFyYW1zX3RhYmxlLmNzdiIKICAgICAgICAgICAgICBocmVmPSJbW19jc3ZVcmwoX3Nlc3Npb25Hcm91cHNSZXF1ZXN0LCBjb25maWd1cmF0aW9uKV1dIgogICAgICAgICAgICAgID5DU1Y8L2EKICAgICAgICAgICAgPgogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGlkPSJqc29uTGluayIKICAgICAgICAgICAgICBkb3dubG9hZD0iaHBhcmFtc190YWJsZS5qc29uIgogICAgICAgICAgICAgIGhyZWY9IltbX2pzb25VcmwoX3Nlc3Npb25Hcm91cHNSZXF1ZXN0LCBjb25maWd1cmF0aW9uKV1dIgogICAgICAgICAgICAgID5KU09OPC9hCiAgICAgICAgICAgID4KICAgICAgICAgICAgPGEKICAgICAgICAgICAgICBpZD0ibGF0ZXhMaW5rIgogICAgICAgICAgICAgIGRvd25sb2FkPSJocGFyYW1zX3RhYmxlLnRleCIKICAgICAgICAgICAgICBocmVmPSJbW19sYXRleFVybChfc2Vzc2lvbkdyb3Vwc1JlcXVlc3QsIGNvbmZpZ3VyYXRpb24pXV0iCiAgICAgICAgICAgICAgPkxhVGVYPC9hCiAgICAgICAgICAgID4KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvaHBhcmFtcy1zcGxpdC1sYXlvdXQ+CiAgICA8c3R5bGU+CiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA3cHg7CiAgICAgIH0KICAgICAgLmRpc2NyZXRlLXZhbHVlLWNoZWNrYm94LAogICAgICAubWV0cmljLWNoZWNrYm94LAogICAgICAuaHBhcmFtLWNoZWNrYm94IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAuZGlzY3JldGUtdmFsdWUtY2hlY2tib3ggewogICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4OwogICAgICB9CiAgICAgIC5ocGFyYW0sCiAgICAgIC5tZXRyaWMgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5pbmxpbmUtZWxlbWVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHdpZHRoOiA0MCU7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICAgIH0KICAgICAgLnBhZ2UtbnVtYmVyLWlucHV0IHsKICAgICAgICB3aWR0aDogMjAlOwogICAgICB9CiAgICAgIC5wYWdlLXNpemUtaW5wdXQgewogICAgICAgIHdpZHRoOiA2MCU7CiAgICAgIH0KICAgICAgdmFhZGluLXNwbGl0LWxheW91dCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIHBhcGVyLWxpc3Rib3ggewogICAgICAgIG1heC1oZWlnaHQ6IDE1ZW07CiAgICAgIH0KICAgICAgLnBhZ2Utc3VmZml4IHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sb1h0LnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLG9YdC5wcm90b3R5cGUsImNvbmZpZ3VyYXRpb24iLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheSxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sb1h0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxvWHQucHJvdG90eXBlLCJkYXRhTG9hZGVkV2l0aE5vbkVtcHR5SHBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxvWHQucHJvdG90eXBlLCJkYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxvWHQucHJvdG90eXBlLCJfZXhwZXJpbWVudCIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sb1h0LnByb3RvdHlwZSwiX2hwYXJhbXMiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLG9YdC5wcm90b3R5cGUsIl9tZXRyaWNzIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sb1h0LnByb3RvdHlwZSwiX3N0YXR1c2VzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLG9YdC5wcm90b3R5cGUsIl9nZXRFeHBlcmltZW50UmVzb2x2ZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxvWHQucHJvdG90eXBlLCJfcmVzb2x2ZUdldEV4cGVyaW1lbnQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sb1h0LnByb3RvdHlwZSwiX2xpc3RTZXNzaW9uR3JvdXBzQ2FuY2VsbGVyIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLG9YdC5wcm90b3R5cGUsIl9zb3J0QnlJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxvWHQucHJvdG90eXBlLCJfc29ydERpcmVjdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxvWHQucHJvdG90eXBlLCJfcGFnZVNpemVJbnB1dCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxvWHQucHJvdG90eXBlLCJfcGFnZU51bWJlcklucHV0Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLG9YdC5wcm90b3R5cGUsIl9wYWdlQ291bnRTdHIiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sb1h0LnByb3RvdHlwZSwiX3RvdGFsU2Vzc2lvbkdyb3Vwc0NvdW50U3RyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLG9YdC5wcm90b3R5cGUsIl9zZXNzaW9uR3JvdXBzUmVxdWVzdCIsdm9pZCAwKSx0KFthKCJiYWNrZW5kIiwiZXhwZXJpbWVudE5hbWUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLG9YdC5wcm90b3R5cGUsIl9jb21wdXRlRXhwZXJpbWVudEFuZFJlbGF0ZWRQcm9wcyIsbnVsbCksdChbYSgiX2hwYXJhbXMuKiIsIl9tZXRyaWNzLioiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLG9YdC5wcm90b3R5cGUsIl91cGRhdGVDb25maWd1cmF0aW9uIixudWxsKSxvWHQ9dChbaSgidGYtaHBhcmFtcy1xdWVyeS1wYW5lIildLG9YdCk7bGV0IGFYdD1jbGFzcyBleHRlbmRzIHlle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm9wdGlvbnM9bnVsbH1fY29uZmlndXJhdGlvbkNoYW5nZWQoKXtjb25zdCB0PXRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLGU9dGhpcy5jb25maWd1cmF0aW9uLnNjaGVtYSxuPXtjb2x1bW5zOnQuaHBhcmFtSW5mb3MubWFwKCgobixpKT0+KHtuYW1lOnhZdChuKSxpbmRleDppLGFic29sdXRlSW5kZXg6SVl0KGUsdCxpKSxzY2FsZTp0aGlzLl9pc051bWVyaWNDb2x1bW4oaSk/IkxJTkVBUiI6Ik5PTl9OVU1FUklDIn0pKSkuY29uY2F0KHQubWV0cmljSW5mb3MubWFwKCgobixpKT0+e2NvbnN0IHI9aSt0LmhwYXJhbUluZm9zLmxlbmd0aDtyZXR1cm57c2NhbGU6IkxJTkVBUiIsbmFtZTp3WXQobiksaW5kZXg6cixhYnNvbHV0ZUluZGV4OklZdChlLHQscil9fSkpKSxtaW5Db2xvcjoiIzAwMDBGRiIsbWF4Q29sb3I6IiNGRjAwMDAiLGNvbmZpZ3VyYXRpb246dGhpcy5jb25maWd1cmF0aW9ufTt0aGlzLnNldCgib3B0aW9ucyIsbiksRGkoKSx0aGlzLnNldCgib3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXgiLHRoaXMuX2RlZmF1bHRDb2xvckJ5Q29sdW1uSW5kZXgoKSl9X3Vuc2VsZWN0RGlzYWJsZWRMb2dTY2FsZXMoKXtudWxsIT09dGhpcy5vcHRpb25zJiZ0aGlzLm9wdGlvbnMuY29sdW1ucy5mb3JFYWNoKCh0PT57Y29uc3QgZT0ib3B0aW9ucy5jb2x1bW5zLiIrdC5pbmRleDt0aGlzLl9hbGxvd0xvZ1NjYWxlKHQpfHwiTE9HIiE9PXQuc2NhbGV8fHRoaXMuc2V0KGUrIi5zY2FsZSIsIkxJTkVBUiIpfSkpfV9hbGxvd0xvZ1NjYWxlKHQpe2lmKCF0aGlzLl9pc051bWVyaWNDb2x1bW4odC5pbmRleCl8fCF0aGlzLnNlc3Npb25Hcm91cHMpcmV0dXJuITE7Y29uc3RbZSxuXT16WXQodGhpcy5jb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWEsdGhpcy5zZXNzaW9uR3JvdXBzLHQuaW5kZXgpO3JldHVybiBlPjB8fG48MH1faXNOdW1lcmljQ29sdW1uKHQpe3JldHVybiB0Pj10aGlzLmNvbmZpZ3VyYXRpb24udmlzaWJsZVNjaGVtYS5ocGFyYW1JbmZvcy5sZW5ndGh8fCJEQVRBX1RZUEVfRkxPQVQ2NCI9PT10aGlzLmNvbmZpZ3VyYXRpb24udmlzaWJsZVNjaGVtYS5ocGFyYW1JbmZvc1t0XS50eXBlfV9kZWZhdWx0Q29sb3JCeUNvbHVtbkluZGV4KCl7aWYodGhpcy5jb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWEubWV0cmljSW5mb3MubGVuZ3RoPjApcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLmhwYXJhbUluZm9zLmxlbmd0aDtjb25zdCB0PXRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLmhwYXJhbUluZm9zLmZpbmRJbmRleCgodD0+IkRBVEFfVFlQRV9GTE9BVDY0Ij09PXQudHlwZSkpO3JldHVybi0xIT09dD90OnZvaWQgMH19O2FYdC50ZW1wbGF0ZT1fZWAKICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtcGFuZWwiPgogICAgICA8IS0tICdDb2xvciBieScgZHJvcCBkb3duIG1lbnUgLS0+CiAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgbGFiZWw9IkNvbG9yIGJ5IgogICAgICAgIGlkPSJjb2xvckJ5RHJvcERvd25NZW51IgogICAgICAgIGhvcml6b250YWwtYWxpZ249ImxlZnQiCiAgICAgID4KICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgc2VsZWN0ZWQ9Int7b3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXh9fSIKICAgICAgICAgIGlkPSJjb2xvckJ5TGlzdEJveCIKICAgICAgICA+CiAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgIGl0ZW1zPSJbW29wdGlvbnMuY29sdW1uc11dIgogICAgICAgICAgICBhcz0iY29sdW1uIgogICAgICAgICAgICBpZD0iY29sb3JCeUNvbHVtblRlbXBsYXRlIgogICAgICAgICAgPgogICAgICAgICAgICA8cGFwZXItaXRlbSBkaXNhYmxlZD0iW1shX2lzTnVtZXJpY0NvbHVtbihjb2x1bW4uaW5kZXgpXV0iPgogICAgICAgICAgICAgIFtbY29sdW1uLm5hbWVdXQogICAgICAgICAgICA8L3BhcGVyLWl0ZW0+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgoKICAgICAgPCEtLSBDb2x1bW5zIHNjYWxlcyAtLT4KICAgICAgPGRpdiBjbGFzcz0iY29sdW1ucy1jb250YWluZXIiPgogICAgICAgIDwhLS0gU2NhbGUgb3B0aW9ucyBmb3IgZWFjaCBudW1lcmljIGZlYXR1cmUgLS0+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0ie3tvcHRpb25zLmNvbHVtbnN9fSIgYXM9ImNvbHVtbiI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzTnVtZXJpY0NvbHVtbihjb2x1bW4uaW5kZXgpXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbi10aXRsZSI+W1tjb2x1bW4ubmFtZV1dPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxwYXBlci1yYWRpby1ncm91cAogICAgICAgICAgICAgICAgICBjbGFzcz0ic2NhbGUtcmFkaW8tZ3JvdXAiCiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPSJ7e2NvbHVtbi5zY2FsZX19IgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIG5hbWU9IkxJTkVBUiI+CiAgICAgICAgICAgICAgICAgICAgTGluZWFyCiAgICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgICA8IS0tIFRoZSBpZCBoZXJlIGlzIHVzZWQgdG8gYWNjZXNzIHRoaXMgYnV0dG9uIGluIHVuaXQKICAgICAgICAgICAgICAgICAgICAgICB0ZXN0cy4tLT4KICAgICAgICAgICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgICAgICAgICAgIGlkPSJsb2dTY2FsZUJ1dHRvbl9bW2NvbHVtbi5uYW1lXV0iCiAgICAgICAgICAgICAgICAgICAgbmFtZT0iTE9HIgogICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPSJbWyFfYWxsb3dMb2dTY2FsZShjb2x1bW4sIHNlc3Npb25Hcm91cHMuKildXSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIExvZ2FyaXRobWljCiAgICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIG5hbWU9IlFVQU5USUxFIj4KICAgICAgICAgICAgICAgICAgICBRdWFudGlsZQogICAgICAgICAgICAgICAgICA8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tZ3JvdXA+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5jb250cm9sLXBhbmVsIHsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQogICAgICAuY29sdW1uIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7CiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2dyYXk7CiAgICAgICAgcGFkZGluZzogM3B4OwogICAgICB9CiAgICAgIC5jb2x1bW4tdGl0bGUgewogICAgICAgIC8qIEZpdCBldmVyeSB0aXRsZSBpbiBvbmUgbGluZSBzbyB0aGUgcmFkaW8gYm94ZXMgYWxpZ24gdmVydGljYWxseS4gKi8KICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIC5jb2x1bW5zLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CiAgICAgIC5zY2FsZS1yYWRpby1ncm91cCBwYXBlci1yYWRpby1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDJweDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICBwYXBlci1saXN0Ym94IHsKICAgICAgICBtYXgtaGVpZ2h0OiAxNWVtOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sYVh0LnByb3RvdHlwZSwiY29uZmlndXJhdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sYVh0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sYVh0LnByb3RvdHlwZSwib3B0aW9ucyIsdm9pZCAwKSx0KFthKCJjb25maWd1cmF0aW9uLioiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGFYdC5wcm90b3R5cGUsIl9jb25maWd1cmF0aW9uQ2hhbmdlZCIsbnVsbCksdChbYSgic2Vzc2lvbkdyb3Vwcy4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxhWHQucHJvdG90eXBlLCJfdW5zZWxlY3REaXNhYmxlZExvZ1NjYWxlcyIsbnVsbCksYVh0PXQoW2koInRmLWhwYXJhbXMtc2NhbGUtYW5kLWNvbG9yLWNvbnRyb2xzIildLGFYdCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8KY29uc3Qgc1h0PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZudWxsIT13aW5kb3cuY3VzdG9tRWxlbWVudHMmJnZvaWQgMCE9PXdpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrLGxYdD0odCxlLG49bnVsbCk9Pntmb3IoO2UhPT1uOyl7Y29uc3Qgbj1lLm5leHRTaWJsaW5nO3QucmVtb3ZlQ2hpbGQoZSksZT1ufX0sY1h0PWB7e2xpdC0ke1N0cmluZyhNYXRoLnJhbmRvbSgpKS5zbGljZSgyKX19fWAsdVh0PWBceDNjIS0tJHtjWHR9LS1ceDNlYCxoWHQ9bmV3IFJlZ0V4cChgJHtjWHR9fCR7dVh0fWApLGRYdD0iJGxpdCQiO2NsYXNzIHBYdHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMucGFydHM9W10sdGhpcy5lbGVtZW50PWU7Y29uc3Qgbj1bXSxpPVtdLHI9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihlLmNvbnRlbnQsMTMzLG51bGwsITEpO2xldCBvPTAsYT0tMSxzPTA7Y29uc3R7c3RyaW5nczpsLHZhbHVlczp7bGVuZ3RoOmN9fT10O2Zvcig7czxjOyl7Y29uc3QgdD1yLm5leHROb2RlKCk7aWYobnVsbCE9PXQpe2lmKGErKywxPT09dC5ub2RlVHlwZSl7aWYodC5oYXNBdHRyaWJ1dGVzKCkpe2NvbnN0IGU9dC5hdHRyaWJ1dGVzLHtsZW5ndGg6bn09ZTtsZXQgaT0wO2ZvcihsZXQgdD0wO3Q8bjt0KyspZlh0KGVbdF0ubmFtZSxkWHQpJiZpKys7Zm9yKDtpLS0gPjA7KXtjb25zdCBlPV9YdC5leGVjKGxbc10pWzJdLG49ZS50b0xvd2VyQ2FzZSgpK2RYdCxpPXQuZ2V0QXR0cmlidXRlKG4pO3QucmVtb3ZlQXR0cmlidXRlKG4pO2NvbnN0IHI9aS5zcGxpdChoWHQpO3RoaXMucGFydHMucHVzaCh7dHlwZToiYXR0cmlidXRlIixpbmRleDphLG5hbWU6ZSxzdHJpbmdzOnJ9KSxzKz1yLmxlbmd0aC0xfX0iVEVNUExBVEUiPT09dC50YWdOYW1lJiYoaS5wdXNoKHQpLHIuY3VycmVudE5vZGU9dC5jb250ZW50KX1lbHNlIGlmKDM9PT10Lm5vZGVUeXBlKXtjb25zdCBlPXQuZGF0YTtpZihlLmluZGV4T2YoY1h0KT49MCl7Y29uc3QgaT10LnBhcmVudE5vZGUscj1lLnNwbGl0KGhYdCksbz1yLmxlbmd0aC0xO2ZvcihsZXQgZT0wO2U8bztlKyspe2xldCBuLG89cltlXTtpZigiIj09PW8pbj1nWHQoKTtlbHNle2NvbnN0IHQ9X1h0LmV4ZWMobyk7bnVsbCE9PXQmJmZYdCh0WzJdLGRYdCkmJihvPW8uc2xpY2UoMCx0LmluZGV4KSt0WzFdK3RbMl0uc2xpY2UoMCwtZFh0Lmxlbmd0aCkrdFszXSksbj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShvKX1pLmluc2VydEJlZm9yZShuLHQpLHRoaXMucGFydHMucHVzaCh7dHlwZToibm9kZSIsaW5kZXg6KythfSl9IiI9PT1yW29dPyhpLmluc2VydEJlZm9yZShnWHQoKSx0KSxuLnB1c2godCkpOnQuZGF0YT1yW29dLHMrPW99fWVsc2UgaWYoOD09PXQubm9kZVR5cGUpaWYodC5kYXRhPT09Y1h0KXtjb25zdCBlPXQucGFyZW50Tm9kZTtudWxsIT09dC5wcmV2aW91c1NpYmxpbmcmJmEhPT1vfHwoYSsrLGUuaW5zZXJ0QmVmb3JlKGdYdCgpLHQpKSxvPWEsdGhpcy5wYXJ0cy5wdXNoKHt0eXBlOiJub2RlIixpbmRleDphfSksbnVsbD09PXQubmV4dFNpYmxpbmc/dC5kYXRhPSIiOihuLnB1c2godCksYS0tKSxzKyt9ZWxzZXtsZXQgZT0tMTtmb3IoOy0xIT09KGU9dC5kYXRhLmluZGV4T2YoY1h0LGUrMSkpOyl0aGlzLnBhcnRzLnB1c2goe3R5cGU6Im5vZGUiLGluZGV4Oi0xfSkscysrfX1lbHNlIHIuY3VycmVudE5vZGU9aS5wb3AoKX1mb3IoY29uc3QgdCBvZiBuKXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX19Y29uc3QgZlh0PSh0LGUpPT57Y29uc3Qgbj10Lmxlbmd0aC1lLmxlbmd0aDtyZXR1cm4gbj49MCYmdC5zbGljZShuKT09PWV9LG1YdD10PT4tMSE9PXQuaW5kZXgsZ1h0PSgpPT5kb2N1bWVudC5jcmVhdGVDb21tZW50KCIiKSxfWHQ9LyhbIFx4MDlceDBhXHgwY1x4MGRdKShbXlwwLVx4MUZceDdGLVx4OUYgIic+PS9dKykoWyBceDA5XHgwYVx4MGNceDBkXSo9WyBceDA5XHgwYVx4MGNceDBkXSooPzpbXiBceDA5XHgwYVx4MGNceDBkIidgPD49XSp8IlteIl0qfCdbXiddKikpJC87ZnVuY3Rpb24geVh0KHQsZSl7Y29uc3R7ZWxlbWVudDp7Y29udGVudDpufSxwYXJ0czppfT10LHI9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihuLDEzMyxudWxsLCExKTtsZXQgbz1iWHQoaSksYT1pW29dLHM9LTEsbD0wO2NvbnN0IGM9W107bGV0IHU9bnVsbDtmb3IoO3IubmV4dE5vZGUoKTspe3MrKztjb25zdCB0PXIuY3VycmVudE5vZGU7Zm9yKHQucHJldmlvdXNTaWJsaW5nPT09dSYmKHU9bnVsbCksZS5oYXModCkmJihjLnB1c2godCksbnVsbD09PXUmJih1PXQpKSxudWxsIT09dSYmbCsrO3ZvaWQgMCE9PWEmJmEuaW5kZXg9PT1zOylhLmluZGV4PW51bGwhPT11Py0xOmEuaW5kZXgtbCxvPWJYdChpLG8pLGE9aVtvXX1jLmZvckVhY2goKHQ9PnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSkpfWNvbnN0IHZYdD10PT57bGV0IGU9MTE9PT10Lm5vZGVUeXBlPzA6MTtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodCwxMzMsbnVsbCwhMSk7Zm9yKDtuLm5leHROb2RlKCk7KWUrKztyZXR1cm4gZX0sYlh0PSh0LGU9LTEpPT57Zm9yKGxldCBuPWUrMTtuPHQubGVuZ3RoO24rKylpZihtWHQodFtuXSkpcmV0dXJuIG47cmV0dXJuLTF9LHhYdD1uZXcgV2Vha01hcCx3WHQ9e30sU1h0PXt9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgICogQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgICAqIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovCmNsYXNzIE1YdHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fX3BhcnRzPVtdLHRoaXMudGVtcGxhdGU9dCx0aGlzLnByb2Nlc3Nvcj1lLHRoaXMub3B0aW9ucz1ufXVwZGF0ZSh0KXtsZXQgZT0wO2Zvcihjb25zdCBuIG9mIHRoaXMuX19wYXJ0cyl2b2lkIDAhPT1uJiZuLnNldFZhbHVlKHRbZV0pLGUrKztmb3IoY29uc3QgdCBvZiB0aGlzLl9fcGFydHMpdm9pZCAwIT09dCYmdC5jb21taXQoKX1fY2xvbmUoKXtjb25zdCB0PXNYdD90aGlzLnRlbXBsYXRlLmVsZW1lbnQuY29udGVudC5jbG9uZU5vZGUoITApOmRvY3VtZW50LmltcG9ydE5vZGUodGhpcy50ZW1wbGF0ZS5lbGVtZW50LmNvbnRlbnQsITApLGU9W10sbj10aGlzLnRlbXBsYXRlLnBhcnRzLGk9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0LDEzMyxudWxsLCExKTtsZXQgcixvPTAsYT0wLHM9aS5uZXh0Tm9kZSgpO2Zvcig7bzxuLmxlbmd0aDspaWYocj1uW29dLG1YdChyKSl7Zm9yKDthPHIuaW5kZXg7KWErKywiVEVNUExBVEUiPT09cy5ub2RlTmFtZSYmKGUucHVzaChzKSxpLmN1cnJlbnROb2RlPXMuY29udGVudCksbnVsbD09PShzPWkubmV4dE5vZGUoKSkmJihpLmN1cnJlbnROb2RlPWUucG9wKCkscz1pLm5leHROb2RlKCkpO2lmKCJub2RlIj09PXIudHlwZSl7Y29uc3QgdD10aGlzLnByb2Nlc3Nvci5oYW5kbGVUZXh0RXhwcmVzc2lvbih0aGlzLm9wdGlvbnMpO3QuaW5zZXJ0QWZ0ZXJOb2RlKHMucHJldmlvdXNTaWJsaW5nKSx0aGlzLl9fcGFydHMucHVzaCh0KX1lbHNlIHRoaXMuX19wYXJ0cy5wdXNoKC4uLnRoaXMucHJvY2Vzc29yLmhhbmRsZUF0dHJpYnV0ZUV4cHJlc3Npb25zKHMsci5uYW1lLHIuc3RyaW5ncyx0aGlzLm9wdGlvbnMpKTtvKyt9ZWxzZSB0aGlzLl9fcGFydHMucHVzaCh2b2lkIDApLG8rKztyZXR1cm4gc1h0JiYoZG9jdW1lbnQuYWRvcHROb2RlKHQpLGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUodCkpLHR9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgICogQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgICAqIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovY29uc3QgRVh0PXdpbmRvdy50cnVzdGVkVHlwZXMmJnRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDp0PT50fSksVFh0PWAgJHtjWHR9IGA7Y2xhc3MgQ1h0e2NvbnN0cnVjdG9yKHQpe3RoaXMudmFsdWU9dm9pZCAwLHRoaXMuX19wZW5kaW5nVmFsdWU9dm9pZCAwLHRoaXMub3B0aW9ucz10fWFwcGVuZEludG8odCl7dGhpcy5zdGFydE5vZGU9dC5hcHBlbmRDaGlsZChnWHQoKSksdGhpcy5lbmROb2RlPXQuYXBwZW5kQ2hpbGQoZ1h0KCkpfWluc2VydEFmdGVyTm9kZSh0KXt0aGlzLnN0YXJ0Tm9kZT10LHRoaXMuZW5kTm9kZT10Lm5leHRTaWJsaW5nfWFwcGVuZEludG9QYXJ0KHQpe3QuX19pbnNlcnQodGhpcy5zdGFydE5vZGU9Z1h0KCkpLHQuX19pbnNlcnQodGhpcy5lbmROb2RlPWdYdCgpKX1pbnNlcnRBZnRlclBhcnQodCl7dC5fX2luc2VydCh0aGlzLnN0YXJ0Tm9kZT1nWHQoKSksdGhpcy5lbmROb2RlPXQuZW5kTm9kZSx0LmVuZE5vZGU9dGhpcy5zdGFydE5vZGV9c2V0VmFsdWUodCl7dGhpcy5fX3BlbmRpbmdWYWx1ZT10fWNvbW1pdCgpe2lmKG51bGw9PT10aGlzLnN0YXJ0Tm9kZS5wYXJlbnROb2RlKXJldHVybjtmb3IoOyJmdW5jdGlvbiI9PXR5cGVvZih0PXRoaXMuX19wZW5kaW5nVmFsdWUpJiZ4WHQuaGFzKHQpOyl7Y29uc3QgdD10aGlzLl9fcGVuZGluZ1ZhbHVlO3RoaXMuX19wZW5kaW5nVmFsdWU9d1h0LHQodGhpcyl9dmFyIHQ7Y29uc3QgZT10aGlzLl9fcGVuZGluZ1ZhbHVlO2UhPT13WHQmJigodD0+bnVsbD09PXR8fCEoIm9iamVjdCI9PXR5cGVvZiB0fHwiZnVuY3Rpb24iPT10eXBlb2YgdCkpKGUpP2UhPT10aGlzLnZhbHVlJiZ0aGlzLl9fY29tbWl0VGV4dChlKTplIGluc3RhbmNlb2YgY2xhc3N7Y29uc3RydWN0b3IodCxlLG4saSl7dGhpcy5zdHJpbmdzPXQsdGhpcy52YWx1ZXM9ZSx0aGlzLnR5cGU9bix0aGlzLnByb2Nlc3Nvcj1pfWdldEhUTUwoKXtjb25zdCB0PXRoaXMuc3RyaW5ncy5sZW5ndGgtMTtsZXQgZT0iIixuPSExO2ZvcihsZXQgaT0wO2k8dDtpKyspe2NvbnN0IHQ9dGhpcy5zdHJpbmdzW2ldLHI9dC5sYXN0SW5kZXhPZigiXHgzYyEtLSIpO249KHI+LTF8fG4pJiYtMT09PXQuaW5kZXhPZigiLS1ceDNlIixyKzEpO2NvbnN0IG89X1h0LmV4ZWModCk7ZSs9bnVsbD09PW8/dCsobj9UWHQ6dVh0KTp0LnN1YnN0cigwLG8uaW5kZXgpK29bMV0rb1syXStkWHQrb1szXStjWHR9cmV0dXJuIGUrPXRoaXMuc3RyaW5nc1t0XSxlfWdldFRlbXBsYXRlRWxlbWVudCgpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtsZXQgZT10aGlzLmdldEhUTUwoKTtyZXR1cm4gdm9pZCAwIT09RVh0JiYoZT1FWHQuY3JlYXRlSFRNTChlKSksdC5pbm5lckhUTUw9ZSx0fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgICAqIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICAgKiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqLz90aGlzLl9fY29tbWl0VGVtcGxhdGVSZXN1bHQoZSk6ZSBpbnN0YW5jZW9mIE5vZGU/dGhpcy5fX2NvbW1pdE5vZGUoZSk6KHQ9PkFycmF5LmlzQXJyYXkodCl8fCEoIXR8fCF0W1N5bWJvbC5pdGVyYXRvcl0pKShlKT90aGlzLl9fY29tbWl0SXRlcmFibGUoZSk6ZT09PVNYdD8odGhpcy52YWx1ZT1TWHQsdGhpcy5jbGVhcigpKTp0aGlzLl9fY29tbWl0VGV4dChlKSl9X19pbnNlcnQodCl7dGhpcy5lbmROb2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsdGhpcy5lbmROb2RlKX1fX2NvbW1pdE5vZGUodCl7dGhpcy52YWx1ZSE9PXQmJih0aGlzLmNsZWFyKCksdGhpcy5fX2luc2VydCh0KSx0aGlzLnZhbHVlPXQpfV9fY29tbWl0VGV4dCh0KXtjb25zdCBlPXRoaXMuc3RhcnROb2RlLm5leHRTaWJsaW5nLG49InN0cmluZyI9PXR5cGVvZih0PW51bGw9PXQ/IiI6dCk/dDpTdHJpbmcodCk7ZT09PXRoaXMuZW5kTm9kZS5wcmV2aW91c1NpYmxpbmcmJjM9PT1lLm5vZGVUeXBlP2UuZGF0YT1uOnRoaXMuX19jb21taXROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG4pKSx0aGlzLnZhbHVlPXR9X19jb21taXRUZW1wbGF0ZVJlc3VsdCh0KXtjb25zdCBlPXRoaXMub3B0aW9ucy50ZW1wbGF0ZUZhY3RvcnkodCk7aWYodGhpcy52YWx1ZSBpbnN0YW5jZW9mIE1YdCYmdGhpcy52YWx1ZS50ZW1wbGF0ZT09PWUpdGhpcy52YWx1ZS51cGRhdGUodC52YWx1ZXMpO2Vsc2V7Y29uc3Qgbj1uZXcgTVh0KGUsdC5wcm9jZXNzb3IsdGhpcy5vcHRpb25zKSxpPW4uX2Nsb25lKCk7bi51cGRhdGUodC52YWx1ZXMpLHRoaXMuX19jb21taXROb2RlKGkpLHRoaXMudmFsdWU9bn19X19jb21taXRJdGVyYWJsZSh0KXtBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpfHwodGhpcy52YWx1ZT1bXSx0aGlzLmNsZWFyKCkpO2NvbnN0IGU9dGhpcy52YWx1ZTtsZXQgbixpPTA7Zm9yKGNvbnN0IHIgb2YgdCluPWVbaV0sdm9pZCAwPT09biYmKG49bmV3IENYdCh0aGlzLm9wdGlvbnMpLGUucHVzaChuKSwwPT09aT9uLmFwcGVuZEludG9QYXJ0KHRoaXMpOm4uaW5zZXJ0QWZ0ZXJQYXJ0KGVbaS0xXSkpLG4uc2V0VmFsdWUociksbi5jb21taXQoKSxpKys7aTxlLmxlbmd0aCYmKGUubGVuZ3RoPWksdGhpcy5jbGVhcihuJiZuLmVuZE5vZGUpKX1jbGVhcih0PXRoaXMuc3RhcnROb2RlKXtsWHQodGhpcy5zdGFydE5vZGUucGFyZW50Tm9kZSx0Lm5leHRTaWJsaW5nLHRoaXMuZW5kTm9kZSl9fWxldCBBWHQ9ITE7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8KZnVuY3Rpb24ga1h0KHQpe2xldCBlPUxYdC5nZXQodC50eXBlKTt2b2lkIDA9PT1lJiYoZT17c3RyaW5nc0FycmF5Om5ldyBXZWFrTWFwLGtleVN0cmluZzpuZXcgTWFwfSxMWHQuc2V0KHQudHlwZSxlKSk7bGV0IG49ZS5zdHJpbmdzQXJyYXkuZ2V0KHQuc3RyaW5ncyk7aWYodm9pZCAwIT09bilyZXR1cm4gbjtjb25zdCBpPXQuc3RyaW5ncy5qb2luKGNYdCk7cmV0dXJuIG49ZS5rZXlTdHJpbmcuZ2V0KGkpLHZvaWQgMD09PW4mJihuPW5ldyBwWHQodCx0LmdldFRlbXBsYXRlRWxlbWVudCgpKSxlLmtleVN0cmluZy5zZXQoaSxuKSksZS5zdHJpbmdzQXJyYXkuc2V0KHQuc3RyaW5ncyxuKSxufSgoKT0+e3RyeXtjb25zdCB0PXtnZXQgY2FwdHVyZSgpe3JldHVybiBBWHQ9ITAsITF9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsdCx0KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsdCx0KX1jYXRjaCh0KXt9fSkoKTtjb25zdCBMWHQ9bmV3IE1hcCxQWHQ9bmV3IFdlYWtNYXA7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgICAqIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICAgKiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqLwoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5saXRIdG1sVmVyc2lvbnN8fCh3aW5kb3cubGl0SHRtbFZlcnNpb25zPVtdKSkucHVzaCgiMS40LjEiKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgICAqIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICAgKiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqL2NvbnN0IE5YdD0odCxlKT0+YCR7dH0tLSR7ZX1gO2xldCBJWHQ9ITA7dm9pZCAwPT09d2luZG93LlNoYWR5Q1NTP0lYdD0hMTp2b2lkIDA9PT13aW5kb3cuU2hhZHlDU1MucHJlcGFyZVRlbXBsYXRlRG9tJiYoY29uc29sZS53YXJuKCJJbmNvbXBhdGlibGUgU2hhZHlDU1MgdmVyc2lvbiBkZXRlY3RlZC4gUGxlYXNlIHVwZGF0ZSB0byBhdCBsZWFzdCBAd2ViY29tcG9uZW50cy93ZWJjb21wb25lbnRzanNAMi4wLjIgYW5kIEB3ZWJjb21wb25lbnRzL3NoYWR5Y3NzQDEuMy4xLiIpLElYdD0hMSk7Y29uc3QgUlh0PXQ9PmU9Pntjb25zdCBuPU5YdChlLnR5cGUsdCk7bGV0IGk9TFh0LmdldChuKTt2b2lkIDA9PT1pJiYoaT17c3RyaW5nc0FycmF5Om5ldyBXZWFrTWFwLGtleVN0cmluZzpuZXcgTWFwfSxMWHQuc2V0KG4saSkpO2xldCByPWkuc3RyaW5nc0FycmF5LmdldChlLnN0cmluZ3MpO2lmKHZvaWQgMCE9PXIpcmV0dXJuIHI7Y29uc3Qgbz1lLnN0cmluZ3Muam9pbihjWHQpO2lmKHI9aS5rZXlTdHJpbmcuZ2V0KG8pLHZvaWQgMD09PXIpe2NvbnN0IG49ZS5nZXRUZW1wbGF0ZUVsZW1lbnQoKTtJWHQmJndpbmRvdy5TaGFkeUNTUy5wcmVwYXJlVGVtcGxhdGVEb20obix0KSxyPW5ldyBwWHQoZSxuKSxpLmtleVN0cmluZy5zZXQobyxyKX1yZXR1cm4gaS5zdHJpbmdzQXJyYXkuc2V0KGUuc3RyaW5ncyxyKSxyfSxPWHQ9WyJodG1sIiwic3ZnIl0selh0PW5ldyBTZXQ7d2luZG93LkpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHk9KHQsZSk9PnQ7Y29uc3QgRFh0PXt0b0F0dHJpYnV0ZSh0LGUpe3N3aXRjaChlKXtjYXNlIEJvb2xlYW46cmV0dXJuIHQ/IiI6bnVsbDtjYXNlIE9iamVjdDpjYXNlIEFycmF5OnJldHVybiBudWxsPT10P3Q6SlNPTi5zdHJpbmdpZnkodCl9cmV0dXJuIHR9LGZyb21BdHRyaWJ1dGUodCxlKXtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnJldHVybiBudWxsIT09dDtjYXNlIE51bWJlcjpyZXR1cm4gbnVsbD09PXQ/bnVsbDpOdW1iZXIodCk7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTpyZXR1cm4gSlNPTi5wYXJzZSh0KX1yZXR1cm4gdH19LEJYdD0odCxlKT0+ZSE9PXQmJihlPT1lfHx0PT10KSxIWHQ9e2F0dHJpYnV0ZTohMCx0eXBlOlN0cmluZyxjb252ZXJ0ZXI6RFh0LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpCWHR9O2NsYXNzIEZYdCBleHRlbmRzIEhUTUxFbGVtZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmluaXRpYWxpemUoKX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3RoaXMuZmluYWxpemUoKTtjb25zdCB0PVtdO3JldHVybiB0aGlzLl9jbGFzc1Byb3BlcnRpZXMuZm9yRWFjaCgoKGUsbik9Pntjb25zdCBpPXRoaXMuX2F0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eShuLGUpO3ZvaWQgMCE9PWkmJih0aGlzLl9hdHRyaWJ1dGVUb1Byb3BlcnR5TWFwLnNldChpLG4pLHQucHVzaChpKSl9KSksdH1zdGF0aWMgX2Vuc3VyZUNsYXNzUHJvcGVydGllcygpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9jbGFzc1Byb3BlcnRpZXMiLHRoaXMpKSl7dGhpcy5fY2xhc3NQcm9wZXJ0aWVzPW5ldyBNYXA7Y29uc3QgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2NsYXNzUHJvcGVydGllczt2b2lkIDAhPT10JiZ0LmZvckVhY2goKCh0LGUpPT50aGlzLl9jbGFzc1Byb3BlcnRpZXMuc2V0KGUsdCkpKX19c3RhdGljIGNyZWF0ZVByb3BlcnR5KHQsZT1IWHQpe2lmKHRoaXMuX2Vuc3VyZUNsYXNzUHJvcGVydGllcygpLHRoaXMuX2NsYXNzUHJvcGVydGllcy5zZXQodCxlKSxlLm5vQWNjZXNzb3J8fHRoaXMucHJvdG90eXBlLmhhc093blByb3BlcnR5KHQpKXJldHVybjtjb25zdCBuPSJzeW1ib2wiPT10eXBlb2YgdD9TeW1ib2woKTpgX18ke3R9YCxpPXRoaXMuZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHQsbixlKTt2b2lkIDAhPT1pJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5wcm90b3R5cGUsdCxpKX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHQsZSxuKXtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbZV19LHNldChpKXtjb25zdCByPXRoaXNbdF07dGhpc1tlXT1pLHRoaXMucmVxdWVzdFVwZGF0ZUludGVybmFsKHQscixuKX0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9fXN0YXRpYyBnZXRQcm9wZXJ0eU9wdGlvbnModCl7cmV0dXJuIHRoaXMuX2NsYXNzUHJvcGVydGllcyYmdGhpcy5fY2xhc3NQcm9wZXJ0aWVzLmdldCh0KXx8SFh0fXN0YXRpYyBmaW5hbGl6ZSgpe2NvbnN0IHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO2lmKHQuaGFzT3duUHJvcGVydHkoImZpbmFsaXplZCIpfHx0LmZpbmFsaXplKCksdGhpcy5maW5hbGl6ZWQ9ITAsdGhpcy5fZW5zdXJlQ2xhc3NQcm9wZXJ0aWVzKCksdGhpcy5fYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcD1uZXcgTWFwLHRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgicHJvcGVydGllcyIsdGhpcykpKXtjb25zdCB0PXRoaXMucHJvcGVydGllcyxlPVsuLi5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KSwuLi4iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpOltdXTtmb3IoY29uc3QgbiBvZiBlKXRoaXMuY3JlYXRlUHJvcGVydHkobix0W25dKX19c3RhdGljIF9hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkodCxlKXtjb25zdCBuPWUuYXR0cmlidXRlO3JldHVybiExPT09bj92b2lkIDA6InN0cmluZyI9PXR5cGVvZiBuP246InN0cmluZyI9PXR5cGVvZiB0P3QudG9Mb3dlckNhc2UoKTp2b2lkIDB9c3RhdGljIF92YWx1ZUhhc0NoYW5nZWQodCxlLG49Qlh0KXtyZXR1cm4gbih0LGUpfXN0YXRpYyBfcHJvcGVydHlWYWx1ZUZyb21BdHRyaWJ1dGUodCxlKXtjb25zdCBuPWUuY29udmVydGVyfHxEWHQsaT0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOm4uZnJvbUF0dHJpYnV0ZTtyZXR1cm4gaT9pKHQsZS50eXBlKTp0fXN0YXRpYyBfcHJvcGVydHlWYWx1ZVRvQXR0cmlidXRlKHQsZSl7aWYodm9pZCAwPT09ZS5yZWZsZWN0KXJldHVybjtjb25zdCBuPWUuY29udmVydGVyO3JldHVybihuJiZuLnRvQXR0cmlidXRlfHxEWHQudG9BdHRyaWJ1dGUpKHQsZS50eXBlKX1pbml0aWFsaXplKCl7dGhpcy5fdXBkYXRlU3RhdGU9MCx0aGlzLl91cGRhdGVQcm9taXNlPW5ldyBQcm9taXNlKCh0PT50aGlzLl9lbmFibGVVcGRhdGluZ1Jlc29sdmVyPXQpKSx0aGlzLl9jaGFuZ2VkUHJvcGVydGllcz1uZXcgTWFwLHRoaXMuX3NhdmVJbnN0YW5jZVByb3BlcnRpZXMoKSx0aGlzLnJlcXVlc3RVcGRhdGVJbnRlcm5hbCgpfV9zYXZlSW5zdGFuY2VQcm9wZXJ0aWVzKCl7dGhpcy5jb25zdHJ1Y3Rvci5fY2xhc3NQcm9wZXJ0aWVzLmZvckVhY2goKCh0LGUpPT57aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShlKSl7Y29uc3QgdD10aGlzW2VdO2RlbGV0ZSB0aGlzW2VdLHRoaXMuX2luc3RhbmNlUHJvcGVydGllc3x8KHRoaXMuX2luc3RhbmNlUHJvcGVydGllcz1uZXcgTWFwKSx0aGlzLl9pbnN0YW5jZVByb3BlcnRpZXMuc2V0KGUsdCl9fSkpfV9hcHBseUluc3RhbmNlUHJvcGVydGllcygpe3RoaXMuX2luc3RhbmNlUHJvcGVydGllcy5mb3JFYWNoKCgodCxlKT0+dGhpc1tlXT10KSksdGhpcy5faW5zdGFuY2VQcm9wZXJ0aWVzPXZvaWQgMH1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuZW5hYmxlVXBkYXRpbmcoKX1lbmFibGVVcGRhdGluZygpe3ZvaWQgMCE9PXRoaXMuX2VuYWJsZVVwZGF0aW5nUmVzb2x2ZXImJih0aGlzLl9lbmFibGVVcGRhdGluZ1Jlc29sdmVyKCksdGhpcy5fZW5hYmxlVXBkYXRpbmdSZXNvbHZlcj12b2lkIDApfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7fWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbil7ZSE9PW4mJnRoaXMuX2F0dHJpYnV0ZVRvUHJvcGVydHkodCxuKX1fcHJvcGVydHlUb0F0dHJpYnV0ZSh0LGUsbj1IWHQpe2NvbnN0IGk9dGhpcy5jb25zdHJ1Y3RvcixyPWkuX2F0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eSh0LG4pO2lmKHZvaWQgMCE9PXIpe2NvbnN0IHQ9aS5fcHJvcGVydHlWYWx1ZVRvQXR0cmlidXRlKGUsbik7aWYodm9pZCAwPT09dClyZXR1cm47dGhpcy5fdXBkYXRlU3RhdGU9OHx0aGlzLl91cGRhdGVTdGF0ZSxudWxsPT10P3RoaXMucmVtb3ZlQXR0cmlidXRlKHIpOnRoaXMuc2V0QXR0cmlidXRlKHIsdCksdGhpcy5fdXBkYXRlU3RhdGU9LTkmdGhpcy5fdXBkYXRlU3RhdGV9fV9hdHRyaWJ1dGVUb1Byb3BlcnR5KHQsZSl7aWYoOCZ0aGlzLl91cGRhdGVTdGF0ZSlyZXR1cm47Y29uc3Qgbj10aGlzLmNvbnN0cnVjdG9yLGk9bi5fYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5nZXQodCk7aWYodm9pZCAwIT09aSl7Y29uc3QgdD1uLmdldFByb3BlcnR5T3B0aW9ucyhpKTt0aGlzLl91cGRhdGVTdGF0ZT0xNnx0aGlzLl91cGRhdGVTdGF0ZSx0aGlzW2ldPW4uX3Byb3BlcnR5VmFsdWVGcm9tQXR0cmlidXRlKGUsdCksdGhpcy5fdXBkYXRlU3RhdGU9LTE3JnRoaXMuX3VwZGF0ZVN0YXRlfX1yZXF1ZXN0VXBkYXRlSW50ZXJuYWwodCxlLG4pe2xldCBpPSEwO2lmKHZvaWQgMCE9PXQpe2NvbnN0IHI9dGhpcy5jb25zdHJ1Y3RvcjtuPW58fHIuZ2V0UHJvcGVydHlPcHRpb25zKHQpLHIuX3ZhbHVlSGFzQ2hhbmdlZCh0aGlzW3RdLGUsbi5oYXNDaGFuZ2VkKT8odGhpcy5fY2hhbmdlZFByb3BlcnRpZXMuaGFzKHQpfHx0aGlzLl9jaGFuZ2VkUHJvcGVydGllcy5zZXQodCxlKSwhMCE9PW4ucmVmbGVjdHx8MTYmdGhpcy5fdXBkYXRlU3RhdGV8fCh2b2lkIDA9PT10aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcyYmKHRoaXMuX3JlZmxlY3RpbmdQcm9wZXJ0aWVzPW5ldyBNYXApLHRoaXMuX3JlZmxlY3RpbmdQcm9wZXJ0aWVzLnNldCh0LG4pKSk6aT0hMX0hdGhpcy5faGFzUmVxdWVzdGVkVXBkYXRlJiZpJiYodGhpcy5fdXBkYXRlUHJvbWlzZT10aGlzLl9lbnF1ZXVlVXBkYXRlKCkpfXJlcXVlc3RVcGRhdGUodCxlKXtyZXR1cm4gdGhpcy5yZXF1ZXN0VXBkYXRlSW50ZXJuYWwodCxlKSx0aGlzLnVwZGF0ZUNvbXBsZXRlfWFzeW5jIF9lbnF1ZXVlVXBkYXRlKCl7dGhpcy5fdXBkYXRlU3RhdGU9NHx0aGlzLl91cGRhdGVTdGF0ZTt0cnl7YXdhaXQgdGhpcy5fdXBkYXRlUHJvbWlzZX1jYXRjaCh0KXt9Y29uc3QgdD10aGlzLnBlcmZvcm1VcGRhdGUoKTtyZXR1cm4gbnVsbCE9dCYmYXdhaXQgdCwhdGhpcy5faGFzUmVxdWVzdGVkVXBkYXRlfWdldCBfaGFzUmVxdWVzdGVkVXBkYXRlKCl7cmV0dXJuIDQmdGhpcy5fdXBkYXRlU3RhdGV9Z2V0IGhhc1VwZGF0ZWQoKXtyZXR1cm4gMSZ0aGlzLl91cGRhdGVTdGF0ZX1wZXJmb3JtVXBkYXRlKCl7aWYoIXRoaXMuX2hhc1JlcXVlc3RlZFVwZGF0ZSlyZXR1cm47dGhpcy5faW5zdGFuY2VQcm9wZXJ0aWVzJiZ0aGlzLl9hcHBseUluc3RhbmNlUHJvcGVydGllcygpO2xldCB0PSExO2NvbnN0IGU9dGhpcy5fY2hhbmdlZFByb3BlcnRpZXM7dHJ5e3Q9dGhpcy5zaG91bGRVcGRhdGUoZSksdD90aGlzLnVwZGF0ZShlKTp0aGlzLl9tYXJrVXBkYXRlZCgpfWNhdGNoKGUpe3Rocm93IHQ9ITEsdGhpcy5fbWFya1VwZGF0ZWQoKSxlfXQmJigxJnRoaXMuX3VwZGF0ZVN0YXRlfHwodGhpcy5fdXBkYXRlU3RhdGU9MXx0aGlzLl91cGRhdGVTdGF0ZSx0aGlzLmZpcnN0VXBkYXRlZChlKSksdGhpcy51cGRhdGVkKGUpKX1fbWFya1VwZGF0ZWQoKXt0aGlzLl9jaGFuZ2VkUHJvcGVydGllcz1uZXcgTWFwLHRoaXMuX3VwZGF0ZVN0YXRlPS01JnRoaXMuX3VwZGF0ZVN0YXRlfWdldCB1cGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl9nZXRVcGRhdGVDb21wbGV0ZSgpfV9nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLmdldFVwZGF0ZUNvbXBsZXRlKCl9Z2V0VXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5fdXBkYXRlUHJvbWlzZX1zaG91bGRVcGRhdGUodCl7cmV0dXJuITB9dXBkYXRlKHQpe3ZvaWQgMCE9PXRoaXMuX3JlZmxlY3RpbmdQcm9wZXJ0aWVzJiZ0aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcy5zaXplPjAmJih0aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcy5mb3JFYWNoKCgodCxlKT0+dGhpcy5fcHJvcGVydHlUb0F0dHJpYnV0ZShlLHRoaXNbZV0sdCkpKSx0aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcz12b2lkIDApLHRoaXMuX21hcmtVcGRhdGVkKCl9dXBkYXRlZCh0KXt9Zmlyc3RVcGRhdGVkKHQpe319Rlh0LmZpbmFsaXplZD0hMDsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IFZYdD13aW5kb3cuU2hhZG93Um9vdCYmKHZvaWQgMD09PXdpbmRvdy5TaGFkeUNTU3x8d2luZG93LlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNoZWV0LnByb3RvdHlwZSxVWHQ9U3ltYm9sKCk7Y2xhc3Mgalh0e2NvbnN0cnVjdG9yKHQsZSl7aWYoZSE9PVVYdCl0aHJvdyBuZXcgRXJyb3IoIkNTU1Jlc3VsdCBpcyBub3QgY29uc3RydWN0YWJsZS4gVXNlIGB1bnNhZmVDU1NgIG9yIGBjc3NgIGluc3RlYWQuIik7dGhpcy5jc3NUZXh0PXR9Z2V0IHN0eWxlU2hlZXQoKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5fc3R5bGVTaGVldCYmKFZYdD8odGhpcy5fc3R5bGVTaGVldD1uZXcgQ1NTU3R5bGVTaGVldCx0aGlzLl9zdHlsZVNoZWV0LnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCkpOnRoaXMuX3N0eWxlU2hlZXQ9bnVsbCksdGhpcy5fc3R5bGVTaGVldH10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc1RleHR9fWNvbnN0IEdYdD0odCwuLi5lKT0+e2NvbnN0IG49ZS5yZWR1Y2UoKChlLG4saSk9PmUrKHQ9PntpZih0IGluc3RhbmNlb2Ygalh0KXJldHVybiB0LmNzc1RleHQ7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O3Rocm93IG5ldyBFcnJvcihgVmFsdWUgcGFzc2VkIHRvICdjc3MnIGZ1bmN0aW9uIG11c3QgYmUgYSAnY3NzJyBmdW5jdGlvbiByZXN1bHQ6ICR7dH0uIFVzZSAndW5zYWZlQ1NTJyB0byBwYXNzIG5vbi1saXRlcmFsIHZhbHVlcywgYnV0XG4gICAgICAgICAgICB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuYCl9KShuKSt0W2krMV0pLHRbMF0pO3JldHVybiBuZXcgalh0KG4sVVh0KX07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8KKHdpbmRvdy5saXRFbGVtZW50VmVyc2lvbnN8fCh3aW5kb3cubGl0RWxlbWVudFZlcnNpb25zPVtdKSkucHVzaCgiMi41LjEiKTtjb25zdCBXWHQ9e307Y2xhc3MgcVh0IGV4dGVuZHMgRlh0e3N0YXRpYyBnZXRTdHlsZXMoKXtyZXR1cm4gdGhpcy5zdHlsZXN9c3RhdGljIF9nZXRVbmlxdWVTdHlsZXMoKXtpZih0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9zdHlsZXMiLHRoaXMpKSlyZXR1cm47Y29uc3QgdD10aGlzLmdldFN0eWxlcygpO2lmKEFycmF5LmlzQXJyYXkodCkpe2NvbnN0IGU9KHQsbik9PnQucmVkdWNlUmlnaHQoKCh0LG4pPT5BcnJheS5pc0FycmF5KG4pP2Uobix0KToodC5hZGQobiksdCkpLG4pLG49ZSh0LG5ldyBTZXQpLGk9W107bi5mb3JFYWNoKCh0PT5pLnVuc2hpZnQodCkpKSx0aGlzLl9zdHlsZXM9aX1lbHNlIHRoaXMuX3N0eWxlcz12b2lkIDA9PT10P1tdOlt0XTt0aGlzLl9zdHlsZXM9dGhpcy5fc3R5bGVzLm1hcCgodD0+dCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQmJiFWWHQ/KHQ9Pm5ldyBqWHQoU3RyaW5nKHQpLFVYdCkpKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQuY3NzUnVsZXMpLnJlZHVjZSgoKHQsZSk9PnQrZS5jc3NUZXh0KSwiIikpOnQpKX1pbml0aWFsaXplKCl7c3VwZXIuaW5pdGlhbGl6ZSgpLHRoaXMuY29uc3RydWN0b3IuX2dldFVuaXF1ZVN0eWxlcygpLHRoaXMucmVuZGVyUm9vdD10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx3aW5kb3cuU2hhZG93Um9vdCYmdGhpcy5yZW5kZXJSb290IGluc3RhbmNlb2Ygd2luZG93LlNoYWRvd1Jvb3QmJnRoaXMuYWRvcHRTdHlsZXMoKX1jcmVhdGVSZW5kZXJSb290KCl7cmV0dXJuIHRoaXMuYXR0YWNoU2hhZG93KHRoaXMuY29uc3RydWN0b3Iuc2hhZG93Um9vdE9wdGlvbnMpfWFkb3B0U3R5bGVzKCl7Y29uc3QgdD10aGlzLmNvbnN0cnVjdG9yLl9zdHlsZXM7MCE9PXQubGVuZ3RoJiYodm9pZCAwPT09d2luZG93LlNoYWR5Q1NTfHx3aW5kb3cuU2hhZHlDU1MubmF0aXZlU2hhZG93P1ZYdD90aGlzLnJlbmRlclJvb3QuYWRvcHRlZFN0eWxlU2hlZXRzPXQubWFwKCh0PT50IGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD90OnQuc3R5bGVTaGVldCkpOnRoaXMuX25lZWRzU2hpbUFkb3B0ZWRTdHlsZVNoZWV0cz0hMDp3aW5kb3cuU2hhZHlDU1MuU2NvcGluZ1NoaW0ucHJlcGFyZUFkb3B0ZWRDc3NUZXh0KHQubWFwKCh0PT50LmNzc1RleHQpKSx0aGlzLmxvY2FsTmFtZSkpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhc1VwZGF0ZWQmJnZvaWQgMCE9PXdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLnN0eWxlRWxlbWVudCh0aGlzKX11cGRhdGUodCl7Y29uc3QgZT10aGlzLnJlbmRlcigpO3N1cGVyLnVwZGF0ZSh0KSxlIT09V1h0JiZ0aGlzLmNvbnN0cnVjdG9yLnJlbmRlcihlLHRoaXMucmVuZGVyUm9vdCx7c2NvcGVOYW1lOnRoaXMubG9jYWxOYW1lLGV2ZW50Q29udGV4dDp0aGlzfSksdGhpcy5fbmVlZHNTaGltQWRvcHRlZFN0eWxlU2hlZXRzJiYodGhpcy5fbmVlZHNTaGltQWRvcHRlZFN0eWxlU2hlZXRzPSExLHRoaXMuY29uc3RydWN0b3IuX3N0eWxlcy5mb3JFYWNoKCh0PT57Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2UudGV4dENvbnRlbnQ9dC5jc3NUZXh0LHRoaXMucmVuZGVyUm9vdC5hcHBlbmRDaGlsZChlKX0pKSl9cmVuZGVyKCl7cmV0dXJuIFdYdH19cVh0LmZpbmFsaXplZD0hMCxxWHQucmVuZGVyPSh0LGUsbik9PntpZighbnx8Im9iamVjdCIhPXR5cGVvZiBufHwhbi5zY29wZU5hbWUpdGhyb3cgbmV3IEVycm9yKCJUaGUgYHNjb3BlTmFtZWAgb3B0aW9uIGlzIHJlcXVpcmVkLiIpO2NvbnN0IGk9bi5zY29wZU5hbWUscj1QWHQuaGFzKGUpLG89SVh0JiYxMT09PWUubm9kZVR5cGUmJiEhZS5ob3N0LGE9byYmIXpYdC5oYXMoaSkscz1hP2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTplO2lmKCgodCxlLG4pPT57bGV0IGk9UFh0LmdldChlKTt2b2lkIDA9PT1pJiYobFh0KGUsZS5maXJzdENoaWxkKSxQWHQuc2V0KGUsaT1uZXcgQ1h0KE9iamVjdC5hc3NpZ24oe3RlbXBsYXRlRmFjdG9yeTprWHR9LG4pKSksaS5hcHBlbmRJbnRvKGUpKSxpLnNldFZhbHVlKHQpLGkuY29tbWl0KCl9KSh0LHMsT2JqZWN0LmFzc2lnbih7dGVtcGxhdGVGYWN0b3J5OlJYdChpKX0sbikpLGEpe2NvbnN0IHQ9UFh0LmdldChzKTtQWHQuZGVsZXRlKHMpLCgodCxlLG4pPT57elh0LmFkZCh0KTtjb25zdCBpPW4/bi5lbGVtZW50OmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIikscj1lLnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIikse2xlbmd0aDpvfT1yO2lmKDA9PT1vKXJldHVybiB2b2lkIHdpbmRvdy5TaGFkeUNTUy5wcmVwYXJlVGVtcGxhdGVTdHlsZXMoaSx0KTtjb25zdCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Zm9yKGxldCB0PTA7dDxvO3QrKyl7Y29uc3QgZT1yW3RdO2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxhLnRleHRDb250ZW50Kz1lLnRleHRDb250ZW50fSh0PT57T1h0LmZvckVhY2goKGU9Pntjb25zdCBuPUxYdC5nZXQoTlh0KGUsdCkpO3ZvaWQgMCE9PW4mJm4ua2V5U3RyaW5nLmZvckVhY2goKHQ9Pntjb25zdHtlbGVtZW50Ontjb250ZW50OmV9fT10LG49bmV3IFNldDtBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgic3R5bGUiKSkuZm9yRWFjaCgodD0+e24uYWRkKHQpfSkpLHlYdCh0LG4pfSkpfSkpfSkodCk7Y29uc3Qgcz1pLmNvbnRlbnQ7bj8oZnVuY3Rpb24gbCh0LGUsbj1udWxsKXtjb25zdHtlbGVtZW50Ontjb250ZW50Oml9LHBhcnRzOnJ9PXQ7aWYobnVsbD09bilyZXR1cm4gdm9pZCBpLmFwcGVuZENoaWxkKGUpO2NvbnN0IG89ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihpLDEzMyxudWxsLCExKTtsZXQgYT1iWHQocikscz0wLGw9LTE7Zm9yKDtvLm5leHROb2RlKCk7KWZvcihsKyssby5jdXJyZW50Tm9kZT09PW4mJihzPXZYdChlKSxuLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsbikpOy0xIT09YSYmclthXS5pbmRleD09PWw7KXtpZihzPjApe2Zvcig7LTEhPT1hOylyW2FdLmluZGV4Kz1zLGE9Ylh0KHIsYSk7cmV0dXJufWE9Ylh0KHIsYSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgICogQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgICAqIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovKShuLGEscy5maXJzdENoaWxkKTpzLmluc2VydEJlZm9yZShhLHMuZmlyc3RDaGlsZCksd2luZG93LlNoYWR5Q1NTLnByZXBhcmVUZW1wbGF0ZVN0eWxlcyhpLHQpO2NvbnN0IGM9cy5xdWVyeVNlbGVjdG9yKCJzdHlsZSIpO2lmKHdpbmRvdy5TaGFkeUNTUy5uYXRpdmVTaGFkb3cmJm51bGwhPT1jKWUuaW5zZXJ0QmVmb3JlKGMuY2xvbmVOb2RlKCEwKSxlLmZpcnN0Q2hpbGQpO2Vsc2UgaWYobil7cy5pbnNlcnRCZWZvcmUoYSxzLmZpcnN0Q2hpbGQpO2NvbnN0IHQ9bmV3IFNldDt0LmFkZChhKSx5WHQobix0KX19KShpLHMsdC52YWx1ZSBpbnN0YW5jZW9mIE1YdD90LnZhbHVlLnRlbXBsYXRlOnZvaWQgMCksbFh0KGUsZS5maXJzdENoaWxkKSxlLmFwcGVuZENoaWxkKHMpLFBYdC5zZXQoZSx0KX0hciYmbyYmd2luZG93LlNoYWR5Q1NTLnN0eWxlRWxlbWVudChlLmhvc3QpfSxxWHQuc2hhZG93Um9vdE9wdGlvbnM9e21vZGU6Im9wZW4ifTtsZXQgWVh0PTA7Y29uc3QgWFh0PXt9LCRYdD0odCxlLG4pPT57Y29uc3QgaT1uJiZuLm1vZHVsZUlkfHwiY3VzdG9tLXN0eWxlLW1vZHVsZS0iK1lYdCsrO0FycmF5LmlzQXJyYXkoZSl8fChlPWU/W2VdOltdKSxlLmZvckVhY2goKHQ9PntpZighKHQgaW5zdGFuY2VvZiBqWHQpKXRocm93IG5ldyBFcnJvcigiQW4gaXRlbSBpbiBzdHlsZXMgaXMgbm90IG9mIHR5cGUgQ1NTUmVzdWx0LiBVc2UgYHVuc2FmZUNTU2Agb3IgYGNzc2AuIik7aWYoIVhYdFt0XSl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkb20tbW9kdWxlIik7ZS5pbm5lckhUTUw9YFxuICAgICAgICA8dGVtcGxhdGU+XG4gICAgICAgICAgPHN0eWxlPiR7dC50b1N0cmluZygpfTwvc3R5bGU+XG4gICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICBgO2NvbnN0IG49ImN1c3RvbS1zdHlsZS1tb2R1bGUtIitZWHQrKztlLnJlZ2lzdGVyKG4pLFhYdFt0XT1ufX0pKTtjb25zdCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRvbS1tb2R1bGUiKTtpZih0KXtjb25zdCBlPWN1c3RvbUVsZW1lbnRzLmdldCh0KTtlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwiX19maW5hbGl6ZWQiKSYmY29uc29sZS53YXJuKGBUaGUgY3VzdG9tIGVsZW1lbnQgZGVmaW5pdGlvbiBmb3IgIiR7dH0iXG4gICAgICB3YXMgZmluYWxpemVkIGJlZm9yZSBhIHN0eWxlIG1vZHVsZSB3YXMgcmVnaXN0ZXJlZC5cbiAgICAgIE1ha2Ugc3VyZSB0byBhZGQgY29tcG9uZW50IHNwZWNpZmljIHN0eWxlIG1vZHVsZXMgYmVmb3JlXG4gICAgICBpbXBvcnRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgY3VzdG9tIGVsZW1lbnQuYCksci5zZXRBdHRyaWJ1dGUoInRoZW1lLWZvciIsdCl9ci5pbm5lckhUTUw9YFxuICAgIDx0ZW1wbGF0ZT5cbiAgICAgICR7KG4mJm4uaW5jbHVkZXx8W10pLm1hcCgodD0+YDxzdHlsZSBpbmNsdWRlPSR7dH0+PC9zdHlsZT5gKSl9XG4gICAgICAke2UubWFwKCh0PT5gPHN0eWxlIGluY2x1ZGU9JHtYWHRbdF19Pjwvc3R5bGU+YCkpfVxuICAgIDwvdGVtcGxhdGU+XG4gIGAsci5yZWdpc3RlcihpKX07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovCmNsYXNzIEtYdCBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpYyBnZXQgdmVyc2lvbigpe3JldHVybiIyMC4wLjIifX1jdXN0b21FbGVtZW50cy5kZWZpbmUoInZhYWRpbi1sdW1vLXN0eWxlcyIsS1h0KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgWlh0PUdYdGAKICA6aG9zdCB7CiAgICAvKiBCYXNlIChiYWNrZ3JvdW5kKSAqLwogICAgLS1sdW1vLWJhc2UtY29sb3I6ICNmZmY7CgogICAgLyogVGludCAqLwogICAgLS1sdW1vLXRpbnQtNXBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC4zKTsKICAgIC0tbHVtby10aW50LTEwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjM3KTsKICAgIC0tbHVtby10aW50LTIwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjQ0KTsKICAgIC0tbHVtby10aW50LTMwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjUpOwogICAgLS1sdW1vLXRpbnQtNDBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNTcpOwogICAgLS1sdW1vLXRpbnQtNTBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNjQpOwogICAgLS1sdW1vLXRpbnQtNjBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNyk7CiAgICAtLWx1bW8tdGludC03MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC43Nyk7CiAgICAtLWx1bW8tdGludC04MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC44NCk7CiAgICAtLWx1bW8tdGludC05MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC45KTsKICAgIC0tbHVtby10aW50OiAjZmZmOwoKICAgIC8qIFNoYWRlICovCiAgICAtLWx1bW8tc2hhZGUtNXBjdDogaHNsYSgyMTQsIDYxJSwgMjUlLCAwLjA1KTsKICAgIC0tbHVtby1zaGFkZS0xMHBjdDogaHNsYSgyMTQsIDU3JSwgMjQlLCAwLjEpOwogICAgLS1sdW1vLXNoYWRlLTIwcGN0OiBoc2xhKDIxNCwgNTMlLCAyMyUsIDAuMTYpOwogICAgLS1sdW1vLXNoYWRlLTMwcGN0OiBoc2xhKDIxNCwgNTAlLCAyMiUsIDAuMjYpOwogICAgLS1sdW1vLXNoYWRlLTQwcGN0OiBoc2xhKDIxNCwgNDclLCAyMSUsIDAuMzgpOwogICAgLS1sdW1vLXNoYWRlLTUwcGN0OiBoc2xhKDIxNCwgNDUlLCAyMCUsIDAuNSk7CiAgICAtLWx1bW8tc2hhZGUtNjBwY3Q6IGhzbGEoMjE0LCA0MyUsIDE5JSwgMC42MSk7CiAgICAtLWx1bW8tc2hhZGUtNzBwY3Q6IGhzbGEoMjE0LCA0MiUsIDE4JSwgMC43Mik7CiAgICAtLWx1bW8tc2hhZGUtODBwY3Q6IGhzbGEoMjE0LCA0MSUsIDE3JSwgMC44Myk7CiAgICAtLWx1bW8tc2hhZGUtOTBwY3Q6IGhzbGEoMjE0LCA0MCUsIDE2JSwgMC45NCk7CiAgICAtLWx1bW8tc2hhZGU6IGhzbCgyMTQsIDM1JSwgMTUlKTsKCiAgICAvKiBDb250cmFzdCAqLwogICAgLS1sdW1vLWNvbnRyYXN0LTVwY3Q6IHZhcigtLWx1bW8tc2hhZGUtNXBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtMTBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtMTBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTIwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC0zMHBjdDogdmFyKC0tbHVtby1zaGFkZS0zMHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtNDBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtNDBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTUwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTUwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC02MHBjdDogdmFyKC0tbHVtby1zaGFkZS02MHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtNzBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtNzBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTgwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTgwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC05MHBjdDogdmFyKC0tbHVtby1zaGFkZS05MHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3Q6IHZhcigtLWx1bW8tc2hhZGUpOwoKICAgIC8qIFRleHQgKi8KICAgIC0tbHVtby1oZWFkZXItdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdCk7CiAgICAtLWx1bW8tYm9keS10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTkwcGN0KTsKICAgIC0tbHVtby1zZWNvbmRhcnktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC03MHBjdCk7CiAgICAtLWx1bW8tdGVydGlhcnktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC01MHBjdCk7CiAgICAtLWx1bW8tZGlzYWJsZWQtdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CgogICAgLyogUHJpbWFyeSAqLwogICAgLS1sdW1vLXByaW1hcnktY29sb3I6IGhzbCgyMTQsIDkwJSwgNTIlKTsKICAgIC0tbHVtby1wcmltYXJ5LWNvbG9yLTUwcGN0OiBoc2xhKDIxNCwgOTAlLCA1MiUsIDAuNSk7CiAgICAtLWx1bW8tcHJpbWFyeS1jb2xvci0xMHBjdDogaHNsYSgyMTQsIDkwJSwgNTIlLCAwLjEpOwogICAgLS1sdW1vLXByaW1hcnktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yKTsKICAgIC0tbHVtby1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yOiAjZmZmOwoKICAgIC8qIEVycm9yICovCiAgICAtLWx1bW8tZXJyb3ItY29sb3I6IGhzbCgzLCAxMDAlLCA2MSUpOwogICAgLS1sdW1vLWVycm9yLWNvbG9yLTUwcGN0OiBoc2xhKDMsIDEwMCUsIDYwJSwgMC41KTsKICAgIC0tbHVtby1lcnJvci1jb2xvci0xMHBjdDogaHNsYSgzLCAxMDAlLCA2MCUsIDAuMSk7CiAgICAtLWx1bW8tZXJyb3ItdGV4dC1jb2xvcjogaHNsKDMsIDkyJSwgNTMlKTsKICAgIC0tbHVtby1lcnJvci1jb250cmFzdC1jb2xvcjogI2ZmZjsKCiAgICAvKiBTdWNjZXNzICovCiAgICAtLWx1bW8tc3VjY2Vzcy1jb2xvcjogaHNsKDE0NSwgODAlLCA0MiUpOyAvKiBoc2woMTQ0LDgyJSwzNyUpOyAqLwogICAgLS1sdW1vLXN1Y2Nlc3MtY29sb3ItNTBwY3Q6IGhzbGEoMTQ1LCA3NiUsIDQ0JSwgMC41NSk7CiAgICAtLWx1bW8tc3VjY2Vzcy1jb2xvci0xMHBjdDogaHNsYSgxNDUsIDc2JSwgNDQlLCAwLjEyKTsKICAgIC0tbHVtby1zdWNjZXNzLXRleHQtY29sb3I6IGhzbCgxNDUsIDEwMCUsIDMyJSk7CiAgICAtLWx1bW8tc3VjY2Vzcy1jb250cmFzdC1jb2xvcjogI2ZmZjsKICB9CmAsSlh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7Slh0LmlubmVySFRNTD1gPHN0eWxlPiR7Wlh0LnRvU3RyaW5nKCkucmVwbGFjZSgiOmhvc3QiLCJodG1sIil9PC9zdHlsZT5gLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoSlh0LmNvbnRlbnQpLCRYdCgiIixHWHRgCiAgW3RoZW1lfj0nZGFyayddIHsKICAgIC8qIEJhc2UgKGJhY2tncm91bmQpICovCiAgICAtLWx1bW8tYmFzZS1jb2xvcjogaHNsKDIxNCwgMzUlLCAyMSUpOwoKICAgIC8qIFRpbnQgKi8KICAgIC0tbHVtby10aW50LTVwY3Q6IGhzbGEoMjE0LCA2NSUsIDg1JSwgMC4wNik7CiAgICAtLWx1bW8tdGludC0xMHBjdDogaHNsYSgyMTQsIDYwJSwgODAlLCAwLjE0KTsKICAgIC0tbHVtby10aW50LTIwcGN0OiBoc2xhKDIxNCwgNjQlLCA4MiUsIDAuMjMpOwogICAgLS1sdW1vLXRpbnQtMzBwY3Q6IGhzbGEoMjE0LCA2OSUsIDg0JSwgMC4zMik7CiAgICAtLWx1bW8tdGludC00MHBjdDogaHNsYSgyMTQsIDczJSwgODYlLCAwLjQxKTsKICAgIC0tbHVtby10aW50LTUwcGN0OiBoc2xhKDIxNCwgNzglLCA4OCUsIDAuNSk7CiAgICAtLWx1bW8tdGludC02MHBjdDogaHNsYSgyMTQsIDgyJSwgOTAlLCAwLjYpOwogICAgLS1sdW1vLXRpbnQtNzBwY3Q6IGhzbGEoMjE0LCA4NyUsIDkyJSwgMC43KTsKICAgIC0tbHVtby10aW50LTgwcGN0OiBoc2xhKDIxNCwgOTElLCA5NCUsIDAuOCk7CiAgICAtLWx1bW8tdGludC05MHBjdDogaHNsYSgyMTQsIDk2JSwgOTYlLCAwLjkpOwogICAgLS1sdW1vLXRpbnQ6IGhzbCgyMTQsIDEwMCUsIDk4JSk7CgogICAgLyogU2hhZGUgKi8KICAgIC0tbHVtby1zaGFkZS01cGN0OiBoc2xhKDIxNCwgMCUsIDAlLCAwLjA3KTsKICAgIC0tbHVtby1zaGFkZS0xMHBjdDogaHNsYSgyMTQsIDQlLCAyJSwgMC4xNSk7CiAgICAtLWx1bW8tc2hhZGUtMjBwY3Q6IGhzbGEoMjE0LCA4JSwgNCUsIDAuMjMpOwogICAgLS1sdW1vLXNoYWRlLTMwcGN0OiBoc2xhKDIxNCwgMTIlLCA2JSwgMC4zMik7CiAgICAtLWx1bW8tc2hhZGUtNDBwY3Q6IGhzbGEoMjE0LCAxNiUsIDglLCAwLjQxKTsKICAgIC0tbHVtby1zaGFkZS01MHBjdDogaHNsYSgyMTQsIDIwJSwgMTAlLCAwLjUpOwogICAgLS1sdW1vLXNoYWRlLTYwcGN0OiBoc2xhKDIxNCwgMjQlLCAxMiUsIDAuNik7CiAgICAtLWx1bW8tc2hhZGUtNzBwY3Q6IGhzbGEoMjE0LCAyOCUsIDEzJSwgMC43KTsKICAgIC0tbHVtby1zaGFkZS04MHBjdDogaHNsYSgyMTQsIDMyJSwgMTMlLCAwLjgpOwogICAgLS1sdW1vLXNoYWRlLTkwcGN0OiBoc2xhKDIxNCwgMzMlLCAxMyUsIDAuOSk7CiAgICAtLWx1bW8tc2hhZGU6IGhzbCgyMTQsIDMzJSwgMTMlKTsKCiAgICAvKiBDb250cmFzdCAqLwogICAgLS1sdW1vLWNvbnRyYXN0LTVwY3Q6IHZhcigtLWx1bW8tdGludC01cGN0KTsKICAgIC0tbHVtby1jb250cmFzdC0xMHBjdDogdmFyKC0tbHVtby10aW50LTEwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC0yMHBjdDogdmFyKC0tbHVtby10aW50LTIwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC0zMHBjdDogdmFyKC0tbHVtby10aW50LTMwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC00MHBjdDogdmFyKC0tbHVtby10aW50LTQwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC01MHBjdDogdmFyKC0tbHVtby10aW50LTUwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC02MHBjdDogdmFyKC0tbHVtby10aW50LTYwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC03MHBjdDogdmFyKC0tbHVtby10aW50LTcwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC04MHBjdDogdmFyKC0tbHVtby10aW50LTgwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC05MHBjdDogdmFyKC0tbHVtby10aW50LTkwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdDogdmFyKC0tbHVtby10aW50KTsKCiAgICAvKiBUZXh0ICovCiAgICAtLWx1bW8taGVhZGVyLXRleHQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QpOwogICAgLS1sdW1vLWJvZHktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC05MHBjdCk7CiAgICAtLWx1bW8tc2Vjb25kYXJ5LXRleHQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtNzBwY3QpOwogICAgLS1sdW1vLXRlcnRpYXJ5LXRleHQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtNTBwY3QpOwogICAgLS1sdW1vLWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMzBwY3QpOwoKICAgIC8qIFByaW1hcnkgKi8KICAgIC0tbHVtby1wcmltYXJ5LWNvbG9yOiBoc2woMjE0LCA4NiUsIDU1JSk7CiAgICAtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdDogaHNsYSgyMTQsIDg2JSwgNTUlLCAwLjUpOwogICAgLS1sdW1vLXByaW1hcnktY29sb3ItMTBwY3Q6IGhzbGEoMjE0LCA5MCUsIDYzJSwgMC4xKTsKICAgIC0tbHVtby1wcmltYXJ5LXRleHQtY29sb3I6IGhzbCgyMTQsIDEwMCUsIDcwJSk7CiAgICAtLWx1bW8tcHJpbWFyeS1jb250cmFzdC1jb2xvcjogI2ZmZjsKCiAgICAvKiBFcnJvciAqLwogICAgLS1sdW1vLWVycm9yLWNvbG9yOiBoc2woMywgOTAlLCA2MyUpOwogICAgLS1sdW1vLWVycm9yLWNvbG9yLTUwcGN0OiBoc2xhKDMsIDkwJSwgNjMlLCAwLjUpOwogICAgLS1sdW1vLWVycm9yLWNvbG9yLTEwcGN0OiBoc2xhKDMsIDkwJSwgNjMlLCAwLjEpOwogICAgLS1sdW1vLWVycm9yLXRleHQtY29sb3I6IGhzbCgzLCAxMDAlLCA2NyUpOwoKICAgIC8qIFN1Y2Nlc3MgKi8KICAgIC0tbHVtby1zdWNjZXNzLWNvbG9yOiBoc2woMTQ1LCA2NSUsIDQyJSk7CiAgICAtLWx1bW8tc3VjY2Vzcy1jb2xvci01MHBjdDogaHNsYSgxNDUsIDY1JSwgNDIlLCAwLjUpOwogICAgLS1sdW1vLXN1Y2Nlc3MtY29sb3ItMTBwY3Q6IGhzbGEoMTQ1LCA2NSUsIDQyJSwgMC4xKTsKICAgIC0tbHVtby1zdWNjZXNzLXRleHQtY29sb3I6IGhzbCgxNDUsIDg1JSwgNDclKTsKICB9CgogIGh0bWwgewogICAgY29sb3I6IHZhcigtLWx1bW8tYm9keS10ZXh0LWNvbG9yKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tYmFzZS1jb2xvcik7CiAgfQoKICBbdGhlbWV+PSdkYXJrJ10gewogICAgY29sb3I6IHZhcigtLWx1bW8tYm9keS10ZXh0LWNvbG9yKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tYmFzZS1jb2xvcik7CiAgfQoKICBoMSwKICBoMiwKICBoMywKICBoNCwKICBoNSwKICBoNiB7CiAgICBjb2xvcjogdmFyKC0tbHVtby1oZWFkZXItdGV4dC1jb2xvcik7CiAgfQoKICBhIHsKICAgIGNvbG9yOiB2YXIoLS1sdW1vLXByaW1hcnktdGV4dC1jb2xvcik7CiAgfQoKICBibG9ja3F1b3RlIHsKICAgIGNvbG9yOiB2YXIoLS1sdW1vLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICB9CgogIGNvZGUsCiAgcHJlIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMTBwY3QpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLW0pOwogIH0KYCx7bW9kdWxlSWQ6Imx1bW8tY29sb3IifSksJFh0KCIiLEdYdGAKICA6aG9zdCB7CiAgICBjb2xvcjogdmFyKC0tbHVtby1ib2R5LXRleHQtY29sb3IpICFpbXBvcnRhbnQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWJhc2UtY29sb3IpICFpbXBvcnRhbnQ7CiAgfQpgLHttb2R1bGVJZDoibHVtby1jb2xvci1sZWdhY3kiLGluY2x1ZGU6WyJsdW1vLWNvbG9yIl19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgUVh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7UVh0LmlubmVySFRNTD0nXG4gIDxzdHlsZT5cbiAgICBAZm9udC1mYWNlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcJ2x1bW8taWNvbnNcJztcbiAgICAgIHNyYzogdXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFCRWNBQXNBQUFBQUlpd0FBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCSFUxVkNBQUFCQ0FBQUFEc0FBQUJVSUlzbGVrOVRMeklBQUFGRUFBQUFRd0FBQUZaQUlVdUtZMjFoY0FBQUFZZ0FBQUQ0QUFBRHJzQ1U4ZDVuYkhsbUFBQUNnQUFBQzJNQUFCZDRoOVRvMldobFlXUUFBQTNrQUFBQU1BQUFBRFphLzZTc2FHaGxZUUFBRGhRQUFBQWRBQUFBSkFicEEzNW9iWFI0QUFBT05BQUFBQkFBQUFDc3BCQUFBR3h2WTJFQUFBNUVBQUFBV0FBQUFGaDU1SUFzYldGNGNBQUFEcHdBQUFBZkFBQUFJQUZLQVhCdVlXMWxBQUFPdkFBQUFURUFBQUl1VVVKWkNIQnZjM1FBQUEvd0FBQUJLd0FBQWVsbThTelZlSnhqWUdSZ1lPQmlNR0N3WTJCeWNmTUpZZURMU1N6Slk1QmlZR0dBQUpBOE1wc3hKek05a1lFRHhnUEtzWUJwRGlCbWc0Z0NBQ1k3QlVnQWVKeGpZR1MreURpQmdaV0JnYW1LYVE4REEwTVBoR1o4d0dESXlBUVVaV0JsWnNBS0F0SmNVeGdjWGpHKzBtSU8rcC9GRU1VY3hEQU5LTXdJa2dNQUJuOE1MUUI0bk8zU1dXNkRNQUJGMFV0d0NFbklQTS96aExLOExxaGZYUnliU1AxNFhVWXRIVjloR1lRd1FCTklvM2NVSVBraFFlTTdyaWIxZWtxblhnOTgxWHVDMXF2eTg0bHpvamxlaDNwdXhMMGhQakdqUlU0NzN0ZWxvRWVmQVVOR2pKa3daY2FjQlV0V3JObXdaY2VlQTBkT25MbHc1Y2FkQjA5ZWxQR2hHZitqME5USS82NUtmWGVyVDZKaHFLbnBSS3RnT3B1cWFUcnRLalBVbHFIbWh0bzIxSTdwTDZpNmhscVkzcTdxR1dyZlVBZUdPalRVa2FHT0RYVmlxRk5EblJucTNGQVhocm8wMUpXaHJnMTFZNmhiUTkwWjZ0NVFENFo2Tk5TVG9aNE45V0tvVjBPOUdlcmRVQitHK2pUVWw2R1dSdmtMMjRCa0VYaWN0Vmg5YkZ2VkZiL254dmJ6KzdSZi9ONnpIY2QyYkNmUCtXZ2MxWjlOMGpwTm5FTDZrYlJWUzZIQTJoUVlHaDlUR1IxQ2JDcWEyclhyV09rUUUvc0hOSmdtdFp2b1ZOWnFFMUIxRE5IeHpUUXhDZWhVVFlpSlRReUVOdWkwcVNMZXpyM1BkdXlRZmdtUldPZmRlOCs5NTUxejdybm4vTzRqTG9KL2JSUDBVYUtRTUxGSmpwQkF2cGhMWkMzRGswb2s3V0J6UjIvdXBKczdSeXcvbmZGYmxuL3V1Ti9hcEN2d3JLTHJTdlVxUnVmYm01cG4wZnMwdzRnWXhuR1ZQNnFIbk80YldpRFFHUWd3dFM2bG0zbEIzUW9YMU0ydndFbXV6aXJGMzl5K0VzMitESjhkMXBreXFCSXFvemUzRDErWno0RHJGb2F6eEk4ZFd3TXJEbFoyRE1xUUFSOUFST3NKVSsyY21sVFBhelRjbzUyRjF4VGEyYTIrSzh2dnE5MmRWSG10TG9QZVFYL0FaUFJZR3RoRFlPZVpqQmpLb0ZzVkd1bFIzbFdVOTVXZUNLNDRxSFU3TWhXVUdVS1pEVDNvS1VjRzJHV3VoK0VERGZVWUEvamhBaGwwVE9zSk5ZU0V1N21RbWkzVXpmWHdaS0E0QnNWc0hMWFFZR2dSVzk1dUV0cEoxVmZuOVhpTHJpUkJsRkVxeHNEakEwOXlDTlVvUXh4d2Q3S1dTVHQyeTNHVEtpZmxxSFJTb1daYzNtMTFXYS9mSmRGZ1hENHNTWWZsZUpCS2Q4R016N0o4ZFpuL2NHUkNjS0dEbkEyR2UzZkt6Y3ZsblRETnRoR1dMWHpYL1dhWHRVQW1SZ2VMbEhTcjMwcjBHOVVUWE1iMEF0bXd6T295NzNma1NsSFprZHV3L1RZdVU5Y0FENFl1dFBveFRUc0EzNzk3d1ZyNFovMU5DNXpBUkhyNHZ0eEpqeElmaVpNaE1rYldrKzE0Qm5KWkt3cUdad0Rmc3dMeXhXRFNnMTFyRkxKRjdOb3B4amQxaDEvUU9UK29lemdmdTNZcStIaytkdWY1eCs0MG8xR1RrYUlnaWtLL0lFbkM2YVl4Q1VCYVpKU040WFRZRmpVL1lNTklLcUp3aERHT0NDSThGRFhuWG1YanRHaEdKeVNocWpBT25CT2tXMkpHOVM3R2dZZU1XQVU1SnpobldtQk9hT00rQ0tFUG9xU2ZGREMyVW5xK0RMbFVnVVZVRkZMWkdKZzZqdGxvanNkc2E4a1BPYlB1SmRpNWRuQmRCc0xKTUdUV0RhNHQySnZ0d3VQbzlzK1k4NnN1di9XMzNRRzFyQWFPQVVWK3Z4NEs2ZjJEMDRQVktsQzdXTFNyWnpBaTQ1WlY2bElDN1dvWHFtUnl2VXFvVndyelVvVnNJamVUWFdRditSSDVHVGxCWGlCL0luOGxuMEliQkNBRk9hakFKcmdaWXlPSFdxT2ZVZS9hSGpJMTJSNk9RbzFqQ2d0MjE1bCs0ZjZYUGIrME1Ob3UwVis0M24yRjc3dFNmUmIyNGQ3eml0Z25LbXZZSHM2OXp1Z2FQdkJ3djZpb1hrYjJMZEw2NUF0dzUxdUxrWGx1MWJoTU1SY1hTUGNZb3FLSVJsaDM0bFFQOC81SmJ1VUZ5ZTR2eEQ2LzZNeEZGMTFDMHVWTHI5VWxndzQ0dFMzcE1WaU5MVUV4YnljRmdMSWN0K1FETWliUmlteDF5ZFV6OEZYWml1T0lEQk9NVlgyblVaYytodU5FNVhVSjgxdWlKb2lhYndxYVZGMHVhY0tiYXUvcGw0UjJWVzBYWGxKcmE2Ym9WcllHNjQ2VEY1Tll6d3k0dmpFTlZyRGxjTnBaUGw4REg2WFg4WFdDeDBtdldWWlk2S0ZMcnZzWTY2L3pQaWN0NUZueGFOVVIvanV2WkNNM1R2RDYwRTJXMXRaaXpiWFRQRHVhYmNtMG5iYnpwV0twbUExYXlCUThnaWVkTFVNK0Ewa05qQmpRam11WXo3WXJnSVhZdm1GNjNaTEJ3U1hycG45VGI5d3dkZC9VMUgwUE1RSzNYY084dWwzV1Q3UHlQUGRweTBUZW1LeE5SY0pOYXVpWEpublVEcFVwcFFXczRTblVJeTBFRVNHWXFKWVFMR0h4emFHV3dWSWFTNlk3bVFGTThaallEUTNheGpmNjFTV2pVMzNKd09aQTFwd2FHMUw5bXpmNzFhSFJkWDFKSHc2RnAwYVhoTndicXllR05nNE5iZHpHQ0J4b3o0WlhqeTROdTY5WnI2c0RZNnZNckxVNW5BMVA4SmtiZFdYSjZFUmZNcnl2TmgxSmZROStUNGRJaEd2Szl3M2R4akJCemF0c1EvTWxPSFZJRG5ZcER6Nm9kQVhsUTAxdDJQYTVJYWZkOE1NcHhBZURLUDBDNkNqZ1ZMVDVvc0I2aWNVeDAxbFdqWHh6VC9HeVJGMndlbEVNNVovN2pHM1ZqUTFTck5uNUlieXpPRzVkb2JCMy9RSHh5WnZzWGNvejhJb0V3UzdwbENnK3p4SFFrNDI0cTlCZkVwa0VTSmJGSFF1c0RCU1dGa3VCa29QTzBrTEt3UlZZanhHWGxIVGNURFFNSi9INlRYOWFma083bW5yYVRPMWZlVG5aQVhMdTRjcDdIQVhNbU5HMXllRms5VGdTL05IaFpSLzRRb0JUci9aQis2aENneWwxNU5xMVViTjZuRTEvWm5QMVUyY2l6Q0JwdnM4Y0pRWko0TGtZeDVOL3laUEFVWk5RUTBWNGYzQlFsbFdySzNZUnpsMzBkT1Q2UlZuMnVwTnVyNndvU2E4Q3FwZFQvYUtuQk00bzNqTnVyOWQ5eHF0VVQ2dmVCRXQ5Q2E5YXQrRVJ6RUVoVWtSOHNhNW1RNGFWdkpvVmVFQTh6STRlaTVtVUxYRkd5VTd6LzZUQWVZTFZjcHpTV1pZOFBZWUY1eXJUVjYwc1QwK1hWMTQxdlgrK1dmMTZWMmJGZUdWUFpYeEZwa3Z5ZUtUV0xsemZXMG1uS3hzWTZZMzI5NC8wOTk4U0NmWDFibG01cGJjdkZHbHEvcjA3TVJBTWhZSURpVzVKRktXVzN2ZHJFcENzWlNKRytvbTdadS9QU1NjWkpoTmtMYm1XNVdzcjEycFdxVzV6S3Rsd1JTNGJGT3hVdzE3bUN6eTZsc2tDRGwxV1lPR1dEWXJBRHJNQTdCRER3ZVdXTmQ1a29pSm5SMWR6K3l0TFAycTBTcVBCMWxuSzJjY0I3UlllNEZTb1BrczNpQjN0NHR4VFNIY3RiMnN5MWl2azBwdkh1Q05tNncxZjZ3eHYzK09DZ043OExxZFFuVVZoN1Iwb1RBcDB6T2YycmJXNzcwVnU1QzJkSXlHZFRuSG84elNqaTdkcHBqMFVTb1ZDeitsaFJNVGg1M1RlcTlWYkdmYmp1U2JBb29TZFhheVk0UFlIZzM3NEM2ZjdnbDFCL0RYdUo0L1FYeE9CZEpGSnNwRnNJM2VncG9XVVVDamxUSUZuTllObCtaeVpLbUJlWUtHSGtEMVF5RGxoYUtiS3dLY0lKcUo0VExKMk9tZFkvSldYYWU0RGRHQnc4SFo3ZVhjZ0ZGMnpyMlNvYWxEcnk1aUtxb2EwUHVoZTNoUFEyczNlbFRZTStNSStuM3JLMEtnTDcvTGEzR2VNTHQ2bTd1OTEydkdudnRPUmlJYTBxQm1ocVZpK1hXOVhOQm1xYjhlVmdLeklIZkdJNWJOb0c3WDBVQ3plSVNtcUljTy9uWThGSDdVOGF2WDlmeC9TVCtoeDBzZXpQdzlReThNdW0zR1dmMk40VXkveUlZR1ZCWGJKSFdJWnA3ZGZUY3B0ZE1UcjlRbXE3RGFpSy91a3FDTDRrdDRSVWZTNVhQbk10bVQyMi9tUUZxRjdlbVNxdHJsdThTVkVseERSSnJaT0RrcHV3ZTBWZlRmamRFcDFmN0E3ditmb3pOQlhVSi82V1R1SzJUdEZscEZWWkFaM0xjRnZVaTFaMnAyWVQrRU1Ba0dKVlN0T3pMVEFQZzRJcVdJQWx6UlNqT0JrbDJ6eGozVEt5Y3B6VC9NbnZYM3VhU01XTStnVTBya1hqb2hoZWZWUk1hcHMzL2tMTVNLdjIzbFQyM3V4UXJrUWp5T0psZU1Ec2RoQW5ENlpHRWxXWjVNakNYekNFL2hrV1grV0Y0a256R2hWT3lLMmVRWmVrVjNleW8wekw4a3VZV0NuREN2ampoQWtjVFBPQkRYVmRvYXYzSFZjRm5Rakx2dFY5UzJwMHpBNkplZ1B3TVF4dCt5RmIzbGw5ekdscS81ZFJLYjNjRXlRWW9hTllwaGFySjd4Q0I3QVd4c0xZM2pqWlhZMFhzWmowV2p3YzlJNlBQL2RLQUJuQ1phcUhwYVpFQUN4azRaZUxaU0tOZ1pBQmwrbFlRWDFzSlFPU1gzbjZyNDEwZXZjb3VkNUplQUdVWFZQOUgxdFpPS2VqVHE0T25vMHowZXJybzFGcm5PcG9odmExZC9oVGR0VnNRZEtONVc5UmxUM05qRDBuem55S05UZ0tBTWZXTldjeW9kVjBJR0xQSUhPRjBvNEp5cXVmYUs0ejZXSUl6dUdoM2Q4Yzhjd1FnOEVSK09WeHlyamRtOHZOdWh0czRMb09paEd4SU11VWRnendpWU43eGhoMStvWm5KTnVURzdnUVp2dTRYV1o5R0FaWmpHRXVid2VQcVlodEtEVEgrOVZRa2wxNy9pR3lic25KKzgrc0t0eVByY2xsOXR5NjVac2RzdC85aXFwRUtoN001VmRCeGgzY3NPZE5jNnRXM0kxdXlNMVB6T1hlZ1NPckxGc0ZOSTJPMjdNK1RGMkFwbk45TVV2NXVkNkxqeEl2RVFuSFJ6eEl1NElzQTlNTEZrSm4ydGNab1o3T043ZFhlN3VqcmM4SHJ1c1BLYW1scVh3ZDc3bFFVdUxwaWxhdTRQVU1hcHVlQmI3aXJVNFJvVVhFWVh1VnVJR2xSR21PcCsybE5rYVJQVnppT3FtbGFadmFxRzRkRmdTajBqeEVKV3J2MTJJVVdudG13K3JmUWFyUkUwQXBoNG9jSTZubFVsR3FzK3UzLytUL2V0aFc2MlBwSHAyZUhiWnN0bmgvd09POTV5REFIaWNZMkJrWUdBQTRwbUo2UUh4L0RaZkdiaVpYd0JGR0dwVU56UWk2UCt2bWFjeTNRSnlPUmlZUUtJQU5vVUxWWGljWTJCa1lHQU8rcDhGSkY4d0FBSHpWQVpHQmxTZ0RRQlc5Z052QUFBQWVKeGpZR0JnWUg0eE5EQUF6d1FtandBQUFBQUFUZ0NhQU9nQkNnRXNBVTRCY0FHYUFjUUI3Z0lhQXB3QzZBU2FCTHdFMWdUeUJRNEZLZ1Y2QmRBRi9nWkVCbVlHdGdjWUI1QUlHQWhTQ0dvSS9nbEdDYjRKMmdvRUNqd0tnZ3E0Q3ZBTFVBdVdDN3g0bkdOZ1pHQmcwR1pNWVJCbEFBRW1JT1lDUWdhRy8yQStBd0FZbEFHOEFIaWNiWkU5VHNNd0dJYmY5QS9SU2dnRVltSHhBZ3RxK2pOMlpHajNEdDNUMUdsVE9YSGt1Qlc5QXlmZ0VCeUNnVE53Q0E3QlcvTkpsVkJ0eWQvangrOFhLd21BYTN3aHduRkU2SWIxT0JxNDRPNlBtNlFiNFJiNVFiaU5IaDZGTy9SRDRTNmVNUkh1NFJhYVQ0aGFselIzZUJWdTRBcHZ3azM2ZCtFVytVTzRqWHQ4Q25mb3Y0VzdXT0JIdUllbjZNWHNDdHZQVTF2V2M3M2VtY1NkeElrVzJ0VzVMZFVvSHA3a1RKZmFKVjZ2MVBLZzZ2MTY3SDJtTW1jTE5iV2wxOFpZVlRtNzFhbVBOOTVYazhFZ0V4K250b0RCRGdVcytzaVJzcGFvTWVmN3J1a05Fcml6aVhOdXdTN0htb2U5d2dneHYrZTU1SXpKTXFRVGVOWVYwMHNjdU5iWTgrWXhyVWZHZmNhTVpiL0NOUFFlMDRiVDBsVGhiRXVUMHNmWWhLNksvMjNBbWYzTHgrSDI0aGNqNEdTY0FBQUFlSnh0anRsdWd6QVFSYmtKVUVKSXV1Lzd2cVI4bEdOUEFjV3gwWUFiNWUvTGtsUjk2RWdlblN1ZkdZMDM4UHFLdmY5cmhnR0c4QkVneEE0aWpCQmpqQVFUVExHTFBlempBSWM0d2pGT2NJb3puT01DbDdqQ05XNXdpenZjNHdHUGVNSXpYdkNLTjd6akF6Tjhlb25RUldaU1NhWW1qdnVnNmFzZTk4aEZsdGV4TUptbVZObVYyV0J2ZE5nWlVjK3VqQVd6WFczVURudTF3NDNhc1N0SGM4R3B6QVhYL3B5MGpxVFFaSlRna2N4SkxwYUNGMGxEMzJ4TnQrNDN0QXNuMjlEZnQwMnVES1MyY2pHVU5nc2syNnFLMmxGdGhZb1UyN0lOUHFtaURxZzVnb2UwcHFSNXFTb3FNZGVrL0NVWkZ5d0w0NnJFc2lJbWxlcWlxb015dDRiYVhsdS8xR0xkTkZmNXpiY05tZHIxWVVXQ1plNDdvK3pVbWIvRG9TdGJ3M2NWc2VmOUFMamppUFFBKSBmb3JtYXQoXCd3b2ZmXCcpO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB9XG5cbiAgICBodG1sIHtcbiAgICAgIC0tbHVtby1pY29ucy1hbGlnbi1jZW50ZXI6ICJcXGVhMDEiO1xuICAgICAgLS1sdW1vLWljb25zLWFsaWduLWxlZnQ6ICJcXGVhMDIiO1xuICAgICAgLS1sdW1vLWljb25zLWFsaWduLXJpZ2h0OiAiXFxlYTAzIjtcbiAgICAgIC0tbHVtby1pY29ucy1hbmdsZS1kb3duOiAiXFxlYTA0IjtcbiAgICAgIC0tbHVtby1pY29ucy1hbmdsZS1sZWZ0OiAiXFxlYTA1IjtcbiAgICAgIC0tbHVtby1pY29ucy1hbmdsZS1yaWdodDogIlxcZWEwNiI7XG4gICAgICAtLWx1bW8taWNvbnMtYW5nbGUtdXA6ICJcXGVhMDciO1xuICAgICAgLS1sdW1vLWljb25zLWFycm93LWRvd246ICJcXGVhMDgiO1xuICAgICAgLS1sdW1vLWljb25zLWFycm93LWxlZnQ6ICJcXGVhMDkiO1xuICAgICAgLS1sdW1vLWljb25zLWFycm93LXJpZ2h0OiAiXFxlYTBhIjtcbiAgICAgIC0tbHVtby1pY29ucy1hcnJvdy11cDogIlxcZWEwYiI7XG4gICAgICAtLWx1bW8taWNvbnMtYmFyLWNoYXJ0OiAiXFxlYTBjIjtcbiAgICAgIC0tbHVtby1pY29ucy1iZWxsOiAiXFxlYTBkIjtcbiAgICAgIC0tbHVtby1pY29ucy1jYWxlbmRhcjogIlxcZWEwZSI7XG4gICAgICAtLWx1bW8taWNvbnMtY2hlY2ttYXJrOiAiXFxlYTBmIjtcbiAgICAgIC0tbHVtby1pY29ucy1jaGV2cm9uLWRvd246ICJcXGVhMTAiO1xuICAgICAgLS1sdW1vLWljb25zLWNoZXZyb24tbGVmdDogIlxcZWExMSI7XG4gICAgICAtLWx1bW8taWNvbnMtY2hldnJvbi1yaWdodDogIlxcZWExMiI7XG4gICAgICAtLWx1bW8taWNvbnMtY2hldnJvbi11cDogIlxcZWExMyI7XG4gICAgICAtLWx1bW8taWNvbnMtY2xvY2s6ICJcXGVhMTQiO1xuICAgICAgLS1sdW1vLWljb25zLWNvZzogIlxcZWExNSI7XG4gICAgICAtLWx1bW8taWNvbnMtY3Jvc3M6ICJcXGVhMTYiO1xuICAgICAgLS1sdW1vLWljb25zLWRvd25sb2FkOiAiXFxlYTE3IjtcbiAgICAgIC0tbHVtby1pY29ucy1kcm9wZG93bjogIlxcZWExOCI7XG4gICAgICAtLWx1bW8taWNvbnMtZWRpdDogIlxcZWExOSI7XG4gICAgICAtLWx1bW8taWNvbnMtZXJyb3I6ICJcXGVhMWEiO1xuICAgICAgLS1sdW1vLWljb25zLWV5ZTogIlxcZWExYiI7XG4gICAgICAtLWx1bW8taWNvbnMtZXllLWRpc2FibGVkOiAiXFxlYTFjIjtcbiAgICAgIC0tbHVtby1pY29ucy1tZW51OiAiXFxlYTFkIjtcbiAgICAgIC0tbHVtby1pY29ucy1taW51czogIlxcZWExZSI7XG4gICAgICAtLWx1bW8taWNvbnMtb3JkZXJlZC1saXN0OiAiXFxlYTFmIjtcbiAgICAgIC0tbHVtby1pY29ucy1waG9uZTogIlxcZWEyMCI7XG4gICAgICAtLWx1bW8taWNvbnMtcGhvdG86ICJcXGVhMjEiO1xuICAgICAgLS1sdW1vLWljb25zLXBsYXk6ICJcXGVhMjIiO1xuICAgICAgLS1sdW1vLWljb25zLXBsdXM6ICJcXGVhMjMiO1xuICAgICAgLS1sdW1vLWljb25zLXJlZG86ICJcXGVhMjQiO1xuICAgICAgLS1sdW1vLWljb25zLXJlbG9hZDogIlxcZWEyNSI7XG4gICAgICAtLWx1bW8taWNvbnMtc2VhcmNoOiAiXFxlYTI2IjtcbiAgICAgIC0tbHVtby1pY29ucy11bmRvOiAiXFxlYTI3IjtcbiAgICAgIC0tbHVtby1pY29ucy11bm9yZGVyZWQtbGlzdDogIlxcZWEyOCI7XG4gICAgICAtLWx1bW8taWNvbnMtdXBsb2FkOiAiXFxlYTI5IjtcbiAgICAgIC0tbHVtby1pY29ucy11c2VyOiAiXFxlYTJhIjtcbiAgICB9XG4gIDwvc3R5bGU+XG4nLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoUVh0LmNvbnRlbnQpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLwpjb25zdCB0JHQ9R1h0YAogIDpob3N0IHsKICAgIC0tbHVtby1zaXplLXhzOiAxLjYyNXJlbTsKICAgIC0tbHVtby1zaXplLXM6IDEuODc1cmVtOwogICAgLS1sdW1vLXNpemUtbTogMi4yNXJlbTsKICAgIC0tbHVtby1zaXplLWw6IDIuNzVyZW07CiAgICAtLWx1bW8tc2l6ZS14bDogMy41cmVtOwoKICAgIC8qIEljb25zICovCiAgICAtLWx1bW8taWNvbi1zaXplLXM6IDEuMjVlbTsKICAgIC0tbHVtby1pY29uLXNpemUtbTogMS41ZW07CiAgICAtLWx1bW8taWNvbi1zaXplLWw6IDIuMjVlbTsKICAgIC8qIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAqLwogICAgLS1sdW1vLWljb24tc2l6ZTogdmFyKC0tbHVtby1pY29uLXNpemUtbSk7CiAgfQpgLGUkdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO2UkdC5pbm5lckhUTUw9YDxzdHlsZT4ke3QkdC50b1N0cmluZygpLnJlcGxhY2UoIjpob3N0IiwiaHRtbCIpfTwvc3R5bGU+YCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGUkdC5jb250ZW50KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgbiR0PUdYdGAKICA6aG9zdCB7CiAgICAvKiBTcXVhcmUgKi8KICAgIC0tbHVtby1zcGFjZS14czogMC4yNXJlbTsKICAgIC0tbHVtby1zcGFjZS1zOiAwLjVyZW07CiAgICAtLWx1bW8tc3BhY2UtbTogMXJlbTsKICAgIC0tbHVtby1zcGFjZS1sOiAxLjVyZW07CiAgICAtLWx1bW8tc3BhY2UteGw6IDIuNXJlbTsKCiAgICAvKiBXaWRlICovCiAgICAtLWx1bW8tc3BhY2Utd2lkZS14czogY2FsYyh2YXIoLS1sdW1vLXNwYWNlLXhzKSAvIDIpIHZhcigtLWx1bW8tc3BhY2UteHMpOwogICAgLS1sdW1vLXNwYWNlLXdpZGUtczogY2FsYyh2YXIoLS1sdW1vLXNwYWNlLXMpIC8gMikgdmFyKC0tbHVtby1zcGFjZS1zKTsKICAgIC0tbHVtby1zcGFjZS13aWRlLW06IGNhbGModmFyKC0tbHVtby1zcGFjZS1tKSAvIDIpIHZhcigtLWx1bW8tc3BhY2UtbSk7CiAgICAtLWx1bW8tc3BhY2Utd2lkZS1sOiBjYWxjKHZhcigtLWx1bW8tc3BhY2UtbCkgLyAyKSB2YXIoLS1sdW1vLXNwYWNlLWwpOwogICAgLS1sdW1vLXNwYWNlLXdpZGUteGw6IGNhbGModmFyKC0tbHVtby1zcGFjZS14bCkgLyAyKSB2YXIoLS1sdW1vLXNwYWNlLXhsKTsKCiAgICAvKiBUYWxsICovCiAgICAtLWx1bW8tc3BhY2UtdGFsbC14czogdmFyKC0tbHVtby1zcGFjZS14cykgY2FsYyh2YXIoLS1sdW1vLXNwYWNlLXhzKSAvIDIpOwogICAgLS1sdW1vLXNwYWNlLXRhbGwtczogdmFyKC0tbHVtby1zcGFjZS1zKSBjYWxjKHZhcigtLWx1bW8tc3BhY2UtcykgLyAyKTsKICAgIC0tbHVtby1zcGFjZS10YWxsLW06IHZhcigtLWx1bW8tc3BhY2UtbSkgY2FsYyh2YXIoLS1sdW1vLXNwYWNlLW0pIC8gMik7CiAgICAtLWx1bW8tc3BhY2UtdGFsbC1sOiB2YXIoLS1sdW1vLXNwYWNlLWwpIGNhbGModmFyKC0tbHVtby1zcGFjZS1sKSAvIDIpOwogICAgLS1sdW1vLXNwYWNlLXRhbGwteGw6IHZhcigtLWx1bW8tc3BhY2UteGwpIGNhbGModmFyKC0tbHVtby1zcGFjZS14bCkgLyAyKTsKICB9CmAsaSR0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7aSR0LmlubmVySFRNTD1gPHN0eWxlPiR7biR0LnRvU3RyaW5nKCkucmVwbGFjZSgiOmhvc3QiLCJodG1sIil9PC9zdHlsZT5gLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoaSR0LmNvbnRlbnQpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLwpjb25zdCByJHQ9R1h0YAogIDpob3N0IHsKICAgIC8qIEJvcmRlciByYWRpdXMgKi8KICAgIC0tbHVtby1ib3JkZXItcmFkaXVzLXM6IDAuMjVlbTsgLyogQ2hlY2tib3gsIGJhZGdlLCBkYXRlLXBpY2tlciB5ZWFyIGluZGljYXRvciwgZXRjICovCiAgICAtLWx1bW8tYm9yZGVyLXJhZGl1cy1tOiB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMsIDAuMjVlbSk7IC8qIEJ1dHRvbiwgdGV4dCBmaWVsZCwgbWVudSBvdmVybGF5LCBldGMgKi8KICAgIC0tbHVtby1ib3JkZXItcmFkaXVzLWw6IDAuNWVtOyAvKiBEaWFsb2csIG5vdGlmaWNhdGlvbiwgZXRjICovCiAgICAtLWx1bW8tYm9yZGVyLXJhZGl1czogMC4yNWVtOyAvKiBEZXByZWNhdGVkICovCgogICAgLyogU2hhZG93ICovCiAgICAtLWx1bW8tYm94LXNoYWRvdy14czogMCAxcHggNHB4IC0xcHggdmFyKC0tbHVtby1zaGFkZS01MHBjdCk7CiAgICAtLWx1bW8tYm94LXNoYWRvdy1zOiAwIDJweCA0cHggLTFweCB2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KSwgMCAzcHggMTJweCAtMXB4IHZhcigtLWx1bW8tc2hhZGUtMzBwY3QpOwogICAgLS1sdW1vLWJveC1zaGFkb3ctbTogMCAycHggNnB4IC0xcHggdmFyKC0tbHVtby1zaGFkZS0yMHBjdCksIDAgOHB4IDI0cHggLTRweCB2YXIoLS1sdW1vLXNoYWRlLTQwcGN0KTsKICAgIC0tbHVtby1ib3gtc2hhZG93LWw6IDAgM3B4IDE4cHggLTJweCB2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KSwgMCAxMnB4IDQ4cHggLTZweCB2YXIoLS1sdW1vLXNoYWRlLTQwcGN0KTsKICAgIC0tbHVtby1ib3gtc2hhZG93LXhsOiAwIDRweCAyNHB4IC0zcHggdmFyKC0tbHVtby1zaGFkZS0yMHBjdCksIDAgMThweCA2NHB4IC04cHggdmFyKC0tbHVtby1zaGFkZS00MHBjdCk7CgogICAgLyogQ2xpY2thYmxlIGVsZW1lbnQgY3Vyc29yICovCiAgICAtLWx1bW8tY2xpY2thYmxlLWN1cnNvcjogZGVmYXVsdDsKICB9CmAsbyR0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7byR0LmlubmVySFRNTD1gPHN0eWxlPiR7ciR0LnRvU3RyaW5nKCkucmVwbGFjZSgiOmhvc3QiLCJodG1sIil9PC9zdHlsZT5gLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobyR0LmNvbnRlbnQpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLwpjb25zdCBhJHQ9R1h0YAogIDpob3N0IHsKICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqLwogICAgLS1sdW1vLWZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdSb2JvdG8nLCAnU2Vnb2UgVUknLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCAnQXBwbGUgQ29sb3IgRW1vamknLCAnU2Vnb2UgVUkgRW1vamknLCAnU2Vnb2UgVUkgU3ltYm9sJzsKCiAgICAvKiBGb250IHNpemVzICovCiAgICAtLWx1bW8tZm9udC1zaXplLXh4czogMC43NXJlbTsKICAgIC0tbHVtby1mb250LXNpemUteHM6IDAuODEyNXJlbTsKICAgIC0tbHVtby1mb250LXNpemUtczogMC44NzVyZW07CiAgICAtLWx1bW8tZm9udC1zaXplLW06IDFyZW07CiAgICAtLWx1bW8tZm9udC1zaXplLWw6IDEuMTI1cmVtOwogICAgLS1sdW1vLWZvbnQtc2l6ZS14bDogMS4zNzVyZW07CiAgICAtLWx1bW8tZm9udC1zaXplLXh4bDogMS43NXJlbTsKICAgIC0tbHVtby1mb250LXNpemUteHh4bDogMi41cmVtOwoKICAgIC8qIExpbmUgaGVpZ2h0cyAqLwogICAgLS1sdW1vLWxpbmUtaGVpZ2h0LXhzOiAxLjI1OwogICAgLS1sdW1vLWxpbmUtaGVpZ2h0LXM6IDEuMzc1OwogICAgLS1sdW1vLWxpbmUtaGVpZ2h0LW06IDEuNjI1OwogIH0KYCxzJHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtzJHQuaW5uZXJIVE1MPWA8c3R5bGU+JHthJHQudG9TdHJpbmcoKS5yZXBsYWNlKCI6aG9zdCIsImh0bWwiKX08L3N0eWxlPmAsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzJHQuY29udGVudCksJFh0KCIiLEdYdGAKICBodG1sIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1sdW1vLWZvbnQtZmFtaWx5KTsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUsIHZhcigtLWx1bW8tZm9udC1zaXplLW0pKTsKICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1sdW1vLWxpbmUtaGVpZ2h0LW0pOwogICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogIH0KCiAgLyogQ2Fu4oCZdCBjb21iaW5lIHdpdGggdGhlIGFib3ZlIHNlbGVjdG9yIGJlY2F1c2UgdGhhdCBkb2VzbuKAmXQgd29yayBpbiBicm93c2VycyB3aXRob3V0IG5hdGl2ZSBzaGFkb3cgZG9tICovCiAgOmhvc3QgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWx1bW8tZm9udC1mYW1pbHkpOwogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZSwgdmFyKC0tbHVtby1mb250LXNpemUtbSkpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLWx1bW8tbGluZS1oZWlnaHQtbSk7CiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAgfQoKICBzbWFsbCwKICBbdGhlbWV+PSdmb250LXNpemUtcyddIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUtcyk7CiAgICBsaW5lLWhlaWdodDogdmFyKC0tbHVtby1saW5lLWhlaWdodC1zKTsKICB9CgogIFt0aGVtZX49J2ZvbnQtc2l6ZS14cyddIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUteHMpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLWx1bW8tbGluZS1oZWlnaHQteHMpOwogIH0KCiAgaDEsCiAgaDIsCiAgaDMsCiAgaDQsCiAgaDUsCiAgaDYgewogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1sdW1vLWxpbmUtaGVpZ2h0LXhzKTsKICAgIG1hcmdpbi10b3A6IDEuMjVlbTsKICB9CgogIGgxIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUteHh4bCk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjc1ZW07CiAgfQoKICBoMiB7CiAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLXh4bCk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKICB9CgogIGgzIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUteGwpOwogICAgbWFyZ2luLWJvdHRvbTogMC41ZW07CiAgfQoKICBoNCB7CiAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLWwpOwogICAgbWFyZ2luLWJvdHRvbTogMC41ZW07CiAgfQoKICBoNSB7CiAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLW0pOwogICAgbWFyZ2luLWJvdHRvbTogMC4yNWVtOwogIH0KCiAgaDYgewogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS14cyk7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07CiAgfQoKICBwLAogIGJsb2NrcXVvdGUgewogICAgbWFyZ2luLXRvcDogMC41ZW07CiAgICBtYXJnaW4tYm90dG9tOiAwLjc1ZW07CiAgfQoKICBhIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB9CgogIGE6aG92ZXIgewogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgfQoKICBociB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICBoZWlnaHQ6IDFweDsKICAgIGJvcmRlcjogMDsKICAgIHBhZGRpbmc6IDA7CiAgICBtYXJnaW46IHZhcigtLWx1bW8tc3BhY2UtcykgY2FsYyh2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtbSkgLyAyKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMTBwY3QpOwogIH0KCiAgYmxvY2txdW90ZSB7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWx1bW8tY29udHJhc3QtMzBwY3QpOwogIH0KCiAgYiwKICBzdHJvbmcgewogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC8qIFJUTCBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgYmxvY2txdW90ZVtkaXI9J3J0bCddIHsKICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CiAgfQpgLHttb2R1bGVJZDoibHVtby10eXBvZ3JhcGh5In0pLCRYdCgidmFhZGluLWNoZWNrYm94IixHWHRgCiAgICA6aG9zdCB7CiAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgW3BhcnQ9J2xhYmVsJ106bm90KFtlbXB0eV0pIHsKICAgICAgbWFyZ2luOiAwLjE4NzVlbSAwLjg3NWVtIDAuMTg3NWVtIDAuMzc1ZW07CiAgICB9CgogICAgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICB3aWR0aDogY2FsYygxZW0gKyAycHgpOwogICAgICBoZWlnaHQ6IGNhbGMoMWVtICsgMnB4KTsKICAgICAgbWFyZ2luOiAwLjE4NzVlbTsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtcyk7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMjBwY3QpOwogICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC4xMiwgMC4zMiwgMC41NCwgMiksIGJhY2tncm91bmQtY29sb3IgMC4xNXM7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgfQoKICAgIDpob3N0KFtpbmRldGVybWluYXRlXSkgW3BhcnQ9J2NoZWNrYm94J10sCiAgICA6aG9zdChbY2hlY2tlZF0pIFtwYXJ0PSdjaGVja2JveCddIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yKTsKICAgIH0KCiAgICAvKiBOZWVkZWQgdG8gYWxpZ24gdGhlIGNoZWNrYm94IG5pY2VseSBvbiB0aGUgYmFzZWxpbmUgKi8KICAgIFtwYXJ0PSdjaGVja2JveCddOjpiZWZvcmUgewogICAgICBjb250ZW50OiAnXFwyMDAzJzsKICAgIH0KCiAgICAvKiBDaGVja21hcmsgKi8KICAgIFtwYXJ0PSdjaGVja2JveCddOjphZnRlciB7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIHdpZHRoOiAwOwogICAgICBoZWlnaHQ6IDA7CiAgICAgIGJvcmRlcjogMCBzb2xpZCB2YXIoLS1sdW1vLXByaW1hcnktY29udHJhc3QtY29sb3IpOwogICAgICBib3JkZXItd2lkdGg6IDAuMTg3NWVtIDAgMCAwLjE4NzVlbTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMC44MTI1ZW07CiAgICAgIGxlZnQ6IDAuNWVtOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNTUpIHJvdGF0ZSgtMTM1ZGVnKTsKICAgICAgb3BhY2l0eTogMDsKICAgIH0KCiAgICA6aG9zdChbY2hlY2tlZF0pIFtwYXJ0PSdjaGVja2JveCddOjphZnRlciB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIHdpZHRoOiAwLjYyNWVtOwogICAgICBoZWlnaHQ6IDEuMDYyNWVtOwogICAgfQoKICAgIC8qIEluZGV0ZXJtaW5hdGUgY2hlY2ttYXJrICovCiAgICA6aG9zdChbaW5kZXRlcm1pbmF0ZV0pIFtwYXJ0PSdjaGVja2JveCddOjphZnRlciB7CiAgICAgIHRyYW5zZm9ybTogbm9uZTsKICAgICAgb3BhY2l0eTogMTsKICAgICAgdG9wOiA0NSU7CiAgICAgIGhlaWdodDogMTAlOwogICAgICBsZWZ0OiAyMiU7CiAgICAgIHJpZ2h0OiAyMiU7CiAgICAgIHdpZHRoOiBhdXRvOwogICAgICBib3JkZXI6IDA7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tcHJpbWFyeS1jb250cmFzdC1jb2xvcik7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXM7CiAgICB9CgogICAgLyogRm9jdXMgcmluZyAqLwogICAgOmhvc3QoW2ZvY3VzLXJpbmddKSBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS1sdW1vLXByaW1hcnktY29sb3ItNTBwY3QpOwogICAgfQoKICAgIC8qIERpc2FibGVkICovCiAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBjb2xvcjogdmFyKC0tbHVtby1kaXNhYmxlZC10ZXh0LWNvbG9yKTsKICAgIH0KCiAgICA6aG9zdChbZGlzYWJsZWRdKSBbcGFydD0nbGFiZWwnXSA6OnNsb3R0ZWQoKikgewogICAgICBjb2xvcjogaW5oZXJpdDsKICAgIH0KCiAgICA6aG9zdChbZGlzYWJsZWRdKSBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMTBwY3QpOwogICAgfQoKICAgIDpob3N0KFtkaXNhYmxlZF0pIFtwYXJ0PSdjaGVja2JveCddOjphZnRlciB7CiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CiAgICB9CgogICAgOmhvc3QoW2luZGV0ZXJtaW5hdGVdW2Rpc2FibGVkXSkgW3BhcnQ9J2NoZWNrYm94J106OmFmdGVyIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CiAgICB9CgogICAgLyogUlRMIHNwZWNpZmljIHN0eWxlcyAqLwogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtwYXJ0PSdsYWJlbCddOm5vdChbZW1wdHldKSB7CiAgICAgIG1hcmdpbjogMC4xODc1ZW0gMC4zNzVlbSAwLjE4NzVlbSAwLjg3NWVtOwogICAgfQoKICAgIC8qIFRyYW5zaXRpb24gdGhlIGNoZWNrbWFyayBpZiBhY3RpdmF0ZWQgd2l0aCB0aGUgbW91c2UgKGRpc2FibGVkIGZvciBncmlkIHNlbGVjdC1hbGwgdGhpcyB3YXkpICovCiAgICA6aG9zdCg6aG92ZXIpIFtwYXJ0PSdjaGVja2JveCddOjphZnRlciB7CiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMXMsIGhlaWdodCAwLjI1czsKICAgIH0KCiAgICAvKiBVc2VkIGZvciBhY3RpdmF0aW9uICJoYWxvIiAqLwogICAgW3BhcnQ9J2NoZWNrYm94J106OmJlZm9yZSB7CiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNCk7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjFzLCBvcGFjaXR5IDAuOHM7CiAgICB9CgogICAgLyogSG92ZXIgKi8KICAgIDpob3N0KDpub3QoW2NoZWNrZWRdKTpub3QoW2luZGV0ZXJtaW5hdGVdKTpub3QoW2Rpc2FibGVkXSk6aG92ZXIpIFtwYXJ0PSdjaGVja2JveCddIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CiAgICB9CgogICAgLyogRGlzYWJsZSBob3ZlciBmb3IgdG91Y2ggZGV2aWNlcyAqLwogICAgQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHsKICAgICAgOmhvc3QoOm5vdChbY2hlY2tlZF0pOm5vdChbaW5kZXRlcm1pbmF0ZV0pOm5vdChbZGlzYWJsZWRdKTpob3ZlcikgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMjBwY3QpOwogICAgICB9CiAgICB9CgogICAgLyogQWN0aXZlICovCiAgICA6aG9zdChbYWN0aXZlXSkgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDVzOwogICAgfQoKICAgIDpob3N0KFthY3RpdmVdW2NoZWNrZWRdKSBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgIH0KCiAgICA6aG9zdChbYWN0aXZlXTpub3QoW2NoZWNrZWRdKSkgW3BhcnQ9J2NoZWNrYm94J106OmJlZm9yZSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDFzLCAwLjAxczsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgb3BhY2l0eTogMC40OwogICAgfQogIGAse21vZHVsZUlkOiJsdW1vLWNoZWNrYm94In0pO2NvbnN0IGwkdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3RoZW1lOnt0eXBlOlN0cmluZyxyZWFkT25seTohMH19fWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbil7c3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuKSwidGhlbWUiPT09dCYmdGhpcy5fc2V0VGhlbWUobil9fSxjJHQ9dD0+Y2xhc3MgZXh0ZW5kcyhsJHQodCkpe3N0YXRpYyBmaW5hbGl6ZSgpe3N1cGVyLmZpbmFsaXplKCk7Y29uc3QgdD10aGlzLnByb3RvdHlwZS5fdGVtcGxhdGUsZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcy5wcm90b3R5cGUpLl90ZW1wbGF0ZTtlJiZBcnJheS5mcm9tKGUuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZVtpbmNsdWRlXSIpKS5mb3JFYWNoKChlPT57dGhpcy5faW5jbHVkZVN0eWxlKGUuZ2V0QXR0cmlidXRlKCJpbmNsdWRlIiksdCl9KSksdGhpcy5faW5jbHVkZU1hdGNoaW5nVGhlbWVzKHQpfXN0YXRpYyBfaW5jbHVkZU1hdGNoaW5nVGhlbWVzKHQpe2NvbnN0IGU9Qi5wcm90b3R5cGUubW9kdWxlcztsZXQgbj0hMTtjb25zdCBpPXRoaXMuaXMrIi1kZWZhdWx0LXRoZW1lIjtPYmplY3Qua2V5cyhlKS5zb3J0KCgodCxlKT0+e2NvbnN0IG49MD09PXQuaW5kZXhPZigidmFhZGluLSIpLGk9MD09PWUuaW5kZXhPZigidmFhZGluLSIpLHI9WyJsdW1vLSIsIm1hdGVyaWFsLSJdLG89ci5maWx0ZXIoKGU9PjA9PT10LmluZGV4T2YoZSkpKS5sZW5ndGg+MCxhPXIuZmlsdGVyKCh0PT4wPT09ZS5pbmRleE9mKHQpKSkubGVuZ3RoPjA7cmV0dXJuIG4hPT1pP24/LTE6MTpvIT09YT9vPy0xOjE6MH0pKS5mb3JFYWNoKChyPT57aWYociE9PWkpe2NvbnN0IGk9ZVtyXS5nZXRBdHRyaWJ1dGUoInRoZW1lLWZvciIpO2kmJmkuc3BsaXQoIiAiKS5mb3JFYWNoKChlPT57bmV3IFJlZ0V4cCgiXiIrZS5zcGxpdCgiKiIpLmpvaW4oIi4qIikrIiQiKS50ZXN0KHRoaXMuaXMpJiYobj0hMCx0aGlzLl9pbmNsdWRlU3R5bGUocix0KSl9KSl9fSkpLCFuJiZlW2ldJiZ0aGlzLl9pbmNsdWRlU3R5bGUoaSx0KX1zdGF0aWMgX2luY2x1ZGVTdHlsZSh0LGUpe2lmKGUmJiFlLmNvbnRlbnQucXVlcnlTZWxlY3Rvcihgc3R5bGVbaW5jbHVkZT0iJHt0fSJdYCkpe2NvbnN0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtuLnNldEF0dHJpYnV0ZSgiaW5jbHVkZSIsdCksZS5jb250ZW50LmFwcGVuZENoaWxkKG4pfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovO2xldCB1JHQ9ITE7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCgoKT0+e3UkdD0hMH0pLHtjYXB0dXJlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsKCgpPT57dSR0PSExfSkse2NhcHR1cmU6ITB9KTtjb25zdCBoJHQ9dD0+Y2xhc3MgZXh0ZW5kcygodD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnt0YWJpbmRleDp7dHlwZTpOdW1iZXIsdmFsdWU6MCxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il90YWJpbmRleENoYW5nZWQifX19fSkodCkpe3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnthdXRvZm9jdXM6e3R5cGU6Qm9vbGVhbn0sX3ByZXZpb3VzVGFiSW5kZXg6e3R5cGU6TnVtYmVyfSxkaXNhYmxlZDp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfZGlzYWJsZWRDaGFuZ2VkIixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LF9pc1NoaWZ0VGFiYmluZzp7dHlwZTpCb29sZWFufX19cmVhZHkoKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCh0PT57dC5jb21wb3NlZFBhdGgoKVswXT09PXRoaXM/dGhpcy5jb250YWlucyh0LnJlbGF0ZWRUYXJnZXQpfHx0aGlzLl9mb2N1cygpOi0xPT09dC5jb21wb3NlZFBhdGgoKS5pbmRleE9mKHRoaXMuZm9jdXNFbGVtZW50KXx8dGhpcy5kaXNhYmxlZHx8dGhpcy5fc2V0Rm9jdXNlZCghMCl9KSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsKCgpPT50aGlzLl9zZXRGb2N1c2VkKCExKSkpLHN1cGVyLnJlYWR5KCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwodD0+eyF0LmRlZmF1bHRQcmV2ZW50ZWQmJjk9PT10LmtleUNvZGUmJnQuc2hpZnRLZXkmJih0aGlzLl9pc1NoaWZ0VGFiYmluZz0hMCxIVE1MRWxlbWVudC5wcm90b3R5cGUuZm9jdXMuYXBwbHkodGhpcyksdGhpcy5fc2V0Rm9jdXNlZCghMSksc2V0VGltZW91dCgoKCk9PnRoaXMuX2lzU2hpZnRUYWJiaW5nPSExKSwwKSl9KSksdGhpcy5hdXRvZm9jdXMmJiF0aGlzLmRpc2FibGVkJiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuX2ZvY3VzKCksdGhpcy5fc2V0Rm9jdXNlZCghMCksdGhpcy5zZXRBdHRyaWJ1dGUoImZvY3VzLXJpbmciLCIiKX0pKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5oYXNBdHRyaWJ1dGUoImZvY3VzZWQiKSYmdGhpcy5fc2V0Rm9jdXNlZCghMSl9X3NldEZvY3VzZWQodCl7dD90aGlzLnNldEF0dHJpYnV0ZSgiZm9jdXNlZCIsIiIpOnRoaXMucmVtb3ZlQXR0cmlidXRlKCJmb2N1c2VkIiksdCYmdSR0P3RoaXMuc2V0QXR0cmlidXRlKCJmb2N1cy1yaW5nIiwiIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImZvY3VzLXJpbmciKX1nZXQgZm9jdXNFbGVtZW50KCl7cmV0dXJuIHdpbmRvdy5jb25zb2xlLndhcm4oYFBsZWFzZSBpbXBsZW1lbnQgdGhlICdmb2N1c0VsZW1lbnQnIHByb3BlcnR5IGluIDwke3RoaXMubG9jYWxOYW1lfT5gKSx0aGlzfV9mb2N1cygpe3RoaXMuZm9jdXNFbGVtZW50JiYhdGhpcy5faXNTaGlmdFRhYmJpbmcmJih0aGlzLmZvY3VzRWxlbWVudC5mb2N1cygpLHRoaXMuX3NldEZvY3VzZWQoITApKX1mb2N1cygpe3RoaXMuZm9jdXNFbGVtZW50JiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuZm9jdXNFbGVtZW50LmZvY3VzKCksdGhpcy5fc2V0Rm9jdXNlZCghMCkpfWJsdXIoKXt0aGlzLmZvY3VzRWxlbWVudCYmKHRoaXMuZm9jdXNFbGVtZW50LmJsdXIoKSx0aGlzLl9zZXRGb2N1c2VkKCExKSl9X2Rpc2FibGVkQ2hhbmdlZCh0KXt0aGlzLmZvY3VzRWxlbWVudC5kaXNhYmxlZD10LHQ/KHRoaXMuYmx1cigpLHRoaXMuX3ByZXZpb3VzVGFiSW5kZXg9dGhpcy50YWJpbmRleCx0aGlzLnRhYmluZGV4PS0xLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpKToodm9pZCAwIT09dGhpcy5fcHJldmlvdXNUYWJJbmRleCYmKHRoaXMudGFiaW5kZXg9dGhpcy5fcHJldmlvdXNUYWJJbmRleCksdGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiKSl9X3RhYmluZGV4Q2hhbmdlZCh0KXt2b2lkIDAhPT10JiYodGhpcy5mb2N1c0VsZW1lbnQudGFiSW5kZXg9dCksdGhpcy5kaXNhYmxlZCYmdGhpcy50YWJpbmRleCYmKC0xIT09dGhpcy50YWJpbmRleCYmKHRoaXMuX3ByZXZpb3VzVGFiSW5kZXg9dGhpcy50YWJpbmRleCksdGhpcy50YWJpbmRleD10PXZvaWQgMCl9Y2xpY2soKXt0aGlzLmRpc2FibGVkfHxzdXBlci5jbGljaygpfX0sZCR0PS9cL1wqXCpccyt2YWFkaW4tZGV2LW1vZGU6c3RhcnQoW1xzXFNdKil2YWFkaW4tZGV2LW1vZGU6ZW5kXHMrXCpcKlwvL2kscCR0PXdpbmRvdy5WYWFkaW4mJndpbmRvdy5WYWFkaW4uRmxvdyYmd2luZG93LlZhYWRpbi5GbG93LmNsaWVudHM7ZnVuY3Rpb24gZiR0KHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpcmV0dXJuO2NvbnN0IG49ZCR0LmV4ZWModC50b1N0cmluZygpKTtpZihuKXRyeXt0PW5ldyBGdW5jdGlvbihuWzFdKX1jYXRjaCh0KXtjb25zb2xlLmxvZygidmFhZGluLWRldmVsb3BtZW50LW1vZGUtZGV0ZWN0b3I6IHVuY29tbWVudEFuZFJ1bigpIGZhaWxlZCIsdCl9cmV0dXJuIHQoZSl9ZnVuY3Rpb24gbSR0KCl7fXdpbmRvdy5WYWFkaW49d2luZG93LlZhYWRpbnx8e30sdm9pZCAwPT09d2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGUmJih3aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZT0oZnVuY3Rpb24gZyR0KCl7dHJ5e3JldHVybiEhKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oInZhYWRpbi5kZXZlbG9wbWVudG1vZGUuZm9yY2UiKX0pKCl8fCEhKGZ1bmN0aW9uIGUoKXtyZXR1cm5bImxvY2FsaG9zdCIsIjEyNy4wLjAuMSJdLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT49MH0pKCkmJihwJHQ/IShmdW5jdGlvbiBuKCl7cmV0dXJuISEocCR0JiZPYmplY3Qua2V5cyhwJHQpLm1hcCgodD0+cCR0W3RdKSkuZmlsdGVyKCh0PT50LnByb2R1Y3Rpb25Nb2RlKSkubGVuZ3RoPjApfSkoKTohKGZ1bmN0aW9uIGkoKXtyZXR1cm4gZiR0KChmdW5jdGlvbiB0KCl7cmV0dXJuITB9KSl9KSgpKX1jYXRjaCh0KXtyZXR1cm4hMX19KSgpKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY2xhc3MgXyR0e3N0YXRpYyBkZXRlY3RTY3JvbGxUeXBlKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LnRleHRDb250ZW50PSJBQkNEIix0LmRpcj0icnRsIix0LnN0eWxlLmZvbnRTaXplPSIxNHB4Iix0LnN0eWxlLndpZHRoPSI0cHgiLHQuc3R5bGUuaGVpZ2h0PSIxcHgiLHQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0LnN0eWxlLnRvcD0iLTEwMDBweCIsdC5zdHlsZS5vdmVyZmxvdz0ic2Nyb2xsIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO2xldCBlPSJyZXZlcnNlIjtyZXR1cm4gdC5zY3JvbGxMZWZ0PjA/ZT0iZGVmYXVsdCI6KHQuc2Nyb2xsTGVmdD0yLHQuc2Nyb2xsTGVmdDwyJiYoZT0ibmVnYXRpdmUiKSksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KSxlfXN0YXRpYyBnZXROb3JtYWxpemVkU2Nyb2xsTGVmdCh0LGUsbil7Y29uc3R7c2Nyb2xsTGVmdDppfT1uO2lmKCJydGwiIT09ZXx8IXQpcmV0dXJuIGk7c3dpdGNoKHQpe2Nhc2UibmVnYXRpdmUiOnJldHVybiBuLnNjcm9sbFdpZHRoLW4uY2xpZW50V2lkdGgraTtjYXNlInJldmVyc2UiOnJldHVybiBuLnNjcm9sbFdpZHRoLW4uY2xpZW50V2lkdGgtaX1yZXR1cm4gaX1zdGF0aWMgc2V0Tm9ybWFsaXplZFNjcm9sbExlZnQodCxlLG4saSl7aWYoInJ0bCI9PT1lJiZ0KXN3aXRjaCh0KXtjYXNlIm5lZ2F0aXZlIjpuLnNjcm9sbExlZnQ9bi5jbGllbnRXaWR0aC1uLnNjcm9sbFdpZHRoK2k7YnJlYWs7Y2FzZSJyZXZlcnNlIjpuLnNjcm9sbExlZnQ9bi5zY3JvbGxXaWR0aC1uLmNsaWVudFdpZHRoLWk7YnJlYWs7ZGVmYXVsdDpuLnNjcm9sbExlZnQ9aX1lbHNlIG4uc2Nyb2xsTGVmdD1pfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi9jb25zdCB5JHQ9W107bGV0IHYkdDtuZXcgTXV0YXRpb25PYnNlcnZlcigoZnVuY3Rpb24oKXtjb25zdCB0PXgkdCgpO3kkdC5mb3JFYWNoKChlPT57YiR0KGUsdCl9KSl9KSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiZGlyIl19KTtjb25zdCBiJHQ9ZnVuY3Rpb24odCxlLG49dC5nZXRBdHRyaWJ1dGUoImRpciIpKXtlP3Quc2V0QXR0cmlidXRlKCJkaXIiLGUpOm51bGwhPW4mJnQucmVtb3ZlQXR0cmlidXRlKCJkaXIiKX0seCR0PWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRpciIpfSx3JHQ9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntkaXI6e3R5cGU6U3RyaW5nLHZhbHVlOiIiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH19fXN0YXRpYyBmaW5hbGl6ZSgpe3N1cGVyLmZpbmFsaXplKCksdiR0fHwodiR0PV8kdC5kZXRlY3RTY3JvbGxUeXBlKCkpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhc0F0dHJpYnV0ZSgiZGlyIil8fCh0aGlzLl9fc3Vic2NyaWJlKCksYiR0KHRoaXMseCR0KCksbnVsbCkpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbil7aWYoc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuKSwiZGlyIiE9PXQpcmV0dXJuO2NvbnN0IGk9eCR0KCkscj1uPT09aSYmLTE9PT15JHQuaW5kZXhPZih0aGlzKSxvPSFuJiZlJiYtMT09PXkkdC5pbmRleE9mKHRoaXMpLGE9biE9PWkmJmU9PT1pO3J8fG8/KHRoaXMuX19zdWJzY3JpYmUoKSxiJHQodGhpcyxpLG4pKTphJiZ0aGlzLl9fc3Vic2NyaWJlKCExKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fX3N1YnNjcmliZSghMSksdGhpcy5yZW1vdmVBdHRyaWJ1dGUoImRpciIpfV92YWx1ZVRvTm9kZUF0dHJpYnV0ZSh0LGUsbil7KCJkaXIiIT09bnx8IiIhPT1lfHx0Lmhhc0F0dHJpYnV0ZSgiZGlyIikpJiZzdXBlci5fdmFsdWVUb05vZGVBdHRyaWJ1dGUodCxlLG4pfV9hdHRyaWJ1dGVUb1Byb3BlcnR5KHQsZSxuKXsiZGlyIiE9PXR8fGU/c3VwZXIuX2F0dHJpYnV0ZVRvUHJvcGVydHkodCxlLG4pOnRoaXMuZGlyPSIifV9fc3Vic2NyaWJlKHQ9ITApe3Q/LTE9PT15JHQuaW5kZXhPZih0aGlzKSYmeSR0LnB1c2godGhpcyk6eSR0LmluZGV4T2YodGhpcyk+LTEmJnkkdC5zcGxpY2UoeSR0LmluZGV4T2YodGhpcyksMSl9X19nZXROb3JtYWxpemVkU2Nyb2xsTGVmdCh0KXtyZXR1cm4gXyR0LmdldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHYkdCx0aGlzLmdldEF0dHJpYnV0ZSgiZGlyIil8fCJsdHIiLHQpfV9fc2V0Tm9ybWFsaXplZFNjcm9sbExlZnQodCxlKXtyZXR1cm4gXyR0LnNldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHYkdCx0aGlzLmdldEF0dHJpYnV0ZSgiZGlyIil8fCJsdHIiLHQsZSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLztsZXQgUyR0O3dpbmRvdy5WYWFkaW49d2luZG93LlZhYWRpbnx8e30sd2luZG93LlZhYWRpbi5yZWdpc3RyYXRpb25zPXdpbmRvdy5WYWFkaW4ucmVnaXN0cmF0aW9uc3x8W10sd2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGVDYWxsYmFjaz13aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZUNhbGxiYWNrfHx7fSx3aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZUNhbGxiYWNrWyJ2YWFkaW4tdXNhZ2Utc3RhdGlzdGljcyJdPWZ1bmN0aW9uKCl7dmFyIHQ7dD1tJHQsd2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGUmJmYkdCh0LHZvaWQgMCl9O2NvbnN0IE0kdD1uZXcgU2V0LEUkdD10PT5jbGFzcyBleHRlbmRzKHckdCh0KSl7c3RhdGljIGZpbmFsaXplKCl7c3VwZXIuZmluYWxpemUoKTtjb25zdHtpczp0fT10aGlzO3QmJiFNJHQuaGFzKHQpJiYod2luZG93LlZhYWRpbi5yZWdpc3RyYXRpb25zLnB1c2godGhpcyksTSR0LmFkZCh0KSx3aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZUNhbGxiYWNrJiYoUyR0PVRuLmRlYm91bmNlKFMkdCx5dCwoKCk9Pnt3aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZUNhbGxiYWNrWyJ2YWFkaW4tdXNhZ2Utc3RhdGlzdGljcyJdKCl9KSksQW4oUyR0KSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxudWxsPT09ZG9jdW1lbnQuZG9jdHlwZSYmY29uc29sZS53YXJuKCdWYWFkaW4gY29tcG9uZW50cyByZXF1aXJlIHRoZSAic3RhbmRhcmRzIG1vZGUiIGRlY2xhcmF0aW9uLiBQbGVhc2UgYWRkIDwhRE9DVFlQRSBodG1sPiB0byB0aGUgSFRNTCBkb2N1bWVudC4nKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovO2NsYXNzIFQkdCBleHRlbmRzKEUkdChoJHQoYyR0KHBpKHllKSkpKSl7c3RhdGljIGdldCB0ZW1wbGF0ZSgpe3JldHVybiBfZWAKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgfQoKICAgICAgICBsYWJlbCB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBmbGV4OiBub25lOwogICAgICAgIH0KCiAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICBjdXJzb3I6IGluaGVyaXQ7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxsYWJlbD4KICAgICAgICA8c3BhbiBwYXJ0PSJjaGVja2JveCI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgIGNoZWNrZWQ9Int7Y2hlY2tlZDo6Y2hhbmdlfX0iCiAgICAgICAgICAgIGRpc2FibGVkJD0iW1tkaXNhYmxlZF1dIgogICAgICAgICAgICBpbmRldGVybWluYXRlPSJ7e2luZGV0ZXJtaW5hdGU6OmNoYW5nZX19IgogICAgICAgICAgICByb2xlPSJwcmVzZW50YXRpb24iCiAgICAgICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICAgIC8+CiAgICAgICAgPC9zcGFuPgoKICAgICAgICA8c3BhbiBwYXJ0PSJsYWJlbCI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2xhYmVsPgogICAgYH1zdGF0aWMgZ2V0IGlzKCl7cmV0dXJuInZhYWRpbi1jaGVja2JveCJ9c3RhdGljIGdldCB2ZXJzaW9uKCl7cmV0dXJuIjIwLjAuMiJ9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2NoZWNrZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITAsb2JzZXJ2ZXI6Il9jaGVja2VkQ2hhbmdlZCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxpbmRldGVybWluYXRlOnt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwLG9ic2VydmVyOiJfaW5kZXRlcm1pbmF0ZUNoYW5nZWQiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx2YWx1ZTohMX0sdmFsdWU6e3R5cGU6U3RyaW5nLHZhbHVlOiJvbiJ9LF9uYXRpdmVDaGVja2JveDp7dHlwZTpPYmplY3R9fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5jaGVja2VkP3RoaXMuX3N0b3JlZE5hbWU6IiJ9c2V0IG5hbWUodCl7dGhpcy5fc3RvcmVkTmFtZT10fXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsImNoZWNrYm94IiksdGhpcy5fbmF0aXZlQ2hlY2tib3g9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il0nKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVDbGljay5iaW5kKHRoaXMpKSx0aGlzLl9hZGRBY3RpdmVMaXN0ZW5lcnMoKTtjb25zdCB0PXRoaXMuZ2V0QXR0cmlidXRlKCJuYW1lIik7dCYmKHRoaXMubmFtZT10KSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignW3BhcnR+PSJsYWJlbCJdJykucXVlcnlTZWxlY3Rvcigic2xvdCIpLmFkZEV2ZW50TGlzdGVuZXIoInNsb3RjaGFuZ2UiLHRoaXMuX3VwZGF0ZUxhYmVsQXR0cmlidXRlLmJpbmQodGhpcykpLHRoaXMuX3VwZGF0ZUxhYmVsQXR0cmlidXRlKCl9X3VwZGF0ZUxhYmVsQXR0cmlidXRlKCl7Y29uc3QgdD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignW3BhcnR+PSJsYWJlbCJdJyksZT10LmZpcnN0RWxlbWVudENoaWxkLmFzc2lnbmVkTm9kZXMoKTt0aGlzLl9pc0Fzc2lnbmVkTm9kZXNFbXB0eShlKT90LnNldEF0dHJpYnV0ZSgiZW1wdHkiLCIiKTp0LnJlbW92ZUF0dHJpYnV0ZSgiZW1wdHkiKX1faXNBc3NpZ25lZE5vZGVzRW1wdHkodCl7cmV0dXJuIDA9PT10Lmxlbmd0aHx8MT09dC5sZW5ndGgmJnRbMF0ubm9kZVR5cGU9PU5vZGUuVEVYVF9OT0RFJiYiIj09PXRbMF0udGV4dENvbnRlbnQudHJpbSgpfV9jaGVja2VkQ2hhbmdlZCh0KXt0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1jaGVja2VkIix0aGlzLmluZGV0ZXJtaW5hdGU/Im1peGVkIjpCb29sZWFuKHQpKX1faW5kZXRlcm1pbmF0ZUNoYW5nZWQodCl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsdD8ibWl4ZWQiOnRoaXMuY2hlY2tlZCl9X2FkZEFjdGl2ZUxpc3RlbmVycygpe3RoaXMuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodGhpcywiZG93biIsKHQ9Pnt0aGlzLl9faW50ZXJhY3Rpb25zQWxsb3dlZCh0KSYmdGhpcy5zZXRBdHRyaWJ1dGUoImFjdGl2ZSIsIiIpfSkpLHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodGhpcywidXAiLCgoKT0+dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFjdGl2ZSIpKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwodD0+e3RoaXMuX19pbnRlcmFjdGlvbnNBbGxvd2VkKHQpJiYzMj09PXQua2V5Q29kZSYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLnNldEF0dHJpYnV0ZSgiYWN0aXZlIiwiIikpfSkpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCh0PT57dGhpcy5fX2ludGVyYWN0aW9uc0FsbG93ZWQodCkmJjMyPT09dC5rZXlDb2RlJiYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX3RvZ2dsZUNoZWNrZWQoKSx0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYWN0aXZlIiksdGhpcy5pbmRldGVybWluYXRlJiYodGhpcy5pbmRldGVybWluYXRlPSExKSl9KSl9Z2V0IGZvY3VzRWxlbWVudCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKX1fX2ludGVyYWN0aW9uc0FsbG93ZWQodCl7cmV0dXJuIXRoaXMuZGlzYWJsZWQmJiJhIiE9PXQudGFyZ2V0LmxvY2FsTmFtZX1faGFuZGxlQ2xpY2sodCl7dGhpcy5fX2ludGVyYWN0aW9uc0FsbG93ZWQodCkmJih0aGlzLmluZGV0ZXJtaW5hdGU/KHRoaXMuaW5kZXRlcm1pbmF0ZT0hMSx0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fdG9nZ2xlQ2hlY2tlZCgpKTp0LmNvbXBvc2VkUGF0aCgpWzBdIT09dGhpcy5fbmF0aXZlQ2hlY2tib3gmJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fdG9nZ2xlQ2hlY2tlZCgpKSl9X3RvZ2dsZUNoZWNrZWQoKXt0aGlzLmNoZWNrZWQ9IXRoaXMuY2hlY2tlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtjb21wb3NlZDohMSxidWJibGVzOiEwfSkpfX1jdXN0b21FbGVtZW50cy5kZWZpbmUoVCR0LmlzLFQkdCksJFh0KCJ2YWFkaW4tZ3JpZCIsR1h0YAogICAgOmhvc3QgewogICAgICBmb250LWZhbWlseTogdmFyKC0tbHVtby1mb250LWZhbWlseSk7CiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUtbSk7CiAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1sdW1vLWxpbmUtaGVpZ2h0LXMpOwogICAgICBjb2xvcjogdmFyKC0tbHVtby1ib2R5LXRleHQtY29sb3IpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWJhc2UtY29sb3IpOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwoKICAgICAgLyogRm9yIGludGVybmFsIHVzZSBvbmx5ICovCiAgICAgIC0tX2x1bW8tZ3JpZC1ib3JkZXItY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMjBwY3QpOwogICAgICAtLV9sdW1vLWdyaWQtc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0xMHBjdCk7CiAgICAgIC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGg6IDFweDsKICAgICAgLS1fbHVtby1ncmlkLXNlbGVjdGVkLXJvdy1jb2xvcjogdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yLTEwcGN0KTsKICAgIH0KCiAgICAvKiBObyAob3V0ZXIpIGJvcmRlciAqLwoKICAgIDpob3N0KDpub3QoW3RoZW1lfj0nbm8tYm9yZGVyJ10pKSB7CiAgICAgIGJvcmRlcjogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLWNvbG9yKTsKICAgIH0KCiAgICAvKiBDZWxsIHN0eWxlcyAqLwoKICAgIFtwYXJ0fj0nY2VsbCddIHsKICAgICAgbWluLWhlaWdodDogdmFyKC0tbHVtby1zaXplLW0pOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWJhc2UtY29sb3IpOwogICAgfQoKICAgIFtwYXJ0fj0nY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpIHsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICBwYWRkaW5nOiB2YXIoLS1sdW1vLXNwYWNlLXhzKSB2YXIoLS1sdW1vLXNwYWNlLW0pOwogICAgfQoKICAgIC8qIEFwcGx5IHJvdyBib3JkZXJzIGJ5IGRlZmF1bHQgYW5kIGludHJvZHVjZSB0aGUgIm5vLXJvdy1ib3JkZXJzIiB2YXJpYW50ICovCiAgICA6aG9zdCg6bm90KFt0aGVtZX49J25vLXJvdy1ib3JkZXJzJ10pKSBbcGFydH49J2NlbGwnXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBib3JkZXItdG9wOiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tX2x1bW8tZ3JpZC1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTsKICAgIH0KCiAgICAvKiBIaWRlIGZpcnN0IGJvZHkgcm93IHRvcCBib3JkZXIgKi8KICAgIDpob3N0KDpub3QoW3RoZW1lfj0nbm8tcm93LWJvcmRlcnMnXSkpIFtwYXJ0PSdyb3cnXVtmaXJzdF0gW3BhcnR+PSdjZWxsJ106bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pIHsKICAgICAgYm9yZGVyLXRvcDogMDsKICAgICAgbWluLWhlaWdodDogY2FsYyh2YXIoLS1sdW1vLXNpemUtbSkgLSB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkpOwogICAgfQoKICAgIC8qIEZvY3VzLXJpbmcgKi8KCiAgICBbcGFydH49J2NlbGwnXTpmb2N1cyB7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgOmhvc3QoW25hdmlnYXRpbmddKSBbcGFydH49J2NlbGwnXTpmb2N1czo6YmVmb3JlIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBsZWZ0OiAwOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdCk7CiAgICB9CgogICAgLyogRHJhZyBhbmQgRHJvcCBzdHlsZXMgKi8KICAgIDpob3N0KFtkcmFnb3Zlcl0pOjphZnRlciB7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgdG9wOiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBsZWZ0OiAwOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdCk7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnb3Zlcl0gewogICAgICB6LWluZGV4OiAxMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdvdmVyXSBbcGFydH49J2NlbGwnXSB7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ292ZXJdIFtwYXJ0fj0nY2VsbCddOjphZnRlciB7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSArIDJweCk7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1sdW1vLXByaW1hcnktY29sb3ItNTBwY3QpOwogICAgfQoKICAgIDpob3N0KFt0aGVtZX49J25vLXJvdy1ib3JkZXJzJ10pIFtkcmFnb3Zlcl0gW3BhcnR+PSdjZWxsJ106OmFmdGVyIHsKICAgICAgaGVpZ2h0OiAycHg7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnb3Zlcj0nYmVsb3cnXSBbcGFydH49J2NlbGwnXTo6YWZ0ZXIgewogICAgICB0b3A6IDEwMCU7CiAgICAgIGJvdHRvbTogYXV0bzsKICAgICAgbWFyZ2luLXRvcDogLTFweDsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdvdmVyPSdhYm92ZSddIFtwYXJ0fj0nY2VsbCddOjphZnRlciB7CiAgICAgIHRvcDogYXV0bzsKICAgICAgYm90dG9tOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAtMXB4OwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZGV0YWlscy1vcGVuZWRdW2RyYWdvdmVyPSdiZWxvdyddIFtwYXJ0fj0nY2VsbCddOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKTo6YWZ0ZXIsCiAgICBbcGFydH49J3JvdyddW2RldGFpbHMtb3BlbmVkXVtkcmFnb3Zlcj0nYWJvdmUnXSBbcGFydH49J2RldGFpbHMtY2VsbCddOjphZnRlciB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnb3Zlcl1bZHJhZ292ZXI9J29uLXRvcCddIFtwYXJ0fj0nY2VsbCddOjphZnRlciB7CiAgICAgIGhlaWdodDogMTAwJTsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdzdGFydF0gewogICAgICAvKiBBZGQgYm90dG9tLXNwYWNlIHRvIHRoZSByb3cgc28gdGhlIGRyYWcgbnVtYmVyIGRvZXNuJ3QgZ2V0IGNsaXBwZWQuIE5lZWRlZCBmb3IgSUUvRWRnZSAqLwogICAgICBib3JkZXItYm90dG9tOiAxMDBweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgei1pbmRleDogMTAwICFpbXBvcnRhbnQ7CiAgICAgIG9wYWNpdHk6IDAuOTsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdzdGFydF0gW3BhcnR+PSdjZWxsJ10gewogICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ3N0YXJ0XSBbcGFydH49J2NlbGwnXVtsYXN0LWNvbHVtbl0gewogICAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKSB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtcykgMDsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdzdGFydF0gW3BhcnR+PSdjZWxsJ11bZmlyc3QtY29sdW1uXSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKSAwIDAgdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpOwogICAgfQoKICAgIFtpb3NdIFtwYXJ0fj0ncm93J11bZHJhZ3N0YXJ0XSBbcGFydH49J2NlbGwnXSB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdCk7CiAgICB9CgogICAgI3Njcm9sbGVyOm5vdChbaW9zXSkgW3BhcnR+PSdyb3cnXVtkcmFnc3RhcnRdOm5vdChbZHJhZ3N0YXJ0PScnXSk6OmFmdGVyIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgbGVmdDogdmFyKC0tX2dyaWQtZHJhZy1zdGFydC14KTsKICAgICAgdG9wOiB2YXIoLS1fZ3JpZC1kcmFnLXN0YXJ0LXkpOwogICAgICB6LWluZGV4OiAxMDA7CiAgICAgIGNvbnRlbnQ6IGF0dHIoZHJhZ3N0YXJ0KTsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tbHVtby1zcGFjZS14cykgKiAwLjgpOwogICAgICBjb2xvcjogdmFyKC0tbHVtby1lcnJvci1jb250cmFzdC1jb2xvcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tZXJyb3ItY29sb3IpOwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtbSk7CiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1sdW1vLWZvbnQtZmFtaWx5KTsKICAgICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS14eHMpOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7CiAgICAgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsOwogICAgICBtaW4td2lkdGg6IGNhbGModmFyKC0tbHVtby1zaXplLXMpICogMC43KTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQoKICAgIC8qIEhlYWRlcnMgYW5kIGZvb3RlcnMgKi8KCiAgICBbcGFydH49J2hlYWRlci1jZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCksCiAgICBbcGFydH49J2Zvb3Rlci1jZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCksCiAgICBbcGFydH49J3Jlb3JkZXItZ2hvc3QnXSB7CiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUtcyk7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgW3BhcnR+PSdmb290ZXItY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpIHsKICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIH0KCiAgICBbcGFydD0ncm93J106b25seS1jaGlsZCBbcGFydH49J2hlYWRlci1jZWxsJ10gewogICAgICBtaW4taGVpZ2h0OiB2YXIoLS1sdW1vLXNpemUteGwpOwogICAgfQoKICAgIC8qIEhlYWRlciBib3JkZXJzICovCgogICAgLyogSGlkZSBmaXJzdCBoZWFkZXIgcm93IHRvcCBib3JkZXIgKi8KICAgIDpob3N0KDpub3QoW3RoZW1lfj0nbm8tcm93LWJvcmRlcnMnXSkpIFtwYXJ0PSdyb3cnXTpmaXJzdC1jaGlsZCBbcGFydH49J2hlYWRlci1jZWxsJ10gewogICAgICBib3JkZXItdG9wOiAwOwogICAgfQoKICAgIFtwYXJ0PSdyb3cnXTpsYXN0LWNoaWxkIFtwYXJ0fj0naGVhZGVyLWNlbGwnXSB7CiAgICAgIGJvcmRlci1ib3R0b206IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSBzb2xpZCB0cmFuc3BhcmVudDsKICAgIH0KCiAgICA6aG9zdCg6bm90KFt0aGVtZX49J25vLXJvdy1ib3JkZXJzJ10pKSBbcGFydD0ncm93J106bGFzdC1jaGlsZCBbcGFydH49J2hlYWRlci1jZWxsJ10gewogICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1fbHVtby1ncmlkLXNlY29uZGFyeS1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIE92ZXJmbG93IHVzZXMgYSBzdHJvbmdlciBib3JkZXIgY29sb3IgKi8KICAgIDpob3N0KFtvdmVyZmxvd349J3RvcCddKSBbcGFydD0ncm93J106bGFzdC1jaGlsZCBbcGFydH49J2hlYWRlci1jZWxsJ10gewogICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci1jb2xvcik7CiAgICB9CgogICAgLyogRm9vdGVyIGJvcmRlcnMgKi8KCiAgICBbcGFydD0ncm93J106Zmlyc3QtY2hpbGQgW3BhcnR+PSdmb290ZXItY2VsbCddIHsKICAgICAgYm9yZGVyLXRvcDogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50OwogICAgfQoKICAgIDpob3N0KDpub3QoW3RoZW1lfj0nbm8tcm93LWJvcmRlcnMnXSkpIFtwYXJ0PSdyb3cnXTpmaXJzdC1jaGlsZCBbcGFydH49J2Zvb3Rlci1jZWxsJ10gewogICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1fbHVtby1ncmlkLXNlY29uZGFyeS1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIE92ZXJmbG93IHVzZXMgYSBzdHJvbmdlciBib3JkZXIgY29sb3IgKi8KICAgIDpob3N0KFtvdmVyZmxvd349J2JvdHRvbSddKSBbcGFydD0ncm93J106Zmlyc3QtY2hpbGQgW3BhcnR+PSdmb290ZXItY2VsbCddIHsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIENvbHVtbiByZW9yZGVyaW5nICovCgogICAgOmhvc3QoW3Jlb3JkZXJpbmddKSBbcGFydH49J2NlbGwnXSB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KSwgdmFyKC0tbHVtby1zaGFkZS0yMHBjdCkpIHZhcigtLWx1bW8tYmFzZS1jb2xvcik7CiAgICB9CgogICAgOmhvc3QoW3Jlb3JkZXJpbmddKSBbcGFydH49J2NlbGwnXVtyZW9yZGVyLXN0YXR1cz0nYWxsb3dlZCddIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tbHVtby1iYXNlLWNvbG9yKTsKICAgIH0KCiAgICA6aG9zdChbcmVvcmRlcmluZ10pIFtwYXJ0fj0nY2VsbCddW3Jlb3JkZXItc3RhdHVzPSdkcmFnZ2luZyddIHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWx1bW8tY29udHJhc3QtNXBjdCksIHZhcigtLWx1bW8tY29udHJhc3QtNXBjdCkpIHZhcigtLWx1bW8tYmFzZS1jb2xvcik7CiAgICB9CgogICAgW3BhcnR+PSdyZW9yZGVyLWdob3N0J10gewogICAgICBvcGFjaXR5OiAwLjg1OwogICAgICBib3gtc2hhZG93OiB2YXIoLS1sdW1vLWJveC1zaGFkb3ctcyk7CiAgICAgIC8qIFRPRE8gVXNlIHRoZSBzYW1lIHN0eWxlcyBhcyBmb3IgdGhlIGNlbGwgZWxlbWVudCAocmVvcmRlci1naG9zdCBjb3BpZXMgc3R5bGVzIGZyb20gdGhlIGNlbGwgZWxlbWVudCkgKi8KICAgICAgcGFkZGluZzogdmFyKC0tbHVtby1zcGFjZS1zKSB2YXIoLS1sdW1vLXNwYWNlLW0pICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLyogQ29sdW1uIHJlc2l6aW5nICovCgogICAgW3BhcnQ9J3Jlc2l6ZS1oYW5kbGUnXSB7CiAgICAgIHdpZHRoOiAzcHg7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdCk7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgIH0KCiAgICA6aG9zdCg6bm90KFtyZW9yZGVyaW5nXSkpICo6bm90KFtjb2x1bW4tcmVzaXppbmddKSBbcGFydH49J2NlbGwnXTpob3ZlciBbcGFydD0ncmVzaXplLWhhbmRsZSddLAogICAgW3BhcnQ9J3Jlc2l6ZS1oYW5kbGUnXTphY3RpdmUgewogICAgICBvcGFjaXR5OiAxOwogICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjE1czsKICAgIH0KCiAgICAvKiBDb2x1bW4gYm9yZGVycyAqLwoKICAgIDpob3N0KFt0aGVtZX49J2NvbHVtbi1ib3JkZXJzJ10pIFtwYXJ0fj0nY2VsbCddOm5vdChbbGFzdC1jb2x1bW5dKTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBib3JkZXItcmlnaHQ6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1fbHVtby1ncmlkLXNlY29uZGFyeS1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIEZyb3plbiBjb2x1bW5zICovCgogICAgW2xhc3QtZnJvemVuXSB7CiAgICAgIGJvcmRlci1yaWdodDogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIDpob3N0KFtvdmVyZmxvd349J2xlZnQnXSkgW3BhcnR+PSdjZWxsJ11bbGFzdC1mcm96ZW5dOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIFJvdyBzdHJpcGVzICovCgogICAgOmhvc3QoW3RoZW1lfj0ncm93LXN0cmlwZXMnXSkgW3BhcnR+PSdyb3cnXTpub3QoW29kZF0pIFtwYXJ0fj0nYm9keS1jZWxsJ10sCiAgICA6aG9zdChbdGhlbWV+PSdyb3ctc3RyaXBlcyddKSBbcGFydH49J3JvdyddOm5vdChbb2RkXSkgW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSB7CiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1sdW1vLWNvbnRyYXN0LTVwY3QpLCB2YXIoLS1sdW1vLWNvbnRyYXN0LTVwY3QpKTsKICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14OwogICAgfQoKICAgIC8qIFNlbGVjdGVkIHJvdyAqLwoKICAgIC8qIFJhaXNlIHRoZSBzZWxlY3RlZCByb3dzIGFib3ZlIHVuc2VsZWN0ZWQgcm93cyAoc28gdGhhdCBib3gtc2hhZG93IGNhbiBjb3ZlciB1bnNlbGVjdGVkIHJvd3MpICovCiAgICA6aG9zdCg6bm90KFtyZW9yZGVyaW5nXSkpIFtwYXJ0fj0ncm93J11bc2VsZWN0ZWRdIHsKICAgICAgei1pbmRleDogMTsKICAgIH0KCiAgICA6aG9zdCg6bm90KFtyZW9yZGVyaW5nXSkpIFtwYXJ0fj0ncm93J11bc2VsZWN0ZWRdIFtwYXJ0fj0nYm9keS1jZWxsJ106bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pIHsKICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHZhcigtLV9sdW1vLWdyaWQtc2VsZWN0ZWQtcm93LWNvbG9yKSwgdmFyKC0tX2x1bW8tZ3JpZC1zZWxlY3RlZC1yb3ctY29sb3IpKTsKICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDsKICAgIH0KCiAgICAvKiBDb3ZlciB0aGUgYm9yZGVyIG9mIGFuIHVuc2VsZWN0ZWQgcm93ICovCiAgICA6aG9zdCg6bm90KFt0aGVtZX49J25vLXJvdy1ib3JkZXJzJ10pKSBbcGFydH49J3JvdyddW3NlbGVjdGVkXSBbcGFydH49J2NlbGwnXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBib3gtc2hhZG93OiAwIHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSAwIDAgdmFyKC0tX2x1bW8tZ3JpZC1zZWxlY3RlZC1yb3ctY29sb3IpOwogICAgfQoKICAgIC8qIENvbXBhY3QgKi8KCiAgICA6aG9zdChbdGhlbWV+PSdjb21wYWN0J10pIFtwYXJ0PSdyb3cnXTpvbmx5LWNoaWxkIFtwYXJ0fj0naGVhZGVyLWNlbGwnXSB7CiAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWx1bW8tc2l6ZS1tKTsKICAgIH0KCiAgICA6aG9zdChbdGhlbWV+PSdjb21wYWN0J10pIFtwYXJ0fj0nY2VsbCddIHsKICAgICAgbWluLWhlaWdodDogdmFyKC0tbHVtby1zaXplLXMpOwogICAgfQoKICAgIDpob3N0KFt0aGVtZX49J2NvbXBhY3QnXSkgW3BhcnQ9J3JvdyddW2ZpcnN0XSBbcGFydH49J2NlbGwnXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLWx1bW8tc2l6ZS1zKSAtIHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSk7CiAgICB9CgogICAgOmhvc3QoW3RoZW1lfj0nY29tcGFjdCddKSBbcGFydH49J2NlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSB7CiAgICAgIHBhZGRpbmc6IHZhcigtLWx1bW8tc3BhY2UteHMpIHZhcigtLWx1bW8tc3BhY2Utcyk7CiAgICB9CgogICAgLyogV3JhcCBjZWxsIGNvbnRlbnRzICovCgogICAgOmhvc3QoW3RoZW1lfj0nd3JhcC1jZWxsLWNvbnRlbnQnXSkgW3BhcnR+PSdjZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCkgewogICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwogICAgfQoKICAgIC8qIFJUTCBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW3BhcnR+PSdyb3cnXVtkcmFnc3RhcnRdIFtwYXJ0fj0nY2VsbCddW2xhc3QtY29sdW1uXSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKSAwIDAgdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpOwogICAgfQoKICAgIDpob3N0KFtkaXI9J3J0bCddKSBbcGFydH49J3JvdyddW2RyYWdzdGFydF0gW3BhcnR+PSdjZWxsJ11bZmlyc3QtY29sdW1uXSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpIHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKSAwOwogICAgfQoKICAgIDpob3N0KFtkaXI9J3J0bCddW3RoZW1lfj0nY29sdW1uLWJvcmRlcnMnXSkgW3BhcnR+PSdjZWxsJ106bm90KFtsYXN0LWNvbHVtbl0pOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgYm9yZGVyLWxlZnQ6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1fbHVtby1ncmlkLXNlY29uZGFyeS1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIDpob3N0KFtkaXI9J3J0bCddKSBbbGFzdC1mcm96ZW5dIHsKICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICBib3JkZXItbGVmdDogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50OwogICAgfQoKICAgIDpob3N0KFtkaXI9J3J0bCddW292ZXJmbG93fj0ncmlnaHQnXSkgW3BhcnR+PSdjZWxsJ11bbGFzdC1mcm96ZW5dOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci1jb2xvcik7CiAgICB9CiAgYCx7bW9kdWxlSWQ6Imx1bW8tZ3JpZCJ9KSwkWHQoInZhYWRpbi1jaGVja2JveCIsR1h0YAogICAgOmhvc3QoLnZhYWRpbi1ncmlkLXNlbGVjdC1hbGwtY2hlY2tib3gpIHsKICAgICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS1tKTsKICAgIH0KICBgLHttb2R1bGVJZDoidmFhZGluLWdyaWQtc2VsZWN0LWFsbC1jaGVja2JveC1sdW1vIn0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTYgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBDJHQ9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvaVAoPzpob25lfGFkOyg/OiBVOyk/IENQVSkgT1MgKFxkKykvKSxBJHQ9QyR0JiZDJHRbMV0+PTgsayR0PUlyKHtiZWhhdmlvcnM6W2dvLERvXSxfcmF0aW86LjUsX3Njcm9sbGVyUGFkZGluZ1RvcDowLF9zY3JvbGxQb3NpdGlvbjowLF9waHlzaWNhbFNpemU6MCxfcGh5c2ljYWxBdmVyYWdlOjAsX3BoeXNpY2FsQXZlcmFnZUNvdW50OjAsX3BoeXNpY2FsVG9wOjAsX3ZpcnR1YWxDb3VudDowLF9lc3RTY3JvbGxIZWlnaHQ6MCxfc2Nyb2xsSGVpZ2h0OjAsX3ZpZXdwb3J0SGVpZ2h0OjAsX3ZpZXdwb3J0V2lkdGg6MCxfcGh5c2ljYWxJdGVtczpudWxsLF9waHlzaWNhbFNpemVzOm51bGwsX2ZpcnN0VmlzaWJsZUluZGV4VmFsOm51bGwsX2xhc3RWaXNpYmxlSW5kZXhWYWw6bnVsbCxfbWF4UGFnZXM6MixfZm9jdXNlZFZpcnR1YWxJbmRleDotMSxfdGVtcGxhdGVDb3N0OjAsZ2V0IF9waHlzaWNhbEJvdHRvbSgpe3JldHVybiB0aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9waHlzaWNhbFNpemV9LGdldCBfc2Nyb2xsQm90dG9tKCl7cmV0dXJuIHRoaXMuX3Njcm9sbFBvc2l0aW9uK3RoaXMuX3ZpZXdwb3J0SGVpZ2h0fSxnZXQgX3ZpcnR1YWxFbmQoKXtyZXR1cm4gdGhpcy5fdmlydHVhbFN0YXJ0K3RoaXMuX3BoeXNpY2FsQ291bnQtMX0sZ2V0IF9oaWRkZW5Db250ZW50U2l6ZSgpe3JldHVybiB0aGlzLl9waHlzaWNhbFNpemUtdGhpcy5fdmlld3BvcnRIZWlnaHR9LGdldCBfbWF4U2Nyb2xsVG9wKCl7cmV0dXJuIHRoaXMuX2VzdFNjcm9sbEhlaWdodC10aGlzLl92aWV3cG9ydEhlaWdodCt0aGlzLl9zY3JvbGxPZmZzZXR9LGdldCBfbWF4VmlydHVhbFN0YXJ0KCl7cmV0dXJuIE1hdGgubWF4KDAsdGhpcy5fdmlydHVhbENvdW50LXRoaXMuX3BoeXNpY2FsQ291bnQpfSxzZXQgX3ZpcnR1YWxTdGFydCh0KXt0PXRoaXMuX2NsYW1wKHQsMCx0aGlzLl9tYXhWaXJ0dWFsU3RhcnQpLHRoaXMuX3ZpcnR1YWxTdGFydFZhbD10fSxnZXQgX3ZpcnR1YWxTdGFydCgpe3JldHVybiB0aGlzLl92aXJ0dWFsU3RhcnRWYWx8fDB9LHNldCBfcGh5c2ljYWxTdGFydCh0KXsodCU9dGhpcy5fcGh5c2ljYWxDb3VudCk8MCYmKHQ9dGhpcy5fcGh5c2ljYWxDb3VudCt0KSx0aGlzLl9waHlzaWNhbFN0YXJ0VmFsPXR9LGdldCBfcGh5c2ljYWxTdGFydCgpe3JldHVybiB0aGlzLl9waHlzaWNhbFN0YXJ0VmFsfHwwfSxnZXQgX3BoeXNpY2FsRW5kKCl7cmV0dXJuKHRoaXMuX3BoeXNpY2FsU3RhcnQrdGhpcy5fcGh5c2ljYWxDb3VudC0xKSV0aGlzLl9waHlzaWNhbENvdW50fSxzZXQgX3BoeXNpY2FsQ291bnQodCl7dGhpcy5fcGh5c2ljYWxDb3VudFZhbD10fSxnZXQgX3BoeXNpY2FsQ291bnQoKXtyZXR1cm4gdGhpcy5fcGh5c2ljYWxDb3VudFZhbHx8MH0sZ2V0IF9vcHRQaHlzaWNhbFNpemUoKXtyZXR1cm4gMD09PXRoaXMuX3ZpZXdwb3J0SGVpZ2h0PzEvMDp0aGlzLl92aWV3cG9ydEhlaWdodCp0aGlzLl9tYXhQYWdlc30sZ2V0IF9pc1Zpc2libGUoKXtyZXR1cm4gQm9vbGVhbih0aGlzLm9mZnNldFdpZHRofHx0aGlzLm9mZnNldEhlaWdodCl9LGdldCBmaXJzdFZpc2libGVJbmRleCgpe2xldCB0PXRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsO2lmKG51bGw9PXQpe2xldCBlPXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldDt0PXRoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24odCxuKXtpZihlKz10aGlzLl9waHlzaWNhbFNpemVzW3RdLGU+dGhpcy5fc2Nyb2xsUG9zaXRpb24pcmV0dXJuIG59KSl8fDAsdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9dH1yZXR1cm4gdH0sZ2V0IGxhc3RWaXNpYmxlSW5kZXgoKXtsZXQgdD10aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsO2lmKG51bGw9PXQpe2xldCBlPXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldDt0aGlzLl9pdGVyYXRlSXRlbXMoKGZ1bmN0aW9uKG4saSl7ZTx0aGlzLl9zY3JvbGxCb3R0b20mJih0PWkpLGUrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbbl19KSksdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD10fXJldHVybiB0fSxnZXQgX3Njcm9sbE9mZnNldCgpe3JldHVybiB0aGlzLl9zY3JvbGxlclBhZGRpbmdUb3B9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLHRoaXMuX3JlbmRlcixfdCksdGhpcy5saXN0ZW4odGhpcywiaXJvbi1yZXNpemUiLCJfcmVzaXplSGFuZGxlciIpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMudW5saXN0ZW4odGhpcywiaXJvbi1yZXNpemUiLCJfcmVzaXplSGFuZGxlciIpfSx1cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXM6ZnVuY3Rpb24oKXtjb25zdCB0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpO3RoaXMuX3Njcm9sbGVyUGFkZGluZ1RvcD10aGlzLnNjcm9sbFRhcmdldD09PXRoaXM/MDpwYXJzZUludCh0WyJwYWRkaW5nLXRvcCJdLDEwKSx0aGlzLl9pc1JUTD1Cb29sZWFuKCJydGwiPT09dC5kaXJlY3Rpb24pLHRoaXMuX3ZpZXdwb3J0V2lkdGg9dGhpcy4kLml0ZW1zLm9mZnNldFdpZHRoLHRoaXMuX3ZpZXdwb3J0SGVpZ2h0PXRoaXMuX3Njcm9sbFRhcmdldEhlaWdodH0sX3Njcm9sbEhhbmRsZXI6ZnVuY3Rpb24oKXtjb25zdCB0PU1hdGgubWF4KDAsTWF0aC5taW4odGhpcy5fbWF4U2Nyb2xsVG9wLHRoaXMuX3Njcm9sbFRvcCkpO2xldCBlPXQtdGhpcy5fc2Nyb2xsUG9zaXRpb247Y29uc3Qgbj1lPj0wO2lmKHRoaXMuX3Njcm9sbFBvc2l0aW9uPXQsdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPW51bGwsTWF0aC5hYnMoZSk+dGhpcy5fcGh5c2ljYWxTaXplJiZ0aGlzLl9waHlzaWNhbFNpemU+MCl7ZS09dGhpcy5fc2Nyb2xsT2Zmc2V0O2NvbnN0IHQ9TWF0aC5yb3VuZChlL3RoaXMuX3BoeXNpY2FsQXZlcmFnZSk7dGhpcy5fdmlydHVhbFN0YXJ0PXRoaXMuX3ZpcnR1YWxTdGFydCt0LHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCt0LHRoaXMuX3BoeXNpY2FsVG9wPU1hdGguZmxvb3IodGhpcy5fdmlydHVhbFN0YXJ0KSp0aGlzLl9waHlzaWNhbEF2ZXJhZ2UsdGhpcy5fdXBkYXRlKCl9ZWxzZSBpZih0aGlzLl9waHlzaWNhbENvdW50PjApe2NvbnN0e3BoeXNpY2FsVG9wOnQsaW5kZXhlczplfT10aGlzLl9nZXRSZXVzYWJsZXMobik7bj8odGhpcy5fcGh5c2ljYWxUb3A9dCx0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0K2UubGVuZ3RoLHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCtlLmxlbmd0aCk6KHRoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQtZS5sZW5ndGgsdGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0LWUubGVuZ3RoKSx0aGlzLl91cGRhdGUoZSxuP251bGw6ZSksdGhpcy5fZGVib3VuY2UoIl9pbmNyZWFzZVBvb2xJZk5lZWRlZCIsdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQuYmluZCh0aGlzLDApLHZ0KX19LF9nZXRSZXVzYWJsZXM6ZnVuY3Rpb24odCl7bGV0IGUsbixpO2NvbnN0IHI9W10sbz10aGlzLl9oaWRkZW5Db250ZW50U2l6ZSp0aGlzLl9yYXRpbyxhPXRoaXMuX3ZpcnR1YWxTdGFydCxzPXRoaXMuX3ZpcnR1YWxFbmQsbD10aGlzLl9waHlzaWNhbENvdW50O2xldCBjPXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldDtjb25zdCB1PXRoaXMuX3Njcm9sbFRvcCxoPXRoaXMuX3Njcm9sbEJvdHRvbTtmb3IodD8oZT10aGlzLl9waHlzaWNhbFN0YXJ0LG49dS1jKTooZT10aGlzLl9waHlzaWNhbEVuZCxuPXRoaXMuX3BoeXNpY2FsQm90dG9tK3RoaXMuX3Njcm9sbE9mZnNldC1oKTtpPXRoaXMuX3BoeXNpY2FsU2l6ZXNbZV0sbi09aSwhKHIubGVuZ3RoPj1sfHxuPD1vKTspaWYodCl7aWYocytyLmxlbmd0aCsxPj10aGlzLl92aXJ0dWFsQ291bnQpYnJlYWs7aWYoYytpPj11LXRoaXMuX3Njcm9sbE9mZnNldClicmVhaztyLnB1c2goZSksYys9aSxlPShlKzEpJWx9ZWxzZXtpZihhLXIubGVuZ3RoPD0wKWJyZWFrO2lmKGMrdGhpcy5fcGh5c2ljYWxTaXplLWk8PWgpYnJlYWs7ci5wdXNoKGUpLGMtPWksZT0wPT09ZT9sLTE6ZS0xfXJldHVybntpbmRleGVzOnIscGh5c2ljYWxUb3A6Yy10aGlzLl9zY3JvbGxPZmZzZXR9fSxfdXBkYXRlOmZ1bmN0aW9uKHQsZSl7aWYoISh0JiYwPT09dC5sZW5ndGh8fDA9PT10aGlzLl9waHlzaWNhbENvdW50KSl7aWYodGhpcy5fYXNzaWduTW9kZWxzKHQpLHRoaXMuX3VwZGF0ZU1ldHJpY3ModCksZSlmb3IoO2UubGVuZ3RoOyl7Y29uc3QgdD1lLnBvcCgpO3RoaXMuX3BoeXNpY2FsVG9wLT10aGlzLl9waHlzaWNhbFNpemVzW3RdfXRoaXMuX3Bvc2l0aW9uSXRlbXMoKSx0aGlzLl91cGRhdGVTY3JvbGxlclNpemUoKX19LF9pc0NsaWVudEZ1bGw6ZnVuY3Rpb24oKXtyZXR1cm4gMCE9dGhpcy5fc2Nyb2xsQm90dG9tJiZ0aGlzLl9waHlzaWNhbEJvdHRvbS0xPj10aGlzLl9zY3JvbGxCb3R0b20mJnRoaXMuX3BoeXNpY2FsVG9wPD10aGlzLl9zY3JvbGxQb3NpdGlvbn0sX2luY3JlYXNlUG9vbElmTmVlZGVkOmZ1bmN0aW9uKHQpe2NvbnN0IGU9dGhpcy5fY2xhbXAodGhpcy5fcGh5c2ljYWxDb3VudCt0LDMsdGhpcy5fdmlydHVhbENvdW50LXRoaXMuX3ZpcnR1YWxTdGFydCktdGhpcy5fcGh5c2ljYWxDb3VudDtsZXQgbj1NYXRoLnJvdW5kKC41KnRoaXMuX3BoeXNpY2FsQ291bnQpO2lmKCEoZTwwKSl7aWYoZT4wKXtjb25zdCB0PXdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTtbXS5wdXNoLmFwcGx5KHRoaXMuX3BoeXNpY2FsSXRlbXMsdGhpcy5fY3JlYXRlUG9vbChlKSk7Zm9yKGxldCB0PTA7dDxlO3QrKyl0aGlzLl9waHlzaWNhbFNpemVzLnB1c2goMCk7dGhpcy5fcGh5c2ljYWxDb3VudD10aGlzLl9waHlzaWNhbENvdW50K2UsdGhpcy5fcGh5c2ljYWxTdGFydD50aGlzLl9waHlzaWNhbEVuZCYmdGhpcy5faXNJbmRleFJlbmRlcmVkKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgpJiZ0aGlzLl9nZXRQaHlzaWNhbEluZGV4KHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgpPHRoaXMuX3BoeXNpY2FsRW5kJiYodGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0K2UpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX3RlbXBsYXRlQ29zdD0od2luZG93LnBlcmZvcm1hbmNlLm5vdygpLXQpL2Usbj1NYXRoLnJvdW5kKC41KnRoaXMuX3BoeXNpY2FsQ291bnQpfXRoaXMuX3ZpcnR1YWxFbmQ+PXRoaXMuX3ZpcnR1YWxDb3VudC0xfHwwPT09bnx8KHRoaXMuX2lzQ2xpZW50RnVsbCgpP3RoaXMuX3BoeXNpY2FsU2l6ZTx0aGlzLl9vcHRQaHlzaWNhbFNpemUmJnRoaXMuX2RlYm91bmNlKCJfaW5jcmVhc2VQb29sSWZOZWVkZWQiLHRoaXMuX2luY3JlYXNlUG9vbElmTmVlZGVkLmJpbmQodGhpcyx0aGlzLl9jbGFtcChNYXRoLnJvdW5kKDUwL3RoaXMuX3RlbXBsYXRlQ29zdCksMSxuKSkseXQpOnRoaXMuX2RlYm91bmNlKCJfaW5jcmVhc2VQb29sSWZOZWVkZWQiLHRoaXMuX2luY3JlYXNlUG9vbElmTmVlZGVkLmJpbmQodGhpcyxuKSx2dCkpfX0sX3JlbmRlcjpmdW5jdGlvbigpe2lmKHRoaXMuaXNBdHRhY2hlZCYmdGhpcy5faXNWaXNpYmxlKWlmKDAhPT10aGlzLl9waHlzaWNhbENvdW50KXtjb25zdHtwaHlzaWNhbFRvcDp0LGluZGV4ZXM6ZX09dGhpcy5fZ2V0UmV1c2FibGVzKCEwKTt0aGlzLl9waHlzaWNhbFRvcD10LHRoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQrZS5sZW5ndGgsdGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0K2UubGVuZ3RoLHRoaXMuX3VwZGF0ZShlKSx0aGlzLl91cGRhdGUoKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKX1lbHNlIHRoaXMuX3ZpcnR1YWxDb3VudD4wJiYodGhpcy51cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXMoKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgzKSl9LF9pdGVtc0NoYW5nZWQ6ZnVuY3Rpb24odCl7Iml0ZW1zIj09PXQucGF0aCYmKHRoaXMuX3ZpcnR1YWxTdGFydD0wLHRoaXMuX3BoeXNpY2FsVG9wPTAsdGhpcy5fdmlydHVhbENvdW50PXRoaXMuaXRlbXM/dGhpcy5pdGVtcy5sZW5ndGg6MCx0aGlzLl9waHlzaWNhbEluZGV4Rm9yS2V5PXt9LHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX3BoeXNpY2FsQ291bnQ9dGhpcy5fcGh5c2ljYWxDb3VudHx8MCx0aGlzLl9waHlzaWNhbEl0ZW1zPXRoaXMuX3BoeXNpY2FsSXRlbXN8fFtdLHRoaXMuX3BoeXNpY2FsU2l6ZXM9dGhpcy5fcGh5c2ljYWxTaXplc3x8W10sdGhpcy5fcGh5c2ljYWxTdGFydD0wLHRoaXMuX3Njcm9sbFRvcD50aGlzLl9zY3JvbGxPZmZzZXQmJnRoaXMuX3Jlc2V0U2Nyb2xsUG9zaXRpb24oMCksdGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLHRoaXMuX3JlbmRlcixfdCkpfSxfaXRlcmF0ZUl0ZW1zOmZ1bmN0aW9uKHQsZSl7bGV0IG4saSxyLG87aWYoMj09PWFyZ3VtZW50cy5sZW5ndGgmJmUpe2ZvcihvPTA7bzxlLmxlbmd0aDtvKyspaWYobj1lW29dLGk9dGhpcy5fY29tcHV0ZVZpZHgobiksbnVsbCE9KHI9dC5jYWxsKHRoaXMsbixpKSkpcmV0dXJuIHJ9ZWxzZXtmb3Iobj10aGlzLl9waHlzaWNhbFN0YXJ0LGk9dGhpcy5fdmlydHVhbFN0YXJ0O248dGhpcy5fcGh5c2ljYWxDb3VudDtuKyssaSsrKWlmKG51bGwhPShyPXQuY2FsbCh0aGlzLG4saSkpKXJldHVybiByO2ZvcihuPTA7bjx0aGlzLl9waHlzaWNhbFN0YXJ0O24rKyxpKyspaWYobnVsbCE9KHI9dC5jYWxsKHRoaXMsbixpKSkpcmV0dXJuIHJ9fSxfY29tcHV0ZVZpZHg6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PXRoaXMuX3BoeXNpY2FsU3RhcnQ/dGhpcy5fdmlydHVhbFN0YXJ0Kyh0LXRoaXMuX3BoeXNpY2FsU3RhcnQpOnRoaXMuX3ZpcnR1YWxTdGFydCsodGhpcy5fcGh5c2ljYWxDb3VudC10aGlzLl9waHlzaWNhbFN0YXJ0KSt0fSxfdXBkYXRlTWV0cmljczpmdW5jdGlvbih0KXtpZighdGhpcy5faXNWaXNpYmxlKXJldHVybjtEaSgpO2xldCBlPTAsbj0wO2NvbnN0IGk9dGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQscj10aGlzLl9waHlzaWNhbEF2ZXJhZ2U7dGhpcy5faXRlcmF0ZUl0ZW1zKChmdW5jdGlvbih0KXtuKz10aGlzLl9waHlzaWNhbFNpemVzW3RdLHRoaXMuX3BoeXNpY2FsU2l6ZXNbdF09dGhpcy5fcGh5c2ljYWxJdGVtc1t0XS5vZmZzZXRIZWlnaHQsZSs9dGhpcy5fcGh5c2ljYWxTaXplc1t0XSx0aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudCs9dGhpcy5fcGh5c2ljYWxTaXplc1t0XT8xOjB9KSx0KSx0aGlzLl9waHlzaWNhbFNpemU9dGhpcy5fcGh5c2ljYWxTaXplK2Utbix0aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudCE9PWkmJih0aGlzLl9waHlzaWNhbEF2ZXJhZ2U9TWF0aC5yb3VuZCgocippK2UpL3RoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50KSl9LF9wb3NpdGlvbkl0ZW1zOmZ1bmN0aW9uKCl7dGhpcy5fYWRqdXN0U2Nyb2xsUG9zaXRpb24oKTtsZXQgdD10aGlzLl9waHlzaWNhbFRvcDt0aGlzLl9pdGVyYXRlSXRlbXMoKGZ1bmN0aW9uKGUpe3RoaXMudHJhbnNsYXRlM2QoMCx0KyJweCIsMCx0aGlzLl9waHlzaWNhbEl0ZW1zW2VdKSx0Kz10aGlzLl9waHlzaWNhbFNpemVzW2VdfSkpfSxfYWRqdXN0U2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24oKXtjb25zdCB0PTA9PT10aGlzLl92aXJ0dWFsU3RhcnQ/dGhpcy5fcGh5c2ljYWxUb3A6TWF0aC5taW4odGhpcy5fc2Nyb2xsUG9zaXRpb24rdGhpcy5fcGh5c2ljYWxUb3AsMCk7aWYoMCE9PXQpe3RoaXMuX3BoeXNpY2FsVG9wPXRoaXMuX3BoeXNpY2FsVG9wLXQ7Y29uc3QgZT10aGlzLl9zY3JvbGxUb3A7IUEkdCYmZT4wJiZ0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKGUtdCl9fSxfcmVzZXRTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbih0KXt0aGlzLnNjcm9sbFRhcmdldCYmdD49MCYmKHRoaXMuX3Njcm9sbFRvcD10LHRoaXMuX3Njcm9sbFBvc2l0aW9uPXRoaXMuX3Njcm9sbFRvcCl9LF91cGRhdGVTY3JvbGxlclNpemU6ZnVuY3Rpb24odCl7dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0PXRoaXMuX3BoeXNpY2FsQm90dG9tK01hdGgubWF4KHRoaXMuX3ZpcnR1YWxDb3VudC10aGlzLl9waHlzaWNhbENvdW50LXRoaXMuX3ZpcnR1YWxTdGFydCwwKSp0aGlzLl9waHlzaWNhbEF2ZXJhZ2UsKCh0PSh0PXR8fDA9PT10aGlzLl9zY3JvbGxIZWlnaHQpfHx0aGlzLl9zY3JvbGxQb3NpdGlvbj49dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0LXRoaXMuX3BoeXNpY2FsU2l6ZSl8fE1hdGguYWJzKHRoaXMuX2VzdFNjcm9sbEhlaWdodC10aGlzLl9zY3JvbGxIZWlnaHQpPj10aGlzLl92aWV3cG9ydEhlaWdodCkmJih0aGlzLiQuaXRlbXMuc3R5bGUuaGVpZ2h0PXRoaXMuX2VzdFNjcm9sbEhlaWdodCsicHgiLHRoaXMuX3Njcm9sbEhlaWdodD10aGlzLl9lc3RTY3JvbGxIZWlnaHQpfSxzY3JvbGxUb0luZGV4OmZ1bmN0aW9uKHQpe2lmKCJudW1iZXIiIT10eXBlb2YgdHx8dDwwfHx0PnRoaXMuaXRlbXMubGVuZ3RoLTEpcmV0dXJuO2lmKERpKCksMD09PXRoaXMuX3BoeXNpY2FsQ291bnQpcmV0dXJuO3Q9dGhpcy5fY2xhbXAodCwwLHRoaXMuX3ZpcnR1YWxDb3VudC0xKSwoIXRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0KXx8dD49dGhpcy5fbWF4VmlydHVhbFN0YXJ0KSYmKHRoaXMuX3ZpcnR1YWxTdGFydD10LTEpLHRoaXMuX2Fzc2lnbk1vZGVscygpLHRoaXMuX3VwZGF0ZU1ldHJpY3MoKSx0aGlzLl9waHlzaWNhbFRvcD1NYXRoLmZsb29yKHRoaXMuX3ZpcnR1YWxTdGFydCkqdGhpcy5fcGh5c2ljYWxBdmVyYWdlO2xldCBlPXRoaXMuX3BoeXNpY2FsU3RhcnQsbj10aGlzLl92aXJ0dWFsU3RhcnQsaT0wO2NvbnN0IHI9dGhpcy5faGlkZGVuQ29udGVudFNpemU7Zm9yKDtuPHQmJmk8PXI7KWkrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbZV0sZT0oZSsxKSV0aGlzLl9waHlzaWNhbENvdW50LG4rKzt0aGlzLl91cGRhdGVTY3JvbGxlclNpemUoITApLHRoaXMuX3Bvc2l0aW9uSXRlbXMoKSx0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKHRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldCtpKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKSx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbH0sX3Jlc2V0QXZlcmFnZTpmdW5jdGlvbigpe3RoaXMuX3BoeXNpY2FsQXZlcmFnZT0wLHRoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50PTB9LF9yZXNpemVIYW5kbGVyOmZ1bmN0aW9uKCl7dGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLChmdW5jdGlvbigpe3RoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMudXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzKCksdGhpcy5faXNWaXNpYmxlPyh0aGlzLnRvZ2dsZVNjcm9sbExpc3RlbmVyKCEwKSx0aGlzLl9yZXNldEF2ZXJhZ2UoKSx0aGlzLl9yZW5kZXIoKSk6dGhpcy50b2dnbGVTY3JvbGxMaXN0ZW5lcighMSl9KSxfdCl9LF9pc0luZGV4UmVuZGVyZWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PXRoaXMuX3ZpcnR1YWxTdGFydCYmdDw9dGhpcy5fdmlydHVhbEVuZH0sX2dldFBoeXNpY2FsSW5kZXg6ZnVuY3Rpb24odCl7cmV0dXJuKHRoaXMuX3BoeXNpY2FsU3RhcnQrKHQtdGhpcy5fdmlydHVhbFN0YXJ0KSkldGhpcy5fcGh5c2ljYWxDb3VudH0sX2NsYW1wOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTWF0aC5taW4obixNYXRoLm1heChlLHQpKX0sX2RlYm91bmNlOmZ1bmN0aW9uKHQsZSxuKXt0aGlzLl9kZWJvdW5jZXJzPXRoaXMuX2RlYm91bmNlcnN8fHt9LHRoaXMuX2RlYm91bmNlcnNbdF09VG4uZGVib3VuY2UodGhpcy5fZGVib3VuY2Vyc1t0XSxuLGUuYmluZCh0aGlzKSksQW4odGhpcy5fZGVib3VuY2Vyc1t0XSl9fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovCmNsYXNzIEwkdCBleHRlbmRzIGskdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57c2l6ZTp7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSxfdmlkeE9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MH19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfZWZmZWN0aXZlU2l6ZUNoYW5nZWQoX2VmZmVjdGl2ZVNpemUpIl19Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX3Njcm9sbEhhbmRsZXIoKX1fdXBkYXRlU2Nyb2xsZXJJdGVtKCl7fV9hZnRlclNjcm9sbCgpe31fZ2V0Um93VGFyZ2V0KCl7fV9jcmVhdGVTY3JvbGxlclJvd3MoKXt9X2NhblBvcHVsYXRlKCl7fXNjcm9sbFRvSW5kZXgodCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3MoInNjcm9sbFRvSW5kZXgiKSx0aGlzLl9zY3JvbGxpbmdUb0luZGV4PSEwLHQ9TWF0aC5taW4oTWF0aC5tYXgodCwwKSx0aGlzLl9lZmZlY3RpdmVTaXplLTEpLHRoaXMuJC50YWJsZS5zY3JvbGxUb3A9dC90aGlzLl9lZmZlY3RpdmVTaXplKih0aGlzLiQudGFibGUuc2Nyb2xsSGVpZ2h0LXRoaXMuJC50YWJsZS5vZmZzZXRIZWlnaHQpLHRoaXMuX3Njcm9sbEhhbmRsZXIoKSx0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKCk9PnRoaXMuX21heFNjcm9sbFRvcCkpJiZ0aGlzLl92aXJ0dWFsQ291bnQ8dGhpcy5fZWZmZWN0aXZlU2l6ZSYmdGhpcy5fYWRqdXN0VmlydHVhbEluZGV4T2Zmc2V0KDFlNiksdGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCgpPT5zdXBlci5zY3JvbGxUb0luZGV4KHQtdGhpcy5fdmlkeE9mZnNldCkpKSx0aGlzLl9zY3JvbGxIYW5kbGVyKCk7Y29uc3QgZT1BcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKChlPT5lLmluZGV4PT09dCkpWzBdO2lmKGUpe2NvbnN0IHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AtdGhpcy4kLmhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b207TWF0aC5hYnModCk+MSYmKHRoaXMuJC50YWJsZS5zY3JvbGxUb3ArPXQsdGhpcy5fc2Nyb2xsSGFuZGxlcigpKX10aGlzLl9zY3JvbGxpbmdUb0luZGV4PSExfV9lZmZlY3RpdmVTaXplQ2hhbmdlZCh0KXtsZXQgZSxuPTA7dGhpcy5faXRlcmF0ZUl0ZW1zKCgodCxpKT0+e2lmKGk9PT10aGlzLl9maXJzdFZpc2libGVJbmRleCl7Y29uc3QgaT10aGlzLl9waHlzaWNhbEl0ZW1zW3RdO2U9aS5pbmRleCxuPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wfX0pKSx0aGlzLml0ZW1zJiZ0PHRoaXMuaXRlbXMubGVuZ3RoJiYodGhpcy5fc2Nyb2xsVG9wPTApLEFycmF5LmlzQXJyYXkodGhpcy5pdGVtcyl8fCh0aGlzLml0ZW1zPXtsZW5ndGg6TWF0aC5taW4odCwxZTUpfSksdGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCgpPT5zdXBlci5faXRlbXNDaGFuZ2VkKHtwYXRoOiJpdGVtcyJ9KSkpLHRoaXMuX3ZpcnR1YWxDb3VudD1NYXRoLm1pbih0aGlzLml0ZW1zLmxlbmd0aCx0KXx8MCwwPT09dGhpcy5fc2Nyb2xsVG9wJiYodGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCgpPT50aGlzLl9zY3JvbGxUb0luZGV4KE1hdGgubWluKHQtMSxlKSkpKSx0aGlzLl9pdGVyYXRlSXRlbXMoKHQ9Pntjb25zdCBpPXRoaXMuX3BoeXNpY2FsSXRlbXNbdF07aWYoaS5pbmRleD09PWUmJih0aGlzLiQudGFibGUuc2Nyb2xsVG9wKz1NYXRoLnJvdW5kKGkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLW4pKSxpLmluZGV4PT09dGhpcy5fZm9jdXNlZEl0ZW1JbmRleCYmdGhpcy5faXRlbXNGb2N1c2FibGUmJnRoaXMuJC5pdGVtcy5jb250YWlucyh0aGlzLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCkpe2NvbnN0IHQ9QXJyYXkuZnJvbSh0aGlzLl9pdGVtc0ZvY3VzYWJsZS5wYXJlbnRFbGVtZW50LmNoaWxkcmVuKS5pbmRleE9mKHRoaXMuX2l0ZW1zRm9jdXNhYmxlKTtpLmNoaWxkcmVuW3RdLmZvY3VzKCl9fSkpKSx0aGlzLl9hc3NpZ25Nb2RlbHMoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLl91cGRhdGUoKSkpLHRoaXMuX191cGRhdGVGb290ZXJQb3NpdGlvbmluZygpfV9wb3NpdGlvbkl0ZW1zKCl7bGV0IHQ7dGhpcy5fYWRqdXN0U2Nyb2xsUG9zaXRpb24oKSxpc05hTih0aGlzLl9waHlzaWNhbFRvcCkmJih0PSEwLHRoaXMuX3BoeXNpY2FsVG9wPTApO2xldCBlPXRoaXMuX3BoeXNpY2FsVG9wO3RoaXMuX2l0ZXJhdGVJdGVtcygodD0+e3RoaXMuX3BoeXNpY2FsSXRlbXNbdF0uc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVZKCR7ZX1weClgLGUrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbdF19KSksdCYmdGhpcy5fc2Nyb2xsVG9JbmRleCgwKX1faW5jcmVhc2VQb29sSWZOZWVkZWQodCl7MD09PXQmJnRoaXMuX3Njcm9sbGluZ1RvSW5kZXh8fCF0aGlzLl9jYW5Qb3B1bGF0ZSgpfHwhdGhpcy5fZWZmZWN0aXZlU2l6ZXx8KHRoaXMuX2luaXRpYWxQb29sQ3JlYXRlZD90aGlzLl9vcHRQaHlzaWNhbFNpemUhPT0xLzAmJih0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbD1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbCxfdCwoKCk9Pnt0aGlzLl91cGRhdGVNZXRyaWNzKCk7bGV0IHQ9TWF0aC5jZWlsKCh0aGlzLl9vcHRQaHlzaWNhbFNpemUtdGhpcy5fcGh5c2ljYWxTaXplKS90aGlzLl9waHlzaWNhbEF2ZXJhZ2UpO3RoaXMuX3BoeXNpY2FsQ291bnQrdD50aGlzLl9lZmZlY3RpdmVTaXplJiYodD1NYXRoLm1heCgwLHRoaXMuX2VmZmVjdGl2ZVNpemUtdGhpcy5fcGh5c2ljYWxDb3VudCkpLHRoaXMuX3BoeXNpY2FsU2l6ZSYmdD4wJiZ0aGlzLl9vcHRQaHlzaWNhbFNpemUhPT0xLzAmJihzdXBlci5faW5jcmVhc2VQb29sSWZOZWVkZWQodCksdGhpcy5fX3Jlb3JkZXJDaGlsZE5vZGVzKCkpfSkpKToodGhpcy5faW5pdGlhbFBvb2xDcmVhdGVkPSEwLHN1cGVyLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgyNSkpKX1fX3Jlb3JkZXJDaGlsZE5vZGVzKCl7Y29uc3QgdD1BcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZE5vZGVzKTt0LnJlZHVjZSgoKHQsZSxuLGkpPT57aWYoMD09PW58fGlbbi0xXS5pbmRleD09PWUuaW5kZXgtMSlyZXR1cm4gdH0pLCEwKXx8dC5zb3J0KCgodCxlKT0+dC5pbmRleC1lLmluZGV4KSkuZm9yRWFjaCgodD0+dGhpcy4kLml0ZW1zLmFwcGVuZENoaWxkKHQpKSl9X2NyZWF0ZVBvb2wodCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksbj10aGlzLl9jcmVhdGVTY3JvbGxlclJvd3ModCk7bi5mb3JFYWNoKCh0PT5lLmFwcGVuZENoaWxkKHQpKSksdGhpcy5fZ2V0Um93VGFyZ2V0KCkuYXBwZW5kQ2hpbGQoZSk7Y29uc3QgaT10aGlzLnF1ZXJ5U2VsZWN0b3IoIltzbG90XSIpO2lmKGkpe2NvbnN0IHQ9aS5nZXRBdHRyaWJ1dGUoInNsb3QiKTtpLnNldEF0dHJpYnV0ZSgic2xvdCIsImZvby1iYXIiKSxpLnNldEF0dHJpYnV0ZSgic2xvdCIsdCl9cmV0dXJuIExpKHRoaXMsKCgpPT50aGlzLm5vdGlmeVJlc2l6ZSgpKSksbn1fYXNzaWduTW9kZWxzKHQpe3RoaXMuX2l0ZXJhdGVJdGVtcygoKHQsZSk9Pntjb25zdCBuPXRoaXMuX3BoeXNpY2FsSXRlbXNbdF07dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJoaWRkZW4iLGU+PXRoaXMuX2VmZmVjdGl2ZVNpemUsbiksdGhpcy5fdXBkYXRlU2Nyb2xsZXJJdGVtKG4sZSsodGhpcy5fdmlkeE9mZnNldHx8MCkpfSksdCl9X3Njcm9sbEhhbmRsZXIoKXtjb25zdCB0PXRoaXMuJC50YWJsZS5zY3JvbGxUb3AtdGhpcy5fc2Nyb2xsUG9zaXRpb247dGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoc3VwZXIuX3Njcm9sbEhhbmRsZXIpO2NvbnN0IGU9dGhpcy5fdmlkeE9mZnNldDt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKCk9PnRoaXMuX21heFNjcm9sbFRvcCkpJiZ0aGlzLl92aXJ0dWFsQ291bnQ8dGhpcy5fZWZmZWN0aXZlU2l6ZT90aGlzLl9hZGp1c3RWaXJ0dWFsSW5kZXhPZmZzZXQodCk6dGhpcy5fdmlkeE9mZnNldD0wLHRoaXMuX3ZpZHhPZmZzZXQhPT1lJiZ0aGlzLl91cGRhdGUoKSx0aGlzLl9hZnRlclNjcm9sbCgpfV9hZGp1c3RWaXJ0dWFsSW5kZXhPZmZzZXQodCl7aWYoTWF0aC5hYnModCk+MWU0KXtpZih0aGlzLl9ub1NjYWxlKXJldHVybiB2b2lkKHRoaXMuX25vU2NhbGU9ITEpO2NvbnN0IHQ9dGhpcy4kLnRhYmxlLnNjcm9sbFRvcC8odGhpcy4kLnRhYmxlLnNjcm9sbEhlaWdodC10aGlzLiQudGFibGUub2Zmc2V0SGVpZ2h0KTt0aGlzLl92aWR4T2Zmc2V0PU1hdGgucm91bmQodCp0aGlzLl9lZmZlY3RpdmVTaXplLXQqdGhpcy5fdmlydHVhbENvdW50KX1lbHNle2NvbnN0IHQ9dGhpcy5fdmlkeE9mZnNldHx8MCxlPTFlMyxuPTEwMDswPT09dGhpcy5fc2Nyb2xsVG9wPyh0aGlzLl92aWR4T2Zmc2V0PTAsdCE9PXRoaXMuX3ZpZHhPZmZzZXQmJnN1cGVyLnNjcm9sbFRvSW5kZXgoMCkpOnRoaXMuZmlyc3RWaXNpYmxlSW5kZXg8ZSYmdGhpcy5fdmlkeE9mZnNldD4wJiYodGhpcy5fdmlkeE9mZnNldC09TWF0aC5taW4odGhpcy5fdmlkeE9mZnNldCxuKSx0IT09dGhpcy5fdmlkeE9mZnNldCYmc3VwZXIuc2Nyb2xsVG9JbmRleCh0aGlzLmZpcnN0VmlzaWJsZUluZGV4Kyh0LXRoaXMuX3ZpZHhPZmZzZXQpKSx0aGlzLl9ub1NjYWxlPSEwKTtjb25zdCBpPXRoaXMuX2VmZmVjdGl2ZVNpemUtdGhpcy5fdmlydHVhbENvdW50O3RoaXMuX3Njcm9sbFRvcD49dGhpcy5fbWF4U2Nyb2xsVG9wJiZ0aGlzLl9tYXhTY3JvbGxUb3A+MD8odGhpcy5fdmlkeE9mZnNldD1pLHQhPT10aGlzLl92aWR4T2Zmc2V0JiZzdXBlci5zY3JvbGxUb0luZGV4KHRoaXMuX3ZpcnR1YWxDb3VudCkpOnRoaXMuZmlyc3RWaXNpYmxlSW5kZXg+dGhpcy5fdmlydHVhbENvdW50LWUmJnRoaXMuX3ZpZHhPZmZzZXQ8aSYmKHRoaXMuX3ZpZHhPZmZzZXQrPU1hdGgubWluKGktdGhpcy5fdmlkeE9mZnNldCxuKSx0IT09dGhpcy5fdmlkeE9mZnNldCYmc3VwZXIuc2Nyb2xsVG9JbmRleCh0aGlzLmZpcnN0VmlzaWJsZUluZGV4LSh0aGlzLl92aWR4T2Zmc2V0LXQpKSx0aGlzLl9ub1NjYWxlPSEwKX19X2FjY2Vzc0lyb25MaXN0QVBJKHQpe3RoaXMuX3dhcm5Qcml2YXRlQVBJQWNjZXNzQXN5bmNFbmFibGVkPSExO2NvbnN0IGU9dC5hcHBseSh0aGlzKTtyZXR1cm4gdGhpcy5fZGVib3VuY2VyV2FyblByaXZhdGVBUElBY2Nlc3M9VG4uZGVib3VuY2UodGhpcy5fZGVib3VuY2VyV2FyblByaXZhdGVBUElBY2Nlc3MsX3QsKCgpPT50aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2Vzc0FzeW5jRW5hYmxlZD0hMCkpLGV9X2RlYm91bmNlUmVuZGVyKHQsZSl7c3VwZXIuX2RlYm91bmNlUmVuZGVyKCgoKT0+dGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkodCkpLGUpfV93YXJuUHJpdmF0ZUFQSUFjY2Vzcyh0KXt0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2Vzc0FzeW5jRW5hYmxlZCYmY29uc29sZS53YXJuKGBBY2Nlc3NpbmcgcHJpdmF0ZSBBUEkgKCR7dH0pIWApfV9yZW5kZXIoKXt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSShzdXBlci5fcmVuZGVyKX1faXRlbXNDaGFuZ2VkKCl7fWdldCBfZmlyc3RWaXNpYmxlSW5kZXgoKXtyZXR1cm4gdGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCgpPT5zdXBlci5maXJzdFZpc2libGVJbmRleCkpfWdldCBfbGFzdFZpc2libGVJbmRleCgpe3JldHVybiB0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKCk9PnN1cGVyLmxhc3RWaXNpYmxlSW5kZXgpKX1fc2Nyb2xsVG9JbmRleCh0KXt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKCk9PnRoaXMuc2Nyb2xsVG9JbmRleCh0KSkpfWdldCBmaXJzdFZpc2libGVJbmRleCgpe3JldHVybiB0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2VzcygiZmlyc3RWaXNpYmxlSW5kZXgiKSxzdXBlci5maXJzdFZpc2libGVJbmRleH1zZXQgZmlyc3RWaXNpYmxlSW5kZXgodCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3MoImZpcnN0VmlzaWJsZUluZGV4Iiksc3VwZXIuZmlyc3RWaXNpYmxlSW5kZXg9dH1nZXQgbGFzdFZpc2libGVJbmRleCgpe3JldHVybiB0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2VzcygibGFzdFZpc2libGVJbmRleCIpLHN1cGVyLmxhc3RWaXNpYmxlSW5kZXh9c2V0IGxhc3RWaXNpYmxlSW5kZXgodCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3MoImxhc3RWaXNpYmxlSW5kZXgiKSxzdXBlci5sYXN0VmlzaWJsZUluZGV4PXR9dXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzKCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3MoInVwZGF0ZVZpZXdwb3J0Qm91bmRhcmllcyIpLHN1cGVyLnVwZGF0ZVZpZXdwb3J0Qm91bmRhcmllcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9X3Jlc2l6ZUhhbmRsZXIoKXtzdXBlci5fcmVzaXplSGFuZGxlcigpLERpKCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqL2NvbnN0IFAkdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9hMTF5VXBkYXRlR3JpZFNpemUoc2l6ZSwgX2NvbHVtblRyZWUsIF9jb2x1bW5UcmVlLiopIl19X2ExMXlHZXRIZWFkZXJSb3dDb3VudCh0KXtyZXR1cm4gdC5maWx0ZXIoKHQ9PnQuc29tZSgodD0+dC5faGVhZGVyVGVtcGxhdGV8fHQuaGVhZGVyUmVuZGVyZXJ8fHQucGF0aHx8dC5oZWFkZXIpKSkpLmxlbmd0aH1fYTExeUdldEZvb3RlclJvd0NvdW50KHQpe3JldHVybiB0LmZpbHRlcigodD0+dC5zb21lKCh0PT50Ll9oZWFkZXJUZW1wbGF0ZXx8dC5oZWFkZXJSZW5kZXJlcikpKSkubGVuZ3RofV9hMTF5VXBkYXRlR3JpZFNpemUodCxlKXtpZih2b2lkIDA9PT10fHx2b2lkIDA9PT1lKXJldHVybjtjb25zdCBuPWVbZS5sZW5ndGgtMV07dGhpcy4kLnRhYmxlLnNldEF0dHJpYnV0ZSgiYXJpYS1yb3djb3VudCIsdCt0aGlzLl9hMTF5R2V0SGVhZGVyUm93Q291bnQoZSkrdGhpcy5fYTExeUdldEZvb3RlclJvd0NvdW50KGUpKSx0aGlzLiQudGFibGUuc2V0QXR0cmlidXRlKCJhcmlhLWNvbGNvdW50IixuJiZuLmxlbmd0aHx8MCksdGhpcy5fYTExeVVwZGF0ZUhlYWRlclJvd3MoKSx0aGlzLl9hMTF5VXBkYXRlRm9vdGVyUm93cygpfV9hMTF5VXBkYXRlSGVhZGVyUm93cygpe0FycmF5LmZyb20odGhpcy4kLmhlYWRlci5jaGlsZHJlbikuZm9yRWFjaCgoKHQsZSk9PnQuc2V0QXR0cmlidXRlKCJhcmlhLXJvd2luZGV4IixlKzEpKSl9X2ExMXlVcGRhdGVGb290ZXJSb3dzKCl7QXJyYXkuZnJvbSh0aGlzLiQuZm9vdGVyLmNoaWxkcmVuKS5mb3JFYWNoKCgodCxlKT0+dC5zZXRBdHRyaWJ1dGUoImFyaWEtcm93aW5kZXgiLHRoaXMuX2ExMXlHZXRIZWFkZXJSb3dDb3VudCh0aGlzLl9jb2x1bW5UcmVlKSt0aGlzLnNpemUrZSsxKSkpfV9hMTF5VXBkYXRlUm93Um93aW5kZXgodCxlKXt0LnNldEF0dHJpYnV0ZSgiYXJpYS1yb3dpbmRleCIsZSt0aGlzLl9hMTF5R2V0SGVhZGVyUm93Q291bnQodGhpcy5fY29sdW1uVHJlZSkrMSl9X2ExMXlVcGRhdGVSb3dTZWxlY3RlZCh0LGUpe3Quc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixCb29sZWFuKGUpKSxBcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2goKHQ9PnQuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixCb29sZWFuKGUpKSkpfV9hMTF5VXBkYXRlUm93TGV2ZWwodCxlKXt0LnNldEF0dHJpYnV0ZSgiYXJpYS1sZXZlbCIsZSsxKX1fYTExeVVwZGF0ZVJvd0RldGFpbHNPcGVuZWQodCxlKXtBcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2goKHQ9PnsiYm9vbGVhbiI9PXR5cGVvZiBlP3Quc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixlKTp0Lmhhc0F0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIpJiZ0LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIpfSkpfV9hMTF5U2V0Um93RGV0YWlsc0NlbGwodCxlKXtBcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pnt0IT09ZSYmdC5zZXRBdHRyaWJ1dGUoImFyaWEtY29udHJvbHMiLGUuaWQpfSkpfV9hMTF5VXBkYXRlQ2VsbENvbHNwYW4odCxlKXt0LnNldEF0dHJpYnV0ZSgiYXJpYS1jb2xzcGFuIixOdW1iZXIoZSkpfV9hMTF5VXBkYXRlU29ydGVycygpe0FycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsKCJ2YWFkaW4tZ3JpZC1zb3J0ZXIiKSkuZm9yRWFjaCgodD0+e2xldCBlPXQucGFyZW50Tm9kZTtmb3IoO2UmJiJ2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQiIT09ZS5sb2NhbE5hbWU7KWU9ZS5wYXJlbnROb2RlO2UmJmUuYXNzaWduZWRTbG90JiZlLmFzc2lnbmVkU2xvdC5wYXJlbnROb2RlLnNldEF0dHJpYnV0ZSgiYXJpYS1zb3J0Iix7YXNjOiJhc2NlbmRpbmciLGRlc2M6ImRlc2NlbmRpbmcifVtTdHJpbmcodC5kaXJlY3Rpb24pXXx8Im5vbmUiKX0pKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLE4kdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2FjdGl2ZUl0ZW06e3R5cGU6T2JqZWN0LG5vdGlmeTohMCx2YWx1ZTpudWxsfX19cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuJC5zY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fb25DbGljay5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNlbGwtYWN0aXZhdGUiLHRoaXMuX2FjdGl2YXRlSXRlbS5iaW5kKHRoaXMpKX1fYWN0aXZhdGVJdGVtKHQpe2NvbnN0IGU9dC5kZXRhaWwubW9kZWwsbj1lP2UuaXRlbTpudWxsO24mJih0aGlzLmFjdGl2ZUl0ZW09dGhpcy5faXRlbXNFcXVhbCh0aGlzLmFjdGl2ZUl0ZW0sbik/bnVsbDpuKX1fb25DbGljayh0KXtpZih0LmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2NvbnN0IGU9dC5jb21wb3NlZFBhdGgoKSxuPWVbZS5pbmRleE9mKHRoaXMuJC50YWJsZSktM107aWYoIW58fG4uZ2V0QXR0cmlidXRlKCJwYXJ0IikuaW5kZXhPZigiZGV0YWlscy1jZWxsIik+LTEpcmV0dXJuO2NvbnN0IGk9bi5fY29udGVudCxyPXRoaXMuZ2V0Um9vdE5vZGUoKS5hY3RpdmVFbGVtZW50O2kuY29udGFpbnMocil8fHRoaXMuX2lzRm9jdXNhYmxlKHQudGFyZ2V0KXx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2VsbC1hY3RpdmF0ZSIse2RldGFpbDp7bW9kZWw6dGhpcy5fX2dldFJvd01vZGVsKG4ucGFyZW50RWxlbWVudCl9fSkpfV9pc0ZvY3VzYWJsZSh0KXtyZXR1cm4gSSR0KHQpfX0sSSR0PXQ9PntpZighdC5wYXJlbnROb2RlKXJldHVybiExO2NvbnN0IGU9LTEhPT1BcnJheS5mcm9tKHQucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKCJbdGFiaW5kZXhdLCBidXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBvYmplY3QsIGlmcmFtZSwgbGFiZWwsIGFbaHJlZl0sIGFyZWFbaHJlZl0iKSkuZmlsdGVyKCh0PT4iY2VsbCBib2R5LWNlbGwiIT09dC5nZXRBdHRyaWJ1dGUoInBhcnQiKSkpLmluZGV4T2YodCk7cmV0dXJuIXQuZGlzYWJsZWQmJmV9LFIkdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2l0ZW1zOkFycmF5fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2l0ZW1zQ2hhbmdlZChpdGVtcywgaXRlbXMuKiwgaXNBdHRhY2hlZCkiXX1faXRlbXNDaGFuZ2VkKHQsZSxuKXtpZihuKXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gbnVsbD09dCYmKHRoaXMuc2l6ZT0wKSx2b2lkKHRoaXMuZGF0YVByb3ZpZGVyPT09dGhpcy5fYXJyYXlEYXRhUHJvdmlkZXImJih0aGlzLmRhdGFQcm92aWRlcj12b2lkIDApKTt0aGlzLnNpemU9dC5sZW5ndGgsdGhpcy5kYXRhUHJvdmlkZXI9dGhpcy5kYXRhUHJvdmlkZXJ8fHRoaXMuX2FycmF5RGF0YVByb3ZpZGVyLHRoaXMuY2xlYXJDYWNoZSgpLHRoaXMuX2Vuc3VyZUZpcnN0UGFnZUxvYWRlZCgpfX1fYXJyYXlEYXRhUHJvdmlkZXIodCxlKXtsZXQgbj0oQXJyYXkuaXNBcnJheSh0aGlzLml0ZW1zKT90aGlzLml0ZW1zOltdKS5zbGljZSgwKTt0aGlzLl9maWx0ZXJzJiZ0aGlzLl9jaGVja1BhdGhzKHRoaXMuX2ZpbHRlcnMsImZpbHRlcmluZyIsbikmJihuPXRoaXMuX2ZpbHRlcihuKSksdGhpcy5zaXplPW4ubGVuZ3RoLHQuc29ydE9yZGVycy5sZW5ndGgmJnRoaXMuX2NoZWNrUGF0aHModGhpcy5fc29ydGVycywic29ydGluZyIsbikmJihuPW4uc29ydCh0aGlzLl9tdWx0aVNvcnQuYmluZCh0aGlzKSkpO2NvbnN0IGk9dC5wYWdlKnQucGFnZVNpemU7ZShuLnNsaWNlKGksaSt0LnBhZ2VTaXplKSxuLmxlbmd0aCl9X2NoZWNrUGF0aHModCxlLG4pe2lmKCFuLmxlbmd0aClyZXR1cm4hMTtsZXQgaT0hMDtmb3IobGV0IHIgaW4gdCl7Y29uc3Qgbz10W3JdLnBhdGg7aWYoIW98fC0xPT09by5pbmRleE9mKCIuIikpY29udGludWU7Y29uc3QgYT1vLnJlcGxhY2UoL1wuW14uXSokLywiIik7dm9pZCAwPT09Zm8uZ2V0KGEsblswXSkmJihjb25zb2xlLndhcm4oYFBhdGggIiR7b30iIHVzZWQgZm9yICR7ZX0gZG9lcyBub3QgZXhpc3QgaW4gYWxsIG9mIHRoZSBpdGVtcywgJHtlfSBpcyBkaXNhYmxlZC5gKSxpPSExKX1yZXR1cm4gaX1fbXVsdGlTb3J0KHQsZSl7cmV0dXJuIHRoaXMuX3NvcnRlcnMubWFwKChuPT4iYXNjIj09PW4uZGlyZWN0aW9uP3RoaXMuX2NvbXBhcmUoZm8uZ2V0KG4ucGF0aCx0KSxmby5nZXQobi5wYXRoLGUpKToiZGVzYyI9PT1uLmRpcmVjdGlvbj90aGlzLl9jb21wYXJlKGZvLmdldChuLnBhdGgsZSksZm8uZ2V0KG4ucGF0aCx0KSk6MCkpLnJlZHVjZSgoKHQsZSk9PnR8fGUpLDApfV9ub3JtYWxpemVFbXB0eVZhbHVlKHQpe3JldHVyblt2b2lkIDAsbnVsbF0uaW5kZXhPZih0KT49MD8iIjppc05hTih0KT90LnRvU3RyaW5nKCk6dH1fY29tcGFyZSh0LGUpe3JldHVybih0PXRoaXMuX25vcm1hbGl6ZUVtcHR5VmFsdWUodCkpPChlPXRoaXMuX25vcm1hbGl6ZUVtcHR5VmFsdWUoZSkpPy0xOnQ+ZT8xOjB9X2ZpbHRlcih0KXtyZXR1cm4gdC5maWx0ZXIoKHQ9PjA9PT10aGlzLl9maWx0ZXJzLmZpbHRlcigoZT0+e2NvbnN0IG49dGhpcy5fbm9ybWFsaXplRW1wdHlWYWx1ZShmby5nZXQoZS5wYXRoLHQpKSxpPXRoaXMuX25vcm1hbGl6ZUVtcHR5VmFsdWUoZS52YWx1ZSkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO3JldHVybi0xPT09bi50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihpKX0pKS5sZW5ndGgpKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLE8kdD10PT5jbGFzcyBleHRlbmRzKHBpKHQpKXtyZWFkeSgpe3N1cGVyLnJlYWR5KCk7Y29uc3QgdD10aGlzLiQuc2Nyb2xsZXI7aWkodCwidHJhY2siLHRoaXMuX29uSGVhZGVyVHJhY2suYmluZCh0aGlzKSksdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLChlPT50Lmhhc0F0dHJpYnV0ZSgiY29sdW1uLXJlc2l6aW5nIikmJmUucHJldmVudERlZmF1bHQoKSkpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCh0PT4icmVzaXplLWhhbmRsZSI9PXQudGFyZ2V0LmdldEF0dHJpYnV0ZSgicGFydCIpJiZ0LnByZXZlbnREZWZhdWx0KCkpKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsKHQ9PiJyZXNpemUtaGFuZGxlIj09PXQudGFyZ2V0LmdldEF0dHJpYnV0ZSgicGFydCIpJiZ0LnByZXZlbnREZWZhdWx0KCkpKX1fb25IZWFkZXJUcmFjayh0KXtjb25zdCBlPXQudGFyZ2V0O2lmKCJyZXNpemUtaGFuZGxlIj09PWUuZ2V0QXR0cmlidXRlKCJwYXJ0Iikpe2xldCBuPWUucGFyZW50RWxlbWVudC5fY29sdW1uO2Zvcih0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImNvbHVtbi1yZXNpemluZyIsITAsdGhpcy4kLnNjcm9sbGVyKTsidmFhZGluLWdyaWQtY29sdW1uLWdyb3VwIj09PW4ubG9jYWxOYW1lOyluPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4uX2NoaWxkQ29sdW1ucywwKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9vcmRlci1lLl9vcmRlcn0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LmhpZGRlbn0pKS5wb3AoKTtjb25zdCBpPUFycmF5LmZyb20odGhpcy4kLmhlYWRlci5xdWVyeVNlbGVjdG9yQWxsKCdbcGFydH49InJvdyJdOmxhc3QtY2hpbGQgW3BhcnR+PSJjZWxsIl0nKSkscj1pLmZpbHRlcigodD0+dC5fY29sdW1uPT09bikpWzBdO2lmKHIub2Zmc2V0V2lkdGgpe2NvbnN0IGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUociksaT0xMCtwYXJzZUludChlLnBhZGRpbmdMZWZ0KStwYXJzZUludChlLnBhZGRpbmdSaWdodCkrcGFyc2VJbnQoZS5ib3JkZXJMZWZ0V2lkdGgpK3BhcnNlSW50KGUuYm9yZGVyUmlnaHRXaWR0aCkrcGFyc2VJbnQoZS5tYXJnaW5MZWZ0KStwYXJzZUludChlLm1hcmdpblJpZ2h0KSxvPXIub2Zmc2V0V2lkdGgrKHRoaXMuX19pc1JUTD9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtdC5kZXRhaWwueDp0LmRldGFpbC54LXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQpO24ud2lkdGg9TWF0aC5tYXgoaSxvKSsicHgiLG4uZmxleEdyb3c9MH1pLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX2NvbHVtbi5fb3JkZXItZS5fY29sdW1uLl9vcmRlcn0pKS5mb3JFYWNoKChmdW5jdGlvbih0LGUsbil7ZTxuLmluZGV4T2YocikmJih0Ll9jb2x1bW4ud2lkdGg9dC5vZmZzZXRXaWR0aCsicHgiLHQuX2NvbHVtbi5mbGV4R3Jvdz0wKX0pKSwiZW5kIj09PXQuZGV0YWlsLnN0YXRlJiYodGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJjb2x1bW4tcmVzaXppbmciLCExLHRoaXMuJC5zY3JvbGxlciksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sdW1uLXJlc2l6ZSIse2RldGFpbDp7cmVzaXplZENvbHVtbjpufX0pKSksdGhpcy5fcmVzaXplSGFuZGxlcigpfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLHokdD1jbGFzcyB0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmdyaWQ9dCx0aGlzLnBhcmVudENhY2hlPWUsdGhpcy5wYXJlbnRJdGVtPW4sdGhpcy5pdGVtQ2FjaGVzPXt9LHRoaXMuaXRlbXM9e30sdGhpcy5lZmZlY3RpdmVTaXplPTAsdGhpcy5zaXplPTAsdGhpcy5wZW5kaW5nUmVxdWVzdHM9e319aXNMb2FkaW5nKCl7cmV0dXJuIEJvb2xlYW4oT2JqZWN0LmtleXModGhpcy5wZW5kaW5nUmVxdWVzdHMpLmxlbmd0aHx8T2JqZWN0LmtleXModGhpcy5pdGVtQ2FjaGVzKS5maWx0ZXIoKHQ9PnRoaXMuaXRlbUNhY2hlc1t0XS5pc0xvYWRpbmcoKSkpWzBdKX1nZXRJdGVtRm9ySW5kZXgodCl7Y29uc3R7Y2FjaGU6ZSxzY2FsZWRJbmRleDpufT10aGlzLmdldENhY2hlQW5kSW5kZXgodCk7cmV0dXJuIGUuaXRlbXNbbl19dXBkYXRlU2l6ZSgpe3RoaXMuZWZmZWN0aXZlU2l6ZT0hdGhpcy5wYXJlbnRJdGVtfHx0aGlzLmdyaWQuX2lzRXhwYW5kZWQodGhpcy5wYXJlbnRJdGVtKT90aGlzLnNpemUrT2JqZWN0LmtleXModGhpcy5pdGVtQ2FjaGVzKS5yZWR1Y2UoKCh0LGUpPT57Y29uc3Qgbj10aGlzLml0ZW1DYWNoZXNbZV07cmV0dXJuIG4udXBkYXRlU2l6ZSgpLHQrbi5lZmZlY3RpdmVTaXplfSksMCk6MH1lbnN1cmVTdWJDYWNoZUZvclNjYWxlZEluZGV4KGUpe2lmKCF0aGlzLml0ZW1DYWNoZXNbZV0pe2NvbnN0IG49bmV3IHQodGhpcy5ncmlkLHRoaXMsdGhpcy5pdGVtc1tlXSk7dGhpcy5pdGVtQ2FjaGVzW2VdPW4sdGhpcy5ncmlkLl9sb2FkUGFnZSgwLG4pfX1nZXRDYWNoZUFuZEluZGV4KHQpe2xldCBlPXQ7Y29uc3Qgbj1PYmplY3Qua2V5cyh0aGlzLml0ZW1DYWNoZXMpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtjb25zdCBpPU51bWJlcihuW3RdKSxyPXRoaXMuaXRlbUNhY2hlc1tpXTtpZihlPD1pKXJldHVybntjYWNoZTp0aGlzLHNjYWxlZEluZGV4OmV9O2lmKGU8PWkrci5lZmZlY3RpdmVTaXplKXJldHVybiByLmdldENhY2hlQW5kSW5kZXgoZS1pLTEpO2UtPXIuZWZmZWN0aXZlU2l6ZX1yZXR1cm57Y2FjaGU6dGhpcyxzY2FsZWRJbmRleDplfX19LEQkdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3BhZ2VTaXplOnt0eXBlOk51bWJlcix2YWx1ZTo1MCxvYnNlcnZlcjoiX3BhZ2VTaXplQ2hhbmdlZCJ9LGRhdGFQcm92aWRlcjp7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLG9ic2VydmVyOiJfZGF0YVByb3ZpZGVyQ2hhbmdlZCJ9LGxvYWRpbmc6e3R5cGU6Qm9vbGVhbixub3RpZnk6ITAscmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxfY2FjaGU6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB6JHQodGhpcyl9fSxpdGVtSWRQYXRoOnt0eXBlOlN0cmluZyx2YWx1ZTpudWxsfSxleHBhbmRlZEl0ZW1zOnt0eXBlOk9iamVjdCxub3RpZnk6ITAsdmFsdWU6KCk9PltdfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9zaXplQ2hhbmdlZChzaXplKSIsIl9pdGVtSWRQYXRoQ2hhbmdlZChpdGVtSWRQYXRoKSIsIl9leHBhbmRlZEl0ZW1zQ2hhbmdlZChleHBhbmRlZEl0ZW1zLiopIl19X3NpemVDaGFuZ2VkKHQpe2NvbnN0IGU9dC10aGlzLl9jYWNoZS5zaXplO3RoaXMuX2NhY2hlLnNpemUrPWUsdGhpcy5fY2FjaGUuZWZmZWN0aXZlU2l6ZSs9ZSx0aGlzLl9lZmZlY3RpdmVTaXplPXRoaXMuX2NhY2hlLmVmZmVjdGl2ZVNpemUsdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoMCksdGhpcy5fZGVib3VuY2VJbmNyZWFzZVBvb2wmJnRoaXMuX2RlYm91bmNlSW5jcmVhc2VQb29sLmZsdXNoKCl9X2dldEl0ZW0odCxlKXtpZih0Pj10aGlzLl9lZmZlY3RpdmVTaXplKXJldHVybjtlLmluZGV4PXQ7Y29uc3R7Y2FjaGU6bixzY2FsZWRJbmRleDppfT10aGlzLl9jYWNoZS5nZXRDYWNoZUFuZEluZGV4KHQpLHI9bi5pdGVtc1tpXTtyPyh0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImxvYWRpbmciLCExLGUpLHRoaXMuX3VwZGF0ZUl0ZW0oZSxyKSx0aGlzLl9pc0V4cGFuZGVkKHIpJiZuLmVuc3VyZVN1YkNhY2hlRm9yU2NhbGVkSW5kZXgoaSkpOih0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImxvYWRpbmciLCEwLGUpLHRoaXMuX2xvYWRQYWdlKHRoaXMuX2dldFBhZ2VGb3JJbmRleChpKSxuKSl9X2V4cGFuZGVkSW5zdGFuY2VDaGFuZ2VkQ2FsbGJhY2sodCxlKXt2b2lkIDAhPT10Lml0ZW0mJihlP3RoaXMuZXhwYW5kSXRlbSh0Lml0ZW0pOnRoaXMuY29sbGFwc2VJdGVtKHQuaXRlbSkpfWdldEl0ZW1JZCh0KXtyZXR1cm4gdGhpcy5pdGVtSWRQYXRoP3RoaXMuZ2V0KHRoaXMuaXRlbUlkUGF0aCx0KTp0fV9pc0V4cGFuZGVkKHQpe3JldHVybiB0aGlzLl9fZXhwYW5kZWRLZXlzLmhhcyh0aGlzLmdldEl0ZW1JZCh0KSl9X2V4cGFuZGVkSXRlbXNDaGFuZ2VkKCl7dGhpcy5fX2NhY2hlRXhwYW5kZWRLZXlzKCksdGhpcy5fY2FjaGUudXBkYXRlU2l6ZSgpLHRoaXMuX2VmZmVjdGl2ZVNpemU9dGhpcy5fY2FjaGUuZWZmZWN0aXZlU2l6ZSx0aGlzLl9hc3NpZ25Nb2RlbHMoKX1faXRlbUlkUGF0aENoYW5nZWQoKXt0aGlzLl9fY2FjaGVFeHBhbmRlZEtleXMoKX1fX2NhY2hlRXhwYW5kZWRLZXlzKCl7dGhpcy5leHBhbmRlZEl0ZW1zJiYodGhpcy5fX2V4cGFuZGVkS2V5cz1uZXcgU2V0LHRoaXMuZXhwYW5kZWRJdGVtcy5mb3JFYWNoKCh0PT57dGhpcy5fX2V4cGFuZGVkS2V5cy5hZGQodGhpcy5nZXRJdGVtSWQodCkpfSkpKX1leHBhbmRJdGVtKHQpe3RoaXMuX2lzRXhwYW5kZWQodCl8fCh0aGlzLmV4cGFuZGVkSXRlbXM9Wy4uLnRoaXMuZXhwYW5kZWRJdGVtcyx0XSl9Y29sbGFwc2VJdGVtKHQpe3RoaXMuX2lzRXhwYW5kZWQodCkmJih0aGlzLmV4cGFuZGVkSXRlbXM9dGhpcy5leHBhbmRlZEl0ZW1zLmZpbHRlcigoZT0+IXRoaXMuX2l0ZW1zRXF1YWwoZSx0KSkpKX1fZ2V0SW5kZXhMZXZlbCh0KXtsZXR7Y2FjaGU6ZX09dGhpcy5fY2FjaGUuZ2V0Q2FjaGVBbmRJbmRleCh0KSxuPTA7Zm9yKDtlLnBhcmVudENhY2hlOyllPWUucGFyZW50Q2FjaGUsbisrO3JldHVybiBufV9jYW5Qb3B1bGF0ZSgpe3JldHVybiBCb29sZWFuKHRoaXMuX2hhc0RhdGEmJnRoaXMuX2NvbHVtblRyZWUpfV9sb2FkUGFnZSh0LGUpe2lmKCFlLnBlbmRpbmdSZXF1ZXN0c1t0XSYmdGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMuX3NldExvYWRpbmcoITApLGUucGVuZGluZ1JlcXVlc3RzW3RdPSEwO2NvbnN0IG49e3BhZ2U6dCxwYWdlU2l6ZTp0aGlzLnBhZ2VTaXplLHNvcnRPcmRlcnM6dGhpcy5fbWFwU29ydGVycygpLGZpbHRlcnM6dGhpcy5fbWFwRmlsdGVycygpLHBhcmVudEl0ZW06ZS5wYXJlbnRJdGVtfTt0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbCYmdGhpcy5fZGVib3VuY2VJbmNyZWFzZVBvb2wuZmx1c2goKSx0aGlzLmRhdGFQcm92aWRlcihuLCgoaSxyKT0+e3ZvaWQgMCE9PXI/ZS5zaXplPXI6bi5wYXJlbnRJdGVtJiYoZS5zaXplPWkubGVuZ3RoKTtjb25zdCBvPUFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5tYXAoKHQ9PnQuX2l0ZW0pKTtpLmZvckVhY2goKChuLGkpPT57Y29uc3Qgcj10KnRoaXMucGFnZVNpemUraTtlLml0ZW1zW3JdPW4sdGhpcy5faXNFeHBhbmRlZChuKSYmby5pbmRleE9mKG4pPi0xJiZlLmVuc3VyZVN1YkNhY2hlRm9yU2NhbGVkSW5kZXgocil9KSksdGhpcy5faGFzRGF0YT0hMCxkZWxldGUgZS5wZW5kaW5nUmVxdWVzdHNbdF0sdGhpcy5fZGVib3VuY2VyQXBwbHlDYWNoZWREYXRhPVRuLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlckFwcGx5Q2FjaGVkRGF0YSxndC5hZnRlcigwKSwoKCk9Pnt0aGlzLl9zZXRMb2FkaW5nKCExKSx0aGlzLl9jYWNoZS51cGRhdGVTaXplKCksdGhpcy5fZWZmZWN0aXZlU2l6ZT10aGlzLl9jYWNoZS5lZmZlY3RpdmVTaXplLEFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpLmZvckVhY2goKHQ9Pnt0aGlzLl9jYWNoZS5nZXRJdGVtRm9ySW5kZXgodC5pbmRleCkmJnRoaXMuX2dldEl0ZW0odC5pbmRleCx0KX0pKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKSx0aGlzLl9fc2Nyb2xsVG9QZW5kaW5nSW5kZXgoKX0pKSx0aGlzLl9jYWNoZS5pc0xvYWRpbmcoKXx8dGhpcy5fZGVib3VuY2VyQXBwbHlDYWNoZWREYXRhLmZsdXNoKCksdGhpcy5fX2l0ZW1zUmVjZWl2ZWQoKX0pKX19X2dldFBhZ2VGb3JJbmRleCh0KXtyZXR1cm4gTWF0aC5mbG9vcih0L3RoaXMucGFnZVNpemUpfWNsZWFyQ2FjaGUoKXt0aGlzLl9jYWNoZT1uZXcgeiR0KHRoaXMpLEFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5mb3JFYWNoKCh0PT57QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5mb3JFYWNoKCh0PT57dC5faW5zdGFuY2UmJnQuX2luc3RhbmNlLl9zZXRQZW5kaW5nUHJvcGVydHkoIml0ZW0iLHt9LCExKX0pKX0pKSx0aGlzLl9jYWNoZS5zaXplPXRoaXMuc2l6ZXx8MCx0aGlzLl9jYWNoZS51cGRhdGVTaXplKCksdGhpcy5faGFzRGF0YT0hMSx0aGlzLl9hc3NpZ25Nb2RlbHMoKSx0aGlzLl9lZmZlY3RpdmVTaXplJiZ0aGlzLl9pbml0aWFsUG9vbENyZWF0ZWR8fHRoaXMuX2xvYWRQYWdlKDAsdGhpcy5fY2FjaGUpfV9wYWdlU2l6ZUNoYW5nZWQodCxlKXt2b2lkIDAhPT1lJiZ0IT09ZSYmdGhpcy5jbGVhckNhY2hlKCl9X2NoZWNrU2l6ZSgpe3ZvaWQgMD09PXRoaXMuc2l6ZSYmMD09PXRoaXMuX2VmZmVjdGl2ZVNpemUmJmNvbnNvbGUud2FybigiVGhlIDx2YWFkaW4tZ3JpZD4gbmVlZHMgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyBpbiBvcmRlciB0byBkaXNwbGF5IHJvd3MuIFNldCB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIHRvIHRoZSBgc2l6ZWAgcHJvcGVydHksIG9yIHByb3ZpZGUgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHRoZSBgZGF0YVByb3ZpZGVyYOKAmXMgYGNhbGxiYWNrYCBjYWxsLiIpfV9kYXRhUHJvdmlkZXJDaGFuZ2VkKHQsZSl7dm9pZCAwIT09ZSYmdGhpcy5jbGVhckNhY2hlKCksdCYmdGhpcy5pdGVtcyYmdGhpcy5pdGVtcy5sZW5ndGgmJnRoaXMuX3Njcm9sbFRvSW5kZXgodGhpcy5fZmlyc3RWaXNpYmxlSW5kZXgpLHRoaXMuX2Vuc3VyZUZpcnN0UGFnZUxvYWRlZCgpLHRoaXMuX2RlYm91bmNlckNoZWNrU2l6ZT1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJDaGVja1NpemUsZ3QuYWZ0ZXIoMmUzKSx0aGlzLl9jaGVja1NpemUuYmluZCh0aGlzKSksdGhpcy5fc2Nyb2xsSGFuZGxlcigpfV9lbnN1cmVGaXJzdFBhZ2VMb2FkZWQoKXt0aGlzLl9oYXNEYXRhfHx0aGlzLl9sb2FkUGFnZSgwLHRoaXMuX2NhY2hlKX1faXRlbXNFcXVhbCh0LGUpe3JldHVybiB0aGlzLmdldEl0ZW1JZCh0KT09PXRoaXMuZ2V0SXRlbUlkKGUpfV9nZXRJdGVtSW5kZXhJbkFycmF5KHQsZSl7bGV0IG49LTE7cmV0dXJuIGUuZm9yRWFjaCgoKGUsaSk9Pnt0aGlzLl9pdGVtc0VxdWFsKGUsdCkmJihuPWkpfSkpLG59c2Nyb2xsVG9JbmRleCh0KXtzdXBlci5zY3JvbGxUb0luZGV4KHQpLGlzTmFOKHQpfHwhdGhpcy5fY2FjaGUuaXNMb2FkaW5nKCkmJnRoaXMuY2xpZW50SGVpZ2h0fHwodGhpcy5fX3BlbmRpbmdTY3JvbGxUb0luZGV4PXQpfV9fc2Nyb2xsVG9QZW5kaW5nSW5kZXgoKXtpZih0aGlzLl9fcGVuZGluZ1Njcm9sbFRvSW5kZXgmJnRoaXMuJC5pdGVtcy5jaGlsZHJlbi5sZW5ndGgpe2NvbnN0IHQ9dGhpcy5fX3BlbmRpbmdTY3JvbGxUb0luZGV4O2RlbGV0ZSB0aGlzLl9fcGVuZGluZ1Njcm9sbFRvSW5kZXgsdGhpcy5fZGVib3VuY2VJbmNyZWFzZVBvb2wmJnRoaXMuX2RlYm91bmNlSW5jcmVhc2VQb29sLmZsdXNoKCksdGhpcy5zY3JvbGxUb0luZGV4KHQpfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLEIkdD10PT5jbGFzcyBleHRlbmRzIHR7cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuX2FkZE5vZGVPYnNlcnZlcigpfV9oYXNDb2x1bW5Hcm91cHModCl7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYoInZhYWRpbi1ncmlkLWNvbHVtbi1ncm91cCI9PT10W2VdLmxvY2FsTmFtZSlyZXR1cm4hMDtyZXR1cm4hMX1fZ2V0Q2hpbGRDb2x1bW5zKHQpe3JldHVybiB6aS5nZXRGbGF0dGVuZWROb2Rlcyh0KS5maWx0ZXIodGhpcy5faXNDb2x1bW5FbGVtZW50KX1fZmxhdHRlbkNvbHVtbkdyb3Vwcyh0KXtyZXR1cm4gdC5tYXAoKHQ9PiJ2YWFkaW4tZ3JpZC1jb2x1bW4tZ3JvdXAiPT09dC5sb2NhbE5hbWU/dGhpcy5fZ2V0Q2hpbGRDb2x1bW5zKHQpOlt0XSkpLnJlZHVjZSgoKHQsZSk9PnQuY29uY2F0KGUpKSxbXSl9X2dldENvbHVtblRyZWUoKXtjb25zdCB0PVtdO2ZvcihsZXQgZT16aS5nZXRGbGF0dGVuZWROb2Rlcyh0aGlzKS5maWx0ZXIodGhpcy5faXNDb2x1bW5FbGVtZW50KTt0LnB1c2goZSksdGhpcy5faGFzQ29sdW1uR3JvdXBzKGUpOyllPXRoaXMuX2ZsYXR0ZW5Db2x1bW5Hcm91cHMoZSk7cmV0dXJuIHR9X3VwZGF0ZUNvbHVtblRyZWUoKXtjb25zdCB0PXRoaXMuX2dldENvbHVtblRyZWUoKTt0aGlzLl9hcnJheUVxdWFscyh0LHRoaXMuX2NvbHVtblRyZWUpfHwodGhpcy5fY29sdW1uVHJlZT10KX1fYWRkTm9kZU9ic2VydmVyKCl7dGhpcy5fb2JzZXJ2ZXI9bmV3IHppKHRoaXMsKHQ9Pntjb25zdCBlPXQuYWRkZWROb2Rlcy5maWx0ZXIoKHQ9PiJ0ZW1wbGF0ZSI9PT10LmxvY2FsTmFtZSYmdC5jbGFzc0xpc3QuY29udGFpbnMoInJvdy1kZXRhaWxzIikpKVswXTtlJiZ0aGlzLl9yb3dEZXRhaWxzVGVtcGxhdGUhPT1lJiYodGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlPWUpO2NvbnN0IG49dD0+dC5maWx0ZXIodGhpcy5faXNDb2x1bW5FbGVtZW50KS5sZW5ndGg+MDtpZihuKHQuYWRkZWROb2Rlcyl8fG4odC5yZW1vdmVkTm9kZXMpKXtjb25zdCBlPXQucmVtb3ZlZE5vZGVzLmZsYXRNYXAoKHQ9PnQuX2FsbENlbGxzKSksbj10PT5lLmZpbHRlcigoZT0+ZS5fY29udGVudC5jb250YWlucyh0KSkpLmxlbmd0aDt0aGlzLl9fcmVtb3ZlU29ydGVycyh0aGlzLl9zb3J0ZXJzLmZpbHRlcihuKSksdGhpcy5fX3JlbW92ZUZpbHRlcnModGhpcy5fZmlsdGVycy5maWx0ZXIobikpLHRoaXMuX3VwZGF0ZUNvbHVtblRyZWUoKX10aGlzLl9kZWJvdW5jZXJDaGVja0ltcG9ydHM9VG4uZGVib3VuY2UodGhpcy5fZGVib3VuY2VyQ2hlY2tJbXBvcnRzLGd0LmFmdGVyKDJlMyksdGhpcy5fY2hlY2tJbXBvcnRzLmJpbmQodGhpcykpLHRoaXMuX2Vuc3VyZUZpcnN0UGFnZUxvYWRlZCgpfSkpfV9hcnJheUVxdWFscyh0LGUpe2lmKCF0fHwhZXx8dC5sZW5ndGghPWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgbj0wLGk9dC5sZW5ndGg7bjxpO24rKylpZih0W25daW5zdGFuY2VvZiBBcnJheSYmZVtuXWluc3RhbmNlb2YgQXJyYXkpe2lmKCF0aGlzLl9hcnJheUVxdWFscyh0W25dLGVbbl0pKXJldHVybiExfWVsc2UgaWYodFtuXSE9ZVtuXSlyZXR1cm4hMTtyZXR1cm4hMH1fY2hlY2tJbXBvcnRzKCl7WyJ2YWFkaW4tZ3JpZC1jb2x1bW4tZ3JvdXAiLCJ2YWFkaW4tZ3JpZC1maWx0ZXIiLCJ2YWFkaW4tZ3JpZC1maWx0ZXItY29sdW1uIiwidmFhZGluLWdyaWQtdHJlZS10b2dnbGUiLCJ2YWFkaW4tZ3JpZC1zZWxlY3Rpb24tY29sdW1uIiwidmFhZGluLWdyaWQtc29ydC1jb2x1bW4iLCJ2YWFkaW4tZ3JpZC1zb3J0ZXIiXS5mb3JFYWNoKCh0PT57Y29uc3QgZT10aGlzLnF1ZXJ5U2VsZWN0b3IodCk7IWV8fGUgaW5zdGFuY2VvZiB5ZXx8Y29uc29sZS53YXJuKGBNYWtlIHN1cmUgeW91IGhhdmUgaW1wb3J0ZWQgdGhlIHJlcXVpcmVkIG1vZHVsZSBmb3IgPCR7dH0+IGVsZW1lbnQuYCl9KSl9X3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbigpe0FycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRyIikpLmZvckVhY2goKHQ9PnRoaXMuX3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbkZvclJvdyh0KSkpfV91cGRhdGVGaXJzdEFuZExhc3RDb2x1bW5Gb3JSb3codCl7QXJyYXkuZnJvbSh0LnF1ZXJ5U2VsZWN0b3JBbGwoJ1twYXJ0fj0iY2VsbCJdOm5vdChbcGFydH49ImRldGFpbHMtY2VsbCJdKScpKS5zb3J0KCgodCxlKT0+dC5fY29sdW1uLl9vcmRlci1lLl9jb2x1bW4uX29yZGVyKSkuZm9yRWFjaCgoKHQsZSxuKT0+e3RoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZmlyc3QtY29sdW1uIiwwPT09ZSx0KSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImxhc3QtY29sdW1uIixlPT09bi5sZW5ndGgtMSx0KX0pKX1faXNDb2x1bW5FbGVtZW50KHQpe3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJi9cYmNvbHVtblxiLy50ZXN0KHQubG9jYWxOYW1lKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLEgkdD10PT5jbGFzcyBleHRlbmRzIHR7Z2V0RXZlbnRDb250ZXh0KHQpe2NvbnN0IGU9e30sbj10LmNvbXBvc2VkUGF0aCgpLGk9bltuLmluZGV4T2YodGhpcy4kLnRhYmxlKS0zXTtyZXR1cm4gaT8oZS5zZWN0aW9uPVsiYm9keSIsImhlYWRlciIsImZvb3RlciIsImRldGFpbHMiXS5maWx0ZXIoKHQ9PmkuZ2V0QXR0cmlidXRlKCJwYXJ0IikuaW5kZXhPZih0KT4tMSkpWzBdLGkuX2NvbHVtbiYmKGUuY29sdW1uPWkuX2NvbHVtbiksImJvZHkiIT09ZS5zZWN0aW9uJiYiZGV0YWlscyIhPT1lLnNlY3Rpb258fE9iamVjdC5hc3NpZ24oZSx0aGlzLl9fZ2V0Um93TW9kZWwoaS5wYXJlbnRFbGVtZW50KSksZSk6ZX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLEYkdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue19maWx0ZXJzOnt0eXBlOkFycmF5LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fX19cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZmlsdGVyLWNoYW5nZWQiLHRoaXMuX2ZpbHRlckNoYW5nZWQuYmluZCh0aGlzKSl9X2ZpbHRlckNoYW5nZWQodCl7dC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9fYWRkRmlsdGVyKHQudGFyZ2V0KSx0aGlzLl9fYXBwbHlGaWx0ZXJzKCl9X19yZW1vdmVGaWx0ZXJzKHQpezAhPXQubGVuZ3RoJiYodGhpcy5fZmlsdGVycz10aGlzLl9maWx0ZXJzLmZpbHRlcigoZT0+dC5pbmRleE9mKGUpPDApKSx0aGlzLl9fYXBwbHlGaWx0ZXJzKCkpfV9fYWRkRmlsdGVyKHQpey0xPT09dGhpcy5fZmlsdGVycy5pbmRleE9mKHQpJiZ0aGlzLl9maWx0ZXJzLnB1c2godCl9X19hcHBseUZpbHRlcnMoKXt0aGlzLmRhdGFQcm92aWRlciYmdGhpcy5pc0F0dGFjaGVkJiZ0aGlzLmNsZWFyQ2FjaGUoKX1fbWFwRmlsdGVycygpe3JldHVybiB0aGlzLl9maWx0ZXJzLm1hcCgodD0+KHtwYXRoOnQucGF0aCx2YWx1ZTp0LnZhbHVlfSkpKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovO2NsYXNzIFYkdCBleHRlbmRzIHlle3N0YXRpYyBnZXQgaXMoKXtyZXR1cm4idmFhZGluLWdyaWQtdGVtcGxhdGl6ZXIifXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntkYXRhSG9zdDpPYmplY3QsdGVtcGxhdGU6T2JqZWN0LF90ZW1wbGF0ZUluc3RhbmNlczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX0sX3BhcmVudFBhdGhWYWx1ZXM6e3ZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue319fSxfZ3JpZDpPYmplY3R9fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfdGVtcGxhdGVJbnN0YW5jZXNDaGFuZ2VkKF90ZW1wbGF0ZUluc3RhbmNlcy4qLCBfcGFyZW50UGF0aFZhbHVlcy4qKSJdfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9pbnN0YW5jZVByb3BzPXtkZXRhaWxzT3BlbmVkOiEwLGluZGV4OiEwLGl0ZW06ITAsc2VsZWN0ZWQ6ITAsZXhwYW5kZWQ6ITAsbGV2ZWw6ITB9fWNyZWF0ZUluc3RhbmNlKCl7dGhpcy5fZW5zdXJlVGVtcGxhdGl6ZWQoKTtjb25zdCB0PW5ldyB0aGlzLl9UZW1wbGF0ZUNsYXNzKHt9KTtyZXR1cm4gdGhpcy5hZGRJbnN0YW5jZSh0KSx0fWFkZEluc3RhbmNlKHQpey0xPT09dGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMuaW5kZXhPZih0KSYmKHRoaXMuX3RlbXBsYXRlSW5zdGFuY2VzLnB1c2godCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy5ub3RpZnlQYXRoKCJfdGVtcGxhdGVJbnN0YW5jZXMuKiIsdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMpKSkpfXJlbW92ZUluc3RhbmNlKHQpe2NvbnN0IGU9dGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMuaW5kZXhPZih0KTt0aGlzLnNwbGljZSgiX3RlbXBsYXRlSW5zdGFuY2VzIixlLDEpfV9lbnN1cmVUZW1wbGF0aXplZCgpe3RoaXMuX1RlbXBsYXRlQ2xhc3N8fCh0aGlzLl9UZW1wbGF0ZUNsYXNzPSRyKHRoaXMudGVtcGxhdGUsdGhpcyx7aW5zdGFuY2VQcm9wczp0aGlzLl9pbnN0YW5jZVByb3BzLHBhcmVudE1vZGVsOiEwLGZvcndhcmRIb3N0UHJvcDpmdW5jdGlvbih0LGUpe3RoaXMuX2ZvcndhcmRQYXJlbnRQcm9wKHQsZSksdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMmJnRoaXMuX3RlbXBsYXRlSW5zdGFuY2VzLmZvckVhY2goKG49Pm4ubm90aWZ5UGF0aCh0LGUpKSl9LG5vdGlmeUluc3RhbmNlUHJvcDpmdW5jdGlvbih0LGUsbil7aWYoImluZGV4Ij09PWV8fCJpdGVtIj09PWUpcmV0dXJuO2NvbnN0IGk9YF9fJHtlfV9fYDtpZih0W2ldPT09bilyZXR1cm47dFtpXT1uO2NvbnN0IHI9QXJyYXkuZnJvbSh0aGlzLl9ncmlkLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigoZT0+dGhpcy5fZ3JpZC5faXRlbXNFcXVhbChlLl9pdGVtLHQuaXRlbSkpKVswXTtyJiZBcnJheS5mcm9tKHIuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pnt0Ll9pbnN0YW5jZSYmKHQuX2luc3RhbmNlW2ldPW4sdC5faW5zdGFuY2Uubm90aWZ5UGF0aChlLG4pKX0pKTtjb25zdCBvPSJpdGVtLiI7aWYoQXJyYXkuaXNBcnJheSh0aGlzLl9ncmlkLml0ZW1zKSYmMD09PWUuaW5kZXhPZihvKSl7Y29uc3QgaT10aGlzLl9ncmlkLml0ZW1zLmluZGV4T2YodC5pdGVtKSxyPWUuc2xpY2Uoby5sZW5ndGgpO3RoaXMuX2dyaWQubm90aWZ5UGF0aChgaXRlbXMuJHtpfS4ke3J9YCxuKX1jb25zdCBhPWBfJHtlfUluc3RhbmNlQ2hhbmdlZENhbGxiYWNrYDt0aGlzLl9ncmlkJiZ0aGlzLl9ncmlkW2FdJiZ0aGlzLl9ncmlkW2FdKHQsbil9fSkpfV9mb3J3YXJkUGFyZW50UHJvcCh0LGUpe3RoaXMuX3BhcmVudFBhdGhWYWx1ZXNbdF09ZSx0aGlzLl90ZW1wbGF0ZUluc3RhbmNlcy5mb3JFYWNoKChuPT5uLm5vdGlmeVBhdGgodCxlKSkpfV90ZW1wbGF0ZUluc3RhbmNlc0NoYW5nZWQodCl7bGV0IGUsbjtpZigiX3RlbXBsYXRlSW5zdGFuY2VzIj09PXQucGF0aCllPTAsbj10aGlzLl90ZW1wbGF0ZUluc3RhbmNlcy5sZW5ndGg7ZWxzZXtpZigiX3RlbXBsYXRlSW5zdGFuY2VzLnNwbGljZXMiIT09dC5wYXRoKXJldHVybjtlPXQudmFsdWUuaW5kZXgsbj10LnZhbHVlLmFkZGVkQ291bnR9T2JqZWN0LmtleXModGhpcy5fcGFyZW50UGF0aFZhbHVlc3x8e30pLmZvckVhY2goKHQ9Pntmb3IobGV0IGk9ZTtpPGUrbjtpKyspdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXNbaV0uc2V0KHQsdGhpcy5fcGFyZW50UGF0aFZhbHVlc1t0XSl9KSl9fWN1c3RvbUVsZW1lbnRzLmRlZmluZShWJHQuaXMsViR0KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgVSR0PXQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57ZGV0YWlsc09wZW5lZEl0ZW1zOnt0eXBlOkFycmF5LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxfcm93RGV0YWlsc1RlbXBsYXRlOk9iamVjdCxyb3dEZXRhaWxzUmVuZGVyZXI6RnVuY3Rpb24sX2RldGFpbHNDZWxsczp7dHlwZTpBcnJheX19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfZGV0YWlsc09wZW5lZEl0ZW1zQ2hhbmdlZChkZXRhaWxzT3BlbmVkSXRlbXMuKiwgX3Jvd0RldGFpbHNUZW1wbGF0ZSwgcm93RGV0YWlsc1JlbmRlcmVyKSIsIl9yb3dEZXRhaWxzVGVtcGxhdGVPclJlbmRlcmVyQ2hhbmdlZChfcm93RGV0YWlsc1RlbXBsYXRlLCByb3dEZXRhaWxzUmVuZGVyZXIpIl19X3Jvd0RldGFpbHNUZW1wbGF0ZU9yUmVuZGVyZXJDaGFuZ2VkKHQsZSl7aWYodCYmZSl0aHJvdyBuZXcgRXJyb3IoIllvdSBzaG91bGQgb25seSB1c2UgZWl0aGVyIGEgcmVuZGVyZXIgb3IgYSB0ZW1wbGF0ZSBmb3Igcm93IGRldGFpbHMiKTtpZih0fHxlKXtpZih0JiYhdC50ZW1wbGF0aXplcil7Y29uc3QgZT1uZXcgViR0O2UuX2dyaWQ9dGhpcyxlLmRhdGFIb3N0PXRoaXMuZGF0YUhvc3QsZS50ZW1wbGF0ZT10LHQudGVtcGxhdGl6ZXI9ZX10aGlzLl9jb2x1bW5UcmVlJiZBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaCgodD0+e3QucXVlcnlTZWxlY3RvcigiW3BhcnR+PWRldGFpbHMtY2VsbF0iKXx8KHRoaXMuX3VwZGF0ZVJvdyh0LHRoaXMuX2NvbHVtblRyZWVbdGhpcy5fY29sdW1uVHJlZS5sZW5ndGgtMV0pLHRoaXMuX2ExMXlVcGRhdGVSb3dEZXRhaWxzT3BlbmVkKHQsITEpKSxkZWxldGUgdC5xdWVyeVNlbGVjdG9yKCJbcGFydH49ZGV0YWlscy1jZWxsXSIpLl9pbnN0YW5jZX0pKSx0aGlzLmRldGFpbHNPcGVuZWRJdGVtcy5sZW5ndGgmJihBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaCh0aGlzLl90b2dnbGVEZXRhaWxzQ2VsbCx0aGlzKSx0aGlzLl91cGRhdGUoKSl9fV9kZXRhaWxzT3BlbmVkSXRlbXNDaGFuZ2VkKHQpeyJkZXRhaWxzT3BlbmVkSXRlbXMubGVuZ3RoIiE9PXQucGF0aCYmdC52YWx1ZSYmQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pnt0aGlzLl90b2dnbGVEZXRhaWxzQ2VsbCh0LHQuX2l0ZW0pLHRoaXMuX2ExMXlVcGRhdGVSb3dEZXRhaWxzT3BlbmVkKHQsdGhpcy5faXNEZXRhaWxzT3BlbmVkKHQuX2l0ZW0pKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImRldGFpbHMtb3BlbmVkIix0aGlzLl9pc0RldGFpbHNPcGVuZWQodC5faXRlbSksdCl9KSl9X2NvbmZpZ3VyZURldGFpbHNDZWxsKHQpe3Quc2V0QXR0cmlidXRlKCJwYXJ0IiwiY2VsbCBkZXRhaWxzLWNlbGwiKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImZyb3plbiIsITAsdCl9X3RvZ2dsZURldGFpbHNDZWxsKHQsZSl7Y29uc3Qgbj10LnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKTtpZighbilyZXR1cm47Y29uc3QgaT0hdGhpcy5faXNEZXRhaWxzT3BlbmVkKGUpLHI9ISFuLmhpZGRlbiE9PWk7KG4uX2luc3RhbmNlfHxuLl9yZW5kZXJlcikmJm4uaGlkZGVuPT09aXx8KG4uaGlkZGVuPWksaT90LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIpOih0aGlzLnJvd0RldGFpbHNSZW5kZXJlcj8obi5fcmVuZGVyZXI9dGhpcy5yb3dEZXRhaWxzUmVuZGVyZXIsbi5fcmVuZGVyZXIuY2FsbCh0aGlzLG4uX2NvbnRlbnQsdGhpcyx7aW5kZXg6dC5pbmRleCxpdGVtOmV9KSk6dGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlJiYhbi5faW5zdGFuY2UmJihuLl9pbnN0YW5jZT10aGlzLl9yb3dEZXRhaWxzVGVtcGxhdGUudGVtcGxhdGl6ZXIuY3JlYXRlSW5zdGFuY2UoKSxuLl9jb250ZW50LmlubmVySFRNTD0iIixuLl9jb250ZW50LmFwcGVuZENoaWxkKG4uX2luc3RhbmNlLnJvb3QpLHRoaXMuX3VwZGF0ZUl0ZW0odCxlKSksRGkoKSx0LnN0eWxlLnNldFByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIsYCR7bi5vZmZzZXRIZWlnaHR9cHhgKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLm5vdGlmeVJlc2l6ZSgpKSkpKSxyJiYodGhpcy5fdXBkYXRlTWV0cmljcygpLHRoaXMuX3Bvc2l0aW9uSXRlbXMoKSl9X3VwZGF0ZURldGFpbHNDZWxsSGVpZ2h0cygpe0FycmF5LmZyb20odGhpcy4kLml0ZW1zLnF1ZXJ5U2VsZWN0b3JBbGwoJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl06bm90KFtoaWRkZW5dKScpKS5mb3JFYWNoKCh0PT57dC5wYXJlbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIsYCR7dC5vZmZzZXRIZWlnaHR9cHhgKX0pKX1faXNEZXRhaWxzT3BlbmVkKHQpe3JldHVybiB0aGlzLmRldGFpbHNPcGVuZWRJdGVtcyYmLTEhPT10aGlzLl9nZXRJdGVtSW5kZXhJbkFycmF5KHQsdGhpcy5kZXRhaWxzT3BlbmVkSXRlbXMpfW9wZW5JdGVtRGV0YWlscyh0KXt0aGlzLl9pc0RldGFpbHNPcGVuZWQodCl8fCh0aGlzLmRldGFpbHNPcGVuZWRJdGVtcz1bLi4udGhpcy5kZXRhaWxzT3BlbmVkSXRlbXMsdF0pfWNsb3NlSXRlbURldGFpbHModCl7dGhpcy5faXNEZXRhaWxzT3BlbmVkKHQpJiYodGhpcy5kZXRhaWxzT3BlbmVkSXRlbXM9dGhpcy5kZXRhaWxzT3BlbmVkSXRlbXMuZmlsdGVyKChlPT4hdGhpcy5faXRlbXNFcXVhbChlLHQpKSkpfV9kZXRhaWxzT3BlbmVkSW5zdGFuY2VDaGFuZ2VkQ2FsbGJhY2sodCxlKXtlP3RoaXMub3Blbkl0ZW1EZXRhaWxzKHQuaXRlbSk6dGhpcy5jbG9zZUl0ZW1EZXRhaWxzKHQuaXRlbSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyxqJHQ9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntfZnJvemVuQ2VsbHM6e3R5cGU6QXJyYXksdmFsdWU6KCk9PltdfSxfcm93V2l0aEZvY3VzZWRFbGVtZW50OkVsZW1lbnQsX2RlbHRhWUFjYzp7dHlwZTpOdW1iZXIsdmFsdWU6MH0sX3VzZVN0aWNreTp7dHlwZTpCb29sZWFuLHZhbHVlOndpbmRvdy5DU1MmJndpbmRvdy5DU1Muc3VwcG9ydHMmJih3aW5kb3cuQ1NTLnN1cHBvcnRzKCJwb3NpdGlvbiIsInN0aWNreSIpfHx3aW5kb3cuQ1NTLnN1cHBvcnRzKCJwb3NpdGlvbiIsIi13ZWJraXQtc3RpY2t5IikpfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9zY3JvbGxWaWV3cG9ydEhlaWdodFVwZGF0ZWQoX3ZpZXdwb3J0SGVpZ2h0KSJdfXNldCBfc2Nyb2xsVG9wKHQpe3RoaXMuJC50YWJsZS5zY3JvbGxUb3A9dH1nZXQgX3Njcm9sbFRvcCgpe3JldHVybiB0aGlzLiQudGFibGUuc2Nyb2xsVG9wfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9zY3JvbGxMaW5lSGVpZ2h0PXRoaXMuX2dldFNjcm9sbExpbmVIZWlnaHQoKX1fZ2V0U2Nyb2xsTGluZUhlaWdodCgpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5zdHlsZS5mb250U2l6ZT0iaW5pdGlhbCIsdC5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO2NvbnN0IGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZm9udFNpemU7cmV0dXJuIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCksZT93aW5kb3cucGFyc2VJbnQoZSk6dm9pZCAwfV9zY3JvbGxWaWV3cG9ydEhlaWdodFVwZGF0ZWQodCl7dGhpcy5fc2Nyb2xsUGFnZUhlaWdodD10LXRoaXMuJC5oZWFkZXIuY2xpZW50SGVpZ2h0LXRoaXMuJC5mb290ZXIuY2xpZW50SGVpZ2h0LXRoaXMuX3Njcm9sbExpbmVIZWlnaHR9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuJC5vdXRlcnNjcm9sbGVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuc2Nyb2xsVGFyZ2V0PXRoaXMuJC50YWJsZSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLl9vbldoZWVsKSx0aGlzLiQuaXRlbXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsKHQ9Pntjb25zdCBlPXQuY29tcG9zZWRQYXRoKCkuaW5kZXhPZih0aGlzLiQuaXRlbXMpO3RoaXMuX3Jvd1dpdGhGb2N1c2VkRWxlbWVudD10LmNvbXBvc2VkUGF0aCgpW2UtMV19KSksdGhpcy4kLml0ZW1zLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IiwoKCk9PnRoaXMuX3Jvd1dpdGhGb2N1c2VkRWxlbWVudD12b2lkIDApKSx0aGlzLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCgoKT0+dGhpcy5fX21vdXNlRG93bj0hMCkpLHRoaXMuc2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCgoKT0+e3RoaXMuX19tb3VzZURvd249ITEsdGhpcy5fX3BlbmRpbmdSZW9yZGVyJiYodGhpcy5fX3BlbmRpbmdSZW9yZGVyPSExLHNldFRpbWVvdXQoKCgpPT50aGlzLl9yZW9yZGVyUm93cygpKSw1MDApKX0pKX1zY3JvbGxUb0luZGV4KHQpe3RoaXMuX2FjY2Vzc0lyb25MaXN0QVBJKCgoKT0+c3VwZXIuc2Nyb2xsVG9JbmRleCh0KSkpfV9vbldoZWVsKHQpe2lmKHQuY3RybEtleXx8dGhpcy5faGFzU2Nyb2xsZWRBbmNlc3Rvcih0LnRhcmdldCx0LmRlbHRhWCx0LmRlbHRhWSkpcmV0dXJuO2NvbnN0IGU9dGhpcy4kLnRhYmxlO2xldCBuPXQuZGVsdGFZO2lmKHQuZGVsdGFNb2RlPT09V2hlZWxFdmVudC5ET01fREVMVEFfTElORT9uKj10aGlzLl9zY3JvbGxMaW5lSGVpZ2h0OnQuZGVsdGFNb2RlPT09V2hlZWxFdmVudC5ET01fREVMVEFfUEFHRSYmKG4qPXRoaXMuX3Njcm9sbFBhZ2VIZWlnaHQpLHRoaXMuX3doZWVsQW5pbWF0aW9uRnJhbWUpcmV0dXJuIHRoaXMuX2RlbHRhWUFjYys9bix2b2lkIHQucHJldmVudERlZmF1bHQoKTtuKz10aGlzLl9kZWx0YVlBY2MsdGhpcy5fZGVsdGFZQWNjPTAsdGhpcy5fd2hlZWxBbmltYXRpb25GcmFtZT0hMCx0aGlzLl9kZWJvdW5jZXJXaGVlbEFuaW1hdGlvbkZyYW1lPVRuLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlcldoZWVsQW5pbWF0aW9uRnJhbWUsX3QsKCgpPT50aGlzLl93aGVlbEFuaW1hdGlvbkZyYW1lPSExKSk7Y29uc3QgaT1NYXRoLmFicyh0LmRlbHRhWCkrTWF0aC5hYnMobik7dGhpcy5fY2FuU2Nyb2xsKGUsdC5kZWx0YVgsbik/KHQucHJldmVudERlZmF1bHQoKSxlLnNjcm9sbFRvcCs9bixlLnNjcm9sbExlZnQrPXQuZGVsdGFYLHRoaXMuX3Njcm9sbEhhbmRsZXIoKSx0aGlzLl9oYXNSZXNpZHVhbE1vbWVudHVtPSEwLHRoaXMuX2lnbm9yZU5ld1doZWVsPSEwLHRoaXMuX2RlYm91bmNlcklnbm9yZU5ld1doZWVsPVRuLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlcklnbm9yZU5ld1doZWVsLGd0LmFmdGVyKDUwMCksKCgpPT50aGlzLl9pZ25vcmVOZXdXaGVlbD0hMSkpKTp0aGlzLl9oYXNSZXNpZHVhbE1vbWVudHVtJiZpPD10aGlzLl9wcmV2aW91c01vbWVudHVtfHx0aGlzLl9pZ25vcmVOZXdXaGVlbD90LnByZXZlbnREZWZhdWx0KCk6aT50aGlzLl9wcmV2aW91c01vbWVudHVtJiYodGhpcy5faGFzUmVzaWR1YWxNb21lbnR1bT0hMSksdGhpcy5fcHJldmlvdXNNb21lbnR1bT1pfV9oYXNTY3JvbGxlZEFuY2VzdG9yKHQsZSxuKXtyZXR1cm4idmFhZGluLWdyaWQtY2VsbC1jb250ZW50IiE9PXQubG9jYWxOYW1lJiYoISghdGhpcy5fY2FuU2Nyb2xsKHQsZSxuKXx8LTE9PT1bImF1dG8iLCJzY3JvbGwiXS5pbmRleE9mKGdldENvbXB1dGVkU3R5bGUodCkub3ZlcmZsb3cpKXx8KHQhPT10aGlzJiZ0LnBhcmVudEVsZW1lbnQ/dGhpcy5faGFzU2Nyb2xsZWRBbmNlc3Rvcih0LnBhcmVudEVsZW1lbnQsZSxuKTp2b2lkIDApKX1fY2FuU2Nyb2xsKHQsZSxuKXtyZXR1cm4gbj4wJiZ0LnNjcm9sbFRvcDx0LnNjcm9sbEhlaWdodC10Lm9mZnNldEhlaWdodHx8bjwwJiZ0LnNjcm9sbFRvcD4wfHxlPjAmJnQuc2Nyb2xsTGVmdDx0LnNjcm9sbFdpZHRoLXQub2Zmc2V0V2lkdGh8fGU8MCYmdC5zY3JvbGxMZWZ0PjB9X3NjaGVkdWxlU2Nyb2xsaW5nKCl7dGhpcy5fc2Nyb2xsaW5nRnJhbWV8fCh0aGlzLl9zY3JvbGxpbmdGcmFtZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLl90b2dnbGVBdHRyaWJ1dGUoInNjcm9sbGluZyIsITAsdGhpcy4kLnNjcm9sbGVyKSkpKSx0aGlzLl9kZWJvdW5jZVNjcm9sbGluZz1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZVNjcm9sbGluZyxndC5hZnRlcig1MDApLCgoKT0+e2NhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3Njcm9sbGluZ0ZyYW1lKSxkZWxldGUgdGhpcy5fc2Nyb2xsaW5nRnJhbWUsdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJzY3JvbGxpbmciLCExLHRoaXMuJC5zY3JvbGxlciksdGhpcy5fcmVvcmRlclJvd3MoKX0pKX1fYWZ0ZXJTY3JvbGwoKXt0aGlzLl90cmFuc2xhdGVTdGF0aW9uYXJ5RWxlbWVudHMoKSx0aGlzLmhhc0F0dHJpYnV0ZSgicmVvcmRlcmluZyIpfHx0aGlzLl9zY2hlZHVsZVNjcm9sbGluZygpLHRoaXMuX3VwZGF0ZU92ZXJmbG93KCl9X3VwZGF0ZU92ZXJmbG93KCl7bGV0IHQ9IiI7Y29uc3QgZT10aGlzLiQudGFibGU7ZS5zY3JvbGxUb3A8ZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQmJih0Kz0iIGJvdHRvbSIpLGUuc2Nyb2xsVG9wPjAmJih0Kz0iIHRvcCIpLGUuc2Nyb2xsTGVmdDxlLnNjcm9sbFdpZHRoLWUuY2xpZW50V2lkdGgmJih0Kz0iIHJpZ2h0IiksZS5zY3JvbGxMZWZ0PjAmJih0Kz0iIGxlZnQiKSx0aGlzLl9kZWJvdW5jZU92ZXJmbG93PVRuLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlT3ZlcmZsb3csX3QsKCgpPT57Y29uc3QgZT10LnRyaW0oKTtlLmxlbmd0aD4wJiZ0aGlzLmdldEF0dHJpYnV0ZSgib3ZlcmZsb3ciKSE9PWU/dGhpcy5zZXRBdHRyaWJ1dGUoIm92ZXJmbG93IixlKTowPT1lLmxlbmd0aCYmdGhpcy5oYXNBdHRyaWJ1dGUoIm92ZXJmbG93IikmJnRoaXMucmVtb3ZlQXR0cmlidXRlKCJvdmVyZmxvdyIpfSkpfV9yZW9yZGVyUm93cygpe2lmKHRoaXMuX19tb3VzZURvd24pcmV0dXJuIHZvaWQodGhpcy5fX3BlbmRpbmdSZW9yZGVyPSEwKTtjb25zdCB0PXRoaXMuJC5pdGVtcyxlPXQucXVlcnlTZWxlY3RvckFsbCgidHIiKTtpZighZS5sZW5ndGgpcmV0dXJuO2NvbnN0IG49dGhpcy5fdmlydHVhbFN0YXJ0K3RoaXMuX3ZpZHhPZmZzZXQsaT10aGlzLl9yb3dXaXRoRm9jdXNlZEVsZW1lbnR8fEFycmF5LmZyb20oZSkuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKVswXTtpZighaSlyZXR1cm47Y29uc3Qgcj1pLmluZGV4LW4sbz1BcnJheS5mcm9tKGUpLmluZGV4T2YoaSktcjtpZihvPjApZm9yKGxldCBuPTA7bjxvO24rKyl0LmFwcGVuZENoaWxkKGVbbl0pO2Vsc2UgaWYobzwwKWZvcihsZXQgbj1lLmxlbmd0aCtvO248ZS5sZW5ndGg7bisrKXQuaW5zZXJ0QmVmb3JlKGVbbl0sZVswXSk7aWYodGhpcy5fc2FmYXJpKXtjb25zdHt0cmFuc2Zvcm06dH09dGhpcy4kLmhlYWRlci5zdHlsZTt0aGlzLiQuaGVhZGVyLnN0eWxlLnRyYW5zZm9ybT0iIixzZXRUaW1lb3V0KCgoKT0+dGhpcy4kLmhlYWRlci5zdHlsZS50cmFuc2Zvcm09dCkpfX1fZnJvemVuQ2VsbHNDaGFuZ2VkKCl7dGhpcy5fZGVib3VuY2VyQ2FjaGVFbGVtZW50cz1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJDYWNoZUVsZW1lbnRzLHZ0LCgoKT0+e0FycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ1twYXJ0fj0iY2VsbCJdJykpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Quc3R5bGUudHJhbnNmb3JtPSIifSkpLHRoaXMuX2Zyb3plbkNlbGxzPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuJC50YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCJbZnJvemVuXSIpKSx0aGlzLl91cGRhdGVTY3JvbGxlck1lYXN1cmVtZW50cygpLHRoaXMuX3RyYW5zbGF0ZVN0YXRpb25hcnlFbGVtZW50cygpfSkpLHRoaXMuX3VwZGF0ZUxhc3RGcm96ZW4oKX1fdXBkYXRlU2Nyb2xsZXJNZWFzdXJlbWVudHMoKXt0aGlzLl9mcm96ZW5DZWxscy5sZW5ndGg+MCYmdGhpcy5fX2lzUlRMJiYodGhpcy5fX3Njcm9sbGVyTWV0cmljcz17c2Nyb2xsV2lkdGg6dGhpcy4kLnRhYmxlLnNjcm9sbFdpZHRoLGNsaWVudFdpZHRoOnRoaXMuJC50YWJsZS5jbGllbnRXaWR0aH0pfV91cGRhdGVMYXN0RnJvemVuKCl7aWYoIXRoaXMuX2NvbHVtblRyZWUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fY29sdW1uVHJlZVt0aGlzLl9jb2x1bW5UcmVlLmxlbmd0aC0xXS5zbGljZSgwKTt0LnNvcnQoKCh0LGUpPT50Ll9vcmRlci1lLl9vcmRlcikpO2NvbnN0IGU9dC5yZWR1Y2UoKCh0LGUsbik9PihlLl9sYXN0RnJvemVuPSExLGUuZnJvemVuJiYhZS5oaWRkZW4/bjp0KSksdm9pZCAwKTt2b2lkIDAhPT1lJiYodFtlXS5fbGFzdEZyb3plbj0hMCl9X3RyYW5zbGF0ZVN0YXRpb25hcnlFbGVtZW50cygpe2NvbnN0IHQ9TWF0aC5tYXgoMCx0aGlzLl9zY3JvbGxMZWZ0KSxlPU1hdGgubWF4KDAsdGhpcy5fc2Nyb2xsVG9wKTtsZXQgbj0wLGk9MCxyPTA7aWYodGhpcy5fdXNlU3RpY2t5fHwobj10LGk9ZSxyPXRoaXMuJC50YWJsZS5jbGllbnRIZWlnaHQtdGhpcy4kLmZvb3Rlci5vZmZzZXRIZWlnaHQtdGhpcy4kLmZvb3Rlci5vZmZzZXRUb3ApLHRoaXMuJC5oZWFkZXIuc3R5bGUudHJhbnNmb3JtPXRoaXMuX2dldFRyYW5zbGF0ZSgtdCtuLGkpLHRoaXMuJC5mb290ZXIuc3R5bGUudHJhbnNmb3JtPXRoaXMuX2dldFRyYW5zbGF0ZSgtdCtuLGkrciksdGhpcy4kLml0ZW1zLnN0eWxlLnRyYW5zZm9ybT10aGlzLl9nZXRUcmFuc2xhdGUoLXQrbiwwKSx0aGlzLl9mcm96ZW5DZWxscy5sZW5ndGg+MCl7Y29uc3QgdD10aGlzLl9faXNSVEw/dGhpcy5fX2dldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHRoaXMuJC50YWJsZSkrdGhpcy5fX3Njcm9sbGVyTWV0cmljcy5jbGllbnRXaWR0aC10aGlzLl9fc2Nyb2xsZXJNZXRyaWNzLnNjcm9sbFdpZHRoOnRoaXMuX3Njcm9sbExlZnQsZT10aGlzLl9nZXRUcmFuc2xhdGUodCwwKTtmb3IobGV0IHQ9MDt0PHRoaXMuX2Zyb3plbkNlbGxzLmxlbmd0aDt0KyspdGhpcy5fZnJvemVuQ2VsbHNbdF0uc3R5bGUudHJhbnNmb3JtPWV9fV9nZXRUcmFuc2xhdGUodCxlKXtyZXR1cm5gdHJhbnNsYXRlKCR7dH1weCwgJHtlfXB4KWB9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyxHJHQ9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntzZWxlY3RlZEl0ZW1zOnt0eXBlOk9iamVjdCxub3RpZnk6ITAsdmFsdWU6KCk9PltdfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9zZWxlY3RlZEl0ZW1zQ2hhbmdlZChzZWxlY3RlZEl0ZW1zLiopIl19X2lzU2VsZWN0ZWQodCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcyYmdGhpcy5fZ2V0SXRlbUluZGV4SW5BcnJheSh0LHRoaXMuc2VsZWN0ZWRJdGVtcyk+LTF9c2VsZWN0SXRlbSh0KXt0aGlzLl9pc1NlbGVjdGVkKHQpfHwodGhpcy5zZWxlY3RlZEl0ZW1zPVsuLi50aGlzLnNlbGVjdGVkSXRlbXMsdF0pfWRlc2VsZWN0SXRlbSh0KXt0aGlzLl9pc1NlbGVjdGVkKHQpJiYodGhpcy5zZWxlY3RlZEl0ZW1zPXRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGU9PiF0aGlzLl9pdGVtc0VxdWFsKGUsdCkpKSl9X3RvZ2dsZUl0ZW0odCl7LTE9PT10aGlzLl9nZXRJdGVtSW5kZXhJbkFycmF5KHQsdGhpcy5zZWxlY3RlZEl0ZW1zKT90aGlzLnNlbGVjdEl0ZW0odCk6dGhpcy5kZXNlbGVjdEl0ZW0odCl9X3NlbGVjdGVkSXRlbXNDaGFuZ2VkKHQpeyF0aGlzLiQuaXRlbXMuY2hpbGRyZW4ubGVuZ3RofHwic2VsZWN0ZWRJdGVtcyIhPT10LnBhdGgmJiJzZWxlY3RlZEl0ZW1zLnNwbGljZXMiIT09dC5wYXRofHxBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaCgodD0+e3RoaXMuX3VwZGF0ZUl0ZW0odCx0Ll9pdGVtKX0pKX1fc2VsZWN0ZWRJbnN0YW5jZUNoYW5nZWRDYWxsYmFjayh0LGUpe2U/dGhpcy5zZWxlY3RJdGVtKHQuaXRlbSk6dGhpcy5kZXNlbGVjdEl0ZW0odC5pdGVtKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLFckdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue211bHRpU29ydDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfc29ydGVyczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX0sX3ByZXZpb3VzU29ydGVyczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX19fXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInNvcnRlci1jaGFuZ2VkIix0aGlzLl9vblNvcnRlckNoYW5nZWQpfV9vblNvcnRlckNoYW5nZWQodCl7Y29uc3QgZT10LnRhcmdldDt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX191cGRhdGVTb3J0ZXIoZSksdGhpcy5fX2FwcGx5U29ydGVycygpfV9fcmVtb3ZlU29ydGVycyh0KXswIT10Lmxlbmd0aCYmKHRoaXMuX3NvcnRlcnM9dGhpcy5fc29ydGVycy5maWx0ZXIoKGU9PnQuaW5kZXhPZihlKTwwKSksdGhpcy5tdWx0aVNvcnQmJnRoaXMuX191cGRhdGVTb3J0T3JkZXJzKCksdGhpcy5fX2FwcGx5U29ydGVycygpKX1fX3VwZGF0ZVNvcnRPcmRlcnMoKXt0aGlzLl9zb3J0ZXJzLmZvckVhY2goKCh0LGUpPT50Ll9vcmRlcj10aGlzLl9zb3J0ZXJzLmxlbmd0aD4xP2U6bnVsbCksdGhpcyl9X191cGRhdGVTb3J0ZXIodCl7aWYodC5kaXJlY3Rpb258fC0xIT09dGhpcy5fc29ydGVycy5pbmRleE9mKHQpKWlmKHQuX29yZGVyPW51bGwsdGhpcy5tdWx0aVNvcnQpdGhpcy5fcmVtb3ZlQXJyYXlJdGVtKHRoaXMuX3NvcnRlcnMsdCksdC5kaXJlY3Rpb24mJnRoaXMuX3NvcnRlcnMudW5zaGlmdCh0KSx0aGlzLl9fdXBkYXRlU29ydE9yZGVycygpO2Vsc2UgaWYodC5kaXJlY3Rpb24pe2NvbnN0IGU9dGhpcy5fc29ydGVycy5maWx0ZXIoKGU9PmUhPXQpKTt0aGlzLl9zb3J0ZXJzPVt0XSxlLmZvckVhY2goKHQ9Pnt0Ll9vcmRlcj1udWxsLHQuZGlyZWN0aW9uPW51bGx9KSl9fV9fYXBwbHlTb3J0ZXJzKCl7dGhpcy5kYXRhUHJvdmlkZXImJnRoaXMuaXNBdHRhY2hlZCYmSlNPTi5zdHJpbmdpZnkodGhpcy5fcHJldmlvdXNTb3J0ZXJzKSE9PUpTT04uc3RyaW5naWZ5KHRoaXMuX21hcFNvcnRlcnMoKSkmJnRoaXMuY2xlYXJDYWNoZSgpLHRoaXMuX2ExMXlVcGRhdGVTb3J0ZXJzKCksdGhpcy5fcHJldmlvdXNTb3J0ZXJzPXRoaXMuX21hcFNvcnRlcnMoKX1fbWFwU29ydGVycygpe3JldHVybiB0aGlzLl9zb3J0ZXJzLm1hcCgodD0+KHtwYXRoOnQucGF0aCxkaXJlY3Rpb246dC5kaXJlY3Rpb259KSkpfV9yZW1vdmVBcnJheUl0ZW0odCxlKXtjb25zdCBuPXQuaW5kZXhPZihlKTtuPi0xJiZ0LnNwbGljZShuLDEpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8scSR0PXQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57Y2VsbENsYXNzTmFtZUdlbmVyYXRvcjpGdW5jdGlvbn19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9fY2VsbENsYXNzTmFtZUdlbmVyYXRvckNoYW5nZWQoY2VsbENsYXNzTmFtZUdlbmVyYXRvcikiXX1fX2NlbGxDbGFzc05hbWVHZW5lcmF0b3JDaGFuZ2VkKCl7dGhpcy5nZW5lcmF0ZUNlbGxDbGFzc05hbWVzKCl9Z2VuZXJhdGVDZWxsQ2xhc3NOYW1lcygpe0FycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpLmZvckVhY2goKHQ9PnRoaXMuX2dlbmVyYXRlQ2VsbENsYXNzTmFtZXModCx0aGlzLl9fZ2V0Um93TW9kZWwodCkpKSl9X2dlbmVyYXRlQ2VsbENsYXNzTmFtZXModCxlKXtBcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2goKHQ9PntpZih0Ll9fZ2VuZXJhdGVkQ2xhc3NlcyYmdC5fX2dlbmVyYXRlZENsYXNzZXMuZm9yRWFjaCgoZT0+dC5jbGFzc0xpc3QucmVtb3ZlKGUpKSksdGhpcy5jZWxsQ2xhc3NOYW1lR2VuZXJhdG9yKXtjb25zdCBuPXRoaXMuY2VsbENsYXNzTmFtZUdlbmVyYXRvcih0Ll9jb2x1bW4sZSk7dC5fX2dlbmVyYXRlZENsYXNzZXM9biYmbi5zcGxpdCgiICIpLmZpbHRlcigodD0+dC5sZW5ndGg+MCkpLHQuX19nZW5lcmF0ZWRDbGFzc2VzJiZ0Ll9fZ2VuZXJhdGVkQ2xhc3Nlcy5mb3JFYWNoKChlPT50LmNsYXNzTGlzdC5hZGQoZSkpKX19KSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyxZJHQ9ImJldHdlZW4iLFgkdD0ib24tdG9wLW9yLWJldHdlZW4iLCQkdD0iYWJvdmUiLEskdD0iYmVsb3ciLFokdD0iZW1wdHkiLEokdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2Ryb3BNb2RlOlN0cmluZyxyb3dzRHJhZ2dhYmxlOkJvb2xlYW4sZHJhZ0ZpbHRlcjpGdW5jdGlvbixkcm9wRmlsdGVyOkZ1bmN0aW9uLF9fZG5kQXV0b1Njcm9sbFRocmVzaG9sZDp7dmFsdWU6NTB9fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2RyYWdEcm9wQWNjZXNzQ2hhbmdlZChyb3dzRHJhZ2dhYmxlLCBkcm9wTW9kZSwgZHJhZ0ZpbHRlciwgZHJvcEZpbHRlcikiXX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsdGhpcy5fb25EcmFnU3RhcnQuYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuX29uRHJhZ0VuZC5iaW5kKHRoaXMpKSx0aGlzLiQudGFibGUuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuX29uRHJhZ092ZXIuYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsdGhpcy5fb25EcmFnTGVhdmUuYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLHRoaXMuX29uRHJvcC5iaW5kKHRoaXMpKSx0aGlzLiQudGFibGUuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwodD0+e3RoaXMuZHJvcE1vZGUmJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSl9KSl9X29uRHJhZ1N0YXJ0KHQpe2lmKHRoaXMucm93c0RyYWdnYWJsZSl7bGV0IGU9dC50YXJnZXQ7aWYoInZhYWRpbi1ncmlkLWNlbGwtY29udGVudCI9PT1lLmxvY2FsTmFtZSYmKGU9ZS5hc3NpZ25lZFNsb3QucGFyZW50Tm9kZS5wYXJlbnROb2RlKSxlLnBhcmVudE5vZGUhPT10aGlzLiQuaXRlbXMpcmV0dXJuO2lmKHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJkcmFnZ2luZy1yb3dzIiwhMCx0aGlzKSx0aGlzLl9zYWZhcmkpe2NvbnN0IHQ9ZS5zdHlsZS50cmFuc2Zvcm07ZS5zdHlsZS50b3A9L3RyYW5zbGF0ZVlcKCguKilcKS8uZXhlYyh0KVsxXSxlLnN0eWxlLnRyYW5zZm9ybT0ibm9uZSIscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e2Uuc3R5bGUudG9wPSIiLGUuc3R5bGUudHJhbnNmb3JtPXR9KSl9Y29uc3Qgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuX2lvcz90LmRhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UoZSk6dC5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKGUsdC5jbGllbnRYLW4ubGVmdCx0LmNsaWVudFktbi50b3ApO2xldCBpPVtlXTt0aGlzLl9pc1NlbGVjdGVkKGUuX2l0ZW0pJiYoaT10aGlzLl9fZ2V0Vmlld3BvcnRSb3dzKCkuZmlsdGVyKCh0PT50aGlzLl9pc1NlbGVjdGVkKHQuX2l0ZW0pKSkuZmlsdGVyKCh0PT4hdGhpcy5kcmFnRmlsdGVyfHx0aGlzLmRyYWdGaWx0ZXIodGhpcy5fX2dldFJvd01vZGVsKHQpKSkpKSx0LmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0Iix0aGlzLl9fZm9ybWF0RGVmYXVsdFRyYW5zZmVyRGF0YShpKSksZS5zZXRBdHRyaWJ1dGUoImRyYWdzdGFydCIsaS5sZW5ndGg+MT9pLmxlbmd0aDoiIiksdGhpcy51cGRhdGVTdHlsZXMoeyItLV9ncmlkLWRyYWctc3RhcnQteCI6dC5jbGllbnRYLW4ubGVmdCsyMCsicHgiLCItLV9ncmlkLWRyYWctc3RhcnQteSI6dC5jbGllbnRZLW4udG9wKzEwKyJweCJ9KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57ZS5yZW1vdmVBdHRyaWJ1dGUoImRyYWdzdGFydCIpLHRoaXMudXBkYXRlU3R5bGVzKHsiLS1fZ3JpZC1kcmFnLXN0YXJ0LXgiOiIiLCItLV9ncmlkLWRyYWctc3RhcnQteSI6IiJ9KX0pKTtjb25zdCByPW5ldyBDdXN0b21FdmVudCgiZ3JpZC1kcmFnc3RhcnQiLHtkZXRhaWw6e2RyYWdnZWRJdGVtczppLm1hcCgodD0+dC5faXRlbSkpLHNldERyYWdEYXRhOihlLG4pPT50LmRhdGFUcmFuc2Zlci5zZXREYXRhKGUsbiksc2V0RHJhZ2dlZEl0ZW1zQ291bnQ6dD0+ZS5zZXRBdHRyaWJ1dGUoImRyYWdzdGFydCIsdCl9fSk7ci5vcmlnaW5hbEV2ZW50PXQsdGhpcy5kaXNwYXRjaEV2ZW50KHIpfX1fb25EcmFnRW5kKHQpe3RoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZHJhZ2dpbmctcm93cyIsITEsdGhpcyksdC5zdG9wUHJvcGFnYXRpb24oKTtjb25zdCBlPW5ldyBDdXN0b21FdmVudCgiZ3JpZC1kcmFnZW5kIik7ZS5vcmlnaW5hbEV2ZW50PXQsdGhpcy5kaXNwYXRjaEV2ZW50KGUpfV9vbkRyYWdMZWF2ZSh0KXt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX2NsZWFyRHJhZ1N0eWxlcygpfV9vbkRyYWdPdmVyKHQpe2lmKHRoaXMuZHJvcE1vZGUpe2lmKHRoaXMuX2Ryb3BMb2NhdGlvbj12b2lkIDAsdGhpcy5fZHJhZ092ZXJJdGVtPXZvaWQgMCx0aGlzLl9fZG5kQXV0b1Njcm9sbCh0LmNsaWVudFkpKXJldHVybiB2b2lkIHRoaXMuX2NsZWFyRHJhZ1N0eWxlcygpO2xldCBlPXQuY29tcG9zZWRQYXRoKCkuZmlsdGVyKCh0PT4idHIiPT09dC5sb2NhbE5hbWUpKVswXTtpZih0aGlzLl9lZmZlY3RpdmVTaXplJiYib24tZ3JpZCIhPT10aGlzLmRyb3BNb2RlKWlmKGUmJmUucGFyZW50Tm9kZT09PXRoaXMuJC5pdGVtcyl7Y29uc3Qgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuX2Ryb3BMb2NhdGlvbj0ib24tdG9wIix0aGlzLmRyb3BNb2RlPT09WSR0P3RoaXMuX2Ryb3BMb2NhdGlvbj10LmNsaWVudFktbi50b3A8bi5ib3R0b20tdC5jbGllbnRZPyQkdDpLJHQ6dGhpcy5kcm9wTW9kZT09PVgkdCYmKHQuY2xpZW50WS1uLnRvcDxuLmhlaWdodC8zP3RoaXMuX2Ryb3BMb2NhdGlvbj0kJHQ6dC5jbGllbnRZLW4udG9wPm4uaGVpZ2h0LzMqMiYmKHRoaXMuX2Ryb3BMb2NhdGlvbj1LJHQpKX1lbHNle2lmKGUpcmV0dXJuO2lmKHRoaXMuZHJvcE1vZGUhPT1ZJHQmJnRoaXMuZHJvcE1vZGUhPT1YJHQpcmV0dXJuO2U9QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigodD0+IXQuaGlkZGVuKSkucG9wKCksdGhpcy5fZHJvcExvY2F0aW9uPUskdH1lbHNlIHRoaXMuX2Ryb3BMb2NhdGlvbj1aJHQ7aWYoZSYmZS5oYXNBdHRyaWJ1dGUoImRyb3AtZGlzYWJsZWQiKSlyZXR1cm4gdm9pZCh0aGlzLl9kcm9wTG9jYXRpb249dm9pZCAwKTt0LnN0b3BQcm9wYWdhdGlvbigpLHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9kcm9wTG9jYXRpb249PT1aJHQ/dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJkcmFnb3ZlciIsITAsdGhpcyk6ZT8odGhpcy5fZHJhZ092ZXJJdGVtPWUuX2l0ZW0sZS5nZXRBdHRyaWJ1dGUoImRyYWdvdmVyIikhPT10aGlzLl9kcm9wTG9jYXRpb24mJmUuc2V0QXR0cmlidXRlKCJkcmFnb3ZlciIsdGhpcy5fZHJvcExvY2F0aW9uKSk6dGhpcy5fY2xlYXJEcmFnU3R5bGVzKCl9fV9fZG5kQXV0b1Njcm9sbCh0KXtpZih0aGlzLl9fZG5kQXV0b1Njcm9sbGluZylyZXR1cm4hMDtjb25zdCBlPXRoaXMuJC5oZWFkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLG49dGhpcy4kLmZvb3Rlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsaT1lLXQrdGhpcy5fX2RuZEF1dG9TY3JvbGxUaHJlc2hvbGQscj10LW4rdGhpcy5fX2RuZEF1dG9TY3JvbGxUaHJlc2hvbGQ7bGV0IG89MDtpZihyPjA/bz0yKnI6aT4wJiYobz0yKi1pKSxvKXtjb25zdCB0PXRoaXMuJC50YWJsZS5zY3JvbGxUb3A7aWYodGhpcy4kLnRhYmxlLnNjcm9sbFRvcCs9byx0IT09dGhpcy4kLnRhYmxlLnNjcm9sbFRvcClyZXR1cm4gdGhpcy5fX2RuZEF1dG9TY3JvbGxpbmc9ITAsc2V0VGltZW91dCgoKCk9PnRoaXMuX19kbmRBdXRvU2Nyb2xsaW5nPSExKSwyMCksdGhpcy5fc2Nyb2xsSGFuZGxlcigpLCEwfX1fX2dldFZpZXdwb3J0Um93cygpe2NvbnN0IHQ9dGhpcy4kLmhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20sZT10aGlzLiQuZm9vdGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigobj0+e2NvbnN0IGk9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gaS5ib3R0b20+dCYmaS50b3A8ZX0pKX1fY2xlYXJEcmFnU3R5bGVzKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImRyYWdvdmVyIiksQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZvckVhY2goKHQ9PnQucmVtb3ZlQXR0cmlidXRlKCJkcmFnb3ZlciIpKSl9X29uRHJvcCh0KXtpZih0aGlzLmRyb3BNb2RlKXt0LnN0b3BQcm9wYWdhdGlvbigpLHQucHJldmVudERlZmF1bHQoKTtjb25zdCBlPXQuZGF0YVRyYW5zZmVyLnR5cGVzJiZBcnJheS5mcm9tKHQuZGF0YVRyYW5zZmVyLnR5cGVzKS5tYXAoKGU9Pih7dHlwZTplLGRhdGE6dC5kYXRhVHJhbnNmZXIuZ2V0RGF0YShlKX0pKSk7dGhpcy5fY2xlYXJEcmFnU3R5bGVzKCk7Y29uc3Qgbj1uZXcgQ3VzdG9tRXZlbnQoImdyaWQtZHJvcCIse2J1YmJsZXM6dC5idWJibGVzLGNhbmNlbGFibGU6dC5jYW5jZWxhYmxlLGRldGFpbDp7ZHJvcFRhcmdldEl0ZW06dGhpcy5fZHJhZ092ZXJJdGVtLGRyb3BMb2NhdGlvbjp0aGlzLl9kcm9wTG9jYXRpb24sZHJhZ0RhdGE6ZX19KTtuLm9yaWdpbmFsRXZlbnQ9dCx0aGlzLmRpc3BhdGNoRXZlbnQobil9fV9fZm9ybWF0RGVmYXVsdFRyYW5zZmVyRGF0YSh0KXtyZXR1cm4gdC5tYXAoKHQ9PkFycmF5LmZyb20odC5jaGlsZHJlbikuZmlsdGVyKCh0PT4hdC5oaWRkZW4mJi0xPT09dC5nZXRBdHRyaWJ1dGUoInBhcnQiKS5pbmRleE9mKCJkZXRhaWxzLWNlbGwiKSkpLnNvcnQoKCh0LGUpPT50Ll9jb2x1bW4uX29yZGVyPmUuX2NvbHVtbi5fb3JkZXI/MTotMSkpLm1hcCgodD0+dC5fY29udGVudC50ZXh0Q29udGVudC50cmltKCkpKS5maWx0ZXIoKHQ9PnQpKS5qb2luKCJcdCIpKSkuam9pbigiXG4iKX1fZHJhZ0Ryb3BBY2Nlc3NDaGFuZ2VkKCl7dGhpcy5maWx0ZXJEcmFnQW5kRHJvcCgpfWZpbHRlckRyYWdBbmREcm9wKCl7QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigodD0+IXQuaGlkZGVuKSkuZm9yRWFjaCgodD0+e3RoaXMuX2ZpbHRlckRyYWdBbmREcm9wKHQsdGhpcy5fX2dldFJvd01vZGVsKHQpKX0pKX1fZmlsdGVyRHJhZ0FuZERyb3AodCxlKXtjb25zdCBuPSF0aGlzLnJvd3NEcmFnZ2FibGV8fHRoaXMuZHJhZ0ZpbHRlciYmIXRoaXMuZHJhZ0ZpbHRlcihlKSxpPSF0aGlzLmRyb3BNb2RlfHx0aGlzLmRyb3BGaWx0ZXImJiF0aGlzLmRyb3BGaWx0ZXIoZSk7QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5tYXAoKHQ9PnQuX2NvbnRlbnQpKS5mb3JFYWNoKCh0PT57bj90LnJlbW92ZUF0dHJpYnV0ZSgiZHJhZ2dhYmxlIik6dC5zZXRBdHRyaWJ1dGUoImRyYWdnYWJsZSIsITApfSkpLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZHJhZy1kaXNhYmxlZCIsbix0KSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImRyb3AtZGlzYWJsZWQiLGksdCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyxRJHQ9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntfaGVhZGVyRm9jdXNhYmxlOnt0eXBlOk9iamVjdCxvYnNlcnZlcjoiX2ZvY3VzYWJsZUNoYW5nZWQifSxfaXRlbXNGb2N1c2FibGU6e3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfZm9jdXNhYmxlQ2hhbmdlZCJ9LF9mb290ZXJGb2N1c2FibGU6e3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfZm9jdXNhYmxlQ2hhbmdlZCJ9LF9uYXZpZ2F0aW5nSXNIaWRkZW46Qm9vbGVhbixfZm9jdXNlZEl0ZW1JbmRleDp7dHlwZTpOdW1iZXIsdmFsdWU6MH0sX2ZvY3VzZWRDb2x1bW5PcmRlcjpOdW1iZXIsaW50ZXJhY3Rpbmc6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAscmVhZE9ubHk6ITAsb2JzZXJ2ZXI6Il9pbnRlcmFjdGluZ0NoYW5nZWQifX19cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuX2lvc3x8dGhpcy5fYW5kcm9pZHx8KHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fb25LZXlEb3duKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLl9vbktleVVwKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLHRoaXMuX29uRm9jdXNJbiksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsdGhpcy5fb25Gb2N1c091dCksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLHRoaXMuX29uQ2VsbEZvY3VzSW4uYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0Iix0aGlzLl9vbkNlbGxGb2N1c091dC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsKCgpPT57dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMSx0aGlzKSx0aGlzLl9pc01vdXNlZG93bj0hMH0pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCgoKT0+dGhpcy5faXNNb3VzZWRvd249ITEpKSl9X2ZvY3VzYWJsZUNoYW5nZWQodCxlKXtlJiZlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLHQmJnRoaXMuX3VwZGF0ZUdyaWRTZWN0aW9uRm9jdXNUYXJnZXQodCl9X2ludGVyYWN0aW5nQ2hhbmdlZCgpe3RoaXMuX3VwZGF0ZUdyaWRTZWN0aW9uRm9jdXNUYXJnZXQodGhpcy5faGVhZGVyRm9jdXNhYmxlKSx0aGlzLl91cGRhdGVHcmlkU2VjdGlvbkZvY3VzVGFyZ2V0KHRoaXMuX2l0ZW1zRm9jdXNhYmxlKSx0aGlzLl91cGRhdGVHcmlkU2VjdGlvbkZvY3VzVGFyZ2V0KHRoaXMuX2Zvb3RlckZvY3VzYWJsZSl9X29uS2V5RG93bih0KXtjb25zdCBlPXQua2V5O2xldCBuO3N3aXRjaChlKXtjYXNlIkFycm93VXAiOmNhc2UiQXJyb3dEb3duIjpjYXNlIkFycm93TGVmdCI6Y2FzZSJBcnJvd1JpZ2h0IjpjYXNlIlBhZ2VVcCI6Y2FzZSJQYWdlRG93biI6Y2FzZSJIb21lIjpjYXNlIkVuZCI6bj0iTmF2aWdhdGlvbiI7YnJlYWs7Y2FzZSJFbnRlciI6Y2FzZSJFc2NhcGUiOmNhc2UiRjIiOm49IkludGVyYWN0aW9uIjticmVhaztjYXNlIlRhYiI6bj0iVGFiIjticmVhaztjYXNlIiAiOm49IlNwYWNlIn10aGlzLl9kZXRlY3RJbnRlcmFjdGluZyh0KSx0aGlzLmludGVyYWN0aW5nJiYiSW50ZXJhY3Rpb24iIT09biYmKG49dm9pZCAwKSxuJiZ0aGlzW2Bfb24ke259S2V5RG93bmBdKHQsZSl9X2Vuc3VyZVNjcm9sbGVkVG9JbmRleCh0KXtBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKChlPT5lLmluZGV4PT09dCkpWzBdfHx0aGlzLl9zY3JvbGxUb0luZGV4KHQpfV9vbk5hdmlnYXRpb25LZXlEb3duKHQsZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0LnBhcmVudE5vZGUuY2hpbGRyZW4sdCl9dGhpcy5fc2Nyb2xsSGFuZGxlcigpLHQucHJldmVudERlZmF1bHQoKTtjb25zdCBpPXRoaXMuX2xhc3RWaXNpYmxlSW5kZXgtdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXgtMTtsZXQgcj0wLG89MDtzd2l0Y2goZSl7Y2FzZSJBcnJvd1JpZ2h0IjpyPXRoaXMuX19pc1JUTD8tMToxO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0IjpyPXRoaXMuX19pc1JUTD8xOi0xO2JyZWFrO2Nhc2UiSG9tZSI6cj0tMS8wLHQuY3RybEtleSYmKG89LTEvMCk7YnJlYWs7Y2FzZSJFbmQiOnI9MS8wLHQuY3RybEtleSYmKG89MS8wKTticmVhaztjYXNlIkFycm93RG93biI6bz0xO2JyZWFrO2Nhc2UiQXJyb3dVcCI6bz0tMTticmVhaztjYXNlIlBhZ2VEb3duIjpvPWk7YnJlYWs7Y2FzZSJQYWdlVXAiOm89LWl9Y29uc3QgYT10LmNvbXBvc2VkUGF0aCgpWzBdLHM9bihhKSxsPXRoaXMuX2VsZW1lbnRNYXRjaGVzKGEsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSxjPWEucGFyZW50Tm9kZSx1PWMucGFyZW50Tm9kZSxoPSh1PT09dGhpcy4kLml0ZW1zP3RoaXMuX2VmZmVjdGl2ZVNpemU6dS5jaGlsZHJlbi5sZW5ndGgpLTEsZD11PT09dGhpcy4kLml0ZW1zP3ZvaWQgMCE9PXRoaXMuX2ZvY3VzZWRJdGVtSW5kZXg/dGhpcy5fZm9jdXNlZEl0ZW1JbmRleDpjLmluZGV4Om4oYyk7bGV0IHA9TWF0aC5tYXgoMCxNYXRoLm1pbihkK28saCkpLGY9ITE7aWYodT09PXRoaXMuJC5pdGVtcyl7Y29uc3QgdD1jLl9pdGVtLGU9dGhpcy5fY2FjaGUuZ2V0SXRlbUZvckluZGV4KHApO2Y9bD8wPT09bzoxPT09byYmdGhpcy5faXNEZXRhaWxzT3BlbmVkKHQpfHwtMT09PW8mJnAhPT1kJiZ0aGlzLl9pc0RldGFpbHNPcGVuZWQoZSksZiE9PWwmJigxPT09byYmZnx8LTE9PT1vJiYhZikmJihwPWQpfWlmKHUhPT10aGlzLiQuaXRlbXMpaWYocD5kKWZvcig7cDxoJiZ1LmNoaWxkcmVuW3BdLmhpZGRlbjspcCsrO2Vsc2UgaWYocDxkKWZvcig7cD4wJiZ1LmNoaWxkcmVuW3BdLmhpZGRlbjspcC0tO3ZvaWQgMD09PXRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlciYmKHRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlcj1sPzA6dGhpcy5fZ2V0Q29sdW1ucyh1LGQpLmZpbHRlcigodD0+IXQuaGlkZGVuKSlbc10uX29yZGVyKTtjb25zdCBtPXRoaXMuX2dldENvbHVtbnModSxwKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpLGc9bS5tYXAoKHQ9PnQuX29yZGVyKSkuc29ydCgoKHQsZSk9PnQtZSkpLF89Zy5sZW5ndGgtMSx5PWcuaW5kZXhPZihnLnNsaWNlKDApLnNvcnQoKCh0LGUpPT5NYXRoLmFicyh0LXRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlciktTWF0aC5hYnMoZS10aGlzLl9mb2N1c2VkQ29sdW1uT3JkZXIpKSlbMF0pLHY9MD09PW8mJmw/eTpNYXRoLm1heCgwLE1hdGgubWluKHkrcixfKSk7diE9PXkmJih0aGlzLl9mb2N1c2VkQ29sdW1uT3JkZXI9dm9pZCAwKSx1PT09dGhpcy4kLml0ZW1zJiZ0aGlzLl9lbnN1cmVTY3JvbGxlZFRvSW5kZXgocCksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMCx0aGlzKTtjb25zdCBiPW0ucmVkdWNlKCgodCxlLG4pPT4odFtlLl9vcmRlcl09bix0KSkse30pW2dbdl1dLHg9dT09PXRoaXMuJC5pdGVtcz9BcnJheS5mcm9tKHUuY2hpbGRyZW4pLmZpbHRlcigodD0+dC5pbmRleD09PXApKVswXTp1LmNoaWxkcmVuW3BdO2lmKCF4KXJldHVybjtjb25zdCB3PWY/QXJyYXkuZnJvbSh4LmNoaWxkcmVuKS5maWx0ZXIoKHQ9PnRoaXMuX2VsZW1lbnRNYXRjaGVzKHQsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSkpWzBdOnguY2hpbGRyZW5bYl07aWYodGhpcy5fc2Nyb2xsSG9yaXpvbnRhbGx5VG9DZWxsKHcpLHU9PT10aGlzLiQuaXRlbXMmJih0aGlzLl9mb2N1c2VkSXRlbUluZGV4PXApLHU9PT10aGlzLiQuaXRlbXMpe2NvbnN0IHQ9dy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlPXRoaXMuJC5mb290ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLG49dGhpcy4kLmhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b207dC5ib3R0b20+ZT8odGhpcy4kLnRhYmxlLnNjcm9sbFRvcCs9dC5ib3R0b20tZSx0aGlzLl9zY3JvbGxIYW5kbGVyKCkpOnQudG9wPG4mJih0aGlzLiQudGFibGUuc2Nyb2xsVG9wLT1uLXQudG9wLHRoaXMuX3Njcm9sbEhhbmRsZXIoKSl9dy5mb2N1cygpfV9vbkludGVyYWN0aW9uS2V5RG93bih0LGUpe2NvbnN0IG49dC5jb21wb3NlZFBhdGgoKVswXSxpPSJpbnB1dCI9PT1uLmxvY2FsTmFtZSYmIS9eKGJ1dHRvbnxjaGVja2JveHxjb2xvcnxmaWxlfGltYWdlfHJhZGlvfHJhbmdlfHJlc2V0fHN1Ym1pdCkkL2kudGVzdChuLnR5cGUpO2xldCByO3N3aXRjaChlKXtjYXNlIkVudGVyIjpyPSF0aGlzLmludGVyYWN0aW5nfHwhaTticmVhaztjYXNlIkVzY2FwZSI6cj0hMTticmVhaztjYXNlIkYyIjpyPSF0aGlzLmludGVyYWN0aW5nfWNvbnN0e2NlbGw6b309dGhpcy5fZ2V0R3JpZEV2ZW50TG9jYXRpb24odCk7aWYodGhpcy5pbnRlcmFjdGluZyE9PXImJm51bGwhPT1vKWlmKHIpe2NvbnN0IGU9by5fY29udGVudC5xdWVyeVNlbGVjdG9yKCJbZm9jdXMtdGFyZ2V0XSIpfHxvLl9jb250ZW50LmZpcnN0RWxlbWVudENoaWxkO2UmJih0LnByZXZlbnREZWZhdWx0KCksZS5mb2N1cygpLHRoaXMuX3NldEludGVyYWN0aW5nKCEwKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCExLHRoaXMpKX1lbHNlIHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9mb2N1c2VkQ29sdW1uT3JkZXI9dm9pZCAwLG8uZm9jdXMoKSx0aGlzLl9zZXRJbnRlcmFjdGluZyghMSksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMCx0aGlzKX1fcHJlZGljdEZvY3VzU3RlcFRhcmdldCh0LGUpe2NvbnN0IG49W3RoaXMuJC50YWJsZSx0aGlzLl9oZWFkZXJGb2N1c2FibGUsdGhpcy5faXRlbXNGb2N1c2FibGUsdGhpcy5fZm9vdGVyRm9jdXNhYmxlLHRoaXMuJC5mb2N1c2V4aXRdO2xldCBpPW4uaW5kZXhPZih0KTtmb3IoaSs9ZTtpPj0wJiZpPD1uLmxlbmd0aC0xJiYoIW5baV18fG5baV0ucGFyZW50Tm9kZS5oaWRkZW4pOylpKz1lO3JldHVybiBuW2ldfV9vblRhYktleURvd24odCl7Y29uc3QgZT10aGlzLl9wcmVkaWN0Rm9jdXNTdGVwVGFyZ2V0KHQuY29tcG9zZWRQYXRoKClbMF0sdC5zaGlmdEtleT8tMToxKTtpZihlPT09dGhpcy4kLnRhYmxlKXRoaXMuJC50YWJsZS5mb2N1cygpO2Vsc2UgaWYoZT09PXRoaXMuJC5mb2N1c2V4aXQpdGhpcy4kLmZvY3VzZXhpdC5mb2N1cygpO2Vsc2UgaWYoZT09PXRoaXMuX2l0ZW1zRm9jdXNhYmxlKXtsZXQgbj1lO2NvbnN0IGk9dGhpcy5faXRlbXNGb2N1c2FibGUucGFyZW50Tm9kZTtpZih0aGlzLl9lbnN1cmVTY3JvbGxlZFRvSW5kZXgodGhpcy5fZm9jdXNlZEl0ZW1JbmRleCksaS5pbmRleCE9PXRoaXMuX2ZvY3VzZWRJdGVtSW5kZXgpe2NvbnN0IHQ9QXJyYXkuZnJvbShpLmNoaWxkcmVuKS5pbmRleE9mKHRoaXMuX2l0ZW1zRm9jdXNhYmxlKSxlPUFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5maWx0ZXIoKHQ9PnQuaW5kZXg9PT10aGlzLl9mb2N1c2VkSXRlbUluZGV4KSlbMF07ZSYmKG49ZS5jaGlsZHJlblt0XSl9dC5wcmV2ZW50RGVmYXVsdCgpLG4uZm9jdXMoKX1lbHNlIHQucHJldmVudERlZmF1bHQoKSxlLmZvY3VzKCk7dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMCx0aGlzKX1fb25TcGFjZUtleURvd24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGU9dC5jb21wb3NlZFBhdGgoKVswXTtlLl9jb250ZW50JiZlLl9jb250ZW50LmZpcnN0RWxlbWVudENoaWxkfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsLWFjdGl2YXRlIix7ZGV0YWlsOnttb2RlbDp0aGlzLl9fZ2V0Um93TW9kZWwoZS5wYXJlbnRFbGVtZW50KX19KSl9X29uS2V5VXAodCl7aWYoIS9eKCB8U3BhY2VCYXIpJC8udGVzdCh0LmtleSkpcmV0dXJuO3QucHJldmVudERlZmF1bHQoKTtjb25zdCBlPXQuY29tcG9zZWRQYXRoKClbMF07aWYoZS5fY29udGVudCYmZS5fY29udGVudC5maXJzdEVsZW1lbnRDaGlsZCl7Y29uc3QgdD10aGlzLmhhc0F0dHJpYnV0ZSgibmF2aWdhdGluZyIpO2UuX2NvbnRlbnQuZmlyc3RFbGVtZW50Q2hpbGQuY2xpY2soKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLHQsdGhpcyl9fV9vbkZvY3VzSW4odCl7dGhpcy5faXNNb3VzZWRvd258fHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibmF2aWdhdGluZyIsITAsdGhpcyk7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpWzBdO2U9PT10aGlzLiQudGFibGV8fGU9PT10aGlzLiQuZm9jdXNleGl0Pyh0aGlzLl9wcmVkaWN0Rm9jdXNTdGVwVGFyZ2V0KGUsZT09PXRoaXMuJC50YWJsZT8xOi0xKS5mb2N1cygpLHRoaXMuX3NldEludGVyYWN0aW5nKCExKSk6dGhpcy5fZGV0ZWN0SW50ZXJhY3RpbmcodCl9X29uRm9jdXNPdXQodCl7dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMSx0aGlzKSx0aGlzLl9kZXRlY3RJbnRlcmFjdGluZyh0KX1fb25DZWxsRm9jdXNJbih0KXtjb25zdHtzZWN0aW9uOmUsY2VsbDpufT10aGlzLl9nZXRHcmlkRXZlbnRMb2NhdGlvbih0KTt0aGlzLl9kZXRlY3RJbnRlcmFjdGluZyh0KSxlJiZuJiYodGhpcy5fYWN0aXZlUm93R3JvdXA9ZSx0aGlzLiQuaGVhZGVyPT09ZT90aGlzLl9oZWFkZXJGb2N1c2FibGU9bjp0aGlzLiQuaXRlbXM9PT1lP3RoaXMuX2l0ZW1zRm9jdXNhYmxlPW46dGhpcy4kLmZvb3Rlcj09PWUmJih0aGlzLl9mb290ZXJGb2N1c2FibGU9biksbi5fY29udGVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2VsbC1mb2N1c2luIix7YnViYmxlczohMX0pKSxuLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsLWZvY3VzIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKSksdGhpcy5fZGV0ZWN0Rm9jdXNlZEl0ZW1JbmRleCh0KX1fb25DZWxsRm9jdXNPdXQodCl7Mz09PXQuY29tcG9zZWRQYXRoKCkuaW5kZXhPZih0aGlzLiQudGFibGUpJiZ0LmNvbXBvc2VkUGF0aCgpWzBdLl9jb250ZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsLWZvY3Vzb3V0Iix7YnViYmxlczohMX0pKX1fZGV0ZWN0SW50ZXJhY3RpbmcodCl7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpLnNvbWUoKHQ9PiJ2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQiPT09dC5sb2NhbE5hbWUpKTt0aGlzLl9zZXRJbnRlcmFjdGluZyhlKX1fZGV0ZWN0Rm9jdXNlZEl0ZW1JbmRleCh0KXtjb25zdHtzZWN0aW9uOmUscm93Om59PXRoaXMuX2dldEdyaWRFdmVudExvY2F0aW9uKHQpO2U9PT10aGlzLiQuaXRlbXMmJih0aGlzLl9mb2N1c2VkSXRlbUluZGV4PW4uaW5kZXgpfV91cGRhdGVHcmlkU2VjdGlvbkZvY3VzVGFyZ2V0KHQpe2lmKCF0KXJldHVybjtjb25zdCBlPXRoaXMuX2dldEdyaWRTZWN0aW9uRnJvbUZvY3VzVGFyZ2V0KHQpO3QudGFiSW5kZXg9dGhpcy5pbnRlcmFjdGluZyYmZT09PXRoaXMuX2FjdGl2ZVJvd0dyb3VwPy0xOjB9X3ByZXZlbnRTY3JvbGxlclJvdGF0aW5nQ2VsbEZvY3VzKHQsZSl7dC5pbmRleD09PXRoaXMuX2ZvY3VzZWRJdGVtSW5kZXgmJnRoaXMuaGFzQXR0cmlidXRlKCJuYXZpZ2F0aW5nIikmJnRoaXMuX2FjdGl2ZVJvd0dyb3VwPT09dGhpcy4kLml0ZW1zJiYodGhpcy5fbmF2aWdhdGluZ0lzSGlkZGVuPSEwLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibmF2aWdhdGluZyIsITEsdGhpcykpLGU9PT10aGlzLl9mb2N1c2VkSXRlbUluZGV4JiZ0aGlzLl9uYXZpZ2F0aW5nSXNIaWRkZW4mJih0aGlzLl9uYXZpZ2F0aW5nSXNIaWRkZW49ITEsdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMCx0aGlzKSl9X2dldENvbHVtbnModCxlKXtsZXQgbj10aGlzLl9jb2x1bW5UcmVlLmxlbmd0aC0xO3JldHVybiB0PT09dGhpcy4kLmhlYWRlcj9uPWU6dD09PXRoaXMuJC5mb290ZXImJihuPXRoaXMuX2NvbHVtblRyZWUubGVuZ3RoLTEtZSksdGhpcy5fY29sdW1uVHJlZVtuXX1fcmVzZXRLZXlib2FyZE5hdmlnYXRpb24oKXtpZih0aGlzLiQuaGVhZGVyLmZpcnN0RWxlbWVudENoaWxkJiYodGhpcy5faGVhZGVyRm9jdXNhYmxlPUFycmF5LmZyb20odGhpcy4kLmhlYWRlci5maXJzdEVsZW1lbnRDaGlsZC5jaGlsZHJlbikuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKVswXSksdGhpcy4kLml0ZW1zLmZpcnN0RWxlbWVudENoaWxkKXtjb25zdCB0PXRoaXMuX2l0ZXJhdGVJdGVtcygoKHQsZSk9PntpZih0aGlzLl9maXJzdFZpc2libGVJbmRleD09PWUpcmV0dXJuIHRoaXMuJC5pdGVtcy5jaGlsZHJlblt0XX0pKTt0JiYodGhpcy5faXRlbXNGb2N1c2FibGU9QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpWzBdKX10aGlzLiQuZm9vdGVyLmZpcnN0RWxlbWVudENoaWxkJiYodGhpcy5fZm9vdGVyRm9jdXNhYmxlPUFycmF5LmZyb20odGhpcy4kLmZvb3Rlci5maXJzdEVsZW1lbnRDaGlsZC5jaGlsZHJlbikuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKVswXSl9X3Njcm9sbEhvcml6b250YWxseVRvQ2VsbCh0KXtpZih0Lmhhc0F0dHJpYnV0ZSgiZnJvemVuIil8fHRoaXMuX2VsZW1lbnRNYXRjaGVzKHQsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSlyZXR1cm47Y29uc3QgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49dC5wYXJlbnROb2RlLGk9QXJyYXkuZnJvbShuLmNoaWxkcmVuKS5pbmRleE9mKHQpLHI9dGhpcy4kLnRhYmxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBvPXIubGVmdCxhPXIucmlnaHQ7Zm9yKGxldCB0PWktMTt0Pj0wO3QtLSl7Y29uc3QgZT1uLmNoaWxkcmVuW3RdO2lmKCFlLmhhc0F0dHJpYnV0ZSgiaGlkZGVuIikmJiF0aGlzLl9lbGVtZW50TWF0Y2hlcyhlLCdbcGFydH49ImRldGFpbHMtY2VsbCJdJykmJmUuaGFzQXR0cmlidXRlKCJmcm96ZW4iKSl7bz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0O2JyZWFrfX1mb3IobGV0IHQ9aSsxO3Q8bi5jaGlsZHJlbi5sZW5ndGg7dCsrKXtjb25zdCBlPW4uY2hpbGRyZW5bdF07aWYoIWUuaGFzQXR0cmlidXRlKCJoaWRkZW4iKSYmIXRoaXMuX2VsZW1lbnRNYXRjaGVzKGUsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSYmZS5oYXNBdHRyaWJ1dGUoImZyb3plbiIpKXthPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDticmVha319ZS5sZWZ0PG8mJih0aGlzLiQudGFibGUuc2Nyb2xsTGVmdCs9TWF0aC5yb3VuZChlLmxlZnQtbykpLGUucmlnaHQ+YSYmKHRoaXMuJC50YWJsZS5zY3JvbGxMZWZ0Kz1NYXRoLnJvdW5kKGUucmlnaHQtYSkpfV9lbGVtZW50TWF0Y2hlcyh0LGUpe3JldHVybiB0Lm1hdGNoZXM/dC5tYXRjaGVzKGUpOi0xIT09QXJyYXkuZnJvbSh0LnBhcmVudE5vZGUucXVlcnlTZWxlY3RvckFsbChlKSkuaW5kZXhPZih0KX1fZ2V0R3JpZEV2ZW50TG9jYXRpb24odCl7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpLG49ZS5pbmRleE9mKHRoaXMuJC50YWJsZSk7cmV0dXJue3NlY3Rpb246bj49MT9lW24tMV06bnVsbCxyb3c6bj49Mj9lW24tMl06bnVsbCxjZWxsOm4+PTM/ZVtuLTNdOm51bGx9fV9nZXRHcmlkU2VjdGlvbkZyb21Gb2N1c1RhcmdldCh0KXtyZXR1cm4gdD09PXRoaXMuX2hlYWRlckZvY3VzYWJsZT90aGlzLiQuaGVhZGVyOnQ9PT10aGlzLl9pdGVtc0ZvY3VzYWJsZT90aGlzLiQuaXRlbXM6dD09PXRoaXMuX2Zvb3RlckZvY3VzYWJsZT90aGlzLiQuZm9vdGVyOm51bGx9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyx0S3Q9dD0+Y2xhc3MgZXh0ZW5kcyhwaSh0KSl7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2NvbHVtblJlb3JkZXJpbmdBbGxvd2VkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9vcmRlckJhc2VTY29wZTp7dHlwZTpOdW1iZXIsdmFsdWU6MWU3fX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl91cGRhdGVPcmRlcnMoX2NvbHVtblRyZWUsIF9jb2x1bW5UcmVlLiopIl19cmVhZHkoKXtzdXBlci5yZWFkeSgpLGlpKHRoaXMsInRyYWNrIix0aGlzLl9vblRyYWNrRXZlbnQpLHRoaXMuX3Jlb3JkZXJHaG9zdD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignW3BhcnQ9InJlb3JkZXItZ2hvc3QiXScpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fb25Ub3VjaFN0YXJ0LmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9vblRvdWNoTW92ZS5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9vblRvdWNoRW5kLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMuX29uQ29udGV4dE1lbnUuYmluZCh0aGlzKSl9X29uQ29udGV4dE1lbnUodCl7dGhpcy5oYXNBdHRyaWJ1dGUoInJlb3JkZXJpbmciKSYmdC5wcmV2ZW50RGVmYXVsdCgpfV9vblRvdWNoU3RhcnQodCl7dGhpcy5fc3RhcnRUb3VjaFJlb3JkZXJUaW1lb3V0PXNldFRpbWVvdXQoKCgpPT57dGhpcy5fb25UcmFja1N0YXJ0KHtkZXRhaWw6e3g6dC50b3VjaGVzWzBdLmNsaWVudFgseTp0LnRvdWNoZXNbMF0uY2xpZW50WX19KX0pLDEwMCl9X29uVG91Y2hNb3ZlKHQpe3RoaXMuX2RyYWdnZWRDb2x1bW4mJnQucHJldmVudERlZmF1bHQoKSxjbGVhclRpbWVvdXQodGhpcy5fc3RhcnRUb3VjaFJlb3JkZXJUaW1lb3V0KX1fb25Ub3VjaEVuZCgpe2NsZWFyVGltZW91dCh0aGlzLl9zdGFydFRvdWNoUmVvcmRlclRpbWVvdXQpLHRoaXMuX29uVHJhY2tFbmQoKX1fb25UcmFja0V2ZW50KHQpe2lmKCJzdGFydCI9PT10LmRldGFpbC5zdGF0ZSl7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpLG49ZVtlLmluZGV4T2YodGhpcy4kLmhlYWRlciktMl07aWYoIW58fCFuLl9jb250ZW50KXJldHVybjtpZihuLl9jb250ZW50LmNvbnRhaW5zKHRoaXMuZ2V0Um9vdE5vZGUoKS5hY3RpdmVFbGVtZW50KSlyZXR1cm47aWYodGhpcy4kLnNjcm9sbGVyLmhhc0F0dHJpYnV0ZSgiY29sdW1uLXJlc2l6aW5nIikpcmV0dXJuO3RoaXMuX3RvdWNoRGV2aWNlfHx0aGlzLl9vblRyYWNrU3RhcnQodCl9ZWxzZSJ0cmFjayI9PT10LmRldGFpbC5zdGF0ZT90aGlzLl9vblRyYWNrKHQpOiJlbmQiPT09dC5kZXRhaWwuc3RhdGUmJnRoaXMuX29uVHJhY2tFbmQodCl9X29uVHJhY2tTdGFydCh0KXtpZighdGhpcy5jb2x1bW5SZW9yZGVyaW5nQWxsb3dlZClyZXR1cm47Y29uc3QgZT10LmNvbXBvc2VkUGF0aCYmdC5jb21wb3NlZFBhdGgoKTtpZihlJiZlLmZpbHRlcigodD0+dC5oYXNBdHRyaWJ1dGUmJnQuaGFzQXR0cmlidXRlKCJkcmFnZ2FibGUiKSkpWzBdKXJldHVybjtjb25zdCBuPXRoaXMuX2NlbGxGcm9tUG9pbnQodC5kZXRhaWwueCx0LmRldGFpbC55KTtpZihuJiYtMSE9PW4uZ2V0QXR0cmlidXRlKCJwYXJ0IikuaW5kZXhPZigiaGVhZGVyLWNlbGwiKSl7Zm9yKHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgicmVvcmRlcmluZyIsITAsdGhpcyksdGhpcy5fZHJhZ2dlZENvbHVtbj1uLl9jb2x1bW47MT09PXRoaXMuX2RyYWdnZWRDb2x1bW4ucGFyZW50RWxlbWVudC5jaGlsZEVsZW1lbnRDb3VudDspdGhpcy5fZHJhZ2dlZENvbHVtbj10aGlzLl9kcmFnZ2VkQ29sdW1uLnBhcmVudEVsZW1lbnQ7dGhpcy5fc2V0U2libGluZ3NSZW9yZGVyU3RhdHVzKHRoaXMuX2RyYWdnZWRDb2x1bW4sImFsbG93ZWQiKSx0aGlzLl9kcmFnZ2VkQ29sdW1uLl9yZW9yZGVyU3RhdHVzPSJkcmFnZ2luZyIsdGhpcy5fdXBkYXRlR2hvc3QobiksdGhpcy5fcmVvcmRlckdob3N0LnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiLHRoaXMuX3VwZGF0ZUdob3N0UG9zaXRpb24odC5kZXRhaWwueCx0aGlzLl90b3VjaERldmljZT90LmRldGFpbC55LTUwOnQuZGV0YWlsLnkpLHRoaXMuX2F1dG9TY3JvbGxlcigpfX1fb25UcmFjayh0KXtpZighdGhpcy5fZHJhZ2dlZENvbHVtbilyZXR1cm47Y29uc3QgZT10aGlzLl9jZWxsRnJvbVBvaW50KHQuZGV0YWlsLngsdC5kZXRhaWwueSk7aWYoIWUpcmV0dXJuO2NvbnN0IG49dGhpcy5fZ2V0VGFyZ2V0Q29sdW1uKGUsdGhpcy5fZHJhZ2dlZENvbHVtbik7dGhpcy5faXNTd2FwQWxsb3dlZCh0aGlzLl9kcmFnZ2VkQ29sdW1uLG4pJiZ0aGlzLl9pc1N3YXBwYWJsZUJ5UG9zaXRpb24obix0LmRldGFpbC54KSYmdGhpcy5fc3dhcENvbHVtbk9yZGVycyh0aGlzLl9kcmFnZ2VkQ29sdW1uLG4pLHRoaXMuX3VwZGF0ZUdob3N0UG9zaXRpb24odC5kZXRhaWwueCx0aGlzLl90b3VjaERldmljZT90LmRldGFpbC55LTUwOnQuZGV0YWlsLnkpLHRoaXMuX2xhc3REcmFnQ2xpZW50WD10LmRldGFpbC54fV9vblRyYWNrRW5kKCl7dGhpcy5fZHJhZ2dlZENvbHVtbiYmKHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgicmVvcmRlcmluZyIsITEsdGhpcyksdGhpcy5fZHJhZ2dlZENvbHVtbi5fcmVvcmRlclN0YXR1cz0iIix0aGlzLl9zZXRTaWJsaW5nc1Jlb3JkZXJTdGF0dXModGhpcy5fZHJhZ2dlZENvbHVtbiwiIiksdGhpcy5fZHJhZ2dlZENvbHVtbj1udWxsLHRoaXMuX2xhc3REcmFnQ2xpZW50WD1udWxsLHRoaXMuX3Jlb3JkZXJHaG9zdC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbHVtbi1yZW9yZGVyIix7ZGV0YWlsOntjb2x1bW5zOnRoaXMuX2dldENvbHVtbnNJbk9yZGVyKCl9fSkpKX1fZ2V0Q29sdW1uc0luT3JkZXIoKXtyZXR1cm4gdGhpcy5fY29sdW1uVHJlZS5zbGljZSgwKS5wb3AoKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpLnNvcnQoKCh0LGUpPT50Ll9vcmRlci1lLl9vcmRlcikpfV9jZWxsRnJvbVBvaW50KHQsZSl7dD10fHwwLGU9ZXx8MCx0aGlzLl9kcmFnZ2VkQ29sdW1ufHx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5vLWNvbnRlbnQtcG9pbnRlci1ldmVudHMiLCEwLHRoaXMuJC5zY3JvbGxlcik7Y29uc3Qgbj10aGlzLnNoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludCh0LGUpO2lmKHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibm8tY29udGVudC1wb2ludGVyLWV2ZW50cyIsITEsdGhpcy4kLnNjcm9sbGVyKSxuJiZuLl9jb2x1bW4pcmV0dXJuIG59X3VwZGF0ZUdob3N0UG9zaXRpb24odCxlKXtjb25zdCBuPXRoaXMuX3Jlb3JkZXJHaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXQtbi53aWR0aC8yLHI9ZS1uLmhlaWdodC8yLG89cGFyc2VJbnQodGhpcy5fcmVvcmRlckdob3N0Ll9sZWZ0fHwwKSxhPXBhcnNlSW50KHRoaXMuX3Jlb3JkZXJHaG9zdC5fdG9wfHwwKTt0aGlzLl9yZW9yZGVyR2hvc3QuX2xlZnQ9by0obi5sZWZ0LWkpLHRoaXMuX3Jlb3JkZXJHaG9zdC5fdG9wPWEtKG4udG9wLXIpLHRoaXMuX3Jlb3JkZXJHaG9zdC5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZSgke3RoaXMuX3Jlb3JkZXJHaG9zdC5fbGVmdH1weCwgJHt0aGlzLl9yZW9yZGVyR2hvc3QuX3RvcH1weClgfV91cGRhdGVHaG9zdCh0KXtjb25zdCBlPXRoaXMuX3Jlb3JkZXJHaG9zdDtlLnRleHRDb250ZW50PXQuX2NvbnRlbnQuaW5uZXJUZXh0O2NvbnN0IG49d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7cmV0dXJuWyJib3hTaXppbmciLCJkaXNwbGF5Iiwid2lkdGgiLCJoZWlnaHQiLCJiYWNrZ3JvdW5kIiwiYWxpZ25JdGVtcyIsInBhZGRpbmciLCJib3JkZXIiLCJmbGV4LWRpcmVjdGlvbiIsIm92ZXJmbG93Il0uZm9yRWFjaCgodD0+ZS5zdHlsZVt0XT1uW3RdKSksZX1fdXBkYXRlT3JkZXJzKHQsZSl7dm9pZCAwIT09dCYmdm9pZCAwIT09ZSYmKHRbMF0uZm9yRWFjaCgodD0+dC5fb3JkZXI9MCkpLChmdW5jdGlvbiBuKHQsZSxpKXtsZXQgcj0xO3QuZm9yRWFjaCgodD0+e3IlMTA9PTAmJnIrKyx0Ll9vcmRlcj1pK3IqZSxyKyt9KSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovKSh0WzBdLHRoaXMuX29yZGVyQmFzZVNjb3BlLDApKX1fc2V0U2libGluZ3NSZW9yZGVyU3RhdHVzKHQsZSl7QXJyYXkuZnJvbSh0LnBhcmVudE5vZGUuY2hpbGRyZW4pLmZpbHRlcigoZT0+L2NvbHVtbi8udGVzdChlLmxvY2FsTmFtZSkmJnRoaXMuX2lzU3dhcEFsbG93ZWQoZSx0KSkpLmZvckVhY2goKHQ9PnQuX3Jlb3JkZXJTdGF0dXM9ZSkpfV9hdXRvU2Nyb2xsZXIoKXtpZih0aGlzLl9sYXN0RHJhZ0NsaWVudFgpe2NvbnN0IHQ9dGhpcy5fbGFzdERyYWdDbGllbnRYLXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQrNTAsZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtdGhpcy5fbGFzdERyYWdDbGllbnRYKzUwO3Q+MD90aGlzLiQudGFibGUuc2Nyb2xsTGVmdCs9dC8xMDplPjAmJih0aGlzLiQudGFibGUuc2Nyb2xsTGVmdC09ZS8xMCksdGhpcy5fc2Nyb2xsSGFuZGxlcigpfXRoaXMuX2RyYWdnZWRDb2x1bW4mJnRoaXMuYXN5bmModGhpcy5fYXV0b1Njcm9sbGVyLDEwKX1faXNTd2FwQWxsb3dlZCh0LGUpe2lmKHQmJmUpe2NvbnN0IG49dC5wYXJlbnRFbGVtZW50PT09ZS5wYXJlbnRFbGVtZW50LGk9dC5mcm96ZW49PT1lLmZyb3plbjtyZXR1cm4gdCE9PWUmJm4mJml9fV9pc1N3YXBwYWJsZUJ5UG9zaXRpb24odCxlKXtjb25zdCBuPUFycmF5LmZyb20odGhpcy4kLmhlYWRlci5xdWVyeVNlbGVjdG9yQWxsKCd0cjpub3QoW2hpZGRlbl0pIFtwYXJ0fj0iY2VsbCJdJykpLmZpbHRlcigoZT0+dC5jb250YWlucyhlLl9jb2x1bW4pKSlbMF0saT10aGlzLiQuaGVhZGVyLnF1ZXJ5U2VsZWN0b3IoInRyOm5vdChbaGlkZGVuXSkgW3Jlb3JkZXItc3RhdHVzPWRyYWdnaW5nXSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gci5sZWZ0PmkubGVmdD9lPnIucmlnaHQtaS53aWR0aDplPHIubGVmdCtpLndpZHRofV9zd2FwQ29sdW1uT3JkZXJzKHQsZSl7Y29uc3Qgbj10Ll9vcmRlcjt0Ll9vcmRlcj1lLl9vcmRlcixlLl9vcmRlcj1uLHRoaXMuX3VwZGF0ZUxhc3RGcm96ZW4oKSx0aGlzLl91cGRhdGVGaXJzdEFuZExhc3RDb2x1bW4oKX1fZ2V0VGFyZ2V0Q29sdW1uKHQsZSl7aWYodCYmZSl7bGV0IG49dC5fY29sdW1uO2Zvcig7bi5wYXJlbnRFbGVtZW50IT09ZS5wYXJlbnRFbGVtZW50JiZuIT09dGhpczspbj1uLnBhcmVudEVsZW1lbnQ7cmV0dXJuIG4ucGFyZW50RWxlbWVudD09PWUucGFyZW50RWxlbWVudD9uOnQuX2NvbHVtbn19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyxlS3Q9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntyZXNpemFibGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTpmdW5jdGlvbigpe2lmKCJ2YWFkaW4tZ3JpZC1jb2x1bW4tZ3JvdXAiPT09dGhpcy5sb2NhbE5hbWUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5wYXJlbnROb2RlO3JldHVybiB0JiYidmFhZGluLWdyaWQtY29sdW1uLWdyb3VwIj09PXQubG9jYWxOYW1lJiZ0LnJlc2l6YWJsZXx8ITF9fSxfaGVhZGVyVGVtcGxhdGU6e3R5cGU6T2JqZWN0fSxfZm9vdGVyVGVtcGxhdGU6e3R5cGU6T2JqZWN0fSxmcm96ZW46e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saGlkZGVuOnt0eXBlOkJvb2xlYW59LGhlYWRlcjp7dHlwZTpTdHJpbmd9LHRleHRBbGlnbjp7dHlwZTpTdHJpbmd9LF9sYXN0RnJvemVuOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9vcmRlcjpOdW1iZXIsX3Jlb3JkZXJTdGF0dXM6Qm9vbGVhbixfZW1wdHlDZWxsczpBcnJheSxfaGVhZGVyQ2VsbDpPYmplY3QsX2Zvb3RlckNlbGw6T2JqZWN0LF9ncmlkOk9iamVjdCxoZWFkZXJSZW5kZXJlcjpGdW5jdGlvbixmb290ZXJSZW5kZXJlcjpGdW5jdGlvbn19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl93aWR0aENoYW5nZWQod2lkdGgsIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCwgX2NlbGxzLiopIiwiX2Zyb3plbkNoYW5nZWQoZnJvemVuLCBfaGVhZGVyQ2VsbCwgX2Zvb3RlckNlbGwsIF9jZWxscy4qKSIsIl9mbGV4R3Jvd0NoYW5nZWQoZmxleEdyb3csIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCwgX2NlbGxzLiopIiwiX3BhdGhPckhlYWRlckNoYW5nZWQocGF0aCwgaGVhZGVyLCBfaGVhZGVyQ2VsbCwgX2Zvb3RlckNlbGwsIF9jZWxscy4qLCByZW5kZXJlciwgaGVhZGVyUmVuZGVyZXIsIF9ib2R5VGVtcGxhdGUsIF9oZWFkZXJUZW1wbGF0ZSkiLCJfdGV4dEFsaWduQ2hhbmdlZCh0ZXh0QWxpZ24sIF9jZWxscy4qLCBfaGVhZGVyQ2VsbCwgX2Zvb3RlckNlbGwpIiwiX29yZGVyQ2hhbmdlZChfb3JkZXIsIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCwgX2NlbGxzLiopIiwiX2xhc3RGcm96ZW5DaGFuZ2VkKF9sYXN0RnJvemVuKSIsIl9zZXRCb2R5VGVtcGxhdGVPclJlbmRlcmVyKF9ib2R5VGVtcGxhdGUsIHJlbmRlcmVyLCBfY2VsbHMsIF9jZWxscy4qKSIsIl9zZXRIZWFkZXJUZW1wbGF0ZU9yUmVuZGVyZXIoX2hlYWRlclRlbXBsYXRlLCBoZWFkZXJSZW5kZXJlciwgX2hlYWRlckNlbGwpIiwiX3NldEZvb3RlclRlbXBsYXRlT3JSZW5kZXJlcihfZm9vdGVyVGVtcGxhdGUsIGZvb3RlclJlbmRlcmVyLCBfZm9vdGVyQ2VsbCkiLCJfcmVzaXphYmxlQ2hhbmdlZChyZXNpemFibGUsIF9oZWFkZXJDZWxsKSIsIl9yZW9yZGVyU3RhdHVzQ2hhbmdlZChfcmVvcmRlclN0YXR1cywgX2hlYWRlckNlbGwsIF9mb290ZXJDZWxsLCBfY2VsbHMuKikiLCJfaGlkZGVuQ2hhbmdlZChoaWRkZW4sIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCwgX2NlbGxzLiopIl19Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX2JvZHlUZW1wbGF0ZSYmKHRoaXMuX2JvZHlUZW1wbGF0ZS50ZW1wbGF0aXplci5fZ3JpZD10aGlzLl9ncmlkKSx0aGlzLl9oZWFkZXJUZW1wbGF0ZSYmKHRoaXMuX2hlYWRlclRlbXBsYXRlLnRlbXBsYXRpemVyLl9ncmlkPXRoaXMuX2dyaWQpLHRoaXMuX2Zvb3RlclRlbXBsYXRlJiYodGhpcy5fZm9vdGVyVGVtcGxhdGUudGVtcGxhdGl6ZXIuX2dyaWQ9dGhpcy5fZ3JpZCksdGhpcy5fdGVtcGxhdGVPYnNlcnZlci5mbHVzaCgpLHRoaXMuX2JvZHlUZW1wbGF0ZXx8dGhpcy5fdGVtcGxhdGVPYnNlcnZlci5jYWxsYmFjaygpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLl9hbGxDZWxscy5mb3JFYWNoKCh0PT57dC5fY29udGVudC5wYXJlbnROb2RlfHx0aGlzLl9ncmlkJiZ0aGlzLl9ncmlkLmFwcGVuZENoaWxkKHQuX2NvbnRlbnQpfSkpfSkpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5fZmluZEhvc3RHcmlkKCl8fHRoaXMuX2FsbENlbGxzLmZvckVhY2goKHQ9Pnt0Ll9jb250ZW50LnBhcmVudE5vZGUmJnQuX2NvbnRlbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0Ll9jb250ZW50KX0pKX0pKSx0aGlzLl9ncmlkVmFsdWU9dm9pZCAwfV9maW5kSG9zdEdyaWQoKXtsZXQgdD10aGlzO2Zvcig7dCYmIS9edmFhZGluLipncmlkKC1wcm8pPyQvLnRlc3QodC5sb2NhbE5hbWUpOyl0PXQuYXNzaWduZWRTbG90P3QuYXNzaWduZWRTbG90LnBhcmVudE5vZGU6dC5wYXJlbnROb2RlO3JldHVybiB0fHx2b2lkIDB9Z2V0IF9ncmlkKCl7cmV0dXJuIHRoaXMuX2dyaWRWYWx1ZXx8KHRoaXMuX2dyaWRWYWx1ZT10aGlzLl9maW5kSG9zdEdyaWQoKSksdGhpcy5fZ3JpZFZhbHVlfWdldCBfYWxsQ2VsbHMoKXtyZXR1cm5bXS5jb25jYXQodGhpcy5fY2VsbHN8fFtdKS5jb25jYXQodGhpcy5fZW1wdHlDZWxsc3x8W10pLmNvbmNhdCh0aGlzLl9oZWFkZXJDZWxsKS5jb25jYXQodGhpcy5fZm9vdGVyQ2VsbCkuZmlsdGVyKCh0PT50KSl9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX3RlbXBsYXRlT2JzZXJ2ZXI9bmV3IHppKHRoaXMsKCgpPT57dGhpcy5faGVhZGVyVGVtcGxhdGU9dGhpcy5fcHJlcGFyZUhlYWRlclRlbXBsYXRlKCksdGhpcy5fZm9vdGVyVGVtcGxhdGU9dGhpcy5fcHJlcGFyZUZvb3RlclRlbXBsYXRlKCksdGhpcy5fYm9keVRlbXBsYXRlPXRoaXMuX3ByZXBhcmVCb2R5VGVtcGxhdGUoKX0pKX1fcHJlcGFyZUhlYWRlclRlbXBsYXRlKCl7cmV0dXJuIHRoaXMuX3ByZXBhcmVUZW1wbGF0aXplcih0aGlzLl9maW5kVGVtcGxhdGUoITApfHxudWxsLHt9KX1fcHJlcGFyZUZvb3RlclRlbXBsYXRlKCl7cmV0dXJuIHRoaXMuX3ByZXBhcmVUZW1wbGF0aXplcih0aGlzLl9maW5kVGVtcGxhdGUoITEsITApfHxudWxsLHt9KX1fcHJlcGFyZUJvZHlUZW1wbGF0ZSgpe3JldHVybiB0aGlzLl9wcmVwYXJlVGVtcGxhdGl6ZXIodGhpcy5fZmluZFRlbXBsYXRlKCl8fG51bGwpfV9wcmVwYXJlVGVtcGxhdGl6ZXIodCxlKXtpZih0JiYhdC50ZW1wbGF0aXplcil7Y29uc3Qgbj1uZXcgViR0O24uX2dyaWQ9dGhpcy5fZ3JpZCxuLmRhdGFIb3N0PXRoaXMuZGF0YUhvc3Qsbi5faW5zdGFuY2VQcm9wcz1lfHxuLl9pbnN0YW5jZVByb3BzLG4udGVtcGxhdGU9dCx0LnRlbXBsYXRpemVyPW59cmV0dXJuIHR9X3JlbmRlckhlYWRlckFuZEZvb3Rlcigpe3RoaXMuaGVhZGVyUmVuZGVyZXImJnRoaXMuX2hlYWRlckNlbGwmJnRoaXMuX19ydW5SZW5kZXJlcih0aGlzLmhlYWRlclJlbmRlcmVyLHRoaXMuX2hlYWRlckNlbGwpLHRoaXMuZm9vdGVyUmVuZGVyZXImJnRoaXMuX2Zvb3RlckNlbGwmJnRoaXMuX19ydW5SZW5kZXJlcih0aGlzLmZvb3RlclJlbmRlcmVyLHRoaXMuX2Zvb3RlckNlbGwpfV9fcnVuUmVuZGVyZXIodCxlLG4pe2NvbnN0IGk9W2UuX2NvbnRlbnQsdGhpc107biYmbi5pdGVtJiZpLnB1c2gobiksdC5hcHBseSh0aGlzLGkpfV9fc2V0Q29sdW1uVGVtcGxhdGVPclJlbmRlcmVyKHQsZSxuKXtpZighdGhpcy5oaWRkZW4pe2lmKHQmJmUpdGhyb3cgbmV3IEVycm9yKCJZb3Ugc2hvdWxkIG9ubHkgdXNlIGVpdGhlciBhIHJlbmRlcmVyIG9yIGEgdGVtcGxhdGUiKTtuLmZvckVhY2goKG49Pntjb25zdCBpPXRoaXMuX2dyaWQuX19nZXRSb3dNb2RlbChuLnBhcmVudEVsZW1lbnQpO2lmKGUpbi5fcmVuZGVyZXI9ZSwoaS5pdGVtfHxlPT09dGhpcy5oZWFkZXJSZW5kZXJlcnx8ZT09PXRoaXMuZm9vdGVyUmVuZGVyZXIpJiZ0aGlzLl9fcnVuUmVuZGVyZXIoZSxuLGkpO2Vsc2UgaWYobi5fdGVtcGxhdGUhPT10KXtuLl90ZW1wbGF0ZT10LG4uX2NvbnRlbnQuaW5uZXJIVE1MPSIiLHQudGVtcGxhdGl6ZXIuX2dyaWQ9dC50ZW1wbGF0aXplci5fZ3JpZHx8dGhpcy5fZ3JpZDtjb25zdCBlPXQudGVtcGxhdGl6ZXIuY3JlYXRlSW5zdGFuY2UoKTtuLl9jb250ZW50LmFwcGVuZENoaWxkKGUucm9vdCksbi5faW5zdGFuY2U9ZSxpLml0ZW0mJm4uX2luc3RhbmNlLnNldFByb3BlcnRpZXMoaSl9fSkpfX1fc2V0Qm9keVRlbXBsYXRlT3JSZW5kZXJlcih0LGUsbil7KHR8fGUpJiZuJiZ0aGlzLl9fc2V0Q29sdW1uVGVtcGxhdGVPclJlbmRlcmVyKHQsZSxuKX1fc2V0SGVhZGVyVGVtcGxhdGVPclJlbmRlcmVyKHQsZSxuKXsodHx8ZSkmJm4mJnRoaXMuX19zZXRDb2x1bW5UZW1wbGF0ZU9yUmVuZGVyZXIodCxlLFtuXSl9X3NldEZvb3RlclRlbXBsYXRlT3JSZW5kZXJlcih0LGUsbil7KHR8fGUpJiZuJiYodGhpcy5fX3NldENvbHVtblRlbXBsYXRlT3JSZW5kZXJlcih0LGUsW25dKSx0aGlzLl9ncmlkLl9fdXBkYXRlSGVhZGVyRm9vdGVyUm93VmlzaWJpbGl0eShuLnBhcmVudEVsZW1lbnQpKX1fc2VsZWN0Rmlyc3RUZW1wbGF0ZSh0PSExLGU9ITEpe3JldHVybiB6aS5nZXRGbGF0dGVuZWROb2Rlcyh0aGlzKS5maWx0ZXIoKG49PiJ0ZW1wbGF0ZSI9PT1uLmxvY2FsTmFtZSYmbi5jbGFzc0xpc3QuY29udGFpbnMoImhlYWRlciIpPT09dCYmbi5jbGFzc0xpc3QuY29udGFpbnMoImZvb3RlciIpPT09ZSkpWzBdfV9maW5kVGVtcGxhdGUodCxlKXtjb25zdCBuPXRoaXMuX3NlbGVjdEZpcnN0VGVtcGxhdGUodCxlKTtyZXR1cm4gbiYmdGhpcy5kYXRhSG9zdCYmKG4uX3Jvb3REYXRhSG9zdD10aGlzLmRhdGFIb3N0Ll9yb290RGF0YUhvc3R8fHRoaXMuZGF0YUhvc3QpLG59X2ZsZXhHcm93Q2hhbmdlZCh0KXt0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQoImZsZXhHcm93IiksdGhpcy5fYWxsQ2VsbHMuZm9yRWFjaCgoZT0+ZS5zdHlsZS5mbGV4R3Jvdz10KSl9X29yZGVyQ2hhbmdlZCh0KXt0aGlzLl9hbGxDZWxscy5mb3JFYWNoKChlPT5lLnN0eWxlLm9yZGVyPXQpKX1fd2lkdGhDaGFuZ2VkKHQpe3RoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCgid2lkdGgiKSx0aGlzLl9hbGxDZWxscy5mb3JFYWNoKChlPT5lLnN0eWxlLndpZHRoPXQpKSx0aGlzLl9ncmlkJiZ0aGlzLl9ncmlkLl9fZm9yY2VSZWZsb3cmJnRoaXMuX2dyaWQuX19mb3JjZVJlZmxvdygpfV9mcm96ZW5DaGFuZ2VkKHQpe3RoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCgiZnJvemVuIix0KSx0aGlzLl9hbGxDZWxscy5mb3JFYWNoKChlPT50aGlzLl90b2dnbGVBdHRyaWJ1dGUoImZyb3plbiIsdCxlKSkpLHRoaXMuX2dyaWQmJnRoaXMuX2dyaWQuX2Zyb3plbkNlbGxzQ2hhbmdlZCYmdGhpcy5fZ3JpZC5fZnJvemVuQ2VsbHNDaGFuZ2VkKCl9X2xhc3RGcm96ZW5DaGFuZ2VkKHQpe3RoaXMuX2FsbENlbGxzLmZvckVhY2goKGU9PnRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibGFzdC1mcm96ZW4iLHQsZSkpKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQmJih0aGlzLnBhcmVudEVsZW1lbnQuX2xhc3RGcm96ZW49dCl9X3BhdGhPckhlYWRlckNoYW5nZWQodCxlLG4saSxyLG8sYSxzLGwpe2NvbnN0IGM9dm9pZCAwIT09ZTshYSYmIWwmJmMmJm4mJnRoaXMuX19zZXRUZXh0Q29udGVudChuLl9jb250ZW50LGUpLHQmJnIudmFsdWUmJihvfHxzfHx0aGlzLl9fc2V0Q29sdW1uVGVtcGxhdGVPclJlbmRlcmVyKHZvaWQgMCwoKGUsbix7aXRlbTppfSk9PnRoaXMuX19zZXRUZXh0Q29udGVudChlLHRoaXMuZ2V0KHQsaSkpKSxyLnZhbHVlKSxhfHxsfHxjfHwhbnx8bnVsbD09PWV8fHRoaXMuX19zZXRUZXh0Q29udGVudChuLl9jb250ZW50LHRoaXMuX2dlbmVyYXRlSGVhZGVyKHQpKSksbiYmdGhpcy5fZ3JpZC5fX3VwZGF0ZUhlYWRlckZvb3RlclJvd1Zpc2liaWxpdHkobi5wYXJlbnRFbGVtZW50KX1fX3NldFRleHRDb250ZW50KHQsZSl7dC50ZXh0Q29udGVudCE9PWUmJih0LnRleHRDb250ZW50PWUpfV9nZW5lcmF0ZUhlYWRlcih0KXtyZXR1cm4gdC5zdWJzdHIodC5sYXN0SW5kZXhPZigiLiIpKzEpLnJlcGxhY2UoLyhbQS1aXSkvZywiLSQxIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8tL2csIiAiKS5yZXBsYWNlKC9eLi8sKHQ9PnQudG9VcHBlckNhc2UoKSkpfV90b2dnbGVBdHRyaWJ1dGUodCxlLG4pe24uaGFzQXR0cmlidXRlKHQpPT09IWUmJihlP24uc2V0QXR0cmlidXRlKHQsIiIpOm4ucmVtb3ZlQXR0cmlidXRlKHQpKX1fcmVvcmRlclN0YXR1c0NoYW5nZWQodCl7dGhpcy5fYWxsQ2VsbHMuZm9yRWFjaCgoZT0+ZS5zZXRBdHRyaWJ1dGUoInJlb3JkZXItc3RhdHVzIix0KSkpfV9yZXNpemFibGVDaGFuZ2VkKHQsZSl7dm9pZCAwIT09dCYmdm9pZCAwIT09ZSYmZSYmW2VdLmNvbmNhdCh0aGlzLl9lbXB0eUNlbGxzKS5mb3JFYWNoKChlPT57aWYoZSl7Y29uc3Qgbj1lLnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0fj0icmVzaXplLWhhbmRsZSJdJyk7aWYobiYmZS5yZW1vdmVDaGlsZChuKSx0KXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Quc2V0QXR0cmlidXRlKCJwYXJ0IiwicmVzaXplLWhhbmRsZSIpLGUuYXBwZW5kQ2hpbGQodCl9fX0pKX1fdGV4dEFsaWduQ2hhbmdlZCh0KXtpZih2b2lkIDA9PT10KXJldHVybjtpZigtMT09PVsic3RhcnQiLCJlbmQiLCJjZW50ZXIiXS5pbmRleE9mKHQpKXJldHVybiB2b2lkIGNvbnNvbGUud2FybigndGV4dEFsaWduIGNhbiBvbmx5IGJlIHNldCBhcyAic3RhcnQiLCAiZW5kIiBvciAiY2VudGVyIicpO2xldCBlOyJsdHIiPT09Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9ncmlkKS5kaXJlY3Rpb24/InN0YXJ0Ij09PXQ/ZT0ibGVmdCI6ImVuZCI9PT10JiYoZT0icmlnaHQiKToic3RhcnQiPT09dD9lPSJyaWdodCI6ImVuZCI9PT10JiYoZT0ibGVmdCIpLHRoaXMuX2FsbENlbGxzLmZvckVhY2goKG49PntuLl9jb250ZW50LnN0eWxlLnRleHRBbGlnbj10LGdldENvbXB1dGVkU3R5bGUobi5fY29udGVudCkudGV4dEFsaWduIT09dCYmKG4uX2NvbnRlbnQuc3R5bGUudGV4dEFsaWduPWUpfSkpfV9oaWRkZW5DaGFuZ2VkKHQpe3RoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCgiaGlkZGVuIix0KSwhIXQhPSEhdGhpcy5fcHJldmlvdXNIaWRkZW4mJnRoaXMuX2dyaWQmJighMD09PXQmJnRoaXMuX2FsbENlbGxzLmZvckVhY2goKHQ9Pnt0Ll9jb250ZW50LnBhcmVudE5vZGUmJnQuX2NvbnRlbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0Ll9jb250ZW50KX0pKSx0aGlzLl9ncmlkLl9kZWJvdW5jZXJIaWRkZW5DaGFuZ2VkPVRuLmRlYm91bmNlKHRoaXMuX2dyaWQuX2RlYm91bmNlckhpZGRlbkNoYW5nZWQsX3QsKCgpPT57dGhpcy5fZ3JpZCYmdGhpcy5fZ3JpZC5fcmVuZGVyQ29sdW1uVHJlZSYmdGhpcy5fZ3JpZC5fcmVuZGVyQ29sdW1uVHJlZSh0aGlzLl9ncmlkLl9jb2x1bW5UcmVlKX0pKSx0aGlzLl9ncmlkLl91cGRhdGVMYXN0RnJvemVuJiZ0aGlzLl9ncmlkLl91cGRhdGVMYXN0RnJvemVuKCksdGhpcy5fZ3JpZC5ub3RpZnlSZXNpemUmJnRoaXMuX2dyaWQubm90aWZ5UmVzaXplKCksdGhpcy5fZ3JpZC5fcmVzZXRLZXlib2FyZE5hdmlnYXRpb24mJnRoaXMuX2dyaWQuX3Jlc2V0S2V5Ym9hcmROYXZpZ2F0aW9uKCkpLHRoaXMuX3ByZXZpb3VzSGlkZGVuPXR9fTtjbGFzcyBuS3QgZXh0ZW5kcyhlS3QodyR0KHllKSkpe3N0YXRpYyBnZXQgaXMoKXtyZXR1cm4idmFhZGluLWdyaWQtY29sdW1uIn1zdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57d2lkdGg6e3R5cGU6U3RyaW5nLHZhbHVlOiIxMDBweCJ9LGZsZXhHcm93Ont0eXBlOk51bWJlcix2YWx1ZToxfSxyZW5kZXJlcjpGdW5jdGlvbixwYXRoOnt0eXBlOlN0cmluZ30sYXV0b1dpZHRoOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9ib2R5VGVtcGxhdGU6e3R5cGU6T2JqZWN0fSxfY2VsbHM6QXJyYXl9fX1jdXN0b21FbGVtZW50cy5kZWZpbmUobkt0LmlzLG5LdCksCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovCiRYdCgidmFhZGluLWdyaWQiLEdYdGAKICAgIEBrZXlmcmFtZXMgdmFhZGluLWdyaWQtYXBwZWFyIHsKICAgICAgdG8gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgIH0KCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBhbmltYXRpb246IDFtcyB2YWFkaW4tZ3JpZC1hcHBlYXI7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgIGZsZXg6IDEgMSBhdXRvOwogICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgICNzY3JvbGxlciB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgIHdpZHRoOiBhdXRvOwogICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBsZWZ0OiAwOwogICAgfQoKICAgIDpob3N0KFtoZWlnaHQtYnktcm93c10pIHsKICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICBmbGV4LWdyb3c6IDA7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgIDpob3N0KFtoZWlnaHQtYnktcm93c10pICNzY3JvbGxlciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAjdGFibGUgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdXRsaW5lOiBub25lOwogICAgICAvKiBXb3JrYXJvdW5kIGZvciBhIERlc2t0b3AgU2FmYXJpIGJ1ZzogbmV3IHN0YWNraW5nIGNvbnRleHQgaGVyZSBwcmV2ZW50cyB0aGUgc2Nyb2xsYmFyIGZyb20gZ2V0dGluZyBoaWRkZW4gKi8KICAgICAgei1pbmRleDogMDsKICAgIH0KCiAgICAjaGVhZGVyLAogICAgI2Zvb3RlciB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7CiAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgIGxlZnQ6IDA7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgei1pbmRleDogMTsKICAgIH0KCiAgICAjaGVhZGVyIHsKICAgICAgdG9wOiAwOwogICAgfQoKICAgIHRoIHsKICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDsKICAgIH0KCiAgICAvKiBTYWZhcmkgZG9lc24ndCB3b3JrIHdpdGggImluaGVyaXQiICovCiAgICBbc2FmYXJpXSB0aCB7CiAgICAgIHRleHQtYWxpZ246IGluaXRpYWw7CiAgICB9CgogICAgI2Zvb3RlciB7CiAgICAgIGJvdHRvbTogMDsKICAgIH0KCiAgICAjaXRlbXMgewogICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5OwogICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbGVmdDogMDsKICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXSB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBtYXJnaW46IDA7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtsb2FkaW5nXSBbcGFydH49J2JvZHktY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpIHsKICAgICAgb3BhY2l0eTogMDsKICAgIH0KCiAgICAjaXRlbXMgW3BhcnR+PSdyb3cnXSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIH0KCiAgICAjaXRlbXMgW3BhcnR+PSdyb3cnXTplbXB0eSB7CiAgICAgIGhlaWdodDogMWVtOwogICAgfQoKICAgIFtwYXJ0fj0nY2VsbCddOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CgogICAgW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiAwOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgcGFkZGluZzogMDsKICAgIH0KCiAgICBbcGFydH49J2NlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB9CgogICAgW2hpZGRlbl0gewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgW2Zyb3plbl0gewogICAgICB6LWluZGV4OiAyOwogICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgfQoKICAgIFtuby1zY3JvbGxiYXJzXVtzYWZhcmldICN0YWJsZSwKICAgIFtuby1zY3JvbGxiYXJzXVtmaXJlZm94XSAjdGFibGUgewogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC8qIFJlb3JkZXJpbmcgc3R5bGVzICovCiAgICA6aG9zdChbcmVvcmRlcmluZ10pIFtwYXJ0fj0nY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpLAogICAgOmhvc3QoW3Jlb3JkZXJpbmddKSBbcGFydH49J3Jlc2l6ZS1oYW5kbGUnXSwKICAgICNzY3JvbGxlcltuby1jb250ZW50LXBvaW50ZXItZXZlbnRzXSBbcGFydH49J2NlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSB7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIFtwYXJ0fj0ncmVvcmRlci1naG9zdCddIHsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBvcGFjaXR5OiAwLjU7CgogICAgICAvKiBQcmV2ZW50IG92ZXJmbG93aW5nIHRoZSBncmlkIGluIEZpcmVmb3ggKi8KICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgfQoKICAgIDpob3N0KFtyZW9yZGVyaW5nXSkgewogICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgIH0KCiAgICAvKiBSZXNpemluZyBzdHlsZXMgKi8KICAgIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgei1pbmRleDogMTsKICAgIH0KCiAgICBbcGFydH49J3Jlc2l6ZS1oYW5kbGUnXTo6YmVmb3JlIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBjb250ZW50OiAnJzsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB3aWR0aDogMzVweDsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgfQoKICAgIFtsYXN0LWNvbHVtbl0gW3BhcnR+PSdyZXNpemUtaGFuZGxlJ106OmJlZm9yZSwKICAgIFtsYXN0LWZyb3plbl0gW3BhcnR+PSdyZXNpemUtaGFuZGxlJ106OmJlZm9yZSB7CiAgICAgIHdpZHRoOiAxOHB4OwogICAgICB0cmFuc2Zvcm06IG5vbmU7CiAgICAgIHJpZ2h0OiAwOwogICAgfQoKICAgICNzY3JvbGxlcltjb2x1bW4tcmVzaXppbmddIHsKICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgIH0KCiAgICAvKiBTaXplciBzdHlsZXMgKi8KICAgICNzaXplciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgfQoKICAgICNzaXplciBbcGFydH49J2RldGFpbHMtY2VsbCddIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgICNzaXplciBbcGFydH49J2NlbGwnXVtoaWRkZW5dIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgICNzaXplciBbcGFydH49J2NlbGwnXSB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBmbGV4LXNocmluazogMDsKICAgICAgbGluZS1oZWlnaHQ6IDA7CiAgICAgIGhlaWdodDogMCAhaW1wb3J0YW50OwogICAgICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIG1heC1oZWlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAjc2l6ZXIgW3BhcnR+PSdjZWxsJ106OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICctJzsKICAgIH0KCiAgICAjc2l6ZXIgW3BhcnR+PSdjZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCkgewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLyogUlRMIHNwZWNpZmljIHN0eWxlcyAqLwoKICAgIDpob3N0KFtkaXI9J3J0bCddKSAjaXRlbXMsCiAgICA6aG9zdChbZGlyPSdydGwnXSkgI2hlYWRlciwKICAgIDpob3N0KFtkaXI9J3J0bCddKSAjZm9vdGVyIHsKICAgICAgbGVmdDogYXV0bzsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW3BhcnR+PSdyZW9yZGVyLWdob3N0J10gewogICAgICBsZWZ0OiBhdXRvOwogICAgICByaWdodDogMDsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW3BhcnR+PSdyZXNpemUtaGFuZGxlJ10gewogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogYXV0bzsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW3BhcnR+PSdyZXNpemUtaGFuZGxlJ106OmJlZm9yZSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpOwogICAgfQoKICAgIDpob3N0KFtkaXI9J3J0bCddKSBbbGFzdC1jb2x1bW5dIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddOjpiZWZvcmUsCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW2xhc3QtZnJvemVuXSBbcGFydH49J3Jlc2l6ZS1oYW5kbGUnXTo6YmVmb3JlIHsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IGF1dG87CiAgICB9CiAgYCx7bW9kdWxlSWQ6InZhYWRpbi1ncmlkLXN0eWxlcyJ9KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgaUt0PSgoKT0+e3RyeXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIlRvdWNoRXZlbnQiKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KSgpO2NsYXNzIHJLdCBleHRlbmRzKEUkdChjJHQoRCR0KFIkdChCJHQoTiR0KGokdChHJHQoVyR0KFUkdChRJHQoUCR0KEYkdCh0S3QoTyR0KEgkdChKJHQocSR0KEwkdCkpKSkpKSkpKSkpKSkpKSkpKSl7c3RhdGljIGdldCB0ZW1wbGF0ZSgpe3JldHVybiBfZWAKICAgICAgPGRpdgogICAgICAgIGlkPSJzY3JvbGxlciIKICAgICAgICBzYWZhcmkkPSJbW19zYWZhcmldXSIKICAgICAgICBpb3MkPSJbW19pb3NdXSIKICAgICAgICBsb2FkaW5nJD0iW1tsb2FkaW5nXV0iCiAgICAgICAgY29sdW1uLXJlb3JkZXJpbmctYWxsb3dlZCQ9IltbY29sdW1uUmVvcmRlcmluZ0FsbG93ZWRdXSIKICAgICAgPgogICAgICAgIDx0YWJsZSBpZD0idGFibGUiIHJvbGU9ImdyaWQiIGFyaWEtbXVsdGlzZWxlY3RhYmxlPSJ0cnVlIiB0YWJpbmRleD0iMCI+CiAgICAgICAgICA8Y2FwdGlvbiBpZD0ic2l6ZXIiIHBhcnQ9InJvdyI+PC9jYXB0aW9uPgogICAgICAgICAgPHRoZWFkIGlkPSJoZWFkZXIiIHJvbGU9InJvd2dyb3VwIj48L3RoZWFkPgogICAgICAgICAgPHRib2R5IGlkPSJpdGVtcyIgcm9sZT0icm93Z3JvdXAiPjwvdGJvZHk+CiAgICAgICAgICA8dGZvb3QgaWQ9ImZvb3RlciIgcm9sZT0icm93Z3JvdXAiPjwvdGZvb3Q+CiAgICAgICAgPC90YWJsZT4KCiAgICAgICAgPGRpdiBwYXJ0PSJyZW9yZGVyLWdob3N0Ij48L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGlkPSJmb2N1c2V4aXQiIHRhYmluZGV4PSIwIj48L2Rpdj4KICAgIGB9c3RhdGljIGdldCBpcygpe3JldHVybiJ2YWFkaW4tZ3JpZCJ9c3RhdGljIGdldCB2ZXJzaW9uKCl7cmV0dXJuIjIwLjAuMiJ9c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9jb2x1bW5UcmVlQ2hhbmdlZChfY29sdW1uVHJlZSwgX2NvbHVtblRyZWUuKikiXX1zdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57X3NhZmFyaTp7dHlwZTpCb29sZWFuLHZhbHVlOi9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCl9LF9pb3M6e3R5cGU6Qm9vbGVhbix2YWx1ZTovaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXdpbmRvdy5NU1N0cmVhbXx8Ik1hY0ludGVsIj09PW5hdmlnYXRvci5wbGF0Zm9ybSYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjF9LF9maXJlZm94Ont0eXBlOkJvb2xlYW4sdmFsdWU6bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImZpcmVmb3giKT4tMX0sX2FuZHJvaWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTovYW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCl9LF90b3VjaERldmljZTp7dHlwZTpCb29sZWFuLHZhbHVlOmlLdH0saGVpZ2h0QnlSb3dzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVmbGVjdFRvQXR0cmlidXRlOiEwLG9ic2VydmVyOiJfaGVpZ2h0QnlSb3dzQ2hhbmdlZCJ9LF9yZWNhbGN1bGF0ZUNvbHVtbldpZHRoT25jZUxvYWRpbmdGaW5pc2hlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiEwfX19Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uZW5kIix0aGlzLl9vbkFuaW1hdGlvbkVuZCl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVjYWxjdWxhdGVDb2x1bW5XaWR0aHMoKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4pe3N1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbiksImRpciI9PT10JiYodGhpcy5fX2lzUlRMPSJydGwiPT09bix0aGlzLl91cGRhdGVTY3JvbGxlck1lYXN1cmVtZW50cygpKX1fX2hhc1Jvd3NXaXRoQ2xpZW50SGVpZ2h0KCl7cmV0dXJuISFBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKCh0PT50LmNsaWVudEhlaWdodCkpLmxlbmd0aH1fX2l0ZW1zUmVjZWl2ZWQoKXt0aGlzLl9yZWNhbGN1bGF0ZUNvbHVtbldpZHRoT25jZUxvYWRpbmdGaW5pc2hlZCYmIXRoaXMuX2NhY2hlLmlzTG9hZGluZygpJiZ0aGlzLl9faGFzUm93c1dpdGhDbGllbnRIZWlnaHQoKSYmKHRoaXMuX3JlY2FsY3VsYXRlQ29sdW1uV2lkdGhPbmNlTG9hZGluZ0ZpbmlzaGVkPSExLHRoaXMucmVjYWxjdWxhdGVDb2x1bW5XaWR0aHMoKSl9X3JlY2FsY3VsYXRlQ29sdW1uV2lkdGhzKHQpe3QuZm9yRWFjaCgodD0+e3Qud2lkdGg9ImF1dG8iLHQuX29yaWdGbGV4R3Jvdz10LmZsZXhHcm93LHQuZmxleEdyb3c9MH0pKSx0LmZvckVhY2goKHQ9Pnt0Ll9jdXJyZW50V2lkdGg9MCx0Ll9hbGxDZWxscy5mb3JFYWNoKChlPT57dC5fY3VycmVudFdpZHRoPU1hdGgubWF4KHQuX2N1cnJlbnRXaWR0aCxlLm9mZnNldFdpZHRoKzEpfSkpfSkpLHQuZm9yRWFjaCgodD0+e3Qud2lkdGg9YCR7dC5fY3VycmVudFdpZHRofXB4YCx0LmZsZXhHcm93PXQuX29yaWdGbGV4R3Jvdyx0Ll9jdXJyZW50V2lkdGg9dm9pZCAwLHQuX29yaWdGbGV4R3Jvdz12b2lkIDB9KSl9cmVjYWxjdWxhdGVDb2x1bW5XaWR0aHMoKXtpZih0aGlzLl9jb2x1bW5UcmVlKWlmKHRoaXMuX2NhY2hlLmlzTG9hZGluZygpKXRoaXMuX3JlY2FsY3VsYXRlQ29sdW1uV2lkdGhPbmNlTG9hZGluZ0ZpbmlzaGVkPSEwO2Vsc2V7Y29uc3QgdD10aGlzLl9nZXRDb2x1bW5zKCkuZmlsdGVyKCh0PT4hdC5oaWRkZW4mJnQuYXV0b1dpZHRoKSk7dGhpcy5fcmVjYWxjdWxhdGVDb2x1bW5XaWR0aHModCl9fV9jcmVhdGVTY3JvbGxlclJvd3ModCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPHQ7bisrKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7dC5zZXRBdHRyaWJ1dGUoInBhcnQiLCJyb3ciKSx0LnNldEF0dHJpYnV0ZSgicm9sZSIsInJvdyIpLHRoaXMuX2NvbHVtblRyZWUmJnRoaXMuX3VwZGF0ZVJvdyh0LHRoaXMuX2NvbHVtblRyZWVbdGhpcy5fY29sdW1uVHJlZS5sZW5ndGgtMV0sImJvZHkiLCExLCEwKSxlLnB1c2godCl9cmV0dXJuIHRoaXMuX2NvbHVtblRyZWUmJnRoaXMuX2NvbHVtblRyZWVbdGhpcy5fY29sdW1uVHJlZS5sZW5ndGgtMV0uZm9yRWFjaCgodD0+dC5pc0Nvbm5lY3RlZCYmdC5ub3RpZnlQYXRoJiZ0Lm5vdGlmeVBhdGgoIl9jZWxscy4qIix0Ll9jZWxscykpKSwoZnVuY3Rpb24gbih0LGUsaSl7RWl8fEFpKCksVGkucHVzaChbdCxlLGldKX0pKHRoaXMsKCgpPT57dGhpcy5fdXBkYXRlRmlyc3RBbmRMYXN0Q29sdW1uKCksdGhpcy5fcmVzZXRLZXlib2FyZE5hdmlnYXRpb24oKX0pKSxlfV9nZXRSb3dUYXJnZXQoKXtyZXR1cm4gdGhpcy4kLml0ZW1zfV9jcmVhdGVDZWxsKHQpe2NvbnN0IGU9InZhYWRpbi1ncmlkLWNlbGwtY29udGVudC0iKyh0aGlzLl9jb250ZW50SW5kZXg9dGhpcy5fY29udGVudEluZGV4KzF8fDApLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmFhZGluLWdyaWQtY2VsbC1jb250ZW50Iik7bi5zZXRBdHRyaWJ1dGUoInNsb3QiLGUpO2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KTtpLmlkPWUucmVwbGFjZSgiLWNvbnRlbnQtIiwiLSIpLGkuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksaS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJ0ZCI9PT10PyJncmlkY2VsbCI6ImNvbHVtbmhlYWRlciIpO2NvbnN0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpO3JldHVybiByLnNldEF0dHJpYnV0ZSgibmFtZSIsZSksaS5hcHBlbmRDaGlsZChyKSxpLl9jb250ZW50PW4sbi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCgoKT0+e2lmKHdpbmRvdy5jaHJvbWUpe2NvbnN0IHQ9KCk9PntuLmNvbnRhaW5zKHRoaXMuZ2V0Um9vdE5vZGUoKS5hY3RpdmVFbGVtZW50KXx8aS5mb2N1cygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHQsITApfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0LCEwKX1lbHNlIHNldFRpbWVvdXQoKCgpPT57bi5jb250YWlucyh0aGlzLmdldFJvb3ROb2RlKCkuYWN0aXZlRWxlbWVudCl8fGkuZm9jdXMoKX0pKX0pKSxpfV91cGRhdGVSb3codCxlLG4saSxyKXtuPW58fCJib2R5Ijtjb25zdCBvPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtBcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2goKHQ9PnQuX3ZhY2FudD0hMCkpLHQuaW5uZXJIVE1MPSIiLCJzaXplciIhPT10LmlkJiYodC5oaWRkZW49ITApLGUuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKS5mb3JFYWNoKCgoZSxhLHMpPT57bGV0IGw7aWYoImJvZHkiPT09bil7aWYoZS5fY2VsbHM9ZS5fY2VsbHN8fFtdLGw9ZS5fY2VsbHMuZmlsdGVyKCh0PT50Ll92YWNhbnQpKVswXSxsfHwobD10aGlzLl9jcmVhdGVDZWxsKCJ0ZCIpLGUuX2NlbGxzLnB1c2gobCkpLGwuc2V0QXR0cmlidXRlKCJwYXJ0IiwiY2VsbCBib2R5LWNlbGwiKSx0LmFwcGVuZENoaWxkKGwpLGE9PT1zLmxlbmd0aC0xJiYodGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlfHx0aGlzLnJvd0RldGFpbHNSZW5kZXJlcikpe3RoaXMuX2RldGFpbHNDZWxscz10aGlzLl9kZXRhaWxzQ2VsbHN8fFtdO2NvbnN0IGU9dGhpcy5fZGV0YWlsc0NlbGxzLmZpbHRlcigodD0+dC5fdmFjYW50KSlbMF18fHRoaXMuX2NyZWF0ZUNlbGwoInRkIik7LTE9PT10aGlzLl9kZXRhaWxzQ2VsbHMuaW5kZXhPZihlKSYmdGhpcy5fZGV0YWlsc0NlbGxzLnB1c2goZSksZS5fY29udGVudC5wYXJlbnRFbGVtZW50fHxvLmFwcGVuZENoaWxkKGUuX2NvbnRlbnQpLHRoaXMuX2NvbmZpZ3VyZURldGFpbHNDZWxsKGUpLHQuYXBwZW5kQ2hpbGQoZSksdGhpcy5fYTExeVNldFJvd0RldGFpbHNDZWxsKHQsZSksZS5fdmFjYW50PSExfWUubm90aWZ5UGF0aCYmIXImJmUubm90aWZ5UGF0aCgiX2NlbGxzLioiLGUuX2NlbGxzKX1lbHNle2NvbnN0IHI9ImhlYWRlciI9PT1uPyJ0aCI6InRkIjtpfHwidmFhZGluLWdyaWQtY29sdW1uLWdyb3VwIj09PWUubG9jYWxOYW1lPyhsPWVbYF8ke259Q2VsbGBdfHx0aGlzLl9jcmVhdGVDZWxsKHIpLGwuX2NvbHVtbj1lLHQuYXBwZW5kQ2hpbGQobCksZVtgXyR7bn1DZWxsYF09bCk6KGUuX2VtcHR5Q2VsbHM9ZS5fZW1wdHlDZWxsc3x8W10sbD1lLl9lbXB0eUNlbGxzLmZpbHRlcigodD0+dC5fdmFjYW50KSlbMF18fHRoaXMuX2NyZWF0ZUNlbGwociksbC5fY29sdW1uPWUsdC5hcHBlbmRDaGlsZChsKSwtMT09PWUuX2VtcHR5Q2VsbHMuaW5kZXhPZihsKSYmZS5fZW1wdHlDZWxscy5wdXNoKGwpKSxsLnNldEF0dHJpYnV0ZSgicGFydCIsYGNlbGwgJHtufS1jZWxsYCksdGhpcy5fX3VwZGF0ZUhlYWRlckZvb3RlclJvd1Zpc2liaWxpdHkodCl9bC5fY29udGVudC5wYXJlbnRFbGVtZW50fHxvLmFwcGVuZENoaWxkKGwuX2NvbnRlbnQpLGwuX3ZhY2FudD0hMSxsLl9jb2x1bW49ZX0pKSx0aGlzLmFwcGVuZENoaWxkKG8pLHRoaXMuX2Zyb3plbkNlbGxzQ2hhbmdlZCgpLHRoaXMuX3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbkZvclJvdyh0KX1fX3VwZGF0ZUhlYWRlckZvb3RlclJvd1Zpc2liaWxpdHkodCl7aWYoIXQpcmV0dXJuO2NvbnN0IGU9QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5maWx0ZXIoKGU9Pntjb25zdCBuPWUuX2NvbHVtbjtpZihuLl9lbXB0eUNlbGxzJiZuLl9lbXB0eUNlbGxzLmluZGV4T2YoZSk+LTEpcmV0dXJuITE7aWYodC5wYXJlbnRFbGVtZW50PT09dGhpcy4kLmhlYWRlcil7aWYobi5oZWFkZXJSZW5kZXJlcnx8bi5faGVhZGVyVGVtcGxhdGUpcmV0dXJuITA7aWYobnVsbD09PW4uaGVhZGVyKXJldHVybiExO2lmKG4ucGF0aHx8dm9pZCAwIT09bi5oZWFkZXIpcmV0dXJuITB9ZWxzZSBpZihuLmZvb3RlclJlbmRlcmVyfHxuLl9mb290ZXJUZW1wbGF0ZSlyZXR1cm4hMH0pKTt0LmhpZGRlbiE9PSFlLmxlbmd0aCYmKHQuaGlkZGVuPSFlLmxlbmd0aCx0aGlzLm5vdGlmeVJlc2l6ZSgpKX1fdXBkYXRlU2Nyb2xsZXJJdGVtKHQsZSl7dGhpcy5fcHJldmVudFNjcm9sbGVyUm90YXRpbmdDZWxsRm9jdXModCxlKSx0aGlzLl9jb2x1bW5UcmVlJiYodGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJmaXJzdCIsMD09PWUsdCksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJvZGQiLGUlMix0KSx0aGlzLl9hMTF5VXBkYXRlUm93Um93aW5kZXgodCxlKSx0aGlzLl9nZXRJdGVtKGUsdCkpfV9jb2x1bW5UcmVlQ2hhbmdlZCh0KXt0aGlzLl9yZW5kZXJDb2x1bW5UcmVlKHQpLHRoaXMucmVjYWxjdWxhdGVDb2x1bW5XaWR0aHMoKX1fcmVuZGVyQ29sdW1uVHJlZSh0KXtmb3IoQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZvckVhY2goKGU9PnRoaXMuX3VwZGF0ZVJvdyhlLHRbdC5sZW5ndGgtMV0sbnVsbCwhMSwhMCkpKTt0aGlzLiQuaGVhZGVyLmNoaWxkcmVuLmxlbmd0aDx0Lmxlbmd0aDspe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTt0LnNldEF0dHJpYnV0ZSgicGFydCIsInJvdyIpLHQuc2V0QXR0cmlidXRlKCJyb2xlIiwicm93IiksdGhpcy4kLmhlYWRlci5hcHBlbmRDaGlsZCh0KTtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7ZS5zZXRBdHRyaWJ1dGUoInBhcnQiLCJyb3ciKSxlLnNldEF0dHJpYnV0ZSgicm9sZSIsInJvdyIpLHRoaXMuJC5mb290ZXIuYXBwZW5kQ2hpbGQoZSl9Zm9yKDt0aGlzLiQuaGVhZGVyLmNoaWxkcmVuLmxlbmd0aD50Lmxlbmd0aDspdGhpcy4kLmhlYWRlci5yZW1vdmVDaGlsZCh0aGlzLiQuaGVhZGVyLmZpcnN0RWxlbWVudENoaWxkKSx0aGlzLiQuZm9vdGVyLnJlbW92ZUNoaWxkKHRoaXMuJC5mb290ZXIuZmlyc3RFbGVtZW50Q2hpbGQpO0FycmF5LmZyb20odGhpcy4kLmhlYWRlci5jaGlsZHJlbikuZm9yRWFjaCgoKGUsbik9PnRoaXMuX3VwZGF0ZVJvdyhlLHRbbl0sImhlYWRlciIsbj09PXQubGVuZ3RoLTEpKSksQXJyYXkuZnJvbSh0aGlzLiQuZm9vdGVyLmNoaWxkcmVuKS5mb3JFYWNoKCgoZSxuKT0+dGhpcy5fdXBkYXRlUm93KGUsdFt0Lmxlbmd0aC0xLW5dLCJmb290ZXIiLDA9PT1uKSkpLHRoaXMuX3VwZGF0ZVJvdyh0aGlzLiQuc2l6ZXIsdFt0Lmxlbmd0aC0xXSksdGhpcy5fcmVzaXplSGFuZGxlcigpLHRoaXMuX2Zyb3plbkNlbGxzQ2hhbmdlZCgpLHRoaXMuX3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbigpLHRoaXMuX3Jlc2V0S2V5Ym9hcmROYXZpZ2F0aW9uKCksdGhpcy5fYTExeVVwZGF0ZUhlYWRlclJvd3MoKSx0aGlzLl9hMTF5VXBkYXRlRm9vdGVyUm93cygpLHRoaXMuX191cGRhdGVGb290ZXJQb3NpdGlvbmluZygpfV9fdXBkYXRlRm9vdGVyUG9zaXRpb25pbmcoKXt0aGlzLl9maXJlZm94JiYodGhpcy4kLml0ZW1zLnN0eWxlLnBhZGRpbmdCb3R0b209MCx0aGlzLmhlaWdodEJ5Um93c3x8KHRoaXMuJC5pdGVtcy5zdHlsZS5wYWRkaW5nQm90dG9tPWAke3RoaXMuJC5mb290ZXIub2Zmc2V0SGVpZ2h0fXB4YCkpLHRoaXMuX2lvcyYmIXdpbmRvdy5DU1Muc3VwcG9ydHMoInBvc2l0aW9uIiwic3RpY2t5IikmJih0aGlzLiQudGFibGUuc3R5bGUuaGVpZ2h0PSIiLHRoaXMuJC50YWJsZS5zdHlsZS5taW5IZWlnaHQ9IjEwMCUiLHRoaXMuJC50YWJsZS5zdHlsZS5tYXhIZWlnaHQ9IjEwMCUiLHNldFRpbWVvdXQoKCgpPT50aGlzLiQudGFibGUuc3R5bGUuaGVpZ2h0PWAke3RoaXMuJC5zY3JvbGxlci5vZmZzZXRIZWlnaHR9cHhgKSkpfV91cGRhdGVJdGVtKHQsZSl7dC5faXRlbT1lO2NvbnN0IG49dGhpcy5fX2dldFJvd01vZGVsKHQpO3RoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgic2VsZWN0ZWQiLG4uc2VsZWN0ZWQsdCksdGhpcy5fYTExeVVwZGF0ZVJvd1NlbGVjdGVkKHQsbi5zZWxlY3RlZCksdGhpcy5fYTExeVVwZGF0ZVJvd0xldmVsKHQsbi5sZXZlbCksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJleHBhbmRlZCIsbi5leHBhbmRlZCx0KSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImRldGFpbHMtb3BlbmVkIix0aGlzLl9pc0RldGFpbHNPcGVuZWQoZSksdCksKHRoaXMuX3Jvd0RldGFpbHNUZW1wbGF0ZXx8dGhpcy5yb3dEZXRhaWxzUmVuZGVyZXIpJiZ0aGlzLl90b2dnbGVEZXRhaWxzQ2VsbCh0LGUpLHRoaXMuX2dlbmVyYXRlQ2VsbENsYXNzTmFtZXModCxuKSx0aGlzLl9maWx0ZXJEcmFnQW5kRHJvcCh0LG4pLEFycmF5LmZyb20odC5jaGlsZHJlbikuZm9yRWFjaCgodD0+e2lmKHQuX3JlbmRlcmVyKXtjb25zdCBlPXQuX2NvbHVtbnx8dGhpczt0Ll9yZW5kZXJlci5jYWxsKGUsdC5fY29udGVudCxlLG4pfWVsc2UgdC5faW5zdGFuY2UmJih0Ll9pbnN0YW5jZS5fX2RldGFpbHNPcGVuZWRfXz1uLmRldGFpbHNPcGVuZWQsdC5faW5zdGFuY2UuX19zZWxlY3RlZF9fPW4uc2VsZWN0ZWQsdC5faW5zdGFuY2UuX19sZXZlbF9fPW4ubGV2ZWwsdC5faW5zdGFuY2UuX19leHBhbmRlZF9fPW4uZXhwYW5kZWQsdC5faW5zdGFuY2Uuc2V0UHJvcGVydGllcyhuKSl9KSksdGhpcy5fZGVib3VuY2VyVXBkYXRlSGVpZ2h0cz1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJVcGRhdGVIZWlnaHRzLGd0LmFmdGVyKDEpLCgoKT0+e3RoaXMuX3VwZGF0ZU1ldHJpY3MoKSx0aGlzLl9wb3NpdGlvbkl0ZW1zKCksdGhpcy5fdXBkYXRlU2Nyb2xsZXJTaXplKCl9KSl9X3Jlc2l6ZUhhbmRsZXIoKXt0aGlzLl91cGRhdGVEZXRhaWxzQ2VsbEhlaWdodHMoKSx0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSShzdXBlci5fcmVzaXplSGFuZGxlciwhMCksdGhpcy5fdXBkYXRlU2Nyb2xsZXJNZWFzdXJlbWVudHMoKSx0aGlzLl9fdXBkYXRlRm9vdGVyUG9zaXRpb25pbmcoKX1fb25BbmltYXRpb25FbmQodCl7MD09PXQuYW5pbWF0aW9uTmFtZS5pbmRleE9mKCJ2YWFkaW4tZ3JpZC1hcHBlYXIiKSYmKHRoaXMuX3JlbmRlcigpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5ub3RpZnlSZXNpemUoKSx0aGlzLl9faXRlbXNSZWNlaXZlZCgpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLl9fc2Nyb2xsVG9QZW5kaW5nSW5kZXgoKSx0aGlzLiQudGFibGUuc3R5bGUud2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc9InRvdWNoIn0pKSl9X3RvZ2dsZUF0dHJpYnV0ZSh0LGUsbil7bi5oYXNBdHRyaWJ1dGUodCk9PT0hZSYmKGU/bi5zZXRBdHRyaWJ1dGUodCwiIik6bi5yZW1vdmVBdHRyaWJ1dGUodCkpfV9fZ2V0Um93TW9kZWwodCl7cmV0dXJue2luZGV4OnQuaW5kZXgsaXRlbTp0Ll9pdGVtLGxldmVsOnRoaXMuX2dldEluZGV4TGV2ZWwodC5pbmRleCksZXhwYW5kZWQ6dGhpcy5faXNFeHBhbmRlZCh0Ll9pdGVtKSxzZWxlY3RlZDp0aGlzLl9pc1NlbGVjdGVkKHQuX2l0ZW0pLGRldGFpbHNPcGVuZWQ6ISghdGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlJiYhdGhpcy5yb3dEZXRhaWxzUmVuZGVyZXIpJiZ0aGlzLl9pc0RldGFpbHNPcGVuZWQodC5faXRlbSl9fXJlbmRlcigpe3RoaXMuX2NvbHVtblRyZWUmJih0aGlzLl9jb2x1bW5UcmVlLmZvckVhY2goKHQ9Pnt0LmZvckVhY2goKHQ9PnQuX3JlbmRlckhlYWRlckFuZEZvb3RlcigpKSl9KSksdGhpcy5fdXBkYXRlKCkpfW5vdGlmeVJlc2l6ZSgpe3N1cGVyLm5vdGlmeVJlc2l6ZSgpfV9oZWlnaHRCeVJvd3NDaGFuZ2VkKHQsZSl7KHR8fGUpJiZ0aGlzLm5vdGlmeVJlc2l6ZSgpfV9fZm9yY2VSZWZsb3coKXt0aGlzLl9kZWJvdW5jZXJGb3JjZVJlZmxvdz1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJGb3JjZVJlZmxvdyxfdCwoKCk9Pnt0aGlzLiQuc2Nyb2xsZXIuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsc2V0VGltZW91dCgoKCk9PnRoaXMuJC5zY3JvbGxlci5zdHlsZS5vdmVyZmxvdz0iIikpfSkpfX1jdXN0b21FbGVtZW50cy5kZWZpbmUockt0LmlzLHJLdCk7bGV0IG9LdD1jbGFzcyBleHRlbmRzIHlle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9ydW49IiJ9X2NzdlVybCh0LGUsbil7cmV0dXJuIGU/aU8obih0LGUpLHtmb3JtYXQ6ImNzdiJ9KToiIn1fanNvblVybCh0LGUsbil7cmV0dXJuIGU/bih0LGUpOiIifV9jc3ZOYW1lKHQsZSl7cmV0dXJuIGU/YHJ1bi0ke2V9LXRhZy0ke3R9LmNzdmA6IiJ9X2pzb25OYW1lKHQsZSl7cmV0dXJuIGU/YHJ1bi0ke2V9LXRhZy0ke3R9Lmpzb25gOiIifX07b0t0LnRlbXBsYXRlPV9lYAogICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgbm8tbGFiZWwtZmxvYXQ9InRydWUiCiAgICAgIGxhYmVsPSJydW4gdG8gZG93bmxvYWQiCiAgICAgIHNlbGVjdGVkLWl0ZW0tbGFiZWw9Int7X3J1bn19IgogICAgPgogICAgICA8cGFwZXItbGlzdGJveCBzbG90PSJkcm9wZG93bi1jb250ZW50Ij4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW3J1bnNdXSI+CiAgICAgICAgICA8cGFwZXItaXRlbSBuby1sYWJlbC1mbG9hdD0idHJ1ZSI+W1tpdGVtXV08L3BhcGVyLWl0ZW0+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9wYXBlci1saXN0Ym94PgogICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19ydW5dXSI+CiAgICAgIDxhIGRvd25sb2FkPSJbW19jc3ZOYW1lKHRhZywgX3J1bildXSIgaHJlZj0iW1tfY3N2VXJsKHRhZywgX3J1biwgdXJsRm4pXV0iCiAgICAgICAgPkNTVjwvYQogICAgICA+PCEtLQogICAgICAtLT48YQogICAgICAgIGRvd25sb2FkPSJbW19qc29uTmFtZSh0YWcsIF9ydW4pXV0iCiAgICAgICAgaHJlZj0iW1tfanNvblVybCh0YWcsIF9ydW4sIHVybEZuKV1dIgogICAgICAgID5KU09OPC9hCiAgICAgID4KICAgIDwvdGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICB9CiAgICAgIHBhcGVyLWRyb3Bkb3duLW1lbnUgewogICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgfQogICAgICBhIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbWFyZ2luOiAwIDAuMmVtOwogICAgICB9CiAgICAgIHBhcGVyLWlucHV0IHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxvS3QucHJvdG90eXBlLCJfcnVuIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxvS3QucHJvdG90eXBlLCJydW5zIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLG9LdC5wcm90b3R5cGUsInRhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxvS3QucHJvdG90eXBlLCJ1cmxGbiIsdm9pZCAwKSxvS3Q9dChbaSgidGYtZG93bmxvYWRlciIpXSxvS3QpLG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7bGV0IGFLdD1jbGFzcyBleHRlbmRzIHlle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvbG9yU2NhbGU9bnVsbCx0aGlzLl9sb2FkRGF0YUNhbGxiYWNrPSh0LGUsbik9PntpZihudWxsPT1uKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBsb2FkIGRhdGEgZm9yOiIsZSk7Y29uc3QgaT1uLm1hcCgodD0+KHt3YWxsX3RpbWU6bmV3IERhdGUoMWUzKnRbMF0pLHN0ZXA6dFsxXSxzY2FsYXI6dFsyXX0pKSkscj10aGlzLl9nZXRTZXJpZXNOYW1lRnJvbURhdHVtKGUpO3Quc2V0U2VyaWVzTWV0YWRhdGEocixlKSx0LnNldFNlcmllc0RhdGEocixpKX0sdGhpcy5nZXREYXRhTG9hZFVybD0oe3RhZzp0LHJ1bjplfSk9Pl9yKCkucGx1Z2luUm91dGUoInNjYWxhcnMiLCIvc2NhbGFycyIsbmV3IFVSTFNlYXJjaFBhcmFtcyh7dGFnOnQscnVuOmV9KSksdGhpcy5fZG93bmxvYWRVcmxGbj0odCxlKT0+dGhpcy5nZXREYXRhTG9hZFVybCh7dGFnOnQscnVuOmV9KSx0aGlzLnJlcXVlc3REYXRhPSh0LGUsbik9PnRoaXMuaW5Db2xhYj90aGlzLl9yZXF1ZXN0RGF0YUdldCh0LGUsbik6dGhpcy5fcmVxdWVzdERhdGFQb3N0KHQsZSxuKSx0aGlzLl9yZXF1ZXN0RGF0YUdldD0odCxlLG4pPT57Y29uc3QgaT1fcigpLnBsdWdpblJvdXRlKCJzY2FsYXJzIiwiL3NjYWxhcnMiKTtQcm9taXNlLmFsbCh0Lm1hcCgodD0+e2NvbnN0IG49aU8oaSx7dGFnOnQudGFnLHJ1bjp0LnJ1bn0pO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QobikudGhlbigobj0+e2Uoe2l0ZW06dCxkYXRhOm59KX0pKX0pKSkuZmluYWxseSgoKCk9PntuKCl9KSl9LHRoaXMuX3JlcXVlc3REYXRhUG9zdD0odCxlLG4pPT57dmFyIGk7Y29uc3Qgcj1fcigpLnBsdWdpblJvdXRlKCJzY2FsYXJzIiwiL3NjYWxhcnNfbXVsdGlydW4iKSxvPW5ldyBNYXA7Zm9yKGNvbnN0e3RhZzplLHJ1bjpufW9mIHQpe2xldCB0PW8uZ2V0KGUpO251bGw9PXQmJm8uc2V0KGUsdD1bXSksdC5wdXNoKG4pfWNvbnN0IGE9bnVsbCE9PShpPXRoaXMuYmF0Y2hTaXplKSYmdm9pZCAwIT09aT9pOjY0LHM9W107Zm9yKGNvbnN0W3QsZV1vZiBvKWZvcihsZXQgbj0wO248ZS5sZW5ndGg7bis9YSlzLnB1c2goe3RhZzp0LHJ1bnM6ZS5zbGljZShuLG4rYSl9KTtQcm9taXNlLmFsbChzLm1hcCgoKHt0YWc6dCxydW5zOm59KT0+dGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHIse3RhZzp0LHJ1bnM6bn0pLnRoZW4oKGk9Pntmb3IoY29uc3QgciBvZiBuKXtjb25zdCBuPXt0YWc6dCxydW46cn07T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGkscik/ZSh7aXRlbTpuLGRhdGE6aVtyXX0pOmUoe2l0ZW06bixkYXRhOm51bGx9KX19KSkpKSkuZmluYWxseSgoKCk9PntuKCl9KSl9LHRoaXMuX2dldERhdGFMb2FkTmFtZT10PT50aGlzLl9nZXRTZXJpZXNOYW1lRnJvbURhdHVtKHQpLHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX3Rvb2x0aXBDb2x1bW5zPSgoKT0+e2NvbnN0IHQ9cEN0LnNsaWNlKCksZT10LmZpbmRJbmRleCgodD0+Ik5hbWUiPT10LnRpdGxlKSk7cmV0dXJuIHQuc3BsaWNlKGUsMSx7dGl0bGU6Ik5hbWUiLGV2YWx1YXRlOnQ9Pntjb25zdCBlPXQuZGF0YXNldC5tZXRhZGF0YSgpLm1ldGE7cmV0dXJuIHRoaXMuX2dldFNlcmllc0Rpc3BsYXlOYW1lRnJvbURhdHVtKGUpfX0pLHR9KSgpfV9nZXRDaGFydERhdGFMb2FkZXIoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoInRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIiKX1yZWxvYWQoKXt0aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKS5yZWxvYWQoKX1yZWRyYXcoKXt0aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKS5yZWRyYXcoKX1fdG9nZ2xlRXhwYW5kZWQodCl7dGhpcy5zZXQoIl9leHBhbmRlZCIsIXRoaXMuX2V4cGFuZGVkKSx0aGlzLnJlZHJhdygpfV90b2dnbGVMb2dTY2FsZSgpe3RoaXMuc2V0KCJfbG9nU2NhbGVBY3RpdmUiLCF0aGlzLl9sb2dTY2FsZUFjdGl2ZSl9X3Jlc2V0RG9tYWluKCl7Y29uc3QgdD10aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKTt0JiZ0LnJlc2V0RG9tYWluKCl9X3VwZGF0ZURvd25sb2FkTGluaygpe2NvbnN0IHQ9dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCkuZXhwb3J0QXNTdmdTdHJpbmcoKTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiI3N2Z0xpbmsiKS5ocmVmPWBkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCR7YnRvYSh0KX1gfV9ydW5zRnJvbURhdGEodCl7cmV0dXJuIHQubWFwKCh0PT50LnJ1bikpfV9nZXREYXRhU2VyaWVzKCl7cmV0dXJuIHRoaXMuZGF0YVRvTG9hZC5tYXAoKHQ9PnRoaXMuX2dldFNlcmllc05hbWVGcm9tRGF0dW0odCkpKX1fZ2V0U2VyaWVzTmFtZUZyb21EYXR1bSh7cnVuOnQsZXhwZXJpbWVudDplPXtuYW1lOiJfZGVmYXVsdCJ9fSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFtlLm5hbWUsdF0pfV9nZXRTZXJpZXNEaXNwbGF5TmFtZUZyb21EYXR1bSh0KXtyZXR1cm4gdC5ydW59X2dldENvbG9yU2NhbGUoKXtyZXR1cm4gbnVsbCE9PXRoaXMuY29sb3JTY2FsZT90aGlzLmNvbG9yU2NhbGU6e3NjYWxlOnQ9Pntjb25zdFssZV09SlNPTi5wYXJzZSh0KTtyZXR1cm4gR1IoZSl9fX19O2FLdC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBkaXNwbGF5LW5hbWU9IltbdGFnTWV0YWRhdGEuZGlzcGxheU5hbWVdXSIKICAgICAgZGVzY3JpcHRpb249IltbdGFnTWV0YWRhdGEuZGVzY3JpcHRpb25dXSIKICAgID48L3RmLWNhcmQtaGVhZGluZz4KICAgIDxkaXYgaWQ9InRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIj4KICAgICAgPHRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIKICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgY29sb3Itc2NhbGU9IltbX2dldENvbG9yU2NhbGUoY29sb3JTY2FsZSldXSIKICAgICAgICBkYXRhLXNlcmllcz0iW1tfZ2V0RGF0YVNlcmllcyhkYXRhVG9Mb2FkLiopXV0iCiAgICAgICAgZGF0YS10by1sb2FkPSJbW2RhdGFUb0xvYWRdXSIKICAgICAgICBnZXQtZGF0YS1sb2FkLW5hbWU9IltbX2dldERhdGFMb2FkTmFtZV1dIgogICAgICAgIGdldC1kYXRhLWxvYWQtdXJsPSJbW2dldERhdGFMb2FkVXJsXV0iCiAgICAgICAgcmVxdWVzdC1kYXRhPSJbW3JlcXVlc3REYXRhXV0iCiAgICAgICAgaWdub3JlLXktb3V0bGllcnM9IltbaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgbG9hZC1kYXRhLWNhbGxiYWNrPSJbW19sb2FkRGF0YUNhbGxiYWNrXV0iCiAgICAgICAgbG9hZC1rZXk9IltbdGFnXV0iCiAgICAgICAgbG9nLXNjYWxlLWFjdGl2ZT0iW1tfbG9nU2NhbGVBY3RpdmVdXSIKICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICBzbW9vdGhpbmctZW5hYmxlZD0iW1tzbW9vdGhpbmdFbmFibGVkXV0iCiAgICAgICAgc21vb3RoaW5nLXdlaWdodD0iW1tzbW9vdGhpbmdXZWlnaHRdXSIKICAgICAgICB0YWctbWV0YWRhdGE9IltbdGFnTWV0YWRhdGFdXSIKICAgICAgICB0b29sdGlwLWNvbHVtbnM9IltbX3Rvb2x0aXBDb2x1bW5zXV0iCiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj0iYXV0byIKICAgICAgICB0b29sdGlwLXNvcnRpbmctbWV0aG9kPSJbW3Rvb2x0aXBTb3J0aW5nTWV0aG9kXV0iCiAgICAgICAgeC10eXBlPSJbW3hUeXBlXV0iCiAgICAgID4KICAgICAgPC90Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJidXR0b25zIj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19leHBhbmRlZF1dIgogICAgICAgIGljb249ImZ1bGxzY3JlZW4iCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2xvZ1NjYWxlQWN0aXZlXV0iCiAgICAgICAgaWNvbj0ibGluZS13ZWlnaHQiCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlTG9nU2NhbGUiCiAgICAgICAgdGl0bGU9IlRvZ2dsZSB5LWF4aXMgbG9nIHNjYWxlIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgaWNvbj0ic2V0dGluZ3Mtb3ZlcnNjYW4iCiAgICAgICAgb24tdGFwPSJfcmVzZXREb21haW4iCiAgICAgICAgdGl0bGU9IkZpdCBkb21haW4gdG8gZGF0YSIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tzaG93RG93bmxvYWRMaW5rc11dIj4KICAgICAgICA8cGFwZXItbWVudS1idXR0b24gb24tcGFwZXItZHJvcGRvd24tb3Blbj0iX3VwZGF0ZURvd25sb2FkTGluayI+CiAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLXRyaWdnZXIiCiAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLXRyaWdnZXIiCiAgICAgICAgICAgIGljb249ImZpbGUtZG93bmxvYWQiCiAgICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgIDxwYXBlci1saXN0Ym94IGNsYXNzPSJkcm9wZG93bi1jb250ZW50IiBzbG90PSJkcm9wZG93bi1jb250ZW50Ij4KICAgICAgICAgICAgPHBhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgPGEgaWQ9InN2Z0xpbmsiIGRvd25sb2FkPSJbW3RhZ11dLnN2ZyI+CiAgICAgICAgICAgICAgICBEb3dubG9hZCBDdXJyZW50IENoYXJ0IGFzIFNWRwogICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9wYXBlci1pdGVtPgogICAgICAgICAgPC9wYXBlci1saXN0Ym94PgogICAgICAgIDwvcGFwZXItbWVudS1idXR0b24+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxzcGFuIHN0eWxlPSJmbGV4LWdyb3c6IDEiPjwvc3Bhbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3Nob3dEb3dubG9hZExpbmtzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImRvd25sb2FkLWxpbmtzIj4KICAgICAgICAgIDx0Zi1kb3dubG9hZGVyCiAgICAgICAgICAgIHJ1bnM9IltbX3J1bnNGcm9tRGF0YShkYXRhVG9Mb2FkKV1dIgogICAgICAgICAgICB0YWc9IltbdGFnXV0iCiAgICAgICAgICAgIHVybC1mbj0iW1tfZG93bmxvYWRVcmxGbl1dIgogICAgICAgICAgPjwvdGYtZG93bmxvYWRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgbWFyZ2luOiA1cHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDMzMHB4OwogICAgICB9CgogICAgICA6aG9zdChbX2V4cGFuZGVkXSkgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICA6aG9zdChbX2V4cGFuZGVkXSkgI3RmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIHsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICB9CgogICAgICAjdGYtbGluZS1jaGFydC1kYXRhLWxvYWRlci1jb250YWluZXIgewogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIHRmLWNhcmQtaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgfQoKICAgICAgI2J1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGNvbG9yOiAjMjE5NmYzOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CgogICAgICAuZG93bmxvYWQtbGlua3MgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAuZG93bmxvYWQtbGlua3MgYSB7CiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBtYXJnaW46IDJweDsKICAgICAgfQoKICAgICAgLmRvd25sb2FkLWxpbmtzIHBhcGVyLWRyb3Bkb3duLW1lbnUgewogICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgcGFwZXItbWVudS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgcGFwZXItaXRlbSBhIHsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGFLdC5wcm90b3R5cGUsInRhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sYUt0LnByb3RvdHlwZSwiZGF0YVRvTG9hZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxhS3QucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGFLdC5wcm90b3R5cGUsImFjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGFLdC5wcm90b3R5cGUsImlnbm9yZVlPdXRsaWVycyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLGFLdC5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sYUt0LnByb3RvdHlwZSwic2hvd0Rvd25MaW5rcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGFLdC5wcm90b3R5cGUsInNtb290aGluZ0VuYWJsZWQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sYUt0LnByb3RvdHlwZSwic21vb3RoaW5nV2VpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGFLdC5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGFLdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sYUt0LnByb3RvdHlwZSwidG9vbHRpcFNvcnRpbmdNZXRob2QiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sYUt0LnByb3RvdHlwZSwiYmF0Y2hTaXplIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxhS3QucHJvdG90eXBlLCJpbkNvbGFiIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGFLdC5wcm90b3R5cGUsIl9sb2FkRGF0YUNhbGxiYWNrIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sYUt0LnByb3RvdHlwZSwiZ2V0RGF0YUxvYWRVcmwiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sYUt0LnByb3RvdHlwZSwiX2Rvd25sb2FkVXJsRm4iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxhS3QucHJvdG90eXBlLCJyZXF1ZXN0RGF0YSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxhS3QucHJvdG90eXBlLCJfZ2V0RGF0YUxvYWROYW1lIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGFLdC5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGFLdC5wcm90b3R5cGUsIl9sb2dTY2FsZUFjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sYUt0LnByb3RvdHlwZSwiX3Rvb2x0aXBDb2x1bW5zIix2b2lkIDApLGFLdD10KFtpKCJ0Zi1zY2FsYXItY2FyZCIpXSxhS3QpO2xldCBzS3Q9Y2xhc3MgZXh0ZW5kcygoZnVuY3Rpb24gdChlLG4pe3JldHVybihmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIE5yKHt9LGVyKGUpLHQpfSkoZSxuKX0pKFtfb10seWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zZXNzaW9uR3JvdXA9bnVsbCx0aGlzLl94VHlwZT14VHQuU1RFUCx0aGlzLl9ub011bHRpRXhwZXJpbWVudHM9ITEsdGhpcy5fcmVxdWVzdERhdGE9KHQsZSxuKT0+e1Byb21pc2UuYWxsKHQubWFwKCh0PT50aGlzLmJhY2tlbmQubGlzdE1ldHJpY0V2YWxzKHtleHBlcmltZW50TmFtZTp0aGlzLmV4cGVyaW1lbnROYW1lLHNlc3Npb25OYW1lOnQucnVuLG1ldHJpY05hbWU6dC50YWd9KS50aGVuKChuPT57ZSh7aXRlbTp0LGRhdGE6bn0pfSkpKSkpLmZpbmFsbHkoKCgpPT57bigpfSkpfSx0aGlzLl9jb2xvclNjYWxlPXtzY2FsZTp0PT57Y29uc3QgZT1KU09OLnBhcnNlKHQpWzFdLG49dGhpcy5faW5kZXhPZlNlc3Npb24uZ2V0KGUpO3JldHVybiBIUlsodGhpcy5fc2Vzc2lvbkdyb3VwTmFtZUhhc2grbiklSFIubGVuZ3RoXX19fWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImlyb24tcmVzaXplIix0aGlzLnJlZHJhdy5iaW5kKHRoaXMpKX1yZWRyYXcoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtc2NhbGFyLWNhcmQiKS5mb3JFYWNoKCh0PT50LnJlZHJhdygpKSl9X3Nlc3Npb25Hcm91cENoYW5nZWQoKXt0aGlzLnNlc3Npb25Hcm91cCYmMCE9T2JqZWN0LmtleXModGhpcy5zZXNzaW9uR3JvdXApLmxlbmd0aD8odGhpcy5faW5kZXhPZlNlc3Npb249bmV3IE1hcCh0aGlzLnNlc3Npb25Hcm91cC5zZXNzaW9ucy5tYXAoKCh0LGUpPT5bdC5uYW1lLGVdKSkpLHRoaXMuX3Nlc3Npb25Hcm91cE5hbWVIYXNoPVlZdCh0aGlzLnNlc3Npb25Hcm91cC5uYW1lKSk6KHRoaXMuX2luZGV4T2ZTZXNzaW9uPW5ldyBNYXAsdGhpcy5fc2Vzc2lvbkdyb3VwTmFtZUhhc2g9MCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLXNjYWxhci1jYXJkIikuZm9yRWFjaCgodD0+e2NvbnN0IGU9dCxuPWUuZ2V0KCJ0YWciKTtlLnNldCgidGFnIiwiIiksZS5zZXQoInRhZyIsbil9KSl9X2hhdmVNZXRyaWNzKCl7cmV0dXJuIHRoaXMudmlzaWJsZVNjaGVtYSYmQXJyYXkuaXNBcnJheSh0aGlzLnZpc2libGVTY2hlbWEubWV0cmljSW5mb3MpJiZ0aGlzLnZpc2libGVTY2hlbWEubWV0cmljSW5mb3MubGVuZ3RoPjB9X2hhdmVNZXRyaWNzQW5kU2Vzc2lvbkdyb3VwKCl7cmV0dXJuIHRoaXMuc2Vzc2lvbkdyb3VwJiZ0aGlzLl9oYXZlTWV0cmljcygpfV9jb21wdXRlU2VyaWVzRm9yU2Vzc2lvbkdyb3VwTWV0cmljKHQsZSl7cmV0dXJuIG51bGw9PT10fHwwPT1PYmplY3Qua2V5cyh0KS5sZW5ndGh8fG51bGw9PT1lP1tdOnQuc2Vzc2lvbnMuZmlsdGVyKCh0PT52b2lkIDAhPT1BWXQodC5tZXRyaWNWYWx1ZXMsZS5uYW1lKSkpLm1hcCgodD0+KHt0YWc6ZS5uYW1lLHJ1bjp0Lm5hbWV9KSkpfV9jb21wdXRlVGFnTWV0YWRhdGEodCl7cmV0dXJue2Rpc3BsYXlOYW1lOndZdCh0KSxkZXNjcmlwdGlvbjp0LmRlc2NyaXB0aW9ufHwiIn19fTtzS3QudGVtcGxhdGU9X2VgCiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIXNlc3Npb25Hcm91cF1dIj4KICAgICAgPGRpdj4KICAgICAgICA8aDM+Tm8gc2Vzc2lvbiBncm91cCBzZWxlY3RlZDwvaDM+CiAgICAgICAgPHA+UGxlYXNlIHNlbGVjdCBhIHNlc3Npb24gZ3JvdXAgdG8gc2VlIGl0cyBtZXRyaWMtZ3JhcGhzIGhlcmUuPC9wPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9oYXZlTWV0cmljcyh2aXNpYmxlU2NoZW1hLiopXV0iPgogICAgICA8ZGl2PgogICAgICAgIDxoMz5ObyBtZXRyaWNzIGFyZSBlbmFibGVkPC9oMz4KICAgICAgICA8cD5QbGVhc2UgZW5hYmxlIHNvbWUgbWV0cmljcyB0byBzZWUgY29udGVudCBoZXJlLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L3RlbXBsYXRlPgogICAgPGRpdiBjbGFzcz0ibGF5b3V0IGhvcml6b250YWwgd3JhcCBzZXNzaW9uLWdyb3VwLWRldGFpbHMiPgogICAgICA8dGVtcGxhdGUKICAgICAgICBpcz0iZG9tLWlmIgogICAgICAgIGlmPSJbW19oYXZlTWV0cmljc0FuZFNlc3Npb25Hcm91cCh2aXNpYmxlU2NoZW1hLiosIHNlc3Npb25Hcm91cCldXSIKICAgICAgPgogICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICBpdGVtcz0iW1t2aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zXV0iCiAgICAgICAgICBhcz0ibWV0cmljSW5mbyIKICAgICAgICA+CiAgICAgICAgICA8IS0tIE5vdGUgdGhhdCB3ZSBkbyBub3QgcHJvdmlkZSBhIHJlcXVlc3QtbWFuYWdlciBhdHRyaWJ1dGUgc2luY2UKICAgICAgICAgICAgICAgd2UgcHJvdmlkZSBhIGZ1bmN0aW9uIGluIHJlcXVlc3QtZGF0YSBmb3IgY2FsbGluZyB0aGUgYmFja2VuZAogICAgICAgICAgICAgICB0byBnZXQgdGhlIG1ldHJpY3MgZGF0YS4KICAgICAgICAgICAgLS0+CiAgICAgICAgICA8dGYtc2NhbGFyLWNhcmQKICAgICAgICAgICAgY2xhc3M9InNjYWxhci1jYXJkIgogICAgICAgICAgICBjb2xvci1zY2FsZT0iW1tfY29sb3JTY2FsZV1dIgogICAgICAgICAgICBkYXRhLXRvLWxvYWQ9IltbX2NvbXB1dGVTZXJpZXNGb3JTZXNzaW9uR3JvdXBNZXRyaWMoc2Vzc2lvbkdyb3VwLCBtZXRyaWNJbmZvKV1dIgogICAgICAgICAgICB0YWc9IltbbWV0cmljSW5mby5uYW1lLnRhZ11dIgogICAgICAgICAgICB0YWctbWV0YWRhdGE9IltbX2NvbXB1dGVUYWdNZXRhZGF0YShtZXRyaWNJbmZvKV1dIgogICAgICAgICAgICB4LXR5cGU9IltbX3hUeXBlXV0iCiAgICAgICAgICAgIG11bHRpLWV4cGVyaW1lbnRzPSJbW19ub011bHRpRXhwZXJpbWVudHNdXSIKICAgICAgICAgICAgcmVxdWVzdC1kYXRhPSJbW19yZXF1ZXN0RGF0YV1dIgogICAgICAgICAgICBhY3RpdmUKICAgICAgICAgID4KICAgICAgICAgIDwvdGYtc2NhbGFyLWNhcmQ+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgogICAgPCEtLSAiaXJvbi1mbGV4IiBpcyBuZWVkZWQgdG8gdXNlIHRoZSBsYXlvdXQgY2xhc3NlcyBpbiB0aGUgZGl2IGFib3ZlIC0tPgogICAgPHN0eWxlIGluY2x1ZGU9Imlyb24tZmxleCI+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHNLdC5wcm90b3R5cGUsImJhY2tlbmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sc0t0LnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sc0t0LnByb3RvdHlwZSwidmlzaWJsZVNjaGVtYSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxzS3QucHJvdG90eXBlLCJzZXNzaW9uR3JvdXAiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sc0t0LnByb3RvdHlwZSwiX3hUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sc0t0LnByb3RvdHlwZSwiX25vTXVsdGlFeHBlcmltZW50cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxzS3QucHJvdG90eXBlLCJfaW5kZXhPZlNlc3Npb24iLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sc0t0LnByb3RvdHlwZSwiX3Nlc3Npb25Hcm91cE5hbWVIYXNoIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sc0t0LnByb3RvdHlwZSwiX3JlcXVlc3REYXRhIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHNLdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlIix2b2lkIDApLHQoW2EoInNlc3Npb25Hcm91cC4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxzS3QucHJvdG90eXBlLCJfc2Vzc2lvbkdyb3VwQ2hhbmdlZCIsbnVsbCksc0t0PXQoW2koInRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzIildLHNLdCk7bGV0IGxLdD1jbGFzcyBleHRlbmRzKGVyKGlsKHllKSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9ocGFyYW1OYW1lPXhZdCx0aGlzLl9tZXRyaWNOYW1lPXdZdH1fdmlzaWJsZVNjaGVtYU9yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQoKXtjb25zdCB0PXRoaXMuJC5zZXNzaW9uR3JvdXBzVGFibGUuZ2V0KCJkZXRhaWxzT3BlbmVkSXRlbXMiKTt0aGlzLiQuc2Vzc2lvbkdyb3Vwc1RhYmxlLnNldCgiZGV0YWlsc09wZW5lZEl0ZW1zIixbXSksRGkoKTtjb25zdCBlPW5ldyBNYXA7dGhpcy5zZXNzaW9uR3JvdXBzLmZvckVhY2goKHQ9PntlLnNldCh0Lm5hbWUsdCl9KSksdGhpcy4kLnNlc3Npb25Hcm91cHNUYWJsZS5zZXQoImRldGFpbHNPcGVuZWRJdGVtcyIsdC5tYXAoKHQ9PmUuZ2V0KHQubmFtZSkpKS5maWx0ZXIoQm9vbGVhbikpfV9zZXNzaW9uR3JvdXBIUGFyYW0odCxlKXtyZXR1cm4gbnVsbCE9dCYmMCE9T2JqZWN0LmtleXModCkubGVuZ3RoJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodC5ocGFyYW1zLGUpP1ZZdCh0LmhwYXJhbXNbZV0pOiIifV9zZXNzaW9uR3JvdXBNZXRyaWModCxlKXtpZihudWxsPT10fHwwPT1PYmplY3Qua2V5cyh0KS5sZW5ndGgpcmV0dXJuIiI7Zm9yKGxldCBuPTA7bjx0Lm1ldHJpY1ZhbHVlcy5sZW5ndGg7KytuKXtsZXQgaT10Lm1ldHJpY1ZhbHVlc1tuXTtpZihpLm5hbWUuZ3JvdXA9PT1lLmdyb3VwJiZpLm5hbWUudGFnPT1lLnRhZylyZXR1cm4gVll0KGkudmFsdWUpfXJldHVybiIifV9yb3dOdW1iZXIodCl7cmV0dXJuIHQrMX19O2xLdC50ZW1wbGF0ZT1fZWAKICAgIDx2YWFkaW4tZ3JpZAogICAgICBjbGFzcz0ic2Vzc2lvbi1ncm91cC10YWJsZSIKICAgICAgaWQ9InNlc3Npb25Hcm91cHNUYWJsZSIKICAgICAgY29sdW1uLXJlb3JkZXJpbmctYWxsb3dlZD0iIgogICAgICBpdGVtcz0iW1tzZXNzaW9uR3JvdXBzXV0iCiAgICA+CiAgICAgIDx2YWFkaW4tZ3JpZC1jb2x1bW4gZmxleC1ncm93PSIwIiB3aWR0aD0iMTBlbSIgcmVzaXphYmxlPSIiPgogICAgICAgIDx0ZW1wbGF0ZSBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciB0YWJsZS1jZWxsIj5UcmlhbCBJRDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtY2VsbCI+W1tpdGVtLm5hbWVdXTwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvdmFhZGluLWdyaWQtY29sdW1uPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbZW5hYmxlU2hvd01ldHJpY3NdXSI+CiAgICAgICAgPHZhYWRpbi1ncmlkLWNvbHVtbiBmbGV4LWdyb3c9IjAiIGF1dG9XaWR0aD0iIiByZXNpemFibGU9IiI+CiAgICAgICAgICA8dGVtcGxhdGUgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciB0YWJsZS1jZWxsIj5TaG93IE1ldHJpY3M8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgIDxwYXBlci1jaGVja2JveCBjbGFzcz0idGFibGUtY2VsbCIgY2hlY2tlZD0ie3tkZXRhaWxzT3BlbmVkfX0iPgogICAgICAgICAgICA8L3BhcGVyLWNoZWNrYm94PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3ZhYWRpbi1ncmlkLWNvbHVtbj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlCiAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgaXRlbXM9IltbdmlzaWJsZVNjaGVtYS5ocGFyYW1JbmZvc11dIgogICAgICAgIGFzPSJocGFyYW1JbmZvIgogICAgICAgIGluZGV4LWFzPSJocGFyYW1JbmRleCIKICAgICAgPgogICAgICAgIDx2YWFkaW4tZ3JpZC1jb2x1bW4gZmxleC1ncm93PSIyIiB3aWR0aD0iMTBlbSIgcmVzaXphYmxlPSIiPgogICAgICAgICAgPHRlbXBsYXRlIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIgdGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgW1tfaHBhcmFtTmFtZShocGFyYW1JbmZvKV1dCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgW1tfc2Vzc2lvbkdyb3VwSFBhcmFtKGl0ZW0sIGhwYXJhbUluZm8ubmFtZSldXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC92YWFkaW4tZ3JpZC1jb2x1bW4+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZQogICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgIGl0ZW1zPSJ7e3Zpc2libGVTY2hlbWEubWV0cmljSW5mb3N9fSIKICAgICAgICBhcz0ibWV0cmljSW5mbyIKICAgICAgICBpbmRleC1hcz0ibWV0cmljSW5kZXgiCiAgICAgID4KICAgICAgICA8dmFhZGluLWdyaWQtY29sdW1uIGZsZXgtZ3Jvdz0iMiIgd2lkdGg9IjEwZW0iIHJlc2l6YWJsZT0iIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIHRhYmxlLWNlbGwiPgogICAgICAgICAgICAgIFtbX21ldHJpY05hbWUobWV0cmljSW5mbyldXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWNlbGwiPgogICAgICAgICAgICAgIFtbX3Nlc3Npb25Hcm91cE1ldHJpYyhpdGVtLCBtZXRyaWNJbmZvLm5hbWUpXV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdmFhZGluLWdyaWQtY29sdW1uPgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUgY2xhc3M9InJvdy1kZXRhaWxzIj4KICAgICAgICA8dGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLWRldGFpbHMKICAgICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgICAgZXhwZXJpbWVudC1uYW1lPSJbW2V4cGVyaW1lbnROYW1lXV0iCiAgICAgICAgICBzZXNzaW9uLWdyb3VwPSJbW2l0ZW1dXSIKICAgICAgICAgIHZpc2libGUtc2NoZW1hPSJbW3Zpc2libGVTY2hlbWFdXSIKICAgICAgICAgIGNsYXNzPSJzZXNzaW9uLWdyb3VwLWRldGFpbHMiCiAgICAgICAgPgogICAgICAgIDwvdGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLWRldGFpbHM+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3ZhYWRpbi1ncmlkPgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZTsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgewogICAgICAgIC0tbHVtby1iYXNlLWNvbG9yOiAjMzAzMDMwOwogICAgICAgIC0tbHVtby1ib2R5LXRleHQtY29sb3I6ICNmZmY7CiAgICAgIH0KCiAgICAgIDpob3N0KC5kYXJrLW1vZGUpIHZhYWRpbi1ncmlkIHsKICAgICAgICAtLV9sdW1vLWdyaWQtc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogIzUwNTA1MDsKICAgICAgfQoKICAgICAgLnRhYmxlLWNlbGwgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAudGFibGUtaGVhZGVyIHsKICAgICAgICAvKiBsaW5lLWJyZWFrIG92ZXJmbG93aW5nIGNvbHVtbiBoZWFkZXJzICovCiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOwogICAgICB9CiAgICAgIC5zZXNzaW9uLWdyb3VwLXRhYmxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLnNlc3Npb24tZ3JvdXAtZGV0YWlscyB7CiAgICAgICAgaGVpZ2h0OiAzNjBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbEt0LnByb3RvdHlwZSwidmlzaWJsZVNjaGVtYSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sbEt0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGxLdC5wcm90b3R5cGUsImVuYWJsZVNob3dNZXRyaWNzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGxLdC5wcm90b3R5cGUsImJhY2tlbmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sbEt0LnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCksdChbYSgidmlzaWJsZVNjaGVtYS4qIiwic2Vzc2lvbkdyb3Vwcy4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxsS3QucHJvdG90eXBlLCJfdmlzaWJsZVNjaGVtYU9yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQiLG51bGwpLGxLdD10KFtpKCJ0Zi1ocGFyYW1zLXRhYmxlLXZpZXciKV0sbEt0KTtsZXQgY0t0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc2Vzc2lvbkdyb3VwPW51bGwsdGhpcy52aXNpYmxlU2NoZW1hPW51bGx9X3Byb3BlcnRpZXNBcmVQb3B1bGF0ZWQodCxlKXtyZXR1cm4gbnVsbCE9dCYmbnVsbCE9ZX1fc2luZ2xldG9uU2Vzc2lvbkdyb3Vwcyh0KXtyZXR1cm4gbnVsbD09dD9bXTpbdF19fTtmdW5jdGlvbiB1S3QodCxlLG4pe2Z1bmN0aW9uIGkoKXtpZigwPT09dC5sZW5ndGgpcmV0dXJuWzEsMl07Y29uc3RbZSxuXT1MbCh0KTtyZXR1cm4gZSE9PW4/W2Usbl06ZT4wP1suNSplLDEuNSplXTplPDA/WzEuNSplLC41KmVdOlstMSwxXX1pZigiTElORUFSIj09PW4pcmV0dXJuIFZNKCkuZG9tYWluKGkoKSkucmFuZ2UoW2UsMF0pO2lmKCJMT0ciPT09bil7Y29uc3Qgbj1pKCk7cmV0dXJuIG5bMF08PTAmJm5bMV0+PTA/dUt0KHQsZSwiTElORUFSIik6S00oKS5kb21haW4obikucmFuZ2UoW2UsMF0pfWlmKCJRVUFOVElMRSI9PT1uKXtjb25zdCBuPTIwLGk9emwobikubWFwKCh0PT5lLXQqZS8obi0xKSkpO3JldHVybiAwPT09dC5sZW5ndGgmJih0PVsxXSksb0UoKS5kb21haW4oU2UuZXhwb3J0cy51bmlxKHQpKS5yYW5nZShpKX1pZigiTk9OX05VTUVSSUMiPT09bilyZXR1cm4gQU0oKS5kb21haW4oU2UuZXhwb3J0cy51bmlxKHQuc29ydCgpKSkucmFuZ2UoW2UsMF0pLnBhZGRpbmcoLjEpO3Rocm93IFJhbmdlRXJyb3IoIlVua25vd24gc2NhbGU6ICIrbil9dmFyIGhLdCxkS3Q7Y0t0LnRlbXBsYXRlPV9lYAogICAgPCEtLSBJZiBzZXNzaW9uR3JvdXAgb3IgdmlzaWJsZVNjaGVtYSBhcmUgbm90IHBvcHVsYXRlZCwgZG8gbm90IGRpc3BsYXkKICAgICAgICAgYW55dGhpbmcuCiAgICAgIC0tPgogICAgPHRlbXBsYXRlCiAgICAgIGlzPSJkb20taWYiCiAgICAgIGlmPSJbW19wcm9wZXJ0aWVzQXJlUG9wdWxhdGVkKHZpc2libGVTY2hlbWEsIHNlc3Npb25Hcm91cCldXSIKICAgID4KICAgICAgPCEtLSBEaXNwbGF5IG9uZSByb3cgd2l0aG91dCBhICJzaG93LW1ldHJpY3MiIGNvbHVtbiAtLT4KICAgICAgPHRmLWhwYXJhbXMtdGFibGUtdmlldwogICAgICAgIHZpc2libGUtc2NoZW1hPSJbW3Zpc2libGVTY2hlbWFdXSIKICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tfc2luZ2xldG9uU2Vzc2lvbkdyb3VwcyhzZXNzaW9uR3JvdXApXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXRhYmxlLXZpZXc+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlCiAgICAgIGlzPSJkb20taWYiCiAgICAgIGlmPSJbWyFfcHJvcGVydGllc0FyZVBvcHVsYXRlZCh2aXNpYmxlU2NoZW1hLCBzZXNzaW9uR3JvdXApXV0iCiAgICA+CiAgICAgIDxkaXY+Q2xpY2sgb3IgaG92ZXIgb3ZlciBhIHNlc3Npb24gZ3JvdXAgdG8gZGlzcGxheSBpdHMgdmFsdWVzIGhlcmUuPC9kaXY+CiAgICA8L3RlbXBsYXRlPgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sY0t0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGNLdC5wcm90b3R5cGUsInZpc2libGVTY2hlbWEiLHZvaWQgMCksY0t0PXQoW2koInRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC12YWx1ZXMiKV0sY0t0KSwoZnVuY3Rpb24odCl7dC5MSU5FQVI9IkxJTkVBUiIsdC5MT0c9IkxPRyIsdC5RVUFOVElMRT0iUVVBTlRJTEUiLHQuTk9OX05VTUVSSUM9Ik5PTl9OVU1FUklDIn0pKGhLdHx8KGhLdD17fSkpO2NsYXNzIHBLdHtpc1Bhc3NpbmcodCl7cmV0dXJuITB9fWNsYXNzIGZLdHtjb25zdHJ1Y3Rvcih0LGUsbixpKXt0aGlzLl9sb3dlcj10LHRoaXMuX3VwcGVyPWUsdGhpcy5fbG93ZXJPcGVuPW4sdGhpcy5fdXBwZXJPcGVuPWl9aXNQYXNzaW5nKHQpe2NvbnN0IGU9dDtyZXR1cm4gdGhpcy5fYmVmb3JlKHRoaXMuX2xvd2VyLGUsIXRoaXMuX2xvd2VyT3BlbikmJnRoaXMuX2JlZm9yZShlLHRoaXMuX3VwcGVyLCF0aGlzLl91cHBlck9wZW4pfV9iZWZvcmUodCxlLG4pe3JldHVybiBuP3Q8PWU6dDxlfX1jbGFzcyBtS3R7Y29uc3RydWN0b3IodCl7dGhpcy5fZG9tYWluU2V0PXR9aXNQYXNzaW5nKHQpe3JldHVybi0xIT09dGhpcy5fZG9tYWluU2V0LmZpbmRJbmRleCgoZT0+ZT09PXQpKX19Y2xhc3MgZ0t0e2NvbnN0cnVjdG9yKHQsZSxuLGkpe3RoaXMuX3N2Z1Byb3BzPXQsdGhpcy5fc2NoZW1hPWUsdGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyPW4sdGhpcy5fY29sSW5kZXg9aSx0aGlzLl9pc0Rpc3BsYXllZD0hMSx0aGlzLl95U2NhbGU9bnVsbCx0aGlzLl9zY2FsZVR5cGU9bnVsbCx0aGlzLnNldEJydXNoU2VsZWN0aW9uKG51bGwpfWNvbEluZGV4KCl7cmV0dXJuIHRoaXMuX2NvbEluZGV4fXlTY2FsZSgpe3JldHVybiB0aGlzLl95U2NhbGV9c2NhbGVUeXBlKCl7cmV0dXJuIHRoaXMuX3NjYWxlVHlwZX1icnVzaFNlbGVjdGlvbigpe3JldHVybiB0aGlzLl9icnVzaFNlbGVjdGlvbn1pc0Rpc3BsYXllZCgpe3JldHVybiB0aGlzLl9pc0Rpc3BsYXllZH1zZXRCcnVzaFNlbGVjdGlvbih0KXt0aGlzLl9icnVzaFNlbGVjdGlvbj10LHRoaXMuX2JydXNoRmlsdGVyPXRoaXMuX2J1aWxkQnJ1c2hGaWx0ZXIodGhpcy5icnVzaFNlbGVjdGlvbigpLHRoaXMuc2NhbGVUeXBlKCksdGhpcy55U2NhbGUoKSl9c2V0RG9tYWluQW5kU2NhbGUodCxlKXt0aGlzLl9zY2FsZVR5cGU9ZSx0aGlzLl95U2NhbGU9dUt0KHQuc2xpY2UoKSx0aGlzLl9zdmdQcm9wcy5oZWlnaHQsdGhpcy5zY2FsZVR5cGUoKSksdGhpcy5fYnJ1c2hGaWx0ZXI9dGhpcy5fYnVpbGRCcnVzaEZpbHRlcih0aGlzLmJydXNoU2VsZWN0aW9uKCksdGhpcy5zY2FsZVR5cGUoKSx0aGlzLnlTY2FsZSgpKX1icnVzaEZpbHRlcigpe3JldHVybiB0aGlzLl9icnVzaEZpbHRlcn11cGRhdGVET00odCl7bGV0IGU9YWModGhpcy55U2NhbGUoKSk7dGhpcy5zY2FsZVR5cGUoKT09PWhLdC5RVUFOVElMRSYmKGU9ZS50aWNrVmFsdWVzKHRoaXMueVNjYWxlKCkucXVhbnRpbGVzKCkpLnRpY2tGb3JtYXQobXkoIi0uNmciKSkpO2NvbnN0IG49U3UodCk7bi5zZWxlY3RBbGwoImciKS5yZW1vdmUoKSxuLmFwcGVuZCgiZyIpLmNsYXNzZWQoImF4aXMiLCEwKS5jYWxsKGUpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoImF4aXMtdGl0bGUiLCEwKS5zdHlsZSgiY3Vyc29yIiwibW92ZSIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmF0dHIoInkiLC05KS50ZXh0KCh0PT5TWXQodGhpcy5fc2NoZW1hLHQpKSksbi5jYWxsKHZoKCkub24oInN0YXJ0IiwoKCk9Pnt0LnNldEF0dHJpYnV0ZSgiaXMtZHJhZ2dpbmciLCIiKSx0aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXIub25EcmFnU3RhcnQodGhpcy5jb2xJbmRleCgpKX0pKS5vbigiZHJhZyIsKCgpPT50aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXIub25EcmFnKHV1LngpKSkub24oImVuZCIsKCgpPT57dGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uRHJhZ0VuZCgpLHQucmVtb3ZlQXR0cmlidXRlKCJpcy1kcmFnZ2luZyIpfSkpKTtjb25zdCBpPVptKCkuZXh0ZW50KFtbLTgsMF0sWzgsdGhpcy5fc3ZnUHJvcHMuaGVpZ2h0KzFdXSkub24oInN0YXJ0IiwoKCk9Pnt5S3QodXUpJiYodC5zZXRBdHRyaWJ1dGUoImlzLWJydXNoaW5nIiwiIiksdGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uQnJ1c2hDaGFuZ2VkKHRoaXMuY29sSW5kZXgoKSx1dS5zZWxlY3Rpb24pKX0pKS5vbigiYnJ1c2giLCgoKT0+e3lLdCh1dSkmJnRoaXMuX2ludGVyYWN0aW9uTWFuYWdlci5vbkJydXNoQ2hhbmdlZCh0aGlzLmNvbEluZGV4KCksdXUuc2VsZWN0aW9uKX0pKS5vbigiZW5kIiwoKCk9Pnt5S3QodXUpJiYodGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uQnJ1c2hDaGFuZ2VkKHRoaXMuY29sSW5kZXgoKSx1dS5zZWxlY3Rpb24pLHQucmVtb3ZlQXR0cmlidXRlKCJpcy1icnVzaGluZyIpKX0pKSxyPVN1KHQpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImJydXNoIiwhMCk7ci5jYWxsKGkpLGkubW92ZShyLHRoaXMuYnJ1c2hTZWxlY3Rpb24oKSl9c2V0RGlzcGxheWVkKHQpe3RoaXMuX2lzRGlzcGxheWVkPXR9X2J1aWxkQnJ1c2hGaWx0ZXIodCxlLG4pe2lmKG51bGw9PT10KXJldHVybiBuZXcgcEt0O2lmKG51bGw9PT1lKXJldHVybiBjb25zb2xlLmVycm9yKCJTY2FsZSB0eXBlIGlzIG51bGwsIGJ1dCBicnVzaFNlbGVjdGlvbiBpc24ndDogIix0KSxuZXcgcEt0O3N3aXRjaChlKXtjYXNlIGhLdC5MSU5FQVI6Y2FzZSBoS3QuTE9HOntjb25zdFtlLGldPShmdW5jdGlvbiByKHQsZSxuKXtyZXR1cm5bdC5pbnZlcnQoZSksdC5pbnZlcnQobildLnNvcnQoKCh0LGUpPT50LWUpKX0pKG4sdFswXSx0WzFdKTtyZXR1cm4gbmV3IGZLdChlLGksITEsITEpfWNhc2UgaEt0LlFVQU5USUxFOntjb25zdFtlLGldPShmdW5jdGlvbiByKHQsZSxuKXtjb25zdCBpPXQucmFuZ2UoKSxyPWkuZmlsdGVyKCh0PT5lPD10JiZ0PD1uKSkubWFwKChlPT57Y29uc3Qgbj10LmludmVydEV4dGVudChlKTtyZXR1cm4gZT09PWlbaS5sZW5ndGgtMV0/W25bMF0sblsxXSsxXTpufSkpO3JldHVybiAwPT1yLmxlbmd0aD9bMCwwXTpMbChxbChyKSl9KShuLHRbMF0sdFsxXSk7cmV0dXJuIG5ldyBmS3QoZSxpLCExLCEwKX1jYXNlIGhLdC5OT05fTlVNRVJJQzpyZXR1cm4gbmV3IG1LdCgoZnVuY3Rpb24gZSh0LG4saSl7cmV0dXJuIHQuZG9tYWluKCkuZmlsdGVyKChlPT57Y29uc3Qgcj10KGUpO3JldHVybiBuPD1yJiZyPD1pfSkpfSkobix0WzBdLHRbMV0pKX1yZXR1cm4gY29uc29sZS5lcnJvcigiVW5rbm93biBzY2FsZSB0eXBlOiAiLGUpLG5ldyBwS3R9fWNsYXNzIF9LdHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fc3ZnUHJvcHM9dCx0aGlzLl9zY2hlbWE9ZSx0aGlzLl9heGVzPXRoaXMuX2NyZWF0ZUF4ZXMobiksdGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnM9QU0oKS5yYW5nZShbMSx0aGlzLl9zdmdQcm9wcy53aWR0aC0xXSkucGFkZGluZyguNSksdGhpcy5fZHJhZ2dlZEF4aXM9bnVsbCx0aGlzLl9zdmdQcm9wcy5zdmdHLnNlbGVjdEFsbCgiZy5heGlzLXBhcmVudCIpLnJlbW92ZSgpLHRoaXMuX3BhcmVudHNTZWw9dGhpcy5fc3ZnUHJvcHMuc3ZnRy5zZWxlY3RBbGwoIi5heGlzLXBhcmVudCIpfXVwZGF0ZUF4ZXModCxlKXtjb25zb2xlLmFzc2VydCghdGhpcy5pc0F4aXNEcmFnZ2luZygpKTtjb25zdCBuPW5ldyBTZXQ7dC5jb2x1bW5zLmZvckVhY2goKHQ9Pntjb25zdCBpPXQuYWJzb2x1dGVJbmRleDtsZXQgcj10aGlzLl9heGVzW2ldO3Iuc2V0RGlzcGxheWVkKCEwKTtjb25zdCBvPWUubWFwKCh0PT5QWXQodGhpcy5fc2NoZW1hLHQsaSkpKTtyLnNldERvbWFpbkFuZFNjYWxlKG8sdC5zY2FsZSksbi5hZGQoaSl9KSksdGhpcy5fYXhlcy5mb3JFYWNoKCh0PT57bi5oYXModC5jb2xJbmRleCgpKXx8dC5zZXREaXNwbGF5ZWQoITEpfSkpLHRoaXMuX3VwZGF0ZVN0YXRpb25hcnlBeGVzUG9zaXRpb25zKG4pLHRoaXMuX3BhcmVudHNTZWw9dGhpcy5fcGFyZW50c1NlbC5kYXRhKEFycmF5LmZyb20obiksKHQ9PnQpKSx0aGlzLl9wYXJlbnRzU2VsLmV4aXQoKS5yZW1vdmUoKSx0aGlzLl9wYXJlbnRzU2VsPXRoaXMuX3BhcmVudHNTZWwuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJheGlzLXBhcmVudCIsITApLm1lcmdlKHRoaXMuX3BhcmVudHNTZWwpO2NvbnN0IGk9dGhpczt0aGlzLl9wYXJlbnRzU2VsLmNhbGwoKHQ9PnRoaXMuX3VwZGF0ZUF4ZXNQb3NpdGlvbnNJbkRPTSh0KSkpLmVhY2goKGZ1bmN0aW9uKHQpe2kuX2F4ZXNbdF0udXBkYXRlRE9NKHRoaXMpfSkpfW1hcFZpc2libGVBeGVzKHQpe3JldHVybiB0aGlzLl9zdGF0aW9uYXJ5QXhlc1Bvc2l0aW9ucy5kb21haW4oKS5tYXAoKGU9PnQodGhpcy5nZXRBeGlzUG9zaXRpb24oZSksdGhpcy5fYXhlc1tlXSkpKX1hbGxWaXNpYmxlQXhlc1NhdGlzZnkodCl7cmV0dXJuIHRoaXMuX3N0YXRpb25hcnlBeGVzUG9zaXRpb25zLmRvbWFpbigpLmV2ZXJ5KChlPT50KHRoaXMuZ2V0QXhpc1Bvc2l0aW9uKGUpLHRoaXMuX2F4ZXNbZV0pKSl9Z2V0QXhpc0ZvckNvbEluZGV4KHQpe3JldHVybiB0aGlzLl9heGVzW3RdfWRyYWdTdGFydCh0KXtjb25zb2xlLmFzc2VydCghdGhpcy5pc0F4aXNEcmFnZ2luZygpKSxjb25zb2xlLmFzc2VydCh0aGlzLl9heGVzW3RdLmlzRGlzcGxheWVkKCkpLHRoaXMuX2RyYWdnZWRBeGlzPXRoaXMuX2F4ZXNbdF0sdGhpcy5fZHJhZ2dlZEF4aXNQb3NpdGlvbj10aGlzLl9zdGF0aW9uYXJ5QXhlc1Bvc2l0aW9ucyh0KX1kcmFnKHQpe3Q9TWF0aC5taW4oTWF0aC5tYXgodCwwKSx0aGlzLl9zdmdQcm9wcy53aWR0aCksdGhpcy5fZHJhZ2dlZEF4aXNQb3NpdGlvbj10O2xldCBlPXRoaXMuX3N0YXRpb25hcnlBeGVzUG9zaXRpb25zLmRvbWFpbigpO2Uuc29ydCgoKHQsZSk9PnRoaXMuZ2V0QXhpc1Bvc2l0aW9uKHQpLXRoaXMuZ2V0QXhpc1Bvc2l0aW9uKGUpKSksdGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKGUpLHRoaXMuX3VwZGF0ZUF4ZXNQb3NpdGlvbnNJbkRPTSh0aGlzLl9wYXJlbnRzU2VsKX1kcmFnRW5kKHQpe2NvbnNvbGUuYXNzZXJ0KHRoaXMuaXNBeGlzRHJhZ2dpbmcoKSksdGhpcy5fZHJhZ2dlZEF4aXNQb3NpdGlvbj1udWxsLHRoaXMuX2RyYWdnZWRBeGlzPW51bGwsdGhpcy5fdXBkYXRlQXhlc1Bvc2l0aW9uc0luRE9NKHRoaXMuX3BhcmVudHNTZWwudHJhbnNpdGlvbigpLmR1cmF0aW9uKHQpKX1pc0F4aXNEcmFnZ2luZygpe3JldHVybiBudWxsIT09dGhpcy5fZHJhZ2dlZEF4aXN9Z2V0QXhpc1Bvc2l0aW9uKHQpe3JldHVybiBudWxsIT09dGhpcy5fZHJhZ2dlZEF4aXMmJnRoaXMuX2RyYWdnZWRBeGlzLmNvbEluZGV4KCk9PT10P3RoaXMuX2RyYWdnZWRBeGlzUG9zaXRpb246dGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnModCl9X3VwZGF0ZVN0YXRpb25hcnlBeGVzUG9zaXRpb25zKHQpe2NvbnN0IGU9dGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKCkuZmlsdGVyKChlPT50LmhhcyhlKSkpLG49QXJyYXkuZnJvbShuZXcgU2V0KFsuLi5lLC4uLkFycmF5LmZyb20odCldKSk7dGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKG4pfV91cGRhdGVBeGVzUG9zaXRpb25zSW5ET00odCl7dC5hdHRyKCJ0cmFuc2Zvcm0iLCh0PT5XWXQodGhpcy5nZXRBeGlzUG9zaXRpb24odCkpKSl9X2NyZWF0ZUF4ZXModCl7cmV0dXJuIHpsKFRZdCh0aGlzLl9zY2hlbWEpKS5tYXAoKGU9Pm5ldyBnS3QodGhpcy5fc3ZnUHJvcHMsdGhpcy5fc2NoZW1hLHQsZSkpKX19ZnVuY3Rpb24geUt0KHQpe3JldHVybiBudWxsIT09dC5zb3VyY2VFdmVudH0hKGZ1bmN0aW9uKHQpe3RbdC5GT1JFR1JPVU5EPTBdPSJGT1JFR1JPVU5EIix0W3QuQkFDS0dST1VORD0xXT0iQkFDS0dST1VORCJ9KShkS3R8fChkS3Q9e30pKTtjbGFzcyB2S3R7Y29uc3RydWN0b3IodCl7dm9pZCAwPT09dCYmKHQ9c2gobnVsbCkpLGNvbnNvbGUuYXNzZXJ0KHQuc2l6ZSgpPD0xKSx0aGlzLl9zZXNzaW9uR3JvdXBTZWw9dH1zZXNzaW9uR3JvdXAoKXtyZXR1cm4gMT09PXRoaXMuX3Nlc3Npb25Hcm91cFNlbC5zaXplKCk/dGhpcy5fc2Vzc2lvbkdyb3VwU2VsLmRhdHVtKCk6bnVsbH1pc051bGwoKXtyZXR1cm4gbnVsbD09PXRoaXMuc2Vzc2lvbkdyb3VwKCl9c2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuX3Nlc3Npb25Hcm91cFNlbH1lcXVhbHNUbyh0KXtyZXR1cm4gdGhpcy5pc051bGwoKT90LmlzTnVsbCgpOiF0LmlzTnVsbCgpJiZ0LnNlc3Npb25Hcm91cCgpLm5hbWU9PXRoaXMuc2Vzc2lvbkdyb3VwKCkubmFtZX19Y2xhc3MgYkt0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9zdmdQcm9wcz10LHRoaXMuX3NjaGVtYT1lLHRoaXMuX2F4ZXNDb2xsZWN0aW9uPW4sdGhpcy5fc2Vzc2lvbkdyb3Vwcz1bXSx0aGlzLl9zdmdQcm9wcy5zdmdHLnNlbGVjdEFsbCgiZy5iYWNrZ3JvdW5kIikucmVtb3ZlKCksdGhpcy5fc3ZnUHJvcHMuc3ZnRy5zZWxlY3RBbGwoImcuZm9yZWdyb3VuZCIpLnJlbW92ZSgpLHRoaXMuX2JnUGF0aHNTZWw9dGhpcy5fc3ZnUHJvcHMuc3ZnRy5hcHBlbmQoImciKS5jbGFzc2VkKCJiYWNrZ3JvdW5kIiwhMCkuc2VsZWN0QWxsKCJwYXRoIiksdGhpcy5fZmdQYXRoc1NlbD10aGlzLl9zdmdQcm9wcy5zdmdHLmFwcGVuZCgiZyIpLmNsYXNzZWQoImZvcmVncm91bmQiLCEwKS5zZWxlY3RBbGwoInBhdGgiKSx0aGlzLl91cGRhdGVWaXNpYmxlRmdQYXRoc1NlbCgpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cEhhbmRsZT1uZXcgdkt0LHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwSGFuZGxlPW5ldyB2S3QsdGhpcy5fZDNsaW5lPXVMKCkuY3VydmUoc0wpfWdldFNlc3Npb25Hcm91cEhhbmRsZSh0KXtyZXR1cm4gbnVsbD09dD9uZXcgdkt0Om5ldyB2S3QodGhpcy5fZmdQYXRoc1NlbC5maWx0ZXIoKGU9PmUubmFtZT09PXQubmFtZSkpKX1oaWRlQmFja2dyb3VuZExpbmVzKCl7dGhpcy5fYmdQYXRoc1NlbC5hdHRyKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9c2hvd0JhY2tncm91bmRMaW5lcygpe3RoaXMuX2JnUGF0aHNTZWwuYXR0cigidmlzaWJpbGl0eSIsbnVsbCl9cGVha2VkU2Vzc2lvbkdyb3VwSGFuZGxlKCl7cmV0dXJuIHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cEhhbmRsZX1zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpe3JldHVybiB0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZX1yZWNvbXB1dGVDb250cm9sUG9pbnRzKHQsZT0wKXsodD09PWRLdC5GT1JFR1JPVU5EP3RoaXMuX2ZnUGF0aHNTZWw6dGhpcy5fYmdQYXRoc1NlbCkudHJhbnNpdGlvbigpLmR1cmF0aW9uKGUpLmF0dHIoImQiLCh0PT50aGlzLl9wYXRoREF0dHJpYnV0ZSh0KSkpLHQ9PT1kS3QuRk9SRUdST1VORCYmd2luZG93LnNldFRpbWVvdXQoKCgpPT57Y29uc3QgdD10aGlzO3RoaXMuX2ZnUGF0aHNTZWwuZWFjaCgoZnVuY3Rpb24oZSl7dC5fc2V0Q29udHJvbFBvaW50c1Byb3BlcnR5KHRoaXMsZSl9KSl9KSl9cmVjb21wdXRlRm9yZWdyb3VuZExpbmVzVmlzaWJpbGl0eSgpe3RoaXMuX2ZnUGF0aHNTZWwuY2xhc3NlZCgiaW52aXNpYmxlLXBhdGgiLCh0PT4hdGhpcy5fYXhlc0NvbGxlY3Rpb24uYWxsVmlzaWJsZUF4ZXNTYXRpc2Z5KCgoZSxuKT0+bi5icnVzaEZpbHRlcigpLmlzUGFzc2luZyhQWXQodGhpcy5fc2NoZW1hLHQsbi5jb2xJbmRleCgpKSkpKSkpLHRoaXMuX3VwZGF0ZVZpc2libGVGZ1BhdGhzU2VsKCl9c2V0Rm9yZWdyb3VuZExpbmVzQ29sb3IodCxlLG4pe2NvbnN0IGk9dGhpcy5fY3JlYXRlTGluZUNvbG9yRnVuY3Rpb24odCxlLG4pO3RoaXMuX2ZnUGF0aHNTZWwuYXR0cigic3Ryb2tlIixpKX1yZWRyYXcodCxlLG4saSl7Y29uc3Qgcj10aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2Vzc2lvbkdyb3VwKCksbz10aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZS5zZXNzaW9uR3JvdXAoKTt0aGlzLl9zZXNzaW9uR3JvdXBzPXQsdGhpcy5fZmdQYXRoc1NlbD10aGlzLl9yZWNvbXB1dGVQYXRoU2VsZWN0aW9uKHRoaXMuX2ZnUGF0aHNTZWwpLHRoaXMuX2JnUGF0aHNTZWw9dGhpcy5fcmVjb21wdXRlUGF0aFNlbGVjdGlvbih0aGlzLl9iZ1BhdGhzU2VsKSx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGU9dGhpcy5nZXRTZXNzaW9uR3JvdXBIYW5kbGUociksdGhpcy5fc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGU9dGhpcy5nZXRTZXNzaW9uR3JvdXBIYW5kbGUobyksdGhpcy5yZWNvbXB1dGVDb250cm9sUG9pbnRzKGRLdC5GT1JFR1JPVU5EKSx0aGlzLnJlY29tcHV0ZUNvbnRyb2xQb2ludHMoZEt0LkJBQ0tHUk9VTkQpLHRoaXMucmVjb21wdXRlRm9yZWdyb3VuZExpbmVzVmlzaWJpbGl0eSgpLHRoaXMuc2V0Rm9yZWdyb3VuZExpbmVzQ29sb3IoZSxuLGkpfXVwZGF0ZVBlYWtlZFNlc3Npb25Hcm91cCh0KXt0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2VsZWN0aW9uKCkuY2xhc3NlZCgicGVha2VkLXBhdGgiLCExKSx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGU9dCx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2VsZWN0aW9uKCkuY2xhc3NlZCgicGVha2VkLXBhdGgiLCEwKX1jbGVhclBlYWtlZFNlc3Npb25Hcm91cCgpe3RoaXMudXBkYXRlUGVha2VkU2Vzc2lvbkdyb3VwKG5ldyB2S3QpfXVwZGF0ZVNlbGVjdGVkU2Vzc2lvbkdyb3VwKHQpe3RoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwSGFuZGxlLnNlbGVjdGlvbigpLmNsYXNzZWQoInNlbGVjdGVkLXBhdGgiLCExKSx0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZT10LHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwSGFuZGxlLnNlbGVjdGlvbigpLmNsYXNzZWQoInNlbGVjdGVkLXBhdGgiLCEwKX1maW5kQ2xvc2VzdFNlc3Npb25Hcm91cCh0LGUpe2NvbnN0IG49dGhpcy5fYXhlc0NvbGxlY3Rpb24ubWFwVmlzaWJsZUF4ZXMoKCh0LGUpPT50KSksaT0oZnVuY3Rpb24gcih0LGUsbixpKXtpZihlLmxlbmd0aDwyKXJldHVybiBjb25zb2xlLmVycm9yKCJMZXNzIHRoYW4gdHdvIGF4ZXMgaW4gcGFyYWxsZWwgY29vcmRpbmF0ZXMgcGxvdC4iKSxudWxsO2NvbnN0IHI9blswXSxvPW5bMV07aWYocjw9ZVswXXx8cj49ZVtlLmxlbmd0aC0xXSlyZXR1cm4gbnVsbDtjb25zdCBhPVNlLmV4cG9ydHMuc29ydGVkSW5kZXgoZSxyKTtjb25zb2xlLmFzc2VydChhPjApLGNvbnNvbGUuYXNzZXJ0KGE8ZS5sZW5ndGgpO2NvbnN0IHM9YS0xO2xldCBsPW51bGwsYz1udWxsO3JldHVybiB0LmZvckVhY2goKHQ9Pntjb25zdCBlPShmdW5jdGlvbiBuKHQsZSxpLGEpe2NvbnN0IHM9dC1pLGw9ZS1hLGM9ci1pLHU9by1hLGg9KHMqYytsKnUpLyhzKnMrbCpsKTtyZXR1cm4gaDw9MD9VWXQoYyx1KTpoPj0xP1VZdCh0LXIsZS1vKTpVWXQoYy1oKnMsdS1oKmwpfSkodC5jb250cm9sUG9pbnRzW3NdWzBdLHQuY29udHJvbFBvaW50c1tzXVsxXSx0LmNvbnRyb2xQb2ludHNbYV1bMF0sdC5jb250cm9sUG9pbnRzW2FdWzFdKTtlPml8fChudWxsPT09bHx8ZTxsKSYmKGw9ZSxjPXQpfSkpLGN9KSh0aGlzLl92aXNpYmxlRmdQYXRoc1NlbC5ub2RlcygpLG4sW3QsZV0sMTAwKTtyZXR1cm4gbnVsbD09PWk/bmV3IHZLdDpuZXcgdkt0KFN1KGkpKX1fY3JlYXRlTGluZUNvbG9yRnVuY3Rpb24odCxlLG4pe2lmKG51bGw9PT10KXJldHVybigpPT4icmVkIjtjb25zdCBpPVZNKCkuZG9tYWluKE5ZdCh0aGlzLl9zY2hlbWEsdGhpcy5fc2Vzc2lvbkdyb3Vwcyx0KSkucmFuZ2UoW2Usbl0pLmludGVycG9sYXRlKGNwKTtyZXR1cm4gZT0+aShQWXQodGhpcy5fc2NoZW1hLGUsdCkpfV9yZWNvbXB1dGVQYXRoU2VsZWN0aW9uKHQpe3JldHVybih0PXQuZGF0YSh0aGlzLl9zZXNzaW9uR3JvdXBzLCh0PT50Lm5hbWUpKSkuZXhpdCgpLnJlbW92ZSgpLHQuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5tZXJnZSh0KX1fc2V0Q29udHJvbFBvaW50c1Byb3BlcnR5KHQsZSl7dC5jb250cm9sUG9pbnRzPXRoaXMuX2NvbXB1dGVDb250cm9sUG9pbnRzKGUpfV9jb21wdXRlQ29udHJvbFBvaW50cyh0KXtyZXR1cm4gdGhpcy5fYXhlc0NvbGxlY3Rpb24ubWFwVmlzaWJsZUF4ZXMoKChlLG4pPT5bZSxuLnlTY2FsZSgpKFBZdCh0aGlzLl9zY2hlbWEsdCxuLmNvbEluZGV4KCkpKV0pKX1fcGF0aERBdHRyaWJ1dGUodCl7cmV0dXJuIHRoaXMuX2QzbGluZSh0aGlzLl9jb21wdXRlQ29udHJvbFBvaW50cyh0KSl9X3VwZGF0ZVZpc2libGVGZ1BhdGhzU2VsKCl7dGhpcy5fdmlzaWJsZUZnUGF0aHNTZWw9dGhpcy5fZmdQYXRoc1NlbC5maWx0ZXIoIjpub3QoLmludmlzaWJsZS1wYXRoKSIpfX1jbGFzcyB4S3R7Y29uc3RydWN0b3IodCxlKXt0aGlzLnN2Zz1TdSh0KTtjb25zdCBuPTEwMCplKzEwKzEwO3RoaXMuc3ZnLmF0dHIoInZpZXdCb3giLGAwIDAgJHtufSAyNDBgKSx0aGlzLnN2Zy5hdHRyKCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwieE1pZFlNaWQiKSx0aGlzLnN2Zy5zdHlsZSgibWluLXdpZHRoIixuKyJweCIpLHRoaXMuc3ZnLnN0eWxlKCJtaW4taGVpZ2h0IiwiMjQwcHgiKSx0aGlzLndpZHRoPW4tMTAtMTAsdGhpcy5oZWlnaHQ9MjAwLHRoaXMuc3ZnRz10aGlzLnN2Zy5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLFdZdCgxMCwzMCkpfX1jbGFzcyB3S3R7Y29uc3RydWN0b3IodCxlLG4saSl7dGhpcy5fc3ZnUHJvcHM9dCx0aGlzLl9zY2hlbWE9ZSx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBDaGFuZ2VkQ0I9bix0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWRDQj1pLHRoaXMuX2F4ZXNDb2xsZWN0aW9uPW5ldyBfS3QodCxlLHRoaXMpLHRoaXMuX2xpbmVzQ29sbGVjdGlvbj1uZXcgYkt0KHQsZSx0aGlzLl9heGVzQ29sbGVjdGlvbiksdGhpcy5fc3ZnUHJvcHMuc3ZnLm9uKCJjbGljayIsKCgpPT50aGlzLm9uQ2xpY2soKSkpLm9uKCJtb3VzZW1vdmUgbW91c2VlbnRlciIsKCgpPT57Y29uc3RbdCxlXT1haCh0aGlzLl9zdmdQcm9wcy5zdmdHLm5vZGUoKSk7dGhpcy5vbk1vdXNlTW92ZWQodCxlKX0pKS5vbigibW91c2VsZWF2ZSIsKCgpPT50aGlzLm9uTW91c2VMZWF2ZSgpKSl9b25EcmFnU3RhcnQodCl7dGhpcy5fYXhlc0NvbGxlY3Rpb24uZHJhZ1N0YXJ0KHQpLHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5oaWRlQmFja2dyb3VuZExpbmVzKCl9b25EcmFnKHQpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLmRyYWcodCksdGhpcy5fbGluZXNDb2xsZWN0aW9uLnJlY29tcHV0ZUNvbnRyb2xQb2ludHMoZEt0LkZPUkVHUk9VTkQpfW9uRHJhZ0VuZCgpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLmRyYWdFbmQoNTAwKSx0aGlzLl9saW5lc0NvbGxlY3Rpb24ucmVjb21wdXRlQ29udHJvbFBvaW50cyhkS3QuRk9SRUdST1VORCw1MDApLHdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5yZWNvbXB1dGVDb250cm9sUG9pbnRzKGRLdC5CQUNLR1JPVU5EKSx0aGlzLl9saW5lc0NvbGxlY3Rpb24uc2hvd0JhY2tncm91bmRMaW5lcygpfSksNTAwKX1vbkJydXNoQ2hhbmdlZCh0LGUpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLmdldEF4aXNGb3JDb2xJbmRleCh0KS5zZXRCcnVzaFNlbGVjdGlvbihlKSx0aGlzLl9saW5lc0NvbGxlY3Rpb24ucmVjb21wdXRlRm9yZWdyb3VuZExpbmVzVmlzaWJpbGl0eSgpfW9uTW91c2VNb3ZlZCh0LGUpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi51cGRhdGVQZWFrZWRTZXNzaW9uR3JvdXAodGhpcy5fbGluZXNDb2xsZWN0aW9uLmZpbmRDbG9zZXN0U2Vzc2lvbkdyb3VwKHQsZSkpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cENoYW5nZWRDQih0aGlzLl9saW5lc0NvbGxlY3Rpb24ucGVha2VkU2Vzc2lvbkdyb3VwSGFuZGxlKCkuc2Vzc2lvbkdyb3VwKCkpfW9uTW91c2VMZWF2ZSgpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5pc051bGwoKXx8KHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5jbGVhclBlYWtlZFNlc3Npb25Hcm91cCgpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cENoYW5nZWRDQihudWxsKSl9b25DbGljaygpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5zZXNzaW9uR3JvdXAoKT09PXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpLnNlc3Npb25Hcm91cCgpP3RoaXMuX2xpbmVzQ29sbGVjdGlvbi51cGRhdGVTZWxlY3RlZFNlc3Npb25Hcm91cChuZXcgdkt0KTp0aGlzLl9saW5lc0NvbGxlY3Rpb24udXBkYXRlU2VsZWN0ZWRTZXNzaW9uR3JvdXAodGhpcy5fbGluZXNDb2xsZWN0aW9uLnBlYWtlZFNlc3Npb25Hcm91cEhhbmRsZSgpKSx0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWRDQih0aGlzLl9saW5lc0NvbGxlY3Rpb24uc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5zZXNzaW9uR3JvdXAoKSl9b25PcHRpb25zT3JTZXNzaW9uR3JvdXBzQ2hhbmdlZCh0LGUpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLnVwZGF0ZUF4ZXModCxlKTtjb25zdCBuPXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKSxpPXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpO3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5yZWRyYXcoZSx2b2lkIDAhPT10LmNvbG9yQnlDb2x1bW5JbmRleD90LmNvbHVtbnNbdC5jb2xvckJ5Q29sdW1uSW5kZXhdLmFic29sdXRlSW5kZXg6bnVsbCx0Lm1pbkNvbG9yLHQubWF4Q29sb3IpLG4uZXF1YWxzVG8odGhpcy5fbGluZXNDb2xsZWN0aW9uLnBlYWtlZFNlc3Npb25Hcm91cEhhbmRsZSgpKXx8dGhpcy5fcGVha2VkU2Vzc2lvbkdyb3VwQ2hhbmdlZENCKHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5zZXNzaW9uR3JvdXAoKSksaS5lcXVhbHNUbyh0aGlzLl9saW5lc0NvbGxlY3Rpb24uc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGUoKSl8fHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwQ2hhbmdlZENCKHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpLnNlc3Npb25Hcm91cCgpKX1zY2hlbWEoKXtyZXR1cm4gdGhpcy5fc2NoZW1hfX1sZXQgU0t0PWNsYXNzIGV4dGVuZHMoZXIoaWwoeWUpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc2VsZWN0ZWRTZXNzaW9uR3JvdXA9bnVsbCx0aGlzLmNsb3Nlc3RTZXNzaW9uR3JvdXA9bnVsbCx0aGlzLnJlZHJhd0NvdW50PTB9X29wdGlvbnNPclNlc3Npb25Hcm91cHNDaGFuZ2VkKCl7dmFyIHQ7aWYoIXRoaXMub3B0aW9ucylyZXR1cm47Y29uc3R7Y29uZmlndXJhdGlvbjplfT1udWxsIT09KHQ9dGhpcy5fcHJldk9wdGlvbnMpJiZ2b2lkIDAhPT10P3Q6e30se2NvbmZpZ3VyYXRpb246bn09dGhpcy5vcHRpb25zO2lmKHZvaWQgMD09PXRoaXMuX2ludGVyYWN0aW9uTWFuYWdlcnx8IVNlLmV4cG9ydHMuaXNFcXVhbChlLnNjaGVtYSxuLnNjaGVtYSl8fCFTZS5leHBvcnRzLmlzRXF1YWwoZS5jb2x1bW5zVmlzaWJpbGl0eSxuLmNvbHVtbnNWaXNpYmlsaXR5KSl7U3UodGhpcy4kLnN2Zykuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCk7Y29uc3QgdD1uZXcgeEt0KHRoaXMuJC5zdmcsbi5jb2x1bW5zVmlzaWJpbGl0eS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoKTt0aGlzLnNjb3BlU3VidHJlZSh0aGlzLiQuc3ZnLCEwKSx0aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXI9bmV3IHdLdCh0LG4uc2NoZW1hLCh0PT50aGlzLmNsb3Nlc3RTZXNzaW9uR3JvdXBDaGFuZ2VkKHQpKSwodD0+dGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWQodCkpKX10aGlzLl9jb21wdXRlVmFsaWRTZXNzaW9uR3JvdXBzKCksdGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uT3B0aW9uc09yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQodGhpcy5vcHRpb25zLHRoaXMuX3ZhbGlkU2Vzc2lvbkdyb3VwcyksdGhpcy5yZWRyYXdDb3VudCsrLHRoaXMuX3ByZXZPcHRpb25zPXRoaXMub3B0aW9uc31jbG9zZXN0U2Vzc2lvbkdyb3VwQ2hhbmdlZCh0KXt0aGlzLmNsb3Nlc3RTZXNzaW9uR3JvdXA9dH1zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWQodCl7dGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cD10fV9jb21wdXRlVmFsaWRTZXNzaW9uR3JvdXBzKCl7Y29uc3QgdD1YWXQ7aWYodm9pZCAwPT09dGhpcy5zZXNzaW9uR3JvdXBzKXJldHVybiB2b2lkKHRoaXMuX3ZhbGlkU2Vzc2lvbkdyb3Vwcz12b2lkIDApO2NvbnN0IGU9dGhpcy5vcHRpb25zLmNvbmZpZ3VyYXRpb24uc2NoZW1hO3RoaXMuX3ZhbGlkU2Vzc2lvbkdyb3Vwcz10aGlzLnNlc3Npb25Hcm91cHMuZmlsdGVyKChuPT57Zm9yKGxldCBpPTA7aTx0Lm51bUNvbHVtbnMoZSk7KytpKWlmKHRoaXMub3B0aW9ucy5jb25maWd1cmF0aW9uLmNvbHVtbnNWaXNpYmlsaXR5W2ldJiZ2b2lkIDA9PT10LmNvbHVtblZhbHVlQnlJbmRleChlLG4saSkpcmV0dXJuITE7cmV0dXJuITB9KSl9fTtTS3QudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGlkPSJjb250YWluZXIiPgogICAgICA8c3ZnIGlkPSJzdmciPjwvc3ZnPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAtLXRmLWhwYXJhbXMtcGFyYWxsZWwtY29vcmRzLXBsb3QtYXhpcy1zaGFkb3c6IDAgMXB4IDAgI2ZmZiwKICAgICAgICAgIDFweCAwIDAgI2ZmZiwgMCAtMXB4IDAgI2ZmZiwgLTFweCAwIDAgI2ZmZjsKICAgICAgfQogICAgICA6aG9zdCguZGFyay1tb2RlKSB7CiAgICAgICAgLS10Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy1wbG90LWF4aXMtc2hhZG93OiAwIDFweCAwICMwMDAsCiAgICAgICAgICAxcHggMCAwICMwMDAsIDAgLTFweCAwICMwMDAsIC0xcHggMCAwICMwMDA7CiAgICAgIH0KICAgICAgc3ZnIHsKICAgICAgICBmb250OiAxMHB4IHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5iYWNrZ3JvdW5kIHBhdGggewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiAjZGRkOwogICAgICAgIHNoYXBlLXJlbmRlcmluZzogY3Jpc3BFZGdlczsKICAgICAgfQoKICAgICAgLmZvcmVncm91bmQgcGF0aCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2Utb3BhY2l0eTogMC43OwogICAgICAgIHN0cm9rZS13aWR0aDogMTsKICAgICAgfQoKICAgICAgLyogV2lsbCBiZSBzZXQgb24gZm9yZWdyb3VuZCBwYXRocyB0aGF0IGFyZSBub3QgImNvbnRhaW5lZCIgaW4gdGhlIGN1cnJlbnQKICAgICAgICAgYXhlcyBicnVzaGVzLiBJZiBubyBicnVzaGVzIGFyZSBzZXQsIG5vIHBhdGggd2lsbCBoYXZlIHRoaXMgY2xhc3MuICovCiAgICAgIC5mb3JlZ3JvdW5kIC5pbnZpc2libGUtcGF0aCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogU3R5bGUgZm9yIHRoZSBwYXRoIGNsb3Nlc3QgdG8gdGhlIG1vdXNlIHBvaW50ZXIgKHR5cGljYWxseSB3aWxsIGJlY29tZQogICAgICB0aGUgc2VsZWN0ZWQgcGF0aCB3aGVuIHRoZSB1c2VyIGNsaWNrcykuICovCiAgICAgIC5mb3JlZ3JvdW5kIC5wZWFrZWQtcGF0aCB7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICB9CgogICAgICAvKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHBhdGggY2xhc3MuIFdlIHVzZSAhaW1wb3J0YW50IHRvIG92ZXJyaWRlIHRoZQogICAgICAgICBpbmxpbmUgc3R5bGUgdGhhdCBzZXRzIHRoZSByZWd1bGFyIGNvbG9yIG9mIGEgcGF0aC4gKi8KICAgICAgLmZvcmVncm91bmQgLnNlbGVjdGVkLXBhdGggewogICAgICAgIHN0cm9rZS13aWR0aDogMyAhaW1wb3J0YW50OwogICAgICAgIHN0cm9rZTogIzBmMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAjY29udGFpbmVyIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIHN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuYXhpcyB0ZXh0IHsKICAgICAgICB0ZXh0LXNoYWRvdzogdmFyKC0tdGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtcGxvdC1heGlzLXNoYWRvdyk7CiAgICAgICAgZmlsbDogY3VycmVudENvbG9yOwogICAgICAgIGN1cnNvcjogbW92ZTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxTS3QucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFNLdC5wcm90b3R5cGUsIm9wdGlvbnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFNLdC5wcm90b3R5cGUsInNlbGVjdGVkU2Vzc2lvbkdyb3VwIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxTS3QucHJvdG90eXBlLCJjbG9zZXN0U2Vzc2lvbkdyb3VwIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLFNLdC5wcm90b3R5cGUsInJlZHJhd0NvdW50Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxTS3QucHJvdG90eXBlLCJfdmFsaWRTZXNzaW9uR3JvdXBzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFNLdC5wcm90b3R5cGUsIl9pbnRlcmFjdGlvbk1hbmFnZXIiLHZvaWQgMCksdChbYSgib3B0aW9ucy4qIiwic2Vzc2lvbkdyb3Vwcy4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxTS3QucHJvdG90eXBlLCJfb3B0aW9uc09yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQiLG51bGwpLFNLdD10KFtpKCJ0Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy1wbG90IildLFNLdCk7bGV0IE1LdD1jbGFzcyBleHRlbmRzIHlle19jbG9zZXN0T3JTZWxlY3RlZCh0LGUpe3JldHVybiBudWxsIT09dD90OmV9fTtNS3QudGVtcGxhdGU9X2VgCiAgICA8IS0tIENvbnRyb2xzIGJlaGF2aW9yIG9mIHBhcmFsbGVsIGNvb3JkaW5hdGVzIHBsb3QKICAgICAgICAgb3V0cHV0cyBzZXQgb3B0aW9ucyB0byB0aGUgX29wdGlvbnMgcHJvcGVydHkuCiAgICAgIC0tPgogICAgPGhwYXJhbXMtc3BsaXQtbGF5b3V0IG9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI+CiAgICAgIDwhLS0gVGhlIHNjYWxlIGFuZCBjb2xvciBjb250cm9scy4gLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scwogICAgICAgIGlkPSJjb250cm9scyIKICAgICAgICBzbG90PSJjb250ZW50IgogICAgICAgIGNsYXNzPSJzZWN0aW9uIgogICAgICAgIGNvbmZpZ3VyYXRpb249IltbY29uZmlndXJhdGlvbl1dIgogICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICBvcHRpb25zPSJ7e19vcHRpb25zfX0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scz4KICAgICAgPCEtLSBUaGUgYWN0dWFsIHBhcmFsbGVsIGNvb3JkaW5hdGVzIHBsb3QgLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy1wbG90CiAgICAgICAgaWQ9InBsb3QiCiAgICAgICAgc2xvdD0iY29udGVudCIKICAgICAgICBjbGFzcz0ic2VjdGlvbiIKICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tzZXNzaW9uR3JvdXBzXV0iCiAgICAgICAgc2VsZWN0ZWQtc2Vzc2lvbi1ncm91cD0ie3tfc2VsZWN0ZWRHcm91cH19IgogICAgICAgIGNsb3Nlc3Qtc2Vzc2lvbi1ncm91cD0ie3tfY2xvc2VzdEdyb3VwfX0iCiAgICAgICAgb3B0aW9ucz0iW1tfb3B0aW9uc11dIgogICAgICA+CiAgICAgIDwvdGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtcGxvdD4KICAgICAgPHRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC12YWx1ZXMKICAgICAgICBpZD0idmFsdWVzIgogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgICAgc2Vzc2lvbi1ncm91cD0iW1tfY2xvc2VzdE9yU2VsZWN0ZWQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Nsb3Nlc3RHcm91cCwgX3NlbGVjdGVkR3JvdXApXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtdmFsdWVzPgogICAgICA8dGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLWRldGFpbHMKICAgICAgICBpZD0iZGV0YWlscyIKICAgICAgICBzbG90PSJjb250ZW50IgogICAgICAgIGNsYXNzPSJzZWN0aW9uIgogICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgIHNlc3Npb24tZ3JvdXA9IltbX3NlbGVjdGVkR3JvdXBdXSIKICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1tjb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWFdXSIKICAgICAgPgogICAgICA8L3RmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzPgogICAgPC9ocGFyYW1zLXNwbGl0LWxheW91dD4KCiAgICA8c3R5bGU+CiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CiAgICAgICN2YWx1ZXMgewogICAgICAgIGhlaWdodDogMTE1cHg7CiAgICAgIH0KICAgICAgI2RldGFpbHMgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE1LdC5wcm90b3R5cGUsImJhY2tlbmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTUt0LnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTUt0LnByb3RvdHlwZSwiY29uZmlndXJhdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sTUt0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSxNS3Q9dChbaSgidGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtdmlldyIpXSxNS3QpO2xldCBFS3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwPW51bGwsdGhpcy5jbG9zZXN0U2Vzc2lvbkdyb3VwPW51bGwsdGhpcy5fY29udGFpbmVyPW51bGwsdGhpcy5fc3ZnPW51bGwsdGhpcy53aWR0aD0wLHRoaXMuaGVpZ2h0PTAsdGhpcy5fYnJ1c2hlZENlbGxJbmRleD1udWxsLHRoaXMuX2JydXNoU2VsZWN0aW9uPW51bGx9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuX2NvbnRhaW5lcj10aGlzLiQuY29udGFpbmVyLHRoaXMuX3N2Zz1TdSh0aGlzLiQuc3ZnKSx0aGlzLl9yZWRyYXcoKX1fc2Vzc2lvbkdyb3Vwc0NoYW5nZWQoKXtudWxsIT09dGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cCYmKHRoaXMuc2VsZWN0ZWRTZXNzaW9uR3JvdXA9RFl0KHRoaXMuc2Vzc2lvbkdyb3Vwcyx0aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwLm5hbWUpfHxudWxsKSx0aGlzLl9yZWRyYXcoKX1fdmlzaWJsZVNjaGVtYUNoYW5nZWQoKXt0aGlzLl9icnVzaGVkQ2VsbEluZGV4PW51bGwsdGhpcy5fYnJ1c2hTZWxlY3Rpb249bnVsbCx0aGlzLl9yZWRyYXcoKX1fcmVkcmF3KCl7dGhpcy5kZWJvdW5jZSgiX3JlZHJhdyIsKCgpPT57Y29uc3QgdD1YWXQ7dGhpcy53aWR0aD1NYXRoLm1heCgxNTAqdC5udW1WaXNpYmxlQ29sdW1ucyh0aGlzLnZpc2libGVTY2hlbWEpLDEyMDApLHRoaXMuaGVpZ2h0PU1hdGgubWF4KDExMi41KnQubnVtVmlzaWJsZU1ldHJpY3ModGhpcy52aXNpYmxlU2NoZW1hKSw0ODApLHRoaXMuX2NvbnRhaW5lci5zdHlsZS53aWR0aD10aGlzLndpZHRoKyJweCIsdGhpcy5fY29udGFpbmVyLnN0eWxlLmhlaWdodD10aGlzLmhlaWdodCsicHgiLHRoaXMuX3N2Zy5hdHRyKCJ3aWR0aCIsdGhpcy53aWR0aCkuYXR0cigiaGVpZ2h0Iix0aGlzLmhlaWdodCksdGhpcy5fc3ZnLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpLHRoaXMuX2RyYXcoKX0pLDEwMCl9X2RyYXcoKXtjb25zdCB0PVhZdCxlPXRoaXM7aWYoIXRoaXMuc2Vzc2lvbkdyb3Vwc3x8MD09dGhpcy5zZXNzaW9uR3JvdXBzLmxlbmd0aHx8IXRoaXMudmlzaWJsZVNjaGVtYXx8MD09dGhpcy52aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zLmxlbmd0aClyZXR1cm47Y29uc3Qgbj16bCh0Lm51bVZpc2libGVDb2x1bW5zKGUudmlzaWJsZVNjaGVtYSkpLGk9emwodC5udW1WaXNpYmxlTWV0cmljcyhlLnZpc2libGVTY2hlbWEpKSxyPVRNKCkuZG9tYWluKG4pLnJhbmdlKFs4NSx0aGlzLndpZHRoLTEtNV0pLnBhZGRpbmdJbm5lciguMSksbz1UTSgpLmRvbWFpbihpKS5yYW5nZShbdGhpcy5oZWlnaHQtMS01LTUwLDVdKS5wYWRkaW5nSW5uZXIoLjEpLGE9ci5iYW5kd2lkdGgoKSxzPW8uYmFuZHdpZHRoKCksbD1uLm1hcCgodD0+ZS5fY2VsbFNjYWxlKHQsWzAsYS0xXSkpKSxjPWkubWFwKChuPT5lLl9jZWxsU2NhbGUobit0Lm51bVZpc2libGVIUGFyYW1zKGUudmlzaWJsZVNjaGVtYSksW3MtMSwwXSkpKSx1PXRoaXMuX3N2Zy5zZWxlY3RBbGwoIi54LWF4aXMiKS5kYXRhKG4pLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgieC1heGlzIiwhMCkuYXR0cigidHJhbnNmb3JtIiwoZT0+dC50cmFuc2xhdGVTdHIocihlKSwwKSkpO2Z1bmN0aW9uIGgodCl7cmV0dXJuIngtYXhpcy1jbGlwLXBhdGgtIit0fWZ1bmN0aW9uIGQodCl7cmV0dXJuIngtbGFiZWwtY2xpcC1wYXRoLSIrdH11LmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsaCkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsLTUpLmF0dHIoInkiLDApLmF0dHIoIndpZHRoIixhKzEwKS5hdHRyKCJoZWlnaHQiLGUuaGVpZ2h0LTI1KSx1LmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsZCkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsMCkuYXR0cigieSIsZS5oZWlnaHQtMjUpLmF0dHIoIndpZHRoIixhKS5hdHRyKCJoZWlnaHQiLDI1KSx1LmFwcGVuZCgiZyIpLmF0dHIoImNsaXAtcGF0aCIsKHQ9PiJ1cmwoIyIraCh0KSsiKSIpKS5lYWNoKChmdW5jdGlvbih0KXtTdSh0aGlzKS5jYWxsKGcsb2MobFt0XSkudGlja1NpemUoZS5oZWlnaHQtNTApLGEsNDAsZS5vcHRpb25zLmNvbHVtbnNbdF0uc2NhbGUpfSkpLHUuYXBwZW5kKCJnIikuY2xhc3NlZCgieC1heGlzLWxhYmVsIiwhMCkuYXR0cigiY2xpcC1wYXRoIiwodD0+InVybCgjIitkKHQpKyIpIikpLmFwcGVuZCgidGV4dCIpLmF0dHIoInRleHQtYW5jaG9yIiwibWlkZGxlIikuYXR0cigieCIsYS8yKS5hdHRyKCJ5IixlLmhlaWdodC0xLTEyLjUpLnRleHQoKG49PnQuc2NoZW1hVmlzaWJsZUNvbHVtbk5hbWUoZS52aXNpYmxlU2NoZW1hLG4pKSkuYXBwZW5kKCJ0aXRsZSIpLnRleHQoKG49PnQuc2NoZW1hVmlzaWJsZUNvbHVtbk5hbWUoZS52aXNpYmxlU2NoZW1hLG4pKSk7Y29uc3QgcD10aGlzLl9zdmcuc2VsZWN0QWxsKCIueS1heGlzIikuZGF0YShpKS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInktYXhpcyIsITApLmF0dHIoInRyYW5zZm9ybSIsKG49PnQudHJhbnNsYXRlU3RyKGUud2lkdGgtMSxvKG4pKSkpO2Z1bmN0aW9uIGYodCl7cmV0dXJuInktYXhpcy1jbGlwLXBhdGgtIit0fWZ1bmN0aW9uIG0odCl7cmV0dXJuInktbGFiZWwtY2xpcC1wYXRoLSIrdH1mdW5jdGlvbiBnKHQsZSxuLGkscil7Y29uc3Qgbz1NYXRoLmZsb29yKG4vaSksYT1lLnNjYWxlKCk7aWYoIlFVQU5USUxFIj09PXIpe2xldCB0PWEucXVhbnRpbGVzKCk7Y29uc3Qgbj1NYXRoLmNlaWwodC5sZW5ndGgvbyk7dD16bCgwLHQubGVuZ3RoLG4pLm1hcCgoZT0+dFtlXSkpLGUudGlja1ZhbHVlcyh0KS50aWNrRm9ybWF0KG15KCItLjJnIikpfSJMSU5FQVIiIT09ciYmIkxPRyIhPT1yfHxlLnRpY2tzKG8pLHQuY2FsbChlKSx0LnNlbGVjdEFsbCgiLmRvbWFpbiIpLnJlbW92ZSgpLHQuc2VsZWN0QWxsKCIudGljayBsaW5lIikuYXR0cigic3Ryb2tlIiwiI2RkZCIpfXAuYXBwZW5kKCJjbGlwUGF0aCIpLmF0dHIoImlkIixmKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4IiwtKGUud2lkdGgtNDAtMSkpLmF0dHIoInkiLC01KS5hdHRyKCJ3aWR0aCIsZS53aWR0aC00MCkuYXR0cigiaGVpZ2h0IixzKzEwKSxwLmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsbSkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsLShlLndpZHRoLTEpKS5hdHRyKCJ5IiwwKS5hdHRyKCJ3aWR0aCIsNDApLmF0dHIoImhlaWdodCIscykscC5hcHBlbmQoImciKS5hdHRyKCJjbGlwLXBhdGgiLCh0PT4idXJsKCMiK2YodCkrIikiKSkuZWFjaCgoZnVuY3Rpb24obil7U3UodGhpcykuY2FsbChnLGFjKGNbbl0pLnRpY2tTaXplKGUud2lkdGgtODApLHMsMjAsZS5vcHRpb25zLmNvbHVtbnNbbit0Lm51bVZpc2libGVIUGFyYW1zKGUudmlzaWJsZVNjaGVtYSldLnNjYWxlKX0pKSxwLmFwcGVuZCgiZyIpLmNsYXNzZWQoInktYXhpcy1sYWJlbCIsITApLmF0dHIoImNsaXAtcGF0aCIsKHQ9PiJ1cmwoIyIrbSh0KSsiKSIpKS5hcHBlbmQoInRleHQiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmF0dHIoIngiLC0oZS53aWR0aC0yMC0xKSkuYXR0cigieSIscy8yKS5hdHRyKCJ0cmFuc2Zvcm0iLHQucm90YXRlU3RyKDkwLC0oZS53aWR0aC0yMC0xKSxzLzIpKS50ZXh0KChuPT50Lm1ldHJpY05hbWUoZS52aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zW25dKSkpLmFwcGVuZCgidGl0bGUiKS50ZXh0KChuPT50Lm1ldHJpY05hbWUoZS52aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zW25dKSkpO2NvbnN0IF89dGhpcy5fc3ZnLnNlbGVjdEFsbCgiLmNlbGwiKS5kYXRhKFRsKG4saSkpLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2VsbCIsITApLmF0dHIoInRyYW5zZm9ybSIsKChbZSxuXSk9PnQudHJhbnNsYXRlU3RyKHIoZSksbyhuKSkpKTtfLmFwcGVuZCgiZyIpLmNsYXNzZWQoImZyYW1lIiwhMCkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsLTUpLmF0dHIoInkiLC01KS5hdHRyKCJ3aWR0aCIsYSsxMCkuYXR0cigiaGVpZ2h0IixzKzEwKS5hdHRyKCJzdHJva2UiLCIjMDAwIikuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIik7bGV0IHk9bnVsbDt2b2lkIDAhPT1lLm9wdGlvbnMuY29sb3JCeUNvbHVtbkluZGV4JiYoeT1WTSgpLmRvbWFpbih0aGlzLl9jb2xFeHRlbnQodGhpcy5vcHRpb25zLmNvbG9yQnlDb2x1bW5JbmRleCkpLnJhbmdlKFt0aGlzLm9wdGlvbnMubWluQ29sb3IsdGhpcy5vcHRpb25zLm1heENvbG9yXSkuaW50ZXJwb2xhdGUoY3ApKTtjb25zdCB2PXZvaWQgMD09PWUub3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXg/KCk9PiJyZWQiOih7c2Vzc2lvbkdyb3VwOnR9KT0+eSh0aGlzLl9jb2xWYWx1ZSh0LGUub3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXgpKTtmdW5jdGlvbiBiKHQsbil7cmV0dXJuIGxbbl0oZS5fY29sVmFsdWUodCxuKSl9ZnVuY3Rpb24geCh0LG4pe3JldHVybiBjW25dKGUuX21ldHJpY1ZhbHVlKHQsbikpfWNvbnN0W3csUyxNXT0oZnVuY3Rpb24gRSh0LHIpe2NvbnN0IG89dC5zZWxlY3RBbGwoIi5kYXRhLW1hcmtlciIpLmRhdGEoKChbdCxuXSk9PmUuc2Vzc2lvbkdyb3Vwcy5maWx0ZXIoKGk9PnZvaWQgMCE9PWUuX2NvbFZhbHVlKGksdCkmJnZvaWQgMCE9PWUuX21ldHJpY1ZhbHVlKGksbikpKS5tYXAoKGU9Pih7Y29sOnQsbWV0cmljOm4sc2Vzc2lvbkdyb3VwOmUseDpiKGUsdCkseTp4KGUsbiksc2Vzc2lvbkdyb3VwTWFya2VyczpudWxsfSkpKSkpLmVudGVyKCkuYXBwZW5kKCJjaXJjbGUiKS5jbGFzc2VkKCJkYXRhLW1hcmtlciIsITApLmF0dHIoImN4IiwoKHt4OnR9KT0+dCkpLmF0dHIoImN5IiwoKHt5OnR9KT0+dCkpLmF0dHIoInIiLDIpLmF0dHIoImZpbGwiLHIpLGE9bmV3IE1hcDtlLnNlc3Npb25Hcm91cHMuZm9yRWFjaCgodD0+e2Euc2V0KHQsW10pfSkpLG8uZWFjaCgoZnVuY3Rpb24odCl7YS5nZXQodC5zZXNzaW9uR3JvdXApLnB1c2godGhpcyl9KSksby5lYWNoKCh0PT57Y29uc3QgZT1hLmdldCh0LnNlc3Npb25Hcm91cCk7dC5zZXNzaW9uR3JvdXBNYXJrZXJzPW5ldyBTZXQoZSl9KSk7Y29uc3Qgcz1uLm1hcCgodD0+aS5tYXAoKGU9Pm8uZmlsdGVyKChuPT5uLmNvbD09dCYmbi5tZXRyaWM9PWUpKSkpKSk7cmV0dXJuW28scyxhXX0pKF8uYXBwZW5kKCJnIiksdiksVD1uLm1hcCgodD0+aS5tYXAoKGU9PihmdW5jdGlvbiBuKHQsZSl7Y29uc3Qgbj1bXTtyZXR1cm4gU1t0XVtlXS5lYWNoKChmdW5jdGlvbigpe24ucHVzaCh0aGlzKX0pKSxOXygpLngoKHQ9PlN1KHQpLmRhdHVtKCkueCkpLnkoKHQ9PlN1KHQpLmRhdHVtKCkueSkpLmFkZEFsbChuKX0pKHQsZSkpKSkpO2xldCBDPW51bGw7TigpJiYoQz1fLmZpbHRlcigodD0+U2UuZXhwb3J0cy5pc0VxdWFsKHQsZS5fYnJ1c2hlZENlbGxJbmRleCkpKSxjb25zb2xlLmFzc2VydCgxPT1DLnNpemUoKSxDKSk7bGV0IEE9bmV3IFNldCh3Lm5vZGVzKCkpO2Z1bmN0aW9uIGsoKXtsZXQgbj1uZXcgU2V0KHcubm9kZXMoKSk7KGZ1bmN0aW9uIGkoKXtyZXR1cm4hTigpfHxlLl9icnVzaFNlbGVjdGlvblswXVswXT09PWUuX2JydXNoU2VsZWN0aW9uWzFdWzBdfHxlLl9icnVzaFNlbGVjdGlvblswXVsxXT09PWUuX2JydXNoU2VsZWN0aW9uWzFdWzFdfSkoKXx8KG49KGZ1bmN0aW9uIHIoZSxuKXtjb25zb2xlLmFzc2VydChudWxsIT09ZSksY29uc29sZS5hc3NlcnQobnVsbCE9PW4pO2NvbnN0W2kscl09ZSxvPW5ldyBTZXQ7cmV0dXJuIHQucXVhZFRyZWVWaXNpdFBvaW50c0luUmVjdChUW2ldW3JdLG5bMF1bMF0sblswXVsxXSxuWzFdWzBdLG5bMV1bMV0sKHQ9PntTdSh0KS5kYXR1bSgpLnNlc3Npb25Hcm91cE1hcmtlcnMuZm9yRWFjaCgodD0+e28uYWRkKHQpfSkpfSkpLG99KShlLl9icnVzaGVkQ2VsbEluZGV4LGUuX2JydXNoU2VsZWN0aW9uKSksc2goQXJyYXkuZnJvbSh0LmZpbHRlclNldChuLCh0PT4hQS5oYXModCkpKSkpLmF0dHIoImZpbGwiLHYpLHNoKEFycmF5LmZyb20odC5maWx0ZXJTZXQoQSwodD0+IW4uaGFzKHQpKSkpKS5hdHRyKCJmaWxsIiwiI2RkZCIpLEE9bn1rKCk7Y29uc3QgTD1KbSgpLmV4dGVudChbWy00LC00XSxbYS0xKzUtMSxzLTErNS0xXV0pLm9uKCJzdGFydCIsKGZ1bmN0aW9uKCl7TigpJiZDLm5vZGUoKSE9dGhpcyYmTC5tb3ZlKEMsbnVsbCksUCh0aGlzKX0pKS5vbigiYnJ1c2giLChmdW5jdGlvbigpe1AodGhpcyl9KSkub24oImVuZCIsKGZ1bmN0aW9uKCl7UCh0aGlzKX0pKTtmdW5jdGlvbiBQKHQpe2NvbnN0IG49S20odCk7IU4oKSYmbnVsbD09PW58fE4oKSYmdD09PUMubm9kZSgpJiZTZS5leHBvcnRzLmlzRXF1YWwobixlLl9icnVzaFNlbGVjdGlvbil8fChlLl9icnVzaFNlbGVjdGlvbj1uLG51bGwhPT1uPyhDPVN1KHQpLGUuX2JydXNoZWRDZWxsSW5kZXg9Qy5kYXR1bSgpKTooQz1udWxsLGUuX2JydXNoZWRDZWxsSW5kZXg9bnVsbCksaygpKX1mdW5jdGlvbiBOKCl7cmV0dXJuIG51bGwhPT1lLl9icnVzaGVkQ2VsbEluZGV4JiZudWxsIT09ZS5fYnJ1c2hTZWxlY3Rpb259Xy5jYWxsKEwpLE4oKSYmTC5tb3ZlKEMsZS5fYnJ1c2hTZWxlY3Rpb24pO2xldCBJPW51bGwsUj1udWxsO251bGwhPT10aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwJiYoUj1zaChNLmdldCh0aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwKSkuY2xhc3NlZCgic2VsZWN0ZWQtbWFya2VyIiwhMCkpLF8ub24oImNsaWNrIiwoZnVuY3Rpb24oKXtjb25zdCB0PUk9PT1SP251bGw6STtpZih0PT09UilyZXR1cm47bnVsbCE9PVImJlIuY2xhc3NlZCgic2VsZWN0ZWQtbWFya2VyIiwhMSksUj10LG51bGwhPT1SJiZSLmNsYXNzZWQoInNlbGVjdGVkLW1hcmtlciIsITApO2NvbnN0IG49bnVsbD09PVI/bnVsbDpSLmRhdHVtKCkuc2Vzc2lvbkdyb3VwO2Uuc2VsZWN0ZWRTZXNzaW9uR3JvdXA9bn0pKS5vbigibW91c2Vtb3ZlIG1vdXNlZW50ZXIiLChmdW5jdGlvbihbbixpXSl7Y29uc3RbcixvXT1haCh0aGlzKSxhPShmdW5jdGlvbiBzKGUsbixpLHIsbyl7bGV0IGE9MS8wLHM9bnVsbDtyZXR1cm4gdC5xdWFkVHJlZVZpc2l0UG9pbnRzSW5EaXNrKFRbZV1bbl0saSxyLG8sKCh0LGUpPT57aWYoQS5oYXModCkmJmU8YSl7Y29uc3Qgbj1TdSh0KS5kYXR1bSgpO2E9ZSxzPW4uc2Vzc2lvbkdyb3VwfX0pKSxudWxsPT09cz9udWxsOnNoKE0uZ2V0KHMpKX0pKG4saSxyLG8sMjApO0khPT1hJiYobnVsbCE9PUkmJkkuY2xhc3NlZCgiY2xvc2VzdC1tYXJrZXIiLCExKSxJPWEsbnVsbCE9PUk/KEkuY2xhc3NlZCgiY2xvc2VzdC1tYXJrZXIiLCEwKSxlLmNsb3Nlc3RTZXNzaW9uR3JvdXA9SS5kYXR1bSgpLnNlc3Npb25Hcm91cCk6ZS5jbG9zZXN0U2Vzc2lvbkdyb3VwPW51bGwpfSkpLm9uKCJtb3VzZWxlYXZlIiwoZnVuY3Rpb24oW3Qsbl0pe251bGwhPT1JJiYoSS5jbGFzc2VkKCJjbG9zZXN0LW1hcmtlciIsITEpLEk9bnVsbCxlLmNsb3Nlc3RTZXNzaW9uR3JvdXA9bnVsbCl9KSksdGhpcy5fc3ZnLnNlbGVjdEFsbCgiKiIpLmNsYXNzZWQoInRmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC1wbG90IiwhMCl9X2NlbGxTY2FsZSh0LGUpe2NvbnN0IG49dGhpcy5fY29sRXh0ZW50KHQpLGk9Vk0oKS5kb21haW4obikucmFuZ2UoZSk7aWYoIkxJTkVBUiI9PT10aGlzLm9wdGlvbnMuY29sdW1uc1t0XS5zY2FsZSlyZXR1cm4gaTtpZigiTE9HIj09PXRoaXMub3B0aW9ucy5jb2x1bW5zW3RdLnNjYWxlKXJldHVybiBuWzBdPD0wJiZuWzFdPj0wP2k6S00oKS5kb21haW4obikucmFuZ2UoZSk7aWYoIlFVQU5USUxFIj09PXRoaXMub3B0aW9ucy5jb2x1bW5zW3RdLnNjYWxlKXtjb25zdCBuPShlWzFdLWVbMF0pLzE5LGk9emwoMjApLm1hcCgodD0+ZVswXStuKnQpKTtyZXR1cm4gb0UoKS5kb21haW4oU2UuZXhwb3J0cy51bmlxKHRoaXMuc2Vzc2lvbkdyb3Vwcy5tYXAoKGU9PnRoaXMuX2NvbFZhbHVlKGUsdCkpKSkpLnJhbmdlKGkpfWlmKCJOT05fTlVNRVJJQyI9PT10aGlzLm9wdGlvbnMuY29sdW1uc1t0XS5zY2FsZSlyZXR1cm4gQU0oKS5kb21haW4oU2UuZXhwb3J0cy51bmlxKHRoaXMuc2Vzc2lvbkdyb3Vwcy5tYXAoKGU9PnRoaXMuX2NvbFZhbHVlKGUsdCkpKS5zb3J0KCkpKS5yYW5nZShlKS5wYWRkaW5nKC4xKTt0aHJvdyJVbmtub3duIHNjYWxlIGZvciBjb2x1bW46ICIrdCsiLiBvcHRpb25zOiAiK3RoaXMub3B0aW9uc31fY29sVmFsdWUodCxlKXtyZXR1cm4gRll0KHRoaXMudmlzaWJsZVNjaGVtYSx0LGUpfV9tZXRyaWNWYWx1ZSh0LGUpe3JldHVybiBIWXQodGhpcy52aXNpYmxlU2NoZW1hLHQsZSl9X2NvbEV4dGVudCh0KXtyZXR1cm4gell0KHRoaXMudmlzaWJsZVNjaGVtYSx0aGlzLnNlc3Npb25Hcm91cHMsdCl9fTtFS3QudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGlkPSJjb250YWluZXIiPgogICAgICA8c3ZnIGlkPSJzdmciPjwvc3ZnPgogICAgPC9kaXY+CgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgc3ZnIHsKICAgICAgICBmb250OiAxMHB4IHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIHRleHQgewogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLmZyYW1lIHJlY3QgewogICAgICAgIHN0cm9rZTogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAvKiBUaGUgY2xvc2VzdCBkYXRhIHBvaW50IG1hcmtlciB0byB0aGUgbW91c2UgcG9pbnRlci4gV2UgdXNlICFpbXBvcnRhbnQKICAgICAgICAgdG8gb3ZlcnJpZGUgdGhlIGlubGluZSBzdHlsZSB0aGF0IHNldHMgdGhlIHJlZ3VsYXIgc3R5bGUgb2YgYSBtYXJrZXIuCiAgICAgICovCiAgICAgIC5jbG9zZXN0LW1hcmtlciB7CiAgICAgICAgcjogNiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAvKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGEgcG9pbnQgbWFya2VyLiBXZSB1c2UgIWltcG9ydGFudCB0bwogICAgICAgICBvdmVycmlkZSB0aGUgaW5saW5lIHN0eWxlIHRoYXQgc2V0cyB0aGUgcmVndWxhciBzdHlsZSBvZiBhIG1hcmtlci4gKi8KICAgICAgLnNlbGVjdGVkLW1hcmtlciB7CiAgICAgICAgcjogNiAhaW1wb3J0YW50OwogICAgICAgIGZpbGw6ICMwZjAgIWltcG9ydGFudDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEVLdC5wcm90b3R5cGUsInZpc2libGVTY2hlbWEiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLEVLdC5wcm90b3R5cGUsInNlc3Npb25Hcm91cHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRUt0LnByb3RvdHlwZSwib3B0aW9ucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRUt0LnByb3RvdHlwZSwic2VsZWN0ZWRTZXNzaW9uR3JvdXAiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEVLdC5wcm90b3R5cGUsImNsb3Nlc3RTZXNzaW9uR3JvdXAiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsSFRNTEVsZW1lbnQpXSxFS3QucHJvdG90eXBlLCJfY29udGFpbmVyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEVLdC5wcm90b3R5cGUsIl9zdmciLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sRUt0LnByb3RvdHlwZSwid2lkdGgiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sRUt0LnByb3RvdHlwZSwiaGVpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEVLdC5wcm90b3R5cGUsIl9icnVzaGVkQ2VsbEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEVLdC5wcm90b3R5cGUsIl9icnVzaFNlbGVjdGlvbiIsdm9pZCAwKSx0KFthKCJzZXNzaW9uR3JvdXBzLioiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEVLdC5wcm90b3R5cGUsIl9zZXNzaW9uR3JvdXBzQ2hhbmdlZCIsbnVsbCksdChbYSgidmlzaWJsZVNjaGVtYS4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxFS3QucHJvdG90eXBlLCJfdmlzaWJsZVNjaGVtYUNoYW5nZWQiLG51bGwpLHQoW2EoIm9wdGlvbnMuKiIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sRUt0LnByb3RvdHlwZSwiX3JlZHJhdyIsbnVsbCksRUt0PXQoW2koInRmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC1wbG90IildLEVLdCk7bGV0IFRLdD1jbGFzcyBleHRlbmRzIHlle19jbG9zZXN0T3JTZWxlY3RlZCh0LGUpe3JldHVybiBudWxsIT09dD90OmV9fTtUS3QudGVtcGxhdGU9X2VgCiAgICA8aHBhcmFtcy1zcGxpdC1sYXlvdXQgb3JpZW50YXRpb249InZlcnRpY2FsIj4KICAgICAgPCEtLSBDb250cm9scyBiZWhhdmlvciBvZiB0aGUgc2NhdHRlciBwbG90IG1hdHJpeAogICAgICAgICAgICAgb3V0cHV0cyB0aGUgY29uZmlndXJlZCBvcHRpb25zIHRvIHRoZSBfb3B0aW9ucyBwcm9wZXJ0eS4gLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scwogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgaWQ9ImNvbnRyb2xzIgogICAgICAgIGNvbmZpZ3VyYXRpb249IltbY29uZmlndXJhdGlvbl1dIgogICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICBvcHRpb25zPSJ7e19vcHRpb25zfX0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scz4KICAgICAgPCEtLSBUaGUgYWN0dWFsIHNjYXR0ZXIgcGxvdCBtYXRyaXggLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXNjYXR0ZXItcGxvdC1tYXRyaXgtcGxvdAogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgaWQ9InBsb3QiCiAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgICAgc2Vzc2lvbi1ncm91cHM9Iltbc2Vzc2lvbkdyb3Vwc11dIgogICAgICAgIHNlbGVjdGVkLXNlc3Npb24tZ3JvdXA9Int7X3NlbGVjdGVkR3JvdXB9fSIKICAgICAgICBjbG9zZXN0LXNlc3Npb24tZ3JvdXA9Int7X2Nsb3Nlc3RHcm91cH19IgogICAgICAgIG9wdGlvbnM9IltbX29wdGlvbnNdXSIKICAgICAgPgogICAgICA8L3RmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC1wbG90PgogICAgICA8dGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLXZhbHVlcwogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgaWQ9InZhbHVlcyIKICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1tjb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWFdXSIKICAgICAgICBzZXNzaW9uLWdyb3VwPSJbW19jbG9zZXN0T3JTZWxlY3RlZCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Nsb3Nlc3RHcm91cCwgX3NlbGVjdGVkR3JvdXApXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtdmFsdWVzPgogICAgICA8IS0tIFNob3dzIHNlc3Npb24gZ3JvdXAgZGV0YWlscyBmb3IgdGhlIGNsaWNrZWQgbWFya2VyLiAtLT4KICAgICAgPHRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzCiAgICAgICAgc2xvdD0iY29udGVudCIKICAgICAgICBjbGFzcz0ic2VjdGlvbiIKICAgICAgICBpZD0iZGV0YWlscyIKICAgICAgICBiYWNrZW5kPSJbW2JhY2tlbmRdXSIKICAgICAgICBleHBlcmltZW50LW5hbWU9IltbZXhwZXJpbWVudE5hbWVdXSIKICAgICAgICBzZXNzaW9uLWdyb3VwPSJbW19zZWxlY3RlZEdyb3VwXV0iCiAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtZGV0YWlscz4KICAgIDwvaHBhcmFtcy1zcGxpdC1sYXlvdXQ+CiAgICA8c3R5bGU+CiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CiAgICAgICNjb250cm9scyB7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWF4LWhlaWdodDogZml0LWNvbnRlbnQ7CiAgICAgIH0KICAgICAgI3Bsb3QgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBmbGV4LWJhc2lzOiBhdXRvOwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG1heC1oZWlnaHQ6IGZpdC1jb250ZW50OwogICAgICB9CiAgICAgICN2YWx1ZXMgewogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmbGV4LWJhc2lzOiBhdXRvOwogICAgICAgIGhlaWdodDogMTE1cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDsKICAgICAgfQogICAgICAjZGV0YWlscyB7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgICAgIGZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWF4LWhlaWdodDogZml0LWNvbnRlbnQ7CiAgICAgIH0KICAgICAgdmFhZGluLXNwbGl0LWxheW91dCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVEt0LnByb3RvdHlwZSwiYmFja2VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxUS3QucHJvdG90eXBlLCJleHBlcmltZW50TmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxUS3QucHJvdG90eXBlLCJjb25maWd1cmF0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxUS3QucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApLFRLdD10KFtpKCJ0Zi1ocGFyYW1zLXNjYXR0ZXItcGxvdC1tYXRyaXgtdmlldyIpXSxUS3QpO2xldCBDS3Q9Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fc2VsZWN0ZWRUYWI9MH19O0NLdC50ZW1wbGF0ZT1fZWAKICAgIDxwYXBlci1oZWFkZXItcGFuZWw+CiAgICAgIDxwYXBlci10b29sYmFyIHNsb3Q9ImhlYWRlciIgY2xhc3M9InRhYi1iYXIiPgogICAgICAgIDxwYXBlci10YWJzIHNlbGVjdGVkPSJ7e19zZWxlY3RlZFRhYn19IiBzbG90PSJ0b3AiPgogICAgICAgICAgPCEtLSB2aWV3LWlkIGNhbiBiZSB1c2VkIGJ5IGludGVncmF0aW9uIHRlc3RzIHRvIGxvY2F0ZSBhIHRhYi4KICAgICAgICAgICAgICAgSXQgc2hvdWxkIGJlIHRoZSBuYW1lIG9mIHRoZSByb290IGVsZW1lbnQgaW1wbGVtZW50aW5nIHRoZSB2aWV3CiAgICAgICAgICAgICAgIHdpdGhvdXQgdGhlICd0Zi1ocGFyYW1zLScgcHJlZml4LiAtLT4KICAgICAgICAgIDxwYXBlci10YWIgdmlldy1pZD0idGFibGUtdmlldyI+IFRBQkxFIFZJRVcgPC9wYXBlci10YWI+CiAgICAgICAgICA8cGFwZXItdGFiIHZpZXctaWQ9InBhcmFsbGVsLWNvb3Jkcy12aWV3Ij4KICAgICAgICAgICAgUEFSQUxMRUwgQ09PUkRJTkFURVMgVklFVwogICAgICAgICAgPC9wYXBlci10YWI+CiAgICAgICAgICA8cGFwZXItdGFiIHZpZXctaWQ9InNjYXR0ZXItcGxvdC1tYXRyaXgtdmlldyI+CiAgICAgICAgICAgIFNDQVRURVIgUExPVCBNQVRSSVggVklFVwogICAgICAgICAgPC9wYXBlci10YWI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWxwLWFuZC1mZWVkYmFjayI+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tidWdSZXBvcnRVcmxdXSI+CiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWYkPSJbW2J1Z1JlcG9ydFVybF1dIgogICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiCiAgICAgICAgICAgICAgICByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICAgICAgICBpZD0iYnVnLXJlcG9ydCIKICAgICAgICAgICAgICAgICAgcmFpc2VkCiAgICAgICAgICAgICAgICAgIHRpdGxlPSJTZW5kIGEgYnVnIHJlcG9ydCBvciBmZWF0dXJlIHJlcXVlc3QiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIEJ1ZyBSZXBvcnQgLyBGZWF0dXJlIFJlcXVlc3QKICAgICAgICAgICAgICAgIDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2hlbHBVcmxdXSI+CiAgICAgICAgICAgICAgPGEgaHJlZiQ9IltbaGVscFVybF1dIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj4KICAgICAgICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICAgICAgICBpY29uPSJoZWxwLW91dGxpbmUiCiAgICAgICAgICAgICAgICAgIHRpdGxlPSJWaWV3IGRvY3VtZW50YXRpb24iCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvcGFwZXItdGFicz4KICAgICAgPC9wYXBlci10b29sYmFyPgogICAgICA8aXJvbi1wYWdlcyBzZWxlY3RlZD0iW1tfc2VsZWN0ZWRUYWJdXSIgY2xhc3M9ImZpdCB0YWItdmlldyI+CiAgICAgICAgPGRpdiBpZD0iMCIgY2xhc3M9InRhYiI+CiAgICAgICAgICA8dGYtaHBhcmFtcy10YWJsZS12aWV3CiAgICAgICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgICAgICBleHBlcmltZW50LW5hbWU9IltbZXhwZXJpbWVudE5hbWVdXSIKICAgICAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICAgICAgZW5hYmxlLXNob3ctbWV0cmljcwogICAgICAgICAgPgogICAgICAgICAgPC90Zi1ocGFyYW1zLXRhYmxlLXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0iMSIgY2xhc3M9InRhYiI+CiAgICAgICAgICA8dGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtdmlldwogICAgICAgICAgICBiYWNrZW5kPSJbW2JhY2tlbmRdXSIKICAgICAgICAgICAgZXhwZXJpbWVudC1uYW1lPSJbW2V4cGVyaW1lbnROYW1lXV0iCiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249IltbY29uZmlndXJhdGlvbl1dIgogICAgICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tzZXNzaW9uR3JvdXBzXV0iCiAgICAgICAgICA+CiAgICAgICAgICA8L3RmLWhwYXJhbXMtcGFyYWxsZWwtY29vcmRzLXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0iMiIgY2xhc3M9InRhYiI+CiAgICAgICAgICA8dGYtaHBhcmFtcy1zY2F0dGVyLXBsb3QtbWF0cml4LXZpZXcKICAgICAgICAgICAgYmFja2VuZD0iW1tiYWNrZW5kXV0iCiAgICAgICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgICAgICBjb25maWd1cmF0aW9uPSJbW2NvbmZpZ3VyYXRpb25dXSIKICAgICAgICAgICAgc2Vzc2lvbi1ncm91cHM9Iltbc2Vzc2lvbkdyb3Vwc11dIgogICAgICAgICAgPgogICAgICAgICAgPC90Zi1ocGFyYW1zLXNjYXR0ZXItcGxvdC1tYXRyaXgtdmlldz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9pcm9uLXBhZ2VzPgogICAgPC9wYXBlci1oZWFkZXItcGFuZWw+CgogICAgPHN0eWxlPgogICAgICAudGFiLXZpZXcgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgICAudGFiLWJhciB7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKAogICAgICAgICAgLS10Yi10b29sYmFyLWJhY2tncm91bmQtY29sb3IsCiAgICAgICAgICB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKQogICAgICAgICk7CiAgICAgIH0KICAgICAgLnRhYiB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIHBhcGVyLXRhYnMgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgLS1wYXBlci10YWJzLXNlbGVjdGlvbi1iYXItY29sb3I6IHdoaXRlOwogICAgICAgIC0tcGFwZXItdGFicy1jb250ZW50OiB7CiAgICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgICAgICB9CiAgICAgIH0KICAgICAgdGYtaHBhcmFtcy10YWJsZS12aWV3IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLmhlbHAtYW5kLWZlZWRiYWNrIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgLyogRW5zdXJlIHRoYXQgaWNvbnMgc3RheSBhbGlnbmVkICovCiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQogICAgICAjYnVnLXJlcG9ydCB7CiAgICAgICAgYm9yZGVyOiBzb2xpZCBibGFjazsKICAgICAgICBiYWNrZ3JvdW5kOiByZWQ7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkczsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbWF4LXdpZHRoOiAxNTBweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICB9CiAgICAgIC5oZWxwLWFuZC1mZWVkYmFjayBhIHsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQ0t0LnByb3RvdHlwZSwiYmFja2VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxDS3QucHJvdG90eXBlLCJoZWxwVXJsIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLENLdC5wcm90b3R5cGUsImJ1Z1JlcG9ydFVybCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxDS3QucHJvdG90eXBlLCJleHBlcmltZW50TmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxDS3QucHJvdG90eXBlLCJjb25maWd1cmF0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxDS3QucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLENLdC5wcm90b3R5cGUsIl9zZWxlY3RlZFRhYiIsdm9pZCAwKSxDS3Q9dChbaSgidGYtaHBhcmFtcy1zZXNzaW9ucy1wYW5lIildLENLdCk7Y2xhc3MgQUt0e2NvbnN0cnVjdG9yKHQsZSxuPSEwKXt0aGlzLl9hcGlVcmw9dCx0aGlzLl9yZXF1ZXN0TWFuYWdlcj1lLHRoaXMuX3VzZUh0dHBHZXQ9bn1nZXRFeHBlcmltZW50KHQpe3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgiZXhwZXJpbWVudCIsdCl9Z2V0RG93bmxvYWRVcmwodCxlLG4pe3JldHVybiB0aGlzLl9hcGlVcmwrIi9kb3dubG9hZF9kYXRhPyIrbmV3IFVSTFNlYXJjaFBhcmFtcyh7Zm9ybWF0OnQsY29sdW1uc1Zpc2liaWxpdHk6SlNPTi5zdHJpbmdpZnkobikscmVxdWVzdDpKU09OLnN0cmluZ2lmeShlKX0pfWxpc3RTZXNzaW9uR3JvdXBzKHQpe3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgic2Vzc2lvbl9ncm91cHMiLHQpfWxpc3RNZXRyaWNFdmFscyh0KXtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoIm1ldHJpY19ldmFscyIsdCl9X3NlbmRSZXF1ZXN0KHQsZSl7aWYodGhpcy5fdXNlSHR0cEdldCl7Y29uc3Qgbj1lbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZSkpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHRoaXMuX2FwaVVybCsiLyIrdCsiP3JlcXVlc3Q9IituKX1jb25zdCBuPW5ldyBocjtyZXR1cm4gbi53aXRoQ3JlZGVudGlhbHM9ITAsbi5tZXRob2RUeXBlPXVyLlBPU1Qsbi5jb250ZW50VHlwZT0idGV4dC9wbGFpbiIsbi5ib2R5PUpTT04uc3RyaW5naWZ5KGUpLHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3RXaXRoT3B0aW9ucyh0aGlzLl9hcGlVcmwrIi8iK3Qsbil9fWxldCBrS3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe3JlbG9hZCgpe3RoaXMuJFsicXVlcnktcGFuZSJdLnJlbG9hZCgpfX07a0t0LnRlbXBsYXRlPV9lYAogICAgPGhwYXJhbXMtc3BsaXQtbGF5b3V0PgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIGNsYXNzPSJzaWRlYmFyIj4KICAgICAgICA8dGYtaHBhcmFtcy1xdWVyeS1wYW5lCiAgICAgICAgICBpZD0icXVlcnktcGFuZSIKICAgICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgICAgZXhwZXJpbWVudC1uYW1lPSJbW2V4cGVyaW1lbnROYW1lXV0iCiAgICAgICAgICBjb25maWd1cmF0aW9uPSJ7e19jb25maWd1cmF0aW9ufX0iCiAgICAgICAgICBzZXNzaW9uLWdyb3Vwcz0ie3tfc2Vzc2lvbkdyb3Vwc319IgogICAgICAgICAgZGF0YS1sb2FkZWQtd2l0aC1ub24tZW1wdHktaHBhcmFtcz0ie3tfZGF0YUxvYWRlZFdpdGhOb25FbXB0eUhwYXJhbXN9fSIKICAgICAgICAgIGRhdGEtbG9hZGVkLXdpdGgtZW1wdHktaHBhcmFtcz0ie3tfZGF0YUxvYWRlZFdpdGhFbXB0eUhwYXJhbXN9fSIKICAgICAgICA+CiAgICAgICAgPC90Zi1ocGFyYW1zLXF1ZXJ5LXBhbmU+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIGNsYXNzPSJjZW50ZXIiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YUxvYWRlZFdpdGhFbXB0eUhwYXJhbXNdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+Tm8gaHBhcmFtcyBkYXRhIHdhcyBmb3VuZC48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPllvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgaHBhcmFtcyBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICBFdmVudCBmaWxlcyBhcmUgc3RpbGwgYmVpbmcgbG9hZGVkICh0cnkgcmVsb2FkaW5nIHRoaXMgcGFnZSkuCiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YUxvYWRlZFdpdGhOb25FbXB0eUhwYXJhbXNdXSI+CiAgICAgICAgICA8dGYtaHBhcmFtcy1zZXNzaW9ucy1wYW5lCiAgICAgICAgICAgIGlkPSJzZXNzaW9ucy1wYW5lIgogICAgICAgICAgICBiYWNrZW5kPSJbW2JhY2tlbmRdXSIKICAgICAgICAgICAgaGVscC11cmw9IltbaGVscFVybF1dIgogICAgICAgICAgICBidWctcmVwb3J0LXVybD0iW1tidWdSZXBvcnRVcmxdXSIKICAgICAgICAgICAgZXhwZXJpbWVudC1uYW1lPSJbW2V4cGVyaW1lbnROYW1lXV0iCiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249IltbX2NvbmZpZ3VyYXRpb25dXSIKICAgICAgICAgICAgc2Vzc2lvbi1ncm91cHM9IltbX3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICAgID4KICAgICAgICAgIDwvdGYtaHBhcmFtcy1zZXNzaW9ucy1wYW5lPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC9ocGFyYW1zLXNwbGl0LWxheW91dD4KICAgIDxzdHlsZT4KICAgICAgaHBhcmFtcy1zcGxpdC1sYXlvdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuc2lkZWJhciB7CiAgICAgICAgd2lkdGg6IDIwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG1pbi13aWR0aDogMTAlOwogICAgICB9CgogICAgICAuY2VudGVyIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CgogICAgICBhIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItbGluayk7CiAgICAgIH0KCiAgICAgIGE6dmlzaXRlZCB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLWxpbmstdmlzaXRlZCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixBS3QpXSxrS3QucHJvdG90eXBlLCJiYWNrZW5kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGtLdC5wcm90b3R5cGUsImV4cGVyaW1lbnROYW1lIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGtLdC5wcm90b3R5cGUsImhlbHBVcmwiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sa0t0LnByb3RvdHlwZSwiYnVnUmVwb3J0VXJsIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGtLdC5wcm90b3R5cGUsIl9jb25maWd1cmF0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxrS3QucHJvdG90eXBlLCJfc2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGtLdC5wcm90b3R5cGUsIl9kYXRhTG9hZGVkV2l0aE5vbkVtcHR5SHBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGtLdC5wcm90b3R5cGUsIl9kYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtcyIsdm9pZCAwKSxrS3Q9dChbaSgidGYtaHBhcmFtcy1tYWluIildLGtLdCk7Y29uc3QgTEt0PSJ0cnVlIj09PW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KCJ0ZW5zb3Jib2FyZENvbGFiIik7bGV0IFBLdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2JhY2tlbmQ9bmV3IEFLdChfcigpLnBsdWdpblJvdXRlKCJocGFyYW1zIiwiIiksbmV3IGRyLExLdCl9cmVsb2FkKCl7dGhpcy4kWyJocGFyYW1zLW1haW4iXS5yZWxvYWQoKX19O1BLdC50ZW1wbGF0ZT1fZWAKICAgIDwhLS0gVGVuc29yQm9hcmQgZG9lcyBub3Qgc3BlY2lmeSBhbiBleHBlcmltZW50TmFtZS4gQ3VycmVudGx5IGl0IG9ubHkKICAgICAgICAgc3VwcG9ydHMgb25lIGV4cGVyaW1lbnQgcGVyIGludm9jYXRpb24uIC0tPgogICAgPHRmLWhwYXJhbXMtbWFpbgogICAgICBpZD0iaHBhcmFtcy1tYWluIgogICAgICBiYWNrZW5kPSJbW19iYWNrZW5kXV0iCiAgICAgIGV4cGVyaW1lbnQtbmFtZT0iIgogICAgPgogICAgPC90Zi1ocGFyYW1zLW1haW4+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQS3QucHJvdG90eXBlLCJfYmFja2VuZCIsdm9pZCAwKSxQS3Q9dChbaSgidGYtaHBhcmFtcy1kYXNoYm9hcmQiKV0sUEt0KTtsZXQgTkt0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5hY3R1YWxTaXplPSExLHRoaXMuYnJpZ2h0bmVzc0FkanVzdG1lbnQ9LjUsdGhpcy5jb250cmFzdFBlcmNlbnRhZ2U9MCx0aGlzLl9tZXRhZGF0YUNhbmNlbGxlcj1uZXcgWFIsdGhpcy5faW1hZ2VDYW5jZWxsZXI9bmV3IFhSLHRoaXMuX3N0ZXBzPVtdLHRoaXMuX2lzSW1hZ2VMb2FkaW5nPSExfWdldCBfcnVuQ29sb3IoKXtyZXR1cm4gR1IodGhpcy5ydW4pfWdldCBfaGFzQXRMZWFzdE9uZVN0ZXAoKXt2YXIgdD10aGlzLl9zdGVwcztyZXR1cm4hIXQmJnQubGVuZ3RoPjB9Z2V0IF9oYXNNdWx0aXBsZVN0ZXBzKCl7dmFyIHQ9dGhpcy5fc3RlcHM7cmV0dXJuISF0JiZ0Lmxlbmd0aD4xfWdldCBfY3VycmVudFN0ZXAoKXtyZXR1cm4gdGhpcy5fc3RlcHNbdGhpcy5fc3RlcEluZGV4XXx8bnVsbH1nZXQgX3N0ZXBWYWx1ZSgpe3ZhciB0PXRoaXMuX2N1cnJlbnRTdGVwO3JldHVybiB0P3Quc3RlcDowfWdldCBfY3VycmVudFdhbGxUaW1lKCl7dmFyIHQ9dGhpcy5fY3VycmVudFN0ZXA7cmV0dXJuIHQ/S1IodC53YWxsX3RpbWUpOiIifWdldCBfbWF4U3RlcEluZGV4KCl7cmV0dXJuIHRoaXMuX3N0ZXBzLmxlbmd0aC0xfWdldCBfc2FtcGxlVGV4dCgpe3JldHVybmAke3RoaXMuc2FtcGxlKzF9YH1nZXQgX2hhc011bHRpcGxlU2FtcGxlcygpe3JldHVybiB0aGlzLm9mU2FtcGxlcz4xfV9nZXRBcmlhRXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5hY3R1YWxTaXplPyJ0cnVlIjoiZmFsc2UifWF0dGFjaGVkKCl7dGhpcy5yZWxvYWQoKX1yZWxvYWQoKXtpZighdGhpcy5pc0F0dGFjaGVkKXJldHVybjt0aGlzLl9tZXRhZGF0YUNhbmNlbGxlci5jYW5jZWxBbGwoKTtjb25zdCB0PWlPKF9yKCkucGx1Z2luUm91dGUoImltYWdlcyIsIi9pbWFnZXMiKSx7dGFnOnRoaXMudGFnLHJ1bjp0aGlzLnJ1bixzYW1wbGU6dGhpcy5zYW1wbGV9KSxlPXRoaXMuX21ldGFkYXRhQ2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT57aWYodC5jYW5jZWxsZWQpcmV0dXJuO2NvbnN0IGU9dC52YWx1ZS5tYXAodGhpcy5fY3JlYXRlU3RlcERhdHVtLmJpbmQodGhpcykpO3RoaXMuc2V0KCJfc3RlcHMiLGUpLHRoaXMuc2V0KCJfc3RlcEluZGV4IixlLmxlbmd0aC0xKX0pKTt0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbihlKX1fY3JlYXRlU3RlcERhdHVtKHQpe2xldCBlPV9yKCkucGx1Z2luUm91dGUoImltYWdlcyIsIi9pbmRpdmlkdWFsSW1hZ2UiKTtyZXR1cm4gZT1pTyhlLHt0czp0LndhbGxfdGltZX0pLGUrPSImIit0LnF1ZXJ5LHt3YWxsX3RpbWU6bmV3IERhdGUoMWUzKnQud2FsbF90aW1lKSxzdGVwOnQuc3RlcCx1cmw6ZX19X3VwZGF0ZUltYWdlVXJsKCl7dmFyIHQ9dGhpcy5fY3VycmVudFN0ZXAsZT10aGlzLmJyaWdodG5lc3NBZGp1c3RtZW50LG49dGhpcy5jb250cmFzdFBlcmNlbnRhZ2U7aWYoIXQpcmV0dXJuO2NvbnN0IGk9bmV3IEltYWdlO3RoaXMuX2ltYWdlQ2FuY2VsbGVyLmNhbmNlbEFsbCgpLGkub25sb2FkPWkub25lcnJvcj10aGlzLl9pbWFnZUNhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e2lmKHQuY2FuY2VsbGVkKXJldHVybjtjb25zdCBlPXRoaXMuJCQoIiNtYWluLWltYWdlLWNvbnRhaW5lciIpO2UudGV4dENvbnRlbnQ9IiIsWWkoZSkuYXBwZW5kQ2hpbGQoaSksdGhpcy5zZXQoIl9pc0ltYWdlTG9hZGluZyIsITEpfSkpLmJpbmQodGhpcyksaS5zdHlsZS5maWx0ZXI9YGNvbnRyYXN0KCR7bn0lKSBgLGkuc3R5bGUuZmlsdGVyKz1gYnJpZ2h0bmVzcygke2V9KWAsdGhpcy5zZXQoIl9pc0ltYWdlTG9hZGluZyIsITApLGkuc3JjPXQudXJsfV9oYW5kbGVUYXAodCl7dGhpcy5zZXQoImFjdHVhbFNpemUiLCF0aGlzLmFjdHVhbFNpemUpfV90b0xvY2FsZVN0cmluZyh0KXtyZXR1cm4gdC50b0xvY2FsZVN0cmluZygpfX07Tkt0LnRlbXBsYXRlPV9lYAogICAgPHRmLWNhcmQtaGVhZGluZwogICAgICB0YWc9IltbdGFnXV0iCiAgICAgIHJ1bj0iW1tydW5dXSIKICAgICAgZGlzcGxheS1uYW1lPSJbW3RhZ01ldGFkYXRhLmRpc3BsYXlOYW1lXV0iCiAgICAgIGRlc2NyaXB0aW9uPSJbW3RhZ01ldGFkYXRhLmRlc2NyaXB0aW9uXV0iCiAgICAgIGNvbG9yPSJbW19ydW5Db2xvcl1dIgogICAgPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2hhc011bHRpcGxlU2FtcGxlc11dIj4KICAgICAgICA8ZGl2PnNhbXBsZTogW1tfc2FtcGxlVGV4dF1dIG9mIFtbb2ZTYW1wbGVzXV08L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNBdExlYXN0T25lU3RlcF1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIj4KICAgICAgICAgICAgc3RlcAogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQiCiAgICAgICAgICAgICAgPltbX3RvTG9jYWxlU3RyaW5nKF9zdGVwVmFsdWUpXV08L3NwYW4KICAgICAgICAgICAgPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIGhlYWRpbmctcmlnaHQgZGF0ZXRpbWUiPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2N1cnJlbnRXYWxsVGltZV1dIj4KICAgICAgICAgICAgICBbW19jdXJyZW50V2FsbFRpbWVdXQogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbCByaWdodCI+CiAgICAgICAgICAgIDxwYXBlci1zcGlubmVyLWxpdGUgYWN0aXZlIGhpZGRlbiQ9IltbIV9pc0ltYWdlTG9hZGluZ11dIj4KICAgICAgICAgICAgPC9wYXBlci1zcGlubmVyLWxpdGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZVN0ZXBzXV0iPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICAgIGlkPSJzdGVwcyIKICAgICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e19zdGVwSW5kZXh9fSIKICAgICAgICAgICAgbWF4PSJbW19tYXhTdGVwSW5kZXhdXSIKICAgICAgICAgICAgbWF4LW1hcmtlcnM9IltbX21heFN0ZXBJbmRleF1dIgogICAgICAgICAgICBzbmFwcwogICAgICAgICAgICBzdGVwPSIxIgogICAgICAgICAgICB2YWx1ZT0ie3tfc3RlcEluZGV4fX0iCiAgICAgICAgICA+PC9wYXBlci1zbGlkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3RmLWNhcmQtaGVhZGluZz4KCiAgICA8IS0tIFNlbWFudGljYWxseSBhIGJ1dHRvbiBidXQgPGltZz4gaW5zaWRlIGEgPGJ1dHRvbj4gZGlzYWxsb3dzIHVzZXIgdG8gZG8KICAgIGFuIGludGVyZXN0aW5nIG9wZXJhdGlvbiBsaWtlICJDb3B5IEltYWdlIiBpbiBub24tQ2hyb21pdW0gYnJvd3NlcnMuIC0tPgogICAgPGEKICAgICAgaWQ9Im1haW4taW1hZ2UtY29udGFpbmVyIgogICAgICByb2xlPSJidXR0b24iCiAgICAgIGFyaWEtbGFiZWw9IlRvZ2dsZSBhY3R1YWwgc2l6ZSIKICAgICAgYXJpYS1leHBhbmRlZCQ9IltbX2dldEFyaWFFeHBhbmRlZChhY3R1YWxTaXplKV1dIgogICAgICBvbi10YXA9Il9oYW5kbGVUYXAiCiAgICA+PC9hPgoKICAgIDxzdHlsZSBpbmNsdWRlPSJ0Zi1jYXJkLWhlYWRpbmctc3R5bGUiPgogICAgICAvKiogTWFrZSBidXR0b24gYSBkaXYuICovCiAgICAgIGJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLyoqIEZpcmVmb3g6IEdldCByaWQgb2YgZG90dGVkIGxpbmUgaW5zaWRlIGJ1dHRvbi4gKi8KICAgICAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLyoqIEZpcmVmb3g6IFNpbXVsYXRlIENocm9tZSdzIG91dGVyIGdsb3cgb24gYnV0dG9uIHdoZW4gZm9jdXNlZC4gKi8KICAgICAgYnV0dG9uOi1tb3otZm9jdXNyaW5nIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMXB4IDJweCBIaWdobGlnaHQ7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMzUwcHg7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDAgMTVweCA0MHB4IDA7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLyoqIFdoZW4gYWN0dWFsIHNpemUgc2hvd24gaXMgb24sIHVzZSB0aGUgYWN0dWFsIGltYWdlIHdpZHRoLiAqLwogICAgICA6aG9zdChbYWN0dWFsLXNpemVdKSB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIHdpZHRoOiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbYWN0dWFsLXNpemVdKSAjbWFpbi1pbWFnZS1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgd2lkdGg6IGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFthY3R1YWwtc2l6ZV0pICNtYWluLWltYWdlLWNvbnRhaW5lciBpbWcgewogICAgICAgIHdpZHRoOiBhdXRvOwogICAgICB9CgogICAgICBwYXBlci1zcGlubmVyLWxpdGUgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207CiAgICAgICAgLS1wYXBlci1zcGlubmVyLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgfQoKICAgICAgI3N0ZXBzIHsKICAgICAgICBoZWlnaHQ6IDE1cHg7CiAgICAgICAgbWFyZ2luOiAwIDAgMCAtMTVweDsKICAgICAgICAvKgogICAgICAgICAqIDMxIGNvbWVzIGZyb20gYWRkaW5nIGEgcGFkZGluZyBvZiAxNXB4IGZyb20gYm90aCBzaWRlcyBvZiB0aGUKICAgICAgICAgKiBwYXBlci1zbGlkZXIsIHN1YnRyYWN0aW5nIDFweCBzbyB0aGF0IHRoZSBzbGlkZXIgd2lkdGggYWxpZ25zCiAgICAgICAgICogd2l0aCB0aGUgaW1hZ2UgKHRoZSBsYXN0IHNsaWRlciBtYXJrZXIgdGFrZXMgdXAgMXB4KSwgYW5kCiAgICAgICAgICogYWRkaW5nIDJweCB0byBhY2NvdW50IGZvciBhIGJvcmRlciBvZiAxcHggb24gYm90aCBzaWRlcyBvZgogICAgICAgICAqIHRoZSBpbWFnZS4gMzAgLSAxICsgMi4KICAgICAgICAgKi8KICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMzFweCk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItYWN0aXZlLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWJvcmRlci1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItbWFya2Vycy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1waW4tc3RhcnQtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICB9CgogICAgICAjbWFpbi1pbWFnZS1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IDEwMjRweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgI21haW4taW1hZ2UtY29udGFpbmVyIGltZyB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlczsKICAgICAgICBpbWFnZS1yZW5kZXJpbmc6IHBpeGVsYXRlZDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIH0KCiAgICAgIHBhcGVyLWljb24tYnV0dG9uIHsKICAgICAgICBjb2xvcjogIzIxOTZmMzsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KICAgICAgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CiAgICAgIFtoaWRkZW5dIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTkt0LnByb3RvdHlwZSwicnVuIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLE5LdC5wcm90b3R5cGUsInRhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxOS3QucHJvdG90eXBlLCJzYW1wbGUiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sTkt0LnByb3RvdHlwZSwib2ZTYW1wbGVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE5LdC5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE5LdC5wcm90b3R5cGUsImFjdHVhbFNpemUiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sTkt0LnByb3RvdHlwZSwiYnJpZ2h0bmVzc0FkanVzdG1lbnQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sTkt0LnByb3RvdHlwZSwiY29udHJhc3RQZXJjZW50YWdlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0sTkt0LnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTkt0LnByb3RvdHlwZSwiX21ldGFkYXRhQ2FuY2VsbGVyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE5LdC5wcm90b3R5cGUsIl9pbWFnZUNhbmNlbGxlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLE5LdC5wcm90b3R5cGUsIl9zdGVwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sTkt0LnByb3RvdHlwZSwiX3N0ZXBJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE5LdC5wcm90b3R5cGUsIl9pc0ltYWdlTG9hZGluZyIsdm9pZCAwKSx0KFtzKCJydW4iKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxOS3QucHJvdG90eXBlLCJfcnVuQ29sb3IiLG51bGwpLHQoW3MoIl9zdGVwcyIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxOS3QucHJvdG90eXBlLCJfaGFzQXRMZWFzdE9uZVN0ZXAiLG51bGwpLHQoW3MoIl9zdGVwcyIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxOS3QucHJvdG90eXBlLCJfaGFzTXVsdGlwbGVTdGVwcyIsbnVsbCksdChbcygiX3N0ZXBzIiwiX3N0ZXBJbmRleCIpLGUoImRlc2lnbjp0eXBlIixPYmplY3QpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLE5LdC5wcm90b3R5cGUsIl9jdXJyZW50U3RlcCIsbnVsbCksdChbcygiX2N1cnJlbnRTdGVwIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sTkt0LnByb3RvdHlwZSwiX3N0ZXBWYWx1ZSIsbnVsbCksdChbcygiX2N1cnJlbnRTdGVwIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sTkt0LnByb3RvdHlwZSwiX2N1cnJlbnRXYWxsVGltZSIsbnVsbCksdChbcygiX3N0ZXBzIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sTkt0LnByb3RvdHlwZSwiX21heFN0ZXBJbmRleCIsbnVsbCksdChbcygic2FtcGxlIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sTkt0LnByb3RvdHlwZSwiX3NhbXBsZVRleHQiLG51bGwpLHQoW3MoIm9mU2FtcGxlcyIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxOS3QucHJvdG90eXBlLCJfaGFzTXVsdGlwbGVTYW1wbGVzIixudWxsKSx0KFthKCJydW4iLCJ0YWciKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLE5LdC5wcm90b3R5cGUsInJlbG9hZCIsbnVsbCksdChbYSgiX2N1cnJlbnRTdGVwIiwiYnJpZ2h0bmVzc0FkanVzdG1lbnQiLCJjb250cmFzdFBlcmNlbnRhZ2UiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLE5LdC5wcm90b3R5cGUsIl91cGRhdGVJbWFnZVVybCIsbnVsbCksTkt0PXQoW2koInRmLWltYWdlLWxvYWRlciIpXSxOS3QpO2xldCBJS3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5fZGVmYXVsdEJyaWdodG5lc3NBZGp1c3RtZW50PTEsdGhpcy5fZGVmYXVsdENvbnRyYXN0UGVyY2VudGFnZT0xMDAsdGhpcy5fYnJpZ2h0bmVzc0FkanVzdG1lbnQ9MSx0aGlzLl9jb250cmFzdFBlcmNlbnRhZ2U9MTAwLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcn1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe3RoaXMuX2ZldGNoVGFncygpLnRoZW4oKCgpPT57dGhpcy5fcmVsb2FkSW1hZ2VzKCl9KSl9X2ZldGNoVGFncygpe2NvbnN0IHQ9X3IoKS5wbHVnaW5Sb3V0ZSgiaW1hZ2VzIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoU2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47Y29uc3QgZT1hcihTZS5leHBvcnRzLm1hcFZhbHVlcyh0LCh0PT5PYmplY3Qua2V5cyh0KSkpKTt0aGlzLnNldCgiX2RhdGFOb3RGb3VuZCIsMD09PWUubGVuZ3RoKSx0aGlzLnNldCgiX3J1blRvVGFnSW5mbyIsdCksdGhpcy5hc3luYygoKCk9Pnt0aGlzLnNldCgiX2NhdGVnb3JpZXNEb21SZWFkeSIsITApfSkpfSkpfV9yZWxvYWRJbWFnZXMoKXt0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtaW1hZ2UtbG9hZGVyIikuZm9yRWFjaCgodD0+e3QucmVsb2FkKCl9KSl9X3Nob3VsZE9wZW4odCl7cmV0dXJuIHQ8PTJ9X3Jlc2V0QnJpZ2h0bmVzcygpe3RoaXMuX2JyaWdodG5lc3NBZGp1c3RtZW50PXRoaXMuX2RlZmF1bHRCcmlnaHRuZXNzQWRqdXN0bWVudH1fcmVzZXRDb250cmFzdCgpe3RoaXMuX2NvbnRyYXN0UGVyY2VudGFnZT10aGlzLl9kZWZhdWx0Q29udHJhc3RQZXJjZW50YWdlfWdldCBfYnJpZ2h0bmVzc0lzRGVmYXVsdCgpe3JldHVybiB0aGlzLl9icmlnaHRuZXNzQWRqdXN0bWVudD09PXRoaXMuX2RlZmF1bHRCcmlnaHRuZXNzQWRqdXN0bWVudH1nZXQgX2NvbnRyYXN0SXNEZWZhdWx0KCl7cmV0dXJuIHRoaXMuX2NvbnRyYXN0UGVyY2VudGFnZT09PXRoaXMuX2RlZmF1bHRDb250cmFzdFBlcmNlbnRhZ2V9Z2V0IF9jYXRlZ29yaWVzKCl7dmFyIHQ9dGhpcy5fcnVuVG9UYWdJbmZvLGU9dGhpcy5fc2VsZWN0ZWRSdW5zLG49dGhpcy5fdGFnRmlsdGVyO2Z1bmN0aW9uIGkoZSl7Y29uc3Qgbj10W2UucnVuXVtlLnRhZ10uc2FtcGxlcztyZXR1cm4gU2UuZXhwb3J0cy5yYW5nZShuKS5tYXAoKHQ9Pk9iamVjdC5hc3NpZ24oe30sZSx7c2FtcGxlOnQsb2ZTYW1wbGVzOm59KSkpfXJldHVybiBNcihTZS5leHBvcnRzLm1hcFZhbHVlcyh0LCh0PT5PYmplY3Qua2V5cyh0KSkpLGUsbikubWFwKCh0PT5PYmplY3QuYXNzaWduKHt9LHQse2l0ZW1zOltdLmNvbmNhdC5hcHBseShbXSx0Lml0ZW1zLm1hcChpKSl9KSkpfV90YWdNZXRhZGF0YSh0LGUsbil7cmV0dXJuIHRbZV1bbl19fTt2YXIgUkt0LE9LdCx6S3Q7SUt0LnRlbXBsYXRlPV9lYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94IGNoZWNrZWQ9Int7X2FjdHVhbFNpemV9fSIKICAgICAgICAgICAgICAgID5TaG93IGFjdHVhbCBpbWFnZSBzaXplPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxoMyBjbGFzcz0idG9vbHRpcC1jb250YWluZXIiPkJyaWdodG5lc3MgYWRqdXN0bWVudDwvaDM+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlc2V0dGFibGUtc2xpZGVyLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgICAgICAgbWluPSIwIgogICAgICAgICAgICAgICAgbWF4PSIyIgogICAgICAgICAgICAgICAgc25hcHMKICAgICAgICAgICAgICAgIHBpbgogICAgICAgICAgICAgICAgc3RlcD0iMC4wMSIKICAgICAgICAgICAgICAgIHZhbHVlPSJ7e19icmlnaHRuZXNzQWRqdXN0bWVudH19IgogICAgICAgICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e19icmlnaHRuZXNzQWRqdXN0bWVudH19IgogICAgICAgICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0ieC1idXR0b24iCiAgICAgICAgICAgICAgICBvbi10YXA9Il9yZXNldEJyaWdodG5lc3MiCiAgICAgICAgICAgICAgICBkaXNhYmxlZD0iW1tfYnJpZ2h0bmVzc0lzRGVmYXVsdF1dIgogICAgICAgICAgICAgICAgPlJlc2V0PC9wYXBlci1idXR0b24KICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8aDMgY2xhc3M9InRvb2x0aXAtY29udGFpbmVyIj5Db250cmFzdCBhZGp1c3RtZW50PC9oMz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVzZXR0YWJsZS1zbGlkZXItY29udGFpbmVyIj4KICAgICAgICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICBtYXg9IjUwMCIKICAgICAgICAgICAgICAgIHNuYXBzCiAgICAgICAgICAgICAgICBwaW4KICAgICAgICAgICAgICAgIHN0ZXA9IjEiCiAgICAgICAgICAgICAgICB2YWx1ZT0ie3tfY29udHJhc3RQZXJjZW50YWdlfX0iCiAgICAgICAgICAgICAgICBpbW1lZGlhdGUtdmFsdWU9Int7X2NvbnRyYXN0UGVyY2VudGFnZX19IgogICAgICAgICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0ieC1idXR0b24iCiAgICAgICAgICAgICAgICBvbi10YXA9Il9yZXNldENvbnRyYXN0IgogICAgICAgICAgICAgICAgZGlzYWJsZWQ9IltbX2NvbnRyYXN0SXNEZWZhdWx0XV0iCiAgICAgICAgICAgICAgICA+UmVzZXQ8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24gcnVucy1zZWxlY3RvciI+CiAgICAgICAgICA8dGYtcnVucy1zZWxlY3RvcgogICAgICAgICAgICBpZD0icnVucy1zZWxlY3RvciIKICAgICAgICAgICAgc2VsZWN0ZWQtcnVucz0ie3tfc2VsZWN0ZWRSdW5zfX0iCiAgICAgICAgICA+PC90Zi1ydW5zLXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIiBzbG90PSJjZW50ZXIiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm8tZGF0YS13YXJuaW5nIj4KICAgICAgICAgICAgPGgzPk5vIGltYWdlIGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+WW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBpbWFnZSBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtaW1hZ2UtbG9hZGVyCiAgICAgICAgICAgICAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgICAgICAgICAgICAgICAgcnVuPSJbW2l0ZW0ucnVuXV0iCiAgICAgICAgICAgICAgICAgIHRhZz0iW1tpdGVtLnRhZ11dIgogICAgICAgICAgICAgICAgICBzYW1wbGU9IltbaXRlbS5zYW1wbGVdXSIKICAgICAgICAgICAgICAgICAgb2Ytc2FtcGxlcz0iW1tpdGVtLm9mU2FtcGxlc11dIgogICAgICAgICAgICAgICAgICB0YWctbWV0YWRhdGE9IltbX3RhZ01ldGFkYXRhKF9ydW5Ub1RhZ0luZm8sIGl0ZW0ucnVuLCBpdGVtLnRhZyldXSIKICAgICAgICAgICAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW19yZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgICAgICAgICAgICBhY3R1YWwtc2l6ZT0iW1tfYWN0dWFsU2l6ZV1dIgogICAgICAgICAgICAgICAgICBicmlnaHRuZXNzLWFkanVzdG1lbnQ9IltbX2JyaWdodG5lc3NBZGp1c3RtZW50XV0iCiAgICAgICAgICAgICAgICAgIGNvbnRyYXN0LXBlcmNlbnRhZ2U9IltbX2NvbnRyYXN0UGVyY2VudGFnZV1dIgogICAgICAgICAgICAgICAgPjwvdGYtaW1hZ2UtbG9hZGVyPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgLnJlc2V0dGFibGUtc2xpZGVyLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQogICAgICAucmVzZXR0YWJsZS1zbGlkZXItY29udGFpbmVyIHBhcGVyLXNsaWRlciB7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICB9CiAgICAgIC5yZXNldHRhYmxlLXNsaWRlci1jb250YWluZXIgcGFwZXItYnV0dG9uIHsKICAgICAgICBmbGV4LWdyb3c6IDA7CiAgICAgIH0KICAgICAgLnJlc2V0dGFibGUtc2xpZGVyLWNvbnRhaW5lciBwYXBlci1idXR0b25bZGlzYWJsZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKICAgICAgfQogICAgICAueC1idXR0b24gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi11aS1kYXJrLWFjY2VudCk7CiAgICAgIH0KICAgICAgLm5vLWRhdGEtd2FybmluZyB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KICAgICAgcGFwZXItc2xpZGVyIHsKICAgICAgICAtLXBhcGVyLXNsaWRlci1hY3RpdmUtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2ItY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtYm9yZGVyLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1tYXJrZXJzLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1waW4tY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLXBpbi1zdGFydC1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLElLdC5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLElLdC5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSUt0LnByb3RvdHlwZSwiX3J1blRvVGFnSW5mbyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLElLdC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxJS3QucHJvdG90eXBlLCJfYWN0dWFsU2l6ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxJS3QucHJvdG90eXBlLCJfZGVmYXVsdEJyaWdodG5lc3NBZGp1c3RtZW50Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLElLdC5wcm90b3R5cGUsIl9kZWZhdWx0Q29udHJhc3RQZXJjZW50YWdlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLElLdC5wcm90b3R5cGUsIl9icmlnaHRuZXNzQWRqdXN0bWVudCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxJS3QucHJvdG90eXBlLCJfY29udHJhc3RQZXJjZW50YWdlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLElLdC5wcm90b3R5cGUsIl90YWdGaWx0ZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxJS3QucHJvdG90eXBlLCJfY2F0ZWdvcmllc0RvbVJlYWR5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLElLdC5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtzKCJfYnJpZ2h0bmVzc0FkanVzdG1lbnQiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSUt0LnByb3RvdHlwZSwiX2JyaWdodG5lc3NJc0RlZmF1bHQiLG51bGwpLHQoW3MoIl9jb250cmFzdFBlcmNlbnRhZ2UiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSUt0LnByb3RvdHlwZSwiX2NvbnRyYXN0SXNEZWZhdWx0IixudWxsKSx0KFtzKCJfcnVuVG9UYWdJbmZvIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiLCJfY2F0ZWdvcmllc0RvbVJlYWR5IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxJS3QucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCksSUt0PXQoW2koInRmLWltYWdlLWRhc2hib2FyZCIpXSxJS3QpLChmdW5jdGlvbih0KXt0W3QuQ0FOQ0VMTEVEPTFdPSJDQU5DRUxMRUQifSkoUkt0fHwoUkt0PXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5WRVJURVg9MV09IlZFUlRFWCIsdFt0LkZBQ0U9Ml09IkZBQ0UiLHRbdC5DT0xPUj0zXT0iQ09MT1IifSkoT0t0fHwoT0t0PXt9KSksKGZ1bmN0aW9uKHQpe3QuVkVSVEVYPSJmbG9hdDMyIix0LkZBQ0U9ImludDMyIix0LkNPTE9SPSJ1aW50OCJ9KSh6S3R8fCh6S3Q9e30pKTtjbGFzcyBES3R7Y29uc3RydWN0b3IodCl7dGhpcy5fY2FuY2VsbGVyPW5ldyBYUix0aGlzLl9yZXF1ZXN0TWFuYWdlcj10fXJlbG9hZCh0LGUsbil7cmV0dXJuIHRoaXMuX2NhbmNlbGxlci5jYW5jZWxBbGwoKSx0aGlzLl9mZXRjaE1ldGFkYXRhKHQsZSxuKX1fZmV0Y2hEYXRhQnlTdGVwKHQsZSxuLGkscixvKXtjb25zdCBhPV9yKCkucGx1Z2luUm91dGUoIm1lc2giLCIvZGF0YSIsbmV3IFVSTFNlYXJjaFBhcmFtcyh7dGFnOmUscnVuOnQsY29udGVudF90eXBlOm4sc2FtcGxlOlN0cmluZyhpKSxzdGVwOlN0cmluZyhyKX0pKSxzPWZ1bmN0aW9uKHQpe2xldCBlPVtdO2ZvcihsZXQgbj0wO248dC5sZW5ndGgvMztuKyspe2xldCBpPVtdO2ZvcihsZXQgZT0wO2U8MztlKyspaS5wdXNoKHRbMypuK2VdKTtlLnB1c2goaSl9cmV0dXJuIGV9LGw9dGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT57aWYodC5jYW5jZWxsZWQpcmV0dXJuIFByb21pc2UucmVqZWN0KHtjb2RlOlJLdC5DQU5DRUxMRUQsbWVzc2FnZToiUmVzcG9uc2Ugd2FzIGludmFsaWRhdGVkLiJ9KTtsZXQgZT10LnZhbHVlO3N3aXRjaChuKXtjYXNlIlZFUlRFWCI6by52ZXJ0aWNlcz1zKG5ldyBGbG9hdDMyQXJyYXkoZSkpO2JyZWFrO2Nhc2UiRkFDRSI6by5mYWNlcz1zKG5ldyBJbnQzMkFycmF5KGUpKTticmVhaztjYXNlIkNPTE9SIjpvLmNvbG9ycz1zKG5ldyBVaW50OEFycmF5KGUpKX1yZXR1cm4gb30pKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIuZmV0Y2goYSx7bWV0aG9kOiJHRVQiLGhlYWRlcnM6e3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLGNvbnRlbnRUeXBlOnpLdFtuXX19KS50aGVuKCh0PT50LmFycmF5QnVmZmVyKCkpKS50aGVuKGwpfWZldGNoRGF0YSh0LGUsbixpKXtsZXQgcj1bXSxvPW5ldyBNYXA7cmV0dXJuIE9iamVjdC5rZXlzKE9LdCkuZm9yRWFjaCgoYT0+e3QuY29tcG9uZW50cyYxPDxPS3RbYV0mJnIucHVzaCh0aGlzLl9mZXRjaERhdGFCeVN0ZXAoZSxuLGEsaSx0LnN0ZXAsbykpfSkpLFByb21pc2UuYWxsKHIpfV9mZXRjaE1ldGFkYXRhKHQsZSxuKXt0aGlzLl9jYW5jZWxsZXIuY2FuY2VsQWxsKCk7Y29uc3QgaT1fcigpLnBsdWdpblJvdXRlKCJtZXNoIiwiL21lc2hlcyIsbmV3IFVSTFNlYXJjaFBhcmFtcyh7dGFnOmUscnVuOnQsc2FtcGxlOm59KSkscj10aGlzLl9jYW5jZWxsZXIuY2FuY2VsbGFibGUoKHQ9PnQuY2FuY2VsbGVkP1Byb21pc2UucmVqZWN0KHtjb2RlOlJLdC5DQU5DRUxMRUQsbWVzc2FnZToiUmVzcG9uc2Ugd2FzIGludmFsaWRhdGVkLiJ9KTp0LnZhbHVlKSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLmZldGNoKGkpLnRoZW4oKHQ9PnQuanNvbigpKSkudGhlbihyKS50aGVuKHRoaXMuX3Byb2Nlc3NNZXRhZGF0YS5iaW5kKHRoaXMpKX1fcHJvY2Vzc01ldGFkYXRhKHQpe2lmKCF0KXJldHVybjtjb25zdCBlPW5ldyBNYXA7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2xldCBpPXRbbl07ZS5oYXMoaS5zdGVwKXx8ZS5zZXQoaS5zdGVwLFtdKSxlLmdldChpLnN0ZXApLnB1c2goaSl9bGV0IG49W107cmV0dXJuIGUuZm9yRWFjaCgodD0+e2xldCBlPXRoaXMuX2NyZWF0ZVN0ZXBEYXR1bSh0WzBdKTtuLnB1c2goZSl9KSksbn1fY3JlYXRlU3RlcERhdHVtKHQpe3JldHVybnt3YWxsX3RpbWU6bmV3IERhdGUoMWUzKnQud2FsbF90aW1lKSxzdGVwOnQuc3RlcCxjb25maWc6dC5jb25maWcsY29udGVudF90eXBlOnQuY29udGVudF90eXBlLGNvbXBvbmVudHM6dC5jb21wb25lbnRzfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAyMDEwLTIwMjEgVGhyZWUuanMgQXV0aG9ycwogICAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAogICAgICovY29uc3QgQkt0PSIxMzEiLEhLdD17TEVGVDowLE1JRERMRToxLFJJR0hUOjIsUk9UQVRFOjAsRE9MTFk6MSxQQU46Mn0sRkt0PXtST1RBVEU6MCxQQU46MSxET0xMWV9QQU46MixET0xMWV9ST1RBVEU6M30sVkt0PTEwMCxVS3Q9MzAwLGpLdD0zMDEsR0t0PTMwMixXS3Q9MzAzLHFLdD0zMDQsWUt0PTMwNixYS3Q9MzA3LCRLdD0xZTMsS0t0PTEwMDEsWkt0PTEwMDIsSkt0PTEwMDMsUUt0PTEwMDQsdFp0PTEwMDUsZVp0PTEwMDYsblp0PTEwMDcsaVp0PTEwMDgsclp0PTEwMDksb1p0PTEwMTIsYVp0PTEwMTQsc1p0PTEwMTUsbFp0PTEwMTYsY1p0PTEwMjAsdVp0PTEwMjIsaFp0PTEwMjMsZFp0PTEwMjYscFp0PTEwMjcsZlp0PTMzNzc2LG1adD0zMzc3NyxnWnQ9MzM3NzgsX1p0PTMzNzc5LHladD0zNTg0MCx2WnQ9MzU4NDEsYlp0PTM1ODQyLHhadD0zNTg0Myx3WnQ9Mzc0OTIsU1p0PTM3NDk2LE1adD0yMzAwLEVadD0yMzAxLFRadD0yMzAyLENadD0yNDAwLEFadD0yNDAxLGtadD0yNDAyLExadD0yNTAwLFBadD0yNTAxLE5adD0zZTMsSVp0PTMwMDEsUlp0PTMwMDcsT1p0PTMwMDIselp0PTMwMDQsRFp0PTMwMDUsQlp0PTMwMDYsSFp0PTc2ODAsRlp0PTM1MDQ0LFZadD0zNTA0OCxVWnQ9IjMwMCBlcyI7Y2xhc3Mgalp0e2FkZEV2ZW50TGlzdGVuZXIodCxlKXt2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMmJih0aGlzLl9saXN0ZW5lcnM9e30pO2NvbnN0IG49dGhpcy5fbGlzdGVuZXJzO3ZvaWQgMD09PW5bdF0mJihuW3RdPVtdKSwtMT09PW5bdF0uaW5kZXhPZihlKSYmblt0XS5wdXNoKGUpfWhhc0V2ZW50TGlzdGVuZXIodCxlKXtpZih2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMpcmV0dXJuITE7Y29uc3Qgbj10aGlzLl9saXN0ZW5lcnM7cmV0dXJuIHZvaWQgMCE9PW5bdF0mJi0xIT09blt0XS5pbmRleE9mKGUpfXJlbW92ZUV2ZW50TGlzdGVuZXIodCxlKXtpZih2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2NvbnN0IG49dGhpcy5fbGlzdGVuZXJzW3RdO2lmKHZvaWQgMCE9PW4pe2NvbnN0IHQ9bi5pbmRleE9mKGUpOy0xIT09dCYmbi5zcGxpY2UodCwxKX19ZGlzcGF0Y2hFdmVudCh0KXtpZih2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2NvbnN0IGU9dGhpcy5fbGlzdGVuZXJzW3QudHlwZV07aWYodm9pZCAwIT09ZSl7dC50YXJnZXQ9dGhpcztjb25zdCBuPWUuc2xpY2UoMCk7Zm9yKGxldCBlPTAsaT1uLmxlbmd0aDtlPGk7ZSsrKW5bZV0uY2FsbCh0aGlzLHQpO3QudGFyZ2V0PW51bGx9fX1jb25zdCBHWnQ9W107Zm9yKGxldCB0PTA7dDwyNTY7dCsrKUdadFt0XT0odDwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpO2xldCBXWnQ9MTIzNDU2Nztjb25zdCBxWnQ9TWF0aC5QSS8xODAsWVp0PTE4MC9NYXRoLlBJO2Z1bmN0aW9uIFhadCgpe2NvbnN0IHQ9NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDAsZT00Mjk0OTY3Mjk1Kk1hdGgucmFuZG9tKCl8MCxuPTQyOTQ5NjcyOTUqTWF0aC5yYW5kb20oKXwwLGk9NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDA7cmV0dXJuKEdadFsyNTUmdF0rR1p0W3Q+PjgmMjU1XStHWnRbdD4+MTYmMjU1XStHWnRbdD4+MjQmMjU1XSsiLSIrR1p0WzI1NSZlXStHWnRbZT4+OCYyNTVdKyItIitHWnRbZT4+MTYmMTV8NjRdK0dadFtlPj4yNCYyNTVdKyItIitHWnRbNjMmbnwxMjhdK0dadFtuPj44JjI1NV0rIi0iK0dadFtuPj4xNiYyNTVdK0dadFtuPj4yNCYyNTVdK0dadFsyNTUmaV0rR1p0W2k+PjgmMjU1XStHWnRbaT4+MTYmMjU1XStHWnRbaT4+MjQmMjU1XSkudG9VcHBlckNhc2UoKX1mdW5jdGlvbiAkWnQodCxlLG4pe3JldHVybiBNYXRoLm1heChlLE1hdGgubWluKG4sdCkpfWZ1bmN0aW9uIEtadCh0LGUpe3JldHVybih0JWUrZSklZX1mdW5jdGlvbiBaWnQodCxlLG4pe3JldHVybigxLW4pKnQrbiplfWZ1bmN0aW9uIEpadCh0KXtyZXR1cm4gMD09KHQmdC0xKSYmMCE9PXR9ZnVuY3Rpb24gUVp0KHQpe3JldHVybiBNYXRoLnBvdygyLE1hdGguY2VpbChNYXRoLmxvZyh0KS9NYXRoLkxOMikpfWZ1bmN0aW9uIHRKdCh0KXtyZXR1cm4gTWF0aC5wb3coMixNYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4yKSl9dmFyIGVKdD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxERUcyUkFEOnFadCxSQUQyREVHOlladCxnZW5lcmF0ZVVVSUQ6WFp0LGNsYW1wOiRadCxldWNsaWRlYW5Nb2R1bG86S1p0LG1hcExpbmVhcjpmdW5jdGlvbiBuSnQodCxlLG4saSxyKXtyZXR1cm4gaSsodC1lKSooci1pKS8obi1lKX0saW52ZXJzZUxlcnA6ZnVuY3Rpb24gaUp0KHQsZSxuKXtyZXR1cm4gdCE9PWU/KG4tdCkvKGUtdCk6MH0sbGVycDpaWnQsZGFtcDpmdW5jdGlvbiBySnQodCxlLG4saSl7cmV0dXJuIFpadCh0LGUsMS1NYXRoLmV4cCgtbippKSl9LHBpbmdwb25nOmZ1bmN0aW9uIG9KdCh0LGU9MSl7cmV0dXJuIGUtTWF0aC5hYnMoS1p0KHQsMiplKS1lKX0sc21vb3Roc3RlcDpmdW5jdGlvbiBhSnQodCxlLG4pe3JldHVybiB0PD1lPzA6dD49bj8xOih0PSh0LWUpLyhuLWUpKSp0KigzLTIqdCl9LHNtb290aGVyc3RlcDpmdW5jdGlvbiBzSnQodCxlLG4pe3JldHVybiB0PD1lPzA6dD49bj8xOih0PSh0LWUpLyhuLWUpKSp0KnQqKHQqKDYqdC0xNSkrMTApfSxyYW5kSW50OmZ1bmN0aW9uIGxKdCh0LGUpe3JldHVybiB0K01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KzEpKX0scmFuZEZsb2F0OmZ1bmN0aW9uIGNKdCh0LGUpe3JldHVybiB0K01hdGgucmFuZG9tKCkqKGUtdCl9LHJhbmRGbG9hdFNwcmVhZDpmdW5jdGlvbiB1SnQodCl7cmV0dXJuIHQqKC41LU1hdGgucmFuZG9tKCkpfSxzZWVkZWRSYW5kb206ZnVuY3Rpb24gaEp0KHQpe3JldHVybiB2b2lkIDAhPT10JiYoV1p0PXQlMjE0NzQ4MzY0NyksV1p0PTE2ODA3KldadCUyMTQ3NDgzNjQ3LChXWnQtMSkvMjE0NzQ4MzY0Nn0sZGVnVG9SYWQ6ZnVuY3Rpb24gZEp0KHQpe3JldHVybiB0KnFadH0scmFkVG9EZWc6ZnVuY3Rpb24gcEp0KHQpe3JldHVybiB0KlladH0saXNQb3dlck9mVHdvOkpadCxjZWlsUG93ZXJPZlR3bzpRWnQsZmxvb3JQb3dlck9mVHdvOnRKdCxzZXRRdWF0ZXJuaW9uRnJvbVByb3BlckV1bGVyOmZ1bmN0aW9uIGZKdCh0LGUsbixpLHIpe2NvbnN0IG89TWF0aC5jb3MsYT1NYXRoLnNpbixzPW8obi8yKSxsPWEobi8yKSxjPW8oKGUraSkvMiksdT1hKChlK2kpLzIpLGg9bygoZS1pKS8yKSxkPWEoKGUtaSkvMikscD1vKChpLWUpLzIpLGY9YSgoaS1lKS8yKTtzd2l0Y2gocil7Y2FzZSJYWVgiOnQuc2V0KHMqdSxsKmgsbCpkLHMqYyk7YnJlYWs7Y2FzZSJZWlkiOnQuc2V0KGwqZCxzKnUsbCpoLHMqYyk7YnJlYWs7Y2FzZSJaWFoiOnQuc2V0KGwqaCxsKmQscyp1LHMqYyk7YnJlYWs7Y2FzZSJYWlgiOnQuc2V0KHMqdSxsKmYsbCpwLHMqYyk7YnJlYWs7Y2FzZSJZWFkiOnQuc2V0KGwqcCxzKnUsbCpmLHMqYyk7YnJlYWs7Y2FzZSJaWVoiOnQuc2V0KGwqZixsKnAscyp1LHMqYyk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oIlRIUkVFLk1hdGhVdGlsczogLnNldFF1YXRlcm5pb25Gcm9tUHJvcGVyRXVsZXIoKSBlbmNvdW50ZXJlZCBhbiB1bmtub3duIG9yZGVyOiAiK3IpfX19KTtjbGFzcyBtSnR7Y29uc3RydWN0b3IodD0wLGU9MCl7dGhpcy54PXQsdGhpcy55PWV9Z2V0IHdpZHRoKCl7cmV0dXJuIHRoaXMueH1zZXQgd2lkdGgodCl7dGhpcy54PXR9Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLnl9c2V0IGhlaWdodCh0KXt0aGlzLnk9dH1zZXQodCxlKXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PWUsdGhpc31zZXRTY2FsYXIodCl7cmV0dXJuIHRoaXMueD10LHRoaXMueT10LHRoaXN9c2V0WCh0KXtyZXR1cm4gdGhpcy54PXQsdGhpc31zZXRZKHQpe3JldHVybiB0aGlzLnk9dCx0aGlzfXNldENvbXBvbmVudCh0LGUpe3N3aXRjaCh0KXtjYXNlIDA6dGhpcy54PWU7YnJlYWs7Y2FzZSAxOnRoaXMueT1lO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9cmV0dXJuIHRoaXN9Z2V0Q29tcG9uZW50KHQpe3N3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHRoaXMueDtjYXNlIDE6cmV0dXJuIHRoaXMueTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLngsdGhpcy55KX1jb3B5KHQpe3JldHVybiB0aGlzLng9dC54LHRoaXMueT10LnksdGhpc31hZGQodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAuYWRkKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuYWRkVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5hZGRWZWN0b3JzKHQsZSkpOih0aGlzLngrPXQueCx0aGlzLnkrPXQueSx0aGlzKX1hZGRTY2FsYXIodCl7cmV0dXJuIHRoaXMueCs9dCx0aGlzLnkrPXQsdGhpc31hZGRWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngrZS54LHRoaXMueT10LnkrZS55LHRoaXN9YWRkU2NhbGVkVmVjdG9yKHQsZSl7cmV0dXJuIHRoaXMueCs9dC54KmUsdGhpcy55Kz10LnkqZSx0aGlzfXN1Yih0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5zdWIoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5zdWJWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLnN1YlZlY3RvcnModCxlKSk6KHRoaXMueC09dC54LHRoaXMueS09dC55LHRoaXMpfXN1YlNjYWxhcih0KXtyZXR1cm4gdGhpcy54LT10LHRoaXMueS09dCx0aGlzfXN1YlZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueC1lLngsdGhpcy55PXQueS1lLnksdGhpc31tdWx0aXBseSh0KXtyZXR1cm4gdGhpcy54Kj10LngsdGhpcy55Kj10LnksdGhpc31tdWx0aXBseVNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kj10LHRoaXMueSo9dCx0aGlzfWRpdmlkZSh0KXtyZXR1cm4gdGhpcy54Lz10LngsdGhpcy55Lz10LnksdGhpc31kaXZpZGVTY2FsYXIodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlTY2FsYXIoMS90KX1hcHBseU1hdHJpeDModCl7Y29uc3QgZT10aGlzLngsbj10aGlzLnksaT10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9aVswXSplK2lbM10qbitpWzZdLHRoaXMueT1pWzFdKmUraVs0XSpuK2lbN10sdGhpc31taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpc31tYXgodCl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5tYXgodGhpcy55LHQueSksdGhpc31jbGFtcCh0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodC54LE1hdGgubWluKGUueCx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodC55LE1hdGgubWluKGUueSx0aGlzLnkpKSx0aGlzfWNsYW1wU2NhbGFyKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnkpKSx0aGlzfWNsYW1wTGVuZ3RoKHQsZSl7Y29uc3Qgbj10aGlzLmxlbmd0aCgpO3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcihufHwxKS5tdWx0aXBseVNjYWxhcihNYXRoLm1heCh0LE1hdGgubWluKGUsbikpKX1mbG9vcigpe3JldHVybiB0aGlzLng9TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT1NYXRoLmZsb29yKHRoaXMueSksdGhpc31jZWlsKCl7cmV0dXJuIHRoaXMueD1NYXRoLmNlaWwodGhpcy54KSx0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSksdGhpc31yb3VuZCgpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpc31yb3VuZFRvWmVybygpe3JldHVybiB0aGlzLng9dGhpcy54PDA/TWF0aC5jZWlsKHRoaXMueCk6TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT10aGlzLnk8MD9NYXRoLmNlaWwodGhpcy55KTpNYXRoLmZsb29yKHRoaXMueSksdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy54PS10aGlzLngsdGhpcy55PS10aGlzLnksdGhpc31kb3QodCl7cmV0dXJuIHRoaXMueCp0LngrdGhpcy55KnQueX1jcm9zcyh0KXtyZXR1cm4gdGhpcy54KnQueS10aGlzLnkqdC54fWxlbmd0aFNxKCl7cmV0dXJuIHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueX1sZW5ndGgoKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSl9bWFuaGF0dGFuTGVuZ3RoKCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueCkrTWF0aC5hYnModGhpcy55KX1ub3JtYWxpemUoKXtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIodGhpcy5sZW5ndGgoKXx8MSl9YW5nbGUoKXtyZXR1cm4gTWF0aC5hdGFuMigtdGhpcy55LC10aGlzLngpK01hdGguUEl9ZGlzdGFuY2VUbyh0KXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuZGlzdGFuY2VUb1NxdWFyZWQodCkpfWRpc3RhbmNlVG9TcXVhcmVkKHQpe2NvbnN0IGU9dGhpcy54LXQueCxuPXRoaXMueS10Lnk7cmV0dXJuIGUqZStuKm59bWFuaGF0dGFuRGlzdGFuY2VUbyh0KXtyZXR1cm4gTWF0aC5hYnModGhpcy54LXQueCkrTWF0aC5hYnModGhpcy55LXQueSl9c2V0TGVuZ3RoKHQpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHQpfWxlcnAodCxlKXtyZXR1cm4gdGhpcy54Kz0odC54LXRoaXMueCkqZSx0aGlzLnkrPSh0LnktdGhpcy55KSplLHRoaXN9bGVycFZlY3RvcnModCxlLG4pe3JldHVybiB0aGlzLng9dC54KyhlLngtdC54KSpuLHRoaXMueT10LnkrKGUueS10LnkpKm4sdGhpc31lcXVhbHModCl7cmV0dXJuIHQueD09PXRoaXMueCYmdC55PT09dGhpcy55fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMueD10W2VdLHRoaXMueT10W2UrMV0sdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLngsdFtlKzFdPXRoaXMueSx0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLG4pe3JldHVybiB2b2lkIDAhPT1uJiZjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IG9mZnNldCBoYXMgYmVlbiByZW1vdmVkIGZyb20gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLng9dC5nZXRYKGUpLHRoaXMueT10LmdldFkoZSksdGhpc31yb3RhdGVBcm91bmQodCxlKXtjb25zdCBuPU1hdGguY29zKGUpLGk9TWF0aC5zaW4oZSkscj10aGlzLngtdC54LG89dGhpcy55LXQueTtyZXR1cm4gdGhpcy54PXIqbi1vKmkrdC54LHRoaXMueT1yKmkrbypuK3QueSx0aGlzfXJhbmRvbSgpe3JldHVybiB0aGlzLng9TWF0aC5yYW5kb20oKSx0aGlzLnk9TWF0aC5yYW5kb20oKSx0aGlzfX1tSnQucHJvdG90eXBlLmlzVmVjdG9yMj0hMDtjbGFzcyBnSnR7Y29uc3RydWN0b3IoKXt0aGlzLmVsZW1lbnRzPVsxLDAsMCwwLDEsMCwwLDAsMV0sYXJndW1lbnRzLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXgzOiB0aGUgY29uc3RydWN0b3Igbm8gbG9uZ2VyIHJlYWRzIGFyZ3VtZW50cy4gdXNlIC5zZXQoKSBpbnN0ZWFkLiIpfXNldCh0LGUsbixpLHIsbyxhLHMsbCl7Y29uc3QgYz10aGlzLmVsZW1lbnRzO3JldHVybiBjWzBdPXQsY1sxXT1pLGNbMl09YSxjWzNdPWUsY1s0XT1yLGNbNV09cyxjWzZdPW4sY1s3XT1vLGNbOF09bCx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDEsMCwwLDAsMSwwLDAsMCwxKSx0aGlzfWNvcHkodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztyZXR1cm4gZVswXT1uWzBdLGVbMV09blsxXSxlWzJdPW5bMl0sZVszXT1uWzNdLGVbNF09bls0XSxlWzVdPW5bNV0sZVs2XT1uWzZdLGVbN109bls3XSxlWzhdPW5bOF0sdGhpc31leHRyYWN0QmFzaXModCxlLG4pe3JldHVybiB0LnNldEZyb21NYXRyaXgzQ29sdW1uKHRoaXMsMCksZS5zZXRGcm9tTWF0cml4M0NvbHVtbih0aGlzLDEpLG4uc2V0RnJvbU1hdHJpeDNDb2x1bW4odGhpcywyKSx0aGlzfXNldEZyb21NYXRyaXg0KHQpe2NvbnN0IGU9dC5lbGVtZW50cztyZXR1cm4gdGhpcy5zZXQoZVswXSxlWzRdLGVbOF0sZVsxXSxlWzVdLGVbOV0sZVsyXSxlWzZdLGVbMTBdKSx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLm11bHRpcGx5TWF0cmljZXModGhpcyx0KX1wcmVtdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5tdWx0aXBseU1hdHJpY2VzKHQsdGhpcyl9bXVsdGlwbHlNYXRyaWNlcyh0LGUpe2NvbnN0IG49dC5lbGVtZW50cyxpPWUuZWxlbWVudHMscj10aGlzLmVsZW1lbnRzLG89blswXSxhPW5bM10scz1uWzZdLGw9blsxXSxjPW5bNF0sdT1uWzddLGg9blsyXSxkPW5bNV0scD1uWzhdLGY9aVswXSxtPWlbM10sZz1pWzZdLF89aVsxXSx5PWlbNF0sdj1pWzddLGI9aVsyXSx4PWlbNV0sdz1pWzhdO3JldHVybiByWzBdPW8qZithKl8rcypiLHJbM109byptK2EqeStzKngscls2XT1vKmcrYSp2K3MqdyxyWzFdPWwqZitjKl8rdSpiLHJbNF09bCptK2MqeSt1Kngscls3XT1sKmcrYyp2K3UqdyxyWzJdPWgqZitkKl8rcCpiLHJbNV09aCptK2QqeStwKngscls4XT1oKmcrZCp2K3Aqdyx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cztyZXR1cm4gZVswXSo9dCxlWzNdKj10LGVbNl0qPXQsZVsxXSo9dCxlWzRdKj10LGVbN10qPXQsZVsyXSo9dCxlWzVdKj10LGVbOF0qPXQsdGhpc31kZXRlcm1pbmFudCgpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cyxlPXRbMF0sbj10WzFdLGk9dFsyXSxyPXRbM10sbz10WzRdLGE9dFs1XSxzPXRbNl0sbD10WzddLGM9dFs4XTtyZXR1cm4gZSpvKmMtZSphKmwtbipyKmMrbiphKnMraSpyKmwtaSpvKnN9aW52ZXJ0KCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxuPXRbMV0saT10WzJdLHI9dFszXSxvPXRbNF0sYT10WzVdLHM9dFs2XSxsPXRbN10sYz10WzhdLHU9YypvLWEqbCxoPWEqcy1jKnIsZD1sKnItbypzLHA9ZSp1K24qaCtpKmQ7aWYoMD09PXApcmV0dXJuIHRoaXMuc2V0KDAsMCwwLDAsMCwwLDAsMCwwKTtjb25zdCBmPTEvcDtyZXR1cm4gdFswXT11KmYsdFsxXT0oaSpsLWMqbikqZix0WzJdPShhKm4taSpvKSpmLHRbM109aCpmLHRbNF09KGMqZS1pKnMpKmYsdFs1XT0oaSpyLWEqZSkqZix0WzZdPWQqZix0WzddPShuKnMtbCplKSpmLHRbOF09KG8qZS1uKnIpKmYsdGhpc310cmFuc3Bvc2UoKXtsZXQgdDtjb25zdCBlPXRoaXMuZWxlbWVudHM7cmV0dXJuIHQ9ZVsxXSxlWzFdPWVbM10sZVszXT10LHQ9ZVsyXSxlWzJdPWVbNl0sZVs2XT10LHQ9ZVs1XSxlWzVdPWVbN10sZVs3XT10LHRoaXN9Z2V0Tm9ybWFsTWF0cml4KHQpe3JldHVybiB0aGlzLnNldEZyb21NYXRyaXg0KHQpLmludmVydCgpLnRyYW5zcG9zZSgpfXRyYW5zcG9zZUludG9BcnJheSh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbM10sdFsyXT1lWzZdLHRbM109ZVsxXSx0WzRdPWVbNF0sdFs1XT1lWzddLHRbNl09ZVsyXSx0WzddPWVbNV0sdFs4XT1lWzhdLHRoaXN9c2V0VXZUcmFuc2Zvcm0odCxlLG4saSxyLG8sYSl7Y29uc3Qgcz1NYXRoLmNvcyhyKSxsPU1hdGguc2luKHIpO3JldHVybiB0aGlzLnNldChuKnMsbipsLC1uKihzKm8rbCphKStvK3QsLWkqbCxpKnMsLWkqKC1sKm8rcyphKSthK2UsMCwwLDEpLHRoaXN9c2NhbGUodCxlKXtjb25zdCBuPXRoaXMuZWxlbWVudHM7cmV0dXJuIG5bMF0qPXQsblszXSo9dCxuWzZdKj10LG5bMV0qPWUsbls0XSo9ZSxuWzddKj1lLHRoaXN9cm90YXRlKHQpe2NvbnN0IGU9TWF0aC5jb3ModCksbj1NYXRoLnNpbih0KSxpPXRoaXMuZWxlbWVudHMscj1pWzBdLG89aVszXSxhPWlbNl0scz1pWzFdLGw9aVs0XSxjPWlbN107cmV0dXJuIGlbMF09ZSpyK24qcyxpWzNdPWUqbytuKmwsaVs2XT1lKmErbipjLGlbMV09LW4qcitlKnMsaVs0XT0tbipvK2UqbCxpWzddPS1uKmErZSpjLHRoaXN9dHJhbnNsYXRlKHQsZSl7Y29uc3Qgbj10aGlzLmVsZW1lbnRzO3JldHVybiBuWzBdKz10Km5bMl0sblszXSs9dCpuWzVdLG5bNl0rPXQqbls4XSxuWzFdKz1lKm5bMl0sbls0XSs9ZSpuWzVdLG5bN10rPWUqbls4XSx0aGlzfWVxdWFscyh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzO2ZvcihsZXQgdD0wO3Q8OTt0KyspaWYoZVt0XSE9PW5bdF0pcmV0dXJuITE7cmV0dXJuITB9ZnJvbUFycmF5KHQsZT0wKXtmb3IobGV0IG49MDtuPDk7bisrKXRoaXMuZWxlbWVudHNbbl09dFtuK2VdO3JldHVybiB0aGlzfXRvQXJyYXkodD1bXSxlPTApe2NvbnN0IG49dGhpcy5lbGVtZW50cztyZXR1cm4gdFtlXT1uWzBdLHRbZSsxXT1uWzFdLHRbZSsyXT1uWzJdLHRbZSszXT1uWzNdLHRbZSs0XT1uWzRdLHRbZSs1XT1uWzVdLHRbZSs2XT1uWzZdLHRbZSs3XT1uWzddLHRbZSs4XT1uWzhdLHR9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmZyb21BcnJheSh0aGlzLmVsZW1lbnRzKX19bGV0IF9KdDtnSnQucHJvdG90eXBlLmlzTWF0cml4Mz0hMDtjbGFzcyB5SnR7c3RhdGljIGdldERhdGFVUkwodCl7aWYoL15kYXRhOi9pLnRlc3QodC5zcmMpKXJldHVybiB0LnNyYztpZigidW5kZWZpbmVkIj09dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50KXJldHVybiB0LnNyYztsZXQgZTtpZih0IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQpZT10O2Vsc2V7dm9pZCAwPT09X0p0JiYoX0p0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImNhbnZhcyIpKSxfSnQud2lkdGg9dC53aWR0aCxfSnQuaGVpZ2h0PXQuaGVpZ2h0O2NvbnN0IG49X0p0LmdldENvbnRleHQoIjJkIik7dCBpbnN0YW5jZW9mIEltYWdlRGF0YT9uLnB1dEltYWdlRGF0YSh0LDAsMCk6bi5kcmF3SW1hZ2UodCwwLDAsdC53aWR0aCx0LmhlaWdodCksZT1fSnR9cmV0dXJuIGUud2lkdGg+MjA0OHx8ZS5oZWlnaHQ+MjA0OD8oY29uc29sZS53YXJuKCJUSFJFRS5JbWFnZVV0aWxzLmdldERhdGFVUkw6IEltYWdlIGNvbnZlcnRlZCB0byBqcGcgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMiLHQpLGUudG9EYXRhVVJMKCJpbWFnZS9qcGVnIiwuNikpOmUudG9EYXRhVVJMKCJpbWFnZS9wbmciKX19bGV0IHZKdD0wO2NsYXNzIGJKdCBleHRlbmRzIGpadHtjb25zdHJ1Y3Rvcih0PWJKdC5ERUZBVUxUX0lNQUdFLGU9Ykp0LkRFRkFVTFRfTUFQUElORyxuPTEwMDEsaT0xMDAxLHI9MTAwNixvPTEwMDgsYT0xMDIzLHM9MTAwOSxsPTEsYz0zZTMpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6dkp0Kyt9KSx0aGlzLnV1aWQ9WFp0KCksdGhpcy5uYW1lPSIiLHRoaXMuaW1hZ2U9dCx0aGlzLm1pcG1hcHM9W10sdGhpcy5tYXBwaW5nPWUsdGhpcy53cmFwUz1uLHRoaXMud3JhcFQ9aSx0aGlzLm1hZ0ZpbHRlcj1yLHRoaXMubWluRmlsdGVyPW8sdGhpcy5hbmlzb3Ryb3B5PWwsdGhpcy5mb3JtYXQ9YSx0aGlzLmludGVybmFsRm9ybWF0PW51bGwsdGhpcy50eXBlPXMsdGhpcy5vZmZzZXQ9bmV3IG1KdCgwLDApLHRoaXMucmVwZWF0PW5ldyBtSnQoMSwxKSx0aGlzLmNlbnRlcj1uZXcgbUp0KDAsMCksdGhpcy5yb3RhdGlvbj0wLHRoaXMubWF0cml4QXV0b1VwZGF0ZT0hMCx0aGlzLm1hdHJpeD1uZXcgZ0p0LHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSEwLHRoaXMucHJlbXVsdGlwbHlBbHBoYT0hMSx0aGlzLmZsaXBZPSEwLHRoaXMudW5wYWNrQWxpZ25tZW50PTQsdGhpcy5lbmNvZGluZz1jLHRoaXMudmVyc2lvbj0wLHRoaXMub25VcGRhdGU9bnVsbCx0aGlzLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT0hMX11cGRhdGVNYXRyaXgoKXt0aGlzLm1hdHJpeC5zZXRVdlRyYW5zZm9ybSh0aGlzLm9mZnNldC54LHRoaXMub2Zmc2V0LnksdGhpcy5yZXBlYXQueCx0aGlzLnJlcGVhdC55LHRoaXMucm90YXRpb24sdGhpcy5jZW50ZXIueCx0aGlzLmNlbnRlci55KX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLm5hbWU9dC5uYW1lLHRoaXMuaW1hZ2U9dC5pbWFnZSx0aGlzLm1pcG1hcHM9dC5taXBtYXBzLnNsaWNlKDApLHRoaXMubWFwcGluZz10Lm1hcHBpbmcsdGhpcy53cmFwUz10LndyYXBTLHRoaXMud3JhcFQ9dC53cmFwVCx0aGlzLm1hZ0ZpbHRlcj10Lm1hZ0ZpbHRlcix0aGlzLm1pbkZpbHRlcj10Lm1pbkZpbHRlcix0aGlzLmFuaXNvdHJvcHk9dC5hbmlzb3Ryb3B5LHRoaXMuZm9ybWF0PXQuZm9ybWF0LHRoaXMuaW50ZXJuYWxGb3JtYXQ9dC5pbnRlcm5hbEZvcm1hdCx0aGlzLnR5cGU9dC50eXBlLHRoaXMub2Zmc2V0LmNvcHkodC5vZmZzZXQpLHRoaXMucmVwZWF0LmNvcHkodC5yZXBlYXQpLHRoaXMuY2VudGVyLmNvcHkodC5jZW50ZXIpLHRoaXMucm90YXRpb249dC5yb3RhdGlvbix0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4LmNvcHkodC5tYXRyaXgpLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPXQuZ2VuZXJhdGVNaXBtYXBzLHRoaXMucHJlbXVsdGlwbHlBbHBoYT10LnByZW11bHRpcGx5QWxwaGEsdGhpcy5mbGlwWT10LmZsaXBZLHRoaXMudW5wYWNrQWxpZ25tZW50PXQudW5wYWNrQWxpZ25tZW50LHRoaXMuZW5jb2Rpbmc9dC5lbmNvZGluZyx0aGlzfXRvSlNPTih0KXtjb25zdCBlPXZvaWQgMD09PXR8fCJzdHJpbmciPT10eXBlb2YgdDtpZighZSYmdm9pZCAwIT09dC50ZXh0dXJlc1t0aGlzLnV1aWRdKXJldHVybiB0LnRleHR1cmVzW3RoaXMudXVpZF07Y29uc3Qgbj17bWV0YWRhdGE6e3ZlcnNpb246NC41LHR5cGU6IlRleHR1cmUiLGdlbmVyYXRvcjoiVGV4dHVyZS50b0pTT04ifSx1dWlkOnRoaXMudXVpZCxuYW1lOnRoaXMubmFtZSxtYXBwaW5nOnRoaXMubWFwcGluZyxyZXBlYXQ6W3RoaXMucmVwZWF0LngsdGhpcy5yZXBlYXQueV0sb2Zmc2V0Olt0aGlzLm9mZnNldC54LHRoaXMub2Zmc2V0LnldLGNlbnRlcjpbdGhpcy5jZW50ZXIueCx0aGlzLmNlbnRlci55XSxyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHdyYXA6W3RoaXMud3JhcFMsdGhpcy53cmFwVF0sZm9ybWF0OnRoaXMuZm9ybWF0LHR5cGU6dGhpcy50eXBlLGVuY29kaW5nOnRoaXMuZW5jb2RpbmcsbWluRmlsdGVyOnRoaXMubWluRmlsdGVyLG1hZ0ZpbHRlcjp0aGlzLm1hZ0ZpbHRlcixhbmlzb3Ryb3B5OnRoaXMuYW5pc290cm9weSxmbGlwWTp0aGlzLmZsaXBZLHByZW11bHRpcGx5QWxwaGE6dGhpcy5wcmVtdWx0aXBseUFscGhhLHVucGFja0FsaWdubWVudDp0aGlzLnVucGFja0FsaWdubWVudH07aWYodm9pZCAwIT09dGhpcy5pbWFnZSl7Y29uc3QgaT10aGlzLmltYWdlO2lmKHZvaWQgMD09PWkudXVpZCYmKGkudXVpZD1YWnQoKSksIWUmJnZvaWQgMD09PXQuaW1hZ2VzW2kudXVpZF0pe2xldCBlO2lmKEFycmF5LmlzQXJyYXkoaSkpe2U9W107Zm9yKGxldCB0PTAsbj1pLmxlbmd0aDt0PG47dCsrKWUucHVzaCh4SnQoaVt0XS5pc0RhdGFUZXh0dXJlP2lbdF0uaW1hZ2U6aVt0XSkpfWVsc2UgZT14SnQoaSk7dC5pbWFnZXNbaS51dWlkXT17dXVpZDppLnV1aWQsdXJsOmV9fW4uaW1hZ2U9aS51dWlkfXJldHVybiBlfHwodC50ZXh0dXJlc1t0aGlzLnV1aWRdPW4pLG59ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX10cmFuc2Zvcm1Vdih0KXtpZih0aGlzLm1hcHBpbmchPT1VS3QpcmV0dXJuIHQ7aWYodC5hcHBseU1hdHJpeDModGhpcy5tYXRyaXgpLHQueDwwfHx0Lng+MSlzd2l0Y2godGhpcy53cmFwUyl7Y2FzZSAkS3Q6dC54PXQueC1NYXRoLmZsb29yKHQueCk7YnJlYWs7Y2FzZSBLS3Q6dC54PXQueDwwPzA6MTticmVhaztjYXNlIFpLdDp0Lng9MT09PU1hdGguYWJzKE1hdGguZmxvb3IodC54KSUyKT9NYXRoLmNlaWwodC54KS10Lng6dC54LU1hdGguZmxvb3IodC54KX1pZih0Lnk8MHx8dC55PjEpc3dpdGNoKHRoaXMud3JhcFQpe2Nhc2UgJEt0OnQueT10LnktTWF0aC5mbG9vcih0LnkpO2JyZWFrO2Nhc2UgS0t0OnQueT10Lnk8MD8wOjE7YnJlYWs7Y2FzZSBaS3Q6dC55PTE9PT1NYXRoLmFicyhNYXRoLmZsb29yKHQueSklMik/TWF0aC5jZWlsKHQueSktdC55OnQueS1NYXRoLmZsb29yKHQueSl9cmV0dXJuIHRoaXMuZmxpcFkmJih0Lnk9MS10LnkpLHR9c2V0IG5lZWRzVXBkYXRlKHQpeyEwPT09dCYmdGhpcy52ZXJzaW9uKyt9fWZ1bmN0aW9uIHhKdCh0KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxJbWFnZUVsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnR8fCJ1bmRlZmluZWQiIT10eXBlb2YgSW1hZ2VCaXRtYXAmJnQgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcD95SnQuZ2V0RGF0YVVSTCh0KTp0LmRhdGE/e2RhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodC5kYXRhKSx3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodCx0eXBlOnQuZGF0YS5jb25zdHJ1Y3Rvci5uYW1lfTooY29uc29sZS53YXJuKCJUSFJFRS5UZXh0dXJlOiBVbmFibGUgdG8gc2VyaWFsaXplIFRleHR1cmUuIikse30pfWJKdC5ERUZBVUxUX0lNQUdFPXZvaWQgMCxiSnQuREVGQVVMVF9NQVBQSU5HPVVLdCxiSnQucHJvdG90eXBlLmlzVGV4dHVyZT0hMDtjbGFzcyB3SnR7Y29uc3RydWN0b3IodD0wLGU9MCxuPTAsaT0xKXt0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9bix0aGlzLnc9aX1nZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy56fXNldCB3aWR0aCh0KXt0aGlzLno9dH1nZXQgaGVpZ2h0KCl7cmV0dXJuIHRoaXMud31zZXQgaGVpZ2h0KHQpe3RoaXMudz10fXNldCh0LGUsbixpKXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PWUsdGhpcy56PW4sdGhpcy53PWksdGhpc31zZXRTY2FsYXIodCl7cmV0dXJuIHRoaXMueD10LHRoaXMueT10LHRoaXMuej10LHRoaXMudz10LHRoaXN9c2V0WCh0KXtyZXR1cm4gdGhpcy54PXQsdGhpc31zZXRZKHQpe3JldHVybiB0aGlzLnk9dCx0aGlzfXNldFoodCl7cmV0dXJuIHRoaXMuej10LHRoaXN9c2V0Vyh0KXtyZXR1cm4gdGhpcy53PXQsdGhpc31zZXRDb21wb25lbnQodCxlKXtzd2l0Y2godCl7Y2FzZSAwOnRoaXMueD1lO2JyZWFrO2Nhc2UgMTp0aGlzLnk9ZTticmVhaztjYXNlIDI6dGhpcy56PWU7YnJlYWs7Y2FzZSAzOnRoaXMudz1lO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9cmV0dXJuIHRoaXN9Z2V0Q29tcG9uZW50KHQpe3N3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHRoaXMueDtjYXNlIDE6cmV0dXJuIHRoaXMueTtjYXNlIDI6cmV0dXJuIHRoaXMuejtjYXNlIDM6cmV0dXJuIHRoaXMudztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLngsdGhpcy55LHRoaXMueix0aGlzLncpfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzLno9dC56LHRoaXMudz12b2lkIDAhPT10Lnc/dC53OjEsdGhpc31hZGQodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiAuYWRkKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuYWRkVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5hZGRWZWN0b3JzKHQsZSkpOih0aGlzLngrPXQueCx0aGlzLnkrPXQueSx0aGlzLnorPXQueix0aGlzLncrPXQudyx0aGlzKX1hZGRTY2FsYXIodCl7cmV0dXJuIHRoaXMueCs9dCx0aGlzLnkrPXQsdGhpcy56Kz10LHRoaXMudys9dCx0aGlzfWFkZFZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCtlLngsdGhpcy55PXQueStlLnksdGhpcy56PXQueitlLnosdGhpcy53PXQudytlLncsdGhpc31hZGRTY2FsZWRWZWN0b3IodCxlKXtyZXR1cm4gdGhpcy54Kz10LngqZSx0aGlzLnkrPXQueSplLHRoaXMueis9dC56KmUsdGhpcy53Kz10LncqZSx0aGlzfXN1Yih0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5zdWIoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5zdWJWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLnN1YlZlY3RvcnModCxlKSk6KHRoaXMueC09dC54LHRoaXMueS09dC55LHRoaXMuei09dC56LHRoaXMudy09dC53LHRoaXMpfXN1YlNjYWxhcih0KXtyZXR1cm4gdGhpcy54LT10LHRoaXMueS09dCx0aGlzLnotPXQsdGhpcy53LT10LHRoaXN9c3ViVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54LWUueCx0aGlzLnk9dC55LWUueSx0aGlzLno9dC56LWUueix0aGlzLnc9dC53LWUudyx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLngqPXQueCx0aGlzLnkqPXQueSx0aGlzLnoqPXQueix0aGlzLncqPXQudyx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLngqPXQsdGhpcy55Kj10LHRoaXMueio9dCx0aGlzLncqPXQsdGhpc31hcHBseU1hdHJpeDQodCl7Y29uc3QgZT10aGlzLngsbj10aGlzLnksaT10aGlzLnoscj10aGlzLncsbz10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9b1swXSplK29bNF0qbitvWzhdKmkrb1sxMl0qcix0aGlzLnk9b1sxXSplK29bNV0qbitvWzldKmkrb1sxM10qcix0aGlzLno9b1syXSplK29bNl0qbitvWzEwXSppK29bMTRdKnIsdGhpcy53PW9bM10qZStvWzddKm4rb1sxMV0qaStvWzE1XSpyLHRoaXN9ZGl2aWRlU2NhbGFyKHQpe3JldHVybiB0aGlzLm11bHRpcGx5U2NhbGFyKDEvdCl9c2V0QXhpc0FuZ2xlRnJvbVF1YXRlcm5pb24odCl7dGhpcy53PTIqTWF0aC5hY29zKHQudyk7Y29uc3QgZT1NYXRoLnNxcnQoMS10LncqdC53KTtyZXR1cm4gZTwxZS00Pyh0aGlzLng9MSx0aGlzLnk9MCx0aGlzLno9MCk6KHRoaXMueD10LngvZSx0aGlzLnk9dC55L2UsdGhpcy56PXQuei9lKSx0aGlzfXNldEF4aXNBbmdsZUZyb21Sb3RhdGlvbk1hdHJpeCh0KXtsZXQgZSxuLGkscjtjb25zdCBvPS4wMSxhPS4xLHM9dC5lbGVtZW50cyxsPXNbMF0sYz1zWzRdLHU9c1s4XSxoPXNbMV0sZD1zWzVdLHA9c1s5XSxmPXNbMl0sbT1zWzZdLGc9c1sxMF07aWYoTWF0aC5hYnMoYy1oKTxvJiZNYXRoLmFicyh1LWYpPG8mJk1hdGguYWJzKHAtbSk8byl7aWYoTWF0aC5hYnMoYytoKTxhJiZNYXRoLmFicyh1K2YpPGEmJk1hdGguYWJzKHArbSk8YSYmTWF0aC5hYnMobCtkK2ctMyk8YSlyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCksdGhpcztlPU1hdGguUEk7Y29uc3QgdD0obCsxKS8yLHM9KGQrMSkvMixfPShnKzEpLzIseT0oYytoKS80LHY9KHUrZikvNCxiPShwK20pLzQ7cmV0dXJuIHQ+cyYmdD5fP3Q8bz8obj0wLGk9LjcwNzEwNjc4MSxyPS43MDcxMDY3ODEpOihuPU1hdGguc3FydCh0KSxpPXkvbixyPXYvbik6cz5fP3M8bz8obj0uNzA3MTA2NzgxLGk9MCxyPS43MDcxMDY3ODEpOihpPU1hdGguc3FydChzKSxuPXkvaSxyPWIvaSk6XzxvPyhuPS43MDcxMDY3ODEsaT0uNzA3MTA2NzgxLHI9MCk6KHI9TWF0aC5zcXJ0KF8pLG49di9yLGk9Yi9yKSx0aGlzLnNldChuLGkscixlKSx0aGlzfWxldCBfPU1hdGguc3FydCgobS1wKSoobS1wKSsodS1mKSoodS1mKSsoaC1jKSooaC1jKSk7cmV0dXJuIE1hdGguYWJzKF8pPC4wMDEmJihfPTEpLHRoaXMueD0obS1wKS9fLHRoaXMueT0odS1mKS9fLHRoaXMuej0oaC1jKS9fLHRoaXMudz1NYXRoLmFjb3MoKGwrZCtnLTEpLzIpLHRoaXN9bWluKHQpe3JldHVybiB0aGlzLng9TWF0aC5taW4odGhpcy54LHQueCksdGhpcy55PU1hdGgubWluKHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1pbih0aGlzLnosdC56KSx0aGlzLnc9TWF0aC5taW4odGhpcy53LHQudyksdGhpc31tYXgodCl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5tYXgodGhpcy55LHQueSksdGhpcy56PU1hdGgubWF4KHRoaXMueix0LnopLHRoaXMudz1NYXRoLm1heCh0aGlzLncsdC53KSx0aGlzfWNsYW1wKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LngsTWF0aC5taW4oZS54LHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LnksTWF0aC5taW4oZS55LHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LnosTWF0aC5taW4oZS56LHRoaXMueikpLHRoaXMudz1NYXRoLm1heCh0LncsTWF0aC5taW4oZS53LHRoaXMudykpLHRoaXN9Y2xhbXBTY2FsYXIodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy56KSksdGhpcy53PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLncpKSx0aGlzfWNsYW1wTGVuZ3RoKHQsZSl7Y29uc3Qgbj10aGlzLmxlbmd0aCgpO3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcihufHwxKS5tdWx0aXBseVNjYWxhcihNYXRoLm1heCh0LE1hdGgubWluKGUsbikpKX1mbG9vcigpe3JldHVybiB0aGlzLng9TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT1NYXRoLmZsb29yKHRoaXMueSksdGhpcy56PU1hdGguZmxvb3IodGhpcy56KSx0aGlzLnc9TWF0aC5mbG9vcih0aGlzLncpLHRoaXN9Y2VpbCgpe3JldHVybiB0aGlzLng9TWF0aC5jZWlsKHRoaXMueCksdGhpcy55PU1hdGguY2VpbCh0aGlzLnkpLHRoaXMuej1NYXRoLmNlaWwodGhpcy56KSx0aGlzLnc9TWF0aC5jZWlsKHRoaXMudyksdGhpc31yb3VuZCgpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpcy56PU1hdGgucm91bmQodGhpcy56KSx0aGlzLnc9TWF0aC5yb3VuZCh0aGlzLncpLHRoaXN9cm91bmRUb1plcm8oKXtyZXR1cm4gdGhpcy54PXRoaXMueDwwP01hdGguY2VpbCh0aGlzLngpOk1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9dGhpcy55PDA/TWF0aC5jZWlsKHRoaXMueSk6TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej10aGlzLno8MD9NYXRoLmNlaWwodGhpcy56KTpNYXRoLmZsb29yKHRoaXMueiksdGhpcy53PXRoaXMudzwwP01hdGguY2VpbCh0aGlzLncpOk1hdGguZmxvb3IodGhpcy53KSx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLng9LXRoaXMueCx0aGlzLnk9LXRoaXMueSx0aGlzLno9LXRoaXMueix0aGlzLnc9LXRoaXMudyx0aGlzfWRvdCh0KXtyZXR1cm4gdGhpcy54KnQueCt0aGlzLnkqdC55K3RoaXMueip0LnordGhpcy53KnQud31sZW5ndGhTcSgpe3JldHVybiB0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMueit0aGlzLncqdGhpcy53fWxlbmd0aCgpe3JldHVybiBNYXRoLnNxcnQodGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnordGhpcy53KnRoaXMudyl9bWFuaGF0dGFuTGVuZ3RoKCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueCkrTWF0aC5hYnModGhpcy55KStNYXRoLmFicyh0aGlzLnopK01hdGguYWJzKHRoaXMudyl9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKHRoaXMubGVuZ3RoKCl8fDEpfXNldExlbmd0aCh0KXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0KX1sZXJwKHQsZSl7cmV0dXJuIHRoaXMueCs9KHQueC10aGlzLngpKmUsdGhpcy55Kz0odC55LXRoaXMueSkqZSx0aGlzLnorPSh0LnotdGhpcy56KSplLHRoaXMudys9KHQudy10aGlzLncpKmUsdGhpc31sZXJwVmVjdG9ycyh0LGUsbil7cmV0dXJuIHRoaXMueD10LngrKGUueC10LngpKm4sdGhpcy55PXQueSsoZS55LXQueSkqbix0aGlzLno9dC56KyhlLnotdC56KSpuLHRoaXMudz10LncrKGUudy10LncpKm4sdGhpc31lcXVhbHModCl7cmV0dXJuIHQueD09PXRoaXMueCYmdC55PT09dGhpcy55JiZ0Lno9PT10aGlzLnomJnQudz09PXRoaXMud31mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLng9dFtlXSx0aGlzLnk9dFtlKzFdLHRoaXMuej10W2UrMl0sdGhpcy53PXRbZSszXSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMueCx0W2UrMV09dGhpcy55LHRbZSsyXT10aGlzLnosdFtlKzNdPXRoaXMudyx0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLG4pe3JldHVybiB2b2lkIDAhPT1uJiZjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IG9mZnNldCBoYXMgYmVlbiByZW1vdmVkIGZyb20gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLng9dC5nZXRYKGUpLHRoaXMueT10LmdldFkoZSksdGhpcy56PXQuZ2V0WihlKSx0aGlzLnc9dC5nZXRXKGUpLHRoaXN9cmFuZG9tKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJhbmRvbSgpLHRoaXMueT1NYXRoLnJhbmRvbSgpLHRoaXMuej1NYXRoLnJhbmRvbSgpLHRoaXMudz1NYXRoLnJhbmRvbSgpLHRoaXN9fXdKdC5wcm90b3R5cGUuaXNWZWN0b3I0PSEwO2NsYXNzIFNKdCBleHRlbmRzIGpadHtjb25zdHJ1Y3Rvcih0LGUsbj17fSl7c3VwZXIoKSx0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLmRlcHRoPTEsdGhpcy5zY2lzc29yPW5ldyB3SnQoMCwwLHQsZSksdGhpcy5zY2lzc29yVGVzdD0hMSx0aGlzLnZpZXdwb3J0PW5ldyB3SnQoMCwwLHQsZSksdGhpcy50ZXh0dXJlPW5ldyBiSnQodm9pZCAwLG4ubWFwcGluZyxuLndyYXBTLG4ud3JhcFQsbi5tYWdGaWx0ZXIsbi5taW5GaWx0ZXIsbi5mb3JtYXQsbi50eXBlLG4uYW5pc290cm9weSxuLmVuY29kaW5nKSx0aGlzLnRleHR1cmUuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSEwLHRoaXMudGV4dHVyZS5pbWFnZT17d2lkdGg6dCxoZWlnaHQ6ZSxkZXB0aDoxfSx0aGlzLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPXZvaWQgMCE9PW4uZ2VuZXJhdGVNaXBtYXBzJiZuLmdlbmVyYXRlTWlwbWFwcyx0aGlzLnRleHR1cmUubWluRmlsdGVyPXZvaWQgMCE9PW4ubWluRmlsdGVyP24ubWluRmlsdGVyOmVadCx0aGlzLmRlcHRoQnVmZmVyPXZvaWQgMD09PW4uZGVwdGhCdWZmZXJ8fG4uZGVwdGhCdWZmZXIsdGhpcy5zdGVuY2lsQnVmZmVyPXZvaWQgMCE9PW4uc3RlbmNpbEJ1ZmZlciYmbi5zdGVuY2lsQnVmZmVyLHRoaXMuZGVwdGhUZXh0dXJlPXZvaWQgMCE9PW4uZGVwdGhUZXh0dXJlP24uZGVwdGhUZXh0dXJlOm51bGx9c2V0VGV4dHVyZSh0KXt0LmltYWdlPXt3aWR0aDp0aGlzLndpZHRoLGhlaWdodDp0aGlzLmhlaWdodCxkZXB0aDp0aGlzLmRlcHRofSx0aGlzLnRleHR1cmU9dH1zZXRTaXplKHQsZSxuPTEpe3RoaXMud2lkdGg9PT10JiZ0aGlzLmhlaWdodD09PWUmJnRoaXMuZGVwdGg9PT1ufHwodGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PWUsdGhpcy5kZXB0aD1uLHRoaXMudGV4dHVyZS5pbWFnZS53aWR0aD10LHRoaXMudGV4dHVyZS5pbWFnZS5oZWlnaHQ9ZSx0aGlzLnRleHR1cmUuaW1hZ2UuZGVwdGg9bix0aGlzLmRpc3Bvc2UoKSksdGhpcy52aWV3cG9ydC5zZXQoMCwwLHQsZSksdGhpcy5zY2lzc29yLnNldCgwLDAsdCxlKX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLndpZHRoPXQud2lkdGgsdGhpcy5oZWlnaHQ9dC5oZWlnaHQsdGhpcy5kZXB0aD10LmRlcHRoLHRoaXMudmlld3BvcnQuY29weSh0LnZpZXdwb3J0KSx0aGlzLnRleHR1cmU9dC50ZXh0dXJlLmNsb25lKCksdGhpcy50ZXh0dXJlLmltYWdlPXsuLi50aGlzLnRleHR1cmUuaW1hZ2V9LHRoaXMuZGVwdGhCdWZmZXI9dC5kZXB0aEJ1ZmZlcix0aGlzLnN0ZW5jaWxCdWZmZXI9dC5zdGVuY2lsQnVmZmVyLHRoaXMuZGVwdGhUZXh0dXJlPXQuZGVwdGhUZXh0dXJlLHRoaXN9ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX19U0p0LnByb3RvdHlwZS5pc1dlYkdMUmVuZGVyVGFyZ2V0PSEwO2NsYXNzIE1KdCBleHRlbmRzIFNKdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlKTtjb25zdCBpPXRoaXMudGV4dHVyZTt0aGlzLnRleHR1cmU9W107Zm9yKGxldCB0PTA7dDxuO3QrKyl0aGlzLnRleHR1cmVbdF09aS5jbG9uZSgpfXNldFNpemUodCxlLG49MSl7aWYodGhpcy53aWR0aCE9PXR8fHRoaXMuaGVpZ2h0IT09ZXx8dGhpcy5kZXB0aCE9PW4pe3RoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMuZGVwdGg9bjtmb3IobGV0IGk9MCxyPXRoaXMudGV4dHVyZS5sZW5ndGg7aTxyO2krKyl0aGlzLnRleHR1cmVbaV0uaW1hZ2Uud2lkdGg9dCx0aGlzLnRleHR1cmVbaV0uaW1hZ2UuaGVpZ2h0PWUsdGhpcy50ZXh0dXJlW2ldLmltYWdlLmRlcHRoPW47dGhpcy5kaXNwb3NlKCl9cmV0dXJuIHRoaXMudmlld3BvcnQuc2V0KDAsMCx0LGUpLHRoaXMuc2Npc3Nvci5zZXQoMCwwLHQsZSksdGhpc31jb3B5KHQpe3RoaXMuZGlzcG9zZSgpLHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzLmRlcHRoPXQuZGVwdGgsdGhpcy52aWV3cG9ydC5zZXQoMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpLHRoaXMuc2Npc3Nvci5zZXQoMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpLHRoaXMuZGVwdGhCdWZmZXI9dC5kZXB0aEJ1ZmZlcix0aGlzLnN0ZW5jaWxCdWZmZXI9dC5zdGVuY2lsQnVmZmVyLHRoaXMuZGVwdGhUZXh0dXJlPXQuZGVwdGhUZXh0dXJlLHRoaXMudGV4dHVyZS5sZW5ndGg9MDtmb3IobGV0IGU9MCxuPXQudGV4dHVyZS5sZW5ndGg7ZTxuO2UrKyl0aGlzLnRleHR1cmVbZV09dC50ZXh0dXJlW2VdLmNsb25lKCk7cmV0dXJuIHRoaXN9fU1KdC5wcm90b3R5cGUuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cz0hMDtjbGFzcyBFSnQgZXh0ZW5kcyBTSnR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSxuKSx0aGlzLnNhbXBsZXM9NH1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5LmNhbGwodGhpcyx0KSx0aGlzLnNhbXBsZXM9dC5zYW1wbGVzLHRoaXN9fUVKdC5wcm90b3R5cGUuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0PSEwO2NsYXNzIFRKdHtjb25zdHJ1Y3Rvcih0PTAsZT0wLG49MCxpPTEpe3RoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1uLHRoaXMuX3c9aX1zdGF0aWMgc2xlcnAodCxlLG4saSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogU3RhdGljIC5zbGVycCgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBxbS5zbGVycFF1YXRlcm5pb25zKCBxYSwgcWIsIHQgKSBpbnN0ZWFkLiIpLG4uc2xlcnBRdWF0ZXJuaW9ucyh0LGUsaSl9c3RhdGljIHNsZXJwRmxhdCh0LGUsbixpLHIsbyxhKXtsZXQgcz1uW2krMF0sbD1uW2krMV0sYz1uW2krMl0sdT1uW2krM107Y29uc3QgaD1yW28rMF0sZD1yW28rMV0scD1yW28rMl0sZj1yW28rM107aWYoMD09PWEpcmV0dXJuIHRbZSswXT1zLHRbZSsxXT1sLHRbZSsyXT1jLHZvaWQodFtlKzNdPXUpO2lmKDE9PT1hKXJldHVybiB0W2UrMF09aCx0W2UrMV09ZCx0W2UrMl09cCx2b2lkKHRbZSszXT1mKTtpZih1IT09Znx8cyE9PWh8fGwhPT1kfHxjIT09cCl7bGV0IHQ9MS1hO2NvbnN0IGU9cypoK2wqZCtjKnArdSpmLG49ZT49MD8xOi0xLGk9MS1lKmU7aWYoaT5OdW1iZXIuRVBTSUxPTil7Y29uc3Qgcj1NYXRoLnNxcnQoaSksbz1NYXRoLmF0YW4yKHIsZSpuKTt0PU1hdGguc2luKHQqbykvcixhPU1hdGguc2luKGEqbykvcn1jb25zdCByPWEqbjtpZihzPXMqdCtoKnIsbD1sKnQrZCpyLGM9Yyp0K3Aqcix1PXUqdCtmKnIsdD09PTEtYSl7Y29uc3QgdD0xL01hdGguc3FydChzKnMrbCpsK2MqYyt1KnUpO3MqPXQsbCo9dCxjKj10LHUqPXR9fXRbZV09cyx0W2UrMV09bCx0W2UrMl09Yyx0W2UrM109dX1zdGF0aWMgbXVsdGlwbHlRdWF0ZXJuaW9uc0ZsYXQodCxlLG4saSxyLG8pe2NvbnN0IGE9bltpXSxzPW5baSsxXSxsPW5baSsyXSxjPW5baSszXSx1PXJbb10saD1yW28rMV0sZD1yW28rMl0scD1yW28rM107cmV0dXJuIHRbZV09YSpwK2MqdStzKmQtbCpoLHRbZSsxXT1zKnArYypoK2wqdS1hKmQsdFtlKzJdPWwqcCtjKmQrYSpoLXMqdSx0W2UrM109YypwLWEqdS1zKmgtbCpkLHR9Z2V0IHgoKXtyZXR1cm4gdGhpcy5feH1zZXQgeCh0KXt0aGlzLl94PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB5KCl7cmV0dXJuIHRoaXMuX3l9c2V0IHkodCl7dGhpcy5feT10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeigpe3JldHVybiB0aGlzLl96fXNldCB6KHQpe3RoaXMuX3o9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHcoKXtyZXR1cm4gdGhpcy5fd31zZXQgdyh0KXt0aGlzLl93PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfXNldCh0LGUsbixpKXtyZXR1cm4gdGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl96PW4sdGhpcy5fdz1pLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuX3gsdGhpcy5feSx0aGlzLl96LHRoaXMuX3cpfWNvcHkodCl7cmV0dXJuIHRoaXMuX3g9dC54LHRoaXMuX3k9dC55LHRoaXMuX3o9dC56LHRoaXMuX3c9dC53LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21FdWxlcih0LGUpe2lmKCF0fHwhdC5pc0V1bGVyKXRocm93IG5ldyBFcnJvcigiVEhSRUUuUXVhdGVybmlvbjogLnNldEZyb21FdWxlcigpIG5vdyBleHBlY3RzIGFuIEV1bGVyIHJvdGF0aW9uIHJhdGhlciB0aGFuIGEgVmVjdG9yMyBhbmQgb3JkZXIuIik7Y29uc3Qgbj10Ll94LGk9dC5feSxyPXQuX3osbz10Ll9vcmRlcixhPU1hdGguY29zLHM9TWF0aC5zaW4sbD1hKG4vMiksYz1hKGkvMiksdT1hKHIvMiksaD1zKG4vMiksZD1zKGkvMikscD1zKHIvMik7c3dpdGNoKG8pe2Nhc2UiWFlaIjp0aGlzLl94PWgqYyp1K2wqZCpwLHRoaXMuX3k9bCpkKnUtaCpjKnAsdGhpcy5fej1sKmMqcCtoKmQqdSx0aGlzLl93PWwqYyp1LWgqZCpwO2JyZWFrO2Nhc2UiWVhaIjp0aGlzLl94PWgqYyp1K2wqZCpwLHRoaXMuX3k9bCpkKnUtaCpjKnAsdGhpcy5fej1sKmMqcC1oKmQqdSx0aGlzLl93PWwqYyp1K2gqZCpwO2JyZWFrO2Nhc2UiWlhZIjp0aGlzLl94PWgqYyp1LWwqZCpwLHRoaXMuX3k9bCpkKnUraCpjKnAsdGhpcy5fej1sKmMqcCtoKmQqdSx0aGlzLl93PWwqYyp1LWgqZCpwO2JyZWFrO2Nhc2UiWllYIjp0aGlzLl94PWgqYyp1LWwqZCpwLHRoaXMuX3k9bCpkKnUraCpjKnAsdGhpcy5fej1sKmMqcC1oKmQqdSx0aGlzLl93PWwqYyp1K2gqZCpwO2JyZWFrO2Nhc2UiWVpYIjp0aGlzLl94PWgqYyp1K2wqZCpwLHRoaXMuX3k9bCpkKnUraCpjKnAsdGhpcy5fej1sKmMqcC1oKmQqdSx0aGlzLl93PWwqYyp1LWgqZCpwO2JyZWFrO2Nhc2UiWFpZIjp0aGlzLl94PWgqYyp1LWwqZCpwLHRoaXMuX3k9bCpkKnUtaCpjKnAsdGhpcy5fej1sKmMqcCtoKmQqdSx0aGlzLl93PWwqYyp1K2gqZCpwO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAuc2V0RnJvbUV1bGVyKCkgZW5jb3VudGVyZWQgYW4gdW5rbm93biBvcmRlcjogIitvKX1yZXR1cm4hMSE9PWUmJnRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21BeGlzQW5nbGUodCxlKXtjb25zdCBuPWUvMixpPU1hdGguc2luKG4pO3JldHVybiB0aGlzLl94PXQueCppLHRoaXMuX3k9dC55KmksdGhpcy5fej10LnoqaSx0aGlzLl93PU1hdGguY29zKG4pLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21Sb3RhdGlvbk1hdHJpeCh0KXtjb25zdCBlPXQuZWxlbWVudHMsbj1lWzBdLGk9ZVs0XSxyPWVbOF0sbz1lWzFdLGE9ZVs1XSxzPWVbOV0sbD1lWzJdLGM9ZVs2XSx1PWVbMTBdLGg9bithK3U7aWYoaD4wKXtjb25zdCB0PS41L01hdGguc3FydChoKzEpO3RoaXMuX3c9LjI1L3QsdGhpcy5feD0oYy1zKSp0LHRoaXMuX3k9KHItbCkqdCx0aGlzLl96PShvLWkpKnR9ZWxzZSBpZihuPmEmJm4+dSl7Y29uc3QgdD0yKk1hdGguc3FydCgxK24tYS11KTt0aGlzLl93PShjLXMpL3QsdGhpcy5feD0uMjUqdCx0aGlzLl95PShpK28pL3QsdGhpcy5fej0ocitsKS90fWVsc2UgaWYoYT51KXtjb25zdCB0PTIqTWF0aC5zcXJ0KDErYS1uLXUpO3RoaXMuX3c9KHItbCkvdCx0aGlzLl94PShpK28pL3QsdGhpcy5feT0uMjUqdCx0aGlzLl96PShzK2MpL3R9ZWxzZXtjb25zdCB0PTIqTWF0aC5zcXJ0KDErdS1uLWEpO3RoaXMuX3c9KG8taSkvdCx0aGlzLl94PShyK2wpL3QsdGhpcy5feT0ocytjKS90LHRoaXMuX3o9LjI1KnR9cmV0dXJuIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21Vbml0VmVjdG9ycyh0LGUpe2xldCBuPXQuZG90KGUpKzE7cmV0dXJuIG48TnVtYmVyLkVQU0lMT04/KG49MCxNYXRoLmFicyh0LngpPk1hdGguYWJzKHQueik/KHRoaXMuX3g9LXQueSx0aGlzLl95PXQueCx0aGlzLl96PTAsdGhpcy5fdz1uKToodGhpcy5feD0wLHRoaXMuX3k9LXQueix0aGlzLl96PXQueSx0aGlzLl93PW4pKToodGhpcy5feD10LnkqZS56LXQueiplLnksdGhpcy5feT10LnoqZS54LXQueCplLnosdGhpcy5fej10LngqZS55LXQueSplLngsdGhpcy5fdz1uKSx0aGlzLm5vcm1hbGl6ZSgpfWFuZ2xlVG8odCl7cmV0dXJuIDIqTWF0aC5hY29zKE1hdGguYWJzKCRadCh0aGlzLmRvdCh0KSwtMSwxKSkpfXJvdGF0ZVRvd2FyZHModCxlKXtjb25zdCBuPXRoaXMuYW5nbGVUbyh0KTtpZigwPT09bilyZXR1cm4gdGhpcztjb25zdCBpPU1hdGgubWluKDEsZS9uKTtyZXR1cm4gdGhpcy5zbGVycCh0LGkpLHRoaXN9aWRlbnRpdHkoKXtyZXR1cm4gdGhpcy5zZXQoMCwwLDAsMSl9aW52ZXJ0KCl7cmV0dXJuIHRoaXMuY29uanVnYXRlKCl9Y29uanVnYXRlKCl7cmV0dXJuIHRoaXMuX3gqPS0xLHRoaXMuX3kqPS0xLHRoaXMuX3oqPS0xLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfWRvdCh0KXtyZXR1cm4gdGhpcy5feCp0Ll94K3RoaXMuX3kqdC5feSt0aGlzLl96KnQuX3ordGhpcy5fdyp0Ll93fWxlbmd0aFNxKCl7cmV0dXJuIHRoaXMuX3gqdGhpcy5feCt0aGlzLl95KnRoaXMuX3krdGhpcy5feip0aGlzLl96K3RoaXMuX3cqdGhpcy5fd31sZW5ndGgoKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuX3gqdGhpcy5feCt0aGlzLl95KnRoaXMuX3krdGhpcy5feip0aGlzLl96K3RoaXMuX3cqdGhpcy5fdyl9bm9ybWFsaXplKCl7bGV0IHQ9dGhpcy5sZW5ndGgoKTtyZXR1cm4gMD09PXQ/KHRoaXMuX3g9MCx0aGlzLl95PTAsdGhpcy5fej0wLHRoaXMuX3c9MSk6KHQ9MS90LHRoaXMuX3g9dGhpcy5feCp0LHRoaXMuX3k9dGhpcy5feSp0LHRoaXMuX3o9dGhpcy5feip0LHRoaXMuX3c9dGhpcy5fdyp0KSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31tdWx0aXBseSh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IC5tdWx0aXBseSgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLm11bHRpcGx5UXVhdGVybmlvbnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyh0LGUpKTp0aGlzLm11bHRpcGx5UXVhdGVybmlvbnModGhpcyx0KX1wcmVtdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVF1YXRlcm5pb25zKHQsdGhpcyl9bXVsdGlwbHlRdWF0ZXJuaW9ucyh0LGUpe2NvbnN0IG49dC5feCxpPXQuX3kscj10Ll96LG89dC5fdyxhPWUuX3gscz1lLl95LGw9ZS5feixjPWUuX3c7cmV0dXJuIHRoaXMuX3g9bipjK28qYStpKmwtcipzLHRoaXMuX3k9aSpjK28qcytyKmEtbipsLHRoaXMuX3o9cipjK28qbCtuKnMtaSphLHRoaXMuX3c9bypjLW4qYS1pKnMtcipsLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNsZXJwKHQsZSl7aWYoMD09PWUpcmV0dXJuIHRoaXM7aWYoMT09PWUpcmV0dXJuIHRoaXMuY29weSh0KTtjb25zdCBuPXRoaXMuX3gsaT10aGlzLl95LHI9dGhpcy5feixvPXRoaXMuX3c7bGV0IGE9byp0Ll93K24qdC5feCtpKnQuX3krcip0Ll96O2lmKGE8MD8odGhpcy5fdz0tdC5fdyx0aGlzLl94PS10Ll94LHRoaXMuX3k9LXQuX3ksdGhpcy5fej0tdC5feixhPS1hKTp0aGlzLmNvcHkodCksYT49MSlyZXR1cm4gdGhpcy5fdz1vLHRoaXMuX3g9bix0aGlzLl95PWksdGhpcy5fej1yLHRoaXM7Y29uc3Qgcz0xLWEqYTtpZihzPD1OdW1iZXIuRVBTSUxPTil7Y29uc3QgdD0xLWU7cmV0dXJuIHRoaXMuX3c9dCpvK2UqdGhpcy5fdyx0aGlzLl94PXQqbitlKnRoaXMuX3gsdGhpcy5feT10KmkrZSp0aGlzLl95LHRoaXMuX3o9dCpyK2UqdGhpcy5feix0aGlzLm5vcm1hbGl6ZSgpLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfWNvbnN0IGw9TWF0aC5zcXJ0KHMpLGM9TWF0aC5hdGFuMihsLGEpLHU9TWF0aC5zaW4oKDEtZSkqYykvbCxoPU1hdGguc2luKGUqYykvbDtyZXR1cm4gdGhpcy5fdz1vKnUrdGhpcy5fdypoLHRoaXMuX3g9bip1K3RoaXMuX3gqaCx0aGlzLl95PWkqdSt0aGlzLl95KmgsdGhpcy5fej1yKnUrdGhpcy5feipoLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNsZXJwUXVhdGVybmlvbnModCxlLG4pe3RoaXMuY29weSh0KS5zbGVycChlLG4pfWVxdWFscyh0KXtyZXR1cm4gdC5feD09PXRoaXMuX3gmJnQuX3k9PT10aGlzLl95JiZ0Ll96PT09dGhpcy5feiYmdC5fdz09PXRoaXMuX3d9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy5feD10W2VdLHRoaXMuX3k9dFtlKzFdLHRoaXMuX3o9dFtlKzJdLHRoaXMuX3c9dFtlKzNdLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMuX3gsdFtlKzFdPXRoaXMuX3ksdFtlKzJdPXRoaXMuX3osdFtlKzNdPXRoaXMuX3csdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSl7cmV0dXJuIHRoaXMuX3g9dC5nZXRYKGUpLHRoaXMuX3k9dC5nZXRZKGUpLHRoaXMuX3o9dC5nZXRaKGUpLHRoaXMuX3c9dC5nZXRXKGUpLHRoaXN9X29uQ2hhbmdlKHQpe3JldHVybiB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrPXQsdGhpc31fb25DaGFuZ2VDYWxsYmFjaygpe319VEp0LnByb3RvdHlwZS5pc1F1YXRlcm5pb249ITA7Y2xhc3MgQ0p0e2NvbnN0cnVjdG9yKHQ9MCxlPTAsbj0wKXt0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9bn1zZXQodCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj10aGlzLnopLHRoaXMueD10LHRoaXMueT1lLHRoaXMuej1uLHRoaXN9c2V0U2NhbGFyKHQpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9dCx0aGlzLno9dCx0aGlzfXNldFgodCl7cmV0dXJuIHRoaXMueD10LHRoaXN9c2V0WSh0KXtyZXR1cm4gdGhpcy55PXQsdGhpc31zZXRaKHQpe3JldHVybiB0aGlzLno9dCx0aGlzfXNldENvbXBvbmVudCh0LGUpe3N3aXRjaCh0KXtjYXNlIDA6dGhpcy54PWU7YnJlYWs7Y2FzZSAxOnRoaXMueT1lO2JyZWFrO2Nhc2UgMjp0aGlzLno9ZTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfXJldHVybiB0aGlzfWdldENvbXBvbmVudCh0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiB0aGlzLng7Y2FzZSAxOnJldHVybiB0aGlzLnk7Y2FzZSAyOnJldHVybiB0aGlzLno7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX19Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy54LHRoaXMueSx0aGlzLnopfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzLno9dC56LHRoaXN9YWRkKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmFkZCgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmFkZFZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuYWRkVmVjdG9ycyh0LGUpKToodGhpcy54Kz10LngsdGhpcy55Kz10LnksdGhpcy56Kz10LnosdGhpcyl9YWRkU2NhbGFyKHQpe3JldHVybiB0aGlzLngrPXQsdGhpcy55Kz10LHRoaXMueis9dCx0aGlzfWFkZFZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCtlLngsdGhpcy55PXQueStlLnksdGhpcy56PXQueitlLnosdGhpc31hZGRTY2FsZWRWZWN0b3IodCxlKXtyZXR1cm4gdGhpcy54Kz10LngqZSx0aGlzLnkrPXQueSplLHRoaXMueis9dC56KmUsdGhpc31zdWIodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuc3ViKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuc3ViVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5zdWJWZWN0b3JzKHQsZSkpOih0aGlzLngtPXQueCx0aGlzLnktPXQueSx0aGlzLnotPXQueix0aGlzKX1zdWJTY2FsYXIodCl7cmV0dXJuIHRoaXMueC09dCx0aGlzLnktPXQsdGhpcy56LT10LHRoaXN9c3ViVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54LWUueCx0aGlzLnk9dC55LWUueSx0aGlzLno9dC56LWUueix0aGlzfW11bHRpcGx5KHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLm11bHRpcGx5VmVjdG9ycyh0LGUpKToodGhpcy54Kj10LngsdGhpcy55Kj10LnksdGhpcy56Kj10LnosdGhpcyl9bXVsdGlwbHlTY2FsYXIodCl7cmV0dXJuIHRoaXMueCo9dCx0aGlzLnkqPXQsdGhpcy56Kj10LHRoaXN9bXVsdGlwbHlWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngqZS54LHRoaXMueT10LnkqZS55LHRoaXMuej10LnoqZS56LHRoaXN9YXBwbHlFdWxlcih0KXtyZXR1cm4gdCYmdC5pc0V1bGVyfHxjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuYXBwbHlFdWxlcigpIG5vdyBleHBlY3RzIGFuIEV1bGVyIHJvdGF0aW9uIHJhdGhlciB0aGFuIGEgVmVjdG9yMyBhbmQgb3JkZXIuIiksdGhpcy5hcHBseVF1YXRlcm5pb24oa0p0LnNldEZyb21FdWxlcih0KSl9YXBwbHlBeGlzQW5nbGUodCxlKXtyZXR1cm4gdGhpcy5hcHBseVF1YXRlcm5pb24oa0p0LnNldEZyb21BeGlzQW5nbGUodCxlKSl9YXBwbHlNYXRyaXgzKHQpe2NvbnN0IGU9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LHI9dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PXJbMF0qZStyWzNdKm4rcls2XSppLHRoaXMueT1yWzFdKmUrcls0XSpuK3JbN10qaSx0aGlzLno9clsyXSplK3JbNV0qbityWzhdKmksdGhpc31hcHBseU5vcm1hbE1hdHJpeCh0KXtyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDModCkubm9ybWFsaXplKCl9YXBwbHlNYXRyaXg0KHQpe2NvbnN0IGU9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LHI9dC5lbGVtZW50cyxvPTEvKHJbM10qZStyWzddKm4rclsxMV0qaStyWzE1XSk7cmV0dXJuIHRoaXMueD0oclswXSplK3JbNF0qbityWzhdKmkrclsxMl0pKm8sdGhpcy55PShyWzFdKmUrcls1XSpuK3JbOV0qaStyWzEzXSkqbyx0aGlzLno9KHJbMl0qZStyWzZdKm4rclsxMF0qaStyWzE0XSkqbyx0aGlzfWFwcGx5UXVhdGVybmlvbih0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxpPXRoaXMueixyPXQueCxvPXQueSxhPXQueixzPXQudyxsPXMqZStvKmktYSpuLGM9cypuK2EqZS1yKmksdT1zKmkrcipuLW8qZSxoPS1yKmUtbypuLWEqaTtyZXR1cm4gdGhpcy54PWwqcytoKi1yK2MqLWEtdSotbyx0aGlzLnk9YypzK2gqLW8rdSotci1sKi1hLHRoaXMuej11KnMraCotYStsKi1vLWMqLXIsdGhpc31wcm9qZWN0KHQpe3JldHVybiB0aGlzLmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkSW52ZXJzZSkuYXBwbHlNYXRyaXg0KHQucHJvamVjdGlvbk1hdHJpeCl9dW5wcm9qZWN0KHQpe3JldHVybiB0aGlzLmFwcGx5TWF0cml4NCh0LnByb2plY3Rpb25NYXRyaXhJbnZlcnNlKS5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCl9dHJhbnNmb3JtRGlyZWN0aW9uKHQpe2NvbnN0IGU9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LHI9dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PXJbMF0qZStyWzRdKm4rcls4XSppLHRoaXMueT1yWzFdKmUrcls1XSpuK3JbOV0qaSx0aGlzLno9clsyXSplK3JbNl0qbityWzEwXSppLHRoaXMubm9ybWFsaXplKCl9ZGl2aWRlKHQpe3JldHVybiB0aGlzLngvPXQueCx0aGlzLnkvPXQueSx0aGlzLnovPXQueix0aGlzfWRpdmlkZVNjYWxhcih0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVNjYWxhcigxL3QpfW1pbih0KXtyZXR1cm4gdGhpcy54PU1hdGgubWluKHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1pbih0aGlzLnksdC55KSx0aGlzLno9TWF0aC5taW4odGhpcy56LHQueiksdGhpc31tYXgodCl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5tYXgodGhpcy55LHQueSksdGhpcy56PU1hdGgubWF4KHRoaXMueix0LnopLHRoaXN9Y2xhbXAodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQueCxNYXRoLm1pbihlLngsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQueSxNYXRoLm1pbihlLnksdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQueixNYXRoLm1pbihlLnosdGhpcy56KSksdGhpc31jbGFtcFNjYWxhcih0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnopKSx0aGlzfWNsYW1wTGVuZ3RoKHQsZSl7Y29uc3Qgbj10aGlzLmxlbmd0aCgpO3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcihufHwxKS5tdWx0aXBseVNjYWxhcihNYXRoLm1heCh0LE1hdGgubWluKGUsbikpKX1mbG9vcigpe3JldHVybiB0aGlzLng9TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT1NYXRoLmZsb29yKHRoaXMueSksdGhpcy56PU1hdGguZmxvb3IodGhpcy56KSx0aGlzfWNlaWwoKXtyZXR1cm4gdGhpcy54PU1hdGguY2VpbCh0aGlzLngpLHRoaXMueT1NYXRoLmNlaWwodGhpcy55KSx0aGlzLno9TWF0aC5jZWlsKHRoaXMueiksdGhpc31yb3VuZCgpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpcy56PU1hdGgucm91bmQodGhpcy56KSx0aGlzfXJvdW5kVG9aZXJvKCl7cmV0dXJuIHRoaXMueD10aGlzLng8MD9NYXRoLmNlaWwodGhpcy54KTpNYXRoLmZsb29yKHRoaXMueCksdGhpcy55PXRoaXMueTwwP01hdGguY2VpbCh0aGlzLnkpOk1hdGguZmxvb3IodGhpcy55KSx0aGlzLno9dGhpcy56PDA/TWF0aC5jZWlsKHRoaXMueik6TWF0aC5mbG9vcih0aGlzLnopLHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMueD0tdGhpcy54LHRoaXMueT0tdGhpcy55LHRoaXMuej0tdGhpcy56LHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLngqdC54K3RoaXMueSp0LnkrdGhpcy56KnQuen1sZW5ndGhTcSgpe3JldHVybiB0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMuen1sZW5ndGgoKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSt0aGlzLnoqdGhpcy56KX1tYW5oYXR0YW5MZW5ndGgoKXtyZXR1cm4gTWF0aC5hYnModGhpcy54KStNYXRoLmFicyh0aGlzLnkpK01hdGguYWJzKHRoaXMueil9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKHRoaXMubGVuZ3RoKCl8fDEpfXNldExlbmd0aCh0KXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0KX1sZXJwKHQsZSl7cmV0dXJuIHRoaXMueCs9KHQueC10aGlzLngpKmUsdGhpcy55Kz0odC55LXRoaXMueSkqZSx0aGlzLnorPSh0LnotdGhpcy56KSplLHRoaXN9bGVycFZlY3RvcnModCxlLG4pe3JldHVybiB0aGlzLng9dC54KyhlLngtdC54KSpuLHRoaXMueT10LnkrKGUueS10LnkpKm4sdGhpcy56PXQueisoZS56LXQueikqbix0aGlzfWNyb3NzKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmNyb3NzKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuY3Jvc3NWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmNyb3NzVmVjdG9ycyh0LGUpKTp0aGlzLmNyb3NzVmVjdG9ycyh0aGlzLHQpfWNyb3NzVmVjdG9ycyh0LGUpe2NvbnN0IG49dC54LGk9dC55LHI9dC56LG89ZS54LGE9ZS55LHM9ZS56O3JldHVybiB0aGlzLng9aSpzLXIqYSx0aGlzLnk9cipvLW4qcyx0aGlzLno9biphLWkqbyx0aGlzfXByb2plY3RPblZlY3Rvcih0KXtjb25zdCBlPXQubGVuZ3RoU3EoKTtpZigwPT09ZSlyZXR1cm4gdGhpcy5zZXQoMCwwLDApO2NvbnN0IG49dC5kb3QodGhpcykvZTtyZXR1cm4gdGhpcy5jb3B5KHQpLm11bHRpcGx5U2NhbGFyKG4pfXByb2plY3RPblBsYW5lKHQpe3JldHVybiBBSnQuY29weSh0aGlzKS5wcm9qZWN0T25WZWN0b3IodCksdGhpcy5zdWIoQUp0KX1yZWZsZWN0KHQpe3JldHVybiB0aGlzLnN1YihBSnQuY29weSh0KS5tdWx0aXBseVNjYWxhcigyKnRoaXMuZG90KHQpKSl9YW5nbGVUbyh0KXtjb25zdCBlPU1hdGguc3FydCh0aGlzLmxlbmd0aFNxKCkqdC5sZW5ndGhTcSgpKTtpZigwPT09ZSlyZXR1cm4gTWF0aC5QSS8yO2NvbnN0IG49dGhpcy5kb3QodCkvZTtyZXR1cm4gTWF0aC5hY29zKCRadChuLC0xLDEpKX1kaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLnNxcnQodGhpcy5kaXN0YW5jZVRvU3F1YXJlZCh0KSl9ZGlzdGFuY2VUb1NxdWFyZWQodCl7Y29uc3QgZT10aGlzLngtdC54LG49dGhpcy55LXQueSxpPXRoaXMuei10Lno7cmV0dXJuIGUqZStuKm4raSppfW1hbmhhdHRhbkRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueC10LngpK01hdGguYWJzKHRoaXMueS10LnkpK01hdGguYWJzKHRoaXMuei10LnopfXNldEZyb21TcGhlcmljYWwodCl7cmV0dXJuIHRoaXMuc2V0RnJvbVNwaGVyaWNhbENvb3Jkcyh0LnJhZGl1cyx0LnBoaSx0LnRoZXRhKX1zZXRGcm9tU3BoZXJpY2FsQ29vcmRzKHQsZSxuKXtjb25zdCBpPU1hdGguc2luKGUpKnQ7cmV0dXJuIHRoaXMueD1pKk1hdGguc2luKG4pLHRoaXMueT1NYXRoLmNvcyhlKSp0LHRoaXMuej1pKk1hdGguY29zKG4pLHRoaXN9c2V0RnJvbUN5bGluZHJpY2FsKHQpe3JldHVybiB0aGlzLnNldEZyb21DeWxpbmRyaWNhbENvb3Jkcyh0LnJhZGl1cyx0LnRoZXRhLHQueSl9c2V0RnJvbUN5bGluZHJpY2FsQ29vcmRzKHQsZSxuKXtyZXR1cm4gdGhpcy54PXQqTWF0aC5zaW4oZSksdGhpcy55PW4sdGhpcy56PXQqTWF0aC5jb3MoZSksdGhpc31zZXRGcm9tTWF0cml4UG9zaXRpb24odCl7Y29uc3QgZT10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9ZVsxMl0sdGhpcy55PWVbMTNdLHRoaXMuej1lWzE0XSx0aGlzfXNldEZyb21NYXRyaXhTY2FsZSh0KXtjb25zdCBlPXRoaXMuc2V0RnJvbU1hdHJpeENvbHVtbih0LDApLmxlbmd0aCgpLG49dGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMSkubGVuZ3RoKCksaT10aGlzLnNldEZyb21NYXRyaXhDb2x1bW4odCwyKS5sZW5ndGgoKTtyZXR1cm4gdGhpcy54PWUsdGhpcy55PW4sdGhpcy56PWksdGhpc31zZXRGcm9tTWF0cml4Q29sdW1uKHQsZSl7cmV0dXJuIHRoaXMuZnJvbUFycmF5KHQuZWxlbWVudHMsNCplKX1zZXRGcm9tTWF0cml4M0NvbHVtbih0LGUpe3JldHVybiB0aGlzLmZyb21BcnJheSh0LmVsZW1lbnRzLDMqZSl9ZXF1YWxzKHQpe3JldHVybiB0Lng9PT10aGlzLngmJnQueT09PXRoaXMueSYmdC56PT09dGhpcy56fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMueD10W2VdLHRoaXMueT10W2UrMV0sdGhpcy56PXRbZSsyXSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMueCx0W2UrMV09dGhpcy55LHRbZSsyXT10aGlzLnosdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKXtyZXR1cm4gdm9pZCAwIT09biYmY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiBvZmZzZXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy54PXQuZ2V0WChlKSx0aGlzLnk9dC5nZXRZKGUpLHRoaXMuej10LmdldFooZSksdGhpc31yYW5kb20oKXtyZXR1cm4gdGhpcy54PU1hdGgucmFuZG9tKCksdGhpcy55PU1hdGgucmFuZG9tKCksdGhpcy56PU1hdGgucmFuZG9tKCksdGhpc319Q0p0LnByb3RvdHlwZS5pc1ZlY3RvcjM9ITA7Y29uc3QgQUp0PW5ldyBDSnQsa0p0PW5ldyBUSnQ7Y2xhc3MgTEp0e2NvbnN0cnVjdG9yKHQ9bmV3IENKdCgxLzAsMS8wLDEvMCksZT1uZXcgQ0p0KC0xLzAsLTEvMCwtMS8wKSl7dGhpcy5taW49dCx0aGlzLm1heD1lfXNldCh0LGUpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQpLHRoaXMubWF4LmNvcHkoZSksdGhpc31zZXRGcm9tQXJyYXkodCl7bGV0IGU9MS8wLG49MS8wLGk9MS8wLHI9LTEvMCxvPS0xLzAsYT0tMS8wO2ZvcihsZXQgcz0wLGw9dC5sZW5ndGg7czxsO3MrPTMpe2NvbnN0IGw9dFtzXSxjPXRbcysxXSx1PXRbcysyXTtsPGUmJihlPWwpLGM8biYmKG49YyksdTxpJiYoaT11KSxsPnImJihyPWwpLGM+byYmKG89YyksdT5hJiYoYT11KX1yZXR1cm4gdGhpcy5taW4uc2V0KGUsbixpKSx0aGlzLm1heC5zZXQocixvLGEpLHRoaXN9c2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KXtsZXQgZT0xLzAsbj0xLzAsaT0xLzAscj0tMS8wLG89LTEvMCxhPS0xLzA7Zm9yKGxldCBzPTAsbD10LmNvdW50O3M8bDtzKyspe2NvbnN0IGw9dC5nZXRYKHMpLGM9dC5nZXRZKHMpLHU9dC5nZXRaKHMpO2w8ZSYmKGU9bCksYzxuJiYobj1jKSx1PGkmJihpPXUpLGw+ciYmKHI9bCksYz5vJiYobz1jKSx1PmEmJihhPXUpfXJldHVybiB0aGlzLm1pbi5zZXQoZSxuLGkpLHRoaXMubWF4LnNldChyLG8sYSksdGhpc31zZXRGcm9tUG9pbnRzKHQpe3RoaXMubWFrZUVtcHR5KCk7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXRoaXMuZXhwYW5kQnlQb2ludCh0W2VdKTtyZXR1cm4gdGhpc31zZXRGcm9tQ2VudGVyQW5kU2l6ZSh0LGUpe2NvbnN0IG49Tkp0LmNvcHkoZSkubXVsdGlwbHlTY2FsYXIoLjUpO3JldHVybiB0aGlzLm1pbi5jb3B5KHQpLnN1YihuKSx0aGlzLm1heC5jb3B5KHQpLmFkZChuKSx0aGlzfXNldEZyb21PYmplY3QodCl7cmV0dXJuIHRoaXMubWFrZUVtcHR5KCksdGhpcy5leHBhbmRCeU9iamVjdCh0KX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQubWluKSx0aGlzLm1heC5jb3B5KHQubWF4KSx0aGlzfW1ha2VFbXB0eSgpe3JldHVybiB0aGlzLm1pbi54PXRoaXMubWluLnk9dGhpcy5taW4uej0xLzAsdGhpcy5tYXgueD10aGlzLm1heC55PXRoaXMubWF4Lno9LTEvMCx0aGlzfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5tYXgueDx0aGlzLm1pbi54fHx0aGlzLm1heC55PHRoaXMubWluLnl8fHRoaXMubWF4Lno8dGhpcy5taW4uen1nZXRDZW50ZXIodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3Quc2V0KDAsMCwwKTp0LmFkZFZlY3RvcnModGhpcy5taW4sdGhpcy5tYXgpLm11bHRpcGx5U2NhbGFyKC41KX1nZXRTaXplKHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90LnNldCgwLDAsMCk6dC5zdWJWZWN0b3JzKHRoaXMubWF4LHRoaXMubWluKX1leHBhbmRCeVBvaW50KHQpe3JldHVybiB0aGlzLm1pbi5taW4odCksdGhpcy5tYXgubWF4KHQpLHRoaXN9ZXhwYW5kQnlWZWN0b3IodCl7cmV0dXJuIHRoaXMubWluLnN1Yih0KSx0aGlzLm1heC5hZGQodCksdGhpc31leHBhbmRCeVNjYWxhcih0KXtyZXR1cm4gdGhpcy5taW4uYWRkU2NhbGFyKC10KSx0aGlzLm1heC5hZGRTY2FsYXIodCksdGhpc31leHBhbmRCeU9iamVjdCh0KXt0LnVwZGF0ZVdvcmxkTWF0cml4KCExLCExKTtjb25zdCBlPXQuZ2VvbWV0cnk7dm9pZCAwIT09ZSYmKG51bGw9PT1lLmJvdW5kaW5nQm94JiZlLmNvbXB1dGVCb3VuZGluZ0JveCgpLElKdC5jb3B5KGUuYm91bmRpbmdCb3gpLElKdC5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy51bmlvbihJSnQpKTtjb25zdCBuPXQuY2hpbGRyZW47Zm9yKGxldCB0PTAsZT1uLmxlbmd0aDt0PGU7dCsrKXRoaXMuZXhwYW5kQnlPYmplY3Qoblt0XSk7cmV0dXJuIHRoaXN9Y29udGFpbnNQb2ludCh0KXtyZXR1cm4hKHQueDx0aGlzLm1pbi54fHx0Lng+dGhpcy5tYXgueHx8dC55PHRoaXMubWluLnl8fHQueT50aGlzLm1heC55fHx0Lno8dGhpcy5taW4uenx8dC56PnRoaXMubWF4LnopfWNvbnRhaW5zQm94KHQpe3JldHVybiB0aGlzLm1pbi54PD10Lm1pbi54JiZ0Lm1heC54PD10aGlzLm1heC54JiZ0aGlzLm1pbi55PD10Lm1pbi55JiZ0Lm1heC55PD10aGlzLm1heC55JiZ0aGlzLm1pbi56PD10Lm1pbi56JiZ0Lm1heC56PD10aGlzLm1heC56fWdldFBhcmFtZXRlcih0LGUpe3JldHVybiBlLnNldCgodC54LXRoaXMubWluLngpLyh0aGlzLm1heC54LXRoaXMubWluLngpLCh0LnktdGhpcy5taW4ueSkvKHRoaXMubWF4LnktdGhpcy5taW4ueSksKHQuei10aGlzLm1pbi56KS8odGhpcy5tYXguei10aGlzLm1pbi56KSl9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4hKHQubWF4Lng8dGhpcy5taW4ueHx8dC5taW4ueD50aGlzLm1heC54fHx0Lm1heC55PHRoaXMubWluLnl8fHQubWluLnk+dGhpcy5tYXgueXx8dC5tYXguejx0aGlzLm1pbi56fHx0Lm1pbi56PnRoaXMubWF4LnopfWludGVyc2VjdHNTcGhlcmUodCl7cmV0dXJuIHRoaXMuY2xhbXBQb2ludCh0LmNlbnRlcixOSnQpLE5KdC5kaXN0YW5jZVRvU3F1YXJlZCh0LmNlbnRlcik8PXQucmFkaXVzKnQucmFkaXVzfWludGVyc2VjdHNQbGFuZSh0KXtsZXQgZSxuO3JldHVybiB0Lm5vcm1hbC54PjA/KGU9dC5ub3JtYWwueCp0aGlzLm1pbi54LG49dC5ub3JtYWwueCp0aGlzLm1heC54KTooZT10Lm5vcm1hbC54KnRoaXMubWF4Lngsbj10Lm5vcm1hbC54KnRoaXMubWluLngpLHQubm9ybWFsLnk+MD8oZSs9dC5ub3JtYWwueSp0aGlzLm1pbi55LG4rPXQubm9ybWFsLnkqdGhpcy5tYXgueSk6KGUrPXQubm9ybWFsLnkqdGhpcy5tYXgueSxuKz10Lm5vcm1hbC55KnRoaXMubWluLnkpLHQubm9ybWFsLno+MD8oZSs9dC5ub3JtYWwueip0aGlzLm1pbi56LG4rPXQubm9ybWFsLnoqdGhpcy5tYXgueik6KGUrPXQubm9ybWFsLnoqdGhpcy5tYXgueixuKz10Lm5vcm1hbC56KnRoaXMubWluLnopLGU8PS10LmNvbnN0YW50JiZuPj0tdC5jb25zdGFudH1pbnRlcnNlY3RzVHJpYW5nbGUodCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuITE7dGhpcy5nZXRDZW50ZXIoRkp0KSxWSnQuc3ViVmVjdG9ycyh0aGlzLm1heCxGSnQpLFJKdC5zdWJWZWN0b3JzKHQuYSxGSnQpLE9KdC5zdWJWZWN0b3JzKHQuYixGSnQpLHpKdC5zdWJWZWN0b3JzKHQuYyxGSnQpLERKdC5zdWJWZWN0b3JzKE9KdCxSSnQpLEJKdC5zdWJWZWN0b3JzKHpKdCxPSnQpLEhKdC5zdWJWZWN0b3JzKFJKdCx6SnQpO2xldCBlPVswLC1ESnQueixESnQueSwwLC1CSnQueixCSnQueSwwLC1ISnQueixISnQueSxESnQueiwwLC1ESnQueCxCSnQueiwwLC1CSnQueCxISnQueiwwLC1ISnQueCwtREp0LnksREp0LngsMCwtQkp0LnksQkp0LngsMCwtSEp0LnksSEp0LngsMF07cmV0dXJuISFHSnQoZSxSSnQsT0p0LHpKdCxWSnQpJiYoZT1bMSwwLDAsMCwxLDAsMCwwLDFdLCEhR0p0KGUsUkp0LE9KdCx6SnQsVkp0KSYmKFVKdC5jcm9zc1ZlY3RvcnMoREp0LEJKdCksZT1bVUp0LngsVUp0LnksVUp0LnpdLEdKdChlLFJKdCxPSnQsekp0LFZKdCkpKX1jbGFtcFBvaW50KHQsZSl7cmV0dXJuIGUuY29weSh0KS5jbGFtcCh0aGlzLm1pbix0aGlzLm1heCl9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiBOSnQuY29weSh0KS5jbGFtcCh0aGlzLm1pbix0aGlzLm1heCkuc3ViKHQpLmxlbmd0aCgpfWdldEJvdW5kaW5nU3BoZXJlKHQpe3JldHVybiB0aGlzLmdldENlbnRlcih0LmNlbnRlciksdC5yYWRpdXM9LjUqdGhpcy5nZXRTaXplKE5KdCkubGVuZ3RoKCksdH1pbnRlcnNlY3QodCl7cmV0dXJuIHRoaXMubWluLm1heCh0Lm1pbiksdGhpcy5tYXgubWluKHQubWF4KSx0aGlzLmlzRW1wdHkoKSYmdGhpcy5tYWtlRW1wdHkoKSx0aGlzfXVuaW9uKHQpe3JldHVybiB0aGlzLm1pbi5taW4odC5taW4pLHRoaXMubWF4Lm1heCh0Lm1heCksdGhpc31hcHBseU1hdHJpeDQodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpfHwoUEp0WzBdLnNldCh0aGlzLm1pbi54LHRoaXMubWluLnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLFBKdFsxXS5zZXQodGhpcy5taW4ueCx0aGlzLm1pbi55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSxQSnRbMl0uc2V0KHRoaXMubWluLngsdGhpcy5tYXgueSx0aGlzLm1pbi56KS5hcHBseU1hdHJpeDQodCksUEp0WzNdLnNldCh0aGlzLm1pbi54LHRoaXMubWF4LnksdGhpcy5tYXgueikuYXBwbHlNYXRyaXg0KHQpLFBKdFs0XS5zZXQodGhpcy5tYXgueCx0aGlzLm1pbi55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxQSnRbNV0uc2V0KHRoaXMubWF4LngsdGhpcy5taW4ueSx0aGlzLm1heC56KS5hcHBseU1hdHJpeDQodCksUEp0WzZdLnNldCh0aGlzLm1heC54LHRoaXMubWF4LnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLFBKdFs3XS5zZXQodGhpcy5tYXgueCx0aGlzLm1heC55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSx0aGlzLnNldEZyb21Qb2ludHMoUEp0KSksdGhpc310cmFuc2xhdGUodCl7cmV0dXJuIHRoaXMubWluLmFkZCh0KSx0aGlzLm1heC5hZGQodCksdGhpc31lcXVhbHModCl7cmV0dXJuIHQubWluLmVxdWFscyh0aGlzLm1pbikmJnQubWF4LmVxdWFscyh0aGlzLm1heCl9fUxKdC5wcm90b3R5cGUuaXNCb3gzPSEwO2NvbnN0IFBKdD1bbmV3IENKdCxuZXcgQ0p0LG5ldyBDSnQsbmV3IENKdCxuZXcgQ0p0LG5ldyBDSnQsbmV3IENKdCxuZXcgQ0p0XSxOSnQ9bmV3IENKdCxJSnQ9bmV3IExKdCxSSnQ9bmV3IENKdCxPSnQ9bmV3IENKdCx6SnQ9bmV3IENKdCxESnQ9bmV3IENKdCxCSnQ9bmV3IENKdCxISnQ9bmV3IENKdCxGSnQ9bmV3IENKdCxWSnQ9bmV3IENKdCxVSnQ9bmV3IENKdCxqSnQ9bmV3IENKdDtmdW5jdGlvbiBHSnQodCxlLG4saSxyKXtmb3IobGV0IG89MCxhPXQubGVuZ3RoLTM7bzw9YTtvKz0zKXtqSnQuZnJvbUFycmF5KHQsbyk7Y29uc3QgYT1yLngqTWF0aC5hYnMoakp0LngpK3IueSpNYXRoLmFicyhqSnQueSkrci56Kk1hdGguYWJzKGpKdC56KSxzPWUuZG90KGpKdCksbD1uLmRvdChqSnQpLGM9aS5kb3Qoakp0KTtpZihNYXRoLm1heCgtTWF0aC5tYXgocyxsLGMpLE1hdGgubWluKHMsbCxjKSk+YSlyZXR1cm4hMX1yZXR1cm4hMH1jb25zdCBXSnQ9bmV3IExKdCxxSnQ9bmV3IENKdCxZSnQ9bmV3IENKdCxYSnQ9bmV3IENKdDtjbGFzcyAkSnR7Y29uc3RydWN0b3IodD1uZXcgQ0p0LGU9LTEpe3RoaXMuY2VudGVyPXQsdGhpcy5yYWRpdXM9ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5jZW50ZXIuY29weSh0KSx0aGlzLnJhZGl1cz1lLHRoaXN9c2V0RnJvbVBvaW50cyh0LGUpe2NvbnN0IG49dGhpcy5jZW50ZXI7dm9pZCAwIT09ZT9uLmNvcHkoZSk6V0p0LnNldEZyb21Qb2ludHModCkuZ2V0Q2VudGVyKG4pO2xldCBpPTA7Zm9yKGxldCBlPTAscj10Lmxlbmd0aDtlPHI7ZSsrKWk9TWF0aC5tYXgoaSxuLmRpc3RhbmNlVG9TcXVhcmVkKHRbZV0pKTtyZXR1cm4gdGhpcy5yYWRpdXM9TWF0aC5zcXJ0KGkpLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpc31pc0VtcHR5KCl7cmV0dXJuIHRoaXMucmFkaXVzPDB9bWFrZUVtcHR5KCl7cmV0dXJuIHRoaXMuY2VudGVyLnNldCgwLDAsMCksdGhpcy5yYWRpdXM9LTEsdGhpc31jb250YWluc1BvaW50KHQpe3JldHVybiB0LmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuY2VudGVyKTw9dGhpcy5yYWRpdXMqdGhpcy5yYWRpdXN9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiB0LmRpc3RhbmNlVG8odGhpcy5jZW50ZXIpLXRoaXMucmFkaXVzfWludGVyc2VjdHNTcGhlcmUodCl7Y29uc3QgZT10aGlzLnJhZGl1cyt0LnJhZGl1cztyZXR1cm4gdC5jZW50ZXIuZGlzdGFuY2VUb1NxdWFyZWQodGhpcy5jZW50ZXIpPD1lKmV9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzU3BoZXJlKHRoaXMpfWludGVyc2VjdHNQbGFuZSh0KXtyZXR1cm4gTWF0aC5hYnModC5kaXN0YW5jZVRvUG9pbnQodGhpcy5jZW50ZXIpKTw9dGhpcy5yYWRpdXN9Y2xhbXBQb2ludCh0LGUpe2NvbnN0IG49dGhpcy5jZW50ZXIuZGlzdGFuY2VUb1NxdWFyZWQodCk7cmV0dXJuIGUuY29weSh0KSxuPnRoaXMucmFkaXVzKnRoaXMucmFkaXVzJiYoZS5zdWIodGhpcy5jZW50ZXIpLm5vcm1hbGl6ZSgpLGUubXVsdGlwbHlTY2FsYXIodGhpcy5yYWRpdXMpLmFkZCh0aGlzLmNlbnRlcikpLGV9Z2V0Qm91bmRpbmdCb3godCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpPyh0Lm1ha2VFbXB0eSgpLHQpOih0LnNldCh0aGlzLmNlbnRlcix0aGlzLmNlbnRlciksdC5leHBhbmRCeVNjYWxhcih0aGlzLnJhZGl1cyksdCl9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLmNlbnRlci5hcHBseU1hdHJpeDQodCksdGhpcy5yYWRpdXM9dGhpcy5yYWRpdXMqdC5nZXRNYXhTY2FsZU9uQXhpcygpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLmNlbnRlci5hZGQodCksdGhpc31leHBhbmRCeVBvaW50KHQpe1hKdC5zdWJWZWN0b3JzKHQsdGhpcy5jZW50ZXIpO2NvbnN0IGU9WEp0Lmxlbmd0aFNxKCk7aWYoZT50aGlzLnJhZGl1cyp0aGlzLnJhZGl1cyl7Y29uc3QgdD1NYXRoLnNxcnQoZSksbj0uNSoodC10aGlzLnJhZGl1cyk7dGhpcy5jZW50ZXIuYWRkKFhKdC5tdWx0aXBseVNjYWxhcihuL3QpKSx0aGlzLnJhZGl1cys9bn1yZXR1cm4gdGhpc311bmlvbih0KXtyZXR1cm4gWUp0LnN1YlZlY3RvcnModC5jZW50ZXIsdGhpcy5jZW50ZXIpLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHQucmFkaXVzKSx0aGlzLmV4cGFuZEJ5UG9pbnQocUp0LmNvcHkodC5jZW50ZXIpLmFkZChZSnQpKSx0aGlzLmV4cGFuZEJ5UG9pbnQocUp0LmNvcHkodC5jZW50ZXIpLnN1YihZSnQpKSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5jZW50ZXIuZXF1YWxzKHRoaXMuY2VudGVyKSYmdC5yYWRpdXM9PT10aGlzLnJhZGl1c31jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19Y29uc3QgS0p0PW5ldyBDSnQsWkp0PW5ldyBDSnQsSkp0PW5ldyBDSnQsUUp0PW5ldyBDSnQsdFF0PW5ldyBDSnQsZVF0PW5ldyBDSnQsblF0PW5ldyBDSnQ7Y2xhc3MgaVF0e2NvbnN0cnVjdG9yKHQ9bmV3IENKdCxlPW5ldyBDSnQoMCwwLC0xKSl7dGhpcy5vcmlnaW49dCx0aGlzLmRpcmVjdGlvbj1lfXNldCh0LGUpe3JldHVybiB0aGlzLm9yaWdpbi5jb3B5KHQpLHRoaXMuZGlyZWN0aW9uLmNvcHkoZSksdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm9yaWdpbi5jb3B5KHQub3JpZ2luKSx0aGlzLmRpcmVjdGlvbi5jb3B5KHQuZGlyZWN0aW9uKSx0aGlzfWF0KHQsZSl7cmV0dXJuIGUuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIodCkuYWRkKHRoaXMub3JpZ2luKX1sb29rQXQodCl7cmV0dXJuIHRoaXMuZGlyZWN0aW9uLmNvcHkodCkuc3ViKHRoaXMub3JpZ2luKS5ub3JtYWxpemUoKSx0aGlzfXJlY2FzdCh0KXtyZXR1cm4gdGhpcy5vcmlnaW4uY29weSh0aGlzLmF0KHQsS0p0KSksdGhpc31jbG9zZXN0UG9pbnRUb1BvaW50KHQsZSl7ZS5zdWJWZWN0b3JzKHQsdGhpcy5vcmlnaW4pO2NvbnN0IG49ZS5kb3QodGhpcy5kaXJlY3Rpb24pO3JldHVybiBuPDA/ZS5jb3B5KHRoaXMub3JpZ2luKTplLmNvcHkodGhpcy5kaXJlY3Rpb24pLm11bHRpcGx5U2NhbGFyKG4pLmFkZCh0aGlzLm9yaWdpbil9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiBNYXRoLnNxcnQodGhpcy5kaXN0YW5jZVNxVG9Qb2ludCh0KSl9ZGlzdGFuY2VTcVRvUG9pbnQodCl7Y29uc3QgZT1LSnQuc3ViVmVjdG9ycyh0LHRoaXMub3JpZ2luKS5kb3QodGhpcy5kaXJlY3Rpb24pO3JldHVybiBlPDA/dGhpcy5vcmlnaW4uZGlzdGFuY2VUb1NxdWFyZWQodCk6KEtKdC5jb3B5KHRoaXMuZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcihlKS5hZGQodGhpcy5vcmlnaW4pLEtKdC5kaXN0YW5jZVRvU3F1YXJlZCh0KSl9ZGlzdGFuY2VTcVRvU2VnbWVudCh0LGUsbixpKXtaSnQuY29weSh0KS5hZGQoZSkubXVsdGlwbHlTY2FsYXIoLjUpLEpKdC5jb3B5KGUpLnN1Yih0KS5ub3JtYWxpemUoKSxRSnQuY29weSh0aGlzLm9yaWdpbikuc3ViKFpKdCk7Y29uc3Qgcj0uNSp0LmRpc3RhbmNlVG8oZSksbz0tdGhpcy5kaXJlY3Rpb24uZG90KEpKdCksYT1RSnQuZG90KHRoaXMuZGlyZWN0aW9uKSxzPS1RSnQuZG90KEpKdCksbD1RSnQubGVuZ3RoU3EoKSxjPU1hdGguYWJzKDEtbypvKTtsZXQgdSxoLGQscDtpZihjPjApaWYodT1vKnMtYSxoPW8qYS1zLHA9cipjLHU+PTApaWYoaD49LXApaWYoaDw9cCl7Y29uc3QgdD0xL2M7dSo9dCxoKj10LGQ9dSoodStvKmgrMiphKStoKihvKnUraCsyKnMpK2x9ZWxzZSBoPXIsdT1NYXRoLm1heCgwLC0obypoK2EpKSxkPS11KnUraCooaCsyKnMpK2w7ZWxzZSBoPS1yLHU9TWF0aC5tYXgoMCwtKG8qaCthKSksZD0tdSp1K2gqKGgrMipzKStsO2Vsc2UgaDw9LXA/KHU9TWF0aC5tYXgoMCwtKC1vKnIrYSkpLGg9dT4wPy1yOk1hdGgubWluKE1hdGgubWF4KC1yLC1zKSxyKSxkPS11KnUraCooaCsyKnMpK2wpOmg8PXA/KHU9MCxoPU1hdGgubWluKE1hdGgubWF4KC1yLC1zKSxyKSxkPWgqKGgrMipzKStsKToodT1NYXRoLm1heCgwLC0obypyK2EpKSxoPXU+MD9yOk1hdGgubWluKE1hdGgubWF4KC1yLC1zKSxyKSxkPS11KnUraCooaCsyKnMpK2wpO2Vsc2UgaD1vPjA/LXI6cix1PU1hdGgubWF4KDAsLShvKmgrYSkpLGQ9LXUqdStoKihoKzIqcykrbDtyZXR1cm4gbiYmbi5jb3B5KHRoaXMuZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcih1KS5hZGQodGhpcy5vcmlnaW4pLGkmJmkuY29weShKSnQpLm11bHRpcGx5U2NhbGFyKGgpLmFkZChaSnQpLGR9aW50ZXJzZWN0U3BoZXJlKHQsZSl7S0p0LnN1YlZlY3RvcnModC5jZW50ZXIsdGhpcy5vcmlnaW4pO2NvbnN0IG49S0p0LmRvdCh0aGlzLmRpcmVjdGlvbiksaT1LSnQuZG90KEtKdCktbipuLHI9dC5yYWRpdXMqdC5yYWRpdXM7aWYoaT5yKXJldHVybiBudWxsO2NvbnN0IG89TWF0aC5zcXJ0KHItaSksYT1uLW8scz1uK287cmV0dXJuIGE8MCYmczwwP251bGw6dGhpcy5hdChhPDA/czphLGUpfWludGVyc2VjdHNTcGhlcmUodCl7cmV0dXJuIHRoaXMuZGlzdGFuY2VTcVRvUG9pbnQodC5jZW50ZXIpPD10LnJhZGl1cyp0LnJhZGl1c31kaXN0YW5jZVRvUGxhbmUodCl7Y29uc3QgZT10Lm5vcm1hbC5kb3QodGhpcy5kaXJlY3Rpb24pO2lmKDA9PT1lKXJldHVybiAwPT09dC5kaXN0YW5jZVRvUG9pbnQodGhpcy5vcmlnaW4pPzA6bnVsbDtjb25zdCBuPS0odGhpcy5vcmlnaW4uZG90KHQubm9ybWFsKSt0LmNvbnN0YW50KS9lO3JldHVybiBuPj0wP246bnVsbH1pbnRlcnNlY3RQbGFuZSh0LGUpe2NvbnN0IG49dGhpcy5kaXN0YW5jZVRvUGxhbmUodCk7cmV0dXJuIG51bGw9PT1uP251bGw6dGhpcy5hdChuLGUpfWludGVyc2VjdHNQbGFuZSh0KXtjb25zdCBlPXQuZGlzdGFuY2VUb1BvaW50KHRoaXMub3JpZ2luKTtyZXR1cm4gMD09PWV8fHQubm9ybWFsLmRvdCh0aGlzLmRpcmVjdGlvbikqZTwwfWludGVyc2VjdEJveCh0LGUpe2xldCBuLGkscixvLGEscztjb25zdCBsPTEvdGhpcy5kaXJlY3Rpb24ueCxjPTEvdGhpcy5kaXJlY3Rpb24ueSx1PTEvdGhpcy5kaXJlY3Rpb24ueixoPXRoaXMub3JpZ2luO3JldHVybiBsPj0wPyhuPSh0Lm1pbi54LWgueCkqbCxpPSh0Lm1heC54LWgueCkqbCk6KG49KHQubWF4LngtaC54KSpsLGk9KHQubWluLngtaC54KSpsKSxjPj0wPyhyPSh0Lm1pbi55LWgueSkqYyxvPSh0Lm1heC55LWgueSkqYyk6KHI9KHQubWF4LnktaC55KSpjLG89KHQubWluLnktaC55KSpjKSxuPm98fHI+aT9udWxsOigocj5ufHxuIT1uKSYmKG49ciksKG88aXx8aSE9aSkmJihpPW8pLHU+PTA/KGE9KHQubWluLnotaC56KSp1LHM9KHQubWF4LnotaC56KSp1KTooYT0odC5tYXguei1oLnopKnUscz0odC5taW4uei1oLnopKnUpLG4+c3x8YT5pP251bGw6KChhPm58fG4hPW4pJiYobj1hKSwoczxpfHxpIT1pKSYmKGk9cyksaTwwP251bGw6dGhpcy5hdChuPj0wP246aSxlKSkpfWludGVyc2VjdHNCb3godCl7cmV0dXJuIG51bGwhPT10aGlzLmludGVyc2VjdEJveCh0LEtKdCl9aW50ZXJzZWN0VHJpYW5nbGUodCxlLG4saSxyKXt0UXQuc3ViVmVjdG9ycyhlLHQpLGVRdC5zdWJWZWN0b3JzKG4sdCksblF0LmNyb3NzVmVjdG9ycyh0UXQsZVF0KTtsZXQgbyxhPXRoaXMuZGlyZWN0aW9uLmRvdChuUXQpO2lmKGE+MCl7aWYoaSlyZXR1cm4gbnVsbDtvPTF9ZWxzZXtpZighKGE8MCkpcmV0dXJuIG51bGw7bz0tMSxhPS1hfVFKdC5zdWJWZWN0b3JzKHRoaXMub3JpZ2luLHQpO2NvbnN0IHM9byp0aGlzLmRpcmVjdGlvbi5kb3QoZVF0LmNyb3NzVmVjdG9ycyhRSnQsZVF0KSk7aWYoczwwKXJldHVybiBudWxsO2NvbnN0IGw9byp0aGlzLmRpcmVjdGlvbi5kb3QodFF0LmNyb3NzKFFKdCkpO2lmKGw8MClyZXR1cm4gbnVsbDtpZihzK2w+YSlyZXR1cm4gbnVsbDtjb25zdCBjPS1vKlFKdC5kb3QoblF0KTtyZXR1cm4gYzwwP251bGw6dGhpcy5hdChjL2Escil9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLm9yaWdpbi5hcHBseU1hdHJpeDQodCksdGhpcy5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm9yaWdpbi5lcXVhbHModGhpcy5vcmlnaW4pJiZ0LmRpcmVjdGlvbi5lcXVhbHModGhpcy5kaXJlY3Rpb24pfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX1jbGFzcyByUXR7Y29uc3RydWN0b3IoKXt0aGlzLmVsZW1lbnRzPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSxhcmd1bWVudHMubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IHRoZSBjb25zdHJ1Y3RvciBubyBsb25nZXIgcmVhZHMgYXJndW1lbnRzLiB1c2UgLnNldCgpIGluc3RlYWQuIil9c2V0KHQsZSxuLGkscixvLGEscyxsLGMsdSxoLGQscCxmLG0pe2NvbnN0IGc9dGhpcy5lbGVtZW50cztyZXR1cm4gZ1swXT10LGdbNF09ZSxnWzhdPW4sZ1sxMl09aSxnWzFdPXIsZ1s1XT1vLGdbOV09YSxnWzEzXT1zLGdbMl09bCxnWzZdPWMsZ1sxMF09dSxnWzE0XT1oLGdbM109ZCxnWzddPXAsZ1sxMV09ZixnWzE1XT1tLHRoaXN9aWRlbnRpdHkoKXtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMSksdGhpc31jbG9uZSgpe3JldHVybihuZXcgclF0KS5mcm9tQXJyYXkodGhpcy5lbGVtZW50cyl9Y29weSh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzO3JldHVybiBlWzBdPW5bMF0sZVsxXT1uWzFdLGVbMl09blsyXSxlWzNdPW5bM10sZVs0XT1uWzRdLGVbNV09bls1XSxlWzZdPW5bNl0sZVs3XT1uWzddLGVbOF09bls4XSxlWzldPW5bOV0sZVsxMF09blsxMF0sZVsxMV09blsxMV0sZVsxMl09blsxMl0sZVsxM109blsxM10sZVsxNF09blsxNF0sZVsxNV09blsxNV0sdGhpc31jb3B5UG9zaXRpb24odCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztyZXR1cm4gZVsxMl09blsxMl0sZVsxM109blsxM10sZVsxNF09blsxNF0sdGhpc31zZXRGcm9tTWF0cml4Myh0KXtjb25zdCBlPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMuc2V0KGVbMF0sZVszXSxlWzZdLDAsZVsxXSxlWzRdLGVbN10sMCxlWzJdLGVbNV0sZVs4XSwwLDAsMCwwLDEpLHRoaXN9ZXh0cmFjdEJhc2lzKHQsZSxuKXtyZXR1cm4gdC5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMCksZS5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMSksbi5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMiksdGhpc31tYWtlQmFzaXModCxlLG4pe3JldHVybiB0aGlzLnNldCh0LngsZS54LG4ueCwwLHQueSxlLnksbi55LDAsdC56LGUueixuLnosMCwwLDAsMCwxKSx0aGlzfWV4dHJhY3RSb3RhdGlvbih0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzLGk9MS9vUXQuc2V0RnJvbU1hdHJpeENvbHVtbih0LDApLmxlbmd0aCgpLHI9MS9vUXQuc2V0RnJvbU1hdHJpeENvbHVtbih0LDEpLmxlbmd0aCgpLG89MS9vUXQuc2V0RnJvbU1hdHJpeENvbHVtbih0LDIpLmxlbmd0aCgpO3JldHVybiBlWzBdPW5bMF0qaSxlWzFdPW5bMV0qaSxlWzJdPW5bMl0qaSxlWzNdPTAsZVs0XT1uWzRdKnIsZVs1XT1uWzVdKnIsZVs2XT1uWzZdKnIsZVs3XT0wLGVbOF09bls4XSpvLGVbOV09bls5XSpvLGVbMTBdPW5bMTBdKm8sZVsxMV09MCxlWzEyXT0wLGVbMTNdPTAsZVsxNF09MCxlWzE1XT0xLHRoaXN9bWFrZVJvdGF0aW9uRnJvbUV1bGVyKHQpe3QmJnQuaXNFdWxlcnx8Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLm1ha2VSb3RhdGlvbkZyb21FdWxlcigpIG5vdyBleHBlY3RzIGEgRXVsZXIgcm90YXRpb24gcmF0aGVyIHRoYW4gYSBWZWN0b3IzIGFuZCBvcmRlci4iKTtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LngsaT10Lnkscj10Lnosbz1NYXRoLmNvcyhuKSxhPU1hdGguc2luKG4pLHM9TWF0aC5jb3MoaSksbD1NYXRoLnNpbihpKSxjPU1hdGguY29zKHIpLHU9TWF0aC5zaW4ocik7aWYoIlhZWiI9PT10Lm9yZGVyKXtjb25zdCB0PW8qYyxuPW8qdSxpPWEqYyxyPWEqdTtlWzBdPXMqYyxlWzRdPS1zKnUsZVs4XT1sLGVbMV09bitpKmwsZVs1XT10LXIqbCxlWzldPS1hKnMsZVsyXT1yLXQqbCxlWzZdPWkrbipsLGVbMTBdPW8qc31lbHNlIGlmKCJZWFoiPT09dC5vcmRlcil7Y29uc3QgdD1zKmMsbj1zKnUsaT1sKmMscj1sKnU7ZVswXT10K3IqYSxlWzRdPWkqYS1uLGVbOF09bypsLGVbMV09byp1LGVbNV09bypjLGVbOV09LWEsZVsyXT1uKmEtaSxlWzZdPXIrdCphLGVbMTBdPW8qc31lbHNlIGlmKCJaWFkiPT09dC5vcmRlcil7Y29uc3QgdD1zKmMsbj1zKnUsaT1sKmMscj1sKnU7ZVswXT10LXIqYSxlWzRdPS1vKnUsZVs4XT1pK24qYSxlWzFdPW4raSphLGVbNV09bypjLGVbOV09ci10KmEsZVsyXT0tbypsLGVbNl09YSxlWzEwXT1vKnN9ZWxzZSBpZigiWllYIj09PXQub3JkZXIpe2NvbnN0IHQ9bypjLG49byp1LGk9YSpjLHI9YSp1O2VbMF09cypjLGVbNF09aSpsLW4sZVs4XT10KmwrcixlWzFdPXMqdSxlWzVdPXIqbCt0LGVbOV09bipsLWksZVsyXT0tbCxlWzZdPWEqcyxlWzEwXT1vKnN9ZWxzZSBpZigiWVpYIj09PXQub3JkZXIpe2NvbnN0IHQ9bypzLG49bypsLGk9YSpzLHI9YSpsO2VbMF09cypjLGVbNF09ci10KnUsZVs4XT1pKnUrbixlWzFdPXUsZVs1XT1vKmMsZVs5XT0tYSpjLGVbMl09LWwqYyxlWzZdPW4qdStpLGVbMTBdPXQtcip1fWVsc2UgaWYoIlhaWSI9PT10Lm9yZGVyKXtjb25zdCB0PW8qcyxuPW8qbCxpPWEqcyxyPWEqbDtlWzBdPXMqYyxlWzRdPS11LGVbOF09bCpjLGVbMV09dCp1K3IsZVs1XT1vKmMsZVs5XT1uKnUtaSxlWzJdPWkqdS1uLGVbNl09YSpjLGVbMTBdPXIqdSt0fXJldHVybiBlWzNdPTAsZVs3XT0wLGVbMTFdPTAsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTAsZVsxNV09MSx0aGlzfW1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpe3JldHVybiB0aGlzLmNvbXBvc2Uoc1F0LHQsbFF0KX1sb29rQXQodCxlLG4pe2NvbnN0IGk9dGhpcy5lbGVtZW50cztyZXR1cm4gaFF0LnN1YlZlY3RvcnModCxlKSwwPT09aFF0Lmxlbmd0aFNxKCkmJihoUXQuej0xKSxoUXQubm9ybWFsaXplKCksY1F0LmNyb3NzVmVjdG9ycyhuLGhRdCksMD09PWNRdC5sZW5ndGhTcSgpJiYoMT09PU1hdGguYWJzKG4ueik/aFF0LngrPTFlLTQ6aFF0LnorPTFlLTQsaFF0Lm5vcm1hbGl6ZSgpLGNRdC5jcm9zc1ZlY3RvcnMobixoUXQpKSxjUXQubm9ybWFsaXplKCksdVF0LmNyb3NzVmVjdG9ycyhoUXQsY1F0KSxpWzBdPWNRdC54LGlbNF09dVF0LngsaVs4XT1oUXQueCxpWzFdPWNRdC55LGlbNV09dVF0LnksaVs5XT1oUXQueSxpWzJdPWNRdC56LGlbNl09dVF0LnosaVsxMF09aFF0LnosdGhpc31tdWx0aXBseSh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseSgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLm11bHRpcGx5TWF0cmljZXMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0LGUpKTp0aGlzLm11bHRpcGx5TWF0cmljZXModGhpcyx0KX1wcmVtdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5tdWx0aXBseU1hdHJpY2VzKHQsdGhpcyl9bXVsdGlwbHlNYXRyaWNlcyh0LGUpe2NvbnN0IG49dC5lbGVtZW50cyxpPWUuZWxlbWVudHMscj10aGlzLmVsZW1lbnRzLG89blswXSxhPW5bNF0scz1uWzhdLGw9blsxMl0sYz1uWzFdLHU9bls1XSxoPW5bOV0sZD1uWzEzXSxwPW5bMl0sZj1uWzZdLG09blsxMF0sZz1uWzE0XSxfPW5bM10seT1uWzddLHY9blsxMV0sYj1uWzE1XSx4PWlbMF0sdz1pWzRdLFM9aVs4XSxNPWlbMTJdLEU9aVsxXSxUPWlbNV0sQz1pWzldLEE9aVsxM10saz1pWzJdLEw9aVs2XSxQPWlbMTBdLE49aVsxNF0sST1pWzNdLFI9aVs3XSxPPWlbMTFdLHo9aVsxNV07cmV0dXJuIHJbMF09byp4K2EqRStzKmsrbCpJLHJbNF09byp3K2EqVCtzKkwrbCpSLHJbOF09bypTK2EqQytzKlArbCpPLHJbMTJdPW8qTSthKkErcypOK2wqeixyWzFdPWMqeCt1KkUraCprK2QqSSxyWzVdPWMqdyt1KlQraCpMK2QqUixyWzldPWMqUyt1KkMraCpQK2QqTyxyWzEzXT1jKk0rdSpBK2gqTitkKnosclsyXT1wKngrZipFK20qaytnKkkscls2XT1wKncrZipUK20qTCtnKlIsclsxMF09cCpTK2YqQyttKlArZypPLHJbMTRdPXAqTStmKkErbSpOK2cqeixyWzNdPV8qeCt5KkUrdiprK2IqSSxyWzddPV8qdyt5KlQrdipMK2IqUixyWzExXT1fKlMreSpDK3YqUCtiKk8sclsxNV09XypNK3kqQSt2Kk4rYip6LHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzO3JldHVybiBlWzBdKj10LGVbNF0qPXQsZVs4XSo9dCxlWzEyXSo9dCxlWzFdKj10LGVbNV0qPXQsZVs5XSo9dCxlWzEzXSo9dCxlWzJdKj10LGVbNl0qPXQsZVsxMF0qPXQsZVsxNF0qPXQsZVszXSo9dCxlWzddKj10LGVbMTFdKj10LGVbMTVdKj10LHRoaXN9ZGV0ZXJtaW5hbnQoKXtjb25zdCB0PXRoaXMuZWxlbWVudHMsZT10WzBdLG49dFs0XSxpPXRbOF0scj10WzEyXSxvPXRbMV0sYT10WzVdLHM9dFs5XSxsPXRbMTNdLGM9dFsyXSx1PXRbNl0saD10WzEwXSxkPXRbMTRdO3JldHVybiB0WzNdKigrcipzKnUtaSpsKnUtciphKmgrbipsKmgraSphKmQtbipzKmQpK3RbN10qKCtlKnMqZC1lKmwqaCtyKm8qaC1pKm8qZCtpKmwqYy1yKnMqYykrdFsxMV0qKCtlKmwqdS1lKmEqZC1yKm8qdStuKm8qZCtyKmEqYy1uKmwqYykrdFsxNV0qKC1pKmEqYy1lKnMqdStlKmEqaCtpKm8qdS1uKm8qaCtuKnMqYyl9dHJhbnNwb3NlKCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzO2xldCBlO3JldHVybiBlPXRbMV0sdFsxXT10WzRdLHRbNF09ZSxlPXRbMl0sdFsyXT10WzhdLHRbOF09ZSxlPXRbNl0sdFs2XT10WzldLHRbOV09ZSxlPXRbM10sdFszXT10WzEyXSx0WzEyXT1lLGU9dFs3XSx0WzddPXRbMTNdLHRbMTNdPWUsZT10WzExXSx0WzExXT10WzE0XSx0WzE0XT1lLHRoaXN9c2V0UG9zaXRpb24odCxlLG4pe2NvbnN0IGk9dGhpcy5lbGVtZW50cztyZXR1cm4gdC5pc1ZlY3RvcjM/KGlbMTJdPXQueCxpWzEzXT10LnksaVsxNF09dC56KTooaVsxMl09dCxpWzEzXT1lLGlbMTRdPW4pLHRoaXN9aW52ZXJ0KCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxuPXRbMV0saT10WzJdLHI9dFszXSxvPXRbNF0sYT10WzVdLHM9dFs2XSxsPXRbN10sYz10WzhdLHU9dFs5XSxoPXRbMTBdLGQ9dFsxMV0scD10WzEyXSxmPXRbMTNdLG09dFsxNF0sZz10WzE1XSxfPXUqbSpsLWYqaCpsK2YqcypkLWEqbSpkLXUqcypnK2EqaCpnLHk9cCpoKmwtYyptKmwtcCpzKmQrbyptKmQrYypzKmctbypoKmcsdj1jKmYqbC1wKnUqbCtwKmEqZC1vKmYqZC1jKmEqZytvKnUqZyxiPXAqdSpzLWMqZipzLXAqYSpoK28qZipoK2MqYSptLW8qdSptLHg9ZSpfK24qeStpKnYrcipiO2lmKDA9PT14KXJldHVybiB0aGlzLnNldCgwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwKTtjb25zdCB3PTEveDtyZXR1cm4gdFswXT1fKncsdFsxXT0oZipoKnItdSptKnItZippKmQrbiptKmQrdSppKmctbipoKmcpKncsdFsyXT0oYSptKnItZipzKnIrZippKmwtbiptKmwtYSppKmcrbipzKmcpKncsdFszXT0odSpzKnItYSpoKnItdSppKmwrbipoKmwrYSppKmQtbipzKmQpKncsdFs0XT15KncsdFs1XT0oYyptKnItcCpoKnIrcCppKmQtZSptKmQtYyppKmcrZSpoKmcpKncsdFs2XT0ocCpzKnItbyptKnItcCppKmwrZSptKmwrbyppKmctZSpzKmcpKncsdFs3XT0obypoKnItYypzKnIrYyppKmwtZSpoKmwtbyppKmQrZSpzKmQpKncsdFs4XT12KncsdFs5XT0ocCp1KnItYypmKnItcCpuKmQrZSpmKmQrYypuKmctZSp1KmcpKncsdFsxMF09KG8qZipyLXAqYSpyK3AqbipsLWUqZipsLW8qbipnK2UqYSpnKSp3LHRbMTFdPShjKmEqci1vKnUqci1jKm4qbCtlKnUqbCtvKm4qZC1lKmEqZCkqdyx0WzEyXT1iKncsdFsxM109KGMqZippLXAqdSppK3AqbipoLWUqZipoLWMqbiptK2UqdSptKSp3LHRbMTRdPShwKmEqaS1vKmYqaS1wKm4qcytlKmYqcytvKm4qbS1lKmEqbSkqdyx0WzE1XT0obyp1KmktYyphKmkrYypuKnMtZSp1KnMtbypuKmgrZSphKmgpKncsdGhpc31zY2FsZSh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LngsaT10Lnkscj10Lno7cmV0dXJuIGVbMF0qPW4sZVs0XSo9aSxlWzhdKj1yLGVbMV0qPW4sZVs1XSo9aSxlWzldKj1yLGVbMl0qPW4sZVs2XSo9aSxlWzEwXSo9cixlWzNdKj1uLGVbN10qPWksZVsxMV0qPXIsdGhpc31nZXRNYXhTY2FsZU9uQXhpcygpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cztyZXR1cm4gTWF0aC5zcXJ0KE1hdGgubWF4KHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdLHRbNF0qdFs0XSt0WzVdKnRbNV0rdFs2XSp0WzZdLHRbOF0qdFs4XSt0WzldKnRbOV0rdFsxMF0qdFsxMF0pKX1tYWtlVHJhbnNsYXRpb24odCxlLG4pe3JldHVybiB0aGlzLnNldCgxLDAsMCx0LDAsMSwwLGUsMCwwLDEsbiwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvblgodCl7Y29uc3QgZT1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpO3JldHVybiB0aGlzLnNldCgxLDAsMCwwLDAsZSwtbiwwLDAsbixlLDAsMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25ZKHQpe2NvbnN0IGU9TWF0aC5jb3ModCksbj1NYXRoLnNpbih0KTtyZXR1cm4gdGhpcy5zZXQoZSwwLG4sMCwwLDEsMCwwLC1uLDAsZSwwLDAsMCwwLDEpLHRoaXN9bWFrZVJvdGF0aW9uWih0KXtjb25zdCBlPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCk7cmV0dXJuIHRoaXMuc2V0KGUsLW4sMCwwLG4sZSwwLDAsMCwwLDEsMCwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvbkF4aXModCxlKXtjb25zdCBuPU1hdGguY29zKGUpLGk9TWF0aC5zaW4oZSkscj0xLW4sbz10LngsYT10Lnkscz10LnosbD1yKm8sYz1yKmE7cmV0dXJuIHRoaXMuc2V0KGwqbytuLGwqYS1pKnMsbCpzK2kqYSwwLGwqYStpKnMsYyphK24sYypzLWkqbywwLGwqcy1pKmEsYypzK2kqbyxyKnMqcytuLDAsMCwwLDAsMSksdGhpc31tYWtlU2NhbGUodCxlLG4pe3JldHVybiB0aGlzLnNldCh0LDAsMCwwLDAsZSwwLDAsMCwwLG4sMCwwLDAsMCwxKSx0aGlzfW1ha2VTaGVhcih0LGUsbixpLHIsbyl7cmV0dXJuIHRoaXMuc2V0KDEsbixyLDAsdCwxLG8sMCxlLGksMSwwLDAsMCwwLDEpLHRoaXN9Y29tcG9zZSh0LGUsbil7Y29uc3QgaT10aGlzLmVsZW1lbnRzLHI9ZS5feCxvPWUuX3ksYT1lLl96LHM9ZS5fdyxsPXIrcixjPW8rbyx1PWErYSxoPXIqbCxkPXIqYyxwPXIqdSxmPW8qYyxtPW8qdSxnPWEqdSxfPXMqbCx5PXMqYyx2PXMqdSxiPW4ueCx4PW4ueSx3PW4uejtyZXR1cm4gaVswXT0oMS0oZitnKSkqYixpWzFdPShkK3YpKmIsaVsyXT0ocC15KSpiLGlbM109MCxpWzRdPShkLXYpKngsaVs1XT0oMS0oaCtnKSkqeCxpWzZdPShtK18pKngsaVs3XT0wLGlbOF09KHAreSkqdyxpWzldPShtLV8pKncsaVsxMF09KDEtKGgrZikpKncsaVsxMV09MCxpWzEyXT10LngsaVsxM109dC55LGlbMTRdPXQueixpWzE1XT0xLHRoaXN9ZGVjb21wb3NlKHQsZSxuKXtjb25zdCBpPXRoaXMuZWxlbWVudHM7bGV0IHI9b1F0LnNldChpWzBdLGlbMV0saVsyXSkubGVuZ3RoKCk7Y29uc3Qgbz1vUXQuc2V0KGlbNF0saVs1XSxpWzZdKS5sZW5ndGgoKSxhPW9RdC5zZXQoaVs4XSxpWzldLGlbMTBdKS5sZW5ndGgoKTt0aGlzLmRldGVybWluYW50KCk8MCYmKHI9LXIpLHQueD1pWzEyXSx0Lnk9aVsxM10sdC56PWlbMTRdLGFRdC5jb3B5KHRoaXMpO2NvbnN0IHM9MS9yLGw9MS9vLGM9MS9hO3JldHVybiBhUXQuZWxlbWVudHNbMF0qPXMsYVF0LmVsZW1lbnRzWzFdKj1zLGFRdC5lbGVtZW50c1syXSo9cyxhUXQuZWxlbWVudHNbNF0qPWwsYVF0LmVsZW1lbnRzWzVdKj1sLGFRdC5lbGVtZW50c1s2XSo9bCxhUXQuZWxlbWVudHNbOF0qPWMsYVF0LmVsZW1lbnRzWzldKj1jLGFRdC5lbGVtZW50c1sxMF0qPWMsZS5zZXRGcm9tUm90YXRpb25NYXRyaXgoYVF0KSxuLng9cixuLnk9byxuLno9YSx0aGlzfW1ha2VQZXJzcGVjdGl2ZSh0LGUsbixpLHIsbyl7dm9pZCAwPT09byYmY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubWFrZVBlcnNwZWN0aXZlKCkgaGFzIGJlZW4gcmVkZWZpbmVkIGFuZCBoYXMgYSBuZXcgc2lnbmF0dXJlLiBQbGVhc2UgY2hlY2sgdGhlIGRvY3MuIik7Y29uc3QgYT10aGlzLmVsZW1lbnRzLHM9MipyLyhuLWkpLGw9KGUrdCkvKGUtdCksYz0obitpKS8obi1pKSx1PS0obytyKS8oby1yKSxoPS0yKm8qci8oby1yKTtyZXR1cm4gYVswXT0yKnIvKGUtdCksYVs0XT0wLGFbOF09bCxhWzEyXT0wLGFbMV09MCxhWzVdPXMsYVs5XT1jLGFbMTNdPTAsYVsyXT0wLGFbNl09MCxhWzEwXT11LGFbMTRdPWgsYVszXT0wLGFbN109MCxhWzExXT0tMSxhWzE1XT0wLHRoaXN9bWFrZU9ydGhvZ3JhcGhpYyh0LGUsbixpLHIsbyl7Y29uc3QgYT10aGlzLmVsZW1lbnRzLHM9MS8oZS10KSxsPTEvKG4taSksYz0xLyhvLXIpLHU9KGUrdCkqcyxoPShuK2kpKmwsZD0obytyKSpjO3JldHVybiBhWzBdPTIqcyxhWzRdPTAsYVs4XT0wLGFbMTJdPS11LGFbMV09MCxhWzVdPTIqbCxhWzldPTAsYVsxM109LWgsYVsyXT0wLGFbNl09MCxhWzEwXT0tMipjLGFbMTRdPS1kLGFbM109MCxhWzddPTAsYVsxMV09MCxhWzE1XT0xLHRoaXN9ZXF1YWxzKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7Zm9yKGxldCB0PTA7dDwxNjt0KyspaWYoZVt0XSE9PW5bdF0pcmV0dXJuITE7cmV0dXJuITB9ZnJvbUFycmF5KHQsZT0wKXtmb3IobGV0IG49MDtuPDE2O24rKyl0aGlzLmVsZW1lbnRzW25dPXRbbitlXTtyZXR1cm4gdGhpc310b0FycmF5KHQ9W10sZT0wKXtjb25zdCBuPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbZV09blswXSx0W2UrMV09blsxXSx0W2UrMl09blsyXSx0W2UrM109blszXSx0W2UrNF09bls0XSx0W2UrNV09bls1XSx0W2UrNl09bls2XSx0W2UrN109bls3XSx0W2UrOF09bls4XSx0W2UrOV09bls5XSx0W2UrMTBdPW5bMTBdLHRbZSsxMV09blsxMV0sdFtlKzEyXT1uWzEyXSx0W2UrMTNdPW5bMTNdLHRbZSsxNF09blsxNF0sdFtlKzE1XT1uWzE1XSx0fX1yUXQucHJvdG90eXBlLmlzTWF0cml4ND0hMDtjb25zdCBvUXQ9bmV3IENKdCxhUXQ9bmV3IHJRdCxzUXQ9bmV3IENKdCgwLDAsMCksbFF0PW5ldyBDSnQoMSwxLDEpLGNRdD1uZXcgQ0p0LHVRdD1uZXcgQ0p0LGhRdD1uZXcgQ0p0LGRRdD1uZXcgclF0LHBRdD1uZXcgVEp0O2NsYXNzIGZRdHtjb25zdHJ1Y3Rvcih0PTAsZT0wLG49MCxpPWZRdC5EZWZhdWx0T3JkZXIpe3RoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1uLHRoaXMuX29yZGVyPWl9Z2V0IHgoKXtyZXR1cm4gdGhpcy5feH1zZXQgeCh0KXt0aGlzLl94PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB5KCl7cmV0dXJuIHRoaXMuX3l9c2V0IHkodCl7dGhpcy5feT10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeigpe3JldHVybiB0aGlzLl96fXNldCB6KHQpe3RoaXMuX3o9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IG9yZGVyKCl7cmV0dXJuIHRoaXMuX29yZGVyfXNldCBvcmRlcih0KXt0aGlzLl9vcmRlcj10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1zZXQodCxlLG4saT10aGlzLl9vcmRlcil7cmV0dXJuIHRoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1uLHRoaXMuX29yZGVyPWksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5feCx0aGlzLl95LHRoaXMuX3osdGhpcy5fb3JkZXIpfWNvcHkodCl7cmV0dXJuIHRoaXMuX3g9dC5feCx0aGlzLl95PXQuX3ksdGhpcy5fej10Ll96LHRoaXMuX29yZGVyPXQuX29yZGVyLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21Sb3RhdGlvbk1hdHJpeCh0LGU9dGhpcy5fb3JkZXIsbj0hMCl7Y29uc3QgaT10LmVsZW1lbnRzLHI9aVswXSxvPWlbNF0sYT1pWzhdLHM9aVsxXSxsPWlbNV0sYz1pWzldLHU9aVsyXSxoPWlbNl0sZD1pWzEwXTtzd2l0Y2goZSl7Y2FzZSJYWVoiOnRoaXMuX3k9TWF0aC5hc2luKCRadChhLC0xLDEpKSxNYXRoLmFicyhhKTwuOTk5OTk5OT8odGhpcy5feD1NYXRoLmF0YW4yKC1jLGQpLHRoaXMuX3o9TWF0aC5hdGFuMigtbyxyKSk6KHRoaXMuX3g9TWF0aC5hdGFuMihoLGwpLHRoaXMuX3o9MCk7YnJlYWs7Y2FzZSJZWFoiOnRoaXMuX3g9TWF0aC5hc2luKC0kWnQoYywtMSwxKSksTWF0aC5hYnMoYyk8Ljk5OTk5OTk/KHRoaXMuX3k9TWF0aC5hdGFuMihhLGQpLHRoaXMuX3o9TWF0aC5hdGFuMihzLGwpKToodGhpcy5feT1NYXRoLmF0YW4yKC11LHIpLHRoaXMuX3o9MCk7YnJlYWs7Y2FzZSJaWFkiOnRoaXMuX3g9TWF0aC5hc2luKCRadChoLC0xLDEpKSxNYXRoLmFicyhoKTwuOTk5OTk5OT8odGhpcy5feT1NYXRoLmF0YW4yKC11LGQpLHRoaXMuX3o9TWF0aC5hdGFuMigtbyxsKSk6KHRoaXMuX3k9MCx0aGlzLl96PU1hdGguYXRhbjIocyxyKSk7YnJlYWs7Y2FzZSJaWVgiOnRoaXMuX3k9TWF0aC5hc2luKC0kWnQodSwtMSwxKSksTWF0aC5hYnModSk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMihoLGQpLHRoaXMuX3o9TWF0aC5hdGFuMihzLHIpKToodGhpcy5feD0wLHRoaXMuX3o9TWF0aC5hdGFuMigtbyxsKSk7YnJlYWs7Y2FzZSJZWlgiOnRoaXMuX3o9TWF0aC5hc2luKCRadChzLC0xLDEpKSxNYXRoLmFicyhzKTwuOTk5OTk5OT8odGhpcy5feD1NYXRoLmF0YW4yKC1jLGwpLHRoaXMuX3k9TWF0aC5hdGFuMigtdSxyKSk6KHRoaXMuX3g9MCx0aGlzLl95PU1hdGguYXRhbjIoYSxkKSk7YnJlYWs7Y2FzZSJYWlkiOnRoaXMuX3o9TWF0aC5hc2luKC0kWnQobywtMSwxKSksTWF0aC5hYnMobyk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMihoLGwpLHRoaXMuX3k9TWF0aC5hdGFuMihhLHIpKToodGhpcy5feD1NYXRoLmF0YW4yKC1jLGQpLHRoaXMuX3k9MCk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oIlRIUkVFLkV1bGVyOiAuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgZW5jb3VudGVyZWQgYW4gdW5rbm93biBvcmRlcjogIitlKX1yZXR1cm4gdGhpcy5fb3JkZXI9ZSwhMD09PW4mJnRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21RdWF0ZXJuaW9uKHQsZSxuKXtyZXR1cm4gZFF0Lm1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpLHRoaXMuc2V0RnJvbVJvdGF0aW9uTWF0cml4KGRRdCxlLG4pfXNldEZyb21WZWN0b3IzKHQsZT10aGlzLl9vcmRlcil7cmV0dXJuIHRoaXMuc2V0KHQueCx0LnksdC56LGUpfXJlb3JkZXIodCl7cmV0dXJuIHBRdC5zZXRGcm9tRXVsZXIodGhpcyksdGhpcy5zZXRGcm9tUXVhdGVybmlvbihwUXQsdCl9ZXF1YWxzKHQpe3JldHVybiB0Ll94PT09dGhpcy5feCYmdC5feT09PXRoaXMuX3kmJnQuX3o9PT10aGlzLl96JiZ0Ll9vcmRlcj09PXRoaXMuX29yZGVyfWZyb21BcnJheSh0KXtyZXR1cm4gdGhpcy5feD10WzBdLHRoaXMuX3k9dFsxXSx0aGlzLl96PXRbMl0sdm9pZCAwIT09dFszXSYmKHRoaXMuX29yZGVyPXRbM10pLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMuX3gsdFtlKzFdPXRoaXMuX3ksdFtlKzJdPXRoaXMuX3osdFtlKzNdPXRoaXMuX29yZGVyLHR9dG9WZWN0b3IzKHQpe3JldHVybiB0P3Quc2V0KHRoaXMuX3gsdGhpcy5feSx0aGlzLl96KTpuZXcgQ0p0KHRoaXMuX3gsdGhpcy5feSx0aGlzLl96KX1fb25DaGFuZ2UodCl7cmV0dXJuIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2s9dCx0aGlzfV9vbkNoYW5nZUNhbGxiYWNrKCl7fX1mUXQucHJvdG90eXBlLmlzRXVsZXI9ITAsZlF0LkRlZmF1bHRPcmRlcj0iWFlaIixmUXQuUm90YXRpb25PcmRlcnM9WyJYWVoiLCJZWlgiLCJaWFkiLCJYWlkiLCJZWFoiLCJaWVgiXTtjbGFzcyBtUXR7Y29uc3RydWN0b3IoKXt0aGlzLm1hc2s9MX1zZXQodCl7dGhpcy5tYXNrPTE8PHR8MH1lbmFibGUodCl7dGhpcy5tYXNrfD0xPDx0fDB9ZW5hYmxlQWxsKCl7dGhpcy5tYXNrPS0xfXRvZ2dsZSh0KXt0aGlzLm1hc2tePTE8PHR8MH1kaXNhYmxlKHQpe3RoaXMubWFzayY9figxPDx0fDApfWRpc2FibGVBbGwoKXt0aGlzLm1hc2s9MH10ZXN0KHQpe3JldHVybiAwIT0odGhpcy5tYXNrJnQubWFzayl9fWxldCBnUXQ9MDtjb25zdCBfUXQ9bmV3IENKdCx5UXQ9bmV3IFRKdCx2UXQ9bmV3IHJRdCxiUXQ9bmV3IENKdCx4UXQ9bmV3IENKdCx3UXQ9bmV3IENKdCxTUXQ9bmV3IFRKdCxNUXQ9bmV3IENKdCgxLDAsMCksRVF0PW5ldyBDSnQoMCwxLDApLFRRdD1uZXcgQ0p0KDAsMCwxKSxDUXQ9e3R5cGU6ImFkZGVkIn0sQVF0PXt0eXBlOiJyZW1vdmVkIn07Y2xhc3Mga1F0IGV4dGVuZHMgalp0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTpnUXQrK30pLHRoaXMudXVpZD1YWnQoKSx0aGlzLm5hbWU9IiIsdGhpcy50eXBlPSJPYmplY3QzRCIsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuPVtdLHRoaXMudXA9a1F0LkRlZmF1bHRVcC5jbG9uZSgpO2NvbnN0IHQ9bmV3IENKdCxlPW5ldyBmUXQsbj1uZXcgVEp0LGk9bmV3IENKdCgxLDEsMSk7ZS5fb25DaGFuZ2UoKGZ1bmN0aW9uIHIoKXtuLnNldEZyb21FdWxlcihlLCExKX0pKSxuLl9vbkNoYW5nZSgoZnVuY3Rpb24gbygpe2Uuc2V0RnJvbVF1YXRlcm5pb24obix2b2lkIDAsITEpfSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse3Bvc2l0aW9uOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTp0fSxyb3RhdGlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZX0scXVhdGVybmlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6bn0sc2NhbGU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOml9LG1vZGVsVmlld01hdHJpeDp7dmFsdWU6bmV3IHJRdH0sbm9ybWFsTWF0cml4Ont2YWx1ZTpuZXcgZ0p0fX0pLHRoaXMubWF0cml4PW5ldyByUXQsdGhpcy5tYXRyaXhXb3JsZD1uZXcgclF0LHRoaXMubWF0cml4QXV0b1VwZGF0ZT1rUXQuRGVmYXVsdE1hdHJpeEF1dG9VcGRhdGUsdGhpcy5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSExLHRoaXMubGF5ZXJzPW5ldyBtUXQsdGhpcy52aXNpYmxlPSEwLHRoaXMuY2FzdFNoYWRvdz0hMSx0aGlzLnJlY2VpdmVTaGFkb3c9ITEsdGhpcy5mcnVzdHVtQ3VsbGVkPSEwLHRoaXMucmVuZGVyT3JkZXI9MCx0aGlzLmFuaW1hdGlvbnM9W10sdGhpcy51c2VyRGF0YT17fX1vbkJlZm9yZVJlbmRlcigpe31vbkFmdGVyUmVuZGVyKCl7fWFwcGx5TWF0cml4NCh0KXt0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksdGhpcy5tYXRyaXgucHJlbXVsdGlwbHkodCksdGhpcy5tYXRyaXguZGVjb21wb3NlKHRoaXMucG9zaXRpb24sdGhpcy5xdWF0ZXJuaW9uLHRoaXMuc2NhbGUpfWFwcGx5UXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy5xdWF0ZXJuaW9uLnByZW11bHRpcGx5KHQpLHRoaXN9c2V0Um90YXRpb25Gcm9tQXhpc0FuZ2xlKHQsZSl7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21BeGlzQW5nbGUodCxlKX1zZXRSb3RhdGlvbkZyb21FdWxlcih0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbUV1bGVyKHQsITApfXNldFJvdGF0aW9uRnJvbU1hdHJpeCh0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KHQpfXNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCl7dGhpcy5xdWF0ZXJuaW9uLmNvcHkodCl9cm90YXRlT25BeGlzKHQsZSl7cmV0dXJuIHlRdC5zZXRGcm9tQXhpc0FuZ2xlKHQsZSksdGhpcy5xdWF0ZXJuaW9uLm11bHRpcGx5KHlRdCksdGhpc31yb3RhdGVPbldvcmxkQXhpcyh0LGUpe3JldHVybiB5UXQuc2V0RnJvbUF4aXNBbmdsZSh0LGUpLHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseSh5UXQpLHRoaXN9cm90YXRlWCh0KXtyZXR1cm4gdGhpcy5yb3RhdGVPbkF4aXMoTVF0LHQpfXJvdGF0ZVkodCl7cmV0dXJuIHRoaXMucm90YXRlT25BeGlzKEVRdCx0KX1yb3RhdGVaKHQpe3JldHVybiB0aGlzLnJvdGF0ZU9uQXhpcyhUUXQsdCl9dHJhbnNsYXRlT25BeGlzKHQsZSl7cmV0dXJuIF9RdC5jb3B5KHQpLmFwcGx5UXVhdGVybmlvbih0aGlzLnF1YXRlcm5pb24pLHRoaXMucG9zaXRpb24uYWRkKF9RdC5tdWx0aXBseVNjYWxhcihlKSksdGhpc310cmFuc2xhdGVYKHQpe3JldHVybiB0aGlzLnRyYW5zbGF0ZU9uQXhpcyhNUXQsdCl9dHJhbnNsYXRlWSh0KXtyZXR1cm4gdGhpcy50cmFuc2xhdGVPbkF4aXMoRVF0LHQpfXRyYW5zbGF0ZVoodCl7cmV0dXJuIHRoaXMudHJhbnNsYXRlT25BeGlzKFRRdCx0KX1sb2NhbFRvV29ybGQodCl7cmV0dXJuIHQuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpfXdvcmxkVG9Mb2NhbCh0KXtyZXR1cm4gdC5hcHBseU1hdHJpeDQodlF0LmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCkpfWxvb2tBdCh0LGUsbil7dC5pc1ZlY3RvcjM/YlF0LmNvcHkodCk6YlF0LnNldCh0LGUsbik7Y29uc3QgaT10aGlzLnBhcmVudDt0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx4UXQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubWF0cml4V29ybGQpLHRoaXMuaXNDYW1lcmF8fHRoaXMuaXNMaWdodD92UXQubG9va0F0KHhRdCxiUXQsdGhpcy51cCk6dlF0Lmxvb2tBdChiUXQseFF0LHRoaXMudXApLHRoaXMucXVhdGVybmlvbi5zZXRGcm9tUm90YXRpb25NYXRyaXgodlF0KSxpJiYodlF0LmV4dHJhY3RSb3RhdGlvbihpLm1hdHJpeFdvcmxkKSx5UXQuc2V0RnJvbVJvdGF0aW9uTWF0cml4KHZRdCksdGhpcy5xdWF0ZXJuaW9uLnByZW11bHRpcGx5KHlRdC5pbnZlcnQoKSkpfWFkZCh0KXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2ZvcihsZXQgdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspdGhpcy5hZGQoYXJndW1lbnRzW3RdKTtyZXR1cm4gdGhpc31yZXR1cm4gdD09PXRoaXM/KGNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNELmFkZDogb2JqZWN0IGNhbid0IGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgaXRzZWxmLiIsdCksdGhpcyk6KHQmJnQuaXNPYmplY3QzRD8obnVsbCE9PXQucGFyZW50JiZ0LnBhcmVudC5yZW1vdmUodCksdC5wYXJlbnQ9dGhpcyx0aGlzLmNoaWxkcmVuLnB1c2godCksdC5kaXNwYXRjaEV2ZW50KENRdCkpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNELmFkZDogb2JqZWN0IG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5PYmplY3QzRC4iLHQpLHRoaXMpfXJlbW92ZSh0KXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2ZvcihsZXQgdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspdGhpcy5yZW1vdmUoYXJndW1lbnRzW3RdKTtyZXR1cm4gdGhpc31jb25zdCBlPXRoaXMuY2hpbGRyZW4uaW5kZXhPZih0KTtyZXR1cm4tMSE9PWUmJih0LnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW4uc3BsaWNlKGUsMSksdC5kaXNwYXRjaEV2ZW50KEFRdCkpLHRoaXN9cmVtb3ZlRnJvbVBhcmVudCgpe2NvbnN0IHQ9dGhpcy5wYXJlbnQ7cmV0dXJuIG51bGwhPT10JiZ0LnJlbW92ZSh0aGlzKSx0aGlzfWNsZWFyKCl7Zm9yKGxldCB0PTA7dDx0aGlzLmNoaWxkcmVuLmxlbmd0aDt0Kyspe2NvbnN0IGU9dGhpcy5jaGlsZHJlblt0XTtlLnBhcmVudD1udWxsLGUuZGlzcGF0Y2hFdmVudChBUXQpfXJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD0wLHRoaXN9YXR0YWNoKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx2UXQuY29weSh0aGlzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKSxudWxsIT09dC5wYXJlbnQmJih0LnBhcmVudC51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksdlF0Lm11bHRpcGx5KHQucGFyZW50Lm1hdHJpeFdvcmxkKSksdC5hcHBseU1hdHJpeDQodlF0KSx0aGlzLmFkZCh0KSx0LnVwZGF0ZVdvcmxkTWF0cml4KCExLCEwKSx0aGlzfWdldE9iamVjdEJ5SWQodCl7cmV0dXJuIHRoaXMuZ2V0T2JqZWN0QnlQcm9wZXJ0eSgiaWQiLHQpfWdldE9iamVjdEJ5TmFtZSh0KXtyZXR1cm4gdGhpcy5nZXRPYmplY3RCeVByb3BlcnR5KCJuYW1lIix0KX1nZXRPYmplY3RCeVByb3BlcnR5KHQsZSl7aWYodGhpc1t0XT09PWUpcmV0dXJuIHRoaXM7Zm9yKGxldCBuPTAsaT10aGlzLmNoaWxkcmVuLmxlbmd0aDtuPGk7bisrKXtjb25zdCBpPXRoaXMuY2hpbGRyZW5bbl0uZ2V0T2JqZWN0QnlQcm9wZXJ0eSh0LGUpO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGl9fWdldFdvcmxkUG9zaXRpb24odCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubWF0cml4V29ybGQpfWdldFdvcmxkUXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksdGhpcy5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoeFF0LHQsd1F0KSx0fWdldFdvcmxkU2NhbGUodCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4V29ybGQuZGVjb21wb3NlKHhRdCxTUXQsdCksdH1nZXRXb3JsZERpcmVjdGlvbih0KXt0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKTtjb25zdCBlPXRoaXMubWF0cml4V29ybGQuZWxlbWVudHM7cmV0dXJuIHQuc2V0KGVbOF0sZVs5XSxlWzEwXSkubm9ybWFsaXplKCl9cmF5Y2FzdCgpe310cmF2ZXJzZSh0KXt0KHRoaXMpO2NvbnN0IGU9dGhpcy5jaGlsZHJlbjtmb3IobGV0IG49MCxpPWUubGVuZ3RoO248aTtuKyspZVtuXS50cmF2ZXJzZSh0KX10cmF2ZXJzZVZpc2libGUodCl7aWYoITE9PT10aGlzLnZpc2libGUpcmV0dXJuO3QodGhpcyk7Y29uc3QgZT10aGlzLmNoaWxkcmVuO2ZvcihsZXQgbj0wLGk9ZS5sZW5ndGg7bjxpO24rKyllW25dLnRyYXZlcnNlVmlzaWJsZSh0KX10cmF2ZXJzZUFuY2VzdG9ycyh0KXtjb25zdCBlPXRoaXMucGFyZW50O251bGwhPT1lJiYodChlKSxlLnRyYXZlcnNlQW5jZXN0b3JzKHQpKX11cGRhdGVNYXRyaXgoKXt0aGlzLm1hdHJpeC5jb21wb3NlKHRoaXMucG9zaXRpb24sdGhpcy5xdWF0ZXJuaW9uLHRoaXMuc2NhbGUpLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH11cGRhdGVNYXRyaXhXb3JsZCh0KXt0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksKHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZXx8dCkmJihudWxsPT09dGhpcy5wYXJlbnQ/dGhpcy5tYXRyaXhXb3JsZC5jb3B5KHRoaXMubWF0cml4KTp0aGlzLm1hdHJpeFdvcmxkLm11bHRpcGx5TWF0cmljZXModGhpcy5wYXJlbnQubWF0cml4V29ybGQsdGhpcy5tYXRyaXgpLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMSx0PSEwKTtjb25zdCBlPXRoaXMuY2hpbGRyZW47Zm9yKGxldCBuPTAsaT1lLmxlbmd0aDtuPGk7bisrKWVbbl0udXBkYXRlTWF0cml4V29ybGQodCl9dXBkYXRlV29ybGRNYXRyaXgodCxlKXtjb25zdCBuPXRoaXMucGFyZW50O2lmKCEwPT09dCYmbnVsbCE9PW4mJm4udXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4QXV0b1VwZGF0ZSYmdGhpcy51cGRhdGVNYXRyaXgoKSxudWxsPT09dGhpcy5wYXJlbnQ/dGhpcy5tYXRyaXhXb3JsZC5jb3B5KHRoaXMubWF0cml4KTp0aGlzLm1hdHJpeFdvcmxkLm11bHRpcGx5TWF0cmljZXModGhpcy5wYXJlbnQubWF0cml4V29ybGQsdGhpcy5tYXRyaXgpLCEwPT09ZSl7Y29uc3QgdD10aGlzLmNoaWxkcmVuO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl0W2VdLnVwZGF0ZVdvcmxkTWF0cml4KCExLCEwKX19dG9KU09OKHQpe2NvbnN0IGU9dm9pZCAwPT09dHx8InN0cmluZyI9PXR5cGVvZiB0LG49e307ZSYmKHQ9e2dlb21ldHJpZXM6e30sbWF0ZXJpYWxzOnt9LHRleHR1cmVzOnt9LGltYWdlczp7fSxzaGFwZXM6e30sc2tlbGV0b25zOnt9LGFuaW1hdGlvbnM6e319LG4ubWV0YWRhdGE9e3ZlcnNpb246NC41LHR5cGU6Ik9iamVjdCIsZ2VuZXJhdG9yOiJPYmplY3QzRC50b0pTT04ifSk7Y29uc3QgaT17fTtmdW5jdGlvbiByKGUsbil7cmV0dXJuIHZvaWQgMD09PWVbbi51dWlkXSYmKGVbbi51dWlkXT1uLnRvSlNPTih0KSksbi51dWlkfWlmKGkudXVpZD10aGlzLnV1aWQsaS50eXBlPXRoaXMudHlwZSwiIiE9PXRoaXMubmFtZSYmKGkubmFtZT10aGlzLm5hbWUpLCEwPT09dGhpcy5jYXN0U2hhZG93JiYoaS5jYXN0U2hhZG93PSEwKSwhMD09PXRoaXMucmVjZWl2ZVNoYWRvdyYmKGkucmVjZWl2ZVNoYWRvdz0hMCksITE9PT10aGlzLnZpc2libGUmJihpLnZpc2libGU9ITEpLCExPT09dGhpcy5mcnVzdHVtQ3VsbGVkJiYoaS5mcnVzdHVtQ3VsbGVkPSExKSwwIT09dGhpcy5yZW5kZXJPcmRlciYmKGkucmVuZGVyT3JkZXI9dGhpcy5yZW5kZXJPcmRlciksInt9IiE9PUpTT04uc3RyaW5naWZ5KHRoaXMudXNlckRhdGEpJiYoaS51c2VyRGF0YT10aGlzLnVzZXJEYXRhKSxpLmxheWVycz10aGlzLmxheWVycy5tYXNrLGkubWF0cml4PXRoaXMubWF0cml4LnRvQXJyYXkoKSwhMT09PXRoaXMubWF0cml4QXV0b1VwZGF0ZSYmKGkubWF0cml4QXV0b1VwZGF0ZT0hMSksdGhpcy5pc0luc3RhbmNlZE1lc2gmJihpLnR5cGU9Ikluc3RhbmNlZE1lc2giLGkuY291bnQ9dGhpcy5jb3VudCxpLmluc3RhbmNlTWF0cml4PXRoaXMuaW5zdGFuY2VNYXRyaXgudG9KU09OKCksbnVsbCE9PXRoaXMuaW5zdGFuY2VDb2xvciYmKGkuaW5zdGFuY2VDb2xvcj10aGlzLmluc3RhbmNlQ29sb3IudG9KU09OKCkpKSx0aGlzLmlzU2NlbmUpdGhpcy5iYWNrZ3JvdW5kJiYodGhpcy5iYWNrZ3JvdW5kLmlzQ29sb3I/aS5iYWNrZ3JvdW5kPXRoaXMuYmFja2dyb3VuZC50b0pTT04oKTp0aGlzLmJhY2tncm91bmQuaXNUZXh0dXJlJiYoaS5iYWNrZ3JvdW5kPXRoaXMuYmFja2dyb3VuZC50b0pTT04odCkudXVpZCkpLHRoaXMuZW52aXJvbm1lbnQmJnRoaXMuZW52aXJvbm1lbnQuaXNUZXh0dXJlJiYoaS5lbnZpcm9ubWVudD10aGlzLmVudmlyb25tZW50LnRvSlNPTih0KS51dWlkKTtlbHNlIGlmKHRoaXMuaXNNZXNofHx0aGlzLmlzTGluZXx8dGhpcy5pc1BvaW50cyl7aS5nZW9tZXRyeT1yKHQuZ2VvbWV0cmllcyx0aGlzLmdlb21ldHJ5KTtjb25zdCBlPXRoaXMuZ2VvbWV0cnkucGFyYW1ldGVycztpZih2b2lkIDAhPT1lJiZ2b2lkIDAhPT1lLnNoYXBlcyl7Y29uc3Qgbj1lLnNoYXBlcztpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgZT0wLGk9bi5sZW5ndGg7ZTxpO2UrKylyKHQuc2hhcGVzLG5bZV0pO2Vsc2Ugcih0LnNoYXBlcyxuKX19aWYodGhpcy5pc1NraW5uZWRNZXNoJiYoaS5iaW5kTW9kZT10aGlzLmJpbmRNb2RlLGkuYmluZE1hdHJpeD10aGlzLmJpbmRNYXRyaXgudG9BcnJheSgpLHZvaWQgMCE9PXRoaXMuc2tlbGV0b24mJihyKHQuc2tlbGV0b25zLHRoaXMuc2tlbGV0b24pLGkuc2tlbGV0b249dGhpcy5za2VsZXRvbi51dWlkKSksdm9pZCAwIT09dGhpcy5tYXRlcmlhbClpZihBcnJheS5pc0FycmF5KHRoaXMubWF0ZXJpYWwpKXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wLGk9dGhpcy5tYXRlcmlhbC5sZW5ndGg7bjxpO24rKyllLnB1c2gocih0Lm1hdGVyaWFscyx0aGlzLm1hdGVyaWFsW25dKSk7aS5tYXRlcmlhbD1lfWVsc2UgaS5tYXRlcmlhbD1yKHQubWF0ZXJpYWxzLHRoaXMubWF0ZXJpYWwpO2lmKHRoaXMuY2hpbGRyZW4ubGVuZ3RoPjApe2kuY2hpbGRyZW49W107Zm9yKGxldCBlPTA7ZTx0aGlzLmNoaWxkcmVuLmxlbmd0aDtlKyspaS5jaGlsZHJlbi5wdXNoKHRoaXMuY2hpbGRyZW5bZV0udG9KU09OKHQpLm9iamVjdCl9aWYodGhpcy5hbmltYXRpb25zLmxlbmd0aD4wKXtpLmFuaW1hdGlvbnM9W107Zm9yKGxldCBlPTA7ZTx0aGlzLmFuaW1hdGlvbnMubGVuZ3RoO2UrKylpLmFuaW1hdGlvbnMucHVzaChyKHQuYW5pbWF0aW9ucyx0aGlzLmFuaW1hdGlvbnNbZV0pKX1pZihlKXtjb25zdCBlPW8odC5nZW9tZXRyaWVzKSxpPW8odC5tYXRlcmlhbHMpLHI9byh0LnRleHR1cmVzKSxhPW8odC5pbWFnZXMpLHM9byh0LnNoYXBlcyksbD1vKHQuc2tlbGV0b25zKSxjPW8odC5hbmltYXRpb25zKTtlLmxlbmd0aD4wJiYobi5nZW9tZXRyaWVzPWUpLGkubGVuZ3RoPjAmJihuLm1hdGVyaWFscz1pKSxyLmxlbmd0aD4wJiYobi50ZXh0dXJlcz1yKSxhLmxlbmd0aD4wJiYobi5pbWFnZXM9YSkscy5sZW5ndGg+MCYmKG4uc2hhcGVzPXMpLGwubGVuZ3RoPjAmJihuLnNrZWxldG9ucz1sKSxjLmxlbmd0aD4wJiYobi5hbmltYXRpb25zPWMpfXJldHVybiBuLm9iamVjdD1pLG47ZnVuY3Rpb24gbyh0KXtjb25zdCBlPVtdO2Zvcihjb25zdCBuIGluIHQpe2NvbnN0IGk9dFtuXTtkZWxldGUgaS5tZXRhZGF0YSxlLnB1c2goaSl9cmV0dXJuIGV9fWNsb25lKHQpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzLHQpfWNvcHkodCxlPSEwKXtpZih0aGlzLm5hbWU9dC5uYW1lLHRoaXMudXAuY29weSh0LnVwKSx0aGlzLnBvc2l0aW9uLmNvcHkodC5wb3NpdGlvbiksdGhpcy5yb3RhdGlvbi5vcmRlcj10LnJvdGF0aW9uLm9yZGVyLHRoaXMucXVhdGVybmlvbi5jb3B5KHQucXVhdGVybmlvbiksdGhpcy5zY2FsZS5jb3B5KHQuc2NhbGUpLHRoaXMubWF0cml4LmNvcHkodC5tYXRyaXgpLHRoaXMubWF0cml4V29ybGQuY29weSh0Lm1hdHJpeFdvcmxkKSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT10Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGUsdGhpcy5sYXllcnMubWFzaz10LmxheWVycy5tYXNrLHRoaXMudmlzaWJsZT10LnZpc2libGUsdGhpcy5jYXN0U2hhZG93PXQuY2FzdFNoYWRvdyx0aGlzLnJlY2VpdmVTaGFkb3c9dC5yZWNlaXZlU2hhZG93LHRoaXMuZnJ1c3R1bUN1bGxlZD10LmZydXN0dW1DdWxsZWQsdGhpcy5yZW5kZXJPcmRlcj10LnJlbmRlck9yZGVyLHRoaXMudXNlckRhdGE9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0LnVzZXJEYXRhKSksITA9PT1lKWZvcihsZXQgZT0wO2U8dC5jaGlsZHJlbi5sZW5ndGg7ZSsrKXRoaXMuYWRkKHQuY2hpbGRyZW5bZV0uY2xvbmUoKSk7cmV0dXJuIHRoaXN9fWtRdC5EZWZhdWx0VXA9bmV3IENKdCgwLDEsMCksa1F0LkRlZmF1bHRNYXRyaXhBdXRvVXBkYXRlPSEwLGtRdC5wcm90b3R5cGUuaXNPYmplY3QzRD0hMDtjb25zdCBMUXQ9bmV3IENKdCxQUXQ9bmV3IENKdCxOUXQ9bmV3IENKdCxJUXQ9bmV3IENKdCxSUXQ9bmV3IENKdCxPUXQ9bmV3IENKdCx6UXQ9bmV3IENKdCxEUXQ9bmV3IENKdCxCUXQ9bmV3IENKdCxIUXQ9bmV3IENKdDtjbGFzcyBGUXR7Y29uc3RydWN0b3IodD1uZXcgQ0p0LGU9bmV3IENKdCxuPW5ldyBDSnQpe3RoaXMuYT10LHRoaXMuYj1lLHRoaXMuYz1ufXN0YXRpYyBnZXROb3JtYWwodCxlLG4saSl7aS5zdWJWZWN0b3JzKG4sZSksTFF0LnN1YlZlY3RvcnModCxlKSxpLmNyb3NzKExRdCk7Y29uc3Qgcj1pLmxlbmd0aFNxKCk7cmV0dXJuIHI+MD9pLm11bHRpcGx5U2NhbGFyKDEvTWF0aC5zcXJ0KHIpKTppLnNldCgwLDAsMCl9c3RhdGljIGdldEJhcnljb29yZCh0LGUsbixpLHIpe0xRdC5zdWJWZWN0b3JzKGksZSksUFF0LnN1YlZlY3RvcnMobixlKSxOUXQuc3ViVmVjdG9ycyh0LGUpO2NvbnN0IG89TFF0LmRvdChMUXQpLGE9TFF0LmRvdChQUXQpLHM9TFF0LmRvdChOUXQpLGw9UFF0LmRvdChQUXQpLGM9UFF0LmRvdChOUXQpLHU9bypsLWEqYTtpZigwPT09dSlyZXR1cm4gci5zZXQoLTIsLTEsLTEpO2NvbnN0IGg9MS91LGQ9KGwqcy1hKmMpKmgscD0obypjLWEqcykqaDtyZXR1cm4gci5zZXQoMS1kLXAscCxkKX1zdGF0aWMgY29udGFpbnNQb2ludCh0LGUsbixpKXtyZXR1cm4gdGhpcy5nZXRCYXJ5Y29vcmQodCxlLG4saSxJUXQpLElRdC54Pj0wJiZJUXQueT49MCYmSVF0LngrSVF0Lnk8PTF9c3RhdGljIGdldFVWKHQsZSxuLGkscixvLGEscyl7cmV0dXJuIHRoaXMuZ2V0QmFyeWNvb3JkKHQsZSxuLGksSVF0KSxzLnNldCgwLDApLHMuYWRkU2NhbGVkVmVjdG9yKHIsSVF0LngpLHMuYWRkU2NhbGVkVmVjdG9yKG8sSVF0LnkpLHMuYWRkU2NhbGVkVmVjdG9yKGEsSVF0LnopLHN9c3RhdGljIGlzRnJvbnRGYWNpbmcodCxlLG4saSl7cmV0dXJuIExRdC5zdWJWZWN0b3JzKG4sZSksUFF0LnN1YlZlY3RvcnModCxlKSxMUXQuY3Jvc3MoUFF0KS5kb3QoaSk8MH1zZXQodCxlLG4pe3JldHVybiB0aGlzLmEuY29weSh0KSx0aGlzLmIuY29weShlKSx0aGlzLmMuY29weShuKSx0aGlzfXNldEZyb21Qb2ludHNBbmRJbmRpY2VzKHQsZSxuLGkpe3JldHVybiB0aGlzLmEuY29weSh0W2VdKSx0aGlzLmIuY29weSh0W25dKSx0aGlzLmMuY29weSh0W2ldKSx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMuYS5jb3B5KHQuYSksdGhpcy5iLmNvcHkodC5iKSx0aGlzLmMuY29weSh0LmMpLHRoaXN9Z2V0QXJlYSgpe3JldHVybiBMUXQuc3ViVmVjdG9ycyh0aGlzLmMsdGhpcy5iKSxQUXQuc3ViVmVjdG9ycyh0aGlzLmEsdGhpcy5iKSwuNSpMUXQuY3Jvc3MoUFF0KS5sZW5ndGgoKX1nZXRNaWRwb2ludCh0KXtyZXR1cm4gdC5hZGRWZWN0b3JzKHRoaXMuYSx0aGlzLmIpLmFkZCh0aGlzLmMpLm11bHRpcGx5U2NhbGFyKDEvMyl9Z2V0Tm9ybWFsKHQpe3JldHVybiBGUXQuZ2V0Tm9ybWFsKHRoaXMuYSx0aGlzLmIsdGhpcy5jLHQpfWdldFBsYW5lKHQpe3JldHVybiB0LnNldEZyb21Db3BsYW5hclBvaW50cyh0aGlzLmEsdGhpcy5iLHRoaXMuYyl9Z2V0QmFyeWNvb3JkKHQsZSl7cmV0dXJuIEZRdC5nZXRCYXJ5Y29vcmQodCx0aGlzLmEsdGhpcy5iLHRoaXMuYyxlKX1nZXRVVih0LGUsbixpLHIpe3JldHVybiBGUXQuZ2V0VVYodCx0aGlzLmEsdGhpcy5iLHRoaXMuYyxlLG4saSxyKX1jb250YWluc1BvaW50KHQpe3JldHVybiBGUXQuY29udGFpbnNQb2ludCh0LHRoaXMuYSx0aGlzLmIsdGhpcy5jKX1pc0Zyb250RmFjaW5nKHQpe3JldHVybiBGUXQuaXNGcm9udEZhY2luZyh0aGlzLmEsdGhpcy5iLHRoaXMuYyx0KX1pbnRlcnNlY3RzQm94KHQpe3JldHVybiB0LmludGVyc2VjdHNUcmlhbmdsZSh0aGlzKX1jbG9zZXN0UG9pbnRUb1BvaW50KHQsZSl7Y29uc3Qgbj10aGlzLmEsaT10aGlzLmIscj10aGlzLmM7bGV0IG8sYTtSUXQuc3ViVmVjdG9ycyhpLG4pLE9RdC5zdWJWZWN0b3JzKHIsbiksRFF0LnN1YlZlY3RvcnModCxuKTtjb25zdCBzPVJRdC5kb3QoRFF0KSxsPU9RdC5kb3QoRFF0KTtpZihzPD0wJiZsPD0wKXJldHVybiBlLmNvcHkobik7QlF0LnN1YlZlY3RvcnModCxpKTtjb25zdCBjPVJRdC5kb3QoQlF0KSx1PU9RdC5kb3QoQlF0KTtpZihjPj0wJiZ1PD1jKXJldHVybiBlLmNvcHkoaSk7Y29uc3QgaD1zKnUtYypsO2lmKGg8PTAmJnM+PTAmJmM8PTApcmV0dXJuIG89cy8ocy1jKSxlLmNvcHkobikuYWRkU2NhbGVkVmVjdG9yKFJRdCxvKTtIUXQuc3ViVmVjdG9ycyh0LHIpO2NvbnN0IGQ9UlF0LmRvdChIUXQpLHA9T1F0LmRvdChIUXQpO2lmKHA+PTAmJmQ8PXApcmV0dXJuIGUuY29weShyKTtjb25zdCBmPWQqbC1zKnA7aWYoZjw9MCYmbD49MCYmcDw9MClyZXR1cm4gYT1sLyhsLXApLGUuY29weShuKS5hZGRTY2FsZWRWZWN0b3IoT1F0LGEpO2NvbnN0IG09YypwLWQqdTtpZihtPD0wJiZ1LWM+PTAmJmQtcD49MClyZXR1cm4gelF0LnN1YlZlY3RvcnMocixpKSxhPSh1LWMpLyh1LWMrKGQtcCkpLGUuY29weShpKS5hZGRTY2FsZWRWZWN0b3IoelF0LGEpO2NvbnN0IGc9MS8obStmK2gpO3JldHVybiBvPWYqZyxhPWgqZyxlLmNvcHkobikuYWRkU2NhbGVkVmVjdG9yKFJRdCxvKS5hZGRTY2FsZWRWZWN0b3IoT1F0LGEpfWVxdWFscyh0KXtyZXR1cm4gdC5hLmVxdWFscyh0aGlzLmEpJiZ0LmIuZXF1YWxzKHRoaXMuYikmJnQuYy5lcXVhbHModGhpcy5jKX19bGV0IFZRdD0wO2NsYXNzIFVRdCBleHRlbmRzIGpadHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6VlF0Kyt9KSx0aGlzLnV1aWQ9WFp0KCksdGhpcy5uYW1lPSIiLHRoaXMudHlwZT0iTWF0ZXJpYWwiLHRoaXMuZm9nPSEwLHRoaXMuYmxlbmRpbmc9MSx0aGlzLnNpZGU9MCx0aGlzLnZlcnRleENvbG9ycz0hMSx0aGlzLm9wYWNpdHk9MSx0aGlzLnRyYW5zcGFyZW50PSExLHRoaXMuYmxlbmRTcmM9MjA0LHRoaXMuYmxlbmREc3Q9MjA1LHRoaXMuYmxlbmRFcXVhdGlvbj1WS3QsdGhpcy5ibGVuZFNyY0FscGhhPW51bGwsdGhpcy5ibGVuZERzdEFscGhhPW51bGwsdGhpcy5ibGVuZEVxdWF0aW9uQWxwaGE9bnVsbCx0aGlzLmRlcHRoRnVuYz0zLHRoaXMuZGVwdGhUZXN0PSEwLHRoaXMuZGVwdGhXcml0ZT0hMCx0aGlzLnN0ZW5jaWxXcml0ZU1hc2s9MjU1LHRoaXMuc3RlbmNpbEZ1bmM9NTE5LHRoaXMuc3RlbmNpbFJlZj0wLHRoaXMuc3RlbmNpbEZ1bmNNYXNrPTI1NSx0aGlzLnN0ZW5jaWxGYWlsPUhadCx0aGlzLnN0ZW5jaWxaRmFpbD1IWnQsdGhpcy5zdGVuY2lsWlBhc3M9SFp0LHRoaXMuc3RlbmNpbFdyaXRlPSExLHRoaXMuY2xpcHBpbmdQbGFuZXM9bnVsbCx0aGlzLmNsaXBJbnRlcnNlY3Rpb249ITEsdGhpcy5jbGlwU2hhZG93cz0hMSx0aGlzLnNoYWRvd1NpZGU9bnVsbCx0aGlzLmNvbG9yV3JpdGU9ITAsdGhpcy5wcmVjaXNpb249bnVsbCx0aGlzLnBvbHlnb25PZmZzZXQ9ITEsdGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yPTAsdGhpcy5wb2x5Z29uT2Zmc2V0VW5pdHM9MCx0aGlzLmRpdGhlcmluZz0hMSx0aGlzLmFscGhhVGVzdD0wLHRoaXMuYWxwaGFUb0NvdmVyYWdlPSExLHRoaXMucHJlbXVsdGlwbGllZEFscGhhPSExLHRoaXMudmlzaWJsZT0hMCx0aGlzLnRvbmVNYXBwZWQ9ITAsdGhpcy51c2VyRGF0YT17fSx0aGlzLnZlcnNpb249MH1vbkJ1aWxkKCl7fW9uQmVmb3JlQ29tcGlsZSgpe31jdXN0b21Qcm9ncmFtQ2FjaGVLZXkoKXtyZXR1cm4gdGhpcy5vbkJlZm9yZUNvbXBpbGUudG9TdHJpbmcoKX1zZXRWYWx1ZXModCl7aWYodm9pZCAwIT09dClmb3IoY29uc3QgZSBpbiB0KXtjb25zdCBuPXRbZV07aWYodm9pZCAwPT09bil7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogJyIrZSsiJyBwYXJhbWV0ZXIgaXMgdW5kZWZpbmVkLiIpO2NvbnRpbnVlfWlmKCJzaGFkaW5nIj09PWUpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnNoYWRpbmcgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHRoZSBib29sZWFuIC5mbGF0U2hhZGluZyBpbnN0ZWFkLiIpLHRoaXMuZmxhdFNoYWRpbmc9MT09PW47Y29udGludWV9Y29uc3QgaT10aGlzW2VdO3ZvaWQgMCE9PWk/aSYmaS5pc0NvbG9yP2kuc2V0KG4pOmkmJmkuaXNWZWN0b3IzJiZuJiZuLmlzVmVjdG9yMz9pLmNvcHkobik6dGhpc1tlXT1uOmNvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogJyIrZSsiJyBpcyBub3QgYSBwcm9wZXJ0eSBvZiB0aGlzIG1hdGVyaWFsLiIpfX10b0pTT04odCl7Y29uc3QgZT12b2lkIDA9PT10fHwic3RyaW5nIj09dHlwZW9mIHQ7ZSYmKHQ9e3RleHR1cmVzOnt9LGltYWdlczp7fX0pO2NvbnN0IG49e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJNYXRlcmlhbCIsZ2VuZXJhdG9yOiJNYXRlcmlhbC50b0pTT04ifX07ZnVuY3Rpb24gaSh0KXtjb25zdCBlPVtdO2Zvcihjb25zdCBuIGluIHQpe2NvbnN0IGk9dFtuXTtkZWxldGUgaS5tZXRhZGF0YSxlLnB1c2goaSl9cmV0dXJuIGV9aWYobi51dWlkPXRoaXMudXVpZCxuLnR5cGU9dGhpcy50eXBlLCIiIT09dGhpcy5uYW1lJiYobi5uYW1lPXRoaXMubmFtZSksdGhpcy5jb2xvciYmdGhpcy5jb2xvci5pc0NvbG9yJiYobi5jb2xvcj10aGlzLmNvbG9yLmdldEhleCgpKSx2b2lkIDAhPT10aGlzLnJvdWdobmVzcyYmKG4ucm91Z2huZXNzPXRoaXMucm91Z2huZXNzKSx2b2lkIDAhPT10aGlzLm1ldGFsbmVzcyYmKG4ubWV0YWxuZXNzPXRoaXMubWV0YWxuZXNzKSx0aGlzLnNoZWVuJiZ0aGlzLnNoZWVuLmlzQ29sb3ImJihuLnNoZWVuPXRoaXMuc2hlZW4uZ2V0SGV4KCkpLHRoaXMuZW1pc3NpdmUmJnRoaXMuZW1pc3NpdmUuaXNDb2xvciYmKG4uZW1pc3NpdmU9dGhpcy5lbWlzc2l2ZS5nZXRIZXgoKSksdGhpcy5lbWlzc2l2ZUludGVuc2l0eSYmMSE9PXRoaXMuZW1pc3NpdmVJbnRlbnNpdHkmJihuLmVtaXNzaXZlSW50ZW5zaXR5PXRoaXMuZW1pc3NpdmVJbnRlbnNpdHkpLHRoaXMuc3BlY3VsYXImJnRoaXMuc3BlY3VsYXIuaXNDb2xvciYmKG4uc3BlY3VsYXI9dGhpcy5zcGVjdWxhci5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5zcGVjdWxhckludGVuc2l0eSYmKG4uc3BlY3VsYXJJbnRlbnNpdHk9dGhpcy5zcGVjdWxhckludGVuc2l0eSksdGhpcy5zcGVjdWxhclRpbnQmJnRoaXMuc3BlY3VsYXJUaW50LmlzQ29sb3ImJihuLnNwZWN1bGFyVGludD10aGlzLnNwZWN1bGFyVGludC5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5zaGluaW5lc3MmJihuLnNoaW5pbmVzcz10aGlzLnNoaW5pbmVzcyksdm9pZCAwIT09dGhpcy5jbGVhcmNvYXQmJihuLmNsZWFyY29hdD10aGlzLmNsZWFyY29hdCksdm9pZCAwIT09dGhpcy5jbGVhcmNvYXRSb3VnaG5lc3MmJihuLmNsZWFyY29hdFJvdWdobmVzcz10aGlzLmNsZWFyY29hdFJvdWdobmVzcyksdGhpcy5jbGVhcmNvYXRNYXAmJnRoaXMuY2xlYXJjb2F0TWFwLmlzVGV4dHVyZSYmKG4uY2xlYXJjb2F0TWFwPXRoaXMuY2xlYXJjb2F0TWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcCYmdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXAuaXNUZXh0dXJlJiYobi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9dGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwJiZ0aGlzLmNsZWFyY29hdE5vcm1hbE1hcC5pc1RleHR1cmUmJihuLmNsZWFyY29hdE5vcm1hbE1hcD10aGlzLmNsZWFyY29hdE5vcm1hbE1hcC50b0pTT04odCkudXVpZCxuLmNsZWFyY29hdE5vcm1hbFNjYWxlPXRoaXMuY2xlYXJjb2F0Tm9ybWFsU2NhbGUudG9BcnJheSgpKSx0aGlzLm1hcCYmdGhpcy5tYXAuaXNUZXh0dXJlJiYobi5tYXA9dGhpcy5tYXAudG9KU09OKHQpLnV1aWQpLHRoaXMubWF0Y2FwJiZ0aGlzLm1hdGNhcC5pc1RleHR1cmUmJihuLm1hdGNhcD10aGlzLm1hdGNhcC50b0pTT04odCkudXVpZCksdGhpcy5hbHBoYU1hcCYmdGhpcy5hbHBoYU1hcC5pc1RleHR1cmUmJihuLmFscGhhTWFwPXRoaXMuYWxwaGFNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMubGlnaHRNYXAmJnRoaXMubGlnaHRNYXAuaXNUZXh0dXJlJiYobi5saWdodE1hcD10aGlzLmxpZ2h0TWFwLnRvSlNPTih0KS51dWlkLG4ubGlnaHRNYXBJbnRlbnNpdHk9dGhpcy5saWdodE1hcEludGVuc2l0eSksdGhpcy5hb01hcCYmdGhpcy5hb01hcC5pc1RleHR1cmUmJihuLmFvTWFwPXRoaXMuYW9NYXAudG9KU09OKHQpLnV1aWQsbi5hb01hcEludGVuc2l0eT10aGlzLmFvTWFwSW50ZW5zaXR5KSx0aGlzLmJ1bXBNYXAmJnRoaXMuYnVtcE1hcC5pc1RleHR1cmUmJihuLmJ1bXBNYXA9dGhpcy5idW1wTWFwLnRvSlNPTih0KS51dWlkLG4uYnVtcFNjYWxlPXRoaXMuYnVtcFNjYWxlKSx0aGlzLm5vcm1hbE1hcCYmdGhpcy5ub3JtYWxNYXAuaXNUZXh0dXJlJiYobi5ub3JtYWxNYXA9dGhpcy5ub3JtYWxNYXAudG9KU09OKHQpLnV1aWQsbi5ub3JtYWxNYXBUeXBlPXRoaXMubm9ybWFsTWFwVHlwZSxuLm5vcm1hbFNjYWxlPXRoaXMubm9ybWFsU2NhbGUudG9BcnJheSgpKSx0aGlzLmRpc3BsYWNlbWVudE1hcCYmdGhpcy5kaXNwbGFjZW1lbnRNYXAuaXNUZXh0dXJlJiYobi5kaXNwbGFjZW1lbnRNYXA9dGhpcy5kaXNwbGFjZW1lbnRNYXAudG9KU09OKHQpLnV1aWQsbi5kaXNwbGFjZW1lbnRTY2FsZT10aGlzLmRpc3BsYWNlbWVudFNjYWxlLG4uZGlzcGxhY2VtZW50Qmlhcz10aGlzLmRpc3BsYWNlbWVudEJpYXMpLHRoaXMucm91Z2huZXNzTWFwJiZ0aGlzLnJvdWdobmVzc01hcC5pc1RleHR1cmUmJihuLnJvdWdobmVzc01hcD10aGlzLnJvdWdobmVzc01hcC50b0pTT04odCkudXVpZCksdGhpcy5tZXRhbG5lc3NNYXAmJnRoaXMubWV0YWxuZXNzTWFwLmlzVGV4dHVyZSYmKG4ubWV0YWxuZXNzTWFwPXRoaXMubWV0YWxuZXNzTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmVtaXNzaXZlTWFwJiZ0aGlzLmVtaXNzaXZlTWFwLmlzVGV4dHVyZSYmKG4uZW1pc3NpdmVNYXA9dGhpcy5lbWlzc2l2ZU1hcC50b0pTT04odCkudXVpZCksdGhpcy5zcGVjdWxhck1hcCYmdGhpcy5zcGVjdWxhck1hcC5pc1RleHR1cmUmJihuLnNwZWN1bGFyTWFwPXRoaXMuc3BlY3VsYXJNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXAmJnRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXAuaXNUZXh0dXJlJiYobi5zcGVjdWxhckludGVuc2l0eU1hcD10aGlzLnNwZWN1bGFySW50ZW5zaXR5TWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLnNwZWN1bGFyVGludE1hcCYmdGhpcy5zcGVjdWxhclRpbnRNYXAuaXNUZXh0dXJlJiYobi5zcGVjdWxhclRpbnRNYXA9dGhpcy5zcGVjdWxhclRpbnRNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuZW52TWFwJiZ0aGlzLmVudk1hcC5pc1RleHR1cmUmJihuLmVudk1hcD10aGlzLmVudk1hcC50b0pTT04odCkudXVpZCx2b2lkIDAhPT10aGlzLmNvbWJpbmUmJihuLmNvbWJpbmU9dGhpcy5jb21iaW5lKSksdm9pZCAwIT09dGhpcy5lbnZNYXBJbnRlbnNpdHkmJihuLmVudk1hcEludGVuc2l0eT10aGlzLmVudk1hcEludGVuc2l0eSksdm9pZCAwIT09dGhpcy5yZWZsZWN0aXZpdHkmJihuLnJlZmxlY3Rpdml0eT10aGlzLnJlZmxlY3Rpdml0eSksdm9pZCAwIT09dGhpcy5yZWZyYWN0aW9uUmF0aW8mJihuLnJlZnJhY3Rpb25SYXRpbz10aGlzLnJlZnJhY3Rpb25SYXRpbyksdGhpcy5ncmFkaWVudE1hcCYmdGhpcy5ncmFkaWVudE1hcC5pc1RleHR1cmUmJihuLmdyYWRpZW50TWFwPXRoaXMuZ3JhZGllbnRNYXAudG9KU09OKHQpLnV1aWQpLHZvaWQgMCE9PXRoaXMudHJhbnNtaXNzaW9uJiYobi50cmFuc21pc3Npb249dGhpcy50cmFuc21pc3Npb24pLHRoaXMudHJhbnNtaXNzaW9uTWFwJiZ0aGlzLnRyYW5zbWlzc2lvbk1hcC5pc1RleHR1cmUmJihuLnRyYW5zbWlzc2lvbk1hcD10aGlzLnRyYW5zbWlzc2lvbk1hcC50b0pTT04odCkudXVpZCksdm9pZCAwIT09dGhpcy50aGlja25lc3MmJihuLnRoaWNrbmVzcz10aGlzLnRoaWNrbmVzcyksdGhpcy50aGlja25lc3NNYXAmJnRoaXMudGhpY2tuZXNzTWFwLmlzVGV4dHVyZSYmKG4udGhpY2tuZXNzTWFwPXRoaXMudGhpY2tuZXNzTWFwLnRvSlNPTih0KS51dWlkKSx2b2lkIDAhPT10aGlzLmF0dGVudWF0aW9uRGlzdGFuY2UmJihuLmF0dGVudWF0aW9uRGlzdGFuY2U9dGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlKSx2b2lkIDAhPT10aGlzLmF0dGVudWF0aW9uVGludCYmKG4uYXR0ZW51YXRpb25UaW50PXRoaXMuYXR0ZW51YXRpb25UaW50LmdldEhleCgpKSx2b2lkIDAhPT10aGlzLnNpemUmJihuLnNpemU9dGhpcy5zaXplKSxudWxsIT09dGhpcy5zaGFkb3dTaWRlJiYobi5zaGFkb3dTaWRlPXRoaXMuc2hhZG93U2lkZSksdm9pZCAwIT09dGhpcy5zaXplQXR0ZW51YXRpb24mJihuLnNpemVBdHRlbnVhdGlvbj10aGlzLnNpemVBdHRlbnVhdGlvbiksMSE9PXRoaXMuYmxlbmRpbmcmJihuLmJsZW5kaW5nPXRoaXMuYmxlbmRpbmcpLDAhPT10aGlzLnNpZGUmJihuLnNpZGU9dGhpcy5zaWRlKSx0aGlzLnZlcnRleENvbG9ycyYmKG4udmVydGV4Q29sb3JzPSEwKSx0aGlzLm9wYWNpdHk8MSYmKG4ub3BhY2l0eT10aGlzLm9wYWNpdHkpLCEwPT09dGhpcy50cmFuc3BhcmVudCYmKG4udHJhbnNwYXJlbnQ9dGhpcy50cmFuc3BhcmVudCksbi5kZXB0aEZ1bmM9dGhpcy5kZXB0aEZ1bmMsbi5kZXB0aFRlc3Q9dGhpcy5kZXB0aFRlc3Qsbi5kZXB0aFdyaXRlPXRoaXMuZGVwdGhXcml0ZSxuLmNvbG9yV3JpdGU9dGhpcy5jb2xvcldyaXRlLG4uc3RlbmNpbFdyaXRlPXRoaXMuc3RlbmNpbFdyaXRlLG4uc3RlbmNpbFdyaXRlTWFzaz10aGlzLnN0ZW5jaWxXcml0ZU1hc2ssbi5zdGVuY2lsRnVuYz10aGlzLnN0ZW5jaWxGdW5jLG4uc3RlbmNpbFJlZj10aGlzLnN0ZW5jaWxSZWYsbi5zdGVuY2lsRnVuY01hc2s9dGhpcy5zdGVuY2lsRnVuY01hc2ssbi5zdGVuY2lsRmFpbD10aGlzLnN0ZW5jaWxGYWlsLG4uc3RlbmNpbFpGYWlsPXRoaXMuc3RlbmNpbFpGYWlsLG4uc3RlbmNpbFpQYXNzPXRoaXMuc3RlbmNpbFpQYXNzLHRoaXMucm90YXRpb24mJjAhPT10aGlzLnJvdGF0aW9uJiYobi5yb3RhdGlvbj10aGlzLnJvdGF0aW9uKSwhMD09PXRoaXMucG9seWdvbk9mZnNldCYmKG4ucG9seWdvbk9mZnNldD0hMCksMCE9PXRoaXMucG9seWdvbk9mZnNldEZhY3RvciYmKG4ucG9seWdvbk9mZnNldEZhY3Rvcj10aGlzLnBvbHlnb25PZmZzZXRGYWN0b3IpLDAhPT10aGlzLnBvbHlnb25PZmZzZXRVbml0cyYmKG4ucG9seWdvbk9mZnNldFVuaXRzPXRoaXMucG9seWdvbk9mZnNldFVuaXRzKSx0aGlzLmxpbmV3aWR0aCYmMSE9PXRoaXMubGluZXdpZHRoJiYobi5saW5ld2lkdGg9dGhpcy5saW5ld2lkdGgpLHZvaWQgMCE9PXRoaXMuZGFzaFNpemUmJihuLmRhc2hTaXplPXRoaXMuZGFzaFNpemUpLHZvaWQgMCE9PXRoaXMuZ2FwU2l6ZSYmKG4uZ2FwU2l6ZT10aGlzLmdhcFNpemUpLHZvaWQgMCE9PXRoaXMuc2NhbGUmJihuLnNjYWxlPXRoaXMuc2NhbGUpLCEwPT09dGhpcy5kaXRoZXJpbmcmJihuLmRpdGhlcmluZz0hMCksdGhpcy5hbHBoYVRlc3Q+MCYmKG4uYWxwaGFUZXN0PXRoaXMuYWxwaGFUZXN0KSwhMD09PXRoaXMuYWxwaGFUb0NvdmVyYWdlJiYobi5hbHBoYVRvQ292ZXJhZ2U9dGhpcy5hbHBoYVRvQ292ZXJhZ2UpLCEwPT09dGhpcy5wcmVtdWx0aXBsaWVkQWxwaGEmJihuLnByZW11bHRpcGxpZWRBbHBoYT10aGlzLnByZW11bHRpcGxpZWRBbHBoYSksITA9PT10aGlzLndpcmVmcmFtZSYmKG4ud2lyZWZyYW1lPXRoaXMud2lyZWZyYW1lKSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD4xJiYobi53aXJlZnJhbWVMaW5ld2lkdGg9dGhpcy53aXJlZnJhbWVMaW5ld2lkdGgpLCJyb3VuZCIhPT10aGlzLndpcmVmcmFtZUxpbmVjYXAmJihuLndpcmVmcmFtZUxpbmVjYXA9dGhpcy53aXJlZnJhbWVMaW5lY2FwKSwicm91bmQiIT09dGhpcy53aXJlZnJhbWVMaW5lam9pbiYmKG4ud2lyZWZyYW1lTGluZWpvaW49dGhpcy53aXJlZnJhbWVMaW5lam9pbiksITA9PT10aGlzLmZsYXRTaGFkaW5nJiYobi5mbGF0U2hhZGluZz10aGlzLmZsYXRTaGFkaW5nKSwhMT09PXRoaXMudmlzaWJsZSYmKG4udmlzaWJsZT0hMSksITE9PT10aGlzLnRvbmVNYXBwZWQmJihuLnRvbmVNYXBwZWQ9ITEpLCJ7fSIhPT1KU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJEYXRhKSYmKG4udXNlckRhdGE9dGhpcy51c2VyRGF0YSksZSl7Y29uc3QgZT1pKHQudGV4dHVyZXMpLHI9aSh0LmltYWdlcyk7ZS5sZW5ndGg+MCYmKG4udGV4dHVyZXM9ZSksci5sZW5ndGg+MCYmKG4uaW1hZ2VzPXIpfXJldHVybiBufWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7dGhpcy5uYW1lPXQubmFtZSx0aGlzLmZvZz10LmZvZyx0aGlzLmJsZW5kaW5nPXQuYmxlbmRpbmcsdGhpcy5zaWRlPXQuc2lkZSx0aGlzLnZlcnRleENvbG9ycz10LnZlcnRleENvbG9ycyx0aGlzLm9wYWNpdHk9dC5vcGFjaXR5LHRoaXMudHJhbnNwYXJlbnQ9dC50cmFuc3BhcmVudCx0aGlzLmJsZW5kU3JjPXQuYmxlbmRTcmMsdGhpcy5ibGVuZERzdD10LmJsZW5kRHN0LHRoaXMuYmxlbmRFcXVhdGlvbj10LmJsZW5kRXF1YXRpb24sdGhpcy5ibGVuZFNyY0FscGhhPXQuYmxlbmRTcmNBbHBoYSx0aGlzLmJsZW5kRHN0QWxwaGE9dC5ibGVuZERzdEFscGhhLHRoaXMuYmxlbmRFcXVhdGlvbkFscGhhPXQuYmxlbmRFcXVhdGlvbkFscGhhLHRoaXMuZGVwdGhGdW5jPXQuZGVwdGhGdW5jLHRoaXMuZGVwdGhUZXN0PXQuZGVwdGhUZXN0LHRoaXMuZGVwdGhXcml0ZT10LmRlcHRoV3JpdGUsdGhpcy5zdGVuY2lsV3JpdGVNYXNrPXQuc3RlbmNpbFdyaXRlTWFzayx0aGlzLnN0ZW5jaWxGdW5jPXQuc3RlbmNpbEZ1bmMsdGhpcy5zdGVuY2lsUmVmPXQuc3RlbmNpbFJlZix0aGlzLnN0ZW5jaWxGdW5jTWFzaz10LnN0ZW5jaWxGdW5jTWFzayx0aGlzLnN0ZW5jaWxGYWlsPXQuc3RlbmNpbEZhaWwsdGhpcy5zdGVuY2lsWkZhaWw9dC5zdGVuY2lsWkZhaWwsdGhpcy5zdGVuY2lsWlBhc3M9dC5zdGVuY2lsWlBhc3MsdGhpcy5zdGVuY2lsV3JpdGU9dC5zdGVuY2lsV3JpdGU7Y29uc3QgZT10LmNsaXBwaW5nUGxhbmVzO2xldCBuPW51bGw7aWYobnVsbCE9PWUpe2NvbnN0IHQ9ZS5sZW5ndGg7bj1uZXcgQXJyYXkodCk7Zm9yKGxldCBpPTA7aSE9PXQ7KytpKW5baV09ZVtpXS5jbG9uZSgpfXJldHVybiB0aGlzLmNsaXBwaW5nUGxhbmVzPW4sdGhpcy5jbGlwSW50ZXJzZWN0aW9uPXQuY2xpcEludGVyc2VjdGlvbix0aGlzLmNsaXBTaGFkb3dzPXQuY2xpcFNoYWRvd3MsdGhpcy5zaGFkb3dTaWRlPXQuc2hhZG93U2lkZSx0aGlzLmNvbG9yV3JpdGU9dC5jb2xvcldyaXRlLHRoaXMucHJlY2lzaW9uPXQucHJlY2lzaW9uLHRoaXMucG9seWdvbk9mZnNldD10LnBvbHlnb25PZmZzZXQsdGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yPXQucG9seWdvbk9mZnNldEZhY3Rvcix0aGlzLnBvbHlnb25PZmZzZXRVbml0cz10LnBvbHlnb25PZmZzZXRVbml0cyx0aGlzLmRpdGhlcmluZz10LmRpdGhlcmluZyx0aGlzLmFscGhhVGVzdD10LmFscGhhVGVzdCx0aGlzLmFscGhhVG9Db3ZlcmFnZT10LmFscGhhVG9Db3ZlcmFnZSx0aGlzLnByZW11bHRpcGxpZWRBbHBoYT10LnByZW11bHRpcGxpZWRBbHBoYSx0aGlzLnZpc2libGU9dC52aXNpYmxlLHRoaXMudG9uZU1hcHBlZD10LnRvbmVNYXBwZWQsdGhpcy51c2VyRGF0YT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQudXNlckRhdGEpKSx0aGlzfWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9c2V0IG5lZWRzVXBkYXRlKHQpeyEwPT09dCYmdGhpcy52ZXJzaW9uKyt9fVVRdC5wcm90b3R5cGUuaXNNYXRlcmlhbD0hMDtjb25zdCBqUXQ9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH0sR1F0PXtoOjAsczowLGw6MH0sV1F0PXtoOjAsczowLGw6MH07ZnVuY3Rpb24gcVF0KHQsZSxuKXtyZXR1cm4gbjwwJiYobis9MSksbj4xJiYobi09MSksbjwxLzY/dCs2KihlLXQpKm46bjwuNT9lOm48Mi8zP3QrNiooZS10KSooMi8zLW4pOnR9ZnVuY3Rpb24gWVF0KHQpe3JldHVybiB0PC4wNDA0NT8uMDc3Mzk5MzgwOCp0Ok1hdGgucG93KC45NDc4NjcyOTg2KnQrLjA1MjEzMjcwMTQsMi40KX1mdW5jdGlvbiBYUXQodCl7cmV0dXJuIHQ8LjAwMzEzMDg/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LC40MTY2NiktLjA1NX1jbGFzcyAkUXR7Y29uc3RydWN0b3IodCxlLG4pe3JldHVybiB2b2lkIDA9PT1lJiZ2b2lkIDA9PT1uP3RoaXMuc2V0KHQpOnRoaXMuc2V0UkdCKHQsZSxuKX1zZXQodCl7cmV0dXJuIHQmJnQuaXNDb2xvcj90aGlzLmNvcHkodCk6Im51bWJlciI9PXR5cGVvZiB0P3RoaXMuc2V0SGV4KHQpOiJzdHJpbmciPT10eXBlb2YgdCYmdGhpcy5zZXRTdHlsZSh0KSx0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy5yPXQsdGhpcy5nPXQsdGhpcy5iPXQsdGhpc31zZXRIZXgodCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSx0aGlzLnI9KHQ+PjE2JjI1NSkvMjU1LHRoaXMuZz0odD4+OCYyNTUpLzI1NSx0aGlzLmI9KDI1NSZ0KS8yNTUsdGhpc31zZXRSR0IodCxlLG4pe3JldHVybiB0aGlzLnI9dCx0aGlzLmc9ZSx0aGlzLmI9bix0aGlzfXNldEhTTCh0LGUsbil7aWYodD1LWnQodCwxKSxlPSRadChlLDAsMSksbj0kWnQobiwwLDEpLDA9PT1lKXRoaXMucj10aGlzLmc9dGhpcy5iPW47ZWxzZXtjb25zdCBpPW48PS41P24qKDErZSk6bitlLW4qZSxyPTIqbi1pO3RoaXMucj1xUXQocixpLHQrMS8zKSx0aGlzLmc9cVF0KHIsaSx0KSx0aGlzLmI9cVF0KHIsaSx0LTEvMyl9cmV0dXJuIHRoaXN9c2V0U3R5bGUodCl7ZnVuY3Rpb24gZShlKXt2b2lkIDAhPT1lJiZwYXJzZUZsb2F0KGUpPDEmJmNvbnNvbGUud2FybigiVEhSRUUuQ29sb3I6IEFscGhhIGNvbXBvbmVudCBvZiAiK3QrIiB3aWxsIGJlIGlnbm9yZWQuIil9bGV0IG47aWYobj0vXigoPzpyZ2J8aHNsKWE/KVwoKFteXCldKilcKS8uZXhlYyh0KSl7bGV0IHQ7Y29uc3QgaT1uWzJdO3N3aXRjaChuWzFdKXtjYXNlInJnYiI6Y2FzZSJyZ2JhIjppZih0PS9eXHMqKFxkKylccyosXHMqKFxkKylccyosXHMqKFxkKylccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMoaSkpcmV0dXJuIHRoaXMucj1NYXRoLm1pbigyNTUscGFyc2VJbnQodFsxXSwxMCkpLzI1NSx0aGlzLmc9TWF0aC5taW4oMjU1LHBhcnNlSW50KHRbMl0sMTApKS8yNTUsdGhpcy5iPU1hdGgubWluKDI1NSxwYXJzZUludCh0WzNdLDEwKSkvMjU1LGUodFs0XSksdGhpcztpZih0PS9eXHMqKFxkKylcJVxzKixccyooXGQrKVwlXHMqLFxzKihcZCspXCVccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMoaSkpcmV0dXJuIHRoaXMucj1NYXRoLm1pbigxMDAscGFyc2VJbnQodFsxXSwxMCkpLzEwMCx0aGlzLmc9TWF0aC5taW4oMTAwLHBhcnNlSW50KHRbMl0sMTApKS8xMDAsdGhpcy5iPU1hdGgubWluKDEwMCxwYXJzZUludCh0WzNdLDEwKSkvMTAwLGUodFs0XSksdGhpczticmVhaztjYXNlImhzbCI6Y2FzZSJoc2xhIjppZih0PS9eXHMqKFxkKlwuP1xkKylccyosXHMqKFxkKylcJVxzKixccyooXGQrKVwlXHMqKD86LFxzKihcZCpcLj9cZCspXHMqKT8kLy5leGVjKGkpKXtjb25zdCBuPXBhcnNlRmxvYXQodFsxXSkvMzYwLGk9cGFyc2VJbnQodFsyXSwxMCkvMTAwLHI9cGFyc2VJbnQodFszXSwxMCkvMTAwO3JldHVybiBlKHRbNF0pLHRoaXMuc2V0SFNMKG4saSxyKX19fWVsc2UgaWYobj0vXlwjKFtBLUZhLWZcZF0rKSQvLmV4ZWModCkpe2NvbnN0IHQ9blsxXSxlPXQubGVuZ3RoO2lmKDM9PT1lKXJldHVybiB0aGlzLnI9cGFyc2VJbnQodC5jaGFyQXQoMCkrdC5jaGFyQXQoMCksMTYpLzI1NSx0aGlzLmc9cGFyc2VJbnQodC5jaGFyQXQoMSkrdC5jaGFyQXQoMSksMTYpLzI1NSx0aGlzLmI9cGFyc2VJbnQodC5jaGFyQXQoMikrdC5jaGFyQXQoMiksMTYpLzI1NSx0aGlzO2lmKDY9PT1lKXJldHVybiB0aGlzLnI9cGFyc2VJbnQodC5jaGFyQXQoMCkrdC5jaGFyQXQoMSksMTYpLzI1NSx0aGlzLmc9cGFyc2VJbnQodC5jaGFyQXQoMikrdC5jaGFyQXQoMyksMTYpLzI1NSx0aGlzLmI9cGFyc2VJbnQodC5jaGFyQXQoNCkrdC5jaGFyQXQoNSksMTYpLzI1NSx0aGlzfXJldHVybiB0JiZ0Lmxlbmd0aD4wP3RoaXMuc2V0Q29sb3JOYW1lKHQpOnRoaXN9c2V0Q29sb3JOYW1lKHQpe2NvbnN0IGU9alF0W3QudG9Mb3dlckNhc2UoKV07cmV0dXJuIHZvaWQgMCE9PWU/dGhpcy5zZXRIZXgoZSk6Y29uc29sZS53YXJuKCJUSFJFRS5Db2xvcjogVW5rbm93biBjb2xvciAiK3QpLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5yLHRoaXMuZyx0aGlzLmIpfWNvcHkodCl7cmV0dXJuIHRoaXMucj10LnIsdGhpcy5nPXQuZyx0aGlzLmI9dC5iLHRoaXN9Y29weUdhbW1hVG9MaW5lYXIodCxlPTIpe3JldHVybiB0aGlzLnI9TWF0aC5wb3codC5yLGUpLHRoaXMuZz1NYXRoLnBvdyh0LmcsZSksdGhpcy5iPU1hdGgucG93KHQuYixlKSx0aGlzfWNvcHlMaW5lYXJUb0dhbW1hKHQsZT0yKXtjb25zdCBuPWU+MD8xL2U6MTtyZXR1cm4gdGhpcy5yPU1hdGgucG93KHQucixuKSx0aGlzLmc9TWF0aC5wb3codC5nLG4pLHRoaXMuYj1NYXRoLnBvdyh0LmIsbiksdGhpc31jb252ZXJ0R2FtbWFUb0xpbmVhcih0KXtyZXR1cm4gdGhpcy5jb3B5R2FtbWFUb0xpbmVhcih0aGlzLHQpLHRoaXN9Y29udmVydExpbmVhclRvR2FtbWEodCl7cmV0dXJuIHRoaXMuY29weUxpbmVhclRvR2FtbWEodGhpcyx0KSx0aGlzfWNvcHlTUkdCVG9MaW5lYXIodCl7cmV0dXJuIHRoaXMucj1ZUXQodC5yKSx0aGlzLmc9WVF0KHQuZyksdGhpcy5iPVlRdCh0LmIpLHRoaXN9Y29weUxpbmVhclRvU1JHQih0KXtyZXR1cm4gdGhpcy5yPVhRdCh0LnIpLHRoaXMuZz1YUXQodC5nKSx0aGlzLmI9WFF0KHQuYiksdGhpc31jb252ZXJ0U1JHQlRvTGluZWFyKCl7cmV0dXJuIHRoaXMuY29weVNSR0JUb0xpbmVhcih0aGlzKSx0aGlzfWNvbnZlcnRMaW5lYXJUb1NSR0IoKXtyZXR1cm4gdGhpcy5jb3B5TGluZWFyVG9TUkdCKHRoaXMpLHRoaXN9Z2V0SGV4KCl7cmV0dXJuIDI1NSp0aGlzLnI8PDE2XjI1NSp0aGlzLmc8PDheMjU1KnRoaXMuYjw8MH1nZXRIZXhTdHJpbmcoKXtyZXR1cm4oIjAwMDAwMCIrdGhpcy5nZXRIZXgoKS50b1N0cmluZygxNikpLnNsaWNlKC02KX1nZXRIU0wodCl7Y29uc3QgZT10aGlzLnIsbj10aGlzLmcsaT10aGlzLmIscj1NYXRoLm1heChlLG4saSksbz1NYXRoLm1pbihlLG4saSk7bGV0IGEscztjb25zdCBsPShvK3IpLzI7aWYobz09PXIpYT0wLHM9MDtlbHNle2NvbnN0IHQ9ci1vO3N3aXRjaChzPWw8PS41P3QvKHIrbyk6dC8oMi1yLW8pLHIpe2Nhc2UgZTphPShuLWkpL3QrKG48aT82OjApO2JyZWFrO2Nhc2UgbjphPShpLWUpL3QrMjticmVhaztjYXNlIGk6YT0oZS1uKS90KzR9YS89Nn1yZXR1cm4gdC5oPWEsdC5zPXMsdC5sPWwsdH1nZXRTdHlsZSgpe3JldHVybiJyZ2IoIisoMjU1KnRoaXMucnwwKSsiLCIrKDI1NSp0aGlzLmd8MCkrIiwiKygyNTUqdGhpcy5ifDApKyIpIn1vZmZzZXRIU0wodCxlLG4pe3JldHVybiB0aGlzLmdldEhTTChHUXQpLEdRdC5oKz10LEdRdC5zKz1lLEdRdC5sKz1uLHRoaXMuc2V0SFNMKEdRdC5oLEdRdC5zLEdRdC5sKSx0aGlzfWFkZCh0KXtyZXR1cm4gdGhpcy5yKz10LnIsdGhpcy5nKz10LmcsdGhpcy5iKz10LmIsdGhpc31hZGRDb2xvcnModCxlKXtyZXR1cm4gdGhpcy5yPXQucitlLnIsdGhpcy5nPXQuZytlLmcsdGhpcy5iPXQuYitlLmIsdGhpc31hZGRTY2FsYXIodCl7cmV0dXJuIHRoaXMucis9dCx0aGlzLmcrPXQsdGhpcy5iKz10LHRoaXN9c3ViKHQpe3JldHVybiB0aGlzLnI9TWF0aC5tYXgoMCx0aGlzLnItdC5yKSx0aGlzLmc9TWF0aC5tYXgoMCx0aGlzLmctdC5nKSx0aGlzLmI9TWF0aC5tYXgoMCx0aGlzLmItdC5iKSx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLnIqPXQucix0aGlzLmcqPXQuZyx0aGlzLmIqPXQuYix0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLnIqPXQsdGhpcy5nKj10LHRoaXMuYio9dCx0aGlzfWxlcnAodCxlKXtyZXR1cm4gdGhpcy5yKz0odC5yLXRoaXMucikqZSx0aGlzLmcrPSh0LmctdGhpcy5nKSplLHRoaXMuYis9KHQuYi10aGlzLmIpKmUsdGhpc31sZXJwQ29sb3JzKHQsZSxuKXtyZXR1cm4gdGhpcy5yPXQucisoZS5yLXQucikqbix0aGlzLmc9dC5nKyhlLmctdC5nKSpuLHRoaXMuYj10LmIrKGUuYi10LmIpKm4sdGhpc31sZXJwSFNMKHQsZSl7dGhpcy5nZXRIU0woR1F0KSx0LmdldEhTTChXUXQpO2NvbnN0IG49Wlp0KEdRdC5oLFdRdC5oLGUpLGk9Wlp0KEdRdC5zLFdRdC5zLGUpLHI9Wlp0KEdRdC5sLFdRdC5sLGUpO3JldHVybiB0aGlzLnNldEhTTChuLGksciksdGhpc31lcXVhbHModCl7cmV0dXJuIHQucj09PXRoaXMuciYmdC5nPT09dGhpcy5nJiZ0LmI9PT10aGlzLmJ9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy5yPXRbZV0sdGhpcy5nPXRbZSsxXSx0aGlzLmI9dFtlKzJdLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy5yLHRbZSsxXT10aGlzLmcsdFtlKzJdPXRoaXMuYix0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxlKXtyZXR1cm4gdGhpcy5yPXQuZ2V0WChlKSx0aGlzLmc9dC5nZXRZKGUpLHRoaXMuYj10LmdldFooZSksITA9PT10Lm5vcm1hbGl6ZWQmJih0aGlzLnIvPTI1NSx0aGlzLmcvPTI1NSx0aGlzLmIvPTI1NSksdGhpc310b0pTT04oKXtyZXR1cm4gdGhpcy5nZXRIZXgoKX19JFF0Lk5BTUVTPWpRdCwkUXQucHJvdG90eXBlLmlzQ29sb3I9ITAsJFF0LnByb3RvdHlwZS5yPTEsJFF0LnByb3RvdHlwZS5nPTEsJFF0LnByb3RvdHlwZS5iPTE7Y2xhc3MgS1F0IGV4dGVuZHMgVVF0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoQmFzaWNNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgJFF0KDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLnNwZWN1bGFyTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5jb21iaW5lPTAsdGhpcy5yZWZsZWN0aXZpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX1LUXQucHJvdG90eXBlLmlzTWVzaEJhc2ljTWF0ZXJpYWw9ITA7Y29uc3QgWlF0PW5ldyBDSnQsSlF0PW5ldyBtSnQ7Y2xhc3MgUVF0e2NvbnN0cnVjdG9yKHQsZSxuKXtpZihBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogYXJyYXkgc2hvdWxkIGJlIGEgVHlwZWQgQXJyYXkuIik7dGhpcy5uYW1lPSIiLHRoaXMuYXJyYXk9dCx0aGlzLml0ZW1TaXplPWUsdGhpcy5jb3VudD12b2lkIDAhPT10P3QubGVuZ3RoL2U6MCx0aGlzLm5vcm1hbGl6ZWQ9ITA9PT1uLHRoaXMudXNhZ2U9Rlp0LHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MH1vblVwbG9hZENhbGxiYWNrKCl7fXNldCBuZWVkc1VwZGF0ZSh0KXshMD09PXQmJnRoaXMudmVyc2lvbisrfXNldFVzYWdlKHQpe3JldHVybiB0aGlzLnVzYWdlPXQsdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm5hbWU9dC5uYW1lLHRoaXMuYXJyYXk9bmV3IHQuYXJyYXkuY29uc3RydWN0b3IodC5hcnJheSksdGhpcy5pdGVtU2l6ZT10Lml0ZW1TaXplLHRoaXMuY291bnQ9dC5jb3VudCx0aGlzLm5vcm1hbGl6ZWQ9dC5ub3JtYWxpemVkLHRoaXMudXNhZ2U9dC51c2FnZSx0aGlzfWNvcHlBdCh0LGUsbil7dCo9dGhpcy5pdGVtU2l6ZSxuKj1lLml0ZW1TaXplO2ZvcihsZXQgaT0wLHI9dGhpcy5pdGVtU2l6ZTtpPHI7aSsrKXRoaXMuYXJyYXlbdCtpXT1lLmFycmF5W24raV07cmV0dXJuIHRoaXN9Y29weUFycmF5KHQpe3JldHVybiB0aGlzLmFycmF5LnNldCh0KSx0aGlzfWNvcHlDb2xvcnNBcnJheSh0KXtjb25zdCBlPXRoaXMuYXJyYXk7bGV0IG49MDtmb3IobGV0IGk9MCxyPXQubGVuZ3RoO2k8cjtpKyspe2xldCByPXRbaV07dm9pZCAwPT09ciYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlDb2xvcnNBcnJheSgpOiBjb2xvciBpcyB1bmRlZmluZWQiLGkpLHI9bmV3ICRRdCksZVtuKytdPXIucixlW24rK109ci5nLGVbbisrXT1yLmJ9cmV0dXJuIHRoaXN9Y29weVZlY3RvcjJzQXJyYXkodCl7Y29uc3QgZT10aGlzLmFycmF5O2xldCBuPTA7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKXtsZXQgcj10W2ldO3ZvaWQgMD09PXImJihjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZS5jb3B5VmVjdG9yMnNBcnJheSgpOiB2ZWN0b3IgaXMgdW5kZWZpbmVkIixpKSxyPW5ldyBtSnQpLGVbbisrXT1yLngsZVtuKytdPXIueX1yZXR1cm4gdGhpc31jb3B5VmVjdG9yM3NBcnJheSh0KXtjb25zdCBlPXRoaXMuYXJyYXk7bGV0IG49MDtmb3IobGV0IGk9MCxyPXQubGVuZ3RoO2k8cjtpKyspe2xldCByPXRbaV07dm9pZCAwPT09ciYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3Izc0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLGkpLHI9bmV3IENKdCksZVtuKytdPXIueCxlW24rK109ci55LGVbbisrXT1yLnp9cmV0dXJuIHRoaXN9Y29weVZlY3RvcjRzQXJyYXkodCl7Y29uc3QgZT10aGlzLmFycmF5O2xldCBuPTA7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKXtsZXQgcj10W2ldO3ZvaWQgMD09PXImJihjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZS5jb3B5VmVjdG9yNHNBcnJheSgpOiB2ZWN0b3IgaXMgdW5kZWZpbmVkIixpKSxyPW5ldyB3SnQpLGVbbisrXT1yLngsZVtuKytdPXIueSxlW24rK109ci56LGVbbisrXT1yLnd9cmV0dXJuIHRoaXN9YXBwbHlNYXRyaXgzKHQpe2lmKDI9PT10aGlzLml0ZW1TaXplKWZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKUpRdC5mcm9tQnVmZmVyQXR0cmlidXRlKHRoaXMsZSksSlF0LmFwcGx5TWF0cml4Myh0KSx0aGlzLnNldFhZKGUsSlF0LngsSlF0LnkpO2Vsc2UgaWYoMz09PXRoaXMuaXRlbVNpemUpZm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspWlF0LmZyb21CdWZmZXJBdHRyaWJ1dGUodGhpcyxlKSxaUXQuYXBwbHlNYXRyaXgzKHQpLHRoaXMuc2V0WFlaKGUsWlF0LngsWlF0LnksWlF0LnopO3JldHVybiB0aGlzfWFwcGx5TWF0cml4NCh0KXtmb3IobGV0IGU9MCxuPXRoaXMuY291bnQ7ZTxuO2UrKylaUXQueD10aGlzLmdldFgoZSksWlF0Lnk9dGhpcy5nZXRZKGUpLFpRdC56PXRoaXMuZ2V0WihlKSxaUXQuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKGUsWlF0LngsWlF0LnksWlF0LnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKVpRdC54PXRoaXMuZ2V0WChlKSxaUXQueT10aGlzLmdldFkoZSksWlF0Lno9dGhpcy5nZXRaKGUpLFpRdC5hcHBseU5vcm1hbE1hdHJpeCh0KSx0aGlzLnNldFhZWihlLFpRdC54LFpRdC55LFpRdC56KTtyZXR1cm4gdGhpc310cmFuc2Zvcm1EaXJlY3Rpb24odCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspWlF0Lng9dGhpcy5nZXRYKGUpLFpRdC55PXRoaXMuZ2V0WShlKSxaUXQuej10aGlzLmdldFooZSksWlF0LnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzLnNldFhZWihlLFpRdC54LFpRdC55LFpRdC56KTtyZXR1cm4gdGhpc31zZXQodCxlPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LGUpLHRoaXN9Z2V0WCh0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemVdfXNldFgodCxlKXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemVdPWUsdGhpc31nZXRZKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsxXX1zZXRZKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzFdPWUsdGhpc31nZXRaKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsyXX1zZXRaKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzJdPWUsdGhpc31nZXRXKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSszXX1zZXRXKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzNdPWUsdGhpc31zZXRYWSh0LGUsbil7cmV0dXJuIHRoaXMuYXJyYXlbMCsodCo9dGhpcy5pdGVtU2l6ZSldPWUsdGhpcy5hcnJheVt0KzFdPW4sdGhpc31zZXRYWVoodCxlLG4saSl7cmV0dXJuIHRoaXMuYXJyYXlbMCsodCo9dGhpcy5pdGVtU2l6ZSldPWUsdGhpcy5hcnJheVt0KzFdPW4sdGhpcy5hcnJheVt0KzJdPWksdGhpc31zZXRYWVpXKHQsZSxuLGkscil7cmV0dXJuIHRoaXMuYXJyYXlbMCsodCo9dGhpcy5pdGVtU2l6ZSldPWUsdGhpcy5hcnJheVt0KzFdPW4sdGhpcy5hcnJheVt0KzJdPWksdGhpcy5hcnJheVt0KzNdPXIsdGhpc31vblVwbG9hZCh0KXtyZXR1cm4gdGhpcy5vblVwbG9hZENhbGxiYWNrPXQsdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLmFycmF5LHRoaXMuaXRlbVNpemUpLmNvcHkodGhpcyl9dG9KU09OKCl7Y29uc3QgdD17aXRlbVNpemU6dGhpcy5pdGVtU2l6ZSx0eXBlOnRoaXMuYXJyYXkuY29uc3RydWN0b3IubmFtZSxhcnJheTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLmFycmF5KSxub3JtYWxpemVkOnRoaXMubm9ybWFsaXplZH07cmV0dXJuIiIhPT10aGlzLm5hbWUmJih0Lm5hbWU9dGhpcy5uYW1lKSx0aGlzLnVzYWdlIT09Rlp0JiYodC51c2FnZT10aGlzLnVzYWdlKSwwPT09dGhpcy51cGRhdGVSYW5nZS5vZmZzZXQmJi0xPT09dGhpcy51cGRhdGVSYW5nZS5jb3VudHx8KHQudXBkYXRlUmFuZ2U9dGhpcy51cGRhdGVSYW5nZSksdH19UVF0LnByb3RvdHlwZS5pc0J1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyB0MXQgZXh0ZW5kcyBRUXR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBJbnQ4QXJyYXkodCksZSxuKX19Y2xhc3MgZTF0IGV4dGVuZHMgUVF0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgVWludDhBcnJheSh0KSxlLG4pfX1jbGFzcyBuMXQgZXh0ZW5kcyBRUXR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBVaW50OENsYW1wZWRBcnJheSh0KSxlLG4pfX1jbGFzcyBpMXQgZXh0ZW5kcyBRUXR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBJbnQxNkFycmF5KHQpLGUsbil9fWNsYXNzIHIxdCBleHRlbmRzIFFRdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IFVpbnQxNkFycmF5KHQpLGUsbil9fWNsYXNzIG8xdCBleHRlbmRzIFFRdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IEludDMyQXJyYXkodCksZSxuKX19Y2xhc3MgYTF0IGV4dGVuZHMgUVF0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgVWludDMyQXJyYXkodCksZSxuKX19Y2xhc3MgczF0IGV4dGVuZHMgUVF0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgVWludDE2QXJyYXkodCksZSxuKX19czF0LnByb3RvdHlwZS5pc0Zsb2F0MTZCdWZmZXJBdHRyaWJ1dGU9ITA7Y2xhc3MgbDF0IGV4dGVuZHMgUVF0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgRmxvYXQzMkFycmF5KHQpLGUsbil9fWNsYXNzIGMxdCBleHRlbmRzIFFRdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IEZsb2F0NjRBcnJheSh0KSxlLG4pfX1mdW5jdGlvbiB1MXQodCl7aWYoMD09PXQubGVuZ3RoKXJldHVybi0xLzA7bGV0IGU9dFswXTtmb3IobGV0IG49MSxpPXQubGVuZ3RoO248aTsrK24pdFtuXT5lJiYoZT10W25dKTtyZXR1cm4gZX1jb25zdCBoMXQ9e0ludDhBcnJheTpJbnQ4QXJyYXksVWludDhBcnJheTpVaW50OEFycmF5LFVpbnQ4Q2xhbXBlZEFycmF5OlVpbnQ4Q2xhbXBlZEFycmF5LEludDE2QXJyYXk6SW50MTZBcnJheSxVaW50MTZBcnJheTpVaW50MTZBcnJheSxJbnQzMkFycmF5OkludDMyQXJyYXksVWludDMyQXJyYXk6VWludDMyQXJyYXksRmxvYXQzMkFycmF5OkZsb2F0MzJBcnJheSxGbG9hdDY0QXJyYXk6RmxvYXQ2NEFycmF5fTtmdW5jdGlvbiBkMXQodCxlKXtyZXR1cm4gbmV3IGgxdFt0XShlKX1sZXQgcDF0PTA7Y29uc3QgZjF0PW5ldyByUXQsbTF0PW5ldyBrUXQsZzF0PW5ldyBDSnQsXzF0PW5ldyBMSnQseTF0PW5ldyBMSnQsdjF0PW5ldyBDSnQ7Y2xhc3MgYjF0IGV4dGVuZHMgalp0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTpwMXQrK30pLHRoaXMudXVpZD1YWnQoKSx0aGlzLm5hbWU9IiIsdGhpcy50eXBlPSJCdWZmZXJHZW9tZXRyeSIsdGhpcy5pbmRleD1udWxsLHRoaXMuYXR0cmlidXRlcz17fSx0aGlzLm1vcnBoQXR0cmlidXRlcz17fSx0aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPSExLHRoaXMuZ3JvdXBzPVtdLHRoaXMuYm91bmRpbmdCb3g9bnVsbCx0aGlzLmJvdW5kaW5nU3BoZXJlPW51bGwsdGhpcy5kcmF3UmFuZ2U9e3N0YXJ0OjAsY291bnQ6MS8wfSx0aGlzLnVzZXJEYXRhPXt9fWdldEluZGV4KCl7cmV0dXJuIHRoaXMuaW5kZXh9c2V0SW5kZXgodCl7cmV0dXJuIHRoaXMuaW5kZXg9QXJyYXkuaXNBcnJheSh0KT9uZXcodTF0KHQpPjY1NTM1P2ExdDpyMXQpKHQsMSk6dCx0aGlzfWdldEF0dHJpYnV0ZSh0KXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW3RdfXNldEF0dHJpYnV0ZSh0LGUpe3JldHVybiB0aGlzLmF0dHJpYnV0ZXNbdF09ZSx0aGlzfWRlbGV0ZUF0dHJpYnV0ZSh0KXtyZXR1cm4gZGVsZXRlIHRoaXMuYXR0cmlidXRlc1t0XSx0aGlzfWhhc0F0dHJpYnV0ZSh0KXtyZXR1cm4gdm9pZCAwIT09dGhpcy5hdHRyaWJ1dGVzW3RdfWFkZEdyb3VwKHQsZSxuPTApe3RoaXMuZ3JvdXBzLnB1c2goe3N0YXJ0OnQsY291bnQ6ZSxtYXRlcmlhbEluZGV4Om59KX1jbGVhckdyb3Vwcygpe3RoaXMuZ3JvdXBzPVtdfXNldERyYXdSYW5nZSh0LGUpe3RoaXMuZHJhd1JhbmdlLnN0YXJ0PXQsdGhpcy5kcmF3UmFuZ2UuY291bnQ9ZX1hcHBseU1hdHJpeDQodCl7Y29uc3QgZT10aGlzLmF0dHJpYnV0ZXMucG9zaXRpb247dm9pZCAwIT09ZSYmKGUuYXBwbHlNYXRyaXg0KHQpLGUubmVlZHNVcGRhdGU9ITApO2NvbnN0IG49dGhpcy5hdHRyaWJ1dGVzLm5vcm1hbDtpZih2b2lkIDAhPT1uKXtjb25zdCBlPShuZXcgZ0p0KS5nZXROb3JtYWxNYXRyaXgodCk7bi5hcHBseU5vcm1hbE1hdHJpeChlKSxuLm5lZWRzVXBkYXRlPSEwfWNvbnN0IGk9dGhpcy5hdHRyaWJ1dGVzLnRhbmdlbnQ7cmV0dXJuIHZvaWQgMCE9PWkmJihpLnRyYW5zZm9ybURpcmVjdGlvbih0KSxpLm5lZWRzVXBkYXRlPSEwKSxudWxsIT09dGhpcy5ib3VuZGluZ0JveCYmdGhpcy5jb21wdXRlQm91bmRpbmdCb3goKSxudWxsIT09dGhpcy5ib3VuZGluZ1NwaGVyZSYmdGhpcy5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSx0aGlzfWFwcGx5UXVhdGVybmlvbih0KXtyZXR1cm4gZjF0Lm1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpLHRoaXMuYXBwbHlNYXRyaXg0KGYxdCksdGhpc31yb3RhdGVYKHQpe3JldHVybiBmMXQubWFrZVJvdGF0aW9uWCh0KSx0aGlzLmFwcGx5TWF0cml4NChmMXQpLHRoaXN9cm90YXRlWSh0KXtyZXR1cm4gZjF0Lm1ha2VSb3RhdGlvblkodCksdGhpcy5hcHBseU1hdHJpeDQoZjF0KSx0aGlzfXJvdGF0ZVoodCl7cmV0dXJuIGYxdC5tYWtlUm90YXRpb25aKHQpLHRoaXMuYXBwbHlNYXRyaXg0KGYxdCksdGhpc310cmFuc2xhdGUodCxlLG4pe3JldHVybiBmMXQubWFrZVRyYW5zbGF0aW9uKHQsZSxuKSx0aGlzLmFwcGx5TWF0cml4NChmMXQpLHRoaXN9c2NhbGUodCxlLG4pe3JldHVybiBmMXQubWFrZVNjYWxlKHQsZSxuKSx0aGlzLmFwcGx5TWF0cml4NChmMXQpLHRoaXN9bG9va0F0KHQpe3JldHVybiBtMXQubG9va0F0KHQpLG0xdC51cGRhdGVNYXRyaXgoKSx0aGlzLmFwcGx5TWF0cml4NChtMXQubWF0cml4KSx0aGlzfWNlbnRlcigpe3JldHVybiB0aGlzLmNvbXB1dGVCb3VuZGluZ0JveCgpLHRoaXMuYm91bmRpbmdCb3guZ2V0Q2VudGVyKGcxdCkubmVnYXRlKCksdGhpcy50cmFuc2xhdGUoZzF0LngsZzF0LnksZzF0LnopLHRoaXN9c2V0RnJvbVBvaW50cyh0KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wLGk9dC5sZW5ndGg7bjxpO24rKyl7Y29uc3QgaT10W25dO2UucHVzaChpLngsaS55LGkuenx8MCl9cmV0dXJuIHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdChlLDMpKSx0aGlzfWNvbXB1dGVCb3VuZGluZ0JveCgpe251bGw9PT10aGlzLmJvdW5kaW5nQm94JiYodGhpcy5ib3VuZGluZ0JveD1uZXcgTEp0KTtjb25zdCB0PXRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbixlPXRoaXMubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uO2lmKHQmJnQuaXNHTEJ1ZmZlckF0dHJpYnV0ZSlyZXR1cm4gY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk6IEdMQnVmZmVyQXR0cmlidXRlIHJlcXVpcmVzIGEgbWFudWFsIGJvdW5kaW5nIGJveC4gQWx0ZXJuYXRpdmVseSBzZXQgIm1lc2guZnJ1c3R1bUN1bGxlZCIgdG8gImZhbHNlIi4nLHRoaXMpLHZvaWQgdGhpcy5ib3VuZGluZ0JveC5zZXQobmV3IENKdCgtMS8wLC0xLzAsLTEvMCksbmV3IENKdCgxLzAsMS8wLDEvMCkpO2lmKHZvaWQgMCE9PXQpe2lmKHRoaXMuYm91bmRpbmdCb3guc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KSxlKWZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKylfMXQuc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZShlW3RdKSx0aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPyh2MXQuYWRkVmVjdG9ycyh0aGlzLmJvdW5kaW5nQm94Lm1pbixfMXQubWluKSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQodjF0KSx2MXQuYWRkVmVjdG9ycyh0aGlzLmJvdW5kaW5nQm94Lm1heCxfMXQubWF4KSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQodjF0KSk6KHRoaXMuYm91bmRpbmdCb3guZXhwYW5kQnlQb2ludChfMXQubWluKSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQoXzF0Lm1heCkpfWVsc2UgdGhpcy5ib3VuZGluZ0JveC5tYWtlRW1wdHkoKTsoaXNOYU4odGhpcy5ib3VuZGluZ0JveC5taW4ueCl8fGlzTmFOKHRoaXMuYm91bmRpbmdCb3gubWluLnkpfHxpc05hTih0aGlzLmJvdW5kaW5nQm94Lm1pbi56KSkmJmNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpOiBDb21wdXRlZCBtaW4vbWF4IGhhdmUgTmFOIHZhbHVlcy4gVGhlICJwb3NpdGlvbiIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJyx0aGlzKX1jb21wdXRlQm91bmRpbmdTcGhlcmUoKXtudWxsPT09dGhpcy5ib3VuZGluZ1NwaGVyZSYmKHRoaXMuYm91bmRpbmdTcGhlcmU9bmV3ICRKdCk7Y29uc3QgdD10aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24sZT10aGlzLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbjtpZih0JiZ0LmlzR0xCdWZmZXJBdHRyaWJ1dGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiBHTEJ1ZmZlckF0dHJpYnV0ZSByZXF1aXJlcyBhIG1hbnVhbCBib3VuZGluZyBzcGhlcmUuIEFsdGVybmF0aXZlbHkgc2V0ICJtZXNoLmZydXN0dW1DdWxsZWQiIHRvICJmYWxzZSIuJyx0aGlzKSx2b2lkIHRoaXMuYm91bmRpbmdTcGhlcmUuc2V0KG5ldyBDSnQsMS8wKTtpZih0KXtjb25zdCBuPXRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyO2lmKF8xdC5zZXRGcm9tQnVmZmVyQXR0cmlidXRlKHQpLGUpZm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKXkxdC5zZXRGcm9tQnVmZmVyQXR0cmlidXRlKGVbdF0pLHRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU/KHYxdC5hZGRWZWN0b3JzKF8xdC5taW4seTF0Lm1pbiksXzF0LmV4cGFuZEJ5UG9pbnQodjF0KSx2MXQuYWRkVmVjdG9ycyhfMXQubWF4LHkxdC5tYXgpLF8xdC5leHBhbmRCeVBvaW50KHYxdCkpOihfMXQuZXhwYW5kQnlQb2ludCh5MXQubWluKSxfMXQuZXhwYW5kQnlQb2ludCh5MXQubWF4KSk7XzF0LmdldENlbnRlcihuKTtsZXQgaT0wO2ZvcihsZXQgZT0wLHI9dC5jb3VudDtlPHI7ZSsrKXYxdC5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSksaT1NYXRoLm1heChpLG4uZGlzdGFuY2VUb1NxdWFyZWQodjF0KSk7aWYoZSlmb3IobGV0IHI9MCxvPWUubGVuZ3RoO3I8bztyKyspe2NvbnN0IG89ZVtyXSxhPXRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU7Zm9yKGxldCBlPTAscj1vLmNvdW50O2U8cjtlKyspdjF0LmZyb21CdWZmZXJBdHRyaWJ1dGUobyxlKSxhJiYoZzF0LmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlKSx2MXQuYWRkKGcxdCkpLGk9TWF0aC5tYXgoaSxuLmRpc3RhbmNlVG9TcXVhcmVkKHYxdCkpfXRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzPU1hdGguc3FydChpKSxpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykmJmNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiBDb21wdXRlZCByYWRpdXMgaXMgTmFOLiBUaGUgInBvc2l0aW9uIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nLHRoaXMpfX1jb21wdXRlRmFjZU5vcm1hbHMoKXt9Y29tcHV0ZVRhbmdlbnRzKCl7Y29uc3QgdD10aGlzLmluZGV4LGU9dGhpcy5hdHRyaWJ1dGVzO2lmKG51bGw9PT10fHx2b2lkIDA9PT1lLnBvc2l0aW9ufHx2b2lkIDA9PT1lLm5vcm1hbHx8dm9pZCAwPT09ZS51dilyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmNvbXB1dGVUYW5nZW50cygpIGZhaWxlZC4gTWlzc2luZyByZXF1aXJlZCBhdHRyaWJ1dGVzIChpbmRleCwgcG9zaXRpb24sIG5vcm1hbCBvciB1dikiKTtjb25zdCBuPXQuYXJyYXksaT1lLnBvc2l0aW9uLmFycmF5LHI9ZS5ub3JtYWwuYXJyYXksbz1lLnV2LmFycmF5LGE9aS5sZW5ndGgvMzt2b2lkIDA9PT1lLnRhbmdlbnQmJnRoaXMuc2V0QXR0cmlidXRlKCJ0YW5nZW50IixuZXcgUVF0KG5ldyBGbG9hdDMyQXJyYXkoNCphKSw0KSk7Y29uc3Qgcz1lLnRhbmdlbnQuYXJyYXksbD1bXSxjPVtdO2ZvcihsZXQgdD0wO3Q8YTt0KyspbFt0XT1uZXcgQ0p0LGNbdF09bmV3IENKdDtjb25zdCB1PW5ldyBDSnQsaD1uZXcgQ0p0LGQ9bmV3IENKdCxwPW5ldyBtSnQsZj1uZXcgbUp0LG09bmV3IG1KdCxnPW5ldyBDSnQsXz1uZXcgQ0p0O2Z1bmN0aW9uIHkodCxlLG4pe3UuZnJvbUFycmF5KGksMyp0KSxoLmZyb21BcnJheShpLDMqZSksZC5mcm9tQXJyYXkoaSwzKm4pLHAuZnJvbUFycmF5KG8sMip0KSxmLmZyb21BcnJheShvLDIqZSksbS5mcm9tQXJyYXkobywyKm4pLGguc3ViKHUpLGQuc3ViKHUpLGYuc3ViKHApLG0uc3ViKHApO2NvbnN0IHI9MS8oZi54Km0ueS1tLngqZi55KTtpc0Zpbml0ZShyKSYmKGcuY29weShoKS5tdWx0aXBseVNjYWxhcihtLnkpLmFkZFNjYWxlZFZlY3RvcihkLC1mLnkpLm11bHRpcGx5U2NhbGFyKHIpLF8uY29weShkKS5tdWx0aXBseVNjYWxhcihmLngpLmFkZFNjYWxlZFZlY3RvcihoLC1tLngpLm11bHRpcGx5U2NhbGFyKHIpLGxbdF0uYWRkKGcpLGxbZV0uYWRkKGcpLGxbbl0uYWRkKGcpLGNbdF0uYWRkKF8pLGNbZV0uYWRkKF8pLGNbbl0uYWRkKF8pKX1sZXQgdj10aGlzLmdyb3VwczswPT09di5sZW5ndGgmJih2PVt7c3RhcnQ6MCxjb3VudDpuLmxlbmd0aH1dKTtmb3IobGV0IHQ9MCxlPXYubGVuZ3RoO3Q8ZTsrK3Qpe2NvbnN0IGU9dlt0XSxpPWUuc3RhcnQ7Zm9yKGxldCB0PWkscj1pK2UuY291bnQ7dDxyO3QrPTMpeShuW3QrMF0sblt0KzFdLG5bdCsyXSl9Y29uc3QgYj1uZXcgQ0p0LHg9bmV3IENKdCx3PW5ldyBDSnQsUz1uZXcgQ0p0O2Z1bmN0aW9uIE0odCl7dy5mcm9tQXJyYXkociwzKnQpLFMuY29weSh3KTtjb25zdCBlPWxbdF07Yi5jb3B5KGUpLGIuc3ViKHcubXVsdGlwbHlTY2FsYXIody5kb3QoZSkpKS5ub3JtYWxpemUoKSx4LmNyb3NzVmVjdG9ycyhTLGUpO2NvbnN0IG49eC5kb3QoY1t0XSk8MD8tMToxO3NbNCp0XT1iLngsc1s0KnQrMV09Yi55LHNbNCp0KzJdPWIueixzWzQqdCszXT1ufWZvcihsZXQgdD0wLGU9di5sZW5ndGg7dDxlOysrdCl7Y29uc3QgZT12W3RdLGk9ZS5zdGFydDtmb3IobGV0IHQ9aSxyPWkrZS5jb3VudDt0PHI7dCs9MylNKG5bdCswXSksTShuW3QrMV0pLE0oblt0KzJdKX19Y29tcHV0ZVZlcnRleE5vcm1hbHMoKXtjb25zdCB0PXRoaXMuaW5kZXgsZT10aGlzLmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKTtpZih2b2lkIDAhPT1lKXtsZXQgbj10aGlzLmdldEF0dHJpYnV0ZSgibm9ybWFsIik7aWYodm9pZCAwPT09biluPW5ldyBRUXQobmV3IEZsb2F0MzJBcnJheSgzKmUuY291bnQpLDMpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG4pO2Vsc2UgZm9yKGxldCB0PTAsZT1uLmNvdW50O3Q8ZTt0Kyspbi5zZXRYWVoodCwwLDAsMCk7Y29uc3QgaT1uZXcgQ0p0LHI9bmV3IENKdCxvPW5ldyBDSnQsYT1uZXcgQ0p0LHM9bmV3IENKdCxsPW5ldyBDSnQsYz1uZXcgQ0p0LHU9bmV3IENKdDtpZih0KWZvcihsZXQgaD0wLGQ9dC5jb3VudDtoPGQ7aCs9Myl7Y29uc3QgZD10LmdldFgoaCswKSxwPXQuZ2V0WChoKzEpLGY9dC5nZXRYKGgrMik7aS5mcm9tQnVmZmVyQXR0cmlidXRlKGUsZCksci5mcm9tQnVmZmVyQXR0cmlidXRlKGUscCksby5mcm9tQnVmZmVyQXR0cmlidXRlKGUsZiksYy5zdWJWZWN0b3JzKG8sciksdS5zdWJWZWN0b3JzKGksciksYy5jcm9zcyh1KSxhLmZyb21CdWZmZXJBdHRyaWJ1dGUobixkKSxzLmZyb21CdWZmZXJBdHRyaWJ1dGUobixwKSxsLmZyb21CdWZmZXJBdHRyaWJ1dGUobixmKSxhLmFkZChjKSxzLmFkZChjKSxsLmFkZChjKSxuLnNldFhZWihkLGEueCxhLnksYS56KSxuLnNldFhZWihwLHMueCxzLnkscy56KSxuLnNldFhZWihmLGwueCxsLnksbC56KX1lbHNlIGZvcihsZXQgdD0wLGE9ZS5jb3VudDt0PGE7dCs9MylpLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx0KzApLHIuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQrMSksby5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCsyKSxjLnN1YlZlY3RvcnMobyxyKSx1LnN1YlZlY3RvcnMoaSxyKSxjLmNyb3NzKHUpLG4uc2V0WFlaKHQrMCxjLngsYy55LGMueiksbi5zZXRYWVoodCsxLGMueCxjLnksYy56KSxuLnNldFhZWih0KzIsYy54LGMueSxjLnopO3RoaXMubm9ybWFsaXplTm9ybWFscygpLG4ubmVlZHNVcGRhdGU9ITB9fW1lcmdlKHQsZSl7aWYoIXR8fCF0LmlzQnVmZmVyR2VvbWV0cnkpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnkubWVyZ2UoKTogZ2VvbWV0cnkgbm90IGFuIGluc3RhbmNlIG9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5LiIsdCk7dm9pZCAwPT09ZSYmKGU9MCxjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5Lm1lcmdlKCk6IE92ZXJ3cml0aW5nIG9yaWdpbmFsIGdlb21ldHJ5LCBzdGFydGluZyBhdCBvZmZzZXQ9MC4gVXNlIEJ1ZmZlckdlb21ldHJ5VXRpbHMubWVyZ2VCdWZmZXJHZW9tZXRyaWVzKCkgZm9yIGxvc3NsZXNzIG1lcmdlLiIpKTtjb25zdCBuPXRoaXMuYXR0cmlidXRlcztmb3IoY29uc3QgaSBpbiBuKXtpZih2b2lkIDA9PT10LmF0dHJpYnV0ZXNbaV0pY29udGludWU7Y29uc3Qgcj1uW2ldLmFycmF5LG89dC5hdHRyaWJ1dGVzW2ldLGE9by5hcnJheSxzPW8uaXRlbVNpemUqZSxsPU1hdGgubWluKGEubGVuZ3RoLHIubGVuZ3RoLXMpO2ZvcihsZXQgdD0wLGU9czt0PGw7dCsrLGUrKylyW2VdPWFbdF19cmV0dXJuIHRoaXN9bm9ybWFsaXplTm9ybWFscygpe2NvbnN0IHQ9dGhpcy5hdHRyaWJ1dGVzLm5vcm1hbDtmb3IobGV0IGU9MCxuPXQuY291bnQ7ZTxuO2UrKyl2MXQuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpLHYxdC5ub3JtYWxpemUoKSx0LnNldFhZWihlLHYxdC54LHYxdC55LHYxdC56KX10b05vbkluZGV4ZWQoKXtmdW5jdGlvbiB0KHQsZSl7Y29uc3Qgbj10LmFycmF5LGk9dC5pdGVtU2l6ZSxyPXQubm9ybWFsaXplZCxvPW5ldyBuLmNvbnN0cnVjdG9yKGUubGVuZ3RoKmkpO2xldCBhPTAscz0wO2ZvcihsZXQgcj0wLGw9ZS5sZW5ndGg7cjxsO3IrKyl7YT10LmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU/ZVtyXSp0LmRhdGEuc3RyaWRlK3Qub2Zmc2V0OmVbcl0qaTtmb3IobGV0IHQ9MDt0PGk7dCsrKW9bcysrXT1uW2ErK119cmV0dXJuIG5ldyBRUXQobyxpLHIpfWlmKG51bGw9PT10aGlzLmluZGV4KXJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5LnRvTm9uSW5kZXhlZCgpOiBCdWZmZXJHZW9tZXRyeSBpcyBhbHJlYWR5IG5vbi1pbmRleGVkLiIpLHRoaXM7Y29uc3QgZT1uZXcgYjF0LG49dGhpcy5pbmRleC5hcnJheSxpPXRoaXMuYXR0cmlidXRlcztmb3IoY29uc3QgciBpbiBpKXtjb25zdCBvPXQoaVtyXSxuKTtlLnNldEF0dHJpYnV0ZShyLG8pfWNvbnN0IHI9dGhpcy5tb3JwaEF0dHJpYnV0ZXM7Zm9yKGNvbnN0IGkgaW4gcil7Y29uc3Qgbz1bXSxhPXJbaV07Zm9yKGxldCBlPTAsaT1hLmxlbmd0aDtlPGk7ZSsrKXtjb25zdCBpPXQoYVtlXSxuKTtvLnB1c2goaSl9ZS5tb3JwaEF0dHJpYnV0ZXNbaV09b31lLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPXRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU7Y29uc3Qgbz10aGlzLmdyb3Vwcztmb3IobGV0IHQ9MCxuPW8ubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49b1t0XTtlLmFkZEdyb3VwKG4uc3RhcnQsbi5jb3VudCxuLm1hdGVyaWFsSW5kZXgpfXJldHVybiBlfXRvSlNPTigpe2NvbnN0IHQ9e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJCdWZmZXJHZW9tZXRyeSIsZ2VuZXJhdG9yOiJCdWZmZXJHZW9tZXRyeS50b0pTT04ifX07aWYodC51dWlkPXRoaXMudXVpZCx0LnR5cGU9dGhpcy50eXBlLCIiIT09dGhpcy5uYW1lJiYodC5uYW1lPXRoaXMubmFtZSksT2JqZWN0LmtleXModGhpcy51c2VyRGF0YSkubGVuZ3RoPjAmJih0LnVzZXJEYXRhPXRoaXMudXNlckRhdGEpLHZvaWQgMCE9PXRoaXMucGFyYW1ldGVycyl7Y29uc3QgZT10aGlzLnBhcmFtZXRlcnM7Zm9yKGNvbnN0IG4gaW4gZSl2b2lkIDAhPT1lW25dJiYodFtuXT1lW25dKTtyZXR1cm4gdH10LmRhdGE9e2F0dHJpYnV0ZXM6e319O2NvbnN0IGU9dGhpcy5pbmRleDtudWxsIT09ZSYmKHQuZGF0YS5pbmRleD17dHlwZTplLmFycmF5LmNvbnN0cnVjdG9yLm5hbWUsYXJyYXk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZS5hcnJheSl9KTtjb25zdCBuPXRoaXMuYXR0cmlidXRlcztmb3IoY29uc3QgZSBpbiBuKXQuZGF0YS5hdHRyaWJ1dGVzW2VdPW5bZV0udG9KU09OKHQuZGF0YSk7Y29uc3QgaT17fTtsZXQgcj0hMTtmb3IoY29uc3QgZSBpbiB0aGlzLm1vcnBoQXR0cmlidXRlcyl7Y29uc3Qgbj10aGlzLm1vcnBoQXR0cmlidXRlc1tlXSxvPVtdO2ZvcihsZXQgZT0wLGk9bi5sZW5ndGg7ZTxpO2UrKylvLnB1c2gobltlXS50b0pTT04odC5kYXRhKSk7by5sZW5ndGg+MCYmKGlbZV09byxyPSEwKX1yJiYodC5kYXRhLm1vcnBoQXR0cmlidXRlcz1pLHQuZGF0YS5tb3JwaFRhcmdldHNSZWxhdGl2ZT10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlKTtjb25zdCBvPXRoaXMuZ3JvdXBzO28ubGVuZ3RoPjAmJih0LmRhdGEuZ3JvdXBzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobykpKTtjb25zdCBhPXRoaXMuYm91bmRpbmdTcGhlcmU7cmV0dXJuIG51bGwhPT1hJiYodC5kYXRhLmJvdW5kaW5nU3BoZXJlPXtjZW50ZXI6YS5jZW50ZXIudG9BcnJheSgpLHJhZGl1czphLnJhZGl1c30pLHR9Y2xvbmUoKXtyZXR1cm4obmV3IGIxdCkuY29weSh0aGlzKX1jb3B5KHQpe3RoaXMuaW5kZXg9bnVsbCx0aGlzLmF0dHJpYnV0ZXM9e30sdGhpcy5tb3JwaEF0dHJpYnV0ZXM9e30sdGhpcy5ncm91cHM9W10sdGhpcy5ib3VuZGluZ0JveD1udWxsLHRoaXMuYm91bmRpbmdTcGhlcmU9bnVsbDtjb25zdCBlPXt9O3RoaXMubmFtZT10Lm5hbWU7Y29uc3Qgbj10LmluZGV4O251bGwhPT1uJiZ0aGlzLnNldEluZGV4KG4uY2xvbmUoZSkpO2NvbnN0IGk9dC5hdHRyaWJ1dGVzO2Zvcihjb25zdCB0IGluIGkpdGhpcy5zZXRBdHRyaWJ1dGUodCxpW3RdLmNsb25lKGUpKTtjb25zdCByPXQubW9ycGhBdHRyaWJ1dGVzO2Zvcihjb25zdCB0IGluIHIpe2NvbnN0IG49W10saT1yW3RdO2ZvcihsZXQgdD0wLHI9aS5sZW5ndGg7dDxyO3QrKyluLnB1c2goaVt0XS5jbG9uZShlKSk7dGhpcy5tb3JwaEF0dHJpYnV0ZXNbdF09bn10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPXQubW9ycGhUYXJnZXRzUmVsYXRpdmU7Y29uc3Qgbz10Lmdyb3Vwcztmb3IobGV0IHQ9MCxlPW8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9b1t0XTt0aGlzLmFkZEdyb3VwKGUuc3RhcnQsZS5jb3VudCxlLm1hdGVyaWFsSW5kZXgpfWNvbnN0IGE9dC5ib3VuZGluZ0JveDtudWxsIT09YSYmKHRoaXMuYm91bmRpbmdCb3g9YS5jbG9uZSgpKTtjb25zdCBzPXQuYm91bmRpbmdTcGhlcmU7cmV0dXJuIG51bGwhPT1zJiYodGhpcy5ib3VuZGluZ1NwaGVyZT1zLmNsb25lKCkpLHRoaXMuZHJhd1JhbmdlLnN0YXJ0PXQuZHJhd1JhbmdlLnN0YXJ0LHRoaXMuZHJhd1JhbmdlLmNvdW50PXQuZHJhd1JhbmdlLmNvdW50LHRoaXMudXNlckRhdGE9dC51c2VyRGF0YSx0aGlzfWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9fWIxdC5wcm90b3R5cGUuaXNCdWZmZXJHZW9tZXRyeT0hMDtjb25zdCB4MXQ9bmV3IHJRdCx3MXQ9bmV3IGlRdCxTMXQ9bmV3ICRKdCxNMXQ9bmV3IENKdCxFMXQ9bmV3IENKdCxUMXQ9bmV3IENKdCxDMXQ9bmV3IENKdCxBMXQ9bmV3IENKdCxrMXQ9bmV3IENKdCxMMXQ9bmV3IENKdCxQMXQ9bmV3IENKdCxOMXQ9bmV3IENKdCxJMXQ9bmV3IG1KdCxSMXQ9bmV3IG1KdCxPMXQ9bmV3IG1KdCx6MXQ9bmV3IENKdCxEMXQ9bmV3IENKdDtjbGFzcyBCMXQgZXh0ZW5kcyBrUXR7Y29uc3RydWN0b3IodD1uZXcgYjF0LGU9bmV3IEtRdCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2giLHRoaXMuZ2VvbWV0cnk9dCx0aGlzLm1hdGVyaWFsPWUsdGhpcy51cGRhdGVNb3JwaFRhcmdldHMoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHZvaWQgMCE9PXQubW9ycGhUYXJnZXRJbmZsdWVuY2VzJiYodGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9dC5tb3JwaFRhcmdldEluZmx1ZW5jZXMuc2xpY2UoKSksdm9pZCAwIT09dC5tb3JwaFRhcmdldERpY3Rpb25hcnkmJih0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT1PYmplY3QuYXNzaWduKHt9LHQubW9ycGhUYXJnZXREaWN0aW9uYXJ5KSksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXMuZ2VvbWV0cnk9dC5nZW9tZXRyeSx0aGlzfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IGU9dC5tb3JwaEF0dHJpYnV0ZXMsbj1PYmplY3Qua2V5cyhlKTtpZihuLmxlbmd0aD4wKXtjb25zdCB0PWVbblswXV07aWYodm9pZCAwIT09dCl7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9W10sdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9e307Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0ubmFtZXx8U3RyaW5nKGUpO3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnB1c2goMCksdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnlbbl09ZX19fX1lbHNle2NvbnN0IGU9dC5tb3JwaFRhcmdldHM7dm9pZCAwIT09ZSYmZS5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuTWVzaC51cGRhdGVNb3JwaFRhcmdldHMoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX1yYXljYXN0KHQsZSl7Y29uc3Qgbj10aGlzLmdlb21ldHJ5LGk9dGhpcy5tYXRlcmlhbCxyPXRoaXMubWF0cml4V29ybGQ7aWYodm9pZCAwPT09aSlyZXR1cm47aWYobnVsbD09PW4uYm91bmRpbmdTcGhlcmUmJm4uY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCksUzF0LmNvcHkobi5ib3VuZGluZ1NwaGVyZSksUzF0LmFwcGx5TWF0cml4NChyKSwhMT09PXQucmF5LmludGVyc2VjdHNTcGhlcmUoUzF0KSlyZXR1cm47aWYoeDF0LmNvcHkocikuaW52ZXJ0KCksdzF0LmNvcHkodC5yYXkpLmFwcGx5TWF0cml4NCh4MXQpLG51bGwhPT1uLmJvdW5kaW5nQm94JiYhMT09PXcxdC5pbnRlcnNlY3RzQm94KG4uYm91bmRpbmdCb3gpKXJldHVybjtsZXQgbztpZihuLmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IHI9bi5pbmRleCxhPW4uYXR0cmlidXRlcy5wb3NpdGlvbixzPW4ubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLGw9bi5tb3JwaFRhcmdldHNSZWxhdGl2ZSxjPW4uYXR0cmlidXRlcy51dix1PW4uYXR0cmlidXRlcy51djIsaD1uLmdyb3VwcyxkPW4uZHJhd1JhbmdlO2lmKG51bGwhPT1yKWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBuPTAscD1oLmxlbmd0aDtuPHA7bisrKXtjb25zdCBwPWhbbl0sZj1pW3AubWF0ZXJpYWxJbmRleF07Zm9yKGxldCBuPU1hdGgubWF4KHAuc3RhcnQsZC5zdGFydCksaT1NYXRoLm1pbihwLnN0YXJ0K3AuY291bnQsZC5zdGFydCtkLmNvdW50KTtuPGk7bis9Myl7Y29uc3QgaT1yLmdldFgobiksaD1yLmdldFgobisxKSxkPXIuZ2V0WChuKzIpO289SDF0KHRoaXMsZix0LHcxdCxhLHMsbCxjLHUsaSxoLGQpLG8mJihvLmZhY2VJbmRleD1NYXRoLmZsb29yKG4vMyksby5mYWNlLm1hdGVyaWFsSW5kZXg9cC5tYXRlcmlhbEluZGV4LGUucHVzaChvKSl9fWVsc2UgZm9yKGxldCBuPU1hdGgubWF4KDAsZC5zdGFydCksaD1NYXRoLm1pbihyLmNvdW50LGQuc3RhcnQrZC5jb3VudCk7bjxoO24rPTMpe2NvbnN0IGg9ci5nZXRYKG4pLGQ9ci5nZXRYKG4rMSkscD1yLmdldFgobisyKTtvPUgxdCh0aGlzLGksdCx3MXQsYSxzLGwsYyx1LGgsZCxwKSxvJiYoby5mYWNlSW5kZXg9TWF0aC5mbG9vcihuLzMpLGUucHVzaChvKSl9ZWxzZSBpZih2b2lkIDAhPT1hKWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBuPTAscj1oLmxlbmd0aDtuPHI7bisrKXtjb25zdCByPWhbbl0scD1pW3IubWF0ZXJpYWxJbmRleF07Zm9yKGxldCBuPU1hdGgubWF4KHIuc3RhcnQsZC5zdGFydCksaT1NYXRoLm1pbihyLnN0YXJ0K3IuY291bnQsZC5zdGFydCtkLmNvdW50KTtuPGk7bis9MylvPUgxdCh0aGlzLHAsdCx3MXQsYSxzLGwsYyx1LG4sbisxLG4rMiksbyYmKG8uZmFjZUluZGV4PU1hdGguZmxvb3Iobi8zKSxvLmZhY2UubWF0ZXJpYWxJbmRleD1yLm1hdGVyaWFsSW5kZXgsZS5wdXNoKG8pKX1lbHNlIGZvcihsZXQgbj1NYXRoLm1heCgwLGQuc3RhcnQpLHI9TWF0aC5taW4oYS5jb3VudCxkLnN0YXJ0K2QuY291bnQpO248cjtuKz0zKW89SDF0KHRoaXMsaSx0LHcxdCxhLHMsbCxjLHUsbixuKzEsbisyKSxvJiYoby5mYWNlSW5kZXg9TWF0aC5mbG9vcihuLzMpLGUucHVzaChvKSl9ZWxzZSBuLmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2gucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9fWZ1bmN0aW9uIEgxdCh0LGUsbixpLHIsbyxhLHMsbCxjLHUsaCl7TTF0LmZyb21CdWZmZXJBdHRyaWJ1dGUocixjKSxFMXQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLHUpLFQxdC5mcm9tQnVmZmVyQXR0cmlidXRlKHIsaCk7Y29uc3QgZD10Lm1vcnBoVGFyZ2V0SW5mbHVlbmNlcztpZihvJiZkKXtMMXQuc2V0KDAsMCwwKSxQMXQuc2V0KDAsMCwwKSxOMXQuc2V0KDAsMCwwKTtmb3IobGV0IHQ9MCxlPW8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9ZFt0XSxuPW9bdF07MCE9PWUmJihDMXQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShuLGMpLEExdC5mcm9tQnVmZmVyQXR0cmlidXRlKG4sdSksazF0LmZyb21CdWZmZXJBdHRyaWJ1dGUobixoKSxhPyhMMXQuYWRkU2NhbGVkVmVjdG9yKEMxdCxlKSxQMXQuYWRkU2NhbGVkVmVjdG9yKEExdCxlKSxOMXQuYWRkU2NhbGVkVmVjdG9yKGsxdCxlKSk6KEwxdC5hZGRTY2FsZWRWZWN0b3IoQzF0LnN1YihNMXQpLGUpLFAxdC5hZGRTY2FsZWRWZWN0b3IoQTF0LnN1YihFMXQpLGUpLE4xdC5hZGRTY2FsZWRWZWN0b3IoazF0LnN1YihUMXQpLGUpKSl9TTF0LmFkZChMMXQpLEUxdC5hZGQoUDF0KSxUMXQuYWRkKE4xdCl9dC5pc1NraW5uZWRNZXNoJiYodC5ib25lVHJhbnNmb3JtKGMsTTF0KSx0LmJvbmVUcmFuc2Zvcm0odSxFMXQpLHQuYm9uZVRyYW5zZm9ybShoLFQxdCkpO2NvbnN0IHA9KGZ1bmN0aW9uIGYodCxlLG4saSxyLG8sYSxzKXtsZXQgbDtpZihsPTE9PT1lLnNpZGU/aS5pbnRlcnNlY3RUcmlhbmdsZShhLG8sciwhMCxzKTppLmludGVyc2VjdFRyaWFuZ2xlKHIsbyxhLDIhPT1lLnNpZGUscyksbnVsbD09PWwpcmV0dXJuIG51bGw7RDF0LmNvcHkocyksRDF0LmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkKTtjb25zdCBjPW4ucmF5Lm9yaWdpbi5kaXN0YW5jZVRvKEQxdCk7cmV0dXJuIGM8bi5uZWFyfHxjPm4uZmFyP251bGw6e2Rpc3RhbmNlOmMscG9pbnQ6RDF0LmNsb25lKCksb2JqZWN0OnR9fSkodCxlLG4saSxNMXQsRTF0LFQxdCx6MXQpO2lmKHApe3MmJihJMXQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShzLGMpLFIxdC5mcm9tQnVmZmVyQXR0cmlidXRlKHMsdSksTzF0LmZyb21CdWZmZXJBdHRyaWJ1dGUocyxoKSxwLnV2PUZRdC5nZXRVVih6MXQsTTF0LEUxdCxUMXQsSTF0LFIxdCxPMXQsbmV3IG1KdCkpLGwmJihJMXQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShsLGMpLFIxdC5mcm9tQnVmZmVyQXR0cmlidXRlKGwsdSksTzF0LmZyb21CdWZmZXJBdHRyaWJ1dGUobCxoKSxwLnV2Mj1GUXQuZ2V0VVYoejF0LE0xdCxFMXQsVDF0LEkxdCxSMXQsTzF0LG5ldyBtSnQpKTtjb25zdCB0PXthOmMsYjp1LGM6aCxub3JtYWw6bmV3IENKdCxtYXRlcmlhbEluZGV4OjB9O0ZRdC5nZXROb3JtYWwoTTF0LEUxdCxUMXQsdC5ub3JtYWwpLHAuZmFjZT10fXJldHVybiBwfUIxdC5wcm90b3R5cGUuaXNNZXNoPSEwO2NsYXNzIEYxdCBleHRlbmRzIGIxdHtjb25zdHJ1Y3Rvcih0PTEsZT0xLG49MSxpPTEscj0xLG89MSl7c3VwZXIoKSx0aGlzLnR5cGU9IkJveEdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3dpZHRoOnQsaGVpZ2h0OmUsZGVwdGg6bix3aWR0aFNlZ21lbnRzOmksaGVpZ2h0U2VnbWVudHM6cixkZXB0aFNlZ21lbnRzOm99O2NvbnN0IGE9dGhpcztpPU1hdGguZmxvb3IoaSkscj1NYXRoLmZsb29yKHIpLG89TWF0aC5mbG9vcihvKTtjb25zdCBzPVtdLGw9W10sYz1bXSx1PVtdO2xldCBoPTAsZD0wO2Z1bmN0aW9uIHAodCxlLG4saSxyLG8scCxmLG0sZyxfKXtjb25zdCB5PW8vbSx2PXAvZyxiPW8vMix4PXAvMix3PWYvMixTPW0rMSxNPWcrMTtsZXQgRT0wLFQ9MDtjb25zdCBDPW5ldyBDSnQ7Zm9yKGxldCBvPTA7bzxNO28rKyl7Y29uc3QgYT1vKnYteDtmb3IobGV0IHM9MDtzPFM7cysrKUNbdF09KHMqeS1iKSppLENbZV09YSpyLENbbl09dyxsLnB1c2goQy54LEMueSxDLnopLENbdF09MCxDW2VdPTAsQ1tuXT1mPjA/MTotMSxjLnB1c2goQy54LEMueSxDLnopLHUucHVzaChzL20pLHUucHVzaCgxLW8vZyksRSs9MX1mb3IobGV0IHQ9MDt0PGc7dCsrKWZvcihsZXQgZT0wO2U8bTtlKyspe2NvbnN0IG49aCtlK1MqKHQrMSksaT1oKyhlKzEpK1MqKHQrMSkscj1oKyhlKzEpK1MqdDtzLnB1c2goaCtlK1MqdCxuLHIpLHMucHVzaChuLGksciksVCs9Nn1hLmFkZEdyb3VwKGQsVCxfKSxkKz1ULGgrPUV9cCgieiIsInkiLCJ4IiwtMSwtMSxuLGUsdCxvLHIsMCkscCgieiIsInkiLCJ4IiwxLC0xLG4sZSwtdCxvLHIsMSkscCgieCIsInoiLCJ5IiwxLDEsdCxuLGUsaSxvLDIpLHAoIngiLCJ6IiwieSIsMSwtMSx0LG4sLWUsaSxvLDMpLHAoIngiLCJ5IiwieiIsMSwtMSx0LGUsbixpLHIsNCkscCgieCIsInkiLCJ6IiwtMSwtMSx0LGUsLW4saSxyLDUpLHRoaXMuc2V0SW5kZXgocyksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KGwsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBsMXQoYywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgbDF0KHUsMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IEYxdCh0LndpZHRoLHQuaGVpZ2h0LHQuZGVwdGgsdC53aWR0aFNlZ21lbnRzLHQuaGVpZ2h0U2VnbWVudHMsdC5kZXB0aFNlZ21lbnRzKX19ZnVuY3Rpb24gVjF0KHQpe2NvbnN0IGU9e307Zm9yKGNvbnN0IG4gaW4gdCl7ZVtuXT17fTtmb3IoY29uc3QgaSBpbiB0W25dKXtjb25zdCByPXRbbl1baV07ZVtuXVtpXT1yJiYoci5pc0NvbG9yfHxyLmlzTWF0cml4M3x8ci5pc01hdHJpeDR8fHIuaXNWZWN0b3IyfHxyLmlzVmVjdG9yM3x8ci5pc1ZlY3RvcjR8fHIuaXNUZXh0dXJlfHxyLmlzUXVhdGVybmlvbik/ci5jbG9uZSgpOkFycmF5LmlzQXJyYXkocik/ci5zbGljZSgpOnJ9fXJldHVybiBlfWZ1bmN0aW9uIFUxdCh0KXtjb25zdCBlPXt9O2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtjb25zdCBpPVYxdCh0W25dKTtmb3IoY29uc3QgdCBpbiBpKWVbdF09aVt0XX1yZXR1cm4gZX1jb25zdCBqMXQ9e2Nsb25lOlYxdCxtZXJnZTpVMXR9O2NsYXNzIEcxdCBleHRlbmRzIFVRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iU2hhZGVyTWF0ZXJpYWwiLHRoaXMuZGVmaW5lcz17fSx0aGlzLnVuaWZvcm1zPXt9LHRoaXMudmVydGV4U2hhZGVyPSJ2b2lkIG1haW4oKSB7XG5cdGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtcbn0iLHRoaXMuZnJhZ21lbnRTaGFkZXI9InZvaWQgbWFpbigpIHtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggMS4wLCAwLjAsIDAuMCwgMS4wICk7XG59Iix0aGlzLmxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy5mb2c9ITEsdGhpcy5saWdodHM9ITEsdGhpcy5jbGlwcGluZz0hMSx0aGlzLmV4dGVuc2lvbnM9e2Rlcml2YXRpdmVzOiExLGZyYWdEZXB0aDohMSxkcmF3QnVmZmVyczohMSxzaGFkZXJUZXh0dXJlTE9EOiExfSx0aGlzLmRlZmF1bHRBdHRyaWJ1dGVWYWx1ZXM9e2NvbG9yOlsxLDEsMV0sdXY6WzAsMF0sdXYyOlswLDBdfSx0aGlzLmluZGV4MEF0dHJpYnV0ZU5hbWU9dm9pZCAwLHRoaXMudW5pZm9ybXNOZWVkVXBkYXRlPSExLHRoaXMuZ2xzbFZlcnNpb249bnVsbCx2b2lkIDAhPT10JiYodm9pZCAwIT09dC5hdHRyaWJ1dGVzJiZjb25zb2xlLmVycm9yKCJUSFJFRS5TaGFkZXJNYXRlcmlhbDogYXR0cmlidXRlcyBzaG91bGQgbm93IGJlIGRlZmluZWQgaW4gVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKSx0aGlzLnNldFZhbHVlcyh0KSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmZyYWdtZW50U2hhZGVyPXQuZnJhZ21lbnRTaGFkZXIsdGhpcy52ZXJ0ZXhTaGFkZXI9dC52ZXJ0ZXhTaGFkZXIsdGhpcy51bmlmb3Jtcz1WMXQodC51bmlmb3JtcyksdGhpcy5kZWZpbmVzPU9iamVjdC5hc3NpZ24oe30sdC5kZWZpbmVzKSx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmxpZ2h0cz10LmxpZ2h0cyx0aGlzLmNsaXBwaW5nPXQuY2xpcHBpbmcsdGhpcy5leHRlbnNpb25zPU9iamVjdC5hc3NpZ24oe30sdC5leHRlbnNpb25zKSx0aGlzLmdsc2xWZXJzaW9uPXQuZ2xzbFZlcnNpb24sdGhpc310b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7ZS5nbHNsVmVyc2lvbj10aGlzLmdsc2xWZXJzaW9uLGUudW5pZm9ybXM9e307Zm9yKGNvbnN0IG4gaW4gdGhpcy51bmlmb3Jtcyl7Y29uc3QgaT10aGlzLnVuaWZvcm1zW25dLnZhbHVlO2UudW5pZm9ybXNbbl09aSYmaS5pc1RleHR1cmU/e3R5cGU6InQiLHZhbHVlOmkudG9KU09OKHQpLnV1aWR9OmkmJmkuaXNDb2xvcj97dHlwZToiYyIsdmFsdWU6aS5nZXRIZXgoKX06aSYmaS5pc1ZlY3RvcjI/e3R5cGU6InYyIix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc1ZlY3RvcjM/e3R5cGU6InYzIix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc1ZlY3RvcjQ/e3R5cGU6InY0Iix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc01hdHJpeDM/e3R5cGU6Im0zIix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc01hdHJpeDQ/e3R5cGU6Im00Iix2YWx1ZTppLnRvQXJyYXkoKX06e3ZhbHVlOml9fU9iamVjdC5rZXlzKHRoaXMuZGVmaW5lcykubGVuZ3RoPjAmJihlLmRlZmluZXM9dGhpcy5kZWZpbmVzKSxlLnZlcnRleFNoYWRlcj10aGlzLnZlcnRleFNoYWRlcixlLmZyYWdtZW50U2hhZGVyPXRoaXMuZnJhZ21lbnRTaGFkZXI7Y29uc3Qgbj17fTtmb3IoY29uc3QgdCBpbiB0aGlzLmV4dGVuc2lvbnMpITA9PT10aGlzLmV4dGVuc2lvbnNbdF0mJihuW3RdPSEwKTtyZXR1cm4gT2JqZWN0LmtleXMobikubGVuZ3RoPjAmJihlLmV4dGVuc2lvbnM9biksZX19RzF0LnByb3RvdHlwZS5pc1NoYWRlck1hdGVyaWFsPSEwO2NsYXNzIFcxdCBleHRlbmRzIGtRdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJDYW1lcmEiLHRoaXMubWF0cml4V29ybGRJbnZlcnNlPW5ldyByUXQsdGhpcy5wcm9qZWN0aW9uTWF0cml4PW5ldyByUXQsdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZT1uZXcgclF0fWNvcHkodCxlKXtyZXR1cm4gc3VwZXIuY29weSh0LGUpLHRoaXMubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodC5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMucHJvamVjdGlvbk1hdHJpeC5jb3B5KHQucHJvamVjdGlvbk1hdHJpeCksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHQucHJvamVjdGlvbk1hdHJpeEludmVyc2UpLHRoaXN9Z2V0V29ybGREaXJlY3Rpb24odCl7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSk7Y29uc3QgZT10aGlzLm1hdHJpeFdvcmxkLmVsZW1lbnRzO3JldHVybiB0LnNldCgtZVs4XSwtZVs5XSwtZVsxMF0pLm5vcm1hbGl6ZSgpfXVwZGF0ZU1hdHJpeFdvcmxkKHQpe3N1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpLHRoaXMubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCl9dXBkYXRlV29ybGRNYXRyaXgodCxlKXtzdXBlci51cGRhdGVXb3JsZE1hdHJpeCh0LGUpLHRoaXMubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9fVcxdC5wcm90b3R5cGUuaXNDYW1lcmE9ITA7Y2xhc3MgcTF0IGV4dGVuZHMgVzF0e2NvbnN0cnVjdG9yKHQ9NTAsZT0xLG49LjEsaT0yZTMpe3N1cGVyKCksdGhpcy50eXBlPSJQZXJzcGVjdGl2ZUNhbWVyYSIsdGhpcy5mb3Y9dCx0aGlzLnpvb209MSx0aGlzLm5lYXI9bix0aGlzLmZhcj1pLHRoaXMuZm9jdXM9MTAsdGhpcy5hc3BlY3Q9ZSx0aGlzLnZpZXc9bnVsbCx0aGlzLmZpbG1HYXVnZT0zNSx0aGlzLmZpbG1PZmZzZXQ9MCx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1jb3B5KHQsZSl7cmV0dXJuIHN1cGVyLmNvcHkodCxlKSx0aGlzLmZvdj10LmZvdix0aGlzLnpvb209dC56b29tLHRoaXMubmVhcj10Lm5lYXIsdGhpcy5mYXI9dC5mYXIsdGhpcy5mb2N1cz10LmZvY3VzLHRoaXMuYXNwZWN0PXQuYXNwZWN0LHRoaXMudmlldz1udWxsPT09dC52aWV3P251bGw6T2JqZWN0LmFzc2lnbih7fSx0LnZpZXcpLHRoaXMuZmlsbUdhdWdlPXQuZmlsbUdhdWdlLHRoaXMuZmlsbU9mZnNldD10LmZpbG1PZmZzZXQsdGhpc31zZXRGb2NhbExlbmd0aCh0KXtjb25zdCBlPS41KnRoaXMuZ2V0RmlsbUhlaWdodCgpL3Q7dGhpcy5mb3Y9MipZWnQqTWF0aC5hdGFuKGUpLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWdldEZvY2FsTGVuZ3RoKCl7Y29uc3QgdD1NYXRoLnRhbiguNSpxWnQqdGhpcy5mb3YpO3JldHVybi41KnRoaXMuZ2V0RmlsbUhlaWdodCgpL3R9Z2V0RWZmZWN0aXZlRk9WKCl7cmV0dXJuIDIqWVp0Kk1hdGguYXRhbihNYXRoLnRhbiguNSpxWnQqdGhpcy5mb3YpL3RoaXMuem9vbSl9Z2V0RmlsbVdpZHRoKCl7cmV0dXJuIHRoaXMuZmlsbUdhdWdlKk1hdGgubWluKHRoaXMuYXNwZWN0LDEpfWdldEZpbG1IZWlnaHQoKXtyZXR1cm4gdGhpcy5maWxtR2F1Z2UvTWF0aC5tYXgodGhpcy5hc3BlY3QsMSl9c2V0Vmlld09mZnNldCh0LGUsbixpLHIsbyl7dGhpcy5hc3BlY3Q9dC9lLG51bGw9PT10aGlzLnZpZXcmJih0aGlzLnZpZXc9e2VuYWJsZWQ6ITAsZnVsbFdpZHRoOjEsZnVsbEhlaWdodDoxLG9mZnNldFg6MCxvZmZzZXRZOjAsd2lkdGg6MSxoZWlnaHQ6MX0pLHRoaXMudmlldy5lbmFibGVkPSEwLHRoaXMudmlldy5mdWxsV2lkdGg9dCx0aGlzLnZpZXcuZnVsbEhlaWdodD1lLHRoaXMudmlldy5vZmZzZXRYPW4sdGhpcy52aWV3Lm9mZnNldFk9aSx0aGlzLnZpZXcud2lkdGg9cix0aGlzLnZpZXcuaGVpZ2h0PW8sdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y2xlYXJWaWV3T2Zmc2V0KCl7bnVsbCE9PXRoaXMudmlldyYmKHRoaXMudmlldy5lbmFibGVkPSExKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX11cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl7Y29uc3QgdD10aGlzLm5lYXI7bGV0IGU9dCpNYXRoLnRhbiguNSpxWnQqdGhpcy5mb3YpL3RoaXMuem9vbSxuPTIqZSxpPXRoaXMuYXNwZWN0Km4scj0tLjUqaTtjb25zdCBvPXRoaXMudmlldztpZihudWxsIT09dGhpcy52aWV3JiZ0aGlzLnZpZXcuZW5hYmxlZCl7Y29uc3QgdD1vLmZ1bGxXaWR0aCxhPW8uZnVsbEhlaWdodDtyKz1vLm9mZnNldFgqaS90LGUtPW8ub2Zmc2V0WSpuL2EsaSo9by53aWR0aC90LG4qPW8uaGVpZ2h0L2F9Y29uc3QgYT10aGlzLmZpbG1PZmZzZXQ7MCE9PWEmJihyKz10KmEvdGhpcy5nZXRGaWxtV2lkdGgoKSksdGhpcy5wcm9qZWN0aW9uTWF0cml4Lm1ha2VQZXJzcGVjdGl2ZShyLHIraSxlLGUtbix0LHRoaXMuZmFyKSx0aGlzLnByb2plY3Rpb25NYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5wcm9qZWN0aW9uTWF0cml4KS5pbnZlcnQoKX10b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LmZvdj10aGlzLmZvdixlLm9iamVjdC56b29tPXRoaXMuem9vbSxlLm9iamVjdC5uZWFyPXRoaXMubmVhcixlLm9iamVjdC5mYXI9dGhpcy5mYXIsZS5vYmplY3QuZm9jdXM9dGhpcy5mb2N1cyxlLm9iamVjdC5hc3BlY3Q9dGhpcy5hc3BlY3QsbnVsbCE9PXRoaXMudmlldyYmKGUub2JqZWN0LnZpZXc9T2JqZWN0LmFzc2lnbih7fSx0aGlzLnZpZXcpKSxlLm9iamVjdC5maWxtR2F1Z2U9dGhpcy5maWxtR2F1Z2UsZS5vYmplY3QuZmlsbU9mZnNldD10aGlzLmZpbG1PZmZzZXQsZX19cTF0LnByb3RvdHlwZS5pc1BlcnNwZWN0aXZlQ2FtZXJhPSEwO2NvbnN0IFkxdD05MDtjbGFzcyBYMXQgZXh0ZW5kcyBrUXR7Y29uc3RydWN0b3IodCxlLG4pe2lmKHN1cGVyKCksdGhpcy50eXBlPSJDdWJlQ2FtZXJhIiwhMCE9PW4uaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuQ3ViZUNhbWVyYTogVGhlIGNvbnN0cnVjdG9yIG5vdyBleHBlY3RzIGFuIGluc3RhbmNlIG9mIFdlYkdMQ3ViZVJlbmRlclRhcmdldCBhcyB0aGlyZCBwYXJhbWV0ZXIuIik7dGhpcy5yZW5kZXJUYXJnZXQ9bjtjb25zdCBpPW5ldyBxMXQoWTF0LDEsdCxlKTtpLmxheWVycz10aGlzLmxheWVycyxpLnVwLnNldCgwLC0xLDApLGkubG9va0F0KG5ldyBDSnQoMSwwLDApKSx0aGlzLmFkZChpKTtjb25zdCByPW5ldyBxMXQoWTF0LDEsdCxlKTtyLmxheWVycz10aGlzLmxheWVycyxyLnVwLnNldCgwLC0xLDApLHIubG9va0F0KG5ldyBDSnQoLTEsMCwwKSksdGhpcy5hZGQocik7Y29uc3Qgbz1uZXcgcTF0KFkxdCwxLHQsZSk7by5sYXllcnM9dGhpcy5sYXllcnMsby51cC5zZXQoMCwwLDEpLG8ubG9va0F0KG5ldyBDSnQoMCwxLDApKSx0aGlzLmFkZChvKTtjb25zdCBhPW5ldyBxMXQoWTF0LDEsdCxlKTthLmxheWVycz10aGlzLmxheWVycyxhLnVwLnNldCgwLDAsLTEpLGEubG9va0F0KG5ldyBDSnQoMCwtMSwwKSksdGhpcy5hZGQoYSk7Y29uc3Qgcz1uZXcgcTF0KFkxdCwxLHQsZSk7cy5sYXllcnM9dGhpcy5sYXllcnMscy51cC5zZXQoMCwtMSwwKSxzLmxvb2tBdChuZXcgQ0p0KDAsMCwxKSksdGhpcy5hZGQocyk7Y29uc3QgbD1uZXcgcTF0KFkxdCwxLHQsZSk7bC5sYXllcnM9dGhpcy5sYXllcnMsbC51cC5zZXQoMCwtMSwwKSxsLmxvb2tBdChuZXcgQ0p0KDAsMCwtMSkpLHRoaXMuYWRkKGwpfXVwZGF0ZSh0LGUpe251bGw9PT10aGlzLnBhcmVudCYmdGhpcy51cGRhdGVNYXRyaXhXb3JsZCgpO2NvbnN0IG49dGhpcy5yZW5kZXJUYXJnZXQsW2kscixvLGEscyxsXT10aGlzLmNoaWxkcmVuLGM9dC54ci5lbmFibGVkLHU9dC5nZXRSZW5kZXJUYXJnZXQoKTt0LnhyLmVuYWJsZWQ9ITE7Y29uc3QgaD1uLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzO24udGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ITEsdC5zZXRSZW5kZXJUYXJnZXQobiwwKSx0LnJlbmRlcihlLGkpLHQuc2V0UmVuZGVyVGFyZ2V0KG4sMSksdC5yZW5kZXIoZSxyKSx0LnNldFJlbmRlclRhcmdldChuLDIpLHQucmVuZGVyKGUsbyksdC5zZXRSZW5kZXJUYXJnZXQobiwzKSx0LnJlbmRlcihlLGEpLHQuc2V0UmVuZGVyVGFyZ2V0KG4sNCksdC5yZW5kZXIoZSxzKSxuLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPWgsdC5zZXRSZW5kZXJUYXJnZXQobiw1KSx0LnJlbmRlcihlLGwpLHQuc2V0UmVuZGVyVGFyZ2V0KHUpLHQueHIuZW5hYmxlZD1jfX1jbGFzcyAkMXQgZXh0ZW5kcyBiSnR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8sYSxzLGwsYyl7c3VwZXIodD12b2lkIDAhPT10P3Q6W10sZT12b2lkIDAhPT1lP2U6akt0LG4saSxyLG8sYT12b2lkIDAhPT1hP2E6dVp0LHMsbCxjKSx0aGlzLmZsaXBZPSExfWdldCBpbWFnZXMoKXtyZXR1cm4gdGhpcy5pbWFnZX1zZXQgaW1hZ2VzKHQpe3RoaXMuaW1hZ2U9dH19JDF0LnByb3RvdHlwZS5pc0N1YmVUZXh0dXJlPSEwO2NsYXNzIEsxdCBleHRlbmRzIFNKdHtjb25zdHJ1Y3Rvcih0LGUsbil7TnVtYmVyLmlzSW50ZWdlcihlKSYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xDdWJlUmVuZGVyVGFyZ2V0OiBjb25zdHJ1Y3RvciBzaWduYXR1cmUgaXMgbm93IFdlYkdMQ3ViZVJlbmRlclRhcmdldCggc2l6ZSwgb3B0aW9ucyApIiksZT1uKSxzdXBlcih0LHQsZSksdGhpcy50ZXh0dXJlPW5ldyAkMXQodm9pZCAwLChlPWV8fHt9KS5tYXBwaW5nLGUud3JhcFMsZS53cmFwVCxlLm1hZ0ZpbHRlcixlLm1pbkZpbHRlcixlLmZvcm1hdCxlLnR5cGUsZS5hbmlzb3Ryb3B5LGUuZW5jb2RpbmcpLHRoaXMudGV4dHVyZS5pc1JlbmRlclRhcmdldFRleHR1cmU9ITAsdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz12b2lkIDAhPT1lLmdlbmVyYXRlTWlwbWFwcyYmZS5nZW5lcmF0ZU1pcG1hcHMsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj12b2lkIDAhPT1lLm1pbkZpbHRlcj9lLm1pbkZpbHRlcjplWnQsdGhpcy50ZXh0dXJlLl9uZWVkc0ZsaXBFbnZNYXA9ITF9ZnJvbUVxdWlyZWN0YW5ndWxhclRleHR1cmUodCxlKXt0aGlzLnRleHR1cmUudHlwZT1lLnR5cGUsdGhpcy50ZXh0dXJlLmZvcm1hdD1oWnQsdGhpcy50ZXh0dXJlLmVuY29kaW5nPWUuZW5jb2RpbmcsdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz1lLmdlbmVyYXRlTWlwbWFwcyx0aGlzLnRleHR1cmUubWluRmlsdGVyPWUubWluRmlsdGVyLHRoaXMudGV4dHVyZS5tYWdGaWx0ZXI9ZS5tYWdGaWx0ZXI7Y29uc3Qgbj1uZXcgRjF0KDUsNSw1KSxpPW5ldyBHMXQoe25hbWU6IkN1YmVtYXBGcm9tRXF1aXJlY3QiLHVuaWZvcm1zOlYxdCh7dEVxdWlyZWN0Ont2YWx1ZTpudWxsfX0pLHZlcnRleFNoYWRlcjoiXG5cblx0XHRcdFx0dmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcblxuXHRcdFx0XHR2ZWMzIHRyYW5zZm9ybURpcmVjdGlvbiggaW4gdmVjMyBkaXIsIGluIG1hdDQgbWF0cml4ICkge1xuXG5cdFx0XHRcdFx0cmV0dXJuIG5vcm1hbGl6ZSggKCBtYXRyaXggKiB2ZWM0KCBkaXIsIDAuMCApICkueHl6ICk7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHRcdHZXb3JsZERpcmVjdGlvbiA9IHRyYW5zZm9ybURpcmVjdGlvbiggcG9zaXRpb24sIG1vZGVsTWF0cml4ICk7XG5cblx0XHRcdFx0XHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHRcdFx0XHRcdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblxuXHRcdFx0XHR9XG5cdFx0XHQiLGZyYWdtZW50U2hhZGVyOiJcblxuXHRcdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCB0RXF1aXJlY3Q7XG5cblx0XHRcdFx0dmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcblxuXHRcdFx0XHQjaW5jbHVkZSA8Y29tbW9uPlxuXG5cdFx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHRcdHZlYzMgZGlyZWN0aW9uID0gbm9ybWFsaXplKCB2V29ybGREaXJlY3Rpb24gKTtcblxuXHRcdFx0XHRcdHZlYzIgc2FtcGxlVVYgPSBlcXVpcmVjdFV2KCBkaXJlY3Rpb24gKTtcblxuXHRcdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCggdEVxdWlyZWN0LCBzYW1wbGVVViApO1xuXG5cdFx0XHRcdH1cblx0XHRcdCIsc2lkZToxLGJsZW5kaW5nOjB9KTtpLnVuaWZvcm1zLnRFcXVpcmVjdC52YWx1ZT1lO2NvbnN0IHI9bmV3IEIxdChuLGkpLG89ZS5taW5GaWx0ZXI7cmV0dXJuIGUubWluRmlsdGVyPT09aVp0JiYoZS5taW5GaWx0ZXI9ZVp0KSxuZXcgWDF0KDEsMTAsdGhpcykudXBkYXRlKHQsciksZS5taW5GaWx0ZXI9byxyLmdlb21ldHJ5LmRpc3Bvc2UoKSxyLm1hdGVyaWFsLmRpc3Bvc2UoKSx0aGlzfWNsZWFyKHQsZSxuLGkpe2NvbnN0IHI9dC5nZXRSZW5kZXJUYXJnZXQoKTtmb3IobGV0IHI9MDtyPDY7cisrKXQuc2V0UmVuZGVyVGFyZ2V0KHRoaXMsciksdC5jbGVhcihlLG4saSk7dC5zZXRSZW5kZXJUYXJnZXQocil9fUsxdC5wcm90b3R5cGUuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ9ITA7Y29uc3QgWjF0PW5ldyBDSnQsSjF0PW5ldyBDSnQsUTF0PW5ldyBnSnQ7Y2xhc3MgdDB0e2NvbnN0cnVjdG9yKHQ9bmV3IENKdCgxLDAsMCksZT0wKXt0aGlzLm5vcm1hbD10LHRoaXMuY29uc3RhbnQ9ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5ub3JtYWwuY29weSh0KSx0aGlzLmNvbnN0YW50PWUsdGhpc31zZXRDb21wb25lbnRzKHQsZSxuLGkpe3JldHVybiB0aGlzLm5vcm1hbC5zZXQodCxlLG4pLHRoaXMuY29uc3RhbnQ9aSx0aGlzfXNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KHQsZSl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodCksdGhpcy5jb25zdGFudD0tZS5kb3QodGhpcy5ub3JtYWwpLHRoaXN9c2V0RnJvbUNvcGxhbmFyUG9pbnRzKHQsZSxuKXtjb25zdCBpPVoxdC5zdWJWZWN0b3JzKG4sZSkuY3Jvc3MoSjF0LnN1YlZlY3RvcnModCxlKSkubm9ybWFsaXplKCk7cmV0dXJuIHRoaXMuc2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQoaSx0KSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodC5ub3JtYWwpLHRoaXMuY29uc3RhbnQ9dC5jb25zdGFudCx0aGlzfW5vcm1hbGl6ZSgpe2NvbnN0IHQ9MS90aGlzLm5vcm1hbC5sZW5ndGgoKTtyZXR1cm4gdGhpcy5ub3JtYWwubXVsdGlwbHlTY2FsYXIodCksdGhpcy5jb25zdGFudCo9dCx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLmNvbnN0YW50Kj0tMSx0aGlzLm5vcm1hbC5uZWdhdGUoKSx0aGlzfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gdGhpcy5ub3JtYWwuZG90KHQpK3RoaXMuY29uc3RhbnR9ZGlzdGFuY2VUb1NwaGVyZSh0KXtyZXR1cm4gdGhpcy5kaXN0YW5jZVRvUG9pbnQodC5jZW50ZXIpLXQucmFkaXVzfXByb2plY3RQb2ludCh0LGUpe3JldHVybiBlLmNvcHkodGhpcy5ub3JtYWwpLm11bHRpcGx5U2NhbGFyKC10aGlzLmRpc3RhbmNlVG9Qb2ludCh0KSkuYWRkKHQpfWludGVyc2VjdExpbmUodCxlKXtjb25zdCBuPXQuZGVsdGEoWjF0KSxpPXRoaXMubm9ybWFsLmRvdChuKTtpZigwPT09aSlyZXR1cm4gMD09PXRoaXMuZGlzdGFuY2VUb1BvaW50KHQuc3RhcnQpP2UuY29weSh0LnN0YXJ0KTpudWxsO2NvbnN0IHI9LSh0LnN0YXJ0LmRvdCh0aGlzLm5vcm1hbCkrdGhpcy5jb25zdGFudCkvaTtyZXR1cm4gcjwwfHxyPjE/bnVsbDplLmNvcHkobikubXVsdGlwbHlTY2FsYXIocikuYWRkKHQuc3RhcnQpfWludGVyc2VjdHNMaW5lKHQpe2NvbnN0IGU9dGhpcy5kaXN0YW5jZVRvUG9pbnQodC5zdGFydCksbj10aGlzLmRpc3RhbmNlVG9Qb2ludCh0LmVuZCk7cmV0dXJuIGU8MCYmbj4wfHxuPDAmJmU+MH1pbnRlcnNlY3RzQm94KHQpe3JldHVybiB0LmludGVyc2VjdHNQbGFuZSh0aGlzKX1pbnRlcnNlY3RzU3BoZXJlKHQpe3JldHVybiB0LmludGVyc2VjdHNQbGFuZSh0aGlzKX1jb3BsYW5hclBvaW50KHQpe3JldHVybiB0LmNvcHkodGhpcy5ub3JtYWwpLm11bHRpcGx5U2NhbGFyKC10aGlzLmNvbnN0YW50KX1hcHBseU1hdHJpeDQodCxlKXtjb25zdCBuPWV8fFExdC5nZXROb3JtYWxNYXRyaXgodCksaT10aGlzLmNvcGxhbmFyUG9pbnQoWjF0KS5hcHBseU1hdHJpeDQodCkscj10aGlzLm5vcm1hbC5hcHBseU1hdHJpeDMobikubm9ybWFsaXplKCk7cmV0dXJuIHRoaXMuY29uc3RhbnQ9LWkuZG90KHIpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLmNvbnN0YW50LT10LmRvdCh0aGlzLm5vcm1hbCksdGhpc31lcXVhbHModCl7cmV0dXJuIHQubm9ybWFsLmVxdWFscyh0aGlzLm5vcm1hbCkmJnQuY29uc3RhbnQ9PT10aGlzLmNvbnN0YW50fWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX10MHQucHJvdG90eXBlLmlzUGxhbmU9ITA7Y29uc3QgZTB0PW5ldyAkSnQsbjB0PW5ldyBDSnQ7Y2xhc3MgaTB0e2NvbnN0cnVjdG9yKHQ9bmV3IHQwdCxlPW5ldyB0MHQsbj1uZXcgdDB0LGk9bmV3IHQwdCxyPW5ldyB0MHQsbz1uZXcgdDB0KXt0aGlzLnBsYW5lcz1bdCxlLG4saSxyLG9dfXNldCh0LGUsbixpLHIsbyl7Y29uc3QgYT10aGlzLnBsYW5lcztyZXR1cm4gYVswXS5jb3B5KHQpLGFbMV0uY29weShlKSxhWzJdLmNvcHkobiksYVszXS5jb3B5KGkpLGFbNF0uY29weShyKSxhWzVdLmNvcHkobyksdGhpc31jb3B5KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXM7Zm9yKGxldCBuPTA7bjw2O24rKyllW25dLmNvcHkodC5wbGFuZXNbbl0pO3JldHVybiB0aGlzfXNldEZyb21Qcm9qZWN0aW9uTWF0cml4KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXMsbj10LmVsZW1lbnRzLGk9blswXSxyPW5bMV0sbz1uWzJdLGE9blszXSxzPW5bNF0sbD1uWzVdLGM9bls2XSx1PW5bN10saD1uWzhdLGQ9bls5XSxwPW5bMTBdLGY9blsxMV0sbT1uWzEyXSxnPW5bMTNdLF89blsxNF0seT1uWzE1XTtyZXR1cm4gZVswXS5zZXRDb21wb25lbnRzKGEtaSx1LXMsZi1oLHktbSkubm9ybWFsaXplKCksZVsxXS5zZXRDb21wb25lbnRzKGEraSx1K3MsZitoLHkrbSkubm9ybWFsaXplKCksZVsyXS5zZXRDb21wb25lbnRzKGErcix1K2wsZitkLHkrZykubm9ybWFsaXplKCksZVszXS5zZXRDb21wb25lbnRzKGEtcix1LWwsZi1kLHktZykubm9ybWFsaXplKCksZVs0XS5zZXRDb21wb25lbnRzKGEtbyx1LWMsZi1wLHktXykubm9ybWFsaXplKCksZVs1XS5zZXRDb21wb25lbnRzKGErbyx1K2MsZitwLHkrXykubm9ybWFsaXplKCksdGhpc31pbnRlcnNlY3RzT2JqZWN0KHQpe2NvbnN0IGU9dC5nZW9tZXRyeTtyZXR1cm4gbnVsbD09PWUuYm91bmRpbmdTcGhlcmUmJmUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCksZTB0LmNvcHkoZS5ib3VuZGluZ1NwaGVyZSkuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZShlMHQpfWludGVyc2VjdHNTcHJpdGUodCl7cmV0dXJuIGUwdC5jZW50ZXIuc2V0KDAsMCwwKSxlMHQucmFkaXVzPS43MDcxMDY3ODExODY1NDc2LGUwdC5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKGUwdCl9aW50ZXJzZWN0c1NwaGVyZSh0KXtjb25zdCBlPXRoaXMucGxhbmVzLG49dC5jZW50ZXIsaT0tdC5yYWRpdXM7Zm9yKGxldCB0PTA7dDw2O3QrKylpZihlW3RdLmRpc3RhbmNlVG9Qb2ludChuKTxpKXJldHVybiExO3JldHVybiEwfWludGVyc2VjdHNCb3godCl7Y29uc3QgZT10aGlzLnBsYW5lcztmb3IobGV0IG49MDtuPDY7bisrKXtjb25zdCBpPWVbbl07aWYobjB0Lng9aS5ub3JtYWwueD4wP3QubWF4Lng6dC5taW4ueCxuMHQueT1pLm5vcm1hbC55PjA/dC5tYXgueTp0Lm1pbi55LG4wdC56PWkubm9ybWFsLno+MD90Lm1heC56OnQubWluLnosaS5kaXN0YW5jZVRvUG9pbnQobjB0KTwwKXJldHVybiExfXJldHVybiEwfWNvbnRhaW5zUG9pbnQodCl7Y29uc3QgZT10aGlzLnBsYW5lcztmb3IobGV0IG49MDtuPDY7bisrKWlmKGVbbl0uZGlzdGFuY2VUb1BvaW50KHQpPDApcmV0dXJuITE7cmV0dXJuITB9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9fWZ1bmN0aW9uIHIwdCgpe2xldCB0PW51bGwsZT0hMSxuPW51bGwsaT1udWxsO2Z1bmN0aW9uIHIoZSxvKXtuKGUsbyksaT10LnJlcXVlc3RBbmltYXRpb25GcmFtZShyKX1yZXR1cm57c3RhcnQ6ZnVuY3Rpb24oKXshMCE9PWUmJm51bGwhPT1uJiYoaT10LnJlcXVlc3RBbmltYXRpb25GcmFtZShyKSxlPSEwKX0sc3RvcDpmdW5jdGlvbigpe3QuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaSksZT0hMX0sc2V0QW5pbWF0aW9uTG9vcDpmdW5jdGlvbih0KXtuPXR9LHNldENvbnRleHQ6ZnVuY3Rpb24oZSl7dD1lfX19ZnVuY3Rpb24gbzB0KHQsZSl7Y29uc3Qgbj1lLmlzV2ViR0wyLGk9bmV3IFdlYWtNYXA7cmV0dXJue2dldDpmdW5jdGlvbiByKHQpe3JldHVybiB0LmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUmJih0PXQuZGF0YSksaS5nZXQodCl9LHJlbW92ZTpmdW5jdGlvbiBvKGUpe2UuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSYmKGU9ZS5kYXRhKTtjb25zdCBuPWkuZ2V0KGUpO24mJih0LmRlbGV0ZUJ1ZmZlcihuLmJ1ZmZlciksaS5kZWxldGUoZSkpfSx1cGRhdGU6ZnVuY3Rpb24gYShlLHIpe2lmKGUuaXNHTEJ1ZmZlckF0dHJpYnV0ZSl7Y29uc3QgdD1pLmdldChlKTtyZXR1cm4gdm9pZCgoIXR8fHQudmVyc2lvbjxlLnZlcnNpb24pJiZpLnNldChlLHtidWZmZXI6ZS5idWZmZXIsdHlwZTplLnR5cGUsYnl0ZXNQZXJFbGVtZW50OmUuZWxlbWVudFNpemUsdmVyc2lvbjplLnZlcnNpb259KSl9ZS5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlJiYoZT1lLmRhdGEpO2NvbnN0IG89aS5nZXQoZSk7dm9pZCAwPT09bz9pLnNldChlLChmdW5jdGlvbiBhKGUsaSl7Y29uc3Qgcj1lLmFycmF5LG89ZS51c2FnZSxhPXQuY3JlYXRlQnVmZmVyKCk7dC5iaW5kQnVmZmVyKGksYSksdC5idWZmZXJEYXRhKGkscixvKSxlLm9uVXBsb2FkQ2FsbGJhY2soKTtsZXQgcz01MTI2O3JldHVybiByIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5P3M9NTEyNjpyIGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5P2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xBdHRyaWJ1dGVzOiBVbnN1cHBvcnRlZCBkYXRhIGJ1ZmZlciBmb3JtYXQ6IEZsb2F0NjRBcnJheS4iKTpyIGluc3RhbmNlb2YgVWludDE2QXJyYXk/ZS5pc0Zsb2F0MTZCdWZmZXJBdHRyaWJ1dGU/bj9zPTUxMzE6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTEF0dHJpYnV0ZXM6IFVzYWdlIG9mIEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGUgcmVxdWlyZXMgV2ViR0wyLiIpOnM9NTEyMzpyIGluc3RhbmNlb2YgSW50MTZBcnJheT9zPTUxMjI6ciBpbnN0YW5jZW9mIFVpbnQzMkFycmF5P3M9NTEyNTpyIGluc3RhbmNlb2YgSW50MzJBcnJheT9zPTUxMjQ6ciBpbnN0YW5jZW9mIEludDhBcnJheT9zPTUxMjA6KHIgaW5zdGFuY2VvZiBVaW50OEFycmF5fHxyIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpJiYocz01MTIxKSx7YnVmZmVyOmEsdHlwZTpzLGJ5dGVzUGVyRWxlbWVudDpyLkJZVEVTX1BFUl9FTEVNRU5ULHZlcnNpb246ZS52ZXJzaW9ufX0pKGUscikpOm8udmVyc2lvbjxlLnZlcnNpb24mJigoZnVuY3Rpb24gcyhlLGkscil7Y29uc3Qgbz1pLmFycmF5LGE9aS51cGRhdGVSYW5nZTt0LmJpbmRCdWZmZXIocixlKSwtMT09PWEuY291bnQ/dC5idWZmZXJTdWJEYXRhKHIsMCxvKToobj90LmJ1ZmZlclN1YkRhdGEocixhLm9mZnNldCpvLkJZVEVTX1BFUl9FTEVNRU5ULG8sYS5vZmZzZXQsYS5jb3VudCk6dC5idWZmZXJTdWJEYXRhKHIsYS5vZmZzZXQqby5CWVRFU19QRVJfRUxFTUVOVCxvLnN1YmFycmF5KGEub2Zmc2V0LGEub2Zmc2V0K2EuY291bnQpKSxhLmNvdW50PS0xKX0pKG8uYnVmZmVyLGUsciksby52ZXJzaW9uPWUudmVyc2lvbil9fX1jbGFzcyBhMHQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodD0xLGU9MSxuPTEsaT0xKXtzdXBlcigpLHRoaXMudHlwZT0iUGxhbmVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXt3aWR0aDp0LGhlaWdodDplLHdpZHRoU2VnbWVudHM6bixoZWlnaHRTZWdtZW50czppfTtjb25zdCByPXQvMixvPWUvMixhPU1hdGguZmxvb3Iobikscz1NYXRoLmZsb29yKGkpLGw9YSsxLGM9cysxLHU9dC9hLGg9ZS9zLGQ9W10scD1bXSxmPVtdLG09W107Zm9yKGxldCB0PTA7dDxjO3QrKyl7Y29uc3QgZT10Kmgtbztmb3IobGV0IG49MDtuPGw7bisrKXAucHVzaChuKnUtciwtZSwwKSxmLnB1c2goMCwwLDEpLG0ucHVzaChuL2EpLG0ucHVzaCgxLXQvcyl9Zm9yKGxldCB0PTA7dDxzO3QrKylmb3IobGV0IGU9MDtlPGE7ZSsrKXtjb25zdCBuPWUrbCoodCsxKSxpPWUrMStsKih0KzEpLHI9ZSsxK2wqdDtkLnB1c2goZStsKnQsbixyKSxkLnB1c2gobixpLHIpfXRoaXMuc2V0SW5kZXgoZCksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KHAsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBsMXQoZiwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgbDF0KG0sMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGEwdCh0LndpZHRoLHQuaGVpZ2h0LHQud2lkdGhTZWdtZW50cyx0LmhlaWdodFNlZ21lbnRzKX19Y29uc3QgczB0PXthbHBoYW1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9BTFBIQU1BUFxuXHRkaWZmdXNlQ29sb3IuYSAqPSB0ZXh0dXJlMkQoIGFscGhhTWFwLCB2VXYgKS5nO1xuI2VuZGlmIixhbHBoYW1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0FMUEhBTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGFscGhhTWFwO1xuI2VuZGlmIixhbHBoYXRlc3RfZnJhZ21lbnQ6IiNpZmRlZiBBTFBIQVRFU1Rcblx0aWYgKCBkaWZmdXNlQ29sb3IuYSA8IEFMUEhBVEVTVCApIGRpc2NhcmQ7XG4jZW5kaWYiLGFvbWFwX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0FPTUFQXG5cdGZsb2F0IGFtYmllbnRPY2NsdXNpb24gPSAoIHRleHR1cmUyRCggYW9NYXAsIHZVdjIgKS5yIC0gMS4wICkgKiBhb01hcEludGVuc2l0eSArIDEuMDtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICo9IGFtYmllbnRPY2NsdXNpb247XG5cdCNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgJiYgZGVmaW5lZCggU1RBTkRBUkQgKVxuXHRcdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyICkgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICo9IGNvbXB1dGVTcGVjdWxhck9jY2x1c2lvbiggZG90TlYsIGFtYmllbnRPY2NsdXNpb24sIG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzICk7XG5cdCNlbmRpZlxuI2VuZGlmIixhb21hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0FPTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGFvTWFwO1xuXHR1bmlmb3JtIGZsb2F0IGFvTWFwSW50ZW5zaXR5O1xuI2VuZGlmIixiZWdpbl92ZXJ0ZXg6InZlYzMgdHJhbnNmb3JtZWQgPSB2ZWMzKCBwb3NpdGlvbiApOyIsYmVnaW5ub3JtYWxfdmVydGV4OiJ2ZWMzIG9iamVjdE5vcm1hbCA9IHZlYzMoIG5vcm1hbCApO1xuI2lmZGVmIFVTRV9UQU5HRU5UXG5cdHZlYzMgb2JqZWN0VGFuZ2VudCA9IHZlYzMoIHRhbmdlbnQueHl6ICk7XG4jZW5kaWYiLGJzZGZzOiJ2ZWMyIGludGVncmF0ZVNwZWN1bGFyQlJERiggY29uc3QgaW4gZmxvYXQgZG90TlYsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0Y29uc3QgdmVjNCBjMCA9IHZlYzQoIC0gMSwgLSAwLjAyNzUsIC0gMC41NzIsIDAuMDIyICk7XG5cdGNvbnN0IHZlYzQgYzEgPSB2ZWM0KCAxLCAwLjA0MjUsIDEuMDQsIC0gMC4wNCApO1xuXHR2ZWM0IHIgPSByb3VnaG5lc3MgKiBjMCArIGMxO1xuXHRmbG9hdCBhMDA0ID0gbWluKCByLnggKiByLngsIGV4cDIoIC0gOS4yOCAqIGRvdE5WICkgKSAqIHIueCArIHIueTtcblx0cmV0dXJuIHZlYzIoIC0xLjA0LCAxLjA0ICkgKiBhMDA0ICsgci56dztcbn1cbmZsb2F0IHB1bmN0dWFsTGlnaHRJbnRlbnNpdHlUb0lycmFkaWFuY2VGYWN0b3IoIGNvbnN0IGluIGZsb2F0IGxpZ2h0RGlzdGFuY2UsIGNvbnN0IGluIGZsb2F0IGN1dG9mZkRpc3RhbmNlLCBjb25zdCBpbiBmbG9hdCBkZWNheUV4cG9uZW50ICkge1xuI2lmIGRlZmluZWQgKCBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTIClcblx0ZmxvYXQgZGlzdGFuY2VGYWxsb2ZmID0gMS4wIC8gbWF4KCBwb3coIGxpZ2h0RGlzdGFuY2UsIGRlY2F5RXhwb25lbnQgKSwgMC4wMSApO1xuXHRpZiggY3V0b2ZmRGlzdGFuY2UgPiAwLjAgKSB7XG5cdFx0ZGlzdGFuY2VGYWxsb2ZmICo9IHBvdzIoIHNhdHVyYXRlKCAxLjAgLSBwb3c0KCBsaWdodERpc3RhbmNlIC8gY3V0b2ZmRGlzdGFuY2UgKSApICk7XG5cdH1cblx0cmV0dXJuIGRpc3RhbmNlRmFsbG9mZjtcbiNlbHNlXG5cdGlmKCBjdXRvZmZEaXN0YW5jZSA+IDAuMCAmJiBkZWNheUV4cG9uZW50ID4gMC4wICkge1xuXHRcdHJldHVybiBwb3coIHNhdHVyYXRlKCAtbGlnaHREaXN0YW5jZSAvIGN1dG9mZkRpc3RhbmNlICsgMS4wICksIGRlY2F5RXhwb25lbnQgKTtcblx0fVxuXHRyZXR1cm4gMS4wO1xuI2VuZGlmXG59XG52ZWMzIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBjb25zdCBpbiB2ZWMzIGRpZmZ1c2VDb2xvciApIHtcblx0cmV0dXJuIFJFQ0lQUk9DQUxfUEkgKiBkaWZmdXNlQ29sb3I7XG59XG52ZWMzIEZfU2NobGljayggY29uc3QgaW4gdmVjMyBmMCwgY29uc3QgaW4gdmVjMyBmOTAsIGNvbnN0IGluIGZsb2F0IGRvdFZIICkge1xuXHRmbG9hdCBmcmVzbmVsID0gZXhwMiggKCAtNS41NTQ3MyAqIGRvdFZIIC0gNi45ODMxNiApICogZG90VkggKTtcblx0cmV0dXJuICggZjkwIC0gZjAgKSAqIGZyZXNuZWwgKyBmMDtcbn1cbnZlYzMgRl9TY2hsaWNrX1JvdWdobmVzc0RlcGVuZGVudCggY29uc3QgaW4gdmVjMyBGMCwgY29uc3QgaW4gZmxvYXQgZG90TlYsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0ZmxvYXQgZnJlc25lbCA9IGV4cDIoICggLTUuNTU0NzMgKiBkb3ROViAtIDYuOTgzMTYgKSAqIGRvdE5WICk7XG5cdHZlYzMgRnIgPSBtYXgoIHZlYzMoIDEuMCAtIHJvdWdobmVzcyApLCBGMCApIC0gRjA7XG5cdHJldHVybiBGciAqIGZyZXNuZWwgKyBGMDtcbn1cbmZsb2F0IEdfR0dYX1NtaXRoKCBjb25zdCBpbiBmbG9hdCBhbHBoYSwgY29uc3QgaW4gZmxvYXQgZG90TkwsIGNvbnN0IGluIGZsb2F0IGRvdE5WICkge1xuXHRmbG9hdCBhMiA9IHBvdzIoIGFscGhhICk7XG5cdGZsb2F0IGdsID0gZG90TkwgKyBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5MICkgKTtcblx0ZmxvYXQgZ3YgPSBkb3ROViArIHNxcnQoIGEyICsgKCAxLjAgLSBhMiApICogcG93MiggZG90TlYgKSApO1xuXHRyZXR1cm4gMS4wIC8gKCBnbCAqIGd2ICk7XG59XG5mbG9hdCBHX0dHWF9TbWl0aENvcnJlbGF0ZWQoIGNvbnN0IGluIGZsb2F0IGFscGhhLCBjb25zdCBpbiBmbG9hdCBkb3ROTCwgY29uc3QgaW4gZmxvYXQgZG90TlYgKSB7XG5cdGZsb2F0IGEyID0gcG93MiggYWxwaGEgKTtcblx0ZmxvYXQgZ3YgPSBkb3ROTCAqIHNxcnQoIGEyICsgKCAxLjAgLSBhMiApICogcG93MiggZG90TlYgKSApO1xuXHRmbG9hdCBnbCA9IGRvdE5WICogc3FydCggYTIgKyAoIDEuMCAtIGEyICkgKiBwb3cyKCBkb3ROTCApICk7XG5cdHJldHVybiAwLjUgLyBtYXgoIGd2ICsgZ2wsIEVQU0lMT04gKTtcbn1cbmZsb2F0IERfR0dYKCBjb25zdCBpbiBmbG9hdCBhbHBoYSwgY29uc3QgaW4gZmxvYXQgZG90TkggKSB7XG5cdGZsb2F0IGEyID0gcG93MiggYWxwaGEgKTtcblx0ZmxvYXQgZGVub20gPSBwb3cyKCBkb3ROSCApICogKCBhMiAtIDEuMCApICsgMS4wO1xuXHRyZXR1cm4gUkVDSVBST0NBTF9QSSAqIGEyIC8gcG93MiggZGVub20gKTtcbn1cbnZlYzMgQlJERl9TcGVjdWxhcl9HR1goIGNvbnN0IGluIEluY2lkZW50TGlnaHQgaW5jaWRlbnRMaWdodCwgY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gdmVjMyBmMCwgY29uc3QgaW4gdmVjMyBmOTAsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0ZmxvYXQgYWxwaGEgPSBwb3cyKCByb3VnaG5lc3MgKTtcblx0dmVjMyBoYWxmRGlyID0gbm9ybWFsaXplKCBpbmNpZGVudExpZ2h0LmRpcmVjdGlvbiArIHZpZXdEaXIgKTtcblx0ZmxvYXQgZG90TkwgPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIGluY2lkZW50TGlnaHQuZGlyZWN0aW9uICkgKTtcblx0ZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIHZpZXdEaXIgKSApO1xuXHRmbG9hdCBkb3ROSCA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgaGFsZkRpciApICk7XG5cdGZsb2F0IGRvdExIID0gc2F0dXJhdGUoIGRvdCggaW5jaWRlbnRMaWdodC5kaXJlY3Rpb24sIGhhbGZEaXIgKSApO1xuXHR2ZWMzIEYgPSBGX1NjaGxpY2soIGYwLCBmOTAsIGRvdExIICk7XG5cdGZsb2F0IEcgPSBHX0dHWF9TbWl0aENvcnJlbGF0ZWQoIGFscGhhLCBkb3ROTCwgZG90TlYgKTtcblx0ZmxvYXQgRCA9IERfR0dYKCBhbHBoYSwgZG90TkggKTtcblx0cmV0dXJuIEYgKiAoIEcgKiBEICk7XG59XG52ZWMyIExUQ19VdiggY29uc3QgaW4gdmVjMyBOLCBjb25zdCBpbiB2ZWMzIFYsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0Y29uc3QgZmxvYXQgTFVUX1NJWkUgPSA2NC4wO1xuXHRjb25zdCBmbG9hdCBMVVRfU0NBTEUgPSAoIExVVF9TSVpFIC0gMS4wICkgLyBMVVRfU0laRTtcblx0Y29uc3QgZmxvYXQgTFVUX0JJQVMgPSAwLjUgLyBMVVRfU0laRTtcblx0ZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBOLCBWICkgKTtcblx0dmVjMiB1diA9IHZlYzIoIHJvdWdobmVzcywgc3FydCggMS4wIC0gZG90TlYgKSApO1xuXHR1diA9IHV2ICogTFVUX1NDQUxFICsgTFVUX0JJQVM7XG5cdHJldHVybiB1djtcbn1cbmZsb2F0IExUQ19DbGlwcGVkU3BoZXJlRm9ybUZhY3RvciggY29uc3QgaW4gdmVjMyBmICkge1xuXHRmbG9hdCBsID0gbGVuZ3RoKCBmICk7XG5cdHJldHVybiBtYXgoICggbCAqIGwgKyBmLnogKSAvICggbCArIDEuMCApLCAwLjAgKTtcbn1cbnZlYzMgTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb25zdCBpbiB2ZWMzIHYxLCBjb25zdCBpbiB2ZWMzIHYyICkge1xuXHRmbG9hdCB4ID0gZG90KCB2MSwgdjIgKTtcblx0ZmxvYXQgeSA9IGFicyggeCApO1xuXHRmbG9hdCBhID0gMC44NTQzOTg1ICsgKCAwLjQ5NjUxNTUgKyAwLjAxNDUyMDYgKiB5ICkgKiB5O1xuXHRmbG9hdCBiID0gMy40MTc1OTQwICsgKCA0LjE2MTY3MjQgKyB5ICkgKiB5O1xuXHRmbG9hdCB2ID0gYSAvIGI7XG5cdGZsb2F0IHRoZXRhX3NpbnRoZXRhID0gKCB4ID4gMC4wICkgPyB2IDogMC41ICogaW52ZXJzZXNxcnQoIG1heCggMS4wIC0geCAqIHgsIDFlLTcgKSApIC0gdjtcblx0cmV0dXJuIGNyb3NzKCB2MSwgdjIgKSAqIHRoZXRhX3NpbnRoZXRhO1xufVxudmVjMyBMVENfRXZhbHVhdGUoIGNvbnN0IGluIHZlYzMgTiwgY29uc3QgaW4gdmVjMyBWLCBjb25zdCBpbiB2ZWMzIFAsIGNvbnN0IGluIG1hdDMgbUludiwgY29uc3QgaW4gdmVjMyByZWN0Q29vcmRzWyA0IF0gKSB7XG5cdHZlYzMgdjEgPSByZWN0Q29vcmRzWyAxIF0gLSByZWN0Q29vcmRzWyAwIF07XG5cdHZlYzMgdjIgPSByZWN0Q29vcmRzWyAzIF0gLSByZWN0Q29vcmRzWyAwIF07XG5cdHZlYzMgbGlnaHROb3JtYWwgPSBjcm9zcyggdjEsIHYyICk7XG5cdGlmKCBkb3QoIGxpZ2h0Tm9ybWFsLCBQIC0gcmVjdENvb3Jkc1sgMCBdICkgPCAwLjAgKSByZXR1cm4gdmVjMyggMC4wICk7XG5cdHZlYzMgVDEsIFQyO1xuXHRUMSA9IG5vcm1hbGl6ZSggViAtIE4gKiBkb3QoIFYsIE4gKSApO1xuXHRUMiA9IC0gY3Jvc3MoIE4sIFQxICk7XG5cdG1hdDMgbWF0ID0gbUludiAqIHRyYW5zcG9zZU1hdDMoIG1hdDMoIFQxLCBUMiwgTiApICk7XG5cdHZlYzMgY29vcmRzWyA0IF07XG5cdGNvb3Jkc1sgMCBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAwIF0gLSBQICk7XG5cdGNvb3Jkc1sgMSBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAxIF0gLSBQICk7XG5cdGNvb3Jkc1sgMiBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAyIF0gLSBQICk7XG5cdGNvb3Jkc1sgMyBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAzIF0gLSBQICk7XG5cdGNvb3Jkc1sgMCBdID0gbm9ybWFsaXplKCBjb29yZHNbIDAgXSApO1xuXHRjb29yZHNbIDEgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAxIF0gKTtcblx0Y29vcmRzWyAyIF0gPSBub3JtYWxpemUoIGNvb3Jkc1sgMiBdICk7XG5cdGNvb3Jkc1sgMyBdID0gbm9ybWFsaXplKCBjb29yZHNbIDMgXSApO1xuXHR2ZWMzIHZlY3RvckZvcm1GYWN0b3IgPSB2ZWMzKCAwLjAgKTtcblx0dmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMCBdLCBjb29yZHNbIDEgXSApO1xuXHR2ZWN0b3JGb3JtRmFjdG9yICs9IExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29vcmRzWyAxIF0sIGNvb3Jkc1sgMiBdICk7XG5cdHZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDIgXSwgY29vcmRzWyAzIF0gKTtcblx0dmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMyBdLCBjb29yZHNbIDAgXSApO1xuXHRmbG9hdCByZXN1bHQgPSBMVENfQ2xpcHBlZFNwaGVyZUZvcm1GYWN0b3IoIHZlY3RvckZvcm1GYWN0b3IgKTtcblx0cmV0dXJuIHZlYzMoIHJlc3VsdCApO1xufVxudmVjMyBCUkRGX1NwZWN1bGFyX0dHWF9FbnZpcm9ubWVudCggY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gdmVjMyBzcGVjdWxhckNvbG9yLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCB2aWV3RGlyICkgKTtcblx0dmVjMiBicmRmID0gaW50ZWdyYXRlU3BlY3VsYXJCUkRGKCBkb3ROViwgcm91Z2huZXNzICk7XG5cdHJldHVybiBzcGVjdWxhckNvbG9yICogYnJkZi54ICsgYnJkZi55O1xufVxudm9pZCBCUkRGX1NwZWN1bGFyX011bHRpc2NhdHRlcmluZ19FbnZpcm9ubWVudCggY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gdmVjMyBzcGVjdWxhckNvbG9yLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGlub3V0IHZlYzMgc2luZ2xlU2NhdHRlciwgaW5vdXQgdmVjMyBtdWx0aVNjYXR0ZXIgKSB7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyICkgKTtcblx0dmVjMyBGID0gRl9TY2hsaWNrX1JvdWdobmVzc0RlcGVuZGVudCggc3BlY3VsYXJDb2xvciwgZG90TlYsIHJvdWdobmVzcyApO1xuXHR2ZWMyIGJyZGYgPSBpbnRlZ3JhdGVTcGVjdWxhckJSREYoIGRvdE5WLCByb3VnaG5lc3MgKTtcblx0dmVjMyBGc3NFc3MgPSBGICogYnJkZi54ICsgYnJkZi55O1xuXHRmbG9hdCBFc3MgPSBicmRmLnggKyBicmRmLnk7XG5cdGZsb2F0IEVtcyA9IDEuMCAtIEVzcztcblx0dmVjMyBGYXZnID0gc3BlY3VsYXJDb2xvciArICggMS4wIC0gc3BlY3VsYXJDb2xvciApICogMC4wNDc2MTk7XHR2ZWMzIEZtcyA9IEZzc0VzcyAqIEZhdmcgLyAoIDEuMCAtIEVtcyAqIEZhdmcgKTtcblx0c2luZ2xlU2NhdHRlciArPSBGc3NFc3M7XG5cdG11bHRpU2NhdHRlciArPSBGbXMgKiBFbXM7XG59XG5mbG9hdCBHX0JsaW5uUGhvbmdfSW1wbGljaXQoICkge1xuXHRyZXR1cm4gMC4yNTtcbn1cbmZsb2F0IERfQmxpbm5QaG9uZyggY29uc3QgaW4gZmxvYXQgc2hpbmluZXNzLCBjb25zdCBpbiBmbG9hdCBkb3ROSCApIHtcblx0cmV0dXJuIFJFQ0lQUk9DQUxfUEkgKiAoIHNoaW5pbmVzcyAqIDAuNSArIDEuMCApICogcG93KCBkb3ROSCwgc2hpbmluZXNzICk7XG59XG52ZWMzIEJSREZfU3BlY3VsYXJfQmxpbm5QaG9uZyggY29uc3QgaW4gSW5jaWRlbnRMaWdodCBpbmNpZGVudExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiB2ZWMzIHNwZWN1bGFyQ29sb3IsIGNvbnN0IGluIGZsb2F0IHNoaW5pbmVzcyApIHtcblx0dmVjMyBoYWxmRGlyID0gbm9ybWFsaXplKCBpbmNpZGVudExpZ2h0LmRpcmVjdGlvbiArIGdlb21ldHJ5LnZpZXdEaXIgKTtcblx0ZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5ub3JtYWwsIGhhbGZEaXIgKSApO1xuXHRmbG9hdCBkb3RMSCA9IHNhdHVyYXRlKCBkb3QoIGluY2lkZW50TGlnaHQuZGlyZWN0aW9uLCBoYWxmRGlyICkgKTtcblx0dmVjMyBGID0gRl9TY2hsaWNrKCBzcGVjdWxhckNvbG9yLCB2ZWMzKCAxLjAgKSwgZG90TEggKTtcblx0ZmxvYXQgRyA9IEdfQmxpbm5QaG9uZ19JbXBsaWNpdCggKTtcblx0ZmxvYXQgRCA9IERfQmxpbm5QaG9uZyggc2hpbmluZXNzLCBkb3ROSCApO1xuXHRyZXR1cm4gRiAqICggRyAqIEQgKTtcbn1cbmZsb2F0IEdHWFJvdWdobmVzc1RvQmxpbm5FeHBvbmVudCggY29uc3QgaW4gZmxvYXQgZ2d4Um91Z2huZXNzICkge1xuXHRyZXR1cm4gKCAyLjAgLyBwb3cyKCBnZ3hSb3VnaG5lc3MgKyAwLjAwMDEgKSAtIDIuMCApO1xufVxuZmxvYXQgQmxpbm5FeHBvbmVudFRvR0dYUm91Z2huZXNzKCBjb25zdCBpbiBmbG9hdCBibGlubkV4cG9uZW50ICkge1xuXHRyZXR1cm4gc3FydCggMi4wIC8gKCBibGlubkV4cG9uZW50ICsgMi4wICkgKTtcbn1cbiNpZiBkZWZpbmVkKCBVU0VfU0hFRU4gKVxuZmxvYXQgRF9DaGFybGllKGZsb2F0IHJvdWdobmVzcywgZmxvYXQgTm9IKSB7XG5cdGZsb2F0IGludkFscGhhID0gMS4wIC8gcm91Z2huZXNzO1xuXHRmbG9hdCBjb3MyaCA9IE5vSCAqIE5vSDtcblx0ZmxvYXQgc2luMmggPSBtYXgoMS4wIC0gY29zMmgsIDAuMDA3ODEyNSk7XHRyZXR1cm4gKDIuMCArIGludkFscGhhKSAqIHBvdyhzaW4yaCwgaW52QWxwaGEgKiAwLjUpIC8gKDIuMCAqIFBJKTtcbn1cbmZsb2F0IFZfTmV1YmVsdChmbG9hdCBOb1YsIGZsb2F0IE5vTCkge1xuXHRyZXR1cm4gc2F0dXJhdGUoMS4wIC8gKDQuMCAqIChOb0wgKyBOb1YgLSBOb0wgKiBOb1YpKSk7XG59XG52ZWMzIEJSREZfU3BlY3VsYXJfU2hlZW4oIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcywgY29uc3QgaW4gdmVjMyBMLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCB2ZWMzIHNwZWN1bGFyQ29sb3IgKSB7XG5cdHZlYzMgTiA9IGdlb21ldHJ5Lm5vcm1hbDtcblx0dmVjMyBWID0gZ2VvbWV0cnkudmlld0Rpcjtcblx0dmVjMyBIID0gbm9ybWFsaXplKCBWICsgTCApO1xuXHRmbG9hdCBkb3ROSCA9IHNhdHVyYXRlKCBkb3QoIE4sIEggKSApO1xuXHRyZXR1cm4gc3BlY3VsYXJDb2xvciAqIERfQ2hhcmxpZSggcm91Z2huZXNzLCBkb3ROSCApICogVl9OZXViZWx0KCBkb3QoTiwgViksIGRvdChOLCBMKSApO1xufVxuI2VuZGlmIixidW1wbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQlVNUE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBidW1wTWFwO1xuXHR1bmlmb3JtIGZsb2F0IGJ1bXBTY2FsZTtcblx0dmVjMiBkSGR4eV9md2QoKSB7XG5cdFx0dmVjMiBkU1RkeCA9IGRGZHgoIHZVdiApO1xuXHRcdHZlYzIgZFNUZHkgPSBkRmR5KCB2VXYgKTtcblx0XHRmbG9hdCBIbGwgPSBidW1wU2NhbGUgKiB0ZXh0dXJlMkQoIGJ1bXBNYXAsIHZVdiApLng7XG5cdFx0ZmxvYXQgZEJ4ID0gYnVtcFNjYWxlICogdGV4dHVyZTJEKCBidW1wTWFwLCB2VXYgKyBkU1RkeCApLnggLSBIbGw7XG5cdFx0ZmxvYXQgZEJ5ID0gYnVtcFNjYWxlICogdGV4dHVyZTJEKCBidW1wTWFwLCB2VXYgKyBkU1RkeSApLnggLSBIbGw7XG5cdFx0cmV0dXJuIHZlYzIoIGRCeCwgZEJ5ICk7XG5cdH1cblx0dmVjMyBwZXJ0dXJiTm9ybWFsQXJiKCB2ZWMzIHN1cmZfcG9zLCB2ZWMzIHN1cmZfbm9ybSwgdmVjMiBkSGR4eSwgZmxvYXQgZmFjZURpcmVjdGlvbiApIHtcblx0XHR2ZWMzIHZTaWdtYVggPSB2ZWMzKCBkRmR4KCBzdXJmX3Bvcy54ICksIGRGZHgoIHN1cmZfcG9zLnkgKSwgZEZkeCggc3VyZl9wb3MueiApICk7XG5cdFx0dmVjMyB2U2lnbWFZID0gdmVjMyggZEZkeSggc3VyZl9wb3MueCApLCBkRmR5KCBzdXJmX3Bvcy55ICksIGRGZHkoIHN1cmZfcG9zLnogKSApO1xuXHRcdHZlYzMgdk4gPSBzdXJmX25vcm07XG5cdFx0dmVjMyBSMSA9IGNyb3NzKCB2U2lnbWFZLCB2TiApO1xuXHRcdHZlYzMgUjIgPSBjcm9zcyggdk4sIHZTaWdtYVggKTtcblx0XHRmbG9hdCBmRGV0ID0gZG90KCB2U2lnbWFYLCBSMSApICogZmFjZURpcmVjdGlvbjtcblx0XHR2ZWMzIHZHcmFkID0gc2lnbiggZkRldCApICogKCBkSGR4eS54ICogUjEgKyBkSGR4eS55ICogUjIgKTtcblx0XHRyZXR1cm4gbm9ybWFsaXplKCBhYnMoIGZEZXQgKSAqIHN1cmZfbm9ybSAtIHZHcmFkICk7XG5cdH1cbiNlbmRpZiIsY2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50OiIjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDBcblx0dmVjNCBwbGFuZTtcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBVTklPTl9DTElQUElOR19QTEFORVM7IGkgKysgKSB7XG5cdFx0cGxhbmUgPSBjbGlwcGluZ1BsYW5lc1sgaSBdO1xuXHRcdGlmICggZG90KCB2Q2xpcFBvc2l0aW9uLCBwbGFuZS54eXogKSA+IHBsYW5lLncgKSBkaXNjYXJkO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNpZiBVTklPTl9DTElQUElOR19QTEFORVMgPCBOVU1fQ0xJUFBJTkdfUExBTkVTXG5cdFx0Ym9vbCBjbGlwcGVkID0gdHJ1ZTtcblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdFx0Zm9yICggaW50IGkgPSBVTklPTl9DTElQUElOR19QTEFORVM7IGkgPCBOVU1fQ0xJUFBJTkdfUExBTkVTOyBpICsrICkge1xuXHRcdFx0cGxhbmUgPSBjbGlwcGluZ1BsYW5lc1sgaSBdO1xuXHRcdFx0Y2xpcHBlZCA9ICggZG90KCB2Q2xpcFBvc2l0aW9uLCBwbGFuZS54eXogKSA+IHBsYW5lLncgKSAmJiBjbGlwcGVkO1xuXHRcdH1cblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHRcdGlmICggY2xpcHBlZCApIGRpc2NhcmQ7XG5cdCNlbmRpZlxuI2VuZGlmIixjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudDoiI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwXG5cdHZhcnlpbmcgdmVjMyB2Q2xpcFBvc2l0aW9uO1xuXHR1bmlmb3JtIHZlYzQgY2xpcHBpbmdQbGFuZXNbIE5VTV9DTElQUElOR19QTEFORVMgXTtcbiNlbmRpZiIsY2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4OiIjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDBcblx0dmFyeWluZyB2ZWMzIHZDbGlwUG9zaXRpb247XG4jZW5kaWYiLGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg6IiNpZiBOVU1fQ0xJUFBJTkdfUExBTkVTID4gMFxuXHR2Q2xpcFBvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcbiNlbmRpZiIsY29sb3JfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHRkaWZmdXNlQ29sb3IgKj0gdkNvbG9yO1xuI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SIClcblx0ZGlmZnVzZUNvbG9yLnJnYiAqPSB2Q29sb3I7XG4jZW5kaWYiLGNvbG9yX3BhcnNfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHR2YXJ5aW5nIHZlYzQgdkNvbG9yO1xuI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SIClcblx0dmFyeWluZyB2ZWMzIHZDb2xvcjtcbiNlbmRpZiIsY29sb3JfcGFyc192ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHR2YXJ5aW5nIHZlYzQgdkNvbG9yO1xuI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkgfHwgZGVmaW5lZCggVVNFX0lOU1RBTkNJTkdfQ09MT1IgKVxuXHR2YXJ5aW5nIHZlYzMgdkNvbG9yO1xuI2VuZGlmIixjb2xvcl92ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHR2Q29sb3IgPSB2ZWM0KCAxLjAgKTtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApIHx8IGRlZmluZWQoIFVTRV9JTlNUQU5DSU5HX0NPTE9SIClcblx0dkNvbG9yID0gdmVjMyggMS4wICk7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQ09MT1Jcblx0dkNvbG9yICo9IGNvbG9yO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0lOU1RBTkNJTkdfQ09MT1Jcblx0dkNvbG9yLnh5eiAqPSBpbnN0YW5jZUNvbG9yLnh5ejtcbiNlbmRpZiIsY29tbW9uOiIjZGVmaW5lIFBJIDMuMTQxNTkyNjUzNTg5NzkzXG4jZGVmaW5lIFBJMiA2LjI4MzE4NTMwNzE3OTU4NlxuI2RlZmluZSBQSV9IQUxGIDEuNTcwNzk2MzI2Nzk0ODk2NlxuI2RlZmluZSBSRUNJUFJPQ0FMX1BJIDAuMzE4MzA5ODg2MTgzNzkwN1xuI2RlZmluZSBSRUNJUFJPQ0FMX1BJMiAwLjE1OTE1NDk0MzA5MTg5NTM1XG4jZGVmaW5lIEVQU0lMT04gMWUtNlxuI2lmbmRlZiBzYXR1cmF0ZVxuI2RlZmluZSBzYXR1cmF0ZShhKSBjbGFtcCggYSwgMC4wLCAxLjAgKVxuI2VuZGlmXG4jZGVmaW5lIHdoaXRlQ29tcGxlbWVudChhKSAoIDEuMCAtIHNhdHVyYXRlKCBhICkgKVxuZmxvYXQgcG93MiggY29uc3QgaW4gZmxvYXQgeCApIHsgcmV0dXJuIHgqeDsgfVxuZmxvYXQgcG93MyggY29uc3QgaW4gZmxvYXQgeCApIHsgcmV0dXJuIHgqeCp4OyB9XG5mbG9hdCBwb3c0KCBjb25zdCBpbiBmbG9hdCB4ICkgeyBmbG9hdCB4MiA9IHgqeDsgcmV0dXJuIHgyKngyOyB9XG5mbG9hdCBhdmVyYWdlKCBjb25zdCBpbiB2ZWMzIGNvbG9yICkgeyByZXR1cm4gZG90KCBjb2xvciwgdmVjMyggMC4zMzMzICkgKTsgfVxuaGlnaHAgZmxvYXQgcmFuZCggY29uc3QgaW4gdmVjMiB1diApIHtcblx0Y29uc3QgaGlnaHAgZmxvYXQgYSA9IDEyLjk4OTgsIGIgPSA3OC4yMzMsIGMgPSA0Mzc1OC41NDUzO1xuXHRoaWdocCBmbG9hdCBkdCA9IGRvdCggdXYueHksIHZlYzIoIGEsYiApICksIHNuID0gbW9kKCBkdCwgUEkgKTtcblx0cmV0dXJuIGZyYWN0KHNpbihzbikgKiBjKTtcbn1cbiNpZmRlZiBISUdIX1BSRUNJU0lPTlxuXHRmbG9hdCBwcmVjaXNpb25TYWZlTGVuZ3RoKCB2ZWMzIHYgKSB7IHJldHVybiBsZW5ndGgoIHYgKTsgfVxuI2Vsc2Vcblx0ZmxvYXQgbWF4MyggdmVjMyB2ICkgeyByZXR1cm4gbWF4KCBtYXgoIHYueCwgdi55ICksIHYueiApOyB9XG5cdGZsb2F0IHByZWNpc2lvblNhZmVMZW5ndGgoIHZlYzMgdiApIHtcblx0XHRmbG9hdCBtYXhDb21wb25lbnQgPSBtYXgzKCBhYnMoIHYgKSApO1xuXHRcdHJldHVybiBsZW5ndGgoIHYgLyBtYXhDb21wb25lbnQgKSAqIG1heENvbXBvbmVudDtcblx0fVxuI2VuZGlmXG5zdHJ1Y3QgSW5jaWRlbnRMaWdodCB7XG5cdHZlYzMgY29sb3I7XG5cdHZlYzMgZGlyZWN0aW9uO1xuXHRib29sIHZpc2libGU7XG59O1xuc3RydWN0IFJlZmxlY3RlZExpZ2h0IHtcblx0dmVjMyBkaXJlY3REaWZmdXNlO1xuXHR2ZWMzIGRpcmVjdFNwZWN1bGFyO1xuXHR2ZWMzIGluZGlyZWN0RGlmZnVzZTtcblx0dmVjMyBpbmRpcmVjdFNwZWN1bGFyO1xufTtcbnN0cnVjdCBHZW9tZXRyaWNDb250ZXh0IHtcblx0dmVjMyBwb3NpdGlvbjtcblx0dmVjMyBub3JtYWw7XG5cdHZlYzMgdmlld0RpcjtcbiNpZmRlZiBDTEVBUkNPQVRcblx0dmVjMyBjbGVhcmNvYXROb3JtYWw7XG4jZW5kaWZcbn07XG52ZWMzIHRyYW5zZm9ybURpcmVjdGlvbiggaW4gdmVjMyBkaXIsIGluIG1hdDQgbWF0cml4ICkge1xuXHRyZXR1cm4gbm9ybWFsaXplKCAoIG1hdHJpeCAqIHZlYzQoIGRpciwgMC4wICkgKS54eXogKTtcbn1cbnZlYzMgaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggaW4gdmVjMyBkaXIsIGluIG1hdDQgbWF0cml4ICkge1xuXHRyZXR1cm4gbm9ybWFsaXplKCAoIHZlYzQoIGRpciwgMC4wICkgKiBtYXRyaXggKS54eXogKTtcbn1cbnZlYzMgcHJvamVjdE9uUGxhbmUoaW4gdmVjMyBwb2ludCwgaW4gdmVjMyBwb2ludE9uUGxhbmUsIGluIHZlYzMgcGxhbmVOb3JtYWwgKSB7XG5cdGZsb2F0IGRpc3RhbmNlID0gZG90KCBwbGFuZU5vcm1hbCwgcG9pbnQgLSBwb2ludE9uUGxhbmUgKTtcblx0cmV0dXJuIC0gZGlzdGFuY2UgKiBwbGFuZU5vcm1hbCArIHBvaW50O1xufVxuZmxvYXQgc2lkZU9mUGxhbmUoIGluIHZlYzMgcG9pbnQsIGluIHZlYzMgcG9pbnRPblBsYW5lLCBpbiB2ZWMzIHBsYW5lTm9ybWFsICkge1xuXHRyZXR1cm4gc2lnbiggZG90KCBwb2ludCAtIHBvaW50T25QbGFuZSwgcGxhbmVOb3JtYWwgKSApO1xufVxudmVjMyBsaW5lUGxhbmVJbnRlcnNlY3QoIGluIHZlYzMgcG9pbnRPbkxpbmUsIGluIHZlYzMgbGluZURpcmVjdGlvbiwgaW4gdmVjMyBwb2ludE9uUGxhbmUsIGluIHZlYzMgcGxhbmVOb3JtYWwgKSB7XG5cdHJldHVybiBsaW5lRGlyZWN0aW9uICogKCBkb3QoIHBsYW5lTm9ybWFsLCBwb2ludE9uUGxhbmUgLSBwb2ludE9uTGluZSApIC8gZG90KCBwbGFuZU5vcm1hbCwgbGluZURpcmVjdGlvbiApICkgKyBwb2ludE9uTGluZTtcbn1cbm1hdDMgdHJhbnNwb3NlTWF0MyggY29uc3QgaW4gbWF0MyBtICkge1xuXHRtYXQzIHRtcDtcblx0dG1wWyAwIF0gPSB2ZWMzKCBtWyAwIF0ueCwgbVsgMSBdLngsIG1bIDIgXS54ICk7XG5cdHRtcFsgMSBdID0gdmVjMyggbVsgMCBdLnksIG1bIDEgXS55LCBtWyAyIF0ueSApO1xuXHR0bXBbIDIgXSA9IHZlYzMoIG1bIDAgXS56LCBtWyAxIF0ueiwgbVsgMiBdLnogKTtcblx0cmV0dXJuIHRtcDtcbn1cbmZsb2F0IGxpbmVhclRvUmVsYXRpdmVMdW1pbmFuY2UoIGNvbnN0IGluIHZlYzMgY29sb3IgKSB7XG5cdHZlYzMgd2VpZ2h0cyA9IHZlYzMoIDAuMjEyNiwgMC43MTUyLCAwLjA3MjIgKTtcblx0cmV0dXJuIGRvdCggd2VpZ2h0cywgY29sb3IucmdiICk7XG59XG5ib29sIGlzUGVyc3BlY3RpdmVNYXRyaXgoIG1hdDQgbSApIHtcblx0cmV0dXJuIG1bIDIgXVsgMyBdID09IC0gMS4wO1xufVxudmVjMiBlcXVpcmVjdFV2KCBpbiB2ZWMzIGRpciApIHtcblx0ZmxvYXQgdSA9IGF0YW4oIGRpci56LCBkaXIueCApICogUkVDSVBST0NBTF9QSTIgKyAwLjU7XG5cdGZsb2F0IHYgPSBhc2luKCBjbGFtcCggZGlyLnksIC0gMS4wLCAxLjAgKSApICogUkVDSVBST0NBTF9QSSArIDAuNTtcblx0cmV0dXJuIHZlYzIoIHUsIHYgKTtcbn0iLGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudDoiI2lmZGVmIEVOVk1BUF9UWVBFX0NVQkVfVVZcblx0I2RlZmluZSBjdWJlVVZfbWF4TWlwTGV2ZWwgOC4wXG5cdCNkZWZpbmUgY3ViZVVWX21pbk1pcExldmVsIDQuMFxuXHQjZGVmaW5lIGN1YmVVVl9tYXhUaWxlU2l6ZSAyNTYuMFxuXHQjZGVmaW5lIGN1YmVVVl9taW5UaWxlU2l6ZSAxNi4wXG5cdGZsb2F0IGdldEZhY2UoIHZlYzMgZGlyZWN0aW9uICkge1xuXHRcdHZlYzMgYWJzRGlyZWN0aW9uID0gYWJzKCBkaXJlY3Rpb24gKTtcblx0XHRmbG9hdCBmYWNlID0gLSAxLjA7XG5cdFx0aWYgKCBhYnNEaXJlY3Rpb24ueCA+IGFic0RpcmVjdGlvbi56ICkge1xuXHRcdFx0aWYgKCBhYnNEaXJlY3Rpb24ueCA+IGFic0RpcmVjdGlvbi55IClcblx0XHRcdFx0ZmFjZSA9IGRpcmVjdGlvbi54ID4gMC4wID8gMC4wIDogMy4wO1xuXHRcdFx0ZWxzZVxuXHRcdFx0XHRmYWNlID0gZGlyZWN0aW9uLnkgPiAwLjAgPyAxLjAgOiA0LjA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmICggYWJzRGlyZWN0aW9uLnogPiBhYnNEaXJlY3Rpb24ueSApXG5cdFx0XHRcdGZhY2UgPSBkaXJlY3Rpb24ueiA+IDAuMCA/IDIuMCA6IDUuMDtcblx0XHRcdGVsc2Vcblx0XHRcdFx0ZmFjZSA9IGRpcmVjdGlvbi55ID4gMC4wID8gMS4wIDogNC4wO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFjZTtcblx0fVxuXHR2ZWMyIGdldFVWKCB2ZWMzIGRpcmVjdGlvbiwgZmxvYXQgZmFjZSApIHtcblx0XHR2ZWMyIHV2O1xuXHRcdGlmICggZmFjZSA9PSAwLjAgKSB7XG5cdFx0XHR1diA9IHZlYzIoIGRpcmVjdGlvbi56LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueCApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMS4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCAtIGRpcmVjdGlvbi56ICkgLyBhYnMoIGRpcmVjdGlvbi55ICk7XG5cdFx0fSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7XG5cdFx0XHR1diA9IHZlYzIoIC0gZGlyZWN0aW9uLngsIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi56ICk7XG5cdFx0fSBlbHNlIGlmICggZmFjZSA9PSAzLjAgKSB7XG5cdFx0XHR1diA9IHZlYzIoIC0gZGlyZWN0aW9uLnosIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi54ICk7XG5cdFx0fSBlbHNlIGlmICggZmFjZSA9PSA0LjAgKSB7XG5cdFx0XHR1diA9IHZlYzIoIC0gZGlyZWN0aW9uLngsIGRpcmVjdGlvbi56ICkgLyBhYnMoIGRpcmVjdGlvbi55ICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHV2ID0gdmVjMiggZGlyZWN0aW9uLngsIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi56ICk7XG5cdFx0fVxuXHRcdHJldHVybiAwLjUgKiAoIHV2ICsgMS4wICk7XG5cdH1cblx0dmVjMyBiaWxpbmVhckN1YmVVViggc2FtcGxlcjJEIGVudk1hcCwgdmVjMyBkaXJlY3Rpb24sIGZsb2F0IG1pcEludCApIHtcblx0XHRmbG9hdCBmYWNlID0gZ2V0RmFjZSggZGlyZWN0aW9uICk7XG5cdFx0ZmxvYXQgZmlsdGVySW50ID0gbWF4KCBjdWJlVVZfbWluTWlwTGV2ZWwgLSBtaXBJbnQsIDAuMCApO1xuXHRcdG1pcEludCA9IG1heCggbWlwSW50LCBjdWJlVVZfbWluTWlwTGV2ZWwgKTtcblx0XHRmbG9hdCBmYWNlU2l6ZSA9IGV4cDIoIG1pcEludCApO1xuXHRcdGZsb2F0IHRleGVsU2l6ZSA9IDEuMCAvICggMy4wICogY3ViZVVWX21heFRpbGVTaXplICk7XG5cdFx0dmVjMiB1diA9IGdldFVWKCBkaXJlY3Rpb24sIGZhY2UgKSAqICggZmFjZVNpemUgLSAxLjAgKTtcblx0XHR2ZWMyIGYgPSBmcmFjdCggdXYgKTtcblx0XHR1diArPSAwLjUgLSBmO1xuXHRcdGlmICggZmFjZSA+IDIuMCApIHtcblx0XHRcdHV2LnkgKz0gZmFjZVNpemU7XG5cdFx0XHRmYWNlIC09IDMuMDtcblx0XHR9XG5cdFx0dXYueCArPSBmYWNlICogZmFjZVNpemU7XG5cdFx0aWYgKCBtaXBJbnQgPCBjdWJlVVZfbWF4TWlwTGV2ZWwgKSB7XG5cdFx0XHR1di55ICs9IDIuMCAqIGN1YmVVVl9tYXhUaWxlU2l6ZTtcblx0XHR9XG5cdFx0dXYueSArPSBmaWx0ZXJJbnQgKiAyLjAgKiBjdWJlVVZfbWluVGlsZVNpemU7XG5cdFx0dXYueCArPSAzLjAgKiBtYXgoIDAuMCwgY3ViZVVWX21heFRpbGVTaXplIC0gMi4wICogZmFjZVNpemUgKTtcblx0XHR1diAqPSB0ZXhlbFNpemU7XG5cdFx0dmVjMyB0bCA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCggZW52TWFwLCB1diApICkucmdiO1xuXHRcdHV2LnggKz0gdGV4ZWxTaXplO1xuXHRcdHZlYzMgdHIgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCB0ZXh0dXJlMkQoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHR1di55ICs9IHRleGVsU2l6ZTtcblx0XHR2ZWMzIGJyID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEKCBlbnZNYXAsIHV2ICkgKS5yZ2I7XG5cdFx0dXYueCAtPSB0ZXhlbFNpemU7XG5cdFx0dmVjMyBibCA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCggZW52TWFwLCB1diApICkucmdiO1xuXHRcdHZlYzMgdG0gPSBtaXgoIHRsLCB0ciwgZi54ICk7XG5cdFx0dmVjMyBibSA9IG1peCggYmwsIGJyLCBmLnggKTtcblx0XHRyZXR1cm4gbWl4KCB0bSwgYm0sIGYueSApO1xuXHR9XG5cdCNkZWZpbmUgcjAgMS4wXG5cdCNkZWZpbmUgdjAgMC4zMzlcblx0I2RlZmluZSBtMCAtIDIuMFxuXHQjZGVmaW5lIHIxIDAuOFxuXHQjZGVmaW5lIHYxIDAuMjc2XG5cdCNkZWZpbmUgbTEgLSAxLjBcblx0I2RlZmluZSByNCAwLjRcblx0I2RlZmluZSB2NCAwLjA0NlxuXHQjZGVmaW5lIG00IDIuMFxuXHQjZGVmaW5lIHI1IDAuMzA1XG5cdCNkZWZpbmUgdjUgMC4wMTZcblx0I2RlZmluZSBtNSAzLjBcblx0I2RlZmluZSByNiAwLjIxXG5cdCNkZWZpbmUgdjYgMC4wMDM4XG5cdCNkZWZpbmUgbTYgNC4wXG5cdGZsb2F0IHJvdWdobmVzc1RvTWlwKCBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdFx0ZmxvYXQgbWlwID0gMC4wO1xuXHRcdGlmICggcm91Z2huZXNzID49IHIxICkge1xuXHRcdFx0bWlwID0gKCByMCAtIHJvdWdobmVzcyApICogKCBtMSAtIG0wICkgLyAoIHIwIC0gcjEgKSArIG0wO1xuXHRcdH0gZWxzZSBpZiAoIHJvdWdobmVzcyA+PSByNCApIHtcblx0XHRcdG1pcCA9ICggcjEgLSByb3VnaG5lc3MgKSAqICggbTQgLSBtMSApIC8gKCByMSAtIHI0ICkgKyBtMTtcblx0XHR9IGVsc2UgaWYgKCByb3VnaG5lc3MgPj0gcjUgKSB7XG5cdFx0XHRtaXAgPSAoIHI0IC0gcm91Z2huZXNzICkgKiAoIG01IC0gbTQgKSAvICggcjQgLSByNSApICsgbTQ7XG5cdFx0fSBlbHNlIGlmICggcm91Z2huZXNzID49IHI2ICkge1xuXHRcdFx0bWlwID0gKCByNSAtIHJvdWdobmVzcyApICogKCBtNiAtIG01ICkgLyAoIHI1IC0gcjYgKSArIG01O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtaXAgPSAtIDIuMCAqIGxvZzIoIDEuMTYgKiByb3VnaG5lc3MgKTtcdFx0fVxuXHRcdHJldHVybiBtaXA7XG5cdH1cblx0dmVjNCB0ZXh0dXJlQ3ViZVVWKCBzYW1wbGVyMkQgZW52TWFwLCB2ZWMzIHNhbXBsZURpciwgZmxvYXQgcm91Z2huZXNzICkge1xuXHRcdGZsb2F0IG1pcCA9IGNsYW1wKCByb3VnaG5lc3NUb01pcCggcm91Z2huZXNzICksIG0wLCBjdWJlVVZfbWF4TWlwTGV2ZWwgKTtcblx0XHRmbG9hdCBtaXBGID0gZnJhY3QoIG1pcCApO1xuXHRcdGZsb2F0IG1pcEludCA9IGZsb29yKCBtaXAgKTtcblx0XHR2ZWMzIGNvbG9yMCA9IGJpbGluZWFyQ3ViZVVWKCBlbnZNYXAsIHNhbXBsZURpciwgbWlwSW50ICk7XG5cdFx0aWYgKCBtaXBGID09IDAuMCApIHtcblx0XHRcdHJldHVybiB2ZWM0KCBjb2xvcjAsIDEuMCApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR2ZWMzIGNvbG9yMSA9IGJpbGluZWFyQ3ViZVVWKCBlbnZNYXAsIHNhbXBsZURpciwgbWlwSW50ICsgMS4wICk7XG5cdFx0XHRyZXR1cm4gdmVjNCggbWl4KCBjb2xvcjAsIGNvbG9yMSwgbWlwRiApLCAxLjAgKTtcblx0XHR9XG5cdH1cbiNlbmRpZiIsZGVmYXVsdG5vcm1hbF92ZXJ0ZXg6InZlYzMgdHJhbnNmb3JtZWROb3JtYWwgPSBvYmplY3ROb3JtYWw7XG4jaWZkZWYgVVNFX0lOU1RBTkNJTkdcblx0bWF0MyBtID0gbWF0MyggaW5zdGFuY2VNYXRyaXggKTtcblx0dHJhbnNmb3JtZWROb3JtYWwgLz0gdmVjMyggZG90KCBtWyAwIF0sIG1bIDAgXSApLCBkb3QoIG1bIDEgXSwgbVsgMSBdICksIGRvdCggbVsgMiBdLCBtWyAyIF0gKSApO1xuXHR0cmFuc2Zvcm1lZE5vcm1hbCA9IG0gKiB0cmFuc2Zvcm1lZE5vcm1hbDtcbiNlbmRpZlxudHJhbnNmb3JtZWROb3JtYWwgPSBub3JtYWxNYXRyaXggKiB0cmFuc2Zvcm1lZE5vcm1hbDtcbiNpZmRlZiBGTElQX1NJREVEXG5cdHRyYW5zZm9ybWVkTm9ybWFsID0gLSB0cmFuc2Zvcm1lZE5vcm1hbDtcbiNlbmRpZlxuI2lmZGVmIFVTRV9UQU5HRU5UXG5cdHZlYzMgdHJhbnNmb3JtZWRUYW5nZW50ID0gKCBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBvYmplY3RUYW5nZW50LCAwLjAgKSApLnh5ejtcblx0I2lmZGVmIEZMSVBfU0lERURcblx0XHR0cmFuc2Zvcm1lZFRhbmdlbnQgPSAtIHRyYW5zZm9ybWVkVGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWYiLGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgZGlzcGxhY2VtZW50TWFwO1xuXHR1bmlmb3JtIGZsb2F0IGRpc3BsYWNlbWVudFNjYWxlO1xuXHR1bmlmb3JtIGZsb2F0IGRpc3BsYWNlbWVudEJpYXM7XG4jZW5kaWYiLGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg6IiNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQXG5cdHRyYW5zZm9ybWVkICs9IG5vcm1hbGl6ZSggb2JqZWN0Tm9ybWFsICkgKiAoIHRleHR1cmUyRCggZGlzcGxhY2VtZW50TWFwLCB2VXYgKS54ICogZGlzcGxhY2VtZW50U2NhbGUgKyBkaXNwbGFjZW1lbnRCaWFzICk7XG4jZW5kaWYiLGVtaXNzaXZlbWFwX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0VNSVNTSVZFTUFQXG5cdHZlYzQgZW1pc3NpdmVDb2xvciA9IHRleHR1cmUyRCggZW1pc3NpdmVNYXAsIHZVdiApO1xuXHRlbWlzc2l2ZUNvbG9yLnJnYiA9IGVtaXNzaXZlTWFwVGV4ZWxUb0xpbmVhciggZW1pc3NpdmVDb2xvciApLnJnYjtcblx0dG90YWxFbWlzc2l2ZVJhZGlhbmNlICo9IGVtaXNzaXZlQ29sb3IucmdiO1xuI2VuZGlmIixlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0VNSVNTSVZFTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGVtaXNzaXZlTWFwO1xuI2VuZGlmIixlbmNvZGluZ3NfZnJhZ21lbnQ6ImdsX0ZyYWdDb2xvciA9IGxpbmVhclRvT3V0cHV0VGV4ZWwoIGdsX0ZyYWdDb2xvciApOyIsZW5jb2RpbmdzX3BhcnNfZnJhZ21lbnQ6IlxudmVjNCBMaW5lYXJUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSApIHtcblx0cmV0dXJuIHZhbHVlO1xufVxudmVjNCBHYW1tYVRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlLCBpbiBmbG9hdCBnYW1tYUZhY3RvciApIHtcblx0cmV0dXJuIHZlYzQoIHBvdyggdmFsdWUucmdiLCB2ZWMzKCBnYW1tYUZhY3RvciApICksIHZhbHVlLmEgKTtcbn1cbnZlYzQgTGluZWFyVG9HYW1tYSggaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgZ2FtbWFGYWN0b3IgKSB7XG5cdHJldHVybiB2ZWM0KCBwb3coIHZhbHVlLnJnYiwgdmVjMyggMS4wIC8gZ2FtbWFGYWN0b3IgKSApLCB2YWx1ZS5hICk7XG59XG52ZWM0IHNSR0JUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSApIHtcblx0cmV0dXJuIHZlYzQoIG1peCggcG93KCB2YWx1ZS5yZ2IgKiAwLjk0Nzg2NzI5ODYgKyB2ZWMzKCAwLjA1MjEzMjcwMTQgKSwgdmVjMyggMi40ICkgKSwgdmFsdWUucmdiICogMC4wNzczOTkzODA4LCB2ZWMzKCBsZXNzVGhhbkVxdWFsKCB2YWx1ZS5yZ2IsIHZlYzMoIDAuMDQwNDUgKSApICkgKSwgdmFsdWUuYSApO1xufVxudmVjNCBMaW5lYXJUb3NSR0IoIGluIHZlYzQgdmFsdWUgKSB7XG5cdHJldHVybiB2ZWM0KCBtaXgoIHBvdyggdmFsdWUucmdiLCB2ZWMzKCAwLjQxNjY2ICkgKSAqIDEuMDU1IC0gdmVjMyggMC4wNTUgKSwgdmFsdWUucmdiICogMTIuOTIsIHZlYzMoIGxlc3NUaGFuRXF1YWwoIHZhbHVlLnJnYiwgdmVjMyggMC4wMDMxMzA4ICkgKSApICksIHZhbHVlLmEgKTtcbn1cbnZlYzQgUkdCRVRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlICkge1xuXHRyZXR1cm4gdmVjNCggdmFsdWUucmdiICogZXhwMiggdmFsdWUuYSAqIDI1NS4wIC0gMTI4LjAgKSwgMS4wICk7XG59XG52ZWM0IExpbmVhclRvUkdCRSggaW4gdmVjNCB2YWx1ZSApIHtcblx0ZmxvYXQgbWF4Q29tcG9uZW50ID0gbWF4KCBtYXgoIHZhbHVlLnIsIHZhbHVlLmcgKSwgdmFsdWUuYiApO1xuXHRmbG9hdCBmRXhwID0gY2xhbXAoIGNlaWwoIGxvZzIoIG1heENvbXBvbmVudCApICksIC0xMjguMCwgMTI3LjAgKTtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAvIGV4cDIoIGZFeHAgKSwgKCBmRXhwICsgMTI4LjAgKSAvIDI1NS4wICk7XG59XG52ZWM0IFJHQk1Ub0xpbmVhciggaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgbWF4UmFuZ2UgKSB7XG5cdHJldHVybiB2ZWM0KCB2YWx1ZS5yZ2IgKiB2YWx1ZS5hICogbWF4UmFuZ2UsIDEuMCApO1xufVxudmVjNCBMaW5lYXJUb1JHQk0oIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IG1heFJhbmdlICkge1xuXHRmbG9hdCBtYXhSR0IgPSBtYXgoIHZhbHVlLnIsIG1heCggdmFsdWUuZywgdmFsdWUuYiApICk7XG5cdGZsb2F0IE0gPSBjbGFtcCggbWF4UkdCIC8gbWF4UmFuZ2UsIDAuMCwgMS4wICk7XG5cdE0gPSBjZWlsKCBNICogMjU1LjAgKSAvIDI1NS4wO1xuXHRyZXR1cm4gdmVjNCggdmFsdWUucmdiIC8gKCBNICogbWF4UmFuZ2UgKSwgTSApO1xufVxudmVjNCBSR0JEVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IG1heFJhbmdlICkge1xuXHRyZXR1cm4gdmVjNCggdmFsdWUucmdiICogKCAoIG1heFJhbmdlIC8gMjU1LjAgKSAvIHZhbHVlLmEgKSwgMS4wICk7XG59XG52ZWM0IExpbmVhclRvUkdCRCggaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgbWF4UmFuZ2UgKSB7XG5cdGZsb2F0IG1heFJHQiA9IG1heCggdmFsdWUuciwgbWF4KCB2YWx1ZS5nLCB2YWx1ZS5iICkgKTtcblx0ZmxvYXQgRCA9IG1heCggbWF4UmFuZ2UgLyBtYXhSR0IsIDEuMCApO1xuXHREID0gY2xhbXAoIGZsb29yKCBEICkgLyAyNTUuMCwgMC4wLCAxLjAgKTtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAqICggRCAqICggMjU1LjAgLyBtYXhSYW5nZSApICksIEQgKTtcbn1cbmNvbnN0IG1hdDMgY0xvZ0x1dk0gPSBtYXQzKCAwLjIyMDksIDAuMzM5MCwgMC40MTg0LCAwLjExMzgsIDAuNjc4MCwgMC43MzE5LCAwLjAxMDIsIDAuMTEzMCwgMC4yOTY5ICk7XG52ZWM0IExpbmVhclRvTG9nTHV2KCBpbiB2ZWM0IHZhbHVlICkge1xuXHR2ZWMzIFhwX1lfWFlacCA9IGNMb2dMdXZNICogdmFsdWUucmdiO1xuXHRYcF9ZX1hZWnAgPSBtYXgoIFhwX1lfWFlacCwgdmVjMyggMWUtNiwgMWUtNiwgMWUtNiApICk7XG5cdHZlYzQgdlJlc3VsdDtcblx0dlJlc3VsdC54eSA9IFhwX1lfWFlacC54eSAvIFhwX1lfWFlacC56O1xuXHRmbG9hdCBMZSA9IDIuMCAqIGxvZzIoWHBfWV9YWVpwLnkpICsgMTI3LjA7XG5cdHZSZXN1bHQudyA9IGZyYWN0KCBMZSApO1xuXHR2UmVzdWx0LnogPSAoIExlIC0gKCBmbG9vciggdlJlc3VsdC53ICogMjU1LjAgKSApIC8gMjU1LjAgKSAvIDI1NS4wO1xuXHRyZXR1cm4gdlJlc3VsdDtcbn1cbmNvbnN0IG1hdDMgY0xvZ0x1dkludmVyc2VNID0gbWF0MyggNi4wMDE0LCAtMi43MDA4LCAtMS43OTk2LCAtMS4zMzIwLCAzLjEwMjksIC01Ljc3MjEsIDAuMzAwOCwgLTEuMDg4MiwgNS42MjY4ICk7XG52ZWM0IExvZ0x1dlRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlICkge1xuXHRmbG9hdCBMZSA9IHZhbHVlLnogKiAyNTUuMCArIHZhbHVlLnc7XG5cdHZlYzMgWHBfWV9YWVpwO1xuXHRYcF9ZX1hZWnAueSA9IGV4cDIoICggTGUgLSAxMjcuMCApIC8gMi4wICk7XG5cdFhwX1lfWFlacC56ID0gWHBfWV9YWVpwLnkgLyB2YWx1ZS55O1xuXHRYcF9ZX1hZWnAueCA9IHZhbHVlLnggKiBYcF9ZX1hZWnAuejtcblx0dmVjMyB2UkdCID0gY0xvZ0x1dkludmVyc2VNICogWHBfWV9YWVpwLnJnYjtcblx0cmV0dXJuIHZlYzQoIG1heCggdlJHQiwgMC4wICksIDEuMCApO1xufSIsZW52bWFwX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0VOVk1BUFxuXHQjaWZkZWYgRU5WX1dPUkxEUE9TXG5cdFx0dmVjMyBjYW1lcmFUb0ZyYWc7XG5cdFx0aWYgKCBpc09ydGhvZ3JhcGhpYyApIHtcblx0XHRcdGNhbWVyYVRvRnJhZyA9IG5vcm1hbGl6ZSggdmVjMyggLSB2aWV3TWF0cml4WyAwIF1bIDIgXSwgLSB2aWV3TWF0cml4WyAxIF1bIDIgXSwgLSB2aWV3TWF0cml4WyAyIF1bIDIgXSApICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNhbWVyYVRvRnJhZyA9IG5vcm1hbGl6ZSggdldvcmxkUG9zaXRpb24gLSBjYW1lcmFQb3NpdGlvbiApO1xuXHRcdH1cblx0XHR2ZWMzIHdvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggbm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdFx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRkxFQ1RJT05cblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZmxlY3QoIGNhbWVyYVRvRnJhZywgd29ybGROb3JtYWwgKTtcblx0XHQjZWxzZVxuXHRcdFx0dmVjMyByZWZsZWN0VmVjID0gcmVmcmFjdCggY2FtZXJhVG9GcmFnLCB3b3JsZE5vcm1hbCwgcmVmcmFjdGlvblJhdGlvICk7XG5cdFx0I2VuZGlmXG5cdCNlbHNlXG5cdFx0dmVjMyByZWZsZWN0VmVjID0gdlJlZmxlY3Q7XG5cdCNlbmRpZlxuXHQjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRVxuXHRcdHZlYzQgZW52Q29sb3IgPSB0ZXh0dXJlQ3ViZSggZW52TWFwLCB2ZWMzKCBmbGlwRW52TWFwICogcmVmbGVjdFZlYy54LCByZWZsZWN0VmVjLnl6ICkgKTtcblx0I2VsaWYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApXG5cdFx0dmVjNCBlbnZDb2xvciA9IHRleHR1cmVDdWJlVVYoIGVudk1hcCwgcmVmbGVjdFZlYywgMC4wICk7XG5cdCNlbHNlXG5cdFx0dmVjNCBlbnZDb2xvciA9IHZlYzQoIDAuMCApO1xuXHQjZW5kaWZcblx0I2lmbmRlZiBFTlZNQVBfVFlQRV9DVUJFX1VWXG5cdFx0ZW52Q29sb3IgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCBlbnZDb2xvciApO1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVk1BUF9CTEVORElOR19NVUxUSVBMWVxuXHRcdG91dGdvaW5nTGlnaHQgPSBtaXgoIG91dGdvaW5nTGlnaHQsIG91dGdvaW5nTGlnaHQgKiBlbnZDb2xvci54eXosIHNwZWN1bGFyU3RyZW5ndGggKiByZWZsZWN0aXZpdHkgKTtcblx0I2VsaWYgZGVmaW5lZCggRU5WTUFQX0JMRU5ESU5HX01JWCApXG5cdFx0b3V0Z29pbmdMaWdodCA9IG1peCggb3V0Z29pbmdMaWdodCwgZW52Q29sb3IueHl6LCBzcGVjdWxhclN0cmVuZ3RoICogcmVmbGVjdGl2aXR5ICk7XG5cdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9CTEVORElOR19BREQgKVxuXHRcdG91dGdvaW5nTGlnaHQgKz0gZW52Q29sb3IueHl6ICogc3BlY3VsYXJTdHJlbmd0aCAqIHJlZmxlY3Rpdml0eTtcblx0I2VuZGlmXG4jZW5kaWYiLGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0dW5pZm9ybSBmbG9hdCBlbnZNYXBJbnRlbnNpdHk7XG5cdHVuaWZvcm0gZmxvYXQgZmxpcEVudk1hcDtcblx0dW5pZm9ybSBpbnQgbWF4TWlwTGV2ZWw7XG5cdCNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFXG5cdFx0dW5pZm9ybSBzYW1wbGVyQ3ViZSBlbnZNYXA7XG5cdCNlbHNlXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgZW52TWFwO1xuXHQjZW5kaWZcblx0XG4jZW5kaWYiLGVudm1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0VOVk1BUFxuXHR1bmlmb3JtIGZsb2F0IHJlZmxlY3Rpdml0eTtcblx0I2lmIGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVVNFX05PUk1BTE1BUCApIHx8IGRlZmluZWQoIFBIT05HIClcblx0XHQjZGVmaW5lIEVOVl9XT1JMRFBPU1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdHZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcblx0XHR1bmlmb3JtIGZsb2F0IHJlZnJhY3Rpb25SYXRpbztcblx0I2Vsc2Vcblx0XHR2YXJ5aW5nIHZlYzMgdlJlZmxlY3Q7XG5cdCNlbmRpZlxuI2VuZGlmIixlbnZtYXBfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdCNpZiBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFVTRV9OT1JNQUxNQVAgKSB8fGRlZmluZWQoIFBIT05HIClcblx0XHQjZGVmaW5lIEVOVl9XT1JMRFBPU1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdFxuXHRcdHZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcblx0I2Vsc2Vcblx0XHR2YXJ5aW5nIHZlYzMgdlJlZmxlY3Q7XG5cdFx0dW5pZm9ybSBmbG9hdCByZWZyYWN0aW9uUmF0aW87XG5cdCNlbmRpZlxuI2VuZGlmIixlbnZtYXBfcGh5c2ljYWxfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKVxuXHQjaWZkZWYgRU5WTUFQX01PREVfUkVGUkFDVElPTlxuXHRcdHVuaWZvcm0gZmxvYXQgcmVmcmFjdGlvblJhdGlvO1xuXHQjZW5kaWZcblx0dmVjMyBnZXRMaWdodFByb2JlSW5kaXJlY3RJcnJhZGlhbmNlKCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBpbnQgbWF4TUlQTGV2ZWwgKSB7XG5cdFx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIGdlb21ldHJ5Lm5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRcdCNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFXG5cdFx0XHR2ZWMzIHF1ZXJ5VmVjID0gdmVjMyggZmxpcEVudk1hcCAqIHdvcmxkTm9ybWFsLngsIHdvcmxkTm9ybWFsLnl6ICk7XG5cdFx0XHQjaWZkZWYgVEVYVFVSRV9MT0RfRVhUXG5cdFx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZUxvZEVYVCggZW52TWFwLCBxdWVyeVZlYywgZmxvYXQoIG1heE1JUExldmVsICkgKTtcblx0XHRcdCNlbHNlXG5cdFx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZSggZW52TWFwLCBxdWVyeVZlYywgZmxvYXQoIG1heE1JUExldmVsICkgKTtcblx0XHRcdCNlbmRpZlxuXHRcdFx0ZW52TWFwQ29sb3IucmdiID0gZW52TWFwVGV4ZWxUb0xpbmVhciggZW52TWFwQ29sb3IgKS5yZ2I7XG5cdFx0I2VsaWYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApXG5cdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmVVViggZW52TWFwLCB3b3JsZE5vcm1hbCwgMS4wICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB2ZWM0KCAwLjAgKTtcblx0XHQjZW5kaWZcblx0XHRyZXR1cm4gUEkgKiBlbnZNYXBDb2xvci5yZ2IgKiBlbnZNYXBJbnRlbnNpdHk7XG5cdH1cblx0ZmxvYXQgZ2V0U3BlY3VsYXJNSVBMZXZlbCggY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiBpbnQgbWF4TUlQTGV2ZWwgKSB7XG5cdFx0ZmxvYXQgbWF4TUlQTGV2ZWxTY2FsYXIgPSBmbG9hdCggbWF4TUlQTGV2ZWwgKTtcblx0XHRmbG9hdCBzaWdtYSA9IFBJICogcm91Z2huZXNzICogcm91Z2huZXNzIC8gKCAxLjAgKyByb3VnaG5lc3MgKTtcblx0XHRmbG9hdCBkZXNpcmVkTUlQTGV2ZWwgPSBtYXhNSVBMZXZlbFNjYWxhciArIGxvZzIoIHNpZ21hICk7XG5cdFx0cmV0dXJuIGNsYW1wKCBkZXNpcmVkTUlQTGV2ZWwsIDAuMCwgbWF4TUlQTGV2ZWxTY2FsYXIgKTtcblx0fVxuXHR2ZWMzIGdldExpZ2h0UHJvYmVJbmRpcmVjdFJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIGludCBtYXhNSVBMZXZlbCApIHtcblx0XHQjaWZkZWYgRU5WTUFQX01PREVfUkVGTEVDVElPTlxuXHRcdFx0dmVjMyByZWZsZWN0VmVjID0gcmVmbGVjdCggLXZpZXdEaXIsIG5vcm1hbCApO1xuXHRcdFx0cmVmbGVjdFZlYyA9IG5vcm1hbGl6ZSggbWl4KCByZWZsZWN0VmVjLCBub3JtYWwsIHJvdWdobmVzcyAqIHJvdWdobmVzcykgKTtcblx0XHQjZWxzZVxuXHRcdFx0dmVjMyByZWZsZWN0VmVjID0gcmVmcmFjdCggLXZpZXdEaXIsIG5vcm1hbCwgcmVmcmFjdGlvblJhdGlvICk7XG5cdFx0I2VuZGlmXG5cdFx0cmVmbGVjdFZlYyA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIHJlZmxlY3RWZWMsIHZpZXdNYXRyaXggKTtcblx0XHRmbG9hdCBzcGVjdWxhck1JUExldmVsID0gZ2V0U3BlY3VsYXJNSVBMZXZlbCggcm91Z2huZXNzLCBtYXhNSVBMZXZlbCApO1xuXHRcdCNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFXG5cdFx0XHR2ZWMzIHF1ZXJ5UmVmbGVjdFZlYyA9IHZlYzMoIGZsaXBFbnZNYXAgKiByZWZsZWN0VmVjLngsIHJlZmxlY3RWZWMueXogKTtcblx0XHRcdCNpZmRlZiBURVhUVVJFX0xPRF9FWFRcblx0XHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlTG9kRVhUKCBlbnZNYXAsIHF1ZXJ5UmVmbGVjdFZlYywgc3BlY3VsYXJNSVBMZXZlbCApO1xuXHRcdFx0I2Vsc2Vcblx0XHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlKCBlbnZNYXAsIHF1ZXJ5UmVmbGVjdFZlYywgc3BlY3VsYXJNSVBMZXZlbCApO1xuXHRcdFx0I2VuZGlmXG5cdFx0XHRlbnZNYXBDb2xvci5yZ2IgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCBlbnZNYXBDb2xvciApLnJnYjtcblx0XHQjZWxpZiBkZWZpbmVkKCBFTlZNQVBfVFlQRV9DVUJFX1VWIClcblx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZVVWKCBlbnZNYXAsIHJlZmxlY3RWZWMsIHJvdWdobmVzcyApO1xuXHRcdCNlbmRpZlxuXHRcdHJldHVybiBlbnZNYXBDb2xvci5yZ2IgKiBlbnZNYXBJbnRlbnNpdHk7XG5cdH1cbiNlbmRpZiIsZW52bWFwX3ZlcnRleDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdHZXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbi54eXo7XG5cdCNlbHNlXG5cdFx0dmVjMyBjYW1lcmFUb1ZlcnRleDtcblx0XHRpZiAoIGlzT3J0aG9ncmFwaGljICkge1xuXHRcdFx0Y2FtZXJhVG9WZXJ0ZXggPSBub3JtYWxpemUoIHZlYzMoIC0gdmlld01hdHJpeFsgMCBdWyAyIF0sIC0gdmlld01hdHJpeFsgMSBdWyAyIF0sIC0gdmlld01hdHJpeFsgMiBdWyAyIF0gKSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjYW1lcmFUb1ZlcnRleCA9IG5vcm1hbGl6ZSggd29ybGRQb3NpdGlvbi54eXogLSBjYW1lcmFQb3NpdGlvbiApO1xuXHRcdH1cblx0XHR2ZWMzIHdvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggdHJhbnNmb3JtZWROb3JtYWwsIHZpZXdNYXRyaXggKTtcblx0XHQjaWZkZWYgRU5WTUFQX01PREVfUkVGTEVDVElPTlxuXHRcdFx0dlJlZmxlY3QgPSByZWZsZWN0KCBjYW1lcmFUb1ZlcnRleCwgd29ybGROb3JtYWwgKTtcblx0XHQjZWxzZVxuXHRcdFx0dlJlZmxlY3QgPSByZWZyYWN0KCBjYW1lcmFUb1ZlcnRleCwgd29ybGROb3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApO1xuXHRcdCNlbmRpZlxuXHQjZW5kaWZcbiNlbmRpZiIsZm9nX3ZlcnRleDoiI2lmZGVmIFVTRV9GT0dcblx0Zm9nRGVwdGggPSAtIG12UG9zaXRpb24uejtcbiNlbmRpZiIsZm9nX3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX0ZPR1xuXHR2YXJ5aW5nIGZsb2F0IGZvZ0RlcHRoO1xuI2VuZGlmIixmb2dfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRk9HXG5cdCNpZmRlZiBGT0dfRVhQMlxuXHRcdGZsb2F0IGZvZ0ZhY3RvciA9IDEuMCAtIGV4cCggLSBmb2dEZW5zaXR5ICogZm9nRGVuc2l0eSAqIGZvZ0RlcHRoICogZm9nRGVwdGggKTtcblx0I2Vsc2Vcblx0XHRmbG9hdCBmb2dGYWN0b3IgPSBzbW9vdGhzdGVwKCBmb2dOZWFyLCBmb2dGYXIsIGZvZ0RlcHRoICk7XG5cdCNlbmRpZlxuXHRnbF9GcmFnQ29sb3IucmdiID0gbWl4KCBnbF9GcmFnQ29sb3IucmdiLCBmb2dDb2xvciwgZm9nRmFjdG9yICk7XG4jZW5kaWYiLGZvZ19wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0ZPR1xuXHR1bmlmb3JtIHZlYzMgZm9nQ29sb3I7XG5cdHZhcnlpbmcgZmxvYXQgZm9nRGVwdGg7XG5cdCNpZmRlZiBGT0dfRVhQMlxuXHRcdHVuaWZvcm0gZmxvYXQgZm9nRGVuc2l0eTtcblx0I2Vsc2Vcblx0XHR1bmlmb3JtIGZsb2F0IGZvZ05lYXI7XG5cdFx0dW5pZm9ybSBmbG9hdCBmb2dGYXI7XG5cdCNlbmRpZlxuI2VuZGlmIixncmFkaWVudG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0dSQURJRU5UTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGdyYWRpZW50TWFwO1xuI2VuZGlmXG52ZWMzIGdldEdyYWRpZW50SXJyYWRpYW5jZSggdmVjMyBub3JtYWwsIHZlYzMgbGlnaHREaXJlY3Rpb24gKSB7XG5cdGZsb2F0IGRvdE5MID0gZG90KCBub3JtYWwsIGxpZ2h0RGlyZWN0aW9uICk7XG5cdHZlYzIgY29vcmQgPSB2ZWMyKCBkb3ROTCAqIDAuNSArIDAuNSwgMC4wICk7XG5cdCNpZmRlZiBVU0VfR1JBRElFTlRNQVBcblx0XHRyZXR1cm4gdGV4dHVyZTJEKCBncmFkaWVudE1hcCwgY29vcmQgKS5yZ2I7XG5cdCNlbHNlXG5cdFx0cmV0dXJuICggY29vcmQueCA8IDAuNyApID8gdmVjMyggMC43ICkgOiB2ZWMzKCAxLjAgKTtcblx0I2VuZGlmXG59IixsaWdodG1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9MSUdIVE1BUFxuXHR2ZWM0IGxpZ2h0TWFwVGV4ZWw9IHRleHR1cmUyRCggbGlnaHRNYXAsIHZVdjIgKTtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IFBJICogbGlnaHRNYXBUZXhlbFRvTGluZWFyKCBsaWdodE1hcFRleGVsICkucmdiICogbGlnaHRNYXBJbnRlbnNpdHk7XG4jZW5kaWYiLGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTElHSFRNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbGlnaHRNYXA7XG5cdHVuaWZvcm0gZmxvYXQgbGlnaHRNYXBJbnRlbnNpdHk7XG4jZW5kaWYiLGxpZ2h0c19sYW1iZXJ0X3ZlcnRleDoidmVjMyBkaWZmdXNlID0gdmVjMyggMS4wICk7XG5HZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5O1xuZ2VvbWV0cnkucG9zaXRpb24gPSBtdlBvc2l0aW9uLnh5ejtcbmdlb21ldHJ5Lm5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcbmdlb21ldHJ5LnZpZXdEaXIgPSAoIGlzT3J0aG9ncmFwaGljICkgPyB2ZWMzKCAwLCAwLCAxICkgOiBub3JtYWxpemUoIC1tdlBvc2l0aW9uLnh5eiApO1xuR2VvbWV0cmljQ29udGV4dCBiYWNrR2VvbWV0cnk7XG5iYWNrR2VvbWV0cnkucG9zaXRpb24gPSBnZW9tZXRyeS5wb3NpdGlvbjtcbmJhY2tHZW9tZXRyeS5ub3JtYWwgPSAtZ2VvbWV0cnkubm9ybWFsO1xuYmFja0dlb21ldHJ5LnZpZXdEaXIgPSBnZW9tZXRyeS52aWV3RGlyO1xudkxpZ2h0RnJvbnQgPSB2ZWMzKCAwLjAgKTtcbnZJbmRpcmVjdEZyb250ID0gdmVjMyggMC4wICk7XG4jaWZkZWYgRE9VQkxFX1NJREVEXG5cdHZMaWdodEJhY2sgPSB2ZWMzKCAwLjAgKTtcblx0dkluZGlyZWN0QmFjayA9IHZlYzMoIDAuMCApO1xuI2VuZGlmXG5JbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0O1xuZmxvYXQgZG90Tkw7XG52ZWMzIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcbnZJbmRpcmVjdEZyb250ICs9IGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGFtYmllbnRMaWdodENvbG9yICk7XG52SW5kaXJlY3RGcm9udCArPSBnZXRMaWdodFByb2JlSXJyYWRpYW5jZSggbGlnaHRQcm9iZSwgZ2VvbWV0cnkgKTtcbiNpZmRlZiBET1VCTEVfU0lERURcblx0dkluZGlyZWN0QmFjayArPSBnZXRBbWJpZW50TGlnaHRJcnJhZGlhbmNlKCBhbWJpZW50TGlnaHRDb2xvciApO1xuXHR2SW5kaXJlY3RCYWNrICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBiYWNrR2VvbWV0cnkgKTtcbiNlbmRpZlxuI2lmIE5VTV9QT0lOVF9MSUdIVFMgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1BPSU5UX0xJR0hUUzsgaSArKyApIHtcblx0XHRnZXRQb2ludERpcmVjdExpZ2h0SXJyYWRpYW5jZSggcG9pbnRMaWdodHNbIGkgXSwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0ZG90TkwgPSBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICk7XG5cdFx0ZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlID0gUEkgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0XHR2TGlnaHRGcm9udCArPSBzYXR1cmF0ZSggZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0XHR2TGlnaHRCYWNrICs9IHNhdHVyYXRlKCAtZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjZW5kaWZcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgTlVNX1NQT1RfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUUzsgaSArKyApIHtcblx0XHRnZXRTcG90RGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBzcG90TGlnaHRzWyBpIF0sIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdGRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZSA9IFBJICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdFx0dkxpZ2h0RnJvbnQgKz0gc2F0dXJhdGUoIGRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdFx0dkxpZ2h0QmFjayArPSBzYXR1cmF0ZSggLWRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2VuZGlmXG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmIE5VTV9ESVJfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9ESVJfTElHSFRTOyBpICsrICkge1xuXHRcdGdldERpcmVjdGlvbmFsRGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBkaXJlY3Rpb25hbExpZ2h0c1sgaSBdLCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHRkb3ROTCA9IGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKTtcblx0XHRkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2UgPSBQSSAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHRcdHZMaWdodEZyb250ICs9IHNhdHVyYXRlKCBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHZMaWdodEJhY2sgKz0gc2F0dXJhdGUoIC1kb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNlbmRpZlxuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiBOVU1fSEVNSV9MSUdIVFMgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0hFTUlfTElHSFRTOyBpICsrICkge1xuXHRcdHZJbmRpcmVjdEZyb250ICs9IGdldEhlbWlzcGhlcmVMaWdodElycmFkaWFuY2UoIGhlbWlzcGhlcmVMaWdodHNbIGkgXSwgZ2VvbWV0cnkgKTtcblx0XHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0XHR2SW5kaXJlY3RCYWNrICs9IGdldEhlbWlzcGhlcmVMaWdodElycmFkaWFuY2UoIGhlbWlzcGhlcmVMaWdodHNbIGkgXSwgYmFja0dlb21ldHJ5ICk7XG5cdFx0I2VuZGlmXG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZiIsbGlnaHRzX3BhcnNfYmVnaW46InVuaWZvcm0gYm9vbCByZWNlaXZlU2hhZG93O1xudW5pZm9ybSB2ZWMzIGFtYmllbnRMaWdodENvbG9yO1xudW5pZm9ybSB2ZWMzIGxpZ2h0UHJvYmVbIDkgXTtcbnZlYzMgc2hHZXRJcnJhZGlhbmNlQXQoIGluIHZlYzMgbm9ybWFsLCBpbiB2ZWMzIHNoQ29lZmZpY2llbnRzWyA5IF0gKSB7XG5cdGZsb2F0IHggPSBub3JtYWwueCwgeSA9IG5vcm1hbC55LCB6ID0gbm9ybWFsLno7XG5cdHZlYzMgcmVzdWx0ID0gc2hDb2VmZmljaWVudHNbIDAgXSAqIDAuODg2MjI3O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDEgXSAqIDIuMCAqIDAuNTExNjY0ICogeTtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyAyIF0gKiAyLjAgKiAwLjUxMTY2NCAqIHo7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgMyBdICogMi4wICogMC41MTE2NjQgKiB4O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDQgXSAqIDIuMCAqIDAuNDI5MDQzICogeCAqIHk7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgNSBdICogMi4wICogMC40MjkwNDMgKiB5ICogejtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA2IF0gKiAoIDAuNzQzMTI1ICogeiAqIHogLSAwLjI0NzcwOCApO1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDcgXSAqIDIuMCAqIDAuNDI5MDQzICogeCAqIHo7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgOCBdICogMC40MjkwNDMgKiAoIHggKiB4IC0geSAqIHkgKTtcblx0cmV0dXJuIHJlc3VsdDtcbn1cbnZlYzMgZ2V0TGlnaHRQcm9iZUlycmFkaWFuY2UoIGNvbnN0IGluIHZlYzMgbGlnaHRQcm9iZVsgOSBdLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5ICkge1xuXHR2ZWMzIHdvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggZ2VvbWV0cnkubm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IHNoR2V0SXJyYWRpYW5jZUF0KCB3b3JsZE5vcm1hbCwgbGlnaHRQcm9iZSApO1xuXHRyZXR1cm4gaXJyYWRpYW5jZTtcbn1cbnZlYzMgZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gdmVjMyBhbWJpZW50TGlnaHRDb2xvciApIHtcblx0dmVjMyBpcnJhZGlhbmNlID0gYW1iaWVudExpZ2h0Q29sb3I7XG5cdCNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xuXHRcdGlycmFkaWFuY2UgKj0gUEk7XG5cdCNlbmRpZlxuXHRyZXR1cm4gaXJyYWRpYW5jZTtcbn1cbiNpZiBOVU1fRElSX0xJR0hUUyA+IDBcblx0c3RydWN0IERpcmVjdGlvbmFsTGlnaHQge1xuXHRcdHZlYzMgZGlyZWN0aW9uO1xuXHRcdHZlYzMgY29sb3I7XG5cdH07XG5cdHVuaWZvcm0gRGlyZWN0aW9uYWxMaWdodCBkaXJlY3Rpb25hbExpZ2h0c1sgTlVNX0RJUl9MSUdIVFMgXTtcblx0dm9pZCBnZXREaXJlY3Rpb25hbERpcmVjdExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gRGlyZWN0aW9uYWxMaWdodCBkaXJlY3Rpb25hbExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBvdXQgSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCApIHtcblx0XHRkaXJlY3RMaWdodC5jb2xvciA9IGRpcmVjdGlvbmFsTGlnaHQuY29sb3I7XG5cdFx0ZGlyZWN0TGlnaHQuZGlyZWN0aW9uID0gZGlyZWN0aW9uYWxMaWdodC5kaXJlY3Rpb247XG5cdFx0ZGlyZWN0TGlnaHQudmlzaWJsZSA9IHRydWU7XG5cdH1cbiNlbmRpZlxuI2lmIE5VTV9QT0lOVF9MSUdIVFMgPiAwXG5cdHN0cnVjdCBQb2ludExpZ2h0IHtcblx0XHR2ZWMzIHBvc2l0aW9uO1xuXHRcdHZlYzMgY29sb3I7XG5cdFx0ZmxvYXQgZGlzdGFuY2U7XG5cdFx0ZmxvYXQgZGVjYXk7XG5cdH07XG5cdHVuaWZvcm0gUG9pbnRMaWdodCBwb2ludExpZ2h0c1sgTlVNX1BPSU5UX0xJR0hUUyBdO1xuXHR2b2lkIGdldFBvaW50RGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBjb25zdCBpbiBQb2ludExpZ2h0IHBvaW50TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIG91dCBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0ICkge1xuXHRcdHZlYzMgbFZlY3RvciA9IHBvaW50TGlnaHQucG9zaXRpb24gLSBnZW9tZXRyeS5wb3NpdGlvbjtcblx0XHRkaXJlY3RMaWdodC5kaXJlY3Rpb24gPSBub3JtYWxpemUoIGxWZWN0b3IgKTtcblx0XHRmbG9hdCBsaWdodERpc3RhbmNlID0gbGVuZ3RoKCBsVmVjdG9yICk7XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgPSBwb2ludExpZ2h0LmNvbG9yO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yICo9IHB1bmN0dWFsTGlnaHRJbnRlbnNpdHlUb0lycmFkaWFuY2VGYWN0b3IoIGxpZ2h0RGlzdGFuY2UsIHBvaW50TGlnaHQuZGlzdGFuY2UsIHBvaW50TGlnaHQuZGVjYXkgKTtcblx0XHRkaXJlY3RMaWdodC52aXNpYmxlID0gKCBkaXJlY3RMaWdodC5jb2xvciAhPSB2ZWMzKCAwLjAgKSApO1xuXHR9XG4jZW5kaWZcbiNpZiBOVU1fU1BPVF9MSUdIVFMgPiAwXG5cdHN0cnVjdCBTcG90TGlnaHQge1xuXHRcdHZlYzMgcG9zaXRpb247XG5cdFx0dmVjMyBkaXJlY3Rpb247XG5cdFx0dmVjMyBjb2xvcjtcblx0XHRmbG9hdCBkaXN0YW5jZTtcblx0XHRmbG9hdCBkZWNheTtcblx0XHRmbG9hdCBjb25lQ29zO1xuXHRcdGZsb2F0IHBlbnVtYnJhQ29zO1xuXHR9O1xuXHR1bmlmb3JtIFNwb3RMaWdodCBzcG90TGlnaHRzWyBOVU1fU1BPVF9MSUdIVFMgXTtcblx0dm9pZCBnZXRTcG90RGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBjb25zdCBpbiBTcG90TGlnaHQgc3BvdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBvdXQgSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCApIHtcblx0XHR2ZWMzIGxWZWN0b3IgPSBzcG90TGlnaHQucG9zaXRpb24gLSBnZW9tZXRyeS5wb3NpdGlvbjtcblx0XHRkaXJlY3RMaWdodC5kaXJlY3Rpb24gPSBub3JtYWxpemUoIGxWZWN0b3IgKTtcblx0XHRmbG9hdCBsaWdodERpc3RhbmNlID0gbGVuZ3RoKCBsVmVjdG9yICk7XG5cdFx0ZmxvYXQgYW5nbGVDb3MgPSBkb3QoIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiwgc3BvdExpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGlmICggYW5nbGVDb3MgPiBzcG90TGlnaHQuY29uZUNvcyApIHtcblx0XHRcdGZsb2F0IHNwb3RFZmZlY3QgPSBzbW9vdGhzdGVwKCBzcG90TGlnaHQuY29uZUNvcywgc3BvdExpZ2h0LnBlbnVtYnJhQ29zLCBhbmdsZUNvcyApO1xuXHRcdFx0ZGlyZWN0TGlnaHQuY29sb3IgPSBzcG90TGlnaHQuY29sb3I7XG5cdFx0XHRkaXJlY3RMaWdodC5jb2xvciAqPSBzcG90RWZmZWN0ICogcHVuY3R1YWxMaWdodEludGVuc2l0eVRvSXJyYWRpYW5jZUZhY3RvciggbGlnaHREaXN0YW5jZSwgc3BvdExpZ2h0LmRpc3RhbmNlLCBzcG90TGlnaHQuZGVjYXkgKTtcblx0XHRcdGRpcmVjdExpZ2h0LnZpc2libGUgPSB0cnVlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRkaXJlY3RMaWdodC5jb2xvciA9IHZlYzMoIDAuMCApO1xuXHRcdFx0ZGlyZWN0TGlnaHQudmlzaWJsZSA9IGZhbHNlO1xuXHRcdH1cblx0fVxuI2VuZGlmXG4jaWYgTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwXG5cdHN0cnVjdCBSZWN0QXJlYUxpZ2h0IHtcblx0XHR2ZWMzIGNvbG9yO1xuXHRcdHZlYzMgcG9zaXRpb247XG5cdFx0dmVjMyBoYWxmV2lkdGg7XG5cdFx0dmVjMyBoYWxmSGVpZ2h0O1xuXHR9O1xuXHR1bmlmb3JtIHNhbXBsZXIyRCBsdGNfMTtcdHVuaWZvcm0gc2FtcGxlcjJEIGx0Y18yO1xuXHR1bmlmb3JtIFJlY3RBcmVhTGlnaHQgcmVjdEFyZWFMaWdodHNbIE5VTV9SRUNUX0FSRUFfTElHSFRTIF07XG4jZW5kaWZcbiNpZiBOVU1fSEVNSV9MSUdIVFMgPiAwXG5cdHN0cnVjdCBIZW1pc3BoZXJlTGlnaHQge1xuXHRcdHZlYzMgZGlyZWN0aW9uO1xuXHRcdHZlYzMgc2t5Q29sb3I7XG5cdFx0dmVjMyBncm91bmRDb2xvcjtcblx0fTtcblx0dW5pZm9ybSBIZW1pc3BoZXJlTGlnaHQgaGVtaXNwaGVyZUxpZ2h0c1sgTlVNX0hFTUlfTElHSFRTIF07XG5cdHZlYzMgZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gSGVtaXNwaGVyZUxpZ2h0IGhlbWlMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSApIHtcblx0XHRmbG9hdCBkb3ROTCA9IGRvdCggZ2VvbWV0cnkubm9ybWFsLCBoZW1pTGlnaHQuZGlyZWN0aW9uICk7XG5cdFx0ZmxvYXQgaGVtaURpZmZ1c2VXZWlnaHQgPSAwLjUgKiBkb3ROTCArIDAuNTtcblx0XHR2ZWMzIGlycmFkaWFuY2UgPSBtaXgoIGhlbWlMaWdodC5ncm91bmRDb2xvciwgaGVtaUxpZ2h0LnNreUNvbG9yLCBoZW1pRGlmZnVzZVdlaWdodCApO1xuXHRcdCNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xuXHRcdFx0aXJyYWRpYW5jZSAqPSBQSTtcblx0XHQjZW5kaWZcblx0XHRyZXR1cm4gaXJyYWRpYW5jZTtcblx0fVxuI2VuZGlmIixsaWdodHNfdG9vbl9mcmFnbWVudDoiVG9vbk1hdGVyaWFsIG1hdGVyaWFsO1xubWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYjsiLGxpZ2h0c190b29uX3BhcnNfZnJhZ21lbnQ6InZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcbiNlbmRpZlxuc3RydWN0IFRvb25NYXRlcmlhbCB7XG5cdHZlYzMgZGlmZnVzZUNvbG9yO1xufTtcbnZvaWQgUkVfRGlyZWN0X1Rvb24oIGNvbnN0IGluIEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFRvb25NYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGdldEdyYWRpZW50SXJyYWRpYW5jZSggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRpcnJhZGlhbmNlICo9IFBJO1xuXHQjZW5kaWZcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxudm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfVG9vbiggY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBUb29uTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcbn1cbiNkZWZpbmUgUkVfRGlyZWN0XHRcdFx0XHRSRV9EaXJlY3RfVG9vblxuI2RlZmluZSBSRV9JbmRpcmVjdERpZmZ1c2VcdFx0UkVfSW5kaXJlY3REaWZmdXNlX1Rvb25cbiNkZWZpbmUgTWF0ZXJpYWxfTGlnaHRQcm9iZUxPRCggbWF0ZXJpYWwgKVx0KDApIixsaWdodHNfcGhvbmdfZnJhZ21lbnQ6IkJsaW5uUGhvbmdNYXRlcmlhbCBtYXRlcmlhbDtcbm1hdGVyaWFsLmRpZmZ1c2VDb2xvciA9IGRpZmZ1c2VDb2xvci5yZ2I7XG5tYXRlcmlhbC5zcGVjdWxhckNvbG9yID0gc3BlY3VsYXI7XG5tYXRlcmlhbC5zcGVjdWxhclNoaW5pbmVzcyA9IHNoaW5pbmVzcztcbm1hdGVyaWFsLnNwZWN1bGFyU3RyZW5ndGggPSBzcGVjdWxhclN0cmVuZ3RoOyIsbGlnaHRzX3Bob25nX3BhcnNfZnJhZ21lbnQ6InZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcbiNlbmRpZlxuc3RydWN0IEJsaW5uUGhvbmdNYXRlcmlhbCB7XG5cdHZlYzMgZGlmZnVzZUNvbG9yO1xuXHR2ZWMzIHNwZWN1bGFyQ29sb3I7XG5cdGZsb2F0IHNwZWN1bGFyU2hpbmluZXNzO1xuXHRmbG9hdCBzcGVjdWxhclN0cmVuZ3RoO1xufTtcbnZvaWQgUkVfRGlyZWN0X0JsaW5uUGhvbmcoIGNvbnN0IGluIEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIEJsaW5uUGhvbmdNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdGZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSApO1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBkb3ROTCAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRpcnJhZGlhbmNlICo9IFBJO1xuXHQjZW5kaWZcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xuXHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBpcnJhZGlhbmNlICogQlJERl9TcGVjdWxhcl9CbGlublBob25nKCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IsIG1hdGVyaWFsLnNwZWN1bGFyU2hpbmluZXNzICkgKiBtYXRlcmlhbC5zcGVjdWxhclN0cmVuZ3RoO1xufVxudm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfQmxpbm5QaG9uZyggY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcbn1cbiNkZWZpbmUgUkVfRGlyZWN0XHRcdFx0XHRSRV9EaXJlY3RfQmxpbm5QaG9uZ1xuI2RlZmluZSBSRV9JbmRpcmVjdERpZmZ1c2VcdFx0UkVfSW5kaXJlY3REaWZmdXNlX0JsaW5uUGhvbmdcbiNkZWZpbmUgTWF0ZXJpYWxfTGlnaHRQcm9iZUxPRCggbWF0ZXJpYWwgKVx0KDApIixsaWdodHNfcGh5c2ljYWxfZnJhZ21lbnQ6IlBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWw7XG5tYXRlcmlhbC5kaWZmdXNlQ29sb3IgPSBkaWZmdXNlQ29sb3IucmdiICogKCAxLjAgLSBtZXRhbG5lc3NGYWN0b3IgKTtcbnZlYzMgZHh5ID0gbWF4KCBhYnMoIGRGZHgoIGdlb21ldHJ5Tm9ybWFsICkgKSwgYWJzKCBkRmR5KCBnZW9tZXRyeU5vcm1hbCApICkgKTtcbmZsb2F0IGdlb21ldHJ5Um91Z2huZXNzID0gbWF4KCBtYXgoIGR4eS54LCBkeHkueSApLCBkeHkueiApO1xubWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MgPSBtYXgoIHJvdWdobmVzc0ZhY3RvciwgMC4wNTI1ICk7bWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MgKz0gZ2VvbWV0cnlSb3VnaG5lc3M7XG5tYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcyA9IG1pbiggbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MsIDEuMCApO1xuI2lmZGVmIFJFRkxFQ1RJVklUWVxuXHQjaWZkZWYgU1BFQ1VMQVJcblx0XHR2ZWMzIHNwZWN1bGFySW50ZW5zaXR5RmFjdG9yID0gdmVjMyggc3BlY3VsYXJJbnRlbnNpdHkgKTtcblx0XHR2ZWMzIHNwZWN1bGFyVGludEZhY3RvciA9IHNwZWN1bGFyVGludDtcblx0XHQjaWZkZWYgVVNFX1NQRUNVTEFSSU5URU5TSVRZTUFQXG5cdFx0XHRzcGVjdWxhckludGVuc2l0eUZhY3RvciAqPSB0ZXh0dXJlMkQoIHNwZWN1bGFySW50ZW5zaXR5TWFwLCB2VXYgKS5hO1xuXHRcdCNlbmRpZlxuXHRcdCNpZmRlZiBVU0VfU1BFQ1VMQVJUSU5UTUFQXG5cdFx0XHRzcGVjdWxhclRpbnRGYWN0b3IgKj0gc3BlY3VsYXJUaW50TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEKCBzcGVjdWxhclRpbnRNYXAsIHZVdiApICkucmdiO1xuXHRcdCNlbmRpZlxuXHRcdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3JGOTAgPSBtaXgoIHNwZWN1bGFySW50ZW5zaXR5RmFjdG9yLCB2ZWMzKCAxLjAgKSwgbWV0YWxuZXNzRmFjdG9yICk7XG5cdCNlbHNlXG5cdFx0dmVjMyBzcGVjdWxhckludGVuc2l0eUZhY3RvciA9IHZlYzMoIDEuMCApO1xuXHRcdHZlYzMgc3BlY3VsYXJUaW50RmFjdG9yID0gdmVjMyggMS4wICk7XG5cdFx0bWF0ZXJpYWwuc3BlY3VsYXJDb2xvckY5MCA9IHZlYzMoIDEuMCApO1xuXHQjZW5kaWZcblx0bWF0ZXJpYWwuc3BlY3VsYXJDb2xvciA9IG1peCggbWluKCB2ZWMzKCBNQVhJTVVNX1NQRUNVTEFSX0NPRUZGSUNJRU5UICogcG93MiggcmVmbGVjdGl2aXR5ICkgKSAqIHNwZWN1bGFyVGludEZhY3RvciwgdmVjMyggMS4wICkgKSAqIHNwZWN1bGFySW50ZW5zaXR5RmFjdG9yLCBkaWZmdXNlQ29sb3IucmdiLCBtZXRhbG5lc3NGYWN0b3IgKTtcbiNlbHNlXG5cdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgPSBtaXgoIHZlYzMoIERFRkFVTFRfU1BFQ1VMQVJfQ09FRkZJQ0lFTlQgKSwgZGlmZnVzZUNvbG9yLnJnYiwgbWV0YWxuZXNzRmFjdG9yICk7XG5cdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3JGOTAgPSB2ZWMzKCAxLjAgKTtcbiNlbmRpZlxuI2lmZGVmIENMRUFSQ09BVFxuXHRtYXRlcmlhbC5jbGVhcmNvYXQgPSBjbGVhcmNvYXQ7XG5cdG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyA9IGNsZWFyY29hdFJvdWdobmVzcztcblx0I2lmZGVmIFVTRV9DTEVBUkNPQVRNQVBcblx0XHRtYXRlcmlhbC5jbGVhcmNvYXQgKj0gdGV4dHVyZTJEKCBjbGVhcmNvYXRNYXAsIHZVdiApLng7XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVBcblx0XHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKj0gdGV4dHVyZTJEKCBjbGVhcmNvYXRSb3VnaG5lc3NNYXAsIHZVdiApLnk7XG5cdCNlbmRpZlxuXHRtYXRlcmlhbC5jbGVhcmNvYXQgPSBzYXR1cmF0ZSggbWF0ZXJpYWwuY2xlYXJjb2F0ICk7XHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgPSBtYXgoIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgMC4wNTI1ICk7XG5cdG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyArPSBnZW9tZXRyeVJvdWdobmVzcztcblx0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzID0gbWluKCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIDEuMCApO1xuI2VuZGlmXG4jaWZkZWYgVVNFX1NIRUVOXG5cdG1hdGVyaWFsLnNoZWVuQ29sb3IgPSBzaGVlbjtcbiNlbmRpZiIsbGlnaHRzX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ6InN0cnVjdCBQaHlzaWNhbE1hdGVyaWFsIHtcblx0dmVjMyBkaWZmdXNlQ29sb3I7XG5cdGZsb2F0IHNwZWN1bGFyUm91Z2huZXNzO1xuXHR2ZWMzIHNwZWN1bGFyQ29sb3I7XG5cdHZlYzMgc3BlY3VsYXJDb2xvckY5MDtcbiNpZmRlZiBDTEVBUkNPQVRcblx0ZmxvYXQgY2xlYXJjb2F0O1xuXHRmbG9hdCBjbGVhcmNvYXRSb3VnaG5lc3M7XG4jZW5kaWZcbiNpZmRlZiBVU0VfU0hFRU5cblx0dmVjMyBzaGVlbkNvbG9yO1xuI2VuZGlmXG59O1xuI2RlZmluZSBNQVhJTVVNX1NQRUNVTEFSX0NPRUZGSUNJRU5UIDAuMTZcbiNkZWZpbmUgREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCAwLjA0XG5mbG9hdCBjbGVhcmNvYXRESFJBcHByb3goIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcywgY29uc3QgaW4gZmxvYXQgZG90TkwgKSB7XG5cdHJldHVybiBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UICsgKCAxLjAgLSBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UICkgKiAoIHBvdyggMS4wIC0gZG90TkwsIDUuMCApICogcG93KCAxLjAgLSByb3VnaG5lc3MsIDIuMCApICk7XG59XG4jaWYgTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwXG5cdHZvaWQgUkVfRGlyZWN0X1JlY3RBcmVhX1BoeXNpY2FsKCBjb25zdCBpbiBSZWN0QXJlYUxpZ2h0IHJlY3RBcmVhTGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRcdHZlYzMgbm9ybWFsID0gZ2VvbWV0cnkubm9ybWFsO1xuXHRcdHZlYzMgdmlld0RpciA9IGdlb21ldHJ5LnZpZXdEaXI7XG5cdFx0dmVjMyBwb3NpdGlvbiA9IGdlb21ldHJ5LnBvc2l0aW9uO1xuXHRcdHZlYzMgbGlnaHRQb3MgPSByZWN0QXJlYUxpZ2h0LnBvc2l0aW9uO1xuXHRcdHZlYzMgaGFsZldpZHRoID0gcmVjdEFyZWFMaWdodC5oYWxmV2lkdGg7XG5cdFx0dmVjMyBoYWxmSGVpZ2h0ID0gcmVjdEFyZWFMaWdodC5oYWxmSGVpZ2h0O1xuXHRcdHZlYzMgbGlnaHRDb2xvciA9IHJlY3RBcmVhTGlnaHQuY29sb3I7XG5cdFx0ZmxvYXQgcm91Z2huZXNzID0gbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3M7XG5cdFx0dmVjMyByZWN0Q29vcmRzWyA0IF07XG5cdFx0cmVjdENvb3Jkc1sgMCBdID0gbGlnaHRQb3MgKyBoYWxmV2lkdGggLSBoYWxmSGVpZ2h0O1x0XHRyZWN0Q29vcmRzWyAxIF0gPSBsaWdodFBvcyAtIGhhbGZXaWR0aCAtIGhhbGZIZWlnaHQ7XG5cdFx0cmVjdENvb3Jkc1sgMiBdID0gbGlnaHRQb3MgLSBoYWxmV2lkdGggKyBoYWxmSGVpZ2h0O1xuXHRcdHJlY3RDb29yZHNbIDMgXSA9IGxpZ2h0UG9zICsgaGFsZldpZHRoICsgaGFsZkhlaWdodDtcblx0XHR2ZWMyIHV2ID0gTFRDX1V2KCBub3JtYWwsIHZpZXdEaXIsIHJvdWdobmVzcyApO1xuXHRcdHZlYzQgdDEgPSB0ZXh0dXJlMkQoIGx0Y18xLCB1diApO1xuXHRcdHZlYzQgdDIgPSB0ZXh0dXJlMkQoIGx0Y18yLCB1diApO1xuXHRcdG1hdDMgbUludiA9IG1hdDMoXG5cdFx0XHR2ZWMzKCB0MS54LCAwLCB0MS55ICksXG5cdFx0XHR2ZWMzKCAgICAwLCAxLCAgICAwICksXG5cdFx0XHR2ZWMzKCB0MS56LCAwLCB0MS53IClcblx0XHQpO1xuXHRcdHZlYzMgZnJlc25lbCA9ICggbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciAqIHQyLnggKyAoIHZlYzMoIDEuMCApIC0gbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciApICogdDIueSApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9IGxpZ2h0Q29sb3IgKiBmcmVzbmVsICogTFRDX0V2YWx1YXRlKCBub3JtYWwsIHZpZXdEaXIsIHBvc2l0aW9uLCBtSW52LCByZWN0Q29vcmRzICk7XG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArPSBsaWdodENvbG9yICogbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICogTFRDX0V2YWx1YXRlKCBub3JtYWwsIHZpZXdEaXIsIHBvc2l0aW9uLCBtYXQzKCAxLjAgKSwgcmVjdENvb3JkcyApO1xuXHR9XG4jZW5kaWZcbnZvaWQgUkVfRGlyZWN0X1BoeXNpY2FsKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0ZmxvYXQgZG90TkwgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApICk7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGRvdE5MICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdCNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xuXHRcdGlycmFkaWFuY2UgKj0gUEk7XG5cdCNlbmRpZlxuXHQjaWZkZWYgQ0xFQVJDT0FUXG5cdFx0ZmxvYXQgY2NEb3ROTCA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKTtcblx0XHR2ZWMzIGNjSXJyYWRpYW5jZSA9IGNjRG90TkwgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0XHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRcdGNjSXJyYWRpYW5jZSAqPSBQSTtcblx0XHQjZW5kaWZcblx0XHRmbG9hdCBjbGVhcmNvYXRESFIgPSBtYXRlcmlhbC5jbGVhcmNvYXQgKiBjbGVhcmNvYXRESFJBcHByb3goIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgY2NEb3ROTCApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9IGNjSXJyYWRpYW5jZSAqIG1hdGVyaWFsLmNsZWFyY29hdCAqIEJSREZfU3BlY3VsYXJfR0dYKCBkaXJlY3RMaWdodCwgZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCB2ZWMzKCBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UICksIHZlYzMoIDEuMCApLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKTtcblx0I2Vsc2Vcblx0XHRmbG9hdCBjbGVhcmNvYXRESFIgPSAwLjA7XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX1NIRUVOXG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gKCAxLjAgLSBjbGVhcmNvYXRESFIgKSAqIGlycmFkaWFuY2UgKiBCUkRGX1NwZWN1bGFyX1NoZWVuKFxuXHRcdFx0bWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MsXG5cdFx0XHRkaXJlY3RMaWdodC5kaXJlY3Rpb24sXG5cdFx0XHRnZW9tZXRyeSxcblx0XHRcdG1hdGVyaWFsLnNoZWVuQ29sb3Jcblx0XHQpO1xuXHQjZWxzZVxuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9ICggMS4wIC0gY2xlYXJjb2F0REhSICkgKiBpcnJhZGlhbmNlICogQlJERl9TcGVjdWxhcl9HR1goIGRpcmVjdExpZ2h0LCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5ub3JtYWwsIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IsIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3JGOTAsIG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzKTtcblx0I2VuZGlmXG5cdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gKCAxLjAgLSBjbGVhcmNvYXRESFIgKSAqIGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG52b2lkIFJFX0luZGlyZWN0RGlmZnVzZV9QaHlzaWNhbCggY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG52b2lkIFJFX0luZGlyZWN0U3BlY3VsYXJfUGh5c2ljYWwoIGNvbnN0IGluIHZlYzMgcmFkaWFuY2UsIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gdmVjMyBjbGVhcmNvYXRSYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQpIHtcblx0I2lmZGVmIENMRUFSQ09BVFxuXHRcdGZsb2F0IGNjRG90TlYgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIGdlb21ldHJ5LnZpZXdEaXIgKSApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKz0gY2xlYXJjb2F0UmFkaWFuY2UgKiBtYXRlcmlhbC5jbGVhcmNvYXQgKiBCUkRGX1NwZWN1bGFyX0dHWF9FbnZpcm9ubWVudCggZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCB2ZWMzKCBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UICksIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyApO1xuXHRcdGZsb2F0IGNjRG90TkwgPSBjY0RvdE5WO1xuXHRcdGZsb2F0IGNsZWFyY29hdERIUiA9IG1hdGVyaWFsLmNsZWFyY29hdCAqIGNsZWFyY29hdERIUkFwcHJveCggbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzLCBjY0RvdE5MICk7XG5cdCNlbHNlXG5cdFx0ZmxvYXQgY2xlYXJjb2F0REhSID0gMC4wO1xuXHQjZW5kaWZcblx0ZmxvYXQgY2xlYXJjb2F0SW52ID0gMS4wIC0gY2xlYXJjb2F0REhSO1xuXHR2ZWMzIHNpbmdsZVNjYXR0ZXJpbmcgPSB2ZWMzKCAwLjAgKTtcblx0dmVjMyBtdWx0aVNjYXR0ZXJpbmcgPSB2ZWMzKCAwLjAgKTtcblx0dmVjMyBjb3NpbmVXZWlnaHRlZElycmFkaWFuY2UgPSBpcnJhZGlhbmNlICogUkVDSVBST0NBTF9QSTtcblx0QlJERl9TcGVjdWxhcl9NdWx0aXNjYXR0ZXJpbmdfRW52aXJvbm1lbnQoIGdlb21ldHJ5LCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcywgc2luZ2xlU2NhdHRlcmluZywgbXVsdGlTY2F0dGVyaW5nICk7XG5cdHZlYzMgZGlmZnVzZSA9IG1hdGVyaWFsLmRpZmZ1c2VDb2xvciAqICggMS4wIC0gKCBzaW5nbGVTY2F0dGVyaW5nICsgbXVsdGlTY2F0dGVyaW5nICkgKTtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3RTcGVjdWxhciArPSBjbGVhcmNvYXRJbnYgKiByYWRpYW5jZSAqIHNpbmdsZVNjYXR0ZXJpbmc7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKz0gbXVsdGlTY2F0dGVyaW5nICogY29zaW5lV2VpZ2h0ZWRJcnJhZGlhbmNlO1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gZGlmZnVzZSAqIGNvc2luZVdlaWdodGVkSXJyYWRpYW5jZTtcbn1cbiNkZWZpbmUgUkVfRGlyZWN0XHRcdFx0XHRSRV9EaXJlY3RfUGh5c2ljYWxcbiNkZWZpbmUgUkVfRGlyZWN0X1JlY3RBcmVhXHRcdFJFX0RpcmVjdF9SZWN0QXJlYV9QaHlzaWNhbFxuI2RlZmluZSBSRV9JbmRpcmVjdERpZmZ1c2VcdFx0UkVfSW5kaXJlY3REaWZmdXNlX1BoeXNpY2FsXG4jZGVmaW5lIFJFX0luZGlyZWN0U3BlY3VsYXJcdFx0UkVfSW5kaXJlY3RTcGVjdWxhcl9QaHlzaWNhbFxuZmxvYXQgY29tcHV0ZVNwZWN1bGFyT2NjbHVzaW9uKCBjb25zdCBpbiBmbG9hdCBkb3ROViwgY29uc3QgaW4gZmxvYXQgYW1iaWVudE9jY2x1c2lvbiwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkge1xuXHRyZXR1cm4gc2F0dXJhdGUoIHBvdyggZG90TlYgKyBhbWJpZW50T2NjbHVzaW9uLCBleHAyKCAtIDE2LjAgKiByb3VnaG5lc3MgLSAxLjAgKSApIC0gMS4wICsgYW1iaWVudE9jY2x1c2lvbiApO1xufSIsbGlnaHRzX2ZyYWdtZW50X2JlZ2luOiJcbkdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnk7XG5nZW9tZXRyeS5wb3NpdGlvbiA9IC0gdlZpZXdQb3NpdGlvbjtcbmdlb21ldHJ5Lm5vcm1hbCA9IG5vcm1hbDtcbmdlb21ldHJ5LnZpZXdEaXIgPSAoIGlzT3J0aG9ncmFwaGljICkgPyB2ZWMzKCAwLCAwLCAxICkgOiBub3JtYWxpemUoIHZWaWV3UG9zaXRpb24gKTtcbiNpZmRlZiBDTEVBUkNPQVRcblx0Z2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsID0gY2xlYXJjb2F0Tm9ybWFsO1xuI2VuZGlmXG5JbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0O1xuI2lmICggTlVNX1BPSU5UX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3QgKVxuXHRQb2ludExpZ2h0IHBvaW50TGlnaHQ7XG5cdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodFNoYWRvdztcblx0I2VuZGlmXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1BPSU5UX0xJR0hUUzsgaSArKyApIHtcblx0XHRwb2ludExpZ2h0ID0gcG9pbnRMaWdodHNbIGkgXTtcblx0XHRnZXRQb2ludERpcmVjdExpZ2h0SXJyYWRpYW5jZSggcG9pbnRMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyApXG5cdFx0cG9pbnRMaWdodFNoYWRvdyA9IHBvaW50TGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgKj0gYWxsKCBidmVjMiggZGlyZWN0TGlnaHQudmlzaWJsZSwgcmVjZWl2ZVNoYWRvdyApICkgPyBnZXRQb2ludFNoYWRvdyggcG9pbnRTaGFkb3dNYXBbIGkgXSwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dNYXBTaXplLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd0JpYXMsIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93UmFkaXVzLCB2UG9pbnRTaGFkb3dDb29yZFsgaSBdLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd0NhbWVyYU5lYXIsIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93Q2FtZXJhRmFyICkgOiAxLjA7XG5cdFx0I2VuZGlmXG5cdFx0UkVfRGlyZWN0KCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiAoIE5VTV9TUE9UX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3QgKVxuXHRTcG90TGlnaHQgc3BvdExpZ2h0O1xuXHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFNwb3RMaWdodFNoYWRvdyBzcG90TGlnaHRTaGFkb3c7XG5cdCNlbmRpZlxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUUzsgaSArKyApIHtcblx0XHRzcG90TGlnaHQgPSBzcG90TGlnaHRzWyBpIF07XG5cdFx0Z2V0U3BvdERpcmVjdExpZ2h0SXJyYWRpYW5jZSggc3BvdExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmICggVU5ST0xMRURfTE9PUF9JTkRFWCA8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgKVxuXHRcdHNwb3RMaWdodFNoYWRvdyA9IHNwb3RMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRkaXJlY3RMaWdodC5jb2xvciAqPSBhbGwoIGJ2ZWMyKCBkaXJlY3RMaWdodC52aXNpYmxlLCByZWNlaXZlU2hhZG93ICkgKSA/IGdldFNoYWRvdyggc3BvdFNoYWRvd01hcFsgaSBdLCBzcG90TGlnaHRTaGFkb3cuc2hhZG93TWFwU2l6ZSwgc3BvdExpZ2h0U2hhZG93LnNoYWRvd0JpYXMsIHNwb3RMaWdodFNoYWRvdy5zaGFkb3dSYWRpdXMsIHZTcG90U2hhZG93Q29vcmRbIGkgXSApIDogMS4wO1xuXHRcdCNlbmRpZlxuXHRcdFJFX0RpcmVjdCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgKCBOVU1fRElSX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3QgKVxuXHREaXJlY3Rpb25hbExpZ2h0IGRpcmVjdGlvbmFsTGlnaHQ7XG5cdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMFxuXHREaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3c7XG5cdCNlbmRpZlxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9ESVJfTElHSFRTOyBpICsrICkge1xuXHRcdGRpcmVjdGlvbmFsTGlnaHQgPSBkaXJlY3Rpb25hbExpZ2h0c1sgaSBdO1xuXHRcdGdldERpcmVjdGlvbmFsRGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBkaXJlY3Rpb25hbExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmICggVU5ST0xMRURfTE9PUF9JTkRFWCA8IE5VTV9ESVJfTElHSFRfU0hBRE9XUyApXG5cdFx0ZGlyZWN0aW9uYWxMaWdodFNoYWRvdyA9IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgKj0gYWxsKCBidmVjMiggZGlyZWN0TGlnaHQudmlzaWJsZSwgcmVjZWl2ZVNoYWRvdyApICkgPyBnZXRTaGFkb3coIGRpcmVjdGlvbmFsU2hhZG93TWFwWyBpIF0sIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cuc2hhZG93TWFwU2l6ZSwgZGlyZWN0aW9uYWxMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBkaXJlY3Rpb25hbExpZ2h0U2hhZG93LnNoYWRvd1JhZGl1cywgdkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIGkgXSApIDogMS4wO1xuXHRcdCNlbmRpZlxuXHRcdFJFX0RpcmVjdCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgKCBOVU1fUkVDVF9BUkVBX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3RfUmVjdEFyZWEgKVxuXHRSZWN0QXJlYUxpZ2h0IHJlY3RBcmVhTGlnaHQ7XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1JFQ1RfQVJFQV9MSUdIVFM7IGkgKysgKSB7XG5cdFx0cmVjdEFyZWFMaWdodCA9IHJlY3RBcmVhTGlnaHRzWyBpIF07XG5cdFx0UkVfRGlyZWN0X1JlY3RBcmVhKCByZWN0QXJlYUxpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0RGlmZnVzZSApXG5cdHZlYzMgaWJsSXJyYWRpYW5jZSA9IHZlYzMoIDAuMCApO1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBnZXRBbWJpZW50TGlnaHRJcnJhZGlhbmNlKCBhbWJpZW50TGlnaHRDb2xvciApO1xuXHRpcnJhZGlhbmNlICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBnZW9tZXRyeSApO1xuXHQjaWYgKCBOVU1fSEVNSV9MSUdIVFMgPiAwIClcblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdFx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0hFTUlfTElHSFRTOyBpICsrICkge1xuXHRcdFx0aXJyYWRpYW5jZSArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGdlb21ldHJ5ICk7XG5cdFx0fVxuXHRcdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuI2VuZGlmXG4jaWYgZGVmaW5lZCggUkVfSW5kaXJlY3RTcGVjdWxhciApXG5cdHZlYzMgcmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTtcblx0dmVjMyBjbGVhcmNvYXRSYWRpYW5jZSA9IHZlYzMoIDAuMCApO1xuI2VuZGlmIixsaWdodHNfZnJhZ21lbnRfbWFwczoiI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0RGlmZnVzZSApXG5cdCNpZmRlZiBVU0VfTElHSFRNQVBcblx0XHR2ZWM0IGxpZ2h0TWFwVGV4ZWw9IHRleHR1cmUyRCggbGlnaHRNYXAsIHZVdjIgKTtcblx0XHR2ZWMzIGxpZ2h0TWFwSXJyYWRpYW5jZSA9IGxpZ2h0TWFwVGV4ZWxUb0xpbmVhciggbGlnaHRNYXBUZXhlbCApLnJnYiAqIGxpZ2h0TWFwSW50ZW5zaXR5O1xuXHRcdCNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xuXHRcdFx0bGlnaHRNYXBJcnJhZGlhbmNlICo9IFBJO1xuXHRcdCNlbmRpZlxuXHRcdGlycmFkaWFuY2UgKz0gbGlnaHRNYXBJcnJhZGlhbmNlO1xuXHQjZW5kaWZcblx0I2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSAmJiBkZWZpbmVkKCBTVEFOREFSRCApICYmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKVxuXHRcdGlibElycmFkaWFuY2UgKz0gZ2V0TGlnaHRQcm9iZUluZGlyZWN0SXJyYWRpYW5jZSggZ2VvbWV0cnksIG1heE1pcExldmVsICk7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApICYmIGRlZmluZWQoIFJFX0luZGlyZWN0U3BlY3VsYXIgKVxuXHRyYWRpYW5jZSArPSBnZXRMaWdodFByb2JlSW5kaXJlY3RSYWRpYW5jZSggZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkubm9ybWFsLCBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcywgbWF4TWlwTGV2ZWwgKTtcblx0I2lmZGVmIENMRUFSQ09BVFxuXHRcdGNsZWFyY29hdFJhZGlhbmNlICs9IGdldExpZ2h0UHJvYmVJbmRpcmVjdFJhZGlhbmNlKCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgbWF4TWlwTGV2ZWwgKTtcblx0I2VuZGlmXG4jZW5kaWYiLGxpZ2h0c19mcmFnbWVudF9lbmQ6IiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdERpZmZ1c2UgKVxuXHRSRV9JbmRpcmVjdERpZmZ1c2UoIGlycmFkaWFuY2UsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0U3BlY3VsYXIgKVxuXHRSRV9JbmRpcmVjdFNwZWN1bGFyKCByYWRpYW5jZSwgaWJsSXJyYWRpYW5jZSwgY2xlYXJjb2F0UmFkaWFuY2UsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcbiNlbmRpZiIsbG9nZGVwdGhidWZfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfTE9HREVQVEhCVUYgKSAmJiBkZWZpbmVkKCBVU0VfTE9HREVQVEhCVUZfRVhUIClcblx0Z2xfRnJhZ0RlcHRoRVhUID0gdklzUGVyc3BlY3RpdmUgPT0gMC4wID8gZ2xfRnJhZ0Nvb3JkLnogOiBsb2cyKCB2RnJhZ0RlcHRoICkgKiBsb2dEZXB0aEJ1ZkZDICogMC41O1xuI2VuZGlmIixsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGICkgJiYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGX0VYVCApXG5cdHVuaWZvcm0gZmxvYXQgbG9nRGVwdGhCdWZGQztcblx0dmFyeWluZyBmbG9hdCB2RnJhZ0RlcHRoO1xuXHR2YXJ5aW5nIGZsb2F0IHZJc1BlcnNwZWN0aXZlO1xuI2VuZGlmIixsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9MT0dERVBUSEJVRlxuXHQjaWZkZWYgVVNFX0xPR0RFUFRIQlVGX0VYVFxuXHRcdHZhcnlpbmcgZmxvYXQgdkZyYWdEZXB0aDtcblx0XHR2YXJ5aW5nIGZsb2F0IHZJc1BlcnNwZWN0aXZlO1xuXHQjZWxzZVxuXHRcdHVuaWZvcm0gZmxvYXQgbG9nRGVwdGhCdWZGQztcblx0I2VuZGlmXG4jZW5kaWYiLGxvZ2RlcHRoYnVmX3ZlcnRleDoiI2lmZGVmIFVTRV9MT0dERVBUSEJVRlxuXHQjaWZkZWYgVVNFX0xPR0RFUFRIQlVGX0VYVFxuXHRcdHZGcmFnRGVwdGggPSAxLjAgKyBnbF9Qb3NpdGlvbi53O1xuXHRcdHZJc1BlcnNwZWN0aXZlID0gZmxvYXQoIGlzUGVyc3BlY3RpdmVNYXRyaXgoIHByb2plY3Rpb25NYXRyaXggKSApO1xuXHQjZWxzZVxuXHRcdGlmICggaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApICkge1xuXHRcdFx0Z2xfUG9zaXRpb24ueiA9IGxvZzIoIG1heCggRVBTSUxPTiwgZ2xfUG9zaXRpb24udyArIDEuMCApICkgKiBsb2dEZXB0aEJ1ZkZDIC0gMS4wO1xuXHRcdFx0Z2xfUG9zaXRpb24ueiAqPSBnbF9Qb3NpdGlvbi53O1xuXHRcdH1cblx0I2VuZGlmXG4jZW5kaWYiLG1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9NQVBcblx0dmVjNCB0ZXhlbENvbG9yID0gdGV4dHVyZTJEKCBtYXAsIHZVdiApO1xuXHR0ZXhlbENvbG9yID0gbWFwVGV4ZWxUb0xpbmVhciggdGV4ZWxDb2xvciApO1xuXHRkaWZmdXNlQ29sb3IgKj0gdGV4ZWxDb2xvcjtcbiNlbmRpZiIsbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIG1hcDtcbiNlbmRpZiIsbWFwX3BhcnRpY2xlX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX01BUCApIHx8IGRlZmluZWQoIFVTRV9BTFBIQU1BUCApXG5cdHZlYzIgdXYgPSAoIHV2VHJhbnNmb3JtICogdmVjMyggZ2xfUG9pbnRDb29yZC54LCAxLjAgLSBnbF9Qb2ludENvb3JkLnksIDEgKSApLnh5O1xuI2VuZGlmXG4jaWZkZWYgVVNFX01BUFxuXHR2ZWM0IG1hcFRleGVsID0gdGV4dHVyZTJEKCBtYXAsIHV2ICk7XG5cdGRpZmZ1c2VDb2xvciAqPSBtYXBUZXhlbFRvTGluZWFyKCBtYXBUZXhlbCApO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0FMUEhBTUFQXG5cdGRpZmZ1c2VDb2xvci5hICo9IHRleHR1cmUyRCggYWxwaGFNYXAsIHV2ICkuZztcbiNlbmRpZiIsbWFwX3BhcnRpY2xlX3BhcnNfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfTUFQICkgfHwgZGVmaW5lZCggVVNFX0FMUEhBTUFQIClcblx0dW5pZm9ybSBtYXQzIHV2VHJhbnNmb3JtO1xuI2VuZGlmXG4jaWZkZWYgVVNFX01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBtYXA7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQUxQSEFNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgYWxwaGFNYXA7XG4jZW5kaWYiLG1ldGFsbmVzc21hcF9mcmFnbWVudDoiZmxvYXQgbWV0YWxuZXNzRmFjdG9yID0gbWV0YWxuZXNzO1xuI2lmZGVmIFVTRV9NRVRBTE5FU1NNQVBcblx0dmVjNCB0ZXhlbE1ldGFsbmVzcyA9IHRleHR1cmUyRCggbWV0YWxuZXNzTWFwLCB2VXYgKTtcblx0bWV0YWxuZXNzRmFjdG9yICo9IHRleGVsTWV0YWxuZXNzLmI7XG4jZW5kaWYiLG1ldGFsbmVzc21hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX01FVEFMTkVTU01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBtZXRhbG5lc3NNYXA7XG4jZW5kaWYiLG1vcnBobm9ybWFsX3ZlcnRleDoiI2lmZGVmIFVTRV9NT1JQSE5PUk1BTFNcblx0b2JqZWN0Tm9ybWFsICo9IG1vcnBoVGFyZ2V0QmFzZUluZmx1ZW5jZTtcblx0b2JqZWN0Tm9ybWFsICs9IG1vcnBoTm9ybWFsMCAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMCBdO1xuXHRvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwxICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAxIF07XG5cdG9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDIgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDIgXTtcblx0b2JqZWN0Tm9ybWFsICs9IG1vcnBoTm9ybWFsMyAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMyBdO1xuI2VuZGlmIixtb3JwaHRhcmdldF9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9NT1JQSFRBUkdFVFNcblx0dW5pZm9ybSBmbG9hdCBtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2U7XG5cdCNpZm5kZWYgVVNFX01PUlBITk9STUFMU1xuXHRcdHVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA4IF07XG5cdCNlbHNlXG5cdFx0dW5pZm9ybSBmbG9hdCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDQgXTtcblx0I2VuZGlmXG4jZW5kaWYiLG1vcnBodGFyZ2V0X3ZlcnRleDoiI2lmZGVmIFVTRV9NT1JQSFRBUkdFVFNcblx0dHJhbnNmb3JtZWQgKj0gbW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlO1xuXHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDAgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDAgXTtcblx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQxICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAxIF07XG5cdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MiAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMiBdO1xuXHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDMgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDMgXTtcblx0I2lmbmRlZiBVU0VfTU9SUEhOT1JNQUxTXG5cdFx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ0ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA0IF07XG5cdFx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ1ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA1IF07XG5cdFx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ2ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA2IF07XG5cdFx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ3ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA3IF07XG5cdCNlbmRpZlxuI2VuZGlmIixub3JtYWxfZnJhZ21lbnRfYmVnaW46ImZsb2F0IGZhY2VEaXJlY3Rpb24gPSBnbF9Gcm9udEZhY2luZyA/IDEuMCA6IC0gMS4wO1xuI2lmZGVmIEZMQVRfU0hBREVEXG5cdHZlYzMgZmR4ID0gdmVjMyggZEZkeCggdlZpZXdQb3NpdGlvbi54ICksIGRGZHgoIHZWaWV3UG9zaXRpb24ueSApLCBkRmR4KCB2Vmlld1Bvc2l0aW9uLnogKSApO1xuXHR2ZWMzIGZkeSA9IHZlYzMoIGRGZHkoIHZWaWV3UG9zaXRpb24ueCApLCBkRmR5KCB2Vmlld1Bvc2l0aW9uLnkgKSwgZEZkeSggdlZpZXdQb3NpdGlvbi56ICkgKTtcblx0dmVjMyBub3JtYWwgPSBub3JtYWxpemUoIGNyb3NzKCBmZHgsIGZkeSApICk7XG4jZWxzZVxuXHR2ZWMzIG5vcm1hbCA9IG5vcm1hbGl6ZSggdk5vcm1hbCApO1xuXHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0bm9ybWFsID0gbm9ybWFsICogZmFjZURpcmVjdGlvbjtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZlYzMgdGFuZ2VudCA9IG5vcm1hbGl6ZSggdlRhbmdlbnQgKTtcblx0XHR2ZWMzIGJpdGFuZ2VudCA9IG5vcm1hbGl6ZSggdkJpdGFuZ2VudCApO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHRhbmdlbnQgPSB0YW5nZW50ICogZmFjZURpcmVjdGlvbjtcblx0XHRcdGJpdGFuZ2VudCA9IGJpdGFuZ2VudCAqIGZhY2VEaXJlY3Rpb247XG5cdFx0I2VuZGlmXG5cdFx0I2lmIGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCApXG5cdFx0XHRtYXQzIHZUQk4gPSBtYXQzKCB0YW5nZW50LCBiaXRhbmdlbnQsIG5vcm1hbCApO1xuXHRcdCNlbmRpZlxuXHQjZW5kaWZcbiNlbmRpZlxudmVjMyBnZW9tZXRyeU5vcm1hbCA9IG5vcm1hbDsiLG5vcm1hbF9mcmFnbWVudF9tYXBzOiIjaWZkZWYgT0JKRUNUU1BBQ0VfTk9STUFMTUFQXG5cdG5vcm1hbCA9IHRleHR1cmUyRCggbm9ybWFsTWFwLCB2VXYgKS54eXogKiAyLjAgLSAxLjA7XG5cdCNpZmRlZiBGTElQX1NJREVEXG5cdFx0bm9ybWFsID0gLSBub3JtYWw7XG5cdCNlbmRpZlxuXHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0bm9ybWFsID0gbm9ybWFsICogZmFjZURpcmVjdGlvbjtcblx0I2VuZGlmXG5cdG5vcm1hbCA9IG5vcm1hbGl6ZSggbm9ybWFsTWF0cml4ICogbm9ybWFsICk7XG4jZWxpZiBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIClcblx0dmVjMyBtYXBOID0gdGV4dHVyZTJEKCBub3JtYWxNYXAsIHZVdiApLnh5eiAqIDIuMCAtIDEuMDtcblx0bWFwTi54eSAqPSBub3JtYWxTY2FsZTtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0bm9ybWFsID0gbm9ybWFsaXplKCB2VEJOICogbWFwTiApO1xuXHQjZWxzZVxuXHRcdG5vcm1hbCA9IHBlcnR1cmJOb3JtYWwyQXJiKCAtdlZpZXdQb3NpdGlvbiwgbm9ybWFsLCBtYXBOLCBmYWNlRGlyZWN0aW9uICk7XG5cdCNlbmRpZlxuI2VsaWYgZGVmaW5lZCggVVNFX0JVTVBNQVAgKVxuXHRub3JtYWwgPSBwZXJ0dXJiTm9ybWFsQXJiKCAtdlZpZXdQb3NpdGlvbiwgbm9ybWFsLCBkSGR4eV9md2QoKSwgZmFjZURpcmVjdGlvbiApO1xuI2VuZGlmIixub3JtYWxtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9OT1JNQUxNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbm9ybWFsTWFwO1xuXHR1bmlmb3JtIHZlYzIgbm9ybWFsU2NhbGU7XG4jZW5kaWZcbiNpZmRlZiBPQkpFQ1RTUEFDRV9OT1JNQUxNQVBcblx0dW5pZm9ybSBtYXQzIG5vcm1hbE1hdHJpeDtcbiNlbmRpZlxuI2lmICEgZGVmaW5lZCAoIFVTRV9UQU5HRU5UICkgJiYgKCBkZWZpbmVkICggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApIHx8IGRlZmluZWQgKCBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCApIClcblx0dmVjMyBwZXJ0dXJiTm9ybWFsMkFyYiggdmVjMyBleWVfcG9zLCB2ZWMzIHN1cmZfbm9ybSwgdmVjMyBtYXBOLCBmbG9hdCBmYWNlRGlyZWN0aW9uICkge1xuXHRcdHZlYzMgcTAgPSB2ZWMzKCBkRmR4KCBleWVfcG9zLnggKSwgZEZkeCggZXllX3Bvcy55ICksIGRGZHgoIGV5ZV9wb3MueiApICk7XG5cdFx0dmVjMyBxMSA9IHZlYzMoIGRGZHkoIGV5ZV9wb3MueCApLCBkRmR5KCBleWVfcG9zLnkgKSwgZEZkeSggZXllX3Bvcy56ICkgKTtcblx0XHR2ZWMyIHN0MCA9IGRGZHgoIHZVdi5zdCApO1xuXHRcdHZlYzIgc3QxID0gZEZkeSggdlV2LnN0ICk7XG5cdFx0dmVjMyBOID0gc3VyZl9ub3JtO1xuXHRcdHZlYzMgcTFwZXJwID0gY3Jvc3MoIHExLCBOICk7XG5cdFx0dmVjMyBxMHBlcnAgPSBjcm9zcyggTiwgcTAgKTtcblx0XHR2ZWMzIFQgPSBxMXBlcnAgKiBzdDAueCArIHEwcGVycCAqIHN0MS54O1xuXHRcdHZlYzMgQiA9IHExcGVycCAqIHN0MC55ICsgcTBwZXJwICogc3QxLnk7XG5cdFx0ZmxvYXQgZGV0ID0gbWF4KCBkb3QoIFQsIFQgKSwgZG90KCBCLCBCICkgKTtcblx0XHRmbG9hdCBzY2FsZSA9ICggZGV0ID09IDAuMCApID8gMC4wIDogZmFjZURpcmVjdGlvbiAqIGludmVyc2VzcXJ0KCBkZXQgKTtcblx0XHRyZXR1cm4gbm9ybWFsaXplKCBUICogKCBtYXBOLnggKiBzY2FsZSApICsgQiAqICggbWFwTi55ICogc2NhbGUgKSArIE4gKiBtYXBOLnogKTtcblx0fVxuI2VuZGlmIixjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X2JlZ2luOiIjaWZkZWYgQ0xFQVJDT0FUXG5cdHZlYzMgY2xlYXJjb2F0Tm9ybWFsID0gZ2VvbWV0cnlOb3JtYWw7XG4jZW5kaWYiLGNsZWFyY29hdF9ub3JtYWxfZnJhZ21lbnRfbWFwczoiI2lmZGVmIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQXG5cdHZlYzMgY2xlYXJjb2F0TWFwTiA9IHRleHR1cmUyRCggY2xlYXJjb2F0Tm9ybWFsTWFwLCB2VXYgKS54eXogKiAyLjAgLSAxLjA7XG5cdGNsZWFyY29hdE1hcE4ueHkgKj0gY2xlYXJjb2F0Tm9ybWFsU2NhbGU7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdGNsZWFyY29hdE5vcm1hbCA9IG5vcm1hbGl6ZSggdlRCTiAqIGNsZWFyY29hdE1hcE4gKTtcblx0I2Vsc2Vcblx0XHRjbGVhcmNvYXROb3JtYWwgPSBwZXJ0dXJiTm9ybWFsMkFyYiggLSB2Vmlld1Bvc2l0aW9uLCBjbGVhcmNvYXROb3JtYWwsIGNsZWFyY29hdE1hcE4sIGZhY2VEaXJlY3Rpb24gKTtcblx0I2VuZGlmXG4jZW5kaWYiLGNsZWFyY29hdF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0NMRUFSQ09BVE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBjbGVhcmNvYXRNYXA7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQ0xFQVJDT0FUX1JPVUdITkVTU01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBjbGVhcmNvYXRSb3VnaG5lc3NNYXA7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBjbGVhcmNvYXROb3JtYWxNYXA7XG5cdHVuaWZvcm0gdmVjMiBjbGVhcmNvYXROb3JtYWxTY2FsZTtcbiNlbmRpZiIscGFja2luZzoidmVjMyBwYWNrTm9ybWFsVG9SR0IoIGNvbnN0IGluIHZlYzMgbm9ybWFsICkge1xuXHRyZXR1cm4gbm9ybWFsaXplKCBub3JtYWwgKSAqIDAuNSArIDAuNTtcbn1cbnZlYzMgdW5wYWNrUkdCVG9Ob3JtYWwoIGNvbnN0IGluIHZlYzMgcmdiICkge1xuXHRyZXR1cm4gMi4wICogcmdiLnh5eiAtIDEuMDtcbn1cbmNvbnN0IGZsb2F0IFBhY2tVcHNjYWxlID0gMjU2LiAvIDI1NS47Y29uc3QgZmxvYXQgVW5wYWNrRG93bnNjYWxlID0gMjU1LiAvIDI1Ni47XG5jb25zdCB2ZWMzIFBhY2tGYWN0b3JzID0gdmVjMyggMjU2LiAqIDI1Ni4gKiAyNTYuLCAyNTYuICogMjU2LiwgMjU2LiApO1xuY29uc3QgdmVjNCBVbnBhY2tGYWN0b3JzID0gVW5wYWNrRG93bnNjYWxlIC8gdmVjNCggUGFja0ZhY3RvcnMsIDEuICk7XG5jb25zdCBmbG9hdCBTaGlmdFJpZ2h0OCA9IDEuIC8gMjU2LjtcbnZlYzQgcGFja0RlcHRoVG9SR0JBKCBjb25zdCBpbiBmbG9hdCB2ICkge1xuXHR2ZWM0IHIgPSB2ZWM0KCBmcmFjdCggdiAqIFBhY2tGYWN0b3JzICksIHYgKTtcblx0ci55encgLT0gci54eXogKiBTaGlmdFJpZ2h0ODtcdHJldHVybiByICogUGFja1Vwc2NhbGU7XG59XG5mbG9hdCB1bnBhY2tSR0JBVG9EZXB0aCggY29uc3QgaW4gdmVjNCB2ICkge1xuXHRyZXR1cm4gZG90KCB2LCBVbnBhY2tGYWN0b3JzICk7XG59XG52ZWM0IHBhY2sySGFsZlRvUkdCQSggdmVjMiB2ICkge1xuXHR2ZWM0IHIgPSB2ZWM0KCB2LngsIGZyYWN0KCB2LnggKiAyNTUuMCApLCB2LnksIGZyYWN0KCB2LnkgKiAyNTUuMCApKTtcblx0cmV0dXJuIHZlYzQoIHIueCAtIHIueSAvIDI1NS4wLCByLnksIHIueiAtIHIudyAvIDI1NS4wLCByLncpO1xufVxudmVjMiB1bnBhY2tSR0JBVG8ySGFsZiggdmVjNCB2ICkge1xuXHRyZXR1cm4gdmVjMiggdi54ICsgKCB2LnkgLyAyNTUuMCApLCB2LnogKyAoIHYudyAvIDI1NS4wICkgKTtcbn1cbmZsb2F0IHZpZXdaVG9PcnRob2dyYXBoaWNEZXB0aCggY29uc3QgaW4gZmxvYXQgdmlld1osIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHtcblx0cmV0dXJuICggdmlld1ogKyBuZWFyICkgLyAoIG5lYXIgLSBmYXIgKTtcbn1cbmZsb2F0IG9ydGhvZ3JhcGhpY0RlcHRoVG9WaWV3WiggY29uc3QgaW4gZmxvYXQgbGluZWFyQ2xpcFosIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHtcblx0cmV0dXJuIGxpbmVhckNsaXBaICogKCBuZWFyIC0gZmFyICkgLSBuZWFyO1xufVxuZmxvYXQgdmlld1pUb1BlcnNwZWN0aXZlRGVwdGgoIGNvbnN0IGluIGZsb2F0IHZpZXdaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7XG5cdHJldHVybiAoKCBuZWFyICsgdmlld1ogKSAqIGZhciApIC8gKCggZmFyIC0gbmVhciApICogdmlld1ogKTtcbn1cbmZsb2F0IHBlcnNwZWN0aXZlRGVwdGhUb1ZpZXdaKCBjb25zdCBpbiBmbG9hdCBpbnZDbGlwWiwgY29uc3QgaW4gZmxvYXQgbmVhciwgY29uc3QgaW4gZmxvYXQgZmFyICkge1xuXHRyZXR1cm4gKCBuZWFyICogZmFyICkgLyAoICggZmFyIC0gbmVhciApICogaW52Q2xpcFogLSBmYXIgKTtcbn0iLHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ6IiNpZmRlZiBQUkVNVUxUSVBMSUVEX0FMUEhBXG5cdGdsX0ZyYWdDb2xvci5yZ2IgKj0gZ2xfRnJhZ0NvbG9yLmE7XG4jZW5kaWYiLHByb2plY3RfdmVydGV4OiJ2ZWM0IG12UG9zaXRpb24gPSB2ZWM0KCB0cmFuc2Zvcm1lZCwgMS4wICk7XG4jaWZkZWYgVVNFX0lOU1RBTkNJTkdcblx0bXZQb3NpdGlvbiA9IGluc3RhbmNlTWF0cml4ICogbXZQb3NpdGlvbjtcbiNlbmRpZlxubXZQb3NpdGlvbiA9IG1vZGVsVmlld01hdHJpeCAqIG12UG9zaXRpb247XG5nbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtdlBvc2l0aW9uOyIsZGl0aGVyaW5nX2ZyYWdtZW50OiIjaWZkZWYgRElUSEVSSU5HXG5cdGdsX0ZyYWdDb2xvci5yZ2IgPSBkaXRoZXJpbmcoIGdsX0ZyYWdDb2xvci5yZ2IgKTtcbiNlbmRpZiIsZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBESVRIRVJJTkdcblx0dmVjMyBkaXRoZXJpbmcoIHZlYzMgY29sb3IgKSB7XG5cdFx0ZmxvYXQgZ3JpZF9wb3NpdGlvbiA9IHJhbmQoIGdsX0ZyYWdDb29yZC54eSApO1xuXHRcdHZlYzMgZGl0aGVyX3NoaWZ0X1JHQiA9IHZlYzMoIDAuMjUgLyAyNTUuMCwgLTAuMjUgLyAyNTUuMCwgMC4yNSAvIDI1NS4wICk7XG5cdFx0ZGl0aGVyX3NoaWZ0X1JHQiA9IG1peCggMi4wICogZGl0aGVyX3NoaWZ0X1JHQiwgLTIuMCAqIGRpdGhlcl9zaGlmdF9SR0IsIGdyaWRfcG9zaXRpb24gKTtcblx0XHRyZXR1cm4gY29sb3IgKyBkaXRoZXJfc2hpZnRfUkdCO1xuXHR9XG4jZW5kaWYiLHJvdWdobmVzc21hcF9mcmFnbWVudDoiZmxvYXQgcm91Z2huZXNzRmFjdG9yID0gcm91Z2huZXNzO1xuI2lmZGVmIFVTRV9ST1VHSE5FU1NNQVBcblx0dmVjNCB0ZXhlbFJvdWdobmVzcyA9IHRleHR1cmUyRCggcm91Z2huZXNzTWFwLCB2VXYgKTtcblx0cm91Z2huZXNzRmFjdG9yICo9IHRleGVsUm91Z2huZXNzLmc7XG4jZW5kaWYiLHJvdWdobmVzc21hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX1JPVUdITkVTU01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCByb3VnaG5lc3NNYXA7XG4jZW5kaWYiLHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX1NIQURPV01BUFxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIGRpcmVjdGlvbmFsU2hhZG93TWFwWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBEaXJlY3Rpb25hbExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBEaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG5cdCNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHNwb3RTaGFkb3dNYXBbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdlNwb3RTaGFkb3dDb29yZFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBTcG90TGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0fTtcblx0XHR1bmlmb3JtIFNwb3RMaWdodFNoYWRvdyBzcG90TGlnaHRTaGFkb3dzWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHQjaWYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgcG9pbnRTaGFkb3dNYXBbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZQb2ludFNoYWRvd0Nvb3JkWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBQb2ludExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdFx0ZmxvYXQgc2hhZG93Q2FtZXJhTmVhcjtcblx0XHRcdGZsb2F0IHNoYWRvd0NhbWVyYUZhcjtcblx0XHR9O1xuXHRcdHVuaWZvcm0gUG9pbnRMaWdodFNoYWRvdyBwb2ludExpZ2h0U2hhZG93c1sgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG5cdGZsb2F0IHRleHR1cmUyRENvbXBhcmUoIHNhbXBsZXIyRCBkZXB0aHMsIHZlYzIgdXYsIGZsb2F0IGNvbXBhcmUgKSB7XG5cdFx0cmV0dXJuIHN0ZXAoIGNvbXBhcmUsIHVucGFja1JHQkFUb0RlcHRoKCB0ZXh0dXJlMkQoIGRlcHRocywgdXYgKSApICk7XG5cdH1cblx0dmVjMiB0ZXh0dXJlMkREaXN0cmlidXRpb24oIHNhbXBsZXIyRCBzaGFkb3csIHZlYzIgdXYgKSB7XG5cdFx0cmV0dXJuIHVucGFja1JHQkFUbzJIYWxmKCB0ZXh0dXJlMkQoIHNoYWRvdywgdXYgKSApO1xuXHR9XG5cdGZsb2F0IFZTTVNoYWRvdyAoc2FtcGxlcjJEIHNoYWRvdywgdmVjMiB1diwgZmxvYXQgY29tcGFyZSApe1xuXHRcdGZsb2F0IG9jY2x1c2lvbiA9IDEuMDtcblx0XHR2ZWMyIGRpc3RyaWJ1dGlvbiA9IHRleHR1cmUyRERpc3RyaWJ1dGlvbiggc2hhZG93LCB1diApO1xuXHRcdGZsb2F0IGhhcmRfc2hhZG93ID0gc3RlcCggY29tcGFyZSAsIGRpc3RyaWJ1dGlvbi54ICk7XG5cdFx0aWYgKGhhcmRfc2hhZG93ICE9IDEuMCApIHtcblx0XHRcdGZsb2F0IGRpc3RhbmNlID0gY29tcGFyZSAtIGRpc3RyaWJ1dGlvbi54IDtcblx0XHRcdGZsb2F0IHZhcmlhbmNlID0gbWF4KCAwLjAwMDAwLCBkaXN0cmlidXRpb24ueSAqIGRpc3RyaWJ1dGlvbi55ICk7XG5cdFx0XHRmbG9hdCBzb2Z0bmVzc19wcm9iYWJpbGl0eSA9IHZhcmlhbmNlIC8gKHZhcmlhbmNlICsgZGlzdGFuY2UgKiBkaXN0YW5jZSApO1x0XHRcdHNvZnRuZXNzX3Byb2JhYmlsaXR5ID0gY2xhbXAoICggc29mdG5lc3NfcHJvYmFiaWxpdHkgLSAwLjMgKSAvICggMC45NSAtIDAuMyApLCAwLjAsIDEuMCApO1x0XHRcdG9jY2x1c2lvbiA9IGNsYW1wKCBtYXgoIGhhcmRfc2hhZG93LCBzb2Z0bmVzc19wcm9iYWJpbGl0eSApLCAwLjAsIDEuMCApO1xuXHRcdH1cblx0XHRyZXR1cm4gb2NjbHVzaW9uO1xuXHR9XG5cdGZsb2F0IGdldFNoYWRvdyggc2FtcGxlcjJEIHNoYWRvd01hcCwgdmVjMiBzaGFkb3dNYXBTaXplLCBmbG9hdCBzaGFkb3dCaWFzLCBmbG9hdCBzaGFkb3dSYWRpdXMsIHZlYzQgc2hhZG93Q29vcmQgKSB7XG5cdFx0ZmxvYXQgc2hhZG93ID0gMS4wO1xuXHRcdHNoYWRvd0Nvb3JkLnh5eiAvPSBzaGFkb3dDb29yZC53O1xuXHRcdHNoYWRvd0Nvb3JkLnogKz0gc2hhZG93Qmlhcztcblx0XHRidmVjNCBpbkZydXN0dW1WZWMgPSBidmVjNCAoIHNoYWRvd0Nvb3JkLnggPj0gMC4wLCBzaGFkb3dDb29yZC54IDw9IDEuMCwgc2hhZG93Q29vcmQueSA+PSAwLjAsIHNoYWRvd0Nvb3JkLnkgPD0gMS4wICk7XG5cdFx0Ym9vbCBpbkZydXN0dW0gPSBhbGwoIGluRnJ1c3R1bVZlYyApO1xuXHRcdGJ2ZWMyIGZydXN0dW1UZXN0VmVjID0gYnZlYzIoIGluRnJ1c3R1bSwgc2hhZG93Q29vcmQueiA8PSAxLjAgKTtcblx0XHRib29sIGZydXN0dW1UZXN0ID0gYWxsKCBmcnVzdHVtVGVzdFZlYyApO1xuXHRcdGlmICggZnJ1c3R1bVRlc3QgKSB7XG5cdFx0I2lmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRiApXG5cdFx0XHR2ZWMyIHRleGVsU2l6ZSA9IHZlYzIoIDEuMCApIC8gc2hhZG93TWFwU2l6ZTtcblx0XHRcdGZsb2F0IGR4MCA9IC0gdGV4ZWxTaXplLnggKiBzaGFkb3dSYWRpdXM7XG5cdFx0XHRmbG9hdCBkeTAgPSAtIHRleGVsU2l6ZS55ICogc2hhZG93UmFkaXVzO1xuXHRcdFx0ZmxvYXQgZHgxID0gKyB0ZXhlbFNpemUueCAqIHNoYWRvd1JhZGl1cztcblx0XHRcdGZsb2F0IGR5MSA9ICsgdGV4ZWxTaXplLnkgKiBzaGFkb3dSYWRpdXM7XG5cdFx0XHRmbG9hdCBkeDIgPSBkeDAgLyAyLjA7XG5cdFx0XHRmbG9hdCBkeTIgPSBkeTAgLyAyLjA7XG5cdFx0XHRmbG9hdCBkeDMgPSBkeDEgLyAyLjA7XG5cdFx0XHRmbG9hdCBkeTMgPSBkeTEgLyAyLjA7XG5cdFx0XHRzaGFkb3cgPSAoXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDAsIGR5MCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MSwgZHkwICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDIsIGR5MiApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTIgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MywgZHkyICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDAsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgyLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MywgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDEsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgyLCBkeTMgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkzICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDMsIGR5MyApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgwLCBkeTEgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkxICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDEsIGR5MSApLCBzaGFkb3dDb29yZC56IClcblx0XHRcdCkgKiAoIDEuMCAvIDE3LjAgKTtcblx0XHQjZWxpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0ZfU09GVCApXG5cdFx0XHR2ZWMyIHRleGVsU2l6ZSA9IHZlYzIoIDEuMCApIC8gc2hhZG93TWFwU2l6ZTtcblx0XHRcdGZsb2F0IGR4ID0gdGV4ZWxTaXplLng7XG5cdFx0XHRmbG9hdCBkeSA9IHRleGVsU2l6ZS55O1xuXHRcdFx0dmVjMiB1diA9IHNoYWRvd0Nvb3JkLnh5O1xuXHRcdFx0dmVjMiBmID0gZnJhY3QoIHV2ICogc2hhZG93TWFwU2l6ZSArIDAuNSApO1xuXHRcdFx0dXYgLT0gZiAqIHRleGVsU2l6ZTtcblx0XHRcdHNoYWRvdyA9IChcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIGR4LCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDAuMCwgZHkgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHRleGVsU2l6ZSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0bWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCAwLjAgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHQgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCAwLjAgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdCBmLnggKSArXG5cdFx0XHRcdG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgZHkgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHQgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCBkeSApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0IGYueCApICtcblx0XHRcdFx0bWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMC4wLCAtZHkgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHQgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDAuMCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdCBmLnkgKSArXG5cdFx0XHRcdG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIGR4LCAtZHkgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHQgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIGR4LCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0IGYueSApICtcblx0XHRcdFx0bWl4KCBtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAtZHgsIC1keSApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdFx0ICB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIC1keSApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0XHQgIGYueCApLFxuXHRcdFx0XHRcdCBtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAtZHgsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0XHQgIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdFx0ICBmLnggKSxcblx0XHRcdFx0XHQgZi55IClcblx0XHRcdCkgKiAoIDEuMCAvIDkuMCApO1xuXHRcdCNlbGlmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1ZTTSApXG5cdFx0XHRzaGFkb3cgPSBWU01TaGFkb3coIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHksIHNoYWRvd0Nvb3JkLnogKTtcblx0XHQjZWxzZVxuXHRcdFx0c2hhZG93ID0gdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSwgc2hhZG93Q29vcmQueiApO1xuXHRcdCNlbmRpZlxuXHRcdH1cblx0XHRyZXR1cm4gc2hhZG93O1xuXHR9XG5cdHZlYzIgY3ViZVRvVVYoIHZlYzMgdiwgZmxvYXQgdGV4ZWxTaXplWSApIHtcblx0XHR2ZWMzIGFic1YgPSBhYnMoIHYgKTtcblx0XHRmbG9hdCBzY2FsZVRvQ3ViZSA9IDEuMCAvIG1heCggYWJzVi54LCBtYXgoIGFic1YueSwgYWJzVi56ICkgKTtcblx0XHRhYnNWICo9IHNjYWxlVG9DdWJlO1xuXHRcdHYgKj0gc2NhbGVUb0N1YmUgKiAoIDEuMCAtIDIuMCAqIHRleGVsU2l6ZVkgKTtcblx0XHR2ZWMyIHBsYW5hciA9IHYueHk7XG5cdFx0ZmxvYXQgYWxtb3N0QVRleGVsID0gMS41ICogdGV4ZWxTaXplWTtcblx0XHRmbG9hdCBhbG1vc3RPbmUgPSAxLjAgLSBhbG1vc3RBVGV4ZWw7XG5cdFx0aWYgKCBhYnNWLnogPj0gYWxtb3N0T25lICkge1xuXHRcdFx0aWYgKCB2LnogPiAwLjAgKVxuXHRcdFx0XHRwbGFuYXIueCA9IDQuMCAtIHYueDtcblx0XHR9IGVsc2UgaWYgKCBhYnNWLnggPj0gYWxtb3N0T25lICkge1xuXHRcdFx0ZmxvYXQgc2lnblggPSBzaWduKCB2LnggKTtcblx0XHRcdHBsYW5hci54ID0gdi56ICogc2lnblggKyAyLjAgKiBzaWduWDtcblx0XHR9IGVsc2UgaWYgKCBhYnNWLnkgPj0gYWxtb3N0T25lICkge1xuXHRcdFx0ZmxvYXQgc2lnblkgPSBzaWduKCB2LnkgKTtcblx0XHRcdHBsYW5hci54ID0gdi54ICsgMi4wICogc2lnblkgKyAyLjA7XG5cdFx0XHRwbGFuYXIueSA9IHYueiAqIHNpZ25ZIC0gMi4wO1xuXHRcdH1cblx0XHRyZXR1cm4gdmVjMiggMC4xMjUsIDAuMjUgKSAqIHBsYW5hciArIHZlYzIoIDAuMzc1LCAwLjc1ICk7XG5cdH1cblx0ZmxvYXQgZ2V0UG9pbnRTaGFkb3coIHNhbXBsZXIyRCBzaGFkb3dNYXAsIHZlYzIgc2hhZG93TWFwU2l6ZSwgZmxvYXQgc2hhZG93QmlhcywgZmxvYXQgc2hhZG93UmFkaXVzLCB2ZWM0IHNoYWRvd0Nvb3JkLCBmbG9hdCBzaGFkb3dDYW1lcmFOZWFyLCBmbG9hdCBzaGFkb3dDYW1lcmFGYXIgKSB7XG5cdFx0dmVjMiB0ZXhlbFNpemUgPSB2ZWMyKCAxLjAgKSAvICggc2hhZG93TWFwU2l6ZSAqIHZlYzIoIDQuMCwgMi4wICkgKTtcblx0XHR2ZWMzIGxpZ2h0VG9Qb3NpdGlvbiA9IHNoYWRvd0Nvb3JkLnh5ejtcblx0XHRmbG9hdCBkcCA9ICggbGVuZ3RoKCBsaWdodFRvUG9zaXRpb24gKSAtIHNoYWRvd0NhbWVyYU5lYXIgKSAvICggc2hhZG93Q2FtZXJhRmFyIC0gc2hhZG93Q2FtZXJhTmVhciApO1x0XHRkcCArPSBzaGFkb3dCaWFzO1xuXHRcdHZlYzMgYmQzRCA9IG5vcm1hbGl6ZSggbGlnaHRUb1Bvc2l0aW9uICk7XG5cdFx0I2lmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRiApIHx8IGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRl9TT0ZUICkgfHwgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfVlNNIClcblx0XHRcdHZlYzIgb2Zmc2V0ID0gdmVjMiggLSAxLCAxICkgKiBzaGFkb3dSYWRpdXMgKiB0ZXhlbFNpemUueTtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueHl5LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eXksIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh5eCwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXl4LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueHh5LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eHksIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh4eCwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXh4LCB0ZXhlbFNpemUueSApLCBkcCApXG5cdFx0XHQpICogKCAxLjAgLyA5LjAgKTtcblx0XHQjZWxzZVxuXHRcdFx0cmV0dXJuIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QsIHRleGVsU2l6ZS55ICksIGRwICk7XG5cdFx0I2VuZGlmXG5cdH1cbiNlbmRpZiIsc2hhZG93bWFwX3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX1NIQURPV01BUFxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gbWF0NCBkaXJlY3Rpb25hbFNoYWRvd01hdHJpeFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgRGlyZWN0aW9uYWxMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHR9O1xuXHRcdHVuaWZvcm0gRGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHQjaWYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIG1hdDQgc3BvdFNoYWRvd01hdHJpeFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2U3BvdFNoYWRvd0Nvb3JkWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IFNwb3RMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHR9O1xuXHRcdHVuaWZvcm0gU3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodFNoYWRvd3NbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG5cdCNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIG1hdDQgcG9pbnRTaGFkb3dNYXRyaXhbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZQb2ludFNoYWRvd0Nvb3JkWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBQb2ludExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdFx0ZmxvYXQgc2hhZG93Q2FtZXJhTmVhcjtcblx0XHRcdGZsb2F0IHNoYWRvd0NhbWVyYUZhcjtcblx0XHR9O1xuXHRcdHVuaWZvcm0gUG9pbnRMaWdodFNoYWRvdyBwb2ludExpZ2h0U2hhZG93c1sgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG4jZW5kaWYiLHNoYWRvd21hcF92ZXJ0ZXg6IiNpZmRlZiBVU0VfU0hBRE9XTUFQXG5cdCNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwIHx8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwIHx8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHZlYzMgc2hhZG93V29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCB0cmFuc2Zvcm1lZE5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRcdHZlYzQgc2hhZG93V29ybGRQb3NpdGlvbjtcblx0I2VuZGlmXG5cdCNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0RJUl9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHNoYWRvd1dvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uICsgdmVjNCggc2hhZG93V29ybGROb3JtYWwgKiBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgaSBdLnNoYWRvd05vcm1hbEJpYXMsIDAgKTtcblx0XHR2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgaSBdID0gZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXhbIGkgXSAqIHNoYWRvd1dvcmxkUG9zaXRpb247XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0c2hhZG93V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24gKyB2ZWM0KCBzaGFkb3dXb3JsZE5vcm1hbCAqIHNwb3RMaWdodFNoYWRvd3NbIGkgXS5zaGFkb3dOb3JtYWxCaWFzLCAwICk7XG5cdFx0dlNwb3RTaGFkb3dDb29yZFsgaSBdID0gc3BvdFNoYWRvd01hdHJpeFsgaSBdICogc2hhZG93V29ybGRQb3NpdGlvbjtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcblx0I2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHNoYWRvd1dvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uICsgdmVjNCggc2hhZG93V29ybGROb3JtYWwgKiBwb2ludExpZ2h0U2hhZG93c1sgaSBdLnNoYWRvd05vcm1hbEJpYXMsIDAgKTtcblx0XHR2UG9pbnRTaGFkb3dDb29yZFsgaSBdID0gcG9pbnRTaGFkb3dNYXRyaXhbIGkgXSAqIHNoYWRvd1dvcmxkUG9zaXRpb247XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG4jZW5kaWYiLHNoYWRvd21hc2tfcGFyc19mcmFnbWVudDoiZmxvYXQgZ2V0U2hhZG93TWFzaygpIHtcblx0ZmxvYXQgc2hhZG93ID0gMS4wO1xuXHQjaWZkZWYgVVNFX1NIQURPV01BUFxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMFxuXHREaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHQ7XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0RJUl9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdGRpcmVjdGlvbmFsTGlnaHQgPSBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdHNoYWRvdyAqPSByZWNlaXZlU2hhZG93ID8gZ2V0U2hhZG93KCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgaSBdLCBkaXJlY3Rpb25hbExpZ2h0LnNoYWRvd01hcFNpemUsIGRpcmVjdGlvbmFsTGlnaHQuc2hhZG93QmlhcywgZGlyZWN0aW9uYWxMaWdodC5zaGFkb3dSYWRpdXMsIHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcblx0I2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFNwb3RMaWdodFNoYWRvdyBzcG90TGlnaHQ7XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1NQT1RfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRzcG90TGlnaHQgPSBzcG90TGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0c2hhZG93ICo9IHJlY2VpdmVTaGFkb3cgPyBnZXRTaGFkb3coIHNwb3RTaGFkb3dNYXBbIGkgXSwgc3BvdExpZ2h0LnNoYWRvd01hcFNpemUsIHNwb3RMaWdodC5zaGFkb3dCaWFzLCBzcG90TGlnaHQuc2hhZG93UmFkaXVzLCB2U3BvdFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcblx0I2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHQ7XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0cG9pbnRMaWdodCA9IHBvaW50TGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0c2hhZG93ICo9IHJlY2VpdmVTaGFkb3cgPyBnZXRQb2ludFNoYWRvdyggcG9pbnRTaGFkb3dNYXBbIGkgXSwgcG9pbnRMaWdodC5zaGFkb3dNYXBTaXplLCBwb2ludExpZ2h0LnNoYWRvd0JpYXMsIHBvaW50TGlnaHQuc2hhZG93UmFkaXVzLCB2UG9pbnRTaGFkb3dDb29yZFsgaSBdLCBwb2ludExpZ2h0LnNoYWRvd0NhbWVyYU5lYXIsIHBvaW50TGlnaHQuc2hhZG93Q2FtZXJhRmFyICkgOiAxLjA7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNlbmRpZlxuXHRyZXR1cm4gc2hhZG93O1xufSIsc2tpbmJhc2VfdmVydGV4OiIjaWZkZWYgVVNFX1NLSU5OSU5HXG5cdG1hdDQgYm9uZU1hdFggPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgueCApO1xuXHRtYXQ0IGJvbmVNYXRZID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LnkgKTtcblx0bWF0NCBib25lTWF0WiA9IGdldEJvbmVNYXRyaXgoIHNraW5JbmRleC56ICk7XG5cdG1hdDQgYm9uZU1hdFcgPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgudyApO1xuI2VuZGlmIixza2lubmluZ19wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9TS0lOTklOR1xuXHR1bmlmb3JtIG1hdDQgYmluZE1hdHJpeDtcblx0dW5pZm9ybSBtYXQ0IGJpbmRNYXRyaXhJbnZlcnNlO1xuXHQjaWZkZWYgQk9ORV9URVhUVVJFXG5cdFx0dW5pZm9ybSBoaWdocCBzYW1wbGVyMkQgYm9uZVRleHR1cmU7XG5cdFx0dW5pZm9ybSBpbnQgYm9uZVRleHR1cmVTaXplO1xuXHRcdG1hdDQgZ2V0Qm9uZU1hdHJpeCggY29uc3QgaW4gZmxvYXQgaSApIHtcblx0XHRcdGZsb2F0IGogPSBpICogNC4wO1xuXHRcdFx0ZmxvYXQgeCA9IG1vZCggaiwgZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApICk7XG5cdFx0XHRmbG9hdCB5ID0gZmxvb3IoIGogLyBmbG9hdCggYm9uZVRleHR1cmVTaXplICkgKTtcblx0XHRcdGZsb2F0IGR4ID0gMS4wIC8gZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApO1xuXHRcdFx0ZmxvYXQgZHkgPSAxLjAgLyBmbG9hdCggYm9uZVRleHR1cmVTaXplICk7XG5cdFx0XHR5ID0gZHkgKiAoIHkgKyAwLjUgKTtcblx0XHRcdHZlYzQgdjEgPSB0ZXh0dXJlMkQoIGJvbmVUZXh0dXJlLCB2ZWMyKCBkeCAqICggeCArIDAuNSApLCB5ICkgKTtcblx0XHRcdHZlYzQgdjIgPSB0ZXh0dXJlMkQoIGJvbmVUZXh0dXJlLCB2ZWMyKCBkeCAqICggeCArIDEuNSApLCB5ICkgKTtcblx0XHRcdHZlYzQgdjMgPSB0ZXh0dXJlMkQoIGJvbmVUZXh0dXJlLCB2ZWMyKCBkeCAqICggeCArIDIuNSApLCB5ICkgKTtcblx0XHRcdHZlYzQgdjQgPSB0ZXh0dXJlMkQoIGJvbmVUZXh0dXJlLCB2ZWMyKCBkeCAqICggeCArIDMuNSApLCB5ICkgKTtcblx0XHRcdG1hdDQgYm9uZSA9IG1hdDQoIHYxLCB2MiwgdjMsIHY0ICk7XG5cdFx0XHRyZXR1cm4gYm9uZTtcblx0XHR9XG5cdCNlbHNlXG5cdFx0dW5pZm9ybSBtYXQ0IGJvbmVNYXRyaWNlc1sgTUFYX0JPTkVTIF07XG5cdFx0bWF0NCBnZXRCb25lTWF0cml4KCBjb25zdCBpbiBmbG9hdCBpICkge1xuXHRcdFx0bWF0NCBib25lID0gYm9uZU1hdHJpY2VzWyBpbnQoaSkgXTtcblx0XHRcdHJldHVybiBib25lO1xuXHRcdH1cblx0I2VuZGlmXG4jZW5kaWYiLHNraW5uaW5nX3ZlcnRleDoiI2lmZGVmIFVTRV9TS0lOTklOR1xuXHR2ZWM0IHNraW5WZXJ0ZXggPSBiaW5kTWF0cml4ICogdmVjNCggdHJhbnNmb3JtZWQsIDEuMCApO1xuXHR2ZWM0IHNraW5uZWQgPSB2ZWM0KCAwLjAgKTtcblx0c2tpbm5lZCArPSBib25lTWF0WCAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lng7XG5cdHNraW5uZWQgKz0gYm9uZU1hdFkgKiBza2luVmVydGV4ICogc2tpbldlaWdodC55O1xuXHRza2lubmVkICs9IGJvbmVNYXRaICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQuejtcblx0c2tpbm5lZCArPSBib25lTWF0VyAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lnc7XG5cdHRyYW5zZm9ybWVkID0gKCBiaW5kTWF0cml4SW52ZXJzZSAqIHNraW5uZWQgKS54eXo7XG4jZW5kaWYiLHNraW5ub3JtYWxfdmVydGV4OiIjaWZkZWYgVVNFX1NLSU5OSU5HXG5cdG1hdDQgc2tpbk1hdHJpeCA9IG1hdDQoIDAuMCApO1xuXHRza2luTWF0cml4ICs9IHNraW5XZWlnaHQueCAqIGJvbmVNYXRYO1xuXHRza2luTWF0cml4ICs9IHNraW5XZWlnaHQueSAqIGJvbmVNYXRZO1xuXHRza2luTWF0cml4ICs9IHNraW5XZWlnaHQueiAqIGJvbmVNYXRaO1xuXHRza2luTWF0cml4ICs9IHNraW5XZWlnaHQudyAqIGJvbmVNYXRXO1xuXHRza2luTWF0cml4ID0gYmluZE1hdHJpeEludmVyc2UgKiBza2luTWF0cml4ICogYmluZE1hdHJpeDtcblx0b2JqZWN0Tm9ybWFsID0gdmVjNCggc2tpbk1hdHJpeCAqIHZlYzQoIG9iamVjdE5vcm1hbCwgMC4wICkgKS54eXo7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdG9iamVjdFRhbmdlbnQgPSB2ZWM0KCBza2luTWF0cml4ICogdmVjNCggb2JqZWN0VGFuZ2VudCwgMC4wICkgKS54eXo7XG5cdCNlbmRpZlxuI2VuZGlmIixzcGVjdWxhcm1hcF9mcmFnbWVudDoiZmxvYXQgc3BlY3VsYXJTdHJlbmd0aDtcbiNpZmRlZiBVU0VfU1BFQ1VMQVJNQVBcblx0dmVjNCB0ZXhlbFNwZWN1bGFyID0gdGV4dHVyZTJEKCBzcGVjdWxhck1hcCwgdlV2ICk7XG5cdHNwZWN1bGFyU3RyZW5ndGggPSB0ZXhlbFNwZWN1bGFyLnI7XG4jZWxzZVxuXHRzcGVjdWxhclN0cmVuZ3RoID0gMS4wO1xuI2VuZGlmIixzcGVjdWxhcm1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX1NQRUNVTEFSTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIHNwZWN1bGFyTWFwO1xuI2VuZGlmIix0b25lbWFwcGluZ19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFRPTkVfTUFQUElORyApXG5cdGdsX0ZyYWdDb2xvci5yZ2IgPSB0b25lTWFwcGluZyggZ2xfRnJhZ0NvbG9yLnJnYiApO1xuI2VuZGlmIix0b25lbWFwcGluZ19wYXJzX2ZyYWdtZW50OiIjaWZuZGVmIHNhdHVyYXRlXG4jZGVmaW5lIHNhdHVyYXRlKGEpIGNsYW1wKCBhLCAwLjAsIDEuMCApXG4jZW5kaWZcbnVuaWZvcm0gZmxvYXQgdG9uZU1hcHBpbmdFeHBvc3VyZTtcbnZlYzMgTGluZWFyVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7XG5cdHJldHVybiB0b25lTWFwcGluZ0V4cG9zdXJlICogY29sb3I7XG59XG52ZWMzIFJlaW5oYXJkVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7XG5cdGNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmU7XG5cdHJldHVybiBzYXR1cmF0ZSggY29sb3IgLyAoIHZlYzMoIDEuMCApICsgY29sb3IgKSApO1xufVxudmVjMyBPcHRpbWl6ZWRDaW5lb25Ub25lTWFwcGluZyggdmVjMyBjb2xvciApIHtcblx0Y29sb3IgKj0gdG9uZU1hcHBpbmdFeHBvc3VyZTtcblx0Y29sb3IgPSBtYXgoIHZlYzMoIDAuMCApLCBjb2xvciAtIDAuMDA0ICk7XG5cdHJldHVybiBwb3coICggY29sb3IgKiAoIDYuMiAqIGNvbG9yICsgMC41ICkgKSAvICggY29sb3IgKiAoIDYuMiAqIGNvbG9yICsgMS43ICkgKyAwLjA2ICksIHZlYzMoIDIuMiApICk7XG59XG52ZWMzIFJSVEFuZE9EVEZpdCggdmVjMyB2ICkge1xuXHR2ZWMzIGEgPSB2ICogKCB2ICsgMC4wMjQ1Nzg2ICkgLSAwLjAwMDA5MDUzNztcblx0dmVjMyBiID0gdiAqICggMC45ODM3MjkgKiB2ICsgMC40MzI5NTEwICkgKyAwLjIzODA4MTtcblx0cmV0dXJuIGEgLyBiO1xufVxudmVjMyBBQ0VTRmlsbWljVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7XG5cdGNvbnN0IG1hdDMgQUNFU0lucHV0TWF0ID0gbWF0Myhcblx0XHR2ZWMzKCAwLjU5NzE5LCAwLjA3NjAwLCAwLjAyODQwICksXHRcdHZlYzMoIDAuMzU0NTgsIDAuOTA4MzQsIDAuMTMzODMgKSxcblx0XHR2ZWMzKCAwLjA0ODIzLCAwLjAxNTY2LCAwLjgzNzc3IClcblx0KTtcblx0Y29uc3QgbWF0MyBBQ0VTT3V0cHV0TWF0ID0gbWF0Myhcblx0XHR2ZWMzKCAgMS42MDQ3NSwgLTAuMTAyMDgsIC0wLjAwMzI3ICksXHRcdHZlYzMoIC0wLjUzMTA4LCAgMS4xMDgxMywgLTAuMDcyNzYgKSxcblx0XHR2ZWMzKCAtMC4wNzM2NywgLTAuMDA2MDUsICAxLjA3NjAyIClcblx0KTtcblx0Y29sb3IgKj0gdG9uZU1hcHBpbmdFeHBvc3VyZSAvIDAuNjtcblx0Y29sb3IgPSBBQ0VTSW5wdXRNYXQgKiBjb2xvcjtcblx0Y29sb3IgPSBSUlRBbmRPRFRGaXQoIGNvbG9yICk7XG5cdGNvbG9yID0gQUNFU091dHB1dE1hdCAqIGNvbG9yO1xuXHRyZXR1cm4gc2F0dXJhdGUoIGNvbG9yICk7XG59XG52ZWMzIEN1c3RvbVRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkgeyByZXR1cm4gY29sb3I7IH0iLHRyYW5zbWlzc2lvbl9mcmFnbWVudDoiI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0ZmxvYXQgdHJhbnNtaXNzaW9uRmFjdG9yID0gdHJhbnNtaXNzaW9uO1xuXHRmbG9hdCB0aGlja25lc3NGYWN0b3IgPSB0aGlja25lc3M7XG5cdCNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OTUFQXG5cdFx0dHJhbnNtaXNzaW9uRmFjdG9yICo9IHRleHR1cmUyRCggdHJhbnNtaXNzaW9uTWFwLCB2VXYgKS5yO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9USElDS05FU1NNQVBcblx0XHR0aGlja25lc3NGYWN0b3IgKj0gdGV4dHVyZTJEKCB0aGlja25lc3NNYXAsIHZVdiApLmc7XG5cdCNlbmRpZlxuXHR2ZWMzIHBvcyA9IHZXb3JsZFBvc2l0aW9uLnh5eiAvIHZXb3JsZFBvc2l0aW9uLnc7XG5cdHZlYzMgdiA9IG5vcm1hbGl6ZSggY2FtZXJhUG9zaXRpb24gLSBwb3MgKTtcblx0dmVjMyBuID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggbm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdGZsb2F0IGlvciA9ICggMS4wICsgMC40ICogcmVmbGVjdGl2aXR5ICkgLyAoIDEuMCAtIDAuNCAqIHJlZmxlY3Rpdml0eSApO1xuXHR2ZWMzIHRyYW5zbWlzc2lvbiA9IHRyYW5zbWlzc2lvbkZhY3RvciAqIGdldElCTFZvbHVtZVJlZnJhY3Rpb24oXG5cdFx0biwgdiwgcm91Z2huZXNzRmFjdG9yLCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IsIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IsXG5cdFx0cG9zLCBtb2RlbE1hdHJpeCwgdmlld01hdHJpeCwgcHJvamVjdGlvbk1hdHJpeCwgaW9yLCB0aGlja25lc3NGYWN0b3IsXG5cdFx0YXR0ZW51YXRpb25UaW50LCBhdHRlbnVhdGlvbkRpc3RhbmNlICk7XG5cdHRvdGFsRGlmZnVzZSA9IG1peCggdG90YWxEaWZmdXNlLCB0cmFuc21pc3Npb24sIHRyYW5zbWlzc2lvbkZhY3RvciApO1xuI2VuZGlmIix0cmFuc21pc3Npb25fcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0I2lmZGVmIFVTRV9UUkFOU01JU1NJT05NQVBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCB0cmFuc21pc3Npb25NYXA7XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX1RISUNLTkVTU01BUFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHRoaWNrbmVzc01hcDtcblx0I2VuZGlmXG5cdHVuaWZvcm0gdmVjMiB0cmFuc21pc3Npb25TYW1wbGVyU2l6ZTtcblx0dW5pZm9ybSBzYW1wbGVyMkQgdHJhbnNtaXNzaW9uU2FtcGxlck1hcDtcblx0dW5pZm9ybSBtYXQ0IG1vZGVsTWF0cml4O1xuXHR1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDtcblx0dmFyeWluZyB2ZWM0IHZXb3JsZFBvc2l0aW9uO1xuXHR2ZWMzIGdldFZvbHVtZVRyYW5zbWlzc2lvblJheSh2ZWMzIG4sIHZlYzMgdiwgZmxvYXQgdGhpY2tuZXNzLCBmbG9hdCBpb3IsIG1hdDQgbW9kZWxNYXRyaXgpIHtcblx0XHR2ZWMzIHJlZnJhY3Rpb25WZWN0b3IgPSByZWZyYWN0KC12LCBub3JtYWxpemUobiksIDEuMCAvIGlvcik7XG5cdFx0dmVjMyBtb2RlbFNjYWxlO1xuXHRcdG1vZGVsU2NhbGUueCA9IGxlbmd0aCh2ZWMzKG1vZGVsTWF0cml4WzBdLnh5eikpO1xuXHRcdG1vZGVsU2NhbGUueSA9IGxlbmd0aCh2ZWMzKG1vZGVsTWF0cml4WzFdLnh5eikpO1xuXHRcdG1vZGVsU2NhbGUueiA9IGxlbmd0aCh2ZWMzKG1vZGVsTWF0cml4WzJdLnh5eikpO1xuXHRcdHJldHVybiBub3JtYWxpemUocmVmcmFjdGlvblZlY3RvcikgKiB0aGlja25lc3MgKiBtb2RlbFNjYWxlO1xuXHR9XG5cdGZsb2F0IGFwcGx5SW9yVG9Sb3VnaG5lc3MoZmxvYXQgcm91Z2huZXNzLCBmbG9hdCBpb3IpIHtcblx0XHRyZXR1cm4gcm91Z2huZXNzICogY2xhbXAoaW9yICogMi4wIC0gMi4wLCAwLjAsIDEuMCk7XG5cdH1cblx0dmVjMyBnZXRUcmFuc21pc3Npb25TYW1wbGUodmVjMiBmcmFnQ29vcmQsIGZsb2F0IHJvdWdobmVzcywgZmxvYXQgaW9yKSB7XG5cdFx0ZmxvYXQgZnJhbWVidWZmZXJMb2QgPSBsb2cyKHRyYW5zbWlzc2lvblNhbXBsZXJTaXplLngpICogYXBwbHlJb3JUb1JvdWdobmVzcyhyb3VnaG5lc3MsIGlvcik7XG5cdFx0cmV0dXJuIHRleHR1cmUyRExvZEVYVCh0cmFuc21pc3Npb25TYW1wbGVyTWFwLCBmcmFnQ29vcmQueHksIGZyYW1lYnVmZmVyTG9kKS5yZ2I7XG5cdH1cblx0dmVjMyBhcHBseVZvbHVtZUF0dGVudWF0aW9uKHZlYzMgcmFkaWFuY2UsIGZsb2F0IHRyYW5zbWlzc2lvbkRpc3RhbmNlLCB2ZWMzIGF0dGVudWF0aW9uQ29sb3IsIGZsb2F0IGF0dGVudWF0aW9uRGlzdGFuY2UpIHtcblx0XHRpZiAoYXR0ZW51YXRpb25EaXN0YW5jZSA9PSAwLjApIHtcblx0XHRcdHJldHVybiByYWRpYW5jZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dmVjMyBhdHRlbnVhdGlvbkNvZWZmaWNpZW50ID0gLWxvZyhhdHRlbnVhdGlvbkNvbG9yKSAvIGF0dGVudWF0aW9uRGlzdGFuY2U7XG5cdFx0XHR2ZWMzIHRyYW5zbWl0dGFuY2UgPSBleHAoLWF0dGVudWF0aW9uQ29lZmZpY2llbnQgKiB0cmFuc21pc3Npb25EaXN0YW5jZSk7XHRcdFx0cmV0dXJuIHRyYW5zbWl0dGFuY2UgKiByYWRpYW5jZTtcblx0XHR9XG5cdH1cblx0dmVjMyBnZXRJQkxWb2x1bWVSZWZyYWN0aW9uKHZlYzMgbiwgdmVjMyB2LCBmbG9hdCBwZXJjZXB0dWFsUm91Z2huZXNzLCB2ZWMzIGJhc2VDb2xvciwgdmVjMyBzcGVjdWxhckNvbG9yLFxuXHRcdHZlYzMgcG9zaXRpb24sIG1hdDQgbW9kZWxNYXRyaXgsIG1hdDQgdmlld01hdHJpeCwgbWF0NCBwcm9qTWF0cml4LCBmbG9hdCBpb3IsIGZsb2F0IHRoaWNrbmVzcyxcblx0XHR2ZWMzIGF0dGVudWF0aW9uQ29sb3IsIGZsb2F0IGF0dGVudWF0aW9uRGlzdGFuY2UpIHtcblx0XHR2ZWMzIHRyYW5zbWlzc2lvblJheSA9IGdldFZvbHVtZVRyYW5zbWlzc2lvblJheShuLCB2LCB0aGlja25lc3MsIGlvciwgbW9kZWxNYXRyaXgpO1xuXHRcdHZlYzMgcmVmcmFjdGVkUmF5RXhpdCA9IHBvc2l0aW9uICsgdHJhbnNtaXNzaW9uUmF5O1xuXHRcdHZlYzQgbmRjUG9zID0gcHJvak1hdHJpeCAqIHZpZXdNYXRyaXggKiB2ZWM0KHJlZnJhY3RlZFJheUV4aXQsIDEuMCk7XG5cdFx0dmVjMiByZWZyYWN0aW9uQ29vcmRzID0gbmRjUG9zLnh5IC8gbmRjUG9zLnc7XG5cdFx0cmVmcmFjdGlvbkNvb3JkcyArPSAxLjA7XG5cdFx0cmVmcmFjdGlvbkNvb3JkcyAvPSAyLjA7XG5cdFx0dmVjMyB0cmFuc21pdHRlZExpZ2h0ID0gZ2V0VHJhbnNtaXNzaW9uU2FtcGxlKHJlZnJhY3Rpb25Db29yZHMsIHBlcmNlcHR1YWxSb3VnaG5lc3MsIGlvcik7XG5cdFx0dmVjMyBhdHRlbnVhdGVkQ29sb3IgPSBhcHBseVZvbHVtZUF0dGVudWF0aW9uKHRyYW5zbWl0dGVkTGlnaHQsIGxlbmd0aCh0cmFuc21pc3Npb25SYXkpLCBhdHRlbnVhdGlvbkNvbG9yLCBhdHRlbnVhdGlvbkRpc3RhbmNlKTtcblx0XHRyZXR1cm4gKDEuMCAtIHNwZWN1bGFyQ29sb3IpICogYXR0ZW51YXRlZENvbG9yICogYmFzZUNvbG9yO1xuXHR9XG4jZW5kaWYiLHV2X3BhcnNfZnJhZ21lbnQ6IiNpZiAoIGRlZmluZWQoIFVTRV9VViApICYmICEgZGVmaW5lZCggVVZTX1ZFUlRFWF9PTkxZICkgKVxuXHR2YXJ5aW5nIHZlYzIgdlV2O1xuI2VuZGlmIix1dl9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9VVlxuXHQjaWZkZWYgVVZTX1ZFUlRFWF9PTkxZXG5cdFx0dmVjMiB2VXY7XG5cdCNlbHNlXG5cdFx0dmFyeWluZyB2ZWMyIHZVdjtcblx0I2VuZGlmXG5cdHVuaWZvcm0gbWF0MyB1dlRyYW5zZm9ybTtcbiNlbmRpZiIsdXZfdmVydGV4OiIjaWZkZWYgVVNFX1VWXG5cdHZVdiA9ICggdXZUcmFuc2Zvcm0gKiB2ZWMzKCB1diwgMSApICkueHk7XG4jZW5kaWYiLHV2Ml9wYXJzX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0xJR0hUTUFQICkgfHwgZGVmaW5lZCggVVNFX0FPTUFQIClcblx0dmFyeWluZyB2ZWMyIHZVdjI7XG4jZW5kaWYiLHV2Ml9wYXJzX3ZlcnRleDoiI2lmIGRlZmluZWQoIFVTRV9MSUdIVE1BUCApIHx8IGRlZmluZWQoIFVTRV9BT01BUCApXG5cdGF0dHJpYnV0ZSB2ZWMyIHV2Mjtcblx0dmFyeWluZyB2ZWMyIHZVdjI7XG5cdHVuaWZvcm0gbWF0MyB1djJUcmFuc2Zvcm07XG4jZW5kaWYiLHV2Ml92ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfTElHSFRNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQU9NQVAgKVxuXHR2VXYyID0gKCB1djJUcmFuc2Zvcm0gKiB2ZWMzKCB1djIsIDEgKSApLnh5O1xuI2VuZGlmIix3b3JsZHBvc192ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgfHwgZGVmaW5lZCggRElTVEFOQ0UgKSB8fCBkZWZpbmVkICggVVNFX1NIQURPV01BUCApIHx8IGRlZmluZWQgKCBVU0VfVFJBTlNNSVNTSU9OIClcblx0dmVjNCB3b3JsZFBvc2l0aW9uID0gdmVjNCggdHJhbnNmb3JtZWQsIDEuMCApO1xuXHQjaWZkZWYgVVNFX0lOU1RBTkNJTkdcblx0XHR3b3JsZFBvc2l0aW9uID0gaW5zdGFuY2VNYXRyaXggKiB3b3JsZFBvc2l0aW9uO1xuXHQjZW5kaWZcblx0d29ybGRQb3NpdGlvbiA9IG1vZGVsTWF0cml4ICogd29ybGRQb3NpdGlvbjtcbiNlbmRpZiIsYmFja2dyb3VuZF9mcmFnOiJ1bmlmb3JtIHNhbXBsZXIyRCB0MkQ7XG52YXJ5aW5nIHZlYzIgdlV2O1xudm9pZCBtYWluKCkge1xuXHR2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKCB0MkQsIHZVdiApO1xuXHRnbF9GcmFnQ29sb3IgPSBtYXBUZXhlbFRvTGluZWFyKCB0ZXhDb2xvciApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG59IixiYWNrZ3JvdW5kX3ZlcnQ6InZhcnlpbmcgdmVjMiB2VXY7XG51bmlmb3JtIG1hdDMgdXZUcmFuc2Zvcm07XG52b2lkIG1haW4oKSB7XG5cdHZVdiA9ICggdXZUcmFuc2Zvcm0gKiB2ZWMzKCB1diwgMSApICkueHk7XG5cdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24ueHksIDEuMCwgMS4wICk7XG59IixjdWJlX2ZyYWc6IiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG52YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uO1xuI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0dmVjMyB2UmVmbGVjdCA9IHZXb3JsZERpcmVjdGlvbjtcblx0I2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD5cblx0Z2xfRnJhZ0NvbG9yID0gZW52Q29sb3I7XG5cdGdsX0ZyYWdDb2xvci5hICo9IG9wYWNpdHk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cbn0iLGN1YmVfdmVydDoidmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG52b2lkIG1haW4oKSB7XG5cdHZXb3JsZERpcmVjdGlvbiA9IHRyYW5zZm9ybURpcmVjdGlvbiggcG9zaXRpb24sIG1vZGVsTWF0cml4ICk7XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0Z2xfUG9zaXRpb24ueiA9IGdsX1Bvc2l0aW9uLnc7XG59IixkZXB0aF9mcmFnOiIjaWYgREVQVEhfUEFDS0lORyA9PSAzMjAwXG5cdHVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50PlxudmFyeWluZyB2ZWMyIHZIaWdoUHJlY2lzaW9uWlc7XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggMS4wICk7XG5cdCNpZiBERVBUSF9QQUNLSU5HID09IDMyMDBcblx0XHRkaWZmdXNlQ29sb3IuYSA9IG9wYWNpdHk7XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0ZmxvYXQgZnJhZ0Nvb3JkWiA9IDAuNSAqIHZIaWdoUHJlY2lzaW9uWldbMF0gLyB2SGlnaFByZWNpc2lvblpXWzFdICsgMC41O1xuXHQjaWYgREVQVEhfUEFDS0lORyA9PSAzMjAwXG5cdFx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggdmVjMyggMS4wIC0gZnJhZ0Nvb3JkWiApLCBvcGFjaXR5ICk7XG5cdCNlbGlmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMVxuXHRcdGdsX0ZyYWdDb2xvciA9IHBhY2tEZXB0aFRvUkdCQSggZnJhZ0Nvb3JkWiApO1xuXHQjZW5kaWZcbn0iLGRlcHRoX3ZlcnQ6IiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZhcnlpbmcgdmVjMiB2SGlnaFByZWNpc2lvblpXO1xudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaWZkZWYgVVNFX0RJU1BMQUNFTUVOVE1BUFxuXHRcdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0dkhpZ2hQcmVjaXNpb25aVyA9IGdsX1Bvc2l0aW9uLnp3O1xufSIsZGlzdGFuY2VSR0JBX2ZyYWc6IiNkZWZpbmUgRElTVEFOQ0VcbnVuaWZvcm0gdmVjMyByZWZlcmVuY2VQb3NpdGlvbjtcbnVuaWZvcm0gZmxvYXQgbmVhckRpc3RhbmNlO1xudW5pZm9ybSBmbG9hdCBmYXJEaXN0YW5jZTtcbnZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4gKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIDEuMCApO1xuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdGZsb2F0IGRpc3QgPSBsZW5ndGgoIHZXb3JsZFBvc2l0aW9uIC0gcmVmZXJlbmNlUG9zaXRpb24gKTtcblx0ZGlzdCA9ICggZGlzdCAtIG5lYXJEaXN0YW5jZSApIC8gKCBmYXJEaXN0YW5jZSAtIG5lYXJEaXN0YW5jZSApO1xuXHRkaXN0ID0gc2F0dXJhdGUoIGRpc3QgKTtcblx0Z2xfRnJhZ0NvbG9yID0gcGFja0RlcHRoVG9SR0JBKCBkaXN0ICk7XG59IixkaXN0YW5jZVJHQkFfdmVydDoiI2RlZmluZSBESVNUQU5DRVxudmFyeWluZyB2ZWMzIHZXb3JsZFBvc2l0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaWZkZWYgVVNFX0RJU1BMQUNFTUVOVE1BUFxuXHRcdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0dldvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uLnh5ejtcbn0iLGVxdWlyZWN0X2ZyYWc6InVuaWZvcm0gc2FtcGxlcjJEIHRFcXVpcmVjdDtcbnZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxudm9pZCBtYWluKCkge1xuXHR2ZWMzIGRpcmVjdGlvbiA9IG5vcm1hbGl6ZSggdldvcmxkRGlyZWN0aW9uICk7XG5cdHZlYzIgc2FtcGxlVVYgPSBlcXVpcmVjdFV2KCBkaXJlY3Rpb24gKTtcblx0dmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRCggdEVxdWlyZWN0LCBzYW1wbGVVViApO1xuXHRnbF9GcmFnQ29sb3IgPSBtYXBUZXhlbFRvTGluZWFyKCB0ZXhDb2xvciApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG59IixlcXVpcmVjdF92ZXJ0OiJ2YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbnZvaWQgbWFpbigpIHtcblx0dldvcmxkRGlyZWN0aW9uID0gdHJhbnNmb3JtRGlyZWN0aW9uKCBwb3NpdGlvbiwgbW9kZWxNYXRyaXggKTtcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxufSIsbGluZWRhc2hlZF9mcmFnOiJ1bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbnVuaWZvcm0gZmxvYXQgZGFzaFNpemU7XG51bmlmb3JtIGZsb2F0IHRvdGFsU2l6ZTtcbnZhcnlpbmcgZmxvYXQgdkxpbmVEaXN0YW5jZTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHRpZiAoIG1vZCggdkxpbmVEaXN0YW5jZSwgdG90YWxTaXplICkgPiBkYXNoU2l6ZSApIHtcblx0XHRkaXNjYXJkO1xuXHR9XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHZlYzMoIDAuMCApO1xuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdG91dGdvaW5nTGlnaHQgPSBkaWZmdXNlQ29sb3IucmdiO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxufSIsbGluZWRhc2hlZF92ZXJ0OiJ1bmlmb3JtIGZsb2F0IHNjYWxlO1xuYXR0cmlidXRlIGZsb2F0IGxpbmVEaXN0YW5jZTtcbnZhcnlpbmcgZmxvYXQgdkxpbmVEaXN0YW5jZTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0dkxpbmVEaXN0YW5jZSA9IHNjYWxlICogbGluZURpc3RhbmNlO1xuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2hiYXNpY19mcmFnOiJ1bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPHNwZWN1bGFybWFwX2ZyYWdtZW50PlxuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHQjaWZkZWYgVVNFX0xJR0hUTUFQXG5cdFxuXHRcdHZlYzQgbGlnaHRNYXBUZXhlbD0gdGV4dHVyZTJEKCBsaWdodE1hcCwgdlV2MiApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBsaWdodE1hcFRleGVsVG9MaW5lYXIoIGxpZ2h0TWFwVGV4ZWwgKS5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTtcblx0I2Vsc2Vcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gdmVjMyggMS4wICk7XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSAqPSBkaWZmdXNlQ29sb3IucmdiO1xuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2U7XG5cdCNpbmNsdWRlIDxlbnZtYXBfZnJhZ21lbnQ+XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNoYmFzaWNfdmVydDoiI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaWYgZGVmaW5lZCAoIFVTRV9FTlZNQVAgKSB8fCBkZWZpbmVkICggVVNFX1NLSU5OSU5HIClcblx0XHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaGxhbWJlcnRfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIHZlYzMgZW1pc3NpdmU7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG52YXJ5aW5nIHZlYzMgdkxpZ2h0RnJvbnQ7XG52YXJ5aW5nIHZlYzMgdkluZGlyZWN0RnJvbnQ7XG4jaWZkZWYgRE9VQkxFX1NJREVEXG5cdHZhcnlpbmcgdmVjMyB2TGlnaHRCYWNrO1xuXHR2YXJ5aW5nIHZlYzMgdkluZGlyZWN0QmFjaztcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFza19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ID0gUmVmbGVjdGVkTGlnaHQoIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApICk7XG5cdHZlYzMgdG90YWxFbWlzc2l2ZVJhZGlhbmNlID0gZW1pc3NpdmU7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxzcGVjdWxhcm1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PlxuXHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9ICggZ2xfRnJvbnRGYWNpbmcgKSA/IHZJbmRpcmVjdEZyb250IDogdkluZGlyZWN0QmFjaztcblx0I2Vsc2Vcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gdkluZGlyZWN0RnJvbnQ7XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8bGlnaHRtYXBfZnJhZ21lbnQ+XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSAqPSBCUkRGX0RpZmZ1c2VfTGFtYmVydCggZGlmZnVzZUNvbG9yLnJnYiApO1xuXHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSA9ICggZ2xfRnJvbnRGYWNpbmcgKSA/IHZMaWdodEZyb250IDogdkxpZ2h0QmFjaztcblx0I2Vsc2Vcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlID0gdkxpZ2h0RnJvbnQ7XG5cdCNlbmRpZlxuXHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICo9IEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBkaWZmdXNlQ29sb3IucmdiICkgKiBnZXRTaGFkb3dNYXNrKCk7XG5cdCNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD5cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArIHRvdGFsRW1pc3NpdmVSYWRpYW5jZTtcblx0I2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD5cblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD5cbn0iLG1lc2hsYW1iZXJ0X3ZlcnQ6IiNkZWZpbmUgTEFNQkVSVFxudmFyeWluZyB2ZWMzIHZMaWdodEZyb250O1xudmFyeWluZyB2ZWMzIHZJbmRpcmVjdEZyb250O1xuI2lmZGVmIERPVUJMRV9TSURFRFxuXHR2YXJ5aW5nIHZlYzMgdkxpZ2h0QmFjaztcblx0dmFyeWluZyB2ZWMzIHZJbmRpcmVjdEJhY2s7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZW52bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGxpZ2h0c19sYW1iZXJ0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaG1hdGNhcF9mcmFnOiIjZGVmaW5lIE1BVENBUFxudW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG51bmlmb3JtIHNhbXBsZXIyRCBtYXRjYXA7XG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdHZlYzMgdmlld0RpciA9IG5vcm1hbGl6ZSggdlZpZXdQb3NpdGlvbiApO1xuXHR2ZWMzIHggPSBub3JtYWxpemUoIHZlYzMoIHZpZXdEaXIueiwgMC4wLCAtIHZpZXdEaXIueCApICk7XG5cdHZlYzMgeSA9IGNyb3NzKCB2aWV3RGlyLCB4ICk7XG5cdHZlYzIgdXYgPSB2ZWMyKCBkb3QoIHgsIG5vcm1hbCApLCBkb3QoIHksIG5vcm1hbCApICkgKiAwLjQ5NSArIDAuNTtcblx0I2lmZGVmIFVTRV9NQVRDQVBcblx0XHR2ZWM0IG1hdGNhcENvbG9yID0gdGV4dHVyZTJEKCBtYXRjYXAsIHV2ICk7XG5cdFx0bWF0Y2FwQ29sb3IgPSBtYXRjYXBUZXhlbFRvTGluZWFyKCBtYXRjYXBDb2xvciApO1xuXHQjZWxzZVxuXHRcdHZlYzQgbWF0Y2FwQ29sb3IgPSB2ZWM0KCAxLjAgKTtcblx0I2VuZGlmXG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2IgKiBtYXRjYXBDb2xvci5yZ2I7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNobWF0Y2FwX3ZlcnQ6IiNkZWZpbmUgTUFUQ0FQXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuXHQjaWZuZGVmIEZMQVRfU0hBREVEXG5cdFx0dk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcblx0XHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHRcdHZUYW5nZW50ID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZFRhbmdlbnQgKTtcblx0XHRcdHZCaXRhbmdlbnQgPSBub3JtYWxpemUoIGNyb3NzKCB2Tm9ybWFsLCB2VGFuZ2VudCApICogdGFuZ2VudC53ICk7XG5cdFx0I2VuZGlmXG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG5cdHZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xufSIsbWVzaHRvb25fZnJhZzoiI2RlZmluZSBUT09OXG51bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gdmVjMyBlbWlzc2l2ZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxncmFkaWVudG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPGxpZ2h0c190b29uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c190b29uX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfZW5kPlxuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNodG9vbl92ZXJ0OiIjZGVmaW5lIFRPT05cbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8dXYyX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZOb3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG4jZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixtZXNocGhvbmdfZnJhZzoiI2RlZmluZSBQSE9OR1xudW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIHZlYzMgZW1pc3NpdmU7XG51bmlmb3JtIHZlYzMgc3BlY3VsYXI7XG51bmlmb3JtIGZsb2F0IHNoaW5pbmVzcztcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPGxpZ2h0c19waG9uZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzcGVjdWxhcm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8c3BlY3VsYXJtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX3Bob25nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfZW5kPlxuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdCNpbmNsdWRlIDxlbnZtYXBfZnJhZ21lbnQ+XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNocGhvbmdfdmVydDoiI2RlZmluZSBQSE9OR1xudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8dXYyX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZOb3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG4jZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZW52bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaHBoeXNpY2FsX2ZyYWc6IiNkZWZpbmUgU1RBTkRBUkRcbiNpZmRlZiBQSFlTSUNBTFxuXHQjZGVmaW5lIFJFRkxFQ1RJVklUWVxuXHQjZGVmaW5lIENMRUFSQ09BVFxuXHQjZGVmaW5lIFNQRUNVTEFSXG4jZW5kaWZcbnVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSB2ZWMzIGVtaXNzaXZlO1xudW5pZm9ybSBmbG9hdCByb3VnaG5lc3M7XG51bmlmb3JtIGZsb2F0IG1ldGFsbmVzcztcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5cdHVuaWZvcm0gZmxvYXQgdHJhbnNtaXNzaW9uO1xuXHR1bmlmb3JtIGZsb2F0IHRoaWNrbmVzcztcblx0dW5pZm9ybSBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlO1xuXHR1bmlmb3JtIHZlYzMgYXR0ZW51YXRpb25UaW50O1xuI2VuZGlmXG4jaWZkZWYgUkVGTEVDVElWSVRZXG5cdHVuaWZvcm0gZmxvYXQgcmVmbGVjdGl2aXR5O1xuI2VuZGlmXG4jaWZkZWYgU1BFQ1VMQVJcblx0dW5pZm9ybSBmbG9hdCBzcGVjdWxhckludGVuc2l0eTtcblx0dW5pZm9ybSB2ZWMzIHNwZWN1bGFyVGludDtcblx0I2lmZGVmIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHNwZWN1bGFySW50ZW5zaXR5TWFwO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9TUEVDVUxBUlRJTlRNQVBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBzcGVjdWxhclRpbnRNYXA7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaWZkZWYgQ0xFQVJDT0FUXG5cdHVuaWZvcm0gZmxvYXQgY2xlYXJjb2F0O1xuXHR1bmlmb3JtIGZsb2F0IGNsZWFyY29hdFJvdWdobmVzcztcbiNlbmRpZlxuI2lmZGVmIFVTRV9TSEVFTlxuXHR1bmlmb3JtIHZlYzMgc2hlZW47XG4jZW5kaWZcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmFyeWluZyB2ZWMzIHZUYW5nZW50O1xuXHRcdHZhcnlpbmcgdmVjMyB2Qml0YW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPHRyYW5zbWlzc2lvbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8bGlnaHRzX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsZWFyY29hdF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHJvdWdobmVzc21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1ldGFsbmVzc21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cm91Z2huZXNzbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWV0YWxuZXNzbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8Y2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfcGh5c2ljYWxfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9lbmQ+XG5cdCNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD5cblx0dmVjMyB0b3RhbERpZmZ1c2UgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlO1xuXHR2ZWMzIHRvdGFsU3BlY3VsYXIgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXI7XG5cdCNpbmNsdWRlIDx0cmFuc21pc3Npb25fZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHRvdGFsRGlmZnVzZSArIHRvdGFsU3BlY3VsYXIgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNocGh5c2ljYWxfdmVydDoiI2RlZmluZSBTVEFOREFSRFxudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaWZkZWYgVVNFX1RSQU5TTUlTU0lPTlxuXHR2YXJ5aW5nIHZlYzQgdldvcmxkUG9zaXRpb247XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2VGFuZ2VudCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWRUYW5nZW50ICk7XG5cdFx0dkJpdGFuZ2VudCA9IG5vcm1hbGl6ZSggY3Jvc3MoIHZOb3JtYWwsIHZUYW5nZW50ICkgKiB0YW5nZW50LncgKTtcblx0I2VuZGlmXG4jZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG4jaWZkZWYgVVNFX1RSQU5TTUlTU0lPTlxuXHR2V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb247XG4jZW5kaWZcbn0iLG5vcm1hbF9mcmFnOiIjZGVmaW5lIE5PUk1BTFxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2lmIGRlZmluZWQoIEZMQVRfU0hBREVEICkgfHwgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIClcblx0dmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jZW5kaWZcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBwYWNrTm9ybWFsVG9SR0IoIG5vcm1hbCApLCBvcGFjaXR5ICk7XG59Iixub3JtYWxfdmVydDoiI2RlZmluZSBOT1JNQUxcbiNpZiBkZWZpbmVkKCBGTEFUX1NIQURFRCApIHx8IGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApXG5cdHZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2VuZGlmXG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2VGFuZ2VudCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWRUYW5nZW50ICk7XG5cdFx0dkJpdGFuZ2VudCA9IG5vcm1hbGl6ZSggY3Jvc3MoIHZOb3JtYWwsIHZUYW5nZW50ICkgKiB0YW5nZW50LncgKTtcblx0I2VuZGlmXG4jZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG4jaWYgZGVmaW5lZCggRkxBVF9TSEFERUQgKSB8fCBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKVxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcbiNlbmRpZlxufSIscG9pbnRzX2ZyYWc6InVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJ0aWNsZV9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHZlYzMoIDAuMCApO1xuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX3BhcnRpY2xlX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdG91dGdvaW5nTGlnaHQgPSBkaWZmdXNlQ29sb3IucmdiO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxufSIscG9pbnRzX3ZlcnQ6InVuaWZvcm0gZmxvYXQgc2l6ZTtcbnVuaWZvcm0gZmxvYXQgc2NhbGU7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0Z2xfUG9pbnRTaXplID0gc2l6ZTtcblx0I2lmZGVmIFVTRV9TSVpFQVRURU5VQVRJT05cblx0XHRib29sIGlzUGVyc3BlY3RpdmUgPSBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICk7XG5cdFx0aWYgKCBpc1BlcnNwZWN0aXZlICkgZ2xfUG9pbnRTaXplICo9ICggc2NhbGUgLyAtIG12UG9zaXRpb24ueiApO1xuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsc2hhZG93X2ZyYWc6InVuaWZvcm0gdmVjMyBjb2xvcjtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzaGFkb3dtYXNrX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIGNvbG9yLCBvcGFjaXR5ICogKCAxLjAgLSBnZXRTaGFkb3dNYXNrKCkgKSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG59IixzaGFkb3dfdmVydDoiI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixzcHJpdGVfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTtcblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHRvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxufSIsc3ByaXRlX3ZlcnQ6InVuaWZvcm0gZmxvYXQgcm90YXRpb247XG51bmlmb3JtIHZlYzIgY2VudGVyO1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHR2ZWM0IG12UG9zaXRpb24gPSBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCAwLjAsIDAuMCwgMC4wLCAxLjAgKTtcblx0dmVjMiBzY2FsZTtcblx0c2NhbGUueCA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDAgXS54LCBtb2RlbE1hdHJpeFsgMCBdLnksIG1vZGVsTWF0cml4WyAwIF0ueiApICk7XG5cdHNjYWxlLnkgPSBsZW5ndGgoIHZlYzMoIG1vZGVsTWF0cml4WyAxIF0ueCwgbW9kZWxNYXRyaXhbIDEgXS55LCBtb2RlbE1hdHJpeFsgMSBdLnogKSApO1xuXHQjaWZuZGVmIFVTRV9TSVpFQVRURU5VQVRJT05cblx0XHRib29sIGlzUGVyc3BlY3RpdmUgPSBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICk7XG5cdFx0aWYgKCBpc1BlcnNwZWN0aXZlICkgc2NhbGUgKj0gLSBtdlBvc2l0aW9uLno7XG5cdCNlbmRpZlxuXHR2ZWMyIGFsaWduZWRQb3NpdGlvbiA9ICggcG9zaXRpb24ueHkgLSAoIGNlbnRlciAtIHZlYzIoIDAuNSApICkgKSAqIHNjYWxlO1xuXHR2ZWMyIHJvdGF0ZWRQb3NpdGlvbjtcblx0cm90YXRlZFBvc2l0aW9uLnggPSBjb3MoIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueCAtIHNpbiggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi55O1xuXHRyb3RhdGVkUG9zaXRpb24ueSA9IHNpbiggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi54ICsgY29zKCByb3RhdGlvbiApICogYWxpZ25lZFBvc2l0aW9uLnk7XG5cdG12UG9zaXRpb24ueHkgKz0gcm90YXRlZFBvc2l0aW9uO1xuXHRnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtdlBvc2l0aW9uO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59In0sbDB0PXtjb21tb246e2RpZmZ1c2U6e3ZhbHVlOm5ldyAkUXQoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxtYXA6e3ZhbHVlOm51bGx9LHV2VHJhbnNmb3JtOnt2YWx1ZTpuZXcgZ0p0fSx1djJUcmFuc2Zvcm06e3ZhbHVlOm5ldyBnSnR9LGFscGhhTWFwOnt2YWx1ZTpudWxsfX0sc3BlY3VsYXJtYXA6e3NwZWN1bGFyTWFwOnt2YWx1ZTpudWxsfX0sZW52bWFwOntlbnZNYXA6e3ZhbHVlOm51bGx9LGZsaXBFbnZNYXA6e3ZhbHVlOi0xfSxyZWZsZWN0aXZpdHk6e3ZhbHVlOjF9LHJlZnJhY3Rpb25SYXRpbzp7dmFsdWU6Ljk4fSxtYXhNaXBMZXZlbDp7dmFsdWU6MH19LGFvbWFwOnthb01hcDp7dmFsdWU6bnVsbH0sYW9NYXBJbnRlbnNpdHk6e3ZhbHVlOjF9fSxsaWdodG1hcDp7bGlnaHRNYXA6e3ZhbHVlOm51bGx9LGxpZ2h0TWFwSW50ZW5zaXR5Ont2YWx1ZToxfX0sZW1pc3NpdmVtYXA6e2VtaXNzaXZlTWFwOnt2YWx1ZTpudWxsfX0sYnVtcG1hcDp7YnVtcE1hcDp7dmFsdWU6bnVsbH0sYnVtcFNjYWxlOnt2YWx1ZToxfX0sbm9ybWFsbWFwOntub3JtYWxNYXA6e3ZhbHVlOm51bGx9LG5vcm1hbFNjYWxlOnt2YWx1ZTpuZXcgbUp0KDEsMSl9fSxkaXNwbGFjZW1lbnRtYXA6e2Rpc3BsYWNlbWVudE1hcDp7dmFsdWU6bnVsbH0sZGlzcGxhY2VtZW50U2NhbGU6e3ZhbHVlOjF9LGRpc3BsYWNlbWVudEJpYXM6e3ZhbHVlOjB9fSxyb3VnaG5lc3NtYXA6e3JvdWdobmVzc01hcDp7dmFsdWU6bnVsbH19LG1ldGFsbmVzc21hcDp7bWV0YWxuZXNzTWFwOnt2YWx1ZTpudWxsfX0sZ3JhZGllbnRtYXA6e2dyYWRpZW50TWFwOnt2YWx1ZTpudWxsfX0sZm9nOntmb2dEZW5zaXR5Ont2YWx1ZToyNWUtNX0sZm9nTmVhcjp7dmFsdWU6MX0sZm9nRmFyOnt2YWx1ZToyZTN9LGZvZ0NvbG9yOnt2YWx1ZTpuZXcgJFF0KDE2Nzc3MjE1KX19LGxpZ2h0czp7YW1iaWVudExpZ2h0Q29sb3I6e3ZhbHVlOltdfSxsaWdodFByb2JlOnt2YWx1ZTpbXX0sZGlyZWN0aW9uYWxMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2RpcmVjdGlvbjp7fSxjb2xvcjp7fX19LGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntzaGFkb3dCaWFzOnt9LHNoYWRvd05vcm1hbEJpYXM6e30sc2hhZG93UmFkaXVzOnt9LHNoYWRvd01hcFNpemU6e319fSxkaXJlY3Rpb25hbFNoYWRvd01hcDp7dmFsdWU6W119LGRpcmVjdGlvbmFsU2hhZG93TWF0cml4Ont2YWx1ZTpbXX0sc3BvdExpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7Y29sb3I6e30scG9zaXRpb246e30sZGlyZWN0aW9uOnt9LGRpc3RhbmNlOnt9LGNvbmVDb3M6e30scGVudW1icmFDb3M6e30sZGVjYXk6e319fSxzcG90TGlnaHRTaGFkb3dzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntzaGFkb3dCaWFzOnt9LHNoYWRvd05vcm1hbEJpYXM6e30sc2hhZG93UmFkaXVzOnt9LHNoYWRvd01hcFNpemU6e319fSxzcG90U2hhZG93TWFwOnt2YWx1ZTpbXX0sc3BvdFNoYWRvd01hdHJpeDp7dmFsdWU6W119LHBvaW50TGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntjb2xvcjp7fSxwb3NpdGlvbjp7fSxkZWNheTp7fSxkaXN0YW5jZTp7fX19LHBvaW50TGlnaHRTaGFkb3dzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntzaGFkb3dCaWFzOnt9LHNoYWRvd05vcm1hbEJpYXM6e30sc2hhZG93UmFkaXVzOnt9LHNoYWRvd01hcFNpemU6e30sc2hhZG93Q2FtZXJhTmVhcjp7fSxzaGFkb3dDYW1lcmFGYXI6e319fSxwb2ludFNoYWRvd01hcDp7dmFsdWU6W119LHBvaW50U2hhZG93TWF0cml4Ont2YWx1ZTpbXX0saGVtaXNwaGVyZUxpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7ZGlyZWN0aW9uOnt9LHNreUNvbG9yOnt9LGdyb3VuZENvbG9yOnt9fX0scmVjdEFyZWFMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2NvbG9yOnt9LHBvc2l0aW9uOnt9LHdpZHRoOnt9LGhlaWdodDp7fX19LGx0Y18xOnt2YWx1ZTpudWxsfSxsdGNfMjp7dmFsdWU6bnVsbH19LHBvaW50czp7ZGlmZnVzZTp7dmFsdWU6bmV3ICRRdCgxNjc3NzIxNSl9LG9wYWNpdHk6e3ZhbHVlOjF9LHNpemU6e3ZhbHVlOjF9LHNjYWxlOnt2YWx1ZToxfSxtYXA6e3ZhbHVlOm51bGx9LGFscGhhTWFwOnt2YWx1ZTpudWxsfSx1dlRyYW5zZm9ybTp7dmFsdWU6bmV3IGdKdH19LHNwcml0ZTp7ZGlmZnVzZTp7dmFsdWU6bmV3ICRRdCgxNjc3NzIxNSl9LG9wYWNpdHk6e3ZhbHVlOjF9LGNlbnRlcjp7dmFsdWU6bmV3IG1KdCguNSwuNSl9LHJvdGF0aW9uOnt2YWx1ZTowfSxtYXA6e3ZhbHVlOm51bGx9LGFscGhhTWFwOnt2YWx1ZTpudWxsfSx1dlRyYW5zZm9ybTp7dmFsdWU6bmV3IGdKdH19fSxjMHQ9e2Jhc2ljOnt1bmlmb3JtczpVMXQoW2wwdC5jb21tb24sbDB0LnNwZWN1bGFybWFwLGwwdC5lbnZtYXAsbDB0LmFvbWFwLGwwdC5saWdodG1hcCxsMHQuZm9nXSksdmVydGV4U2hhZGVyOnMwdC5tZXNoYmFzaWNfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQubWVzaGJhc2ljX2ZyYWd9LGxhbWJlcnQ6e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuc3BlY3VsYXJtYXAsbDB0LmVudm1hcCxsMHQuYW9tYXAsbDB0LmxpZ2h0bWFwLGwwdC5lbWlzc2l2ZW1hcCxsMHQuZm9nLGwwdC5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgJFF0KDApfX1dKSx2ZXJ0ZXhTaGFkZXI6czB0Lm1lc2hsYW1iZXJ0X3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0Lm1lc2hsYW1iZXJ0X2ZyYWd9LHBob25nOnt1bmlmb3JtczpVMXQoW2wwdC5jb21tb24sbDB0LnNwZWN1bGFybWFwLGwwdC5lbnZtYXAsbDB0LmFvbWFwLGwwdC5saWdodG1hcCxsMHQuZW1pc3NpdmVtYXAsbDB0LmJ1bXBtYXAsbDB0Lm5vcm1hbG1hcCxsMHQuZGlzcGxhY2VtZW50bWFwLGwwdC5mb2csbDB0LmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyAkUXQoMCl9LHNwZWN1bGFyOnt2YWx1ZTpuZXcgJFF0KDExMTg0ODEpfSxzaGluaW5lc3M6e3ZhbHVlOjMwfX1dKSx2ZXJ0ZXhTaGFkZXI6czB0Lm1lc2hwaG9uZ192ZXJ0LGZyYWdtZW50U2hhZGVyOnMwdC5tZXNocGhvbmdfZnJhZ30sc3RhbmRhcmQ6e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuZW52bWFwLGwwdC5hb21hcCxsMHQubGlnaHRtYXAsbDB0LmVtaXNzaXZlbWFwLGwwdC5idW1wbWFwLGwwdC5ub3JtYWxtYXAsbDB0LmRpc3BsYWNlbWVudG1hcCxsMHQucm91Z2huZXNzbWFwLGwwdC5tZXRhbG5lc3NtYXAsbDB0LmZvZyxsMHQubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3ICRRdCgwKX0scm91Z2huZXNzOnt2YWx1ZToxfSxtZXRhbG5lc3M6e3ZhbHVlOjB9LGVudk1hcEludGVuc2l0eTp7dmFsdWU6MX19XSksdmVydGV4U2hhZGVyOnMwdC5tZXNocGh5c2ljYWxfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQubWVzaHBoeXNpY2FsX2ZyYWd9LHRvb246e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuYW9tYXAsbDB0LmxpZ2h0bWFwLGwwdC5lbWlzc2l2ZW1hcCxsMHQuYnVtcG1hcCxsMHQubm9ybWFsbWFwLGwwdC5kaXNwbGFjZW1lbnRtYXAsbDB0LmdyYWRpZW50bWFwLGwwdC5mb2csbDB0LmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyAkUXQoMCl9fV0pLHZlcnRleFNoYWRlcjpzMHQubWVzaHRvb25fdmVydCxmcmFnbWVudFNoYWRlcjpzMHQubWVzaHRvb25fZnJhZ30sbWF0Y2FwOnt1bmlmb3JtczpVMXQoW2wwdC5jb21tb24sbDB0LmJ1bXBtYXAsbDB0Lm5vcm1hbG1hcCxsMHQuZGlzcGxhY2VtZW50bWFwLGwwdC5mb2cse21hdGNhcDp7dmFsdWU6bnVsbH19XSksdmVydGV4U2hhZGVyOnMwdC5tZXNobWF0Y2FwX3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0Lm1lc2htYXRjYXBfZnJhZ30scG9pbnRzOnt1bmlmb3JtczpVMXQoW2wwdC5wb2ludHMsbDB0LmZvZ10pLHZlcnRleFNoYWRlcjpzMHQucG9pbnRzX3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0LnBvaW50c19mcmFnfSxkYXNoZWQ6e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuZm9nLHtzY2FsZTp7dmFsdWU6MX0sZGFzaFNpemU6e3ZhbHVlOjF9LHRvdGFsU2l6ZTp7dmFsdWU6Mn19XSksdmVydGV4U2hhZGVyOnMwdC5saW5lZGFzaGVkX3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0LmxpbmVkYXNoZWRfZnJhZ30sZGVwdGg6e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuZGlzcGxhY2VtZW50bWFwXSksdmVydGV4U2hhZGVyOnMwdC5kZXB0aF92ZXJ0LGZyYWdtZW50U2hhZGVyOnMwdC5kZXB0aF9mcmFnfSxub3JtYWw6e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuYnVtcG1hcCxsMHQubm9ybWFsbWFwLGwwdC5kaXNwbGFjZW1lbnRtYXAse29wYWNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjpzMHQubm9ybWFsX3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0Lm5vcm1hbF9mcmFnfSxzcHJpdGU6e3VuaWZvcm1zOlUxdChbbDB0LnNwcml0ZSxsMHQuZm9nXSksdmVydGV4U2hhZGVyOnMwdC5zcHJpdGVfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQuc3ByaXRlX2ZyYWd9LGJhY2tncm91bmQ6e3VuaWZvcm1zOnt1dlRyYW5zZm9ybTp7dmFsdWU6bmV3IGdKdH0sdDJEOnt2YWx1ZTpudWxsfX0sdmVydGV4U2hhZGVyOnMwdC5iYWNrZ3JvdW5kX3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0LmJhY2tncm91bmRfZnJhZ30sY3ViZTp7dW5pZm9ybXM6VTF0KFtsMHQuZW52bWFwLHtvcGFjaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6czB0LmN1YmVfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQuY3ViZV9mcmFnfSxlcXVpcmVjdDp7dW5pZm9ybXM6e3RFcXVpcmVjdDp7dmFsdWU6bnVsbH19LHZlcnRleFNoYWRlcjpzMHQuZXF1aXJlY3RfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQuZXF1aXJlY3RfZnJhZ30sZGlzdGFuY2VSR0JBOnt1bmlmb3JtczpVMXQoW2wwdC5jb21tb24sbDB0LmRpc3BsYWNlbWVudG1hcCx7cmVmZXJlbmNlUG9zaXRpb246e3ZhbHVlOm5ldyBDSnR9LG5lYXJEaXN0YW5jZTp7dmFsdWU6MX0sZmFyRGlzdGFuY2U6e3ZhbHVlOjFlM319XSksdmVydGV4U2hhZGVyOnMwdC5kaXN0YW5jZVJHQkFfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQuZGlzdGFuY2VSR0JBX2ZyYWd9LHNoYWRvdzp7dW5pZm9ybXM6VTF0KFtsMHQubGlnaHRzLGwwdC5mb2cse2NvbG9yOnt2YWx1ZTpuZXcgJFF0KDApfSxvcGFjaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6czB0LnNoYWRvd192ZXJ0LGZyYWdtZW50U2hhZGVyOnMwdC5zaGFkb3dfZnJhZ319O2Z1bmN0aW9uIHUwdCh0LGUsbixpLHIpe2NvbnN0IG89bmV3ICRRdCgwKTtsZXQgYSxzLGw9MCxjPW51bGwsdT0wLGg9bnVsbDtmdW5jdGlvbiBkKHQsZSl7bi5idWZmZXJzLmNvbG9yLnNldENsZWFyKHQucix0LmcsdC5iLGUscil9cmV0dXJue2dldENsZWFyQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gb30sc2V0Q2xlYXJDb2xvcjpmdW5jdGlvbih0LGU9MSl7by5zZXQodCksbD1lLGQobyxsKX0sZ2V0Q2xlYXJBbHBoYTpmdW5jdGlvbigpe3JldHVybiBsfSxzZXRDbGVhckFscGhhOmZ1bmN0aW9uKHQpe2w9dCxkKG8sbCl9LHJlbmRlcjpmdW5jdGlvbiBwKG4scil7bGV0IHA9ITEsZj0hMD09PXIuaXNTY2VuZT9yLmJhY2tncm91bmQ6bnVsbDtmJiZmLmlzVGV4dHVyZSYmKGY9ZS5nZXQoZikpO2NvbnN0IG09dC54cixnPW0uZ2V0U2Vzc2lvbiYmbS5nZXRTZXNzaW9uKCk7ZyYmImFkZGl0aXZlIj09PWcuZW52aXJvbm1lbnRCbGVuZE1vZGUmJihmPW51bGwpLG51bGw9PT1mP2QobyxsKTpmJiZmLmlzQ29sb3ImJihkKGYsMSkscD0hMCksKHQuYXV0b0NsZWFyfHxwKSYmdC5jbGVhcih0LmF1dG9DbGVhckNvbG9yLHQuYXV0b0NsZWFyRGVwdGgsdC5hdXRvQ2xlYXJTdGVuY2lsKSxmJiYoZi5pc0N1YmVUZXh0dXJlfHxmLm1hcHBpbmc9PT1ZS3QpPyh2b2lkIDA9PT1zJiYocz1uZXcgQjF0KG5ldyBGMXQoMSwxLDEpLG5ldyBHMXQoe25hbWU6IkJhY2tncm91bmRDdWJlTWF0ZXJpYWwiLHVuaWZvcm1zOlYxdChjMHQuY3ViZS51bmlmb3JtcyksdmVydGV4U2hhZGVyOmMwdC5jdWJlLnZlcnRleFNoYWRlcixmcmFnbWVudFNoYWRlcjpjMHQuY3ViZS5mcmFnbWVudFNoYWRlcixzaWRlOjEsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITEsZm9nOiExfSkpLHMuZ2VvbWV0cnkuZGVsZXRlQXR0cmlidXRlKCJub3JtYWwiKSxzLmdlb21ldHJ5LmRlbGV0ZUF0dHJpYnV0ZSgidXYiKSxzLm9uQmVmb3JlUmVuZGVyPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLm1hdHJpeFdvcmxkLmNvcHlQb3NpdGlvbihuLm1hdHJpeFdvcmxkKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHMubWF0ZXJpYWwsImVudk1hcCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVuaWZvcm1zLmVudk1hcC52YWx1ZX19KSxpLnVwZGF0ZShzKSkscy5tYXRlcmlhbC51bmlmb3Jtcy5lbnZNYXAudmFsdWU9ZixzLm1hdGVyaWFsLnVuaWZvcm1zLmZsaXBFbnZNYXAudmFsdWU9Zi5pc0N1YmVUZXh0dXJlJiYhMT09PWYuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPy0xOjEsYz09PWYmJnU9PT1mLnZlcnNpb24mJmg9PT10LnRvbmVNYXBwaW5nfHwocy5tYXRlcmlhbC5uZWVkc1VwZGF0ZT0hMCxjPWYsdT1mLnZlcnNpb24saD10LnRvbmVNYXBwaW5nKSxuLnVuc2hpZnQocyxzLmdlb21ldHJ5LHMubWF0ZXJpYWwsMCwwLG51bGwpKTpmJiZmLmlzVGV4dHVyZSYmKHZvaWQgMD09PWEmJihhPW5ldyBCMXQobmV3IGEwdCgyLDIpLG5ldyBHMXQoe25hbWU6IkJhY2tncm91bmRNYXRlcmlhbCIsdW5pZm9ybXM6VjF0KGMwdC5iYWNrZ3JvdW5kLnVuaWZvcm1zKSx2ZXJ0ZXhTaGFkZXI6YzB0LmJhY2tncm91bmQudmVydGV4U2hhZGVyLGZyYWdtZW50U2hhZGVyOmMwdC5iYWNrZ3JvdW5kLmZyYWdtZW50U2hhZGVyLHNpZGU6MCxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMSxmb2c6ITF9KSksYS5nZW9tZXRyeS5kZWxldGVBdHRyaWJ1dGUoIm5vcm1hbCIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLm1hdGVyaWFsLCJtYXAiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51bmlmb3Jtcy50MkQudmFsdWV9fSksaS51cGRhdGUoYSkpLGEubWF0ZXJpYWwudW5pZm9ybXMudDJELnZhbHVlPWYsITA9PT1mLm1hdHJpeEF1dG9VcGRhdGUmJmYudXBkYXRlTWF0cml4KCksYS5tYXRlcmlhbC51bmlmb3Jtcy51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KGYubWF0cml4KSxjPT09ZiYmdT09PWYudmVyc2lvbiYmaD09PXQudG9uZU1hcHBpbmd8fChhLm1hdGVyaWFsLm5lZWRzVXBkYXRlPSEwLGM9Zix1PWYudmVyc2lvbixoPXQudG9uZU1hcHBpbmcpLG4udW5zaGlmdChhLGEuZ2VvbWV0cnksYS5tYXRlcmlhbCwwLDAsbnVsbCkpfX19ZnVuY3Rpb24gaDB0KHQsZSxuLGkpe2NvbnN0IHI9dC5nZXRQYXJhbWV0ZXIoMzQ5MjEpLG89aS5pc1dlYkdMMj9udWxsOmUuZ2V0KCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpLGE9aS5pc1dlYkdMMnx8bnVsbCE9PW8scz17fSxsPWQobnVsbCk7bGV0IGM9bDtmdW5jdGlvbiB1KGUpe3JldHVybiBpLmlzV2ViR0wyP3QuYmluZFZlcnRleEFycmF5KGUpOm8uYmluZFZlcnRleEFycmF5T0VTKGUpfWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGkuaXNXZWJHTDI/dC5kZWxldGVWZXJ0ZXhBcnJheShlKTpvLmRlbGV0ZVZlcnRleEFycmF5T0VTKGUpfWZ1bmN0aW9uIGQodCl7Y29uc3QgZT1bXSxuPVtdLGk9W107Zm9yKGxldCB0PTA7dDxyO3QrKyllW3RdPTAsblt0XT0wLGlbdF09MDtyZXR1cm57Z2VvbWV0cnk6bnVsbCxwcm9ncmFtOm51bGwsd2lyZWZyYW1lOiExLG5ld0F0dHJpYnV0ZXM6ZSxlbmFibGVkQXR0cmlidXRlczpuLGF0dHJpYnV0ZURpdmlzb3JzOmksb2JqZWN0OnQsYXR0cmlidXRlczp7fSxpbmRleDpudWxsfX1mdW5jdGlvbiBwKCl7Y29uc3QgdD1jLm5ld0F0dHJpYnV0ZXM7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXRbZV09MH1mdW5jdGlvbiBmKHQpe20odCwwKX1mdW5jdGlvbiBtKG4scil7Y29uc3Qgbz1jLmVuYWJsZWRBdHRyaWJ1dGVzLGE9Yy5hdHRyaWJ1dGVEaXZpc29ycztjLm5ld0F0dHJpYnV0ZXNbbl09MSwwPT09b1tuXSYmKHQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkobiksb1tuXT0xKSxhW25dIT09ciYmKChpLmlzV2ViR0wyP3Q6ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSlbaS5pc1dlYkdMMj8idmVydGV4QXR0cmliRGl2aXNvciI6InZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRSJdKG4sciksYVtuXT1yKX1mdW5jdGlvbiBnKCl7Y29uc3QgZT1jLm5ld0F0dHJpYnV0ZXMsbj1jLmVuYWJsZWRBdHRyaWJ1dGVzO2ZvcihsZXQgaT0wLHI9bi5sZW5ndGg7aTxyO2krKyluW2ldIT09ZVtpXSYmKHQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGkpLG5baV09MCl9ZnVuY3Rpb24gXyhlLG4scixvLGEscyl7ITAhPT1pLmlzV2ViR0wyfHw1MTI0IT09ciYmNTEyNSE9PXI/dC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGUsbixyLG8sYSxzKTp0LnZlcnRleEF0dHJpYklQb2ludGVyKGUsbixyLGEscyl9ZnVuY3Rpb24geSgpe3YoKSxjIT09bCYmKGM9bCx1KGMub2JqZWN0KSl9ZnVuY3Rpb24gdigpe2wuZ2VvbWV0cnk9bnVsbCxsLnByb2dyYW09bnVsbCxsLndpcmVmcmFtZT0hMX1yZXR1cm57c2V0dXA6ZnVuY3Rpb24gYihyLGwsaCx5LHYpe2xldCBiPSExO2lmKGEpe2NvbnN0IGU9KGZ1bmN0aW9uIHgoZSxuLHIpe2NvbnN0IGE9ITA9PT1yLndpcmVmcmFtZTtsZXQgbD1zW2UuaWRdO3ZvaWQgMD09PWwmJihsPXt9LHNbZS5pZF09bCk7bGV0IGM9bFtuLmlkXTt2b2lkIDA9PT1jJiYoYz17fSxsW24uaWRdPWMpO2xldCB1PWNbYV07cmV0dXJuIHZvaWQgMD09PXUmJih1PWQoKGZ1bmN0aW9uIGgoKXtyZXR1cm4gaS5pc1dlYkdMMj90LmNyZWF0ZVZlcnRleEFycmF5KCk6by5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpfSkoKSksY1thXT11KSx1fSkoeSxoLGwpO2MhPT1lJiYoYz1lLHUoYy5vYmplY3QpKSxiPShmdW5jdGlvbiB3KHQsZSl7Y29uc3Qgbj1jLmF0dHJpYnV0ZXMsaT10LmF0dHJpYnV0ZXM7bGV0IHI9MDtmb3IoY29uc3QgdCBpbiBpKXtjb25zdCBlPW5bdF0sbz1pW3RdO2lmKHZvaWQgMD09PWUpcmV0dXJuITA7aWYoZS5hdHRyaWJ1dGUhPT1vKXJldHVybiEwO2lmKGUuZGF0YSE9PW8uZGF0YSlyZXR1cm4hMDtyKyt9cmV0dXJuIGMuYXR0cmlidXRlc051bSE9PXJ8fGMuaW5kZXghPT1lfSkoeSx2KSxiJiYoZnVuY3Rpb24gUyh0LGUpe2NvbnN0IG49e30saT10LmF0dHJpYnV0ZXM7bGV0IHI9MDtmb3IoY29uc3QgdCBpbiBpKXtjb25zdCBlPWlbdF0sbz17fTtvLmF0dHJpYnV0ZT1lLGUuZGF0YSYmKG8uZGF0YT1lLmRhdGEpLG5bdF09byxyKyt9Yy5hdHRyaWJ1dGVzPW4sYy5hdHRyaWJ1dGVzTnVtPXIsYy5pbmRleD1lfSkoeSx2KX1lbHNle2NvbnN0IHQ9ITA9PT1sLndpcmVmcmFtZTtjLmdlb21ldHJ5PT09eS5pZCYmYy5wcm9ncmFtPT09aC5pZCYmYy53aXJlZnJhbWU9PT10fHwoYy5nZW9tZXRyeT15LmlkLGMucHJvZ3JhbT1oLmlkLGMud2lyZWZyYW1lPXQsYj0hMCl9ITA9PT1yLmlzSW5zdGFuY2VkTWVzaCYmKGI9ITApLG51bGwhPT12JiZuLnVwZGF0ZSh2LDM0OTYzKSxiJiYoKGZ1bmN0aW9uIE0ocixvLGEscyl7aWYoITE9PT1pLmlzV2ViR0wyJiYoci5pc0luc3RhbmNlZE1lc2h8fHMuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSkmJm51bGw9PT1lLmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpKXJldHVybjtwKCk7Y29uc3QgbD1zLmF0dHJpYnV0ZXMsYz1hLmdldEF0dHJpYnV0ZXMoKSx1PW8uZGVmYXVsdEF0dHJpYnV0ZVZhbHVlcztmb3IoY29uc3QgZSBpbiBjKXtjb25zdCBpPWNbZV07aWYoaT49MCl7Y29uc3Qgbz1sW2VdO2lmKHZvaWQgMCE9PW8pe2NvbnN0IGU9by5ub3JtYWxpemVkLHI9by5pdGVtU2l6ZSxhPW4uZ2V0KG8pO2lmKHZvaWQgMD09PWEpY29udGludWU7Y29uc3QgbD1hLmJ1ZmZlcixjPWEudHlwZSx1PWEuYnl0ZXNQZXJFbGVtZW50O2lmKG8uaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSl7Y29uc3Qgbj1vLmRhdGEsYT1uLnN0cmlkZSxoPW8ub2Zmc2V0O24mJm4uaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj8obShpLG4ubWVzaFBlckF0dHJpYnV0ZSksdm9pZCAwPT09cy5fbWF4SW5zdGFuY2VDb3VudCYmKHMuX21heEluc3RhbmNlQ291bnQ9bi5tZXNoUGVyQXR0cmlidXRlKm4uY291bnQpKTpmKGkpLHQuYmluZEJ1ZmZlcigzNDk2MixsKSxfKGkscixjLGUsYSp1LGgqdSl9ZWxzZSBvLmlzSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlPyhtKGksby5tZXNoUGVyQXR0cmlidXRlKSx2b2lkIDA9PT1zLl9tYXhJbnN0YW5jZUNvdW50JiYocy5fbWF4SW5zdGFuY2VDb3VudD1vLm1lc2hQZXJBdHRyaWJ1dGUqby5jb3VudCkpOmYoaSksdC5iaW5kQnVmZmVyKDM0OTYyLGwpLF8oaSxyLGMsZSwwLDApfWVsc2UgaWYoImluc3RhbmNlTWF0cml4Ij09PWUpe2NvbnN0IGU9bi5nZXQoci5pbnN0YW5jZU1hdHJpeCk7aWYodm9pZCAwPT09ZSljb250aW51ZTtjb25zdCBvPWUuYnVmZmVyLGE9ZS50eXBlO20oaSswLDEpLG0oaSsxLDEpLG0oaSsyLDEpLG0oaSszLDEpLHQuYmluZEJ1ZmZlcigzNDk2MixvKSx0LnZlcnRleEF0dHJpYlBvaW50ZXIoaSswLDQsYSwhMSw2NCwwKSx0LnZlcnRleEF0dHJpYlBvaW50ZXIoaSsxLDQsYSwhMSw2NCwxNiksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGkrMiw0LGEsITEsNjQsMzIpLHQudmVydGV4QXR0cmliUG9pbnRlcihpKzMsNCxhLCExLDY0LDQ4KX1lbHNlIGlmKCJpbnN0YW5jZUNvbG9yIj09PWUpe2NvbnN0IGU9bi5nZXQoci5pbnN0YW5jZUNvbG9yKTtpZih2b2lkIDA9PT1lKWNvbnRpbnVlO2NvbnN0IG89ZS5idWZmZXIsYT1lLnR5cGU7bShpLDEpLHQuYmluZEJ1ZmZlcigzNDk2MixvKSx0LnZlcnRleEF0dHJpYlBvaW50ZXIoaSwzLGEsITEsMTIsMCl9ZWxzZSBpZih2b2lkIDAhPT11KXtjb25zdCBuPXVbZV07aWYodm9pZCAwIT09bilzd2l0Y2gobi5sZW5ndGgpe2Nhc2UgMjp0LnZlcnRleEF0dHJpYjJmdihpLG4pO2JyZWFrO2Nhc2UgMzp0LnZlcnRleEF0dHJpYjNmdihpLG4pO2JyZWFrO2Nhc2UgNDp0LnZlcnRleEF0dHJpYjRmdihpLG4pO2JyZWFrO2RlZmF1bHQ6dC52ZXJ0ZXhBdHRyaWIxZnYoaSxuKX19fX1nKCl9KShyLGwsaCx5KSxudWxsIT09diYmdC5iaW5kQnVmZmVyKDM0OTYzLG4uZ2V0KHYpLmJ1ZmZlcikpfSxyZXNldDp5LHJlc2V0RGVmYXVsdFN0YXRlOnYsZGlzcG9zZTpmdW5jdGlvbiB4KCl7eSgpO2Zvcihjb25zdCB0IGluIHMpe2NvbnN0IGU9c1t0XTtmb3IoY29uc3QgdCBpbiBlKXtjb25zdCBuPWVbdF07Zm9yKGNvbnN0IHQgaW4gbiloKG5bdF0ub2JqZWN0KSxkZWxldGUgblt0XTtkZWxldGUgZVt0XX1kZWxldGUgc1t0XX19LHJlbGVhc2VTdGF0ZXNPZkdlb21ldHJ5OmZ1bmN0aW9uIHcodCl7aWYodm9pZCAwPT09c1t0LmlkXSlyZXR1cm47Y29uc3QgZT1zW3QuaWRdO2Zvcihjb25zdCB0IGluIGUpe2NvbnN0IG49ZVt0XTtmb3IoY29uc3QgdCBpbiBuKWgoblt0XS5vYmplY3QpLGRlbGV0ZSBuW3RdO2RlbGV0ZSBlW3RdfWRlbGV0ZSBzW3QuaWRdfSxyZWxlYXNlU3RhdGVzT2ZQcm9ncmFtOmZ1bmN0aW9uIFModCl7Zm9yKGNvbnN0IGUgaW4gcyl7Y29uc3Qgbj1zW2VdO2lmKHZvaWQgMD09PW5bdC5pZF0pY29udGludWU7Y29uc3QgaT1uW3QuaWRdO2Zvcihjb25zdCB0IGluIGkpaChpW3RdLm9iamVjdCksZGVsZXRlIGlbdF07ZGVsZXRlIG5bdC5pZF19fSxpbml0QXR0cmlidXRlczpwLGVuYWJsZUF0dHJpYnV0ZTpmLGRpc2FibGVVbnVzZWRBdHRyaWJ1dGVzOmd9fWZ1bmN0aW9uIGQwdCh0LGUsbixpKXtjb25zdCByPWkuaXNXZWJHTDI7bGV0IG87dGhpcy5zZXRNb2RlPWZ1bmN0aW9uIGEodCl7bz10fSx0aGlzLnJlbmRlcj1mdW5jdGlvbiBzKGUsaSl7dC5kcmF3QXJyYXlzKG8sZSxpKSxuLnVwZGF0ZShpLG8sMSl9LHRoaXMucmVuZGVySW5zdGFuY2VzPWZ1bmN0aW9uIGwoaSxhLHMpe2lmKDA9PT1zKXJldHVybjtsZXQgbCxjO2lmKHIpbD10LGM9ImRyYXdBcnJheXNJbnN0YW5jZWQiO2Vsc2UgaWYobD1lLmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpLGM9ImRyYXdBcnJheXNJbnN0YW5jZWRBTkdMRSIsbnVsbD09PWwpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xCdWZmZXJSZW5kZXJlcjogdXNpbmcgVEhSRUUuSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkgYnV0IGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgZXh0ZW5zaW9uIEFOR0xFX2luc3RhbmNlZF9hcnJheXMuIik7bFtjXShvLGksYSxzKSxuLnVwZGF0ZShhLG8scyl9fWZ1bmN0aW9uIHAwdCh0LGUsbil7bGV0IGk7ZnVuY3Rpb24gcihlKXtpZigiaGlnaHAiPT09ZSl7aWYodC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzMsMzYzMzgpLnByZWNpc2lvbj4wJiZ0LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMiwzNjMzOCkucHJlY2lzaW9uPjApcmV0dXJuImhpZ2hwIjtlPSJtZWRpdW1wIn1yZXR1cm4ibWVkaXVtcCI9PT1lJiZ0LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMywzNjMzNykucHJlY2lzaW9uPjAmJnQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KDM1NjMyLDM2MzM3KS5wcmVjaXNpb24+MD8ibWVkaXVtcCI6Imxvd3AifWNvbnN0IG89InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0JiZ0IGluc3RhbmNlb2YgV2ViR0wyUmVuZGVyaW5nQ29udGV4dHx8InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJHTDJDb21wdXRlUmVuZGVyaW5nQ29udGV4dCYmdCBpbnN0YW5jZW9mIFdlYkdMMkNvbXB1dGVSZW5kZXJpbmdDb250ZXh0O2xldCBhPXZvaWQgMCE9PW4ucHJlY2lzaW9uP24ucHJlY2lzaW9uOiJoaWdocCI7Y29uc3Qgcz1yKGEpO3MhPT1hJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiIsYSwibm90IHN1cHBvcnRlZCwgdXNpbmciLHMsImluc3RlYWQuIiksYT1zKTtjb25zdCBsPW98fGUuaGFzKCJXRUJHTF9kcmF3X2J1ZmZlcnMiKSxjPSEwPT09bi5sb2dhcml0aG1pY0RlcHRoQnVmZmVyLHU9dC5nZXRQYXJhbWV0ZXIoMzQ5MzApLGg9dC5nZXRQYXJhbWV0ZXIoMzU2NjApLGQ9dC5nZXRQYXJhbWV0ZXIoMzM3OSkscD10LmdldFBhcmFtZXRlcigzNDA3NiksZj10LmdldFBhcmFtZXRlcigzNDkyMSksbT10LmdldFBhcmFtZXRlcigzNjM0NyksZz10LmdldFBhcmFtZXRlcigzNjM0OCksXz10LmdldFBhcmFtZXRlcigzNjM0OSkseT1oPjAsdj1vfHxlLmhhcygiT0VTX3RleHR1cmVfZmxvYXQiKTtyZXR1cm57aXNXZWJHTDI6byxkcmF3QnVmZmVyczpsLGdldE1heEFuaXNvdHJvcHk6ZnVuY3Rpb24gYigpe2lmKHZvaWQgMCE9PWkpcmV0dXJuIGk7aWYoITA9PT1lLmhhcygiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpe2NvbnN0IG49ZS5nZXQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO2k9dC5nZXRQYXJhbWV0ZXIobi5NQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpfWVsc2UgaT0wO3JldHVybiBpfSxnZXRNYXhQcmVjaXNpb246cixwcmVjaXNpb246YSxsb2dhcml0aG1pY0RlcHRoQnVmZmVyOmMsbWF4VGV4dHVyZXM6dSxtYXhWZXJ0ZXhUZXh0dXJlczpoLG1heFRleHR1cmVTaXplOmQsbWF4Q3ViZW1hcFNpemU6cCxtYXhBdHRyaWJ1dGVzOmYsbWF4VmVydGV4VW5pZm9ybXM6bSxtYXhWYXJ5aW5nczpnLG1heEZyYWdtZW50VW5pZm9ybXM6Xyx2ZXJ0ZXhUZXh0dXJlczp5LGZsb2F0RnJhZ21lbnRUZXh0dXJlczp2LGZsb2F0VmVydGV4VGV4dHVyZXM6eSYmdixtYXhTYW1wbGVzOm8/dC5nZXRQYXJhbWV0ZXIoMzYxODMpOjB9fWZ1bmN0aW9uIGYwdCh0KXtjb25zdCBlPXRoaXM7bGV0IG49bnVsbCxpPTAscj0hMSxvPSExO2NvbnN0IGE9bmV3IHQwdCxzPW5ldyBnSnQsbD17dmFsdWU6bnVsbCxuZWVkc1VwZGF0ZTohMX07ZnVuY3Rpb24gYygpe2wudmFsdWUhPT1uJiYobC52YWx1ZT1uLGwubmVlZHNVcGRhdGU9aT4wKSxlLm51bVBsYW5lcz1pLGUubnVtSW50ZXJzZWN0aW9uPTB9ZnVuY3Rpb24gdSh0LG4saSxyKXtjb25zdCBvPW51bGwhPT10P3QubGVuZ3RoOjA7bGV0IGM9bnVsbDtpZigwIT09byl7aWYoYz1sLnZhbHVlLCEwIT09cnx8bnVsbD09PWMpe2NvbnN0IGU9aSs0Km8scj1uLm1hdHJpeFdvcmxkSW52ZXJzZTtzLmdldE5vcm1hbE1hdHJpeChyKSwobnVsbD09PWN8fGMubGVuZ3RoPGUpJiYoYz1uZXcgRmxvYXQzMkFycmF5KGUpKTtmb3IobGV0IGU9MCxuPWk7ZSE9PW87KytlLG4rPTQpYS5jb3B5KHRbZV0pLmFwcGx5TWF0cml4NChyLHMpLGEubm9ybWFsLnRvQXJyYXkoYyxuKSxjW24rM109YS5jb25zdGFudH1sLnZhbHVlPWMsbC5uZWVkc1VwZGF0ZT0hMH1yZXR1cm4gZS5udW1QbGFuZXM9byxlLm51bUludGVyc2VjdGlvbj0wLGN9dGhpcy51bmlmb3JtPWwsdGhpcy5udW1QbGFuZXM9MCx0aGlzLm51bUludGVyc2VjdGlvbj0wLHRoaXMuaW5pdD1mdW5jdGlvbih0LGUsbyl7Y29uc3QgYT0wIT09dC5sZW5ndGh8fGV8fDAhPT1pfHxyO3JldHVybiByPWUsbj11KHQsbywwKSxpPXQubGVuZ3RoLGF9LHRoaXMuYmVnaW5TaGFkb3dzPWZ1bmN0aW9uKCl7bz0hMCx1KG51bGwpfSx0aGlzLmVuZFNoYWRvd3M9ZnVuY3Rpb24oKXtvPSExLGMoKX0sdGhpcy5zZXRTdGF0ZT1mdW5jdGlvbihlLGEscyl7Y29uc3QgaD1lLmNsaXBwaW5nUGxhbmVzLGQ9ZS5jbGlwSW50ZXJzZWN0aW9uLHA9ZS5jbGlwU2hhZG93cyxmPXQuZ2V0KGUpO2lmKCFyfHxudWxsPT09aHx8MD09PWgubGVuZ3RofHxvJiYhcClvP3UobnVsbCk6YygpO2Vsc2V7Y29uc3QgdD1vPzA6aSxlPTQqdDtsZXQgcj1mLmNsaXBwaW5nU3RhdGV8fG51bGw7bC52YWx1ZT1yLHI9dShoLGEsZSxzKTtmb3IobGV0IHQ9MDt0IT09ZTsrK3Qpclt0XT1uW3RdO2YuY2xpcHBpbmdTdGF0ZT1yLHRoaXMubnVtSW50ZXJzZWN0aW9uPWQ/dGhpcy5udW1QbGFuZXM6MCx0aGlzLm51bVBsYW5lcys9dH19fWZ1bmN0aW9uIG0wdCh0KXtsZXQgZT1uZXcgV2Vha01hcDtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGU9PT1XS3Q/dC5tYXBwaW5nPWpLdDplPT09cUt0JiYodC5tYXBwaW5nPUdLdCksdH1mdW5jdGlvbiBpKHQpe2NvbnN0IG49dC50YXJnZXQ7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixpKTtjb25zdCByPWUuZ2V0KG4pO3ZvaWQgMCE9PXImJihlLmRlbGV0ZShuKSxyLmRpc3Bvc2UoKSl9cmV0dXJue2dldDpmdW5jdGlvbiByKG8pe2lmKG8mJm8uaXNUZXh0dXJlJiYhMT09PW8uaXNSZW5kZXJUYXJnZXRUZXh0dXJlKXtjb25zdCByPW8ubWFwcGluZztpZihyPT09V0t0fHxyPT09cUt0KXtpZihlLmhhcyhvKSlyZXR1cm4gbihlLmdldChvKS50ZXh0dXJlLG8ubWFwcGluZyk7e2NvbnN0IHI9by5pbWFnZTtpZihyJiZyLmhlaWdodD4wKXtjb25zdCBhPXQuZ2V0UmVuZGVyVGFyZ2V0KCkscz1uZXcgSzF0KHIuaGVpZ2h0LzIpO3JldHVybiBzLmZyb21FcXVpcmVjdGFuZ3VsYXJUZXh0dXJlKHQsbyksZS5zZXQobyxzKSx0LnNldFJlbmRlclRhcmdldChhKSxvLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGkpLG4ocy50ZXh0dXJlLG8ubWFwcGluZyl9cmV0dXJuIG51bGx9fX1yZXR1cm4gb30sZGlzcG9zZTpmdW5jdGlvbiBvKCl7ZT1uZXcgV2Vha01hcH19fWMwdC5waHlzaWNhbD17dW5pZm9ybXM6VTF0KFtjMHQuc3RhbmRhcmQudW5pZm9ybXMse2NsZWFyY29hdDp7dmFsdWU6MH0sY2xlYXJjb2F0TWFwOnt2YWx1ZTpudWxsfSxjbGVhcmNvYXRSb3VnaG5lc3M6e3ZhbHVlOjB9LGNsZWFyY29hdFJvdWdobmVzc01hcDp7dmFsdWU6bnVsbH0sY2xlYXJjb2F0Tm9ybWFsU2NhbGU6e3ZhbHVlOm5ldyBtSnQoMSwxKX0sY2xlYXJjb2F0Tm9ybWFsTWFwOnt2YWx1ZTpudWxsfSxzaGVlbjp7dmFsdWU6bmV3ICRRdCgwKX0sdHJhbnNtaXNzaW9uOnt2YWx1ZTowfSx0cmFuc21pc3Npb25NYXA6e3ZhbHVlOm51bGx9LHRyYW5zbWlzc2lvblNhbXBsZXJTaXplOnt2YWx1ZTpuZXcgbUp0fSx0cmFuc21pc3Npb25TYW1wbGVyTWFwOnt2YWx1ZTpudWxsfSx0aGlja25lc3M6e3ZhbHVlOjB9LHRoaWNrbmVzc01hcDp7dmFsdWU6bnVsbH0sYXR0ZW51YXRpb25EaXN0YW5jZTp7dmFsdWU6MH0sYXR0ZW51YXRpb25UaW50Ont2YWx1ZTpuZXcgJFF0KDApfSxzcGVjdWxhckludGVuc2l0eTp7dmFsdWU6MH0sc3BlY3VsYXJJbnRlbnNpdHlNYXA6e3ZhbHVlOm51bGx9LHNwZWN1bGFyVGludDp7dmFsdWU6bmV3ICRRdCgxLDEsMSl9LHNwZWN1bGFyVGludE1hcDp7dmFsdWU6bnVsbH19XSksdmVydGV4U2hhZGVyOnMwdC5tZXNocGh5c2ljYWxfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQubWVzaHBoeXNpY2FsX2ZyYWd9O2NsYXNzIGcwdCBleHRlbmRzIFcxdHtjb25zdHJ1Y3Rvcih0PS0xLGU9MSxuPTEsaT0tMSxyPS4xLG89MmUzKXtzdXBlcigpLHRoaXMudHlwZT0iT3J0aG9ncmFwaGljQ2FtZXJhIix0aGlzLnpvb209MSx0aGlzLnZpZXc9bnVsbCx0aGlzLmxlZnQ9dCx0aGlzLnJpZ2h0PWUsdGhpcy50b3A9bix0aGlzLmJvdHRvbT1pLHRoaXMubmVhcj1yLHRoaXMuZmFyPW8sdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksdGhpcy5sZWZ0PXQubGVmdCx0aGlzLnJpZ2h0PXQucmlnaHQsdGhpcy50b3A9dC50b3AsdGhpcy5ib3R0b209dC5ib3R0b20sdGhpcy5uZWFyPXQubmVhcix0aGlzLmZhcj10LmZhcix0aGlzLnpvb209dC56b29tLHRoaXMudmlldz1udWxsPT09dC52aWV3P251bGw6T2JqZWN0LmFzc2lnbih7fSx0LnZpZXcpLHRoaXN9c2V0Vmlld09mZnNldCh0LGUsbixpLHIsbyl7bnVsbD09PXRoaXMudmlldyYmKHRoaXMudmlldz17ZW5hYmxlZDohMCxmdWxsV2lkdGg6MSxmdWxsSGVpZ2h0OjEsb2Zmc2V0WDowLG9mZnNldFk6MCx3aWR0aDoxLGhlaWdodDoxfSksdGhpcy52aWV3LmVuYWJsZWQ9ITAsdGhpcy52aWV3LmZ1bGxXaWR0aD10LHRoaXMudmlldy5mdWxsSGVpZ2h0PWUsdGhpcy52aWV3Lm9mZnNldFg9bix0aGlzLnZpZXcub2Zmc2V0WT1pLHRoaXMudmlldy53aWR0aD1yLHRoaXMudmlldy5oZWlnaHQ9byx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1jbGVhclZpZXdPZmZzZXQoKXtudWxsIT09dGhpcy52aWV3JiYodGhpcy52aWV3LmVuYWJsZWQ9ITEpLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfXVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKXtjb25zdCB0PSh0aGlzLnJpZ2h0LXRoaXMubGVmdCkvKDIqdGhpcy56b29tKSxlPSh0aGlzLnRvcC10aGlzLmJvdHRvbSkvKDIqdGhpcy56b29tKSxuPSh0aGlzLnJpZ2h0K3RoaXMubGVmdCkvMixpPSh0aGlzLnRvcCt0aGlzLmJvdHRvbSkvMjtsZXQgcj1uLXQsbz1uK3QsYT1pK2Uscz1pLWU7aWYobnVsbCE9PXRoaXMudmlldyYmdGhpcy52aWV3LmVuYWJsZWQpe2NvbnN0IHQ9KHRoaXMucmlnaHQtdGhpcy5sZWZ0KS90aGlzLnZpZXcuZnVsbFdpZHRoL3RoaXMuem9vbSxlPSh0aGlzLnRvcC10aGlzLmJvdHRvbSkvdGhpcy52aWV3LmZ1bGxIZWlnaHQvdGhpcy56b29tO3IrPXQqdGhpcy52aWV3Lm9mZnNldFgsbz1yK3QqdGhpcy52aWV3LndpZHRoLGEtPWUqdGhpcy52aWV3Lm9mZnNldFkscz1hLWUqdGhpcy52aWV3LmhlaWdodH10aGlzLnByb2plY3Rpb25NYXRyaXgubWFrZU9ydGhvZ3JhcGhpYyhyLG8sYSxzLHRoaXMubmVhcix0aGlzLmZhciksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMucHJvamVjdGlvbk1hdHJpeCkuaW52ZXJ0KCl9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC56b29tPXRoaXMuem9vbSxlLm9iamVjdC5sZWZ0PXRoaXMubGVmdCxlLm9iamVjdC5yaWdodD10aGlzLnJpZ2h0LGUub2JqZWN0LnRvcD10aGlzLnRvcCxlLm9iamVjdC5ib3R0b209dGhpcy5ib3R0b20sZS5vYmplY3QubmVhcj10aGlzLm5lYXIsZS5vYmplY3QuZmFyPXRoaXMuZmFyLG51bGwhPT10aGlzLnZpZXcmJihlLm9iamVjdC52aWV3PU9iamVjdC5hc3NpZ24oe30sdGhpcy52aWV3KSksZX19ZzB0LnByb3RvdHlwZS5pc09ydGhvZ3JhcGhpY0NhbWVyYT0hMDtjbGFzcyBfMHQgZXh0ZW5kcyBHMXR7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy50eXBlPSJSYXdTaGFkZXJNYXRlcmlhbCJ9fV8wdC5wcm90b3R5cGUuaXNSYXdTaGFkZXJNYXRlcmlhbD0hMDtjb25zdCB5MHQ9TWF0aC5wb3coMiw4KSx2MHQ9Wy4xMjUsLjIxNSwuMzUsLjQ0NiwuNTI2LC41ODJdLGIwdD01K3YwdC5sZW5ndGgseDB0PXtbTlp0XTowLFtJWnRdOjEsW09adF06Mixbelp0XTozLFtEWnRdOjQsW0JadF06NSxbUlp0XTo2fSx3MHQ9bmV3IEtRdCh7c2lkZToxLGRlcHRoV3JpdGU6ITEsZGVwdGhUZXN0OiExfSksUzB0PW5ldyBCMXQobmV3IEYxdCx3MHQpLE0wdD1uZXcgZzB0LHtfbG9kUGxhbmVzOkUwdCxfc2l6ZUxvZHM6VDB0LF9zaWdtYXM6QzB0fT16MHQoKSxBMHQ9bmV3ICRRdDtsZXQgazB0PW51bGw7Y29uc3QgTDB0PSgxK01hdGguc3FydCg1KSkvMixQMHQ9MS9MMHQsTjB0PVtuZXcgQ0p0KDEsMSwxKSxuZXcgQ0p0KC0xLDEsMSksbmV3IENKdCgxLDEsLTEpLG5ldyBDSnQoLTEsMSwtMSksbmV3IENKdCgwLEwwdCxQMHQpLG5ldyBDSnQoMCxMMHQsLVAwdCksbmV3IENKdChQMHQsMCxMMHQpLG5ldyBDSnQoLVAwdCwwLEwwdCksbmV3IENKdChMMHQsUDB0LDApLG5ldyBDSnQoLUwwdCxQMHQsMCldO2Z1bmN0aW9uIEkwdCh0KXtjb25zdCBlPU1hdGgubWF4KHQucix0LmcsdC5iKSxuPU1hdGgubWluKE1hdGgubWF4KE1hdGguY2VpbChNYXRoLmxvZzIoZSkpLC0xMjgpLDEyNyk7cmV0dXJuIHQubXVsdGlwbHlTY2FsYXIoTWF0aC5wb3coMiwtbikpLChuKzEyOCkvMjU1fWNsYXNzIFIwdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9yZW5kZXJlcj10LHRoaXMuX3BpbmdQb25nUmVuZGVyVGFyZ2V0PW51bGwsdGhpcy5fYmx1ck1hdGVyaWFsPShmdW5jdGlvbiBlKHQpe2NvbnN0IGU9bmV3IEZsb2F0MzJBcnJheSh0KSxuPW5ldyBDSnQoMCwxLDApO3JldHVybiBuZXcgXzB0KHtuYW1lOiJTcGhlcmljYWxHYXVzc2lhbkJsdXIiLGRlZmluZXM6e246dH0sdW5pZm9ybXM6e2Vudk1hcDp7dmFsdWU6bnVsbH0sc2FtcGxlczp7dmFsdWU6MX0sd2VpZ2h0czp7dmFsdWU6ZX0sbGF0aXR1ZGluYWw6e3ZhbHVlOiExfSxkVGhldGE6e3ZhbHVlOjB9LG1pcEludDp7dmFsdWU6MH0scG9sZUF4aXM6e3ZhbHVlOm59LGlucHV0RW5jb2Rpbmc6e3ZhbHVlOngwdFszZTNdfSxvdXRwdXRFbmNvZGluZzp7dmFsdWU6eDB0WzNlM119fSx2ZXJ0ZXhTaGFkZXI6IlxuXG5cdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0cHJlY2lzaW9uIG1lZGl1bXAgaW50O1xuXG5cdFx0YXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5cdFx0YXR0cmlidXRlIHZlYzIgdXY7XG5cdFx0YXR0cmlidXRlIGZsb2F0IGZhY2VJbmRleDtcblxuXHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0Ly8gUkggY29vcmRpbmF0ZSBzeXN0ZW07IFBNUkVNIGZhY2UtaW5kZXhpbmcgY29udmVudGlvblxuXHRcdHZlYzMgZ2V0RGlyZWN0aW9uKCB2ZWMyIHV2LCBmbG9hdCBmYWNlICkge1xuXG5cdFx0XHR1diA9IDIuMCAqIHV2IC0gMS4wO1xuXG5cdFx0XHR2ZWMzIGRpcmVjdGlvbiA9IHZlYzMoIHV2LCAxLjAgKTtcblxuXHRcdFx0aWYgKCBmYWNlID09IDAuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24uenl4OyAvLyAoIDEsIHYsIHUgKSBwb3MgeFxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDEuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24ueHp5O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHogKj0gLTEuMDsgLy8gKCAtdSwgMSwgLXYgKSBwb3MgeVxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDIuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24ueCAqPSAtMS4wOyAvLyAoIC11LCB2LCAxICkgcG9zIHpcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAzLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDtcblx0XHRcdFx0ZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLTEsIHYsIC11ICkgbmVnIHhcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSA0LjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnh6eTtcblx0XHRcdFx0ZGlyZWN0aW9uLnh5ICo9IC0xLjA7IC8vICggLXUsIC0xLCB2ICkgbmVnIHlcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSA1LjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uLnogKj0gLTEuMDsgLy8gKCB1LCB2LCAtMSApIG5lZyB6XG5cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGRpcmVjdGlvbjtcblxuXHRcdH1cblxuXHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0dk91dHB1dERpcmVjdGlvbiA9IGdldERpcmVjdGlvbiggdXYsIGZhY2VJbmRleCApO1xuXHRcdFx0Z2xfUG9zaXRpb24gPSB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7XG5cblx0XHR9XG5cdCIsZnJhZ21lbnRTaGFkZXI6IlxuXG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdFx0dmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247XG5cblx0XHRcdHVuaWZvcm0gc2FtcGxlcjJEIGVudk1hcDtcblx0XHRcdHVuaWZvcm0gaW50IHNhbXBsZXM7XG5cdFx0XHR1bmlmb3JtIGZsb2F0IHdlaWdodHNbIG4gXTtcblx0XHRcdHVuaWZvcm0gYm9vbCBsYXRpdHVkaW5hbDtcblx0XHRcdHVuaWZvcm0gZmxvYXQgZFRoZXRhO1xuXHRcdFx0dW5pZm9ybSBmbG9hdCBtaXBJbnQ7XG5cdFx0XHR1bmlmb3JtIHZlYzMgcG9sZUF4aXM7XG5cblx0XHRcdFxuXG5cdFx0dW5pZm9ybSBpbnQgaW5wdXRFbmNvZGluZztcblx0XHR1bmlmb3JtIGludCBvdXRwdXRFbmNvZGluZztcblxuXHRcdCNpbmNsdWRlIDxlbmNvZGluZ3NfcGFyc19mcmFnbWVudD5cblxuXHRcdHZlYzQgaW5wdXRUZXhlbFRvTGluZWFyKCB2ZWM0IHZhbHVlICkge1xuXG5cdFx0XHRpZiAoIGlucHV0RW5jb2RpbmcgPT0gMCApIHtcblxuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMSApIHtcblxuXHRcdFx0XHRyZXR1cm4gc1JHQlRvTGluZWFyKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDIgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQkVUb0xpbmVhciggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAzICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JNVG9MaW5lYXIoIHZhbHVlLCA3LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSA0ICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JNVG9MaW5lYXIoIHZhbHVlLCAxNi4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gNSApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCRFRvTGluZWFyKCB2YWx1ZSwgMjU2LjAgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRyZXR1cm4gR2FtbWFUb0xpbmVhciggdmFsdWUsIDIuMiApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHR2ZWM0IGxpbmVhclRvT3V0cHV0VGV4ZWwoIHZlYzQgdmFsdWUgKSB7XG5cblx0XHRcdGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMCApIHtcblxuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDEgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvc1JHQiggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMiApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JFKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAzICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQk0oIHZhbHVlLCA3LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gNCApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JNKCB2YWx1ZSwgMTYuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSA1ICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQkQoIHZhbHVlLCAyNTYuMCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb0dhbW1hKCB2YWx1ZSwgMi4yICk7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdHZlYzQgZW52TWFwVGV4ZWxUb0xpbmVhciggdmVjNCBjb2xvciApIHtcblxuXHRcdFx0cmV0dXJuIGlucHV0VGV4ZWxUb0xpbmVhciggY29sb3IgKTtcblxuXHRcdH1cblx0XG5cblx0XHRcdCNkZWZpbmUgRU5WTUFQX1RZUEVfQ1VCRV9VVlxuXHRcdFx0I2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cblxuXHRcdFx0dmVjMyBnZXRTYW1wbGUoIGZsb2F0IHRoZXRhLCB2ZWMzIGF4aXMgKSB7XG5cblx0XHRcdFx0ZmxvYXQgY29zVGhldGEgPSBjb3MoIHRoZXRhICk7XG5cdFx0XHRcdC8vIFJvZHJpZ3VlcycgYXhpcy1hbmdsZSByb3RhdGlvblxuXHRcdFx0XHR2ZWMzIHNhbXBsZURpcmVjdGlvbiA9IHZPdXRwdXREaXJlY3Rpb24gKiBjb3NUaGV0YVxuXHRcdFx0XHRcdCsgY3Jvc3MoIGF4aXMsIHZPdXRwdXREaXJlY3Rpb24gKSAqIHNpbiggdGhldGEgKVxuXHRcdFx0XHRcdCsgYXhpcyAqIGRvdCggYXhpcywgdk91dHB1dERpcmVjdGlvbiApICogKCAxLjAgLSBjb3NUaGV0YSApO1xuXG5cdFx0XHRcdHJldHVybiBiaWxpbmVhckN1YmVVViggZW52TWFwLCBzYW1wbGVEaXJlY3Rpb24sIG1pcEludCApO1xuXG5cdFx0XHR9XG5cblx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHR2ZWMzIGF4aXMgPSBsYXRpdHVkaW5hbCA/IHBvbGVBeGlzIDogY3Jvc3MoIHBvbGVBeGlzLCB2T3V0cHV0RGlyZWN0aW9uICk7XG5cblx0XHRcdFx0aWYgKCBhbGwoIGVxdWFsKCBheGlzLCB2ZWMzKCAwLjAgKSApICkgKSB7XG5cblx0XHRcdFx0XHRheGlzID0gdmVjMyggdk91dHB1dERpcmVjdGlvbi56LCAwLjAsIC0gdk91dHB1dERpcmVjdGlvbi54ICk7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGF4aXMgPSBub3JtYWxpemUoIGF4aXMgKTtcblxuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCAwLjAsIDAuMCwgMC4wLCAxLjAgKTtcblx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyAwIF0gKiBnZXRTYW1wbGUoIDAuMCwgYXhpcyApO1xuXG5cdFx0XHRcdGZvciAoIGludCBpID0gMTsgaSA8IG47IGkrKyApIHtcblxuXHRcdFx0XHRcdGlmICggaSA+PSBzYW1wbGVzICkge1xuXG5cdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGZsb2F0IHRoZXRhID0gZFRoZXRhICogZmxvYXQoIGkgKTtcblx0XHRcdFx0XHRnbF9GcmFnQ29sb3IucmdiICs9IHdlaWdodHNbIGkgXSAqIGdldFNhbXBsZSggLTEuMCAqIHRoZXRhLCBheGlzICk7XG5cdFx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyBpIF0gKiBnZXRTYW1wbGUoIHRoZXRhLCBheGlzICk7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IGxpbmVhclRvT3V0cHV0VGV4ZWwoIGdsX0ZyYWdDb2xvciApO1xuXG5cdFx0XHR9XG5cdFx0IixibGVuZGluZzowLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExfSl9KSgyMCksdGhpcy5fZXF1aXJlY3RTaGFkZXI9bnVsbCx0aGlzLl9jdWJlbWFwU2hhZGVyPW51bGwsdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2JsdXJNYXRlcmlhbCl9ZnJvbVNjZW5lKHQsZT0wLG49LjEsaT0xMDApe2swdD10aGlzLl9yZW5kZXJlci5nZXRSZW5kZXJUYXJnZXQoKTtjb25zdCByPXRoaXMuX2FsbG9jYXRlVGFyZ2V0cygpO3JldHVybiB0aGlzLl9zY2VuZVRvQ3ViZVVWKHQsbixpLHIpLGU+MCYmdGhpcy5fYmx1cihyLDAsMCxlKSx0aGlzLl9hcHBseVBNUkVNKHIpLHRoaXMuX2NsZWFudXAocikscn1mcm9tRXF1aXJlY3Rhbmd1bGFyKHQpe3JldHVybiB0aGlzLl9mcm9tVGV4dHVyZSh0KX1mcm9tQ3ViZW1hcCh0KXtyZXR1cm4gdGhpcy5fZnJvbVRleHR1cmUodCl9Y29tcGlsZUN1YmVtYXBTaGFkZXIoKXtudWxsPT09dGhpcy5fY3ViZW1hcFNoYWRlciYmKHRoaXMuX2N1YmVtYXBTaGFkZXI9RjB0KCksdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2N1YmVtYXBTaGFkZXIpKX1jb21waWxlRXF1aXJlY3Rhbmd1bGFyU2hhZGVyKCl7bnVsbD09PXRoaXMuX2VxdWlyZWN0U2hhZGVyJiYodGhpcy5fZXF1aXJlY3RTaGFkZXI9SDB0KCksdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2VxdWlyZWN0U2hhZGVyKSl9ZGlzcG9zZSgpe3RoaXMuX2JsdXJNYXRlcmlhbC5kaXNwb3NlKCksbnVsbCE9PXRoaXMuX2N1YmVtYXBTaGFkZXImJnRoaXMuX2N1YmVtYXBTaGFkZXIuZGlzcG9zZSgpLG51bGwhPT10aGlzLl9lcXVpcmVjdFNoYWRlciYmdGhpcy5fZXF1aXJlY3RTaGFkZXIuZGlzcG9zZSgpO2ZvcihsZXQgdD0wO3Q8RTB0Lmxlbmd0aDt0KyspRTB0W3RdLmRpc3Bvc2UoKX1fY2xlYW51cCh0KXt0aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldC5kaXNwb3NlKCksdGhpcy5fcmVuZGVyZXIuc2V0UmVuZGVyVGFyZ2V0KGswdCksdC5zY2lzc29yVGVzdD0hMSxCMHQodCwwLDAsdC53aWR0aCx0LmhlaWdodCl9X2Zyb21UZXh0dXJlKHQpe2swdD10aGlzLl9yZW5kZXJlci5nZXRSZW5kZXJUYXJnZXQoKTtjb25zdCBlPXRoaXMuX2FsbG9jYXRlVGFyZ2V0cyh0KTtyZXR1cm4gdGhpcy5fdGV4dHVyZVRvQ3ViZVVWKHQsZSksdGhpcy5fYXBwbHlQTVJFTShlKSx0aGlzLl9jbGVhbnVwKGUpLGV9X2FsbG9jYXRlVGFyZ2V0cyh0KXtjb25zdCBlPXttYWdGaWx0ZXI6Skt0LG1pbkZpbHRlcjpKS3QsZ2VuZXJhdGVNaXBtYXBzOiExLHR5cGU6clp0LGZvcm1hdDoxMDIzLGVuY29kaW5nOk8wdCh0KT90LmVuY29kaW5nOk9adCxkZXB0aEJ1ZmZlcjohMX0sbj1EMHQoZSk7cmV0dXJuIG4uZGVwdGhCdWZmZXI9IXQsdGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ9RDB0KGUpLG59X2NvbXBpbGVNYXRlcmlhbCh0KXtjb25zdCBlPW5ldyBCMXQoRTB0WzBdLHQpO3RoaXMuX3JlbmRlcmVyLmNvbXBpbGUoZSxNMHQpfV9zY2VuZVRvQ3ViZVVWKHQsZSxuLGkpe2NvbnN0IHI9bmV3IHExdCg5MCwxLGUsbiksbz1bMSwtMSwxLDEsMSwxXSxhPVsxLDEsMSwtMSwtMSwtMV0scz10aGlzLl9yZW5kZXJlcixsPXMuYXV0b0NsZWFyLGM9cy5vdXRwdXRFbmNvZGluZyx1PXMudG9uZU1hcHBpbmc7cy5nZXRDbGVhckNvbG9yKEEwdCkscy50b25lTWFwcGluZz0wLHMub3V0cHV0RW5jb2Rpbmc9Tlp0LHMuYXV0b0NsZWFyPSExO2xldCBoPSExO2NvbnN0IGQ9dC5iYWNrZ3JvdW5kO2lmKGQpe2lmKGQuaXNDb2xvcil7dzB0LmNvbG9yLmNvcHkoZCkuY29udmVydFNSR0JUb0xpbmVhcigpLHQuYmFja2dyb3VuZD1udWxsO2NvbnN0IGU9STB0KHcwdC5jb2xvcik7dzB0Lm9wYWNpdHk9ZSxoPSEwfX1lbHNle3cwdC5jb2xvci5jb3B5KEEwdCkuY29udmVydFNSR0JUb0xpbmVhcigpO2NvbnN0IHQ9STB0KHcwdC5jb2xvcik7dzB0Lm9wYWNpdHk9dCxoPSEwfWZvcihsZXQgZT0wO2U8NjtlKyspe2NvbnN0IG49ZSUzOzA9PW4/KHIudXAuc2V0KDAsb1tlXSwwKSxyLmxvb2tBdChhW2VdLDAsMCkpOjE9PW4/KHIudXAuc2V0KDAsMCxvW2VdKSxyLmxvb2tBdCgwLGFbZV0sMCkpOihyLnVwLnNldCgwLG9bZV0sMCksci5sb29rQXQoMCwwLGFbZV0pKSxCMHQoaSxuKnkwdCxlPjI/eTB0OjAseTB0LHkwdCkscy5zZXRSZW5kZXJUYXJnZXQoaSksaCYmcy5yZW5kZXIoUzB0LHIpLHMucmVuZGVyKHQscil9cy50b25lTWFwcGluZz11LHMub3V0cHV0RW5jb2Rpbmc9YyxzLmF1dG9DbGVhcj1sfV90ZXh0dXJlVG9DdWJlVVYodCxlKXtjb25zdCBuPXRoaXMuX3JlbmRlcmVyO3QuaXNDdWJlVGV4dHVyZT9udWxsPT10aGlzLl9jdWJlbWFwU2hhZGVyJiYodGhpcy5fY3ViZW1hcFNoYWRlcj1GMHQoKSk6bnVsbD09dGhpcy5fZXF1aXJlY3RTaGFkZXImJih0aGlzLl9lcXVpcmVjdFNoYWRlcj1IMHQoKSk7Y29uc3QgaT10LmlzQ3ViZVRleHR1cmU/dGhpcy5fY3ViZW1hcFNoYWRlcjp0aGlzLl9lcXVpcmVjdFNoYWRlcixyPW5ldyBCMXQoRTB0WzBdLGkpLG89aS51bmlmb3JtcztvLmVudk1hcC52YWx1ZT10LHQuaXNDdWJlVGV4dHVyZXx8by50ZXhlbFNpemUudmFsdWUuc2V0KDEvdC5pbWFnZS53aWR0aCwxL3QuaW1hZ2UuaGVpZ2h0KSxvLmlucHV0RW5jb2RpbmcudmFsdWU9eDB0W3QuZW5jb2RpbmddLG8ub3V0cHV0RW5jb2RpbmcudmFsdWU9eDB0W2UudGV4dHVyZS5lbmNvZGluZ10sQjB0KGUsMCwwLDMqeTB0LDIqeTB0KSxuLnNldFJlbmRlclRhcmdldChlKSxuLnJlbmRlcihyLE0wdCl9X2FwcGx5UE1SRU0odCl7Y29uc3QgZT10aGlzLl9yZW5kZXJlcixuPWUuYXV0b0NsZWFyO2UuYXV0b0NsZWFyPSExO2ZvcihsZXQgZT0xO2U8YjB0O2UrKyl7Y29uc3Qgbj1NYXRoLnNxcnQoQzB0W2VdKkMwdFtlXS1DMHRbZS0xXSpDMHRbZS0xXSk7dGhpcy5fYmx1cih0LGUtMSxlLG4sTjB0WyhlLTEpJU4wdC5sZW5ndGhdKX1lLmF1dG9DbGVhcj1ufV9ibHVyKHQsZSxuLGkscil7Y29uc3Qgbz10aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldDt0aGlzLl9oYWxmQmx1cih0LG8sZSxuLGksImxhdGl0dWRpbmFsIixyKSx0aGlzLl9oYWxmQmx1cihvLHQsbixuLGksImxvbmdpdHVkaW5hbCIscil9X2hhbGZCbHVyKHQsZSxuLGkscixvLGEpe2NvbnN0IHM9dGhpcy5fcmVuZGVyZXIsbD10aGlzLl9ibHVyTWF0ZXJpYWw7ImxhdGl0dWRpbmFsIiE9PW8mJiJsb25naXR1ZGluYWwiIT09byYmY29uc29sZS5lcnJvcigiYmx1ciBkaXJlY3Rpb24gbXVzdCBiZSBlaXRoZXIgbGF0aXR1ZGluYWwgb3IgbG9uZ2l0dWRpbmFsISIpO2NvbnN0IGM9bmV3IEIxdChFMHRbaV0sbCksdT1sLnVuaWZvcm1zLGg9VDB0W25dLTEsZD1pc0Zpbml0ZShyKT9NYXRoLlBJLygyKmgpOjIqTWF0aC5QSS8zOSxwPXIvZCxmPWlzRmluaXRlKHIpPzErTWF0aC5mbG9vcigzKnApOjIwO2Y+MjAmJmNvbnNvbGUud2Fybihgc2lnbWFSYWRpYW5zLCAke3J9LCBpcyB0b28gbGFyZ2UgYW5kIHdpbGwgY2xpcCwgYXMgaXQgcmVxdWVzdGVkICR7Zn0gc2FtcGxlcyB3aGVuIHRoZSBtYXhpbXVtIGlzIHNldCB0byAyMGApO2NvbnN0IG09W107bGV0IGc9MDtmb3IobGV0IHQ9MDt0PDIwOysrdCl7Y29uc3QgZT10L3Asbj1NYXRoLmV4cCgtZSplLzIpO20ucHVzaChuKSwwPT10P2crPW46dDxmJiYoZys9MipuKX1mb3IobGV0IHQ9MDt0PG0ubGVuZ3RoO3QrKyltW3RdPW1bdF0vZzt1LmVudk1hcC52YWx1ZT10LnRleHR1cmUsdS5zYW1wbGVzLnZhbHVlPWYsdS53ZWlnaHRzLnZhbHVlPW0sdS5sYXRpdHVkaW5hbC52YWx1ZT0ibGF0aXR1ZGluYWwiPT09byxhJiYodS5wb2xlQXhpcy52YWx1ZT1hKSx1LmRUaGV0YS52YWx1ZT1kLHUubWlwSW50LnZhbHVlPTgtbix1LmlucHV0RW5jb2RpbmcudmFsdWU9eDB0W3QudGV4dHVyZS5lbmNvZGluZ10sdS5vdXRwdXRFbmNvZGluZy52YWx1ZT14MHRbdC50ZXh0dXJlLmVuY29kaW5nXTtjb25zdCBfPVQwdFtpXTtCMHQoZSwzKk1hdGgubWF4KDAseTB0LTIqXyksKDA9PT1pPzA6Mip5MHQpKzIqXyooaT40P2ktOCs0OjApLDMqXywyKl8pLHMuc2V0UmVuZGVyVGFyZ2V0KGUpLHMucmVuZGVyKGMsTTB0KX19ZnVuY3Rpb24gTzB0KHQpe3JldHVybiB2b2lkIDAhPT10JiZ0LnR5cGU9PT1yWnQmJih0LmVuY29kaW5nPT09Tlp0fHx0LmVuY29kaW5nPT09SVp0fHx0LmVuY29kaW5nPT09Ulp0KX1mdW5jdGlvbiB6MHQoKXtjb25zdCB0PVtdLGU9W10sbj1bXTtsZXQgaT04O2ZvcihsZXQgcj0wO3I8YjB0O3IrKyl7Y29uc3Qgbz1NYXRoLnBvdygyLGkpO2UucHVzaChvKTtsZXQgYT0xL287cj40P2E9djB0W3ItOCs0LTFdOjA9PXImJihhPTApLG4ucHVzaChhKTtjb25zdCBzPTEvKG8tMSksbD0tcy8yLGM9MStzLzIsdT1bbCxsLGMsbCxjLGMsbCxsLGMsYyxsLGNdLGg9NixkPTYscD0zLGY9MixtPTEsZz1uZXcgRmxvYXQzMkFycmF5KHAqZCpoKSxfPW5ldyBGbG9hdDMyQXJyYXkoZipkKmgpLHk9bmV3IEZsb2F0MzJBcnJheShtKmQqaCk7Zm9yKGxldCB0PTA7dDxoO3QrKyl7Y29uc3QgZT10JTMqMi8zLTEsbj10PjI/MDotMTtnLnNldChbZSxuLDAsZSsyLzMsbiwwLGUrMi8zLG4rMSwwLGUsbiwwLGUrMi8zLG4rMSwwLGUsbisxLDBdLHAqZCp0KSxfLnNldCh1LGYqZCp0KSx5LnNldChbdCx0LHQsdCx0LHRdLG0qZCp0KX1jb25zdCB2PW5ldyBiMXQ7di5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgUVF0KGcscCkpLHYuc2V0QXR0cmlidXRlKCJ1diIsbmV3IFFRdChfLGYpKSx2LnNldEF0dHJpYnV0ZSgiZmFjZUluZGV4IixuZXcgUVF0KHksbSkpLHQucHVzaCh2KSxpPjQmJmktLX1yZXR1cm57X2xvZFBsYW5lczp0LF9zaXplTG9kczplLF9zaWdtYXM6bn19ZnVuY3Rpb24gRDB0KHQpe2NvbnN0IGU9bmV3IFNKdCgzKnkwdCwzKnkwdCx0KTtyZXR1cm4gZS50ZXh0dXJlLm1hcHBpbmc9WUt0LGUudGV4dHVyZS5uYW1lPSJQTVJFTS5jdWJlVXYiLGUuc2Npc3NvclRlc3Q9ITAsZX1mdW5jdGlvbiBCMHQodCxlLG4saSxyKXt0LnZpZXdwb3J0LnNldChlLG4saSxyKSx0LnNjaXNzb3Iuc2V0KGUsbixpLHIpfWZ1bmN0aW9uIEgwdCgpe2NvbnN0IHQ9bmV3IG1KdCgxLDEpO3JldHVybiBuZXcgXzB0KHtuYW1lOiJFcXVpcmVjdGFuZ3VsYXJUb0N1YmVVViIsdW5pZm9ybXM6e2Vudk1hcDp7dmFsdWU6bnVsbH0sdGV4ZWxTaXplOnt2YWx1ZTp0fSxpbnB1dEVuY29kaW5nOnt2YWx1ZTp4MHRbM2UzXX0sb3V0cHV0RW5jb2Rpbmc6e3ZhbHVlOngwdFszZTNdfX0sdmVydGV4U2hhZGVyOiJcblxuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdGF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXHRcdGF0dHJpYnV0ZSB2ZWMyIHV2O1xuXHRcdGF0dHJpYnV0ZSBmbG9hdCBmYWNlSW5kZXg7XG5cblx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdC8vIFJIIGNvb3JkaW5hdGUgc3lzdGVtOyBQTVJFTSBmYWNlLWluZGV4aW5nIGNvbnZlbnRpb25cblx0XHR2ZWMzIGdldERpcmVjdGlvbiggdmVjMiB1diwgZmxvYXQgZmFjZSApIHtcblxuXHRcdFx0dXYgPSAyLjAgKiB1diAtIDEuMDtcblxuXHRcdFx0dmVjMyBkaXJlY3Rpb24gPSB2ZWMzKCB1diwgMS4wICk7XG5cblx0XHRcdGlmICggZmFjZSA9PSAwLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDsgLy8gKCAxLCB2LCB1ICkgcG9zIHhcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAxLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnh6eTtcblx0XHRcdFx0ZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLXUsIDEsIC12ICkgcG9zIHlcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uLnggKj0gLTEuMDsgLy8gKCAtdSwgdiwgMSApIHBvcyB6XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC0xLCB2LCAtdSApIG5lZyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eSAqPSAtMS4wOyAvLyAoIC11LCAtMSwgdiApIG5lZyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi56ICo9IC0xLjA7IC8vICggdSwgdiwgLTEgKSBuZWcgelxuXG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBkaXJlY3Rpb247XG5cblx0XHR9XG5cblx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdHZPdXRwdXREaXJlY3Rpb24gPSBnZXREaXJlY3Rpb24oIHV2LCBmYWNlSW5kZXggKTtcblx0XHRcdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApO1xuXG5cdFx0fVxuXHQiLGZyYWdtZW50U2hhZGVyOiJcblxuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7XG5cdFx0XHR1bmlmb3JtIHZlYzIgdGV4ZWxTaXplO1xuXG5cdFx0XHRcblxuXHRcdHVuaWZvcm0gaW50IGlucHV0RW5jb2Rpbmc7XG5cdFx0dW5pZm9ybSBpbnQgb3V0cHV0RW5jb2Rpbmc7XG5cblx0XHQjaW5jbHVkZSA8ZW5jb2RpbmdzX3BhcnNfZnJhZ21lbnQ+XG5cblx0XHR2ZWM0IGlucHV0VGV4ZWxUb0xpbmVhciggdmVjNCB2YWx1ZSApIHtcblxuXHRcdFx0aWYgKCBpbnB1dEVuY29kaW5nID09IDAgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDEgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHNSR0JUb0xpbmVhciggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAyICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JFVG9MaW5lYXIoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMyApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCTVRvTGluZWFyKCB2YWx1ZSwgNy4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gNCApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCTVRvTGluZWFyKCB2YWx1ZSwgMTYuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDUgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQkRUb0xpbmVhciggdmFsdWUsIDI1Ni4wICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0cmV0dXJuIEdhbW1hVG9MaW5lYXIoIHZhbHVlLCAyLjIgKTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0dmVjNCBsaW5lYXJUb091dHB1dFRleGVsKCB2ZWM0IHZhbHVlICkge1xuXG5cdFx0XHRpZiAoIG91dHB1dEVuY29kaW5nID09IDAgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAxICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb3NSR0IoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDIgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCRSggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMyApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JNKCB2YWx1ZSwgNy4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCTSggdmFsdWUsIDE2LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gNSApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JEKCB2YWx1ZSwgMjU2LjAgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9HYW1tYSggdmFsdWUsIDIuMiApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHR2ZWM0IGVudk1hcFRleGVsVG9MaW5lYXIoIHZlYzQgY29sb3IgKSB7XG5cblx0XHRcdHJldHVybiBpbnB1dFRleGVsVG9MaW5lYXIoIGNvbG9yICk7XG5cblx0XHR9XG5cdFxuXG5cdFx0XHQjaW5jbHVkZSA8Y29tbW9uPlxuXG5cdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggMC4wLCAwLjAsIDAuMCwgMS4wICk7XG5cblx0XHRcdFx0dmVjMyBvdXRwdXREaXJlY3Rpb24gPSBub3JtYWxpemUoIHZPdXRwdXREaXJlY3Rpb24gKTtcblx0XHRcdFx0dmVjMiB1diA9IGVxdWlyZWN0VXYoIG91dHB1dERpcmVjdGlvbiApO1xuXG5cdFx0XHRcdHZlYzIgZiA9IGZyYWN0KCB1diAvIHRleGVsU2l6ZSAtIDAuNSApO1xuXHRcdFx0XHR1diAtPSBmICogdGV4ZWxTaXplO1xuXHRcdFx0XHR2ZWMzIHRsID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXHRcdFx0XHR1di54ICs9IHRleGVsU2l6ZS54O1xuXHRcdFx0XHR2ZWMzIHRyID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXHRcdFx0XHR1di55ICs9IHRleGVsU2l6ZS55O1xuXHRcdFx0XHR2ZWMzIGJyID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXHRcdFx0XHR1di54IC09IHRleGVsU2l6ZS54O1xuXHRcdFx0XHR2ZWMzIGJsID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXG5cdFx0XHRcdHZlYzMgdG0gPSBtaXgoIHRsLCB0ciwgZi54ICk7XG5cdFx0XHRcdHZlYzMgYm0gPSBtaXgoIGJsLCBiciwgZi54ICk7XG5cdFx0XHRcdGdsX0ZyYWdDb2xvci5yZ2IgPSBtaXgoIHRtLCBibSwgZi55ICk7XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gbGluZWFyVG9PdXRwdXRUZXhlbCggZ2xfRnJhZ0NvbG9yICk7XG5cblx0XHRcdH1cblx0XHQiLGJsZW5kaW5nOjAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITF9KX1mdW5jdGlvbiBGMHQoKXtyZXR1cm4gbmV3IF8wdCh7bmFtZToiQ3ViZW1hcFRvQ3ViZVVWIix1bmlmb3Jtczp7ZW52TWFwOnt2YWx1ZTpudWxsfSxpbnB1dEVuY29kaW5nOnt2YWx1ZTp4MHRbM2UzXX0sb3V0cHV0RW5jb2Rpbmc6e3ZhbHVlOngwdFszZTNdfX0sdmVydGV4U2hhZGVyOiJcblxuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdGF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXHRcdGF0dHJpYnV0ZSB2ZWMyIHV2O1xuXHRcdGF0dHJpYnV0ZSBmbG9hdCBmYWNlSW5kZXg7XG5cblx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdC8vIFJIIGNvb3JkaW5hdGUgc3lzdGVtOyBQTVJFTSBmYWNlLWluZGV4aW5nIGNvbnZlbnRpb25cblx0XHR2ZWMzIGdldERpcmVjdGlvbiggdmVjMiB1diwgZmxvYXQgZmFjZSApIHtcblxuXHRcdFx0dXYgPSAyLjAgKiB1diAtIDEuMDtcblxuXHRcdFx0dmVjMyBkaXJlY3Rpb24gPSB2ZWMzKCB1diwgMS4wICk7XG5cblx0XHRcdGlmICggZmFjZSA9PSAwLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDsgLy8gKCAxLCB2LCB1ICkgcG9zIHhcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAxLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnh6eTtcblx0XHRcdFx0ZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLXUsIDEsIC12ICkgcG9zIHlcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uLnggKj0gLTEuMDsgLy8gKCAtdSwgdiwgMSApIHBvcyB6XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC0xLCB2LCAtdSApIG5lZyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eSAqPSAtMS4wOyAvLyAoIC11LCAtMSwgdiApIG5lZyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi56ICo9IC0xLjA7IC8vICggdSwgdiwgLTEgKSBuZWcgelxuXG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBkaXJlY3Rpb247XG5cblx0XHR9XG5cblx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdHZPdXRwdXREaXJlY3Rpb24gPSBnZXREaXJlY3Rpb24oIHV2LCBmYWNlSW5kZXggKTtcblx0XHRcdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApO1xuXG5cdFx0fVxuXHQiLGZyYWdtZW50U2hhZGVyOiJcblxuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0XHR1bmlmb3JtIHNhbXBsZXJDdWJlIGVudk1hcDtcblxuXHRcdFx0XG5cblx0XHR1bmlmb3JtIGludCBpbnB1dEVuY29kaW5nO1xuXHRcdHVuaWZvcm0gaW50IG91dHB1dEVuY29kaW5nO1xuXG5cdFx0I2luY2x1ZGUgPGVuY29kaW5nc19wYXJzX2ZyYWdtZW50PlxuXG5cdFx0dmVjNCBpbnB1dFRleGVsVG9MaW5lYXIoIHZlYzQgdmFsdWUgKSB7XG5cblx0XHRcdGlmICggaW5wdXRFbmNvZGluZyA9PSAwICkge1xuXG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAxICkge1xuXG5cdFx0XHRcdHJldHVybiBzUkdCVG9MaW5lYXIoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMiApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCRVRvTGluZWFyKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDMgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQk1Ub0xpbmVhciggdmFsdWUsIDcuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQk1Ub0xpbmVhciggdmFsdWUsIDE2LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSA1ICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JEVG9MaW5lYXIoIHZhbHVlLCAyNTYuMCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHJldHVybiBHYW1tYVRvTGluZWFyKCB2YWx1ZSwgMi4yICk7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdHZlYzQgbGluZWFyVG9PdXRwdXRUZXhlbCggdmVjNCB2YWx1ZSApIHtcblxuXHRcdFx0aWYgKCBvdXRwdXRFbmNvZGluZyA9PSAwICkge1xuXG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMSApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9zUkdCKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAyICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQkUoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDMgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCTSggdmFsdWUsIDcuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSA0ICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQk0oIHZhbHVlLCAxNi4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDUgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCRCggdmFsdWUsIDI1Ni4wICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvR2FtbWEoIHZhbHVlLCAyLjIgKTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0dmVjNCBlbnZNYXBUZXhlbFRvTGluZWFyKCB2ZWM0IGNvbG9yICkge1xuXG5cdFx0XHRyZXR1cm4gaW5wdXRUZXhlbFRvTGluZWFyKCBjb2xvciApO1xuXG5cdFx0fVxuXHRcblxuXHRcdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApO1xuXHRcdFx0XHRnbF9GcmFnQ29sb3IucmdiID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZUN1YmUoIGVudk1hcCwgdmVjMyggLSB2T3V0cHV0RGlyZWN0aW9uLngsIHZPdXRwdXREaXJlY3Rpb24ueXogKSApICkucmdiO1xuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSBsaW5lYXJUb091dHB1dFRleGVsKCBnbF9GcmFnQ29sb3IgKTtcblxuXHRcdFx0fVxuXHRcdCIsYmxlbmRpbmc6MCxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMX0pfWZ1bmN0aW9uIFYwdCh0KXtsZXQgZT1uZXcgV2Vha01hcCxuPW51bGw7ZnVuY3Rpb24gaSh0KXtjb25zdCBuPXQudGFyZ2V0O24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsaSk7Y29uc3Qgcj1lLmdldChuKTt2b2lkIDAhPT1yJiYoci5kZWxldGUobiksci5kaXNwb3NlKCkpfXJldHVybntnZXQ6ZnVuY3Rpb24gcihvKXtpZihvJiZvLmlzVGV4dHVyZSYmITE9PT1vLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZSl7Y29uc3Qgcj1vLm1hcHBpbmcsYT1yPT09V0t0fHxyPT09cUt0LHM9cj09PWpLdHx8cj09PUdLdDtpZihhfHxzKXtpZihlLmhhcyhvKSlyZXR1cm4gZS5nZXQobykudGV4dHVyZTt7Y29uc3Qgcj1vLmltYWdlO2lmKGEmJnImJnIuaGVpZ2h0PjB8fHMmJnImJihmdW5jdGlvbiBhKHQpe2xldCBlPTA7Zm9yKGxldCBuPTA7bjw2O24rKyl2b2lkIDAhPT10W25dJiZlKys7cmV0dXJuIDY9PT1lfSkocikpe2NvbnN0IHI9dC5nZXRSZW5kZXJUYXJnZXQoKTtudWxsPT09biYmKG49bmV3IFIwdCh0KSk7Y29uc3Qgcz1hP24uZnJvbUVxdWlyZWN0YW5ndWxhcihvKTpuLmZyb21DdWJlbWFwKG8pO3JldHVybiBlLnNldChvLHMpLHQuc2V0UmVuZGVyVGFyZ2V0KHIpLG8uYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsaSkscy50ZXh0dXJlfXJldHVybiBudWxsfX19cmV0dXJuIG99LGRpc3Bvc2U6ZnVuY3Rpb24gbygpe2U9bmV3IFdlYWtNYXAsbnVsbCE9PW4mJihuLmRpc3Bvc2UoKSxuPW51bGwpfX19ZnVuY3Rpb24gVTB0KHQpe2NvbnN0IGU9e307ZnVuY3Rpb24gbihuKXtpZih2b2lkIDAhPT1lW25dKXJldHVybiBlW25dO2xldCBpO3N3aXRjaChuKXtjYXNlIldFQkdMX2RlcHRoX3RleHR1cmUiOmk9dC5nZXRFeHRlbnNpb24oIldFQkdMX2RlcHRoX3RleHR1cmUiKXx8dC5nZXRFeHRlbnNpb24oIk1PWl9XRUJHTF9kZXB0aF90ZXh0dXJlIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfV0VCR0xfZGVwdGhfdGV4dHVyZSIpO2JyZWFrO2Nhc2UiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIjppPXQuZ2V0RXh0ZW5zaW9uKCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKXx8dC5nZXRFeHRlbnNpb24oIk1PWl9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKXx8dC5nZXRFeHRlbnNpb24oIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTticmVhaztjYXNlIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIjppPXQuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpfHx0LmdldEV4dGVuc2lvbigiTU9aX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKTticmVhaztjYXNlIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyI6aT10LmdldEV4dGVuc2lvbigiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIik7YnJlYWs7ZGVmYXVsdDppPXQuZ2V0RXh0ZW5zaW9uKG4pfXJldHVybiBlW25dPWksaX1yZXR1cm57aGFzOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09bih0KX0saW5pdDpmdW5jdGlvbih0KXt0LmlzV2ViR0wyP24oIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKToobigiV0VCR0xfZGVwdGhfdGV4dHVyZSIpLG4oIk9FU190ZXh0dXJlX2Zsb2F0IiksbigiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpLG4oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIiksbigiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIiksbigiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpLG4oIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IiksbigiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpKSxuKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSxuKCJFWFRfY29sb3JfYnVmZmVyX2hhbGZfZmxvYXQiKX0sZ2V0OmZ1bmN0aW9uKHQpe2NvbnN0IGU9bih0KTtyZXR1cm4gbnVsbD09PWUmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogIit0KyIgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQuIiksZX19fWZ1bmN0aW9uIGowdCh0LGUsbixpKXtjb25zdCByPXt9LG89bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYSh0KXtjb25zdCBzPXQudGFyZ2V0O251bGwhPT1zLmluZGV4JiZlLnJlbW92ZShzLmluZGV4KTtmb3IoY29uc3QgdCBpbiBzLmF0dHJpYnV0ZXMpZS5yZW1vdmUocy5hdHRyaWJ1dGVzW3RdKTtzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpLGRlbGV0ZSByW3MuaWRdO2NvbnN0IGw9by5nZXQocyk7bCYmKGUucmVtb3ZlKGwpLG8uZGVsZXRlKHMpKSxpLnJlbGVhc2VTdGF0ZXNPZkdlb21ldHJ5KHMpLCEwPT09cy5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5JiZkZWxldGUgcy5fbWF4SW5zdGFuY2VDb3VudCxuLm1lbW9yeS5nZW9tZXRyaWVzLS19ZnVuY3Rpb24gcyh0KXtjb25zdCBuPVtdLGk9dC5pbmRleCxyPXQuYXR0cmlidXRlcy5wb3NpdGlvbjtsZXQgYT0wO2lmKG51bGwhPT1pKXtjb25zdCB0PWkuYXJyYXk7YT1pLnZlcnNpb247Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Myl7Y29uc3QgaT10W2UrMF0scj10W2UrMV0sbz10W2UrMl07bi5wdXNoKGkscixyLG8sbyxpKX19ZWxzZXthPXIudmVyc2lvbjtmb3IobGV0IHQ9MCxlPXIuYXJyYXkubGVuZ3RoLzMtMTt0PGU7dCs9Myl7Y29uc3QgZT10KzAsaT10KzEscj10KzI7bi5wdXNoKGUsaSxpLHIscixlKX19Y29uc3Qgcz1uZXcodTF0KG4pPjY1NTM1P2ExdDpyMXQpKG4sMSk7cy52ZXJzaW9uPWE7Y29uc3QgbD1vLmdldCh0KTtsJiZlLnJlbW92ZShsKSxvLnNldCh0LHMpfXJldHVybntnZXQ6ZnVuY3Rpb24gbCh0LGUpe3JldHVybiEwPT09cltlLmlkXXx8KGUuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsYSkscltlLmlkXT0hMCxuLm1lbW9yeS5nZW9tZXRyaWVzKyspLGV9LHVwZGF0ZTpmdW5jdGlvbiBjKHQpe2NvbnN0IG49dC5hdHRyaWJ1dGVzO2Zvcihjb25zdCB0IGluIG4pZS51cGRhdGUoblt0XSwzNDk2Mik7Y29uc3QgaT10Lm1vcnBoQXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiBpKXtjb25zdCBuPWlbdF07Zm9yKGxldCB0PTAsaT1uLmxlbmd0aDt0PGk7dCsrKWUudXBkYXRlKG5bdF0sMzQ5NjIpfX0sZ2V0V2lyZWZyYW1lQXR0cmlidXRlOmZ1bmN0aW9uIHUodCl7Y29uc3QgZT1vLmdldCh0KTtpZihlKXtjb25zdCBuPXQuaW5kZXg7bnVsbCE9PW4mJmUudmVyc2lvbjxuLnZlcnNpb24mJnModCl9ZWxzZSBzKHQpO3JldHVybiBvLmdldCh0KX19fWZ1bmN0aW9uIEcwdCh0LGUsbixpKXtjb25zdCByPWkuaXNXZWJHTDI7bGV0IG8sYSxzO3RoaXMuc2V0TW9kZT1mdW5jdGlvbiBsKHQpe289dH0sdGhpcy5zZXRJbmRleD1mdW5jdGlvbiBjKHQpe2E9dC50eXBlLHM9dC5ieXRlc1BlckVsZW1lbnR9LHRoaXMucmVuZGVyPWZ1bmN0aW9uIHUoZSxpKXt0LmRyYXdFbGVtZW50cyhvLGksYSxlKnMpLG4udXBkYXRlKGksbywxKX0sdGhpcy5yZW5kZXJJbnN0YW5jZXM9ZnVuY3Rpb24gaChpLGwsYyl7aWYoMD09PWMpcmV0dXJuO2xldCB1LGg7aWYocil1PXQsaD0iZHJhd0VsZW1lbnRzSW5zdGFuY2VkIjtlbHNlIGlmKHU9ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSxoPSJkcmF3RWxlbWVudHNJbnN0YW5jZWRBTkdMRSIsbnVsbD09PXUpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xJbmRleGVkQnVmZmVyUmVuZGVyZXI6IHVzaW5nIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5IGJ1dCBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IGV4dGVuc2lvbiBBTkdMRV9pbnN0YW5jZWRfYXJyYXlzLiIpO3VbaF0obyxsLGEsaSpzLGMpLG4udXBkYXRlKGwsbyxjKX19ZnVuY3Rpb24gVzB0KHQpe2NvbnN0IGU9e2ZyYW1lOjAsY2FsbHM6MCx0cmlhbmdsZXM6MCxwb2ludHM6MCxsaW5lczowfTtyZXR1cm57bWVtb3J5OntnZW9tZXRyaWVzOjAsdGV4dHVyZXM6MH0scmVuZGVyOmUscHJvZ3JhbXM6bnVsbCxhdXRvUmVzZXQ6ITAscmVzZXQ6ZnVuY3Rpb24gbigpe2UuZnJhbWUrKyxlLmNhbGxzPTAsZS50cmlhbmdsZXM9MCxlLnBvaW50cz0wLGUubGluZXM9MH0sdXBkYXRlOmZ1bmN0aW9uIGkodCxuLHIpe3N3aXRjaChlLmNhbGxzKyssbil7Y2FzZSA0OmUudHJpYW5nbGVzKz1yKih0LzMpO2JyZWFrO2Nhc2UgMTplLmxpbmVzKz1yKih0LzIpO2JyZWFrO2Nhc2UgMzplLmxpbmVzKz1yKih0LTEpO2JyZWFrO2Nhc2UgMjplLmxpbmVzKz1yKnQ7YnJlYWs7Y2FzZSAwOmUucG9pbnRzKz1yKnQ7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTEluZm86IFVua25vd24gZHJhdyBtb2RlOiIsbil9fX19ZnVuY3Rpb24gcTB0KHQsZSl7cmV0dXJuIHRbMF0tZVswXX1mdW5jdGlvbiBZMHQodCxlKXtyZXR1cm4gTWF0aC5hYnMoZVsxXSktTWF0aC5hYnModFsxXSl9ZnVuY3Rpb24gWDB0KHQpe2NvbnN0IGU9e30sbj1uZXcgRmxvYXQzMkFycmF5KDgpLGk9W107Zm9yKGxldCB0PTA7dDw4O3QrKylpW3RdPVt0LDBdO3JldHVybnt1cGRhdGU6ZnVuY3Rpb24gcihvLGEscyxsKXtjb25zdCBjPW8ubW9ycGhUYXJnZXRJbmZsdWVuY2VzLHU9dm9pZCAwPT09Yz8wOmMubGVuZ3RoO2xldCBoPWVbYS5pZF07aWYodm9pZCAwPT09aHx8aC5sZW5ndGghPT11KXtoPVtdO2ZvcihsZXQgdD0wO3Q8dTt0KyspaFt0XT1bdCwwXTtlW2EuaWRdPWh9Zm9yKGxldCB0PTA7dDx1O3QrKyl7Y29uc3QgZT1oW3RdO2VbMF09dCxlWzFdPWNbdF19aC5zb3J0KFkwdCk7Zm9yKGxldCB0PTA7dDw4O3QrKyl0PHUmJmhbdF1bMV0/KGlbdF1bMF09aFt0XVswXSxpW3RdWzFdPWhbdF1bMV0pOihpW3RdWzBdPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLGlbdF1bMV09MCk7aS5zb3J0KHEwdCk7Y29uc3QgZD1hLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbixwPWEubW9ycGhBdHRyaWJ1dGVzLm5vcm1hbDtsZXQgZj0wO2ZvcihsZXQgdD0wO3Q8ODt0Kyspe2NvbnN0IGU9aVt0XSxyPWVbMF0sbz1lWzFdO3IhPT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUiYmbz8oZCYmYS5nZXRBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0Iit0KSE9PWRbcl0mJmEuc2V0QXR0cmlidXRlKCJtb3JwaFRhcmdldCIrdCxkW3JdKSxwJiZhLmdldEF0dHJpYnV0ZSgibW9ycGhOb3JtYWwiK3QpIT09cFtyXSYmYS5zZXRBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0LHBbcl0pLG5bdF09byxmKz1vKTooZCYmITA9PT1hLmhhc0F0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK3QpJiZhLmRlbGV0ZUF0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK3QpLHAmJiEwPT09YS5oYXNBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0KSYmYS5kZWxldGVBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0KSxuW3RdPTApfWNvbnN0IG09YS5tb3JwaFRhcmdldHNSZWxhdGl2ZT8xOjEtZjtsLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUodCwibW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlIixtKSxsLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUodCwibW9ycGhUYXJnZXRJbmZsdWVuY2VzIixuKX19fWZ1bmN0aW9uICQwdCh0LGUsbixpKXtsZXQgcj1uZXcgV2Vha01hcDtmdW5jdGlvbiBvKHQpe2NvbnN0IGU9dC50YXJnZXQ7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixvKSxuLnJlbW92ZShlLmluc3RhbmNlTWF0cml4KSxudWxsIT09ZS5pbnN0YW5jZUNvbG9yJiZuLnJlbW92ZShlLmluc3RhbmNlQ29sb3IpfXJldHVybnt1cGRhdGU6ZnVuY3Rpb24gYSh0KXtjb25zdCBhPWkucmVuZGVyLmZyYW1lLHM9ZS5nZXQodCx0Lmdlb21ldHJ5KTtyZXR1cm4gci5nZXQocykhPT1hJiYoZS51cGRhdGUocyksci5zZXQocyxhKSksdC5pc0luc3RhbmNlZE1lc2gmJighMT09PXQuaGFzRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbykmJnQuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbyksbi51cGRhdGUodC5pbnN0YW5jZU1hdHJpeCwzNDk2MiksbnVsbCE9PXQuaW5zdGFuY2VDb2xvciYmbi51cGRhdGUodC5pbnN0YW5jZUNvbG9yLDM0OTYyKSksc30sZGlzcG9zZTpmdW5jdGlvbiBzKCl7cj1uZXcgV2Vha01hcH19fWNsYXNzIEswdCBleHRlbmRzIGJKdHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxpPTEpe3N1cGVyKG51bGwpLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpuLGRlcHRoOml9LHRoaXMubWFnRmlsdGVyPUpLdCx0aGlzLm1pbkZpbHRlcj1KS3QsdGhpcy53cmFwUj1LS3QsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fUswdC5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZTJEQXJyYXk9ITA7Y2xhc3MgWjB0IGV4dGVuZHMgYkp0e2NvbnN0cnVjdG9yKHQ9bnVsbCxlPTEsbj0xLGk9MSl7c3VwZXIobnVsbCksdGhpcy5pbWFnZT17ZGF0YTp0LHdpZHRoOmUsaGVpZ2h0Om4sZGVwdGg6aX0sdGhpcy5tYWdGaWx0ZXI9Skt0LHRoaXMubWluRmlsdGVyPUpLdCx0aGlzLndyYXBSPUtLdCx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMSx0aGlzLmZsaXBZPSExLHRoaXMudW5wYWNrQWxpZ25tZW50PTEsdGhpcy5uZWVkc1VwZGF0ZT0hMH19WjB0LnByb3RvdHlwZS5pc0RhdGFUZXh0dXJlM0Q9ITA7Y29uc3QgSjB0PW5ldyBiSnQsUTB0PW5ldyBLMHQsdDJ0PW5ldyBaMHQsZTJ0PW5ldyAkMXQsbjJ0PVtdLGkydD1bXSxyMnQ9bmV3IEZsb2F0MzJBcnJheSgxNiksbzJ0PW5ldyBGbG9hdDMyQXJyYXkoOSksYTJ0PW5ldyBGbG9hdDMyQXJyYXkoNCk7ZnVuY3Rpb24gczJ0KHQsZSxuKXtjb25zdCBpPXRbMF07aWYoaTw9MHx8aT4wKXJldHVybiB0O2NvbnN0IHI9ZSpuO2xldCBvPW4ydFtyXTtpZih2b2lkIDA9PT1vJiYobz1uZXcgRmxvYXQzMkFycmF5KHIpLG4ydFtyXT1vKSwwIT09ZSl7aS50b0FycmF5KG8sMCk7Zm9yKGxldCBpPTEscj0wO2khPT1lOysraSlyKz1uLHRbaV0udG9BcnJheShvLHIpfXJldHVybiBvfWZ1bmN0aW9uIGwydCh0LGUpe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKWlmKHRbbl0hPT1lW25dKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGMydCh0LGUpe2ZvcihsZXQgbj0wLGk9ZS5sZW5ndGg7bjxpO24rKyl0W25dPWVbbl19ZnVuY3Rpb24gdTJ0KHQsZSl7bGV0IG49aTJ0W2VdO3ZvaWQgMD09PW4mJihuPW5ldyBJbnQzMkFycmF5KGUpLGkydFtlXT1uKTtmb3IobGV0IGk9MDtpIT09ZTsrK2kpbltpXT10LmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtyZXR1cm4gbn1mdW5jdGlvbiBoMnQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7blswXSE9PWUmJih0LnVuaWZvcm0xZih0aGlzLmFkZHIsZSksblswXT1lKX1mdW5jdGlvbiBkMnQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7aWYodm9pZCAwIT09ZS54KW5bMF09PT1lLngmJm5bMV09PT1lLnl8fCh0LnVuaWZvcm0yZih0aGlzLmFkZHIsZS54LGUueSksblswXT1lLngsblsxXT1lLnkpO2Vsc2V7aWYobDJ0KG4sZSkpcmV0dXJuO3QudW5pZm9ybTJmdih0aGlzLmFkZHIsZSksYzJ0KG4sZSl9fWZ1bmN0aW9uIHAydCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtpZih2b2lkIDAhPT1lLngpblswXT09PWUueCYmblsxXT09PWUueSYmblsyXT09PWUuenx8KHQudW5pZm9ybTNmKHRoaXMuYWRkcixlLngsZS55LGUueiksblswXT1lLngsblsxXT1lLnksblsyXT1lLnopO2Vsc2UgaWYodm9pZCAwIT09ZS5yKW5bMF09PT1lLnImJm5bMV09PT1lLmcmJm5bMl09PT1lLmJ8fCh0LnVuaWZvcm0zZih0aGlzLmFkZHIsZS5yLGUuZyxlLmIpLG5bMF09ZS5yLG5bMV09ZS5nLG5bMl09ZS5iKTtlbHNle2lmKGwydChuLGUpKXJldHVybjt0LnVuaWZvcm0zZnYodGhpcy5hZGRyLGUpLGMydChuLGUpfX1mdW5jdGlvbiBmMnQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7aWYodm9pZCAwIT09ZS54KW5bMF09PT1lLngmJm5bMV09PT1lLnkmJm5bMl09PT1lLnomJm5bM109PT1lLnd8fCh0LnVuaWZvcm00Zih0aGlzLmFkZHIsZS54LGUueSxlLnosZS53KSxuWzBdPWUueCxuWzFdPWUueSxuWzJdPWUueixuWzNdPWUudyk7ZWxzZXtpZihsMnQobixlKSlyZXR1cm47dC51bmlmb3JtNGZ2KHRoaXMuYWRkcixlKSxjMnQobixlKX19ZnVuY3Rpb24gbTJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlLGk9ZS5lbGVtZW50cztpZih2b2lkIDA9PT1pKXtpZihsMnQobixlKSlyZXR1cm47dC51bmlmb3JtTWF0cml4MmZ2KHRoaXMuYWRkciwhMSxlKSxjMnQobixlKX1lbHNle2lmKGwydChuLGkpKXJldHVybjthMnQuc2V0KGkpLHQudW5pZm9ybU1hdHJpeDJmdih0aGlzLmFkZHIsITEsYTJ0KSxjMnQobixpKX19ZnVuY3Rpb24gZzJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlLGk9ZS5lbGVtZW50cztpZih2b2lkIDA9PT1pKXtpZihsMnQobixlKSlyZXR1cm47dC51bmlmb3JtTWF0cml4M2Z2KHRoaXMuYWRkciwhMSxlKSxjMnQobixlKX1lbHNle2lmKGwydChuLGkpKXJldHVybjtvMnQuc2V0KGkpLHQudW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEsbzJ0KSxjMnQobixpKX19ZnVuY3Rpb24gXzJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlLGk9ZS5lbGVtZW50cztpZih2b2lkIDA9PT1pKXtpZihsMnQobixlKSlyZXR1cm47dC51bmlmb3JtTWF0cml4NGZ2KHRoaXMuYWRkciwhMSxlKSxjMnQobixlKX1lbHNle2lmKGwydChuLGkpKXJldHVybjtyMnQuc2V0KGkpLHQudW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEscjJ0KSxjMnQobixpKX19ZnVuY3Rpb24geTJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO25bMF0hPT1lJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLGUpLG5bMF09ZSl9ZnVuY3Rpb24gdjJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2wydChuLGUpfHwodC51bmlmb3JtMml2KHRoaXMuYWRkcixlKSxjMnQobixlKSl9ZnVuY3Rpb24gYjJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2wydChuLGUpfHwodC51bmlmb3JtM2l2KHRoaXMuYWRkcixlKSxjMnQobixlKSl9ZnVuY3Rpb24geDJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2wydChuLGUpfHwodC51bmlmb3JtNGl2KHRoaXMuYWRkcixlKSxjMnQobixlKSl9ZnVuY3Rpb24gdzJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO25bMF0hPT1lJiYodC51bmlmb3JtMXVpKHRoaXMuYWRkcixlKSxuWzBdPWUpfWZ1bmN0aW9uIFMydCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtsMnQobixlKXx8KHQudW5pZm9ybTJ1aXYodGhpcy5hZGRyLGUpLGMydChuLGUpKX1mdW5jdGlvbiBNMnQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7bDJ0KG4sZSl8fCh0LnVuaWZvcm0zdWl2KHRoaXMuYWRkcixlKSxjMnQobixlKSl9ZnVuY3Rpb24gRTJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2wydChuLGUpfHwodC51bmlmb3JtNHVpdih0aGlzLmFkZHIsZSksYzJ0KG4sZSkpfWZ1bmN0aW9uIFQydCh0LGUsbil7Y29uc3QgaT10aGlzLmNhY2hlLHI9bi5hbGxvY2F0ZVRleHR1cmVVbml0KCk7aVswXSE9PXImJih0LnVuaWZvcm0xaSh0aGlzLmFkZHIsciksaVswXT1yKSxuLnNhZmVTZXRUZXh0dXJlMkQoZXx8SjB0LHIpfWZ1bmN0aW9uIEMydCh0LGUsbil7Y29uc3QgaT10aGlzLmNhY2hlLHI9bi5hbGxvY2F0ZVRleHR1cmVVbml0KCk7aVswXSE9PXImJih0LnVuaWZvcm0xaSh0aGlzLmFkZHIsciksaVswXT1yKSxuLnNldFRleHR1cmUzRChlfHx0MnQscil9ZnVuY3Rpb24gQTJ0KHQsZSxuKXtjb25zdCBpPXRoaXMuY2FjaGUscj1uLmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtpWzBdIT09ciYmKHQudW5pZm9ybTFpKHRoaXMuYWRkcixyKSxpWzBdPXIpLG4uc2FmZVNldFRleHR1cmVDdWJlKGV8fGUydCxyKX1mdW5jdGlvbiBrMnQodCxlLG4pe2NvbnN0IGk9dGhpcy5jYWNoZSxyPW4uYWxsb2NhdGVUZXh0dXJlVW5pdCgpO2lbMF0hPT1yJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLHIpLGlbMF09ciksbi5zZXRUZXh0dXJlMkRBcnJheShlfHxRMHQscil9ZnVuY3Rpb24gTDJ0KHQsZSl7dC51bmlmb3JtMWZ2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBQMnQodCxlKXtjb25zdCBuPXMydChlLHRoaXMuc2l6ZSwyKTt0LnVuaWZvcm0yZnYodGhpcy5hZGRyLG4pfWZ1bmN0aW9uIE4ydCh0LGUpe2NvbnN0IG49czJ0KGUsdGhpcy5zaXplLDMpO3QudW5pZm9ybTNmdih0aGlzLmFkZHIsbil9ZnVuY3Rpb24gSTJ0KHQsZSl7Y29uc3Qgbj1zMnQoZSx0aGlzLnNpemUsNCk7dC51bmlmb3JtNGZ2KHRoaXMuYWRkcixuKX1mdW5jdGlvbiBSMnQodCxlKXtjb25zdCBuPXMydChlLHRoaXMuc2l6ZSw0KTt0LnVuaWZvcm1NYXRyaXgyZnYodGhpcy5hZGRyLCExLG4pfWZ1bmN0aW9uIE8ydCh0LGUpe2NvbnN0IG49czJ0KGUsdGhpcy5zaXplLDkpO3QudW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEsbil9ZnVuY3Rpb24gejJ0KHQsZSl7Y29uc3Qgbj1zMnQoZSx0aGlzLnNpemUsMTYpO3QudW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEsbil9ZnVuY3Rpb24gRDJ0KHQsZSl7dC51bmlmb3JtMWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBCMnQodCxlKXt0LnVuaWZvcm0yaXYodGhpcy5hZGRyLGUpfWZ1bmN0aW9uIEgydCh0LGUpe3QudW5pZm9ybTNpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gRjJ0KHQsZSl7dC51bmlmb3JtNGl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBWMnQodCxlKXt0LnVuaWZvcm0xdWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBVMnQodCxlKXt0LnVuaWZvcm0ydWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBqMnQodCxlKXt0LnVuaWZvcm0zdWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBHMnQodCxlKXt0LnVuaWZvcm00dWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBXMnQodCxlLG4pe2NvbnN0IGk9ZS5sZW5ndGgscj11MnQobixpKTt0LnVuaWZvcm0xaXYodGhpcy5hZGRyLHIpO2ZvcihsZXQgdD0wO3QhPT1pOysrdCluLnNhZmVTZXRUZXh0dXJlMkQoZVt0XXx8SjB0LHJbdF0pfWZ1bmN0aW9uIHEydCh0LGUsbil7Y29uc3QgaT1lLmxlbmd0aCxyPXUydChuLGkpO3QudW5pZm9ybTFpdih0aGlzLmFkZHIscik7Zm9yKGxldCB0PTA7dCE9PWk7Kyt0KW4uc2FmZVNldFRleHR1cmVDdWJlKGVbdF18fGUydCxyW3RdKX1mdW5jdGlvbiBZMnQodCxlLG4pe3RoaXMuaWQ9dCx0aGlzLmFkZHI9bix0aGlzLmNhY2hlPVtdLHRoaXMuc2V0VmFsdWU9KGZ1bmN0aW9uIGkodCl7c3dpdGNoKHQpe2Nhc2UgNTEyNjpyZXR1cm4gaDJ0O2Nhc2UgMzU2NjQ6cmV0dXJuIGQydDtjYXNlIDM1NjY1OnJldHVybiBwMnQ7Y2FzZSAzNTY2NjpyZXR1cm4gZjJ0O2Nhc2UgMzU2NzQ6cmV0dXJuIG0ydDtjYXNlIDM1Njc1OnJldHVybiBnMnQ7Y2FzZSAzNTY3NjpyZXR1cm4gXzJ0O2Nhc2UgNTEyNDpjYXNlIDM1NjcwOnJldHVybiB5MnQ7Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOnJldHVybiB2MnQ7Y2FzZSAzNTY2ODpjYXNlIDM1NjcyOnJldHVybiBiMnQ7Y2FzZSAzNTY2OTpjYXNlIDM1NjczOnJldHVybiB4MnQ7Y2FzZSA1MTI1OnJldHVybiB3MnQ7Y2FzZSAzNjI5NDpyZXR1cm4gUzJ0O2Nhc2UgMzYyOTU6cmV0dXJuIE0ydDtjYXNlIDM2Mjk2OnJldHVybiBFMnQ7Y2FzZSAzNTY3ODpjYXNlIDM2MTk4OmNhc2UgMzYyOTg6Y2FzZSAzNjMwNjpjYXNlIDM1NjgyOnJldHVybiBUMnQ7Y2FzZSAzNTY3OTpjYXNlIDM2Mjk5OmNhc2UgMzYzMDc6cmV0dXJuIEMydDtjYXNlIDM1NjgwOmNhc2UgMzYzMDA6Y2FzZSAzNjMwODpjYXNlIDM2MjkzOnJldHVybiBBMnQ7Y2FzZSAzNjI4OTpjYXNlIDM2MzAzOmNhc2UgMzYzMTE6Y2FzZSAzNjI5MjpyZXR1cm4gazJ0fX0pKGUudHlwZSl9ZnVuY3Rpb24gWDJ0KHQsZSxuKXt0aGlzLmlkPXQsdGhpcy5hZGRyPW4sdGhpcy5jYWNoZT1bXSx0aGlzLnNpemU9ZS5zaXplLHRoaXMuc2V0VmFsdWU9KGZ1bmN0aW9uIGkodCl7c3dpdGNoKHQpe2Nhc2UgNTEyNjpyZXR1cm4gTDJ0O2Nhc2UgMzU2NjQ6cmV0dXJuIFAydDtjYXNlIDM1NjY1OnJldHVybiBOMnQ7Y2FzZSAzNTY2NjpyZXR1cm4gSTJ0O2Nhc2UgMzU2NzQ6cmV0dXJuIFIydDtjYXNlIDM1Njc1OnJldHVybiBPMnQ7Y2FzZSAzNTY3NjpyZXR1cm4gejJ0O2Nhc2UgNTEyNDpjYXNlIDM1NjcwOnJldHVybiBEMnQ7Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOnJldHVybiBCMnQ7Y2FzZSAzNTY2ODpjYXNlIDM1NjcyOnJldHVybiBIMnQ7Y2FzZSAzNTY2OTpjYXNlIDM1NjczOnJldHVybiBGMnQ7Y2FzZSA1MTI1OnJldHVybiBWMnQ7Y2FzZSAzNjI5NDpyZXR1cm4gVTJ0O2Nhc2UgMzYyOTU6cmV0dXJuIGoydDtjYXNlIDM2Mjk2OnJldHVybiBHMnQ7Y2FzZSAzNTY3ODpjYXNlIDM2MTk4OmNhc2UgMzYyOTg6Y2FzZSAzNjMwNjpjYXNlIDM1NjgyOnJldHVybiBXMnQ7Y2FzZSAzNTY4MDpjYXNlIDM2MzAwOmNhc2UgMzYzMDg6Y2FzZSAzNjI5MzpyZXR1cm4gcTJ0fX0pKGUudHlwZSl9ZnVuY3Rpb24gJDJ0KHQpe3RoaXMuaWQ9dCx0aGlzLnNlcT1bXSx0aGlzLm1hcD17fX1YMnQucHJvdG90eXBlLnVwZGF0ZUNhY2hlPWZ1bmN0aW9uKHQpe2NvbnN0IGU9dGhpcy5jYWNoZTt0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5JiZlLmxlbmd0aCE9PXQubGVuZ3RoJiYodGhpcy5jYWNoZT1uZXcgRmxvYXQzMkFycmF5KHQubGVuZ3RoKSksYzJ0KGUsdCl9LCQydC5wcm90b3R5cGUuc2V0VmFsdWU9ZnVuY3Rpb24odCxlLG4pe2NvbnN0IGk9dGhpcy5zZXE7Zm9yKGxldCByPTAsbz1pLmxlbmd0aDtyIT09bzsrK3Ipe2NvbnN0IG89aVtyXTtvLnNldFZhbHVlKHQsZVtvLmlkXSxuKX19O2NvbnN0IEsydD0vKFx3KykoXF0pPyhcW3xcLik/L2c7ZnVuY3Rpb24gWjJ0KHQsZSl7dC5zZXEucHVzaChlKSx0Lm1hcFtlLmlkXT1lfWZ1bmN0aW9uIEoydCh0LGUsbil7Y29uc3QgaT10Lm5hbWUscj1pLmxlbmd0aDtmb3IoSzJ0Lmxhc3RJbmRleD0wOzspe2NvbnN0IG89SzJ0LmV4ZWMoaSksYT1LMnQubGFzdEluZGV4O2xldCBzPW9bMV07Y29uc3QgbD1vWzNdO2lmKCJdIj09PW9bMl0mJihzfD0wKSx2b2lkIDA9PT1sfHwiWyI9PT1sJiZhKzI9PT1yKXtaMnQobix2b2lkIDA9PT1sP25ldyBZMnQocyx0LGUpOm5ldyBYMnQocyx0LGUpKTticmVha317bGV0IHQ9bi5tYXBbc107dm9pZCAwPT09dCYmKHQ9bmV3ICQydChzKSxaMnQobix0KSksbj10fX19ZnVuY3Rpb24gUTJ0KHQsZSl7dGhpcy5zZXE9W10sdGhpcy5tYXA9e307Y29uc3Qgbj10LmdldFByb2dyYW1QYXJhbWV0ZXIoZSwzNTcxOCk7Zm9yKGxldCBpPTA7aTxuOysraSl7Y29uc3Qgbj10LmdldEFjdGl2ZVVuaWZvcm0oZSxpKTtKMnQobix0LmdldFVuaWZvcm1Mb2NhdGlvbihlLG4ubmFtZSksdGhpcyl9fWZ1bmN0aW9uIHQ1dCh0LGUsbil7Y29uc3QgaT10LmNyZWF0ZVNoYWRlcihlKTtyZXR1cm4gdC5zaGFkZXJTb3VyY2UoaSxuKSx0LmNvbXBpbGVTaGFkZXIoaSksaX1RMnQucHJvdG90eXBlLnNldFZhbHVlPWZ1bmN0aW9uKHQsZSxuLGkpe2NvbnN0IHI9dGhpcy5tYXBbZV07dm9pZCAwIT09ciYmci5zZXRWYWx1ZSh0LG4saSl9LFEydC5wcm90b3R5cGUuc2V0T3B0aW9uYWw9ZnVuY3Rpb24odCxlLG4pe2NvbnN0IGk9ZVtuXTt2b2lkIDAhPT1pJiZ0aGlzLnNldFZhbHVlKHQsbixpKX0sUTJ0LnVwbG9hZD1mdW5jdGlvbih0LGUsbixpKXtmb3IobGV0IHI9MCxvPWUubGVuZ3RoO3IhPT1vOysrcil7Y29uc3Qgbz1lW3JdLGE9bltvLmlkXTshMSE9PWEubmVlZHNVcGRhdGUmJm8uc2V0VmFsdWUodCxhLnZhbHVlLGkpfX0sUTJ0LnNlcVdpdGhWYWx1ZT1mdW5jdGlvbih0LGUpe2NvbnN0IG49W107Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpIT09cjsrK2kpe2NvbnN0IHI9dFtpXTtyLmlkIGluIGUmJm4ucHVzaChyKX1yZXR1cm4gbn07bGV0IGU1dD0wO2Z1bmN0aW9uIG41dCh0KXtzd2l0Y2godCl7Y2FzZSBOWnQ6cmV0dXJuWyJMaW5lYXIiLCIoIHZhbHVlICkiXTtjYXNlIEladDpyZXR1cm5bInNSR0IiLCIoIHZhbHVlICkiXTtjYXNlIE9adDpyZXR1cm5bIlJHQkUiLCIoIHZhbHVlICkiXTtjYXNlIHpadDpyZXR1cm5bIlJHQk0iLCIoIHZhbHVlLCA3LjAgKSJdO2Nhc2UgRFp0OnJldHVyblsiUkdCTSIsIiggdmFsdWUsIDE2LjAgKSJdO2Nhc2UgQlp0OnJldHVyblsiUkdCRCIsIiggdmFsdWUsIDI1Ni4wICkiXTtjYXNlIFJadDpyZXR1cm5bIkdhbW1hIiwiKCB2YWx1ZSwgZmxvYXQoIEdBTU1BX0ZBQ1RPUiApICkiXTtjYXNlIDMwMDM6cmV0dXJuWyJMb2dMdXYiLCIoIHZhbHVlICkiXTtkZWZhdWx0OnJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbTogVW5zdXBwb3J0ZWQgZW5jb2Rpbmc6Iix0KSxbIkxpbmVhciIsIiggdmFsdWUgKSJdfX1mdW5jdGlvbiBpNXQodCxlLG4pe2NvbnN0IGk9dC5nZXRTaGFkZXJQYXJhbWV0ZXIoZSwzNTcxMykscj10LmdldFNoYWRlckluZm9Mb2coZSkudHJpbSgpO3JldHVybiBpJiYiIj09PXI/IiI6IlRIUkVFLldlYkdMU2hhZGVyOiBnbC5nZXRTaGFkZXJJbmZvTG9nKCkgIituKyJcbiIrcisoZnVuY3Rpb24gbyh0KXtjb25zdCBlPXQuc3BsaXQoIlxuIik7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XT10KzErIjogIitlW3RdO3JldHVybiBlLmpvaW4oIlxuIil9KSh0LmdldFNoYWRlclNvdXJjZShlKSl9ZnVuY3Rpb24gcjV0KHQsZSl7Y29uc3Qgbj1uNXQoZSk7cmV0dXJuInZlYzQgIit0KyIoIHZlYzQgdmFsdWUgKSB7IHJldHVybiAiK25bMF0rIlRvTGluZWFyIituWzFdKyI7IH0ifWZ1bmN0aW9uIG81dCh0LGUpe2NvbnN0IG49bjV0KGUpO3JldHVybiJ2ZWM0ICIrdCsiKCB2ZWM0IHZhbHVlICkgeyByZXR1cm4gTGluZWFyVG8iK25bMF0rblsxXSsiOyB9In1mdW5jdGlvbiBhNXQodCxlKXtsZXQgbjtzd2l0Y2goZSl7Y2FzZSAxOm49IkxpbmVhciI7YnJlYWs7Y2FzZSAyOm49IlJlaW5oYXJkIjticmVhaztjYXNlIDM6bj0iT3B0aW1pemVkQ2luZW9uIjticmVhaztjYXNlIDQ6bj0iQUNFU0ZpbG1pYyI7YnJlYWs7Y2FzZSA1Om49IkN1c3RvbSI7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbTogVW5zdXBwb3J0ZWQgdG9uZU1hcHBpbmc6IixlKSxuPSJMaW5lYXIifXJldHVybiJ2ZWMzICIrdCsiKCB2ZWMzIGNvbG9yICkgeyByZXR1cm4gIituKyJUb25lTWFwcGluZyggY29sb3IgKTsgfSJ9ZnVuY3Rpb24gczV0KHQpe3JldHVybiIiIT09dH1mdW5jdGlvbiBsNXQodCxlKXtyZXR1cm4gdC5yZXBsYWNlKC9OVU1fRElSX0xJR0hUUy9nLGUubnVtRGlyTGlnaHRzKS5yZXBsYWNlKC9OVU1fU1BPVF9MSUdIVFMvZyxlLm51bVNwb3RMaWdodHMpLnJlcGxhY2UoL05VTV9SRUNUX0FSRUFfTElHSFRTL2csZS5udW1SZWN0QXJlYUxpZ2h0cykucmVwbGFjZSgvTlVNX1BPSU5UX0xJR0hUUy9nLGUubnVtUG9pbnRMaWdodHMpLnJlcGxhY2UoL05VTV9IRU1JX0xJR0hUUy9nLGUubnVtSGVtaUxpZ2h0cykucmVwbGFjZSgvTlVNX0RJUl9MSUdIVF9TSEFET1dTL2csZS5udW1EaXJMaWdodFNoYWRvd3MpLnJlcGxhY2UoL05VTV9TUE9UX0xJR0hUX1NIQURPV1MvZyxlLm51bVNwb3RMaWdodFNoYWRvd3MpLnJlcGxhY2UoL05VTV9QT0lOVF9MSUdIVF9TSEFET1dTL2csZS5udW1Qb2ludExpZ2h0U2hhZG93cyl9ZnVuY3Rpb24gYzV0KHQsZSl7cmV0dXJuIHQucmVwbGFjZSgvTlVNX0NMSVBQSU5HX1BMQU5FUy9nLGUubnVtQ2xpcHBpbmdQbGFuZXMpLnJlcGxhY2UoL1VOSU9OX0NMSVBQSU5HX1BMQU5FUy9nLGUubnVtQ2xpcHBpbmdQbGFuZXMtZS5udW1DbGlwSW50ZXJzZWN0aW9uKX1jb25zdCB1NXQ9L15bIFx0XSojaW5jbHVkZSArPChbXHdcZC4vXSspPi9nbTtmdW5jdGlvbiBoNXQodCl7cmV0dXJuIHQucmVwbGFjZSh1NXQsZDV0KX1mdW5jdGlvbiBkNXQodCxlKXtjb25zdCBuPXMwdFtlXTtpZih2b2lkIDA9PT1uKXRocm93IG5ldyBFcnJvcigiQ2FuIG5vdCByZXNvbHZlICNpbmNsdWRlIDwiK2UrIj4iKTtyZXR1cm4gaDV0KG4pfWNvbnN0IHA1dD0vI3ByYWdtYSB1bnJvbGxfbG9vcFtcc10rP2ZvciBcKCBpbnQgaSBcPSAoXGQrKVw7IGkgPCAoXGQrKVw7IGkgXCtcKyBcKSBceyhbXHNcU10rPykoPz1cfSlcfS9nLGY1dD0vI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxzK2ZvclxzKlwoXHMqaW50XHMraVxzKj1ccyooXGQrKVxzKjtccyppXHMqPFxzKihcZCspXHMqO1xzKmlccypcK1wrXHMqXClccyp7KFtcc1xTXSs/KX1ccysjcHJhZ21hIHVucm9sbF9sb29wX2VuZC9nO2Z1bmN0aW9uIG01dCh0KXtyZXR1cm4gdC5yZXBsYWNlKGY1dCxfNXQpLnJlcGxhY2UocDV0LGc1dCl9ZnVuY3Rpb24gZzV0KHQsZSxuLGkpe3JldHVybiBjb25zb2xlLndhcm4oIldlYkdMUHJvZ3JhbTogI3ByYWdtYSB1bnJvbGxfbG9vcCBzaGFkZXIgc3ludGF4IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydCBzeW50YXggaW5zdGVhZC4iKSxfNXQoMCxlLG4saSl9ZnVuY3Rpb24gXzV0KHQsZSxuLGkpe2xldCByPSIiO2ZvcihsZXQgdD1wYXJzZUludChlKTt0PHBhcnNlSW50KG4pO3QrKylyKz1pLnJlcGxhY2UoL1xbXHMqaVxzKlxdL2csIlsgIit0KyIgXSIpLnJlcGxhY2UoL1VOUk9MTEVEX0xPT1BfSU5ERVgvZyx0KTtyZXR1cm4gcn1mdW5jdGlvbiB5NXQodCl7bGV0IGU9InByZWNpc2lvbiAiK3QucHJlY2lzaW9uKyIgZmxvYXQ7XG5wcmVjaXNpb24gIit0LnByZWNpc2lvbisiIGludDsiO3JldHVybiJoaWdocCI9PT10LnByZWNpc2lvbj9lKz0iXG4jZGVmaW5lIEhJR0hfUFJFQ0lTSU9OIjoibWVkaXVtcCI9PT10LnByZWNpc2lvbj9lKz0iXG4jZGVmaW5lIE1FRElVTV9QUkVDSVNJT04iOiJsb3dwIj09PXQucHJlY2lzaW9uJiYoZSs9IlxuI2RlZmluZSBMT1dfUFJFQ0lTSU9OIiksZX1mdW5jdGlvbiB2NXQodCxlLG4saSl7Y29uc3Qgcj10LmdldENvbnRleHQoKSxvPW4uZGVmaW5lcztsZXQgYT1uLnZlcnRleFNoYWRlcixzPW4uZnJhZ21lbnRTaGFkZXI7Y29uc3QgbD0oZnVuY3Rpb24gYyh0KXtsZXQgZT0iU0hBRE9XTUFQX1RZUEVfQkFTSUMiO3JldHVybiAxPT09dC5zaGFkb3dNYXBUeXBlP2U9IlNIQURPV01BUF9UWVBFX1BDRiI6Mj09PXQuc2hhZG93TWFwVHlwZT9lPSJTSEFET1dNQVBfVFlQRV9QQ0ZfU09GVCI6Mz09PXQuc2hhZG93TWFwVHlwZSYmKGU9IlNIQURPV01BUF9UWVBFX1ZTTSIpLGV9KShuKSx1PShmdW5jdGlvbiBoKHQpe2xldCBlPSJFTlZNQVBfVFlQRV9DVUJFIjtpZih0LmVudk1hcClzd2l0Y2godC5lbnZNYXBNb2RlKXtjYXNlIGpLdDpjYXNlIEdLdDplPSJFTlZNQVBfVFlQRV9DVUJFIjticmVhaztjYXNlIFlLdDpjYXNlIFhLdDplPSJFTlZNQVBfVFlQRV9DVUJFX1VWIn1yZXR1cm4gZX0pKG4pLGQ9KGZ1bmN0aW9uIHAodCl7bGV0IGU9IkVOVk1BUF9NT0RFX1JFRkxFQ1RJT04iO2lmKHQuZW52TWFwKXN3aXRjaCh0LmVudk1hcE1vZGUpe2Nhc2UgR0t0OmNhc2UgWEt0OmU9IkVOVk1BUF9NT0RFX1JFRlJBQ1RJT04ifXJldHVybiBlfSkobiksZj0oZnVuY3Rpb24gbSh0KXtsZXQgZT0iRU5WTUFQX0JMRU5ESU5HX05PTkUiO2lmKHQuZW52TWFwKXN3aXRjaCh0LmNvbWJpbmUpe2Nhc2UgMDplPSJFTlZNQVBfQkxFTkRJTkdfTVVMVElQTFkiO2JyZWFrO2Nhc2UgMTplPSJFTlZNQVBfQkxFTkRJTkdfTUlYIjticmVhaztjYXNlIDI6ZT0iRU5WTUFQX0JMRU5ESU5HX0FERCJ9cmV0dXJuIGV9KShuKSxnPXQuZ2FtbWFGYWN0b3I+MD90LmdhbW1hRmFjdG9yOjEsXz1uLmlzV2ViR0wyPyIiOihmdW5jdGlvbiB5KHQpe3JldHVyblt0LmV4dGVuc2lvbkRlcml2YXRpdmVzfHx0LmVudk1hcEN1YmVVVnx8dC5idW1wTWFwfHx0LnRhbmdlbnRTcGFjZU5vcm1hbE1hcHx8dC5jbGVhcmNvYXROb3JtYWxNYXB8fHQuZmxhdFNoYWRpbmd8fCJwaHlzaWNhbCI9PT10LnNoYWRlcklEPyIjZXh0ZW5zaW9uIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyA6IGVuYWJsZSI6IiIsKHQuZXh0ZW5zaW9uRnJhZ0RlcHRofHx0LmxvZ2FyaXRobWljRGVwdGhCdWZmZXIpJiZ0LnJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoPyIjZXh0ZW5zaW9uIEdMX0VYVF9mcmFnX2RlcHRoIDogZW5hYmxlIjoiIix0LmV4dGVuc2lvbkRyYXdCdWZmZXJzJiZ0LnJlbmRlcmVyRXh0ZW5zaW9uRHJhd0J1ZmZlcnM/IiNleHRlbnNpb24gR0xfRVhUX2RyYXdfYnVmZmVycyA6IHJlcXVpcmUiOiIiLCh0LmV4dGVuc2lvblNoYWRlclRleHR1cmVMT0R8fHQuZW52TWFwfHx0LnRyYW5zbWlzc2lvbj4wKSYmdC5yZW5kZXJlckV4dGVuc2lvblNoYWRlclRleHR1cmVMb2Q/IiNleHRlbnNpb24gR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCA6IGVuYWJsZSI6IiJdLmZpbHRlcihzNXQpLmpvaW4oIlxuIil9KShuKSx2PShmdW5jdGlvbiBiKHQpe2NvbnN0IGU9W107Zm9yKGNvbnN0IG4gaW4gdCl7Y29uc3QgaT10W25dOyExIT09aSYmZS5wdXNoKCIjZGVmaW5lICIrbisiICIraSl9cmV0dXJuIGUuam9pbigiXG4iKX0pKG8pLHg9ci5jcmVhdGVQcm9ncmFtKCk7bGV0IHcsUyxNPW4uZ2xzbFZlcnNpb24/IiN2ZXJzaW9uICIrbi5nbHNsVmVyc2lvbisiXG4iOiIiO24uaXNSYXdTaGFkZXJNYXRlcmlhbD8odz1bdl0uZmlsdGVyKHM1dCkuam9pbigiXG4iKSx3Lmxlbmd0aD4wJiYodys9IlxuIiksUz1bXyx2XS5maWx0ZXIoczV0KS5qb2luKCJcbiIpLFMubGVuZ3RoPjAmJihTKz0iXG4iKSk6KHc9W3k1dChuKSwiI2RlZmluZSBTSEFERVJfTkFNRSAiK24uc2hhZGVyTmFtZSx2LG4uaW5zdGFuY2luZz8iI2RlZmluZSBVU0VfSU5TVEFOQ0lORyI6IiIsbi5pbnN0YW5jaW5nQ29sb3I/IiNkZWZpbmUgVVNFX0lOU1RBTkNJTkdfQ09MT1IiOiIiLG4uc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcz8iI2RlZmluZSBWRVJURVhfVEVYVFVSRVMiOiIiLCIjZGVmaW5lIEdBTU1BX0ZBQ1RPUiAiK2csIiNkZWZpbmUgTUFYX0JPTkVTICIrbi5tYXhCb25lcyxuLnVzZUZvZyYmbi5mb2c/IiNkZWZpbmUgVVNFX0ZPRyI6IiIsbi51c2VGb2cmJm4uZm9nRXhwMj8iI2RlZmluZSBGT0dfRVhQMiI6IiIsbi5tYXA/IiNkZWZpbmUgVVNFX01BUCI6IiIsbi5lbnZNYXA/IiNkZWZpbmUgVVNFX0VOVk1BUCI6IiIsbi5lbnZNYXA/IiNkZWZpbmUgIitkOiIiLG4ubGlnaHRNYXA/IiNkZWZpbmUgVVNFX0xJR0hUTUFQIjoiIixuLmFvTWFwPyIjZGVmaW5lIFVTRV9BT01BUCI6IiIsbi5lbWlzc2l2ZU1hcD8iI2RlZmluZSBVU0VfRU1JU1NJVkVNQVAiOiIiLG4uYnVtcE1hcD8iI2RlZmluZSBVU0VfQlVNUE1BUCI6IiIsbi5ub3JtYWxNYXA/IiNkZWZpbmUgVVNFX05PUk1BTE1BUCI6IiIsbi5ub3JtYWxNYXAmJm4ub2JqZWN0U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgT0JKRUNUU1BBQ0VfTk9STUFMTUFQIjoiIixuLm5vcm1hbE1hcCYmbi50YW5nZW50U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgVEFOR0VOVFNQQUNFX05PUk1BTE1BUCI6IiIsbi5jbGVhcmNvYXRNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVE1BUCI6IiIsbi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVAiOiIiLG4uY2xlYXJjb2F0Tm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQIjoiIixuLmRpc3BsYWNlbWVudE1hcCYmbi5zdXBwb3J0c1ZlcnRleFRleHR1cmVzPyIjZGVmaW5lIFVTRV9ESVNQTEFDRU1FTlRNQVAiOiIiLG4uc3BlY3VsYXJNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSTUFQIjoiIixuLnNwZWN1bGFySW50ZW5zaXR5TWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUCI6IiIsbi5zcGVjdWxhclRpbnRNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSVElOVE1BUCI6IiIsbi5yb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX1JPVUdITkVTU01BUCI6IiIsbi5tZXRhbG5lc3NNYXA/IiNkZWZpbmUgVVNFX01FVEFMTkVTU01BUCI6IiIsbi5hbHBoYU1hcD8iI2RlZmluZSBVU0VfQUxQSEFNQVAiOiIiLG4udHJhbnNtaXNzaW9uPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT04iOiIiLG4udHJhbnNtaXNzaW9uTWFwPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT05NQVAiOiIiLG4udGhpY2tuZXNzTWFwPyIjZGVmaW5lIFVTRV9USElDS05FU1NNQVAiOiIiLG4udmVydGV4VGFuZ2VudHM/IiNkZWZpbmUgVVNFX1RBTkdFTlQiOiIiLG4udmVydGV4Q29sb3JzPyIjZGVmaW5lIFVTRV9DT0xPUiI6IiIsbi52ZXJ0ZXhBbHBoYXM/IiNkZWZpbmUgVVNFX0NPTE9SX0FMUEhBIjoiIixuLnZlcnRleFV2cz8iI2RlZmluZSBVU0VfVVYiOiIiLG4udXZzVmVydGV4T25seT8iI2RlZmluZSBVVlNfVkVSVEVYX09OTFkiOiIiLG4uZmxhdFNoYWRpbmc/IiNkZWZpbmUgRkxBVF9TSEFERUQiOiIiLG4uc2tpbm5pbmc/IiNkZWZpbmUgVVNFX1NLSU5OSU5HIjoiIixuLnVzZVZlcnRleFRleHR1cmU/IiNkZWZpbmUgQk9ORV9URVhUVVJFIjoiIixuLm1vcnBoVGFyZ2V0cz8iI2RlZmluZSBVU0VfTU9SUEhUQVJHRVRTIjoiIixuLm1vcnBoTm9ybWFscyYmITE9PT1uLmZsYXRTaGFkaW5nPyIjZGVmaW5lIFVTRV9NT1JQSE5PUk1BTFMiOiIiLG4uZG91YmxlU2lkZWQ/IiNkZWZpbmUgRE9VQkxFX1NJREVEIjoiIixuLmZsaXBTaWRlZD8iI2RlZmluZSBGTElQX1NJREVEIjoiIixuLnNoYWRvd01hcEVuYWJsZWQ/IiNkZWZpbmUgVVNFX1NIQURPV01BUCI6IiIsbi5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lICIrbDoiIixuLnNpemVBdHRlbnVhdGlvbj8iI2RlZmluZSBVU0VfU0laRUFUVEVOVUFUSU9OIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXI/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJm4ucmVuZGVyZXJFeHRlbnNpb25GcmFnRGVwdGg/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGX0VYVCI6IiIsInVuaWZvcm0gbWF0NCBtb2RlbE1hdHJpeDsiLCJ1bmlmb3JtIG1hdDQgbW9kZWxWaWV3TWF0cml4OyIsInVuaWZvcm0gbWF0NCBwcm9qZWN0aW9uTWF0cml4OyIsInVuaWZvcm0gbWF0NCB2aWV3TWF0cml4OyIsInVuaWZvcm0gbWF0MyBub3JtYWxNYXRyaXg7IiwidW5pZm9ybSB2ZWMzIGNhbWVyYVBvc2l0aW9uOyIsInVuaWZvcm0gYm9vbCBpc09ydGhvZ3JhcGhpYzsiLCIjaWZkZWYgVVNFX0lOU1RBTkNJTkciLCJcdGF0dHJpYnV0ZSBtYXQ0IGluc3RhbmNlTWF0cml4OyIsIiNlbmRpZiIsIiNpZmRlZiBVU0VfSU5TVEFOQ0lOR19DT0xPUiIsIlx0YXR0cmlidXRlIHZlYzMgaW5zdGFuY2VDb2xvcjsiLCIjZW5kaWYiLCJhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjsiLCJhdHRyaWJ1dGUgdmVjMyBub3JtYWw7IiwiYXR0cmlidXRlIHZlYzIgdXY7IiwiI2lmZGVmIFVTRV9UQU5HRU5UIiwiXHRhdHRyaWJ1dGUgdmVjNCB0YW5nZW50OyIsIiNlbmRpZiIsIiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKSIsIlx0YXR0cmlidXRlIHZlYzQgY29sb3I7IiwiI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkiLCJcdGF0dHJpYnV0ZSB2ZWMzIGNvbG9yOyIsIiNlbmRpZiIsIiNpZmRlZiBVU0VfTU9SUEhUQVJHRVRTIiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDA7IiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDE7IiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDI7IiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDM7IiwiXHQjaWZkZWYgVVNFX01PUlBITk9STUFMUyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDA7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMTsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhOb3JtYWwyOyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDM7IiwiXHQjZWxzZSIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDQ7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NTsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQ2OyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDc7IiwiXHQjZW5kaWYiLCIjZW5kaWYiLCIjaWZkZWYgVVNFX1NLSU5OSU5HIiwiXHRhdHRyaWJ1dGUgdmVjNCBza2luSW5kZXg7IiwiXHRhdHRyaWJ1dGUgdmVjNCBza2luV2VpZ2h0OyIsIiNlbmRpZiIsIlxuIl0uZmlsdGVyKHM1dCkuam9pbigiXG4iKSxTPVtfLHk1dChuKSwiI2RlZmluZSBTSEFERVJfTkFNRSAiK24uc2hhZGVyTmFtZSx2LG4uYWxwaGFUZXN0PyIjZGVmaW5lIEFMUEhBVEVTVCAiK24uYWxwaGFUZXN0KyhuLmFscGhhVGVzdCUxPyIiOiIuMCIpOiIiLCIjZGVmaW5lIEdBTU1BX0ZBQ1RPUiAiK2csbi51c2VGb2cmJm4uZm9nPyIjZGVmaW5lIFVTRV9GT0ciOiIiLG4udXNlRm9nJiZuLmZvZ0V4cDI/IiNkZWZpbmUgRk9HX0VYUDIiOiIiLG4ubWFwPyIjZGVmaW5lIFVTRV9NQVAiOiIiLG4ubWF0Y2FwPyIjZGVmaW5lIFVTRV9NQVRDQVAiOiIiLG4uZW52TWFwPyIjZGVmaW5lIFVTRV9FTlZNQVAiOiIiLG4uZW52TWFwPyIjZGVmaW5lICIrdToiIixuLmVudk1hcD8iI2RlZmluZSAiK2Q6IiIsbi5lbnZNYXA/IiNkZWZpbmUgIitmOiIiLG4ubGlnaHRNYXA/IiNkZWZpbmUgVVNFX0xJR0hUTUFQIjoiIixuLmFvTWFwPyIjZGVmaW5lIFVTRV9BT01BUCI6IiIsbi5lbWlzc2l2ZU1hcD8iI2RlZmluZSBVU0VfRU1JU1NJVkVNQVAiOiIiLG4uYnVtcE1hcD8iI2RlZmluZSBVU0VfQlVNUE1BUCI6IiIsbi5ub3JtYWxNYXA/IiNkZWZpbmUgVVNFX05PUk1BTE1BUCI6IiIsbi5ub3JtYWxNYXAmJm4ub2JqZWN0U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgT0JKRUNUU1BBQ0VfTk9STUFMTUFQIjoiIixuLm5vcm1hbE1hcCYmbi50YW5nZW50U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgVEFOR0VOVFNQQUNFX05PUk1BTE1BUCI6IiIsbi5jbGVhcmNvYXRNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVE1BUCI6IiIsbi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVAiOiIiLG4uY2xlYXJjb2F0Tm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQIjoiIixuLnNwZWN1bGFyTWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUk1BUCI6IiIsbi5zcGVjdWxhckludGVuc2l0eU1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVAiOiIiLG4uc3BlY3VsYXJUaW50TWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUlRJTlRNQVAiOiIiLG4ucm91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9ST1VHSE5FU1NNQVAiOiIiLG4ubWV0YWxuZXNzTWFwPyIjZGVmaW5lIFVTRV9NRVRBTE5FU1NNQVAiOiIiLG4uYWxwaGFNYXA/IiNkZWZpbmUgVVNFX0FMUEhBTUFQIjoiIixuLnNoZWVuPyIjZGVmaW5lIFVTRV9TSEVFTiI6IiIsbi50cmFuc21pc3Npb24/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTiI6IiIsbi50cmFuc21pc3Npb25NYXA/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTk1BUCI6IiIsbi50aGlja25lc3NNYXA/IiNkZWZpbmUgVVNFX1RISUNLTkVTU01BUCI6IiIsbi52ZXJ0ZXhUYW5nZW50cz8iI2RlZmluZSBVU0VfVEFOR0VOVCI6IiIsbi52ZXJ0ZXhDb2xvcnN8fG4uaW5zdGFuY2luZ0NvbG9yPyIjZGVmaW5lIFVTRV9DT0xPUiI6IiIsbi52ZXJ0ZXhBbHBoYXM/IiNkZWZpbmUgVVNFX0NPTE9SX0FMUEhBIjoiIixuLnZlcnRleFV2cz8iI2RlZmluZSBVU0VfVVYiOiIiLG4udXZzVmVydGV4T25seT8iI2RlZmluZSBVVlNfVkVSVEVYX09OTFkiOiIiLG4uZ3JhZGllbnRNYXA/IiNkZWZpbmUgVVNFX0dSQURJRU5UTUFQIjoiIixuLmZsYXRTaGFkaW5nPyIjZGVmaW5lIEZMQVRfU0hBREVEIjoiIixuLmRvdWJsZVNpZGVkPyIjZGVmaW5lIERPVUJMRV9TSURFRCI6IiIsbi5mbGlwU2lkZWQ/IiNkZWZpbmUgRkxJUF9TSURFRCI6IiIsbi5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lIFVTRV9TSEFET1dNQVAiOiIiLG4uc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSAiK2w6IiIsbi5wcmVtdWx0aXBsaWVkQWxwaGE/IiNkZWZpbmUgUFJFTVVMVElQTElFRF9BTFBIQSI6IiIsbi5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cz8iI2RlZmluZSBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXI/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJm4ucmVuZGVyZXJFeHRlbnNpb25GcmFnRGVwdGg/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGX0VYVCI6IiIsKG4uZXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxPRHx8bi5lbnZNYXApJiZuLnJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZD8iI2RlZmluZSBURVhUVVJFX0xPRF9FWFQiOiIiLCJ1bmlmb3JtIG1hdDQgdmlld01hdHJpeDsiLCJ1bmlmb3JtIHZlYzMgY2FtZXJhUG9zaXRpb247IiwidW5pZm9ybSBib29sIGlzT3J0aG9ncmFwaGljOyIsMCE9PW4udG9uZU1hcHBpbmc/IiNkZWZpbmUgVE9ORV9NQVBQSU5HIjoiIiwwIT09bi50b25lTWFwcGluZz9zMHQudG9uZW1hcHBpbmdfcGFyc19mcmFnbWVudDoiIiwwIT09bi50b25lTWFwcGluZz9hNXQoInRvbmVNYXBwaW5nIixuLnRvbmVNYXBwaW5nKToiIixuLmRpdGhlcmluZz8iI2RlZmluZSBESVRIRVJJTkciOiIiLHMwdC5lbmNvZGluZ3NfcGFyc19mcmFnbWVudCxuLm1hcD9yNXQoIm1hcFRleGVsVG9MaW5lYXIiLG4ubWFwRW5jb2RpbmcpOiIiLG4ubWF0Y2FwP3I1dCgibWF0Y2FwVGV4ZWxUb0xpbmVhciIsbi5tYXRjYXBFbmNvZGluZyk6IiIsbi5lbnZNYXA/cjV0KCJlbnZNYXBUZXhlbFRvTGluZWFyIixuLmVudk1hcEVuY29kaW5nKToiIixuLmVtaXNzaXZlTWFwP3I1dCgiZW1pc3NpdmVNYXBUZXhlbFRvTGluZWFyIixuLmVtaXNzaXZlTWFwRW5jb2RpbmcpOiIiLG4uc3BlY3VsYXJUaW50TWFwP3I1dCgic3BlY3VsYXJUaW50TWFwVGV4ZWxUb0xpbmVhciIsbi5zcGVjdWxhclRpbnRNYXBFbmNvZGluZyk6IiIsbi5saWdodE1hcD9yNXQoImxpZ2h0TWFwVGV4ZWxUb0xpbmVhciIsbi5saWdodE1hcEVuY29kaW5nKToiIixvNXQoImxpbmVhclRvT3V0cHV0VGV4ZWwiLG4ub3V0cHV0RW5jb2RpbmcpLG4uZGVwdGhQYWNraW5nPyIjZGVmaW5lIERFUFRIX1BBQ0tJTkcgIituLmRlcHRoUGFja2luZzoiIiwiXG4iXS5maWx0ZXIoczV0KS5qb2luKCJcbiIpKSxhPWg1dChhKSxhPWw1dChhLG4pLGE9YzV0KGEsbikscz1oNXQocykscz1sNXQocyxuKSxzPWM1dChzLG4pLGE9bTV0KGEpLHM9bTV0KHMpLG4uaXNXZWJHTDImJiEwIT09bi5pc1Jhd1NoYWRlck1hdGVyaWFsJiYoTT0iI3ZlcnNpb24gMzAwIGVzXG4iLHc9WyIjZGVmaW5lIGF0dHJpYnV0ZSBpbiIsIiNkZWZpbmUgdmFyeWluZyBvdXQiLCIjZGVmaW5lIHRleHR1cmUyRCB0ZXh0dXJlIl0uam9pbigiXG4iKSsiXG4iK3csUz1bIiNkZWZpbmUgdmFyeWluZyBpbiIsbi5nbHNsVmVyc2lvbj09PVVadD8iIjoib3V0IGhpZ2hwIHZlYzQgcGNfZnJhZ0NvbG9yOyIsbi5nbHNsVmVyc2lvbj09PVVadD8iIjoiI2RlZmluZSBnbF9GcmFnQ29sb3IgcGNfZnJhZ0NvbG9yIiwiI2RlZmluZSBnbF9GcmFnRGVwdGhFWFQgZ2xfRnJhZ0RlcHRoIiwiI2RlZmluZSB0ZXh0dXJlMkQgdGV4dHVyZSIsIiNkZWZpbmUgdGV4dHVyZUN1YmUgdGV4dHVyZSIsIiNkZWZpbmUgdGV4dHVyZTJEUHJvaiB0ZXh0dXJlUHJvaiIsIiNkZWZpbmUgdGV4dHVyZTJETG9kRVhUIHRleHR1cmVMb2QiLCIjZGVmaW5lIHRleHR1cmUyRFByb2pMb2RFWFQgdGV4dHVyZVByb2pMb2QiLCIjZGVmaW5lIHRleHR1cmVDdWJlTG9kRVhUIHRleHR1cmVMb2QiLCIjZGVmaW5lIHRleHR1cmUyREdyYWRFWFQgdGV4dHVyZUdyYWQiLCIjZGVmaW5lIHRleHR1cmUyRFByb2pHcmFkRVhUIHRleHR1cmVQcm9qR3JhZCIsIiNkZWZpbmUgdGV4dHVyZUN1YmVHcmFkRVhUIHRleHR1cmVHcmFkIl0uam9pbigiXG4iKSsiXG4iK1MpO2NvbnN0IEU9TStTK3MsVD10NXQociwzNTYzMyxNK3crYSksQz10NXQociwzNTYzMixFKTtpZihyLmF0dGFjaFNoYWRlcih4LFQpLHIuYXR0YWNoU2hhZGVyKHgsQyksdm9pZCAwIT09bi5pbmRleDBBdHRyaWJ1dGVOYW1lP3IuYmluZEF0dHJpYkxvY2F0aW9uKHgsMCxuLmluZGV4MEF0dHJpYnV0ZU5hbWUpOiEwPT09bi5tb3JwaFRhcmdldHMmJnIuYmluZEF0dHJpYkxvY2F0aW9uKHgsMCwicG9zaXRpb24iKSxyLmxpbmtQcm9ncmFtKHgpLHQuZGVidWcuY2hlY2tTaGFkZXJFcnJvcnMpe2NvbnN0IHQ9ci5nZXRQcm9ncmFtSW5mb0xvZyh4KS50cmltKCksZT1yLmdldFNoYWRlckluZm9Mb2coVCkudHJpbSgpLG49ci5nZXRTaGFkZXJJbmZvTG9nKEMpLnRyaW0oKTtsZXQgaT0hMCxvPSEwO2lmKCExPT09ci5nZXRQcm9ncmFtUGFyYW1ldGVyKHgsMzU3MTQpKXtpPSExO2NvbnN0IGU9aTV0KHIsVCwidmVydGV4Iiksbj1pNXQocixDLCJmcmFnbWVudCIpO2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUHJvZ3JhbTogc2hhZGVyIGVycm9yOiAiLHIuZ2V0RXJyb3IoKSwiMzU3MTUiLHIuZ2V0UHJvZ3JhbVBhcmFtZXRlcih4LDM1NzE1KSwiZ2wuZ2V0UHJvZ3JhbUluZm9Mb2ciLHQsZSxuKX1lbHNlIiIhPT10P2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xQcm9ncmFtOiBnbC5nZXRQcm9ncmFtSW5mb0xvZygpIix0KToiIiE9PWUmJiIiIT09bnx8KG89ITEpO28mJih0aGlzLmRpYWdub3N0aWNzPXtydW5uYWJsZTppLHByb2dyYW1Mb2c6dCx2ZXJ0ZXhTaGFkZXI6e2xvZzplLHByZWZpeDp3fSxmcmFnbWVudFNoYWRlcjp7bG9nOm4scHJlZml4OlN9fSl9bGV0IEEsaztyZXR1cm4gci5kZWxldGVTaGFkZXIoVCksci5kZWxldGVTaGFkZXIoQyksdGhpcy5nZXRVbmlmb3Jtcz1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1BJiYoQT1uZXcgUTJ0KHIseCkpLEF9LHRoaXMuZ2V0QXR0cmlidXRlcz1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1rJiYoaz0oZnVuY3Rpb24gdChlLG4pe2NvbnN0IGk9e30scj1lLmdldFByb2dyYW1QYXJhbWV0ZXIobiwzNTcyMSk7Zm9yKGxldCB0PTA7dDxyO3QrKyl7Y29uc3Qgcj1lLmdldEFjdGl2ZUF0dHJpYihuLHQpLm5hbWU7aVtyXT1lLmdldEF0dHJpYkxvY2F0aW9uKG4scil9cmV0dXJuIGl9KShyLHgpKSxrfSx0aGlzLmRlc3Ryb3k9ZnVuY3Rpb24oKXtpLnJlbGVhc2VTdGF0ZXNPZlByb2dyYW0odGhpcyksci5kZWxldGVQcm9ncmFtKHgpLHRoaXMucHJvZ3JhbT12b2lkIDB9LHRoaXMubmFtZT1uLnNoYWRlck5hbWUsdGhpcy5pZD1lNXQrKyx0aGlzLmNhY2hlS2V5PWUsdGhpcy51c2VkVGltZXM9MSx0aGlzLnByb2dyYW09eCx0aGlzLnZlcnRleFNoYWRlcj1ULHRoaXMuZnJhZ21lbnRTaGFkZXI9Qyx0aGlzfWZ1bmN0aW9uIGI1dCh0LGUsbixpLHIsbyxhKXtjb25zdCBzPVtdLGw9ci5pc1dlYkdMMixjPXIubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcix1PXIuZmxvYXRWZXJ0ZXhUZXh0dXJlcyxoPXIubWF4VmVydGV4VW5pZm9ybXMsZD1yLnZlcnRleFRleHR1cmVzO2xldCBwPXIucHJlY2lzaW9uO2NvbnN0IGY9e01lc2hEZXB0aE1hdGVyaWFsOiJkZXB0aCIsTWVzaERpc3RhbmNlTWF0ZXJpYWw6ImRpc3RhbmNlUkdCQSIsTWVzaE5vcm1hbE1hdGVyaWFsOiJub3JtYWwiLE1lc2hCYXNpY01hdGVyaWFsOiJiYXNpYyIsTWVzaExhbWJlcnRNYXRlcmlhbDoibGFtYmVydCIsTWVzaFBob25nTWF0ZXJpYWw6InBob25nIixNZXNoVG9vbk1hdGVyaWFsOiJ0b29uIixNZXNoU3RhbmRhcmRNYXRlcmlhbDoicGh5c2ljYWwiLE1lc2hQaHlzaWNhbE1hdGVyaWFsOiJwaHlzaWNhbCIsTWVzaE1hdGNhcE1hdGVyaWFsOiJtYXRjYXAiLExpbmVCYXNpY01hdGVyaWFsOiJiYXNpYyIsTGluZURhc2hlZE1hdGVyaWFsOiJkYXNoZWQiLFBvaW50c01hdGVyaWFsOiJwb2ludHMiLFNoYWRvd01hdGVyaWFsOiJzaGFkb3ciLFNwcml0ZU1hdGVyaWFsOiJzcHJpdGUifSxtPVsicHJlY2lzaW9uIiwiaXNXZWJHTDIiLCJzdXBwb3J0c1ZlcnRleFRleHR1cmVzIiwib3V0cHV0RW5jb2RpbmciLCJpbnN0YW5jaW5nIiwiaW5zdGFuY2luZ0NvbG9yIiwibWFwIiwibWFwRW5jb2RpbmciLCJtYXRjYXAiLCJtYXRjYXBFbmNvZGluZyIsImVudk1hcCIsImVudk1hcE1vZGUiLCJlbnZNYXBFbmNvZGluZyIsImVudk1hcEN1YmVVViIsImxpZ2h0TWFwIiwibGlnaHRNYXBFbmNvZGluZyIsImFvTWFwIiwiZW1pc3NpdmVNYXAiLCJlbWlzc2l2ZU1hcEVuY29kaW5nIiwiYnVtcE1hcCIsIm5vcm1hbE1hcCIsIm9iamVjdFNwYWNlTm9ybWFsTWFwIiwidGFuZ2VudFNwYWNlTm9ybWFsTWFwIiwiY2xlYXJjb2F0TWFwIiwiY2xlYXJjb2F0Um91Z2huZXNzTWFwIiwiY2xlYXJjb2F0Tm9ybWFsTWFwIiwiZGlzcGxhY2VtZW50TWFwIiwic3BlY3VsYXJNYXAiLCJzcGVjdWxhckludGVuc2l0eU1hcCIsInNwZWN1bGFyVGludE1hcCIsInNwZWN1bGFyVGludE1hcEVuY29kaW5nIiwicm91Z2huZXNzTWFwIiwibWV0YWxuZXNzTWFwIiwiZ3JhZGllbnRNYXAiLCJhbHBoYU1hcCIsImNvbWJpbmUiLCJ2ZXJ0ZXhDb2xvcnMiLCJ2ZXJ0ZXhBbHBoYXMiLCJ2ZXJ0ZXhUYW5nZW50cyIsInZlcnRleFV2cyIsInV2c1ZlcnRleE9ubHkiLCJmb2ciLCJ1c2VGb2ciLCJmb2dFeHAyIiwiZmxhdFNoYWRpbmciLCJzaXplQXR0ZW51YXRpb24iLCJsb2dhcml0aG1pY0RlcHRoQnVmZmVyIiwic2tpbm5pbmciLCJtYXhCb25lcyIsInVzZVZlcnRleFRleHR1cmUiLCJtb3JwaFRhcmdldHMiLCJtb3JwaE5vcm1hbHMiLCJwcmVtdWx0aXBsaWVkQWxwaGEiLCJudW1EaXJMaWdodHMiLCJudW1Qb2ludExpZ2h0cyIsIm51bVNwb3RMaWdodHMiLCJudW1IZW1pTGlnaHRzIiwibnVtUmVjdEFyZWFMaWdodHMiLCJudW1EaXJMaWdodFNoYWRvd3MiLCJudW1Qb2ludExpZ2h0U2hhZG93cyIsIm51bVNwb3RMaWdodFNoYWRvd3MiLCJzaGFkb3dNYXBFbmFibGVkIiwic2hhZG93TWFwVHlwZSIsInRvbmVNYXBwaW5nIiwicGh5c2ljYWxseUNvcnJlY3RMaWdodHMiLCJhbHBoYVRlc3QiLCJkb3VibGVTaWRlZCIsImZsaXBTaWRlZCIsIm51bUNsaXBwaW5nUGxhbmVzIiwibnVtQ2xpcEludGVyc2VjdGlvbiIsImRlcHRoUGFja2luZyIsImRpdGhlcmluZyIsInNoZWVuIiwidHJhbnNtaXNzaW9uIiwidHJhbnNtaXNzaW9uTWFwIiwidGhpY2tuZXNzTWFwIl07ZnVuY3Rpb24gZyh0KXtsZXQgZTtyZXR1cm4gdCYmdC5pc1RleHR1cmU/ZT10LmVuY29kaW5nOnQmJnQuaXNXZWJHTFJlbmRlclRhcmdldD8oY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW1zLmdldFRleHR1cmVFbmNvZGluZ0Zyb21NYXA6IGRvbid0IHVzZSByZW5kZXIgdGFyZ2V0cyBhcyB0ZXh0dXJlcy4gVXNlIHRoZWlyIC50ZXh0dXJlIHByb3BlcnR5IGluc3RlYWQuIiksZT10LnRleHR1cmUuZW5jb2RpbmcpOmU9Tlp0LGV9cmV0dXJue2dldFBhcmFtZXRlcnM6ZnVuY3Rpb24gXyhvLHMsbSx5LHYpe2NvbnN0IGI9eS5mb2cseD0oby5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP246ZSkuZ2V0KG8uZW52TWFwfHwoby5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP3kuZW52aXJvbm1lbnQ6bnVsbCkpLHc9ZltvLnR5cGVdLFM9di5pc1NraW5uZWRNZXNoPyhmdW5jdGlvbiBNKHQpe2NvbnN0IGU9dC5za2VsZXRvbi5ib25lcztpZih1KXJldHVybiAxMDI0O3tjb25zdCB0PU1hdGguZmxvb3IoKGgtMjApLzQpLG49TWF0aC5taW4odCxlLmxlbmd0aCk7cmV0dXJuIG48ZS5sZW5ndGg/KGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogU2tlbGV0b24gaGFzICIrZS5sZW5ndGgrIiBib25lcy4gVGhpcyBHUFUgc3VwcG9ydHMgIituKyIuIiksMCk6bn19KSh2KTowO2xldCBFLFQ7aWYobnVsbCE9PW8ucHJlY2lzaW9uJiYocD1yLmdldE1heFByZWNpc2lvbihvLnByZWNpc2lvbikscCE9PW8ucHJlY2lzaW9uJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbS5nZXRQYXJhbWV0ZXJzOiIsby5wcmVjaXNpb24sIm5vdCBzdXBwb3J0ZWQsIHVzaW5nIixwLCJpbnN0ZWFkLiIpKSx3KXtjb25zdCB0PWMwdFt3XTtFPXQudmVydGV4U2hhZGVyLFQ9dC5mcmFnbWVudFNoYWRlcn1lbHNlIEU9by52ZXJ0ZXhTaGFkZXIsVD1vLmZyYWdtZW50U2hhZGVyO2NvbnN0IEM9dC5nZXRSZW5kZXJUYXJnZXQoKTtyZXR1cm57aXNXZWJHTDI6bCxzaGFkZXJJRDp3LHNoYWRlck5hbWU6by50eXBlLHZlcnRleFNoYWRlcjpFLGZyYWdtZW50U2hhZGVyOlQsZGVmaW5lczpvLmRlZmluZXMsaXNSYXdTaGFkZXJNYXRlcmlhbDohMD09PW8uaXNSYXdTaGFkZXJNYXRlcmlhbCxnbHNsVmVyc2lvbjpvLmdsc2xWZXJzaW9uLHByZWNpc2lvbjpwLGluc3RhbmNpbmc6ITA9PT12LmlzSW5zdGFuY2VkTWVzaCxpbnN0YW5jaW5nQ29sb3I6ITA9PT12LmlzSW5zdGFuY2VkTWVzaCYmbnVsbCE9PXYuaW5zdGFuY2VDb2xvcixzdXBwb3J0c1ZlcnRleFRleHR1cmVzOmQsb3V0cHV0RW5jb2Rpbmc6bnVsbCE9PUM/ZyhDLnRleHR1cmUpOnQub3V0cHV0RW5jb2RpbmcsbWFwOiEhby5tYXAsbWFwRW5jb2Rpbmc6ZyhvLm1hcCksbWF0Y2FwOiEhby5tYXRjYXAsbWF0Y2FwRW5jb2Rpbmc6ZyhvLm1hdGNhcCksZW52TWFwOiEheCxlbnZNYXBNb2RlOngmJngubWFwcGluZyxlbnZNYXBFbmNvZGluZzpnKHgpLGVudk1hcEN1YmVVVjohIXgmJih4Lm1hcHBpbmc9PT1ZS3R8fHgubWFwcGluZz09PVhLdCksbGlnaHRNYXA6ISFvLmxpZ2h0TWFwLGxpZ2h0TWFwRW5jb2Rpbmc6ZyhvLmxpZ2h0TWFwKSxhb01hcDohIW8uYW9NYXAsZW1pc3NpdmVNYXA6ISFvLmVtaXNzaXZlTWFwLGVtaXNzaXZlTWFwRW5jb2Rpbmc6ZyhvLmVtaXNzaXZlTWFwKSxidW1wTWFwOiEhby5idW1wTWFwLG5vcm1hbE1hcDohIW8ubm9ybWFsTWFwLG9iamVjdFNwYWNlTm9ybWFsTWFwOjE9PT1vLm5vcm1hbE1hcFR5cGUsdGFuZ2VudFNwYWNlTm9ybWFsTWFwOjA9PT1vLm5vcm1hbE1hcFR5cGUsY2xlYXJjb2F0TWFwOiEhby5jbGVhcmNvYXRNYXAsY2xlYXJjb2F0Um91Z2huZXNzTWFwOiEhby5jbGVhcmNvYXRSb3VnaG5lc3NNYXAsY2xlYXJjb2F0Tm9ybWFsTWFwOiEhby5jbGVhcmNvYXROb3JtYWxNYXAsZGlzcGxhY2VtZW50TWFwOiEhby5kaXNwbGFjZW1lbnRNYXAscm91Z2huZXNzTWFwOiEhby5yb3VnaG5lc3NNYXAsbWV0YWxuZXNzTWFwOiEhby5tZXRhbG5lc3NNYXAsc3BlY3VsYXJNYXA6ISFvLnNwZWN1bGFyTWFwLHNwZWN1bGFySW50ZW5zaXR5TWFwOiEhby5zcGVjdWxhckludGVuc2l0eU1hcCxzcGVjdWxhclRpbnRNYXA6ISFvLnNwZWN1bGFyVGludE1hcCxzcGVjdWxhclRpbnRNYXBFbmNvZGluZzpnKG8uc3BlY3VsYXJUaW50TWFwKSxhbHBoYU1hcDohIW8uYWxwaGFNYXAsZ3JhZGllbnRNYXA6ISFvLmdyYWRpZW50TWFwLHNoZWVuOiEhby5zaGVlbix0cmFuc21pc3Npb246ISFvLnRyYW5zbWlzc2lvbix0cmFuc21pc3Npb25NYXA6ISFvLnRyYW5zbWlzc2lvbk1hcCx0aGlja25lc3NNYXA6ISFvLnRoaWNrbmVzc01hcCxjb21iaW5lOm8uY29tYmluZSx2ZXJ0ZXhUYW5nZW50czohIW8ubm9ybWFsTWFwJiYhIXYuZ2VvbWV0cnkmJiEhdi5nZW9tZXRyeS5hdHRyaWJ1dGVzLnRhbmdlbnQsdmVydGV4Q29sb3JzOm8udmVydGV4Q29sb3JzLHZlcnRleEFscGhhczohMD09PW8udmVydGV4Q29sb3JzJiYhIXYuZ2VvbWV0cnkmJiEhdi5nZW9tZXRyeS5hdHRyaWJ1dGVzLmNvbG9yJiY0PT09di5nZW9tZXRyeS5hdHRyaWJ1dGVzLmNvbG9yLml0ZW1TaXplLHZlcnRleFV2czohIShvLm1hcHx8by5idW1wTWFwfHxvLm5vcm1hbE1hcHx8by5zcGVjdWxhck1hcHx8by5hbHBoYU1hcHx8by5lbWlzc2l2ZU1hcHx8by5yb3VnaG5lc3NNYXB8fG8ubWV0YWxuZXNzTWFwfHxvLmNsZWFyY29hdE1hcHx8by5jbGVhcmNvYXRSb3VnaG5lc3NNYXB8fG8uY2xlYXJjb2F0Tm9ybWFsTWFwfHxvLmRpc3BsYWNlbWVudE1hcHx8by50cmFuc21pc3Npb25NYXB8fG8udGhpY2tuZXNzTWFwfHxvLnNwZWN1bGFySW50ZW5zaXR5TWFwfHxvLnNwZWN1bGFyVGludE1hcCksdXZzVmVydGV4T25seTohKG8ubWFwfHxvLmJ1bXBNYXB8fG8ubm9ybWFsTWFwfHxvLnNwZWN1bGFyTWFwfHxvLmFscGhhTWFwfHxvLmVtaXNzaXZlTWFwfHxvLnJvdWdobmVzc01hcHx8by5tZXRhbG5lc3NNYXB8fG8uY2xlYXJjb2F0Tm9ybWFsTWFwfHxvLnRyYW5zbWlzc2lvbnx8by50cmFuc21pc3Npb25NYXB8fG8udGhpY2tuZXNzTWFwfHxvLnNwZWN1bGFySW50ZW5zaXR5TWFwfHxvLnNwZWN1bGFyVGludE1hcHx8IW8uZGlzcGxhY2VtZW50TWFwKSxmb2c6ISFiLHVzZUZvZzpvLmZvZyxmb2dFeHAyOmImJmIuaXNGb2dFeHAyLGZsYXRTaGFkaW5nOiEhby5mbGF0U2hhZGluZyxzaXplQXR0ZW51YXRpb246by5zaXplQXR0ZW51YXRpb24sbG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcjpjLHNraW5uaW5nOiEwPT09di5pc1NraW5uZWRNZXNoJiZTPjAsbWF4Qm9uZXM6Uyx1c2VWZXJ0ZXhUZXh0dXJlOnUsbW9ycGhUYXJnZXRzOiEhdi5nZW9tZXRyeSYmISF2Lmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbixtb3JwaE5vcm1hbHM6ISF2Lmdlb21ldHJ5JiYhIXYuZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzLm5vcm1hbCxudW1EaXJMaWdodHM6cy5kaXJlY3Rpb25hbC5sZW5ndGgsbnVtUG9pbnRMaWdodHM6cy5wb2ludC5sZW5ndGgsbnVtU3BvdExpZ2h0czpzLnNwb3QubGVuZ3RoLG51bVJlY3RBcmVhTGlnaHRzOnMucmVjdEFyZWEubGVuZ3RoLG51bUhlbWlMaWdodHM6cy5oZW1pLmxlbmd0aCxudW1EaXJMaWdodFNoYWRvd3M6cy5kaXJlY3Rpb25hbFNoYWRvd01hcC5sZW5ndGgsbnVtUG9pbnRMaWdodFNoYWRvd3M6cy5wb2ludFNoYWRvd01hcC5sZW5ndGgsbnVtU3BvdExpZ2h0U2hhZG93czpzLnNwb3RTaGFkb3dNYXAubGVuZ3RoLG51bUNsaXBwaW5nUGxhbmVzOmEubnVtUGxhbmVzLG51bUNsaXBJbnRlcnNlY3Rpb246YS5udW1JbnRlcnNlY3Rpb24sZGl0aGVyaW5nOm8uZGl0aGVyaW5nLHNoYWRvd01hcEVuYWJsZWQ6dC5zaGFkb3dNYXAuZW5hYmxlZCYmbS5sZW5ndGg+MCxzaGFkb3dNYXBUeXBlOnQuc2hhZG93TWFwLnR5cGUsdG9uZU1hcHBpbmc6by50b25lTWFwcGVkP3QudG9uZU1hcHBpbmc6MCxwaHlzaWNhbGx5Q29ycmVjdExpZ2h0czp0LnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzLHByZW11bHRpcGxpZWRBbHBoYTpvLnByZW11bHRpcGxpZWRBbHBoYSxhbHBoYVRlc3Q6by5hbHBoYVRlc3QsZG91YmxlU2lkZWQ6Mj09PW8uc2lkZSxmbGlwU2lkZWQ6MT09PW8uc2lkZSxkZXB0aFBhY2tpbmc6dm9pZCAwIT09by5kZXB0aFBhY2tpbmcmJm8uZGVwdGhQYWNraW5nLGluZGV4MEF0dHJpYnV0ZU5hbWU6by5pbmRleDBBdHRyaWJ1dGVOYW1lLGV4dGVuc2lvbkRlcml2YXRpdmVzOm8uZXh0ZW5zaW9ucyYmby5leHRlbnNpb25zLmRlcml2YXRpdmVzLGV4dGVuc2lvbkZyYWdEZXB0aDpvLmV4dGVuc2lvbnMmJm8uZXh0ZW5zaW9ucy5mcmFnRGVwdGgsZXh0ZW5zaW9uRHJhd0J1ZmZlcnM6by5leHRlbnNpb25zJiZvLmV4dGVuc2lvbnMuZHJhd0J1ZmZlcnMsZXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxPRDpvLmV4dGVuc2lvbnMmJm8uZXh0ZW5zaW9ucy5zaGFkZXJUZXh0dXJlTE9ELHJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoOmx8fGkuaGFzKCJFWFRfZnJhZ19kZXB0aCIpLHJlbmRlcmVyRXh0ZW5zaW9uRHJhd0J1ZmZlcnM6bHx8aS5oYXMoIldFQkdMX2RyYXdfYnVmZmVycyIpLHJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZDpsfHxpLmhhcygiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpLGN1c3RvbVByb2dyYW1DYWNoZUtleTpvLmN1c3RvbVByb2dyYW1DYWNoZUtleSgpfX0sZ2V0UHJvZ3JhbUNhY2hlS2V5OmZ1bmN0aW9uIHkoZSl7Y29uc3Qgbj1bXTtpZihlLnNoYWRlcklEP24ucHVzaChlLnNoYWRlcklEKToobi5wdXNoKGUuZnJhZ21lbnRTaGFkZXIpLG4ucHVzaChlLnZlcnRleFNoYWRlcikpLHZvaWQgMCE9PWUuZGVmaW5lcylmb3IoY29uc3QgdCBpbiBlLmRlZmluZXMpbi5wdXNoKHQpLG4ucHVzaChlLmRlZmluZXNbdF0pO2lmKCExPT09ZS5pc1Jhd1NoYWRlck1hdGVyaWFsKXtmb3IobGV0IHQ9MDt0PG0ubGVuZ3RoO3QrKyluLnB1c2goZVttW3RdXSk7bi5wdXNoKHQub3V0cHV0RW5jb2RpbmcpLG4ucHVzaCh0LmdhbW1hRmFjdG9yKX1yZXR1cm4gbi5wdXNoKGUuY3VzdG9tUHJvZ3JhbUNhY2hlS2V5KSxuLmpvaW4oKX0sZ2V0VW5pZm9ybXM6ZnVuY3Rpb24gdih0KXtjb25zdCBlPWZbdC50eXBlXTtsZXQgbjtyZXR1cm4gbj1lP2oxdC5jbG9uZShjMHRbZV0udW5pZm9ybXMpOnQudW5pZm9ybXMsbn0sYWNxdWlyZVByb2dyYW06ZnVuY3Rpb24gYihlLG4pe2xldCBpO2ZvcihsZXQgdD0wLGU9cy5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1zW3RdO2lmKGUuY2FjaGVLZXk9PT1uKXtpPWUsKytpLnVzZWRUaW1lczticmVha319cmV0dXJuIHZvaWQgMD09PWkmJihpPW5ldyB2NXQodCxuLGUsbykscy5wdXNoKGkpKSxpfSxyZWxlYXNlUHJvZ3JhbTpmdW5jdGlvbiB4KHQpe2lmKDA9PS0tdC51c2VkVGltZXMpe2NvbnN0IGU9cy5pbmRleE9mKHQpO3NbZV09c1tzLmxlbmd0aC0xXSxzLnBvcCgpLHQuZGVzdHJveSgpfX0scHJvZ3JhbXM6c319ZnVuY3Rpb24geDV0KCl7bGV0IHQ9bmV3IFdlYWtNYXA7cmV0dXJue2dldDpmdW5jdGlvbiBlKG4pe2xldCBpPXQuZ2V0KG4pO3JldHVybiB2b2lkIDA9PT1pJiYoaT17fSx0LnNldChuLGkpKSxpfSxyZW1vdmU6ZnVuY3Rpb24gbihlKXt0LmRlbGV0ZShlKX0sdXBkYXRlOmZ1bmN0aW9uIGkoZSxuLHIpe3QuZ2V0KGUpW25dPXJ9LGRpc3Bvc2U6ZnVuY3Rpb24gcigpe3Q9bmV3IFdlYWtNYXB9fX1mdW5jdGlvbiB3NXQodCxlKXtyZXR1cm4gdC5ncm91cE9yZGVyIT09ZS5ncm91cE9yZGVyP3QuZ3JvdXBPcmRlci1lLmdyb3VwT3JkZXI6dC5yZW5kZXJPcmRlciE9PWUucmVuZGVyT3JkZXI/dC5yZW5kZXJPcmRlci1lLnJlbmRlck9yZGVyOnQucHJvZ3JhbSE9PWUucHJvZ3JhbT90LnByb2dyYW0uaWQtZS5wcm9ncmFtLmlkOnQubWF0ZXJpYWwuaWQhPT1lLm1hdGVyaWFsLmlkP3QubWF0ZXJpYWwuaWQtZS5tYXRlcmlhbC5pZDp0LnohPT1lLno/dC56LWUuejp0LmlkLWUuaWR9ZnVuY3Rpb24gUzV0KHQsZSl7cmV0dXJuIHQuZ3JvdXBPcmRlciE9PWUuZ3JvdXBPcmRlcj90Lmdyb3VwT3JkZXItZS5ncm91cE9yZGVyOnQucmVuZGVyT3JkZXIhPT1lLnJlbmRlck9yZGVyP3QucmVuZGVyT3JkZXItZS5yZW5kZXJPcmRlcjp0LnohPT1lLno/ZS56LXQuejp0LmlkLWUuaWR9ZnVuY3Rpb24gTTV0KHQpe2NvbnN0IGU9W107bGV0IG49MDtjb25zdCBpPVtdLHI9W10sbz1bXSxhPXtpZDotMX07ZnVuY3Rpb24gcyhpLHIsbyxzLGwsYyl7bGV0IHU9ZVtuXTtjb25zdCBoPXQuZ2V0KG8pO3JldHVybiB2b2lkIDA9PT11Pyh1PXtpZDppLmlkLG9iamVjdDppLGdlb21ldHJ5OnIsbWF0ZXJpYWw6byxwcm9ncmFtOmgucHJvZ3JhbXx8YSxncm91cE9yZGVyOnMscmVuZGVyT3JkZXI6aS5yZW5kZXJPcmRlcix6OmwsZ3JvdXA6Y30sZVtuXT11KToodS5pZD1pLmlkLHUub2JqZWN0PWksdS5nZW9tZXRyeT1yLHUubWF0ZXJpYWw9byx1LnByb2dyYW09aC5wcm9ncmFtfHxhLHUuZ3JvdXBPcmRlcj1zLHUucmVuZGVyT3JkZXI9aS5yZW5kZXJPcmRlcix1Lno9bCx1Lmdyb3VwPWMpLG4rKyx1fXJldHVybntvcGFxdWU6aSx0cmFuc21pc3NpdmU6cix0cmFuc3BhcmVudDpvLGluaXQ6ZnVuY3Rpb24gbCgpe249MCxpLmxlbmd0aD0wLHIubGVuZ3RoPTAsby5sZW5ndGg9MH0scHVzaDpmdW5jdGlvbiBjKHQsZSxuLGEsbCx1KXtjb25zdCBoPXModCxlLG4sYSxsLHUpO24udHJhbnNtaXNzaW9uPjA/ci5wdXNoKGgpOiEwPT09bi50cmFuc3BhcmVudD9vLnB1c2goaCk6aS5wdXNoKGgpfSx1bnNoaWZ0OmZ1bmN0aW9uIHUodCxlLG4sYSxsLGMpe2NvbnN0IHU9cyh0LGUsbixhLGwsYyk7bi50cmFuc21pc3Npb24+MD9yLnVuc2hpZnQodSk6ITA9PT1uLnRyYW5zcGFyZW50P28udW5zaGlmdCh1KTppLnVuc2hpZnQodSl9LGZpbmlzaDpmdW5jdGlvbiBoKCl7Zm9yKGxldCB0PW4saT1lLmxlbmd0aDt0PGk7dCsrKXtjb25zdCBuPWVbdF07aWYobnVsbD09PW4uaWQpYnJlYWs7bi5pZD1udWxsLG4ub2JqZWN0PW51bGwsbi5nZW9tZXRyeT1udWxsLG4ubWF0ZXJpYWw9bnVsbCxuLnByb2dyYW09bnVsbCxuLmdyb3VwPW51bGx9fSxzb3J0OmZ1bmN0aW9uIGQodCxlKXtpLmxlbmd0aD4xJiZpLnNvcnQodHx8dzV0KSxyLmxlbmd0aD4xJiZyLnNvcnQoZXx8UzV0KSxvLmxlbmd0aD4xJiZvLnNvcnQoZXx8UzV0KX19fWZ1bmN0aW9uIEU1dCh0KXtsZXQgZT1uZXcgV2Vha01hcDtyZXR1cm57Z2V0OmZ1bmN0aW9uIG4oaSxyKXtsZXQgbztyZXR1cm4hMT09PWUuaGFzKGkpPyhvPW5ldyBNNXQodCksZS5zZXQoaSxbb10pKTpyPj1lLmdldChpKS5sZW5ndGg/KG89bmV3IE01dCh0KSxlLmdldChpKS5wdXNoKG8pKTpvPWUuZ2V0KGkpW3JdLG99LGRpc3Bvc2U6ZnVuY3Rpb24gaSgpe2U9bmV3IFdlYWtNYXB9fX1mdW5jdGlvbiBUNXQoKXtjb25zdCB0PXt9O3JldHVybntnZXQ6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09dFtlLmlkXSlyZXR1cm4gdFtlLmlkXTtsZXQgbjtzd2l0Y2goZS50eXBlKXtjYXNlIkRpcmVjdGlvbmFsTGlnaHQiOm49e2RpcmVjdGlvbjpuZXcgQ0p0LGNvbG9yOm5ldyAkUXR9O2JyZWFrO2Nhc2UiU3BvdExpZ2h0IjpuPXtwb3NpdGlvbjpuZXcgQ0p0LGRpcmVjdGlvbjpuZXcgQ0p0LGNvbG9yOm5ldyAkUXQsZGlzdGFuY2U6MCxjb25lQ29zOjAscGVudW1icmFDb3M6MCxkZWNheTowfTticmVhaztjYXNlIlBvaW50TGlnaHQiOm49e3Bvc2l0aW9uOm5ldyBDSnQsY29sb3I6bmV3ICRRdCxkaXN0YW5jZTowLGRlY2F5OjB9O2JyZWFrO2Nhc2UiSGVtaXNwaGVyZUxpZ2h0IjpuPXtkaXJlY3Rpb246bmV3IENKdCxza3lDb2xvcjpuZXcgJFF0LGdyb3VuZENvbG9yOm5ldyAkUXR9O2JyZWFrO2Nhc2UiUmVjdEFyZWFMaWdodCI6bj17Y29sb3I6bmV3ICRRdCxwb3NpdGlvbjpuZXcgQ0p0LGhhbGZXaWR0aDpuZXcgQ0p0LGhhbGZIZWlnaHQ6bmV3IENKdH19cmV0dXJuIHRbZS5pZF09bixufX19bGV0IEM1dD0wO2Z1bmN0aW9uIEE1dCh0LGUpe3JldHVybihlLmNhc3RTaGFkb3c/MTowKS0odC5jYXN0U2hhZG93PzE6MCl9ZnVuY3Rpb24gazV0KHQsZSl7Y29uc3Qgbj1uZXcgVDV0LGk9KGZ1bmN0aW9uIHIoKXtjb25zdCB0PXt9O3JldHVybntnZXQ6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09dFtlLmlkXSlyZXR1cm4gdFtlLmlkXTtsZXQgbjtzd2l0Y2goZS50eXBlKXtjYXNlIkRpcmVjdGlvbmFsTGlnaHQiOmNhc2UiU3BvdExpZ2h0IjpuPXtzaGFkb3dCaWFzOjAsc2hhZG93Tm9ybWFsQmlhczowLHNoYWRvd1JhZGl1czoxLHNoYWRvd01hcFNpemU6bmV3IG1KdH07YnJlYWs7Y2FzZSJQb2ludExpZ2h0IjpuPXtzaGFkb3dCaWFzOjAsc2hhZG93Tm9ybWFsQmlhczowLHNoYWRvd1JhZGl1czoxLHNoYWRvd01hcFNpemU6bmV3IG1KdCxzaGFkb3dDYW1lcmFOZWFyOjEsc2hhZG93Q2FtZXJhRmFyOjFlM319cmV0dXJuIHRbZS5pZF09bixufX19KSgpLG89e3ZlcnNpb246MCxoYXNoOntkaXJlY3Rpb25hbExlbmd0aDotMSxwb2ludExlbmd0aDotMSxzcG90TGVuZ3RoOi0xLHJlY3RBcmVhTGVuZ3RoOi0xLGhlbWlMZW5ndGg6LTEsbnVtRGlyZWN0aW9uYWxTaGFkb3dzOi0xLG51bVBvaW50U2hhZG93czotMSxudW1TcG90U2hhZG93czotMX0sYW1iaWVudDpbMCwwLDBdLHByb2JlOltdLGRpcmVjdGlvbmFsOltdLGRpcmVjdGlvbmFsU2hhZG93OltdLGRpcmVjdGlvbmFsU2hhZG93TWFwOltdLGRpcmVjdGlvbmFsU2hhZG93TWF0cml4OltdLHNwb3Q6W10sc3BvdFNoYWRvdzpbXSxzcG90U2hhZG93TWFwOltdLHNwb3RTaGFkb3dNYXRyaXg6W10scmVjdEFyZWE6W10scmVjdEFyZWFMVEMxOm51bGwscmVjdEFyZWFMVEMyOm51bGwscG9pbnQ6W10scG9pbnRTaGFkb3c6W10scG9pbnRTaGFkb3dNYXA6W10scG9pbnRTaGFkb3dNYXRyaXg6W10saGVtaTpbXX07Zm9yKGxldCB0PTA7dDw5O3QrKylvLnByb2JlLnB1c2gobmV3IENKdCk7Y29uc3QgYT1uZXcgQ0p0LHM9bmV3IHJRdCxsPW5ldyByUXQ7cmV0dXJue3NldHVwOmZ1bmN0aW9uIGMocil7bGV0IGE9MCxzPTAsbD0wO2ZvcihsZXQgdD0wO3Q8OTt0Kyspby5wcm9iZVt0XS5zZXQoMCwwLDApO2xldCBjPTAsdT0wLGg9MCxkPTAscD0wLGY9MCxtPTAsZz0wO3Iuc29ydChBNXQpO2ZvcihsZXQgdD0wLGU9ci5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1yW3RdLF89ZS5jb2xvcix5PWUuaW50ZW5zaXR5LHY9ZS5kaXN0YW5jZSxiPWUuc2hhZG93JiZlLnNoYWRvdy5tYXA/ZS5zaGFkb3cubWFwLnRleHR1cmU6bnVsbDtpZihlLmlzQW1iaWVudExpZ2h0KWErPV8ucip5LHMrPV8uZyp5LGwrPV8uYip5O2Vsc2UgaWYoZS5pc0xpZ2h0UHJvYmUpZm9yKGxldCB0PTA7dDw5O3QrKylvLnByb2JlW3RdLmFkZFNjYWxlZFZlY3RvcihlLnNoLmNvZWZmaWNpZW50c1t0XSx5KTtlbHNlIGlmKGUuaXNEaXJlY3Rpb25hbExpZ2h0KXtjb25zdCB0PW4uZ2V0KGUpO2lmKHQuY29sb3IuY29weShlLmNvbG9yKS5tdWx0aXBseVNjYWxhcihlLmludGVuc2l0eSksZS5jYXN0U2hhZG93KXtjb25zdCB0PWUuc2hhZG93LG49aS5nZXQoZSk7bi5zaGFkb3dCaWFzPXQuYmlhcyxuLnNoYWRvd05vcm1hbEJpYXM9dC5ub3JtYWxCaWFzLG4uc2hhZG93UmFkaXVzPXQucmFkaXVzLG4uc2hhZG93TWFwU2l6ZT10Lm1hcFNpemUsby5kaXJlY3Rpb25hbFNoYWRvd1tjXT1uLG8uZGlyZWN0aW9uYWxTaGFkb3dNYXBbY109YixvLmRpcmVjdGlvbmFsU2hhZG93TWF0cml4W2NdPWUuc2hhZG93Lm1hdHJpeCxmKyt9by5kaXJlY3Rpb25hbFtjXT10LGMrK31lbHNlIGlmKGUuaXNTcG90TGlnaHQpe2NvbnN0IHQ9bi5nZXQoZSk7aWYodC5wb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oZS5tYXRyaXhXb3JsZCksdC5jb2xvci5jb3B5KF8pLm11bHRpcGx5U2NhbGFyKHkpLHQuZGlzdGFuY2U9dix0LmNvbmVDb3M9TWF0aC5jb3MoZS5hbmdsZSksdC5wZW51bWJyYUNvcz1NYXRoLmNvcyhlLmFuZ2xlKigxLWUucGVudW1icmEpKSx0LmRlY2F5PWUuZGVjYXksZS5jYXN0U2hhZG93KXtjb25zdCB0PWUuc2hhZG93LG49aS5nZXQoZSk7bi5zaGFkb3dCaWFzPXQuYmlhcyxuLnNoYWRvd05vcm1hbEJpYXM9dC5ub3JtYWxCaWFzLG4uc2hhZG93UmFkaXVzPXQucmFkaXVzLG4uc2hhZG93TWFwU2l6ZT10Lm1hcFNpemUsby5zcG90U2hhZG93W2hdPW4sby5zcG90U2hhZG93TWFwW2hdPWIsby5zcG90U2hhZG93TWF0cml4W2hdPWUuc2hhZG93Lm1hdHJpeCxnKyt9by5zcG90W2hdPXQsaCsrfWVsc2UgaWYoZS5pc1JlY3RBcmVhTGlnaHQpe2NvbnN0IHQ9bi5nZXQoZSk7dC5jb2xvci5jb3B5KF8pLm11bHRpcGx5U2NhbGFyKHkpLHQuaGFsZldpZHRoLnNldCguNSplLndpZHRoLDAsMCksdC5oYWxmSGVpZ2h0LnNldCgwLC41KmUuaGVpZ2h0LDApLG8ucmVjdEFyZWFbZF09dCxkKyt9ZWxzZSBpZihlLmlzUG9pbnRMaWdodCl7Y29uc3QgdD1uLmdldChlKTtpZih0LmNvbG9yLmNvcHkoZS5jb2xvcikubXVsdGlwbHlTY2FsYXIoZS5pbnRlbnNpdHkpLHQuZGlzdGFuY2U9ZS5kaXN0YW5jZSx0LmRlY2F5PWUuZGVjYXksZS5jYXN0U2hhZG93KXtjb25zdCB0PWUuc2hhZG93LG49aS5nZXQoZSk7bi5zaGFkb3dCaWFzPXQuYmlhcyxuLnNoYWRvd05vcm1hbEJpYXM9dC5ub3JtYWxCaWFzLG4uc2hhZG93UmFkaXVzPXQucmFkaXVzLG4uc2hhZG93TWFwU2l6ZT10Lm1hcFNpemUsbi5zaGFkb3dDYW1lcmFOZWFyPXQuY2FtZXJhLm5lYXIsbi5zaGFkb3dDYW1lcmFGYXI9dC5jYW1lcmEuZmFyLG8ucG9pbnRTaGFkb3dbdV09bixvLnBvaW50U2hhZG93TWFwW3VdPWIsby5wb2ludFNoYWRvd01hdHJpeFt1XT1lLnNoYWRvdy5tYXRyaXgsbSsrfW8ucG9pbnRbdV09dCx1Kyt9ZWxzZSBpZihlLmlzSGVtaXNwaGVyZUxpZ2h0KXtjb25zdCB0PW4uZ2V0KGUpO3Quc2t5Q29sb3IuY29weShlLmNvbG9yKS5tdWx0aXBseVNjYWxhcih5KSx0Lmdyb3VuZENvbG9yLmNvcHkoZS5ncm91bmRDb2xvcikubXVsdGlwbHlTY2FsYXIoeSksby5oZW1pW3BdPXQscCsrfX1kPjAmJihlLmlzV2ViR0wyfHwhMD09PXQuaGFzKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKT8oby5yZWN0QXJlYUxUQzE9bDB0LkxUQ19GTE9BVF8xLG8ucmVjdEFyZWFMVEMyPWwwdC5MVENfRkxPQVRfMik6ITA9PT10LmhhcygiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKT8oby5yZWN0QXJlYUxUQzE9bDB0LkxUQ19IQUxGXzEsby5yZWN0QXJlYUxUQzI9bDB0LkxUQ19IQUxGXzIpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXI6IFVuYWJsZSB0byB1c2UgUmVjdEFyZWFMaWdodC4gTWlzc2luZyBXZWJHTCBleHRlbnNpb25zLiIpKSxvLmFtYmllbnRbMF09YSxvLmFtYmllbnRbMV09cyxvLmFtYmllbnRbMl09bDtjb25zdCBfPW8uaGFzaDtfLmRpcmVjdGlvbmFsTGVuZ3RoPT09YyYmXy5wb2ludExlbmd0aD09PXUmJl8uc3BvdExlbmd0aD09PWgmJl8ucmVjdEFyZWFMZW5ndGg9PT1kJiZfLmhlbWlMZW5ndGg9PT1wJiZfLm51bURpcmVjdGlvbmFsU2hhZG93cz09PWYmJl8ubnVtUG9pbnRTaGFkb3dzPT09bSYmXy5udW1TcG90U2hhZG93cz09PWd8fChvLmRpcmVjdGlvbmFsLmxlbmd0aD1jLG8uc3BvdC5sZW5ndGg9aCxvLnJlY3RBcmVhLmxlbmd0aD1kLG8ucG9pbnQubGVuZ3RoPXUsby5oZW1pLmxlbmd0aD1wLG8uZGlyZWN0aW9uYWxTaGFkb3cubGVuZ3RoPWYsby5kaXJlY3Rpb25hbFNoYWRvd01hcC5sZW5ndGg9ZixvLnBvaW50U2hhZG93Lmxlbmd0aD1tLG8ucG9pbnRTaGFkb3dNYXAubGVuZ3RoPW0sby5zcG90U2hhZG93Lmxlbmd0aD1nLG8uc3BvdFNoYWRvd01hcC5sZW5ndGg9ZyxvLmRpcmVjdGlvbmFsU2hhZG93TWF0cml4Lmxlbmd0aD1mLG8ucG9pbnRTaGFkb3dNYXRyaXgubGVuZ3RoPW0sby5zcG90U2hhZG93TWF0cml4Lmxlbmd0aD1nLF8uZGlyZWN0aW9uYWxMZW5ndGg9YyxfLnBvaW50TGVuZ3RoPXUsXy5zcG90TGVuZ3RoPWgsXy5yZWN0QXJlYUxlbmd0aD1kLF8uaGVtaUxlbmd0aD1wLF8ubnVtRGlyZWN0aW9uYWxTaGFkb3dzPWYsXy5udW1Qb2ludFNoYWRvd3M9bSxfLm51bVNwb3RTaGFkb3dzPWcsby52ZXJzaW9uPUM1dCsrKX0sc2V0dXBWaWV3OmZ1bmN0aW9uIHUodCxlKXtsZXQgbj0wLGk9MCxyPTAsYz0wLHU9MDtjb25zdCBoPWUubWF0cml4V29ybGRJbnZlcnNlO2ZvcihsZXQgZT0wLGQ9dC5sZW5ndGg7ZTxkO2UrKyl7Y29uc3QgZD10W2VdO2lmKGQuaXNEaXJlY3Rpb25hbExpZ2h0KXtjb25zdCB0PW8uZGlyZWN0aW9uYWxbbl07dC5kaXJlY3Rpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGQubWF0cml4V29ybGQpLGEuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGQudGFyZ2V0Lm1hdHJpeFdvcmxkKSx0LmRpcmVjdGlvbi5zdWIoYSksdC5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKGgpLG4rK31lbHNlIGlmKGQuaXNTcG90TGlnaHQpe2NvbnN0IHQ9by5zcG90W3JdO3QucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGQubWF0cml4V29ybGQpLHQucG9zaXRpb24uYXBwbHlNYXRyaXg0KGgpLHQuZGlyZWN0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihkLm1hdHJpeFdvcmxkKSxhLnNldEZyb21NYXRyaXhQb3NpdGlvbihkLnRhcmdldC5tYXRyaXhXb3JsZCksdC5kaXJlY3Rpb24uc3ViKGEpLHQuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbihoKSxyKyt9ZWxzZSBpZihkLmlzUmVjdEFyZWFMaWdodCl7Y29uc3QgdD1vLnJlY3RBcmVhW2NdO3QucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGQubWF0cml4V29ybGQpLHQucG9zaXRpb24uYXBwbHlNYXRyaXg0KGgpLGwuaWRlbnRpdHkoKSxzLmNvcHkoZC5tYXRyaXhXb3JsZCkscy5wcmVtdWx0aXBseShoKSxsLmV4dHJhY3RSb3RhdGlvbihzKSx0LmhhbGZXaWR0aC5zZXQoLjUqZC53aWR0aCwwLDApLHQuaGFsZkhlaWdodC5zZXQoMCwuNSpkLmhlaWdodCwwKSx0LmhhbGZXaWR0aC5hcHBseU1hdHJpeDQobCksdC5oYWxmSGVpZ2h0LmFwcGx5TWF0cml4NChsKSxjKyt9ZWxzZSBpZihkLmlzUG9pbnRMaWdodCl7Y29uc3QgdD1vLnBvaW50W2ldO3QucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGQubWF0cml4V29ybGQpLHQucG9zaXRpb24uYXBwbHlNYXRyaXg0KGgpLGkrK31lbHNlIGlmKGQuaXNIZW1pc3BoZXJlTGlnaHQpe2NvbnN0IHQ9by5oZW1pW3VdO3QuZGlyZWN0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihkLm1hdHJpeFdvcmxkKSx0LmRpcmVjdGlvbi50cmFuc2Zvcm1EaXJlY3Rpb24oaCksdC5kaXJlY3Rpb24ubm9ybWFsaXplKCksdSsrfX19LHN0YXRlOm99fWZ1bmN0aW9uIEw1dCh0LGUpe2NvbnN0IG49bmV3IGs1dCh0LGUpLGk9W10scj1bXTtyZXR1cm57aW5pdDpmdW5jdGlvbiBvKCl7aS5sZW5ndGg9MCxyLmxlbmd0aD0wfSxzdGF0ZTp7bGlnaHRzQXJyYXk6aSxzaGFkb3dzQXJyYXk6cixsaWdodHM6bn0sc2V0dXBMaWdodHM6ZnVuY3Rpb24gYSgpe24uc2V0dXAoaSl9LHNldHVwTGlnaHRzVmlldzpmdW5jdGlvbiBzKHQpe24uc2V0dXBWaWV3KGksdCl9LHB1c2hMaWdodDpmdW5jdGlvbiBsKHQpe2kucHVzaCh0KX0scHVzaFNoYWRvdzpmdW5jdGlvbiBjKHQpe3IucHVzaCh0KX19fWZ1bmN0aW9uIFA1dCh0LGUpe2xldCBuPW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24gaShyLG89MCl7bGV0IGE7cmV0dXJuITE9PT1uLmhhcyhyKT8oYT1uZXcgTDV0KHQsZSksbi5zZXQocixbYV0pKTpvPj1uLmdldChyKS5sZW5ndGg/KGE9bmV3IEw1dCh0LGUpLG4uZ2V0KHIpLnB1c2goYSkpOmE9bi5nZXQocilbb10sYX0sZGlzcG9zZTpmdW5jdGlvbiByKCl7bj1uZXcgV2Vha01hcH19fWNsYXNzIE41dCBleHRlbmRzIFVRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaERlcHRoTWF0ZXJpYWwiLHRoaXMuZGVwdGhQYWNraW5nPTMyMDAsdGhpcy5tYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLmZvZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGVwdGhQYWNraW5nPXQuZGVwdGhQYWNraW5nLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzfX1ONXQucHJvdG90eXBlLmlzTWVzaERlcHRoTWF0ZXJpYWw9ITA7Y2xhc3MgSTV0IGV4dGVuZHMgVVF0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoRGlzdGFuY2VNYXRlcmlhbCIsdGhpcy5yZWZlcmVuY2VQb3NpdGlvbj1uZXcgQ0p0LHRoaXMubmVhckRpc3RhbmNlPTEsdGhpcy5mYXJEaXN0YW5jZT0xZTMsdGhpcy5tYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5mb2c9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnJlZmVyZW5jZVBvc2l0aW9uLmNvcHkodC5yZWZlcmVuY2VQb3NpdGlvbiksdGhpcy5uZWFyRGlzdGFuY2U9dC5uZWFyRGlzdGFuY2UsdGhpcy5mYXJEaXN0YW5jZT10LmZhckRpc3RhbmNlLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzfX1mdW5jdGlvbiBSNXQodCxlLG4pe2xldCBpPW5ldyBpMHQ7Y29uc3Qgcj1uZXcgbUp0LG89bmV3IG1KdCxhPW5ldyB3SnQscz1uZXcgTjV0KHtkZXB0aFBhY2tpbmc6MzIwMX0pLGw9bmV3IEk1dCxjPXt9LHU9bi5tYXhUZXh0dXJlU2l6ZSxoPXswOjEsMTowLDI6Mn0sZD1uZXcgRzF0KHtkZWZpbmVzOntTQU1QTEVfUkFURToyLzgsSEFMRl9TQU1QTEVfUkFURToxLzh9LHVuaWZvcm1zOntzaGFkb3dfcGFzczp7dmFsdWU6bnVsbH0scmVzb2x1dGlvbjp7dmFsdWU6bmV3IG1KdH0scmFkaXVzOnt2YWx1ZTo0fX0sdmVydGV4U2hhZGVyOiJ2b2lkIG1haW4oKSB7XG5cdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApO1xufSIsZnJhZ21lbnRTaGFkZXI6InVuaWZvcm0gc2FtcGxlcjJEIHNoYWRvd19wYXNzO1xudW5pZm9ybSB2ZWMyIHJlc29sdXRpb247XG51bmlmb3JtIGZsb2F0IHJhZGl1cztcbiNpbmNsdWRlIDxwYWNraW5nPlxudm9pZCBtYWluKCkge1xuXHRmbG9hdCBtZWFuID0gMC4wO1xuXHRmbG9hdCBzcXVhcmVkX21lYW4gPSAwLjA7XG5cdGZsb2F0IGRlcHRoID0gdW5wYWNrUkdCQVRvRGVwdGgoIHRleHR1cmUyRCggc2hhZG93X3Bhc3MsICggZ2xfRnJhZ0Nvb3JkLnh5ICkgLyByZXNvbHV0aW9uICkgKTtcblx0Zm9yICggZmxvYXQgaSA9IC0xLjA7IGkgPCAxLjAgOyBpICs9IFNBTVBMRV9SQVRFKSB7XG5cdFx0I2lmZGVmIEhPUklaT05UQUxfUEFTU1xuXHRcdFx0dmVjMiBkaXN0cmlidXRpb24gPSB1bnBhY2tSR0JBVG8ySGFsZiggdGV4dHVyZTJEKCBzaGFkb3dfcGFzcywgKCBnbF9GcmFnQ29vcmQueHkgKyB2ZWMyKCBpLCAwLjAgKSAqIHJhZGl1cyApIC8gcmVzb2x1dGlvbiApICk7XG5cdFx0XHRtZWFuICs9IGRpc3RyaWJ1dGlvbi54O1xuXHRcdFx0c3F1YXJlZF9tZWFuICs9IGRpc3RyaWJ1dGlvbi55ICogZGlzdHJpYnV0aW9uLnkgKyBkaXN0cmlidXRpb24ueCAqIGRpc3RyaWJ1dGlvbi54O1xuXHRcdCNlbHNlXG5cdFx0XHRmbG9hdCBkZXB0aCA9IHVucGFja1JHQkFUb0RlcHRoKCB0ZXh0dXJlMkQoIHNoYWRvd19wYXNzLCAoIGdsX0ZyYWdDb29yZC54eSArIHZlYzIoIDAuMCwgaSApICogcmFkaXVzICkgLyByZXNvbHV0aW9uICkgKTtcblx0XHRcdG1lYW4gKz0gZGVwdGg7XG5cdFx0XHRzcXVhcmVkX21lYW4gKz0gZGVwdGggKiBkZXB0aDtcblx0XHQjZW5kaWZcblx0fVxuXHRtZWFuID0gbWVhbiAqIEhBTEZfU0FNUExFX1JBVEU7XG5cdHNxdWFyZWRfbWVhbiA9IHNxdWFyZWRfbWVhbiAqIEhBTEZfU0FNUExFX1JBVEU7XG5cdGZsb2F0IHN0ZF9kZXYgPSBzcXJ0KCBzcXVhcmVkX21lYW4gLSBtZWFuICogbWVhbiApO1xuXHRnbF9GcmFnQ29sb3IgPSBwYWNrMkhhbGZUb1JHQkEoIHZlYzIoIG1lYW4sIHN0ZF9kZXYgKSApO1xufSJ9KSxwPWQuY2xvbmUoKTtwLmRlZmluZXMuSE9SSVpPTlRBTF9QQVNTPTE7Y29uc3QgZj1uZXcgYjF0O2Yuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IFFRdChuZXcgRmxvYXQzMkFycmF5KFstMSwtMSwuNSwzLC0xLC41LC0xLDMsLjVdKSwzKSk7Y29uc3QgbT1uZXcgQjF0KGYsZCksZz10aGlzO2Z1bmN0aW9uIF8obixpKXtjb25zdCByPWUudXBkYXRlKG0pO2QudW5pZm9ybXMuc2hhZG93X3Bhc3MudmFsdWU9bi5tYXAudGV4dHVyZSxkLnVuaWZvcm1zLnJlc29sdXRpb24udmFsdWU9bi5tYXBTaXplLGQudW5pZm9ybXMucmFkaXVzLnZhbHVlPW4ucmFkaXVzLHQuc2V0UmVuZGVyVGFyZ2V0KG4ubWFwUGFzcyksdC5jbGVhcigpLHQucmVuZGVyQnVmZmVyRGlyZWN0KGksbnVsbCxyLGQsbSxudWxsKSxwLnVuaWZvcm1zLnNoYWRvd19wYXNzLnZhbHVlPW4ubWFwUGFzcy50ZXh0dXJlLHAudW5pZm9ybXMucmVzb2x1dGlvbi52YWx1ZT1uLm1hcFNpemUscC51bmlmb3Jtcy5yYWRpdXMudmFsdWU9bi5yYWRpdXMsdC5zZXRSZW5kZXJUYXJnZXQobi5tYXApLHQuY2xlYXIoKSx0LnJlbmRlckJ1ZmZlckRpcmVjdChpLG51bGwscixwLG0sbnVsbCl9ZnVuY3Rpb24geShlLG4saSxyLG8sYSx1KXtsZXQgZD1udWxsO2NvbnN0IHA9ITA9PT1yLmlzUG9pbnRMaWdodD9lLmN1c3RvbURpc3RhbmNlTWF0ZXJpYWw6ZS5jdXN0b21EZXB0aE1hdGVyaWFsO2lmKGQ9dm9pZCAwIT09cD9wOiEwPT09ci5pc1BvaW50TGlnaHQ/bDpzLHQubG9jYWxDbGlwcGluZ0VuYWJsZWQmJiEwPT09aS5jbGlwU2hhZG93cyYmMCE9PWkuY2xpcHBpbmdQbGFuZXMubGVuZ3RoKXtjb25zdCB0PWQudXVpZCxlPWkudXVpZDtsZXQgbj1jW3RdO3ZvaWQgMD09PW4mJihuPXt9LGNbdF09bik7bGV0IHI9bltlXTt2b2lkIDA9PT1yJiYocj1kLmNsb25lKCksbltlXT1yKSxkPXJ9cmV0dXJuIGQudmlzaWJsZT1pLnZpc2libGUsZC53aXJlZnJhbWU9aS53aXJlZnJhbWUsZC5zaWRlPTM9PT11P251bGwhPT1pLnNoYWRvd1NpZGU/aS5zaGFkb3dTaWRlOmkuc2lkZTpudWxsIT09aS5zaGFkb3dTaWRlP2kuc2hhZG93U2lkZTpoW2kuc2lkZV0sZC5jbGlwU2hhZG93cz1pLmNsaXBTaGFkb3dzLGQuY2xpcHBpbmdQbGFuZXM9aS5jbGlwcGluZ1BsYW5lcyxkLmNsaXBJbnRlcnNlY3Rpb249aS5jbGlwSW50ZXJzZWN0aW9uLGQud2lyZWZyYW1lTGluZXdpZHRoPWkud2lyZWZyYW1lTGluZXdpZHRoLGQubGluZXdpZHRoPWkubGluZXdpZHRoLCEwPT09ci5pc1BvaW50TGlnaHQmJiEwPT09ZC5pc01lc2hEaXN0YW5jZU1hdGVyaWFsJiYoZC5yZWZlcmVuY2VQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oci5tYXRyaXhXb3JsZCksZC5uZWFyRGlzdGFuY2U9byxkLmZhckRpc3RhbmNlPWEpLGR9ZnVuY3Rpb24gdihuLHIsbyxhLHMpe2lmKCExPT09bi52aXNpYmxlKXJldHVybjtpZihuLmxheWVycy50ZXN0KHIubGF5ZXJzKSYmKG4uaXNNZXNofHxuLmlzTGluZXx8bi5pc1BvaW50cykmJihuLmNhc3RTaGFkb3d8fG4ucmVjZWl2ZVNoYWRvdyYmMz09PXMpJiYoIW4uZnJ1c3R1bUN1bGxlZHx8aS5pbnRlcnNlY3RzT2JqZWN0KG4pKSl7bi5tb2RlbFZpZXdNYXRyaXgubXVsdGlwbHlNYXRyaWNlcyhvLm1hdHJpeFdvcmxkSW52ZXJzZSxuLm1hdHJpeFdvcmxkKTtjb25zdCBpPWUudXBkYXRlKG4pLHI9bi5tYXRlcmlhbDtpZihBcnJheS5pc0FycmF5KHIpKXtjb25zdCBlPWkuZ3JvdXBzO2ZvcihsZXQgbD0wLGM9ZS5sZW5ndGg7bDxjO2wrKyl7Y29uc3QgYz1lW2xdLHU9cltjLm1hdGVyaWFsSW5kZXhdO2lmKHUmJnUudmlzaWJsZSl7Y29uc3QgZT15KG4sMCx1LGEsby5uZWFyLG8uZmFyLHMpO3QucmVuZGVyQnVmZmVyRGlyZWN0KG8sbnVsbCxpLGUsbixjKX19fWVsc2UgaWYoci52aXNpYmxlKXtjb25zdCBlPXkobiwwLHIsYSxvLm5lYXIsby5mYXIscyk7dC5yZW5kZXJCdWZmZXJEaXJlY3QobyxudWxsLGksZSxuLG51bGwpfX1jb25zdCBsPW4uY2hpbGRyZW47Zm9yKGxldCB0PTAsZT1sLmxlbmd0aDt0PGU7dCsrKXYobFt0XSxyLG8sYSxzKX10aGlzLmVuYWJsZWQ9ITEsdGhpcy5hdXRvVXBkYXRlPSEwLHRoaXMubmVlZHNVcGRhdGU9ITEsdGhpcy50eXBlPTEsdGhpcy5yZW5kZXI9ZnVuY3Rpb24oZSxuLHMpe2lmKCExPT09Zy5lbmFibGVkKXJldHVybjtpZighMT09PWcuYXV0b1VwZGF0ZSYmITE9PT1nLm5lZWRzVXBkYXRlKXJldHVybjtpZigwPT09ZS5sZW5ndGgpcmV0dXJuO2NvbnN0IGw9dC5nZXRSZW5kZXJUYXJnZXQoKSxjPXQuZ2V0QWN0aXZlQ3ViZUZhY2UoKSxoPXQuZ2V0QWN0aXZlTWlwbWFwTGV2ZWwoKSxkPXQuc3RhdGU7ZC5zZXRCbGVuZGluZygwKSxkLmJ1ZmZlcnMuY29sb3Iuc2V0Q2xlYXIoMSwxLDEsMSksZC5idWZmZXJzLmRlcHRoLnNldFRlc3QoITApLGQuc2V0U2Npc3NvclRlc3QoITEpO2ZvcihsZXQgbD0wLGM9ZS5sZW5ndGg7bDxjO2wrKyl7Y29uc3QgYz1lW2xdLGg9Yy5zaGFkb3c7aWYodm9pZCAwPT09aCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFNoYWRvd01hcDoiLGMsImhhcyBubyBzaGFkb3cuIik7Y29udGludWV9aWYoITE9PT1oLmF1dG9VcGRhdGUmJiExPT09aC5uZWVkc1VwZGF0ZSljb250aW51ZTtyLmNvcHkoaC5tYXBTaXplKTtjb25zdCBwPWguZ2V0RnJhbWVFeHRlbnRzKCk7aWYoci5tdWx0aXBseShwKSxvLmNvcHkoaC5tYXBTaXplKSwoci54PnV8fHIueT51KSYmKHIueD51JiYoby54PU1hdGguZmxvb3IodS9wLngpLHIueD1vLngqcC54LGgubWFwU2l6ZS54PW8ueCksci55PnUmJihvLnk9TWF0aC5mbG9vcih1L3AueSksci55PW8ueSpwLnksaC5tYXBTaXplLnk9by55KSksbnVsbD09PWgubWFwJiYhaC5pc1BvaW50TGlnaHRTaGFkb3cmJjM9PT10aGlzLnR5cGUpe2NvbnN0IHQ9e21pbkZpbHRlcjplWnQsbWFnRmlsdGVyOmVadCxmb3JtYXQ6aFp0fTtoLm1hcD1uZXcgU0p0KHIueCxyLnksdCksaC5tYXAudGV4dHVyZS5uYW1lPWMubmFtZSsiLnNoYWRvd01hcCIsaC5tYXBQYXNzPW5ldyBTSnQoci54LHIueSx0KSxoLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9bnVsbD09PWgubWFwJiYoaC5tYXA9bmV3IFNKdChyLngsci55LHttaW5GaWx0ZXI6Skt0LG1hZ0ZpbHRlcjpKS3QsZm9ybWF0OmhadH0pLGgubWFwLnRleHR1cmUubmFtZT1jLm5hbWUrIi5zaGFkb3dNYXAiLGguY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSksdC5zZXRSZW5kZXJUYXJnZXQoaC5tYXApLHQuY2xlYXIoKTtjb25zdCBmPWguZ2V0Vmlld3BvcnRDb3VudCgpO2ZvcihsZXQgdD0wO3Q8Zjt0Kyspe2NvbnN0IGU9aC5nZXRWaWV3cG9ydCh0KTthLnNldChvLngqZS54LG8ueSplLnksby54KmUueixvLnkqZS53KSxkLnZpZXdwb3J0KGEpLGgudXBkYXRlTWF0cmljZXMoYyx0KSxpPWguZ2V0RnJ1c3R1bSgpLHYobixzLGguY2FtZXJhLGMsdGhpcy50eXBlKX1oLmlzUG9pbnRMaWdodFNoYWRvd3x8MyE9PXRoaXMudHlwZXx8XyhoLHMpLGgubmVlZHNVcGRhdGU9ITF9Zy5uZWVkc1VwZGF0ZT0hMSx0LnNldFJlbmRlclRhcmdldChsLGMsaCl9fWZ1bmN0aW9uIE81dCh0LGUsbil7Y29uc3QgaT1uLmlzV2ViR0wyLHI9bmV3KGZ1bmN0aW9uIG8oKXtsZXQgZT0hMTtjb25zdCBuPW5ldyB3SnQ7bGV0IGk9bnVsbDtjb25zdCByPW5ldyB3SnQoMCwwLDAsMCk7cmV0dXJue3NldE1hc2s6ZnVuY3Rpb24obil7aT09PW58fGV8fCh0LmNvbG9yTWFzayhuLG4sbixuKSxpPW4pfSxzZXRMb2NrZWQ6ZnVuY3Rpb24odCl7ZT10fSxzZXRDbGVhcjpmdW5jdGlvbihlLGksbyxhLHMpeyEwPT09cyYmKGUqPWEsaSo9YSxvKj1hKSxuLnNldChlLGksbyxhKSwhMT09PXIuZXF1YWxzKG4pJiYodC5jbGVhckNvbG9yKGUsaSxvLGEpLHIuY29weShuKSl9LHJlc2V0OmZ1bmN0aW9uKCl7ZT0hMSxpPW51bGwsci5zZXQoLTEsMCwwLDApfX19KSxhPW5ldyhmdW5jdGlvbiBzKCl7bGV0IGU9ITEsbj1udWxsLGk9bnVsbCxyPW51bGw7cmV0dXJue3NldFRlc3Q6ZnVuY3Rpb24odCl7dD9GKDI5MjkpOlYoMjkyOSl9LHNldE1hc2s6ZnVuY3Rpb24oaSl7bj09PWl8fGV8fCh0LmRlcHRoTWFzayhpKSxuPWkpfSxzZXRGdW5jOmZ1bmN0aW9uKGUpe2lmKGkhPT1lKXtpZihlKXN3aXRjaChlKXtjYXNlIDA6dC5kZXB0aEZ1bmMoNTEyKTticmVhaztjYXNlIDE6dC5kZXB0aEZ1bmMoNTE5KTticmVhaztjYXNlIDI6dC5kZXB0aEZ1bmMoNTEzKTticmVhaztjYXNlIDM6dC5kZXB0aEZ1bmMoNTE1KTticmVhaztjYXNlIDQ6dC5kZXB0aEZ1bmMoNTE0KTticmVhaztjYXNlIDU6dC5kZXB0aEZ1bmMoNTE4KTticmVhaztjYXNlIDY6dC5kZXB0aEZ1bmMoNTE2KTticmVhaztjYXNlIDc6dC5kZXB0aEZ1bmMoNTE3KTticmVhaztkZWZhdWx0OnQuZGVwdGhGdW5jKDUxNSl9ZWxzZSB0LmRlcHRoRnVuYyg1MTUpO2k9ZX19LHNldExvY2tlZDpmdW5jdGlvbih0KXtlPXR9LHNldENsZWFyOmZ1bmN0aW9uKGUpe3IhPT1lJiYodC5jbGVhckRlcHRoKGUpLHI9ZSl9LHJlc2V0OmZ1bmN0aW9uKCl7ZT0hMSxuPW51bGwsaT1udWxsLHI9bnVsbH19fSksbD1uZXcoZnVuY3Rpb24gYygpe2xldCBlPSExLG49bnVsbCxpPW51bGwscj1udWxsLG89bnVsbCxhPW51bGwscz1udWxsLGw9bnVsbCxjPW51bGw7cmV0dXJue3NldFRlc3Q6ZnVuY3Rpb24odCl7ZXx8KHQ/RigyOTYwKTpWKDI5NjApKX0sc2V0TWFzazpmdW5jdGlvbihpKXtuPT09aXx8ZXx8KHQuc3RlbmNpbE1hc2soaSksbj1pKX0sc2V0RnVuYzpmdW5jdGlvbihlLG4sYSl7aT09PWUmJnI9PT1uJiZvPT09YXx8KHQuc3RlbmNpbEZ1bmMoZSxuLGEpLGk9ZSxyPW4sbz1hKX0sc2V0T3A6ZnVuY3Rpb24oZSxuLGkpe2E9PT1lJiZzPT09biYmbD09PWl8fCh0LnN0ZW5jaWxPcChlLG4saSksYT1lLHM9bixsPWkpfSxzZXRMb2NrZWQ6ZnVuY3Rpb24odCl7ZT10fSxzZXRDbGVhcjpmdW5jdGlvbihlKXtjIT09ZSYmKHQuY2xlYXJTdGVuY2lsKGUpLGM9ZSl9LHJlc2V0OmZ1bmN0aW9uKCl7ZT0hMSxuPW51bGwsaT1udWxsLHI9bnVsbCxvPW51bGwsYT1udWxsLHM9bnVsbCxsPW51bGwsYz1udWxsfX19KTtsZXQgdT17fSxoPW51bGwsZD17fSxwPW51bGwsZj0hMSxtPW51bGwsZz1udWxsLF89bnVsbCx5PW51bGwsdj1udWxsLGI9bnVsbCx4PW51bGwsdz0hMSxTPW51bGwsTT1udWxsLEU9bnVsbCxUPW51bGwsQz1udWxsO2NvbnN0IEE9dC5nZXRQYXJhbWV0ZXIoMzU2NjEpO2xldCBrPSExLEw9MDtjb25zdCBQPXQuZ2V0UGFyYW1ldGVyKDc5MzgpOy0xIT09UC5pbmRleE9mKCJXZWJHTCIpPyhMPXBhcnNlRmxvYXQoL15XZWJHTCAoXGQpLy5leGVjKFApWzFdKSxrPUw+PTEpOi0xIT09UC5pbmRleE9mKCJPcGVuR0wgRVMiKSYmKEw9cGFyc2VGbG9hdCgvXk9wZW5HTCBFUyAoXGQpLy5leGVjKFApWzFdKSxrPUw+PTIpO2xldCBOPW51bGwsST17fTtjb25zdCBSPXQuZ2V0UGFyYW1ldGVyKDMwODgpLE89dC5nZXRQYXJhbWV0ZXIoMjk3OCksej0obmV3IHdKdCkuZnJvbUFycmF5KFIpLEQ9KG5ldyB3SnQpLmZyb21BcnJheShPKTtmdW5jdGlvbiBCKGUsbixpKXtjb25zdCByPW5ldyBVaW50OEFycmF5KDQpLG89dC5jcmVhdGVUZXh0dXJlKCk7dC5iaW5kVGV4dHVyZShlLG8pLHQudGV4UGFyYW1ldGVyaShlLDEwMjQxLDk3MjgpLHQudGV4UGFyYW1ldGVyaShlLDEwMjQwLDk3MjgpO2ZvcihsZXQgZT0wO2U8aTtlKyspdC50ZXhJbWFnZTJEKG4rZSwwLDY0MDgsMSwxLDAsNjQwOCw1MTIxLHIpO3JldHVybiBvfWNvbnN0IEg9e307ZnVuY3Rpb24gRihlKXshMCE9PXVbZV0mJih0LmVuYWJsZShlKSx1W2VdPSEwKX1mdW5jdGlvbiBWKGUpeyExIT09dVtlXSYmKHQuZGlzYWJsZShlKSx1W2VdPSExKX1IWzM1NTNdPUIoMzU1MywzNTUzLDEpLEhbMzQwNjddPUIoMzQwNjcsMzQwNjksNiksci5zZXRDbGVhcigwLDAsMCwxKSxhLnNldENsZWFyKDEpLGwuc2V0Q2xlYXIoMCksRigyOTI5KSxhLnNldEZ1bmMoMyksVyghMSkscSgxKSxGKDI4ODQpLEcoMCk7Y29uc3QgVT17W1ZLdF06MzI3NzQsMTAxOjMyNzc4LDEwMjozMjc3OX07aWYoaSlVWzEwM109MzI3NzUsVVsxMDRdPTMyNzc2O2Vsc2V7Y29uc3QgdD1lLmdldCgiRVhUX2JsZW5kX21pbm1heCIpO251bGwhPT10JiYoVVsxMDNdPXQuTUlOX0VYVCxVWzEwNF09dC5NQVhfRVhUKX1jb25zdCBqPXsyMDA6MCwyMDE6MSwyMDI6NzY4LDIwNDo3NzAsMjEwOjc3NiwyMDg6Nzc0LDIwNjo3NzIsMjAzOjc2OSwyMDU6NzcxLDIwOTo3NzUsMjA3Ojc3M307ZnVuY3Rpb24gRyhlLG4saSxyLG8sYSxzLGwpe2lmKDAhPT1lKXtpZighMT09PWYmJihGKDMwNDIpLGY9ITApLDU9PT1lKW89b3x8bixhPWF8fGkscz1zfHxyLG49PT1nJiZvPT09dnx8KHQuYmxlbmRFcXVhdGlvblNlcGFyYXRlKFVbbl0sVVtvXSksZz1uLHY9byksaT09PV8mJnI9PT15JiZhPT09YiYmcz09PXh8fCh0LmJsZW5kRnVuY1NlcGFyYXRlKGpbaV0saltyXSxqW2FdLGpbc10pLF89aSx5PXIsYj1hLHg9cyksbT1lLHc9bnVsbDtlbHNlIGlmKGUhPT1tfHxsIT09dyl7aWYoZz09PVZLdCYmdj09PVZLdHx8KHQuYmxlbmRFcXVhdGlvbigzMjc3NCksZz1WS3Qsdj1WS3QpLGwpc3dpdGNoKGUpe2Nhc2UgMTp0LmJsZW5kRnVuY1NlcGFyYXRlKDEsNzcxLDEsNzcxKTticmVhaztjYXNlIDI6dC5ibGVuZEZ1bmMoMSwxKTticmVhaztjYXNlIDM6dC5ibGVuZEZ1bmNTZXBhcmF0ZSgwLDAsNzY5LDc3MSk7YnJlYWs7Y2FzZSA0OnQuYmxlbmRGdW5jU2VwYXJhdGUoMCw3NjgsMCw3NzApO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZTogSW52YWxpZCBibGVuZGluZzogIixlKX1lbHNlIHN3aXRjaChlKXtjYXNlIDE6dC5ibGVuZEZ1bmNTZXBhcmF0ZSg3NzAsNzcxLDEsNzcxKTticmVhaztjYXNlIDI6dC5ibGVuZEZ1bmMoNzcwLDEpO2JyZWFrO2Nhc2UgMzp0LmJsZW5kRnVuYygwLDc2OSk7YnJlYWs7Y2FzZSA0OnQuYmxlbmRGdW5jKDAsNzY4KTticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IEludmFsaWQgYmxlbmRpbmc6ICIsZSl9Xz1udWxsLHk9bnVsbCxiPW51bGwseD1udWxsLG09ZSx3PWx9fWVsc2UhMD09PWYmJihWKDMwNDIpLGY9ITEpfWZ1bmN0aW9uIFcoZSl7UyE9PWUmJih0LmZyb250RmFjZShlPzIzMDQ6MjMwNSksUz1lKX1mdW5jdGlvbiBxKGUpezAhPT1lPyhGKDI4ODQpLGUhPT1NJiZ0LmN1bGxGYWNlKDE9PT1lPzEwMjk6Mj09PWU/MTAyODoxMDMyKSk6VigyODg0KSxNPWV9ZnVuY3Rpb24gWShlLG4saSl7ZT8oRigzMjgyMyksVD09PW4mJkM9PT1pfHwodC5wb2x5Z29uT2Zmc2V0KG4saSksVD1uLEM9aSkpOlYoMzI4MjMpfWZ1bmN0aW9uIFgoZSl7dm9pZCAwPT09ZSYmKGU9MzM5ODQrQS0xKSxOIT09ZSYmKHQuYWN0aXZlVGV4dHVyZShlKSxOPWUpfXJldHVybntidWZmZXJzOntjb2xvcjpyLGRlcHRoOmEsc3RlbmNpbDpsfSxlbmFibGU6RixkaXNhYmxlOlYsYmluZEZyYW1lYnVmZmVyOmZ1bmN0aW9uICQoZSxuKXtyZXR1cm4gbnVsbD09PW4mJm51bGwhPT1oJiYobj1oKSxkW2VdIT09biYmKHQuYmluZEZyYW1lYnVmZmVyKGUsbiksZFtlXT1uLGkmJigzNjAwOT09PWUmJihkWzM2MTYwXT1uKSwzNjE2MD09PWUmJihkWzM2MDA5XT1uKSksITApfSxiaW5kWFJGcmFtZWJ1ZmZlcjpmdW5jdGlvbiBLKGUpe2UhPT1oJiYodC5iaW5kRnJhbWVidWZmZXIoMzYxNjAsZSksaD1lKX0sdXNlUHJvZ3JhbTpmdW5jdGlvbiBaKGUpe3JldHVybiBwIT09ZSYmKHQudXNlUHJvZ3JhbShlKSxwPWUsITApfSxzZXRCbGVuZGluZzpHLHNldE1hdGVyaWFsOmZ1bmN0aW9uIEoodCxlKXsyPT09dC5zaWRlP1YoMjg4NCk6RigyODg0KTtsZXQgbj0xPT09dC5zaWRlO2UmJihuPSFuKSxXKG4pLDE9PT10LmJsZW5kaW5nJiYhMT09PXQudHJhbnNwYXJlbnQ/RygwKTpHKHQuYmxlbmRpbmcsdC5ibGVuZEVxdWF0aW9uLHQuYmxlbmRTcmMsdC5ibGVuZERzdCx0LmJsZW5kRXF1YXRpb25BbHBoYSx0LmJsZW5kU3JjQWxwaGEsdC5ibGVuZERzdEFscGhhLHQucHJlbXVsdGlwbGllZEFscGhhKSxhLnNldEZ1bmModC5kZXB0aEZ1bmMpLGEuc2V0VGVzdCh0LmRlcHRoVGVzdCksYS5zZXRNYXNrKHQuZGVwdGhXcml0ZSksci5zZXRNYXNrKHQuY29sb3JXcml0ZSk7Y29uc3QgaT10LnN0ZW5jaWxXcml0ZTtsLnNldFRlc3QoaSksaSYmKGwuc2V0TWFzayh0LnN0ZW5jaWxXcml0ZU1hc2spLGwuc2V0RnVuYyh0LnN0ZW5jaWxGdW5jLHQuc3RlbmNpbFJlZix0LnN0ZW5jaWxGdW5jTWFzayksbC5zZXRPcCh0LnN0ZW5jaWxGYWlsLHQuc3RlbmNpbFpGYWlsLHQuc3RlbmNpbFpQYXNzKSksWSh0LnBvbHlnb25PZmZzZXQsdC5wb2x5Z29uT2Zmc2V0RmFjdG9yLHQucG9seWdvbk9mZnNldFVuaXRzKSwhMD09PXQuYWxwaGFUb0NvdmVyYWdlP0YoMzI5MjYpOlYoMzI5MjYpfSxzZXRGbGlwU2lkZWQ6VyxzZXRDdWxsRmFjZTpxLHNldExpbmVXaWR0aDpmdW5jdGlvbiBRKGUpe2UhPT1FJiYoayYmdC5saW5lV2lkdGgoZSksRT1lKX0sc2V0UG9seWdvbk9mZnNldDpZLHNldFNjaXNzb3JUZXN0OmZ1bmN0aW9uIHR0KHQpe3Q/RigzMDg5KTpWKDMwODkpfSxhY3RpdmVUZXh0dXJlOlgsYmluZFRleHR1cmU6ZnVuY3Rpb24gZXQoZSxuKXtudWxsPT09TiYmWCgpO2xldCBpPUlbTl07dm9pZCAwPT09aSYmKGk9e3R5cGU6dm9pZCAwLHRleHR1cmU6dm9pZCAwfSxJW05dPWkpLGkudHlwZT09PWUmJmkudGV4dHVyZT09PW58fCh0LmJpbmRUZXh0dXJlKGUsbnx8SFtlXSksaS50eXBlPWUsaS50ZXh0dXJlPW4pfSx1bmJpbmRUZXh0dXJlOmZ1bmN0aW9uIG50KCl7Y29uc3QgZT1JW05dO3ZvaWQgMCE9PWUmJnZvaWQgMCE9PWUudHlwZSYmKHQuYmluZFRleHR1cmUoZS50eXBlLG51bGwpLGUudHlwZT12b2lkIDAsZS50ZXh0dXJlPXZvaWQgMCl9LGNvbXByZXNzZWRUZXhJbWFnZTJEOmZ1bmN0aW9uIGl0KCl7dHJ5e3QuY29tcHJlc3NlZFRleEltYWdlMkQuYXBwbHkodCxhcmd1bWVudHMpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6Iix0KX19LHRleEltYWdlMkQ6ZnVuY3Rpb24gcnQoKXt0cnl7dC50ZXhJbWFnZTJELmFwcGx5KHQsYXJndW1lbnRzKX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsdCl9fSx0ZXhJbWFnZTNEOmZ1bmN0aW9uIG90KCl7dHJ5e3QudGV4SW1hZ2UzRC5hcHBseSh0LGFyZ3VtZW50cyl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLHQpfX0sc2Npc3NvcjpmdW5jdGlvbiBhdChlKXshMT09PXouZXF1YWxzKGUpJiYodC5zY2lzc29yKGUueCxlLnksZS56LGUudyksei5jb3B5KGUpKX0sdmlld3BvcnQ6ZnVuY3Rpb24gc3QoZSl7ITE9PT1ELmVxdWFscyhlKSYmKHQudmlld3BvcnQoZS54LGUueSxlLnosZS53KSxELmNvcHkoZSkpfSxyZXNldDpmdW5jdGlvbiBsdCgpe3QuZGlzYWJsZSgzMDQyKSx0LmRpc2FibGUoMjg4NCksdC5kaXNhYmxlKDI5MjkpLHQuZGlzYWJsZSgzMjgyMyksdC5kaXNhYmxlKDMwODkpLHQuZGlzYWJsZSgyOTYwKSx0LmRpc2FibGUoMzI5MjYpLHQuYmxlbmRFcXVhdGlvbigzMjc3NCksdC5ibGVuZEZ1bmMoMSwwKSx0LmJsZW5kRnVuY1NlcGFyYXRlKDEsMCwxLDApLHQuY29sb3JNYXNrKCEwLCEwLCEwLCEwKSx0LmNsZWFyQ29sb3IoMCwwLDAsMCksdC5kZXB0aE1hc2soITApLHQuZGVwdGhGdW5jKDUxMyksdC5jbGVhckRlcHRoKDEpLHQuc3RlbmNpbE1hc2soNDI5NDk2NzI5NSksdC5zdGVuY2lsRnVuYyg1MTksMCw0Mjk0OTY3Mjk1KSx0LnN0ZW5jaWxPcCg3NjgwLDc2ODAsNzY4MCksdC5jbGVhclN0ZW5jaWwoMCksdC5jdWxsRmFjZSgxMDI5KSx0LmZyb250RmFjZSgyMzA1KSx0LnBvbHlnb25PZmZzZXQoMCwwKSx0LmFjdGl2ZVRleHR1cmUoMzM5ODQpLHQuYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpLCEwPT09aSYmKHQuYmluZEZyYW1lYnVmZmVyKDM2MDA5LG51bGwpLHQuYmluZEZyYW1lYnVmZmVyKDM2MDA4LG51bGwpKSx0LnVzZVByb2dyYW0obnVsbCksdC5saW5lV2lkdGgoMSksdC5zY2lzc29yKDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLHQudmlld3BvcnQoMCwwLHQuY2FudmFzLndpZHRoLHQuY2FudmFzLmhlaWdodCksdT17fSxOPW51bGwsST17fSxoPW51bGwsZD17fSxwPW51bGwsZj0hMSxtPW51bGwsZz1udWxsLF89bnVsbCx5PW51bGwsdj1udWxsLGI9bnVsbCx4PW51bGwsdz0hMSxTPW51bGwsTT1udWxsLEU9bnVsbCxUPW51bGwsQz1udWxsLHouc2V0KDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLEQuc2V0KDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLHIucmVzZXQoKSxhLnJlc2V0KCksbC5yZXNldCgpfX19ZnVuY3Rpb24gejV0KHQsZSxuLGkscixvLGEpe2NvbnN0IHM9ci5pc1dlYkdMMixsPXIubWF4VGV4dHVyZXMsYz1yLm1heEN1YmVtYXBTaXplLHU9ci5tYXhUZXh0dXJlU2l6ZSxoPXIubWF4U2FtcGxlcyxkPW5ldyBXZWFrTWFwO2xldCBwLGY9ITE7dHJ5e2Y9InVuZGVmaW5lZCIhPXR5cGVvZiBPZmZzY3JlZW5DYW52YXMmJm51bGwhPT1uZXcgT2Zmc2NyZWVuQ2FudmFzKDEsMSkuZ2V0Q29udGV4dCgiMmQiKX1jYXRjaCh0KXt9ZnVuY3Rpb24gbSh0LGUpe3JldHVybiBmP25ldyBPZmZzY3JlZW5DYW52YXModCxlKTpkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJjYW52YXMiKX1mdW5jdGlvbiBnKHQsZSxuLGkpe2xldCByPTE7aWYoKHQud2lkdGg+aXx8dC5oZWlnaHQ+aSkmJihyPWkvTWF0aC5tYXgodC53aWR0aCx0LmhlaWdodCkpLHI8MXx8ITA9PT1lKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxJbWFnZUVsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnR8fCJ1bmRlZmluZWQiIT10eXBlb2YgSW1hZ2VCaXRtYXAmJnQgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcCl7Y29uc3QgaT1lP3RKdDpNYXRoLmZsb29yLG89aShyKnQud2lkdGgpLGE9aShyKnQuaGVpZ2h0KTt2b2lkIDA9PT1wJiYocD1tKG8sYSkpO2NvbnN0IHM9bj9tKG8sYSk6cDtyZXR1cm4gcy53aWR0aD1vLHMuaGVpZ2h0PWEscy5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZSh0LDAsMCxvLGEpLGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBoYXMgYmVlbiByZXNpemVkIGZyb20gKCIrdC53aWR0aCsieCIrdC5oZWlnaHQrIikgdG8gKCIrbysieCIrYSsiKS4iKSxzfXJldHVybiJkYXRhImluIHQmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogSW1hZ2UgaW4gRGF0YVRleHR1cmUgaXMgdG9vIGJpZyAoIit0LndpZHRoKyJ4Iit0LmhlaWdodCsiKS4iKSx0fXJldHVybiB0fWZ1bmN0aW9uIF8odCl7cmV0dXJuIEpadCh0LndpZHRoKSYmSlp0KHQuaGVpZ2h0KX1mdW5jdGlvbiB5KHQsZSl7cmV0dXJuIHQuZ2VuZXJhdGVNaXBtYXBzJiZlJiZ0Lm1pbkZpbHRlciE9PUpLdCYmdC5taW5GaWx0ZXIhPT1lWnR9ZnVuY3Rpb24gdihlLG4scixvLGE9MSl7dC5nZW5lcmF0ZU1pcG1hcChlKSxpLmdldChuKS5fX21heE1pcExldmVsPU1hdGgubG9nMihNYXRoLm1heChyLG8sYSkpfWZ1bmN0aW9uIGIobixpLHIpe2lmKCExPT09cylyZXR1cm4gaTtpZihudWxsIT09bil7aWYodm9pZCAwIT09dFtuXSlyZXR1cm4gdFtuXTtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gdXNlIG5vbi1leGlzdGluZyBXZWJHTCBpbnRlcm5hbCBmb3JtYXQgJyIrbisiJyIpfWxldCBvPWk7cmV0dXJuIDY0MDM9PT1pJiYoNTEyNj09PXImJihvPTMzMzI2KSw1MTMxPT09ciYmKG89MzMzMjUpLDUxMjE9PT1yJiYobz0zMzMyMSkpLDY0MDc9PT1pJiYoNTEyNj09PXImJihvPTM0ODM3KSw1MTMxPT09ciYmKG89MzQ4NDMpLDUxMjE9PT1yJiYobz0zMjg0OSkpLDY0MDg9PT1pJiYoNTEyNj09PXImJihvPTM0ODM2KSw1MTMxPT09ciYmKG89MzQ4NDIpLDUxMjE9PT1yJiYobz0zMjg1NikpLDMzMzI1IT09byYmMzMzMjYhPT1vJiYzNDg0MiE9PW8mJjM0ODM2IT09b3x8ZS5nZXQoIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKSxvfWZ1bmN0aW9uIHgodCl7cmV0dXJuIHQ9PT1KS3R8fHQ9PT1RS3R8fHQ9PT10WnQ/OTcyODo5NzI5fWZ1bmN0aW9uIHcoZSl7Y29uc3Qgbj1lLnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHcpLChmdW5jdGlvbiByKGUpe2NvbnN0IG49aS5nZXQoZSk7dm9pZCAwIT09bi5fX3dlYmdsSW5pdCYmKHQuZGVsZXRlVGV4dHVyZShuLl9fd2ViZ2xUZXh0dXJlKSxpLnJlbW92ZShlKSl9KShuKSxuLmlzVmlkZW9UZXh0dXJlJiZkLmRlbGV0ZShuKSxhLm1lbW9yeS50ZXh0dXJlcy0tfWZ1bmN0aW9uIFMoZSl7Y29uc3Qgbj1lLnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLFMpLChmdW5jdGlvbiByKGUpe2NvbnN0IG49ZS50ZXh0dXJlLHI9aS5nZXQoZSksbz1pLmdldChuKTtpZihlKXtpZih2b2lkIDAhPT1vLl9fd2ViZ2xUZXh0dXJlJiYodC5kZWxldGVUZXh0dXJlKG8uX193ZWJnbFRleHR1cmUpLGEubWVtb3J5LnRleHR1cmVzLS0pLGUuZGVwdGhUZXh0dXJlJiZlLmRlcHRoVGV4dHVyZS5kaXNwb3NlKCksZS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldClmb3IobGV0IGU9MDtlPDY7ZSsrKXQuZGVsZXRlRnJhbWVidWZmZXIoci5fX3dlYmdsRnJhbWVidWZmZXJbZV0pLHIuX193ZWJnbERlcHRoYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihyLl9fd2ViZ2xEZXB0aGJ1ZmZlcltlXSk7ZWxzZSB0LmRlbGV0ZUZyYW1lYnVmZmVyKHIuX193ZWJnbEZyYW1lYnVmZmVyKSxyLl9fd2ViZ2xEZXB0aGJ1ZmZlciYmdC5kZWxldGVSZW5kZXJidWZmZXIoci5fX3dlYmdsRGVwdGhidWZmZXIpLHIuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyJiZ0LmRlbGV0ZUZyYW1lYnVmZmVyKHIuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKSxyLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciYmdC5kZWxldGVSZW5kZXJidWZmZXIoci5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpLHIuX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihyLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcik7aWYoZS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzKWZvcihsZXQgZT0wLHI9bi5sZW5ndGg7ZTxyO2UrKyl7Y29uc3Qgcj1pLmdldChuW2VdKTtyLl9fd2ViZ2xUZXh0dXJlJiYodC5kZWxldGVUZXh0dXJlKHIuX193ZWJnbFRleHR1cmUpLGEubWVtb3J5LnRleHR1cmVzLS0pLGkucmVtb3ZlKG5bZV0pfWkucmVtb3ZlKG4pLGkucmVtb3ZlKGUpfX0pKG4pfWxldCBNPTA7ZnVuY3Rpb24gRSh0LGUpe2NvbnN0IHI9aS5nZXQodCk7aWYodC5pc1ZpZGVvVGV4dHVyZSYmKGZ1bmN0aW9uIG8odCl7Y29uc3QgZT1hLnJlbmRlci5mcmFtZTtkLmdldCh0KSE9PWUmJihkLnNldCh0LGUpLHQudXBkYXRlKCkpfSkodCksdC52ZXJzaW9uPjAmJnIuX192ZXJzaW9uIT09dC52ZXJzaW9uKXtjb25zdCBuPXQuaW1hZ2U7aWYodm9pZCAwPT09biljb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgbWFya2VkIGZvciB1cGRhdGUgYnV0IGltYWdlIGlzIHVuZGVmaW5lZCIpO2Vsc2V7aWYoITEhPT1uLmNvbXBsZXRlKXJldHVybiB2b2lkIFAocix0LGUpO2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBtYXJrZWQgZm9yIHVwZGF0ZSBidXQgaW1hZ2UgaXMgaW5jb21wbGV0ZSIpfX1uLmFjdGl2ZVRleHR1cmUoMzM5ODQrZSksbi5iaW5kVGV4dHVyZSgzNTUzLHIuX193ZWJnbFRleHR1cmUpfWZ1bmN0aW9uIFQoZSxyKXtjb25zdCBhPWkuZ2V0KGUpO2UudmVyc2lvbj4wJiZhLl9fdmVyc2lvbiE9PWUudmVyc2lvbj8oZnVuY3Rpb24gbChlLGkscil7aWYoNiE9PWkuaW1hZ2UubGVuZ3RoKXJldHVybjtMKGUsaSksbi5hY3RpdmVUZXh0dXJlKDMzOTg0K3IpLG4uYmluZFRleHR1cmUoMzQwNjcsZS5fX3dlYmdsVGV4dHVyZSksdC5waXhlbFN0b3JlaSgzNzQ0MCxpLmZsaXBZKSx0LnBpeGVsU3RvcmVpKDM3NDQxLGkucHJlbXVsdGlwbHlBbHBoYSksdC5waXhlbFN0b3JlaSgzMzE3LGkudW5wYWNrQWxpZ25tZW50KSx0LnBpeGVsU3RvcmVpKDM3NDQzLDApO2NvbnN0IGE9aSYmKGkuaXNDb21wcmVzc2VkVGV4dHVyZXx8aS5pbWFnZVswXS5pc0NvbXByZXNzZWRUZXh0dXJlKSxsPWkuaW1hZ2VbMF0mJmkuaW1hZ2VbMF0uaXNEYXRhVGV4dHVyZSx1PVtdO2ZvcihsZXQgdD0wO3Q8Njt0KyspdVt0XT1hfHxsP2w/aS5pbWFnZVt0XS5pbWFnZTppLmltYWdlW3RdOmcoaS5pbWFnZVt0XSwhMSwhMCxjKTtjb25zdCBoPXVbMF0sZD1fKGgpfHxzLHA9by5jb252ZXJ0KGkuZm9ybWF0KSxmPW8uY29udmVydChpLnR5cGUpLG09YihpLmludGVybmFsRm9ybWF0LHAsZik7bGV0IHg7aWYoaygzNDA2NyxpLGQpLGEpe2ZvcihsZXQgdD0wO3Q8Njt0Kyspe3g9dVt0XS5taXBtYXBzO2ZvcihsZXQgZT0wO2U8eC5sZW5ndGg7ZSsrKXtjb25zdCByPXhbZV07aS5mb3JtYXQhPT1oWnQmJmkuZm9ybWF0IT09dVp0P251bGwhPT1wP24uY29tcHJlc3NlZFRleEltYWdlMkQoMzQwNjkrdCxlLG0sci53aWR0aCxyLmhlaWdodCwwLHIuZGF0YSk6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBBdHRlbXB0IHRvIGxvYWQgdW5zdXBwb3J0ZWQgY29tcHJlc3NlZCB0ZXh0dXJlIGZvcm1hdCBpbiAuc2V0VGV4dHVyZUN1YmUoKSIpOm4udGV4SW1hZ2UyRCgzNDA2OSt0LGUsbSxyLndpZHRoLHIuaGVpZ2h0LDAscCxmLHIuZGF0YSl9fWUuX19tYXhNaXBMZXZlbD14Lmxlbmd0aC0xfWVsc2V7eD1pLm1pcG1hcHM7Zm9yKGxldCB0PTA7dDw2O3QrKylpZihsKXtuLnRleEltYWdlMkQoMzQwNjkrdCwwLG0sdVt0XS53aWR0aCx1W3RdLmhlaWdodCwwLHAsZix1W3RdLmRhdGEpO2ZvcihsZXQgZT0wO2U8eC5sZW5ndGg7ZSsrKXtjb25zdCBpPXhbZV0uaW1hZ2VbdF0uaW1hZ2U7bi50ZXhJbWFnZTJEKDM0MDY5K3QsZSsxLG0saS53aWR0aCxpLmhlaWdodCwwLHAsZixpLmRhdGEpfX1lbHNle24udGV4SW1hZ2UyRCgzNDA2OSt0LDAsbSxwLGYsdVt0XSk7Zm9yKGxldCBlPTA7ZTx4Lmxlbmd0aDtlKyspbi50ZXhJbWFnZTJEKDM0MDY5K3QsZSsxLG0scCxmLHhbZV0uaW1hZ2VbdF0pfWUuX19tYXhNaXBMZXZlbD14Lmxlbmd0aH15KGksZCkmJnYoMzQwNjcsaSxoLndpZHRoLGguaGVpZ2h0KSxlLl9fdmVyc2lvbj1pLnZlcnNpb24saS5vblVwZGF0ZSYmaS5vblVwZGF0ZShpKX0pKGEsZSxyKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K3IpLG4uYmluZFRleHR1cmUoMzQwNjcsYS5fX3dlYmdsVGV4dHVyZSkpfWNvbnN0IEM9e1skS3RdOjEwNDk3LFtLS3RdOjMzMDcxLFtaS3RdOjMzNjQ4fSxBPXtbSkt0XTo5NzI4LFtRS3RdOjk5ODQsW3RadF06OTk4NixbZVp0XTo5NzI5LFtuWnRdOjk5ODUsW2ladF06OTk4N307ZnVuY3Rpb24gayhuLG8sYSl7aWYoYT8odC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDIsQ1tvLndyYXBTXSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsQ1tvLndyYXBUXSksMzI4NzkhPT1uJiYzNTg2NiE9PW58fHQudGV4UGFyYW1ldGVyaShuLDMyODgyLENbby53cmFwUl0pLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLEFbby5tYWdGaWx0ZXJdKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSxBW28ubWluRmlsdGVyXSkpOih0LnRleFBhcmFtZXRlcmkobiwxMDI0MiwzMzA3MSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsMzMwNzEpLDMyODc5IT09biYmMzU4NjYhPT1ufHx0LnRleFBhcmFtZXRlcmkobiwzMjg4MiwzMzA3MSksby53cmFwUz09PUtLdCYmby53cmFwVD09PUtLdHx8Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIGlzIG5vdCBwb3dlciBvZiB0d28uIFRleHR1cmUud3JhcFMgYW5kIFRleHR1cmUud3JhcFQgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nLiIpLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLHgoby5tYWdGaWx0ZXIpKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSx4KG8ubWluRmlsdGVyKSksby5taW5GaWx0ZXIhPT1KS3QmJm8ubWluRmlsdGVyIT09ZVp0JiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaXMgbm90IHBvd2VyIG9mIHR3by4gVGV4dHVyZS5taW5GaWx0ZXIgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5OZWFyZXN0RmlsdGVyIG9yIFRIUkVFLkxpbmVhckZpbHRlci4iKSksITA9PT1lLmhhcygiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpe2NvbnN0IGE9ZS5nZXQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO2lmKG8udHlwZT09PXNadCYmITE9PT1lLmhhcygiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpcmV0dXJuO2lmKCExPT09cyYmby50eXBlPT09bFp0JiYhMT09PWUuaGFzKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKXJldHVybjsoby5hbmlzb3Ryb3B5PjF8fGkuZ2V0KG8pLl9fY3VycmVudEFuaXNvdHJvcHkpJiYodC50ZXhQYXJhbWV0ZXJmKG4sYS5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCxNYXRoLm1pbihvLmFuaXNvdHJvcHksci5nZXRNYXhBbmlzb3Ryb3B5KCkpKSxpLmdldChvKS5fX2N1cnJlbnRBbmlzb3Ryb3B5PW8uYW5pc290cm9weSl9fWZ1bmN0aW9uIEwoZSxuKXt2b2lkIDA9PT1lLl9fd2ViZ2xJbml0JiYoZS5fX3dlYmdsSW5pdD0hMCxuLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHcpLGUuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksYS5tZW1vcnkudGV4dHVyZXMrKyl9ZnVuY3Rpb24gUChlLGkscil7bGV0IGE9MzU1MztpLmlzRGF0YVRleHR1cmUyREFycmF5JiYoYT0zNTg2NiksaS5pc0RhdGFUZXh0dXJlM0QmJihhPTMyODc5KSxMKGUsaSksbi5hY3RpdmVUZXh0dXJlKDMzOTg0K3IpLG4uYmluZFRleHR1cmUoYSxlLl9fd2ViZ2xUZXh0dXJlKSx0LnBpeGVsU3RvcmVpKDM3NDQwLGkuZmxpcFkpLHQucGl4ZWxTdG9yZWkoMzc0NDEsaS5wcmVtdWx0aXBseUFscGhhKSx0LnBpeGVsU3RvcmVpKDMzMTcsaS51bnBhY2tBbGlnbm1lbnQpLHQucGl4ZWxTdG9yZWkoMzc0NDMsMCk7Y29uc3QgbD0oZnVuY3Rpb24gYyh0KXtyZXR1cm4hcyYmKHQud3JhcFMhPT1LS3R8fHQud3JhcFQhPT1LS3R8fHQubWluRmlsdGVyIT09Skt0JiZ0Lm1pbkZpbHRlciE9PWVadCl9KShpKSYmITE9PT1fKGkuaW1hZ2UpLGg9ZyhpLmltYWdlLGwsITEsdSksZD1fKGgpfHxzLHA9by5jb252ZXJ0KGkuZm9ybWF0KTtsZXQgZixtPW8uY29udmVydChpLnR5cGUpLHg9YihpLmludGVybmFsRm9ybWF0LHAsbSk7ayhhLGksZCk7Y29uc3Qgdz1pLm1pcG1hcHM7aWYoaS5pc0RlcHRoVGV4dHVyZSl4PTY0MDIscz94PWkudHlwZT09PXNadD8zNjAxMjppLnR5cGU9PT1hWnQ/MzMxOTA6aS50eXBlPT09Y1p0PzM1MDU2OjMzMTg5OmkudHlwZT09PXNadCYmY29uc29sZS5lcnJvcigiV2ViR0xSZW5kZXJlcjogRmxvYXRpbmcgcG9pbnQgZGVwdGggdGV4dHVyZSByZXF1aXJlcyBXZWJHTDIuIiksaS5mb3JtYXQ9PT1kWnQmJjY0MDI9PT14JiZpLnR5cGUhPT1vWnQmJmkudHlwZSE9PWFadCYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVXNlIFVuc2lnbmVkU2hvcnRUeXBlIG9yIFVuc2lnbmVkSW50VHlwZSBmb3IgRGVwdGhGb3JtYXQgRGVwdGhUZXh0dXJlLiIpLGkudHlwZT1vWnQsbT1vLmNvbnZlcnQoaS50eXBlKSksaS5mb3JtYXQ9PT1wWnQmJjY0MDI9PT14JiYoeD0zNDA0MSxpLnR5cGUhPT1jWnQmJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFVzZSBVbnNpZ25lZEludDI0OFR5cGUgZm9yIERlcHRoU3RlbmNpbEZvcm1hdCBEZXB0aFRleHR1cmUuIiksaS50eXBlPWNadCxtPW8uY29udmVydChpLnR5cGUpKSksbi50ZXhJbWFnZTJEKDM1NTMsMCx4LGgud2lkdGgsaC5oZWlnaHQsMCxwLG0sbnVsbCk7ZWxzZSBpZihpLmlzRGF0YVRleHR1cmUpaWYody5sZW5ndGg+MCYmZCl7Zm9yKGxldCB0PTAsZT13Lmxlbmd0aDt0PGU7dCsrKWY9d1t0XSxuLnRleEltYWdlMkQoMzU1Myx0LHgsZi53aWR0aCxmLmhlaWdodCwwLHAsbSxmLmRhdGEpO2kuZ2VuZXJhdGVNaXBtYXBzPSExLGUuX19tYXhNaXBMZXZlbD13Lmxlbmd0aC0xfWVsc2Ugbi50ZXhJbWFnZTJEKDM1NTMsMCx4LGgud2lkdGgsaC5oZWlnaHQsMCxwLG0saC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKGkuaXNDb21wcmVzc2VkVGV4dHVyZSl7Zm9yKGxldCB0PTAsZT13Lmxlbmd0aDt0PGU7dCsrKWY9d1t0XSxpLmZvcm1hdCE9PWhadCYmaS5mb3JtYXQhPT11WnQ/bnVsbCE9PXA/bi5jb21wcmVzc2VkVGV4SW1hZ2UyRCgzNTUzLHQseCxmLndpZHRoLGYuaGVpZ2h0LDAsZi5kYXRhKTpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gbG9hZCB1bnN1cHBvcnRlZCBjb21wcmVzc2VkIHRleHR1cmUgZm9ybWF0IGluIC51cGxvYWRUZXh0dXJlKCkiKTpuLnRleEltYWdlMkQoMzU1Myx0LHgsZi53aWR0aCxmLmhlaWdodCwwLHAsbSxmLmRhdGEpO2UuX19tYXhNaXBMZXZlbD13Lmxlbmd0aC0xfWVsc2UgaWYoaS5pc0RhdGFUZXh0dXJlMkRBcnJheSluLnRleEltYWdlM0QoMzU4NjYsMCx4LGgud2lkdGgsaC5oZWlnaHQsaC5kZXB0aCwwLHAsbSxoLmRhdGEpLGUuX19tYXhNaXBMZXZlbD0wO2Vsc2UgaWYoaS5pc0RhdGFUZXh0dXJlM0Qpbi50ZXhJbWFnZTNEKDMyODc5LDAseCxoLndpZHRoLGguaGVpZ2h0LGguZGVwdGgsMCxwLG0saC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKHcubGVuZ3RoPjAmJmQpe2ZvcihsZXQgdD0wLGU9dy5sZW5ndGg7dDxlO3QrKylmPXdbdF0sbi50ZXhJbWFnZTJEKDM1NTMsdCx4LHAsbSxmKTtpLmdlbmVyYXRlTWlwbWFwcz0hMSxlLl9fbWF4TWlwTGV2ZWw9dy5sZW5ndGgtMX1lbHNlIG4udGV4SW1hZ2UyRCgzNTUzLDAseCxwLG0saCksZS5fX21heE1pcExldmVsPTA7eShpLGQpJiZ2KGEsaSxoLndpZHRoLGguaGVpZ2h0KSxlLl9fdmVyc2lvbj1pLnZlcnNpb24saS5vblVwZGF0ZSYmaS5vblVwZGF0ZShpKX1mdW5jdGlvbiBOKGUscixhLHMsbCl7Y29uc3QgYz1vLmNvbnZlcnQoYS5mb3JtYXQpLHU9by5jb252ZXJ0KGEudHlwZSksaD1iKGEuaW50ZXJuYWxGb3JtYXQsYyx1KTszMjg3OT09PWx8fDM1ODY2PT09bD9uLnRleEltYWdlM0QobCwwLGgsci53aWR0aCxyLmhlaWdodCxyLmRlcHRoLDAsYyx1LG51bGwpOm4udGV4SW1hZ2UyRChsLDAsaCxyLndpZHRoLHIuaGVpZ2h0LDAsYyx1LG51bGwpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLGUpLHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAscyxsLGkuZ2V0KGEpLl9fd2ViZ2xUZXh0dXJlLDApLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWZ1bmN0aW9uIEkoZSxuLGkpe2lmKHQuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxlKSxuLmRlcHRoQnVmZmVyJiYhbi5zdGVuY2lsQnVmZmVyKXtsZXQgcj0zMzE4OTtpZihpKXtjb25zdCBlPW4uZGVwdGhUZXh0dXJlO2UmJmUuaXNEZXB0aFRleHR1cmUmJihlLnR5cGU9PT1zWnQ/cj0zNjAxMjplLnR5cGU9PT1hWnQmJihyPTMzMTkwKSk7Y29uc3QgaT1SKG4pO3QucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLGkscixuLndpZHRoLG4uaGVpZ2h0KX1lbHNlIHQucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxyLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzYwOTYsMzYxNjEsZSl9ZWxzZSBpZihuLmRlcHRoQnVmZmVyJiZuLnN0ZW5jaWxCdWZmZXIpe2lmKGkpe2NvbnN0IGU9UihuKTt0LnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSgzNjE2MSxlLDM1MDU2LG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLDM0MDQxLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzMzMDYsMzYxNjEsZSl9ZWxzZXtjb25zdCBlPSEwPT09bi5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzP24udGV4dHVyZVswXTpuLnRleHR1cmUscj1vLmNvbnZlcnQoZS5mb3JtYXQpLGE9by5jb252ZXJ0KGUudHlwZSkscz1iKGUuaW50ZXJuYWxGb3JtYXQscixhKTtpZihpKXtjb25zdCBlPVIobik7dC5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoMzYxNjEsZSxzLG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLHMsbi53aWR0aCxuLmhlaWdodCl9dC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpfWZ1bmN0aW9uIFIodCl7cmV0dXJuIHMmJnQuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0P01hdGgubWluKGgsdC5zYW1wbGVzKTowfWxldCBPPSExLHo9ITE7dGhpcy5hbGxvY2F0ZVRleHR1cmVVbml0PWZ1bmN0aW9uIEQoKXtjb25zdCB0PU07cmV0dXJuIHQ+PWwmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xUZXh0dXJlczogVHJ5aW5nIHRvIHVzZSAiK3QrIiB0ZXh0dXJlIHVuaXRzIHdoaWxlIHRoaXMgR1BVIHN1cHBvcnRzIG9ubHkgIitsKSxNKz0xLHR9LHRoaXMucmVzZXRUZXh0dXJlVW5pdHM9ZnVuY3Rpb24gQigpe009MH0sdGhpcy5zZXRUZXh0dXJlMkQ9RSx0aGlzLnNldFRleHR1cmUyREFycmF5PWZ1bmN0aW9uIEgodCxlKXtjb25zdCByPWkuZ2V0KHQpO3QudmVyc2lvbj4wJiZyLl9fdmVyc2lvbiE9PXQudmVyc2lvbj9QKHIsdCxlKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K2UpLG4uYmluZFRleHR1cmUoMzU4NjYsci5fX3dlYmdsVGV4dHVyZSkpfSx0aGlzLnNldFRleHR1cmUzRD1mdW5jdGlvbiBGKHQsZSl7Y29uc3Qgcj1pLmdldCh0KTt0LnZlcnNpb24+MCYmci5fX3ZlcnNpb24hPT10LnZlcnNpb24/UChyLHQsZSk6KG4uYWN0aXZlVGV4dHVyZSgzMzk4NCtlKSxuLmJpbmRUZXh0dXJlKDMyODc5LHIuX193ZWJnbFRleHR1cmUpKX0sdGhpcy5zZXRUZXh0dXJlQ3ViZT1ULHRoaXMuc2V0dXBSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24gVihlKXtjb25zdCBsPWUudGV4dHVyZSxjPWkuZ2V0KGUpLHU9aS5nZXQobCk7ZS5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIixTKSwhMCE9PWUuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyYmKHUuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksdS5fX3ZlcnNpb249bC52ZXJzaW9uLGEubWVtb3J5LnRleHR1cmVzKyspO2NvbnN0IGg9ITA9PT1lLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0LGQ9ITA9PT1lLmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMscD0hMD09PWUuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0LGY9bC5pc0RhdGFUZXh0dXJlM0R8fGwuaXNEYXRhVGV4dHVyZTJEQXJyYXksbT1fKGUpfHxzO2lmKCFzfHxsLmZvcm1hdCE9PXVadHx8bC50eXBlIT09c1p0JiZsLnR5cGUhPT1sWnR8fChsLmZvcm1hdD1oWnQsY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBSZW5kZXJpbmcgdG8gdGV4dHVyZXMgd2l0aCBSR0IgZm9ybWF0IGlzIG5vdCBzdXBwb3J0ZWQuIFVzaW5nIFJHQkEgZm9ybWF0IGluc3RlYWQuIikpLGgpe2MuX193ZWJnbEZyYW1lYnVmZmVyPVtdO2ZvcihsZXQgZT0wO2U8NjtlKyspYy5fX3dlYmdsRnJhbWVidWZmZXJbZV09dC5jcmVhdGVGcmFtZWJ1ZmZlcigpfWVsc2UgaWYoYy5fX3dlYmdsRnJhbWVidWZmZXI9dC5jcmVhdGVGcmFtZWJ1ZmZlcigpLGQpaWYoci5kcmF3QnVmZmVycyl7Y29uc3Qgbj1lLnRleHR1cmU7Zm9yKGxldCBlPTAscj1uLmxlbmd0aDtlPHI7ZSsrKXtjb25zdCByPWkuZ2V0KG5bZV0pO3ZvaWQgMD09PXIuX193ZWJnbFRleHR1cmUmJihyLl9fd2ViZ2xUZXh0dXJlPXQuY3JlYXRlVGV4dHVyZSgpLGEubWVtb3J5LnRleHR1cmVzKyspfX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMiBvciBXRUJHTF9kcmF3X2J1ZmZlcnMgZXh0ZW5zaW9uLiIpO2Vsc2UgaWYocClpZihzKXtjLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcj10LmNyZWF0ZUZyYW1lYnVmZmVyKCksYy5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXI9dC5jcmVhdGVSZW5kZXJidWZmZXIoKSx0LmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsYy5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpO2NvbnN0IGk9by5jb252ZXJ0KGwuZm9ybWF0KSxyPW8uY29udmVydChsLnR5cGUpLGE9YihsLmludGVybmFsRm9ybWF0LGkscikscz1SKGUpO3QucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLHMsYSxlLndpZHRoLGUuaGVpZ2h0KSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxjLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlciksdC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigzNjE2MCwzNjA2NCwzNjE2MSxjLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciksdC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpLGUuZGVwdGhCdWZmZXImJihjLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLEkoYy5fX3dlYmdsRGVwdGhSZW5kZXJidWZmZXIsZSwhMCkpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIik7aWYoaCl7bi5iaW5kVGV4dHVyZSgzNDA2Nyx1Ll9fd2ViZ2xUZXh0dXJlKSxrKDM0MDY3LGwsbSk7Zm9yKGxldCB0PTA7dDw2O3QrKylOKGMuX193ZWJnbEZyYW1lYnVmZmVyW3RdLGUsbCwzNjA2NCwzNDA2OSt0KTt5KGwsbSkmJnYoMzQwNjcsbCxlLndpZHRoLGUuaGVpZ2h0KSxuLmJpbmRUZXh0dXJlKDM0MDY3LG51bGwpfWVsc2UgaWYoZCl7Y29uc3QgdD1lLnRleHR1cmU7Zm9yKGxldCByPTAsbz10Lmxlbmd0aDtyPG87cisrKXtjb25zdCBvPXRbcl0sYT1pLmdldChvKTtuLmJpbmRUZXh0dXJlKDM1NTMsYS5fX3dlYmdsVGV4dHVyZSksaygzNTUzLG8sbSksTihjLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlLG8sMzYwNjQrciwzNTUzKSx5KG8sbSkmJnYoMzU1MyxvLGUud2lkdGgsZS5oZWlnaHQpfW4uYmluZFRleHR1cmUoMzU1MyxudWxsKX1lbHNle2xldCB0PTM1NTM7ZiYmKHM/dD1sLmlzRGF0YVRleHR1cmUzRD8zMjg3OTozNTg2Njpjb25zb2xlLndhcm4oIlRIUkVFLkRhdGFUZXh0dXJlM0QgYW5kIFRIUkVFLkRhdGFUZXh0dXJlMkRBcnJheSBvbmx5IHN1cHBvcnRlZCB3aXRoIFdlYkdMMi4iKSksbi5iaW5kVGV4dHVyZSh0LHUuX193ZWJnbFRleHR1cmUpLGsodCxsLG0pLE4oYy5fX3dlYmdsRnJhbWVidWZmZXIsZSxsLDM2MDY0LHQpLHkobCxtKSYmdih0LGwsZS53aWR0aCxlLmhlaWdodCxlLmRlcHRoKSxuLmJpbmRUZXh0dXJlKHQsbnVsbCl9ZS5kZXB0aEJ1ZmZlciYmKGZ1bmN0aW9uIGcoZSl7Y29uc3Qgcj1pLmdldChlKSxvPSEwPT09ZS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldDtpZihlLmRlcHRoVGV4dHVyZSl7aWYobyl0aHJvdyBuZXcgRXJyb3IoInRhcmdldC5kZXB0aFRleHR1cmUgbm90IHN1cHBvcnRlZCBpbiBDdWJlIHJlbmRlciB0YXJnZXRzIik7IShmdW5jdGlvbiBhKGUscil7aWYociYmci5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldCl0aHJvdyBuZXcgRXJyb3IoIkRlcHRoIFRleHR1cmUgd2l0aCBjdWJlIHJlbmRlciB0YXJnZXRzIGlzIG5vdCBzdXBwb3J0ZWQiKTtpZihuLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxlKSwhci5kZXB0aFRleHR1cmV8fCFyLmRlcHRoVGV4dHVyZS5pc0RlcHRoVGV4dHVyZSl0aHJvdyBuZXcgRXJyb3IoInJlbmRlclRhcmdldC5kZXB0aFRleHR1cmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBUSFJFRS5EZXB0aFRleHR1cmUiKTtpLmdldChyLmRlcHRoVGV4dHVyZSkuX193ZWJnbFRleHR1cmUmJnIuZGVwdGhUZXh0dXJlLmltYWdlLndpZHRoPT09ci53aWR0aCYmci5kZXB0aFRleHR1cmUuaW1hZ2UuaGVpZ2h0PT09ci5oZWlnaHR8fChyLmRlcHRoVGV4dHVyZS5pbWFnZS53aWR0aD1yLndpZHRoLHIuZGVwdGhUZXh0dXJlLmltYWdlLmhlaWdodD1yLmhlaWdodCxyLmRlcHRoVGV4dHVyZS5uZWVkc1VwZGF0ZT0hMCksRShyLmRlcHRoVGV4dHVyZSwwKTtjb25zdCBvPWkuZ2V0KHIuZGVwdGhUZXh0dXJlKS5fX3dlYmdsVGV4dHVyZTtpZihyLmRlcHRoVGV4dHVyZS5mb3JtYXQ9PT1kWnQpdC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLG8sMCk7ZWxzZXtpZihyLmRlcHRoVGV4dHVyZS5mb3JtYXQhPT1wWnQpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoVGV4dHVyZSBmb3JtYXQiKTt0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDMzMzA2LDM1NTMsbywwKX19KShyLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlKX1lbHNlIGlmKG8pe3IuX193ZWJnbERlcHRoYnVmZmVyPVtdO2ZvcihsZXQgaT0wO2k8NjtpKyspbi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsci5fX3dlYmdsRnJhbWVidWZmZXJbaV0pLHIuX193ZWJnbERlcHRoYnVmZmVyW2ldPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCksSShyLl9fd2ViZ2xEZXB0aGJ1ZmZlcltpXSxlLCExKX1lbHNlIG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLHIuX193ZWJnbEZyYW1lYnVmZmVyKSxyLl9fd2ViZ2xEZXB0aGJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLEkoci5fX3dlYmdsRGVwdGhidWZmZXIsZSwhMSk7bi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9KShlKX0sdGhpcy51cGRhdGVSZW5kZXJUYXJnZXRNaXBtYXA9ZnVuY3Rpb24gVSh0KXtjb25zdCBlPV8odCl8fHMscj0hMD09PXQuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cz90LnRleHR1cmU6W3QudGV4dHVyZV07Zm9yKGxldCBvPTAsYT1yLmxlbmd0aDtvPGE7bysrKXtjb25zdCBhPXJbb107aWYoeShhLGUpKXtjb25zdCBlPXQuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ/MzQwNjc6MzU1MyxyPWkuZ2V0KGEpLl9fd2ViZ2xUZXh0dXJlO24uYmluZFRleHR1cmUoZSxyKSx2KGUsYSx0LndpZHRoLHQuaGVpZ2h0KSxuLmJpbmRUZXh0dXJlKGUsbnVsbCl9fX0sdGhpcy51cGRhdGVNdWx0aXNhbXBsZVJlbmRlclRhcmdldD1mdW5jdGlvbiBqKGUpe2lmKGUuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KWlmKHMpe2NvbnN0IHI9ZS53aWR0aCxvPWUuaGVpZ2h0O2xldCBhPTE2Mzg0O2UuZGVwdGhCdWZmZXImJihhfD0yNTYpLGUuc3RlbmNpbEJ1ZmZlciYmKGF8PTEwMjQpO2NvbnN0IHM9aS5nZXQoZSk7bi5iaW5kRnJhbWVidWZmZXIoMzYwMDgscy5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXIpLG4uYmluZEZyYW1lYnVmZmVyKDM2MDA5LHMuX193ZWJnbEZyYW1lYnVmZmVyKSx0LmJsaXRGcmFtZWJ1ZmZlcigwLDAscixvLDAsMCxyLG8sYSw5NzI4KSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxudWxsKSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOSxzLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcil9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFdlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMi4iKX0sdGhpcy5zYWZlU2V0VGV4dHVyZTJEPWZ1bmN0aW9uIEcodCxlKXt0JiZ0LmlzV2ViR0xSZW5kZXJUYXJnZXQmJighMT09PU8mJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMVGV4dHVyZXMuc2FmZVNldFRleHR1cmUyRDogZG9uJ3QgdXNlIHJlbmRlciB0YXJnZXRzIGFzIHRleHR1cmVzLiBVc2UgdGhlaXIgLnRleHR1cmUgcHJvcGVydHkgaW5zdGVhZC4iKSxPPSEwKSx0PXQudGV4dHVyZSksRSh0LGUpfSx0aGlzLnNhZmVTZXRUZXh0dXJlQ3ViZT1mdW5jdGlvbiBXKHQsZSl7dCYmdC5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldCYmKCExPT09eiYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xUZXh0dXJlcy5zYWZlU2V0VGV4dHVyZUN1YmU6IGRvbid0IHVzZSBjdWJlIHJlbmRlciB0YXJnZXRzIGFzIHRleHR1cmVzLiBVc2UgdGhlaXIgLnRleHR1cmUgcHJvcGVydHkgaW5zdGVhZC4iKSx6PSEwKSx0PXQudGV4dHVyZSksVCh0LGUpfX1mdW5jdGlvbiBENXQodCxlLG4pe2NvbnN0IGk9bi5pc1dlYkdMMjtyZXR1cm57Y29udmVydDpmdW5jdGlvbiByKHQpe2xldCBuO2lmKHQ9PT1yWnQpcmV0dXJuIDUxMjE7aWYoMTAxNz09PXQpcmV0dXJuIDMyODE5O2lmKDEwMTg9PT10KXJldHVybiAzMjgyMDtpZigxMDE5PT09dClyZXR1cm4gMzM2MzU7aWYoMTAxMD09PXQpcmV0dXJuIDUxMjA7aWYoMTAxMT09PXQpcmV0dXJuIDUxMjI7aWYodD09PW9adClyZXR1cm4gNTEyMztpZigxMDEzPT09dClyZXR1cm4gNTEyNDtpZih0PT09YVp0KXJldHVybiA1MTI1O2lmKHQ9PT1zWnQpcmV0dXJuIDUxMjY7aWYodD09PWxadClyZXR1cm4gaT81MTMxOihuPWUuZ2V0KCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiksbnVsbCE9PW4/bi5IQUxGX0ZMT0FUX09FUzpudWxsKTtpZigxMDIxPT09dClyZXR1cm4gNjQwNjtpZih0PT09dVp0KXJldHVybiA2NDA3O2lmKHQ9PT1oWnQpcmV0dXJuIDY0MDg7aWYoMTAyND09PXQpcmV0dXJuIDY0MDk7aWYoMTAyNT09PXQpcmV0dXJuIDY0MTA7aWYodD09PWRadClyZXR1cm4gNjQwMjtpZih0PT09cFp0KXJldHVybiAzNDA0MTtpZigxMDI4PT09dClyZXR1cm4gNjQwMztpZigxMDI5PT09dClyZXR1cm4gMzYyNDQ7aWYoMTAzMD09PXQpcmV0dXJuIDMzMzE5O2lmKDEwMzE9PT10KXJldHVybiAzMzMyMDtpZigxMDMyPT09dClyZXR1cm4gMzYyNDg7aWYoMTAzMz09PXQpcmV0dXJuIDM2MjQ5O2lmKHQ9PT1mWnR8fHQ9PT1tWnR8fHQ9PT1nWnR8fHQ9PT1fWnQpe2lmKG49ZS5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIiksbnVsbD09PW4pcmV0dXJuIG51bGw7aWYodD09PWZadClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUO2lmKHQ9PT1tWnQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQ7aWYodD09PWdadClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQzX0VYVDtpZih0PT09X1p0KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDVfRVhUfWlmKHQ9PT15WnR8fHQ9PT12WnR8fHQ9PT1iWnR8fHQ9PT14WnQpe2lmKG49ZS5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpLG51bGw9PT1uKXJldHVybiBudWxsO2lmKHQ9PT15WnQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JfUFZSVENfNEJQUFYxX0lNRztpZih0PT09dlp0KXJldHVybiBuLkNPTVBSRVNTRURfUkdCX1BWUlRDXzJCUFBWMV9JTUc7aWYodD09PWJadClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRztpZih0PT09eFp0KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQV9QVlJUQ18yQlBQVjFfSU1HfWlmKDM2MTk2PT09dClyZXR1cm4gbj1lLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2V0YzEiKSxudWxsIT09bj9uLkNPTVBSRVNTRURfUkdCX0VUQzFfV0VCR0w6bnVsbDtpZigodD09PXdadHx8dD09PVNadCkmJihuPWUuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfZXRjIiksbnVsbCE9PW4pKXtpZih0PT09d1p0KXJldHVybiBuLkNPTVBSRVNTRURfUkdCOF9FVEMyO2lmKHQ9PT1TWnQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBOF9FVEMyX0VBQ31yZXR1cm4gMzc4MDg9PT10fHwzNzgwOT09PXR8fDM3ODEwPT09dHx8Mzc4MTE9PT10fHwzNzgxMj09PXR8fDM3ODEzPT09dHx8Mzc4MTQ9PT10fHwzNzgxNT09PXR8fDM3ODE2PT09dHx8Mzc4MTc9PT10fHwzNzgxOD09PXR8fDM3ODE5PT09dHx8Mzc4MjA9PT10fHwzNzgyMT09PXR8fDM3ODQwPT09dHx8Mzc4NDE9PT10fHwzNzg0Mj09PXR8fDM3ODQzPT09dHx8Mzc4NDQ9PT10fHwzNzg0NT09PXR8fDM3ODQ2PT09dHx8Mzc4NDc9PT10fHwzNzg0OD09PXR8fDM3ODQ5PT09dHx8Mzc4NTA9PT10fHwzNzg1MT09PXR8fDM3ODUyPT09dHx8Mzc4NTM9PT10PyhuPWUuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXN0YyIpLG51bGwhPT1uP3Q6bnVsbCk6MzY0OTI9PT10PyhuPWUuZ2V0KCJFWFRfdGV4dHVyZV9jb21wcmVzc2lvbl9icHRjIiksbnVsbCE9PW4/dDpudWxsKTp0PT09Y1p0P2k/MzQwNDI6KG49ZS5nZXQoIldFQkdMX2RlcHRoX3RleHR1cmUiKSxudWxsIT09bj9uLlVOU0lHTkVEX0lOVF8yNF84X1dFQkdMOm51bGwpOnZvaWQgMH19fUk1dC5wcm90b3R5cGUuaXNNZXNoRGlzdGFuY2VNYXRlcmlhbD0hMDtjbGFzcyBCNXQgZXh0ZW5kcyBxMXR7Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoKSx0aGlzLmNhbWVyYXM9dH19QjV0LnByb3RvdHlwZS5pc0FycmF5Q2FtZXJhPSEwO2NsYXNzIEg1dCBleHRlbmRzIGtRdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJHcm91cCJ9fUg1dC5wcm90b3R5cGUuaXNHcm91cD0hMDtjb25zdCBGNXQ9e3R5cGU6Im1vdmUifTtjbGFzcyBWNXR7Y29uc3RydWN0b3IoKXt0aGlzLl90YXJnZXRSYXk9bnVsbCx0aGlzLl9ncmlwPW51bGwsdGhpcy5faGFuZD1udWxsfWdldEhhbmRTcGFjZSgpe3JldHVybiBudWxsPT09dGhpcy5faGFuZCYmKHRoaXMuX2hhbmQ9bmV3IEg1dCx0aGlzLl9oYW5kLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5faGFuZC52aXNpYmxlPSExLHRoaXMuX2hhbmQuam9pbnRzPXt9LHRoaXMuX2hhbmQuaW5wdXRTdGF0ZT17cGluY2hpbmc6ITF9KSx0aGlzLl9oYW5kfWdldFRhcmdldFJheVNwYWNlKCl7cmV0dXJuIG51bGw9PT10aGlzLl90YXJnZXRSYXkmJih0aGlzLl90YXJnZXRSYXk9bmV3IEg1dCx0aGlzLl90YXJnZXRSYXkubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLl90YXJnZXRSYXkudmlzaWJsZT0hMSx0aGlzLl90YXJnZXRSYXkuaGFzTGluZWFyVmVsb2NpdHk9ITEsdGhpcy5fdGFyZ2V0UmF5LmxpbmVhclZlbG9jaXR5PW5ldyBDSnQsdGhpcy5fdGFyZ2V0UmF5Lmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSx0aGlzLl90YXJnZXRSYXkuYW5ndWxhclZlbG9jaXR5PW5ldyBDSnQpLHRoaXMuX3RhcmdldFJheX1nZXRHcmlwU3BhY2UoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2dyaXAmJih0aGlzLl9ncmlwPW5ldyBINXQsdGhpcy5fZ3JpcC5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX2dyaXAudmlzaWJsZT0hMSx0aGlzLl9ncmlwLmhhc0xpbmVhclZlbG9jaXR5PSExLHRoaXMuX2dyaXAubGluZWFyVmVsb2NpdHk9bmV3IENKdCx0aGlzLl9ncmlwLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSx0aGlzLl9ncmlwLmFuZ3VsYXJWZWxvY2l0eT1uZXcgQ0p0KSx0aGlzLl9ncmlwfWRpc3BhdGNoRXZlbnQodCl7cmV0dXJuIG51bGwhPT10aGlzLl90YXJnZXRSYXkmJnRoaXMuX3RhcmdldFJheS5kaXNwYXRjaEV2ZW50KHQpLG51bGwhPT10aGlzLl9ncmlwJiZ0aGlzLl9ncmlwLmRpc3BhdGNoRXZlbnQodCksbnVsbCE9PXRoaXMuX2hhbmQmJnRoaXMuX2hhbmQuZGlzcGF0Y2hFdmVudCh0KSx0aGlzfWRpc2Nvbm5lY3QodCl7cmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzY29ubmVjdGVkIixkYXRhOnR9KSxudWxsIT09dGhpcy5fdGFyZ2V0UmF5JiYodGhpcy5fdGFyZ2V0UmF5LnZpc2libGU9ITEpLG51bGwhPT10aGlzLl9ncmlwJiYodGhpcy5fZ3JpcC52aXNpYmxlPSExKSxudWxsIT09dGhpcy5faGFuZCYmKHRoaXMuX2hhbmQudmlzaWJsZT0hMSksdGhpc311cGRhdGUodCxlLG4pe2xldCBpPW51bGwscj1udWxsLG89bnVsbDtjb25zdCBhPXRoaXMuX3RhcmdldFJheSxzPXRoaXMuX2dyaXAsbD10aGlzLl9oYW5kO2lmKHQmJiJ2aXNpYmxlLWJsdXJyZWQiIT09ZS5zZXNzaW9uLnZpc2liaWxpdHlTdGF0ZSlpZihudWxsIT09YSYmKGk9ZS5nZXRQb3NlKHQudGFyZ2V0UmF5U3BhY2UsbiksbnVsbCE9PWkmJihhLm1hdHJpeC5mcm9tQXJyYXkoaS50cmFuc2Zvcm0ubWF0cml4KSxhLm1hdHJpeC5kZWNvbXBvc2UoYS5wb3NpdGlvbixhLnJvdGF0aW9uLGEuc2NhbGUpLGkubGluZWFyVmVsb2NpdHk/KGEuaGFzTGluZWFyVmVsb2NpdHk9ITAsYS5saW5lYXJWZWxvY2l0eS5jb3B5KGkubGluZWFyVmVsb2NpdHkpKTphLmhhc0xpbmVhclZlbG9jaXR5PSExLGkuYW5ndWxhclZlbG9jaXR5PyhhLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMCxhLmFuZ3VsYXJWZWxvY2l0eS5jb3B5KGkuYW5ndWxhclZlbG9jaXR5KSk6YS5oYXNBbmd1bGFyVmVsb2NpdHk9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KEY1dCkpKSxsJiZ0LmhhbmQpe289ITA7Zm9yKGNvbnN0IGkgb2YgdC5oYW5kLnZhbHVlcygpKXtjb25zdCB0PWUuZ2V0Sm9pbnRQb3NlKGksbik7aWYodm9pZCAwPT09bC5qb2ludHNbaS5qb2ludE5hbWVdKXtjb25zdCB0PW5ldyBINXQ7dC5tYXRyaXhBdXRvVXBkYXRlPSExLHQudmlzaWJsZT0hMSxsLmpvaW50c1tpLmpvaW50TmFtZV09dCxsLmFkZCh0KX1jb25zdCByPWwuam9pbnRzW2kuam9pbnROYW1lXTtudWxsIT09dCYmKHIubWF0cml4LmZyb21BcnJheSh0LnRyYW5zZm9ybS5tYXRyaXgpLHIubWF0cml4LmRlY29tcG9zZShyLnBvc2l0aW9uLHIucm90YXRpb24sci5zY2FsZSksci5qb2ludFJhZGl1cz10LnJhZGl1cyksci52aXNpYmxlPW51bGwhPT10fWNvbnN0IGk9bC5qb2ludHNbImluZGV4LWZpbmdlci10aXAiXS5wb3NpdGlvbi5kaXN0YW5jZVRvKGwuam9pbnRzWyJ0aHVtYi10aXAiXS5wb3NpdGlvbikscj0uMDIsYT0uMDA1O2wuaW5wdXRTdGF0ZS5waW5jaGluZyYmaT5yK2E/KGwuaW5wdXRTdGF0ZS5waW5jaGluZz0hMSx0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6InBpbmNoZW5kIixoYW5kZWRuZXNzOnQuaGFuZGVkbmVzcyx0YXJnZXQ6dGhpc30pKTohbC5pbnB1dFN0YXRlLnBpbmNoaW5nJiZpPD1yLWEmJihsLmlucHV0U3RhdGUucGluY2hpbmc9ITAsdGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJwaW5jaHN0YXJ0IixoYW5kZWRuZXNzOnQuaGFuZGVkbmVzcyx0YXJnZXQ6dGhpc30pKX1lbHNlIG51bGwhPT1zJiZ0LmdyaXBTcGFjZSYmKHI9ZS5nZXRQb3NlKHQuZ3JpcFNwYWNlLG4pLG51bGwhPT1yJiYocy5tYXRyaXguZnJvbUFycmF5KHIudHJhbnNmb3JtLm1hdHJpeCkscy5tYXRyaXguZGVjb21wb3NlKHMucG9zaXRpb24scy5yb3RhdGlvbixzLnNjYWxlKSxyLmxpbmVhclZlbG9jaXR5PyhzLmhhc0xpbmVhclZlbG9jaXR5PSEwLHMubGluZWFyVmVsb2NpdHkuY29weShyLmxpbmVhclZlbG9jaXR5KSk6cy5oYXNMaW5lYXJWZWxvY2l0eT0hMSxyLmFuZ3VsYXJWZWxvY2l0eT8ocy5oYXNBbmd1bGFyVmVsb2NpdHk9ITAscy5hbmd1bGFyVmVsb2NpdHkuY29weShyLmFuZ3VsYXJWZWxvY2l0eSkpOnMuaGFzQW5ndWxhclZlbG9jaXR5PSExKSk7cmV0dXJuIG51bGwhPT1hJiYoYS52aXNpYmxlPW51bGwhPT1pKSxudWxsIT09cyYmKHMudmlzaWJsZT1udWxsIT09ciksbnVsbCE9PWwmJihsLnZpc2libGU9bnVsbCE9PW8pLHRoaXN9fWNsYXNzIFU1dCBleHRlbmRzIGpadHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCk7Y29uc3Qgbj10aGlzLGk9dC5zdGF0ZTtsZXQgcj1udWxsLG89MSxhPW51bGwscz0ibG9jYWwtZmxvb3IiLGw9bnVsbCxjPW51bGwsdT1udWxsLGg9bnVsbCxkPW51bGw7Y29uc3QgcD1bXSxmPW5ldyBNYXAsbT1uZXcgcTF0O20ubGF5ZXJzLmVuYWJsZSgxKSxtLnZpZXdwb3J0PW5ldyB3SnQ7Y29uc3QgZz1uZXcgcTF0O2cubGF5ZXJzLmVuYWJsZSgyKSxnLnZpZXdwb3J0PW5ldyB3SnQ7Y29uc3QgXz1bbSxnXSx5PW5ldyBCNXQ7eS5sYXllcnMuZW5hYmxlKDEpLHkubGF5ZXJzLmVuYWJsZSgyKTtsZXQgdj1udWxsLGI9bnVsbDtmdW5jdGlvbiB4KHQpe2NvbnN0IGU9Zi5nZXQodC5pbnB1dFNvdXJjZSk7ZSYmZS5kaXNwYXRjaEV2ZW50KHt0eXBlOnQudHlwZSxkYXRhOnQuaW5wdXRTb3VyY2V9KX1mdW5jdGlvbiB3KCl7Zi5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3QuZGlzY29ubmVjdChlKX0pKSxmLmNsZWFyKCksdj1udWxsLGI9bnVsbCxpLmJpbmRYUkZyYW1lYnVmZmVyKG51bGwpLHQuc2V0UmVuZGVyVGFyZ2V0KHQuZ2V0UmVuZGVyVGFyZ2V0KCkpLEEuc3RvcCgpLG4uaXNQcmVzZW50aW5nPSExLG4uZGlzcGF0Y2hFdmVudCh7dHlwZToic2Vzc2lvbmVuZCJ9KX1mdW5jdGlvbiBTKHQpe2NvbnN0IGU9ci5pbnB1dFNvdXJjZXM7Zm9yKGxldCB0PTA7dDxwLmxlbmd0aDt0KyspZi5zZXQoZVt0XSxwW3RdKTtmb3IobGV0IGU9MDtlPHQucmVtb3ZlZC5sZW5ndGg7ZSsrKXtjb25zdCBuPXQucmVtb3ZlZFtlXSxpPWYuZ2V0KG4pO2kmJihpLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc2Nvbm5lY3RlZCIsZGF0YTpufSksZi5kZWxldGUobikpfWZvcihsZXQgZT0wO2U8dC5hZGRlZC5sZW5ndGg7ZSsrKXtjb25zdCBuPXQuYWRkZWRbZV0saT1mLmdldChuKTtpJiZpLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImNvbm5lY3RlZCIsZGF0YTpufSl9fXRoaXMuY2FtZXJhQXV0b1VwZGF0ZT0hMCx0aGlzLmVuYWJsZWQ9ITEsdGhpcy5pc1ByZXNlbnRpbmc9ITEsdGhpcy5nZXRDb250cm9sbGVyPWZ1bmN0aW9uKHQpe2xldCBlPXBbdF07cmV0dXJuIHZvaWQgMD09PWUmJihlPW5ldyBWNXQscFt0XT1lKSxlLmdldFRhcmdldFJheVNwYWNlKCl9LHRoaXMuZ2V0Q29udHJvbGxlckdyaXA9ZnVuY3Rpb24odCl7bGV0IGU9cFt0XTtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9bmV3IFY1dCxwW3RdPWUpLGUuZ2V0R3JpcFNwYWNlKCl9LHRoaXMuZ2V0SGFuZD1mdW5jdGlvbih0KXtsZXQgZT1wW3RdO3JldHVybiB2b2lkIDA9PT1lJiYoZT1uZXcgVjV0LHBbdF09ZSksZS5nZXRIYW5kU3BhY2UoKX0sdGhpcy5zZXRGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yPWZ1bmN0aW9uKHQpe289dCwhMD09PW4uaXNQcmVzZW50aW5nJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYlhSTWFuYWdlcjogQ2Fubm90IGNoYW5nZSBmcmFtZWJ1ZmZlciBzY2FsZSB3aGlsZSBwcmVzZW50aW5nLiIpfSx0aGlzLnNldFJlZmVyZW5jZVNwYWNlVHlwZT1mdW5jdGlvbih0KXtzPXQsITA9PT1uLmlzUHJlc2VudGluZyYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJYUk1hbmFnZXI6IENhbm5vdCBjaGFuZ2UgcmVmZXJlbmNlIHNwYWNlIHR5cGUgd2hpbGUgcHJlc2VudGluZy4iKX0sdGhpcy5nZXRSZWZlcmVuY2VTcGFjZT1mdW5jdGlvbigpe3JldHVybiBhfSx0aGlzLmdldFNlc3Npb249ZnVuY3Rpb24oKXtyZXR1cm4gcn0sdGhpcy5zZXRTZXNzaW9uPWFzeW5jIGZ1bmN0aW9uKHQpe2lmKHI9dCxudWxsIT09cil7ci5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3QiLHgpLHIuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0c3RhcnQiLHgpLHIuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZW5kIix4KSxyLmFkZEV2ZW50TGlzdGVuZXIoInNxdWVlemUiLHgpLHIuYWRkRXZlbnRMaXN0ZW5lcigic3F1ZWV6ZXN0YXJ0Iix4KSxyLmFkZEV2ZW50TGlzdGVuZXIoInNxdWVlemVlbmQiLHgpLHIuYWRkRXZlbnRMaXN0ZW5lcigiZW5kIix3KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0c291cmNlc2NoYW5nZSIsUyk7Y29uc3QgdD1lLmdldENvbnRleHRBdHRyaWJ1dGVzKCk7aWYoITAhPT10LnhyQ29tcGF0aWJsZSYmYXdhaXQgZS5tYWtlWFJDb21wYXRpYmxlKCksdm9pZCAwPT09ci5yZW5kZXJTdGF0ZS5sYXllcnMpZD1uZXcgWFJXZWJHTExheWVyKHIsZSx7YW50aWFsaWFzOnQuYW50aWFsaWFzLGFscGhhOnQuYWxwaGEsZGVwdGg6dC5kZXB0aCxzdGVuY2lsOnQuc3RlbmNpbCxmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yOm99KSxyLnVwZGF0ZVJlbmRlclN0YXRlKHtiYXNlTGF5ZXI6ZH0pO2Vsc2V7bGV0IG49MDtpZih0LmFudGlhbGlhcylkPW5ldyBYUldlYkdMTGF5ZXIocixlLHthbnRpYWxpYXM6ITAsYWxwaGE6dC5hbHBoYSxkZXB0aDp0LmRlcHRoLHN0ZW5jaWw6dC5zdGVuY2lsLGZyYW1lYnVmZmVyU2NhbGVGYWN0b3I6b30pLHIudXBkYXRlUmVuZGVyU3RhdGUoe2xheWVyczpbZF19KTtlbHNle3QuZGVwdGgmJihuPXQuc3RlbmNpbD8zNDA0MTo2NDAyKTtjb25zdCBpPXtjb2xvckZvcm1hdDp0LmFscGhhPzY0MDg6NjQwNyxkZXB0aEZvcm1hdDpuLHNjYWxlRmFjdG9yOm99O2M9bmV3IFhSV2ViR0xCaW5kaW5nKHIsZSksaD1jLmNyZWF0ZVByb2plY3Rpb25MYXllcihpKSx1PWUuY3JlYXRlRnJhbWVidWZmZXIoKSxyLnVwZGF0ZVJlbmRlclN0YXRlKHtsYXllcnM6W2hdfSl9fWE9YXdhaXQgci5yZXF1ZXN0UmVmZXJlbmNlU3BhY2UocyksQS5zZXRDb250ZXh0KHIpLEEuc3RhcnQoKSxuLmlzUHJlc2VudGluZz0hMCxuLmRpc3BhdGNoRXZlbnQoe3R5cGU6InNlc3Npb25zdGFydCJ9KX19O2NvbnN0IE09bmV3IENKdCxFPW5ldyBDSnQ7ZnVuY3Rpb24gVCh0LGUpe251bGw9PT1lP3QubWF0cml4V29ybGQuY29weSh0Lm1hdHJpeCk6dC5tYXRyaXhXb3JsZC5tdWx0aXBseU1hdHJpY2VzKGUubWF0cml4V29ybGQsdC5tYXRyaXgpLHQubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodC5tYXRyaXhXb3JsZCkuaW52ZXJ0KCl9dGhpcy51cGRhdGVDYW1lcmE9ZnVuY3Rpb24odCl7aWYobnVsbD09PXIpcmV0dXJuO3kubmVhcj1nLm5lYXI9bS5uZWFyPXQubmVhcix5LmZhcj1nLmZhcj1tLmZhcj10LmZhcix2PT09eS5uZWFyJiZiPT09eS5mYXJ8fChyLnVwZGF0ZVJlbmRlclN0YXRlKHtkZXB0aE5lYXI6eS5uZWFyLGRlcHRoRmFyOnkuZmFyfSksdj15Lm5lYXIsYj15LmZhcik7Y29uc3QgZT10LnBhcmVudCxuPXkuY2FtZXJhcztUKHksZSk7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0KyspVChuW3RdLGUpO3kubWF0cml4V29ybGQuZGVjb21wb3NlKHkucG9zaXRpb24seS5xdWF0ZXJuaW9uLHkuc2NhbGUpLHQucG9zaXRpb24uY29weSh5LnBvc2l0aW9uKSx0LnF1YXRlcm5pb24uY29weSh5LnF1YXRlcm5pb24pLHQuc2NhbGUuY29weSh5LnNjYWxlKSx0Lm1hdHJpeC5jb3B5KHkubWF0cml4KSx0Lm1hdHJpeFdvcmxkLmNvcHkoeS5tYXRyaXhXb3JsZCk7Y29uc3QgaT10LmNoaWxkcmVuO2ZvcihsZXQgdD0wLGU9aS5sZW5ndGg7dDxlO3QrKylpW3RdLnVwZGF0ZU1hdHJpeFdvcmxkKCEwKTsyPT09bi5sZW5ndGg/KGZ1bmN0aW9uIG8odCxlLG4pe00uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGUubWF0cml4V29ybGQpLEUuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKG4ubWF0cml4V29ybGQpO2NvbnN0IGk9TS5kaXN0YW5jZVRvKEUpLHI9ZS5wcm9qZWN0aW9uTWF0cml4LmVsZW1lbnRzLG89bi5wcm9qZWN0aW9uTWF0cml4LmVsZW1lbnRzLGE9clsxNF0vKHJbMTBdLTEpLHM9clsxNF0vKHJbMTBdKzEpLGw9KHJbOV0rMSkvcls1XSxjPShyWzldLTEpL3JbNV0sdT0ocls4XS0xKS9yWzBdLGg9KG9bOF0rMSkvb1swXSxkPWEqdSxwPWEqaCxmPWkvKC11K2gpLG09ZiotdTtlLm1hdHJpeFdvcmxkLmRlY29tcG9zZSh0LnBvc2l0aW9uLHQucXVhdGVybmlvbix0LnNjYWxlKSx0LnRyYW5zbGF0ZVgobSksdC50cmFuc2xhdGVaKGYpLHQubWF0cml4V29ybGQuY29tcG9zZSh0LnBvc2l0aW9uLHQucXVhdGVybmlvbix0LnNjYWxlKSx0Lm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHQubWF0cml4V29ybGQpLmludmVydCgpO2NvbnN0IGc9YStmLF89cytmO3QucHJvamVjdGlvbk1hdHJpeC5tYWtlUGVyc3BlY3RpdmUoZC1tLHArKGktbSksbCpzL18qZyxjKnMvXypnLGcsXyl9KSh5LG0sZyk6eS5wcm9qZWN0aW9uTWF0cml4LmNvcHkobS5wcm9qZWN0aW9uTWF0cml4KX0sdGhpcy5nZXRDYW1lcmE9ZnVuY3Rpb24oKXtyZXR1cm4geX0sdGhpcy5nZXRGb3ZlYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PWg/aC5maXhlZEZvdmVhdGlvbjpudWxsIT09ZD9kLmZpeGVkRm92ZWF0aW9uOnZvaWQgMH0sdGhpcy5zZXRGb3ZlYXRpb249ZnVuY3Rpb24odCl7bnVsbCE9PWgmJihoLmZpeGVkRm92ZWF0aW9uPXQpLG51bGwhPT1kJiZ2b2lkIDAhPT1kLmZpeGVkRm92ZWF0aW9uJiYoZC5maXhlZEZvdmVhdGlvbj10KX07bGV0IEM9bnVsbDtjb25zdCBBPW5ldyByMHQ7QS5zZXRBbmltYXRpb25Mb29wKChmdW5jdGlvbiBrKHQsbil7aWYobD1uLmdldFZpZXdlclBvc2UoYSksbnVsbCE9PWwpe2NvbnN0IHQ9bC52aWV3cztudWxsIT09ZCYmaS5iaW5kWFJGcmFtZWJ1ZmZlcihkLmZyYW1lYnVmZmVyKTtsZXQgbj0hMTt0Lmxlbmd0aCE9PXkuY2FtZXJhcy5sZW5ndGgmJih5LmNhbWVyYXMubGVuZ3RoPTAsbj0hMCk7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspe2NvbnN0IG89dFtyXTtsZXQgYT1udWxsO2lmKG51bGwhPT1kKWE9ZC5nZXRWaWV3cG9ydChvKTtlbHNle2NvbnN0IHQ9Yy5nZXRWaWV3U3ViSW1hZ2UoaCxvKTtpLmJpbmRYUkZyYW1lYnVmZmVyKHUpLHZvaWQgMCE9PXQuZGVwdGhTdGVuY2lsVGV4dHVyZSYmZS5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLHQuZGVwdGhTdGVuY2lsVGV4dHVyZSwwKSxlLmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDM2MDY0LDM1NTMsdC5jb2xvclRleHR1cmUsMCksYT10LnZpZXdwb3J0fWNvbnN0IHM9X1tyXTtzLm1hdHJpeC5mcm9tQXJyYXkoby50cmFuc2Zvcm0ubWF0cml4KSxzLnByb2plY3Rpb25NYXRyaXguZnJvbUFycmF5KG8ucHJvamVjdGlvbk1hdHJpeCkscy52aWV3cG9ydC5zZXQoYS54LGEueSxhLndpZHRoLGEuaGVpZ2h0KSwwPT09ciYmeS5tYXRyaXguY29weShzLm1hdHJpeCksITA9PT1uJiZ5LmNhbWVyYXMucHVzaChzKX19Y29uc3Qgbz1yLmlucHV0U291cmNlcztmb3IobGV0IHQ9MDt0PHAubGVuZ3RoO3QrKylwW3RdLnVwZGF0ZShvW3RdLG4sYSk7QyYmQyh0LG4pfSkpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcD1mdW5jdGlvbih0KXtDPXR9LHRoaXMuZGlzcG9zZT1mdW5jdGlvbigpe319fWZ1bmN0aW9uIGo1dCh0KXtmdW5jdGlvbiBlKGUsbil7ZS5vcGFjaXR5LnZhbHVlPW4ub3BhY2l0eSxuLmNvbG9yJiZlLmRpZmZ1c2UudmFsdWUuY29weShuLmNvbG9yKSxuLmVtaXNzaXZlJiZlLmVtaXNzaXZlLnZhbHVlLmNvcHkobi5lbWlzc2l2ZSkubXVsdGlwbHlTY2FsYXIobi5lbWlzc2l2ZUludGVuc2l0eSksbi5tYXAmJihlLm1hcC52YWx1ZT1uLm1hcCksbi5hbHBoYU1hcCYmKGUuYWxwaGFNYXAudmFsdWU9bi5hbHBoYU1hcCksbi5zcGVjdWxhck1hcCYmKGUuc3BlY3VsYXJNYXAudmFsdWU9bi5zcGVjdWxhck1hcCk7Y29uc3QgaT10LmdldChuKS5lbnZNYXA7aWYoaSl7ZS5lbnZNYXAudmFsdWU9aSxlLmZsaXBFbnZNYXAudmFsdWU9aS5pc0N1YmVUZXh0dXJlJiYhMT09PWkuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPy0xOjEsZS5yZWZsZWN0aXZpdHkudmFsdWU9bi5yZWZsZWN0aXZpdHksZS5yZWZyYWN0aW9uUmF0aW8udmFsdWU9bi5yZWZyYWN0aW9uUmF0aW87Y29uc3Qgcj10LmdldChpKS5fX21heE1pcExldmVsO3ZvaWQgMCE9PXImJihlLm1heE1pcExldmVsLnZhbHVlPXIpfWxldCByLG87bi5saWdodE1hcCYmKGUubGlnaHRNYXAudmFsdWU9bi5saWdodE1hcCxlLmxpZ2h0TWFwSW50ZW5zaXR5LnZhbHVlPW4ubGlnaHRNYXBJbnRlbnNpdHkpLG4uYW9NYXAmJihlLmFvTWFwLnZhbHVlPW4uYW9NYXAsZS5hb01hcEludGVuc2l0eS52YWx1ZT1uLmFvTWFwSW50ZW5zaXR5KSxuLm1hcD9yPW4ubWFwOm4uc3BlY3VsYXJNYXA/cj1uLnNwZWN1bGFyTWFwOm4uZGlzcGxhY2VtZW50TWFwP3I9bi5kaXNwbGFjZW1lbnRNYXA6bi5ub3JtYWxNYXA/cj1uLm5vcm1hbE1hcDpuLmJ1bXBNYXA/cj1uLmJ1bXBNYXA6bi5yb3VnaG5lc3NNYXA/cj1uLnJvdWdobmVzc01hcDpuLm1ldGFsbmVzc01hcD9yPW4ubWV0YWxuZXNzTWFwOm4uYWxwaGFNYXA/cj1uLmFscGhhTWFwOm4uZW1pc3NpdmVNYXA/cj1uLmVtaXNzaXZlTWFwOm4uY2xlYXJjb2F0TWFwP3I9bi5jbGVhcmNvYXRNYXA6bi5jbGVhcmNvYXROb3JtYWxNYXA/cj1uLmNsZWFyY29hdE5vcm1hbE1hcDpuLmNsZWFyY29hdFJvdWdobmVzc01hcD9yPW4uY2xlYXJjb2F0Um91Z2huZXNzTWFwOm4uc3BlY3VsYXJJbnRlbnNpdHlNYXA/cj1uLnNwZWN1bGFySW50ZW5zaXR5TWFwOm4uc3BlY3VsYXJUaW50TWFwJiYocj1uLnNwZWN1bGFyVGludE1hcCksdm9pZCAwIT09ciYmKHIuaXNXZWJHTFJlbmRlclRhcmdldCYmKHI9ci50ZXh0dXJlKSwhMD09PXIubWF0cml4QXV0b1VwZGF0ZSYmci51cGRhdGVNYXRyaXgoKSxlLnV2VHJhbnNmb3JtLnZhbHVlLmNvcHkoci5tYXRyaXgpKSxuLmFvTWFwP289bi5hb01hcDpuLmxpZ2h0TWFwJiYobz1uLmxpZ2h0TWFwKSx2b2lkIDAhPT1vJiYoby5pc1dlYkdMUmVuZGVyVGFyZ2V0JiYobz1vLnRleHR1cmUpLCEwPT09by5tYXRyaXhBdXRvVXBkYXRlJiZvLnVwZGF0ZU1hdHJpeCgpLGUudXYyVHJhbnNmb3JtLnZhbHVlLmNvcHkoby5tYXRyaXgpKX1mdW5jdGlvbiBuKGUsbil7ZS5yb3VnaG5lc3MudmFsdWU9bi5yb3VnaG5lc3MsZS5tZXRhbG5lc3MudmFsdWU9bi5tZXRhbG5lc3Msbi5yb3VnaG5lc3NNYXAmJihlLnJvdWdobmVzc01hcC52YWx1ZT1uLnJvdWdobmVzc01hcCksbi5tZXRhbG5lc3NNYXAmJihlLm1ldGFsbmVzc01hcC52YWx1ZT1uLm1ldGFsbmVzc01hcCksbi5lbWlzc2l2ZU1hcCYmKGUuZW1pc3NpdmVNYXAudmFsdWU9bi5lbWlzc2l2ZU1hcCksbi5idW1wTWFwJiYoZS5idW1wTWFwLnZhbHVlPW4uYnVtcE1hcCxlLmJ1bXBTY2FsZS52YWx1ZT1uLmJ1bXBTY2FsZSwxPT09bi5zaWRlJiYoZS5idW1wU2NhbGUudmFsdWUqPS0xKSksbi5ub3JtYWxNYXAmJihlLm5vcm1hbE1hcC52YWx1ZT1uLm5vcm1hbE1hcCxlLm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkobi5ub3JtYWxTY2FsZSksMT09PW4uc2lkZSYmZS5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksbi5kaXNwbGFjZW1lbnRNYXAmJihlLmRpc3BsYWNlbWVudE1hcC52YWx1ZT1uLmRpc3BsYWNlbWVudE1hcCxlLmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPW4uZGlzcGxhY2VtZW50U2NhbGUsZS5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPW4uZGlzcGxhY2VtZW50QmlhcyksdC5nZXQobikuZW52TWFwJiYoZS5lbnZNYXBJbnRlbnNpdHkudmFsdWU9bi5lbnZNYXBJbnRlbnNpdHkpfXJldHVybntyZWZyZXNoRm9nVW5pZm9ybXM6ZnVuY3Rpb24gaSh0LGUpe3QuZm9nQ29sb3IudmFsdWUuY29weShlLmNvbG9yKSxlLmlzRm9nPyh0LmZvZ05lYXIudmFsdWU9ZS5uZWFyLHQuZm9nRmFyLnZhbHVlPWUuZmFyKTplLmlzRm9nRXhwMiYmKHQuZm9nRGVuc2l0eS52YWx1ZT1lLmRlbnNpdHkpfSxyZWZyZXNoTWF0ZXJpYWxVbmlmb3JtczpmdW5jdGlvbiByKHQsaSxvLGEscyl7aS5pc01lc2hCYXNpY01hdGVyaWFsP2UodCxpKTppLmlzTWVzaExhbWJlcnRNYXRlcmlhbD8oZSh0LGkpLChmdW5jdGlvbiBsKHQsZSl7ZS5lbWlzc2l2ZU1hcCYmKHQuZW1pc3NpdmVNYXAudmFsdWU9ZS5lbWlzc2l2ZU1hcCl9KSh0LGkpKTppLmlzTWVzaFRvb25NYXRlcmlhbD8oZSh0LGkpLChmdW5jdGlvbiBjKHQsZSl7ZS5ncmFkaWVudE1hcCYmKHQuZ3JhZGllbnRNYXAudmFsdWU9ZS5ncmFkaWVudE1hcCksZS5lbWlzc2l2ZU1hcCYmKHQuZW1pc3NpdmVNYXAudmFsdWU9ZS5lbWlzc2l2ZU1hcCksZS5idW1wTWFwJiYodC5idW1wTWFwLnZhbHVlPWUuYnVtcE1hcCx0LmJ1bXBTY2FsZS52YWx1ZT1lLmJ1bXBTY2FsZSwxPT09ZS5zaWRlJiYodC5idW1wU2NhbGUudmFsdWUqPS0xKSksZS5ub3JtYWxNYXAmJih0Lm5vcm1hbE1hcC52YWx1ZT1lLm5vcm1hbE1hcCx0Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5ub3JtYWxTY2FsZSksMT09PWUuc2lkZSYmdC5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LGkpKTppLmlzTWVzaFBob25nTWF0ZXJpYWw/KGUodCxpKSwoZnVuY3Rpb24gdSh0LGUpe3Quc3BlY3VsYXIudmFsdWUuY29weShlLnNwZWN1bGFyKSx0LnNoaW5pbmVzcy52YWx1ZT1NYXRoLm1heChlLnNoaW5pbmVzcywxZS00KSxlLmVtaXNzaXZlTWFwJiYodC5lbWlzc2l2ZU1hcC52YWx1ZT1lLmVtaXNzaXZlTWFwKSxlLmJ1bXBNYXAmJih0LmJ1bXBNYXAudmFsdWU9ZS5idW1wTWFwLHQuYnVtcFNjYWxlLnZhbHVlPWUuYnVtcFNjYWxlLDE9PT1lLnNpZGUmJih0LmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSxlLm5vcm1hbE1hcCYmKHQubm9ybWFsTWFwLnZhbHVlPWUubm9ybWFsTWFwLHQubm9ybWFsU2NhbGUudmFsdWUuY29weShlLm5vcm1hbFNjYWxlKSwxPT09ZS5zaWRlJiZ0Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSxlLmRpc3BsYWNlbWVudE1hcCYmKHQuZGlzcGxhY2VtZW50TWFwLnZhbHVlPWUuZGlzcGxhY2VtZW50TWFwLHQuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9ZS5kaXNwbGFjZW1lbnRTY2FsZSx0LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9ZS5kaXNwbGFjZW1lbnRCaWFzKX0pKHQsaSkpOmkuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD8oZSh0LGkpLGkuaXNNZXNoUGh5c2ljYWxNYXRlcmlhbD8oZnVuY3Rpb24gaCh0LGUsaSl7bih0LGUpLHQucmVmbGVjdGl2aXR5LnZhbHVlPWUucmVmbGVjdGl2aXR5LHQuY2xlYXJjb2F0LnZhbHVlPWUuY2xlYXJjb2F0LHQuY2xlYXJjb2F0Um91Z2huZXNzLnZhbHVlPWUuY2xlYXJjb2F0Um91Z2huZXNzLGUuc2hlZW4mJnQuc2hlZW4udmFsdWUuY29weShlLnNoZWVuKSxlLmNsZWFyY29hdE1hcCYmKHQuY2xlYXJjb2F0TWFwLnZhbHVlPWUuY2xlYXJjb2F0TWFwKSxlLmNsZWFyY29hdFJvdWdobmVzc01hcCYmKHQuY2xlYXJjb2F0Um91Z2huZXNzTWFwLnZhbHVlPWUuY2xlYXJjb2F0Um91Z2huZXNzTWFwKSxlLmNsZWFyY29hdE5vcm1hbE1hcCYmKHQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUudmFsdWUuY29weShlLmNsZWFyY29hdE5vcm1hbFNjYWxlKSx0LmNsZWFyY29hdE5vcm1hbE1hcC52YWx1ZT1lLmNsZWFyY29hdE5vcm1hbE1hcCwxPT09ZS5zaWRlJiZ0LmNsZWFyY29hdE5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSx0LnRyYW5zbWlzc2lvbi52YWx1ZT1lLnRyYW5zbWlzc2lvbixlLnRyYW5zbWlzc2lvbk1hcCYmKHQudHJhbnNtaXNzaW9uTWFwLnZhbHVlPWUudHJhbnNtaXNzaW9uTWFwKSxlLnRyYW5zbWlzc2lvbj4wJiYodC50cmFuc21pc3Npb25TYW1wbGVyTWFwLnZhbHVlPWkudGV4dHVyZSx0LnRyYW5zbWlzc2lvblNhbXBsZXJTaXplLnZhbHVlLnNldChpLndpZHRoLGkuaGVpZ2h0KSksdC50aGlja25lc3MudmFsdWU9ZS50aGlja25lc3MsZS50aGlja25lc3NNYXAmJih0LnRoaWNrbmVzc01hcC52YWx1ZT1lLnRoaWNrbmVzc01hcCksdC5hdHRlbnVhdGlvbkRpc3RhbmNlLnZhbHVlPWUuYXR0ZW51YXRpb25EaXN0YW5jZSx0LmF0dGVudWF0aW9uVGludC52YWx1ZS5jb3B5KGUuYXR0ZW51YXRpb25UaW50KSx0LnNwZWN1bGFySW50ZW5zaXR5LnZhbHVlPWUuc3BlY3VsYXJJbnRlbnNpdHksdC5zcGVjdWxhclRpbnQudmFsdWUuY29weShlLnNwZWN1bGFyVGludCksZS5zcGVjdWxhckludGVuc2l0eU1hcCYmKHQuc3BlY3VsYXJJbnRlbnNpdHlNYXAudmFsdWU9ZS5zcGVjdWxhckludGVuc2l0eU1hcCksZS5zcGVjdWxhclRpbnRNYXAmJih0LnNwZWN1bGFyVGludE1hcC52YWx1ZT1lLnNwZWN1bGFyVGludE1hcCl9KSh0LGkscyk6bih0LGkpKTppLmlzTWVzaE1hdGNhcE1hdGVyaWFsPyhlKHQsaSksKGZ1bmN0aW9uIGQodCxlKXtlLm1hdGNhcCYmKHQubWF0Y2FwLnZhbHVlPWUubWF0Y2FwKSxlLmJ1bXBNYXAmJih0LmJ1bXBNYXAudmFsdWU9ZS5idW1wTWFwLHQuYnVtcFNjYWxlLnZhbHVlPWUuYnVtcFNjYWxlLDE9PT1lLnNpZGUmJih0LmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSxlLm5vcm1hbE1hcCYmKHQubm9ybWFsTWFwLnZhbHVlPWUubm9ybWFsTWFwLHQubm9ybWFsU2NhbGUudmFsdWUuY29weShlLm5vcm1hbFNjYWxlKSwxPT09ZS5zaWRlJiZ0Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSxlLmRpc3BsYWNlbWVudE1hcCYmKHQuZGlzcGxhY2VtZW50TWFwLnZhbHVlPWUuZGlzcGxhY2VtZW50TWFwLHQuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9ZS5kaXNwbGFjZW1lbnRTY2FsZSx0LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9ZS5kaXNwbGFjZW1lbnRCaWFzKX0pKHQsaSkpOmkuaXNNZXNoRGVwdGhNYXRlcmlhbD8oZSh0LGkpLChmdW5jdGlvbiBwKHQsZSl7ZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LGkpKTppLmlzTWVzaERpc3RhbmNlTWF0ZXJpYWw/KGUodCxpKSwoZnVuY3Rpb24gZih0LGUpe2UuZGlzcGxhY2VtZW50TWFwJiYodC5kaXNwbGFjZW1lbnRNYXAudmFsdWU9ZS5kaXNwbGFjZW1lbnRNYXAsdC5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1lLmRpc3BsYWNlbWVudFNjYWxlLHQuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1lLmRpc3BsYWNlbWVudEJpYXMpLHQucmVmZXJlbmNlUG9zaXRpb24udmFsdWUuY29weShlLnJlZmVyZW5jZVBvc2l0aW9uKSx0Lm5lYXJEaXN0YW5jZS52YWx1ZT1lLm5lYXJEaXN0YW5jZSx0LmZhckRpc3RhbmNlLnZhbHVlPWUuZmFyRGlzdGFuY2V9KSh0LGkpKTppLmlzTWVzaE5vcm1hbE1hdGVyaWFsPyhlKHQsaSksKGZ1bmN0aW9uIG0odCxlKXtlLmJ1bXBNYXAmJih0LmJ1bXBNYXAudmFsdWU9ZS5idW1wTWFwLHQuYnVtcFNjYWxlLnZhbHVlPWUuYnVtcFNjYWxlLDE9PT1lLnNpZGUmJih0LmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSxlLm5vcm1hbE1hcCYmKHQubm9ybWFsTWFwLnZhbHVlPWUubm9ybWFsTWFwLHQubm9ybWFsU2NhbGUudmFsdWUuY29weShlLm5vcm1hbFNjYWxlKSwxPT09ZS5zaWRlJiZ0Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSxlLmRpc3BsYWNlbWVudE1hcCYmKHQuZGlzcGxhY2VtZW50TWFwLnZhbHVlPWUuZGlzcGxhY2VtZW50TWFwLHQuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9ZS5kaXNwbGFjZW1lbnRTY2FsZSx0LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9ZS5kaXNwbGFjZW1lbnRCaWFzKX0pKHQsaSkpOmkuaXNMaW5lQmFzaWNNYXRlcmlhbD8oKGZ1bmN0aW9uIGcodCxlKXt0LmRpZmZ1c2UudmFsdWUuY29weShlLmNvbG9yKSx0Lm9wYWNpdHkudmFsdWU9ZS5vcGFjaXR5fSkodCxpKSxpLmlzTGluZURhc2hlZE1hdGVyaWFsJiYoZnVuY3Rpb24gXyh0LGUpe3QuZGFzaFNpemUudmFsdWU9ZS5kYXNoU2l6ZSx0LnRvdGFsU2l6ZS52YWx1ZT1lLmRhc2hTaXplK2UuZ2FwU2l6ZSx0LnNjYWxlLnZhbHVlPWUuc2NhbGV9KSh0LGkpKTppLmlzUG9pbnRzTWF0ZXJpYWw/KGZ1bmN0aW9uIHkodCxlLG4saSl7bGV0IHI7dC5kaWZmdXNlLnZhbHVlLmNvcHkoZS5jb2xvciksdC5vcGFjaXR5LnZhbHVlPWUub3BhY2l0eSx0LnNpemUudmFsdWU9ZS5zaXplKm4sdC5zY2FsZS52YWx1ZT0uNSppLGUubWFwJiYodC5tYXAudmFsdWU9ZS5tYXApLGUuYWxwaGFNYXAmJih0LmFscGhhTWFwLnZhbHVlPWUuYWxwaGFNYXApLGUubWFwP3I9ZS5tYXA6ZS5hbHBoYU1hcCYmKHI9ZS5hbHBoYU1hcCksdm9pZCAwIT09ciYmKCEwPT09ci5tYXRyaXhBdXRvVXBkYXRlJiZyLnVwZGF0ZU1hdHJpeCgpLHQudXZUcmFuc2Zvcm0udmFsdWUuY29weShyLm1hdHJpeCkpfSkodCxpLG8sYSk6aS5pc1Nwcml0ZU1hdGVyaWFsPyhmdW5jdGlvbiB2KHQsZSl7bGV0IG47dC5kaWZmdXNlLnZhbHVlLmNvcHkoZS5jb2xvciksdC5vcGFjaXR5LnZhbHVlPWUub3BhY2l0eSx0LnJvdGF0aW9uLnZhbHVlPWUucm90YXRpb24sZS5tYXAmJih0Lm1hcC52YWx1ZT1lLm1hcCksZS5hbHBoYU1hcCYmKHQuYWxwaGFNYXAudmFsdWU9ZS5hbHBoYU1hcCksZS5tYXA/bj1lLm1hcDplLmFscGhhTWFwJiYobj1lLmFscGhhTWFwKSx2b2lkIDAhPT1uJiYoITA9PT1uLm1hdHJpeEF1dG9VcGRhdGUmJm4udXBkYXRlTWF0cml4KCksdC51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KG4ubWF0cml4KSl9KSh0LGkpOmkuaXNTaGFkb3dNYXRlcmlhbD8odC5jb2xvci52YWx1ZS5jb3B5KGkuY29sb3IpLHQub3BhY2l0eS52YWx1ZT1pLm9wYWNpdHkpOmkuaXNTaGFkZXJNYXRlcmlhbCYmKGkudW5pZm9ybXNOZWVkVXBkYXRlPSExKX19fWZ1bmN0aW9uIEc1dCh0PXt9KXtjb25zdCBlPXZvaWQgMCE9PXQuY2FudmFzP3QuY2FudmFzOihmdW5jdGlvbiBuKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJjYW52YXMiKTtyZXR1cm4gdC5zdHlsZS5kaXNwbGF5PSJibG9jayIsdH0pKCksaT12b2lkIDAhPT10LmNvbnRleHQ/dC5jb250ZXh0Om51bGwscj12b2lkIDAhPT10LmFscGhhJiZ0LmFscGhhLG89dm9pZCAwPT09dC5kZXB0aHx8dC5kZXB0aCxhPXZvaWQgMD09PXQuc3RlbmNpbHx8dC5zdGVuY2lsLHM9dm9pZCAwIT09dC5hbnRpYWxpYXMmJnQuYW50aWFsaWFzLGw9dm9pZCAwPT09dC5wcmVtdWx0aXBsaWVkQWxwaGF8fHQucHJlbXVsdGlwbGllZEFscGhhLGM9dm9pZCAwIT09dC5wcmVzZXJ2ZURyYXdpbmdCdWZmZXImJnQucHJlc2VydmVEcmF3aW5nQnVmZmVyLHU9dm9pZCAwIT09dC5wb3dlclByZWZlcmVuY2U/dC5wb3dlclByZWZlcmVuY2U6ImRlZmF1bHQiLGg9dm9pZCAwIT09dC5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0JiZ0LmZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ7bGV0IGQ9bnVsbCxwPW51bGw7Y29uc3QgZj1bXSxtPVtdO3RoaXMuZG9tRWxlbWVudD1lLHRoaXMuZGVidWc9e2NoZWNrU2hhZGVyRXJyb3JzOiEwfSx0aGlzLmF1dG9DbGVhcj0hMCx0aGlzLmF1dG9DbGVhckNvbG9yPSEwLHRoaXMuYXV0b0NsZWFyRGVwdGg9ITAsdGhpcy5hdXRvQ2xlYXJTdGVuY2lsPSEwLHRoaXMuc29ydE9iamVjdHM9ITAsdGhpcy5jbGlwcGluZ1BsYW5lcz1bXSx0aGlzLmxvY2FsQ2xpcHBpbmdFbmFibGVkPSExLHRoaXMuZ2FtbWFGYWN0b3I9Mix0aGlzLm91dHB1dEVuY29kaW5nPU5adCx0aGlzLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzPSExLHRoaXMudG9uZU1hcHBpbmc9MCx0aGlzLnRvbmVNYXBwaW5nRXhwb3N1cmU9MTtjb25zdCBnPXRoaXM7bGV0IF89ITEseT0wLHY9MCxiPW51bGwseD0tMSx3PW51bGw7Y29uc3QgUz1uZXcgd0p0LE09bmV3IHdKdDtsZXQgRT1udWxsLFQ9ZS53aWR0aCxDPWUuaGVpZ2h0LEE9MSxrPW51bGwsTD1udWxsO2NvbnN0IFA9bmV3IHdKdCgwLDAsVCxDKSxOPW5ldyB3SnQoMCwwLFQsQyk7bGV0IEk9ITE7Y29uc3QgUj1bXSxPPW5ldyBpMHQ7bGV0IHo9ITEsRD0hMSxCPW51bGw7Y29uc3QgSD1uZXcgclF0LEY9bmV3IENKdCxWPXtiYWNrZ3JvdW5kOm51bGwsZm9nOm51bGwsZW52aXJvbm1lbnQ6bnVsbCxvdmVycmlkZU1hdGVyaWFsOm51bGwsaXNTY2VuZTohMH07ZnVuY3Rpb24gVSgpe3JldHVybiBudWxsPT09Yj9BOjF9bGV0IGosRyxXLHEsWSxYLCQsSyxaLEosUSx0dCxldCxudCxpdCxydCxvdCxhdCxzdCxsdCxjdCx1dCxodCxkdD1pO2Z1bmN0aW9uIHB0KHQsbil7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspe2NvbnN0IHI9ZS5nZXRDb250ZXh0KHRbaV0sbik7aWYobnVsbCE9PXIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9dHJ5e2NvbnN0IHQ9e2FscGhhOnIsZGVwdGg6byxzdGVuY2lsOmEsYW50aWFsaWFzOnMscHJlbXVsdGlwbGllZEFscGhhOmwscHJlc2VydmVEcmF3aW5nQnVmZmVyOmMscG93ZXJQcmVmZXJlbmNlOnUsZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdDpofTtpZihlLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLGd0LCExKSxlLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIixfdCwhMSksbnVsbD09PWR0KXtjb25zdCBlPVsid2ViZ2wyIiwid2ViZ2wiLCJleHBlcmltZW50YWwtd2ViZ2wiXTtpZighMD09PWcuaXNXZWJHTDFSZW5kZXJlciYmZS5zaGlmdCgpLGR0PXB0KGUsdCksbnVsbD09PWR0KXRocm93IHB0KGUpP25ldyBFcnJvcigiRXJyb3IgY3JlYXRpbmcgV2ViR0wgY29udGV4dCB3aXRoIHlvdXIgc2VsZWN0ZWQgYXR0cmlidXRlcy4iKTpuZXcgRXJyb3IoIkVycm9yIGNyZWF0aW5nIFdlYkdMIGNvbnRleHQuIil9dm9pZCAwPT09ZHQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0JiYoZHQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJue3JhbmdlTWluOjEscmFuZ2VNYXg6MSxwcmVjaXNpb246MX19KX1jYXRjaCh0KXt0aHJvdyBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAiK3QubWVzc2FnZSksdH1mdW5jdGlvbiBmdCgpe2o9bmV3IFUwdChkdCksRz1uZXcgcDB0KGR0LGosdCksai5pbml0KEcpLHV0PW5ldyBENXQoZHQsaixHKSxXPW5ldyBPNXQoZHQsaixHKSxSWzBdPTEwMjkscT1uZXcgVzB0KGR0KSxZPW5ldyB4NXQsWD1uZXcgejV0KGR0LGosVyxZLEcsdXQscSksJD1uZXcgbTB0KGcpLEs9bmV3IFYwdChnKSxaPW5ldyBvMHQoZHQsRyksaHQ9bmV3IGgwdChkdCxqLFosRyksSj1uZXcgajB0KGR0LFoscSxodCksUT1uZXcgJDB0KGR0LEosWixxKSxzdD1uZXcgWDB0KGR0KSxydD1uZXcgZjB0KFkpLHR0PW5ldyBiNXQoZywkLEssaixHLGh0LHJ0KSxldD1uZXcgajV0KFkpLG50PW5ldyBFNXQoWSksaXQ9bmV3IFA1dChqLEcpLGF0PW5ldyB1MHQoZywkLFcsUSxsKSxvdD1uZXcgUjV0KGcsUSxHKSxsdD1uZXcgZDB0KGR0LGoscSxHKSxjdD1uZXcgRzB0KGR0LGoscSxHKSxxLnByb2dyYW1zPXR0LnByb2dyYW1zLGcuY2FwYWJpbGl0aWVzPUcsZy5leHRlbnNpb25zPWosZy5wcm9wZXJ0aWVzPVksZy5yZW5kZXJMaXN0cz1udCxnLnNoYWRvd01hcD1vdCxnLnN0YXRlPVcsZy5pbmZvPXF9ZnQoKTtjb25zdCBtdD1uZXcgVTV0KGcsZHQpO2Z1bmN0aW9uIGd0KHQpe3QucHJldmVudERlZmF1bHQoKSxjb25zb2xlLmxvZygiVEhSRUUuV2ViR0xSZW5kZXJlcjogQ29udGV4dCBMb3N0LiIpLF89ITB9ZnVuY3Rpb24gX3QoKXtjb25zb2xlLmxvZygiVEhSRUUuV2ViR0xSZW5kZXJlcjogQ29udGV4dCBSZXN0b3JlZC4iKSxfPSExO2NvbnN0IHQ9cS5hdXRvUmVzZXQsZT1vdC5lbmFibGVkLG49b3QuYXV0b1VwZGF0ZSxpPW90Lm5lZWRzVXBkYXRlLHI9b3QudHlwZTtmdCgpLHEuYXV0b1Jlc2V0PXQsb3QuZW5hYmxlZD1lLG90LmF1dG9VcGRhdGU9bixvdC5uZWVkc1VwZGF0ZT1pLG90LnR5cGU9cn1mdW5jdGlvbiB5dCh0KXtjb25zdCBlPXQudGFyZ2V0O2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIseXQpLChmdW5jdGlvbiBuKHQpeyhmdW5jdGlvbiBlKHQpe2NvbnN0IGU9WS5nZXQodCkucHJvZ3JhbXM7dm9pZCAwIT09ZSYmZS5mb3JFYWNoKChmdW5jdGlvbih0KXt0dC5yZWxlYXNlUHJvZ3JhbSh0KX0pKX0pKHQpLFkucmVtb3ZlKHQpfSkoZSl9dGhpcy54cj1tdCx0aGlzLmdldENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gZHR9LHRoaXMuZ2V0Q29udGV4dEF0dHJpYnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZHQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKX0sdGhpcy5mb3JjZUNvbnRleHRMb3NzPWZ1bmN0aW9uKCl7Y29uc3QgdD1qLmdldCgiV0VCR0xfbG9zZV9jb250ZXh0Iik7dCYmdC5sb3NlQ29udGV4dCgpfSx0aGlzLmZvcmNlQ29udGV4dFJlc3RvcmU9ZnVuY3Rpb24oKXtjb25zdCB0PWouZ2V0KCJXRUJHTF9sb3NlX2NvbnRleHQiKTt0JiZ0LnJlc3RvcmVDb250ZXh0KCl9LHRoaXMuZ2V0UGl4ZWxSYXRpbz1mdW5jdGlvbigpe3JldHVybiBBfSx0aGlzLnNldFBpeGVsUmF0aW89ZnVuY3Rpb24odCl7dm9pZCAwIT09dCYmKEE9dCx0aGlzLnNldFNpemUoVCxDLCExKSl9LHRoaXMuZ2V0U2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5zZXQoVCxDKX0sdGhpcy5zZXRTaXplPWZ1bmN0aW9uKHQsbixpKXttdC5pc1ByZXNlbnRpbmc/Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBDYW4ndCBjaGFuZ2Ugc2l6ZSB3aGlsZSBWUiBkZXZpY2UgaXMgcHJlc2VudGluZy4iKTooVD10LEM9bixlLndpZHRoPU1hdGguZmxvb3IodCpBKSxlLmhlaWdodD1NYXRoLmZsb29yKG4qQSksITEhPT1pJiYoZS5zdHlsZS53aWR0aD10KyJweCIsZS5zdHlsZS5oZWlnaHQ9bisicHgiKSx0aGlzLnNldFZpZXdwb3J0KDAsMCx0LG4pKX0sdGhpcy5nZXREcmF3aW5nQnVmZmVyU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5zZXQoVCpBLEMqQSkuZmxvb3IoKX0sdGhpcy5zZXREcmF3aW5nQnVmZmVyU2l6ZT1mdW5jdGlvbih0LG4saSl7VD10LEM9bixBPWksZS53aWR0aD1NYXRoLmZsb29yKHQqaSksZS5oZWlnaHQ9TWF0aC5mbG9vcihuKmkpLHRoaXMuc2V0Vmlld3BvcnQoMCwwLHQsbil9LHRoaXMuZ2V0Q3VycmVudFZpZXdwb3J0PWZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoUyl9LHRoaXMuZ2V0Vmlld3BvcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weShQKX0sdGhpcy5zZXRWaWV3cG9ydD1mdW5jdGlvbih0LGUsbixpKXt0LmlzVmVjdG9yND9QLnNldCh0LngsdC55LHQueix0LncpOlAuc2V0KHQsZSxuLGkpLFcudmlld3BvcnQoUy5jb3B5KFApLm11bHRpcGx5U2NhbGFyKEEpLmZsb29yKCkpfSx0aGlzLmdldFNjaXNzb3I9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weShOKX0sdGhpcy5zZXRTY2lzc29yPWZ1bmN0aW9uKHQsZSxuLGkpe3QuaXNWZWN0b3I0P04uc2V0KHQueCx0LnksdC56LHQudyk6Ti5zZXQodCxlLG4saSksVy5zY2lzc29yKE0uY29weShOKS5tdWx0aXBseVNjYWxhcihBKS5mbG9vcigpKX0sdGhpcy5nZXRTY2lzc29yVGVzdD1mdW5jdGlvbigpe3JldHVybiBJfSx0aGlzLnNldFNjaXNzb3JUZXN0PWZ1bmN0aW9uKHQpe1cuc2V0U2Npc3NvclRlc3QoST10KX0sdGhpcy5zZXRPcGFxdWVTb3J0PWZ1bmN0aW9uKHQpe2s9dH0sdGhpcy5zZXRUcmFuc3BhcmVudFNvcnQ9ZnVuY3Rpb24odCl7TD10fSx0aGlzLmdldENsZWFyQ29sb3I9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weShhdC5nZXRDbGVhckNvbG9yKCkpfSx0aGlzLnNldENsZWFyQ29sb3I9ZnVuY3Rpb24oKXthdC5zZXRDbGVhckNvbG9yLmFwcGx5KGF0LGFyZ3VtZW50cyl9LHRoaXMuZ2V0Q2xlYXJBbHBoYT1mdW5jdGlvbigpe3JldHVybiBhdC5nZXRDbGVhckFscGhhKCl9LHRoaXMuc2V0Q2xlYXJBbHBoYT1mdW5jdGlvbigpe2F0LnNldENsZWFyQWxwaGEuYXBwbHkoYXQsYXJndW1lbnRzKX0sdGhpcy5jbGVhcj1mdW5jdGlvbih0LGUsbil7bGV0IGk9MDsodm9pZCAwPT09dHx8dCkmJihpfD0xNjM4NCksKHZvaWQgMD09PWV8fGUpJiYoaXw9MjU2KSwodm9pZCAwPT09bnx8bikmJihpfD0xMDI0KSxkdC5jbGVhcihpKX0sdGhpcy5jbGVhckNvbG9yPWZ1bmN0aW9uKCl7dGhpcy5jbGVhcighMCwhMSwhMSl9LHRoaXMuY2xlYXJEZXB0aD1mdW5jdGlvbigpe3RoaXMuY2xlYXIoITEsITAsITEpfSx0aGlzLmNsZWFyU3RlbmNpbD1mdW5jdGlvbigpe3RoaXMuY2xlYXIoITEsITEsITApfSx0aGlzLmRpc3Bvc2U9ZnVuY3Rpb24oKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLGd0LCExKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIixfdCwhMSksbnQuZGlzcG9zZSgpLGl0LmRpc3Bvc2UoKSxZLmRpc3Bvc2UoKSwkLmRpc3Bvc2UoKSxLLmRpc3Bvc2UoKSxRLmRpc3Bvc2UoKSxodC5kaXNwb3NlKCksbXQuZGlzcG9zZSgpLG10LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlc3Npb25zdGFydCIsYnQpLG10LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlc3Npb25lbmQiLHh0KSxCJiYoQi5kaXNwb3NlKCksQj1udWxsKSx3dC5zdG9wKCl9LHRoaXMucmVuZGVyQnVmZmVySW1tZWRpYXRlPWZ1bmN0aW9uKHQsZSl7aHQuaW5pdEF0dHJpYnV0ZXMoKTtjb25zdCBuPVkuZ2V0KHQpO3QuaGFzUG9zaXRpb25zJiYhbi5wb3NpdGlvbiYmKG4ucG9zaXRpb249ZHQuY3JlYXRlQnVmZmVyKCkpLHQuaGFzTm9ybWFscyYmIW4ubm9ybWFsJiYobi5ub3JtYWw9ZHQuY3JlYXRlQnVmZmVyKCkpLHQuaGFzVXZzJiYhbi51diYmKG4udXY9ZHQuY3JlYXRlQnVmZmVyKCkpLHQuaGFzQ29sb3JzJiYhbi5jb2xvciYmKG4uY29sb3I9ZHQuY3JlYXRlQnVmZmVyKCkpO2NvbnN0IGk9ZS5nZXRBdHRyaWJ1dGVzKCk7dC5oYXNQb3NpdGlvbnMmJihkdC5iaW5kQnVmZmVyKDM0OTYyLG4ucG9zaXRpb24pLGR0LmJ1ZmZlckRhdGEoMzQ5NjIsdC5wb3NpdGlvbkFycmF5LDM1MDQ4KSxodC5lbmFibGVBdHRyaWJ1dGUoaS5wb3NpdGlvbiksZHQudmVydGV4QXR0cmliUG9pbnRlcihpLnBvc2l0aW9uLDMsNTEyNiwhMSwwLDApKSx0Lmhhc05vcm1hbHMmJihkdC5iaW5kQnVmZmVyKDM0OTYyLG4ubm9ybWFsKSxkdC5idWZmZXJEYXRhKDM0OTYyLHQubm9ybWFsQXJyYXksMzUwNDgpLGh0LmVuYWJsZUF0dHJpYnV0ZShpLm5vcm1hbCksZHQudmVydGV4QXR0cmliUG9pbnRlcihpLm5vcm1hbCwzLDUxMjYsITEsMCwwKSksdC5oYXNVdnMmJihkdC5iaW5kQnVmZmVyKDM0OTYyLG4udXYpLGR0LmJ1ZmZlckRhdGEoMzQ5NjIsdC51dkFycmF5LDM1MDQ4KSxodC5lbmFibGVBdHRyaWJ1dGUoaS51diksZHQudmVydGV4QXR0cmliUG9pbnRlcihpLnV2LDIsNTEyNiwhMSwwLDApKSx0Lmhhc0NvbG9ycyYmKGR0LmJpbmRCdWZmZXIoMzQ5NjIsbi5jb2xvciksZHQuYnVmZmVyRGF0YSgzNDk2Mix0LmNvbG9yQXJyYXksMzUwNDgpLGh0LmVuYWJsZUF0dHJpYnV0ZShpLmNvbG9yKSxkdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGkuY29sb3IsMyw1MTI2LCExLDAsMCkpLGh0LmRpc2FibGVVbnVzZWRBdHRyaWJ1dGVzKCksZHQuZHJhd0FycmF5cyg0LDAsdC5jb3VudCksdC5jb3VudD0wfSx0aGlzLnJlbmRlckJ1ZmZlckRpcmVjdD1mdW5jdGlvbih0LGUsbixpLHIsbyl7bnVsbD09PWUmJihlPVYpO2NvbnN0IGE9ci5pc01lc2gmJnIubWF0cml4V29ybGQuZGV0ZXJtaW5hbnQoKTwwLHM9QXQodCxlLGkscik7Vy5zZXRNYXRlcmlhbChpLGEpO2xldCBsPW4uaW5kZXg7Y29uc3QgYz1uLmF0dHJpYnV0ZXMucG9zaXRpb247aWYobnVsbD09PWwpe2lmKHZvaWQgMD09PWN8fDA9PT1jLmNvdW50KXJldHVybn1lbHNlIGlmKDA9PT1sLmNvdW50KXJldHVybjtsZXQgdSxoPTE7ITA9PT1pLndpcmVmcmFtZSYmKGw9Si5nZXRXaXJlZnJhbWVBdHRyaWJ1dGUobiksaD0yKSx2b2lkIDA9PT1uLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbiYmdm9pZCAwPT09bi5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsfHxzdC51cGRhdGUocixuLGkscyksaHQuc2V0dXAocixpLHMsbixsKTtsZXQgZD1sdDtudWxsIT09bCYmKHU9Wi5nZXQobCksZD1jdCxkLnNldEluZGV4KHUpKTtjb25zdCBwPW51bGwhPT1sP2wuY291bnQ6Yy5jb3VudCxmPW4uZHJhd1JhbmdlLnN0YXJ0KmgsbT1uLmRyYXdSYW5nZS5jb3VudCpoLGc9bnVsbCE9PW8/by5zdGFydCpoOjAsXz1udWxsIT09bz9vLmNvdW50Kmg6MS8wLHk9TWF0aC5tYXgoZixnKSx2PU1hdGgubWluKHAsZittLGcrXyktMSxiPU1hdGgubWF4KDAsdi15KzEpO2lmKDAhPT1iKXtpZihyLmlzTWVzaCkhMD09PWkud2lyZWZyYW1lPyhXLnNldExpbmVXaWR0aChpLndpcmVmcmFtZUxpbmV3aWR0aCpVKCkpLGQuc2V0TW9kZSgxKSk6ZC5zZXRNb2RlKDQpO2Vsc2UgaWYoci5pc0xpbmUpe2xldCB0PWkubGluZXdpZHRoO3ZvaWQgMD09PXQmJih0PTEpLFcuc2V0TGluZVdpZHRoKHQqVSgpKSxkLnNldE1vZGUoci5pc0xpbmVTZWdtZW50cz8xOnIuaXNMaW5lTG9vcD8yOjMpfWVsc2Ugci5pc1BvaW50cz9kLnNldE1vZGUoMCk6ci5pc1Nwcml0ZSYmZC5zZXRNb2RlKDQpO2lmKHIuaXNJbnN0YW5jZWRNZXNoKWQucmVuZGVySW5zdGFuY2VzKHksYixyLmNvdW50KTtlbHNlIGlmKG4uaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSl7Y29uc3QgdD1NYXRoLm1pbihuLmluc3RhbmNlQ291bnQsbi5fbWF4SW5zdGFuY2VDb3VudCk7ZC5yZW5kZXJJbnN0YW5jZXMoeSxiLHQpfWVsc2UgZC5yZW5kZXIoeSxiKX19LHRoaXMuY29tcGlsZT1mdW5jdGlvbih0LGUpe3A9aXQuZ2V0KHQpLHAuaW5pdCgpLG0ucHVzaChwKSx0LnRyYXZlcnNlVmlzaWJsZSgoZnVuY3Rpb24odCl7dC5pc0xpZ2h0JiZ0LmxheWVycy50ZXN0KGUubGF5ZXJzKSYmKHAucHVzaExpZ2h0KHQpLHQuY2FzdFNoYWRvdyYmcC5wdXNoU2hhZG93KHQpKX0pKSxwLnNldHVwTGlnaHRzKCksdC50cmF2ZXJzZSgoZnVuY3Rpb24oZSl7Y29uc3Qgbj1lLm1hdGVyaWFsO2lmKG4paWYoQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IGk9MDtpPG4ubGVuZ3RoO2krKylUdChuW2ldLHQsZSk7ZWxzZSBUdChuLHQsZSl9KSksbS5wb3AoKSxwPW51bGx9O2xldCB2dD1udWxsO2Z1bmN0aW9uIGJ0KCl7d3Quc3RvcCgpfWZ1bmN0aW9uIHh0KCl7d3Quc3RhcnQoKX1jb25zdCB3dD1uZXcgcjB0O2Z1bmN0aW9uIFN0KHQsZSxuLGkpe2lmKCExPT09dC52aXNpYmxlKXJldHVybjtpZih0LmxheWVycy50ZXN0KGUubGF5ZXJzKSlpZih0LmlzR3JvdXApbj10LnJlbmRlck9yZGVyO2Vsc2UgaWYodC5pc0xPRCkhMD09PXQuYXV0b1VwZGF0ZSYmdC51cGRhdGUoZSk7ZWxzZSBpZih0LmlzTGlnaHQpcC5wdXNoTGlnaHQodCksdC5jYXN0U2hhZG93JiZwLnB1c2hTaGFkb3codCk7ZWxzZSBpZih0LmlzU3ByaXRlKXtpZighdC5mcnVzdHVtQ3VsbGVkfHxPLmludGVyc2VjdHNTcHJpdGUodCkpe2kmJkYuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLmFwcGx5TWF0cml4NChIKTtjb25zdCBlPVEudXBkYXRlKHQpLHI9dC5tYXRlcmlhbDtyLnZpc2libGUmJmQucHVzaCh0LGUscixuLEYueixudWxsKX19ZWxzZSBpZih0LmlzSW1tZWRpYXRlUmVuZGVyT2JqZWN0KWkmJkYuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLmFwcGx5TWF0cml4NChIKSxkLnB1c2godCxudWxsLHQubWF0ZXJpYWwsbixGLnosbnVsbCk7ZWxzZSBpZigodC5pc01lc2h8fHQuaXNMaW5lfHx0LmlzUG9pbnRzKSYmKHQuaXNTa2lubmVkTWVzaCYmdC5za2VsZXRvbi5mcmFtZSE9PXEucmVuZGVyLmZyYW1lJiYodC5za2VsZXRvbi51cGRhdGUoKSx0LnNrZWxldG9uLmZyYW1lPXEucmVuZGVyLmZyYW1lKSwhdC5mcnVzdHVtQ3VsbGVkfHxPLmludGVyc2VjdHNPYmplY3QodCkpKXtpJiZGLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKS5hcHBseU1hdHJpeDQoSCk7Y29uc3QgZT1RLnVwZGF0ZSh0KSxyPXQubWF0ZXJpYWw7aWYoQXJyYXkuaXNBcnJheShyKSl7Y29uc3QgaT1lLmdyb3Vwcztmb3IobGV0IG89MCxhPWkubGVuZ3RoO288YTtvKyspe2NvbnN0IGE9aVtvXSxzPXJbYS5tYXRlcmlhbEluZGV4XTtzJiZzLnZpc2libGUmJmQucHVzaCh0LGUscyxuLEYueixhKX19ZWxzZSByLnZpc2libGUmJmQucHVzaCh0LGUscixuLEYueixudWxsKX1jb25zdCByPXQuY2hpbGRyZW47Zm9yKGxldCB0PTAsbz1yLmxlbmd0aDt0PG87dCsrKVN0KHJbdF0sZSxuLGkpfWZ1bmN0aW9uIE10KHQsZSxuKXtjb25zdCBpPSEwPT09ZS5pc1NjZW5lP2Uub3ZlcnJpZGVNYXRlcmlhbDpudWxsO2lmKG4uaXNBcnJheUNhbWVyYSl7Y29uc3Qgcj1uLmNhbWVyYXM7Zm9yKGxldCBuPTAsbz1yLmxlbmd0aDtuPG87bisrKXtjb25zdCBvPXJbbl07Vy52aWV3cG9ydChTLmNvcHkoby52aWV3cG9ydCkpLHAuc2V0dXBMaWdodHNWaWV3KG8pO2ZvcihsZXQgbj0wLHI9dC5sZW5ndGg7bjxyO24rKyl7Y29uc3Qgcj10W25dLGE9ci5vYmplY3Qscz1yLmdlb21ldHJ5LGw9bnVsbD09PWk/ci5tYXRlcmlhbDppLGM9ci5ncm91cDthLmxheWVycy50ZXN0KG8ubGF5ZXJzKSYmRXQoYSxlLG8scyxsLGMpfX19ZWxzZSBmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bztyKyspe2NvbnN0IG89dFtyXTtFdChvLm9iamVjdCxlLG4sby5nZW9tZXRyeSxudWxsPT09aT9vLm1hdGVyaWFsOmksby5ncm91cCl9fWZ1bmN0aW9uIEV0KHQsZSxuLGkscixvKXtpZih0Lm9uQmVmb3JlUmVuZGVyKGcsZSxuLGkscixvKSx0Lm1vZGVsVmlld01hdHJpeC5tdWx0aXBseU1hdHJpY2VzKG4ubWF0cml4V29ybGRJbnZlcnNlLHQubWF0cml4V29ybGQpLHQubm9ybWFsTWF0cml4LmdldE5vcm1hbE1hdHJpeCh0Lm1vZGVsVmlld01hdHJpeCksdC5pc0ltbWVkaWF0ZVJlbmRlck9iamVjdCl7Y29uc3QgaT1BdChuLGUscix0KTtXLnNldE1hdGVyaWFsKHIpLGh0LnJlc2V0KCksKGZ1bmN0aW9uIGEodCxlKXt0LnJlbmRlcigoZnVuY3Rpb24odCl7Zy5yZW5kZXJCdWZmZXJJbW1lZGlhdGUodCxlKX0pKX0pKHQsaSl9ZWxzZSEwPT09ci50cmFuc3BhcmVudCYmMj09PXIuc2lkZT8oci5zaWRlPTEsci5uZWVkc1VwZGF0ZT0hMCxnLnJlbmRlckJ1ZmZlckRpcmVjdChuLGUsaSxyLHQsbyksci5zaWRlPTAsci5uZWVkc1VwZGF0ZT0hMCxnLnJlbmRlckJ1ZmZlckRpcmVjdChuLGUsaSxyLHQsbyksci5zaWRlPTIpOmcucmVuZGVyQnVmZmVyRGlyZWN0KG4sZSxpLHIsdCxvKTt0Lm9uQWZ0ZXJSZW5kZXIoZyxlLG4saSxyLG8pfWZ1bmN0aW9uIFR0KHQsZSxuKXshMCE9PWUuaXNTY2VuZSYmKGU9Vik7Y29uc3QgaT1ZLmdldCh0KSxyPXAuc3RhdGUubGlnaHRzLG89ci5zdGF0ZS52ZXJzaW9uLGE9dHQuZ2V0UGFyYW1ldGVycyh0LHIuc3RhdGUscC5zdGF0ZS5zaGFkb3dzQXJyYXksZSxuKSxzPXR0LmdldFByb2dyYW1DYWNoZUtleShhKTtsZXQgbD1pLnByb2dyYW1zO2kuZW52aXJvbm1lbnQ9dC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP2UuZW52aXJvbm1lbnQ6bnVsbCxpLmZvZz1lLmZvZyxpLmVudk1hcD0odC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP0s6JCkuZ2V0KHQuZW52TWFwfHxpLmVudmlyb25tZW50KSx2b2lkIDA9PT1sJiYodC5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIix5dCksbD1uZXcgTWFwLGkucHJvZ3JhbXM9bCk7bGV0IGM9bC5nZXQocyk7aWYodm9pZCAwIT09Yyl7aWYoaS5jdXJyZW50UHJvZ3JhbT09PWMmJmkubGlnaHRzU3RhdGVWZXJzaW9uPT09bylyZXR1cm4gQ3QodCxhKSxjfWVsc2UgYS51bmlmb3Jtcz10dC5nZXRVbmlmb3Jtcyh0KSx0Lm9uQnVpbGQoYSxnKSx0Lm9uQmVmb3JlQ29tcGlsZShhLGcpLGM9dHQuYWNxdWlyZVByb2dyYW0oYSxzKSxsLnNldChzLGMpLGkudW5pZm9ybXM9YS51bmlmb3Jtcztjb25zdCB1PWkudW5pZm9ybXM7KHQuaXNTaGFkZXJNYXRlcmlhbHx8dC5pc1Jhd1NoYWRlck1hdGVyaWFsKSYmITAhPT10LmNsaXBwaW5nfHwodS5jbGlwcGluZ1BsYW5lcz1ydC51bmlmb3JtKSxDdCh0LGEpLGkubmVlZHNMaWdodHM9KGZ1bmN0aW9uIGgodCl7cmV0dXJuIHQuaXNNZXNoTGFtYmVydE1hdGVyaWFsfHx0LmlzTWVzaFRvb25NYXRlcmlhbHx8dC5pc01lc2hQaG9uZ01hdGVyaWFsfHx0LmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWx8fHQuaXNTaGFkb3dNYXRlcmlhbHx8dC5pc1NoYWRlck1hdGVyaWFsJiYhMD09PXQubGlnaHRzfSkodCksaS5saWdodHNTdGF0ZVZlcnNpb249byxpLm5lZWRzTGlnaHRzJiYodS5hbWJpZW50TGlnaHRDb2xvci52YWx1ZT1yLnN0YXRlLmFtYmllbnQsdS5saWdodFByb2JlLnZhbHVlPXIuc3RhdGUucHJvYmUsdS5kaXJlY3Rpb25hbExpZ2h0cy52YWx1ZT1yLnN0YXRlLmRpcmVjdGlvbmFsLHUuZGlyZWN0aW9uYWxMaWdodFNoYWRvd3MudmFsdWU9ci5zdGF0ZS5kaXJlY3Rpb25hbFNoYWRvdyx1LnNwb3RMaWdodHMudmFsdWU9ci5zdGF0ZS5zcG90LHUuc3BvdExpZ2h0U2hhZG93cy52YWx1ZT1yLnN0YXRlLnNwb3RTaGFkb3csdS5yZWN0QXJlYUxpZ2h0cy52YWx1ZT1yLnN0YXRlLnJlY3RBcmVhLHUubHRjXzEudmFsdWU9ci5zdGF0ZS5yZWN0QXJlYUxUQzEsdS5sdGNfMi52YWx1ZT1yLnN0YXRlLnJlY3RBcmVhTFRDMix1LnBvaW50TGlnaHRzLnZhbHVlPXIuc3RhdGUucG9pbnQsdS5wb2ludExpZ2h0U2hhZG93cy52YWx1ZT1yLnN0YXRlLnBvaW50U2hhZG93LHUuaGVtaXNwaGVyZUxpZ2h0cy52YWx1ZT1yLnN0YXRlLmhlbWksdS5kaXJlY3Rpb25hbFNoYWRvd01hcC52YWx1ZT1yLnN0YXRlLmRpcmVjdGlvbmFsU2hhZG93TWFwLHUuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXgudmFsdWU9ci5zdGF0ZS5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeCx1LnNwb3RTaGFkb3dNYXAudmFsdWU9ci5zdGF0ZS5zcG90U2hhZG93TWFwLHUuc3BvdFNoYWRvd01hdHJpeC52YWx1ZT1yLnN0YXRlLnNwb3RTaGFkb3dNYXRyaXgsdS5wb2ludFNoYWRvd01hcC52YWx1ZT1yLnN0YXRlLnBvaW50U2hhZG93TWFwLHUucG9pbnRTaGFkb3dNYXRyaXgudmFsdWU9ci5zdGF0ZS5wb2ludFNoYWRvd01hdHJpeCk7Y29uc3QgZD1jLmdldFVuaWZvcm1zKCksZj1RMnQuc2VxV2l0aFZhbHVlKGQuc2VxLHUpO3JldHVybiBpLmN1cnJlbnRQcm9ncmFtPWMsaS51bmlmb3Jtc0xpc3Q9ZixjfWZ1bmN0aW9uIEN0KHQsZSl7Y29uc3Qgbj1ZLmdldCh0KTtuLm91dHB1dEVuY29kaW5nPWUub3V0cHV0RW5jb2Rpbmcsbi5pbnN0YW5jaW5nPWUuaW5zdGFuY2luZyxuLnNraW5uaW5nPWUuc2tpbm5pbmcsbi5tb3JwaFRhcmdldHM9ZS5tb3JwaFRhcmdldHMsbi5tb3JwaE5vcm1hbHM9ZS5tb3JwaE5vcm1hbHMsbi5udW1DbGlwcGluZ1BsYW5lcz1lLm51bUNsaXBwaW5nUGxhbmVzLG4ubnVtSW50ZXJzZWN0aW9uPWUubnVtQ2xpcEludGVyc2VjdGlvbixuLnZlcnRleEFscGhhcz1lLnZlcnRleEFscGhhcyxuLnZlcnRleFRhbmdlbnRzPWUudmVydGV4VGFuZ2VudHN9ZnVuY3Rpb24gQXQodCxlLG4saSl7ITAhPT1lLmlzU2NlbmUmJihlPVYpLFgucmVzZXRUZXh0dXJlVW5pdHMoKTtjb25zdCByPWUuZm9nLG89bnVsbD09PWI/Zy5vdXRwdXRFbmNvZGluZzpiLnRleHR1cmUuZW5jb2RpbmcsYT0obi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP0s6JCkuZ2V0KG4uZW52TWFwfHwobi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP2UuZW52aXJvbm1lbnQ6bnVsbCkpLHM9ITA9PT1uLnZlcnRleENvbG9ycyYmISFpLmdlb21ldHJ5JiYhIWkuZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvciYmND09PWkuZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvci5pdGVtU2l6ZSxsPSEhaS5nZW9tZXRyeSYmISFpLmdlb21ldHJ5LmF0dHJpYnV0ZXMudGFuZ2VudCxjPSEhaS5nZW9tZXRyeSYmISFpLmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbix1PSEhaS5nZW9tZXRyeSYmISFpLmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5ub3JtYWwsaD1ZLmdldChuKSxkPXAuc3RhdGUubGlnaHRzOyEwIT09enx8ITAhPT1EJiZ0PT09d3x8cnQuc2V0U3RhdGUobix0LHQ9PT13JiZuLmlkPT09eCk7bGV0IGY9ITE7bi52ZXJzaW9uPT09aC5fX3ZlcnNpb24/aC5uZWVkc0xpZ2h0cyYmaC5saWdodHNTdGF0ZVZlcnNpb24hPT1kLnN0YXRlLnZlcnNpb258fGgub3V0cHV0RW5jb2RpbmchPT1vfHxpLmlzSW5zdGFuY2VkTWVzaCYmITE9PT1oLmluc3RhbmNpbmc/Zj0hMDppLmlzSW5zdGFuY2VkTWVzaHx8ITAhPT1oLmluc3RhbmNpbmc/aS5pc1NraW5uZWRNZXNoJiYhMT09PWguc2tpbm5pbmc/Zj0hMDppLmlzU2tpbm5lZE1lc2h8fCEwIT09aC5za2lubmluZz9oLmVudk1hcCE9PWF8fG4uZm9nJiZoLmZvZyE9PXI/Zj0hMDp2b2lkIDA9PT1oLm51bUNsaXBwaW5nUGxhbmVzfHxoLm51bUNsaXBwaW5nUGxhbmVzPT09cnQubnVtUGxhbmVzJiZoLm51bUludGVyc2VjdGlvbj09PXJ0Lm51bUludGVyc2VjdGlvbj8oaC52ZXJ0ZXhBbHBoYXMhPT1zfHxoLnZlcnRleFRhbmdlbnRzIT09bHx8aC5tb3JwaFRhcmdldHMhPT1jfHxoLm1vcnBoTm9ybWFscyE9PXUpJiYoZj0hMCk6Zj0hMDpmPSEwOmY9ITA6KGY9ITAsaC5fX3ZlcnNpb249bi52ZXJzaW9uKTtsZXQgbT1oLmN1cnJlbnRQcm9ncmFtOyEwPT09ZiYmKG09VHQobixlLGkpKTtsZXQgXz0hMSx5PSExLHY9ITE7Y29uc3QgUz1tLmdldFVuaWZvcm1zKCksTT1oLnVuaWZvcm1zO2lmKFcudXNlUHJvZ3JhbShtLnByb2dyYW0pJiYoXz0hMCx5PSEwLHY9ITApLG4uaWQhPT14JiYoeD1uLmlkLHk9ITApLF98fHchPT10KXtpZihTLnNldFZhbHVlKGR0LCJwcm9qZWN0aW9uTWF0cml4Iix0LnByb2plY3Rpb25NYXRyaXgpLEcubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlciYmUy5zZXRWYWx1ZShkdCwibG9nRGVwdGhCdWZGQyIsMi8oTWF0aC5sb2codC5mYXIrMSkvTWF0aC5MTjIpKSx3IT09dCYmKHc9dCx5PSEwLHY9ITApLG4uaXNTaGFkZXJNYXRlcmlhbHx8bi5pc01lc2hQaG9uZ01hdGVyaWFsfHxuLmlzTWVzaFRvb25NYXRlcmlhbHx8bi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxuLmVudk1hcCl7Y29uc3QgZT1TLm1hcC5jYW1lcmFQb3NpdGlvbjt2b2lkIDAhPT1lJiZlLnNldFZhbHVlKGR0LEYuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpKX0obi5pc01lc2hQaG9uZ01hdGVyaWFsfHxuLmlzTWVzaFRvb25NYXRlcmlhbHx8bi5pc01lc2hMYW1iZXJ0TWF0ZXJpYWx8fG4uaXNNZXNoQmFzaWNNYXRlcmlhbHx8bi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxuLmlzU2hhZGVyTWF0ZXJpYWwpJiZTLnNldFZhbHVlKGR0LCJpc09ydGhvZ3JhcGhpYyIsITA9PT10LmlzT3J0aG9ncmFwaGljQ2FtZXJhKSwobi5pc01lc2hQaG9uZ01hdGVyaWFsfHxuLmlzTWVzaFRvb25NYXRlcmlhbHx8bi5pc01lc2hMYW1iZXJ0TWF0ZXJpYWx8fG4uaXNNZXNoQmFzaWNNYXRlcmlhbHx8bi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxuLmlzU2hhZGVyTWF0ZXJpYWx8fG4uaXNTaGFkb3dNYXRlcmlhbHx8aS5pc1NraW5uZWRNZXNoKSYmUy5zZXRWYWx1ZShkdCwidmlld01hdHJpeCIsdC5tYXRyaXhXb3JsZEludmVyc2UpfWlmKGkuaXNTa2lubmVkTWVzaCl7Uy5zZXRPcHRpb25hbChkdCxpLCJiaW5kTWF0cml4IiksUy5zZXRPcHRpb25hbChkdCxpLCJiaW5kTWF0cml4SW52ZXJzZSIpO2NvbnN0IHQ9aS5za2VsZXRvbjt0JiYoRy5mbG9hdFZlcnRleFRleHR1cmVzPyhudWxsPT09dC5ib25lVGV4dHVyZSYmdC5jb21wdXRlQm9uZVRleHR1cmUoKSxTLnNldFZhbHVlKGR0LCJib25lVGV4dHVyZSIsdC5ib25lVGV4dHVyZSxYKSxTLnNldFZhbHVlKGR0LCJib25lVGV4dHVyZVNpemUiLHQuYm9uZVRleHR1cmVTaXplKSk6Uy5zZXRPcHRpb25hbChkdCx0LCJib25lTWF0cmljZXMiKSl9cmV0dXJuKHl8fGgucmVjZWl2ZVNoYWRvdyE9PWkucmVjZWl2ZVNoYWRvdykmJihoLnJlY2VpdmVTaGFkb3c9aS5yZWNlaXZlU2hhZG93LFMuc2V0VmFsdWUoZHQsInJlY2VpdmVTaGFkb3ciLGkucmVjZWl2ZVNoYWRvdykpLHkmJihTLnNldFZhbHVlKGR0LCJ0b25lTWFwcGluZ0V4cG9zdXJlIixnLnRvbmVNYXBwaW5nRXhwb3N1cmUpLGgubmVlZHNMaWdodHMmJihmdW5jdGlvbiBFKHQsZSl7dC5hbWJpZW50TGlnaHRDb2xvci5uZWVkc1VwZGF0ZT1lLHQubGlnaHRQcm9iZS5uZWVkc1VwZGF0ZT1lLHQuZGlyZWN0aW9uYWxMaWdodHMubmVlZHNVcGRhdGU9ZSx0LmRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzLm5lZWRzVXBkYXRlPWUsdC5wb2ludExpZ2h0cy5uZWVkc1VwZGF0ZT1lLHQucG9pbnRMaWdodFNoYWRvd3MubmVlZHNVcGRhdGU9ZSx0LnNwb3RMaWdodHMubmVlZHNVcGRhdGU9ZSx0LnNwb3RMaWdodFNoYWRvd3MubmVlZHNVcGRhdGU9ZSx0LnJlY3RBcmVhTGlnaHRzLm5lZWRzVXBkYXRlPWUsdC5oZW1pc3BoZXJlTGlnaHRzLm5lZWRzVXBkYXRlPWV9KShNLHYpLHImJm4uZm9nJiZldC5yZWZyZXNoRm9nVW5pZm9ybXMoTSxyKSxldC5yZWZyZXNoTWF0ZXJpYWxVbmlmb3JtcyhNLG4sQSxDLEIpLFEydC51cGxvYWQoZHQsaC51bmlmb3Jtc0xpc3QsTSxYKSksbi5pc1NoYWRlck1hdGVyaWFsJiYhMD09PW4udW5pZm9ybXNOZWVkVXBkYXRlJiYoUTJ0LnVwbG9hZChkdCxoLnVuaWZvcm1zTGlzdCxNLFgpLG4udW5pZm9ybXNOZWVkVXBkYXRlPSExKSxuLmlzU3ByaXRlTWF0ZXJpYWwmJlMuc2V0VmFsdWUoZHQsImNlbnRlciIsaS5jZW50ZXIpLFMuc2V0VmFsdWUoZHQsIm1vZGVsVmlld01hdHJpeCIsaS5tb2RlbFZpZXdNYXRyaXgpLFMuc2V0VmFsdWUoZHQsIm5vcm1hbE1hdHJpeCIsaS5ub3JtYWxNYXRyaXgpLFMuc2V0VmFsdWUoZHQsIm1vZGVsTWF0cml4IixpLm1hdHJpeFdvcmxkKSxtfXd0LnNldEFuaW1hdGlvbkxvb3AoKGZ1bmN0aW9uIGt0KHQpe3Z0JiZ2dCh0KX0pKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd3Quc2V0Q29udGV4dCh3aW5kb3cpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcD1mdW5jdGlvbih0KXt2dD10LG10LnNldEFuaW1hdGlvbkxvb3AodCksbnVsbD09PXQ/d3Quc3RvcCgpOnd0LnN0YXJ0KCl9LG10LmFkZEV2ZW50TGlzdGVuZXIoInNlc3Npb25zdGFydCIsYnQpLG10LmFkZEV2ZW50TGlzdGVuZXIoInNlc3Npb25lbmQiLHh0KSx0aGlzLnJlbmRlcj1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMCE9PWUmJiEwIT09ZS5pc0NhbWVyYSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlbmRlcjogY2FtZXJhIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5DYW1lcmEuIik7aWYoITA9PT1fKXJldHVybjshMD09PXQuYXV0b1VwZGF0ZSYmdC51cGRhdGVNYXRyaXhXb3JsZCgpLG51bGw9PT1lLnBhcmVudCYmZS51cGRhdGVNYXRyaXhXb3JsZCgpLCEwPT09bXQuZW5hYmxlZCYmITA9PT1tdC5pc1ByZXNlbnRpbmcmJighMD09PW10LmNhbWVyYUF1dG9VcGRhdGUmJm10LnVwZGF0ZUNhbWVyYShlKSxlPW10LmdldENhbWVyYSgpKSwhMD09PXQuaXNTY2VuZSYmdC5vbkJlZm9yZVJlbmRlcihnLHQsZSxiKSxwPWl0LmdldCh0LG0ubGVuZ3RoKSxwLmluaXQoKSxtLnB1c2gocCksSC5tdWx0aXBseU1hdHJpY2VzKGUucHJvamVjdGlvbk1hdHJpeCxlLm1hdHJpeFdvcmxkSW52ZXJzZSksTy5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChIKSxEPXRoaXMubG9jYWxDbGlwcGluZ0VuYWJsZWQsej1ydC5pbml0KHRoaXMuY2xpcHBpbmdQbGFuZXMsRCxlKSxkPW50LmdldCh0LGYubGVuZ3RoKSxkLmluaXQoKSxmLnB1c2goZCksU3QodCxlLDAsZy5zb3J0T2JqZWN0cyksZC5maW5pc2goKSwhMD09PWcuc29ydE9iamVjdHMmJmQuc29ydChrLEwpLCEwPT09eiYmcnQuYmVnaW5TaGFkb3dzKCksb3QucmVuZGVyKHAuc3RhdGUuc2hhZG93c0FycmF5LHQsZSkscC5zZXR1cExpZ2h0cygpLHAuc2V0dXBMaWdodHNWaWV3KGUpLCEwPT09eiYmcnQuZW5kU2hhZG93cygpLCEwPT09dGhpcy5pbmZvLmF1dG9SZXNldCYmdGhpcy5pbmZvLnJlc2V0KCksYXQucmVuZGVyKGQsdCk7Y29uc3Qgbj1kLm9wYXF1ZSxpPWQudHJhbnNtaXNzaXZlLHI9ZC50cmFuc3BhcmVudDtuLmxlbmd0aD4wJiZNdChuLHQsZSksaS5sZW5ndGg+MCYmKGZ1bmN0aW9uIG8odCxlLG4saSl7bnVsbD09PUImJihCPW5ldyghMD09PXMmJiEwPT09Ry5pc1dlYkdMMj9FSnQ6U0p0KSgxMDI0LDEwMjQse2dlbmVyYXRlTWlwbWFwczohMCx0eXBlOm51bGwhPT11dC5jb252ZXJ0KGxadCk/bFp0OnJadCxtaW5GaWx0ZXI6aVp0LG1hZ0ZpbHRlcjpKS3Qsd3JhcFM6S0t0LHdyYXBUOktLdH0pKTtjb25zdCByPWcuZ2V0UmVuZGVyVGFyZ2V0KCk7Zy5zZXRSZW5kZXJUYXJnZXQoQiksZy5jbGVhcigpO2NvbnN0IG89Zy50b25lTWFwcGluZztnLnRvbmVNYXBwaW5nPTAsTXQodCxuLGkpLGcudG9uZU1hcHBpbmc9byxYLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KEIpLFgudXBkYXRlUmVuZGVyVGFyZ2V0TWlwbWFwKEIpLGcuc2V0UmVuZGVyVGFyZ2V0KHIpLE10KGUsbixpKX0pKG4saSx0LGUpLHIubGVuZ3RoPjAmJk10KHIsdCxlKSxudWxsIT09YiYmKFgudXBkYXRlTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQoYiksWC51cGRhdGVSZW5kZXJUYXJnZXRNaXBtYXAoYikpLCEwPT09dC5pc1NjZW5lJiZ0Lm9uQWZ0ZXJSZW5kZXIoZyx0LGUpLFcuYnVmZmVycy5kZXB0aC5zZXRUZXN0KCEwKSxXLmJ1ZmZlcnMuZGVwdGguc2V0TWFzayghMCksVy5idWZmZXJzLmNvbG9yLnNldE1hc2soITApLFcuc2V0UG9seWdvbk9mZnNldCghMSksaHQucmVzZXREZWZhdWx0U3RhdGUoKSx4PS0xLHc9bnVsbCxtLnBvcCgpLHA9bS5sZW5ndGg+MD9tW20ubGVuZ3RoLTFdOm51bGwsZi5wb3AoKSxkPWYubGVuZ3RoPjA/ZltmLmxlbmd0aC0xXTpudWxsfSx0aGlzLmdldEFjdGl2ZUN1YmVGYWNlPWZ1bmN0aW9uKCl7cmV0dXJuIHl9LHRoaXMuZ2V0QWN0aXZlTWlwbWFwTGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gdn0sdGhpcy5nZXRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gYn0sdGhpcy5zZXRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24odCxlPTAsbj0wKXtiPXQseT1lLHY9bix0JiZ2b2lkIDA9PT1ZLmdldCh0KS5fX3dlYmdsRnJhbWVidWZmZXImJlguc2V0dXBSZW5kZXJUYXJnZXQodCk7bGV0IGk9bnVsbCxyPSExLG89ITE7aWYodCl7Y29uc3Qgbj10LnRleHR1cmU7KG4uaXNEYXRhVGV4dHVyZTNEfHxuLmlzRGF0YVRleHR1cmUyREFycmF5KSYmKG89ITApO2NvbnN0IGE9WS5nZXQodCkuX193ZWJnbEZyYW1lYnVmZmVyO3QuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ/KGk9YVtlXSxyPSEwKTppPXQuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0P1kuZ2V0KHQpLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcjphLFMuY29weSh0LnZpZXdwb3J0KSxNLmNvcHkodC5zY2lzc29yKSxFPXQuc2Npc3NvclRlc3R9ZWxzZSBTLmNvcHkoUCkubXVsdGlwbHlTY2FsYXIoQSkuZmxvb3IoKSxNLmNvcHkoTikubXVsdGlwbHlTY2FsYXIoQSkuZmxvb3IoKSxFPUk7aWYoVy5iaW5kRnJhbWVidWZmZXIoMzYxNjAsaSkmJkcuZHJhd0J1ZmZlcnMpe2xldCBlPSExO2lmKHQpaWYodC5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzKXtjb25zdCBuPXQudGV4dHVyZTtpZihSLmxlbmd0aCE9PW4ubGVuZ3RofHwzNjA2NCE9PVJbMF0pe2ZvcihsZXQgdD0wLGU9bi5sZW5ndGg7dDxlO3QrKylSW3RdPTM2MDY0K3Q7Ui5sZW5ndGg9bi5sZW5ndGgsZT0hMH19ZWxzZSAxPT09Ui5sZW5ndGgmJjM2MDY0PT09UlswXXx8KFJbMF09MzYwNjQsUi5sZW5ndGg9MSxlPSEwKTtlbHNlIDE9PT1SLmxlbmd0aCYmMTAyOT09PVJbMF18fChSWzBdPTEwMjksUi5sZW5ndGg9MSxlPSEwKTtlJiYoRy5pc1dlYkdMMj9kdC5kcmF3QnVmZmVycyhSKTpqLmdldCgiV0VCR0xfZHJhd19idWZmZXJzIikuZHJhd0J1ZmZlcnNXRUJHTChSKSl9aWYoVy52aWV3cG9ydChTKSxXLnNjaXNzb3IoTSksVy5zZXRTY2lzc29yVGVzdChFKSxyKXtjb25zdCBpPVkuZ2V0KHQudGV4dHVyZSk7ZHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwNjQsMzQwNjkrZSxpLl9fd2ViZ2xUZXh0dXJlLG4pfWVsc2UgaWYobyl7Y29uc3QgaT1ZLmdldCh0LnRleHR1cmUpO2R0LmZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKDM2MTYwLDM2MDY0LGkuX193ZWJnbFRleHR1cmUsbnx8MCxlfHwwKX19LHRoaXMucmVhZFJlbmRlclRhcmdldFBpeGVscz1mdW5jdGlvbih0LGUsbixpLHIsbyxhKXtpZighdHx8IXQuaXNXZWJHTFJlbmRlclRhcmdldClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM6IHJlbmRlclRhcmdldCBpcyBub3QgVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQuIik7bGV0IHM9WS5nZXQodCkuX193ZWJnbEZyYW1lYnVmZmVyO2lmKHQuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQmJnZvaWQgMCE9PWEmJihzPXNbYV0pLHMpe1cuYmluZEZyYW1lYnVmZmVyKDM2MTYwLHMpO3RyeXtjb25zdCBhPXQudGV4dHVyZSxzPWEuZm9ybWF0LGw9YS50eXBlO2lmKHMhPT1oWnQmJnV0LmNvbnZlcnQocykhPT1kdC5nZXRQYXJhbWV0ZXIoMzU3MzkpKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVhZFJlbmRlclRhcmdldFBpeGVsczogcmVuZGVyVGFyZ2V0IGlzIG5vdCBpbiBSR0JBIG9yIGltcGxlbWVudGF0aW9uIGRlZmluZWQgZm9ybWF0LiIpO2NvbnN0IGM9bD09PWxadCYmKGouaGFzKCJFWFRfY29sb3JfYnVmZmVyX2hhbGZfZmxvYXQiKXx8Ry5pc1dlYkdMMiYmai5oYXMoIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKSk7aWYoIShsPT09clp0fHx1dC5jb252ZXJ0KGwpPT09ZHQuZ2V0UGFyYW1ldGVyKDM1NzM4KXx8bD09PXNadCYmKEcuaXNXZWJHTDJ8fGouaGFzKCJPRVNfdGV4dHVyZV9mbG9hdCIpfHxqLmhhcygiV0VCR0xfY29sb3JfYnVmZmVyX2Zsb2F0IikpfHxjKSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM6IHJlbmRlclRhcmdldCBpcyBub3QgaW4gVW5zaWduZWRCeXRlVHlwZSBvciBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIHR5cGUuIik7MzYwNTM9PT1kdC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKDM2MTYwKT9lPj0wJiZlPD10LndpZHRoLWkmJm4+PTAmJm48PXQuaGVpZ2h0LXImJmR0LnJlYWRQaXhlbHMoZSxuLGkscix1dC5jb252ZXJ0KHMpLHV0LmNvbnZlcnQobCksbyk6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZWFkUGl4ZWxzIGZyb20gcmVuZGVyVGFyZ2V0IGZhaWxlZC4gRnJhbWVidWZmZXIgbm90IGNvbXBsZXRlLiIpfWZpbmFsbHl7Y29uc3QgdD1udWxsIT09Yj9ZLmdldChiKS5fX3dlYmdsRnJhbWVidWZmZXI6bnVsbDtXLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCx0KX19fSx0aGlzLmNvcHlGcmFtZWJ1ZmZlclRvVGV4dHVyZT1mdW5jdGlvbih0LGUsbj0wKXtjb25zdCBpPU1hdGgucG93KDIsLW4pLHI9TWF0aC5mbG9vcihlLmltYWdlLndpZHRoKmkpLG89TWF0aC5mbG9vcihlLmltYWdlLmhlaWdodCppKTtsZXQgYT11dC5jb252ZXJ0KGUuZm9ybWF0KTtHLmlzV2ViR0wyJiYoNjQwNz09PWEmJihhPTMyODQ5KSw2NDA4PT09YSYmKGE9MzI4NTYpKSxYLnNldFRleHR1cmUyRChlLDApLGR0LmNvcHlUZXhJbWFnZTJEKDM1NTMsbixhLHQueCx0LnkscixvLDApLFcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmNvcHlUZXh0dXJlVG9UZXh0dXJlPWZ1bmN0aW9uKHQsZSxuLGk9MCl7Y29uc3Qgcj1lLmltYWdlLndpZHRoLG89ZS5pbWFnZS5oZWlnaHQsYT11dC5jb252ZXJ0KG4uZm9ybWF0KSxzPXV0LmNvbnZlcnQobi50eXBlKTtYLnNldFRleHR1cmUyRChuLDApLGR0LnBpeGVsU3RvcmVpKDM3NDQwLG4uZmxpcFkpLGR0LnBpeGVsU3RvcmVpKDM3NDQxLG4ucHJlbXVsdGlwbHlBbHBoYSksZHQucGl4ZWxTdG9yZWkoMzMxNyxuLnVucGFja0FsaWdubWVudCksZS5pc0RhdGFUZXh0dXJlP2R0LnRleFN1YkltYWdlMkQoMzU1MyxpLHQueCx0LnkscixvLGEscyxlLmltYWdlLmRhdGEpOmUuaXNDb21wcmVzc2VkVGV4dHVyZT9kdC5jb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCgzNTUzLGksdC54LHQueSxlLm1pcG1hcHNbMF0ud2lkdGgsZS5taXBtYXBzWzBdLmhlaWdodCxhLGUubWlwbWFwc1swXS5kYXRhKTpkdC50ZXhTdWJJbWFnZTJEKDM1NTMsaSx0LngsdC55LGEscyxlLmltYWdlKSwwPT09aSYmbi5nZW5lcmF0ZU1pcG1hcHMmJmR0LmdlbmVyYXRlTWlwbWFwKDM1NTMpLFcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q9ZnVuY3Rpb24odCxlLG4saSxyPTApe2lmKGcuaXNXZWJHTDFSZW5kZXJlcilyZXR1cm4gdm9pZCBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXIuY29weVRleHR1cmVUb1RleHR1cmUzRDogY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMi4iKTtjb25zdCBvPXQubWF4LngtdC5taW4ueCsxLGE9dC5tYXgueS10Lm1pbi55KzEscz10Lm1heC56LXQubWluLnorMSxsPXV0LmNvbnZlcnQoaS5mb3JtYXQpLGM9dXQuY29udmVydChpLnR5cGUpO2xldCB1O2lmKGkuaXNEYXRhVGV4dHVyZTNEKVguc2V0VGV4dHVyZTNEKGksMCksdT0zMjg3OTtlbHNle2lmKCFpLmlzRGF0YVRleHR1cmUyREFycmF5KXJldHVybiB2b2lkIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlci5jb3B5VGV4dHVyZVRvVGV4dHVyZTNEOiBvbmx5IHN1cHBvcnRzIFRIUkVFLkRhdGFUZXh0dXJlM0QgYW5kIFRIUkVFLkRhdGFUZXh0dXJlMkRBcnJheS4iKTtYLnNldFRleHR1cmUyREFycmF5KGksMCksdT0zNTg2Nn1kdC5waXhlbFN0b3JlaSgzNzQ0MCxpLmZsaXBZKSxkdC5waXhlbFN0b3JlaSgzNzQ0MSxpLnByZW11bHRpcGx5QWxwaGEpLGR0LnBpeGVsU3RvcmVpKDMzMTcsaS51bnBhY2tBbGlnbm1lbnQpO2NvbnN0IGg9ZHQuZ2V0UGFyYW1ldGVyKDMzMTQpLGQ9ZHQuZ2V0UGFyYW1ldGVyKDMyODc4KSxwPWR0LmdldFBhcmFtZXRlcigzMzE2KSxmPWR0LmdldFBhcmFtZXRlcigzMzE1KSxtPWR0LmdldFBhcmFtZXRlcigzMjg3NyksXz1uLmlzQ29tcHJlc3NlZFRleHR1cmU/bi5taXBtYXBzWzBdOm4uaW1hZ2U7ZHQucGl4ZWxTdG9yZWkoMzMxNCxfLndpZHRoKSxkdC5waXhlbFN0b3JlaSgzMjg3OCxfLmhlaWdodCksZHQucGl4ZWxTdG9yZWkoMzMxNix0Lm1pbi54KSxkdC5waXhlbFN0b3JlaSgzMzE1LHQubWluLnkpLGR0LnBpeGVsU3RvcmVpKDMyODc3LHQubWluLnopLG4uaXNEYXRhVGV4dHVyZXx8bi5pc0RhdGFUZXh0dXJlM0Q/ZHQudGV4U3ViSW1hZ2UzRCh1LHIsZS54LGUueSxlLnosbyxhLHMsbCxjLF8uZGF0YSk6bi5pc0NvbXByZXNzZWRUZXh0dXJlPyhjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXIuY29weVRleHR1cmVUb1RleHR1cmUzRDogdW50ZXN0ZWQgc3VwcG9ydCBmb3IgY29tcHJlc3NlZCBzcmNUZXh0dXJlLiIpLGR0LmNvbXByZXNzZWRUZXhTdWJJbWFnZTNEKHUscixlLngsZS55LGUueixvLGEscyxsLF8uZGF0YSkpOmR0LnRleFN1YkltYWdlM0QodSxyLGUueCxlLnksZS56LG8sYSxzLGwsYyxfKSxkdC5waXhlbFN0b3JlaSgzMzE0LGgpLGR0LnBpeGVsU3RvcmVpKDMyODc4LGQpLGR0LnBpeGVsU3RvcmVpKDMzMTYscCksZHQucGl4ZWxTdG9yZWkoMzMxNSxmKSxkdC5waXhlbFN0b3JlaSgzMjg3NyxtKSwwPT09ciYmaS5nZW5lcmF0ZU1pcG1hcHMmJmR0LmdlbmVyYXRlTWlwbWFwKHUpLFcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmluaXRUZXh0dXJlPWZ1bmN0aW9uKHQpe1guc2V0VGV4dHVyZTJEKHQsMCksVy51bmJpbmRUZXh0dXJlKCl9LHRoaXMucmVzZXRTdGF0ZT1mdW5jdGlvbigpe3k9MCx2PTAsYj1udWxsLFcucmVzZXQoKSxodC5yZXNldCgpfSwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJvYnNlcnZlIix7ZGV0YWlsOnRoaXN9KSl9Y2xhc3MgVzV0IGV4dGVuZHMgRzV0e31XNXQucHJvdG90eXBlLmlzV2ViR0wxUmVuZGVyZXI9ITA7Y2xhc3MgcTV0e2NvbnN0cnVjdG9yKHQsZT0yNWUtNSl7dGhpcy5uYW1lPSIiLHRoaXMuY29sb3I9bmV3ICRRdCh0KSx0aGlzLmRlbnNpdHk9ZX1jbG9uZSgpe3JldHVybiBuZXcgcTV0KHRoaXMuY29sb3IsdGhpcy5kZW5zaXR5KX10b0pTT04oKXtyZXR1cm57dHlwZToiRm9nRXhwMiIsY29sb3I6dGhpcy5jb2xvci5nZXRIZXgoKSxkZW5zaXR5OnRoaXMuZGVuc2l0eX19fXE1dC5wcm90b3R5cGUuaXNGb2dFeHAyPSEwO2NsYXNzIFk1dHtjb25zdHJ1Y3Rvcih0LGU9MSxuPTFlMyl7dGhpcy5uYW1lPSIiLHRoaXMuY29sb3I9bmV3ICRRdCh0KSx0aGlzLm5lYXI9ZSx0aGlzLmZhcj1ufWNsb25lKCl7cmV0dXJuIG5ldyBZNXQodGhpcy5jb2xvcix0aGlzLm5lYXIsdGhpcy5mYXIpfXRvSlNPTigpe3JldHVybnt0eXBlOiJGb2ciLGNvbG9yOnRoaXMuY29sb3IuZ2V0SGV4KCksbmVhcjp0aGlzLm5lYXIsZmFyOnRoaXMuZmFyfX19WTV0LnByb3RvdHlwZS5pc0ZvZz0hMDtjbGFzcyBYNXQgZXh0ZW5kcyBrUXR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iU2NlbmUiLHRoaXMuYmFja2dyb3VuZD1udWxsLHRoaXMuZW52aXJvbm1lbnQ9bnVsbCx0aGlzLmZvZz1udWxsLHRoaXMub3ZlcnJpZGVNYXRlcmlhbD1udWxsLHRoaXMuYXV0b1VwZGF0ZT0hMCwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJvYnNlcnZlIix7ZGV0YWlsOnRoaXN9KSl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksbnVsbCE9PXQuYmFja2dyb3VuZCYmKHRoaXMuYmFja2dyb3VuZD10LmJhY2tncm91bmQuY2xvbmUoKSksbnVsbCE9PXQuZW52aXJvbm1lbnQmJih0aGlzLmVudmlyb25tZW50PXQuZW52aXJvbm1lbnQuY2xvbmUoKSksbnVsbCE9PXQuZm9nJiYodGhpcy5mb2c9dC5mb2cuY2xvbmUoKSksbnVsbCE9PXQub3ZlcnJpZGVNYXRlcmlhbCYmKHRoaXMub3ZlcnJpZGVNYXRlcmlhbD10Lm92ZXJyaWRlTWF0ZXJpYWwuY2xvbmUoKSksdGhpcy5hdXRvVXBkYXRlPXQuYXV0b1VwZGF0ZSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBudWxsIT09dGhpcy5mb2cmJihlLm9iamVjdC5mb2c9dGhpcy5mb2cudG9KU09OKCkpLGV9fVg1dC5wcm90b3R5cGUuaXNTY2VuZT0hMDtjbGFzcyAkNXR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmFycmF5PXQsdGhpcy5zdHJpZGU9ZSx0aGlzLmNvdW50PXZvaWQgMCE9PXQ/dC5sZW5ndGgvZTowLHRoaXMudXNhZ2U9Rlp0LHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MCx0aGlzLnV1aWQ9WFp0KCl9b25VcGxvYWRDYWxsYmFjaygpe31zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK31zZXRVc2FnZSh0KXtyZXR1cm4gdGhpcy51c2FnZT10LHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5hcnJheT1uZXcgdC5hcnJheS5jb25zdHJ1Y3Rvcih0LmFycmF5KSx0aGlzLmNvdW50PXQuY291bnQsdGhpcy5zdHJpZGU9dC5zdHJpZGUsdGhpcy51c2FnZT10LnVzYWdlLHRoaXN9Y29weUF0KHQsZSxuKXt0Kj10aGlzLnN0cmlkZSxuKj1lLnN0cmlkZTtmb3IobGV0IGk9MCxyPXRoaXMuc3RyaWRlO2k8cjtpKyspdGhpcy5hcnJheVt0K2ldPWUuYXJyYXlbbitpXTtyZXR1cm4gdGhpc31zZXQodCxlPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LGUpLHRoaXN9Y2xvbmUodCl7dm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1YWnQoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPXRoaXMuYXJyYXkuc2xpY2UoMCkuYnVmZmVyKTtjb25zdCBlPW5ldyB0aGlzLmFycmF5LmNvbnN0cnVjdG9yKHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXSksbj1uZXcgdGhpcy5jb25zdHJ1Y3RvcihlLHRoaXMuc3RyaWRlKTtyZXR1cm4gbi5zZXRVc2FnZSh0aGlzLnVzYWdlKSxufW9uVXBsb2FkKHQpe3JldHVybiB0aGlzLm9uVXBsb2FkQ2FsbGJhY2s9dCx0aGlzfXRvSlNPTih0KXtyZXR1cm4gdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1YWnQoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG5ldyBVaW50MzJBcnJheSh0aGlzLmFycmF5LmJ1ZmZlcikpKSx7dXVpZDp0aGlzLnV1aWQsYnVmZmVyOnRoaXMuYXJyYXkuYnVmZmVyLl91dWlkLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLHN0cmlkZTp0aGlzLnN0cmlkZX19fSQ1dC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlcj0hMDtjb25zdCBLNXQ9bmV3IENKdDtjbGFzcyBaNXR7Y29uc3RydWN0b3IodCxlLG4saT0hMSl7dGhpcy5uYW1lPSIiLHRoaXMuZGF0YT10LHRoaXMuaXRlbVNpemU9ZSx0aGlzLm9mZnNldD1uLHRoaXMubm9ybWFsaXplZD0hMD09PWl9Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuZGF0YS5jb3VudH1nZXQgYXJyYXkoKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5fXNldCBuZWVkc1VwZGF0ZSh0KXt0aGlzLmRhdGEubmVlZHNVcGRhdGU9dH1hcHBseU1hdHJpeDQodCl7Zm9yKGxldCBlPTAsbj10aGlzLmRhdGEuY291bnQ7ZTxuO2UrKylLNXQueD10aGlzLmdldFgoZSksSzV0Lnk9dGhpcy5nZXRZKGUpLEs1dC56PXRoaXMuZ2V0WihlKSxLNXQuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKGUsSzV0LngsSzV0LnksSzV0LnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKUs1dC54PXRoaXMuZ2V0WChlKSxLNXQueT10aGlzLmdldFkoZSksSzV0Lno9dGhpcy5nZXRaKGUpLEs1dC5hcHBseU5vcm1hbE1hdHJpeCh0KSx0aGlzLnNldFhZWihlLEs1dC54LEs1dC55LEs1dC56KTtyZXR1cm4gdGhpc310cmFuc2Zvcm1EaXJlY3Rpb24odCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspSzV0Lng9dGhpcy5nZXRYKGUpLEs1dC55PXRoaXMuZ2V0WShlKSxLNXQuej10aGlzLmdldFooZSksSzV0LnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzLnNldFhZWihlLEs1dC54LEs1dC55LEs1dC56KTtyZXR1cm4gdGhpc31zZXRYKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXRdPWUsdGhpc31zZXRZKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMV09ZSx0aGlzfXNldFoodCxlKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCsyXT1lLHRoaXN9c2V0Vyh0LGUpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzNdPWUsdGhpc31nZXRYKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0XX1nZXRZKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzFdfWdldFoodCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMl19Z2V0Vyh0KXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCszXX1zZXRYWSh0LGUsbil7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzfXNldFhZWih0LGUsbixpKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5Wyh0PXQqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCkrMF09ZSx0aGlzLmRhdGEuYXJyYXlbdCsxXT1uLHRoaXMuZGF0YS5hcnJheVt0KzJdPWksdGhpc31zZXRYWVpXKHQsZSxuLGkscil7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzLmRhdGEuYXJyYXlbdCsyXT1pLHRoaXMuZGF0YS5hcnJheVt0KzNdPXIsdGhpc31jbG9uZSh0KXtpZih2b2lkIDA9PT10KXtjb25zb2xlLmxvZygiVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUuY2xvbmUoKTogQ2xvbmluZyBhbiBpbnRlcmxhdmVkIGJ1ZmZlciBhdHRyaWJ1dGUgd2lsbCBkZWludGVybGVhdmUgYnVmZmVyIGRhdGEuIik7Y29uc3QgdD1bXTtmb3IobGV0IGU9MDtlPHRoaXMuY291bnQ7ZSsrKXtjb25zdCBuPWUqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldDtmb3IobGV0IGU9MDtlPHRoaXMuaXRlbVNpemU7ZSsrKXQucHVzaCh0aGlzLmRhdGEuYXJyYXlbbitlXSl9cmV0dXJuIG5ldyBRUXQobmV3IHRoaXMuYXJyYXkuY29uc3RydWN0b3IodCksdGhpcy5pdGVtU2l6ZSx0aGlzLm5vcm1hbGl6ZWQpfXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLmNsb25lKHQpKSxuZXcgWjV0KHQuaW50ZXJsZWF2ZWRCdWZmZXJzW3RoaXMuZGF0YS51dWlkXSx0aGlzLml0ZW1TaXplLHRoaXMub2Zmc2V0LHRoaXMubm9ybWFsaXplZCl9dG9KU09OKHQpe2lmKHZvaWQgMD09PXQpe2NvbnNvbGUubG9nKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZS50b0pTT04oKTogU2VyaWFsaXppbmcgYW4gaW50ZXJsYXZlZCBidWZmZXIgYXR0cmlidXRlIHdpbGwgZGVpbnRlcmxlYXZlIGJ1ZmZlciBkYXRhLiIpO2NvbnN0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLmNvdW50O2UrKyl7Y29uc3Qgbj1lKnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQ7Zm9yKGxldCBlPTA7ZTx0aGlzLml0ZW1TaXplO2UrKyl0LnB1c2godGhpcy5kYXRhLmFycmF5W24rZV0pfXJldHVybntpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OnQsbm9ybWFsaXplZDp0aGlzLm5vcm1hbGl6ZWR9fXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLnRvSlNPTih0KSkse2lzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU6ITAsaXRlbVNpemU6dGhpcy5pdGVtU2l6ZSxkYXRhOnRoaXMuZGF0YS51dWlkLG9mZnNldDp0aGlzLm9mZnNldCxub3JtYWxpemVkOnRoaXMubm9ybWFsaXplZH19fVo1dC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyBKNXQgZXh0ZW5kcyBVUXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwcml0ZU1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyAkUXQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMucm90YXRpb249MCx0aGlzLnNpemVBdHRlbnVhdGlvbj0hMCx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLnJvdGF0aW9uPXQucm90YXRpb24sdGhpcy5zaXplQXR0ZW51YXRpb249dC5zaXplQXR0ZW51YXRpb24sdGhpc319bGV0IFE1dDtKNXQucHJvdG90eXBlLmlzU3ByaXRlTWF0ZXJpYWw9ITA7Y29uc3QgdDN0PW5ldyBDSnQsZTN0PW5ldyBDSnQsbjN0PW5ldyBDSnQsaTN0PW5ldyBtSnQscjN0PW5ldyBtSnQsbzN0PW5ldyByUXQsYTN0PW5ldyBDSnQsczN0PW5ldyBDSnQsbDN0PW5ldyBDSnQsYzN0PW5ldyBtSnQsdTN0PW5ldyBtSnQsaDN0PW5ldyBtSnQ7Y2xhc3MgZDN0IGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKCksdGhpcy50eXBlPSJTcHJpdGUiLHZvaWQgMD09PVE1dCl7UTV0PW5ldyBiMXQ7Y29uc3QgdD1uZXcgRmxvYXQzMkFycmF5KFstLjUsLS41LDAsMCwwLC41LC0uNSwwLDEsMCwuNSwuNSwwLDEsMSwtLjUsLjUsMCwwLDFdKSxlPW5ldyAkNXQodCw1KTtRNXQuc2V0SW5kZXgoWzAsMSwyLDAsMiwzXSksUTV0LnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBaNXQoZSwzLDAsITEpKSxRNXQuc2V0QXR0cmlidXRlKCJ1diIsbmV3IFo1dChlLDIsMywhMSkpfXRoaXMuZ2VvbWV0cnk9UTV0LHRoaXMubWF0ZXJpYWw9dm9pZCAwIT09dD90Om5ldyBKNXQsdGhpcy5jZW50ZXI9bmV3IG1KdCguNSwuNSl9cmF5Y2FzdCh0LGUpe251bGw9PT10LmNhbWVyYSYmY29uc29sZS5lcnJvcignVEhSRUUuU3ByaXRlOiAiUmF5Y2FzdGVyLmNhbWVyYSIgbmVlZHMgdG8gYmUgc2V0IGluIG9yZGVyIHRvIHJheWNhc3QgYWdhaW5zdCBzcHJpdGVzLicpLGUzdC5zZXRGcm9tTWF0cml4U2NhbGUodGhpcy5tYXRyaXhXb3JsZCksbzN0LmNvcHkodC5jYW1lcmEubWF0cml4V29ybGQpLHRoaXMubW9kZWxWaWV3TWF0cml4Lm11bHRpcGx5TWF0cmljZXModC5jYW1lcmEubWF0cml4V29ybGRJbnZlcnNlLHRoaXMubWF0cml4V29ybGQpLG4zdC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tb2RlbFZpZXdNYXRyaXgpLHQuY2FtZXJhLmlzUGVyc3BlY3RpdmVDYW1lcmEmJiExPT09dGhpcy5tYXRlcmlhbC5zaXplQXR0ZW51YXRpb24mJmUzdC5tdWx0aXBseVNjYWxhcigtbjN0LnopO2NvbnN0IG49dGhpcy5tYXRlcmlhbC5yb3RhdGlvbjtsZXQgaSxyOzAhPT1uJiYocj1NYXRoLmNvcyhuKSxpPU1hdGguc2luKG4pKTtjb25zdCBvPXRoaXMuY2VudGVyO3AzdChhM3Quc2V0KC0uNSwtLjUsMCksbjN0LG8sZTN0LGkscikscDN0KHMzdC5zZXQoLjUsLS41LDApLG4zdCxvLGUzdCxpLHIpLHAzdChsM3Quc2V0KC41LC41LDApLG4zdCxvLGUzdCxpLHIpLGMzdC5zZXQoMCwwKSx1M3Quc2V0KDEsMCksaDN0LnNldCgxLDEpO2xldCBhPXQucmF5LmludGVyc2VjdFRyaWFuZ2xlKGEzdCxzM3QsbDN0LCExLHQzdCk7aWYobnVsbD09PWEmJihwM3QoczN0LnNldCgtLjUsLjUsMCksbjN0LG8sZTN0LGksciksdTN0LnNldCgwLDEpLGE9dC5yYXkuaW50ZXJzZWN0VHJpYW5nbGUoYTN0LGwzdCxzM3QsITEsdDN0KSxudWxsPT09YSkpcmV0dXJuO2NvbnN0IHM9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8odDN0KTtzPHQubmVhcnx8cz50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTpzLHBvaW50OnQzdC5jbG9uZSgpLHV2OkZRdC5nZXRVVih0M3QsYTN0LHMzdCxsM3QsYzN0LHUzdCxoM3QsbmV3IG1KdCksZmFjZTpudWxsLG9iamVjdDp0aGlzfSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx2b2lkIDAhPT10LmNlbnRlciYmdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXN9fWZ1bmN0aW9uIHAzdCh0LGUsbixpLHIsbyl7aTN0LnN1YlZlY3RvcnModCxuKS5hZGRTY2FsYXIoLjUpLm11bHRpcGx5KGkpLHZvaWQgMCE9PXI/KHIzdC54PW8qaTN0LngtcippM3QueSxyM3QueT1yKmkzdC54K28qaTN0LnkpOnIzdC5jb3B5KGkzdCksdC5jb3B5KGUpLHQueCs9cjN0LngsdC55Kz1yM3QueSx0LmFwcGx5TWF0cml4NChvM3QpfWQzdC5wcm90b3R5cGUuaXNTcHJpdGU9ITA7Y29uc3QgZjN0PW5ldyBDSnQsbTN0PW5ldyBDSnQ7Y2xhc3MgZzN0IGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9jdXJyZW50TGV2ZWw9MCx0aGlzLnR5cGU9IkxPRCIsT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcyx7bGV2ZWxzOntlbnVtZXJhYmxlOiEwLHZhbHVlOltdfSxpc0xPRDp7dmFsdWU6ITB9fSksdGhpcy5hdXRvVXBkYXRlPSEwfWNvcHkodCl7c3VwZXIuY29weSh0LCExKTtjb25zdCBlPXQubGV2ZWxzO2ZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1lW3RdO3RoaXMuYWRkTGV2ZWwobi5vYmplY3QuY2xvbmUoKSxuLmRpc3RhbmNlKX1yZXR1cm4gdGhpcy5hdXRvVXBkYXRlPXQuYXV0b1VwZGF0ZSx0aGlzfWFkZExldmVsKHQsZT0wKXtlPU1hdGguYWJzKGUpO2NvbnN0IG49dGhpcy5sZXZlbHM7bGV0IGk7Zm9yKGk9MDtpPG4ubGVuZ3RoJiYhKGU8bltpXS5kaXN0YW5jZSk7aSsrKTtyZXR1cm4gbi5zcGxpY2UoaSwwLHtkaXN0YW5jZTplLG9iamVjdDp0fSksdGhpcy5hZGQodCksdGhpc31nZXRDdXJyZW50TGV2ZWwoKXtyZXR1cm4gdGhpcy5fY3VycmVudExldmVsfWdldE9iamVjdEZvckRpc3RhbmNlKHQpe2NvbnN0IGU9dGhpcy5sZXZlbHM7aWYoZS5sZW5ndGg+MCl7bGV0IG4saTtmb3Iobj0xLGk9ZS5sZW5ndGg7bjxpJiYhKHQ8ZVtuXS5kaXN0YW5jZSk7bisrKTtyZXR1cm4gZVtuLTFdLm9iamVjdH1yZXR1cm4gbnVsbH1yYXljYXN0KHQsZSl7aWYodGhpcy5sZXZlbHMubGVuZ3RoPjApe2YzdC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tYXRyaXhXb3JsZCk7Y29uc3Qgbj10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhmM3QpO3RoaXMuZ2V0T2JqZWN0Rm9yRGlzdGFuY2UobikucmF5Y2FzdCh0LGUpfX11cGRhdGUodCl7Y29uc3QgZT10aGlzLmxldmVscztpZihlLmxlbmd0aD4xKXtmM3Quc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLG0zdC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tYXRyaXhXb3JsZCk7Y29uc3Qgbj1mM3QuZGlzdGFuY2VUbyhtM3QpL3Quem9vbTtsZXQgaSxyO2ZvcihlWzBdLm9iamVjdC52aXNpYmxlPSEwLGk9MSxyPWUubGVuZ3RoO2k8ciYmbj49ZVtpXS5kaXN0YW5jZTtpKyspZVtpLTFdLm9iamVjdC52aXNpYmxlPSExLGVbaV0ub2JqZWN0LnZpc2libGU9ITA7Zm9yKHRoaXMuX2N1cnJlbnRMZXZlbD1pLTE7aTxyO2krKyllW2ldLm9iamVjdC52aXNpYmxlPSExfX10b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7ITE9PT10aGlzLmF1dG9VcGRhdGUmJihlLm9iamVjdC5hdXRvVXBkYXRlPSExKSxlLm9iamVjdC5sZXZlbHM9W107Y29uc3Qgbj10aGlzLmxldmVscztmb3IobGV0IHQ9MCxpPW4ubGVuZ3RoO3Q8aTt0Kyspe2NvbnN0IGk9blt0XTtlLm9iamVjdC5sZXZlbHMucHVzaCh7b2JqZWN0Omkub2JqZWN0LnV1aWQsZGlzdGFuY2U6aS5kaXN0YW5jZX0pfXJldHVybiBlfX1jb25zdCBfM3Q9bmV3IENKdCx5M3Q9bmV3IHdKdCx2M3Q9bmV3IHdKdCxiM3Q9bmV3IENKdCx4M3Q9bmV3IHJRdDtjbGFzcyB3M3QgZXh0ZW5kcyBCMXR7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iU2tpbm5lZE1lc2giLHRoaXMuYmluZE1vZGU9ImF0dGFjaGVkIix0aGlzLmJpbmRNYXRyaXg9bmV3IHJRdCx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlPW5ldyByUXR9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmJpbmRNb2RlPXQuYmluZE1vZGUsdGhpcy5iaW5kTWF0cml4LmNvcHkodC5iaW5kTWF0cml4KSx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodC5iaW5kTWF0cml4SW52ZXJzZSksdGhpcy5za2VsZXRvbj10LnNrZWxldG9uLHRoaXN9YmluZCh0LGUpe3RoaXMuc2tlbGV0b249dCx2b2lkIDA9PT1lJiYodGhpcy51cGRhdGVNYXRyaXhXb3JsZCghMCksdGhpcy5za2VsZXRvbi5jYWxjdWxhdGVJbnZlcnNlcygpLGU9dGhpcy5tYXRyaXhXb3JsZCksdGhpcy5iaW5kTWF0cml4LmNvcHkoZSksdGhpcy5iaW5kTWF0cml4SW52ZXJzZS5jb3B5KGUpLmludmVydCgpfXBvc2UoKXt0aGlzLnNrZWxldG9uLnBvc2UoKX1ub3JtYWxpemVTa2luV2VpZ2h0cygpe2NvbnN0IHQ9bmV3IHdKdCxlPXRoaXMuZ2VvbWV0cnkuYXR0cmlidXRlcy5za2luV2VpZ2h0O2ZvcihsZXQgbj0wLGk9ZS5jb3VudDtuPGk7bisrKXt0Lng9ZS5nZXRYKG4pLHQueT1lLmdldFkobiksdC56PWUuZ2V0WihuKSx0Lnc9ZS5nZXRXKG4pO2NvbnN0IGk9MS90Lm1hbmhhdHRhbkxlbmd0aCgpO2khPT0xLzA/dC5tdWx0aXBseVNjYWxhcihpKTp0LnNldCgxLDAsMCwwKSxlLnNldFhZWlcobix0LngsdC55LHQueix0LncpfX11cGRhdGVNYXRyaXhXb3JsZCh0KXtzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSwiYXR0YWNoZWQiPT09dGhpcy5iaW5kTW9kZT90aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk6ImRldGFjaGVkIj09PXRoaXMuYmluZE1vZGU/dGhpcy5iaW5kTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMuYmluZE1hdHJpeCkuaW52ZXJ0KCk6Y29uc29sZS53YXJuKCJUSFJFRS5Ta2lubmVkTWVzaDogVW5yZWNvZ25pemVkIGJpbmRNb2RlOiAiK3RoaXMuYmluZE1vZGUpfWJvbmVUcmFuc2Zvcm0odCxlKXtjb25zdCBuPXRoaXMuc2tlbGV0b24saT10aGlzLmdlb21ldHJ5O3kzdC5mcm9tQnVmZmVyQXR0cmlidXRlKGkuYXR0cmlidXRlcy5za2luSW5kZXgsdCksdjN0LmZyb21CdWZmZXJBdHRyaWJ1dGUoaS5hdHRyaWJ1dGVzLnNraW5XZWlnaHQsdCksXzN0LmZyb21CdWZmZXJBdHRyaWJ1dGUoaS5hdHRyaWJ1dGVzLnBvc2l0aW9uLHQpLmFwcGx5TWF0cml4NCh0aGlzLmJpbmRNYXRyaXgpLGUuc2V0KDAsMCwwKTtmb3IobGV0IHQ9MDt0PDQ7dCsrKXtjb25zdCBpPXYzdC5nZXRDb21wb25lbnQodCk7aWYoMCE9PWkpe2NvbnN0IHI9eTN0LmdldENvbXBvbmVudCh0KTt4M3QubXVsdGlwbHlNYXRyaWNlcyhuLmJvbmVzW3JdLm1hdHJpeFdvcmxkLG4uYm9uZUludmVyc2VzW3JdKSxlLmFkZFNjYWxlZFZlY3RvcihiM3QuY29weShfM3QpLmFwcGx5TWF0cml4NCh4M3QpLGkpfX1yZXR1cm4gZS5hcHBseU1hdHJpeDQodGhpcy5iaW5kTWF0cml4SW52ZXJzZSl9fXczdC5wcm90b3R5cGUuaXNTa2lubmVkTWVzaD0hMDtjbGFzcyBTM3QgZXh0ZW5kcyBrUXR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iQm9uZSJ9fVMzdC5wcm90b3R5cGUuaXNCb25lPSEwO2NsYXNzIE0zdCBleHRlbmRzIGJKdHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxpLHIsbyxhLHMsbD0xMDAzLGM9MTAwMyx1LGgpe3N1cGVyKG51bGwsbyxhLHMsbCxjLGkscix1LGgpLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpufSx0aGlzLm1hZ0ZpbHRlcj1sLHRoaXMubWluRmlsdGVyPWMsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fU0zdC5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZT0hMDtjb25zdCBFM3Q9bmV3IHJRdCxUM3Q9bmV3IHJRdDtjbGFzcyBDM3R7Y29uc3RydWN0b3IodD1bXSxlPVtdKXt0aGlzLnV1aWQ9WFp0KCksdGhpcy5ib25lcz10LnNsaWNlKDApLHRoaXMuYm9uZUludmVyc2VzPWUsdGhpcy5ib25lTWF0cmljZXM9bnVsbCx0aGlzLmJvbmVUZXh0dXJlPW51bGwsdGhpcy5ib25lVGV4dHVyZVNpemU9MCx0aGlzLmZyYW1lPS0xLHRoaXMuaW5pdCgpfWluaXQoKXtjb25zdCB0PXRoaXMuYm9uZXMsZT10aGlzLmJvbmVJbnZlcnNlcztpZih0aGlzLmJvbmVNYXRyaWNlcz1uZXcgRmxvYXQzMkFycmF5KDE2KnQubGVuZ3RoKSwwPT09ZS5sZW5ndGgpdGhpcy5jYWxjdWxhdGVJbnZlcnNlcygpO2Vsc2UgaWYodC5sZW5ndGghPT1lLmxlbmd0aCl7Y29uc29sZS53YXJuKCJUSFJFRS5Ta2VsZXRvbjogTnVtYmVyIG9mIGludmVyc2UgYm9uZSBtYXRyaWNlcyBkb2VzIG5vdCBtYXRjaCBhbW91bnQgb2YgYm9uZXMuIiksdGhpcy5ib25lSW52ZXJzZXM9W107Zm9yKGxldCB0PTAsZT10aGlzLmJvbmVzLmxlbmd0aDt0PGU7dCsrKXRoaXMuYm9uZUludmVyc2VzLnB1c2gobmV3IHJRdCl9fWNhbGN1bGF0ZUludmVyc2VzKCl7dGhpcy5ib25lSW52ZXJzZXMubGVuZ3RoPTA7Zm9yKGxldCB0PTAsZT10aGlzLmJvbmVzLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPW5ldyByUXQ7dGhpcy5ib25lc1t0XSYmZS5jb3B5KHRoaXMuYm9uZXNbdF0ubWF0cml4V29ybGQpLmludmVydCgpLHRoaXMuYm9uZUludmVyc2VzLnB1c2goZSl9fXBvc2UoKXtmb3IobGV0IHQ9MCxlPXRoaXMuYm9uZXMubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9dGhpcy5ib25lc1t0XTtlJiZlLm1hdHJpeFdvcmxkLmNvcHkodGhpcy5ib25lSW52ZXJzZXNbdF0pLmludmVydCgpfWZvcihsZXQgdD0wLGU9dGhpcy5ib25lcy5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT10aGlzLmJvbmVzW3RdO2UmJihlLnBhcmVudCYmZS5wYXJlbnQuaXNCb25lPyhlLm1hdHJpeC5jb3B5KGUucGFyZW50Lm1hdHJpeFdvcmxkKS5pbnZlcnQoKSxlLm1hdHJpeC5tdWx0aXBseShlLm1hdHJpeFdvcmxkKSk6ZS5tYXRyaXguY29weShlLm1hdHJpeFdvcmxkKSxlLm1hdHJpeC5kZWNvbXBvc2UoZS5wb3NpdGlvbixlLnF1YXRlcm5pb24sZS5zY2FsZSkpfX11cGRhdGUoKXtjb25zdCB0PXRoaXMuYm9uZXMsZT10aGlzLmJvbmVJbnZlcnNlcyxuPXRoaXMuYm9uZU1hdHJpY2VzLGk9dGhpcy5ib25lVGV4dHVyZTtmb3IobGV0IGk9MCxyPXQubGVuZ3RoO2k8cjtpKyspRTN0Lm11bHRpcGx5TWF0cmljZXModFtpXT90W2ldLm1hdHJpeFdvcmxkOlQzdCxlW2ldKSxFM3QudG9BcnJheShuLDE2KmkpO251bGwhPT1pJiYoaS5uZWVkc1VwZGF0ZT0hMCl9Y2xvbmUoKXtyZXR1cm4gbmV3IEMzdCh0aGlzLmJvbmVzLHRoaXMuYm9uZUludmVyc2VzKX1jb21wdXRlQm9uZVRleHR1cmUoKXtsZXQgdD1NYXRoLnNxcnQoNCp0aGlzLmJvbmVzLmxlbmd0aCk7dD1RWnQodCksdD1NYXRoLm1heCh0LDQpO2NvbnN0IGU9bmV3IEZsb2F0MzJBcnJheSh0KnQqNCk7ZS5zZXQodGhpcy5ib25lTWF0cmljZXMpO2NvbnN0IG49bmV3IE0zdChlLHQsdCxoWnQsc1p0KTtyZXR1cm4gdGhpcy5ib25lTWF0cmljZXM9ZSx0aGlzLmJvbmVUZXh0dXJlPW4sdGhpcy5ib25lVGV4dHVyZVNpemU9dCx0aGlzfWdldEJvbmVCeU5hbWUodCl7Zm9yKGxldCBlPTAsbj10aGlzLmJvbmVzLmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRoaXMuYm9uZXNbZV07aWYobi5uYW1lPT09dClyZXR1cm4gbn19ZGlzcG9zZSgpe251bGwhPT10aGlzLmJvbmVUZXh0dXJlJiYodGhpcy5ib25lVGV4dHVyZS5kaXNwb3NlKCksdGhpcy5ib25lVGV4dHVyZT1udWxsKX1mcm9tSlNPTih0LGUpe3RoaXMudXVpZD10LnV1aWQ7Zm9yKGxldCBuPTAsaT10LmJvbmVzLmxlbmd0aDtuPGk7bisrKXtjb25zdCBpPXQuYm9uZXNbbl07bGV0IHI9ZVtpXTt2b2lkIDA9PT1yJiYoY29uc29sZS53YXJuKCJUSFJFRS5Ta2VsZXRvbjogTm8gYm9uZSBmb3VuZCB3aXRoIFVVSUQ6IixpKSxyPW5ldyBTM3QpLHRoaXMuYm9uZXMucHVzaChyKSx0aGlzLmJvbmVJbnZlcnNlcy5wdXNoKChuZXcgclF0KS5mcm9tQXJyYXkodC5ib25lSW52ZXJzZXNbbl0pKX1yZXR1cm4gdGhpcy5pbml0KCksdGhpc310b0pTT04oKXtjb25zdCB0PXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiU2tlbGV0b24iLGdlbmVyYXRvcjoiU2tlbGV0b24udG9KU09OIn0sYm9uZXM6W10sYm9uZUludmVyc2VzOltdfTt0LnV1aWQ9dGhpcy51dWlkO2NvbnN0IGU9dGhpcy5ib25lcyxuPXRoaXMuYm9uZUludmVyc2VzO2ZvcihsZXQgaT0wLHI9ZS5sZW5ndGg7aTxyO2krKyl0LmJvbmVzLnB1c2goZVtpXS51dWlkKSx0LmJvbmVJbnZlcnNlcy5wdXNoKG5baV0udG9BcnJheSgpKTtyZXR1cm4gdH19Y29uc3QgQTN0PW5ldyByUXQsazN0PW5ldyByUXQsTDN0PVtdLFAzdD1uZXcgQjF0O2NsYXNzIE4zdCBleHRlbmRzIEIxdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlKSx0aGlzLmluc3RhbmNlTWF0cml4PW5ldyBRUXQobmV3IEZsb2F0MzJBcnJheSgxNipuKSwxNiksdGhpcy5pbnN0YW5jZUNvbG9yPW51bGwsdGhpcy5jb3VudD1uLHRoaXMuZnJ1c3R1bUN1bGxlZD0hMX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuaW5zdGFuY2VNYXRyaXguY29weSh0Lmluc3RhbmNlTWF0cml4KSxudWxsIT09dC5pbnN0YW5jZUNvbG9yJiYodGhpcy5pbnN0YW5jZUNvbG9yPXQuaW5zdGFuY2VDb2xvci5jbG9uZSgpKSx0aGlzLmNvdW50PXQuY291bnQsdGhpc31nZXRDb2xvckF0KHQsZSl7ZS5mcm9tQXJyYXkodGhpcy5pbnN0YW5jZUNvbG9yLmFycmF5LDMqdCl9Z2V0TWF0cml4QXQodCxlKXtlLmZyb21BcnJheSh0aGlzLmluc3RhbmNlTWF0cml4LmFycmF5LDE2KnQpfXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMubWF0cml4V29ybGQsaT10aGlzLmNvdW50O2lmKFAzdC5nZW9tZXRyeT10aGlzLmdlb21ldHJ5LFAzdC5tYXRlcmlhbD10aGlzLm1hdGVyaWFsLHZvaWQgMCE9PVAzdC5tYXRlcmlhbClmb3IobGV0IHI9MDtyPGk7cisrKXt0aGlzLmdldE1hdHJpeEF0KHIsQTN0KSxrM3QubXVsdGlwbHlNYXRyaWNlcyhuLEEzdCksUDN0Lm1hdHJpeFdvcmxkPWszdCxQM3QucmF5Y2FzdCh0LEwzdCk7Zm9yKGxldCB0PTAsbj1MM3QubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49TDN0W3RdO24uaW5zdGFuY2VJZD1yLG4ub2JqZWN0PXRoaXMsZS5wdXNoKG4pfUwzdC5sZW5ndGg9MH19c2V0Q29sb3JBdCh0LGUpe251bGw9PT10aGlzLmluc3RhbmNlQ29sb3ImJih0aGlzLmluc3RhbmNlQ29sb3I9bmV3IFFRdChuZXcgRmxvYXQzMkFycmF5KDMqdGhpcy5pbnN0YW5jZU1hdHJpeC5jb3VudCksMykpLGUudG9BcnJheSh0aGlzLmluc3RhbmNlQ29sb3IuYXJyYXksMyp0KX1zZXRNYXRyaXhBdCh0LGUpe2UudG9BcnJheSh0aGlzLmluc3RhbmNlTWF0cml4LmFycmF5LDE2KnQpfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfX1OM3QucHJvdG90eXBlLmlzSW5zdGFuY2VkTWVzaD0hMDtjbGFzcyBJM3QgZXh0ZW5kcyBVUXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmVCYXNpY01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyAkUXQoMTY3NzcyMTUpLHRoaXMubGluZXdpZHRoPTEsdGhpcy5saW5lY2FwPSJyb3VuZCIsdGhpcy5saW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubGluZXdpZHRoPXQubGluZXdpZHRoLHRoaXMubGluZWNhcD10LmxpbmVjYXAsdGhpcy5saW5lam9pbj10LmxpbmVqb2luLHRoaXN9fUkzdC5wcm90b3R5cGUuaXNMaW5lQmFzaWNNYXRlcmlhbD0hMDtjb25zdCBSM3Q9bmV3IENKdCxPM3Q9bmV3IENKdCx6M3Q9bmV3IHJRdCxEM3Q9bmV3IGlRdCxCM3Q9bmV3ICRKdDtjbGFzcyBIM3QgZXh0ZW5kcyBrUXR7Y29uc3RydWN0b3IodD1uZXcgYjF0LGU9bmV3IEkzdCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmUiLHRoaXMuZ2VvbWV0cnk9dCx0aGlzLm1hdGVyaWFsPWUsdGhpcy51cGRhdGVNb3JwaFRhcmdldHMoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpc31jb21wdXRlTGluZURpc3RhbmNlcygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpaWYobnVsbD09PXQuaW5kZXgpe2NvbnN0IGU9dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLG49WzBdO2ZvcihsZXQgdD0xLGk9ZS5jb3VudDt0PGk7dCsrKVIzdC5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdC0xKSxPM3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQpLG5bdF09blt0LTFdLG5bdF0rPVIzdC5kaXN0YW5jZVRvKE8zdCk7dC5zZXRBdHRyaWJ1dGUoImxpbmVEaXN0YW5jZSIsbmV3IGwxdChuLDEpKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuTGluZS5jb21wdXRlTGluZURpc3RhbmNlcygpOiBDb21wdXRhdGlvbiBvbmx5IHBvc3NpYmxlIHdpdGggbm9uLWluZGV4ZWQgQnVmZmVyR2VvbWV0cnkuIik7ZWxzZSB0LmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpO3JldHVybiB0aGlzfXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMuZ2VvbWV0cnksaT10aGlzLm1hdHJpeFdvcmxkLHI9dC5wYXJhbXMuTGluZS50aHJlc2hvbGQsbz1uLmRyYXdSYW5nZTtpZihudWxsPT09bi5ib3VuZGluZ1NwaGVyZSYmbi5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxCM3QuY29weShuLmJvdW5kaW5nU3BoZXJlKSxCM3QuYXBwbHlNYXRyaXg0KGkpLEIzdC5yYWRpdXMrPXIsITE9PT10LnJheS5pbnRlcnNlY3RzU3BoZXJlKEIzdCkpcmV0dXJuO3ozdC5jb3B5KGkpLmludmVydCgpLEQzdC5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQoejN0KTtjb25zdCBhPXIvKCh0aGlzLnNjYWxlLngrdGhpcy5zY2FsZS55K3RoaXMuc2NhbGUueikvMykscz1hKmEsbD1uZXcgQ0p0LGM9bmV3IENKdCx1PW5ldyBDSnQsaD1uZXcgQ0p0LGQ9dGhpcy5pc0xpbmVTZWdtZW50cz8yOjE7aWYobi5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBpPW4uaW5kZXgscj1uLmF0dHJpYnV0ZXMucG9zaXRpb247aWYobnVsbCE9PWkpZm9yKGxldCBuPU1hdGgubWF4KDAsby5zdGFydCksYT1NYXRoLm1pbihpLmNvdW50LG8uc3RhcnQrby5jb3VudCktMTtuPGE7bis9ZCl7Y29uc3Qgbz1pLmdldFgobiksYT1pLmdldFgobisxKTtpZihsLmZyb21CdWZmZXJBdHRyaWJ1dGUocixvKSxjLmZyb21CdWZmZXJBdHRyaWJ1dGUocixhKSxEM3QuZGlzdGFuY2VTcVRvU2VnbWVudChsLGMsaCx1KT5zKWNvbnRpbnVlO2guYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpO2NvbnN0IGQ9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8oaCk7ZDx0Lm5lYXJ8fGQ+dC5mYXJ8fGUucHVzaCh7ZGlzdGFuY2U6ZCxwb2ludDp1LmNsb25lKCkuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpLGluZGV4Om4sZmFjZTpudWxsLGZhY2VJbmRleDpudWxsLG9iamVjdDp0aGlzfSl9ZWxzZSBmb3IobGV0IG49TWF0aC5tYXgoMCxvLnN0YXJ0KSxpPU1hdGgubWluKHIuY291bnQsby5zdGFydCtvLmNvdW50KS0xO248aTtuKz1kKXtpZihsLmZyb21CdWZmZXJBdHRyaWJ1dGUocixuKSxjLmZyb21CdWZmZXJBdHRyaWJ1dGUocixuKzEpLEQzdC5kaXN0YW5jZVNxVG9TZWdtZW50KGwsYyxoLHUpPnMpY29udGludWU7aC5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCk7Y29uc3QgaT10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhoKTtpPHQubmVhcnx8aT50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTppLHBvaW50OnUuY2xvbmUoKS5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCksaW5kZXg6bixmYWNlOm51bGwsZmFjZUluZGV4Om51bGwsb2JqZWN0OnRoaXN9KX19ZWxzZSBuLmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9dXBkYXRlTW9ycGhUYXJnZXRzKCl7Y29uc3QgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSl7Y29uc3QgZT10Lm1vcnBoQXR0cmlidXRlcyxuPU9iamVjdC5rZXlzKGUpO2lmKG4ubGVuZ3RoPjApe2NvbnN0IHQ9ZVtuWzBdXTtpZih2b2lkIDAhPT10KXt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcz1bXSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT17fTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dFtlXS5uYW1lfHxTdHJpbmcoZSk7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXMucHVzaCgwKSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtuXT1lfX19fWVsc2V7Y29uc3QgZT10Lm1vcnBoVGFyZ2V0czt2b2lkIDAhPT1lJiZlLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5MaW5lLnVwZGF0ZU1vcnBoVGFyZ2V0cygpIGRvZXMgbm90IHN1cHBvcnQgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX19SDN0LnByb3RvdHlwZS5pc0xpbmU9ITA7Y29uc3QgRjN0PW5ldyBDSnQsVjN0PW5ldyBDSnQ7Y2xhc3MgVTN0IGV4dGVuZHMgSDN0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkxpbmVTZWdtZW50cyJ9Y29tcHV0ZUxpbmVEaXN0YW5jZXMoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KWlmKG51bGw9PT10LmluZGV4KXtjb25zdCBlPXQuYXR0cmlidXRlcy5wb3NpdGlvbixuPVtdO2ZvcihsZXQgdD0wLGk9ZS5jb3VudDt0PGk7dCs9MilGM3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQpLFYzdC5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCsxKSxuW3RdPTA9PT10PzA6blt0LTFdLG5bdCsxXT1uW3RdK0YzdC5kaXN0YW5jZVRvKFYzdCk7dC5zZXRBdHRyaWJ1dGUoImxpbmVEaXN0YW5jZSIsbmV3IGwxdChuLDEpKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuTGluZVNlZ21lbnRzLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCk6IENvbXB1dGF0aW9uIG9ubHkgcG9zc2libGUgd2l0aCBub24taW5kZXhlZCBCdWZmZXJHZW9tZXRyeS4iKTtlbHNlIHQuaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZVNlZ21lbnRzLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKTtyZXR1cm4gdGhpc319VTN0LnByb3RvdHlwZS5pc0xpbmVTZWdtZW50cz0hMDtjbGFzcyBqM3QgZXh0ZW5kcyBIM3R7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iTGluZUxvb3AifX1qM3QucHJvdG90eXBlLmlzTGluZUxvb3A9ITA7Y2xhc3MgRzN0IGV4dGVuZHMgVVF0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJQb2ludHNNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgJFF0KDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLnNpemU9MSx0aGlzLnNpemVBdHRlbnVhdGlvbj0hMCx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5zaXplPXQuc2l6ZSx0aGlzLnNpemVBdHRlbnVhdGlvbj10LnNpemVBdHRlbnVhdGlvbix0aGlzfX1HM3QucHJvdG90eXBlLmlzUG9pbnRzTWF0ZXJpYWw9ITA7Y29uc3QgVzN0PW5ldyByUXQscTN0PW5ldyBpUXQsWTN0PW5ldyAkSnQsWDN0PW5ldyBDSnQ7Y2xhc3MgJDN0IGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQ9bmV3IGIxdCxlPW5ldyBHM3Qpe3N1cGVyKCksdGhpcy50eXBlPSJQb2ludHMiLHRoaXMuZ2VvbWV0cnk9dCx0aGlzLm1hdGVyaWFsPWUsdGhpcy51cGRhdGVNb3JwaFRhcmdldHMoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpc31yYXljYXN0KHQsZSl7Y29uc3Qgbj10aGlzLmdlb21ldHJ5LGk9dGhpcy5tYXRyaXhXb3JsZCxyPXQucGFyYW1zLlBvaW50cy50aHJlc2hvbGQsbz1uLmRyYXdSYW5nZTtpZihudWxsPT09bi5ib3VuZGluZ1NwaGVyZSYmbi5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxZM3QuY29weShuLmJvdW5kaW5nU3BoZXJlKSxZM3QuYXBwbHlNYXRyaXg0KGkpLFkzdC5yYWRpdXMrPXIsITE9PT10LnJheS5pbnRlcnNlY3RzU3BoZXJlKFkzdCkpcmV0dXJuO1czdC5jb3B5KGkpLmludmVydCgpLHEzdC5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQoVzN0KTtjb25zdCBhPXIvKCh0aGlzLnNjYWxlLngrdGhpcy5zY2FsZS55K3RoaXMuc2NhbGUueikvMykscz1hKmE7aWYobi5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCByPW4uaW5kZXgsYT1uLmF0dHJpYnV0ZXMucG9zaXRpb247aWYobnVsbCE9PXIpZm9yKGxldCBuPU1hdGgubWF4KDAsby5zdGFydCksbD1NYXRoLm1pbihyLmNvdW50LG8uc3RhcnQrby5jb3VudCk7bjxsO24rKyl7Y29uc3Qgbz1yLmdldFgobik7WDN0LmZyb21CdWZmZXJBdHRyaWJ1dGUoYSxvKSxLM3QoWDN0LG8scyxpLHQsZSx0aGlzKX1lbHNlIGZvcihsZXQgbj1NYXRoLm1heCgwLG8uc3RhcnQpLHI9TWF0aC5taW4oYS5jb3VudCxvLnN0YXJ0K28uY291bnQpO248cjtuKyspWDN0LmZyb21CdWZmZXJBdHRyaWJ1dGUoYSxuKSxLM3QoWDN0LG4scyxpLHQsZSx0aGlzKX1lbHNlIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlBvaW50cy5yYXljYXN0KCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX11cGRhdGVNb3JwaFRhcmdldHMoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBlPXQubW9ycGhBdHRyaWJ1dGVzLG49T2JqZWN0LmtleXMoZSk7aWYobi5sZW5ndGg+MCl7Y29uc3QgdD1lW25bMF1dO2lmKHZvaWQgMCE9PXQpe3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPVtdLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5PXt9O2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdLm5hbWV8fFN0cmluZyhlKTt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcy5wdXNoKDApLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5W25dPWV9fX19ZWxzZXtjb25zdCBlPXQubW9ycGhUYXJnZXRzO3ZvaWQgMCE9PWUmJmUubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLlBvaW50cy51cGRhdGVNb3JwaFRhcmdldHMoKSBkb2VzIG5vdCBzdXBwb3J0IFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX19fWZ1bmN0aW9uIEszdCh0LGUsbixpLHIsbyxhKXtjb25zdCBzPXEzdC5kaXN0YW5jZVNxVG9Qb2ludCh0KTtpZihzPG4pe2NvbnN0IG49bmV3IENKdDtxM3QuY2xvc2VzdFBvaW50VG9Qb2ludCh0LG4pLG4uYXBwbHlNYXRyaXg0KGkpO2NvbnN0IGw9ci5yYXkub3JpZ2luLmRpc3RhbmNlVG8obik7aWYobDxyLm5lYXJ8fGw+ci5mYXIpcmV0dXJuO28ucHVzaCh7ZGlzdGFuY2U6bCxkaXN0YW5jZVRvUmF5Ok1hdGguc3FydChzKSxwb2ludDpuLGluZGV4OmUsZmFjZTpudWxsLG9iamVjdDphfSl9fSQzdC5wcm90b3R5cGUuaXNQb2ludHM9ITA7Y2xhc3MgWjN0IGV4dGVuZHMgYkp0e2NvbnN0cnVjdG9yKHQsZSxuLGkscixvLGEscyxsKXtzdXBlcih0LGUsbixpLHIsbyxhLHMsbCksdGhpcy5mb3JtYXQ9dm9pZCAwIT09YT9hOnVadCx0aGlzLm1pbkZpbHRlcj12b2lkIDAhPT1vP286ZVp0LHRoaXMubWFnRmlsdGVyPXZvaWQgMCE9PXI/cjplWnQsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITE7Y29uc3QgYz10aGlzOyJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrImluIHQmJnQucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygoZnVuY3Rpb24gZSgpe2MubmVlZHNVcGRhdGU9ITAsdC5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKGUpfSkpfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuaW1hZ2UpLmNvcHkodGhpcyl9dXBkYXRlKCl7Y29uc3QgdD10aGlzLmltYWdlOzA9PSJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrImluIHQmJnQucmVhZHlTdGF0ZT49dC5IQVZFX0NVUlJFTlRfREFUQSYmKHRoaXMubmVlZHNVcGRhdGU9ITApfX1aM3QucHJvdG90eXBlLmlzVmlkZW9UZXh0dXJlPSEwO2NsYXNzIEozdCBleHRlbmRzIGJKdHtjb25zdHJ1Y3Rvcih0LGUsbixpLHIsbyxhLHMsbCxjLHUsaCl7c3VwZXIobnVsbCxvLGEscyxsLGMsaSxyLHUsaCksdGhpcy5pbWFnZT17d2lkdGg6ZSxoZWlnaHQ6bn0sdGhpcy5taXBtYXBzPXQsdGhpcy5mbGlwWT0hMSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMX19SjN0LnByb3RvdHlwZS5pc0NvbXByZXNzZWRUZXh0dXJlPSEwO2NsYXNzIFEzdCBleHRlbmRzIGJKdHtjb25zdHJ1Y3Rvcih0LGUsbixpLHIsbyxhLHMsbCl7c3VwZXIodCxlLG4saSxyLG8sYSxzLGwpLHRoaXMubmVlZHNVcGRhdGU9ITB9fVEzdC5wcm90b3R5cGUuaXNDYW52YXNUZXh0dXJlPSEwO2NsYXNzIHQ0dCBleHRlbmRzIGJKdHtjb25zdHJ1Y3Rvcih0LGUsbixpLHIsbyxhLHMsbCxjKXtpZigoYz12b2lkIDAhPT1jP2M6ZFp0KSE9PWRadCYmYyE9PXBadCl0aHJvdyBuZXcgRXJyb3IoIkRlcHRoVGV4dHVyZSBmb3JtYXQgbXVzdCBiZSBlaXRoZXIgVEhSRUUuRGVwdGhGb3JtYXQgb3IgVEhSRUUuRGVwdGhTdGVuY2lsRm9ybWF0Iik7dm9pZCAwPT09biYmYz09PWRadCYmKG49b1p0KSx2b2lkIDA9PT1uJiZjPT09cFp0JiYobj1jWnQpLHN1cGVyKG51bGwsaSxyLG8sYSxzLGMsbixsKSx0aGlzLmltYWdlPXt3aWR0aDp0LGhlaWdodDplfSx0aGlzLm1hZ0ZpbHRlcj12b2lkIDAhPT1hP2E6Skt0LHRoaXMubWluRmlsdGVyPXZvaWQgMCE9PXM/czpKS3QsdGhpcy5mbGlwWT0hMSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMX19dDR0LnByb3RvdHlwZS5pc0RlcHRoVGV4dHVyZT0hMDtjbGFzcyBlNHQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodD0xLGU9OCxuPTAsaT0yKk1hdGguUEkpe3N1cGVyKCksdGhpcy50eXBlPSJDaXJjbGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCxzZWdtZW50czplLHRoZXRhU3RhcnQ6bix0aGV0YUxlbmd0aDppfSxlPU1hdGgubWF4KDMsZSk7Y29uc3Qgcj1bXSxvPVtdLGE9W10scz1bXSxsPW5ldyBDSnQsYz1uZXcgbUp0O28ucHVzaCgwLDAsMCksYS5wdXNoKDAsMCwxKSxzLnB1c2goLjUsLjUpO2ZvcihsZXQgcj0wLHU9MztyPD1lO3IrKyx1Kz0zKXtjb25zdCBoPW4rci9lKmk7bC54PXQqTWF0aC5jb3MoaCksbC55PXQqTWF0aC5zaW4oaCksby5wdXNoKGwueCxsLnksbC56KSxhLnB1c2goMCwwLDEpLGMueD0ob1t1XS90KzEpLzIsYy55PShvW3UrMV0vdCsxKS8yLHMucHVzaChjLngsYy55KX1mb3IobGV0IHQ9MTt0PD1lO3QrKylyLnB1c2godCx0KzEsMCk7dGhpcy5zZXRJbmRleChyKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQobywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGwxdChhLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBsMXQocywyKSl9c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgZTR0KHQucmFkaXVzLHQuc2VnbWVudHMsdC50aGV0YVN0YXJ0LHQudGhldGFMZW5ndGgpfX1jbGFzcyBuNHQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodD0xLGU9MSxuPTEsaT04LHI9MSxvPSExLGE9MCxzPTIqTWF0aC5QSSl7c3VwZXIoKSx0aGlzLnR5cGU9IkN5bGluZGVyR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzVG9wOnQscmFkaXVzQm90dG9tOmUsaGVpZ2h0Om4scmFkaWFsU2VnbWVudHM6aSxoZWlnaHRTZWdtZW50czpyLG9wZW5FbmRlZDpvLHRoZXRhU3RhcnQ6YSx0aGV0YUxlbmd0aDpzfTtjb25zdCBsPXRoaXM7aT1NYXRoLmZsb29yKGkpLHI9TWF0aC5mbG9vcihyKTtjb25zdCBjPVtdLHU9W10saD1bXSxkPVtdO2xldCBwPTA7Y29uc3QgZj1bXSxtPW4vMjtsZXQgZz0wO2Z1bmN0aW9uIF8obil7Y29uc3Qgcj1wLG89bmV3IG1KdCxmPW5ldyBDSnQ7bGV0IF89MDtjb25zdCB5PSEwPT09bj90OmUsdj0hMD09PW4/MTotMTtmb3IobGV0IHQ9MTt0PD1pO3QrKyl1LnB1c2goMCxtKnYsMCksaC5wdXNoKDAsdiwwKSxkLnB1c2goLjUsLjUpLHArKztjb25zdCBiPXA7Zm9yKGxldCB0PTA7dDw9aTt0Kyspe2NvbnN0IGU9dC9pKnMrYSxuPU1hdGguY29zKGUpLHI9TWF0aC5zaW4oZSk7Zi54PXkqcixmLnk9bSp2LGYuej15Km4sdS5wdXNoKGYueCxmLnksZi56KSxoLnB1c2goMCx2LDApLG8ueD0uNSpuKy41LG8ueT0uNSpyKnYrLjUsZC5wdXNoKG8ueCxvLnkpLHArK31mb3IobGV0IHQ9MDt0PGk7dCsrKXtjb25zdCBlPXIrdCxpPWIrdDshMD09PW4/Yy5wdXNoKGksaSsxLGUpOmMucHVzaChpKzEsaSxlKSxfKz0zfWwuYWRkR3JvdXAoZyxfLCEwPT09bj8xOjIpLGcrPV99IShmdW5jdGlvbiB5KCl7Y29uc3Qgbz1uZXcgQ0p0LF89bmV3IENKdDtsZXQgeT0wO2NvbnN0IHY9KGUtdCkvbjtmb3IobGV0IGw9MDtsPD1yO2wrKyl7Y29uc3QgYz1bXSxnPWwvcix5PWcqKGUtdCkrdDtmb3IobGV0IHQ9MDt0PD1pO3QrKyl7Y29uc3QgZT10L2kscj1lKnMrYSxsPU1hdGguc2luKHIpLGY9TWF0aC5jb3Mocik7Xy54PXkqbCxfLnk9LWcqbittLF8uej15KmYsdS5wdXNoKF8ueCxfLnksXy56KSxvLnNldChsLHYsZikubm9ybWFsaXplKCksaC5wdXNoKG8ueCxvLnksby56KSxkLnB1c2goZSwxLWcpLGMucHVzaChwKyspfWYucHVzaChjKX1mb3IobGV0IHQ9MDt0PGk7dCsrKWZvcihsZXQgZT0wO2U8cjtlKyspe2NvbnN0IG49ZltlKzFdW3RdLGk9ZltlKzFdW3QrMV0scj1mW2VdW3QrMV07Yy5wdXNoKGZbZV1bdF0sbixyKSxjLnB1c2gobixpLHIpLHkrPTZ9bC5hZGRHcm91cChnLHksMCksZys9eX0pKCksITE9PT1vJiYodD4wJiZfKCEwKSxlPjAmJl8oITEpKSx0aGlzLnNldEluZGV4KGMpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdCh1LDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgbDF0KGgsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGwxdChkLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBuNHQodC5yYWRpdXNUb3AsdC5yYWRpdXNCb3R0b20sdC5oZWlnaHQsdC5yYWRpYWxTZWdtZW50cyx0LmhlaWdodFNlZ21lbnRzLHQub3BlbkVuZGVkLHQudGhldGFTdGFydCx0LnRoZXRhTGVuZ3RoKX19Y2xhc3MgaTR0IGV4dGVuZHMgbjR0e2NvbnN0cnVjdG9yKHQ9MSxlPTEsbj04LGk9MSxyPSExLG89MCxhPTIqTWF0aC5QSSl7c3VwZXIoMCx0LGUsbixpLHIsbyxhKSx0aGlzLnR5cGU9IkNvbmVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCxoZWlnaHQ6ZSxyYWRpYWxTZWdtZW50czpuLGhlaWdodFNlZ21lbnRzOmksb3BlbkVuZGVkOnIsdGhldGFTdGFydDpvLHRoZXRhTGVuZ3RoOmF9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGk0dCh0LnJhZGl1cyx0LmhlaWdodCx0LnJhZGlhbFNlZ21lbnRzLHQuaGVpZ2h0U2VnbWVudHMsdC5vcGVuRW5kZWQsdC50aGV0YVN0YXJ0LHQudGhldGFMZW5ndGgpfX1jbGFzcyByNHQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodCxlLG49MSxpPTApe3N1cGVyKCksdGhpcy50eXBlPSJQb2x5aGVkcm9uR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17dmVydGljZXM6dCxpbmRpY2VzOmUscmFkaXVzOm4sZGV0YWlsOml9O2NvbnN0IHI9W10sbz1bXTtmdW5jdGlvbiBhKHQsZSxuLGkpe2NvbnN0IHI9aSsxLG89W107Zm9yKGxldCBpPTA7aTw9cjtpKyspe29baV09W107Y29uc3QgYT10LmNsb25lKCkubGVycChuLGkvcikscz1lLmNsb25lKCkubGVycChuLGkvciksbD1yLWk7Zm9yKGxldCB0PTA7dDw9bDt0Kyspb1tpXVt0XT0wPT09dCYmaT09PXI/YTphLmNsb25lKCkubGVycChzLHQvbCl9Zm9yKGxldCB0PTA7dDxyO3QrKylmb3IobGV0IGU9MDtlPDIqKHItdCktMTtlKyspe2NvbnN0IG49TWF0aC5mbG9vcihlLzIpO2UlMj09MD8ocyhvW3RdW24rMV0pLHMob1t0KzFdW25dKSxzKG9bdF1bbl0pKToocyhvW3RdW24rMV0pLHMob1t0KzFdW24rMV0pLHMob1t0KzFdW25dKSl9fWZ1bmN0aW9uIHModCl7ci5wdXNoKHQueCx0LnksdC56KX1mdW5jdGlvbiBsKGUsbil7Y29uc3QgaT0zKmU7bi54PXRbaSswXSxuLnk9dFtpKzFdLG4uej10W2krMl19ZnVuY3Rpb24gYyh0LGUsbixpKXtpPDAmJjE9PT10LngmJihvW2VdPXQueC0xKSwwPT09bi54JiYwPT09bi56JiYob1tlXT1pLzIvTWF0aC5QSSsuNSl9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gTWF0aC5hdGFuMih0LnosLXQueCl9IShmdW5jdGlvbiBoKHQpe2NvbnN0IG49bmV3IENKdCxpPW5ldyBDSnQscj1uZXcgQ0p0O2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7bys9MylsKGVbbyswXSxuKSxsKGVbbysxXSxpKSxsKGVbbysyXSxyKSxhKG4saSxyLHQpfSkoaSksKGZ1bmN0aW9uIGQodCl7Y29uc3QgZT1uZXcgQ0p0O2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bis9MyllLng9cltuKzBdLGUueT1yW24rMV0sZS56PXJbbisyXSxlLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHQpLHJbbiswXT1lLngscltuKzFdPWUueSxyW24rMl09ZS56fSkobiksKGZ1bmN0aW9uIHAoKXtjb25zdCB0PW5ldyBDSnQ7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKz0zKXt0Lng9cltuKzBdLHQueT1yW24rMV0sdC56PXJbbisyXTtjb25zdCBpPXUodCkvMi9NYXRoLlBJKy41LGE9KGU9dCxNYXRoLmF0YW4yKC1lLnksTWF0aC5zcXJ0KGUueCplLngrZS56KmUueikpL01hdGguUEkrLjUpO28ucHVzaChpLDEtYSl9dmFyIGU7KGZ1bmN0aW9uIG4oKXtjb25zdCB0PW5ldyBDSnQsZT1uZXcgQ0p0LG49bmV3IENKdCxpPW5ldyBDSnQsYT1uZXcgbUp0LHM9bmV3IG1KdCxsPW5ldyBtSnQ7Zm9yKGxldCBoPTAsZD0wO2g8ci5sZW5ndGg7aCs9OSxkKz02KXt0LnNldChyW2grMF0scltoKzFdLHJbaCsyXSksZS5zZXQocltoKzNdLHJbaCs0XSxyW2grNV0pLG4uc2V0KHJbaCs2XSxyW2grN10scltoKzhdKSxhLnNldChvW2QrMF0sb1tkKzFdKSxzLnNldChvW2QrMl0sb1tkKzNdKSxsLnNldChvW2QrNF0sb1tkKzVdKSxpLmNvcHkodCkuYWRkKGUpLmFkZChuKS5kaXZpZGVTY2FsYXIoMyk7Y29uc3QgcD11KGkpO2MoYSxkKzAsdCxwKSxjKHMsZCsyLGUscCksYyhsLGQrNCxuLHApfX0pKCksKGZ1bmN0aW9uIGkoKXtmb3IobGV0IHQ9MDt0PG8ubGVuZ3RoO3QrPTYpe2NvbnN0IGU9b1t0KzBdLG49b1t0KzJdLGk9b1t0KzRdLHI9TWF0aC5tYXgoZSxuLGkpLGE9TWF0aC5taW4oZSxuLGkpO3I+LjkmJmE8LjEmJihlPC4yJiYob1t0KzBdKz0xKSxuPC4yJiYob1t0KzJdKz0xKSxpPC4yJiYob1t0KzRdKz0xKSl9fSkoKX0pKCksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KHIsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBsMXQoci5zbGljZSgpLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBsMXQobywyKSksMD09PWk/dGhpcy5jb21wdXRlVmVydGV4Tm9ybWFscygpOnRoaXMubm9ybWFsaXplTm9ybWFscygpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IHI0dCh0LnZlcnRpY2VzLHQuaW5kaWNlcyx0LnJhZGl1cyx0LmRldGFpbHMpfX1jbGFzcyBvNHQgZXh0ZW5kcyByNHR7Y29uc3RydWN0b3IodD0xLGU9MCl7Y29uc3Qgbj0oMStNYXRoLnNxcnQoNSkpLzIsaT0xL247c3VwZXIoWy0xLC0xLC0xLC0xLC0xLDEsLTEsMSwtMSwtMSwxLDEsMSwtMSwtMSwxLC0xLDEsMSwxLC0xLDEsMSwxLDAsLWksLW4sMCwtaSxuLDAsaSwtbiwwLGksbiwtaSwtbiwwLC1pLG4sMCxpLC1uLDAsaSxuLDAsLW4sMCwtaSxuLDAsLWksLW4sMCxpLG4sMCxpXSxbMywxMSw3LDMsNywxNSwzLDE1LDEzLDcsMTksMTcsNywxNyw2LDcsNiwxNSwxNyw0LDgsMTcsOCwxMCwxNywxMCw2LDgsMCwxNiw4LDE2LDIsOCwyLDEwLDAsMTIsMSwwLDEsMTgsMCwxOCwxNiw2LDEwLDIsNiwyLDEzLDYsMTMsMTUsMiwxNiwxOCwyLDE4LDMsMiwzLDEzLDE4LDEsOSwxOCw5LDExLDE4LDExLDMsNCwxNCwxMiw0LDEyLDAsNCwwLDgsMTEsOSw1LDExLDUsMTksMTEsMTksNywxOSw1LDE0LDE5LDE0LDQsMTksNCwxNywxLDEyLDE0LDEsMTQsNSwxLDUsOV0sdCxlKSx0aGlzLnR5cGU9IkRvZGVjYWhlZHJvbkdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LGRldGFpbDplfX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBvNHQodC5yYWRpdXMsdC5kZXRhaWwpfX1jb25zdCBhNHQ9bmV3IENKdCxzNHQ9bmV3IENKdCxsNHQ9bmV3IENKdCxjNHQ9bmV3IEZRdDtjbGFzcyB1NHQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodCxlKXtpZihzdXBlcigpLHRoaXMudHlwZT0iRWRnZXNHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXt0aHJlc2hvbGRBbmdsZTplfSxlPXZvaWQgMCE9PWU/ZToxLCEwPT09dC5pc0dlb21ldHJ5KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkVkZ2VzR2VvbWV0cnkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKTtjb25zdCBuPU1hdGguY29zKHFadCplKSxpPXQuZ2V0SW5kZXgoKSxyPXQuZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpLG89aT9pLmNvdW50OnIuY291bnQsYT1bMCwwLDBdLHM9WyJhIiwiYiIsImMiXSxsPW5ldyBBcnJheSgzKSxjPXt9LHU9W107Zm9yKGxldCB0PTA7dDxvO3QrPTMpe2k/KGFbMF09aS5nZXRYKHQpLGFbMV09aS5nZXRYKHQrMSksYVsyXT1pLmdldFgodCsyKSk6KGFbMF09dCxhWzFdPXQrMSxhWzJdPXQrMik7Y29uc3R7YTplLGI6byxjOmh9PWM0dDtpZihlLmZyb21CdWZmZXJBdHRyaWJ1dGUocixhWzBdKSxvLmZyb21CdWZmZXJBdHRyaWJ1dGUocixhWzFdKSxoLmZyb21CdWZmZXJBdHRyaWJ1dGUocixhWzJdKSxjNHQuZ2V0Tm9ybWFsKGw0dCksbFswXT1gJHtlLnh9LCR7ZS55fSwke2Uuen1gLGxbMV09YCR7by54fSwke28ueX0sJHtvLnp9YCxsWzJdPWAke2gueH0sJHtoLnl9LCR7aC56fWAsbFswXSE9PWxbMV0mJmxbMV0hPT1sWzJdJiZsWzJdIT09bFswXSlmb3IobGV0IHQ9MDt0PDM7dCsrKXtjb25zdCBlPSh0KzEpJTMsaT1sW3RdLHI9bFtlXSxvPWM0dFtzW3RdXSxoPWM0dFtzW2VdXSxkPWAke2l9XyR7cn1gLHA9YCR7cn1fJHtpfWA7cCBpbiBjJiZjW3BdPyhsNHQuZG90KGNbcF0ubm9ybWFsKTw9biYmKHUucHVzaChvLngsby55LG8ueiksdS5wdXNoKGgueCxoLnksaC56KSksY1twXT1udWxsKTpkIGluIGN8fChjW2RdPXtpbmRleDA6YVt0XSxpbmRleDE6YVtlXSxub3JtYWw6bDR0LmNsb25lKCl9KX19Zm9yKGNvbnN0IHQgaW4gYylpZihjW3RdKXtjb25zdHtpbmRleDA6ZSxpbmRleDE6bn09Y1t0XTthNHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLGUpLHM0dC5mcm9tQnVmZmVyQXR0cmlidXRlKHIsbiksdS5wdXNoKGE0dC54LGE0dC55LGE0dC56KSx1LnB1c2goczR0LngsczR0LnksczR0LnopfXRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdCh1LDMpKX19Y2xhc3MgaDR0e2NvbnN0cnVjdG9yKCl7dGhpcy50eXBlPSJDdXJ2ZSIsdGhpcy5hcmNMZW5ndGhEaXZpc2lvbnM9MjAwfWdldFBvaW50KCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3VydmU6IC5nZXRQb2ludCgpIG5vdCBpbXBsZW1lbnRlZC4iKSxudWxsfWdldFBvaW50QXQodCxlKXtjb25zdCBuPXRoaXMuZ2V0VXRvVG1hcHBpbmcodCk7cmV0dXJuIHRoaXMuZ2V0UG9pbnQobixlKX1nZXRQb2ludHModD01KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248PXQ7bisrKWUucHVzaCh0aGlzLmdldFBvaW50KG4vdCkpO3JldHVybiBlfWdldFNwYWNlZFBvaW50cyh0PTUpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjw9dDtuKyspZS5wdXNoKHRoaXMuZ2V0UG9pbnRBdChuL3QpKTtyZXR1cm4gZX1nZXRMZW5ndGgoKXtjb25zdCB0PXRoaXMuZ2V0TGVuZ3RocygpO3JldHVybiB0W3QubGVuZ3RoLTFdfWdldExlbmd0aHModD10aGlzLmFyY0xlbmd0aERpdmlzaW9ucyl7aWYodGhpcy5jYWNoZUFyY0xlbmd0aHMmJnRoaXMuY2FjaGVBcmNMZW5ndGhzLmxlbmd0aD09PXQrMSYmIXRoaXMubmVlZHNVcGRhdGUpcmV0dXJuIHRoaXMuY2FjaGVBcmNMZW5ndGhzO3RoaXMubmVlZHNVcGRhdGU9ITE7Y29uc3QgZT1bXTtsZXQgbixpPXRoaXMuZ2V0UG9pbnQoMCkscj0wO2UucHVzaCgwKTtmb3IobGV0IG89MTtvPD10O28rKyluPXRoaXMuZ2V0UG9pbnQoby90KSxyKz1uLmRpc3RhbmNlVG8oaSksZS5wdXNoKHIpLGk9bjtyZXR1cm4gdGhpcy5jYWNoZUFyY0xlbmd0aHM9ZSxlfXVwZGF0ZUFyY0xlbmd0aHMoKXt0aGlzLm5lZWRzVXBkYXRlPSEwLHRoaXMuZ2V0TGVuZ3RocygpfWdldFV0b1RtYXBwaW5nKHQsZSl7Y29uc3Qgbj10aGlzLmdldExlbmd0aHMoKTtsZXQgaT0wO2NvbnN0IHI9bi5sZW5ndGg7bGV0IG87bz1lfHx0Km5bci0xXTtsZXQgYSxzPTAsbD1yLTE7Zm9yKDtzPD1sOylpZihpPU1hdGguZmxvb3IocysobC1zKS8yKSxhPW5baV0tbyxhPDApcz1pKzE7ZWxzZXtpZighKGE+MCkpe2w9aTticmVha31sPWktMX1pZihpPWwsbltpXT09PW8pcmV0dXJuIGkvKHItMSk7Y29uc3QgYz1uW2ldO3JldHVybihpKyhvLWMpLyhuW2krMV0tYykpLyhyLTEpfWdldFRhbmdlbnQodCxlKXtjb25zdCBuPTFlLTQ7bGV0IGk9dC1uLHI9dCtuO2k8MCYmKGk9MCkscj4xJiYocj0xKTtjb25zdCBvPXRoaXMuZ2V0UG9pbnQoaSksYT10aGlzLmdldFBvaW50KHIpLHM9ZXx8KG8uaXNWZWN0b3IyP25ldyBtSnQ6bmV3IENKdCk7cmV0dXJuIHMuY29weShhKS5zdWIobykubm9ybWFsaXplKCksc31nZXRUYW5nZW50QXQodCxlKXtjb25zdCBuPXRoaXMuZ2V0VXRvVG1hcHBpbmcodCk7cmV0dXJuIHRoaXMuZ2V0VGFuZ2VudChuLGUpfWNvbXB1dGVGcmVuZXRGcmFtZXModCxlKXtjb25zdCBuPW5ldyBDSnQsaT1bXSxyPVtdLG89W10sYT1uZXcgQ0p0LHM9bmV3IHJRdDtmb3IobGV0IGU9MDtlPD10O2UrKylpW2VdPXRoaXMuZ2V0VGFuZ2VudEF0KGUvdCxuZXcgQ0p0KSxpW2VdLm5vcm1hbGl6ZSgpO3JbMF09bmV3IENKdCxvWzBdPW5ldyBDSnQ7bGV0IGw9TnVtYmVyLk1BWF9WQUxVRTtjb25zdCBjPU1hdGguYWJzKGlbMF0ueCksdT1NYXRoLmFicyhpWzBdLnkpLGg9TWF0aC5hYnMoaVswXS56KTtjPD1sJiYobD1jLG4uc2V0KDEsMCwwKSksdTw9bCYmKGw9dSxuLnNldCgwLDEsMCkpLGg8PWwmJm4uc2V0KDAsMCwxKSxhLmNyb3NzVmVjdG9ycyhpWzBdLG4pLm5vcm1hbGl6ZSgpLHJbMF0uY3Jvc3NWZWN0b3JzKGlbMF0sYSksb1swXS5jcm9zc1ZlY3RvcnMoaVswXSxyWzBdKTtmb3IobGV0IGU9MTtlPD10O2UrKyl7aWYocltlXT1yW2UtMV0uY2xvbmUoKSxvW2VdPW9bZS0xXS5jbG9uZSgpLGEuY3Jvc3NWZWN0b3JzKGlbZS0xXSxpW2VdKSxhLmxlbmd0aCgpPk51bWJlci5FUFNJTE9OKXthLm5vcm1hbGl6ZSgpO2NvbnN0IHQ9TWF0aC5hY29zKCRadChpW2UtMV0uZG90KGlbZV0pLC0xLDEpKTtyW2VdLmFwcGx5TWF0cml4NChzLm1ha2VSb3RhdGlvbkF4aXMoYSx0KSl9b1tlXS5jcm9zc1ZlY3RvcnMoaVtlXSxyW2VdKX1pZighMD09PWUpe2xldCBlPU1hdGguYWNvcygkWnQoclswXS5kb3Qoclt0XSksLTEsMSkpO2UvPXQsaVswXS5kb3QoYS5jcm9zc1ZlY3RvcnMoclswXSxyW3RdKSk+MCYmKGU9LWUpO2ZvcihsZXQgbj0xO248PXQ7bisrKXJbbl0uYXBwbHlNYXRyaXg0KHMubWFrZVJvdGF0aW9uQXhpcyhpW25dLGUqbikpLG9bbl0uY3Jvc3NWZWN0b3JzKGlbbl0scltuXSl9cmV0dXJue3RhbmdlbnRzOmksbm9ybWFsczpyLGJpbm9ybWFsczpvfX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLmFyY0xlbmd0aERpdmlzaW9ucz10LmFyY0xlbmd0aERpdmlzaW9ucyx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJDdXJ2ZSIsZ2VuZXJhdG9yOiJDdXJ2ZS50b0pTT04ifX07cmV0dXJuIHQuYXJjTGVuZ3RoRGl2aXNpb25zPXRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zLHQudHlwZT10aGlzLnR5cGUsdH1mcm9tSlNPTih0KXtyZXR1cm4gdGhpcy5hcmNMZW5ndGhEaXZpc2lvbnM9dC5hcmNMZW5ndGhEaXZpc2lvbnMsdGhpc319Y2xhc3MgZDR0IGV4dGVuZHMgaDR0e2NvbnN0cnVjdG9yKHQ9MCxlPTAsbj0xLGk9MSxyPTAsbz0yKk1hdGguUEksYT0hMSxzPTApe3N1cGVyKCksdGhpcy50eXBlPSJFbGxpcHNlQ3VydmUiLHRoaXMuYVg9dCx0aGlzLmFZPWUsdGhpcy54UmFkaXVzPW4sdGhpcy55UmFkaXVzPWksdGhpcy5hU3RhcnRBbmdsZT1yLHRoaXMuYUVuZEFuZ2xlPW8sdGhpcy5hQ2xvY2t3aXNlPWEsdGhpcy5hUm90YXRpb249c31nZXRQb2ludCh0LGUpe2NvbnN0IG49ZXx8bmV3IG1KdCxpPTIqTWF0aC5QSTtsZXQgcj10aGlzLmFFbmRBbmdsZS10aGlzLmFTdGFydEFuZ2xlO2NvbnN0IG89TWF0aC5hYnMocik8TnVtYmVyLkVQU0lMT047Zm9yKDtyPDA7KXIrPWk7Zm9yKDtyPmk7KXItPWk7cjxOdW1iZXIuRVBTSUxPTiYmKHI9bz8wOmkpLCEwIT09dGhpcy5hQ2xvY2t3aXNlfHxvfHwocj09PWk/cj0taTpyLT1pKTtjb25zdCBhPXRoaXMuYVN0YXJ0QW5nbGUrdCpyO2xldCBzPXRoaXMuYVgrdGhpcy54UmFkaXVzKk1hdGguY29zKGEpLGw9dGhpcy5hWSt0aGlzLnlSYWRpdXMqTWF0aC5zaW4oYSk7aWYoMCE9PXRoaXMuYVJvdGF0aW9uKXtjb25zdCB0PU1hdGguY29zKHRoaXMuYVJvdGF0aW9uKSxlPU1hdGguc2luKHRoaXMuYVJvdGF0aW9uKSxuPXMtdGhpcy5hWCxpPWwtdGhpcy5hWTtzPW4qdC1pKmUrdGhpcy5hWCxsPW4qZStpKnQrdGhpcy5hWX1yZXR1cm4gbi5zZXQocyxsKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuYVg9dC5hWCx0aGlzLmFZPXQuYVksdGhpcy54UmFkaXVzPXQueFJhZGl1cyx0aGlzLnlSYWRpdXM9dC55UmFkaXVzLHRoaXMuYVN0YXJ0QW5nbGU9dC5hU3RhcnRBbmdsZSx0aGlzLmFFbmRBbmdsZT10LmFFbmRBbmdsZSx0aGlzLmFDbG9ja3dpc2U9dC5hQ2xvY2t3aXNlLHRoaXMuYVJvdGF0aW9uPXQuYVJvdGF0aW9uLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC5hWD10aGlzLmFYLHQuYVk9dGhpcy5hWSx0LnhSYWRpdXM9dGhpcy54UmFkaXVzLHQueVJhZGl1cz10aGlzLnlSYWRpdXMsdC5hU3RhcnRBbmdsZT10aGlzLmFTdGFydEFuZ2xlLHQuYUVuZEFuZ2xlPXRoaXMuYUVuZEFuZ2xlLHQuYUNsb2Nrd2lzZT10aGlzLmFDbG9ja3dpc2UsdC5hUm90YXRpb249dGhpcy5hUm90YXRpb24sdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy5hWD10LmFYLHRoaXMuYVk9dC5hWSx0aGlzLnhSYWRpdXM9dC54UmFkaXVzLHRoaXMueVJhZGl1cz10LnlSYWRpdXMsdGhpcy5hU3RhcnRBbmdsZT10LmFTdGFydEFuZ2xlLHRoaXMuYUVuZEFuZ2xlPXQuYUVuZEFuZ2xlLHRoaXMuYUNsb2Nrd2lzZT10LmFDbG9ja3dpc2UsdGhpcy5hUm90YXRpb249dC5hUm90YXRpb24sdGhpc319ZDR0LnByb3RvdHlwZS5pc0VsbGlwc2VDdXJ2ZT0hMDtjbGFzcyBwNHQgZXh0ZW5kcyBkNHR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8pe3N1cGVyKHQsZSxuLG4saSxyLG8pLHRoaXMudHlwZT0iQXJjQ3VydmUifX1mdW5jdGlvbiBmNHQoKXtsZXQgdD0wLGU9MCxuPTAsaT0wO2Z1bmN0aW9uIHIocixvLGEscyl7dD1yLGU9YSxuPS0zKnIrMypvLTIqYS1zLGk9MipyLTIqbythK3N9cmV0dXJue2luaXRDYXRtdWxsUm9tOmZ1bmN0aW9uKHQsZSxuLGksbyl7cihlLG4sbyoobi10KSxvKihpLWUpKX0saW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tOmZ1bmN0aW9uKHQsZSxuLGksbyxhLHMpe2xldCBsPShlLXQpL28tKG4tdCkvKG8rYSkrKG4tZSkvYSxjPShuLWUpL2EtKGktZSkvKGErcykrKGktbikvcztsKj1hLGMqPWEscihlLG4sbCxjKX0sY2FsYzpmdW5jdGlvbihyKXtjb25zdCBvPXIqcjtyZXR1cm4gdCtlKnIrbipvK2kqKG8qcil9fX1wNHQucHJvdG90eXBlLmlzQXJjQ3VydmU9ITA7Y29uc3QgbTR0PW5ldyBDSnQsZzR0PW5ldyBmNHQsXzR0PW5ldyBmNHQseTR0PW5ldyBmNHQ7Y2xhc3MgdjR0IGV4dGVuZHMgaDR0e2NvbnN0cnVjdG9yKHQ9W10sZT0hMSxuPSJjZW50cmlwZXRhbCIsaT0uNSl7c3VwZXIoKSx0aGlzLnR5cGU9IkNhdG11bGxSb21DdXJ2ZTMiLHRoaXMucG9pbnRzPXQsdGhpcy5jbG9zZWQ9ZSx0aGlzLmN1cnZlVHlwZT1uLHRoaXMudGVuc2lvbj1pfWdldFBvaW50KHQsZT1uZXcgQ0p0KXtjb25zdCBuPWUsaT10aGlzLnBvaW50cyxyPWkubGVuZ3RoLG89KHItKHRoaXMuY2xvc2VkPzA6MSkpKnQ7bGV0IGEscyxsPU1hdGguZmxvb3IobyksYz1vLWw7dGhpcy5jbG9zZWQ/bCs9bD4wPzA6KE1hdGguZmxvb3IoTWF0aC5hYnMobCkvcikrMSkqcjowPT09YyYmbD09PXItMSYmKGw9ci0yLGM9MSksdGhpcy5jbG9zZWR8fGw+MD9hPWlbKGwtMSklcl06KG00dC5zdWJWZWN0b3JzKGlbMF0saVsxXSkuYWRkKGlbMF0pLGE9bTR0KTtjb25zdCB1PWlbbCVyXSxoPWlbKGwrMSklcl07aWYodGhpcy5jbG9zZWR8fGwrMjxyP3M9aVsobCsyKSVyXToobTR0LnN1YlZlY3RvcnMoaVtyLTFdLGlbci0yXSkuYWRkKGlbci0xXSkscz1tNHQpLCJjZW50cmlwZXRhbCI9PT10aGlzLmN1cnZlVHlwZXx8ImNob3JkYWwiPT09dGhpcy5jdXJ2ZVR5cGUpe2NvbnN0IHQ9ImNob3JkYWwiPT09dGhpcy5jdXJ2ZVR5cGU/LjU6LjI1O2xldCBlPU1hdGgucG93KGEuZGlzdGFuY2VUb1NxdWFyZWQodSksdCksbj1NYXRoLnBvdyh1LmRpc3RhbmNlVG9TcXVhcmVkKGgpLHQpLGk9TWF0aC5wb3coaC5kaXN0YW5jZVRvU3F1YXJlZChzKSx0KTtuPDFlLTQmJihuPTEpLGU8MWUtNCYmKGU9biksaTwxZS00JiYoaT1uKSxnNHQuaW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tKGEueCx1LngsaC54LHMueCxlLG4saSksXzR0LmluaXROb251bmlmb3JtQ2F0bXVsbFJvbShhLnksdS55LGgueSxzLnksZSxuLGkpLHk0dC5pbml0Tm9udW5pZm9ybUNhdG11bGxSb20oYS56LHUueixoLnoscy56LGUsbixpKX1lbHNlImNhdG11bGxyb20iPT09dGhpcy5jdXJ2ZVR5cGUmJihnNHQuaW5pdENhdG11bGxSb20oYS54LHUueCxoLngscy54LHRoaXMudGVuc2lvbiksXzR0LmluaXRDYXRtdWxsUm9tKGEueSx1LnksaC55LHMueSx0aGlzLnRlbnNpb24pLHk0dC5pbml0Q2F0bXVsbFJvbShhLnosdS56LGgueixzLnosdGhpcy50ZW5zaW9uKSk7cmV0dXJuIG4uc2V0KGc0dC5jYWxjKGMpLF80dC5jYWxjKGMpLHk0dC5jYWxjKGMpKSxufWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLnBvaW50cz1bXTtmb3IobGV0IGU9MCxuPXQucG9pbnRzLmxlbmd0aDtlPG47ZSsrKXRoaXMucG9pbnRzLnB1c2godC5wb2ludHNbZV0uY2xvbmUoKSk7cmV0dXJuIHRoaXMuY2xvc2VkPXQuY2xvc2VkLHRoaXMuY3VydmVUeXBlPXQuY3VydmVUeXBlLHRoaXMudGVuc2lvbj10LnRlbnNpb24sdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5wb2ludHMubGVuZ3RoO2U8bjtlKyspdC5wb2ludHMucHVzaCh0aGlzLnBvaW50c1tlXS50b0FycmF5KCkpO3JldHVybiB0LmNsb3NlZD10aGlzLmNsb3NlZCx0LmN1cnZlVHlwZT10aGlzLmN1cnZlVHlwZSx0LnRlbnNpb249dGhpcy50ZW5zaW9uLHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy5wb2ludHM9W107Zm9yKGxldCBlPTAsbj10LnBvaW50cy5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10LnBvaW50c1tlXTt0aGlzLnBvaW50cy5wdXNoKChuZXcgQ0p0KS5mcm9tQXJyYXkobikpfXJldHVybiB0aGlzLmNsb3NlZD10LmNsb3NlZCx0aGlzLmN1cnZlVHlwZT10LmN1cnZlVHlwZSx0aGlzLnRlbnNpb249dC50ZW5zaW9uLHRoaXN9fWZ1bmN0aW9uIGI0dCh0LGUsbixpLHIpe2NvbnN0IG89LjUqKGktZSksYT0uNSooci1uKSxzPXQqdDtyZXR1cm4oMipuLTIqaStvK2EpKih0KnMpKygtMypuKzMqaS0yKm8tYSkqcytvKnQrbn1mdW5jdGlvbiB4NHQodCxlLG4saSl7cmV0dXJuKGZ1bmN0aW9uIHIodCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gbipuKmV9KSh0LGUpKyhmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIDIqKDEtdCkqdCplfSkodCxuKSsoZnVuY3Rpb24gYSh0LGUpe3JldHVybiB0KnQqZX0pKHQsaSl9ZnVuY3Rpb24gdzR0KHQsZSxuLGkscil7cmV0dXJuKGZ1bmN0aW9uIG8odCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gbipuKm4qZX0pKHQsZSkrKGZ1bmN0aW9uIGEodCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gMypuKm4qdCplfSkodCxuKSsoZnVuY3Rpb24gcyh0LGUpe3JldHVybiAzKigxLXQpKnQqdCplfSkodCxpKSsoZnVuY3Rpb24gbCh0LGUpe3JldHVybiB0KnQqdCplfSkodCxyKX12NHQucHJvdG90eXBlLmlzQ2F0bXVsbFJvbUN1cnZlMz0hMDtjbGFzcyBTNHQgZXh0ZW5kcyBoNHR7Y29uc3RydWN0b3IodD1uZXcgbUp0LGU9bmV3IG1KdCxuPW5ldyBtSnQsaT1uZXcgbUp0KXtzdXBlcigpLHRoaXMudHlwZT0iQ3ViaWNCZXppZXJDdXJ2ZSIsdGhpcy52MD10LHRoaXMudjE9ZSx0aGlzLnYyPW4sdGhpcy52Mz1pfWdldFBvaW50KHQsZT1uZXcgbUp0KXtjb25zdCBuPWUsaT10aGlzLnYwLHI9dGhpcy52MSxvPXRoaXMudjIsYT10aGlzLnYzO3JldHVybiBuLnNldCh3NHQodCxpLngsci54LG8ueCxhLngpLHc0dCh0LGkueSxyLnksby55LGEueSkpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzLnYzLmNvcHkodC52MyksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0LnYzPXRoaXMudjMudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXMudjMuZnJvbUFycmF5KHQudjMpLHRoaXN9fVM0dC5wcm90b3R5cGUuaXNDdWJpY0JlemllckN1cnZlPSEwO2NsYXNzIE00dCBleHRlbmRzIGg0dHtjb25zdHJ1Y3Rvcih0PW5ldyBDSnQsZT1uZXcgQ0p0LG49bmV3IENKdCxpPW5ldyBDSnQpe3N1cGVyKCksdGhpcy50eXBlPSJDdWJpY0JlemllckN1cnZlMyIsdGhpcy52MD10LHRoaXMudjE9ZSx0aGlzLnYyPW4sdGhpcy52Mz1pfWdldFBvaW50KHQsZT1uZXcgQ0p0KXtjb25zdCBuPWUsaT10aGlzLnYwLHI9dGhpcy52MSxvPXRoaXMudjIsYT10aGlzLnYzO3JldHVybiBuLnNldCh3NHQodCxpLngsci54LG8ueCxhLngpLHc0dCh0LGkueSxyLnksby55LGEueSksdzR0KHQsaS56LHIueixvLnosYS56KSksbn1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjAuY29weSh0LnYwKSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXMudjMuY29weSh0LnYzKSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHQudjM9dGhpcy52My50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MC5mcm9tQXJyYXkodC52MCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpcy52My5mcm9tQXJyYXkodC52MyksdGhpc319TTR0LnByb3RvdHlwZS5pc0N1YmljQmV6aWVyQ3VydmUzPSEwO2NsYXNzIEU0dCBleHRlbmRzIGg0dHtjb25zdHJ1Y3Rvcih0PW5ldyBtSnQsZT1uZXcgbUp0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUN1cnZlIix0aGlzLnYxPXQsdGhpcy52Mj1lfWdldFBvaW50KHQsZT1uZXcgbUp0KXtjb25zdCBuPWU7cmV0dXJuIDE9PT10P24uY29weSh0aGlzLnYyKToobi5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKSxuLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLnYxKSksbn1nZXRQb2ludEF0KHQsZSl7cmV0dXJuIHRoaXMuZ2V0UG9pbnQodCxlKX1nZXRUYW5nZW50KHQsZSl7Y29uc3Qgbj1lfHxuZXcgbUp0O3JldHVybiBuLmNvcHkodGhpcy52Mikuc3ViKHRoaXMudjEpLm5vcm1hbGl6ZSgpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fUU0dC5wcm90b3R5cGUuaXNMaW5lQ3VydmU9ITA7Y2xhc3MgVDR0IGV4dGVuZHMgaDR0e2NvbnN0cnVjdG9yKHQ9bmV3IENKdCxlPW5ldyBDSnQpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lQ3VydmUzIix0aGlzLmlzTGluZUN1cnZlMz0hMCx0aGlzLnYxPXQsdGhpcy52Mj1lfWdldFBvaW50KHQsZT1uZXcgQ0p0KXtjb25zdCBuPWU7cmV0dXJuIDE9PT10P24uY29weSh0aGlzLnYyKToobi5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKSxuLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLnYxKSksbn1nZXRQb2ludEF0KHQsZSl7cmV0dXJuIHRoaXMuZ2V0UG9pbnQodCxlKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpc319Y2xhc3MgQzR0IGV4dGVuZHMgaDR0e2NvbnN0cnVjdG9yKHQ9bmV3IG1KdCxlPW5ldyBtSnQsbj1uZXcgbUp0KXtzdXBlcigpLHRoaXMudHlwZT0iUXVhZHJhdGljQmV6aWVyQ3VydmUiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1ufWdldFBvaW50KHQsZT1uZXcgbUp0KXtjb25zdCBuPWUsaT10aGlzLnYwLHI9dGhpcy52MSxvPXRoaXMudjI7cmV0dXJuIG4uc2V0KHg0dCh0LGkueCxyLngsby54KSx4NHQodCxpLnksci55LG8ueSkpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fUM0dC5wcm90b3R5cGUuaXNRdWFkcmF0aWNCZXppZXJDdXJ2ZT0hMDtjbGFzcyBBNHQgZXh0ZW5kcyBoNHR7Y29uc3RydWN0b3IodD1uZXcgQ0p0LGU9bmV3IENKdCxuPW5ldyBDSnQpe3N1cGVyKCksdGhpcy50eXBlPSJRdWFkcmF0aWNCZXppZXJDdXJ2ZTMiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1ufWdldFBvaW50KHQsZT1uZXcgQ0p0KXtjb25zdCBuPWUsaT10aGlzLnYwLHI9dGhpcy52MSxvPXRoaXMudjI7cmV0dXJuIG4uc2V0KHg0dCh0LGkueCxyLngsby54KSx4NHQodCxpLnksci55LG8ueSkseDR0KHQsaS56LHIueixvLnopKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYwLmZyb21BcnJheSh0LnYwKSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzfX1BNHQucHJvdG90eXBlLmlzUXVhZHJhdGljQmV6aWVyQ3VydmUzPSEwO2NsYXNzIGs0dCBleHRlbmRzIGg0dHtjb25zdHJ1Y3Rvcih0PVtdKXtzdXBlcigpLHRoaXMudHlwZT0iU3BsaW5lQ3VydmUiLHRoaXMucG9pbnRzPXR9Z2V0UG9pbnQodCxlPW5ldyBtSnQpe2NvbnN0IG49ZSxpPXRoaXMucG9pbnRzLHI9KGkubGVuZ3RoLTEpKnQsbz1NYXRoLmZsb29yKHIpLGE9ci1vLHM9aVswPT09bz9vOm8tMV0sbD1pW29dLGM9aVtvPmkubGVuZ3RoLTI/aS5sZW5ndGgtMTpvKzFdLHU9aVtvPmkubGVuZ3RoLTM/aS5sZW5ndGgtMTpvKzJdO3JldHVybiBuLnNldChiNHQoYSxzLngsbC54LGMueCx1LngpLGI0dChhLHMueSxsLnksYy55LHUueSkpLG59Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspdGhpcy5wb2ludHMucHVzaCh0LnBvaW50c1tlXS5jbG9uZSgpKTtyZXR1cm4gdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5wb2ludHMubGVuZ3RoO2U8bjtlKyspdC5wb2ludHMucHVzaCh0aGlzLnBvaW50c1tlXS50b0FycmF5KCkpO3JldHVybiB0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dC5wb2ludHNbZV07dGhpcy5wb2ludHMucHVzaCgobmV3IG1KdCkuZnJvbUFycmF5KG4pKX1yZXR1cm4gdGhpc319azR0LnByb3RvdHlwZS5pc1NwbGluZUN1cnZlPSEwO3ZhciBMNHQ9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQXJjQ3VydmU6cDR0LENhdG11bGxSb21DdXJ2ZTM6djR0LEN1YmljQmV6aWVyQ3VydmU6UzR0LEN1YmljQmV6aWVyQ3VydmUzOk00dCxFbGxpcHNlQ3VydmU6ZDR0LExpbmVDdXJ2ZTpFNHQsTGluZUN1cnZlMzpUNHQsUXVhZHJhdGljQmV6aWVyQ3VydmU6QzR0LFF1YWRyYXRpY0JlemllckN1cnZlMzpBNHQsU3BsaW5lQ3VydmU6azR0fSk7ZnVuY3Rpb24gUDR0KHQsZSxuLGkscil7bGV0IG8sYTtpZihyPT09KGZ1bmN0aW9uIHModCxlLG4saSl7bGV0IHI9MDtmb3IobGV0IG89ZSxhPW4taTtvPG47bys9aSlyKz0odFthXS10W29dKSoodFtvKzFdK3RbYSsxXSksYT1vO3JldHVybiByfSkodCxlLG4saSk+MClmb3Iobz1lO288bjtvKz1pKWE9SjR0KG8sdFtvXSx0W28rMV0sYSk7ZWxzZSBmb3Iobz1uLWk7bz49ZTtvLT1pKWE9SjR0KG8sdFtvXSx0W28rMV0sYSk7cmV0dXJuIGEmJnE0dChhLGEubmV4dCkmJihRNHQoYSksYT1hLm5leHQpLGF9ZnVuY3Rpb24gTjR0KHQsZSl7aWYoIXQpcmV0dXJuIHQ7ZXx8KGU9dCk7bGV0IG4saT10O2Rve2lmKG49ITEsaS5zdGVpbmVyfHwhcTR0KGksaS5uZXh0KSYmMCE9PVc0dChpLnByZXYsaSxpLm5leHQpKWk9aS5uZXh0O2Vsc2V7aWYoUTR0KGkpLGk9ZT1pLnByZXYsaT09PWkubmV4dClicmVhaztuPSEwfX13aGlsZShufHxpIT09ZSk7cmV0dXJuIGV9ZnVuY3Rpb24gSTR0KHQsZSxuLGkscixvLGEpe2lmKCF0KXJldHVybjshYSYmbyYmKGZ1bmN0aW9uIHModCxlLG4saSl7bGV0IHI9dDtkb3tudWxsPT09ci56JiYoci56PVY0dChyLngsci55LGUsbixpKSksci5wcmV2Wj1yLnByZXYsci5uZXh0Wj1yLm5leHQscj1yLm5leHR9d2hpbGUociE9PXQpO3IucHJldloubmV4dFo9bnVsbCxyLnByZXZaPW51bGwsKGZ1bmN0aW9uIG8odCl7bGV0IGUsbixpLHIsbyxhLHMsbCxjPTE7ZG97Zm9yKG49dCx0PW51bGwsbz1udWxsLGE9MDtuOyl7Zm9yKGErKyxpPW4scz0wLGU9MDtlPGMmJihzKyssaT1pLm5leHRaLGkpO2UrKyk7Zm9yKGw9YztzPjB8fGw+MCYmaTspMCE9PXMmJigwPT09bHx8IWl8fG4uejw9aS56KT8ocj1uLG49bi5uZXh0WixzLS0pOihyPWksaT1pLm5leHRaLGwtLSksbz9vLm5leHRaPXI6dD1yLHIucHJldlo9byxvPXI7bj1pfW8ubmV4dFo9bnVsbCxjKj0yfXdoaWxlKGE+MSl9KShyKX0pKHQsaSxyLG8pO2xldCBsLGMsdT10O2Zvcig7dC5wcmV2IT09dC5uZXh0OylpZihsPXQucHJldixjPXQubmV4dCxvP080dCh0LGkscixvKTpSNHQodCkpZS5wdXNoKGwuaS9uKSxlLnB1c2godC5pL24pLGUucHVzaChjLmkvbiksUTR0KHQpLHQ9Yy5uZXh0LHU9Yy5uZXh0O2Vsc2UgaWYoKHQ9Yyk9PT11KXthPzE9PT1hP0k0dCh0PXo0dChONHQodCksZSxuKSxlLG4saSxyLG8sMik6Mj09PWEmJkQ0dCh0LGUsbixpLHIsbyk6STR0KE40dCh0KSxlLG4saSxyLG8sMSk7YnJlYWt9fWZ1bmN0aW9uIFI0dCh0KXtjb25zdCBlPXQucHJldixuPXQsaT10Lm5leHQ7aWYoVzR0KGUsbixpKT49MClyZXR1cm4hMTtsZXQgcj10Lm5leHQubmV4dDtmb3IoO3IhPT10LnByZXY7KXtpZihqNHQoZS54LGUueSxuLngsbi55LGkueCxpLnksci54LHIueSkmJlc0dChyLnByZXYscixyLm5leHQpPj0wKXJldHVybiExO3I9ci5uZXh0fXJldHVybiEwfWZ1bmN0aW9uIE80dCh0LGUsbixpKXtjb25zdCByPXQucHJldixvPXQsYT10Lm5leHQ7aWYoVzR0KHIsbyxhKT49MClyZXR1cm4hMTtjb25zdCBzPXIueD5vLng/ci54PmEueD9yLng6YS54Om8ueD5hLng/by54OmEueCxsPXIueT5vLnk/ci55PmEueT9yLnk6YS55Om8ueT5hLnk/by55OmEueSxjPVY0dChyLng8by54P3IueDxhLng/ci54OmEueDpvLng8YS54P28ueDphLngsci55PG8ueT9yLnk8YS55P3IueTphLnk6by55PGEueT9vLnk6YS55LGUsbixpKSx1PVY0dChzLGwsZSxuLGkpO2xldCBoPXQucHJldlosZD10Lm5leHRaO2Zvcig7aCYmaC56Pj1jJiZkJiZkLno8PXU7KXtpZihoIT09dC5wcmV2JiZoIT09dC5uZXh0JiZqNHQoci54LHIueSxvLngsby55LGEueCxhLnksaC54LGgueSkmJlc0dChoLnByZXYsaCxoLm5leHQpPj0wKXJldHVybiExO2lmKGg9aC5wcmV2WixkIT09dC5wcmV2JiZkIT09dC5uZXh0JiZqNHQoci54LHIueSxvLngsby55LGEueCxhLnksZC54LGQueSkmJlc0dChkLnByZXYsZCxkLm5leHQpPj0wKXJldHVybiExO2Q9ZC5uZXh0Wn1mb3IoO2gmJmguej49Yzspe2lmKGghPT10LnByZXYmJmghPT10Lm5leHQmJmo0dChyLngsci55LG8ueCxvLnksYS54LGEueSxoLngsaC55KSYmVzR0KGgucHJldixoLGgubmV4dCk+PTApcmV0dXJuITE7aD1oLnByZXZafWZvcig7ZCYmZC56PD11Oyl7aWYoZCE9PXQucHJldiYmZCE9PXQubmV4dCYmajR0KHIueCxyLnksby54LG8ueSxhLngsYS55LGQueCxkLnkpJiZXNHQoZC5wcmV2LGQsZC5uZXh0KT49MClyZXR1cm4hMTtkPWQubmV4dFp9cmV0dXJuITB9ZnVuY3Rpb24gejR0KHQsZSxuKXtsZXQgaT10O2Rve2NvbnN0IHI9aS5wcmV2LG89aS5uZXh0Lm5leHQ7IXE0dChyLG8pJiZZNHQocixpLGkubmV4dCxvKSYmSzR0KHIsbykmJks0dChvLHIpJiYoZS5wdXNoKHIuaS9uKSxlLnB1c2goaS5pL24pLGUucHVzaChvLmkvbiksUTR0KGkpLFE0dChpLm5leHQpLGk9dD1vKSxpPWkubmV4dH13aGlsZShpIT09dCk7cmV0dXJuIE40dChpKX1mdW5jdGlvbiBENHQodCxlLG4saSxyLG8pe2xldCBhPXQ7ZG97bGV0IHQ9YS5uZXh0Lm5leHQ7Zm9yKDt0IT09YS5wcmV2Oyl7aWYoYS5pIT09dC5pJiZHNHQoYSx0KSl7bGV0IHM9WjR0KGEsdCk7cmV0dXJuIGE9TjR0KGEsYS5uZXh0KSxzPU40dChzLHMubmV4dCksSTR0KGEsZSxuLGkscixvKSx2b2lkIEk0dChzLGUsbixpLHIsbyl9dD10Lm5leHR9YT1hLm5leHR9d2hpbGUoYSE9PXQpfWZ1bmN0aW9uIEI0dCh0LGUpe3JldHVybiB0LngtZS54fWZ1bmN0aW9uIEg0dCh0LGUpe2lmKGU9KGZ1bmN0aW9uIG4odCxlKXtsZXQgbj1lO2NvbnN0IGk9dC54LHI9dC55O2xldCBvLGE9LTEvMDtkb3tpZihyPD1uLnkmJnI+PW4ubmV4dC55JiZuLm5leHQueSE9PW4ueSl7Y29uc3QgdD1uLngrKHItbi55KSoobi5uZXh0Lngtbi54KS8obi5uZXh0Lnktbi55KTtpZih0PD1pJiZ0PmEpe2lmKGE9dCx0PT09aSl7aWYocj09PW4ueSlyZXR1cm4gbjtpZihyPT09bi5uZXh0LnkpcmV0dXJuIG4ubmV4dH1vPW4ueDxuLm5leHQueD9uOm4ubmV4dH19bj1uLm5leHR9d2hpbGUobiE9PWUpO2lmKCFvKXJldHVybiBudWxsO2lmKGk9PT1hKXJldHVybiBvO2NvbnN0IHM9byxsPW8ueCxjPW8ueTtsZXQgdSxoPTEvMDtuPW87ZG97aT49bi54JiZuLng+PWwmJmkhPT1uLngmJmo0dChyPGM/aTphLHIsbCxjLHI8Yz9hOmkscixuLngsbi55KSYmKHU9TWF0aC5hYnMoci1uLnkpLyhpLW4ueCksSzR0KG4sdCkmJih1PGh8fHU9PT1oJiYobi54Pm8ueHx8bi54PT09by54JiZGNHQobyxuKSkpJiYobz1uLGg9dSkpLG49bi5uZXh0fXdoaWxlKG4hPT1zKTtyZXR1cm4gb30pKHQsZSkpe2NvbnN0IG49WjR0KGUsdCk7TjR0KGUsZS5uZXh0KSxONHQobixuLm5leHQpfX1mdW5jdGlvbiBGNHQodCxlKXtyZXR1cm4gVzR0KHQucHJldix0LGUucHJldik8MCYmVzR0KGUubmV4dCx0LHQubmV4dCk8MH1mdW5jdGlvbiBWNHQodCxlLG4saSxyKXtyZXR1cm4odD0xNDMxNjU1NzY1JigodD04NTg5OTM0NTkmKCh0PTI1MjY0NTEzNSYoKHQ9MTY3MTE5MzUmKCh0PTMyNzY3Kih0LW4pKnIpfHQ8PDgpKXx0PDw0KSl8dDw8MikpfHQ8PDEpKXwoZT0xNDMxNjU1NzY1JigoZT04NTg5OTM0NTkmKChlPTI1MjY0NTEzNSYoKGU9MTY3MTE5MzUmKChlPTMyNzY3KihlLWkpKnIpfGU8PDgpKXxlPDw0KSl8ZTw8MikpfGU8PDEpKTw8MX1mdW5jdGlvbiBVNHQodCl7bGV0IGU9dCxuPXQ7ZG97KGUueDxuLnh8fGUueD09PW4ueCYmZS55PG4ueSkmJihuPWUpLGU9ZS5uZXh0fXdoaWxlKGUhPT10KTtyZXR1cm4gbn1mdW5jdGlvbiBqNHQodCxlLG4saSxyLG8sYSxzKXtyZXR1cm4oci1hKSooZS1zKS0odC1hKSooby1zKT49MCYmKHQtYSkqKGktcyktKG4tYSkqKGUtcyk+PTAmJihuLWEpKihvLXMpLShyLWEpKihpLXMpPj0wfWZ1bmN0aW9uIEc0dCh0LGUpe3JldHVybiB0Lm5leHQuaSE9PWUuaSYmdC5wcmV2LmkhPT1lLmkmJiEoZnVuY3Rpb24gbih0LGUpe2xldCBuPXQ7ZG97aWYobi5pIT09dC5pJiZuLm5leHQuaSE9PXQuaSYmbi5pIT09ZS5pJiZuLm5leHQuaSE9PWUuaSYmWTR0KG4sbi5uZXh0LHQsZSkpcmV0dXJuITA7bj1uLm5leHR9d2hpbGUobiE9PXQpO3JldHVybiExfSkodCxlKSYmKEs0dCh0LGUpJiZLNHQoZSx0KSYmKGZ1bmN0aW9uIGkodCxlKXtsZXQgbj10LGk9ITE7Y29uc3Qgcj0odC54K2UueCkvMixvPSh0LnkrZS55KS8yO2Rve24ueT5vIT1uLm5leHQueT5vJiZuLm5leHQueSE9PW4ueSYmcjwobi5uZXh0Lngtbi54KSooby1uLnkpLyhuLm5leHQueS1uLnkpK24ueCYmKGk9IWkpLG49bi5uZXh0fXdoaWxlKG4hPT10KTtyZXR1cm4gaX0pKHQsZSkmJihXNHQodC5wcmV2LHQsZS5wcmV2KXx8VzR0KHQsZS5wcmV2LGUpKXx8cTR0KHQsZSkmJlc0dCh0LnByZXYsdCx0Lm5leHQpPjAmJlc0dChlLnByZXYsZSxlLm5leHQpPjApfWZ1bmN0aW9uIFc0dCh0LGUsbil7cmV0dXJuKGUueS10LnkpKihuLngtZS54KS0oZS54LXQueCkqKG4ueS1lLnkpfWZ1bmN0aW9uIHE0dCh0LGUpe3JldHVybiB0Lng9PT1lLngmJnQueT09PWUueX1mdW5jdGlvbiBZNHQodCxlLG4saSl7Y29uc3Qgcj0kNHQoVzR0KHQsZSxuKSksbz0kNHQoVzR0KHQsZSxpKSksYT0kNHQoVzR0KG4saSx0KSkscz0kNHQoVzR0KG4saSxlKSk7cmV0dXJuIHIhPT1vJiZhIT09c3x8ISgwIT09cnx8IVg0dCh0LG4sZSkpfHwhKDAhPT1vfHwhWDR0KHQsaSxlKSl8fCEoMCE9PWF8fCFYNHQobix0LGkpKXx8ISgwIT09c3x8IVg0dChuLGUsaSkpfWZ1bmN0aW9uIFg0dCh0LGUsbil7cmV0dXJuIGUueDw9TWF0aC5tYXgodC54LG4ueCkmJmUueD49TWF0aC5taW4odC54LG4ueCkmJmUueTw9TWF0aC5tYXgodC55LG4ueSkmJmUueT49TWF0aC5taW4odC55LG4ueSl9ZnVuY3Rpb24gJDR0KHQpe3JldHVybiB0PjA/MTp0PDA/LTE6MH1mdW5jdGlvbiBLNHQodCxlKXtyZXR1cm4gVzR0KHQucHJldix0LHQubmV4dCk8MD9XNHQodCxlLHQubmV4dCk+PTAmJlc0dCh0LHQucHJldixlKT49MDpXNHQodCxlLHQucHJldik8MHx8VzR0KHQsdC5uZXh0LGUpPDB9ZnVuY3Rpb24gWjR0KHQsZSl7Y29uc3Qgbj1uZXcgdDZ0KHQuaSx0LngsdC55KSxpPW5ldyB0NnQoZS5pLGUueCxlLnkpLHI9dC5uZXh0LG89ZS5wcmV2O3JldHVybiB0Lm5leHQ9ZSxlLnByZXY9dCxuLm5leHQ9cixyLnByZXY9bixpLm5leHQ9bixuLnByZXY9aSxvLm5leHQ9aSxpLnByZXY9byxpfWZ1bmN0aW9uIEo0dCh0LGUsbixpKXtjb25zdCByPW5ldyB0NnQodCxlLG4pO3JldHVybiBpPyhyLm5leHQ9aS5uZXh0LHIucHJldj1pLGkubmV4dC5wcmV2PXIsaS5uZXh0PXIpOihyLnByZXY9cixyLm5leHQ9cikscn1mdW5jdGlvbiBRNHQodCl7dC5uZXh0LnByZXY9dC5wcmV2LHQucHJldi5uZXh0PXQubmV4dCx0LnByZXZaJiYodC5wcmV2Wi5uZXh0Wj10Lm5leHRaKSx0Lm5leHRaJiYodC5uZXh0Wi5wcmV2Wj10LnByZXZaKX1mdW5jdGlvbiB0NnQodCxlLG4pe3RoaXMuaT10LHRoaXMueD1lLHRoaXMueT1uLHRoaXMucHJldj1udWxsLHRoaXMubmV4dD1udWxsLHRoaXMuej1udWxsLHRoaXMucHJldlo9bnVsbCx0aGlzLm5leHRaPW51bGwsdGhpcy5zdGVpbmVyPSExfWNsYXNzIGU2dHtzdGF0aWMgYXJlYSh0KXtjb25zdCBlPXQubGVuZ3RoO2xldCBuPTA7Zm9yKGxldCBpPWUtMSxyPTA7cjxlO2k9cisrKW4rPXRbaV0ueCp0W3JdLnktdFtyXS54KnRbaV0ueTtyZXR1cm4uNSpufXN0YXRpYyBpc0Nsb2NrV2lzZSh0KXtyZXR1cm4gZTZ0LmFyZWEodCk8MH1zdGF0aWMgdHJpYW5ndWxhdGVTaGFwZSh0LGUpe2NvbnN0IG49W10saT1bXSxyPVtdO242dCh0KSxpNnQobix0KTtsZXQgbz10Lmxlbmd0aDtlLmZvckVhY2gobjZ0KTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpLnB1c2gobyksbys9ZVt0XS5sZW5ndGgsaTZ0KG4sZVt0XSk7Y29uc3QgYT0oZnVuY3Rpb24odCxlLG49Mil7Y29uc3QgaT1lJiZlLmxlbmd0aCxyPWk/ZVswXSpuOnQubGVuZ3RoO2xldCBvPVA0dCh0LDAscixuLCEwKTtjb25zdCBhPVtdO2lmKCFvfHxvLm5leHQ9PT1vLnByZXYpcmV0dXJuIGE7bGV0IHMsbCxjLHUsaCxkLHA7aWYoaSYmKG89KGZ1bmN0aW9uIGYodCxlLG4saSl7Y29uc3Qgcj1bXTtsZXQgbyxhLHMsbCxjO2ZvcihvPTAsYT1lLmxlbmd0aDtvPGE7bysrKXM9ZVtvXSppLGw9bzxhLTE/ZVtvKzFdKmk6dC5sZW5ndGgsYz1QNHQodCxzLGwsaSwhMSksYz09PWMubmV4dCYmKGMuc3RlaW5lcj0hMCksci5wdXNoKFU0dChjKSk7Zm9yKHIuc29ydChCNHQpLG89MDtvPHIubGVuZ3RoO28rKylINHQocltvXSxuKSxuPU40dChuLG4ubmV4dCk7cmV0dXJuIG59KSh0LGUsbyxuKSksdC5sZW5ndGg+ODAqbil7cz1jPXRbMF0sbD11PXRbMV07Zm9yKGxldCBlPW47ZTxyO2UrPW4paD10W2VdLGQ9dFtlKzFdLGg8cyYmKHM9aCksZDxsJiYobD1kKSxoPmMmJihjPWgpLGQ+dSYmKHU9ZCk7cD1NYXRoLm1heChjLXMsdS1sKSxwPTAhPT1wPzEvcDowfXJldHVybiBJNHQobyxhLG4scyxsLHApLGF9KShuLGkpO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7dCs9MylyLnB1c2goYS5zbGljZSh0LHQrMykpO3JldHVybiByfX1mdW5jdGlvbiBuNnQodCl7Y29uc3QgZT10Lmxlbmd0aDtlPjImJnRbZS0xXS5lcXVhbHModFswXSkmJnQucG9wKCl9ZnVuY3Rpb24gaTZ0KHQsZSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdC5wdXNoKGVbbl0ueCksdC5wdXNoKGVbbl0ueSl9Y2xhc3MgcjZ0IGV4dGVuZHMgYjF0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLnR5cGU9IkV4dHJ1ZGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtzaGFwZXM6dCxvcHRpb25zOmV9LHQ9QXJyYXkuaXNBcnJheSh0KT90Olt0XTtjb25zdCBuPXRoaXMsaT1bXSxyPVtdO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKylvKHRbZV0pO2Z1bmN0aW9uIG8odCl7Y29uc3Qgbz1bXSxhPXZvaWQgMCE9PWUuY3VydmVTZWdtZW50cz9lLmN1cnZlU2VnbWVudHM6MTIscz12b2lkIDAhPT1lLnN0ZXBzP2Uuc3RlcHM6MTtsZXQgbD12b2lkIDAhPT1lLmRlcHRoP2UuZGVwdGg6MTAwLGM9dm9pZCAwPT09ZS5iZXZlbEVuYWJsZWR8fGUuYmV2ZWxFbmFibGVkLHU9dm9pZCAwIT09ZS5iZXZlbFRoaWNrbmVzcz9lLmJldmVsVGhpY2tuZXNzOjYsaD12b2lkIDAhPT1lLmJldmVsU2l6ZT9lLmJldmVsU2l6ZTp1LTIsZD12b2lkIDAhPT1lLmJldmVsT2Zmc2V0P2UuYmV2ZWxPZmZzZXQ6MCxwPXZvaWQgMCE9PWUuYmV2ZWxTZWdtZW50cz9lLmJldmVsU2VnbWVudHM6Mztjb25zdCBmPWUuZXh0cnVkZVBhdGgsbT12b2lkIDAhPT1lLlVWR2VuZXJhdG9yP2UuVVZHZW5lcmF0b3I6bzZ0O3ZvaWQgMCE9PWUuYW1vdW50JiYoY29uc29sZS53YXJuKCJUSFJFRS5FeHRydWRlQnVmZmVyR2VvbWV0cnk6IGFtb3VudCBoYXMgYmVlbiByZW5hbWVkIHRvIGRlcHRoLiIpLGw9ZS5hbW91bnQpO2xldCBnLF8seSx2LGIseD0hMTtmJiYoZz1mLmdldFNwYWNlZFBvaW50cyhzKSx4PSEwLGM9ITEsXz1mLmNvbXB1dGVGcmVuZXRGcmFtZXMocywhMSkseT1uZXcgQ0p0LHY9bmV3IENKdCxiPW5ldyBDSnQpLGN8fChwPTAsdT0wLGg9MCxkPTApO2NvbnN0IHc9dC5leHRyYWN0UG9pbnRzKGEpO2xldCBTPXcuc2hhcGU7Y29uc3QgTT13LmhvbGVzO2lmKCFlNnQuaXNDbG9ja1dpc2UoUykpe1M9Uy5yZXZlcnNlKCk7Zm9yKGxldCB0PTAsZT1NLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPU1bdF07ZTZ0LmlzQ2xvY2tXaXNlKGUpJiYoTVt0XT1lLnJldmVyc2UoKSl9fWNvbnN0IEU9ZTZ0LnRyaWFuZ3VsYXRlU2hhcGUoUyxNKSxUPVM7Zm9yKGxldCB0PTAsZT1NLmxlbmd0aDt0PGU7dCsrKVM9Uy5jb25jYXQoTVt0XSk7ZnVuY3Rpb24gQyh0LGUsbil7cmV0dXJuIGV8fGNvbnNvbGUuZXJyb3IoIlRIUkVFLkV4dHJ1ZGVHZW9tZXRyeTogdmVjIGRvZXMgbm90IGV4aXN0IiksZS5jbG9uZSgpLm11bHRpcGx5U2NhbGFyKG4pLmFkZCh0KX1jb25zdCBBPVMubGVuZ3RoLGs9RS5sZW5ndGg7ZnVuY3Rpb24gTCh0LGUsbil7bGV0IGkscixvO2NvbnN0IGE9dC54LWUueCxzPXQueS1lLnksbD1uLngtdC54LGM9bi55LXQueSx1PWEqYStzKnM7aWYoTWF0aC5hYnMoYSpjLXMqbCk+TnVtYmVyLkVQU0lMT04pe2NvbnN0IGg9TWF0aC5zcXJ0KHUpLGQ9TWF0aC5zcXJ0KGwqbCtjKmMpLHA9ZS54LXMvaCxmPWUueSthL2gsbT0oKG4ueC1jL2QtcCkqYy0obi55K2wvZC1mKSpsKS8oYSpjLXMqbCk7aT1wK2EqbS10Lngscj1mK3MqbS10Lnk7Y29uc3QgZz1pKmkrcipyO2lmKGc8PTIpcmV0dXJuIG5ldyBtSnQoaSxyKTtvPU1hdGguc3FydChnLzIpfWVsc2V7bGV0IHQ9ITE7YT5OdW1iZXIuRVBTSUxPTj9sPk51bWJlci5FUFNJTE9OJiYodD0hMCk6YTwtTnVtYmVyLkVQU0lMT04/bDwtTnVtYmVyLkVQU0lMT04mJih0PSEwKTpNYXRoLnNpZ24ocyk9PT1NYXRoLnNpZ24oYykmJih0PSEwKSx0PyhpPS1zLHI9YSxvPU1hdGguc3FydCh1KSk6KGk9YSxyPXMsbz1NYXRoLnNxcnQodS8yKSl9cmV0dXJuIG5ldyBtSnQoaS9vLHIvbyl9Y29uc3QgUD1bXTtmb3IobGV0IHQ9MCxlPVQubGVuZ3RoLG49ZS0xLGk9dCsxO3Q8ZTt0KyssbisrLGkrKyluPT09ZSYmKG49MCksaT09PWUmJihpPTApLFBbdF09TChUW3RdLFRbbl0sVFtpXSk7Y29uc3QgTj1bXTtsZXQgSSxSPVAuY29uY2F0KCk7Zm9yKGxldCB0PTAsZT1NLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPU1bdF07ST1bXTtmb3IobGV0IHQ9MCxuPWUubGVuZ3RoLGk9bi0xLHI9dCsxO3Q8bjt0KyssaSsrLHIrKylpPT09biYmKGk9MCkscj09PW4mJihyPTApLElbdF09TChlW3RdLGVbaV0sZVtyXSk7Ti5wdXNoKEkpLFI9Ui5jb25jYXQoSSl9Zm9yKGxldCB0PTA7dDxwO3QrKyl7Y29uc3QgZT10L3Asbj11Kk1hdGguY29zKGUqTWF0aC5QSS8yKSxpPWgqTWF0aC5zaW4oZSpNYXRoLlBJLzIpK2Q7Zm9yKGxldCB0PTAsZT1ULmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPUMoVFt0XSxQW3RdLGkpO0QoZS54LGUueSwtbil9Zm9yKGxldCB0PTAsZT1NLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPU1bdF07ST1OW3RdO2ZvcihsZXQgdD0wLHI9ZS5sZW5ndGg7dDxyO3QrKyl7Y29uc3Qgcj1DKGVbdF0sSVt0XSxpKTtEKHIueCxyLnksLW4pfX19Y29uc3QgTz1oK2Q7Zm9yKGxldCB0PTA7dDxBO3QrKyl7Y29uc3QgZT1jP0MoU1t0XSxSW3RdLE8pOlNbdF07eD8odi5jb3B5KF8ubm9ybWFsc1swXSkubXVsdGlwbHlTY2FsYXIoZS54KSx5LmNvcHkoXy5iaW5vcm1hbHNbMF0pLm11bHRpcGx5U2NhbGFyKGUueSksYi5jb3B5KGdbMF0pLmFkZCh2KS5hZGQoeSksRChiLngsYi55LGIueikpOkQoZS54LGUueSwwKX1mb3IobGV0IHQ9MTt0PD1zO3QrKylmb3IobGV0IGU9MDtlPEE7ZSsrKXtjb25zdCBuPWM/QyhTW2VdLFJbZV0sTyk6U1tlXTt4Pyh2LmNvcHkoXy5ub3JtYWxzW3RdKS5tdWx0aXBseVNjYWxhcihuLngpLHkuY29weShfLmJpbm9ybWFsc1t0XSkubXVsdGlwbHlTY2FsYXIobi55KSxiLmNvcHkoZ1t0XSkuYWRkKHYpLmFkZCh5KSxEKGIueCxiLnksYi56KSk6RChuLngsbi55LGwvcyp0KX1mb3IobGV0IHQ9cC0xO3Q+PTA7dC0tKXtjb25zdCBlPXQvcCxuPXUqTWF0aC5jb3MoZSpNYXRoLlBJLzIpLGk9aCpNYXRoLnNpbihlKk1hdGguUEkvMikrZDtmb3IobGV0IHQ9MCxlPVQubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9QyhUW3RdLFBbdF0saSk7RChlLngsZS55LGwrbil9Zm9yKGxldCB0PTAsZT1NLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPU1bdF07ST1OW3RdO2ZvcihsZXQgdD0wLHI9ZS5sZW5ndGg7dDxyO3QrKyl7Y29uc3Qgcj1DKGVbdF0sSVt0XSxpKTt4P0Qoci54LHIueStnW3MtMV0ueSxnW3MtMV0ueCtuKTpEKHIueCxyLnksbCtuKX19fWZ1bmN0aW9uIHoodCxlKXtsZXQgbj10Lmxlbmd0aDtmb3IoOy0tbj49MDspe2NvbnN0IGk9bjtsZXQgcj1uLTE7cjwwJiYocj10Lmxlbmd0aC0xKTtmb3IobGV0IHQ9MCxuPXMrMipwO3Q8bjt0Kyspe2NvbnN0IG49QSp0LG89QSoodCsxKTtIKGUraStuLGUrcituLGUrcitvLGUraStvKX19fWZ1bmN0aW9uIEQodCxlLG4pe28ucHVzaCh0KSxvLnB1c2goZSksby5wdXNoKG4pfWZ1bmN0aW9uIEIodCxlLHIpe0YodCksRihlKSxGKHIpO2NvbnN0IG89aS5sZW5ndGgvMyxhPW0uZ2VuZXJhdGVUb3BVVihuLGksby0zLG8tMixvLTEpO1YoYVswXSksVihhWzFdKSxWKGFbMl0pfWZ1bmN0aW9uIEgodCxlLHIsbyl7Rih0KSxGKGUpLEYobyksRihlKSxGKHIpLEYobyk7Y29uc3QgYT1pLmxlbmd0aC8zLHM9bS5nZW5lcmF0ZVNpZGVXYWxsVVYobixpLGEtNixhLTMsYS0yLGEtMSk7VihzWzBdKSxWKHNbMV0pLFYoc1szXSksVihzWzFdKSxWKHNbMl0pLFYoc1szXSl9ZnVuY3Rpb24gRih0KXtpLnB1c2gob1szKnQrMF0pLGkucHVzaChvWzMqdCsxXSksaS5wdXNoKG9bMyp0KzJdKX1mdW5jdGlvbiBWKHQpe3IucHVzaCh0LngpLHIucHVzaCh0LnkpfSEoZnVuY3Rpb24gVSgpe2NvbnN0IHQ9aS5sZW5ndGgvMztpZihjKXtsZXQgdD0wLGU9QSp0O2ZvcihsZXQgdD0wO3Q8azt0Kyspe2NvbnN0IG49RVt0XTtCKG5bMl0rZSxuWzFdK2UsblswXStlKX10PXMrMipwLGU9QSp0O2ZvcihsZXQgdD0wO3Q8azt0Kyspe2NvbnN0IG49RVt0XTtCKG5bMF0rZSxuWzFdK2UsblsyXStlKX19ZWxzZXtmb3IobGV0IHQ9MDt0PGs7dCsrKXtjb25zdCBlPUVbdF07QihlWzJdLGVbMV0sZVswXSl9Zm9yKGxldCB0PTA7dDxrO3QrKyl7Y29uc3QgZT1FW3RdO0IoZVswXStBKnMsZVsxXStBKnMsZVsyXStBKnMpfX1uLmFkZEdyb3VwKHQsaS5sZW5ndGgvMy10LDApfSkoKSwoZnVuY3Rpb24gaigpe2NvbnN0IHQ9aS5sZW5ndGgvMztsZXQgZT0wO3ooVCxlKSxlKz1ULmxlbmd0aDtmb3IobGV0IHQ9MCxuPU0ubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49TVt0XTt6KG4sZSksZSs9bi5sZW5ndGh9bi5hZGRHcm91cCh0LGkubGVuZ3RoLzMtdCwxKX0pKCl9dGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KGksMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGwxdChyLDIpKSx0aGlzLmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCl9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4oZnVuY3Rpb24gZSh0LG4saSl7aWYoaS5zaGFwZXM9W10sQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspaS5zaGFwZXMucHVzaCh0W2VdLnV1aWQpO2Vsc2UgaS5zaGFwZXMucHVzaCh0LnV1aWQpO3JldHVybiB2b2lkIDAhPT1uLmV4dHJ1ZGVQYXRoJiYoaS5vcHRpb25zLmV4dHJ1ZGVQYXRoPW4uZXh0cnVkZVBhdGgudG9KU09OKCkpLGl9KSh0aGlzLnBhcmFtZXRlcnMuc2hhcGVzLHRoaXMucGFyYW1ldGVycy5vcHRpb25zLHQpfXN0YXRpYyBmcm9tSlNPTih0LGUpe2NvbnN0IG49W107Zm9yKGxldCBpPTAscj10LnNoYXBlcy5sZW5ndGg7aTxyO2krKyluLnB1c2goZVt0LnNoYXBlc1tpXV0pO2NvbnN0IGk9dC5vcHRpb25zLmV4dHJ1ZGVQYXRoO3JldHVybiB2b2lkIDAhPT1pJiYodC5vcHRpb25zLmV4dHJ1ZGVQYXRoPShuZXcgTDR0W2kudHlwZV0pLmZyb21KU09OKGkpKSxuZXcgcjZ0KG4sdC5vcHRpb25zKX19Y29uc3QgbzZ0PXtnZW5lcmF0ZVRvcFVWOmZ1bmN0aW9uKHQsZSxuLGkscil7Y29uc3Qgbz1lWzMqaV0sYT1lWzMqaSsxXSxzPWVbMypyXSxsPWVbMypyKzFdO3JldHVybltuZXcgbUp0KGVbMypuXSxlWzMqbisxXSksbmV3IG1KdChvLGEpLG5ldyBtSnQocyxsKV19LGdlbmVyYXRlU2lkZVdhbGxVVjpmdW5jdGlvbih0LGUsbixpLHIsbyl7Y29uc3QgYT1lWzMqbl0scz1lWzMqbisxXSxsPWVbMypuKzJdLGM9ZVszKmldLHU9ZVszKmkrMV0saD1lWzMqaSsyXSxkPWVbMypyXSxwPWVbMypyKzFdLGY9ZVszKnIrMl0sbT1lWzMqb10sZz1lWzMqbysxXSxfPWVbMypvKzJdO3JldHVybiBNYXRoLmFicyhzLXUpPE1hdGguYWJzKGEtYyk/W25ldyBtSnQoYSwxLWwpLG5ldyBtSnQoYywxLWgpLG5ldyBtSnQoZCwxLWYpLG5ldyBtSnQobSwxLV8pXTpbbmV3IG1KdChzLDEtbCksbmV3IG1KdCh1LDEtaCksbmV3IG1KdChwLDEtZiksbmV3IG1KdChnLDEtXyldfX07Y2xhc3MgYTZ0IGV4dGVuZHMgcjR0e2NvbnN0cnVjdG9yKHQ9MSxlPTApe2NvbnN0IG49KDErTWF0aC5zcXJ0KDUpKS8yO3N1cGVyKFstMSxuLDAsMSxuLDAsLTEsLW4sMCwxLC1uLDAsMCwtMSxuLDAsMSxuLDAsLTEsLW4sMCwxLC1uLG4sMCwtMSxuLDAsMSwtbiwwLC0xLC1uLDAsMV0sWzAsMTEsNSwwLDUsMSwwLDEsNywwLDcsMTAsMCwxMCwxMSwxLDUsOSw1LDExLDQsMTEsMTAsMiwxMCw3LDYsNywxLDgsMyw5LDQsMyw0LDIsMywyLDYsMyw2LDgsMyw4LDksNCw5LDUsMiw0LDExLDYsMiwxMCw4LDYsNyw5LDgsMV0sdCxlKSx0aGlzLnR5cGU9Ikljb3NhaGVkcm9uR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzOnQsZGV0YWlsOmV9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGE2dCh0LnJhZGl1cyx0LmRldGFpbCl9fWNsYXNzIHM2dCBleHRlbmRzIGIxdHtjb25zdHJ1Y3Rvcih0LGU9MTIsbj0wLGk9MipNYXRoLlBJKXtzdXBlcigpLHRoaXMudHlwZT0iTGF0aGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtwb2ludHM6dCxzZWdtZW50czplLHBoaVN0YXJ0Om4scGhpTGVuZ3RoOml9LGU9TWF0aC5mbG9vcihlKSxpPSRadChpLDAsMipNYXRoLlBJKTtjb25zdCByPVtdLG89W10sYT1bXSxzPTEvZSxsPW5ldyBDSnQsYz1uZXcgbUp0O2ZvcihsZXQgcj0wO3I8PWU7cisrKXtjb25zdCB1PW4rcipzKmksaD1NYXRoLnNpbih1KSxkPU1hdGguY29zKHUpO2ZvcihsZXQgbj0wO248PXQubGVuZ3RoLTE7bisrKWwueD10W25dLngqaCxsLnk9dFtuXS55LGwuej10W25dLngqZCxvLnB1c2gobC54LGwueSxsLnopLGMueD1yL2UsYy55PW4vKHQubGVuZ3RoLTEpLGEucHVzaChjLngsYy55KX1mb3IobGV0IG49MDtuPGU7bisrKWZvcihsZXQgZT0wO2U8dC5sZW5ndGgtMTtlKyspe2NvbnN0IGk9ZStuKnQubGVuZ3RoLG89aSt0Lmxlbmd0aCxhPWkrdC5sZW5ndGgrMSxzPWkrMTtyLnB1c2goaSxvLHMpLHIucHVzaChvLGEscyl9aWYodGhpcy5zZXRJbmRleChyKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQobywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgbDF0KGEsMikpLHRoaXMuY29tcHV0ZVZlcnRleE5vcm1hbHMoKSxpPT09MipNYXRoLlBJKXtjb25zdCBuPXRoaXMuYXR0cmlidXRlcy5ub3JtYWwuYXJyYXksaT1uZXcgQ0p0LHI9bmV3IENKdCxvPW5ldyBDSnQsYT1lKnQubGVuZ3RoKjM7Zm9yKGxldCBlPTAscz0wO2U8dC5sZW5ndGg7ZSsrLHMrPTMpaS54PW5bcyswXSxpLnk9bltzKzFdLGkuej1uW3MrMl0sci54PW5bYStzKzBdLHIueT1uW2ErcysxXSxyLno9blthK3MrMl0sby5hZGRWZWN0b3JzKGkscikubm9ybWFsaXplKCksbltzKzBdPW5bYStzKzBdPW8ueCxuW3MrMV09blthK3MrMV09by55LG5bcysyXT1uW2ErcysyXT1vLnp9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IHM2dCh0LnBvaW50cyx0LnNlZ21lbnRzLHQucGhpU3RhcnQsdC5waGlMZW5ndGgpfX1jbGFzcyBsNnQgZXh0ZW5kcyByNHR7Y29uc3RydWN0b3IodD0xLGU9MCl7c3VwZXIoWzEsMCwwLC0xLDAsMCwwLDEsMCwwLC0xLDAsMCwwLDEsMCwwLC0xXSxbMCwyLDQsMCw0LDMsMCwzLDUsMCw1LDIsMSwyLDUsMSw1LDMsMSwzLDQsMSw0LDJdLHQsZSksdGhpcy50eXBlPSJPY3RhaGVkcm9uR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzOnQsZGV0YWlsOmV9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGw2dCh0LnJhZGl1cyx0LmRldGFpbCl9fWNsYXNzIGM2dCBleHRlbmRzIGIxdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLnR5cGU9IlBhcmFtZXRyaWNHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtmdW5jOnQsc2xpY2VzOmUsc3RhY2tzOm59O2NvbnN0IGk9W10scj1bXSxvPVtdLGE9W10scz0xZS01LGw9bmV3IENKdCxjPW5ldyBDSnQsdT1uZXcgQ0p0LGg9bmV3IENKdCxkPW5ldyBDSnQ7dC5sZW5ndGg8MyYmY29uc29sZS5lcnJvcigiVEhSRUUuUGFyYW1ldHJpY0dlb21ldHJ5OiBGdW5jdGlvbiBtdXN0IG5vdyBtb2RpZnkgYSBWZWN0b3IzIGFzIHRoaXJkIHBhcmFtZXRlci4iKTtjb25zdCBwPWUrMTtmb3IobGV0IGk9MDtpPD1uO2krKyl7Y29uc3QgcD1pL247Zm9yKGxldCBuPTA7bjw9ZTtuKyspe2NvbnN0IGk9bi9lO3QoaSxwLGMpLHIucHVzaChjLngsYy55LGMueiksaS1zPj0wPyh0KGktcyxwLHUpLGguc3ViVmVjdG9ycyhjLHUpKToodChpK3MscCx1KSxoLnN1YlZlY3RvcnModSxjKSkscC1zPj0wPyh0KGkscC1zLHUpLGQuc3ViVmVjdG9ycyhjLHUpKToodChpLHArcyx1KSxkLnN1YlZlY3RvcnModSxjKSksbC5jcm9zc1ZlY3RvcnMoaCxkKS5ub3JtYWxpemUoKSxvLnB1c2gobC54LGwueSxsLnopLGEucHVzaChpLHApfX1mb3IobGV0IHQ9MDt0PG47dCsrKWZvcihsZXQgbj0wO248ZTtuKyspe2NvbnN0IGU9dCpwK24rMSxyPSh0KzEpKnArbisxLG89KHQrMSkqcCtuO2kucHVzaCh0KnArbixlLG8pLGkucHVzaChlLHIsbyl9dGhpcy5zZXRJbmRleChpKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQociwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGwxdChvLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBsMXQoYSwyKSl9fWNsYXNzIHU2dCBleHRlbmRzIGIxdHtjb25zdHJ1Y3Rvcih0PS41LGU9MSxuPTgsaT0xLHI9MCxvPTIqTWF0aC5QSSl7c3VwZXIoKSx0aGlzLnR5cGU9IlJpbmdHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtpbm5lclJhZGl1czp0LG91dGVyUmFkaXVzOmUsdGhldGFTZWdtZW50czpuLHBoaVNlZ21lbnRzOmksdGhldGFTdGFydDpyLHRoZXRhTGVuZ3RoOm99LG49TWF0aC5tYXgoMyxuKTtjb25zdCBhPVtdLHM9W10sbD1bXSxjPVtdO2xldCB1PXQ7Y29uc3QgaD0oZS10KS8oaT1NYXRoLm1heCgxLGkpKSxkPW5ldyBDSnQscD1uZXcgbUp0O2ZvcihsZXQgdD0wO3Q8PWk7dCsrKXtmb3IobGV0IHQ9MDt0PD1uO3QrKyl7Y29uc3QgaT1yK3QvbipvO2QueD11Kk1hdGguY29zKGkpLGQueT11Kk1hdGguc2luKGkpLHMucHVzaChkLngsZC55LGQueiksbC5wdXNoKDAsMCwxKSxwLng9KGQueC9lKzEpLzIscC55PShkLnkvZSsxKS8yLGMucHVzaChwLngscC55KX11Kz1ofWZvcihsZXQgdD0wO3Q8aTt0Kyspe2NvbnN0IGU9dCoobisxKTtmb3IobGV0IHQ9MDt0PG47dCsrKXtjb25zdCBpPXQrZSxyPWkrbisxLG89aStuKzIscz1pKzE7YS5wdXNoKGkscixzKSxhLnB1c2gocixvLHMpfX10aGlzLnNldEluZGV4KGEpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdChzLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgbDF0KGwsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGwxdChjLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyB1NnQodC5pbm5lclJhZGl1cyx0Lm91dGVyUmFkaXVzLHQudGhldGFTZWdtZW50cyx0LnBoaVNlZ21lbnRzLHQudGhldGFTdGFydCx0LnRoZXRhTGVuZ3RoKX19Y2xhc3MgaDZ0IGV4dGVuZHMgYjF0e2NvbnN0cnVjdG9yKHQsZT0xMil7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYXBlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17c2hhcGVzOnQsY3VydmVTZWdtZW50czplfTtjb25zdCBuPVtdLGk9W10scj1bXSxvPVtdO2xldCBhPTAscz0wO2lmKCExPT09QXJyYXkuaXNBcnJheSh0KSlsKHQpO2Vsc2UgZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspbCh0W2VdKSx0aGlzLmFkZEdyb3VwKGEscyxlKSxhKz1zLHM9MDtmdW5jdGlvbiBsKHQpe2NvbnN0IGE9aS5sZW5ndGgvMyxsPXQuZXh0cmFjdFBvaW50cyhlKTtsZXQgYz1sLnNoYXBlO2NvbnN0IHU9bC5ob2xlczshMT09PWU2dC5pc0Nsb2NrV2lzZShjKSYmKGM9Yy5yZXZlcnNlKCkpO2ZvcihsZXQgdD0wLGU9dS5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT11W3RdOyEwPT09ZTZ0LmlzQ2xvY2tXaXNlKGUpJiYodVt0XT1lLnJldmVyc2UoKSl9Y29uc3QgaD1lNnQudHJpYW5ndWxhdGVTaGFwZShjLHUpO2ZvcihsZXQgdD0wLGU9dS5sZW5ndGg7dDxlO3QrKyljPWMuY29uY2F0KHVbdF0pO2ZvcihsZXQgdD0wLGU9Yy5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1jW3RdO2kucHVzaChlLngsZS55LDApLHIucHVzaCgwLDAsMSksby5wdXNoKGUueCxlLnkpfWZvcihsZXQgdD0wLGU9aC5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1oW3RdO24ucHVzaChlWzBdK2EsZVsxXSthLGVbMl0rYSkscys9M319dGhpcy5zZXRJbmRleChuKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQoaSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGwxdChyLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBsMXQobywyKSl9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4oZnVuY3Rpb24gZSh0LG4pe2lmKG4uc2hhcGVzPVtdLEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSsrKW4uc2hhcGVzLnB1c2godFtlXS51dWlkKTtlbHNlIG4uc2hhcGVzLnB1c2godC51dWlkKTtyZXR1cm4gbn0pKHRoaXMucGFyYW1ldGVycy5zaGFwZXMsdCl9c3RhdGljIGZyb21KU09OKHQsZSl7Y29uc3Qgbj1bXTtmb3IobGV0IGk9MCxyPXQuc2hhcGVzLmxlbmd0aDtpPHI7aSsrKW4ucHVzaChlW3Quc2hhcGVzW2ldXSk7cmV0dXJuIG5ldyBoNnQobix0LmN1cnZlU2VnbWVudHMpfX1jbGFzcyBkNnQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodD0xLGU9MzIsbj0xNixpPTAscj0yKk1hdGguUEksbz0wLGE9TWF0aC5QSSl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwaGVyZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LHdpZHRoU2VnbWVudHM6ZSxoZWlnaHRTZWdtZW50czpuLHBoaVN0YXJ0OmkscGhpTGVuZ3RoOnIsdGhldGFTdGFydDpvLHRoZXRhTGVuZ3RoOmF9LGU9TWF0aC5tYXgoMyxNYXRoLmZsb29yKGUpKSxuPU1hdGgubWF4KDIsTWF0aC5mbG9vcihuKSk7Y29uc3Qgcz1NYXRoLm1pbihvK2EsTWF0aC5QSSk7bGV0IGw9MDtjb25zdCBjPVtdLHU9bmV3IENKdCxoPW5ldyBDSnQsZD1bXSxwPVtdLGY9W10sbT1bXTtmb3IobGV0IGQ9MDtkPD1uO2QrKyl7Y29uc3QgZz1bXSxfPWQvbjtsZXQgeT0wOzA9PWQmJjA9PW8/eT0uNS9lOmQ9PW4mJnM9PU1hdGguUEkmJih5PS0uNS9lKTtmb3IobGV0IG49MDtuPD1lO24rKyl7Y29uc3Qgcz1uL2U7dS54PS10Kk1hdGguY29zKGkrcypyKSpNYXRoLnNpbihvK18qYSksdS55PXQqTWF0aC5jb3MobytfKmEpLHUuej10Kk1hdGguc2luKGkrcypyKSpNYXRoLnNpbihvK18qYSkscC5wdXNoKHUueCx1LnksdS56KSxoLmNvcHkodSkubm9ybWFsaXplKCksZi5wdXNoKGgueCxoLnksaC56KSxtLnB1c2gocyt5LDEtXyksZy5wdXNoKGwrKyl9Yy5wdXNoKGcpfWZvcihsZXQgdD0wO3Q8bjt0KyspZm9yKGxldCBpPTA7aTxlO2krKyl7Y29uc3QgZT1jW3RdW2krMV0scj1jW3RdW2ldLGE9Y1t0KzFdW2ldLGw9Y1t0KzFdW2krMV07KDAhPT10fHxvPjApJiZkLnB1c2goZSxyLGwpLCh0IT09bi0xfHxzPE1hdGguUEkpJiZkLnB1c2gocixhLGwpfXRoaXMuc2V0SW5kZXgoZCksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KHAsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBsMXQoZiwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgbDF0KG0sMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGQ2dCh0LnJhZGl1cyx0LndpZHRoU2VnbWVudHMsdC5oZWlnaHRTZWdtZW50cyx0LnBoaVN0YXJ0LHQucGhpTGVuZ3RoLHQudGhldGFTdGFydCx0LnRoZXRhTGVuZ3RoKX19Y2xhc3MgcDZ0IGV4dGVuZHMgcjR0e2NvbnN0cnVjdG9yKHQ9MSxlPTApe3N1cGVyKFsxLDEsMSwtMSwtMSwxLC0xLDEsLTEsMSwtMSwtMV0sWzIsMSwwLDAsMywyLDEsMywwLDIsMywxXSx0LGUpLHRoaXMudHlwZT0iVGV0cmFoZWRyb25HZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCxkZXRhaWw6ZX19c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgcDZ0KHQucmFkaXVzLHQuZGV0YWlsKX19Y2xhc3MgZjZ0IGV4dGVuZHMgcjZ0e2NvbnN0cnVjdG9yKHQsZT17fSl7Y29uc3Qgbj1lLmZvbnQ7aWYoIW58fCFuLmlzRm9udClyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuVGV4dEdlb21ldHJ5OiBmb250IHBhcmFtZXRlciBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuRm9udC4iKSxuZXcgYjF0O2NvbnN0IGk9bi5nZW5lcmF0ZVNoYXBlcyh0LGUuc2l6ZSk7ZS5kZXB0aD12b2lkIDAhPT1lLmhlaWdodD9lLmhlaWdodDo1MCx2b2lkIDA9PT1lLmJldmVsVGhpY2tuZXNzJiYoZS5iZXZlbFRoaWNrbmVzcz0xMCksdm9pZCAwPT09ZS5iZXZlbFNpemUmJihlLmJldmVsU2l6ZT04KSx2b2lkIDA9PT1lLmJldmVsRW5hYmxlZCYmKGUuYmV2ZWxFbmFibGVkPSExKSxzdXBlcihpLGUpLHRoaXMudHlwZT0iVGV4dEdlb21ldHJ5In19Y2xhc3MgbTZ0IGV4dGVuZHMgYjF0e2NvbnN0cnVjdG9yKHQ9MSxlPS40LG49OCxpPTYscj0yKk1hdGguUEkpe3N1cGVyKCksdGhpcy50eXBlPSJUb3J1c0dlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LHR1YmU6ZSxyYWRpYWxTZWdtZW50czpuLHR1YnVsYXJTZWdtZW50czppLGFyYzpyfSxuPU1hdGguZmxvb3IobiksaT1NYXRoLmZsb29yKGkpO2NvbnN0IG89W10sYT1bXSxzPVtdLGw9W10sYz1uZXcgQ0p0LHU9bmV3IENKdCxoPW5ldyBDSnQ7Zm9yKGxldCBvPTA7bzw9bjtvKyspZm9yKGxldCBkPTA7ZDw9aTtkKyspe2NvbnN0IHA9ZC9pKnIsZj1vL24qTWF0aC5QSSoyO3UueD0odCtlKk1hdGguY29zKGYpKSpNYXRoLmNvcyhwKSx1Lnk9KHQrZSpNYXRoLmNvcyhmKSkqTWF0aC5zaW4ocCksdS56PWUqTWF0aC5zaW4oZiksYS5wdXNoKHUueCx1LnksdS56KSxjLng9dCpNYXRoLmNvcyhwKSxjLnk9dCpNYXRoLnNpbihwKSxoLnN1YlZlY3RvcnModSxjKS5ub3JtYWxpemUoKSxzLnB1c2goaC54LGgueSxoLnopLGwucHVzaChkL2kpLGwucHVzaChvL24pfWZvcihsZXQgdD0xO3Q8PW47dCsrKWZvcihsZXQgZT0xO2U8PWk7ZSsrKXtjb25zdCBuPShpKzEpKih0LTEpK2UtMSxyPShpKzEpKih0LTEpK2UsYT0oaSsxKSp0K2U7by5wdXNoKChpKzEpKnQrZS0xLG4sYSksby5wdXNoKG4scixhKX10aGlzLnNldEluZGV4KG8pLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdChhLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgbDF0KHMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGwxdChsLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBtNnQodC5yYWRpdXMsdC50dWJlLHQucmFkaWFsU2VnbWVudHMsdC50dWJ1bGFyU2VnbWVudHMsdC5hcmMpfX1jbGFzcyBnNnQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodD0xLGU9LjQsbj02NCxpPTgscj0yLG89Myl7c3VwZXIoKSx0aGlzLnR5cGU9IlRvcnVzS25vdEdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LHR1YmU6ZSx0dWJ1bGFyU2VnbWVudHM6bixyYWRpYWxTZWdtZW50czppLHA6cixxOm99LG49TWF0aC5mbG9vcihuKSxpPU1hdGguZmxvb3IoaSk7Y29uc3QgYT1bXSxzPVtdLGw9W10sYz1bXSx1PW5ldyBDSnQsaD1uZXcgQ0p0LGQ9bmV3IENKdCxwPW5ldyBDSnQsZj1uZXcgQ0p0LG09bmV3IENKdCxnPW5ldyBDSnQ7Zm9yKGxldCBhPTA7YTw9bjsrK2Epe2NvbnN0IHk9YS9uKnIqTWF0aC5QSSoyO18oeSxyLG8sdCxkKSxfKHkrLjAxLHIsbyx0LHApLG0uc3ViVmVjdG9ycyhwLGQpLGcuYWRkVmVjdG9ycyhwLGQpLGYuY3Jvc3NWZWN0b3JzKG0sZyksZy5jcm9zc1ZlY3RvcnMoZixtKSxmLm5vcm1hbGl6ZSgpLGcubm9ybWFsaXplKCk7Zm9yKGxldCB0PTA7dDw9aTsrK3Qpe2NvbnN0IHI9dC9pKk1hdGguUEkqMixvPS1lKk1hdGguY29zKHIpLHA9ZSpNYXRoLnNpbihyKTt1Lng9ZC54KyhvKmcueCtwKmYueCksdS55PWQueSsobypnLnkrcCpmLnkpLHUuej1kLnorKG8qZy56K3AqZi56KSxzLnB1c2godS54LHUueSx1LnopLGguc3ViVmVjdG9ycyh1LGQpLm5vcm1hbGl6ZSgpLGwucHVzaChoLngsaC55LGgueiksYy5wdXNoKGEvbiksYy5wdXNoKHQvaSl9fWZvcihsZXQgdD0xO3Q8PW47dCsrKWZvcihsZXQgZT0xO2U8PWk7ZSsrKXtjb25zdCBuPShpKzEpKnQrKGUtMSkscj0oaSsxKSp0K2Usbz0oaSsxKSoodC0xKStlO2EucHVzaCgoaSsxKSoodC0xKSsoZS0xKSxuLG8pLGEucHVzaChuLHIsbyl9ZnVuY3Rpb24gXyh0LGUsbixpLHIpe2NvbnN0IG89TWF0aC5jb3ModCksYT1NYXRoLnNpbih0KSxzPW4vZSp0LGw9TWF0aC5jb3Mocyk7ci54PWkqKDIrbCkqLjUqbyxyLnk9aSooMitsKSphKi41LHIuej1pKk1hdGguc2luKHMpKi41fXRoaXMuc2V0SW5kZXgoYSksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KHMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBsMXQobCwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgbDF0KGMsMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGc2dCh0LnJhZGl1cyx0LnR1YmUsdC50dWJ1bGFyU2VnbWVudHMsdC5yYWRpYWxTZWdtZW50cyx0LnAsdC5xKX19Y2xhc3MgXzZ0IGV4dGVuZHMgYjF0e2NvbnN0cnVjdG9yKHQsZT02NCxuPTEsaT04LHI9ITEpe3N1cGVyKCksdGhpcy50eXBlPSJUdWJlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cGF0aDp0LHR1YnVsYXJTZWdtZW50czplLHJhZGl1czpuLHJhZGlhbFNlZ21lbnRzOmksY2xvc2VkOnJ9O2NvbnN0IG89dC5jb21wdXRlRnJlbmV0RnJhbWVzKGUscik7dGhpcy50YW5nZW50cz1vLnRhbmdlbnRzLHRoaXMubm9ybWFscz1vLm5vcm1hbHMsdGhpcy5iaW5vcm1hbHM9by5iaW5vcm1hbHM7Y29uc3QgYT1uZXcgQ0p0LHM9bmV3IENKdCxsPW5ldyBtSnQ7bGV0IGM9bmV3IENKdDtjb25zdCB1PVtdLGg9W10sZD1bXSxwPVtdO2Z1bmN0aW9uIGYocil7Yz10LmdldFBvaW50QXQoci9lLGMpO2NvbnN0IGw9by5ub3JtYWxzW3JdLGQ9by5iaW5vcm1hbHNbcl07Zm9yKGxldCB0PTA7dDw9aTt0Kyspe2NvbnN0IGU9dC9pKk1hdGguUEkqMixyPU1hdGguc2luKGUpLG89LU1hdGguY29zKGUpO3MueD1vKmwueCtyKmQueCxzLnk9bypsLnkrcipkLnkscy56PW8qbC56K3IqZC56LHMubm9ybWFsaXplKCksaC5wdXNoKHMueCxzLnkscy56KSxhLng9Yy54K24qcy54LGEueT1jLnkrbipzLnksYS56PWMueituKnMueix1LnB1c2goYS54LGEueSxhLnopfX0hKGZ1bmN0aW9uIG0oKXtmb3IobGV0IHQ9MDt0PGU7dCsrKWYodCk7ZighMT09PXI/ZTowKSwoZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8PWU7dCsrKWZvcihsZXQgbj0wO248PWk7bisrKWwueD10L2UsbC55PW4vaSxkLnB1c2gobC54LGwueSl9KSgpLChmdW5jdGlvbiBuKCl7Zm9yKGxldCB0PTE7dDw9ZTt0KyspZm9yKGxldCBlPTE7ZTw9aTtlKyspe2NvbnN0IG49KGkrMSkqdCsoZS0xKSxyPShpKzEpKnQrZSxvPShpKzEpKih0LTEpK2U7cC5wdXNoKChpKzEpKih0LTEpKyhlLTEpLG4sbykscC5wdXNoKG4scixvKX19KSgpfSkoKSx0aGlzLnNldEluZGV4KHApLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdCh1LDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgbDF0KGgsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGwxdChkLDIpKX10b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnBhdGg9dGhpcy5wYXJhbWV0ZXJzLnBhdGgudG9KU09OKCksdH1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBfNnQoKG5ldyBMNHRbdC5wYXRoLnR5cGVdKS5mcm9tSlNPTih0LnBhdGgpLHQudHVidWxhclNlZ21lbnRzLHQucmFkaXVzLHQucmFkaWFsU2VnbWVudHMsdC5jbG9zZWQpfX1jbGFzcyB5NnQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodCl7aWYoc3VwZXIoKSx0aGlzLnR5cGU9IldpcmVmcmFtZUdlb21ldHJ5IiwhMD09PXQuaXNHZW9tZXRyeSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XaXJlZnJhbWVHZW9tZXRyeSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpO2NvbnN0IGU9W10sbj1uZXcgU2V0LGk9bmV3IENKdCxyPW5ldyBDSnQ7aWYobnVsbCE9PXQuaW5kZXgpe2NvbnN0IG89dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLGE9dC5pbmRleDtsZXQgcz10Lmdyb3VwczswPT09cy5sZW5ndGgmJihzPVt7c3RhcnQ6MCxjb3VudDphLmNvdW50LG1hdGVyaWFsSW5kZXg6MH1dKTtmb3IobGV0IHQ9MCxsPXMubGVuZ3RoO3Q8bDsrK3Qpe2NvbnN0IGw9c1t0XSxjPWwuc3RhcnQ7Zm9yKGxldCB0PWMscz1jK2wuY291bnQ7dDxzO3QrPTMpZm9yKGxldCBzPTA7czwzO3MrKyl7Y29uc3QgbD1hLmdldFgodCtzKSxjPWEuZ2V0WCh0KyhzKzEpJTMpO2kuZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLGwpLHIuZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLGMpLCEwPT09djZ0KGkscixuKSYmKGUucHVzaChpLngsaS55LGkueiksZS5wdXNoKHIueCxyLnksci56KSl9fX1lbHNle2NvbnN0IG89dC5hdHRyaWJ1dGVzLnBvc2l0aW9uO2ZvcihsZXQgdD0wLGE9by5jb3VudC8zO3Q8YTt0KyspZm9yKGxldCBhPTA7YTwzO2ErKyl7Y29uc3Qgcz0zKnQrKGErMSklMztpLmZyb21CdWZmZXJBdHRyaWJ1dGUobywzKnQrYSksci5mcm9tQnVmZmVyQXR0cmlidXRlKG8scyksITA9PT12NnQoaSxyLG4pJiYoZS5wdXNoKGkueCxpLnksaS56KSxlLnB1c2goci54LHIueSxyLnopKX19dGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KGUsMykpfX1mdW5jdGlvbiB2NnQodCxlLG4pe2NvbnN0IGk9YCR7dC54fSwke3QueX0sJHt0Lnp9LSR7ZS54fSwke2UueX0sJHtlLnp9YCxyPWAke2UueH0sJHtlLnl9LCR7ZS56fS0ke3QueH0sJHt0Lnl9LCR7dC56fWA7cmV0dXJuITAhPT1uLmhhcyhpKSYmITAhPT1uLmhhcyhyKSYmKG4uYWRkKGksciksITApfXZhciBiNnQ9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQm94R2VvbWV0cnk6RjF0LEJveEJ1ZmZlckdlb21ldHJ5OkYxdCxDaXJjbGVHZW9tZXRyeTplNHQsQ2lyY2xlQnVmZmVyR2VvbWV0cnk6ZTR0LENvbmVHZW9tZXRyeTppNHQsQ29uZUJ1ZmZlckdlb21ldHJ5Omk0dCxDeWxpbmRlckdlb21ldHJ5Om40dCxDeWxpbmRlckJ1ZmZlckdlb21ldHJ5Om40dCxEb2RlY2FoZWRyb25HZW9tZXRyeTpvNHQsRG9kZWNhaGVkcm9uQnVmZmVyR2VvbWV0cnk6bzR0LEVkZ2VzR2VvbWV0cnk6dTR0LEV4dHJ1ZGVHZW9tZXRyeTpyNnQsRXh0cnVkZUJ1ZmZlckdlb21ldHJ5OnI2dCxJY29zYWhlZHJvbkdlb21ldHJ5OmE2dCxJY29zYWhlZHJvbkJ1ZmZlckdlb21ldHJ5OmE2dCxMYXRoZUdlb21ldHJ5OnM2dCxMYXRoZUJ1ZmZlckdlb21ldHJ5OnM2dCxPY3RhaGVkcm9uR2VvbWV0cnk6bDZ0LE9jdGFoZWRyb25CdWZmZXJHZW9tZXRyeTpsNnQsUGFyYW1ldHJpY0dlb21ldHJ5OmM2dCxQYXJhbWV0cmljQnVmZmVyR2VvbWV0cnk6YzZ0LFBsYW5lR2VvbWV0cnk6YTB0LFBsYW5lQnVmZmVyR2VvbWV0cnk6YTB0LFBvbHloZWRyb25HZW9tZXRyeTpyNHQsUG9seWhlZHJvbkJ1ZmZlckdlb21ldHJ5OnI0dCxSaW5nR2VvbWV0cnk6dTZ0LFJpbmdCdWZmZXJHZW9tZXRyeTp1NnQsU2hhcGVHZW9tZXRyeTpoNnQsU2hhcGVCdWZmZXJHZW9tZXRyeTpoNnQsU3BoZXJlR2VvbWV0cnk6ZDZ0LFNwaGVyZUJ1ZmZlckdlb21ldHJ5OmQ2dCxUZXRyYWhlZHJvbkdlb21ldHJ5OnA2dCxUZXRyYWhlZHJvbkJ1ZmZlckdlb21ldHJ5OnA2dCxUZXh0R2VvbWV0cnk6ZjZ0LFRleHRCdWZmZXJHZW9tZXRyeTpmNnQsVG9ydXNHZW9tZXRyeTptNnQsVG9ydXNCdWZmZXJHZW9tZXRyeTptNnQsVG9ydXNLbm90R2VvbWV0cnk6ZzZ0LFRvcnVzS25vdEJ1ZmZlckdlb21ldHJ5Omc2dCxUdWJlR2VvbWV0cnk6XzZ0LFR1YmVCdWZmZXJHZW9tZXRyeTpfNnQsV2lyZWZyYW1lR2VvbWV0cnk6eTZ0fSk7Y2xhc3MgeDZ0IGV4dGVuZHMgVVF0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJTaGFkb3dNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgJFF0KDApLHRoaXMudHJhbnNwYXJlbnQ9ITAsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpc319eDZ0LnByb3RvdHlwZS5pc1NoYWRvd01hdGVyaWFsPSEwO2NsYXNzIHc2dCBleHRlbmRzIFVRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGVmaW5lcz17U1RBTkRBUkQ6IiJ9LHRoaXMudHlwZT0iTWVzaFN0YW5kYXJkTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3ICRRdCgxNjc3NzIxNSksdGhpcy5yb3VnaG5lc3M9MSx0aGlzLm1ldGFsbmVzcz0wLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3ICRRdCgwKSx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZU1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9MCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBtSnQoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLnJvdWdobmVzc01hcD1udWxsLHRoaXMubWV0YWxuZXNzTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5lbnZNYXBJbnRlbnNpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5mbGF0U2hhZGluZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGVmaW5lcz17U1RBTkRBUkQ6IiJ9LHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLnJvdWdobmVzcz10LnJvdWdobmVzcyx0aGlzLm1ldGFsbmVzcz10Lm1ldGFsbmVzcyx0aGlzLm1hcD10Lm1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLnJvdWdobmVzc01hcD10LnJvdWdobmVzc01hcCx0aGlzLm1ldGFsbmVzc01hcD10Lm1ldGFsbmVzc01hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5lbnZNYXBJbnRlbnNpdHk9dC5lbnZNYXBJbnRlbnNpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpcy5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nLHRoaXN9fXc2dC5wcm90b3R5cGUuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD0hMDtjbGFzcyBTNnQgZXh0ZW5kcyB3NnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIiLFBIWVNJQ0FMOiIifSx0aGlzLnR5cGU9Ik1lc2hQaHlzaWNhbE1hdGVyaWFsIix0aGlzLmNsZWFyY29hdD0wLHRoaXMuY2xlYXJjb2F0TWFwPW51bGwsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3M9MCx0aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcD1udWxsLHRoaXMuY2xlYXJjb2F0Tm9ybWFsU2NhbGU9bmV3IG1KdCgxLDEpLHRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwPW51bGwsdGhpcy5yZWZsZWN0aXZpdHk9LjUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlvciIse2dldDpmdW5jdGlvbigpe3JldHVybigxKy40KnRoaXMucmVmbGVjdGl2aXR5KS8oMS0uNCp0aGlzLnJlZmxlY3Rpdml0eSl9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlZmxlY3Rpdml0eT0kWnQoMi41Kih0LTEpLyh0KzEpLDAsMSl9fSksdGhpcy5zaGVlbj1udWxsLHRoaXMudHJhbnNtaXNzaW9uPTAsdGhpcy50cmFuc21pc3Npb25NYXA9bnVsbCx0aGlzLnRoaWNrbmVzcz0uMDEsdGhpcy50aGlja25lc3NNYXA9bnVsbCx0aGlzLmF0dGVudWF0aW9uRGlzdGFuY2U9MCx0aGlzLmF0dGVudWF0aW9uVGludD1uZXcgJFF0KDEsMSwxKSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5PTEsdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcD1udWxsLHRoaXMuc3BlY3VsYXJUaW50PW5ldyAkUXQoMSwxLDEpLHRoaXMuc3BlY3VsYXJUaW50TWFwPW51bGwsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIiLFBIWVNJQ0FMOiIifSx0aGlzLmNsZWFyY29hdD10LmNsZWFyY29hdCx0aGlzLmNsZWFyY29hdE1hcD10LmNsZWFyY29hdE1hcCx0aGlzLmNsZWFyY29hdFJvdWdobmVzcz10LmNsZWFyY29hdFJvdWdobmVzcyx0aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcD10LmNsZWFyY29hdFJvdWdobmVzc01hcCx0aGlzLmNsZWFyY29hdE5vcm1hbE1hcD10LmNsZWFyY29hdE5vcm1hbE1hcCx0aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlLmNvcHkodC5jbGVhcmNvYXROb3JtYWxTY2FsZSksdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5zaGVlbj10LnNoZWVuPyh0aGlzLnNoZWVufHxuZXcgJFF0KS5jb3B5KHQuc2hlZW4pOm51bGwsdGhpcy50cmFuc21pc3Npb249dC50cmFuc21pc3Npb24sdGhpcy50cmFuc21pc3Npb25NYXA9dC50cmFuc21pc3Npb25NYXAsdGhpcy50aGlja25lc3M9dC50aGlja25lc3MsdGhpcy50aGlja25lc3NNYXA9dC50aGlja25lc3NNYXAsdGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlPXQuYXR0ZW51YXRpb25EaXN0YW5jZSx0aGlzLmF0dGVudWF0aW9uVGludC5jb3B5KHQuYXR0ZW51YXRpb25UaW50KSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5PXQuc3BlY3VsYXJJbnRlbnNpdHksdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcD10LnNwZWN1bGFySW50ZW5zaXR5TWFwLHRoaXMuc3BlY3VsYXJUaW50LmNvcHkodC5zcGVjdWxhclRpbnQpLHRoaXMuc3BlY3VsYXJUaW50TWFwPXQuc3BlY3VsYXJUaW50TWFwLHRoaXN9fVM2dC5wcm90b3R5cGUuaXNNZXNoUGh5c2ljYWxNYXRlcmlhbD0hMDtjbGFzcyBNNnQgZXh0ZW5kcyBVUXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hQaG9uZ01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyAkUXQoMTY3NzcyMTUpLHRoaXMuc3BlY3VsYXI9bmV3ICRRdCgxMTE4NDgxKSx0aGlzLnNoaW5pbmVzcz0zMCx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyAkUXQoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPTAsdGhpcy5ub3JtYWxTY2FsZT1uZXcgbUp0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5zcGVjdWxhck1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuY29tYmluZT0wLHRoaXMucmVmbGVjdGl2aXR5PTEsdGhpcy5yZWZyYWN0aW9uUmF0aW89Ljk4LHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuZmxhdFNoYWRpbmc9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5zcGVjdWxhci5jb3B5KHQuc3BlY3VsYXIpLHRoaXMuc2hpbmluZXNzPXQuc2hpbmluZXNzLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319TTZ0LnByb3RvdHlwZS5pc01lc2hQaG9uZ01hdGVyaWFsPSEwO2NsYXNzIEU2dCBleHRlbmRzIFVRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGVmaW5lcz17VE9PTjoiIn0sdGhpcy50eXBlPSJNZXNoVG9vbk1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyAkUXQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5ncmFkaWVudE1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyAkUXQoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPTAsdGhpcy5ub3JtYWxTY2FsZT1uZXcgbUp0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuZ3JhZGllbnRNYXA9dC5ncmFkaWVudE1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpc319RTZ0LnByb3RvdHlwZS5pc01lc2hUb29uTWF0ZXJpYWw9ITA7Y2xhc3MgVDZ0IGV4dGVuZHMgVVF0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoTm9ybWFsTWF0ZXJpYWwiLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9MCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBtSnQoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMuZmxhdFNoYWRpbmc9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXMuZmxhdFNoYWRpbmc9dC5mbGF0U2hhZGluZyx0aGlzfX1UNnQucHJvdG90eXBlLmlzTWVzaE5vcm1hbE1hdGVyaWFsPSEwO2NsYXNzIEM2dCBleHRlbmRzIFVRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaExhbWJlcnRNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgJFF0KDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyAkUXQoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLnNwZWN1bGFyTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5jb21iaW5lPTAsdGhpcy5yZWZsZWN0aXZpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuZW1pc3NpdmUuY29weSh0LmVtaXNzaXZlKSx0aGlzLmVtaXNzaXZlTWFwPXQuZW1pc3NpdmVNYXAsdGhpcy5lbWlzc2l2ZUludGVuc2l0eT10LmVtaXNzaXZlSW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX1DNnQucHJvdG90eXBlLmlzTWVzaExhbWJlcnRNYXRlcmlhbD0hMDtjbGFzcyBBNnQgZXh0ZW5kcyBVUXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRlZmluZXM9e01BVENBUDoiIn0sdGhpcy50eXBlPSJNZXNoTWF0Y2FwTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3ICRRdCgxNjc3NzIxNSksdGhpcy5tYXRjYXA9bnVsbCx0aGlzLm1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9MCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBtSnQoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5mbGF0U2hhZGluZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGVmaW5lcz17TUFUQ0FQOiIifSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXRjYXA9dC5tYXRjYXAsdGhpcy5tYXA9dC5tYXAsdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nLHRoaXN9fUE2dC5wcm90b3R5cGUuaXNNZXNoTWF0Y2FwTWF0ZXJpYWw9ITA7Y2xhc3MgazZ0IGV4dGVuZHMgSTN0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lRGFzaGVkTWF0ZXJpYWwiLHRoaXMuc2NhbGU9MSx0aGlzLmRhc2hTaXplPTMsdGhpcy5nYXBTaXplPTEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnNjYWxlPXQuc2NhbGUsdGhpcy5kYXNoU2l6ZT10LmRhc2hTaXplLHRoaXMuZ2FwU2l6ZT10LmdhcFNpemUsdGhpc319azZ0LnByb3RvdHlwZS5pc0xpbmVEYXNoZWRNYXRlcmlhbD0hMDt2YXIgTDZ0PU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLFNoYWRvd01hdGVyaWFsOng2dCxTcHJpdGVNYXRlcmlhbDpKNXQsUmF3U2hhZGVyTWF0ZXJpYWw6XzB0LFNoYWRlck1hdGVyaWFsOkcxdCxQb2ludHNNYXRlcmlhbDpHM3QsTWVzaFBoeXNpY2FsTWF0ZXJpYWw6UzZ0LE1lc2hTdGFuZGFyZE1hdGVyaWFsOnc2dCxNZXNoUGhvbmdNYXRlcmlhbDpNNnQsTWVzaFRvb25NYXRlcmlhbDpFNnQsTWVzaE5vcm1hbE1hdGVyaWFsOlQ2dCxNZXNoTGFtYmVydE1hdGVyaWFsOkM2dCxNZXNoRGVwdGhNYXRlcmlhbDpONXQsTWVzaERpc3RhbmNlTWF0ZXJpYWw6STV0LE1lc2hCYXNpY01hdGVyaWFsOktRdCxNZXNoTWF0Y2FwTWF0ZXJpYWw6QTZ0LExpbmVEYXNoZWRNYXRlcmlhbDprNnQsTGluZUJhc2ljTWF0ZXJpYWw6STN0LE1hdGVyaWFsOlVRdH0pO2NvbnN0IFA2dD17YXJyYXlTbGljZTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIFA2dC5pc1R5cGVkQXJyYXkodCk/bmV3IHQuY29uc3RydWN0b3IodC5zdWJhcnJheShlLHZvaWQgMCE9PW4/bjp0Lmxlbmd0aCkpOnQuc2xpY2UoZSxuKX0sY29udmVydEFycmF5OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4hdHx8IW4mJnQuY29uc3RydWN0b3I9PT1lP3Q6Im51bWJlciI9PXR5cGVvZiBlLkJZVEVTX1BFUl9FTEVNRU5UP25ldyBlKHQpOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpfSxpc1R5cGVkQXJyYXk6ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgRGF0YVZpZXcpfSxnZXRLZXlmcmFtZU9yZGVyOmZ1bmN0aW9uKHQpe2NvbnN0IGU9dC5sZW5ndGgsbj1uZXcgQXJyYXkoZSk7Zm9yKGxldCB0PTA7dCE9PWU7Kyt0KW5bdF09dDtyZXR1cm4gbi5zb3J0KChmdW5jdGlvbiBpKGUsbil7cmV0dXJuIHRbZV0tdFtuXX0pKSxufSxzb3J0ZWRBcnJheTpmdW5jdGlvbih0LGUsbil7Y29uc3QgaT10Lmxlbmd0aCxyPW5ldyB0LmNvbnN0cnVjdG9yKGkpO2ZvcihsZXQgbz0wLGE9MDthIT09aTsrK28pe2NvbnN0IGk9bltvXSplO2ZvcihsZXQgbj0wO24hPT1lOysrbilyW2ErK109dFtpK25dfXJldHVybiByfSxmbGF0dGVuSlNPTjpmdW5jdGlvbih0LGUsbixpKXtsZXQgcj0xLG89dFswXTtmb3IoO3ZvaWQgMCE9PW8mJnZvaWQgMD09PW9baV07KW89dFtyKytdO2lmKHZvaWQgMD09PW8pcmV0dXJuO2xldCBhPW9baV07aWYodm9pZCAwIT09YSlpZihBcnJheS5pc0FycmF5KGEpKWRve2E9b1tpXSx2b2lkIDAhPT1hJiYoZS5wdXNoKG8udGltZSksbi5wdXNoLmFwcGx5KG4sYSkpLG89dFtyKytdfXdoaWxlKHZvaWQgMCE9PW8pO2Vsc2UgaWYodm9pZCAwIT09YS50b0FycmF5KWRve2E9b1tpXSx2b2lkIDAhPT1hJiYoZS5wdXNoKG8udGltZSksYS50b0FycmF5KG4sbi5sZW5ndGgpKSxvPXRbcisrXX13aGlsZSh2b2lkIDAhPT1vKTtlbHNlIGRve2E9b1tpXSx2b2lkIDAhPT1hJiYoZS5wdXNoKG8udGltZSksbi5wdXNoKGEpKSxvPXRbcisrXX13aGlsZSh2b2lkIDAhPT1vKX0sc3ViY2xpcDpmdW5jdGlvbih0LGUsbixpLHI9MzApe2NvbnN0IG89dC5jbG9uZSgpO28ubmFtZT1lO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxvLnRyYWNrcy5sZW5ndGg7Kyt0KXtjb25zdCBlPW8udHJhY2tzW3RdLHM9ZS5nZXRWYWx1ZVNpemUoKSxsPVtdLGM9W107Zm9yKGxldCB0PTA7dDxlLnRpbWVzLmxlbmd0aDsrK3Qpe2NvbnN0IG89ZS50aW1lc1t0XSpyO2lmKCEobzxufHxvPj1pKSl7bC5wdXNoKGUudGltZXNbdF0pO2ZvcihsZXQgbj0wO248czsrK24pYy5wdXNoKGUudmFsdWVzW3QqcytuXSl9fTAhPT1sLmxlbmd0aCYmKGUudGltZXM9UDZ0LmNvbnZlcnRBcnJheShsLGUudGltZXMuY29uc3RydWN0b3IpLGUudmFsdWVzPVA2dC5jb252ZXJ0QXJyYXkoYyxlLnZhbHVlcy5jb25zdHJ1Y3RvciksYS5wdXNoKGUpKX1vLnRyYWNrcz1hO2xldCBzPTEvMDtmb3IobGV0IHQ9MDt0PG8udHJhY2tzLmxlbmd0aDsrK3Qpcz5vLnRyYWNrc1t0XS50aW1lc1swXSYmKHM9by50cmFja3NbdF0udGltZXNbMF0pO2ZvcihsZXQgdD0wO3Q8by50cmFja3MubGVuZ3RoOysrdClvLnRyYWNrc1t0XS5zaGlmdCgtMSpzKTtyZXR1cm4gby5yZXNldER1cmF0aW9uKCksb30sbWFrZUNsaXBBZGRpdGl2ZTpmdW5jdGlvbih0LGU9MCxuPXQsaT0zMCl7aTw9MCYmKGk9MzApO2NvbnN0IHI9bi50cmFja3MubGVuZ3RoLG89ZS9pO2ZvcihsZXQgZT0wO2U8cjsrK2Upe2NvbnN0IGk9bi50cmFja3NbZV0scj1pLlZhbHVlVHlwZU5hbWU7aWYoImJvb2wiPT09cnx8InN0cmluZyI9PT1yKWNvbnRpbnVlO2NvbnN0IGE9dC50cmFja3MuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZT09PWkubmFtZSYmdC5WYWx1ZVR5cGVOYW1lPT09cn0pKTtpZih2b2lkIDA9PT1hKWNvbnRpbnVlO2xldCBzPTA7Y29uc3QgbD1pLmdldFZhbHVlU2l6ZSgpO2kuY3JlYXRlSW50ZXJwb2xhbnQuaXNJbnRlcnBvbGFudEZhY3RvcnlNZXRob2RHTFRGQ3ViaWNTcGxpbmUmJihzPWwvMyk7bGV0IGM9MDtjb25zdCB1PWEuZ2V0VmFsdWVTaXplKCk7YS5jcmVhdGVJbnRlcnBvbGFudC5pc0ludGVycG9sYW50RmFjdG9yeU1ldGhvZEdMVEZDdWJpY1NwbGluZSYmKGM9dS8zKTtjb25zdCBoPWkudGltZXMubGVuZ3RoLTE7bGV0IGQ7aWYobzw9aS50aW1lc1swXSlkPVA2dC5hcnJheVNsaWNlKGkudmFsdWVzLHMsbC1zKTtlbHNlIGlmKG8+PWkudGltZXNbaF0pe2NvbnN0IHQ9aCpsK3M7ZD1QNnQuYXJyYXlTbGljZShpLnZhbHVlcyx0LHQrbC1zKX1lbHNle2NvbnN0IHQ9aS5jcmVhdGVJbnRlcnBvbGFudCgpLGU9cyxuPWwtczt0LmV2YWx1YXRlKG8pLGQ9UDZ0LmFycmF5U2xpY2UodC5yZXN1bHRCdWZmZXIsZSxuKX0icXVhdGVybmlvbiI9PT1yJiYobmV3IFRKdCkuZnJvbUFycmF5KGQpLm5vcm1hbGl6ZSgpLmNvbmp1Z2F0ZSgpLnRvQXJyYXkoZCk7Y29uc3QgcD1hLnRpbWVzLmxlbmd0aDtmb3IobGV0IHQ9MDt0PHA7Kyt0KXtjb25zdCBlPXQqdStjO2lmKCJxdWF0ZXJuaW9uIj09PXIpVEp0Lm11bHRpcGx5UXVhdGVybmlvbnNGbGF0KGEudmFsdWVzLGUsZCwwLGEudmFsdWVzLGUpO2Vsc2V7Y29uc3QgdD11LTIqYztmb3IobGV0IG49MDtuPHQ7KytuKWEudmFsdWVzW2Urbl0tPWRbbl19fX1yZXR1cm4gdC5ibGVuZE1vZGU9UFp0LHR9fTtjbGFzcyBONnR7Y29uc3RydWN0b3IodCxlLG4saSl7dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnM9dCx0aGlzLl9jYWNoZWRJbmRleD0wLHRoaXMucmVzdWx0QnVmZmVyPXZvaWQgMCE9PWk/aTpuZXcgZS5jb25zdHJ1Y3RvcihuKSx0aGlzLnNhbXBsZVZhbHVlcz1lLHRoaXMudmFsdWVTaXplPW4sdGhpcy5zZXR0aW5ncz1udWxsLHRoaXMuRGVmYXVsdFNldHRpbmdzXz17fX1ldmFsdWF0ZSh0KXtjb25zdCBlPXRoaXMucGFyYW1ldGVyUG9zaXRpb25zO2xldCBuPXRoaXMuX2NhY2hlZEluZGV4LGk9ZVtuXSxyPWVbbi0xXTt0OntlOntsZXQgbztuOntpOmlmKCEodDxpKSl7Zm9yKGxldCBvPW4rMjs7KXtpZih2b2lkIDA9PT1pKXtpZih0PHIpYnJlYWsgaTtyZXR1cm4gbj1lLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1uLHRoaXMuYWZ0ZXJFbmRfKG4tMSx0LHIpfWlmKG49PT1vKWJyZWFrO2lmKHI9aSxpPWVbKytuXSx0PGkpYnJlYWsgZX1vPWUubGVuZ3RoO2JyZWFrIG59aWYodD49cilicmVhayB0O3tjb25zdCBhPWVbMV07dDxhJiYobj0yLHI9YSk7Zm9yKGxldCBvPW4tMjs7KXtpZih2b2lkIDA9PT1yKXJldHVybiB0aGlzLl9jYWNoZWRJbmRleD0wLHRoaXMuYmVmb3JlU3RhcnRfKDAsdCxpKTtpZihuPT09bylicmVhaztpZihpPXIscj1lWy0tbi0xXSx0Pj1yKWJyZWFrIGV9bz1uLG49MH19Zm9yKDtuPG87KXtjb25zdCBpPW4rbz4+PjE7dDxlW2ldP289aTpuPWkrMX1pZihpPWVbbl0scj1lW24tMV0sdm9pZCAwPT09cilyZXR1cm4gdGhpcy5fY2FjaGVkSW5kZXg9MCx0aGlzLmJlZm9yZVN0YXJ0XygwLHQsaSk7aWYodm9pZCAwPT09aSlyZXR1cm4gbj1lLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1uLHRoaXMuYWZ0ZXJFbmRfKG4tMSxyLHQpfXRoaXMuX2NhY2hlZEluZGV4PW4sdGhpcy5pbnRlcnZhbENoYW5nZWRfKG4scixpKX1yZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZV8obixyLHQsaSl9Z2V0U2V0dGluZ3NfKCl7cmV0dXJuIHRoaXMuc2V0dGluZ3N8fHRoaXMuRGVmYXVsdFNldHRpbmdzX31jb3B5U2FtcGxlVmFsdWVfKHQpe2NvbnN0IGU9dGhpcy5yZXN1bHRCdWZmZXIsbj10aGlzLnNhbXBsZVZhbHVlcyxpPXRoaXMudmFsdWVTaXplLHI9dCppO2ZvcihsZXQgdD0wO3QhPT1pOysrdCllW3RdPW5bcit0XTtyZXR1cm4gZX1pbnRlcnBvbGF0ZV8oKXt0aHJvdyBuZXcgRXJyb3IoImNhbGwgdG8gYWJzdHJhY3QgbWV0aG9kIil9aW50ZXJ2YWxDaGFuZ2VkXygpe319TjZ0LnByb3RvdHlwZS5iZWZvcmVTdGFydF89TjZ0LnByb3RvdHlwZS5jb3B5U2FtcGxlVmFsdWVfLE42dC5wcm90b3R5cGUuYWZ0ZXJFbmRfPU42dC5wcm90b3R5cGUuY29weVNhbXBsZVZhbHVlXztjbGFzcyBJNnQgZXh0ZW5kcyBONnR7Y29uc3RydWN0b3IodCxlLG4saSl7c3VwZXIodCxlLG4saSksdGhpcy5fd2VpZ2h0UHJldj0tMCx0aGlzLl9vZmZzZXRQcmV2PS0wLHRoaXMuX3dlaWdodE5leHQ9LTAsdGhpcy5fb2Zmc2V0TmV4dD0tMCx0aGlzLkRlZmF1bHRTZXR0aW5nc189e2VuZGluZ1N0YXJ0OkNadCxlbmRpbmdFbmQ6Q1p0fX1pbnRlcnZhbENoYW5nZWRfKHQsZSxuKXtjb25zdCBpPXRoaXMucGFyYW1ldGVyUG9zaXRpb25zO2xldCByPXQtMixvPXQrMSxhPWlbcl0scz1pW29dO2lmKHZvaWQgMD09PWEpc3dpdGNoKHRoaXMuZ2V0U2V0dGluZ3NfKCkuZW5kaW5nU3RhcnQpe2Nhc2UgQVp0OnI9dCxhPTIqZS1uO2JyZWFrO2Nhc2Uga1p0OnI9aS5sZW5ndGgtMixhPWUraVtyXS1pW3IrMV07YnJlYWs7ZGVmYXVsdDpyPXQsYT1ufWlmKHZvaWQgMD09PXMpc3dpdGNoKHRoaXMuZ2V0U2V0dGluZ3NfKCkuZW5kaW5nRW5kKXtjYXNlIEFadDpvPXQscz0yKm4tZTticmVhaztjYXNlIGtadDpvPTEscz1uK2lbMV0taVswXTticmVhaztkZWZhdWx0Om89dC0xLHM9ZX1jb25zdCBsPS41KihuLWUpLGM9dGhpcy52YWx1ZVNpemU7dGhpcy5fd2VpZ2h0UHJldj1sLyhlLWEpLHRoaXMuX3dlaWdodE5leHQ9bC8ocy1uKSx0aGlzLl9vZmZzZXRQcmV2PXIqYyx0aGlzLl9vZmZzZXROZXh0PW8qY31pbnRlcnBvbGF0ZV8odCxlLG4saSl7Y29uc3Qgcj10aGlzLnJlc3VsdEJ1ZmZlcixvPXRoaXMuc2FtcGxlVmFsdWVzLGE9dGhpcy52YWx1ZVNpemUscz10KmEsbD1zLWEsYz10aGlzLl9vZmZzZXRQcmV2LHU9dGhpcy5fb2Zmc2V0TmV4dCxoPXRoaXMuX3dlaWdodFByZXYsZD10aGlzLl93ZWlnaHROZXh0LHA9KG4tZSkvKGktZSksZj1wKnAsbT1mKnAsZz0taCptKzIqaCpmLWgqcCxfPSgxK2gpKm0rKC0xLjUtMipoKSpmKygtLjUraCkqcCsxLHk9KC0xLWQpKm0rKDEuNStkKSpmKy41KnAsdj1kKm0tZCpmO2ZvcihsZXQgdD0wO3QhPT1hOysrdClyW3RdPWcqb1tjK3RdK18qb1tsK3RdK3kqb1tzK3RdK3Yqb1t1K3RdO3JldHVybiByfX1jbGFzcyBSNnQgZXh0ZW5kcyBONnR7Y29uc3RydWN0b3IodCxlLG4saSl7c3VwZXIodCxlLG4saSl9aW50ZXJwb2xhdGVfKHQsZSxuLGkpe2NvbnN0IHI9dGhpcy5yZXN1bHRCdWZmZXIsbz10aGlzLnNhbXBsZVZhbHVlcyxhPXRoaXMudmFsdWVTaXplLHM9dCphLGw9cy1hLGM9KG4tZSkvKGktZSksdT0xLWM7Zm9yKGxldCB0PTA7dCE9PWE7Kyt0KXJbdF09b1tsK3RdKnUrb1tzK3RdKmM7cmV0dXJuIHJ9fWNsYXNzIE82dCBleHRlbmRzIE42dHtjb25zdHJ1Y3Rvcih0LGUsbixpKXtzdXBlcih0LGUsbixpKX1pbnRlcnBvbGF0ZV8odCl7cmV0dXJuIHRoaXMuY29weVNhbXBsZVZhbHVlXyh0LTEpfX1jbGFzcyB6NnR7Y29uc3RydWN0b3IodCxlLG4saSl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IHRyYWNrIG5hbWUgaXMgdW5kZWZpbmVkIik7aWYodm9pZCAwPT09ZXx8MD09PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogbm8ga2V5ZnJhbWVzIGluIHRyYWNrIG5hbWVkICIrdCk7dGhpcy5uYW1lPXQsdGhpcy50aW1lcz1QNnQuY29udmVydEFycmF5KGUsdGhpcy5UaW1lQnVmZmVyVHlwZSksdGhpcy52YWx1ZXM9UDZ0LmNvbnZlcnRBcnJheShuLHRoaXMuVmFsdWVCdWZmZXJUeXBlKSx0aGlzLnNldEludGVycG9sYXRpb24oaXx8dGhpcy5EZWZhdWx0SW50ZXJwb2xhdGlvbil9c3RhdGljIHRvSlNPTih0KXtjb25zdCBlPXQuY29uc3RydWN0b3I7bGV0IG47aWYoZS50b0pTT04hPT10aGlzLnRvSlNPTiluPWUudG9KU09OKHQpO2Vsc2V7bj17bmFtZTp0Lm5hbWUsdGltZXM6UDZ0LmNvbnZlcnRBcnJheSh0LnRpbWVzLEFycmF5KSx2YWx1ZXM6UDZ0LmNvbnZlcnRBcnJheSh0LnZhbHVlcyxBcnJheSl9O2NvbnN0IGU9dC5nZXRJbnRlcnBvbGF0aW9uKCk7ZSE9PXQuRGVmYXVsdEludGVycG9sYXRpb24mJihuLmludGVycG9sYXRpb249ZSl9cmV0dXJuIG4udHlwZT10LlZhbHVlVHlwZU5hbWUsbn1JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZSh0KXtyZXR1cm4gbmV3IE82dCh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9SW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyKHQpe3JldHVybiBuZXcgUjZ0KHRoaXMudGltZXMsdGhpcy52YWx1ZXMsdGhpcy5nZXRWYWx1ZVNpemUoKSx0KX1JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGgodCl7cmV0dXJuIG5ldyBJNnQodGhpcy50aW1lcyx0aGlzLnZhbHVlcyx0aGlzLmdldFZhbHVlU2l6ZSgpLHQpfXNldEludGVycG9sYXRpb24odCl7bGV0IGU7c3dpdGNoKHQpe2Nhc2UgTVp0OmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTticmVhaztjYXNlIEVadDplPXRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyO2JyZWFrO2Nhc2UgVFp0OmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGh9aWYodm9pZCAwPT09ZSl7Y29uc3QgZT0idW5zdXBwb3J0ZWQgaW50ZXJwb2xhdGlvbiBmb3IgIit0aGlzLlZhbHVlVHlwZU5hbWUrIiBrZXlmcmFtZSB0cmFjayBuYW1lZCAiK3RoaXMubmFtZTtpZih2b2lkIDA9PT10aGlzLmNyZWF0ZUludGVycG9sYW50KXtpZih0PT09dGhpcy5EZWZhdWx0SW50ZXJwb2xhdGlvbil0aHJvdyBuZXcgRXJyb3IoZSk7dGhpcy5zZXRJbnRlcnBvbGF0aW9uKHRoaXMuRGVmYXVsdEludGVycG9sYXRpb24pfXJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLktleWZyYW1lVHJhY2s6IixlKSx0aGlzfXJldHVybiB0aGlzLmNyZWF0ZUludGVycG9sYW50PWUsdGhpc31nZXRJbnRlcnBvbGF0aW9uKCl7c3dpdGNoKHRoaXMuY3JlYXRlSW50ZXJwb2xhbnQpe2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTpyZXR1cm4gTVp0O2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI6cmV0dXJuIEVadDtjYXNlIHRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoOnJldHVybiBUWnR9fWdldFZhbHVlU2l6ZSgpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGgvdGhpcy50aW1lcy5sZW5ndGh9c2hpZnQodCl7aWYoMCE9PXQpe2NvbnN0IGU9dGhpcy50aW1lcztmb3IobGV0IG49MCxpPWUubGVuZ3RoO24hPT1pOysrbillW25dKz10fXJldHVybiB0aGlzfXNjYWxlKHQpe2lmKDEhPT10KXtjb25zdCBlPXRoaXMudGltZXM7Zm9yKGxldCBuPTAsaT1lLmxlbmd0aDtuIT09aTsrK24pZVtuXSo9dH1yZXR1cm4gdGhpc310cmltKHQsZSl7Y29uc3Qgbj10aGlzLnRpbWVzLGk9bi5sZW5ndGg7bGV0IHI9MCxvPWktMTtmb3IoO3IhPT1pJiZuW3JdPHQ7KSsrcjtmb3IoOy0xIT09byYmbltvXT5lOyktLW87aWYoKytvLDAhPT1yfHxvIT09aSl7cj49byYmKG89TWF0aC5tYXgobywxKSxyPW8tMSk7Y29uc3QgdD10aGlzLmdldFZhbHVlU2l6ZSgpO3RoaXMudGltZXM9UDZ0LmFycmF5U2xpY2UobixyLG8pLHRoaXMudmFsdWVzPVA2dC5hcnJheVNsaWNlKHRoaXMudmFsdWVzLHIqdCxvKnQpfXJldHVybiB0aGlzfXZhbGlkYXRlKCl7bGV0IHQ9ITA7Y29uc3QgZT10aGlzLmdldFZhbHVlU2l6ZSgpO2UtTWF0aC5mbG9vcihlKSE9MCYmKGNvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IEludmFsaWQgdmFsdWUgc2l6ZSBpbiB0cmFjay4iLHRoaXMpLHQ9ITEpO2NvbnN0IG49dGhpcy50aW1lcyxpPXRoaXMudmFsdWVzLHI9bi5sZW5ndGg7MD09PXImJihjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBUcmFjayBpcyBlbXB0eS4iLHRoaXMpLHQ9ITEpO2xldCBvPW51bGw7Zm9yKGxldCBlPTA7ZSE9PXI7ZSsrKXtjb25zdCBpPW5bZV07aWYoIm51bWJlciI9PXR5cGVvZiBpJiZpc05hTihpKSl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVGltZSBpcyBub3QgYSB2YWxpZCBudW1iZXIuIix0aGlzLGUsaSksdD0hMTticmVha31pZihudWxsIT09byYmbz5pKXtjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBPdXQgb2Ygb3JkZXIga2V5cy4iLHRoaXMsZSxpLG8pLHQ9ITE7YnJlYWt9bz1pfWlmKHZvaWQgMCE9PWkmJlA2dC5pc1R5cGVkQXJyYXkoaSkpZm9yKGxldCBlPTAsbj1pLmxlbmd0aDtlIT09bjsrK2Upe2NvbnN0IG49aVtlXTtpZihpc05hTihuKSl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVmFsdWUgaXMgbm90IGEgdmFsaWQgbnVtYmVyLiIsdGhpcyxlLG4pLHQ9ITE7YnJlYWt9fXJldHVybiB0fW9wdGltaXplKCl7Y29uc3QgdD1QNnQuYXJyYXlTbGljZSh0aGlzLnRpbWVzKSxlPVA2dC5hcnJheVNsaWNlKHRoaXMudmFsdWVzKSxuPXRoaXMuZ2V0VmFsdWVTaXplKCksaT10aGlzLmdldEludGVycG9sYXRpb24oKT09PVRadCxyPXQubGVuZ3RoLTE7bGV0IG89MTtmb3IobGV0IGE9MTthPHI7KythKXtsZXQgcj0hMTtjb25zdCBzPXRbYV07aWYocyE9PXRbYSsxXSYmKDEhPT1hfHxzIT09dFswXSkpaWYoaSlyPSEwO2Vsc2V7Y29uc3QgdD1hKm4saT10LW4sbz10K247Zm9yKGxldCBhPTA7YSE9PW47KythKXtjb25zdCBuPWVbdCthXTtpZihuIT09ZVtpK2FdfHxuIT09ZVtvK2FdKXtyPSEwO2JyZWFrfX19aWYocil7aWYoYSE9PW8pe3Rbb109dFthXTtjb25zdCBpPWEqbixyPW8qbjtmb3IobGV0IHQ9MDt0IT09bjsrK3QpZVtyK3RdPWVbaSt0XX0rK299fWlmKHI+MCl7dFtvXT10W3JdO2ZvcihsZXQgdD1yKm4saT1vKm4sYT0wO2EhPT1uOysrYSllW2krYV09ZVt0K2FdOysrb31yZXR1cm4gbyE9PXQubGVuZ3RoPyh0aGlzLnRpbWVzPVA2dC5hcnJheVNsaWNlKHQsMCxvKSx0aGlzLnZhbHVlcz1QNnQuYXJyYXlTbGljZShlLDAsbypuKSk6KHRoaXMudGltZXM9dCx0aGlzLnZhbHVlcz1lKSx0aGlzfWNsb25lKCl7Y29uc3QgdD1QNnQuYXJyYXlTbGljZSh0aGlzLnRpbWVzLDApLGU9UDZ0LmFycmF5U2xpY2UodGhpcy52YWx1ZXMsMCksbj1uZXcoMCx0aGlzLmNvbnN0cnVjdG9yKSh0aGlzLm5hbWUsdCxlKTtyZXR1cm4gbi5jcmVhdGVJbnRlcnBvbGFudD10aGlzLmNyZWF0ZUludGVycG9sYW50LG59fXo2dC5wcm90b3R5cGUuVGltZUJ1ZmZlclR5cGU9RmxvYXQzMkFycmF5LHo2dC5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUZsb2F0MzJBcnJheSx6NnQucHJvdG90eXBlLkRlZmF1bHRJbnRlcnBvbGF0aW9uPUVadDtjbGFzcyBENnQgZXh0ZW5kcyB6NnR7fUQ2dC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0iYm9vbCIsRDZ0LnByb3RvdHlwZS5WYWx1ZUJ1ZmZlclR5cGU9QXJyYXksRDZ0LnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1NWnQsRDZ0LnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI9dm9pZCAwLEQ2dC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoPXZvaWQgMDtjbGFzcyBCNnQgZXh0ZW5kcyB6NnR7fUI2dC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0iY29sb3IiO2NsYXNzIEg2dCBleHRlbmRzIHo2dHt9SDZ0LnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJudW1iZXIiO2NsYXNzIEY2dCBleHRlbmRzIE42dHtjb25zdHJ1Y3Rvcih0LGUsbixpKXtzdXBlcih0LGUsbixpKX1pbnRlcnBvbGF0ZV8odCxlLG4saSl7Y29uc3Qgcj10aGlzLnJlc3VsdEJ1ZmZlcixvPXRoaXMuc2FtcGxlVmFsdWVzLGE9dGhpcy52YWx1ZVNpemUscz0obi1lKS8oaS1lKTtsZXQgbD10KmE7Zm9yKGxldCB0PWwrYTtsIT09dDtsKz00KVRKdC5zbGVycEZsYXQociwwLG8sbC1hLG8sbCxzKTtyZXR1cm4gcn19Y2xhc3MgVjZ0IGV4dGVuZHMgejZ0e0ludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcih0KXtyZXR1cm4gbmV3IEY2dCh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9fVY2dC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0icXVhdGVybmlvbiIsVjZ0LnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1FWnQsVjZ0LnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGg9dm9pZCAwO2NsYXNzIFU2dCBleHRlbmRzIHo2dHt9VTZ0LnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJzdHJpbmciLFU2dC5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUFycmF5LFU2dC5wcm90b3R5cGUuRGVmYXVsdEludGVycG9sYXRpb249TVp0LFU2dC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyPXZvaWQgMCxVNnQucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aD12b2lkIDA7Y2xhc3MgajZ0IGV4dGVuZHMgejZ0e31qNnQucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9InZlY3RvciI7Y2xhc3MgRzZ0e2NvbnN0cnVjdG9yKHQsZT0tMSxuLGk9MjUwMCl7dGhpcy5uYW1lPXQsdGhpcy50cmFja3M9bix0aGlzLmR1cmF0aW9uPWUsdGhpcy5ibGVuZE1vZGU9aSx0aGlzLnV1aWQ9WFp0KCksdGhpcy5kdXJhdGlvbjwwJiZ0aGlzLnJlc2V0RHVyYXRpb24oKX1zdGF0aWMgcGFyc2UodCl7Y29uc3QgZT1bXSxuPXQudHJhY2tzLGk9MS8odC5mcHN8fDEpO2ZvcihsZXQgdD0wLHI9bi5sZW5ndGg7dCE9PXI7Kyt0KWUucHVzaChXNnQoblt0XSkuc2NhbGUoaSkpO2NvbnN0IHI9bmV3IHRoaXModC5uYW1lLHQuZHVyYXRpb24sZSx0LmJsZW5kTW9kZSk7cmV0dXJuIHIudXVpZD10LnV1aWQscn1zdGF0aWMgdG9KU09OKHQpe2NvbnN0IGU9W10sbj10LnRyYWNrcyxpPXtuYW1lOnQubmFtZSxkdXJhdGlvbjp0LmR1cmF0aW9uLHRyYWNrczplLHV1aWQ6dC51dWlkLGJsZW5kTW9kZTp0LmJsZW5kTW9kZX07Zm9yKGxldCB0PTAsaT1uLmxlbmd0aDt0IT09aTsrK3QpZS5wdXNoKHo2dC50b0pTT04oblt0XSkpO3JldHVybiBpfXN0YXRpYyBDcmVhdGVGcm9tTW9ycGhUYXJnZXRTZXF1ZW5jZSh0LGUsbixpKXtjb25zdCByPWUubGVuZ3RoLG89W107Zm9yKGxldCB0PTA7dDxyO3QrKyl7bGV0IGE9W10scz1bXTthLnB1c2goKHQrci0xKSVyLHQsKHQrMSklcikscy5wdXNoKDAsMSwwKTtjb25zdCBsPVA2dC5nZXRLZXlmcmFtZU9yZGVyKGEpO2E9UDZ0LnNvcnRlZEFycmF5KGEsMSxsKSxzPVA2dC5zb3J0ZWRBcnJheShzLDEsbCksaXx8MCE9PWFbMF18fChhLnB1c2gocikscy5wdXNoKHNbMF0pKSxvLnB1c2gobmV3IEg2dCgiLm1vcnBoVGFyZ2V0SW5mbHVlbmNlc1siK2VbdF0ubmFtZSsiXSIsYSxzKS5zY2FsZSgxL24pKX1yZXR1cm4gbmV3IHRoaXModCwtMSxvKX1zdGF0aWMgZmluZEJ5TmFtZSh0LGUpe2xldCBuPXQ7aWYoIUFycmF5LmlzQXJyYXkodCkpe2NvbnN0IGU9dDtuPWUuZ2VvbWV0cnkmJmUuZ2VvbWV0cnkuYW5pbWF0aW9uc3x8ZS5hbmltYXRpb25zfWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKWlmKG5bdF0ubmFtZT09PWUpcmV0dXJuIG5bdF07cmV0dXJuIG51bGx9c3RhdGljIENyZWF0ZUNsaXBzRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2VzKHQsZSxuKXtjb25zdCBpPXt9LHI9L14oW1x3LV0qPykoW1xkXSspJC87Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0sbz1uLm5hbWUubWF0Y2gocik7aWYobyYmby5sZW5ndGg+MSl7Y29uc3QgdD1vWzFdO2xldCBlPWlbdF07ZXx8KGlbdF09ZT1bXSksZS5wdXNoKG4pfX1jb25zdCBvPVtdO2Zvcihjb25zdCB0IGluIGkpby5wdXNoKHRoaXMuQ3JlYXRlRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2UodCxpW3RdLGUsbikpO3JldHVybiBvfXN0YXRpYyBwYXJzZUFuaW1hdGlvbih0LGUpe2lmKCF0KXJldHVybiBjb25zb2xlLmVycm9yKCJUSFJFRS5BbmltYXRpb25DbGlwOiBObyBhbmltYXRpb24gaW4gSlNPTkxvYWRlciBkYXRhLiIpLG51bGw7Y29uc3Qgbj1mdW5jdGlvbih0LGUsbixpLHIpe2lmKDAhPT1uLmxlbmd0aCl7Y29uc3Qgbz1bXSxhPVtdO1A2dC5mbGF0dGVuSlNPTihuLG8sYSxpKSwwIT09by5sZW5ndGgmJnIucHVzaChuZXcgdChlLG8sYSkpfX0saT1bXSxyPXQubmFtZXx8ImRlZmF1bHQiLG89dC5mcHN8fDMwLGE9dC5ibGVuZE1vZGU7bGV0IHM9dC5sZW5ndGh8fC0xO2NvbnN0IGw9dC5oaWVyYXJjaHl8fFtdO2ZvcihsZXQgdD0wO3Q8bC5sZW5ndGg7dCsrKXtjb25zdCByPWxbdF0ua2V5cztpZihyJiYwIT09ci5sZW5ndGgpaWYoclswXS5tb3JwaFRhcmdldHMpe2NvbnN0IHQ9e307bGV0IGU7Zm9yKGU9MDtlPHIubGVuZ3RoO2UrKylpZihyW2VdLm1vcnBoVGFyZ2V0cylmb3IobGV0IG49MDtuPHJbZV0ubW9ycGhUYXJnZXRzLmxlbmd0aDtuKyspdFtyW2VdLm1vcnBoVGFyZ2V0c1tuXV09LTE7Zm9yKGNvbnN0IG4gaW4gdCl7Y29uc3QgdD1bXSxvPVtdO2ZvcihsZXQgaT0wO2khPT1yW2VdLm1vcnBoVGFyZ2V0cy5sZW5ndGg7KytpKXtjb25zdCBpPXJbZV07dC5wdXNoKGkudGltZSksby5wdXNoKGkubW9ycGhUYXJnZXQ9PT1uPzE6MCl9aS5wdXNoKG5ldyBINnQoIi5tb3JwaFRhcmdldEluZmx1ZW5jZVsiK24rIl0iLHQsbykpfXM9dC5sZW5ndGgqKG98fDEpfWVsc2V7Y29uc3Qgbz0iLmJvbmVzWyIrZVt0XS5uYW1lKyJdIjtuKGo2dCxvKyIucG9zaXRpb24iLHIsInBvcyIsaSksbihWNnQsbysiLnF1YXRlcm5pb24iLHIsInJvdCIsaSksbihqNnQsbysiLnNjYWxlIixyLCJzY2wiLGkpfX1yZXR1cm4gMD09PWkubGVuZ3RoP251bGw6bmV3IHRoaXMocixzLGksYSl9cmVzZXREdXJhdGlvbigpe2xldCB0PTA7Zm9yKGxldCBlPTAsbj10aGlzLnRyYWNrcy5sZW5ndGg7ZSE9PW47KytlKXtjb25zdCBuPXRoaXMudHJhY2tzW2VdO3Q9TWF0aC5tYXgodCxuLnRpbWVzW24udGltZXMubGVuZ3RoLTFdKX1yZXR1cm4gdGhpcy5kdXJhdGlvbj10LHRoaXN9dHJpbSgpe2ZvcihsZXQgdD0wO3Q8dGhpcy50cmFja3MubGVuZ3RoO3QrKyl0aGlzLnRyYWNrc1t0XS50cmltKDAsdGhpcy5kdXJhdGlvbik7cmV0dXJuIHRoaXN9dmFsaWRhdGUoKXtsZXQgdD0hMDtmb3IobGV0IGU9MDtlPHRoaXMudHJhY2tzLmxlbmd0aDtlKyspdD10JiZ0aGlzLnRyYWNrc1tlXS52YWxpZGF0ZSgpO3JldHVybiB0fW9wdGltaXplKCl7Zm9yKGxldCB0PTA7dDx0aGlzLnRyYWNrcy5sZW5ndGg7dCsrKXRoaXMudHJhY2tzW3RdLm9wdGltaXplKCk7cmV0dXJuIHRoaXN9Y2xvbmUoKXtjb25zdCB0PVtdO2ZvcihsZXQgZT0wO2U8dGhpcy50cmFja3MubGVuZ3RoO2UrKyl0LnB1c2godGhpcy50cmFja3NbZV0uY2xvbmUoKSk7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMubmFtZSx0aGlzLmR1cmF0aW9uLHQsdGhpcy5ibGVuZE1vZGUpfXRvSlNPTigpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLnRvSlNPTih0aGlzKX19ZnVuY3Rpb24gVzZ0KHQpe2lmKHZvaWQgMD09PXQudHlwZSl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IHRyYWNrIHR5cGUgdW5kZWZpbmVkLCBjYW4gbm90IHBhcnNlIik7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtzd2l0Y2godC50b0xvd2VyQ2FzZSgpKXtjYXNlInNjYWxhciI6Y2FzZSJkb3VibGUiOmNhc2UiZmxvYXQiOmNhc2UibnVtYmVyIjpjYXNlImludGVnZXIiOnJldHVybiBINnQ7Y2FzZSJ2ZWN0b3IiOmNhc2UidmVjdG9yMiI6Y2FzZSJ2ZWN0b3IzIjpjYXNlInZlY3RvcjQiOnJldHVybiBqNnQ7Y2FzZSJjb2xvciI6cmV0dXJuIEI2dDtjYXNlInF1YXRlcm5pb24iOnJldHVybiBWNnQ7Y2FzZSJib29sIjpjYXNlImJvb2xlYW4iOnJldHVybiBENnQ7Y2FzZSJzdHJpbmciOnJldHVybiBVNnR9dGhyb3cgbmV3IEVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBVbnN1cHBvcnRlZCB0eXBlTmFtZTogIit0KX0pKHQudHlwZSk7aWYodm9pZCAwPT09dC50aW1lcyl7Y29uc3QgZT1bXSxuPVtdO1A2dC5mbGF0dGVuSlNPTih0LmtleXMsZSxuLCJ2YWx1ZSIpLHQudGltZXM9ZSx0LnZhbHVlcz1ufXJldHVybiB2b2lkIDAhPT1lLnBhcnNlP2UucGFyc2UodCk6bmV3IGUodC5uYW1lLHQudGltZXMsdC52YWx1ZXMsdC5pbnRlcnBvbGF0aW9uKX1jb25zdCBxNnQ9e2VuYWJsZWQ6ITEsZmlsZXM6e30sYWRkOmZ1bmN0aW9uKHQsZSl7ITEhPT10aGlzLmVuYWJsZWQmJih0aGlzLmZpbGVzW3RdPWUpfSxnZXQ6ZnVuY3Rpb24odCl7aWYoITEhPT10aGlzLmVuYWJsZWQpcmV0dXJuIHRoaXMuZmlsZXNbdF19LHJlbW92ZTpmdW5jdGlvbih0KXtkZWxldGUgdGhpcy5maWxlc1t0XX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmZpbGVzPXt9fX07Y2xhc3MgWTZ0e2NvbnN0cnVjdG9yKHQsZSxuKXtjb25zdCBpPXRoaXM7bGV0IHIsbz0hMSxhPTAscz0wO2NvbnN0IGw9W107dGhpcy5vblN0YXJ0PXZvaWQgMCx0aGlzLm9uTG9hZD10LHRoaXMub25Qcm9ncmVzcz1lLHRoaXMub25FcnJvcj1uLHRoaXMuaXRlbVN0YXJ0PWZ1bmN0aW9uKHQpe3MrKywhMT09PW8mJnZvaWQgMCE9PWkub25TdGFydCYmaS5vblN0YXJ0KHQsYSxzKSxvPSEwfSx0aGlzLml0ZW1FbmQ9ZnVuY3Rpb24odCl7YSsrLHZvaWQgMCE9PWkub25Qcm9ncmVzcyYmaS5vblByb2dyZXNzKHQsYSxzKSxhPT09cyYmKG89ITEsdm9pZCAwIT09aS5vbkxvYWQmJmkub25Mb2FkKCkpfSx0aGlzLml0ZW1FcnJvcj1mdW5jdGlvbih0KXt2b2lkIDAhPT1pLm9uRXJyb3ImJmkub25FcnJvcih0KX0sdGhpcy5yZXNvbHZlVVJMPWZ1bmN0aW9uKHQpe3JldHVybiByP3IodCk6dH0sdGhpcy5zZXRVUkxNb2RpZmllcj1mdW5jdGlvbih0KXtyZXR1cm4gcj10LHRoaXN9LHRoaXMuYWRkSGFuZGxlcj1mdW5jdGlvbih0LGUpe3JldHVybiBsLnB1c2godCxlKSx0aGlzfSx0aGlzLnJlbW92ZUhhbmRsZXI9ZnVuY3Rpb24odCl7Y29uc3QgZT1sLmluZGV4T2YodCk7cmV0dXJuLTEhPT1lJiZsLnNwbGljZShlLDIpLHRoaXN9LHRoaXMuZ2V0SGFuZGxlcj1mdW5jdGlvbih0KXtmb3IobGV0IGU9MCxuPWwubGVuZ3RoO2U8bjtlKz0yKXtjb25zdCBuPWxbZV0saT1sW2UrMV07aWYobi5nbG9iYWwmJihuLmxhc3RJbmRleD0wKSxuLnRlc3QodCkpcmV0dXJuIGl9cmV0dXJuIG51bGx9fX1jb25zdCBYNnQ9bmV3IFk2dDtjbGFzcyAkNnR7Y29uc3RydWN0b3IodCl7dGhpcy5tYW5hZ2VyPXZvaWQgMCE9PXQ/dDpYNnQsdGhpcy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIix0aGlzLndpdGhDcmVkZW50aWFscz0hMSx0aGlzLnBhdGg9IiIsdGhpcy5yZXNvdXJjZVBhdGg9IiIsdGhpcy5yZXF1ZXN0SGVhZGVyPXt9fWxvYWQoKXt9bG9hZEFzeW5jKHQsZSl7Y29uc3Qgbj10aGlzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oaSxyKXtuLmxvYWQodCxpLGUscil9KSl9cGFyc2UoKXt9c2V0Q3Jvc3NPcmlnaW4odCl7cmV0dXJuIHRoaXMuY3Jvc3NPcmlnaW49dCx0aGlzfXNldFdpdGhDcmVkZW50aWFscyh0KXtyZXR1cm4gdGhpcy53aXRoQ3JlZGVudGlhbHM9dCx0aGlzfXNldFBhdGgodCl7cmV0dXJuIHRoaXMucGF0aD10LHRoaXN9c2V0UmVzb3VyY2VQYXRoKHQpe3JldHVybiB0aGlzLnJlc291cmNlUGF0aD10LHRoaXN9c2V0UmVxdWVzdEhlYWRlcih0KXtyZXR1cm4gdGhpcy5yZXF1ZXN0SGVhZGVyPXQsdGhpc319Y29uc3QgSzZ0PXt9O2NsYXNzIFo2dCBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe3ZvaWQgMD09PXQmJih0PSIiKSx2b2lkIDAhPT10aGlzLnBhdGgmJih0PXRoaXMucGF0aCt0KSx0PXRoaXMubWFuYWdlci5yZXNvbHZlVVJMKHQpO2NvbnN0IHI9dGhpcyxvPXE2dC5nZXQodCk7aWYodm9pZCAwIT09bylyZXR1cm4gci5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UmJmUobyksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKSxvO2lmKHZvaWQgMCE9PUs2dFt0XSlyZXR1cm4gdm9pZCBLNnRbdF0ucHVzaCh7b25Mb2FkOmUsb25Qcm9ncmVzczpuLG9uRXJyb3I6aX0pO2NvbnN0IGE9dC5tYXRjaCgvXmRhdGE6KC4qPykoO2Jhc2U2NCk/LCguKikkLyk7bGV0IHM7aWYoYSl7Y29uc3Qgbj1hWzFdLG89ISFhWzJdO2xldCBzPWFbM107cz1kZWNvZGVVUklDb21wb25lbnQocyksbyYmKHM9YXRvYihzKSk7dHJ5e2xldCBpO2NvbnN0IG89KHRoaXMucmVzcG9uc2VUeXBlfHwiIikudG9Mb3dlckNhc2UoKTtzd2l0Y2gobyl7Y2FzZSJhcnJheWJ1ZmZlciI6Y2FzZSJibG9iIjpjb25zdCB0PW5ldyBVaW50OEFycmF5KHMubGVuZ3RoKTtmb3IobGV0IGU9MDtlPHMubGVuZ3RoO2UrKyl0W2VdPXMuY2hhckNvZGVBdChlKTtpPSJibG9iIj09PW8/bmV3IEJsb2IoW3QuYnVmZmVyXSx7dHlwZTpufSk6dC5idWZmZXI7YnJlYWs7Y2FzZSJkb2N1bWVudCI6Y29uc3QgZT1uZXcgRE9NUGFyc2VyO2k9ZS5wYXJzZUZyb21TdHJpbmcocyxuKTticmVhaztjYXNlImpzb24iOmk9SlNPTi5wYXJzZShzKTticmVhaztkZWZhdWx0Omk9c31zZXRUaW1lb3V0KChmdW5jdGlvbigpe2UmJmUoaSksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKX1jYXRjaChlKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe2kmJmkoZSksci5tYW5hZ2VyLml0ZW1FcnJvcih0KSxyLm1hbmFnZXIuaXRlbUVuZCh0KX0pLDApfX1lbHNle0s2dFt0XT1bXSxLNnRbdF0ucHVzaCh7b25Mb2FkOmUsb25Qcm9ncmVzczpuLG9uRXJyb3I6aX0pLHM9bmV3IFhNTEh0dHBSZXF1ZXN0LHMub3BlbigiR0VUIix0LCEwKSxzLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLChmdW5jdGlvbihlKXtjb25zdCBuPXRoaXMucmVzcG9uc2UsaT1LNnRbdF07aWYoZGVsZXRlIEs2dFt0XSwyMDA9PT10aGlzLnN0YXR1c3x8MD09PXRoaXMuc3RhdHVzKXswPT09dGhpcy5zdGF0dXMmJmNvbnNvbGUud2FybigiVEhSRUUuRmlsZUxvYWRlcjogSFRUUCBTdGF0dXMgMCByZWNlaXZlZC4iKSxxNnQuYWRkKHQsbik7Zm9yKGxldCB0PTAsZT1pLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWlbdF07ZS5vbkxvYWQmJmUub25Mb2FkKG4pfXIubWFuYWdlci5pdGVtRW5kKHQpfWVsc2V7Zm9yKGxldCB0PTAsbj1pLmxlbmd0aDt0PG47dCsrKXtjb25zdCBuPWlbdF07bi5vbkVycm9yJiZuLm9uRXJyb3IoZSl9ci5tYW5hZ2VyLml0ZW1FcnJvcih0KSxyLm1hbmFnZXIuaXRlbUVuZCh0KX19KSwhMSkscy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsKGZ1bmN0aW9uKGUpe2NvbnN0IG49SzZ0W3RdO2ZvcihsZXQgdD0wLGk9bi5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1uW3RdO2kub25Qcm9ncmVzcyYmaS5vblByb2dyZXNzKGUpfX0pLCExKSxzLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoZnVuY3Rpb24oZSl7Y29uc3Qgbj1LNnRbdF07ZGVsZXRlIEs2dFt0XTtmb3IobGV0IHQ9MCxpPW4ubGVuZ3RoO3Q8aTt0Kyspe2NvbnN0IGk9blt0XTtpLm9uRXJyb3ImJmkub25FcnJvcihlKX1yLm1hbmFnZXIuaXRlbUVycm9yKHQpLHIubWFuYWdlci5pdGVtRW5kKHQpfSksITEpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLChmdW5jdGlvbihlKXtjb25zdCBuPUs2dFt0XTtkZWxldGUgSzZ0W3RdO2ZvcihsZXQgdD0wLGk9bi5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1uW3RdO2kub25FcnJvciYmaS5vbkVycm9yKGUpfXIubWFuYWdlci5pdGVtRXJyb3IodCksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwhMSksdm9pZCAwIT09dGhpcy5yZXNwb25zZVR5cGUmJihzLnJlc3BvbnNlVHlwZT10aGlzLnJlc3BvbnNlVHlwZSksdm9pZCAwIT09dGhpcy53aXRoQ3JlZGVudGlhbHMmJihzLndpdGhDcmVkZW50aWFscz10aGlzLndpdGhDcmVkZW50aWFscykscy5vdmVycmlkZU1pbWVUeXBlJiZzLm92ZXJyaWRlTWltZVR5cGUodm9pZCAwIT09dGhpcy5taW1lVHlwZT90aGlzLm1pbWVUeXBlOiJ0ZXh0L3BsYWluIik7Zm9yKGNvbnN0IHQgaW4gdGhpcy5yZXF1ZXN0SGVhZGVyKXMuc2V0UmVxdWVzdEhlYWRlcih0LHRoaXMucmVxdWVzdEhlYWRlclt0XSk7cy5zZW5kKG51bGwpfXJldHVybiByLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHN9c2V0UmVzcG9uc2VUeXBlKHQpe3JldHVybiB0aGlzLnJlc3BvbnNlVHlwZT10LHRoaXN9c2V0TWltZVR5cGUodCl7cmV0dXJuIHRoaXMubWltZVR5cGU9dCx0aGlzfX1jbGFzcyBKNnQgZXh0ZW5kcyAkNnR7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixpKXt2b2lkIDAhPT10aGlzLnBhdGgmJih0PXRoaXMucGF0aCt0KSx0PXRoaXMubWFuYWdlci5yZXNvbHZlVVJMKHQpO2NvbnN0IHI9dGhpcyxvPXE2dC5nZXQodCk7aWYodm9pZCAwIT09bylyZXR1cm4gci5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UmJmUobyksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKSxvO2NvbnN0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiaW1nIik7ZnVuY3Rpb24gcygpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIscywhMSksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsbCwhMSkscTZ0LmFkZCh0LHRoaXMpLGUmJmUodGhpcyksci5tYW5hZ2VyLml0ZW1FbmQodCl9ZnVuY3Rpb24gbChlKXthLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHMsITEpLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGwsITEpLGkmJmkoZSksci5tYW5hZ2VyLml0ZW1FcnJvcih0KSxyLm1hbmFnZXIuaXRlbUVuZCh0KX1yZXR1cm4gYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixzLCExKSxhLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixsLCExKSwiZGF0YToiIT09dC5zdWJzdHIoMCw1KSYmdm9pZCAwIT09dGhpcy5jcm9zc09yaWdpbiYmKGEuY3Jvc3NPcmlnaW49dGhpcy5jcm9zc09yaWdpbiksci5tYW5hZ2VyLml0ZW1TdGFydCh0KSxhLnNyYz10LGF9fWNsYXNzIFE2dCBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9bmV3ICQxdCxvPW5ldyBKNnQodGhpcy5tYW5hZ2VyKTtvLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pLG8uc2V0UGF0aCh0aGlzLnBhdGgpO2xldCBhPTA7ZnVuY3Rpb24gcyhuKXtvLmxvYWQodFtuXSwoZnVuY3Rpb24odCl7ci5pbWFnZXNbbl09dCxhKyssNj09PWEmJihyLm5lZWRzVXBkYXRlPSEwLGUmJmUocikpfSksdm9pZCAwLGkpfWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7KytlKXMoZSk7cmV0dXJuIHJ9fWNsYXNzIHQ5dCBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9dGhpcyxvPW5ldyBNM3QsYT1uZXcgWjZ0KHRoaXMubWFuYWdlcik7cmV0dXJuIGEuc2V0UmVzcG9uc2VUeXBlKCJhcnJheWJ1ZmZlciIpLGEuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLGEuc2V0UGF0aCh0aGlzLnBhdGgpLGEuc2V0V2l0aENyZWRlbnRpYWxzKHIud2l0aENyZWRlbnRpYWxzKSxhLmxvYWQodCwoZnVuY3Rpb24odCl7Y29uc3Qgbj1yLnBhcnNlKHQpO24mJih2b2lkIDAhPT1uLmltYWdlP28uaW1hZ2U9bi5pbWFnZTp2b2lkIDAhPT1uLmRhdGEmJihvLmltYWdlLndpZHRoPW4ud2lkdGgsby5pbWFnZS5oZWlnaHQ9bi5oZWlnaHQsby5pbWFnZS5kYXRhPW4uZGF0YSksby53cmFwUz12b2lkIDAhPT1uLndyYXBTP24ud3JhcFM6S0t0LG8ud3JhcFQ9dm9pZCAwIT09bi53cmFwVD9uLndyYXBUOktLdCxvLm1hZ0ZpbHRlcj12b2lkIDAhPT1uLm1hZ0ZpbHRlcj9uLm1hZ0ZpbHRlcjplWnQsby5taW5GaWx0ZXI9dm9pZCAwIT09bi5taW5GaWx0ZXI/bi5taW5GaWx0ZXI6ZVp0LG8uYW5pc290cm9weT12b2lkIDAhPT1uLmFuaXNvdHJvcHk/bi5hbmlzb3Ryb3B5OjEsdm9pZCAwIT09bi5lbmNvZGluZyYmKG8uZW5jb2Rpbmc9bi5lbmNvZGluZyksdm9pZCAwIT09bi5mbGlwWSYmKG8uZmxpcFk9bi5mbGlwWSksdm9pZCAwIT09bi5mb3JtYXQmJihvLmZvcm1hdD1uLmZvcm1hdCksdm9pZCAwIT09bi50eXBlJiYoby50eXBlPW4udHlwZSksdm9pZCAwIT09bi5taXBtYXBzJiYoby5taXBtYXBzPW4ubWlwbWFwcyxvLm1pbkZpbHRlcj1pWnQpLDE9PT1uLm1pcG1hcENvdW50JiYoby5taW5GaWx0ZXI9ZVp0KSx2b2lkIDAhPT1uLmdlbmVyYXRlTWlwbWFwcyYmKG8uZ2VuZXJhdGVNaXBtYXBzPW4uZ2VuZXJhdGVNaXBtYXBzKSxvLm5lZWRzVXBkYXRlPSEwLGUmJmUobyxuKSl9KSxuLGkpLG99fWNsYXNzIGU5dCBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9bmV3IGJKdCxvPW5ldyBKNnQodGhpcy5tYW5hZ2VyKTtyZXR1cm4gby5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKSxvLnNldFBhdGgodGhpcy5wYXRoKSxvLmxvYWQodCwoZnVuY3Rpb24obil7ci5pbWFnZT1uO2NvbnN0IGk9dC5zZWFyY2goL1wuanBlP2coJHxcPykvaSk+MHx8MD09PXQuc2VhcmNoKC9eZGF0YVw6aW1hZ2VcL2pwZWcvKTtyLmZvcm1hdD1pP3VadDpoWnQsci5uZWVkc1VwZGF0ZT0hMCx2b2lkIDAhPT1lJiZlKHIpfSksbixpKSxyfX1jbGFzcyBuOXQgZXh0ZW5kcyBoNHR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iQ3VydmVQYXRoIix0aGlzLmN1cnZlcz1bXSx0aGlzLmF1dG9DbG9zZT0hMX1hZGQodCl7dGhpcy5jdXJ2ZXMucHVzaCh0KX1jbG9zZVBhdGgoKXtjb25zdCB0PXRoaXMuY3VydmVzWzBdLmdldFBvaW50KDApLGU9dGhpcy5jdXJ2ZXNbdGhpcy5jdXJ2ZXMubGVuZ3RoLTFdLmdldFBvaW50KDEpO3QuZXF1YWxzKGUpfHx0aGlzLmN1cnZlcy5wdXNoKG5ldyBFNHQoZSx0KSl9Z2V0UG9pbnQodCl7Y29uc3QgZT10KnRoaXMuZ2V0TGVuZ3RoKCksbj10aGlzLmdldEN1cnZlTGVuZ3RocygpO2xldCBpPTA7Zm9yKDtpPG4ubGVuZ3RoOyl7aWYobltpXT49ZSl7Y29uc3QgdD1uW2ldLWUscj10aGlzLmN1cnZlc1tpXSxvPXIuZ2V0TGVuZ3RoKCk7cmV0dXJuIHIuZ2V0UG9pbnRBdCgwPT09bz8wOjEtdC9vKX1pKyt9cmV0dXJuIG51bGx9Z2V0TGVuZ3RoKCl7Y29uc3QgdD10aGlzLmdldEN1cnZlTGVuZ3RocygpO3JldHVybiB0W3QubGVuZ3RoLTFdfXVwZGF0ZUFyY0xlbmd0aHMoKXt0aGlzLm5lZWRzVXBkYXRlPSEwLHRoaXMuY2FjaGVMZW5ndGhzPW51bGwsdGhpcy5nZXRDdXJ2ZUxlbmd0aHMoKX1nZXRDdXJ2ZUxlbmd0aHMoKXtpZih0aGlzLmNhY2hlTGVuZ3RocyYmdGhpcy5jYWNoZUxlbmd0aHMubGVuZ3RoPT09dGhpcy5jdXJ2ZXMubGVuZ3RoKXJldHVybiB0aGlzLmNhY2hlTGVuZ3Rocztjb25zdCB0PVtdO2xldCBlPTA7Zm9yKGxldCBuPTAsaT10aGlzLmN1cnZlcy5sZW5ndGg7bjxpO24rKyllKz10aGlzLmN1cnZlc1tuXS5nZXRMZW5ndGgoKSx0LnB1c2goZSk7cmV0dXJuIHRoaXMuY2FjaGVMZW5ndGhzPXQsdH1nZXRTcGFjZWRQb2ludHModD00MCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPD10O24rKyllLnB1c2godGhpcy5nZXRQb2ludChuL3QpKTtyZXR1cm4gdGhpcy5hdXRvQ2xvc2UmJmUucHVzaChlWzBdKSxlfWdldFBvaW50cyh0PTEyKXtjb25zdCBlPVtdO2xldCBuO2ZvcihsZXQgaT0wLHI9dGhpcy5jdXJ2ZXM7aTxyLmxlbmd0aDtpKyspe2NvbnN0IG89cltpXSxhPW8uZ2V0UG9pbnRzKG8mJm8uaXNFbGxpcHNlQ3VydmU/Mip0Om8mJihvLmlzTGluZUN1cnZlfHxvLmlzTGluZUN1cnZlMyk/MTpvJiZvLmlzU3BsaW5lQ3VydmU/dCpvLnBvaW50cy5sZW5ndGg6dCk7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0Kyspe2NvbnN0IGk9YVt0XTtuJiZuLmVxdWFscyhpKXx8KGUucHVzaChpKSxuPWkpfX1yZXR1cm4gdGhpcy5hdXRvQ2xvc2UmJmUubGVuZ3RoPjEmJiFlW2UubGVuZ3RoLTFdLmVxdWFscyhlWzBdKSYmZS5wdXNoKGVbMF0pLGV9Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMuY3VydmVzPVtdO2ZvcihsZXQgZT0wLG49dC5jdXJ2ZXMubGVuZ3RoO2U8bjtlKyspdGhpcy5jdXJ2ZXMucHVzaCh0LmN1cnZlc1tlXS5jbG9uZSgpKTtyZXR1cm4gdGhpcy5hdXRvQ2xvc2U9dC5hdXRvQ2xvc2UsdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QuYXV0b0Nsb3NlPXRoaXMuYXV0b0Nsb3NlLHQuY3VydmVzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5jdXJ2ZXMubGVuZ3RoO2U8bjtlKyspdC5jdXJ2ZXMucHVzaCh0aGlzLmN1cnZlc1tlXS50b0pTT04oKSk7cmV0dXJuIHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy5hdXRvQ2xvc2U9dC5hdXRvQ2xvc2UsdGhpcy5jdXJ2ZXM9W107Zm9yKGxldCBlPTAsbj10LmN1cnZlcy5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10LmN1cnZlc1tlXTt0aGlzLmN1cnZlcy5wdXNoKChuZXcgTDR0W24udHlwZV0pLmZyb21KU09OKG4pKX1yZXR1cm4gdGhpc319Y2xhc3MgaTl0IGV4dGVuZHMgbjl0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJQYXRoIix0aGlzLmN1cnJlbnRQb2ludD1uZXcgbUp0LHQmJnRoaXMuc2V0RnJvbVBvaW50cyh0KX1zZXRGcm9tUG9pbnRzKHQpe3RoaXMubW92ZVRvKHRbMF0ueCx0WzBdLnkpO2ZvcihsZXQgZT0xLG49dC5sZW5ndGg7ZTxuO2UrKyl0aGlzLmxpbmVUbyh0W2VdLngsdFtlXS55KTtyZXR1cm4gdGhpc31tb3ZlVG8odCxlKXtyZXR1cm4gdGhpcy5jdXJyZW50UG9pbnQuc2V0KHQsZSksdGhpc31saW5lVG8odCxlKXtjb25zdCBuPW5ldyBFNHQodGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKSxuZXcgbUp0KHQsZSkpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKG4pLHRoaXMuY3VycmVudFBvaW50LnNldCh0LGUpLHRoaXN9cXVhZHJhdGljQ3VydmVUbyh0LGUsbixpKXtjb25zdCByPW5ldyBDNHQodGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKSxuZXcgbUp0KHQsZSksbmV3IG1KdChuLGkpKTtyZXR1cm4gdGhpcy5jdXJ2ZXMucHVzaChyKSx0aGlzLmN1cnJlbnRQb2ludC5zZXQobixpKSx0aGlzfWJlemllckN1cnZlVG8odCxlLG4saSxyLG8pe2NvbnN0IGE9bmV3IFM0dCh0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpLG5ldyBtSnQodCxlKSxuZXcgbUp0KG4saSksbmV3IG1KdChyLG8pKTtyZXR1cm4gdGhpcy5jdXJ2ZXMucHVzaChhKSx0aGlzLmN1cnJlbnRQb2ludC5zZXQocixvKSx0aGlzfXNwbGluZVRocnUodCl7Y29uc3QgZT1bdGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKV0uY29uY2F0KHQpLG49bmV3IGs0dChlKTtyZXR1cm4gdGhpcy5jdXJ2ZXMucHVzaChuKSx0aGlzLmN1cnJlbnRQb2ludC5jb3B5KHRbdC5sZW5ndGgtMV0pLHRoaXN9YXJjKHQsZSxuLGkscixvKXtyZXR1cm4gdGhpcy5hYnNhcmModCt0aGlzLmN1cnJlbnRQb2ludC54LGUrdGhpcy5jdXJyZW50UG9pbnQueSxuLGkscixvKSx0aGlzfWFic2FyYyh0LGUsbixpLHIsbyl7cmV0dXJuIHRoaXMuYWJzZWxsaXBzZSh0LGUsbixuLGkscixvKSx0aGlzfWVsbGlwc2UodCxlLG4saSxyLG8sYSxzKXtyZXR1cm4gdGhpcy5hYnNlbGxpcHNlKHQrdGhpcy5jdXJyZW50UG9pbnQueCxlK3RoaXMuY3VycmVudFBvaW50LnksbixpLHIsbyxhLHMpLHRoaXN9YWJzZWxsaXBzZSh0LGUsbixpLHIsbyxhLHMpe2NvbnN0IGw9bmV3IGQ0dCh0LGUsbixpLHIsbyxhLHMpO2lmKHRoaXMuY3VydmVzLmxlbmd0aD4wKXtjb25zdCB0PWwuZ2V0UG9pbnQoMCk7dC5lcXVhbHModGhpcy5jdXJyZW50UG9pbnQpfHx0aGlzLmxpbmVUbyh0LngsdC55KX10aGlzLmN1cnZlcy5wdXNoKGwpO2NvbnN0IGM9bC5nZXRQb2ludCgxKTtyZXR1cm4gdGhpcy5jdXJyZW50UG9pbnQuY29weShjKSx0aGlzfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jdXJyZW50UG9pbnQuY29weSh0LmN1cnJlbnRQb2ludCksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LmN1cnJlbnRQb2ludD10aGlzLmN1cnJlbnRQb2ludC50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy5jdXJyZW50UG9pbnQuZnJvbUFycmF5KHQuY3VycmVudFBvaW50KSx0aGlzfX1jbGFzcyByOXQgZXh0ZW5kcyBpOXR7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy51dWlkPVhadCgpLHRoaXMudHlwZT0iU2hhcGUiLHRoaXMuaG9sZXM9W119Z2V0UG9pbnRzSG9sZXModCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxpPXRoaXMuaG9sZXMubGVuZ3RoO248aTtuKyspZVtuXT10aGlzLmhvbGVzW25dLmdldFBvaW50cyh0KTtyZXR1cm4gZX1leHRyYWN0UG9pbnRzKHQpe3JldHVybntzaGFwZTp0aGlzLmdldFBvaW50cyh0KSxob2xlczp0aGlzLmdldFBvaW50c0hvbGVzKHQpfX1jb3B5KHQpe3N1cGVyLmNvcHkodCksdGhpcy5ob2xlcz1bXTtmb3IobGV0IGU9MCxuPXQuaG9sZXMubGVuZ3RoO2U8bjtlKyspdGhpcy5ob2xlcy5wdXNoKHQuaG9sZXNbZV0uY2xvbmUoKSk7cmV0dXJuIHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTt0LnV1aWQ9dGhpcy51dWlkLHQuaG9sZXM9W107Zm9yKGxldCBlPTAsbj10aGlzLmhvbGVzLmxlbmd0aDtlPG47ZSsrKXQuaG9sZXMucHVzaCh0aGlzLmhvbGVzW2VdLnRvSlNPTigpKTtyZXR1cm4gdH1mcm9tSlNPTih0KXtzdXBlci5mcm9tSlNPTih0KSx0aGlzLnV1aWQ9dC51dWlkLHRoaXMuaG9sZXM9W107Zm9yKGxldCBlPTAsbj10LmhvbGVzLmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXQuaG9sZXNbZV07dGhpcy5ob2xlcy5wdXNoKChuZXcgaTl0KS5mcm9tSlNPTihuKSl9cmV0dXJuIHRoaXN9fWNsYXNzIG85dCBleHRlbmRzIGtRdHtjb25zdHJ1Y3Rvcih0LGU9MSl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpZ2h0Iix0aGlzLmNvbG9yPW5ldyAkUXQodCksdGhpcy5pbnRlbnNpdHk9ZX1kaXNwb3NlKCl7fWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMuaW50ZW5zaXR5PXQuaW50ZW5zaXR5LHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC5jb2xvcj10aGlzLmNvbG9yLmdldEhleCgpLGUub2JqZWN0LmludGVuc2l0eT10aGlzLmludGVuc2l0eSx2b2lkIDAhPT10aGlzLmdyb3VuZENvbG9yJiYoZS5vYmplY3QuZ3JvdW5kQ29sb3I9dGhpcy5ncm91bmRDb2xvci5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5kaXN0YW5jZSYmKGUub2JqZWN0LmRpc3RhbmNlPXRoaXMuZGlzdGFuY2UpLHZvaWQgMCE9PXRoaXMuYW5nbGUmJihlLm9iamVjdC5hbmdsZT10aGlzLmFuZ2xlKSx2b2lkIDAhPT10aGlzLmRlY2F5JiYoZS5vYmplY3QuZGVjYXk9dGhpcy5kZWNheSksdm9pZCAwIT09dGhpcy5wZW51bWJyYSYmKGUub2JqZWN0LnBlbnVtYnJhPXRoaXMucGVudW1icmEpLHZvaWQgMCE9PXRoaXMuc2hhZG93JiYoZS5vYmplY3Quc2hhZG93PXRoaXMuc2hhZG93LnRvSlNPTigpKSxlfX1vOXQucHJvdG90eXBlLmlzTGlnaHQ9ITA7Y2xhc3MgYTl0IGV4dGVuZHMgbzl0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LG4pLHRoaXMudHlwZT0iSGVtaXNwaGVyZUxpZ2h0Iix0aGlzLnBvc2l0aW9uLmNvcHkoa1F0LkRlZmF1bHRVcCksdGhpcy51cGRhdGVNYXRyaXgoKSx0aGlzLmdyb3VuZENvbG9yPW5ldyAkUXQoZSl9Y29weSh0KXtyZXR1cm4gbzl0LnByb3RvdHlwZS5jb3B5LmNhbGwodGhpcyx0KSx0aGlzLmdyb3VuZENvbG9yLmNvcHkodC5ncm91bmRDb2xvciksdGhpc319YTl0LnByb3RvdHlwZS5pc0hlbWlzcGhlcmVMaWdodD0hMDtjb25zdCBzOXQ9bmV3IHJRdCxsOXQ9bmV3IENKdCxjOXQ9bmV3IENKdDtjbGFzcyB1OXR7Y29uc3RydWN0b3IodCl7dGhpcy5jYW1lcmE9dCx0aGlzLmJpYXM9MCx0aGlzLm5vcm1hbEJpYXM9MCx0aGlzLnJhZGl1cz0xLHRoaXMubWFwU2l6ZT1uZXcgbUp0KDUxMiw1MTIpLHRoaXMubWFwPW51bGwsdGhpcy5tYXBQYXNzPW51bGwsdGhpcy5tYXRyaXg9bmV3IHJRdCx0aGlzLmF1dG9VcGRhdGU9ITAsdGhpcy5uZWVkc1VwZGF0ZT0hMSx0aGlzLl9mcnVzdHVtPW5ldyBpMHQsdGhpcy5fZnJhbWVFeHRlbnRzPW5ldyBtSnQoMSwxKSx0aGlzLl92aWV3cG9ydENvdW50PTEsdGhpcy5fdmlld3BvcnRzPVtuZXcgd0p0KDAsMCwxLDEpXX1nZXRWaWV3cG9ydENvdW50KCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0Q291bnR9Z2V0RnJ1c3R1bSgpe3JldHVybiB0aGlzLl9mcnVzdHVtfXVwZGF0ZU1hdHJpY2VzKHQpe2NvbnN0IGU9dGhpcy5jYW1lcmEsbj10aGlzLm1hdHJpeDtsOXQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLGUucG9zaXRpb24uY29weShsOXQpLGM5dC5zZXRGcm9tTWF0cml4UG9zaXRpb24odC50YXJnZXQubWF0cml4V29ybGQpLGUubG9va0F0KGM5dCksZS51cGRhdGVNYXRyaXhXb3JsZCgpLHM5dC5tdWx0aXBseU1hdHJpY2VzKGUucHJvamVjdGlvbk1hdHJpeCxlLm1hdHJpeFdvcmxkSW52ZXJzZSksdGhpcy5fZnJ1c3R1bS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChzOXQpLG4uc2V0KC41LDAsMCwuNSwwLC41LDAsLjUsMCwwLC41LC41LDAsMCwwLDEpLG4ubXVsdGlwbHkoZS5wcm9qZWN0aW9uTWF0cml4KSxuLm11bHRpcGx5KGUubWF0cml4V29ybGRJbnZlcnNlKX1nZXRWaWV3cG9ydCh0KXtyZXR1cm4gdGhpcy5fdmlld3BvcnRzW3RdfWdldEZyYW1lRXh0ZW50cygpe3JldHVybiB0aGlzLl9mcmFtZUV4dGVudHN9ZGlzcG9zZSgpe3RoaXMubWFwJiZ0aGlzLm1hcC5kaXNwb3NlKCksdGhpcy5tYXBQYXNzJiZ0aGlzLm1hcFBhc3MuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHRoaXMuY2FtZXJhPXQuY2FtZXJhLmNsb25lKCksdGhpcy5iaWFzPXQuYmlhcyx0aGlzLnJhZGl1cz10LnJhZGl1cyx0aGlzLm1hcFNpemUuY29weSh0Lm1hcFNpemUpLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9dG9KU09OKCl7Y29uc3QgdD17fTtyZXR1cm4gMCE9PXRoaXMuYmlhcyYmKHQuYmlhcz10aGlzLmJpYXMpLDAhPT10aGlzLm5vcm1hbEJpYXMmJih0Lm5vcm1hbEJpYXM9dGhpcy5ub3JtYWxCaWFzKSwxIT09dGhpcy5yYWRpdXMmJih0LnJhZGl1cz10aGlzLnJhZGl1cyksNTEyPT09dGhpcy5tYXBTaXplLngmJjUxMj09PXRoaXMubWFwU2l6ZS55fHwodC5tYXBTaXplPXRoaXMubWFwU2l6ZS50b0FycmF5KCkpLHQuY2FtZXJhPXRoaXMuY2FtZXJhLnRvSlNPTighMSkub2JqZWN0LGRlbGV0ZSB0LmNhbWVyYS5tYXRyaXgsdH19Y2xhc3MgaDl0IGV4dGVuZHMgdTl0e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IHExdCg1MCwxLC41LDUwMCkpLHRoaXMuZm9jdXM9MX11cGRhdGVNYXRyaWNlcyh0KXtjb25zdCBlPXRoaXMuY2FtZXJhLG49MipZWnQqdC5hbmdsZSp0aGlzLmZvY3VzLGk9dGhpcy5tYXBTaXplLndpZHRoL3RoaXMubWFwU2l6ZS5oZWlnaHQscj10LmRpc3RhbmNlfHxlLmZhcjtuPT09ZS5mb3YmJmk9PT1lLmFzcGVjdCYmcj09PWUuZmFyfHwoZS5mb3Y9bixlLmFzcGVjdD1pLGUuZmFyPXIsZS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkpLHN1cGVyLnVwZGF0ZU1hdHJpY2VzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5mb2N1cz10LmZvY3VzLHRoaXN9fWg5dC5wcm90b3R5cGUuaXNTcG90TGlnaHRTaGFkb3c9ITA7Y2xhc3MgZDl0IGV4dGVuZHMgbzl0e2NvbnN0cnVjdG9yKHQsZSxuPTAsaT1NYXRoLlBJLzMscj0wLG89MSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IlNwb3RMaWdodCIsdGhpcy5wb3NpdGlvbi5jb3B5KGtRdC5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy50YXJnZXQ9bmV3IGtRdCx0aGlzLmRpc3RhbmNlPW4sdGhpcy5hbmdsZT1pLHRoaXMucGVudW1icmE9cix0aGlzLmRlY2F5PW8sdGhpcy5zaGFkb3c9bmV3IGg5dH1nZXQgcG93ZXIoKXtyZXR1cm4gdGhpcy5pbnRlbnNpdHkqTWF0aC5QSX1zZXQgcG93ZXIodCl7dGhpcy5pbnRlbnNpdHk9dC9NYXRoLlBJfWRpc3Bvc2UoKXt0aGlzLnNoYWRvdy5kaXNwb3NlKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRpc3RhbmNlPXQuZGlzdGFuY2UsdGhpcy5hbmdsZT10LmFuZ2xlLHRoaXMucGVudW1icmE9dC5wZW51bWJyYSx0aGlzLmRlY2F5PXQuZGVjYXksdGhpcy50YXJnZXQ9dC50YXJnZXQuY2xvbmUoKSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fWQ5dC5wcm90b3R5cGUuaXNTcG90TGlnaHQ9ITA7Y29uc3QgcDl0PW5ldyByUXQsZjl0PW5ldyBDSnQsbTl0PW5ldyBDSnQ7Y2xhc3MgZzl0IGV4dGVuZHMgdTl0e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IHExdCg5MCwxLC41LDUwMCkpLHRoaXMuX2ZyYW1lRXh0ZW50cz1uZXcgbUp0KDQsMiksdGhpcy5fdmlld3BvcnRDb3VudD02LHRoaXMuX3ZpZXdwb3J0cz1bbmV3IHdKdCgyLDEsMSwxKSxuZXcgd0p0KDAsMSwxLDEpLG5ldyB3SnQoMywxLDEsMSksbmV3IHdKdCgxLDEsMSwxKSxuZXcgd0p0KDMsMCwxLDEpLG5ldyB3SnQoMSwwLDEsMSldLHRoaXMuX2N1YmVEaXJlY3Rpb25zPVtuZXcgQ0p0KDEsMCwwKSxuZXcgQ0p0KC0xLDAsMCksbmV3IENKdCgwLDAsMSksbmV3IENKdCgwLDAsLTEpLG5ldyBDSnQoMCwxLDApLG5ldyBDSnQoMCwtMSwwKV0sdGhpcy5fY3ViZVVwcz1bbmV3IENKdCgwLDEsMCksbmV3IENKdCgwLDEsMCksbmV3IENKdCgwLDEsMCksbmV3IENKdCgwLDEsMCksbmV3IENKdCgwLDAsMSksbmV3IENKdCgwLDAsLTEpXX11cGRhdGVNYXRyaWNlcyh0LGU9MCl7Y29uc3Qgbj10aGlzLmNhbWVyYSxpPXRoaXMubWF0cml4LHI9dC5kaXN0YW5jZXx8bi5mYXI7ciE9PW4uZmFyJiYobi5mYXI9cixuLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSksZjl0LnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSxuLnBvc2l0aW9uLmNvcHkoZjl0KSxtOXQuY29weShuLnBvc2l0aW9uKSxtOXQuYWRkKHRoaXMuX2N1YmVEaXJlY3Rpb25zW2VdKSxuLnVwLmNvcHkodGhpcy5fY3ViZVVwc1tlXSksbi5sb29rQXQobTl0KSxuLnVwZGF0ZU1hdHJpeFdvcmxkKCksaS5tYWtlVHJhbnNsYXRpb24oLWY5dC54LC1mOXQueSwtZjl0LnopLHA5dC5tdWx0aXBseU1hdHJpY2VzKG4ucHJvamVjdGlvbk1hdHJpeCxuLm1hdHJpeFdvcmxkSW52ZXJzZSksdGhpcy5fZnJ1c3R1bS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChwOXQpfX1nOXQucHJvdG90eXBlLmlzUG9pbnRMaWdodFNoYWRvdz0hMDtjbGFzcyBfOXQgZXh0ZW5kcyBvOXR7Y29uc3RydWN0b3IodCxlLG49MCxpPTEpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJQb2ludExpZ2h0Iix0aGlzLmRpc3RhbmNlPW4sdGhpcy5kZWNheT1pLHRoaXMuc2hhZG93PW5ldyBnOXR9Z2V0IHBvd2VyKCl7cmV0dXJuIDQqdGhpcy5pbnRlbnNpdHkqTWF0aC5QSX1zZXQgcG93ZXIodCl7dGhpcy5pbnRlbnNpdHk9dC8oNCpNYXRoLlBJKX1kaXNwb3NlKCl7dGhpcy5zaGFkb3cuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kaXN0YW5jZT10LmRpc3RhbmNlLHRoaXMuZGVjYXk9dC5kZWNheSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fV85dC5wcm90b3R5cGUuaXNQb2ludExpZ2h0PSEwO2NsYXNzIHk5dCBleHRlbmRzIHU5dHtjb25zdHJ1Y3Rvcigpe3N1cGVyKG5ldyBnMHQoLTUsNSw1LC01LC41LDUwMCkpfX15OXQucHJvdG90eXBlLmlzRGlyZWN0aW9uYWxMaWdodFNoYWRvdz0hMDtjbGFzcyB2OXQgZXh0ZW5kcyBvOXR7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iRGlyZWN0aW9uYWxMaWdodCIsdGhpcy5wb3NpdGlvbi5jb3B5KGtRdC5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy50YXJnZXQ9bmV3IGtRdCx0aGlzLnNoYWRvdz1uZXcgeTl0fWRpc3Bvc2UoKXt0aGlzLnNoYWRvdy5kaXNwb3NlKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnRhcmdldD10LnRhcmdldC5jbG9uZSgpLHRoaXMuc2hhZG93PXQuc2hhZG93LmNsb25lKCksdGhpc319djl0LnByb3RvdHlwZS5pc0RpcmVjdGlvbmFsTGlnaHQ9ITA7Y2xhc3MgYjl0IGV4dGVuZHMgbzl0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkFtYmllbnRMaWdodCJ9fWI5dC5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHQ9ITA7Y2xhc3MgeDl0IGV4dGVuZHMgbzl0e2NvbnN0cnVjdG9yKHQsZSxuPTEwLGk9MTApe3N1cGVyKHQsZSksdGhpcy50eXBlPSJSZWN0QXJlYUxpZ2h0Iix0aGlzLndpZHRoPW4sdGhpcy5oZWlnaHQ9aX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzfXRvSlNPTih0KXtjb25zdCBlPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gZS5vYmplY3Qud2lkdGg9dGhpcy53aWR0aCxlLm9iamVjdC5oZWlnaHQ9dGhpcy5oZWlnaHQsZX19eDl0LnByb3RvdHlwZS5pc1JlY3RBcmVhTGlnaHQ9ITA7Y2xhc3Mgdzl0e2NvbnN0cnVjdG9yKCl7dGhpcy5jb2VmZmljaWVudHM9W107Zm9yKGxldCB0PTA7dDw5O3QrKyl0aGlzLmNvZWZmaWNpZW50cy5wdXNoKG5ldyBDSnQpfXNldCh0KXtmb3IobGV0IGU9MDtlPDk7ZSsrKXRoaXMuY29lZmZpY2llbnRzW2VdLmNvcHkodFtlXSk7cmV0dXJuIHRoaXN9emVybygpe2ZvcihsZXQgdD0wO3Q8OTt0KyspdGhpcy5jb2VmZmljaWVudHNbdF0uc2V0KDAsMCwwKTtyZXR1cm4gdGhpc31nZXRBdCh0LGUpe2NvbnN0IG49dC54LGk9dC55LHI9dC56LG89dGhpcy5jb2VmZmljaWVudHM7cmV0dXJuIGUuY29weShvWzBdKS5tdWx0aXBseVNjYWxhciguMjgyMDk1KSxlLmFkZFNjYWxlZFZlY3RvcihvWzFdLC40ODg2MDMqaSksZS5hZGRTY2FsZWRWZWN0b3Iob1syXSwuNDg4NjAzKnIpLGUuYWRkU2NhbGVkVmVjdG9yKG9bM10sLjQ4ODYwMypuKSxlLmFkZFNjYWxlZFZlY3RvcihvWzRdLG4qaSoxLjA5MjU0OCksZS5hZGRTY2FsZWRWZWN0b3Iob1s1XSxpKnIqMS4wOTI1NDgpLGUuYWRkU2NhbGVkVmVjdG9yKG9bNl0sLjMxNTM5MiooMypyKnItMSkpLGUuYWRkU2NhbGVkVmVjdG9yKG9bN10sbipyKjEuMDkyNTQ4KSxlLmFkZFNjYWxlZFZlY3RvcihvWzhdLC41NDYyNzQqKG4qbi1pKmkpKSxlfWdldElycmFkaWFuY2VBdCh0LGUpe2NvbnN0IG49dC54LGk9dC55LHI9dC56LG89dGhpcy5jb2VmZmljaWVudHM7cmV0dXJuIGUuY29weShvWzBdKS5tdWx0aXBseVNjYWxhciguODg2MjI3KSxlLmFkZFNjYWxlZFZlY3RvcihvWzFdLDEuMDIzMzI4KmkpLGUuYWRkU2NhbGVkVmVjdG9yKG9bMl0sMS4wMjMzMjgqciksZS5hZGRTY2FsZWRWZWN0b3Iob1szXSwxLjAyMzMyOCpuKSxlLmFkZFNjYWxlZFZlY3RvcihvWzRdLC44NTgwODYqbippKSxlLmFkZFNjYWxlZFZlY3RvcihvWzVdLC44NTgwODYqaSpyKSxlLmFkZFNjYWxlZFZlY3RvcihvWzZdLC43NDMxMjUqcipyLS4yNDc3MDgpLGUuYWRkU2NhbGVkVmVjdG9yKG9bN10sLjg1ODA4NipuKnIpLGUuYWRkU2NhbGVkVmVjdG9yKG9bOF0sLjQyOTA0MyoobipuLWkqaSkpLGV9YWRkKHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspdGhpcy5jb2VmZmljaWVudHNbZV0uYWRkKHQuY29lZmZpY2llbnRzW2VdKTtyZXR1cm4gdGhpc31hZGRTY2FsZWRTSCh0LGUpe2ZvcihsZXQgbj0wO248OTtuKyspdGhpcy5jb2VmZmljaWVudHNbbl0uYWRkU2NhbGVkVmVjdG9yKHQuY29lZmZpY2llbnRzW25dLGUpO3JldHVybiB0aGlzfXNjYWxlKHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspdGhpcy5jb2VmZmljaWVudHNbZV0ubXVsdGlwbHlTY2FsYXIodCk7cmV0dXJuIHRoaXN9bGVycCh0LGUpe2ZvcihsZXQgbj0wO248OTtuKyspdGhpcy5jb2VmZmljaWVudHNbbl0ubGVycCh0LmNvZWZmaWNpZW50c1tuXSxlKTtyZXR1cm4gdGhpc31lcXVhbHModCl7Zm9yKGxldCBlPTA7ZTw5O2UrKylpZighdGhpcy5jb2VmZmljaWVudHNbZV0uZXF1YWxzKHQuY29lZmZpY2llbnRzW2VdKSlyZXR1cm4hMTtyZXR1cm4hMH1jb3B5KHQpe3JldHVybiB0aGlzLnNldCh0LmNvZWZmaWNpZW50cyl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9ZnJvbUFycmF5KHQsZT0wKXtjb25zdCBuPXRoaXMuY29lZmZpY2llbnRzO2ZvcihsZXQgaT0wO2k8OTtpKyspbltpXS5mcm9tQXJyYXkodCxlKzMqaSk7cmV0dXJuIHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7Y29uc3Qgbj10aGlzLmNvZWZmaWNpZW50cztmb3IobGV0IGk9MDtpPDk7aSsrKW5baV0udG9BcnJheSh0LGUrMyppKTtyZXR1cm4gdH1zdGF0aWMgZ2V0QmFzaXNBdCh0LGUpe2NvbnN0IG49dC54LGk9dC55LHI9dC56O2VbMF09LjI4MjA5NSxlWzFdPS40ODg2MDMqaSxlWzJdPS40ODg2MDMqcixlWzNdPS40ODg2MDMqbixlWzRdPTEuMDkyNTQ4Km4qaSxlWzVdPTEuMDkyNTQ4KmkqcixlWzZdPS4zMTUzOTIqKDMqcipyLTEpLGVbN109MS4wOTI1NDgqbipyLGVbOF09LjU0NjI3NCoobipuLWkqaSl9fXc5dC5wcm90b3R5cGUuaXNTcGhlcmljYWxIYXJtb25pY3MzPSEwO2NsYXNzIFM5dCBleHRlbmRzIG85dHtjb25zdHJ1Y3Rvcih0PW5ldyB3OXQsZT0xKXtzdXBlcih2b2lkIDAsZSksdGhpcy5zaD10fWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5zaC5jb3B5KHQuc2gpLHRoaXN9ZnJvbUpTT04odCl7cmV0dXJuIHRoaXMuaW50ZW5zaXR5PXQuaW50ZW5zaXR5LHRoaXMuc2guZnJvbUFycmF5KHQuc2gpLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC5zaD10aGlzLnNoLnRvQXJyYXkoKSxlfX1TOXQucHJvdG90eXBlLmlzTGlnaHRQcm9iZT0hMDtjbGFzcyBNOXQgZXh0ZW5kcyAkNnR7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy50ZXh0dXJlcz17fX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9dGhpcyxvPW5ldyBaNnQoci5tYW5hZ2VyKTtvLnNldFBhdGgoci5wYXRoKSxvLnNldFJlcXVlc3RIZWFkZXIoci5yZXF1ZXN0SGVhZGVyKSxvLnNldFdpdGhDcmVkZW50aWFscyhyLndpdGhDcmVkZW50aWFscyksby5sb2FkKHQsKGZ1bmN0aW9uKG4pe3RyeXtlKHIucGFyc2UoSlNPTi5wYXJzZShuKSkpfWNhdGNoKGUpe2k/aShlKTpjb25zb2xlLmVycm9yKGUpLHIubWFuYWdlci5pdGVtRXJyb3IodCl9fSksbixpKX1wYXJzZSh0KXtjb25zdCBlPXRoaXMudGV4dHVyZXM7ZnVuY3Rpb24gbih0KXtyZXR1cm4gdm9pZCAwPT09ZVt0XSYmY29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbExvYWRlcjogVW5kZWZpbmVkIHRleHR1cmUiLHQpLGVbdF19Y29uc3QgaT1uZXcgTDZ0W3QudHlwZV07aWYodm9pZCAwIT09dC51dWlkJiYoaS51dWlkPXQudXVpZCksdm9pZCAwIT09dC5uYW1lJiYoaS5uYW1lPXQubmFtZSksdm9pZCAwIT09dC5jb2xvciYmdm9pZCAwIT09aS5jb2xvciYmaS5jb2xvci5zZXRIZXgodC5jb2xvciksdm9pZCAwIT09dC5yb3VnaG5lc3MmJihpLnJvdWdobmVzcz10LnJvdWdobmVzcyksdm9pZCAwIT09dC5tZXRhbG5lc3MmJihpLm1ldGFsbmVzcz10Lm1ldGFsbmVzcyksdm9pZCAwIT09dC5zaGVlbiYmKGkuc2hlZW49KG5ldyAkUXQpLnNldEhleCh0LnNoZWVuKSksdm9pZCAwIT09dC5lbWlzc2l2ZSYmdm9pZCAwIT09aS5lbWlzc2l2ZSYmaS5lbWlzc2l2ZS5zZXRIZXgodC5lbWlzc2l2ZSksdm9pZCAwIT09dC5zcGVjdWxhciYmdm9pZCAwIT09aS5zcGVjdWxhciYmaS5zcGVjdWxhci5zZXRIZXgodC5zcGVjdWxhciksdm9pZCAwIT09dC5zcGVjdWxhckludGVuc2l0eSYmKGkuc3BlY3VsYXJJbnRlbnNpdHk9dC5zcGVjdWxhckludGVuc2l0eSksdm9pZCAwIT09dC5zcGVjdWxhclRpbnQmJnZvaWQgMCE9PWkuc3BlY3VsYXJUaW50JiZpLnNwZWN1bGFyVGludC5zZXRIZXgodC5zcGVjdWxhclRpbnQpLHZvaWQgMCE9PXQuc2hpbmluZXNzJiYoaS5zaGluaW5lc3M9dC5zaGluaW5lc3MpLHZvaWQgMCE9PXQuY2xlYXJjb2F0JiYoaS5jbGVhcmNvYXQ9dC5jbGVhcmNvYXQpLHZvaWQgMCE9PXQuY2xlYXJjb2F0Um91Z2huZXNzJiYoaS5jbGVhcmNvYXRSb3VnaG5lc3M9dC5jbGVhcmNvYXRSb3VnaG5lc3MpLHZvaWQgMCE9PXQudHJhbnNtaXNzaW9uJiYoaS50cmFuc21pc3Npb249dC50cmFuc21pc3Npb24pLHZvaWQgMCE9PXQudGhpY2tuZXNzJiYoaS50aGlja25lc3M9dC50aGlja25lc3MpLHZvaWQgMCE9PXQuYXR0ZW51YXRpb25EaXN0YW5jZSYmKGkuYXR0ZW51YXRpb25EaXN0YW5jZT10LmF0dGVudWF0aW9uRGlzdGFuY2UpLHZvaWQgMCE9PXQuYXR0ZW51YXRpb25UaW50JiZ2b2lkIDAhPT1pLmF0dGVudWF0aW9uVGludCYmaS5hdHRlbnVhdGlvblRpbnQuc2V0SGV4KHQuYXR0ZW51YXRpb25UaW50KSx2b2lkIDAhPT10LmZvZyYmKGkuZm9nPXQuZm9nKSx2b2lkIDAhPT10LmZsYXRTaGFkaW5nJiYoaS5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nKSx2b2lkIDAhPT10LmJsZW5kaW5nJiYoaS5ibGVuZGluZz10LmJsZW5kaW5nKSx2b2lkIDAhPT10LmNvbWJpbmUmJihpLmNvbWJpbmU9dC5jb21iaW5lKSx2b2lkIDAhPT10LnNpZGUmJihpLnNpZGU9dC5zaWRlKSx2b2lkIDAhPT10LnNoYWRvd1NpZGUmJihpLnNoYWRvd1NpZGU9dC5zaGFkb3dTaWRlKSx2b2lkIDAhPT10Lm9wYWNpdHkmJihpLm9wYWNpdHk9dC5vcGFjaXR5KSx2b2lkIDAhPT10LnRyYW5zcGFyZW50JiYoaS50cmFuc3BhcmVudD10LnRyYW5zcGFyZW50KSx2b2lkIDAhPT10LmFscGhhVGVzdCYmKGkuYWxwaGFUZXN0PXQuYWxwaGFUZXN0KSx2b2lkIDAhPT10LmRlcHRoVGVzdCYmKGkuZGVwdGhUZXN0PXQuZGVwdGhUZXN0KSx2b2lkIDAhPT10LmRlcHRoV3JpdGUmJihpLmRlcHRoV3JpdGU9dC5kZXB0aFdyaXRlKSx2b2lkIDAhPT10LmNvbG9yV3JpdGUmJihpLmNvbG9yV3JpdGU9dC5jb2xvcldyaXRlKSx2b2lkIDAhPT10LnN0ZW5jaWxXcml0ZSYmKGkuc3RlbmNpbFdyaXRlPXQuc3RlbmNpbFdyaXRlKSx2b2lkIDAhPT10LnN0ZW5jaWxXcml0ZU1hc2smJihpLnN0ZW5jaWxXcml0ZU1hc2s9dC5zdGVuY2lsV3JpdGVNYXNrKSx2b2lkIDAhPT10LnN0ZW5jaWxGdW5jJiYoaS5zdGVuY2lsRnVuYz10LnN0ZW5jaWxGdW5jKSx2b2lkIDAhPT10LnN0ZW5jaWxSZWYmJihpLnN0ZW5jaWxSZWY9dC5zdGVuY2lsUmVmKSx2b2lkIDAhPT10LnN0ZW5jaWxGdW5jTWFzayYmKGkuc3RlbmNpbEZ1bmNNYXNrPXQuc3RlbmNpbEZ1bmNNYXNrKSx2b2lkIDAhPT10LnN0ZW5jaWxGYWlsJiYoaS5zdGVuY2lsRmFpbD10LnN0ZW5jaWxGYWlsKSx2b2lkIDAhPT10LnN0ZW5jaWxaRmFpbCYmKGkuc3RlbmNpbFpGYWlsPXQuc3RlbmNpbFpGYWlsKSx2b2lkIDAhPT10LnN0ZW5jaWxaUGFzcyYmKGkuc3RlbmNpbFpQYXNzPXQuc3RlbmNpbFpQYXNzKSx2b2lkIDAhPT10LndpcmVmcmFtZSYmKGkud2lyZWZyYW1lPXQud2lyZWZyYW1lKSx2b2lkIDAhPT10LndpcmVmcmFtZUxpbmV3aWR0aCYmKGkud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoKSx2b2lkIDAhPT10LndpcmVmcmFtZUxpbmVjYXAmJihpLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwKSx2b2lkIDAhPT10LndpcmVmcmFtZUxpbmVqb2luJiYoaS53aXJlZnJhbWVMaW5lam9pbj10LndpcmVmcmFtZUxpbmVqb2luKSx2b2lkIDAhPT10LnJvdGF0aW9uJiYoaS5yb3RhdGlvbj10LnJvdGF0aW9uKSwxIT09dC5saW5ld2lkdGgmJihpLmxpbmV3aWR0aD10LmxpbmV3aWR0aCksdm9pZCAwIT09dC5kYXNoU2l6ZSYmKGkuZGFzaFNpemU9dC5kYXNoU2l6ZSksdm9pZCAwIT09dC5nYXBTaXplJiYoaS5nYXBTaXplPXQuZ2FwU2l6ZSksdm9pZCAwIT09dC5zY2FsZSYmKGkuc2NhbGU9dC5zY2FsZSksdm9pZCAwIT09dC5wb2x5Z29uT2Zmc2V0JiYoaS5wb2x5Z29uT2Zmc2V0PXQucG9seWdvbk9mZnNldCksdm9pZCAwIT09dC5wb2x5Z29uT2Zmc2V0RmFjdG9yJiYoaS5wb2x5Z29uT2Zmc2V0RmFjdG9yPXQucG9seWdvbk9mZnNldEZhY3Rvciksdm9pZCAwIT09dC5wb2x5Z29uT2Zmc2V0VW5pdHMmJihpLnBvbHlnb25PZmZzZXRVbml0cz10LnBvbHlnb25PZmZzZXRVbml0cyksdm9pZCAwIT09dC5kaXRoZXJpbmcmJihpLmRpdGhlcmluZz10LmRpdGhlcmluZyksdm9pZCAwIT09dC5hbHBoYVRvQ292ZXJhZ2UmJihpLmFscGhhVG9Db3ZlcmFnZT10LmFscGhhVG9Db3ZlcmFnZSksdm9pZCAwIT09dC5wcmVtdWx0aXBsaWVkQWxwaGEmJihpLnByZW11bHRpcGxpZWRBbHBoYT10LnByZW11bHRpcGxpZWRBbHBoYSksdm9pZCAwIT09dC52aXNpYmxlJiYoaS52aXNpYmxlPXQudmlzaWJsZSksdm9pZCAwIT09dC50b25lTWFwcGVkJiYoaS50b25lTWFwcGVkPXQudG9uZU1hcHBlZCksdm9pZCAwIT09dC51c2VyRGF0YSYmKGkudXNlckRhdGE9dC51c2VyRGF0YSksdm9pZCAwIT09dC52ZXJ0ZXhDb2xvcnMmJihpLnZlcnRleENvbG9ycz0ibnVtYmVyIj09dHlwZW9mIHQudmVydGV4Q29sb3JzP3QudmVydGV4Q29sb3JzPjA6dC52ZXJ0ZXhDb2xvcnMpLHZvaWQgMCE9PXQudW5pZm9ybXMpZm9yKGNvbnN0IGUgaW4gdC51bmlmb3Jtcyl7Y29uc3Qgcj10LnVuaWZvcm1zW2VdO3N3aXRjaChpLnVuaWZvcm1zW2VdPXt9LHIudHlwZSl7Y2FzZSJ0IjppLnVuaWZvcm1zW2VdLnZhbHVlPW4oci52YWx1ZSk7YnJlYWs7Y2FzZSJjIjppLnVuaWZvcm1zW2VdLnZhbHVlPShuZXcgJFF0KS5zZXRIZXgoci52YWx1ZSk7YnJlYWs7Y2FzZSJ2MiI6aS51bmlmb3Jtc1tlXS52YWx1ZT0obmV3IG1KdCkuZnJvbUFycmF5KHIudmFsdWUpO2JyZWFrO2Nhc2UidjMiOmkudW5pZm9ybXNbZV0udmFsdWU9KG5ldyBDSnQpLmZyb21BcnJheShyLnZhbHVlKTticmVhaztjYXNlInY0IjppLnVuaWZvcm1zW2VdLnZhbHVlPShuZXcgd0p0KS5mcm9tQXJyYXkoci52YWx1ZSk7YnJlYWs7Y2FzZSJtMyI6aS51bmlmb3Jtc1tlXS52YWx1ZT0obmV3IGdKdCkuZnJvbUFycmF5KHIudmFsdWUpO2JyZWFrO2Nhc2UibTQiOmkudW5pZm9ybXNbZV0udmFsdWU9KG5ldyByUXQpLmZyb21BcnJheShyLnZhbHVlKTticmVhaztkZWZhdWx0OmkudW5pZm9ybXNbZV0udmFsdWU9ci52YWx1ZX19aWYodm9pZCAwIT09dC5kZWZpbmVzJiYoaS5kZWZpbmVzPXQuZGVmaW5lcyksdm9pZCAwIT09dC52ZXJ0ZXhTaGFkZXImJihpLnZlcnRleFNoYWRlcj10LnZlcnRleFNoYWRlciksdm9pZCAwIT09dC5mcmFnbWVudFNoYWRlciYmKGkuZnJhZ21lbnRTaGFkZXI9dC5mcmFnbWVudFNoYWRlciksdm9pZCAwIT09dC5leHRlbnNpb25zKWZvcihjb25zdCBlIGluIHQuZXh0ZW5zaW9ucylpLmV4dGVuc2lvbnNbZV09dC5leHRlbnNpb25zW2VdO2lmKHZvaWQgMCE9PXQuc2hhZGluZyYmKGkuZmxhdFNoYWRpbmc9MT09PXQuc2hhZGluZyksdm9pZCAwIT09dC5zaXplJiYoaS5zaXplPXQuc2l6ZSksdm9pZCAwIT09dC5zaXplQXR0ZW51YXRpb24mJihpLnNpemVBdHRlbnVhdGlvbj10LnNpemVBdHRlbnVhdGlvbiksdm9pZCAwIT09dC5tYXAmJihpLm1hcD1uKHQubWFwKSksdm9pZCAwIT09dC5tYXRjYXAmJihpLm1hdGNhcD1uKHQubWF0Y2FwKSksdm9pZCAwIT09dC5hbHBoYU1hcCYmKGkuYWxwaGFNYXA9bih0LmFscGhhTWFwKSksdm9pZCAwIT09dC5idW1wTWFwJiYoaS5idW1wTWFwPW4odC5idW1wTWFwKSksdm9pZCAwIT09dC5idW1wU2NhbGUmJihpLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSksdm9pZCAwIT09dC5ub3JtYWxNYXAmJihpLm5vcm1hbE1hcD1uKHQubm9ybWFsTWFwKSksdm9pZCAwIT09dC5ub3JtYWxNYXBUeXBlJiYoaS5ub3JtYWxNYXBUeXBlPXQubm9ybWFsTWFwVHlwZSksdm9pZCAwIT09dC5ub3JtYWxTY2FsZSl7bGV0IGU9dC5ub3JtYWxTY2FsZTshMT09PUFycmF5LmlzQXJyYXkoZSkmJihlPVtlLGVdKSxpLm5vcm1hbFNjYWxlPShuZXcgbUp0KS5mcm9tQXJyYXkoZSl9cmV0dXJuIHZvaWQgMCE9PXQuZGlzcGxhY2VtZW50TWFwJiYoaS5kaXNwbGFjZW1lbnRNYXA9bih0LmRpc3BsYWNlbWVudE1hcCkpLHZvaWQgMCE9PXQuZGlzcGxhY2VtZW50U2NhbGUmJihpLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUpLHZvaWQgMCE9PXQuZGlzcGxhY2VtZW50QmlhcyYmKGkuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMpLHZvaWQgMCE9PXQucm91Z2huZXNzTWFwJiYoaS5yb3VnaG5lc3NNYXA9bih0LnJvdWdobmVzc01hcCkpLHZvaWQgMCE9PXQubWV0YWxuZXNzTWFwJiYoaS5tZXRhbG5lc3NNYXA9bih0Lm1ldGFsbmVzc01hcCkpLHZvaWQgMCE9PXQuZW1pc3NpdmVNYXAmJihpLmVtaXNzaXZlTWFwPW4odC5lbWlzc2l2ZU1hcCkpLHZvaWQgMCE9PXQuZW1pc3NpdmVJbnRlbnNpdHkmJihpLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHkpLHZvaWQgMCE9PXQuc3BlY3VsYXJNYXAmJihpLnNwZWN1bGFyTWFwPW4odC5zcGVjdWxhck1hcCkpLHZvaWQgMCE9PXQuc3BlY3VsYXJJbnRlbnNpdHlNYXAmJihpLnNwZWN1bGFySW50ZW5zaXR5TWFwPW4odC5zcGVjdWxhckludGVuc2l0eU1hcCkpLHZvaWQgMCE9PXQuc3BlY3VsYXJUaW50TWFwJiYoaS5zcGVjdWxhclRpbnRNYXA9bih0LnNwZWN1bGFyVGludE1hcCkpLHZvaWQgMCE9PXQuZW52TWFwJiYoaS5lbnZNYXA9bih0LmVudk1hcCkpLHZvaWQgMCE9PXQuZW52TWFwSW50ZW5zaXR5JiYoaS5lbnZNYXBJbnRlbnNpdHk9dC5lbnZNYXBJbnRlbnNpdHkpLHZvaWQgMCE9PXQucmVmbGVjdGl2aXR5JiYoaS5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHkpLHZvaWQgMCE9PXQucmVmcmFjdGlvblJhdGlvJiYoaS5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8pLHZvaWQgMCE9PXQubGlnaHRNYXAmJihpLmxpZ2h0TWFwPW4odC5saWdodE1hcCkpLHZvaWQgMCE9PXQubGlnaHRNYXBJbnRlbnNpdHkmJihpLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHkpLHZvaWQgMCE9PXQuYW9NYXAmJihpLmFvTWFwPW4odC5hb01hcCkpLHZvaWQgMCE9PXQuYW9NYXBJbnRlbnNpdHkmJihpLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHkpLHZvaWQgMCE9PXQuZ3JhZGllbnRNYXAmJihpLmdyYWRpZW50TWFwPW4odC5ncmFkaWVudE1hcCkpLHZvaWQgMCE9PXQuY2xlYXJjb2F0TWFwJiYoaS5jbGVhcmNvYXRNYXA9bih0LmNsZWFyY29hdE1hcCkpLHZvaWQgMCE9PXQuY2xlYXJjb2F0Um91Z2huZXNzTWFwJiYoaS5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9bih0LmNsZWFyY29hdFJvdWdobmVzc01hcCkpLHZvaWQgMCE9PXQuY2xlYXJjb2F0Tm9ybWFsTWFwJiYoaS5jbGVhcmNvYXROb3JtYWxNYXA9bih0LmNsZWFyY29hdE5vcm1hbE1hcCkpLHZvaWQgMCE9PXQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUmJihpLmNsZWFyY29hdE5vcm1hbFNjYWxlPShuZXcgbUp0KS5mcm9tQXJyYXkodC5jbGVhcmNvYXROb3JtYWxTY2FsZSkpLHZvaWQgMCE9PXQudHJhbnNtaXNzaW9uTWFwJiYoaS50cmFuc21pc3Npb25NYXA9bih0LnRyYW5zbWlzc2lvbk1hcCkpLHZvaWQgMCE9PXQudGhpY2tuZXNzTWFwJiYoaS50aGlja25lc3NNYXA9bih0LnRoaWNrbmVzc01hcCkpLGl9c2V0VGV4dHVyZXModCl7cmV0dXJuIHRoaXMudGV4dHVyZXM9dCx0aGlzfX1jbGFzcyBFOXR7c3RhdGljIGRlY29kZVRleHQodCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2RlcilyZXR1cm4obmV3IFRleHREZWNvZGVyKS5kZWNvZGUodCk7bGV0IGU9IiI7Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKWUrPVN0cmluZy5mcm9tQ2hhckNvZGUodFtuXSk7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKGUpKX1jYXRjaCh0KXtyZXR1cm4gZX19c3RhdGljIGV4dHJhY3RVcmxCYXNlKHQpe2NvbnN0IGU9dC5sYXN0SW5kZXhPZigiLyIpO3JldHVybi0xPT09ZT8iLi8iOnQuc3Vic3RyKDAsZSsxKX19Y2xhc3MgVDl0IGV4dGVuZHMgYjF0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9Ikluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5Iix0aGlzLmluc3RhbmNlQ291bnQ9MS8wfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5pbnN0YW5jZUNvdW50PXQuaW5zdGFuY2VDb3VudCx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKHRoaXMpO3JldHVybiB0Lmluc3RhbmNlQ291bnQ9dGhpcy5pbnN0YW5jZUNvdW50LHQuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeT0hMCx0fX1UOXQucHJvdG90eXBlLmlzSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk9ITA7Y2xhc3MgQzl0IGV4dGVuZHMgUVF0e2NvbnN0cnVjdG9yKHQsZSxuLGk9MSl7Im51bWJlciI9PXR5cGVvZiBuJiYoaT1uLG49ITEsY29uc29sZS5lcnJvcigiVEhSRUUuSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlOiBUaGUgY29uc3RydWN0b3Igbm93IGV4cGVjdHMgbm9ybWFsaXplZCBhcyB0aGUgdGhpcmQgYXJndW1lbnQuIikpLHN1cGVyKHQsZSxuKSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9aX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWVzaFBlckF0dHJpYnV0ZT10Lm1lc2hQZXJBdHRyaWJ1dGUsdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0Lm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLHQuaXNJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU9ITAsdH19Qzl0LnByb3RvdHlwZS5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyBBOXQgZXh0ZW5kcyAkNnR7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixpKXtjb25zdCByPXRoaXMsbz1uZXcgWjZ0KHIubWFuYWdlcik7by5zZXRQYXRoKHIucGF0aCksby5zZXRSZXF1ZXN0SGVhZGVyKHIucmVxdWVzdEhlYWRlciksby5zZXRXaXRoQ3JlZGVudGlhbHMoci53aXRoQ3JlZGVudGlhbHMpLG8ubG9hZCh0LChmdW5jdGlvbihuKXt0cnl7ZShyLnBhcnNlKEpTT04ucGFyc2UobikpKX1jYXRjaChlKXtpP2koZSk6Y29uc29sZS5lcnJvcihlKSxyLm1hbmFnZXIuaXRlbUVycm9yKHQpfX0pLG4saSl9cGFyc2UodCl7Y29uc3QgZT17fSxuPXt9O2Z1bmN0aW9uIGkodCxpKXtpZih2b2lkIDAhPT1lW2ldKXJldHVybiBlW2ldO2NvbnN0IHI9dC5pbnRlcmxlYXZlZEJ1ZmZlcnNbaV0sbz0oZnVuY3Rpb24gYSh0LGUpe2lmKHZvaWQgMCE9PW5bZV0pcmV0dXJuIG5bZV07Y29uc3QgaT1uZXcgVWludDMyQXJyYXkodC5hcnJheUJ1ZmZlcnNbZV0pLmJ1ZmZlcjtyZXR1cm4gbltlXT1pLGl9KSh0LHIuYnVmZmVyKSxzPWQxdChyLnR5cGUsbyksbD1uZXcgJDV0KHMsci5zdHJpZGUpO3JldHVybiBsLnV1aWQ9ci51dWlkLGVbaV09bCxsfWNvbnN0IHI9dC5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5P25ldyBUOXQ6bmV3IGIxdCxvPXQuZGF0YS5pbmRleDtpZih2b2lkIDAhPT1vKXtjb25zdCB0PWQxdChvLnR5cGUsby5hcnJheSk7ci5zZXRJbmRleChuZXcgUVF0KHQsMSkpfWNvbnN0IGE9dC5kYXRhLmF0dHJpYnV0ZXM7Zm9yKGNvbnN0IGUgaW4gYSl7Y29uc3Qgbj1hW2VdO2xldCBvO2lmKG4uaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSl7Y29uc3QgZT1pKHQuZGF0YSxuLmRhdGEpO289bmV3IFo1dChlLG4uaXRlbVNpemUsbi5vZmZzZXQsbi5ub3JtYWxpemVkKX1lbHNle2NvbnN0IHQ9ZDF0KG4udHlwZSxuLmFycmF5KTtvPW5ldyhuLmlzSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlP0M5dDpRUXQpKHQsbi5pdGVtU2l6ZSxuLm5vcm1hbGl6ZWQpfXZvaWQgMCE9PW4ubmFtZSYmKG8ubmFtZT1uLm5hbWUpLHZvaWQgMCE9PW4udXNhZ2UmJm8uc2V0VXNhZ2Uobi51c2FnZSksdm9pZCAwIT09bi51cGRhdGVSYW5nZSYmKG8udXBkYXRlUmFuZ2Uub2Zmc2V0PW4udXBkYXRlUmFuZ2Uub2Zmc2V0LG8udXBkYXRlUmFuZ2UuY291bnQ9bi51cGRhdGVSYW5nZS5jb3VudCksci5zZXRBdHRyaWJ1dGUoZSxvKX1jb25zdCBzPXQuZGF0YS5tb3JwaEF0dHJpYnV0ZXM7aWYocylmb3IoY29uc3QgZSBpbiBzKXtjb25zdCBuPXNbZV0sbz1bXTtmb3IobGV0IGU9MCxyPW4ubGVuZ3RoO2U8cjtlKyspe2NvbnN0IHI9bltlXTtsZXQgYTtpZihyLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUpe2NvbnN0IGU9aSh0LmRhdGEsci5kYXRhKTthPW5ldyBaNXQoZSxyLml0ZW1TaXplLHIub2Zmc2V0LHIubm9ybWFsaXplZCl9ZWxzZXtjb25zdCB0PWQxdChyLnR5cGUsci5hcnJheSk7YT1uZXcgUVF0KHQsci5pdGVtU2l6ZSxyLm5vcm1hbGl6ZWQpfXZvaWQgMCE9PXIubmFtZSYmKGEubmFtZT1yLm5hbWUpLG8ucHVzaChhKX1yLm1vcnBoQXR0cmlidXRlc1tlXT1vfXQuZGF0YS5tb3JwaFRhcmdldHNSZWxhdGl2ZSYmKHIubW9ycGhUYXJnZXRzUmVsYXRpdmU9ITApO2NvbnN0IGw9dC5kYXRhLmdyb3Vwc3x8dC5kYXRhLmRyYXdjYWxsc3x8dC5kYXRhLm9mZnNldHM7aWYodm9pZCAwIT09bClmb3IobGV0IHQ9MCxlPWwubGVuZ3RoO3QhPT1lOysrdCl7Y29uc3QgZT1sW3RdO3IuYWRkR3JvdXAoZS5zdGFydCxlLmNvdW50LGUubWF0ZXJpYWxJbmRleCl9Y29uc3QgYz10LmRhdGEuYm91bmRpbmdTcGhlcmU7aWYodm9pZCAwIT09Yyl7Y29uc3QgdD1uZXcgQ0p0O3ZvaWQgMCE9PWMuY2VudGVyJiZ0LmZyb21BcnJheShjLmNlbnRlciksci5ib3VuZGluZ1NwaGVyZT1uZXcgJEp0KHQsYy5yYWRpdXMpfXJldHVybiB0Lm5hbWUmJihyLm5hbWU9dC5uYW1lKSx0LnVzZXJEYXRhJiYoci51c2VyRGF0YT10LnVzZXJEYXRhKSxyfX1jb25zdCBrOXQ9e1VWTWFwcGluZzpVS3QsQ3ViZVJlZmxlY3Rpb25NYXBwaW5nOmpLdCxDdWJlUmVmcmFjdGlvbk1hcHBpbmc6R0t0LEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nOldLdCxFcXVpcmVjdGFuZ3VsYXJSZWZyYWN0aW9uTWFwcGluZzpxS3QsQ3ViZVVWUmVmbGVjdGlvbk1hcHBpbmc6WUt0LEN1YmVVVlJlZnJhY3Rpb25NYXBwaW5nOlhLdH0sTDl0PXtSZXBlYXRXcmFwcGluZzokS3QsQ2xhbXBUb0VkZ2VXcmFwcGluZzpLS3QsTWlycm9yZWRSZXBlYXRXcmFwcGluZzpaS3R9LFA5dD17TmVhcmVzdEZpbHRlcjpKS3QsTmVhcmVzdE1pcG1hcE5lYXJlc3RGaWx0ZXI6UUt0LE5lYXJlc3RNaXBtYXBMaW5lYXJGaWx0ZXI6dFp0LExpbmVhckZpbHRlcjplWnQsTGluZWFyTWlwbWFwTmVhcmVzdEZpbHRlcjpuWnQsTGluZWFyTWlwbWFwTGluZWFyRmlsdGVyOmladH07Y2xhc3MgTjl0IGV4dGVuZHMgJDZ0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLCJ1bmRlZmluZWQiPT10eXBlb2YgY3JlYXRlSW1hZ2VCaXRtYXAmJmNvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VCaXRtYXBMb2FkZXI6IGNyZWF0ZUltYWdlQml0bWFwKCkgbm90IHN1cHBvcnRlZC4iKSwidW5kZWZpbmVkIj09dHlwZW9mIGZldGNoJiZjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlQml0bWFwTG9hZGVyOiBmZXRjaCgpIG5vdCBzdXBwb3J0ZWQuIiksdGhpcy5vcHRpb25zPXtwcmVtdWx0aXBseUFscGhhOiJub25lIn19c2V0T3B0aW9ucyh0KXtyZXR1cm4gdGhpcy5vcHRpb25zPXQsdGhpc31sb2FkKHQsZSxuLGkpe3ZvaWQgMD09PXQmJih0PSIiKSx2b2lkIDAhPT10aGlzLnBhdGgmJih0PXRoaXMucGF0aCt0KSx0PXRoaXMubWFuYWdlci5yZXNvbHZlVVJMKHQpO2NvbnN0IHI9dGhpcyxvPXE2dC5nZXQodCk7aWYodm9pZCAwIT09bylyZXR1cm4gci5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UmJmUobyksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKSxvO2NvbnN0IGE9e307YS5jcmVkZW50aWFscz0iYW5vbnltb3VzIj09PXRoaXMuY3Jvc3NPcmlnaW4/InNhbWUtb3JpZ2luIjoiaW5jbHVkZSIsYS5oZWFkZXJzPXRoaXMucmVxdWVzdEhlYWRlcixmZXRjaCh0LGEpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmJsb2IoKX0pKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gY3JlYXRlSW1hZ2VCaXRtYXAodCxPYmplY3QuYXNzaWduKHIub3B0aW9ucyx7Y29sb3JTcGFjZUNvbnZlcnNpb246Im5vbmUifSkpfSkpLnRoZW4oKGZ1bmN0aW9uKG4pe3E2dC5hZGQodCxuKSxlJiZlKG4pLHIubWFuYWdlci5pdGVtRW5kKHQpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtpJiZpKGUpLHIubWFuYWdlci5pdGVtRXJyb3IodCksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSksci5tYW5hZ2VyLml0ZW1TdGFydCh0KX19Tjl0LnByb3RvdHlwZS5pc0ltYWdlQml0bWFwTG9hZGVyPSEwO2NsYXNzIEk5dHtjb25zdHJ1Y3Rvcigpe3RoaXMudHlwZT0iU2hhcGVQYXRoIix0aGlzLmNvbG9yPW5ldyAkUXQsdGhpcy5zdWJQYXRocz1bXSx0aGlzLmN1cnJlbnRQYXRoPW51bGx9bW92ZVRvKHQsZSl7cmV0dXJuIHRoaXMuY3VycmVudFBhdGg9bmV3IGk5dCx0aGlzLnN1YlBhdGhzLnB1c2godGhpcy5jdXJyZW50UGF0aCksdGhpcy5jdXJyZW50UGF0aC5tb3ZlVG8odCxlKSx0aGlzfWxpbmVUbyh0LGUpe3JldHVybiB0aGlzLmN1cnJlbnRQYXRoLmxpbmVUbyh0LGUpLHRoaXN9cXVhZHJhdGljQ3VydmVUbyh0LGUsbixpKXtyZXR1cm4gdGhpcy5jdXJyZW50UGF0aC5xdWFkcmF0aWNDdXJ2ZVRvKHQsZSxuLGkpLHRoaXN9YmV6aWVyQ3VydmVUbyh0LGUsbixpLHIsbyl7cmV0dXJuIHRoaXMuY3VycmVudFBhdGguYmV6aWVyQ3VydmVUbyh0LGUsbixpLHIsbyksdGhpc31zcGxpbmVUaHJ1KHQpe3JldHVybiB0aGlzLmN1cnJlbnRQYXRoLnNwbGluZVRocnUodCksdGhpc310b1NoYXBlcyh0LGUpe2Z1bmN0aW9uIG4odCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxpPXQubGVuZ3RoO248aTtuKyspe2NvbnN0IGk9dFtuXSxyPW5ldyByOXQ7ci5jdXJ2ZXM9aS5jdXJ2ZXMsZS5wdXNoKHIpfXJldHVybiBlfWZ1bmN0aW9uIGkodCxlKXtjb25zdCBuPWUubGVuZ3RoO2xldCBpPSExO2ZvcihsZXQgcj1uLTEsbz0wO288bjtyPW8rKyl7bGV0IG49ZVtyXSxhPWVbb10scz1hLngtbi54LGw9YS55LW4ueTtpZihNYXRoLmFicyhsKT5OdW1iZXIuRVBTSUxPTil7aWYobDwwJiYobj1lW29dLHM9LXMsYT1lW3JdLGw9LWwpLHQueTxuLnl8fHQueT5hLnkpY29udGludWU7aWYodC55PT09bi55KXtpZih0Lng9PT1uLngpcmV0dXJuITB9ZWxzZXtjb25zdCBlPWwqKHQueC1uLngpLXMqKHQueS1uLnkpO2lmKDA9PT1lKXJldHVybiEwO2lmKGU8MCljb250aW51ZTtpPSFpfX1lbHNle2lmKHQueSE9PW4ueSljb250aW51ZTtpZihhLng8PXQueCYmdC54PD1uLnh8fG4ueDw9dC54JiZ0Lng8PWEueClyZXR1cm4hMH19cmV0dXJuIGl9Y29uc3Qgcj1lNnQuaXNDbG9ja1dpc2Usbz10aGlzLnN1YlBhdGhzO2lmKDA9PT1vLmxlbmd0aClyZXR1cm5bXTtpZighMD09PWUpcmV0dXJuIG4obyk7bGV0IGEscyxsO2NvbnN0IGM9W107aWYoMT09PW8ubGVuZ3RoKXJldHVybiBzPW9bMF0sbD1uZXcgcjl0LGwuY3VydmVzPXMuY3VydmVzLGMucHVzaChsKSxjO2xldCB1PSFyKG9bMF0uZ2V0UG9pbnRzKCkpO3U9dD8hdTp1O2NvbnN0IGg9W10sZD1bXTtsZXQgcCxmLG09W10sZz0wO2RbZ109dm9pZCAwLG1bZ109W107Zm9yKGxldCBlPTAsbj1vLmxlbmd0aDtlPG47ZSsrKXM9b1tlXSxwPXMuZ2V0UG9pbnRzKCksYT1yKHApLGE9dD8hYTphLGE/KCF1JiZkW2ddJiZnKyssZFtnXT17czpuZXcgcjl0LHA6cH0sZFtnXS5zLmN1cnZlcz1zLmN1cnZlcyx1JiZnKyssbVtnXT1bXSk6bVtnXS5wdXNoKHtoOnMscDpwWzBdfSk7aWYoIWRbMF0pcmV0dXJuIG4obyk7aWYoZC5sZW5ndGg+MSl7bGV0IHQ9ITE7Y29uc3QgZT1bXTtmb3IobGV0IHQ9MCxlPWQubGVuZ3RoO3Q8ZTt0KyspaFt0XT1bXTtmb3IobGV0IG49MCxyPWQubGVuZ3RoO248cjtuKyspe2NvbnN0IHI9bVtuXTtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rKyl7Y29uc3QgYT1yW29dO2xldCBzPSEwO2ZvcihsZXQgcj0wO3I8ZC5sZW5ndGg7cisrKWkoYS5wLGRbcl0ucCkmJihuIT09ciYmZS5wdXNoKHtmcm9tczpuLHRvczpyLGhvbGU6b30pLHM/KHM9ITEsaFtyXS5wdXNoKGEpKTp0PSEwKTtzJiZoW25dLnB1c2goYSl9fWUubGVuZ3RoPjAmJih0fHwobT1oKSl9Zm9yKGxldCB0PTAsZT1kLmxlbmd0aDt0PGU7dCsrKXtsPWRbdF0ucyxjLnB1c2gobCksZj1tW3RdO2ZvcihsZXQgdD0wLGU9Zi5sZW5ndGg7dDxlO3QrKylsLmhvbGVzLnB1c2goZlt0XS5oKX1yZXR1cm4gY319Y2xhc3MgUjl0e2NvbnN0cnVjdG9yKHQpe3RoaXMudHlwZT0iRm9udCIsdGhpcy5kYXRhPXR9Z2VuZXJhdGVTaGFwZXModCxlPTEwMCl7Y29uc3Qgbj1bXSxpPShmdW5jdGlvbiByKHQsZSxuKXtjb25zdCBpPUFycmF5LmZyb20odCkscj1lL24ucmVzb2x1dGlvbixvPShuLmJvdW5kaW5nQm94LnlNYXgtbi5ib3VuZGluZ0JveC55TWluK24udW5kZXJsaW5lVGhpY2tuZXNzKSpyLGE9W107bGV0IHM9MCxsPTA7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0IGU9aVt0XTtpZigiXG4iPT09ZSlzPTAsbC09bztlbHNle2NvbnN0IHQ9Tzl0KGUscixzLGwsbik7cys9dC5vZmZzZXRYLGEucHVzaCh0LnBhdGgpfX1yZXR1cm4gYX0pKHQsZSx0aGlzLmRhdGEpO2ZvcihsZXQgdD0wLGU9aS5sZW5ndGg7dDxlO3QrKylBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShuLGlbdF0udG9TaGFwZXMoKSk7cmV0dXJuIG59fWZ1bmN0aW9uIE85dCh0LGUsbixpLHIpe2NvbnN0IG89ci5nbHlwaHNbdF18fHIuZ2x5cGhzWyI/Il07aWYoIW8pcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcignVEhSRUUuRm9udDogY2hhcmFjdGVyICInK3QrJyIgZG9lcyBub3QgZXhpc3RzIGluIGZvbnQgZmFtaWx5ICcrci5mYW1pbHlOYW1lKyIuIik7Y29uc3QgYT1uZXcgSTl0O2xldCBzLGwsYyx1LGgsZCxwLGY7aWYoby5vKXtjb25zdCB0PW8uX2NhY2hlZE91dGxpbmV8fChvLl9jYWNoZWRPdXRsaW5lPW8uby5zcGxpdCgiICIpKTtmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bzspc3dpdGNoKHRbcisrXSl7Y2FzZSJtIjpzPXRbcisrXSplK24sbD10W3IrK10qZStpLGEubW92ZVRvKHMsbCk7YnJlYWs7Y2FzZSJsIjpzPXRbcisrXSplK24sbD10W3IrK10qZStpLGEubGluZVRvKHMsbCk7YnJlYWs7Y2FzZSJxIjpjPXRbcisrXSplK24sdT10W3IrK10qZStpLGg9dFtyKytdKmUrbixkPXRbcisrXSplK2ksYS5xdWFkcmF0aWNDdXJ2ZVRvKGgsZCxjLHUpO2JyZWFrO2Nhc2UiYiI6Yz10W3IrK10qZStuLHU9dFtyKytdKmUraSxoPXRbcisrXSplK24sZD10W3IrK10qZStpLHA9dFtyKytdKmUrbixmPXRbcisrXSplK2ksYS5iZXppZXJDdXJ2ZVRvKGgsZCxwLGYsYyx1KX19cmV0dXJue29mZnNldFg6by5oYSplLHBhdGg6YX19bGV0IHo5dDtSOXQucHJvdG90eXBlLmlzRm9udD0hMDtjb25zdCBEOXQ9e2dldENvbnRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09ejl0JiYoejl0PW5ldyh3aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSksejl0fSxzZXRDb250ZXh0OmZ1bmN0aW9uKHQpe3o5dD10fX07Y2xhc3MgQjl0IGV4dGVuZHMgJDZ0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4saSl7Y29uc3Qgcj10aGlzLG89bmV3IFo2dCh0aGlzLm1hbmFnZXIpO28uc2V0UmVzcG9uc2VUeXBlKCJhcnJheWJ1ZmZlciIpLG8uc2V0UGF0aCh0aGlzLnBhdGgpLG8uc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLG8uc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKSxvLmxvYWQodCwoZnVuY3Rpb24obil7dHJ5e2NvbnN0IHQ9bi5zbGljZSgwKTtEOXQuZ2V0Q29udGV4dCgpLmRlY29kZUF1ZGlvRGF0YSh0LChmdW5jdGlvbih0KXtlKHQpfSkpfWNhdGNoKGUpe2k/aShlKTpjb25zb2xlLmVycm9yKGUpLHIubWFuYWdlci5pdGVtRXJyb3IodCl9fSksbixpKX19Y2xhc3MgSDl0IGV4dGVuZHMgUzl0e2NvbnN0cnVjdG9yKHQsZSxuPTEpe3N1cGVyKHZvaWQgMCxuKTtjb25zdCBpPShuZXcgJFF0KS5zZXQodCkscj0obmV3ICRRdCkuc2V0KGUpLG89bmV3IENKdChpLnIsaS5nLGkuYiksYT1uZXcgQ0p0KHIucixyLmcsci5iKSxzPU1hdGguc3FydChNYXRoLlBJKSxsPXMqTWF0aC5zcXJ0KC43NSk7dGhpcy5zaC5jb2VmZmljaWVudHNbMF0uY29weShvKS5hZGQoYSkubXVsdGlwbHlTY2FsYXIocyksdGhpcy5zaC5jb2VmZmljaWVudHNbMV0uY29weShvKS5zdWIoYSkubXVsdGlwbHlTY2FsYXIobCl9fUg5dC5wcm90b3R5cGUuaXNIZW1pc3BoZXJlTGlnaHRQcm9iZT0hMDtjbGFzcyBGOXQgZXh0ZW5kcyBTOXR7Y29uc3RydWN0b3IodCxlPTEpe3N1cGVyKHZvaWQgMCxlKTtjb25zdCBuPShuZXcgJFF0KS5zZXQodCk7dGhpcy5zaC5jb2VmZmljaWVudHNbMF0uc2V0KG4ucixuLmcsbi5iKS5tdWx0aXBseVNjYWxhcigyKk1hdGguc3FydChNYXRoLlBJKSl9fUY5dC5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHRQcm9iZT0hMDtjb25zdCBWOXQ9bmV3IHJRdCxVOXQ9bmV3IHJRdDtjbGFzcyBqOXR7Y29uc3RydWN0b3IodD0hMCl7dGhpcy5hdXRvU3RhcnQ9dCx0aGlzLnN0YXJ0VGltZT0wLHRoaXMub2xkVGltZT0wLHRoaXMuZWxhcHNlZFRpbWU9MCx0aGlzLnJ1bm5pbmc9ITF9c3RhcnQoKXt0aGlzLnN0YXJ0VGltZT1HOXQoKSx0aGlzLm9sZFRpbWU9dGhpcy5zdGFydFRpbWUsdGhpcy5lbGFwc2VkVGltZT0wLHRoaXMucnVubmluZz0hMH1zdG9wKCl7dGhpcy5nZXRFbGFwc2VkVGltZSgpLHRoaXMucnVubmluZz0hMSx0aGlzLmF1dG9TdGFydD0hMX1nZXRFbGFwc2VkVGltZSgpe3JldHVybiB0aGlzLmdldERlbHRhKCksdGhpcy5lbGFwc2VkVGltZX1nZXREZWx0YSgpe2xldCB0PTA7aWYodGhpcy5hdXRvU3RhcnQmJiF0aGlzLnJ1bm5pbmcpcmV0dXJuIHRoaXMuc3RhcnQoKSwwO2lmKHRoaXMucnVubmluZyl7Y29uc3QgZT1HOXQoKTt0PShlLXRoaXMub2xkVGltZSkvMWUzLHRoaXMub2xkVGltZT1lLHRoaXMuZWxhcHNlZFRpbWUrPXR9cmV0dXJuIHR9fWZ1bmN0aW9uIEc5dCgpe3JldHVybigidW5kZWZpbmVkIj09dHlwZW9mIHBlcmZvcm1hbmNlP0RhdGU6cGVyZm9ybWFuY2UpLm5vdygpfWNvbnN0IFc5dD1uZXcgQ0p0LHE5dD1uZXcgVEp0LFk5dD1uZXcgQ0p0LFg5dD1uZXcgQ0p0O2NsYXNzICQ5dCBleHRlbmRzIGtRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iQXVkaW8iLHRoaXMubGlzdGVuZXI9dCx0aGlzLmNvbnRleHQ9dC5jb250ZXh0LHRoaXMuZ2Fpbj10aGlzLmNvbnRleHQuY3JlYXRlR2FpbigpLHRoaXMuZ2Fpbi5jb25uZWN0KHQuZ2V0SW5wdXQoKSksdGhpcy5hdXRvcGxheT0hMSx0aGlzLmJ1ZmZlcj1udWxsLHRoaXMuZGV0dW5lPTAsdGhpcy5sb29wPSExLHRoaXMubG9vcFN0YXJ0PTAsdGhpcy5sb29wRW5kPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmR1cmF0aW9uPXZvaWQgMCx0aGlzLnBsYXliYWNrUmF0ZT0xLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSEwLHRoaXMuc291cmNlPW51bGwsdGhpcy5zb3VyY2VUeXBlPSJlbXB0eSIsdGhpcy5fc3RhcnRlZEF0PTAsdGhpcy5fcHJvZ3Jlc3M9MCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5maWx0ZXJzPVtdfWdldE91dHB1dCgpe3JldHVybiB0aGlzLmdhaW59c2V0Tm9kZVNvdXJjZSh0KXtyZXR1cm4gdGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9ITEsdGhpcy5zb3VyY2VUeXBlPSJhdWRpb05vZGUiLHRoaXMuc291cmNlPXQsdGhpcy5jb25uZWN0KCksdGhpc31zZXRNZWRpYUVsZW1lbnRTb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFOb2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlKHQpLHRoaXMuY29ubmVjdCgpLHRoaXN9c2V0TWVkaWFTdHJlYW1Tb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFTdHJlYW1Ob2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UodCksdGhpcy5jb25uZWN0KCksdGhpc31zZXRCdWZmZXIodCl7cmV0dXJuIHRoaXMuYnVmZmVyPXQsdGhpcy5zb3VyY2VUeXBlPSJidWZmZXIiLHRoaXMuYXV0b3BsYXkmJnRoaXMucGxheSgpLHRoaXN9cGxheSh0PTApe2lmKCEwPT09dGhpcy5pc1BsYXlpbmcpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogQXVkaW8gaXMgYWxyZWFkeSBwbGF5aW5nLiIpO2lmKCExPT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKTt0aGlzLl9zdGFydGVkQXQ9dGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lK3Q7Y29uc3QgZT10aGlzLmNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7cmV0dXJuIGUuYnVmZmVyPXRoaXMuYnVmZmVyLGUubG9vcD10aGlzLmxvb3AsZS5sb29wU3RhcnQ9dGhpcy5sb29wU3RhcnQsZS5sb29wRW5kPXRoaXMubG9vcEVuZCxlLm9uZW5kZWQ9dGhpcy5vbkVuZGVkLmJpbmQodGhpcyksZS5zdGFydCh0aGlzLl9zdGFydGVkQXQsdGhpcy5fcHJvZ3Jlc3MrdGhpcy5vZmZzZXQsdGhpcy5kdXJhdGlvbiksdGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zb3VyY2U9ZSx0aGlzLnNldERldHVuZSh0aGlzLmRldHVuZSksdGhpcy5zZXRQbGF5YmFja1JhdGUodGhpcy5wbGF5YmFja1JhdGUpLHRoaXMuY29ubmVjdCgpfXBhdXNlKCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4hMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5fcHJvZ3Jlc3MrPU1hdGgubWF4KHRoaXMuY29udGV4dC5jdXJyZW50VGltZS10aGlzLl9zdGFydGVkQXQsMCkqdGhpcy5wbGF5YmFja1JhdGUsITA9PT10aGlzLmxvb3AmJih0aGlzLl9wcm9ncmVzcz10aGlzLl9wcm9ncmVzcyUodGhpcy5kdXJhdGlvbnx8dGhpcy5idWZmZXIuZHVyYXRpb24pKSx0aGlzLnNvdXJjZS5zdG9wKCksdGhpcy5zb3VyY2Uub25lbmRlZD1udWxsLHRoaXMuaXNQbGF5aW5nPSExKSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9c3RvcCgpe2lmKCExIT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHRoaXMuX3Byb2dyZXNzPTAsdGhpcy5zb3VyY2Uuc3RvcCgpLHRoaXMuc291cmNlLm9uZW5kZWQ9bnVsbCx0aGlzLmlzUGxheWluZz0hMSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9Y29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmNvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5jb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSEwLHRoaXN9ZGlzY29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmRpc2Nvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5kaXNjb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSExLHRoaXN9Z2V0RmlsdGVycygpe3JldHVybiB0aGlzLmZpbHRlcnN9c2V0RmlsdGVycyh0KXtyZXR1cm4gdHx8KHQ9W10pLCEwPT09dGhpcy5fY29ubmVjdGVkPyh0aGlzLmRpc2Nvbm5lY3QoKSx0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXMuY29ubmVjdCgpKTp0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXN9c2V0RGV0dW5lKHQpe2lmKHRoaXMuZGV0dW5lPXQsdm9pZCAwIT09dGhpcy5zb3VyY2UuZGV0dW5lKXJldHVybiEwPT09dGhpcy5pc1BsYXlpbmcmJnRoaXMuc291cmNlLmRldHVuZS5zZXRUYXJnZXRBdFRpbWUodGhpcy5kZXR1bmUsdGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lLC4wMSksdGhpc31nZXREZXR1bmUoKXtyZXR1cm4gdGhpcy5kZXR1bmV9Z2V0RmlsdGVyKCl7cmV0dXJuIHRoaXMuZ2V0RmlsdGVycygpWzBdfXNldEZpbHRlcih0KXtyZXR1cm4gdGhpcy5zZXRGaWx0ZXJzKHQ/W3RdOltdKX1zZXRQbGF5YmFja1JhdGUodCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGU9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiZ0aGlzLnNvdXJjZS5wbGF5YmFja1JhdGUuc2V0VGFyZ2V0QXRUaW1lKHRoaXMucGxheWJhY2tSYXRlLHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1nZXRQbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGV9b25FbmRlZCgpe3RoaXMuaXNQbGF5aW5nPSExfWdldExvb3AoKXtyZXR1cm4hMT09PXRoaXMuaGFzUGxheWJhY2tDb250cm9sPyhjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpLCExKTp0aGlzLmxvb3B9c2V0TG9vcCh0KXtpZighMSE9PXRoaXMuaGFzUGxheWJhY2tDb250cm9sKXJldHVybiB0aGlzLmxvb3A9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5zb3VyY2UubG9vcD10aGlzLmxvb3ApLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1zZXRMb29wU3RhcnQodCl7cmV0dXJuIHRoaXMubG9vcFN0YXJ0PXQsdGhpc31zZXRMb29wRW5kKHQpe3JldHVybiB0aGlzLmxvb3BFbmQ9dCx0aGlzfWdldFZvbHVtZSgpe3JldHVybiB0aGlzLmdhaW4uZ2Fpbi52YWx1ZX1zZXRWb2x1bWUodCl7cmV0dXJuIHRoaXMuZ2Fpbi5nYWluLnNldFRhcmdldEF0VGltZSh0LHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXN9fWNvbnN0IEs5dD1uZXcgQ0p0LFo5dD1uZXcgVEp0LEo5dD1uZXcgQ0p0LFE5dD1uZXcgQ0p0O2NsYXNzIHQ4dHtjb25zdHJ1Y3Rvcih0LGU9MjA0OCl7dGhpcy5hbmFseXNlcj10LmNvbnRleHQuY3JlYXRlQW5hbHlzZXIoKSx0aGlzLmFuYWx5c2VyLmZmdFNpemU9ZSx0aGlzLmRhdGE9bmV3IFVpbnQ4QXJyYXkodGhpcy5hbmFseXNlci5mcmVxdWVuY3lCaW5Db3VudCksdC5nZXRPdXRwdXQoKS5jb25uZWN0KHRoaXMuYW5hbHlzZXIpfWdldEZyZXF1ZW5jeURhdGEoKXtyZXR1cm4gdGhpcy5hbmFseXNlci5nZXRCeXRlRnJlcXVlbmN5RGF0YSh0aGlzLmRhdGEpLHRoaXMuZGF0YX1nZXRBdmVyYWdlRnJlcXVlbmN5KCl7bGV0IHQ9MDtjb25zdCBlPXRoaXMuZ2V0RnJlcXVlbmN5RGF0YSgpO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQrPWVbbl07cmV0dXJuIHQvZS5sZW5ndGh9fWNsYXNzIGU4dHtjb25zdHJ1Y3Rvcih0LGUsbil7bGV0IGkscixvO3N3aXRjaCh0aGlzLmJpbmRpbmc9dCx0aGlzLnZhbHVlU2l6ZT1uLGUpe2Nhc2UicXVhdGVybmlvbiI6aT10aGlzLl9zbGVycCxyPXRoaXMuX3NsZXJwQWRkaXRpdmUsbz10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5UXVhdGVybmlvbix0aGlzLmJ1ZmZlcj1uZXcgRmxvYXQ2NEFycmF5KDYqbiksdGhpcy5fd29ya0luZGV4PTU7YnJlYWs7Y2FzZSJzdHJpbmciOmNhc2UiYm9vbCI6aT10aGlzLl9zZWxlY3Qscj10aGlzLl9zZWxlY3Qsbz10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5T3RoZXIsdGhpcy5idWZmZXI9bmV3IEFycmF5KDUqbik7YnJlYWs7ZGVmYXVsdDppPXRoaXMuX2xlcnAscj10aGlzLl9sZXJwQWRkaXRpdmUsbz10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5TnVtZXJpYyx0aGlzLmJ1ZmZlcj1uZXcgRmxvYXQ2NEFycmF5KDUqbil9dGhpcy5fbWl4QnVmZmVyUmVnaW9uPWksdGhpcy5fbWl4QnVmZmVyUmVnaW9uQWRkaXRpdmU9cix0aGlzLl9zZXRJZGVudGl0eT1vLHRoaXMuX29yaWdJbmRleD0zLHRoaXMuX2FkZEluZGV4PTQsdGhpcy5jdW11bGF0aXZlV2VpZ2h0PTAsdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmU9MCx0aGlzLnVzZUNvdW50PTAsdGhpcy5yZWZlcmVuY2VDb3VudD0wfWFjY3VtdWxhdGUodCxlKXtjb25zdCBuPXRoaXMuYnVmZmVyLGk9dGhpcy52YWx1ZVNpemUscj10KmkraTtsZXQgbz10aGlzLmN1bXVsYXRpdmVXZWlnaHQ7aWYoMD09PW8pe2ZvcihsZXQgdD0wO3QhPT1pOysrdCluW3IrdF09blt0XTtvPWV9ZWxzZSBvKz1lLHRoaXMuX21peEJ1ZmZlclJlZ2lvbihuLHIsMCxlL28saSk7dGhpcy5jdW11bGF0aXZlV2VpZ2h0PW99YWNjdW11bGF0ZUFkZGl0aXZlKHQpe2NvbnN0IGU9dGhpcy5idWZmZXIsbj10aGlzLnZhbHVlU2l6ZSxpPW4qdGhpcy5fYWRkSW5kZXg7MD09PXRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlJiZ0aGlzLl9zZXRJZGVudGl0eSgpLHRoaXMuX21peEJ1ZmZlclJlZ2lvbkFkZGl0aXZlKGUsaSwwLHQsbiksdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmUrPXR9YXBwbHkodCl7Y29uc3QgZT10aGlzLnZhbHVlU2l6ZSxuPXRoaXMuYnVmZmVyLGk9dCplK2Uscj10aGlzLmN1bXVsYXRpdmVXZWlnaHQsbz10aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZSxhPXRoaXMuYmluZGluZzt0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9MCx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT0wLHI8MSYmdGhpcy5fbWl4QnVmZmVyUmVnaW9uKG4saSxlKnRoaXMuX29yaWdJbmRleCwxLXIsZSksbz4wJiZ0aGlzLl9taXhCdWZmZXJSZWdpb25BZGRpdGl2ZShuLGksdGhpcy5fYWRkSW5kZXgqZSwxLGUpO2ZvcihsZXQgdD1lLHI9ZStlO3QhPT1yOysrdClpZihuW3RdIT09blt0K2VdKXthLnNldFZhbHVlKG4saSk7YnJlYWt9fXNhdmVPcmlnaW5hbFN0YXRlKCl7Y29uc3QgdD10aGlzLmJ1ZmZlcixlPXRoaXMudmFsdWVTaXplLG49ZSp0aGlzLl9vcmlnSW5kZXg7dGhpcy5iaW5kaW5nLmdldFZhbHVlKHQsbik7Zm9yKGxldCBpPWUscj1uO2khPT1yOysraSl0W2ldPXRbbitpJWVdO3RoaXMuX3NldElkZW50aXR5KCksdGhpcy5jdW11bGF0aXZlV2VpZ2h0PTAsdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmU9MH1yZXN0b3JlT3JpZ2luYWxTdGF0ZSgpe3RoaXMuYmluZGluZy5zZXRWYWx1ZSh0aGlzLmJ1ZmZlciwzKnRoaXMudmFsdWVTaXplKX1fc2V0QWRkaXRpdmVJZGVudGl0eU51bWVyaWMoKXtjb25zdCB0PXRoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplLGU9dCt0aGlzLnZhbHVlU2l6ZTtmb3IobGV0IG49dDtuPGU7bisrKXRoaXMuYnVmZmVyW25dPTB9X3NldEFkZGl0aXZlSWRlbnRpdHlRdWF0ZXJuaW9uKCl7dGhpcy5fc2V0QWRkaXRpdmVJZGVudGl0eU51bWVyaWMoKSx0aGlzLmJ1ZmZlclt0aGlzLl9hZGRJbmRleCp0aGlzLnZhbHVlU2l6ZSszXT0xfV9zZXRBZGRpdGl2ZUlkZW50aXR5T3RoZXIoKXtjb25zdCB0PXRoaXMuX29yaWdJbmRleCp0aGlzLnZhbHVlU2l6ZSxlPXRoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplO2ZvcihsZXQgbj0wO248dGhpcy52YWx1ZVNpemU7bisrKXRoaXMuYnVmZmVyW2Urbl09dGhpcy5idWZmZXJbdCtuXX1fc2VsZWN0KHQsZSxuLGkscil7aWYoaT49LjUpZm9yKGxldCBpPTA7aSE9PXI7KytpKXRbZStpXT10W24raV19X3NsZXJwKHQsZSxuLGkpe1RKdC5zbGVycEZsYXQodCxlLHQsZSx0LG4saSl9X3NsZXJwQWRkaXRpdmUodCxlLG4saSxyKXtjb25zdCBvPXRoaXMuX3dvcmtJbmRleCpyO1RKdC5tdWx0aXBseVF1YXRlcm5pb25zRmxhdCh0LG8sdCxlLHQsbiksVEp0LnNsZXJwRmxhdCh0LGUsdCxlLHQsbyxpKX1fbGVycCh0LGUsbixpLHIpe2NvbnN0IG89MS1pO2ZvcihsZXQgYT0wO2EhPT1yOysrYSl7Y29uc3Qgcj1lK2E7dFtyXT10W3JdKm8rdFtuK2FdKml9fV9sZXJwQWRkaXRpdmUodCxlLG4saSxyKXtmb3IobGV0IG89MDtvIT09cjsrK28pe2NvbnN0IHI9ZStvO3Rbcl09dFtyXSt0W24rb10qaX19fWNvbnN0IG44dD1uZXcgUmVnRXhwKCJbXFxbXFxdXFwuOlxcL10iLCJnIiksaTh0PSJbXlxcW1xcXVxcLjpcXC9dIixyOHQ9IlteIisiXFxbXFxdXFwuOlxcLyIucmVwbGFjZSgiXFwuIiwiIikrIl0iLG84dD0vKCg/OldDK1tcLzpdKSopLy5zb3VyY2UucmVwbGFjZSgiV0MiLGk4dCksYTh0PS8oV0NPRCspPy8uc291cmNlLnJlcGxhY2UoIldDT0QiLHI4dCksczh0PS8oPzpcLihXQyspKD86XFsoLispXF0pPyk/Ly5zb3VyY2UucmVwbGFjZSgiV0MiLGk4dCksbDh0PS9cLihXQyspKD86XFsoLispXF0pPy8uc291cmNlLnJlcGxhY2UoIldDIixpOHQpLGM4dD1uZXcgUmVnRXhwKCJeIitvOHQrYTh0K3M4dCtsOHQrIiQiKSx1OHQ9WyJtYXRlcmlhbCIsIm1hdGVyaWFscyIsImJvbmVzIl07Y2xhc3MgaDh0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLnBhdGg9ZSx0aGlzLnBhcnNlZFBhdGg9bnx8aDh0LnBhcnNlVHJhY2tOYW1lKGUpLHRoaXMubm9kZT1oOHQuZmluZE5vZGUodCx0aGlzLnBhcnNlZFBhdGgubm9kZU5hbWUpfHx0LHRoaXMucm9vdE5vZGU9dCx0aGlzLmdldFZhbHVlPXRoaXMuX2dldFZhbHVlX3VuYm91bmQsdGhpcy5zZXRWYWx1ZT10aGlzLl9zZXRWYWx1ZV91bmJvdW5kfXN0YXRpYyBjcmVhdGUodCxlLG4pe3JldHVybiB0JiZ0LmlzQW5pbWF0aW9uT2JqZWN0R3JvdXA/bmV3IGg4dC5Db21wb3NpdGUodCxlLG4pOm5ldyBoOHQodCxlLG4pfXN0YXRpYyBzYW5pdGl6ZU5vZGVOYW1lKHQpe3JldHVybiB0LnJlcGxhY2UoL1xzL2csIl8iKS5yZXBsYWNlKG44dCwiIil9c3RhdGljIHBhcnNlVHJhY2tOYW1lKHQpe2NvbnN0IGU9Yzh0LmV4ZWModCk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJQcm9wZXJ0eUJpbmRpbmc6IENhbm5vdCBwYXJzZSB0cmFja05hbWU6ICIrdCk7Y29uc3Qgbj17bm9kZU5hbWU6ZVsyXSxvYmplY3ROYW1lOmVbM10sb2JqZWN0SW5kZXg6ZVs0XSxwcm9wZXJ0eU5hbWU6ZVs1XSxwcm9wZXJ0eUluZGV4OmVbNl19LGk9bi5ub2RlTmFtZSYmbi5ub2RlTmFtZS5sYXN0SW5kZXhPZigiLiIpO2lmKHZvaWQgMCE9PWkmJi0xIT09aSl7Y29uc3QgdD1uLm5vZGVOYW1lLnN1YnN0cmluZyhpKzEpOy0xIT09dTh0LmluZGV4T2YodCkmJihuLm5vZGVOYW1lPW4ubm9kZU5hbWUuc3Vic3RyaW5nKDAsaSksbi5vYmplY3ROYW1lPXQpfWlmKG51bGw9PT1uLnByb3BlcnR5TmFtZXx8MD09PW4ucHJvcGVydHlOYW1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlByb3BlcnR5QmluZGluZzogY2FuIG5vdCBwYXJzZSBwcm9wZXJ0eU5hbWUgZnJvbSB0cmFja05hbWU6ICIrdCk7cmV0dXJuIG59c3RhdGljIGZpbmROb2RlKHQsZSl7aWYoIWV8fCIiPT09ZXx8Ii4iPT09ZXx8LTE9PT1lfHxlPT09dC5uYW1lfHxlPT09dC51dWlkKXJldHVybiB0O2lmKHQuc2tlbGV0b24pe2NvbnN0IG49dC5za2VsZXRvbi5nZXRCb25lQnlOYW1lKGUpO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG59aWYodC5jaGlsZHJlbil7Y29uc3Qgbj1mdW5jdGlvbih0KXtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krKyl7Y29uc3Qgcj10W2ldO2lmKHIubmFtZT09PWV8fHIudXVpZD09PWUpcmV0dXJuIHI7Y29uc3Qgbz1uKHIuY2hpbGRyZW4pO2lmKG8pcmV0dXJuIG99cmV0dXJuIG51bGx9LGk9bih0LmNoaWxkcmVuKTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfV9nZXRWYWx1ZV91bmF2YWlsYWJsZSgpe31fc2V0VmFsdWVfdW5hdmFpbGFibGUoKXt9X2dldFZhbHVlX2RpcmVjdCh0LGUpe3RbZV09dGhpcy5ub2RlW3RoaXMucHJvcGVydHlOYW1lXX1fZ2V0VmFsdWVfYXJyYXkodCxlKXtjb25zdCBuPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eTtmb3IobGV0IGk9MCxyPW4ubGVuZ3RoO2khPT1yOysraSl0W2UrK109bltpXX1fZ2V0VmFsdWVfYXJyYXlFbGVtZW50KHQsZSl7dFtlXT10aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XX1fZ2V0VmFsdWVfdG9BcnJheSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS50b0FycmF5KHQsZSl9X3NldFZhbHVlX2RpcmVjdCh0LGUpe3RoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXT10W2VdfV9zZXRWYWx1ZV9kaXJlY3Rfc2V0TmVlZHNVcGRhdGUodCxlKXt0aGlzLnRhcmdldE9iamVjdFt0aGlzLnByb3BlcnR5TmFtZV09dFtlXSx0aGlzLnRhcmdldE9iamVjdC5uZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfZGlyZWN0X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxlKXt0aGlzLnRhcmdldE9iamVjdFt0aGlzLnByb3BlcnR5TmFtZV09dFtlXSx0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheSh0LGUpe2NvbnN0IG49dGhpcy5yZXNvbHZlZFByb3BlcnR5O2ZvcihsZXQgaT0wLHI9bi5sZW5ndGg7aSE9PXI7KytpKW5baV09dFtlKytdfV9zZXRWYWx1ZV9hcnJheV9zZXROZWVkc1VwZGF0ZSh0LGUpe2NvbnN0IG49dGhpcy5yZXNvbHZlZFByb3BlcnR5O2ZvcihsZXQgaT0wLHI9bi5sZW5ndGg7aSE9PXI7KytpKW5baV09dFtlKytdO3RoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlKHQsZSl7Y29uc3Qgbj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBpPTAscj1uLmxlbmd0aDtpIT09cjsrK2kpbltpXT10W2UrK107dGhpcy50YXJnZXRPYmplY3QubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfYXJyYXlFbGVtZW50KHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF09dFtlXX1fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE5lZWRzVXBkYXRlKHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF09dFtlXSx0aGlzLnRhcmdldE9iamVjdC5uZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2Zyb21BcnJheSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS5mcm9tQXJyYXkodCxlKX1fc2V0VmFsdWVfZnJvbUFycmF5X3NldE5lZWRzVXBkYXRlKHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LmZyb21BcnJheSh0LGUpLHRoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS5mcm9tQXJyYXkodCxlKSx0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9nZXRWYWx1ZV91bmJvdW5kKHQsZSl7dGhpcy5iaW5kKCksdGhpcy5nZXRWYWx1ZSh0LGUpfV9zZXRWYWx1ZV91bmJvdW5kKHQsZSl7dGhpcy5iaW5kKCksdGhpcy5zZXRWYWx1ZSh0LGUpfWJpbmQoKXtsZXQgdD10aGlzLm5vZGU7Y29uc3QgZT10aGlzLnBhcnNlZFBhdGgsbj1lLm9iamVjdE5hbWUsaT1lLnByb3BlcnR5TmFtZTtsZXQgcj1lLnByb3BlcnR5SW5kZXg7aWYodHx8KHQ9aDh0LmZpbmROb2RlKHRoaXMucm9vdE5vZGUsZS5ub2RlTmFtZSl8fHRoaXMucm9vdE5vZGUsdGhpcy5ub2RlPXQpLHRoaXMuZ2V0VmFsdWU9dGhpcy5fZ2V0VmFsdWVfdW5hdmFpbGFibGUsdGhpcy5zZXRWYWx1ZT10aGlzLl9zZXRWYWx1ZV91bmF2YWlsYWJsZSwhdClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IFRyeWluZyB0byB1cGRhdGUgbm9kZSBmb3IgdHJhY2s6ICIrdGhpcy5wYXRoKyIgYnV0IGl0IHdhc24ndCBmb3VuZC4iKTtpZihuKXtsZXQgaT1lLm9iamVjdEluZGV4O3N3aXRjaChuKXtjYXNlIm1hdGVyaWFscyI6aWYoIXQubWF0ZXJpYWwpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbWF0ZXJpYWwgYXMgbm9kZSBkb2VzIG5vdCBoYXZlIGEgbWF0ZXJpYWwuIix0aGlzKTtpZighdC5tYXRlcmlhbC5tYXRlcmlhbHMpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbWF0ZXJpYWwubWF0ZXJpYWxzIGFzIG5vZGUubWF0ZXJpYWwgZG9lcyBub3QgaGF2ZSBhIG1hdGVyaWFscyBhcnJheS4iLHRoaXMpO3Q9dC5tYXRlcmlhbC5tYXRlcmlhbHM7YnJlYWs7Y2FzZSJib25lcyI6aWYoIXQuc2tlbGV0b24pcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gYm9uZXMgYXMgbm9kZSBkb2VzIG5vdCBoYXZlIGEgc2tlbGV0b24uIix0aGlzKTt0PXQuc2tlbGV0b24uYm9uZXM7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXS5uYW1lPT09aSl7aT1lO2JyZWFrfWJyZWFrO2RlZmF1bHQ6aWYodm9pZCAwPT09dFtuXSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBvYmplY3ROYW1lIG9mIG5vZGUgdW5kZWZpbmVkLiIsdGhpcyk7dD10W25dfWlmKHZvaWQgMCE9PWkpe2lmKHZvaWQgMD09PXRbaV0pcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBUcnlpbmcgdG8gYmluZCB0byBvYmplY3RJbmRleCBvZiBvYmplY3ROYW1lLCBidXQgaXMgdW5kZWZpbmVkLiIsdGhpcyx0KTt0PXRbaV19fWNvbnN0IG89dFtpXTtpZih2b2lkIDA9PT1vKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogVHJ5aW5nIHRvIHVwZGF0ZSBwcm9wZXJ0eSBmb3IgdHJhY2s6ICIrZS5ub2RlTmFtZSsiLiIraSsiIGJ1dCBpdCB3YXNuJ3QgZm91bmQuIix0KTtsZXQgYT10aGlzLlZlcnNpb25pbmcuTm9uZTt0aGlzLnRhcmdldE9iamVjdD10LHZvaWQgMCE9PXQubmVlZHNVcGRhdGU/YT10aGlzLlZlcnNpb25pbmcuTmVlZHNVcGRhdGU6dm9pZCAwIT09dC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlJiYoYT10aGlzLlZlcnNpb25pbmcuTWF0cml4V29ybGROZWVkc1VwZGF0ZSk7bGV0IHM9dGhpcy5CaW5kaW5nVHlwZS5EaXJlY3Q7aWYodm9pZCAwIT09cil7aWYoIm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyI9PT1pKXtpZighdC5nZW9tZXRyeSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtb3JwaFRhcmdldEluZmx1ZW5jZXMgYmVjYXVzZSBub2RlIGRvZXMgbm90IGhhdmUgYSBnZW9tZXRyeS4iLHRoaXMpO2lmKCF0Lmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbW9ycGhUYXJnZXRJbmZsdWVuY2VzIG9uIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iLHRoaXMpO2lmKCF0Lmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcylyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtb3JwaFRhcmdldEluZmx1ZW5jZXMgYmVjYXVzZSBub2RlIGRvZXMgbm90IGhhdmUgYSBnZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMuIix0aGlzKTt2b2lkIDAhPT10Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtyXSYmKHI9dC5tb3JwaFRhcmdldERpY3Rpb25hcnlbcl0pfXM9dGhpcy5CaW5kaW5nVHlwZS5BcnJheUVsZW1lbnQsdGhpcy5yZXNvbHZlZFByb3BlcnR5PW8sdGhpcy5wcm9wZXJ0eUluZGV4PXJ9ZWxzZSB2b2lkIDAhPT1vLmZyb21BcnJheSYmdm9pZCAwIT09by50b0FycmF5PyhzPXRoaXMuQmluZGluZ1R5cGUuSGFzRnJvbVRvQXJyYXksdGhpcy5yZXNvbHZlZFByb3BlcnR5PW8pOkFycmF5LmlzQXJyYXkobyk/KHM9dGhpcy5CaW5kaW5nVHlwZS5FbnRpcmVBcnJheSx0aGlzLnJlc29sdmVkUHJvcGVydHk9byk6dGhpcy5wcm9wZXJ0eU5hbWU9aTt0aGlzLmdldFZhbHVlPXRoaXMuR2V0dGVyQnlCaW5kaW5nVHlwZVtzXSx0aGlzLnNldFZhbHVlPXRoaXMuU2V0dGVyQnlCaW5kaW5nVHlwZUFuZFZlcnNpb25pbmdbc11bYV19dW5iaW5kKCl7dGhpcy5ub2RlPW51bGwsdGhpcy5nZXRWYWx1ZT10aGlzLl9nZXRWYWx1ZV91bmJvdW5kLHRoaXMuc2V0VmFsdWU9dGhpcy5fc2V0VmFsdWVfdW5ib3VuZH19aDh0LkNvbXBvc2l0ZT1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbil7Y29uc3QgaT1ufHxoOHQucGFyc2VUcmFja05hbWUoZSk7dGhpcy5fdGFyZ2V0R3JvdXA9dCx0aGlzLl9iaW5kaW5ncz10LnN1YnNjcmliZV8oZSxpKX1nZXRWYWx1ZSh0LGUpe3RoaXMuYmluZCgpO2NvbnN0IG49dGhpcy5fYmluZGluZ3NbdGhpcy5fdGFyZ2V0R3JvdXAubkNhY2hlZE9iamVjdHNfXTt2b2lkIDAhPT1uJiZuLmdldFZhbHVlKHQsZSl9c2V0VmFsdWUodCxlKXtjb25zdCBuPXRoaXMuX2JpbmRpbmdzO2ZvcihsZXQgaT10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18scj1uLmxlbmd0aDtpIT09cjsrK2kpbltpXS5zZXRWYWx1ZSh0LGUpfWJpbmQoKXtjb25zdCB0PXRoaXMuX2JpbmRpbmdzO2ZvcihsZXQgZT10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18sbj10Lmxlbmd0aDtlIT09bjsrK2UpdFtlXS5iaW5kKCl9dW5iaW5kKCl7Y29uc3QgdD10aGlzLl9iaW5kaW5ncztmb3IobGV0IGU9dGhpcy5fdGFyZ2V0R3JvdXAubkNhY2hlZE9iamVjdHNfLG49dC5sZW5ndGg7ZSE9PW47KytlKXRbZV0udW5iaW5kKCl9fSxoOHQucHJvdG90eXBlLkJpbmRpbmdUeXBlPXtEaXJlY3Q6MCxFbnRpcmVBcnJheToxLEFycmF5RWxlbWVudDoyLEhhc0Zyb21Ub0FycmF5OjN9LGg4dC5wcm90b3R5cGUuVmVyc2lvbmluZz17Tm9uZTowLE5lZWRzVXBkYXRlOjEsTWF0cml4V29ybGROZWVkc1VwZGF0ZToyfSxoOHQucHJvdG90eXBlLkdldHRlckJ5QmluZGluZ1R5cGU9W2g4dC5wcm90b3R5cGUuX2dldFZhbHVlX2RpcmVjdCxoOHQucHJvdG90eXBlLl9nZXRWYWx1ZV9hcnJheSxoOHQucHJvdG90eXBlLl9nZXRWYWx1ZV9hcnJheUVsZW1lbnQsaDh0LnByb3RvdHlwZS5fZ2V0VmFsdWVfdG9BcnJheV0saDh0LnByb3RvdHlwZS5TZXR0ZXJCeUJpbmRpbmdUeXBlQW5kVmVyc2lvbmluZz1bW2g4dC5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdCxoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9kaXJlY3Rfc2V0TmVlZHNVcGRhdGUsaDh0LnByb3RvdHlwZS5fc2V0VmFsdWVfZGlyZWN0X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdLFtoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheSxoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheV9zZXROZWVkc1VwZGF0ZSxoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXSxbaDh0LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50LGg4dC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5RWxlbWVudF9zZXROZWVkc1VwZGF0ZSxoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheUVsZW1lbnRfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZV0sW2g4dC5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheSxoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TmVlZHNVcGRhdGUsaDh0LnByb3RvdHlwZS5fc2V0VmFsdWVfZnJvbUFycmF5X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdXTtjbGFzcyBkOHR7Y29uc3RydWN0b3IoKXt0aGlzLnV1aWQ9WFp0KCksdGhpcy5fb2JqZWN0cz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLHRoaXMubkNhY2hlZE9iamVjdHNfPTA7Y29uc3QgdD17fTt0aGlzLl9pbmRpY2VzQnlVVUlEPXQ7Zm9yKGxldCBlPTAsbj1hcmd1bWVudHMubGVuZ3RoO2UhPT1uOysrZSl0W2FyZ3VtZW50c1tlXS51dWlkXT1lO3RoaXMuX3BhdGhzPVtdLHRoaXMuX3BhcnNlZFBhdGhzPVtdLHRoaXMuX2JpbmRpbmdzPVtdLHRoaXMuX2JpbmRpbmdzSW5kaWNlc0J5UGF0aD17fTtjb25zdCBlPXRoaXM7dGhpcy5zdGF0cz17b2JqZWN0czp7Z2V0IHRvdGFsKCl7cmV0dXJuIGUuX29iamVjdHMubGVuZ3RofSxnZXQgaW5Vc2UoKXtyZXR1cm4gdGhpcy50b3RhbC1lLm5DYWNoZWRPYmplY3RzX319LGdldCBiaW5kaW5nc1Blck9iamVjdCgpe3JldHVybiBlLl9iaW5kaW5ncy5sZW5ndGh9fX1hZGQoKXtjb25zdCB0PXRoaXMuX29iamVjdHMsZT10aGlzLl9pbmRpY2VzQnlVVUlELG49dGhpcy5fcGF0aHMsaT10aGlzLl9wYXJzZWRQYXRocyxyPXRoaXMuX2JpbmRpbmdzLG89ci5sZW5ndGg7bGV0IGEscz10Lmxlbmd0aCxsPXRoaXMubkNhY2hlZE9iamVjdHNfO2ZvcihsZXQgYz0wLHU9YXJndW1lbnRzLmxlbmd0aDtjIT09dTsrK2Mpe2NvbnN0IHU9YXJndW1lbnRzW2NdLGg9dS51dWlkO2xldCBkPWVbaF07aWYodm9pZCAwPT09ZCl7ZD1zKyssZVtoXT1kLHQucHVzaCh1KTtmb3IobGV0IHQ9MCxlPW87dCE9PWU7Kyt0KXJbdF0ucHVzaChuZXcgaDh0KHUsblt0XSxpW3RdKSl9ZWxzZSBpZihkPGwpe2E9dFtkXTtjb25zdCBzPS0tbCxjPXRbc107ZVtjLnV1aWRdPWQsdFtkXT1jLGVbaF09cyx0W3NdPXU7Zm9yKGxldCB0PTAsZT1vO3QhPT1lOysrdCl7Y29uc3QgZT1yW3RdO2xldCBvPWVbZF07ZVtkXT1lW3NdLHZvaWQgMD09PW8mJihvPW5ldyBoOHQodSxuW3RdLGlbdF0pKSxlW3NdPW99fWVsc2UgdFtkXSE9PWEmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkFuaW1hdGlvbk9iamVjdEdyb3VwOiBEaWZmZXJlbnQgb2JqZWN0cyB3aXRoIHRoZSBzYW1lIFVVSUQgZGV0ZWN0ZWQuIENsZWFuIHRoZSBjYWNoZXMgb3IgcmVjcmVhdGUgeW91ciBpbmZyYXN0cnVjdHVyZSB3aGVuIHJlbG9hZGluZyBzY2VuZXMuIil9dGhpcy5uQ2FjaGVkT2JqZWN0c189bH1yZW1vdmUoKXtjb25zdCB0PXRoaXMuX29iamVjdHMsZT10aGlzLl9pbmRpY2VzQnlVVUlELG49dGhpcy5fYmluZGluZ3MsaT1uLmxlbmd0aDtsZXQgcj10aGlzLm5DYWNoZWRPYmplY3RzXztmb3IobGV0IG89MCxhPWFyZ3VtZW50cy5sZW5ndGg7byE9PWE7KytvKXtjb25zdCBhPWFyZ3VtZW50c1tvXSxzPWEudXVpZCxsPWVbc107aWYodm9pZCAwIT09bCYmbD49cil7Y29uc3Qgbz1yKyssYz10W29dO2VbYy51dWlkXT1sLHRbbF09YyxlW3NdPW8sdFtvXT1hO2ZvcihsZXQgdD0wLGU9aTt0IT09ZTsrK3Qpe2NvbnN0IGU9blt0XSxpPWVbbF07ZVtsXT1lW29dLGVbb109aX19fXRoaXMubkNhY2hlZE9iamVjdHNfPXJ9dW5jYWNoZSgpe2NvbnN0IHQ9dGhpcy5fb2JqZWN0cyxlPXRoaXMuX2luZGljZXNCeVVVSUQsbj10aGlzLl9iaW5kaW5ncyxpPW4ubGVuZ3RoO2xldCByPXRoaXMubkNhY2hlZE9iamVjdHNfLG89dC5sZW5ndGg7Zm9yKGxldCBhPTAscz1hcmd1bWVudHMubGVuZ3RoO2EhPT1zOysrYSl7Y29uc3Qgcz1hcmd1bWVudHNbYV0udXVpZCxsPWVbc107aWYodm9pZCAwIT09bClpZihkZWxldGUgZVtzXSxsPHIpe2NvbnN0IGE9LS1yLHM9dFthXSxjPS0tbyx1PXRbY107ZVtzLnV1aWRdPWwsdFtsXT1zLGVbdS51dWlkXT1hLHRbYV09dSx0LnBvcCgpO2ZvcihsZXQgdD0wLGU9aTt0IT09ZTsrK3Qpe2NvbnN0IGU9blt0XSxpPWVbY107ZVtsXT1lW2FdLGVbYV09aSxlLnBvcCgpfX1lbHNle2NvbnN0IHI9LS1vLGE9dFtyXTtyPjAmJihlW2EudXVpZF09bCksdFtsXT1hLHQucG9wKCk7Zm9yKGxldCB0PTAsZT1pO3QhPT1lOysrdCl7Y29uc3QgZT1uW3RdO2VbbF09ZVtyXSxlLnBvcCgpfX19dGhpcy5uQ2FjaGVkT2JqZWN0c189cn1zdWJzY3JpYmVfKHQsZSl7Y29uc3Qgbj10aGlzLl9iaW5kaW5nc0luZGljZXNCeVBhdGg7bGV0IGk9blt0XTtjb25zdCByPXRoaXMuX2JpbmRpbmdzO2lmKHZvaWQgMCE9PWkpcmV0dXJuIHJbaV07Y29uc3Qgbz10aGlzLl9wYXRocyxhPXRoaXMuX3BhcnNlZFBhdGhzLHM9dGhpcy5fb2JqZWN0cyxsPXRoaXMubkNhY2hlZE9iamVjdHNfLGM9bmV3IEFycmF5KHMubGVuZ3RoKTtpPXIubGVuZ3RoLG5bdF09aSxvLnB1c2godCksYS5wdXNoKGUpLHIucHVzaChjKTtmb3IobGV0IG49bCxpPXMubGVuZ3RoO24hPT1pOysrbiljW25dPW5ldyBoOHQoc1tuXSx0LGUpO3JldHVybiBjfXVuc3Vic2NyaWJlXyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzSW5kaWNlc0J5UGF0aCxuPWVbdF07aWYodm9pZCAwIT09bil7Y29uc3QgaT10aGlzLl9wYXRocyxyPXRoaXMuX3BhcnNlZFBhdGhzLG89dGhpcy5fYmluZGluZ3MsYT1vLmxlbmd0aC0xLHM9b1thXTtlW3RbYV1dPW4sb1tuXT1zLG8ucG9wKCkscltuXT1yW2FdLHIucG9wKCksaVtuXT1pW2FdLGkucG9wKCl9fX1kOHQucHJvdG90eXBlLmlzQW5pbWF0aW9uT2JqZWN0R3JvdXA9ITA7Y2xhc3MgcDh0e2NvbnN0cnVjdG9yKHQsZSxuPW51bGwsaT1lLmJsZW5kTW9kZSl7dGhpcy5fbWl4ZXI9dCx0aGlzLl9jbGlwPWUsdGhpcy5fbG9jYWxSb290PW4sdGhpcy5ibGVuZE1vZGU9aTtjb25zdCByPWUudHJhY2tzLG89ci5sZW5ndGgsYT1uZXcgQXJyYXkobykscz17ZW5kaW5nU3RhcnQ6Q1p0LGVuZGluZ0VuZDpDWnR9O2ZvcihsZXQgdD0wO3QhPT1vOysrdCl7Y29uc3QgZT1yW3RdLmNyZWF0ZUludGVycG9sYW50KG51bGwpO2FbdF09ZSxlLnNldHRpbmdzPXN9dGhpcy5faW50ZXJwb2xhbnRTZXR0aW5ncz1zLHRoaXMuX2ludGVycG9sYW50cz1hLHRoaXMuX3Byb3BlcnR5QmluZGluZ3M9bmV3IEFycmF5KG8pLHRoaXMuX2NhY2hlSW5kZXg9bnVsbCx0aGlzLl9ieUNsaXBDYWNoZUluZGV4PW51bGwsdGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl93ZWlnaHRJbnRlcnBvbGFudD1udWxsLHRoaXMubG9vcD0yMjAxLHRoaXMuX2xvb3BDb3VudD0tMSx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLnRpbWU9MCx0aGlzLnRpbWVTY2FsZT0xLHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZT0xLHRoaXMud2VpZ2h0PTEsdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PTEsdGhpcy5yZXBldGl0aW9ucz0xLzAsdGhpcy5wYXVzZWQ9ITEsdGhpcy5lbmFibGVkPSEwLHRoaXMuY2xhbXBXaGVuRmluaXNoZWQ9ITEsdGhpcy56ZXJvU2xvcGVBdFN0YXJ0PSEwLHRoaXMuemVyb1Nsb3BlQXRFbmQ9ITB9cGxheSgpe3JldHVybiB0aGlzLl9taXhlci5fYWN0aXZhdGVBY3Rpb24odGhpcyksdGhpc31zdG9wKCl7cmV0dXJuIHRoaXMuX21peGVyLl9kZWFjdGl2YXRlQWN0aW9uKHRoaXMpLHRoaXMucmVzZXQoKX1yZXNldCgpe3JldHVybiB0aGlzLnBhdXNlZD0hMSx0aGlzLmVuYWJsZWQ9ITAsdGhpcy50aW1lPTAsdGhpcy5fbG9vcENvdW50PS0xLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuc3RvcEZhZGluZygpLnN0b3BXYXJwaW5nKCl9aXNSdW5uaW5nKCl7cmV0dXJuIHRoaXMuZW5hYmxlZCYmIXRoaXMucGF1c2VkJiYwIT09dGhpcy50aW1lU2NhbGUmJm51bGw9PT10aGlzLl9zdGFydFRpbWUmJnRoaXMuX21peGVyLl9pc0FjdGl2ZUFjdGlvbih0aGlzKX1pc1NjaGVkdWxlZCgpe3JldHVybiB0aGlzLl9taXhlci5faXNBY3RpdmVBY3Rpb24odGhpcyl9c3RhcnRBdCh0KXtyZXR1cm4gdGhpcy5fc3RhcnRUaW1lPXQsdGhpc31zZXRMb29wKHQsZSl7cmV0dXJuIHRoaXMubG9vcD10LHRoaXMucmVwZXRpdGlvbnM9ZSx0aGlzfXNldEVmZmVjdGl2ZVdlaWdodCh0KXtyZXR1cm4gdGhpcy53ZWlnaHQ9dCx0aGlzLl9lZmZlY3RpdmVXZWlnaHQ9dGhpcy5lbmFibGVkP3Q6MCx0aGlzLnN0b3BGYWRpbmcoKX1nZXRFZmZlY3RpdmVXZWlnaHQoKXtyZXR1cm4gdGhpcy5fZWZmZWN0aXZlV2VpZ2h0fWZhZGVJbih0KXtyZXR1cm4gdGhpcy5fc2NoZWR1bGVGYWRpbmcodCwwLDEpfWZhZGVPdXQodCl7cmV0dXJuIHRoaXMuX3NjaGVkdWxlRmFkaW5nKHQsMSwwKX1jcm9zc0ZhZGVGcm9tKHQsZSxuKXtpZih0LmZhZGVPdXQoZSksdGhpcy5mYWRlSW4oZSksbil7Y29uc3Qgbj10aGlzLl9jbGlwLmR1cmF0aW9uLGk9dC5fY2xpcC5kdXJhdGlvbixyPW4vaTt0LndhcnAoMSxpL24sZSksdGhpcy53YXJwKHIsMSxlKX1yZXR1cm4gdGhpc31jcm9zc0ZhZGVUbyh0LGUsbil7cmV0dXJuIHQuY3Jvc3NGYWRlRnJvbSh0aGlzLGUsbil9c3RvcEZhZGluZygpe2NvbnN0IHQ9dGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ7cmV0dXJuIG51bGwhPT10JiYodGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl9taXhlci5fdGFrZUJhY2tDb250cm9sSW50ZXJwb2xhbnQodCkpLHRoaXN9c2V0RWZmZWN0aXZlVGltZVNjYWxlKHQpe3JldHVybiB0aGlzLnRpbWVTY2FsZT10LHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZT10aGlzLnBhdXNlZD8wOnQsdGhpcy5zdG9wV2FycGluZygpfWdldEVmZmVjdGl2ZVRpbWVTY2FsZSgpe3JldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGV9c2V0RHVyYXRpb24odCl7cmV0dXJuIHRoaXMudGltZVNjYWxlPXRoaXMuX2NsaXAuZHVyYXRpb24vdCx0aGlzLnN0b3BXYXJwaW5nKCl9c3luY1dpdGgodCl7cmV0dXJuIHRoaXMudGltZT10LnRpbWUsdGhpcy50aW1lU2NhbGU9dC50aW1lU2NhbGUsdGhpcy5zdG9wV2FycGluZygpfWhhbHQodCl7cmV0dXJuIHRoaXMud2FycCh0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGUsMCx0KX13YXJwKHQsZSxuKXtjb25zdCBpPXRoaXMuX21peGVyLHI9aS50aW1lLG89dGhpcy50aW1lU2NhbGU7bGV0IGE9dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7bnVsbD09PWEmJihhPWkuX2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKSx0aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudD1hKTtjb25zdCBzPWEucGFyYW1ldGVyUG9zaXRpb25zLGw9YS5zYW1wbGVWYWx1ZXM7cmV0dXJuIHNbMF09cixzWzFdPXIrbixsWzBdPXQvbyxsWzFdPWUvbyx0aGlzfXN0b3BXYXJwaW5nKCl7Y29uc3QgdD10aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudDtyZXR1cm4gbnVsbCE9PXQmJih0aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudD1udWxsLHRoaXMuX21peGVyLl90YWtlQmFja0NvbnRyb2xJbnRlcnBvbGFudCh0KSksdGhpc31nZXRNaXhlcigpe3JldHVybiB0aGlzLl9taXhlcn1nZXRDbGlwKCl7cmV0dXJuIHRoaXMuX2NsaXB9Z2V0Um9vdCgpe3JldHVybiB0aGlzLl9sb2NhbFJvb3R8fHRoaXMuX21peGVyLl9yb290fV91cGRhdGUodCxlLG4saSl7aWYoIXRoaXMuZW5hYmxlZClyZXR1cm4gdm9pZCB0aGlzLl91cGRhdGVXZWlnaHQodCk7Y29uc3Qgcj10aGlzLl9zdGFydFRpbWU7aWYobnVsbCE9PXIpe2NvbnN0IGk9KHQtcikqbjtpZihpPDB8fDA9PT1uKXJldHVybjt0aGlzLl9zdGFydFRpbWU9bnVsbCxlPW4qaX1lKj10aGlzLl91cGRhdGVUaW1lU2NhbGUodCk7Y29uc3Qgbz10aGlzLl91cGRhdGVUaW1lKGUpLGE9dGhpcy5fdXBkYXRlV2VpZ2h0KHQpO2lmKGE+MCl7Y29uc3QgdD10aGlzLl9pbnRlcnBvbGFudHMsZT10aGlzLl9wcm9wZXJ0eUJpbmRpbmdzO3N3aXRjaCh0aGlzLmJsZW5kTW9kZSl7Y2FzZSBQWnQ6Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuIT09aTsrK24pdFtuXS5ldmFsdWF0ZShvKSxlW25dLmFjY3VtdWxhdGVBZGRpdGl2ZShhKTticmVhaztjYXNlIExadDpkZWZhdWx0OmZvcihsZXQgbj0wLHI9dC5sZW5ndGg7biE9PXI7KytuKXRbbl0uZXZhbHVhdGUobyksZVtuXS5hY2N1bXVsYXRlKGksYSl9fX1fdXBkYXRlV2VpZ2h0KHQpe2xldCBlPTA7aWYodGhpcy5lbmFibGVkKXtlPXRoaXMud2VpZ2h0O2NvbnN0IG49dGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ7aWYobnVsbCE9PW4pe2NvbnN0IGk9bi5ldmFsdWF0ZSh0KVswXTtlKj1pLHQ+bi5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BGYWRpbmcoKSwwPT09aSYmKHRoaXMuZW5hYmxlZD0hMSkpfX1yZXR1cm4gdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PWUsZX1fdXBkYXRlVGltZVNjYWxlKHQpe2xldCBlPTA7aWYoIXRoaXMucGF1c2VkKXtlPXRoaXMudGltZVNjYWxlO2NvbnN0IG49dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7bnVsbCE9PW4mJihlKj1uLmV2YWx1YXRlKHQpWzBdLHQ+bi5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BXYXJwaW5nKCksMD09PWU/dGhpcy5wYXVzZWQ9ITA6dGhpcy50aW1lU2NhbGU9ZSkpfXJldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9ZSxlfV91cGRhdGVUaW1lKHQpe2NvbnN0IGU9dGhpcy5fY2xpcC5kdXJhdGlvbixuPXRoaXMubG9vcDtsZXQgaT10aGlzLnRpbWUrdCxyPXRoaXMuX2xvb3BDb3VudDtjb25zdCBvPTIyMDI9PT1uO2lmKDA9PT10KXJldHVybi0xPT09cj9pOm8mJjE9PSgxJnIpP2UtaTppO2lmKDIyMDA9PT1uKXstMT09PXImJih0aGlzLl9sb29wQ291bnQ9MCx0aGlzLl9zZXRFbmRpbmdzKCEwLCEwLCExKSk7dDp7aWYoaT49ZSlpPWU7ZWxzZXtpZighKGk8MCkpe3RoaXMudGltZT1pO2JyZWFrIHR9aT0wfXRoaXMuY2xhbXBXaGVuRmluaXNoZWQ/dGhpcy5wYXVzZWQ9ITA6dGhpcy5lbmFibGVkPSExLHRoaXMudGltZT1pLHRoaXMuX21peGVyLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImZpbmlzaGVkIixhY3Rpb246dGhpcyxkaXJlY3Rpb246dDwwPy0xOjF9KX19ZWxzZXtpZigtMT09PXImJih0Pj0wPyhyPTAsdGhpcy5fc2V0RW5kaW5ncyghMCwwPT09dGhpcy5yZXBldGl0aW9ucyxvKSk6dGhpcy5fc2V0RW5kaW5ncygwPT09dGhpcy5yZXBldGl0aW9ucywhMCxvKSksaT49ZXx8aTwwKXtjb25zdCBuPU1hdGguZmxvb3IoaS9lKTtpLT1lKm4scis9TWF0aC5hYnMobik7Y29uc3QgYT10aGlzLnJlcGV0aXRpb25zLXI7aWYoYTw9MCl0aGlzLmNsYW1wV2hlbkZpbmlzaGVkP3RoaXMucGF1c2VkPSEwOnRoaXMuZW5hYmxlZD0hMSxpPXQ+MD9lOjAsdGhpcy50aW1lPWksdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToiZmluaXNoZWQiLGFjdGlvbjp0aGlzLGRpcmVjdGlvbjp0PjA/MTotMX0pO2Vsc2V7aWYoMT09PWEpe2NvbnN0IGU9dDwwO3RoaXMuX3NldEVuZGluZ3MoZSwhZSxvKX1lbHNlIHRoaXMuX3NldEVuZGluZ3MoITEsITEsbyk7dGhpcy5fbG9vcENvdW50PXIsdGhpcy50aW1lPWksdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToibG9vcCIsYWN0aW9uOnRoaXMsbG9vcERlbHRhOm59KX19ZWxzZSB0aGlzLnRpbWU9aTtpZihvJiYxPT0oMSZyKSlyZXR1cm4gZS1pfXJldHVybiBpfV9zZXRFbmRpbmdzKHQsZSxuKXtjb25zdCBpPXRoaXMuX2ludGVycG9sYW50U2V0dGluZ3M7bj8oaS5lbmRpbmdTdGFydD1BWnQsaS5lbmRpbmdFbmQ9QVp0KTooaS5lbmRpbmdTdGFydD10P3RoaXMuemVyb1Nsb3BlQXRTdGFydD9BWnQ6Q1p0OmtadCxpLmVuZGluZ0VuZD1lP3RoaXMuemVyb1Nsb3BlQXRFbmQ/QVp0OkNadDprWnQpfV9zY2hlZHVsZUZhZGluZyh0LGUsbil7Y29uc3QgaT10aGlzLl9taXhlcixyPWkudGltZTtsZXQgbz10aGlzLl93ZWlnaHRJbnRlcnBvbGFudDtudWxsPT09byYmKG89aS5fbGVuZENvbnRyb2xJbnRlcnBvbGFudCgpLHRoaXMuX3dlaWdodEludGVycG9sYW50PW8pO2NvbnN0IGE9by5wYXJhbWV0ZXJQb3NpdGlvbnMscz1vLnNhbXBsZVZhbHVlcztyZXR1cm4gYVswXT1yLHNbMF09ZSxhWzFdPXIrdCxzWzFdPW4sdGhpc319Y2xhc3MgZjh0IGV4dGVuZHMgalp0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fcm9vdD10LHRoaXMuX2luaXRNZW1vcnlNYW5hZ2VyKCksdGhpcy5fYWNjdUluZGV4PTAsdGhpcy50aW1lPTAsdGhpcy50aW1lU2NhbGU9MX1fYmluZEFjdGlvbih0LGUpe2NvbnN0IG49dC5fbG9jYWxSb290fHx0aGlzLl9yb290LGk9dC5fY2xpcC50cmFja3Mscj1pLmxlbmd0aCxvPXQuX3Byb3BlcnR5QmluZGluZ3MsYT10Ll9pbnRlcnBvbGFudHMscz1uLnV1aWQsbD10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWU7bGV0IGM9bFtzXTt2b2lkIDA9PT1jJiYoYz17fSxsW3NdPWMpO2ZvcihsZXQgdD0wO3QhPT1yOysrdCl7Y29uc3Qgcj1pW3RdLGw9ci5uYW1lO2xldCB1PWNbbF07aWYodm9pZCAwIT09dSlvW3RdPXU7ZWxzZXtpZih1PW9bdF0sdm9pZCAwIT09dSl7bnVsbD09PXUuX2NhY2hlSW5kZXgmJigrK3UucmVmZXJlbmNlQ291bnQsdGhpcy5fYWRkSW5hY3RpdmVCaW5kaW5nKHUscyxsKSk7Y29udGludWV9dT1uZXcgZTh0KGg4dC5jcmVhdGUobixsLGUmJmUuX3Byb3BlcnR5QmluZGluZ3NbdF0uYmluZGluZy5wYXJzZWRQYXRoKSxyLlZhbHVlVHlwZU5hbWUsci5nZXRWYWx1ZVNpemUoKSksKyt1LnJlZmVyZW5jZUNvdW50LHRoaXMuX2FkZEluYWN0aXZlQmluZGluZyh1LHMsbCksb1t0XT11fWFbdF0ucmVzdWx0QnVmZmVyPXUuYnVmZmVyfX1fYWN0aXZhdGVBY3Rpb24odCl7aWYoIXRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtpZihudWxsPT09dC5fY2FjaGVJbmRleCl7Y29uc3QgZT0odC5fbG9jYWxSb290fHx0aGlzLl9yb290KS51dWlkLG49dC5fY2xpcC51dWlkLGk9dGhpcy5fYWN0aW9uc0J5Q2xpcFtuXTt0aGlzLl9iaW5kQWN0aW9uKHQsaSYmaS5rbm93bkFjdGlvbnNbMF0pLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKHQsbixlKX1jb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT1uLnVzZUNvdW50KysmJih0aGlzLl9sZW5kQmluZGluZyhuKSxuLnNhdmVPcmlnaW5hbFN0YXRlKCkpfXRoaXMuX2xlbmRBY3Rpb24odCl9fV9kZWFjdGl2YXRlQWN0aW9uKHQpe2lmKHRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtjb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT0tLW4udXNlQ291bnQmJihuLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fdGFrZUJhY2tCaW5kaW5nKG4pKX10aGlzLl90YWtlQmFja0FjdGlvbih0KX19X2luaXRNZW1vcnlNYW5hZ2VyKCl7dGhpcy5fYWN0aW9ucz1bXSx0aGlzLl9uQWN0aXZlQWN0aW9ucz0wLHRoaXMuX2FjdGlvbnNCeUNsaXA9e30sdGhpcy5fYmluZGluZ3M9W10sdGhpcy5fbkFjdGl2ZUJpbmRpbmdzPTAsdGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lPXt9LHRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHM9W10sdGhpcy5fbkFjdGl2ZUNvbnRyb2xJbnRlcnBvbGFudHM9MDtjb25zdCB0PXRoaXM7dGhpcy5zdGF0cz17YWN0aW9uczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2FjdGlvbnMubGVuZ3RofSxnZXQgaW5Vc2UoKXtyZXR1cm4gdC5fbkFjdGl2ZUFjdGlvbnN9fSxiaW5kaW5nczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2JpbmRpbmdzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVCaW5kaW5nc319LGNvbnRyb2xJbnRlcnBvbGFudHM6e2dldCB0b3RhbCgpe3JldHVybiB0Ll9jb250cm9sSW50ZXJwb2xhbnRzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVDb250cm9sSW50ZXJwb2xhbnRzfX19fV9pc0FjdGl2ZUFjdGlvbih0KXtjb25zdCBlPXQuX2NhY2hlSW5kZXg7cmV0dXJuIG51bGwhPT1lJiZlPHRoaXMuX25BY3RpdmVBY3Rpb25zfV9hZGRJbmFjdGl2ZUFjdGlvbih0LGUsbil7Y29uc3QgaT10aGlzLl9hY3Rpb25zLHI9dGhpcy5fYWN0aW9uc0J5Q2xpcDtsZXQgbz1yW2VdO2lmKHZvaWQgMD09PW8pbz17a25vd25BY3Rpb25zOlt0XSxhY3Rpb25CeVJvb3Q6e319LHQuX2J5Q2xpcENhY2hlSW5kZXg9MCxyW2VdPW87ZWxzZXtjb25zdCBlPW8ua25vd25BY3Rpb25zO3QuX2J5Q2xpcENhY2hlSW5kZXg9ZS5sZW5ndGgsZS5wdXNoKHQpfXQuX2NhY2hlSW5kZXg9aS5sZW5ndGgsaS5wdXNoKHQpLG8uYWN0aW9uQnlSb290W25dPXR9X3JlbW92ZUluYWN0aXZlQWN0aW9uKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPWVbZS5sZW5ndGgtMV0saT10Ll9jYWNoZUluZGV4O24uX2NhY2hlSW5kZXg9aSxlW2ldPW4sZS5wb3AoKSx0Ll9jYWNoZUluZGV4PW51bGw7Y29uc3Qgcj10Ll9jbGlwLnV1aWQsbz10aGlzLl9hY3Rpb25zQnlDbGlwLGE9b1tyXSxzPWEua25vd25BY3Rpb25zLGw9c1tzLmxlbmd0aC0xXSxjPXQuX2J5Q2xpcENhY2hlSW5kZXg7bC5fYnlDbGlwQ2FjaGVJbmRleD1jLHNbY109bCxzLnBvcCgpLHQuX2J5Q2xpcENhY2hlSW5kZXg9bnVsbCxkZWxldGUgYS5hY3Rpb25CeVJvb3RbKHQuX2xvY2FsUm9vdHx8dGhpcy5fcm9vdCkudXVpZF0sMD09PXMubGVuZ3RoJiZkZWxldGUgb1tyXSx0aGlzLl9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpfV9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpe2NvbnN0IGU9dC5fcHJvcGVydHlCaW5kaW5ncztmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3QhPT1uOysrdCl7Y29uc3Qgbj1lW3RdOzA9PS0tbi5yZWZlcmVuY2VDb3VudCYmdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKG4pfX1fbGVuZEFjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LGk9dGhpcy5fbkFjdGl2ZUFjdGlvbnMrKyxyPWVbaV07dC5fY2FjaGVJbmRleD1pLGVbaV09dCxyLl9jYWNoZUluZGV4PW4sZVtuXT1yfV90YWtlQmFja0FjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LGk9LS10aGlzLl9uQWN0aXZlQWN0aW9ucyxyPWVbaV07dC5fY2FjaGVJbmRleD1pLGVbaV09dCxyLl9jYWNoZUluZGV4PW4sZVtuXT1yfV9hZGRJbmFjdGl2ZUJpbmRpbmcodCxlLG4pe2NvbnN0IGk9dGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lLHI9dGhpcy5fYmluZGluZ3M7bGV0IG89aVtlXTt2b2lkIDA9PT1vJiYobz17fSxpW2VdPW8pLG9bbl09dCx0Ll9jYWNoZUluZGV4PXIubGVuZ3RoLHIucHVzaCh0KX1fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKHQpe2NvbnN0IGU9dGhpcy5fYmluZGluZ3Msbj10LmJpbmRpbmcsaT1uLnJvb3ROb2RlLnV1aWQscj1uLnBhdGgsbz10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWUsYT1vW2ldLHM9ZVtlLmxlbmd0aC0xXSxsPXQuX2NhY2hlSW5kZXg7cy5fY2FjaGVJbmRleD1sLGVbbF09cyxlLnBvcCgpLGRlbGV0ZSBhW3JdLDA9PT1PYmplY3Qua2V5cyhhKS5sZW5ndGgmJmRlbGV0ZSBvW2ldfV9sZW5kQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxpPXRoaXMuX25BY3RpdmVCaW5kaW5ncysrLHI9ZVtpXTt0Ll9jYWNoZUluZGV4PWksZVtpXT10LHIuX2NhY2hlSW5kZXg9bixlW25dPXJ9X3Rha2VCYWNrQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxpPS0tdGhpcy5fbkFjdGl2ZUJpbmRpbmdzLHI9ZVtpXTt0Ll9jYWNoZUluZGV4PWksZVtpXT10LHIuX2NhY2hlSW5kZXg9bixlW25dPXJ9X2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKXtjb25zdCB0PXRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHMsZT10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cysrO2xldCBuPXRbZV07cmV0dXJuIHZvaWQgMD09PW4mJihuPW5ldyBSNnQobmV3IEZsb2F0MzJBcnJheSgyKSxuZXcgRmxvYXQzMkFycmF5KDIpLDEsdGhpcy5fY29udHJvbEludGVycG9sYW50c1Jlc3VsdEJ1ZmZlciksbi5fX2NhY2hlSW5kZXg9ZSx0W2VdPW4pLG59X3Rha2VCYWNrQ29udHJvbEludGVycG9sYW50KHQpe2NvbnN0IGU9dGhpcy5fY29udHJvbEludGVycG9sYW50cyxuPXQuX19jYWNoZUluZGV4LGk9LS10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cyxyPWVbaV07dC5fX2NhY2hlSW5kZXg9aSxlW2ldPXQsci5fX2NhY2hlSW5kZXg9bixlW25dPXJ9Y2xpcEFjdGlvbih0LGUsbil7Y29uc3QgaT1lfHx0aGlzLl9yb290LHI9aS51dWlkO2xldCBvPSJzdHJpbmciPT10eXBlb2YgdD9HNnQuZmluZEJ5TmFtZShpLHQpOnQ7Y29uc3QgYT1udWxsIT09bz9vLnV1aWQ6dCxzPXRoaXMuX2FjdGlvbnNCeUNsaXBbYV07bGV0IGw9bnVsbDtpZih2b2lkIDA9PT1uJiYobj1udWxsIT09bz9vLmJsZW5kTW9kZTpMWnQpLHZvaWQgMCE9PXMpe2NvbnN0IHQ9cy5hY3Rpb25CeVJvb3Rbcl07aWYodm9pZCAwIT09dCYmdC5ibGVuZE1vZGU9PT1uKXJldHVybiB0O2w9cy5rbm93bkFjdGlvbnNbMF0sbnVsbD09PW8mJihvPWwuX2NsaXApfWlmKG51bGw9PT1vKXJldHVybiBudWxsO2NvbnN0IGM9bmV3IHA4dCh0aGlzLG8sZSxuKTtyZXR1cm4gdGhpcy5fYmluZEFjdGlvbihjLGwpLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKGMsYSxyKSxjfWV4aXN0aW5nQWN0aW9uKHQsZSl7Y29uc3Qgbj1lfHx0aGlzLl9yb290LGk9bi51dWlkLHI9InN0cmluZyI9PXR5cGVvZiB0P0c2dC5maW5kQnlOYW1lKG4sdCk6dCxvPXRoaXMuX2FjdGlvbnNCeUNsaXBbcj9yLnV1aWQ6dF07cmV0dXJuIHZvaWQgMCE9PW8mJm8uYWN0aW9uQnlSb290W2ldfHxudWxsfXN0b3BBbGxBY3Rpb24oKXtjb25zdCB0PXRoaXMuX2FjdGlvbnM7Zm9yKGxldCBlPXRoaXMuX25BY3RpdmVBY3Rpb25zLTE7ZT49MDstLWUpdFtlXS5zdG9wKCk7cmV0dXJuIHRoaXN9dXBkYXRlKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPXRoaXMuX25BY3RpdmVBY3Rpb25zLGk9dGhpcy50aW1lKz10Kj10aGlzLnRpbWVTY2FsZSxyPU1hdGguc2lnbih0KSxvPXRoaXMuX2FjY3VJbmRleF49MTtmb3IobGV0IGE9MDthIT09bjsrK2EpZVthXS5fdXBkYXRlKGksdCxyLG8pO2NvbnN0IGE9dGhpcy5fYmluZGluZ3Mscz10aGlzLl9uQWN0aXZlQmluZGluZ3M7Zm9yKGxldCB0PTA7dCE9PXM7Kyt0KWFbdF0uYXBwbHkobyk7cmV0dXJuIHRoaXN9c2V0VGltZSh0KXt0aGlzLnRpbWU9MDtmb3IobGV0IHQ9MDt0PHRoaXMuX2FjdGlvbnMubGVuZ3RoO3QrKyl0aGlzLl9hY3Rpb25zW3RdLnRpbWU9MDtyZXR1cm4gdGhpcy51cGRhdGUodCl9Z2V0Um9vdCgpe3JldHVybiB0aGlzLl9yb290fXVuY2FjaGVDbGlwKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPXQudXVpZCxpPXRoaXMuX2FjdGlvbnNCeUNsaXAscj1pW25dO2lmKHZvaWQgMCE9PXIpe2NvbnN0IHQ9ci5rbm93bkFjdGlvbnM7Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuIT09aTsrK24pe2NvbnN0IGk9dFtuXTt0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKGkpO2NvbnN0IHI9aS5fY2FjaGVJbmRleCxvPWVbZS5sZW5ndGgtMV07aS5fY2FjaGVJbmRleD1udWxsLGkuX2J5Q2xpcENhY2hlSW5kZXg9bnVsbCxvLl9jYWNoZUluZGV4PXIsZVtyXT1vLGUucG9wKCksdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nc0ZvckFjdGlvbihpKX1kZWxldGUgaVtuXX19dW5jYWNoZVJvb3QodCl7Y29uc3QgZT10LnV1aWQsbj10aGlzLl9hY3Rpb25zQnlDbGlwO2Zvcihjb25zdCB0IGluIG4pe2NvbnN0IGk9blt0XS5hY3Rpb25CeVJvb3RbZV07dm9pZCAwIT09aSYmKHRoaXMuX2RlYWN0aXZhdGVBY3Rpb24oaSksdGhpcy5fcmVtb3ZlSW5hY3RpdmVBY3Rpb24oaSkpfWNvbnN0IGk9dGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lW2VdO2lmKHZvaWQgMCE9PWkpZm9yKGNvbnN0IHQgaW4gaSl7Y29uc3QgZT1pW3RdO2UucmVzdG9yZU9yaWdpbmFsU3RhdGUoKSx0aGlzLl9yZW1vdmVJbmFjdGl2ZUJpbmRpbmcoZSl9fXVuY2FjaGVBY3Rpb24odCxlKXtjb25zdCBuPXRoaXMuZXhpc3RpbmdBY3Rpb24odCxlKTtudWxsIT09biYmKHRoaXMuX2RlYWN0aXZhdGVBY3Rpb24obiksdGhpcy5fcmVtb3ZlSW5hY3RpdmVBY3Rpb24obikpfX1mOHQucHJvdG90eXBlLl9jb250cm9sSW50ZXJwb2xhbnRzUmVzdWx0QnVmZmVyPW5ldyBGbG9hdDMyQXJyYXkoMSk7Y2xhc3MgbTh0e2NvbnN0cnVjdG9yKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKGNvbnNvbGUud2FybigiVEhSRUUuVW5pZm9ybTogVHlwZSBwYXJhbWV0ZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZC4iKSx0PWFyZ3VtZW50c1sxXSksdGhpcy52YWx1ZT10fWNsb25lKCl7cmV0dXJuIG5ldyBtOHQodm9pZCAwPT09dGhpcy52YWx1ZS5jbG9uZT90aGlzLnZhbHVlOnRoaXMudmFsdWUuY2xvbmUoKSl9fWNsYXNzIGc4dCBleHRlbmRzICQ1dHtjb25zdHJ1Y3Rvcih0LGUsbj0xKXtzdXBlcih0LGUpLHRoaXMubWVzaFBlckF0dHJpYnV0ZT1ufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tZXNoUGVyQXR0cmlidXRlPXQubWVzaFBlckF0dHJpYnV0ZSx0aGlzfWNsb25lKHQpe2NvbnN0IGU9c3VwZXIuY2xvbmUodCk7cmV0dXJuIGUubWVzaFBlckF0dHJpYnV0ZT10aGlzLm1lc2hQZXJBdHRyaWJ1dGUsZX10b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMCxlLm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLGV9fWc4dC5wcm90b3R5cGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMDtjbGFzcyBfOHR7Y29uc3RydWN0b3IodCxlLG4saSxyKXt0aGlzLmJ1ZmZlcj10LHRoaXMudHlwZT1lLHRoaXMuaXRlbVNpemU9bix0aGlzLmVsZW1lbnRTaXplPWksdGhpcy5jb3VudD1yLHRoaXMudmVyc2lvbj0wfXNldCBuZWVkc1VwZGF0ZSh0KXshMD09PXQmJnRoaXMudmVyc2lvbisrfXNldEJ1ZmZlcih0KXtyZXR1cm4gdGhpcy5idWZmZXI9dCx0aGlzfXNldFR5cGUodCxlKXtyZXR1cm4gdGhpcy50eXBlPXQsdGhpcy5lbGVtZW50U2l6ZT1lLHRoaXN9c2V0SXRlbVNpemUodCl7cmV0dXJuIHRoaXMuaXRlbVNpemU9dCx0aGlzfXNldENvdW50KHQpe3JldHVybiB0aGlzLmNvdW50PXQsdGhpc319ZnVuY3Rpb24geTh0KHQsZSl7cmV0dXJuIHQuZGlzdGFuY2UtZS5kaXN0YW5jZX1mdW5jdGlvbiB2OHQodCxlLG4saSl7aWYodC5sYXllcnMudGVzdChlLmxheWVycykmJnQucmF5Y2FzdChlLG4pLCEwPT09aSl7Y29uc3QgaT10LmNoaWxkcmVuO2ZvcihsZXQgdD0wLHI9aS5sZW5ndGg7dDxyO3QrKyl2OHQoaVt0XSxlLG4sITApfX1fOHQucHJvdG90eXBlLmlzR0xCdWZmZXJBdHRyaWJ1dGU9ITA7Y2xhc3MgYjh0e2NvbnN0cnVjdG9yKHQ9MSxlPTAsbj0wKXtyZXR1cm4gdGhpcy5yYWRpdXM9dCx0aGlzLnBoaT1lLHRoaXMudGhldGE9bix0aGlzfXNldCh0LGUsbil7cmV0dXJuIHRoaXMucmFkaXVzPXQsdGhpcy5waGk9ZSx0aGlzLnRoZXRhPW4sdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLnJhZGl1cz10LnJhZGl1cyx0aGlzLnBoaT10LnBoaSx0aGlzLnRoZXRhPXQudGhldGEsdGhpc31tYWtlU2FmZSgpe2NvbnN0IHQ9MWUtNjtyZXR1cm4gdGhpcy5waGk9TWF0aC5tYXgodCxNYXRoLm1pbihNYXRoLlBJLXQsdGhpcy5waGkpKSx0aGlzfXNldEZyb21WZWN0b3IzKHQpe3JldHVybiB0aGlzLnNldEZyb21DYXJ0ZXNpYW5Db29yZHModC54LHQueSx0LnopfXNldEZyb21DYXJ0ZXNpYW5Db29yZHModCxlLG4pe3JldHVybiB0aGlzLnJhZGl1cz1NYXRoLnNxcnQodCp0K2UqZStuKm4pLDA9PT10aGlzLnJhZGl1cz8odGhpcy50aGV0YT0wLHRoaXMucGhpPTApOih0aGlzLnRoZXRhPU1hdGguYXRhbjIodCxuKSx0aGlzLnBoaT1NYXRoLmFjb3MoJFp0KGUvdGhpcy5yYWRpdXMsLTEsMSkpKSx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX1jb25zdCB4OHQ9bmV3IG1KdDtjbGFzcyB3OHR7Y29uc3RydWN0b3IodD1uZXcgbUp0KDEvMCwxLzApLGU9bmV3IG1KdCgtMS8wLC0xLzApKXt0aGlzLm1pbj10LHRoaXMubWF4PWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMubWluLmNvcHkodCksdGhpcy5tYXguY29weShlKSx0aGlzfXNldEZyb21Qb2ludHModCl7dGhpcy5tYWtlRW1wdHkoKTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspdGhpcy5leHBhbmRCeVBvaW50KHRbZV0pO3JldHVybiB0aGlzfXNldEZyb21DZW50ZXJBbmRTaXplKHQsZSl7Y29uc3Qgbj14OHQuY29weShlKS5tdWx0aXBseVNjYWxhciguNSk7cmV0dXJuIHRoaXMubWluLmNvcHkodCkuc3ViKG4pLHRoaXMubWF4LmNvcHkodCkuYWRkKG4pLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy5taW4uY29weSh0Lm1pbiksdGhpcy5tYXguY29weSh0Lm1heCksdGhpc31tYWtlRW1wdHkoKXtyZXR1cm4gdGhpcy5taW4ueD10aGlzLm1pbi55PTEvMCx0aGlzLm1heC54PXRoaXMubWF4Lnk9LTEvMCx0aGlzfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5tYXgueDx0aGlzLm1pbi54fHx0aGlzLm1heC55PHRoaXMubWluLnl9Z2V0Q2VudGVyKHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90LnNldCgwLDApOnQuYWRkVmVjdG9ycyh0aGlzLm1pbix0aGlzLm1heCkubXVsdGlwbHlTY2FsYXIoLjUpfWdldFNpemUodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3Quc2V0KDAsMCk6dC5zdWJWZWN0b3JzKHRoaXMubWF4LHRoaXMubWluKX1leHBhbmRCeVBvaW50KHQpe3JldHVybiB0aGlzLm1pbi5taW4odCksdGhpcy5tYXgubWF4KHQpLHRoaXN9ZXhwYW5kQnlWZWN0b3IodCl7cmV0dXJuIHRoaXMubWluLnN1Yih0KSx0aGlzLm1heC5hZGQodCksdGhpc31leHBhbmRCeVNjYWxhcih0KXtyZXR1cm4gdGhpcy5taW4uYWRkU2NhbGFyKC10KSx0aGlzLm1heC5hZGRTY2FsYXIodCksdGhpc31jb250YWluc1BvaW50KHQpe3JldHVybiEodC54PHRoaXMubWluLnh8fHQueD50aGlzLm1heC54fHx0Lnk8dGhpcy5taW4ueXx8dC55PnRoaXMubWF4LnkpfWNvbnRhaW5zQm94KHQpe3JldHVybiB0aGlzLm1pbi54PD10Lm1pbi54JiZ0Lm1heC54PD10aGlzLm1heC54JiZ0aGlzLm1pbi55PD10Lm1pbi55JiZ0Lm1heC55PD10aGlzLm1heC55fWdldFBhcmFtZXRlcih0LGUpe3JldHVybiBlLnNldCgodC54LXRoaXMubWluLngpLyh0aGlzLm1heC54LXRoaXMubWluLngpLCh0LnktdGhpcy5taW4ueSkvKHRoaXMubWF4LnktdGhpcy5taW4ueSkpfWludGVyc2VjdHNCb3godCl7cmV0dXJuISh0Lm1heC54PHRoaXMubWluLnh8fHQubWluLng+dGhpcy5tYXgueHx8dC5tYXgueTx0aGlzLm1pbi55fHx0Lm1pbi55PnRoaXMubWF4LnkpfWNsYW1wUG9pbnQodCxlKXtyZXR1cm4gZS5jb3B5KHQpLmNsYW1wKHRoaXMubWluLHRoaXMubWF4KX1kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIHg4dC5jb3B5KHQpLmNsYW1wKHRoaXMubWluLHRoaXMubWF4KS5zdWIodCkubGVuZ3RoKCl9aW50ZXJzZWN0KHQpe3JldHVybiB0aGlzLm1pbi5tYXgodC5taW4pLHRoaXMubWF4Lm1pbih0Lm1heCksdGhpc311bmlvbih0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQubWluKSx0aGlzLm1heC5tYXgodC5tYXgpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLm1pbi5hZGQodCksdGhpcy5tYXguYWRkKHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm1pbi5lcXVhbHModGhpcy5taW4pJiZ0Lm1heC5lcXVhbHModGhpcy5tYXgpfX13OHQucHJvdG90eXBlLmlzQm94Mj0hMDtjb25zdCBTOHQ9bmV3IENKdCxNOHQ9bmV3IENKdDtjbGFzcyBFOHR7Y29uc3RydWN0b3IodD1uZXcgQ0p0LGU9bmV3IENKdCl7dGhpcy5zdGFydD10LHRoaXMuZW5kPWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMuc3RhcnQuY29weSh0KSx0aGlzLmVuZC5jb3B5KGUpLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5zdGFydC5jb3B5KHQuc3RhcnQpLHRoaXMuZW5kLmNvcHkodC5lbmQpLHRoaXN9Z2V0Q2VudGVyKHQpe3JldHVybiB0LmFkZFZlY3RvcnModGhpcy5zdGFydCx0aGlzLmVuZCkubXVsdGlwbHlTY2FsYXIoLjUpfWRlbHRhKHQpe3JldHVybiB0LnN1YlZlY3RvcnModGhpcy5lbmQsdGhpcy5zdGFydCl9ZGlzdGFuY2VTcSgpe3JldHVybiB0aGlzLnN0YXJ0LmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuZW5kKX1kaXN0YW5jZSgpe3JldHVybiB0aGlzLnN0YXJ0LmRpc3RhbmNlVG8odGhpcy5lbmQpfWF0KHQsZSl7cmV0dXJuIHRoaXMuZGVsdGEoZSkubXVsdGlwbHlTY2FsYXIodCkuYWRkKHRoaXMuc3RhcnQpfWNsb3Nlc3RQb2ludFRvUG9pbnRQYXJhbWV0ZXIodCxlKXtTOHQuc3ViVmVjdG9ycyh0LHRoaXMuc3RhcnQpLE04dC5zdWJWZWN0b3JzKHRoaXMuZW5kLHRoaXMuc3RhcnQpO2NvbnN0IG49TTh0LmRvdChNOHQpO2xldCBpPU04dC5kb3QoUzh0KS9uO3JldHVybiBlJiYoaT0kWnQoaSwwLDEpKSxpfWNsb3Nlc3RQb2ludFRvUG9pbnQodCxlLG4pe2NvbnN0IGk9dGhpcy5jbG9zZXN0UG9pbnRUb1BvaW50UGFyYW1ldGVyKHQsZSk7cmV0dXJuIHRoaXMuZGVsdGEobikubXVsdGlwbHlTY2FsYXIoaSkuYWRkKHRoaXMuc3RhcnQpfWFwcGx5TWF0cml4NCh0KXtyZXR1cm4gdGhpcy5zdGFydC5hcHBseU1hdHJpeDQodCksdGhpcy5lbmQuYXBwbHlNYXRyaXg0KHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0LnN0YXJ0LmVxdWFscyh0aGlzLnN0YXJ0KSYmdC5lbmQuZXF1YWxzKHRoaXMuZW5kKX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19Y2xhc3MgVDh0IGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5tYXRlcmlhbD10LHRoaXMucmVuZGVyPWZ1bmN0aW9uKCl7fSx0aGlzLmhhc1Bvc2l0aW9ucz0hMSx0aGlzLmhhc05vcm1hbHM9ITEsdGhpcy5oYXNDb2xvcnM9ITEsdGhpcy5oYXNVdnM9ITEsdGhpcy5wb3NpdGlvbkFycmF5PW51bGwsdGhpcy5ub3JtYWxBcnJheT1udWxsLHRoaXMuY29sb3JBcnJheT1udWxsLHRoaXMudXZBcnJheT1udWxsLHRoaXMuY291bnQ9MH19VDh0LnByb3RvdHlwZS5pc0ltbWVkaWF0ZVJlbmRlck9iamVjdD0hMDtjb25zdCBDOHQ9bmV3IENKdCxBOHQ9bmV3IENKdCxrOHQ9bmV3IHJRdCxMOHQ9bmV3IHJRdDtjbGFzcyBQOHQgZXh0ZW5kcyBVM3R7Y29uc3RydWN0b3IodCl7Y29uc3QgZT1OOHQodCksbj1uZXcgYjF0LGk9W10scj1bXSxvPW5ldyAkUXQoMCwwLDEpLGE9bmV3ICRRdCgwLDEsMCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XTtuLnBhcmVudCYmbi5wYXJlbnQuaXNCb25lJiYoaS5wdXNoKDAsMCwwKSxpLnB1c2goMCwwLDApLHIucHVzaChvLnIsby5nLG8uYiksci5wdXNoKGEucixhLmcsYS5iKSl9bi5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KGksMykpLG4uc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IGwxdChyLDMpKSxzdXBlcihuLG5ldyBJM3Qoe3ZlcnRleENvbG9yczohMCxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMSx0b25lTWFwcGVkOiExLHRyYW5zcGFyZW50OiEwfSkpLHRoaXMudHlwZT0iU2tlbGV0b25IZWxwZXIiLHRoaXMuaXNTa2VsZXRvbkhlbHBlcj0hMCx0aGlzLnJvb3Q9dCx0aGlzLmJvbmVzPWUsdGhpcy5tYXRyaXg9dC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITF9dXBkYXRlTWF0cml4V29ybGQodCl7Y29uc3QgZT10aGlzLmJvbmVzLG49dGhpcy5nZW9tZXRyeSxpPW4uZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpO0w4dC5jb3B5KHRoaXMucm9vdC5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk7Zm9yKGxldCB0PTAsbj0wO3Q8ZS5sZW5ndGg7dCsrKXtjb25zdCByPWVbdF07ci5wYXJlbnQmJnIucGFyZW50LmlzQm9uZSYmKGs4dC5tdWx0aXBseU1hdHJpY2VzKEw4dCxyLm1hdHJpeFdvcmxkKSxBOHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGs4dCksaS5zZXRYWVoobixBOHQueCxBOHQueSxBOHQueiksazh0Lm11bHRpcGx5TWF0cmljZXMoTDh0LHIucGFyZW50Lm1hdHJpeFdvcmxkKSxBOHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGs4dCksaS5zZXRYWVoobisxLEE4dC54LEE4dC55LEE4dC56KSxuKz0yKX1uLmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKS5uZWVkc1VwZGF0ZT0hMCxzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KX19ZnVuY3Rpb24gTjh0KHQpe2NvbnN0IGU9W107dCYmdC5pc0JvbmUmJmUucHVzaCh0KTtmb3IobGV0IG49MDtuPHQuY2hpbGRyZW4ubGVuZ3RoO24rKyllLnB1c2guYXBwbHkoZSxOOHQodC5jaGlsZHJlbltuXSkpO3JldHVybiBlfWNvbnN0IEk4dD1uZXcgQ0p0LFI4dD1uZXcgJFF0LE84dD1uZXcgJFF0O2NsYXNzIHo4dCBleHRlbmRzIFUzdHtjb25zdHJ1Y3Rvcih0PTEwLGU9MTAsbj00NDczOTI0LGk9ODk0Nzg0OCl7bj1uZXcgJFF0KG4pLGk9bmV3ICRRdChpKTtjb25zdCByPWUvMixvPXQvZSxhPXQvMixzPVtdLGw9W107Zm9yKGxldCB0PTAsYz0wLHU9LWE7dDw9ZTt0KyssdSs9byl7cy5wdXNoKC1hLDAsdSxhLDAsdSkscy5wdXNoKHUsMCwtYSx1LDAsYSk7Y29uc3QgZT10PT09cj9uOmk7ZS50b0FycmF5KGwsYyksYys9MyxlLnRvQXJyYXkobCxjKSxjKz0zLGUudG9BcnJheShsLGMpLGMrPTMsZS50b0FycmF5KGwsYyksYys9M31jb25zdCBjPW5ldyBiMXQ7Yy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KHMsMykpLGMuc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IGwxdChsLDMpKSxzdXBlcihjLG5ldyBJM3Qoe3ZlcnRleENvbG9yczohMCx0b25lTWFwcGVkOiExfSkpLHRoaXMudHlwZT0iR3JpZEhlbHBlciJ9fWNvbnN0IEQ4dD1uZXcgQ0p0LEI4dD1uZXcgQ0p0LEg4dD1uZXcgQ0p0LEY4dD1uZXcgQ0p0LFY4dD1uZXcgVzF0O2Z1bmN0aW9uIFU4dCh0LGUsbixpLHIsbyxhKXtGOHQuc2V0KHIsbyxhKS51bnByb2plY3QoaSk7Y29uc3Qgcz1lW3RdO2lmKHZvaWQgMCE9PXMpe2NvbnN0IHQ9bi5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIik7Zm9yKGxldCBlPTAsbj1zLmxlbmd0aDtlPG47ZSsrKXQuc2V0WFlaKHNbZV0sRjh0LngsRjh0LnksRjh0LnopfX1jb25zdCBqOHQ9bmV3IExKdDtjbGFzcyBHOHQgZXh0ZW5kcyBVM3R7Y29uc3RydWN0b3IodCxlPTE2Nzc2OTYwKXtjb25zdCBuPW5ldyBVaW50MTZBcnJheShbMCwxLDEsMiwyLDMsMywwLDQsNSw1LDYsNiw3LDcsNCwwLDQsMSw1LDIsNiwzLDddKSxpPW5ldyBGbG9hdDMyQXJyYXkoMjQpLHI9bmV3IGIxdDtyLnNldEluZGV4KG5ldyBRUXQobiwxKSksci5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgUVF0KGksMykpLHN1cGVyKHIsbmV3IEkzdCh7Y29sb3I6ZSx0b25lTWFwcGVkOiExfSkpLHRoaXMub2JqZWN0PXQsdGhpcy50eXBlPSJCb3hIZWxwZXIiLHRoaXMubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLnVwZGF0ZSgpfXVwZGF0ZSh0KXtpZih2b2lkIDAhPT10JiZjb25zb2xlLndhcm4oIlRIUkVFLkJveEhlbHBlcjogLnVwZGF0ZSgpIGhhcyBubyBsb25nZXIgYXJndW1lbnRzLiIpLHZvaWQgMCE9PXRoaXMub2JqZWN0JiZqOHQuc2V0RnJvbU9iamVjdCh0aGlzLm9iamVjdCksajh0LmlzRW1wdHkoKSlyZXR1cm47Y29uc3QgZT1qOHQubWluLG49ajh0Lm1heCxpPXRoaXMuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbixyPWkuYXJyYXk7clswXT1uLngsclsxXT1uLnksclsyXT1uLnosclszXT1lLngscls0XT1uLnkscls1XT1uLnoscls2XT1lLngscls3XT1lLnkscls4XT1uLnoscls5XT1uLngsclsxMF09ZS55LHJbMTFdPW4ueixyWzEyXT1uLngsclsxM109bi55LHJbMTRdPWUueixyWzE1XT1lLngsclsxNl09bi55LHJbMTddPWUueixyWzE4XT1lLngsclsxOV09ZS55LHJbMjBdPWUueixyWzIxXT1uLngsclsyMl09ZS55LHJbMjNdPWUueixpLm5lZWRzVXBkYXRlPSEwLHRoaXMuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCl9c2V0RnJvbU9iamVjdCh0KXtyZXR1cm4gdGhpcy5vYmplY3Q9dCx0aGlzLnVwZGF0ZSgpLHRoaXN9Y29weSh0KXtyZXR1cm4gVTN0LnByb3RvdHlwZS5jb3B5LmNhbGwodGhpcyx0KSx0aGlzLm9iamVjdD10Lm9iamVjdCx0aGlzfX1jb25zdCBXOHQ9bmV3IENKdDtsZXQgcTh0LFk4dDtjbGFzcyBYOHQgZXh0ZW5kcyBVM3R7Y29uc3RydWN0b3IodD0xKXtjb25zdCBlPVswLDAsMCx0LDAsMCwwLDAsMCwwLHQsMCwwLDAsMCwwLDAsdF0sbj1uZXcgYjF0O24uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdChlLDMpKSxuLnNldEF0dHJpYnV0ZSgiY29sb3IiLG5ldyBsMXQoWzEsMCwwLDEsLjYsMCwwLDEsMCwuNiwxLDAsMCwwLDEsMCwuNiwxXSwzKSksc3VwZXIobixuZXcgSTN0KHt2ZXJ0ZXhDb2xvcnM6ITAsdG9uZU1hcHBlZDohMX0pKSx0aGlzLnR5cGU9IkF4ZXNIZWxwZXIifXNldENvbG9ycyh0LGUsbil7Y29uc3QgaT1uZXcgJFF0LHI9dGhpcy5nZW9tZXRyeS5hdHRyaWJ1dGVzLmNvbG9yLmFycmF5O3JldHVybiBpLnNldCh0KSxpLnRvQXJyYXkociwwKSxpLnRvQXJyYXkociwzKSxpLnNldChlKSxpLnRvQXJyYXkociw2KSxpLnRvQXJyYXkociw5KSxpLnNldChuKSxpLnRvQXJyYXkociwxMiksaS50b0FycmF5KHIsMTUpLHRoaXMuZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvci5uZWVkc1VwZGF0ZT0hMCx0aGlzfWRpc3Bvc2UoKXt0aGlzLmdlb21ldHJ5LmRpc3Bvc2UoKSx0aGlzLm1hdGVyaWFsLmRpc3Bvc2UoKX19Y29uc3QgJDh0PW5ldyBGbG9hdDMyQXJyYXkoMSksSzh0PW5ldyBJbnQzMkFycmF5KCQ4dC5idWZmZXIpO2g0dC5jcmVhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS5sb2coIlRIUkVFLkN1cnZlLmNyZWF0ZSgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQiKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGg0dC5wcm90b3R5cGUpLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQsdC5wcm90b3R5cGUuZ2V0UG9pbnQ9ZSx0fSxpOXQucHJvdG90eXBlLmZyb21Qb2ludHM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUGF0aDogLmZyb21Qb2ludHMoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tUG9pbnRzKCkuIiksdGhpcy5zZXRGcm9tUG9pbnRzKHQpfSx6OHQucHJvdG90eXBlLnNldENvbG9ycz1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkdyaWRIZWxwZXI6IHNldENvbG9ycygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHBhc3MgdGhlbSBpbiB0aGUgY29uc3RydWN0b3IgaW5zdGVhZC4iKX0sUDh0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Ta2VsZXRvbkhlbHBlcjogdXBkYXRlKCkgbm8gbG9uZ2VyIG5lZWRzIHRvIGJlIGNhbGxlZC4iKX0sJDZ0LnByb3RvdHlwZS5leHRyYWN0VXJsQmFzZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Mb2FkZXI6IC5leHRyYWN0VXJsQmFzZSgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBUSFJFRS5Mb2FkZXJVdGlscy5leHRyYWN0VXJsQmFzZSgpIGluc3RlYWQuIiksRTl0LmV4dHJhY3RVcmxCYXNlKHQpfSwkNnQuSGFuZGxlcnM9e2FkZDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkxvYWRlcjogSGFuZGxlcnMuYWRkKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIExvYWRpbmdNYW5hZ2VyLmFkZEhhbmRsZXIoKSBpbnN0ZWFkLiIpfSxnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Mb2FkZXI6IEhhbmRsZXJzLmdldCgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBMb2FkaW5nTWFuYWdlci5nZXRIYW5kbGVyKCkgaW5zdGVhZC4iKX19LHc4dC5wcm90b3R5cGUuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDI6IC5jZW50ZXIoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRDZW50ZXIoKS4iKSx0aGlzLmdldENlbnRlcih0KX0sdzh0LnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDI6IC5lbXB0eSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmlzRW1wdHkoKS4iKSx0aGlzLmlzRW1wdHkoKX0sdzh0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvbkJveD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gyOiAuaXNJbnRlcnNlY3Rpb25Cb3goKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzQm94KCkuIiksdGhpcy5pbnRlcnNlY3RzQm94KHQpfSx3OHQucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MjogLnNpemUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRTaXplKCkuIiksdGhpcy5nZXRTaXplKHQpfSxMSnQucHJvdG90eXBlLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuY2VudGVyKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Q2VudGVyKCkuIiksdGhpcy5nZXRDZW50ZXIodCl9LExKdC5wcm90b3R5cGUuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuZW1wdHkoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pc0VtcHR5KCkuIiksdGhpcy5pc0VtcHR5KCl9LExKdC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25Cb3g9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmlzSW50ZXJzZWN0aW9uQm94KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0JveCgpLiIpLHRoaXMuaW50ZXJzZWN0c0JveCh0KX0sTEp0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblNwaGVyZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuaXNJbnRlcnNlY3Rpb25TcGhlcmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzU3BoZXJlKCkuIiksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKHQpfSxMSnQucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLnNpemUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRTaXplKCkuIiksdGhpcy5nZXRTaXplKHQpfSwkSnQucHJvdG90eXBlLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU3BoZXJlOiAuZW1wdHkoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pc0VtcHR5KCkuIiksdGhpcy5pc0VtcHR5KCl9LGkwdC5wcm90b3R5cGUuc2V0RnJvbU1hdHJpeD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5GcnVzdHVtOiAuc2V0RnJvbU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEZyb21Qcm9qZWN0aW9uTWF0cml4KCkuIiksdGhpcy5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCh0KX0sRTh0LnByb3RvdHlwZS5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTGluZTM6IC5jZW50ZXIoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRDZW50ZXIoKS4iKSx0aGlzLmdldENlbnRlcih0KX0sZ0p0LnByb3RvdHlwZS5mbGF0dGVuVG9BcnJheU9mZnNldD1mdW5jdGlvbih0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDM6IC5mbGF0dGVuVG9BcnJheU9mZnNldCgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAudG9BcnJheSgpIGluc3RlYWQuIiksdGhpcy50b0FycmF5KHQsZSl9LGdKdC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDM6IC5tdWx0aXBseVZlY3RvcjMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4MyggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4Myh0aGlzKX0sZ0p0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDM6IC5tdWx0aXBseVZlY3RvcjNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LGdKdC5wcm90b3R5cGUuYXBwbHlUb0J1ZmZlckF0dHJpYnV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAuYXBwbHlUb0J1ZmZlckF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBhdHRyaWJ1dGUuYXBwbHlNYXRyaXgzKCBtYXRyaXggKSBpbnN0ZWFkLiIpLHQuYXBwbHlNYXRyaXgzKHRoaXMpfSxnSnQucHJvdG90eXBlLmFwcGx5VG9WZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXgzOiAuYXBwbHlUb1ZlY3RvcjNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LGdKdC5wcm90b3R5cGUuZ2V0SW52ZXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAuZ2V0SW52ZXJzZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBtYXRyaXhJbnYuY29weSggbWF0cml4ICkuaW52ZXJ0KCk7IGluc3RlYWQuIiksdGhpcy5jb3B5KHQpLmludmVydCgpfSxyUXQucHJvdG90eXBlLmV4dHJhY3RQb3NpdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZXh0cmFjdFBvc2l0aW9uKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuY29weVBvc2l0aW9uKCkuIiksdGhpcy5jb3B5UG9zaXRpb24odCl9LHJRdC5wcm90b3R5cGUuZmxhdHRlblRvQXJyYXlPZmZzZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZmxhdHRlblRvQXJyYXlPZmZzZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnRvQXJyYXkoKSBpbnN0ZWFkLiIpLHRoaXMudG9BcnJheSh0LGUpfSxyUXQucHJvdG90eXBlLmdldFBvc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmdldFBvc2l0aW9uKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFZlY3RvcjMuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBtYXRyaXggKSBpbnN0ZWFkLiIpLChuZXcgQ0p0KS5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMyl9LHJRdC5wcm90b3R5cGUuc2V0Um90YXRpb25Gcm9tUXVhdGVybmlvbj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuc2V0Um90YXRpb25Gcm9tUXVhdGVybmlvbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKCkuIiksdGhpcy5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KX0sclF0LnByb3RvdHlwZS5tdWx0aXBseVRvQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseVRvQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyUXQucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDQodGhpcyl9LHJRdC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3I0PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseVZlY3RvcjQoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4NCggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4NCh0aGlzKX0sclF0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseVZlY3RvcjNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LHJRdC5wcm90b3R5cGUucm90YXRlQXhpcz1mdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVBeGlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFZlY3RvcjMudHJhbnNmb3JtRGlyZWN0aW9uKCBtYXRyaXggKSBpbnN0ZWFkLiIpLHQudHJhbnNmb3JtRGlyZWN0aW9uKHRoaXMpfSxyUXQucHJvdG90eXBlLmNyb3NzVmVjdG9yPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5jcm9zc1ZlY3RvcigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB2ZWN0b3IuYXBwbHlNYXRyaXg0KCBtYXRyaXggKSBpbnN0ZWFkLiIpLHQuYXBwbHlNYXRyaXg0KHRoaXMpfSxyUXQucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC50cmFuc2xhdGUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyUXQucHJvdG90eXBlLnJvdGF0ZVg9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlWCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LHJRdC5wcm90b3R5cGUucm90YXRlWT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVZKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sclF0LnByb3RvdHlwZS5yb3RhdGVaPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLnJvdGF0ZVooKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyUXQucHJvdG90eXBlLnJvdGF0ZUJ5QXhpcz1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVCeUF4aXMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyUXQucHJvdG90eXBlLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYXR0cmlidXRlLmFwcGx5TWF0cml4NCggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4NCh0aGlzKX0sclF0LnByb3RvdHlwZS5hcHBseVRvVmVjdG9yM0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLmFwcGx5VG9WZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyUXQucHJvdG90eXBlLm1ha2VGcnVzdHVtPWZ1bmN0aW9uKHQsZSxuLGkscixvKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubWFrZUZydXN0dW0oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLm1ha2VQZXJzcGVjdGl2ZSggbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tLCBuZWFyLCBmYXIgKSBpbnN0ZWFkLiIpLHRoaXMubWFrZVBlcnNwZWN0aXZlKHQsZSxpLG4scixvKX0sclF0LnByb3RvdHlwZS5nZXRJbnZlcnNlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5nZXRJbnZlcnNlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG1hdHJpeEludi5jb3B5KCBtYXRyaXggKS5pbnZlcnQoKTsgaW5zdGVhZC4iKSx0aGlzLmNvcHkodCkuaW52ZXJ0KCl9LHQwdC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25MaW5lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlBsYW5lOiAuaXNJbnRlcnNlY3Rpb25MaW5lKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0xpbmUoKS4iKSx0aGlzLmludGVyc2VjdHNMaW5lKHQpfSxUSnQucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIGlzIG5vdyB2ZWN0b3IuYXBwbHlRdWF0ZXJuaW9uKCBxdWF0ZXJuaW9uICkgaW5zdGVhZC4iKSx0LmFwcGx5UXVhdGVybmlvbih0aGlzKX0sVEp0LnByb3RvdHlwZS5pbnZlcnNlPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLmludmVyc2UoKSBoYXMgYmVlbiByZW5hbWVkIHRvIGludmVydCgpLiIpLHRoaXMuaW52ZXJ0KCl9LGlRdC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25Cb3g9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUmF5OiAuaXNJbnRlcnNlY3Rpb25Cb3goKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzQm94KCkuIiksdGhpcy5pbnRlcnNlY3RzQm94KHQpfSxpUXQucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uUGxhbmU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUmF5OiAuaXNJbnRlcnNlY3Rpb25QbGFuZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNQbGFuZSgpLiIpLHRoaXMuaW50ZXJzZWN0c1BsYW5lKHQpfSxpUXQucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uU3BoZXJlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uU3BoZXJlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c1NwaGVyZSgpLiIpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZSh0KX0sRlF0LnByb3RvdHlwZS5hcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5hcmVhKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0QXJlYSgpLiIpLHRoaXMuZ2V0QXJlYSgpfSxGUXQucHJvdG90eXBlLmJhcnljb29yZEZyb21Qb2ludD1mdW5jdGlvbih0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYmFyeWNvb3JkRnJvbVBvaW50KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0QmFyeWNvb3JkKCkuIiksdGhpcy5nZXRCYXJ5Y29vcmQodCxlKX0sRlF0LnByb3RvdHlwZS5taWRwb2ludD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm1pZHBvaW50KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0TWlkcG9pbnQoKS4iKSx0aGlzLmdldE1pZHBvaW50KHQpfSxGUXQucHJvdG90eXBlbm9ybWFsPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAubm9ybWFsKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Tm9ybWFsKCkuIiksdGhpcy5nZXROb3JtYWwodCl9LEZRdC5wcm90b3R5cGUucGxhbmU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5wbGFuZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldFBsYW5lKCkuIiksdGhpcy5nZXRQbGFuZSh0KX0sRlF0LmJhcnljb29yZEZyb21Qb2ludD1mdW5jdGlvbih0LGUsbixpLHIpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYmFyeWNvb3JkRnJvbVBvaW50KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0QmFyeWNvb3JkKCkuIiksRlF0LmdldEJhcnljb29yZCh0LGUsbixpLHIpfSxGUXQubm9ybWFsPWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAubm9ybWFsKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Tm9ybWFsKCkuIiksRlF0LmdldE5vcm1hbCh0LGUsbixpKX0scjl0LnByb3RvdHlwZS5leHRyYWN0QWxsUG9pbnRzPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNoYXBlOiAuZXh0cmFjdEFsbFBvaW50cygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAuZXh0cmFjdFBvaW50cygpIGluc3RlYWQuIiksdGhpcy5leHRyYWN0UG9pbnRzKHQpfSxyOXQucHJvdG90eXBlLmV4dHJ1ZGU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhcGU6IC5leHRydWRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEV4dHJ1ZGVHZW9tZXRyeSgpIGluc3RlYWQuIiksbmV3IHI2dCh0aGlzLHQpfSxyOXQucHJvdG90eXBlLm1ha2VHZW9tZXRyeT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFwZTogLm1ha2VHZW9tZXRyeSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBTaGFwZUdlb21ldHJ5KCkgaW5zdGVhZC4iKSxuZXcgaDZ0KHRoaXMsdCl9LG1KdC5wcm90b3R5cGUuZnJvbUF0dHJpYnV0ZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLmZyb21BdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKX0sbUp0LnByb3RvdHlwZS5kaXN0YW5jZVRvTWFuaGF0dGFuPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5kaXN0YW5jZVRvTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuRGlzdGFuY2VUbygpLiIpLHRoaXMubWFuaGF0dGFuRGlzdGFuY2VUbyh0KX0sbUp0LnByb3RvdHlwZS5sZW5ndGhNYW5oYXR0YW49ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAubGVuZ3RoTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuTGVuZ3RoKCkuIiksdGhpcy5tYW5oYXR0YW5MZW5ndGgoKX0sQ0p0LnByb3RvdHlwZS5zZXRFdWxlckZyb21Sb3RhdGlvbk1hdHJpeD1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlZlY3RvcjM6IC5zZXRFdWxlckZyb21Sb3RhdGlvbk1hdHJpeCgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBFdWxlci5zZXRGcm9tUm90YXRpb25NYXRyaXgoKSBpbnN0ZWFkLiIpfSxDSnQucHJvdG90eXBlLnNldEV1bGVyRnJvbVF1YXRlcm5pb249ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuc2V0RXVsZXJGcm9tUXVhdGVybmlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBFdWxlci5zZXRGcm9tUXVhdGVybmlvbigpIGluc3RlYWQuIil9LENKdC5wcm90b3R5cGUuZ2V0UG9zaXRpb25Gcm9tTWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRQb3NpdGlvbkZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4UG9zaXRpb24oKS4iKSx0aGlzLnNldEZyb21NYXRyaXhQb3NpdGlvbih0KX0sQ0p0LnByb3RvdHlwZS5nZXRTY2FsZUZyb21NYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmdldFNjYWxlRnJvbU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEZyb21NYXRyaXhTY2FsZSgpLiIpLHRoaXMuc2V0RnJvbU1hdHJpeFNjYWxlKHQpfSxDSnQucHJvdG90eXBlLmdldENvbHVtbkZyb21NYXRyaXg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuZ2V0Q29sdW1uRnJvbU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEZyb21NYXRyaXhDb2x1bW4oKS4iKSx0aGlzLnNldEZyb21NYXRyaXhDb2x1bW4oZSx0KX0sQ0p0LnByb3RvdHlwZS5hcHBseVByb2plY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmFwcGx5UHJvamVjdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAuYXBwbHlNYXRyaXg0KCBtICkgaW5zdGVhZC4iKSx0aGlzLmFwcGx5TWF0cml4NCh0KX0sQ0p0LnByb3RvdHlwZS5mcm9tQXR0cmlidXRlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuZnJvbUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLG4pfSxDSnQucHJvdG90eXBlLmRpc3RhbmNlVG9NYW5oYXR0YW49ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmRpc3RhbmNlVG9NYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5EaXN0YW5jZVRvKCkuIiksdGhpcy5tYW5oYXR0YW5EaXN0YW5jZVRvKHQpfSxDSnQucHJvdG90eXBlLmxlbmd0aE1hbmhhdHRhbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5sZW5ndGhNYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5MZW5ndGgoKS4iKSx0aGlzLm1hbmhhdHRhbkxlbmd0aCgpfSx3SnQucHJvdG90eXBlLmZyb21BdHRyaWJ1dGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5mcm9tQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil9LHdKdC5wcm90b3R5cGUubGVuZ3RoTWFuaGF0dGFuPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogLmxlbmd0aE1hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkxlbmd0aCgpLiIpLHRoaXMubWFuaGF0dGFuTGVuZ3RoKCl9LGtRdC5wcm90b3R5cGUuZ2V0Q2hpbGRCeU5hbWU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5nZXRDaGlsZEJ5TmFtZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE9iamVjdEJ5TmFtZSgpLiIpLHRoaXMuZ2V0T2JqZWN0QnlOYW1lKHQpfSxrUXQucHJvdG90eXBlLnJlbmRlckRlcHRoPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnJlbmRlckRlcHRoIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAucmVuZGVyT3JkZXIsIGluc3RlYWQuIil9LGtRdC5wcm90b3R5cGUudHJhbnNsYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC50cmFuc2xhdGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnRyYW5zbGF0ZU9uQXhpcyggYXhpcywgZGlzdGFuY2UgKSBpbnN0ZWFkLiIpLHRoaXMudHJhbnNsYXRlT25BeGlzKGUsdCl9LGtRdC5wcm90b3R5cGUuZ2V0V29ybGRSb3RhdGlvbj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNEOiAuZ2V0V29ybGRSb3RhdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5PYmplY3QzRC5nZXRXb3JsZFF1YXRlcm5pb24oIHRhcmdldCApIGluc3RlYWQuIil9LGtRdC5wcm90b3R5cGUuYXBwbHlNYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5hcHBseU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmFwcGx5TWF0cml4NCgpLiIpLHRoaXMuYXBwbHlNYXRyaXg0KHQpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhrUXQucHJvdG90eXBlLHtldWxlck9yZGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLmV1bGVyT3JkZXIgaXMgbm93IC5yb3RhdGlvbi5vcmRlci4iKSx0aGlzLnJvdGF0aW9uLm9yZGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLmV1bGVyT3JkZXIgaXMgbm93IC5yb3RhdGlvbi5vcmRlci4iKSx0aGlzLnJvdGF0aW9uLm9yZGVyPXR9fSx1c2VRdWF0ZXJuaW9uOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudXNlUXVhdGVybmlvbiBoYXMgYmVlbiByZW1vdmVkLiBUaGUgbGlicmFyeSBub3cgdXNlcyBxdWF0ZXJuaW9ucyBieSBkZWZhdWx0LiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudXNlUXVhdGVybmlvbiBoYXMgYmVlbiByZW1vdmVkLiBUaGUgbGlicmFyeSBub3cgdXNlcyBxdWF0ZXJuaW9ucyBieSBkZWZhdWx0LiIpfX19KSxCMXQucHJvdG90eXBlLnNldERyYXdNb2RlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLnNldERyYXdNb2RlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIHJlbmRlcmVyIG5vdyBhbHdheXMgYXNzdW1lcyBUSFJFRS5UcmlhbmdsZXNEcmF3TW9kZS4gVHJhbnNmb3JtIHlvdXIgZ2VvbWV0cnkgdmlhIEJ1ZmZlckdlb21ldHJ5VXRpbHMudG9UcmlhbmdsZXNEcmF3TW9kZSgpIGlmIG5lY2Vzc2FyeS4iKX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQjF0LnByb3RvdHlwZSx7ZHJhd01vZGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoOiAuZHJhd01vZGUgaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIHJlbmRlcmVyIG5vdyBhbHdheXMgYXNzdW1lcyBUSFJFRS5UcmlhbmdsZXNEcmF3TW9kZS4iKSwwfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoOiAuZHJhd01vZGUgaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIHJlbmRlcmVyIG5vdyBhbHdheXMgYXNzdW1lcyBUSFJFRS5UcmlhbmdsZXNEcmF3TW9kZS4gVHJhbnNmb3JtIHlvdXIgZ2VvbWV0cnkgdmlhIEJ1ZmZlckdlb21ldHJ5VXRpbHMudG9UcmlhbmdsZXNEcmF3TW9kZSgpIGlmIG5lY2Vzc2FyeS4iKX19fSksdzN0LnByb3RvdHlwZS5pbml0Qm9uZXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Ta2lubmVkTWVzaDogaW5pdEJvbmVzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0scTF0LnByb3RvdHlwZS5zZXRMZW5zPWZ1bmN0aW9uKHQsZSl7Y29uc29sZS53YXJuKCJUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYS5zZXRMZW5zIGlzIGRlcHJlY2F0ZWQuIFVzZSAuc2V0Rm9jYWxMZW5ndGggYW5kIC5maWxtR2F1Z2UgZm9yIGEgcGhvdG9ncmFwaGljIHNldHVwLiIpLHZvaWQgMCE9PWUmJih0aGlzLmZpbG1HYXVnZT1lKSx0aGlzLnNldEZvY2FsTGVuZ3RoKHQpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhvOXQucHJvdG90eXBlLHtvbmx5U2hhZG93OntzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAub25seVNoYWRvdyBoYXMgYmVlbiByZW1vdmVkLiIpfX0sc2hhZG93Q2FtZXJhRm92OntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYUZvdiBpcyBub3cgLnNoYWRvdy5jYW1lcmEuZm92LiIpLHRoaXMuc2hhZG93LmNhbWVyYS5mb3Y9dH19LHNoYWRvd0NhbWVyYUxlZnQ6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhTGVmdCBpcyBub3cgLnNoYWRvdy5jYW1lcmEubGVmdC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEubGVmdD10fX0sc2hhZG93Q2FtZXJhUmlnaHQ6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhUmlnaHQgaXMgbm93IC5zaGFkb3cuY2FtZXJhLnJpZ2h0LiIpLHRoaXMuc2hhZG93LmNhbWVyYS5yaWdodD10fX0sc2hhZG93Q2FtZXJhVG9wOntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVRvcCBpcyBub3cgLnNoYWRvdy5jYW1lcmEudG9wLiIpLHRoaXMuc2hhZG93LmNhbWVyYS50b3A9dH19LHNoYWRvd0NhbWVyYUJvdHRvbTp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFCb3R0b20gaXMgbm93IC5zaGFkb3cuY2FtZXJhLmJvdHRvbS4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuYm90dG9tPXR9fSxzaGFkb3dDYW1lcmFOZWFyOntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYU5lYXIgaXMgbm93IC5zaGFkb3cuY2FtZXJhLm5lYXIuIiksdGhpcy5zaGFkb3cuY2FtZXJhLm5lYXI9dH19LHNoYWRvd0NhbWVyYUZhcjp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFGYXIgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmZhci4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuZmFyPXR9fSxzaGFkb3dDYW1lcmFWaXNpYmxlOntzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhVmlzaWJsZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLkNhbWVyYUhlbHBlciggbGlnaHQuc2hhZG93LmNhbWVyYSApIGluc3RlYWQuIil9fSxzaGFkb3dCaWFzOntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0JpYXMgaXMgbm93IC5zaGFkb3cuYmlhcy4iKSx0aGlzLnNoYWRvdy5iaWFzPXR9fSxzaGFkb3dEYXJrbmVzczp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0RhcmtuZXNzIGhhcyBiZWVuIHJlbW92ZWQuIil9fSxzaGFkb3dNYXBXaWR0aDp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dNYXBXaWR0aCBpcyBub3cgLnNoYWRvdy5tYXBTaXplLndpZHRoLiIpLHRoaXMuc2hhZG93Lm1hcFNpemUud2lkdGg9dH19LHNoYWRvd01hcEhlaWdodDp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dNYXBIZWlnaHQgaXMgbm93IC5zaGFkb3cubWFwU2l6ZS5oZWlnaHQuIiksdGhpcy5zaGFkb3cubWFwU2l6ZS5oZWlnaHQ9dH19fSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoUVF0LnByb3RvdHlwZSx7bGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5sZW5ndGggaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5jb3VudCBpbnN0ZWFkLiIpLHRoaXMuYXJyYXkubGVuZ3RofX0sZHluYW1pYzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuZHluYW1pYyBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnVzYWdlIGluc3RlYWQuIiksdGhpcy51c2FnZT09PVZadH0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5keW5hbWljIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAudXNhZ2UgaW5zdGVhZC4iKSx0aGlzLnNldFVzYWdlKFZadCl9fX0pLFFRdC5wcm90b3R5cGUuc2V0RHluYW1pYz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5zZXREeW5hbWljKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5zZXRVc2FnZSgpIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZSghMD09PXQ/Vlp0OkZadCksdGhpc30sUVF0LnByb3RvdHlwZS5jb3B5SW5kaWNlc0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuY29weUluZGljZXNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LFFRdC5wcm90b3R5cGUuc2V0QXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5zZXRBcnJheSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgQnVmZmVyR2VvbWV0cnkgLnNldEF0dHJpYnV0ZSB0byByZXBsYWNlL3Jlc2l6ZSBhdHRyaWJ1dGUgYnVmZmVycyIpfSxiMXQucHJvdG90eXBlLmFkZEluZGV4PWZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGRJbmRleCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEluZGV4KCkuIiksdGhpcy5zZXRJbmRleCh0KX0sYjF0LnByb3RvdHlwZS5hZGRBdHRyaWJ1dGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZEF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEF0dHJpYnV0ZSgpLiIpLGUmJmUuaXNCdWZmZXJBdHRyaWJ1dGV8fGUmJmUuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZT8iaW5kZXgiPT09dD8oY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS5hZGRBdHRyaWJ1dGU6IFVzZSAuc2V0SW5kZXgoKSBmb3IgaW5kZXggYXR0cmlidXRlLiIpLHRoaXMuc2V0SW5kZXgoZSksdGhpcyk6dGhpcy5zZXRBdHRyaWJ1dGUodCxlKTooY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZEF0dHJpYnV0ZSgpIG5vdyBleHBlY3RzICggbmFtZSwgYXR0cmlidXRlICkuIiksdGhpcy5zZXRBdHRyaWJ1dGUodCxuZXcgUVF0KGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl0pKSl9LGIxdC5wcm90b3R5cGUuYWRkRHJhd0NhbGw9ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMCE9PW4mJmNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGREcmF3Q2FsbCgpIG5vIGxvbmdlciBzdXBwb3J0cyBpbmRleE9mZnNldC4iKSxjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkRHJhd0NhbGwoKSBpcyBub3cgLmFkZEdyb3VwKCkuIiksdGhpcy5hZGRHcm91cCh0LGUpfSxiMXQucHJvdG90eXBlLmNsZWFyRHJhd0NhbGxzPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmNsZWFyRHJhd0NhbGxzKCkgaXMgbm93IC5jbGVhckdyb3VwcygpLiIpLHRoaXMuY2xlYXJHcm91cHMoKX0sYjF0LnByb3RvdHlwZS5jb21wdXRlT2Zmc2V0cz1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5jb21wdXRlT2Zmc2V0cygpIGhhcyBiZWVuIHJlbW92ZWQuIil9LGIxdC5wcm90b3R5cGUucmVtb3ZlQXR0cmlidXRlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAucmVtb3ZlQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZGVsZXRlQXR0cmlidXRlKCkuIiksdGhpcy5kZWxldGVBdHRyaWJ1dGUodCl9LGIxdC5wcm90b3R5cGUuYXBwbHlNYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hcHBseU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmFwcGx5TWF0cml4NCgpLiIpLHRoaXMuYXBwbHlNYXRyaXg0KHQpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhiMXQucHJvdG90eXBlLHtkcmF3Y2FsbHM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLmVycm9yKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmRyYXdjYWxscyBoYXMgYmVlbiByZW5hbWVkIHRvIC5ncm91cHMuIiksdGhpcy5ncm91cHN9fSxvZmZzZXRzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLm9mZnNldHMgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ3JvdXBzLiIpLHRoaXMuZ3JvdXBzfX19KSwkNXQucHJvdG90eXBlLnNldER5bmFtaWM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXI6IC5zZXREeW5hbWljKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5zZXRVc2FnZSgpIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZSghMD09PXQ/Vlp0OkZadCksdGhpc30sJDV0LnByb3RvdHlwZS5zZXRBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkludGVybGVhdmVkQnVmZmVyOiAuc2V0QXJyYXkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEJ1ZmZlckdlb21ldHJ5IC5zZXRBdHRyaWJ1dGUgdG8gcmVwbGFjZS9yZXNpemUgYXR0cmlidXRlIGJ1ZmZlcnMiKX0scjZ0LnByb3RvdHlwZS5nZXRBcnJheXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5nZXRBcnJheXMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyNnQucHJvdG90eXBlLmFkZFNoYXBlTGlzdD1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkV4dHJ1ZGVHZW9tZXRyeTogLmFkZFNoYXBlTGlzdCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LHI2dC5wcm90b3R5cGUuYWRkU2hhcGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5hZGRTaGFwZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LFg1dC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNjZW5lOiAuZGlzcG9zZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LG04dC5wcm90b3R5cGUub25VcGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Vbmlmb3JtOiAub25VcGRhdGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2Ugb2JqZWN0Lm9uQmVmb3JlUmVuZGVyKCkgaW5zdGVhZC4iKSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhVUXQucHJvdG90eXBlLHt3cmFwQXJvdW5kOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfX0sb3ZlcmRyYXc6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTWF0ZXJpYWw6IC5vdmVyZHJhdyBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAub3ZlcmRyYXcgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHdyYXBSR0I6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcFJHQiBoYXMgYmVlbiByZW1vdmVkLiIpLG5ldyAkUXR9fSxzaGFkaW5nOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc2hhZGluZyBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdGhlIGJvb2xlYW4gLmZsYXRTaGFkaW5nIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKSx0aGlzLmZsYXRTaGFkaW5nPTE9PT10fX0sc3RlbmNpbE1hc2s6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zdGVuY2lsTWFzayBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnN0ZW5jaWxGdW5jTWFzayBpbnN0ZWFkLiIpLHRoaXMuc3RlbmNpbEZ1bmNNYXNrfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc3RlbmNpbE1hc2sgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5zdGVuY2lsRnVuY01hc2sgaW5zdGVhZC4iKSx0aGlzLnN0ZW5jaWxGdW5jTWFzaz10fX0sdmVydGV4VGFuZ2VudHM6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEcxdC5wcm90b3R5cGUse2Rlcml2YXRpdmVzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFkZXJNYXRlcmlhbDogLmRlcml2YXRpdmVzIGhhcyBiZWVuIG1vdmVkIHRvIC5leHRlbnNpb25zLmRlcml2YXRpdmVzLiIpLHRoaXMuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlc30sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuIFNoYWRlck1hdGVyaWFsOiAuZGVyaXZhdGl2ZXMgaGFzIGJlZW4gbW92ZWQgdG8gLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMuIiksdGhpcy5leHRlbnNpb25zLmRlcml2YXRpdmVzPXR9fX0pLEc1dC5wcm90b3R5cGUuY2xlYXJUYXJnZXQ9ZnVuY3Rpb24odCxlLG4saSl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuY2xlYXJUYXJnZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnNldFJlbmRlclRhcmdldCgpIGFuZCAuY2xlYXIoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0UmVuZGVyVGFyZ2V0KHQpLHRoaXMuY2xlYXIoZSxuLGkpfSxHNXQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYW5pbWF0ZSgpIGlzIG5vdyAuc2V0QW5pbWF0aW9uTG9vcCgpLiIpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcCh0KX0sRzV0LnByb3RvdHlwZS5nZXRDdXJyZW50UmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdldEN1cnJlbnRSZW5kZXJUYXJnZXQoKSBpcyBub3cgLmdldFJlbmRlclRhcmdldCgpLiIpLHRoaXMuZ2V0UmVuZGVyVGFyZ2V0KCl9LEc1dC5wcm90b3R5cGUuZ2V0TWF4QW5pc290cm9weT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRNYXhBbmlzb3Ryb3B5KCkgaXMgbm93IC5jYXBhYmlsaXRpZXMuZ2V0TWF4QW5pc290cm9weSgpLiIpLHRoaXMuY2FwYWJpbGl0aWVzLmdldE1heEFuaXNvdHJvcHkoKX0sRzV0LnByb3RvdHlwZS5nZXRQcmVjaXNpb249ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0UHJlY2lzaW9uKCkgaXMgbm93IC5jYXBhYmlsaXRpZXMucHJlY2lzaW9uLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnByZWNpc2lvbn0sRzV0LnByb3RvdHlwZS5yZXNldEdMU3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAucmVzZXRHTFN0YXRlKCkgaXMgbm93IC5zdGF0ZS5yZXNldCgpLiIpLHRoaXMuc3RhdGUucmVzZXQoKX0sRzV0LnByb3RvdHlwZS5zdXBwb3J0c0Zsb2F0VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2Zsb2F0JyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU190ZXh0dXJlX2Zsb2F0Iil9LEc1dC5wcm90b3R5cGUuc3VwcG9ydHNIYWxmRmxvYXRUZXh0dXJlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0hhbGZGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2hhbGZfZmxvYXQnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpfSxHNXQucHJvdG90eXBlLnN1cHBvcnRzU3RhbmRhcmREZXJpdmF0aXZlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c1N0YW5kYXJkRGVyaXZhdGl2ZXMoKSBpcyBub3cgLmV4dGVuc2lvbnMuZ2V0KCAnT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpfSxHNXQucHJvdG90eXBlLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIil9LEc1dC5wcm90b3R5cGUuc3VwcG9ydHNDb21wcmVzc2VkVGV4dHVyZVBWUlRDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVQVlJUQygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIil9LEc1dC5wcm90b3R5cGUuc3VwcG9ydHNCbGVuZE1pbk1heD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0JsZW5kTWluTWF4KCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0VYVF9ibGVuZF9taW5tYXgnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiRVhUX2JsZW5kX21pbm1heCIpfSxHNXQucHJvdG90eXBlLnN1cHBvcnRzVmVydGV4VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcygpIGlzIG5vdyAuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzfSxHNXQucHJvdG90eXBlLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0FOR0xFX2luc3RhbmNlZF9hcnJheXMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpfSxHNXQucHJvdG90eXBlLmVuYWJsZVNjaXNzb3JUZXN0PWZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmVuYWJsZVNjaXNzb3JUZXN0KCkgaXMgbm93IC5zZXRTY2lzc29yVGVzdCgpLiIpLHRoaXMuc2V0U2Npc3NvclRlc3QodCl9LEc1dC5wcm90b3R5cGUuaW5pdE1hdGVyaWFsPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuaW5pdE1hdGVyaWFsKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sRzV0LnByb3RvdHlwZS5hZGRQcmVQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQcmVQbHVnaW4oKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxHNXQucHJvdG90eXBlLmFkZFBvc3RQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQb3N0UGx1Z2luKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sRzV0LnByb3RvdHlwZS51cGRhdGVTaGFkb3dNYXA9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC51cGRhdGVTaGFkb3dNYXAoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxHNXQucHJvdG90eXBlLnNldEZhY2VDdWxsaW5nPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0RmFjZUN1bGxpbmcoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxHNXQucHJvdG90eXBlLmFsbG9jVGV4dHVyZVVuaXQ9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hbGxvY1RleHR1cmVVbml0KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sRzV0LnByb3RvdHlwZS5zZXRUZXh0dXJlPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LEc1dC5wcm90b3R5cGUuc2V0VGV4dHVyZTJEPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZTJEKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sRzV0LnByb3RvdHlwZS5zZXRUZXh0dXJlQ3ViZT1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNldFRleHR1cmVDdWJlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sRzV0LnByb3RvdHlwZS5nZXRBY3RpdmVNaXBNYXBMZXZlbD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRBY3RpdmVNaXBNYXBMZXZlbCgpIGlzIG5vdyAuZ2V0QWN0aXZlTWlwbWFwTGV2ZWwoKS4iKSx0aGlzLmdldEFjdGl2ZU1pcG1hcExldmVsKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEc1dC5wcm90b3R5cGUse3NoYWRvd01hcEVuYWJsZWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC5lbmFibGVkfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwRW5hYmxlZCBpcyBub3cgLnNoYWRvd01hcC5lbmFibGVkLiIpLHRoaXMuc2hhZG93TWFwLmVuYWJsZWQ9dH19LHNoYWRvd01hcFR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC50eXBlfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwVHlwZSBpcyBub3cgLnNoYWRvd01hcC50eXBlLiIpLHRoaXMuc2hhZG93TWFwLnR5cGU9dH19LHNoYWRvd01hcEN1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0sY29udGV4dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmNvbnRleHQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5nZXRDb250ZXh0KCkgaW5zdGVhZC4iKSx0aGlzLmdldENvbnRleHQoKX19LHZyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudnIgaGFzIGJlZW4gcmVuYW1lZCB0byAueHIiKSx0aGlzLnhyfX0sZ2FtbWFJbnB1dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hSW5wdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IHRoZSBlbmNvZGluZyBmb3IgdGV4dHVyZXMgdmlhIFRleHR1cmUuZW5jb2RpbmcgaW5zdGVhZC4iKSwhMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFJbnB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgdGhlIGVuY29kaW5nIGZvciB0ZXh0dXJlcyB2aWEgVGV4dHVyZS5lbmNvZGluZyBpbnN0ZWFkLiIpfX0sZ2FtbWFPdXRwdXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYU91dHB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgV2ViR0xSZW5kZXJlci5vdXRwdXRFbmNvZGluZyBpbnN0ZWFkLiIpLCExfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFPdXRwdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IFdlYkdMUmVuZGVyZXIub3V0cHV0RW5jb2RpbmcgaW5zdGVhZC4iKSx0aGlzLm91dHB1dEVuY29kaW5nPSEwPT09dD9JWnQ6Tlp0fX0sdG9uZU1hcHBpbmdXaGl0ZVBvaW50OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIiksMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFI1dC5wcm90b3R5cGUse2N1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAuY3VsbEZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLmN1bGxGYWNlIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9fSxyZW5kZXJSZXZlcnNlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJSZXZlcnNlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLnJlbmRlclJldmVyc2VTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0scmVuZGVyU2luZ2xlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJTaW5nbGVTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAucmVuZGVyU2luZ2xlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX19fSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoU0p0LnByb3RvdHlwZSx7d3JhcFM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFMgaXMgbm93IC50ZXh0dXJlLndyYXBTLiIpLHRoaXMudGV4dHVyZS53cmFwU30sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwUyBpcyBub3cgLnRleHR1cmUud3JhcFMuIiksdGhpcy50ZXh0dXJlLndyYXBTPXR9fSx3cmFwVDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwVCBpcyBub3cgLnRleHR1cmUud3JhcFQuIiksdGhpcy50ZXh0dXJlLndyYXBUfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLndyYXBUIGlzIG5vdyAudGV4dHVyZS53cmFwVC4iKSx0aGlzLnRleHR1cmUud3JhcFQ9dH19LG1hZ0ZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5tYWdGaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1hZ0ZpbHRlci4iKSx0aGlzLnRleHR1cmUubWFnRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1hZ0ZpbHRlciBpcyBub3cgLnRleHR1cmUubWFnRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5tYWdGaWx0ZXI9dH19LG1pbkZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5taW5GaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1pbkZpbHRlci4iKSx0aGlzLnRleHR1cmUubWluRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1pbkZpbHRlciBpcyBub3cgLnRleHR1cmUubWluRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9dH19LGFuaXNvdHJvcHk6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuYW5pc290cm9weSBpcyBub3cgLnRleHR1cmUuYW5pc290cm9weS4iKSx0aGlzLnRleHR1cmUuYW5pc290cm9weX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5hbmlzb3Ryb3B5IGlzIG5vdyAudGV4dHVyZS5hbmlzb3Ryb3B5LiIpLHRoaXMudGV4dHVyZS5hbmlzb3Ryb3B5PXR9fSxvZmZzZXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAub2Zmc2V0IGlzIG5vdyAudGV4dHVyZS5vZmZzZXQuIiksdGhpcy50ZXh0dXJlLm9mZnNldH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5vZmZzZXQgaXMgbm93IC50ZXh0dXJlLm9mZnNldC4iKSx0aGlzLnRleHR1cmUub2Zmc2V0PXR9fSxyZXBlYXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAucmVwZWF0IGlzIG5vdyAudGV4dHVyZS5yZXBlYXQuIiksdGhpcy50ZXh0dXJlLnJlcGVhdH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5yZXBlYXQgaXMgbm93IC50ZXh0dXJlLnJlcGVhdC4iKSx0aGlzLnRleHR1cmUucmVwZWF0PXR9fSxmb3JtYXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZm9ybWF0IGlzIG5vdyAudGV4dHVyZS5mb3JtYXQuIiksdGhpcy50ZXh0dXJlLmZvcm1hdH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5mb3JtYXQgaXMgbm93IC50ZXh0dXJlLmZvcm1hdC4iKSx0aGlzLnRleHR1cmUuZm9ybWF0PXR9fSx0eXBlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnR5cGUgaXMgbm93IC50ZXh0dXJlLnR5cGUuIiksdGhpcy50ZXh0dXJlLnR5cGV9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAudHlwZSBpcyBub3cgLnRleHR1cmUudHlwZS4iKSx0aGlzLnRleHR1cmUudHlwZT10fX0sZ2VuZXJhdGVNaXBtYXBzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmdlbmVyYXRlTWlwbWFwcyBpcyBub3cgLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzLiIpLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHN9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZ2VuZXJhdGVNaXBtYXBzIGlzIG5vdyAudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMuIiksdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz10fX19KSwkOXQucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogLmxvYWQgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkF1ZGlvTG9hZGVyIGluc3RlYWQuIik7Y29uc3QgZT10aGlzO3JldHVybihuZXcgQjl0KS5sb2FkKHQsKGZ1bmN0aW9uKHQpe2Uuc2V0QnVmZmVyKHQpfSkpLHRoaXN9LHQ4dC5wcm90b3R5cGUuZ2V0RGF0YT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvQW5hbHlzZXI6IC5nZXREYXRhKCkgaXMgbm93IC5nZXRGcmVxdWVuY3lEYXRhKCkuIiksdGhpcy5nZXRGcmVxdWVuY3lEYXRhKCl9LFgxdC5wcm90b3R5cGUudXBkYXRlQ3ViZU1hcD1mdW5jdGlvbih0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkN1YmVDYW1lcmE6IC51cGRhdGVDdWJlTWFwKCkgaXMgbm93IC51cGRhdGUoKS4iKSx0aGlzLnVwZGF0ZSh0LGUpfSxYMXQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkN1YmVDYW1lcmE6IC5jbGVhcigpIGlzIG5vdyAucmVuZGVyVGFyZ2V0LmNsZWFyKCkuIiksdGhpcy5yZW5kZXJUYXJnZXQuY2xlYXIodCxlLG4saSl9LHlKdC5jcm9zc09yaWdpbj12b2lkIDAseUp0LmxvYWRUZXh0dXJlPWZ1bmN0aW9uKHQsZSxuLGkpe2NvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkVGV4dHVyZSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuVGV4dHVyZUxvYWRlcigpIGluc3RlYWQuIik7Y29uc3Qgcj1uZXcgZTl0O3Iuc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbik7Y29uc3Qgbz1yLmxvYWQodCxuLHZvaWQgMCxpKTtyZXR1cm4gZSYmKG8ubWFwcGluZz1lKSxvfSx5SnQubG9hZFRleHR1cmVDdWJlPWZ1bmN0aW9uKHQsZSxuLGkpe2NvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkVGV4dHVyZUN1YmUgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkN1YmVUZXh0dXJlTG9hZGVyKCkgaW5zdGVhZC4iKTtjb25zdCByPW5ldyBRNnQ7ci5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKTtjb25zdCBvPXIubG9hZCh0LG4sdm9pZCAwLGkpO3JldHVybiBlJiYoby5tYXBwaW5nPWUpLG99LHlKdC5sb2FkQ29tcHJlc3NlZFRleHR1cmU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRDb21wcmVzc2VkVGV4dHVyZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuRERTTG9hZGVyIGluc3RlYWQuIil9LHlKdC5sb2FkQ29tcHJlc3NlZFRleHR1cmVDdWJlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkQ29tcHJlc3NlZFRleHR1cmVDdWJlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5ERFNMb2FkZXIgaW5zdGVhZC4iKX07Y29uc3QgWjh0PXtjcmVhdGVNdWx0aU1hdGVyaWFsT2JqZWN0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2NlbmVVdGlscyBoYXMgYmVlbiBtb3ZlZCB0byAvZXhhbXBsZXMvanNtL3V0aWxzL1NjZW5lVXRpbHMuanMiKX0sZGV0YWNoOmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2NlbmVVdGlscyBoYXMgYmVlbiBtb3ZlZCB0byAvZXhhbXBsZXMvanNtL3V0aWxzL1NjZW5lVXRpbHMuanMiKX0sYXR0YWNoOmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2NlbmVVdGlscyBoYXMgYmVlbiBtb3ZlZCB0byAvZXhhbXBsZXMvanNtL3V0aWxzL1NjZW5lVXRpbHMuanMiKX19OyJ1bmRlZmluZWQiIT10eXBlb2YgX19USFJFRV9ERVZUT09MU19fJiZfX1RIUkVFX0RFVlRPT0xTX18uZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlZ2lzdGVyIix7ZGV0YWlsOntyZXZpc2lvbjpCS3R9fSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93Ll9fVEhSRUVfXz9jb25zb2xlLndhcm4oIldBUk5JTkc6IE11bHRpcGxlIGluc3RhbmNlcyBvZiBUaHJlZS5qcyBiZWluZyBpbXBvcnRlZC4iKTp3aW5kb3cuX19USFJFRV9fPUJLdCk7dmFyIEo4dD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBQ0VTRmlsbWljVG9uZU1hcHBpbmc6NCxBZGRFcXVhdGlvbjpWS3QsQWRkT3BlcmF0aW9uOjIsQWRkaXRpdmVBbmltYXRpb25CbGVuZE1vZGU6UFp0LEFkZGl0aXZlQmxlbmRpbmc6MixBbHBoYUZvcm1hdDoxMDIxLEFsd2F5c0RlcHRoOjEsQWx3YXlzU3RlbmNpbEZ1bmM6NTE5LEFtYmllbnRMaWdodDpiOXQsQW1iaWVudExpZ2h0UHJvYmU6Rjl0LEFuaW1hdGlvbkNsaXA6RzZ0LEFuaW1hdGlvbkxvYWRlcjpjbGFzcyBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9dGhpcyxvPW5ldyBaNnQodGhpcy5tYW5hZ2VyKTtvLnNldFBhdGgodGhpcy5wYXRoKSxvLnNldFJlcXVlc3RIZWFkZXIodGhpcy5yZXF1ZXN0SGVhZGVyKSxvLnNldFdpdGhDcmVkZW50aWFscyh0aGlzLndpdGhDcmVkZW50aWFscyksby5sb2FkKHQsKGZ1bmN0aW9uKG4pe3RyeXtlKHIucGFyc2UoSlNPTi5wYXJzZShuKSkpfWNhdGNoKGUpe2k/aShlKTpjb25zb2xlLmVycm9yKGUpLHIubWFuYWdlci5pdGVtRXJyb3IodCl9fSksbixpKX1wYXJzZSh0KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtjb25zdCBpPUc2dC5wYXJzZSh0W25dKTtlLnB1c2goaSl9cmV0dXJuIGV9fSxBbmltYXRpb25NaXhlcjpmOHQsQW5pbWF0aW9uT2JqZWN0R3JvdXA6ZDh0LEFuaW1hdGlvblV0aWxzOlA2dCxBcmNDdXJ2ZTpwNHQsQXJyYXlDYW1lcmE6QjV0LEFycm93SGVscGVyOmNsYXNzIGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQ9bmV3IENKdCgwLDAsMSksZT1uZXcgQ0p0KDAsMCwwKSxuPTEsaT0xNjc3Njk2MCxyPS4yKm4sbz0uMipyKXtzdXBlcigpLHRoaXMudHlwZT0iQXJyb3dIZWxwZXIiLHZvaWQgMD09PXE4dCYmKHE4dD1uZXcgYjF0LHE4dC5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KFswLDAsMCwwLDEsMF0sMykpLFk4dD1uZXcgbjR0KDAsLjUsMSw1LDEpLFk4dC50cmFuc2xhdGUoMCwtLjUsMCkpLHRoaXMucG9zaXRpb24uY29weShlKSx0aGlzLmxpbmU9bmV3IEgzdChxOHQsbmV3IEkzdCh7Y29sb3I6aSx0b25lTWFwcGVkOiExfSkpLHRoaXMubGluZS5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuYWRkKHRoaXMubGluZSksdGhpcy5jb25lPW5ldyBCMXQoWTh0LG5ldyBLUXQoe2NvbG9yOmksdG9uZU1hcHBlZDohMX0pKSx0aGlzLmNvbmUubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLmFkZCh0aGlzLmNvbmUpLHRoaXMuc2V0RGlyZWN0aW9uKHQpLHRoaXMuc2V0TGVuZ3RoKG4scixvKX1zZXREaXJlY3Rpb24odCl7aWYodC55Pi45OTk5OSl0aGlzLnF1YXRlcm5pb24uc2V0KDAsMCwwLDEpO2Vsc2UgaWYodC55PC0uOTk5OTkpdGhpcy5xdWF0ZXJuaW9uLnNldCgxLDAsMCwwKTtlbHNle1c4dC5zZXQodC56LDAsLXQueCkubm9ybWFsaXplKCk7Y29uc3QgZT1NYXRoLmFjb3ModC55KTt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbUF4aXNBbmdsZShXOHQsZSl9fXNldExlbmd0aCh0LGU9LjIqdCxuPS4yKmUpe3RoaXMubGluZS5zY2FsZS5zZXQoMSxNYXRoLm1heCgxZS00LHQtZSksMSksdGhpcy5saW5lLnVwZGF0ZU1hdHJpeCgpLHRoaXMuY29uZS5zY2FsZS5zZXQobixlLG4pLHRoaXMuY29uZS5wb3NpdGlvbi55PXQsdGhpcy5jb25lLnVwZGF0ZU1hdHJpeCgpfXNldENvbG9yKHQpe3RoaXMubGluZS5tYXRlcmlhbC5jb2xvci5zZXQodCksdGhpcy5jb25lLm1hdGVyaWFsLmNvbG9yLnNldCh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQsITEpLHRoaXMubGluZS5jb3B5KHQubGluZSksdGhpcy5jb25lLmNvcHkodC5jb25lKSx0aGlzfX0sQXVkaW86JDl0LEF1ZGlvQW5hbHlzZXI6dDh0LEF1ZGlvQ29udGV4dDpEOXQsQXVkaW9MaXN0ZW5lcjpjbGFzcyBleHRlbmRzIGtRdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJBdWRpb0xpc3RlbmVyIix0aGlzLmNvbnRleHQ9RDl0LmdldENvbnRleHQoKSx0aGlzLmdhaW49dGhpcy5jb250ZXh0LmNyZWF0ZUdhaW4oKSx0aGlzLmdhaW4uY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pLHRoaXMuZmlsdGVyPW51bGwsdGhpcy50aW1lRGVsdGE9MCx0aGlzLl9jbG9jaz1uZXcgajl0fWdldElucHV0KCl7cmV0dXJuIHRoaXMuZ2Fpbn1yZW1vdmVGaWx0ZXIoKXtyZXR1cm4gbnVsbCE9PXRoaXMuZmlsdGVyJiYodGhpcy5nYWluLmRpc2Nvbm5lY3QodGhpcy5maWx0ZXIpLHRoaXMuZmlsdGVyLmRpc2Nvbm5lY3QodGhpcy5jb250ZXh0LmRlc3RpbmF0aW9uKSx0aGlzLmdhaW4uY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pLHRoaXMuZmlsdGVyPW51bGwpLHRoaXN9Z2V0RmlsdGVyKCl7cmV0dXJuIHRoaXMuZmlsdGVyfXNldEZpbHRlcih0KXtyZXR1cm4gbnVsbCE9PXRoaXMuZmlsdGVyPyh0aGlzLmdhaW4uZGlzY29ubmVjdCh0aGlzLmZpbHRlciksdGhpcy5maWx0ZXIuZGlzY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pKTp0aGlzLmdhaW4uZGlzY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pLHRoaXMuZmlsdGVyPXQsdGhpcy5nYWluLmNvbm5lY3QodGhpcy5maWx0ZXIpLHRoaXMuZmlsdGVyLmNvbm5lY3QodGhpcy5jb250ZXh0LmRlc3RpbmF0aW9uKSx0aGlzfWdldE1hc3RlclZvbHVtZSgpe3JldHVybiB0aGlzLmdhaW4uZ2Fpbi52YWx1ZX1zZXRNYXN0ZXJWb2x1bWUodCl7cmV0dXJuIHRoaXMuZ2Fpbi5nYWluLnNldFRhcmdldEF0VGltZSh0LHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXN9dXBkYXRlTWF0cml4V29ybGQodCl7c3VwZXIudXBkYXRlTWF0cml4V29ybGQodCk7Y29uc3QgZT10aGlzLmNvbnRleHQubGlzdGVuZXIsbj10aGlzLnVwO2lmKHRoaXMudGltZURlbHRhPXRoaXMuX2Nsb2NrLmdldERlbHRhKCksdGhpcy5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoVzl0LHE5dCxZOXQpLFg5dC5zZXQoMCwwLC0xKS5hcHBseVF1YXRlcm5pb24ocTl0KSxlLnBvc2l0aW9uWCl7Y29uc3QgdD10aGlzLmNvbnRleHQuY3VycmVudFRpbWUrdGhpcy50aW1lRGVsdGE7ZS5wb3NpdGlvblgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoVzl0LngsdCksZS5wb3NpdGlvblkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoVzl0LnksdCksZS5wb3NpdGlvbloubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoVzl0LnosdCksZS5mb3J3YXJkWC5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZShYOXQueCx0KSxlLmZvcndhcmRZLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKFg5dC55LHQpLGUuZm9yd2FyZFoubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoWDl0LnosdCksZS51cFgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUobi54LHQpLGUudXBZLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKG4ueSx0KSxlLnVwWi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZShuLnosdCl9ZWxzZSBlLnNldFBvc2l0aW9uKFc5dC54LFc5dC55LFc5dC56KSxlLnNldE9yaWVudGF0aW9uKFg5dC54LFg5dC55LFg5dC56LG4ueCxuLnksbi56KX19LEF1ZGlvTG9hZGVyOkI5dCxBeGVzSGVscGVyOlg4dCxBeGlzSGVscGVyOmZ1bmN0aW9uIFE4dCh0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5BeGlzSGVscGVyIGhhcyBiZWVuIHJlbmFtZWQgdG8gVEhSRUUuQXhlc0hlbHBlci4iKSxuZXcgWDh0KHQpfSxCYWNrU2lkZToxLEJhc2ljRGVwdGhQYWNraW5nOjMyMDAsQmFzaWNTaGFkb3dNYXA6MCxCaW5hcnlUZXh0dXJlTG9hZGVyOmZ1bmN0aW9uIHQ3dCh0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CaW5hcnlUZXh0dXJlTG9hZGVyIGhhcyBiZWVuIHJlbmFtZWQgdG8gVEhSRUUuRGF0YVRleHR1cmVMb2FkZXIuIiksbmV3IHQ5dCh0KX0sQm9uZTpTM3QsQm9vbGVhbktleWZyYW1lVHJhY2s6RDZ0LEJvdW5kaW5nQm94SGVscGVyOmZ1bmN0aW9uIGU3dCh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJvdW5kaW5nQm94SGVscGVyIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIENyZWF0aW5nIGEgVEhSRUUuQm94SGVscGVyIGluc3RlYWQuIiksbmV3IEc4dCh0LGUpfSxCb3gyOnc4dCxCb3gzOkxKdCxCb3gzSGVscGVyOmNsYXNzIGV4dGVuZHMgVTN0e2NvbnN0cnVjdG9yKHQsZT0xNjc3Njk2MCl7Y29uc3Qgbj1uZXcgVWludDE2QXJyYXkoWzAsMSwxLDIsMiwzLDMsMCw0LDUsNSw2LDYsNyw3LDQsMCw0LDEsNSwyLDYsMyw3XSksaT1uZXcgYjF0O2kuc2V0SW5kZXgobmV3IFFRdChuLDEpKSxpLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQoWzEsMSwxLC0xLDEsMSwtMSwtMSwxLDEsLTEsMSwxLDEsLTEsLTEsMSwtMSwtMSwtMSwtMSwxLC0xLC0xXSwzKSksc3VwZXIoaSxuZXcgSTN0KHtjb2xvcjplLHRvbmVNYXBwZWQ6ITF9KSksdGhpcy5ib3g9dCx0aGlzLnR5cGU9IkJveDNIZWxwZXIiLHRoaXMuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCl9dXBkYXRlTWF0cml4V29ybGQodCl7Y29uc3QgZT10aGlzLmJveDtlLmlzRW1wdHkoKXx8KGUuZ2V0Q2VudGVyKHRoaXMucG9zaXRpb24pLGUuZ2V0U2l6ZSh0aGlzLnNjYWxlKSx0aGlzLnNjYWxlLm11bHRpcGx5U2NhbGFyKC41KSxzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSl9fSxCb3hCdWZmZXJHZW9tZXRyeTpGMXQsQm94R2VvbWV0cnk6RjF0LEJveEhlbHBlcjpHOHQsQnVmZmVyQXR0cmlidXRlOlFRdCxCdWZmZXJHZW9tZXRyeTpiMXQsQnVmZmVyR2VvbWV0cnlMb2FkZXI6QTl0LEJ5dGVUeXBlOjEwMTAsQ2FjaGU6cTZ0LENhbWVyYTpXMXQsQ2FtZXJhSGVscGVyOmNsYXNzIGV4dGVuZHMgVTN0e2NvbnN0cnVjdG9yKHQpe2NvbnN0IGU9bmV3IGIxdCxuPW5ldyBJM3Qoe2NvbG9yOjE2Nzc3MjE1LHZlcnRleENvbG9yczohMCx0b25lTWFwcGVkOiExfSksaT1bXSxyPVtdLG89e30sYT1uZXcgJFF0KDE2NzU1MjAwKSxzPW5ldyAkUXQoMTY3MTE2ODApLGw9bmV3ICRRdCg0Mzc3NSksYz1uZXcgJFF0KDE2Nzc3MjE1KSx1PW5ldyAkUXQoMzM1NTQ0Myk7ZnVuY3Rpb24gaCh0LGUsbil7ZCh0LG4pLGQoZSxuKX1mdW5jdGlvbiBkKHQsZSl7aS5wdXNoKDAsMCwwKSxyLnB1c2goZS5yLGUuZyxlLmIpLHZvaWQgMD09PW9bdF0mJihvW3RdPVtdKSxvW3RdLnB1c2goaS5sZW5ndGgvMy0xKX1oKCJuMSIsIm4yIixhKSxoKCJuMiIsIm40IixhKSxoKCJuNCIsIm4zIixhKSxoKCJuMyIsIm4xIixhKSxoKCJmMSIsImYyIixhKSxoKCJmMiIsImY0IixhKSxoKCJmNCIsImYzIixhKSxoKCJmMyIsImYxIixhKSxoKCJuMSIsImYxIixhKSxoKCJuMiIsImYyIixhKSxoKCJuMyIsImYzIixhKSxoKCJuNCIsImY0IixhKSxoKCJwIiwibjEiLHMpLGgoInAiLCJuMiIscyksaCgicCIsIm4zIixzKSxoKCJwIiwibjQiLHMpLGgoInUxIiwidTIiLGwpLGgoInUyIiwidTMiLGwpLGgoInUzIiwidTEiLGwpLGgoImMiLCJ0IixjKSxoKCJwIiwiYyIsdSksaCgiY24xIiwiY24yIix1KSxoKCJjbjMiLCJjbjQiLHUpLGgoImNmMSIsImNmMiIsdSksaCgiY2YzIiwiY2Y0Iix1KSxlLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQoaSwzKSksZS5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgbDF0KHIsMykpLHN1cGVyKGUsbiksdGhpcy50eXBlPSJDYW1lcmFIZWxwZXIiLHRoaXMuY2FtZXJhPXQsdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCYmdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMucG9pbnRNYXA9byx0aGlzLnVwZGF0ZSgpfXVwZGF0ZSgpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeSxlPXRoaXMucG9pbnRNYXA7Vjh0LnByb2plY3Rpb25NYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5jYW1lcmEucHJvamVjdGlvbk1hdHJpeEludmVyc2UpLFU4dCgiYyIsZSx0LFY4dCwwLDAsLTEpLFU4dCgidCIsZSx0LFY4dCwwLDAsMSksVTh0KCJuMSIsZSx0LFY4dCwtMSwtMSwtMSksVTh0KCJuMiIsZSx0LFY4dCwxLC0xLC0xKSxVOHQoIm4zIixlLHQsVjh0LC0xLDEsLTEpLFU4dCgibjQiLGUsdCxWOHQsMSwxLC0xKSxVOHQoImYxIixlLHQsVjh0LC0xLC0xLDEpLFU4dCgiZjIiLGUsdCxWOHQsMSwtMSwxKSxVOHQoImYzIixlLHQsVjh0LC0xLDEsMSksVTh0KCJmNCIsZSx0LFY4dCwxLDEsMSksVTh0KCJ1MSIsZSx0LFY4dCwuNywxLjEsLTEpLFU4dCgidTIiLGUsdCxWOHQsLS43LDEuMSwtMSksVTh0KCJ1MyIsZSx0LFY4dCwwLDIsLTEpLFU4dCgiY2YxIixlLHQsVjh0LC0xLDAsMSksVTh0KCJjZjIiLGUsdCxWOHQsMSwwLDEpLFU4dCgiY2YzIixlLHQsVjh0LDAsLTEsMSksVTh0KCJjZjQiLGUsdCxWOHQsMCwxLDEpLFU4dCgiY24xIixlLHQsVjh0LC0xLDAsLTEpLFU4dCgiY24yIixlLHQsVjh0LDEsMCwtMSksVTh0KCJjbjMiLGUsdCxWOHQsMCwtMSwtMSksVTh0KCJjbjQiLGUsdCxWOHQsMCwxLC0xKSx0LmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKS5uZWVkc1VwZGF0ZT0hMH1kaXNwb3NlKCl7dGhpcy5nZW9tZXRyeS5kaXNwb3NlKCksdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCl9fSxDYW52YXNSZW5kZXJlcjpmdW5jdGlvbiBuN3QoKXtjb25zb2xlLmVycm9yKCJUSFJFRS5DYW52YXNSZW5kZXJlciBoYXMgYmVlbiByZW1vdmVkIil9LENhbnZhc1RleHR1cmU6UTN0LENhdG11bGxSb21DdXJ2ZTM6djR0LENpbmVvblRvbmVNYXBwaW5nOjMsQ2lyY2xlQnVmZmVyR2VvbWV0cnk6ZTR0LENpcmNsZUdlb21ldHJ5OmU0dCxDbGFtcFRvRWRnZVdyYXBwaW5nOktLdCxDbG9jazpqOXQsQ29sb3I6JFF0LENvbG9yS2V5ZnJhbWVUcmFjazpCNnQsQ29tcHJlc3NlZFRleHR1cmU6SjN0LENvbXByZXNzZWRUZXh0dXJlTG9hZGVyOmNsYXNzIGV4dGVuZHMgJDZ0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4saSl7Y29uc3Qgcj10aGlzLG89W10sYT1uZXcgSjN0LHM9bmV3IFo2dCh0aGlzLm1hbmFnZXIpO3Muc2V0UGF0aCh0aGlzLnBhdGgpLHMuc2V0UmVzcG9uc2VUeXBlKCJhcnJheWJ1ZmZlciIpLHMuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLHMuc2V0V2l0aENyZWRlbnRpYWxzKHIud2l0aENyZWRlbnRpYWxzKTtsZXQgbD0wO2Z1bmN0aW9uIGMoYyl7cy5sb2FkKHRbY10sKGZ1bmN0aW9uKHQpe2NvbnN0IG49ci5wYXJzZSh0LCEwKTtvW2NdPXt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodCxmb3JtYXQ6bi5mb3JtYXQsbWlwbWFwczpuLm1pcG1hcHN9LGwrPTEsNj09PWwmJigxPT09bi5taXBtYXBDb3VudCYmKGEubWluRmlsdGVyPWVadCksYS5pbWFnZT1vLGEuZm9ybWF0PW4uZm9ybWF0LGEubmVlZHNVcGRhdGU9ITAsZSYmZShhKSl9KSxuLGkpfWlmKEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47KytlKWMoZSk7ZWxzZSBzLmxvYWQodCwoZnVuY3Rpb24odCl7Y29uc3Qgbj1yLnBhcnNlKHQsITApO2lmKG4uaXNDdWJlbWFwKXtjb25zdCB0PW4ubWlwbWFwcy5sZW5ndGgvbi5taXBtYXBDb3VudDtmb3IobGV0IGU9MDtlPHQ7ZSsrKXtvW2VdPXttaXBtYXBzOltdfTtmb3IobGV0IHQ9MDt0PG4ubWlwbWFwQ291bnQ7dCsrKW9bZV0ubWlwbWFwcy5wdXNoKG4ubWlwbWFwc1tlKm4ubWlwbWFwQ291bnQrdF0pLG9bZV0uZm9ybWF0PW4uZm9ybWF0LG9bZV0ud2lkdGg9bi53aWR0aCxvW2VdLmhlaWdodD1uLmhlaWdodH1hLmltYWdlPW99ZWxzZSBhLmltYWdlLndpZHRoPW4ud2lkdGgsYS5pbWFnZS5oZWlnaHQ9bi5oZWlnaHQsYS5taXBtYXBzPW4ubWlwbWFwczsxPT09bi5taXBtYXBDb3VudCYmKGEubWluRmlsdGVyPWVadCksYS5mb3JtYXQ9bi5mb3JtYXQsYS5uZWVkc1VwZGF0ZT0hMCxlJiZlKGEpfSksbixpKTtyZXR1cm4gYX19LENvbmVCdWZmZXJHZW9tZXRyeTppNHQsQ29uZUdlb21ldHJ5Omk0dCxDdWJlQ2FtZXJhOlgxdCxDdWJlUmVmbGVjdGlvbk1hcHBpbmc6akt0LEN1YmVSZWZyYWN0aW9uTWFwcGluZzpHS3QsQ3ViZVRleHR1cmU6JDF0LEN1YmVUZXh0dXJlTG9hZGVyOlE2dCxDdWJlVVZSZWZsZWN0aW9uTWFwcGluZzpZS3QsQ3ViZVVWUmVmcmFjdGlvbk1hcHBpbmc6WEt0LEN1YmljQmV6aWVyQ3VydmU6UzR0LEN1YmljQmV6aWVyQ3VydmUzOk00dCxDdWJpY0ludGVycG9sYW50Okk2dCxDdWxsRmFjZUJhY2s6MSxDdWxsRmFjZUZyb250OjIsQ3VsbEZhY2VGcm9udEJhY2s6MyxDdWxsRmFjZU5vbmU6MCxDdXJ2ZTpoNHQsQ3VydmVQYXRoOm45dCxDdXN0b21CbGVuZGluZzo1LEN1c3RvbVRvbmVNYXBwaW5nOjUsQ3lsaW5kZXJCdWZmZXJHZW9tZXRyeTpuNHQsQ3lsaW5kZXJHZW9tZXRyeTpuNHQsQ3lsaW5kcmljYWw6Y2xhc3N7Y29uc3RydWN0b3IodD0xLGU9MCxuPTApe3JldHVybiB0aGlzLnJhZGl1cz10LHRoaXMudGhldGE9ZSx0aGlzLnk9bix0aGlzfXNldCh0LGUsbil7cmV0dXJuIHRoaXMucmFkaXVzPXQsdGhpcy50aGV0YT1lLHRoaXMueT1uLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpcy50aGV0YT10LnRoZXRhLHRoaXMueT10LnksdGhpc31zZXRGcm9tVmVjdG9yMyh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tQ2FydGVzaWFuQ29vcmRzKHQueCx0LnksdC56KX1zZXRGcm9tQ2FydGVzaWFuQ29vcmRzKHQsZSxuKXtyZXR1cm4gdGhpcy5yYWRpdXM9TWF0aC5zcXJ0KHQqdCtuKm4pLHRoaXMudGhldGE9TWF0aC5hdGFuMih0LG4pLHRoaXMueT1lLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9fSxEYXRhVGV4dHVyZTpNM3QsRGF0YVRleHR1cmUyREFycmF5OkswdCxEYXRhVGV4dHVyZTNEOlowdCxEYXRhVGV4dHVyZUxvYWRlcjp0OXQsRGF0YVV0aWxzOmNsYXNze3N0YXRpYyB0b0hhbGZGbG9hdCh0KXskOHRbMF09dDtjb25zdCBlPUs4dFswXTtsZXQgbj1lPj4xNiYzMjc2OCxpPWU+PjEyJjIwNDc7Y29uc3Qgcj1lPj4yMyYyNTU7cmV0dXJuIHI8MTAzP246cj4xNDI/KG58PTMxNzQ0LG58PSgyNTU9PXI/MDoxKSYmODM4ODYwNyZlLG4pOnI8MTEzPyhpfD0yMDQ4LG58PShpPj4xMTQtcikrKGk+PjExMy1yJjEpLG4pOihufD1yLTExMjw8MTB8aT4+MSxuKz0xJmksbil9fSxEZWNyZW1lbnRTdGVuY2lsT3A6NzY4MyxEZWNyZW1lbnRXcmFwU3RlbmNpbE9wOjM0MDU2LERlZmF1bHRMb2FkaW5nTWFuYWdlcjpYNnQsRGVwdGhGb3JtYXQ6ZFp0LERlcHRoU3RlbmNpbEZvcm1hdDpwWnQsRGVwdGhUZXh0dXJlOnQ0dCxEaXJlY3Rpb25hbExpZ2h0OnY5dCxEaXJlY3Rpb25hbExpZ2h0SGVscGVyOmNsYXNzIGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcigpLHRoaXMubGlnaHQ9dCx0aGlzLmxpZ2h0LnVwZGF0ZU1hdHJpeFdvcmxkKCksdGhpcy5tYXRyaXg9dC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5jb2xvcj1uLHZvaWQgMD09PWUmJihlPTEpO2xldCBpPW5ldyBiMXQ7aS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KFstZSxlLDAsZSxlLDAsZSwtZSwwLC1lLC1lLDAsLWUsZSwwXSwzKSk7Y29uc3Qgcj1uZXcgSTN0KHtmb2c6ITEsdG9uZU1hcHBlZDohMX0pO3RoaXMubGlnaHRQbGFuZT1uZXcgSDN0KGksciksdGhpcy5hZGQodGhpcy5saWdodFBsYW5lKSxpPW5ldyBiMXQsaS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KFswLDAsMCwwLDAsMV0sMykpLHRoaXMudGFyZ2V0TGluZT1uZXcgSDN0KGksciksdGhpcy5hZGQodGhpcy50YXJnZXRMaW5lKSx0aGlzLnVwZGF0ZSgpfWRpc3Bvc2UoKXt0aGlzLmxpZ2h0UGxhbmUuZ2VvbWV0cnkuZGlzcG9zZSgpLHRoaXMubGlnaHRQbGFuZS5tYXRlcmlhbC5kaXNwb3NlKCksdGhpcy50YXJnZXRMaW5lLmdlb21ldHJ5LmRpc3Bvc2UoKSx0aGlzLnRhcmdldExpbmUubWF0ZXJpYWwuZGlzcG9zZSgpfXVwZGF0ZSgpe0Q4dC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5saWdodC5tYXRyaXhXb3JsZCksQjh0LnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLmxpZ2h0LnRhcmdldC5tYXRyaXhXb3JsZCksSDh0LnN1YlZlY3RvcnMoQjh0LEQ4dCksdGhpcy5saWdodFBsYW5lLmxvb2tBdChCOHQpLHZvaWQgMCE9PXRoaXMuY29sb3I/KHRoaXMubGlnaHRQbGFuZS5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvciksdGhpcy50YXJnZXRMaW5lLm1hdGVyaWFsLmNvbG9yLnNldCh0aGlzLmNvbG9yKSk6KHRoaXMubGlnaHRQbGFuZS5tYXRlcmlhbC5jb2xvci5jb3B5KHRoaXMubGlnaHQuY29sb3IpLHRoaXMudGFyZ2V0TGluZS5tYXRlcmlhbC5jb2xvci5jb3B5KHRoaXMubGlnaHQuY29sb3IpKSx0aGlzLnRhcmdldExpbmUubG9va0F0KEI4dCksdGhpcy50YXJnZXRMaW5lLnNjYWxlLno9SDh0Lmxlbmd0aCgpfX0sRGlzY3JldGVJbnRlcnBvbGFudDpPNnQsRG9kZWNhaGVkcm9uQnVmZmVyR2VvbWV0cnk6bzR0LERvZGVjYWhlZHJvbkdlb21ldHJ5Om80dCxEb3VibGVTaWRlOjIsRHN0QWxwaGFGYWN0b3I6MjA2LERzdENvbG9yRmFjdG9yOjIwOCxEeW5hbWljQnVmZmVyQXR0cmlidXRlOmZ1bmN0aW9uIGk3dCh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkR5bmFtaWNCdWZmZXJBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUoKS5zZXRVc2FnZSggVEhSRUUuRHluYW1pY0RyYXdVc2FnZSApIGluc3RlYWQuIiksbmV3IFFRdCh0LGUpLnNldFVzYWdlKFZadCl9LER5bmFtaWNDb3B5VXNhZ2U6MzUwNTAsRHluYW1pY0RyYXdVc2FnZTpWWnQsRHluYW1pY1JlYWRVc2FnZTozNTA0OSxFZGdlc0dlb21ldHJ5OnU0dCxFZGdlc0hlbHBlcjpmdW5jdGlvbiByN3QodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5FZGdlc0hlbHBlciBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuRWRnZXNHZW9tZXRyeSBpbnN0ZWFkLiIpLG5ldyBVM3QobmV3IHU0dCh0Lmdlb21ldHJ5KSxuZXcgSTN0KHtjb2xvcjp2b2lkIDAhPT1lP2U6MTY3NzcyMTV9KSl9LEVsbGlwc2VDdXJ2ZTpkNHQsRXF1YWxEZXB0aDo0LEVxdWFsU3RlbmNpbEZ1bmM6NTE0LEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nOldLdCxFcXVpcmVjdGFuZ3VsYXJSZWZyYWN0aW9uTWFwcGluZzpxS3QsRXVsZXI6ZlF0LEV2ZW50RGlzcGF0Y2hlcjpqWnQsRXh0cnVkZUJ1ZmZlckdlb21ldHJ5OnI2dCxFeHRydWRlR2VvbWV0cnk6cjZ0LEZhY2VDb2xvcnM6MSxGaWxlTG9hZGVyOlo2dCxGbGF0U2hhZGluZzoxLEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU6czF0LEZsb2F0MzJBdHRyaWJ1dGU6ZnVuY3Rpb24gbzd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuRmxvYXQzMkF0dHJpYnV0ZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLkZsb2F0MzJCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyBsMXQodCxlKX0sRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZTpsMXQsRmxvYXQ2NEF0dHJpYnV0ZTpmdW5jdGlvbiBhN3QodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5GbG9hdDY0QXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuRmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IGMxdCh0LGUpfSxGbG9hdDY0QnVmZmVyQXR0cmlidXRlOmMxdCxGbG9hdFR5cGU6c1p0LEZvZzpZNXQsRm9nRXhwMjpxNXQsRm9udDpSOXQsRm9udExvYWRlcjpjbGFzcyBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9dGhpcyxvPW5ldyBaNnQodGhpcy5tYW5hZ2VyKTtvLnNldFBhdGgodGhpcy5wYXRoKSxvLnNldFJlcXVlc3RIZWFkZXIodGhpcy5yZXF1ZXN0SGVhZGVyKSxvLnNldFdpdGhDcmVkZW50aWFscyhyLndpdGhDcmVkZW50aWFscyksby5sb2FkKHQsKGZ1bmN0aW9uKHQpe2xldCBuO3RyeXtuPUpTT04ucGFyc2UodCl9Y2F0Y2goZSl7Y29uc29sZS53YXJuKCJUSFJFRS5Gb250TG9hZGVyOiB0eXBlZmFjZS5qcyBzdXBwb3J0IGlzIGJlaW5nIGRlcHJlY2F0ZWQuIFVzZSB0eXBlZmFjZS5qc29uIGluc3RlYWQuIiksbj1KU09OLnBhcnNlKHQuc3Vic3RyaW5nKDY1LHQubGVuZ3RoLTIpKX1jb25zdCBpPXIucGFyc2Uobik7ZSYmZShpKX0pLG4saSl9cGFyc2UodCl7cmV0dXJuIG5ldyBSOXQodCl9fSxGcm9udFNpZGU6MCxGcnVzdHVtOmkwdCxHTEJ1ZmZlckF0dHJpYnV0ZTpfOHQsR0xTTDE6IjEwMCIsR0xTTDM6VVp0LEdhbW1hRW5jb2Rpbmc6Ulp0LEdyZWF0ZXJEZXB0aDo2LEdyZWF0ZXJFcXVhbERlcHRoOjUsR3JlYXRlckVxdWFsU3RlbmNpbEZ1bmM6NTE4LEdyZWF0ZXJTdGVuY2lsRnVuYzo1MTYsR3JpZEhlbHBlcjp6OHQsR3JvdXA6SDV0LEhhbGZGbG9hdFR5cGU6bFp0LEhlbWlzcGhlcmVMaWdodDphOXQsSGVtaXNwaGVyZUxpZ2h0SGVscGVyOmNsYXNzIGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcigpLHRoaXMubGlnaHQ9dCx0aGlzLmxpZ2h0LnVwZGF0ZU1hdHJpeFdvcmxkKCksdGhpcy5tYXRyaXg9dC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5jb2xvcj1uO2NvbnN0IGk9bmV3IGw2dChlKTtpLnJvdGF0ZVkoLjUqTWF0aC5QSSksdGhpcy5tYXRlcmlhbD1uZXcgS1F0KHt3aXJlZnJhbWU6ITAsZm9nOiExLHRvbmVNYXBwZWQ6ITF9KSx2b2lkIDA9PT10aGlzLmNvbG9yJiYodGhpcy5tYXRlcmlhbC52ZXJ0ZXhDb2xvcnM9ITApO2NvbnN0IHI9aS5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIiksbz1uZXcgRmxvYXQzMkFycmF5KDMqci5jb3VudCk7aS5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgUVF0KG8sMykpLHRoaXMuYWRkKG5ldyBCMXQoaSx0aGlzLm1hdGVyaWFsKSksdGhpcy51cGRhdGUoKX1kaXNwb3NlKCl7dGhpcy5jaGlsZHJlblswXS5nZW9tZXRyeS5kaXNwb3NlKCksdGhpcy5jaGlsZHJlblswXS5tYXRlcmlhbC5kaXNwb3NlKCl9dXBkYXRlKCl7Y29uc3QgdD10aGlzLmNoaWxkcmVuWzBdO2lmKHZvaWQgMCE9PXRoaXMuY29sb3IpdGhpcy5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvcik7ZWxzZXtjb25zdCBlPXQuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCJjb2xvciIpO1I4dC5jb3B5KHRoaXMubGlnaHQuY29sb3IpLE84dC5jb3B5KHRoaXMubGlnaHQuZ3JvdW5kQ29sb3IpO2ZvcihsZXQgdD0wLG49ZS5jb3VudDt0PG47dCsrKXtjb25zdCBpPXQ8bi8yP1I4dDpPOHQ7ZS5zZXRYWVoodCxpLnIsaS5nLGkuYil9ZS5uZWVkc1VwZGF0ZT0hMH10Lmxvb2tBdChJOHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubGlnaHQubWF0cml4V29ybGQpLm5lZ2F0ZSgpKX19LEhlbWlzcGhlcmVMaWdodFByb2JlOkg5dCxJY29zYWhlZHJvbkJ1ZmZlckdlb21ldHJ5OmE2dCxJY29zYWhlZHJvbkdlb21ldHJ5OmE2dCxJbWFnZUJpdG1hcExvYWRlcjpOOXQsSW1hZ2VMb2FkZXI6SjZ0LEltYWdlVXRpbHM6eUp0LEltbWVkaWF0ZVJlbmRlck9iamVjdDpUOHQsSW5jcmVtZW50U3RlbmNpbE9wOjc2ODIsSW5jcmVtZW50V3JhcFN0ZW5jaWxPcDozNDA1NSxJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU6Qzl0LEluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5OlQ5dCxJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcjpnOHQsSW5zdGFuY2VkTWVzaDpOM3QsSW50MTZBdHRyaWJ1dGU6ZnVuY3Rpb24gczd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuSW50MTZBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5JbnQxNkJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IGkxdCh0LGUpfSxJbnQxNkJ1ZmZlckF0dHJpYnV0ZTppMXQsSW50MzJBdHRyaWJ1dGU6ZnVuY3Rpb24gbDd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuSW50MzJBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5JbnQzMkJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IG8xdCh0LGUpfSxJbnQzMkJ1ZmZlckF0dHJpYnV0ZTpvMXQsSW50OEF0dHJpYnV0ZTpmdW5jdGlvbiBjN3QodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5JbnQ4QXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuSW50OEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IHQxdCh0LGUpfSxJbnQ4QnVmZmVyQXR0cmlidXRlOnQxdCxJbnRUeXBlOjEwMTMsSW50ZXJsZWF2ZWRCdWZmZXI6JDV0LEludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlOlo1dCxJbnRlcnBvbGFudDpONnQsSW50ZXJwb2xhdGVEaXNjcmV0ZTpNWnQsSW50ZXJwb2xhdGVMaW5lYXI6RVp0LEludGVycG9sYXRlU21vb3RoOlRadCxJbnZlcnRTdGVuY2lsT3A6NTM4NixKU09OTG9hZGVyOmZ1bmN0aW9uIHU3dCgpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkpTT05Mb2FkZXIgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sS2VlcFN0ZW5jaWxPcDpIWnQsS2V5ZnJhbWVUcmFjazp6NnQsTE9EOmczdCxMYXRoZUJ1ZmZlckdlb21ldHJ5OnM2dCxMYXRoZUdlb21ldHJ5OnM2dCxMYXllcnM6bVF0LExlbnNGbGFyZTpmdW5jdGlvbiBoN3QoKXtjb25zb2xlLmVycm9yKCJUSFJFRS5MZW5zRmxhcmUgaGFzIGJlZW4gbW92ZWQgdG8gL2V4YW1wbGVzL2pzbS9vYmplY3RzL0xlbnNmbGFyZS5qcyIpfSxMZXNzRGVwdGg6MixMZXNzRXF1YWxEZXB0aDozLExlc3NFcXVhbFN0ZW5jaWxGdW5jOjUxNSxMZXNzU3RlbmNpbEZ1bmM6NTEzLExpZ2h0Om85dCxMaWdodFByb2JlOlM5dCxMaW5lOkgzdCxMaW5lMzpFOHQsTGluZUJhc2ljTWF0ZXJpYWw6STN0LExpbmVDdXJ2ZTpFNHQsTGluZUN1cnZlMzpUNHQsTGluZURhc2hlZE1hdGVyaWFsOms2dCxMaW5lTG9vcDpqM3QsTGluZVBpZWNlczoxLExpbmVTZWdtZW50czpVM3QsTGluZVN0cmlwOjAsTGluZWFyRW5jb2Rpbmc6Tlp0LExpbmVhckZpbHRlcjplWnQsTGluZWFySW50ZXJwb2xhbnQ6UjZ0LExpbmVhck1pcE1hcExpbmVhckZpbHRlcjoxMDA4LExpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXI6MTAwNyxMaW5lYXJNaXBtYXBMaW5lYXJGaWx0ZXI6aVp0LExpbmVhck1pcG1hcE5lYXJlc3RGaWx0ZXI6blp0LExpbmVhclRvbmVNYXBwaW5nOjEsTG9hZGVyOiQ2dCxMb2FkZXJVdGlsczpFOXQsTG9hZGluZ01hbmFnZXI6WTZ0LExvZ0x1dkVuY29kaW5nOjMwMDMsTG9vcE9uY2U6MjIwMCxMb29wUGluZ1Bvbmc6MjIwMixMb29wUmVwZWF0OjIyMDEsTHVtaW5hbmNlQWxwaGFGb3JtYXQ6MTAyNSxMdW1pbmFuY2VGb3JtYXQ6MTAyNCxNT1VTRTpIS3QsTWF0ZXJpYWw6VVF0LE1hdGVyaWFsTG9hZGVyOk05dCxNYXRoOmVKdCxNYXRoVXRpbHM6ZUp0LE1hdHJpeDM6Z0p0LE1hdHJpeDQ6clF0LE1heEVxdWF0aW9uOjEwNCxNZXNoOkIxdCxNZXNoQmFzaWNNYXRlcmlhbDpLUXQsTWVzaERlcHRoTWF0ZXJpYWw6TjV0LE1lc2hEaXN0YW5jZU1hdGVyaWFsOkk1dCxNZXNoRmFjZU1hdGVyaWFsOmZ1bmN0aW9uIGQ3dCh0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NZXNoRmFjZU1hdGVyaWFsIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBhbiBBcnJheSBpbnN0ZWFkLiIpLHR9LE1lc2hMYW1iZXJ0TWF0ZXJpYWw6QzZ0LE1lc2hNYXRjYXBNYXRlcmlhbDpBNnQsTWVzaE5vcm1hbE1hdGVyaWFsOlQ2dCxNZXNoUGhvbmdNYXRlcmlhbDpNNnQsTWVzaFBoeXNpY2FsTWF0ZXJpYWw6UzZ0LE1lc2hTdGFuZGFyZE1hdGVyaWFsOnc2dCxNZXNoVG9vbk1hdGVyaWFsOkU2dCxNaW5FcXVhdGlvbjoxMDMsTWlycm9yZWRSZXBlYXRXcmFwcGluZzpaS3QsTWl4T3BlcmF0aW9uOjEsTXVsdGlNYXRlcmlhbDpmdW5jdGlvbiBwN3QodD1bXSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTXVsdGlNYXRlcmlhbCBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYW4gQXJyYXkgaW5zdGVhZC4iKSx0LmlzTXVsdGlNYXRlcmlhbD0hMCx0Lm1hdGVyaWFscz10LHQuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5zbGljZSgpfSx0fSxNdWx0aXBseUJsZW5kaW5nOjQsTXVsdGlwbHlPcGVyYXRpb246MCxOZWFyZXN0RmlsdGVyOkpLdCxOZWFyZXN0TWlwTWFwTGluZWFyRmlsdGVyOjEwMDUsTmVhcmVzdE1pcE1hcE5lYXJlc3RGaWx0ZXI6MTAwNCxOZWFyZXN0TWlwbWFwTGluZWFyRmlsdGVyOnRadCxOZWFyZXN0TWlwbWFwTmVhcmVzdEZpbHRlcjpRS3QsTmV2ZXJEZXB0aDowLE5ldmVyU3RlbmNpbEZ1bmM6NTEyLE5vQmxlbmRpbmc6MCxOb0NvbG9yczowLE5vVG9uZU1hcHBpbmc6MCxOb3JtYWxBbmltYXRpb25CbGVuZE1vZGU6TFp0LE5vcm1hbEJsZW5kaW5nOjEsTm90RXF1YWxEZXB0aDo3LE5vdEVxdWFsU3RlbmNpbEZ1bmM6NTE3LE51bWJlcktleWZyYW1lVHJhY2s6SDZ0LE9iamVjdDNEOmtRdCxPYmplY3RMb2FkZXI6Y2xhc3MgZXh0ZW5kcyAkNnR7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixpKXtjb25zdCByPXRoaXMsbz0iIj09PXRoaXMucGF0aD9FOXQuZXh0cmFjdFVybEJhc2UodCk6dGhpcy5wYXRoO3RoaXMucmVzb3VyY2VQYXRoPXRoaXMucmVzb3VyY2VQYXRofHxvO2NvbnN0IGE9bmV3IFo2dCh0aGlzLm1hbmFnZXIpO2Euc2V0UGF0aCh0aGlzLnBhdGgpLGEuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLGEuc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKSxhLmxvYWQodCwoZnVuY3Rpb24obil7bGV0IG89bnVsbDt0cnl7bz1KU09OLnBhcnNlKG4pfWNhdGNoKGUpe3JldHVybiB2b2lkIDAhPT1pJiZpKGUpLHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUU6T2JqZWN0TG9hZGVyOiBDYW4ndCBwYXJzZSAiK3QrIi4iLGUubWVzc2FnZSl9Y29uc3QgYT1vLm1ldGFkYXRhO3ZvaWQgMCE9PWEmJnZvaWQgMCE9PWEudHlwZSYmImdlb21ldHJ5IiE9PWEudHlwZS50b0xvd2VyQ2FzZSgpP3IucGFyc2UobyxlKTpjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3RMb2FkZXI6IENhbid0IGxvYWQgIit0KX0pLG4saSl9YXN5bmMgbG9hZEFzeW5jKHQsZSl7Y29uc3Qgbj0iIj09PXRoaXMucGF0aD9FOXQuZXh0cmFjdFVybEJhc2UodCk6dGhpcy5wYXRoO3RoaXMucmVzb3VyY2VQYXRoPXRoaXMucmVzb3VyY2VQYXRofHxuO2NvbnN0IGk9bmV3IFo2dCh0aGlzLm1hbmFnZXIpO2kuc2V0UGF0aCh0aGlzLnBhdGgpLGkuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLGkuc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKTtjb25zdCByPWF3YWl0IGkubG9hZEFzeW5jKHQsZSksbz1KU09OLnBhcnNlKHIpLGE9by5tZXRhZGF0YTtpZih2b2lkIDA9PT1hfHx2b2lkIDA9PT1hLnR5cGV8fCJnZW9tZXRyeSI9PT1hLnR5cGUudG9Mb3dlckNhc2UoKSl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLk9iamVjdExvYWRlcjogQ2FuJ3QgbG9hZCAiK3QpO3JldHVybiBhd2FpdCB0aGlzLnBhcnNlQXN5bmMobyl9cGFyc2UodCxlKXtjb25zdCBuPXRoaXMucGFyc2VBbmltYXRpb25zKHQuYW5pbWF0aW9ucyksaT10aGlzLnBhcnNlU2hhcGVzKHQuc2hhcGVzKSxyPXRoaXMucGFyc2VHZW9tZXRyaWVzKHQuZ2VvbWV0cmllcyxpKSxvPXRoaXMucGFyc2VJbWFnZXModC5pbWFnZXMsKGZ1bmN0aW9uKCl7dm9pZCAwIT09ZSYmZShsKX0pKSxhPXRoaXMucGFyc2VUZXh0dXJlcyh0LnRleHR1cmVzLG8pLHM9dGhpcy5wYXJzZU1hdGVyaWFscyh0Lm1hdGVyaWFscyxhKSxsPXRoaXMucGFyc2VPYmplY3QodC5vYmplY3QscixzLGEsbiksYz10aGlzLnBhcnNlU2tlbGV0b25zKHQuc2tlbGV0b25zLGwpO2lmKHRoaXMuYmluZFNrZWxldG9ucyhsLGMpLHZvaWQgMCE9PWUpe2xldCB0PSExO2Zvcihjb25zdCBlIGluIG8paWYob1tlXWluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCl7dD0hMDticmVha30hMT09PXQmJmUobCl9cmV0dXJuIGx9YXN5bmMgcGFyc2VBc3luYyh0KXtjb25zdCBlPXRoaXMucGFyc2VBbmltYXRpb25zKHQuYW5pbWF0aW9ucyksbj10aGlzLnBhcnNlU2hhcGVzKHQuc2hhcGVzKSxpPXRoaXMucGFyc2VHZW9tZXRyaWVzKHQuZ2VvbWV0cmllcyxuKSxyPWF3YWl0IHRoaXMucGFyc2VJbWFnZXNBc3luYyh0LmltYWdlcyksbz10aGlzLnBhcnNlVGV4dHVyZXModC50ZXh0dXJlcyxyKSxhPXRoaXMucGFyc2VNYXRlcmlhbHModC5tYXRlcmlhbHMsbykscz10aGlzLnBhcnNlT2JqZWN0KHQub2JqZWN0LGksYSxvLGUpLGw9dGhpcy5wYXJzZVNrZWxldG9ucyh0LnNrZWxldG9ucyxzKTtyZXR1cm4gdGhpcy5iaW5kU2tlbGV0b25zKHMsbCksc31wYXJzZVNoYXBlcyh0KXtjb25zdCBlPXt9O2lmKHZvaWQgMCE9PXQpZm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKXtjb25zdCBpPShuZXcgcjl0KS5mcm9tSlNPTih0W25dKTtlW2kudXVpZF09aX1yZXR1cm4gZX1wYXJzZVNrZWxldG9ucyh0LGUpe2NvbnN0IG49e30saT17fTtpZihlLnRyYXZlcnNlKChmdW5jdGlvbih0KXt0LmlzQm9uZSYmKGlbdC51dWlkXT10KX0pKSx2b2lkIDAhPT10KWZvcihsZXQgZT0wLHI9dC5sZW5ndGg7ZTxyO2UrKyl7Y29uc3Qgcj0obmV3IEMzdCkuZnJvbUpTT04odFtlXSxpKTtuW3IudXVpZF09cn1yZXR1cm4gbn1wYXJzZUdlb21ldHJpZXModCxlKXtjb25zdCBuPXt9O2lmKHZvaWQgMCE9PXQpe2NvbnN0IGk9bmV3IEE5dDtmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bztyKyspe2xldCBvO2NvbnN0IGE9dFtyXTtzd2l0Y2goYS50eXBlKXtjYXNlIkJ1ZmZlckdlb21ldHJ5IjpjYXNlIkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5IjpvPWkucGFyc2UoYSk7YnJlYWs7Y2FzZSJHZW9tZXRyeSI6Y29uc29sZS5lcnJvcigiVEhSRUUuT2JqZWN0TG9hZGVyOiBUaGUgbGVnYWN5IEdlb21ldHJ5IHR5cGUgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4iKTticmVhaztkZWZhdWx0OmEudHlwZSBpbiBiNnQ/bz1iNnRbYS50eXBlXS5mcm9tSlNPTihhLGUpOmNvbnNvbGUud2FybihgVEhSRUUuT2JqZWN0TG9hZGVyOiBVbnN1cHBvcnRlZCBnZW9tZXRyeSB0eXBlICIke2EudHlwZX0iYCl9by51dWlkPWEudXVpZCx2b2lkIDAhPT1hLm5hbWUmJihvLm5hbWU9YS5uYW1lKSwhMD09PW8uaXNCdWZmZXJHZW9tZXRyeSYmdm9pZCAwIT09YS51c2VyRGF0YSYmKG8udXNlckRhdGE9YS51c2VyRGF0YSksblthLnV1aWRdPW99fXJldHVybiBufXBhcnNlTWF0ZXJpYWxzKHQsZSl7Y29uc3Qgbj17fSxpPXt9O2lmKHZvaWQgMCE9PXQpe2NvbnN0IHI9bmV3IE05dDtyLnNldFRleHR1cmVzKGUpO2ZvcihsZXQgZT0wLG89dC5sZW5ndGg7ZTxvO2UrKyl7Y29uc3Qgbz10W2VdO2lmKCJNdWx0aU1hdGVyaWFsIj09PW8udHlwZSl7Y29uc3QgdD1bXTtmb3IobGV0IGU9MDtlPG8ubWF0ZXJpYWxzLmxlbmd0aDtlKyspe2NvbnN0IGk9by5tYXRlcmlhbHNbZV07dm9pZCAwPT09bltpLnV1aWRdJiYobltpLnV1aWRdPXIucGFyc2UoaSkpLHQucHVzaChuW2kudXVpZF0pfWlbby51dWlkXT10fWVsc2Ugdm9pZCAwPT09bltvLnV1aWRdJiYobltvLnV1aWRdPXIucGFyc2UobykpLGlbby51dWlkXT1uW28udXVpZF19fXJldHVybiBpfXBhcnNlQW5pbWF0aW9ucyh0KXtjb25zdCBlPXt9O2lmKHZvaWQgMCE9PXQpZm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IGk9RzZ0LnBhcnNlKHRbbl0pO2VbaS51dWlkXT1pfXJldHVybiBlfXBhcnNlSW1hZ2VzKHQsZSl7Y29uc3Qgbj10aGlzLGk9e307bGV0IHI7ZnVuY3Rpb24gbyh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpe2NvbnN0IGU9dDtyZXR1cm4oZnVuY3Rpb24gaSh0KXtyZXR1cm4gbi5tYW5hZ2VyLml0ZW1TdGFydCh0KSxyLmxvYWQodCwoZnVuY3Rpb24oKXtuLm1hbmFnZXIuaXRlbUVuZCh0KX0pLHZvaWQgMCwoZnVuY3Rpb24oKXtuLm1hbmFnZXIuaXRlbUVycm9yKHQpLG4ubWFuYWdlci5pdGVtRW5kKHQpfSkpfSkoL14oXC9cLyl8KFthLXpdKzooXC9cLyk/KS9pLnRlc3QoZSk/ZTpuLnJlc291cmNlUGF0aCtlKX1yZXR1cm4gdC5kYXRhP3tkYXRhOmQxdCh0LnR5cGUsdC5kYXRhKSx3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodH06bnVsbH1pZih2b2lkIDAhPT10JiZ0Lmxlbmd0aD4wKXtjb25zdCBuPW5ldyBZNnQoZSk7cj1uZXcgSjZ0KG4pLHIuc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbik7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0scj1uLnVybDtpZihBcnJheS5pc0FycmF5KHIpKXtpW24udXVpZF09W107Zm9yKGxldCB0PTAsZT1yLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPW8oclt0XSk7bnVsbCE9PWUmJihlIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudD9pW24udXVpZF0ucHVzaChlKTppW24udXVpZF0ucHVzaChuZXcgTTN0KGUuZGF0YSxlLndpZHRoLGUuaGVpZ2h0KSkpfX1lbHNle2NvbnN0IHQ9byhuLnVybCk7bnVsbCE9PXQmJihpW24udXVpZF09dCl9fX1yZXR1cm4gaX1hc3luYyBwYXJzZUltYWdlc0FzeW5jKHQpe2NvbnN0IGU9dGhpcyxuPXt9O2xldCBpO2FzeW5jIGZ1bmN0aW9uIHIodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtjb25zdCBuPXQscj0vXihcL1wvKXwoW2Etel0rOihcL1wvKT8pL2kudGVzdChuKT9uOmUucmVzb3VyY2VQYXRoK247cmV0dXJuIGF3YWl0IGkubG9hZEFzeW5jKHIpfXJldHVybiB0LmRhdGE/e2RhdGE6ZDF0KHQudHlwZSx0LmRhdGEpLHdpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVpZ2h0fTpudWxsfWlmKHZvaWQgMCE9PXQmJnQubGVuZ3RoPjApe2k9bmV3IEo2dCh0aGlzLm1hbmFnZXIpLGkuc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbik7Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSsrKXtjb25zdCBpPXRbZV0sbz1pLnVybDtpZihBcnJheS5pc0FycmF5KG8pKXtuW2kudXVpZF09W107Zm9yKGxldCB0PTAsZT1vLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPW9bdF0sYT1hd2FpdCByKGUpO251bGwhPT1hJiYoYSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQ/bltpLnV1aWRdLnB1c2goYSk6bltpLnV1aWRdLnB1c2gobmV3IE0zdChhLmRhdGEsYS53aWR0aCxhLmhlaWdodCkpKX19ZWxzZXtjb25zdCB0PWF3YWl0IHIoaS51cmwpO251bGwhPT10JiYobltpLnV1aWRdPXQpfX19cmV0dXJuIG59cGFyc2VUZXh0dXJlcyh0LGUpe2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/dDooY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3RMb2FkZXIucGFyc2VUZXh0dXJlOiBDb25zdGFudCBzaG91bGQgYmUgaW4gbnVtZXJpYyBmb3JtLiIsdCksZVt0XSl9Y29uc3QgaT17fTtpZih2b2lkIDAhPT10KWZvcihsZXQgcj0wLG89dC5sZW5ndGg7cjxvO3IrKyl7Y29uc3Qgbz10W3JdO2xldCBhO3ZvaWQgMD09PW8uaW1hZ2UmJmNvbnNvbGUud2FybignVEhSRUUuT2JqZWN0TG9hZGVyOiBObyAiaW1hZ2UiIHNwZWNpZmllZCBmb3InLG8udXVpZCksdm9pZCAwPT09ZVtvLmltYWdlXSYmY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3RMb2FkZXI6IFVuZGVmaW5lZCBpbWFnZSIsby5pbWFnZSk7Y29uc3Qgcz1lW28uaW1hZ2VdO0FycmF5LmlzQXJyYXkocyk/KGE9bmV3ICQxdChzKSw2PT09cy5sZW5ndGgmJihhLm5lZWRzVXBkYXRlPSEwKSk6KGE9cyYmcy5kYXRhP25ldyBNM3Qocy5kYXRhLHMud2lkdGgscy5oZWlnaHQpOm5ldyBiSnQocykscyYmKGEubmVlZHNVcGRhdGU9ITApKSxhLnV1aWQ9by51dWlkLHZvaWQgMCE9PW8ubmFtZSYmKGEubmFtZT1vLm5hbWUpLHZvaWQgMCE9PW8ubWFwcGluZyYmKGEubWFwcGluZz1uKG8ubWFwcGluZyxrOXQpKSx2b2lkIDAhPT1vLm9mZnNldCYmYS5vZmZzZXQuZnJvbUFycmF5KG8ub2Zmc2V0KSx2b2lkIDAhPT1vLnJlcGVhdCYmYS5yZXBlYXQuZnJvbUFycmF5KG8ucmVwZWF0KSx2b2lkIDAhPT1vLmNlbnRlciYmYS5jZW50ZXIuZnJvbUFycmF5KG8uY2VudGVyKSx2b2lkIDAhPT1vLnJvdGF0aW9uJiYoYS5yb3RhdGlvbj1vLnJvdGF0aW9uKSx2b2lkIDAhPT1vLndyYXAmJihhLndyYXBTPW4oby53cmFwWzBdLEw5dCksYS53cmFwVD1uKG8ud3JhcFsxXSxMOXQpKSx2b2lkIDAhPT1vLmZvcm1hdCYmKGEuZm9ybWF0PW8uZm9ybWF0KSx2b2lkIDAhPT1vLnR5cGUmJihhLnR5cGU9by50eXBlKSx2b2lkIDAhPT1vLmVuY29kaW5nJiYoYS5lbmNvZGluZz1vLmVuY29kaW5nKSx2b2lkIDAhPT1vLm1pbkZpbHRlciYmKGEubWluRmlsdGVyPW4oby5taW5GaWx0ZXIsUDl0KSksdm9pZCAwIT09by5tYWdGaWx0ZXImJihhLm1hZ0ZpbHRlcj1uKG8ubWFnRmlsdGVyLFA5dCkpLHZvaWQgMCE9PW8uYW5pc290cm9weSYmKGEuYW5pc290cm9weT1vLmFuaXNvdHJvcHkpLHZvaWQgMCE9PW8uZmxpcFkmJihhLmZsaXBZPW8uZmxpcFkpLHZvaWQgMCE9PW8ucHJlbXVsdGlwbHlBbHBoYSYmKGEucHJlbXVsdGlwbHlBbHBoYT1vLnByZW11bHRpcGx5QWxwaGEpLHZvaWQgMCE9PW8udW5wYWNrQWxpZ25tZW50JiYoYS51bnBhY2tBbGlnbm1lbnQ9by51bnBhY2tBbGlnbm1lbnQpLGlbby51dWlkXT1hfXJldHVybiBpfXBhcnNlT2JqZWN0KHQsZSxuLGkscil7bGV0IG8sYSxzO2Z1bmN0aW9uIGwodCl7cmV0dXJuIHZvaWQgMD09PWVbdF0mJmNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyOiBVbmRlZmluZWQgZ2VvbWV0cnkiLHQpLGVbdF19ZnVuY3Rpb24gYyh0KXtpZih2b2lkIDAhPT10KXtpZihBcnJheS5pc0FycmF5KHQpKXtjb25zdCBlPVtdO2ZvcihsZXQgaT0wLHI9dC5sZW5ndGg7aTxyO2krKyl7Y29uc3Qgcj10W2ldO3ZvaWQgMD09PW5bcl0mJmNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyOiBVbmRlZmluZWQgbWF0ZXJpYWwiLHIpLGUucHVzaChuW3JdKX1yZXR1cm4gZX1yZXR1cm4gdm9pZCAwPT09blt0XSYmY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3RMb2FkZXI6IFVuZGVmaW5lZCBtYXRlcmlhbCIsdCksblt0XX19ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdm9pZCAwPT09aVt0XSYmY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3RMb2FkZXI6IFVuZGVmaW5lZCB0ZXh0dXJlIix0KSxpW3RdfXN3aXRjaCh0LnR5cGUpe2Nhc2UiU2NlbmUiOm89bmV3IFg1dCx2b2lkIDAhPT10LmJhY2tncm91bmQmJihvLmJhY2tncm91bmQ9TnVtYmVyLmlzSW50ZWdlcih0LmJhY2tncm91bmQpP25ldyAkUXQodC5iYWNrZ3JvdW5kKTp1KHQuYmFja2dyb3VuZCkpLHZvaWQgMCE9PXQuZW52aXJvbm1lbnQmJihvLmVudmlyb25tZW50PXUodC5lbnZpcm9ubWVudCkpLHZvaWQgMCE9PXQuZm9nJiYoIkZvZyI9PT10LmZvZy50eXBlP28uZm9nPW5ldyBZNXQodC5mb2cuY29sb3IsdC5mb2cubmVhcix0LmZvZy5mYXIpOiJGb2dFeHAyIj09PXQuZm9nLnR5cGUmJihvLmZvZz1uZXcgcTV0KHQuZm9nLmNvbG9yLHQuZm9nLmRlbnNpdHkpKSk7YnJlYWs7Y2FzZSJQZXJzcGVjdGl2ZUNhbWVyYSI6bz1uZXcgcTF0KHQuZm92LHQuYXNwZWN0LHQubmVhcix0LmZhciksdm9pZCAwIT09dC5mb2N1cyYmKG8uZm9jdXM9dC5mb2N1cyksdm9pZCAwIT09dC56b29tJiYoby56b29tPXQuem9vbSksdm9pZCAwIT09dC5maWxtR2F1Z2UmJihvLmZpbG1HYXVnZT10LmZpbG1HYXVnZSksdm9pZCAwIT09dC5maWxtT2Zmc2V0JiYoby5maWxtT2Zmc2V0PXQuZmlsbU9mZnNldCksdm9pZCAwIT09dC52aWV3JiYoby52aWV3PU9iamVjdC5hc3NpZ24oe30sdC52aWV3KSk7YnJlYWs7Y2FzZSJPcnRob2dyYXBoaWNDYW1lcmEiOm89bmV3IGcwdCh0LmxlZnQsdC5yaWdodCx0LnRvcCx0LmJvdHRvbSx0Lm5lYXIsdC5mYXIpLHZvaWQgMCE9PXQuem9vbSYmKG8uem9vbT10Lnpvb20pLHZvaWQgMCE9PXQudmlldyYmKG8udmlldz1PYmplY3QuYXNzaWduKHt9LHQudmlldykpO2JyZWFrO2Nhc2UiQW1iaWVudExpZ2h0IjpvPW5ldyBiOXQodC5jb2xvcix0LmludGVuc2l0eSk7YnJlYWs7Y2FzZSJEaXJlY3Rpb25hbExpZ2h0IjpvPW5ldyB2OXQodC5jb2xvcix0LmludGVuc2l0eSk7YnJlYWs7Y2FzZSJQb2ludExpZ2h0IjpvPW5ldyBfOXQodC5jb2xvcix0LmludGVuc2l0eSx0LmRpc3RhbmNlLHQuZGVjYXkpO2JyZWFrO2Nhc2UiUmVjdEFyZWFMaWdodCI6bz1uZXcgeDl0KHQuY29sb3IsdC5pbnRlbnNpdHksdC53aWR0aCx0LmhlaWdodCk7YnJlYWs7Y2FzZSJTcG90TGlnaHQiOm89bmV3IGQ5dCh0LmNvbG9yLHQuaW50ZW5zaXR5LHQuZGlzdGFuY2UsdC5hbmdsZSx0LnBlbnVtYnJhLHQuZGVjYXkpO2JyZWFrO2Nhc2UiSGVtaXNwaGVyZUxpZ2h0IjpvPW5ldyBhOXQodC5jb2xvcix0Lmdyb3VuZENvbG9yLHQuaW50ZW5zaXR5KTticmVhaztjYXNlIkxpZ2h0UHJvYmUiOm89KG5ldyBTOXQpLmZyb21KU09OKHQpO2JyZWFrO2Nhc2UiU2tpbm5lZE1lc2giOmE9bCh0Lmdlb21ldHJ5KSxzPWModC5tYXRlcmlhbCksbz1uZXcgdzN0KGEscyksdm9pZCAwIT09dC5iaW5kTW9kZSYmKG8uYmluZE1vZGU9dC5iaW5kTW9kZSksdm9pZCAwIT09dC5iaW5kTWF0cml4JiZvLmJpbmRNYXRyaXguZnJvbUFycmF5KHQuYmluZE1hdHJpeCksdm9pZCAwIT09dC5za2VsZXRvbiYmKG8uc2tlbGV0b249dC5za2VsZXRvbik7YnJlYWs7Y2FzZSJNZXNoIjphPWwodC5nZW9tZXRyeSkscz1jKHQubWF0ZXJpYWwpLG89bmV3IEIxdChhLHMpO2JyZWFrO2Nhc2UiSW5zdGFuY2VkTWVzaCI6YT1sKHQuZ2VvbWV0cnkpLHM9Yyh0Lm1hdGVyaWFsKTtjb25zdCBlPXQuaW5zdGFuY2VNYXRyaXgsbj10Lmluc3RhbmNlQ29sb3I7bz1uZXcgTjN0KGEscyx0LmNvdW50KSxvLmluc3RhbmNlTWF0cml4PW5ldyBRUXQobmV3IEZsb2F0MzJBcnJheShlLmFycmF5KSwxNiksdm9pZCAwIT09biYmKG8uaW5zdGFuY2VDb2xvcj1uZXcgUVF0KG5ldyBGbG9hdDMyQXJyYXkobi5hcnJheSksbi5pdGVtU2l6ZSkpO2JyZWFrO2Nhc2UiTE9EIjpvPW5ldyBnM3Q7YnJlYWs7Y2FzZSJMaW5lIjpvPW5ldyBIM3QobCh0Lmdlb21ldHJ5KSxjKHQubWF0ZXJpYWwpKTticmVhaztjYXNlIkxpbmVMb29wIjpvPW5ldyBqM3QobCh0Lmdlb21ldHJ5KSxjKHQubWF0ZXJpYWwpKTticmVhaztjYXNlIkxpbmVTZWdtZW50cyI6bz1uZXcgVTN0KGwodC5nZW9tZXRyeSksYyh0Lm1hdGVyaWFsKSk7YnJlYWs7Y2FzZSJQb2ludENsb3VkIjpjYXNlIlBvaW50cyI6bz1uZXcgJDN0KGwodC5nZW9tZXRyeSksYyh0Lm1hdGVyaWFsKSk7YnJlYWs7Y2FzZSJTcHJpdGUiOm89bmV3IGQzdChjKHQubWF0ZXJpYWwpKTticmVhaztjYXNlIkdyb3VwIjpvPW5ldyBINXQ7YnJlYWs7Y2FzZSJCb25lIjpvPW5ldyBTM3Q7YnJlYWs7ZGVmYXVsdDpvPW5ldyBrUXR9aWYoby51dWlkPXQudXVpZCx2b2lkIDAhPT10Lm5hbWUmJihvLm5hbWU9dC5uYW1lKSx2b2lkIDAhPT10Lm1hdHJpeD8oby5tYXRyaXguZnJvbUFycmF5KHQubWF0cml4KSx2b2lkIDAhPT10Lm1hdHJpeEF1dG9VcGRhdGUmJihvLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlKSxvLm1hdHJpeEF1dG9VcGRhdGUmJm8ubWF0cml4LmRlY29tcG9zZShvLnBvc2l0aW9uLG8ucXVhdGVybmlvbixvLnNjYWxlKSk6KHZvaWQgMCE9PXQucG9zaXRpb24mJm8ucG9zaXRpb24uZnJvbUFycmF5KHQucG9zaXRpb24pLHZvaWQgMCE9PXQucm90YXRpb24mJm8ucm90YXRpb24uZnJvbUFycmF5KHQucm90YXRpb24pLHZvaWQgMCE9PXQucXVhdGVybmlvbiYmby5xdWF0ZXJuaW9uLmZyb21BcnJheSh0LnF1YXRlcm5pb24pLHZvaWQgMCE9PXQuc2NhbGUmJm8uc2NhbGUuZnJvbUFycmF5KHQuc2NhbGUpKSx2b2lkIDAhPT10LmNhc3RTaGFkb3cmJihvLmNhc3RTaGFkb3c9dC5jYXN0U2hhZG93KSx2b2lkIDAhPT10LnJlY2VpdmVTaGFkb3cmJihvLnJlY2VpdmVTaGFkb3c9dC5yZWNlaXZlU2hhZG93KSx0LnNoYWRvdyYmKHZvaWQgMCE9PXQuc2hhZG93LmJpYXMmJihvLnNoYWRvdy5iaWFzPXQuc2hhZG93LmJpYXMpLHZvaWQgMCE9PXQuc2hhZG93Lm5vcm1hbEJpYXMmJihvLnNoYWRvdy5ub3JtYWxCaWFzPXQuc2hhZG93Lm5vcm1hbEJpYXMpLHZvaWQgMCE9PXQuc2hhZG93LnJhZGl1cyYmKG8uc2hhZG93LnJhZGl1cz10LnNoYWRvdy5yYWRpdXMpLHZvaWQgMCE9PXQuc2hhZG93Lm1hcFNpemUmJm8uc2hhZG93Lm1hcFNpemUuZnJvbUFycmF5KHQuc2hhZG93Lm1hcFNpemUpLHZvaWQgMCE9PXQuc2hhZG93LmNhbWVyYSYmKG8uc2hhZG93LmNhbWVyYT10aGlzLnBhcnNlT2JqZWN0KHQuc2hhZG93LmNhbWVyYSkpKSx2b2lkIDAhPT10LnZpc2libGUmJihvLnZpc2libGU9dC52aXNpYmxlKSx2b2lkIDAhPT10LmZydXN0dW1DdWxsZWQmJihvLmZydXN0dW1DdWxsZWQ9dC5mcnVzdHVtQ3VsbGVkKSx2b2lkIDAhPT10LnJlbmRlck9yZGVyJiYoby5yZW5kZXJPcmRlcj10LnJlbmRlck9yZGVyKSx2b2lkIDAhPT10LnVzZXJEYXRhJiYoby51c2VyRGF0YT10LnVzZXJEYXRhKSx2b2lkIDAhPT10LmxheWVycyYmKG8ubGF5ZXJzLm1hc2s9dC5sYXllcnMpLHZvaWQgMCE9PXQuY2hpbGRyZW4pe2NvbnN0IGE9dC5jaGlsZHJlbjtmb3IobGV0IHQ9MDt0PGEubGVuZ3RoO3QrKylvLmFkZCh0aGlzLnBhcnNlT2JqZWN0KGFbdF0sZSxuLGkscikpfWlmKHZvaWQgMCE9PXQuYW5pbWF0aW9ucyl7Y29uc3QgZT10LmFuaW1hdGlvbnM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspby5hbmltYXRpb25zLnB1c2gocltlW3RdXSl9aWYoIkxPRCI9PT10LnR5cGUpe3ZvaWQgMCE9PXQuYXV0b1VwZGF0ZSYmKG8uYXV0b1VwZGF0ZT10LmF1dG9VcGRhdGUpO2NvbnN0IGU9dC5sZXZlbHM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XSxpPW8uZ2V0T2JqZWN0QnlQcm9wZXJ0eSgidXVpZCIsbi5vYmplY3QpO3ZvaWQgMCE9PWkmJm8uYWRkTGV2ZWwoaSxuLmRpc3RhbmNlKX19cmV0dXJuIG99YmluZFNrZWxldG9ucyh0LGUpezAhPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgmJnQudHJhdmVyc2UoKGZ1bmN0aW9uKHQpe2lmKCEwPT09dC5pc1NraW5uZWRNZXNoJiZ2b2lkIDAhPT10LnNrZWxldG9uKXtjb25zdCBuPWVbdC5za2VsZXRvbl07dm9pZCAwPT09bj9jb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdExvYWRlcjogTm8gc2tlbGV0b24gZm91bmQgd2l0aCBVVUlEOiIsdC5za2VsZXRvbik6dC5iaW5kKG4sdC5iaW5kTWF0cml4KX19KSl9c2V0VGV4dHVyZVBhdGgodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyOiAuc2V0VGV4dHVyZVBhdGgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRSZXNvdXJjZVBhdGgoKS4iKSx0aGlzLnNldFJlc291cmNlUGF0aCh0KX19LE9iamVjdFNwYWNlTm9ybWFsTWFwOjEsT2N0YWhlZHJvbkJ1ZmZlckdlb21ldHJ5Omw2dCxPY3RhaGVkcm9uR2VvbWV0cnk6bDZ0LE9uZUZhY3RvcjoyMDEsT25lTWludXNEc3RBbHBoYUZhY3RvcjoyMDcsT25lTWludXNEc3RDb2xvckZhY3RvcjoyMDksT25lTWludXNTcmNBbHBoYUZhY3RvcjoyMDUsT25lTWludXNTcmNDb2xvckZhY3RvcjoyMDMsT3J0aG9ncmFwaGljQ2FtZXJhOmcwdCxQQ0ZTaGFkb3dNYXA6MSxQQ0ZTb2Z0U2hhZG93TWFwOjIsUE1SRU1HZW5lcmF0b3I6UjB0LFBhcmFtZXRyaWNCdWZmZXJHZW9tZXRyeTpjNnQsUGFyYW1ldHJpY0dlb21ldHJ5OmM2dCxQYXJ0aWNsZTpmdW5jdGlvbiBmN3QodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUGFydGljbGUgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5TcHJpdGUuIiksbmV3IGQzdCh0KX0sUGFydGljbGVCYXNpY01hdGVyaWFsOmZ1bmN0aW9uIG03dCh0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QYXJ0aWNsZUJhc2ljTWF0ZXJpYWwgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5Qb2ludHNNYXRlcmlhbC4iKSxuZXcgRzN0KHQpfSxQYXJ0aWNsZVN5c3RlbTpmdW5jdGlvbiBnN3QodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QYXJ0aWNsZVN5c3RlbSBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLlBvaW50cy4iKSxuZXcgJDN0KHQsZSl9LFBhcnRpY2xlU3lzdGVtTWF0ZXJpYWw6ZnVuY3Rpb24gXzd0KHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlBhcnRpY2xlU3lzdGVtTWF0ZXJpYWwgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5Qb2ludHNNYXRlcmlhbC4iKSxuZXcgRzN0KHQpfSxQYXRoOmk5dCxQZXJzcGVjdGl2ZUNhbWVyYTpxMXQsUGxhbmU6dDB0LFBsYW5lQnVmZmVyR2VvbWV0cnk6YTB0LFBsYW5lR2VvbWV0cnk6YTB0LFBsYW5lSGVscGVyOmNsYXNzIGV4dGVuZHMgSDN0e2NvbnN0cnVjdG9yKHQsZT0xLG49MTY3NzY5NjApe2NvbnN0IGk9bixyPW5ldyBiMXQ7ci5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KFsxLC0xLDEsLTEsMSwxLC0xLC0xLDEsMSwxLDEsLTEsMSwxLC0xLC0xLDEsMSwtMSwxLDEsMSwxLDAsMCwxLDAsMCwwXSwzKSksci5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxzdXBlcihyLG5ldyBJM3Qoe2NvbG9yOmksdG9uZU1hcHBlZDohMX0pKSx0aGlzLnR5cGU9IlBsYW5lSGVscGVyIix0aGlzLnBsYW5lPXQsdGhpcy5zaXplPWU7Y29uc3Qgbz1uZXcgYjF0O28uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdChbMSwxLDEsLTEsMSwxLC0xLC0xLDEsMSwxLDEsLTEsLTEsMSwxLC0xLDFdLDMpKSxvLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLHRoaXMuYWRkKG5ldyBCMXQobyxuZXcgS1F0KHtjb2xvcjppLG9wYWNpdHk6LjIsdHJhbnNwYXJlbnQ6ITAsZGVwdGhXcml0ZTohMSx0b25lTWFwcGVkOiExfSkpKX11cGRhdGVNYXRyaXhXb3JsZCh0KXtsZXQgZT0tdGhpcy5wbGFuZS5jb25zdGFudDtNYXRoLmFicyhlKTwxZS04JiYoZT0xZS04KSx0aGlzLnNjYWxlLnNldCguNSp0aGlzLnNpemUsLjUqdGhpcy5zaXplLGUpLHRoaXMuY2hpbGRyZW5bMF0ubWF0ZXJpYWwuc2lkZT1lPDA/MTowLHRoaXMubG9va0F0KHRoaXMucGxhbmUubm9ybWFsKSxzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KX19LFBvaW50Q2xvdWQ6ZnVuY3Rpb24geTd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUG9pbnRDbG91ZCBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLlBvaW50cy4iKSxuZXcgJDN0KHQsZSl9LFBvaW50Q2xvdWRNYXRlcmlhbDpmdW5jdGlvbiB2N3QodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUG9pbnRDbG91ZE1hdGVyaWFsIGhhcyBiZWVuIHJlbmFtZWQgdG8gVEhSRUUuUG9pbnRzTWF0ZXJpYWwuIiksbmV3IEczdCh0KX0sUG9pbnRMaWdodDpfOXQsUG9pbnRMaWdodEhlbHBlcjpjbGFzcyBleHRlbmRzIEIxdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IGQ2dChlLDQsMiksbmV3IEtRdCh7d2lyZWZyYW1lOiEwLGZvZzohMSx0b25lTWFwcGVkOiExfSkpLHRoaXMubGlnaHQ9dCx0aGlzLmxpZ2h0LnVwZGF0ZU1hdHJpeFdvcmxkKCksdGhpcy5jb2xvcj1uLHRoaXMudHlwZT0iUG9pbnRMaWdodEhlbHBlciIsdGhpcy5tYXRyaXg9dGhpcy5saWdodC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy51cGRhdGUoKX1kaXNwb3NlKCl7dGhpcy5nZW9tZXRyeS5kaXNwb3NlKCksdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCl9dXBkYXRlKCl7dm9pZCAwIT09dGhpcy5jb2xvcj90aGlzLm1hdGVyaWFsLmNvbG9yLnNldCh0aGlzLmNvbG9yKTp0aGlzLm1hdGVyaWFsLmNvbG9yLmNvcHkodGhpcy5saWdodC5jb2xvcil9fSxQb2ludHM6JDN0LFBvaW50c01hdGVyaWFsOkczdCxQb2xhckdyaWRIZWxwZXI6Y2xhc3MgZXh0ZW5kcyBVM3R7Y29uc3RydWN0b3IodD0xMCxlPTE2LG49OCxpPTY0LHI9NDQ3MzkyNCxvPTg5NDc4NDgpe3I9bmV3ICRRdChyKSxvPW5ldyAkUXQobyk7Y29uc3QgYT1bXSxzPVtdO2ZvcihsZXQgbj0wO248PWU7bisrKXtjb25zdCBpPW4vZSooMipNYXRoLlBJKSxsPU1hdGguc2luKGkpKnQsYz1NYXRoLmNvcyhpKSp0O2EucHVzaCgwLDAsMCksYS5wdXNoKGwsMCxjKTtjb25zdCB1PTEmbj9yOm87cy5wdXNoKHUucix1LmcsdS5iKSxzLnB1c2godS5yLHUuZyx1LmIpfWZvcihsZXQgZT0wO2U8PW47ZSsrKXtjb25zdCBsPTEmZT9yOm8sYz10LXQvbiplO2ZvcihsZXQgdD0wO3Q8aTt0Kyspe2xldCBlPXQvaSooMipNYXRoLlBJKSxuPU1hdGguc2luKGUpKmMscj1NYXRoLmNvcyhlKSpjO2EucHVzaChuLDAscikscy5wdXNoKGwucixsLmcsbC5iKSxlPSh0KzEpL2kqKDIqTWF0aC5QSSksbj1NYXRoLnNpbihlKSpjLHI9TWF0aC5jb3MoZSkqYyxhLnB1c2gobiwwLHIpLHMucHVzaChsLnIsbC5nLGwuYil9fWNvbnN0IGw9bmV3IGIxdDtsLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQoYSwzKSksbC5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgbDF0KHMsMykpLHN1cGVyKGwsbmV3IEkzdCh7dmVydGV4Q29sb3JzOiEwLHRvbmVNYXBwZWQ6ITF9KSksdGhpcy50eXBlPSJQb2xhckdyaWRIZWxwZXIifX0sUG9seWhlZHJvbkJ1ZmZlckdlb21ldHJ5OnI0dCxQb2x5aGVkcm9uR2VvbWV0cnk6cjR0LFBvc2l0aW9uYWxBdWRpbzpjbGFzcyBleHRlbmRzICQ5dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLnBhbm5lcj10aGlzLmNvbnRleHQuY3JlYXRlUGFubmVyKCksdGhpcy5wYW5uZXIucGFubmluZ01vZGVsPSJIUlRGIix0aGlzLnBhbm5lci5jb25uZWN0KHRoaXMuZ2Fpbil9Z2V0T3V0cHV0KCl7cmV0dXJuIHRoaXMucGFubmVyfWdldFJlZkRpc3RhbmNlKCl7cmV0dXJuIHRoaXMucGFubmVyLnJlZkRpc3RhbmNlfXNldFJlZkRpc3RhbmNlKHQpe3JldHVybiB0aGlzLnBhbm5lci5yZWZEaXN0YW5jZT10LHRoaXN9Z2V0Um9sbG9mZkZhY3Rvcigpe3JldHVybiB0aGlzLnBhbm5lci5yb2xsb2ZmRmFjdG9yfXNldFJvbGxvZmZGYWN0b3IodCl7cmV0dXJuIHRoaXMucGFubmVyLnJvbGxvZmZGYWN0b3I9dCx0aGlzfWdldERpc3RhbmNlTW9kZWwoKXtyZXR1cm4gdGhpcy5wYW5uZXIuZGlzdGFuY2VNb2RlbH1zZXREaXN0YW5jZU1vZGVsKHQpe3JldHVybiB0aGlzLnBhbm5lci5kaXN0YW5jZU1vZGVsPXQsdGhpc31nZXRNYXhEaXN0YW5jZSgpe3JldHVybiB0aGlzLnBhbm5lci5tYXhEaXN0YW5jZX1zZXRNYXhEaXN0YW5jZSh0KXtyZXR1cm4gdGhpcy5wYW5uZXIubWF4RGlzdGFuY2U9dCx0aGlzfXNldERpcmVjdGlvbmFsQ29uZSh0LGUsbil7cmV0dXJuIHRoaXMucGFubmVyLmNvbmVJbm5lckFuZ2xlPXQsdGhpcy5wYW5uZXIuY29uZU91dGVyQW5nbGU9ZSx0aGlzLnBhbm5lci5jb25lT3V0ZXJHYWluPW4sdGhpc311cGRhdGVNYXRyaXhXb3JsZCh0KXtpZihzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSwhMD09PXRoaXMuaGFzUGxheWJhY2tDb250cm9sJiYhMT09PXRoaXMuaXNQbGF5aW5nKXJldHVybjt0aGlzLm1hdHJpeFdvcmxkLmRlY29tcG9zZShLOXQsWjl0LEo5dCksUTl0LnNldCgwLDAsMSkuYXBwbHlRdWF0ZXJuaW9uKFo5dCk7Y29uc3QgZT10aGlzLnBhbm5lcjtpZihlLnBvc2l0aW9uWCl7Y29uc3QgdD10aGlzLmNvbnRleHQuY3VycmVudFRpbWUrdGhpcy5saXN0ZW5lci50aW1lRGVsdGE7ZS5wb3NpdGlvblgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoSzl0LngsdCksZS5wb3NpdGlvblkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoSzl0LnksdCksZS5wb3NpdGlvbloubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoSzl0LnosdCksZS5vcmllbnRhdGlvblgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoUTl0LngsdCksZS5vcmllbnRhdGlvblkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoUTl0LnksdCksZS5vcmllbnRhdGlvbloubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoUTl0LnosdCl9ZWxzZSBlLnNldFBvc2l0aW9uKEs5dC54LEs5dC55LEs5dC56KSxlLnNldE9yaWVudGF0aW9uKFE5dC54LFE5dC55LFE5dC56KX19LFByb3BlcnR5QmluZGluZzpoOHQsUHJvcGVydHlNaXhlcjplOHQsUXVhZHJhdGljQmV6aWVyQ3VydmU6QzR0LFF1YWRyYXRpY0JlemllckN1cnZlMzpBNHQsUXVhdGVybmlvbjpUSnQsUXVhdGVybmlvbktleWZyYW1lVHJhY2s6VjZ0LFF1YXRlcm5pb25MaW5lYXJJbnRlcnBvbGFudDpGNnQsUkVWSVNJT046Qkt0LFJHQkFEZXB0aFBhY2tpbmc6MzIwMSxSR0JBRm9ybWF0OmhadCxSR0JBSW50ZWdlckZvcm1hdDoxMDMzLFJHQkFfQVNUQ18xMHgxMF9Gb3JtYXQ6Mzc4MTksUkdCQV9BU1RDXzEweDVfRm9ybWF0OjM3ODE2LFJHQkFfQVNUQ18xMHg2X0Zvcm1hdDozNzgxNyxSR0JBX0FTVENfMTB4OF9Gb3JtYXQ6Mzc4MTgsUkdCQV9BU1RDXzEyeDEwX0Zvcm1hdDozNzgyMCxSR0JBX0FTVENfMTJ4MTJfRm9ybWF0OjM3ODIxLFJHQkFfQVNUQ180eDRfRm9ybWF0OjM3ODA4LFJHQkFfQVNUQ181eDRfRm9ybWF0OjM3ODA5LFJHQkFfQVNUQ181eDVfRm9ybWF0OjM3ODEwLFJHQkFfQVNUQ182eDVfRm9ybWF0OjM3ODExLFJHQkFfQVNUQ182eDZfRm9ybWF0OjM3ODEyLFJHQkFfQVNUQ184eDVfRm9ybWF0OjM3ODEzLFJHQkFfQVNUQ184eDZfRm9ybWF0OjM3ODE0LFJHQkFfQVNUQ184eDhfRm9ybWF0OjM3ODE1LFJHQkFfQlBUQ19Gb3JtYXQ6MzY0OTIsUkdCQV9FVEMyX0VBQ19Gb3JtYXQ6U1p0LFJHQkFfUFZSVENfMkJQUFYxX0Zvcm1hdDp4WnQsUkdCQV9QVlJUQ180QlBQVjFfRm9ybWF0OmJadCxSR0JBX1MzVENfRFhUMV9Gb3JtYXQ6bVp0LFJHQkFfUzNUQ19EWFQzX0Zvcm1hdDpnWnQsUkdCQV9TM1RDX0RYVDVfRm9ybWF0Ol9adCxSR0JERW5jb2Rpbmc6Qlp0LFJHQkVFbmNvZGluZzpPWnQsUkdCRUZvcm1hdDoxMDIzLFJHQkZvcm1hdDp1WnQsUkdCSW50ZWdlckZvcm1hdDoxMDMyLFJHQk0xNkVuY29kaW5nOkRadCxSR0JNN0VuY29kaW5nOnpadCxSR0JfRVRDMV9Gb3JtYXQ6MzYxOTYsUkdCX0VUQzJfRm9ybWF0OndadCxSR0JfUFZSVENfMkJQUFYxX0Zvcm1hdDp2WnQsUkdCX1BWUlRDXzRCUFBWMV9Gb3JtYXQ6eVp0LFJHQl9TM1RDX0RYVDFfRm9ybWF0OmZadCxSR0Zvcm1hdDoxMDMwLFJHSW50ZWdlckZvcm1hdDoxMDMxLFJhd1NoYWRlck1hdGVyaWFsOl8wdCxSYXk6aVF0LFJheWNhc3RlcjpjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbj0wLGk9MS8wKXt0aGlzLnJheT1uZXcgaVF0KHQsZSksdGhpcy5uZWFyPW4sdGhpcy5mYXI9aSx0aGlzLmNhbWVyYT1udWxsLHRoaXMubGF5ZXJzPW5ldyBtUXQsdGhpcy5wYXJhbXM9e01lc2g6e30sTGluZTp7dGhyZXNob2xkOjF9LExPRDp7fSxQb2ludHM6e3RocmVzaG9sZDoxfSxTcHJpdGU6e319fXNldCh0LGUpe3RoaXMucmF5LnNldCh0LGUpfXNldEZyb21DYW1lcmEodCxlKXtlJiZlLmlzUGVyc3BlY3RpdmVDYW1lcmE/KHRoaXMucmF5Lm9yaWdpbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oZS5tYXRyaXhXb3JsZCksdGhpcy5yYXkuZGlyZWN0aW9uLnNldCh0LngsdC55LC41KS51bnByb2plY3QoZSkuc3ViKHRoaXMucmF5Lm9yaWdpbikubm9ybWFsaXplKCksdGhpcy5jYW1lcmE9ZSk6ZSYmZS5pc09ydGhvZ3JhcGhpY0NhbWVyYT8odGhpcy5yYXkub3JpZ2luLnNldCh0LngsdC55LChlLm5lYXIrZS5mYXIpLyhlLm5lYXItZS5mYXIpKS51bnByb2plY3QoZSksdGhpcy5yYXkuZGlyZWN0aW9uLnNldCgwLDAsLTEpLnRyYW5zZm9ybURpcmVjdGlvbihlLm1hdHJpeFdvcmxkKSx0aGlzLmNhbWVyYT1lKTpjb25zb2xlLmVycm9yKCJUSFJFRS5SYXljYXN0ZXI6IFVuc3VwcG9ydGVkIGNhbWVyYSB0eXBlOiAiK2UudHlwZSl9aW50ZXJzZWN0T2JqZWN0KHQsZT0hMSxuPVtdKXtyZXR1cm4gdjh0KHQsdGhpcyxuLGUpLG4uc29ydCh5OHQpLG59aW50ZXJzZWN0T2JqZWN0cyh0LGU9ITEsbj1bXSl7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKXY4dCh0W2ldLHRoaXMsbixlKTtyZXR1cm4gbi5zb3J0KHk4dCksbn19LFJlY3RBcmVhTGlnaHQ6eDl0LFJlZEZvcm1hdDoxMDI4LFJlZEludGVnZXJGb3JtYXQ6MTAyOSxSZWluaGFyZFRvbmVNYXBwaW5nOjIsUmVwZWF0V3JhcHBpbmc6JEt0LFJlcGxhY2VTdGVuY2lsT3A6NzY4MSxSZXZlcnNlU3VidHJhY3RFcXVhdGlvbjoxMDIsUmluZ0J1ZmZlckdlb21ldHJ5OnU2dCxSaW5nR2VvbWV0cnk6dTZ0LFNSR0I4X0FMUEhBOF9BU1RDXzEweDEwX0Zvcm1hdDozNzg1MSxTUkdCOF9BTFBIQThfQVNUQ18xMHg1X0Zvcm1hdDozNzg0OCxTUkdCOF9BTFBIQThfQVNUQ18xMHg2X0Zvcm1hdDozNzg0OSxTUkdCOF9BTFBIQThfQVNUQ18xMHg4X0Zvcm1hdDozNzg1MCxTUkdCOF9BTFBIQThfQVNUQ18xMngxMF9Gb3JtYXQ6Mzc4NTIsU1JHQjhfQUxQSEE4X0FTVENfMTJ4MTJfRm9ybWF0OjM3ODUzLFNSR0I4X0FMUEhBOF9BU1RDXzR4NF9Gb3JtYXQ6Mzc4NDAsU1JHQjhfQUxQSEE4X0FTVENfNXg0X0Zvcm1hdDozNzg0MSxTUkdCOF9BTFBIQThfQVNUQ181eDVfRm9ybWF0OjM3ODQyLFNSR0I4X0FMUEhBOF9BU1RDXzZ4NV9Gb3JtYXQ6Mzc4NDMsU1JHQjhfQUxQSEE4X0FTVENfNng2X0Zvcm1hdDozNzg0NCxTUkdCOF9BTFBIQThfQVNUQ184eDVfRm9ybWF0OjM3ODQ1LFNSR0I4X0FMUEhBOF9BU1RDXzh4Nl9Gb3JtYXQ6Mzc4NDYsU1JHQjhfQUxQSEE4X0FTVENfOHg4X0Zvcm1hdDozNzg0NyxTY2VuZTpYNXQsU2NlbmVVdGlsczpaOHQsU2hhZGVyQ2h1bms6czB0LFNoYWRlckxpYjpjMHQsU2hhZGVyTWF0ZXJpYWw6RzF0LFNoYWRvd01hdGVyaWFsOng2dCxTaGFwZTpyOXQsU2hhcGVCdWZmZXJHZW9tZXRyeTpoNnQsU2hhcGVHZW9tZXRyeTpoNnQsU2hhcGVQYXRoOkk5dCxTaGFwZVV0aWxzOmU2dCxTaG9ydFR5cGU6MTAxMSxTa2VsZXRvbjpDM3QsU2tlbGV0b25IZWxwZXI6UDh0LFNraW5uZWRNZXNoOnczdCxTbW9vdGhTaGFkaW5nOjIsU3BoZXJlOiRKdCxTcGhlcmVCdWZmZXJHZW9tZXRyeTpkNnQsU3BoZXJlR2VvbWV0cnk6ZDZ0LFNwaGVyaWNhbDpiOHQsU3BoZXJpY2FsSGFybW9uaWNzMzp3OXQsU3BsaW5lQ3VydmU6azR0LFNwb3RMaWdodDpkOXQsU3BvdExpZ2h0SGVscGVyOmNsYXNzIGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLmxpZ2h0PXQsdGhpcy5saWdodC51cGRhdGVNYXRyaXhXb3JsZCgpLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuY29sb3I9ZTtjb25zdCBuPW5ldyBiMXQsaT1bMCwwLDAsMCwwLDEsMCwwLDAsMSwwLDEsMCwwLDAsLTEsMCwxLDAsMCwwLDAsMSwxLDAsMCwwLDAsLTEsMV07Zm9yKGxldCB0PTAsZT0xLG49MzI7dDxuO3QrKyxlKyspe2NvbnN0IHI9dC9uKk1hdGguUEkqMixvPWUvbipNYXRoLlBJKjI7aS5wdXNoKE1hdGguY29zKHIpLE1hdGguc2luKHIpLDEsTWF0aC5jb3MobyksTWF0aC5zaW4obyksMSl9bi5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KGksMykpO2NvbnN0IHI9bmV3IEkzdCh7Zm9nOiExLHRvbmVNYXBwZWQ6ITF9KTt0aGlzLmNvbmU9bmV3IFUzdChuLHIpLHRoaXMuYWRkKHRoaXMuY29uZSksdGhpcy51cGRhdGUoKX1kaXNwb3NlKCl7dGhpcy5jb25lLmdlb21ldHJ5LmRpc3Bvc2UoKSx0aGlzLmNvbmUubWF0ZXJpYWwuZGlzcG9zZSgpfXVwZGF0ZSgpe3RoaXMubGlnaHQudXBkYXRlTWF0cml4V29ybGQoKTtjb25zdCB0PXRoaXMubGlnaHQuZGlzdGFuY2U/dGhpcy5saWdodC5kaXN0YW5jZToxZTMsZT10Kk1hdGgudGFuKHRoaXMubGlnaHQuYW5nbGUpO3RoaXMuY29uZS5zY2FsZS5zZXQoZSxlLHQpLEM4dC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5saWdodC50YXJnZXQubWF0cml4V29ybGQpLHRoaXMuY29uZS5sb29rQXQoQzh0KSx2b2lkIDAhPT10aGlzLmNvbG9yP3RoaXMuY29uZS5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvcik6dGhpcy5jb25lLm1hdGVyaWFsLmNvbG9yLmNvcHkodGhpcy5saWdodC5jb2xvcil9fSxTcHJpdGU6ZDN0LFNwcml0ZU1hdGVyaWFsOko1dCxTcmNBbHBoYUZhY3RvcjoyMDQsU3JjQWxwaGFTYXR1cmF0ZUZhY3RvcjoyMTAsU3JjQ29sb3JGYWN0b3I6MjAyLFN0YXRpY0NvcHlVc2FnZTozNTA0NixTdGF0aWNEcmF3VXNhZ2U6Rlp0LFN0YXRpY1JlYWRVc2FnZTozNTA0NSxTdGVyZW9DYW1lcmE6Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnR5cGU9IlN0ZXJlb0NhbWVyYSIsdGhpcy5hc3BlY3Q9MSx0aGlzLmV5ZVNlcD0uMDY0LHRoaXMuY2FtZXJhTD1uZXcgcTF0LHRoaXMuY2FtZXJhTC5sYXllcnMuZW5hYmxlKDEpLHRoaXMuY2FtZXJhTC5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuY2FtZXJhUj1uZXcgcTF0LHRoaXMuY2FtZXJhUi5sYXllcnMuZW5hYmxlKDIpLHRoaXMuY2FtZXJhUi5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX2NhY2hlPXtmb2N1czpudWxsLGZvdjpudWxsLGFzcGVjdDpudWxsLG5lYXI6bnVsbCxmYXI6bnVsbCx6b29tOm51bGwsZXllU2VwOm51bGx9fXVwZGF0ZSh0KXtjb25zdCBlPXRoaXMuX2NhY2hlO2lmKGUuZm9jdXMhPT10LmZvY3VzfHxlLmZvdiE9PXQuZm92fHxlLmFzcGVjdCE9PXQuYXNwZWN0KnRoaXMuYXNwZWN0fHxlLm5lYXIhPT10Lm5lYXJ8fGUuZmFyIT09dC5mYXJ8fGUuem9vbSE9PXQuem9vbXx8ZS5leWVTZXAhPT10aGlzLmV5ZVNlcCl7ZS5mb2N1cz10LmZvY3VzLGUuZm92PXQuZm92LGUuYXNwZWN0PXQuYXNwZWN0KnRoaXMuYXNwZWN0LGUubmVhcj10Lm5lYXIsZS5mYXI9dC5mYXIsZS56b29tPXQuem9vbSxlLmV5ZVNlcD10aGlzLmV5ZVNlcDtjb25zdCBuPXQucHJvamVjdGlvbk1hdHJpeC5jbG9uZSgpLGk9ZS5leWVTZXAvMixyPWkqZS5uZWFyL2UuZm9jdXMsbz1lLm5lYXIqTWF0aC50YW4ocVp0KmUuZm92Ki41KS9lLnpvb207bGV0IGEscztVOXQuZWxlbWVudHNbMTJdPS1pLFY5dC5lbGVtZW50c1sxMl09aSxhPS1vKmUuYXNwZWN0K3Iscz1vKmUuYXNwZWN0K3Isbi5lbGVtZW50c1swXT0yKmUubmVhci8ocy1hKSxuLmVsZW1lbnRzWzhdPShzK2EpLyhzLWEpLHRoaXMuY2FtZXJhTC5wcm9qZWN0aW9uTWF0cml4LmNvcHkobiksYT0tbyplLmFzcGVjdC1yLHM9byplLmFzcGVjdC1yLG4uZWxlbWVudHNbMF09MiplLm5lYXIvKHMtYSksbi5lbGVtZW50c1s4XT0ocythKS8ocy1hKSx0aGlzLmNhbWVyYVIucHJvamVjdGlvbk1hdHJpeC5jb3B5KG4pfXRoaXMuY2FtZXJhTC5tYXRyaXhXb3JsZC5jb3B5KHQubWF0cml4V29ybGQpLm11bHRpcGx5KFU5dCksdGhpcy5jYW1lcmFSLm1hdHJpeFdvcmxkLmNvcHkodC5tYXRyaXhXb3JsZCkubXVsdGlwbHkoVjl0KX19LFN0cmVhbUNvcHlVc2FnZTozNTA0MixTdHJlYW1EcmF3VXNhZ2U6MzUwNDAsU3RyZWFtUmVhZFVzYWdlOjM1MDQxLFN0cmluZ0tleWZyYW1lVHJhY2s6VTZ0LFN1YnRyYWN0RXF1YXRpb246MTAxLFN1YnRyYWN0aXZlQmxlbmRpbmc6MyxUT1VDSDpGS3QsVGFuZ2VudFNwYWNlTm9ybWFsTWFwOjAsVGV0cmFoZWRyb25CdWZmZXJHZW9tZXRyeTpwNnQsVGV0cmFoZWRyb25HZW9tZXRyeTpwNnQsVGV4dEJ1ZmZlckdlb21ldHJ5OmY2dCxUZXh0R2VvbWV0cnk6ZjZ0LFRleHR1cmU6Ykp0LFRleHR1cmVMb2FkZXI6ZTl0LFRvcnVzQnVmZmVyR2VvbWV0cnk6bTZ0LFRvcnVzR2VvbWV0cnk6bTZ0LFRvcnVzS25vdEJ1ZmZlckdlb21ldHJ5Omc2dCxUb3J1c0tub3RHZW9tZXRyeTpnNnQsVHJpYW5nbGU6RlF0LFRyaWFuZ2xlRmFuRHJhd01vZGU6MixUcmlhbmdsZVN0cmlwRHJhd01vZGU6MSxUcmlhbmdsZXNEcmF3TW9kZTowLFR1YmVCdWZmZXJHZW9tZXRyeTpfNnQsVHViZUdlb21ldHJ5Ol82dCxVVk1hcHBpbmc6VUt0LFVpbnQxNkF0dHJpYnV0ZTpmdW5jdGlvbiBiN3QodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5VaW50MTZBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5VaW50MTZCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyByMXQodCxlKX0sVWludDE2QnVmZmVyQXR0cmlidXRlOnIxdCxVaW50MzJBdHRyaWJ1dGU6ZnVuY3Rpb24geDd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVWludDMyQXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuVWludDMyQnVmZmVyQXR0cmlidXRlKCkgaW5zdGVhZC4iKSxuZXcgYTF0KHQsZSl9LFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZTphMXQsVWludDhBdHRyaWJ1dGU6ZnVuY3Rpb24gdzd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVWludDhBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5VaW50OEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IGUxdCh0LGUpfSxVaW50OEJ1ZmZlckF0dHJpYnV0ZTplMXQsVWludDhDbGFtcGVkQXR0cmlidXRlOmZ1bmN0aW9uIFM3dCh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlVpbnQ4Q2xhbXBlZEF0dHJpYnV0ZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLlVpbnQ4Q2xhbXBlZEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IG4xdCh0LGUpfSxVaW50OENsYW1wZWRCdWZmZXJBdHRyaWJ1dGU6bjF0LFVuaWZvcm06bTh0LFVuaWZvcm1zTGliOmwwdCxVbmlmb3Jtc1V0aWxzOmoxdCxVbnNpZ25lZEJ5dGVUeXBlOnJadCxVbnNpZ25lZEludDI0OFR5cGU6Y1p0LFVuc2lnbmVkSW50VHlwZTphWnQsVW5zaWduZWRTaG9ydDQ0NDRUeXBlOjEwMTcsVW5zaWduZWRTaG9ydDU1NTFUeXBlOjEwMTgsVW5zaWduZWRTaG9ydDU2NVR5cGU6MTAxOSxVbnNpZ25lZFNob3J0VHlwZTpvWnQsVlNNU2hhZG93TWFwOjMsVmVjdG9yMjptSnQsVmVjdG9yMzpDSnQsVmVjdG9yNDp3SnQsVmVjdG9yS2V5ZnJhbWVUcmFjazpqNnQsVmVydGV4OmZ1bmN0aW9uIE03dCh0LGUsbil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVydGV4IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5WZWN0b3IzIGluc3RlYWQuIiksbmV3IENKdCh0LGUsbil9LFZlcnRleENvbG9yczoyLFZpZGVvVGV4dHVyZTpaM3QsV2ViR0wxUmVuZGVyZXI6VzV0LFdlYkdMQ3ViZVJlbmRlclRhcmdldDpLMXQsV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHM6TUp0LFdlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQ6RUp0LFdlYkdMUmVuZGVyVGFyZ2V0OlNKdCxXZWJHTFJlbmRlclRhcmdldEN1YmU6ZnVuY3Rpb24gRTd0KHQsZSxuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldEN1YmUoIHdpZHRoLCBoZWlnaHQsIG9wdGlvbnMgKSBpcyBub3cgV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KCBzaXplLCBvcHRpb25zICkuIiksbmV3IEsxdCh0LG4pfSxXZWJHTFJlbmRlcmVyOkc1dCxXZWJHTFV0aWxzOkQ1dCxXaXJlZnJhbWVHZW9tZXRyeTp5NnQsV2lyZWZyYW1lSGVscGVyOmZ1bmN0aW9uIFQ3dCh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldpcmVmcmFtZUhlbHBlciBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuV2lyZWZyYW1lR2VvbWV0cnkgaW5zdGVhZC4iKSxuZXcgVTN0KG5ldyB5NnQodC5nZW9tZXRyeSksbmV3IEkzdCh7Y29sb3I6dm9pZCAwIT09ZT9lOjE2Nzc3MjE1fSkpfSxXcmFwQXJvdW5kRW5kaW5nOmtadCxYSFJMb2FkZXI6ZnVuY3Rpb24gQzd0KHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlhIUkxvYWRlciBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLkZpbGVMb2FkZXIuIiksbmV3IFo2dCh0KX0sWmVyb0N1cnZhdHVyZUVuZGluZzpDWnQsWmVyb0ZhY3RvcjoyMDAsWmVyb1Nsb3BlRW5kaW5nOkFadCxaZXJvU3RlbmNpbE9wOjAsc1JHQkVuY29kaW5nOkladH0pO2NvbnN0IEE3dD17dHlwZToiY2hhbmdlIn0sazd0PXt0eXBlOiJzdGFydCJ9LEw3dD17dHlwZToiZW5kIn07Y2xhc3MgUDd0IGV4dGVuZHMgalp0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx2b2lkIDA9PT1lJiZjb25zb2xlLndhcm4oJ1RIUkVFLk9yYml0Q29udHJvbHM6IFRoZSBzZWNvbmQgcGFyYW1ldGVyICJkb21FbGVtZW50IiBpcyBub3cgbWFuZGF0b3J5LicpLGU9PT1kb2N1bWVudCYmY29uc29sZS5lcnJvcignVEhSRUUuT3JiaXRDb250cm9sczogImRvY3VtZW50IiBzaG91bGQgbm90IGJlIHVzZWQgYXMgdGhlIHRhcmdldCAiZG9tRWxlbWVudCIuIFBsZWFzZSB1c2UgInJlbmRlcmVyLmRvbUVsZW1lbnQiIGluc3RlYWQuJyksdGhpcy5vYmplY3Q9dCx0aGlzLmRvbUVsZW1lbnQ9ZSx0aGlzLmRvbUVsZW1lbnQuc3R5bGUudG91Y2hBY3Rpb249Im5vbmUiLHRoaXMuZW5hYmxlZD0hMCx0aGlzLnRhcmdldD1uZXcgQ0p0LHRoaXMubWluRGlzdGFuY2U9MCx0aGlzLm1heERpc3RhbmNlPTEvMCx0aGlzLm1pblpvb209MCx0aGlzLm1heFpvb209MS8wLHRoaXMubWluUG9sYXJBbmdsZT0wLHRoaXMubWF4UG9sYXJBbmdsZT1NYXRoLlBJLHRoaXMubWluQXppbXV0aEFuZ2xlPS0xLzAsdGhpcy5tYXhBemltdXRoQW5nbGU9MS8wLHRoaXMuZW5hYmxlRGFtcGluZz0hMSx0aGlzLmRhbXBpbmdGYWN0b3I9LjA1LHRoaXMuZW5hYmxlWm9vbT0hMCx0aGlzLnpvb21TcGVlZD0xLHRoaXMuZW5hYmxlUm90YXRlPSEwLHRoaXMucm90YXRlU3BlZWQ9MSx0aGlzLmVuYWJsZVBhbj0hMCx0aGlzLnBhblNwZWVkPTEsdGhpcy5zY3JlZW5TcGFjZVBhbm5pbmc9ITAsdGhpcy5rZXlQYW5TcGVlZD03LHRoaXMuYXV0b1JvdGF0ZT0hMSx0aGlzLmF1dG9Sb3RhdGVTcGVlZD0yLHRoaXMua2V5cz17TEVGVDoiQXJyb3dMZWZ0IixVUDoiQXJyb3dVcCIsUklHSFQ6IkFycm93UmlnaHQiLEJPVFRPTToiQXJyb3dEb3duIn0sdGhpcy5tb3VzZUJ1dHRvbnM9e0xFRlQ6SEt0LlJPVEFURSxNSURETEU6SEt0LkRPTExZLFJJR0hUOkhLdC5QQU59LHRoaXMudG91Y2hlcz17T05FOkZLdC5ST1RBVEUsVFdPOkZLdC5ET0xMWV9QQU59LHRoaXMudGFyZ2V0MD10aGlzLnRhcmdldC5jbG9uZSgpLHRoaXMucG9zaXRpb24wPXRoaXMub2JqZWN0LnBvc2l0aW9uLmNsb25lKCksdGhpcy56b29tMD10aGlzLm9iamVjdC56b29tLHRoaXMuX2RvbUVsZW1lbnRLZXlFdmVudHM9bnVsbCx0aGlzLmdldFBvbGFyQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5waGl9LHRoaXMuZ2V0QXppbXV0aGFsQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS50aGV0YX0sdGhpcy5nZXREaXN0YW5jZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9iamVjdC5wb3NpdGlvbi5kaXN0YW5jZVRvKHRoaXMudGFyZ2V0KX0sdGhpcy5saXN0ZW5Ub0tleUV2ZW50cz1mdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGopLHRoaXMuX2RvbUVsZW1lbnRLZXlFdmVudHM9dH0sdGhpcy5zYXZlU3RhdGU9ZnVuY3Rpb24oKXtuLnRhcmdldDAuY29weShuLnRhcmdldCksbi5wb3NpdGlvbjAuY29weShuLm9iamVjdC5wb3NpdGlvbiksbi56b29tMD1uLm9iamVjdC56b29tfSx0aGlzLnJlc2V0PWZ1bmN0aW9uKCl7bi50YXJnZXQuY29weShuLnRhcmdldDApLG4ub2JqZWN0LnBvc2l0aW9uLmNvcHkobi5wb3NpdGlvbjApLG4ub2JqZWN0Lnpvb209bi56b29tMCxuLm9iamVjdC51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCksbi5kaXNwYXRjaEV2ZW50KEE3dCksbi51cGRhdGUoKSxyPWkuTk9ORX0sdGhpcy51cGRhdGU9KGZ1bmN0aW9uKCl7Y29uc3QgZT1uZXcgQ0p0LGg9KG5ldyBUSnQpLnNldEZyb21Vbml0VmVjdG9ycyh0LnVwLG5ldyBDSnQoMCwxLDApKSxkPWguY2xvbmUoKS5pbnZlcnQoKSxwPW5ldyBDSnQsZj1uZXcgVEp0LG09MipNYXRoLlBJO3JldHVybiBmdW5jdGlvbiB0KCl7Y29uc3QgZz1uLm9iamVjdC5wb3NpdGlvbjtlLmNvcHkoZykuc3ViKG4udGFyZ2V0KSxlLmFwcGx5UXVhdGVybmlvbihoKSxhLnNldEZyb21WZWN0b3IzKGUpLG4uYXV0b1JvdGF0ZSYmcj09PWkuTk9ORSYmUygoZnVuY3Rpb24gXygpe3JldHVybiAyKk1hdGguUEkvNjAvNjAqbi5hdXRvUm90YXRlU3BlZWR9KSgpKSxuLmVuYWJsZURhbXBpbmc/KGEudGhldGErPXMudGhldGEqbi5kYW1waW5nRmFjdG9yLGEucGhpKz1zLnBoaSpuLmRhbXBpbmdGYWN0b3IpOihhLnRoZXRhKz1zLnRoZXRhLGEucGhpKz1zLnBoaSk7bGV0IHk9bi5taW5BemltdXRoQW5nbGUsdj1uLm1heEF6aW11dGhBbmdsZTtyZXR1cm4gaXNGaW5pdGUoeSkmJmlzRmluaXRlKHYpJiYoeTwtTWF0aC5QST95Kz1tOnk+TWF0aC5QSSYmKHktPW0pLHY8LU1hdGguUEk/dis9bTp2Pk1hdGguUEkmJih2LT1tKSxhLnRoZXRhPXk8PXY/TWF0aC5tYXgoeSxNYXRoLm1pbih2LGEudGhldGEpKTphLnRoZXRhPih5K3YpLzI/TWF0aC5tYXgoeSxhLnRoZXRhKTpNYXRoLm1pbih2LGEudGhldGEpKSxhLnBoaT1NYXRoLm1heChuLm1pblBvbGFyQW5nbGUsTWF0aC5taW4obi5tYXhQb2xhckFuZ2xlLGEucGhpKSksYS5tYWtlU2FmZSgpLGEucmFkaXVzKj1sLGEucmFkaXVzPU1hdGgubWF4KG4ubWluRGlzdGFuY2UsTWF0aC5taW4obi5tYXhEaXN0YW5jZSxhLnJhZGl1cykpLCEwPT09bi5lbmFibGVEYW1waW5nP24udGFyZ2V0LmFkZFNjYWxlZFZlY3RvcihjLG4uZGFtcGluZ0ZhY3Rvcik6bi50YXJnZXQuYWRkKGMpLGUuc2V0RnJvbVNwaGVyaWNhbChhKSxlLmFwcGx5UXVhdGVybmlvbihkKSxnLmNvcHkobi50YXJnZXQpLmFkZChlKSxuLm9iamVjdC5sb29rQXQobi50YXJnZXQpLCEwPT09bi5lbmFibGVEYW1waW5nPyhzLnRoZXRhKj0xLW4uZGFtcGluZ0ZhY3RvcixzLnBoaSo9MS1uLmRhbXBpbmdGYWN0b3IsYy5tdWx0aXBseVNjYWxhcigxLW4uZGFtcGluZ0ZhY3RvcikpOihzLnNldCgwLDAsMCksYy5zZXQoMCwwLDApKSxsPTEsISEodXx8cC5kaXN0YW5jZVRvU3F1YXJlZChuLm9iamVjdC5wb3NpdGlvbik+b3x8OCooMS1mLmRvdChuLm9iamVjdC5xdWF0ZXJuaW9uKSk+bykmJihuLmRpc3BhdGNoRXZlbnQoQTd0KSxwLmNvcHkobi5vYmplY3QucG9zaXRpb24pLGYuY29weShuLm9iamVjdC5xdWF0ZXJuaW9uKSx1PSExLCEwKX19KSgpLHRoaXMuZGlzcG9zZT1mdW5jdGlvbigpe24uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsRyksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixCKSxuLmRvbUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsViksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixVKSxuLmRvbUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLEgpLG4uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLEYpLG51bGwhPT1uLl9kb21FbGVtZW50S2V5RXZlbnRzJiZuLl9kb21FbGVtZW50S2V5RXZlbnRzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGopfTtjb25zdCBuPXRoaXMsaT17Tk9ORTotMSxST1RBVEU6MCxET0xMWToxLFBBTjoyLFRPVUNIX1JPVEFURTozLFRPVUNIX1BBTjo0LFRPVUNIX0RPTExZX1BBTjo1LFRPVUNIX0RPTExZX1JPVEFURTo2fTtsZXQgcj1pLk5PTkU7Y29uc3Qgbz0xZS02LGE9bmV3IGI4dCxzPW5ldyBiOHQ7bGV0IGw9MTtjb25zdCBjPW5ldyBDSnQ7bGV0IHU9ITE7Y29uc3QgaD1uZXcgbUp0LGQ9bmV3IG1KdCxwPW5ldyBtSnQsZj1uZXcgbUp0LG09bmV3IG1KdCxnPW5ldyBtSnQsXz1uZXcgbUp0LHk9bmV3IG1KdCx2PW5ldyBtSnQsYj1bXSx4PXt9O2Z1bmN0aW9uIHcoKXtyZXR1cm4gTWF0aC5wb3coLjk1LG4uem9vbVNwZWVkKX1mdW5jdGlvbiBTKHQpe3MudGhldGEtPXR9ZnVuY3Rpb24gTSh0KXtzLnBoaS09dH1jb25zdCBFPShmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IENKdDtyZXR1cm4gZnVuY3Rpb24gZShuLGkpe3Quc2V0RnJvbU1hdHJpeENvbHVtbihpLDApLHQubXVsdGlwbHlTY2FsYXIoLW4pLGMuYWRkKHQpfX0pKCksVD0oZnVuY3Rpb24oKXtjb25zdCB0PW5ldyBDSnQ7cmV0dXJuIGZ1bmN0aW9uIGUoaSxyKXshMD09PW4uc2NyZWVuU3BhY2VQYW5uaW5nP3Quc2V0RnJvbU1hdHJpeENvbHVtbihyLDEpOih0LnNldEZyb21NYXRyaXhDb2x1bW4ociwwKSx0LmNyb3NzVmVjdG9ycyhuLm9iamVjdC51cCx0KSksdC5tdWx0aXBseVNjYWxhcihpKSxjLmFkZCh0KX19KSgpLEM9KGZ1bmN0aW9uKCl7Y29uc3QgdD1uZXcgQ0p0O3JldHVybiBmdW5jdGlvbiBlKGkscil7Y29uc3Qgbz1uLmRvbUVsZW1lbnQ7aWYobi5vYmplY3QuaXNQZXJzcGVjdGl2ZUNhbWVyYSl7dC5jb3B5KG4ub2JqZWN0LnBvc2l0aW9uKS5zdWIobi50YXJnZXQpO2xldCBlPXQubGVuZ3RoKCk7ZSo9TWF0aC50YW4obi5vYmplY3QuZm92LzIqTWF0aC5QSS8xODApLEUoMippKmUvby5jbGllbnRIZWlnaHQsbi5vYmplY3QubWF0cml4KSxUKDIqciplL28uY2xpZW50SGVpZ2h0LG4ub2JqZWN0Lm1hdHJpeCl9ZWxzZSBuLm9iamVjdC5pc09ydGhvZ3JhcGhpY0NhbWVyYT8oRShpKihuLm9iamVjdC5yaWdodC1uLm9iamVjdC5sZWZ0KS9uLm9iamVjdC56b29tL28uY2xpZW50V2lkdGgsbi5vYmplY3QubWF0cml4KSxUKHIqKG4ub2JqZWN0LnRvcC1uLm9iamVjdC5ib3R0b20pL24ub2JqZWN0Lnpvb20vby5jbGllbnRIZWlnaHQsbi5vYmplY3QubWF0cml4KSk6KGNvbnNvbGUud2FybigiV0FSTklORzogT3JiaXRDb250cm9scy5qcyBlbmNvdW50ZXJlZCBhbiB1bmtub3duIGNhbWVyYSB0eXBlIC0gcGFuIGRpc2FibGVkLiIpLG4uZW5hYmxlUGFuPSExKX19KSgpO2Z1bmN0aW9uIEEodCl7bi5vYmplY3QuaXNQZXJzcGVjdGl2ZUNhbWVyYT9sLz10Om4ub2JqZWN0LmlzT3J0aG9ncmFwaGljQ2FtZXJhPyhuLm9iamVjdC56b29tPU1hdGgubWF4KG4ubWluWm9vbSxNYXRoLm1pbihuLm1heFpvb20sbi5vYmplY3Quem9vbSp0KSksbi5vYmplY3QudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpLHU9ITApOihjb25zb2xlLndhcm4oIldBUk5JTkc6IE9yYml0Q29udHJvbHMuanMgZW5jb3VudGVyZWQgYW4gdW5rbm93biBjYW1lcmEgdHlwZSAtIGRvbGx5L3pvb20gZGlzYWJsZWQuIiksbi5lbmFibGVab29tPSExKX1mdW5jdGlvbiBrKHQpe24ub2JqZWN0LmlzUGVyc3BlY3RpdmVDYW1lcmE/bCo9dDpuLm9iamVjdC5pc09ydGhvZ3JhcGhpY0NhbWVyYT8obi5vYmplY3Quem9vbT1NYXRoLm1heChuLm1pblpvb20sTWF0aC5taW4obi5tYXhab29tLG4ub2JqZWN0Lnpvb20vdCkpLG4ub2JqZWN0LnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSx1PSEwKTooY29uc29sZS53YXJuKCJXQVJOSU5HOiBPcmJpdENvbnRyb2xzLmpzIGVuY291bnRlcmVkIGFuIHVua25vd24gY2FtZXJhIHR5cGUgLSBkb2xseS96b29tIGRpc2FibGVkLiIpLG4uZW5hYmxlWm9vbT0hMSl9ZnVuY3Rpb24gTCh0KXtoLnNldCh0LmNsaWVudFgsdC5jbGllbnRZKX1mdW5jdGlvbiBQKHQpe2Yuc2V0KHQuY2xpZW50WCx0LmNsaWVudFkpfWZ1bmN0aW9uIE4oKXsxPT09Yi5sZW5ndGg/aC5zZXQoYlswXS5wYWdlWCxiWzBdLnBhZ2VZKTpoLnNldCguNSooYlswXS5wYWdlWCtiWzFdLnBhZ2VYKSwuNSooYlswXS5wYWdlWStiWzFdLnBhZ2VZKSl9ZnVuY3Rpb24gSSgpezE9PT1iLmxlbmd0aD9mLnNldChiWzBdLnBhZ2VYLGJbMF0ucGFnZVkpOmYuc2V0KC41KihiWzBdLnBhZ2VYK2JbMV0ucGFnZVgpLC41KihiWzBdLnBhZ2VZK2JbMV0ucGFnZVkpKX1mdW5jdGlvbiBSKCl7Y29uc3QgdD1iWzBdLnBhZ2VYLWJbMV0ucGFnZVgsZT1iWzBdLnBhZ2VZLWJbMV0ucGFnZVksbj1NYXRoLnNxcnQodCp0K2UqZSk7Xy5zZXQoMCxuKX1mdW5jdGlvbiBPKHQpe2lmKDE9PWIubGVuZ3RoKWQuc2V0KHQucGFnZVgsdC5wYWdlWSk7ZWxzZXtjb25zdCBlPVkodCk7ZC5zZXQoLjUqKHQucGFnZVgrZS54KSwuNSoodC5wYWdlWStlLnkpKX1wLnN1YlZlY3RvcnMoZCxoKS5tdWx0aXBseVNjYWxhcihuLnJvdGF0ZVNwZWVkKTtjb25zdCBlPW4uZG9tRWxlbWVudDtTKDIqTWF0aC5QSSpwLngvZS5jbGllbnRIZWlnaHQpLE0oMipNYXRoLlBJKnAueS9lLmNsaWVudEhlaWdodCksaC5jb3B5KGQpfWZ1bmN0aW9uIHoodCl7aWYoMT09PWIubGVuZ3RoKW0uc2V0KHQucGFnZVgsdC5wYWdlWSk7ZWxzZXtjb25zdCBlPVkodCk7bS5zZXQoLjUqKHQucGFnZVgrZS54KSwuNSoodC5wYWdlWStlLnkpKX1nLnN1YlZlY3RvcnMobSxmKS5tdWx0aXBseVNjYWxhcihuLnBhblNwZWVkKSxDKGcueCxnLnkpLGYuY29weShtKX1mdW5jdGlvbiBEKHQpe2NvbnN0IGU9WSh0KSxpPXQucGFnZVgtZS54LHI9dC5wYWdlWS1lLnksbz1NYXRoLnNxcnQoaSppK3Iqcik7eS5zZXQoMCxvKSx2LnNldCgwLE1hdGgucG93KHkueS9fLnksbi56b29tU3BlZWQpKSxBKHYueSksXy5jb3B5KHkpfWZ1bmN0aW9uIEIodCl7ITEhPT1uLmVuYWJsZWQmJigwPT09Yi5sZW5ndGgmJihuLmRvbUVsZW1lbnQuc2V0UG9pbnRlckNhcHR1cmUodC5wb2ludGVySWQpLG4uZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsSCksbi5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsRikpLChmdW5jdGlvbiBlKHQpe2IucHVzaCh0KX0pKHQpLCJ0b3VjaCI9PT10LnBvaW50ZXJUeXBlPyhmdW5jdGlvbiBvKHQpe3N3aXRjaChxKHQpLGIubGVuZ3RoKXtjYXNlIDE6c3dpdGNoKG4udG91Y2hlcy5PTkUpe2Nhc2UgRkt0LlJPVEFURTppZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtOKCkscj1pLlRPVUNIX1JPVEFURTticmVhaztjYXNlIEZLdC5QQU46aWYoITE9PT1uLmVuYWJsZVBhbilyZXR1cm47SSgpLHI9aS5UT1VDSF9QQU47YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX1icmVhaztjYXNlIDI6c3dpdGNoKG4udG91Y2hlcy5UV08pe2Nhc2UgRkt0LkRPTExZX1BBTjppZighMT09PW4uZW5hYmxlWm9vbSYmITE9PT1uLmVuYWJsZVBhbilyZXR1cm47IShmdW5jdGlvbiB0KCl7bi5lbmFibGVab29tJiZSKCksbi5lbmFibGVQYW4mJkkoKX0pKCkscj1pLlRPVUNIX0RPTExZX1BBTjticmVhaztjYXNlIEZLdC5ET0xMWV9ST1RBVEU6aWYoITE9PT1uLmVuYWJsZVpvb20mJiExPT09bi5lbmFibGVSb3RhdGUpcmV0dXJuOyEoZnVuY3Rpb24gZSgpe24uZW5hYmxlWm9vbSYmUigpLG4uZW5hYmxlUm90YXRlJiZOKCl9KSgpLHI9aS5UT1VDSF9ET0xMWV9ST1RBVEU7YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX1icmVhaztkZWZhdWx0OnI9aS5OT05FfXIhPT1pLk5PTkUmJm4uZGlzcGF0Y2hFdmVudChrN3QpfSkodCk6KGZ1bmN0aW9uIGEodCl7bGV0IGU7c3dpdGNoKHQuYnV0dG9uKXtjYXNlIDA6ZT1uLm1vdXNlQnV0dG9ucy5MRUZUO2JyZWFrO2Nhc2UgMTplPW4ubW91c2VCdXR0b25zLk1JRERMRTticmVhaztjYXNlIDI6ZT1uLm1vdXNlQnV0dG9ucy5SSUdIVDticmVhaztkZWZhdWx0OmU9LTF9c3dpdGNoKGUpe2Nhc2UgSEt0LkRPTExZOmlmKCExPT09bi5lbmFibGVab29tKXJldHVybjshKGZ1bmN0aW9uIGUodCl7Xy5zZXQodC5jbGllbnRYLHQuY2xpZW50WSl9KSh0KSxyPWkuRE9MTFk7YnJlYWs7Y2FzZSBIS3QuUk9UQVRFOmlmKHQuY3RybEtleXx8dC5tZXRhS2V5fHx0LnNoaWZ0S2V5KXtpZighMT09PW4uZW5hYmxlUGFuKXJldHVybjtQKHQpLHI9aS5QQU59ZWxzZXtpZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtMKHQpLHI9aS5ST1RBVEV9YnJlYWs7Y2FzZSBIS3QuUEFOOmlmKHQuY3RybEtleXx8dC5tZXRhS2V5fHx0LnNoaWZ0S2V5KXtpZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtMKHQpLHI9aS5ST1RBVEV9ZWxzZXtpZighMT09PW4uZW5hYmxlUGFuKXJldHVybjtQKHQpLHI9aS5QQU59YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX1yIT09aS5OT05FJiZuLmRpc3BhdGNoRXZlbnQoazd0KX0pKHQpKX1mdW5jdGlvbiBIKHQpeyExIT09bi5lbmFibGVkJiYoInRvdWNoIj09PXQucG9pbnRlclR5cGU/KGZ1bmN0aW9uIGUodCl7c3dpdGNoKHEodCkscil7Y2FzZSBpLlRPVUNIX1JPVEFURTppZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtPKHQpLG4udXBkYXRlKCk7YnJlYWs7Y2FzZSBpLlRPVUNIX1BBTjppZighMT09PW4uZW5hYmxlUGFuKXJldHVybjt6KHQpLG4udXBkYXRlKCk7YnJlYWs7Y2FzZSBpLlRPVUNIX0RPTExZX1BBTjppZighMT09PW4uZW5hYmxlWm9vbSYmITE9PT1uLmVuYWJsZVBhbilyZXR1cm47IShmdW5jdGlvbiBlKHQpe24uZW5hYmxlWm9vbSYmRCh0KSxuLmVuYWJsZVBhbiYmeih0KX0pKHQpLG4udXBkYXRlKCk7YnJlYWs7Y2FzZSBpLlRPVUNIX0RPTExZX1JPVEFURTppZighMT09PW4uZW5hYmxlWm9vbSYmITE9PT1uLmVuYWJsZVJvdGF0ZSlyZXR1cm47IShmdW5jdGlvbiBvKHQpe24uZW5hYmxlWm9vbSYmRCh0KSxuLmVuYWJsZVJvdGF0ZSYmTyh0KX0pKHQpLG4udXBkYXRlKCk7YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX19KSh0KTooZnVuY3Rpb24gbyh0KXtpZighMSE9PW4uZW5hYmxlZClzd2l0Y2gocil7Y2FzZSBpLlJPVEFURTppZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjshKGZ1bmN0aW9uIGUodCl7ZC5zZXQodC5jbGllbnRYLHQuY2xpZW50WSkscC5zdWJWZWN0b3JzKGQsaCkubXVsdGlwbHlTY2FsYXIobi5yb3RhdGVTcGVlZCk7Y29uc3QgZT1uLmRvbUVsZW1lbnQ7UygyKk1hdGguUEkqcC54L2UuY2xpZW50SGVpZ2h0KSxNKDIqTWF0aC5QSSpwLnkvZS5jbGllbnRIZWlnaHQpLGguY29weShkKSxuLnVwZGF0ZSgpfSkodCk7YnJlYWs7Y2FzZSBpLkRPTExZOmlmKCExPT09bi5lbmFibGVab29tKXJldHVybjshKGZ1bmN0aW9uIHIodCl7eS5zZXQodC5jbGllbnRYLHQuY2xpZW50WSksdi5zdWJWZWN0b3JzKHksXyksdi55PjA/QSh3KCkpOnYueTwwJiZrKHcoKSksXy5jb3B5KHkpLG4udXBkYXRlKCl9KSh0KTticmVhaztjYXNlIGkuUEFOOmlmKCExPT09bi5lbmFibGVQYW4pcmV0dXJuOyEoZnVuY3Rpb24gbyh0KXttLnNldCh0LmNsaWVudFgsdC5jbGllbnRZKSxnLnN1YlZlY3RvcnMobSxmKS5tdWx0aXBseVNjYWxhcihuLnBhblNwZWVkKSxDKGcueCxnLnkpLGYuY29weShtKSxuLnVwZGF0ZSgpfSkodCl9fSkodCkpfWZ1bmN0aW9uIEYodCl7ITEhPT1uLmVuYWJsZWQmJigidG91Y2giPT09dC5wb2ludGVyVHlwZT8oZnVuY3Rpb24gZSh0KXtuLmRpc3BhdGNoRXZlbnQoTDd0KSxyPWkuTk9ORX0pKCk6KGZ1bmN0aW9uIG8odCl7bi5kaXNwYXRjaEV2ZW50KEw3dCkscj1pLk5PTkV9KSgpLFcodCksMD09PWIubGVuZ3RoJiYobi5kb21FbGVtZW50LnJlbGVhc2VQb2ludGVyQ2FwdHVyZSh0LnBvaW50ZXJJZCksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixIKSxuLmRvbUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixGKSkpfWZ1bmN0aW9uIFYodCl7Vyh0KX1mdW5jdGlvbiBVKHQpeyExPT09bi5lbmFibGVkfHwhMT09PW4uZW5hYmxlWm9vbXx8ciE9PWkuTk9ORSYmciE9PWkuUk9UQVRFfHwodC5wcmV2ZW50RGVmYXVsdCgpLG4uZGlzcGF0Y2hFdmVudChrN3QpLChmdW5jdGlvbiBlKHQpe3QuZGVsdGFZPDA/ayh3KCkpOnQuZGVsdGFZPjAmJkEodygpKSxuLnVwZGF0ZSgpfSkodCksbi5kaXNwYXRjaEV2ZW50KEw3dCkpfWZ1bmN0aW9uIGoodCl7ITEhPT1uLmVuYWJsZWQmJiExIT09bi5lbmFibGVQYW4mJihmdW5jdGlvbiBlKHQpe2xldCBlPSExO3N3aXRjaCh0LmNvZGUpe2Nhc2Ugbi5rZXlzLlVQOkMoMCxuLmtleVBhblNwZWVkKSxlPSEwO2JyZWFrO2Nhc2Ugbi5rZXlzLkJPVFRPTTpDKDAsLW4ua2V5UGFuU3BlZWQpLGU9ITA7YnJlYWs7Y2FzZSBuLmtleXMuTEVGVDpDKG4ua2V5UGFuU3BlZWQsMCksZT0hMDticmVhaztjYXNlIG4ua2V5cy5SSUdIVDpDKC1uLmtleVBhblNwZWVkLDApLGU9ITB9ZSYmKHQucHJldmVudERlZmF1bHQoKSxuLnVwZGF0ZSgpKX0pKHQpfWZ1bmN0aW9uIEcodCl7ITEhPT1uLmVuYWJsZWQmJnQucHJldmVudERlZmF1bHQoKX1mdW5jdGlvbiBXKHQpe2RlbGV0ZSB4W3QucG9pbnRlcklkXTtmb3IobGV0IGU9MDtlPGIubGVuZ3RoO2UrKylpZihiW2VdLnBvaW50ZXJJZD09dC5wb2ludGVySWQpcmV0dXJuIHZvaWQgYi5zcGxpY2UoZSwxKX1mdW5jdGlvbiBxKHQpe2xldCBlPXhbdC5wb2ludGVySWRdO3ZvaWQgMD09PWUmJihlPW5ldyBtSnQseFt0LnBvaW50ZXJJZF09ZSksZS5zZXQodC5wYWdlWCx0LnBhZ2VZKX1mdW5jdGlvbiBZKHQpe3JldHVybiB4Wyh0LnBvaW50ZXJJZD09PWJbMF0ucG9pbnRlcklkP2JbMV06YlswXSkucG9pbnRlcklkXX1uLmRvbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLEcpLG4uZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsQiksbi5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLFYpLG4uZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsVSx7cGFzc2l2ZTohMX0pLHRoaXMudXBkYXRlKCl9fWNsYXNzIE43dCBleHRlbmRzIGpadHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX2xhc3RNZXNoPW51bGwsdGhpcy5fY2xvY2s9bmV3IGo5dCx0aGlzLl9jYW52YXNTaXplPW51bGwsdGhpcy5fbGF5ZXJzQ29uZmlnPW51bGwsdGhpcy5fcnVuQ29sb3I9dH1faXNPYmplY3QodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10JiYhQXJyYXkuaXNBcnJheSh0KX1fYXBwbHlEZWZhdWx0cyh0LGUpe2xldCBuPXt9O2NvbnN0IGk9W3QsZV07Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0IGU9aVt0XTtmb3IobGV0IHQgaW4gZSl7Y29uc3QgaT10IGluIG47dGhpcy5faXNPYmplY3QoZVt0XSk/blt0XT10aGlzLl9hcHBseURlZmF1bHRzKG5bdF18fHt9LGVbdF0pOml8fChuW3RdPWVbdF0pfX1yZXR1cm4gbn1fY3JlYXRlTGF5ZXJzKCl7aWYodGhpcy5fbGF5ZXJzQ29uZmlnJiZ0aGlzLl9zY2VuZSYmdGhpcy5fbGFzdE1lc2gpe2lmKHRoaXMuX2xheWVyc0NvbmZpZy5zaG93Qm91bmRpbmdCb3gpe3ZhciB0PW5ldyBHOHQodGhpcy5fbGFzdE1lc2gsbmV3ICRRdCgicmdiKDAsIDAsIDI1NSkiKSk7dGhpcy5fc2NlbmUuYWRkKHQpfWlmKHRoaXMuX2xheWVyc0NvbmZpZy5zaG93QXhlcyl7dmFyIGU9bmV3IFg4dCg1KTt0aGlzLl9zY2VuZS5hZGQoZSl9fX1zZXRMYXllcnNDb25maWcodCl7dGhpcy5fbGF5ZXJzQ29uZmlnPXRoaXMuX2FwcGx5RGVmYXVsdHModCx0aGlzLl9sYXllcnNDb25maWd8fHt9KX1fY3JlYXRlV29ybGQodCxlKXtpZih0aGlzLmlzUmVhZHkoKSlyZXR1cm47dGhpcy5fc2NlbmU9bmV3IFg1dDt2YXIgbj1uZXcgSjh0W3QuY2FtZXJhLmNsc10odC5jYW1lcmEuZm92LHRoaXMuX2NhbnZhc1NpemUud2lkdGgvdGhpcy5fY2FudmFzU2l6ZS5oZWlnaHQsdC5jYW1lcmEubmVhcix0LmNhbWVyYS5mYXIpO3RoaXMuX2NhbWVyYT1uO3ZhciBpPW5ldyBQN3QobixlKTtjb25zdCByPWk7ci5sb29rU3BlZWQ9LjQsci5tb3ZlbWVudFNwZWVkPTIwLHIubm9GbHk9ITAsci5sb29rVmVydGljYWw9ITAsci5jb25zdHJhaW5WZXJ0aWNhbD0hMCxyLnZlcnRpY2FsTWluPTEsci52ZXJ0aWNhbE1heD0yLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLl9vbkNhbWVyYVBvc2l0aW9uQ2hhbmdlLmJpbmQodGhpcykpLHRoaXMuX2NhbWVyYUNvbnRyb2xzPWksdGhpcy5fcmVuZGVyZXI9bmV3IEc1dCh7YW50aWFsaWFzOiEwfSksdGhpcy5fcmVuZGVyZXIuc2V0UGl4ZWxSYXRpbyh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyksdGhpcy5fcmVuZGVyZXIuc2V0U2l6ZSh0aGlzLl9jYW52YXNTaXplLndpZHRoLHRoaXMuX2NhbnZhc1NpemUuaGVpZ2h0KSx0aGlzLl9yZW5kZXJlci5zZXRDbGVhckNvbG9yKDE2Nzc3MjE1LDEpfV9jbGVhclNjZW5lKCl7Zm9yKDt0aGlzLl9zY2VuZS5jaGlsZHJlbi5sZW5ndGg+MDspdGhpcy5fc2NlbmUucmVtb3ZlKHRoaXMuX3NjZW5lLmNoaWxkcmVuWzBdKX1nZXRSZW5kZXJlcigpe3JldHVybiB0aGlzLl9yZW5kZXJlcn1nZXRDYW1lcmFDb250cm9scygpe3JldHVybiB0aGlzLl9jYW1lcmFDb250cm9sc31pc1JlYWR5KCl7cmV0dXJuISF0aGlzLl9jYW1lcmEmJiEhdGhpcy5fY2FtZXJhQ29udHJvbHN9Z2V0Q2FtZXJhUG9zaXRpb24oKXtyZXR1cm57ZmFyOnRoaXMuX2NhbWVyYS5mYXIscG9zaXRpb246dGhpcy5fY2FtZXJhLnBvc2l0aW9uLmNsb25lKCksdGFyZ2V0OnRoaXMuX2NhbWVyYUNvbnRyb2xzLnRhcmdldC5jbG9uZSgpfX1zZXRDYW52YXNTaXplKHQpe3RoaXMuX2NhbnZhc1NpemU9dH1kcmF3KCl7dGhpcy5fYW5pbWF0aW9uRnJhbWVJbmRleCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fYW5pbWF0aW9uRnJhbWVJbmRleCksdGhpcy5fY2FtZXJhLmFzcGVjdD10aGlzLl9jYW52YXNTaXplLndpZHRoL3RoaXMuX2NhbnZhc1NpemUuaGVpZ2h0LHRoaXMuX2NhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCksdGhpcy5fcmVuZGVyZXIuc2V0U2l6ZSh0aGlzLl9jYW52YXNTaXplLndpZHRoLHRoaXMuX2NhbnZhc1NpemUuaGVpZ2h0KTtjb25zdCB0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fY2xvY2suZ2V0RGVsdGEoKTt0aGlzLl9jYW1lcmFDb250cm9scy51cGRhdGUoZSksdGhpcy5fYW5pbWF0aW9uRnJhbWVJbmRleD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCksdGhpcy5fcmVuZGVyZXIucmVuZGVyKHRoaXMuX3NjZW5lLHRoaXMuX2NhbWVyYSl9LmJpbmQodGhpcyk7dCgpfXVwZGF0ZVNjZW5lKHQsZSl7bGV0IG49e307ImNvbmZpZyJpbiB0JiZ0LmNvbmZpZyYmKG49SlNPTi5wYXJzZSh0LmNvbmZpZykpLHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiYmVmb3JlVXBkYXRlU2NlbmUifSksbj10aGlzLl9hcHBseURlZmF1bHRzKG4se2NhbWVyYTp7Y2xzOiJQZXJzcGVjdGl2ZUNhbWVyYSIsZm92Ojc1LG5lYXI6LjEsZmFyOjFlM30sbGlnaHRzOlt7Y2xzOiJBbWJpZW50TGlnaHQiLGNvbG9yOiIjZmZmZmZmIixpbnRlbnNpdHk6Ljc1fSx7Y2xzOiJEaXJlY3Rpb25hbExpZ2h0Iixjb2xvcjoiI2ZmZmZmZiIsaW50ZW5zaXR5Oi43NSxwb3NpdGlvbjpbMCwtMSwyXX1dfSksdGhpcy5fY3JlYXRlV29ybGQobixlKSx0aGlzLl9jbGVhclNjZW5lKCksdGhpcy5fY3JlYXRlTGlnaHRzKHRoaXMuX3NjZW5lLG4pLHRoaXMuX2NyZWF0ZUdlb21ldHJ5KHQsbiksdGhpcy5fY3JlYXRlTGF5ZXJzKCksdGhpcy5kcmF3KCl9cmVzZXRWaWV3KHQpe2lmKCF0aGlzLmlzUmVhZHkoKSlyZXR1cm47bGV0IGU7dGhpcy5fY2FtZXJhQ29udHJvbHMucmVzZXQoKSwhdCYmdGhpcy5fbGFzdE1lc2gmJihlPXRoaXMuX2xhc3RNZXNoKSxlJiYodGhpcy5fZml0T2JqZWN0VG9WaWV3cG9ydChlKSx0aGlzLl9sYXN0TWVzaD1lKSx0aGlzLl9jYW1lcmFDb250cm9scy51cGRhdGUoKX1fY3JlYXRlR2VvbWV0cnkodCxlKXtjb25zdCBuPXQubWVzaDtuLnZlcnRpY2VzJiZuLmZhY2VzJiZuLmZhY2VzLmxlbmd0aD90aGlzLl9jcmVhdGVNZXNoKG4sZSk6dGhpcy5fY3JlYXRlUG9pbnRDbG91ZChuLGUpfV9jcmVhdGVQb2ludENsb3VkKHQsZSl7Y29uc3Qgbj10LnZlcnRpY2VzLGk9dC5jb2xvcnM7bGV0IHI9e21hdGVyaWFsOntjbHM6IlBvaW50c01hdGVyaWFsIixzaXplOi4wMDV9fTtpJiZpLmxlbmd0aD09bi5sZW5ndGg/ci5tYXRlcmlhbC52ZXJ0ZXhDb2xvcnM9ITA6ci5tYXRlcmlhbC5jb2xvcj10aGlzLl9ydW5Db2xvcjtjb25zdCBvPXRoaXMuX2FwcGx5RGVmYXVsdHMoZSxyKSxhPW5ldyBiMXQscz1uZXcgRmxvYXQzMkFycmF5KG4uZmxhdCgpKTtpZihhLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBRUXQocywzKSksaSYmaS5sZW5ndGg9PW4ubGVuZ3RoKXtjb25zdCB0PW5ldyBGbG9hdDMyQXJyYXkoaS5mbGF0KCkpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV09dFtlXS8yNTU7YS5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgUVF0KHQsMykpfXZhciBsPW5ldyBKOHRbby5tYXRlcmlhbC5jbHNdKG8ubWF0ZXJpYWwpLGM9bmV3ICQzdChhLGwpO3RoaXMuX3NjZW5lLmFkZChjKSx0aGlzLl9sYXN0TWVzaD1jfXNldENhbWVyYVZpZXdwb2ludCh0LGUsbil7dGhpcy5fc2lsZW50PSEwLHRoaXMuX2NhbWVyYS5mYXI9ZSx0aGlzLl9jYW1lcmEucG9zaXRpb24uc2V0KHQueCx0LnksdC56KSx0aGlzLl9jYW1lcmEubG9va0F0KG4uY2xvbmUoKSksdGhpcy5fY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSx0aGlzLl9jYW1lcmFDb250cm9scy50YXJnZXQ9bi5jbG9uZSgpLHRoaXMuX2NhbWVyYUNvbnRyb2xzLnVwZGF0ZSgpLHRoaXMuX3NpbGVudD0hMX1fb25DYW1lcmFQb3NpdGlvbkNoYW5nZSh0KXt0aGlzLl9zaWxlbnR8fHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiY2FtZXJhUG9zaXRpb25DaGFuZ2UiLGV2ZW50OnR9KX1fZml0T2JqZWN0VG9WaWV3cG9ydCh0KXtjb25zdCBlPW5ldyBMSnQsbj1uZXcgQ0p0LGk9bmV3IENKdDtlLnNldEZyb21PYmplY3QodCksZS5nZXRDZW50ZXIobiksZS5nZXRTaXplKGkpO2NvbnN0IHI9TWF0aC5tYXgoaS54LGkueSxpLnopLG89dGhpcy5fY2FtZXJhLmZvdiooTWF0aC5QSS8xODApO2xldCBhPTEuMjUqTWF0aC5hYnMoci8oMipNYXRoLnRhbihvLzIpKSk7Y29uc3Qgcz1lLm1pbi56O3RoaXMuc2V0Q2FtZXJhVmlld3BvaW50KHt4Om4ueCx5Om4ueSx6OmF9LDMqKHM8MD8tcythOmEtcyksbil9X2NyZWF0ZU1lc2godCxlKXtjb25zdCBuPXQudmVydGljZXMsaT10LmZhY2VzLHI9dC5jb2xvcnMsbz10aGlzLl9hcHBseURlZmF1bHRzKGUse21hdGVyaWFsOntjbHM6Ik1lc2hTdGFuZGFyZE1hdGVyaWFsIixjb2xvcjoiI2EwYTBhMCIscm91Z2huZXNzOjEsbWV0YWxuZXNzOjB9fSksYT1uZXcgYjF0LHM9bmV3IEZsb2F0MzJBcnJheShuLmZsYXQoKSk7YS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgUVF0KHMsMykpO2NvbnN0IGw9bmV3IFVpbnQxNkFycmF5KGkuZmxhdCgpKTtpZihyJiZyLmxlbmd0aCl7Y29uc3QgdD1yLmZsYXQoKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdPXRbZV0vMjU1O2Euc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IFFRdChuZXcgRmxvYXQzMkFycmF5KHQpLDMpKSxvLm1hdGVyaWFsPW8ubWF0ZXJpYWx8fHt9LG8ubWF0ZXJpYWwudmVydGV4Q29sb3JzPSEwfWEuY2VudGVyKCksYS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxhLnNldEluZGV4KG5ldyBRUXQobCwxKSksYS5jb21wdXRlVmVydGV4Tm9ybWFscygpO2xldCBjPW5ldyBKOHRbby5tYXRlcmlhbC5jbHNdKG8ubWF0ZXJpYWwpLHU9bmV3IEIxdChhLGMpO3UuY2FzdFNoYWRvdz0hMCx1LnJlY2VpdmVTaGFkb3c9ITAsdGhpcy5fc2NlbmUuYWRkKHUpLHRoaXMuX2xhc3RNZXNoPXV9X2NyZWF0ZUxpZ2h0cyh0LGUpe2ZvcihsZXQgbj0wO248ZS5saWdodHMubGVuZ3RoO24rKyl7Y29uc3QgaT1lLmxpZ2h0c1tuXTtsZXQgcj1uZXcgSjh0W2kuY2xzXShpLmNvbG9yLGkuaW50ZW5zaXR5KTtpLnBvc2l0aW9uJiZyLnBvc2l0aW9uLnNldChpLnBvc2l0aW9uWzBdLGkucG9zaXRpb25bMV0saS5wb3NpdGlvblsyXSksdC5hZGQocil9fX1sZXQgSTd0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zZWxlY3RlZFZpZXc9ImFsbCIsdGhpcy5hY3RpdmU9ITEsdGhpcy5fY29sb3JTY2FsZUZ1bmN0aW9uPUdSLHRoaXMuX3N0ZXBzPVtdLHRoaXMuX21lc2hWaWV3ZXJBdHRhY2hlZD0hMSx0aGlzLl9jYW1lcmFQb3NpdGlvbkluaXRpYWxpemVkPSExLHRoaXMuX2lzTWVzaExvYWRpbmc9ITF9Z2V0IF9ydW5Db2xvcigpe3JldHVybiB0aGlzLl9jb2xvclNjYWxlRnVuY3Rpb24odGhpcy5ydW4pfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9kYXRhUHJvdmlkZXI9bmV3IERLdCh0aGlzLnJlcXVlc3RNYW5hZ2VyKTtjb25zdCB0PW5ldyBON3QodGhpcy5fcnVuQ29sb3IpO3QuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlVXBkYXRlU2NlbmUiLHRoaXMuX3VwZGF0ZUNhbnZhc1NpemUuYmluZCh0aGlzKSksdC5hZGRFdmVudExpc3RlbmVyKCJjYW1lcmFQb3NpdGlvbkNoYW5nZSIsdGhpcy5fb25DYW1lcmFQb3NpdGlvbkNoYW5nZS5iaW5kKHRoaXMpKSx0aGlzLl9tZXNoVmlld2VyPXR9cmVsb2FkKCl7dGhpcy5hY3RpdmUmJnRoaXMuX2RhdGFQcm92aWRlciYmKHRoaXMuX2lzTWVzaExvYWRpbmc9ITAsdGhpcy5fZGF0YVByb3ZpZGVyLnJlbG9hZCh0aGlzLnJ1bix0aGlzLnRhZyx0aGlzLnNhbXBsZSkudGhlbigodD0+e3QmJih0aGlzLl9zdGVwcz10LHRoaXMuX3N0ZXBJbmRleD10Lmxlbmd0aC0xKX0pKS5jYXRjaCgodD0+e2lmKCF0fHwhdC5jb2RlfHx0LmNvZGUhPVJLdC5DQU5DRUxMRUQpdGhyb3cgdD10fHwiUmVzcG9uc2UgcHJvY2Vzc2luZyBmYWlsZWQuIixuZXcgRXJyb3IodCl9KSkpfV91cGRhdGVTY2VuZSgpe2NvbnN0IHQ9dGhpcy5fY3VycmVudFN0ZXA7dCYmdC5tZXNoJiYodGhpcy5fbWVzaFZpZXdlci51cGRhdGVTY2VuZSh0LHRoaXMpLHRoaXMuX2NhbWVyYVBvc2l0aW9uSW5pdGlhbGl6ZWR8fCh0aGlzLl9tZXNoVmlld2VyLnJlc2V0VmlldygpLHRoaXMuX2NhbWVyYVBvc2l0aW9uSW5pdGlhbGl6ZWQ9ITApLHRoaXMuX21lc2hWaWV3ZXJBdHRhY2hlZHx8KHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZCh0aGlzLl9tZXNoVmlld2VyLmdldFJlbmRlcmVyKCkuZG9tRWxlbWVudCksdGhpcy5fbWVzaFZpZXdlckF0dGFjaGVkPSEwKSl9X2RlYm91bmNlZEZldGNoTWVzaCgpe3RoaXMuZGVib3VuY2UoImZldGNoTWVzaCIsKCgpPT50aGlzLl9tYXliZUZldGNoTWVzaCgpKSwxMDApfV9tYXliZUZldGNoTWVzaCgpe3JldHVybiBuKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD10aGlzLl9jdXJyZW50U3RlcDtpZih0JiYhdC5tZXNoJiYhdC5tZXNoRmV0Y2hpbmcpe3QubWVzaEZldGNoaW5nPSEwLHRoaXMuX2lzTWVzaExvYWRpbmc9ITA7dHJ5e2NvbnN0IGU9eWllbGQgdGhpcy5fZGF0YVByb3ZpZGVyLmZldGNoRGF0YSh0LHRoaXMucnVuLHRoaXMudGFnLHRoaXMuc2FtcGxlKTt0Lm1lc2g9ZVswXSx0aGlzLm5vdGlmeVBhdGgoIl9jdXJyZW50U3RlcC5tZXNoIil9Y2F0Y2godCl7aWYoIXR8fCF0LmNvZGV8fHQuY29kZSE9Ukt0LkNBTkNFTExFRCl0aHJvdyB0PXR8fCJSZXNwb25zZSBwcm9jZXNzaW5nIGZhaWxlZC4iLG5ldyBFcnJvcih0KX1maW5hbGx5e3RoaXMuX2lzTWVzaExvYWRpbmc9ITEsdC5tZXNoRmV0Y2hpbmc9ITF9fX0pKX1fb25DYW1lcmFQb3NpdGlvbkNoYW5nZSgpe2lmKCF0aGlzLl9tZXNoVmlld2VyLmlzUmVhZHkoKSlyZXR1cm47Y29uc3QgdD1uZXcgQ3VzdG9tRXZlbnQoImNhbWVyYS1wb3NpdGlvbi1jaGFuZ2UiLHtkZXRhaWw6dGhpcy5fbWVzaFZpZXdlci5nZXRDYW1lcmFQb3NpdGlvbigpfSk7dGhpcy5kaXNwYXRjaEV2ZW50KHQpfXNldENhbWVyYVZpZXdwb2ludCh0LGUsbil7dGhpcy5fbWVzaFZpZXdlci5zZXRDYW1lcmFWaWV3cG9pbnQodCxlLG4pfV91cGRhdGVDYW52YXNTaXplKCl7Y29uc3QgdD10aGlzLm9mZnNldFdpZHRoLGU9dCxuPXRoaXMuJCQoIi50Zi1tZXNoLWxvYWRlci1oZWFkZXIiKS5vZmZzZXRIZWlnaHQ7dGhpcy5fbWVzaFZpZXdlci5zZXRDYW52YXNTaXplKHt3aWR0aDp0LGhlaWdodDplLW59KX1yZWRyYXcoKXt0aGlzLl91cGRhdGVDYW52YXNTaXplKCksdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5fbWVzaFZpZXdlci5kcmF3KCl9X2hhc0F0TGVhc3RPbmVTdGVwKHQpe3JldHVybiEhdCYmdC5sZW5ndGg+MH1faGFzTXVsdGlwbGVTdGVwcyh0KXtyZXR1cm4hIXQmJnQubGVuZ3RoPjF9Z2V0IF9jdXJyZW50U3RlcCgpe3JldHVybiB0aGlzLl9zdGVwc1t0aGlzLl9zdGVwSW5kZXhdfHxudWxsfWdldCBfc3RlcFZhbHVlKCl7Y29uc3QgdD10aGlzLl9jdXJyZW50U3RlcDtyZXR1cm4gdD90LnN0ZXA6MH1nZXQgX2N1cnJlbnRXYWxsVGltZSgpe2NvbnN0IHQ9dGhpcy5fY3VycmVudFN0ZXA7cmV0dXJuIHQ/S1IodC53YWxsX3RpbWUpOiIifV9nZXRNYXhTdGVwSW5kZXgodCl7cmV0dXJuIHQubGVuZ3RoLTF9X2dldFNhbXBsZVRleHQodCl7cmV0dXJuIFN0cmluZyh0KzEpfV9oYXNNdWx0aXBsZVNhbXBsZXModCl7cmV0dXJuIHQ+MX1fdXBkYXRlVmlldygpe3RoaXMuX21lc2hWaWV3ZXImJiJhbGwiPT10aGlzLnNlbGVjdGVkVmlldyYmdGhpcy5fbWVzaFZpZXdlci5yZXNldFZpZXcoKX10b0xvY2FsZVN0cmluZ18odCl7cmV0dXJuIHQudG9Mb2NhbGVTdHJpbmcoKX19O0k3dC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcgY29sb3I9IltbX3J1bkNvbG9yXV0iIGNsYXNzPSJ0Zi1tZXNoLWxvYWRlci1oZWFkZXIiPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2hhc011bHRpcGxlU2FtcGxlcyhvZlNhbXBsZXMpXV0iPgogICAgICAgIDxkaXY+c2FtcGxlOiBbW19nZXRTYW1wbGVUZXh0KHNhbXBsZSldXSBvZiBbW29mU2FtcGxlc11dPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzQXRMZWFzdE9uZVN0ZXAoX3N0ZXBzKV1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIj4KICAgICAgICAgICAgc3RlcAogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQiCiAgICAgICAgICAgICAgPltbdG9Mb2NhbGVTdHJpbmdfKF9zdGVwVmFsdWUpXV08L3NwYW4KICAgICAgICAgICAgPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIGhlYWRpbmctcmlnaHQiPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2N1cnJlbnRXYWxsVGltZV1dIj4KICAgICAgICAgICAgICBbW19jdXJyZW50V2FsbFRpbWVdXQogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbCByaWdodCI+CiAgICAgICAgICAgIDxwYXBlci1zcGlubmVyLWxpdGUgYWN0aXZlIGhpZGRlbiQ9IltbIV9pc01lc2hMb2FkaW5nXV0iPgogICAgICAgICAgICA8L3BhcGVyLXNwaW5uZXItbGl0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2hhc011bHRpcGxlU3RlcHMoX3N0ZXBzKV1dIj4KICAgICAgICA8ZGl2PgogICAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgICBpZD0ic3RlcHMiCiAgICAgICAgICAgIGltbWVkaWF0ZS12YWx1ZT0ie3tfc3RlcEluZGV4fX0iCiAgICAgICAgICAgIG1heD0iW1tfZ2V0TWF4U3RlcEluZGV4KF9zdGVwcyldXSIKICAgICAgICAgICAgbWF4LW1hcmtlcnM9IltbX2dldE1heFN0ZXBJbmRleChfc3RlcHMpXV0iCiAgICAgICAgICAgIHNuYXBzCiAgICAgICAgICAgIHN0ZXA9IjEiCiAgICAgICAgICAgIHZhbHVlPSJ7e19zdGVwSW5kZXh9fSIKICAgICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvdGYtY2FyZC1oZWFkaW5nPgogICAgPHN0eWxlPgogICAgICBwYXBlci1zbGlkZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7CiAgICAgIH0KICAgICAgLnRmLW1lc2gtbG9hZGVyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDVweDsKICAgICAgfQogICAgICBbaGlkZGVuXSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEk3dC5wcm90b3R5cGUsInJ1biIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxJN3QucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sSTd0LnByb3RvdHlwZSwic2FtcGxlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEk3dC5wcm90b3R5cGUsIm9mU2FtcGxlcyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxJN3QucHJvdG90eXBlLCJzZWxlY3RlZFZpZXciLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxJN3QucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsZHIpXSxJN3QucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixON3QpXSxJN3QucHJvdG90eXBlLCJfbWVzaFZpZXdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixES3QpXSxJN3QucHJvdG90eXBlLCJfZGF0YVByb3ZpZGVyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEk3dC5wcm90b3R5cGUsIl9jb2xvclNjYWxlRnVuY3Rpb24iLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheSxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxJN3QucHJvdG90eXBlLCJfc3RlcHMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEk3dC5wcm90b3R5cGUsIl9zdGVwSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxJN3QucHJvdG90eXBlLCJfbWVzaFZpZXdlckF0dGFjaGVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSTd0LnByb3RvdHlwZSwiX2NhbWVyYVBvc2l0aW9uSW5pdGlhbGl6ZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxJN3QucHJvdG90eXBlLCJfaXNNZXNoTG9hZGluZyIsdm9pZCAwKSx0KFtzKCJydW4iKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxJN3QucHJvdG90eXBlLCJfcnVuQ29sb3IiLG51bGwpLHQoW2EoInJ1biIsInRhZyIsImFjdGl2ZSIsIl9kYXRhUHJvdmlkZXIiLCJfbWVzaFZpZXdlciIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sSTd0LnByb3RvdHlwZSwicmVsb2FkIixudWxsKSx0KFthKCJfY3VycmVudFN0ZXAuKiIsIl9tZXNoVmlld2VyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxJN3QucHJvdG90eXBlLCJfdXBkYXRlU2NlbmUiLG51bGwpLHQoW2EoIl9jdXJyZW50U3RlcCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sSTd0LnByb3RvdHlwZSwiX2RlYm91bmNlZEZldGNoTWVzaCIsbnVsbCksdChbcygiX3N0ZXBzIiwiX3N0ZXBJbmRleCIpLGUoImRlc2lnbjp0eXBlIixPYmplY3QpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEk3dC5wcm90b3R5cGUsIl9jdXJyZW50U3RlcCIsbnVsbCksdChbcygiX2N1cnJlbnRTdGVwIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSTd0LnByb3RvdHlwZSwiX3N0ZXBWYWx1ZSIsbnVsbCksdChbcygiX2N1cnJlbnRTdGVwIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSTd0LnByb3RvdHlwZSwiX2N1cnJlbnRXYWxsVGltZSIsbnVsbCksdChbYSgic2VsZWN0ZWRWaWV3IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxJN3QucHJvdG90eXBlLCJfdXBkYXRlVmlldyIsbnVsbCksSTd0PXQoW2koInRmLW1lc2gtbG9hZGVyIildLEk3dCk7bGV0IFI3dD1jbGFzcyBleHRlbmRzIHlle2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5fdGFnRmlsdGVyPSIuKiIsdGhpcy5fc2VsZWN0ZWRWaWV3PSJhbGwiLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcix3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwoKCk9Pnt0aGlzLl9oYW5kbGVXaW5kb3dSZXNpemUoKX0pLCExKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9X2dldEFsbENoaWxkcmVuKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLW1lc2gtbG9hZGVyIikpfV9vbkNhbWVyYVBvc2l0aW9uQ2hhbmdlZCh0KXsic2hhcmUiPT10aGlzLl9zZWxlY3RlZFZpZXcmJnRoaXMuX2dldEFsbENoaWxkcmVuKCkuZm9yRWFjaCgoZT0+e3QudGFyZ2V0IT1lJiZlLnNldENhbWVyYVZpZXdwb2ludCh0LmRldGFpbC5wb3NpdGlvbix0LmRldGFpbC5mYXIsdC5kZXRhaWwudGFyZ2V0KX0pKX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1yZWxvYWQoKXt0aGlzLl9mZXRjaFRhZ3MoKS50aGVuKHRoaXMuX3JlbG9hZE1lc2hlcy5iaW5kKHRoaXMpKX1faGFuZGxlV2luZG93UmVzaXplKCl7dGhpcy5fZ2V0QWxsQ2hpbGRyZW4oKS5mb3JFYWNoKCh0PT57dC5yZWRyYXcoKX0pKX1fZmV0Y2hUYWdzKCl7Y29uc3QgdD1fcigpLnBsdWdpblJvdXRlKCJtZXNoIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoU2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47Y29uc3QgZT1hcihTZS5leHBvcnRzLm1hcFZhbHVlcyh0LCh0PT5PYmplY3Qua2V5cyh0KSkpKTt0aGlzLl9kYXRhTm90Rm91bmQ9MD09PWUubGVuZ3RoLHRoaXMuX3J1blRvVGFnSW5mbz10fSkpfV9yZWxvYWRNZXNoZXMoKXt0aGlzLl9nZXRBbGxDaGlsZHJlbigpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfWdldCBfY2F0ZWdvcmllcygpe3ZhciB0PXRoaXMuX3J1blRvVGFnSW5mbyxlPXRoaXMuX3NlbGVjdGVkUnVucyxuPXRoaXMuX3RhZ0ZpbHRlcjtmdW5jdGlvbiBpKGUpe2NvbnN0IG49dFtlLnJ1bl1bZS50YWddLnNhbXBsZXM7cmV0dXJuIFNlLmV4cG9ydHMucmFuZ2UobikubWFwKCh0PT5PYmplY3QuYXNzaWduKHt9LGUse3NhbXBsZTp0LG9mU2FtcGxlczpufSkpKX1yZXR1cm4gTXIoU2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+T2JqZWN0LmtleXModCkpKSxlLG4pLm1hcCgodD0+T2JqZWN0LmFzc2lnbih7fSx0LHtpdGVtczpbXS5jb25jYXQuYXBwbHkoW10sdC5pdGVtcy5tYXAoaSkpfSkpKX19O1I3dC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgICA8ZGl2IHNsb3Q9InNpZGViYXIiIGNsYXNzPSJhbGwtY29udHJvbHMiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiB2aWV3LWNvbnRyb2wiPgogICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj5Qb2ludCBvZiB2aWV3PC9oMz4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tZ3JvdXAKICAgICAgICAgICAgICAgIGlkPSJ2aWV3LXJhZGlvLWdyb3VwIgogICAgICAgICAgICAgICAgc2VsZWN0ZWQ9Int7X3NlbGVjdGVkVmlld319IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24gaWQ9ImFsbC1yYWRpby1idXR0b24iIG5hbWU9ImFsbCI+CiAgICAgICAgICAgICAgICAgIERpc3BsYXkgYWxsIHBvaW50cwogICAgICAgICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgIGZvcj0iYWxsLXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIFpvb20gYW5kIGNlbnRlciBjYW1lcmEgdG8gZGlzcGxheSBhbGwgcG9pbnRzIGF0IG9uY2UuIE5vdGUsCiAgICAgICAgICAgICAgICAgIHRoYXQgc29tZSBwb2ludHMgY291bGQgYmUgdG9vIGZhciAoaS5lLiB0b28gc21hbGwpIHRvIGJlCiAgICAgICAgICAgICAgICAgIHZpc2libGUuCiAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIGlkPSJ1c2VyLXJhZGlvLWJ1dHRvbiIgbmFtZT0idXNlciI+CiAgICAgICAgICAgICAgICAgIEN1cnJlbnQgdmlldwogICAgICAgICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgIGZvcj0idXNlci1yYWRpby1idXR0b24iCiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICBLZWVwIGN1cnJlbnQgY2FtZXJhIHBvc2l0aW9uIGFuZCB6b29tIGxldmVsLgogICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbiBpZD0ic2hhcmUtcmFkaW8tYnV0dG9uIiBuYW1lPSJzaGFyZSI+CiAgICAgICAgICAgICAgICAgIFNoYXJlIHZpZXdwb2ludAogICAgICAgICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgIGZvcj0ic2hhcmUtcmFkaW8tYnV0dG9uIgogICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgU2hhcmUgdmlld3BvaW50IGFtb25nIGFsbCBjYW1lcmFzLgogICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tZ3JvdXA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3Igc2VsZWN0ZWQtcnVucz0ie3tfc2VsZWN0ZWRSdW5zfX0iPgogICAgICAgICAgPC90Zi1ydW5zLXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBzbG90PSJjZW50ZXIiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm8tZGF0YS13YXJuaW5nIj4KICAgICAgICAgICAgPGgzPk5vIHBvaW50IGNsb3VkIGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICBZb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IHBvaW50IGNsb3VkIGRhdGEgdG8geW91ciBldmVudCBmaWxlcy4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UZW5zb3JCb2FyZCBjYW7igJl0IGZpbmQgeW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8KICAgICAgICAgICAgICBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICAgID4uCiAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8dGYtdGFnLWZpbHRlcmVyIHRhZy1maWx0ZXI9Int7X3RhZ0ZpbHRlcn19Ij48L3RmLXRhZy1maWx0ZXJlcj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgY2F0ZWdvcnk9IltbY2F0ZWdvcnldXSIKICAgICAgICAgICAgICBpbml0aWFsLW9wZW5lZD0iW1tfc2hvdWxkT3BlbihpbmRleCldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1tZXNoLWxvYWRlcgogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLXZpZXc9IltbX3NlbGVjdGVkVmlld11dIgogICAgICAgICAgICAgICAgICBydW49IltbaXRlbS5ydW5dXSIKICAgICAgICAgICAgICAgICAgdGFnPSJbW2l0ZW0udGFnXV0iCiAgICAgICAgICAgICAgICAgIHNhbXBsZT0iW1tpdGVtLnNhbXBsZV1dIgogICAgICAgICAgICAgICAgICBvZi1zYW1wbGVzPSJbW2l0ZW0ub2ZTYW1wbGVzXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgICAgY2xhc3M9InRmLW1lc2gtbG9hZGVyLWNvbnRhaW5lciIKICAgICAgICAgICAgICAgICAgb24tY2FtZXJhLXBvc2l0aW9uLWNoYW5nZT0iX29uQ2FtZXJhUG9zaXRpb25DaGFuZ2VkIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPC90Zi1tZXNoLWxvYWRlcj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KCiAgICA8c3R5bGUgaW5jbHVkZT0iZGFzaGJvYXJkLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICAubm8tZGF0YS13YXJuaW5nIHsKICAgICAgICBtYXgtd2lkdGg6IDU0MHB4OwogICAgICAgIG1hcmdpbjogODBweCBhdXRvIDAgYXV0bzsKICAgICAgfQogICAgICBwYXBlci1yYWRpby1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDVweDsKICAgICAgfQogICAgICAuc2lkZWJhci1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICB9CgogICAgICAucnVucy1zZWxlY3RvciB7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICB9CgogICAgICB0Zi1ydW5zLXNlbGVjdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICAudmlldy1jb250cm9sIHsKICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudmlldy1jb250cm9sIGgzLnRpdGxlIHsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmFsbGNvbnRyb2xzIC52aWV3LWNvbnRyb2wgcGFwZXItcmFkaW8tZ3JvdXAgewogICAgICAgIG1hcmdpbi10b3A6IDVweDsKICAgICAgfQogICAgICAvKiBMYXlvdXQgbXVzdCBiZSBob3Jpem9udGFsLCBpLmUuIGl0ZW1zIGFycmFuZ2VkIGluIGEgcm93LiBJZiBpdGVtcyBjYW5ub3QgZml0IGluIGEgcm93LAogICAgICAgKiB0aGV5IHNob3VsZCBiZSBtb3ZlZCB0byBuZXh0IGxpbmUuIEFsbCBpdGVtcyBtdXN0IGJlIHNxdWFyZSBhdCBhbGwgdGltZXMuIE1pbmltdW0gc2l6ZSBvZgogICAgICAgKiB0aGUgaXRlbSBpcyA0ODBweC4gVGhpcyBtZWFucyB0aGF0IG1heGltdW0gc2l6ZSBvZiB0aGUgaXRlbSBtdXN0IGJlIDQ4MHB4ICsgNDc5cHggPSA5NTlweC4KICAgICAgICogKi8KICAgICAgLmhvcml6b250YWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgdGYtbWVzaC1sb2FkZXIgewogICAgICAgIHdpZHRoOiA0ODBweDsKICAgICAgICBmbGV4LWJhc2lzOiA0ODBweDsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFI3dC5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFI3dC5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sUjd0LnByb3RvdHlwZSwiX3J1blRvVGFnSW5mbyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFI3dC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUjd0LnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUjd0LnByb3RvdHlwZSwiX3NlbGVjdGVkVmlldyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxSN3QucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbcygiX3J1blRvVGFnSW5mbyIsIl9zZWxlY3RlZFJ1bnMiLCJfdGFnRmlsdGVyIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxSN3QucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCksUjd0PXQoW2koIm1lc2gtZGFzaGJvYXJkIiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sUjd0KTtsZXQgTzd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX3J1blRvUHJDdXJ2ZUVudHJ5PXt9LHRoaXMuX3ByZXZpb3VzUnVuVG9QckN1cnZlRW50cnk9e30sdGhpcy5fY29sb3JTY2FsZUZ1bmN0aW9uPXtzY2FsZTpHUn0sdGhpcy5fY2FuY2VsbGVyPW5ldyBYUix0aGlzLl94Q29tcG9uZW50c0NyZWF0aW9uTWV0aG9kPSgpPT57Y29uc3QgdD1uZXcgck8uU2NhbGVzLkxpbmVhcjtyZXR1cm57c2NhbGU6dCxheGlzOm5ldyByTy5BeGVzLk51bWVyaWModCwiYm90dG9tIiksYWNjZXNzb3I6dD0+dC5yZWNhbGx9fSx0aGlzLl95VmFsdWVBY2Nlc3Nvcj10PT50LnByZWNpc2lvbix0aGlzLl90b29sdGlwQ29sdW1ucz0oKCk9Pntjb25zdCB0PXdUdCg0KSxlPWU9PmlzTmFOKGUpPyJOYU4iOnQoZSk7cmV0dXJuW3t0aXRsZToiUnVuIixldmFsdWF0ZTp0PT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lfSx7dGl0bGU6IlRocmVzaG9sZCIsZXZhbHVhdGU6dD0+ZSh0LmRhdHVtLnRocmVzaG9sZHMpfSx7dGl0bGU6IlByZWNpc2lvbiIsZXZhbHVhdGU6dD0+ZSh0LmRhdHVtLnByZWNpc2lvbil9LHt0aXRsZToiUmVjYWxsIixldmFsdWF0ZTp0PT5lKHQuZGF0dW0ucmVjYWxsKX0se3RpdGxlOiJUUCIsZXZhbHVhdGU6dD0+dC5kYXR1bS50cnVlX3Bvc2l0aXZlc30se3RpdGxlOiJGUCIsZXZhbHVhdGU6dD0+dC5kYXR1bS5mYWxzZV9wb3NpdGl2ZXN9LHt0aXRsZToiVE4iLGV2YWx1YXRlOnQ9PnQuZGF0dW0udHJ1ZV9uZWdhdGl2ZXN9LHt0aXRsZToiRk4iLGV2YWx1YXRlOnQ9PnQuZGF0dW0uZmFsc2VfbmVnYXRpdmVzfV19KSgpLHRoaXMuX3Nlcmllc0RhdGFGaWVsZHM9WyJ0aHJlc2hvbGRzIiwicHJlY2lzaW9uIiwicmVjYWxsIiwidHJ1ZV9wb3NpdGl2ZXMiLCJmYWxzZV9wb3NpdGl2ZXMiLCJ0cnVlX25lZ2F0aXZlcyIsImZhbHNlX25lZ2F0aXZlcyJdLHRoaXMuX2RlZmF1bHRYUmFuZ2U9Wy0uMDUsMS4wNV0sdGhpcy5fZGVmYXVsdFlSYW5nZT1bLS4wNSwxLjA1XSx0aGlzLl9yZXF1ZXN0RGF0YT0odCxlLG4pPT57Y29uc3QgaT1fcigpLnBsdWdpblJvdXRlKCJwcl9jdXJ2ZXMiLCIvcHJfY3VydmVzIik7UHJvbWlzZS5hbGwodC5tYXAoKHQ9Pntjb25zdCBuPWlPKGkse3RhZzp0aGlzLnRhZyxydW46dH0pO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QobikudGhlbigobj0+e2Uoe2l0ZW06dCxkYXRhOm59KX0pKX0pKSkuZmluYWxseSgoKCk9PntuKCl9KSl9LHRoaXMuX3Ntb290aGluZ0VuYWJsZWQ9ITF9X2NyZWF0ZVByb2Nlc3NEYXRhRnVuY3Rpb24oKXtyZXR1cm4odCxlLG4pPT57dGhpcy5zZXQoIl9ydW5Ub0RhdGFPdmVyVGltZSIsT2JqZWN0LmFzc2lnbih7fSx0aGlzLl9ydW5Ub0RhdGFPdmVyVGltZSxuKSl9fV9jb21wdXRlUnVuQ29sb3IodCl7cmV0dXJuIEdSKHQpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9hdHRhY2hlZD0hMCx0aGlzLnJlbG9hZCgpfV9nZXRDaGFydERhdGFMb2FkZXIoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoInRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIiKX1yZWxvYWQoKXt0aGlzLl9hdHRhY2hlZCYmKDAhPT10aGlzLnJ1bnMubGVuZ3RoP3RoaXMuX2dldENoYXJ0RGF0YUxvYWRlcigpLnJlbG9hZCgpOnRoaXMuc2V0KCJfcnVuVG9EYXRhT3ZlclRpbWUiLHt9KSl9X3NldENoYXJ0RGF0YSgpe3ZhciB0PXRoaXMuX3J1blRvUHJDdXJ2ZUVudHJ5LGU9dGhpcy5fcHJldmlvdXNSdW5Ub1ByQ3VydmVFbnRyeSxuPXRoaXMuX3NldE9mUmVsZXZhbnRSdW5zO1NlLmV4cG9ydHMuZm9yT3duKHQsKChpLHIpPT57Y29uc3Qgbz1lW3JdO28mJnRbcl0uc3RlcD09PW8uc3RlcHx8KG5bcl0/dGhpcy5fdXBkYXRlU2VyaWVzRGF0YUZvclJ1bihyLGkpOnRoaXMuX2NsZWFyU2VyaWVzRGF0YShyKSl9KSl9X3VwZGF0ZVNlcmllc0RhdGFGb3JSdW4odCxlKXtjb25zdCBuPVNlLmV4cG9ydHMucmVkdWNlKHRoaXMuX3Nlcmllc0RhdGFGaWVsZHMsKCh0LG4pPT4odFtuXT1lW25dLnNsaWNlKCkucmV2ZXJzZSgpLHQpKSx7fSksaT1uZXcgQXJyYXkoblt0aGlzLl9zZXJpZXNEYXRhRmllbGRzWzBdXS5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKWlbdF09U2UuZXhwb3J0cy5tYXBWYWx1ZXMobiwoZT0+ZVt0XSkpO2NvbnN0IHI9dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCk7ci5zZXRTZXJpZXNEYXRhKHQsaSksci5jb21taXRDaGFuZ2VzKCl9X2NsZWFyU2VyaWVzRGF0YSh0KXtjb25zdCBlPXRoaXMuX2dldENoYXJ0RGF0YUxvYWRlcigpO2Uuc2V0U2VyaWVzRGF0YSh0LFtdKSxlLmNvbW1pdENoYW5nZXMoKX1fdXBkYXRlUnVuVG9QckN1cnZlRW50cnkoKXt2YXIgdD10aGlzLnJ1blRvU3RlcENhcDtjb25zdCBlPXt9O1NlLmV4cG9ydHMuZm9yT3duKHRoaXMuX3J1blRvRGF0YU92ZXJUaW1lLCgobixpKT0+e24mJm4ubGVuZ3RoJiYoZVtpXT10aGlzLl9jb21wdXRlRW50cnlDbG9zZXN0T3JFcXVhbFRvU3RlcENhcCh0W2ldLG4pKX0pKSx0aGlzLnNldCgiX3ByZXZpb3VzUnVuVG9QckN1cnZlRW50cnkiLHRoaXMuX3J1blRvUHJDdXJ2ZUVudHJ5KSx0aGlzLnNldCgiX3J1blRvUHJDdXJ2ZUVudHJ5IixlKX1fbm90aWZ5RGF0YUNoYW5nZSgpe3RoaXMub25EYXRhQ2hhbmdlJiZ0aGlzLm9uRGF0YUNoYW5nZSh0aGlzLl9ydW5Ub0RhdGFPdmVyVGltZSl9X2NvbXB1dGVFbnRyeUNsb3Nlc3RPckVxdWFsVG9TdGVwQ2FwKHQsZSl7Y29uc3Qgbj1NYXRoLm1pbihTZS5leHBvcnRzLnNvcnRlZEluZGV4KGUubWFwKCh0PT50LnN0ZXApKSx0KSxlLmxlbmd0aC0xKTtyZXR1cm4gZVtuXX1nZXQgX3J1bnNXaXRoU3RlcEF2YWlsYWJsZSgpe3ZhciB0PXRoaXMuX3J1blRvUHJDdXJ2ZUVudHJ5O3JldHVybiBTZS5leHBvcnRzLmZpbHRlcih0aGlzLnJ1bnMsKGU9PnRbZV0pKS5zb3J0KCl9Z2V0IF9zZXRPZlJlbGV2YW50UnVucygpe2NvbnN0IHQ9e307cmV0dXJuIFNlLmV4cG9ydHMuZm9yRWFjaCh0aGlzLl9ydW5zV2l0aFN0ZXBBdmFpbGFibGUsKGU9Pnt0W2VdPSEwfSkpLHR9X2NvbXB1dGVDdXJyZW50U3RlcEZvclJ1bih0LGUpe2NvbnN0IG49dFtlXTtyZXR1cm4gbj9uLnN0ZXA6bnVsbH1fY29tcHV0ZUN1cnJlbnRXYWxsVGltZUZvclJ1bih0LGUpe2NvbnN0IG49dFtlXTtyZXR1cm4gbj9uZXcgRGF0ZSgxZTMqbi53YWxsX3RpbWUpLnRvU3RyaW5nKCk6bnVsbH1fdG9nZ2xlRXhwYW5kZWQodCl7dGhpcy5zZXQoIl9leHBhbmRlZCIsIXRoaXMuX2V4cGFuZGVkKSx0aGlzLnJlZHJhdygpfV9yZXNldERvbWFpbigpe3RoaXMuX2dldENoYXJ0RGF0YUxvYWRlcigpLnJlc2V0RG9tYWluKCl9cmVkcmF3KCl7dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCkucmVkcmF3KCl9fTtPN3QudGVtcGxhdGU9X2VgCiAgICA8dGYtY2FyZC1oZWFkaW5nCiAgICAgIHRhZz0iW1t0YWddXSIKICAgICAgZGlzcGxheS1uYW1lPSJbW3RhZ01ldGFkYXRhLmRpc3BsYXlOYW1lXV0iCiAgICAgIGRlc2NyaXB0aW9uPSJbW3RhZ01ldGFkYXRhLmRlc2NyaXB0aW9uXV0iCiAgICA+PC90Zi1jYXJkLWhlYWRpbmc+CgogICAgPHRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIKICAgICAgeC1jb21wb25lbnRzLWNyZWF0aW9uLW1ldGhvZD0iW1tfeENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZF1dIgogICAgICB5LXZhbHVlLWFjY2Vzc29yPSJbW195VmFsdWVBY2Nlc3Nvcl1dIgogICAgICB0b29sdGlwLWNvbHVtbnM9IltbX3Rvb2x0aXBDb2x1bW5zXV0iCiAgICAgIGNvbG9yLXNjYWxlPSJbW19jb2xvclNjYWxlRnVuY3Rpb25dXSIKICAgICAgZGVmYXVsdC14LXJhbmdlPSJbW19kZWZhdWx0WFJhbmdlXV0iCiAgICAgIGRlZmF1bHQteS1yYW5nZT0iW1tfZGVmYXVsdFlSYW5nZV1dIgogICAgICBzbW9vdGhpbmctZW5hYmxlZD0iW1tfc21vb3RoaW5nRW5hYmxlZF1dIgogICAgICByZXF1ZXN0LW1hbmFnZXI9IltbcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgZGF0YS10by1sb2FkPSJbW3J1bnNdXSIKICAgICAgZGF0YS1zZXJpZXM9IltbcnVuc11dIgogICAgICBsb2FkLWtleT0iW1t0YWddXSIKICAgICAgcmVxdWVzdC1kYXRhPSJbW19yZXF1ZXN0RGF0YV1dIgogICAgICBsb2FkLWRhdGEtY2FsbGJhY2s9IltbX2NyZWF0ZVByb2Nlc3NEYXRhRnVuY3Rpb24oKV1dIgogICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICA+PC90Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyPgoKICAgIDxkaXYgaWQ9ImJ1dHRvbnMtcm93Ij4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19leHBhbmRlZF1dIgogICAgICAgIGljb249ImZ1bGxzY3JlZW4iCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBpY29uPSJzZXR0aW5ncy1vdmVyc2NhbiIKICAgICAgICBvbi10YXA9Il9yZXNldERvbWFpbiIKICAgICAgICB0aXRsZT0iUmVzZXQgYXhlcyB0byBbMCwgMV0uIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9InN0ZXAtbGVnZW5kIj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfcnVuc1dpdGhTdGVwQXZhaWxhYmxlXV0iIGFzPSJydW4iPgogICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1yb3ciPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iY29sb3ItYm94IgogICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZDogW1tfY29tcHV0ZVJ1bkNvbG9yKHJ1bildXTsiCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICBbW3J1bl1dIGlzIGF0CiAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RlcC1sYWJlbC10ZXh0Ij4KICAgICAgICAgICAgc3RlcCBbW19jb21wdXRlQ3VycmVudFN0ZXBGb3JSdW4oX3J1blRvUHJDdXJ2ZUVudHJ5LCBydW4pXV0gPC9zcGFuCiAgICAgICAgICA+PGJyIC8+CiAgICAgICAgICA8c3BhbiBjbGFzcz0id2FsbC10aW1lLWxhYmVsLXRleHQiPgogICAgICAgICAgICAoW1tfY29tcHV0ZUN1cnJlbnRXYWxsVGltZUZvclJ1bihfcnVuVG9QckN1cnZlRW50cnksIHJ1bildXSkKICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB3aWR0aDogNTAwcHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgIH0KICAgICAgOmhvc3QoW19leHBhbmRlZF0pIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICB0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyIHsKICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICA6aG9zdChbX2V4cGFuZGVkXSkgdGYtbGluZS1jaGFydC1kYXRhLWxvYWRlciB7CiAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgfQogICAgICAjYnV0dG9ucy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfQogICAgICAjYnV0dG9ucy1yb3cgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGNvbG9yOiAjMjE5NmYzOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQogICAgICAjYnV0dG9ucy1yb3cgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CiAgICAgICNzdGVwLWxlZ2VuZCB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBmb250LXNpemU6IDAuOGVtOwogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogMCAwIDAgMTBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAubGVnZW5kLXJvdyB7CiAgICAgICAgbWFyZ2luOiA1cHggMCA1cHggMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAuY29sb3ItYm94IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgfQogICAgICAuc3RlcC1sYWJlbC10ZXh0IHsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQogICAgICAud2FsbC10aW1lLWxhYmVsLXRleHQgewogICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIGZvbnQtc2l6ZTogMC44ZW07CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sTzd0LnByb3RvdHlwZSwicnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxPN3QucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTzd0LnByb3RvdHlwZSwidGFnTWV0YWRhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTzd0LnByb3RvdHlwZSwicnVuVG9TdGVwQ2FwIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0sTzd0LnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxPN3QucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sTzd0LnByb3RvdHlwZSwiX2V4cGFuZGVkIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE83dC5wcm90b3R5cGUsIl9ydW5Ub1ByQ3VydmVFbnRyeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxPN3QucHJvdG90eXBlLCJfcHJldmlvdXNSdW5Ub1ByQ3VydmVFbnRyeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxPN3QucHJvdG90eXBlLCJfcnVuVG9EYXRhT3ZlclRpbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxPN3QucHJvdG90eXBlLCJvbkRhdGFDaGFuZ2UiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTzd0LnByb3RvdHlwZSwiX2NvbG9yU2NhbGVGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixYUildLE83dC5wcm90b3R5cGUsIl9jYW5jZWxsZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxPN3QucHJvdG90eXBlLCJfYXR0YWNoZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTzd0LnByb3RvdHlwZSwiX3hDb21wb25lbnRzQ3JlYXRpb25NZXRob2QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTzd0LnByb3RvdHlwZSwiX3lWYWx1ZUFjY2Vzc29yIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxPN3QucHJvdG90eXBlLCJfdG9vbHRpcENvbHVtbnMiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLE83dC5wcm90b3R5cGUsIl9zZXJpZXNEYXRhRmllbGRzIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxPN3QucHJvdG90eXBlLCJfZGVmYXVsdFhSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sTzd0LnByb3RvdHlwZSwiX2RlZmF1bHRZUmFuZ2UiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxPN3QucHJvdG90eXBlLCJfcmVxdWVzdERhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxPN3QucHJvdG90eXBlLCJfc21vb3RoaW5nRW5hYmxlZCIsdm9pZCAwKSx0KFthKCJydW5zIiwidGFnIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxPN3QucHJvdG90eXBlLCJyZWxvYWQiLG51bGwpLHQoW2EoIl9ydW5Ub1ByQ3VydmVFbnRyeSIsIl9wcmV2aW91c1J1blRvUHJDdXJ2ZUVudHJ5IiwiX3NldE9mUmVsZXZhbnRSdW5zIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxPN3QucHJvdG90eXBlLCJfc2V0Q2hhcnREYXRhIixudWxsKSx0KFthKCJfcnVuVG9EYXRhT3ZlclRpbWUiLCJydW5Ub1N0ZXBDYXAiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLE83dC5wcm90b3R5cGUsIl91cGRhdGVSdW5Ub1ByQ3VydmVFbnRyeSIsbnVsbCksdChbYSgiX3J1blRvRGF0YU92ZXJUaW1lIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxPN3QucHJvdG90eXBlLCJfbm90aWZ5RGF0YUNoYW5nZSIsbnVsbCksdChbcygicnVucyIsIl9ydW5Ub1ByQ3VydmVFbnRyeSIpLGUoImRlc2lnbjp0eXBlIixBcnJheSksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sTzd0LnByb3RvdHlwZSwiX3J1bnNXaXRoU3RlcEF2YWlsYWJsZSIsbnVsbCksdChbcygiX3J1bnNXaXRoU3RlcEF2YWlsYWJsZSIpLGUoImRlc2lnbjp0eXBlIixPYmplY3QpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLE83dC5wcm90b3R5cGUsIl9zZXRPZlJlbGV2YW50UnVucyIsbnVsbCksTzd0PXQoW2koInRmLXByLWN1cnZlLWNhcmQiKV0sTzd0KTtsZXQgejd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3J1blRvU3RlcEluZGV4PXt9fV9jb21wdXRlQ29sb3JGb3JSdW4odCl7cmV0dXJuIEdSKHQpfV9jb21wdXRlVGltZVRleHRGb3JSdW4odCxlLG4saSl7Y29uc3Qgcj1lW25dO2lmKCFTZS5leHBvcnRzLmlzTnVtYmVyKHIpKXJldHVybiIiO2NvbnN0IG89dFtuXTtpZighbylyZXR1cm4iIjtjb25zdCBhPW9bcl1baV07aWYoInN0ZXAiPT09aSlyZXR1cm5gc3RlcCAke2F9YDtpZigicmVsYXRpdmUiPT09aSlyZXR1cm4gYTwxP2AkeygxZTMqYSkudG9GaXhlZCgyKX0gbXNgOmAke2EudG9GaXhlZCgyKX0gc2A7aWYoIndhbGxfdGltZSI9PT1pKXJldHVybiBuZXcgRGF0ZSgxZTMqYSkudG9TdHJpbmcoKTt0aHJvdyBuZXcgRXJyb3IoYFRoZSBkaXNwbGF5IHR5cGUgb2YgJHtpfSBpcyBub3QgcmVjb2duaXplZC5gKX1fc2xpZGVyVmFsdWVDaGFuZ2VkKHQpe2NvbnN0IGU9dC50YXJnZXQuZGF0YXNldC5ydW4sbj10LnRhcmdldC5pbW1lZGlhdGVWYWx1ZSxpPU9iamVjdC5hc3NpZ24oe30sdGhpcy5fcnVuVG9TdGVwSW5kZXgpO2lzTmFOKG4pP2RlbGV0ZSBpW2VdOmlbZV09dC50YXJnZXQuaW1tZWRpYXRlVmFsdWUsdGhpcy5fcnVuVG9TdGVwSW5kZXg9aX1fY29tcHV0ZU1heFN0ZXBJbmRleEZvclJ1bih0LGUpe2NvbnN0IG49dFtlXTtyZXR1cm4gbiYmbi5sZW5ndGg/bi5sZW5ndGgtMTowfV91cGRhdGVTdGVwc0Zvck5ld1J1bnMoKXt2YXIgdD10aGlzLnJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXM7Y29uc3QgZT1PYmplY3QuYXNzaWduKHt9LHRoaXMuX3J1blRvU3RlcEluZGV4KTtTZS5leHBvcnRzLmZvck93bih0LCgodCxuKT0+e1NlLmV4cG9ydHMuaXNOdW1iZXIoZVtuXSl8fChlW25dPXQubGVuZ3RoLTEpfSkpLHRoaXMuX3J1blRvU3RlcEluZGV4PWV9X2dldFN0ZXAodCxlKXtyZXR1cm4gdGhpcy5fcnVuVG9TdGVwSW5kZXg/dGhpcy5fcnVuVG9TdGVwSW5kZXhbZV06MH1fY29tcHV0ZVJ1blRvU3RlcCh0LGUpe2NvbnN0IG49e307cmV0dXJuIFNlLmV4cG9ydHMuZm9yT3duKGUsKChlLGkpPT57Y29uc3Qgcj10W2ldO3ImJihuW2ldPXJbZV0uc3RlcCl9KSksbn1nZXQgX3J1bnNXaXRoU2xpZGVycygpe3ZhciB0PXRoaXMucnVuVG9BdmFpbGFibGVUaW1lRW50cmllcztyZXR1cm4gdGhpcy5ydW5zLmZpbHRlcigoZT0+dFtlXSkpfX07ejd0LnRlbXBsYXRlPV9lYAogICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfcnVuc1dpdGhTbGlkZXJzXV0iIGFzPSJydW4iPgogICAgICA8ZGl2IGNsYXNzPSJydW4td2lkZ2V0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJydW4tZGlzcGxheS1jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0icnVuLWNvbG9yLWJveCIKICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQ6W1tfY29tcHV0ZUNvbG9yRm9yUnVuKHJ1bildXTsiCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJydW4tdGV4dCI+W1tydW5dXTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0ZXAtZGlzcGxheS1jb250YWluZXIiPgogICAgICAgICAgW1tfY29tcHV0ZVRpbWVUZXh0Rm9yUnVuKHJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXMsIF9ydW5Ub1N0ZXBJbmRleCwKICAgICAgICAgIHJ1biwgdGltZURpc3BsYXlUeXBlKV1dCiAgICAgICAgPC9kaXY+CiAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgZGF0YS1ydW4kPSJbW3J1bl1dIgogICAgICAgICAgc3RlcD0iMSIKICAgICAgICAgIHR5cGU9Im51bWJlciIKICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgIG1heD0iW1tfY29tcHV0ZU1heFN0ZXBJbmRleEZvclJ1bihydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzLCBydW4pXV0iCiAgICAgICAgICB2YWx1ZT0iW1tfZ2V0U3RlcChfcnVuVG9TdGVwSW5kZXgsIHJ1bildXSIKICAgICAgICAgIG9uLWltbWVkaWF0ZS12YWx1ZS1jaGFuZ2VkPSJfc2xpZGVyVmFsdWVDaGFuZ2VkIgogICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgPC9kaXY+CiAgICA8L3RlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAucnVuLXdpZGdldCB7CiAgICAgICAgbWFyZ2luOiAxMHB4IDAgMCAwOwogICAgICB9CiAgICAgIHBhcGVyLXNsaWRlciB7CiAgICAgICAgbWFyZ2luOiAtOHB4IDAgMCAtMTVweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAuc3RlcC1kaXNwbGF5LWNvbnRhaW5lciB7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBtYXJnaW46IDAgMTVweCAwIDA7CiAgICAgIH0KICAgICAgLnJ1bi10ZXh0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KICAgICAgLnJ1bi1jb2xvci1ib3ggewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLHo3dC5wcm90b3R5cGUsInJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sejd0LnByb3RvdHlwZSwicnVuVG9BdmFpbGFibGVUaW1lRW50cmllcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITAsY29tcHV0ZWQ6Il9jb21wdXRlUnVuVG9TdGVwKHJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXMsIF9ydW5Ub1N0ZXBJbmRleCkifSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHo3dC5wcm90b3R5cGUsInJ1blRvU3RlcCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx6N3QucHJvdG90eXBlLCJ0aW1lRGlzcGxheVR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sejd0LnByb3RvdHlwZSwiX3J1blRvU3RlcEluZGV4Iix2b2lkIDApLHQoW2EoInJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHo3dC5wcm90b3R5cGUsIl91cGRhdGVTdGVwc0Zvck5ld1J1bnMiLG51bGwpLHQoW3MoInJ1bnMiLCJydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSx6N3QucHJvdG90eXBlLCJfcnVuc1dpdGhTbGlkZXJzIixudWxsKSx6N3Q9dChbaSgidGYtcHItY3VydmUtc3RlcHMtc2VsZWN0b3IiKV0sejd0KTtsZXQgRDd0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZWxvYWRPblJlYWR5PSEwLHRoaXMuX3RpbWVEaXNwbGF5VHlwZT0ic3RlcCIsdGhpcy5fc2VsZWN0ZWRSdW5zPVtdLHRoaXMuX3J1blRvVGFnSW5mbz17fSx0aGlzLl90YWdUb1J1blRvRGF0YT17fSx0aGlzLl9nZXRDYXRlZ29yeUl0ZW1LZXk9dD0+dC50YWcsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IGRyLHRoaXMuX3N0ZXA9MH1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe1Byb21pc2UuYWxsKFt0aGlzLl9mZXRjaFRhZ3MoKV0pLnRoZW4oKCgpPT57dGhpcy5fcmVsb2FkQ2FyZHMoKX0pKX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1fZmV0Y2hUYWdzKCl7Y29uc3QgdD1fcigpLnBsdWdpblJvdXRlKCJwcl9jdXJ2ZXMiLCIvdGFncyIpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oKHQ9PntpZihTZS5leHBvcnRzLmlzRXF1YWwodCx0aGlzLl9ydW5Ub1RhZ0luZm8pKXJldHVybjtjb25zdCBlPWFyKFNlLmV4cG9ydHMubWFwVmFsdWVzKHQsKHQ9PlNlLmV4cG9ydHMua2V5cyh0KSkpKTt0aGlzLnNldCgiX2RhdGFOb3RGb3VuZCIsMD09PWUubGVuZ3RoKSx0aGlzLnNldCgiX3J1blRvVGFnSW5mbyIsdCksdGhpcy5hc3luYygoKCk9Pnt0aGlzLnNldCgiX2NhdGVnb3JpZXNEb21SZWFkeSIsITApfSkpfSkpfV9yZWxvYWRDYXJkcygpe1NlLmV4cG9ydHMuZm9yRWFjaCh0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtcHItY3VydmUtY2FyZCIpLCh0PT57dC5yZWxvYWQoKX0pKX1nZXQgX2NhdGVnb3JpZXMoKXt2YXIgdD10aGlzLl9zZWxlY3RlZFJ1bnMsZT10aGlzLl90YWdGaWx0ZXI7cmV0dXJuIHdyKFNlLmV4cG9ydHMubWFwVmFsdWVzKHRoaXMuX3J1blRvVGFnSW5mbywodD0+T2JqZWN0LmtleXModCkpKSx0LGUpfWdldCBfcmVsZXZhbnRTZWxlY3RlZFJ1bnMoKXt2YXIgdD10aGlzLl9ydW5Ub1RhZ0luZm87cmV0dXJuIHRoaXMuX3NlbGVjdGVkUnVucy5maWx0ZXIoKGU9PnRbZV0pKX1fdGFnTWV0YWRhdGEodCxlLG4pe2NvbnN0IGk9e307ZS5mb3JFYWNoKChlPT57aVtlXT10W2VdW25dfSkpO2NvbnN0IHI9bi5yZXBsYWNlKC9cL3ByX2N1cnZlcyQvLCIiKTtyZXR1cm4gZU8oaSxyKX1fY3JlYXRlRGF0YUNoYW5nZUNhbGxiYWNrKHQpe3JldHVybiBlPT57dGhpcy5zZXQoIl90YWdUb1J1blRvRGF0YSIsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuX3RhZ1RvUnVuVG9EYXRhKSx7W3RdOmV9KSl9fWdldCBfcnVuVG9BdmFpbGFibGVUaW1lRW50cmllcygpe3ZhciB0PXRoaXMuX3RhZ1RvUnVuVG9EYXRhO2NvbnN0IGU9e307Zm9yKGNvbnN0W24saV1vZiBPYmplY3QuZW50cmllcyh0KSlmb3IoY29uc3RbdF1vZiBPYmplY3QuZW50cmllcyhpKSkobnVsbD09ZVt0XXx8bjxlW3RdKSYmKGVbdF09bik7Y29uc3Qgbj17fTtmb3IoY29uc3RbaSxyXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtjb25zdCBlPXRbcl1baV07bltpXT1lLm1hcCgodD0+KHtzdGVwOnQuc3RlcCx3YWxsX3RpbWU6dC53YWxsX3RpbWUscmVsYXRpdmU6dC53YWxsX3RpbWUtZVswXS53YWxsX3RpbWV9KSkpfXJldHVybiBufX07RDd0LnRlbXBsYXRlPV9lYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDx0Zi1vcHRpb24tc2VsZWN0b3IKICAgICAgICAgICAgICBpZD0idGltZS10eXBlLXNlbGVjdG9yIgogICAgICAgICAgICAgIG5hbWU9IlRpbWUgRGlzcGxheSBUeXBlIgogICAgICAgICAgICAgIHNlbGVjdGVkLWlkPSJ7e190aW1lRGlzcGxheVR5cGV9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InN0ZXAiPnN0ZXA8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8IS0tCiAgICAgICAgICAgIC0tPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InJlbGF0aXZlIj5yZWxhdGl2ZTwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDwhLS0KICAgICAgICAgICAgLS0+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0id2FsbF90aW1lIj53YWxsPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvdGYtb3B0aW9uLXNlbGVjdG9yPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3J1blRvQXZhaWxhYmxlVGltZUVudHJpZXNdXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiIgaWQ9InN0ZXBzLXNlbGVjdG9yLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPHRmLXByLWN1cnZlLXN0ZXBzLXNlbGVjdG9yCiAgICAgICAgICAgICAgICBydW5zPSJbW19yZWxldmFudFNlbGVjdGVkUnVuc11dIgogICAgICAgICAgICAgICAgcnVuLXRvLXN0ZXA9Int7X3J1blRvU3RlcH19IgogICAgICAgICAgICAgICAgcnVuLXRvLWF2YWlsYWJsZS10aW1lLWVudHJpZXM9IltbX3J1blRvQXZhaWxhYmxlVGltZUVudHJpZXNdXSIKICAgICAgICAgICAgICAgIHRpbWUtZGlzcGxheS10eXBlPSJbW190aW1lRGlzcGxheVR5cGVdXSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPC90Zi1wci1jdXJ2ZS1zdGVwcy1zZWxlY3Rvcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBwcmVjaXNpb27igJNyZWNhbGwgY3VydmUgZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIFlvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgcHJlY2lzaW9u4oCTcmVjYWxsIGRhdGEgdG8geW91ciBldmVudAogICAgICAgICAgICAgICAgZmlsZXMuCiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8KICAgICAgICAgICAgICBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICAgID4uCiAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8dGYtdGFnLWZpbHRlcmVyIHRhZy1maWx0ZXI9Int7X3RhZ0ZpbHRlcn19Ij48L3RmLXRhZy1maWx0ZXJlcj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgY2F0ZWdvcnk9IltbY2F0ZWdvcnldXSIKICAgICAgICAgICAgICBpbml0aWFsLW9wZW5lZD0iW1tfc2hvdWxkT3BlbihpbmRleCldXSIKICAgICAgICAgICAgICBnZXQtY2F0ZWdvcnktaXRlbS1rZXk9IltbX2dldENhdGVnb3J5SXRlbUtleV1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRmLXByLWN1cnZlLWNhcmQKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICBydW5zPSJbW2l0ZW0ucnVuc11dIgogICAgICAgICAgICAgICAgICB0YWc9IltbaXRlbS50YWddXSIKICAgICAgICAgICAgICAgICAgdGFnLW1ldGFkYXRhPSJbW190YWdNZXRhZGF0YShfcnVuVG9UYWdJbmZvLCBpdGVtLnJ1bnMsIGl0ZW0udGFnKV1dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICAgIHJ1bi10by1zdGVwLWNhcD0iW1tfcnVuVG9TdGVwXV0iCiAgICAgICAgICAgICAgICAgIG9uLWRhdGEtY2hhbmdlPSJbW19jcmVhdGVEYXRhQ2hhbmdlQ2FsbGJhY2soaXRlbS50YWcpXV0iCiAgICAgICAgICAgICAgICA+PC90Zi1wci1jdXJ2ZS1jYXJkPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CgogICAgICAvKiogRG8gbm90IGxldCB0aGUgc3RlcHMgc2VsZWN0b3Igb2NjbHVkZSB0aGUgcnVuIHNlbGVjdG9yLiAqLwogICAgICAjc3RlcHMtc2VsZWN0b3ItY29udGFpbmVyIHsKICAgICAgICBtYXgtaGVpZ2h0OiA2MCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sRDd0LnByb3RvdHlwZSwicmVsb2FkT25SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxEN3QucHJvdG90eXBlLCJfdGltZURpc3BsYXlUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxEN3QucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEQ3dC5wcm90b3R5cGUsIl9ydW5Ub1RhZ0luZm8iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRDd0LnByb3RvdHlwZSwiX3RhZ1RvUnVuVG9EYXRhIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxEN3QucHJvdG90eXBlLCJfcnVuVG9TdGVwIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sRDd0LnByb3RvdHlwZSwiX2RhdGFOb3RGb3VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxEN3QucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sRDd0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxEN3QucHJvdG90eXBlLCJfZ2V0Q2F0ZWdvcnlJdGVtS2V5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0sRDd0LnByb3RvdHlwZSwiX3JlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxEN3QucHJvdG90eXBlLCJfc3RlcCIsdm9pZCAwKSx0KFtzKCJfcnVuVG9UYWdJbmZvIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiLCJfY2F0ZWdvcmllc0RvbVJlYWR5IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxEN3QucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCksdChbcygiX3NlbGVjdGVkUnVucyIsIl9ydW5Ub1RhZ0luZm8iKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEQ3dC5wcm90b3R5cGUsIl9yZWxldmFudFNlbGVjdGVkUnVucyIsbnVsbCksdChbcygiX3RhZ1RvUnVuVG9EYXRhIiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sRDd0LnByb3RvdHlwZSwiX3J1blRvQXZhaWxhYmxlVGltZUVudHJpZXMiLG51bGwpLEQ3dD10KFtpKCJ0Zi1wci1jdXJ2ZS1kYXNoYm9hcmQiKV0sRDd0KTtsZXQgQjd0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5faW5zdGFsbENvbW1hbmQ9InBpcCBpbnN0YWxsIC1VIHRlbnNvcmJvYXJkLXBsdWdpbi1wcm9maWxlIn1fY29weUluc3RhbGxDb21tYW5kKCl7cmV0dXJuIG4odGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PSgpPT5uKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dGhpcy4kLmNvbW1hbmRUZXh0YXJlYS5zZWxlY3QoKTt0cnl7eWllbGQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy5faW5zdGFsbENvbW1hbmQpfWNhdGNoKHQpe2lmKCFkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpKXJldHVybiBQcm9taXNlLnJlamVjdCgpfX0pKSxlPXRoaXMuJC5jb3BpZWRNZXNzYWdlO3RyeXt5aWVsZCB0KCksZS5pbm5lclRleHQ9IkNvcGllZC4ifWNhdGNoKHQpe2UuaW5uZXJUZXh0PSJGYWlsZWQgdG8gY29weSB0byBjbGlwYm9hcmQuIn19KSl9X3JlbW92ZUNvcGllZE1lc3NhZ2UoKXt0aGlzLiQuY29waWVkTWVzc2FnZS5pbm5lclRleHQ9IiJ9fTtCN3QudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlIj4KICAgICAgPGgzPlRoZSBwcm9maWxlIHBsdWdpbiBoYXMgbW92ZWQuPC9oMz4KICAgICAgPHA+CiAgICAgICAgUGxlYXNlIGluc3RhbGwgdGhlIG5ldyB2ZXJzaW9uIG9mIHRoZSBwcm9maWxlIHBsdWdpbiBmcm9tIFB5UEkgYnkKICAgICAgICBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBmcm9tIHRoZSBtYWNoaW5lIHJ1bm5pbmcgVGVuc29yQm9hcmQ6CiAgICAgIDwvcD4KICAgICAgPHRleHRhcmVhCiAgICAgICAgaWQ9ImNvbW1hbmRUZXh0YXJlYSIKICAgICAgICByZWFkb25seT0iIgogICAgICAgIHJvd3M9IjEiCiAgICAgICAgb24tYmx1cj0iX3JlbW92ZUNvcGllZE1lc3NhZ2UiCiAgICAgID4KW1tfaW5zdGFsbENvbW1hbmRdXTwvdGV4dGFyZWEKICAgICAgPgogICAgICA8ZGl2IGlkPSJjb3B5Q29udGFpbmVyIj4KICAgICAgICA8c3BhbiBpZD0iY29waWVkTWVzc2FnZSI+PC9zcGFuPgogICAgICAgIDxwYXBlci1idXR0b24gcmFpc2VkPSIiIG9uLXRhcD0iX2NvcHlJbnN0YWxsQ29tbWFuZCIKICAgICAgICAgID5Db3B5IHRvIGNsaXBib2FyZDwvcGFwZXItYnV0dG9uCiAgICAgICAgPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlIHsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgfQogICAgICAjY29tbWFuZFRleHRhcmVhIHsKICAgICAgICBtYXJnaW4tdG9wOiAxZXg7CiAgICAgICAgcGFkZGluZzogMWV4IDFlbTsKICAgICAgICByZXNpemU6IHZlcnRpY2FsOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgICNjb3B5Q29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CiAgICAgICNjb3BpZWRNZXNzYWdlIHsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxCN3QucHJvdG90eXBlLCJfaW5zdGFsbENvbW1hbmQiLHZvaWQgMCksQjd0PXQoW2koInRmLXByb2ZpbGUtcmVkaXJlY3QtZGFzaGJvYXJkIildLEI3dCk7bGV0IEg3dD1jbGFzcyBleHRlbmRzKGVyKGhsKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVsb2FkT25SZWFkeT0hMCx0aGlzLl9zaG93RG93bmxvYWRMaW5rcz1IcygiX3Nob3dEb3dubG9hZExpbmtzIix7ZGVmYXVsdFZhbHVlOiExLHVzZUxvY2FsU3RvcmFnZTohMH0pLmNhbGwodGhpcyksdGhpcy5fc21vb3RoaW5nV2VpZ2h0PUdzKCJfc21vb3RoaW5nV2VpZ2h0Iix7ZGVmYXVsdFZhbHVlOi42fSkuY2FsbCh0aGlzKSx0aGlzLl9pZ25vcmVZT3V0bGllcnM9SHMoIl9pZ25vcmVZT3V0bGllcnMiLHtkZWZhdWx0VmFsdWU6ITAsdXNlTG9jYWxTdG9yYWdlOiEwfSkuY2FsbCh0aGlzKSx0aGlzLl94VHlwZT14VHQuU1RFUCx0aGlzLl9zZWxlY3RlZFJ1bnM9W10sdGhpcy5fdGFnRmlsdGVyPSIiLHRoaXMuX2NhdGVnb3JpZXM9W10sdGhpcy5fZ2V0Q2F0ZWdvcnlJdGVtS2V5PXQ9PnQudGFnLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcig1MCksdGhpcy5fc2hvd0Rvd25sb2FkTGlua3NPYnNlcnZlcj1GcygiX3Nob3dEb3dubG9hZExpbmtzIix7ZGVmYXVsdFZhbHVlOiExLHVzZUxvY2FsU3RvcmFnZTohMH0pLHRoaXMuX3Ntb290aGluZ1dlaWdodE9ic2VydmVyPVdzKCJfc21vb3RoaW5nV2VpZ2h0Iix7ZGVmYXVsdFZhbHVlOi42fSksdGhpcy5faWdub3JlWU91dGxpZXJzT2JzZXJ2ZXI9RnMoIl9pZ25vcmVZT3V0bGllcnMiLHtkZWZhdWx0VmFsdWU6ITAsdXNlTG9jYWxTdG9yYWdlOiEwfSl9Z2V0IF9zbW9vdGhpbmdFbmFibGVkKCl7cmV0dXJuIHRoaXMuX3Ntb290aGluZ1dlaWdodD4wfV9nZXRDYXRlZ29yeUtleSh0KXtyZXR1cm4gdC5tZXRhZGF0YS50eXBlPT1ici5TRUFSQ0hfUkVTVUxUUz8iIjp0Lm5hbWV9X3Nob3VsZE9wZW4odCl7cmV0dXJuIHQ8PTJ9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMucmVsb2FkT25SZWFkeSYmdGhpcy5yZWxvYWQoKX1yZWxvYWQoKXt0aGlzLl9mZXRjaFRhZ3MoKS50aGVuKCgoKT0+e3RoaXMuX3JlbG9hZENoYXJ0cygpfSkpfV9mZXRjaFRhZ3MoKXtjb25zdCB0PV9yKCkucGx1Z2luUm91dGUoInNjYWxhcnMiLCIvdGFncyIpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oKHQ9PntpZihTZS5leHBvcnRzLmlzRXF1YWwodCx0aGlzLl9ydW5Ub1RhZ0luZm8pKXJldHVybjtjb25zdCBlPWFyKFNlLmV4cG9ydHMubWFwVmFsdWVzKHQsKHQ9Pk9iamVjdC5rZXlzKHQpKSkpO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIiwwPT09ZS5sZW5ndGgpLHRoaXMuc2V0KCJfcnVuVG9UYWdJbmZvIix0KSx0aGlzLmFzeW5jKCgoKT0+e3RoaXMuc2V0KCJfY2F0ZWdvcmllc0RvbVJlYWR5IiwhMCl9KSl9KSl9X3JlbG9hZENoYXJ0cygpe3RoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1zY2FsYXItY2FyZCIpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfV91cGRhdGVDYXRlZ29yaWVzKCl7dmFyIHQ9dGhpcy5fc2VsZWN0ZWRSdW5zO2xldCBlLG49dGhpcy5fdGFnRmlsdGVyO2U9d3IoU2UuZXhwb3J0cy5tYXBWYWx1ZXModGhpcy5fcnVuVG9UYWdJbmZvLCh0PT5PYmplY3Qua2V5cyh0KSkpLHQsbiksZS5mb3JFYWNoKCh0PT57dC5pdGVtcz10Lml0ZW1zLm1hcCgodD0+KHt0YWc6dC50YWcsc2VyaWVzOnQucnVucy5tYXAoKGU9Pih7cnVuOmUsdGFnOnQudGFnfSkpKX0pKSl9KSksdGhpcy51cGRhdGVBcnJheVByb3AoIl9jYXRlZ29yaWVzIixlLHRoaXMuX2dldENhdGVnb3J5S2V5KX1fdGFnTWV0YWRhdGEodCxlLG4pe2NvbnN0IGk9dC5uYW1lLHI9bi50YWcsbz17fTtuLnNlcmllcy5mb3JFYWNoKCgoe3J1bjp0fSk9PntvW3RdPWVbdF1bcl19KSk7Y29uc3QgYT1yLnJlcGxhY2UoL1wvc2NhbGFyX3N1bW1hcnkkLywiIik7bGV0e2Rlc2NyaXB0aW9uOnMsZGlzcGxheU5hbWU6bH09ZU8obyxhKTtyZXR1cm4gdC5tZXRhZGF0YS50eXBlPT1ici5QUkVGSVhfR1JPVVAmJmwuc3RhcnRzV2l0aChpKyIvIikmJihsPWwuc2xpY2UoaS5sZW5ndGgrMSkpLHtkZXNjcmlwdGlvbjpzLGRpc3BsYXlOYW1lOmx9fX07SDd0LnRlbXBsYXRlPV9lYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94CiAgICAgICAgICAgICAgICBpZD0ic2hvdy1kb3dubG9hZC1saW5rcyIKICAgICAgICAgICAgICAgIGNoZWNrZWQ9Int7X3Nob3dEb3dubG9hZExpbmtzfX0iCiAgICAgICAgICAgICAgICA+U2hvdyBkYXRhIGRvd25sb2FkIGxpbmtzPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94CiAgICAgICAgICAgICAgICBpZD0iaWdub3JlLXktb3V0bGllciIKICAgICAgICAgICAgICAgIGNoZWNrZWQ9Int7X2lnbm9yZVlPdXRsaWVyc319IgogICAgICAgICAgICAgICAgPklnbm9yZSBvdXRsaWVycyBpbiBjaGFydCBzY2FsaW5nPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgaWQ9InRvb2x0aXAtc29ydGluZyI+CiAgICAgICAgICAgICAgPGRpdj5Ub29sdGlwIHNvcnRpbmcgbWV0aG9kOjwvZGl2PgogICAgICAgICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICAgICAgICBuby1sYWJlbC1mbG9hdAogICAgICAgICAgICAgICAgc2VsZWN0ZWQtaXRlbS1sYWJlbD0ie3tfdG9vbHRpcFNvcnRpbmdNZXRob2R9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9IjAiCiAgICAgICAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlZmF1bHQ8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlc2NlbmRpbmc8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmFzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+bmVhcmVzdDwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtc21vb3RoaW5nLWlucHV0CiAgICAgICAgICAgICAgd2VpZ2h0PSJ7e19zbW9vdGhpbmdXZWlnaHR9fSIKICAgICAgICAgICAgICBzdGVwPSIwLjAwMSIKICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgbWF4PSIwLjk5OSIKICAgICAgICAgICAgPjwvdGYtc21vb3RoaW5nLWlucHV0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtb3B0aW9uLXNlbGVjdG9yCiAgICAgICAgICAgICAgaWQ9IngtdHlwZS1zZWxlY3RvciIKICAgICAgICAgICAgICBuYW1lPSJIb3Jpem9udGFsIEF4aXMiCiAgICAgICAgICAgICAgc2VsZWN0ZWQtaWQ9Int7X3hUeXBlfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJzdGVwIj5zdGVwPC9wYXBlci1idXR0b24KICAgICAgICAgICAgICA+PCEtLQogICAgICAgICAgICAtLT48cGFwZXItYnV0dG9uIGlkPSJyZWxhdGl2ZSI+cmVsYXRpdmU8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID48IS0tCiAgICAgICAgICAgIC0tPjxwYXBlci1idXR0b24gaWQ9IndhbGxfdGltZSI+d2FsbDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L3RmLW9wdGlvbi1zZWxlY3Rvcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBzY2FsYXIgZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5Zb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IHNjYWxhciBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgICAgZ2V0LWNhdGVnb3J5LWl0ZW0ta2V5PSJbW19nZXRDYXRlZ29yeUl0ZW1LZXldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1zY2FsYXItY2FyZAogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIGRhdGEtdG8tbG9hZD0iW1tpdGVtLnNlcmllc11dIgogICAgICAgICAgICAgICAgICBpZ25vcmUteS1vdXRsaWVycz0iW1tfaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgICAgICAgICAgIG11bHRpLWV4cGVyaW1lbnRzPSJbW19nZXRNdWx0aUV4cGVyaW1lbnRzKGRhdGFTZWxlY3Rpb24pXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgICAgc2hvdy1kb3dubG9hZC1saW5rcz0iW1tfc2hvd0Rvd25sb2FkTGlua3NdXSIKICAgICAgICAgICAgICAgICAgc21vb3RoaW5nLWVuYWJsZWQ9IltbX3Ntb290aGluZ0VuYWJsZWRdXSIKICAgICAgICAgICAgICAgICAgc21vb3RoaW5nLXdlaWdodD0iW1tfc21vb3RoaW5nV2VpZ2h0XV0iCiAgICAgICAgICAgICAgICAgIHRhZy1tZXRhZGF0YT0iW1tfdGFnTWV0YWRhdGEoY2F0ZWdvcnksIF9ydW5Ub1RhZ0luZm8sIGl0ZW0pXV0iCiAgICAgICAgICAgICAgICAgIHRhZz0iW1tpdGVtLnRhZ11dIgogICAgICAgICAgICAgICAgICB0b29sdGlwLXNvcnRpbmctbWV0aG9kPSJbW190b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgICAgICAgICAgICB4LXR5cGU9IltbX3hUeXBlXV0iCiAgICAgICAgICAgICAgICAgIGJhdGNoLXNpemU9IltbZmVhdHVyZUZsYWdzLnNjYWxhcnNCYXRjaFNpemVdXSIKICAgICAgICAgICAgICAgICAgaW4tY29sYWI9IltbZmVhdHVyZUZsYWdzLmluQ29sYWJdXSIKICAgICAgICAgICAgICAgID48L3RmLXNjYWxhci1jYXJkPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgICN0b29sdGlwLXNvcnRpbmcgewogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgfQoKICAgICAgI3Rvb2x0aXAtc29ydGluZyBwYXBlci1kcm9wZG93bi1tZW51IHsKICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgd2lkdGg6IDEwNXB4OwogICAgICB9CgogICAgICAubGluZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nLXRvcDogNXB4OwogICAgICB9CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICAgIC5jZW50ZXIgewogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSDd0LnByb3RvdHlwZSwicmVsb2FkT25SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxIN3QucHJvdG90eXBlLCJmZWF0dXJlRmxhZ3MiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLG5vdGlmeTohMCxvYnNlcnZlcjoiX3Nob3dEb3dubG9hZExpbmtzT2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxIN3QucHJvdG90eXBlLCJfc2hvd0Rvd25sb2FkTGlua3MiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwLG9ic2VydmVyOiJfc21vb3RoaW5nV2VpZ2h0T2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEg3dC5wcm90b3R5cGUsIl9zbW9vdGhpbmdXZWlnaHQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfaWdub3JlWU91dGxpZXJzT2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxIN3QucHJvdG90eXBlLCJfaWdub3JlWU91dGxpZXJzIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEg3dC5wcm90b3R5cGUsIl94VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sSDd0LnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxIN3QucHJvdG90eXBlLCJfcnVuVG9UYWdJbmZvIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSDd0LnByb3RvdHlwZSwiX2RhdGFOb3RGb3VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxIN3QucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSDd0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sSDd0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSDd0LnByb3RvdHlwZSwiX2dldENhdGVnb3J5SXRlbUtleSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLEg3dC5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtzKCJfc21vb3RoaW5nV2VpZ2h0IiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEg3dC5wcm90b3R5cGUsIl9zbW9vdGhpbmdFbmFibGVkIixudWxsKSx0KFthKCJfcnVuVG9UYWdJbmZvIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiLCJfY2F0ZWdvcmllc0RvbVJlYWR5IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxIN3QucHJvdG90eXBlLCJfdXBkYXRlQ2F0ZWdvcmllcyIsbnVsbCksSDd0PXQoW2koInRmLXNjYWxhci1kYXNoYm9hcmQiKV0sSDd0KTtsZXQgRjd0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fdGV4dHM9W10sdGhpcy5fY2FuY2VsbGVyPW5ldyBYUn1nZXQgX3J1bkNvbG9yKCl7cmV0dXJuIEdSKHRoaXMucnVuKX1fY2hhbmdlUnVuQ29sb3IoKXt0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tdGItdGV4dC1sb2FkZXItb3V0bGluZSI6dGhpcy5fcnVuQ29sb3J9KX1hdHRhY2hlZCgpe3RoaXMucmVsb2FkKCl9cmVsb2FkKCl7aWYoIXRoaXMuaXNBdHRhY2hlZClyZXR1cm47dGhpcy5fY2FuY2VsbGVyLmNhbmNlbEFsbCgpO2NvbnN0IHQ9aU8oX3IoKS5wbHVnaW5Sb3V0ZSgidGV4dCIsIi90ZXh0Iikse3RhZzp0aGlzLnRhZyxydW46dGhpcy5ydW59KSxlPXRoaXMuX2NhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e2lmKHQuY2FuY2VsbGVkKXJldHVybjtjb25zdCBlPXQudmFsdWUubWFwKCh0PT4oe3dhbGxfdGltZTpuZXcgRGF0ZSgxZTMqdC53YWxsX3RpbWUpLHN0ZXA6dC5zdGVwLHRleHQ6dC50ZXh0fSkpKTt0aGlzLnNldCgiX3RleHRzIixlLnNsaWNlKCkucmV2ZXJzZSgpKX0pKTt0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbihlKX1fZm9ybWF0U3RlcCh0KXtyZXR1cm4gbXkoIiwiKSh0KX19O0Y3dC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcgcnVuPSJbW3J1bl1dIiB0YWc9IltbdGFnXV0iIGNvbG9yPSJbW19ydW5Db2xvcl1dIj4KICAgIDwvdGYtY2FyZC1oZWFkaW5nPgogICAgPHBhcGVyLW1hdGVyaWFsCiAgICAgIGVsZXZhdGlvbj0iMSIKICAgICAgaWQ9InN0ZXBzLWNvbnRhaW5lciIKICAgICAgY2xhc3M9ImNvbnRhaW5lciBzY3JvbGxiYXIiCiAgICA+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX3RleHRzXV0iPgogICAgICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJzdGVwLWNvbnRhaW5lciI+CiAgICAgICAgICBzdGVwIDxzcGFuIGNsYXNzPSJzdGVwLXZhbHVlIj5bW19mb3JtYXRTdGVwKGl0ZW0uc3RlcCldXTwvc3Bhbj4KICAgICAgICA8L3BhcGVyLW1hdGVyaWFsPgogICAgICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJ0ZXh0Ij4KICAgICAgICAgIDx0Zi1tYXJrZG93bi12aWV3IGh0bWw9IltbaXRlbS50ZXh0XV0iPjwvdGYtbWFya2Rvd24tdmlldz4KICAgICAgICA8L3BhcGVyLW1hdGVyaWFsPgogICAgICA8L3RlbXBsYXRlPgogICAgPC9wYXBlci1tYXRlcmlhbD4KICAgIDxzdHlsZSBpbmNsdWRlPSJzY3JvbGxiYXItc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CiAgICAgIC5zY3JvbGxiYXIgewogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgICAgI3N0ZXBzLWNvbnRhaW5lciB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIC8qIGNvbG9yIGNvbXB1dGVkIGFuZCBzZXQgYXMgaW5saW5lIHN0eWxlICovOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10Yi10ZXh0LWxvYWRlci1vdXRsaW5lKTsKICAgICAgfQogICAgICAudGV4dCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDNweCAzcHggM3B4OwogICAgICAgIHBhZGRpbmc6IDVweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CiAgICAgIC5zdGVwLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRiLXVpLWJvcmRlcik7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7IC8qIHRvIGNvcnJlY3QgZm9yIGJvcmRlciAqLwogICAgICAgIHBhZGRpbmc6IDNweDsKICAgICAgfQogICAgICAuc3RlcC1jb250YWluZXI6bm90KDpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICAgIH0KCiAgICAgIHRmLWNhcmQtaGVhZGluZyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEY3dC5wcm90b3R5cGUsInJ1biIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxGN3QucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLEY3dC5wcm90b3R5cGUsIl90ZXh0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLEY3dC5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLFhSKV0sRjd0LnByb3RvdHlwZSwiX2NhbmNlbGxlciIsdm9pZCAwKSx0KFtzKCJydW4iKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxGN3QucHJvdG90eXBlLCJfcnVuQ29sb3IiLG51bGwpLHQoW2EoIl9ydW5Db2xvciIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sRjd0LnByb3RvdHlwZSwiX2NoYW5nZVJ1bkNvbG9yIixudWxsKSxGN3Q9dChbaSgidGYtdGV4dC1sb2FkZXIiKV0sRjd0KTtsZXQgVjd0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZWxvYWRPblJlYWR5PSEwLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcn1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe3RoaXMuX2ZldGNoVGFncygpLnRoZW4oKCgpPT57dGhpcy5fcmVsb2FkVGV4dHMoKX0pKX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1fZmV0Y2hUYWdzKCl7Y29uc3QgdD1fcigpLnBsdWdpblJvdXRlKCJ0ZXh0IiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoU2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWcpKXJldHVybjtjb25zdCBlPWFyKHQpO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIiwwPT09ZS5sZW5ndGgpLHRoaXMuc2V0KCJfcnVuVG9UYWciLHQpLHRoaXMuYXN5bmMoKCgpPT57dGhpcy5zZXQoIl9jYXRlZ29yaWVzRG9tUmVhZHkiLCEwKX0pKX0pKX1fcmVsb2FkVGV4dHMoKXt0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtdGV4dC1sb2FkZXIiKS5mb3JFYWNoKCh0PT57dC5yZWxvYWQoKX0pKX1nZXQgX2NhdGVnb3JpZXMoKXtyZXR1cm4gTXIodGhpcy5fcnVuVG9UYWcsdGhpcy5fc2VsZWN0ZWRSdW5zLHRoaXMuX3RhZ0ZpbHRlcil9fTtWN3QudGVtcGxhdGU9X2VgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciIgc2xvdD0ic2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3Igc2VsZWN0ZWQtcnVucz0ie3tfc2VsZWN0ZWRSdW5zfX0iPgogICAgICAgICAgPC90Zi1ydW5zLXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIiBzbG90PSJjZW50ZXIiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm8tZGF0YS13YXJuaW5nIj4KICAgICAgICAgICAgPGgzPk5vIHRleHQgZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5Zb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IHRleHQgZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0Zi10YWctZmlsdGVyZXIgdGFnLWZpbHRlcj0ie3tfdGFnRmlsdGVyfX0iPjwvdGYtdGFnLWZpbHRlcmVyPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY2F0ZWdvcmllc11dIiBhcz0iY2F0ZWdvcnkiPgogICAgICAgICAgICA8dGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXcKICAgICAgICAgICAgICBjYXRlZ29yeT0iW1tjYXRlZ29yeV1dIgogICAgICAgICAgICAgIGluaXRpYWwtb3BlbmVkPSJbW19zaG91bGRPcGVuKGluZGV4KV1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRmLXRleHQtbG9hZGVyCiAgICAgICAgICAgICAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgICAgICAgICAgICAgICAgdGFnPSJbW2l0ZW0udGFnXV0iCiAgICAgICAgICAgICAgICAgIHJ1bj0iW1tpdGVtLnJ1bl1dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICA+PC90Zi10ZXh0LWxvYWRlcj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxWN3QucHJvdG90eXBlLCJyZWxvYWRPblJlYWR5Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxWN3QucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFY3dC5wcm90b3R5cGUsIl9ydW5Ub1RhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFY3dC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sVjd0LnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFY3dC5wcm90b3R5cGUsIl9jYXRlZ29yaWVzRG9tUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVjd0LnByb3RvdHlwZSwiX3JlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW3MoIl9ydW5Ub1RhZyIsIl9zZWxlY3RlZFJ1bnMiLCJfdGFnRmlsdGVyIiwiX2NhdGVnb3JpZXNEb21SZWFkeSIpLGUoImRlc2lnbjp0eXBlIixBcnJheSksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sVjd0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLG51bGwpLFY3dD10KFtpKCJ0Zi10ZXh0LWRhc2hib2FyZCIpXSxWN3QpO2xldCBVN3Q9Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fdGVtcGxhdGU9bnVsbCx0aGlzLnRmX2JhY2tlbmQ9U0N0fX07VTd0PXQoW2koInRmLWJhY2tlbmQiKV0sVTd0KTtsZXQgajd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy50Zl9nbG9iYWxzPUVzfX07ajd0PXQoW2koInRmLWdsb2JhbHMiKV0sajd0KTtsZXQgRzd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy50Zl9zdG9yYWdlPUlDdH19O0c3dD10KFtpKCJ0Zi1zdG9yYWdlIildLEc3dCk7dmFyIFc3dD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxhZGRMaW1pdExpc3RlbmVyOmxsLHJlbW92ZUxpbWl0TGlzdGVuZXI6Y2wsZ2V0TGltaXQ6dWwsc2V0TGltaXQ6ZnVuY3Rpb24gcTd0KHQpe2lmKHQhPT1NYXRoLmZsb29yKHQpKXRocm93IG5ldyBFcnJvcihgbGltaXQgbXVzdCBiZSBhbiBpbnRlZ2VyLCBidXQgZ290OiAke3R9YCk7aWYodDw9MCl0aHJvdyBuZXcgRXJyb3IoYGxpbWl0IG11c3QgYmUgcG9zaXRpdmUsIGJ1dCBnb3Q6ICR7dH1gKTt0IT09YWwmJihhbD10LGpzKG9sLGFsLHt1c2VMb2NhbFN0b3JhZ2U6ITB9KSxzbC5mb3JFYWNoKCh0PT57dCgpfSkpKX0sVGZEb21SZXBlYXQ6ZGx9KTtsZXQgWTd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy50Zl9wYWdpbmF0ZWRfdmlldz1XN3R9fTtZN3Q9dChbaSgidGYtcGFnaW5hdGVkLXZpZXctc3RvcmUiKV0sWTd0KTtsZXQgWDd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy5ydW5zQ29sb3JTY2FsZT1HUn19O1g3dD10KFtpKCJ0Zi1jb2xvci1zY2FsZSIpXSxYN3QpfSkoKTsKCiEoZnVuY3Rpb24oKXsKLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4KCiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC4KCiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSAogICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZCiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsCiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00KICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SCiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SCiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KdmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4odD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSl9KShlLG4pfTtmdW5jdGlvbiBlKGUsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4mJm51bGwhPT1uKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gbygpe3RoaXMuY29uc3RydWN0b3I9ZX10KGUsbiksZS5wcm90b3R5cGU9bnVsbD09PW4/T2JqZWN0LmNyZWF0ZShuKTooby5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IG8pfWZ1bmN0aW9uIG4odCxlKXt2YXIgbixvLGksYSxyPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmlbMF0pdGhyb3cgaVsxXTtyZXR1cm4gaVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBhPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksYTtmdW5jdGlvbiBzKGEpe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4oZnVuY3Rpb24gbChhKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3I7KXRyeXtpZihuPTEsbyYmKGk9MiZhWzBdP28ucmV0dXJuOmFbMF0/by50aHJvd3x8KChpPW8ucmV0dXJuKSYmaS5jYWxsKG8pLDApOm8ubmV4dCkmJiEoaT1pLmNhbGwobyxhWzFdKSkuZG9uZSlyZXR1cm4gaTtzd2l0Y2gobz0wLGkmJihhPVsyJmFbMF0saS52YWx1ZV0pLGFbMF0pe2Nhc2UgMDpjYXNlIDE6aT1hO2JyZWFrO2Nhc2UgNDpyZXR1cm4gci5sYWJlbCsrLHt2YWx1ZTphWzFdLGRvbmU6ITF9O2Nhc2UgNTpyLmxhYmVsKyssbz1hWzFdLGE9WzBdO2NvbnRpbnVlO2Nhc2UgNzphPXIub3BzLnBvcCgpLHIudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGk9KGk9ci50cnlzKS5sZW5ndGg+MCYmaVtpLmxlbmd0aC0xXSl8fDYhPT1hWzBdJiYyIT09YVswXSkpe3I9MDtjb250aW51ZX1pZigzPT09YVswXSYmKCFpfHxhWzFdPmlbMF0mJmFbMV08aVszXSkpe3IubGFiZWw9YVsxXTticmVha31pZig2PT09YVswXSYmci5sYWJlbDxpWzFdKXtyLmxhYmVsPWlbMV0saT1hO2JyZWFrfWlmKGkmJnIubGFiZWw8aVsyXSl7ci5sYWJlbD1pWzJdLHIub3BzLnB1c2goYSk7YnJlYWt9aVsyXSYmci5vcHMucG9wKCksci50cnlzLnBvcCgpO2NvbnRpbnVlfWE9ZS5jYWxsKHQscil9Y2F0Y2godCl7YT1bNix0XSxvPTB9ZmluYWxseXtuPWk9MH1pZig1JmFbMF0pdGhyb3cgYVsxXTtyZXR1cm57dmFsdWU6YVswXT9hWzFdOnZvaWQgMCxkb25lOiEwfX0pKFthLHNdKX19fWZ1bmN0aW9uIG8odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLG49ZSYmdFtlXSxvPTA7aWYobilyZXR1cm4gbi5jYWxsKHQpO2lmKHQmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpcmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCYmbz49dC5sZW5ndGgmJih0PXZvaWQgMCkse3ZhbHVlOnQmJnRbbysrXSxkb25lOiF0fX19O3Rocm93IG5ldyBUeXBlRXJyb3IoZT8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9ZnVuY3Rpb24gaSh0LGUpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXTtpZighbilyZXR1cm4gdDt2YXIgbyxpLGE9bi5jYWxsKHQpLHI9W107dHJ5e2Zvcig7KHZvaWQgMD09PWV8fGUtLSA+MCkmJiEobz1hLm5leHQoKSkuZG9uZTspci5wdXNoKG8udmFsdWUpfWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihuPWEucmV0dXJuKSYmbi5jYWxsKGEpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gcn1mdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciBuPTAsbz1lLmxlbmd0aCxpPXQubGVuZ3RoO248bztuKyssaSsrKXRbaV09ZVtuXTtyZXR1cm4gdH1mdW5jdGlvbiByKHQpe3JldHVybiB0aGlzIGluc3RhbmNlb2Ygcj8odGhpcy52PXQsdGhpcyk6bmV3IHIodCl9ZnVuY3Rpb24gcyh0LGUsbil7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBvLGk9bi5hcHBseSh0LGV8fFtdKSxhPVtdO3JldHVybiBvPXt9LHMoIm5leHQiKSxzKCJ0aHJvdyIpLHMoInJldHVybiIpLG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LG87ZnVuY3Rpb24gcyh0KXtpW3RdJiYob1t0XT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4sbyl7YS5wdXNoKFt0LGUsbixvXSk+MXx8bCh0LGUpfSkpfSl9ZnVuY3Rpb24gbCh0LGUpe3RyeXshKGZ1bmN0aW9uIG4odCl7dC52YWx1ZSBpbnN0YW5jZW9mIHI/UHJvbWlzZS5yZXNvbHZlKHQudmFsdWUudikudGhlbihjLGQpOnAoYVswXVsyXSx0KX0pKGlbdF0oZSkpfWNhdGNoKHQpe3AoYVswXVszXSx0KX19ZnVuY3Rpb24gYyh0KXtsKCJuZXh0Iix0KX1mdW5jdGlvbiBkKHQpe2woInRocm93Iix0KX1mdW5jdGlvbiBwKHQsZSl7dChlKSxhLnNoaWZ0KCksYS5sZW5ndGgmJmwoYVswXVswXSxhWzBdWzFdKX19ZnVuY3Rpb24gbCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH1mdW5jdGlvbiBjKHQpe3ZhciBlPXQoKGZ1bmN0aW9uKHQpe0Vycm9yLmNhbGwodCksdC5zdGFjaz0obmV3IEVycm9yKS5zdGFja30pKTtyZXR1cm4gZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZX12YXIgZD1jKChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24gZShuKXt0KHRoaXMpLHRoaXMubWVzc2FnZT1uP24ubGVuZ3RoKyIgZXJyb3JzIG9jY3VycmVkIGR1cmluZyB1bnN1YnNjcmlwdGlvbjpcbiIrbi5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUrMSsiKSAiK3QudG9TdHJpbmcoKX0pKS5qb2luKCJcbiAgIik6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1ufX0pKTtmdW5jdGlvbiBwKHQsZSl7aWYodCl7dmFyIG49dC5pbmRleE9mKGUpOzA8PW4mJnQuc3BsaWNlKG4sMSl9fXZhciBtPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5pbml0aWFsVGVhcmRvd249dCx0aGlzLmNsb3NlZD0hMSx0aGlzLl9wYXJlbnRhZ2U9bnVsbCx0aGlzLl90ZWFyZG93bnM9bnVsbH1yZXR1cm4gdC5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgdCxlLG4scixzO2lmKCF0aGlzLmNsb3NlZCl7dGhpcy5jbG9zZWQ9ITA7dmFyIGM9dGhpcy5fcGFyZW50YWdlO2lmKGMpaWYodGhpcy5fcGFyZW50YWdlPW51bGwsQXJyYXkuaXNBcnJheShjKSl0cnl7Zm9yKHZhciBwPW8oYyksbT1wLm5leHQoKTshbS5kb25lO209cC5uZXh0KCkpbS52YWx1ZS5yZW1vdmUodGhpcyl9Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKGU9cC5yZXR1cm4pJiZlLmNhbGwocCl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fWVsc2UgYy5yZW1vdmUodGhpcyk7dmFyIHU9dGhpcy5pbml0aWFsVGVhcmRvd247aWYobCh1KSl0cnl7dSgpfWNhdGNoKHQpe3M9dCBpbnN0YW5jZW9mIGQ/dC5lcnJvcnM6W3RdfXZhciBmPXRoaXMuX3RlYXJkb3ducztpZihmKXt0aGlzLl90ZWFyZG93bnM9bnVsbDt0cnl7Zm9yKHZhciBoPW8oZiksYj1oLm5leHQoKTshYi5kb25lO2I9aC5uZXh0KCkpe3ZhciB5PWIudmFsdWU7dHJ5e2coeSl9Y2F0Y2godCl7cz1udWxsIT1zP3M6W10sdCBpbnN0YW5jZW9mIGQ/cz1hKGEoW10saShzKSksaSh0LmVycm9ycykpOnMucHVzaCh0KX19fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2ImJiFiLmRvbmUmJihyPWgucmV0dXJuKSYmci5jYWxsKGgpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19aWYocyl0aHJvdyBuZXcgZChzKX19LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt2YXIgbjtpZihlJiZlIT09dGhpcylpZih0aGlzLmNsb3NlZClnKGUpO2Vsc2V7aWYoZSBpbnN0YW5jZW9mIHQpe2lmKGUuY2xvc2VkfHxlLl9oYXNQYXJlbnQodGhpcykpcmV0dXJuO2UuX2FkZFBhcmVudCh0aGlzKX0odGhpcy5fdGVhcmRvd25zPW51bGwhPT0obj10aGlzLl90ZWFyZG93bnMpJiZ2b2lkIDAhPT1uP246W10pLnB1c2goZSl9fSx0LnByb3RvdHlwZS5faGFzUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3BhcmVudGFnZTtyZXR1cm4gZT09PXR8fEFycmF5LmlzQXJyYXkoZSkmJmUuaW5jbHVkZXModCl9LHQucHJvdG90eXBlLl9hZGRQYXJlbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcGFyZW50YWdlO3RoaXMuX3BhcmVudGFnZT1BcnJheS5pc0FycmF5KGUpPyhlLnB1c2godCksZSk6ZT9bZSx0XTp0fSx0LnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3BhcmVudGFnZTtlPT09dD90aGlzLl9wYXJlbnRhZ2U9bnVsbDpBcnJheS5pc0FycmF5KGUpJiZwKGUsdCl9LHQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihlKXt2YXIgbj10aGlzLl90ZWFyZG93bnM7biYmcChuLGUpLGUgaW5zdGFuY2VvZiB0JiZlLl9yZW1vdmVQYXJlbnQodGhpcyl9LHQuRU1QVFk9KGZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQ7cmV0dXJuIGUuY2xvc2VkPSEwLGV9KSgpLHR9KSgpLHU9bS5FTVBUWTtmdW5jdGlvbiBmKHQpe3JldHVybiB0IGluc3RhbmNlb2YgbXx8dCYmImNsb3NlZCJpbiB0JiZsKHQucmVtb3ZlKSYmbCh0LmFkZCkmJmwodC51bnN1YnNjcmliZSl9ZnVuY3Rpb24gZyh0KXtsKHQpP3QoKTp0LnVuc3Vic2NyaWJlKCl9dmFyIGg9e3NldFRpbWVvdXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49aC5kZWxlZ2F0ZTtyZXR1cm4oKG51bGw9PW4/dm9pZCAwOm4uc2V0VGltZW91dCl8fHNldFRpbWVvdXQpLmFwcGx5KHZvaWQgMCxhKFtdLGkodCkpKX0sY2xlYXJUaW1lb3V0OmZ1bmN0aW9uKHQpe3ZhciBlPWguZGVsZWdhdGU7cmV0dXJuKChudWxsPT1lP3ZvaWQgMDplLmNsZWFyVGltZW91dCl8fGNsZWFyVGltZW91dCkodCl9LGRlbGVnYXRlOnZvaWQgMH07ZnVuY3Rpb24gYih0KXtoLnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgdH0pKX1mdW5jdGlvbiB5KCl7fWZ1bmN0aW9uIF8odCl7dCgpfXZhciBDPShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5pc1N0b3BwZWQ9ITEsZT8obi5kZXN0aW5hdGlvbj1lLGYoZSkmJmUuYWRkKG4pKTpuLmRlc3RpbmF0aW9uPU8sbn1yZXR1cm4gZShuLHQpLG4uY3JlYXRlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmV3IE0odCxlLG4pfSxuLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3RoaXMuaXNTdG9wcGVkfHx0aGlzLl9uZXh0KHQpfSxuLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuX2Vycm9yKHQpKX0sbi5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuX2NvbXBsZXRlKCkpfSxuLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuY2xvc2VkfHwodGhpcy5pc1N0b3BwZWQ9ITAsdC5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKSx0aGlzLmRlc3RpbmF0aW9uPW51bGwpfSxuLnByb3RvdHlwZS5fbmV4dD1mdW5jdGlvbih0KXt0aGlzLmRlc3RpbmF0aW9uLm5leHQodCl9LG4ucHJvdG90eXBlLl9lcnJvcj1mdW5jdGlvbih0KXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcih0KX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19LG4ucHJvdG90eXBlLl9jb21wbGV0ZT1mdW5jdGlvbigpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fSxufSkobSksTT0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4sbyl7dmFyIGksYT10LmNhbGwodGhpcyl8fHRoaXM7aWYobChlKSlpPWU7ZWxzZSBpZihlKXt2YXIgcjtuPWUuZXJyb3Isbz1lLmNvbXBsZXRlLHI9ZSxpPW51bGw9PShpPWUubmV4dCk/dm9pZCAwOmkuYmluZChyKSxuPW51bGw9PW4/dm9pZCAwOm4uYmluZChyKSxvPW51bGw9PW8/dm9pZCAwOm8uYmluZChyKX1yZXR1cm4gYS5kZXN0aW5hdGlvbj17bmV4dDppP3YoaSk6eSxlcnJvcjp2KG51bGwhPW4/bjp4KSxjb21wbGV0ZTpvP3Yobyk6eX0sYX1yZXR1cm4gZShuLHQpLG59KShDKTtmdW5jdGlvbiB2KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbl09YXJndW1lbnRzW25dO3RyeXt0LmFwcGx5KHZvaWQgMCxhKFtdLGkoZSkpKX1jYXRjaCh0KXtiKHQpfX19ZnVuY3Rpb24geCh0KXt0aHJvdyB0fXZhciBPPXtjbG9zZWQ6ITAsbmV4dDp5LGVycm9yOngsY29tcGxldGU6eX0sUD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSI7ZnVuY3Rpb24gdyh0KXtyZXR1cm4gdH1mdW5jdGlvbiBrKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBTKHQpfWZ1bmN0aW9uIFModCl7cmV0dXJuIDA9PT10Lmxlbmd0aD93OjE9PT10Lmxlbmd0aD90WzBdOmZ1bmN0aW9uIGUobil7cmV0dXJuIHQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBlKHQpfSksbil9fXZhciBEPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dCYmKHRoaXMuX3N1YnNjcmliZT10KX1yZXR1cm4gdC5wcm90b3R5cGUubGlmdD1mdW5jdGlvbihlKXt2YXIgbj1uZXcgdDtyZXR1cm4gbi5zb3VyY2U9dGhpcyxuLm9wZXJhdG9yPWUsbn0sdC5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbz10aGlzLGk9KGZ1bmN0aW9uIGEodCl7cmV0dXJuIHQmJnQgaW5zdGFuY2VvZiBDfHwoZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCYmbCh0Lm5leHQpJiZsKHQuZXJyb3IpJiZsKHQuY29tcGxldGUpfSkodCkmJmYodCl9KSh0KT90Om5ldyBNKHQsZSxuKTtyZXR1cm4gXygoZnVuY3Rpb24oKXt2YXIgdD1vLm9wZXJhdG9yLGU9by5zb3VyY2U7aS5hZGQodD90LmNhbGwoaSxlKTplP28uX3N1YnNjcmliZShpKTpvLl90cnlTdWJzY3JpYmUoaSkpfSkpLGl9LHQucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0aGlzLl9zdWJzY3JpYmUodCl9Y2F0Y2goZSl7dC5lcnJvcihlKX19LHQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiBuZXcoZT1FKGUpKSgoZnVuY3Rpb24oZSxvKXt2YXIgaTtpPW4uc3Vic2NyaWJlKChmdW5jdGlvbihlKXt0cnl7dChlKX1jYXRjaCh0KXtvKHQpLG51bGw9PWl8fGkudW5zdWJzY3JpYmUoKX19KSxvLGUpfSkpfSx0LnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBudWxsPT09KGU9dGhpcy5zb3VyY2UpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnN1YnNjcmliZSh0KX0sdC5wcm90b3R5cGVbUF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gUyh0KSh0aGlzKX0sdC5wcm90b3R5cGUudG9Qcm9taXNlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIG5ldyh0PUUodCkpKChmdW5jdGlvbih0LG4pe3ZhciBvO2Uuc3Vic2NyaWJlKChmdW5jdGlvbih0KXtyZXR1cm4gbz10fSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKHQpfSksKGZ1bmN0aW9uKCl7cmV0dXJuIHQobyl9KSl9KSl9LHQuY3JlYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdChlKX0sdH0pKCk7ZnVuY3Rpb24gRSh0KXt2YXIgZTtyZXR1cm4gbnVsbCE9PShlPW51bGwhPXQ/dDp1bmRlZmluZWQpJiZ2b2lkIDAhPT1lP2U6UHJvbWlzZX1mdW5jdGlvbiBSKHQpe3JldHVybiBmdW5jdGlvbihlKXtpZigoZnVuY3Rpb24gbih0KXtyZXR1cm4gbChudWxsPT10P3ZvaWQgMDp0LmxpZnQpfSkoZSkpcmV0dXJuIGUubGlmdCgoZnVuY3Rpb24oZSl7dHJ5e3JldHVybiB0KGUsdGhpcyl9Y2F0Y2godCl7dGhpcy5lcnJvcih0KX19KSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZhYmxlIHR5cGUiKX19dmFyIEEsVD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4sbyxpLGEpe3ZhciByPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiByLm9uRmluYWxpemU9YSxyLl9uZXh0PW4/ZnVuY3Rpb24odCl7dHJ5e24odCl9Y2F0Y2godCl7ZS5lcnJvcih0KX19OnQucHJvdG90eXBlLl9uZXh0LHIuX2Vycm9yPWk/ZnVuY3Rpb24odCl7dHJ5e2kodCl9Y2F0Y2godCl7ZS5lcnJvcih0KX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OnQucHJvdG90eXBlLl9lcnJvcixyLl9jb21wbGV0ZT1vP2Z1bmN0aW9uKCl7dHJ5e28oKX1jYXRjaCh0KXtlLmVycm9yKHQpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06dC5wcm90b3R5cGUuX2NvbXBsZXRlLHJ9cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciBlLG49dGhpcy5jbG9zZWQ7dC5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKSwhbiYmKG51bGw9PT0oZT10aGlzLm9uRmluYWxpemUpfHx2b2lkIDA9PT1lfHxlLmNhbGwodGhpcykpfSxufSkoQyksTj17c2NoZWR1bGU6ZnVuY3Rpb24odCl7dmFyIGU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lLG49Y2FuY2VsQW5pbWF0aW9uRnJhbWUsbz1OLmRlbGVnYXRlO28mJihlPW8ucmVxdWVzdEFuaW1hdGlvbkZyYW1lLG49by5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIGk9ZSgoZnVuY3Rpb24oZSl7bj12b2lkIDAsdChlKX0pKTtyZXR1cm4gbmV3IG0oKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PW4/dm9pZCAwOm4oaSl9KSl9LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1OLmRlbGVnYXRlO3JldHVybigobnVsbD09bj92b2lkIDA6bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCxhKFtdLGkodCkpKX0sY2FuY2VsQW5pbWF0aW9uRnJhbWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49Ti5kZWxlZ2F0ZTtyZXR1cm4oKG51bGw9PW4/dm9pZCAwOm4uY2FuY2VsQW5pbWF0aW9uRnJhbWUpfHxjYW5jZWxBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLGEoW10saSh0KSkpfSxkZWxlZ2F0ZTp2b2lkIDB9LHo9YygoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uIGUoKXt0KHRoaXMpLHRoaXMubmFtZT0iT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IiLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCJ9fSkpLEk9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGUuY2xvc2VkPSExLGUub2JzZXJ2ZXJzPVtdLGUuaXNTdG9wcGVkPSExLGUuaGFzRXJyb3I9ITEsZS50aHJvd25FcnJvcj1udWxsLGV9cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS5saWZ0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBIKHRoaXMsdGhpcyk7cmV0dXJuIGUub3BlcmF0b3I9dCxlfSxuLnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZD1mdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyB6fSxuLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7XygoZnVuY3Rpb24oKXt2YXIgbixpO2lmKGUuX3Rocm93SWZDbG9zZWQoKSwhZS5pc1N0b3BwZWQpe3ZhciBhPWUub2JzZXJ2ZXJzLnNsaWNlKCk7dHJ5e2Zvcih2YXIgcj1vKGEpLHM9ci5uZXh0KCk7IXMuZG9uZTtzPXIubmV4dCgpKXMudmFsdWUubmV4dCh0KX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtzJiYhcy5kb25lJiYoaT1yLnJldHVybikmJmkuY2FsbChyKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19fX0pKX0sbi5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztfKChmdW5jdGlvbigpe2lmKGUuX3Rocm93SWZDbG9zZWQoKSwhZS5pc1N0b3BwZWQpe2UuaGFzRXJyb3I9ZS5pc1N0b3BwZWQ9ITAsZS50aHJvd25FcnJvcj10O2Zvcih2YXIgbj1lLm9ic2VydmVycztuLmxlbmd0aDspbi5zaGlmdCgpLmVycm9yKHQpfX0pKX0sbi5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO18oKGZ1bmN0aW9uKCl7aWYodC5fdGhyb3dJZkNsb3NlZCgpLCF0LmlzU3RvcHBlZCl7dC5pc1N0b3BwZWQ9ITA7Zm9yKHZhciBlPXQub2JzZXJ2ZXJzO2UubGVuZ3RoOyllLnNoaWZ0KCkuY29tcGxldGUoKX19KSl9LG4ucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ9dGhpcy5jbG9zZWQ9ITAsdGhpcy5vYnNlcnZlcnM9bnVsbH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLCJvYnNlcnZlZCIse2dldDpmdW5jdGlvbigpe3ZhciB0O3JldHVybihudWxsPT09KHQ9dGhpcy5vYnNlcnZlcnMpfHx2b2lkIDA9PT10P3ZvaWQgMDp0Lmxlbmd0aCk+MH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxuLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksdC5wcm90b3R5cGUuX3RyeVN1YnNjcmliZS5jYWxsKHRoaXMsZSl9LG4ucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHQpLHRoaXMuX2lubmVyU3Vic2NyaWJlKHQpfSxuLnByb3RvdHlwZS5faW5uZXJTdWJzY3JpYmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWUub2JzZXJ2ZXJzO3JldHVybiBlLmhhc0Vycm9yfHxlLmlzU3RvcHBlZD91OihuLnB1c2godCksbmV3IG0oKGZ1bmN0aW9uKCl7cmV0dXJuIHAobix0KX0pKSl9LG4ucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1lLmlzU3RvcHBlZDtlLmhhc0Vycm9yP3QuZXJyb3IoZS50aHJvd25FcnJvcik6biYmdC5jb21wbGV0ZSgpfSxuLnByb3RvdHlwZS5hc09ic2VydmFibGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgRDtyZXR1cm4gdC5zb3VyY2U9dGhpcyx0fSxuLmNyZWF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgSCh0LGUpfSxufSkoRCksSD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4pe3ZhciBvPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gby5kZXN0aW5hdGlvbj1lLG8uc291cmNlPW4sb31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24odCl7dmFyIGUsbjtudWxsPT09KG49bnVsbD09PShlPXRoaXMuZGVzdGluYXRpb24pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLm5leHQpfHx2b2lkIDA9PT1ufHxuLmNhbGwoZSx0KX0sbi5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24odCl7dmFyIGUsbjtudWxsPT09KG49bnVsbD09PShlPXRoaXMuZGVzdGluYXRpb24pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmVycm9yKXx8dm9pZCAwPT09bnx8bi5jYWxsKGUsdCl9LG4ucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHQsZTtudWxsPT09KGU9bnVsbD09PSh0PXRoaXMuZGVzdGluYXRpb24pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmNvbXBsZXRlKXx8dm9pZCAwPT09ZXx8ZS5jYWxsKHQpfSxuLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIG51bGwhPT0obj1udWxsPT09KGU9dGhpcy5zb3VyY2UpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnN1YnNjcmliZSh0KSkmJnZvaWQgMCE9PW4/bjp1fSxufSkoSSksRj0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX3ZhbHVlPWUsbn1yZXR1cm4gZShuLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4ucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dmFyIG49dC5wcm90b3R5cGUuX3N1YnNjcmliZS5jYWxsKHRoaXMsZSk7cmV0dXJuIW4uY2xvc2VkJiZlLm5leHQodGhpcy5fdmFsdWUpLG59LG4ucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuX3ZhbHVlO2lmKHQuaGFzRXJyb3IpdGhyb3cgdC50aHJvd25FcnJvcjtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLGV9LG4ucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsdGhpcy5fdmFsdWU9ZSl9LG59KShJKSxMPXtub3c6ZnVuY3Rpb24oKXtyZXR1cm4oTC5kZWxlZ2F0ZXx8RGF0ZSkubm93KCl9LGRlbGVnYXRlOnZvaWQgMH0sQj0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4sbyl7dm9pZCAwPT09ZSYmKGU9MS8wKSx2b2lkIDA9PT1uJiYobj0xLzApLHZvaWQgMD09PW8mJihvPUwpO3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gaS5fYnVmZmVyU2l6ZT1lLGkuX3dpbmRvd1RpbWU9bixpLl90aW1lc3RhbXBQcm92aWRlcj1vLGkuX2J1ZmZlcj1bXSxpLl9pbmZpbml0ZVRpbWVXaW5kb3c9ITAsaS5faW5maW5pdGVUaW1lV2luZG93PW49PT0xLzAsaS5fYnVmZmVyU2l6ZT1NYXRoLm1heCgxLGUpLGkuX3dpbmRvd1RpbWU9TWF0aC5tYXgoMSxuKSxpfXJldHVybiBlKG4sdCksbi5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgbj10aGlzLG89bi5fYnVmZmVyLGk9bi5faW5maW5pdGVUaW1lV2luZG93LGE9bi5fdGltZXN0YW1wUHJvdmlkZXIscj1uLl93aW5kb3dUaW1lO24uaXNTdG9wcGVkfHwoby5wdXNoKGUpLCFpJiZvLnB1c2goYS5ub3coKStyKSksdGhpcy5fdHJpbUJ1ZmZlcigpLHQucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLGUpfSxuLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3RoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl90cmltQnVmZmVyKCk7Zm9yKHZhciBlPXRoaXMuX2lubmVyU3Vic2NyaWJlKHQpLG49dGhpcy5faW5maW5pdGVUaW1lV2luZG93LG89dGhpcy5fYnVmZmVyLnNsaWNlKCksaT0wO2k8by5sZW5ndGgmJiF0LmNsb3NlZDtpKz1uPzE6Mil0Lm5leHQob1tpXSk7cmV0dXJuIHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXModCksZX0sbi5wcm90b3R5cGUuX3RyaW1CdWZmZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC5fYnVmZmVyU2l6ZSxuPXQuX3RpbWVzdGFtcFByb3ZpZGVyLG89dC5fYnVmZmVyLGk9dC5faW5maW5pdGVUaW1lV2luZG93LGE9KGk/MToyKSplO2lmKGU8MS8wJiZhPG8ubGVuZ3RoJiZvLnNwbGljZSgwLG8ubGVuZ3RoLWEpLCFpKXtmb3IodmFyIHI9bi5ub3coKSxzPTAsbD0xO2w8by5sZW5ndGgmJm9bbF08PXI7bCs9MilzPWw7cyYmby5zcGxpY2UoMCxzKzEpfX0sbn0pKEkpLFY9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oZSxuKXtyZXR1cm4gdC5jYWxsKHRoaXMpfHx0aGlzfXJldHVybiBlKG4sdCksbi5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpc30sbn0pKG0pLGo9e3NldEludGVydmFsOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPWouZGVsZWdhdGU7cmV0dXJuKChudWxsPT1uP3ZvaWQgMDpuLnNldEludGVydmFsKXx8c2V0SW50ZXJ2YWwpLmFwcGx5KHZvaWQgMCxhKFtdLGkodCkpKX0sY2xlYXJJbnRlcnZhbDpmdW5jdGlvbih0KXt2YXIgZT1qLmRlbGVnYXRlO3JldHVybigobnVsbD09ZT92b2lkIDA6ZS5jbGVhckludGVydmFsKXx8Y2xlYXJJbnRlcnZhbCkodCl9LGRlbGVnYXRlOnZvaWQgMH0sVT0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4pe3ZhciBvPXQuY2FsbCh0aGlzLGUsbil8fHRoaXM7cmV0dXJuIG8uc2NoZWR1bGVyPWUsby53b3JrPW4sby5wZW5kaW5nPSExLG99cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PWUmJihlPTApLHRoaXMuY2xvc2VkKXJldHVybiB0aGlzO3RoaXMuc3RhdGU9dDt2YXIgbj10aGlzLmlkLG89dGhpcy5zY2hlZHVsZXI7cmV0dXJuIG51bGwhPW4mJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQobyxuLGUpKSx0aGlzLnBlbmRpbmc9ITAsdGhpcy5kZWxheT1lLHRoaXMuaWQ9dGhpcy5pZHx8dGhpcy5yZXF1ZXN0QXN5bmNJZChvLHRoaXMuaWQsZSksdGhpc30sbi5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj0wKSxqLnNldEludGVydmFsKHQuZmx1c2guYmluZCh0LHRoaXMpLG4pfSxuLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbih0LGUsbil7aWYodm9pZCAwPT09biYmKG49MCksbnVsbCE9biYmdGhpcy5kZWxheT09PW4mJiExPT09dGhpcy5wZW5kaW5nKXJldHVybiBlO2ouY2xlYXJJbnRlcnZhbChlKX0sbi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbih0LGUpe2lmKHRoaXMuY2xvc2VkKXJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTt0aGlzLnBlbmRpbmc9ITE7dmFyIG49dGhpcy5fZXhlY3V0ZSh0LGUpO2lmKG4pcmV0dXJuIG47ITE9PT10aGlzLnBlbmRpbmcmJm51bGwhPXRoaXMuaWQmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQodGhpcy5zY2hlZHVsZXIsdGhpcy5pZCxudWxsKSl9LG4ucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbz0hMTt0cnl7dGhpcy53b3JrKHQpfWNhdGNoKHQpe289ITAsbj0hIXQmJnR8fG5ldyBFcnJvcih0KX1pZihvKXJldHVybiB0aGlzLnVuc3Vic2NyaWJlKCksbn0sbi5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXtpZighdGhpcy5jbG9zZWQpe3ZhciBlPXRoaXMuaWQsbj10aGlzLnNjaGVkdWxlcixvPW4uYWN0aW9uczt0aGlzLndvcms9dGhpcy5zdGF0ZT10aGlzLnNjaGVkdWxlcj1udWxsLHRoaXMucGVuZGluZz0hMSxwKG8sdGhpcyksbnVsbCE9ZSYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChuLGUsbnVsbCkpLHRoaXMuZGVsYXk9bnVsbCx0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfX0sbn0pKFYpLEc9MSxXPXt9O2Z1bmN0aW9uIFkodCl7cmV0dXJuIHQgaW4gVyYmKGRlbGV0ZSBXW3RdLCEwKX12YXIgcT1mdW5jdGlvbih0KXt2YXIgZT1HKys7cmV0dXJuIFdbZV09ITAsQXx8KEE9UHJvbWlzZS5yZXNvbHZlKCkpLEEudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gWShlKSYmdCgpfSkpLGV9LFo9ZnVuY3Rpb24odCl7WSh0KX0sWD17c2V0SW1tZWRpYXRlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPVguZGVsZWdhdGU7cmV0dXJuKChudWxsPT1uP3ZvaWQgMDpuLnNldEltbWVkaWF0ZSl8fHEpLmFwcGx5KHZvaWQgMCxhKFtdLGkodCkpKX0sY2xlYXJJbW1lZGlhdGU6ZnVuY3Rpb24odCl7dmFyIGU9WC5kZWxlZ2F0ZTtyZXR1cm4oKG51bGw9PWU/dm9pZCAwOmUuY2xlYXJJbW1lZGlhdGUpfHxaKSh0KX0sZGVsZWdhdGU6dm9pZCAwfSxLPShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUsbil7dmFyIG89dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gby5zY2hlZHVsZXI9ZSxvLndvcms9bixvfXJldHVybiBlKG4sdCksbi5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24oZSxuLG8pe3JldHVybiB2b2lkIDA9PT1vJiYobz0wKSxudWxsIT09byYmbz4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxlLG4sbyk6KGUuYWN0aW9ucy5wdXNoKHRoaXMpLGUuX3NjaGVkdWxlZHx8KGUuX3NjaGVkdWxlZD1YLnNldEltbWVkaWF0ZShlLmZsdXNoLmJpbmQoZSx2b2lkIDApKSkpfSxuLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihlLG4sbyl7aWYodm9pZCAwPT09byYmKG89MCksbnVsbCE9byYmbz4wfHxudWxsPT1vJiZ0aGlzLmRlbGF5PjApcmV0dXJuIHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyxlLG4sbyk7MD09PWUuYWN0aW9ucy5sZW5ndGgmJihYLmNsZWFySW1tZWRpYXRlKG4pLGUuX3NjaGVkdWxlZD12b2lkIDApfSxufSkoVSksSj0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7dm9pZCAwPT09biYmKG49dC5ub3cpLHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcj1lLHRoaXMubm93PW59cmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9MCksbmV3IHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcih0aGlzLHQpLnNjaGVkdWxlKG4sZSl9LHQubm93PUwubm93LHR9KSgpLFE9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oZSxuKXt2b2lkIDA9PT1uJiYobj1KLm5vdyk7dmFyIG89dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gby5hY3Rpb25zPVtdLG8uX2FjdGl2ZT0hMSxvLl9zY2hlZHVsZWQ9dm9pZCAwLG99cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmFjdGlvbnM7aWYodGhpcy5fYWN0aXZlKWUucHVzaCh0KTtlbHNle3ZhciBuO3RoaXMuX2FjdGl2ZT0hMDtkb3tpZihuPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrfXdoaWxlKHQ9ZS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDt0PWUuc2hpZnQoKTspdC51bnN1YnNjcmliZSgpO3Rocm93IG59fX0sbn0pKEopLCQ9bmV3KChmdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZT0hMCx0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwO3ZhciBlLG49dGhpcy5hY3Rpb25zLG89LTE7dD10fHxuLnNoaWZ0KCk7dmFyIGk9bi5sZW5ndGg7ZG97aWYoZT10LmV4ZWN1dGUodC5zdGF0ZSx0LmRlbGF5KSlicmVha313aGlsZSgrK288aSYmKHQ9bi5zaGlmdCgpKSk7aWYodGhpcy5fYWN0aXZlPSExLGUpe2Zvcig7KytvPGkmJih0PW4uc2hpZnQoKSk7KXQudW5zdWJzY3JpYmUoKTt0aHJvdyBlfX0sbn0pKFEpKShLKSx0dD1uZXcgUShVKSxldD10dCxudD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4pe3ZhciBvPXQuY2FsbCh0aGlzLGUsbil8fHRoaXM7cmV0dXJuIG8uc2NoZWR1bGVyPWUsby53b3JrPW4sb31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTApLG4+MD90LnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsZSxuKToodGhpcy5kZWxheT1uLHRoaXMuc3RhdGU9ZSx0aGlzLnNjaGVkdWxlci5mbHVzaCh0aGlzKSx0aGlzKX0sbi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihlLG4pe3JldHVybiBuPjB8fHRoaXMuY2xvc2VkP3QucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLGUsbik6dGhpcy5fZXhlY3V0ZShlLG4pfSxuLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihlLG4sbyl7cmV0dXJuIHZvaWQgMD09PW8mJihvPTApLG51bGwhPW8mJm8+MHx8bnVsbD09byYmdGhpcy5kZWxheT4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxlLG4sbyk6ZS5mbHVzaCh0aGlzKX0sbn0pKFUpLG90PW5ldygoZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGUobix0KSxufSkoUSkpKG50KSxpdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4pe3ZhciBvPXQuY2FsbCh0aGlzLGUsbil8fHRoaXM7cmV0dXJuIG8uc2NoZWR1bGVyPWUsby53b3JrPW4sb31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKGUsbixvKXtyZXR1cm4gdm9pZCAwPT09byYmKG89MCksbnVsbCE9PW8mJm8+MD90LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsZSxuLG8pOihlLmFjdGlvbnMucHVzaCh0aGlzKSxlLl9zY2hlZHVsZWR8fChlLl9zY2hlZHVsZWQ9Ti5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuZmx1c2godm9pZCAwKX0pKSkpfSxuLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihlLG4sbyl7aWYodm9pZCAwPT09byYmKG89MCksbnVsbCE9byYmbz4wfHxudWxsPT1vJiZ0aGlzLmRlbGF5PjApcmV0dXJuIHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyxlLG4sbyk7MD09PWUuYWN0aW9ucy5sZW5ndGgmJihOLmNhbmNlbEFuaW1hdGlvbkZyYW1lKG4pLGUuX3NjaGVkdWxlZD12b2lkIDApfSxufSkoVSksYXQ9bmV3KChmdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZT0hMCx0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwO3ZhciBlLG49dGhpcy5hY3Rpb25zLG89LTE7dD10fHxuLnNoaWZ0KCk7dmFyIGk9bi5sZW5ndGg7ZG97aWYoZT10LmV4ZWN1dGUodC5zdGF0ZSx0LmRlbGF5KSlicmVha313aGlsZSgrK288aSYmKHQ9bi5zaGlmdCgpKSk7aWYodGhpcy5fYWN0aXZlPSExLGUpe2Zvcig7KytvPGkmJih0PW4uc2hpZnQoKSk7KXQudW5zdWJzY3JpYmUoKTt0aHJvdyBlfX0sbn0pKFEpKShpdCkscnQ9bmV3IEQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbXBsZXRlKCl9KSk7ZnVuY3Rpb24gc3QodCxlKXtyZXR1cm4gbmV3IEQoKGZ1bmN0aW9uKG4pe3ZhciBvPTA7cmV0dXJuIGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7bz09PXQubGVuZ3RoP24uY29tcGxldGUoKToobi5uZXh0KHRbbysrXSksbi5jbG9zZWR8fHRoaXMuc2NoZWR1bGUoKSl9KSl9KSl9dmFyIGx0PWZ1bmN0aW9uKHQpe3JldHVybiB0JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoJiYiZnVuY3Rpb24iIT10eXBlb2YgdH07ZnVuY3Rpb24gY3QodCl7cmV0dXJuIGwobnVsbD09dD92b2lkIDA6dC50aGVuKX12YXIgZHQscHQ9KGZ1bmN0aW9uIG10KCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yP1N5bWJvbC5pdGVyYXRvcjoiQEBpdGVyYXRvciJ9KSgpO2Z1bmN0aW9uIHV0KHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJJdGVyYWJsZSBjYW5ub3QgYmUgbnVsbCIpO3JldHVybiBuZXcgRCgoZnVuY3Rpb24obil7dmFyIG89bmV3IG07cmV0dXJuIG8uYWRkKGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7dmFyIGk9dFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtvLmFkZChlLnNjaGVkdWxlKChmdW5jdGlvbigpe3ZhciB0PXRoaXM7aS5uZXh0KCkudGhlbigoZnVuY3Rpb24oZSl7ZS5kb25lP24uY29tcGxldGUoKToobi5uZXh0KGUudmFsdWUpLHQuc2NoZWR1bGUoKSl9KSl9KSkpfSkpKSxvfSkpfWZ1bmN0aW9uIGZ0KHQpe3JldHVybiBsKHRbUF0pfWZ1bmN0aW9uIGd0KHQpe3JldHVybiBsKG51bGw9PXQ/dm9pZCAwOnRbcHRdKX1mdW5jdGlvbiBodCh0KXtyZXR1cm4gU3ltYm9sLmFzeW5jSXRlcmF0b3ImJmwobnVsbD09dD92b2lkIDA6dFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pfWZ1bmN0aW9uIGJ0KHQpe3JldHVybiBuZXcgVHlwZUVycm9yKCJZb3UgcHJvdmlkZWQgIisobnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdD8iYW4gaW52YWxpZCBvYmplY3QiOiInIit0KyInIikrIiB3aGVyZSBhIHN0cmVhbSB3YXMgZXhwZWN0ZWQuIFlvdSBjYW4gcHJvdmlkZSBhbiBPYnNlcnZhYmxlLCBQcm9taXNlLCBSZWFkYWJsZVN0cmVhbSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLiIpfWZ1bmN0aW9uIHl0KHQpe3JldHVybiBzKHRoaXMsYXJndW1lbnRzLChmdW5jdGlvbiBlKCl7dmFyIG8saSxhO3JldHVybiBuKHRoaXMsKGZ1bmN0aW9uKGUpe3N3aXRjaChlLmxhYmVsKXtjYXNlIDA6bz10LmdldFJlYWRlcigpLGUubGFiZWw9MTtjYXNlIDE6ZS50cnlzLnB1c2goWzEsLDksMTBdKSxlLmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LHIoby5yZWFkKCkpXTtjYXNlIDM6cmV0dXJuIGk9ZS5zZW50KCksYT1pLnZhbHVlLGkuZG9uZT9bNCxyKHZvaWQgMCldOlszLDVdO2Nhc2UgNDpyZXR1cm5bMixlLnNlbnQoKV07Y2FzZSA1OnJldHVybls0LHIoYSldO2Nhc2UgNjpyZXR1cm5bNCxlLnNlbnQoKV07Y2FzZSA3OnJldHVybiBlLnNlbnQoKSxbMywyXTtjYXNlIDg6cmV0dXJuWzMsMTBdO2Nhc2UgOTpyZXR1cm4gby5yZWxlYXNlTG9jaygpLFs3XTtjYXNlIDEwOnJldHVyblsyXX19KSl9KSl9ZnVuY3Rpb24gX3QodCl7cmV0dXJuIGwobnVsbD09dD92b2lkIDA6dC5nZXRSZWFkZXIpfWZ1bmN0aW9uIEN0KHQsZSl7cmV0dXJuIGU/KGZ1bmN0aW9uIG4odCxlKXtpZihudWxsIT10KXtpZihmdCh0KSlyZXR1cm4oZnVuY3Rpb24gbih0LGUpe3JldHVybiBuZXcgRCgoZnVuY3Rpb24obil7dmFyIG89bmV3IG07cmV0dXJuIG8uYWRkKGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7dmFyIGk9dFtQXSgpO28uYWRkKGkuc3Vic2NyaWJlKHtuZXh0OmZ1bmN0aW9uKHQpe28uYWRkKGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIG4ubmV4dCh0KX0pKSl9LGVycm9yOmZ1bmN0aW9uKHQpe28uYWRkKGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIG4uZXJyb3IodCl9KSkpfSxjb21wbGV0ZTpmdW5jdGlvbigpe28uYWRkKGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIG4uY29tcGxldGUoKX0pKSl9fSkpfSkpKSxvfSkpfSkodCxlKTtpZihsdCh0KSlyZXR1cm4gc3QodCxlKTtpZihjdCh0KSlyZXR1cm4oZnVuY3Rpb24gbyh0LGUpe3JldHVybiBuZXcgRCgoZnVuY3Rpb24obil7cmV0dXJuIGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIHQudGhlbigoZnVuY3Rpb24odCl7bi5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtuLm5leHQodCksbi5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gbi5jb21wbGV0ZSgpfSkpKX0pKSl9KSwoZnVuY3Rpb24odCl7bi5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gbi5lcnJvcih0KX0pKSl9KSl9KSl9KSl9KSh0LGUpO2lmKGh0KHQpKXJldHVybiB1dCh0LGUpO2lmKGd0KHQpKXJldHVybihmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIG5ldyBEKChmdW5jdGlvbihuKXt2YXIgbztyZXR1cm4gbi5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtvPXRbcHRdKCksKGZ1bmN0aW9uIGkodCxlLG4sbyl7dm9pZCAwPT09byYmKG89MCk7dmFyIGk9ZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXt0cnl7bi5jYWxsKHRoaXMpfWNhdGNoKGUpe3QuZXJyb3IoZSl9fSksbyk7dC5hZGQoaSl9KShuLGUsKGZ1bmN0aW9uKCl7dmFyIHQ9by5uZXh0KCksZT10LnZhbHVlO3QuZG9uZT9uLmNvbXBsZXRlKCk6KG4ubmV4dChlKSx0aGlzLnNjaGVkdWxlKCkpfSkpfSkpKSxmdW5jdGlvbigpe3JldHVybiBsKG51bGw9PW8/dm9pZCAwOm8ucmV0dXJuKSYmby5yZXR1cm4oKX19KSl9KSh0LGUpO2lmKF90KHQpKXJldHVybihmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIHV0KHl0KHQpLGUpfSkodCxlKX10aHJvdyBidCh0KX0pKHQsZSk6TXQodCl9ZnVuY3Rpb24gTXQodCl7aWYodCBpbnN0YW5jZW9mIEQpcmV0dXJuIHQ7aWYobnVsbCE9dCl7aWYoZnQodCkpcmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyBEKChmdW5jdGlvbihlKXt2YXIgbj10W1BdKCk7aWYobChuLnN1YnNjcmliZSkpcmV0dXJuIG4uc3Vic2NyaWJlKGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIil9KSl9KSh0KTtpZihsdCh0KSlyZXR1cm4gdnQodCk7aWYoY3QodCkpcmV0dXJuKGZ1bmN0aW9uIG4odCl7cmV0dXJuIG5ldyBEKChmdW5jdGlvbihlKXt0LnRoZW4oKGZ1bmN0aW9uKHQpe2UuY2xvc2VkfHwoZS5uZXh0KHQpLGUuY29tcGxldGUoKSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIGUuZXJyb3IodCl9KSkudGhlbihudWxsLGIpfSkpfSkodCk7aWYoaHQodCkpcmV0dXJuIHh0KHQpO2lmKGd0KHQpKXJldHVybihmdW5jdGlvbiBpKHQpe3JldHVybiBuZXcgRCgoZnVuY3Rpb24oZSl7dmFyIG4saTt0cnl7Zm9yKHZhciBhPW8odCkscj1hLm5leHQoKTshci5kb25lO3I9YS5uZXh0KCkpaWYoZS5uZXh0KHIudmFsdWUpLGUuY2xvc2VkKXJldHVybn1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtyJiYhci5kb25lJiYoaT1hLnJldHVybikmJmkuY2FsbChhKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19ZS5jb21wbGV0ZSgpfSkpfSkodCk7aWYoX3QodCkpcmV0dXJuKGZ1bmN0aW9uIGEodCl7cmV0dXJuIHh0KHl0KHQpKX0pKHQpfXRocm93IGJ0KHQpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiBuZXcgRCgoZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aCYmIWUuY2xvc2VkO24rKyllLm5leHQodFtuXSk7ZS5jb21wbGV0ZSgpfSkpfWZ1bmN0aW9uIHh0KHQpe3JldHVybiBuZXcgRCgoZnVuY3Rpb24oZSl7KGZ1bmN0aW9uIGkodCxlKXt2YXIgaSxhLHIscztyZXR1cm4oZnVuY3Rpb24gbCh0LGUsbixvKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24oaSxhKXtmdW5jdGlvbiByKHQpe3RyeXtsKG8ubmV4dCh0KSl9Y2F0Y2godCl7YSh0KX19ZnVuY3Rpb24gcyh0KXt0cnl7bChvLnRocm93KHQpKX1jYXRjaCh0KXthKHQpfX1mdW5jdGlvbiBsKHQpe3QuZG9uZT9pKHQudmFsdWUpOihmdW5jdGlvbiBlKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpfSkodC52YWx1ZSkudGhlbihyLHMpfWwoKG89by5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pKX0pKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgbDtyZXR1cm4gbih0aGlzLChmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOm4udHJ5cy5wdXNoKFswLDUsNiwxMV0pLGk9KGZ1bmN0aW9uIGModCl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBlLG49dFtTeW1ib2wuYXN5bmNJdGVyYXRvcl07cmV0dXJuIG4/bi5jYWxsKHQpOih0PW8odCksZT17fSxpKCJuZXh0IiksaSgidGhyb3ciKSxpKCJyZXR1cm4iKSxlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlKTtmdW5jdGlvbiBpKG4pe2Vbbl09dFtuXSYmZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihvLGkpeyEoZnVuY3Rpb24gYSh0LGUsbixvKXtQcm9taXNlLnJlc29sdmUobykudGhlbigoZnVuY3Rpb24oZSl7dCh7dmFsdWU6ZSxkb25lOm59KX0pLGUpfSkobyxpLChlPXRbbl0oZSkpLmRvbmUsZS52YWx1ZSl9KSl9fX0pKHQpLG4ubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsaS5uZXh0KCldO2Nhc2UgMjppZigoYT1uLnNlbnQoKSkuZG9uZSlyZXR1cm5bMyw0XTtpZihlLm5leHQoYS52YWx1ZSksZS5jbG9zZWQpcmV0dXJuWzJdO24ubGFiZWw9MztjYXNlIDM6cmV0dXJuWzMsMV07Y2FzZSA0OnJldHVyblszLDExXTtjYXNlIDU6cmV0dXJuIGw9bi5zZW50KCkscj17ZXJyb3I6bH0sWzMsMTFdO2Nhc2UgNjpyZXR1cm4gbi50cnlzLnB1c2goWzYsLDksMTBdKSxhJiYhYS5kb25lJiYocz1pLnJldHVybik/WzQscy5jYWxsKGkpXTpbMyw4XTtjYXNlIDc6bi5zZW50KCksbi5sYWJlbD04O2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OmlmKHIpdGhyb3cgci5lcnJvcjtyZXR1cm5bN107Y2FzZSAxMDpyZXR1cm5bN107Y2FzZSAxMTpyZXR1cm4gZS5jb21wbGV0ZSgpLFsyXX19KSl9KSl9KSh0LGUpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5lcnJvcih0KX0pKX0pKX1mdW5jdGlvbiBPdCh0LGUpe3JldHVybiBlP3N0KHQsZSk6dnQodCl9ZnVuY3Rpb24gUHQodCl7cmV0dXJuIHQmJmwodC5zY2hlZHVsZSl9ZnVuY3Rpb24gd3QodCl7cmV0dXJuIHRbdC5sZW5ndGgtMV19ZnVuY3Rpb24ga3QodCl7cmV0dXJuIGwod3QodCkpP3QucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIFN0KHQpe3JldHVybiBQdCh3dCh0KSk/dC5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gRHQodCxlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHd0KHQpP3QucG9wKCk6ZX1mdW5jdGlvbiBFdCgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1TdCh0KTtyZXR1cm4gbj9zdCh0LG4pOk90KHQpfWZ1bmN0aW9uIFJ0KHQsZSl7dmFyIG49bCh0KT90OmZ1bmN0aW9uKCl7cmV0dXJuIHR9LG89ZnVuY3Rpb24odCl7cmV0dXJuIHQuZXJyb3IobigpKX07cmV0dXJuIG5ldyBEKGU/ZnVuY3Rpb24odCl7cmV0dXJuIGUuc2NoZWR1bGUobywwLHQpfTpvKX0hKGZ1bmN0aW9uKHQpe3QuTkVYVD0iTiIsdC5FUlJPUj0iRSIsdC5DT01QTEVURT0iQyJ9KShkdHx8KGR0PXt9KSk7dmFyIEF0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3RoaXMua2luZD10LHRoaXMudmFsdWU9ZSx0aGlzLmVycm9yPW4sdGhpcy5oYXNWYWx1ZT0iTiI9PT10fXJldHVybiB0LnByb3RvdHlwZS5vYnNlcnZlPWZ1bmN0aW9uKHQpe3JldHVybiBUdCh0aGlzLHQpfSx0LnByb3RvdHlwZS5kbz1mdW5jdGlvbih0LGUsbil7dmFyIG89dGhpcyxpPW8ua2luZCxhPW8uZXJyb3I7cmV0dXJuIk4iPT09aT9udWxsPT10P3ZvaWQgMDp0KG8udmFsdWUpOiJFIj09PWk/bnVsbD09ZT92b2lkIDA6ZShhKTpudWxsPT1uP3ZvaWQgMDpuKCl9LHQucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbih0LGUsbil7dmFyIG87cmV0dXJuIGwobnVsbD09PShvPXQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLm5leHQpP3RoaXMub2JzZXJ2ZSh0KTp0aGlzLmRvKHQsZSxuKX0sdC5wcm90b3R5cGUudG9PYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQua2luZCxuPXQuZXJyb3Isbz0iTiI9PT1lP0V0KHQudmFsdWUpOiJFIj09PWU/UnQoKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSk6IkMiPT09ZT9ydDowO2lmKCFvKXRocm93IG5ldyBUeXBlRXJyb3IoIlVuZXhwZWN0ZWQgbm90aWZpY2F0aW9uIGtpbmQgIitlKTtyZXR1cm4gb30sdC5jcmVhdGVOZXh0PWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdCgiTiIsZSl9LHQuY3JlYXRlRXJyb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KCJFIix2b2lkIDAsZSl9LHQuY3JlYXRlQ29tcGxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5jb21wbGV0ZU5vdGlmaWNhdGlvbn0sdC5jb21wbGV0ZU5vdGlmaWNhdGlvbj1uZXcgdCgiQyIpLHR9KSgpO2Z1bmN0aW9uIFR0KHQsZSl7dmFyIG4sbyxpLGE9dC5raW5kLHI9dC52YWx1ZSxzPXQuZXJyb3I7aWYoInN0cmluZyIhPXR5cGVvZiBhKXRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbm90aWZpY2F0aW9uLCBtaXNzaW5nICJraW5kIicpOyJOIj09PWE/bnVsbD09PShuPWUubmV4dCl8fHZvaWQgMD09PW58fG4uY2FsbChlLHIpOiJFIj09PWE/bnVsbD09PShvPWUuZXJyb3IpfHx2b2lkIDA9PT1vfHxvLmNhbGwoZSxzKTpudWxsPT09KGk9ZS5jb21wbGV0ZSl8fHZvaWQgMD09PWl8fGkuY2FsbChlKX1mdW5jdGlvbiBOdCh0KXtyZXR1cm4hIXQmJih0IGluc3RhbmNlb2YgRHx8bCh0LmxpZnQpJiZsKHQuc3Vic2NyaWJlKSl9dmFyIHp0PWMoKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbiBlKCl7dCh0aGlzKSx0aGlzLm5hbWU9IkVtcHR5RXJyb3IiLHRoaXMubWVzc2FnZT0ibm8gZWxlbWVudHMgaW4gc2VxdWVuY2UifX0pKTtmdW5jdGlvbiBJdCh0LGUpe3JldHVybiBSKChmdW5jdGlvbihuLG8pe3ZhciBpPTA7bi5zdWJzY3JpYmUobmV3IFQobywoZnVuY3Rpb24obil7by5uZXh0KHQuY2FsbChlLG4saSsrKSl9KSkpfSkpfXZhciBIdD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIEZ0KHQpe3JldHVybiBJdCgoZnVuY3Rpb24oZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gSHQoZSk/dC5hcHBseSh2b2lkIDAsYShbXSxpKGUpKSk6dChlKX0pKHQsZSl9KSl9dmFyIEx0PUFycmF5LmlzQXJyYXksQnQ9T2JqZWN0LmdldFByb3RvdHlwZU9mLFZ0PU9iamVjdC5wcm90b3R5cGUsanQ9T2JqZWN0LmtleXM7ZnVuY3Rpb24gVXQodCl7aWYoMT09PXQubGVuZ3RoKXt2YXIgZT10WzBdO2lmKEx0KGUpKXJldHVybnthcmdzOmUsa2V5czpudWxsfTtpZigoZnVuY3Rpb24gbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0JiZCdCh0KT09PVZ0fSkoZSkpe3ZhciBvPWp0KGUpO3JldHVybnthcmdzOm8ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKSxrZXlzOm99fX1yZXR1cm57YXJnczp0LGtleXM6bnVsbH19ZnVuY3Rpb24gR3QodCxlKXtyZXR1cm4gdC5yZWR1Y2UoKGZ1bmN0aW9uKHQsbixvKXtyZXR1cm4gdFtuXT1lW29dLHR9KSx7fSl9ZnVuY3Rpb24gV3QoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49U3QodCksbz1rdCh0KSxpPVV0KHQpLGE9aS5hcmdzLHI9aS5rZXlzO2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gQ3QoW10sbik7dmFyIHM9bmV3IEQoWXQoYSxuLHI/ZnVuY3Rpb24odCl7cmV0dXJuIEd0KHIsdCl9OncpKTtyZXR1cm4gbz9zLnBpcGUoRnQobykpOnN9ZnVuY3Rpb24gWXQodCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj13KSxmdW5jdGlvbihvKXtxdChlLChmdW5jdGlvbigpe2Zvcih2YXIgaT10Lmxlbmd0aCxhPW5ldyBBcnJheShpKSxyPWkscz1pLGw9ZnVuY3Rpb24oaSl7cXQoZSwoZnVuY3Rpb24oKXt2YXIgbD1DdCh0W2ldLGUpLGM9ITE7bC5zdWJzY3JpYmUobmV3IFQobywoZnVuY3Rpb24odCl7YVtpXT10LGN8fChjPSEwLHMtLSksc3x8by5uZXh0KG4oYS5zbGljZSgpKSl9KSwoZnVuY3Rpb24oKXstLXJ8fG8uY29tcGxldGUoKX0pKSl9KSxvKX0sYz0wO2M8aTtjKyspbChjKX0pLG8pfX1mdW5jdGlvbiBxdCh0LGUsbil7dD9uLmFkZCh0LnNjaGVkdWxlKGUpKTplKCl9ZnVuY3Rpb24gWnQodCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj0xLzApLGwoZSk/WnQoKGZ1bmN0aW9uKG4sbyl7cmV0dXJuIEl0KChmdW5jdGlvbih0LGkpe3JldHVybiBlKG4sdCxvLGkpfSkpKE10KHQobixvKSkpfSksbik6KCJudW1iZXIiPT10eXBlb2YgZSYmKG49ZSksUigoZnVuY3Rpb24oZSxvKXtyZXR1cm4oZnVuY3Rpb24gaSh0LGUsbixvLGEscixzLGwpe3ZhciBjPVtdLGQ9MCxwPTAsbT0hMSx1PWZ1bmN0aW9uKCl7IW18fGMubGVuZ3RofHxkfHxlLmNvbXBsZXRlKCl9LGY9ZnVuY3Rpb24odCl7cmV0dXJuIGQ8bz9nKHQpOmMucHVzaCh0KX0sZz1mdW5jdGlvbih0KXtyJiZlLm5leHQodCksZCsrO3ZhciBpPSExO010KG4odCxwKyspKS5zdWJzY3JpYmUobmV3IFQoZSwoZnVuY3Rpb24odCl7bnVsbD09YXx8YSh0KSxyP2YodCk6ZS5uZXh0KHQpfSksKGZ1bmN0aW9uKCl7aT0hMH0pLHZvaWQgMCwoZnVuY3Rpb24oKXtpZihpKXRyeXtkLS07Zm9yKHZhciB0PWZ1bmN0aW9uKCl7dmFyIHQ9Yy5zaGlmdCgpO3M/ZS5hZGQocy5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gZyh0KX0pKSk6Zyh0KX07Yy5sZW5ndGgmJmQ8bzspdCgpO3UoKX1jYXRjaCh0KXtlLmVycm9yKHQpfX0pKSl9O3JldHVybiB0LnN1YnNjcmliZShuZXcgVChlLGYsKGZ1bmN0aW9uKCl7bT0hMCx1KCl9KSkpLGZ1bmN0aW9uKCl7bnVsbD09bHx8bCgpfX0pKGUsbyx0LG4pfSkpKX1mdW5jdGlvbiBYdCh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9MS8wKSxadCh3LHQpfWZ1bmN0aW9uIEt0KCl7cmV0dXJuIFh0KDEpfWZ1bmN0aW9uIEp0KCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBLdCgpKE90KHQsU3QodCkpKX1mdW5jdGlvbiBRdCh0KXtyZXR1cm4gbmV3IEQoKGZ1bmN0aW9uKGUpe010KHQoKSkuc3Vic2NyaWJlKGUpfSkpfWZ1bmN0aW9uICR0KCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPWt0KHQpLG89VXQodCksaT1vLmFyZ3MsYT1vLmtleXMscj1uZXcgRCgoZnVuY3Rpb24odCl7dmFyIGU9aS5sZW5ndGg7aWYoZSlmb3IodmFyIG49bmV3IEFycmF5KGUpLG89ZSxyPWUscz1mdW5jdGlvbihlKXt2YXIgcz0hMTtNdChpW2VdKS5zdWJzY3JpYmUobmV3IFQodCwoZnVuY3Rpb24odCl7c3x8KHM9ITAsci0tKSxuW2VdPXR9KSwoZnVuY3Rpb24oKXstLW8mJnN8fChyfHx0Lm5leHQoYT9HdChhLG4pOm4pLHQuY29tcGxldGUoKSl9KSkpfSxsPTA7bDxlO2wrKylzKGwpO2Vsc2UgdC5jb21wbGV0ZSgpfSkpO3JldHVybiBuP3IucGlwZShGdChuKSk6cn12YXIgdGU9WyJhZGRMaXN0ZW5lciIsInJlbW92ZUxpc3RlbmVyIl0sZWU9WyJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLG5lPVsib24iLCJvZmYiXTtmdW5jdGlvbiBvZSh0LGUsbixvKXtpZihsKG4pJiYobz1uLG49dm9pZCAwKSxvKXJldHVybiBvZSh0LGUsbikucGlwZShGdChvKSk7dmFyIGE9aSgoZnVuY3Rpb24gcih0KXtyZXR1cm4gbCh0LmFkZEV2ZW50TGlzdGVuZXIpJiZsKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcil9KSh0KT9lZS5tYXAoKGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gdFtvXShlLGksbil9fSkpOihmdW5jdGlvbiBzKHQpe3JldHVybiBsKHQuYWRkTGlzdGVuZXIpJiZsKHQucmVtb3ZlTGlzdGVuZXIpfSkodCk/dGUubWFwKGllKHQsZSkpOihmdW5jdGlvbiBjKHQpe3JldHVybiBsKHQub24pJiZsKHQub2ZmKX0pKHQpP25lLm1hcChpZSh0LGUpKTpbXSwyKSxkPWFbMF0scD1hWzFdO2lmKCFkJiZsdCh0KSlyZXR1cm4gWnQoKGZ1bmN0aW9uKHQpe3JldHVybiBvZSh0LGUsbil9KSkoT3QodCkpO2lmKCFkKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyBEKChmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gdC5uZXh0KDE8ZS5sZW5ndGg/ZTplWzBdKX07cmV0dXJuIGQoZSksZnVuY3Rpb24oKXtyZXR1cm4gcChlKX19KSl9ZnVuY3Rpb24gaWUodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiB0W25dKGUsbyl9fX1mdW5jdGlvbiBhZSh0LGUsbil7dm9pZCAwPT09dCYmKHQ9MCksdm9pZCAwPT09biYmKG49ZXQpO3ZhciBvPS0xO3JldHVybiBudWxsIT1lJiYoUHQoZSk/bj1lOm89ZSksbmV3IEQoKGZ1bmN0aW9uKGUpe3ZhciBpPShmdW5jdGlvbiBhKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKHQpfSkodCk/K3Qtbi5ub3coKTp0O2k8MCYmKGk9MCk7dmFyIHI9MDtyZXR1cm4gbi5zY2hlZHVsZSgoZnVuY3Rpb24oKXtlLmNsb3NlZHx8KGUubmV4dChyKyspLDA8PW8/dGhpcy5zY2hlZHVsZSh2b2lkIDAsbyk6ZS5jb21wbGV0ZSgpKX0pLGkpfSkpfWZ1bmN0aW9uIHJlKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPVN0KHQpLG89RHQodCwxLzApLGk9dDtyZXR1cm4gaS5sZW5ndGg/MT09PWkubGVuZ3RoP010KGlbMF0pOlh0KG8pKE90KGksbikpOnJ0fXZhciBzZT1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIGxlKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJnNlKHRbMF0pP3RbMF06dH1mdW5jdGlvbiBjZSh0LGUpe3JldHVybiBSKChmdW5jdGlvbihuLG8pe3ZhciBpPTA7bi5zdWJzY3JpYmUobmV3IFQobywoZnVuY3Rpb24obil7cmV0dXJuIHQuY2FsbChlLG4saSsrKSYmby5uZXh0KG4pfSkpKX0pKX1mdW5jdGlvbiBkZSh0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1ldCksKGZ1bmN0aW9uIG4odCl7cmV0dXJuIFIoKGZ1bmN0aW9uKGUsbil7dmFyIG89ITEsaT1udWxsLGE9bnVsbCxyPSExLHM9ZnVuY3Rpb24oKXtpZihudWxsPT1hfHxhLnVuc3Vic2NyaWJlKCksYT1udWxsLG8pe289ITE7dmFyIHQ9aTtpPW51bGwsbi5uZXh0KHQpfXImJm4uY29tcGxldGUoKX0sbD1mdW5jdGlvbigpe2E9bnVsbCxyJiZuLmNvbXBsZXRlKCl9O2Uuc3Vic2NyaWJlKG5ldyBUKG4sKGZ1bmN0aW9uKGUpe289ITAsaT1lLGF8fE10KHQoZSkpLnN1YnNjcmliZShhPW5ldyBUKG4scyxsKSl9KSwoZnVuY3Rpb24oKXtyPSEwLCghb3x8IWF8fGEuY2xvc2VkKSYmbi5jb21wbGV0ZSgpfSkpKX0pKX0pKChmdW5jdGlvbigpe3JldHVybiBhZSh0LGUpfSkpfWZ1bmN0aW9uIHBlKHQpe3JldHVybiBSKChmdW5jdGlvbihlLG4pe3ZhciBvLGk9bnVsbCxhPSExO2k9ZS5zdWJzY3JpYmUobmV3IFQobix2b2lkIDAsdm9pZCAwLChmdW5jdGlvbihyKXtvPU10KHQocixwZSh0KShlKSkpLGk/KGkudW5zdWJzY3JpYmUoKSxpPW51bGwsby5zdWJzY3JpYmUobikpOmE9ITB9KSkpLGEmJihpLnVuc3Vic2NyaWJlKCksaT1udWxsLG8uc3Vic2NyaWJlKG4pKX0pKX1mdW5jdGlvbiBtZSh0LGUsbixvLGkpe3JldHVybiBmdW5jdGlvbihhLHIpe3ZhciBzPW4sbD1lLGM9MDthLnN1YnNjcmliZShuZXcgVChyLChmdW5jdGlvbihlKXt2YXIgbj1jKys7bD1zP3QobCxlLG4pOihzPSEwLGUpLG8mJnIubmV4dChsKX0pLGkmJmZ1bmN0aW9uKCl7cyYmci5uZXh0KGwpLHIuY29tcGxldGUoKX0pKX19ZnVuY3Rpb24gdWUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49a3QodCk7cmV0dXJuIG4/ayh1ZS5hcHBseSh2b2lkIDAsYShbXSxpKHQpKSksRnQobikpOlIoKGZ1bmN0aW9uKGUsbil7WXQoYShbZV0saShsZSh0KSkpKShuKX0pKX1mdW5jdGlvbiBmZSgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gdWUuYXBwbHkodm9pZCAwLGEoW10saSh0KSkpfWZ1bmN0aW9uIGdlKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXR0KSxSKChmdW5jdGlvbihuLG8pe3ZhciBpPW51bGwsYT1udWxsLHI9bnVsbCxzPWZ1bmN0aW9uKCl7aWYoaSl7aS51bnN1YnNjcmliZSgpLGk9bnVsbDt2YXIgdD1hO2E9bnVsbCxvLm5leHQodCl9fTtmdW5jdGlvbiBsKCl7dmFyIG49cit0LGE9ZS5ub3coKTtpZihhPG4pcmV0dXJuIGk9dGhpcy5zY2hlZHVsZSh2b2lkIDAsbi1hKSx2b2lkIG8uYWRkKGkpO3MoKX1uLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbihuKXthPW4scj1lLm5vdygpLGl8fChpPWUuc2NoZWR1bGUobCx0KSxvLmFkZChpKSl9KSwoZnVuY3Rpb24oKXtzKCksby5jb21wbGV0ZSgpfSksdm9pZCAwLChmdW5jdGlvbigpe2E9aT1udWxsfSkpKX0pKX1mdW5jdGlvbiBoZSh0KXtyZXR1cm4gUigoZnVuY3Rpb24oZSxuKXt2YXIgbz0hMTtlLnN1YnNjcmliZShuZXcgVChuLChmdW5jdGlvbih0KXtvPSEwLG4ubmV4dCh0KX0pLChmdW5jdGlvbigpe298fG4ubmV4dCh0KSxuLmNvbXBsZXRlKCl9KSkpfSkpfWZ1bmN0aW9uIGJlKHQpe3JldHVybiB0PD0wP2Z1bmN0aW9uKCl7cmV0dXJuIHJ0fTpSKChmdW5jdGlvbihlLG4pe3ZhciBvPTA7ZS5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24oZSl7KytvPD10JiYobi5uZXh0KGUpLHQ8PW8mJm4uY29tcGxldGUoKSl9KSkpfSkpfWZ1bmN0aW9uIHllKCl7cmV0dXJuIFIoKGZ1bmN0aW9uKHQsZSl7dC5zdWJzY3JpYmUobmV3IFQoZSx5KSl9KSl9ZnVuY3Rpb24gX2UodCxlKXtyZXR1cm4gZT9mdW5jdGlvbihuKXtyZXR1cm4gSnQoZS5waXBlKGJlKDEpLHllKCkpLG4ucGlwZShfZSh0KSkpfTpadCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdChlLG4pLnBpcGUoYmUoMSksKGZ1bmN0aW9uIG8odCl7cmV0dXJuIEl0KChmdW5jdGlvbigpe3JldHVybiB0fSkpfSkoZSkpfSkpfWZ1bmN0aW9uIENlKHQsZSl7dm9pZCAwPT09ZSYmKGU9dHQpO3ZhciBuPWFlKHQsZSk7cmV0dXJuIF9lKChmdW5jdGlvbigpe3JldHVybiBufSkpfWZ1bmN0aW9uIE1lKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXcpLHQ9bnVsbCE9dD90OnZlLFIoKGZ1bmN0aW9uKG4sbyl7dmFyIGksYT0hMDtuLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbihuKXt2YXIgcj1lKG4pOyFhJiZ0KGkscil8fChhPSExLGk9cixvLm5leHQobikpfSkpKX0pKX1mdW5jdGlvbiB2ZSh0LGUpe3JldHVybiB0PT09ZX1mdW5jdGlvbiB4ZSh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9T2UpLFIoKGZ1bmN0aW9uKGUsbil7dmFyIG89ITE7ZS5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24odCl7bz0hMCxuLm5leHQodCl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gbz9uLmNvbXBsZXRlKCk6bi5lcnJvcih0KCkpfSkpKX0pKX1mdW5jdGlvbiBPZSgpe3JldHVybiBuZXcgenR9ZnVuY3Rpb24gUGUodCxlKXtyZXR1cm4gZT9mdW5jdGlvbihuKXtyZXR1cm4gbi5waXBlKFBlKChmdW5jdGlvbihuLG8pe3JldHVybiBNdCh0KG4sbykpLnBpcGUoSXQoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUobix0LG8saSl9KSkpfSkpKX06UigoZnVuY3Rpb24oZSxuKXt2YXIgbz0wLGk9bnVsbCxhPSExO2Uuc3Vic2NyaWJlKG5ldyBUKG4sKGZ1bmN0aW9uKGUpe2l8fChpPW5ldyBUKG4sdm9pZCAwLChmdW5jdGlvbigpe2k9bnVsbCxhJiZuLmNvbXBsZXRlKCl9KSksTXQodChlLG8rKykpLnN1YnNjcmliZShpKSl9KSwoZnVuY3Rpb24oKXthPSEwLCFpJiZuLmNvbXBsZXRlKCl9KSkpfSkpfWZ1bmN0aW9uIHdlKHQsZSxuLG8pe3JldHVybiBSKChmdW5jdGlvbihpLGEpe3ZhciByO2UmJiJmdW5jdGlvbiIhPXR5cGVvZiBlPyhuPWUuZHVyYXRpb24scj1lLmVsZW1lbnQsbz1lLmNvbm5lY3Rvcik6cj1lO3ZhciBzPW5ldyBNYXAsbD1mdW5jdGlvbih0KXtzLmZvckVhY2godCksdChhKX0sYz1mdW5jdGlvbih0KXtyZXR1cm4gbCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXJyb3IodCl9KSl9LGQ9bmV3IGtlKGEsKGZ1bmN0aW9uKGUpe3RyeXt2YXIgaT10KGUpLGw9cy5nZXQoaSk7aWYoIWwpe3Muc2V0KGksbD1vP28oKTpuZXcgSSk7dmFyIHA9KGZ1bmN0aW9uIG0odCxlKXt2YXIgbj1uZXcgRCgoZnVuY3Rpb24odCl7ZC5hY3RpdmVHcm91cHMrKzt2YXIgbj1lLnN1YnNjcmliZSh0KTtyZXR1cm4gZnVuY3Rpb24oKXtuLnVuc3Vic2NyaWJlKCksMD09LS1kLmFjdGl2ZUdyb3VwcyYmZC50ZWFyZG93bkF0dGVtcHRlZCYmZC51bnN1YnNjcmliZSgpfX0pKTtyZXR1cm4gbi5rZXk9dCxufSkoaSxsKTtpZihhLm5leHQocCksbil7dmFyIHU9bmV3IFQobCwoZnVuY3Rpb24oKXtsLmNvbXBsZXRlKCksbnVsbD09dXx8dS51bnN1YnNjcmliZSgpfSksdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWxldGUoaSl9KSk7ZC5hZGQoTXQobihwKSkuc3Vic2NyaWJlKHUpKX19bC5uZXh0KHI/cihlKTplKX1jYXRjaCh0KXtjKHQpfX0pLChmdW5jdGlvbigpe3JldHVybiBsKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wbGV0ZSgpfSkpfSksYywoZnVuY3Rpb24oKXtyZXR1cm4gcy5jbGVhcigpfSkpO2kuc3Vic2NyaWJlKGQpfSkpfXZhciBrZT0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5hY3RpdmVHcm91cHM9MCxlLnRlYXJkb3duQXR0ZW1wdGVkPSExLGV9cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMudGVhcmRvd25BdHRlbXB0ZWQ9ITAsMD09PXRoaXMuYWN0aXZlR3JvdXBzJiZ0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfSxufSkoVCk7ZnVuY3Rpb24gU2UodCl7cmV0dXJuIHQ8PTA/ZnVuY3Rpb24oKXtyZXR1cm4gcnR9OlIoKGZ1bmN0aW9uKGUsbil7dmFyIGk9W107ZS5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24oZSl7aS5wdXNoKGUpLHQ8aS5sZW5ndGgmJmkuc2hpZnQoKX0pLChmdW5jdGlvbigpe3ZhciB0LGU7dHJ5e2Zvcih2YXIgYT1vKGkpLHI9YS5uZXh0KCk7IXIuZG9uZTtyPWEubmV4dCgpKW4ubmV4dChyLnZhbHVlKX1jYXRjaChlKXt0PXtlcnJvcjplfX1maW5hbGx5e3RyeXtyJiYhci5kb25lJiYoZT1hLnJldHVybikmJmUuY2FsbChhKX1maW5hbGx5e2lmKHQpdGhyb3cgdC5lcnJvcn19bi5jb21wbGV0ZSgpfSksdm9pZCAwLChmdW5jdGlvbigpe2k9bnVsbH0pKSl9KSl9ZnVuY3Rpb24gRGUoKXtyZXR1cm4gUigoZnVuY3Rpb24odCxlKXt2YXIgbixvPSExO3Quc3Vic2NyaWJlKG5ldyBUKGUsKGZ1bmN0aW9uKHQpe3ZhciBpPW47bj10LG8mJmUubmV4dChbaSx0XSksbz0hMH0pKSl9KSl9ZnVuY3Rpb24gRWUodCl7dm9pZCAwPT09dCYmKHQ9e30pO3ZhciBlPXQuY29ubmVjdG9yLG49dm9pZCAwPT09ZT9mdW5jdGlvbigpe3JldHVybiBuZXcgSX06ZSxvPXQucmVzZXRPbkVycm9yLGk9dm9pZCAwPT09b3x8byxhPXQucmVzZXRPbkNvbXBsZXRlLHI9dm9pZCAwPT09YXx8YSxzPXQucmVzZXRPblJlZkNvdW50WmVybyxsPXZvaWQgMD09PXN8fHM7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPW51bGwsbz1udWxsLGE9bnVsbCxzPTAsYz0hMSxkPSExLHA9ZnVuY3Rpb24oKXtudWxsPT1vfHxvLnVuc3Vic2NyaWJlKCksbz1udWxsfSxtPWZ1bmN0aW9uKCl7cCgpLGU9YT1udWxsLGM9ZD0hMX0sdT1mdW5jdGlvbigpe3ZhciB0PWU7bSgpLG51bGw9PXR8fHQudW5zdWJzY3JpYmUoKX07cmV0dXJuIFIoKGZ1bmN0aW9uKHQsZil7cysrLGR8fGN8fHAoKTt2YXIgZz1hPW51bGwhPWE/YTpuKCk7Zi5hZGQoKGZ1bmN0aW9uKCl7MCE9LS1zfHxkfHxjfHwobz1SZSh1LGwpKX0pKSxnLnN1YnNjcmliZShmKSxlfHwoZT1uZXcgTSh7bmV4dDpmdW5jdGlvbih0KXtyZXR1cm4gZy5uZXh0KHQpfSxlcnJvcjpmdW5jdGlvbih0KXtkPSEwLHAoKSxvPVJlKG0saSx0KSxnLmVycm9yKHQpfSxjb21wbGV0ZTpmdW5jdGlvbigpe2M9ITAscCgpLG89UmUobSxyKSxnLmNvbXBsZXRlKCl9fSksQ3QodCkuc3Vic2NyaWJlKGUpKX0pKSh0KX19ZnVuY3Rpb24gUmUodCxlKXtmb3IodmFyIG49W10sbz0yO288YXJndW1lbnRzLmxlbmd0aDtvKyspbltvLTJdPWFyZ3VtZW50c1tvXTtyZXR1cm4hMD09PWU/KHQoKSxudWxsKTohMT09PWU/bnVsbDplLmFwcGx5KHZvaWQgMCxhKFtdLGkobikpKS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKGZ1bmN0aW9uKCl7cmV0dXJuIHQoKX0pKX1mdW5jdGlvbiBBZSh0LGUsbil7dmFyIG8saSxhLHI9ITE7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdD8oYT1udWxsIT09KG89dC5idWZmZXJTaXplKSYmdm9pZCAwIT09bz9vOjEvMCxlPW51bGwhPT0oaT10LndpbmRvd1RpbWUpJiZ2b2lkIDAhPT1pP2k6MS8wLHI9ISF0LnJlZkNvdW50LG49dC5zY2hlZHVsZXIpOmE9bnVsbCE9dD90OjEvMCxFZSh7Y29ubmVjdG9yOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBCKGEsZSxuKX0scmVzZXRPbkVycm9yOiEwLHJlc2V0T25Db21wbGV0ZTohMSxyZXNldE9uUmVmQ291bnRaZXJvOnJ9KX1mdW5jdGlvbiBUZSh0KXtyZXR1cm4gY2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ8PW59KSl9ZnVuY3Rpb24gTmUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49U3QodCk7cmV0dXJuIFIoKGZ1bmN0aW9uKGUsbyl7KG4/SnQodCxlLG4pOkp0KHQsZSkpLnN1YnNjcmliZShvKX0pKX1mdW5jdGlvbiB6ZSh0LGUpe3JldHVybiBSKChmdW5jdGlvbihuLG8pe3ZhciBpPW51bGwsYT0wLHI9ITEscz1mdW5jdGlvbigpe3JldHVybiByJiYhaSYmby5jb21wbGV0ZSgpfTtuLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbihuKXtudWxsPT1pfHxpLnVuc3Vic2NyaWJlKCk7dmFyIHI9MCxsPWErKztNdCh0KG4sbCkpLnN1YnNjcmliZShpPW5ldyBUKG8sKGZ1bmN0aW9uKHQpe3JldHVybiBvLm5leHQoZT9lKG4sdCxsLHIrKyk6dCl9KSwoZnVuY3Rpb24oKXtpPW51bGwscygpfSkpKX0pLChmdW5jdGlvbigpe3I9ITAscygpfSkpKX0pKX1mdW5jdGlvbiBJZSh0KXtyZXR1cm4gUigoZnVuY3Rpb24oZSxuKXtNdCh0KS5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24oKXtyZXR1cm4gbi5jb21wbGV0ZSgpfSkseSkpLCFuLmNsb3NlZCYmZS5zdWJzY3JpYmUobil9KSl9ZnVuY3Rpb24gSGUodCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITEpLFIoKGZ1bmN0aW9uKG4sbyl7dmFyIGk9MDtuLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbihuKXt2YXIgYT10KG4saSsrKTsoYXx8ZSkmJm8ubmV4dChuKSwhYSYmby5jb21wbGV0ZSgpfSkpKX0pKX1mdW5jdGlvbiBGZSh0LGUsbil7dmFyIG89bCh0KXx8ZXx8bj97bmV4dDp0LGVycm9yOmUsY29tcGxldGU6bn06dDtyZXR1cm4gbz9SKChmdW5jdGlvbih0LGUpe3ZhciBuO251bGw9PT0obj1vLnN1YnNjcmliZSl8fHZvaWQgMD09PW58fG4uY2FsbChvKTt2YXIgaT0hMDt0LnN1YnNjcmliZShuZXcgVChlLChmdW5jdGlvbih0KXt2YXIgbjtudWxsPT09KG49by5uZXh0KXx8dm9pZCAwPT09bnx8bi5jYWxsKG8sdCksZS5uZXh0KHQpfSksKGZ1bmN0aW9uKCl7dmFyIHQ7aT0hMSxudWxsPT09KHQ9by5jb21wbGV0ZSl8fHZvaWQgMD09PXR8fHQuY2FsbChvKSxlLmNvbXBsZXRlKCl9KSwoZnVuY3Rpb24odCl7dmFyIG47aT0hMSxudWxsPT09KG49by5lcnJvcil8fHZvaWQgMD09PW58fG4uY2FsbChvLHQpLGUuZXJyb3IodCl9KSwoZnVuY3Rpb24oKXt2YXIgdCxlO2kmJihudWxsPT09KHQ9by51bnN1YnNjcmliZSl8fHZvaWQgMD09PXR8fHQuY2FsbChvKSksbnVsbD09PShlPW8uZmluYWxpemUpfHx2b2lkIDA9PT1lfHxlLmNhbGwobyl9KSkpfSkpOnd9dmFyIExlPXtsZWFkaW5nOiEwLHRyYWlsaW5nOiExfTtmdW5jdGlvbiBCZSh0LGUsbil7dm9pZCAwPT09ZSYmKGU9dHQpLHZvaWQgMD09PW4mJihuPUxlKTt2YXIgbz1hZSh0LGUpO3JldHVybihmdW5jdGlvbiBpKHQsZSl7dmFyIG49dm9pZCAwPT09ZT9MZTplLG89bi5sZWFkaW5nLGk9bi50cmFpbGluZztyZXR1cm4gUigoZnVuY3Rpb24oZSxuKXt2YXIgYT0hMSxyPW51bGwscz1udWxsLGw9ITEsYz1mdW5jdGlvbigpe251bGw9PXN8fHMudW5zdWJzY3JpYmUoKSxzPW51bGwsaSYmKG0oKSxsJiZuLmNvbXBsZXRlKCkpfSxkPWZ1bmN0aW9uKCl7cz1udWxsLGwmJm4uY29tcGxldGUoKX0scD1mdW5jdGlvbihlKXtyZXR1cm4gcz1NdCh0KGUpKS5zdWJzY3JpYmUobmV3IFQobixjLGQpKX0sbT1mdW5jdGlvbigpe2lmKGEpe2E9ITE7dmFyIHQ9cjtyPW51bGwsbi5uZXh0KHQpLCFsJiZwKHQpfX07ZS5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24odCl7YT0hMCxyPXQsKCFzfHxzLmNsb3NlZCkmJihvP20oKTpwKHQpKX0pLChmdW5jdGlvbigpe2w9ITAsKCEoaSYmYSYmcyl8fHMuY2xvc2VkKSYmbi5jb21wbGV0ZSgpfSkpKX0pKX0pKChmdW5jdGlvbigpe3JldHVybiBvfSksbil9ZnVuY3Rpb24gVmUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49a3QodCk7cmV0dXJuIFIoKGZ1bmN0aW9uKGUsbyl7Zm9yKHZhciByPXQubGVuZ3RoLHM9bmV3IEFycmF5KHIpLGw9dC5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuITF9KSksYz0hMSxkPWZ1bmN0aW9uKGUpe010KHRbZV0pLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbih0KXtzW2VdPXQsY3x8bFtlXXx8KGxbZV09ITAsKGM9bC5ldmVyeSh3KSkmJihsPW51bGwpKX0pLHkpKX0scD0wO3A8cjtwKyspZChwKTtlLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbih0KXtpZihjKXt2YXIgZT1hKFt0XSxpKHMpKTtvLm5leHQobj9uLmFwcGx5KHZvaWQgMCxhKFtdLGkoZSkpKTplKX19KSkpfSkpfQovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBqZSh0KXtmb3IobGV0IGUgaW4gdClpZih0W2VdPT09amUpcmV0dXJuIGU7dGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIHJlbmFtZWQgcHJvcGVydHkgb24gdGFyZ2V0IG9iamVjdC4iKX1mdW5jdGlvbiBVZSh0LGUpe2Zvcihjb25zdCBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmIXQuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBHZSh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4iWyIrdC5tYXAoR2UpLmpvaW4oIiwgIikrIl0iO2lmKG51bGw9PXQpcmV0dXJuIiIrdDtpZih0Lm92ZXJyaWRkZW5OYW1lKXJldHVybmAke3Qub3ZlcnJpZGRlbk5hbWV9YDtpZih0Lm5hbWUpcmV0dXJuYCR7dC5uYW1lfWA7Y29uc3QgZT10LnRvU3RyaW5nKCk7aWYobnVsbD09ZSlyZXR1cm4iIitlO2NvbnN0IG49ZS5pbmRleE9mKCJcbiIpO3JldHVybi0xPT09bj9lOmUuc3Vic3RyaW5nKDAsbil9ZnVuY3Rpb24gV2UodCxlKXtyZXR1cm4gbnVsbD09dHx8IiI9PT10P251bGw9PT1lPyIiOmU6bnVsbD09ZXx8IiI9PT1lP3Q6dCsiICIrZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgWWU9amUoe19fZm9yd2FyZF9yZWZfXzpqZX0pO2Z1bmN0aW9uIHFlKHQpe3JldHVybiB0Ll9fZm9yd2FyZF9yZWZfXz1xZSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEdlKHRoaXMoKSl9LHR9ZnVuY3Rpb24gWmUodCl7cmV0dXJuIFhlKHQpP3QoKTp0fWZ1bmN0aW9uIFhlKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0Lmhhc093blByb3BlcnR5KFllKSYmdC5fX2ZvcndhcmRfcmVmX189PT1xZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgS2UgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKFFlKHQsZSkpLHRoaXMuY29kZT10fX1jb25zdCBKZT1uZXcgU2V0KFsiMTAwIiwiMjAwIiwiMjAxIiwiMzAwIiwiMzAxIiwiMzAyIl0pO2Z1bmN0aW9uIFFlKHQsZSl7bGV0IG49YCR7dD9gTkcwJHt0fTogYDoiIn0ke2V9YDtyZXR1cm4gbmdEZXZNb2RlJiZKZS5oYXModCkmJihuPWAke259LiBGaW5kIG1vcmUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2Vycm9ycy9ORzAke3R9YCksbn0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gJGUodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3Q6bnVsbD09dD8iIjpTdHJpbmcodCl9ZnVuY3Rpb24gdG4odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dC5uYW1lfHx0LnRvU3RyaW5nKCk6Im9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10JiYiZnVuY3Rpb24iPT10eXBlb2YgdC50eXBlP3QudHlwZS5uYW1lfHx0LnR5cGUudG9TdHJpbmcoKTokZSh0KX1mdW5jdGlvbiBlbih0LGUpe2NvbnN0IG49ZT9gLiBEZXBlbmRlbmN5IHBhdGg6ICR7ZS5qb2luKCIgPiAiKX0gPiAke3R9YDoiIjt0aHJvdyBuZXcgS2UoIjIwMCIsYENpcmN1bGFyIGRlcGVuZGVuY3kgaW4gREkgZGV0ZWN0ZWQgZm9yICR7dH0ke259YCl9ZnVuY3Rpb24gbm4oKXt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBtaXggbXVsdGkgcHJvdmlkZXJzIGFuZCByZWd1bGFyIHByb3ZpZGVycyIpfWZ1bmN0aW9uIG9uKHQsZSl7Y29uc3Qgbj1lP2AgaW4gJHtlfWA6IiI7dGhyb3cgbmV3IEtlKCIyMDEiLGBObyBwcm92aWRlciBmb3IgJHt0bih0KX0gZm91bmQke259YCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGFuKHQsZSl7Im51bWJlciIhPXR5cGVvZiB0JiZibihlLHR5cGVvZiB0LCJudW1iZXIiLCI9PT0iKX1mdW5jdGlvbiBybih0LGUsbil7YW4odCwiRXhwZWN0ZWQgYSBudW1iZXIiKSx1bih0LG4sIkV4cGVjdGVkIG51bWJlciB0byBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8iKSxnbih0LGUsIkV4cGVjdGVkIG51bWJlciB0byBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8iKX1mdW5jdGlvbiBzbih0LGUpeyJzdHJpbmciIT10eXBlb2YgdCYmYm4oZSxudWxsPT09dD8ibnVsbCI6dHlwZW9mIHQsInN0cmluZyIsIj09PSIpfWZ1bmN0aW9uIGxuKHQsZSxuKXt0IT1lJiZibihuLHQsZSwiPT0iKX1mdW5jdGlvbiBjbih0LGUsbil7dD09ZSYmYm4obix0LGUsIiE9Iil9ZnVuY3Rpb24gZG4odCxlLG4pe3QhPT1lJiZibihuLHQsZSwiPT09Iil9ZnVuY3Rpb24gcG4odCxlLG4pe3Q9PT1lJiZibihuLHQsZSwiIT09Iil9ZnVuY3Rpb24gbW4odCxlLG4pe3Q8ZXx8Ym4obix0LGUsIjwiKX1mdW5jdGlvbiB1bih0LGUsbil7dDw9ZXx8Ym4obix0LGUsIjw9Iil9ZnVuY3Rpb24gZm4odCxlLG4pe3Q+ZXx8Ym4obix0LGUsIj4iKX1mdW5jdGlvbiBnbih0LGUsbil7dD49ZXx8Ym4obix0LGUsIj49Iil9ZnVuY3Rpb24gaG4odCxlKXtudWxsPT10JiZibihlLHQsbnVsbCwiIT0iKX1mdW5jdGlvbiBibih0LGUsbixvKXt0aHJvdyBuZXcgRXJyb3IoYEFTU0VSVElPTiBFUlJPUjogJHt0fWArKG51bGw9PW8/IiI6YCBbRXhwZWN0ZWQ9PiAke259ICR7b30gJHtlfSA8PUFjdHVhbF1gKSl9ZnVuY3Rpb24geW4odCl7InVuZGVmaW5lZCIhPXR5cGVvZiBOb2RlJiZ0IGluc3RhbmNlb2YgTm9kZXx8Im9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10JiYiV2ViV29ya2VyUmVuZGVyTm9kZSI9PT10LmNvbnN0cnVjdG9yLm5hbWV8fGJuKGBUaGUgcHJvdmlkZWQgdmFsdWUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBhIERPTSBOb2RlIGJ1dCBnb3QgJHtHZSh0KX1gKX1mdW5jdGlvbiBfbih0LGUpe2huKHQsIkFycmF5IG11c3QgYmUgZGVmaW5lZC4iKTtjb25zdCBuPXQubGVuZ3RoOyhlPDB8fGU+PW4pJiZibihgSW5kZXggZXhwZWN0ZWQgdG8gYmUgbGVzcyB0aGFuICR7bn0gYnV0IGdvdCAke2V9YCl9ZnVuY3Rpb24gQ24odCwuLi5lKXtpZigtMSE9PWUuaW5kZXhPZih0KSlyZXR1cm4hMDtibihgRXhwZWN0ZWQgdmFsdWUgdG8gYmUgb25lIG9mICR7SlNPTi5zdHJpbmdpZnkoZSl9IGJ1dCB3YXMgJHtKU09OLnN0cmluZ2lmeSh0KX0uYCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIE1uKHQpe3JldHVybnt0b2tlbjp0LnRva2VuLHByb3ZpZGVkSW46dC5wcm92aWRlZElufHxudWxsLGZhY3Rvcnk6dC5mYWN0b3J5LHZhbHVlOnZvaWQgMH19ZnVuY3Rpb24gdm4odCl7cmV0dXJue3Byb3ZpZGVyczp0LnByb3ZpZGVyc3x8W10saW1wb3J0czp0LmltcG9ydHN8fFtdfX1mdW5jdGlvbiB4bih0KXtyZXR1cm4gT24odCx3bil8fE9uKHQsU24pfWZ1bmN0aW9uIE9uKHQsZSl7cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoZSk/dFtlXTpudWxsfWZ1bmN0aW9uIFBuKHQpe3JldHVybiB0JiYodC5oYXNPd25Qcm9wZXJ0eShrbil8fHQuaGFzT3duUHJvcGVydHkoRG4pKT90W2tuXTpudWxsfWNvbnN0IHduPWplKHsiybVwcm92IjpqZX0pLGtuPWplKHsiybVpbmoiOmplfSksU249amUoe25nSW5qZWN0YWJsZURlZjpqZX0pLERuPWplKHtuZ0luamVjdG9yRGVmOmplfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwp2YXIgRW47Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgUm47ZnVuY3Rpb24gQW4odCl7Y29uc3QgZT1SbjtyZXR1cm4gUm49dCxlfWZ1bmN0aW9uIFRuKHQsZSxuKXtjb25zdCBvPXhuKHQpO3JldHVybiBvJiYicm9vdCI9PW8ucHJvdmlkZWRJbj92b2lkIDA9PT1vLnZhbHVlP28udmFsdWU9by5mYWN0b3J5KCk6by52YWx1ZTpuJkVuLk9wdGlvbmFsP251bGw6dm9pZCAwIT09ZT9lOnZvaWQgb24oR2UodCksIkluamVjdG9yIil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBObih0KXtyZXR1cm57dG9TdHJpbmc6dH0udG9TdHJpbmcoKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovdmFyIHpuLEluLEhuOyEoZnVuY3Rpb24odCl7dFt0LkRlZmF1bHQ9MF09IkRlZmF1bHQiLHRbdC5Ib3N0PTFdPSJIb3N0Iix0W3QuU2VsZj0yXT0iU2VsZiIsdFt0LlNraXBTZWxmPTRdPSJTa2lwU2VsZiIsdFt0Lk9wdGlvbmFsPThdPSJPcHRpb25hbCJ9KShFbnx8KEVuPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5PblB1c2g9MF09Ik9uUHVzaCIsdFt0LkRlZmF1bHQ9MV09IkRlZmF1bHQifSkoem58fCh6bj17fSkpLChmdW5jdGlvbih0KXt0W3QuQ2hlY2tPbmNlPTBdPSJDaGVja09uY2UiLHRbdC5DaGVja2VkPTFdPSJDaGVja2VkIix0W3QuQ2hlY2tBbHdheXM9Ml09IkNoZWNrQWx3YXlzIix0W3QuRGV0YWNoZWQ9M109IkRldGFjaGVkIix0W3QuRXJyb3JlZD00XT0iRXJyb3JlZCIsdFt0LkRlc3Ryb3llZD01XT0iRGVzdHJveWVkIn0pKElufHwoSW49e30pKSwoZnVuY3Rpb24odCl7dFt0LkVtdWxhdGVkPTBdPSJFbXVsYXRlZCIsdFt0Lk5vbmU9Ml09Ik5vbmUiLHRbdC5TaGFkb3dEb209M109IlNoYWRvd0RvbSJ9KShIbnx8KEhuPXt9KSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBGbj0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsTG49InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdyxCbj0idW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJiJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmc2VsZixWbj0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbCYmZ2xvYmFsLGpuPUZufHxWbnx8TG58fEJuO2Z1bmN0aW9uIFVuKCl7cmV0dXJuISgidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8KCJvYmplY3QiIT10eXBlb2YgbmdEZXZNb2RlJiYoCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiB0KCl7Y29uc3QgdD0idW5kZWZpbmVkIiE9dHlwZW9mIGxvY2F0aW9uP2xvY2F0aW9uLnRvU3RyaW5nKCk6IiIsZT17bmFtZWRDb25zdHJ1Y3RvcnM6LTEhPXQuaW5kZXhPZigibmdEZXZNb2RlPW5hbWVkQ29uc3RydWN0b3JzIiksZmlyc3RDcmVhdGVQYXNzOjAsdE5vZGU6MCx0VmlldzowLHJlbmRlcmVyQ3JlYXRlVGV4dE5vZGU6MCxyZW5kZXJlclNldFRleHQ6MCxyZW5kZXJlckNyZWF0ZUVsZW1lbnQ6MCxyZW5kZXJlckFkZEV2ZW50TGlzdGVuZXI6MCxyZW5kZXJlclNldEF0dHJpYnV0ZTowLHJlbmRlcmVyUmVtb3ZlQXR0cmlidXRlOjAscmVuZGVyZXJTZXRQcm9wZXJ0eTowLHJlbmRlcmVyU2V0Q2xhc3NOYW1lOjAscmVuZGVyZXJBZGRDbGFzczowLHJlbmRlcmVyUmVtb3ZlQ2xhc3M6MCxyZW5kZXJlclNldFN0eWxlOjAscmVuZGVyZXJSZW1vdmVTdHlsZTowLHJlbmRlcmVyRGVzdHJveTowLHJlbmRlcmVyRGVzdHJveU5vZGU6MCxyZW5kZXJlck1vdmVOb2RlOjAscmVuZGVyZXJSZW1vdmVOb2RlOjAscmVuZGVyZXJBcHBlbmRDaGlsZDowLHJlbmRlcmVySW5zZXJ0QmVmb3JlOjAscmVuZGVyZXJDcmVhdGVDb21tZW50OjB9LG49LTE9PT10LmluZGV4T2YoIm5nRGV2TW9kZT1mYWxzZSIpO2puLm5nRGV2TW9kZT1uJiZlfSkoKSwidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8IW5nRGV2TW9kZSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBHbj17fSxXbj1bXTsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlVuKCkmJihPYmplY3QuZnJlZXplKEduKSxPYmplY3QuZnJlZXplKFduKSkKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovO2NvbnN0IFluPWplKHsiybVjbXAiOmplfSkscW49amUoeyLJtWRpciI6amV9KSxabj1qZSh7Ism1cGlwZSI6amV9KSxYbj1qZSh7Ism1bW9kIjpqZX0pLEtuPWplKHsiybVsb2MiOmplfSksSm49amUoeyLJtWZhYyI6amV9KSxRbj1qZSh7X19OR19FTEVNRU5UX0lEX186amV9KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCAkbj0wO2Z1bmN0aW9uIHRvKHQpe3JldHVybiBObigoKCk9PnsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlVuKCk7Y29uc3QgZT17fSxuPXt0eXBlOnQudHlwZSxwcm92aWRlcnNSZXNvbHZlcjpudWxsLGRlY2xzOnQuZGVjbHMsdmFyczp0LnZhcnMsZmFjdG9yeTpudWxsLHRlbXBsYXRlOnQudGVtcGxhdGV8fG51bGwsY29uc3RzOnQuY29uc3RzfHxudWxsLG5nQ29udGVudFNlbGVjdG9yczp0Lm5nQ29udGVudFNlbGVjdG9ycyxob3N0QmluZGluZ3M6dC5ob3N0QmluZGluZ3N8fG51bGwsaG9zdFZhcnM6dC5ob3N0VmFyc3x8MCxob3N0QXR0cnM6dC5ob3N0QXR0cnN8fG51bGwsY29udGVudFF1ZXJpZXM6dC5jb250ZW50UXVlcmllc3x8bnVsbCxkZWNsYXJlZElucHV0czplLGlucHV0czpudWxsLG91dHB1dHM6bnVsbCxleHBvcnRBczp0LmV4cG9ydEFzfHxudWxsLG9uUHVzaDp0LmNoYW5nZURldGVjdGlvbj09PXpuLk9uUHVzaCxkaXJlY3RpdmVEZWZzOm51bGwscGlwZURlZnM6bnVsbCxzZWxlY3RvcnM6dC5zZWxlY3RvcnN8fFduLHZpZXdRdWVyeTp0LnZpZXdRdWVyeXx8bnVsbCxmZWF0dXJlczp0LmZlYXR1cmVzfHxudWxsLGRhdGE6dC5kYXRhfHx7fSxlbmNhcHN1bGF0aW9uOnQuZW5jYXBzdWxhdGlvbnx8SG4uRW11bGF0ZWQsaWQ6ImMiLHN0eWxlczp0LnN0eWxlc3x8V24sXzpudWxsLHNldElucHV0Om51bGwsc2NoZW1hczp0LnNjaGVtYXN8fG51bGwsdFZpZXc6bnVsbH0sbz10LmRpcmVjdGl2ZXMsaT10LmZlYXR1cmVzLGE9dC5waXBlcztyZXR1cm4gbi5pZCs9JG4rKyxuLmlucHV0cz1zbyh0LmlucHV0cyxlKSxuLm91dHB1dHM9c28odC5vdXRwdXRzKSxpJiZpLmZvckVhY2goKHQ9PnQobikpKSxuLmRpcmVjdGl2ZURlZnM9bz8oKT0+KCJmdW5jdGlvbiI9PXR5cGVvZiBvP28oKTpvKS5tYXAobm8pOm51bGwsbi5waXBlRGVmcz1hPygpPT4oImZ1bmN0aW9uIj09dHlwZW9mIGE/YSgpOmEpLm1hcChvbyk6bnVsbCxufSkpfWZ1bmN0aW9uIGVvKHQsZSxuKXtjb25zdCBvPXQuybVjbXA7by5kaXJlY3RpdmVEZWZzPSgpPT5lLm1hcChubyksby5waXBlRGVmcz0oKT0+bi5tYXAob28pfWZ1bmN0aW9uIG5vKHQpe2NvbnN0IGU9cG8odCl8fG1vKHQpO2lmKG5nRGV2TW9kZSYmIWUpdGhyb3cgbmV3IEVycm9yKGAnJHt0Lm5hbWV9JyBpcyBuZWl0aGVyICdDb21wb25lbnRUeXBlJyBvciAnRGlyZWN0aXZlVHlwZScuYCk7cmV0dXJuIGV9ZnVuY3Rpb24gb28odCl7Y29uc3QgZT11byh0KTtpZihuZ0Rldk1vZGUmJiFlKXRocm93IG5ldyBFcnJvcihgJyR7dC5uYW1lfScgaXMgbm90IGEgJ1BpcGVUeXBlJy5gKTtyZXR1cm4gZX1jb25zdCBpbz17fTtmdW5jdGlvbiBhbyh0KXtyZXR1cm4gTm4oKCgpPT57Y29uc3QgZT17dHlwZTp0LnR5cGUsYm9vdHN0cmFwOnQuYm9vdHN0cmFwfHxXbixkZWNsYXJhdGlvbnM6dC5kZWNsYXJhdGlvbnN8fFduLGltcG9ydHM6dC5pbXBvcnRzfHxXbixleHBvcnRzOnQuZXhwb3J0c3x8V24sdHJhbnNpdGl2ZUNvbXBpbGVTY29wZXM6bnVsbCxzY2hlbWFzOnQuc2NoZW1hc3x8bnVsbCxpZDp0LmlkfHxudWxsfTtyZXR1cm4gbnVsbCE9dC5pZCYmKGlvW3QuaWRdPXQudHlwZSksZX0pKX1mdW5jdGlvbiBybyh0LGUpe3JldHVybiBObigoKCk9Pntjb25zdCBuPWZvKHQsITApO24uZGVjbGFyYXRpb25zPWUuZGVjbGFyYXRpb25zfHxXbixuLmltcG9ydHM9ZS5pbXBvcnRzfHxXbixuLmV4cG9ydHM9ZS5leHBvcnRzfHxXbn0pKX1mdW5jdGlvbiBzbyh0LGUpe2lmKG51bGw9PXQpcmV0dXJuIEduO2NvbnN0IG49e307Zm9yKGNvbnN0IG8gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG8pKXtsZXQgaT10W29dLGE9aTtBcnJheS5pc0FycmF5KGkpJiYoYT1pWzFdLGk9aVswXSksbltpXT1vLGUmJihlW2ldPWEpfXJldHVybiBufWNvbnN0IGxvPXRvO2Z1bmN0aW9uIGNvKHQpe3JldHVybnt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSxmYWN0b3J5Om51bGwscHVyZTohMSE9PXQucHVyZSxvbkRlc3Ryb3k6dC50eXBlLnByb3RvdHlwZS5uZ09uRGVzdHJveXx8bnVsbH19ZnVuY3Rpb24gcG8odCl7cmV0dXJuIHRbWW5dfHxudWxsfWZ1bmN0aW9uIG1vKHQpe3JldHVybiB0W3FuXXx8bnVsbH1mdW5jdGlvbiB1byh0KXtyZXR1cm4gdFtabl18fG51bGx9ZnVuY3Rpb24gZm8odCxlKXtjb25zdCBuPXRbWG5dfHxudWxsO2lmKCFuJiYhMD09PWUpdGhyb3cgbmV3IEVycm9yKGBUeXBlICR7R2UodCl9IGRvZXMgbm90IGhhdmUgJ8m1bW9kJyBwcm9wZXJ0eS5gKTtyZXR1cm4gbn0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGdvPTIwLGhvPVsiUm9vdCIsIkNvbXBvbmVudCIsIkVtYmVkZGVkIl0sYm89MTA7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiB5byh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmIm9iamVjdCI9PXR5cGVvZiB0WzFdfWZ1bmN0aW9uIF9vKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYhMD09PXRbMV19ZnVuY3Rpb24gQ28odCl7cmV0dXJuIDAhPSg4JnQuZmxhZ3MpfWZ1bmN0aW9uIE1vKHQpe3JldHVybiAyPT0oMiZ0LmZsYWdzKX1mdW5jdGlvbiB2byh0KXtyZXR1cm4gMT09KDEmdC5mbGFncyl9ZnVuY3Rpb24geG8odCl7cmV0dXJuIG51bGwhPT10LnRlbXBsYXRlfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gT28odCxlKXtQbyh0LGVbMV0pfWZ1bmN0aW9uIFBvKHQsZSl7d28odCksdC5oYXNPd25Qcm9wZXJ0eSgidFZpZXdfIikmJmxuKHQudFZpZXdfLGUsIlRoaXMgVE5vZGUgZG9lcyBub3QgYmVsb25nIHRvIHRoaXMgVFZpZXcuIil9ZnVuY3Rpb24gd28odCl7aG4odCwiVE5vZGUgbXVzdCBiZSBkZWZpbmVkIiksdCYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0Lmhhc093blByb3BlcnR5KCJkaXJlY3RpdmVTdHlsaW5nTGFzdCIpfHxibigiTm90IG9mIHR5cGUgVE5vZGUsIGdvdDogIit0KX1mdW5jdGlvbiBrbyh0KXtobih0LCJFeHBlY3RlZCBUSWN1IHRvIGJlIGRlZmluZWQiKSwibnVtYmVyIiE9dHlwZW9mIHQuY3VycmVudENhc2VMVmlld0luZGV4JiZibigiT2JqZWN0IGlzIG5vdCBvZiBUSWN1IHR5cGUuIil9ZnVuY3Rpb24gU28odCl7aG4odCwiY3VycmVudFROb2RlIHNob3VsZCBleGlzdCEiKSxobih0LnBhcmVudCwiY3VycmVudFROb2RlIHNob3VsZCBoYXZlIGEgcGFyZW50Iil9ZnVuY3Rpb24gRG8odCl7aG4odCwiTENvbnRhaW5lciBtdXN0IGJlIGRlZmluZWQiKSxsbihfbyh0KSwhMCwiRXhwZWN0aW5nIExDb250YWluZXIiKX1mdW5jdGlvbiBFbyh0KXt0JiZsbih5byh0KSwhMCwiRXhwZWN0aW5nIExWaWV3IG9yIHVuZGVmaW5lZCBvciBudWxsIil9ZnVuY3Rpb24gUm8odCl7aG4odCwiTFZpZXcgbXVzdCBiZSBkZWZpbmVkIiksbG4oeW8odCksITAsIkV4cGVjdGluZyBMVmlldyIpfWZ1bmN0aW9uIEFvKHQsZSl7bG4odC5maXJzdENyZWF0ZVBhc3MsITAsZXx8IlNob3VsZCBvbmx5IGJlIGNhbGxlZCBpbiBmaXJzdCBjcmVhdGUgcGFzcy4iKX1mdW5jdGlvbiBUbyh0LGUpe2xuKHQuZmlyc3RVcGRhdGVQYXNzLCEwLGV8fCJTaG91bGQgb25seSBiZSBjYWxsZWQgaW4gZmlyc3QgdXBkYXRlIHBhc3MuIil9ZnVuY3Rpb24gTm8odCxlKXt6byh0WzFdLmV4cGFuZG9TdGFydEluZGV4LHQubGVuZ3RoLGUpfWZ1bmN0aW9uIHpvKHQsZSxuKXt0PD1uJiZuPGV8fGJuKGBJbmRleCBvdXQgb2YgcmFuZ2UgKGV4cGVjdGluZyAke3R9IDw9ICR7bn0gPCAke2V9KWApfWZ1bmN0aW9uIElvKHQsZSl7aG4odCxlfHwiQ29tcG9uZW50IHZpZXdzIHNob3VsZCBhbHdheXMgaGF2ZSBhIHBhcmVudCB2aWV3IChjb21wb25lbnQncyBob3N0IHZpZXcpIil9ZnVuY3Rpb24gSG8odCxlKXtObyh0LGUpLE5vKHQsZSs4KSxhbih0W2UrMF0sImluamVjdG9ySW5kZXggc2hvdWxkIHBvaW50IHRvIGEgYmxvb20gZmlsdGVyIiksYW4odFtlKzFdLCJpbmplY3RvckluZGV4IHNob3VsZCBwb2ludCB0byBhIGJsb29tIGZpbHRlciIpLGFuKHRbZSsyXSwiaW5qZWN0b3JJbmRleCBzaG91bGQgcG9pbnQgdG8gYSBibG9vbSBmaWx0ZXIiKSxhbih0W2UrM10sImluamVjdG9ySW5kZXggc2hvdWxkIHBvaW50IHRvIGEgYmxvb20gZmlsdGVyIiksYW4odFtlKzRdLCJpbmplY3RvckluZGV4IHNob3VsZCBwb2ludCB0byBhIGJsb29tIGZpbHRlciIpLGFuKHRbZSs1XSwiaW5qZWN0b3JJbmRleCBzaG91bGQgcG9pbnQgdG8gYSBibG9vbSBmaWx0ZXIiKSxhbih0W2UrNl0sImluamVjdG9ySW5kZXggc2hvdWxkIHBvaW50IHRvIGEgYmxvb20gZmlsdGVyIiksYW4odFtlKzddLCJpbmplY3RvckluZGV4IHNob3VsZCBwb2ludCB0byBhIGJsb29tIGZpbHRlciIpLGFuKHRbZSs4XSwiaW5qZWN0b3JJbmRleCBzaG91bGQgcG9pbnQgdG8gcGFyZW50IGluamVjdG9yIil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEZvKHQsZSl7Y29uc3Qgbj10Lmhhc093blByb3BlcnR5KEpuKTtpZighbiYmITA9PT1lJiZuZ0Rldk1vZGUpdGhyb3cgbmV3IEVycm9yKGBUeXBlICR7R2UodCl9IGRvZXMgbm90IGhhdmUgJ8m1ZmFjJyBwcm9wZXJ0eS5gKTtyZXR1cm4gbj90W0puXTpudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBMb3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5wcmV2aW91c1ZhbHVlPXQsdGhpcy5jdXJyZW50VmFsdWU9ZSx0aGlzLmZpcnN0Q2hhbmdlPW59aXNGaXJzdENoYW5nZSgpe3JldHVybiB0aGlzLmZpcnN0Q2hhbmdlfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gQm8oKXtyZXR1cm4gVm99ZnVuY3Rpb24gVm8odCl7cmV0dXJuIHQudHlwZS5wcm90b3R5cGUubmdPbkNoYW5nZXMmJih0LnNldElucHV0PVVvKSxqb31mdW5jdGlvbiBqbygpe2NvbnN0IHQ9R28odGhpcyksZT1udWxsPT10P3ZvaWQgMDp0LmN1cnJlbnQ7aWYoZSl7Y29uc3Qgbj10LnByZXZpb3VzO2lmKG49PT1Hbil0LnByZXZpb3VzPWU7ZWxzZSBmb3IobGV0IHQgaW4gZSluW3RdPWVbdF07dC5jdXJyZW50PW51bGwsdGhpcy5uZ09uQ2hhbmdlcyhlKX19ZnVuY3Rpb24gVW8odCxlLG4sbyl7Y29uc3QgaT1Hbyh0KXx8KGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gdC5fX25nU2ltcGxlQ2hhbmdlc19fPWV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykodCx7cHJldmlvdXM6R24sY3VycmVudDpudWxsfSkscj1pLmN1cnJlbnR8fChpLmN1cnJlbnQ9e30pLHM9aS5wcmV2aW91cyxsPXRoaXMuZGVjbGFyZWRJbnB1dHNbbl0sYz1zW2xdO3JbbF09bmV3IExvKGMmJmMuY3VycmVudFZhbHVlLGUscz09PUduKSx0W29dPWV9ZnVuY3Rpb24gR28odCl7cmV0dXJuIHQuX19uZ1NpbXBsZUNoYW5nZXNfX3x8bnVsbH1Cby5uZ0luaGVyaXQ9ITA7bGV0IFdvPW51bGw7Y29uc3QgWW89dD0+e1dvPXR9LHFvPWZ1bmN0aW9uKHQsZSxuKXtudWxsIT1XbyYmV28odCxlLG4pfSxabz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLFhvPSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGhNTC8iOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IEtvO2Z1bmN0aW9uIEpvKCl7cmV0dXJuIHZvaWQgMCE9PUtvP0tvOiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi92YXIgUW87ZnVuY3Rpb24gJG8odCl7cmV0dXJuISF0Lmxpc3Rlbn0hKGZ1bmN0aW9uKHQpe3RbdC5JbXBvcnRhbnQ9MV09IkltcG9ydGFudCIsdFt0LkRhc2hDYXNlPTJdPSJEYXNoQ2FzZSJ9KShRb3x8KFFvPXt9KSk7Y29uc3QgdGk9e2NyZWF0ZVJlbmRlcmVyOih0LGUpPT5KbygpfTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIGVpKHQpe2Zvcig7QXJyYXkuaXNBcnJheSh0KTspdD10WzBdO3JldHVybiB0fWZ1bmN0aW9uIG5pKHQsZSl7cmV0dXJuIG5nRGV2TW9kZSYmX24oZSx0KSxuZ0Rldk1vZGUmJmduKHQsZ28sIkV4cGVjdGVkIHRvIGJlIHBhc3QgSEVBREVSX09GRlNFVCIpLGVpKGVbdF0pfWZ1bmN0aW9uIG9pKHQsZSl7bmdEZXZNb2RlJiZPbyh0LGUpLG5nRGV2TW9kZSYmX24oZSx0LmluZGV4KTtjb25zdCBuPWVpKGVbdC5pbmRleF0pO3JldHVybiBuZ0Rldk1vZGUmJiEkbyhlWzExXSkmJnluKG4pLG59ZnVuY3Rpb24gaWkodCxlKXtuZ0Rldk1vZGUmJmZuKGUsLTEsIndyb25nIGluZGV4IGZvciBUTm9kZSIpLG5nRGV2TW9kZSYmbW4oZSx0LmRhdGEubGVuZ3RoLCJ3cm9uZyBpbmRleCBmb3IgVE5vZGUiKTtjb25zdCBuPXQuZGF0YVtlXTtyZXR1cm4gbmdEZXZNb2RlJiZudWxsIT09biYmd28obiksbn1mdW5jdGlvbiBhaSh0LGUpe3JldHVybiBuZ0Rldk1vZGUmJl9uKHQsZSksdFtlXX1mdW5jdGlvbiByaSh0LGUpe25nRGV2TW9kZSYmX24oZSx0KTtjb25zdCBuPWVbdF07cmV0dXJuIHlvKG4pP246blswXX1mdW5jdGlvbiBzaSh0KXtyZXR1cm4gND09KDQmdFsyXSl9ZnVuY3Rpb24gbGkodCl7cmV0dXJuIDEyOD09KDEyOCZ0WzJdKX1mdW5jdGlvbiBjaSh0LGUpe3JldHVybiBudWxsPT1lP251bGw6KG5nRGV2TW9kZSYmX24odCxlKSx0W2VdKX1mdW5jdGlvbiBkaSh0KXt0WzE4XT0wfWZ1bmN0aW9uIHBpKHQsZSl7dFs1XSs9ZTtsZXQgbj10LG89dFszXTtmb3IoO251bGwhPT1vJiYoMT09PWUmJjE9PT1uWzVdfHwtMT09PWUmJjA9PT1uWzVdKTspb1s1XSs9ZSxuPW8sbz1vWzNdfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBtaT17bEZyYW1lOkJpKG51bGwpLGJpbmRpbmdzRW5hYmxlZDohMCxpc0luQ2hlY2tOb0NoYW5nZXNNb2RlOiExfTtmdW5jdGlvbiB1aSgpe3JldHVybiBtaS5iaW5kaW5nc0VuYWJsZWR9ZnVuY3Rpb24gZmkoKXtyZXR1cm4gbWkubEZyYW1lLmxWaWV3fWZ1bmN0aW9uIGdpKCl7cmV0dXJuIG1pLmxGcmFtZS50Vmlld31mdW5jdGlvbiBoaSh0KXtyZXR1cm4gbWkubEZyYW1lLmNvbnRleHRMVmlldz10LHRbOF19ZnVuY3Rpb24gYmkoKXtsZXQgdD15aSgpO2Zvcig7bnVsbCE9PXQmJjY0PT09dC50eXBlOyl0PXQucGFyZW50O3JldHVybiB0fWZ1bmN0aW9uIHlpKCl7cmV0dXJuIG1pLmxGcmFtZS5jdXJyZW50VE5vZGV9ZnVuY3Rpb24gX2koKXtjb25zdCB0PW1pLmxGcmFtZSxlPXQuY3VycmVudFROb2RlO3JldHVybiB0LmlzUGFyZW50P2U6ZS5wYXJlbnR9ZnVuY3Rpb24gQ2kodCxlKXtuZ0Rldk1vZGUmJnQmJlBvKHQsbWkubEZyYW1lLnRWaWV3KTtjb25zdCBuPW1pLmxGcmFtZTtuLmN1cnJlbnRUTm9kZT10LG4uaXNQYXJlbnQ9ZX1mdW5jdGlvbiBNaSgpe3JldHVybiBtaS5sRnJhbWUuaXNQYXJlbnR9ZnVuY3Rpb24gdmkoKXttaS5sRnJhbWUuaXNQYXJlbnQ9ITF9ZnVuY3Rpb24geGkoKXtyZXR1cm4gbWkuaXNJbkNoZWNrTm9DaGFuZ2VzTW9kZX1mdW5jdGlvbiBPaSh0KXttaS5pc0luQ2hlY2tOb0NoYW5nZXNNb2RlPXR9ZnVuY3Rpb24gUGkoKXtjb25zdCB0PW1pLmxGcmFtZTtsZXQgZT10LmJpbmRpbmdSb290SW5kZXg7cmV0dXJuLTE9PT1lJiYoZT10LmJpbmRpbmdSb290SW5kZXg9dC50Vmlldy5iaW5kaW5nU3RhcnRJbmRleCksZX1mdW5jdGlvbiB3aSgpe3JldHVybiBtaS5sRnJhbWUuYmluZGluZ0luZGV4fWZ1bmN0aW9uIGtpKHQpe3JldHVybiBtaS5sRnJhbWUuYmluZGluZ0luZGV4PXR9ZnVuY3Rpb24gU2koKXtyZXR1cm4gbWkubEZyYW1lLmJpbmRpbmdJbmRleCsrfWZ1bmN0aW9uIERpKHQpe2NvbnN0IGU9bWkubEZyYW1lLG49ZS5iaW5kaW5nSW5kZXg7cmV0dXJuIGUuYmluZGluZ0luZGV4PWUuYmluZGluZ0luZGV4K3Qsbn1mdW5jdGlvbiBFaSh0KXttaS5sRnJhbWUuaW5JMThuPXR9ZnVuY3Rpb24gUmkodCxlKXtjb25zdCBuPW1pLmxGcmFtZTtuLmJpbmRpbmdJbmRleD1uLmJpbmRpbmdSb290SW5kZXg9dCxBaShlKX1mdW5jdGlvbiBBaSh0KXttaS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4PXR9ZnVuY3Rpb24gVGkodCl7Y29uc3QgZT1taS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4O3JldHVybi0xPT09ZT9udWxsOnRbZV19ZnVuY3Rpb24gTmkoKXtyZXR1cm4gbWkubEZyYW1lLmN1cnJlbnRRdWVyeUluZGV4fWZ1bmN0aW9uIHppKHQpe21pLmxGcmFtZS5jdXJyZW50UXVlcnlJbmRleD10fWZ1bmN0aW9uIElpKHQpe2NvbnN0IGU9dFsxXTtyZXR1cm4gMj09PWUudHlwZT8obmdEZXZNb2RlJiZobihlLmRlY2xUTm9kZSwiRW1iZWRkZWQgVE5vZGVzIHNob3VsZCBoYXZlIGRlY2xhcmF0aW9uIHBhcmVudHMuIiksZS5kZWNsVE5vZGUpOjE9PT1lLnR5cGU/dFs2XTpudWxsfWZ1bmN0aW9uIEhpKHQsZSxuKXtpZihuZ0Rldk1vZGUmJkVvKHQpLG4mRW4uU2tpcFNlbGYpe25nRGV2TW9kZSYmUG8oZSx0WzFdKTtsZXQgbz1lLGk9dDtmb3IoO25nRGV2TW9kZSYmaG4obywiUGFyZW50IFROb2RlIHNob3VsZCBiZSBkZWZpbmVkIiksbz1vLnBhcmVudCwhKG51bGwhPT1vfHxuJkVuLkhvc3R8fChvPUlpKGkpLG51bGw9PT1vKXx8KG5nRGV2TW9kZSYmaG4oaSwiUGFyZW50IExWaWV3IHNob3VsZCBiZSBkZWZpbmVkIiksaT1pWzE1XSwxMCZvLnR5cGUpKTspO2lmKG51bGw9PT1vKXJldHVybiExO2U9byx0PWl9bmdEZXZNb2RlJiZPbyhlLHQpO2NvbnN0IG89bWkubEZyYW1lPUxpKCk7cmV0dXJuIG8uY3VycmVudFROb2RlPWUsby5sVmlldz10LCEwfWZ1bmN0aW9uIEZpKHQpe25nRGV2TW9kZSYmY24odFswXSx0WzFdLCI/Pz8/IiksbmdEZXZNb2RlJiZFbyh0KTtjb25zdCBlPUxpKCk7bmdEZXZNb2RlJiYobG4oZS5pc1BhcmVudCwhMCwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksbG4oZS5sVmlldyxudWxsLCJFeHBlY3RlZCBjbGVhbiBMRnJhbWUiKSxsbihlLnRWaWV3LG51bGwsIkV4cGVjdGVkIGNsZWFuIExGcmFtZSIpLGxuKGUuc2VsZWN0ZWRJbmRleCwtMSwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksbG4oZS5lbGVtZW50RGVwdGhDb3VudCwwLCJFeHBlY3RlZCBjbGVhbiBMRnJhbWUiKSxsbihlLmN1cnJlbnREaXJlY3RpdmVJbmRleCwtMSwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksbG4oZS5jdXJyZW50TmFtZXNwYWNlLG51bGwsIkV4cGVjdGVkIGNsZWFuIExGcmFtZSIpLGxuKGUuYmluZGluZ1Jvb3RJbmRleCwtMSwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksbG4oZS5jdXJyZW50UXVlcnlJbmRleCwwLCJFeHBlY3RlZCBjbGVhbiBMRnJhbWUiKSk7Y29uc3Qgbj10WzFdO21pLmxGcmFtZT1lLG5nRGV2TW9kZSYmbi5maXJzdENoaWxkJiZQbyhuLmZpcnN0Q2hpbGQsbiksZS5jdXJyZW50VE5vZGU9bi5maXJzdENoaWxkLGUubFZpZXc9dCxlLnRWaWV3PW4sZS5jb250ZXh0TFZpZXc9dCxlLmJpbmRpbmdJbmRleD1uLmJpbmRpbmdTdGFydEluZGV4LGUuaW5JMThuPSExfWZ1bmN0aW9uIExpKCl7Y29uc3QgdD1taS5sRnJhbWUsZT1udWxsPT09dD9udWxsOnQuY2hpbGQ7cmV0dXJuIG51bGw9PT1lP0JpKHQpOmV9ZnVuY3Rpb24gQmkodCl7Y29uc3QgZT17Y3VycmVudFROb2RlOm51bGwsaXNQYXJlbnQ6ITAsbFZpZXc6bnVsbCx0VmlldzpudWxsLHNlbGVjdGVkSW5kZXg6LTEsY29udGV4dExWaWV3Om51bGwsZWxlbWVudERlcHRoQ291bnQ6MCxjdXJyZW50TmFtZXNwYWNlOm51bGwsY3VycmVudERpcmVjdGl2ZUluZGV4Oi0xLGJpbmRpbmdSb290SW5kZXg6LTEsYmluZGluZ0luZGV4Oi0xLGN1cnJlbnRRdWVyeUluZGV4OjAscGFyZW50OnQsY2hpbGQ6bnVsbCxpbkkxOG46ITF9O3JldHVybiBudWxsIT09dCYmKHQuY2hpbGQ9ZSksZX1mdW5jdGlvbiBWaSgpe2NvbnN0IHQ9bWkubEZyYW1lO3JldHVybiBtaS5sRnJhbWU9dC5wYXJlbnQsdC5jdXJyZW50VE5vZGU9bnVsbCx0LmxWaWV3PW51bGwsdH1jb25zdCBqaT1WaTtmdW5jdGlvbiBVaSgpe2NvbnN0IHQ9VmkoKTt0LmlzUGFyZW50PSEwLHQudFZpZXc9bnVsbCx0LnNlbGVjdGVkSW5kZXg9LTEsdC5jb250ZXh0TFZpZXc9bnVsbCx0LmVsZW1lbnREZXB0aENvdW50PTAsdC5jdXJyZW50RGlyZWN0aXZlSW5kZXg9LTEsdC5jdXJyZW50TmFtZXNwYWNlPW51bGwsdC5iaW5kaW5nUm9vdEluZGV4PS0xLHQuYmluZGluZ0luZGV4PS0xLHQuY3VycmVudFF1ZXJ5SW5kZXg9MH1mdW5jdGlvbiBHaSgpe3JldHVybiBtaS5sRnJhbWUuc2VsZWN0ZWRJbmRleH1mdW5jdGlvbiBXaSh0KXtuZ0Rldk1vZGUmJi0xIT09dCYmZ24odCxnbywiSW5kZXggbXVzdCBiZSBwYXN0IEhFQURFUl9PRkZTRVQgKG9yIC0xKS4iKSxuZ0Rldk1vZGUmJm1uKHQsbWkubEZyYW1lLmxWaWV3Lmxlbmd0aCwiQ2FuJ3Qgc2V0IGluZGV4IHBhc3NlZCBlbmQgb2YgTFZpZXciKSxtaS5sRnJhbWUuc2VsZWN0ZWRJbmRleD10fWZ1bmN0aW9uIFlpKCl7Y29uc3QgdD1taS5sRnJhbWU7cmV0dXJuIGlpKHQudFZpZXcsdC5zZWxlY3RlZEluZGV4KX1mdW5jdGlvbiBxaSgpe21pLmxGcmFtZS5jdXJyZW50TmFtZXNwYWNlPVpvfWZ1bmN0aW9uIFppKCl7IShmdW5jdGlvbiB0KCl7bWkubEZyYW1lLmN1cnJlbnROYW1lc3BhY2U9bnVsbH0pKCl9ZnVuY3Rpb24gWGkodCxlKXtuZ0Rldk1vZGUmJkFvKHQpO2ZvcihsZXQgbj1lLmRpcmVjdGl2ZVN0YXJ0LG89ZS5kaXJlY3RpdmVFbmQ7bjxvO24rKyl7Y29uc3QgZT10LmRhdGFbbl07bmdEZXZNb2RlJiZobihlLCJFeHBlY3RpbmcgRGlyZWN0aXZlRGVmIik7Y29uc3Qgbz1lLnR5cGUucHJvdG90eXBlLHtuZ0FmdGVyQ29udGVudEluaXQ6aSxuZ0FmdGVyQ29udGVudENoZWNrZWQ6YSxuZ0FmdGVyVmlld0luaXQ6cixuZ0FmdGVyVmlld0NoZWNrZWQ6cyxuZ09uRGVzdHJveTpsfT1vO2kmJih0LmNvbnRlbnRIb29rc3x8KHQuY29udGVudEhvb2tzPVtdKSkucHVzaCgtbixpKSxhJiYoKHQuY29udGVudEhvb2tzfHwodC5jb250ZW50SG9va3M9W10pKS5wdXNoKG4sYSksKHQuY29udGVudENoZWNrSG9va3N8fCh0LmNvbnRlbnRDaGVja0hvb2tzPVtdKSkucHVzaChuLGEpKSxyJiYodC52aWV3SG9va3N8fCh0LnZpZXdIb29rcz1bXSkpLnB1c2goLW4scikscyYmKCh0LnZpZXdIb29rc3x8KHQudmlld0hvb2tzPVtdKSkucHVzaChuLHMpLCh0LnZpZXdDaGVja0hvb2tzfHwodC52aWV3Q2hlY2tIb29rcz1bXSkpLnB1c2gobixzKSksbnVsbCE9bCYmKHQuZGVzdHJveUhvb2tzfHwodC5kZXN0cm95SG9va3M9W10pKS5wdXNoKG4sbCl9fWZ1bmN0aW9uIEtpKHQsZSxuKXskaSh0LGUsMyxuKX1mdW5jdGlvbiBKaSh0LGUsbixvKXtuZ0Rldk1vZGUmJmNuKG4sMywiSW5pdCBwcmUtb3JkZXIgaG9va3Mgc2hvdWxkIG5vdCBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2UiKSwoMyZ0WzJdKT09PW4mJiRpKHQsZSxuLG8pfWZ1bmN0aW9uIFFpKHQsZSl7bmdEZXZNb2RlJiZjbihlLDMsIkluaXQgaG9va3MgcGhhc2Ugc2hvdWxkIG5vdCBiZSBpbmNyZW1lbnRlZCBhZnRlciBhbGwgaW5pdCBob29rcyBoYXZlIGJlZW4gcnVuLiIpO2xldCBuPXRbMl07KDMmbik9PT1lJiYobiY9MjA0NyxuKz0xLHRbMl09bil9ZnVuY3Rpb24gJGkodCxlLG4sbyl7bmdEZXZNb2RlJiZsbih4aSgpLCExLCJIb29rcyBzaG91bGQgbmV2ZXIgYmUgcnVuIHdoZW4gaW4gY2hlY2sgbm8gY2hhbmdlcyBtb2RlLiIpO2NvbnN0IGk9bnVsbCE9bz9vOi0xLGE9ZS5sZW5ndGgtMTtsZXQgcj0wO2ZvcihsZXQgcz12b2lkIDAhPT1vPzY1NTM1JnRbMThdOjA7czxhO3MrKylpZigibnVtYmVyIj09dHlwZW9mIGVbcysxXSl7aWYocj1lW3NdLG51bGwhPW8mJnI+PW8pYnJlYWt9ZWxzZSBlW3NdPDAmJih0WzE4XSs9NjU1MzYpLChyPGl8fC0xPT1pKSYmKHRhKHQsbixlLHMpLHRbMThdPSg0Mjk0OTAxNzYwJnRbMThdKStzKzIpLHMrK31mdW5jdGlvbiB0YSh0LGUsbixvKXtjb25zdCBpPW5bb108MCxhPW5bbysxXSxyPXRbaT8tbltvXTpuW29dXTtpZihpKXtpZih0WzJdPj4xMTx0WzE4XT4+MTYmJigzJnRbMl0pPT09ZSl7dFsyXSs9MjA0OCxxbyg0LHIsYSk7dHJ5e2EuY2FsbChyKX1maW5hbGx5e3FvKDUscixhKX19fWVsc2V7cW8oNCxyLGEpO3RyeXthLmNhbGwocil9ZmluYWxseXtxbyg1LHIsYSl9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgZWE9LTE7Y2xhc3MgbmF7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuZmFjdG9yeT10LHRoaXMucmVzb2x2aW5nPSExLG5nRGV2TW9kZSYmaG4odCwiRmFjdG9yeSBub3Qgc3BlY2lmaWVkIiksbmdEZXZNb2RlJiZsbih0eXBlb2YgdCwiZnVuY3Rpb24iLCJFeHBlY3RlZCBmYWN0b3J5IGZ1bmN0aW9uLiIpLHRoaXMuY2FuU2VlVmlld1Byb3ZpZGVycz1lLHRoaXMuaW5qZWN0SW1wbD1ufX1mdW5jdGlvbiBvYSh0KXtsZXQgZT0iIjtyZXR1cm4gMSZ0JiYoZSs9InxUZXh0IiksMiZ0JiYoZSs9InxFbGVtZW50IiksNCZ0JiYoZSs9InxDb250YWluZXIiKSw4JnQmJihlKz0ifEVsZW1lbnRDb250YWluZXIiKSwxNiZ0JiYoZSs9InxQcm9qZWN0aW9uIiksMzImdCYmKGUrPSJ8SWN1Q29udGFpbmVyIiksNjQmdCYmKGUrPSJ8UGxhY2Vob2xkZXIiKSxlLmxlbmd0aD4wP2Uuc3Vic3RyaW5nKDEpOmV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBpYSh0LGUsbil7aG4odCwic2hvdWxkIGJlIGNhbGxlZCB3aXRoIGEgVE5vZGUiKSwwPT0odC50eXBlJmUpJiZibihufHxgRXhwZWN0ZWQgWyR7b2EoZSl9XSBidXQgZ290ICR7b2EodC50eXBlKX0uYCl9ZnVuY3Rpb24gYWEodCxlLG4pe2NvbnN0IG89JG8odCk7bGV0IGk9MDtmb3IoO2k8bi5sZW5ndGg7KXtjb25zdCBhPW5baV07aWYoIm51bWJlciI9PXR5cGVvZiBhKXtpZigwIT09YSlicmVhaztpKys7Y29uc3Qgcj1uW2krK10scz1uW2krK10sbD1uW2krK107bmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJTZXRBdHRyaWJ1dGUrKyxvP3Quc2V0QXR0cmlidXRlKGUscyxsLHIpOmUuc2V0QXR0cmlidXRlTlMocixzLGwpfWVsc2V7Y29uc3Qgcj1hLHM9blsrK2ldO25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0QXR0cmlidXRlKyssc2Eocik/byYmdC5zZXRQcm9wZXJ0eShlLHIscyk6bz90LnNldEF0dHJpYnV0ZShlLHIscyk6ZS5zZXRBdHRyaWJ1dGUocixzKSxpKyt9fXJldHVybiBpfWZ1bmN0aW9uIHJhKHQpe3JldHVybiAzPT09dHx8ND09PXR8fDY9PT10fWZ1bmN0aW9uIHNhKHQpe3JldHVybiA2ND09PXQuY2hhckNvZGVBdCgwKX1mdW5jdGlvbiBsYSh0LGUpe2lmKG51bGw9PT1lfHwwPT09ZS5sZW5ndGgpO2Vsc2UgaWYobnVsbD09PXR8fDA9PT10Lmxlbmd0aCl0PWUuc2xpY2UoKTtlbHNle2xldCBuPS0xO2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7bysrKXtjb25zdCBpPWVbb107Im51bWJlciI9PXR5cGVvZiBpP249aTowPT09bnx8Y2EodCxuLGksbnVsbCwtMT09PW58fDI9PT1uP2VbKytvXTpudWxsKX19cmV0dXJuIHR9ZnVuY3Rpb24gY2EodCxlLG4sbyxpKXtsZXQgYT0wLHI9dC5sZW5ndGg7aWYoLTE9PT1lKXI9LTE7ZWxzZSBmb3IoO2E8dC5sZW5ndGg7KXtjb25zdCBuPXRbYSsrXTtpZigibnVtYmVyIj09dHlwZW9mIG4pe2lmKG49PT1lKXtyPS0xO2JyZWFrfWlmKG4+ZSl7cj1hLTE7YnJlYWt9fX1mb3IoO2E8dC5sZW5ndGg7KXtjb25zdCBlPXRbYV07aWYoIm51bWJlciI9PXR5cGVvZiBlKWJyZWFrO2lmKGU9PT1uKXtpZihudWxsPT09bylyZXR1cm4gdm9pZChudWxsIT09aSYmKHRbYSsxXT1pKSk7aWYobz09PXRbYSsxXSlyZXR1cm4gdm9pZCh0W2ErMl09aSl9YSsrLG51bGwhPT1vJiZhKyssbnVsbCE9PWkmJmErK30tMSE9PXImJih0LnNwbGljZShyLDAsZSksYT1yKzEpLHQuc3BsaWNlKGErKywwLG4pLG51bGwhPT1vJiZ0LnNwbGljZShhKyssMCxvKSxudWxsIT09aSYmdC5zcGxpY2UoYSsrLDAsaSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGRhKHQpe3JldHVybiB0IT09ZWF9ZnVuY3Rpb24gcGEodCl7cmV0dXJuIG5nRGV2TW9kZSYmYW4odCwiTnVtYmVyIGV4cGVjdGVkIiksbmdEZXZNb2RlJiZjbih0LC0xLCJOb3QgYSB2YWxpZCBzdGF0ZS4iKSxuZ0Rldk1vZGUmJmZuKDMyNzY3JnQsZ28sIlBhcmVudCBpbmplY3RvciBtdXN0IGJlIHBvaW50aW5nIHBhc3QgSEVBREVSX09GRlNFVC4iKSwzMjc2NyZ0fWZ1bmN0aW9uIG1hKHQsZSl7bGV0IG49KGZ1bmN0aW9uIG8odCl7cmV0dXJuIHQ+PjE2fSkodCksaT1lO2Zvcig7bj4wOylpPWlbMTVdLG4tLTtyZXR1cm4gaX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IHVhPSEwO2Z1bmN0aW9uIGZhKHQpe2NvbnN0IGU9dWE7cmV0dXJuIHVhPXQsZX1sZXQgZ2E9MDtmdW5jdGlvbiBoYSh0LGUpe2NvbnN0IG49eWEodCxlKTtpZigtMSE9PW4pcmV0dXJuIG47Y29uc3Qgbz1lWzFdO28uZmlyc3RDcmVhdGVQYXNzJiYodC5pbmplY3RvckluZGV4PWUubGVuZ3RoLGJhKG8uZGF0YSx0KSxiYShlLG51bGwpLGJhKG8uYmx1ZXByaW50LG51bGwpKTtjb25zdCBpPV9hKHQsZSksYT10LmluamVjdG9ySW5kZXg7aWYoZGEoaSkpe2NvbnN0IHQ9cGEoaSksbj1tYShpLGUpLG89blsxXS5kYXRhO2ZvcihsZXQgaT0wO2k8ODtpKyspZVthK2ldPW5bdCtpXXxvW3QraV19cmV0dXJuIGVbYSs4XT1pLGF9ZnVuY3Rpb24gYmEodCxlKXt0LnB1c2goMCwwLDAsMCwwLDAsMCwwLGUpfWZ1bmN0aW9uIHlhKHQsZSl7cmV0dXJuLTE9PT10LmluamVjdG9ySW5kZXh8fHQucGFyZW50JiZ0LnBhcmVudC5pbmplY3RvckluZGV4PT09dC5pbmplY3RvckluZGV4fHxudWxsPT09ZVt0LmluamVjdG9ySW5kZXgrOF0/LTE6KG5nRGV2TW9kZSYmX24oZSx0LmluamVjdG9ySW5kZXgpLHQuaW5qZWN0b3JJbmRleCl9ZnVuY3Rpb24gX2EodCxlKXtpZih0LnBhcmVudCYmLTEhPT10LnBhcmVudC5pbmplY3RvckluZGV4KXJldHVybiB0LnBhcmVudC5pbmplY3RvckluZGV4O2xldCBuPTAsbz1udWxsLGk9ZTtmb3IoO251bGwhPT1pOyl7Y29uc3QgdD1pWzFdLGU9dC50eXBlO2lmKDI9PT1lPyhuZ0Rldk1vZGUmJmhuKHQuZGVjbFROb2RlLCJFbWJlZGRlZCBUTm9kZXMgc2hvdWxkIGhhdmUgZGVjbGFyYXRpb24gcGFyZW50cy4iKSxvPXQuZGVjbFROb2RlKToxPT09ZT9vPWlbNl06KG5nRGV2TW9kZSYmbG4odC50eXBlLDAsIlJvb3QgdHlwZSBleHBlY3RlZCIpLG89bnVsbCksbnVsbD09PW8pcmV0dXJuIGVhO2lmKG5nRGV2TW9kZSYmbyYmT28obyxpWzE1XSksbisrLGk9aVsxNV0sLTEhPT1vLmluamVjdG9ySW5kZXgpcmV0dXJuIG8uaW5qZWN0b3JJbmRleHxuPDwxNn1yZXR1cm4gZWF9ZnVuY3Rpb24gQ2EodCxlLG4peyEoZnVuY3Rpb24gbyh0LGUsbil7bGV0IG87bmdEZXZNb2RlJiZsbihlLmZpcnN0Q3JlYXRlUGFzcywhMCwiZXhwZWN0ZWQgZmlyc3RDcmVhdGVQYXNzIHRvIGJlIHRydWUiKSwic3RyaW5nIj09dHlwZW9mIG4/bz1uLmNoYXJDb2RlQXQoMCl8fDA6bi5oYXNPd25Qcm9wZXJ0eShRbikmJihvPW5bUW5dKSxudWxsPT1vJiYobz1uW1FuXT1nYSsrKTtjb25zdCBpPTI1NSZvO2UuZGF0YVt0KyhpPj41KV18PTE8PGl9KSh0LGUsbil9ZnVuY3Rpb24gTWEodCxlLG4pe2lmKG4mRW4uT3B0aW9uYWwpcmV0dXJuIHQ7b24oZSwiTm9kZUluamVjdG9yIil9ZnVuY3Rpb24gdmEodCxlLG4sbyl7aWYobiZFbi5PcHRpb25hbCYmdm9pZCAwPT09byYmKG89bnVsbCksMD09KG4mKEVuLlNlbGZ8RW4uSG9zdCkpKXtjb25zdCBpPXRbOV0sYT1Bbih2b2lkIDApO3RyeXtyZXR1cm4gaT9pLmdldChlLG8sbiZFbi5PcHRpb25hbCk6VG4oZSxvLG4mRW4uT3B0aW9uYWwpfWZpbmFsbHl7QW4oYSl9fXJldHVybiBNYShvLGUsbil9ZnVuY3Rpb24geGEodCxlLG4sbz1Fbi5EZWZhdWx0LGkpe2lmKG51bGwhPT10KXtjb25zdCBhPShmdW5jdGlvbiBhKHQpe2lmKG5nRGV2TW9kZSYmaG4odCwidG9rZW4gbXVzdCBiZSBkZWZpbmVkIiksInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0LmNoYXJDb2RlQXQoMCl8fDA7Y29uc3QgZT10Lmhhc093blByb3BlcnR5KFFuKT90W1FuXTp2b2lkIDA7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP2U+PTA/MjU1JmU6KG5nRGV2TW9kZSYmbG4oZSwtMSwiRXhwZWN0aW5nIHRvIGdldCBTcGVjaWFsIEluamVjdG9yIElkIiksUGEpOmV9KShuKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYSl7aWYoIUhpKGUsdCxvKSlyZXR1cm4gbyZFbi5Ib3N0P01hKGksbixvKTp2YShlLG4sbyxpKTt0cnl7Y29uc3QgdD1hKG8pO2lmKG51bGwhPXR8fG8mRW4uT3B0aW9uYWwpcmV0dXJuIHQ7b24obil9ZmluYWxseXtqaSgpfX1lbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgYSl7bGV0IGk9bnVsbCxyPXlhKHQsZSkscz1lYSxsPW8mRW4uSG9zdD9lWzE2XVs2XTpudWxsO2ZvcigoLTE9PT1yfHxvJkVuLlNraXBTZWxmKSYmKHM9LTE9PT1yP19hKHQsZSk6ZVtyKzhdLHMhPT1lYSYmRWEobywhMSk/KGk9ZVsxXSxyPXBhKHMpLGU9bWEocyxlKSk6cj0tMSk7LTEhPT1yOyl7bmdEZXZNb2RlJiZIbyhlLHIpO2NvbnN0IHQ9ZVsxXTtpZihuZ0Rldk1vZGUmJk9vKHQuZGF0YVtyKzhdLGUpLERhKGEscix0LmRhdGEpKXtjb25zdCB0PXdhKHIsZSxuLGksbyxsKTtpZih0IT09T2EpcmV0dXJuIHR9cz1lW3IrOF0scyE9PWVhJiZFYShvLGVbMV0uZGF0YVtyKzhdPT09bCkmJkRhKGEscixlKT8oaT10LHI9cGEocyksZT1tYShzLGUpKTpyPS0xfX19cmV0dXJuIHZhKGUsbixvLGkpfWNvbnN0IE9hPXt9O2Z1bmN0aW9uIFBhKCl7cmV0dXJuIG5ldyBSYShiaSgpLGZpKCkpfWZ1bmN0aW9uIHdhKHQsZSxuLG8saSxhKXtjb25zdCByPWVbMV0scz1yLmRhdGFbdCs4XSxsPWthKHMscixuLG51bGw9PW8/TW8ocykmJnVhOm8hPXImJjAhPSgzJnMudHlwZSksaSZFbi5Ib3N0JiZhPT09cyk7cmV0dXJuIG51bGwhPT1sP1NhKGUscixsLHMpOk9hfWZ1bmN0aW9uIGthKHQsZSxuLG8saSl7Y29uc3QgYT10LnByb3ZpZGVySW5kZXhlcyxyPWUuZGF0YSxzPTEwNDg1NzUmYSxsPXQuZGlyZWN0aXZlU3RhcnQsYz1hPj4yMCxkPWk/cytjOnQuZGlyZWN0aXZlRW5kO2ZvcihsZXQgdD1vP3M6cytjO3Q8ZDt0Kyspe2NvbnN0IGU9clt0XTtpZih0PGwmJm49PT1lfHx0Pj1sJiZlLnR5cGU9PT1uKXJldHVybiB0fWlmKGkpe2NvbnN0IHQ9cltsXTtpZih0JiZ4byh0KSYmdC50eXBlPT09bilyZXR1cm4gbH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBTYSh0LGUsbixvKXtsZXQgaT10W25dO2NvbnN0IGE9ZS5kYXRhO2lmKChmdW5jdGlvbiByKHQpe3JldHVybiB0IGluc3RhbmNlb2YgbmF9KShpKSl7Y29uc3Qgcj1pO3IucmVzb2x2aW5nJiZlbih0bihhW25dKSk7Y29uc3Qgcz1mYShyLmNhblNlZVZpZXdQcm92aWRlcnMpO3IucmVzb2x2aW5nPSEwO2NvbnN0IGw9ci5pbmplY3RJbXBsP0FuKHIuaW5qZWN0SW1wbCk6bnVsbCxjPUhpKHQsbyxFbi5EZWZhdWx0KTtuZ0Rldk1vZGUmJmxuKGMsITAsIkJlY2F1c2UgZmxhZ3MgZG8gbm90IGNvbnRhaW4gYFNraXBTZWxmJyB3ZSBleHBlY3QgdGhpcyB0byBhbHdheXMgc3VjY2VlZC4iKTt0cnl7aT10W25dPXIuZmFjdG9yeSh2b2lkIDAsYSx0LG8pLGUuZmlyc3RDcmVhdGVQYXNzJiZuPj1vLmRpcmVjdGl2ZVN0YXJ0JiYobmdEZXZNb2RlJiYoZnVuY3Rpb24gcyh0KXt2b2lkIDAhPT10LnR5cGUmJm51bGwhPXQuc2VsZWN0b3JzJiZ2b2lkIDAhPT10LmlucHV0c3x8Ym4oIkV4cGVjdGVkIGEgRGlyZWN0aXZlRGVmL0NvbXBvbmVudERlZiBhbmQgdGhpcyBvYmplY3QgZG9lcyBub3Qgc2VlbSB0byBoYXZlIHRoZSBleHBlY3RlZCBzaGFwZS4iKX0pKGFbbl0pLCgKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIGwodCxlLG4pe25nRGV2TW9kZSYmQW8obik7Y29uc3R7bmdPbkNoYW5nZXM6byxuZ09uSW5pdDppLG5nRG9DaGVjazphfT1lLnR5cGUucHJvdG90eXBlO2lmKG8pe2NvbnN0IG89Vm8oZSk7KG4ucHJlT3JkZXJIb29rc3x8KG4ucHJlT3JkZXJIb29rcz1bXSkpLnB1c2godCxvKSwobi5wcmVPcmRlckNoZWNrSG9va3N8fChuLnByZU9yZGVyQ2hlY2tIb29rcz1bXSkpLnB1c2godCxvKX1pJiYobi5wcmVPcmRlckhvb2tzfHwobi5wcmVPcmRlckhvb2tzPVtdKSkucHVzaCgwLXQsaSksYSYmKChuLnByZU9yZGVySG9va3N8fChuLnByZU9yZGVySG9va3M9W10pKS5wdXNoKHQsYSksKG4ucHJlT3JkZXJDaGVja0hvb2tzfHwobi5wcmVPcmRlckNoZWNrSG9va3M9W10pKS5wdXNoKHQsYSkpfSkobixhW25dLGUpKX1maW5hbGx5e251bGwhPT1sJiZBbihsKSxmYShzKSxyLnJlc29sdmluZz0hMSxqaSgpfX1yZXR1cm4gaX1mdW5jdGlvbiBEYSh0LGUsbil7cmV0dXJuISEobltlKyh0Pj41KV0mMTw8dCl9ZnVuY3Rpb24gRWEodCxlKXtyZXR1cm4hKHQmRW4uU2VsZnx8dCZFbi5Ib3N0JiZlKX1jbGFzcyBSYXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3ROb2RlPXQsdGhpcy5fbFZpZXc9ZX1nZXQodCxlKXtyZXR1cm4geGEodGhpcy5fdE5vZGUsdGhpcy5fbFZpZXcsdCx2b2lkIDAsZSl9fWZ1bmN0aW9uIEFhKHQpe3JldHVybiBObigoKCk9Pntjb25zdCBlPXQucHJvdG90eXBlLmNvbnN0cnVjdG9yLG49ZVtKbl18fFRhKGUpLG89T2JqZWN0LnByb3RvdHlwZTtsZXQgaT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpLmNvbnN0cnVjdG9yO2Zvcig7aSYmaSE9PW87KXtjb25zdCB0PWlbSm5dfHxUYShpKTtpZih0JiZ0IT09bilyZXR1cm4gdDtpPU9iamVjdC5nZXRQcm90b3R5cGVPZihpKX1yZXR1cm4gdD0+bmV3IHR9KSl9ZnVuY3Rpb24gVGEodCl7cmV0dXJuIFhlKHQpPygpPT57Y29uc3QgZT1UYShaZSh0KSk7cmV0dXJuIGUmJmUoKX06Rm8odCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIE5hKHQpe3JldHVybihmdW5jdGlvbiBlKHQsbil7aWYobmdEZXZNb2RlJiZpYSh0LDE1KSxuZ0Rldk1vZGUmJmhuKHQsImV4cGVjdGluZyB0Tm9kZSIpLCJjbGFzcyI9PT1uKXJldHVybiB0LmNsYXNzZXM7aWYoInN0eWxlIj09PW4pcmV0dXJuIHQuc3R5bGVzO2NvbnN0IG89dC5hdHRycztpZihvKXtjb25zdCB0PW8ubGVuZ3RoO2xldCBlPTA7Zm9yKDtlPHQ7KXtjb25zdCBpPW9bZV07aWYocmEoaSkpYnJlYWs7aWYoMD09PWkpZSs9MjtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgaSlmb3IoZSsrO2U8dCYmInN0cmluZyI9PXR5cGVvZiBvW2VdOyllKys7ZWxzZXtpZihpPT09bilyZXR1cm4gb1tlKzFdO2UrPTJ9fX1yZXR1cm4gbnVsbH0pKGJpKCksdCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IHphPSJfX2Fubm90YXRpb25zX18iLElhPSJfX3BhcmFtZXRlcnNfXyIsSGE9Il9fcHJvcF9fbWV0YWRhdGFfXyI7ZnVuY3Rpb24gRmEodCxlLG4sbyxpKXtyZXR1cm4gTm4oKCgpPT57Y29uc3QgYT1MYShlKTtmdW5jdGlvbiByKC4uLnQpe2lmKHRoaXMgaW5zdGFuY2VvZiByKXJldHVybiBhLmNhbGwodGhpcywuLi50KSx0aGlzO2NvbnN0IGU9bmV3IHIoLi4udCk7cmV0dXJuIGZ1bmN0aW9uIG4oYSl7cmV0dXJuIGkmJmkoYSwuLi50KSwoYS5oYXNPd25Qcm9wZXJ0eSh6YSk/YVt6YV06T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsemEse3ZhbHVlOltdfSlbemFdKS5wdXNoKGUpLG8mJm8oYSksYX19cmV0dXJuIG4mJihyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4ucHJvdG90eXBlKSksci5wcm90b3R5cGUubmdNZXRhZGF0YU5hbWU9dCxyLmFubm90YXRpb25DbHM9cixyfSkpfWZ1bmN0aW9uIExhKHQpe3JldHVybiBmdW5jdGlvbiBlKC4uLm4pe2lmKHQpe2NvbnN0IGU9dCguLi5uKTtmb3IoY29uc3QgdCBpbiBlKXRoaXNbdF09ZVt0XX19fWZ1bmN0aW9uIEJhKHQsZSxuKXtyZXR1cm4gTm4oKCgpPT57Y29uc3Qgbz1MYShlKTtmdW5jdGlvbiBpKC4uLnQpe2lmKHRoaXMgaW5zdGFuY2VvZiBpKXJldHVybiBvLmFwcGx5KHRoaXMsdCksdGhpcztjb25zdCBlPW5ldyBpKC4uLnQpO3JldHVybiBuLmFubm90YXRpb249ZSxuO2Z1bmN0aW9uIG4odCxuLG8pe2NvbnN0IGk9dC5oYXNPd25Qcm9wZXJ0eShJYSk/dFtJYV06T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsSWEse3ZhbHVlOltdfSlbSWFdO2Zvcig7aS5sZW5ndGg8PW87KWkucHVzaChudWxsKTtyZXR1cm4oaVtvXT1pW29dfHxbXSkucHVzaChlKSx0fX1yZXR1cm4gbiYmKGkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpKSxpLnByb3RvdHlwZS5uZ01ldGFkYXRhTmFtZT10LGkuYW5ub3RhdGlvbkNscz1pLGl9KSl9ZnVuY3Rpb24gVmEodCxlLG4sbyl7cmV0dXJuIE5uKCgoKT0+e2NvbnN0IGk9TGEoZSk7ZnVuY3Rpb24gYSguLi50KXtpZih0aGlzIGluc3RhbmNlb2YgYSlyZXR1cm4gaS5hcHBseSh0aGlzLHQpLHRoaXM7Y29uc3QgZT1uZXcgYSguLi50KTtyZXR1cm4gZnVuY3Rpb24gbihpLGEpe2NvbnN0IHI9aS5jb25zdHJ1Y3RvcixzPXIuaGFzT3duUHJvcGVydHkoSGEpP3JbSGFdOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLEhhLHt2YWx1ZTp7fX0pW0hhXTtzW2FdPXMuaGFzT3duUHJvcGVydHkoYSkmJnNbYV18fFtdLHNbYV0udW5zaGlmdChlKSxvJiZvKGksYSwuLi50KX19cmV0dXJuIG4mJihhLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4ucHJvdG90eXBlKSksYS5wcm90b3R5cGUubmdNZXRhZGF0YU5hbWU9dCxhLmFubm90YXRpb25DbHM9YSxhfSkpfWNvbnN0IGphPShmdW5jdGlvbiBVYSgpe3JldHVybiBCYSgiQXR0cmlidXRlIiwodD0+KHthdHRyaWJ1dGVOYW1lOnQsX19OR19FTEVNRU5UX0lEX186KCk9Pk5hKHQpfSkpKX0pKCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBHYXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2Rlc2M9dCx0aGlzLm5nTWV0YWRhdGFOYW1lPSJJbmplY3Rpb25Ub2tlbiIsdGhpcy7JtXByb3Y9dm9pZCAwLCJudW1iZXIiPT10eXBlb2YgZT8oKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZtbihlLDAsIk9ubHkgbmVnYXRpdmUgbnVtYmVycyBhcmUgc3VwcG9ydGVkIGhlcmUiKSx0aGlzLl9fTkdfRUxFTUVOVF9JRF9fPWUpOnZvaWQgMCE9PWUmJih0aGlzLsm1cHJvdj1Nbih7dG9rZW46dGhpcyxwcm92aWRlZEluOmUucHJvdmlkZWRJbnx8InJvb3QiLGZhY3Rvcnk6ZS5mYWN0b3J5fSkpfXRvU3RyaW5nKCl7cmV0dXJuYEluamVjdGlvblRva2VuICR7dGhpcy5fZGVzY31gfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbmV3IEdhKCJBbmFseXplRm9yRW50cnlDb21wb25lbnRzIik7Y2xhc3MgV2F7fWNvbnN0IFlhPVZhKCJDb250ZW50Q2hpbGRyZW4iLCgodCxlPXt9KT0+T2JqZWN0LmFzc2lnbih7c2VsZWN0b3I6dCxmaXJzdDohMSxpc1ZpZXdRdWVyeTohMSxkZXNjZW5kYW50czohMSxlbWl0RGlzdGluY3RDaGFuZ2VzT25seTohMH0sZSkpLFdhKSxxYT1WYSgiQ29udGVudENoaWxkIiwoKHQsZT17fSk9Pk9iamVjdC5hc3NpZ24oe3NlbGVjdG9yOnQsZmlyc3Q6ITAsaXNWaWV3UXVlcnk6ITEsZGVzY2VuZGFudHM6ITB9LGUpKSxXYSk7VmEoIlZpZXdDaGlsZHJlbiIsKCh0LGU9e30pPT5PYmplY3QuYXNzaWduKHtzZWxlY3Rvcjp0LGZpcnN0OiExLGlzVmlld1F1ZXJ5OiEwLGRlc2NlbmRhbnRzOiEwLGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiEwfSxlKSksV2EpO2NvbnN0IFphPVZhKCJWaWV3Q2hpbGQiLCgodCxlKT0+T2JqZWN0LmFzc2lnbih7c2VsZWN0b3I6dCxmaXJzdDohMCxpc1ZpZXdRdWVyeTohMCxkZXNjZW5kYW50czohMH0sZSkpLFdhKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCnZhciBYYSxLYTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIEphKHQpe2NvbnN0IGU9am4ubmc7aWYoZSYmZS7JtWNvbXBpbGVyRmFjYWRlKXJldHVybiBlLsm1Y29tcGlsZXJGYWNhZGU7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSl7Y29uc29sZS5lcnJvcihgSklUIGNvbXBpbGF0aW9uIGZhaWxlZCBmb3IgJHt0LmtpbmR9YCx0LnR5cGUpO2xldCBlPWBUaGUgJHt0LmtpbmR9ICcke3QudHlwZS5uYW1lfScgbmVlZHMgdG8gYmUgY29tcGlsZWQgdXNpbmcgdGhlIEpJVCBjb21waWxlciwgYnV0ICdAYW5ndWxhci9jb21waWxlcicgaXMgbm90IGF2YWlsYWJsZS5cblxuYDt0aHJvdyAxPT09dC51c2FnZT8oZSs9YFRoZSAke3Qua2luZH0gaXMgcGFydCBvZiBhIGxpYnJhcnkgdGhhdCBoYXMgYmVlbiBwYXJ0aWFsbHkgY29tcGlsZWQuXG5gLGUrPSJIb3dldmVyLCB0aGUgQW5ndWxhciBMaW5rZXIgaGFzIG5vdCBwcm9jZXNzZWQgdGhlIGxpYnJhcnkgc3VjaCB0aGF0IEpJVCBjb21waWxhdGlvbiBpcyB1c2VkIGFzIGZhbGxiYWNrLlxuIixlKz0iXG4iLGUrPSJJZGVhbGx5LCB0aGUgbGlicmFyeSBpcyBwcm9jZXNzZWQgdXNpbmcgdGhlIEFuZ3VsYXIgTGlua2VyIHRvIGJlY29tZSBmdWxseSBBT1QgY29tcGlsZWQuXG4iKTplKz0iSklUIGNvbXBpbGF0aW9uIGlzIGRpc2NvdXJhZ2VkIGZvciBwcm9kdWN0aW9uIHVzZS1jYXNlcyEgQ29uc2lkZXIgdXNpbmcgQU9UIG1vZGUgaW5zdGVhZC5cbiIsZSs9IkFsdGVybmF0aXZlbHksIHRoZSBKSVQgY29tcGlsZXIgc2hvdWxkIGJlIGxvYWRlZCBieSBib290c3RyYXBwaW5nIHVzaW5nICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyLWR5bmFtaWMnIG9yICdAYW5ndWxhci9wbGF0Zm9ybS1zZXJ2ZXInLFxuIixlKz0ib3IgbWFudWFsbHkgcHJvdmlkZSB0aGUgY29tcGlsZXIgd2l0aCAnaW1wb3J0IFwiQGFuZ3VsYXIvY29tcGlsZXJcIjsnIGJlZm9yZSBib290c3RyYXBwaW5nLiIsbmV3IEVycm9yKGUpfXRocm93IG5ldyBFcnJvcigiSklUIGNvbXBpbGVyIHVuYXZhaWxhYmxlIil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLyEoZnVuY3Rpb24odCl7dFt0LkRpcmVjdGl2ZT0wXT0iRGlyZWN0aXZlIix0W3QuQ29tcG9uZW50PTFdPSJDb21wb25lbnQiLHRbdC5JbmplY3RhYmxlPTJdPSJJbmplY3RhYmxlIix0W3QuUGlwZT0zXT0iUGlwZSIsdFt0Lk5nTW9kdWxlPTRdPSJOZ01vZHVsZSJ9KShYYXx8KFhhPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5FbXVsYXRlZD0wXT0iRW11bGF0ZWQiLHRbdC5Ob25lPTJdPSJOb25lIix0W3QuU2hhZG93RG9tPTNdPSJTaGFkb3dEb20ifSkoS2F8fChLYT17fSkpO2NvbnN0IFFhPUZ1bmN0aW9uO2Z1bmN0aW9uICRhKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIHRyKHQsZSl7dm9pZCAwPT09ZSYmKGU9dCk7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2xldCBvPXRbbl07QXJyYXkuaXNBcnJheShvKT8oZT09PXQmJihlPXQuc2xpY2UoMCxuKSksdHIobyxlKSk6ZSE9PXQmJmUucHVzaChvKX1yZXR1cm4gZX1mdW5jdGlvbiBlcih0LGUpe3QuZm9yRWFjaCgodD0+QXJyYXkuaXNBcnJheSh0KT9lcih0LGUpOmUodCkpKX1mdW5jdGlvbiBucih0LGUsbil7ZT49dC5sZW5ndGg/dC5wdXNoKG4pOnQuc3BsaWNlKGUsMCxuKX1mdW5jdGlvbiBvcih0LGUpe3JldHVybiBlPj10Lmxlbmd0aC0xP3QucG9wKCk6dC5zcGxpY2UoZSwxKVswXX1mdW5jdGlvbiBpcih0LGUpe2NvbnN0IG49W107Zm9yKGxldCBvPTA7bzx0O28rKyluLnB1c2goZSk7cmV0dXJuIG59ZnVuY3Rpb24gYXIodCxlLG4pe2xldCBvPXNyKHQsZSk7cmV0dXJuIG8+PTA/dFsxfG9dPW46KG89fm8sKGZ1bmN0aW9uIGkodCxlLG4sbyl7bmdEZXZNb2RlJiZ1bihlLHQubGVuZ3RoLCJDYW4ndCBpbnNlcnQgcGFzdCBhcnJheSBlbmQuIik7bGV0IGk9dC5sZW5ndGg7aWYoaT09ZSl0LnB1c2gobixvKTtlbHNlIGlmKDE9PT1pKXQucHVzaChvLHRbMF0pLHRbMF09bjtlbHNle2ZvcihpLS0sdC5wdXNoKHRbaS0xXSx0W2ldKTtpPmU7KXRbaV09dFtpLTJdLGktLTt0W2VdPW4sdFtlKzFdPW99fSkodCxvLGUsbikpLG99ZnVuY3Rpb24gcnIodCxlKXtjb25zdCBuPXNyKHQsZSk7aWYobj49MClyZXR1cm4gdFsxfG5dfWZ1bmN0aW9uIHNyKHQsZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCxlLG8pe25nRGV2TW9kZSYmbG4oQXJyYXkuaXNBcnJheSh0KSwhMCwiRXhwZWN0aW5nIGFuIGFycmF5Iik7bGV0IGk9MCxhPXQubGVuZ3RoPj5vO2Zvcig7YSE9PWk7KXtjb25zdCBuPWkrKGEtaT4+MSkscj10W248PG9dO2lmKGU9PT1yKXJldHVybiBuPDxvO3I+ZT9hPW46aT1uKzF9cmV0dXJufihhPDxvKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0LGUsMSl9Y29uc3QgbHI9L15mdW5jdGlvblxzK1xTK1woXClccyp7W1xzXFNdK1wuYXBwbHlcKHRoaXMsXHMqKGFyZ3VtZW50c3woPzpbXigpXStcKFxbXF0sKT9bXigpXStcKGFyZ3VtZW50c1wpKVwpLyxjcj0vXmNsYXNzXHMrW0EtWmEtelxkJF9dKlxzKmV4dGVuZHNccytbXntdK3svLGRyPS9eY2xhc3NccytbQS1aYS16XGQkX10qXHMqZXh0ZW5kc1xzK1tee10re1tcc1xTXSpjb25zdHJ1Y3RvclxzKlwoLyxwcj0vXmNsYXNzXHMrW0EtWmEtelxkJF9dKlxzKmV4dGVuZHNccytbXntdK3tbXHNcU10qY29uc3RydWN0b3JccypcKFwpXHMqe1xzKnN1cGVyXChcLlwuXC5hcmd1bWVudHNcKS87Y2xhc3MgbXJ7Y29uc3RydWN0b3IodCl7dGhpcy5fcmVmbGVjdD10fHxqbi5SZWZsZWN0fWlzUmVmbGVjdGlvbkVuYWJsZWQoKXtyZXR1cm4hMH1mYWN0b3J5KHQpe3JldHVybiguLi5lKT0+bmV3IHQoLi4uZSl9X3ppcFR5cGVzQW5kQW5ub3RhdGlvbnModCxlKXtsZXQgbjtuPWlyKHZvaWQgMD09PXQ/ZS5sZW5ndGg6dC5sZW5ndGgpO2ZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKW5bb109dm9pZCAwPT09dD9bXTp0W29dJiZ0W29dIT1PYmplY3Q/W3Rbb11dOltdLGUmJm51bGwhPWVbb10mJihuW29dPW5bb10uY29uY2F0KGVbb10pKTtyZXR1cm4gbn1fb3duUGFyYW1ldGVycyh0LGUpe2lmKChmdW5jdGlvbiBuKHQpe3JldHVybiBsci50ZXN0KHQpfHxwci50ZXN0KHQpfHxjci50ZXN0KHQpJiYhZHIudGVzdCh0KX0pKHQudG9TdHJpbmcoKSkpcmV0dXJuIG51bGw7aWYodC5wYXJhbWV0ZXJzJiZ0LnBhcmFtZXRlcnMhPT1lLnBhcmFtZXRlcnMpcmV0dXJuIHQucGFyYW1ldGVycztjb25zdCBvPXQuY3RvclBhcmFtZXRlcnM7aWYobyYmbyE9PWUuY3RvclBhcmFtZXRlcnMpe2NvbnN0IHQ9ImZ1bmN0aW9uIj09dHlwZW9mIG8/bygpOm8sZT10Lm1hcCgodD0+dCYmdC50eXBlKSksbj10Lm1hcCgodD0+dCYmdXIodC5kZWNvcmF0b3JzKSkpO3JldHVybiB0aGlzLl96aXBUeXBlc0FuZEFubm90YXRpb25zKGUsbil9Y29uc3QgaT10Lmhhc093blByb3BlcnR5KElhKSYmdFtJYV0sYT10aGlzLl9yZWZsZWN0JiZ0aGlzLl9yZWZsZWN0LmdldE93bk1ldGFkYXRhJiZ0aGlzLl9yZWZsZWN0LmdldE93bk1ldGFkYXRhKCJkZXNpZ246cGFyYW10eXBlcyIsdCk7cmV0dXJuIGF8fGk/dGhpcy5femlwVHlwZXNBbmRBbm5vdGF0aW9ucyhhLGkpOmlyKHQubGVuZ3RoKX1wYXJhbWV0ZXJzKHQpe2lmKCEkYSh0KSlyZXR1cm5bXTtjb25zdCBlPWZyKHQpO2xldCBuPXRoaXMuX293blBhcmFtZXRlcnModCxlKTtyZXR1cm4gbnx8ZT09PU9iamVjdHx8KG49dGhpcy5wYXJhbWV0ZXJzKGUpKSxufHxbXX1fb3duQW5ub3RhdGlvbnModCxlKXtpZih0LmFubm90YXRpb25zJiZ0LmFubm90YXRpb25zIT09ZS5hbm5vdGF0aW9ucyl7bGV0IGU9dC5hbm5vdGF0aW9ucztyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmZS5hbm5vdGF0aW9ucyYmKGU9ZS5hbm5vdGF0aW9ucyksZX1yZXR1cm4gdC5kZWNvcmF0b3JzJiZ0LmRlY29yYXRvcnMhPT1lLmRlY29yYXRvcnM/dXIodC5kZWNvcmF0b3JzKTp0Lmhhc093blByb3BlcnR5KHphKT90W3phXTpudWxsfWFubm90YXRpb25zKHQpe2lmKCEkYSh0KSlyZXR1cm5bXTtjb25zdCBlPWZyKHQpLG49dGhpcy5fb3duQW5ub3RhdGlvbnModCxlKXx8W107cmV0dXJuKGUhPT1PYmplY3Q/dGhpcy5hbm5vdGF0aW9ucyhlKTpbXSkuY29uY2F0KG4pfV9vd25Qcm9wTWV0YWRhdGEodCxlKXtpZih0LnByb3BNZXRhZGF0YSYmdC5wcm9wTWV0YWRhdGEhPT1lLnByb3BNZXRhZGF0YSl7bGV0IGU9dC5wcm9wTWV0YWRhdGE7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUucHJvcE1ldGFkYXRhJiYoZT1lLnByb3BNZXRhZGF0YSksZX1pZih0LnByb3BEZWNvcmF0b3JzJiZ0LnByb3BEZWNvcmF0b3JzIT09ZS5wcm9wRGVjb3JhdG9ycyl7Y29uc3QgZT10LnByb3BEZWNvcmF0b3JzLG49e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goKHQ9PntuW3RdPXVyKGVbdF0pfSkpLG59cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoSGEpP3RbSGFdOm51bGx9cHJvcE1ldGFkYXRhKHQpe2lmKCEkYSh0KSlyZXR1cm57fTtjb25zdCBlPWZyKHQpLG49e307aWYoZSE9PU9iamVjdCl7Y29uc3QgdD10aGlzLnByb3BNZXRhZGF0YShlKTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChlPT57bltlXT10W2VdfSkpfWNvbnN0IG89dGhpcy5fb3duUHJvcE1ldGFkYXRhKHQsZSk7cmV0dXJuIG8mJk9iamVjdC5rZXlzKG8pLmZvckVhY2goKHQ9Pntjb25zdCBlPVtdO24uaGFzT3duUHJvcGVydHkodCkmJmUucHVzaCguLi5uW3RdKSxlLnB1c2goLi4ub1t0XSksblt0XT1lfSkpLG59b3duUHJvcE1ldGFkYXRhKHQpe3JldHVybiAkYSh0KSYmdGhpcy5fb3duUHJvcE1ldGFkYXRhKHQsZnIodCkpfHx7fX1oYXNMaWZlY3ljbGVIb29rKHQsZSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBRYSYmZSBpbiB0LnByb3RvdHlwZX1ndWFyZHModCl7cmV0dXJue319Z2V0dGVyKHQpe3JldHVybiBuZXcgRnVuY3Rpb24oIm8iLCJyZXR1cm4gby4iK3QrIjsiKX1zZXR0ZXIodCl7cmV0dXJuIG5ldyBGdW5jdGlvbigibyIsInYiLCJyZXR1cm4gby4iK3QrIiA9IHY7Iil9bWV0aG9kKHQpe3JldHVybiBuZXcgRnVuY3Rpb24oIm8iLCJhcmdzIixgaWYgKCFvLiR7dH0pIHRocm93IG5ldyBFcnJvcignIiR7dH0iIGlzIHVuZGVmaW5lZCcpO1xuICAgICAgICByZXR1cm4gby4ke3R9LmFwcGx5KG8sIGFyZ3MpO2ApfWltcG9ydFVyaSh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJnQuZmlsZVBhdGg/dC5maWxlUGF0aDpgLi8ke0dlKHQpfWB9cmVzb3VyY2VVcmkodCl7cmV0dXJuYC4vJHtHZSh0KX1gfXJlc29sdmVJZGVudGlmaWVyKHQsZSxuLG8pe3JldHVybiBvfXJlc29sdmVFbnVtKHQsZSl7cmV0dXJuIHRbZV19fWZ1bmN0aW9uIHVyKHQpe3JldHVybiB0P3QubWFwKCh0PT5uZXcoMCx0LnR5cGUuYW5ub3RhdGlvbkNscykoLi4udC5hcmdzP3QuYXJnczpbXSkpKTpbXX1mdW5jdGlvbiBmcih0KXtjb25zdCBlPXQucHJvdG90eXBlP09iamVjdC5nZXRQcm90b3R5cGVPZih0LnByb3RvdHlwZSk6bnVsbDtyZXR1cm4oZT9lLmNvbnN0cnVjdG9yOm51bGwpfHxPYmplY3R9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IGdyPXt9LGhyPS9cbi9nbSxicj0iX19zb3VyY2UiLHlyPWplKHtwcm92aWRlOlN0cmluZyx1c2VWYWx1ZTpqZX0pO2xldCBfcjtmdW5jdGlvbiBDcih0KXtjb25zdCBlPV9yO3JldHVybiBfcj10LGV9ZnVuY3Rpb24gTXIodCxlPUVuLkRlZmF1bHQpe2lmKHZvaWQgMD09PV9yKXRocm93IG5ldyBFcnJvcigiaW5qZWN0KCkgbXVzdCBiZSBjYWxsZWQgZnJvbSBhbiBpbmplY3Rpb24gY29udGV4dCIpO3JldHVybiBudWxsPT09X3I/VG4odCx2b2lkIDAsZSk6X3IuZ2V0KHQsZSZFbi5PcHRpb25hbD9udWxsOnZvaWQgMCxlKX1mdW5jdGlvbiB2cih0LGU9RW4uRGVmYXVsdCl7cmV0dXJuKChmdW5jdGlvbiBuKCl7cmV0dXJuIFJufSkoKXx8TXIpKFplKHQpLGUpfWZ1bmN0aW9uIHhyKHQpe2NvbnN0IGU9bmdEZXZNb2RlP2BUaGlzIGNvbnN0cnVjdG9yIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggQW5ndWxhciBEZXBlbmRlbmN5IEluamVjdGlvbiBiZWNhdXNlIGl0cyBkZXBlbmRlbmN5IGF0IGluZGV4ICR7dH0gb2YgdGhlIHBhcmFtZXRlciBsaXN0IGlzIGludmFsaWQuXG5UaGlzIGNhbiBoYXBwZW4gaWYgdGhlIGRlcGVuZGVuY3kgdHlwZSBpcyBhIHByaW1pdGl2ZSBsaWtlIGEgc3RyaW5nIG9yIGlmIGFuIGFuY2VzdG9yIG9mIHRoaXMgY2xhc3MgaXMgbWlzc2luZyBhbiBBbmd1bGFyIGRlY29yYXRvci5cblxuUGxlYXNlIGNoZWNrIHRoYXQgMSkgdGhlIHR5cGUgZm9yIHRoZSBwYXJhbWV0ZXIgYXQgaW5kZXggJHt0fSBpcyBjb3JyZWN0IGFuZCAyKSB0aGUgY29ycmVjdCBBbmd1bGFyIGRlY29yYXRvcnMgYXJlIGRlZmluZWQgZm9yIHRoaXMgY2xhc3MgYW5kIGl0cyBhbmNlc3RvcnMuYDoiaW52YWxpZCI7dGhyb3cgbmV3IEVycm9yKGUpfWNvbnN0IE9yPXZyO2Z1bmN0aW9uIFByKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IG89WmUodFtuXSk7aWYoQXJyYXkuaXNBcnJheShvKSl7aWYoMD09PW8ubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiQXJndW1lbnRzIGFycmF5IG11c3QgaGF2ZSBhcmd1bWVudHMuIik7bGV0IHQsbj1Fbi5EZWZhdWx0O2ZvcihsZXQgZT0wO2U8by5sZW5ndGg7ZSsrKXtjb25zdCBpPW9bZV0sYT1pLl9fTkdfRElfRkxBR19fOyJudW1iZXIiPT10eXBlb2YgYT8tMT09PWE/dD1pLnRva2VuOm58PWE6dD1pfWUucHVzaCh2cih0LG4pKX1lbHNlIGUucHVzaCh2cihvKSl9cmV0dXJuIGV9ZnVuY3Rpb24gd3IodCxlKXtyZXR1cm4gdC5fX05HX0RJX0ZMQUdfXz1lLHQucHJvdG90eXBlLl9fTkdfRElfRkxBR19fPWUsdH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGtyPXdyKEJhKCJJbmplY3QiLCh0PT4oe3Rva2VuOnR9KSkpLC0xKSxTcj13cihCYSgiT3B0aW9uYWwiKSw4KSxEcj13cihCYSgiU2VsZiIpLDIpLEVyPXdyKEJhKCJTa2lwU2VsZiIpLDQpLFJyPXdyKEJhKCJIb3N0IiksMSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgQXI9bnVsbDtmdW5jdGlvbiBUcigpe3JldHVybiBBcj1Bcnx8bmV3IG1yfWZ1bmN0aW9uIE5yKHQpe3JldHVybiB6cihUcigpLnBhcmFtZXRlcnModCkpfWZ1bmN0aW9uIHpyKHQpe3JldHVybiB0Lm1hcCgodD0+KGZ1bmN0aW9uIGUodCl7Y29uc3QgZT17dG9rZW46bnVsbCxhdHRyaWJ1dGU6bnVsbCxob3N0OiExLG9wdGlvbmFsOiExLHNlbGY6ITEsc2tpcFNlbGY6ITF9O2lmKEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjApZm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IG89dFtuXTtpZih2b2lkIDA9PT1vKWNvbnRpbnVlO2NvbnN0IGk9T2JqZWN0LmdldFByb3RvdHlwZU9mKG8pO2lmKG8gaW5zdGFuY2VvZiBTcnx8Ik9wdGlvbmFsIj09PWkubmdNZXRhZGF0YU5hbWUpZS5vcHRpb25hbD0hMDtlbHNlIGlmKG8gaW5zdGFuY2VvZiBFcnx8IlNraXBTZWxmIj09PWkubmdNZXRhZGF0YU5hbWUpZS5za2lwU2VsZj0hMDtlbHNlIGlmKG8gaW5zdGFuY2VvZiBEcnx8IlNlbGYiPT09aS5uZ01ldGFkYXRhTmFtZSllLnNlbGY9ITA7ZWxzZSBpZihvIGluc3RhbmNlb2YgUnJ8fCJIb3N0Ij09PWkubmdNZXRhZGF0YU5hbWUpZS5ob3N0PSEwO2Vsc2UgaWYobyBpbnN0YW5jZW9mIGtyKWUudG9rZW49by50b2tlbjtlbHNlIGlmKG8gaW5zdGFuY2VvZiBqYSl7aWYodm9pZCAwPT09by5hdHRyaWJ1dGVOYW1lKXRocm93IG5ldyBFcnJvcigiQXR0cmlidXRlIG5hbWUgbXVzdCBiZSBkZWZpbmVkLiIpO2UuYXR0cmlidXRlPW8uYXR0cmlidXRlTmFtZX1lbHNlIGUudG9rZW49b31lbHNlIGUudG9rZW49dm9pZCAwPT09dHx8QXJyYXkuaXNBcnJheSh0KSYmMD09PXQubGVuZ3RoP251bGw6dDtyZXR1cm4gZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KSkpfWxldCBJcj1uZXcgTWFwO2NvbnN0IEhyPW5ldyBTZXQ7ZnVuY3Rpb24gRnIodCl7cmV0dXJuISEodC50ZW1wbGF0ZVVybCYmIXQuaGFzT3duUHJvcGVydHkoInRlbXBsYXRlIil8fHQuc3R5bGVVcmxzJiZ0LnN0eWxlVXJscy5sZW5ndGgpfWZ1bmN0aW9uIExyKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90OnQudGV4dCgpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IEJyLFZyO2Z1bmN0aW9uIGpyKCl7aWYodm9pZCAwPT09QnImJihCcj1udWxsLGpuLnRydXN0ZWRUeXBlcykpdHJ5e0JyPWpuLnRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koImFuZ3VsYXIiLHtjcmVhdGVIVE1MOnQ9PnQsY3JlYXRlU2NyaXB0OnQ9PnQsY3JlYXRlU2NyaXB0VVJMOnQ9PnR9KX1jYXRjaCh0KXt9cmV0dXJuIEJyfWZ1bmN0aW9uIFVyKHQpe3ZhciBlO3JldHVybihudWxsPT09KGU9anIoKSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY3JlYXRlSFRNTCh0KSl8fHR9ZnVuY3Rpb24gR3IoKXtpZih2b2lkIDA9PT1WciYmKFZyPW51bGwsam4udHJ1c3RlZFR5cGVzKSl0cnl7VnI9am4udHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciN1bnNhZmUtYnlwYXNzIix7Y3JlYXRlSFRNTDp0PT50LGNyZWF0ZVNjcmlwdDp0PT50LGNyZWF0ZVNjcmlwdFVSTDp0PT50fSl9Y2F0Y2godCl7fXJldHVybiBWcn1mdW5jdGlvbiBXcih0KXt2YXIgZTtyZXR1cm4obnVsbD09PShlPUdyKCkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNyZWF0ZUhUTUwodCkpfHx0fWZ1bmN0aW9uIFlyKHQpe3ZhciBlO3JldHVybihudWxsPT09KGU9R3IoKSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY3JlYXRlU2NyaXB0KHQpKXx8dH1mdW5jdGlvbiBxcih0KXt2YXIgZTtyZXR1cm4obnVsbD09PShlPUdyKCkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNyZWF0ZVNjcmlwdFVSTCh0KSl8fHR9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIFpye2NvbnN0cnVjdG9yKHQpe3RoaXMuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eT10fXRvU3RyaW5nKCl7cmV0dXJuYFNhZmVWYWx1ZSBtdXN0IHVzZSBbcHJvcGVydHldPWJpbmRpbmc6ICR7dGhpcy5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5fSAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpYH19Y2xhc3MgWHIgZXh0ZW5kcyBacntnZXRUeXBlTmFtZSgpe3JldHVybiJIVE1MIn19Y2xhc3MgS3IgZXh0ZW5kcyBacntnZXRUeXBlTmFtZSgpe3JldHVybiJTdHlsZSJ9fWNsYXNzIEpyIGV4dGVuZHMgWnJ7Z2V0VHlwZU5hbWUoKXtyZXR1cm4iU2NyaXB0In19Y2xhc3MgUXIgZXh0ZW5kcyBacntnZXRUeXBlTmFtZSgpe3JldHVybiJVUkwifX1jbGFzcyAkciBleHRlbmRzIFpye2dldFR5cGVOYW1lKCl7cmV0dXJuIlJlc291cmNlVVJMIn19ZnVuY3Rpb24gdHModCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBacj90LmNoYW5naW5nVGhpc0JyZWFrc0FwcGxpY2F0aW9uU2VjdXJpdHk6dH1mdW5jdGlvbiBlcyh0LGUpe2NvbnN0IG49bnModCk7aWYobnVsbCE9biYmbiE9PWUpe2lmKCJSZXNvdXJjZVVSTCI9PT1uJiYiVVJMIj09PWUpcmV0dXJuITA7dGhyb3cgbmV3IEVycm9yKGBSZXF1aXJlZCBhIHNhZmUgJHtlfSwgZ290IGEgJHtufSAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpYCl9cmV0dXJuIG49PT1lfWZ1bmN0aW9uIG5zKHQpe3JldHVybiB0IGluc3RhbmNlb2YgWnImJnQuZ2V0VHlwZU5hbWUoKXx8bnVsbH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIG9zKHQpe2NvbnN0IGU9bmV3IGFzKHQpO3JldHVybihmdW5jdGlvbiBuKCl7dHJ5e3JldHVybiEhKG5ldyB3aW5kb3cuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoVXIoIiIpLCJ0ZXh0L2h0bWwiKX1jYXRjaCh0KXtyZXR1cm4hMX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoKT9uZXcgaXMoZSk6ZX1jbGFzcyBpc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmluZXJ0RG9jdW1lbnRIZWxwZXI9dH1nZXRJbmVydEJvZHlFbGVtZW50KHQpe3Q9Ijxib2R5PjxyZW1vdmU+PC9yZW1vdmU+Iit0O3RyeXtjb25zdCBlPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKFVyKHQpLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiBudWxsPT09ZT90aGlzLmluZXJ0RG9jdW1lbnRIZWxwZXIuZ2V0SW5lcnRCb2R5RWxlbWVudCh0KTooZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpLGUpfWNhdGNoKHQpe3JldHVybiBudWxsfX19Y2xhc3MgYXN7Y29uc3RydWN0b3IodCl7aWYodGhpcy5kZWZhdWx0RG9jPXQsdGhpcy5pbmVydERvY3VtZW50PXRoaXMuZGVmYXVsdERvYy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoInNhbml0aXphdGlvbi1pbmVydCIpLG51bGw9PXRoaXMuaW5lcnREb2N1bWVudC5ib2R5KXtjb25zdCB0PXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJodG1sIik7dGhpcy5pbmVydERvY3VtZW50LmFwcGVuZENoaWxkKHQpO2NvbnN0IGU9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvZHkiKTt0LmFwcGVuZENoaWxkKGUpfX1nZXRJbmVydEJvZHlFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7aWYoImNvbnRlbnQiaW4gZSlyZXR1cm4gZS5pbm5lckhUTUw9VXIodCksZTtjb25zdCBuPXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5Iik7cmV0dXJuIG4uaW5uZXJIVE1MPVVyKHQpLHRoaXMuZGVmYXVsdERvYy5kb2N1bWVudE1vZGUmJnRoaXMuc3RyaXBDdXN0b21Oc0F0dHJzKG4pLG59c3RyaXBDdXN0b21Oc0F0dHJzKHQpe2NvbnN0IGU9dC5hdHRyaWJ1dGVzO2ZvcihsZXQgbj1lLmxlbmd0aC0xOzA8bjtuLS0pe2NvbnN0IG89ZS5pdGVtKG4pLm5hbWU7InhtbG5zOm5zMSIhPT1vJiYwIT09by5pbmRleE9mKCJuczE6Iil8fHQucmVtb3ZlQXR0cmlidXRlKG8pfWxldCBuPXQuZmlyc3RDaGlsZDtmb3IoO247KW4ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmdGhpcy5zdHJpcEN1c3RvbU5zQXR0cnMobiksbj1uLm5leHRTaWJsaW5nfX1jb25zdCBycz0vXig/Oig/Omh0dHBzP3xtYWlsdG98ZnRwfHRlbHxmaWxlfHNtcyk6fFteJjovPyNdKig/OlsvPyNdfCQpKS9naSxzcz0vXmRhdGE6KD86aW1hZ2VcLyg/OmJtcHxnaWZ8anBlZ3xqcGd8cG5nfHRpZmZ8d2VicCl8dmlkZW9cLyg/Om1wZWd8bXA0fG9nZ3x3ZWJtKXxhdWRpb1wvKD86bXAzfG9nYXxvZ2d8b3B1cykpO2Jhc2U2NCxbYS16MC05K1wvXSs9KiQvaTtmdW5jdGlvbiBscyh0KXtyZXR1cm4odD1TdHJpbmcodCkpLm1hdGNoKHJzKXx8dC5tYXRjaChzcyk/dDooKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZjb25zb2xlLndhcm4oYFdBUk5JTkc6IHNhbml0aXppbmcgdW5zYWZlIFVSTCB2YWx1ZSAke3R9IChzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcylgKSwidW5zYWZlOiIrdCl9ZnVuY3Rpb24gY3ModCl7cmV0dXJuKHQ9U3RyaW5nKHQpKS5zcGxpdCgiLCIpLm1hcCgodD0+bHModC50cmltKCkpKSkuam9pbigiLCAiKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gZHModCl7Y29uc3QgZT17fTtmb3IoY29uc3QgbiBvZiB0LnNwbGl0KCIsIikpZVtuXT0hMDtyZXR1cm4gZX1mdW5jdGlvbiBwcyguLi50KXtjb25zdCBlPXt9O2Zvcihjb25zdCBuIG9mIHQpZm9yKGNvbnN0IHQgaW4gbiluLmhhc093blByb3BlcnR5KHQpJiYoZVt0XT0hMCk7cmV0dXJuIGV9Y29uc3QgbXM9ZHMoImFyZWEsYnIsY29sLGhyLGltZyx3YnIiKSx1cz1kcygiY29sZ3JvdXAsZGQsZHQsbGkscCx0Ym9keSx0ZCx0Zm9vdCx0aCx0aGVhZCx0ciIpLGZzPWRzKCJycCxydCIpLGdzPXBzKGZzLHVzKSxocz1wcyh1cyxkcygiYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGJsb2NrcXVvdGUsY2FwdGlvbixjZW50ZXIsZGVsLGRldGFpbHMsZGlhbG9nLGRpcixkaXYsZGwsZmlndXJlLGZpZ2NhcHRpb24sZm9vdGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhlYWRlcixoZ3JvdXAsaHIsaW5zLG1haW4sbWFwLG1lbnUsbmF2LG9sLHByZSxzZWN0aW9uLHN1bW1hcnksdGFibGUsdWwiKSksYnM9cHMoZnMsZHMoImEsYWJicixhY3JvbnltLGF1ZGlvLGIsYmRpLGJkbyxiaWcsYnIsY2l0ZSxjb2RlLGRlbCxkZm4sZW0sZm9udCxpLGltZyxpbnMsa2JkLGxhYmVsLG1hcCxtYXJrLHBpY3R1cmUscSxydWJ5LHJwLHJ0LHMsc2FtcCxzbWFsbCxzb3VyY2Usc3BhbixzdHJpa2Usc3Ryb25nLHN1YixzdXAsdGltZSx0cmFjayx0dCx1LHZhcix2aWRlbyIpKSx5cz1wcyhtcyxocyxicyxncyksX3M9ZHMoImJhY2tncm91bmQsY2l0ZSxocmVmLGl0ZW10eXBlLGxvbmdkZXNjLHBvc3RlcixzcmMseGxpbms6aHJlZiIpLENzPWRzKCJzcmNzZXQiKSxNcz1kcygiYWJicixhY2Nlc3NrZXksYWxpZ24sYWx0LGF1dG9wbGF5LGF4aXMsYmdjb2xvcixib3JkZXIsY2VsbHBhZGRpbmcsY2VsbHNwYWNpbmcsY2xhc3MsY2xlYXIsY29sb3IsY29scyxjb2xzcGFuLGNvbXBhY3QsY29udHJvbHMsY29vcmRzLGRhdGV0aW1lLGRlZmF1bHQsZGlyLGRvd25sb2FkLGZhY2UsaGVhZGVycyxoZWlnaHQsaGlkZGVuLGhyZWZsYW5nLGhzcGFjZSxpc21hcCxpdGVtc2NvcGUsaXRlbXByb3Asa2luZCxsYWJlbCxsYW5nLGxhbmd1YWdlLGxvb3AsbWVkaWEsbXV0ZWQsbm9ocmVmLG5vd3JhcCxvcGVuLHByZWxvYWQscmVsLHJldixyb2xlLHJvd3Mscm93c3BhbixydWxlcyxzY29wZSxzY3JvbGxpbmcsc2hhcGUsc2l6ZSxzaXplcyxzcGFuLHNyY2xhbmcsc3RhcnQsc3VtbWFyeSx0YWJpbmRleCx0YXJnZXQsdGl0bGUsdHJhbnNsYXRlLHR5cGUsdXNlbWFwLHZhbGlnbix2YWx1ZSx2c3BhY2Usd2lkdGgiKSx2cz1kcygiYXJpYS1hY3RpdmVkZXNjZW5kYW50LGFyaWEtYXRvbWljLGFyaWEtYXV0b2NvbXBsZXRlLGFyaWEtYnVzeSxhcmlhLWNoZWNrZWQsYXJpYS1jb2xjb3VudCxhcmlhLWNvbGluZGV4LGFyaWEtY29sc3BhbixhcmlhLWNvbnRyb2xzLGFyaWEtY3VycmVudCxhcmlhLWRlc2NyaWJlZGJ5LGFyaWEtZGV0YWlscyxhcmlhLWRpc2FibGVkLGFyaWEtZHJvcGVmZmVjdCxhcmlhLWVycm9ybWVzc2FnZSxhcmlhLWV4cGFuZGVkLGFyaWEtZmxvd3RvLGFyaWEtZ3JhYmJlZCxhcmlhLWhhc3BvcHVwLGFyaWEtaGlkZGVuLGFyaWEtaW52YWxpZCxhcmlhLWtleXNob3J0Y3V0cyxhcmlhLWxhYmVsLGFyaWEtbGFiZWxsZWRieSxhcmlhLWxldmVsLGFyaWEtbGl2ZSxhcmlhLW1vZGFsLGFyaWEtbXVsdGlsaW5lLGFyaWEtbXVsdGlzZWxlY3RhYmxlLGFyaWEtb3JpZW50YXRpb24sYXJpYS1vd25zLGFyaWEtcGxhY2Vob2xkZXIsYXJpYS1wb3NpbnNldCxhcmlhLXByZXNzZWQsYXJpYS1yZWFkb25seSxhcmlhLXJlbGV2YW50LGFyaWEtcmVxdWlyZWQsYXJpYS1yb2xlZGVzY3JpcHRpb24sYXJpYS1yb3djb3VudCxhcmlhLXJvd2luZGV4LGFyaWEtcm93c3BhbixhcmlhLXNlbGVjdGVkLGFyaWEtc2V0c2l6ZSxhcmlhLXNvcnQsYXJpYS12YWx1ZW1heCxhcmlhLXZhbHVlbWluLGFyaWEtdmFsdWVub3csYXJpYS12YWx1ZXRleHQiKSx4cz1wcyhfcyxDcyxNcyx2cyksT3M9ZHMoInNjcmlwdCxzdHlsZSx0ZW1wbGF0ZSIpO2NsYXNzIFBze2NvbnN0cnVjdG9yKCl7dGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITEsdGhpcy5idWY9W119c2FuaXRpemVDaGlsZHJlbih0KXtsZXQgZT10LmZpcnN0Q2hpbGQsbj0hMDtmb3IoO2U7KWlmKGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERT9uPXRoaXMuc3RhcnRFbGVtZW50KGUpOmUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT90aGlzLmNoYXJzKGUubm9kZVZhbHVlKTp0aGlzLnNhbml0aXplZFNvbWV0aGluZz0hMCxuJiZlLmZpcnN0Q2hpbGQpZT1lLmZpcnN0Q2hpbGQ7ZWxzZSBmb3IoO2U7KXtlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnRoaXMuZW5kRWxlbWVudChlKTtsZXQgdD10aGlzLmNoZWNrQ2xvYmJlcmVkRWxlbWVudChlLGUubmV4dFNpYmxpbmcpO2lmKHQpe2U9dDticmVha31lPXRoaXMuY2hlY2tDbG9iYmVyZWRFbGVtZW50KGUsZS5wYXJlbnROb2RlKX1yZXR1cm4gdGhpcy5idWYuam9pbigiIil9c3RhcnRFbGVtZW50KHQpe2NvbnN0IGU9dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCF5cy5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gdGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITAsIU9zLmhhc093blByb3BlcnR5KGUpO3RoaXMuYnVmLnB1c2goIjwiKSx0aGlzLmJ1Zi5wdXNoKGUpO2NvbnN0IG49dC5hdHRyaWJ1dGVzO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtjb25zdCBlPW4uaXRlbSh0KSxvPWUubmFtZSxpPW8udG9Mb3dlckNhc2UoKTtpZigheHMuaGFzT3duUHJvcGVydHkoaSkpe3RoaXMuc2FuaXRpemVkU29tZXRoaW5nPSEwO2NvbnRpbnVlfWxldCBhPWUudmFsdWU7X3NbaV0mJihhPWxzKGEpKSxDc1tpXSYmKGE9Y3MoYSkpLHRoaXMuYnVmLnB1c2goIiAiLG8sJz0iJyxTcyhhKSwnIicpfXJldHVybiB0aGlzLmJ1Zi5wdXNoKCI+IiksITB9ZW5kRWxlbWVudCh0KXtjb25zdCBlPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTt5cy5oYXNPd25Qcm9wZXJ0eShlKSYmIW1zLmhhc093blByb3BlcnR5KGUpJiYodGhpcy5idWYucHVzaCgiPC8iKSx0aGlzLmJ1Zi5wdXNoKGUpLHRoaXMuYnVmLnB1c2goIj4iKSl9Y2hhcnModCl7dGhpcy5idWYucHVzaChTcyh0KSl9Y2hlY2tDbG9iYmVyZWRFbGVtZW50KHQsZSl7aWYoZSYmKHQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZSkmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpPT09Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2FuaXRpemUgaHRtbCBiZWNhdXNlIHRoZSBlbGVtZW50IGlzIGNsb2JiZXJlZDogJHt0Lm91dGVySFRNTH1gKTtyZXR1cm4gZX19Y29uc3Qgd3M9L1tcdUQ4MDAtXHVEQkZGXVtcdURDMDAtXHVERkZGXS9nLGtzPS8oW15cIy1+IHwhXSkvZztmdW5jdGlvbiBTcyh0KXtyZXR1cm4gdC5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSh3cywoZnVuY3Rpb24odCl7cmV0dXJuIiYjIisoMTAyNCoodC5jaGFyQ29kZUF0KDApLTU1Mjk2KSsodC5jaGFyQ29kZUF0KDEpLTU2MzIwKSs2NTUzNikrIjsifSkpLnJlcGxhY2Uoa3MsKGZ1bmN0aW9uKHQpe3JldHVybiImIyIrdC5jaGFyQ29kZUF0KDApKyI7In0pKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKX1sZXQgRHM7ZnVuY3Rpb24gRXModCxlKXtsZXQgbj1udWxsO3RyeXtEcz1Ec3x8b3ModCk7bGV0IG89ZT9TdHJpbmcoZSk6IiI7bj1Ecy5nZXRJbmVydEJvZHlFbGVtZW50KG8pO2xldCBpPTUsYT1vO2Rve2lmKDA9PT1pKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHNhbml0aXplIGh0bWwgYmVjYXVzZSB0aGUgaW5wdXQgaXMgdW5zdGFibGUiKTtpLS0sbz1hLGE9bi5pbm5lckhUTUwsbj1Ecy5nZXRJbmVydEJvZHlFbGVtZW50KG8pfXdoaWxlKG8hPT1hKTtjb25zdCByPW5ldyBQcyxzPXIuc2FuaXRpemVDaGlsZHJlbihScyhuKXx8bik7cmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZyLnNhbml0aXplZFNvbWV0aGluZyYmY29uc29sZS53YXJuKCJXQVJOSU5HOiBzYW5pdGl6aW5nIEhUTUwgc3RyaXBwZWQgc29tZSBjb250ZW50LCBzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcyIpLFVyKHMpfWZpbmFsbHl7aWYobil7Y29uc3QgdD1ScyhuKXx8bjtmb3IoO3QuZmlyc3RDaGlsZDspdC5yZW1vdmVDaGlsZCh0LmZpcnN0Q2hpbGQpfX19ZnVuY3Rpb24gUnModCl7cmV0dXJuImNvbnRlbnQiaW4gdCYmKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmIlRFTVBMQVRFIj09PXQubm9kZU5hbWV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykodCk/dC5jb250ZW50Om51bGx9dmFyIEFzO2Z1bmN0aW9uIFRzKHQpe2NvbnN0IGU9enMoKTtyZXR1cm4gZT9lLnNhbml0aXplKEFzLlVSTCx0KXx8IiI6ZXModCwiVVJMIik/dHModCk6bHMoJGUodCkpfWZ1bmN0aW9uIE5zKHQpe2NvbnN0IGU9enMoKTtpZihlKXJldHVybiBxcihlLnNhbml0aXplKEFzLlJFU09VUkNFX1VSTCx0KXx8IiIpO2lmKGVzKHQsIlJlc291cmNlVVJMIikpcmV0dXJuIHFyKHRzKHQpKTt0aHJvdyBuZXcgRXJyb3IoInVuc2FmZSB2YWx1ZSB1c2VkIGluIGEgcmVzb3VyY2UgVVJMIGNvbnRleHQgKHNlZSBodHRwczovL2cuY28vbmcvc2VjdXJpdHkjeHNzKSIpfWZ1bmN0aW9uIHpzKCl7Y29uc3QgdD1maSgpO3JldHVybiB0JiZ0WzEyXX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gSXModCl7bGV0IGU9QnModCk7aWYoZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Y29uc3Qgbj1lO2xldCBvLGksYTtpZigoZnVuY3Rpb24gbih0KXtyZXR1cm4gdCYmdC5jb25zdHJ1Y3RvciYmdC5jb25zdHJ1Y3Rvci7JtWNtcH0pKHQpKXtpZihvPUdzKG4sdCksLTE9PW8pdGhyb3cgbmV3IEVycm9yKCJUaGUgcHJvdmlkZWQgY29tcG9uZW50IHdhcyBub3QgZm91bmQgaW4gdGhlIGFwcGxpY2F0aW9uIik7aT10fWVsc2UgaWYoKGZ1bmN0aW9uIG8odCl7cmV0dXJuIHQmJnQuY29uc3RydWN0b3ImJnQuY29uc3RydWN0b3IuybVkaXJ9KSh0KSl7aWYobz0oZnVuY3Rpb24gaSh0LGUpe2xldCBuPXRbMV0uZmlyc3RDaGlsZDtmb3IoO247KXtjb25zdCBvPW4uZGlyZWN0aXZlRW5kO2ZvcihsZXQgaT1uLmRpcmVjdGl2ZVN0YXJ0O2k8bztpKyspaWYodFtpXT09PWUpcmV0dXJuIG4uaW5kZXg7bj1VcyhuKX1yZXR1cm4tMX0pKG4sdCksLTE9PW8pdGhyb3cgbmV3IEVycm9yKCJUaGUgcHJvdmlkZWQgZGlyZWN0aXZlIHdhcyBub3QgZm91bmQgaW4gdGhlIGFwcGxpY2F0aW9uIik7YT1XcyhvLG4sITEpfWVsc2UgaWYobz1qcyhuLHQpLC0xPT1vKXJldHVybiBudWxsO2NvbnN0IHI9ZWkobltvXSkscz1CcyhyKSxsPXMmJiFBcnJheS5pc0FycmF5KHMpP3M6SHMobixvLHIpO2lmKGkmJnZvaWQgMD09PWwuY29tcG9uZW50JiYobC5jb21wb25lbnQ9aSxMcyhsLmNvbXBvbmVudCxsKSksYSYmdm9pZCAwPT09bC5kaXJlY3RpdmVzKXtsLmRpcmVjdGl2ZXM9YTtmb3IobGV0IHQ9MDt0PGEubGVuZ3RoO3QrKylMcyhhW3RdLGwpfUxzKGwubmF0aXZlLGwpLGU9bH19ZWxzZXtjb25zdCBuPXQ7bmdEZXZNb2RlJiZ5bihuKTtsZXQgbz1uO2Zvcig7bz1vLnBhcmVudE5vZGU7KXtjb25zdCB0PUJzKG8pO2lmKHQpe2xldCBvO2lmKG89QXJyYXkuaXNBcnJheSh0KT90OnQubFZpZXcsIW8pcmV0dXJuIG51bGw7Y29uc3QgaT1qcyhvLG4pO2lmKGk+PTApe2NvbnN0IHQ9ZWkob1tpXSksbj1IcyhvLGksdCk7THModCxuKSxlPW47YnJlYWt9fX19cmV0dXJuIGV8fG51bGx9ZnVuY3Rpb24gSHModCxlLG4pe3JldHVybntsVmlldzp0LG5vZGVJbmRleDplLG5hdGl2ZTpuLGNvbXBvbmVudDp2b2lkIDAsZGlyZWN0aXZlczp2b2lkIDAsbG9jYWxSZWZzOnZvaWQgMH19ZnVuY3Rpb24gRnModCl7bGV0IGUsbj1Ccyh0KTtpZihBcnJheS5pc0FycmF5KG4pKXtjb25zdCBvPUdzKG4sdCk7ZT1yaShvLG4pO2NvbnN0IGk9SHMobixvLGVbMF0pO2kuY29tcG9uZW50PXQsTHModCxpKSxMcyhpLm5hdGl2ZSxpKX1lbHNlIGU9cmkobi5ub2RlSW5kZXgsbi5sVmlldyk7cmV0dXJuIGV9ZnVuY3Rpb24gTHModCxlKXtuZ0Rldk1vZGUmJmhuKHQsIlRhcmdldCBleHBlY3RlZCIpLHQuX19uZ0NvbnRleHRfXz1lfWZ1bmN0aW9uIEJzKHQpe3JldHVybiBuZ0Rldk1vZGUmJmhuKHQsIlRhcmdldCBleHBlY3RlZCIpLHQuX19uZ0NvbnRleHRfX3x8bnVsbH1mdW5jdGlvbiBWcyh0KXtjb25zdCBlPUJzKHQpO3JldHVybiBlP0FycmF5LmlzQXJyYXkoZSk/ZTplLmxWaWV3Om51bGx9ZnVuY3Rpb24ganModCxlKXtjb25zdCBuPXRbMV07Zm9yKGxldCBvPWdvO288bi5iaW5kaW5nU3RhcnRJbmRleDtvKyspaWYoZWkodFtvXSk9PT1lKXJldHVybiBvO3JldHVybi0xfWZ1bmN0aW9uIFVzKHQpe2lmKHQuY2hpbGQpcmV0dXJuIHQuY2hpbGQ7aWYodC5uZXh0KXJldHVybiB0Lm5leHQ7Zm9yKDt0LnBhcmVudCYmIXQucGFyZW50Lm5leHQ7KXQ9dC5wYXJlbnQ7cmV0dXJuIHQucGFyZW50JiZ0LnBhcmVudC5uZXh0fWZ1bmN0aW9uIEdzKHQsZSl7Y29uc3Qgbj10WzFdLmNvbXBvbmVudHM7aWYobilmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKyl7Y29uc3QgaT1uW29dO2lmKHJpKGksdClbOF09PT1lKXJldHVybiBpfWVsc2UgaWYocmkoZ28sdClbOF09PT1lKXJldHVybiBnbztyZXR1cm4tMX1mdW5jdGlvbiBXcyh0LGUsbil7Y29uc3Qgbz1lWzFdLmRhdGFbdF07bGV0IGk9by5kaXJlY3RpdmVTdGFydDtyZXR1cm4gMD09aT9XbjooIW4mJjImby5mbGFncyYmaSsrLGUuc2xpY2UoaSxvLmRpcmVjdGl2ZUVuZCkpfWZ1bmN0aW9uIFlzKHQpe3JldHVybiB0Lm5nT3JpZ2luYWxFcnJvcn1mdW5jdGlvbiBxcyh0LC4uLmUpe3QuZXJyb3IoLi4uZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLyEoZnVuY3Rpb24odCl7dFt0Lk5PTkU9MF09Ik5PTkUiLHRbdC5IVE1MPTFdPSJIVE1MIix0W3QuU1RZTEU9Ml09IlNUWUxFIix0W3QuU0NSSVBUPTNdPSJTQ1JJUFQiLHRbdC5VUkw9NF09IlVSTCIsdFt0LlJFU09VUkNFX1VSTD01XT0iUkVTT1VSQ0VfVVJMIn0pKEFzfHwoQXM9e30pKTtjbGFzcyBac3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2NvbnNvbGU9Y29uc29sZX1oYW5kbGVFcnJvcih0KXtjb25zdCBlPXRoaXMuX2ZpbmRPcmlnaW5hbEVycm9yKHQpLG49dGhpcy5fZmluZENvbnRleHQodCksbz0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gdCYmdC5uZ0Vycm9yTG9nZ2VyfHxxc30pKHQpO28odGhpcy5fY29uc29sZSwiRVJST1IiLHQpLGUmJm8odGhpcy5fY29uc29sZSwiT1JJR0lOQUwgRVJST1IiLGUpLG4mJm8odGhpcy5fY29uc29sZSwiRVJST1IgQ09OVEVYVCIsbil9X2ZpbmRDb250ZXh0KHQpe3JldHVybiB0PyhmdW5jdGlvbiBlKHQpe3JldHVybiB0Lm5nRGVidWdDb250ZXh0fSkodCl8fHRoaXMuX2ZpbmRDb250ZXh0KFlzKHQpKTpudWxsfV9maW5kT3JpZ2luYWxFcnJvcih0KXtsZXQgZT10JiZZcyh0KTtmb3IoO2UmJllzKGUpOyllPVlzKGUpO3JldHVybiBlfHxudWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgWHM9e25hbWU6ImN1c3RvbS1lbGVtZW50cyJ9LEtzPXtuYW1lOiJuby1lcnJvcnMtc2NoZW1hIn0sSnM9L14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZyxRcz0vKDx8PikvO2Z1bmN0aW9uICRzKHQpe3JldHVybiB0LnJlcGxhY2UoSnMsKHQ9PnQucmVwbGFjZShRcywi4oCLJDHigIsiKSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB0bCh0KXtpZighbmdEZXZNb2RlKXRocm93IG5ldyBFcnJvcigiTG9va3MgbGlrZSB3ZSBhcmUgaW4gJ3Byb2QgbW9kZScsIGJ1dCB3ZSBhcmUgY3JlYXRpbmcgYSBuYW1lZCBBcnJheSB0eXBlLCB3aGljaCBpcyB3cm9uZyEgQ2hlY2sgeW91ciBjb2RlIik7dHJ5e3JldHVybihmdW5jdGlvbiBlKC4uLnQpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlKXRocm93IG5ldyBFcnJvcigibmV3VHJ1c3RlZEZ1bmN0aW9uRm9yRGV2IHNob3VsZCBuZXZlciBiZSBjYWxsZWQgaW4gcHJvZHVjdGlvbiIpO2lmKCFqbi50cnVzdGVkVHlwZXMpcmV0dXJuIG5ldyBGdW5jdGlvbiguLi50KTtjb25zdCBlPWAoZnVuY3Rpb24gYW5vbnltb3VzKCR7dC5zbGljZSgwLC0xKS5qb2luKCIsIil9XG4pIHsgJHt0W3QubGVuZ3RoLTFdfVxufSlgLG49am4uZXZhbCgoZnVuY3Rpb24gbyh0KXt2YXIgZTtyZXR1cm4obnVsbD09PShlPWpyKCkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNyZWF0ZVNjcmlwdCh0KSl8fHR9KShlKSk7cmV0dXJuIHZvaWQgMD09PW4uYmluZD9uZXcgRnVuY3Rpb24oLi4udCk6KG4udG9TdHJpbmc9KCk9PmUsbi5iaW5kKGpuKSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoIkFycmF5IixgcmV0dXJuIGNsYXNzICR7dH0gZXh0ZW5kcyBBcnJheXt9YCkoQXJyYXkpfWNhdGNoKHQpe3JldHVybiBBcnJheX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IGVsPS8oW0EtWl0pL2csbmw9KCJ1bmRlZmluZWQiIT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHNldFRpbWVvdXQpLmJpbmQoam4pO2Z1bmN0aW9uIG9sKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gaWwodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudH1jb25zdCBhbD0i77+9IjtmdW5jdGlvbiBybCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEZ1bmN0aW9uP3QoKTp0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBzbCh0KXt0aHJvdyBuZXcgS2UoIjMwMCIsYE11bHRpcGxlIGNvbXBvbmVudHMgbWF0Y2ggbm9kZSB3aXRoIHRhZ25hbWUgJHt0LnZhbHVlfWApfWZ1bmN0aW9uIGxsKHQsZSxuLG8saSl7Y29uc3RbYSxyLC4uLnNdPW8uc3BsaXQoYWwpO2xldCBsPXIsYz1yO2ZvcihsZXQgbz0wO288cy5sZW5ndGg7bysrKXtjb25zdCBhPWUrbztsKz1gJHt0W2FdfSR7c1tvXX1gLGMrPWAke2E9PT1uP2k6dFthXX0ke3Nbb119YH1yZXR1cm57cHJvcE5hbWU6YSxvbGRWYWx1ZTpsLG5ld1ZhbHVlOmN9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KdmFyIGNsOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IGRsO2Z1bmN0aW9uIHBsKHQsZSl7cmV0dXJuIGRsKHQsZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBtbCh0KXtuZ0Rldk1vZGUmJlJvKHQpO2NvbnN0IGU9dFszXTtyZXR1cm4gX28oZSk/ZVszXTplfWZ1bmN0aW9uIHVsKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7bmdEZXZNb2RlJiZobih0LCJjb21wb25lbnQiKTtsZXQgZT15byh0KT90OlZzKHQpO2Zvcig7ZSYmISg1MTImZVsyXSk7KWU9bWwoZSk7cmV0dXJuIG5nRGV2TW9kZSYmUm8oZSksZX0pKHQpO3JldHVybiBuZ0Rldk1vZGUmJmhuKGVbOF0sIlJvb3RWaWV3IGhhcyBubyBjb250ZXh0LiBQZXJoYXBzIGl0IGlzIGRpc2Nvbm5lY3RlZD8iKSxlWzhdfWZ1bmN0aW9uIGZsKHQpe3JldHVybiBobCh0WzEzXSl9ZnVuY3Rpb24gZ2wodCl7cmV0dXJuIGhsKHRbNF0pfWZ1bmN0aW9uIGhsKHQpe2Zvcig7bnVsbCE9PXQmJiFfbyh0KTspdD10WzRdO3JldHVybiB0fWZ1bmN0aW9uIGJsKHQsZSxuLG8saSl7aWYobnVsbCE9byl7bGV0IGEscj0hMTtfbyhvKT9hPW86eW8obykmJihyPSEwLG5nRGV2TW9kZSYmaG4ob1swXSwiSE9TVCBtdXN0IGJlIGRlZmluZWQgZm9yIGEgY29tcG9uZW50IExWaWV3Iiksbz1vWzBdKTtjb25zdCBzPWVpKG8pO25nRGV2TW9kZSYmISRvKGUpJiZ5bihzKSwwPT09dCYmbnVsbCE9PW4/bnVsbD09aT9EbChlLG4scyk6U2woZSxuLHMsaXx8bnVsbCwhMCk6MT09PXQmJm51bGwhPT1uP1NsKGUsbixzLGl8fG51bGwsITApOjI9PT10P1ZsKGUscyxyKTozPT09dCYmKG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyRGVzdHJveU5vZGUrKyxlLmRlc3Ryb3lOb2RlKHMpKSxudWxsIT1hJiYoZnVuY3Rpb24gYSh0LGUsbixvLGkpe25nRGV2TW9kZSYmRG8obik7Y29uc3QgYT1uWzddO2EhPT1laShuKSYmYmwoZSx0LG8sYSxpKTtmb3IobGV0IGk9Ym87aTxuLmxlbmd0aDtpKyspe2NvbnN0IHI9bltpXTtVbChyWzFdLHIsdCxlLG8sYSl9fSkoZSx0LGEsbixpKX19ZnVuY3Rpb24geWwodCxlKXtyZXR1cm4gbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJDcmVhdGVUZXh0Tm9kZSsrLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0VGV4dCsrLCRvKHQpP3QuY3JlYXRlVGV4dChlKTp0LmNyZWF0ZVRleHROb2RlKGUpfWZ1bmN0aW9uIF9sKHQsZSxuKXtuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlclNldFRleHQrKywkbyh0KT90LnNldFZhbHVlKGUsbik6ZS50ZXh0Q29udGVudD1ufWZ1bmN0aW9uIENsKHQsZSl7cmV0dXJuIG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyQ3JlYXRlQ29tbWVudCsrLHQuY3JlYXRlQ29tbWVudCgkcyhlKSl9ZnVuY3Rpb24gTWwodCxlLG4pe3JldHVybiBuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckNyZWF0ZUVsZW1lbnQrKywkbyh0KT90LmNyZWF0ZUVsZW1lbnQoZSxuKTpudWxsPT09bj90LmNyZWF0ZUVsZW1lbnQoZSk6dC5jcmVhdGVFbGVtZW50TlMobixlKX1mdW5jdGlvbiB2bCh0LGUpe25nRGV2TW9kZSYmRG8odCksbmdEZXZNb2RlJiZobih0WzldLCJBIHByb2plY3RlZCB2aWV3IHNob3VsZCBiZWxvbmcgdG8gYSBub24tZW1wdHkgcHJvamVjdGVkIHZpZXdzIGNvbGxlY3Rpb24iKTtjb25zdCBuPXRbOV0sbz1uLmluZGV4T2YoZSksaT1lWzNdO25nRGV2TW9kZSYmRG8oaSksMTAyNCZlWzJdJiYoZVsyXSY9LTEwMjUscGkoaSwtMSkpLG4uc3BsaWNlKG8sMSl9ZnVuY3Rpb24geGwodCxlKXtpZih0Lmxlbmd0aDw9Ym8pcmV0dXJuO2NvbnN0IG49Ym8rZSxvPXRbbl07aWYobyl7Y29uc3QgaT1vWzE3XTtudWxsIT09aSYmaSE9PXQmJnZsKGksbyksZT4wJiYodFtuLTFdWzRdPW9bNF0pO2NvbnN0IGE9b3IodCxibytlKTshKGZ1bmN0aW9uIGkodCxlKXtVbCh0LGUsZVsxMV0sMixudWxsLG51bGwpLGVbMF09bnVsbCxlWzZdPW51bGx9KShvWzFdLG8pO2NvbnN0IHI9YVsxOV07bnVsbCE9PXImJnIuZGV0YWNoVmlldyhhWzFdKSxvWzNdPW51bGwsb1s0XT1udWxsLG9bMl0mPS0xMjl9cmV0dXJuIG99ZnVuY3Rpb24gT2wodCxlKXtpZighKDI1NiZlWzJdKSl7Y29uc3Qgbj1lWzExXTskbyhuKSYmbi5kZXN0cm95Tm9kZSYmVWwodCxlLG4sMyxudWxsLG51bGwpLChmdW5jdGlvbiBuKHQpe2xldCBlPXRbMTNdO2lmKCFlKXJldHVybiBQbCh0WzFdLHQpO2Zvcig7ZTspe2xldCBuPW51bGw7aWYoeW8oZSkpbj1lWzEzXTtlbHNle25nRGV2TW9kZSYmRG8oZSk7Y29uc3QgdD1lWzEwXTt0JiYobj10KX1pZighbil7Zm9yKDtlJiYhZVs0XSYmZSE9PXQ7KXlvKGUpJiZQbChlWzFdLGUpLGU9ZVszXTtudWxsPT09ZSYmKGU9dCkseW8oZSkmJlBsKGVbMV0sZSksbj1lJiZlWzRdfWU9bn19KShlKX19ZnVuY3Rpb24gUGwodCxlKXtpZighKDI1NiZlWzJdKSl7ZVsyXSY9LTEyOSxlWzJdfD0yNTYsKGZ1bmN0aW9uIG4odCxlKXtsZXQgbjtpZihudWxsIT10JiZudWxsIT0obj10LmRlc3Ryb3lIb29rcykpZm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kz0yKXtjb25zdCBvPWVbblt0XV07aWYoIShvIGluc3RhbmNlb2YgbmEpKXtjb25zdCBlPW5bdCsxXTtpZihBcnJheS5pc0FycmF5KGUpKWZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9Mil7Y29uc3Qgbj1vW2VbdF1dLGk9ZVt0KzFdO3FvKDQsbixpKTt0cnl7aS5jYWxsKG4pfWZpbmFsbHl7cW8oNSxuLGkpfX1lbHNle3FvKDQsbyxlKTt0cnl7ZS5jYWxsKG8pfWZpbmFsbHl7cW8oNSxvLGUpfX19fX0pKHQsZSksKGZ1bmN0aW9uIG8odCxlKXtjb25zdCBuPXQuY2xlYW51cCxvPWVbN107bGV0IGk9LTE7aWYobnVsbCE9PW4pZm9yKGxldCB0PTA7dDxuLmxlbmd0aC0xO3QrPTIpaWYoInN0cmluZyI9PXR5cGVvZiBuW3RdKXtjb25zdCBhPW5bdCsxXSxyPSJmdW5jdGlvbiI9PXR5cGVvZiBhP2EoZSk6ZWkoZVthXSkscz1vW2k9blt0KzJdXSxsPW5bdCszXTsiYm9vbGVhbiI9PXR5cGVvZiBsP3IucmVtb3ZlRXZlbnRMaXN0ZW5lcihuW3RdLHMsbCk6bD49MD9vW2k9bF0oKTpvW2k9LWxdLnVuc3Vic2NyaWJlKCksdCs9Mn1lbHNle2NvbnN0IGU9b1tpPW5bdCsxXV07blt0XS5jYWxsKGUpfWlmKG51bGwhPT1vKXtmb3IobGV0IHQ9aSsxO3Q8by5sZW5ndGg7dCsrKXtjb25zdCBlPW9bdF07bmdEZXZNb2RlJiYoIkV4cGVjdGluZyBpbnN0YW5jZSBjbGVhbnVwIGZ1bmN0aW9uLiIsImZ1bmN0aW9uIiE9dHlwZW9mKGE9ZSkmJmJuKCJFeHBlY3RpbmcgaW5zdGFuY2UgY2xlYW51cCBmdW5jdGlvbi4iLG51bGw9PT1hPyJudWxsIjp0eXBlb2YgYSwiZnVuY3Rpb24iLCI9PT0iKSksZSgpfWVbN109bnVsbH12YXIgYX0pKHQsZSksMT09PWVbMV0udHlwZSYmJG8oZVsxMV0pJiYobmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJEZXN0cm95KyssZVsxMV0uZGVzdHJveSgpKTtjb25zdCBuPWVbMTddO2lmKG51bGwhPT1uJiZfbyhlWzNdKSl7biE9PWVbM10mJnZsKG4sZSk7Y29uc3Qgbz1lWzE5XTtudWxsIT09byYmby5kZXRhY2hWaWV3KHQpfX19ZnVuY3Rpb24gd2wodCxlLG4pe3JldHVybiBrbCh0LGUucGFyZW50LG4pfWZ1bmN0aW9uIGtsKHQsZSxuKXtsZXQgbz1lO2Zvcig7bnVsbCE9PW8mJjQwJm8udHlwZTspbz0oZT1vKS5wYXJlbnQ7aWYobnVsbD09PW8pcmV0dXJuIG5bMF07aWYobmdEZXZNb2RlJiZpYShvLDcpLDImby5mbGFncyl7bmdEZXZNb2RlJiZPbyhvLG4pO2NvbnN0IGU9dC5kYXRhW28uZGlyZWN0aXZlU3RhcnRdLmVuY2Fwc3VsYXRpb247aWYoZT09PUhuLk5vbmV8fGU9PT1Ibi5FbXVsYXRlZClyZXR1cm4gbnVsbH1yZXR1cm4gb2kobyxuKX1mdW5jdGlvbiBTbCh0LGUsbixvLGkpe25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVySW5zZXJ0QmVmb3JlKyssJG8odCk/dC5pbnNlcnRCZWZvcmUoZSxuLG8saSk6ZS5pbnNlcnRCZWZvcmUobixvLGkpfWZ1bmN0aW9uIERsKHQsZSxuKXtuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckFwcGVuZENoaWxkKyssbmdEZXZNb2RlJiZobihlLCJwYXJlbnQgbm9kZSBtdXN0IGJlIGRlZmluZWQiKSwkbyh0KT90LmFwcGVuZENoaWxkKGUsbik6ZS5hcHBlbmRDaGlsZChuKX1mdW5jdGlvbiBFbCh0LGUsbixvLGkpe251bGwhPT1vP1NsKHQsZSxuLG8saSk6RGwodCxlLG4pfWZ1bmN0aW9uIFJsKHQsZSl7cmV0dXJuICRvKHQpP3QucGFyZW50Tm9kZShlKTplLnBhcmVudE5vZGV9ZnVuY3Rpb24gQWwodCxlLG4pe3JldHVybiB6bCh0LGUsbil9ZnVuY3Rpb24gVGwodCxlLG4pe3JldHVybiA0MCZ0LnR5cGU/b2kodCxuKTpudWxsfSEoZnVuY3Rpb24odCl7dFt0LkltcG9ydGFudD0xXT0iSW1wb3J0YW50Iix0W3QuRGFzaENhc2U9Ml09IkRhc2hDYXNlIn0pKGNsfHwoY2w9e30pKTtsZXQgTmwsemw9VGw7ZnVuY3Rpb24gSWwodCxlKXt6bD10LE5sPWV9ZnVuY3Rpb24gSGwodCxlLG4sbyl7Y29uc3QgaT13bCh0LG8sZSksYT1lWzExXSxyPUFsKG8ucGFyZW50fHxlWzZdLG8sZSk7aWYobnVsbCE9aSlpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKUVsKGEsaSxuW3RdLHIsITEpO2Vsc2UgRWwoYSxpLG4sciwhMSk7dm9pZCAwIT09TmwmJk5sKGEsbyxlLG4saSl9ZnVuY3Rpb24gRmwodCxlKXtpZihudWxsIT09ZSl7bmdEZXZNb2RlJiZpYShlLDYzKTtjb25zdCBuPWUudHlwZTtpZigzJm4pcmV0dXJuIG9pKGUsdCk7aWYoNCZuKXJldHVybiBCbCgtMSx0W2UuaW5kZXhdKTtpZig4Jm4pe2NvbnN0IG49ZS5jaGlsZDtpZihudWxsIT09bilyZXR1cm4gRmwodCxuKTt7Y29uc3Qgbj10W2UuaW5kZXhdO3JldHVybiBfbyhuKT9CbCgtMSxuKTplaShuKX19aWYoMzImbilyZXR1cm4gcGwoZSx0KSgpfHxlaSh0W2UuaW5kZXhdKTt7Y29uc3Qgbj1MbCh0LGUpO2lmKG51bGwhPT1uKXtpZihBcnJheS5pc0FycmF5KG4pKXJldHVybiBuWzBdO2NvbnN0IGU9bWwodFsxNl0pO3JldHVybiBuZ0Rldk1vZGUmJklvKGUpLEZsKGUsbil9cmV0dXJuIEZsKHQsZS5uZXh0KX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gTGwodCxlKXtpZihudWxsIT09ZSl7Y29uc3Qgbj10WzE2XVs2XSxvPWUucHJvamVjdGlvbjtyZXR1cm4gbmdEZXZNb2RlJiYoZnVuY3Rpb24gbih0LGUpe2huKHRbMTZdLCJDb21wb25lbnQgdmlld3Mgc2hvdWxkIGV4aXN0LiIpLGhuKHRbMTZdWzZdLnByb2plY3Rpb24sZXx8IkNvbXBvbmVudHMgd2l0aCBwcm9qZWN0aW9uIG5vZGVzICg8bmctY29udGVudD4pIG11c3QgaGF2ZSBwcm9qZWN0aW9uIHNsb3RzIGRlZmluZWQuIil9KSh0KSxuLnByb2plY3Rpb25bb119cmV0dXJuIG51bGx9ZnVuY3Rpb24gQmwodCxlKXtjb25zdCBuPWJvK3QrMTtpZihuPGUubGVuZ3RoKXtjb25zdCB0PWVbbl0sbz10WzFdLmZpcnN0Q2hpbGQ7aWYobnVsbCE9PW8pcmV0dXJuIEZsKHQsbyl9cmV0dXJuIGVbN119ZnVuY3Rpb24gVmwodCxlLG4pe25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyUmVtb3ZlTm9kZSsrO2NvbnN0IG89UmwodCxlKTtvJiYoZnVuY3Rpb24gaSh0LGUsbixvKXskbyh0KT90LnJlbW92ZUNoaWxkKGUsbixvKTplLnJlbW92ZUNoaWxkKG4pfSkodCxvLGUsbil9ZnVuY3Rpb24gamwodCxlLG4sbyxpLGEscil7Zm9yKDtudWxsIT1uOyl7bmdEZXZNb2RlJiZPbyhuLG8pLG5nRGV2TW9kZSYmaWEobiw2Myk7Y29uc3Qgcz1vW24uaW5kZXhdLGw9bi50eXBlO2lmKHImJjA9PT1lJiYocyYmTHMoZWkocyksbyksbi5mbGFnc3w9NCksNjQhPSg2NCZuLmZsYWdzKSlpZig4JmwpamwodCxlLG4uY2hpbGQsbyxpLGEsITEpLGJsKGUsdCxpLHMsYSk7ZWxzZSBpZigzMiZsKXtjb25zdCByPXBsKG4sbyk7bGV0IGw7Zm9yKDtsPXIoKTspYmwoZSx0LGksbCxhKTtibChlLHQsaSxzLGEpfWVsc2UgMTYmbD9HbCh0LGUsbyxuLGksYSk6KG5nRGV2TW9kZSYmaWEobiw3KSxibChlLHQsaSxzLGEpKTtuPXI/bi5wcm9qZWN0aW9uTmV4dDpuLm5leHR9fWZ1bmN0aW9uIFVsKHQsZSxuLG8saSxhKXtqbChuLG8sdC5maXJzdENoaWxkLGUsaSxhLCExKX1mdW5jdGlvbiBHbCh0LGUsbixvLGksYSl7Y29uc3Qgcj1uWzE2XSxzPXJbNl07bmdEZXZNb2RlJiZsbih0eXBlb2Ygby5wcm9qZWN0aW9uLCJudW1iZXIiLCJleHBlY3RpbmcgcHJvamVjdGlvbiBpbmRleCIpO2NvbnN0IGw9cy5wcm9qZWN0aW9uW28ucHJvamVjdGlvbl07aWYoQXJyYXkuaXNBcnJheShsKSlmb3IobGV0IG49MDtuPGwubGVuZ3RoO24rKylibChlLHQsaSxsW25dLGEpO2Vsc2UgamwodCxlLGwsclszXSxpLGEsITApfWZ1bmN0aW9uIFdsKHQsZSxuKXtuZ0Rldk1vZGUmJnNuKG4sIiduZXdWYWx1ZScgc2hvdWxkIGJlIGEgc3RyaW5nIiksJG8odCk/dC5zZXRBdHRyaWJ1dGUoZSwic3R5bGUiLG4pOmUuc3R5bGUuY3NzVGV4dD1uLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0U3R5bGUrK31mdW5jdGlvbiBZbCh0LGUsbil7bmdEZXZNb2RlJiZzbihuLCInbmV3VmFsdWUnIHNob3VsZCBiZSBhIHN0cmluZyIpLCRvKHQpPyIiPT09bj90LnJlbW92ZUF0dHJpYnV0ZShlLCJjbGFzcyIpOnQuc2V0QXR0cmlidXRlKGUsImNsYXNzIixuKTplLmNsYXNzTmFtZT1uLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0Q2xhc3NOYW1lKyt9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHFsKHQsZSxuKXtuZ0Rldk1vZGUmJmNuKGUsIiIsJ2NhbiBub3QgbG9vayBmb3IgIiIgc3RyaW5nLicpO2xldCBvPXQubGVuZ3RoO2Zvcig7Oyl7Y29uc3QgaT10LmluZGV4T2YoZSxuKTtpZigtMT09PWkpcmV0dXJuIGk7aWYoMD09PWl8fHQuY2hhckNvZGVBdChpLTEpPD0zMil7Y29uc3Qgbj1lLmxlbmd0aDtpZihpK249PT1vfHx0LmNoYXJDb2RlQXQoaStuKTw9MzIpcmV0dXJuIGl9bj1pKzF9fWNvbnN0IFpsPSJuZy10ZW1wbGF0ZSI7ZnVuY3Rpb24gWGwodCxlLG4pe25nRGV2TW9kZSYmbG4oZSxlLnRvTG93ZXJDYXNlKCksIkNsYXNzIG5hbWUgZXhwZWN0ZWQgdG8gYmUgbG93ZXJjYXNlLiIpO2xldCBvPTA7Zm9yKDtvPHQubGVuZ3RoOyl7bGV0IGk9dFtvKytdO2lmKG4mJiJjbGFzcyI9PT1pKXtpZihpPXRbb10sLTEhPT1xbChpLnRvTG93ZXJDYXNlKCksZSwwKSlyZXR1cm4hMH1lbHNlIGlmKDE9PT1pKXtmb3IoO288dC5sZW5ndGgmJiJzdHJpbmciPT10eXBlb2YoaT10W28rK10pOylpZihpLnRvTG93ZXJDYXNlKCk9PT1lKXJldHVybiEwO3JldHVybiExfX1yZXR1cm4hMX1mdW5jdGlvbiBLbCh0KXtyZXR1cm4gND09PXQudHlwZSYmdC52YWx1ZSE9PVpsfWZ1bmN0aW9uIEpsKHQsZSxuKXtyZXR1cm4gZT09PSg0IT09dC50eXBlfHxuP3QudmFsdWU6WmwpfWZ1bmN0aW9uIFFsKHQsZSxuKXtuZ0Rldk1vZGUmJmhuKGVbMF0sIlNlbGVjdG9yIHNob3VsZCBoYXZlIGEgdGFnIG5hbWUiKTtsZXQgbz00O2NvbnN0IGk9dC5hdHRyc3x8W10sYT0oZnVuY3Rpb24gcih0KXtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpZihyYSh0W2VdKSlyZXR1cm4gZTtyZXR1cm4gdC5sZW5ndGh9KShpKTtsZXQgcz0hMTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7Y29uc3QgbD1lW3JdO2lmKCJudW1iZXIiIT10eXBlb2YgbCl7aWYoIXMpaWYoNCZvKXtpZihvPTJ8MSZvLCIiIT09bCYmIUpsKHQsbCxuKXx8IiI9PT1sJiYxPT09ZS5sZW5ndGgpe2lmKCRsKG8pKXJldHVybiExO3M9ITB9fWVsc2V7Y29uc3QgYz04Jm8/bDplWysrcl07aWYoOCZvJiZudWxsIT09dC5hdHRycyl7aWYoIVhsKHQuYXR0cnMsYyxuKSl7aWYoJGwobykpcmV0dXJuITE7cz0hMH1jb250aW51ZX1jb25zdCBkPXRjKDgmbz8iY2xhc3MiOmwsaSxLbCh0KSxuKTtpZigtMT09PWQpe2lmKCRsKG8pKXJldHVybiExO3M9ITA7Y29udGludWV9aWYoIiIhPT1jKXtsZXQgdDtkPmE/dD0iIjoobmdEZXZNb2RlJiZjbihpW2RdLDAsIldlIGRvIG5vdCBtYXRjaCBkaXJlY3RpdmVzIG9uIG5hbWVzcGFjZWQgYXR0cmlidXRlcyIpLHQ9aVtkKzFdLnRvTG93ZXJDYXNlKCkpO2NvbnN0IGU9OCZvP3Q6bnVsbDtpZihlJiYtMSE9PXFsKGUsYywwKXx8MiZvJiZjIT09dCl7aWYoJGwobykpcmV0dXJuITE7cz0hMH19fX1lbHNle2lmKCFzJiYhJGwobykmJiEkbChsKSlyZXR1cm4hMTtpZihzJiYkbChsKSljb250aW51ZTtzPSExLG89bHwxJm99fXJldHVybiAkbChvKXx8c31mdW5jdGlvbiAkbCh0KXtyZXR1cm4gMD09KDEmdCl9ZnVuY3Rpb24gdGModCxlLG4sbyl7aWYobnVsbD09PWUpcmV0dXJuLTE7bGV0IGk9MDtpZihvfHwhbil7bGV0IG49ITE7Zm9yKDtpPGUubGVuZ3RoOyl7Y29uc3Qgbz1lW2ldO2lmKG89PT10KXJldHVybiBpO2lmKDM9PT1vfHw2PT09byluPSEwO2Vsc2V7aWYoMT09PW98fDI9PT1vKXtsZXQgdD1lWysraV07Zm9yKDsic3RyaW5nIj09dHlwZW9mIHQ7KXQ9ZVsrK2ldO2NvbnRpbnVlfWlmKDQ9PT1vKWJyZWFrO2lmKDA9PT1vKXtpKz00O2NvbnRpbnVlfX1pKz1uPzE6Mn1yZXR1cm4tMX1yZXR1cm4oZnVuY3Rpb24gYSh0LGUpe2xldCBuPXQuaW5kZXhPZig0KTtpZihuPi0xKWZvcihuKys7bjx0Lmxlbmd0aDspe2NvbnN0IG89dFtuXTtpZigibnVtYmVyIj09dHlwZW9mIG8pcmV0dXJuLTE7aWYobz09PWUpcmV0dXJuIG47bisrfXJldHVybi0xfSkoZSx0KX1mdW5jdGlvbiBlYyh0LGUsbj0hMSl7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspaWYoUWwodCxlW29dLG4pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIG5jKHQsZSl7dDpmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7Y29uc3Qgbz1lW25dO2lmKHQubGVuZ3RoPT09by5sZW5ndGgpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV0hPT1vW2VdKWNvbnRpbnVlIHQ7cmV0dXJuITB9fXJldHVybiExfWZ1bmN0aW9uIG9jKHQsZSl7cmV0dXJuIHQ/Ijpub3QoIitlLnRyaW0oKSsiKSI6ZX1mdW5jdGlvbiBpYyh0KXtsZXQgZT10WzBdLG49MSxvPTIsaT0iIixhPSExO2Zvcig7bjx0Lmxlbmd0aDspe2xldCByPXRbbl07aWYoInN0cmluZyI9PXR5cGVvZiByKWlmKDImbyl7Y29uc3QgZT10Wysrbl07aSs9IlsiK3IrKGUubGVuZ3RoPjA/Jz0iJytlKyciJzoiIikrIl0ifWVsc2UgOCZvP2krPSIuIityOjQmbyYmKGkrPSIgIityKTtlbHNlIiI9PT1pfHwkbChyKXx8KGUrPW9jKGEsaSksaT0iIiksbz1yLGE9YXx8ISRsKG8pO24rK31yZXR1cm4iIiE9PWkmJihlKz1vYyhhLGkpKSxlfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgYWM9InVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZT97X19icmFuZF9fOiJOT19DSEFOR0UifTp7fTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gcmModCl7bmdEZXZNb2RlJiZmbih0LDAsIkNhbiBvbmx5IGFkdmFuY2UgZm9yd2FyZCIpLHNjKGdpKCksZmkoKSxHaSgpK3QseGkoKSl9ZnVuY3Rpb24gc2ModCxlLG4sbyl7aWYobmdEZXZNb2RlJiYoZnVuY3Rpb24gaSh0LGUpe3pvKGdvLHRbMV0uYmluZGluZ1N0YXJ0SW5kZXgsZSl9KShlLG4pLCFvKWlmKDM9PSgzJmVbMl0pKXtjb25zdCBvPXQucHJlT3JkZXJDaGVja0hvb2tzO251bGwhPT1vJiZLaShlLG8sbil9ZWxzZXtjb25zdCBvPXQucHJlT3JkZXJIb29rcztudWxsIT09byYmSmkoZSxvLDAsbil9V2kobil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGxjKHQsZSl7cmV0dXJuIG5nRGV2TW9kZSYmcm4odCwwLDMyNzY3KSxuZ0Rldk1vZGUmJnJuKGUsMCwzMjc2NyksdDw8MTd8ZTw8Mn1mdW5jdGlvbiBjYyh0KXtyZXR1cm4gbmdEZXZNb2RlJiZhbih0LCJleHBlY3RlZCBudW1iZXIiKSx0Pj4xNyYzMjc2N31mdW5jdGlvbiBkYyh0KXtyZXR1cm4gbmdEZXZNb2RlJiZhbih0LCJleHBlY3RlZCBudW1iZXIiKSwyPT0oMiZ0KX1mdW5jdGlvbiBwYyh0KXtyZXR1cm4gbmdEZXZNb2RlJiZhbih0LCJleHBlY3RlZCBudW1iZXIiKSwyfHR9ZnVuY3Rpb24gbWModCl7cmV0dXJuIG5nRGV2TW9kZSYmYW4odCwiZXhwZWN0ZWQgbnVtYmVyIiksKDEzMTA2OCZ0KT4+Mn1mdW5jdGlvbiB1Yyh0LGUpe3JldHVybiBuZ0Rldk1vZGUmJmFuKHQsImV4cGVjdGVkIG51bWJlciIpLG5nRGV2TW9kZSYmcm4oZSwwLDMyNzY3KSwtMTMxMDY5JnR8ZTw8Mn1mdW5jdGlvbiBmYyh0KXtyZXR1cm4gbmdEZXZNb2RlJiZhbih0LCJleHBlY3RlZCBudW1iZXIiKSwxPT0oMSZ0KX1mdW5jdGlvbiBnYyh0KXtyZXR1cm4gbmdEZXZNb2RlJiZhbih0LCJleHBlY3RlZCBudW1iZXIiKSwxfHR9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGhjKHQsZSl7aWYoIW5nRGV2TW9kZSl0aHJvdyBuZXcgRXJyb3IoIlRoaXMgbWV0aG9kIHNob3VsZCBiZSBndWFyZGVkIHdpdGggYG5nRGV2TW9kZWAgc28gdGhhdCBpdCBjYW4gYmUgdHJlZSBzaGFrZW4gaW4gcHJvZHVjdGlvbiEiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVidWciLHt2YWx1ZTplLGVudW1lcmFibGU6ITF9KX1mdW5jdGlvbiBiYyh0LGUpe2lmKCFuZ0Rldk1vZGUpdGhyb3cgbmV3IEVycm9yKCJUaGlzIG1ldGhvZCBzaG91bGQgYmUgZ3VhcmRlZCB3aXRoIGBuZ0Rldk1vZGVgIHNvIHRoYXQgaXQgY2FuIGJlIHRyZWUgc2hha2VuIGluIHByb2R1Y3Rpb24hIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImRlYnVnIix7Z2V0OmUsZW51bWVyYWJsZTohMX0pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCB5Yz0oInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fCEhbmdEZXZNb2RlKSYmVW4oKTtsZXQgX2MsQ2MsTWM7ZnVuY3Rpb24gdmModCl7aWYobnVsbD09dClyZXR1cm4iIjtjb25zdCBlPXQubGFzdEluZGV4T2YoIl9UZW1wbGF0ZSIpO3JldHVybiJfIisoLTE9PT1lP3Q6dC5zdWJzdHIoMCxlKSl9ZnVuY3Rpb24geGModCxlKXtjb25zdCBuPXQudFZpZXdfLmRhdGEsbz1bXSxpPWU/dC5jbGFzc0JpbmRpbmdzOnQuc3R5bGVCaW5kaW5ncyxhPWNjKGkpLHI9bWMoaSk7bGV0IHM9MCE9PXIsbD1zP3I6YTtmb3IoOzAhPT1sOyl7Y29uc3QgdD1uW2wrMV07by51bnNoaWZ0KHtrZXk6bltsXSxpbmRleDpsLGlzVGVtcGxhdGU6cyxwcmV2RHVwbGljYXRlOmRjKHQpLG5leHREdXBsaWNhdGU6ZmModCksbmV4dEluZGV4Om1jKHQpLHByZXZJbmRleDpjYyh0KX0pLGw9PT1hJiYocz0hMSksbD1jYyh0KX1yZXR1cm4gby5wdXNoKChlP3QucmVzaWR1YWxDbGFzc2VzOnQucmVzaWR1YWxTdHlsZXMpfHxudWxsKSxvfWZ1bmN0aW9uIE9jKHQsZSl7Zm9yKDt0OyllLnB1c2godC50ZW1wbGF0ZV8pLHQ9dC5uZXh0fWNvbnN0IFBjPXljJiZ0bCgiVFZpZXdEYXRhIil8fG51bGw7bGV0IHdjO2NvbnN0IGtjPXljJiZ0bCgiTFZpZXdCbHVlcHJpbnQiKXx8bnVsbCxTYz15YyYmdGwoIk1hdGNoZXNBcnJheSIpfHxudWxsLERjPXljJiZ0bCgiVFZpZXdDb21wb25lbnRzIil8fG51bGwsRWM9eWMmJnRsKCJUTm9kZUxvY2FsTmFtZXMiKXx8bnVsbCxSYz15YyYmdGwoIlROb2RlSW5pdGlhbElucHV0cyIpfHxudWxsO3ljJiZ0bCgiVE5vZGVJbml0aWFsRGF0YSIpO2NvbnN0IEFjPXljJiZ0bCgiTENsZWFudXAiKXx8bnVsbCxUYz15YyYmdGwoIlRDbGVhbnVwIil8fG51bGw7ZnVuY3Rpb24gTmModCl7aWYodCl7Y29uc3QgZT10LmRlYnVnO3JldHVybiBobihlLCJPYmplY3QgZG9lcyBub3QgaGF2ZSBhIGRlYnVnIHJlcHJlc2VudGF0aW9uLiIpLGV9cmV0dXJuIHR9ZnVuY3Rpb24gemModCxlPSExKXtjb25zdCBuPWVpKHQpO2lmKG4pc3dpdGNoKG4ubm9kZVR5cGUpe2Nhc2UgTm9kZS5URVhUX05PREU6cmV0dXJuIG4udGV4dENvbnRlbnQ7Y2FzZSBOb2RlLkNPTU1FTlRfTk9ERTpyZXR1cm5gXHgzYyEtLSR7bi50ZXh0Q29udGVudH0tLVx4M2VgO2Nhc2UgTm9kZS5FTEVNRU5UX05PREU6Y29uc3QgdD1uLm91dGVySFRNTDtyZXR1cm4gZT90OnQuc3BsaXQoIj4iK24uaW5uZXJIVE1MKyI8IilbMF0rIj4ifXJldHVybiBudWxsfWNsYXNzIElje2NvbnN0cnVjdG9yKHQpe3RoaXMuX3Jhd19sVmlldz10fWdldCBmbGFncygpe2NvbnN0IHQ9dGhpcy5fcmF3X2xWaWV3WzJdO3JldHVybntfX3Jhd19fZmxhZ3NfXzp0LGluaXRQaGFzZVN0YXRlOjMmdCxjcmVhdGlvbk1vZGU6ISEoNCZ0KSxmaXJzdFZpZXdQYXNzOiEhKDgmdCksY2hlY2tBbHdheXM6ISEoMTYmdCksZGlydHk6ISEoNjQmdCksYXR0YWNoZWQ6ISEoMTI4JnQpLGRlc3Ryb3llZDohISgyNTYmdCksaXNSb290OiEhKDUxMiZ0KSxpbmRleFdpdGhpbkluaXRQaGFzZTp0Pj4xMX19Z2V0IHBhcmVudCgpe3JldHVybiBOYyh0aGlzLl9yYXdfbFZpZXdbM10pfWdldCBob3N0SFRNTCgpe3JldHVybiB6Yyh0aGlzLl9yYXdfbFZpZXdbMF0sITApfWdldCBodG1sKCl7cmV0dXJuKHRoaXMubm9kZXN8fFtdKS5tYXAoSGMpLmpvaW4oIiIpfWdldCBjb250ZXh0KCl7cmV0dXJuIHRoaXMuX3Jhd19sVmlld1s4XX1nZXQgbm9kZXMoKXtjb25zdCB0PXRoaXMuX3Jhd19sVmlldztyZXR1cm4gTGModFsxXS5maXJzdENoaWxkLHQpfWdldCB0ZW1wbGF0ZSgpe3JldHVybiB0aGlzLnRWaWV3LnRlbXBsYXRlX31nZXQgdFZpZXcoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzFdfWdldCBjbGVhbnVwKCl7cmV0dXJuIHRoaXMuX3Jhd19sVmlld1s3XX1nZXQgaW5qZWN0b3IoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzldfWdldCByZW5kZXJlckZhY3RvcnkoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzEwXX1nZXQgcmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzExXX1nZXQgc2FuaXRpemVyKCl7cmV0dXJuIHRoaXMuX3Jhd19sVmlld1sxMl19Z2V0IGNoaWxkSGVhZCgpe3JldHVybiBOYyh0aGlzLl9yYXdfbFZpZXdbMTNdKX1nZXQgbmV4dCgpe3JldHVybiBOYyh0aGlzLl9yYXdfbFZpZXdbNF0pfWdldCBjaGlsZFRhaWwoKXtyZXR1cm4gTmModGhpcy5fcmF3X2xWaWV3WzE0XSl9Z2V0IGRlY2xhcmF0aW9uVmlldygpe3JldHVybiBOYyh0aGlzLl9yYXdfbFZpZXdbMTVdKX1nZXQgcXVlcmllcygpe3JldHVybiB0aGlzLl9yYXdfbFZpZXdbMTldfWdldCB0SG9zdCgpe3JldHVybiB0aGlzLl9yYXdfbFZpZXdbNl19Z2V0IGRlY2xzKCl7cmV0dXJuIEZjKHRoaXMudFZpZXcsdGhpcy5fcmF3X2xWaWV3LGdvLHRoaXMudFZpZXcuYmluZGluZ1N0YXJ0SW5kZXgpfWdldCB2YXJzKCl7cmV0dXJuIEZjKHRoaXMudFZpZXcsdGhpcy5fcmF3X2xWaWV3LHRoaXMudFZpZXcuYmluZGluZ1N0YXJ0SW5kZXgsdGhpcy50Vmlldy5leHBhbmRvU3RhcnRJbmRleCl9Z2V0IGV4cGFuZG8oKXtyZXR1cm4gRmModGhpcy50Vmlldyx0aGlzLl9yYXdfbFZpZXcsdGhpcy50Vmlldy5leHBhbmRvU3RhcnRJbmRleCx0aGlzLl9yYXdfbFZpZXcubGVuZ3RoKX1nZXQgY2hpbGRWaWV3cygpe2NvbnN0IHQ9W107bGV0IGU9dGhpcy5jaGlsZEhlYWQ7Zm9yKDtlOyl0LnB1c2goZSksZT1lLm5leHQ7cmV0dXJuIHR9fWZ1bmN0aW9uIEhjKHQpe2lmKCJFbGVtZW50Q29udGFpbmVyIj09PXQudHlwZSlyZXR1cm4odC5jaGlsZHJlbnx8W10pLm1hcChIYykuam9pbigiIik7aWYoIkljdUNvbnRhaW5lciI9PT10LnR5cGUpdGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKTtyZXR1cm4gemModC5uYXRpdmUsITApfHwiIn1mdW5jdGlvbiBGYyh0LGUsbixvKXtsZXQgaT1bXTtmb3IobGV0IGE9bjthPG87YSsrKWkucHVzaCh7aW5kZXg6YSx0OnQuZGF0YVthXSxsOmVbYV19KTtyZXR1cm57c3RhcnQ6bixlbmQ6byxsZW5ndGg6by1uLGNvbnRlbnQ6aX19ZnVuY3Rpb24gTGModCxlKXtpZih0KXtjb25zdCBuPVtdO2xldCBvPXQ7Zm9yKDtvOyluLnB1c2goQmMobyxlKSksbz1vLm5leHQ7cmV0dXJuIG59cmV0dXJuW119ZnVuY3Rpb24gQmModCxlKXtjb25zdCBuPWVpKGVbdC5pbmRleF0pLG89W10saT1bXSxhPWVbMV07Zm9yKGxldCBuPXQuZGlyZWN0aXZlU3RhcnQ7bjx0LmRpcmVjdGl2ZUVuZDtuKyspby5wdXNoKGEuZGF0YVtuXS50eXBlKSxpLnB1c2goZVtuXSk7cmV0dXJue2h0bWw6emMobiksdHlwZTpvYSh0LnR5cGUpLHROb2RlOnQsbmF0aXZlOm4sY2hpbGRyZW46TGModC5jaGlsZCxlKSxmYWN0b3JpZXM6byxpbnN0YW5jZXM6aSxpbmplY3RvcjpWYyh0LGEsZSksZ2V0IGluamVjdG9yUmVzb2x1dGlvblBhdGgoKXtyZXR1cm4gdC5kZWJ1Z05vZGVJbmplY3RvclBhdGgoZSl9fX1mdW5jdGlvbiBWYyh0LGUsbil7Y29uc3Qgbz1bXTtmb3IobGV0IG49dC5wcm92aWRlckluZGV4U3RhcnRfO248dC5wcm92aWRlckluZGV4RW5kXztuKyspby5wdXNoKGUuZGF0YVtuXSk7Y29uc3QgaT1bXTtmb3IobGV0IG49dC5wcm92aWRlckluZGV4RW5kXztuPHQuZGlyZWN0aXZlRW5kO24rKylpLnB1c2goZS5kYXRhW25dKTtyZXR1cm57Ymxvb206VWMobix0LmluamVjdG9ySW5kZXgpLGN1bXVsYXRpdmVCbG9vbTpVYyhlLmRhdGEsdC5pbmplY3RvckluZGV4KSxwcm92aWRlcnM6aSx2aWV3UHJvdmlkZXJzOm8scGFyZW50SW5qZWN0b3JJbmRleDpuW3QucHJvdmlkZXJJbmRleFN0YXJ0Xy0xXX19ZnVuY3Rpb24gamModCxlKXtjb25zdCBuPXRbZV07aWYoIm51bWJlciIhPXR5cGVvZiBuKXJldHVybiI/Pz8/Pz8/PyI7Y29uc3Qgbz0iMDAwMDAwMDAiK24udG9TdHJpbmcoMik7cmV0dXJuIG8uc3Vic3RyaW5nKG8ubGVuZ3RoLTgpfWZ1bmN0aW9uIFVjKHQsZSl7cmV0dXJuIGU8MD8iTk9fTk9ERV9JTkpFQ1RPUiI6YCR7amModCxlKzcpfV8ke2pjKHQsZSs2KX1fJHtqYyh0LGUrNSl9XyR7amModCxlKzQpfV8ke2pjKHQsZSszKX1fJHtqYyh0LGUrMil9XyR7amModCxlKzEpfV8ke2pjKHQsZSswKX1gfWNsYXNzIEdje2NvbnN0cnVjdG9yKHQpe3RoaXMuX3Jhd19sQ29udGFpbmVyPXR9Z2V0IGhhc1RyYW5zcGxhbnRlZFZpZXdzKCl7cmV0dXJuIHRoaXMuX3Jhd19sQ29udGFpbmVyWzJdfWdldCB2aWV3cygpe3JldHVybiB0aGlzLl9yYXdfbENvbnRhaW5lci5zbGljZShibykubWFwKE5jKX1nZXQgcGFyZW50KCl7cmV0dXJuIE5jKHRoaXMuX3Jhd19sQ29udGFpbmVyWzNdKX1nZXQgbW92ZWRWaWV3cygpe3JldHVybiB0aGlzLl9yYXdfbENvbnRhaW5lcls5XX1nZXQgaG9zdCgpe3JldHVybiB0aGlzLl9yYXdfbENvbnRhaW5lclswXX1nZXQgbmF0aXZlKCl7cmV0dXJuIHRoaXMuX3Jhd19sQ29udGFpbmVyWzddfWdldCBuZXh0KCl7cmV0dXJuIE5jKHRoaXMuX3Jhd19sQ29udGFpbmVyWzRdKX19Y29uc3QgV2M9UHJvbWlzZS5yZXNvbHZlKG51bGwpO2Z1bmN0aW9uIFljKHQsZSl7Y29uc3Qgbj10LmNvbnRlbnRRdWVyaWVzO2lmKG51bGwhPT1uKWZvcihsZXQgbz0wO288bi5sZW5ndGg7bys9Mil7Y29uc3QgaT1uW29dLGE9bltvKzFdO2lmKC0xIT09YSl7Y29uc3Qgbj10LmRhdGFbYV07bmdEZXZNb2RlJiZobihuLCJEaXJlY3RpdmVEZWYgbm90IGZvdW5kLiIpLG5nRGV2TW9kZSYmaG4obi5jb250ZW50UXVlcmllcywiY29udGVudFF1ZXJpZXMgZnVuY3Rpb24gc2hvdWxkIGJlIGRlZmluZWQiKSx6aShpKSxuLmNvbnRlbnRRdWVyaWVzKDIsZVthXSxhKX19fWZ1bmN0aW9uIHFjKHQsZSxuLG8saSxhLHIscyxsLGMpe2NvbnN0IGQ9bmdEZXZNb2RlPyhmdW5jdGlvbiBwKHQpe3JldHVybihmdW5jdGlvbiBlKHQsbil7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdm9pZCAwPT09TWMmJihNYz1uZXcodGwoIkxSb290VmlldyIpKSksTWM7Y2FzZSAxOnZvaWQgMD09PV9jJiYoX2M9bmV3IE1hcCk7bGV0IHQ9X2MuZ2V0KG4pO3JldHVybiB2b2lkIDA9PT10JiYodD1uZXcodGwoIkxDb21wb25lbnRWaWV3Iit2YyhuKSkpLF9jLnNldChuLHQpKSx0O2Nhc2UgMjp2b2lkIDA9PT1DYyYmKENjPW5ldyBNYXApO2xldCBlPUNjLmdldChuKTtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9bmV3KHRsKCJMRW1iZWRkZWRWaWV3Iit2YyhuKSkpLENjLnNldChuLGUpKSxlfX0pKHQudHlwZSx0LnRlbXBsYXRlJiZ0LnRlbXBsYXRlLm5hbWUpLmNvbmNhdCh0LmJsdWVwcmludCl9KShlKTplLmJsdWVwcmludC5zbGljZSgpO3JldHVybiBkWzBdPWksZFsyXT0xNDB8byxkaShkKSxuZ0Rldk1vZGUmJmUuZGVjbFROb2RlJiZ0JiZPbyhlLmRlY2xUTm9kZSx0KSxkWzNdPWRbMTVdPXQsZFs4XT1uLGRbMTBdPXJ8fHQmJnRbMTBdLG5nRGV2TW9kZSYmaG4oZFsxMF0sIlJlbmRlcmVyRmFjdG9yeSBpcyByZXF1aXJlZCIpLGRbMTFdPXN8fHQmJnRbMTFdLG5nRGV2TW9kZSYmaG4oZFsxMV0sIlJlbmRlcmVyIGlzIHJlcXVpcmVkIiksZFsxMl09bHx8dCYmdFsxMl18fG51bGwsZFs5XT1jfHx0JiZ0WzldfHxudWxsLGRbNl09YSxuZ0Rldk1vZGUmJmxuKDIhPWUudHlwZXx8bnVsbCE9PXQsITAsIkVtYmVkZGVkIHZpZXdzIG11c3QgaGF2ZSBwYXJlbnRMVmlldyIpLGRbMTZdPTI9PWUudHlwZT90WzE2XTpkLG5nRGV2TW9kZSYmKGZ1bmN0aW9uIG0odCl7aGModCxuZXcgSWModCkpfSkoZCksZH1mdW5jdGlvbiBaYyh0LGUsbixvLGkpe25nRGV2TW9kZSYmMCE9PWUmJmduKGUsZ28sIlROb2RlcyBjYW4ndCBiZSBpbiB0aGUgTFZpZXcgaGVhZGVyLiIpLG5nRGV2TW9kZSYmKGZ1bmN0aW9uIGEodCl7MiE9PXQmJjEhPT10JiY0IT09dCYmOCE9PXQmJjMyIT09dCYmMTYhPT10JiY2NCE9PXQmJmJuKGBFeHBlY3RlZCBUTm9kZVR5cGUgdG8gaGF2ZSBvbmx5IGEgc2luZ2xlIHR5cGUgc2VsZWN0ZWQsIGJ1dCBnb3QgJHtvYSh0KX0uYCl9KShuKTtsZXQgcj10LmRhdGFbZV07aWYobnVsbD09PXIpcj1YYyh0LGUsbixvLGkpLChmdW5jdGlvbiBzKCl7cmV0dXJuIG1pLmxGcmFtZS5pbkkxOG59KSgpJiYoci5mbGFnc3w9NjQpO2Vsc2UgaWYoNjQmci50eXBlKXtyLnR5cGU9bixyLnZhbHVlPW8sci5hdHRycz1pO2NvbnN0IGE9X2koKTtyLmluamVjdG9ySW5kZXg9bnVsbD09PWE/LTE6YS5pbmplY3RvckluZGV4LG5nRGV2TW9kZSYmUG8ocix0KSxuZ0Rldk1vZGUmJmxuKGUsci5pbmRleCwiRXhwZWN0aW5nIHNhbWUgaW5kZXgiKX1yZXR1cm4gQ2kociwhMCkscn1mdW5jdGlvbiBYYyh0LGUsbixvLGkpe2NvbnN0IGE9eWkoKSxyPU1pKCkscz10LmRhdGFbZV09KGZ1bmN0aW9uIGwodCxlLG4sbyxpLGEpe25nRGV2TW9kZSYmMCE9PW8mJmduKG8sZ28sIlROb2RlcyBjYW4ndCBiZSBpbiB0aGUgTFZpZXcgaGVhZGVyLiIpLG5nRGV2TW9kZSYmcG4oYSx2b2lkIDAsIid1bmRlZmluZWQnIGlzIG5vdCB2YWxpZCB2YWx1ZSBmb3IgJ2F0dHJzJyIpLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnROb2RlKyssbmdEZXZNb2RlJiZlJiZQbyhlLHQpO2xldCByPWU/ZS5pbmplY3RvckluZGV4Oi0xO2NvbnN0IHM9bmdEZXZNb2RlP25ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYix5LF8sQyxNLHYseCxPLFAsdyxrLFMsRCxFLFIpe3RoaXMudFZpZXdfPXQsdGhpcy50eXBlPWUsdGhpcy5pbmRleD1uLHRoaXMuaW5zZXJ0QmVmb3JlSW5kZXg9byx0aGlzLmluamVjdG9ySW5kZXg9aSx0aGlzLmRpcmVjdGl2ZVN0YXJ0PWEsdGhpcy5kaXJlY3RpdmVFbmQ9cix0aGlzLmRpcmVjdGl2ZVN0eWxpbmdMYXN0PXMsdGhpcy5wcm9wZXJ0eUJpbmRpbmdzPWwsdGhpcy5mbGFncz1jLHRoaXMucHJvdmlkZXJJbmRleGVzPWQsdGhpcy52YWx1ZT1wLHRoaXMuYXR0cnM9bSx0aGlzLm1lcmdlZEF0dHJzPXUsdGhpcy5sb2NhbE5hbWVzPWYsdGhpcy5pbml0aWFsSW5wdXRzPWcsdGhpcy5pbnB1dHM9aCx0aGlzLm91dHB1dHM9Yix0aGlzLnRWaWV3cz15LHRoaXMubmV4dD1fLHRoaXMucHJvamVjdGlvbk5leHQ9Qyx0aGlzLmNoaWxkPU0sdGhpcy5wYXJlbnQ9dix0aGlzLnByb2plY3Rpb249eCx0aGlzLnN0eWxlcz1PLHRoaXMuc3R5bGVzV2l0aG91dEhvc3Q9UCx0aGlzLnJlc2lkdWFsU3R5bGVzPXcsdGhpcy5jbGFzc2VzPWssdGhpcy5jbGFzc2VzV2l0aG91dEhvc3Q9Uyx0aGlzLnJlc2lkdWFsQ2xhc3Nlcz1ELHRoaXMuY2xhc3NCaW5kaW5ncz1FLHRoaXMuc3R5bGVCaW5kaW5ncz1SfWRlYnVnTm9kZUluamVjdG9yUGF0aCh0KXtjb25zdCBlPVtdO2xldCBuPXlhKHRoaXMsdCk7aWYoLTE9PT1uKXtjb25zdCBlPV9hKHRoaXMsdCk7ZSE9PWVhJiYobj1wYShlKSx0PW1hKGUsdCkpfWZvcig7LTEhPT1uOyl7bmdEZXZNb2RlJiZIbyh0LG4pLGUucHVzaChCYyh0WzFdLmRhdGFbbis4XSx0KSk7Y29uc3Qgbz10W24rOF07bz09PWVhP249LTE6KG49cGEobyksdD1tYShvLHQpKX1yZXR1cm4gZX1nZXQgdHlwZV8oKXtyZXR1cm4gb2EodGhpcy50eXBlKXx8YFROb2RlVHlwZS4/JHt0aGlzLnR5cGV9P2B9Z2V0IGZsYWdzXygpe2NvbnN0IHQ9W107cmV0dXJuIDE2JnRoaXMuZmxhZ3MmJnQucHVzaCgiVE5vZGVGbGFncy5oYXNDbGFzc0lucHV0IiksOCZ0aGlzLmZsYWdzJiZ0LnB1c2goIlROb2RlRmxhZ3MuaGFzQ29udGVudFF1ZXJ5IiksMzImdGhpcy5mbGFncyYmdC5wdXNoKCJUTm9kZUZsYWdzLmhhc1N0eWxlSW5wdXQiKSwxMjgmdGhpcy5mbGFncyYmdC5wdXNoKCJUTm9kZUZsYWdzLmhhc0hvc3RCaW5kaW5ncyIpLDImdGhpcy5mbGFncyYmdC5wdXNoKCJUTm9kZUZsYWdzLmlzQ29tcG9uZW50SG9zdCIpLDEmdGhpcy5mbGFncyYmdC5wdXNoKCJUTm9kZUZsYWdzLmlzRGlyZWN0aXZlSG9zdCIpLDY0JnRoaXMuZmxhZ3MmJnQucHVzaCgiVE5vZGVGbGFncy5pc0RldGFjaGVkIiksNCZ0aGlzLmZsYWdzJiZ0LnB1c2goIlROb2RlRmxhZ3MuaXNQcm9qZWN0ZWQiKSx0LmpvaW4oInwiKX1nZXQgdGVtcGxhdGVfKCl7aWYoMSZ0aGlzLnR5cGUpcmV0dXJuIHRoaXMudmFsdWU7Y29uc3QgdD1bXSxlPSJzdHJpbmciPT10eXBlb2YgdGhpcy52YWx1ZSYmdGhpcy52YWx1ZXx8dGhpcy50eXBlXztpZih0LnB1c2goIjwiLGUpLHRoaXMuZmxhZ3MmJnQucHVzaCgiICIsdGhpcy5mbGFnc18pLHRoaXMuYXR0cnMpZm9yKGxldCBlPTA7ZTx0aGlzLmF0dHJzLmxlbmd0aDspe2NvbnN0IG49dGhpcy5hdHRyc1tlKytdO2lmKCJudW1iZXIiPT10eXBlb2YgbilicmVhaztjb25zdCBvPXRoaXMuYXR0cnNbZSsrXTt0LnB1c2goIiAiLG4sJz0iJyxvLCciJyl9cmV0dXJuIHQucHVzaCgiPiIpLE9jKHRoaXMuY2hpbGQsdCksdC5wdXNoKCI8LyIsZSwiPiIpLHQuam9pbigiIil9Z2V0IHN0eWxlQmluZGluZ3NfKCl7cmV0dXJuIHhjKHRoaXMsITEpfWdldCBjbGFzc0JpbmRpbmdzXygpe3JldHVybiB4Yyh0aGlzLCEwKX1nZXQgcHJvdmlkZXJJbmRleFN0YXJ0Xygpe3JldHVybiAxMDQ4NTc1JnRoaXMucHJvdmlkZXJJbmRleGVzfWdldCBwcm92aWRlckluZGV4RW5kXygpe3JldHVybiB0aGlzLnByb3ZpZGVySW5kZXhTdGFydF8rKHRoaXMucHJvdmlkZXJJbmRleGVzPj4+MjApfX0odCxuLG8sbnVsbCxyLC0xLC0xLC0xLG51bGwsMCwwLGksYSxudWxsLG51bGwsdm9pZCAwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLGUsbnVsbCxudWxsLG51bGwsdm9pZCAwLG51bGwsbnVsbCx2b2lkIDAsMCwwKTp7dHlwZTpuLGluZGV4Om8saW5zZXJ0QmVmb3JlSW5kZXg6bnVsbCxpbmplY3RvckluZGV4OnIsZGlyZWN0aXZlU3RhcnQ6LTEsZGlyZWN0aXZlRW5kOi0xLGRpcmVjdGl2ZVN0eWxpbmdMYXN0Oi0xLHByb3BlcnR5QmluZGluZ3M6bnVsbCxmbGFnczowLHByb3ZpZGVySW5kZXhlczowLHZhbHVlOmksYXR0cnM6YSxtZXJnZWRBdHRyczpudWxsLGxvY2FsTmFtZXM6bnVsbCxpbml0aWFsSW5wdXRzOnZvaWQgMCxpbnB1dHM6bnVsbCxvdXRwdXRzOm51bGwsdFZpZXdzOm51bGwsbmV4dDpudWxsLHByb2plY3Rpb25OZXh0Om51bGwsY2hpbGQ6bnVsbCxwYXJlbnQ6ZSxwcm9qZWN0aW9uOm51bGwsc3R5bGVzOm51bGwsc3R5bGVzV2l0aG91dEhvc3Q6bnVsbCxyZXNpZHVhbFN0eWxlczp2b2lkIDAsY2xhc3NlczpudWxsLGNsYXNzZXNXaXRob3V0SG9zdDpudWxsLHJlc2lkdWFsQ2xhc3Nlczp2b2lkIDAsY2xhc3NCaW5kaW5nczowLHN0eWxlQmluZGluZ3M6MH07cmV0dXJuIG5nRGV2TW9kZSYmT2JqZWN0LnNlYWwocyksc30pKHQscj9hOmEmJmEucGFyZW50LG4sZSxvLGkpO3JldHVybiBudWxsPT09dC5maXJzdENoaWxkJiYodC5maXJzdENoaWxkPXMpLG51bGwhPT1hJiYocj9udWxsPT1hLmNoaWxkJiZudWxsIT09cy5wYXJlbnQmJihhLmNoaWxkPXMpOm51bGw9PT1hLm5leHQmJihhLm5leHQ9cykpLHN9ZnVuY3Rpb24gS2ModCxlLG4sbyl7aWYoMD09PW4pcmV0dXJuLTE7bmdEZXZNb2RlJiYoQW8odCksZG4odCxlWzFdLCJgTFZpZXdgIG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIGBUVmlld2AhIiksbG4odC5kYXRhLmxlbmd0aCxlLmxlbmd0aCwiRXhwZWN0aW5nIExWaWV3IHRvIGJlIHNhbWUgc2l6ZSBhcyBUVmlldyIpLGxuKHQuZGF0YS5sZW5ndGgsdC5ibHVlcHJpbnQubGVuZ3RoLCJFeHBlY3RpbmcgQmx1ZXByaW50IHRvIGJlIHNhbWUgc2l6ZSBhcyBUVmlldyIpLFRvKHQpKTtjb25zdCBpPWUubGVuZ3RoO2ZvcihsZXQgaT0wO2k8bjtpKyspZS5wdXNoKG8pLHQuYmx1ZXByaW50LnB1c2gobyksdC5kYXRhLnB1c2gobnVsbCk7cmV0dXJuIGl9ZnVuY3Rpb24gSmModCxlLG4pe25nRGV2TW9kZSYmbG4oc2koZSksITAsIlNob3VsZCBiZSBydW4gaW4gY3JlYXRpb24gbW9kZSIpLEZpKGUpO3RyeXtjb25zdCBvPXQudmlld1F1ZXJ5O251bGwhPT1vJiZOZCgxLG8sbik7Y29uc3QgaT10LnRlbXBsYXRlO251bGwhPT1pJiZ0ZCh0LGUsaSwxLG4pLHQuZmlyc3RDcmVhdGVQYXNzJiYodC5maXJzdENyZWF0ZVBhc3M9ITEpLHQuc3RhdGljQ29udGVudFF1ZXJpZXMmJlljKHQsZSksdC5zdGF0aWNWaWV3UXVlcmllcyYmTmQoMix0LnZpZXdRdWVyeSxuKTtjb25zdCBhPXQuY29tcG9uZW50cztudWxsIT09YSYmKGZ1bmN0aW9uIG8odCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKylTZCh0LGVbbl0pfSkoZSxhKX1jYXRjaChlKXt0aHJvdyB0LmZpcnN0Q3JlYXRlUGFzcyYmKHQuaW5jb21wbGV0ZUZpcnN0UGFzcz0hMCx0LmZpcnN0Q3JlYXRlUGFzcz0hMSksZX1maW5hbGx5e2VbMl0mPS01LFVpKCl9fWZ1bmN0aW9uIFFjKHQsZSxuLG8pe25nRGV2TW9kZSYmbG4oc2koZSksITEsIlNob3VsZCBiZSBydW4gaW4gdXBkYXRlIG1vZGUiKTtjb25zdCBpPWVbMl07aWYoMjU2PT0oMjU2JmkpKXJldHVybjtGaShlKTtjb25zdCBhPXhpKCk7dHJ5e2RpKGUpLGtpKHQuYmluZGluZ1N0YXJ0SW5kZXgpLG51bGwhPT1uJiZ0ZCh0LGUsbiwyLG8pO2NvbnN0IHI9Mz09KDMmaSk7aWYoIWEpaWYocil7Y29uc3Qgbj10LnByZU9yZGVyQ2hlY2tIb29rcztudWxsIT09biYmS2koZSxuLG51bGwpfWVsc2V7Y29uc3Qgbj10LnByZU9yZGVySG9va3M7bnVsbCE9PW4mJkppKGUsbiwwLG51bGwpLFFpKGUsMCl9aWYoKGZ1bmN0aW9uIHIodCl7Zm9yKGxldCBlPWZsKHQpO251bGwhPT1lO2U9Z2woZSkpe2lmKCFlWzJdKWNvbnRpbnVlO2NvbnN0IHQ9ZVs5XTtuZ0Rldk1vZGUmJmhuKHQsIlRyYW5zcGxhbnRlZCBWaWV3IGZsYWdzIHNldCBidXQgbWlzc2luZyBNT1ZFRF9WSUVXUyIpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCBuPXRbZV0sbz1uWzNdO25nRGV2TW9kZSYmRG8obyksMD09KDEwMjQmblsyXSkmJnBpKG8sMSksblsyXXw9MTAyNH19fSkoZSksKGZ1bmN0aW9uIHModCl7Zm9yKGxldCBlPWZsKHQpO251bGwhPT1lO2U9Z2woZSkpZm9yKGxldCB0PWJvO3Q8ZS5sZW5ndGg7dCsrKXtjb25zdCBuPWVbdF0sbz1uWzFdO25nRGV2TW9kZSYmaG4obywiVFZpZXcgbXVzdCBiZSBhbGxvY2F0ZWQiKSxsaShuKSYmUWMobyxuLG8udGVtcGxhdGUsbls4XSl9fSkoZSksbnVsbCE9PXQuY29udGVudFF1ZXJpZXMmJlljKHQsZSksIWEpaWYocil7Y29uc3Qgbj10LmNvbnRlbnRDaGVja0hvb2tzO251bGwhPT1uJiZLaShlLG4pfWVsc2V7Y29uc3Qgbj10LmNvbnRlbnRIb29rcztudWxsIT09biYmSmkoZSxuLDEpLFFpKGUsMSl9IShmdW5jdGlvbiBsKHQsZSl7Y29uc3Qgbj10Lmhvc3RCaW5kaW5nT3BDb2RlcztpZihudWxsIT09bil0cnl7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspe2NvbnN0IG89blt0XTtpZihvPDApV2kofm8pO2Vsc2V7Y29uc3QgaT1vLGE9blsrK3RdLHI9blsrK3RdO1JpKGEsaSkscigyLGVbaV0pfX19ZmluYWxseXtXaSgtMSl9fSkodCxlKTtjb25zdCBzPXQuY29tcG9uZW50cztudWxsIT09cyYmKGZ1bmN0aW9uIGModCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl3ZCh0LGVbbl0pfSkoZSxzKTtjb25zdCBsPXQudmlld1F1ZXJ5O2lmKG51bGwhPT1sJiZOZCgyLGwsbyksIWEpaWYocil7Y29uc3Qgbj10LnZpZXdDaGVja0hvb2tzO251bGwhPT1uJiZLaShlLG4pfWVsc2V7Y29uc3Qgbj10LnZpZXdIb29rcztudWxsIT09biYmSmkoZSxuLDIpLFFpKGUsMil9ITA9PT10LmZpcnN0VXBkYXRlUGFzcyYmKHQuZmlyc3RVcGRhdGVQYXNzPSExKSxhfHwoZVsyXSY9LTczKSwxMDI0JmVbMl0mJihlWzJdJj0tMTAyNSxwaShlWzNdLC0xKSl9ZmluYWxseXtVaSgpfX1mdW5jdGlvbiAkYyh0LGUsbixvKXtjb25zdCBpPWVbMTBdLGE9IXhpKCkscj1zaShlKTt0cnl7YSYmIXImJmkuYmVnaW4mJmkuYmVnaW4oKSxyJiZKYyh0LGUsbyksUWModCxlLG4sbyl9ZmluYWxseXthJiYhciYmaS5lbmQmJmkuZW5kKCl9fWZ1bmN0aW9uIHRkKHQsZSxuLG8saSl7Y29uc3QgYT1HaSgpLHI9MiZvO3RyeXtXaSgtMSksciYmZS5sZW5ndGg+Z28mJnNjKHQsZSxnbyx4aSgpKSxxbyhyPzI6MCxpKSxuKG8saSl9ZmluYWxseXtXaShhKSxxbyhyPzM6MSxpKX19ZnVuY3Rpb24gZWQodCxlLG4pe2lmKENvKGUpKXtjb25zdCBvPWUuZGlyZWN0aXZlRW5kO2ZvcihsZXQgaT1lLmRpcmVjdGl2ZVN0YXJ0O2k8bztpKyspe2NvbnN0IGU9dC5kYXRhW2ldO2UuY29udGVudFF1ZXJpZXMmJmUuY29udGVudFF1ZXJpZXMoMSxuW2ldLGkpfX19ZnVuY3Rpb24gbmQodCxlLG4pe3VpKCkmJigoZnVuY3Rpb24gbyh0LGUsbixpKXtjb25zdCBhPW4uZGlyZWN0aXZlU3RhcnQscj1uLmRpcmVjdGl2ZUVuZDt0LmZpcnN0Q3JlYXRlUGFzc3x8aGEobixlKSxMcyhpLGUpO2NvbnN0IHM9bi5pbml0aWFsSW5wdXRzO2ZvcihsZXQgbz1hO288cjtvKyspe2NvbnN0IGk9dC5kYXRhW29dLHI9eG8oaSk7ciYmKG5nRGV2TW9kZSYmaWEobiwzKSxfZChlLG4saSkpO2NvbnN0IGw9U2EoZSx0LG8sbik7THMobCxlKSxudWxsIT09cyYmdmQoZSxvLWEsbCxpLG4scyksciYmKHJpKG4uaW5kZXgsZSlbOF09bCl9fSkodCxlLG4sb2kobixlKSksMTI4PT0oMTI4Jm4uZmxhZ3MpJiYoZnVuY3Rpb24gaSh0LGUsbil7Y29uc3Qgbz1uLmRpcmVjdGl2ZVN0YXJ0LGk9bi5kaXJlY3RpdmVFbmQsYT1uLmluZGV4LHI9KGZ1bmN0aW9uIHMoKXtyZXR1cm4gbWkubEZyYW1lLmN1cnJlbnREaXJlY3RpdmVJbmRleH0pKCk7dHJ5e1dpKGEpO2ZvcihsZXQgbj1vO248aTtuKyspe2NvbnN0IG89dC5kYXRhW25dLGk9ZVtuXTtBaShuKSxudWxsPT09by5ob3N0QmluZGluZ3MmJjA9PT1vLmhvc3RWYXJzJiZudWxsPT09by5ob3N0QXR0cnN8fGZkKG8saSl9fWZpbmFsbHl7V2koLTEpLEFpKHIpfX0pKHQsZSxuKSl9ZnVuY3Rpb24gb2QodCxlLG49b2kpe2NvbnN0IG89ZS5sb2NhbE5hbWVzO2lmKG51bGwhPT1vKXtsZXQgaT1lLmluZGV4KzE7Zm9yKGxldCBhPTA7YTxvLmxlbmd0aDthKz0yKXtjb25zdCByPW9bYSsxXSxzPS0xPT09cj9uKGUsdCk6dFtyXTt0W2krK109c319fWZ1bmN0aW9uIGlkKHQpe2NvbnN0IGU9dC50VmlldztyZXR1cm4gbnVsbD09PWV8fGUuaW5jb21wbGV0ZUZpcnN0UGFzcz90LnRWaWV3PWFkKDEsbnVsbCx0LnRlbXBsYXRlLHQuZGVjbHMsdC52YXJzLHQuZGlyZWN0aXZlRGVmcyx0LnBpcGVEZWZzLHQudmlld1F1ZXJ5LHQuc2NoZW1hcyx0LmNvbnN0cyk6ZX1mdW5jdGlvbiBhZCh0LGUsbixvLGksYSxyLHMsbCxjKXtuZ0Rldk1vZGUmJm5nRGV2TW9kZS50VmlldysrO2NvbnN0IGQ9Z28rbyxwPWQraSxtPShmdW5jdGlvbiB1KHQsZSl7Y29uc3Qgbj1uZ0Rldk1vZGU/bmV3IGtjOltdO2ZvcihsZXQgbz0wO288ZTtvKyspbi5wdXNoKG88dD9udWxsOmFjKTtyZXR1cm4gbn0pKGQscCksZj0iZnVuY3Rpb24iPT10eXBlb2YgYz9jKCk6YyxnPW1bMV09bmdEZXZNb2RlP25ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYix5LF8sQyxNLHYseCxPLFAsdyxrLFMsRCxFLFIpe3RoaXMudHlwZT10LHRoaXMuYmx1ZXByaW50PWUsdGhpcy50ZW1wbGF0ZT1uLHRoaXMucXVlcmllcz1vLHRoaXMudmlld1F1ZXJ5PWksdGhpcy5kZWNsVE5vZGU9YSx0aGlzLmRhdGE9cix0aGlzLmJpbmRpbmdTdGFydEluZGV4PXMsdGhpcy5leHBhbmRvU3RhcnRJbmRleD1sLHRoaXMuaG9zdEJpbmRpbmdPcENvZGVzPWMsdGhpcy5maXJzdENyZWF0ZVBhc3M9ZCx0aGlzLmZpcnN0VXBkYXRlUGFzcz1wLHRoaXMuc3RhdGljVmlld1F1ZXJpZXM9bSx0aGlzLnN0YXRpY0NvbnRlbnRRdWVyaWVzPXUsdGhpcy5wcmVPcmRlckhvb2tzPWYsdGhpcy5wcmVPcmRlckNoZWNrSG9va3M9Zyx0aGlzLmNvbnRlbnRIb29rcz1oLHRoaXMuY29udGVudENoZWNrSG9va3M9Yix0aGlzLnZpZXdIb29rcz15LHRoaXMudmlld0NoZWNrSG9va3M9Xyx0aGlzLmRlc3Ryb3lIb29rcz1DLHRoaXMuY2xlYW51cD1NLHRoaXMuY29udGVudFF1ZXJpZXM9dix0aGlzLmNvbXBvbmVudHM9eCx0aGlzLmRpcmVjdGl2ZVJlZ2lzdHJ5PU8sdGhpcy5waXBlUmVnaXN0cnk9UCx0aGlzLmZpcnN0Q2hpbGQ9dyx0aGlzLnNjaGVtYXM9ayx0aGlzLmNvbnN0cz1TLHRoaXMuaW5jb21wbGV0ZUZpcnN0UGFzcz1ELHRoaXMuX2RlY2xzPUUsdGhpcy5fdmFycz1SfWdldCB0ZW1wbGF0ZV8oKXtjb25zdCB0PVtdO3JldHVybiBPYyh0aGlzLmZpcnN0Q2hpbGQsdCksdC5qb2luKCIiKX1nZXQgdHlwZV8oKXtyZXR1cm4gaG9bdGhpcy50eXBlXXx8YFRWaWV3VHlwZS4/JHt0aGlzLnR5cGV9P2B9fSh0LG0sbixudWxsLHMsZSwoZnVuY3Rpb24gaCh0KXtyZXR1cm4gdm9pZCAwPT09d2MmJih3Yz1uZXcgUGMpLHdjLmNvbmNhdCh0KX0pKG0pLmZpbGwobnVsbCxkKSxkLHAsbnVsbCwhMCwhMCwhMSwhMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJmdW5jdGlvbiI9PXR5cGVvZiBhP2EoKTphLCJmdW5jdGlvbiI9PXR5cGVvZiByP3IoKTpyLG51bGwsbCxmLCExLG8saSk6e3R5cGU6dCxibHVlcHJpbnQ6bSx0ZW1wbGF0ZTpuLHF1ZXJpZXM6bnVsbCx2aWV3UXVlcnk6cyxkZWNsVE5vZGU6ZSxkYXRhOm0uc2xpY2UoKS5maWxsKG51bGwsZCksYmluZGluZ1N0YXJ0SW5kZXg6ZCxleHBhbmRvU3RhcnRJbmRleDpwLGhvc3RCaW5kaW5nT3BDb2RlczpudWxsLGZpcnN0Q3JlYXRlUGFzczohMCxmaXJzdFVwZGF0ZVBhc3M6ITAsc3RhdGljVmlld1F1ZXJpZXM6ITEsc3RhdGljQ29udGVudFF1ZXJpZXM6ITEscHJlT3JkZXJIb29rczpudWxsLHByZU9yZGVyQ2hlY2tIb29rczpudWxsLGNvbnRlbnRIb29rczpudWxsLGNvbnRlbnRDaGVja0hvb2tzOm51bGwsdmlld0hvb2tzOm51bGwsdmlld0NoZWNrSG9va3M6bnVsbCxkZXN0cm95SG9va3M6bnVsbCxjbGVhbnVwOm51bGwsY29udGVudFF1ZXJpZXM6bnVsbCxjb21wb25lbnRzOm51bGwsZGlyZWN0aXZlUmVnaXN0cnk6ImZ1bmN0aW9uIj09dHlwZW9mIGE/YSgpOmEscGlwZVJlZ2lzdHJ5OiJmdW5jdGlvbiI9PXR5cGVvZiByP3IoKTpyLGZpcnN0Q2hpbGQ6bnVsbCxzY2hlbWFzOmwsY29uc3RzOmYsaW5jb21wbGV0ZUZpcnN0UGFzczohMX07cmV0dXJuIG5nRGV2TW9kZSYmT2JqZWN0LnNlYWwoZyksZ31mdW5jdGlvbiByZCh0LGUsbixvKXtjb25zdCBpPUhkKGUpO251bGw9PT1uPyhuZ0Rldk1vZGUmJk9iamVjdC5mcmVlemUoRmQodCkpLGkucHVzaChvKSk6KGkucHVzaChuKSx0LmZpcnN0Q3JlYXRlUGFzcyYmRmQodCkucHVzaChvLGkubGVuZ3RoLTEpKX1mdW5jdGlvbiBzZCh0LGUsbil7Zm9yKGxldCBvIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShvKSl7Y29uc3QgaT10W29dOyhuPW51bGw9PT1uP3t9Om4pLmhhc093blByb3BlcnR5KG8pP25bb10ucHVzaChlLGkpOm5bb109W2UsaV19cmV0dXJuIG59ZnVuY3Rpb24gbGQodCxlLG4sbyxpLGEscixzKXtuZ0Rldk1vZGUmJnBuKGksYWMsIkluY29taW5nIHZhbHVlIHNob3VsZCBuZXZlciBiZSBOT19DSEFOR0UuIik7Y29uc3QgbD1vaShlLG4pO2xldCBjLGQ9ZS5pbnB1dHM7aWYoIXMmJm51bGwhPWQmJihjPWRbb10pKVZkKHQsbixjLG8saSksTW8oZSkmJihmdW5jdGlvbiBwKHQsZSl7bmdEZXZNb2RlJiZSbyh0KTtjb25zdCBuPXJpKGUsdCk7MTYmblsyXXx8KG5bMl18PTY0KX0pKG4sZS5pbmRleCksbmdEZXZNb2RlJiYoZnVuY3Rpb24gbSh0LGUsbixvLGkpe2lmKDcmbilmb3IobGV0IGE9MDthPG8ubGVuZ3RoO2ErPTIpY2QodCxlLG4sb1thKzFdLGkpfSkobixsLGUudHlwZSxjLGkpO2Vsc2UgaWYoMyZlLnR5cGUpe2lmKG89KGZ1bmN0aW9uIHUodCl7cmV0dXJuImNsYXNzIj09PXQ/ImNsYXNzTmFtZSI6ImZvciI9PT10PyJodG1sRm9yIjoiZm9ybWFjdGlvbiI9PT10PyJmb3JtQWN0aW9uIjoiaW5uZXJIdG1sIj09PXQ/ImlubmVySFRNTCI6InJlYWRvbmx5Ij09PXQ/InJlYWRPbmx5IjoidGFiaW5kZXgiPT09dD8idGFiSW5kZXgiOnR9KShvKSxuZ0Rldk1vZGUpe2lmKChmdW5jdGlvbiBmKHQpe2lmKHQudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCJvbiIpKXtjb25zdCBlPWBCaW5kaW5nIHRvIGV2ZW50IHByb3BlcnR5ICcke3R9JyBpcyBkaXNhbGxvd2VkIGZvciBzZWN1cml0eSByZWFzb25zLCBwbGVhc2UgdXNlICgke3Quc2xpY2UoMil9KT0uLi5cbklmICcke3R9JyBpcyBhIGRpcmVjdGl2ZSBpbnB1dCwgbWFrZSBzdXJlIHRoZSBkaXJlY3RpdmUgaXMgaW1wb3J0ZWQgYnkgdGhlIGN1cnJlbnQgbW9kdWxlLmA7dGhyb3cgbmV3IEVycm9yKGUpfX0pKG8pLCEoZnVuY3Rpb24gZyh0LGUsbixvKXtyZXR1cm4hKG51bGwhPT10LnNjaGVtYXMmJiEoZGQodCxvLnZhbHVlKXx8biBpbiBlfHxzYShuKSkmJiJ1bmRlZmluZWQiIT10eXBlb2YgTm9kZSYmbnVsbCE9PU5vZGUmJmUgaW5zdGFuY2VvZiBOb2RlKX0pKHQsbCxvLGUpKXJldHVybiB2b2lkIHBkKG8sZSk7bmdEZXZNb2RlLnJlbmRlcmVyU2V0UHJvcGVydHkrK31pPW51bGwhPXI/cihpLGUudmFsdWV8fCIiLG8pOmksJG8oYSk/YS5zZXRQcm9wZXJ0eShsLG8saSk6c2Eobyl8fChsLnNldFByb3BlcnR5P2wuc2V0UHJvcGVydHkobyxpKTpsW29dPWkpfWVsc2UgMTImZS50eXBlJiZuZ0Rldk1vZGUmJiFkZCh0LGUudmFsdWUpJiZwZChvLGUpfWZ1bmN0aW9uIGNkKHQsZSxuLG8saSl7Y29uc3QgYT10WzExXTtvPShmdW5jdGlvbiByKHQpe3JldHVybmBuZy1yZWZsZWN0LSR7dD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdC5yZXBsYWNlKGVsLCgoLi4udCk9PiItIit0WzFdLnRvTG93ZXJDYXNlKCkpKX0pKHQucmVwbGFjZSgvWyRAXS9nLCJfIikpfWB9KShvKTtjb25zdCBzPShmdW5jdGlvbiBsKHQpe3RyeXtyZXR1cm4gbnVsbCE9dD90LnRvU3RyaW5nKCkuc2xpY2UoMCwzMCk6dH1jYXRjaCh0KXtyZXR1cm4iW0VSUk9SXSBFeGNlcHRpb24gd2hpbGUgdHJ5aW5nIHRvIHNlcmlhbGl6ZSB0aGUgdmFsdWUifX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKShpKTtpZigzJm4pbnVsbD09aT8kbyhhKT9hLnJlbW92ZUF0dHJpYnV0ZShlLG8pOmUucmVtb3ZlQXR0cmlidXRlKG8pOiRvKGEpP2Euc2V0QXR0cmlidXRlKGUsbyxzKTplLnNldEF0dHJpYnV0ZShvLHMpO2Vsc2V7Y29uc3QgdD0kcyhgYmluZGluZ3M9JHtKU09OLnN0cmluZ2lmeSh7W29dOnN9LG51bGwsMil9YCk7JG8oYSk/YS5zZXRWYWx1ZShlLHQpOmUudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24gZGQodCxlKXtjb25zdCBuPXQuc2NoZW1hcztpZihudWxsIT09bilmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyl7Y29uc3Qgbz1uW3RdO2lmKG89PT1Lc3x8bz09PVhzJiZlJiZlLmluZGV4T2YoIi0iKT4tMSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBwZCh0LGUpe2NvbnNvbGUuZXJyb3IoUWUoIjMwMyIsYENhbid0IGJpbmQgdG8gJyR7dH0nIHNpbmNlIGl0IGlzbid0IGEga25vd24gcHJvcGVydHkgb2YgJyR7ZS52YWx1ZX0nLmApKX1mdW5jdGlvbiBtZCh0LGUsbixvKXtuZ0Rldk1vZGUmJkFvKHQpO2xldCBpPSExO2lmKHVpKCkpe2NvbnN0IGE9KGZ1bmN0aW9uIGEodCxlLG4pe25nRGV2TW9kZSYmQW8odCksbmdEZXZNb2RlJiZpYShuLDE1KTtjb25zdCBvPXQuZGlyZWN0aXZlUmVnaXN0cnk7bGV0IGk9bnVsbDtpZihvKWZvcihsZXQgYT0wO2E8by5sZW5ndGg7YSsrKXtjb25zdCByPW9bYV07ZWMobixyLnNlbGVjdG9ycywhMSkmJihpfHwoaT1uZ0Rldk1vZGU/bmV3IFNjOltdKSxDYShoYShuLGUpLHQsci50eXBlKSx4byhyKT8obmdEZXZNb2RlJiYoaWEobiwyLGAiJHtuLnZhbHVlfSIgdGFncyBjYW5ub3QgYmUgdXNlZCBhcyBjb21wb25lbnQgaG9zdHMuIFBsZWFzZSB1c2UgYSBkaWZmZXJlbnQgdGFnIHRvIGFjdGl2YXRlIHRoZSAke0dlKHIudHlwZSl9IGNvbXBvbmVudC5gKSwyJm4uZmxhZ3MmJnNsKG4pKSxnZCh0LG4pLGkudW5zaGlmdChyKSk6aS5wdXNoKHIpKX1yZXR1cm4gaX0pKHQsZSxuKSxyPW51bGw9PT1vP251bGw6eyIiOi0xfTtpZihudWxsIT09YSl7aT0hMCxiZChuLHQuZGF0YS5sZW5ndGgsYS5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7dCsrKXtjb25zdCBlPWFbdF07ZS5wcm92aWRlcnNSZXNvbHZlciYmZS5wcm92aWRlcnNSZXNvbHZlcihlKX1sZXQgbz0hMSxzPSExLGw9S2ModCxlLGEubGVuZ3RoLG51bGwpO25nRGV2TW9kZSYmZG4obCxuLmRpcmVjdGl2ZVN0YXJ0LCJUTm9kZS5kaXJlY3RpdmVTdGFydCBzaG91bGQgcG9pbnQgdG8ganVzdCBhbGxvY2F0ZWQgc3BhY2UiKTtmb3IobGV0IGk9MDtpPGEubGVuZ3RoO2krKyl7Y29uc3QgYz1hW2ldO24ubWVyZ2VkQXR0cnM9bGEobi5tZXJnZWRBdHRycyxjLmhvc3RBdHRycykseWQodCxuLGUsbCxjKSxoZChsLGMsciksbnVsbCE9PWMuY29udGVudFF1ZXJpZXMmJihuLmZsYWdzfD04KSxudWxsPT09Yy5ob3N0QmluZGluZ3MmJm51bGw9PT1jLmhvc3RBdHRycyYmMD09PWMuaG9zdFZhcnN8fChuLmZsYWdzfD0xMjgpO2NvbnN0IGQ9Yy50eXBlLnByb3RvdHlwZTshbyYmKGQubmdPbkNoYW5nZXN8fGQubmdPbkluaXR8fGQubmdEb0NoZWNrKSYmKCh0LnByZU9yZGVySG9va3N8fCh0LnByZU9yZGVySG9va3M9W10pKS5wdXNoKG4uaW5kZXgpLG89ITApLHN8fCFkLm5nT25DaGFuZ2VzJiYhZC5uZ0RvQ2hlY2t8fCgodC5wcmVPcmRlckNoZWNrSG9va3N8fCh0LnByZU9yZGVyQ2hlY2tIb29rcz1bXSkpLnB1c2gobi5pbmRleCkscz0hMCksbCsrfSEoZnVuY3Rpb24gcih0LGUpe25nRGV2TW9kZSYmQW8odCk7Y29uc3Qgbj1lLmRpcmVjdGl2ZVN0YXJ0LG89ZS5kaXJlY3RpdmVFbmQsaT10LmRhdGEsYT1lLmF0dHJzLHI9bmdEZXZNb2RlP25ldyBSYzpbXTtsZXQgcz1udWxsLGw9bnVsbDtmb3IobGV0IHQ9bjt0PG87dCsrKXtjb25zdCBuPWlbdF0sbz1uLmlucHV0cyxjPW51bGw9PT1hfHxLbChlKT9udWxsOnhkKG8sYSk7ci5wdXNoKGMpLHM9c2Qobyx0LHMpLGw9c2Qobi5vdXRwdXRzLHQsbCl9bnVsbCE9PXMmJihzLmhhc093blByb3BlcnR5KCJjbGFzcyIpJiYoZS5mbGFnc3w9MTYpLHMuaGFzT3duUHJvcGVydHkoInN0eWxlIikmJihlLmZsYWdzfD0zMikpLGUuaW5pdGlhbElucHV0cz1yLGUuaW5wdXRzPXMsZS5vdXRwdXRzPWx9KSh0LG4pfXImJihmdW5jdGlvbiBzKHQsZSxuKXtpZihlKXtjb25zdCBvPXQubG9jYWxOYW1lcz1uZ0Rldk1vZGU/bmV3IEVjOltdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9Mil7Y29uc3QgaT1uW2VbdCsxXV07aWYobnVsbD09aSl0aHJvdyBuZXcgS2UoIjMwMSIsYEV4cG9ydCBvZiBuYW1lICcke2VbdCsxXX0nIG5vdCBmb3VuZCFgKTtvLnB1c2goZVt0XSxpKX19fSkobixvLHIpfXJldHVybiBuLm1lcmdlZEF0dHJzPWxhKG4ubWVyZ2VkQXR0cnMsbi5hdHRycyksaX1mdW5jdGlvbiB1ZCh0LGUsbixvLGksYSl7bmdEZXZNb2RlJiZBbyh0KTtjb25zdCByPWEuaG9zdEJpbmRpbmdzO2lmKHIpe2xldCBuPXQuaG9zdEJpbmRpbmdPcENvZGVzO251bGw9PT1uJiYobj10Lmhvc3RCaW5kaW5nT3BDb2Rlcz1bXSk7Y29uc3QgYT1+ZS5pbmRleDsoZnVuY3Rpb24gcyh0KXtsZXQgZT10Lmxlbmd0aDtmb3IoO2U+MDspe2NvbnN0IG49dFstLWVdO2lmKCJudW1iZXIiPT10eXBlb2YgbiYmbjwwKXJldHVybiBufXJldHVybiAwfSkobikhPWEmJm4ucHVzaChhKSxuLnB1c2gobyxpLHIpfX1mdW5jdGlvbiBmZCh0LGUpe251bGwhPT10Lmhvc3RCaW5kaW5ncyYmdC5ob3N0QmluZGluZ3MoMSxlKX1mdW5jdGlvbiBnZCh0LGUpe25nRGV2TW9kZSYmQW8odCksZS5mbGFnc3w9MiwodC5jb21wb25lbnRzfHwodC5jb21wb25lbnRzPW5nRGV2TW9kZT9uZXcgRGM6W10pKS5wdXNoKGUuaW5kZXgpfWZ1bmN0aW9uIGhkKHQsZSxuKXtpZihuKXtpZihlLmV4cG9ydEFzKWZvcihsZXQgbz0wO288ZS5leHBvcnRBcy5sZW5ndGg7bysrKW5bZS5leHBvcnRBc1tvXV09dDt4byhlKSYmKG5bIiJdPXQpfX1mdW5jdGlvbiBiZCh0LGUsbil7bmdEZXZNb2RlJiZjbihuLHQuZGlyZWN0aXZlRW5kLXQuZGlyZWN0aXZlU3RhcnQsIlJlYWNoZWQgdGhlIG1heCBudW1iZXIgb2YgZGlyZWN0aXZlcyIpLHQuZmxhZ3N8PTEsdC5kaXJlY3RpdmVTdGFydD1lLHQuZGlyZWN0aXZlRW5kPWUrbix0LnByb3ZpZGVySW5kZXhlcz1lfWZ1bmN0aW9uIHlkKHQsZSxuLG8saSl7bmdEZXZNb2RlJiZnbihvLGdvLCJNdXN0IGJlIGluIEV4cGFuZG8gc2VjdGlvbiIpLHQuZGF0YVtvXT1pO2NvbnN0IGE9aS5mYWN0b3J5fHwoaS5mYWN0b3J5PUZvKGkudHlwZSwhMCkpLHI9bmV3IG5hKGEseG8oaSksbnVsbCk7dC5ibHVlcHJpbnRbb109cixuW29dPXIsdWQodCxlLDAsbyxLYyh0LG4saS5ob3N0VmFycyxhYyksaSl9ZnVuY3Rpb24gX2QodCxlLG4pe2NvbnN0IG89b2koZSx0KSxpPWlkKG4pLGE9dFsxMF0scj1EZCh0LHFjKHQsaSxudWxsLG4ub25QdXNoPzY0OjE2LG8sZSxhLGEuY3JlYXRlUmVuZGVyZXIobyxuKSxudWxsLG51bGwpKTt0W2UuaW5kZXhdPXJ9ZnVuY3Rpb24gQ2QodCxlLG4sbyxpLGEpe25nRGV2TW9kZSYmKHBuKG8sYWMsIkluY29taW5nIHZhbHVlIHNob3VsZCBuZXZlciBiZSBOT19DSEFOR0UuIiksKGZ1bmN0aW9uIHIodCl7aWYodC50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoIm9uIikpe2NvbnN0IGU9YEJpbmRpbmcgdG8gZXZlbnQgYXR0cmlidXRlICcke3R9JyBpcyBkaXNhbGxvd2VkIGZvciBzZWN1cml0eSByZWFzb25zLCBwbGVhc2UgdXNlICgke3Quc2xpY2UoMil9KT0uLi5gO3Rocm93IG5ldyBFcnJvcihlKX19KShuKSxpYSh0LDIsYEF0dGVtcHRlZCB0byBzZXQgYXR0cmlidXRlIFxgJHtufVxgIG9uIGEgY29udGFpbmVyIG5vZGUuIEhvc3QgYmluZGluZ3MgYXJlIG5vdCB2YWxpZCBvbiBuZy1jb250YWluZXIgb3IgbmctdGVtcGxhdGUuYCkpO2NvbnN0IHM9b2kodCxlKTtNZChlWzExXSxzLGEsdC52YWx1ZSxuLG8saSl9ZnVuY3Rpb24gTWQodCxlLG4sbyxpLGEscil7aWYobnVsbD09YSluZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlclJlbW92ZUF0dHJpYnV0ZSsrLCRvKHQpP3QucmVtb3ZlQXR0cmlidXRlKGUsaSxuKTplLnJlbW92ZUF0dHJpYnV0ZShpKTtlbHNle25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0QXR0cmlidXRlKys7Y29uc3Qgcz1udWxsPT1yPyRlKGEpOnIoYSxvfHwiIixpKTskbyh0KT90LnNldEF0dHJpYnV0ZShlLGkscyxuKTpuP2Uuc2V0QXR0cmlidXRlTlMobixpLHMpOmUuc2V0QXR0cmlidXRlKGkscyl9fWZ1bmN0aW9uIHZkKHQsZSxuLG8saSxhKXtjb25zdCByPWFbZV07aWYobnVsbCE9PXIpe2NvbnN0IGU9by5zZXRJbnB1dDtmb3IobGV0IGE9MDthPHIubGVuZ3RoOyl7Y29uc3Qgcz1yW2ErK10sbD1yW2ErK10sYz1yW2ErK107bnVsbCE9PWU/by5zZXRJbnB1dChuLGMscyxsKTpuW2xdPWMsbmdEZXZNb2RlJiZjZCh0LG9pKGksdCksaS50eXBlLGwsYyl9fX1mdW5jdGlvbiB4ZCh0LGUpe2xldCBuPW51bGwsbz0wO2Zvcig7bzxlLmxlbmd0aDspe2NvbnN0IGk9ZVtvXTtpZigwIT09aSlpZig1IT09aSl7aWYoIm51bWJlciI9PXR5cGVvZiBpKWJyZWFrO3QuaGFzT3duUHJvcGVydHkoaSkmJihudWxsPT09biYmKG49W10pLG4ucHVzaChpLHRbaV0sZVtvKzFdKSksbys9Mn1lbHNlIG8rPTI7ZWxzZSBvKz00fXJldHVybiBufWNvbnN0IE9kPSgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmVW4oKSYmdGwoIkxDb250YWluZXIiKTtmdW5jdGlvbiBQZCh0LGUsbixvKXtuZ0Rldk1vZGUmJlJvKGUpLG5nRGV2TW9kZSYmISRvKGVbMTFdKSYmeW4obik7Y29uc3QgaT1uZXcobmdEZXZNb2RlP09kOkFycmF5KSh0LCEwLCExLGUsbnVsbCwwLG8sbixudWxsLG51bGwpO3JldHVybiBuZ0Rldk1vZGUmJmxuKGkubGVuZ3RoLGJvLCJTaG91bGQgYWxsb2NhdGUgY29ycmVjdCBudW1iZXIgb2Ygc2xvdHMgZm9yIExDb250YWluZXIgaGVhZGVyLiIpLG5nRGV2TW9kZSYmKGZ1bmN0aW9uIGEodCl7aGModCxuZXcgR2ModCkpfSkoaSksaX1mdW5jdGlvbiB3ZCh0LGUpe25nRGV2TW9kZSYmbG4oc2kodCksITEsIlNob3VsZCBiZSBydW4gaW4gdXBkYXRlIG1vZGUiKTtjb25zdCBuPXJpKGUsdCk7aWYobGkobikpe2NvbnN0IHQ9blsxXTs4MCZuWzJdP1FjKHQsbix0LnRlbXBsYXRlLG5bOF0pOm5bNV0+MCYma2Qobil9fWZ1bmN0aW9uIGtkKHQpe2ZvcihsZXQgZT1mbCh0KTtudWxsIT09ZTtlPWdsKGUpKWZvcihsZXQgdD1ibzt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdO2lmKDEwMjQmblsyXSl7Y29uc3QgdD1uWzFdO25nRGV2TW9kZSYmaG4odCwiVFZpZXcgbXVzdCBiZSBhbGxvY2F0ZWQiKSxRYyh0LG4sdC50ZW1wbGF0ZSxuWzhdKX1lbHNlIG5bNV0+MCYma2Qobil9Y29uc3QgZT10WzFdLmNvbXBvbmVudHM7aWYobnVsbCE9PWUpZm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2NvbnN0IG89cmkoZVtuXSx0KTtsaShvKSYmb1s1XT4wJiZrZChvKX19ZnVuY3Rpb24gU2QodCxlKXtuZ0Rldk1vZGUmJmxuKHNpKHQpLCEwLCJTaG91bGQgYmUgcnVuIGluIGNyZWF0aW9uIG1vZGUiKTtjb25zdCBuPXJpKGUsdCksbz1uWzFdOyEoZnVuY3Rpb24gaSh0LGUpe2ZvcihsZXQgbj1lLmxlbmd0aDtuPHQuYmx1ZXByaW50Lmxlbmd0aDtuKyspZS5wdXNoKHQuYmx1ZXByaW50W25dKX0pKG8sbiksSmMobyxuLG5bOF0pfWZ1bmN0aW9uIERkKHQsZSl7cmV0dXJuIHRbMTNdP3RbMTRdWzRdPWU6dFsxM109ZSx0WzE0XT1lLGV9ZnVuY3Rpb24gRWQodCl7Zm9yKDt0Oyl7dFsyXXw9NjQ7Y29uc3QgZT1tbCh0KTtpZigwIT0oNTEyJnRbMl0pJiYhZSlyZXR1cm4gdDt0PWV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gUmQodCl7Zm9yKGxldCBlPTA7ZTx0LmNvbXBvbmVudHMubGVuZ3RoO2UrKyl7Y29uc3Qgbj10LmNvbXBvbmVudHNbZV0sbz1WcyhuKSxpPW9bMV07JGMoaSxvLGkudGVtcGxhdGUsbil9fWZ1bmN0aW9uIEFkKHQsZSxuKXtjb25zdCBvPWVbMTBdO28uYmVnaW4mJm8uYmVnaW4oKTt0cnl7UWModCxlLHQudGVtcGxhdGUsbil9Y2F0Y2godCl7dGhyb3cgQmQoZSx0KSx0fWZpbmFsbHl7by5lbmQmJm8uZW5kKCl9fWZ1bmN0aW9uIFRkKHQpe1JkKHRbOF0pfWZ1bmN0aW9uIE5kKHQsZSxuKXtuZ0Rldk1vZGUmJmhuKGUsIlZpZXcgcXVlcmllcyBmdW5jdGlvbiB0byBleGVjdXRlIG11c3QgYmUgZGVmaW5lZC4iKSx6aSgwKSxlKHQsbil9ZnVuY3Rpb24gemQodCxlLG4sbywuLi5pKXtpZihudWxsPT09dFtvXSYmKG51bGw9PWUuaW5wdXRzfHwhZS5pbnB1dHNbbl0pKXsoZS5wcm9wZXJ0eUJpbmRpbmdzfHwoZS5wcm9wZXJ0eUJpbmRpbmdzPVtdKSkucHVzaChvKTtsZXQgYT1uO2kubGVuZ3RoPjAmJihhKz1hbCtpLmpvaW4oYWwpKSx0W29dPWF9fWNvbnN0IElkPVdjO2Z1bmN0aW9uIEhkKHQpe3JldHVybiB0WzddfHwodFs3XT1uZ0Rldk1vZGU/bmV3IEFjOltdKX1mdW5jdGlvbiBGZCh0KXtyZXR1cm4gdC5jbGVhbnVwfHwodC5jbGVhbnVwPW5nRGV2TW9kZT9uZXcgVGM6W10pfWZ1bmN0aW9uIExkKHQsZSxuKXtyZXR1cm4obnVsbD09PXR8fHhvKHQpKSYmKG49KGZ1bmN0aW9uIG8odCl7Zm9yKDtBcnJheS5pc0FycmF5KHQpOyl7aWYoIm9iamVjdCI9PXR5cGVvZiB0WzFdKXJldHVybiB0O3Q9dFswXX1yZXR1cm4gbnVsbH0pKG5bZS5pbmRleF0pKSxuWzExXX1mdW5jdGlvbiBCZCh0LGUpe2NvbnN0IG49dFs5XSxvPW4/bi5nZXQoWnMsbnVsbCk6bnVsbDtvJiZvLmhhbmRsZUVycm9yKGUpfWZ1bmN0aW9uIFZkKHQsZSxuLG8saSl7Zm9yKGxldCBhPTA7YTxuLmxlbmd0aDspe2NvbnN0IHI9blthKytdLHM9blthKytdLGw9ZVtyXTtuZ0Rldk1vZGUmJl9uKGUscik7Y29uc3QgYz10LmRhdGFbcl07bnVsbCE9PWMuc2V0SW5wdXQ/Yy5zZXRJbnB1dChsLGksbyxzKTpsW3NdPWl9fWZ1bmN0aW9uIGpkKHQsZSxuKXtuZ0Rldk1vZGUmJnNuKG4sIlZhbHVlIHNob3VsZCBiZSBhIHN0cmluZyIpLG5nRGV2TW9kZSYmcG4obixhYywidmFsdWUgc2hvdWxkIG5vdCBiZSBOT19DSEFOR0UiKSxuZ0Rldk1vZGUmJl9uKHQsZSk7Y29uc3Qgbz1uaShlLHQpO25nRGV2TW9kZSYmaG4obywibmF0aXZlIGVsZW1lbnQgc2hvdWxkIGV4aXN0IiksX2wodFsxMV0sbyxuKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gVWQodCxlLG4pe25nRGV2TW9kZSYmQW8oZ2koKSwiRXhwZWN0aW5nIHRvIGJlIGNhbGxlZCBpbiBmaXJzdCB0ZW1wbGF0ZSBwYXNzIG9ubHkiKTtsZXQgbz1uP3Quc3R5bGVzOm51bGwsaT1uP3QuY2xhc3NlczpudWxsLGE9MDtpZihudWxsIT09ZSlmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdOyJudW1iZXIiPT10eXBlb2Ygbj9hPW46MT09YT9pPVdlKGksbik6Mj09YSYmKG89V2UobyxuKyI6ICIrZVsrK3RdKyI7IikpfW4/dC5zdHlsZXM9bzp0LnN0eWxlc1dpdGhvdXRIb3N0PW8sbj90LmNsYXNzZXM9aTp0LmNsYXNzZXNXaXRob3V0SG9zdD1pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEdkPW5ldyBHYSgiSU5KRUNUT1IiLC0xKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgV2R7Z2V0KHQsZT1ncil7aWYoZT09PWdyKXtjb25zdCBlPW5ldyBFcnJvcihgTnVsbEluamVjdG9yRXJyb3I6IE5vIHByb3ZpZGVyIGZvciAke0dlKHQpfSFgKTt0aHJvdyBlLm5hbWU9Ik51bGxJbmplY3RvckVycm9yIixlfXJldHVybiBlfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgWWQ9bmV3IEdhKCJTZXQgSW5qZWN0b3Igc2NvcGUuIikscWQ9e30sWmQ9e307Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2xldCBYZDtmdW5jdGlvbiBLZCgpe3JldHVybiB2b2lkIDA9PT1YZCYmKFhkPW5ldyBXZCksWGR9ZnVuY3Rpb24gSmQodCxlPW51bGwsbj1udWxsLG8pe3JldHVybiBuZXcgUWQodCxuLGV8fEtkKCksbyl9Y2xhc3MgUWR7Y29uc3RydWN0b3IodCxlLG4sbz1udWxsKXt0aGlzLnBhcmVudD1uLHRoaXMucmVjb3Jkcz1uZXcgTWFwLHRoaXMuaW5qZWN0b3JEZWZUeXBlcz1uZXcgU2V0LHRoaXMub25EZXN0cm95PW5ldyBTZXQsdGhpcy5fZGVzdHJveWVkPSExO2NvbnN0IGk9W107ZSYmZXIoZSwobj0+dGhpcy5wcm9jZXNzUHJvdmlkZXIobix0LGUpKSksZXIoW3RdLCh0PT50aGlzLnByb2Nlc3NJbmplY3RvclR5cGUodCxbXSxpKSkpLHRoaXMucmVjb3Jkcy5zZXQoR2QsZXAodm9pZCAwLHRoaXMpKTtjb25zdCBhPXRoaXMucmVjb3Jkcy5nZXQoWWQpO3RoaXMuc2NvcGU9bnVsbCE9YT9hLnZhbHVlOm51bGwsdGhpcy5zb3VyY2U9b3x8KCJvYmplY3QiPT10eXBlb2YgdD9udWxsOkdlKHQpKX1nZXQgZGVzdHJveWVkKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZH1kZXN0cm95KCl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKSx0aGlzLl9kZXN0cm95ZWQ9ITA7dHJ5e3RoaXMub25EZXN0cm95LmZvckVhY2goKHQ9PnQubmdPbkRlc3Ryb3koKSkpfWZpbmFsbHl7dGhpcy5yZWNvcmRzLmNsZWFyKCksdGhpcy5vbkRlc3Ryb3kuY2xlYXIoKSx0aGlzLmluamVjdG9yRGVmVHlwZXMuY2xlYXIoKX19Z2V0KHQsZT1ncixuPUVuLkRlZmF1bHQpe3RoaXMuYXNzZXJ0Tm90RGVzdHJveWVkKCk7Y29uc3Qgbz1Dcih0aGlzKSxpPUFuKHZvaWQgMCk7dHJ5e2lmKCEobiZFbi5Ta2lwU2VsZikpe2xldCBlPXRoaXMucmVjb3Jkcy5nZXQodCk7aWYodm9pZCAwPT09ZSl7Y29uc3Qgbj0oZnVuY3Rpb24gbyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdHx8Im9iamVjdCI9PXR5cGVvZiB0JiZ0IGluc3RhbmNlb2YgR2F9KSh0KSYmeG4odCk7ZT1uJiZ0aGlzLmluamVjdGFibGVEZWZJblNjb3BlKG4pP2VwKCRkKHQpLHFkKTpudWxsLHRoaXMucmVjb3Jkcy5zZXQodCxlKX1pZihudWxsIT1lKXJldHVybiB0aGlzLmh5ZHJhdGUodCxlKX1yZXR1cm4obiZFbi5TZWxmP0tkKCk6dGhpcy5wYXJlbnQpLmdldCh0LGU9biZFbi5PcHRpb25hbCYmZT09PWdyP251bGw6ZSl9Y2F0Y2goZSl7aWYoIk51bGxJbmplY3RvckVycm9yIj09PWUubmFtZSl7aWYoKGUubmdUZW1wVG9rZW5QYXRoPWUubmdUZW1wVG9rZW5QYXRofHxbXSkudW5zaGlmdChHZSh0KSksbyl0aHJvdyBlO3JldHVybihmdW5jdGlvbiBuKHQsZSxvLGkpe2NvbnN0IGE9dC5uZ1RlbXBUb2tlblBhdGg7dGhyb3cgZVticl0mJmEudW5zaGlmdChlW2JyXSksdC5tZXNzYWdlPShmdW5jdGlvbiByKHQsZSxuLG89bnVsbCl7dD10JiYiXG4iPT09dC5jaGFyQXQoMCkmJiLJtSI9PXQuY2hhckF0KDEpP3Quc3Vic3RyKDIpOnQ7bGV0IGk9R2UoZSk7aWYoQXJyYXkuaXNBcnJheShlKSlpPWUubWFwKEdlKS5qb2luKCIgLT4gIik7ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIGUpe2xldCB0PVtdO2ZvcihsZXQgbiBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkobikpe2xldCBvPWVbbl07dC5wdXNoKG4rIjoiKygic3RyaW5nIj09dHlwZW9mIG8/SlNPTi5zdHJpbmdpZnkobyk6R2UobykpKX1pPWB7JHt0LmpvaW4oIiwgIil9fWB9cmV0dXJuYCR7bn0ke28/IigiK28rIikiOiIifVske2l9XTogJHt0LnJlcGxhY2UoaHIsIlxuICAiKX1gfSkoIlxuIit0Lm1lc3NhZ2UsYSxvLGkpLHQubmdUb2tlblBhdGg9YSx0Lm5nVGVtcFRva2VuUGF0aD1udWxsLHR9KShlLHQsIlIzSW5qZWN0b3JFcnJvciIsdGhpcy5zb3VyY2UpfXRocm93IGV9ZmluYWxseXtBbihpKSxDcihvKX19X3Jlc29sdmVJbmplY3RvckRlZlR5cGVzKCl7dGhpcy5pbmplY3RvckRlZlR5cGVzLmZvckVhY2goKHQ9PnRoaXMuZ2V0KHQpKSl9dG9TdHJpbmcoKXtjb25zdCB0PVtdO3JldHVybiB0aGlzLnJlY29yZHMuZm9yRWFjaCgoKGUsbik9PnQucHVzaChHZShuKSkpKSxgUjNJbmplY3Rvclske3Quam9pbigiLCAiKX1dYH1hc3NlcnROb3REZXN0cm95ZWQoKXtpZih0aGlzLl9kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJJbmplY3RvciBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZC4iKX1wcm9jZXNzSW5qZWN0b3JUeXBlKHQsZSxuKXtpZighKHQ9WmUodCkpKXJldHVybiExO2xldCBvPVBuKHQpO2NvbnN0IGk9bnVsbD09byYmdC5uZ01vZHVsZXx8dm9pZCAwLGE9dm9pZCAwPT09aT90Omk7bmdEZXZNb2RlJiYtMSE9PWUuaW5kZXhPZihhKSYmZW4oR2UoYSksZS5tYXAoR2UpKTtjb25zdCByPS0xIT09bi5pbmRleE9mKGEpO2lmKHZvaWQgMCE9PWkmJihvPVBuKGkpKSxudWxsPT1vKXJldHVybiExO2lmKG51bGwhPW8uaW1wb3J0cyYmIXIpe2xldCB0O25nRGV2TW9kZSYmZS5wdXNoKGEpLG4ucHVzaChhKTt0cnl7ZXIoby5pbXBvcnRzLChvPT57dGhpcy5wcm9jZXNzSW5qZWN0b3JUeXBlKG8sZSxuKSYmKHZvaWQgMD09PXQmJih0PVtdKSx0LnB1c2gobykpfSkpfWZpbmFsbHl7bmdEZXZNb2RlJiZlLnBvcCgpfWlmKHZvaWQgMCE9PXQpZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0e25nTW9kdWxlOm4scHJvdmlkZXJzOm99PXRbZV07ZXIobywodD0+dGhpcy5wcm9jZXNzUHJvdmlkZXIodCxuLG98fFduKSkpfX10aGlzLmluamVjdG9yRGVmVHlwZXMuYWRkKGEpO2NvbnN0IHM9Rm8oYSl8fCgoKT0+bmV3IGEpO3RoaXMucmVjb3Jkcy5zZXQoYSxlcChzLHFkKSk7Y29uc3QgbD1vLnByb3ZpZGVycztpZihudWxsIT1sJiYhcil7Y29uc3QgZT10O2VyKGwsKHQ9PnRoaXMucHJvY2Vzc1Byb3ZpZGVyKHQsZSxsKSkpfXJldHVybiB2b2lkIDAhPT1pJiZ2b2lkIDAhPT10LnByb3ZpZGVyc31wcm9jZXNzUHJvdmlkZXIodCxlLG4pe2xldCBvPW9wKHQ9WmUodCkpP3Q6WmUodCYmdC5wcm92aWRlKTtjb25zdCBpPShmdW5jdGlvbiBhKHQsZSxuKXtyZXR1cm4gbnAodCk/ZXAodm9pZCAwLHQudXNlVmFsdWUpOmVwKHRwKHQsZSxuKSxxZCl9KSh0LGUsbik7aWYob3AodCl8fCEwIT09dC5tdWx0aSl7Y29uc3QgdD10aGlzLnJlY29yZHMuZ2V0KG8pO25nRGV2TW9kZSYmdCYmdm9pZCAwIT09dC5tdWx0aSYmbm4oKX1lbHNle2xldCBlPXRoaXMucmVjb3Jkcy5nZXQobyk7ZT9uZ0Rldk1vZGUmJnZvaWQgMD09PWUubXVsdGkmJm5uKCk6KGU9ZXAodm9pZCAwLHFkLCEwKSxlLmZhY3Rvcnk9KCk9PlByKGUubXVsdGkpLHRoaXMucmVjb3Jkcy5zZXQobyxlKSksbz10LGUubXVsdGkucHVzaCh0KX10aGlzLnJlY29yZHMuc2V0KG8saSl9aHlkcmF0ZSh0LGUpe3JldHVybiBuZ0Rldk1vZGUmJmUudmFsdWU9PT1aZD9lbihHZSh0KSk6ZS52YWx1ZT09PXFkJiYoZS52YWx1ZT1aZCxlLnZhbHVlPWUuZmFjdG9yeSgpKSwib2JqZWN0Ij09dHlwZW9mIGUudmFsdWUmJmUudmFsdWUmJihmdW5jdGlvbiBuKHQpe3JldHVybiBudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5uZ09uRGVzdHJveX0pKGUudmFsdWUpJiZ0aGlzLm9uRGVzdHJveS5hZGQoZS52YWx1ZSksZS52YWx1ZX1pbmplY3RhYmxlRGVmSW5TY29wZSh0KXtpZighdC5wcm92aWRlZEluKXJldHVybiExO2NvbnN0IGU9WmUodC5wcm92aWRlZEluKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ImFueSI9PT1lfHxlPT09dGhpcy5zY29wZTp0aGlzLmluamVjdG9yRGVmVHlwZXMuaGFzKGUpfX1mdW5jdGlvbiAkZCh0KXtjb25zdCBlPXhuKHQpLG49bnVsbCE9PWU/ZS5mYWN0b3J5OkZvKHQpO2lmKG51bGwhPT1uKXJldHVybiBuO2lmKHQgaW5zdGFuY2VvZiBHYSl0aHJvdyBuZXcgRXJyb3IoYFRva2VuICR7R2UodCl9IGlzIG1pc3NpbmcgYSDJtXByb3YgZGVmaW5pdGlvbi5gKTtpZih0IGluc3RhbmNlb2YgRnVuY3Rpb24pcmV0dXJuKGZ1bmN0aW9uIG8odCl7Y29uc3QgZT10Lmxlbmd0aDtpZihlPjApe2NvbnN0IG49aXIoZSwiPyIpO3Rocm93IG5ldyBFcnJvcihgQ2FuJ3QgcmVzb2x2ZSBhbGwgcGFyYW1ldGVycyBmb3IgJHtHZSh0KX06ICgke24uam9pbigiLCAiKX0pLmApfWNvbnN0IG49KGZ1bmN0aW9uIG8odCl7Y29uc3QgZT10JiYodFt3bl18fHRbU25dKTtpZihlKXtjb25zdCBuPShmdW5jdGlvbiBuKHQpe2lmKHQuaGFzT3duUHJvcGVydHkoIm5hbWUiKSlyZXR1cm4gdC5uYW1lO2NvbnN0IGU9KCIiK3QpLm1hdGNoKC9eZnVuY3Rpb25ccyooW15ccyhdKykvKTtyZXR1cm4gbnVsbD09PWU/IiI6ZVsxXX0pKHQpO3JldHVybiBjb25zb2xlLndhcm4oYERFUFJFQ0FURUQ6IERJIGlzIGluc3RhbnRpYXRpbmcgYSB0b2tlbiAiJHtufSIgdGhhdCBpbmhlcml0cyBpdHMgQEluamVjdGFibGUgZGVjb3JhdG9yIGJ1dCBkb2VzIG5vdCBwcm92aWRlIG9uZSBpdHNlbGYuXG5UaGlzIHdpbGwgYmVjb21lIGFuIGVycm9yIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgQW5ndWxhci4gUGxlYXNlIGFkZCBASW5qZWN0YWJsZSgpIHRvIHRoZSAiJHtufSIgY2xhc3MuYCksZX1yZXR1cm4gbnVsbH0pKHQpO3JldHVybiBudWxsIT09bj8oKT0+bi5mYWN0b3J5KHQpOigpPT5uZXcgdH0pKHQpO3Rocm93IG5ldyBFcnJvcigidW5yZWFjaGFibGUiKX1mdW5jdGlvbiB0cCh0LGUsbil7bGV0IG87aWYob3AodCkpe2NvbnN0IGU9WmUodCk7cmV0dXJuIEZvKGUpfHwkZChlKX1pZihucCh0KSlvPSgpPT5aZSh0LnVzZVZhbHVlKTtlbHNlIGlmKChmdW5jdGlvbiBpKHQpe3JldHVybiEoIXR8fCF0LnVzZUZhY3RvcnkpfSkodCkpbz0oKT0+dC51c2VGYWN0b3J5KC4uLlByKHQuZGVwc3x8W10pKTtlbHNlIGlmKChmdW5jdGlvbiBhKHQpe3JldHVybiEoIXR8fCF0LnVzZUV4aXN0aW5nKX0pKHQpKW89KCk9PnZyKFplKHQudXNlRXhpc3RpbmcpKTtlbHNle2NvbnN0IGk9WmUodCYmKHQudXNlQ2xhc3N8fHQucHJvdmlkZSkpO2lmKG5nRGV2TW9kZSYmIWkmJihmdW5jdGlvbiByKHQsZSxuKXtsZXQgbz0iIjt0aHJvdyB0JiZlJiYobz1gIC0gb25seSBpbnN0YW5jZXMgb2YgUHJvdmlkZXIgYW5kIFR5cGUgYXJlIGFsbG93ZWQsIGdvdDogWyR7ZS5tYXAoKHQ9PnQ9PW4/Ij8iK24rIj8iOiIuLi4iKSkuam9pbigiLCAiKX1dYCksbmV3IEVycm9yKGBJbnZhbGlkIHByb3ZpZGVyIGZvciB0aGUgTmdNb2R1bGUgJyR7R2UodCl9J2Arbyl9KShlLG4sdCksIShmdW5jdGlvbiBzKHQpe3JldHVybiEhdC5kZXBzfSkodCkpcmV0dXJuIEZvKGkpfHwkZChpKTtvPSgpPT5uZXcgaSguLi5Qcih0LmRlcHMpKX1yZXR1cm4gb31mdW5jdGlvbiBlcCh0LGUsbj0hMSl7cmV0dXJue2ZhY3Rvcnk6dCx2YWx1ZTplLG11bHRpOm4/W106dm9pZCAwfX1mdW5jdGlvbiBucCh0KXtyZXR1cm4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdCYmeXIgaW4gdH1mdW5jdGlvbiBvcCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH1jb25zdCBpcD1mdW5jdGlvbiBhcCh0LGUsbil7cmV0dXJuKGZ1bmN0aW9uIG8odCxlPW51bGwsbj1udWxsLGkpe2NvbnN0IGE9SmQodCxlLG4saSk7cmV0dXJuIGEuX3Jlc29sdmVJbmplY3RvckRlZlR5cGVzKCksYX0pKHtuYW1lOm59LGUsdCxuKX07Y2xhc3MgcnB7c3RhdGljIGNyZWF0ZSh0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP2lwKHQsZSwiIik6aXAodC5wcm92aWRlcnMsdC5wYXJlbnQsdC5uYW1lfHwiIil9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gc3AodCl7YnAodCk7Y29uc3QgZT1Jcyh0KTtyZXR1cm4gbnVsbD09PWU/bnVsbDoodm9pZCAwPT09ZS5jb21wb25lbnQmJihlLmNvbXBvbmVudD0oZnVuY3Rpb24gbih0LGUpe2NvbnN0IG49ZVsxXS5kYXRhW3RdO3JldHVybiAyJm4uZmxhZ3M/ZVtuLmRpcmVjdGl2ZVN0YXJ0XTpudWxsfSkoZS5ub2RlSW5kZXgsZS5sVmlldykpLGUuY29tcG9uZW50KX1mdW5jdGlvbiBscCh0KXticCh0KTtjb25zdCBlPUlzKHQpO3JldHVybiBudWxsPT09ZT9udWxsOmUubFZpZXdbOF19ZnVuY3Rpb24gY3AodCl7Y29uc3QgZT1Jcyh0KTtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtsZXQgbixvPWUubFZpZXc7Zm9yKG5nRGV2TW9kZSYmUm8obyk7Mj09PW9bMV0udHlwZSYmKG49bWwobykpOylvPW47cmV0dXJuIDUxMiZvWzJdP251bGw6b1s4XX1mdW5jdGlvbiBkcCh0KXtyZXR1cm5bLi4udWwodCkuY29tcG9uZW50c119ZnVuY3Rpb24gcHAodCl7Y29uc3QgZT1Jcyh0KTtyZXR1cm4gbnVsbD09PWU/cnAuTlVMTDpuZXcgUmEoZS5sVmlld1sxXS5kYXRhW2Uubm9kZUluZGV4XSxlLmxWaWV3KX1mdW5jdGlvbiBtcCh0KXtpZih0IGluc3RhbmNlb2YgVGV4dClyZXR1cm5bXTtjb25zdCBlPUlzKHQpO2lmKG51bGw9PT1lKXJldHVybltdO2NvbnN0IG49ZS5sVmlldyxvPW5bMV0saT1lLm5vZGVJbmRleDtyZXR1cm4obnVsbD09bz92b2lkIDA6by5kYXRhW2ldKT8odm9pZCAwPT09ZS5kaXJlY3RpdmVzJiYoZS5kaXJlY3RpdmVzPVdzKGksbiwhMSkpLG51bGw9PT1lLmRpcmVjdGl2ZXM/W106Wy4uLmUuZGlyZWN0aXZlc10pOltdfWZ1bmN0aW9uIHVwKHQpe2NvbnN0e2NvbnN0cnVjdG9yOmV9PXQ7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZmluZCB0aGUgaW5zdGFuY2UgY29uc3RydWN0b3IiKTtjb25zdCBuPXBvKGUpO2lmKG4pcmV0dXJue2lucHV0czpuLmlucHV0cyxvdXRwdXRzOm4ub3V0cHV0cyxlbmNhcHN1bGF0aW9uOm4uZW5jYXBzdWxhdGlvbixjaGFuZ2VEZXRlY3Rpb246bi5vblB1c2g/em4uT25QdXNoOnpuLkRlZmF1bHR9O2NvbnN0IG89bW8oZSk7cmV0dXJuIG8/e2lucHV0czpvLmlucHV0cyxvdXRwdXRzOm8ub3V0cHV0c306bnVsbH1mdW5jdGlvbiBmcCh0KXtyZXR1cm4gSXModCkubmF0aXZlfWZ1bmN0aW9uIGdwKHQpe2JwKHQpO2NvbnN0IGU9SXModCk7aWYobnVsbD09PWUpcmV0dXJuW107Y29uc3Qgbj1lLmxWaWV3LG89bls3XSxpPW5bMV0uY2xlYW51cCxhPVtdO2lmKGkmJm8pZm9yKGxldCBlPTA7ZTxpLmxlbmd0aDspe2NvbnN0IHI9aVtlKytdLHM9aVtlKytdO2lmKCJzdHJpbmciPT10eXBlb2Ygcil7Y29uc3QgbD1yLGM9ZWkobltzXSksZD1vW2lbZSsrXV0scD1pW2UrK10sbT0iYm9vbGVhbiI9PXR5cGVvZiBwfHxwPj0wPyJkb20iOiJvdXRwdXQiLHU9ImJvb2xlYW4iPT10eXBlb2YgcCYmcDt0PT1jJiZhLnB1c2goe2VsZW1lbnQ6dCxuYW1lOmwsY2FsbGJhY2s6ZCx1c2VDYXB0dXJlOnUsdHlwZTptfSl9fXJldHVybiBhLnNvcnQoaHApLGF9ZnVuY3Rpb24gaHAodCxlKXtyZXR1cm4gdC5uYW1lPT1lLm5hbWU/MDp0Lm5hbWU8ZS5uYW1lPy0xOjF9ZnVuY3Rpb24gYnAodCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBFbGVtZW50JiYhKHQgaW5zdGFuY2VvZiBFbGVtZW50KSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGluZyBpbnN0YW5jZSBvZiBET00gRWxlbWVudCIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB5cCh0KXsoZnVuY3Rpb24gZSh0KXtuZ0Rldk1vZGUmJmhuKHQsImNvbXBvbmVudCIpO2NvbnN0IGU9RWQoRnModCkpO25nRGV2TW9kZSYmaG4oZVs4XSwicm9vdENvbnRleHQgc2hvdWxkIGJlIGRlZmluZWQiKSwoZnVuY3Rpb24gbih0LGUpe2lmKDA9PT10LmZsYWdzJiZ0LmNsZWFuPT1XYyl7bGV0IG47dC5mbGFnc3w9ZSx0LmNsZWFuPW5ldyBQcm9taXNlKCh0PT5uPXQpKSx0LnNjaGVkdWxlcigoKCk9PntpZigxJnQuZmxhZ3MmJih0LmZsYWdzJj0tMixSZCh0KSksMiZ0LmZsYWdzKXt0LmZsYWdzJj0tMztjb25zdCBlPXQucGxheWVySGFuZGxlcjtlJiZlLmZsdXNoUGxheWVycygpfXQuY2xlYW49V2MsbihudWxsKX0pKX19KShlWzhdLDEpfSkodCksZHAodCkuZm9yRWFjaCgodD0+KGZ1bmN0aW9uIGUodCl7Y29uc3QgZT1Gcyh0KTtBZChlWzFdLGUsdCl9KSh0KSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9ycC5USFJPV19JRl9OT1RfRk9VTkQ9Z3IscnAuTlVMTD1uZXcgV2QscnAuybVwcm92PU1uKHt0b2tlbjpycCxwcm92aWRlZEluOiJhbnkiLGZhY3Rvcnk6KCk9PnZyKEdkKX0pLHJwLl9fTkdfRUxFTUVOVF9JRF9fPS0xO2xldCBfcD0hMTtmdW5jdGlvbiBDcCh0LGUpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQ09NUElMRUR8fCFDT01QSUxFRCl7Y29uc3Qgbj1qbjtpZihuZ0Rldk1vZGUmJmhuKGUsImZ1bmN0aW9uIG5vdCBkZWZpbmVkIiksbil7bGV0IG89bi5uZztvfHwobz1uLm5nPXt9KSxvW3RdPWV9fX1mdW5jdGlvbiBNcCh0LGUpe2NvbnN0IG49VnModCk7bmdEZXZNb2RlJiZobihuLCJMVmlldyBpcyByZXF1aXJlZCIpO2NvbnN0IG89blsxXSxpPWJpKCk7bmdEZXZNb2RlJiZobihpLCJUTm9kZSBpcyByZXF1aXJlZCIpLFhpKG8saSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHZwKHQpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpLmNvbnN0cnVjdG9yfWZ1bmN0aW9uIHhwKHQpe2xldCBlPXZwKHQudHlwZSksbj0hMDtjb25zdCBvPVt0XTtmb3IoO2U7KXtsZXQgaTtpZih4byh0KSlpPWUuybVjbXB8fGUuybVkaXI7ZWxzZXtpZihlLsm1Y21wKXRocm93IG5ldyBFcnJvcigiRGlyZWN0aXZlcyBjYW5ub3QgaW5oZXJpdCBDb21wb25lbnRzIik7aT1lLsm1ZGlyfWlmKGkpe2lmKG4pe28ucHVzaChpKTtjb25zdCBlPXQ7ZS5pbnB1dHM9T3AodC5pbnB1dHMpLGUuZGVjbGFyZWRJbnB1dHM9T3AodC5kZWNsYXJlZElucHV0cyksZS5vdXRwdXRzPU9wKHQub3V0cHV0cyk7Y29uc3Qgbj1pLmhvc3RCaW5kaW5ncztuJiZrcCh0LG4pO2NvbnN0IGE9aS52aWV3UXVlcnkscj1pLmNvbnRlbnRRdWVyaWVzO2lmKGEmJlBwKHQsYSksciYmd3AodCxyKSxVZSh0LmlucHV0cyxpLmlucHV0cyksVWUodC5kZWNsYXJlZElucHV0cyxpLmRlY2xhcmVkSW5wdXRzKSxVZSh0Lm91dHB1dHMsaS5vdXRwdXRzKSx4byhpKSYmaS5kYXRhLmFuaW1hdGlvbil7Y29uc3QgZT10LmRhdGE7ZS5hbmltYXRpb249KGUuYW5pbWF0aW9ufHxbXSkuY29uY2F0KGkuZGF0YS5hbmltYXRpb24pfX1jb25zdCBlPWkuZmVhdHVyZXM7aWYoZSlmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7Y29uc3QgaT1lW29dO2kmJmkubmdJbmhlcml0JiZpKHQpLGk9PT14cCYmKG49ITEpfX1lPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0hKGZ1bmN0aW9uIGkodCl7bGV0IGU9MCxuPW51bGw7Zm9yKGxldCBvPXQubGVuZ3RoLTE7bz49MDtvLS0pe2NvbnN0IGk9dFtvXTtpLmhvc3RWYXJzPWUrPWkuaG9zdFZhcnMsaS5ob3N0QXR0cnM9bGEoaS5ob3N0QXR0cnMsbj1sYShuLGkuaG9zdEF0dHJzKSl9fSkobyl9ZnVuY3Rpb24gT3AodCl7cmV0dXJuIHQ9PT1Hbj97fTp0PT09V24/W106dH1mdW5jdGlvbiBQcCh0LGUpe2NvbnN0IG49dC52aWV3UXVlcnk7dC52aWV3UXVlcnk9bj8odCxvKT0+e2UodCxvKSxuKHQsbyl9OmV9ZnVuY3Rpb24gd3AodCxlKXtjb25zdCBuPXQuY29udGVudFF1ZXJpZXM7dC5jb250ZW50UXVlcmllcz1uPyh0LG8saSk9PntlKHQsbyxpKSxuKHQsbyxpKX06ZX1mdW5jdGlvbiBrcCh0LGUpe2NvbnN0IG49dC5ob3N0QmluZGluZ3M7dC5ob3N0QmluZGluZ3M9bj8odCxvKT0+e2UodCxvKSxuKHQsbyl9OmV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFNwPVsicHJvdmlkZXJzUmVzb2x2ZXIiXSxEcD1bInRlbXBsYXRlIiwiZGVjbHMiLCJjb25zdHMiLCJ2YXJzIiwib25QdXNoIiwibmdDb250ZW50U2VsZWN0b3JzIiwic3R5bGVzIiwiZW5jYXBzdWxhdGlvbiIsInNjaGVtYXMiXTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBFcD1udWxsO2Z1bmN0aW9uIFJwKCl7aWYoIUVwKXtjb25zdCB0PWpuLlN5bWJvbDtpZih0JiZ0Lml0ZXJhdG9yKUVwPXQuaXRlcmF0b3I7ZWxzZXtjb25zdCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE1hcC5wcm90b3R5cGUpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7KytlKXtjb25zdCBuPXRbZV07ImVudHJpZXMiIT09biYmInNpemUiIT09biYmTWFwLnByb3RvdHlwZVtuXT09PU1hcC5wcm90b3R5cGUuZW50cmllcyYmKEVwPW4pfX19cmV0dXJuIEVwfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBBcCh0LGUpe2NvbnN0IG49TnAodCksbz1OcChlKTtpZihuJiZvKXJldHVybihmdW5jdGlvbiBpKHQsZSxuKXtjb25zdCBvPXRbUnAoKV0oKSxpPWVbUnAoKV0oKTtmb3IoOzspe2NvbnN0IHQ9by5uZXh0KCksZT1pLm5leHQoKTtpZih0LmRvbmUmJmUuZG9uZSlyZXR1cm4hMDtpZih0LmRvbmV8fGUuZG9uZSlyZXR1cm4hMTtpZighbih0LnZhbHVlLGUudmFsdWUpKXJldHVybiExfX0pKHQsZSxBcCk7e2NvbnN0IGk9dCYmKCJvYmplY3QiPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQpLGE9ZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpO3JldHVybiEobnx8IWl8fG98fCFhKXx8T2JqZWN0LmlzKHQsZSl9fWNsYXNzIFRwe2NvbnN0cnVjdG9yKHQpe3RoaXMud3JhcHBlZD10fXN0YXRpYyB3cmFwKHQpe3JldHVybiBuZXcgVHAodCl9c3RhdGljIHVud3JhcCh0KXtyZXR1cm4gVHAuaXNXcmFwcGVkKHQpP3Qud3JhcHBlZDp0fXN0YXRpYyBpc1dyYXBwZWQodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUcH19ZnVuY3Rpb24gTnAodCl7cmV0dXJuISF6cCh0KSYmKEFycmF5LmlzQXJyYXkodCl8fCEodCBpbnN0YW5jZW9mIE1hcCkmJlJwKClpbiB0KX1mdW5jdGlvbiB6cCh0KXtyZXR1cm4gbnVsbCE9PXQmJigiZnVuY3Rpb24iPT10eXBlb2YgdHx8Im9iamVjdCI9PXR5cGVvZiB0KX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gSXAodCxlLG4pe3JldHVybiB0W2VdPW59ZnVuY3Rpb24gSHAodCxlKXtyZXR1cm4gbmdEZXZNb2RlJiZfbih0LGUpLG5nRGV2TW9kZSYmcG4odFtlXSxhYywiU3RvcmVkIHZhbHVlIHNob3VsZCBuZXZlciBiZSBOT19DSEFOR0UuIiksdFtlXX1mdW5jdGlvbiBGcCh0LGUsbil7bmdEZXZNb2RlJiZwbihuLGFjLCJJbmNvbWluZyB2YWx1ZSBzaG91bGQgbmV2ZXIgYmUgTk9fQ0hBTkdFLiIpLG5nRGV2TW9kZSYmbW4oZSx0Lmxlbmd0aCwiU2xvdCBzaG91bGQgaGF2ZSBiZWVuIGluaXRpYWxpemVkIHRvIE5PX0NIQU5HRSIpO2NvbnN0IG89dFtlXTtpZihPYmplY3QuaXMobyxuKSlyZXR1cm4hMTtpZihuZ0Rldk1vZGUmJnhpKCkpe2NvbnN0IGk9byE9PWFjP286dm9pZCAwO2lmKCFBcChpLG4pKXtjb25zdCBhPShmdW5jdGlvbiBpKHQsZSxuLG8pe2NvbnN0IGk9dFsxXS5kYXRhLGE9aVtlXTtpZigic3RyaW5nIj09dHlwZW9mIGEpcmV0dXJuIGEuaW5kZXhPZihhbCk+LTE/bGwodCxlLGUsYSxvKTp7cHJvcE5hbWU6YSxvbGRWYWx1ZTpuLG5ld1ZhbHVlOm99O2lmKG51bGw9PT1hKXtsZXQgbj1lLTE7Zm9yKDsic3RyaW5nIiE9dHlwZW9mIGlbbl0mJm51bGw9PT1pW24rMV07KW4tLTtjb25zdCBhPWlbbl07aWYoInN0cmluZyI9PXR5cGVvZiBhKXtjb25zdCBpPWEubWF0Y2gobmV3IFJlZ0V4cChhbCwiZyIpKTtpZihpJiZpLmxlbmd0aC0xPmUtbilyZXR1cm4gbGwodCxuLGUsYSxvKX19cmV0dXJue3Byb3BOYW1lOnZvaWQgMCxvbGRWYWx1ZTpuLG5ld1ZhbHVlOm99fSkodCxlLGksbik7IShmdW5jdGlvbiBhKHQsZSxuLG8pe2xldCBpPWBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yOiBFeHByZXNzaW9uIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkLiBQcmV2aW91cyB2YWx1ZSR7bz9gIGZvciAnJHtvfSdgOiIifTogJyR7ZX0nLiBDdXJyZW50IHZhbHVlOiAnJHtufScuYDt0aHJvdyB0JiYoaSs9IiBJdCBzZWVtcyBsaWtlIHRoZSB2aWV3IGhhcyBiZWVuIGNyZWF0ZWQgYWZ0ZXIgaXRzIHBhcmVudCBhbmQgaXRzIGNoaWxkcmVuIGhhdmUgYmVlbiBkaXJ0eSBjaGVja2VkLiBIYXMgaXQgYmVlbiBjcmVhdGVkIGluIGEgY2hhbmdlIGRldGVjdGlvbiBob29rPyIpLG5ldyBLZSgiMTAwIixpKX0pKG89PT1hYyxhLm9sZFZhbHVlLGEubmV3VmFsdWUsYS5wcm9wTmFtZSl9cmV0dXJuITF9cmV0dXJuIHRbZV09biwhMH1mdW5jdGlvbiBMcCh0LGUsbixvKXtjb25zdCBpPUZwKHQsZSxuKTtyZXR1cm4gRnAodCxlKzEsbyl8fGl9ZnVuY3Rpb24gQnAodCxlLG4sbyxpKXtjb25zdCBhPUxwKHQsZSxuLG8pO3JldHVybiBGcCh0LGUrMixpKXx8YX1mdW5jdGlvbiBWcCh0LGUsbixvLGksYSl7Y29uc3Qgcj1McCh0LGUsbixvKTtyZXR1cm4gTHAodCxlKzIsaSxhKXx8cn0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24ganAodCxlLG4sbyl7Y29uc3QgaT1maSgpLGE9U2koKTtpZihGcChpLGEsZSkpe2NvbnN0IHI9Z2koKSxzPVlpKCk7Q2QocyxpLHQsZSxuLG8pLG5nRGV2TW9kZSYmemQoci5kYXRhLHMsImF0dHIuIit0LGEpfXJldHVybiBqcH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gVXAodCxlKXtuZ0Rldk1vZGUmJm1uKDIsZS5sZW5ndGgsInNob3VsZCBoYXZlIGF0IGxlYXN0IDMgdmFsdWVzIiksbmdEZXZNb2RlJiZsbihlLmxlbmd0aCUyLDEsInNob3VsZCBoYXZlIGFuIG9kZCBudW1iZXIgb2YgdmFsdWVzIik7bGV0IG49ITEsbz13aSgpO2ZvcihsZXQgaT0xO2k8ZS5sZW5ndGg7aSs9MiluPUZwKHQsbysrLGVbaV0pfHxuO2lmKGtpKG8pLCFuKXJldHVybiBhYztsZXQgaT1lWzBdO2ZvcihsZXQgdD0xO3Q8ZS5sZW5ndGg7dCs9MilpKz0kZShlW3RdKStlW3QrMV07cmV0dXJuIGl9ZnVuY3Rpb24gR3AodCxlLG4sbyl7cmV0dXJuIEZwKHQsU2koKSxuKT9lKyRlKG4pK286YWN9ZnVuY3Rpb24gV3AodCxlLG4sbyxpLGEpe2NvbnN0IHI9THAodCx3aSgpLG4saSk7cmV0dXJuIERpKDIpLHI/ZSskZShuKStvKyRlKGkpK2E6YWN9ZnVuY3Rpb24gWXAodCxlLG4sbyxpLGEscixzKXtjb25zdCBsPUJwKHQsd2koKSxuLGkscik7cmV0dXJuIERpKDMpLGw/ZSskZShuKStvKyRlKGkpK2ErJGUocikrczphY31mdW5jdGlvbiBxcCh0LGUsbixvLGksYSxyLHMsbCxjKXtjb25zdCBkPVZwKHQsd2koKSxuLGkscixsKTtyZXR1cm4gRGkoNCksZD9lKyRlKG4pK28rJGUoaSkrYSskZShyKStzKyRlKGwpK2M6YWN9ZnVuY3Rpb24gWnAodCxlLG4sbyxpLGEscixzLGwsYyxkLHApe2NvbnN0IG09d2koKTtsZXQgdT1WcCh0LG0sbixpLHIsbCk7cmV0dXJuIHU9RnAodCxtKzQsZCl8fHUsRGkoNSksdT9lKyRlKG4pK28rJGUoaSkrYSskZShyKStzKyRlKGwpK2MrJGUoZCkrcDphY31mdW5jdGlvbiBYcCh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUpe2NvbnN0IGY9d2koKTtsZXQgZz1WcCh0LGYsbixpLHIsbCk7cmV0dXJuIGc9THAodCxmKzQsZCxtKXx8ZyxEaSg2KSxnP2UrJGUobikrbyskZShpKSthKyRlKHIpK3MrJGUobCkrYyskZShkKStwKyRlKG0pK3U6YWN9ZnVuY3Rpb24gS3AodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyl7Y29uc3QgaD13aSgpO2xldCBiPVZwKHQsaCxuLGkscixsKTtyZXR1cm4gYj1CcCh0LGgrNCxkLG0sZil8fGIsRGkoNyksYj9lKyRlKG4pK28rJGUoaSkrYSskZShyKStzKyRlKGwpK2MrJGUoZCkrcCskZShtKSt1KyRlKGYpK2c6YWN9ZnVuY3Rpb24gSnAodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoLGIpe2NvbnN0IHk9d2koKTtsZXQgXz1WcCh0LHksbixpLHIsbCk7cmV0dXJuIF89VnAodCx5KzQsZCxtLGYsaCl8fF8sRGkoOCksXz9lKyRlKG4pK28rJGUoaSkrYSskZShyKStzKyRlKGwpK2MrJGUoZCkrcCskZShtKSt1KyRlKGYpK2crJGUoaCkrYjphY31mdW5jdGlvbiBRcCh0LGUsbixvLGksYSxyLHMpe2NvbnN0IGw9ZmkoKSxjPWdpKCksZD10K2dvLHA9Yy5maXJzdENyZWF0ZVBhc3M/KAovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gbSh0LGUsbixvLGksYSxyLHMsbCl7bmdEZXZNb2RlJiZBbyhlKSxuZ0Rldk1vZGUmJm5nRGV2TW9kZS5maXJzdENyZWF0ZVBhc3MrKztjb25zdCBjPWUuY29uc3RzLGQ9WmMoZSx0LDQscnx8bnVsbCxjaShjLHMpKTttZChlLG4sZCxjaShjLGwpKSxYaShlLGQpO2NvbnN0IHA9ZC50Vmlld3M9YWQoMixkLG8saSxhLGUuZGlyZWN0aXZlUmVnaXN0cnksZS5waXBlUmVnaXN0cnksbnVsbCxlLnNjaGVtYXMsYyk7cmV0dXJuIG51bGwhPT1lLnF1ZXJpZXMmJihlLnF1ZXJpZXMudGVtcGxhdGUoZSxkKSxwLnF1ZXJpZXM9ZS5xdWVyaWVzLmVtYmVkZGVkVFZpZXcoZCkpLGR9KShkLGMsbCxlLG4sbyxpLGEscik6Yy5kYXRhW2RdO0NpKHAsITEpO2NvbnN0IHU9bFsxMV0uY3JlYXRlQ29tbWVudChuZ0Rldk1vZGU/ImNvbnRhaW5lciI6IiIpO0hsKGMsbCx1LHApLExzKHUsbCksRGQobCxsW2RdPVBkKHUsbCx1LHApKSx2byhwKSYmbmQoYyxsLHApLG51bGwhPXImJm9kKGwscCxzKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gJHAodCl7cmV0dXJuIGFpKChmdW5jdGlvbiBlKCl7cmV0dXJuIG1pLmxGcmFtZS5jb250ZXh0TFZpZXd9KSgpLGdvK3QpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCB0bT17Ism1ybVkZWZpbmVJbmplY3RhYmxlIjpNbiwiybXJtWRlZmluZUluamVjdG9yIjp2biwiybXJtWluamVjdCI6dnIsIsm1ybVpbnZhbGlkRmFjdG9yeURlcCI6eHIscmVzb2x2ZUZvcndhcmRSZWY6WmV9LGVtPWplKHtwcm92aWRlOlN0cmluZyx1c2VWYWx1ZTpqZX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBubSh0KXtyZXR1cm4gdm9pZCAwIT09dC51c2VDbGFzc31mdW5jdGlvbiBvbSh0KXtyZXR1cm4gdm9pZCAwIT09dC51c2VGYWN0b3J5fWplKHtwcm92aWRlOlN0cmluZyx1c2VWYWx1ZTpqZX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgaW09RmEoIkluamVjdGFibGUiLHZvaWQgMCx2b2lkIDAsdm9pZCAwLCgodCxlKT0+YW0odCxlKSkpLGFtPWZ1bmN0aW9uIHJtKHQsZSl7bGV0IG49bnVsbCxvPW51bGw7dC5oYXNPd25Qcm9wZXJ0eSh3bil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHduLHtnZXQ6KCk9PntpZihudWxsPT09bil7Y29uc3Qgbz1KYSh7dXNhZ2U6MCxraW5kOiJpbmplY3RhYmxlIix0eXBlOnR9KTtuPW8uY29tcGlsZUluamVjdGFibGUodG0sYG5nOi8vLyR7dC5uYW1lfS/JtXByb3YuanNgLChmdW5jdGlvbiBvKHQsZSl7Y29uc3Qgbj1lfHx7cHJvdmlkZWRJbjpudWxsfSxvPXtuYW1lOnQubmFtZSx0eXBlOnQsdHlwZUFyZ3VtZW50Q291bnQ6MCxwcm92aWRlZEluOm4ucHJvdmlkZWRJbn07cmV0dXJuKG5tKG4pfHxvbShuKSkmJnZvaWQgMCE9PW4uZGVwcyYmKG8uZGVwcz16cihuLmRlcHMpKSxubShuKT9vLnVzZUNsYXNzPW4udXNlQ2xhc3M6KGZ1bmN0aW9uIGkodCl7cmV0dXJuIGVtIGluIHR9KShuKT9vLnVzZVZhbHVlPW4udXNlVmFsdWU6b20obik/by51c2VGYWN0b3J5PW4udXNlRmFjdG9yeTooZnVuY3Rpb24gYSh0KXtyZXR1cm4gdm9pZCAwIT09dC51c2VFeGlzdGluZ30pKG4pJiYoby51c2VFeGlzdGluZz1uLnVzZUV4aXN0aW5nKSxvfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQsZSkpfXJldHVybiBufX0pLHQuaGFzT3duUHJvcGVydHkoSm4pfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxKbix7Z2V0OigpPT57aWYobnVsbD09PW8pe2NvbnN0IGU9SmEoe3VzYWdlOjAsa2luZDoiaW5qZWN0YWJsZSIsdHlwZTp0fSk7bz1lLmNvbXBpbGVGYWN0b3J5KHRtLGBuZzovLy8ke3QubmFtZX0vybVmYWMuanNgLHtuYW1lOnQubmFtZSx0eXBlOnQsdHlwZUFyZ3VtZW50Q291bnQ6MCxkZXBzOk5yKHQpLHRhcmdldDplLkZhY3RvcnlUYXJnZXQuSW5qZWN0YWJsZX0pfXJldHVybiBvfSxjb25maWd1cmFibGU6ITB9KX07ZnVuY3Rpb24gc20odCl7cmV0dXJuIHQubGVuZ3RoPjE/IiAoIisoCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBlKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDsrK24pe2lmKGUuaW5kZXhPZih0W25dKT4tMSlyZXR1cm4gZS5wdXNoKHRbbl0pLGU7ZS5wdXNoKHRbbl0pfXJldHVybiBlfSkodC5zbGljZSgpLnJldmVyc2UoKSkubWFwKCh0PT5HZSh0LnRva2VuKSkpLmpvaW4oIiAtPiAiKSsiKSI6IiJ9ZnVuY3Rpb24gbG0odCxlLG4sbyl7Y29uc3QgaT1bZV0sYT1uKGkpLHI9bz8oZnVuY3Rpb24gcyh0LGUpe2NvbnN0IG49YCR7dH0gY2F1c2VkIGJ5OiAke2UgaW5zdGFuY2VvZiBFcnJvcj9lLm1lc3NhZ2U6ZX1gLG89RXJyb3Iobik7cmV0dXJuIG8ubmdPcmlnaW5hbEVycm9yPWUsb30pKGEsbyk6RXJyb3IoYSk7cmV0dXJuIHIuYWRkS2V5PWNtLHIua2V5cz1pLHIuaW5qZWN0b3JzPVt0XSxyLmNvbnN0cnVjdFJlc29sdmluZ01lc3NhZ2U9bixyLm5nT3JpZ2luYWxFcnJvcj1vLHJ9ZnVuY3Rpb24gY20odCxlKXt0aGlzLmluamVjdG9ycy5wdXNoKHQpLHRoaXMua2V5cy5wdXNoKGUpLHRoaXMubWVzc2FnZT10aGlzLmNvbnN0cnVjdFJlc29sdmluZ01lc3NhZ2UodGhpcy5rZXlzKX1mdW5jdGlvbiBkbSh0LGUpe2NvbnN0IG49W107Zm9yKGxldCB0PTAsbz1lLmxlbmd0aDt0PG87dCsrKXtjb25zdCBvPWVbdF07bi5wdXNoKG8mJjAhPW8ubGVuZ3RoP28ubWFwKEdlKS5qb2luKCIgIik6Ij8iKX1yZXR1cm4gRXJyb3IoIkNhbm5vdCByZXNvbHZlIGFsbCBwYXJhbWV0ZXJzIGZvciAnIitHZSh0KSsiJygiK24uam9pbigiLCAiKSsiKS4gTWFrZSBzdXJlIHRoYXQgYWxsIHRoZSBwYXJhbWV0ZXJzIGFyZSBkZWNvcmF0ZWQgd2l0aCBJbmplY3Qgb3IgaGF2ZSB2YWxpZCB0eXBlIGFubm90YXRpb25zIGFuZCB0aGF0ICciK0dlKHQpKyInIGlzIGRlY29yYXRlZCB3aXRoIEluamVjdGFibGUuIil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBwbXtjb25zdHJ1Y3Rvcih0LGUpe2lmKHRoaXMudG9rZW49dCx0aGlzLmlkPWUsIXQpdGhyb3cgbmV3IEVycm9yKCJUb2tlbiBtdXN0IGJlIGRlZmluZWQhIik7dGhpcy5kaXNwbGF5TmFtZT1HZSh0aGlzLnRva2VuKX1zdGF0aWMgZ2V0KHQpe3JldHVybiBtbS5nZXQoWmUodCkpfXN0YXRpYyBnZXQgbnVtYmVyT2ZLZXlzKCl7cmV0dXJuIG1tLm51bWJlck9mS2V5c319Y29uc3QgbW09bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fYWxsS2V5cz1uZXcgTWFwfWdldCh0KXtpZih0IGluc3RhbmNlb2YgcG0pcmV0dXJuIHQ7aWYodGhpcy5fYWxsS2V5cy5oYXModCkpcmV0dXJuIHRoaXMuX2FsbEtleXMuZ2V0KHQpO2NvbnN0IGU9bmV3IHBtKHQscG0ubnVtYmVyT2ZLZXlzKTtyZXR1cm4gdGhpcy5fYWxsS2V5cy5zZXQodCxlKSxlfWdldCBudW1iZXJPZktleXMoKXtyZXR1cm4gdGhpcy5fYWxsS2V5cy5zaXplfX0sdW09bmV3Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXM9dH11cGRhdGVDYXBhYmlsaXRpZXModCl7dGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzPXR9ZmFjdG9yeSh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLmZhY3RvcnkodCl9cGFyYW1ldGVycyh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLnBhcmFtZXRlcnModCl9YW5ub3RhdGlvbnModCl7cmV0dXJuIHRoaXMucmVmbGVjdGlvbkNhcGFiaWxpdGllcy5hbm5vdGF0aW9ucyh0KX1wcm9wTWV0YWRhdGEodCl7cmV0dXJuIHRoaXMucmVmbGVjdGlvbkNhcGFiaWxpdGllcy5wcm9wTWV0YWRhdGEodCl9aGFzTGlmZWN5Y2xlSG9vayh0LGUpe3JldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMuaGFzTGlmZWN5Y2xlSG9vayh0LGUpfWdldHRlcih0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLmdldHRlcih0KX1zZXR0ZXIodCl7cmV0dXJuIHRoaXMucmVmbGVjdGlvbkNhcGFiaWxpdGllcy5zZXR0ZXIodCl9bWV0aG9kKHQpe3JldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMubWV0aG9kKHQpfWltcG9ydFVyaSh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLmltcG9ydFVyaSh0KX1yZXNvdXJjZVVyaSh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLnJlc291cmNlVXJpKHQpfXJlc29sdmVJZGVudGlmaWVyKHQsZSxuLG8pe3JldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMucmVzb2x2ZUlkZW50aWZpZXIodCxlLG4sbyl9cmVzb2x2ZUVudW0odCxlKXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLnJlc29sdmVFbnVtKHQsZSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8obmV3IG1yKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGZte2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmtleT10LHRoaXMub3B0aW9uYWw9ZSx0aGlzLnZpc2liaWxpdHk9bn1zdGF0aWMgZnJvbUtleSh0KXtyZXR1cm4gbmV3IGZtKHQsITEsbnVsbCl9fWNvbnN0IGdtPVtdO2NsYXNzIGhte2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmtleT10LHRoaXMucmVzb2x2ZWRGYWN0b3JpZXM9ZSx0aGlzLm11bHRpUHJvdmlkZXI9bix0aGlzLnJlc29sdmVkRmFjdG9yeT10aGlzLnJlc29sdmVkRmFjdG9yaWVzWzBdfX1jbGFzcyBibXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuZmFjdG9yeT10LHRoaXMuZGVwZW5kZW5jaWVzPWV9fWZ1bmN0aW9uIHltKHQpe2xldCBlLG47aWYodC51c2VDbGFzcyl7Y29uc3Qgbz1aZSh0LnVzZUNsYXNzKTtlPXVtLmZhY3Rvcnkobyksbj12bShvKX1lbHNlIHQudXNlRXhpc3Rpbmc/KGU9dD0+dCxuPVtmbS5mcm9tS2V5KHBtLmdldCh0LnVzZUV4aXN0aW5nKSldKTp0LnVzZUZhY3Rvcnk/KGU9dC51c2VGYWN0b3J5LG49KGZ1bmN0aW9uIG8odCxlKXtpZihlKXtjb25zdCBuPWUubWFwKCh0PT5bdF0pKTtyZXR1cm4gZS5tYXAoKGU9PnhtKHQsZSxuKSkpfXJldHVybiB2bSh0KX0pKHQudXNlRmFjdG9yeSx0LmRlcHMpKTooZT0oKT0+dC51c2VWYWx1ZSxuPWdtKTtyZXR1cm4gbmV3IGJtKGUsbil9ZnVuY3Rpb24gX20odCl7cmV0dXJuIG5ldyBobShwbS5nZXQodC5wcm92aWRlKSxbeW0odCldLHQubXVsdGl8fCExKX1mdW5jdGlvbiBDbSh0KXtjb25zdCBlPShmdW5jdGlvbiBuKHQsZSl7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IG89dFtuXSxpPWUuZ2V0KG8ua2V5LmlkKTtpZihpKXtpZihvLm11bHRpUHJvdmlkZXIhPT1pLm11bHRpUHJvdmlkZXIpdGhyb3cgRXJyb3IoYENhbm5vdCBtaXggbXVsdGkgcHJvdmlkZXJzIGFuZCByZWd1bGFyIHByb3ZpZGVycywgZ290OiAke2l9ICR7b31gKTtpZihvLm11bHRpUHJvdmlkZXIpZm9yKGxldCB0PTA7dDxvLnJlc29sdmVkRmFjdG9yaWVzLmxlbmd0aDt0KyspaS5yZXNvbHZlZEZhY3Rvcmllcy5wdXNoKG8ucmVzb2x2ZWRGYWN0b3JpZXNbdF0pO2Vsc2UgZS5zZXQoby5rZXkuaWQsbyl9ZWxzZXtsZXQgdDt0PW8ubXVsdGlQcm92aWRlcj9uZXcgaG0oby5rZXksby5yZXNvbHZlZEZhY3Rvcmllcy5zbGljZSgpLG8ubXVsdGlQcm92aWRlcik6byxlLnNldChvLmtleS5pZCx0KX19cmV0dXJuIGV9KShNbSh0LFtdKS5tYXAoX20pLG5ldyBNYXApO3JldHVybiBBcnJheS5mcm9tKGUudmFsdWVzKCkpfWZ1bmN0aW9uIE1tKHQsZSl7cmV0dXJuIHQuZm9yRWFjaCgodD0+e2lmKHQgaW5zdGFuY2VvZiBRYSllLnB1c2goe3Byb3ZpZGU6dCx1c2VDbGFzczp0fSk7ZWxzZSBpZih0JiYib2JqZWN0Ij09dHlwZW9mIHQmJnZvaWQgMCE9PXQucHJvdmlkZSllLnB1c2godCk7ZWxzZXtpZighQXJyYXkuaXNBcnJheSh0KSl0aHJvdyhmdW5jdGlvbiBuKHQpe3JldHVybiBFcnJvcihgSW52YWxpZCBwcm92aWRlciAtIG9ubHkgaW5zdGFuY2VzIG9mIFByb3ZpZGVyIGFuZCBUeXBlIGFyZSBhbGxvd2VkLCBnb3Q6ICR7dH1gKX0pKHQpO01tKHQsZSl9fSkpLGV9ZnVuY3Rpb24gdm0odCl7Y29uc3QgZT11bS5wYXJhbWV0ZXJzKHQpO2lmKCFlKXJldHVybltdO2lmKGUuc29tZSgodD0+bnVsbD09dCkpKXRocm93IGRtKHQsZSk7cmV0dXJuIGUubWFwKChuPT54bSh0LG4sZSkpKX1mdW5jdGlvbiB4bSh0LGUsbil7bGV0IG89bnVsbCxpPSExO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiBPbShlIGluc3RhbmNlb2Yga3I/ZS50b2tlbjplLGksbnVsbCk7bGV0IGE9bnVsbDtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoOysrdCl7Y29uc3Qgbj1lW3RdO24gaW5zdGFuY2VvZiBRYT9vPW46biBpbnN0YW5jZW9mIGtyP289bi50b2tlbjpuIGluc3RhbmNlb2YgU3I/aT0hMDpuIGluc3RhbmNlb2YgRHJ8fG4gaW5zdGFuY2VvZiBFcj9hPW46biBpbnN0YW5jZW9mIEdhJiYobz1uKX1pZihvPVplKG8pLG51bGwhPW8pcmV0dXJuIE9tKG8saSxhKTt0aHJvdyBkbSh0LG4pfWZ1bmN0aW9uIE9tKHQsZSxuKXtyZXR1cm4gbmV3IGZtKHBtLmdldCh0KSxlLG4pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBQbT17fTtjbGFzcyB3bXtzdGF0aWMgcmVzb2x2ZSh0KXtyZXR1cm4gQ20odCl9c3RhdGljIHJlc29sdmVBbmRDcmVhdGUodCxlKXtjb25zdCBuPXdtLnJlc29sdmUodCk7cmV0dXJuIHdtLmZyb21SZXNvbHZlZFByb3ZpZGVycyhuLGUpfXN0YXRpYyBmcm9tUmVzb2x2ZWRQcm92aWRlcnModCxlKXtyZXR1cm4gbmV3IGttKHQsZSl9fWNsYXNzIGtte2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fY29uc3RydWN0aW9uQ291bnRlcj0wLHRoaXMuX3Byb3ZpZGVycz10LHRoaXMucGFyZW50PWV8fG51bGw7Y29uc3Qgbj10Lmxlbmd0aDt0aGlzLmtleUlkcz1bXSx0aGlzLm9ianM9W107Zm9yKGxldCBlPTA7ZTxuO2UrKyl0aGlzLmtleUlkc1tlXT10W2VdLmtleS5pZCx0aGlzLm9ianNbZV09UG19Z2V0KHQsZT1ncil7cmV0dXJuIHRoaXMuX2dldEJ5S2V5KHBtLmdldCh0KSxudWxsLGUpfXJlc29sdmVBbmRDcmVhdGVDaGlsZCh0KXtjb25zdCBlPXdtLnJlc29sdmUodCk7cmV0dXJuIHRoaXMuY3JlYXRlQ2hpbGRGcm9tUmVzb2x2ZWQoZSl9Y3JlYXRlQ2hpbGRGcm9tUmVzb2x2ZWQodCl7Y29uc3QgZT1uZXcga20odCk7cmV0dXJuIGUucGFyZW50PXRoaXMsZX1yZXNvbHZlQW5kSW5zdGFudGlhdGUodCl7cmV0dXJuIHRoaXMuaW5zdGFudGlhdGVSZXNvbHZlZCh3bS5yZXNvbHZlKFt0XSlbMF0pfWluc3RhbnRpYXRlUmVzb2x2ZWQodCl7cmV0dXJuIHRoaXMuX2luc3RhbnRpYXRlUHJvdmlkZXIodCl9Z2V0UHJvdmlkZXJBdEluZGV4KHQpe2lmKHQ8MHx8dD49dGhpcy5fcHJvdmlkZXJzLmxlbmd0aCl0aHJvdyhmdW5jdGlvbiBlKHQpe3JldHVybiBFcnJvcihgSW5kZXggJHt0fSBpcyBvdXQtb2YtYm91bmRzLmApfSkodCk7cmV0dXJuIHRoaXMuX3Byb3ZpZGVyc1t0XX1fbmV3KHQpe2lmKHRoaXMuX2NvbnN0cnVjdGlvbkNvdW50ZXIrKz50aGlzLl9nZXRNYXhOdW1iZXJPZk9iamVjdHMoKSl0aHJvdyhmdW5jdGlvbiBlKHQsbil7cmV0dXJuIGxtKHQsbiwoZnVuY3Rpb24odCl7cmV0dXJuYENhbm5vdCBpbnN0YW50aWF0ZSBjeWNsaWMgZGVwZW5kZW5jeSEke3NtKHQpfWB9KSl9KSh0aGlzLHQua2V5KTtyZXR1cm4gdGhpcy5faW5zdGFudGlhdGVQcm92aWRlcih0KX1fZ2V0TWF4TnVtYmVyT2ZPYmplY3RzKCl7cmV0dXJuIHRoaXMub2Jqcy5sZW5ndGh9X2luc3RhbnRpYXRlUHJvdmlkZXIodCl7aWYodC5tdWx0aVByb3ZpZGVyKXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248dC5yZXNvbHZlZEZhY3Rvcmllcy5sZW5ndGg7KytuKWVbbl09dGhpcy5faW5zdGFudGlhdGUodCx0LnJlc29sdmVkRmFjdG9yaWVzW25dKTtyZXR1cm4gZX1yZXR1cm4gdGhpcy5faW5zdGFudGlhdGUodCx0LnJlc29sdmVkRmFjdG9yaWVzWzBdKX1faW5zdGFudGlhdGUodCxlKXtjb25zdCBuPWUuZmFjdG9yeTtsZXQgbyxpO3RyeXtvPWUuZGVwZW5kZW5jaWVzLm1hcCgodD0+dGhpcy5fZ2V0QnlSZWZsZWN0aXZlRGVwZW5kZW5jeSh0KSkpfWNhdGNoKGUpe3Rocm93IGUuYWRkS2V5JiZlLmFkZEtleSh0aGlzLHQua2V5KSxlfXRyeXtpPW4oLi4ubyl9Y2F0Y2goZSl7dGhyb3coZnVuY3Rpb24gbih0LGUsbyxpKXtyZXR1cm4gbG0odCxpLChmdW5jdGlvbih0KXtjb25zdCBuPUdlKHRbMF0udG9rZW4pO3JldHVybmAke2UubWVzc2FnZX06IEVycm9yIGR1cmluZyBpbnN0YW50aWF0aW9uIG9mICR7bn0hJHtzbSh0KX0uYH0pLGUpfSkodGhpcyxlLDAsdC5rZXkpfXJldHVybiBpfV9nZXRCeVJlZmxlY3RpdmVEZXBlbmRlbmN5KHQpe3JldHVybiB0aGlzLl9nZXRCeUtleSh0LmtleSx0LnZpc2liaWxpdHksdC5vcHRpb25hbD9udWxsOmdyKX1fZ2V0QnlLZXkodCxlLG4pe3JldHVybiB0PT09a20uSU5KRUNUT1JfS0VZP3RoaXM6ZSBpbnN0YW5jZW9mIERyP3RoaXMuX2dldEJ5S2V5U2VsZih0LG4pOnRoaXMuX2dldEJ5S2V5RGVmYXVsdCh0LG4sZSl9X2dldE9iakJ5S2V5SWQodCl7Zm9yKGxldCBlPTA7ZTx0aGlzLmtleUlkcy5sZW5ndGg7ZSsrKWlmKHRoaXMua2V5SWRzW2VdPT09dClyZXR1cm4gdGhpcy5vYmpzW2VdPT09UG0mJih0aGlzLm9ianNbZV09dGhpcy5fbmV3KHRoaXMuX3Byb3ZpZGVyc1tlXSkpLHRoaXMub2Jqc1tlXTtyZXR1cm4gUG19X3Rocm93T3JOdWxsKHQsZSl7aWYoZSE9PWdyKXJldHVybiBlO3Rocm93KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gbG0odCxlLChmdW5jdGlvbih0KXtyZXR1cm5gTm8gcHJvdmlkZXIgZm9yICR7R2UodFswXS50b2tlbil9ISR7c20odCl9YH0pKX0pKHRoaXMsdCl9X2dldEJ5S2V5U2VsZih0LGUpe2NvbnN0IG49dGhpcy5fZ2V0T2JqQnlLZXlJZCh0LmlkKTtyZXR1cm4gbiE9PVBtP246dGhpcy5fdGhyb3dPck51bGwodCxlKX1fZ2V0QnlLZXlEZWZhdWx0KHQsZSxuKXtsZXQgbztmb3Iobz1uIGluc3RhbmNlb2YgRXI/dGhpcy5wYXJlbnQ6dGhpcztvIGluc3RhbmNlb2Yga207KXtjb25zdCBlPW8sbj1lLl9nZXRPYmpCeUtleUlkKHQuaWQpO2lmKG4hPT1QbSlyZXR1cm4gbjtvPWUucGFyZW50fXJldHVybiBudWxsIT09bz9vLmdldCh0LnRva2VuLGUpOnRoaXMuX3Rocm93T3JOdWxsKHQsZSl9Z2V0IGRpc3BsYXlOYW1lKCl7cmV0dXJuYFJlZmxlY3RpdmVJbmplY3Rvcihwcm92aWRlcnM6IFskeyhmdW5jdGlvbiB0KGUsbil7Y29uc3Qgbz1bXTtmb3IobGV0IHQ9MDt0PGUuX3Byb3ZpZGVycy5sZW5ndGg7Kyt0KW9bdF09bihlLmdldFByb3ZpZGVyQXRJbmRleCh0KSk7cmV0dXJuIG99Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0aGlzLCh0PT4nICInK3Qua2V5LmRpc3BsYXlOYW1lKyciICcpKS5qb2luKCIsICIpfV0pYH10b1N0cmluZygpe3JldHVybiB0aGlzLmRpc3BsYXlOYW1lfX1mdW5jdGlvbiBTbSh0LGU9RW4uRGVmYXVsdCl7Y29uc3Qgbj1maSgpO3JldHVybiBudWxsPT09bj8obmdEZXZNb2RlJiYoZnVuY3Rpb24gbyh0KXtuZ0Rldk1vZGUmJmNuKFJuLHQsIkNhbGxpbmcgybXJtWluamVjdCB3b3VsZCBjYXVzZSBpbmZpbml0ZSByZWN1cnNpb24iKX0pKFNtKSx2cih0LGUpKTp4YShiaSgpLG4sWmUodCksZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBEbSh0LGUsbil7Y29uc3Qgbz1maSgpLGk9U2koKTtpZihGcChvLGksZSkpe2NvbnN0IGE9Z2koKSxyPVlpKCk7bGQoYSxyLG8sdCxlLG9bMTFdLG4sITEpLG5nRGV2TW9kZSYmemQoYS5kYXRhLHIsdCxpKX1yZXR1cm4gRG19ZnVuY3Rpb24gRW0odCxlLG4sbyxpKXtjb25zdCBhPWk/ImNsYXNzIjoic3R5bGUiO1ZkKHQsbixlLmlucHV0c1thXSxhLG8pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBSbSh0LGUsbixvKXtjb25zdCBpPWZpKCksYT1naSgpLHI9Z28rdDtuZ0Rldk1vZGUmJmxuKHdpKCksYS5iaW5kaW5nU3RhcnRJbmRleCwiZWxlbWVudHMgc2hvdWxkIGJlIGNyZWF0ZWQgYmVmb3JlIGFueSBiaW5kaW5ncyIpLG5nRGV2TW9kZSYmX24oaSxyKTtjb25zdCBzPWlbMTFdLGw9aVtyXT1NbChzLGUsKGZ1bmN0aW9uIGMoKXtyZXR1cm4gbWkubEZyYW1lLmN1cnJlbnROYW1lc3BhY2V9KSgpKSxkPWEuZmlyc3RDcmVhdGVQYXNzPyhmdW5jdGlvbiBwKHQsZSxuLG8saSxhLHIpe25nRGV2TW9kZSYmQW8oZSksbmdEZXZNb2RlJiZuZ0Rldk1vZGUuZmlyc3RDcmVhdGVQYXNzKys7Y29uc3Qgcz1lLmNvbnN0cyxsPVpjKGUsdCwyLGksY2kocyxhKSksYz1tZChlLG4sbCxjaShzLHIpKTtyZXR1cm4gbmdEZXZNb2RlJiYoZnVuY3Rpb24gZCh0LGUsbixvKXtpZihudWxsPT09dC5zY2hlbWFzKXJldHVybjtjb25zdCBpPW4udmFsdWU7aWYoIW8mJm51bGwhPT1pJiYoInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MVW5rbm93bkVsZW1lbnQmJkhUTUxVbmtub3duRWxlbWVudCYmZSBpbnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBjdXN0b21FbGVtZW50cyYmaS5pbmRleE9mKCItIik+LTEmJiFjdXN0b21FbGVtZW50cy5nZXQoaSkpJiYhZGQodCxpKSl7bGV0IHQ9YCcke2l9JyBpcyBub3QgYSBrbm93biBlbGVtZW50OlxuYDt0Kz1gMS4gSWYgJyR7aX0nIGlzIGFuIEFuZ3VsYXIgY29tcG9uZW50LCB0aGVuIHZlcmlmeSB0aGF0IGl0IGlzIHBhcnQgb2YgdGhpcyBtb2R1bGUuXG5gLGkmJmkuaW5kZXhPZigiLSIpPi0xP3QrPWAyLiBJZiAnJHtpfScgaXMgYSBXZWIgQ29tcG9uZW50IHRoZW4gYWRkICdDVVNUT01fRUxFTUVOVFNfU0NIRU1BJyB0byB0aGUgJ0BOZ01vZHVsZS5zY2hlbWFzJyBvZiB0aGlzIGNvbXBvbmVudCB0byBzdXBwcmVzcyB0aGlzIG1lc3NhZ2UuYDp0Kz0iMi4gVG8gYWxsb3cgYW55IGVsZW1lbnQgYWRkICdOT19FUlJPUlNfU0NIRU1BJyB0byB0aGUgJ0BOZ01vZHVsZS5zY2hlbWFzJyBvZiB0aGlzIGNvbXBvbmVudC4iLGNvbnNvbGUuZXJyb3IoUWUoIjMwNCIsdCkpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKShlLG8sbCxjKSxudWxsIT09bC5hdHRycyYmVWQobCxsLmF0dHJzLCExKSxudWxsIT09bC5tZXJnZWRBdHRycyYmVWQobCxsLm1lcmdlZEF0dHJzLCEwKSxudWxsIT09ZS5xdWVyaWVzJiZlLnF1ZXJpZXMuZWxlbWVudFN0YXJ0KGUsbCksbH0pKHIsYSxpLGwsZSxuLG8pOmEuZGF0YVtyXTtDaShkLCEwKTtjb25zdCBtPWQubWVyZ2VkQXR0cnM7bnVsbCE9PW0mJmFhKHMsbCxtKTtjb25zdCB1PWQuY2xhc3NlcztudWxsIT09dSYmWWwocyxsLHUpO2NvbnN0IGY9ZC5zdHlsZXM7bnVsbCE9PWYmJldsKHMsbCxmKSw2NCE9KDY0JmQuZmxhZ3MpJiZIbChhLGksbCxkKSwwPT09KGZ1bmN0aW9uIGcoKXtyZXR1cm4gbWkubEZyYW1lLmVsZW1lbnREZXB0aENvdW50fSkoKSYmTHMobCxpKSwoZnVuY3Rpb24gaCgpe21pLmxGcmFtZS5lbGVtZW50RGVwdGhDb3VudCsrfSkoKSx2byhkKSYmKG5kKGEsaSxkKSxlZChhLGQsaSkpLG51bGwhPT1vJiZvZChpLGQpfWZ1bmN0aW9uIEFtKCl7bGV0IHQ9YmkoKTtuZ0Rldk1vZGUmJmhuKHQsIk5vIHBhcmVudCBub2RlIHRvIGNsb3NlLiIpLE1pKCk/dmkoKToobmdEZXZNb2RlJiZTbyhiaSgpKSx0PXQucGFyZW50LENpKHQsITEpKTtjb25zdCBlPXQ7bmdEZXZNb2RlJiZpYShlLDMpLChmdW5jdGlvbiBuKCl7bWkubEZyYW1lLmVsZW1lbnREZXB0aENvdW50LS19KSgpO2NvbnN0IG89Z2koKTtvLmZpcnN0Q3JlYXRlUGFzcyYmKFhpKG8sdCksQ28odCkmJm8ucXVlcmllcy5lbGVtZW50RW5kKHQpKSxudWxsIT1lLmNsYXNzZXNXaXRob3V0SG9zdCYmKGZ1bmN0aW9uIGkodCl7cmV0dXJuIDAhPSgxNiZ0LmZsYWdzKX0pKGUpJiZFbShvLGUsZmkoKSxlLmNsYXNzZXNXaXRob3V0SG9zdCwhMCksbnVsbCE9ZS5zdHlsZXNXaXRob3V0SG9zdCYmKGZ1bmN0aW9uIGEodCl7cmV0dXJuIDAhPSgzMiZ0LmZsYWdzKX0pKGUpJiZFbShvLGUsZmkoKSxlLnN0eWxlc1dpdGhvdXRIb3N0LCExKX1mdW5jdGlvbiBUbSh0LGUsbixvKXtSbSh0LGUsbixvKSxBbSgpfWZ1bmN0aW9uIE5tKHQsZSxuKXtjb25zdCBvPWZpKCksaT1naSgpLGE9dCtnbztuZ0Rldk1vZGUmJl9uKG8sYSksbmdEZXZNb2RlJiZsbih3aSgpLGkuYmluZGluZ1N0YXJ0SW5kZXgsImVsZW1lbnQgY29udGFpbmVycyBzaG91bGQgYmUgY3JlYXRlZCBiZWZvcmUgYW55IGJpbmRpbmdzIik7Y29uc3Qgcj1pLmZpcnN0Q3JlYXRlUGFzcz8oZnVuY3Rpb24gcyh0LGUsbixvLGkpe25nRGV2TW9kZSYmbmdEZXZNb2RlLmZpcnN0Q3JlYXRlUGFzcysrO2NvbnN0IGE9ZS5jb25zdHMscj1jaShhLG8pLHM9WmMoZSx0LDgsIm5nLWNvbnRhaW5lciIscik7cmV0dXJuIG51bGwhPT1yJiZVZChzLHIsITApLG1kKGUsbixzLGNpKGEsaSkpLG51bGwhPT1lLnF1ZXJpZXMmJmUucXVlcmllcy5lbGVtZW50U3RhcnQoZSxzKSxzfSkoYSxpLG8sZSxuKTppLmRhdGFbYV07Q2kociwhMCksbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJDcmVhdGVDb21tZW50Kys7Y29uc3QgbD1vW2FdPW9bMTFdLmNyZWF0ZUNvbW1lbnQobmdEZXZNb2RlPyJuZy1jb250YWluZXIiOiIiKTtIbChpLG8sbCxyKSxMcyhsLG8pLHZvKHIpJiYobmQoaSxvLHIpLGVkKGkscixvKSksbnVsbCE9biYmb2QobyxyKX1mdW5jdGlvbiB6bSgpe2xldCB0PWJpKCk7Y29uc3QgZT1naSgpO01pKCk/dmkoKToobmdEZXZNb2RlJiZTbyh0KSx0PXQucGFyZW50LENpKHQsITEpKSxuZ0Rldk1vZGUmJmlhKHQsOCksZS5maXJzdENyZWF0ZVBhc3MmJihYaShlLHQpLENvKHQpJiZlLnF1ZXJpZXMuZWxlbWVudEVuZCh0KSl9ZnVuY3Rpb24gSW0odCxlLG4pe05tKHQsZSxuKSx6bSgpfWZ1bmN0aW9uIEhtKCl7cmV0dXJuIGZpKCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEZtKHQpe3JldHVybiEhdCYmImZ1bmN0aW9uIj09dHlwZW9mIHQudGhlbn1mdW5jdGlvbiBMbSh0KXtyZXR1cm4hIXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnN1YnNjcmliZX1rbS5JTkpFQ1RPUl9LRVk9cG0uZ2V0KHJwKTtjb25zdCBCbT1MbTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gVm0odCxlLG4sbyl7Y29uc3QgaT1maSgpLGE9Z2koKSxyPWJpKCk7cmV0dXJuIFVtKGEsaSxpWzExXSxyLHQsZSwhIW4sbyksVm19ZnVuY3Rpb24gam0odCxlKXtjb25zdCBuPWJpKCksbz1maSgpLGk9Z2koKTtyZXR1cm4gVW0oaSxvLExkKFRpKGkuZGF0YSksbixvKSxuLHQsZSwhMSksam19ZnVuY3Rpb24gVW0odCxlLG4sbyxpLGEscixzKXtjb25zdCBsPXZvKG8pLGM9dC5maXJzdENyZWF0ZVBhc3MmJkZkKHQpLGQ9ZVs4XSxwPUhkKGUpO25nRGV2TW9kZSYmaWEobywxNSk7bGV0IG09ITA7aWYoMyZvLnR5cGV8fHMpe2NvbnN0IHU9b2kobyxlKSxmPXM/cyh1KTp1LGc9cC5sZW5ndGgsaD1zP3Q9PnMoZWkodFtvLmluZGV4XSkpOm8uaW5kZXg7aWYoJG8obikpe2xldCByPW51bGw7aWYoIXMmJmwmJihyPShmdW5jdGlvbiB1KHQsZSxuLG8pe2NvbnN0IGk9dC5jbGVhbnVwO2lmKG51bGwhPWkpZm9yKGxldCB0PTA7dDxpLmxlbmd0aC0xO3QrPTIpe2NvbnN0IGE9aVt0XTtpZihhPT09biYmaVt0KzFdPT09byl7Y29uc3Qgbj1lWzddLG89aVt0KzJdO3JldHVybiBuLmxlbmd0aD5vP25bb106bnVsbH0ic3RyaW5nIj09dHlwZW9mIGEmJih0Kz0yKX1yZXR1cm4gbnVsbH0pKHQsZSxpLG8uaW5kZXgpKSxudWxsIT09cikoci5fX25nTGFzdExpc3RlbmVyRm5fX3x8cikuX19uZ05leHRMaXN0ZW5lckZuX189YSxyLl9fbmdMYXN0TGlzdGVuZXJGbl9fPWEsbT0hMTtlbHNle2E9V20obyxlLGQsYSwhMSk7Y29uc3QgdD1uLmxpc3RlbihmLGksYSk7bmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJBZGRFdmVudExpc3RlbmVyKysscC5wdXNoKGEsdCksYyYmYy5wdXNoKGksaCxnLGcrMSl9fWVsc2UgYT1XbShvLGUsZCxhLCEwKSxmLmFkZEV2ZW50TGlzdGVuZXIoaSxhLHIpLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyQWRkRXZlbnRMaXN0ZW5lcisrLHAucHVzaChhKSxjJiZjLnB1c2goaSxoLGcscil9ZWxzZSBhPVdtKG8sZSxkLGEsITEpO2NvbnN0IGY9by5vdXRwdXRzO2xldCBnO2lmKG0mJm51bGwhPT1mJiYoZz1mW2ldKSl7Y29uc3QgdD1nLmxlbmd0aDtpZih0KWZvcihsZXQgbj0wO248dDtuKz0yKXtjb25zdCB0PWdbbl07bmdEZXZNb2RlJiZfbihlLHQpO2NvbnN0IHI9Z1tuKzFdLHM9ZVt0XSxsPXNbcl07aWYobmdEZXZNb2RlJiYhQm0obCkpdGhyb3cgbmV3IEVycm9yKGBAT3V0cHV0ICR7cn0gbm90IGluaXRpYWxpemVkIGluICcke3MuY29uc3RydWN0b3IubmFtZX0nLmApO2NvbnN0IGQ9bC5zdWJzY3JpYmUoYSksbT1wLmxlbmd0aDtwLnB1c2goYSxkKSxjJiZjLnB1c2goaSxvLmluZGV4LG0sLShtKzEpKX19fWZ1bmN0aW9uIEdtKHQsZSxuLG8pe3RyeXtyZXR1cm4gcW8oNixlLG4pLCExIT09bihvKX1jYXRjaChlKXtyZXR1cm4gQmQodCxlKSwhMX1maW5hbGx5e3FvKDcsZSxuKX19ZnVuY3Rpb24gV20odCxlLG4sbyxpKXtyZXR1cm4gZnVuY3Rpb24gYShyKXtpZihyPT09RnVuY3Rpb24pcmV0dXJuIG87Y29uc3Qgcz0yJnQuZmxhZ3M/cmkodC5pbmRleCxlKTplOzA9PSgzMiZlWzJdKSYmRWQocyk7bGV0IGw9R20oZSxuLG8sciksYz1hLl9fbmdOZXh0TGlzdGVuZXJGbl9fO2Zvcig7YzspbD1HbShlLG4sYyxyKSYmbCxjPWMuX19uZ05leHRMaXN0ZW5lckZuX187cmV0dXJuIGkmJiExPT09bCYmKHIucHJldmVudERlZmF1bHQoKSxyLnJldHVyblZhbHVlPSExKSxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIFltKHQ9MSl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuKG1pLmxGcmFtZS5jb250ZXh0TFZpZXc9KGZ1bmN0aW9uIGUodCxuKXtmb3IoO3Q+MDspbmdEZXZNb2RlJiZobihuWzE1XSwiRGVjbGFyYXRpb24gdmlldyBzaG91bGQgYmUgZGVmaW5lZCBpZiBuZXN0aW5nIGxldmVsIGlzIGdyZWF0ZXIgdGhhbiAwLiIpLG49blsxNV0sdC0tO3JldHVybiBufSkodCxtaS5sRnJhbWUuY29udGV4dExWaWV3KSlbOF19KSh0KX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gcW0odCxlKXtsZXQgbj1udWxsO2NvbnN0IG89KGZ1bmN0aW9uIGkodCl7Y29uc3QgZT10LmF0dHJzO2lmKG51bGwhPWUpe2NvbnN0IHQ9ZS5pbmRleE9mKDUpO2lmKDA9PSgxJnQpKXJldHVybiBlW3QrMV19cmV0dXJuIG51bGx9KSh0KTtmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKyl7Y29uc3QgYT1lW2ldO2lmKCIqIiE9PWEpe2lmKG51bGw9PT1vP2VjKHQsYSwhMCk6bmMobyxhKSlyZXR1cm4gaX1lbHNlIG49aX1yZXR1cm4gbn1mdW5jdGlvbiBabSh0KXtjb25zdCBlPWZpKClbMTZdWzZdO2lmKCFlLnByb2plY3Rpb24pe2NvbnN0IG49ZS5wcm9qZWN0aW9uPWlyKHQ/dC5sZW5ndGg6MSxudWxsKSxvPW4uc2xpY2UoKTtsZXQgaT1lLmNoaWxkO2Zvcig7bnVsbCE9PWk7KXtjb25zdCBlPXQ/cW0oaSx0KTowO251bGwhPT1lJiYob1tlXT9vW2VdLnByb2plY3Rpb25OZXh0PWk6bltlXT1pLG9bZV09aSksaT1pLm5leHR9fX1mdW5jdGlvbiBYbSh0LGU9MCxuKXtjb25zdCBvPWZpKCksaT1naSgpLGE9WmMoaSxnbyt0LDE2LG51bGwsbnx8bnVsbCk7bnVsbD09PWEucHJvamVjdGlvbiYmKGEucHJvamVjdGlvbj1lKSx2aSgpLDY0IT0oNjQmYS5mbGFncykmJihmdW5jdGlvbiByKHQsZSxuKXtHbChlWzExXSwwLGUsbix3bCh0LG4sZSksQWwobi5wYXJlbnR8fGVbNl0sbixlKSl9KShpLG8sYSl9ZnVuY3Rpb24gS20odCxlLG4pe3JldHVybiBKbSh0LCIiLGUsIiIsbiksS219ZnVuY3Rpb24gSm0odCxlLG4sbyxpKXtjb25zdCBhPWZpKCkscj1HcChhLGUsbixvKTtpZihyIT09YWMpe2NvbnN0IG49Z2koKSxzPVlpKCk7bGQobixzLGEsdCxyLGFbMTFdLGksITEpLG5nRGV2TW9kZSYmemQobi5kYXRhLHMsdCx3aSgpLTEsZSxvKX1yZXR1cm4gSm19ZnVuY3Rpb24gUW0odCxlLG4sbyxpKXtjb25zdCBhPXRbbisxXSxyPW51bGw9PT1lO2xldCBzPW8/Y2MoYSk6bWMoYSksbD0hMTtmb3IoOzAhPT1zJiYoITE9PT1sfHxyKTspe25nRGV2TW9kZSYmX24odCxzKTtjb25zdCBuPXRbcysxXTskbSh0W3NdLGUpJiYobD0hMCx0W3MrMV09bz9nYyhuKTpwYyhuKSkscz1vP2NjKG4pOm1jKG4pfWwmJih0W24rMV09bz9wYyhhKTpnYyhhKSl9ZnVuY3Rpb24gJG0odCxlKXtyZXR1cm4gbmdEZXZNb2RlJiZjbihBcnJheS5pc0FycmF5KGUpLCEwLCJFeHBlY3RlZCB0aGF0ICd0U3R5bGluZ0tleScgaGFzIGJlZW4gdW53cmFwcGVkIiksbnVsbD09PXR8fG51bGw9PWV8fChBcnJheS5pc0FycmF5KHQpP3RbMV06dCk9PT1lfHwhKCFBcnJheS5pc0FycmF5KHQpfHwic3RyaW5nIiE9dHlwZW9mIGUpJiZzcih0LGUpPj0wfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCB0dT17dGV4dEVuZDowLGtleTowLGtleUVuZDowLHZhbHVlOjAsdmFsdWVFbmQ6MH07ZnVuY3Rpb24gZXUodCl7cmV0dXJuIHQuc3Vic3RyaW5nKHR1LmtleSx0dS5rZXlFbmQpfWZ1bmN0aW9uIG51KHQpe3JldHVybiB0LnN1YnN0cmluZyh0dS52YWx1ZSx0dS52YWx1ZUVuZCl9ZnVuY3Rpb24gb3UodCxlKXtjb25zdCBuPXR1LnRleHRFbmQ7cmV0dXJuIG49PT1lPy0xOihlPXR1LmtleUVuZD0oZnVuY3Rpb24gbyh0LGUsbil7Zm9yKDtlPG4mJnQuY2hhckNvZGVBdChlKT4zMjspZSsrO3JldHVybiBlfSkodCx0dS5rZXk9ZSxuKSxydSh0LGUsbikpfWZ1bmN0aW9uIGl1KHQsZSl7Y29uc3Qgbj10dS50ZXh0RW5kO2xldCBvPXR1LmtleT1ydSh0LGUsbik7cmV0dXJuIG49PT1vPy0xOihvPXR1LmtleUVuZD0oZnVuY3Rpb24gaSh0LGUsbil7bGV0IG87Zm9yKDtlPG4mJig0NT09PShvPXQuY2hhckNvZGVBdChlKSl8fDk1PT09b3x8KC0zMyZvKT49NjUmJigtMzMmbyk8PTkwfHxvPj00OCYmbzw9NTcpOyllKys7cmV0dXJuIGV9KSh0LG8sbiksbz1zdSh0LG8sbiw1OCksbz10dS52YWx1ZT1ydSh0LG8sbiksbz10dS52YWx1ZUVuZD0oZnVuY3Rpb24gYSh0LGUsbil7bGV0IG89LTEsaT0tMSxhPS0xLHI9ZSxzPXI7Zm9yKDtyPG47KXtjb25zdCBsPXQuY2hhckNvZGVBdChyKyspO2lmKDU5PT09bClyZXR1cm4gczszND09PWx8fDM5PT09bD9zPXI9bHUodCxsLHIsbik6ZT09PXItNCYmODU9PT1hJiY4Mj09PWkmJjc2PT09byYmNDA9PT1sP3M9cj1sdSh0LDQxLHIsbik6bD4zMiYmKHM9ciksYT1pLGk9byxvPS0zMyZsfXJldHVybiBzfSkodCxvLG4pLHN1KHQsbyxuLDU5KSl9ZnVuY3Rpb24gYXUodCl7dHUua2V5PTAsdHUua2V5RW5kPTAsdHUudmFsdWU9MCx0dS52YWx1ZUVuZD0wLHR1LnRleHRFbmQ9dC5sZW5ndGh9ZnVuY3Rpb24gcnUodCxlLG4pe2Zvcig7ZTxuJiZ0LmNoYXJDb2RlQXQoZSk8PTMyOyllKys7cmV0dXJuIGV9ZnVuY3Rpb24gc3UodCxlLG4sbyl7cmV0dXJuKGU9cnUodCxlLG4pKTxuJiYobmdEZXZNb2RlJiZ0LmNoYXJDb2RlQXQoZSkhPT1vJiZjdSh0LFN0cmluZy5mcm9tQ2hhckNvZGUobyksZSksZSsrKSxlfWZ1bmN0aW9uIGx1KHQsZSxuLG8pe2xldCBpPS0xLGE9bjtmb3IoO2E8bzspe2NvbnN0IG49dC5jaGFyQ29kZUF0KGErKyk7aWYobj09ZSYmOTIhPT1pKXJldHVybiBhO2k9OTI9PW4mJjkyPT09aT8wOm59dGhyb3cgbmdEZXZNb2RlP2N1KHQsU3RyaW5nLmZyb21DaGFyQ29kZShlKSxvKTpuZXcgRXJyb3J9ZnVuY3Rpb24gY3UodCxlLG4pe3Rocm93IG5nRGV2TW9kZSYmbG4oInN0cmluZyI9PXR5cGVvZiB0LCEwLCJTdHJpbmcgZXhwZWN0ZWQgaGVyZSIpLGJuKGBNYWxmb3JtZWQgc3R5bGUgYXQgbG9jYXRpb24gJHtufSBpbiBzdHJpbmcgJ2ArdC5zdWJzdHJpbmcoMCxuKSsiWz4+Iit0LnN1YnN0cmluZyhuLG4rMSkrIjw8XSIrdC5zdWJzdHIobisxKStgJy4gRXhwZWN0aW5nICcke2V9Jy5gKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gZHUodCxlLG4pe3JldHVybiBodSh0LGUsbiwhMSksZHV9ZnVuY3Rpb24gcHUodCxlKXtyZXR1cm4gaHUodCxlLG51bGwsITApLHB1fWZ1bmN0aW9uIG11KHQpe2J1KHZ1LHV1LHQsITEpfWZ1bmN0aW9uIHV1KHQsZSl7Zm9yKGxldCBuPShmdW5jdGlvbiBuKHQpe3JldHVybiBhdSh0KSxpdSh0LHJ1KHQsMCx0dS50ZXh0RW5kKSl9KShlKTtuPj0wO249aXUoZSxuKSl2dSh0LGV1KGUpLG51KGUpKX1mdW5jdGlvbiBmdSh0KXtidShhcixndSx0LCEwKX1mdW5jdGlvbiBndSh0LGUpe2ZvcihsZXQgbj0oZnVuY3Rpb24gbih0KXtyZXR1cm4gYXUodCksb3UodCxydSh0LDAsdHUudGV4dEVuZCkpfSkoZSk7bj49MDtuPW91KGUsbikpYXIodCxldShlKSwhMCl9ZnVuY3Rpb24gaHUodCxlLG4sbyl7Y29uc3QgaT1maSgpLGE9Z2koKSxyPURpKDIpO2EuZmlyc3RVcGRhdGVQYXNzJiZfdShhLHQscixvKSxlIT09YWMmJkZwKGkscixlKSYmeHUoYSxhLmRhdGFbR2koKV0saSxpWzExXSx0LGlbcisxXT0oZnVuY3Rpb24gcyh0LGUpe3JldHVybiBudWxsPT10fHwoInN0cmluZyI9PXR5cGVvZiBlP3QrPWU6Im9iamVjdCI9PXR5cGVvZiB0JiYodD1HZSh0cyh0KSkpKSx0fSkoZSxuKSxvLHIpfWZ1bmN0aW9uIGJ1KHQsZSxuLG8pe2NvbnN0IGk9Z2koKSxhPURpKDIpO2kuZmlyc3RVcGRhdGVQYXNzJiZfdShpLG51bGwsYSxvKTtjb25zdCByPWZpKCk7aWYobiE9PWFjJiZGcChyLGEsbikpe2NvbnN0IHM9aS5kYXRhW0dpKCldO2lmKHd1KHMsbykmJiF5dShpLGEpKXtpZihuZ0Rldk1vZGUpe2NvbnN0IHQ9aS5kYXRhW2FdO2xuKEFycmF5LmlzQXJyYXkodCk/dFsxXTp0LCExLCJTdHlsaW5nIGxpbmtlZCBsaXN0IHNoYWRvdyBpbnB1dCBzaG91bGQgYmUgbWFya2VkIGFzICdmYWxzZSciKX1sZXQgdD1vP3MuY2xhc3Nlc1dpdGhvdXRIb3N0OnMuc3R5bGVzV2l0aG91dEhvc3Q7bmdEZXZNb2RlJiYhMT09PW8mJm51bGwhPT10JiZsbih0LmVuZHNXaXRoKCI7IiksITAsIkV4cGVjdGluZyBzdGF0aWMgcG9ydGlvbiB0byBlbmQgd2l0aCAnOyciKSxudWxsIT09dCYmKG49V2UodCxufHwiIikpLEVtKGkscyxyLG4sbyl9ZWxzZSEoZnVuY3Rpb24gbCh0LGUsbixvLGksYSxyLHMpe2k9PT1hYyYmKGk9V24pO2xldCBsPTAsYz0wLGQ9MDxpLmxlbmd0aD9pWzBdOm51bGwscD0wPGEubGVuZ3RoP2FbMF06bnVsbDtmb3IoO251bGwhPT1kfHxudWxsIT09cDspe25nRGV2TW9kZSYmbW4obCw5OTksIkFyZSB3ZSBzdHVjayBpbiBpbmZpbml0ZSBsb29wPyIpLG5nRGV2TW9kZSYmbW4oYyw5OTksIkFyZSB3ZSBzdHVjayBpbiBpbmZpbml0ZSBsb29wPyIpO2NvbnN0IG09bDxpLmxlbmd0aD9pW2wrMV06dm9pZCAwLHU9YzxhLmxlbmd0aD9hW2MrMV06dm9pZCAwO2xldCBmLGc9bnVsbDtkPT09cD8obCs9MixjKz0yLG0hPT11JiYoZz1wLGY9dSkpOm51bGw9PT1wfHxudWxsIT09ZCYmZDxwPyhsKz0yLGc9ZCk6KG5nRGV2TW9kZSYmaG4ocCwiRXhwZWN0aW5nIHRvIGhhdmUgYSB2YWxpZCBrZXkiKSxjKz0yLGc9cCxmPXUpLG51bGwhPT1nJiZ4dSh0LGUsbixvLGcsZixyLHMpLGQ9bDxpLmxlbmd0aD9pW2xdOm51bGwscD1jPGEubGVuZ3RoP2FbY106bnVsbH19KShpLHMscixyWzExXSxyW2ErMV0sclthKzFdPShmdW5jdGlvbiBzKHQsZSxuKXtpZihudWxsPT1ufHwiIj09PW4pcmV0dXJuIFduO2NvbnN0IG89W10saT10cyhuKTtpZihBcnJheS5pc0FycmF5KGkpKWZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXQobyxpW2VdLCEwKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgaSlmb3IoY29uc3QgZSBpbiBpKWkuaGFzT3duUHJvcGVydHkoZSkmJnQobyxlLGlbZV0pO2Vsc2Uic3RyaW5nIj09dHlwZW9mIGk/ZShvLGkpOm5nRGV2TW9kZSYmYm4oIlVuc3VwcG9ydGVkIHN0eWxpbmcgdHlwZSAiK3R5cGVvZiBpKyI6ICIraSk7cmV0dXJuIG99KSh0LGUsbiksbyxhKX19ZnVuY3Rpb24geXUodCxlKXtyZXR1cm4gZT49dC5leHBhbmRvU3RhcnRJbmRleH1mdW5jdGlvbiBfdSh0LGUsbixvKXtuZ0Rldk1vZGUmJlRvKHQpO2NvbnN0IGk9dC5kYXRhO2lmKG51bGw9PT1pW24rMV0pe2NvbnN0IGE9aVtHaSgpXTtuZ0Rldk1vZGUmJmhuKGEsIlROb2RlIGV4cGVjdGVkIik7Y29uc3Qgcj15dSh0LG4pO3d1KGEsbykmJm51bGw9PT1lJiYhciYmKGU9ITEpLGU9KGZ1bmN0aW9uIGEodCxlLG4sbyl7Y29uc3QgaT1UaSh0KTtsZXQgYT1vP2UucmVzaWR1YWxDbGFzc2VzOmUucmVzaWR1YWxTdHlsZXM7aWYobnVsbD09PWkpMD09PShvP2UuY2xhc3NCaW5kaW5nczplLnN0eWxlQmluZGluZ3MpJiYobj1NdShuPUN1KG51bGwsdCxlLG4sbyksZS5hdHRycyxvKSxhPW51bGwpO2Vsc2V7Y29uc3Qgcj1lLmRpcmVjdGl2ZVN0eWxpbmdMYXN0O2lmKC0xPT09cnx8dFtyXSE9PWkpaWYobj1DdShpLHQsZSxuLG8pLG51bGw9PT1hKXtsZXQgbj0oZnVuY3Rpb24gcih0LGUsbil7Y29uc3Qgbz1uP2UuY2xhc3NCaW5kaW5nczplLnN0eWxlQmluZGluZ3M7aWYoMCE9PW1jKG8pKXJldHVybiB0W2NjKG8pXX0pKHQsZSxvKTt2b2lkIDAhPT1uJiZBcnJheS5pc0FycmF5KG4pJiYobj1DdShudWxsLHQsZSxuWzFdLG8pLG49TXUobixlLmF0dHJzLG8pLChmdW5jdGlvbiBzKHQsZSxuLG8pe2NvbnN0IGk9bj9lLmNsYXNzQmluZGluZ3M6ZS5zdHlsZUJpbmRpbmdzO25nRGV2TW9kZSYmY24obWMoaSksMCwiRXhwZWN0aW5nIHRvIGhhdmUgYXQgbGVhc3Qgb25lIHRlbXBsYXRlIHN0eWxpbmcgYmluZGluZy4iKSx0W2NjKGkpXT1vfSkodCxlLG8sbikpfWVsc2UgYT0oZnVuY3Rpb24gbCh0LGUsbil7bGV0IG87Y29uc3QgaT1lLmRpcmVjdGl2ZUVuZDtuZ0Rldk1vZGUmJmNuKGUuZGlyZWN0aXZlU3R5bGluZ0xhc3QsLTEsIkJ5IHRoZSB0aW1lIHRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgYXQgbGVhc3Qgb25lIGhvc3RCaW5kaW5ncy1ub2RlIHN0eWxpbmcgaW5zdHJ1Y3Rpb24gbXVzdCBoYXZlIGV4ZWN1dGVkLiIpO2ZvcihsZXQgYT0xK2UuZGlyZWN0aXZlU3R5bGluZ0xhc3Q7YTxpO2ErKylvPU11KG8sdFthXS5ob3N0QXR0cnMsbik7cmV0dXJuIE11KG8sZS5hdHRycyxuKX0pKHQsZSxvKX1yZXR1cm4gdm9pZCAwIT09YSYmKG8/ZS5yZXNpZHVhbENsYXNzZXM9YTplLnJlc2lkdWFsU3R5bGVzPWEpLG59KShpLGEsZSxvKSwoZnVuY3Rpb24gcih0LGUsbixvLGksYSl7bmdEZXZNb2RlJiZUbyhnaSgpKTtsZXQgcj1hP2UuY2xhc3NCaW5kaW5nczplLnN0eWxlQmluZGluZ3Mscz1jYyhyKSxsPW1jKHIpO3Rbb109bjtsZXQgYyxkPSExO2lmKEFycmF5LmlzQXJyYXkobikpe2NvbnN0IHQ9bjtjPXRbMV0sKG51bGw9PT1jfHxzcih0LGMpPjApJiYoZD0hMCl9ZWxzZSBjPW47aWYoaSlpZigwIT09bCl7Y29uc3QgZT1jYyh0W3MrMV0pO3RbbysxXT1sYyhlLHMpLDAhPT1lJiYodFtlKzFdPXVjKHRbZSsxXSxvKSksdFtzKzFdPShmdW5jdGlvbiBwKHQsZSl7cmV0dXJuIG5nRGV2TW9kZSYmYW4odCwiZXhwZWN0ZWQgbnVtYmVyIiksbmdEZXZNb2RlJiZybihlLDAsMzI3NjcpLDEzMTA3MSZ0fGU8PDE3fSkodFtzKzFdLG8pfWVsc2UgdFtvKzFdPWxjKHMsMCksMCE9PXMmJih0W3MrMV09dWModFtzKzFdLG8pKSxzPW87ZWxzZSB0W28rMV09bGMobCwwKSxuZ0Rldk1vZGUmJmxuKDAhPT1zJiYwPT09bCwhMSwiQWRkaW5nIHRlbXBsYXRlIGJpbmRpbmdzIGFmdGVyIGhvc3RCaW5kaW5ncyBpcyBub3QgYWxsb3dlZC4iKSwwPT09cz9zPW86dFtsKzFdPXVjKHRbbCsxXSxvKSxsPW87ZCYmKHRbbysxXT1wYyh0W28rMV0pKSxRbSh0LGMsbywhMCksUW0odCxjLG8sITEpLChmdW5jdGlvbiBtKHQsZSxuLG8saSl7Y29uc3QgYT1pP3QucmVzaWR1YWxDbGFzc2VzOnQucmVzaWR1YWxTdHlsZXM7bnVsbCE9YSYmInN0cmluZyI9PXR5cGVvZiBlJiZzcihhLGUpPj0wJiYobltvKzFdPWdjKG5bbysxXSkpfSkoZSxjLHQsbyxhKSxyPWxjKHMsbCksYT9lLmNsYXNzQmluZGluZ3M9cjplLnN0eWxlQmluZGluZ3M9cn0pKGksYSxlLG4scixvKX19ZnVuY3Rpb24gQ3UodCxlLG4sbyxpKXtsZXQgYT1udWxsO2NvbnN0IHI9bi5kaXJlY3RpdmVFbmQ7bGV0IHM9bi5kaXJlY3RpdmVTdHlsaW5nTGFzdDtmb3IoLTE9PT1zP3M9bi5kaXJlY3RpdmVTdGFydDpzKys7czxyJiYoYT1lW3NdLG5nRGV2TW9kZSYmaG4oYSwiZXhwZWN0ZWQgdG8gYmUgZGVmaW5lZCIpLG89TXUobyxhLmhvc3RBdHRycyxpKSxhIT09dCk7KXMrKztyZXR1cm4gbnVsbCE9PXQmJihuLmRpcmVjdGl2ZVN0eWxpbmdMYXN0PXMpLG99ZnVuY3Rpb24gTXUodCxlLG4pe2NvbnN0IG89bj8xOjI7bGV0IGk9LTE7aWYobnVsbCE9PWUpZm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspe2NvbnN0IHI9ZVthXTsibnVtYmVyIj09dHlwZW9mIHI/aT1yOmk9PT1vJiYoQXJyYXkuaXNBcnJheSh0KXx8KHQ9dm9pZCAwPT09dD9bXTpbIiIsdF0pLGFyKHQsciwhIW58fGVbKythXSkpfXJldHVybiB2b2lkIDA9PT10P251bGw6dH1mdW5jdGlvbiB2dSh0LGUsbil7YXIodCxlLHRzKG4pKX1mdW5jdGlvbiB4dSh0LGUsbixvLGksYSxyLHMpe2lmKCEoMyZlLnR5cGUpKXJldHVybjtjb25zdCBsPXQuZGF0YSxjPWxbcysxXTtQdShmYyhjKT9PdShsLGUsbixpLG1jKGMpLHIpOnZvaWQgMCl8fChQdShhKXx8ZGMoYykmJihhPU91KGwsbnVsbCxuLGkscyxyKSksKGZ1bmN0aW9uIGQodCxlLG4sbyxpKXtjb25zdCBhPSRvKHQpO2lmKGUpaT8obmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJBZGRDbGFzcysrLGE/dC5hZGRDbGFzcyhuLG8pOihuZ0Rldk1vZGUmJmhuKG4uY2xhc3NMaXN0LCJIVE1MRWxlbWVudCBleHBlY3RlZCIpLG4uY2xhc3NMaXN0LmFkZChvKSkpOihuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlclJlbW92ZUNsYXNzKyssYT90LnJlbW92ZUNsYXNzKG4sbyk6bi5jbGFzc0xpc3QucmVtb3ZlKG8pKTtlbHNle2xldCBlPS0xPT09by5pbmRleE9mKCItIik/dm9pZCAwOmNsLkRhc2hDYXNlO2lmKG51bGw9PWkpbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJSZW1vdmVTdHlsZSsrLGE/dC5yZW1vdmVTdHlsZShuLG8sZSk6bi5zdHlsZS5yZW1vdmVQcm9wZXJ0eShvKTtlbHNle2NvbnN0IHI9InN0cmluZyI9PXR5cGVvZiBpJiZpLmVuZHNXaXRoKCIhaW1wb3J0YW50Iik7ciYmKGk9aS5zbGljZSgwLC0xMCksZXw9Y2wuSW1wb3J0YW50KSxuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlclNldFN0eWxlKyssYT90LnNldFN0eWxlKG4sbyxpLGUpOihuZ0Rldk1vZGUmJmhuKG4uc3R5bGUsIkhUTUxFbGVtZW50IGV4cGVjdGVkIiksbi5zdHlsZS5zZXRQcm9wZXJ0eShvLGkscj8iaW1wb3J0YW50IjoiIikpfX19KShvLHIsbmkoR2koKSxuKSxpLGEpKX1mdW5jdGlvbiBPdSh0LGUsbixvLGksYSl7Y29uc3Qgcj1udWxsPT09ZTtsZXQgcztmb3IoO2k+MDspe2NvbnN0IGU9dFtpXSxhPUFycmF5LmlzQXJyYXkoZSksbD1hP2VbMV06ZSxjPW51bGw9PT1sO2xldCBkPW5baSsxXTtkPT09YWMmJihkPWM/V246dm9pZCAwKTtsZXQgcD1jP3JyKGQsbyk6bD09PW8/ZDp2b2lkIDA7aWYoYSYmIVB1KHApJiYocD1ycihlLG8pKSxQdShwKSYmKHM9cCxyKSlyZXR1cm4gcztjb25zdCBtPXRbaSsxXTtpPXI/Y2MobSk6bWMobSl9aWYobnVsbCE9PWUpe2xldCB0PWE/ZS5yZXNpZHVhbENsYXNzZXM6ZS5yZXNpZHVhbFN0eWxlcztudWxsIT10JiYocz1ycih0LG8pKX1yZXR1cm4gc31mdW5jdGlvbiBQdSh0KXtyZXR1cm4gdm9pZCAwIT09dH1mdW5jdGlvbiB3dSh0LGUpe3JldHVybiAwIT0odC5mbGFncyYoZT8xNjozMikpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBrdSh0LGU9IiIpe2NvbnN0IG49ZmkoKSxvPWdpKCksaT10K2dvO25nRGV2TW9kZSYmbG4od2koKSxvLmJpbmRpbmdTdGFydEluZGV4LCJ0ZXh0IG5vZGVzIHNob3VsZCBiZSBjcmVhdGVkIGJlZm9yZSBhbnkgYmluZGluZ3MiKSxuZ0Rldk1vZGUmJl9uKG4saSk7Y29uc3QgYT1vLmZpcnN0Q3JlYXRlUGFzcz9aYyhvLGksMSxlLG51bGwpOm8uZGF0YVtpXSxyPW5baV09eWwoblsxMV0sZSk7SGwobyxuLHIsYSksQ2koYSwhMSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIFN1KHQpe3JldHVybiBEdSgiIix0LCIiKSxTdX1mdW5jdGlvbiBEdSh0LGUsbil7Y29uc3Qgbz1maSgpLGk9R3Aobyx0LGUsbik7cmV0dXJuIGkhPT1hYyYmamQobyxHaSgpLGkpLER1fWZ1bmN0aW9uIEV1KHQsZSxuLG8saSl7Y29uc3QgYT1maSgpLHI9V3AoYSx0LGUsbixvLGkpO3JldHVybiByIT09YWMmJmpkKGEsR2koKSxyKSxFdX1mdW5jdGlvbiBSdSh0LGUsbixvLGksYSxyKXtjb25zdCBzPWZpKCksbD1ZcChzLHQsZSxuLG8saSxhLHIpO3JldHVybiBsIT09YWMmJmpkKHMsR2koKSxsKSxSdX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIEF1KHQsZSxuKXtidShhcixndSxHcChmaSgpLHQsZSxuKSwhMCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBUdSh0LGUsbil7Y29uc3Qgbz1maSgpLGk9U2koKTtpZihGcChvLGksZSkpe2NvbnN0IGE9Z2koKSxyPVlpKCk7bGQoYSxyLG8sdCxlLG9bMTFdLG4sITApLG5nRGV2TW9kZSYmemQoYS5kYXRhLHIsdCxpKX1yZXR1cm4gVHV9ZnVuY3Rpb24gTnUodCxlLG4pe2NvbnN0IG89ZmkoKSxpPVNpKCk7aWYoRnAobyxpLGUpKXtjb25zdCBhPWdpKCkscj1ZaSgpO2xkKGEscixvLHQsZSxMZChUaShhLmRhdGEpLHIsbyksbiwhMCksbmdEZXZNb2RlJiZ6ZChhLmRhdGEscix0LGkpfXJldHVybiBOdX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmKGpuLm5nSTE4bkNsb3N1cmVNb2RlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ29vZyYmImZ1bmN0aW9uIj09dHlwZW9mIGdvb2cuZ2V0TXNnKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgenU9dm9pZCAwO3ZhciBJdT1bImVuIixbWyJhIiwicCJdLFsiQU0iLCJQTSJdLHp1XSxbWyJBTSIsIlBNIl0senUsenVdLFtbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLFsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl1dLHp1LFtbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLFsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sWyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdXSx6dSxbWyJCIiwiQSJdLFsiQkMiLCJBRCJdLFsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl1dLDAsWzYsMF0sWyJNL2QveXkiLCJNTU0gZCwgeSIsIk1NTU0gZCwgeSIsIkVFRUUsIE1NTU0gZCwgeSJdLFsiaDptbSBhIiwiaDptbTpzcyBhIiwiaDptbTpzcyBhIHoiLCJoOm1tOnNzIGEgenp6eiJdLFsiezF9LCB7MH0iLHp1LCJ7MX0gJ2F0JyB7MH0iLHp1XSxbIi4iLCIsIiwiOyIsIiUiLCIrIiwiLSIsIkUiLCLDlyIsIuKAsCIsIuKIniIsIk5hTiIsIjoiXSxbIiMsIyMwLiMjIyIsIiMsIyMwJSIsIsKkIywjIzAuMDAiLCIjRTAiXSwiVVNEIiwiJCIsIlVTIERvbGxhciIse30sImx0ciIsZnVuY3Rpb24gSHUodCl7Y29uc3QgZT1NYXRoLmZsb29yKE1hdGguYWJzKHQpKSxuPXQudG9TdHJpbmcoKS5yZXBsYWNlKC9eW14uXSpcLj8vLCIiKS5sZW5ndGg7cmV0dXJuIDE9PT1lJiYwPT09bj8xOjV9XTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IEZ1PXt9O2Z1bmN0aW9uIEx1KHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIi0iKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KTtsZXQgbz1WdShlKTtpZihvKXJldHVybiBvO2NvbnN0IGk9ZS5zcGxpdCgiLSIpWzBdO2lmKG89VnUoaSksbylyZXR1cm4gbztpZigiZW4iPT09aSlyZXR1cm4gSXU7dGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIGxvY2FsZSBkYXRhIGZvciB0aGUgbG9jYWxlICIke3R9Ii5gKX1mdW5jdGlvbiBCdSh0KXtyZXR1cm4gTHUodClbanUuUGx1cmFsQ2FzZV19ZnVuY3Rpb24gVnUodCl7cmV0dXJuIHQgaW4gRnV8fChGdVt0XT1qbi5uZyYmam4ubmcuY29tbW9uJiZqbi5uZy5jb21tb24ubG9jYWxlcyYmam4ubmcuY29tbW9uLmxvY2FsZXNbdF0pLEZ1W3RdfXZhciBqdTshKGZ1bmN0aW9uKHQpe3RbdC5Mb2NhbGVJZD0wXT0iTG9jYWxlSWQiLHRbdC5EYXlQZXJpb2RzRm9ybWF0PTFdPSJEYXlQZXJpb2RzRm9ybWF0Iix0W3QuRGF5UGVyaW9kc1N0YW5kYWxvbmU9Ml09IkRheVBlcmlvZHNTdGFuZGFsb25lIix0W3QuRGF5c0Zvcm1hdD0zXT0iRGF5c0Zvcm1hdCIsdFt0LkRheXNTdGFuZGFsb25lPTRdPSJEYXlzU3RhbmRhbG9uZSIsdFt0Lk1vbnRoc0Zvcm1hdD01XT0iTW9udGhzRm9ybWF0Iix0W3QuTW9udGhzU3RhbmRhbG9uZT02XT0iTW9udGhzU3RhbmRhbG9uZSIsdFt0LkVyYXM9N109IkVyYXMiLHRbdC5GaXJzdERheU9mV2Vlaz04XT0iRmlyc3REYXlPZldlZWsiLHRbdC5XZWVrZW5kUmFuZ2U9OV09IldlZWtlbmRSYW5nZSIsdFt0LkRhdGVGb3JtYXQ9MTBdPSJEYXRlRm9ybWF0Iix0W3QuVGltZUZvcm1hdD0xMV09IlRpbWVGb3JtYXQiLHRbdC5EYXRlVGltZUZvcm1hdD0xMl09IkRhdGVUaW1lRm9ybWF0Iix0W3QuTnVtYmVyU3ltYm9scz0xM109Ik51bWJlclN5bWJvbHMiLHRbdC5OdW1iZXJGb3JtYXRzPTE0XT0iTnVtYmVyRm9ybWF0cyIsdFt0LkN1cnJlbmN5Q29kZT0xNV09IkN1cnJlbmN5Q29kZSIsdFt0LkN1cnJlbmN5U3ltYm9sPTE2XT0iQ3VycmVuY3lTeW1ib2wiLHRbdC5DdXJyZW5jeU5hbWU9MTddPSJDdXJyZW5jeU5hbWUiLHRbdC5DdXJyZW5jaWVzPTE4XT0iQ3VycmVuY2llcyIsdFt0LkRpcmVjdGlvbmFsaXR5PTE5XT0iRGlyZWN0aW9uYWxpdHkiLHRbdC5QbHVyYWxDYXNlPTIwXT0iUGx1cmFsQ2FzZSIsdFt0LkV4dHJhRGF0YT0yMV09IkV4dHJhRGF0YSJ9KShqdXx8KGp1PXt9KSk7Y29uc3QgVXU9WyJ6ZXJvIiwib25lIiwidHdvIiwiZmV3IiwibWFueSJdLEd1PSJlbi1VUyIsV3U9e21hcmtlcjoiZWxlbWVudCJ9LFl1PXttYXJrZXI6IklDVSJ9O3ZhciBxdTshKGZ1bmN0aW9uKHQpe3RbdC5TSElGVD0yXT0iU0hJRlQiLHRbdC5BUFBFTkRfRUFHRVJMWT0xXT0iQVBQRU5EX0VBR0VSTFkiLHRbdC5DT01NRU5UPTJdPSJDT01NRU5UIn0pKHF1fHwocXU9e30pKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBadT1HdTtmdW5jdGlvbiBYdSh0KXtobih0LCJFeHBlY3RlZCBsb2NhbGVJZCB0byBiZSBkZWZpbmVkIiksInN0cmluZyI9PXR5cGVvZiB0JiYoWnU9dC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywiLSIpKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIEt1KHQsZSxuKXtjb25zdCBvPWUuaW5zZXJ0QmVmb3JlSW5kZXgsaT1BcnJheS5pc0FycmF5KG8pP29bMF06bztyZXR1cm4gbnVsbD09PWk/VGwodCwwLG4pOihuZ0Rldk1vZGUmJl9uKG4saSksZWkobltpXSkpfWZ1bmN0aW9uIEp1KHQsZSxuLG8saSl7Y29uc3QgYT1lLmluc2VydEJlZm9yZUluZGV4O2lmKEFycmF5LmlzQXJyYXkoYSkpe25nRGV2TW9kZSYmeW4obyk7bGV0IHI9byxzPW51bGw7aWYoMyZlLnR5cGV8fChzPXIscj1pKSxudWxsIT09ciYmMD09KDImZS5mbGFncykpZm9yKGxldCBlPTE7ZTxhLmxlbmd0aDtlKyspU2wodCxyLG5bYVtlXV0scywhMSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBRdSh0LGUpe2lmKG5nRGV2TW9kZSYmbG4oZS5pbnNlcnRCZWZvcmVJbmRleCxudWxsLCJXZSBleHBlY3QgdGhhdCBpbnNlcnRCZWZvcmVJbmRleCBpcyBub3Qgc2V0IiksdC5wdXNoKGUpLHQubGVuZ3RoPjEpZm9yKGxldCBuPXQubGVuZ3RoLTI7bj49MDtuLS0pe2NvbnN0IG89dFtuXTskdShvKXx8dGYobyxlKSYmbnVsbD09PWVmKG8pJiZuZihvLGUuaW5kZXgpfX1mdW5jdGlvbiAkdSh0KXtyZXR1cm4hKDY0JnQudHlwZSl9ZnVuY3Rpb24gdGYodCxlKXtyZXR1cm4gJHUoZSl8fHQuaW5kZXg+ZS5pbmRleH1mdW5jdGlvbiBlZih0KXtjb25zdCBlPXQuaW5zZXJ0QmVmb3JlSW5kZXg7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZVswXTplfWZ1bmN0aW9uIG5mKHQsZSl7Y29uc3Qgbj10Lmluc2VydEJlZm9yZUluZGV4O0FycmF5LmlzQXJyYXkobik/blswXT1lOihJbChLdSxKdSksdC5pbnNlcnRCZWZvcmVJbmRleD1lKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gb2YodCxlKXtjb25zdCBuPXQuZGF0YVtlXTtpZihudWxsPT09bnx8InN0cmluZyI9PXR5cGVvZiBuKXJldHVybiBudWxsOyFuZ0Rldk1vZGV8fG4uaGFzT3duUHJvcGVydHkoInRWaWV3cyIpfHxuLmhhc093blByb3BlcnR5KCJjdXJyZW50Q2FzZUxWaWV3SW5kZXgiKXx8Ym4oIldlIGV4cGVjdCB0byBnZXQgJ251bGwnfCdUSWN1J3wnVEljdUNvbnRhaW5lcicsIGJ1dCBnb3Q6ICIrbik7Y29uc3Qgbz1uLmhhc093blByb3BlcnR5KCJjdXJyZW50Q2FzZUxWaWV3SW5kZXgiKT9uOm4udmFsdWU7cmV0dXJuIG5nRGV2TW9kZSYma28obyksb31mdW5jdGlvbiBhZih0LGUsbil7Y29uc3Qgbz1YYyh0LG4sNjQsbnVsbCxudWxsKTtyZXR1cm4gUXUoZSxvKSxvfWZ1bmN0aW9uIHJmKHQsZSl7Y29uc3Qgbj1lW3QuY3VycmVudENhc2VMVmlld0luZGV4XTtyZXR1cm4gbnVsbD09PW4/bjpuPDA/fm46bn1mdW5jdGlvbiBzZih0KXtyZXR1cm4gdD4+PjE3fWZ1bmN0aW9uIGxmKHQpe3JldHVybigxMzEwNzAmdCk+Pj4xfWZ1bmN0aW9uIGNmKHQpe3JldHVybiAxJnR9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgZGY9MCxwZj0wO2Z1bmN0aW9uIG1mKHQsZSxuLG8pe25nRGV2TW9kZSYmeW4obyk7Y29uc3QgaT1uWzExXTtsZXQgYSxyPW51bGw7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspe2NvbnN0IGw9ZVtzXTtpZigic3RyaW5nIj09dHlwZW9mIGwpe2NvbnN0IHQ9ZVsrK3NdO251bGw9PT1uW3RdJiYobmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJDcmVhdGVUZXh0Tm9kZSsrLG5nRGV2TW9kZSYmX24obix0KSxuW3RdPXlsKGksbCkpfWVsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBsKXN3aXRjaCgxJmwpe2Nhc2UgMDpjb25zdCBjPXNmKGwpO2xldCBkLHA7aWYobnVsbD09PXImJihyPWMsYT1SbChpLG8pKSxjPT09cj8oZD1vLHA9YSk6KGQ9bnVsbCxwPWVpKG5bY10pKSxudWxsIT09cCl7bmdEZXZNb2RlJiZ5bihwKTtjb25zdCBlPWxmKGwpO25nRGV2TW9kZSYmZm4oZSxnbywiTWlzc2luZyByZWYiKTtjb25zdCBvPW5bZV07bmdEZXZNb2RlJiZ5bihvKSxTbChpLHAsbyxkLCExKTtjb25zdCBhPW9mKHQsZSk7aWYobnVsbCE9PWEmJiJvYmplY3QiPT10eXBlb2YgYSl7bmdEZXZNb2RlJiZrbyhhKTtjb25zdCBlPXJmKGEsbik7bnVsbCE9PWUmJm1mKHQsYS5jcmVhdGVbZV0sbixuW2EuYW5jaG9ySWR4XSl9fWJyZWFrO2Nhc2UgMTpjb25zdCBtPWVbKytzXSx1PWVbKytzXTtNZChpLG5pKGw+Pj4xLG4pLG51bGwsbnVsbCxtLHUsbnVsbCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgbXV0YXRlIG9wZXJhdGlvbiBmb3IgIiR7bH0iYCl9ZWxzZSBzd2l0Y2gobCl7Y2FzZSBZdTpjb25zdCB0PWVbKytzXSxvPWVbKytzXTtudWxsPT09bltvXSYmKG5nRGV2TW9kZSYmbG4odHlwZW9mIHQsInN0cmluZyIsYEV4cGVjdGVkICIke3R9IiB0byBiZSBhIGNvbW1lbnQgbm9kZSB2YWx1ZWApLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyQ3JlYXRlQ29tbWVudCsrLG5nRGV2TW9kZSYmTm8obixvKSxMcyhuW29dPUNsKGksdCksbikpO2JyZWFrO2Nhc2UgV3U6Y29uc3QgYT1lWysrc10scj1lWysrc107bnVsbD09PW5bcl0mJihuZ0Rldk1vZGUmJmxuKHR5cGVvZiBhLCJzdHJpbmciLGBFeHBlY3RlZCAiJHthfSIgdG8gYmUgYW4gZWxlbWVudCBub2RlIHRhZyBuYW1lYCksbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJDcmVhdGVFbGVtZW50KyssbmdEZXZNb2RlJiZObyhuLHIpLExzKG5bcl09TWwoaSxhLG51bGwpLG4pKTticmVhaztkZWZhdWx0Om5nRGV2TW9kZSYmYm4oYFVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgbXV0YXRlIG9wZXJhdGlvbiBmb3IgIiR7bH0iYCl9fX1mdW5jdGlvbiB1Zih0LGUsbixvLGkpe2ZvcihsZXQgYT0wO2E8bi5sZW5ndGg7YSsrKXtjb25zdCByPW5bYV0scz1uWysrYV07aWYociZpKXtsZXQgaT0iIjtmb3IobGV0IHI9YSsxO3I8PWErcztyKyspe2NvbnN0IGE9bltyXTtpZigic3RyaW5nIj09dHlwZW9mIGEpaSs9YTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgYSlpZihhPDApaSs9JGUoZVtvLWFdKTtlbHNle2NvbnN0IHM9YT4+PjI7c3dpdGNoKDMmYSl7Y2FzZSAxOmNvbnN0IGE9blsrK3JdLGw9blsrK3JdLGM9dC5kYXRhW3NdO25nRGV2TW9kZSYmaG4oYywiRXhwZXJ0aW5nIFROb2RlIG9yIHN0cmluZyIpLCJzdHJpbmciPT10eXBlb2YgYz9NZChlWzExXSxlW3NdLG51bGwsYyxhLGksbCk6bGQodCxjLGUsYSxpLGVbMTFdLGwsITEpO2JyZWFrO2Nhc2UgMDpjb25zdCBkPWVbc107bnVsbCE9PWQmJl9sKGVbMTFdLGQsaSk7YnJlYWs7Y2FzZSAyOmdmKHQsb2YodCxzKSxlLGkpO2JyZWFrO2Nhc2UgMzpmZih0LG9mKHQscyksbyxlKX19fX1lbHNle2NvbnN0IGk9blthKzFdO2lmKGk+MCYmMz09KDMmaSkpe2NvbnN0IG49b2YodCxpPj4+Mik7ZVtuLmN1cnJlbnRDYXNlTFZpZXdJbmRleF08MCYmZmYodCxuLG8sZSl9fWErPXN9fWZ1bmN0aW9uIGZmKHQsZSxuLG8pe25nRGV2TW9kZSYmX24obyxlLmN1cnJlbnRDYXNlTFZpZXdJbmRleCk7bGV0IGk9b1tlLmN1cnJlbnRDYXNlTFZpZXdJbmRleF07aWYobnVsbCE9PWkpe2xldCBhPWRmO2k8MCYmKGk9b1tlLmN1cnJlbnRDYXNlTFZpZXdJbmRleF09fmksYT0tMSksdWYodCxvLGUudXBkYXRlW2ldLG4sYSl9fWZ1bmN0aW9uIGdmKHQsZSxuLG8pe2NvbnN0IGk9KGZ1bmN0aW9uIGEodCxlKXtsZXQgbj10LmNhc2VzLmluZGV4T2YoZSk7aWYoLTE9PT1uKXN3aXRjaCh0LnR5cGUpe2Nhc2UgMTp7Y29uc3Qgbz0oZnVuY3Rpb24gaSh0LGUpe2NvbnN0IG49QnUoZSkocGFyc2VJbnQodCwxMCkpLG89VXVbbl07cmV0dXJuIHZvaWQgMCE9PW8/bzoib3RoZXIifSkoZSwoZnVuY3Rpb24gbygpe3JldHVybiBadX0pKCkpO249dC5jYXNlcy5pbmRleE9mKG8pLC0xPT09biYmIm90aGVyIiE9PW8mJihuPXQuY2FzZXMuaW5kZXhPZigib3RoZXIiKSk7YnJlYWt9Y2FzZSAwOm49dC5jYXNlcy5pbmRleE9mKCJvdGhlciIpfXJldHVybi0xPT09bj9udWxsOm59Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoZSxvKTtpZihyZihlLG4pIT09aSYmKGhmKHQsZSxuKSxuW2UuY3VycmVudENhc2VMVmlld0luZGV4XT1udWxsPT09aT9udWxsOn5pLG51bGwhPT1pKSl7Y29uc3Qgbz1uW2UuYW5jaG9ySWR4XTtvJiYobmdEZXZNb2RlJiZ5bihvKSxtZih0LGUuY3JlYXRlW2ldLG4sbykpfX1mdW5jdGlvbiBoZih0LGUsbil7bGV0IG89cmYoZSxuKTtpZihudWxsIT09byl7Y29uc3QgaT1lLnJlbW92ZVtvXTtmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKyl7Y29uc3Qgbz1pW2VdO2lmKG8+MCl7Y29uc3QgdD1uaShvLG4pO251bGwhPT10JiZWbChuWzExXSx0KX1lbHNlIGhmKHQsb2YodCx+byksbil9fX1mdW5jdGlvbiBiZigpe2NvbnN0IHQ9W107bGV0IGUsbixvPS0xO2Z1bmN0aW9uIGkodCxlKXtvPTA7Y29uc3QgaT1yZih0LGUpO251bGwhPT1pPyhuZ0Rldk1vZGUmJnJuKGksMCx0LmNhc2VzLmxlbmd0aC0xKSxuPXQucmVtb3ZlW2ldKTpuPVdufWZ1bmN0aW9uIGEoKXtpZihvPG4ubGVuZ3RoKXtjb25zdCByPW5bbysrXTtpZihuZ0Rldk1vZGUmJmFuKHIsIkV4cGVjdGluZyBPcENvZGUgbnVtYmVyIikscj4wKXtjb25zdCB0PWVbcl07cmV0dXJuIG5nRGV2TW9kZSYmeW4odCksdH17dC5wdXNoKG8sbik7Y29uc3Qgcz1lWzFdLmRhdGFbfnJdO3JldHVybiBuZ0Rldk1vZGUmJmtvKHMpLGkocyxlKSxhKCl9fXJldHVybiAwPT09dC5sZW5ndGg/bnVsbDoobj10LnBvcCgpLG89dC5wb3AoKSxhKCkpfXJldHVybiBmdW5jdGlvbiByKG4sbyl7Zm9yKGU9bzt0Lmxlbmd0aDspdC5wb3AoKTtyZXR1cm4gbmdEZXZNb2RlJiZPbyhuLG8pLGkobi52YWx1ZSxvKSxhfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24geWYodCl7Y29uc3QgZT10fHwoQXJyYXkuaXNBcnJheSh0aGlzKT90aGlzOltdKTtsZXQgbj1bXTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbz1lW3QrK10saT0obyZxdS5BUFBFTkRfRUFHRVJMWSk9PT1xdS5BUFBFTkRfRUFHRVJMWSxhPW8+Pj5xdS5TSElGVDtuLnB1c2goYGxWaWV3WyR7YX1dID0gZG9jdW1lbnQuJHsobyZxdS5DT01NRU5UKT09PXF1LkNPTU1FTlQ/ImNyZWF0ZUNvbW1lbnQiOiJjcmVhdGVUZXh0In0oJHtKU09OLnN0cmluZ2lmeShlW3RdKX0pO2ApLGkmJm4ucHVzaChgcGFyZW50LmFwcGVuZENoaWxkKGxWaWV3WyR7YX1dKTtgKX1yZXR1cm4gbn1mdW5jdGlvbiBfZih0KXtjb25zdCBlPW5ldyB2Zih0fHwoQXJyYXkuaXNBcnJheSh0aGlzKT90aGlzOltdKSk7bGV0IG49W107ZnVuY3Rpb24gbyh0KXtjb25zdCBuPXQ+Pj4yO3N3aXRjaCgzJnQpe2Nhc2UgMDpyZXR1cm5gKGxWaWV3WyR7bn1dIGFzIFRleHQpLnRleHRDb250ZW50ID0gJCQkYDtjYXNlIDE6Y29uc3QgdD1lLmNvbnN1bWVTdHJpbmcoKSxvPWUuY29uc3VtZUZ1bmN0aW9uKCk7cmV0dXJuYChsVmlld1ske259XSBhcyBFbGVtZW50KS5zZXRBdHRyaWJ1dGUoJyR7dH0nLCAke28/YCgke299KSgkJCQpYDoiJCQkIn0pYDtjYXNlIDI6cmV0dXJuYGljdVN3aXRjaENhc2UoJHtufSwgJCQkKWA7Y2FzZSAzOnJldHVybmBpY3VVcGRhdGVDYXNlKCR7bn0pYH10aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgT3BDb2RlIil9Zm9yKDtlLmhhc01vcmUoKTspe2xldCB0PWUuY29uc3VtZU51bWJlcigpLGk9ZS5jb25zdW1lTnVtYmVyKCk7Y29uc3QgYT1lLmkraSxyPVtdO2xldCBzPSIiO2Zvcig7ZS5pPGE7KXtsZXQgdD1lLmNvbnN1bWVOdW1iZXJPclN0cmluZygpO2lmKCJzdHJpbmciPT10eXBlb2YgdClzKz10O2Vsc2UgaWYodDwwKXMrPSIke2xWaWV3W2kiK3QrIl19IjtlbHNle2NvbnN0IGU9byh0KTtyLnB1c2goZS5yZXBsYWNlKCIkJCQiLCJgIitzKyJgIikrIjsiKSxzPSIifX1uLnB1c2goYGlmIChtYXNrICYgMGIke3QudG9TdHJpbmcoMil9KSB7ICR7ci5qb2luKCIgIil9IH1gKX1yZXR1cm4gbn1mdW5jdGlvbiBDZih0KXtjb25zdCBlPW5ldyB2Zih0fHwoQXJyYXkuaXNBcnJheSh0aGlzKT90aGlzOltdKSk7bGV0IG49W107ZnVuY3Rpb24gbyh0KXtjb25zdCBuPXNmKHQpLG89bGYodCk7c3dpdGNoKGNmKHQpKXtjYXNlIDA6cmV0dXJuYChsVmlld1ske259XSBhcyBFbGVtZW50KS5hcHBlbmRDaGlsZChsVmlld1ske2l9XSlgO2Nhc2UgMTpyZXR1cm5gKGxWaWV3WyR7b31dIGFzIEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgiJHtlLmNvbnN1bWVTdHJpbmcoKX0iLCAiJHtlLmNvbnN1bWVTdHJpbmcoKX0iKWB9dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIE9wQ29kZTogIitjZih0KSl9bGV0IGk9LTE7Zm9yKDtlLmhhc01vcmUoKTspe2xldCB0PWUuY29uc3VtZU51bWJlclN0cmluZ09yTWFya2VyKCk7aWYodD09PVl1KXtjb25zdCB0PWUuY29uc3VtZVN0cmluZygpO2k9ZS5jb25zdW1lTnVtYmVyKCksbi5wdXNoKGBsVmlld1ske2l9XSA9IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiR7dH0iKWApfWVsc2UgaWYodD09PVd1KXtjb25zdCB0PWUuY29uc3VtZVN0cmluZygpO2k9ZS5jb25zdW1lTnVtYmVyKCksbi5wdXNoKGBsVmlld1ske2l9XSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIiR7dH0iKWApfWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiB0KWk9ZS5jb25zdW1lTnVtYmVyKCksbi5wdXNoKGBsVmlld1ske2l9XSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIke3R9IilgKTtlbHNle2lmKCJudW1iZXIiIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgdmFsdWUiKTt7Y29uc3QgZT1vKHQpO2UmJm4ucHVzaChlKX19fXJldHVybiBufWZ1bmN0aW9uIE1mKHQpe2NvbnN0IGU9dHx8KEFycmF5LmlzQXJyYXkodGhpcyk/dGhpczpbXSk7bGV0IG49W107Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG89ZVt0XTtuLnB1c2gobz4wP2ByZW1vdmUobFZpZXdbJHtvfV0pYDpgcmVtb3ZlTmVzdGVkSUNVKCR7fm99KWApfXJldHVybiBufWNsYXNzIHZme2NvbnN0cnVjdG9yKHQpe3RoaXMuaT0wLHRoaXMuY29kZXM9dH1oYXNNb3JlKCl7cmV0dXJuIHRoaXMuaTx0aGlzLmNvZGVzLmxlbmd0aH1jb25zdW1lTnVtYmVyKCl7bGV0IHQ9dGhpcy5jb2Rlc1t0aGlzLmkrK107cmV0dXJuIGFuKHQsImV4cGVjdGluZyBudW1iZXIgaW4gT3BDb2RlIiksdH1jb25zdW1lU3RyaW5nKCl7bGV0IHQ9dGhpcy5jb2Rlc1t0aGlzLmkrK107cmV0dXJuIHNuKHQsImV4cGVjdGluZyBzdHJpbmcgaW4gT3BDb2RlIiksdH1jb25zdW1lRnVuY3Rpb24oKXtsZXQgdD10aGlzLmNvZGVzW3RoaXMuaSsrXTtpZihudWxsPT09dHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQpcmV0dXJuIHQ7dGhyb3cgbmV3IEVycm9yKCJleHBlY3RpbmcgZnVuY3Rpb24gaW4gT3BDb2RlIil9Y29uc3VtZU51bWJlck9yU3RyaW5nKCl7bGV0IHQ9dGhpcy5jb2Rlc1t0aGlzLmkrK107cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHxhbih0LCJleHBlY3RpbmcgbnVtYmVyIG9yIHN0cmluZyBpbiBPcENvZGUiKSx0fWNvbnN1bWVOdW1iZXJTdHJpbmdPck1hcmtlcigpe2xldCB0PXRoaXMuY29kZXNbdGhpcy5pKytdO3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0fHx0PT1ZdXx8dD09V3V8fGFuKHQsImV4cGVjdGluZyBudW1iZXIsIHN0cmluZywgSUNVX01BUktFUiBvciBFTEVNRU5UX01BUktFUiBpbiBPcENvZGUiKSx0fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgeGY9L++/vShcZCspOj9cZCrvv70vZ2ksT2Y9Lyh7XHMq77+9XGQrOj9cZCrvv71ccyosXHMqXFN7Nn1ccyosW1xzXFNdKn0pL2dpLFBmPS/vv70oXGQrKe+/vS8sd2Y9L15ccyoo77+9XGQrOj9cZCrvv70pXHMqLFxzKihzZWxlY3R8cGx1cmFsKVxzKiwvLGtmPS/vv71cLz9cKihcZCs6XGQrKe+/vS9naSxTZj0v77+9KFwvP1sjKl1cZCspOj9cZCrvv70vZ2ksRGY9L1x1RTUwMC9nO2Z1bmN0aW9uIEVmKHQsZSxuLG8saSxhLHIpe2NvbnN0IHM9S2ModCxvLDEsbnVsbCk7bGV0IGw9czw8cXUuU0hJRlQsYz1faSgpO2U9PT1jJiYoYz1udWxsKSxudWxsPT09YyYmKGx8PXF1LkFQUEVORF9FQUdFUkxZKSxyJiYobHw9cXUuQ09NTUVOVCwoZnVuY3Rpb24gZCh0KXt2b2lkIDA9PT1kbCYmKGRsPXQoKSl9KShiZikpLGkucHVzaChsLG51bGw9PT1hPyIiOmEpO2NvbnN0IHA9WGModCxzLHI/MzI6MSxudWxsPT09YT9uZ0Rldk1vZGU/Int7P319IjoiIjphLG51bGwpO1F1KG4scCk7Y29uc3QgbT1wLmluZGV4O3JldHVybiBDaShwLCExKSxudWxsIT09YyYmZSE9PWMmJihmdW5jdGlvbiB1KHQsZSl7bmdEZXZNb2RlJiZ3byh0KTtsZXQgbj10Lmluc2VydEJlZm9yZUluZGV4O251bGw9PT1uPyhJbChLdSxKdSksbj10Lmluc2VydEJlZm9yZUluZGV4PVtudWxsLGVdKToobG4oQXJyYXkuaXNBcnJheShuKSwhMCwiRXhwZWN0aW5nIGFycmF5IGhlcmUiKSxuLnB1c2goZSkpfSkoYyxtKSxwfWZ1bmN0aW9uIFJmKHQsZSxuLG8saSxhLHIpe2NvbnN0IHM9ci5tYXRjaCh4ZiksbD1FZih0LGUsbixhLG8scz9udWxsOnIsITEpO3MmJkFmKGkscixsLmluZGV4LG51bGwsMCxudWxsKX1mdW5jdGlvbiBBZih0LGUsbixvLGksYSl7bmdEZXZNb2RlJiZnbihuLGdvLCJJbmRleCBtdXN0IGJlIGluIGFic29sdXRlIExWaWV3IG9mZnNldCIpO2NvbnN0IHI9dC5sZW5ndGgscz1yKzE7dC5wdXNoKG51bGwsbnVsbCk7Y29uc3QgbD1yKzI7bmdEZXZNb2RlJiZiYyh0LF9mKTtjb25zdCBjPWUuc3BsaXQoeGYpO2xldCBkPTA7Zm9yKGxldCBlPTA7ZTxjLmxlbmd0aDtlKyspe2NvbnN0IG49Y1tlXTtpZigxJmUpe2NvbnN0IGU9aStwYXJzZUludChuLDEwKTt0LnB1c2goLTEtZSksZHw9TmYoZSl9ZWxzZSIiIT09biYmdC5wdXNoKG4pfXJldHVybiB0LnB1c2gobjw8Mnwobz8xOjApKSxvJiZ0LnB1c2gobyxhKSx0W3JdPWQsdFtzXT10Lmxlbmd0aC1sLGR9ZnVuY3Rpb24gVGYodCl7bGV0IGU9MDtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7Y29uc3Qgbz10W25dOyJudW1iZXIiPT10eXBlb2YgbyYmbzwwJiZlKyt9cmV0dXJuIGV9ZnVuY3Rpb24gTmYodCl7cmV0dXJuIDE8PE1hdGgubWluKHQsMzEpfWZ1bmN0aW9uIHpmKHQpe2xldCBlLG4sbz0iIixpPTAsYT0hMTtmb3IoO251bGwhPT0oZT1rZi5leGVjKHQpKTspYT9lWzBdPT09YO+/vS8qJHtufe+/vWAmJihpPWUuaW5kZXgsYT0hMSk6KG8rPXQuc3Vic3RyaW5nKGksZS5pbmRleCtlWzBdLmxlbmd0aCksbj1lWzFdLGE9ITApO3JldHVybiBuZ0Rldk1vZGUmJmxuKGEsITEsYFRhZyBtaXNtYXRjaDogdW5hYmxlIHRvIGZpbmQgdGhlIGVuZCBvZiB0aGUgc3ViLXRlbXBsYXRlIGluIHRoZSB0cmFuc2xhdGlvbiAiJHt0fSJgKSxvKz10LnN1YnN0cihpKSxvfWZ1bmN0aW9uIElmKHQsZSxuLG8saSxhKXtuZ0Rldk1vZGUmJmhuKGksIklDVSBleHByZXNzaW9uIG11c3QgYmUgZGVmaW5lZCIpO2xldCByPTA7Y29uc3Qgcz17dHlwZTppLnR5cGUsY3VycmVudENhc2VMVmlld0luZGV4OktjKHQsZSwxLG51bGwpLGFuY2hvcklkeDphLGNhc2VzOltdLGNyZWF0ZTpbXSxyZW1vdmU6W10sdXBkYXRlOltdfTshKGZ1bmN0aW9uIGwodCxlLG4pe3QucHVzaChOZihlLm1haW5CaW5kaW5nKSwyLC0xLWUubWFpbkJpbmRpbmcsbjw8MnwyKX0pKG4saSxhKSwoZnVuY3Rpb24gYyh0LGUsbil7Y29uc3Qgbz10LmRhdGFbZV07bmdEZXZNb2RlJiZsbihudWxsPT09b3x8by5oYXNPd25Qcm9wZXJ0eSgidFZpZXdzIiksITAsIldlIGV4cGVjdCB0byBnZXQgJ251bGwnfCdUSWN1Q29udGFpbmVyJyIpLG51bGw9PT1vP3QuZGF0YVtlXT1uOihuZ0Rldk1vZGUmJmlhKG8sMzIpLG8udmFsdWU9bil9KSh0LGEscyk7Y29uc3QgZD1pLnZhbHVlcztmb3IobGV0IGE9MDthPGQubGVuZ3RoO2ErKyl7Y29uc3QgbD1kW2FdLGM9W107Zm9yKGxldCB0PTA7dDxsLmxlbmd0aDt0Kyspe2NvbnN0IGU9bFt0XTtpZigic3RyaW5nIiE9dHlwZW9mIGUpe2NvbnN0IG49Yy5wdXNoKGUpLTE7bFt0XT1gXHgzYyEtLe+/vSR7bn3vv70tLVx4M2VgfX1yPUxmKHQscyxlLG4sbyxpLmNhc2VzW2FdLGwuam9pbigiIiksYyl8cn1yJiYoZnVuY3Rpb24gcCh0LGUsbil7dC5wdXNoKGUsMSxuPDwyfDMpfSkobixyLGEpfWZ1bmN0aW9uIEhmKHQpe2NvbnN0IGU9W10sbj1bXTtsZXQgbz0xLGk9MDtjb25zdCBhPUZmKHQ9dC5yZXBsYWNlKHdmLChmdW5jdGlvbih0LGUsbil7cmV0dXJuIG89InNlbGVjdCI9PT1uPzA6MSxpPXBhcnNlSW50KGUuc3Vic3RyKDEpLDEwKSwiIn0pKSk7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDspe2xldCBpPWFbdCsrXS50cmltKCk7MT09PW8mJihpPWkucmVwbGFjZSgvXHMqKD86PSk/KFx3KylccyovLCIkMSIpKSxpLmxlbmd0aCYmZS5wdXNoKGkpO2NvbnN0IHI9RmYoYVt0KytdKTtlLmxlbmd0aD5uLmxlbmd0aCYmbi5wdXNoKHIpfXJldHVybnt0eXBlOm8sbWFpbkJpbmRpbmc6aSxjYXNlczplLHZhbHVlczpufX1mdW5jdGlvbiBGZih0KXtpZighdClyZXR1cm5bXTtsZXQgZT0wO2NvbnN0IG49W10sbz1bXSxpPS9be31dL2c7bGV0IGE7Zm9yKGkubGFzdEluZGV4PTA7YT1pLmV4ZWModCk7KXtjb25zdCBpPWEuaW5kZXg7aWYoIn0iPT1hWzBdKXtpZihuLnBvcCgpLDA9PW4ubGVuZ3RoKXtjb25zdCBuPXQuc3Vic3RyaW5nKGUsaSk7d2YudGVzdChuKT9vLnB1c2goSGYobikpOm8ucHVzaChuKSxlPWkrMX19ZWxzZXtpZigwPT1uLmxlbmd0aCl7Y29uc3Qgbj10LnN1YnN0cmluZyhlLGkpO28ucHVzaChuKSxlPWkrMX1uLnB1c2goInsiKX19Y29uc3Qgcj10LnN1YnN0cmluZyhlKTtyZXR1cm4gby5wdXNoKHIpLG99ZnVuY3Rpb24gTGYodCxlLG4sbyxpLGEscixzKXtjb25zdCBsPVtdLGM9W10sZD1bXTtuZ0Rldk1vZGUmJihiYyhsLENmKSxiYyhjLE1mKSxiYyhkLF9mKSksZS5jYXNlcy5wdXNoKGEpLGUuY3JlYXRlLnB1c2gobCksZS5yZW1vdmUucHVzaChjKSxlLnVwZGF0ZS5wdXNoKGQpO2NvbnN0IHA9b3MoSm8oKSkuZ2V0SW5lcnRCb2R5RWxlbWVudChyKTtuZ0Rldk1vZGUmJmhuKHAsIlVuYWJsZSB0byBnZW5lcmF0ZSBpbmVydCBib2R5IGVsZW1lbnQiKTtjb25zdCBtPVJzKHApfHxwO3JldHVybiBtP0JmKHQsZSxuLG8sbCxjLGQsbSxpLHMsMCk6MH1mdW5jdGlvbiBCZih0LGUsbixvLGksYSxyLHMsbCxjLGQpe2xldCBwPTAsbT1zLmZpcnN0Q2hpbGQ7Zm9yKDttOyl7Y29uc3Qgcz1LYyh0LG4sMSxudWxsKTtzd2l0Y2gobS5ub2RlVHlwZSl7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTpjb25zdCB1PW0sZj11LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtpZih5cy5oYXNPd25Qcm9wZXJ0eShmKSl7VWYoaSxXdSxmLGwscyksdC5kYXRhW3NdPWY7Y29uc3QgZz11LmF0dHJpYnV0ZXM7Zm9yKGxldCB0PTA7dDxnLmxlbmd0aDt0Kyspe2NvbnN0IGU9Zy5pdGVtKHQpLG49ZS5uYW1lLnRvTG93ZXJDYXNlKCk7ZS52YWx1ZS5tYXRjaCh4Zik/eHMuaGFzT3duUHJvcGVydHkobik/QWYocixlLnZhbHVlLHMsZS5uYW1lLDAsX3Nbbl0/bHM6Q3Nbbl0/Y3M6bnVsbCk6bmdEZXZNb2RlJiZjb25zb2xlLndhcm4oYFdBUk5JTkc6IGlnbm9yaW5nIHVuc2FmZSBhdHRyaWJ1dGUgdmFsdWUgJHtufSBvbiBlbGVtZW50ICR7Zn0gKHNlZSBodHRwczovL2cuY28vbmcvc2VjdXJpdHkjeHNzKWApOkdmKGkscyxlKX1wPUJmKHQsZSxuLG8saSxhLHIsbSxzLGMsZCsxKXxwLFZmKGEscyxkKX1icmVhaztjYXNlIE5vZGUuVEVYVF9OT0RFOmNvbnN0IGc9bS50ZXh0Q29udGVudHx8IiIsaD1nLm1hdGNoKHhmKTtVZihpLG51bGwsaD8iIjpnLGwscyksVmYoYSxzLGQpLGgmJihwPUFmKHIsZyxzLG51bGwsMCxudWxsKXxwKTticmVhaztjYXNlIE5vZGUuQ09NTUVOVF9OT0RFOmNvbnN0IGI9UGYuZXhlYyhtLnRleHRDb250ZW50fHwiIik7aWYoYil7Y29uc3QgZT1wYXJzZUludChiWzFdLDEwKSxyPWNbZV07VWYoaSxZdSxuZ0Rldk1vZGU/YG5lc3RlZCBJQ1UgJHtlfWA6IiIsbCxzKSxJZih0LG4sbyxsLHIscyksamYoYSxzLGQpfX1tPW0ubmV4dFNpYmxpbmd9cmV0dXJuIHB9ZnVuY3Rpb24gVmYodCxlLG4pezA9PT1uJiZ0LnB1c2goZSl9ZnVuY3Rpb24gamYodCxlLG4pezA9PT1uJiYodC5wdXNoKH5lKSx0LnB1c2goZSkpfWZ1bmN0aW9uIFVmKHQsZSxuLG8saSl7bnVsbCE9PWUmJnQucHVzaChlKSx0LnB1c2gobixpLChmdW5jdGlvbiBhKHQsZSxuKXtyZXR1cm4gbmdEZXZNb2RlJiZnbihlLDAsIk1pc3NpbmcgcGFyZW50IGluZGV4IiksbmdEZXZNb2RlJiZmbihuLDAsIk1pc3NpbmcgcmVmIGluZGV4IiksdHxlPDwxN3xuPDwxfSkoMCxvLGkpKX1mdW5jdGlvbiBHZih0LGUsbil7dC5wdXNoKGU8PDF8MSxuLm5hbWUsbi52YWx1ZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFdmPS9cWyjvv70uKz/vv70/KVxdLyxZZj0vXFso77+9Lis/77+9PylcXXwo77+9XC8/XCpcZCs6XGQr77+9KS9nLHFmPS8oe1xzKikoVkFSXyhQTFVSQUx8U0VMRUNUKShfXGQrKT8pKFxzKiwpL2csWmY9L3soW0EtWjAtOV9dKyl9L2csWGY9L++/vUkxOE5fRVhQXyhJQ1UoX1xkKyk/Ke+/vS9nLEtmPS9cL1wqLyxKZj0vXGQrXDooXGQrKS87Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBRZih0LGUsbj0tMSl7Y29uc3Qgbz1naSgpLGk9ZmkoKSxhPWdvK3Q7bmdEZXZNb2RlJiZobihvLCJ0VmlldyBzaG91bGQgYmUgZGVmaW5lZCIpO2NvbnN0IHI9Y2koby5jb25zdHMsZSkscz1faSgpO28uZmlyc3RDcmVhdGVQYXNzJiYoZnVuY3Rpb24gbCh0LGUsbixvLGksYSl7Y29uc3Qgcj1faSgpLHM9W10sbD1bXSxjPVtbXV07bmdEZXZNb2RlJiYoYmMocyx5ZiksYmMobCxfZikpO2NvbnN0IGQ9KGZ1bmN0aW9uIG0odCl7cmV0dXJuIHQucmVwbGFjZShEZiwiICIpfSkoaT0oZnVuY3Rpb24gcCh0LGUpe2lmKChmdW5jdGlvbiBuKHQpe3JldHVybi0xPT09dH0pKGUpKXJldHVybiB6Zih0KTt7Y29uc3Qgbj10LmluZGV4T2YoYDoke2V977+9YCkrMitlLnRvU3RyaW5nKCkubGVuZ3RoLG89dC5zZWFyY2gobmV3IFJlZ0V4cChg77+9XFwvXFwqXFxkKzoke2V977+9YCkpO3JldHVybiB6Zih0LnN1YnN0cmluZyhuLG8pKX19KShpLGEpKS5zcGxpdChTZik7Zm9yKGxldCBhPTA7YTxkLmxlbmd0aDthKyspe2xldCBwPWRbYV07aWYoMD09KDEmYSkpe2NvbnN0IGE9RmYocCk7Zm9yKGxldCBkPTA7ZDxhLmxlbmd0aDtkKyspe2xldCBwPWFbZF07aWYoMD09KDEmZCkpe2NvbnN0IGU9cDtuZ0Rldk1vZGUmJnNuKGUsIlBhcnNlZCBJQ1UgcGFydCBzaG91bGQgYmUgc3RyaW5nIiksIiIhPT1lJiZSZih0LHIsY1swXSxzLGwsbixlKX1lbHNle2NvbnN0IGE9cDtpZigib2JqZWN0IiE9dHlwZW9mIGEpdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcGFyc2UgSUNVIGV4cHJlc3Npb24gaW4gIiR7aX0iIG1lc3NhZ2UuYCk7Y29uc3QgZD1FZih0LHIsY1swXSxuLHMsbmdEZXZNb2RlP2BJQ1UgJHtvfToke2EubWFpbkJpbmRpbmd9YDoiIiwhMCkuaW5kZXg7bmdEZXZNb2RlJiZnbihkLGdvLCJJbmRleCBtdXN0IGJlIGluIGFic29sdXRlIExWaWV3IG9mZnNldCIpLElmKHQsbixsLGUsYSxkKX19fWVsc2V7Y29uc3QgZT00Nz09PXAuY2hhckNvZGVBdCgwKSxuPXAuY2hhckNvZGVBdChlPzE6MCk7bmdEZXZNb2RlJiZDbihuLDQyLDM1KTtjb25zdCBvPWdvK051bWJlci5wYXJzZUludChwLnN1YnN0cmluZyhlPzI6MSkpO2lmKGUpYy5zaGlmdCgpLENpKF9pKCksITEpO2Vsc2V7Y29uc3QgZT1hZih0LGNbMF0sbyk7Yy51bnNoaWZ0KFtdKSxDaShlLCEwKX19fXQuZGF0YVtvXT17Y3JlYXRlOnMsdXBkYXRlOmx9fSkobyxudWxsPT09cz8wOnMuaW5kZXgsaSxhLHIsbik7Y29uc3QgYz1vLmRhdGFbYV0sZD1rbChvLHM9PT1pWzZdP251bGw6cyxpKTshKGZ1bmN0aW9uIHAodCxlLG4sbyl7Y29uc3QgaT10WzExXTtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKyl7Y29uc3Qgcj1lW2ErK10scz1lW2FdLGw9KHImcXUuQ09NTUVOVCk9PT1xdS5DT01NRU5ULGM9KHImcXUuQVBQRU5EX0VBR0VSTFkpPT09cXUuQVBQRU5EX0VBR0VSTFksZD1yPj4+cXUuU0hJRlQ7bGV0IHA9dFtkXTtudWxsPT09cCYmKHA9dFtkXT1sP2kuY3JlYXRlQ29tbWVudChzKTp5bChpLHMpKSxjJiZudWxsIT09biYmU2woaSxuLHAsbywhMSl9fSkoaSxjLmNyZWF0ZSxkLHMmJjgmcy50eXBlP2lbcy5pbmRleF06bnVsbCksRWkoITApfWZ1bmN0aW9uICRmKCl7RWkoITEpfWZ1bmN0aW9uIHRnKHQsZSxuKXtRZih0LGUsbiksJGYoKX1mdW5jdGlvbiBlZyh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXt0JiYoZGZ8PTE8PE1hdGgubWluKHBmLDMxKSkscGYrK30pKEZwKGZpKCksU2koKSx0KSksZWd9ZnVuY3Rpb24gbmcodCl7IShmdW5jdGlvbiBlKHQsbixvKXtpZihwZj4wKXtuZ0Rldk1vZGUmJmhuKHQsInRWaWV3IHNob3VsZCBiZSBkZWZpbmVkIik7Y29uc3QgZT10LmRhdGFbb107dWYodCxuLEFycmF5LmlzQXJyYXkoZSk/ZTplLnVwZGF0ZSx3aSgpLXBmLTEsZGYpfWRmPTAscGY9MH0pKGdpKCksZmkoKSx0K2dvKX1mdW5jdGlvbiBvZyh0LGU9e30pe3JldHVybihmdW5jdGlvbiBuKHQsZT17fSl7bGV0IG49dDtpZihXZi50ZXN0KHQpKXtjb25zdCB0PXt9LGU9WzBdO249bi5yZXBsYWNlKFlmLCgobixvLGkpPT57Y29uc3QgYT1vfHxpLHI9dFthXXx8W107aWYoci5sZW5ndGh8fChhLnNwbGl0KCJ8IikuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5tYXRjaChKZiksbj1lP3BhcnNlSW50KGVbMV0sMTApOjAsbz1LZi50ZXN0KHQpO3IucHVzaChbbixvLHRdKX0pKSx0W2FdPXIpLCFyLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYGkxOG4gcG9zdHByb2Nlc3M6IHVubWF0Y2hlZCBwbGFjZWhvbGRlciAtICR7YX1gKTtjb25zdCBzPWVbZS5sZW5ndGgtMV07bGV0IGw9MDtmb3IobGV0IHQ9MDt0PHIubGVuZ3RoO3QrKylpZihyW3RdWzBdPT09cyl7bD10O2JyZWFrfWNvbnN0W2MsZCxwXT1yW2xdO3JldHVybiBkP2UucG9wKCk6cyE9PWMmJmUucHVzaChjKSxyLnNwbGljZShsLDEpLHB9KSl9cmV0dXJuIE9iamVjdC5rZXlzKGUpLmxlbmd0aD8obj1uLnJlcGxhY2UocWYsKCh0LG4sbyxpLGEscik9PmUuaGFzT3duUHJvcGVydHkobyk/YCR7bn0ke2Vbb119JHtyfWA6dCkpLG49bi5yZXBsYWNlKFpmLCgodCxuKT0+ZS5oYXNPd25Qcm9wZXJ0eShuKT9lW25dOnQpKSxuPW4ucmVwbGFjZShYZiwoKHQsbik9PntpZihlLmhhc093blByb3BlcnR5KG4pKXtjb25zdCBvPWVbbl07aWYoIW8ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgaTE4biBwb3N0cHJvY2VzczogdW5tYXRjaGVkIElDVSAtICR7dH0gd2l0aCBrZXk6ICR7bn1gKTtyZXR1cm4gby5zaGlmdCgpfXJldHVybiB0fSkpLG4pOm59KSh0LGUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gaWcodCxlLG4sbyxpKXtpZih0PVplKHQpLEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKyspaWcodFthXSxlLG4sbyxpKTtlbHNle2NvbnN0IGE9Z2koKSxyPWZpKCk7bGV0IHM9b3AodCk/dDpaZSh0LnByb3ZpZGUpLGw9dHAodCk7Y29uc3QgYz1iaSgpLGQ9MTA0ODU3NSZjLnByb3ZpZGVySW5kZXhlcyxwPWMuZGlyZWN0aXZlU3RhcnQsbT1jLnByb3ZpZGVySW5kZXhlcz4+MjA7aWYob3AodCl8fCF0Lm11bHRpKXtjb25zdCBvPW5ldyBuYShsLGksU20pLHU9c2cocyxlLGk/ZDpkK20scCk7LTE9PT11PyhDYShoYShjLHIpLGEscyksYWcoYSx0LGUubGVuZ3RoKSxlLnB1c2gocyksYy5kaXJlY3RpdmVTdGFydCsrLGMuZGlyZWN0aXZlRW5kKyssaSYmKGMucHJvdmlkZXJJbmRleGVzKz0xMDQ4NTc2KSxuLnB1c2gobyksci5wdXNoKG8pKTooblt1XT1vLHJbdV09byl9ZWxzZXtjb25zdCB1PXNnKHMsZSxkK20scCksZj1zZyhzLGUsZCxkK20pLGc9dT49MCYmblt1XSxoPWY+PTAmJm5bZl07aWYoaSYmIWh8fCFpJiYhZyl7Q2EoaGEoYyxyKSxhLHMpO2NvbnN0IGQ9KGZ1bmN0aW9uIGEodCxlLG4sbyxpKXtjb25zdCBhPW5ldyBuYSh0LG4sU20pO3JldHVybiBhLm11bHRpPVtdLGEuaW5kZXg9ZSxhLmNvbXBvbmVudFByb3ZpZGVycz0wLHJnKGEsaSxvJiYhbiksYX0pKGk/Y2c6bGcsbi5sZW5ndGgsaSxvLGwpOyFpJiZoJiYobltmXS5wcm92aWRlckZhY3Rvcnk9ZCksYWcoYSx0LGUubGVuZ3RoLDApLGUucHVzaChzKSxjLmRpcmVjdGl2ZVN0YXJ0KyssYy5kaXJlY3RpdmVFbmQrKyxpJiYoYy5wcm92aWRlckluZGV4ZXMrPTEwNDg1NzYpLG4ucHVzaChkKSxyLnB1c2goZCl9ZWxzZSBhZyhhLHQsdT4tMT91OmYscmcobltpP2Y6dV0sbCwhaSYmbykpOyFpJiZvJiZoJiZuW2ZdLmNvbXBvbmVudFByb3ZpZGVycysrfX19ZnVuY3Rpb24gYWcodCxlLG4sbyl7Y29uc3QgaT1vcChlKTtpZihpfHwoZnVuY3Rpb24gYSh0KXtyZXR1cm4hIXQudXNlQ2xhc3N9KShlKSl7Y29uc3QgYT0oZS51c2VDbGFzc3x8ZSkucHJvdG90eXBlLm5nT25EZXN0cm95O2lmKGEpe2NvbnN0IHI9dC5kZXN0cm95SG9va3N8fCh0LmRlc3Ryb3lIb29rcz1bXSk7aWYoIWkmJmUubXVsdGkpe25nRGV2TW9kZSYmaG4obywiaW5kZXhJbkZhY3Rvcnkgd2hlbiByZWdpc3RlcmluZyBtdWx0aSBmYWN0b3J5IGRlc3Ryb3kgaG9vayIpO2NvbnN0IHQ9ci5pbmRleE9mKG4pOy0xPT09dD9yLnB1c2gobixbbyxhXSk6clt0KzFdLnB1c2gobyxhKX1lbHNlIHIucHVzaChuLGEpfX19ZnVuY3Rpb24gcmcodCxlLG4pe3JldHVybiBuJiZ0LmNvbXBvbmVudFByb3ZpZGVycysrLHQubXVsdGkucHVzaChlKS0xfWZ1bmN0aW9uIHNnKHQsZSxuLG8pe2ZvcihsZXQgaT1uO2k8bztpKyspaWYoZVtpXT09PXQpcmV0dXJuIGk7cmV0dXJuLTF9ZnVuY3Rpb24gbGcodCxlLG4sbyl7cmV0dXJuIGRnKHRoaXMubXVsdGksW10pfWZ1bmN0aW9uIGNnKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5tdWx0aTtsZXQgYTtpZih0aGlzLnByb3ZpZGVyRmFjdG9yeSl7Y29uc3QgdD10aGlzLnByb3ZpZGVyRmFjdG9yeS5jb21wb25lbnRQcm92aWRlcnMsZT1TYShuLG5bMV0sdGhpcy5wcm92aWRlckZhY3RvcnkuaW5kZXgsbyk7YT1lLnNsaWNlKDAsdCksZGcoaSxhKTtmb3IobGV0IG49dDtuPGUubGVuZ3RoO24rKylhLnB1c2goZVtuXSl9ZWxzZSBhPVtdLGRnKGksYSk7cmV0dXJuIGF9ZnVuY3Rpb24gZGcodCxlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyllLnB1c2goKDAsdFtuXSkoKSk7cmV0dXJuIGV9ZnVuY3Rpb24gcGcodCxlPVtdKXtyZXR1cm4gbj0+e24ucHJvdmlkZXJzUmVzb2x2ZXI9KG4sbyk9PihmdW5jdGlvbiBpKHQsZSxuKXtjb25zdCBvPWdpKCk7aWYoby5maXJzdENyZWF0ZVBhc3Mpe2NvbnN0IGk9eG8odCk7aWcobixvLmRhdGEsby5ibHVlcHJpbnQsaSwhMCksaWcoZSxvLmRhdGEsby5ibHVlcHJpbnQsaSwhMSl9fSkobixvP28odCk6dCxlKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIG1ne30KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgdWd7fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gZmcoLi4udCl7fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBnZyh0LGUpe3JldHVybiBuZXcgaGcob2kodCxlKSl9dWcuTlVMTD1uZXcgY2xhc3N7cmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodCl7dGhyb3coZnVuY3Rpb24gZSh0KXtjb25zdCBlPUVycm9yKGBObyBjb21wb25lbnQgZmFjdG9yeSBmb3VuZCBmb3IgJHtHZSh0KX0uIERpZCB5b3UgYWRkIGl0IHRvIEBOZ01vZHVsZS5lbnRyeUNvbXBvbmVudHM/YCk7cmV0dXJuIGUubmdDb21wb25lbnQ9dCxlfSkodCl9fTtjbGFzcyBoZ3tjb25zdHJ1Y3Rvcih0KXt0aGlzLm5hdGl2ZUVsZW1lbnQ9dH19ZnVuY3Rpb24gYmcodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBoZz90Lm5hdGl2ZUVsZW1lbnQ6dH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovaGcuX19OR19FTEVNRU5UX0lEX189ZnVuY3Rpb24geWcoKXtyZXR1cm4gZ2coYmkoKSxmaSgpKX0sbmV3IEdhKCJSZW5kZXJlcjJJbnRlcmNlcHRvciIpO2NsYXNzIF9ne31jbGFzcyBDZ3t9Q2cuX19OR19FTEVNRU5UX0lEX189KCk9Pk1nKCk7Y29uc3QgTWc9ZnVuY3Rpb24gdmcoKXtjb25zdCB0PWZpKCksZT1yaShiaSgpLmluZGV4LHQpO3JldHVybihmdW5jdGlvbiBuKHQpe2NvbnN0IGU9dFsxMV07aWYobmdEZXZNb2RlJiYhJG8oZSkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaW5qZWN0IFJlbmRlcmVyMiB3aGVuIHRoZSBhcHBsaWNhdGlvbiB1c2VzIFJlbmRlcmVyMyEiKTtyZXR1cm4gZX0pKHlvKGUpP2U6dCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLztjbGFzcyB4Z3t9eGcuybVwcm92PU1uKHt0b2tlbjp4Zyxwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5udWxsfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBPZ3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmZ1bGw9dCx0aGlzLm1ham9yPXQuc3BsaXQoIi4iKVswXSx0aGlzLm1pbm9yPXQuc3BsaXQoIi4iKVsxXSx0aGlzLnBhdGNoPXQuc3BsaXQoIi4iKS5zbGljZSgyKS5qb2luKCIuIil9fWNvbnN0IFBnPW5ldyBPZygiMTIuMi4xIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHdne2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRzKHQpe3JldHVybiBOcCh0KX1jcmVhdGUodCl7cmV0dXJuIG5ldyBTZyh0KX19Y29uc3Qga2c9KHQsZSk9PmU7Y2xhc3MgU2d7Y29uc3RydWN0b3IodCl7dGhpcy5sZW5ndGg9MCx0aGlzLl9saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fdW5saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fcHJldmlvdXNJdEhlYWQ9bnVsbCx0aGlzLl9pdEhlYWQ9bnVsbCx0aGlzLl9pdFRhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX21vdmVzSGVhZD1udWxsLHRoaXMuX21vdmVzVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsLHRoaXMuX3JlbW92YWxzVGFpbD1udWxsLHRoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWQ9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsPW51bGwsdGhpcy5fdHJhY2tCeUZuPXR8fGtnfWZvckVhY2hJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX2l0SGVhZDtudWxsIT09ZTtlPWUuX25leHQpdChlKX1mb3JFYWNoT3BlcmF0aW9uKHQpe2xldCBlPXRoaXMuX2l0SGVhZCxuPXRoaXMuX3JlbW92YWxzSGVhZCxvPTAsaT1udWxsO2Zvcig7ZXx8bjspe2NvbnN0IGE9IW58fGUmJmUuY3VycmVudEluZGV4PEFnKG4sbyxpKT9lOm4scj1BZyhhLG8saSkscz1hLmN1cnJlbnRJbmRleDtpZihhPT09bilvLS0sbj1uLl9uZXh0UmVtb3ZlZDtlbHNlIGlmKGU9ZS5fbmV4dCxudWxsPT1hLnByZXZpb3VzSW5kZXgpbysrO2Vsc2V7aXx8KGk9W10pO2NvbnN0IHQ9ci1vLGU9cy1vO2lmKHQhPWUpe2ZvcihsZXQgbj0wO248dDtuKyspe2NvbnN0IG89bjxpLmxlbmd0aD9pW25dOmlbbl09MCxhPW8rbjtlPD1hJiZhPHQmJihpW25dPW8rMSl9aVthLnByZXZpb3VzSW5kZXhdPWUtdH19ciE9PXMmJnQoYSxyLHMpfX1mb3JFYWNoUHJldmlvdXNJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX3ByZXZpb3VzSXRIZWFkO251bGwhPT1lO2U9ZS5fbmV4dFByZXZpb3VzKXQoZSl9Zm9yRWFjaEFkZGVkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1lO2U9ZS5fbmV4dEFkZGVkKXQoZSl9Zm9yRWFjaE1vdmVkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9tb3Zlc0hlYWQ7bnVsbCE9PWU7ZT1lLl9uZXh0TW92ZWQpdChlKX1mb3JFYWNoUmVtb3ZlZEl0ZW0odCl7bGV0IGU7Zm9yKGU9dGhpcy5fcmVtb3ZhbHNIZWFkO251bGwhPT1lO2U9ZS5fbmV4dFJlbW92ZWQpdChlKX1mb3JFYWNoSWRlbnRpdHlDaGFuZ2UodCl7bGV0IGU7Zm9yKGU9dGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZDtudWxsIT09ZTtlPWUuX25leHRJZGVudGl0eUNoYW5nZSl0KGUpfWRpZmYodCl7aWYobnVsbD09dCYmKHQ9W10pLCFOcCh0KSl0aHJvdyBuZXcgRXJyb3IoYEVycm9yIHRyeWluZyB0byBkaWZmICcke0dlKHQpfScuIE9ubHkgYXJyYXlzIGFuZCBpdGVyYWJsZXMgYXJlIGFsbG93ZWRgKTtyZXR1cm4gdGhpcy5jaGVjayh0KT90aGlzOm51bGx9b25EZXN0cm95KCl7fWNoZWNrKHQpe3RoaXMuX3Jlc2V0KCk7bGV0IGUsbixvLGk9dGhpcy5faXRIZWFkLGE9ITE7aWYoQXJyYXkuaXNBcnJheSh0KSl7dGhpcy5sZW5ndGg9dC5sZW5ndGg7Zm9yKGxldCBlPTA7ZTx0aGlzLmxlbmd0aDtlKyspbj10W2VdLG89dGhpcy5fdHJhY2tCeUZuKGUsbiksbnVsbCE9PWkmJk9iamVjdC5pcyhpLnRyYWNrQnlJZCxvKT8oYSYmKGk9dGhpcy5fdmVyaWZ5UmVpbnNlcnRpb24oaSxuLG8sZSkpLE9iamVjdC5pcyhpLml0ZW0sbil8fHRoaXMuX2FkZElkZW50aXR5Q2hhbmdlKGksbikpOihpPXRoaXMuX21pc21hdGNoKGksbixvLGUpLGE9ITApLGk9aS5fbmV4dH1lbHNlIGU9MCwoZnVuY3Rpb24gcih0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspZSh0W25dKTtlbHNle2NvbnN0IG49dFtScCgpXSgpO2xldCBvO2Zvcig7IShvPW4ubmV4dCgpKS5kb25lOyllKG8udmFsdWUpfX0pKHQsKHQ9PntvPXRoaXMuX3RyYWNrQnlGbihlLHQpLG51bGwhPT1pJiZPYmplY3QuaXMoaS50cmFja0J5SWQsbyk/KGEmJihpPXRoaXMuX3ZlcmlmeVJlaW5zZXJ0aW9uKGksdCxvLGUpKSxPYmplY3QuaXMoaS5pdGVtLHQpfHx0aGlzLl9hZGRJZGVudGl0eUNoYW5nZShpLHQpKTooaT10aGlzLl9taXNtYXRjaChpLHQsbyxlKSxhPSEwKSxpPWkuX25leHQsZSsrfSkpLHRoaXMubGVuZ3RoPWU7cmV0dXJuIHRoaXMuX3RydW5jYXRlKGkpLHRoaXMuY29sbGVjdGlvbj10LHRoaXMuaXNEaXJ0eX1nZXQgaXNEaXJ0eSgpe3JldHVybiBudWxsIT09dGhpcy5fYWRkaXRpb25zSGVhZHx8bnVsbCE9PXRoaXMuX21vdmVzSGVhZHx8bnVsbCE9PXRoaXMuX3JlbW92YWxzSGVhZHx8bnVsbCE9PXRoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWR9X3Jlc2V0KCl7aWYodGhpcy5pc0RpcnR5KXtsZXQgdDtmb3IodD10aGlzLl9wcmV2aW91c0l0SGVhZD10aGlzLl9pdEhlYWQ7bnVsbCE9PXQ7dD10Ll9uZXh0KXQuX25leHRQcmV2aW91cz10Ll9uZXh0O2Zvcih0PXRoaXMuX2FkZGl0aW9uc0hlYWQ7bnVsbCE9PXQ7dD10Ll9uZXh0QWRkZWQpdC5wcmV2aW91c0luZGV4PXQuY3VycmVudEluZGV4O2Zvcih0aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9bnVsbCx0PXRoaXMuX21vdmVzSGVhZDtudWxsIT09dDt0PXQuX25leHRNb3ZlZCl0LnByZXZpb3VzSW5kZXg9dC5jdXJyZW50SW5kZXg7dGhpcy5fbW92ZXNIZWFkPXRoaXMuX21vdmVzVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD10aGlzLl9yZW1vdmFsc1RhaWw9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWw9bnVsbH19X21pc21hdGNoKHQsZSxuLG8pe2xldCBpO3JldHVybiBudWxsPT09dD9pPXRoaXMuX2l0VGFpbDooaT10Ll9wcmV2LHRoaXMuX3JlbW92ZSh0KSksbnVsbCE9PSh0PW51bGw9PT10aGlzLl91bmxpbmtlZFJlY29yZHM/bnVsbDp0aGlzLl91bmxpbmtlZFJlY29yZHMuZ2V0KG4sbnVsbCkpPyhPYmplY3QuaXModC5pdGVtLGUpfHx0aGlzLl9hZGRJZGVudGl0eUNoYW5nZSh0LGUpLHRoaXMuX3JlaW5zZXJ0QWZ0ZXIodCxpLG8pKTpudWxsIT09KHQ9bnVsbD09PXRoaXMuX2xpbmtlZFJlY29yZHM/bnVsbDp0aGlzLl9saW5rZWRSZWNvcmRzLmdldChuLG8pKT8oT2JqZWN0LmlzKHQuaXRlbSxlKXx8dGhpcy5fYWRkSWRlbnRpdHlDaGFuZ2UodCxlKSx0aGlzLl9tb3ZlQWZ0ZXIodCxpLG8pKTp0PXRoaXMuX2FkZEFmdGVyKG5ldyBEZyhlLG4pLGksbyksdH1fdmVyaWZ5UmVpbnNlcnRpb24odCxlLG4sbyl7bGV0IGk9bnVsbD09PXRoaXMuX3VubGlua2VkUmVjb3Jkcz9udWxsOnRoaXMuX3VubGlua2VkUmVjb3Jkcy5nZXQobixudWxsKTtyZXR1cm4gbnVsbCE9PWk/dD10aGlzLl9yZWluc2VydEFmdGVyKGksdC5fcHJldixvKTp0LmN1cnJlbnRJbmRleCE9byYmKHQuY3VycmVudEluZGV4PW8sdGhpcy5fYWRkVG9Nb3Zlcyh0LG8pKSx0fV90cnVuY2F0ZSh0KXtmb3IoO251bGwhPT10Oyl7Y29uc3QgZT10Ll9uZXh0O3RoaXMuX2FkZFRvUmVtb3ZhbHModGhpcy5fdW5saW5rKHQpKSx0PWV9bnVsbCE9PXRoaXMuX3VubGlua2VkUmVjb3JkcyYmdGhpcy5fdW5saW5rZWRSZWNvcmRzLmNsZWFyKCksbnVsbCE9PXRoaXMuX2FkZGl0aW9uc1RhaWwmJih0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0QWRkZWQ9bnVsbCksbnVsbCE9PXRoaXMuX21vdmVzVGFpbCYmKHRoaXMuX21vdmVzVGFpbC5fbmV4dE1vdmVkPW51bGwpLG51bGwhPT10aGlzLl9pdFRhaWwmJih0aGlzLl9pdFRhaWwuX25leHQ9bnVsbCksbnVsbCE9PXRoaXMuX3JlbW92YWxzVGFpbCYmKHRoaXMuX3JlbW92YWxzVGFpbC5fbmV4dFJlbW92ZWQ9bnVsbCksbnVsbCE9PXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWwmJih0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbCl9X3JlaW5zZXJ0QWZ0ZXIodCxlLG4pe251bGwhPT10aGlzLl91bmxpbmtlZFJlY29yZHMmJnRoaXMuX3VubGlua2VkUmVjb3Jkcy5yZW1vdmUodCk7Y29uc3Qgbz10Ll9wcmV2UmVtb3ZlZCxpPXQuX25leHRSZW1vdmVkO3JldHVybiBudWxsPT09bz90aGlzLl9yZW1vdmFsc0hlYWQ9aTpvLl9uZXh0UmVtb3ZlZD1pLG51bGw9PT1pP3RoaXMuX3JlbW92YWxzVGFpbD1vOmkuX3ByZXZSZW1vdmVkPW8sdGhpcy5faW5zZXJ0QWZ0ZXIodCxlLG4pLHRoaXMuX2FkZFRvTW92ZXModCxuKSx0fV9tb3ZlQWZ0ZXIodCxlLG4pe3JldHVybiB0aGlzLl91bmxpbmsodCksdGhpcy5faW5zZXJ0QWZ0ZXIodCxlLG4pLHRoaXMuX2FkZFRvTW92ZXModCxuKSx0fV9hZGRBZnRlcih0LGUsbil7cmV0dXJuIHRoaXMuX2luc2VydEFmdGVyKHQsZSxuKSx0aGlzLl9hZGRpdGlvbnNUYWlsPW51bGw9PT10aGlzLl9hZGRpdGlvbnNUYWlsP3RoaXMuX2FkZGl0aW9uc0hlYWQ9dDp0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0QWRkZWQ9dCx0fV9pbnNlcnRBZnRlcih0LGUsbil7Y29uc3Qgbz1udWxsPT09ZT90aGlzLl9pdEhlYWQ6ZS5fbmV4dDtyZXR1cm4gdC5fbmV4dD1vLHQuX3ByZXY9ZSxudWxsPT09bz90aGlzLl9pdFRhaWw9dDpvLl9wcmV2PXQsbnVsbD09PWU/dGhpcy5faXRIZWFkPXQ6ZS5fbmV4dD10LG51bGw9PT10aGlzLl9saW5rZWRSZWNvcmRzJiYodGhpcy5fbGlua2VkUmVjb3Jkcz1uZXcgUmcpLHRoaXMuX2xpbmtlZFJlY29yZHMucHV0KHQpLHQuY3VycmVudEluZGV4PW4sdH1fcmVtb3ZlKHQpe3JldHVybiB0aGlzLl9hZGRUb1JlbW92YWxzKHRoaXMuX3VubGluayh0KSl9X3VubGluayh0KXtudWxsIT09dGhpcy5fbGlua2VkUmVjb3JkcyYmdGhpcy5fbGlua2VkUmVjb3Jkcy5yZW1vdmUodCk7Y29uc3QgZT10Ll9wcmV2LG49dC5fbmV4dDtyZXR1cm4gbnVsbD09PWU/dGhpcy5faXRIZWFkPW46ZS5fbmV4dD1uLG51bGw9PT1uP3RoaXMuX2l0VGFpbD1lOm4uX3ByZXY9ZSx0fV9hZGRUb01vdmVzKHQsZSl7cmV0dXJuIHQucHJldmlvdXNJbmRleD09PWV8fCh0aGlzLl9tb3Zlc1RhaWw9bnVsbD09PXRoaXMuX21vdmVzVGFpbD90aGlzLl9tb3Zlc0hlYWQ9dDp0aGlzLl9tb3Zlc1RhaWwuX25leHRNb3ZlZD10KSx0fV9hZGRUb1JlbW92YWxzKHQpe3JldHVybiBudWxsPT09dGhpcy5fdW5saW5rZWRSZWNvcmRzJiYodGhpcy5fdW5saW5rZWRSZWNvcmRzPW5ldyBSZyksdGhpcy5fdW5saW5rZWRSZWNvcmRzLnB1dCh0KSx0LmN1cnJlbnRJbmRleD1udWxsLHQuX25leHRSZW1vdmVkPW51bGwsbnVsbD09PXRoaXMuX3JlbW92YWxzVGFpbD8odGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzSGVhZD10LHQuX3ByZXZSZW1vdmVkPW51bGwpOih0Ll9wcmV2UmVtb3ZlZD10aGlzLl9yZW1vdmFsc1RhaWwsdGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzVGFpbC5fbmV4dFJlbW92ZWQ9dCksdH1fYWRkSWRlbnRpdHlDaGFuZ2UodCxlKXtyZXR1cm4gdC5pdGVtPWUsdGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD1udWxsPT09dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD90aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPXQ6dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbC5fbmV4dElkZW50aXR5Q2hhbmdlPXQsdH19Y2xhc3MgRGd7Y29uc3RydWN0b3IodCxlKXt0aGlzLml0ZW09dCx0aGlzLnRyYWNrQnlJZD1lLHRoaXMuY3VycmVudEluZGV4PW51bGwsdGhpcy5wcmV2aW91c0luZGV4PW51bGwsdGhpcy5fbmV4dFByZXZpb3VzPW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wcmV2RHVwPW51bGwsdGhpcy5fbmV4dER1cD1udWxsLHRoaXMuX3ByZXZSZW1vdmVkPW51bGwsdGhpcy5fbmV4dFJlbW92ZWQ9bnVsbCx0aGlzLl9uZXh0QWRkZWQ9bnVsbCx0aGlzLl9uZXh0TW92ZWQ9bnVsbCx0aGlzLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbH19Y2xhc3MgRWd7Y29uc3RydWN0b3IoKXt0aGlzLl9oZWFkPW51bGwsdGhpcy5fdGFpbD1udWxsfWFkZCh0KXtudWxsPT09dGhpcy5faGVhZD8odGhpcy5faGVhZD10aGlzLl90YWlsPXQsdC5fbmV4dER1cD1udWxsLHQuX3ByZXZEdXA9bnVsbCk6KHRoaXMuX3RhaWwuX25leHREdXA9dCx0Ll9wcmV2RHVwPXRoaXMuX3RhaWwsdC5fbmV4dER1cD1udWxsLHRoaXMuX3RhaWw9dCl9Z2V0KHQsZSl7bGV0IG47Zm9yKG49dGhpcy5faGVhZDtudWxsIT09bjtuPW4uX25leHREdXApaWYoKG51bGw9PT1lfHxlPD1uLmN1cnJlbnRJbmRleCkmJk9iamVjdC5pcyhuLnRyYWNrQnlJZCx0KSlyZXR1cm4gbjtyZXR1cm4gbnVsbH1yZW1vdmUodCl7Y29uc3QgZT10Ll9wcmV2RHVwLG49dC5fbmV4dER1cDtyZXR1cm4gbnVsbD09PWU/dGhpcy5faGVhZD1uOmUuX25leHREdXA9bixudWxsPT09bj90aGlzLl90YWlsPWU6bi5fcHJldkR1cD1lLG51bGw9PT10aGlzLl9oZWFkfX1jbGFzcyBSZ3tjb25zdHJ1Y3Rvcigpe3RoaXMubWFwPW5ldyBNYXB9cHV0KHQpe2NvbnN0IGU9dC50cmFja0J5SWQ7bGV0IG49dGhpcy5tYXAuZ2V0KGUpO258fChuPW5ldyBFZyx0aGlzLm1hcC5zZXQoZSxuKSksbi5hZGQodCl9Z2V0KHQsZSl7Y29uc3Qgbj10aGlzLm1hcC5nZXQodCk7cmV0dXJuIG4/bi5nZXQodCxlKTpudWxsfXJlbW92ZSh0KXtjb25zdCBlPXQudHJhY2tCeUlkO3JldHVybiB0aGlzLm1hcC5nZXQoZSkucmVtb3ZlKHQpJiZ0aGlzLm1hcC5kZWxldGUoZSksdH1nZXQgaXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5tYXAuc2l6ZX1jbGVhcigpe3RoaXMubWFwLmNsZWFyKCl9fWZ1bmN0aW9uIEFnKHQsZSxuKXtjb25zdCBvPXQucHJldmlvdXNJbmRleDtpZihudWxsPT09bylyZXR1cm4gbztsZXQgaT0wO3JldHVybiBuJiZvPG4ubGVuZ3RoJiYoaT1uW29dKSxvK2UraX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgVGd7Y29uc3RydWN0b3IoKXt9c3VwcG9ydHModCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBNYXB8fHpwKHQpfWNyZWF0ZSgpe3JldHVybiBuZXcgTmd9fWNsYXNzIE5ne2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVjb3Jkcz1uZXcgTWFwLHRoaXMuX21hcEhlYWQ9bnVsbCx0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX3ByZXZpb3VzTWFwSGVhZD1udWxsLHRoaXMuX2NoYW5nZXNIZWFkPW51bGwsdGhpcy5fY2hhbmdlc1RhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsLHRoaXMuX3JlbW92YWxzVGFpbD1udWxsfWdldCBpc0RpcnR5KCl7cmV0dXJuIG51bGwhPT10aGlzLl9hZGRpdGlvbnNIZWFkfHxudWxsIT09dGhpcy5fY2hhbmdlc0hlYWR8fG51bGwhPT10aGlzLl9yZW1vdmFsc0hlYWR9Zm9yRWFjaEl0ZW0odCl7bGV0IGU7Zm9yKGU9dGhpcy5fbWFwSGVhZDtudWxsIT09ZTtlPWUuX25leHQpdChlKX1mb3JFYWNoUHJldmlvdXNJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09ZTtlPWUuX25leHRQcmV2aW91cyl0KGUpfWZvckVhY2hDaGFuZ2VkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9jaGFuZ2VzSGVhZDtudWxsIT09ZTtlPWUuX25leHRDaGFuZ2VkKXQoZSl9Zm9yRWFjaEFkZGVkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1lO2U9ZS5fbmV4dEFkZGVkKXQoZSl9Zm9yRWFjaFJlbW92ZWRJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX3JlbW92YWxzSGVhZDtudWxsIT09ZTtlPWUuX25leHRSZW1vdmVkKXQoZSl9ZGlmZih0KXtpZih0KXtpZighKHQgaW5zdGFuY2VvZiBNYXB8fHpwKHQpKSl0aHJvdyBuZXcgRXJyb3IoYEVycm9yIHRyeWluZyB0byBkaWZmICcke0dlKHQpfScuIE9ubHkgbWFwcyBhbmQgb2JqZWN0cyBhcmUgYWxsb3dlZGApfWVsc2UgdD1uZXcgTWFwO3JldHVybiB0aGlzLmNoZWNrKHQpP3RoaXM6bnVsbH1vbkRlc3Ryb3koKXt9Y2hlY2sodCl7dGhpcy5fcmVzZXQoKTtsZXQgZT10aGlzLl9tYXBIZWFkO2lmKHRoaXMuX2FwcGVuZEFmdGVyPW51bGwsdGhpcy5fZm9yRWFjaCh0LCgodCxuKT0+e2lmKGUmJmUua2V5PT09bil0aGlzLl9tYXliZUFkZFRvQ2hhbmdlcyhlLHQpLHRoaXMuX2FwcGVuZEFmdGVyPWUsZT1lLl9uZXh0O2Vsc2V7Y29uc3Qgbz10aGlzLl9nZXRPckNyZWF0ZVJlY29yZEZvcktleShuLHQpO2U9dGhpcy5faW5zZXJ0QmVmb3JlT3JBcHBlbmQoZSxvKX19KSksZSl7ZS5fcHJldiYmKGUuX3ByZXYuX25leHQ9bnVsbCksdGhpcy5fcmVtb3ZhbHNIZWFkPWU7Zm9yKGxldCB0PWU7bnVsbCE9PXQ7dD10Ll9uZXh0UmVtb3ZlZCl0PT09dGhpcy5fbWFwSGVhZCYmKHRoaXMuX21hcEhlYWQ9bnVsbCksdGhpcy5fcmVjb3Jkcy5kZWxldGUodC5rZXkpLHQuX25leHRSZW1vdmVkPXQuX25leHQsdC5wcmV2aW91c1ZhbHVlPXQuY3VycmVudFZhbHVlLHQuY3VycmVudFZhbHVlPW51bGwsdC5fcHJldj1udWxsLHQuX25leHQ9bnVsbH1yZXR1cm4gdGhpcy5fY2hhbmdlc1RhaWwmJih0aGlzLl9jaGFuZ2VzVGFpbC5fbmV4dENoYW5nZWQ9bnVsbCksdGhpcy5fYWRkaXRpb25zVGFpbCYmKHRoaXMuX2FkZGl0aW9uc1RhaWwuX25leHRBZGRlZD1udWxsKSx0aGlzLmlzRGlydHl9X2luc2VydEJlZm9yZU9yQXBwZW5kKHQsZSl7aWYodCl7Y29uc3Qgbj10Ll9wcmV2O3JldHVybiBlLl9uZXh0PXQsZS5fcHJldj1uLHQuX3ByZXY9ZSxuJiYobi5fbmV4dD1lKSx0PT09dGhpcy5fbWFwSGVhZCYmKHRoaXMuX21hcEhlYWQ9ZSksdGhpcy5fYXBwZW5kQWZ0ZXI9dCx0fXJldHVybiB0aGlzLl9hcHBlbmRBZnRlcj8odGhpcy5fYXBwZW5kQWZ0ZXIuX25leHQ9ZSxlLl9wcmV2PXRoaXMuX2FwcGVuZEFmdGVyKTp0aGlzLl9tYXBIZWFkPWUsdGhpcy5fYXBwZW5kQWZ0ZXI9ZSxudWxsfV9nZXRPckNyZWF0ZVJlY29yZEZvcktleSh0LGUpe2lmKHRoaXMuX3JlY29yZHMuaGFzKHQpKXtjb25zdCBuPXRoaXMuX3JlY29yZHMuZ2V0KHQpO3RoaXMuX21heWJlQWRkVG9DaGFuZ2VzKG4sZSk7Y29uc3Qgbz1uLl9wcmV2LGk9bi5fbmV4dDtyZXR1cm4gbyYmKG8uX25leHQ9aSksaSYmKGkuX3ByZXY9byksbi5fbmV4dD1udWxsLG4uX3ByZXY9bnVsbCxufWNvbnN0IG49bmV3IHpnKHQpO3JldHVybiB0aGlzLl9yZWNvcmRzLnNldCh0LG4pLG4uY3VycmVudFZhbHVlPWUsdGhpcy5fYWRkVG9BZGRpdGlvbnMobiksbn1fcmVzZXQoKXtpZih0aGlzLmlzRGlydHkpe2xldCB0O2Zvcih0aGlzLl9wcmV2aW91c01hcEhlYWQ9dGhpcy5fbWFwSGVhZCx0PXRoaXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09dDt0PXQuX25leHQpdC5fbmV4dFByZXZpb3VzPXQuX25leHQ7Zm9yKHQ9dGhpcy5fY2hhbmdlc0hlYWQ7bnVsbCE9PXQ7dD10Ll9uZXh0Q2hhbmdlZCl0LnByZXZpb3VzVmFsdWU9dC5jdXJyZW50VmFsdWU7Zm9yKHQ9dGhpcy5fYWRkaXRpb25zSGVhZDtudWxsIT10O3Q9dC5fbmV4dEFkZGVkKXQucHJldmlvdXNWYWx1ZT10LmN1cnJlbnRWYWx1ZTt0aGlzLl9jaGFuZ2VzSGVhZD10aGlzLl9jaGFuZ2VzVGFpbD1udWxsLHRoaXMuX2FkZGl0aW9uc0hlYWQ9dGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsfX1fbWF5YmVBZGRUb0NoYW5nZXModCxlKXtPYmplY3QuaXMoZSx0LmN1cnJlbnRWYWx1ZSl8fCh0LnByZXZpb3VzVmFsdWU9dC5jdXJyZW50VmFsdWUsdC5jdXJyZW50VmFsdWU9ZSx0aGlzLl9hZGRUb0NoYW5nZXModCkpfV9hZGRUb0FkZGl0aW9ucyh0KXtudWxsPT09dGhpcy5fYWRkaXRpb25zSGVhZD90aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9dDoodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPXQsdGhpcy5fYWRkaXRpb25zVGFpbD10KX1fYWRkVG9DaGFuZ2VzKHQpe251bGw9PT10aGlzLl9jaGFuZ2VzSGVhZD90aGlzLl9jaGFuZ2VzSGVhZD10aGlzLl9jaGFuZ2VzVGFpbD10Oih0aGlzLl9jaGFuZ2VzVGFpbC5fbmV4dENoYW5nZWQ9dCx0aGlzLl9jaGFuZ2VzVGFpbD10KX1fZm9yRWFjaCh0LGUpe3QgaW5zdGFuY2VvZiBNYXA/dC5mb3JFYWNoKGUpOk9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PmUodFtuXSxuKSkpfX1jbGFzcyB6Z3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmtleT10LHRoaXMucHJldmlvdXNWYWx1ZT1udWxsLHRoaXMuY3VycmVudFZhbHVlPW51bGwsdGhpcy5fbmV4dFByZXZpb3VzPW51bGwsdGhpcy5fbmV4dD1udWxsLHRoaXMuX3ByZXY9bnVsbCx0aGlzLl9uZXh0QWRkZWQ9bnVsbCx0aGlzLl9uZXh0UmVtb3ZlZD1udWxsLHRoaXMuX25leHRDaGFuZ2VkPW51bGx9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBJZygpe3JldHVybiBuZXcgSGcoW25ldyB3Z10pfWNsYXNzIEhne2NvbnN0cnVjdG9yKHQpe3RoaXMuZmFjdG9yaWVzPXR9c3RhdGljIGNyZWF0ZSh0LGUpe2lmKG51bGwhPWUpe2NvbnN0IG49ZS5mYWN0b3JpZXMuc2xpY2UoKTt0PXQuY29uY2F0KG4pfXJldHVybiBuZXcgSGcodCl9c3RhdGljIGV4dGVuZCh0KXtyZXR1cm57cHJvdmlkZTpIZyx1c2VGYWN0b3J5OmU9PkhnLmNyZWF0ZSh0LGV8fElnKCkpLGRlcHM6W1tIZyxuZXcgRXIsbmV3IFNyXV19fWZpbmQodCl7Y29uc3QgZT10aGlzLmZhY3Rvcmllcy5maW5kKChlPT5lLnN1cHBvcnRzKHQpKSk7aWYobnVsbCE9ZSlyZXR1cm4gZTt0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIGEgZGlmZmVyIHN1cHBvcnRpbmcgb2JqZWN0ICcke3R9JyBvZiB0eXBlICckeyhmdW5jdGlvbiBuKHQpe3JldHVybiB0Lm5hbWV8fHR5cGVvZiB0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQpfSdgKX19ZnVuY3Rpb24gRmcoKXtyZXR1cm4gbmV3IExnKFtuZXcgVGddKX1IZy7JtXByb3Y9TW4oe3Rva2VuOkhnLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6SWd9KTtjbGFzcyBMZ3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmZhY3Rvcmllcz10fXN0YXRpYyBjcmVhdGUodCxlKXtpZihlKXtjb25zdCBuPWUuZmFjdG9yaWVzLnNsaWNlKCk7dD10LmNvbmNhdChuKX1yZXR1cm4gbmV3IExnKHQpfXN0YXRpYyBleHRlbmQodCl7cmV0dXJue3Byb3ZpZGU6TGcsdXNlRmFjdG9yeTplPT5MZy5jcmVhdGUodCxlfHxGZygpKSxkZXBzOltbTGcsbmV3IEVyLG5ldyBTcl1dfX1maW5kKHQpe2NvbnN0IGU9dGhpcy5mYWN0b3JpZXMuZmluZCgoZT0+ZS5zdXBwb3J0cyh0KSkpO2lmKGUpcmV0dXJuIGU7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBhIGRpZmZlciBzdXBwb3J0aW5nIG9iamVjdCAnJHt0fSdgKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBCZyh0LGUsbixvLGk9ITEpe2Zvcig7bnVsbCE9PW47KXtuZ0Rldk1vZGUmJmlhKG4sNjMpO2NvbnN0IGE9ZVtuLmluZGV4XTtpZihudWxsIT09YSYmby5wdXNoKGVpKGEpKSxfbyhhKSlmb3IobGV0IHQ9Ym87dDxhLmxlbmd0aDt0Kyspe2NvbnN0IGU9YVt0XSxuPWVbMV0uZmlyc3RDaGlsZDtudWxsIT09biYmQmcoZVsxXSxlLG4sbyl9Y29uc3Qgcj1uLnR5cGU7aWYoOCZyKUJnKHQsZSxuLmNoaWxkLG8pO2Vsc2UgaWYoMzImcil7Y29uc3QgdD1wbChuLGUpO2xldCBpO2Zvcig7aT10KCk7KW8ucHVzaChpKX1lbHNlIGlmKDE2JnIpe2NvbnN0IHQ9TGwoZSxuKTtpZihBcnJheS5pc0FycmF5KHQpKW8ucHVzaCguLi50KTtlbHNle2NvbnN0IG49bWwoZVsxNl0pO25nRGV2TW9kZSYmSW8obiksQmcoblsxXSxuLHQsbywhMCl9fW49aT9uLnByb2plY3Rpb25OZXh0Om4ubmV4dH1yZXR1cm4gb30KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovTGcuybVwcm92PU1uKHt0b2tlbjpMZyxwcm92aWRlZEluOiJyb290IixmYWN0b3J5OkZnfSk7Y2xhc3MgVmd7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9sVmlldz10LHRoaXMuX2NkUmVmSW5qZWN0aW5nVmlldz1lLHRoaXMuX2FwcFJlZj1udWxsLHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyPSExfWdldCByb290Tm9kZXMoKXtjb25zdCB0PXRoaXMuX2xWaWV3LGU9dFsxXTtyZXR1cm4gQmcoZSx0LGUuZmlyc3RDaGlsZCxbXSl9Z2V0IGNvbnRleHQoKXtyZXR1cm4gdGhpcy5fbFZpZXdbOF19c2V0IGNvbnRleHQodCl7dGhpcy5fbFZpZXdbOF09dH1nZXQgZGVzdHJveWVkKCl7cmV0dXJuIDI1Nj09KDI1NiZ0aGlzLl9sVmlld1syXSl9ZGVzdHJveSgpe2lmKHRoaXMuX2FwcFJlZil0aGlzLl9hcHBSZWYuZGV0YWNoVmlldyh0aGlzKTtlbHNlIGlmKHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyKXtjb25zdCB0PXRoaXMuX2xWaWV3WzNdO2lmKF9vKHQpKXtjb25zdCBlPXRbOF0sbj1lP2UuaW5kZXhPZih0aGlzKTotMTtuPi0xJiYobmdEZXZNb2RlJiZsbihuLHQuaW5kZXhPZih0aGlzLl9sVmlldyktYm8sIkFuIGF0dGFjaGVkIHZpZXcgc2hvdWxkIGJlIGluIHRoZSBzYW1lIHBvc2l0aW9uIHdpdGhpbiBpdHMgY29udGFpbmVyIGFzIGl0cyBWaWV3UmVmIGluIHRoZSBWSUVXX1JFRlMgYXJyYXkuIikseGwodCxuKSxvcihlLG4pKX10aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcj0hMX1PbCh0aGlzLl9sVmlld1sxXSx0aGlzLl9sVmlldyl9b25EZXN0cm95KHQpe3JkKHRoaXMuX2xWaWV3WzFdLHRoaXMuX2xWaWV3LG51bGwsdCl9bWFya0ZvckNoZWNrKCl7RWQodGhpcy5fY2RSZWZJbmplY3RpbmdWaWV3fHx0aGlzLl9sVmlldyl9ZGV0YWNoKCl7dGhpcy5fbFZpZXdbMl0mPS0xMjl9cmVhdHRhY2goKXt0aGlzLl9sVmlld1syXXw9MTI4fWRldGVjdENoYW5nZXMoKXtBZCh0aGlzLl9sVmlld1sxXSx0aGlzLl9sVmlldyx0aGlzLmNvbnRleHQpfWNoZWNrTm9DaGFuZ2VzKCl7IShmdW5jdGlvbiB0KGUsbixvKXtPaSghMCk7dHJ5e0FkKGUsbixvKX1maW5hbGx5e09pKCExKX19KSh0aGlzLl9sVmlld1sxXSx0aGlzLl9sVmlldyx0aGlzLmNvbnRleHQpfWF0dGFjaFRvVmlld0NvbnRhaW5lclJlZigpe2lmKHRoaXMuX2FwcFJlZil0aHJvdyBuZXcgRXJyb3IoIlRoaXMgdmlldyBpcyBhbHJlYWR5IGF0dGFjaGVkIGRpcmVjdGx5IHRvIHRoZSBBcHBsaWNhdGlvblJlZiEiKTt0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcj0hMH1kZXRhY2hGcm9tQXBwUmVmKCl7dGhpcy5fYXBwUmVmPW51bGwsKGZ1bmN0aW9uIHQoZSxuKXtVbChlLG4sblsxMV0sMixudWxsLG51bGwpfSkodGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcpfWF0dGFjaFRvQXBwUmVmKHQpe2lmKHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyKXRocm93IG5ldyBFcnJvcigiVGhpcyB2aWV3IGlzIGFscmVhZHkgYXR0YWNoZWQgdG8gYSBWaWV3Q29udGFpbmVyISIpO3RoaXMuX2FwcFJlZj10fX1jbGFzcyBqZyBleHRlbmRzIFZne2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuX3ZpZXc9dH1kZXRlY3RDaGFuZ2VzKCl7VGQodGhpcy5fdmlldyl9Y2hlY2tOb0NoYW5nZXMoKXshKGZ1bmN0aW9uIHQoZSl7T2koITApO3RyeXtUZChlKX1maW5hbGx5e09pKCExKX19KSh0aGlzLl92aWV3KX1nZXQgY29udGV4dCgpe3JldHVybiBudWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgVWd7fVVnLl9fTkdfRUxFTUVOVF9JRF9fPWZ1bmN0aW9uIEdnKHQpe3JldHVybihmdW5jdGlvbiBlKHQsbixvKXtpZihNbyh0KSYmIW8pe2NvbnN0IGU9cmkodC5pbmRleCxuKTtyZXR1cm4gbmV3IFZnKGUsZSl9cmV0dXJuIDQ3JnQudHlwZT9uZXcgVmcoblsxNl0sbik6bnVsbH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKShiaSgpLGZpKCksMTY9PSgxNiZ0KSl9O2NvbnN0IFdnPVtuZXcgVGddLFlnPVtuZXcgd2ddLHFnPW5ldyBIZyhZZyksWmc9bmV3IExnKFdnKTtjbGFzcyBYZ3t9WGcuX19OR19FTEVNRU5UX0lEX189ZnVuY3Rpb24gS2coKXtyZXR1cm4gJGcoYmkoKSxmaSgpKX07Y29uc3QgSmc9WGcsUWc9Y2xhc3MgZXh0ZW5kcyBKZ3tjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLl9kZWNsYXJhdGlvbkxWaWV3PXQsdGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyPWUsdGhpcy5lbGVtZW50UmVmPW59Y3JlYXRlRW1iZWRkZWRWaWV3KHQpe2NvbnN0IGU9dGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyLnRWaWV3cyxuPXFjKHRoaXMuX2RlY2xhcmF0aW9uTFZpZXcsZSx0LDE2LG51bGwsZS5kZWNsVE5vZGUsbnVsbCxudWxsLG51bGwsbnVsbCksbz10aGlzLl9kZWNsYXJhdGlvbkxWaWV3W3RoaXMuX2RlY2xhcmF0aW9uVENvbnRhaW5lci5pbmRleF07bmdEZXZNb2RlJiZEbyhvKSxuWzE3XT1vO2NvbnN0IGk9dGhpcy5fZGVjbGFyYXRpb25MVmlld1sxOV07cmV0dXJuIG51bGwhPT1pJiYoblsxOV09aS5jcmVhdGVFbWJlZGRlZFZpZXcoZSkpLEpjKGUsbix0KSxuZXcgVmcobil9fTtmdW5jdGlvbiAkZyh0LGUpe3JldHVybiA0JnQudHlwZT8obmdEZXZNb2RlJiZobih0LnRWaWV3cywiVFZpZXcgbXVzdCBiZSBhbGxvY2F0ZWQiKSxuZXcgUWcoZSx0LGdnKHQsZSkpKTpudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB0aHt9Y2xhc3MgZWh7fWVoLl9fTkdfRUxFTUVOVF9JRF9fPWZ1bmN0aW9uIG5oKCl7cmV0dXJuIHNoKGJpKCksZmkoKSl9O2NvbnN0IG9oPWVoLGloPWNsYXNzIGV4dGVuZHMgb2h7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy5fbENvbnRhaW5lcj10LHRoaXMuX2hvc3RUTm9kZT1lLHRoaXMuX2hvc3RMVmlldz1ufWdldCBlbGVtZW50KCl7cmV0dXJuIGdnKHRoaXMuX2hvc3RUTm9kZSx0aGlzLl9ob3N0TFZpZXcpfWdldCBpbmplY3Rvcigpe3JldHVybiBuZXcgUmEodGhpcy5faG9zdFROb2RlLHRoaXMuX2hvc3RMVmlldyl9Z2V0IHBhcmVudEluamVjdG9yKCl7Y29uc3QgdD1fYSh0aGlzLl9ob3N0VE5vZGUsdGhpcy5faG9zdExWaWV3KTtpZihkYSh0KSl7Y29uc3QgZT1tYSh0LHRoaXMuX2hvc3RMVmlldyksbj1wYSh0KTtyZXR1cm4gbmdEZXZNb2RlJiZIbyhlLG4pLG5ldyBSYShlWzFdLmRhdGFbbis4XSxlKX1yZXR1cm4gbmV3IFJhKG51bGwsdGhpcy5faG9zdExWaWV3KX1jbGVhcigpe2Zvcig7dGhpcy5sZW5ndGg+MDspdGhpcy5yZW1vdmUodGhpcy5sZW5ndGgtMSl9Z2V0KHQpe2NvbnN0IGU9YWgodGhpcy5fbENvbnRhaW5lcik7cmV0dXJuIG51bGwhPT1lJiZlW3RdfHxudWxsfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5fbENvbnRhaW5lci5sZW5ndGgtYm99Y3JlYXRlRW1iZWRkZWRWaWV3KHQsZSxuKXtjb25zdCBvPXQuY3JlYXRlRW1iZWRkZWRWaWV3KGV8fHt9KTtyZXR1cm4gdGhpcy5pbnNlcnQobyxuKSxvfWNyZWF0ZUNvbXBvbmVudCh0LGUsbixvLGkpe2NvbnN0IGE9bnx8dGhpcy5wYXJlbnRJbmplY3RvcjtpZighaSYmbnVsbD09dC5uZ01vZHVsZSYmYSl7Y29uc3QgdD1hLmdldCh0aCxudWxsKTt0JiYoaT10KX1jb25zdCByPXQuY3JlYXRlKGEsbyx2b2lkIDAsaSk7cmV0dXJuIHRoaXMuaW5zZXJ0KHIuaG9zdFZpZXcsZSkscn1pbnNlcnQodCxlKXtjb25zdCBuPXQuX2xWaWV3LG89blsxXTtpZihuZ0Rldk1vZGUmJnQuZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGluc2VydCBhIGRlc3Ryb3llZCBWaWV3IGluIGEgVmlld0NvbnRhaW5lciEiKTtpZigoZnVuY3Rpb24gaSh0KXtyZXR1cm4gX28odFszXSl9KShuKSl7Y29uc3QgZT10aGlzLmluZGV4T2YodCk7aWYoLTEhPT1lKXRoaXMuZGV0YWNoKGUpO2Vsc2V7Y29uc3QgZT1uWzNdO25nRGV2TW9kZSYmbG4oX28oZSksITAsIkFuIGF0dGFjaGVkIHZpZXcgc2hvdWxkIGhhdmUgaXRzIFBBUkVOVCBwb2ludCB0byBhIGNvbnRhaW5lci4iKTtjb25zdCBvPW5ldyBpaChlLGVbNl0sZVszXSk7by5kZXRhY2goby5pbmRleE9mKHQpKX19Y29uc3QgYT10aGlzLl9hZGp1c3RJbmRleChlKSxyPXRoaXMuX2xDb250YWluZXI7IShmdW5jdGlvbiBzKHQsZSxuLG8pe25nRGV2TW9kZSYmUm8oZSksbmdEZXZNb2RlJiZEbyhuKTtjb25zdCBpPWJvK28sYT1uLmxlbmd0aDtvPjAmJihuW2ktMV1bNF09ZSksbzxhLWJvPyhlWzRdPW5baV0sbnIobixibytvLGUpKToobi5wdXNoKGUpLGVbNF09bnVsbCksZVszXT1uO2NvbnN0IHI9ZVsxN107bnVsbCE9PXImJm4hPT1yJiYoZnVuY3Rpb24gcyh0LGUpe25nRGV2TW9kZSYmaG4oZSwiTFZpZXcgcmVxdWlyZWQiKSxuZ0Rldk1vZGUmJkRvKHQpO2NvbnN0IG49dFs5XSxvPWVbM107bmdEZXZNb2RlJiZEbyhvKTtjb25zdCBpPW9bM11bMTZdO25nRGV2TW9kZSYmaG4oaSwiTWlzc2luZyBpbnNlcnRlZENvbXBvbmVudExWaWV3Iik7Y29uc3QgYT1lWzE2XTtuZ0Rldk1vZGUmJmhuKGEsIk1pc3NpbmcgZGVjbGFyZWRDb21wb25lbnRMVmlldyIpLGEhPT1pJiYodFsyXT0hMCksbnVsbD09PW4/dFs5XT1bZV06bi5wdXNoKGUpfSkocixlKTtjb25zdCBsPWVbMTldO251bGwhPT1sJiZsLmluc2VydFZpZXcodCksZVsyXXw9MTI4fSkobyxuLHIsYSk7Y29uc3QgbD1CbChhLHIpLGM9blsxMV0sZD1SbChjLHJbN10pO3JldHVybiBudWxsIT09ZCYmKGZ1bmN0aW9uIHAodCxlLG4sbyxpLGEpe29bMF09aSxvWzZdPWUsVWwodCxvLG4sMSxpLGEpfSkobyxyWzZdLGMsbixkLGwpLHQuYXR0YWNoVG9WaWV3Q29udGFpbmVyUmVmKCksbnIocmgociksYSx0KSx0fW1vdmUodCxlKXtpZihuZ0Rldk1vZGUmJnQuZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IG1vdmUgYSBkZXN0cm95ZWQgVmlldyBpbiBhIFZpZXdDb250YWluZXIhIik7cmV0dXJuIHRoaXMuaW5zZXJ0KHQsZSl9aW5kZXhPZih0KXtjb25zdCBlPWFoKHRoaXMuX2xDb250YWluZXIpO3JldHVybiBudWxsIT09ZT9lLmluZGV4T2YodCk6LTF9cmVtb3ZlKHQpe2NvbnN0IGU9dGhpcy5fYWRqdXN0SW5kZXgodCwtMSksbj14bCh0aGlzLl9sQ29udGFpbmVyLGUpO24mJihvcihyaCh0aGlzLl9sQ29udGFpbmVyKSxlKSxPbChuWzFdLG4pKX1kZXRhY2godCl7Y29uc3QgZT10aGlzLl9hZGp1c3RJbmRleCh0LC0xKSxuPXhsKHRoaXMuX2xDb250YWluZXIsZSk7cmV0dXJuIG4mJm51bGwhPW9yKHJoKHRoaXMuX2xDb250YWluZXIpLGUpP25ldyBWZyhuKTpudWxsfV9hZGp1c3RJbmRleCh0LGU9MCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5sZW5ndGgrZToobmdEZXZNb2RlJiYoZm4odCwtMSxgVmlld1JlZiBpbmRleCBtdXN0IGJlIHBvc2l0aXZlLCBnb3QgJHt0fWApLG1uKHQsdGhpcy5sZW5ndGgrMStlLCJpbmRleCIpKSx0KX19O2Z1bmN0aW9uIGFoKHQpe3JldHVybiB0WzhdfWZ1bmN0aW9uIHJoKHQpe3JldHVybiB0WzhdfHwodFs4XT1bXSl9ZnVuY3Rpb24gc2godCxlKXtsZXQgbjtuZ0Rldk1vZGUmJmlhKHQsMTUpO2NvbnN0IG89ZVt0LmluZGV4XTtpZihfbyhvKSluPW87ZWxzZXtsZXQgaTtpZig4JnQudHlwZSlpPWVpKG8pO2Vsc2V7Y29uc3Qgbj1lWzExXTtuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckNyZWF0ZUNvbW1lbnQrKyxpPW4uY3JlYXRlQ29tbWVudChuZ0Rldk1vZGU/ImNvbnRhaW5lciI6IiIpO2NvbnN0IG89b2kodCxlKTtTbChuLFJsKG4sbyksaSwoZnVuY3Rpb24gaSh0LGUpe3JldHVybiAkbyh0KT90Lm5leHRTaWJsaW5nKGUpOmUubmV4dFNpYmxpbmd9KShuLG8pLCExKX1lW3QuaW5kZXhdPW49UGQobyxlLGksdCksRGQoZSxuKX1yZXR1cm4gbmV3IGloKG4sdCxlKX1jb25zdCBsaD1uZXcgTWFwO2Z1bmN0aW9uIGNoKHQpe2xldCBlPWxoLmdldCh0KTtyZXR1cm4gZXx8KGU9R2UodCkrIl8iK2xoLnNpemUsbGguc2V0KHQsZSkpLGV9Y2gocnApLGNoKEdkKSxjaCh0aCksCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjaChDZyksY2goaGcpLGNoKGVoKSxjaChYZyksY2goVWcpLGNoKHJwKSxjaChHZCk7Y29uc3QgZGg9e307Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHBoIGV4dGVuZHMgdWd7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLm5nTW9kdWxlPXR9cmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodCl7bmdEZXZNb2RlJiYoZnVuY3Rpb24gZSh0LG49IlR5cGUgcGFzc2VkIGluIGlzIG5vdCBDb21wb25lbnRUeXBlLCBpdCBkb2VzIG5vdCBoYXZlICfJtWNtcCcgcHJvcGVydHkuIil7cG8odCl8fGJuKG4pfSkodCk7Y29uc3Qgbj1wbyh0KTtyZXR1cm4gbmV3IGZoKG4sdGhpcy5uZ01vZHVsZSl9fWZ1bmN0aW9uIG1oKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmZS5wdXNoKHtwcm9wTmFtZTp0W25dLHRlbXBsYXRlTmFtZTpufSk7cmV0dXJuIGV9Y29uc3QgdWg9bmV3IEdhKCJTQ0hFRFVMRVJfVE9LRU4iLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5ubH0pO2NsYXNzIGZoIGV4dGVuZHMgbWd7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuY29tcG9uZW50RGVmPXQsdGhpcy5uZ01vZHVsZT1lLHRoaXMuY29tcG9uZW50VHlwZT10LnR5cGUsdGhpcy5zZWxlY3Rvcj0oZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5tYXAoaWMpLmpvaW4oIiwiKX0pKHQuc2VsZWN0b3JzKSx0aGlzLm5nQ29udGVudFNlbGVjdG9ycz10Lm5nQ29udGVudFNlbGVjdG9ycz90Lm5nQ29udGVudFNlbGVjdG9yczpbXSx0aGlzLmlzQm91bmRUb01vZHVsZT0hIWV9Z2V0IGlucHV0cygpe3JldHVybiBtaCh0aGlzLmNvbXBvbmVudERlZi5pbnB1dHMpfWdldCBvdXRwdXRzKCl7cmV0dXJuIG1oKHRoaXMuY29tcG9uZW50RGVmLm91dHB1dHMpfWNyZWF0ZSh0LGUsbixvKXtjb25zdCBpPShvPW98fHRoaXMubmdNb2R1bGUpPyhmdW5jdGlvbiBhKHQsZSl7cmV0dXJue2dldDoobixvLGkpPT57Y29uc3QgYT10LmdldChuLGRoLGkpO3JldHVybiBhIT09ZGh8fG89PT1kaD9hOmUuZ2V0KG4sbyxpKX19fSkodCxvLmluamVjdG9yKTp0LHI9aS5nZXQoX2csdGkpLHM9aS5nZXQoeGcsbnVsbCksbD1yLmNyZWF0ZVJlbmRlcmVyKG51bGwsdGhpcy5jb21wb25lbnREZWYpLGM9dGhpcy5jb21wb25lbnREZWYuc2VsZWN0b3JzWzBdWzBdfHwiZGl2IixkPW4/KGZ1bmN0aW9uIHAodCxlLG4pe2lmKCRvKHQpKXJldHVybiB0LnNlbGVjdFJvb3RFbGVtZW50KGUsbj09PUhuLlNoYWRvd0RvbSk7bGV0IG89InN0cmluZyI9PXR5cGVvZiBlP3QucXVlcnlTZWxlY3RvcihlKTplO3JldHVybiBuZ0Rldk1vZGUmJihmdW5jdGlvbiBpKHQsZSl7aWYoIXQpdGhyb3coZnVuY3Rpb24gbih0LGUpe3JldHVybiBuZXcgRXJyb3IoYFJlbmRlcmVyOiAke3R9IFske3RuKGUpfV1gKX0pKCJzdHJpbmciPT10eXBlb2YgZT8iSG9zdCBub2RlIHdpdGggc2VsZWN0b3Igbm90IGZvdW5kOiI6Ikhvc3Qgbm9kZSBpcyByZXF1aXJlZDoiLGUpfSkobyxlKSxvLnRleHRDb250ZW50PSIiLG99KShsLG4sdGhpcy5jb21wb25lbnREZWYuZW5jYXBzdWxhdGlvbik6TWwoci5jcmVhdGVSZW5kZXJlcihudWxsLHRoaXMuY29tcG9uZW50RGVmKSxjLChmdW5jdGlvbiBtKHQpe2NvbnN0IGU9dC50b0xvd2VyQ2FzZSgpO3JldHVybiJzdmciPT09ZT9abzoibWF0aCI9PT1lP1hvOm51bGx9KShjKSksdT10aGlzLmNvbXBvbmVudERlZi5vblB1c2g/NTc2OjUyOCxmPShmdW5jdGlvbiBnKHQsZSl7cmV0dXJue2NvbXBvbmVudHM6W10sc2NoZWR1bGVyOnR8fG5sLGNsZWFuOklkLHBsYXllckhhbmRsZXI6ZXx8bnVsbCxmbGFnczowfX0pKCksaD1hZCgwLG51bGwsbnVsbCwxLDAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsKSxiPXFjKG51bGwsaCxmLHUsbnVsbCxudWxsLHIsbCxzLGkpO2xldCB5LF87RmkoYik7dHJ5e2NvbnN0IHQ9KGZ1bmN0aW9uIG8odCxlLG4saSxhLHIpe2NvbnN0IHM9blsxXTtuZ0Rldk1vZGUmJl9uKG4sMjApLG5bMjBdPXQ7Y29uc3QgbD1aYyhzLDIwLDIsIiNob3N0IixudWxsKSxjPWwubWVyZ2VkQXR0cnM9ZS5ob3N0QXR0cnM7bnVsbCE9PWMmJihVZChsLGMsITApLG51bGwhPT10JiYoYWEoYSx0LGMpLG51bGwhPT1sLmNsYXNzZXMmJllsKGEsdCxsLmNsYXNzZXMpLG51bGwhPT1sLnN0eWxlcyYmV2woYSx0LGwuc3R5bGVzKSkpO2NvbnN0IGQ9aS5jcmVhdGVSZW5kZXJlcih0LGUpLHA9cWMobixpZChlKSxudWxsLGUub25QdXNoPzY0OjE2LG5bMjBdLGwsaSxkLHJ8fG51bGwsbnVsbCk7cmV0dXJuIHMuZmlyc3RDcmVhdGVQYXNzJiYoQ2EoaGEobCxuKSxzLGUudHlwZSksZ2QocyxsKSxiZChsLG4ubGVuZ3RoLDEpKSxEZChuLHApLG5bMjBdPXB9KShkLHRoaXMuY29tcG9uZW50RGVmLGIscixsKTtpZihkKWlmKG4pYWEobCxkLFsibmctdmVyc2lvbiIsUGcuZnVsbF0pO2Vsc2V7Y29uc3R7YXR0cnM6dCxjbGFzc2VzOmV9PShmdW5jdGlvbiBuKHQpe2NvbnN0IGU9W10sbj1bXTtsZXQgbz0xLGk9Mjtmb3IoO288dC5sZW5ndGg7KXtsZXQgYT10W29dO2lmKCJzdHJpbmciPT10eXBlb2YgYSkyPT09aT8iIiE9PWEmJmUucHVzaChhLHRbKytvXSk6OD09PWkmJm4ucHVzaChhKTtlbHNle2lmKCEkbChpKSlicmVhaztpPWF9bysrfXJldHVybnthdHRyczplLGNsYXNzZXM6bn19KSh0aGlzLmNvbXBvbmVudERlZi5zZWxlY3RvcnNbMF0pO3QmJmFhKGwsZCx0KSxlJiZlLmxlbmd0aD4wJiZZbChsLGQsZS5qb2luKCIgIikpfWlmKF89aWkoaCxnbyksdm9pZCAwIT09ZSl7Y29uc3QgdD1fLnByb2plY3Rpb249W107Zm9yKGxldCBuPTA7bjx0aGlzLm5nQ29udGVudFNlbGVjdG9ycy5sZW5ndGg7bisrKXtjb25zdCBvPWVbbl07dC5wdXNoKG51bGwhPW8/QXJyYXkuZnJvbShvKTpudWxsKX19eT0oZnVuY3Rpb24gaSh0LGUsbixvLGEpe2NvbnN0IHI9blsxXSxzPShmdW5jdGlvbiBsKHQsZSxuKXtjb25zdCBvPWJpKCk7aWYodC5maXJzdENyZWF0ZVBhc3Mpe24ucHJvdmlkZXJzUmVzb2x2ZXImJm4ucHJvdmlkZXJzUmVzb2x2ZXIobik7Y29uc3QgaT1LYyh0LGUsMSxudWxsKTtuZ0Rldk1vZGUmJmxuKGksby5kaXJlY3RpdmVTdGFydCwiQmVjYXVzZSB0aGlzIGlzIGEgcm9vdCBjb21wb25lbnQgdGhlIGFsbG9jYXRlZCBleHBhbmRvIHNob3VsZCBtYXRjaCB0aGUgVE5vZGUgY29tcG9uZW50LiIpLHlkKHQsbyxlLGksbil9Y29uc3QgaT1TYShlLHQsby5kaXJlY3RpdmVTdGFydCxvKTtMcyhpLGUpO2NvbnN0IGE9b2kobyxlKTtyZXR1cm4gYSYmTHMoYSxlKSxpfSkocixuLGUpO2lmKG8uY29tcG9uZW50cy5wdXNoKHMpLHRbOF09cyxhJiZhLmZvckVhY2goKHQ9PnQocyxlKSkpLGUuY29udGVudFF1ZXJpZXMpe2NvbnN0IHQ9YmkoKTtuZ0Rldk1vZGUmJmhuKHQsIlROb2RlIGV4cGVjdGVkIiksZS5jb250ZW50UXVlcmllcygxLHMsdC5kaXJlY3RpdmVTdGFydCl9Y29uc3QgYz1iaSgpO3JldHVybiBuZ0Rldk1vZGUmJmhuKGMsInROb2RlIHNob3VsZCBoYXZlIGJlZW4gYWxyZWFkeSBjcmVhdGVkIiksIXIuZmlyc3RDcmVhdGVQYXNzfHxudWxsPT09ZS5ob3N0QmluZGluZ3MmJm51bGw9PT1lLmhvc3RBdHRyc3x8KFdpKGMuaW5kZXgpLHVkKG5bMV0sYywwLGMuZGlyZWN0aXZlU3RhcnQsYy5kaXJlY3RpdmVFbmQsZSksZmQoZSxzKSksc30pKHQsdGhpcy5jb21wb25lbnREZWYsYixmLFtNcF0pLEpjKGgsYixudWxsKX1maW5hbGx5e1VpKCl9cmV0dXJuIG5ldyBnaCh0aGlzLmNvbXBvbmVudFR5cGUseSxnZyhfLGIpLGIsXyl9fW5ldyBwaDtjbGFzcyBnaCBleHRlbmRzIGNsYXNze317Y29uc3RydWN0b3IodCxlLG4sbyxpKXtzdXBlcigpLHRoaXMubG9jYXRpb249bix0aGlzLl9yb290TFZpZXc9byx0aGlzLl90Tm9kZT1pLHRoaXMuaW5zdGFuY2U9ZSx0aGlzLmhvc3RWaWV3PXRoaXMuY2hhbmdlRGV0ZWN0b3JSZWY9bmV3IGpnKG8pLHRoaXMuY29tcG9uZW50VHlwZT10fWdldCBpbmplY3Rvcigpe3JldHVybiBuZXcgUmEodGhpcy5fdE5vZGUsdGhpcy5fcm9vdExWaWV3KX1kZXN0cm95KCl7dGhpcy5ob3N0Vmlldy5kZXN0cm95KCl9b25EZXN0cm95KHQpe3RoaXMuaG9zdFZpZXcub25EZXN0cm95KHQpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gaGgodCxlLG4sbyl7cmV0dXJuIE5uKCgoKT0+e2NvbnN0IGk9dDtudWxsIT09ZSYmKGkuaGFzT3duUHJvcGVydHkoImRlY29yYXRvcnMiKSYmdm9pZCAwIT09aS5kZWNvcmF0b3JzP2kuZGVjb3JhdG9ycy5wdXNoKC4uLmUpOmkuZGVjb3JhdG9ycz1lKSxudWxsIT09biYmKGkuY3RvclBhcmFtZXRlcnM9biksbnVsbCE9PW8mJihpLnByb3BEZWNvcmF0b3JzPWkuaGFzT3duUHJvcGVydHkoInByb3BEZWNvcmF0b3JzIikmJnZvaWQgMCE9PWkucHJvcERlY29yYXRvcnM/T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGkucHJvcERlY29yYXRvcnMpLG8pOm8pfSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBiaD1uZXcgTWFwOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgeWggZXh0ZW5kcyB0aHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5fcGFyZW50PWUsdGhpcy5fYm9vdHN0cmFwQ29tcG9uZW50cz1bXSx0aGlzLmluamVjdG9yPXRoaXMsdGhpcy5kZXN0cm95Q2JzPVtdLHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPW5ldyBwaCh0aGlzKTtjb25zdCBuPWZvKHQpO25nRGV2TW9kZSYmaG4obixgTmdNb2R1bGUgJyR7R2UodCl9JyBpcyBub3QgYSBzdWJ0eXBlIG9mICdOZ01vZHVsZVR5cGUnLmApO2NvbnN0IG89KGZ1bmN0aW9uIGkodCl7cmV0dXJuIHRbS25dfHxudWxsfSkodCk7byYmWHUobyksdGhpcy5fYm9vdHN0cmFwQ29tcG9uZW50cz1ybChuLmJvb3RzdHJhcCksdGhpcy5fcjNJbmplY3Rvcj1KZCh0LGUsW3twcm92aWRlOnRoLHVzZVZhbHVlOnRoaXN9LHtwcm92aWRlOnVnLHVzZVZhbHVlOnRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyfV0sR2UodCkpLHRoaXMuX3IzSW5qZWN0b3IuX3Jlc29sdmVJbmplY3RvckRlZlR5cGVzKCksdGhpcy5pbnN0YW5jZT10aGlzLmdldCh0KX1nZXQodCxlPXJwLlRIUk9XX0lGX05PVF9GT1VORCxuPUVuLkRlZmF1bHQpe3JldHVybiB0PT09cnB8fHQ9PT10aHx8dD09PUdkP3RoaXM6dGhpcy5fcjNJbmplY3Rvci5nZXQodCxlLG4pfWRlc3Ryb3koKXtuZ0Rldk1vZGUmJmhuKHRoaXMuZGVzdHJveUNicywiTmdNb2R1bGUgYWxyZWFkeSBkZXN0cm95ZWQiKTtjb25zdCB0PXRoaXMuX3IzSW5qZWN0b3I7IXQuZGVzdHJveWVkJiZ0LmRlc3Ryb3koKSx0aGlzLmRlc3Ryb3lDYnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5kZXN0cm95Q2JzPW51bGx9b25EZXN0cm95KHQpe25nRGV2TW9kZSYmaG4odGhpcy5kZXN0cm95Q2JzLCJOZ01vZHVsZSBhbHJlYWR5IGRlc3Ryb3llZCIpLHRoaXMuZGVzdHJveUNicy5wdXNoKHQpfX1jbGFzcyBfaCBleHRlbmRzIGNsYXNze30KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICove2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5tb2R1bGVUeXBlPXQsbnVsbCE9PWZvKHQpJiYoZnVuY3Rpb24gZSh0KXtjb25zdCBlPW5ldyBTZXQ7IShmdW5jdGlvbiB0KG4pe2NvbnN0IG89Zm8obiwhMCksaT1vLmlkO251bGwhPT1pJiYoKGZ1bmN0aW9uIGEodCxlLG4pe2lmKGUmJmUhPT1uKXRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlIG1vZHVsZSByZWdpc3RlcmVkIGZvciAke3R9IC0gJHtHZShlKX0gdnMgJHtHZShlLm5hbWUpfWApfSkoaSxiaC5nZXQoaSksbiksYmguc2V0KGksbikpO2NvbnN0IHI9cmwoby5pbXBvcnRzKTtmb3IoY29uc3QgbiBvZiByKWUuaGFzKG4pfHwoZS5hZGQobiksdChuKSl9KSh0KX0pKHQpfWNyZWF0ZSh0KXtyZXR1cm4gbmV3IHloKHRoaXMubW9kdWxlVHlwZSx0KX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIENoKHQsZSxuKXtjb25zdCBvPVBpKCkrdCxpPWZpKCk7cmV0dXJuIGlbb109PT1hYz9JcChpLG8sbj9lLmNhbGwobik6ZSgpKTpIcChpLG8pfWZ1bmN0aW9uIE1oKHQsZSxuLG8pe3JldHVybiBraChmaSgpLFBpKCksdCxlLG4sbyl9ZnVuY3Rpb24gdmgodCxlLG4sbyxpKXtyZXR1cm4gU2goZmkoKSxQaSgpLHQsZSxuLG8saSl9ZnVuY3Rpb24geGgodCxlLG4sbyxpLGEpe3JldHVybiBEaChmaSgpLFBpKCksdCxlLG4sbyxpLGEpfWZ1bmN0aW9uIE9oKHQsZSxuLG8saSxhLHIpe3JldHVybiBFaChmaSgpLFBpKCksdCxlLG4sbyxpLGEscil9ZnVuY3Rpb24gUGgodCxlLG4sbyxpLGEscixzKXtjb25zdCBsPVBpKCkrdCxjPWZpKCksZD1WcChjLGwsbixvLGksYSk7cmV0dXJuIEZwKGMsbCs0LHIpfHxkP0lwKGMsbCs1LHM/ZS5jYWxsKHMsbixvLGksYSxyKTplKG4sbyxpLGEscikpOkhwKGMsbCs1KX1mdW5jdGlvbiB3aCh0LGUpe25nRGV2TW9kZSYmX24odCxlKTtjb25zdCBuPXRbZV07cmV0dXJuIG49PT1hYz92b2lkIDA6bn1mdW5jdGlvbiBraCh0LGUsbixvLGksYSl7Y29uc3Qgcj1lK247cmV0dXJuIEZwKHQscixpKT9JcCh0LHIrMSxhP28uY2FsbChhLGkpOm8oaSkpOndoKHQscisxKX1mdW5jdGlvbiBTaCh0LGUsbixvLGksYSxyKXtjb25zdCBzPWUrbjtyZXR1cm4gTHAodCxzLGksYSk/SXAodCxzKzIscj9vLmNhbGwocixpLGEpOm8oaSxhKSk6d2godCxzKzIpfWZ1bmN0aW9uIERoKHQsZSxuLG8saSxhLHIscyl7Y29uc3QgbD1lK247cmV0dXJuIEJwKHQsbCxpLGEscik/SXAodCxsKzMscz9vLmNhbGwocyxpLGEscik6byhpLGEscikpOndoKHQsbCszKX1mdW5jdGlvbiBFaCh0LGUsbixvLGksYSxyLHMsbCl7Y29uc3QgYz1lK247cmV0dXJuIFZwKHQsYyxpLGEscixzKT9JcCh0LGMrNCxsP28uY2FsbChsLGksYSxyLHMpOm8oaSxhLHIscykpOndoKHQsYys0KX1mdW5jdGlvbiBSaCh0LGUsbixvLGksYSl7bGV0IHI9ZStuLHM9ITE7Zm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspRnAodCxyKyssaVtlXSkmJihzPSEwKTtyZXR1cm4gcz9JcCh0LHIsby5hcHBseShhLGkpKTp3aCh0LHIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBBaCh0LGUpe2NvbnN0IG49Z2koKTtsZXQgbztjb25zdCBpPXQrZ287bi5maXJzdENyZWF0ZVBhc3M/KG89KGZ1bmN0aW9uIGEodCxlKXtpZihlKWZvcihsZXQgbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtjb25zdCBvPWVbbl07aWYodD09PW8ubmFtZSlyZXR1cm4gb310aHJvdyBuZXcgS2UoIjMwMiIsYFRoZSBwaXBlICcke3R9JyBjb3VsZCBub3QgYmUgZm91bmQhYCl9KShlLG4ucGlwZVJlZ2lzdHJ5KSxuLmRhdGFbaV09byxvLm9uRGVzdHJveSYmKG4uZGVzdHJveUhvb2tzfHwobi5kZXN0cm95SG9va3M9W10pKS5wdXNoKGksby5vbkRlc3Ryb3kpKTpvPW4uZGF0YVtpXTtjb25zdCByPW8uZmFjdG9yeXx8KG8uZmFjdG9yeT1GbyhvLnR5cGUsITApKSxzPUFuKFNtKTt0cnl7Y29uc3QgdD1mYSghMSksZT1yKCk7cmV0dXJuIGZhKHQpLChmdW5jdGlvbiBsKHQsZSxuLG8pe24+PXQuZGF0YS5sZW5ndGgmJih0LmRhdGFbbl09bnVsbCx0LmJsdWVwcmludFtuXT1udWxsKSxlW25dPW99KShuLGZpKCksaSxlKSxlfWZpbmFsbHl7QW4ocyl9fWZ1bmN0aW9uIFRoKHQsZSxuKXtjb25zdCBvPXQrZ28saT1maSgpLGE9YWkoaSxvKTtyZXR1cm4gSGgoaSxJaChpLG8pP2toKGksUGkoKSxlLGEudHJhbnNmb3JtLG4sYSk6YS50cmFuc2Zvcm0obikpfWZ1bmN0aW9uIE5oKHQsZSxuLG8pe2NvbnN0IGk9dCtnbyxhPWZpKCkscj1haShhLGkpO3JldHVybiBIaChhLEloKGEsaSk/U2goYSxQaSgpLGUsci50cmFuc2Zvcm0sbixvLHIpOnIudHJhbnNmb3JtKG4sbykpfWZ1bmN0aW9uIHpoKHQsZSxuLG8saSl7Y29uc3QgYT10K2dvLHI9ZmkoKSxzPWFpKHIsYSk7cmV0dXJuIEhoKHIsSWgocixhKT9EaChyLFBpKCksZSxzLnRyYW5zZm9ybSxuLG8saSxzKTpzLnRyYW5zZm9ybShuLG8saSkpfWZ1bmN0aW9uIEloKHQsZSl7cmV0dXJuIHRbMV0uZGF0YVtlXS5wdXJlfWZ1bmN0aW9uIEhoKHQsZSl7cmV0dXJuIFRwLmlzV3JhcHBlZChlKSYmKGU9VHAudW53cmFwKGUpLHRbd2koKV09YWMpLGV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEZoKHQpe3JldHVybiBlPT57c2V0VGltZW91dCh0LHZvaWQgMCxlKX19Y29uc3QgTGg9Y2xhc3MgZXh0ZW5kcyBJe2NvbnN0cnVjdG9yKHQ9ITEpe3N1cGVyKCksdGhpcy5fX2lzQXN5bmM9dH1lbWl0KHQpe3N1cGVyLm5leHQodCl9c3Vic2NyaWJlKHQsZSxuKXt2YXIgbyxpLGE7bGV0IHI9dCxzPWV8fCgoKT0+bnVsbCksbD1uO2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdCl7Y29uc3QgZT10O3I9bnVsbD09PShvPWUubmV4dCl8fHZvaWQgMD09PW8/dm9pZCAwOm8uYmluZChlKSxzPW51bGw9PT0oaT1lLmVycm9yKXx8dm9pZCAwPT09aT92b2lkIDA6aS5iaW5kKGUpLGw9bnVsbD09PShhPWUuY29tcGxldGUpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmJpbmQoZSl9dGhpcy5fX2lzQXN5bmMmJihzPUZoKHMpLHImJihyPUZoKHIpKSxsJiYobD1GaChsKSkpO2NvbnN0IGM9c3VwZXIuc3Vic2NyaWJlKHtuZXh0OnIsZXJyb3I6cyxjb21wbGV0ZTpsfSk7cmV0dXJuIHQgaW5zdGFuY2VvZiBtJiZ0LmFkZChjKSxjfX07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEJoKCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHNbUnAoKV0oKX1jbGFzcyBWaHtjb25zdHJ1Y3Rvcih0PSExKXt0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seT10LHRoaXMuZGlydHk9ITAsdGhpcy5fcmVzdWx0cz1bXSx0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5maXJzdD12b2lkIDAsdGhpcy5sYXN0PXZvaWQgMDtjb25zdCBlPVJwKCksbj1WaC5wcm90b3R5cGU7bltlXXx8KG5bZV09QmgpfWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZXN8fCh0aGlzLl9jaGFuZ2VzPW5ldyBMaCl9Z2V0KHQpe3JldHVybiB0aGlzLl9yZXN1bHRzW3RdfW1hcCh0KXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5tYXAodCl9ZmlsdGVyKHQpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbHRlcih0KX1maW5kKHQpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbmQodCl9cmVkdWNlKHQsZSl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMucmVkdWNlKHQsZSl9Zm9yRWFjaCh0KXt0aGlzLl9yZXN1bHRzLmZvckVhY2godCl9c29tZSh0KXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zb21lKHQpfXRvQXJyYXkoKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zbGljZSgpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMudG9TdHJpbmcoKX1yZXNldCh0LGUpe2NvbnN0IG49dGhpcztuLmRpcnR5PSExO2NvbnN0IG89dHIodCk7KHRoaXMuX2NoYW5nZXNEZXRlY3RlZD0hKGZ1bmN0aW9uIGkodCxlLG4pe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspe2xldCBpPXRbb10sYT1lW29dO2lmKG4mJihpPW4oaSksYT1uKGEpKSxhIT09aSlyZXR1cm4hMX1yZXR1cm4hMH0pKG4uX3Jlc3VsdHMsbyxlKSkmJihuLl9yZXN1bHRzPW8sbi5sZW5ndGg9by5sZW5ndGgsbi5sYXN0PW9bdGhpcy5sZW5ndGgtMV0sbi5maXJzdD1vWzBdKX1ub3RpZnlPbkNoYW5nZXMoKXshdGhpcy5fY2hhbmdlc3x8IXRoaXMuX2NoYW5nZXNEZXRlY3RlZCYmdGhpcy5fZW1pdERpc3RpbmN0Q2hhbmdlc09ubHl8fHRoaXMuX2NoYW5nZXMuZW1pdCh0aGlzKX1zZXREaXJ0eSgpe3RoaXMuZGlydHk9ITB9ZGVzdHJveSgpe3RoaXMuY2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuY2hhbmdlcy51bnN1YnNjcmliZSgpfX1jbGFzcyBqaHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnF1ZXJ5TGlzdD10LHRoaXMubWF0Y2hlcz1udWxsfWNsb25lKCl7cmV0dXJuIG5ldyBqaCh0aGlzLnF1ZXJ5TGlzdCl9c2V0RGlydHkoKXt0aGlzLnF1ZXJ5TGlzdC5zZXREaXJ0eSgpfX1jbGFzcyBVaHtjb25zdHJ1Y3Rvcih0PVtdKXt0aGlzLnF1ZXJpZXM9dH1jcmVhdGVFbWJlZGRlZFZpZXcodCl7Y29uc3QgZT10LnF1ZXJpZXM7aWYobnVsbCE9PWUpe2NvbnN0IG49bnVsbCE9PXQuY29udGVudFF1ZXJpZXM/dC5jb250ZW50UXVlcmllc1swXTplLmxlbmd0aCxvPVtdO2ZvcihsZXQgdD0wO3Q8bjt0Kyspe2NvbnN0IG49ZS5nZXRCeUluZGV4KHQpO28ucHVzaCh0aGlzLnF1ZXJpZXNbbi5pbmRleEluRGVjbGFyYXRpb25WaWV3XS5jbG9uZSgpKX1yZXR1cm4gbmV3IFVoKG8pfXJldHVybiBudWxsfWluc2VydFZpZXcodCl7dGhpcy5kaXJ0eVF1ZXJpZXNXaXRoTWF0Y2hlcyh0KX1kZXRhY2hWaWV3KHQpe3RoaXMuZGlydHlRdWVyaWVzV2l0aE1hdGNoZXModCl9ZGlydHlRdWVyaWVzV2l0aE1hdGNoZXModCl7Zm9yKGxldCBlPTA7ZTx0aGlzLnF1ZXJpZXMubGVuZ3RoO2UrKyludWxsIT09b2IodCxlKS5tYXRjaGVzJiZ0aGlzLnF1ZXJpZXNbZV0uc2V0RGlydHkoKX19Y2xhc3MgR2h7Y29uc3RydWN0b3IodCxlLG49bnVsbCl7dGhpcy5wcmVkaWNhdGU9dCx0aGlzLmZsYWdzPWUsdGhpcy5yZWFkPW59fWNsYXNzIFdoe2NvbnN0cnVjdG9yKHQ9W10pe3RoaXMucXVlcmllcz10fWVsZW1lbnRTdGFydCh0LGUpe25nRGV2TW9kZSYmQW8odCwiUXVlcmllcyBzaG91bGQgY29sbGVjdCByZXN1bHRzIG9uIHRoZSBmaXJzdCB0ZW1wbGF0ZSBwYXNzIG9ubHkiKTtmb3IobGV0IG49MDtuPHRoaXMucXVlcmllcy5sZW5ndGg7bisrKXRoaXMucXVlcmllc1tuXS5lbGVtZW50U3RhcnQodCxlKX1lbGVtZW50RW5kKHQpe2ZvcihsZXQgZT0wO2U8dGhpcy5xdWVyaWVzLmxlbmd0aDtlKyspdGhpcy5xdWVyaWVzW2VdLmVsZW1lbnRFbmQodCl9ZW1iZWRkZWRUVmlldyh0KXtsZXQgZT1udWxsO2ZvcihsZXQgbj0wO248dGhpcy5sZW5ndGg7bisrKXtjb25zdCBvPW51bGwhPT1lP2UubGVuZ3RoOjAsaT10aGlzLmdldEJ5SW5kZXgobikuZW1iZWRkZWRUVmlldyh0LG8pO2kmJihpLmluZGV4SW5EZWNsYXJhdGlvblZpZXc9bixudWxsIT09ZT9lLnB1c2goaSk6ZT1baV0pfXJldHVybiBudWxsIT09ZT9uZXcgV2goZSk6bnVsbH10ZW1wbGF0ZSh0LGUpe25nRGV2TW9kZSYmQW8odCwiUXVlcmllcyBzaG91bGQgY29sbGVjdCByZXN1bHRzIG9uIHRoZSBmaXJzdCB0ZW1wbGF0ZSBwYXNzIG9ubHkiKTtmb3IobGV0IG49MDtuPHRoaXMucXVlcmllcy5sZW5ndGg7bisrKXRoaXMucXVlcmllc1tuXS50ZW1wbGF0ZSh0LGUpfWdldEJ5SW5kZXgodCl7cmV0dXJuIG5nRGV2TW9kZSYmX24odGhpcy5xdWVyaWVzLHQpLHRoaXMucXVlcmllc1t0XX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMucXVlcmllcy5sZW5ndGh9dHJhY2sodCl7dGhpcy5xdWVyaWVzLnB1c2godCl9fWNsYXNzIFloe2NvbnN0cnVjdG9yKHQsZT0tMSl7dGhpcy5tZXRhZGF0YT10LHRoaXMubWF0Y2hlcz1udWxsLHRoaXMuaW5kZXhJbkRlY2xhcmF0aW9uVmlldz0tMSx0aGlzLmNyb3NzZXNOZ1RlbXBsYXRlPSExLHRoaXMuX2FwcGxpZXNUb05leHROb2RlPSEwLHRoaXMuX2RlY2xhcmF0aW9uTm9kZUluZGV4PWV9ZWxlbWVudFN0YXJ0KHQsZSl7dGhpcy5pc0FwcGx5aW5nVG9Ob2RlKGUpJiZ0aGlzLm1hdGNoVE5vZGUodCxlKX1lbGVtZW50RW5kKHQpe3RoaXMuX2RlY2xhcmF0aW9uTm9kZUluZGV4PT09dC5pbmRleCYmKHRoaXMuX2FwcGxpZXNUb05leHROb2RlPSExKX10ZW1wbGF0ZSh0LGUpe3RoaXMuZWxlbWVudFN0YXJ0KHQsZSl9ZW1iZWRkZWRUVmlldyh0LGUpe3JldHVybiB0aGlzLmlzQXBwbHlpbmdUb05vZGUodCk/KHRoaXMuY3Jvc3Nlc05nVGVtcGxhdGU9ITAsdGhpcy5hZGRNYXRjaCgtdC5pbmRleCxlKSxuZXcgWWgodGhpcy5tZXRhZGF0YSkpOm51bGx9aXNBcHBseWluZ1RvTm9kZSh0KXtpZih0aGlzLl9hcHBsaWVzVG9OZXh0Tm9kZSYmMSE9KDEmdGhpcy5tZXRhZGF0YS5mbGFncykpe2NvbnN0IGU9dGhpcy5fZGVjbGFyYXRpb25Ob2RlSW5kZXg7bGV0IG49dC5wYXJlbnQ7Zm9yKDtudWxsIT09biYmOCZuLnR5cGUmJm4uaW5kZXghPT1lOyluPW4ucGFyZW50O3JldHVybiBlPT09KG51bGwhPT1uP24uaW5kZXg6LTEpfXJldHVybiB0aGlzLl9hcHBsaWVzVG9OZXh0Tm9kZX1tYXRjaFROb2RlKHQsZSl7Y29uc3Qgbj10aGlzLm1ldGFkYXRhLnByZWRpY2F0ZTtpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXtjb25zdCBpPW5bb107dGhpcy5tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24odCxlLHFoKGUsaSkpLHRoaXMubWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKHQsZSxrYShlLHQsaSwhMSwhMSkpfWVsc2Ugbj09PVhnPzQmZS50eXBlJiZ0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbih0LGUsLTEpOnRoaXMubWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKHQsZSxrYShlLHQsbiwhMSwhMSkpfW1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbih0LGUsbil7aWYobnVsbCE9PW4pe2NvbnN0IG89dGhpcy5tZXRhZGF0YS5yZWFkO2lmKG51bGwhPT1vKWlmKG89PT1oZ3x8bz09PWVofHxvPT09WGcmJjQmZS50eXBlKXRoaXMuYWRkTWF0Y2goZS5pbmRleCwtMik7ZWxzZXtjb25zdCBuPWthKGUsdCxvLCExLCExKTtudWxsIT09biYmdGhpcy5hZGRNYXRjaChlLmluZGV4LG4pfWVsc2UgdGhpcy5hZGRNYXRjaChlLmluZGV4LG4pfX1hZGRNYXRjaCh0LGUpe251bGw9PT10aGlzLm1hdGNoZXM/dGhpcy5tYXRjaGVzPVt0LGVdOnRoaXMubWF0Y2hlcy5wdXNoKHQsZSl9fWZ1bmN0aW9uIHFoKHQsZSl7Y29uc3Qgbj10LmxvY2FsTmFtZXM7aWYobnVsbCE9PW4pZm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kz0yKWlmKG5bdF09PT1lKXJldHVybiBuW3QrMV07cmV0dXJuIG51bGx9ZnVuY3Rpb24gWmgodCxlLG4sbyl7cmV0dXJuLTE9PT1uPyhmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIDExJnQudHlwZT9nZyh0LGUpOjQmdC50eXBlPyRnKHQsZSk6bnVsbH0pKGUsdCk6LTI9PT1uPyhmdW5jdGlvbiBhKHQsZSxuKXtyZXR1cm4gbj09PWhnP2dnKGUsdCk6bj09PVhnPyRnKGUsdCk6bj09PWVoPyhuZ0Rldk1vZGUmJmlhKGUsMTUpLHNoKGUsdCkpOnZvaWQobmdEZXZNb2RlJiZibihgU3BlY2lhbCB0b2tlbiB0byByZWFkIHNob3VsZCBiZSBvbmUgb2YgRWxlbWVudFJlZiwgVGVtcGxhdGVSZWYgb3IgVmlld0NvbnRhaW5lclJlZiBidXQgZ290ICR7R2Uobil9LmApKX0pKHQsZSxvKTpTYSh0LHRbMV0sbixlKX1mdW5jdGlvbiBYaCh0LGUsbixvKXtjb25zdCBpPWVbMTldLnF1ZXJpZXNbb107aWYobnVsbD09PWkubWF0Y2hlcyl7Y29uc3Qgbz10LmRhdGEsYT1uLm1hdGNoZXMscj1bXTtmb3IobGV0IHQ9MDt0PGEubGVuZ3RoO3QrPTIpe2NvbnN0IGk9YVt0XTtpPDA/ci5wdXNoKG51bGwpOihuZ0Rldk1vZGUmJl9uKG8saSksci5wdXNoKFpoKGUsb1tpXSxhW3QrMV0sbi5tZXRhZGF0YS5yZWFkKSkpfWkubWF0Y2hlcz1yfXJldHVybiBpLm1hdGNoZXN9ZnVuY3Rpb24gS2godCxlLG4sbyl7Y29uc3QgaT10LnF1ZXJpZXMuZ2V0QnlJbmRleChuKSxhPWkubWF0Y2hlcztpZihudWxsIT09YSl7Y29uc3Qgcj1YaCh0LGUsaSxuKTtmb3IobGV0IHQ9MDt0PGEubGVuZ3RoO3QrPTIpe2NvbnN0IG49YVt0XTtpZihuPjApby5wdXNoKHJbdC8yXSk7ZWxzZXtjb25zdCBpPWFbdCsxXSxyPWVbLW5dO25nRGV2TW9kZSYmRG8ocik7Zm9yKGxldCB0PWJvO3Q8ci5sZW5ndGg7dCsrKXtjb25zdCBlPXJbdF07ZVsxN109PT1lWzNdJiZLaChlWzFdLGUsaSxvKX1pZihudWxsIT09cls5XSl7Y29uc3QgdD1yWzldO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCBuPXRbZV07S2goblsxXSxuLGksbyl9fX19fXJldHVybiBvfWZ1bmN0aW9uIEpoKHQpe2NvbnN0IGU9ZmkoKSxuPWdpKCksbz1OaSgpO3ppKG8rMSk7Y29uc3QgaT1vYihuLG8pO2lmKHQuZGlydHkmJnNpKGUpPT09KDI9PSgyJmkubWV0YWRhdGEuZmxhZ3MpKSl7aWYobnVsbD09PWkubWF0Y2hlcyl0LnJlc2V0KFtdKTtlbHNle2NvbnN0IGE9aS5jcm9zc2VzTmdUZW1wbGF0ZT9LaChuLGUsbyxbXSk6WGgobixlLGksbyk7dC5yZXNldChhLGJnKSx0Lm5vdGlmeU9uQ2hhbmdlcygpfXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIFFoKHQsZSxuKXtuZ0Rldk1vZGUmJmFuKGUsIkV4cGVjdGluZyBmbGFncyIpO2NvbnN0IG89Z2koKTtvLmZpcnN0Q3JlYXRlUGFzcyYmKG5iKG8sbmV3IEdoKHQsZSxuKSwtMSksMj09KDImZSkmJihvLnN0YXRpY1ZpZXdRdWVyaWVzPSEwKSksZWIobyxmaSgpLGUpfWZ1bmN0aW9uICRoKHQsZSxuLG8pe25nRGV2TW9kZSYmYW4obiwiRXhwZWN0aW5nIGZsYWdzIik7Y29uc3QgaT1naSgpO2lmKGkuZmlyc3RDcmVhdGVQYXNzKXtjb25zdCBhPWJpKCk7bmIoaSxuZXcgR2goZSxuLG8pLGEuaW5kZXgpLChmdW5jdGlvbiBhKHQsZSl7Y29uc3Qgbj10LmNvbnRlbnRRdWVyaWVzfHwodC5jb250ZW50UXVlcmllcz1bXSk7ZSE9PShuLmxlbmd0aD9uW24ubGVuZ3RoLTFdOi0xKSYmbi5wdXNoKHQucXVlcmllcy5sZW5ndGgtMSxlKX0pKGksdCksMj09KDImbikmJihpLnN0YXRpY0NvbnRlbnRRdWVyaWVzPSEwKX1lYihpLGZpKCksbil9ZnVuY3Rpb24gdGIoKXtyZXR1cm4oZnVuY3Rpb24gdChlLG4pe3JldHVybiBuZ0Rldk1vZGUmJmhuKGVbMTldLCJMUXVlcmllcyBzaG91bGQgYmUgZGVmaW5lZCB3aGVuIHRyeWluZyB0byBsb2FkIGEgcXVlcnkiKSxuZ0Rldk1vZGUmJl9uKGVbMTldLnF1ZXJpZXMsbiksZVsxOV0ucXVlcmllc1tuXS5xdWVyeUxpc3R9KShmaSgpLE5pKCkpfWZ1bmN0aW9uIGViKHQsZSxuKXtjb25zdCBvPW5ldyBWaCg0PT0oNCZuKSk7cmQodCxlLG8sby5kZXN0cm95KSxudWxsPT09ZVsxOV0mJihlWzE5XT1uZXcgVWgpLGVbMTldLnF1ZXJpZXMucHVzaChuZXcgamgobykpfWZ1bmN0aW9uIG5iKHQsZSxuKXtudWxsPT09dC5xdWVyaWVzJiYodC5xdWVyaWVzPW5ldyBXaCksdC5xdWVyaWVzLnRyYWNrKG5ldyBZaChlLG4pKX1mdW5jdGlvbiBvYih0LGUpe3JldHVybiBuZ0Rldk1vZGUmJmhuKHQucXVlcmllcywiVFF1ZXJpZXMgbXVzdCBiZSBkZWZpbmVkIHRvIHJldHJpZXZlIGEgVFF1ZXJ5IiksdC5xdWVyaWVzLmdldEJ5SW5kZXgoZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGliKHQsZSl7cmV0dXJuICRnKHQsZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBhYj17Ism1ybVhdHRyaWJ1dGUiOmpwLCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUxIjpmdW5jdGlvbiB0KGUsbixvLGksYSxyKXtjb25zdCBzPWZpKCksbD1HcChzLG4sbyxpKTtpZihsIT09YWMpe2NvbnN0IHQ9WWkoKTtDZCh0LHMsZSxsLGEsciksbmdEZXZNb2RlJiZ6ZChnaSgpLmRhdGEsdCwiYXR0ci4iK2Usd2koKS0xLG4saSl9cmV0dXJuIHR9LCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUyIjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCl7Y29uc3QgYz1maSgpLGQ9V3AoYyxuLG8saSxhLHIpO2lmKGQhPT1hYyl7Y29uc3QgdD1ZaSgpO0NkKHQsYyxlLGQscyxsKSxuZ0Rldk1vZGUmJnpkKGdpKCkuZGF0YSx0LCJhdHRyLiIrZSx3aSgpLTIsbixpLHIpfXJldHVybiB0fSwiybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMyI6ZnVuY3Rpb24gdChlLG4sbyxpLGEscixzLGwsYyxkKXtjb25zdCBwPWZpKCksbT1ZcChwLG4sbyxpLGEscixzLGwpO2lmKG0hPT1hYyl7Y29uc3QgdD1ZaSgpO0NkKHQscCxlLG0sYyxkKSxuZ0Rldk1vZGUmJnpkKGdpKCkuZGF0YSx0LCJhdHRyLiIrZSx3aSgpLTMsbixpLHIsbCl9cmV0dXJuIHR9LCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU0IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtKXtjb25zdCB1PWZpKCksZj1xcCh1LG4sbyxpLGEscixzLGwsYyxkKTtpZihmIT09YWMpe2NvbnN0IHQ9WWkoKTtDZCh0LHUsZSxmLHAsbSksbmdEZXZNb2RlJiZ6ZChnaSgpLmRhdGEsdCwiYXR0ci4iK2Usd2koKS00LG4saSxyLGwsZCl9cmV0dXJuIHR9LCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU1IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZil7Y29uc3QgZz1maSgpLGg9WnAoZyxuLG8saSxhLHIscyxsLGMsZCxwLG0pO2lmKGghPT1hYyl7Y29uc3QgdD1ZaSgpO0NkKHQsZyxlLGgsdSxmKSxuZ0Rldk1vZGUmJnpkKGdpKCkuZGF0YSx0LCJhdHRyLiIrZSx3aSgpLTUsbixpLHIsbCxkLG0pfXJldHVybiB0fSwiybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNiI6ZnVuY3Rpb24gdChlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoKXtjb25zdCBiPWZpKCkseT1YcChiLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYpO2lmKHkhPT1hYyl7Y29uc3QgdD1ZaSgpO0NkKHQsYixlLHksZyxoKSxuZ0Rldk1vZGUmJnpkKGdpKCkuZGF0YSx0LCJhdHRyLiIrZSx3aSgpLTYsbixpLHIsbCxkLG0sZil9cmV0dXJuIHR9LCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU3IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYix5KXtjb25zdCBfPWZpKCksQz1LcChfLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoKTtpZihDIT09YWMpe2NvbnN0IHQ9WWkoKTtDZCh0LF8sZSxDLGIseSksbmdEZXZNb2RlJiZ6ZChnaSgpLmRhdGEsdCwiYXR0ci4iK2Usd2koKS03LG4saSxyLGwsZCxtLGYsaCl9cmV0dXJuIHR9LCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU4IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYix5LF8sQyl7Y29uc3QgTT1maSgpLHY9SnAoTSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCxiLHkpO2lmKHYhPT1hYyl7Y29uc3QgdD1ZaSgpO0NkKHQsTSxlLHYsXyxDKSxuZ0Rldk1vZGUmJnpkKGdpKCkuZGF0YSx0LCJhdHRyLiIrZSx3aSgpLTgsbixpLHIsbCxkLG0sZixoLHkpfXJldHVybiB0fSwiybXJtWF0dHJpYnV0ZUludGVycG9sYXRlViI6ZnVuY3Rpb24gdChlLG4sbyxpKXtjb25zdCBhPWZpKCkscj1VcChhLG4pO2lmKHIhPT1hYyl7Y29uc3QgdD1ZaSgpO2lmKENkKHQsYSxlLHIsbyxpKSxuZ0Rldk1vZGUpe2NvbnN0IG89W25bMF1dO2ZvcihsZXQgdD0yO3Q8bi5sZW5ndGg7dCs9MilvLnB1c2goblt0XSk7emQoZ2koKS5kYXRhLHQsImF0dHIuIitlLHdpKCktby5sZW5ndGgrMSwuLi5vKX19cmV0dXJuIHR9LCLJtcm1ZGVmaW5lQ29tcG9uZW50Ijp0bywiybXJtWRlZmluZURpcmVjdGl2ZSI6bG8sIsm1ybVkZWZpbmVJbmplY3RhYmxlIjpNbiwiybXJtWRlZmluZUluamVjdG9yIjp2biwiybXJtWRlZmluZU5nTW9kdWxlIjphbywiybXJtWRlZmluZVBpcGUiOmNvLCLJtcm1ZGlyZWN0aXZlSW5qZWN0IjpTbSwiybXJtWdldEluaGVyaXRlZEZhY3RvcnkiOkFhLCLJtcm1aW5qZWN0Ijp2ciwiybXJtWluamVjdEF0dHJpYnV0ZSI6TmEsIsm1ybVpbnZhbGlkRmFjdG9yeSI6ZnVuY3Rpb24gcmIoKXtjb25zdCB0PW5nRGV2TW9kZT8iVGhpcyBjb25zdHJ1Y3RvciB3YXMgbm90IGNvbXBhdGlibGUgd2l0aCBEZXBlbmRlbmN5IEluamVjdGlvbi4iOiJpbnZhbGlkIjt0aHJvdyBuZXcgRXJyb3IodCl9LCLJtcm1aW52YWxpZEZhY3RvcnlEZXAiOnhyLCLJtcm1dGVtcGxhdGVSZWZFeHRyYWN0b3IiOmliLCLJtcm1TmdPbkNoYW5nZXNGZWF0dXJlIjpCbywiybXJtVByb3ZpZGVyc0ZlYXR1cmUiOnBnLCLJtcm1Q29weURlZmluaXRpb25GZWF0dXJlIjpmdW5jdGlvbiBzYih0KXtsZXQgZSxuPXZwKHQudHlwZSk7ZT14byh0KT9uLsm1Y21wOm4uybVkaXI7Y29uc3Qgbz10O2Zvcihjb25zdCB0IG9mIFNwKW9bdF09ZVt0XTtpZih4byhlKSlmb3IoY29uc3QgdCBvZiBEcClvW3RdPWVbdF19LCLJtcm1SW5oZXJpdERlZmluaXRpb25GZWF0dXJlIjp4cCwiybXJtW5leHRDb250ZXh0IjpZbSwiybXJtW5hbWVzcGFjZUhUTUwiOlppLCLJtcm1bmFtZXNwYWNlTWF0aE1MIjpmdW5jdGlvbiBsYigpe21pLmxGcmFtZS5jdXJyZW50TmFtZXNwYWNlPVhvfSwiybXJtW5hbWVzcGFjZVNWRyI6cWksIsm1ybVlbmFibGVCaW5kaW5ncyI6ZnVuY3Rpb24gY2IoKXttaS5iaW5kaW5nc0VuYWJsZWQ9ITB9LCLJtcm1ZGlzYWJsZUJpbmRpbmdzIjpmdW5jdGlvbiBkYigpe21pLmJpbmRpbmdzRW5hYmxlZD0hMX0sIsm1ybVlbGVtZW50U3RhcnQiOlJtLCLJtcm1ZWxlbWVudEVuZCI6QW0sIsm1ybVlbGVtZW50IjpUbSwiybXJtWVsZW1lbnRDb250YWluZXJTdGFydCI6Tm0sIsm1ybVlbGVtZW50Q29udGFpbmVyRW5kIjp6bSwiybXJtWVsZW1lbnRDb250YWluZXIiOkltLCLJtcm1cHVyZUZ1bmN0aW9uMCI6Q2gsIsm1ybVwdXJlRnVuY3Rpb24xIjpNaCwiybXJtXB1cmVGdW5jdGlvbjIiOnZoLCLJtcm1cHVyZUZ1bmN0aW9uMyI6eGgsIsm1ybVwdXJlRnVuY3Rpb240IjpPaCwiybXJtXB1cmVGdW5jdGlvbjUiOlBoLCLJtcm1cHVyZUZ1bmN0aW9uNiI6ZnVuY3Rpb24gcGIodCxlLG4sbyxpLGEscixzLGwpe2NvbnN0IGM9UGkoKSt0LGQ9ZmkoKSxwPVZwKGQsYyxuLG8saSxhKTtyZXR1cm4gTHAoZCxjKzQscixzKXx8cD9JcChkLGMrNixsP2UuY2FsbChsLG4sbyxpLGEscixzKTplKG4sbyxpLGEscixzKSk6SHAoZCxjKzYpfSwiybXJtXB1cmVGdW5jdGlvbjciOmZ1bmN0aW9uIG1iKHQsZSxuLG8saSxhLHIscyxsLGMpe2NvbnN0IGQ9UGkoKSt0LHA9ZmkoKTtsZXQgbT1WcChwLGQsbixvLGksYSk7cmV0dXJuIEJwKHAsZCs0LHIscyxsKXx8bT9JcChwLGQrNyxjP2UuY2FsbChjLG4sbyxpLGEscixzLGwpOmUobixvLGksYSxyLHMsbCkpOkhwKHAsZCs3KX0sIsm1ybVwdXJlRnVuY3Rpb244IjpmdW5jdGlvbiB1Yih0LGUsbixvLGksYSxyLHMsbCxjLGQpe2NvbnN0IHA9UGkoKSt0LG09ZmkoKSx1PVZwKG0scCxuLG8saSxhKTtyZXR1cm4gVnAobSxwKzQscixzLGwsYyl8fHU/SXAobSxwKzgsZD9lLmNhbGwoZCxuLG8saSxhLHIscyxsLGMpOmUobixvLGksYSxyLHMsbCxjKSk6SHAobSxwKzgpfSwiybXJtXB1cmVGdW5jdGlvblYiOmZ1bmN0aW9uIGZiKHQsZSxuLG8pe3JldHVybiBSaChmaSgpLFBpKCksdCxlLG4sbyl9LCLJtcm1Z2V0Q3VycmVudFZpZXciOkhtLCLJtcm1cmVzdG9yZVZpZXciOmhpLCLJtcm1bGlzdGVuZXIiOlZtLCLJtcm1cHJvamVjdGlvbiI6WG0sIsm1ybVzeW50aGV0aWNIb3N0UHJvcGVydHkiOk51LCLJtcm1c3ludGhldGljSG9zdExpc3RlbmVyIjpqbSwiybXJtXBpcGVCaW5kMSI6VGgsIsm1ybVwaXBlQmluZDIiOk5oLCLJtcm1cGlwZUJpbmQzIjp6aCwiybXJtXBpcGVCaW5kNCI6ZnVuY3Rpb24gZ2IodCxlLG4sbyxpLGEpe2NvbnN0IHI9dCtnbyxzPWZpKCksbD1haShzLHIpO3JldHVybiBIaChzLEloKHMscik/RWgocyxQaSgpLGUsbC50cmFuc2Zvcm0sbixvLGksYSxsKTpsLnRyYW5zZm9ybShuLG8saSxhKSl9LCLJtcm1cGlwZUJpbmRWIjpmdW5jdGlvbiBoYih0LGUsbil7Y29uc3Qgbz10K2dvLGk9ZmkoKSxhPWFpKGksbyk7cmV0dXJuIEhoKGksSWgoaSxvKT9SaChpLFBpKCksZSxhLnRyYW5zZm9ybSxuLGEpOmEudHJhbnNmb3JtLmFwcGx5KGEsbikpfSwiybXJtXByb2plY3Rpb25EZWYiOlptLCLJtcm1aG9zdFByb3BlcnR5IjpUdSwiybXJtXByb3BlcnR5IjpEbSwiybXJtXByb3BlcnR5SW50ZXJwb2xhdGUiOkttLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTEiOkptLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTIiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyl7Y29uc3QgbD1maSgpLGM9V3AobCxuLG8saSxhLHIpO2lmKGMhPT1hYyl7Y29uc3QgdD1naSgpLG89WWkoKTtsZCh0LG8sbCxlLGMsbFsxMV0scywhMSksbmdEZXZNb2RlJiZ6ZCh0LmRhdGEsbyxlLHdpKCktMixuLGkscil9cmV0dXJuIHR9LCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTMiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMpe2NvbnN0IGQ9ZmkoKSxwPVlwKGQsbixvLGksYSxyLHMsbCk7aWYocCE9PWFjKXtjb25zdCB0PWdpKCksbz1ZaSgpO2xkKHQsbyxkLGUscCxkWzExXSxjLCExKSxuZ0Rldk1vZGUmJnpkKHQuZGF0YSxvLGUsd2koKS0zLG4saSxyLGwpfXJldHVybiB0fSwiybXJtXByb3BlcnR5SW50ZXJwb2xhdGU0IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCl7Y29uc3QgbT1maSgpLHU9cXAobSxuLG8saSxhLHIscyxsLGMsZCk7aWYodSE9PWFjKXtjb25zdCB0PWdpKCksbz1ZaSgpO2xkKHQsbyxtLGUsdSxtWzExXSxwLCExKSxuZ0Rldk1vZGUmJnpkKHQuZGF0YSxvLGUsd2koKS00LG4saSxyLGwsZCl9cmV0dXJuIHR9LCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTUiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSl7Y29uc3QgZj1maSgpLGc9WnAoZixuLG8saSxhLHIscyxsLGMsZCxwLG0pO2lmKGchPT1hYyl7Y29uc3QgdD1naSgpLG89WWkoKTtsZCh0LG8sZixlLGcsZlsxMV0sdSwhMSksbmdEZXZNb2RlJiZ6ZCh0LmRhdGEsbyxlLHdpKCktNSxuLGkscixsLGQsbSl9cmV0dXJuIHR9LCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTYiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcpe2NvbnN0IGg9ZmkoKSxiPVhwKGgsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZik7aWYoYiE9PWFjKXtjb25zdCB0PWdpKCksbz1ZaSgpO2xkKHQsbyxoLGUsYixoWzExXSxnLCExKSxuZ0Rldk1vZGUmJnpkKHQuZGF0YSxvLGUsd2koKS02LG4saSxyLGwsZCxtLGYpfXJldHVybiB0fSwiybXJtXByb3BlcnR5SW50ZXJwb2xhdGU3IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYil7Y29uc3QgeT1maSgpLF89S3AoeSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCk7aWYoXyE9PWFjKXtjb25zdCB0PWdpKCksbz1ZaSgpO2xkKHQsbyx5LGUsXyx5WzExXSxiLCExKSxuZ0Rldk1vZGUmJnpkKHQuZGF0YSxvLGUsd2koKS03LG4saSxyLGwsZCxtLGYsaCl9cmV0dXJuIHR9LCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTgiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCxiLHksXyl7Y29uc3QgQz1maSgpLE09SnAoQyxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCxiLHkpO2lmKE0hPT1hYyl7Y29uc3QgdD1naSgpLG89WWkoKTtsZCh0LG8sQyxlLE0sQ1sxMV0sXywhMSksbmdEZXZNb2RlJiZ6ZCh0LmRhdGEsbyxlLHdpKCktOCxuLGkscixsLGQsbSxmLGgseSl9cmV0dXJuIHR9LCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZVYiOmZ1bmN0aW9uIHQoZSxuLG8pe2NvbnN0IGk9ZmkoKSxhPVVwKGksbik7aWYoYSE9PWFjKXtjb25zdCB0PWdpKCkscj1ZaSgpO2lmKGxkKHQscixpLGUsYSxpWzExXSxvLCExKSxuZ0Rldk1vZGUpe2NvbnN0IG89W25bMF1dO2ZvcihsZXQgdD0yO3Q8bi5sZW5ndGg7dCs9MilvLnB1c2goblt0XSk7emQodC5kYXRhLHIsZSx3aSgpLW8ubGVuZ3RoKzEsLi4ubyl9fXJldHVybiB0fSwiybXJtXBpcGUiOkFoLCLJtcm1cXVlcnlSZWZyZXNoIjpKaCwiybXJtXZpZXdRdWVyeSI6UWgsIsm1ybVsb2FkUXVlcnkiOnRiLCLJtcm1Y29udGVudFF1ZXJ5IjokaCwiybXJtXJlZmVyZW5jZSI6JHAsIsm1ybVjbGFzc01hcCI6ZnUsIsm1ybVjbGFzc01hcEludGVycG9sYXRlMSI6QXUsIsm1ybVjbGFzc01hcEludGVycG9sYXRlMiI6ZnVuY3Rpb24gYmIodCxlLG4sbyxpKXtidShhcixndSxXcChmaSgpLHQsZSxuLG8saSksITApfSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUzIjpmdW5jdGlvbiB5Yih0LGUsbixvLGksYSxyKXtidShhcixndSxZcChmaSgpLHQsZSxuLG8saSxhLHIpLCEwKX0sIsm1ybVjbGFzc01hcEludGVycG9sYXRlNCI6ZnVuY3Rpb24gX2IodCxlLG4sbyxpLGEscixzLGwpe2J1KGFyLGd1LHFwKGZpKCksdCxlLG4sbyxpLGEscixzLGwpLCEwKX0sIsm1ybVjbGFzc01hcEludGVycG9sYXRlNSI6ZnVuY3Rpb24gQ2IodCxlLG4sbyxpLGEscixzLGwsYyxkKXtidShhcixndSxacChmaSgpLHQsZSxuLG8saSxhLHIscyxsLGMsZCksITApfSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU2IjpmdW5jdGlvbiBNYih0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtKXtidShhcixndSxYcChmaSgpLHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0pLCEwKX0sIsm1ybVjbGFzc01hcEludGVycG9sYXRlNyI6ZnVuY3Rpb24gdmIodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYpe2J1KGFyLGd1LEtwKGZpKCksdCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYpLCEwKX0sIsm1ybVjbGFzc01hcEludGVycG9sYXRlOCI6ZnVuY3Rpb24geGIodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoKXtidShhcixndSxKcChmaSgpLHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCksITApfSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGVWIjpmdW5jdGlvbiBPYih0KXtidShhcixndSxVcChmaSgpLHQpLCEwKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovLCLJtcm1c3R5bGVNYXAiOm11LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTEiOmZ1bmN0aW9uIFBiKHQsZSxuKXttdShHcChmaSgpLHQsZSxuKSl9LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTIiOmZ1bmN0aW9uIHdiKHQsZSxuLG8saSl7bXUoV3AoZmkoKSx0LGUsbixvLGkpKX0sIsm1ybVzdHlsZU1hcEludGVycG9sYXRlMyI6ZnVuY3Rpb24ga2IodCxlLG4sbyxpLGEscil7bXUoWXAoZmkoKSx0LGUsbixvLGksYSxyKSl9LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTQiOmZ1bmN0aW9uIFNiKHQsZSxuLG8saSxhLHIscyxsKXttdShxcChmaSgpLHQsZSxuLG8saSxhLHIscyxsKSl9LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTUiOmZ1bmN0aW9uIERiKHQsZSxuLG8saSxhLHIscyxsLGMsZCl7bXUoWnAoZmkoKSx0LGUsbixvLGksYSxyLHMsbCxjLGQpKX0sIsm1ybVzdHlsZU1hcEludGVycG9sYXRlNiI6ZnVuY3Rpb24gRWIodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSl7bXUoWHAoZmkoKSx0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtKSl9LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTciOmZ1bmN0aW9uIFJiKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmKXttdShLcChmaSgpLHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmKSl9LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTgiOmZ1bmN0aW9uIEFiKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCl7bXUoSnAoZmkoKSx0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgpKX0sIsm1ybVzdHlsZU1hcEludGVycG9sYXRlViI6ZnVuY3Rpb24gVGIodCl7bXUoVXAoZmkoKSx0KSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLywiybXJtXN0eWxlUHJvcCI6ZHUsIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTEiOmZ1bmN0aW9uIHQoZSxuLG8saSxhKXtyZXR1cm4gaHUoZSxHcChmaSgpLG4sbyxpKSxhLCExKSx0fSwiybXJtXN0eWxlUHJvcEludGVycG9sYXRlMiI6ZnVuY3Rpb24gdChlLG4sbyxpLGEscixzKXtyZXR1cm4gaHUoZSxXcChmaSgpLG4sbyxpLGEscikscywhMSksdH0sIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTMiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMpe3JldHVybiBodShlLFlwKGZpKCksbixvLGksYSxyLHMsbCksYywhMSksdH0sIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTQiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwKXtyZXR1cm4gaHUoZSxxcChmaSgpLG4sbyxpLGEscixzLGwsYyxkKSxwLCExKSx0fSwiybXJtXN0eWxlUHJvcEludGVycG9sYXRlNSI6ZnVuY3Rpb24gdChlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1KXtyZXR1cm4gaHUoZSxacChmaSgpLG4sbyxpLGEscixzLGwsYyxkLHAsbSksdSwhMSksdH0sIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTYiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcpe3JldHVybiBodShlLFhwKGZpKCksbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZiksZywhMSksdH0sIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTciOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCxiKXtyZXR1cm4gaHUoZSxLcChmaSgpLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoKSxiLCExKSx0fSwiybXJtXN0eWxlUHJvcEludGVycG9sYXRlOCI6ZnVuY3Rpb24gdChlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoLGIseSxfKXtyZXR1cm4gaHUoZSxKcChmaSgpLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoLGIseSksXywhMSksdH0sIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZVYiOmZ1bmN0aW9uIHQoZSxuLG8pe3JldHVybiBodShlLFVwKGZpKCksbiksbywhMSksdH0sIsm1ybVjbGFzc1Byb3AiOnB1LCLJtcm1YWR2YW5jZSI6cmMsIsm1ybV0ZW1wbGF0ZSI6UXAsIsm1ybV0ZXh0IjprdSwiybXJtXRleHRJbnRlcnBvbGF0ZSI6U3UsIsm1ybV0ZXh0SW50ZXJwb2xhdGUxIjpEdSwiybXJtXRleHRJbnRlcnBvbGF0ZTIiOkV1LCLJtcm1dGV4dEludGVycG9sYXRlMyI6UnUsIsm1ybV0ZXh0SW50ZXJwb2xhdGU0IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjKXtjb25zdCBkPWZpKCkscD1xcChkLGUsbixvLGksYSxyLHMsbCxjKTtyZXR1cm4gcCE9PWFjJiZqZChkLEdpKCkscCksdH0sIsm1ybV0ZXh0SW50ZXJwb2xhdGU1IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCl7Y29uc3QgbT1maSgpLHU9WnAobSxlLG4sbyxpLGEscixzLGwsYyxkLHApO3JldHVybiB1IT09YWMmJmpkKG0sR2koKSx1KSx0fSwiybXJtXRleHRJbnRlcnBvbGF0ZTYiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSl7Y29uc3QgZj1maSgpLGc9WHAoZixlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1KTtyZXR1cm4gZyE9PWFjJiZqZChmLEdpKCksZyksdH0sIsm1ybV0ZXh0SW50ZXJwb2xhdGU3IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnKXtjb25zdCBoPWZpKCksYj1LcChoLGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnKTtyZXR1cm4gYiE9PWFjJiZqZChoLEdpKCksYiksdH0sIsm1ybV0ZXh0SW50ZXJwb2xhdGU4IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYil7Y29uc3QgeT1maSgpLF89SnAoeSxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoLGIpO3JldHVybiBfIT09YWMmJmpkKHksR2koKSxfKSx0fSwiybXJtXRleHRJbnRlcnBvbGF0ZVYiOmZ1bmN0aW9uIHQoZSl7Y29uc3Qgbj1maSgpLG89VXAobixlKTtyZXR1cm4gbyE9PWFjJiZqZChuLEdpKCksbyksdH0sIsm1ybVpMThuIjp0ZywiybXJtWkxOG5BdHRyaWJ1dGVzIjpmdW5jdGlvbiBOYih0LGUpe2NvbnN0IG49Z2koKTtuZ0Rldk1vZGUmJmhuKG4sInRWaWV3IHNob3VsZCBiZSBkZWZpbmVkIik7Y29uc3Qgbz1jaShuLmNvbnN0cyxlKTshKGZ1bmN0aW9uIGkodCxlLG4pe2NvbnN0IG89YmkoKS5pbmRleCxpPVtdO2lmKG5nRGV2TW9kZSYmYmMoaSxfZiksdC5maXJzdENyZWF0ZVBhc3MmJm51bGw9PT10LmRhdGFbZV0pe2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCs9Mil7Y29uc3QgZT1uW3RdLGE9blt0KzFdO2lmKCIiIT09YSl7aWYoT2YudGVzdChhKSl0aHJvdyBuZXcgRXJyb3IoYElDVSBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZCBpbiBhdHRyaWJ1dGVzLiBNZXNzYWdlOiAiJHthfSIuYCk7QWYoaSxhLG8sZSxUZihpKSxudWxsKX19dC5kYXRhW2VdPWl9fSkobix0K2dvLG8pfSwiybXJtWkxOG5FeHAiOmVnLCLJtcm1aTE4blN0YXJ0IjpRZiwiybXJtWkxOG5FbmQiOiRmLCLJtcm1aTE4bkFwcGx5IjpuZywiybXJtWkxOG5Qb3N0cHJvY2VzcyI6b2csIsm1ybVyZXNvbHZlV2luZG93IjpvbCwiybXJtXJlc29sdmVEb2N1bWVudCI6aWwsIsm1ybVyZXNvbHZlQm9keSI6ZnVuY3Rpb24gemIodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudC5ib2R5fSwiybXJtXNldENvbXBvbmVudFNjb3BlIjplbywiybXJtXNldE5nTW9kdWxlU2NvcGUiOnJvLCLJtcm1c2FuaXRpemVIdG1sIjoKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIEliKHQpe2NvbnN0IGU9enMoKTtyZXR1cm4gZT9XcihlLnNhbml0aXplKEFzLkhUTUwsdCl8fCIiKTplcyh0LCJIVE1MIik/V3IodHModCkpOkVzKEpvKCksJGUodCkpfSwiybXJtXNhbml0aXplU3R5bGUiOmZ1bmN0aW9uIEhiKHQpe2NvbnN0IGU9enMoKTtyZXR1cm4gZT9lLnNhbml0aXplKEFzLlNUWUxFLHQpfHwiIjplcyh0LCJTdHlsZSIpP3RzKHQpOiRlKHQpfSwiybXJtXNhbml0aXplUmVzb3VyY2VVcmwiOk5zLCLJtcm1c2FuaXRpemVTY3JpcHQiOmZ1bmN0aW9uIEZiKHQpe2NvbnN0IGU9enMoKTtpZihlKXJldHVybiBZcihlLnNhbml0aXplKEFzLlNDUklQVCx0KXx8IiIpO2lmKGVzKHQsIlNjcmlwdCIpKXJldHVybiBZcih0cyh0KSk7dGhyb3cgbmV3IEVycm9yKCJ1bnNhZmUgdmFsdWUgdXNlZCBpbiBhIHNjcmlwdCBjb250ZXh0Iil9LCLJtcm1c2FuaXRpemVVcmwiOlRzLCLJtcm1c2FuaXRpemVVcmxPclJlc291cmNlVXJsIjpmdW5jdGlvbiBMYih0LGUsbil7cmV0dXJuKGZ1bmN0aW9uIG8odCxlKXtyZXR1cm4ic3JjIj09PWUmJigiZW1iZWQiPT09dHx8ImZyYW1lIj09PXR8fCJpZnJhbWUiPT09dHx8Im1lZGlhIj09PXR8fCJzY3JpcHQiPT09dCl8fCJocmVmIj09PWUmJigiYmFzZSI9PT10fHwibGluayI9PT10KT9OczpUc30pKGUsbikodCl9LCLJtcm1dHJ1c3RDb25zdGFudEh0bWwiOmZ1bmN0aW9uIEJiKHQpe2lmKG5nRGV2TW9kZSYmKCFBcnJheS5pc0FycmF5KHQpfHwhQXJyYXkuaXNBcnJheSh0LnJhdyl8fDEhPT10Lmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGludGVycG9sYXRpb24gaW4gdHJ1c3RlZCBIVE1MIGNvbnN0YW50OiAke3Quam9pbigiPyIpfWApO3JldHVybiBVcih0WzBdKX0sIsm1ybV0cnVzdENvbnN0YW50UmVzb3VyY2VVcmwiOmZ1bmN0aW9uIFZiKHQpe2lmKG5nRGV2TW9kZSYmKCFBcnJheS5pc0FycmF5KHQpfHwhQXJyYXkuaXNBcnJheSh0LnJhdyl8fDEhPT10Lmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGludGVycG9sYXRpb24gaW4gdHJ1c3RlZCBVUkwgY29uc3RhbnQ6ICR7dC5qb2luKCI/Iil9YCk7cmV0dXJuKGZ1bmN0aW9uIGUodCl7dmFyIGU7cmV0dXJuKG51bGw9PT0oZT1qcigpKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jcmVhdGVTY3JpcHRVUkwodCkpfHx0fSkodFswXSl9LGZvcndhcmRSZWY6cWUscmVzb2x2ZUZvcndhcmRSZWY6WmV9O2xldCBqYj1udWxsOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgVWI9W107bGV0IEdiPSExO2Z1bmN0aW9uIFdiKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QuZXZlcnkoV2IpOiEhWmUodCl9ZnVuY3Rpb24gWWIodCxlLG4pe2lmKEtiLmdldCh0KSlyZXR1cm47bGV0IG87aWYoS2Iuc2V0KHQsITApLHQ9WmUodCksbil7aWYobz1mbyh0KSwhbyl0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdmFsdWUgJyR7dC5uYW1lfScgaW1wb3J0ZWQgYnkgdGhlIG1vZHVsZSAnJHtuLm5hbWV9Jy4gUGxlYXNlIGFkZCBhbiBATmdNb2R1bGUgYW5ub3RhdGlvbi5gKX1lbHNlIG89Zm8odCwhMCk7Y29uc3QgaT1bXSxhPXJsKG8uZGVjbGFyYXRpb25zKSxyPXJsKG8uaW1wb3J0cyk7dHIocikubWFwKHFiKS5mb3JFYWNoKChlPT57aChlLHQpLFliKGUsITEsdCl9KSk7Y29uc3Qgcz1ybChvLmV4cG9ydHMpO2EuZm9yRWFjaCgoZnVuY3Rpb24gbChlKXtwbyhlPVplKGUpKXx8bW8oZSl8fHVvKGUpfHxpLnB1c2goYFVuZXhwZWN0ZWQgdmFsdWUgJyR7dG4oZSl9JyBkZWNsYXJlZCBieSB0aGUgbW9kdWxlICcke3RuKHQpfScuIFBsZWFzZSBhZGQgYSBAUGlwZS9ARGlyZWN0aXZlL0BDb21wb25lbnQgYW5ub3RhdGlvbi5gKX0pKSxhLmZvckVhY2goKGZ1bmN0aW9uIGModCl7Y29uc3QgZT1tbyh0PVplKHQpKTshcG8odCkmJmUmJjA9PWUuc2VsZWN0b3JzLmxlbmd0aCYmaS5wdXNoKGBEaXJlY3RpdmUgJHt0bih0KX0gaGFzIG5vIHNlbGVjdG9yLCBwbGVhc2UgYWRkIGl0IWApfSkpO2NvbnN0IGQ9Wy4uLmEubWFwKFplKSwuLi50cihyLm1hcChKYikpLm1hcChaZSldO3MuZm9yRWFjaCgoZnVuY3Rpb24gcChlKXtjb25zdCBuPShwbyhlPVplKGUpKT8iY29tcG9uZW50IjptbyhlKSYmImRpcmVjdGl2ZSIpfHx1byhlKSYmInBpcGUiO24mJi0xPT09ZC5sYXN0SW5kZXhPZihlKSYmaS5wdXNoKGBDYW4ndCBleHBvcnQgJHtufSAke3RuKGUpfSBmcm9tICR7dG4odCl9IGFzIGl0IHdhcyBuZWl0aGVyIGRlY2xhcmVkIG5vciBpbXBvcnRlZCFgKX0pKSxhLmZvckVhY2goKG49PihmdW5jdGlvbiBvKGUsbil7ZT1aZShlKTtjb25zdCBvPVhiLmdldChlKTtpZihvJiZvIT09dCl7aWYoIW4pe2NvbnN0IG49W28sdF0ubWFwKHRuKS5zb3J0KCk7aS5wdXNoKGBUeXBlICR7dG4oZSl9IGlzIHBhcnQgb2YgdGhlIGRlY2xhcmF0aW9ucyBvZiAyIG1vZHVsZXM6ICR7blswXX0gYW5kICR7blsxXX0hIFBsZWFzZSBjb25zaWRlciBtb3ZpbmcgJHt0bihlKX0gdG8gYSBoaWdoZXIgbW9kdWxlIHRoYXQgaW1wb3J0cyAke25bMF19IGFuZCAke25bMV19LiBZb3UgY2FuIGFsc28gY3JlYXRlIGEgbmV3IE5nTW9kdWxlIHRoYXQgZXhwb3J0cyBhbmQgaW5jbHVkZXMgJHt0bihlKX0gdGhlbiBpbXBvcnQgdGhhdCBOZ01vZHVsZSBpbiAke25bMF19IGFuZCAke25bMV19LmApfX1lbHNlIFhiLnNldChlLHQpfSkobixlKSkpLGEuZm9yRWFjaCgoZnVuY3Rpb24gbSh0KXtpZihwbyh0PVplKHQpKSl7Y29uc3QgZT1aYih0LCJDb21wb25lbnQiKTtlJiZlLmVudHJ5Q29tcG9uZW50cyYmZXIoZS5lbnRyeUNvbXBvbmVudHMsZyl9fSkpO2NvbnN0IHU9WmIodCwiTmdNb2R1bGUiKTtpZih1JiYodS5pbXBvcnRzJiZ0cih1LmltcG9ydHMpLm1hcChxYikuZm9yRWFjaCgoZT0+e2goZSx0KSxZYihlLCExLHQpfSkpLHUuYm9vdHN0cmFwJiZlcih1LmJvb3RzdHJhcCwoZnVuY3Rpb24gZih0KXtwbyh0PVplKHQpKXx8aS5wdXNoKGAke3RuKHQpfSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBlbnRyeSBjb21wb25lbnQuYCl9KSksdS5ib290c3RyYXAmJmVyKHUuYm9vdHN0cmFwLGcpLHUuZW50cnlDb21wb25lbnRzJiZlcih1LmVudHJ5Q29tcG9uZW50cyxnKSksaS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGkuam9pbigiXG4iKSk7ZnVuY3Rpb24gZyh0KXt0PVplKHQpLFhiLmdldCh0KXx8aS5wdXNoKGBDb21wb25lbnQgJHt0bih0KX0gaXMgbm90IHBhcnQgb2YgYW55IE5nTW9kdWxlIG9yIHRoZSBtb2R1bGUgaGFzIG5vdCBiZWVuIGltcG9ydGVkIGludG8geW91ciBtb2R1bGUuYCl9ZnVuY3Rpb24gaCh0LGUpe2lmKHBvKHQ9WmUodCkpfHxtbyh0KSl0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZGlyZWN0aXZlICcke3QubmFtZX0nIGltcG9ydGVkIGJ5IHRoZSBtb2R1bGUgJyR7ZS5uYW1lfScuIFBsZWFzZSBhZGQgYW4gQE5nTW9kdWxlIGFubm90YXRpb24uYCk7aWYodW8odCkpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHBpcGUgJyR7dC5uYW1lfScgaW1wb3J0ZWQgYnkgdGhlIG1vZHVsZSAnJHtlLm5hbWV9Jy4gUGxlYXNlIGFkZCBhbiBATmdNb2R1bGUgYW5ub3RhdGlvbi5gKX19ZnVuY3Rpb24gcWIodCl7cmV0dXJuKHQ9WmUodCkpLm5nTW9kdWxlfHx0fWZ1bmN0aW9uIFpiKHQsZSl7bGV0IG49bnVsbDtyZXR1cm4gbyh0Ll9fYW5ub3RhdGlvbnNfXyksbyh0LmRlY29yYXRvcnMpLG47ZnVuY3Rpb24gbyh0KXt0JiZ0LmZvckVhY2goaSl9ZnVuY3Rpb24gaSh0KXtufHwoT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpLm5nTWV0YWRhdGFOYW1lPT1lP249dDp0LnR5cGUmJk9iamVjdC5nZXRQcm90b3R5cGVPZih0LnR5cGUpLm5nTWV0YWRhdGFOYW1lPT1lJiYobj10LmFyZ3NbMF0pKX19bGV0IFhiPW5ldyBXZWFrTWFwLEtiPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEpiKHQpe3JldHVyblsuLi50cihybChmbyh0PVplKHQpLCEwKS5leHBvcnRzKS5tYXAoKHQ9PmZvKHQpPyhZYih0LCExKSxKYih0KSk6dCkpKV19ZnVuY3Rpb24gUWIodCxlKXtjb25zdCBuPXRyKGUuZGVjbGFyYXRpb25zfHxXbiksbz10eSh0KTtuLmZvckVhY2goKGU9PntlLmhhc093blByb3BlcnR5KFluKT8kYihwbyhlKSxvKTplLmhhc093blByb3BlcnR5KHFuKXx8ZS5oYXNPd25Qcm9wZXJ0eShabil8fChlLm5nU2VsZWN0b3JTY29wZT10KX0pKX1mdW5jdGlvbiAkYih0LGUpe3QuZGlyZWN0aXZlRGVmcz0oKT0+QXJyYXkuZnJvbShlLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMpLm1hcCgodD0+dC5oYXNPd25Qcm9wZXJ0eShZbik/cG8odCk6bW8odCkpKS5maWx0ZXIoKHQ9PiEhdCkpLHQucGlwZURlZnM9KCk9PkFycmF5LmZyb20oZS5jb21waWxhdGlvbi5waXBlcykubWFwKCh0PT51byh0KSkpLHQuc2NoZW1hcz1lLnNjaGVtYXMsdC50Vmlldz1udWxsfWZ1bmN0aW9uIHR5KHQpe2lmKCFueSh0KSl0aHJvdyBuZXcgRXJyb3IoYCR7dC5uYW1lfSBkb2VzIG5vdCBoYXZlIGEgbW9kdWxlIGRlZiAoybVtb2QgcHJvcGVydHkpYCk7Y29uc3QgZT1mbyh0KTtpZihudWxsIT09ZS50cmFuc2l0aXZlQ29tcGlsZVNjb3BlcylyZXR1cm4gZS50cmFuc2l0aXZlQ29tcGlsZVNjb3Blcztjb25zdCBuPXtzY2hlbWFzOmUuc2NoZW1hc3x8bnVsbCxjb21waWxhdGlvbjp7ZGlyZWN0aXZlczpuZXcgU2V0LHBpcGVzOm5ldyBTZXR9LGV4cG9ydGVkOntkaXJlY3RpdmVzOm5ldyBTZXQscGlwZXM6bmV3IFNldH19O3JldHVybiBybChlLmltcG9ydHMpLmZvckVhY2goKHQ9Pntjb25zdCBlPXQ7aWYoIW55KGUpKXRocm93IG5ldyBFcnJvcihgSW1wb3J0aW5nICR7ZS5uYW1lfSB3aGljaCBkb2VzIG5vdCBoYXZlIGEgybVtb2QgcHJvcGVydHlgKTtjb25zdCBvPXR5KGUpO28uZXhwb3J0ZWQuZGlyZWN0aXZlcy5mb3JFYWNoKCh0PT5uLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMuYWRkKHQpKSksby5leHBvcnRlZC5waXBlcy5mb3JFYWNoKCh0PT5uLmNvbXBpbGF0aW9uLnBpcGVzLmFkZCh0KSkpfSkpLHJsKGUuZGVjbGFyYXRpb25zKS5mb3JFYWNoKCh0PT57dW8odCk/bi5jb21waWxhdGlvbi5waXBlcy5hZGQodCk6bi5jb21waWxhdGlvbi5kaXJlY3RpdmVzLmFkZCh0KX0pKSxybChlLmV4cG9ydHMpLmZvckVhY2goKHQ9Pntjb25zdCBlPXQ7aWYobnkoZSkpe2NvbnN0IHQ9dHkoZSk7dC5leHBvcnRlZC5kaXJlY3RpdmVzLmZvckVhY2goKHQ9PntuLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMuYWRkKHQpLG4uZXhwb3J0ZWQuZGlyZWN0aXZlcy5hZGQodCl9KSksdC5leHBvcnRlZC5waXBlcy5mb3JFYWNoKCh0PT57bi5jb21waWxhdGlvbi5waXBlcy5hZGQodCksbi5leHBvcnRlZC5waXBlcy5hZGQodCl9KSl9ZWxzZSB1byhlKT9uLmV4cG9ydGVkLnBpcGVzLmFkZChlKTpuLmV4cG9ydGVkLmRpcmVjdGl2ZXMuYWRkKGUpfSkpLGUudHJhbnNpdGl2ZUNvbXBpbGVTY29wZXM9bixufWZ1bmN0aW9uIGV5KHQpe3JldHVybihmdW5jdGlvbiBlKHQpe3JldHVybiB2b2lkIDAhPT10Lm5nTW9kdWxlfSkodCk/dC5uZ01vZHVsZTp0fWZ1bmN0aW9uIG55KHQpe3JldHVybiEhZm8odCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2xldCBveT0wO2Z1bmN0aW9uIGl5KHQsZSl7bGV0IG49bnVsbDtyeSh0LGV8fHt9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxxbix7Z2V0OigpPT57aWYobnVsbD09PW4pe2NvbnN0IG89YXkodCxlfHx7fSksaT1KYSh7dXNhZ2U6MCxraW5kOiJkaXJlY3RpdmUiLHR5cGU6dH0pO249aS5jb21waWxlRGlyZWN0aXZlKGFiLG8uc291cmNlTWFwVXJsLG8ubWV0YWRhdGEpfXJldHVybiBufSxjb25maWd1cmFibGU6ISFuZ0Rldk1vZGV9KX1mdW5jdGlvbiBheSh0LGUpe2NvbnN0IG49dCYmdC5uYW1lLG89YG5nOi8vLyR7bn0vybVkaXIuanNgLGk9SmEoe3VzYWdlOjAsa2luZDoiZGlyZWN0aXZlIix0eXBlOnR9KSxhPWx5KHQsZSk7cmV0dXJuIGEudHlwZVNvdXJjZVNwYW49aS5jcmVhdGVQYXJzZVNvdXJjZVNwYW4oIkRpcmVjdGl2ZSIsbixvKSxhLnVzZXNJbmhlcml0YW5jZSYmY3kodCkse21ldGFkYXRhOmEsc291cmNlTWFwVXJsOm99fWZ1bmN0aW9uIHJ5KHQsZSl7bGV0IG49bnVsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxKbix7Z2V0OigpPT57aWYobnVsbD09PW4pe2NvbnN0IG89YXkodCxlKSxpPUphKHt1c2FnZTowLGtpbmQ6ImRpcmVjdGl2ZSIsdHlwZTp0fSk7bj1pLmNvbXBpbGVGYWN0b3J5KGFiLGBuZzovLy8ke3QubmFtZX0vybVmYWMuanNgLHtuYW1lOm8ubWV0YWRhdGEubmFtZSx0eXBlOm8ubWV0YWRhdGEudHlwZSx0eXBlQXJndW1lbnRDb3VudDowLGRlcHM6TnIodCksdGFyZ2V0OmkuRmFjdG9yeVRhcmdldC5EaXJlY3RpdmV9KX1yZXR1cm4gbn0sY29uZmlndXJhYmxlOiEhbmdEZXZNb2RlfSl9ZnVuY3Rpb24gc3kodCl7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZih0LnByb3RvdHlwZSk9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIGx5KHQsZSl7Y29uc3Qgbj1UcigpLG89bi5vd25Qcm9wTWV0YWRhdGEodCk7cmV0dXJue25hbWU6dC5uYW1lLHR5cGU6dCxzZWxlY3Rvcjp2b2lkIDAhPT1lLnNlbGVjdG9yP2Uuc2VsZWN0b3I6bnVsbCxob3N0OmUuaG9zdHx8R24scHJvcE1ldGFkYXRhOm8saW5wdXRzOmUuaW5wdXRzfHxXbixvdXRwdXRzOmUub3V0cHV0c3x8V24scXVlcmllczpteSh0LG8sdXkpLGxpZmVjeWNsZTp7dXNlc09uQ2hhbmdlczpuLmhhc0xpZmVjeWNsZUhvb2sodCwibmdPbkNoYW5nZXMiKX0sdHlwZVNvdXJjZVNwYW46bnVsbCx1c2VzSW5oZXJpdGFuY2U6IXN5KHQpLGV4cG9ydEFzOihpPWUuZXhwb3J0QXMsdm9pZCAwPT09aT9udWxsOmh5KGkpKSxwcm92aWRlcnM6ZS5wcm92aWRlcnN8fG51bGwsdmlld1F1ZXJpZXM6bXkodCxvLGZ5KX07dmFyIGl9ZnVuY3Rpb24gY3kodCl7Y29uc3QgZT1PYmplY3QucHJvdG90eXBlO2xldCBuPU9iamVjdC5nZXRQcm90b3R5cGVPZih0LnByb3RvdHlwZSkuY29uc3RydWN0b3I7Zm9yKDtuJiZuIT09ZTspbW8obil8fHBvKG4pfHwheXkobil8fGl5KG4sbnVsbCksbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobil9ZnVuY3Rpb24gZHkodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2h5KHQpOlplKHQpfWZ1bmN0aW9uIHB5KHQsZSl7cmV0dXJue3Byb3BlcnR5TmFtZTp0LHByZWRpY2F0ZTpkeShlLnNlbGVjdG9yKSxkZXNjZW5kYW50czplLmRlc2NlbmRhbnRzLGZpcnN0OmUuZmlyc3QscmVhZDplLnJlYWQ/ZS5yZWFkOm51bGwsc3RhdGljOiEhZS5zdGF0aWMsZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6ISFlLmVtaXREaXN0aW5jdENoYW5nZXNPbmx5fX1mdW5jdGlvbiBteSh0LGUsbil7Y29uc3Qgbz1bXTtmb3IoY29uc3QgaSBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkoaSkpe2NvbnN0IGE9ZVtpXTthLmZvckVhY2goKGU9PntpZihuKGUpKXtpZighZS5zZWxlY3Rvcil0aHJvdyBuZXcgRXJyb3IoYENhbid0IGNvbnN0cnVjdCBhIHF1ZXJ5IGZvciB0aGUgcHJvcGVydHkgIiR7aX0iIG9mICIke3RuKHQpfSIgc2luY2UgdGhlIHF1ZXJ5IHNlbGVjdG9yIHdhc24ndCBkZWZpbmVkLmApO2lmKGEuc29tZShneSkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY29tYmluZSBASW5wdXQgZGVjb3JhdG9ycyB3aXRoIHF1ZXJ5IGRlY29yYXRvcnMiKTtvLnB1c2gocHkoaSxlKSl9fSkpfXJldHVybiBvfWZ1bmN0aW9uIHV5KHQpe2NvbnN0IGU9dC5uZ01ldGFkYXRhTmFtZTtyZXR1cm4iQ29udGVudENoaWxkIj09PWV8fCJDb250ZW50Q2hpbGRyZW4iPT09ZX1mdW5jdGlvbiBmeSh0KXtjb25zdCBlPXQubmdNZXRhZGF0YU5hbWU7cmV0dXJuIlZpZXdDaGlsZCI9PT1lfHwiVmlld0NoaWxkcmVuIj09PWV9ZnVuY3Rpb24gZ3kodCl7cmV0dXJuIklucHV0Ij09PXQubmdNZXRhZGF0YU5hbWV9ZnVuY3Rpb24gaHkodCl7cmV0dXJuIHQuc3BsaXQoIiwiKS5tYXAoKHQ9PnQudHJpbSgpKSl9Y29uc3QgYnk9WyJuZ09uQ2hhbmdlcyIsIm5nT25Jbml0IiwibmdPbkRlc3Ryb3kiLCJuZ0RvQ2hlY2siLCJuZ0FmdGVyVmlld0luaXQiLCJuZ0FmdGVyVmlld0NoZWNrZWQiLCJuZ0FmdGVyQ29udGVudEluaXQiLCJuZ0FmdGVyQ29udGVudENoZWNrZWQiXTtmdW5jdGlvbiB5eSh0KXtjb25zdCBlPVRyKCk7aWYoYnkuc29tZSgobj0+ZS5oYXNMaWZlY3ljbGVIb29rKHQsbikpKSlyZXR1cm4hMDtjb25zdCBuPWUucHJvcE1ldGFkYXRhKHQpO2Zvcihjb25zdCB0IGluIG4pe2NvbnN0IGU9blt0XTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdLG89bi5uZ01ldGFkYXRhTmFtZTtpZihneShuKXx8dXkobil8fGZ5KG4pfHwiT3V0cHV0Ij09PW98fCJIb3N0QmluZGluZyI9PT1vfHwiSG9zdExpc3RlbmVyIj09PW8pcmV0dXJuITB9fXJldHVybiExfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBfeSh0LGUpe3JldHVybnt0eXBlOnQsbmFtZTp0Lm5hbWUscGlwZU5hbWU6ZS5uYW1lLHB1cmU6dm9pZCAwPT09ZS5wdXJlfHxlLnB1cmV9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBDeT1GYSgiRGlyZWN0aXZlIiwoKHQ9e30pPT50KSx2b2lkIDAsdm9pZCAwLCgodCxlKT0+RHkodCxlKSkpLE15PUZhKCJDb21wb25lbnQiLCgodD17fSk9Pk9iamVjdC5hc3NpZ24oe2NoYW5nZURldGVjdGlvbjp6bi5EZWZhdWx0fSx0KSksQ3ksdm9pZCAwLCgodCxlKT0+a3kodCxlKSkpLHZ5PUZhKCJQaXBlIiwodD0+T2JqZWN0LmFzc2lnbih7cHVyZTohMH0sdCkpLHZvaWQgMCx2b2lkIDAsKCh0LGUpPT5FeSh0LGUpKSkseHk9VmEoIklucHV0IiwodD0+KHtiaW5kaW5nUHJvcGVydHlOYW1lOnR9KSkpLE95PVZhKCJPdXRwdXQiLCh0PT4oe2JpbmRpbmdQcm9wZXJ0eU5hbWU6dH0pKSksUHk9VmEoIkhvc3RCaW5kaW5nIiwodD0+KHtob3N0UHJvcGVydHlOYW1lOnR9KSkpLHd5PVZhKCJIb3N0TGlzdGVuZXIiLCgodCxlKT0+KHtldmVudE5hbWU6dCxhcmdzOmV9KSkpLGt5PWZ1bmN0aW9uIFN5KHQsZSl7KCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZVbigpO2xldCBuPW51bGw7IShmdW5jdGlvbiBvKHQsZSl7RnIoZSkmJihJci5zZXQodCxlKSxIci5hZGQodCkpfSkodCxlKSxyeSh0LGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFluLHtnZXQ6KCk9PntpZihudWxsPT09bil7Y29uc3Qgbz1KYSh7dXNhZ2U6MCxraW5kOiJjb21wb25lbnQiLHR5cGU6dH0pO2lmKEZyKGUpKXtjb25zdCBuPVtgQ29tcG9uZW50ICcke3QubmFtZX0nIGlzIG5vdCByZXNvbHZlZDpgXTt0aHJvdyBlLnRlbXBsYXRlVXJsJiZuLnB1c2goYCAtIHRlbXBsYXRlVXJsOiAke2UudGVtcGxhdGVVcmx9YCksZS5zdHlsZVVybHMmJmUuc3R5bGVVcmxzLmxlbmd0aCYmbi5wdXNoKGAgLSBzdHlsZVVybHM6ICR7SlNPTi5zdHJpbmdpZnkoZS5zdHlsZVVybHMpfWApLG4ucHVzaCgiRGlkIHlvdSBydW4gYW5kIHdhaXQgZm9yICdyZXNvbHZlQ29tcG9uZW50UmVzb3VyY2VzKCknPyIpLG5ldyBFcnJvcihuLmpvaW4oIlxuIikpfWNvbnN0IGk9KGZ1bmN0aW9uIG8oKXtyZXR1cm4gamJ9KSgpO2xldCBhPWUucHJlc2VydmVXaGl0ZXNwYWNlczt2b2lkIDA9PT1hJiYoYT1udWxsIT09aSYmdm9pZCAwIT09aS5wcmVzZXJ2ZVdoaXRlc3BhY2VzJiZpLnByZXNlcnZlV2hpdGVzcGFjZXMpO2xldCByPWUuZW5jYXBzdWxhdGlvbjt2b2lkIDA9PT1yJiYocj1udWxsIT09aSYmdm9pZCAwIT09aS5kZWZhdWx0RW5jYXBzdWxhdGlvbj9pLmRlZmF1bHRFbmNhcHN1bGF0aW9uOkhuLkVtdWxhdGVkKTtjb25zdCBzPWUudGVtcGxhdGVVcmx8fGBuZzovLy8ke3QubmFtZX0vdGVtcGxhdGUuaHRtbGAsbD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbHkodCxlKSkse3R5cGVTb3VyY2VTcGFuOm8uY3JlYXRlUGFyc2VTb3VyY2VTcGFuKCJDb21wb25lbnQiLHQubmFtZSxzKSx0ZW1wbGF0ZTplLnRlbXBsYXRlfHwiIixwcmVzZXJ2ZVdoaXRlc3BhY2VzOmEsc3R5bGVzOmUuc3R5bGVzfHxXbixhbmltYXRpb25zOmUuYW5pbWF0aW9ucyxkaXJlY3RpdmVzOltdLGNoYW5nZURldGVjdGlvbjplLmNoYW5nZURldGVjdGlvbixwaXBlczpuZXcgTWFwLGVuY2Fwc3VsYXRpb246cixpbnRlcnBvbGF0aW9uOmUuaW50ZXJwb2xhdGlvbix2aWV3UHJvdmlkZXJzOmUudmlld1Byb3ZpZGVyc3x8bnVsbH0pO295Kys7dHJ5e2wudXNlc0luaGVyaXRhbmNlJiZjeSh0KSxuPW8uY29tcGlsZUNvbXBvbmVudChhYixzLGwpfWZpbmFsbHl7b3ktLX1pZigwPT09b3kmJihmdW5jdGlvbiBpKCl7aWYoIUdiKXtHYj0hMDt0cnl7Zm9yKGxldCB0PVViLmxlbmd0aC0xO3Q+PTA7dC0tKXtjb25zdHttb2R1bGVUeXBlOmUsbmdNb2R1bGU6bn09VWJbdF07bi5kZWNsYXJhdGlvbnMmJm4uZGVjbGFyYXRpb25zLmV2ZXJ5KFdiKSYmKFViLnNwbGljZSh0LDEpLFFiKGUsbikpfX1maW5hbGx5e0diPSExfX19KSgpLChmdW5jdGlvbiBhKHQpe3JldHVybiB2b2lkIDAhPT10Lm5nU2VsZWN0b3JTY29wZX0pKHQpKXtjb25zdCBlPXR5KHQubmdTZWxlY3RvclNjb3BlKTskYihuLGUpfX1yZXR1cm4gbn0sY29uZmlndXJhYmxlOiEhbmdEZXZNb2RlfSl9LER5PWl5LEV5PWZ1bmN0aW9uIFJ5KHQsZSl7bGV0IG49bnVsbCxvPW51bGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsSm4se2dldDooKT0+e2lmKG51bGw9PT1vKXtjb25zdCBuPV95KHQsZSksaT1KYSh7dXNhZ2U6MCxraW5kOiJwaXBlIix0eXBlOm4udHlwZX0pO289aS5jb21waWxlRmFjdG9yeShhYixgbmc6Ly8vJHtuLm5hbWV9L8m1ZmFjLmpzYCx7bmFtZTpuLm5hbWUsdHlwZTpuLnR5cGUsdHlwZUFyZ3VtZW50Q291bnQ6MCxkZXBzOk5yKHQpLHRhcmdldDppLkZhY3RvcnlUYXJnZXQuUGlwZX0pfXJldHVybiBvfSxjb25maWd1cmFibGU6ISFuZ0Rldk1vZGV9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxabix7Z2V0OigpPT57aWYobnVsbD09PW4pe2NvbnN0IG89X3kodCxlKSxpPUphKHt1c2FnZTowLGtpbmQ6InBpcGUiLHR5cGU6by50eXBlfSk7bj1pLmNvbXBpbGVQaXBlKGFiLGBuZzovLy8ke28ubmFtZX0vybVwaXBlLmpzYCxvKX1yZXR1cm4gbn0sY29uZmlndXJhYmxlOiEhbmdEZXZNb2RlfSl9LEF5PUZhKCJOZ01vZHVsZSIsKHQ9PnQpLHZvaWQgMCx2b2lkIDAsKCh0LGUpPT5UeSh0LGUpKSksVHk9ZnVuY3Rpb24gTnkodCxlPXt9KXshKGZ1bmN0aW9uIG4odCxlLG89ITEpe25nRGV2TW9kZSYmaG4odCwiUmVxdWlyZWQgdmFsdWUgbW9kdWxlVHlwZSIpLG5nRGV2TW9kZSYmaG4oZSwiUmVxdWlyZWQgdmFsdWUgbmdNb2R1bGUiKTtjb25zdCBpPXRyKGUuZGVjbGFyYXRpb25zfHxXbik7bGV0IGE9bnVsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxYbix7Y29uZmlndXJhYmxlOiEwLGdldDooKT0+e2lmKG51bGw9PT1hKXtpZihuZ0Rldk1vZGUmJmUuaW1wb3J0cyYmZS5pbXBvcnRzLmluZGV4T2YodCk+LTEpdGhyb3cgbmV3IEVycm9yKGAnJHt0bih0KX0nIG1vZHVsZSBjYW4ndCBpbXBvcnQgaXRzZWxmYCk7Y29uc3Qgbj1KYSh7dXNhZ2U6MCxraW5kOiJOZ01vZHVsZSIsdHlwZTp0fSk7YT1uLmNvbXBpbGVOZ01vZHVsZShhYixgbmc6Ly8vJHt0Lm5hbWV9L8m1bW9kLmpzYCx7dHlwZTp0LGJvb3RzdHJhcDp0cihlLmJvb3RzdHJhcHx8V24pLm1hcChaZSksZGVjbGFyYXRpb25zOmkubWFwKFplKSxpbXBvcnRzOnRyKGUuaW1wb3J0c3x8V24pLm1hcChaZSkubWFwKGV5KSxleHBvcnRzOnRyKGUuZXhwb3J0c3x8V24pLm1hcChaZSkubWFwKGV5KSxzY2hlbWFzOmUuc2NoZW1hcz90cihlLnNjaGVtYXMpOm51bGwsaWQ6ZS5pZHx8bnVsbH0pLGEuc2NoZW1hc3x8KGEuc2NoZW1hcz1bXSl9cmV0dXJuIGF9fSk7bGV0IHI9bnVsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxKbix7Z2V0OigpPT57aWYobnVsbD09PXIpe2NvbnN0IGU9SmEoe3VzYWdlOjAsa2luZDoiTmdNb2R1bGUiLHR5cGU6dH0pO3I9ZS5jb21waWxlRmFjdG9yeShhYixgbmc6Ly8vJHt0Lm5hbWV9L8m1ZmFjLmpzYCx7bmFtZTp0Lm5hbWUsdHlwZTp0LGRlcHM6TnIodCksdGFyZ2V0OmUuRmFjdG9yeVRhcmdldC5OZ01vZHVsZSx0eXBlQXJndW1lbnRDb3VudDowfSl9cmV0dXJuIHJ9LGNvbmZpZ3VyYWJsZTohIW5nRGV2TW9kZX0pO2xldCBzPW51bGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsa24se2dldDooKT0+e2lmKG51bGw9PT1zKXtuZ0Rldk1vZGUmJlliKHQsbyk7Y29uc3Qgbj17bmFtZTp0Lm5hbWUsdHlwZTp0LHByb3ZpZGVyczplLnByb3ZpZGVyc3x8V24saW1wb3J0czpbKGUuaW1wb3J0c3x8V24pLm1hcChaZSksKGUuZXhwb3J0c3x8V24pLm1hcChaZSldfSxpPUphKHt1c2FnZTowLGtpbmQ6Ik5nTW9kdWxlIix0eXBlOnR9KTtzPWkuY29tcGlsZUluamVjdG9yKGFiLGBuZzovLy8ke3QubmFtZX0vybVpbmouanNgLG4pfXJldHVybiBzfSxjb25maWd1cmFibGU6ISFuZ0Rldk1vZGV9KX0pKHQsZSksKGZ1bmN0aW9uIG8odCxlKXtVYi5wdXNoKHttb2R1bGVUeXBlOnQsbmdNb2R1bGU6ZX0pfSkodCxlKX0senk9bmV3IEdhKCJBcHBsaWNhdGlvbiBJbml0aWFsaXplciIpO2NsYXNzIEl5e2NvbnN0cnVjdG9yKHQpe3RoaXMuYXBwSW5pdHM9dCx0aGlzLnJlc29sdmU9ZmcsdGhpcy5yZWplY3Q9ZmcsdGhpcy5pbml0aWFsaXplZD0hMSx0aGlzLmRvbmU9ITEsdGhpcy5kb25lUHJvbWlzZT1uZXcgUHJvbWlzZSgoKHQsZSk9Pnt0aGlzLnJlc29sdmU9dCx0aGlzLnJlamVjdD1lfSkpfXJ1bkluaXRpYWxpemVycygpe2lmKHRoaXMuaW5pdGlhbGl6ZWQpcmV0dXJuO2NvbnN0IHQ9W10sZT0oKT0+e3RoaXMuZG9uZT0hMCx0aGlzLnJlc29sdmUoKX07aWYodGhpcy5hcHBJbml0cylmb3IobGV0IGU9MDtlPHRoaXMuYXBwSW5pdHMubGVuZ3RoO2UrKyl7Y29uc3Qgbj10aGlzLmFwcEluaXRzW2VdKCk7aWYoRm0obikpdC5wdXNoKG4pO2Vsc2UgaWYoQm0obikpe2NvbnN0IGU9bmV3IFByb21pc2UoKCh0LGUpPT57bi5zdWJzY3JpYmUoe2NvbXBsZXRlOnQsZXJyb3I6ZX0pfSkpO3QucHVzaChlKX19UHJvbWlzZS5hbGwodCkudGhlbigoKCk9PntlKCl9KSkuY2F0Y2goKHQ9Pnt0aGlzLnJlamVjdCh0KX0pKSwwPT09dC5sZW5ndGgmJmUoKSx0aGlzLmluaXRpYWxpemVkPSEwfX1JeS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SXkpKHZyKHp5LDgpKX0sSXkuybVwcm92PU1uKHt0b2tlbjpJeSxmYWN0b3J5Okl5Lsm1ZmFjfSksSXkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbenldfSx7dHlwZTpTcn1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChJeSxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3p5XX0se3R5cGU6U3J9XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBIeT1uZXcgR2EoIkFwcElkIiksRnk9e3Byb3ZpZGU6SHksdXNlRmFjdG9yeTpmdW5jdGlvbiBMeSgpe3JldHVybmAke0J5KCl9JHtCeSgpfSR7QnkoKX1gfSxkZXBzOltdfTtmdW5jdGlvbiBCeSgpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKDk3K01hdGguZmxvb3IoMjUqTWF0aC5yYW5kb20oKSkpfWNvbnN0IFZ5PW5ldyBHYSgiUGxhdGZvcm0gSW5pdGlhbGl6ZXIiKSxqeT1uZXcgR2EoIlBsYXRmb3JtIElEIiksVXk9bmV3IEdhKCJhcHBCb290c3RyYXBMaXN0ZW5lciIpO25ldyBHYSgiQXBwbGljYXRpb24gUGFja2FnZXMgUm9vdCBVUkwiKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEd5e2xvZyh0KXtjb25zb2xlLmxvZyh0KX13YXJuKHQpe2NvbnNvbGUud2Fybih0KX19R3kuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEd5KX0sR3kuybVwcm92PU1uKHt0b2tlbjpHeSxmYWN0b3J5Okd5Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChHeSxbe3R5cGU6aW19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgV3k9bmV3IEdhKCJMb2NhbGVJZCIpLFl5PW5ldyBHYSgiRGVmYXVsdEN1cnJlbmN5Q29kZSIpO3ZhciBxeTtuZXcgR2EoIlRyYW5zbGF0aW9ucyIpLG5ldyBHYSgiVHJhbnNsYXRpb25zRm9ybWF0IiksKGZ1bmN0aW9uKHQpe3RbdC5FcnJvcj0wXT0iRXJyb3IiLHRbdC5XYXJuaW5nPTFdPSJXYXJuaW5nIix0W3QuSWdub3JlPTJdPSJJZ25vcmUifSkocXl8fChxeT17fSkpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgWnl7Y29uc3RydWN0b3IodCxlKXt0aGlzLm5nTW9kdWxlRmFjdG9yeT10LHRoaXMuY29tcG9uZW50RmFjdG9yaWVzPWV9fWNvbnN0IFh5PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgX2godCl9LEt5PVh5LEp5PWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLnJlc29sdmUoWHkodCkpfSxReT1mdW5jdGlvbih0KXtjb25zdCBlPVh5KHQpLG49cmwoZm8odCkuZGVjbGFyYXRpb25zKS5yZWR1Y2UoKCh0LGUpPT57Y29uc3Qgbj1wbyhlKTtyZXR1cm4gbiYmdC5wdXNoKG5ldyBmaChuKSksdH0pLFtdKTtyZXR1cm4gbmV3IFp5KGUsbil9LCR5PVF5LHRfPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLnJlc29sdmUoUXkodCkpfTtjbGFzcyBlX3tjb25zdHJ1Y3Rvcigpe3RoaXMuY29tcGlsZU1vZHVsZVN5bmM9S3ksdGhpcy5jb21waWxlTW9kdWxlQXN5bmM9SnksdGhpcy5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmM9JHksdGhpcy5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c0FzeW5jPXRffWNsZWFyQ2FjaGUoKXt9Y2xlYXJDYWNoZUZvcih0KXt9Z2V0TW9kdWxlSWQodCl7fX1lXy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZV8pfSxlXy7JtXByb3Y9TW4oe3Rva2VuOmVfLGZhY3Rvcnk6ZV8uybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGVfLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7Y29uc3Qgbl89bmV3IEdhKCJjb21waWxlck9wdGlvbnMiKSxvXz1Qcm9taXNlLnJlc29sdmUoMCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGlfKHQpeyJ1bmRlZmluZWQiPT10eXBlb2YgWm9uZT9vXy50aGVuKCgoKT0+e3QmJnQuYXBwbHkobnVsbCxudWxsKX0pKTpab25lLmN1cnJlbnQuc2NoZWR1bGVNaWNyb1Rhc2soInNjaGVkdWxlTWljcm90YXNrIix0KX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBhX3tjb25zdHJ1Y3Rvcih7ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6dD0hMSxzaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9uOmU9ITEsc2hvdWxkQ29hbGVzY2VSdW5DaGFuZ2VEZXRlY3Rpb246bj0hMX0pe2lmKHRoaXMuaGFzUGVuZGluZ01hY3JvdGFza3M9ITEsdGhpcy5oYXNQZW5kaW5nTWljcm90YXNrcz0hMSx0aGlzLmlzU3RhYmxlPSEwLHRoaXMub25VbnN0YWJsZT1uZXcgTGgoITEpLHRoaXMub25NaWNyb3Rhc2tFbXB0eT1uZXcgTGgoITEpLHRoaXMub25TdGFibGU9bmV3IExoKCExKSx0aGlzLm9uRXJyb3I9bmV3IExoKCExKSwidW5kZWZpbmVkIj09dHlwZW9mIFpvbmUpdGhyb3cgbmV3IEVycm9yKCJJbiB0aGlzIGNvbmZpZ3VyYXRpb24gQW5ndWxhciByZXF1aXJlcyBab25lLmpzIik7Wm9uZS5hc3NlcnRab25lUGF0Y2hlZCgpO2NvbnN0IG89dGhpcztvLl9uZXN0aW5nPTAsby5fb3V0ZXI9by5faW5uZXI9Wm9uZS5jdXJyZW50LFpvbmUuVGFza1RyYWNraW5nWm9uZVNwZWMmJihvLl9pbm5lcj1vLl9pbm5lci5mb3JrKG5ldyBab25lLlRhc2tUcmFja2luZ1pvbmVTcGVjKSksdCYmWm9uZS5sb25nU3RhY2tUcmFjZVpvbmVTcGVjJiYoby5faW5uZXI9by5faW5uZXIuZm9yayhab25lLmxvbmdTdGFja1RyYWNlWm9uZVNwZWMpKSxvLnNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb249IW4mJmUsby5zaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbj1uLG8ubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkPS0xLG8ubmF0aXZlUmVxdWVzdEFuaW1hdGlvbkZyYW1lPShmdW5jdGlvbiBpKCl7bGV0IHQ9am4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lLGU9am4uY2FuY2VsQW5pbWF0aW9uRnJhbWU7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBab25lJiZ0JiZlKXtjb25zdCBuPXRbWm9uZS5fX3N5bWJvbF9fKCJPcmlnaW5hbERlbGVnYXRlIildO24mJih0PW4pO2NvbnN0IG89ZVtab25lLl9fc3ltYm9sX18oIk9yaWdpbmFsRGVsZWdhdGUiKV07byYmKGU9byl9cmV0dXJue25hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZTp0LG5hdGl2ZUNhbmNlbEFuaW1hdGlvbkZyYW1lOmV9fSkoKS5uYXRpdmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWUsKGZ1bmN0aW9uIGEodCl7Y29uc3QgZT0oKT0+eyEoZnVuY3Rpb24gZSh0KXt0LmlzQ2hlY2tTdGFibGVSdW5uaW5nfHwtMSE9PXQubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkfHwodC5sYXN0UmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQ9dC5uYXRpdmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWUuY2FsbChqbiwoKCk9Pnt0LmZha2VUb3BFdmVudFRhc2t8fCh0LmZha2VUb3BFdmVudFRhc2s9Wm9uZS5yb290LnNjaGVkdWxlRXZlbnRUYXNrKCJmYWtlVG9wRXZlbnRUYXNrIiwoKCk9Pnt0Lmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD0tMSxsXyh0KSx0LmlzQ2hlY2tTdGFibGVSdW5uaW5nPSEwLHNfKHQpLHQuaXNDaGVja1N0YWJsZVJ1bm5pbmc9ITF9KSx2b2lkIDAsKCgpPT57fSksKCgpPT57fSkpKSx0LmZha2VUb3BFdmVudFRhc2suaW52b2tlKCl9KSksbF8odCkpfSkodCl9O3QuX2lubmVyPXQuX2lubmVyLmZvcmsoe25hbWU6ImFuZ3VsYXIiLHByb3BlcnRpZXM6e2lzQW5ndWxhclpvbmU6ITB9LG9uSW52b2tlVGFzazoobixvLGksYSxyLHMpPT57dHJ5e3JldHVybiBjXyh0KSxuLmludm9rZVRhc2soaSxhLHIscyl9ZmluYWxseXsodC5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9uJiYiZXZlbnRUYXNrIj09PWEudHlwZXx8dC5zaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbikmJmUoKSxkXyh0KX19LG9uSW52b2tlOihuLG8saSxhLHIscyxsKT0+e3RyeXtyZXR1cm4gY18odCksbi5pbnZva2UoaSxhLHIscyxsKX1maW5hbGx5e3Quc2hvdWxkQ29hbGVzY2VSdW5DaGFuZ2VEZXRlY3Rpb24mJmUoKSxkXyh0KX19LG9uSGFzVGFzazooZSxuLG8saSk9PntlLmhhc1Rhc2sobyxpKSxuPT09byYmKCJtaWNyb1Rhc2siPT1pLmNoYW5nZT8odC5faGFzUGVuZGluZ01pY3JvdGFza3M9aS5taWNyb1Rhc2ssbF8odCksc18odCkpOiJtYWNyb1Rhc2siPT1pLmNoYW5nZSYmKHQuaGFzUGVuZGluZ01hY3JvdGFza3M9aS5tYWNyb1Rhc2spKX0sb25IYW5kbGVFcnJvcjooZSxuLG8saSk9PihlLmhhbmRsZUVycm9yKG8saSksdC5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnQub25FcnJvci5lbWl0KGkpKSksITEpfSl9KShvKX1zdGF0aWMgaXNJbkFuZ3VsYXJab25lKCl7cmV0dXJuITA9PT1ab25lLmN1cnJlbnQuZ2V0KCJpc0FuZ3VsYXJab25lIil9c3RhdGljIGFzc2VydEluQW5ndWxhclpvbmUoKXtpZighYV8uaXNJbkFuZ3VsYXJab25lKCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB0byBiZSBpbiBBbmd1bGFyIFpvbmUsIGJ1dCBpdCBpcyBub3QhIil9c3RhdGljIGFzc2VydE5vdEluQW5ndWxhclpvbmUoKXtpZihhXy5pc0luQW5ndWxhclpvbmUoKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHRvIG5vdCBiZSBpbiBBbmd1bGFyIFpvbmUsIGJ1dCBpdCBpcyEiKX1ydW4odCxlLG4pe3JldHVybiB0aGlzLl9pbm5lci5ydW4odCxlLG4pfXJ1blRhc2sodCxlLG4sbyl7Y29uc3QgaT10aGlzLl9pbm5lcixhPWkuc2NoZWR1bGVFdmVudFRhc2soIk5nWm9uZUV2ZW50OiAiK28sdCxyXyxmZyxmZyk7dHJ5e3JldHVybiBpLnJ1blRhc2soYSxlLG4pfWZpbmFsbHl7aS5jYW5jZWxUYXNrKGEpfX1ydW5HdWFyZGVkKHQsZSxuKXtyZXR1cm4gdGhpcy5faW5uZXIucnVuR3VhcmRlZCh0LGUsbil9cnVuT3V0c2lkZUFuZ3VsYXIodCl7cmV0dXJuIHRoaXMuX291dGVyLnJ1bih0KX19Y29uc3Qgcl89e307ZnVuY3Rpb24gc18odCl7aWYoMD09dC5fbmVzdGluZyYmIXQuaGFzUGVuZGluZ01pY3JvdGFza3MmJiF0LmlzU3RhYmxlKXRyeXt0Ll9uZXN0aW5nKyssdC5vbk1pY3JvdGFza0VtcHR5LmVtaXQobnVsbCl9ZmluYWxseXtpZih0Ll9uZXN0aW5nLS0sIXQuaGFzUGVuZGluZ01pY3JvdGFza3MpdHJ5e3QucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT50Lm9uU3RhYmxlLmVtaXQobnVsbCkpKX1maW5hbGx5e3QuaXNTdGFibGU9ITB9fX1mdW5jdGlvbiBsXyh0KXt0Lmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSEhKHQuX2hhc1BlbmRpbmdNaWNyb3Rhc2tzfHwodC5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9ufHx0LnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uKSYmLTEhPT10Lmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCl9ZnVuY3Rpb24gY18odCl7dC5fbmVzdGluZysrLHQuaXNTdGFibGUmJih0LmlzU3RhYmxlPSExLHQub25VbnN0YWJsZS5lbWl0KG51bGwpKX1mdW5jdGlvbiBkXyh0KXt0Ll9uZXN0aW5nLS0sc18odCl9Y2xhc3MgcF97Y29uc3RydWN0b3IoKXt0aGlzLmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSExLHRoaXMuaGFzUGVuZGluZ01hY3JvdGFza3M9ITEsdGhpcy5pc1N0YWJsZT0hMCx0aGlzLm9uVW5zdGFibGU9bmV3IExoLHRoaXMub25NaWNyb3Rhc2tFbXB0eT1uZXcgTGgsdGhpcy5vblN0YWJsZT1uZXcgTGgsdGhpcy5vbkVycm9yPW5ldyBMaH1ydW4odCxlLG4pe3JldHVybiB0LmFwcGx5KGUsbil9cnVuR3VhcmRlZCh0LGUsbil7cmV0dXJuIHQuYXBwbHkoZSxuKX1ydW5PdXRzaWRlQW5ndWxhcih0KXtyZXR1cm4gdCgpfXJ1blRhc2sodCxlLG4sbyl7cmV0dXJuIHQuYXBwbHkoZSxuKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIG1fe2NvbnN0cnVjdG9yKHQpe3RoaXMuX25nWm9uZT10LHRoaXMuX3BlbmRpbmdDb3VudD0wLHRoaXMuX2lzWm9uZVN0YWJsZT0hMCx0aGlzLl9kaWRXb3JrPSExLHRoaXMuX2NhbGxiYWNrcz1bXSx0aGlzLnRhc2tUcmFja2luZ1pvbmU9bnVsbCx0aGlzLl93YXRjaEFuZ3VsYXJFdmVudHMoKSx0LnJ1bigoKCk9Pnt0aGlzLnRhc2tUcmFja2luZ1pvbmU9InVuZGVmaW5lZCI9PXR5cGVvZiBab25lP251bGw6Wm9uZS5jdXJyZW50LmdldCgiVGFza1RyYWNraW5nWm9uZSIpfSkpfV93YXRjaEFuZ3VsYXJFdmVudHMoKXt0aGlzLl9uZ1pvbmUub25VbnN0YWJsZS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl9kaWRXb3JrPSEwLHRoaXMuX2lzWm9uZVN0YWJsZT0hMX19KSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57dGhpcy5fbmdab25lLm9uU3RhYmxlLnN1YnNjcmliZSh7bmV4dDooKT0+e2FfLmFzc2VydE5vdEluQW5ndWxhclpvbmUoKSxpXygoKCk9Pnt0aGlzLl9pc1pvbmVTdGFibGU9ITAsdGhpcy5fcnVuQ2FsbGJhY2tzSWZSZWFkeSgpfSkpfX0pfSkpfWluY3JlYXNlUGVuZGluZ1JlcXVlc3RDb3VudCgpe3JldHVybiB0aGlzLl9wZW5kaW5nQ291bnQrPTEsdGhpcy5fZGlkV29yaz0hMCx0aGlzLl9wZW5kaW5nQ291bnR9ZGVjcmVhc2VQZW5kaW5nUmVxdWVzdENvdW50KCl7aWYodGhpcy5fcGVuZGluZ0NvdW50LT0xLHRoaXMuX3BlbmRpbmdDb3VudDwwKXRocm93IG5ldyBFcnJvcigicGVuZGluZyBhc3luYyByZXF1ZXN0cyBiZWxvdyB6ZXJvIik7cmV0dXJuIHRoaXMuX3J1bkNhbGxiYWNrc0lmUmVhZHkoKSx0aGlzLl9wZW5kaW5nQ291bnR9aXNTdGFibGUoKXtyZXR1cm4gdGhpcy5faXNab25lU3RhYmxlJiYwPT09dGhpcy5fcGVuZGluZ0NvdW50JiYhdGhpcy5fbmdab25lLmhhc1BlbmRpbmdNYWNyb3Rhc2tzfV9ydW5DYWxsYmFja3NJZlJlYWR5KCl7aWYodGhpcy5pc1N0YWJsZSgpKWlfKCgoKT0+e2Zvcig7MCE9PXRoaXMuX2NhbGxiYWNrcy5sZW5ndGg7KXtsZXQgdD10aGlzLl9jYWxsYmFja3MucG9wKCk7Y2xlYXJUaW1lb3V0KHQudGltZW91dElkKSx0LmRvbmVDYih0aGlzLl9kaWRXb3JrKX10aGlzLl9kaWRXb3JrPSExfSkpO2Vsc2V7bGV0IHQ9dGhpcy5nZXRQZW5kaW5nVGFza3MoKTt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzLmZpbHRlcigoZT0+IWUudXBkYXRlQ2J8fCFlLnVwZGF0ZUNiKHQpfHwoY2xlYXJUaW1lb3V0KGUudGltZW91dElkKSwhMSkpKSx0aGlzLl9kaWRXb3JrPSEwfX1nZXRQZW5kaW5nVGFza3MoKXtyZXR1cm4gdGhpcy50YXNrVHJhY2tpbmdab25lP3RoaXMudGFza1RyYWNraW5nWm9uZS5tYWNyb1Rhc2tzLm1hcCgodD0+KHtzb3VyY2U6dC5zb3VyY2UsY3JlYXRpb25Mb2NhdGlvbjp0LmNyZWF0aW9uTG9jYXRpb24sZGF0YTp0LmRhdGF9KSkpOltdfWFkZENhbGxiYWNrKHQsZSxuKXtsZXQgbz0tMTtlJiZlPjAmJihvPXNldFRpbWVvdXQoKCgpPT57dGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrcy5maWx0ZXIoKHQ9PnQudGltZW91dElkIT09bykpLHQodGhpcy5fZGlkV29yayx0aGlzLmdldFBlbmRpbmdUYXNrcygpKX0pLGUpKSx0aGlzLl9jYWxsYmFja3MucHVzaCh7ZG9uZUNiOnQsdGltZW91dElkOm8sdXBkYXRlQ2I6bn0pfXdoZW5TdGFibGUodCxlLG4pe2lmKG4mJiF0aGlzLnRhc2tUcmFja2luZ1pvbmUpdGhyb3cgbmV3IEVycm9yKCdUYXNrIHRyYWNraW5nIHpvbmUgaXMgcmVxdWlyZWQgd2hlbiBwYXNzaW5nIGFuIHVwZGF0ZSBjYWxsYmFjayB0byB3aGVuU3RhYmxlKCkuIElzICJ6b25lLmpzL3BsdWdpbnMvdGFzay10cmFja2luZyIgbG9hZGVkPycpO3RoaXMuYWRkQ2FsbGJhY2sodCxlLG4pLHRoaXMuX3J1bkNhbGxiYWNrc0lmUmVhZHkoKX1nZXRQZW5kaW5nUmVxdWVzdENvdW50KCl7cmV0dXJuIHRoaXMuX3BlbmRpbmdDb3VudH1maW5kUHJvdmlkZXJzKHQsZSxuKXtyZXR1cm5bXX19bV8uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG1fKSh2cihhXykpfSxtXy7JtXByb3Y9TW4oe3Rva2VuOm1fLGZhY3Rvcnk6bV8uybVmYWN9KSxtXy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmFffV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChtXyxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6YV99XX0pLG51bGwpO2NsYXNzIHVfe2NvbnN0cnVjdG9yKCl7dGhpcy5fYXBwbGljYXRpb25zPW5ldyBNYXAsZ18uYWRkVG9XaW5kb3codGhpcyl9cmVnaXN0ZXJBcHBsaWNhdGlvbih0LGUpe3RoaXMuX2FwcGxpY2F0aW9ucy5zZXQodCxlKX11bnJlZ2lzdGVyQXBwbGljYXRpb24odCl7dGhpcy5fYXBwbGljYXRpb25zLmRlbGV0ZSh0KX11bnJlZ2lzdGVyQWxsQXBwbGljYXRpb25zKCl7dGhpcy5fYXBwbGljYXRpb25zLmNsZWFyKCl9Z2V0VGVzdGFiaWxpdHkodCl7cmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9ucy5nZXQodCl8fG51bGx9Z2V0QWxsVGVzdGFiaWxpdGllcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2FwcGxpY2F0aW9ucy52YWx1ZXMoKSl9Z2V0QWxsUm9vdEVsZW1lbnRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fYXBwbGljYXRpb25zLmtleXMoKSl9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKHQsZT0hMCl7cmV0dXJuIGdfLmZpbmRUZXN0YWJpbGl0eUluVHJlZSh0aGlzLHQsZSl9fXVfLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx1Xyl9LHVfLsm1cHJvdj1Nbih7dG9rZW46dV8sZmFjdG9yeTp1Xy7JtWZhY30pLHVfLmN0b3JQYXJhbWV0ZXJzPSgpPT5bXSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHVfLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7bGV0IGZfLGdfPW5ldyBjbGFzc3thZGRUb1dpbmRvdyh0KXt9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKHQsZSxuKXtyZXR1cm4gbnVsbH19LGhfPSEwLGJfPSExOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB5Xygpe3JldHVybiBiXz0hMCxoX31jb25zdCBfXz1uZXcgR2EoIkFsbG93TXVsdGlwbGVUb2tlbiIpO2Z1bmN0aW9uIENfKHQsZSxuPVtdKXtjb25zdCBvPWBQbGF0Zm9ybTogJHtlfWAsaT1uZXcgR2Eobyk7cmV0dXJuKGU9W10pPT57bGV0IGE9TV8oKTtpZighYXx8YS5pbmplY3Rvci5nZXQoX18sITEpKWlmKHQpdChuLmNvbmNhdChlKS5jb25jYXQoe3Byb3ZpZGU6aSx1c2VWYWx1ZTohMH0pKTtlbHNle2NvbnN0IHQ9bi5jb25jYXQoZSkuY29uY2F0KHtwcm92aWRlOmksdXNlVmFsdWU6ITB9LHtwcm92aWRlOllkLHVzZVZhbHVlOiJwbGF0Zm9ybSJ9KTshKGZ1bmN0aW9uIHIodCl7aWYoZl8mJiFmXy5kZXN0cm95ZWQmJiFmXy5pbmplY3Rvci5nZXQoX18sITEpKXRocm93IG5ldyBFcnJvcigiVGhlcmUgY2FuIGJlIG9ubHkgb25lIHBsYXRmb3JtLiBEZXN0cm95IHRoZSBwcmV2aW91cyBvbmUgdG8gY3JlYXRlIGEgbmV3IG9uZS4iKTsoZnVuY3Rpb24gZSgpe25nRGV2TW9kZSYmKGZ1bmN0aW9uIHQoKXtfcHx8KF9wPSEwLENwKCLJtXNldFByb2ZpbGVyIixZbyksQ3AoImdldERpcmVjdGl2ZU1ldGFkYXRhIix1cCksQ3AoImdldENvbXBvbmVudCIsc3ApLENwKCJnZXRDb250ZXh0IixscCksQ3AoImdldExpc3RlbmVycyIsZ3ApLENwKCJnZXRPd25pbmdDb21wb25lbnQiLGNwKSxDcCgiZ2V0SG9zdEVsZW1lbnQiLGZwKSxDcCgiZ2V0SW5qZWN0b3IiLHBwKSxDcCgiZ2V0Um9vdENvbXBvbmVudHMiLGRwKSxDcCgiZ2V0RGlyZWN0aXZlcyIsbXApLENwKCJhcHBseUNoYW5nZXMiLHlwKSl9KSgpfSkoKSxmXz10LmdldCh2Xyk7Y29uc3Qgbj10LmdldChWeSxudWxsKTtuJiZuLmZvckVhY2goKHQ9PnQoKSkpfSkocnAuY3JlYXRlKHtwcm92aWRlcnM6dCxuYW1lOm99KSl9cmV0dXJuKGZ1bmN0aW9uIHModCl7Y29uc3QgZT1NXygpO2lmKCFlKXRocm93IG5ldyBFcnJvcigiTm8gcGxhdGZvcm0gZXhpc3RzISIpO2lmKCFlLmluamVjdG9yLmdldCh0LG51bGwpKXRocm93IG5ldyBFcnJvcigiQSBwbGF0Zm9ybSB3aXRoIGEgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gY3JlYXRlZC4gUGxlYXNlIGRlc3Ryb3kgaXQgZmlyc3QuIik7cmV0dXJuIGV9KShpKX19ZnVuY3Rpb24gTV8oKXtyZXR1cm4gZl8mJiFmXy5kZXN0cm95ZWQ/Zl86bnVsbH1jbGFzcyB2X3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9pbmplY3Rvcj10LHRoaXMuX21vZHVsZXM9W10sdGhpcy5fZGVzdHJveUxpc3RlbmVycz1bXSx0aGlzLl9kZXN0cm95ZWQ9ITF9Ym9vdHN0cmFwTW9kdWxlRmFjdG9yeSh0LGUpe2NvbnN0IG49KGZ1bmN0aW9uIG8odCxlKXtsZXQgbjtyZXR1cm4gbj0ibm9vcCI9PT10P25ldyBwXzooInpvbmUuanMiPT09dD92b2lkIDA6dCl8fG5ldyBhXyh7ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6eV8oKSxzaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9uOiEhKG51bGw9PWU/dm9pZCAwOmUubmdab25lRXZlbnRDb2FsZXNjaW5nKSxzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbjohIShudWxsPT1lP3ZvaWQgMDplLm5nWm9uZVJ1bkNvYWxlc2NpbmcpfSksbn0pKGU/ZS5uZ1pvbmU6dm9pZCAwLHtuZ1pvbmVFdmVudENvYWxlc2Npbmc6ZSYmZS5uZ1pvbmVFdmVudENvYWxlc2Npbmd8fCExLG5nWm9uZVJ1bkNvYWxlc2Npbmc6ZSYmZS5uZ1pvbmVSdW5Db2FsZXNjaW5nfHwhMX0pLGk9W3twcm92aWRlOmFfLHVzZVZhbHVlOm59XTtyZXR1cm4gbi5ydW4oKCgpPT57Y29uc3QgZT1ycC5jcmVhdGUoe3Byb3ZpZGVyczppLHBhcmVudDp0aGlzLmluamVjdG9yLG5hbWU6dC5tb2R1bGVUeXBlLm5hbWV9KSxvPXQuY3JlYXRlKGUpLGE9by5pbmplY3Rvci5nZXQoWnMsbnVsbCk7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJObyBFcnJvckhhbmRsZXIuIElzIHBsYXRmb3JtIG1vZHVsZSAoQnJvd3Nlck1vZHVsZSkgaW5jbHVkZWQ/Iik7cmV0dXJuIG4ucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57Y29uc3QgdD1uLm9uRXJyb3Iuc3Vic2NyaWJlKHtuZXh0OnQ9PnthLmhhbmRsZUVycm9yKHQpfX0pO28ub25EZXN0cm95KCgoKT0+e1BfKHRoaXMuX21vZHVsZXMsbyksdC51bnN1YnNjcmliZSgpfSkpfSkpLChmdW5jdGlvbiByKHQsZSxuKXt0cnl7Y29uc3Qgbz1uKCk7cmV0dXJuIEZtKG8pP28uY2F0Y2goKG49Pnt0aHJvdyBlLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+dC5oYW5kbGVFcnJvcihuKSkpLG59KSk6b31jYXRjaChuKXt0aHJvdyBlLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+dC5oYW5kbGVFcnJvcihuKSkpLG59fSkoYSxuLCgoKT0+e2NvbnN0IHQ9by5pbmplY3Rvci5nZXQoSXkpO3JldHVybiB0LnJ1bkluaXRpYWxpemVycygpLHQuZG9uZVByb21pc2UudGhlbigoKCk9PihYdShvLmluamVjdG9yLmdldChXeSxHdSl8fEd1KSx0aGlzLl9tb2R1bGVEb0Jvb3RzdHJhcChvKSxvKSkpfSkpfSkpfWJvb3RzdHJhcE1vZHVsZSh0LGU9W10pe2NvbnN0IG49eF8oe30sZSk7cmV0dXJuKGZ1bmN0aW9uIG8odCxlLG4pe25nRGV2TW9kZSYmKGZ1bmN0aW9uIG8odCxlPSJUeXBlIHBhc3NlZCBpbiBpcyBub3QgTmdNb2R1bGVUeXBlLCBpdCBkb2VzIG5vdCBoYXZlICfJtW1vZCcgcHJvcGVydHkuIil7Zm8odCl8fGJuKGUpfSkobik7Y29uc3QgaT1uZXcgX2gobik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0ppdE1vZGUmJiFuZ0ppdE1vZGUpcmV0dXJuIFByb21pc2UucmVzb2x2ZShpKTtjb25zdCBhPXQuZ2V0KG5fLFtdKS5jb25jYXQoZSk7aWYoKGZ1bmN0aW9uIHIodCl7aWYobnVsbCE9PWpiKXtpZih0LmRlZmF1bHRFbmNhcHN1bGF0aW9uIT09amIuZGVmYXVsdEVuY2Fwc3VsYXRpb24pcmV0dXJuIHZvaWQobmdEZXZNb2RlJiZjb25zb2xlLmVycm9yKCJQcm92aWRlZCB2YWx1ZSBmb3IgYGRlZmF1bHRFbmNhcHN1bGF0aW9uYCBjYW4gbm90IGJlIGNoYW5nZWQgb25jZSBpdCBoYXMgYmVlbiBzZXQuIikpO2lmKHQucHJlc2VydmVXaGl0ZXNwYWNlcyE9PWpiLnByZXNlcnZlV2hpdGVzcGFjZXMpcmV0dXJuIHZvaWQobmdEZXZNb2RlJiZjb25zb2xlLmVycm9yKCJQcm92aWRlZCB2YWx1ZSBmb3IgYHByZXNlcnZlV2hpdGVzcGFjZXNgIGNhbiBub3QgYmUgY2hhbmdlZCBvbmNlIGl0IGhhcyBiZWVuIHNldC4iKSl9amI9dH0pKHtkZWZhdWx0RW5jYXBzdWxhdGlvbjp3XyhhLm1hcCgodD0+dC5kZWZhdWx0RW5jYXBzdWxhdGlvbikpKSxwcmVzZXJ2ZVdoaXRlc3BhY2VzOndfKGEubWFwKCh0PT50LnByZXNlcnZlV2hpdGVzcGFjZXMpKSl9KSwoZnVuY3Rpb24gcygpe3JldHVybiAwPT09SXIuc2l6ZX0pKCkpcmV0dXJuIFByb21pc2UucmVzb2x2ZShpKTtjb25zdCBsPShmdW5jdGlvbiBjKHQpe2NvbnN0IGU9W107cmV0dXJuIHQuZm9yRWFjaCgodD0+dCYmZS5wdXNoKC4uLnQpKSksZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKShhLm1hcCgodD0+dC5wcm92aWRlcnMpKSk7aWYoMD09PWwubGVuZ3RoKXJldHVybiBQcm9taXNlLnJlc29sdmUoaSk7Y29uc3QgZD1KYSh7dXNhZ2U6MCxraW5kOiJOZ01vZHVsZSIsdHlwZTpufSkscD1ycC5jcmVhdGUoe3Byb3ZpZGVyczpsfSkuZ2V0KGQuUmVzb3VyY2VMb2FkZXIpO3JldHVybihmdW5jdGlvbiBtKHQpe2NvbnN0IGU9W10sbj1uZXcgTWFwO2Z1bmN0aW9uIG8oZSl7bGV0IG89bi5nZXQoZSk7aWYoIW8pe2NvbnN0IGk9dChlKTtuLnNldChlLG89aS50aGVuKExyKSl9cmV0dXJuIG99cmV0dXJuIElyLmZvckVhY2goKCh0LG4pPT57Y29uc3QgaT1bXTt0LnRlbXBsYXRlVXJsJiZpLnB1c2gobyh0LnRlbXBsYXRlVXJsKS50aGVuKChlPT57dC50ZW1wbGF0ZT1lfSkpKTtjb25zdCBhPXQuc3R5bGVVcmxzLHI9dC5zdHlsZXN8fCh0LnN0eWxlcz1bXSkscz10LnN0eWxlcy5sZW5ndGg7YSYmYS5mb3JFYWNoKCgoZSxuKT0+e3IucHVzaCgiIiksaS5wdXNoKG8oZSkudGhlbigobz0+e3JbcytuXT1vLGEuc3BsaWNlKGEuaW5kZXhPZihlKSwxKSwwPT1hLmxlbmd0aCYmKHQuc3R5bGVVcmxzPXZvaWQgMCl9KSkpfSkpO2NvbnN0IGw9UHJvbWlzZS5hbGwoaSkudGhlbigoKCk9PihmdW5jdGlvbiB0KGUpe0hyLmRlbGV0ZShlKX0pKG4pKSk7ZS5wdXNoKGwpfSkpLChmdW5jdGlvbiBpKCl7SXI9bmV3IE1hcH0pKCksUHJvbWlzZS5hbGwoZSkudGhlbigoKCk9Pnt9KSl9KSgodD0+UHJvbWlzZS5yZXNvbHZlKHAuZ2V0KHQpKSkpLnRoZW4oKCgpPT5pKSl9KSh0aGlzLmluamVjdG9yLG4sdCkudGhlbigodD0+dGhpcy5ib290c3RyYXBNb2R1bGVGYWN0b3J5KHQsbikpKX1fbW9kdWxlRG9Cb290c3RyYXAodCl7Y29uc3QgZT10LmluamVjdG9yLmdldChPXyk7aWYodC5fYm9vdHN0cmFwQ29tcG9uZW50cy5sZW5ndGg+MCl0Ll9ib290c3RyYXBDb21wb25lbnRzLmZvckVhY2goKHQ9PmUuYm9vdHN0cmFwKHQpKSk7ZWxzZXtpZighdC5pbnN0YW5jZS5uZ0RvQm9vdHN0cmFwKXRocm93IG5ldyBFcnJvcihgVGhlIG1vZHVsZSAke0dlKHQuaW5zdGFuY2UuY29uc3RydWN0b3IpfSB3YXMgYm9vdHN0cmFwcGVkLCBidXQgaXQgZG9lcyBub3QgZGVjbGFyZSAiQE5nTW9kdWxlLmJvb3RzdHJhcCIgY29tcG9uZW50cyBub3IgYSAibmdEb0Jvb3RzdHJhcCIgbWV0aG9kLiBQbGVhc2UgZGVmaW5lIG9uZSBvZiB0aGVzZS5gKTt0Lmluc3RhbmNlLm5nRG9Cb290c3RyYXAoZSl9dGhpcy5fbW9kdWxlcy5wdXNoKHQpfW9uRGVzdHJveSh0KXt0aGlzLl9kZXN0cm95TGlzdGVuZXJzLnB1c2godCl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIHRoaXMuX2luamVjdG9yfWRlc3Ryb3koKXtpZih0aGlzLl9kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJUaGUgcGxhdGZvcm0gaGFzIGFscmVhZHkgYmVlbiBkZXN0cm95ZWQhIik7dGhpcy5fbW9kdWxlcy5zbGljZSgpLmZvckVhY2goKHQ9PnQuZGVzdHJveSgpKSksdGhpcy5fZGVzdHJveUxpc3RlbmVycy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9kZXN0cm95ZWQ9ITB9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9fWZ1bmN0aW9uIHhfKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZS5yZWR1Y2UoeF8sdCk6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLGUpfXZfLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx2XykodnIocnApKX0sdl8uybVwcm92PU1uKHt0b2tlbjp2XyxmYWN0b3J5OnZfLsm1ZmFjfSksdl8uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpycH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodl8sW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnJwfV19KSxudWxsKTtjbGFzcyBPX3tjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3RoaXMuX3pvbmU9dCx0aGlzLl9pbmplY3Rvcj1lLHRoaXMuX2V4Y2VwdGlvbkhhbmRsZXI9bix0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9byx0aGlzLl9pbml0U3RhdHVzPWksdGhpcy5fYm9vdHN0cmFwTGlzdGVuZXJzPVtdLHRoaXMuX3ZpZXdzPVtdLHRoaXMuX3J1bm5pbmdUaWNrPSExLHRoaXMuX3N0YWJsZT0hMCx0aGlzLmNvbXBvbmVudFR5cGVzPVtdLHRoaXMuY29tcG9uZW50cz1bXSx0aGlzLl9vbk1pY3JvdGFza0VtcHR5U3Vic2NyaXB0aW9uPXRoaXMuX3pvbmUub25NaWNyb3Rhc2tFbXB0eS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl96b25lLnJ1bigoKCk9Pnt0aGlzLnRpY2soKX0pKX19KTtjb25zdCBhPW5ldyBEKCh0PT57dGhpcy5fc3RhYmxlPXRoaXMuX3pvbmUuaXNTdGFibGUmJiF0aGlzLl96b25lLmhhc1BlbmRpbmdNYWNyb3Rhc2tzJiYhdGhpcy5fem9uZS5oYXNQZW5kaW5nTWljcm90YXNrcyx0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3QubmV4dCh0aGlzLl9zdGFibGUpLHQuY29tcGxldGUoKX0pKX0pKSxyPW5ldyBEKCh0PT57bGV0IGU7dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntlPXRoaXMuX3pvbmUub25TdGFibGUuc3Vic2NyaWJlKCgoKT0+e2FfLmFzc2VydE5vdEluQW5ndWxhclpvbmUoKSxpXygoKCk9Pnt0aGlzLl9zdGFibGV8fHRoaXMuX3pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3N8fHRoaXMuX3pvbmUuaGFzUGVuZGluZ01pY3JvdGFza3N8fCh0aGlzLl9zdGFibGU9ITAsdC5uZXh0KCEwKSl9KSl9KSl9KSk7Y29uc3Qgbj10aGlzLl96b25lLm9uVW5zdGFibGUuc3Vic2NyaWJlKCgoKT0+e2FfLmFzc2VydEluQW5ndWxhclpvbmUoKSx0aGlzLl9zdGFibGUmJih0aGlzLl9zdGFibGU9ITEsdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0Lm5leHQoITEpfSkpKX0pKTtyZXR1cm4oKT0+e2UudW5zdWJzY3JpYmUoKSxuLnVuc3Vic2NyaWJlKCl9fSkpO3RoaXMuaXNTdGFibGU9cmUoYSxyLnBpcGUoRWUoKSkpfWJvb3RzdHJhcCh0LGUpe2lmKCF0aGlzLl9pbml0U3RhdHVzLmRvbmUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgYm9vdHN0cmFwIGFzIHRoZXJlIGFyZSBzdGlsbCBhc3luY2hyb25vdXMgaW5pdGlhbGl6ZXJzIHJ1bm5pbmcuIEJvb3RzdHJhcCBjb21wb25lbnRzIGluIHRoZSBgbmdEb0Jvb3RzdHJhcGAgbWV0aG9kIG9mIHRoZSByb290IG1vZHVsZS4iKTtsZXQgbjtuPXQgaW5zdGFuY2VvZiBtZz90OnRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0KSx0aGlzLmNvbXBvbmVudFR5cGVzLnB1c2gobi5jb21wb25lbnRUeXBlKTtjb25zdCBvPShmdW5jdGlvbiBpKHQpe3JldHVybiB0LmlzQm91bmRUb01vZHVsZX0pKG4pP3ZvaWQgMDp0aGlzLl9pbmplY3Rvci5nZXQodGgpLGE9bi5jcmVhdGUocnAuTlVMTCxbXSxlfHxuLnNlbGVjdG9yLG8pLHI9YS5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LHM9YS5pbmplY3Rvci5nZXQobV8sbnVsbCksbD1zJiZhLmluamVjdG9yLmdldCh1Xyk7cmV0dXJuIHMmJmwmJmwucmVnaXN0ZXJBcHBsaWNhdGlvbihyLHMpLGEub25EZXN0cm95KCgoKT0+e3RoaXMuZGV0YWNoVmlldyhhLmhvc3RWaWV3KSxQXyh0aGlzLmNvbXBvbmVudHMsYSksbCYmbC51bnJlZ2lzdGVyQXBwbGljYXRpb24ocil9KSksdGhpcy5fbG9hZENvbXBvbmVudChhKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJnlfKCkmJnRoaXMuX2luamVjdG9yLmdldChHeSkubG9nKCJBbmd1bGFyIGlzIHJ1bm5pbmcgaW4gZGV2ZWxvcG1lbnQgbW9kZS4gQ2FsbCBlbmFibGVQcm9kTW9kZSgpIHRvIGVuYWJsZSBwcm9kdWN0aW9uIG1vZGUuIiksYX10aWNrKCl7aWYodGhpcy5fcnVubmluZ1RpY2spdGhyb3cgbmV3IEVycm9yKCJBcHBsaWNhdGlvblJlZi50aWNrIGlzIGNhbGxlZCByZWN1cnNpdmVseSIpO3RyeXt0aGlzLl9ydW5uaW5nVGljaz0hMDtmb3IobGV0IHQgb2YgdGhpcy5fdmlld3MpdC5kZXRlY3RDaGFuZ2VzKCk7aWYoKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZ5XygpKWZvcihsZXQgdCBvZiB0aGlzLl92aWV3cyl0LmNoZWNrTm9DaGFuZ2VzKCl9Y2F0Y2godCl7dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnRoaXMuX2V4Y2VwdGlvbkhhbmRsZXIuaGFuZGxlRXJyb3IodCkpKX1maW5hbGx5e3RoaXMuX3J1bm5pbmdUaWNrPSExfX1hdHRhY2hWaWV3KHQpe2NvbnN0IGU9dDt0aGlzLl92aWV3cy5wdXNoKGUpLGUuYXR0YWNoVG9BcHBSZWYodGhpcyl9ZGV0YWNoVmlldyh0KXtjb25zdCBlPXQ7UF8odGhpcy5fdmlld3MsZSksZS5kZXRhY2hGcm9tQXBwUmVmKCl9X2xvYWRDb21wb25lbnQodCl7dGhpcy5hdHRhY2hWaWV3KHQuaG9zdFZpZXcpLHRoaXMudGljaygpLHRoaXMuY29tcG9uZW50cy5wdXNoKHQpLHRoaXMuX2luamVjdG9yLmdldChVeSxbXSkuY29uY2F0KHRoaXMuX2Jvb3RzdHJhcExpc3RlbmVycykuZm9yRWFjaCgoZT0+ZSh0KSkpfW5nT25EZXN0cm95KCl7dGhpcy5fdmlld3Muc2xpY2UoKS5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX29uTWljcm90YXNrRW1wdHlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1nZXQgdmlld0NvdW50KCl7cmV0dXJuIHRoaXMuX3ZpZXdzLmxlbmd0aH19ZnVuY3Rpb24gUF8odCxlKXtjb25zdCBuPXQuaW5kZXhPZihlKTtuPi0xJiZ0LnNwbGljZShuLDEpfWZ1bmN0aW9uIHdfKHQpe2ZvcihsZXQgZT10Lmxlbmd0aC0xO2U+PTA7ZS0tKWlmKHZvaWQgMCE9PXRbZV0pcmV0dXJuIHRbZV19T18uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE9fKSh2cihhXyksdnIocnApLHZyKFpzKSx2cih1ZyksdnIoSXkpKX0sT18uybVwcm92PU1uKHt0b2tlbjpPXyxmYWN0b3J5Ok9fLsm1ZmFjfSksT18uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTphX30se3R5cGU6cnB9LHt0eXBlOlpzfSx7dHlwZTp1Z30se3R5cGU6SXl9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE9fLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTphX30se3R5cGU6cnB9LHt0eXBlOlpzfSx7dHlwZTp1Z30se3R5cGU6SXl9XX0pLG51bGwpO2NsYXNzIGtfe31jb25zdCBTXz17ZmFjdG9yeVBhdGhQcmVmaXg6IiIsZmFjdG9yeVBhdGhTdWZmaXg6Ii5uZ2ZhY3RvcnkifTtjbGFzcyBEX3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2NvbXBpbGVyPXQsdGhpcy5fY29uZmlnPWV8fFNffWxvYWQodCl7cmV0dXJuIHRoaXMubG9hZEFuZENvbXBpbGUodCl9bG9hZEFuZENvbXBpbGUodCl7bGV0W2Usbl09dC5zcGxpdCgiIyIpO3JldHVybiB2b2lkIDA9PT1uJiYobj0iZGVmYXVsdCIpLFN5c3RlbS5pbXBvcnQoZSkudGhlbigodD0+dFtuXSkpLnRoZW4oKHQ9PkVfKHQsZSxuKSkpLnRoZW4oKHQ9PnRoaXMuX2NvbXBpbGVyLmNvbXBpbGVNb2R1bGVBc3luYyh0KSkpfWxvYWRGYWN0b3J5KHQpe2xldFtlLG5dPXQuc3BsaXQoIiMiKSxvPSJOZ0ZhY3RvcnkiO3JldHVybiB2b2lkIDA9PT1uJiYobj0iZGVmYXVsdCIsbz0iIiksU3lzdGVtLmltcG9ydCh0aGlzLl9jb25maWcuZmFjdG9yeVBhdGhQcmVmaXgrZSt0aGlzLl9jb25maWcuZmFjdG9yeVBhdGhTdWZmaXgpLnRoZW4oKHQ9PnRbbitvXSkpLnRoZW4oKHQ9PkVfKHQsZSxuKSkpfX1mdW5jdGlvbiBFXyh0LGUsbil7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCAnJHtufScgaW4gJyR7ZX0nYCk7cmV0dXJuIHR9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL0RfLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxEXykodnIoZV8pLHZyKGtfLDgpKX0sRF8uybVwcm92PU1uKHt0b2tlbjpEXyxmYWN0b3J5OkRfLsm1ZmFjfSksRF8uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplX30se3R5cGU6a18sZGVjb3JhdG9yczpbe3R5cGU6U3J9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRF8sW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVffSx7dHlwZTprXyxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV19KSxudWxsKTtjb25zdCBSXz1DXyhudWxsLCJjb3JlIixbe3Byb3ZpZGU6anksdXNlVmFsdWU6InVua25vd24ifSx7cHJvdmlkZTp2XyxkZXBzOltycF19LHtwcm92aWRlOnVfLGRlcHM6W119LHtwcm92aWRlOkd5LGRlcHM6W119XSksQV89W3twcm92aWRlOk9fLHVzZUNsYXNzOk9fLGRlcHM6W2FfLHJwLFpzLHVnLEl5XX0se3Byb3ZpZGU6dWgsZGVwczpbYV9dLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gVF8odCl7bGV0IGU9W107cmV0dXJuIHQub25TdGFibGUuc3Vic2NyaWJlKCgoKT0+e2Zvcig7ZS5sZW5ndGg7KWUucG9wKCkoKX0pKSxmdW5jdGlvbih0KXtlLnB1c2godCl9fX0se3Byb3ZpZGU6SXksdXNlQ2xhc3M6SXksZGVwczpbW25ldyBTcix6eV1dfSx7cHJvdmlkZTplXyx1c2VDbGFzczplXyxkZXBzOltdfSxGeSx7cHJvdmlkZTpIZyx1c2VGYWN0b3J5OgovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gTl8oKXtyZXR1cm4gcWd9LGRlcHM6W119LHtwcm92aWRlOkxnLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gel8oKXtyZXR1cm4gWmd9LGRlcHM6W119LHtwcm92aWRlOld5LHVzZUZhY3Rvcnk6ZnVuY3Rpb24gSV8odCl7cmV0dXJuIFh1KHQ9dHx8KGZ1bmN0aW9uIGUoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBnb29nJiYiZW4iIT09Z29vZy5nZXRMb2NhbGUoKT9nb29nLmdldExvY2FsZSgpOiJ1bmRlZmluZWQiIT10eXBlb2YgJGxvY2FsaXplJiYkbG9jYWxpemUubG9jYWxlfHxHdX0pKCkpLHR9LGRlcHM6W1tuZXcga3IoV3kpLG5ldyBTcixuZXcgRXJdXX0se3Byb3ZpZGU6WXksdXNlVmFsdWU6IlVTRCJ9XTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIEhfe2NvbnN0cnVjdG9yKHQpe319dmFyIEZfLExfO0hfLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIXykodnIoT18pKX0sSF8uybVtb2Q9YW8oe3R5cGU6SF99KSxIXy7JtWluaj12bih7cHJvdmlkZXJzOkFffSksSF8uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpPX31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSF8sW3t0eXBlOkF5LGFyZ3M6W3twcm92aWRlcnM6QV99XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpPX31dfSksbnVsbCksKGZ1bmN0aW9uKHQpe3RbdC5DcmVhdGVWaWV3Tm9kZXM9MF09IkNyZWF0ZVZpZXdOb2RlcyIsdFt0LkNoZWNrTm9DaGFuZ2VzPTFdPSJDaGVja05vQ2hhbmdlcyIsdFt0LkNoZWNrTm9DaGFuZ2VzUHJvamVjdGVkVmlld3M9Ml09IkNoZWNrTm9DaGFuZ2VzUHJvamVjdGVkVmlld3MiLHRbdC5DaGVja0FuZFVwZGF0ZT0zXT0iQ2hlY2tBbmRVcGRhdGUiLHRbdC5DaGVja0FuZFVwZGF0ZVByb2plY3RlZFZpZXdzPTRdPSJDaGVja0FuZFVwZGF0ZVByb2plY3RlZFZpZXdzIix0W3QuRGVzdHJveT01XT0iRGVzdHJveSJ9KShGX3x8KEZfPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5jcmVhdGU9MF09ImNyZWF0ZSIsdFt0LmRldGVjdENoYW5nZXM9MV09ImRldGVjdENoYW5nZXMiLHRbdC5jaGVja05vQ2hhbmdlcz0yXT0iY2hlY2tOb0NoYW5nZXMiLHRbdC5kZXN0cm95PTNdPSJkZXN0cm95Iix0W3QuaGFuZGxlRXZlbnQ9NF09ImhhbmRsZUV2ZW50In0pKExffHwoTF89e30pKSwKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJm5nRGV2TW9kZSYmKGpuLiRsb2NhbGl6ZT1qbi4kbG9jYWxpemV8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJJdCBsb29rcyBsaWtlIHlvdXIgYXBwbGljYXRpb24gb3Igb25lIG9mIGl0cyBkZXBlbmRlbmNpZXMgaXMgdXNpbmcgaTE4bi5cbkFuZ3VsYXIgOSBpbnRyb2R1Y2VkIGEgZ2xvYmFsIGAkbG9jYWxpemUoKWAgZnVuY3Rpb24gdGhhdCBuZWVkcyB0byBiZSBsb2FkZWQuXG5QbGVhc2UgcnVuIGBuZyBhZGQgQGFuZ3VsYXIvbG9jYWxpemVgIGZyb20gdGhlIEFuZ3VsYXIgQ0xJLlxuKEZvciBub24tQ0xJIHByb2plY3RzLCBhZGQgYGltcG9ydCAnQGFuZ3VsYXIvbG9jYWxpemUvaW5pdCc7YCB0byB5b3VyIGBwb2x5ZmlsbHMudHNgIGZpbGUuXG5Gb3Igc2VydmVyLXNpZGUgcmVuZGVyaW5nIGFwcGxpY2F0aW9ucyBhZGQgdGhlIGltcG9ydCB0byB5b3VyIGBtYWluLnNlcnZlci50c2AgZmlsZS4pIil9KQovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi87Y29uc3QgQl89InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLFZfPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3csal89InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYidW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYsVV89InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJmdsb2JhbCxHXz1mdW5jdGlvbih0LC4uLmUpe2lmKEdfLnRyYW5zbGF0ZSl7Y29uc3Qgbj1HXy50cmFuc2xhdGUodCxlKTt0PW5bMF0sZT1uWzFdfWxldCBuPVdfKHRbMF0sdC5yYXdbMF0pO2ZvcihsZXQgbz0xO288dC5sZW5ndGg7bysrKW4rPWVbby0xXStXXyh0W29dLHQucmF3W29dKTtyZXR1cm4gbn07ZnVuY3Rpb24gV18odCxlKXtyZXR1cm4iOiI9PT1lLmNoYXJBdCgwKT90LnN1YnN0cmluZygoZnVuY3Rpb24gbih0LGUpe2ZvcihsZXQgbj0xLG89MTtuPHQubGVuZ3RoO24rKyxvKyspaWYoIlxcIj09PWVbb10pbysrO2Vsc2UgaWYoIjoiPT09dFtuXSlyZXR1cm4gbjt0aHJvdyBuZXcgRXJyb3IoYFVudGVybWluYXRlZCAkbG9jYWxpemUgbWV0YWRhdGEgYmxvY2sgaW4gIiR7ZX0iLmApfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0LGUpKzEpOnR9KEJffHxVX3x8Vl98fGpfKS4kbG9jYWxpemU9R187Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovCmxldCBZXz1udWxsO2Z1bmN0aW9uIHFfKCl7cmV0dXJuIFlffQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgWl89bmV3IEdhKCJEb2N1bWVudFRva2VuIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIFhfe2hpc3RvcnlHbyh0KXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfX1mdW5jdGlvbiBLXygpe3JldHVybiB2cihKXyl9WF8uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhfKX0sWF8uybVwcm92PU1uKHtmYWN0b3J5OktfLHRva2VuOlhfLHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWF8sW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJwbGF0Zm9ybSIsdXNlRmFjdG9yeTpLX31dfV0sbnVsbCxudWxsKSxuZXcgR2EoIkxvY2F0aW9uIEluaXRpYWxpemVkIik7Y2xhc3MgSl8gZXh0ZW5kcyBYX3tjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX2RvYz10LHRoaXMuX2luaXQoKX1faW5pdCgpe3RoaXMubG9jYXRpb249d2luZG93LmxvY2F0aW9uLHRoaXMuX2hpc3Rvcnk9d2luZG93Lmhpc3Rvcnl9Z2V0QmFzZUhyZWZGcm9tRE9NKCl7cmV0dXJuIHFfKCkuZ2V0QmFzZUhyZWYodGhpcy5fZG9jKX1vblBvcFN0YXRlKHQpe2NvbnN0IGU9cV8oKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0LCExKSwoKT0+ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdCl9b25IYXNoQ2hhbmdlKHQpe2NvbnN0IGU9cV8oKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLHQsITEpLCgpPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLHQpfWdldCBocmVmKCl7cmV0dXJuIHRoaXMubG9jYXRpb24uaHJlZn1nZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5wcm90b2NvbH1nZXQgaG9zdG5hbWUoKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5ob3N0bmFtZX1nZXQgcG9ydCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLnBvcnR9Z2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMubG9jYXRpb24ucGF0aG5hbWV9Z2V0IHNlYXJjaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLnNlYXJjaH1nZXQgaGFzaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLmhhc2h9c2V0IHBhdGhuYW1lKHQpe3RoaXMubG9jYXRpb24ucGF0aG5hbWU9dH1wdXNoU3RhdGUodCxlLG4pe1FfKCk/dGhpcy5faGlzdG9yeS5wdXNoU3RhdGUodCxlLG4pOnRoaXMubG9jYXRpb24uaGFzaD1ufXJlcGxhY2VTdGF0ZSh0LGUsbil7UV8oKT90aGlzLl9oaXN0b3J5LnJlcGxhY2VTdGF0ZSh0LGUsbik6dGhpcy5sb2NhdGlvbi5oYXNoPW59Zm9yd2FyZCgpe3RoaXMuX2hpc3RvcnkuZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9oaXN0b3J5LmJhY2soKX1oaXN0b3J5R28odD0wKXt0aGlzLl9oaXN0b3J5LmdvKHQpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX2hpc3Rvcnkuc3RhdGV9fWZ1bmN0aW9uIFFfKCl7cmV0dXJuISF3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGV9ZnVuY3Rpb24gJF8oKXtyZXR1cm4gbmV3IEpfKHZyKFpfKSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB0Qyh0LGUpe2lmKDA9PXQubGVuZ3RoKXJldHVybiBlO2lmKDA9PWUubGVuZ3RoKXJldHVybiB0O2xldCBuPTA7cmV0dXJuIHQuZW5kc1dpdGgoIi8iKSYmbisrLGUuc3RhcnRzV2l0aCgiLyIpJiZuKyssMj09bj90K2Uuc3Vic3RyaW5nKDEpOjE9PW4/dCtlOnQrIi8iK2V9ZnVuY3Rpb24gZUModCl7Y29uc3QgZT10Lm1hdGNoKC8jfFw/fCQvKSxuPWUmJmUuaW5kZXh8fHQubGVuZ3RoO3JldHVybiB0LnNsaWNlKDAsbi0oIi8iPT09dFtuLTFdPzE6MCkpK3Quc2xpY2Uobil9ZnVuY3Rpb24gbkModCl7cmV0dXJuIHQmJiI/IiE9PXRbMF0/Ij8iK3Q6dH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovSl8uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEpfKSh2cihaXykpfSxKXy7JtXByb3Y9TW4oe2ZhY3Rvcnk6JF8sdG9rZW46Sl8scHJvdmlkZWRJbjoicGxhdGZvcm0ifSksSl8uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEpfLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicGxhdGZvcm0iLHVzZUZhY3Rvcnk6JF99XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpO2NsYXNzIG9De2hpc3RvcnlHbyh0KXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfX1mdW5jdGlvbiBpQyh0KXtjb25zdCBlPXZyKFpfKS5sb2NhdGlvbjtyZXR1cm4gbmV3IHJDKHZyKFhfKSxlJiZlLm9yaWdpbnx8IiIpfW9DLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxvQyl9LG9DLsm1cHJvdj1Nbih7ZmFjdG9yeTppQyx0b2tlbjpvQyxwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgob0MsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290Iix1c2VGYWN0b3J5OmlDfV19XSxudWxsLG51bGwpO2NvbnN0IGFDPW5ldyBHYSgiYXBwQmFzZUhyZWYiKTtjbGFzcyByQyBleHRlbmRzIG9De2NvbnN0cnVjdG9yKHQsZSl7aWYoc3VwZXIoKSx0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uPXQsdGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnM9W10sbnVsbD09ZSYmKGU9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5nZXRCYXNlSHJlZkZyb21ET00oKSksbnVsbD09ZSl0aHJvdyBuZXcgRXJyb3IoIk5vIGJhc2UgaHJlZiBzZXQuIFBsZWFzZSBwcm92aWRlIGEgdmFsdWUgZm9yIHRoZSBBUFBfQkFTRV9IUkVGIHRva2VuIG9yIGFkZCBhIGJhc2UgZWxlbWVudCB0byB0aGUgZG9jdW1lbnQuIik7dGhpcy5fYmFzZUhyZWY9ZX1uZ09uRGVzdHJveSgpe2Zvcig7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMubGVuZ3RoOyl0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5wb3AoKSgpfW9uUG9wU3RhdGUodCl7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucHVzaCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uUG9wU3RhdGUodCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vbkhhc2hDaGFuZ2UodCkpfWdldEJhc2VIcmVmKCl7cmV0dXJuIHRoaXMuX2Jhc2VIcmVmfXByZXBhcmVFeHRlcm5hbFVybCh0KXtyZXR1cm4gdEModGhpcy5fYmFzZUhyZWYsdCl9cGF0aCh0PSExKXtjb25zdCBlPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWUrbkModGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5zZWFyY2gpLG49dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5oYXNoO3JldHVybiBuJiZ0P2Ake2V9JHtufWA6ZX1wdXNoU3RhdGUodCxlLG4sbyl7Y29uc3QgaT10aGlzLnByZXBhcmVFeHRlcm5hbFVybChuK25DKG8pKTt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLnB1c2hTdGF0ZSh0LGUsaSl9cmVwbGFjZVN0YXRlKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwobituQyhvKSk7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5yZXBsYWNlU3RhdGUodCxlLGkpfWZvcndhcmQoKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5iYWNrKCl9aGlzdG9yeUdvKHQ9MCl7dmFyIGUsbjtudWxsPT09KG49KGU9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbikuaGlzdG9yeUdvKXx8dm9pZCAwPT09bnx8bi5jYWxsKGUsdCl9fXJDLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxyQykodnIoWF8pLHZyKGFDLDgpKX0sckMuybVwcm92PU1uKHt0b2tlbjpyQyxmYWN0b3J5OnJDLsm1ZmFjfSksckMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYX30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlthQ119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgockMsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhffSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W2FDXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHNDIGV4dGVuZHMgb0N7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb249dCx0aGlzLl9iYXNlSHJlZj0iIix0aGlzLl9yZW1vdmVMaXN0ZW5lckZucz1bXSxudWxsIT1lJiYodGhpcy5fYmFzZUhyZWY9ZSl9bmdPbkRlc3Ryb3koKXtmb3IoO3RoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLmxlbmd0aDspdGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucG9wKCkoKX1vblBvcFN0YXRlKHQpe3RoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLnB1c2godGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vblBvcFN0YXRlKHQpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ub25IYXNoQ2hhbmdlKHQpKX1nZXRCYXNlSHJlZigpe3JldHVybiB0aGlzLl9iYXNlSHJlZn1wYXRoKHQ9ITEpe2xldCBlPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24uaGFzaDtyZXR1cm4gbnVsbD09ZSYmKGU9IiMiKSxlLmxlbmd0aD4wP2Uuc3Vic3RyaW5nKDEpOmV9cHJlcGFyZUV4dGVybmFsVXJsKHQpe2NvbnN0IGU9dEModGhpcy5fYmFzZUhyZWYsdCk7cmV0dXJuIGUubGVuZ3RoPjA/IiMiK2U6ZX1wdXNoU3RhdGUodCxlLG4sbyl7bGV0IGk9dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwobituQyhvKSk7MD09aS5sZW5ndGgmJihpPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWUpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucHVzaFN0YXRlKHQsZSxpKX1yZXBsYWNlU3RhdGUodCxlLG4sbyl7bGV0IGk9dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwobituQyhvKSk7MD09aS5sZW5ndGgmJihpPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWUpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucmVwbGFjZVN0YXRlKHQsZSxpKX1mb3J3YXJkKCl7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5mb3J3YXJkKCl9YmFjaygpe3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uYmFjaygpfWhpc3RvcnlHbyh0PTApe3ZhciBlLG47bnVsbD09PShuPShlPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24pLmhpc3RvcnlHbyl8fHZvaWQgMD09PW58fG4uY2FsbChlLHQpfX1zQy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8c0MpKHZyKFhfKSx2cihhQyw4KSl9LHNDLsm1cHJvdj1Nbih7dG9rZW46c0MsZmFjdG9yeTpzQy7JtWZhY30pLHNDLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WF99LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbYUNdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHNDLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYX30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlthQ119XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBsQ3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3N1YmplY3Q9bmV3IExoLHRoaXMuX3VybENoYW5nZUxpc3RlbmVycz1bXSx0aGlzLl9wbGF0Zm9ybVN0cmF0ZWd5PXQ7Y29uc3Qgbj10aGlzLl9wbGF0Zm9ybVN0cmF0ZWd5LmdldEJhc2VIcmVmKCk7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbj1lLHRoaXMuX2Jhc2VIcmVmPWVDKGRDKG4pKSx0aGlzLl9wbGF0Zm9ybVN0cmF0ZWd5Lm9uUG9wU3RhdGUoKHQ9Pnt0aGlzLl9zdWJqZWN0LmVtaXQoe3VybDp0aGlzLnBhdGgoITApLHBvcDohMCxzdGF0ZTp0LnN0YXRlLHR5cGU6dC50eXBlfSl9KSl9cGF0aCh0PSExKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUodGhpcy5fcGxhdGZvcm1TdHJhdGVneS5wYXRoKHQpKX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmdldFN0YXRlKCl9aXNDdXJyZW50UGF0aEVxdWFsVG8odCxlPSIiKXtyZXR1cm4gdGhpcy5wYXRoKCk9PXRoaXMubm9ybWFsaXplKHQrbkMoZSkpfW5vcm1hbGl6ZSh0KXtyZXR1cm4gbEMuc3RyaXBUcmFpbGluZ1NsYXNoKChmdW5jdGlvbiBlKHQsbil7cmV0dXJuIHQmJm4uc3RhcnRzV2l0aCh0KT9uLnN1YnN0cmluZyh0Lmxlbmd0aCk6bn0pKHRoaXMuX2Jhc2VIcmVmLGRDKHQpKSl9cHJlcGFyZUV4dGVybmFsVXJsKHQpe3JldHVybiB0JiYiLyIhPT10WzBdJiYodD0iLyIrdCksdGhpcy5fcGxhdGZvcm1TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwodCl9Z28odCxlPSIiLG49bnVsbCl7dGhpcy5fcGxhdGZvcm1TdHJhdGVneS5wdXNoU3RhdGUobiwiIix0LGUpLHRoaXMuX25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0aGlzLnByZXBhcmVFeHRlcm5hbFVybCh0K25DKGUpKSxuKX1yZXBsYWNlU3RhdGUodCxlPSIiLG49bnVsbCl7dGhpcy5fcGxhdGZvcm1TdHJhdGVneS5yZXBsYWNlU3RhdGUobiwiIix0LGUpLHRoaXMuX25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0aGlzLnByZXBhcmVFeHRlcm5hbFVybCh0K25DKGUpKSxuKX1mb3J3YXJkKCl7dGhpcy5fcGxhdGZvcm1TdHJhdGVneS5mb3J3YXJkKCl9YmFjaygpe3RoaXMuX3BsYXRmb3JtU3RyYXRlZ3kuYmFjaygpfWhpc3RvcnlHbyh0PTApe3ZhciBlLG47bnVsbD09PShuPShlPXRoaXMuX3BsYXRmb3JtU3RyYXRlZ3kpLmhpc3RvcnlHbyl8fHZvaWQgMD09PW58fG4uY2FsbChlLHQpfW9uVXJsQ2hhbmdlKHQpe3RoaXMuX3VybENoYW5nZUxpc3RlbmVycy5wdXNoKHQpLHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbnx8KHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj10aGlzLnN1YnNjcmliZSgodD0+e3RoaXMuX25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0LnVybCx0LnN0YXRlKX0pKSl9X25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0PSIiLGUpe3RoaXMuX3VybENoYW5nZUxpc3RlbmVycy5mb3JFYWNoKChuPT5uKHQsZSkpKX1zdWJzY3JpYmUodCxlLG4pe3JldHVybiB0aGlzLl9zdWJqZWN0LnN1YnNjcmliZSh7bmV4dDp0LGVycm9yOmUsY29tcGxldGU6bn0pfX1mdW5jdGlvbiBjQygpe3JldHVybiBuZXcgbEModnIob0MpLHZyKFhfKSl9ZnVuY3Rpb24gZEModCl7cmV0dXJuIHQucmVwbGFjZSgvXC9pbmRleC5odG1sJC8sIiIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbEMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxDKSh2cihvQyksdnIoWF8pKX0sbEMubm9ybWFsaXplUXVlcnlQYXJhbXM9bkMsbEMuam9pbldpdGhTbGFzaD10QyxsQy5zdHJpcFRyYWlsaW5nU2xhc2g9ZUMsbEMuybVwcm92PU1uKHtmYWN0b3J5OmNDLHRva2VuOmxDLHByb3ZpZGVkSW46InJvb3QifSksbEMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpvQ30se3R5cGU6WF99XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGxDLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCIsdXNlRmFjdG9yeTpjQ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOm9DfSx7dHlwZTpYX31dfSksbnVsbCk7Y29uc3QgcEM9e0FEUDpbdm9pZCAwLHZvaWQgMCwwXSxBRk46W3ZvaWQgMCx2b2lkIDAsMF0sQUxMOlt2b2lkIDAsdm9pZCAwLDBdLEFNRDpbdm9pZCAwLHZvaWQgMCwyXSxBT0E6W3ZvaWQgMCwiS3oiXSxBUlM6W3ZvaWQgMCwiJCJdLEFVRDpbIkEkIiwiJCJdLEJBTTpbdm9pZCAwLCJLTSJdLEJCRDpbdm9pZCAwLCIkIl0sQkRUOlt2b2lkIDAsIuCnsyJdLEJIRDpbdm9pZCAwLHZvaWQgMCwzXSxCSUY6W3ZvaWQgMCx2b2lkIDAsMF0sQk1EOlt2b2lkIDAsIiQiXSxCTkQ6W3ZvaWQgMCwiJCJdLEJPQjpbdm9pZCAwLCJCcyJdLEJSTDpbIlIkIl0sQlNEOlt2b2lkIDAsIiQiXSxCV1A6W3ZvaWQgMCwiUCJdLEJZTjpbdm9pZCAwLCLRgC4iLDJdLEJZUjpbdm9pZCAwLHZvaWQgMCwwXSxCWkQ6W3ZvaWQgMCwiJCJdLENBRDpbIkNBJCIsIiQiLDJdLENIRjpbdm9pZCAwLHZvaWQgMCwyXSxDTEY6W3ZvaWQgMCx2b2lkIDAsNF0sQ0xQOlt2b2lkIDAsIiQiLDBdLENOWTpbIkNOwqUiLCLCpSJdLENPUDpbdm9pZCAwLCIkIiwyXSxDUkM6W3ZvaWQgMCwi4oKhIiwyXSxDVUM6W3ZvaWQgMCwiJCJdLENVUDpbdm9pZCAwLCIkIl0sQ1pLOlt2b2lkIDAsIkvEjSIsMl0sREpGOlt2b2lkIDAsdm9pZCAwLDBdLERLSzpbdm9pZCAwLCJrciIsMl0sRE9QOlt2b2lkIDAsIiQiXSxFR1A6W3ZvaWQgMCwiRcKjIl0sRVNQOlt2b2lkIDAsIuKCpyIsMF0sRVVSOlsi4oKsIl0sRkpEOlt2b2lkIDAsIiQiXSxGS1A6W3ZvaWQgMCwiwqMiXSxHQlA6WyLCoyJdLEdFTDpbdm9pZCAwLCLigr4iXSxHSVA6W3ZvaWQgMCwiwqMiXSxHTkY6W3ZvaWQgMCwiRkciLDBdLEdUUTpbdm9pZCAwLCJRIl0sR1lEOlt2b2lkIDAsIiQiLDJdLEhLRDpbIkhLJCIsIiQiXSxITkw6W3ZvaWQgMCwiTCJdLEhSSzpbdm9pZCAwLCJrbiJdLEhVRjpbdm9pZCAwLCJGdCIsMl0sSURSOlt2b2lkIDAsIlJwIiwyXSxJTFM6WyLigqoiXSxJTlI6WyLigrkiXSxJUUQ6W3ZvaWQgMCx2b2lkIDAsMF0sSVJSOlt2b2lkIDAsdm9pZCAwLDBdLElTSzpbdm9pZCAwLCJrciIsMF0sSVRMOlt2b2lkIDAsdm9pZCAwLDBdLEpNRDpbdm9pZCAwLCIkIl0sSk9EOlt2b2lkIDAsdm9pZCAwLDNdLEpQWTpbIsKlIix2b2lkIDAsMF0sS0hSOlt2b2lkIDAsIuGfmyJdLEtNRjpbdm9pZCAwLCJDRiIsMF0sS1BXOlt2b2lkIDAsIuKCqSIsMF0sS1JXOlsi4oKpIix2b2lkIDAsMF0sS1dEOlt2b2lkIDAsdm9pZCAwLDNdLEtZRDpbdm9pZCAwLCIkIl0sS1pUOlt2b2lkIDAsIuKCuCJdLExBSzpbdm9pZCAwLCLigq0iLDBdLExCUDpbdm9pZCAwLCJMwqMiLDBdLExLUjpbdm9pZCAwLCJScyJdLExSRDpbdm9pZCAwLCIkIl0sTFRMOlt2b2lkIDAsIkx0Il0sTFVGOlt2b2lkIDAsdm9pZCAwLDBdLExWTDpbdm9pZCAwLCJMcyJdLExZRDpbdm9pZCAwLHZvaWQgMCwzXSxNR0E6W3ZvaWQgMCwiQXIiLDBdLE1HRjpbdm9pZCAwLHZvaWQgMCwwXSxNTUs6W3ZvaWQgMCwiSyIsMF0sTU5UOlt2b2lkIDAsIuKCriIsMl0sTVJPOlt2b2lkIDAsdm9pZCAwLDBdLE1VUjpbdm9pZCAwLCJScyIsMl0sTVhOOlsiTVgkIiwiJCJdLE1ZUjpbdm9pZCAwLCJSTSJdLE5BRDpbdm9pZCAwLCIkIl0sTkdOOlt2b2lkIDAsIuKCpiJdLE5JTzpbdm9pZCAwLCJDJCJdLE5PSzpbdm9pZCAwLCJrciIsMl0sTlBSOlt2b2lkIDAsIlJzIl0sTlpEOlsiTlokIiwiJCJdLE9NUjpbdm9pZCAwLHZvaWQgMCwzXSxQSFA6W3ZvaWQgMCwi4oKxIl0sUEtSOlt2b2lkIDAsIlJzIiwyXSxQTE46W3ZvaWQgMCwiesWCIl0sUFlHOlt2b2lkIDAsIuKCsiIsMF0sUk9OOlt2b2lkIDAsImxlaSJdLFJTRDpbdm9pZCAwLHZvaWQgMCwwXSxSVUI6W3ZvaWQgMCwi4oK9Il0sUlVSOlt2b2lkIDAsItGALiJdLFJXRjpbdm9pZCAwLCJSRiIsMF0sU0JEOlt2b2lkIDAsIiQiXSxTRUs6W3ZvaWQgMCwia3IiLDJdLFNHRDpbdm9pZCAwLCIkIl0sU0hQOlt2b2lkIDAsIsKjIl0sU0xMOlt2b2lkIDAsdm9pZCAwLDBdLFNPUzpbdm9pZCAwLHZvaWQgMCwwXSxTUkQ6W3ZvaWQgMCwiJCJdLFNTUDpbdm9pZCAwLCLCoyJdLFNURDpbdm9pZCAwLHZvaWQgMCwwXSxTVE46W3ZvaWQgMCwiRGIiXSxTWVA6W3ZvaWQgMCwiwqMiLDBdLFRIQjpbdm9pZCAwLCLguL8iXSxUTU06W3ZvaWQgMCx2b2lkIDAsMF0sVE5EOlt2b2lkIDAsdm9pZCAwLDNdLFRPUDpbdm9pZCAwLCJUJCJdLFRSTDpbdm9pZCAwLHZvaWQgMCwwXSxUUlk6W3ZvaWQgMCwi4oK6Il0sVFREOlt2b2lkIDAsIiQiXSxUV0Q6WyJOVCQiLCIkIiwyXSxUWlM6W3ZvaWQgMCx2b2lkIDAsMl0sVUFIOlt2b2lkIDAsIuKCtCJdLFVHWDpbdm9pZCAwLHZvaWQgMCwwXSxVU0Q6WyIkIl0sVVlJOlt2b2lkIDAsdm9pZCAwLDBdLFVZVTpbdm9pZCAwLCIkIl0sVVlXOlt2b2lkIDAsdm9pZCAwLDRdLFVaUzpbdm9pZCAwLHZvaWQgMCwyXSxWRUY6W3ZvaWQgMCwiQnMiLDJdLFZORDpbIuKCqyIsdm9pZCAwLDBdLFZVVjpbdm9pZCAwLHZvaWQgMCwwXSxYQUY6WyJGQ0ZBIix2b2lkIDAsMF0sWENEOlsiRUMkIiwiJCJdLFhPRjpbIkNGQSIsdm9pZCAwLDBdLFhQRjpbIkNGUEYiLHZvaWQgMCwwXSxYWFg6WyLCpCJdLFlFUjpbdm9pZCAwLHZvaWQgMCwwXSxaQVI6W3ZvaWQgMCwiUiJdLFpNSzpbdm9pZCAwLHZvaWQgMCwwXSxaTVc6W3ZvaWQgMCwiWksiXSxaV0Q6W3ZvaWQgMCx2b2lkIDAsMF19OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi92YXIgbUMsdUMsZkMsZ0MsaEMsYkMseUM7ZnVuY3Rpb24gX0ModCxlKXtyZXR1cm4gd0MoTHUodClbanUuRGF0ZUZvcm1hdF0sZSl9ZnVuY3Rpb24gQ0ModCxlKXtyZXR1cm4gd0MoTHUodClbanUuVGltZUZvcm1hdF0sZSl9ZnVuY3Rpb24gTUModCxlKXtyZXR1cm4gd0MoTHUodClbanUuRGF0ZVRpbWVGb3JtYXRdLGUpfWZ1bmN0aW9uIHZDKHQsZSl7Y29uc3Qgbj1MdSh0KSxvPW5banUuTnVtYmVyU3ltYm9sc11bZV07aWYodm9pZCAwPT09byl7aWYoZT09PWJDLkN1cnJlbmN5RGVjaW1hbClyZXR1cm4gbltqdS5OdW1iZXJTeW1ib2xzXVtiQy5EZWNpbWFsXTtpZihlPT09YkMuQ3VycmVuY3lHcm91cClyZXR1cm4gbltqdS5OdW1iZXJTeW1ib2xzXVtiQy5Hcm91cF19cmV0dXJuIG99ZnVuY3Rpb24geEModCxlKXtyZXR1cm4gTHUodClbanUuTnVtYmVyRm9ybWF0c11bZV19IShmdW5jdGlvbih0KXt0W3QuRGVjaW1hbD0wXT0iRGVjaW1hbCIsdFt0LlBlcmNlbnQ9MV09IlBlcmNlbnQiLHRbdC5DdXJyZW5jeT0yXT0iQ3VycmVuY3kiLHRbdC5TY2llbnRpZmljPTNdPSJTY2llbnRpZmljIn0pKG1DfHwobUM9e30pKSwoZnVuY3Rpb24odCl7dFt0Llplcm89MF09Ilplcm8iLHRbdC5PbmU9MV09Ik9uZSIsdFt0LlR3bz0yXT0iVHdvIix0W3QuRmV3PTNdPSJGZXciLHRbdC5NYW55PTRdPSJNYW55Iix0W3QuT3RoZXI9NV09Ik90aGVyIn0pKHVDfHwodUM9e30pKSwoZnVuY3Rpb24odCl7dFt0LkZvcm1hdD0wXT0iRm9ybWF0Iix0W3QuU3RhbmRhbG9uZT0xXT0iU3RhbmRhbG9uZSJ9KShmQ3x8KGZDPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5OYXJyb3c9MF09Ik5hcnJvdyIsdFt0LkFiYnJldmlhdGVkPTFdPSJBYmJyZXZpYXRlZCIsdFt0LldpZGU9Ml09IldpZGUiLHRbdC5TaG9ydD0zXT0iU2hvcnQifSkoZ0N8fChnQz17fSkpLChmdW5jdGlvbih0KXt0W3QuU2hvcnQ9MF09IlNob3J0Iix0W3QuTWVkaXVtPTFdPSJNZWRpdW0iLHRbdC5Mb25nPTJdPSJMb25nIix0W3QuRnVsbD0zXT0iRnVsbCJ9KShoQ3x8KGhDPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5EZWNpbWFsPTBdPSJEZWNpbWFsIix0W3QuR3JvdXA9MV09Ikdyb3VwIix0W3QuTGlzdD0yXT0iTGlzdCIsdFt0LlBlcmNlbnRTaWduPTNdPSJQZXJjZW50U2lnbiIsdFt0LlBsdXNTaWduPTRdPSJQbHVzU2lnbiIsdFt0Lk1pbnVzU2lnbj01XT0iTWludXNTaWduIix0W3QuRXhwb25lbnRpYWw9Nl09IkV4cG9uZW50aWFsIix0W3QuU3VwZXJzY3JpcHRpbmdFeHBvbmVudD03XT0iU3VwZXJzY3JpcHRpbmdFeHBvbmVudCIsdFt0LlBlck1pbGxlPThdPSJQZXJNaWxsZSIsdFt0WzEvMF09OV09IkluZmluaXR5Iix0W3QuTmFOPTEwXT0iTmFOIix0W3QuVGltZVNlcGFyYXRvcj0xMV09IlRpbWVTZXBhcmF0b3IiLHRbdC5DdXJyZW5jeURlY2ltYWw9MTJdPSJDdXJyZW5jeURlY2ltYWwiLHRbdC5DdXJyZW5jeUdyb3VwPTEzXT0iQ3VycmVuY3lHcm91cCJ9KShiQ3x8KGJDPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5TdW5kYXk9MF09IlN1bmRheSIsdFt0Lk1vbmRheT0xXT0iTW9uZGF5Iix0W3QuVHVlc2RheT0yXT0iVHVlc2RheSIsdFt0LldlZG5lc2RheT0zXT0iV2VkbmVzZGF5Iix0W3QuVGh1cnNkYXk9NF09IlRodXJzZGF5Iix0W3QuRnJpZGF5PTVdPSJGcmlkYXkiLHRbdC5TYXR1cmRheT02XT0iU2F0dXJkYXkifSkoeUN8fCh5Qz17fSkpO2NvbnN0IE9DPUJ1O2Z1bmN0aW9uIFBDKHQpe2lmKCF0W2p1LkV4dHJhRGF0YV0pdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIGV4dHJhIGxvY2FsZSBkYXRhIGZvciB0aGUgbG9jYWxlICIke3RbanUuTG9jYWxlSWRdfSIuIFVzZSAicmVnaXN0ZXJMb2NhbGVEYXRhIiB0byBsb2FkIG5ldyBkYXRhLiBTZWUgdGhlICJJMThuIGd1aWRlIiBvbiBhbmd1bGFyLmlvIHRvIGtub3cgbW9yZS5gKX1mdW5jdGlvbiB3Qyh0LGUpe2ZvcihsZXQgbj1lO24+LTE7bi0tKWlmKHZvaWQgMCE9PXRbbl0pcmV0dXJuIHRbbl07dGhyb3cgbmV3IEVycm9yKCJMb2NhbGUgZGF0YSBBUEk6IGxvY2FsZSBkYXRhIHVuZGVmaW5lZCIpfWZ1bmN0aW9uIGtDKHQpe2NvbnN0W2Usbl09dC5zcGxpdCgiOiIpO3JldHVybntob3VyczorZSxtaW51dGVzOitufX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFNDPS9eKFxkezR9KS0/KFxkXGQpLT8oXGRcZCkoPzpUKFxkXGQpKD86Oj8oXGRcZCkoPzo6PyhcZFxkKSg/OlwuKFxkKykpPyk/KT8oWnwoWystXSkoXGRcZCk6PyhcZFxkKSk/KT8kLyxEQz17fSxFQz0vKCg/OlteQkVHSExNT1NXWVphYmNkaG1zd3l6J10rKXwoPzonKD86W14nXXwnJykqJyl8KD86R3sxLDV9fHl7MSw0fXxZezEsNH18TXsxLDV9fEx7MSw1fXx3ezEsMn18V3sxfXxkezEsMn18RXsxLDZ9fGN7MSw2fXxhezEsNX18YnsxLDV9fEJ7MSw1fXxoezEsMn18SHsxLDJ9fG17MSwyfXxzezEsMn18U3sxLDN9fHp7MSw0fXxaezEsNX18T3sxLDR9KSkoW1xzXFNdKikvO3ZhciBSQyxBQyxUQztmdW5jdGlvbiBOQyh0LGUsbixvKXtsZXQgaT0oZnVuY3Rpb24gYSh0KXtpZihxQyh0KSlyZXR1cm4gdDtpZigibnVtYmVyIj09dHlwZW9mIHQmJiFpc05hTih0KSlyZXR1cm4gbmV3IERhdGUodCk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZih0PXQudHJpbSgpLC9eKFxkezR9KC1cZHsxLDJ9KC1cZHsxLDJ9KT8pPykkLy50ZXN0KHQpKXtjb25zdFtlLG49MSxvPTFdPXQuc3BsaXQoIi0iKS5tYXAoKHQ9Pit0KSk7cmV0dXJuIHpDKGUsbi0xLG8pfWNvbnN0IGU9cGFyc2VGbG9hdCh0KTtpZighaXNOYU4odC1lKSlyZXR1cm4gbmV3IERhdGUoZSk7bGV0IG47aWYobj10Lm1hdGNoKFNDKSlyZXR1cm4oZnVuY3Rpb24gZSh0KXtjb25zdCBlPW5ldyBEYXRlKDApO2xldCBuPTAsbz0wO2NvbnN0IGk9dFs4XT9lLnNldFVUQ0Z1bGxZZWFyOmUuc2V0RnVsbFllYXIsYT10WzhdP2Uuc2V0VVRDSG91cnM6ZS5zZXRIb3Vyczt0WzldJiYobj1OdW1iZXIodFs5XSt0WzEwXSksbz1OdW1iZXIodFs5XSt0WzExXSkpLGkuY2FsbChlLE51bWJlcih0WzFdKSxOdW1iZXIodFsyXSktMSxOdW1iZXIodFszXSkpO2NvbnN0IHI9TnVtYmVyKHRbNF18fDApLW4scz1OdW1iZXIodFs1XXx8MCktbyxsPU51bWJlcih0WzZdfHwwKSxjPU1hdGguZmxvb3IoMWUzKnBhcnNlRmxvYXQoIjAuIisodFs3XXx8MCkpKTtyZXR1cm4gYS5jYWxsKGUscixzLGwsYyksZX0pKG4pfWNvbnN0IG49bmV3IERhdGUodCk7aWYoIXFDKG4pKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGNvbnZlcnQgIiR7dH0iIGludG8gYSBkYXRlYCk7cmV0dXJuIG59KSh0KTtlPUlDKG4sZSl8fGU7bGV0IHIscz1bXTtmb3IoO2U7KXtpZihyPUVDLmV4ZWMoZSksIXIpe3MucHVzaChlKTticmVha317cz1zLmNvbmNhdChyLnNsaWNlKDEpKTtjb25zdCB0PXMucG9wKCk7aWYoIXQpYnJlYWs7ZT10fX1sZXQgbD1pLmdldFRpbWV6b25lT2Zmc2V0KCk7byYmKGw9WUMobyxsKSxpPShmdW5jdGlvbiBjKHQsZSxuKXtjb25zdCBvPW4/LTE6MSxpPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4oZnVuY3Rpb24gYSh0LGUpe3JldHVybih0PW5ldyBEYXRlKHQuZ2V0VGltZSgpKSkuc2V0TWludXRlcyh0LmdldE1pbnV0ZXMoKStlKSx0fSkodCxvKihZQyhlLGkpLWkpKX0pKGksbywhMCkpO2xldCBkPSIiO3JldHVybiBzLmZvckVhY2goKHQ9Pntjb25zdCBlPShmdW5jdGlvbiBvKHQpe2lmKFdDW3RdKXJldHVybiBXQ1t0XTtsZXQgZTtzd2l0Y2godCl7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6ZT1CQyhUQy5FcmFzLGdDLkFiYnJldmlhdGVkKTticmVhaztjYXNlIkdHR0ciOmU9QkMoVEMuRXJhcyxnQy5XaWRlKTticmVhaztjYXNlIkdHR0dHIjplPUJDKFRDLkVyYXMsZ0MuTmFycm93KTticmVhaztjYXNlInkiOmU9TEMoQUMuRnVsbFllYXIsMSwwLCExLCEwKTticmVhaztjYXNlInl5IjplPUxDKEFDLkZ1bGxZZWFyLDIsMCwhMCwhMCk7YnJlYWs7Y2FzZSJ5eXkiOmU9TEMoQUMuRnVsbFllYXIsMywwLCExLCEwKTticmVhaztjYXNlInl5eXkiOmU9TEMoQUMuRnVsbFllYXIsNCwwLCExLCEwKTticmVhaztjYXNlIlkiOmU9R0MoMSk7YnJlYWs7Y2FzZSJZWSI6ZT1HQygyLCEwKTticmVhaztjYXNlIllZWSI6ZT1HQygzKTticmVhaztjYXNlIllZWVkiOmU9R0MoNCk7YnJlYWs7Y2FzZSJNIjpjYXNlIkwiOmU9TEMoQUMuTW9udGgsMSwxKTticmVhaztjYXNlIk1NIjpjYXNlIkxMIjplPUxDKEFDLk1vbnRoLDIsMSk7YnJlYWs7Y2FzZSJNTU0iOmU9QkMoVEMuTW9udGhzLGdDLkFiYnJldmlhdGVkKTticmVhaztjYXNlIk1NTU0iOmU9QkMoVEMuTW9udGhzLGdDLldpZGUpO2JyZWFrO2Nhc2UiTU1NTU0iOmU9QkMoVEMuTW9udGhzLGdDLk5hcnJvdyk7YnJlYWs7Y2FzZSJMTEwiOmU9QkMoVEMuTW9udGhzLGdDLkFiYnJldmlhdGVkLGZDLlN0YW5kYWxvbmUpO2JyZWFrO2Nhc2UiTExMTCI6ZT1CQyhUQy5Nb250aHMsZ0MuV2lkZSxmQy5TdGFuZGFsb25lKTticmVhaztjYXNlIkxMTExMIjplPUJDKFRDLk1vbnRocyxnQy5OYXJyb3csZkMuU3RhbmRhbG9uZSk7YnJlYWs7Y2FzZSJ3IjplPVVDKDEpO2JyZWFrO2Nhc2Uid3ciOmU9VUMoMik7YnJlYWs7Y2FzZSJXIjplPVVDKDEsITApO2JyZWFrO2Nhc2UiZCI6ZT1MQyhBQy5EYXRlLDEpO2JyZWFrO2Nhc2UiZGQiOmU9TEMoQUMuRGF0ZSwyKTticmVhaztjYXNlImMiOmNhc2UiY2MiOmU9TEMoQUMuRGF5LDEpO2JyZWFrO2Nhc2UiY2NjIjplPUJDKFRDLkRheXMsZ0MuQWJicmV2aWF0ZWQsZkMuU3RhbmRhbG9uZSk7YnJlYWs7Y2FzZSJjY2NjIjplPUJDKFRDLkRheXMsZ0MuV2lkZSxmQy5TdGFuZGFsb25lKTticmVhaztjYXNlImNjY2NjIjplPUJDKFRDLkRheXMsZ0MuTmFycm93LGZDLlN0YW5kYWxvbmUpO2JyZWFrO2Nhc2UiY2NjY2NjIjplPUJDKFRDLkRheXMsZ0MuU2hvcnQsZkMuU3RhbmRhbG9uZSk7YnJlYWs7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6ZT1CQyhUQy5EYXlzLGdDLkFiYnJldmlhdGVkKTticmVhaztjYXNlIkVFRUUiOmU9QkMoVEMuRGF5cyxnQy5XaWRlKTticmVhaztjYXNlIkVFRUVFIjplPUJDKFRDLkRheXMsZ0MuTmFycm93KTticmVhaztjYXNlIkVFRUVFRSI6ZT1CQyhUQy5EYXlzLGdDLlNob3J0KTticmVhaztjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjplPUJDKFRDLkRheVBlcmlvZHMsZ0MuQWJicmV2aWF0ZWQpO2JyZWFrO2Nhc2UiYWFhYSI6ZT1CQyhUQy5EYXlQZXJpb2RzLGdDLldpZGUpO2JyZWFrO2Nhc2UiYWFhYWEiOmU9QkMoVEMuRGF5UGVyaW9kcyxnQy5OYXJyb3cpO2JyZWFrO2Nhc2UiYiI6Y2FzZSJiYiI6Y2FzZSJiYmIiOmU9QkMoVEMuRGF5UGVyaW9kcyxnQy5BYmJyZXZpYXRlZCxmQy5TdGFuZGFsb25lLCEwKTticmVhaztjYXNlImJiYmIiOmU9QkMoVEMuRGF5UGVyaW9kcyxnQy5XaWRlLGZDLlN0YW5kYWxvbmUsITApO2JyZWFrO2Nhc2UiYmJiYmIiOmU9QkMoVEMuRGF5UGVyaW9kcyxnQy5OYXJyb3csZkMuU3RhbmRhbG9uZSwhMCk7YnJlYWs7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6ZT1CQyhUQy5EYXlQZXJpb2RzLGdDLkFiYnJldmlhdGVkLGZDLkZvcm1hdCwhMCk7YnJlYWs7Y2FzZSJCQkJCIjplPUJDKFRDLkRheVBlcmlvZHMsZ0MuV2lkZSxmQy5Gb3JtYXQsITApO2JyZWFrO2Nhc2UiQkJCQkIiOmU9QkMoVEMuRGF5UGVyaW9kcyxnQy5OYXJyb3csZkMuRm9ybWF0LCEwKTticmVhaztjYXNlImgiOmU9TEMoQUMuSG91cnMsMSwtMTIpO2JyZWFrO2Nhc2UiaGgiOmU9TEMoQUMuSG91cnMsMiwtMTIpO2JyZWFrO2Nhc2UiSCI6ZT1MQyhBQy5Ib3VycywxKTticmVhaztjYXNlIkhIIjplPUxDKEFDLkhvdXJzLDIpO2JyZWFrO2Nhc2UibSI6ZT1MQyhBQy5NaW51dGVzLDEpO2JyZWFrO2Nhc2UibW0iOmU9TEMoQUMuTWludXRlcywyKTticmVhaztjYXNlInMiOmU9TEMoQUMuU2Vjb25kcywxKTticmVhaztjYXNlInNzIjplPUxDKEFDLlNlY29uZHMsMik7YnJlYWs7Y2FzZSJTIjplPUxDKEFDLkZyYWN0aW9uYWxTZWNvbmRzLDEpO2JyZWFrO2Nhc2UiU1MiOmU9TEMoQUMuRnJhY3Rpb25hbFNlY29uZHMsMik7YnJlYWs7Y2FzZSJTU1MiOmU9TEMoQUMuRnJhY3Rpb25hbFNlY29uZHMsMyk7YnJlYWs7Y2FzZSJaIjpjYXNlIlpaIjpjYXNlIlpaWiI6ZT1WQyhSQy5TaG9ydCk7YnJlYWs7Y2FzZSJaWlpaWiI6ZT1WQyhSQy5FeHRlbmRlZCk7YnJlYWs7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6ZT1WQyhSQy5TaG9ydEdNVCk7YnJlYWs7Y2FzZSJPT09PIjpjYXNlIlpaWloiOmNhc2Uienp6eiI6ZT1WQyhSQy5Mb25nKTticmVhaztkZWZhdWx0OnJldHVybiBudWxsfXJldHVybiBXQ1t0XT1lLGV9KSh0KTtkKz1lP2UoaSxuLGwpOiInJyI9PT10PyInIjp0LnJlcGxhY2UoLyheJ3wnJCkvZywiIikucmVwbGFjZSgvJycvZywiJyIpfSkpLGR9ZnVuY3Rpb24gekModCxlLG4pe2NvbnN0IG89bmV3IERhdGUoMCk7cmV0dXJuIG8uc2V0RnVsbFllYXIodCxlLG4pLG8uc2V0SG91cnMoMCwwLDApLG99ZnVuY3Rpb24gSUModCxlKXtjb25zdCBuPShmdW5jdGlvbiBvKHQpe3JldHVybiBMdSh0KVtqdS5Mb2NhbGVJZF19KSh0KTtpZihEQ1tuXT1EQ1tuXXx8e30sRENbbl1bZV0pcmV0dXJuIERDW25dW2VdO2xldCBpPSIiO3N3aXRjaChlKXtjYXNlInNob3J0RGF0ZSI6aT1fQyh0LGhDLlNob3J0KTticmVhaztjYXNlIm1lZGl1bURhdGUiOmk9X0ModCxoQy5NZWRpdW0pO2JyZWFrO2Nhc2UibG9uZ0RhdGUiOmk9X0ModCxoQy5Mb25nKTticmVhaztjYXNlImZ1bGxEYXRlIjppPV9DKHQsaEMuRnVsbCk7YnJlYWs7Y2FzZSJzaG9ydFRpbWUiOmk9Q0ModCxoQy5TaG9ydCk7YnJlYWs7Y2FzZSJtZWRpdW1UaW1lIjppPUNDKHQsaEMuTWVkaXVtKTticmVhaztjYXNlImxvbmdUaW1lIjppPUNDKHQsaEMuTG9uZyk7YnJlYWs7Y2FzZSJmdWxsVGltZSI6aT1DQyh0LGhDLkZ1bGwpO2JyZWFrO2Nhc2Uic2hvcnQiOmNvbnN0IGU9SUModCwic2hvcnRUaW1lIiksbj1JQyh0LCJzaG9ydERhdGUiKTtpPUhDKE1DKHQsaEMuU2hvcnQpLFtlLG5dKTticmVhaztjYXNlIm1lZGl1bSI6Y29uc3Qgbz1JQyh0LCJtZWRpdW1UaW1lIiksYT1JQyh0LCJtZWRpdW1EYXRlIik7aT1IQyhNQyh0LGhDLk1lZGl1bSksW28sYV0pO2JyZWFrO2Nhc2UibG9uZyI6Y29uc3Qgcj1JQyh0LCJsb25nVGltZSIpLHM9SUModCwibG9uZ0RhdGUiKTtpPUhDKE1DKHQsaEMuTG9uZyksW3Isc10pO2JyZWFrO2Nhc2UiZnVsbCI6Y29uc3QgbD1JQyh0LCJmdWxsVGltZSIpLGM9SUModCwiZnVsbERhdGUiKTtpPUhDKE1DKHQsaEMuRnVsbCksW2wsY10pfXJldHVybiBpJiYoRENbbl1bZV09aSksaX1mdW5jdGlvbiBIQyh0LGUpe3JldHVybiBlJiYodD10LnJlcGxhY2UoL1x7KFtefV0rKX0vZywoZnVuY3Rpb24odCxuKXtyZXR1cm4gbnVsbCE9ZSYmbiBpbiBlP2Vbbl06dH0pKSksdH1mdW5jdGlvbiBGQyh0LGUsbj0iLSIsbyxpKXtsZXQgYT0iIjsodDwwfHxpJiZ0PD0wKSYmKGk/dD0xLXQ6KHQ9LXQsYT1uKSk7bGV0IHI9U3RyaW5nKHQpO2Zvcig7ci5sZW5ndGg8ZTspcj0iMCIrcjtyZXR1cm4gbyYmKHI9ci5zdWJzdHIoci5sZW5ndGgtZSkpLGErcn1mdW5jdGlvbiBMQyh0LGUsbj0wLG89ITEsaT0hMSl7cmV0dXJuIGZ1bmN0aW9uKGEscil7bGV0IHM9KGZ1bmN0aW9uIGwodCxlKXtzd2l0Y2godCl7Y2FzZSBBQy5GdWxsWWVhcjpyZXR1cm4gZS5nZXRGdWxsWWVhcigpO2Nhc2UgQUMuTW9udGg6cmV0dXJuIGUuZ2V0TW9udGgoKTtjYXNlIEFDLkRhdGU6cmV0dXJuIGUuZ2V0RGF0ZSgpO2Nhc2UgQUMuSG91cnM6cmV0dXJuIGUuZ2V0SG91cnMoKTtjYXNlIEFDLk1pbnV0ZXM6cmV0dXJuIGUuZ2V0TWludXRlcygpO2Nhc2UgQUMuU2Vjb25kczpyZXR1cm4gZS5nZXRTZWNvbmRzKCk7Y2FzZSBBQy5GcmFjdGlvbmFsU2Vjb25kczpyZXR1cm4gZS5nZXRNaWxsaXNlY29uZHMoKTtjYXNlIEFDLkRheTpyZXR1cm4gZS5nZXREYXkoKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5rbm93biBEYXRlVHlwZSB2YWx1ZSAiJHt0fSIuYCl9fSkodCxhKTtpZigobj4wfHxzPi1uKSYmKHMrPW4pLHQ9PT1BQy5Ib3VycykwPT09cyYmLTEyPT09biYmKHM9MTIpO2Vsc2UgaWYodD09PUFDLkZyYWN0aW9uYWxTZWNvbmRzKXJldHVybihmdW5jdGlvbiBjKHQsZSl7cmV0dXJuIEZDKHQsMykuc3Vic3RyKDAsZSl9KShzLGUpO2NvbnN0IGQ9dkMocixiQy5NaW51c1NpZ24pO3JldHVybiBGQyhzLGUsZCxvLGkpfX1mdW5jdGlvbiBCQyh0LGUsbj1mQy5Gb3JtYXQsbz0hMSl7cmV0dXJuIGZ1bmN0aW9uKGksYSl7cmV0dXJuKGZ1bmN0aW9uIHIodCxlLG4sbyxpLGEpe3N3aXRjaChuKXtjYXNlIFRDLk1vbnRoczpyZXR1cm4oZnVuY3Rpb24gcih0LGUsbil7Y29uc3Qgbz1MdSh0KSxpPXdDKFtvW2p1Lk1vbnRoc0Zvcm1hdF0sb1tqdS5Nb250aHNTdGFuZGFsb25lXV0sZSk7cmV0dXJuIHdDKGksbil9KShlLGksbylbdC5nZXRNb250aCgpXTtjYXNlIFRDLkRheXM6cmV0dXJuKGZ1bmN0aW9uIHModCxlLG4pe2NvbnN0IG89THUodCksaT13Qyhbb1tqdS5EYXlzRm9ybWF0XSxvW2p1LkRheXNTdGFuZGFsb25lXV0sZSk7cmV0dXJuIHdDKGksbil9KShlLGksbylbdC5nZXREYXkoKV07Y2FzZSBUQy5EYXlQZXJpb2RzOmNvbnN0IHI9dC5nZXRIb3VycygpLHM9dC5nZXRNaW51dGVzKCk7aWYoYSl7Y29uc3QgdD0oZnVuY3Rpb24gbCh0KXtjb25zdCBlPUx1KHQpO3JldHVybiBQQyhlKSwoZVtqdS5FeHRyYURhdGFdWzJdfHxbXSkubWFwKCh0PT4ic3RyaW5nIj09dHlwZW9mIHQ/a0ModCk6W2tDKHRbMF0pLGtDKHRbMV0pXSkpfSkoZSksbj0oZnVuY3Rpb24gYyh0LGUsbil7Y29uc3Qgbz1MdSh0KTtQQyhvKTtjb25zdCBpPXdDKFtvW2p1LkV4dHJhRGF0YV1bMF0sb1tqdS5FeHRyYURhdGFdWzFdXSxlKXx8W107cmV0dXJuIHdDKGksbil8fFtdfSkoZSxpLG8pLGE9dC5maW5kSW5kZXgoKHQ9PntpZihBcnJheS5pc0FycmF5KHQpKXtjb25zdFtlLG5dPXQsbz1yPj1lLmhvdXJzJiZzPj1lLm1pbnV0ZXMsaT1yPG4uaG91cnN8fHI9PT1uLmhvdXJzJiZzPG4ubWludXRlcztpZihlLmhvdXJzPG4uaG91cnMpe2lmKG8mJmkpcmV0dXJuITB9ZWxzZSBpZihvfHxpKXJldHVybiEwfWVsc2UgaWYodC5ob3Vycz09PXImJnQubWludXRlcz09PXMpcmV0dXJuITA7cmV0dXJuITF9KSk7aWYoLTEhPT1hKXJldHVybiBuW2FdfXJldHVybihmdW5jdGlvbiBkKHQsZSxuKXtjb25zdCBvPUx1KHQpLGk9d0MoW29banUuRGF5UGVyaW9kc0Zvcm1hdF0sb1tqdS5EYXlQZXJpb2RzU3RhbmRhbG9uZV1dLGUpO3JldHVybiB3QyhpLG4pfSkoZSxpLG8pW3I8MTI/MDoxXTtjYXNlIFRDLkVyYXM6cmV0dXJuKGZ1bmN0aW9uIHAodCxlKXtyZXR1cm4gd0MoTHUodClbanUuRXJhc10sZSl9KShlLG8pW3QuZ2V0RnVsbFllYXIoKTw9MD8wOjFdO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHRyYW5zbGF0aW9uIHR5cGUgJHtufWApfX0pKGksYSx0LGUsbixvKX19ZnVuY3Rpb24gVkModCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixvKXtjb25zdCBpPS0xKm8sYT12QyhuLGJDLk1pbnVzU2lnbikscj1pPjA/TWF0aC5mbG9vcihpLzYwKTpNYXRoLmNlaWwoaS82MCk7c3dpdGNoKHQpe2Nhc2UgUkMuU2hvcnQ6cmV0dXJuKGk+PTA/IisiOiIiKStGQyhyLDIsYSkrRkMoTWF0aC5hYnMoaSU2MCksMixhKTtjYXNlIFJDLlNob3J0R01UOnJldHVybiJHTVQiKyhpPj0wPyIrIjoiIikrRkMociwxLGEpO2Nhc2UgUkMuTG9uZzpyZXR1cm4iR01UIisoaT49MD8iKyI6IiIpK0ZDKHIsMixhKSsiOiIrRkMoTWF0aC5hYnMoaSU2MCksMixhKTtjYXNlIFJDLkV4dGVuZGVkOnJldHVybiAwPT09bz8iWiI6KGk+PTA/IisiOiIiKStGQyhyLDIsYSkrIjoiK0ZDKE1hdGguYWJzKGklNjApLDIsYSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gem9uZSB3aWR0aCAiJHt0fSJgKX19fWZ1bmN0aW9uIGpDKHQpe3JldHVybiB6Qyh0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpLHQuZ2V0RGF0ZSgpKyg0LXQuZ2V0RGF5KCkpKX1mdW5jdGlvbiBVQyh0LGU9ITEpe3JldHVybiBmdW5jdGlvbihuLG8pe2xldCBpO2lmKGUpe2NvbnN0IHQ9bmV3IERhdGUobi5nZXRGdWxsWWVhcigpLG4uZ2V0TW9udGgoKSwxKS5nZXREYXkoKS0xLGU9bi5nZXREYXRlKCk7aT0xK01hdGguZmxvb3IoKGUrdCkvNyl9ZWxzZXtjb25zdCB0PWpDKG4pLGU9KGZ1bmN0aW9uIGEodCl7Y29uc3QgZT16Qyh0LDAsMSkuZ2V0RGF5KCk7cmV0dXJuIHpDKHQsMCwxKyhlPD00PzQ6MTEpLWUpfSkodC5nZXRGdWxsWWVhcigpKSxvPXQuZ2V0VGltZSgpLWUuZ2V0VGltZSgpO2k9MStNYXRoLnJvdW5kKG8vNjA0OGU1KX1yZXR1cm4gRkMoaSx0LHZDKG8sYkMuTWludXNTaWduKSl9fWZ1bmN0aW9uIEdDKHQsZT0hMSl7cmV0dXJuIGZ1bmN0aW9uKG4sbyl7cmV0dXJuIEZDKGpDKG4pLmdldEZ1bGxZZWFyKCksdCx2QyhvLGJDLk1pbnVzU2lnbiksZSl9fSEoZnVuY3Rpb24odCl7dFt0LlNob3J0PTBdPSJTaG9ydCIsdFt0LlNob3J0R01UPTFdPSJTaG9ydEdNVCIsdFt0Lkxvbmc9Ml09IkxvbmciLHRbdC5FeHRlbmRlZD0zXT0iRXh0ZW5kZWQifSkoUkN8fChSQz17fSkpLChmdW5jdGlvbih0KXt0W3QuRnVsbFllYXI9MF09IkZ1bGxZZWFyIix0W3QuTW9udGg9MV09Ik1vbnRoIix0W3QuRGF0ZT0yXT0iRGF0ZSIsdFt0LkhvdXJzPTNdPSJIb3VycyIsdFt0Lk1pbnV0ZXM9NF09Ik1pbnV0ZXMiLHRbdC5TZWNvbmRzPTVdPSJTZWNvbmRzIix0W3QuRnJhY3Rpb25hbFNlY29uZHM9Nl09IkZyYWN0aW9uYWxTZWNvbmRzIix0W3QuRGF5PTddPSJEYXkifSkoQUN8fChBQz17fSkpLChmdW5jdGlvbih0KXt0W3QuRGF5UGVyaW9kcz0wXT0iRGF5UGVyaW9kcyIsdFt0LkRheXM9MV09IkRheXMiLHRbdC5Nb250aHM9Ml09Ik1vbnRocyIsdFt0LkVyYXM9M109IkVyYXMifSkoVEN8fChUQz17fSkpO2NvbnN0IFdDPXt9O2Z1bmN0aW9uIFlDKHQsZSl7dD10LnJlcGxhY2UoLzovZywiIik7Y29uc3Qgbj1EYXRlLnBhcnNlKCJKYW4gMDEsIDE5NzAgMDA6MDA6MDAgIit0KS82ZTQ7cmV0dXJuIGlzTmFOKG4pP2U6bn1mdW5jdGlvbiBxQyh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGUmJiFpc05hTih0LnZhbHVlT2YoKSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFpDPS9eKFxkKyk/XC4oKFxkKykoLShcZCspKT8pPyQvLFhDPSIuIixLQz0iMCI7ZnVuY3Rpb24gSkModCxlLG4sbyxpLGEscj0hMSl7bGV0IHM9IiIsbD0hMTtpZihpc0Zpbml0ZSh0KSl7bGV0IGM9KGZ1bmN0aW9uIGModCl7bGV0IGUsbixvLGksYSxyPU1hdGguYWJzKHQpKyIiLHM9MDtmb3IoKG49ci5pbmRleE9mKFhDKSk+LTEmJihyPXIucmVwbGFjZShYQywiIikpLChvPXIuc2VhcmNoKC9lL2kpKT4wPyhuPDAmJihuPW8pLG4rPStyLnNsaWNlKG8rMSkscj1yLnN1YnN0cmluZygwLG8pKTpuPDAmJihuPXIubGVuZ3RoKSxvPTA7ci5jaGFyQXQobyk9PT1LQztvKyspO2lmKG89PT0oYT1yLmxlbmd0aCkpZT1bMF0sbj0xO2Vsc2V7Zm9yKGEtLTtyLmNoYXJBdChhKT09PUtDOylhLS07Zm9yKG4tPW8sZT1bXSxpPTA7bzw9YTtvKyssaSsrKWVbaV09TnVtYmVyKHIuY2hhckF0KG8pKX1yZXR1cm4gbj4yMiYmKGU9ZS5zcGxpY2UoMCwyMSkscz1uLTEsbj0xKSx7ZGlnaXRzOmUsZXhwb25lbnQ6cyxpbnRlZ2VyTGVuOm59fSkodCk7ciYmKGM9KGZ1bmN0aW9uIGQodCl7aWYoMD09PXQuZGlnaXRzWzBdKXJldHVybiB0O2NvbnN0IGU9dC5kaWdpdHMubGVuZ3RoLXQuaW50ZWdlckxlbjtyZXR1cm4gdC5leHBvbmVudD90LmV4cG9uZW50Kz0yOigwPT09ZT90LmRpZ2l0cy5wdXNoKDAsMCk6MT09PWUmJnQuZGlnaXRzLnB1c2goMCksdC5pbnRlZ2VyTGVuKz0yKSx0fSkoYykpO2xldCBkPWUubWluSW50LHA9ZS5taW5GcmFjLG09ZS5tYXhGcmFjO2lmKGEpe2NvbnN0IHQ9YS5tYXRjaChaQyk7aWYobnVsbD09PXQpdGhyb3cgbmV3IEVycm9yKGAke2F9IGlzIG5vdCBhIHZhbGlkIGRpZ2l0IGluZm9gKTtjb25zdCBlPXRbMV0sbj10WzNdLG89dFs1XTtudWxsIT1lJiYoZD10TShlKSksbnVsbCE9biYmKHA9dE0obikpLG51bGwhPW8/bT10TShvKTpudWxsIT1uJiZwPm0mJihtPXApfSEoZnVuY3Rpb24gcCh0LGUsbil7aWYoZT5uKXRocm93IG5ldyBFcnJvcihgVGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciBmcmFjdGlvbiAoJHtlfSkgaXMgaGlnaGVyIHRoYW4gdGhlIG1heGltdW0gKCR7bn0pLmApO2xldCBvPXQuZGlnaXRzLGk9by5sZW5ndGgtdC5pbnRlZ2VyTGVuO2NvbnN0IGE9TWF0aC5taW4oTWF0aC5tYXgoZSxpKSxuKTtsZXQgcj1hK3QuaW50ZWdlckxlbixzPW9bcl07aWYocj4wKXtvLnNwbGljZShNYXRoLm1heCh0LmludGVnZXJMZW4scikpO2ZvcihsZXQgdD1yO3Q8by5sZW5ndGg7dCsrKW9bdF09MH1lbHNle2k9TWF0aC5tYXgoMCxpKSx0LmludGVnZXJMZW49MSxvLmxlbmd0aD1NYXRoLm1heCgxLHI9YSsxKSxvWzBdPTA7Zm9yKGxldCB0PTE7dDxyO3QrKylvW3RdPTB9aWYocz49NSlpZihyLTE8MCl7Zm9yKGxldCBlPTA7ZT5yO2UtLSlvLnVuc2hpZnQoMCksdC5pbnRlZ2VyTGVuKys7by51bnNoaWZ0KDEpLHQuaW50ZWdlckxlbisrfWVsc2Ugb1tyLTFdKys7Zm9yKDtpPE1hdGgubWF4KDAsYSk7aSsrKW8ucHVzaCgwKTtsZXQgbD0wIT09YTtjb25zdCBjPWUrdC5pbnRlZ2VyTGVuLGQ9by5yZWR1Y2VSaWdodCgoZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIG9bbl09KGUrPXQpPDEwP2U6ZS0xMCxsJiYoMD09PW9bbl0mJm4+PWM/by5wb3AoKTpsPSExKSxlPj0xMD8xOjB9KSwwKTtkJiYoby51bnNoaWZ0KGQpLHQuaW50ZWdlckxlbisrKX0pKGMscCxtKTtsZXQgdT1jLmRpZ2l0cyxmPWMuaW50ZWdlckxlbjtjb25zdCBnPWMuZXhwb25lbnQ7bGV0IGg9W107Zm9yKGw9dS5ldmVyeSgodD0+IXQpKTtmPGQ7ZisrKXUudW5zaGlmdCgwKTtmb3IoO2Y8MDtmKyspdS51bnNoaWZ0KDApO2Y+MD9oPXUuc3BsaWNlKGYsdS5sZW5ndGgpOihoPXUsdT1bMF0pO2NvbnN0IGI9W107Zm9yKHUubGVuZ3RoPj1lLmxnU2l6ZSYmYi51bnNoaWZ0KHUuc3BsaWNlKC1lLmxnU2l6ZSx1Lmxlbmd0aCkuam9pbigiIikpO3UubGVuZ3RoPmUuZ1NpemU7KWIudW5zaGlmdCh1LnNwbGljZSgtZS5nU2l6ZSx1Lmxlbmd0aCkuam9pbigiIikpO3UubGVuZ3RoJiZiLnVuc2hpZnQodS5qb2luKCIiKSkscz1iLmpvaW4odkMobixvKSksaC5sZW5ndGgmJihzKz12QyhuLGkpK2guam9pbigiIikpLGcmJihzKz12QyhuLGJDLkV4cG9uZW50aWFsKSsiKyIrZyl9ZWxzZSBzPXZDKG4sYkMuSW5maW5pdHkpO3JldHVybiBzPXQ8MCYmIWw/ZS5uZWdQcmUrcytlLm5lZ1N1ZjplLnBvc1ByZStzK2UucG9zU3VmLHN9ZnVuY3Rpb24gUUModCxlLG4pe3JldHVybiBKQyh0LCRDKHhDKGUsbUMuRGVjaW1hbCksdkMoZSxiQy5NaW51c1NpZ24pKSxlLGJDLkdyb3VwLGJDLkRlY2ltYWwsbil9ZnVuY3Rpb24gJEModCxlPSItIil7Y29uc3Qgbj17bWluSW50OjEsbWluRnJhYzowLG1heEZyYWM6MCxwb3NQcmU6IiIscG9zU3VmOiIiLG5lZ1ByZToiIixuZWdTdWY6IiIsZ1NpemU6MCxsZ1NpemU6MH0sbz10LnNwbGl0KCI7IiksaT1vWzBdLGE9b1sxXSxyPS0xIT09aS5pbmRleE9mKFhDKT9pLnNwbGl0KFhDKTpbaS5zdWJzdHJpbmcoMCxpLmxhc3RJbmRleE9mKEtDKSsxKSxpLnN1YnN0cmluZyhpLmxhc3RJbmRleE9mKEtDKSsxKV0scz1yWzBdLGw9clsxXXx8IiI7bi5wb3NQcmU9cy5zdWJzdHIoMCxzLmluZGV4T2YoIiMiKSk7Zm9yKGxldCB0PTA7dDxsLmxlbmd0aDt0Kyspe2NvbnN0IGU9bC5jaGFyQXQodCk7ZT09PUtDP24ubWluRnJhYz1uLm1heEZyYWM9dCsxOiIjIj09PWU/bi5tYXhGcmFjPXQrMTpuLnBvc1N1Zis9ZX1jb25zdCBjPXMuc3BsaXQoIiwiKTtpZihuLmdTaXplPWNbMV0/Y1sxXS5sZW5ndGg6MCxuLmxnU2l6ZT1jWzJdfHxjWzFdPyhjWzJdfHxjWzFdKS5sZW5ndGg6MCxhKXtjb25zdCB0PWkubGVuZ3RoLW4ucG9zUHJlLmxlbmd0aC1uLnBvc1N1Zi5sZW5ndGgsZT1hLmluZGV4T2YoIiMiKTtuLm5lZ1ByZT1hLnN1YnN0cigwLGUpLnJlcGxhY2UoLycvZywiIiksbi5uZWdTdWY9YS5zdWJzdHIoZSt0KS5yZXBsYWNlKC8nL2csIiIpfWVsc2Ugbi5uZWdQcmU9ZStuLnBvc1ByZSxuLm5lZ1N1Zj1uLnBvc1N1ZjtyZXR1cm4gbn1mdW5jdGlvbiB0TSh0KXtjb25zdCBlPXBhcnNlSW50KHQpO2lmKGlzTmFOKGUpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBpbnRlZ2VyIGxpdGVyYWwgd2hlbiBwYXJzaW5nICIrdCk7cmV0dXJuIGV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGVNe31mdW5jdGlvbiBuTSh0LGUsbixvKXtsZXQgaT1gPSR7dH1gO2lmKGUuaW5kZXhPZihpKT4tMSlyZXR1cm4gaTtpZihpPW4uZ2V0UGx1cmFsQ2F0ZWdvcnkodCxvKSxlLmluZGV4T2YoaSk+LTEpcmV0dXJuIGk7aWYoZS5pbmRleE9mKCJvdGhlciIpPi0xKXJldHVybiJvdGhlciI7dGhyb3cgbmV3IEVycm9yKGBObyBwbHVyYWwgbWVzc2FnZSBmb3VuZCBmb3IgdmFsdWUgIiR7dH0iYCl9Y2xhc3Mgb00gZXh0ZW5kcyBlTXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMubG9jYWxlPXR9Z2V0UGx1cmFsQ2F0ZWdvcnkodCxlKXtzd2l0Y2goT0MoZXx8dGhpcy5sb2NhbGUpKHQpKXtjYXNlIHVDLlplcm86cmV0dXJuInplcm8iO2Nhc2UgdUMuT25lOnJldHVybiJvbmUiO2Nhc2UgdUMuVHdvOnJldHVybiJ0d28iO2Nhc2UgdUMuRmV3OnJldHVybiJmZXciO2Nhc2UgdUMuTWFueTpyZXR1cm4ibWFueSI7ZGVmYXVsdDpyZXR1cm4ib3RoZXIifX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBpTSh0LGUpe2U9ZW5jb2RlVVJJQ29tcG9uZW50KGUpO2Zvcihjb25zdCBuIG9mIHQuc3BsaXQoIjsiKSl7Y29uc3QgdD1uLmluZGV4T2YoIj0iKSxbbyxpXT0tMT09dD9bbiwiIl06W24uc2xpY2UoMCx0KSxuLnNsaWNlKHQrMSldO2lmKG8udHJpbSgpPT09ZSlyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGkpfXJldHVybiBudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9vTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b00pKHZyKFd5KSl9LG9NLsm1cHJvdj1Nbih7dG9rZW46b00sZmFjdG9yeTpvTS7JtWZhY30pLG9NLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1d5XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvTSxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1d5XX1dfV19KSxudWxsKTtjbGFzcyBhTXtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9pdGVyYWJsZURpZmZlcnM9dCx0aGlzLl9rZXlWYWx1ZURpZmZlcnM9ZSx0aGlzLl9uZ0VsPW4sdGhpcy5fcmVuZGVyZXI9byx0aGlzLl9pdGVyYWJsZURpZmZlcj1udWxsLHRoaXMuX2tleVZhbHVlRGlmZmVyPW51bGwsdGhpcy5faW5pdGlhbENsYXNzZXM9W10sdGhpcy5fcmF3Q2xhc3M9bnVsbH1zZXQga2xhc3ModCl7dGhpcy5fcmVtb3ZlQ2xhc3Nlcyh0aGlzLl9pbml0aWFsQ2xhc3NlcyksdGhpcy5faW5pdGlhbENsYXNzZXM9InN0cmluZyI9PXR5cGVvZiB0P3Quc3BsaXQoL1xzKy8pOltdLHRoaXMuX2FwcGx5Q2xhc3Nlcyh0aGlzLl9pbml0aWFsQ2xhc3NlcyksdGhpcy5fYXBwbHlDbGFzc2VzKHRoaXMuX3Jhd0NsYXNzKX1zZXQgbmdDbGFzcyh0KXt0aGlzLl9yZW1vdmVDbGFzc2VzKHRoaXMuX3Jhd0NsYXNzKSx0aGlzLl9hcHBseUNsYXNzZXModGhpcy5faW5pdGlhbENsYXNzZXMpLHRoaXMuX2l0ZXJhYmxlRGlmZmVyPW51bGwsdGhpcy5fa2V5VmFsdWVEaWZmZXI9bnVsbCx0aGlzLl9yYXdDbGFzcz0ic3RyaW5nIj09dHlwZW9mIHQ/dC5zcGxpdCgvXHMrLyk6dCx0aGlzLl9yYXdDbGFzcyYmKE5wKHRoaXMuX3Jhd0NsYXNzKT90aGlzLl9pdGVyYWJsZURpZmZlcj10aGlzLl9pdGVyYWJsZURpZmZlcnMuZmluZCh0aGlzLl9yYXdDbGFzcykuY3JlYXRlKCk6dGhpcy5fa2V5VmFsdWVEaWZmZXI9dGhpcy5fa2V5VmFsdWVEaWZmZXJzLmZpbmQodGhpcy5fcmF3Q2xhc3MpLmNyZWF0ZSgpKX1uZ0RvQ2hlY2soKXtpZih0aGlzLl9pdGVyYWJsZURpZmZlcil7Y29uc3QgdD10aGlzLl9pdGVyYWJsZURpZmZlci5kaWZmKHRoaXMuX3Jhd0NsYXNzKTt0JiZ0aGlzLl9hcHBseUl0ZXJhYmxlQ2hhbmdlcyh0KX1lbHNlIGlmKHRoaXMuX2tleVZhbHVlRGlmZmVyKXtjb25zdCB0PXRoaXMuX2tleVZhbHVlRGlmZmVyLmRpZmYodGhpcy5fcmF3Q2xhc3MpO3QmJnRoaXMuX2FwcGx5S2V5VmFsdWVDaGFuZ2VzKHQpfX1fYXBwbHlLZXlWYWx1ZUNoYW5nZXModCl7dC5mb3JFYWNoQWRkZWRJdGVtKCh0PT50aGlzLl90b2dnbGVDbGFzcyh0LmtleSx0LmN1cnJlbnRWYWx1ZSkpKSx0LmZvckVhY2hDaGFuZ2VkSXRlbSgodD0+dGhpcy5fdG9nZ2xlQ2xhc3ModC5rZXksdC5jdXJyZW50VmFsdWUpKSksdC5mb3JFYWNoUmVtb3ZlZEl0ZW0oKHQ9Pnt0LnByZXZpb3VzVmFsdWUmJnRoaXMuX3RvZ2dsZUNsYXNzKHQua2V5LCExKX0pKX1fYXBwbHlJdGVyYWJsZUNoYW5nZXModCl7dC5mb3JFYWNoQWRkZWRJdGVtKCh0PT57aWYoInN0cmluZyIhPXR5cGVvZiB0Lml0ZW0pdGhyb3cgbmV3IEVycm9yKGBOZ0NsYXNzIGNhbiBvbmx5IHRvZ2dsZSBDU1MgY2xhc3NlcyBleHByZXNzZWQgYXMgc3RyaW5ncywgZ290ICR7R2UodC5pdGVtKX1gKTt0aGlzLl90b2dnbGVDbGFzcyh0Lml0ZW0sITApfSkpLHQuZm9yRWFjaFJlbW92ZWRJdGVtKCh0PT50aGlzLl90b2dnbGVDbGFzcyh0Lml0ZW0sITEpKSl9X2FwcGx5Q2xhc3Nlcyh0KXt0JiYoQXJyYXkuaXNBcnJheSh0KXx8dCBpbnN0YW5jZW9mIFNldD90LmZvckVhY2goKHQ9PnRoaXMuX3RvZ2dsZUNsYXNzKHQsITApKSk6T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZT0+dGhpcy5fdG9nZ2xlQ2xhc3MoZSwhIXRbZV0pKSkpfV9yZW1vdmVDbGFzc2VzKHQpe3QmJihBcnJheS5pc0FycmF5KHQpfHx0IGluc3RhbmNlb2YgU2V0P3QuZm9yRWFjaCgodD0+dGhpcy5fdG9nZ2xlQ2xhc3ModCwhMSkpKTpPYmplY3Qua2V5cyh0KS5mb3JFYWNoKCh0PT50aGlzLl90b2dnbGVDbGFzcyh0LCExKSkpKX1fdG9nZ2xlQ2xhc3ModCxlKXsodD10LnRyaW0oKSkmJnQuc3BsaXQoL1xzKy9nKS5mb3JFYWNoKCh0PT57ZT90aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQsdCk6dGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LHQpfSkpfX1hTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YU0pKFNtKEhnKSxTbShMZyksU20oaGcpLFNtKENnKSl9LGFNLsm1ZGlyPWxvKHt0eXBlOmFNLHNlbGVjdG9yczpbWyIiLCJuZ0NsYXNzIiwiIl1dLGlucHV0czp7a2xhc3M6WyJjbGFzcyIsImtsYXNzIl0sbmdDbGFzczoibmdDbGFzcyJ9fSksYU0uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpIZ30se3R5cGU6TGd9LHt0eXBlOmhnfSx7dHlwZTpDZ31dLGFNLnByb3BEZWNvcmF0b3JzPXtrbGFzczpbe3R5cGU6eHksYXJnczpbImNsYXNzIl19XSxuZ0NsYXNzOlt7dHlwZTp4eSxhcmdzOlsibmdDbGFzcyJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYU0sW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW25nQ2xhc3NdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkhnfSx7dHlwZTpMZ30se3R5cGU6aGd9LHt0eXBlOkNnfV19KSx7a2xhc3M6W3t0eXBlOnh5LGFyZ3M6WyJjbGFzcyJdfV0sbmdDbGFzczpbe3R5cGU6eHksYXJnczpbIm5nQ2xhc3MiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyByTXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl92aWV3Q29udGFpbmVyUmVmPXQsdGhpcy5fY29tcG9uZW50UmVmPW51bGwsdGhpcy5fbW9kdWxlUmVmPW51bGx9bmdPbkNoYW5nZXModCl7aWYodGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpLHRoaXMuX2NvbXBvbmVudFJlZj1udWxsLHRoaXMubmdDb21wb25lbnRPdXRsZXQpe2NvbnN0IGU9dGhpcy5uZ0NvbXBvbmVudE91dGxldEluamVjdG9yfHx0aGlzLl92aWV3Q29udGFpbmVyUmVmLnBhcmVudEluamVjdG9yO2lmKHQubmdDb21wb25lbnRPdXRsZXROZ01vZHVsZUZhY3RvcnkpaWYodGhpcy5fbW9kdWxlUmVmJiZ0aGlzLl9tb2R1bGVSZWYuZGVzdHJveSgpLHRoaXMubmdDb21wb25lbnRPdXRsZXROZ01vZHVsZUZhY3Rvcnkpe2NvbnN0IHQ9ZS5nZXQodGgpO3RoaXMuX21vZHVsZVJlZj10aGlzLm5nQ29tcG9uZW50T3V0bGV0TmdNb2R1bGVGYWN0b3J5LmNyZWF0ZSh0LmluamVjdG9yKX1lbHNlIHRoaXMuX21vZHVsZVJlZj1udWxsO2NvbnN0IG49KHRoaXMuX21vZHVsZVJlZj90aGlzLl9tb2R1bGVSZWYuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOmUuZ2V0KHVnKSkucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5uZ0NvbXBvbmVudE91dGxldCk7dGhpcy5fY29tcG9uZW50UmVmPXRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KG4sdGhpcy5fdmlld0NvbnRhaW5lclJlZi5sZW5ndGgsZSx0aGlzLm5nQ29tcG9uZW50T3V0bGV0Q29udGVudCl9fW5nT25EZXN0cm95KCl7dGhpcy5fbW9kdWxlUmVmJiZ0aGlzLl9tb2R1bGVSZWYuZGVzdHJveSgpfX1yTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ck0pKFNtKGVoKSl9LHJNLsm1ZGlyPWxvKHt0eXBlOnJNLHNlbGVjdG9yczpbWyIiLCJuZ0NvbXBvbmVudE91dGxldCIsIiJdXSxpbnB1dHM6e25nQ29tcG9uZW50T3V0bGV0OiJuZ0NvbXBvbmVudE91dGxldCIsbmdDb21wb25lbnRPdXRsZXRJbmplY3RvcjoibmdDb21wb25lbnRPdXRsZXRJbmplY3RvciIsbmdDb21wb25lbnRPdXRsZXRDb250ZW50OiJuZ0NvbXBvbmVudE91dGxldENvbnRlbnQiLG5nQ29tcG9uZW50T3V0bGV0TmdNb2R1bGVGYWN0b3J5OiJuZ0NvbXBvbmVudE91dGxldE5nTW9kdWxlRmFjdG9yeSJ9LGZlYXR1cmVzOltCb119KSxyTS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmVofV0sck0ucHJvcERlY29yYXRvcnM9e25nQ29tcG9uZW50T3V0bGV0Olt7dHlwZTp4eX1dLG5nQ29tcG9uZW50T3V0bGV0SW5qZWN0b3I6W3t0eXBlOnh5fV0sbmdDb21wb25lbnRPdXRsZXRDb250ZW50Olt7dHlwZTp4eX1dLG5nQ29tcG9uZW50T3V0bGV0TmdNb2R1bGVGYWN0b3J5Olt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHJNLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltuZ0NvbXBvbmVudE91dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZWh9XX0pLHtuZ0NvbXBvbmVudE91dGxldDpbe3R5cGU6eHl9XSxuZ0NvbXBvbmVudE91dGxldEluamVjdG9yOlt7dHlwZTp4eX1dLG5nQ29tcG9uZW50T3V0bGV0Q29udGVudDpbe3R5cGU6eHl9XSxuZ0NvbXBvbmVudE91dGxldE5nTW9kdWxlRmFjdG9yeTpbe3R5cGU6eHl9XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3Mgc017Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy4kaW1wbGljaXQ9dCx0aGlzLm5nRm9yT2Y9ZSx0aGlzLmluZGV4PW4sdGhpcy5jb3VudD1vfWdldCBmaXJzdCgpe3JldHVybiAwPT09dGhpcy5pbmRleH1nZXQgbGFzdCgpe3JldHVybiB0aGlzLmluZGV4PT09dGhpcy5jb3VudC0xfWdldCBldmVuKCl7cmV0dXJuIHRoaXMuaW5kZXglMj09MH1nZXQgb2RkKCl7cmV0dXJuIXRoaXMuZXZlbn19Y2xhc3MgbE17Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX3ZpZXdDb250YWluZXI9dCx0aGlzLl90ZW1wbGF0ZT1lLHRoaXMuX2RpZmZlcnM9bix0aGlzLl9uZ0Zvck9mPW51bGwsdGhpcy5fbmdGb3JPZkRpcnR5PSEwLHRoaXMuX2RpZmZlcj1udWxsfXNldCBuZ0Zvck9mKHQpe3RoaXMuX25nRm9yT2Y9dCx0aGlzLl9uZ0Zvck9mRGlydHk9ITB9c2V0IG5nRm9yVHJhY2tCeSh0KXsidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8bnVsbD09dHx8ImZ1bmN0aW9uIj09dHlwZW9mIHR8fGNvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKGB0cmFja0J5IG11c3QgYmUgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkodCl9LiBTZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb21tb24vTmdGb3JPZiNjaGFuZ2UtcHJvcGFnYXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksdGhpcy5fdHJhY2tCeUZuPXR9Z2V0IG5nRm9yVHJhY2tCeSgpe3JldHVybiB0aGlzLl90cmFja0J5Rm59c2V0IG5nRm9yVGVtcGxhdGUodCl7dCYmKHRoaXMuX3RlbXBsYXRlPXQpfW5nRG9DaGVjaygpe2lmKHRoaXMuX25nRm9yT2ZEaXJ0eSl7dGhpcy5fbmdGb3JPZkRpcnR5PSExO2NvbnN0IHQ9dGhpcy5fbmdGb3JPZjtpZighdGhpcy5fZGlmZmVyJiZ0KXRyeXt0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKHQpLmNyZWF0ZSh0aGlzLm5nRm9yVHJhY2tCeSl9Y2F0Y2goZSl7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBhIGRpZmZlciBzdXBwb3J0aW5nIG9iamVjdCAnJHt0fScgb2YgdHlwZSAnJHsoZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5uYW1lfHx0eXBlb2YgdH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KX0nLiBOZ0ZvciBvbmx5IHN1cHBvcnRzIGJpbmRpbmcgdG8gSXRlcmFibGVzIHN1Y2ggYXMgQXJyYXlzLmApfX1pZih0aGlzLl9kaWZmZXIpe2NvbnN0IHQ9dGhpcy5fZGlmZmVyLmRpZmYodGhpcy5fbmdGb3JPZik7dCYmdGhpcy5fYXBwbHlDaGFuZ2VzKHQpfX1fYXBwbHlDaGFuZ2VzKHQpe2NvbnN0IGU9W107dC5mb3JFYWNoT3BlcmF0aW9uKCgodCxuLG8pPT57aWYobnVsbD09dC5wcmV2aW91c0luZGV4KXtjb25zdCBuPXRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLG5ldyBzTShudWxsLHRoaXMuX25nRm9yT2YsLTEsLTEpLG51bGw9PT1vP3ZvaWQgMDpvKSxpPW5ldyBjTSh0LG4pO2UucHVzaChpKX1lbHNlIGlmKG51bGw9PW8pdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUobnVsbD09PW4/dm9pZCAwOm4pO2Vsc2UgaWYobnVsbCE9PW4pe2NvbnN0IGk9dGhpcy5fdmlld0NvbnRhaW5lci5nZXQobik7dGhpcy5fdmlld0NvbnRhaW5lci5tb3ZlKGksbyk7Y29uc3QgYT1uZXcgY00odCxpKTtlLnB1c2goYSl9fSkpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXRoaXMuX3BlclZpZXdDaGFuZ2UoZVt0XS52aWV3LGVbdF0ucmVjb3JkKTtmb3IobGV0IHQ9MCxlPXRoaXMuX3ZpZXdDb250YWluZXIubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IG49dGhpcy5fdmlld0NvbnRhaW5lci5nZXQodCk7bi5jb250ZXh0LmluZGV4PXQsbi5jb250ZXh0LmNvdW50PWUsbi5jb250ZXh0Lm5nRm9yT2Y9dGhpcy5fbmdGb3JPZn10LmZvckVhY2hJZGVudGl0eUNoYW5nZSgodD0+e3RoaXMuX3ZpZXdDb250YWluZXIuZ2V0KHQuY3VycmVudEluZGV4KS5jb250ZXh0LiRpbXBsaWNpdD10Lml0ZW19KSl9X3BlclZpZXdDaGFuZ2UodCxlKXt0LmNvbnRleHQuJGltcGxpY2l0PWUuaXRlbX1zdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZCh0LGUpe3JldHVybiEwfX1sTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bE0pKFNtKGVoKSxTbShYZyksU20oSGcpKX0sbE0uybVkaXI9bG8oe3R5cGU6bE0sc2VsZWN0b3JzOltbIiIsIm5nRm9yIiwiIiwibmdGb3JPZiIsIiJdXSxpbnB1dHM6e25nRm9yT2Y6Im5nRm9yT2YiLG5nRm9yVHJhY2tCeToibmdGb3JUcmFja0J5IixuZ0ZvclRlbXBsYXRlOiJuZ0ZvclRlbXBsYXRlIn19KSxsTS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmVofSx7dHlwZTpYZ30se3R5cGU6SGd9XSxsTS5wcm9wRGVjb3JhdG9ycz17bmdGb3JPZjpbe3R5cGU6eHl9XSxuZ0ZvclRyYWNrQnk6W3t0eXBlOnh5fV0sbmdGb3JUZW1wbGF0ZTpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsTSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdGb3JdW25nRm9yT2ZdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofSx7dHlwZTpYZ30se3R5cGU6SGd9XX0pLHtuZ0Zvck9mOlt7dHlwZTp4eX1dLG5nRm9yVHJhY2tCeTpbe3R5cGU6eHl9XSxuZ0ZvclRlbXBsYXRlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgY017Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlY29yZD10LHRoaXMudmlldz1lfX1jbGFzcyBkTXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3ZpZXdDb250YWluZXI9dCx0aGlzLl9jb250ZXh0PW5ldyBwTSx0aGlzLl90aGVuVGVtcGxhdGVSZWY9bnVsbCx0aGlzLl9lbHNlVGVtcGxhdGVSZWY9bnVsbCx0aGlzLl90aGVuVmlld1JlZj1udWxsLHRoaXMuX2Vsc2VWaWV3UmVmPW51bGwsdGhpcy5fdGhlblRlbXBsYXRlUmVmPWV9c2V0IG5nSWYodCl7dGhpcy5fY29udGV4dC4kaW1wbGljaXQ9dGhpcy5fY29udGV4dC5uZ0lmPXQsdGhpcy5fdXBkYXRlVmlldygpfXNldCBuZ0lmVGhlbih0KXttTSgibmdJZlRoZW4iLHQpLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZj10LHRoaXMuX3RoZW5WaWV3UmVmPW51bGwsdGhpcy5fdXBkYXRlVmlldygpfXNldCBuZ0lmRWxzZSh0KXttTSgibmdJZkVsc2UiLHQpLHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZj10LHRoaXMuX2Vsc2VWaWV3UmVmPW51bGwsdGhpcy5fdXBkYXRlVmlldygpfV91cGRhdGVWaWV3KCl7dGhpcy5fY29udGV4dC4kaW1wbGljaXQ/dGhpcy5fdGhlblZpZXdSZWZ8fCh0aGlzLl92aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5fZWxzZVZpZXdSZWY9bnVsbCx0aGlzLl90aGVuVGVtcGxhdGVSZWYmJih0aGlzLl90aGVuVmlld1JlZj10aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90aGVuVGVtcGxhdGVSZWYsdGhpcy5fY29udGV4dCkpKTp0aGlzLl9lbHNlVmlld1JlZnx8KHRoaXMuX3ZpZXdDb250YWluZXIuY2xlYXIoKSx0aGlzLl90aGVuVmlld1JlZj1udWxsLHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZiYmKHRoaXMuX2Vsc2VWaWV3UmVmPXRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZix0aGlzLl9jb250ZXh0KSkpfXN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKHQsZSl7cmV0dXJuITB9fWRNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkTSkoU20oZWgpLFNtKFhnKSl9LGRNLsm1ZGlyPWxvKHt0eXBlOmRNLHNlbGVjdG9yczpbWyIiLCJuZ0lmIiwiIl1dLGlucHV0czp7bmdJZjoibmdJZiIsbmdJZlRoZW46Im5nSWZUaGVuIixuZ0lmRWxzZToibmdJZkVsc2UifX0pLGRNLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6ZWh9LHt0eXBlOlhnfV0sZE0ucHJvcERlY29yYXRvcnM9e25nSWY6W3t0eXBlOnh5fV0sbmdJZlRoZW46W3t0eXBlOnh5fV0sbmdJZkVsc2U6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZE0sW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW25nSWZdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofSx7dHlwZTpYZ31dfSkse25nSWY6W3t0eXBlOnh5fV0sbmdJZlRoZW46W3t0eXBlOnh5fV0sbmdJZkVsc2U6W3t0eXBlOnh5fV19KTtjbGFzcyBwTXtjb25zdHJ1Y3Rvcigpe3RoaXMuJGltcGxpY2l0PW51bGwsdGhpcy5uZ0lmPW51bGx9fWZ1bmN0aW9uIG1NKHQsZSl7aWYoZSYmIWUuY3JlYXRlRW1iZWRkZWRWaWV3KXRocm93IG5ldyBFcnJvcihgJHt0fSBtdXN0IGJlIGEgVGVtcGxhdGVSZWYsIGJ1dCByZWNlaXZlZCAnJHtHZShlKX0nLmApfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB1TXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3ZpZXdDb250YWluZXJSZWY9dCx0aGlzLl90ZW1wbGF0ZVJlZj1lLHRoaXMuX2NyZWF0ZWQ9ITF9Y3JlYXRlKCl7dGhpcy5fY3JlYXRlZD0hMCx0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZVJlZil9ZGVzdHJveSgpe3RoaXMuX2NyZWF0ZWQ9ITEsdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpfWVuZm9yY2VTdGF0ZSh0KXt0JiYhdGhpcy5fY3JlYXRlZD90aGlzLmNyZWF0ZSgpOiF0JiZ0aGlzLl9jcmVhdGVkJiZ0aGlzLmRlc3Ryb3koKX19Y2xhc3MgZk17Y29uc3RydWN0b3IoKXt0aGlzLl9kZWZhdWx0VXNlZD0hMSx0aGlzLl9jYXNlQ291bnQ9MCx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9MCx0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkPSExfXNldCBuZ1N3aXRjaCh0KXt0aGlzLl9uZ1N3aXRjaD10LDA9PT10aGlzLl9jYXNlQ291bnQmJnRoaXMuX3VwZGF0ZURlZmF1bHRDYXNlcyghMCl9X2FkZENhc2UoKXtyZXR1cm4gdGhpcy5fY2FzZUNvdW50Kyt9X2FkZERlZmF1bHQodCl7dGhpcy5fZGVmYXVsdFZpZXdzfHwodGhpcy5fZGVmYXVsdFZpZXdzPVtdKSx0aGlzLl9kZWZhdWx0Vmlld3MucHVzaCh0KX1fbWF0Y2hDYXNlKHQpe2NvbnN0IGU9dD09dGhpcy5fbmdTd2l0Y2g7cmV0dXJuIHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9dGhpcy5fbGFzdENhc2VzTWF0Y2hlZHx8ZSx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXgrKyx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9PT10aGlzLl9jYXNlQ291bnQmJih0aGlzLl91cGRhdGVEZWZhdWx0Q2FzZXMoIXRoaXMuX2xhc3RDYXNlc01hdGNoZWQpLHRoaXMuX2xhc3RDYXNlQ2hlY2tJbmRleD0wLHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9ITEpLGV9X3VwZGF0ZURlZmF1bHRDYXNlcyh0KXtpZih0aGlzLl9kZWZhdWx0Vmlld3MmJnQhPT10aGlzLl9kZWZhdWx0VXNlZCl7dGhpcy5fZGVmYXVsdFVzZWQ9dDtmb3IobGV0IGU9MDtlPHRoaXMuX2RlZmF1bHRWaWV3cy5sZW5ndGg7ZSsrKXRoaXMuX2RlZmF1bHRWaWV3c1tlXS5lbmZvcmNlU3RhdGUodCl9fX1mTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Zk0pfSxmTS7JtWRpcj1sbyh7dHlwZTpmTSxzZWxlY3RvcnM6W1siIiwibmdTd2l0Y2giLCIiXV0saW5wdXRzOntuZ1N3aXRjaDoibmdTd2l0Y2gifX0pLGZNLnByb3BEZWNvcmF0b3JzPXtuZ1N3aXRjaDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChmTSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdTd2l0Y2hdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7bmdTd2l0Y2g6W3t0eXBlOnh5fV19KTtjbGFzcyBnTXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5uZ1N3aXRjaD1uLCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxufHxiTSgibmdTd2l0Y2hDYXNlIiwiTmdTd2l0Y2hDYXNlIiksbi5fYWRkQ2FzZSgpLHRoaXMuX3ZpZXc9bmV3IHVNKHQsZSl9bmdEb0NoZWNrKCl7dGhpcy5fdmlldy5lbmZvcmNlU3RhdGUodGhpcy5uZ1N3aXRjaC5fbWF0Y2hDYXNlKHRoaXMubmdTd2l0Y2hDYXNlKSl9fWdNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxnTSkoU20oZWgpLFNtKFhnKSxTbShmTSw5KSl9LGdNLsm1ZGlyPWxvKHt0eXBlOmdNLHNlbGVjdG9yczpbWyIiLCJuZ1N3aXRjaENhc2UiLCIiXV0saW5wdXRzOntuZ1N3aXRjaENhc2U6Im5nU3dpdGNoQ2FzZSJ9fSksZ00uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH0se3R5cGU6WGd9LHt0eXBlOmZNLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV0sZ00ucHJvcERlY29yYXRvcnM9e25nU3dpdGNoQ2FzZTpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnTSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdTd2l0Y2hDYXNlXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTplaH0se3R5cGU6WGd9LHt0eXBlOmZNLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV19KSx7bmdTd2l0Y2hDYXNlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgaE17Y29uc3RydWN0b3IodCxlLG4peyJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxufHxiTSgibmdTd2l0Y2hEZWZhdWx0IiwiTmdTd2l0Y2hEZWZhdWx0Iiksbi5fYWRkRGVmYXVsdChuZXcgdU0odCxlKSl9fWZ1bmN0aW9uIGJNKHQsZSl7dGhyb3cgbmV3IEtlKCIzMDUiLGBBbiBlbGVtZW50IHdpdGggdGhlICIke3R9IiBhdHRyaWJ1dGUgKG1hdGNoaW5nIHRoZSAiJHtlfSIgZGlyZWN0aXZlKSBtdXN0IGJlIGxvY2F0ZWQgaW5zaWRlIGFuIGVsZW1lbnQgd2l0aCB0aGUgIm5nU3dpdGNoIiBhdHRyaWJ1dGUgKG1hdGNoaW5nICJOZ1N3aXRjaCIgZGlyZWN0aXZlKWApfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9oTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aE0pKFNtKGVoKSxTbShYZyksU20oZk0sOSkpfSxoTS7JtWRpcj1sbyh7dHlwZTpoTSxzZWxlY3RvcnM6W1siIiwibmdTd2l0Y2hEZWZhdWx0IiwiIl1dfSksaE0uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH0se3R5cGU6WGd9LHt0eXBlOmZNLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChoTSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdTd2l0Y2hEZWZhdWx0XSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTplaH0se3R5cGU6WGd9LHt0eXBlOmZNLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV19KSxudWxsKTtjbGFzcyB5TXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9sb2NhbGl6YXRpb249dCx0aGlzLl9jYXNlVmlld3M9e319c2V0IG5nUGx1cmFsKHQpe3RoaXMuX3N3aXRjaFZhbHVlPXQsdGhpcy5fdXBkYXRlVmlldygpfWFkZENhc2UodCxlKXt0aGlzLl9jYXNlVmlld3NbdF09ZX1fdXBkYXRlVmlldygpe3RoaXMuX2NsZWFyVmlld3MoKTtjb25zdCB0PU9iamVjdC5rZXlzKHRoaXMuX2Nhc2VWaWV3cyksZT1uTSh0aGlzLl9zd2l0Y2hWYWx1ZSx0LHRoaXMuX2xvY2FsaXphdGlvbik7dGhpcy5fYWN0aXZhdGVWaWV3KHRoaXMuX2Nhc2VWaWV3c1tlXSl9X2NsZWFyVmlld3MoKXt0aGlzLl9hY3RpdmVWaWV3JiZ0aGlzLl9hY3RpdmVWaWV3LmRlc3Ryb3koKX1fYWN0aXZhdGVWaWV3KHQpe3QmJih0aGlzLl9hY3RpdmVWaWV3PXQsdGhpcy5fYWN0aXZlVmlldy5jcmVhdGUoKSl9fXlNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5TSkoU20oZU0pKX0seU0uybVkaXI9bG8oe3R5cGU6eU0sc2VsZWN0b3JzOltbIiIsIm5nUGx1cmFsIiwiIl1dLGlucHV0czp7bmdQbHVyYWw6Im5nUGx1cmFsIn19KSx5TS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmVNfV0seU0ucHJvcERlY29yYXRvcnM9e25nUGx1cmFsOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHlNLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltuZ1BsdXJhbF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZU19XX0pLHtuZ1BsdXJhbDpbe3R5cGU6eHl9XX0pO2NsYXNzIF9Ne2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMudmFsdWU9dDtjb25zdCBpPSFpc05hTihOdW1iZXIodCkpO28uYWRkQ2FzZShpP2A9JHt0fWA6dCxuZXcgdU0obixlKSl9fV9NLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfTSkoTmEoIm5nUGx1cmFsQ2FzZSIpLFNtKFhnKSxTbShlaCksU20oeU0sMSkpfSxfTS7JtWRpcj1sbyh7dHlwZTpfTSxzZWxlY3RvcnM6W1siIiwibmdQbHVyYWxDYXNlIiwiIl1dfSksX00uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbIm5nUGx1cmFsQ2FzZSJdfV19LHt0eXBlOlhnfSx7dHlwZTplaH0se3R5cGU6eU0sZGVjb3JhdG9yczpbe3R5cGU6UnJ9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoX00sW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW25nUGx1cmFsQ2FzZV0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJuZ1BsdXJhbENhc2UiXX1dfSx7dHlwZTpYZ30se3R5cGU6ZWh9LHt0eXBlOnlNLGRlY29yYXRvcnM6W3t0eXBlOlJyfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgQ017Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX25nRWw9dCx0aGlzLl9kaWZmZXJzPWUsdGhpcy5fcmVuZGVyZXI9bix0aGlzLl9uZ1N0eWxlPW51bGwsdGhpcy5fZGlmZmVyPW51bGx9c2V0IG5nU3R5bGUodCl7dGhpcy5fbmdTdHlsZT10LCF0aGlzLl9kaWZmZXImJnQmJih0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKHQpLmNyZWF0ZSgpKX1uZ0RvQ2hlY2soKXtpZih0aGlzLl9kaWZmZXIpe2NvbnN0IHQ9dGhpcy5fZGlmZmVyLmRpZmYodGhpcy5fbmdTdHlsZSk7dCYmdGhpcy5fYXBwbHlDaGFuZ2VzKHQpfX1fc2V0U3R5bGUodCxlKXtjb25zdFtuLG9dPXQuc3BsaXQoIi4iKTtudWxsIT0oZT1udWxsIT1lJiZvP2Ake2V9JHtvfWA6ZSk/dGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LG4sZSk6dGhpcy5fcmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LG4pfV9hcHBseUNoYW5nZXModCl7dC5mb3JFYWNoUmVtb3ZlZEl0ZW0oKHQ9PnRoaXMuX3NldFN0eWxlKHQua2V5LG51bGwpKSksdC5mb3JFYWNoQWRkZWRJdGVtKCh0PT50aGlzLl9zZXRTdHlsZSh0LmtleSx0LmN1cnJlbnRWYWx1ZSkpKSx0LmZvckVhY2hDaGFuZ2VkSXRlbSgodD0+dGhpcy5fc2V0U3R5bGUodC5rZXksdC5jdXJyZW50VmFsdWUpKSl9fUNNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDTSkoU20oaGcpLFNtKExnKSxTbShDZykpfSxDTS7JtWRpcj1sbyh7dHlwZTpDTSxzZWxlY3RvcnM6W1siIiwibmdTdHlsZSIsIiJdXSxpbnB1dHM6e25nU3R5bGU6Im5nU3R5bGUifX0pLENNLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOkxnfSx7dHlwZTpDZ31dLENNLnByb3BEZWNvcmF0b3JzPXtuZ1N0eWxlOlt7dHlwZTp4eSxhcmdzOlsibmdTdHlsZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQ00sW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW25nU3R5bGVdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpMZ30se3R5cGU6Q2d9XX0pLHtuZ1N0eWxlOlt7dHlwZTp4eSxhcmdzOlsibmdTdHlsZSJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIE1Ne2NvbnN0cnVjdG9yKHQpe3RoaXMuX3ZpZXdDb250YWluZXJSZWY9dCx0aGlzLl92aWV3UmVmPW51bGwsdGhpcy5uZ1RlbXBsYXRlT3V0bGV0Q29udGV4dD1udWxsLHRoaXMubmdUZW1wbGF0ZU91dGxldD1udWxsfW5nT25DaGFuZ2VzKHQpe2lmKHQubmdUZW1wbGF0ZU91dGxldCl7Y29uc3QgdD10aGlzLl92aWV3Q29udGFpbmVyUmVmO3RoaXMuX3ZpZXdSZWYmJnQucmVtb3ZlKHQuaW5kZXhPZih0aGlzLl92aWV3UmVmKSksdGhpcy5fdmlld1JlZj10aGlzLm5nVGVtcGxhdGVPdXRsZXQ/dC5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5uZ1RlbXBsYXRlT3V0bGV0LHRoaXMubmdUZW1wbGF0ZU91dGxldENvbnRleHQpOm51bGx9ZWxzZSB0aGlzLl92aWV3UmVmJiZ0Lm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiZ0aGlzLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiYodGhpcy5fdmlld1JlZi5jb250ZXh0PXRoaXMubmdUZW1wbGF0ZU91dGxldENvbnRleHQpfX1NTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TU0pKFNtKGVoKSl9LE1NLsm1ZGlyPWxvKHt0eXBlOk1NLHNlbGVjdG9yczpbWyIiLCJuZ1RlbXBsYXRlT3V0bGV0IiwiIl1dLGlucHV0czp7bmdUZW1wbGF0ZU91dGxldENvbnRleHQ6Im5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixuZ1RlbXBsYXRlT3V0bGV0OiJuZ1RlbXBsYXRlT3V0bGV0In0sZmVhdHVyZXM6W0JvXX0pLE1NLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6ZWh9XSxNTS5wcm9wRGVjb3JhdG9ycz17bmdUZW1wbGF0ZU91dGxldENvbnRleHQ6W3t0eXBlOnh5fV0sbmdUZW1wbGF0ZU91dGxldDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChNTSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdUZW1wbGF0ZU91dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZWh9XX0pLHtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dDpbe3R5cGU6eHl9XSxuZ1RlbXBsYXRlT3V0bGV0Olt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB2TT1bYU0sck0sbE0sZE0sTU0sQ00sZk0sZ00saE0seU0sX01dOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB4TSh0LGUpe3JldHVybiBFcnJvcihgSW52YWxpZFBpcGVBcmd1bWVudDogJyR7ZX0nIGZvciBwaXBlICcke0dlKHQpfSdgKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgT009bmV3IGNsYXNze2NyZWF0ZVN1YnNjcmlwdGlvbih0LGUpe3JldHVybiB0LnRoZW4oZSwodD0+e3Rocm93IHR9KSl9ZGlzcG9zZSh0KXt9b25EZXN0cm95KHQpe319LFBNPW5ldyBjbGFzc3tjcmVhdGVTdWJzY3JpcHRpb24odCxlKXtyZXR1cm4gdC5zdWJzY3JpYmUoe25leHQ6ZSxlcnJvcjp0PT57dGhyb3cgdH19KX1kaXNwb3NlKHQpe3QudW5zdWJzY3JpYmUoKX1vbkRlc3Ryb3kodCl7dC51bnN1YnNjcmliZSgpfX07Y2xhc3Mgd017Y29uc3RydWN0b3IodCl7dGhpcy5fcmVmPXQsdGhpcy5fbGF0ZXN0VmFsdWU9bnVsbCx0aGlzLl9zdWJzY3JpcHRpb249bnVsbCx0aGlzLl9vYmo9bnVsbCx0aGlzLl9zdHJhdGVneT1udWxsfW5nT25EZXN0cm95KCl7dGhpcy5fc3Vic2NyaXB0aW9uJiZ0aGlzLl9kaXNwb3NlKCl9dHJhbnNmb3JtKHQpe3JldHVybiB0aGlzLl9vYmo/dCE9PXRoaXMuX29iaj8odGhpcy5fZGlzcG9zZSgpLHRoaXMudHJhbnNmb3JtKHQpKTp0aGlzLl9sYXRlc3RWYWx1ZToodCYmdGhpcy5fc3Vic2NyaWJlKHQpLHRoaXMuX2xhdGVzdFZhbHVlKX1fc3Vic2NyaWJlKHQpe3RoaXMuX29iaj10LHRoaXMuX3N0cmF0ZWd5PXRoaXMuX3NlbGVjdFN0cmF0ZWd5KHQpLHRoaXMuX3N1YnNjcmlwdGlvbj10aGlzLl9zdHJhdGVneS5jcmVhdGVTdWJzY3JpcHRpb24odCwoZT0+dGhpcy5fdXBkYXRlTGF0ZXN0VmFsdWUodCxlKSkpfV9zZWxlY3RTdHJhdGVneSh0KXtpZihGbSh0KSlyZXR1cm4gT007aWYoTG0odCkpcmV0dXJuIFBNO3Rocm93IHhNKHdNLHQpfV9kaXNwb3NlKCl7dGhpcy5fc3RyYXRlZ3kuZGlzcG9zZSh0aGlzLl9zdWJzY3JpcHRpb24pLHRoaXMuX2xhdGVzdFZhbHVlPW51bGwsdGhpcy5fc3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fb2JqPW51bGx9X3VwZGF0ZUxhdGVzdFZhbHVlKHQsZSl7dD09PXRoaXMuX29iaiYmKHRoaXMuX2xhdGVzdFZhbHVlPWUsdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpKX19d00uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHdNKShTbShVZywxNikpfSx3TS7JtXBpcGU9Y28oe25hbWU6ImFzeW5jIix0eXBlOndNLHB1cmU6ITF9KSx3TS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlVnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh3TSxbe3R5cGU6dnksYXJnczpbe25hbWU6ImFzeW5jIixwdXJlOiExfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWd9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3Mga017dHJhbnNmb3JtKHQpe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IHhNKGtNLHQpO3JldHVybiB0LnRvTG93ZXJDYXNlKCl9fWtNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrTSl9LGtNLsm1cGlwZT1jbyh7bmFtZToibG93ZXJjYXNlIix0eXBlOmtNLHB1cmU6ITB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGtNLFt7dHlwZTp2eSxhcmdzOlt7bmFtZToibG93ZXJjYXNlIn1dfV0sbnVsbCxudWxsKTtjb25zdCBTTT0vKD86W0EtWmEtelx4QUFceEI1XHhCQVx4QzAtXHhENlx4RDgtXHhGNlx4RjgtXHUwMkMxXHUwMkM2LVx1MDJEMVx1MDJFMC1cdTAyRTRcdTAyRUNcdTAyRUVcdTAzNzAtXHUwMzc0XHUwMzc2XHUwMzc3XHUwMzdBLVx1MDM3RFx1MDM3Rlx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNGNVx1MDNGNy1cdTA0ODFcdTA0OEEtXHUwNTJGXHUwNTMxLVx1MDU1Nlx1MDU1OVx1MDU2MS1cdTA1ODdcdTA1RDAtXHUwNUVBXHUwNUYwLVx1MDVGMlx1MDYyMC1cdTA2NEFcdTA2NkVcdTA2NkZcdTA2NzEtXHUwNkQzXHUwNkQ1XHUwNkU1XHUwNkU2XHUwNkVFXHUwNkVGXHUwNkZBLVx1MDZGQ1x1MDZGRlx1MDcxMFx1MDcxMi1cdTA3MkZcdTA3NEQtXHUwN0E1XHUwN0IxXHUwN0NBLVx1MDdFQVx1MDdGNFx1MDdGNVx1MDdGQVx1MDgwMC1cdTA4MTVcdTA4MUFcdTA4MjRcdTA4MjhcdTA4NDAtXHUwODU4XHUwODYwLVx1MDg2QVx1MDhBMC1cdTA4QjRcdTA4QjYtXHUwOEJEXHUwOTA0LVx1MDkzOVx1MDkzRFx1MDk1MFx1MDk1OC1cdTA5NjFcdTA5NzEtXHUwOTgwXHUwOTg1LVx1MDk4Q1x1MDk4Rlx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCRFx1MDlDRVx1MDlEQ1x1MDlERFx1MDlERi1cdTA5RTFcdTA5RjBcdTA5RjFcdTA5RkNcdTBBMDUtXHUwQTBBXHUwQTBGXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzJcdTBBMzNcdTBBMzVcdTBBMzZcdTBBMzhcdTBBMzlcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTcyLVx1MEE3NFx1MEE4NS1cdTBBOERcdTBBOEYtXHUwQTkxXHUwQTkzLVx1MEFBOFx1MEFBQS1cdTBBQjBcdTBBQjJcdTBBQjNcdTBBQjUtXHUwQUI5XHUwQUJEXHUwQUQwXHUwQUUwXHUwQUUxXHUwQUY5XHUwQjA1LVx1MEIwQ1x1MEIwRlx1MEIxMFx1MEIxMy1cdTBCMjhcdTBCMkEtXHUwQjMwXHUwQjMyXHUwQjMzXHUwQjM1LVx1MEIzOVx1MEIzRFx1MEI1Q1x1MEI1RFx1MEI1Ri1cdTBCNjFcdTBCNzFcdTBCODNcdTBCODUtXHUwQjhBXHUwQjhFLVx1MEI5MFx1MEI5Mi1cdTBCOTVcdTBCOTlcdTBCOUFcdTBCOUNcdTBCOUVcdTBCOUZcdTBCQTNcdTBCQTRcdTBCQTgtXHUwQkFBXHUwQkFFLVx1MEJCOVx1MEJEMFx1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzlcdTBDM0RcdTBDNTgtXHUwQzVBXHUwQzYwXHUwQzYxXHUwQzgwXHUwQzg1LVx1MEM4Q1x1MEM4RS1cdTBDOTBcdTBDOTItXHUwQ0E4XHUwQ0FBLVx1MENCM1x1MENCNS1cdTBDQjlcdTBDQkRcdTBDREVcdTBDRTBcdTBDRTFcdTBDRjFcdTBDRjJcdTBEMDUtXHUwRDBDXHUwRDBFLVx1MEQxMFx1MEQxMi1cdTBEM0FcdTBEM0RcdTBENEVcdTBENTQtXHUwRDU2XHUwRDVGLVx1MEQ2MVx1MEQ3QS1cdTBEN0ZcdTBEODUtXHUwRDk2XHUwRDlBLVx1MERCMVx1MERCMy1cdTBEQkJcdTBEQkRcdTBEQzAtXHUwREM2XHUwRTAxLVx1MEUzMFx1MEUzMlx1MEUzM1x1MEU0MC1cdTBFNDZcdTBFODFcdTBFODJcdTBFODRcdTBFODdcdTBFODhcdTBFOEFcdTBFOERcdTBFOTQtXHUwRTk3XHUwRTk5LVx1MEU5Rlx1MEVBMS1cdTBFQTNcdTBFQTVcdTBFQTdcdTBFQUFcdTBFQUJcdTBFQUQtXHUwRUIwXHUwRUIyXHUwRUIzXHUwRUJEXHUwRUMwLVx1MEVDNFx1MEVDNlx1MEVEQy1cdTBFREZcdTBGMDBcdTBGNDAtXHUwRjQ3XHUwRjQ5LVx1MEY2Q1x1MEY4OC1cdTBGOENcdTEwMDAtXHUxMDJBXHUxMDNGXHUxMDUwLVx1MTA1NVx1MTA1QS1cdTEwNURcdTEwNjFcdTEwNjVcdTEwNjZcdTEwNkUtXHUxMDcwXHUxMDc1LVx1MTA4MVx1MTA4RVx1MTBBMC1cdTEwQzVcdTEwQzdcdTEwQ0RcdTEwRDAtXHUxMEZBXHUxMEZDLVx1MTI0OFx1MTI0QS1cdTEyNERcdTEyNTAtXHUxMjU2XHUxMjU4XHUxMjVBLVx1MTI1RFx1MTI2MC1cdTEyODhcdTEyOEEtXHUxMjhEXHUxMjkwLVx1MTJCMFx1MTJCMi1cdTEyQjVcdTEyQjgtXHUxMkJFXHUxMkMwXHUxMkMyLVx1MTJDNVx1MTJDOC1cdTEyRDZcdTEyRDgtXHUxMzEwXHUxMzEyLVx1MTMxNVx1MTMxOC1cdTEzNUFcdTEzODAtXHUxMzhGXHUxM0EwLVx1MTNGNVx1MTNGOC1cdTEzRkRcdTE0MDEtXHUxNjZDXHUxNjZGLVx1MTY3Rlx1MTY4MS1cdTE2OUFcdTE2QTAtXHUxNkVBXHUxNkYxLVx1MTZGOFx1MTcwMC1cdTE3MENcdTE3MEUtXHUxNzExXHUxNzIwLVx1MTczMVx1MTc0MC1cdTE3NTFcdTE3NjAtXHUxNzZDXHUxNzZFLVx1MTc3MFx1MTc4MC1cdTE3QjNcdTE3RDdcdTE3RENcdTE4MjAtXHUxODc3XHUxODgwLVx1MTg4NFx1MTg4Ny1cdTE4QThcdTE4QUFcdTE4QjAtXHUxOEY1XHUxOTAwLVx1MTkxRVx1MTk1MC1cdTE5NkRcdTE5NzAtXHUxOTc0XHUxOTgwLVx1MTlBQlx1MTlCMC1cdTE5QzlcdTFBMDAtXHUxQTE2XHUxQTIwLVx1MUE1NFx1MUFBN1x1MUIwNS1cdTFCMzNcdTFCNDUtXHUxQjRCXHUxQjgzLVx1MUJBMFx1MUJBRVx1MUJBRlx1MUJCQS1cdTFCRTVcdTFDMDAtXHUxQzIzXHUxQzRELVx1MUM0Rlx1MUM1QS1cdTFDN0RcdTFDODAtXHUxQzg4XHUxQ0U5LVx1MUNFQ1x1MUNFRS1cdTFDRjFcdTFDRjVcdTFDRjZcdTFEMDAtXHUxREJGXHUxRTAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQkNcdTFGQkVcdTFGQzItXHUxRkM0XHUxRkM2LVx1MUZDQ1x1MUZEMC1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkUwLVx1MUZFQ1x1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZDXHUyMDcxXHUyMDdGXHUyMDkwLVx1MjA5Q1x1MjEwMlx1MjEwN1x1MjEwQS1cdTIxMTNcdTIxMTVcdTIxMTktXHUyMTFEXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzlcdTIxM0MtXHUyMTNGXHUyMTQ1LVx1MjE0OVx1MjE0RVx1MjE4M1x1MjE4NFx1MkMwMC1cdTJDMkVcdTJDMzAtXHUyQzVFXHUyQzYwLVx1MkNFNFx1MkNFQi1cdTJDRUVcdTJDRjJcdTJDRjNcdTJEMDAtXHUyRDI1XHUyRDI3XHUyRDJEXHUyRDMwLVx1MkQ2N1x1MkQ2Rlx1MkQ4MC1cdTJEOTZcdTJEQTAtXHUyREE2XHUyREE4LVx1MkRBRVx1MkRCMC1cdTJEQjZcdTJEQjgtXHUyREJFXHUyREMwLVx1MkRDNlx1MkRDOC1cdTJEQ0VcdTJERDAtXHUyREQ2XHUyREQ4LVx1MkRERVx1MkUyRlx1MzAwNVx1MzAwNlx1MzAzMS1cdTMwMzVcdTMwM0JcdTMwM0NcdTMwNDEtXHUzMDk2XHUzMDlELVx1MzA5Rlx1MzBBMS1cdTMwRkFcdTMwRkMtXHUzMEZGXHUzMTA1LVx1MzEyRVx1MzEzMS1cdTMxOEVcdTMxQTAtXHUzMUJBXHUzMUYwLVx1MzFGRlx1MzQwMC1cdTREQjVcdTRFMDAtXHU5RkVBXHVBMDAwLVx1QTQ4Q1x1QTREMC1cdUE0RkRcdUE1MDAtXHVBNjBDXHVBNjEwLVx1QTYxRlx1QTYyQVx1QTYyQlx1QTY0MC1cdUE2NkVcdUE2N0YtXHVBNjlEXHVBNkEwLVx1QTZFNVx1QTcxNy1cdUE3MUZcdUE3MjItXHVBNzg4XHVBNzhCLVx1QTdBRVx1QTdCMC1cdUE3QjdcdUE3RjctXHVBODAxXHVBODAzLVx1QTgwNVx1QTgwNy1cdUE4MEFcdUE4MEMtXHVBODIyXHVBODQwLVx1QTg3M1x1QTg4Mi1cdUE4QjNcdUE4RjItXHVBOEY3XHVBOEZCXHVBOEZEXHVBOTBBLVx1QTkyNVx1QTkzMC1cdUE5NDZcdUE5NjAtXHVBOTdDXHVBOTg0LVx1QTlCMlx1QTlDRlx1QTlFMC1cdUE5RTRcdUE5RTYtXHVBOUVGXHVBOUZBLVx1QTlGRVx1QUEwMC1cdUFBMjhcdUFBNDAtXHVBQTQyXHVBQTQ0LVx1QUE0Qlx1QUE2MC1cdUFBNzZcdUFBN0FcdUFBN0UtXHVBQUFGXHVBQUIxXHVBQUI1XHVBQUI2XHVBQUI5LVx1QUFCRFx1QUFDMFx1QUFDMlx1QUFEQi1cdUFBRERcdUFBRTAtXHVBQUVBXHVBQUYyLVx1QUFGNFx1QUIwMS1cdUFCMDZcdUFCMDktXHVBQjBFXHVBQjExLVx1QUIxNlx1QUIyMC1cdUFCMjZcdUFCMjgtXHVBQjJFXHVBQjMwLVx1QUI1QVx1QUI1Qy1cdUFCNjVcdUFCNzAtXHVBQkUyXHVBQzAwLVx1RDdBM1x1RDdCMC1cdUQ3QzZcdUQ3Q0ItXHVEN0ZCXHVGOTAwLVx1RkE2RFx1RkE3MC1cdUZBRDlcdUZCMDAtXHVGQjA2XHVGQjEzLVx1RkIxN1x1RkIxRFx1RkIxRi1cdUZCMjhcdUZCMkEtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MVx1RkI0M1x1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTcwLVx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMjEtXHVGRjNBXHVGRjQxLVx1RkY1QVx1RkY2Ni1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXXxcdUQ4MDBbXHVEQzAwLVx1REMwQlx1REMwRC1cdURDMjZcdURDMjgtXHVEQzNBXHVEQzNDXHVEQzNEXHVEQzNGLVx1REM0RFx1REM1MC1cdURDNURcdURDODAtXHVEQ0ZBXHVERTgwLVx1REU5Q1x1REVBMC1cdURFRDBcdURGMDAtXHVERjFGXHVERjJELVx1REY0MFx1REY0Mi1cdURGNDlcdURGNTAtXHVERjc1XHVERjgwLVx1REY5RFx1REZBMC1cdURGQzNcdURGQzgtXHVERkNGXXxcdUQ4MDFbXHVEQzAwLVx1REM5RFx1RENCMC1cdURDRDNcdURDRDgtXHVEQ0ZCXHVERDAwLVx1REQyN1x1REQzMC1cdURENjNcdURFMDAtXHVERjM2XHVERjQwLVx1REY1NVx1REY2MC1cdURGNjddfFx1RDgwMltcdURDMDAtXHVEQzA1XHVEQzA4XHVEQzBBLVx1REMzNVx1REMzN1x1REMzOFx1REMzQ1x1REMzRi1cdURDNTVcdURDNjAtXHVEQzc2XHVEQzgwLVx1REM5RVx1RENFMC1cdURDRjJcdURDRjRcdURDRjVcdUREMDAtXHVERDE1XHVERDIwLVx1REQzOVx1REQ4MC1cdUREQjdcdUREQkVcdUREQkZcdURFMDBcdURFMTAtXHVERTEzXHVERTE1LVx1REUxN1x1REUxOS1cdURFMzNcdURFNjAtXHVERTdDXHVERTgwLVx1REU5Q1x1REVDMC1cdURFQzdcdURFQzktXHVERUU0XHVERjAwLVx1REYzNVx1REY0MC1cdURGNTVcdURGNjAtXHVERjcyXHVERjgwLVx1REY5MV18XHVEODAzW1x1REMwMC1cdURDNDhcdURDODAtXHVEQ0IyXHVEQ0MwLVx1RENGMl18XHVEODA0W1x1REMwMy1cdURDMzdcdURDODMtXHVEQ0FGXHVEQ0QwLVx1RENFOFx1REQwMy1cdUREMjZcdURENTAtXHVERDcyXHVERDc2XHVERDgzLVx1RERCMlx1RERDMS1cdUREQzRcdUREREFcdURERENcdURFMDAtXHVERTExXHVERTEzLVx1REUyQlx1REU4MC1cdURFODZcdURFODhcdURFOEEtXHVERThEXHVERThGLVx1REU5RFx1REU5Ri1cdURFQThcdURFQjAtXHVERURFXHVERjA1LVx1REYwQ1x1REYwRlx1REYxMFx1REYxMy1cdURGMjhcdURGMkEtXHVERjMwXHVERjMyXHVERjMzXHVERjM1LVx1REYzOVx1REYzRFx1REY1MFx1REY1RC1cdURGNjFdfFx1RDgwNVtcdURDMDAtXHVEQzM0XHVEQzQ3LVx1REM0QVx1REM4MC1cdURDQUZcdURDQzRcdURDQzVcdURDQzdcdUREODAtXHVEREFFXHVEREQ4LVx1REREQlx1REUwMC1cdURFMkZcdURFNDRcdURFODAtXHVERUFBXHVERjAwLVx1REYxOV18XHVEODA2W1x1RENBMC1cdURDREZcdURDRkZcdURFMDBcdURFMEItXHVERTMyXHVERTNBXHVERTUwXHVERTVDLVx1REU4M1x1REU4Ni1cdURFODlcdURFQzAtXHVERUY4XXxcdUQ4MDdbXHVEQzAwLVx1REMwOFx1REMwQS1cdURDMkVcdURDNDBcdURDNzItXHVEQzhGXHVERDAwLVx1REQwNlx1REQwOFx1REQwOVx1REQwQi1cdUREMzBcdURENDZdfFx1RDgwOFtcdURDMDAtXHVERjk5XXxcdUQ4MDlbXHVEQzgwLVx1REQ0M118W1x1RDgwQ1x1RDgxQy1cdUQ4MjBcdUQ4NDAtXHVEODY4XHVEODZBLVx1RDg2Q1x1RDg2Ri1cdUQ4NzJcdUQ4NzQtXHVEODc5XVtcdURDMDAtXHVERkZGXXxcdUQ4MERbXHVEQzAwLVx1REMyRV18XHVEODExW1x1REMwMC1cdURFNDZdfFx1RDgxQVtcdURDMDAtXHVERTM4XHVERTQwLVx1REU1RVx1REVEMC1cdURFRURcdURGMDAtXHVERjJGXHVERjQwLVx1REY0M1x1REY2My1cdURGNzdcdURGN0QtXHVERjhGXXxcdUQ4MUJbXHVERjAwLVx1REY0NFx1REY1MFx1REY5My1cdURGOUZcdURGRTBcdURGRTFdfFx1RDgyMVtcdURDMDAtXHVERkVDXXxcdUQ4MjJbXHVEQzAwLVx1REVGMl18XHVEODJDW1x1REMwMC1cdUREMUVcdURENzAtXHVERUZCXXxcdUQ4MkZbXHVEQzAwLVx1REM2QVx1REM3MC1cdURDN0NcdURDODAtXHVEQzg4XHVEQzkwLVx1REM5OV18XHVEODM1W1x1REMwMC1cdURDNTRcdURDNTYtXHVEQzlDXHVEQzlFXHVEQzlGXHVEQ0EyXHVEQ0E1XHVEQ0E2XHVEQ0E5LVx1RENBQ1x1RENBRS1cdURDQjlcdURDQkJcdURDQkQtXHVEQ0MzXHVEQ0M1LVx1REQwNVx1REQwNy1cdUREMEFcdUREMEQtXHVERDE0XHVERDE2LVx1REQxQ1x1REQxRS1cdUREMzlcdUREM0ItXHVERDNFXHVERDQwLVx1REQ0NFx1REQ0Nlx1REQ0QS1cdURENTBcdURENTItXHVERUE1XHVERUE4LVx1REVDMFx1REVDMi1cdURFREFcdURFREMtXHVERUZBXHVERUZDLVx1REYxNFx1REYxNi1cdURGMzRcdURGMzYtXHVERjRFXHVERjUwLVx1REY2RVx1REY3MC1cdURGODhcdURGOEEtXHVERkE4XHVERkFBLVx1REZDMlx1REZDNC1cdURGQ0JdfFx1RDgzQVtcdURDMDAtXHVEQ0M0XHVERDAwLVx1REQ0M118XHVEODNCW1x1REUwMC1cdURFMDNcdURFMDUtXHVERTFGXHVERTIxXHVERTIyXHVERTI0XHVERTI3XHVERTI5LVx1REUzMlx1REUzNC1cdURFMzdcdURFMzlcdURFM0JcdURFNDJcdURFNDdcdURFNDlcdURFNEJcdURFNEQtXHVERTRGXHVERTUxXHVERTUyXHVERTU0XHVERTU3XHVERTU5XHVERTVCXHVERTVEXHVERTVGXHVERTYxXHVERTYyXHVERTY0XHVERTY3LVx1REU2QVx1REU2Qy1cdURFNzJcdURFNzQtXHVERTc3XHVERTc5LVx1REU3Q1x1REU3RVx1REU4MC1cdURFODlcdURFOEItXHVERTlCXHVERUExLVx1REVBM1x1REVBNS1cdURFQTlcdURFQUItXHVERUJCXXxcdUQ4NjlbXHVEQzAwLVx1REVENlx1REYwMC1cdURGRkZdfFx1RDg2RFtcdURDMDAtXHVERjM0XHVERjQwLVx1REZGRl18XHVEODZFW1x1REMwMC1cdURDMURcdURDMjAtXHVERkZGXXxcdUQ4NzNbXHVEQzAwLVx1REVBMVx1REVCMC1cdURGRkZdfFx1RDg3QVtcdURDMDAtXHVERkUwXXxcdUQ4N0VbXHVEQzAwLVx1REUxRF0pXFMqL2c7Y2xhc3MgRE17dHJhbnNmb3JtKHQpe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IHhNKERNLHQpO3JldHVybiB0LnJlcGxhY2UoU00sKHQ9PnRbMF0udG9VcHBlckNhc2UoKSt0LnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpKSl9fURNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxETSl9LERNLsm1cGlwZT1jbyh7bmFtZToidGl0bGVjYXNlIix0eXBlOkRNLHB1cmU6ITB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKERNLFt7dHlwZTp2eSxhcmdzOlt7bmFtZToidGl0bGVjYXNlIn1dfV0sbnVsbCxudWxsKTtjbGFzcyBFTXt0cmFuc2Zvcm0odCl7aWYobnVsbD09dClyZXR1cm4gbnVsbDtpZigic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgeE0oRU0sdCk7cmV0dXJuIHQudG9VcHBlckNhc2UoKX19RU0uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEVNKX0sRU0uybVwaXBlPWNvKHtuYW1lOiJ1cHBlcmNhc2UiLHR5cGU6RU0scHVyZTohMH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRU0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJ1cHBlcmNhc2UifV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgUk17Y29uc3RydWN0b3IodCl7dGhpcy5sb2NhbGU9dH10cmFuc2Zvcm0odCxlPSJtZWRpdW1EYXRlIixuLG8pe2lmKG51bGw9PXR8fCIiPT09dHx8dCE9dClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIE5DKHQsZSxvfHx0aGlzLmxvY2FsZSxuKX1jYXRjaCh0KXt0aHJvdyB4TShSTSx0Lm1lc3NhZ2UpfX19Uk0uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJNKShTbShXeSwxNikpfSxSTS7JtXBpcGU9Y28oe25hbWU6ImRhdGUiLHR5cGU6Uk0scHVyZTohMH0pLFJNLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1d5XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChSTSxbe3R5cGU6dnksYXJnczpbe25hbWU6ImRhdGUiLHB1cmU6ITB9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbV3ldfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgQU09LyMvZztjbGFzcyBUTXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9sb2NhbGl6YXRpb249dH10cmFuc2Zvcm0odCxlLG4pe2lmKG51bGw9PXQpcmV0dXJuIiI7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSl0aHJvdyB4TShUTSxlKTtyZXR1cm4gZVtuTSh0LE9iamVjdC5rZXlzKGUpLHRoaXMuX2xvY2FsaXphdGlvbixuKV0ucmVwbGFjZShBTSx0LnRvU3RyaW5nKCkpfX1UTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VE0pKFNtKGVNLDE2KSl9LFRNLsm1cGlwZT1jbyh7bmFtZToiaTE4blBsdXJhbCIsdHlwZTpUTSxwdXJlOiEwfSksVE0uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplTX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVE0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJpMThuUGx1cmFsIixwdXJlOiEwfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZU19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgTk17dHJhbnNmb3JtKHQsZSl7aWYobnVsbD09dClyZXR1cm4iIjtpZigib2JqZWN0IiE9dHlwZW9mIGV8fCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyB4TShOTSxlKTtyZXR1cm4gZS5oYXNPd25Qcm9wZXJ0eSh0KT9lW3RdOmUuaGFzT3duUHJvcGVydHkoIm90aGVyIik/ZS5vdGhlcjoiIn19Tk0uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE5NKX0sTk0uybVwaXBlPWNvKHtuYW1lOiJpMThuU2VsZWN0Iix0eXBlOk5NLHB1cmU6ITB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE5NLFt7dHlwZTp2eSxhcmdzOlt7bmFtZToiaTE4blNlbGVjdCIscHVyZTohMH1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHpNe3RyYW5zZm9ybSh0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCxudWxsLDIpfX16TS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ek0pfSx6TS7JtXBpcGU9Y28oe25hbWU6Impzb24iLHR5cGU6ek0scHVyZTohMX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoek0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJqc29uIixwdXJlOiExfV19XSxudWxsLG51bGwpO2NsYXNzIElNe2NvbnN0cnVjdG9yKHQpe3RoaXMuZGlmZmVycz10LHRoaXMua2V5VmFsdWVzPVtdLHRoaXMuY29tcGFyZUZuPUhNfXRyYW5zZm9ybSh0LGU9SE0pe2lmKCF0fHwhKHQgaW5zdGFuY2VvZiBNYXApJiYib2JqZWN0IiE9dHlwZW9mIHQpcmV0dXJuIG51bGw7dGhpcy5kaWZmZXJ8fCh0aGlzLmRpZmZlcj10aGlzLmRpZmZlcnMuZmluZCh0KS5jcmVhdGUoKSk7Y29uc3Qgbj10aGlzLmRpZmZlci5kaWZmKHQpLG89ZSE9PXRoaXMuY29tcGFyZUZuO3JldHVybiBuJiYodGhpcy5rZXlWYWx1ZXM9W10sbi5mb3JFYWNoSXRlbSgodD0+e3RoaXMua2V5VmFsdWVzLnB1c2goKAovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gZSh0LG4pe3JldHVybntrZXk6dCx2YWx1ZTpufX0pKHQua2V5LHQuY3VycmVudFZhbHVlKSl9KSkpLChufHxvKSYmKHRoaXMua2V5VmFsdWVzLnNvcnQoZSksdGhpcy5jb21wYXJlRm49ZSksdGhpcy5rZXlWYWx1ZXN9fWZ1bmN0aW9uIEhNKHQsZSl7Y29uc3Qgbj10LmtleSxvPWUua2V5O2lmKG49PT1vKXJldHVybiAwO2lmKHZvaWQgMD09PW4pcmV0dXJuIDE7aWYodm9pZCAwPT09bylyZXR1cm4tMTtpZihudWxsPT09bilyZXR1cm4gMTtpZihudWxsPT09bylyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIG4mJiJzdHJpbmciPT10eXBlb2YgbylyZXR1cm4gbjxvPy0xOjE7aWYoIm51bWJlciI9PXR5cGVvZiBuJiYibnVtYmVyIj09dHlwZW9mIG8pcmV0dXJuIG4tbztpZigiYm9vbGVhbiI9PXR5cGVvZiBuJiYiYm9vbGVhbiI9PXR5cGVvZiBvKXJldHVybiBuPG8/LTE6MTtjb25zdCBpPVN0cmluZyhuKSxhPVN0cmluZyhvKTtyZXR1cm4gaT09YT8wOmk8YT8tMToxfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9JTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SU0pKFNtKExnLDE2KSl9LElNLsm1cGlwZT1jbyh7bmFtZToia2V5dmFsdWUiLHR5cGU6SU0scHVyZTohMX0pLElNLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6TGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElNLFt7dHlwZTp2eSxhcmdzOlt7bmFtZToia2V5dmFsdWUiLHB1cmU6ITF9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpMZ31dfSksbnVsbCk7Y2xhc3MgRk17Y29uc3RydWN0b3IodCl7dGhpcy5fbG9jYWxlPXR9dHJhbnNmb3JtKHQsZSxuKXtpZighVk0odCkpcmV0dXJuIG51bGw7bj1ufHx0aGlzLl9sb2NhbGU7dHJ5e3JldHVybiBRQyhqTSh0KSxuLGUpfWNhdGNoKHQpe3Rocm93IHhNKEZNLHQubWVzc2FnZSl9fX1GTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Rk0pKFNtKFd5LDE2KSl9LEZNLsm1cGlwZT1jbyh7bmFtZToibnVtYmVyIix0eXBlOkZNLHB1cmU6ITB9KSxGTS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRk0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJudW1iZXIifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1d5XX1dfV19KSxudWxsKTtjbGFzcyBMTXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9sb2NhbGU9dH10cmFuc2Zvcm0odCxlLG4pe2lmKCFWTSh0KSlyZXR1cm4gbnVsbDtuPW58fHRoaXMuX2xvY2FsZTt0cnl7cmV0dXJuKGZ1bmN0aW9uIG8odCxlLG4pe3JldHVybiBKQyh0LCRDKHhDKGUsbUMuUGVyY2VudCksdkMoZSxiQy5NaW51c1NpZ24pKSxlLGJDLkdyb3VwLGJDLkRlY2ltYWwsbiwhMCkucmVwbGFjZShuZXcgUmVnRXhwKCIlIiwiZyIpLHZDKGUsYkMuUGVyY2VudFNpZ24pKX0pKGpNKHQpLG4sZSl9Y2F0Y2godCl7dGhyb3cgeE0oTE0sdC5tZXNzYWdlKX19fUxNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMTSkoU20oV3ksMTYpKX0sTE0uybVwaXBlPWNvKHtuYW1lOiJwZXJjZW50Iix0eXBlOkxNLHB1cmU6ITB9KSxMTS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTE0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJwZXJjZW50In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX1dfSksbnVsbCk7Y2xhc3MgQk17Y29uc3RydWN0b3IodCxlPSJVU0QiKXt0aGlzLl9sb2NhbGU9dCx0aGlzLl9kZWZhdWx0Q3VycmVuY3lDb2RlPWV9dHJhbnNmb3JtKHQsZT10aGlzLl9kZWZhdWx0Q3VycmVuY3lDb2RlLG49InN5bWJvbCIsbyxpKXtpZighVk0odCkpcmV0dXJuIG51bGw7aT1pfHx0aGlzLl9sb2NhbGUsImJvb2xlYW4iPT10eXBlb2YgbiYmKCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmY29uc29sZSYmY29uc29sZS53YXJuJiZjb25zb2xlLndhcm4oJ1dhcm5pbmc6IHRoZSBjdXJyZW5jeSBwaXBlIGhhcyBiZWVuIGNoYW5nZWQgaW4gQW5ndWxhciB2NS4gVGhlIHN5bWJvbERpc3BsYXkgb3B0aW9uICh0aGlyZCBwYXJhbWV0ZXIpIGlzIG5vdyBhIHN0cmluZyBpbnN0ZWFkIG9mIGEgYm9vbGVhbi4gVGhlIGFjY2VwdGVkIHZhbHVlcyBhcmUgImNvZGUiLCAic3ltYm9sIiBvciAic3ltYm9sLW5hcnJvdyIuJyksbj1uPyJzeW1ib2wiOiJjb2RlIik7bGV0IGE9ZXx8dGhpcy5fZGVmYXVsdEN1cnJlbmN5Q29kZTsiY29kZSIhPT1uJiYoYT0ic3ltYm9sIj09PW58fCJzeW1ib2wtbmFycm93Ij09PW4/KGZ1bmN0aW9uIHIodCxlLG49ImVuIil7Y29uc3Qgbz0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gTHUodClbanUuQ3VycmVuY2llc119KShuKVt0XXx8cENbdF18fFtdLGE9b1sxXTtyZXR1cm4ibmFycm93Ij09PWUmJiJzdHJpbmciPT10eXBlb2YgYT9hOm9bMF18fHR9KShhLCJzeW1ib2wiPT09bj8id2lkZSI6Im5hcnJvdyIsaSk6bik7dHJ5e3JldHVybihmdW5jdGlvbiBuKHQsZSxvLGksYSl7Y29uc3Qgcj0kQyh4QyhlLG1DLkN1cnJlbmN5KSx2QyhlLGJDLk1pbnVzU2lnbikpO3JldHVybiByLm1pbkZyYWM9KGZ1bmN0aW9uIHModCl7bGV0IGU7Y29uc3Qgbj1wQ1t0XTtyZXR1cm4gbiYmKGU9blsyXSksIm51bWJlciI9PXR5cGVvZiBlP2U6Mn0pKGkpLHIubWF4RnJhYz1yLm1pbkZyYWMsSkModCxyLGUsYkMuQ3VycmVuY3lHcm91cCxiQy5DdXJyZW5jeURlY2ltYWwsYSkucmVwbGFjZSgiwqQiLG8pLnJlcGxhY2UoIsKkIiwiIikudHJpbSgpfSkoak0odCksaSxhLGUsbyl9Y2F0Y2godCl7dGhyb3cgeE0oQk0sdC5tZXNzYWdlKX19fWZ1bmN0aW9uIFZNKHQpe3JldHVybiEobnVsbD09dHx8IiI9PT10fHx0IT10KX1mdW5jdGlvbiBqTSh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQmJiFpc05hTihOdW1iZXIodCktcGFyc2VGbG9hdCh0KSkpcmV0dXJuIE51bWJlcih0KTtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKGAke3R9IGlzIG5vdCBhIG51bWJlcmApO3JldHVybiB0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9CTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Qk0pKFNtKFd5LDE2KSxTbShZeSwxNikpfSxCTS7JtXBpcGU9Y28oe25hbWU6ImN1cnJlbmN5Iix0eXBlOkJNLHB1cmU6ITB9KSxCTS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1l5XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCTSxbe3R5cGU6dnksYXJnczpbe25hbWU6ImN1cnJlbmN5In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1l5XX1dfV19KSxudWxsKTtjbGFzcyBVTXt0cmFuc2Zvcm0odCxlLG4pe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7aWYoIXRoaXMuc3VwcG9ydHModCkpdGhyb3cgeE0oVU0sdCk7cmV0dXJuIHQuc2xpY2UoZSxuKX1zdXBwb3J0cyh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR8fEFycmF5LmlzQXJyYXkodCl9fVVNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxVTSl9LFVNLsm1cGlwZT1jbyh7bmFtZToic2xpY2UiLHR5cGU6VU0scHVyZTohMX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVU0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJzbGljZSIscHVyZTohMX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEdNPVt3TSxFTSxrTSx6TSxVTSxGTSxMTSxETSxCTSxSTSxUTSxOTSxJTV07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIFdNe31XTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8V00pfSxXTS7JtW1vZD1hbyh7dHlwZTpXTX0pLFdNLsm1aW5qPXZuKHtwcm92aWRlcnM6W3twcm92aWRlOmVNLHVzZUNsYXNzOm9NfV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFdNLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOlt2TSxHTV0sZXhwb3J0czpbdk0sR01dLHByb3ZpZGVyczpbe3Byb3ZpZGU6ZU0sdXNlQ2xhc3M6b019XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFdNLHtkZWNsYXJhdGlvbnM6W2FNLHJNLGxNLGRNLE1NLENNLGZNLGdNLGhNLHlNLF9NLHdNLEVNLGtNLHpNLFVNLEZNLExNLERNLEJNLFJNLFRNLE5NLElNXSxleHBvcnRzOlthTSxyTSxsTSxkTSxNTSxDTSxmTSxnTSxoTSx5TSxfTSx3TSxFTSxrTSx6TSxVTSxGTSxMTSxETSxCTSxSTSxUTSxOTSxJTV19KSwKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCm5ldyBPZygiMTIuMi4xIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBZTXt9WU0uybVwcm92PU1uKHt0b2tlbjpZTSxwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5uZXcgcU0odnIoWl8pLHdpbmRvdyl9KTtjbGFzcyBxTXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuZG9jdW1lbnQ9dCx0aGlzLndpbmRvdz1lLHRoaXMub2Zmc2V0PSgpPT5bMCwwXX1zZXRPZmZzZXQodCl7dGhpcy5vZmZzZXQ9QXJyYXkuaXNBcnJheSh0KT8oKT0+dDp0fWdldFNjcm9sbFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuc3VwcG9ydHNTY3JvbGxpbmcoKT9bdGhpcy53aW5kb3cucGFnZVhPZmZzZXQsdGhpcy53aW5kb3cucGFnZVlPZmZzZXRdOlswLDBdfXNjcm9sbFRvUG9zaXRpb24odCl7dGhpcy5zdXBwb3J0c1Njcm9sbGluZygpJiZ0aGlzLndpbmRvdy5zY3JvbGxUbyh0WzBdLHRbMV0pfXNjcm9sbFRvQW5jaG9yKHQpe2lmKCF0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkpcmV0dXJuO2NvbnN0IGU9KGZ1bmN0aW9uIG4odCxlKXtjb25zdCBuPXQuZ2V0RWxlbWVudEJ5SWQoZSl8fHQuZ2V0RWxlbWVudHNCeU5hbWUoZSlbMF07aWYobilyZXR1cm4gbjtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5jcmVhdGVUcmVlV2Fsa2VyJiZ0LmJvZHkmJih0LmJvZHkuY3JlYXRlU2hhZG93Um9vdHx8dC5ib2R5LmF0dGFjaFNoYWRvdykpe2NvbnN0IG49dC5jcmVhdGVUcmVlV2Fsa2VyKHQuYm9keSxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCk7bGV0IG89bi5jdXJyZW50Tm9kZTtmb3IoO287KXtjb25zdCB0PW8uc2hhZG93Um9vdDtpZih0KXtjb25zdCBuPXQuZ2V0RWxlbWVudEJ5SWQoZSl8fHQucXVlcnlTZWxlY3RvcihgW25hbWU9IiR7ZX0iXWApO2lmKG4pcmV0dXJuIG59bz1uLm5leHROb2RlKCl9fXJldHVybiBudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHRoaXMuZG9jdW1lbnQsdCk7ZSYmKHRoaXMuc2Nyb2xsVG9FbGVtZW50KGUpLHRoaXMuYXR0ZW1wdEZvY3VzKGUpKX1zZXRIaXN0b3J5U2Nyb2xsUmVzdG9yYXRpb24odCl7aWYodGhpcy5zdXBwb3J0U2Nyb2xsUmVzdG9yYXRpb24oKSl7Y29uc3QgZT10aGlzLndpbmRvdy5oaXN0b3J5O2UmJmUuc2Nyb2xsUmVzdG9yYXRpb24mJihlLnNjcm9sbFJlc3RvcmF0aW9uPXQpfX1zY3JvbGxUb0VsZW1lbnQodCl7Y29uc3QgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ZS5sZWZ0K3RoaXMud2luZG93LnBhZ2VYT2Zmc2V0LG89ZS50b3ArdGhpcy53aW5kb3cucGFnZVlPZmZzZXQsaT10aGlzLm9mZnNldCgpO3RoaXMud2luZG93LnNjcm9sbFRvKG4taVswXSxvLWlbMV0pfWF0dGVtcHRGb2N1cyh0KXtyZXR1cm4gdC5mb2N1cygpLHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXR9c3VwcG9ydFNjcm9sbFJlc3RvcmF0aW9uKCl7dHJ5e2lmKCF0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkpcmV0dXJuITE7Y29uc3QgdD1aTSh0aGlzLndpbmRvdy5oaXN0b3J5KXx8Wk0oT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMud2luZG93Lmhpc3RvcnkpKTtyZXR1cm4hKCF0fHwhdC53cml0YWJsZSYmIXQuc2V0KX1jYXRjaCh0KXtyZXR1cm4hMX19c3VwcG9ydHNTY3JvbGxpbmcoKXt0cnl7cmV0dXJuISF0aGlzLndpbmRvdyYmISF0aGlzLndpbmRvdy5zY3JvbGxUbyYmInBhZ2VYT2Zmc2V0ImluIHRoaXMud2luZG93fWNhdGNoKHQpe3JldHVybiExfX19ZnVuY3Rpb24gWk0odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwic2Nyb2xsUmVzdG9yYXRpb24iKX1jbGFzcyBYTXt9Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgS00gZXh0ZW5kcyBjbGFzcyBleHRlbmRzIGNsYXNze317Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc3VwcG9ydHNET01FdmVudHM9ITB9fXtzdGF0aWMgbWFrZUN1cnJlbnQoKXshKGZ1bmN0aW9uIHQoZSl7WV98fChZXz1lKX0pKG5ldyBLTSl9b25BbmRDYW5jZWwodCxlLG4pe3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoZSxuLCExKSwoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4sITEpfX1kaXNwYXRjaEV2ZW50KHQsZSl7dC5kaXNwYXRjaEV2ZW50KGUpfXJlbW92ZSh0KXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX1jcmVhdGVFbGVtZW50KHQsZSl7cmV0dXJuKGU9ZXx8dGhpcy5nZXREZWZhdWx0RG9jdW1lbnQoKSkuY3JlYXRlRWxlbWVudCh0KX1jcmVhdGVIdG1sRG9jdW1lbnQoKXtyZXR1cm4gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCJmYWtlVGl0bGUiKX1nZXREZWZhdWx0RG9jdW1lbnQoKXtyZXR1cm4gZG9jdW1lbnR9aXNFbGVtZW50Tm9kZSh0KXtyZXR1cm4gdC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfWlzU2hhZG93Um9vdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnR9Z2V0R2xvYmFsRXZlbnRUYXJnZXQodCxlKXtyZXR1cm4id2luZG93Ij09PWU/d2luZG93OiJkb2N1bWVudCI9PT1lP3Q6ImJvZHkiPT09ZT90LmJvZHk6bnVsbH1nZXRCYXNlSHJlZih0KXtjb25zdCBlPShmdW5jdGlvbiBuKCl7cmV0dXJuIFFNPVFNfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJiYXNlIiksUU0/UU0uZ2V0QXR0cmlidXRlKCJocmVmIik6bnVsbH0pKCk7cmV0dXJuIG51bGw9PWU/bnVsbDooZnVuY3Rpb24gbyh0KXtKTT1KTXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLEpNLnNldEF0dHJpYnV0ZSgiaHJlZiIsdCk7Y29uc3QgZT1KTS5wYXRobmFtZTtyZXR1cm4iLyI9PT1lLmNoYXJBdCgwKT9lOmAvJHtlfWB9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoZSl9cmVzZXRCYXNlRWxlbWVudCgpe1FNPW51bGx9Z2V0VXNlckFnZW50KCl7cmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50fWdldENvb2tpZSh0KXtyZXR1cm4gaU0oZG9jdW1lbnQuY29va2llLHQpfX1sZXQgSk0sUU09bnVsbDtjb25zdCAkTT1uZXcgR2EoIlRSQU5TSVRJT05fSUQiKSx0dj1be3Byb3ZpZGU6enksdXNlRmFjdG9yeTpmdW5jdGlvbiBldih0LGUsbil7cmV0dXJuKCk9PntuLmdldChJeSkuZG9uZVByb21pc2UudGhlbigoKCk9Pntjb25zdCBuPXFfKCk7QXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KGUucXVlcnlTZWxlY3RvckFsbCgic3R5bGVbbmctdHJhbnNpdGlvbl0iKSkuZmlsdGVyKChlPT5lLmdldEF0dHJpYnV0ZSgibmctdHJhbnNpdGlvbiIpPT09dCkpLmZvckVhY2goKHQ9Pm4ucmVtb3ZlKHQpKSl9KSl9fSxkZXBzOlskTSxaXyxycF0sbXVsdGk6ITB9XTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIG52e3N0YXRpYyBpbml0KCl7IShmdW5jdGlvbiB0KGUpe2dfPWV9KShuZXcgbnYpfWFkZFRvV2luZG93KHQpe2puLmdldEFuZ3VsYXJUZXN0YWJpbGl0eT0oZSxuPSEwKT0+e2NvbnN0IG89dC5maW5kVGVzdGFiaWxpdHlJblRyZWUoZSxuKTtpZihudWxsPT1vKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgdGVzdGFiaWxpdHkgZm9yIGVsZW1lbnQuIik7cmV0dXJuIG99LGpuLmdldEFsbEFuZ3VsYXJUZXN0YWJpbGl0aWVzPSgpPT50LmdldEFsbFRlc3RhYmlsaXRpZXMoKSxqbi5nZXRBbGxBbmd1bGFyUm9vdEVsZW1lbnRzPSgpPT50LmdldEFsbFJvb3RFbGVtZW50cygpLGpuLmZyYW1ld29ya1N0YWJpbGl6ZXJzfHwoam4uZnJhbWV3b3JrU3RhYmlsaXplcnM9W10pLGpuLmZyYW1ld29ya1N0YWJpbGl6ZXJzLnB1c2goKHQ9Pntjb25zdCBlPWpuLmdldEFsbEFuZ3VsYXJUZXN0YWJpbGl0aWVzKCk7bGV0IG49ZS5sZW5ndGgsbz0hMTtjb25zdCBpPWZ1bmN0aW9uKGUpe289b3x8ZSxuLS0sMD09biYmdChvKX07ZS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LndoZW5TdGFibGUoaSl9KSl9KSl9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKHQsZSxuKXtpZihudWxsPT1lKXJldHVybiBudWxsO2NvbnN0IG89dC5nZXRUZXN0YWJpbGl0eShlKTtyZXR1cm4gbnVsbCE9bz9vOm4/cV8oKS5pc1NoYWRvd1Jvb3QoZSk/dGhpcy5maW5kVGVzdGFiaWxpdHlJblRyZWUodCxlLmhvc3QsITApOnRoaXMuZmluZFRlc3RhYmlsaXR5SW5UcmVlKHQsZS5wYXJlbnRFbGVtZW50LCEwKTpudWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3Mgb3Z7YnVpbGQoKXtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0fX1vdi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b3YpfSxvdi7JtXByb3Y9TW4oe3Rva2VuOm92LGZhY3Rvcnk6b3YuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG92LFt7dHlwZTppbX1dLG51bGwsbnVsbCksbmV3IFNyO2NvbnN0IGl2PW5ldyBHYSgiRXZlbnRNYW5hZ2VyUGx1Z2lucyIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBhdntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3pvbmU9ZSx0aGlzLl9ldmVudE5hbWVUb1BsdWdpbj1uZXcgTWFwLHQuZm9yRWFjaCgodD0+dC5tYW5hZ2VyPXRoaXMpKSx0aGlzLl9wbHVnaW5zPXQuc2xpY2UoKS5yZXZlcnNlKCl9YWRkRXZlbnRMaXN0ZW5lcih0LGUsbil7cmV0dXJuIHRoaXMuX2ZpbmRQbHVnaW5Gb3IoZSkuYWRkRXZlbnRMaXN0ZW5lcih0LGUsbil9YWRkR2xvYmFsRXZlbnRMaXN0ZW5lcih0LGUsbil7cmV0dXJuIHRoaXMuX2ZpbmRQbHVnaW5Gb3IoZSkuYWRkR2xvYmFsRXZlbnRMaXN0ZW5lcih0LGUsbil9Z2V0Wm9uZSgpe3JldHVybiB0aGlzLl96b25lfV9maW5kUGx1Z2luRm9yKHQpe2NvbnN0IGU9dGhpcy5fZXZlbnROYW1lVG9QbHVnaW4uZ2V0KHQpO2lmKGUpcmV0dXJuIGU7Y29uc3Qgbj10aGlzLl9wbHVnaW5zO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSsrKXtjb25zdCBvPW5bZV07aWYoby5zdXBwb3J0cyh0KSlyZXR1cm4gdGhpcy5fZXZlbnROYW1lVG9QbHVnaW4uc2V0KHQsbyksb310aHJvdyBuZXcgRXJyb3IoYE5vIGV2ZW50IG1hbmFnZXIgcGx1Z2luIGZvdW5kIGZvciBldmVudCAke3R9YCl9fWF2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxhdikodnIoaXYpLHZyKGFfKSl9LGF2Lsm1cHJvdj1Nbih7dG9rZW46YXYsZmFjdG9yeTphdi7JtWZhY30pLGF2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbaXZdfV19LHt0eXBlOmFffV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChhdixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbaXZdfV19LHt0eXBlOmFffV19KSxudWxsKTtjbGFzcyBydntjb25zdHJ1Y3Rvcih0KXt0aGlzLl9kb2M9dH1hZGRHbG9iYWxFdmVudExpc3RlbmVyKHQsZSxuKXtjb25zdCBvPXFfKCkuZ2V0R2xvYmFsRXZlbnRUYXJnZXQodGhpcy5fZG9jLHQpO2lmKCFvKXRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZXZlbnQgdGFyZ2V0ICR7b30gZm9yIGV2ZW50ICR7ZX1gKTtyZXR1cm4gdGhpcy5hZGRFdmVudExpc3RlbmVyKG8sZSxuKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHN2e2NvbnN0cnVjdG9yKCl7dGhpcy5fc3R5bGVzU2V0PW5ldyBTZXR9YWRkU3R5bGVzKHQpe2NvbnN0IGU9bmV3IFNldDt0LmZvckVhY2goKHQ9Pnt0aGlzLl9zdHlsZXNTZXQuaGFzKHQpfHwodGhpcy5fc3R5bGVzU2V0LmFkZCh0KSxlLmFkZCh0KSl9KSksdGhpcy5vblN0eWxlc0FkZGVkKGUpfW9uU3R5bGVzQWRkZWQodCl7fWdldEFsbFN0eWxlcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX3N0eWxlc1NldCl9fXN2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxzdil9LHN2Lsm1cHJvdj1Nbih7dG9rZW46c3YsZmFjdG9yeTpzdi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoc3YsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSxudWxsKTtjbGFzcyBsdiBleHRlbmRzIHN2e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fZG9jPXQsdGhpcy5faG9zdE5vZGVzPW5ldyBNYXAsdGhpcy5faG9zdE5vZGVzLnNldCh0LmhlYWQsW10pfV9hZGRTdHlsZXNUb0hvc3QodCxlLG4pe3QuZm9yRWFjaCgodD0+e2NvbnN0IG89dGhpcy5fZG9jLmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7by50ZXh0Q29udGVudD10LG4ucHVzaChlLmFwcGVuZENoaWxkKG8pKX0pKX1hZGRIb3N0KHQpe2NvbnN0IGU9W107dGhpcy5fYWRkU3R5bGVzVG9Ib3N0KHRoaXMuX3N0eWxlc1NldCx0LGUpLHRoaXMuX2hvc3ROb2Rlcy5zZXQodCxlKX1yZW1vdmVIb3N0KHQpe2NvbnN0IGU9dGhpcy5faG9zdE5vZGVzLmdldCh0KTtlJiZlLmZvckVhY2goY3YpLHRoaXMuX2hvc3ROb2Rlcy5kZWxldGUodCl9b25TdHlsZXNBZGRlZCh0KXt0aGlzLl9ob3N0Tm9kZXMuZm9yRWFjaCgoKGUsbik9Pnt0aGlzLl9hZGRTdHlsZXNUb0hvc3QodCxuLGUpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5faG9zdE5vZGVzLmZvckVhY2goKHQ9PnQuZm9yRWFjaChjdikpKX19ZnVuY3Rpb24gY3YodCl7cV8oKS5yZW1vdmUodCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2x2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsdikodnIoWl8pKX0sbHYuybVwcm92PU1uKHt0b2tlbjpsdixmYWN0b3J5Omx2Lsm1ZmFjfSksbHYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGx2LFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpO2NvbnN0IGR2PXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifSxwdj0vJUNPTVAlL2csbXY9InVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fCEhbmdEZXZNb2RlO2Z1bmN0aW9uIHV2KHQsZSxuKXtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7bGV0IGk9ZVtvXTtBcnJheS5pc0FycmF5KGkpP3V2KHQsaSxuKTooaT1pLnJlcGxhY2UocHYsdCksbi5wdXNoKGkpKX1yZXR1cm4gbn1mdW5jdGlvbiBmdih0KXtyZXR1cm4gZT0+e2lmKCJfX25nVW53cmFwX18iPT09ZSlyZXR1cm4gdDshMT09PXQoZSkmJihlLnByZXZlbnREZWZhdWx0KCksZS5yZXR1cm5WYWx1ZT0hMSl9fWxldCBndj0hMTtjbGFzcyBodntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5ldmVudE1hbmFnZXI9dCx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9ZSx0aGlzLmFwcElkPW4sdGhpcy5yZW5kZXJlckJ5Q29tcElkPW5ldyBNYXAsdGhpcy5kZWZhdWx0UmVuZGVyZXI9bmV3IGJ2KHQpfWNyZWF0ZVJlbmRlcmVyKHQsZSl7aWYoIXR8fCFlKXJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcjtzd2l0Y2goZS5lbmNhcHN1bGF0aW9uKXtjYXNlIEhuLkVtdWxhdGVkOntsZXQgbj10aGlzLnJlbmRlcmVyQnlDb21wSWQuZ2V0KGUuaWQpO3JldHVybiBufHwobj1uZXcgQ3YodGhpcy5ldmVudE1hbmFnZXIsdGhpcy5zaGFyZWRTdHlsZXNIb3N0LGUsdGhpcy5hcHBJZCksdGhpcy5yZW5kZXJlckJ5Q29tcElkLnNldChlLmlkLG4pKSxuLmFwcGx5VG9Ib3N0KHQpLG59Y2FzZSAxOmNhc2UgSG4uU2hhZG93RG9tOnJldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxndnx8MSE9PWUuZW5jYXBzdWxhdGlvbnx8KGd2PSEwLGNvbnNvbGUud2FybigiVmlld0VuY2Fwc3VsYXRpb24uTmF0aXZlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIEZhbGxpbmcgYmFjayB0byBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb20uIFRoZSBmYWxsYmFjayB3aWxsIGJlIHJlbW92ZWQgaW4gdjEyLiIpKSxuZXcgTXYodGhpcy5ldmVudE1hbmFnZXIsdGhpcy5zaGFyZWRTdHlsZXNIb3N0LHQsZSk7ZGVmYXVsdDppZighdGhpcy5yZW5kZXJlckJ5Q29tcElkLmhhcyhlLmlkKSl7Y29uc3QgdD11dihlLmlkLGUuc3R5bGVzLFtdKTt0aGlzLnNoYXJlZFN0eWxlc0hvc3QuYWRkU3R5bGVzKHQpLHRoaXMucmVuZGVyZXJCeUNvbXBJZC5zZXQoZS5pZCx0aGlzLmRlZmF1bHRSZW5kZXJlcil9cmV0dXJuIHRoaXMuZGVmYXVsdFJlbmRlcmVyfX1iZWdpbigpe31lbmQoKXt9fWh2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxodikodnIoYXYpLHZyKGx2KSx2cihIeSkpfSxodi7JtXByb3Y9TW4oe3Rva2VuOmh2LGZhY3Rvcnk6aHYuybVmYWN9KSxodi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmF2fSx7dHlwZTpsdn0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0h5XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChodixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6YXZ9LHt0eXBlOmx2fSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSHldfV19XX0pLG51bGwpO2NsYXNzIGJ2e2NvbnN0cnVjdG9yKHQpe3RoaXMuZXZlbnRNYW5hZ2VyPXQsdGhpcy5kYXRhPU9iamVjdC5jcmVhdGUobnVsbCl9ZGVzdHJveSgpe31jcmVhdGVFbGVtZW50KHQsZSl7cmV0dXJuIGU/ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGR2W2VdfHxlLHQpOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCl9Y3JlYXRlQ29tbWVudCh0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCh0KX1jcmVhdGVUZXh0KHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KX1hcHBlbmRDaGlsZCh0LGUpe3QuYXBwZW5kQ2hpbGQoZSl9aW5zZXJ0QmVmb3JlKHQsZSxuKXt0JiZ0Lmluc2VydEJlZm9yZShlLG4pfXJlbW92ZUNoaWxkKHQsZSl7dCYmdC5yZW1vdmVDaGlsZChlKX1zZWxlY3RSb290RWxlbWVudCh0LGUpe2xldCBuPSJzdHJpbmciPT10eXBlb2YgdD9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpOnQ7aWYoIW4pdGhyb3cgbmV3IEVycm9yKGBUaGUgc2VsZWN0b3IgIiR7dH0iIGRpZCBub3QgbWF0Y2ggYW55IGVsZW1lbnRzYCk7cmV0dXJuIGV8fChuLnRleHRDb250ZW50PSIiKSxufXBhcmVudE5vZGUodCl7cmV0dXJuIHQucGFyZW50Tm9kZX1uZXh0U2libGluZyh0KXtyZXR1cm4gdC5uZXh0U2libGluZ31zZXRBdHRyaWJ1dGUodCxlLG4sbyl7aWYobyl7ZT1vKyI6IitlO2NvbnN0IGk9ZHZbb107aT90LnNldEF0dHJpYnV0ZU5TKGksZSxuKTp0LnNldEF0dHJpYnV0ZShlLG4pfWVsc2UgdC5zZXRBdHRyaWJ1dGUoZSxuKX1yZW1vdmVBdHRyaWJ1dGUodCxlLG4pe2lmKG4pe2NvbnN0IG89ZHZbbl07bz90LnJlbW92ZUF0dHJpYnV0ZU5TKG8sZSk6dC5yZW1vdmVBdHRyaWJ1dGUoYCR7bn06JHtlfWApfWVsc2UgdC5yZW1vdmVBdHRyaWJ1dGUoZSl9YWRkQ2xhc3ModCxlKXt0LmNsYXNzTGlzdC5hZGQoZSl9cmVtb3ZlQ2xhc3ModCxlKXt0LmNsYXNzTGlzdC5yZW1vdmUoZSl9c2V0U3R5bGUodCxlLG4sbyl7byYoY2wuRGFzaENhc2V8Y2wuSW1wb3J0YW50KT90LnN0eWxlLnNldFByb3BlcnR5KGUsbixvJmNsLkltcG9ydGFudD8iaW1wb3J0YW50IjoiIik6dC5zdHlsZVtlXT1ufXJlbW92ZVN0eWxlKHQsZSxuKXtuJmNsLkRhc2hDYXNlP3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoZSk6dC5zdHlsZVtlXT0iIn1zZXRQcm9wZXJ0eSh0LGUsbil7bXYmJl92KGUsInByb3BlcnR5IiksdFtlXT1ufXNldFZhbHVlKHQsZSl7dC5ub2RlVmFsdWU9ZX1saXN0ZW4odCxlLG4pe3JldHVybiBtdiYmX3YoZSwibGlzdGVuZXIiKSwic3RyaW5nIj09dHlwZW9mIHQ/dGhpcy5ldmVudE1hbmFnZXIuYWRkR2xvYmFsRXZlbnRMaXN0ZW5lcih0LGUsZnYobikpOnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodCxlLGZ2KG4pKX19Y29uc3QgeXY9IkAiLmNoYXJDb2RlQXQoMCk7ZnVuY3Rpb24gX3YodCxlKXtpZih0LmNoYXJDb2RlQXQoMCk9PT15dil0aHJvdyBuZXcgRXJyb3IoYEZvdW5kIHRoZSBzeW50aGV0aWMgJHtlfSAke3R9LiBQbGVhc2UgaW5jbHVkZSBlaXRoZXIgIkJyb3dzZXJBbmltYXRpb25zTW9kdWxlIiBvciAiTm9vcEFuaW1hdGlvbnNNb2R1bGUiIGluIHlvdXIgYXBwbGljYXRpb24uYCl9Y2xhc3MgQ3YgZXh0ZW5kcyBidntjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0KSx0aGlzLmNvbXBvbmVudD1uO2NvbnN0IGk9dXYobysiLSIrbi5pZCxuLnN0eWxlcyxbXSk7ZS5hZGRTdHlsZXMoaSksdGhpcy5jb250ZW50QXR0cj0oZnVuY3Rpb24gYSh0KXtyZXR1cm4iX25nY29udGVudC0lQ09NUCUiLnJlcGxhY2UocHYsdCl9KShvKyItIituLmlkKSx0aGlzLmhvc3RBdHRyPShmdW5jdGlvbiByKHQpe3JldHVybiJfbmdob3N0LSVDT01QJSIucmVwbGFjZShwdix0KX0pKG8rIi0iK24uaWQpfWFwcGx5VG9Ib3N0KHQpe3N1cGVyLnNldEF0dHJpYnV0ZSh0LHRoaXMuaG9zdEF0dHIsIiIpfWNyZWF0ZUVsZW1lbnQodCxlKXtjb25zdCBuPXN1cGVyLmNyZWF0ZUVsZW1lbnQodCxlKTtyZXR1cm4gc3VwZXIuc2V0QXR0cmlidXRlKG4sdGhpcy5jb250ZW50QXR0ciwiIiksbn19Y2xhc3MgTXYgZXh0ZW5kcyBidntjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0KSx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9ZSx0aGlzLmhvc3RFbD1uLHRoaXMuc2hhZG93Um9vdD1uLmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiJ9KSx0aGlzLnNoYXJlZFN0eWxlc0hvc3QuYWRkSG9zdCh0aGlzLnNoYWRvd1Jvb3QpO2NvbnN0IGk9dXYoby5pZCxvLnN0eWxlcyxbXSk7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtlLnRleHRDb250ZW50PWlbdF0sdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKGUpfX1ub2RlT3JTaGFkb3dSb290KHQpe3JldHVybiB0PT09dGhpcy5ob3N0RWw/dGhpcy5zaGFkb3dSb290OnR9ZGVzdHJveSgpe3RoaXMuc2hhcmVkU3R5bGVzSG9zdC5yZW1vdmVIb3N0KHRoaXMuc2hhZG93Um9vdCl9YXBwZW5kQ2hpbGQodCxlKXtyZXR1cm4gc3VwZXIuYXBwZW5kQ2hpbGQodGhpcy5ub2RlT3JTaGFkb3dSb290KHQpLGUpfWluc2VydEJlZm9yZSh0LGUsbil7cmV0dXJuIHN1cGVyLmluc2VydEJlZm9yZSh0aGlzLm5vZGVPclNoYWRvd1Jvb3QodCksZSxuKX1yZW1vdmVDaGlsZCh0LGUpe3JldHVybiBzdXBlci5yZW1vdmVDaGlsZCh0aGlzLm5vZGVPclNoYWRvd1Jvb3QodCksZSl9cGFyZW50Tm9kZSh0KXtyZXR1cm4gdGhpcy5ub2RlT3JTaGFkb3dSb290KHN1cGVyLnBhcmVudE5vZGUodGhpcy5ub2RlT3JTaGFkb3dSb290KHQpKSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB2diBleHRlbmRzIHJ2e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfXN1cHBvcnRzKHQpe3JldHVybiEwfWFkZEV2ZW50TGlzdGVuZXIodCxlLG4pe3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoZSxuLCExKSwoKT0+dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHQsZSxuKX1yZW1vdmVFdmVudExpc3RlbmVyKHQsZSxuKXtyZXR1cm4gdC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbil9fXZ2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx2dikodnIoWl8pKX0sdnYuybVwcm92PU1uKHt0b2tlbjp2dixmYWN0b3J5OnZ2Lsm1ZmFjfSksdnYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHZ2LFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgeHY9e3BhbjohMCxwYW5zdGFydDohMCxwYW5tb3ZlOiEwLHBhbmVuZDohMCxwYW5jYW5jZWw6ITAscGFubGVmdDohMCxwYW5yaWdodDohMCxwYW51cDohMCxwYW5kb3duOiEwLHBpbmNoOiEwLHBpbmNoc3RhcnQ6ITAscGluY2htb3ZlOiEwLHBpbmNoZW5kOiEwLHBpbmNoY2FuY2VsOiEwLHBpbmNoaW46ITAscGluY2hvdXQ6ITAscHJlc3M6ITAscHJlc3N1cDohMCxyb3RhdGU6ITAscm90YXRlc3RhcnQ6ITAscm90YXRlbW92ZTohMCxyb3RhdGVlbmQ6ITAscm90YXRlY2FuY2VsOiEwLHN3aXBlOiEwLHN3aXBlbGVmdDohMCxzd2lwZXJpZ2h0OiEwLHN3aXBldXA6ITAsc3dpcGVkb3duOiEwLHRhcDohMCxkb3VibGV0YXA6ITB9LE92PW5ldyBHYSgiSGFtbWVyR2VzdHVyZUNvbmZpZyIpLFB2PW5ldyBHYSgiSGFtbWVyTG9hZGVyIik7Y2xhc3Mgd3Z7Y29uc3RydWN0b3IoKXt0aGlzLmV2ZW50cz1bXSx0aGlzLm92ZXJyaWRlcz17fX1idWlsZEhhbW1lcih0KXtjb25zdCBlPW5ldyBIYW1tZXIodCx0aGlzLm9wdGlvbnMpO2UuZ2V0KCJwaW5jaCIpLnNldCh7ZW5hYmxlOiEwfSksZS5nZXQoInJvdGF0ZSIpLnNldCh7ZW5hYmxlOiEwfSk7Zm9yKGNvbnN0IHQgaW4gdGhpcy5vdmVycmlkZXMpZS5nZXQodCkuc2V0KHRoaXMub3ZlcnJpZGVzW3RdKTtyZXR1cm4gZX19d3YuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHd2KX0sd3YuybVwcm92PU1uKHt0b2tlbjp3dixmYWN0b3J5Ond2Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh3dixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NsYXNzIGt2IGV4dGVuZHMgcnZ7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCksdGhpcy5fY29uZmlnPWUsdGhpcy5jb25zb2xlPW4sdGhpcy5sb2FkZXI9byx0aGlzLl9sb2FkZXJQcm9taXNlPW51bGx9c3VwcG9ydHModCl7cmV0dXJuISgheHYuaGFzT3duUHJvcGVydHkodC50b0xvd2VyQ2FzZSgpKSYmIXRoaXMuaXNDdXN0b21FdmVudCh0KXx8IXdpbmRvdy5IYW1tZXImJiF0aGlzLmxvYWRlciYmKCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmdGhpcy5jb25zb2xlLndhcm4oYFRoZSAiJHt0fSIgZXZlbnQgY2Fubm90IGJlIGJvdW5kIGJlY2F1c2UgSGFtbWVyLkpTIGlzIG5vdCBsb2FkZWQgYW5kIG5vIGN1c3RvbSBsb2FkZXIgaGFzIGJlZW4gc3BlY2lmaWVkLmApLDEpKX1hZGRFdmVudExpc3RlbmVyKHQsZSxuKXtjb25zdCBvPXRoaXMubWFuYWdlci5nZXRab25lKCk7aWYoZT1lLnRvTG93ZXJDYXNlKCksIXdpbmRvdy5IYW1tZXImJnRoaXMubG9hZGVyKXt0aGlzLl9sb2FkZXJQcm9taXNlPXRoaXMuX2xvYWRlclByb21pc2V8fHRoaXMubG9hZGVyKCk7bGV0IG89ITEsaT0oKT0+e289ITB9O3JldHVybiB0aGlzLl9sb2FkZXJQcm9taXNlLnRoZW4oKCgpPT57aWYoIXdpbmRvdy5IYW1tZXIpcmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZ0aGlzLmNvbnNvbGUud2FybigiVGhlIGN1c3RvbSBIQU1NRVJfTE9BREVSIGNvbXBsZXRlZCwgYnV0IEhhbW1lci5KUyBpcyBub3QgcHJlc2VudC4iKSx2b2lkKGk9KCk9Pnt9KTtvfHwoaT10aGlzLmFkZEV2ZW50TGlzdGVuZXIodCxlLG4pKX0pKS5jYXRjaCgoKCk9PnsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJnRoaXMuY29uc29sZS53YXJuKGBUaGUgIiR7ZX0iIGV2ZW50IGNhbm5vdCBiZSBib3VuZCBiZWNhdXNlIHRoZSBjdXN0b20gSGFtbWVyLkpTIGxvYWRlciBmYWlsZWQuYCksaT0oKT0+e319KSksKCk9PntpKCl9fXJldHVybiBvLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e2NvbnN0IGk9dGhpcy5fY29uZmlnLmJ1aWxkSGFtbWVyKHQpLGE9ZnVuY3Rpb24odCl7by5ydW5HdWFyZGVkKChmdW5jdGlvbigpe24odCl9KSl9O3JldHVybiBpLm9uKGUsYSksKCk9PntpLm9mZihlLGEpLCJmdW5jdGlvbiI9PXR5cGVvZiBpLmRlc3Ryb3kmJmkuZGVzdHJveSgpfX0pKX1pc0N1c3RvbUV2ZW50KHQpe3JldHVybiB0aGlzLl9jb25maWcuZXZlbnRzLmluZGV4T2YodCk+LTF9fWt2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrdikodnIoWl8pLHZyKE92KSx2cihHeSksdnIoUHYsOCkpfSxrdi7JtXByb3Y9TW4oe3Rva2VuOmt2LGZhY3Rvcnk6a3YuybVmYWN9KSxrdi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6d3YsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbT3ZdfV19LHt0eXBlOkd5fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1B2XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrdixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp3dixkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltPdl19XX0se3R5cGU6R3l9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUHZdfV19XX0pLG51bGwpO2NvbnN0IFN2PVt7cHJvdmlkZTppdix1c2VDbGFzczprdixtdWx0aTohMCxkZXBzOltaXyxPdixHeSxbbmV3IFNyLFB2XV19LHtwcm92aWRlOk92LHVzZUNsYXNzOnd2LGRlcHM6W119XTtjbGFzcyBEdnt9RHYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fER2KX0sRHYuybVtb2Q9YW8oe3R5cGU6RHZ9KSxEdi7JtWluaj12bih7cHJvdmlkZXJzOlN2fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChEdixbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpTdn1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEV2PVsiYWx0IiwiY29udHJvbCIsIm1ldGEiLCJzaGlmdCJdLFJ2PXsiXGIiOiJCYWNrc3BhY2UiLCJcdCI6IlRhYiIsIn8iOiJEZWxldGUiLCIbIjoiRXNjYXBlIixEZWw6IkRlbGV0ZSIsRXNjOiJFc2NhcGUiLExlZnQ6IkFycm93TGVmdCIsUmlnaHQ6IkFycm93UmlnaHQiLFVwOiJBcnJvd1VwIixEb3duOiJBcnJvd0Rvd24iLE1lbnU6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLFdpbjoiT1MifSxBdj17QToiMSIsQjoiMiIsQzoiMyIsRDoiNCIsRToiNSIsRjoiNiIsRzoiNyIsSDoiOCIsSToiOSIsSjoiKiIsSzoiKyIsTToiLSIsTjoiLiIsTzoiLyIsImAiOiIwIiwiwpAiOiJOdW1Mb2NrIn0sVHY9e2FsdDp0PT50LmFsdEtleSxjb250cm9sOnQ9PnQuY3RybEtleSxtZXRhOnQ9PnQubWV0YUtleSxzaGlmdDp0PT50LnNoaWZ0S2V5fTtjbGFzcyBOdiBleHRlbmRzIHJ2e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfXN1cHBvcnRzKHQpe3JldHVybiBudWxsIT1Odi5wYXJzZUV2ZW50TmFtZSh0KX1hZGRFdmVudExpc3RlbmVyKHQsZSxuKXtjb25zdCBvPU52LnBhcnNlRXZlbnROYW1lKGUpLGk9TnYuZXZlbnRDYWxsYmFjayhvLmZ1bGxLZXksbix0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpKTtyZXR1cm4gdGhpcy5tYW5hZ2VyLmdldFpvbmUoKS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnFfKCkub25BbmRDYW5jZWwodCxvLmRvbUV2ZW50TmFtZSxpKSkpfXN0YXRpYyBwYXJzZUV2ZW50TmFtZSh0KXtjb25zdCBlPXQudG9Mb3dlckNhc2UoKS5zcGxpdCgiLiIpLG49ZS5zaGlmdCgpO2lmKDA9PT1lLmxlbmd0aHx8ImtleWRvd24iIT09biYmImtleXVwIiE9PW4pcmV0dXJuIG51bGw7Y29uc3Qgbz1Odi5fbm9ybWFsaXplS2V5KGUucG9wKCkpO2xldCBpPSIiO2lmKEV2LmZvckVhY2goKHQ9Pntjb25zdCBuPWUuaW5kZXhPZih0KTtuPi0xJiYoZS5zcGxpY2UobiwxKSxpKz10KyIuIil9KSksaSs9bywwIT1lLmxlbmd0aHx8MD09PW8ubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0IGE9e307cmV0dXJuIGEuZG9tRXZlbnROYW1lPW4sYS5mdWxsS2V5PWksYX1zdGF0aWMgZ2V0RXZlbnRGdWxsS2V5KHQpe2xldCBlPSIiLG49KGZ1bmN0aW9uIG8odCl7bGV0IGU9dC5rZXk7aWYobnVsbD09ZSl7aWYoZT10LmtleUlkZW50aWZpZXIsbnVsbD09ZSlyZXR1cm4iVW5pZGVudGlmaWVkIjtlLnN0YXJ0c1dpdGgoIlUrIikmJihlPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoZS5zdWJzdHJpbmcoMiksMTYpKSwzPT09dC5sb2NhdGlvbiYmQXYuaGFzT3duUHJvcGVydHkoZSkmJihlPUF2W2VdKSl9cmV0dXJuIFJ2W2VdfHxlfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQpO3JldHVybiBuPW4udG9Mb3dlckNhc2UoKSwiICI9PT1uP249InNwYWNlIjoiLiI9PT1uJiYobj0iZG90IiksRXYuZm9yRWFjaCgobz0+e28hPW4mJigwLFR2W29dKSh0KSYmKGUrPW8rIi4iKX0pKSxlKz1uLGV9c3RhdGljIGV2ZW50Q2FsbGJhY2sodCxlLG4pe3JldHVybiBvPT57TnYuZ2V0RXZlbnRGdWxsS2V5KG8pPT09dCYmbi5ydW5HdWFyZGVkKCgoKT0+ZShvKSkpfX1zdGF0aWMgX25vcm1hbGl6ZUtleSh0KXtzd2l0Y2godCl7Y2FzZSJlc2MiOnJldHVybiJlc2NhcGUiO2RlZmF1bHQ6cmV0dXJuIHR9fX1Odi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TnYpKHZyKFpfKSl9LE52Lsm1cHJvdj1Nbih7dG9rZW46TnYsZmFjdG9yeTpOdi7JtWZhY30pLE52LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOdixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSxudWxsKTtjbGFzcyB6dnt9ZnVuY3Rpb24gSXYodCl7cmV0dXJuIG5ldyBIdih0LmdldChaXykpfXp2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx6dil9LHp2Lsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIHZyKEh2KX0sdG9rZW46enYscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHp2LFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCIsdXNlRXhpc3Rpbmc6cWUoKCgpPT5IdikpfV19XSxudWxsLG51bGwpO2NsYXNzIEh2IGV4dGVuZHMgenZ7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9kb2M9dH1zYW5pdGl6ZSh0LGUpe2lmKG51bGw9PWUpcmV0dXJuIG51bGw7c3dpdGNoKHQpe2Nhc2UgQXMuTk9ORTpyZXR1cm4gZTtjYXNlIEFzLkhUTUw6cmV0dXJuIGVzKGUsIkhUTUwiKT90cyhlKTpFcyh0aGlzLl9kb2MsU3RyaW5nKGUpKS50b1N0cmluZygpO2Nhc2UgQXMuU1RZTEU6cmV0dXJuIGVzKGUsIlN0eWxlIik/dHMoZSk6ZTtjYXNlIEFzLlNDUklQVDppZihlcyhlLCJTY3JpcHQiKSlyZXR1cm4gdHMoZSk7dGhyb3cgbmV3IEVycm9yKCJ1bnNhZmUgdmFsdWUgdXNlZCBpbiBhIHNjcmlwdCBjb250ZXh0Iik7Y2FzZSBBcy5VUkw6cmV0dXJuIG5zKGUpLGVzKGUsIlVSTCIpP3RzKGUpOmxzKFN0cmluZyhlKSk7Y2FzZSBBcy5SRVNPVVJDRV9VUkw6aWYoZXMoZSwiUmVzb3VyY2VVUkwiKSlyZXR1cm4gdHMoZSk7dGhyb3cgbmV3IEVycm9yKCJ1bnNhZmUgdmFsdWUgdXNlZCBpbiBhIHJlc291cmNlIFVSTCBjb250ZXh0IChzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcykiKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBTZWN1cml0eUNvbnRleHQgJHt0fSAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpYCl9fWJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHQpe3JldHVybihmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgWHIodCl9KSh0KX1ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyBLcih0KX0pKHQpfWJ5cGFzc1NlY3VyaXR5VHJ1c3RTY3JpcHQodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyBKcih0KX0pKHQpfWJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyBRcih0KX0pKHQpfWJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3ICRyKHQpfSkodCl9fUh2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIdikodnIoWl8pKX0sSHYuybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gSXYodnIoR2QpKX0sdG9rZW46SHYscHJvdmlkZWRJbjoicm9vdCJ9KSxIdi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSHYsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290Iix1c2VGYWN0b3J5Okl2LGRlcHM6W3JwXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y29uc3QgRnY9Q18oUl8sImJyb3dzZXIiLFt7cHJvdmlkZTpqeSx1c2VWYWx1ZToiYnJvd3NlciJ9LHtwcm92aWRlOlZ5LHVzZVZhbHVlOgovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gTHYoKXtLTS5tYWtlQ3VycmVudCgpLG52LmluaXQoKX0sbXVsdGk6ITB9LHtwcm92aWRlOlpfLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gQnYoKXtyZXR1cm4oZnVuY3Rpb24gdChlKXtLbz1lfSkoZG9jdW1lbnQpLGRvY3VtZW50fSxkZXBzOltdfV0pLFZ2PVtbXSx7cHJvdmlkZTpZZCx1c2VWYWx1ZToicm9vdCJ9LHtwcm92aWRlOlpzLHVzZUZhY3Rvcnk6ZnVuY3Rpb24ganYoKXtyZXR1cm4gbmV3IFpzfSxkZXBzOltdfSx7cHJvdmlkZTppdix1c2VDbGFzczp2dixtdWx0aTohMCxkZXBzOltaXyxhXyxqeV19LHtwcm92aWRlOml2LHVzZUNsYXNzOk52LG11bHRpOiEwLGRlcHM6W1pfXX0sW10se3Byb3ZpZGU6aHYsdXNlQ2xhc3M6aHYsZGVwczpbYXYsbHYsSHldfSx7cHJvdmlkZTpfZyx1c2VFeGlzdGluZzpodn0se3Byb3ZpZGU6c3YsdXNlRXhpc3Rpbmc6bHZ9LHtwcm92aWRlOmx2LHVzZUNsYXNzOmx2LGRlcHM6W1pfXX0se3Byb3ZpZGU6bV8sdXNlQ2xhc3M6bV8sZGVwczpbYV9dfSx7cHJvdmlkZTphdix1c2VDbGFzczphdixkZXBzOltpdixhX119LHtwcm92aWRlOlhNLHVzZUNsYXNzOm92LGRlcHM6W119LFtdXTtjbGFzcyBVdntjb25zdHJ1Y3Rvcih0KXtpZih0KXRocm93IG5ldyBFcnJvcigiQnJvd3Nlck1vZHVsZSBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZC4gSWYgeW91IG5lZWQgYWNjZXNzIHRvIGNvbW1vbiBkaXJlY3RpdmVzIHN1Y2ggYXMgTmdJZiBhbmQgTmdGb3IgZnJvbSBhIGxhenkgbG9hZGVkIG1vZHVsZSwgaW1wb3J0IENvbW1vbk1vZHVsZSBpbnN0ZWFkLiIpfXN0YXRpYyB3aXRoU2VydmVyVHJhbnNpdGlvbih0KXtyZXR1cm57bmdNb2R1bGU6VXYscHJvdmlkZXJzOlt7cHJvdmlkZTpIeSx1c2VWYWx1ZTp0LmFwcElkfSx7cHJvdmlkZTokTSx1c2VFeGlzdGluZzpIeX0sdHZdfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBHdigpe3JldHVybiBuZXcgV3YodnIoWl8pKX1Vdi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VXYpKHZyKFV2LDEyKSl9LFV2Lsm1bW9kPWFvKHt0eXBlOlV2fSksVXYuybVpbmo9dm4oe3Byb3ZpZGVyczpWdixpbXBvcnRzOltXTSxIX119KSxVdi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlV2LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpFcn0se3R5cGU6a3IsYXJnczpbVXZdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFV2LFt7dHlwZTpBeSxhcmdzOlt7cHJvdmlkZXJzOlZ2LGV4cG9ydHM6W1dNLEhfXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlV2LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpFcn0se3R5cGU6a3IsYXJnczpbVXZdfV19XX0pLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVXYse2V4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bV00sSF9dfX0pO2NsYXNzIFd2e2NvbnN0cnVjdG9yKHQpe3RoaXMuX2RvYz10LHRoaXMuX2RvbT1xXygpfWFkZFRhZyh0LGU9ITEpe3JldHVybiB0P3RoaXMuX2dldE9yQ3JlYXRlRWxlbWVudCh0LGUpOm51bGx9YWRkVGFncyh0LGU9ITEpe3JldHVybiB0P3QucmVkdWNlKCgodCxuKT0+KG4mJnQucHVzaCh0aGlzLl9nZXRPckNyZWF0ZUVsZW1lbnQobixlKSksdCkpLFtdKTpbXX1nZXRUYWcodCl7cmV0dXJuIHQmJnRoaXMuX2RvYy5xdWVyeVNlbGVjdG9yKGBtZXRhWyR7dH1dYCl8fG51bGx9Z2V0VGFncyh0KXtpZighdClyZXR1cm5bXTtjb25zdCBlPXRoaXMuX2RvYy5xdWVyeVNlbGVjdG9yQWxsKGBtZXRhWyR7dH1dYCk7cmV0dXJuIGU/W10uc2xpY2UuY2FsbChlKTpbXX11cGRhdGVUYWcodCxlKXtpZighdClyZXR1cm4gbnVsbDtlPWV8fHRoaXMuX3BhcnNlU2VsZWN0b3IodCk7Y29uc3Qgbj10aGlzLmdldFRhZyhlKTtyZXR1cm4gbj90aGlzLl9zZXRNZXRhRWxlbWVudEF0dHJpYnV0ZXModCxuKTp0aGlzLl9nZXRPckNyZWF0ZUVsZW1lbnQodCwhMCl9cmVtb3ZlVGFnKHQpe3RoaXMucmVtb3ZlVGFnRWxlbWVudCh0aGlzLmdldFRhZyh0KSl9cmVtb3ZlVGFnRWxlbWVudCh0KXt0JiZ0aGlzLl9kb20ucmVtb3ZlKHQpfV9nZXRPckNyZWF0ZUVsZW1lbnQodCxlPSExKXtpZighZSl7Y29uc3QgZT10aGlzLl9wYXJzZVNlbGVjdG9yKHQpLG49dGhpcy5nZXRUYWdzKGUpLmZpbHRlcigoZT0+dGhpcy5fY29udGFpbnNBdHRyaWJ1dGVzKHQsZSkpKVswXTtpZih2b2lkIDAhPT1uKXJldHVybiBufWNvbnN0IG49dGhpcy5fZG9tLmNyZWF0ZUVsZW1lbnQoIm1ldGEiKTtyZXR1cm4gdGhpcy5fc2V0TWV0YUVsZW1lbnRBdHRyaWJ1dGVzKHQsbiksdGhpcy5fZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQobiksbn1fc2V0TWV0YUVsZW1lbnRBdHRyaWJ1dGVzKHQsZSl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PmUuc2V0QXR0cmlidXRlKHRoaXMuX2dldE1ldGFLZXlNYXAobiksdFtuXSkpKSxlfV9wYXJzZVNlbGVjdG9yKHQpe2NvbnN0IGU9dC5uYW1lPyJuYW1lIjoicHJvcGVydHkiO3JldHVybmAke2V9PSIke3RbZV19ImB9X2NvbnRhaW5zQXR0cmlidXRlcyh0LGUpe3JldHVybiBPYmplY3Qua2V5cyh0KS5ldmVyeSgobj0+ZS5nZXRBdHRyaWJ1dGUodGhpcy5fZ2V0TWV0YUtleU1hcChuKSk9PT10W25dKSl9X2dldE1ldGFLZXlNYXAodCl7cmV0dXJuIFl2W3RdfHx0fX1Xdi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8V3YpKHZyKFpfKSl9LFd2Lsm1cHJvdj1Nbih7ZmFjdG9yeTpHdix0b2tlbjpXdixwcm92aWRlZEluOiJyb290In0pLFd2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXdixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QiLHVzZUZhY3Rvcnk6R3YsZGVwczpbXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y29uc3QgWXY9e2h0dHBFcXVpdjoiaHR0cC1lcXVpdiJ9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBxdigpe3JldHVybiBuZXcgWnYodnIoWl8pKX1jbGFzcyBadntjb25zdHJ1Y3Rvcih0KXt0aGlzLl9kb2M9dH1nZXRUaXRsZSgpe3JldHVybiB0aGlzLl9kb2MudGl0bGV9c2V0VGl0bGUodCl7dGhpcy5fZG9jLnRpdGxlPXR8fCIifX1adi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WnYpKHZyKFpfKSl9LFp2Lsm1cHJvdj1Nbih7ZmFjdG9yeTpxdix0b2tlbjpadixwcm92aWRlZEluOiJyb290In0pLFp2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChadixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QiLHVzZUZhY3Rvcnk6cXYsZGVwczpbXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y2xhc3MgWHZ7Y29uc3RydWN0b3IoKXt0aGlzLnN0b3JlPXt9LHRoaXMub25TZXJpYWxpemVDYWxsYmFja3M9e319c3RhdGljIGluaXQodCl7Y29uc3QgZT1uZXcgWHY7cmV0dXJuIGUuc3RvcmU9dCxlfWdldCh0LGUpe3JldHVybiB2b2lkIDAhPT10aGlzLnN0b3JlW3RdP3RoaXMuc3RvcmVbdF06ZX1zZXQodCxlKXt0aGlzLnN0b3JlW3RdPWV9cmVtb3ZlKHQpe2RlbGV0ZSB0aGlzLnN0b3JlW3RdfWhhc0tleSh0KXtyZXR1cm4gdGhpcy5zdG9yZS5oYXNPd25Qcm9wZXJ0eSh0KX1vblNlcmlhbGl6ZSh0LGUpe3RoaXMub25TZXJpYWxpemVDYWxsYmFja3NbdF09ZX10b0pzb24oKXtmb3IoY29uc3QgdCBpbiB0aGlzLm9uU2VyaWFsaXplQ2FsbGJhY2tzKWlmKHRoaXMub25TZXJpYWxpemVDYWxsYmFja3MuaGFzT3duUHJvcGVydHkodCkpdHJ5e3RoaXMuc3RvcmVbdF09dGhpcy5vblNlcmlhbGl6ZUNhbGxiYWNrc1t0XSgpfWNhdGNoKHQpe2NvbnNvbGUud2FybigiRXhjZXB0aW9uIGluIG9uU2VyaWFsaXplIGNhbGxiYWNrOiAiLHQpfXJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnN0b3JlKX19ZnVuY3Rpb24gS3YodCxlKXtjb25zdCBuPXQuZ2V0RWxlbWVudEJ5SWQoZSsiLXN0YXRlIik7bGV0IG89e307aWYobiYmbi50ZXh0Q29udGVudCl0cnl7bz1KU09OLnBhcnNlKChmdW5jdGlvbiBpKHQpe2NvbnN0IGU9eyImYTsiOiImIiwiJnE7IjonIicsIiZzOyI6IiciLCImbDsiOiI8IiwiJmc7IjoiPiJ9O3JldHVybiB0LnJlcGxhY2UoLyZbXjtdKzsvZywodD0+ZVt0XSkpfSkobi50ZXh0Q29udGVudCkpfWNhdGNoKHQpe2NvbnNvbGUud2FybigiRXhjZXB0aW9uIHdoaWxlIHJlc3RvcmluZyBUcmFuc2ZlclN0YXRlIGZvciBhcHAgIitlLHQpfXJldHVybiBYdi5pbml0KG8pfVh2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYdil9LFh2Lsm1cHJvdj1Nbih7dG9rZW46WHYsZmFjdG9yeTpYdi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWHYsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSxudWxsKTtjbGFzcyBKdnt9SnYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEp2KX0sSnYuybVtb2Q9YW8oe3R5cGU6SnZ9KSxKdi7JtWluaj12bih7cHJvdmlkZXJzOlt7cHJvdmlkZTpYdix1c2VGYWN0b3J5Okt2LGRlcHM6W1pfLEh5XX1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChKdixbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpbe3Byb3ZpZGU6WHYsdXNlRmFjdG9yeTpLdixkZXBzOltaXyxIeV19XX1dfV0sbnVsbCxudWxsKSwKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpuZXcgT2coIjEyLjIuMSIpO3ZhciBRdj0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9O2Z1bmN0aW9uICR2KHQpe2lmKHQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixvLmdldD9vOntlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pfSkpLGV9Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMC4wLW5leHQuMAogICAgICogKGMpIDIwMTAtMjAyMCBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLyEoZnVuY3Rpb24oKXsKLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovCiEoZnVuY3Rpb24odCl7dmFyIGU9dC5wZXJmb3JtYW5jZTtmdW5jdGlvbiBuKHQpe2UmJmUubWFyayYmZS5tYXJrKHQpfWZ1bmN0aW9uIG8odCxuKXtlJiZlLm1lYXN1cmUmJmUubWVhc3VyZSh0LG4pfW4oIlpvbmUiKTt2YXIgaT10Ll9fWm9uZV9zeW1ib2xfcHJlZml4fHwiX196b25lX3N5bWJvbF9fIjtmdW5jdGlvbiBhKHQpe3JldHVybiBpK3R9dmFyIHI9ITA9PT10W2EoImZvcmNlRHVwbGljYXRlWm9uZUNoZWNrIildO2lmKHQuWm9uZSl7aWYocnx8ImZ1bmN0aW9uIiE9dHlwZW9mIHQuWm9uZS5fX3N5bWJvbF9fKXRocm93IG5ldyBFcnJvcigiWm9uZSBhbHJlYWR5IGxvYWRlZC4iKTtyZXR1cm4gdC5ab25lfXZhciBzPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxlKXt0aGlzLl9wYXJlbnQ9dCx0aGlzLl9uYW1lPWU/ZS5uYW1lfHwidW5uYW1lZCI6Ijxyb290PiIsdGhpcy5fcHJvcGVydGllcz1lJiZlLnByb3BlcnRpZXN8fHt9LHRoaXMuX3pvbmVEZWxlZ2F0ZT1uZXcgZCh0aGlzLHRoaXMuX3BhcmVudCYmdGhpcy5fcGFyZW50Ll96b25lRGVsZWdhdGUsZSl9cmV0dXJuIGUuYXNzZXJ0Wm9uZVBhdGNoZWQ9ZnVuY3Rpb24oKXtpZih0LlByb21pc2UhPT1ELlpvbmVBd2FyZVByb21pc2UpdGhyb3cgbmV3IEVycm9yKCJab25lLmpzIGhhcyBkZXRlY3RlZCB0aGF0IFpvbmVBd2FyZVByb21pc2UgYCh3aW5kb3d8Z2xvYmFsKS5Qcm9taXNlYCBoYXMgYmVlbiBvdmVyd3JpdHRlbi5cbk1vc3QgbGlrZWx5IGNhdXNlIGlzIHRoYXQgYSBQcm9taXNlIHBvbHlmaWxsIGhhcyBiZWVuIGxvYWRlZCBhZnRlciBab25lLmpzIChQb2x5ZmlsbGluZyBQcm9taXNlIGFwaSBpcyBub3QgbmVjZXNzYXJ5IHdoZW4gem9uZS5qcyBpcyBsb2FkZWQuIElmIHlvdSBtdXN0IGxvYWQgb25lLCBkbyBzbyBiZWZvcmUgbG9hZGluZyB6b25lLmpzLikiKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJvb3QiLHtnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9ZS5jdXJyZW50O3QucGFyZW50Oyl0PXQucGFyZW50O3JldHVybiB0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJjdXJyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFIuem9uZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY3VycmVudFRhc2siLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLl9fbG9hZF9wYXRjaD1mdW5jdGlvbihpLGEscyl7aWYodm9pZCAwPT09cyYmKHM9ITEpLEQuaGFzT3duUHJvcGVydHkoaSkpe2lmKCFzJiZyKXRocm93IEVycm9yKCJBbHJlYWR5IGxvYWRlZCBwYXRjaDogIitpKX1lbHNlIGlmKCF0WyJfX1pvbmVfZGlzYWJsZV8iK2ldKXt2YXIgbD0iWm9uZToiK2k7bihsKSxEW2ldPWEodCxlLEUpLG8obCxsKX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicGFyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcmVudH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm5hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbmFtZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nZXRab25lV2l0aCh0KTtpZihlKXJldHVybiBlLl9wcm9wZXJ0aWVzW3RdfSxlLnByb3RvdHlwZS5nZXRab25lV2l0aD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcztlOyl7aWYoZS5fcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSh0KSlyZXR1cm4gZTtlPWUuX3BhcmVudH1yZXR1cm4gbnVsbH0sZS5wcm90b3R5cGUuZm9yaz1mdW5jdGlvbih0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIlpvbmVTcGVjIHJlcXVpcmVkISIpO3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuZm9yayh0aGlzLHQpfSxlLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RpbmcgZnVuY3Rpb24gZ290OiAiK3QpO3ZhciBuPXRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnRlcmNlcHQodGhpcyx0LGUpLG89dGhpcztyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gby5ydW5HdWFyZGVkKG4sdGhpcyxhcmd1bWVudHMsZSl9fSxlLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24odCxlLG4sbyl7Uj17cGFyZW50OlIsem9uZTp0aGlzfTt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2UodGhpcyx0LGUsbixvKX1maW5hbGx5e1I9Ui5wYXJlbnR9fSxlLnByb3RvdHlwZS5ydW5HdWFyZGVkPWZ1bmN0aW9uKHQsZSxuLG8pe3ZvaWQgMD09PWUmJihlPW51bGwpLFI9e3BhcmVudDpSLHpvbmU6dGhpc307dHJ5e3RyeXtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmludm9rZSh0aGlzLHQsZSxuLG8pfWNhdGNoKHQpe2lmKHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLHQpKXRocm93IHR9fWZpbmFsbHl7Uj1SLnBhcmVudH19LGUucHJvdG90eXBlLnJ1blRhc2s9ZnVuY3Rpb24odCxlLG4pe2lmKHQuem9uZSE9dGhpcyl0aHJvdyBuZXcgRXJyb3IoIkEgdGFzayBjYW4gb25seSBiZSBydW4gaW4gdGhlIHpvbmUgb2YgY3JlYXRpb24hIChDcmVhdGlvbjogIisodC56b25lfHxfKS5uYW1lKyI7IEV4ZWN1dGlvbjogIit0aGlzLm5hbWUrIikiKTtpZih0LnN0YXRlIT09Q3x8dC50eXBlIT09UyYmdC50eXBlIT09ayl7dmFyIG89dC5zdGF0ZSE9eDtvJiZ0Ll90cmFuc2l0aW9uVG8oeCx2KSx0LnJ1bkNvdW50Kys7dmFyIGk9QTtBPXQsUj17cGFyZW50OlIsem9uZTp0aGlzfTt0cnl7dC50eXBlPT1rJiZ0LmRhdGEmJiF0LmRhdGEuaXNQZXJpb2RpYyYmKHQuY2FuY2VsRm49dm9pZCAwKTt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2VUYXNrKHRoaXMsdCxlLG4pfWNhdGNoKHQpe2lmKHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLHQpKXRocm93IHR9fWZpbmFsbHl7dC5zdGF0ZSE9PUMmJnQuc3RhdGUhPT1QJiYodC50eXBlPT1TfHx0LmRhdGEmJnQuZGF0YS5pc1BlcmlvZGljP28mJnQuX3RyYW5zaXRpb25Ubyh2LHgpOih0LnJ1bkNvdW50PTAsdGhpcy5fdXBkYXRlVGFza0NvdW50KHQsLTEpLG8mJnQuX3RyYW5zaXRpb25UbyhDLHgsQykpKSxSPVIucGFyZW50LEE9aX19fSxlLnByb3RvdHlwZS5zY2hlZHVsZVRhc2s9ZnVuY3Rpb24odCl7aWYodC56b25lJiZ0LnpvbmUhPT10aGlzKWZvcih2YXIgZT10aGlzO2U7KXtpZihlPT09dC56b25lKXRocm93IEVycm9yKCJjYW4gbm90IHJlc2NoZWR1bGUgdGFzayB0byAiK3RoaXMubmFtZSsiIHdoaWNoIGlzIGRlc2NlbmRhbnRzIG9mIHRoZSBvcmlnaW5hbCB6b25lICIrdC56b25lLm5hbWUpO2U9ZS5wYXJlbnR9dC5fdHJhbnNpdGlvblRvKE0sQyk7dmFyIG49W107dC5fem9uZURlbGVnYXRlcz1uLHQuX3pvbmU9dGhpczt0cnl7dD10aGlzLl96b25lRGVsZWdhdGUuc2NoZWR1bGVUYXNrKHRoaXMsdCl9Y2F0Y2goZSl7dGhyb3cgdC5fdHJhbnNpdGlvblRvKFAsTSxDKSx0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxlKSxlfXJldHVybiB0Ll96b25lRGVsZWdhdGVzPT09biYmdGhpcy5fdXBkYXRlVGFza0NvdW50KHQsMSksdC5zdGF0ZT09TSYmdC5fdHJhbnNpdGlvblRvKHYsTSksdH0sZS5wcm90b3R5cGUuc2NoZWR1bGVNaWNyb1Rhc2s9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyBwKHcsdCxlLG4sbyx2b2lkIDApKX0sZS5wcm90b3R5cGUuc2NoZWR1bGVNYWNyb1Rhc2s9ZnVuY3Rpb24odCxlLG4sbyxpKXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHAoayx0LGUsbixvLGkpKX0sZS5wcm90b3R5cGUuc2NoZWR1bGVFdmVudFRhc2s9ZnVuY3Rpb24odCxlLG4sbyxpKXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHAoUyx0LGUsbixvLGkpKX0sZS5wcm90b3R5cGUuY2FuY2VsVGFzaz1mdW5jdGlvbih0KXtpZih0LnpvbmUhPXRoaXMpdGhyb3cgbmV3IEVycm9yKCJBIHRhc2sgY2FuIG9ubHkgYmUgY2FuY2VsbGVkIGluIHRoZSB6b25lIG9mIGNyZWF0aW9uISAoQ3JlYXRpb246ICIrKHQuem9uZXx8XykubmFtZSsiOyBFeGVjdXRpb246ICIrdGhpcy5uYW1lKyIpIik7dC5fdHJhbnNpdGlvblRvKE8sdix4KTt0cnl7dGhpcy5fem9uZURlbGVnYXRlLmNhbmNlbFRhc2sodGhpcyx0KX1jYXRjaChlKXt0aHJvdyB0Ll90cmFuc2l0aW9uVG8oUCxPKSx0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxlKSxlfXJldHVybiB0aGlzLl91cGRhdGVUYXNrQ291bnQodCwtMSksdC5fdHJhbnNpdGlvblRvKEMsTyksdC5ydW5Db3VudD0wLHR9LGUucHJvdG90eXBlLl91cGRhdGVUYXNrQ291bnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10Ll96b25lRGVsZWdhdGVzOy0xPT1lJiYodC5fem9uZURlbGVnYXRlcz1udWxsKTtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyluW29dLl91cGRhdGVUYXNrQ291bnQodC50eXBlLGUpfSxlfSkoKTtzLl9fc3ltYm9sX189YTt2YXIgbCxjPXtuYW1lOiIiLG9uSGFzVGFzazpmdW5jdGlvbih0LGUsbixvKXtyZXR1cm4gdC5oYXNUYXNrKG4sbyl9LG9uU2NoZWR1bGVUYXNrOmZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB0LnNjaGVkdWxlVGFzayhuLG8pfSxvbkludm9rZVRhc2s6ZnVuY3Rpb24odCxlLG4sbyxpLGEpe3JldHVybiB0Lmludm9rZVRhc2sobixvLGksYSl9LG9uQ2FuY2VsVGFzazpmdW5jdGlvbih0LGUsbixvKXtyZXR1cm4gdC5jYW5jZWxUYXNrKG4sbyl9fSxkPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3RoaXMuX3Rhc2tDb3VudHM9e21pY3JvVGFzazowLG1hY3JvVGFzazowLGV2ZW50VGFzazowfSx0aGlzLnpvbmU9dCx0aGlzLl9wYXJlbnREZWxlZ2F0ZT1lLHRoaXMuX2ZvcmtaUz1uJiYobiYmbi5vbkZvcms/bjplLl9mb3JrWlMpLHRoaXMuX2ZvcmtEbGd0PW4mJihuLm9uRm9yaz9lOmUuX2ZvcmtEbGd0KSx0aGlzLl9mb3JrQ3VyclpvbmU9biYmKG4ub25Gb3JrP3RoaXMuem9uZTplLl9mb3JrQ3VyclpvbmUpLHRoaXMuX2ludGVyY2VwdFpTPW4mJihuLm9uSW50ZXJjZXB0P246ZS5faW50ZXJjZXB0WlMpLHRoaXMuX2ludGVyY2VwdERsZ3Q9biYmKG4ub25JbnRlcmNlcHQ/ZTplLl9pbnRlcmNlcHREbGd0KSx0aGlzLl9pbnRlcmNlcHRDdXJyWm9uZT1uJiYobi5vbkludGVyY2VwdD90aGlzLnpvbmU6ZS5faW50ZXJjZXB0Q3VyclpvbmUpLHRoaXMuX2ludm9rZVpTPW4mJihuLm9uSW52b2tlP246ZS5faW52b2tlWlMpLHRoaXMuX2ludm9rZURsZ3Q9biYmKG4ub25JbnZva2U/ZTplLl9pbnZva2VEbGd0KSx0aGlzLl9pbnZva2VDdXJyWm9uZT1uJiYobi5vbkludm9rZT90aGlzLnpvbmU6ZS5faW52b2tlQ3VyclpvbmUpLHRoaXMuX2hhbmRsZUVycm9yWlM9biYmKG4ub25IYW5kbGVFcnJvcj9uOmUuX2hhbmRsZUVycm9yWlMpLHRoaXMuX2hhbmRsZUVycm9yRGxndD1uJiYobi5vbkhhbmRsZUVycm9yP2U6ZS5faGFuZGxlRXJyb3JEbGd0KSx0aGlzLl9oYW5kbGVFcnJvckN1cnJab25lPW4mJihuLm9uSGFuZGxlRXJyb3I/dGhpcy56b25lOmUuX2hhbmRsZUVycm9yQ3VyclpvbmUpLHRoaXMuX3NjaGVkdWxlVGFza1pTPW4mJihuLm9uU2NoZWR1bGVUYXNrP246ZS5fc2NoZWR1bGVUYXNrWlMpLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9biYmKG4ub25TY2hlZHVsZVRhc2s/ZTplLl9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT1uJiYobi5vblNjaGVkdWxlVGFzaz90aGlzLnpvbmU6ZS5fc2NoZWR1bGVUYXNrQ3VyclpvbmUpLHRoaXMuX2ludm9rZVRhc2taUz1uJiYobi5vbkludm9rZVRhc2s/bjplLl9pbnZva2VUYXNrWlMpLHRoaXMuX2ludm9rZVRhc2tEbGd0PW4mJihuLm9uSW52b2tlVGFzaz9lOmUuX2ludm9rZVRhc2tEbGd0KSx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmU9biYmKG4ub25JbnZva2VUYXNrP3RoaXMuem9uZTplLl9pbnZva2VUYXNrQ3VyclpvbmUpLHRoaXMuX2NhbmNlbFRhc2taUz1uJiYobi5vbkNhbmNlbFRhc2s/bjplLl9jYW5jZWxUYXNrWlMpLHRoaXMuX2NhbmNlbFRhc2tEbGd0PW4mJihuLm9uQ2FuY2VsVGFzaz9lOmUuX2NhbmNlbFRhc2tEbGd0KSx0aGlzLl9jYW5jZWxUYXNrQ3VyclpvbmU9biYmKG4ub25DYW5jZWxUYXNrP3RoaXMuem9uZTplLl9jYW5jZWxUYXNrQ3VyclpvbmUpLHRoaXMuX2hhc1Rhc2taUz1udWxsLHRoaXMuX2hhc1Rhc2tEbGd0PW51bGwsdGhpcy5faGFzVGFza0RsZ3RPd25lcj1udWxsLHRoaXMuX2hhc1Rhc2tDdXJyWm9uZT1udWxsO3ZhciBvPW4mJm4ub25IYXNUYXNrOyhvfHxlJiZlLl9oYXNUYXNrWlMpJiYodGhpcy5faGFzVGFza1pTPW8/bjpjLHRoaXMuX2hhc1Rhc2tEbGd0PWUsdGhpcy5faGFzVGFza0RsZ3RPd25lcj10aGlzLHRoaXMuX2hhc1Rhc2tDdXJyWm9uZT10LG4ub25TY2hlZHVsZVRhc2t8fCh0aGlzLl9zY2hlZHVsZVRhc2taUz1jLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9ZSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT10aGlzLnpvbmUpLG4ub25JbnZva2VUYXNrfHwodGhpcy5faW52b2tlVGFza1pTPWMsdGhpcy5faW52b2tlVGFza0RsZ3Q9ZSx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmU9dGhpcy56b25lKSxuLm9uQ2FuY2VsVGFza3x8KHRoaXMuX2NhbmNlbFRhc2taUz1jLHRoaXMuX2NhbmNlbFRhc2tEbGd0PWUsdGhpcy5fY2FuY2VsVGFza0N1cnJab25lPXRoaXMuem9uZSkpfXJldHVybiB0LnByb3RvdHlwZS5mb3JrPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2ZvcmtaUz90aGlzLl9mb3JrWlMub25Gb3JrKHRoaXMuX2ZvcmtEbGd0LHRoaXMuem9uZSx0LGUpOm5ldyBzKHQsZSl9LHQucHJvdG90eXBlLmludGVyY2VwdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuX2ludGVyY2VwdFpTP3RoaXMuX2ludGVyY2VwdFpTLm9uSW50ZXJjZXB0KHRoaXMuX2ludGVyY2VwdERsZ3QsdGhpcy5faW50ZXJjZXB0Q3VyclpvbmUsdCxlLG4pOmV9LHQucHJvdG90eXBlLmludm9rZT1mdW5jdGlvbih0LGUsbixvLGkpe3JldHVybiB0aGlzLl9pbnZva2VaUz90aGlzLl9pbnZva2VaUy5vbkludm9rZSh0aGlzLl9pbnZva2VEbGd0LHRoaXMuX2ludm9rZUN1cnJab25lLHQsZSxuLG8saSk6ZS5hcHBseShuLG8pfSx0LnByb3RvdHlwZS5oYW5kbGVFcnJvcj1mdW5jdGlvbih0LGUpe3JldHVybiF0aGlzLl9oYW5kbGVFcnJvclpTfHx0aGlzLl9oYW5kbGVFcnJvclpTLm9uSGFuZGxlRXJyb3IodGhpcy5faGFuZGxlRXJyb3JEbGd0LHRoaXMuX2hhbmRsZUVycm9yQ3VyclpvbmUsdCxlKX0sdC5wcm90b3R5cGUuc2NoZWR1bGVUYXNrPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZTtpZih0aGlzLl9zY2hlZHVsZVRhc2taUyl0aGlzLl9oYXNUYXNrWlMmJm4uX3pvbmVEZWxlZ2F0ZXMucHVzaCh0aGlzLl9oYXNUYXNrRGxndE93bmVyKSwobj10aGlzLl9zY2hlZHVsZVRhc2taUy5vblNjaGVkdWxlVGFzayh0aGlzLl9zY2hlZHVsZVRhc2tEbGd0LHRoaXMuX3NjaGVkdWxlVGFza0N1cnJab25lLHQsZSkpfHwobj1lKTtlbHNlIGlmKGUuc2NoZWR1bGVGbillLnNjaGVkdWxlRm4oZSk7ZWxzZXtpZihlLnR5cGUhPXcpdGhyb3cgbmV3IEVycm9yKCJUYXNrIGlzIG1pc3Npbmcgc2NoZWR1bGVGbi4iKTtiKGUpfXJldHVybiBufSx0LnByb3RvdHlwZS5pbnZva2VUYXNrPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB0aGlzLl9pbnZva2VUYXNrWlM/dGhpcy5faW52b2tlVGFza1pTLm9uSW52b2tlVGFzayh0aGlzLl9pbnZva2VUYXNrRGxndCx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmUsdCxlLG4sbyk6ZS5jYWxsYmFjay5hcHBseShuLG8pfSx0LnByb3RvdHlwZS5jYW5jZWxUYXNrPWZ1bmN0aW9uKHQsZSl7dmFyIG47aWYodGhpcy5fY2FuY2VsVGFza1pTKW49dGhpcy5fY2FuY2VsVGFza1pTLm9uQ2FuY2VsVGFzayh0aGlzLl9jYW5jZWxUYXNrRGxndCx0aGlzLl9jYW5jZWxUYXNrQ3VyclpvbmUsdCxlKTtlbHNle2lmKCFlLmNhbmNlbEZuKXRocm93IEVycm9yKCJUYXNrIGlzIG5vdCBjYW5jZWxhYmxlIik7bj1lLmNhbmNlbEZuKGUpfXJldHVybiBufSx0LnByb3RvdHlwZS5oYXNUYXNrPWZ1bmN0aW9uKHQsZSl7dHJ5e3RoaXMuX2hhc1Rhc2taUyYmdGhpcy5faGFzVGFza1pTLm9uSGFzVGFzayh0aGlzLl9oYXNUYXNrRGxndCx0aGlzLl9oYXNUYXNrQ3VyclpvbmUsdCxlKX1jYXRjaChlKXt0aGlzLmhhbmRsZUVycm9yKHQsZSl9fSx0LnByb3RvdHlwZS5fdXBkYXRlVGFza0NvdW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fdGFza0NvdW50cyxvPW5bdF0saT1uW3RdPW8rZTtpZihpPDApdGhyb3cgbmV3IEVycm9yKCJNb3JlIHRhc2tzIGV4ZWN1dGVkIHRoZW4gd2VyZSBzY2hlZHVsZWQuIik7MCE9byYmMCE9aXx8dGhpcy5oYXNUYXNrKHRoaXMuem9uZSx7bWljcm9UYXNrOm4ubWljcm9UYXNrPjAsbWFjcm9UYXNrOm4ubWFjcm9UYXNrPjAsZXZlbnRUYXNrOm4uZXZlbnRUYXNrPjAsY2hhbmdlOnR9KX0sdH0pKCkscD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKG4sbyxpLGEscixzKXtpZih0aGlzLl96b25lPW51bGwsdGhpcy5ydW5Db3VudD0wLHRoaXMuX3pvbmVEZWxlZ2F0ZXM9bnVsbCx0aGlzLl9zdGF0ZT0ibm90U2NoZWR1bGVkIix0aGlzLnR5cGU9bix0aGlzLnNvdXJjZT1vLHRoaXMuZGF0YT1hLHRoaXMuc2NoZWR1bGVGbj1yLHRoaXMuY2FuY2VsRm49cywhaSl0aHJvdyBuZXcgRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBkZWZpbmVkIik7dGhpcy5jYWxsYmFjaz1pO3ZhciBsPXRoaXM7dGhpcy5pbnZva2U9bj09PVMmJmEmJmEudXNlRz9lLmludm9rZVRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5pbnZva2VUYXNrLmNhbGwodCxsLHRoaXMsYXJndW1lbnRzKX19cmV0dXJuIGUuaW52b2tlVGFzaz1mdW5jdGlvbih0LGUsbil7dHx8KHQ9dGhpcyksVCsrO3RyeXtyZXR1cm4gdC5ydW5Db3VudCsrLHQuem9uZS5ydW5UYXNrKHQsZSxuKX1maW5hbGx5ezE9PVQmJnkoKSxULS19fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInpvbmUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fem9uZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInN0YXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YXRlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmNhbmNlbFNjaGVkdWxlUmVxdWVzdD1mdW5jdGlvbigpe3RoaXMuX3RyYW5zaXRpb25UbyhDLE0pfSxlLnByb3RvdHlwZS5fdHJhbnNpdGlvblRvPWZ1bmN0aW9uKHQsZSxuKXtpZih0aGlzLl9zdGF0ZSE9PWUmJnRoaXMuX3N0YXRlIT09bil0aHJvdyBuZXcgRXJyb3IodGhpcy50eXBlKyIgJyIrdGhpcy5zb3VyY2UrIic6IGNhbiBub3QgdHJhbnNpdGlvbiB0byAnIit0KyInLCBleHBlY3Rpbmcgc3RhdGUgJyIrZSsiJyIrKG4/IiBvciAnIituKyInIjoiIikrIiwgd2FzICciK3RoaXMuX3N0YXRlKyInLiIpO3RoaXMuX3N0YXRlPXQsdD09QyYmKHRoaXMuX3pvbmVEZWxlZ2F0ZXM9bnVsbCl9LGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YSYmdm9pZCAwIT09dGhpcy5kYXRhLmhhbmRsZUlkP3RoaXMuZGF0YS5oYW5kbGVJZC50b1N0cmluZygpOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6dGhpcy50eXBlLHN0YXRlOnRoaXMuc3RhdGUsc291cmNlOnRoaXMuc291cmNlLHpvbmU6dGhpcy56b25lLm5hbWUscnVuQ291bnQ6dGhpcy5ydW5Db3VudH19LGV9KSgpLG09YSgic2V0VGltZW91dCIpLHU9YSgiUHJvbWlzZSIpLGY9YSgidGhlbiIpLGc9W10saD0hMTtmdW5jdGlvbiBiKGUpe2lmKDA9PT1UJiYwPT09Zy5sZW5ndGgpaWYobHx8dFt1XSYmKGw9dFt1XS5yZXNvbHZlKDApKSxsKXt2YXIgbj1sW2ZdO258fChuPWwudGhlbiksbi5jYWxsKGwseSl9ZWxzZSB0W21dKHksMCk7ZSYmZy5wdXNoKGUpfWZ1bmN0aW9uIHkoKXtpZighaCl7Zm9yKGg9ITA7Zy5sZW5ndGg7KXt2YXIgdD1nO2c9W107Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV07dHJ5e24uem9uZS5ydW5UYXNrKG4sbnVsbCxudWxsKX1jYXRjaCh0KXtFLm9uVW5oYW5kbGVkRXJyb3IodCl9fX1FLm1pY3JvdGFza0RyYWluRG9uZSgpLGg9ITF9fXZhciBfPXtuYW1lOiJOTyBaT05FIn0sQz0ibm90U2NoZWR1bGVkIixNPSJzY2hlZHVsaW5nIix2PSJzY2hlZHVsZWQiLHg9InJ1bm5pbmciLE89ImNhbmNlbGluZyIsUD0idW5rbm93biIsdz0ibWljcm9UYXNrIixrPSJtYWNyb1Rhc2siLFM9ImV2ZW50VGFzayIsRD17fSxFPXtzeW1ib2w6YSxjdXJyZW50Wm9uZUZyYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIFJ9LG9uVW5oYW5kbGVkRXJyb3I6TixtaWNyb3Rhc2tEcmFpbkRvbmU6TixzY2hlZHVsZU1pY3JvVGFzazpiLHNob3dVbmNhdWdodEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIXNbYSgiaWdub3JlQ29uc29sZUVycm9yVW5jYXVnaHRFcnJvciIpXX0scGF0Y2hFdmVudFRhcmdldDpmdW5jdGlvbigpe3JldHVybltdfSxwYXRjaE9uUHJvcGVydGllczpOLHBhdGNoTWV0aG9kOmZ1bmN0aW9uKCl7cmV0dXJuIE59LGJpbmRBcmd1bWVudHM6ZnVuY3Rpb24oKXtyZXR1cm5bXX0scGF0Y2hUaGVuOmZ1bmN0aW9uKCl7cmV0dXJuIE59LHBhdGNoTWFjcm9UYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIE59LHBhdGNoRXZlbnRQcm90b3R5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gTn0saXNJRU9yRWRnZTpmdW5jdGlvbigpe3JldHVybiExfSxnZXRHbG9iYWxPYmplY3RzOmZ1bmN0aW9uKCl7fSxPYmplY3REZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbigpe3JldHVybiBOfSxPYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24oKXt9LE9iamVjdENyZWF0ZTpmdW5jdGlvbigpe30sQXJyYXlTbGljZTpmdW5jdGlvbigpe3JldHVybltdfSxwYXRjaENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuIE59LHdyYXBXaXRoQ3VycmVudFpvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gTn0sZmlsdGVyUHJvcGVydGllczpmdW5jdGlvbigpe3JldHVybltdfSxhdHRhY2hPcmlnaW5Ub1BhdGNoZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTn0sX3JlZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oKXtyZXR1cm4gTn0scGF0Y2hDYWxsYmFja3M6ZnVuY3Rpb24oKXtyZXR1cm4gTn19LFI9e3BhcmVudDpudWxsLHpvbmU6bmV3IHMobnVsbCxudWxsKX0sQT1udWxsLFQ9MDtmdW5jdGlvbiBOKCl7fW8oIlpvbmUiLCJab25lIiksdC5ab25lPXN9KSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93fHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fFF2KTsKLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovCnZhciB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZT1PYmplY3QuZGVmaW5lUHJvcGVydHksbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysbz1PYmplY3QuY3JlYXRlLGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLGE9ImFkZEV2ZW50TGlzdGVuZXIiLHI9InJlbW92ZUV2ZW50TGlzdGVuZXIiLHM9Wm9uZS5fX3N5bWJvbF9fKGEpLGw9Wm9uZS5fX3N5bWJvbF9fKHIpLGM9InRydWUiLGQ9ImZhbHNlIixwPVpvbmUuX19zeW1ib2xfXygiIik7ZnVuY3Rpb24gbSh0LGUpe3JldHVybiBab25lLmN1cnJlbnQud3JhcCh0LGUpfWZ1bmN0aW9uIHUodCxlLG4sbyxpKXtyZXR1cm4gWm9uZS5jdXJyZW50LnNjaGVkdWxlTWFjcm9UYXNrKHQsZSxuLG8saSl9dmFyIGY9Wm9uZS5fX3N5bWJvbF9fLGc9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3csaD1nP3dpbmRvdzp2b2lkIDAsYj1nJiZofHwib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGZ8fFF2LHk9W251bGxdO2Z1bmN0aW9uIF8odCxlKXtmb3IodmFyIG49dC5sZW5ndGgtMTtuPj0wO24tLSkiZnVuY3Rpb24iPT10eXBlb2YgdFtuXSYmKHRbbl09bSh0W25dLGUrIl8iK24pKTtyZXR1cm4gdH1mdW5jdGlvbiBDKHQpe3JldHVybiF0fHwhMSE9PXQud3JpdGFibGUmJiEoImZ1bmN0aW9uIj09dHlwZW9mIHQuZ2V0JiZ2b2lkIDA9PT10LnNldCl9dmFyIE09InVuZGVmaW5lZCIhPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlLHY9ISgibnciaW4gYikmJnZvaWQgMCE9PWIucHJvY2VzcyYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbChiLnByb2Nlc3MpLHg9IXYmJiFNJiYhKCFnfHwhaC5IVE1MRWxlbWVudCksTz12b2lkIDAhPT1iLnByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoYi5wcm9jZXNzKSYmIU0mJiEoIWd8fCFoLkhUTUxFbGVtZW50KSxQPXt9LHc9ZnVuY3Rpb24odCl7aWYodD10fHxiLmV2ZW50KXt2YXIgZT1QW3QudHlwZV07ZXx8KGU9UFt0LnR5cGVdPWYoIk9OX1BST1BFUlRZIit0LnR5cGUpKTt2YXIgbixvPXRoaXN8fHQudGFyZ2V0fHxiLGk9b1tlXTtyZXR1cm4geCYmbz09PWgmJiJlcnJvciI9PT10LnR5cGU/ITA9PT0obj1pJiZpLmNhbGwodGhpcyx0Lm1lc3NhZ2UsdC5maWxlbmFtZSx0LmxpbmVubyx0LmNvbG5vLHQuZXJyb3IpKSYmdC5wcmV2ZW50RGVmYXVsdCgpOm51bGw9PShuPWkmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKXx8bnx8dC5wcmV2ZW50RGVmYXVsdCgpLG59fTtmdW5jdGlvbiBrKG4sbyxpKXt2YXIgYT10KG4sbyk7aWYoIWEmJmkmJnQoaSxvKSYmKGE9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksYSYmYS5jb25maWd1cmFibGUpe3ZhciByPWYoIm9uIitvKyJwYXRjaGVkIik7aWYoIW4uaGFzT3duUHJvcGVydHkocil8fCFuW3JdKXtkZWxldGUgYS53cml0YWJsZSxkZWxldGUgYS52YWx1ZTt2YXIgcz1hLmdldCxsPWEuc2V0LGM9by5zdWJzdHIoMiksZD1QW2NdO2R8fChkPVBbY109ZigiT05fUFJPUEVSVFkiK2MpKSxhLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2V8fG4hPT1ifHwoZT1iKSxlJiYoZVtkXSYmZS5yZW1vdmVFdmVudExpc3RlbmVyKGMsdyksbCYmbC5hcHBseShlLHkpLCJmdW5jdGlvbiI9PXR5cGVvZiB0PyhlW2RdPXQsZS5hZGRFdmVudExpc3RlbmVyKGMsdywhMSkpOmVbZF09bnVsbCl9LGEuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0fHxuIT09Ynx8KHQ9YiksIXQpcmV0dXJuIG51bGw7dmFyIGU9dFtkXTtpZihlKXJldHVybiBlO2lmKHMpe3ZhciBpPXMmJnMuY2FsbCh0aGlzKTtpZihpKXJldHVybiBhLnNldC5jYWxsKHRoaXMsaSksImZ1bmN0aW9uIj09dHlwZW9mIHQucmVtb3ZlQXR0cmlidXRlJiZ0LnJlbW92ZUF0dHJpYnV0ZShvKSxpfXJldHVybiBudWxsfSxlKG4sbyxhKSxuW3JdPSEwfX19ZnVuY3Rpb24gUyh0LGUsbil7aWYoZSlmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKylrKHQsIm9uIitlW29dLG4pO2Vsc2V7dmFyIGk9W107Zm9yKHZhciBhIGluIHQpIm9uIj09YS5zdWJzdHIoMCwyKSYmaS5wdXNoKGEpO2Zvcih2YXIgcj0wO3I8aS5sZW5ndGg7cisrKWsodCxpW3JdLG4pfX12YXIgRD1mKCJvcmlnaW5hbEluc3RhbmNlIik7ZnVuY3Rpb24gRSh0KXt2YXIgbj1iW3RdO2lmKG4pe2JbZih0KV09bixiW3RdPWZ1bmN0aW9uKCl7dmFyIGU9Xyhhcmd1bWVudHMsdCk7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDA6dGhpc1tEXT1uZXcgbjticmVhaztjYXNlIDE6dGhpc1tEXT1uZXcgbihlWzBdKTticmVhaztjYXNlIDI6dGhpc1tEXT1uZXcgbihlWzBdLGVbMV0pO2JyZWFrO2Nhc2UgMzp0aGlzW0RdPW5ldyBuKGVbMF0sZVsxXSxlWzJdKTticmVhaztjYXNlIDQ6dGhpc1tEXT1uZXcgbihlWzBdLGVbMV0sZVsyXSxlWzNdKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiQXJnIGxpc3QgdG9vIGxvbmcuIil9fSxUKGJbdF0sbik7dmFyIG8saT1uZXcgbigoZnVuY3Rpb24oKXt9KSk7Zm9yKG8gaW4gaSkiWE1MSHR0cFJlcXVlc3QiPT09dCYmInJlc3BvbnNlQmxvYiI9PT1vfHwoZnVuY3Rpb24obil7ImZ1bmN0aW9uIj09dHlwZW9mIGlbbl0/Ylt0XS5wcm90b3R5cGVbbl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tEXVtuXS5hcHBseSh0aGlzW0RdLGFyZ3VtZW50cyl9OmUoYlt0XS5wcm90b3R5cGUsbix7c2V0OmZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBlPyh0aGlzW0RdW25dPW0oZSx0KyIuIituKSxUKHRoaXNbRF1bbl0sZSkpOnRoaXNbRF1bbl09ZX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbRF1bbl19fSl9KShvKTtmb3IobyBpbiBuKSJwcm90b3R5cGUiIT09byYmbi5oYXNPd25Qcm9wZXJ0eShvKSYmKGJbdF1bb109bltvXSl9fWZ1bmN0aW9uIFIoZSxvLGkpe2Zvcih2YXIgYT1lO2EmJiFhLmhhc093blByb3BlcnR5KG8pOylhPW4oYSk7IWEmJmVbb10mJihhPWUpO3ZhciByPWYobykscz1udWxsO2lmKGEmJighKHM9YVtyXSl8fCFhLmhhc093blByb3BlcnR5KHIpKSYmKHM9YVtyXT1hW29dLEMoYSYmdChhLG8pKSkpe3ZhciBsPWkocyxyLG8pO2Fbb109ZnVuY3Rpb24oKXtyZXR1cm4gbCh0aGlzLGFyZ3VtZW50cyl9LFQoYVtvXSxzKX1yZXR1cm4gc31mdW5jdGlvbiBBKHQsZSxuKXt2YXIgbz1udWxsO2Z1bmN0aW9uIGkodCl7dmFyIGU9dC5kYXRhO3JldHVybiBlLmFyZ3NbZS5jYklkeF09ZnVuY3Rpb24oKXt0Lmludm9rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG8uYXBwbHkoZS50YXJnZXQsZS5hcmdzKSx0fW89Uih0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG8pe3ZhciBhPW4oZSxvKTtyZXR1cm4gYS5jYklkeD49MCYmImZ1bmN0aW9uIj09dHlwZW9mIG9bYS5jYklkeF0/dShhLm5hbWUsb1thLmNiSWR4XSxhLGkpOnQuYXBwbHkoZSxvKX19KSl9ZnVuY3Rpb24gVCh0LGUpe3RbZigiT3JpZ2luYWxEZWxlZ2F0ZSIpXT1lfXZhciBOPSExLHo9ITE7ZnVuY3Rpb24gSSgpe2lmKE4pcmV0dXJuIHo7Tj0hMDt0cnl7dmFyIHQ9aC5uYXZpZ2F0b3IudXNlckFnZW50Oy0xPT09dC5pbmRleE9mKCJNU0lFICIpJiYtMT09PXQuaW5kZXhPZigiVHJpZGVudC8iKSYmLTE9PT10LmluZGV4T2YoIkVkZ2UvIil8fCh6PSEwKX1jYXRjaCh0KXt9cmV0dXJuIHp9Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqL1pvbmUuX19sb2FkX3BhdGNoKCJab25lQXdhcmVQcm9taXNlIiwoZnVuY3Rpb24odCxlLG4pe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsaT1PYmplY3QuZGVmaW5lUHJvcGVydHksYT1uLnN5bWJvbCxyPVtdLHM9ITA9PT10W2EoIkRJU0FCTEVfV1JBUFBJTkdfVU5DQVVHSFRfUFJPTUlTRV9SRUpFQ1RJT04iKV0sbD1hKCJQcm9taXNlIiksYz1hKCJ0aGVuIik7bi5vblVuaGFuZGxlZEVycm9yPWZ1bmN0aW9uKHQpe2lmKG4uc2hvd1VuY2F1Z2h0RXJyb3IoKSl7dmFyIGU9dCYmdC5yZWplY3Rpb247ZT9jb25zb2xlLmVycm9yKCJVbmhhbmRsZWQgUHJvbWlzZSByZWplY3Rpb246IixlIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOmUsIjsgWm9uZToiLHQuem9uZS5uYW1lLCI7IFRhc2s6Iix0LnRhc2smJnQudGFzay5zb3VyY2UsIjsgVmFsdWU6IixlLGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrOnZvaWQgMCk6Y29uc29sZS5lcnJvcih0KX19LG4ubWljcm90YXNrRHJhaW5Eb25lPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWZ1bmN0aW9uKCl7dmFyIHQ9ci5zaGlmdCgpO3RyeXt0LnpvbmUucnVuR3VhcmRlZCgoZnVuY3Rpb24oKXtpZih0LnRocm93T3JpZ2luYWwpdGhyb3cgdC5yZWplY3Rpb247dGhyb3cgdH0pKX1jYXRjaCh0KXshKGZ1bmN0aW9uIG8odCl7bi5vblVuaGFuZGxlZEVycm9yKHQpO3RyeXt2YXIgbz1lW2RdOyJmdW5jdGlvbiI9PXR5cGVvZiBvJiZvLmNhbGwodGhpcyx0KX1jYXRjaCh0KXt9fSkodCl9fTtyLmxlbmd0aDspdCgpfTt2YXIgZD1hKCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpO2Z1bmN0aW9uIHAodCl7cmV0dXJuIHQmJnQudGhlbn1mdW5jdGlvbiBtKHQpe3JldHVybiB0fWZ1bmN0aW9uIHUodCl7cmV0dXJuIEQucmVqZWN0KHQpfXZhciBmPWEoInN0YXRlIiksZz1hKCJ2YWx1ZSIpLGg9YSgiZmluYWxseSIpLGI9YSgicGFyZW50UHJvbWlzZVZhbHVlIikseT1hKCJwYXJlbnRQcm9taXNlU3RhdGUiKSxfPW51bGwsQz0hMCxNPSExO2Z1bmN0aW9uIHYodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e08odCxlLG4pfWNhdGNoKGUpe08odCwhMSxlKX19fXZhciB4PWEoImN1cnJlbnRUYXNrVHJhY2UiKTtmdW5jdGlvbiBPKHQsbyxhKXt2YXIgbCxjPShsPSExLGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7bHx8KGw9ITAsZS5hcHBseShudWxsLGFyZ3VtZW50cykpfX0pO2lmKHQ9PT1hKXRocm93IG5ldyBUeXBlRXJyb3IoIlByb21pc2UgcmVzb2x2ZWQgd2l0aCBpdHNlbGYiKTtpZih0W2ZdPT09Xyl7dmFyIGQ9bnVsbDt0cnl7Im9iamVjdCIhPXR5cGVvZiBhJiYiZnVuY3Rpb24iIT10eXBlb2YgYXx8KGQ9YSYmYS50aGVuKX1jYXRjaChlKXtyZXR1cm4gYygoZnVuY3Rpb24oKXtPKHQsITEsZSl9KSkoKSx0fWlmKG8hPT1NJiZhIGluc3RhbmNlb2YgRCYmYS5oYXNPd25Qcm9wZXJ0eShmKSYmYS5oYXNPd25Qcm9wZXJ0eShnKSYmYVtmXSE9PV8pdyhhKSxPKHQsYVtmXSxhW2ddKTtlbHNlIGlmKG8hPT1NJiYiZnVuY3Rpb24iPT10eXBlb2YgZCl0cnl7ZC5jYWxsKGEsYyh2KHQsbykpLGModih0LCExKSkpfWNhdGNoKGUpe2MoKGZ1bmN0aW9uKCl7Tyh0LCExLGUpfSkpKCl9ZWxzZXt0W2ZdPW87dmFyIHA9dFtnXTtpZih0W2ddPWEsdFtoXT09PWgmJm89PT1DJiYodFtmXT10W3ldLHRbZ109dFtiXSksbz09PU0mJmEgaW5zdGFuY2VvZiBFcnJvcil7dmFyIG09ZS5jdXJyZW50VGFzayYmZS5jdXJyZW50VGFzay5kYXRhJiZlLmN1cnJlbnRUYXNrLmRhdGEuX19jcmVhdGlvblRyYWNlX187bSYmaShhLHgse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1mb3IodmFyIHU9MDt1PHAubGVuZ3RoOylrKHQscFt1KytdLHBbdSsrXSxwW3UrK10scFt1KytdKTtpZigwPT1wLmxlbmd0aCYmbz09TSl7dFtmXT0wO3ZhciBQPWE7dHJ5e3Rocm93IG5ldyBFcnJvcigiVW5jYXVnaHQgKGluIHByb21pc2UpOiAiKyhmdW5jdGlvbiBTKHQpe3JldHVybiB0JiZ0LnRvU3RyaW5nPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZz8odC5jb25zdHJ1Y3RvciYmdC5jb25zdHJ1Y3Rvci5uYW1lfHwiIikrIjogIitKU09OLnN0cmluZ2lmeSh0KTp0P3QudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KShhKSsoYSYmYS5zdGFjaz8iXG4iK2Euc3RhY2s6IiIpKX1jYXRjaCh0KXtQPXR9cyYmKFAudGhyb3dPcmlnaW5hbD0hMCksUC5yZWplY3Rpb249YSxQLnByb21pc2U9dCxQLnpvbmU9ZS5jdXJyZW50LFAudGFzaz1lLmN1cnJlbnRUYXNrLHIucHVzaChQKSxuLnNjaGVkdWxlTWljcm9UYXNrKCl9fX1yZXR1cm4gdH12YXIgUD1hKCJyZWplY3Rpb25IYW5kbGVkSGFuZGxlciIpO2Z1bmN0aW9uIHcodCl7aWYoMD09PXRbZl0pe3RyeXt2YXIgbj1lW1BdO24mJiJmdW5jdGlvbiI9PXR5cGVvZiBuJiZuLmNhbGwodGhpcyx7cmVqZWN0aW9uOnRbZ10scHJvbWlzZTp0fSl9Y2F0Y2godCl7fXRbZl09TTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKyl0PT09cltvXS5wcm9taXNlJiZyLnNwbGljZShvLDEpfX1mdW5jdGlvbiBrKHQsZSxuLG8saSl7dyh0KTt2YXIgYT10W2ZdLHI9YT8iZnVuY3Rpb24iPT10eXBlb2Ygbz9vOm06ImZ1bmN0aW9uIj09dHlwZW9mIGk/aTp1O2Uuc2NoZWR1bGVNaWNyb1Rhc2soIlByb21pc2UudGhlbiIsKGZ1bmN0aW9uKCl7dHJ5e3ZhciBvPXRbZ10saT0hIW4mJmg9PT1uW2hdO2kmJihuW2JdPW8sblt5XT1hKTt2YXIgcz1lLnJ1bihyLHZvaWQgMCxpJiZyIT09dSYmciE9PW0/W106W29dKTtPKG4sITAscyl9Y2F0Y2godCl7TyhuLCExLHQpfX0pLG4pfXZhciBTPWZ1bmN0aW9uKCl7fSxEPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dmFyIG49dGhpcztpZighKG4gaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgRXJyb3IoIk11c3QgYmUgYW4gaW5zdGFuY2VvZiBQcm9taXNlLiIpO25bZl09XyxuW2ddPVtdO3RyeXtlJiZlKHYobixDKSx2KG4sTSkpfWNhdGNoKHQpe08obiwhMSx0KX19cmV0dXJuIHQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24gWm9uZUF3YXJlUHJvbWlzZSgpIHsgW25hdGl2ZSBjb2RlXSB9In0sdC5yZXNvbHZlPWZ1bmN0aW9uKHQpe3JldHVybiBPKG5ldyB0aGlzKG51bGwpLEMsdCl9LHQucmVqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBPKG5ldyB0aGlzKG51bGwpLE0sdCl9LHQucmFjZT1mdW5jdGlvbih0KXt2YXIgZSxuLG89bmV3IHRoaXMoKGZ1bmN0aW9uKHQsbyl7ZT10LG49b30pKTtmdW5jdGlvbiBpKHQpe2UodCl9ZnVuY3Rpb24gYSh0KXtuKHQpfWZvcih2YXIgcj0wLHM9dDtyPHMubGVuZ3RoO3IrKyl7dmFyIGw9c1tyXTtwKGwpfHwobD10aGlzLnJlc29sdmUobCkpLGwudGhlbihpLGEpfXJldHVybiBvfSx0LmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gdC5hbGxXaXRoQ2FsbGJhY2soZSl9LHQuYWxsU2V0dGxlZD1mdW5jdGlvbihlKXtyZXR1cm4odGhpcyYmdGhpcy5wcm90b3R5cGUgaW5zdGFuY2VvZiB0P3RoaXM6dCkuYWxsV2l0aENhbGxiYWNrKGUse3RoZW5DYWxsYmFjazpmdW5jdGlvbih0KXtyZXR1cm57c3RhdHVzOiJmdWxmaWxsZWQiLHZhbHVlOnR9fSxlcnJvckNhbGxiYWNrOmZ1bmN0aW9uKHQpe3JldHVybntzdGF0dXM6InJlamVjdGVkIixyZWFzb246dH19fSl9LHQuYWxsV2l0aENhbGxiYWNrPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLG8saT1uZXcgdGhpcygoZnVuY3Rpb24odCxlKXtuPXQsbz1lfSkpLGE9MixyPTAscz1bXSxsPWZ1bmN0aW9uKHQpe3AodCl8fCh0PWMucmVzb2x2ZSh0KSk7dmFyIGk9cjt0cnl7dC50aGVuKChmdW5jdGlvbih0KXtzW2ldPWU/ZS50aGVuQ2FsbGJhY2sodCk6dCwwPT0tLWEmJm4ocyl9KSwoZnVuY3Rpb24odCl7ZT8oc1tpXT1lLmVycm9yQ2FsbGJhY2sodCksMD09LS1hJiZuKHMpKTpvKHQpfSkpfWNhdGNoKHQpe28odCl9YSsrLHIrK30sYz10aGlzLGQ9MCxtPXQ7ZDxtLmxlbmd0aDtkKyspbChtW2RdKTtyZXR1cm4gMD09KGEtPTIpJiZuKHMpLGl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxTeW1ib2wudG9TdHJpbmdUYWcse2dldDpmdW5jdGlvbigpe3JldHVybiJQcm9taXNlIn0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsU3ltYm9sLnNwZWNpZXMse2dldDpmdW5jdGlvbigpe3JldHVybiB0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24obixvKXt2YXIgaT10aGlzLmNvbnN0cnVjdG9yW1N5bWJvbC5zcGVjaWVzXTtpJiYiZnVuY3Rpb24iPT10eXBlb2YgaXx8KGk9dGhpcy5jb25zdHJ1Y3Rvcnx8dCk7dmFyIGE9bmV3IGkoUykscj1lLmN1cnJlbnQ7cmV0dXJuIHRoaXNbZl09PV8/dGhpc1tnXS5wdXNoKHIsYSxuLG8pOmsodGhpcyxyLGEsbixvKSxhfSx0LnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKG51bGwsdCl9LHQucHJvdG90eXBlLmZpbmFsbHk9ZnVuY3Rpb24obil7dmFyIG89dGhpcy5jb25zdHJ1Y3RvcltTeW1ib2wuc3BlY2llc107byYmImZ1bmN0aW9uIj09dHlwZW9mIG98fChvPXQpO3ZhciBpPW5ldyBvKFMpO2lbaF09aDt2YXIgYT1lLmN1cnJlbnQ7cmV0dXJuIHRoaXNbZl09PV8/dGhpc1tnXS5wdXNoKGEsaSxuLG4pOmsodGhpcyxhLGksbixuKSxpfSx0fSkoKTtELnJlc29sdmU9RC5yZXNvbHZlLEQucmVqZWN0PUQucmVqZWN0LEQucmFjZT1ELnJhY2UsRC5hbGw9RC5hbGw7dmFyIEU9dFtsXT10LlByb21pc2U7dC5Qcm9taXNlPUQ7dmFyIEE9YSgidGhlblBhdGNoZWQiKTtmdW5jdGlvbiBUKHQpe3ZhciBlPXQucHJvdG90eXBlLG49byhlLCJ0aGVuIik7aWYoIW58fCExIT09bi53cml0YWJsZSYmbi5jb25maWd1cmFibGUpe3ZhciBpPWUudGhlbjtlW2NdPWksdC5wcm90b3R5cGUudGhlbj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIG5ldyBEKChmdW5jdGlvbih0LGUpe2kuY2FsbChuLHQsZSl9KSkudGhlbih0LGUpfSx0W0FdPSEwfX1yZXR1cm4gbi5wYXRjaFRoZW49VCxFJiYoVChFKSxSKHQsImZldGNoIiwoZnVuY3Rpb24odCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIG89dC5hcHBseShlLG4pO2lmKG8gaW5zdGFuY2VvZiBEKXJldHVybiBvO3ZhciBpPW8uY29uc3RydWN0b3I7cmV0dXJuIGlbQV18fFQoaSksb319KSh0KX0pKSksUHJvbWlzZVtlLl9fc3ltYm9sX18oInVuY2F1Z2h0UHJvbWlzZUVycm9ycyIpXT1yLER9KSksCi8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqLwpab25lLl9fbG9hZF9wYXRjaCgidG9TdHJpbmciLChmdW5jdGlvbih0KXt2YXIgZT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsbj1mKCJPcmlnaW5hbERlbGVnYXRlIiksbz1mKCJQcm9taXNlIiksaT1mKCJFcnJvciIpLGE9ZnVuY3Rpb24gYSgpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzKXt2YXIgcj10aGlzW25dO2lmKHIpcmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHI/ZS5jYWxsKHIpOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyKTtpZih0aGlzPT09UHJvbWlzZSl7dmFyIHM9dFtvXTtpZihzKXJldHVybiBlLmNhbGwocyl9aWYodGhpcz09PUVycm9yKXt2YXIgbD10W2ldO2lmKGwpcmV0dXJuIGUuY2FsbChsKX19cmV0dXJuIGUuY2FsbCh0aGlzKX07YVtuXT1lLEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz1hO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBQcm9taXNlJiZ0aGlzIGluc3RhbmNlb2YgUHJvbWlzZT8iW29iamVjdCBQcm9taXNlXSI6ci5jYWxsKHRoaXMpfX0pKTsKLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovCnZhciBIPSExO2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXRyeXt2YXIgRj1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtIPSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixGLEYpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixGLEYpfWNhdGNoKHQpe0g9ITF9dmFyIEw9e3VzZUc6ITB9LEI9e30sVj17fSxqPW5ldyBSZWdFeHAoIl4iK3ArIihcXHcrKSh0cnVlfGZhbHNlKSQiKSxVPWYoInByb3BhZ2F0aW9uU3RvcHBlZCIpO2Z1bmN0aW9uIEcodCxlKXt2YXIgbj0oZT9lKHQpOnQpK2Qsbz0oZT9lKHQpOnQpK2MsaT1wK24sYT1wK287Qlt0XT17fSxCW3RdLmZhbHNlPWksQlt0XS50cnVlPWF9ZnVuY3Rpb24gVyh0LGUsbyl7dmFyIGk9byYmby5hZGR8fGEscz1vJiZvLnJtfHxyLGw9byYmby5saXN0ZW5lcnN8fCJldmVudExpc3RlbmVycyIsbT1vJiZvLnJtQWxsfHwicmVtb3ZlQWxsTGlzdGVuZXJzIix1PWYoaSksZz0iLiIraSsiOiIsaD1mdW5jdGlvbih0LGUsbil7aWYoIXQuaXNSZW1vdmVkKXt2YXIgbz10LmNhbGxiYWNrOyJvYmplY3QiPT10eXBlb2YgbyYmby5oYW5kbGVFdmVudCYmKHQuY2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIG8uaGFuZGxlRXZlbnQodCl9LHQub3JpZ2luYWxEZWxlZ2F0ZT1vKSx0Lmludm9rZSh0LGUsW25dKTt2YXIgaT10Lm9wdGlvbnM7aSYmIm9iamVjdCI9PXR5cGVvZiBpJiZpLm9uY2UmJmVbc10uY2FsbChlLG4udHlwZSx0Lm9yaWdpbmFsRGVsZWdhdGU/dC5vcmlnaW5hbERlbGVnYXRlOnQuY2FsbGJhY2ssaSl9fSxiPWZ1bmN0aW9uKGUpe2lmKGU9ZXx8dC5ldmVudCl7dmFyIG49dGhpc3x8ZS50YXJnZXR8fHQsbz1uW0JbZS50eXBlXS5mYWxzZV07aWYobylpZigxPT09by5sZW5ndGgpaChvWzBdLG4sZSk7ZWxzZSBmb3IodmFyIGk9by5zbGljZSgpLGE9MDthPGkubGVuZ3RoJiYoIWV8fCEwIT09ZVtVXSk7YSsrKWgoaVthXSxuLGUpfX0seT1mdW5jdGlvbihlKXtpZihlPWV8fHQuZXZlbnQpe3ZhciBuPXRoaXN8fGUudGFyZ2V0fHx0LG89bltCW2UudHlwZV0udHJ1ZV07aWYobylpZigxPT09by5sZW5ndGgpaChvWzBdLG4sZSk7ZWxzZSBmb3IodmFyIGk9by5zbGljZSgpLGE9MDthPGkubGVuZ3RoJiYoIWV8fCEwIT09ZVtVXSk7YSsrKWgoaVthXSxuLGUpfX07ZnVuY3Rpb24gXyhlLG8pe2lmKCFlKXJldHVybiExO3ZhciBhPSEwO28mJnZvaWQgMCE9PW8udXNlRyYmKGE9by51c2VHKTt2YXIgcj1vJiZvLnZoLGg9ITA7byYmdm9pZCAwIT09by5jaGtEdXAmJihoPW8uY2hrRHVwKTt2YXIgXz0hMTtvJiZ2b2lkIDAhPT1vLnJ0JiYoXz1vLnJ0KTtmb3IodmFyIEM9ZTtDJiYhQy5oYXNPd25Qcm9wZXJ0eShpKTspQz1uKEMpO2lmKCFDJiZlW2ldJiYoQz1lKSwhQylyZXR1cm4hMTtpZihDW3VdKXJldHVybiExO3ZhciBNLHg9byYmby5ldmVudE5hbWVUb1N0cmluZyxPPXt9LFA9Q1t1XT1DW2ldLHc9Q1tmKHMpXT1DW3NdLGs9Q1tmKGwpXT1DW2xdLFM9Q1tmKG0pXT1DW21dO2Z1bmN0aW9uIEQodCxlKXtyZXR1cm4hSCYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0PyEhdC5jYXB0dXJlOkgmJmU/ImJvb2xlYW4iPT10eXBlb2YgdD97Y2FwdHVyZTp0LHBhc3NpdmU6ITB9OnQ/Im9iamVjdCI9PXR5cGVvZiB0JiYhMSE9PXQucGFzc2l2ZT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3Bhc3NpdmU6ITB9KTp0OntwYXNzaXZlOiEwfTp0fW8mJm8ucHJlcGVuZCYmKE09Q1tmKG8ucHJlcGVuZCldPUNbby5wcmVwZW5kXSk7dmFyIEU9YT9mdW5jdGlvbih0KXtpZighTy5pc0V4aXN0aW5nKXJldHVybiBQLmNhbGwoTy50YXJnZXQsTy5ldmVudE5hbWUsTy5jYXB0dXJlP3k6YixPLm9wdGlvbnMpfTpmdW5jdGlvbih0KXtyZXR1cm4gUC5jYWxsKE8udGFyZ2V0LE8uZXZlbnROYW1lLHQuaW52b2tlLE8ub3B0aW9ucyl9LFI9YT9mdW5jdGlvbih0KXtpZighdC5pc1JlbW92ZWQpe3ZhciBlPUJbdC5ldmVudE5hbWVdLG49dm9pZCAwO2UmJihuPWVbdC5jYXB0dXJlP2M6ZF0pO3ZhciBvPW4mJnQudGFyZ2V0W25dO2lmKG8pZm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspaWYob1tpXT09PXQpe28uc3BsaWNlKGksMSksdC5pc1JlbW92ZWQ9ITAsMD09PW8ubGVuZ3RoJiYodC5hbGxSZW1vdmVkPSEwLHQudGFyZ2V0W25dPW51bGwpO2JyZWFrfX1pZih0LmFsbFJlbW92ZWQpcmV0dXJuIHcuY2FsbCh0LnRhcmdldCx0LmV2ZW50TmFtZSx0LmNhcHR1cmU/eTpiLHQub3B0aW9ucyl9OmZ1bmN0aW9uKHQpe3JldHVybiB3LmNhbGwodC50YXJnZXQsdC5ldmVudE5hbWUsdC5pbnZva2UsdC5vcHRpb25zKX0sQT1vJiZvLmRpZmY/by5kaWZmOmZ1bmN0aW9uKHQsZSl7dmFyIG49dHlwZW9mIGU7cmV0dXJuImZ1bmN0aW9uIj09PW4mJnQuY2FsbGJhY2s9PT1lfHwib2JqZWN0Ij09PW4mJnQub3JpZ2luYWxEZWxlZ2F0ZT09PWV9LE49Wm9uZVtmKCJVTlBBVENIRURfRVZFTlRTIildLHo9dFtmKCJQQVNTSVZFX0VWRU5UUyIpXSxJPWZ1bmN0aW9uKGUsbixpLHMsbCxwKXtyZXR1cm4gdm9pZCAwPT09bCYmKGw9ITEpLHZvaWQgMD09PXAmJihwPSExKSxmdW5jdGlvbigpe3ZhciBtPXRoaXN8fHQsdT1hcmd1bWVudHNbMF07byYmby50cmFuc2ZlckV2ZW50TmFtZSYmKHU9by50cmFuc2ZlckV2ZW50TmFtZSh1KSk7dmFyIGY9YXJndW1lbnRzWzFdO2lmKCFmKXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZih2JiYidW5jYXVnaHRFeGNlcHRpb24iPT09dSlyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGc9ITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGYpe2lmKCFmLmhhbmRsZUV2ZW50KXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtnPSEwfWlmKCFyfHxyKGUsZixtLGFyZ3VtZW50cykpe3ZhciBiPUgmJiEheiYmLTEhPT16LmluZGV4T2YodSkseT1EKGFyZ3VtZW50c1syXSxiKTtpZihOKWZvcih2YXIgXz0wO188Ti5sZW5ndGg7XysrKWlmKHU9PT1OW19dKXJldHVybiBiP2UuY2FsbChtLHUsZix5KTplLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgQz0hIXkmJigiYm9vbGVhbiI9PXR5cGVvZiB5fHx5LmNhcHR1cmUpLE09ISgheXx8Im9iamVjdCIhPXR5cGVvZiB5KSYmeS5vbmNlLFA9Wm9uZS5jdXJyZW50LHc9Qlt1XTt3fHwoRyh1LHgpLHc9Qlt1XSk7dmFyIGssUz13W0M/YzpkXSxFPW1bU10sUj0hMTtpZihFKXtpZihSPSEwLGgpZm9yKF89MDtfPEUubGVuZ3RoO18rKylpZihBKEVbX10sZikpcmV0dXJufWVsc2UgRT1tW1NdPVtdO3ZhciBUPW0uY29uc3RydWN0b3IubmFtZSxJPVZbVF07SSYmKGs9SVt1XSksa3x8KGs9VCtuKyh4P3godSk6dSkpLE8ub3B0aW9ucz15LE0mJihPLm9wdGlvbnMub25jZT0hMSksTy50YXJnZXQ9bSxPLmNhcHR1cmU9QyxPLmV2ZW50TmFtZT11LE8uaXNFeGlzdGluZz1SO3ZhciBGPWE/TDp2b2lkIDA7RiYmKEYudGFza0RhdGE9Tyk7dmFyIGo9UC5zY2hlZHVsZUV2ZW50VGFzayhrLGYsRixpLHMpO3JldHVybiBPLnRhcmdldD1udWxsLEYmJihGLnRhc2tEYXRhPW51bGwpLE0mJih5Lm9uY2U9ITApLChIfHwiYm9vbGVhbiIhPXR5cGVvZiBqLm9wdGlvbnMpJiYoai5vcHRpb25zPXkpLGoudGFyZ2V0PW0sai5jYXB0dXJlPUMsai5ldmVudE5hbWU9dSxnJiYoai5vcmlnaW5hbERlbGVnYXRlPWYpLHA/RS51bnNoaWZ0KGopOkUucHVzaChqKSxsP206dm9pZCAwfX19O3JldHVybiBDW2ldPUkoUCxnLEUsUixfKSxNJiYoQy5wcmVwZW5kTGlzdGVuZXI9SShNLCIucHJlcGVuZExpc3RlbmVyOiIsKGZ1bmN0aW9uKHQpe3JldHVybiBNLmNhbGwoTy50YXJnZXQsTy5ldmVudE5hbWUsdC5pbnZva2UsTy5vcHRpb25zKX0pLFIsXywhMCkpLENbc109ZnVuY3Rpb24oKXt2YXIgZT10aGlzfHx0LG49YXJndW1lbnRzWzBdO28mJm8udHJhbnNmZXJFdmVudE5hbWUmJihuPW8udHJhbnNmZXJFdmVudE5hbWUobikpO3ZhciBpPWFyZ3VtZW50c1syXSxhPSEhaSYmKCJib29sZWFuIj09dHlwZW9mIGl8fGkuY2FwdHVyZSkscz1hcmd1bWVudHNbMV07aWYoIXMpcmV0dXJuIHcuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKCFyfHxyKHcscyxlLGFyZ3VtZW50cykpe3ZhciBsLG09QltuXTttJiYobD1tW2E/YzpkXSk7dmFyIHU9bCYmZVtsXTtpZih1KWZvcih2YXIgZj0wO2Y8dS5sZW5ndGg7ZisrKXt2YXIgZz11W2ZdO2lmKEEoZyxzKSlyZXR1cm4gdS5zcGxpY2UoZiwxKSxnLmlzUmVtb3ZlZD0hMCwwPT09dS5sZW5ndGgmJihnLmFsbFJlbW92ZWQ9ITAsZVtsXT1udWxsLCJzdHJpbmciPT10eXBlb2YgbiYmKGVbcCsiT05fUFJPUEVSVFkiK25dPW51bGwpKSxnLnpvbmUuY2FuY2VsVGFzayhnKSxfP2U6dm9pZCAwfXJldHVybiB3LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LENbbF09ZnVuY3Rpb24oKXt2YXIgZT10aGlzfHx0LG49YXJndW1lbnRzWzBdO28mJm8udHJhbnNmZXJFdmVudE5hbWUmJihuPW8udHJhbnNmZXJFdmVudE5hbWUobikpO2Zvcih2YXIgaT1bXSxhPVkoZSx4P3gobik6bikscj0wO3I8YS5sZW5ndGg7cisrKXt2YXIgcz1hW3JdO2kucHVzaChzLm9yaWdpbmFsRGVsZWdhdGU/cy5vcmlnaW5hbERlbGVnYXRlOnMuY2FsbGJhY2spfXJldHVybiBpfSxDW21dPWZ1bmN0aW9uKCl7dmFyIGU9dGhpc3x8dCxuPWFyZ3VtZW50c1swXTtpZihuKXtvJiZvLnRyYW5zZmVyRXZlbnROYW1lJiYobj1vLnRyYW5zZmVyRXZlbnROYW1lKG4pKTt2YXIgaT1CW25dO2lmKGkpe3ZhciBhPWVbaS5mYWxzZV0scj1lW2kudHJ1ZV07aWYoYSl7dmFyIGw9YS5zbGljZSgpO2ZvcihwPTA7cDxsLmxlbmd0aDtwKyspdGhpc1tzXS5jYWxsKHRoaXMsbiwoYz1sW3BdKS5vcmlnaW5hbERlbGVnYXRlP2Mub3JpZ2luYWxEZWxlZ2F0ZTpjLmNhbGxiYWNrLGMub3B0aW9ucyl9aWYocilmb3IobD1yLnNsaWNlKCkscD0wO3A8bC5sZW5ndGg7cCsrKXt2YXIgYzt0aGlzW3NdLmNhbGwodGhpcyxuLChjPWxbcF0pLm9yaWdpbmFsRGVsZWdhdGU/Yy5vcmlnaW5hbERlbGVnYXRlOmMuY2FsbGJhY2ssYy5vcHRpb25zKX19fWVsc2V7Zm9yKHZhciBkPU9iamVjdC5rZXlzKGUpLHA9MDtwPGQubGVuZ3RoO3ArKyl7dmFyIHU9ai5leGVjKGRbcF0pLGY9dSYmdVsxXTtmJiYicmVtb3ZlTGlzdGVuZXIiIT09ZiYmdGhpc1ttXS5jYWxsKHRoaXMsZil9dGhpc1ttXS5jYWxsKHRoaXMsInJlbW92ZUxpc3RlbmVyIil9aWYoXylyZXR1cm4gdGhpc30sVChDW2ldLFApLFQoQ1tzXSx3KSxTJiZUKENbbV0sUyksayYmVChDW2xdLGspLCEwfWZvcih2YXIgQz1bXSxNPTA7TTxlLmxlbmd0aDtNKyspQ1tNXT1fKGVbTV0sbyk7cmV0dXJuIEN9ZnVuY3Rpb24gWSh0LGUpe2lmKCFlKXt2YXIgbj1bXTtmb3IodmFyIG8gaW4gdCl7dmFyIGk9ai5leGVjKG8pLGE9aSYmaVsxXTtpZihhJiYoIWV8fGE9PT1lKSl7dmFyIHI9dFtvXTtpZihyKWZvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKW4ucHVzaChyW3NdKX19cmV0dXJuIG59dmFyIGw9QltlXTtsfHwoRyhlKSxsPUJbZV0pO3ZhciBjPXRbbC5mYWxzZV0sZD10W2wudHJ1ZV07cmV0dXJuIGM/ZD9jLmNvbmNhdChkKTpjLnNsaWNlKCk6ZD9kLnNsaWNlKCk6W119ZnVuY3Rpb24gcSh0LGUpe3ZhciBuPXQuRXZlbnQ7biYmbi5wcm90b3R5cGUmJmUucGF0Y2hNZXRob2Qobi5wcm90b3R5cGUsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe2VbVV09ITAsdCYmdC5hcHBseShlLG4pfX0pKX0KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovZnVuY3Rpb24gWih0LGUsbixvLGkpe3ZhciBhPVpvbmUuX19zeW1ib2xfXyhvKTtpZighZVthXSl7dmFyIHI9ZVthXT1lW29dO2Vbb109ZnVuY3Rpb24oYSxzLGwpe3JldHVybiBzJiZzLnByb3RvdHlwZSYmaS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgaT1uKyIuIitvKyI6OiIrZSxhPXMucHJvdG90eXBlO2lmKGEuaGFzT3duUHJvcGVydHkoZSkpe3ZhciByPXQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsZSk7ciYmci52YWx1ZT8oci52YWx1ZT10LndyYXBXaXRoQ3VycmVudFpvbmUoci52YWx1ZSxpKSx0Ll9yZWRlZmluZVByb3BlcnR5KHMucHJvdG90eXBlLGUscikpOmFbZV0mJihhW2VdPXQud3JhcFdpdGhDdXJyZW50Wm9uZShhW2VdLGkpKX1lbHNlIGFbZV0mJihhW2VdPXQud3JhcFdpdGhDdXJyZW50Wm9uZShhW2VdLGkpKX0pKSxyLmNhbGwoZSxhLHMsbCl9LHQuYXR0YWNoT3JpZ2luVG9QYXRjaGVkKGVbb10scil9fQovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi92YXIgWCxLLEosUSwkLHR0PVsiYWJzb2x1dGVkZXZpY2VvcmllbnRhdGlvbiIsImFmdGVyaW5wdXQiLCJhZnRlcnByaW50IiwiYXBwaW5zdGFsbGVkIiwiYmVmb3JlaW5zdGFsbHByb21wdCIsImJlZm9yZXByaW50IiwiYmVmb3JldW5sb2FkIiwiZGV2aWNlbGlnaHQiLCJkZXZpY2Vtb3Rpb24iLCJkZXZpY2VvcmllbnRhdGlvbiIsImRldmljZW9yaWVudGF0aW9uYWJzb2x1dGUiLCJkZXZpY2Vwcm94aW1pdHkiLCJoYXNoY2hhbmdlIiwibGFuZ3VhZ2VjaGFuZ2UiLCJtZXNzYWdlIiwibW96YmVmb3JlcGFpbnQiLCJvZmZsaW5lIiwib25saW5lIiwicGFpbnQiLCJwYWdlc2hvdyIsInBhZ2VoaWRlIiwicG9wc3RhdGUiLCJyZWplY3Rpb25oYW5kbGVkIiwic3RvcmFnZSIsInVuaGFuZGxlZHJlamVjdGlvbiIsInVubG9hZCIsInVzZXJwcm94aW1pdHkiLCJ2cmRpc3BsYXljb25uZWN0ZWQiLCJ2cmRpc3BsYXlkaXNjb25uZWN0ZWQiLCJ2cmRpc3BsYXlwcmVzZW50Y2hhbmdlIl0sZXQ9WyJlbmNyeXB0ZWQiLCJ3YWl0aW5nZm9ya2V5IiwibXNuZWVka2V5IiwibW96aW50ZXJydXB0YmVnaW4iLCJtb3ppbnRlcnJ1cHRlbmQiXSxudD1bImxvYWQiXSxvdD1bImJsdXIiLCJlcnJvciIsImZvY3VzIiwibG9hZCIsInJlc2l6ZSIsInNjcm9sbCIsIm1lc3NhZ2VlcnJvciJdLGl0PVsiYm91bmNlIiwiZmluaXNoIiwic3RhcnQiXSxhdD1bImxvYWRzdGFydCIsInByb2dyZXNzIiwiYWJvcnQiLCJlcnJvciIsImxvYWQiLCJwcm9ncmVzcyIsInRpbWVvdXQiLCJsb2FkZW5kIiwicmVhZHlzdGF0ZWNoYW5nZSJdLHJ0PVsidXBncmFkZW5lZWRlZCIsImNvbXBsZXRlIiwiYWJvcnQiLCJzdWNjZXNzIiwiZXJyb3IiLCJibG9ja2VkIiwidmVyc2lvbmNoYW5nZSIsImNsb3NlIl0sc3Q9WyJjbG9zZSIsImVycm9yIiwib3BlbiIsIm1lc3NhZ2UiXSxsdD1bImVycm9yIiwibWVzc2FnZSJdLGN0PVsiYWJvcnQiLCJhbmltYXRpb25jYW5jZWwiLCJhbmltYXRpb25lbmQiLCJhbmltYXRpb25pdGVyYXRpb24iLCJhdXhjbGljayIsImJlZm9yZWlucHV0IiwiYmx1ciIsImNhbmNlbCIsImNhbnBsYXkiLCJjYW5wbGF5dGhyb3VnaCIsImNoYW5nZSIsImNvbXBvc2l0aW9uc3RhcnQiLCJjb21wb3NpdGlvbnVwZGF0ZSIsImNvbXBvc2l0aW9uZW5kIiwiY3VlY2hhbmdlIiwiY2xpY2siLCJjbG9zZSIsImNvbnRleHRtZW51IiwiY3VyZWNoYW5nZSIsImRibGNsaWNrIiwiZHJhZyIsImRyYWdlbmQiLCJkcmFnZW50ZXIiLCJkcmFnZXhpdCIsImRyYWdsZWF2ZSIsImRyYWdvdmVyIiwiZHJvcCIsImR1cmF0aW9uY2hhbmdlIiwiZW1wdGllZCIsImVuZGVkIiwiZXJyb3IiLCJmb2N1cyIsImZvY3VzaW4iLCJmb2N1c291dCIsImdvdHBvaW50ZXJjYXB0dXJlIiwiaW5wdXQiLCJpbnZhbGlkIiwia2V5ZG93biIsImtleXByZXNzIiwia2V5dXAiLCJsb2FkIiwibG9hZHN0YXJ0IiwibG9hZGVkZGF0YSIsImxvYWRlZG1ldGFkYXRhIiwibG9zdHBvaW50ZXJjYXB0dXJlIiwibW91c2Vkb3duIiwibW91c2VlbnRlciIsIm1vdXNlbGVhdmUiLCJtb3VzZW1vdmUiLCJtb3VzZW91dCIsIm1vdXNlb3ZlciIsIm1vdXNldXAiLCJtb3VzZXdoZWVsIiwib3JpZW50YXRpb25jaGFuZ2UiLCJwYXVzZSIsInBsYXkiLCJwbGF5aW5nIiwicG9pbnRlcmNhbmNlbCIsInBvaW50ZXJkb3duIiwicG9pbnRlcmVudGVyIiwicG9pbnRlcmxlYXZlIiwicG9pbnRlcmxvY2tjaGFuZ2UiLCJtb3pwb2ludGVybG9ja2NoYW5nZSIsIndlYmtpdHBvaW50ZXJsb2NrZXJjaGFuZ2UiLCJwb2ludGVybG9ja2Vycm9yIiwibW96cG9pbnRlcmxvY2tlcnJvciIsIndlYmtpdHBvaW50ZXJsb2NrZXJyb3IiLCJwb2ludGVybW92ZSIsInBvaW50b3V0IiwicG9pbnRlcm92ZXIiLCJwb2ludGVydXAiLCJwcm9ncmVzcyIsInJhdGVjaGFuZ2UiLCJyZXNldCIsInJlc2l6ZSIsInNjcm9sbCIsInNlZWtlZCIsInNlZWtpbmciLCJzZWxlY3QiLCJzZWxlY3Rpb25jaGFuZ2UiLCJzZWxlY3RzdGFydCIsInNob3ciLCJzb3J0Iiwic3RhbGxlZCIsInN1Ym1pdCIsInN1c3BlbmQiLCJ0aW1ldXBkYXRlIiwidm9sdW1lY2hhbmdlIiwidG91Y2hjYW5jZWwiLCJ0b3VjaG1vdmUiLCJ0b3VjaHN0YXJ0IiwidG91Y2hlbmQiLCJ0cmFuc2l0aW9uY2FuY2VsIiwidHJhbnNpdGlvbmVuZCIsIndhaXRpbmciLCJ3aGVlbCJdLmNvbmNhdChbIndlYmdsY29udGV4dHJlc3RvcmVkIiwid2ViZ2xjb250ZXh0bG9zdCIsIndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3IiXSxbImF1dG9jb21wbGV0ZSIsImF1dG9jb21wbGV0ZWVycm9yIl0sWyJ0b2dnbGUiXSxbImFmdGVyc2NyaXB0ZXhlY3V0ZSIsImJlZm9yZXNjcmlwdGV4ZWN1dGUiLCJET01Db250ZW50TG9hZGVkIiwiZnJlZXplIiwiZnVsbHNjcmVlbmNoYW5nZSIsIm1vemZ1bGxzY3JlZW5jaGFuZ2UiLCJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIiwibXNmdWxsc2NyZWVuY2hhbmdlIiwiZnVsbHNjcmVlbmVycm9yIiwibW96ZnVsbHNjcmVlbmVycm9yIiwid2Via2l0ZnVsbHNjcmVlbmVycm9yIiwibXNmdWxsc2NyZWVuZXJyb3IiLCJyZWFkeXN0YXRlY2hhbmdlIiwidmlzaWJpbGl0eWNoYW5nZSIsInJlc3VtZSJdLHR0LFsiYmVmb3JlY29weSIsImJlZm9yZWN1dCIsImJlZm9yZXBhc3RlIiwiY29weSIsImN1dCIsInBhc3RlIiwiZHJhZ3N0YXJ0IiwibG9hZGVuZCIsImFuaW1hdGlvbnN0YXJ0Iiwic2VhcmNoIiwidHJhbnNpdGlvbnJ1biIsInRyYW5zaXRpb25zdGFydCIsIndlYmtpdGFuaW1hdGlvbmVuZCIsIndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbiIsIndlYmtpdGFuaW1hdGlvbnN0YXJ0Iiwid2Via2l0dHJhbnNpdGlvbmVuZCJdLFsiYWN0aXZhdGUiLCJhZnRlcnVwZGF0ZSIsImFyaWFyZXF1ZXN0IiwiYmVmb3JlYWN0aXZhdGUiLCJiZWZvcmVkZWFjdGl2YXRlIiwiYmVmb3JlZWRpdGZvY3VzIiwiYmVmb3JldXBkYXRlIiwiY2VsbGNoYW5nZSIsImNvbnRyb2xzZWxlY3QiLCJkYXRhYXZhaWxhYmxlIiwiZGF0YXNldGNoYW5nZWQiLCJkYXRhc2V0Y29tcGxldGUiLCJlcnJvcnVwZGF0ZSIsImZpbHRlcmNoYW5nZSIsImxheW91dGNvbXBsZXRlIiwibG9zZWNhcHR1cmUiLCJtb3ZlIiwibW92ZWVuZCIsIm1vdmVzdGFydCIsInByb3BlcnR5Y2hhbmdlIiwicmVzaXplZW5kIiwicmVzaXplc3RhcnQiLCJyb3dlbnRlciIsInJvd2V4aXQiLCJyb3dzZGVsZXRlIiwicm93c2luc2VydGVkIiwiY29tbWFuZCIsImNvbXBhc3NuZWVkc2NhbGlicmF0aW9uIiwiZGVhY3RpdmF0ZSIsImhlbHAiLCJtc2NvbnRlbnR6b29tIiwibXNtYW5pcHVsYXRpb25zdGF0ZWNoYW5nZWQiLCJtc2dlc3R1cmVjaGFuZ2UiLCJtc2dlc3R1cmVkb3VibGV0YXAiLCJtc2dlc3R1cmVlbmQiLCJtc2dlc3R1cmVob2xkIiwibXNnZXN0dXJlc3RhcnQiLCJtc2dlc3R1cmV0YXAiLCJtc2dvdHBvaW50ZXJjYXB0dXJlIiwibXNpbmVydGlhc3RhcnQiLCJtc2xvc3Rwb2ludGVyY2FwdHVyZSIsIm1zcG9pbnRlcmNhbmNlbCIsIm1zcG9pbnRlcmRvd24iLCJtc3BvaW50ZXJlbnRlciIsIm1zcG9pbnRlcmhvdmVyIiwibXNwb2ludGVybGVhdmUiLCJtc3BvaW50ZXJtb3ZlIiwibXNwb2ludGVyb3V0IiwibXNwb2ludGVyb3ZlciIsIm1zcG9pbnRlcnVwIiwicG9pbnRlcm91dCIsIm1zc2l0ZW1vZGVqdW1wbGlzdGl0ZW1yZW1vdmVkIiwibXN0aHVtYm5haWxjbGljayIsInN0b3AiLCJzdG9yYWdlY29tbWl0Il0pO2Z1bmN0aW9uIGR0KHQsZSxuKXtpZighbnx8MD09PW4ubGVuZ3RoKXJldHVybiBlO3ZhciBvPW4uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS50YXJnZXQ9PT10fSkpO2lmKCFvfHwwPT09by5sZW5ndGgpcmV0dXJuIGU7dmFyIGk9b1swXS5pZ25vcmVQcm9wZXJ0aWVzO3JldHVybiBlLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuLTE9PT1pLmluZGV4T2YodCl9KSl9ZnVuY3Rpb24gcHQodCxlLG4sbyl7dCYmUyh0LGR0KHQsZSxuKSxvKX1mdW5jdGlvbiBtdCh0LGUpe2lmKCghdnx8TykmJiFab25lW3Quc3ltYm9sKCJwYXRjaEV2ZW50cyIpXSl7dmFyIG89InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJTb2NrZXQsaT1lLl9fWm9uZV9pZ25vcmVfb25fcHJvcGVydGllcztpZih4KXt2YXIgYT13aW5kb3cscj0oZnVuY3Rpb24gcygpe3RyeXt2YXIgdD1oLm5hdmlnYXRvci51c2VyQWdlbnQ7aWYoLTEhPT10LmluZGV4T2YoIk1TSUUgIil8fC0xIT09dC5pbmRleE9mKCJUcmlkZW50LyIpKXJldHVybiEwfWNhdGNoKHQpe31yZXR1cm4hMX0pKCk/W3t0YXJnZXQ6YSxpZ25vcmVQcm9wZXJ0aWVzOlsiZXJyb3IiXX1dOltdO3B0KGEsY3QuY29uY2F0KFsibWVzc2FnZWVycm9yIl0pLGk/aS5jb25jYXQocik6aSxuKGEpKSxwdChEb2N1bWVudC5wcm90b3R5cGUsY3QsaSksdm9pZCAwIT09YS5TVkdFbGVtZW50JiZwdChhLlNWR0VsZW1lbnQucHJvdG90eXBlLGN0LGkpLHB0KEVsZW1lbnQucHJvdG90eXBlLGN0LGkpLHB0KEhUTUxFbGVtZW50LnByb3RvdHlwZSxjdCxpKSxwdChIVE1MTWVkaWFFbGVtZW50LnByb3RvdHlwZSxldCxpKSxwdChIVE1MRnJhbWVTZXRFbGVtZW50LnByb3RvdHlwZSx0dC5jb25jYXQob3QpLGkpLHB0KEhUTUxCb2R5RWxlbWVudC5wcm90b3R5cGUsdHQuY29uY2F0KG90KSxpKSxwdChIVE1MRnJhbWVFbGVtZW50LnByb3RvdHlwZSxudCxpKSxwdChIVE1MSUZyYW1lRWxlbWVudC5wcm90b3R5cGUsbnQsaSk7dmFyIGw9YS5IVE1MTWFycXVlZUVsZW1lbnQ7bCYmcHQobC5wcm90b3R5cGUsaXQsaSk7dmFyIGM9YS5Xb3JrZXI7YyYmcHQoYy5wcm90b3R5cGUsbHQsaSl9dmFyIGQ9ZS5YTUxIdHRwUmVxdWVzdDtkJiZwdChkLnByb3RvdHlwZSxhdCxpKTt2YXIgcD1lLlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7cCYmcHQocCYmcC5wcm90b3R5cGUsYXQsaSksInVuZGVmaW5lZCIhPXR5cGVvZiBJREJJbmRleCYmKHB0KElEQkluZGV4LnByb3RvdHlwZSxydCxpKSxwdChJREJSZXF1ZXN0LnByb3RvdHlwZSxydCxpKSxwdChJREJPcGVuREJSZXF1ZXN0LnByb3RvdHlwZSxydCxpKSxwdChJREJEYXRhYmFzZS5wcm90b3R5cGUscnQsaSkscHQoSURCVHJhbnNhY3Rpb24ucHJvdG90eXBlLHJ0LGkpLHB0KElEQkN1cnNvci5wcm90b3R5cGUscnQsaSkpLG8mJnB0KFdlYlNvY2tldC5wcm90b3R5cGUsc3QsaSl9fQovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi9mdW5jdGlvbiB1dCgpe1g9Wm9uZS5fX3N5bWJvbF9fLEs9T2JqZWN0W1goImRlZmluZVByb3BlcnR5IildPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxKPU9iamVjdFtYKCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiKV09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixRPU9iamVjdC5jcmVhdGUsJD1YKCJ1bmNvbmZpZ3VyYWJsZXMiKSxPYmplY3QuZGVmaW5lUHJvcGVydHk9ZnVuY3Rpb24odCxlLG4pe2lmKGd0KHQsZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFzc2lnbiB0byByZWFkIG9ubHkgcHJvcGVydHkgJyIrZSsiJyBvZiAiK3QpO3ZhciBvPW4uY29uZmlndXJhYmxlO3JldHVybiJwcm90b3R5cGUiIT09ZSYmKG49aHQodCxlLG4pKSxidCh0LGUsbixvKX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbixlW25dKX0pKSx0fSxPYmplY3QuY3JlYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIm9iamVjdCIhPXR5cGVvZiBlfHxPYmplY3QuaXNGcm96ZW4oZSl8fE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKG4pe2Vbbl09aHQodCxuLGVbbl0pfSkpLFEodCxlKX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcj1mdW5jdGlvbih0LGUpe3ZhciBuPUoodCxlKTtyZXR1cm4gbiYmZ3QodCxlKSYmKG4uY29uZmlndXJhYmxlPSExKSxufX1mdW5jdGlvbiBmdCh0LGUsbil7dmFyIG89bi5jb25maWd1cmFibGU7cmV0dXJuIGJ0KHQsZSxuPWh0KHQsZSxuKSxvKX1mdW5jdGlvbiBndCh0LGUpe3JldHVybiB0JiZ0WyRdJiZ0WyRdW2VdfWZ1bmN0aW9uIGh0KHQsZSxuKXtyZXR1cm4gT2JqZWN0LmlzRnJvemVuKG4pfHwobi5jb25maWd1cmFibGU9ITApLG4uY29uZmlndXJhYmxlfHwodFskXXx8T2JqZWN0LmlzRnJvemVuKHQpfHxLKHQsJCx7d3JpdGFibGU6ITAsdmFsdWU6e319KSx0WyRdJiYodFskXVtlXT0hMCkpLG59ZnVuY3Rpb24gYnQodCxlLG4sbyl7dHJ5e3JldHVybiBLKHQsZSxuKX1jYXRjaChyKXtpZighbi5jb25maWd1cmFibGUpdGhyb3cgcjt2b2lkIDA9PT1vP2RlbGV0ZSBuLmNvbmZpZ3VyYWJsZTpuLmNvbmZpZ3VyYWJsZT1vO3RyeXtyZXR1cm4gSyh0LGUsbil9Y2F0Y2gobyl7dmFyIGk9ITE7aWYoImNyZWF0ZWRDYWxsYmFjayIhPT1lJiYiYXR0YWNoZWRDYWxsYmFjayIhPT1lJiYiZGV0YWNoZWRDYWxsYmFjayIhPT1lJiYiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIiE9PWV8fChpPSEwKSwhaSl0aHJvdyBvO3ZhciBhPW51bGw7dHJ5e2E9SlNPTi5zdHJpbmdpZnkobil9Y2F0Y2godCl7YT1uLnRvU3RyaW5nKCl9Y29uc29sZS5sb2coIkF0dGVtcHRpbmcgdG8gY29uZmlndXJlICciK2UrIicgd2l0aCBkZXNjcmlwdG9yICciK2ErIicgb24gb2JqZWN0ICciK3QrIicgYW5kIGdvdCBlcnJvciwgZ2l2aW5nIHVwOiAiK28pfX19Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqL2Z1bmN0aW9uIHl0KHQsZSl7dmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCksbz1uLmV2ZW50TmFtZXMsaT1uLmdsb2JhbFNvdXJjZXMsYT1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLHI9bi5UUlVFX1NUUixzPW4uRkFMU0VfU1RSLGw9bi5aT05FX1NZTUJPTF9QUkVGSVgsYz0iQXBwbGljYXRpb25DYWNoZSxFdmVudFNvdXJjZSxGaWxlUmVhZGVyLElucHV0TWV0aG9kQ29udGV4dCxNZWRpYUNvbnRyb2xsZXIsTWVzc2FnZVBvcnQsTm9kZSxQZXJmb3JtYW5jZSxTVkdFbGVtZW50SW5zdGFuY2UsU2hhcmVkV29ya2VyLFRleHRUcmFjayxUZXh0VHJhY2tDdWUsVGV4dFRyYWNrTGlzdCxXZWJLaXROYW1lZEZsb3csV2luZG93LFdvcmtlcixXb3JrZXJHbG9iYWxTY29wZSxYTUxIdHRwUmVxdWVzdCxYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LFhNTEh0dHBSZXF1ZXN0VXBsb2FkLElEQlJlcXVlc3QsSURCT3BlbkRCUmVxdWVzdCxJREJEYXRhYmFzZSxJREJUcmFuc2FjdGlvbixJREJDdXJzb3IsREJJbmRleCxXZWJTb2NrZXQiLnNwbGl0KCIsIiksZD1bXSxwPXQud3RmLG09IkFuY2hvcixBcmVhLEF1ZGlvLEJSLEJhc2UsQmFzZUZvbnQsQm9keSxCdXR0b24sQ2FudmFzLENvbnRlbnQsRExpc3QsRGlyZWN0b3J5LERpdixFbWJlZCxGaWVsZFNldCxGb250LEZvcm0sRnJhbWUsRnJhbWVTZXQsSFIsSGVhZCxIZWFkaW5nLEh0bWwsSUZyYW1lLEltYWdlLElucHV0LEtleWdlbixMSSxMYWJlbCxMZWdlbmQsTGluayxNYXAsTWFycXVlZSxNZWRpYSxNZW51LE1ldGEsTWV0ZXIsTW9kLE9MaXN0LE9iamVjdCxPcHRHcm91cCxPcHRpb24sT3V0cHV0LFBhcmFncmFwaCxQcmUsUHJvZ3Jlc3MsUXVvdGUsU2NyaXB0LFNlbGVjdCxTb3VyY2UsU3BhbixTdHlsZSxUYWJsZUNhcHRpb24sVGFibGVDZWxsLFRhYmxlQ29sLFRhYmxlLFRhYmxlUm93LFRhYmxlU2VjdGlvbixUZXh0QXJlYSxUaXRsZSxUcmFjayxVTGlzdCxVbmtub3duLFZpZGVvIi5zcGxpdCgiLCIpO3A/ZD1tLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIkhUTUwiK3QrIkVsZW1lbnQifSkpLmNvbmNhdChjKTp0LkV2ZW50VGFyZ2V0P2QucHVzaCgiRXZlbnRUYXJnZXQiKTpkPWM7Zm9yKHZhciB1PXQuX19ab25lX2Rpc2FibGVfSUVfY2hlY2t8fCExLGY9dC5fX1pvbmVfZW5hYmxlX2Nyb3NzX2NvbnRleHRfY2hlY2t8fCExLGc9ZS5pc0lFT3JFZGdlKCksaD0iW29iamVjdCBGdW5jdGlvbldyYXBwZXJdIixiPSJmdW5jdGlvbiBfX0JST1dTRVJUT09MU19DT05TT0xFX1NBRkVGVU5DKCkgeyBbbmF0aXZlIGNvZGVdIH0iLHk9e01TUG9pbnRlckNhbmNlbDoicG9pbnRlcmNhbmNlbCIsTVNQb2ludGVyRG93bjoicG9pbnRlcmRvd24iLE1TUG9pbnRlckVudGVyOiJwb2ludGVyZW50ZXIiLE1TUG9pbnRlckhvdmVyOiJwb2ludGVyaG92ZXIiLE1TUG9pbnRlckxlYXZlOiJwb2ludGVybGVhdmUiLE1TUG9pbnRlck1vdmU6InBvaW50ZXJtb3ZlIixNU1BvaW50ZXJPdXQ6InBvaW50ZXJvdXQiLE1TUG9pbnRlck92ZXI6InBvaW50ZXJvdmVyIixNU1BvaW50ZXJVcDoicG9pbnRlcnVwIn0sXz0wO188by5sZW5ndGg7XysrKXt2YXIgQz1sKygoUD1vW19dKStzKSxNPWwrKFArcik7YVtQXT17fSxhW1BdW3NdPUMsYVtQXVtyXT1NfWZvcihfPTA7XzxtLmxlbmd0aDtfKyspZm9yKHZhciB2PW1bX10seD1pW3ZdPXt9LE89MDtPPG8ubGVuZ3RoO08rKyl7dmFyIFA7eFtQPW9bT11dPXYrIi5hZGRFdmVudExpc3RlbmVyOiIrUH12YXIgdz1bXTtmb3IoXz0wO188ZC5sZW5ndGg7XysrKXt2YXIgaz10W2RbX11dO3cucHVzaChrJiZrLnByb3RvdHlwZSl9cmV0dXJuIGUucGF0Y2hFdmVudFRhcmdldCh0LHcse3ZoOmZ1bmN0aW9uKHQsZSxuLG8pe2lmKCF1JiZnKXtpZihmKXRyeXt2YXIgaTtpZigoaT1lLnRvU3RyaW5nKCkpPT09aHx8aT09YilyZXR1cm4gdC5hcHBseShuLG8pLCExfWNhdGNoKGUpe3JldHVybiB0LmFwcGx5KG4sbyksITF9ZWxzZSBpZigoaT1lLnRvU3RyaW5nKCkpPT09aHx8aT09YilyZXR1cm4gdC5hcHBseShuLG8pLCExfWVsc2UgaWYoZil0cnl7ZS50b1N0cmluZygpfWNhdGNoKGUpe3JldHVybiB0LmFwcGx5KG4sbyksITF9cmV0dXJuITB9LHRyYW5zZmVyRXZlbnROYW1lOmZ1bmN0aW9uKHQpe3JldHVybiB5W3RdfHx0fX0pLFpvbmVbZS5zeW1ib2woInBhdGNoRXZlbnRUYXJnZXQiKV09ISF0LkV2ZW50VGFyZ2V0LCEwfQovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi8KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovCmZ1bmN0aW9uIF90KHQsZSl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCk7aWYoKCFuLmlzTm9kZXx8bi5pc01peCkmJiEoZnVuY3Rpb24gbyh0LGUpe3ZhciBuPXQuZ2V0R2xvYmFsT2JqZWN0cygpO2lmKChuLmlzQnJvd3Nlcnx8bi5pc01peCkmJiF0Lk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcihIVE1MRWxlbWVudC5wcm90b3R5cGUsIm9uY2xpY2siKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBFbGVtZW50KXt2YXIgbz10Lk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcihFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIpO2lmKG8mJiFvLmNvbmZpZ3VyYWJsZSlyZXR1cm4hMTtpZihvKXt0Lk9iamVjdERlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSk7dmFyIGk9ISFkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5vbmNsaWNrO3JldHVybiB0Lk9iamVjdERlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIixvKSxpfX12YXIgYT1lLlhNTEh0dHBSZXF1ZXN0O2lmKCFhKXJldHVybiExO3ZhciByPSJvbnJlYWR5c3RhdGVjaGFuZ2UiLHM9YS5wcm90b3R5cGUsbD10Lk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLHIpO2lmKGwpcmV0dXJuIHQuT2JqZWN0RGVmaW5lUHJvcGVydHkocyxyLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KSxpPSEhKGQ9bmV3IGEpLm9ucmVhZHlzdGF0ZWNoYW5nZSx0Lk9iamVjdERlZmluZVByb3BlcnR5KHMscixsfHx7fSksaTt2YXIgYz10LnN5bWJvbCgiZmFrZSIpO3QuT2JqZWN0RGVmaW5lUHJvcGVydHkocyxyLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tjXX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXNbY109dH19KTt2YXIgZCxwPWZ1bmN0aW9uKCl7fTtyZXR1cm4oZD1uZXcgYSkub25yZWFkeXN0YXRlY2hhbmdlPXAsaT1kW2NdPT09cCxkLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGl9KSh0LGUpKXt2YXIgaT0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYlNvY2tldDsoZnVuY3Rpb24gYSh0KXtmb3IodmFyIGU9dC5nZXRHbG9iYWxPYmplY3RzKCkuZXZlbnROYW1lcyxuPXQuc3ltYm9sKCJ1bmJvdW5kIiksbz1mdW5jdGlvbihvKXt2YXIgaT1lW29dLGE9Im9uIitpO3NlbGYuYWRkRXZlbnRMaXN0ZW5lcihpLChmdW5jdGlvbihlKXt2YXIgbyxpLHI9ZS50YXJnZXQ7Zm9yKGk9cj9yLmNvbnN0cnVjdG9yLm5hbWUrIi4iK2E6InVua25vd24uIithO3I7KXJbYV0mJiFyW2FdW25dJiYoKG89dC53cmFwV2l0aEN1cnJlbnRab25lKHJbYV0saSkpW25dPXJbYV0sclthXT1vKSxyPXIucGFyZW50RWxlbWVudH0pLCEwKX0saT0wO2k8ZS5sZW5ndGg7aSsrKW8oaSl9Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqLykodCksdC5wYXRjaENsYXNzKCJYTUxIdHRwUmVxdWVzdCIpLGkmJihmdW5jdGlvbiByKHQsZSl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCksbz1uLkFERF9FVkVOVF9MSVNURU5FUl9TVFIsaT1uLlJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFIsYT1lLldlYlNvY2tldDtlLkV2ZW50VGFyZ2V0fHx0LnBhdGNoRXZlbnRUYXJnZXQoZSxbYS5wcm90b3R5cGVdKSxlLldlYlNvY2tldD1mdW5jdGlvbihlLG4pe3ZhciByLHMsbD1hcmd1bWVudHMubGVuZ3RoPjE/bmV3IGEoZSxuKTpuZXcgYShlKSxjPXQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIm9ubWVzc2FnZSIpO3JldHVybiBjJiYhMT09PWMuY29uZmlndXJhYmxlPyhyPXQuT2JqZWN0Q3JlYXRlKGwpLHM9bCxbbyxpLCJzZW5kIiwiY2xvc2UiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtyW2VdPWZ1bmN0aW9uKCl7dmFyIG49dC5BcnJheVNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZihlPT09b3x8ZT09PWkpe3ZhciBhPW4ubGVuZ3RoPjA/blswXTp2b2lkIDA7aWYoYSl7dmFyIHM9Wm9uZS5fX3N5bWJvbF9fKCJPTl9QUk9QRVJUWSIrYSk7bFtzXT1yW3NdfX1yZXR1cm4gbFtlXS5hcHBseShsLG4pfX0pKSk6cj1sLHQucGF0Y2hPblByb3BlcnRpZXMocixbImNsb3NlIiwiZXJyb3IiLCJtZXNzYWdlIiwib3BlbiJdLHMpLHJ9O3ZhciByPWUuV2ViU29ja2V0O2Zvcih2YXIgcyBpbiBhKXJbc109YVtzXX0pKHQsZSksWm9uZVt0LnN5bWJvbCgicGF0Y2hFdmVudHMiKV09ITB9fVpvbmUuX19sb2FkX3BhdGNoKCJ1dGlsIiwoZnVuY3Rpb24obixzLGwpe2wucGF0Y2hPblByb3BlcnRpZXM9UyxsLnBhdGNoTWV0aG9kPVIsbC5iaW5kQXJndW1lbnRzPV8sbC5wYXRjaE1hY3JvVGFzaz1BO3ZhciB1PXMuX19zeW1ib2xfXygiQkxBQ0tfTElTVEVEX0VWRU5UUyIpLGY9cy5fX3N5bWJvbF9fKCJVTlBBVENIRURfRVZFTlRTIik7bltmXSYmKG5bdV09bltmXSksblt1XSYmKHNbdV09c1tmXT1uW3VdKSxsLnBhdGNoRXZlbnRQcm90b3R5cGU9cSxsLnBhdGNoRXZlbnRUYXJnZXQ9VyxsLmlzSUVPckVkZ2U9SSxsLk9iamVjdERlZmluZVByb3BlcnR5PWUsbC5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I9dCxsLk9iamVjdENyZWF0ZT1vLGwuQXJyYXlTbGljZT1pLGwucGF0Y2hDbGFzcz1FLGwud3JhcFdpdGhDdXJyZW50Wm9uZT1tLGwuZmlsdGVyUHJvcGVydGllcz1kdCxsLmF0dGFjaE9yaWdpblRvUGF0Y2hlZD1ULGwuX3JlZGVmaW5lUHJvcGVydHk9T2JqZWN0LmRlZmluZVByb3BlcnR5LGwucGF0Y2hDYWxsYmFja3M9WixsLmdldEdsb2JhbE9iamVjdHM9ZnVuY3Rpb24oKXtyZXR1cm57Z2xvYmFsU291cmNlczpWLHpvbmVTeW1ib2xFdmVudE5hbWVzOkIsZXZlbnROYW1lczpjdCxpc0Jyb3dzZXI6eCxpc01peDpPLGlzTm9kZTp2LFRSVUVfU1RSOmMsRkFMU0VfU1RSOmQsWk9ORV9TWU1CT0xfUFJFRklYOnAsQUREX0VWRU5UX0xJU1RFTkVSX1NUUjphLFJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFI6cn19fSkpLAovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi8KKGZ1bmN0aW9uKHQpe3ZhciBlPXQuX19ab25lX3N5bWJvbF9wcmVmaXh8fCJfX3pvbmVfc3ltYm9sX18iO3RbKGZ1bmN0aW9uIG4odCl7cmV0dXJuIGUrdH0pKCJsZWdhY3lQYXRjaCIpXT1mdW5jdGlvbigpe3ZhciBlPXQuWm9uZTtlLl9fbG9hZF9wYXRjaCgiZGVmaW5lUHJvcGVydHkiLChmdW5jdGlvbih0LGUsbil7bi5fcmVkZWZpbmVQcm9wZXJ0eT1mdCx1dCgpfSkpLGUuX19sb2FkX3BhdGNoKCJyZWdpc3RlckVsZW1lbnQiLChmdW5jdGlvbih0LGUsbil7IShmdW5jdGlvbiBvKHQsZSl7dmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCk7KG4uaXNCcm93c2VyfHxuLmlzTWl4KSYmInJlZ2lzdGVyRWxlbWVudCJpbiB0LmRvY3VtZW50JiZlLnBhdGNoQ2FsbGJhY2tzKGUsZG9jdW1lbnQsIkRvY3VtZW50IiwicmVnaXN0ZXJFbGVtZW50IixbImNyZWF0ZWRDYWxsYmFjayIsImF0dGFjaGVkQ2FsbGJhY2siLCJkZXRhY2hlZENhbGxiYWNrIiwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIl0pfSkodCxuKX0pKSxlLl9fbG9hZF9wYXRjaCgiRXZlbnRUYXJnZXRMZWdhY3kiLChmdW5jdGlvbih0LGUsbil7eXQodCxuKSxfdChuLHQpfSkpfX0pKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp2b2lkIDAhPT1Rdj9RdjoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp7fSk7Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqLwp2YXIgQ3Q9Zigiem9uZVRhc2siKTtmdW5jdGlvbiBNdCh0LGUsbixvKXt2YXIgaT1udWxsLGE9bnVsbDtuKz1vO3ZhciByPXt9O2Z1bmN0aW9uIHMoZSl7dmFyIG49ZS5kYXRhO3JldHVybiBuLmFyZ3NbMF09ZnVuY3Rpb24oKXtyZXR1cm4gZS5pbnZva2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxuLmhhbmRsZUlkPWkuYXBwbHkodCxuLmFyZ3MpLGV9ZnVuY3Rpb24gbChlKXtyZXR1cm4gYS5jYWxsKHQsZS5kYXRhLmhhbmRsZUlkKX1pPVIodCxlKz1vLChmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYVswXSl7dmFyIGM9e2lzUGVyaW9kaWM6IkludGVydmFsIj09PW8sZGVsYXk6IlRpbWVvdXQiPT09b3x8IkludGVydmFsIj09PW8/YVsxXXx8MDp2b2lkIDAsYXJnczphfSxkPWFbMF07YVswXT1mdW5jdGlvbiB0KCl7dHJ5e3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e2MuaXNQZXJpb2RpY3x8KCJudW1iZXIiPT10eXBlb2YgYy5oYW5kbGVJZD9kZWxldGUgcltjLmhhbmRsZUlkXTpjLmhhbmRsZUlkJiYoYy5oYW5kbGVJZFtDdF09bnVsbCkpfX07dmFyIHA9dShlLGFbMF0sYyxzLGwpO2lmKCFwKXJldHVybiBwO3ZhciBtPXAuZGF0YS5oYW5kbGVJZDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIG0/clttXT1wOm0mJihtW0N0XT1wKSxtJiZtLnJlZiYmbS51bnJlZiYmImZ1bmN0aW9uIj09dHlwZW9mIG0ucmVmJiYiZnVuY3Rpb24iPT10eXBlb2YgbS51bnJlZiYmKHAucmVmPW0ucmVmLmJpbmQobSkscC51bnJlZj1tLnVucmVmLmJpbmQobSkpLCJudW1iZXIiPT10eXBlb2YgbXx8bT9tOnB9cmV0dXJuIG4uYXBwbHkodCxhKX19KSksYT1SKHQsbiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKG4sbyl7dmFyIGksYT1vWzBdOyJudW1iZXIiPT10eXBlb2YgYT9pPXJbYV06KGk9YSYmYVtDdF0pfHwoaT1hKSxpJiYic3RyaW5nIj09dHlwZW9mIGkudHlwZT8ibm90U2NoZWR1bGVkIiE9PWkuc3RhdGUmJihpLmNhbmNlbEZuJiZpLmRhdGEuaXNQZXJpb2RpY3x8MD09PWkucnVuQ291bnQpJiYoIm51bWJlciI9PXR5cGVvZiBhP2RlbGV0ZSByW2FdOmEmJihhW0N0XT1udWxsKSxpLnpvbmUuY2FuY2VsVGFzayhpKSk6ZS5hcHBseSh0LG8pfX0pKX0KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovCi8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqLwpmdW5jdGlvbiB2dCh0LGUpe2lmKCFab25lW2Uuc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildKXtmb3IodmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCksbz1uLmV2ZW50TmFtZXMsaT1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLGE9bi5UUlVFX1NUUixyPW4uRkFMU0VfU1RSLHM9bi5aT05FX1NZTUJPTF9QUkVGSVgsbD0wO2w8by5sZW5ndGg7bCsrKXt2YXIgYz1vW2xdLGQ9cysoYytyKSxwPXMrKGMrYSk7aVtjXT17fSxpW2NdW3JdPWQsaVtjXVthXT1wfXZhciBtPXQuRXZlbnRUYXJnZXQ7aWYobSYmbS5wcm90b3R5cGUpcmV0dXJuIGUucGF0Y2hFdmVudFRhcmdldCh0LFttJiZtLnByb3RvdHlwZV0pLCEwfX0KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovClpvbmUuX19sb2FkX3BhdGNoKCJsZWdhY3kiLChmdW5jdGlvbih0KXt2YXIgZT10W1pvbmUuX19zeW1ib2xfXygibGVnYWN5UGF0Y2giKV07ZSYmZSgpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJxdWV1ZU1pY3JvdGFzayIsKGZ1bmN0aW9uKHQsZSxuKXtuLnBhdGNoTWV0aG9kKHQsInF1ZXVlTWljcm90YXNrIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7ZS5jdXJyZW50LnNjaGVkdWxlTWljcm9UYXNrKCJxdWV1ZU1pY3JvdGFzayIsblswXSl9fSkpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJ0aW1lcnMiLChmdW5jdGlvbih0KXt2YXIgZT0ic2V0IixuPSJjbGVhciI7TXQodCxlLG4sIlRpbWVvdXQiKSxNdCh0LGUsbiwiSW50ZXJ2YWwiKSxNdCh0LGUsbiwiSW1tZWRpYXRlIil9KSksWm9uZS5fX2xvYWRfcGF0Y2goInJlcXVlc3RBbmltYXRpb25GcmFtZSIsKGZ1bmN0aW9uKHQpe010KHQsInJlcXVlc3QiLCJjYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLE10KHQsIm1velJlcXVlc3QiLCJtb3pDYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLE10KHQsIndlYmtpdFJlcXVlc3QiLCJ3ZWJraXRDYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJibG9ja2luZyIsKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPVsiYWxlcnQiLCJwcm9tcHQiLCJjb25maXJtIl0sbz0wO288bi5sZW5ndGg7bysrKVIodCxuW29dLChmdW5jdGlvbihuLG8saSl7cmV0dXJuIGZ1bmN0aW9uKG8sYSl7cmV0dXJuIGUuY3VycmVudC5ydW4obix0LGEsaSl9fSkpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJFdmVudFRhcmdldCIsKGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24gbyh0LGUpe2UucGF0Y2hFdmVudFByb3RvdHlwZSh0LGUpfSkodCxuKSx2dCh0LG4pO3ZhciBpPXQuWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtpJiZpLnByb3RvdHlwZSYmbi5wYXRjaEV2ZW50VGFyZ2V0KHQsW2kucHJvdG90eXBlXSl9KSksWm9uZS5fX2xvYWRfcGF0Y2goIk11dGF0aW9uT2JzZXJ2ZXIiLChmdW5jdGlvbih0LGUsbil7RSgiTXV0YXRpb25PYnNlcnZlciIpLEUoIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLChmdW5jdGlvbih0LGUsbil7RSgiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiRmlsZVJlYWRlciIsKGZ1bmN0aW9uKHQsZSxuKXtFKCJGaWxlUmVhZGVyIil9KSksWm9uZS5fX2xvYWRfcGF0Y2goIm9uX3Byb3BlcnR5IiwoZnVuY3Rpb24odCxlLG4pe210KG4sdCl9KSksWm9uZS5fX2xvYWRfcGF0Y2goImN1c3RvbUVsZW1lbnRzIiwoZnVuY3Rpb24odCxlLG4peyEoZnVuY3Rpb24gbyh0LGUpe3ZhciBuPWUuZ2V0R2xvYmFsT2JqZWN0cygpOyhuLmlzQnJvd3Nlcnx8bi5pc01peCkmJnQuY3VzdG9tRWxlbWVudHMmJiJjdXN0b21FbGVtZW50cyJpbiB0JiZlLnBhdGNoQ2FsbGJhY2tzKGUsdC5jdXN0b21FbGVtZW50cywiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiLFsiY29ubmVjdGVkQ2FsbGJhY2siLCJkaXNjb25uZWN0ZWRDYWxsYmFjayIsImFkb3B0ZWRDYWxsYmFjayIsImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayJdKX0pKHQsbil9KSksWm9uZS5fX2xvYWRfcGF0Y2goIlhIUiIsKGZ1bmN0aW9uKHQsZSl7IShmdW5jdGlvbiBuKHQpe3ZhciBuPXQuWE1MSHR0cFJlcXVlc3Q7aWYobil7dmFyIHA9bi5wcm90b3R5cGUsbT1wW3NdLGc9cFtsXTtpZighbSl7dmFyIGg9dC5YTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0O2lmKGgpe3ZhciBiPWgucHJvdG90eXBlO209YltzXSxnPWJbbF19fXZhciB5PSJyZWFkeXN0YXRlY2hhbmdlIixfPSJzY2hlZHVsZWQiLEM9UihwLCJvcGVuIiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtpXT0wPT1lWzJdLHRbY109ZVsxXSxDLmFwcGx5KHQsZSl9fSkpLE09ZigiZmV0Y2hUYXNrQWJvcnRpbmciKSx2PWYoImZldGNoVGFza1NjaGVkdWxpbmciKSx4PVIocCwic2VuZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7aWYoITA9PT1lLmN1cnJlbnRbdl0pcmV0dXJuIHguYXBwbHkodCxuKTtpZih0W2ldKXJldHVybiB4LmFwcGx5KHQsbik7dmFyIG89e3RhcmdldDp0LHVybDp0W2NdLGlzUGVyaW9kaWM6ITEsYXJnczpuLGFib3J0ZWQ6ITF9LGE9dSgiWE1MSHR0cFJlcXVlc3Quc2VuZCIsdyxvLFAsayk7dCYmITA9PT10W2RdJiYhby5hYm9ydGVkJiZhLnN0YXRlPT09XyYmYS5pbnZva2UoKX19KSksTz1SKHAsImFib3J0IiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxuKXt2YXIgaT0oZnVuY3Rpb24gYSh0KXtyZXR1cm4gdFtvXX0pKHQpO2lmKGkmJiJzdHJpbmciPT10eXBlb2YgaS50eXBlKXtpZihudWxsPT1pLmNhbmNlbEZufHxpLmRhdGEmJmkuZGF0YS5hYm9ydGVkKXJldHVybjtpLnpvbmUuY2FuY2VsVGFzayhpKX1lbHNlIGlmKCEwPT09ZS5jdXJyZW50W01dKXJldHVybiBPLmFwcGx5KHQsbil9fSkpfWZ1bmN0aW9uIFAodCl7dmFyIG49dC5kYXRhLGk9bi50YXJnZXQ7aVtyXT0hMSxpW2RdPSExO3ZhciBjPWlbYV07bXx8KG09aVtzXSxnPWlbbF0pLGMmJmcuY2FsbChpLHksYyk7dmFyIHA9aVthXT1mdW5jdGlvbigpe2lmKGkucmVhZHlTdGF0ZT09PWkuRE9ORSlpZighbi5hYm9ydGVkJiZpW3JdJiZ0LnN0YXRlPT09Xyl7dmFyIG89aVtlLl9fc3ltYm9sX18oImxvYWRmYWxzZSIpXTtpZigwIT09aS5zdGF0dXMmJm8mJm8ubGVuZ3RoPjApe3ZhciBhPXQuaW52b2tlO3QuaW52b2tlPWZ1bmN0aW9uKCl7Zm9yKHZhciBvPWlbZS5fX3N5bWJvbF9fKCJsb2FkZmFsc2UiKV0scj0wO3I8by5sZW5ndGg7cisrKW9bcl09PT10JiZvLnNwbGljZShyLDEpO24uYWJvcnRlZHx8dC5zdGF0ZSE9PV98fGEuY2FsbCh0KX0sby5wdXNoKHQpfWVsc2UgdC5pbnZva2UoKX1lbHNlIG4uYWJvcnRlZHx8ITEhPT1pW3JdfHwoaVtkXT0hMCl9O3JldHVybiBtLmNhbGwoaSx5LHApLGlbb118fChpW29dPXQpLHguYXBwbHkoaSxuLmFyZ3MpLGlbcl09ITAsdH1mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIGsodCl7dmFyIGU9dC5kYXRhO3JldHVybiBlLmFib3J0ZWQ9ITAsTy5hcHBseShlLnRhcmdldCxlLmFyZ3MpfX0pKHQpO3ZhciBvPWYoInhoclRhc2siKSxpPWYoInhoclN5bmMiKSxhPWYoInhockxpc3RlbmVyIikscj1mKCJ4aHJTY2hlZHVsZWQiKSxjPWYoInhoclVSTCIpLGQ9ZigieGhyRXJyb3JCZWZvcmVTY2hlZHVsZWQiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiZ2VvbG9jYXRpb24iLChmdW5jdGlvbihlKXtlLm5hdmlnYXRvciYmZS5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24mJihmdW5jdGlvbiBuKGUsbyl7Zm9yKHZhciBpPWUuY29uc3RydWN0b3IubmFtZSxhPWZ1bmN0aW9uKG4pe3ZhciBhPW9bbl0scj1lW2FdO2lmKHIpe2lmKCFDKHQoZSxhKSkpcmV0dXJuImNvbnRpbnVlIjtlW2FdPShmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KHRoaXMsXyhhcmd1bWVudHMsaSsiLiIrYSkpfTtyZXR1cm4gVChlLHQpLGV9KShyKX19LHI9MDtyPG8ubGVuZ3RoO3IrKylhKHIpfSkoZS5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24sWyJnZXRDdXJyZW50UG9zaXRpb24iLCJ3YXRjaFBvc2l0aW9uIl0pfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJQcm9taXNlUmVqZWN0aW9uRXZlbnQiLChmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe1kodCxlKS5mb3JFYWNoKChmdW5jdGlvbihvKXt2YXIgaT10LlByb21pc2VSZWplY3Rpb25FdmVudDtpZihpKXt2YXIgYT1uZXcgaShlLHtwcm9taXNlOm4ucHJvbWlzZSxyZWFzb246bi5yZWplY3Rpb259KTtvLmludm9rZShhKX19KSl9fXQuUHJvbWlzZVJlamVjdGlvbkV2ZW50JiYoZVtmKCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpXT1uKCJ1bmhhbmRsZWRyZWplY3Rpb24iKSxlW2YoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIildPW4oInJlamVjdGlvbmhhbmRsZWQiKSl9KSl9KSgpOwovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwpjbGFzcyB0eHt9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBleD0iKiI7ZnVuY3Rpb24gbngodCxlKXtyZXR1cm57dHlwZTo3LG5hbWU6dCxkZWZpbml0aW9uczplLG9wdGlvbnM6e319fWZ1bmN0aW9uIG94KHQsZT1udWxsKXtyZXR1cm57dHlwZTo0LHN0eWxlczplLHRpbWluZ3M6dH19ZnVuY3Rpb24gaXgodCxlPW51bGwpe3JldHVybnt0eXBlOjIsc3RlcHM6dCxvcHRpb25zOmV9fWZ1bmN0aW9uIGF4KHQpe3JldHVybnt0eXBlOjYsc3R5bGVzOnQsb2Zmc2V0Om51bGx9fWZ1bmN0aW9uIHJ4KHQsZSxuKXtyZXR1cm57dHlwZTowLG5hbWU6dCxzdHlsZXM6ZSxvcHRpb25zOm59fWZ1bmN0aW9uIHN4KHQpe3JldHVybnt0eXBlOjUsc3RlcHM6dH19ZnVuY3Rpb24gbHgodCxlLG49bnVsbCl7cmV0dXJue3R5cGU6MSxleHByOnQsYW5pbWF0aW9uOmUsb3B0aW9uczpufX1mdW5jdGlvbiBjeCh0PW51bGwpe3JldHVybnt0eXBlOjksb3B0aW9uczp0fX1mdW5jdGlvbiBkeCh0LGUsbj1udWxsKXtyZXR1cm57dHlwZToxMSxzZWxlY3Rvcjp0LGFuaW1hdGlvbjplLG9wdGlvbnM6bn19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHB4KHQpe1Byb21pc2UucmVzb2x2ZShudWxsKS50aGVuKHQpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBteHtjb25zdHJ1Y3Rvcih0PTAsZT0wKXt0aGlzLl9vbkRvbmVGbnM9W10sdGhpcy5fb25TdGFydEZucz1bXSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10sdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fcG9zaXRpb249MCx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMudG90YWxUaW1lPXQrZX1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRvbmVGbnM9W10pfW9uU3RhcnQodCl7dGhpcy5fb25TdGFydEZucy5wdXNoKHQpfW9uRG9uZSh0KXt0aGlzLl9vbkRvbmVGbnMucHVzaCh0KX1vbkRlc3Ryb3kodCl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2godCl9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfWluaXQoKXt9cGxheSgpe3RoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fb25TdGFydCgpLHRoaXMudHJpZ2dlck1pY3JvdGFzaygpKSx0aGlzLl9zdGFydGVkPSEwfXRyaWdnZXJNaWNyb3Rhc2soKXtweCgoKCk9PnRoaXMuX29uRmluaXNoKCkpKX1fb25TdGFydCgpe3RoaXMuX29uU3RhcnRGbnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5fb25TdGFydEZucz1bXX1wYXVzZSgpe31yZXN0YXJ0KCl7fWZpbmlzaCgpe3RoaXMuX29uRmluaXNoKCl9ZGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLmhhc1N0YXJ0ZWQoKXx8dGhpcy5fb25TdGFydCgpLHRoaXMuZmluaXNoKCksdGhpcy5fb25EZXN0cm95Rm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9cmVzZXQoKXt0aGlzLl9zdGFydGVkPSExfXNldFBvc2l0aW9uKHQpe3RoaXMuX3Bvc2l0aW9uPXRoaXMudG90YWxUaW1lP3QqdGhpcy50b3RhbFRpbWU6MX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLnRvdGFsVGltZT90aGlzLl9wb3NpdGlvbi90aGlzLnRvdGFsVGltZToxfXRyaWdnZXJDYWxsYmFjayh0KXtjb25zdCBlPSJzdGFydCI9PXQ/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7ZS5mb3JFYWNoKCh0PT50KCkpKSxlLmxlbmd0aD0wfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgdXh7Y29uc3RydWN0b3IodCl7dGhpcy5fb25Eb25lRm5zPVtdLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fb25EZXN0cm95Rm5zPVtdLHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy50b3RhbFRpbWU9MCx0aGlzLnBsYXllcnM9dDtsZXQgZT0wLG49MCxvPTA7Y29uc3QgaT10aGlzLnBsYXllcnMubGVuZ3RoOzA9PWk/cHgoKCgpPT50aGlzLl9vbkZpbmlzaCgpKSk6dGhpcy5wbGF5ZXJzLmZvckVhY2goKHQ9Pnt0Lm9uRG9uZSgoKCk9PnsrK2U9PWkmJnRoaXMuX29uRmluaXNoKCl9KSksdC5vbkRlc3Ryb3koKCgpPT57KytuPT1pJiZ0aGlzLl9vbkRlc3Ryb3koKX0pKSx0Lm9uU3RhcnQoKCgpPT57KytvPT1pJiZ0aGlzLl9vblN0YXJ0KCl9KSl9KSksdGhpcy50b3RhbFRpbWU9dGhpcy5wbGF5ZXJzLnJlZHVjZSgoKHQsZSk9Pk1hdGgubWF4KHQsZS50b3RhbFRpbWUpKSwwKX1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRvbmVGbnM9W10pfWluaXQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaCgodD0+dC5pbml0KCkpKX1vblN0YXJ0KHQpe3RoaXMuX29uU3RhcnRGbnMucHVzaCh0KX1fb25TdGFydCgpe3RoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uU3RhcnRGbnM9W10pfW9uRG9uZSh0KXt0aGlzLl9vbkRvbmVGbnMucHVzaCh0KX1vbkRlc3Ryb3kodCl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2godCl9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfXBsYXkoKXt0aGlzLnBhcmVudFBsYXllcnx8dGhpcy5pbml0KCksdGhpcy5fb25TdGFydCgpLHRoaXMucGxheWVycy5mb3JFYWNoKCh0PT50LnBsYXkoKSkpfXBhdXNlKCl7dGhpcy5wbGF5ZXJzLmZvckVhY2goKHQ9PnQucGF1c2UoKSkpfXJlc3RhcnQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaCgodD0+dC5yZXN0YXJ0KCkpKX1maW5pc2goKXt0aGlzLl9vbkZpbmlzaCgpLHRoaXMucGxheWVycy5mb3JFYWNoKCh0PT50LmZpbmlzaCgpKSl9ZGVzdHJveSgpe3RoaXMuX29uRGVzdHJveSgpfV9vbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5fb25GaW5pc2goKSx0aGlzLnBsYXllcnMuZm9yRWFjaCgodD0+dC5kZXN0cm95KCkpKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5fb25EZXN0cm95Rm5zPVtdKX1yZXNldCgpe3RoaXMucGxheWVycy5mb3JFYWNoKCh0PT50LnJlc2V0KCkpKSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMX1zZXRQb3NpdGlvbih0KXtjb25zdCBlPXQqdGhpcy50b3RhbFRpbWU7dGhpcy5wbGF5ZXJzLmZvckVhY2goKHQ9Pntjb25zdCBuPXQudG90YWxUaW1lP01hdGgubWluKDEsZS90LnRvdGFsVGltZSk6MTt0LnNldFBvc2l0aW9uKG4pfSkpfWdldFBvc2l0aW9uKCl7Y29uc3QgdD10aGlzLnBsYXllcnMucmVkdWNlKCgodCxlKT0+bnVsbD09PXR8fGUudG90YWxUaW1lPnQudG90YWxUaW1lP2U6dCksbnVsbCk7cmV0dXJuIG51bGwhPXQ/dC5nZXRQb3NpdGlvbigpOjB9YmVmb3JlRGVzdHJveSgpe3RoaXMucGxheWVycy5mb3JFYWNoKCh0PT57dC5iZWZvcmVEZXN0cm95JiZ0LmJlZm9yZURlc3Ryb3koKX0pKX10cmlnZ2VyQ2FsbGJhY2sodCl7Y29uc3QgZT0ic3RhcnQiPT10P3RoaXMuX29uU3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2UuZm9yRWFjaCgodD0+dCgpKSksZS5sZW5ndGg9MH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwpmdW5jdGlvbiBmeCgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnR9ZnVuY3Rpb24gZ3goKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwocHJvY2Vzcyl9ZnVuY3Rpb24gaHgodCl7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBteDtjYXNlIDE6cmV0dXJuIHRbMF07ZGVmYXVsdDpyZXR1cm4gbmV3IHV4KHQpfX1mdW5jdGlvbiBieCh0LGUsbixvLGk9e30sYT17fSl7Y29uc3Qgcj1bXSxzPVtdO2xldCBsPS0xLGM9bnVsbDtpZihvLmZvckVhY2goKHQ9Pntjb25zdCBuPXQub2Zmc2V0LG89bj09bCxkPW8mJmN8fHt9O09iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PntsZXQgbz1uLHM9dFtuXTtpZigib2Zmc2V0IiE9PW4pc3dpdGNoKG89ZS5ub3JtYWxpemVQcm9wZXJ0eU5hbWUobyxyKSxzKXtjYXNlIiEiOnM9aVtuXTticmVhaztjYXNlIGV4OnM9YVtuXTticmVhaztkZWZhdWx0OnM9ZS5ub3JtYWxpemVTdHlsZVZhbHVlKG4sbyxzLHIpfWRbb109c30pKSxvfHxzLnB1c2goZCksYz1kLGw9bn0pKSxyLmxlbmd0aCl7Y29uc3QgdD0iXG4gLSAiO3Rocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGFuaW1hdGUgZHVlIHRvIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiR7dH0ke3Iuam9pbih0KX1gKX1yZXR1cm4gc31mdW5jdGlvbiB5eCh0LGUsbixvKXtzd2l0Y2goZSl7Y2FzZSJzdGFydCI6dC5vblN0YXJ0KCgoKT0+byhuJiZfeChuLCJzdGFydCIsdCkpKSk7YnJlYWs7Y2FzZSJkb25lIjp0Lm9uRG9uZSgoKCk9Pm8obiYmX3gobiwiZG9uZSIsdCkpKSk7YnJlYWs7Y2FzZSJkZXN0cm95Ijp0Lm9uRGVzdHJveSgoKCk9Pm8obiYmX3gobiwiZGVzdHJveSIsdCkpKSl9fWZ1bmN0aW9uIF94KHQsZSxuKXtjb25zdCBvPW4udG90YWxUaW1lLGk9Q3godC5lbGVtZW50LHQudHJpZ2dlck5hbWUsdC5mcm9tU3RhdGUsdC50b1N0YXRlLGV8fHQucGhhc2VOYW1lLG51bGw9PW8/dC50b3RhbFRpbWU6bywhIW4uZGlzYWJsZWQpLGE9dC5fZGF0YTtyZXR1cm4gbnVsbCE9YSYmKGkuX2RhdGE9YSksaX1mdW5jdGlvbiBDeCh0LGUsbixvLGk9IiIsYT0wLHIpe3JldHVybntlbGVtZW50OnQsdHJpZ2dlck5hbWU6ZSxmcm9tU3RhdGU6bix0b1N0YXRlOm8scGhhc2VOYW1lOmksdG90YWxUaW1lOmEsZGlzYWJsZWQ6ISFyfX1mdW5jdGlvbiBNeCh0LGUsbil7bGV0IG87cmV0dXJuIHQgaW5zdGFuY2VvZiBNYXA/KG89dC5nZXQoZSksb3x8dC5zZXQoZSxvPW4pKToobz10W2VdLG98fChvPXRbZV09bikpLG99ZnVuY3Rpb24gdngodCl7Y29uc3QgZT10LmluZGV4T2YoIjoiKTtyZXR1cm5bdC5zdWJzdHJpbmcoMSxlKSx0LnN1YnN0cihlKzEpXX1sZXQgeHg9KHQsZSk9PiExLE94PSh0LGUpPT4hMSxQeD0odCxlLG4pPT5bXTtjb25zdCB3eD1neCgpOyh3eHx8InVuZGVmaW5lZCIhPXR5cGVvZiBFbGVtZW50KSYmKHh4PWZ4KCk/KHQsZSk9Pntmb3IoO2UmJmUhPT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7KXtpZihlPT09dClyZXR1cm4hMDtlPWUucGFyZW50Tm9kZXx8ZS5ob3N0fXJldHVybiExfToodCxlKT0+dC5jb250YWlucyhlKSxPeD0oKCk9PntpZih3eHx8RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcylyZXR1cm4odCxlKT0+dC5tYXRjaGVzKGUpO3tjb25zdCB0PUVsZW1lbnQucHJvdG90eXBlLGU9dC5tYXRjaGVzU2VsZWN0b3J8fHQubW96TWF0Y2hlc1NlbGVjdG9yfHx0Lm1zTWF0Y2hlc1NlbGVjdG9yfHx0Lm9NYXRjaGVzU2VsZWN0b3J8fHQud2Via2l0TWF0Y2hlc1NlbGVjdG9yO3JldHVybiBlPyh0LG4pPT5lLmFwcGx5KHQsW25dKTpPeH19KSgpLFB4PSh0LGUsbik9PntsZXQgbz1bXTtpZihuKXtjb25zdCBuPXQucXVlcnlTZWxlY3RvckFsbChlKTtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKylvLnB1c2goblt0XSl9ZWxzZXtjb25zdCBuPXQucXVlcnlTZWxlY3RvcihlKTtuJiZvLnB1c2gobil9cmV0dXJuIG99KTtsZXQga3g9bnVsbCxTeD0hMTtmdW5jdGlvbiBEeCh0KXtreHx8KGt4PShmdW5jdGlvbiBlKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5ib2R5Om51bGx9KSgpfHx7fSxTeD0hIWt4LnN0eWxlJiYiV2Via2l0QXBwZWFyYW5jZSJpbiBreC5zdHlsZSk7bGV0IG49ITA7cmV0dXJuIGt4LnN0eWxlJiYhKGZ1bmN0aW9uIG8odCl7cmV0dXJuImVia2l0Ij09dC5zdWJzdHJpbmcoMSw2KX0pKHQpJiYobj10IGluIGt4LnN0eWxlLCFuJiZTeCkmJihuPSJXZWJraXQiK3QuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zdWJzdHIoMSlpbiBreC5zdHlsZSksbn1jb25zdCBFeD1PeCxSeD14eCxBeD1QeDtmdW5jdGlvbiBUeCh0KXtjb25zdCBlPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChuPT57Y29uc3Qgbz1uLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIik7ZVtvXT10W25dfSkpLGV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIE54e3ZhbGlkYXRlU3R5bGVQcm9wZXJ0eSh0KXtyZXR1cm4gRHgodCl9bWF0Y2hlc0VsZW1lbnQodCxlKXtyZXR1cm4gRXgodCxlKX1jb250YWluc0VsZW1lbnQodCxlKXtyZXR1cm4gUngodCxlKX1xdWVyeSh0LGUsbil7cmV0dXJuIEF4KHQsZSxuKX1jb21wdXRlU3R5bGUodCxlLG4pe3JldHVybiBufHwiIn1hbmltYXRlKHQsZSxuLG8saSxhPVtdLHIpe3JldHVybiBuZXcgbXgobixvKX19TnguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE54KX0sTnguybVwcm92PU1uKHt0b2tlbjpOeCxmYWN0b3J5Ok54Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOeCxbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIHp4e316eC5OT09QPW5ldyBOeDsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEl4PSJuZy1lbnRlciIsSHg9Im5nLWxlYXZlIixGeD0ibmctdHJpZ2dlciIsTHg9Ii5uZy10cmlnZ2VyIixCeD0ibmctYW5pbWF0aW5nIixWeD0iLm5nLWFuaW1hdGluZyI7ZnVuY3Rpb24gangodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2NvbnN0IGU9dC5tYXRjaCgvXigtP1tcLlxkXSspKG0/cykvKTtyZXR1cm4hZXx8ZS5sZW5ndGg8Mj8wOlV4KHBhcnNlRmxvYXQoZVsxXSksZVsyXSl9ZnVuY3Rpb24gVXgodCxlKXtzd2l0Y2goZSl7Y2FzZSJzIjpyZXR1cm4gMWUzKnQ7ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gR3godCxlLG4pe3JldHVybiB0Lmhhc093blByb3BlcnR5KCJkdXJhdGlvbiIpP3Q6KGZ1bmN0aW9uIG8odCxlLG4pe2xldCBvLGk9MCxhPSIiO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7Y29uc3Qgbj10Lm1hdGNoKC9eKC0/W1wuXGRdKykobT9zKSg/OlxzKygtP1tcLlxkXSspKG0/cykpPyg/OlxzKyhbLWEtel0rKD86XCguKz9cKSk/KSk/JC9pKTtpZihudWxsPT09bilyZXR1cm4gZS5wdXNoKGBUaGUgcHJvdmlkZWQgdGltaW5nIHZhbHVlICIke3R9IiBpcyBpbnZhbGlkLmApLHtkdXJhdGlvbjowLGRlbGF5OjAsZWFzaW5nOiIifTtvPVV4KHBhcnNlRmxvYXQoblsxXSksblsyXSk7Y29uc3Qgcj1uWzNdO251bGwhPXImJihpPVV4KHBhcnNlRmxvYXQociksbls0XSkpO2NvbnN0IHM9bls1XTtzJiYoYT1zKX1lbHNlIG89dDtpZighbil7bGV0IG49ITEsYT1lLmxlbmd0aDtvPDAmJihlLnB1c2goIkR1cmF0aW9uIHZhbHVlcyBiZWxvdyAwIGFyZSBub3QgYWxsb3dlZCBmb3IgdGhpcyBhbmltYXRpb24gc3RlcC4iKSxuPSEwKSxpPDAmJihlLnB1c2goIkRlbGF5IHZhbHVlcyBiZWxvdyAwIGFyZSBub3QgYWxsb3dlZCBmb3IgdGhpcyBhbmltYXRpb24gc3RlcC4iKSxuPSEwKSxuJiZlLnNwbGljZShhLDAsYFRoZSBwcm92aWRlZCB0aW1pbmcgdmFsdWUgIiR7dH0iIGlzIGludmFsaWQuYCl9cmV0dXJue2R1cmF0aW9uOm8sZGVsYXk6aSxlYXNpbmc6YX19KSh0LGUsbil9ZnVuY3Rpb24gV3godCxlPXt9KXtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+e2Vbbl09dFtuXX0pKSxlfWZ1bmN0aW9uIFl4KHQsZSxuPXt9KXtpZihlKWZvcihsZXQgZSBpbiB0KW5bZV09dFtlXTtlbHNlIFd4KHQsbik7cmV0dXJuIG59ZnVuY3Rpb24gcXgodCxlLG4pe3JldHVybiBuP2UrIjoiK24rIjsiOiIifWZ1bmN0aW9uIFp4KHQpe2xldCBlPSIiO2ZvcihsZXQgbj0wO248dC5zdHlsZS5sZW5ndGg7bisrKXtjb25zdCBvPXQuc3R5bGUuaXRlbShuKTtlKz1xeCgwLG8sdC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG8pKX1mb3IoY29uc3QgbiBpbiB0LnN0eWxlKXQuc3R5bGUuaGFzT3duUHJvcGVydHkobikmJiFuLnN0YXJ0c1dpdGgoIl8iKSYmKGUrPXF4KDAsbi5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksdC5zdHlsZVtuXSkpO3Quc2V0QXR0cmlidXRlKCJzdHlsZSIsZSl9ZnVuY3Rpb24gWHgodCxlLG4pe3Quc3R5bGUmJihPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChvPT57Y29uc3QgaT1vTyhvKTtuJiYhbi5oYXNPd25Qcm9wZXJ0eShvKSYmKG5bb109dC5zdHlsZVtpXSksdC5zdHlsZVtpXT1lW29dfSkpLGd4KCkmJlp4KHQpKX1mdW5jdGlvbiBLeCh0LGUpe3Quc3R5bGUmJihPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChlPT57Y29uc3Qgbj1vTyhlKTt0LnN0eWxlW25dPSIifSkpLGd4KCkmJlp4KHQpKX1mdW5jdGlvbiBKeCh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT8xPT10Lmxlbmd0aD90WzBdOml4KHQpOnR9Y29uc3QgUXg9bmV3IFJlZ0V4cCgie3tcXHMqKC4rPylcXHMqfX0iLCJnIik7ZnVuY3Rpb24gJHgodCl7bGV0IGU9W107aWYoInN0cmluZyI9PXR5cGVvZiB0KXtsZXQgbjtmb3IoO249UXguZXhlYyh0KTspZS5wdXNoKG5bMV0pO1F4Lmxhc3RJbmRleD0wfXJldHVybiBlfWZ1bmN0aW9uIHRPKHQsZSxuKXtjb25zdCBvPXQudG9TdHJpbmcoKSxpPW8ucmVwbGFjZShReCwoKHQsbyk9PntsZXQgaT1lW29dO3JldHVybiBlLmhhc093blByb3BlcnR5KG8pfHwobi5wdXNoKGBQbGVhc2UgcHJvdmlkZSBhIHZhbHVlIGZvciB0aGUgYW5pbWF0aW9uIHBhcmFtICR7b31gKSxpPSIiKSxpLnRvU3RyaW5nKCl9KSk7cmV0dXJuIGk9PW8/dDppfWZ1bmN0aW9uIGVPKHQpe2NvbnN0IGU9W107bGV0IG49dC5uZXh0KCk7Zm9yKDshbi5kb25lOyllLnB1c2gobi52YWx1ZSksbj10Lm5leHQoKTtyZXR1cm4gZX1jb25zdCBuTz0vLSsoW2EtejAtOV0pL2c7ZnVuY3Rpb24gb08odCl7cmV0dXJuIHQucmVwbGFjZShuTywoKC4uLnQpPT50WzFdLnRvVXBwZXJDYXNlKCkpKX1mdW5jdGlvbiBpTyh0LGUpe3JldHVybiAwPT09dHx8MD09PWV9ZnVuY3Rpb24gYU8odCxlLG4pe2NvbnN0IG89T2JqZWN0LmtleXMobik7aWYoby5sZW5ndGgmJmUubGVuZ3RoKXtsZXQgYT1lWzBdLHI9W107aWYoby5mb3JFYWNoKCh0PT57YS5oYXNPd25Qcm9wZXJ0eSh0KXx8ci5wdXNoKHQpLGFbdF09blt0XX0pKSxyLmxlbmd0aClmb3IodmFyIGk9MTtpPGUubGVuZ3RoO2krKyl7bGV0IG49ZVtpXTtyLmZvckVhY2goKGZ1bmN0aW9uKGUpe25bZV09c08odCxlKX0pKX19cmV0dXJuIGV9ZnVuY3Rpb24gck8odCxlLG4pe3N3aXRjaChlLnR5cGUpe2Nhc2UgNzpyZXR1cm4gdC52aXNpdFRyaWdnZXIoZSxuKTtjYXNlIDA6cmV0dXJuIHQudmlzaXRTdGF0ZShlLG4pO2Nhc2UgMTpyZXR1cm4gdC52aXNpdFRyYW5zaXRpb24oZSxuKTtjYXNlIDI6cmV0dXJuIHQudmlzaXRTZXF1ZW5jZShlLG4pO2Nhc2UgMzpyZXR1cm4gdC52aXNpdEdyb3VwKGUsbik7Y2FzZSA0OnJldHVybiB0LnZpc2l0QW5pbWF0ZShlLG4pO2Nhc2UgNTpyZXR1cm4gdC52aXNpdEtleWZyYW1lcyhlLG4pO2Nhc2UgNjpyZXR1cm4gdC52aXNpdFN0eWxlKGUsbik7Y2FzZSA4OnJldHVybiB0LnZpc2l0UmVmZXJlbmNlKGUsbik7Y2FzZSA5OnJldHVybiB0LnZpc2l0QW5pbWF0ZUNoaWxkKGUsbik7Y2FzZSAxMDpyZXR1cm4gdC52aXNpdEFuaW1hdGVSZWYoZSxuKTtjYXNlIDExOnJldHVybiB0LnZpc2l0UXVlcnkoZSxuKTtjYXNlIDEyOnJldHVybiB0LnZpc2l0U3RhZ2dlcihlLG4pO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcmVzb2x2ZSBhbmltYXRpb24gbWV0YWRhdGEgbm9kZSAjJHtlLnR5cGV9YCl9fWZ1bmN0aW9uIHNPKHQsZSl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpW2VdfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBsTz0iKiI7ZnVuY3Rpb24gY08odCxlKXtjb25zdCBuPVtdO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90LnNwbGl0KC9ccyosXHMqLykuZm9yRWFjaCgodD0+KGZ1bmN0aW9uIG8odCxlLG4pe2lmKCI6Ij09dFswXSl7Y29uc3Qgbz0oZnVuY3Rpb24gbyh0LGUpe3N3aXRjaCh0KXtjYXNlIjplbnRlciI6cmV0dXJuInZvaWQgPT4gKiI7Y2FzZSI6bGVhdmUiOnJldHVybiIqID0+IHZvaWQiO2Nhc2UiOmluY3JlbWVudCI6cmV0dXJuKHQsZSk9PnBhcnNlRmxvYXQoZSk+cGFyc2VGbG9hdCh0KTtjYXNlIjpkZWNyZW1lbnQiOnJldHVybih0LGUpPT5wYXJzZUZsb2F0KGUpPHBhcnNlRmxvYXQodCk7ZGVmYXVsdDpyZXR1cm4gZS5wdXNoKGBUaGUgdHJhbnNpdGlvbiBhbGlhcyB2YWx1ZSAiJHt0fSIgaXMgbm90IHN1cHBvcnRlZGApLCIqID0+ICoifX0pKHQsbik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG8pcmV0dXJuIHZvaWQgZS5wdXNoKG8pO3Q9b31jb25zdCBpPXQubWF0Y2goL14oXCp8Wy1cd10rKVxzKig8P1s9LV0+KVxzKihcKnxbLVx3XSspJC8pO2lmKG51bGw9PWl8fGkubGVuZ3RoPDQpcmV0dXJuIG4ucHVzaChgVGhlIHByb3ZpZGVkIHRyYW5zaXRpb24gZXhwcmVzc2lvbiAiJHt0fSIgaXMgbm90IHN1cHBvcnRlZGApLGU7Y29uc3QgYT1pWzFdLHI9aVsyXSxzPWlbM107ZS5wdXNoKG1PKGEscykpLCI8IiE9clswXXx8YT09bE8mJnM9PWxPfHxlLnB1c2gobU8ocyxhKSl9KSh0LG4sZSkpKTpuLnB1c2godCksbn1jb25zdCBkTz1uZXcgU2V0KFsidHJ1ZSIsIjEiXSkscE89bmV3IFNldChbImZhbHNlIiwiMCJdKTtmdW5jdGlvbiBtTyh0LGUpe2NvbnN0IG49ZE8uaGFzKHQpfHxwTy5oYXModCksbz1kTy5oYXMoZSl8fHBPLmhhcyhlKTtyZXR1cm4oaSxhKT0+e2xldCByPXQ9PWxPfHx0PT1pLHM9ZT09bE98fGU9PWE7cmV0dXJuIXImJm4mJiJib29sZWFuIj09dHlwZW9mIGkmJihyPWk/ZE8uaGFzKHQpOnBPLmhhcyh0KSksIXMmJm8mJiJib29sZWFuIj09dHlwZW9mIGEmJihzPWE/ZE8uaGFzKGUpOnBPLmhhcyhlKSksciYmc319Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IHVPPW5ldyBSZWdFeHAoInMqOnNlbGZzKiw/IiwiZyIpO2Z1bmN0aW9uIGZPKHQsZSxuKXtyZXR1cm4gbmV3IGdPKHQpLmJ1aWxkKGUsbil9Y2xhc3MgZ097Y29uc3RydWN0b3IodCl7dGhpcy5fZHJpdmVyPXR9YnVpbGQodCxlKXtjb25zdCBuPW5ldyBoTyhlKTtyZXR1cm4gdGhpcy5fcmVzZXRDb250ZXh0U3R5bGVUaW1pbmdTdGF0ZShuKSxyTyh0aGlzLEp4KHQpLG4pfV9yZXNldENvbnRleHRTdHlsZVRpbWluZ1N0YXRlKHQpe3QuY3VycmVudFF1ZXJ5U2VsZWN0b3I9IiIsdC5jb2xsZWN0ZWRTdHlsZXM9e30sdC5jb2xsZWN0ZWRTdHlsZXNbIiJdPXt9LHQuY3VycmVudFRpbWU9MH12aXNpdFRyaWdnZXIodCxlKXtsZXQgbj1lLnF1ZXJ5Q291bnQ9MCxvPWUuZGVwQ291bnQ9MDtjb25zdCBpPVtdLGE9W107cmV0dXJuIkAiPT10Lm5hbWUuY2hhckF0KDApJiZlLmVycm9ycy5wdXNoKCJhbmltYXRpb24gdHJpZ2dlcnMgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYW4gYEBgIHNpZ24gKGUuZy4gdHJpZ2dlcignQGZvbycsIFsuLi5dKSkiKSx0LmRlZmluaXRpb25zLmZvckVhY2goKHQ9PntpZih0aGlzLl9yZXNldENvbnRleHRTdHlsZVRpbWluZ1N0YXRlKGUpLDA9PXQudHlwZSl7Y29uc3Qgbj10LG89bi5uYW1lO28udG9TdHJpbmcoKS5zcGxpdCgvXHMqLFxzKi8pLmZvckVhY2goKHQ9PntuLm5hbWU9dCxpLnB1c2godGhpcy52aXNpdFN0YXRlKG4sZSkpfSkpLG4ubmFtZT1vfWVsc2UgaWYoMT09dC50eXBlKXtjb25zdCBpPXRoaXMudmlzaXRUcmFuc2l0aW9uKHQsZSk7bis9aS5xdWVyeUNvdW50LG8rPWkuZGVwQ291bnQsYS5wdXNoKGkpfWVsc2UgZS5lcnJvcnMucHVzaCgib25seSBzdGF0ZSgpIGFuZCB0cmFuc2l0aW9uKCkgZGVmaW5pdGlvbnMgY2FuIHNpdCBpbnNpZGUgb2YgYSB0cmlnZ2VyKCkiKX0pKSx7dHlwZTo3LG5hbWU6dC5uYW1lLHN0YXRlczppLHRyYW5zaXRpb25zOmEscXVlcnlDb3VudDpuLGRlcENvdW50Om8sb3B0aW9uczpudWxsfX12aXNpdFN0YXRlKHQsZSl7Y29uc3Qgbj10aGlzLnZpc2l0U3R5bGUodC5zdHlsZXMsZSksbz10Lm9wdGlvbnMmJnQub3B0aW9ucy5wYXJhbXN8fG51bGw7aWYobi5jb250YWluc0R5bmFtaWNTdHlsZXMpe2NvbnN0IGk9bmV3IFNldCxhPW98fHt9O2lmKG4uc3R5bGVzLmZvckVhY2goKHQ9PntpZihiTyh0KSl7Y29uc3QgZT10O09iamVjdC5rZXlzKGUpLmZvckVhY2goKHQ9PnskeChlW3RdKS5mb3JFYWNoKCh0PT57YS5oYXNPd25Qcm9wZXJ0eSh0KXx8aS5hZGQodCl9KSl9KSl9fSkpLGkuc2l6ZSl7Y29uc3Qgbj1lTyhpLnZhbHVlcygpKTtlLmVycm9ycy5wdXNoKGBzdGF0ZSgiJHt0Lm5hbWV9IiwgLi4uKSBtdXN0IGRlZmluZSBkZWZhdWx0IHZhbHVlcyBmb3IgYWxsIHRoZSBmb2xsb3dpbmcgc3R5bGUgc3Vic3RpdHV0aW9uczogJHtuLmpvaW4oIiwgIil9YCl9fXJldHVybnt0eXBlOjAsbmFtZTp0Lm5hbWUsc3R5bGU6bixvcHRpb25zOm8/e3BhcmFtczpvfTpudWxsfX12aXNpdFRyYW5zaXRpb24odCxlKXtlLnF1ZXJ5Q291bnQ9MCxlLmRlcENvdW50PTA7Y29uc3Qgbj1yTyh0aGlzLEp4KHQuYW5pbWF0aW9uKSxlKTtyZXR1cm57dHlwZToxLG1hdGNoZXJzOmNPKHQuZXhwcixlLmVycm9ycyksYW5pbWF0aW9uOm4scXVlcnlDb3VudDplLnF1ZXJ5Q291bnQsZGVwQ291bnQ6ZS5kZXBDb3VudCxvcHRpb25zOnlPKHQub3B0aW9ucyl9fXZpc2l0U2VxdWVuY2UodCxlKXtyZXR1cm57dHlwZToyLHN0ZXBzOnQuc3RlcHMubWFwKCh0PT5yTyh0aGlzLHQsZSkpKSxvcHRpb25zOnlPKHQub3B0aW9ucyl9fXZpc2l0R3JvdXAodCxlKXtjb25zdCBuPWUuY3VycmVudFRpbWU7bGV0IG89MDtjb25zdCBpPXQuc3RlcHMubWFwKCh0PT57ZS5jdXJyZW50VGltZT1uO2NvbnN0IGk9ck8odGhpcyx0LGUpO3JldHVybiBvPU1hdGgubWF4KG8sZS5jdXJyZW50VGltZSksaX0pKTtyZXR1cm4gZS5jdXJyZW50VGltZT1vLHt0eXBlOjMsc3RlcHM6aSxvcHRpb25zOnlPKHQub3B0aW9ucyl9fXZpc2l0QW5pbWF0ZSh0LGUpe2NvbnN0IG49KGZ1bmN0aW9uIG8odCxlKXtsZXQgbj1udWxsO2lmKHQuaGFzT3duUHJvcGVydHkoImR1cmF0aW9uIikpbj10O2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiBfTyhHeCh0LGUpLmR1cmF0aW9uLDAsIiIpO2NvbnN0IG89dDtpZihvLnNwbGl0KC9ccysvKS5zb21lKCh0PT4ieyI9PXQuY2hhckF0KDApJiYieyI9PXQuY2hhckF0KDEpKSkpe2NvbnN0IHQ9X08oMCwwLCIiKTtyZXR1cm4gdC5keW5hbWljPSEwLHQuc3RyVmFsdWU9byx0fXJldHVybiBuPW58fEd4KG8sZSksX08obi5kdXJhdGlvbixuLmRlbGF5LG4uZWFzaW5nKX0pKHQudGltaW5ncyxlLmVycm9ycyk7bGV0IGk7ZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bjtsZXQgYT10LnN0eWxlcz90LnN0eWxlczpheCh7fSk7aWYoNT09YS50eXBlKWk9dGhpcy52aXNpdEtleWZyYW1lcyhhLGUpO2Vsc2V7bGV0IG89dC5zdHlsZXMsYT0hMTtpZighbyl7YT0hMDtjb25zdCB0PXt9O24uZWFzaW5nJiYodC5lYXNpbmc9bi5lYXNpbmcpLG89YXgodCl9ZS5jdXJyZW50VGltZSs9bi5kdXJhdGlvbituLmRlbGF5O2NvbnN0IHI9dGhpcy52aXNpdFN0eWxlKG8sZSk7ci5pc0VtcHR5U3RlcD1hLGk9cn1yZXR1cm4gZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCx7dHlwZTo0LHRpbWluZ3M6bixzdHlsZTppLG9wdGlvbnM6bnVsbH19dmlzaXRTdHlsZSh0LGUpe2NvbnN0IG49dGhpcy5fbWFrZVN0eWxlQXN0KHQsZSk7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlU3R5bGVBc3QobixlKSxufV9tYWtlU3R5bGVBc3QodCxlKXtjb25zdCBuPVtdO0FycmF5LmlzQXJyYXkodC5zdHlsZXMpP3Quc3R5bGVzLmZvckVhY2goKHQ9Pnsic3RyaW5nIj09dHlwZW9mIHQ/dD09ZXg/bi5wdXNoKHQpOmUuZXJyb3JzLnB1c2goYFRoZSBwcm92aWRlZCBzdHlsZSBzdHJpbmcgdmFsdWUgJHt0fSBpcyBub3QgYWxsb3dlZC5gKTpuLnB1c2godCl9KSk6bi5wdXNoKHQuc3R5bGVzKTtsZXQgbz0hMSxpPW51bGw7cmV0dXJuIG4uZm9yRWFjaCgodD0+e2lmKGJPKHQpKXtjb25zdCBlPXQsbj1lLmVhc2luZztpZihuJiYoaT1uLGRlbGV0ZSBlLmVhc2luZyksIW8pZm9yKGxldCB0IGluIGUpaWYoZVt0XS50b1N0cmluZygpLmluZGV4T2YoInt7Iik+PTApe289ITA7YnJlYWt9fX0pKSx7dHlwZTo2LHN0eWxlczpuLGVhc2luZzppLG9mZnNldDp0Lm9mZnNldCxjb250YWluc0R5bmFtaWNTdHlsZXM6byxvcHRpb25zOm51bGx9fV92YWxpZGF0ZVN0eWxlQXN0KHQsZSl7Y29uc3Qgbj1lLmN1cnJlbnRBbmltYXRlVGltaW5ncztsZXQgbz1lLmN1cnJlbnRUaW1lLGk9ZS5jdXJyZW50VGltZTtuJiZpPjAmJihpLT1uLmR1cmF0aW9uK24uZGVsYXkpLHQuc3R5bGVzLmZvckVhY2goKHQ9Pnsic3RyaW5nIiE9dHlwZW9mIHQmJk9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PntpZighdGhpcy5fZHJpdmVyLnZhbGlkYXRlU3R5bGVQcm9wZXJ0eShuKSlyZXR1cm4gdm9pZCBlLmVycm9ycy5wdXNoKGBUaGUgcHJvdmlkZWQgYW5pbWF0aW9uIHByb3BlcnR5ICIke259IiBpcyBub3QgYSBzdXBwb3J0ZWQgQ1NTIHByb3BlcnR5IGZvciBhbmltYXRpb25zYCk7Y29uc3QgYT1lLmNvbGxlY3RlZFN0eWxlc1tlLmN1cnJlbnRRdWVyeVNlbGVjdG9yXSxyPWFbbl07bGV0IHM9ITA7ciYmKGkhPW8mJmk+PXIuc3RhcnRUaW1lJiZvPD1yLmVuZFRpbWUmJihlLmVycm9ycy5wdXNoKGBUaGUgQ1NTIHByb3BlcnR5ICIke259IiB0aGF0IGV4aXN0cyBiZXR3ZWVuIHRoZSB0aW1lcyBvZiAiJHtyLnN0YXJ0VGltZX1tcyIgYW5kICIke3IuZW5kVGltZX1tcyIgaXMgYWxzbyBiZWluZyBhbmltYXRlZCBpbiBhIHBhcmFsbGVsIGFuaW1hdGlvbiBiZXR3ZWVuIHRoZSB0aW1lcyBvZiAiJHtpfW1zIiBhbmQgIiR7b31tcyJgKSxzPSExKSxpPXIuc3RhcnRUaW1lKSxzJiYoYVtuXT17c3RhcnRUaW1lOmksZW5kVGltZTpvfSksZS5vcHRpb25zJiYoZnVuY3Rpb24gbCh0LGUsbil7Y29uc3Qgbz1lLnBhcmFtc3x8e30saT0keCh0KTtpLmxlbmd0aCYmaS5mb3JFYWNoKCh0PT57by5oYXNPd25Qcm9wZXJ0eSh0KXx8bi5wdXNoKGBVbmFibGUgdG8gcmVzb2x2ZSB0aGUgbG9jYWwgYW5pbWF0aW9uIHBhcmFtICR7dH0gaW4gdGhlIGdpdmVuIGxpc3Qgb2YgdmFsdWVzYCl9KSl9KSh0W25dLGUub3B0aW9ucyxlLmVycm9ycyl9KSl9KSl9dmlzaXRLZXlmcmFtZXModCxlKXtjb25zdCBuPXt0eXBlOjUsc3R5bGVzOltdLG9wdGlvbnM6bnVsbH07aWYoIWUuY3VycmVudEFuaW1hdGVUaW1pbmdzKXJldHVybiBlLmVycm9ycy5wdXNoKCJrZXlmcmFtZXMoKSBtdXN0IGJlIHBsYWNlZCBpbnNpZGUgb2YgYSBjYWxsIHRvIGFuaW1hdGUoKSIpLG47bGV0IG89MDtjb25zdCBpPVtdO2xldCBhPSExLHI9ITEscz0wO2NvbnN0IGw9dC5zdGVwcy5tYXAoKHQ9Pntjb25zdCBuPXRoaXMuX21ha2VTdHlsZUFzdCh0LGUpO2xldCBsPW51bGwhPW4ub2Zmc2V0P24ub2Zmc2V0OihmdW5jdGlvbiBjKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gbnVsbDtsZXQgZT1udWxsO2lmKEFycmF5LmlzQXJyYXkodCkpdC5mb3JFYWNoKCh0PT57aWYoYk8odCkmJnQuaGFzT3duUHJvcGVydHkoIm9mZnNldCIpKXtjb25zdCBuPXQ7ZT1wYXJzZUZsb2F0KG4ub2Zmc2V0KSxkZWxldGUgbi5vZmZzZXR9fSkpO2Vsc2UgaWYoYk8odCkmJnQuaGFzT3duUHJvcGVydHkoIm9mZnNldCIpKXtjb25zdCBuPXQ7ZT1wYXJzZUZsb2F0KG4ub2Zmc2V0KSxkZWxldGUgbi5vZmZzZXR9cmV0dXJuIGV9KShuLnN0eWxlcyksZD0wO3JldHVybiBudWxsIT1sJiYobysrLGQ9bi5vZmZzZXQ9bCkscj1yfHxkPDB8fGQ+MSxhPWF8fGQ8cyxzPWQsaS5wdXNoKGQpLG59KSk7ciYmZS5lcnJvcnMucHVzaCgiUGxlYXNlIGVuc3VyZSB0aGF0IGFsbCBrZXlmcmFtZSBvZmZzZXRzIGFyZSBiZXR3ZWVuIDAgYW5kIDEiKSxhJiZlLmVycm9ycy5wdXNoKCJQbGVhc2UgZW5zdXJlIHRoYXQgYWxsIGtleWZyYW1lIG9mZnNldHMgYXJlIGluIG9yZGVyIik7Y29uc3QgYz10LnN0ZXBzLmxlbmd0aDtsZXQgZD0wO28+MCYmbzxjP2UuZXJyb3JzLnB1c2goIk5vdCBhbGwgc3R5bGUoKSBzdGVwcyB3aXRoaW4gdGhlIGRlY2xhcmVkIGtleWZyYW1lcygpIGNvbnRhaW4gb2Zmc2V0cyIpOjA9PW8mJihkPTEvKGMtMSkpO2NvbnN0IHA9Yy0xLG09ZS5jdXJyZW50VGltZSx1PWUuY3VycmVudEFuaW1hdGVUaW1pbmdzLGY9dS5kdXJhdGlvbjtyZXR1cm4gbC5mb3JFYWNoKCgodCxvKT0+e2NvbnN0IGE9ZD4wP289PXA/MTpkKm86aVtvXSxyPWEqZjtlLmN1cnJlbnRUaW1lPW0rdS5kZWxheStyLHUuZHVyYXRpb249cix0aGlzLl92YWxpZGF0ZVN0eWxlQXN0KHQsZSksdC5vZmZzZXQ9YSxuLnN0eWxlcy5wdXNoKHQpfSkpLG59dmlzaXRSZWZlcmVuY2UodCxlKXtyZXR1cm57dHlwZTo4LGFuaW1hdGlvbjpyTyh0aGlzLEp4KHQuYW5pbWF0aW9uKSxlKSxvcHRpb25zOnlPKHQub3B0aW9ucyl9fXZpc2l0QW5pbWF0ZUNoaWxkKHQsZSl7cmV0dXJuIGUuZGVwQ291bnQrKyx7dHlwZTo5LG9wdGlvbnM6eU8odC5vcHRpb25zKX19dmlzaXRBbmltYXRlUmVmKHQsZSl7cmV0dXJue3R5cGU6MTAsYW5pbWF0aW9uOnRoaXMudmlzaXRSZWZlcmVuY2UodC5hbmltYXRpb24sZSksb3B0aW9uczp5Tyh0Lm9wdGlvbnMpfX12aXNpdFF1ZXJ5KHQsZSl7Y29uc3Qgbj1lLmN1cnJlbnRRdWVyeVNlbGVjdG9yLG89dC5vcHRpb25zfHx7fTtlLnF1ZXJ5Q291bnQrKyxlLmN1cnJlbnRRdWVyeT10O2NvbnN0W2ksYV09KGZ1bmN0aW9uIHIodCl7Y29uc3QgZT0hIXQuc3BsaXQoL1xzKixccyovKS5maW5kKCh0PT4iOnNlbGYiPT10KSk7cmV0dXJuIGUmJih0PXQucmVwbGFjZSh1TywiIikpLFt0PXQucmVwbGFjZSgvQFwqL2csTHgpLnJlcGxhY2UoL0BcdysvZywodD0+Ii5uZy10cmlnZ2VyLSIrdC5zdWJzdHIoMSkpKS5yZXBsYWNlKC86YW5pbWF0aW5nL2csVngpLGVdfSkodC5zZWxlY3Rvcik7ZS5jdXJyZW50UXVlcnlTZWxlY3Rvcj1uLmxlbmd0aD9uKyIgIitpOmksTXgoZS5jb2xsZWN0ZWRTdHlsZXMsZS5jdXJyZW50UXVlcnlTZWxlY3Rvcix7fSk7Y29uc3Qgcz1yTyh0aGlzLEp4KHQuYW5pbWF0aW9uKSxlKTtyZXR1cm4gZS5jdXJyZW50UXVlcnk9bnVsbCxlLmN1cnJlbnRRdWVyeVNlbGVjdG9yPW4se3R5cGU6MTEsc2VsZWN0b3I6aSxsaW1pdDpvLmxpbWl0fHwwLG9wdGlvbmFsOiEhby5vcHRpb25hbCxpbmNsdWRlU2VsZjphLGFuaW1hdGlvbjpzLG9yaWdpbmFsU2VsZWN0b3I6dC5zZWxlY3RvcixvcHRpb25zOnlPKHQub3B0aW9ucyl9fXZpc2l0U3RhZ2dlcih0LGUpe2UuY3VycmVudFF1ZXJ5fHxlLmVycm9ycy5wdXNoKCJzdGFnZ2VyKCkgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgcXVlcnkoKSIpO2NvbnN0IG49ImZ1bGwiPT09dC50aW1pbmdzP3tkdXJhdGlvbjowLGRlbGF5OjAsZWFzaW5nOiJmdWxsIn06R3godC50aW1pbmdzLGUuZXJyb3JzLCEwKTtyZXR1cm57dHlwZToxMixhbmltYXRpb246ck8odGhpcyxKeCh0LmFuaW1hdGlvbiksZSksdGltaW5nczpuLG9wdGlvbnM6bnVsbH19fWNsYXNzIGhPe2NvbnN0cnVjdG9yKHQpe3RoaXMuZXJyb3JzPXQsdGhpcy5xdWVyeUNvdW50PTAsdGhpcy5kZXBDb3VudD0wLHRoaXMuY3VycmVudFRyYW5zaXRpb249bnVsbCx0aGlzLmN1cnJlbnRRdWVyeT1udWxsLHRoaXMuY3VycmVudFF1ZXJ5U2VsZWN0b3I9bnVsbCx0aGlzLmN1cnJlbnRBbmltYXRlVGltaW5ncz1udWxsLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmNvbGxlY3RlZFN0eWxlcz17fSx0aGlzLm9wdGlvbnM9bnVsbH19ZnVuY3Rpb24gYk8odCl7cmV0dXJuIUFycmF5LmlzQXJyYXkodCkmJiJvYmplY3QiPT10eXBlb2YgdH1mdW5jdGlvbiB5Tyh0KXtyZXR1cm4gdD8odD1XeCh0KSkucGFyYW1zJiYodC5wYXJhbXM9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIHQ/V3godCk6bnVsbH0pKHQucGFyYW1zKSk6dD17fSx0fWZ1bmN0aW9uIF9PKHQsZSxuKXtyZXR1cm57ZHVyYXRpb246dCxkZWxheTplLGVhc2luZzpufX1mdW5jdGlvbiBDTyh0LGUsbixvLGksYSxyPW51bGwscz0hMSl7cmV0dXJue3R5cGU6MSxlbGVtZW50OnQsa2V5ZnJhbWVzOmUscHJlU3R5bGVQcm9wczpuLHBvc3RTdHlsZVByb3BzOm8sZHVyYXRpb246aSxkZWxheTphLHRvdGFsVGltZTppK2EsZWFzaW5nOnIsc3ViVGltZWxpbmU6c319Y2xhc3MgTU97Y29uc3RydWN0b3IoKXt0aGlzLl9tYXA9bmV3IE1hcH1jb25zdW1lKHQpe2xldCBlPXRoaXMuX21hcC5nZXQodCk7cmV0dXJuIGU/dGhpcy5fbWFwLmRlbGV0ZSh0KTplPVtdLGV9YXBwZW5kKHQsZSl7bGV0IG49dGhpcy5fbWFwLmdldCh0KTtufHx0aGlzLl9tYXAuc2V0KHQsbj1bXSksbi5wdXNoKC4uLmUpfWhhcyh0KXtyZXR1cm4gdGhpcy5fbWFwLmhhcyh0KX1jbGVhcigpe3RoaXMuX21hcC5jbGVhcigpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3Qgdk89bmV3IFJlZ0V4cCgiOmVudGVyIiwiZyIpLHhPPW5ldyBSZWdFeHAoIjpsZWF2ZSIsImciKTtmdW5jdGlvbiBPTyh0LGUsbixvLGksYT17fSxyPXt9LHMsbCxjPVtdKXtyZXR1cm4obmV3IFBPKS5idWlsZEtleWZyYW1lcyh0LGUsbixvLGksYSxyLHMsbCxjKX1jbGFzcyBQT3tidWlsZEtleWZyYW1lcyh0LGUsbixvLGksYSxyLHMsbCxjPVtdKXtsPWx8fG5ldyBNTztjb25zdCBkPW5ldyBrTyh0LGUsbCxvLGksYyxbXSk7ZC5vcHRpb25zPXMsZC5jdXJyZW50VGltZWxpbmUuc2V0U3R5bGVzKFthXSxudWxsLGQuZXJyb3JzLHMpLHJPKHRoaXMsbixkKTtjb25zdCBwPWQudGltZWxpbmVzLmZpbHRlcigodD0+dC5jb250YWluc0FuaW1hdGlvbigpKSk7aWYocC5sZW5ndGgmJk9iamVjdC5rZXlzKHIpLmxlbmd0aCl7Y29uc3QgdD1wW3AubGVuZ3RoLTFdO3QuYWxsb3dPbmx5VGltZWxpbmVTdHlsZXMoKXx8dC5zZXRTdHlsZXMoW3JdLG51bGwsZC5lcnJvcnMscyl9cmV0dXJuIHAubGVuZ3RoP3AubWFwKCh0PT50LmJ1aWxkS2V5ZnJhbWVzKCkpKTpbQ08oZSxbXSxbXSxbXSwwLDAsIiIsITEpXX12aXNpdFRyaWdnZXIodCxlKXt9dmlzaXRTdGF0ZSh0LGUpe312aXNpdFRyYW5zaXRpb24odCxlKXt9dmlzaXRBbmltYXRlQ2hpbGQodCxlKXtjb25zdCBuPWUuc3ViSW5zdHJ1Y3Rpb25zLmNvbnN1bWUoZS5lbGVtZW50KTtpZihuKXtjb25zdCBvPWUuY3JlYXRlU3ViQ29udGV4dCh0Lm9wdGlvbnMpLGk9ZS5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUsYT10aGlzLl92aXNpdFN1Ykluc3RydWN0aW9ucyhuLG8sby5vcHRpb25zKTtpIT1hJiZlLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZShhKX1lLnByZXZpb3VzTm9kZT10fXZpc2l0QW5pbWF0ZVJlZih0LGUpe2NvbnN0IG49ZS5jcmVhdGVTdWJDb250ZXh0KHQub3B0aW9ucyk7bi50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoKSx0aGlzLnZpc2l0UmVmZXJlbmNlKHQuYW5pbWF0aW9uLG4pLGUudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKG4uY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKSxlLnByZXZpb3VzTm9kZT10fV92aXNpdFN1Ykluc3RydWN0aW9ucyh0LGUsbil7bGV0IG89ZS5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWU7Y29uc3QgaT1udWxsIT1uLmR1cmF0aW9uP2p4KG4uZHVyYXRpb24pOm51bGwsYT1udWxsIT1uLmRlbGF5P2p4KG4uZGVsYXkpOm51bGw7cmV0dXJuIDAhPT1pJiZ0LmZvckVhY2goKHQ9Pntjb25zdCBuPWUuYXBwZW5kSW5zdHJ1Y3Rpb25Ub1RpbWVsaW5lKHQsaSxhKTtvPU1hdGgubWF4KG8sbi5kdXJhdGlvbituLmRlbGF5KX0pKSxvfXZpc2l0UmVmZXJlbmNlKHQsZSl7ZS51cGRhdGVPcHRpb25zKHQub3B0aW9ucywhMCksck8odGhpcyx0LmFuaW1hdGlvbixlKSxlLnByZXZpb3VzTm9kZT10fXZpc2l0U2VxdWVuY2UodCxlKXtjb25zdCBuPWUuc3ViQ29udGV4dENvdW50O2xldCBvPWU7Y29uc3QgaT10Lm9wdGlvbnM7aWYoaSYmKGkucGFyYW1zfHxpLmRlbGF5KSYmKG89ZS5jcmVhdGVTdWJDb250ZXh0KGkpLG8udHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKCksbnVsbCE9aS5kZWxheSkpezY9PW8ucHJldmlvdXNOb2RlLnR5cGUmJihvLmN1cnJlbnRUaW1lbGluZS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSxvLnByZXZpb3VzTm9kZT13Tyk7Y29uc3QgdD1qeChpLmRlbGF5KTtvLmRlbGF5TmV4dFN0ZXAodCl9dC5zdGVwcy5sZW5ndGgmJih0LnN0ZXBzLmZvckVhY2goKHQ9PnJPKHRoaXMsdCxvKSkpLG8uY3VycmVudFRpbWVsaW5lLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpLG8uc3ViQ29udGV4dENvdW50Pm4mJm8udHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKCkpLGUucHJldmlvdXNOb2RlPXR9dmlzaXRHcm91cCh0LGUpe2NvbnN0IG49W107bGV0IG89ZS5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWU7Y29uc3QgaT10Lm9wdGlvbnMmJnQub3B0aW9ucy5kZWxheT9qeCh0Lm9wdGlvbnMuZGVsYXkpOjA7dC5zdGVwcy5mb3JFYWNoKChhPT57Y29uc3Qgcj1lLmNyZWF0ZVN1YkNvbnRleHQodC5vcHRpb25zKTtpJiZyLmRlbGF5TmV4dFN0ZXAoaSksck8odGhpcyxhLHIpLG89TWF0aC5tYXgobyxyLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSksbi5wdXNoKHIuY3VycmVudFRpbWVsaW5lKX0pKSxuLmZvckVhY2goKHQ9PmUuY3VycmVudFRpbWVsaW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXModCkpKSxlLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZShvKSxlLnByZXZpb3VzTm9kZT10fV92aXNpdFRpbWluZyh0LGUpe2lmKHQuZHluYW1pYyl7Y29uc3Qgbj10LnN0clZhbHVlO3JldHVybiBHeChlLnBhcmFtcz90TyhuLGUucGFyYW1zLGUuZXJyb3JzKTpuLGUuZXJyb3JzKX1yZXR1cm57ZHVyYXRpb246dC5kdXJhdGlvbixkZWxheTp0LmRlbGF5LGVhc2luZzp0LmVhc2luZ319dmlzaXRBbmltYXRlKHQsZSl7Y29uc3Qgbj1lLmN1cnJlbnRBbmltYXRlVGltaW5ncz10aGlzLl92aXNpdFRpbWluZyh0LnRpbWluZ3MsZSksbz1lLmN1cnJlbnRUaW1lbGluZTtuLmRlbGF5JiYoZS5pbmNyZW1lbnRUaW1lKG4uZGVsYXkpLG8uc25hcHNob3RDdXJyZW50U3R5bGVzKCkpO2NvbnN0IGk9dC5zdHlsZTs1PT1pLnR5cGU/dGhpcy52aXNpdEtleWZyYW1lcyhpLGUpOihlLmluY3JlbWVudFRpbWUobi5kdXJhdGlvbiksdGhpcy52aXNpdFN0eWxlKGksZSksby5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSksZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCxlLnByZXZpb3VzTm9kZT10fXZpc2l0U3R5bGUodCxlKXtjb25zdCBuPWUuY3VycmVudFRpbWVsaW5lLG89ZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M7IW8mJm4uZ2V0Q3VycmVudFN0eWxlUHJvcGVydGllcygpLmxlbmd0aCYmbi5mb3J3YXJkRnJhbWUoKTtjb25zdCBpPW8mJm8uZWFzaW5nfHx0LmVhc2luZzt0LmlzRW1wdHlTdGVwP24uYXBwbHlFbXB0eVN0ZXAoaSk6bi5zZXRTdHlsZXModC5zdHlsZXMsaSxlLmVycm9ycyxlLm9wdGlvbnMpLGUucHJldmlvdXNOb2RlPXR9dmlzaXRLZXlmcmFtZXModCxlKXtjb25zdCBuPWUuY3VycmVudEFuaW1hdGVUaW1pbmdzLG89ZS5jdXJyZW50VGltZWxpbmUuZHVyYXRpb24saT1uLmR1cmF0aW9uLGE9ZS5jcmVhdGVTdWJDb250ZXh0KCkuY3VycmVudFRpbWVsaW5lO2EuZWFzaW5nPW4uZWFzaW5nLHQuc3R5bGVzLmZvckVhY2goKHQ9PnthLmZvcndhcmRUaW1lKCh0Lm9mZnNldHx8MCkqaSksYS5zZXRTdHlsZXModC5zdHlsZXMsdC5lYXNpbmcsZS5lcnJvcnMsZS5vcHRpb25zKSxhLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpfSkpLGUuY3VycmVudFRpbWVsaW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXMoYSksZS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUobytpKSxlLnByZXZpb3VzTm9kZT10fXZpc2l0UXVlcnkodCxlKXtjb25zdCBuPWUuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lLG89dC5vcHRpb25zfHx7fSxpPW8uZGVsYXk/angoby5kZWxheSk6MDtpJiYoNj09PWUucHJldmlvdXNOb2RlLnR5cGV8fDA9PW4mJmUuY3VycmVudFRpbWVsaW5lLmdldEN1cnJlbnRTdHlsZVByb3BlcnRpZXMoKS5sZW5ndGgpJiYoZS5jdXJyZW50VGltZWxpbmUuc25hcHNob3RDdXJyZW50U3R5bGVzKCksZS5wcmV2aW91c05vZGU9d08pO2xldCBhPW47Y29uc3Qgcj1lLmludm9rZVF1ZXJ5KHQuc2VsZWN0b3IsdC5vcmlnaW5hbFNlbGVjdG9yLHQubGltaXQsdC5pbmNsdWRlU2VsZiwhIW8ub3B0aW9uYWwsZS5lcnJvcnMpO2UuY3VycmVudFF1ZXJ5VG90YWw9ci5sZW5ndGg7bGV0IHM9bnVsbDtyLmZvckVhY2goKChuLG8pPT57ZS5jdXJyZW50UXVlcnlJbmRleD1vO2NvbnN0IHI9ZS5jcmVhdGVTdWJDb250ZXh0KHQub3B0aW9ucyxuKTtpJiZyLmRlbGF5TmV4dFN0ZXAoaSksbj09PWUuZWxlbWVudCYmKHM9ci5jdXJyZW50VGltZWxpbmUpLHJPKHRoaXMsdC5hbmltYXRpb24sciksci5jdXJyZW50VGltZWxpbmUuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksYT1NYXRoLm1heChhLHIuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKX0pKSxlLmN1cnJlbnRRdWVyeUluZGV4PTAsZS5jdXJyZW50UXVlcnlUb3RhbD0wLGUudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKGEpLHMmJihlLmN1cnJlbnRUaW1lbGluZS5tZXJnZVRpbWVsaW5lQ29sbGVjdGVkU3R5bGVzKHMpLGUuY3VycmVudFRpbWVsaW5lLnNuYXBzaG90Q3VycmVudFN0eWxlcygpKSxlLnByZXZpb3VzTm9kZT10fXZpc2l0U3RhZ2dlcih0LGUpe2NvbnN0IG49ZS5wYXJlbnRDb250ZXh0LG89ZS5jdXJyZW50VGltZWxpbmUsaT10LnRpbWluZ3MsYT1NYXRoLmFicyhpLmR1cmF0aW9uKSxyPWEqKGUuY3VycmVudFF1ZXJ5VG90YWwtMSk7bGV0IHM9YSplLmN1cnJlbnRRdWVyeUluZGV4O3N3aXRjaChpLmR1cmF0aW9uPDA/InJldmVyc2UiOmkuZWFzaW5nKXtjYXNlInJldmVyc2UiOnM9ci1zO2JyZWFrO2Nhc2UiZnVsbCI6cz1uLmN1cnJlbnRTdGFnZ2VyVGltZX1jb25zdCBsPWUuY3VycmVudFRpbWVsaW5lO3MmJmwuZGVsYXlOZXh0U3RlcChzKTtjb25zdCBjPWwuY3VycmVudFRpbWU7ck8odGhpcyx0LmFuaW1hdGlvbixlKSxlLnByZXZpb3VzTm9kZT10LG4uY3VycmVudFN0YWdnZXJUaW1lPW8uY3VycmVudFRpbWUtYysoby5zdGFydFRpbWUtbi5jdXJyZW50VGltZWxpbmUuc3RhcnRUaW1lKX19Y29uc3Qgd089e307Y2xhc3Mga097Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzKXt0aGlzLl9kcml2ZXI9dCx0aGlzLmVsZW1lbnQ9ZSx0aGlzLnN1Ykluc3RydWN0aW9ucz1uLHRoaXMuX2VudGVyQ2xhc3NOYW1lPW8sdGhpcy5fbGVhdmVDbGFzc05hbWU9aSx0aGlzLmVycm9ycz1hLHRoaXMudGltZWxpbmVzPXIsdGhpcy5wYXJlbnRDb250ZXh0PW51bGwsdGhpcy5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCx0aGlzLnByZXZpb3VzTm9kZT13Tyx0aGlzLnN1YkNvbnRleHRDb3VudD0wLHRoaXMub3B0aW9ucz17fSx0aGlzLmN1cnJlbnRRdWVyeUluZGV4PTAsdGhpcy5jdXJyZW50UXVlcnlUb3RhbD0wLHRoaXMuY3VycmVudFN0YWdnZXJUaW1lPTAsdGhpcy5jdXJyZW50VGltZWxpbmU9c3x8bmV3IFNPKHRoaXMuX2RyaXZlcixlLDApLHIucHVzaCh0aGlzLmN1cnJlbnRUaW1lbGluZSl9Z2V0IHBhcmFtcygpe3JldHVybiB0aGlzLm9wdGlvbnMucGFyYW1zfXVwZGF0ZU9wdGlvbnModCxlKXtpZighdClyZXR1cm47Y29uc3Qgbj10O2xldCBvPXRoaXMub3B0aW9ucztudWxsIT1uLmR1cmF0aW9uJiYoby5kdXJhdGlvbj1qeChuLmR1cmF0aW9uKSksbnVsbCE9bi5kZWxheSYmKG8uZGVsYXk9angobi5kZWxheSkpO2NvbnN0IGk9bi5wYXJhbXM7aWYoaSl7bGV0IHQ9by5wYXJhbXM7dHx8KHQ9dGhpcy5vcHRpb25zLnBhcmFtcz17fSksT2JqZWN0LmtleXMoaSkuZm9yRWFjaCgobj0+e2UmJnQuaGFzT3duUHJvcGVydHkobil8fCh0W25dPXRPKGlbbl0sdCx0aGlzLmVycm9ycykpfSkpfX1fY29weU9wdGlvbnMoKXtjb25zdCB0PXt9O2lmKHRoaXMub3B0aW9ucyl7Y29uc3QgZT10aGlzLm9wdGlvbnMucGFyYW1zO2lmKGUpe2NvbnN0IG49dC5wYXJhbXM9e307T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgodD0+e25bdF09ZVt0XX0pKX19cmV0dXJuIHR9Y3JlYXRlU3ViQ29udGV4dCh0PW51bGwsZSxuKXtjb25zdCBvPWV8fHRoaXMuZWxlbWVudCxpPW5ldyBrTyh0aGlzLl9kcml2ZXIsbyx0aGlzLnN1Ykluc3RydWN0aW9ucyx0aGlzLl9lbnRlckNsYXNzTmFtZSx0aGlzLl9sZWF2ZUNsYXNzTmFtZSx0aGlzLmVycm9ycyx0aGlzLnRpbWVsaW5lcyx0aGlzLmN1cnJlbnRUaW1lbGluZS5mb3JrKG8sbnx8MCkpO3JldHVybiBpLnByZXZpb3VzTm9kZT10aGlzLnByZXZpb3VzTm9kZSxpLmN1cnJlbnRBbmltYXRlVGltaW5ncz10aGlzLmN1cnJlbnRBbmltYXRlVGltaW5ncyxpLm9wdGlvbnM9dGhpcy5fY29weU9wdGlvbnMoKSxpLnVwZGF0ZU9wdGlvbnModCksaS5jdXJyZW50UXVlcnlJbmRleD10aGlzLmN1cnJlbnRRdWVyeUluZGV4LGkuY3VycmVudFF1ZXJ5VG90YWw9dGhpcy5jdXJyZW50UXVlcnlUb3RhbCxpLnBhcmVudENvbnRleHQ9dGhpcyx0aGlzLnN1YkNvbnRleHRDb3VudCsrLGl9dHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKHQpe3JldHVybiB0aGlzLnByZXZpb3VzTm9kZT13Tyx0aGlzLmN1cnJlbnRUaW1lbGluZT10aGlzLmN1cnJlbnRUaW1lbGluZS5mb3JrKHRoaXMuZWxlbWVudCx0KSx0aGlzLnRpbWVsaW5lcy5wdXNoKHRoaXMuY3VycmVudFRpbWVsaW5lKSx0aGlzLmN1cnJlbnRUaW1lbGluZX1hcHBlbmRJbnN0cnVjdGlvblRvVGltZWxpbmUodCxlLG4pe2NvbnN0IG89e2R1cmF0aW9uOm51bGwhPWU/ZTp0LmR1cmF0aW9uLGRlbGF5OnRoaXMuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKyhudWxsIT1uP246MCkrdC5kZWxheSxlYXNpbmc6IiJ9LGk9bmV3IERPKHRoaXMuX2RyaXZlcix0LmVsZW1lbnQsdC5rZXlmcmFtZXMsdC5wcmVTdHlsZVByb3BzLHQucG9zdFN0eWxlUHJvcHMsbyx0LnN0cmV0Y2hTdGFydGluZ0tleWZyYW1lKTtyZXR1cm4gdGhpcy50aW1lbGluZXMucHVzaChpKSxvfWluY3JlbWVudFRpbWUodCl7dGhpcy5jdXJyZW50VGltZWxpbmUuZm9yd2FyZFRpbWUodGhpcy5jdXJyZW50VGltZWxpbmUuZHVyYXRpb24rdCl9ZGVsYXlOZXh0U3RlcCh0KXt0PjAmJnRoaXMuY3VycmVudFRpbWVsaW5lLmRlbGF5TmV4dFN0ZXAodCl9aW52b2tlUXVlcnkodCxlLG4sbyxpLGEpe2xldCByPVtdO2lmKG8mJnIucHVzaCh0aGlzLmVsZW1lbnQpLHQubGVuZ3RoPjApe3Q9KHQ9dC5yZXBsYWNlKHZPLCIuIit0aGlzLl9lbnRlckNsYXNzTmFtZSkpLnJlcGxhY2UoeE8sIi4iK3RoaXMuX2xlYXZlQ2xhc3NOYW1lKTtsZXQgZT10aGlzLl9kcml2ZXIucXVlcnkodGhpcy5lbGVtZW50LHQsMSE9bik7MCE9PW4mJihlPW48MD9lLnNsaWNlKGUubGVuZ3RoK24sZS5sZW5ndGgpOmUuc2xpY2UoMCxuKSksci5wdXNoKC4uLmUpfXJldHVybiBpfHwwIT1yLmxlbmd0aHx8YS5wdXNoKGBcYHF1ZXJ5KCIke2V9IilcYCByZXR1cm5lZCB6ZXJvIGVsZW1lbnRzLiAoVXNlIFxgcXVlcnkoIiR7ZX0iLCB7IG9wdGlvbmFsOiB0cnVlIH0pXGAgaWYgeW91IHdpc2ggdG8gYWxsb3cgdGhpcy4pYCkscn19Y2xhc3MgU097Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fZHJpdmVyPXQsdGhpcy5lbGVtZW50PWUsdGhpcy5zdGFydFRpbWU9bix0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXA9byx0aGlzLmR1cmF0aW9uPTAsdGhpcy5fcHJldmlvdXNLZXlmcmFtZT17fSx0aGlzLl9jdXJyZW50S2V5ZnJhbWU9e30sdGhpcy5fa2V5ZnJhbWVzPW5ldyBNYXAsdGhpcy5fc3R5bGVTdW1tYXJ5PXt9LHRoaXMuX3BlbmRpbmdTdHlsZXM9e30sdGhpcy5fYmFja0ZpbGw9e30sdGhpcy5fY3VycmVudEVtcHR5U3RlcEtleWZyYW1lPW51bGwsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwfHwodGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwPW5ldyBNYXApLHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXM9T2JqZWN0LmNyZWF0ZSh0aGlzLl9iYWNrRmlsbCx7fSksdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXM9dGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwLmdldChlKSx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlc3x8KHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzPXRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwLnNldChlLHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMpKSx0aGlzLl9sb2FkS2V5ZnJhbWUoKX1jb250YWluc0FuaW1hdGlvbigpe3N3aXRjaCh0aGlzLl9rZXlmcmFtZXMuc2l6ZSl7Y2FzZSAwOnJldHVybiExO2Nhc2UgMTpyZXR1cm4gdGhpcy5nZXRDdXJyZW50U3R5bGVQcm9wZXJ0aWVzKCkubGVuZ3RoPjA7ZGVmYXVsdDpyZXR1cm4hMH19Z2V0Q3VycmVudFN0eWxlUHJvcGVydGllcygpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLl9jdXJyZW50S2V5ZnJhbWUpfWdldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLnN0YXJ0VGltZSt0aGlzLmR1cmF0aW9ufWRlbGF5TmV4dFN0ZXAodCl7Y29uc3QgZT0xPT10aGlzLl9rZXlmcmFtZXMuc2l6ZSYmT2JqZWN0LmtleXModGhpcy5fcGVuZGluZ1N0eWxlcykubGVuZ3RoO3RoaXMuZHVyYXRpb258fGU/KHRoaXMuZm9yd2FyZFRpbWUodGhpcy5jdXJyZW50VGltZSt0KSxlJiZ0aGlzLnNuYXBzaG90Q3VycmVudFN0eWxlcygpKTp0aGlzLnN0YXJ0VGltZSs9dH1mb3JrKHQsZSl7cmV0dXJuIHRoaXMuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksbmV3IFNPKHRoaXMuX2RyaXZlcix0LGV8fHRoaXMuY3VycmVudFRpbWUsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwKX1fbG9hZEtleWZyYW1lKCl7dGhpcy5fY3VycmVudEtleWZyYW1lJiYodGhpcy5fcHJldmlvdXNLZXlmcmFtZT10aGlzLl9jdXJyZW50S2V5ZnJhbWUpLHRoaXMuX2N1cnJlbnRLZXlmcmFtZT10aGlzLl9rZXlmcmFtZXMuZ2V0KHRoaXMuZHVyYXRpb24pLHRoaXMuX2N1cnJlbnRLZXlmcmFtZXx8KHRoaXMuX2N1cnJlbnRLZXlmcmFtZT1PYmplY3QuY3JlYXRlKHRoaXMuX2JhY2tGaWxsLHt9KSx0aGlzLl9rZXlmcmFtZXMuc2V0KHRoaXMuZHVyYXRpb24sdGhpcy5fY3VycmVudEtleWZyYW1lKSl9Zm9yd2FyZEZyYW1lKCl7dGhpcy5kdXJhdGlvbis9MSx0aGlzLl9sb2FkS2V5ZnJhbWUoKX1mb3J3YXJkVGltZSh0KXt0aGlzLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpLHRoaXMuZHVyYXRpb249dCx0aGlzLl9sb2FkS2V5ZnJhbWUoKX1fdXBkYXRlU3R5bGUodCxlKXt0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzW3RdPWUsdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXNbdF09ZSx0aGlzLl9zdHlsZVN1bW1hcnlbdF09e3RpbWU6dGhpcy5jdXJyZW50VGltZSx2YWx1ZTplfX1hbGxvd09ubHlUaW1lbGluZVN0eWxlcygpe3JldHVybiB0aGlzLl9jdXJyZW50RW1wdHlTdGVwS2V5ZnJhbWUhPT10aGlzLl9jdXJyZW50S2V5ZnJhbWV9YXBwbHlFbXB0eVN0ZXAodCl7dCYmKHRoaXMuX3ByZXZpb3VzS2V5ZnJhbWUuZWFzaW5nPXQpLE9iamVjdC5rZXlzKHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzKS5mb3JFYWNoKCh0PT57dGhpcy5fYmFja0ZpbGxbdF09dGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXNbdF18fGV4LHRoaXMuX2N1cnJlbnRLZXlmcmFtZVt0XT1leH0pKSx0aGlzLl9jdXJyZW50RW1wdHlTdGVwS2V5ZnJhbWU9dGhpcy5fY3VycmVudEtleWZyYW1lfXNldFN0eWxlcyh0LGUsbixvKXtlJiYodGhpcy5fcHJldmlvdXNLZXlmcmFtZS5lYXNpbmc9ZSk7Y29uc3QgaT1vJiZvLnBhcmFtc3x8e30sYT0oZnVuY3Rpb24gcih0LGUpe2NvbnN0IG49e307bGV0IG87cmV0dXJuIHQuZm9yRWFjaCgodD0+eyIqIj09PXQ/KG89b3x8T2JqZWN0LmtleXMoZSksby5mb3JFYWNoKCh0PT57blt0XT1leH0pKSk6WXgodCwhMSxuKX0pKSxufQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQsdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXMpO09iamVjdC5rZXlzKGEpLmZvckVhY2goKHQ9Pntjb25zdCBlPXRPKGFbdF0saSxuKTt0aGlzLl9wZW5kaW5nU3R5bGVzW3RdPWUsdGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcy5oYXNPd25Qcm9wZXJ0eSh0KXx8KHRoaXMuX2JhY2tGaWxsW3RdPXRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzLmhhc093blByb3BlcnR5KHQpP3RoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzW3RdOmV4KSx0aGlzLl91cGRhdGVTdHlsZSh0LGUpfSkpfWFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpe2NvbnN0IHQ9dGhpcy5fcGVuZGluZ1N0eWxlcyxlPU9iamVjdC5rZXlzKHQpOzAhPWUubGVuZ3RoJiYodGhpcy5fcGVuZGluZ1N0eWxlcz17fSxlLmZvckVhY2goKGU9Pnt0aGlzLl9jdXJyZW50S2V5ZnJhbWVbZV09dFtlXX0pKSxPYmplY3Qua2V5cyh0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzKS5mb3JFYWNoKCh0PT57dGhpcy5fY3VycmVudEtleWZyYW1lLmhhc093blByb3BlcnR5KHQpfHwodGhpcy5fY3VycmVudEtleWZyYW1lW3RdPXRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXNbdF0pfSkpKX1zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKXtPYmplY3Qua2V5cyh0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzW3RdO3RoaXMuX3BlbmRpbmdTdHlsZXNbdF09ZSx0aGlzLl91cGRhdGVTdHlsZSh0LGUpfSkpfWdldEZpbmFsS2V5ZnJhbWUoKXtyZXR1cm4gdGhpcy5fa2V5ZnJhbWVzLmdldCh0aGlzLmR1cmF0aW9uKX1nZXQgcHJvcGVydGllcygpe2NvbnN0IHQ9W107Zm9yKGxldCBlIGluIHRoaXMuX2N1cnJlbnRLZXlmcmFtZSl0LnB1c2goZSk7cmV0dXJuIHR9bWVyZ2VUaW1lbGluZUNvbGxlY3RlZFN0eWxlcyh0KXtPYmplY3Qua2V5cyh0Ll9zdHlsZVN1bW1hcnkpLmZvckVhY2goKGU9Pntjb25zdCBuPXRoaXMuX3N0eWxlU3VtbWFyeVtlXSxvPXQuX3N0eWxlU3VtbWFyeVtlXTsoIW58fG8udGltZT5uLnRpbWUpJiZ0aGlzLl91cGRhdGVTdHlsZShlLG8udmFsdWUpfSkpfWJ1aWxkS2V5ZnJhbWVzKCl7dGhpcy5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKTtjb25zdCB0PW5ldyBTZXQsZT1uZXcgU2V0LG49MT09PXRoaXMuX2tleWZyYW1lcy5zaXplJiYwPT09dGhpcy5kdXJhdGlvbjtsZXQgbz1bXTt0aGlzLl9rZXlmcmFtZXMuZm9yRWFjaCgoKGksYSk9Pntjb25zdCByPVl4KGksITApO09iamVjdC5rZXlzKHIpLmZvckVhY2goKG49Pntjb25zdCBvPXJbbl07IiEiPT1vP3QuYWRkKG4pOm89PWV4JiZlLmFkZChuKX0pKSxufHwoci5vZmZzZXQ9YS90aGlzLmR1cmF0aW9uKSxvLnB1c2gocil9KSk7Y29uc3QgaT10LnNpemU/ZU8odC52YWx1ZXMoKSk6W10sYT1lLnNpemU/ZU8oZS52YWx1ZXMoKSk6W107aWYobil7Y29uc3QgdD1vWzBdLGU9V3godCk7dC5vZmZzZXQ9MCxlLm9mZnNldD0xLG89W3QsZV19cmV0dXJuIENPKHRoaXMuZWxlbWVudCxvLGksYSx0aGlzLmR1cmF0aW9uLHRoaXMuc3RhcnRUaW1lLHRoaXMuZWFzaW5nLCExKX19Y2xhc3MgRE8gZXh0ZW5kcyBTT3tjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyPSExKXtzdXBlcih0LGUsYS5kZWxheSksdGhpcy5rZXlmcmFtZXM9bix0aGlzLnByZVN0eWxlUHJvcHM9byx0aGlzLnBvc3RTdHlsZVByb3BzPWksdGhpcy5fc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWU9cix0aGlzLnRpbWluZ3M9e2R1cmF0aW9uOmEuZHVyYXRpb24sZGVsYXk6YS5kZWxheSxlYXNpbmc6YS5lYXNpbmd9fWNvbnRhaW5zQW5pbWF0aW9uKCl7cmV0dXJuIHRoaXMua2V5ZnJhbWVzLmxlbmd0aD4xfWJ1aWxkS2V5ZnJhbWVzKCl7bGV0IHQ9dGhpcy5rZXlmcmFtZXMse2RlbGF5OmUsZHVyYXRpb246bixlYXNpbmc6b309dGhpcy50aW1pbmdzO2lmKHRoaXMuX3N0cmV0Y2hTdGFydGluZ0tleWZyYW1lJiZlKXtjb25zdCBpPVtdLGE9bitlLHI9ZS9hLHM9WXgodFswXSwhMSk7cy5vZmZzZXQ9MCxpLnB1c2gocyk7Y29uc3QgbD1ZeCh0WzBdLCExKTtsLm9mZnNldD1FTyhyKSxpLnB1c2gobCk7Y29uc3QgYz10Lmxlbmd0aC0xO2ZvcihsZXQgbz0xO288PWM7bysrKXtsZXQgcj1ZeCh0W29dLCExKTtyLm9mZnNldD1FTygoZStyLm9mZnNldCpuKS9hKSxpLnB1c2gocil9bj1hLGU9MCxvPSIiLHQ9aX1yZXR1cm4gQ08odGhpcy5lbGVtZW50LHQsdGhpcy5wcmVTdHlsZVByb3BzLHRoaXMucG9zdFN0eWxlUHJvcHMsbixlLG8sITApfX1mdW5jdGlvbiBFTyh0LGU9Myl7Y29uc3Qgbj1NYXRoLnBvdygxMCxlLTEpO3JldHVybiBNYXRoLnJvdW5kKHQqbikvbn1jbGFzcyBST3t9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIEFPIGV4dGVuZHMgUk97bm9ybWFsaXplUHJvcGVydHlOYW1lKHQsZSl7cmV0dXJuIG9PKHQpfW5vcm1hbGl6ZVN0eWxlVmFsdWUodCxlLG4sbyl7bGV0IGk9IiI7Y29uc3QgYT1uLnRvU3RyaW5nKCkudHJpbSgpO2lmKFRPW2VdJiYwIT09biYmIjAiIT09bilpZigibnVtYmVyIj09dHlwZW9mIG4paT0icHgiO2Vsc2V7Y29uc3QgZT1uLm1hdGNoKC9eWystXT9bXGRcLl0rKFthLXpdKikkLyk7ZSYmMD09ZVsxXS5sZW5ndGgmJm8ucHVzaChgUGxlYXNlIHByb3ZpZGUgYSBDU1MgdW5pdCB2YWx1ZSBmb3IgJHt0fToke259YCl9cmV0dXJuIGEraX19Y29uc3QgVE89KGZ1bmN0aW9uIE5PKHQpe2NvbnN0IGU9e307cmV0dXJuIHQuZm9yRWFjaCgodD0+ZVt0XT0hMCkpLGV9KSgid2lkdGgsaGVpZ2h0LG1pbldpZHRoLG1pbkhlaWdodCxtYXhXaWR0aCxtYXhIZWlnaHQsbGVmdCx0b3AsYm90dG9tLHJpZ2h0LGZvbnRTaXplLG91dGxpbmVXaWR0aCxvdXRsaW5lT2Zmc2V0LHBhZGRpbmdUb3AscGFkZGluZ0xlZnQscGFkZGluZ0JvdHRvbSxwYWRkaW5nUmlnaHQsbWFyZ2luVG9wLG1hcmdpbkxlZnQsbWFyZ2luQm90dG9tLG1hcmdpblJpZ2h0LGJvcmRlclJhZGl1cyxib3JkZXJXaWR0aCxib3JkZXJUb3BXaWR0aCxib3JkZXJMZWZ0V2lkdGgsYm9yZGVyUmlnaHRXaWR0aCxib3JkZXJCb3R0b21XaWR0aCx0ZXh0SW5kZW50LHBlcnNwZWN0aXZlIi5zcGxpdCgiLCIpKTtmdW5jdGlvbiB6Tyh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtKXtyZXR1cm57dHlwZTowLGVsZW1lbnQ6dCx0cmlnZ2VyTmFtZTplLGlzUmVtb3ZhbFRyYW5zaXRpb246aSxmcm9tU3RhdGU6bixmcm9tU3R5bGVzOmEsdG9TdGF0ZTpvLHRvU3R5bGVzOnIsdGltZWxpbmVzOnMscXVlcmllZEVsZW1lbnRzOmwscHJlU3R5bGVQcm9wczpjLHBvc3RTdHlsZVByb3BzOmQsdG90YWxUaW1lOnAsZXJyb3JzOm19fWNvbnN0IElPPXt9O2NsYXNzIEhPe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl90cmlnZ2VyTmFtZT10LHRoaXMuYXN0PWUsdGhpcy5fc3RhdGVTdHlsZXM9bn1tYXRjaCh0LGUsbixvKXtyZXR1cm4oZnVuY3Rpb24gaSh0LGUsbixvLGEpe3JldHVybiB0LnNvbWUoKHQ9PnQoZSxuLG8sYSkpKX0pKHRoaXMuYXN0Lm1hdGNoZXJzLHQsZSxuLG8pfWJ1aWxkU3R5bGVzKHQsZSxuKXtjb25zdCBvPXRoaXMuX3N0YXRlU3R5bGVzWyIqIl0saT10aGlzLl9zdGF0ZVN0eWxlc1t0XSxhPW8/by5idWlsZFN0eWxlcyhlLG4pOnt9O3JldHVybiBpP2kuYnVpbGRTdHlsZXMoZSxuKTphfWJ1aWxkKHQsZSxuLG8saSxhLHIscyxsLGMpe2NvbnN0IGQ9W10scD10aGlzLmFzdC5vcHRpb25zJiZ0aGlzLmFzdC5vcHRpb25zLnBhcmFtc3x8SU8sbT10aGlzLmJ1aWxkU3R5bGVzKG4sciYmci5wYXJhbXN8fElPLGQpLHU9cyYmcy5wYXJhbXN8fElPLGY9dGhpcy5idWlsZFN0eWxlcyhvLHUsZCksZz1uZXcgU2V0LGg9bmV3IE1hcCxiPW5ldyBNYXAseT0idm9pZCI9PT1vLF89e3BhcmFtczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scCksdSl9LEM9Yz9bXTpPTyh0LGUsdGhpcy5hc3QuYW5pbWF0aW9uLGksYSxtLGYsXyxsLGQpO2xldCBNPTA7aWYoQy5mb3JFYWNoKCh0PT57TT1NYXRoLm1heCh0LmR1cmF0aW9uK3QuZGVsYXksTSl9KSksZC5sZW5ndGgpcmV0dXJuIHpPKGUsdGhpcy5fdHJpZ2dlck5hbWUsbixvLHksbSxmLFtdLFtdLGgsYixNLGQpO0MuZm9yRWFjaCgodD0+e2NvbnN0IG49dC5lbGVtZW50LG89TXgoaCxuLHt9KTt0LnByZVN0eWxlUHJvcHMuZm9yRWFjaCgodD0+b1t0XT0hMCkpO2NvbnN0IGk9TXgoYixuLHt9KTt0LnBvc3RTdHlsZVByb3BzLmZvckVhY2goKHQ9PmlbdF09ITApKSxuIT09ZSYmZy5hZGQobil9KSk7Y29uc3Qgdj1lTyhnLnZhbHVlcygpKTtyZXR1cm4gek8oZSx0aGlzLl90cmlnZ2VyTmFtZSxuLG8seSxtLGYsQyx2LGgsYixNKX19Y2xhc3MgRk97Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuc3R5bGVzPXQsdGhpcy5kZWZhdWx0UGFyYW1zPWUsdGhpcy5ub3JtYWxpemVyPW59YnVpbGRTdHlsZXModCxlKXtjb25zdCBuPXt9LG89V3godGhpcy5kZWZhdWx0UGFyYW1zKTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgoZT0+e2NvbnN0IG49dFtlXTtudWxsIT1uJiYob1tlXT1uKX0pKSx0aGlzLnN0eWxlcy5zdHlsZXMuZm9yRWFjaCgodD0+e2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Y29uc3QgaT10O09iamVjdC5rZXlzKGkpLmZvckVhY2goKHQ9PntsZXQgYT1pW3RdO2EubGVuZ3RoPjEmJihhPXRPKGEsbyxlKSk7Y29uc3Qgcj10aGlzLm5vcm1hbGl6ZXIubm9ybWFsaXplUHJvcGVydHlOYW1lKHQsZSk7YT10aGlzLm5vcm1hbGl6ZXIubm9ybWFsaXplU3R5bGVWYWx1ZSh0LHIsYSxlKSxuW3JdPWF9KSl9fSkpLG59fWNsYXNzIExPe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLm5hbWU9dCx0aGlzLmFzdD1lLHRoaXMuX25vcm1hbGl6ZXI9bix0aGlzLnRyYW5zaXRpb25GYWN0b3JpZXM9W10sdGhpcy5zdGF0ZXM9e30sZS5zdGF0ZXMuZm9yRWFjaCgodD0+e3RoaXMuc3RhdGVzW3QubmFtZV09bmV3IEZPKHQuc3R5bGUsdC5vcHRpb25zJiZ0Lm9wdGlvbnMucGFyYW1zfHx7fSxuKX0pKSxCTyh0aGlzLnN0YXRlcywidHJ1ZSIsIjEiKSxCTyh0aGlzLnN0YXRlcywiZmFsc2UiLCIwIiksZS50cmFuc2l0aW9ucy5mb3JFYWNoKChlPT57dGhpcy50cmFuc2l0aW9uRmFjdG9yaWVzLnB1c2gobmV3IEhPKHQsZSx0aGlzLnN0YXRlcykpfSkpLHRoaXMuZmFsbGJhY2tUcmFuc2l0aW9uPShmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gbmV3IEhPKHQse3R5cGU6MSxhbmltYXRpb246e3R5cGU6MixzdGVwczpbXSxvcHRpb25zOm51bGx9LG1hdGNoZXJzOlsodCxlKT0+ITBdLG9wdGlvbnM6bnVsbCxxdWVyeUNvdW50OjAsZGVwQ291bnQ6MH0sZSl9KSh0LHRoaXMuc3RhdGVzKX1nZXQgY29udGFpbnNRdWVyaWVzKCl7cmV0dXJuIHRoaXMuYXN0LnF1ZXJ5Q291bnQ+MH1tYXRjaFRyYW5zaXRpb24odCxlLG4sbyl7cmV0dXJuIHRoaXMudHJhbnNpdGlvbkZhY3Rvcmllcy5maW5kKChpPT5pLm1hdGNoKHQsZSxuLG8pKSl8fG51bGx9bWF0Y2hTdHlsZXModCxlLG4pe3JldHVybiB0aGlzLmZhbGxiYWNrVHJhbnNpdGlvbi5idWlsZFN0eWxlcyh0LGUsbil9fWZ1bmN0aW9uIEJPKHQsZSxuKXt0Lmhhc093blByb3BlcnR5KGUpP3QuaGFzT3duUHJvcGVydHkobil8fCh0W25dPXRbZV0pOnQuaGFzT3duUHJvcGVydHkobikmJih0W2VdPXRbbl0pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBWTz1uZXcgTU87Y2xhc3Mgak97Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYm9keU5vZGU9dCx0aGlzLl9kcml2ZXI9ZSx0aGlzLl9ub3JtYWxpemVyPW4sdGhpcy5fYW5pbWF0aW9ucz17fSx0aGlzLl9wbGF5ZXJzQnlJZD17fSx0aGlzLnBsYXllcnM9W119cmVnaXN0ZXIodCxlKXtjb25zdCBuPVtdLG89Zk8odGhpcy5fZHJpdmVyLGUsbik7aWYobi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gYnVpbGQgdGhlIGFuaW1hdGlvbiBkdWUgdG8gdGhlIGZvbGxvd2luZyBlcnJvcnM6ICR7bi5qb2luKCJcbiIpfWApO3RoaXMuX2FuaW1hdGlvbnNbdF09b31fYnVpbGRQbGF5ZXIodCxlLG4pe2NvbnN0IG89dC5lbGVtZW50LGk9YngoMCx0aGlzLl9ub3JtYWxpemVyLDAsdC5rZXlmcmFtZXMsZSxuKTtyZXR1cm4gdGhpcy5fZHJpdmVyLmFuaW1hdGUobyxpLHQuZHVyYXRpb24sdC5kZWxheSx0LmVhc2luZyxbXSwhMCl9Y3JlYXRlKHQsZSxuPXt9KXtjb25zdCBvPVtdLGk9dGhpcy5fYW5pbWF0aW9uc1t0XTtsZXQgYTtjb25zdCByPW5ldyBNYXA7aWYoaT8oYT1PTyh0aGlzLl9kcml2ZXIsZSxpLEl4LEh4LHt9LHt9LG4sVk8sbyksYS5mb3JFYWNoKCh0PT57Y29uc3QgZT1NeChyLHQuZWxlbWVudCx7fSk7dC5wb3N0U3R5bGVQcm9wcy5mb3JFYWNoKCh0PT5lW3RdPW51bGwpKX0pKSk6KG8ucHVzaCgiVGhlIHJlcXVlc3RlZCBhbmltYXRpb24gZG9lc24ndCBleGlzdCBvciBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZCIpLGE9W10pLG8ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGNyZWF0ZSB0aGUgYW5pbWF0aW9uIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yczogJHtvLmpvaW4oIlxuIil9YCk7ci5mb3JFYWNoKCgodCxlKT0+e09iamVjdC5rZXlzKHQpLmZvckVhY2goKG49Pnt0W25dPXRoaXMuX2RyaXZlci5jb21wdXRlU3R5bGUoZSxuLGV4KX0pKX0pKTtjb25zdCBzPWh4KGEubWFwKCh0PT57Y29uc3QgZT1yLmdldCh0LmVsZW1lbnQpO3JldHVybiB0aGlzLl9idWlsZFBsYXllcih0LHt9LGUpfSkpKTtyZXR1cm4gdGhpcy5fcGxheWVyc0J5SWRbdF09cyxzLm9uRGVzdHJveSgoKCk9PnRoaXMuZGVzdHJveSh0KSkpLHRoaXMucGxheWVycy5wdXNoKHMpLHN9ZGVzdHJveSh0KXtjb25zdCBlPXRoaXMuX2dldFBsYXllcih0KTtlLmRlc3Ryb3koKSxkZWxldGUgdGhpcy5fcGxheWVyc0J5SWRbdF07Y29uc3Qgbj10aGlzLnBsYXllcnMuaW5kZXhPZihlKTtuPj0wJiZ0aGlzLnBsYXllcnMuc3BsaWNlKG4sMSl9X2dldFBsYXllcih0KXtjb25zdCBlPXRoaXMuX3BsYXllcnNCeUlkW3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGZpbmQgdGhlIHRpbWVsaW5lIHBsYXllciByZWZlcmVuY2VkIGJ5ICR7dH1gKTtyZXR1cm4gZX1saXN0ZW4odCxlLG4sbyl7Y29uc3QgaT1DeChlLCIiLCIiLCIiKTtyZXR1cm4geXgodGhpcy5fZ2V0UGxheWVyKHQpLG4saSxvKSwoKT0+e319Y29tbWFuZCh0LGUsbixvKXtpZigicmVnaXN0ZXIiPT1uKXJldHVybiB2b2lkIHRoaXMucmVnaXN0ZXIodCxvWzBdKTtpZigiY3JlYXRlIj09bilyZXR1cm4gdm9pZCB0aGlzLmNyZWF0ZSh0LGUsb1swXXx8e30pO2NvbnN0IGk9dGhpcy5fZ2V0UGxheWVyKHQpO3N3aXRjaChuKXtjYXNlInBsYXkiOmkucGxheSgpO2JyZWFrO2Nhc2UicGF1c2UiOmkucGF1c2UoKTticmVhaztjYXNlInJlc2V0IjppLnJlc2V0KCk7YnJlYWs7Y2FzZSJyZXN0YXJ0IjppLnJlc3RhcnQoKTticmVhaztjYXNlImZpbmlzaCI6aS5maW5pc2goKTticmVhaztjYXNlImluaXQiOmkuaW5pdCgpO2JyZWFrO2Nhc2Uic2V0UG9zaXRpb24iOmkuc2V0UG9zaXRpb24ocGFyc2VGbG9hdChvWzBdKSk7YnJlYWs7Y2FzZSJkZXN0cm95Ijp0aGlzLmRlc3Ryb3kodCl9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgVU89Im5nLWFuaW1hdGUtcXVldWVkIixHTz0ibmctYW5pbWF0ZS1kaXNhYmxlZCIsV089Ii5uZy1hbmltYXRlLWRpc2FibGVkIixZTz1bXSxxTz17bmFtZXNwYWNlSWQ6IiIsc2V0Rm9yUmVtb3ZhbDohMSxzZXRGb3JNb3ZlOiExLGhhc0FuaW1hdGlvbjohMSxyZW1vdmVkQmVmb3JlUXVlcmllZDohMX0sWk89e25hbWVzcGFjZUlkOiIiLHNldEZvck1vdmU6ITEsc2V0Rm9yUmVtb3ZhbDohMSxoYXNBbmltYXRpb246ITEscmVtb3ZlZEJlZm9yZVF1ZXJpZWQ6ITB9O2NsYXNzIFhPe2NvbnN0cnVjdG9yKHQsZT0iIil7dGhpcy5uYW1lc3BhY2VJZD1lO2NvbnN0IG49dCYmdC5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKTtpZih0aGlzLnZhbHVlPShmdW5jdGlvbiBvKHQpe3JldHVybiBudWxsIT10P3Q6bnVsbH0pKG4/dC52YWx1ZTp0KSxuKXtjb25zdCBlPVd4KHQpO2RlbGV0ZSBlLnZhbHVlLHRoaXMub3B0aW9ucz1lfWVsc2UgdGhpcy5vcHRpb25zPXt9O3RoaXMub3B0aW9ucy5wYXJhbXN8fCh0aGlzLm9wdGlvbnMucGFyYW1zPXt9KX1nZXQgcGFyYW1zKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5wYXJhbXN9YWJzb3JiT3B0aW9ucyh0KXtjb25zdCBlPXQucGFyYW1zO2lmKGUpe2NvbnN0IHQ9dGhpcy5vcHRpb25zLnBhcmFtcztPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChuPT57bnVsbD09dFtuXSYmKHRbbl09ZVtuXSl9KSl9fX1jb25zdCBLTz0idm9pZCIsSk89bmV3IFhPKEtPKTtjbGFzcyBRT3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5pZD10LHRoaXMuaG9zdEVsZW1lbnQ9ZSx0aGlzLl9lbmdpbmU9bix0aGlzLnBsYXllcnM9W10sdGhpcy5fdHJpZ2dlcnM9e30sdGhpcy5fcXVldWU9W10sdGhpcy5fZWxlbWVudExpc3RlbmVycz1uZXcgTWFwLHRoaXMuX2hvc3RDbGFzc05hbWU9Im5nLXRucy0iK3QsYVAoZSx0aGlzLl9ob3N0Q2xhc3NOYW1lKX1saXN0ZW4odCxlLG4sbyl7aWYoIXRoaXMuX3RyaWdnZXJzLmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGxpc3RlbiBvbiB0aGUgYW5pbWF0aW9uIHRyaWdnZXIgZXZlbnQgIiR7bn0iIGJlY2F1c2UgdGhlIGFuaW1hdGlvbiB0cmlnZ2VyICIke2V9IiBkb2Vzbid0IGV4aXN0IWApO2lmKG51bGw9PW58fDA9PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGxpc3RlbiBvbiB0aGUgYW5pbWF0aW9uIHRyaWdnZXIgIiR7ZX0iIGJlY2F1c2UgdGhlIHByb3ZpZGVkIGV2ZW50IGlzIHVuZGVmaW5lZCFgKTtpZighKGZ1bmN0aW9uIGkodCl7cmV0dXJuInN0YXJ0Ij09dHx8ImRvbmUiPT10fSkobikpdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvdmlkZWQgYW5pbWF0aW9uIHRyaWdnZXIgZXZlbnQgIiR7bn0iIGZvciB0aGUgYW5pbWF0aW9uIHRyaWdnZXIgIiR7ZX0iIGlzIG5vdCBzdXBwb3J0ZWQhYCk7Y29uc3QgYT1NeCh0aGlzLl9lbGVtZW50TGlzdGVuZXJzLHQsW10pLHI9e25hbWU6ZSxwaGFzZTpuLGNhbGxiYWNrOm99O2EucHVzaChyKTtjb25zdCBzPU14KHRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQsdCx7fSk7cmV0dXJuIHMuaGFzT3duUHJvcGVydHkoZSl8fChhUCh0LEZ4KSxhUCh0LCJuZy10cmlnZ2VyLSIrZSksc1tlXT1KTyksKCk9Pnt0aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKCk9Pntjb25zdCB0PWEuaW5kZXhPZihyKTt0Pj0wJiZhLnNwbGljZSh0LDEpLHRoaXMuX3RyaWdnZXJzW2VdfHxkZWxldGUgc1tlXX0pKX19cmVnaXN0ZXIodCxlKXtyZXR1cm4hdGhpcy5fdHJpZ2dlcnNbdF0mJih0aGlzLl90cmlnZ2Vyc1t0XT1lLCEwKX1fZ2V0VHJpZ2dlcih0KXtjb25zdCBlPXRoaXMuX3RyaWdnZXJzW3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3ZpZGVkIGFuaW1hdGlvbiB0cmlnZ2VyICIke3R9IiBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZCFgKTtyZXR1cm4gZX10cmlnZ2VyKHQsZSxuLG89ITApe2NvbnN0IGk9dGhpcy5fZ2V0VHJpZ2dlcihlKSxhPW5ldyB0UCh0aGlzLmlkLGUsdCk7bGV0IHI9dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5nZXQodCk7cnx8KGFQKHQsRngpLGFQKHQsIm5nLXRyaWdnZXItIitlKSx0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LnNldCh0LHI9e30pKTtsZXQgcz1yW2VdO2NvbnN0IGw9bmV3IFhPKG4sdGhpcy5pZCk7aWYoIShuJiZuLmhhc093blByb3BlcnR5KCJ2YWx1ZSIpKSYmcyYmbC5hYnNvcmJPcHRpb25zKHMub3B0aW9ucykscltlXT1sLHN8fChzPUpPKSxsLnZhbHVlIT09S08mJnMudmFsdWU9PT1sLnZhbHVlKXtpZighKGZ1bmN0aW9uIGUodCxuKXtjb25zdCBvPU9iamVjdC5rZXlzKHQpLGk9T2JqZWN0LmtleXMobik7aWYoby5sZW5ndGghPWkubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgZT0wO2U8by5sZW5ndGg7ZSsrKXtjb25zdCBpPW9bZV07aWYoIW4uaGFzT3duUHJvcGVydHkoaSl8fHRbaV0hPT1uW2ldKXJldHVybiExfXJldHVybiEwfSkocy5wYXJhbXMsbC5wYXJhbXMpKXtjb25zdCBlPVtdLG49aS5tYXRjaFN0eWxlcyhzLnZhbHVlLHMucGFyYW1zLGUpLG89aS5tYXRjaFN0eWxlcyhsLnZhbHVlLGwucGFyYW1zLGUpO2UubGVuZ3RoP3RoaXMuX2VuZ2luZS5yZXBvcnRFcnJvcihlKTp0aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKCk9PntLeCh0LG4pLFh4KHQsbyl9KSl9cmV0dXJufWNvbnN0IGM9TXgodGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQsdCxbXSk7Yy5mb3JFYWNoKCh0PT57dC5uYW1lc3BhY2VJZD09dGhpcy5pZCYmdC50cmlnZ2VyTmFtZT09ZSYmdC5xdWV1ZWQmJnQuZGVzdHJveSgpfSkpO2xldCBkPWkubWF0Y2hUcmFuc2l0aW9uKHMudmFsdWUsbC52YWx1ZSx0LGwucGFyYW1zKSxwPSExO2lmKCFkKXtpZighbylyZXR1cm47ZD1pLmZhbGxiYWNrVHJhbnNpdGlvbixwPSEwfXJldHVybiB0aGlzLl9lbmdpbmUudG90YWxRdWV1ZWRQbGF5ZXJzKyssdGhpcy5fcXVldWUucHVzaCh7ZWxlbWVudDp0LHRyaWdnZXJOYW1lOmUsdHJhbnNpdGlvbjpkLGZyb21TdGF0ZTpzLHRvU3RhdGU6bCxwbGF5ZXI6YSxpc0ZhbGxiYWNrVHJhbnNpdGlvbjpwfSkscHx8KGFQKHQsVU8pLGEub25TdGFydCgoKCk9PntyUCh0LFVPKX0pKSksYS5vbkRvbmUoKCgpPT57bGV0IGU9dGhpcy5wbGF5ZXJzLmluZGV4T2YoYSk7ZT49MCYmdGhpcy5wbGF5ZXJzLnNwbGljZShlLDEpO2NvbnN0IG49dGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQuZ2V0KHQpO2lmKG4pe2xldCB0PW4uaW5kZXhPZihhKTt0Pj0wJiZuLnNwbGljZSh0LDEpfX0pKSx0aGlzLnBsYXllcnMucHVzaChhKSxjLnB1c2goYSksYX1kZXJlZ2lzdGVyKHQpe2RlbGV0ZSB0aGlzLl90cmlnZ2Vyc1t0XSx0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmZvckVhY2goKChlLG4pPT57ZGVsZXRlIGVbdF19KSksdGhpcy5fZWxlbWVudExpc3RlbmVycy5mb3JFYWNoKCgoZSxuKT0+e3RoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuc2V0KG4sZS5maWx0ZXIoKGU9PmUubmFtZSE9dCkpKX0pKX1jbGVhckVsZW1lbnRDYWNoZSh0KXt0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmRlbGV0ZSh0KSx0aGlzLl9lbGVtZW50TGlzdGVuZXJzLmRlbGV0ZSh0KTtjb25zdCBlPXRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmdldCh0KTtlJiYoZS5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmRlbGV0ZSh0KSl9X3NpZ25hbFJlbW92YWxGb3JJbm5lclRyaWdnZXJzKHQsZSl7Y29uc3Qgbj10aGlzLl9lbmdpbmUuZHJpdmVyLnF1ZXJ5KHQsTHgsITApO24uZm9yRWFjaCgodD0+e2lmKHQuX19uZ19yZW1vdmVkKXJldHVybjtjb25zdCBuPXRoaXMuX2VuZ2luZS5mZXRjaE5hbWVzcGFjZXNCeUVsZW1lbnQodCk7bi5zaXplP24uZm9yRWFjaCgobj0+bi50cmlnZ2VyTGVhdmVBbmltYXRpb24odCxlLCExLCEwKSkpOnRoaXMuY2xlYXJFbGVtZW50Q2FjaGUodCl9KSksdGhpcy5fZW5naW5lLmFmdGVyRmx1c2hBbmltYXRpb25zRG9uZSgoKCk9Pm4uZm9yRWFjaCgodD0+dGhpcy5jbGVhckVsZW1lbnRDYWNoZSh0KSkpKSl9dHJpZ2dlckxlYXZlQW5pbWF0aW9uKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5nZXQodCk7aWYoaSl7Y29uc3QgYT1bXTtpZihPYmplY3Qua2V5cyhpKS5mb3JFYWNoKChlPT57aWYodGhpcy5fdHJpZ2dlcnNbZV0pe2NvbnN0IG49dGhpcy50cmlnZ2VyKHQsZSxLTyxvKTtuJiZhLnB1c2gobil9fSkpLGEubGVuZ3RoKXJldHVybiB0aGlzLl9lbmdpbmUubWFya0VsZW1lbnRBc1JlbW92ZWQodGhpcy5pZCx0LCEwLGUpLG4mJmh4KGEpLm9uRG9uZSgoKCk9PnRoaXMuX2VuZ2luZS5wcm9jZXNzTGVhdmVOb2RlKHQpKSksITB9cmV0dXJuITF9cHJlcGFyZUxlYXZlQW5pbWF0aW9uTGlzdGVuZXJzKHQpe2NvbnN0IGU9dGhpcy5fZWxlbWVudExpc3RlbmVycy5nZXQodCksbj10aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmdldCh0KTtpZihlJiZuKXtjb25zdCBvPW5ldyBTZXQ7ZS5mb3JFYWNoKChlPT57Y29uc3QgaT1lLm5hbWU7aWYoby5oYXMoaSkpcmV0dXJuO28uYWRkKGkpO2NvbnN0IGE9dGhpcy5fdHJpZ2dlcnNbaV0uZmFsbGJhY2tUcmFuc2l0aW9uLHI9bltpXXx8Sk8scz1uZXcgWE8oS08pLGw9bmV3IHRQKHRoaXMuaWQsaSx0KTt0aGlzLl9lbmdpbmUudG90YWxRdWV1ZWRQbGF5ZXJzKyssdGhpcy5fcXVldWUucHVzaCh7ZWxlbWVudDp0LHRyaWdnZXJOYW1lOmksdHJhbnNpdGlvbjphLGZyb21TdGF0ZTpyLHRvU3RhdGU6cyxwbGF5ZXI6bCxpc0ZhbGxiYWNrVHJhbnNpdGlvbjohMH0pfSkpfX1yZW1vdmVOb2RlKHQsZSl7Y29uc3Qgbj10aGlzLl9lbmdpbmU7aWYodC5jaGlsZEVsZW1lbnRDb3VudCYmdGhpcy5fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dlcnModCxlKSx0aGlzLnRyaWdnZXJMZWF2ZUFuaW1hdGlvbih0LGUsITApKXJldHVybjtsZXQgbz0hMTtpZihuLnRvdGFsQW5pbWF0aW9ucyl7Y29uc3QgZT1uLnBsYXllcnMubGVuZ3RoP24ucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuZ2V0KHQpOltdO2lmKGUmJmUubGVuZ3RoKW89ITA7ZWxzZXtsZXQgZT10O2Zvcig7ZT1lLnBhcmVudE5vZGU7KWlmKG4uc3RhdGVzQnlFbGVtZW50LmdldChlKSl7bz0hMDticmVha319fWlmKHRoaXMucHJlcGFyZUxlYXZlQW5pbWF0aW9uTGlzdGVuZXJzKHQpLG8pbi5tYXJrRWxlbWVudEFzUmVtb3ZlZCh0aGlzLmlkLHQsITEsZSk7ZWxzZXtjb25zdCBvPXQuX19uZ19yZW1vdmVkO28mJm8hPT1xT3x8KG4uYWZ0ZXJGbHVzaCgoKCk9PnRoaXMuY2xlYXJFbGVtZW50Q2FjaGUodCkpKSxuLmRlc3Ryb3lJbm5lckFuaW1hdGlvbnModCksbi5fb25SZW1vdmFsQ29tcGxldGUodCxlKSl9fWluc2VydE5vZGUodCxlKXthUCh0LHRoaXMuX2hvc3RDbGFzc05hbWUpfWRyYWluUXVldWVkVHJhbnNpdGlvbnModCl7Y29uc3QgZT1bXTtyZXR1cm4gdGhpcy5fcXVldWUuZm9yRWFjaCgobj0+e2NvbnN0IG89bi5wbGF5ZXI7aWYoby5kZXN0cm95ZWQpcmV0dXJuO2NvbnN0IGk9bi5lbGVtZW50LGE9dGhpcy5fZWxlbWVudExpc3RlbmVycy5nZXQoaSk7YSYmYS5mb3JFYWNoKChlPT57aWYoZS5uYW1lPT1uLnRyaWdnZXJOYW1lKXtjb25zdCBvPUN4KGksbi50cmlnZ2VyTmFtZSxuLmZyb21TdGF0ZS52YWx1ZSxuLnRvU3RhdGUudmFsdWUpO28uX2RhdGE9dCx5eChuLnBsYXllcixlLnBoYXNlLG8sZS5jYWxsYmFjayl9fSkpLG8ubWFya2VkRm9yRGVzdHJveT90aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKCk9PntvLmRlc3Ryb3koKX0pKTplLnB1c2gobil9KSksdGhpcy5fcXVldWU9W10sZS5zb3J0KCgodCxlKT0+e2NvbnN0IG49dC50cmFuc2l0aW9uLmFzdC5kZXBDb3VudCxvPWUudHJhbnNpdGlvbi5hc3QuZGVwQ291bnQ7cmV0dXJuIDA9PW58fDA9PW8/bi1vOnRoaXMuX2VuZ2luZS5kcml2ZXIuY29udGFpbnNFbGVtZW50KHQuZWxlbWVudCxlLmVsZW1lbnQpPzE6LTF9KSl9ZGVzdHJveSh0KXt0aGlzLnBsYXllcnMuZm9yRWFjaCgodD0+dC5kZXN0cm95KCkpKSx0aGlzLl9zaWduYWxSZW1vdmFsRm9ySW5uZXJUcmlnZ2Vycyh0aGlzLmhvc3RFbGVtZW50LHQpfWVsZW1lbnRDb250YWluc0RhdGEodCl7bGV0IGU9ITE7cmV0dXJuIHRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuaGFzKHQpJiYoZT0hMCksZT0hIXRoaXMuX3F1ZXVlLmZpbmQoKGU9PmUuZWxlbWVudD09PXQpKXx8ZSxlfX1jbGFzcyAkT3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5ib2R5Tm9kZT10LHRoaXMuZHJpdmVyPWUsdGhpcy5fbm9ybWFsaXplcj1uLHRoaXMucGxheWVycz1bXSx0aGlzLm5ld0hvc3RFbGVtZW50cz1uZXcgTWFwLHRoaXMucGxheWVyc0J5RWxlbWVudD1uZXcgTWFwLHRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQ9bmV3IE1hcCx0aGlzLnN0YXRlc0J5RWxlbWVudD1uZXcgTWFwLHRoaXMuZGlzYWJsZWROb2Rlcz1uZXcgU2V0LHRoaXMudG90YWxBbmltYXRpb25zPTAsdGhpcy50b3RhbFF1ZXVlZFBsYXllcnM9MCx0aGlzLl9uYW1lc3BhY2VMb29rdXA9e30sdGhpcy5fbmFtZXNwYWNlTGlzdD1bXSx0aGlzLl9mbHVzaEZucz1bXSx0aGlzLl93aGVuUXVpZXRGbnM9W10sdGhpcy5uYW1lc3BhY2VzQnlIb3N0RWxlbWVudD1uZXcgTWFwLHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cz1bXSx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHM9W10sdGhpcy5vblJlbW92YWxDb21wbGV0ZT0odCxlKT0+e319X29uUmVtb3ZhbENvbXBsZXRlKHQsZSl7dGhpcy5vblJlbW92YWxDb21wbGV0ZSh0LGUpfWdldCBxdWV1ZWRQbGF5ZXJzKCl7Y29uc3QgdD1bXTtyZXR1cm4gdGhpcy5fbmFtZXNwYWNlTGlzdC5mb3JFYWNoKChlPT57ZS5wbGF5ZXJzLmZvckVhY2goKGU9PntlLnF1ZXVlZCYmdC5wdXNoKGUpfSkpfSkpLHR9Y3JlYXRlTmFtZXNwYWNlKHQsZSl7Y29uc3Qgbj1uZXcgUU8odCxlLHRoaXMpO3JldHVybiB0aGlzLmJvZHlOb2RlJiZ0aGlzLmRyaXZlci5jb250YWluc0VsZW1lbnQodGhpcy5ib2R5Tm9kZSxlKT90aGlzLl9iYWxhbmNlTmFtZXNwYWNlTGlzdChuLGUpOih0aGlzLm5ld0hvc3RFbGVtZW50cy5zZXQoZSxuKSx0aGlzLmNvbGxlY3RFbnRlckVsZW1lbnQoZSkpLHRoaXMuX25hbWVzcGFjZUxvb2t1cFt0XT1ufV9iYWxhbmNlTmFtZXNwYWNlTGlzdCh0LGUpe2NvbnN0IG49dGhpcy5fbmFtZXNwYWNlTGlzdC5sZW5ndGgtMTtpZihuPj0wKXtsZXQgbz0hMTtmb3IobGV0IGk9bjtpPj0wO2ktLSlpZih0aGlzLmRyaXZlci5jb250YWluc0VsZW1lbnQodGhpcy5fbmFtZXNwYWNlTGlzdFtpXS5ob3N0RWxlbWVudCxlKSl7dGhpcy5fbmFtZXNwYWNlTGlzdC5zcGxpY2UoaSsxLDAsdCksbz0hMDticmVha31vfHx0aGlzLl9uYW1lc3BhY2VMaXN0LnNwbGljZSgwLDAsdCl9ZWxzZSB0aGlzLl9uYW1lc3BhY2VMaXN0LnB1c2godCk7cmV0dXJuIHRoaXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQuc2V0KGUsdCksdH1yZWdpc3Rlcih0LGUpe2xldCBuPXRoaXMuX25hbWVzcGFjZUxvb2t1cFt0XTtyZXR1cm4gbnx8KG49dGhpcy5jcmVhdGVOYW1lc3BhY2UodCxlKSksbn1yZWdpc3RlclRyaWdnZXIodCxlLG4pe2xldCBvPXRoaXMuX25hbWVzcGFjZUxvb2t1cFt0XTtvJiZvLnJlZ2lzdGVyKGUsbikmJnRoaXMudG90YWxBbmltYXRpb25zKyt9ZGVzdHJveSh0LGUpe2lmKCF0KXJldHVybjtjb25zdCBuPXRoaXMuX2ZldGNoTmFtZXNwYWNlKHQpO3RoaXMuYWZ0ZXJGbHVzaCgoKCk9Pnt0aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50LmRlbGV0ZShuLmhvc3RFbGVtZW50KSxkZWxldGUgdGhpcy5fbmFtZXNwYWNlTG9va3VwW3RdO2NvbnN0IGU9dGhpcy5fbmFtZXNwYWNlTGlzdC5pbmRleE9mKG4pO2U+PTAmJnRoaXMuX25hbWVzcGFjZUxpc3Quc3BsaWNlKGUsMSl9KSksdGhpcy5hZnRlckZsdXNoQW5pbWF0aW9uc0RvbmUoKCgpPT5uLmRlc3Ryb3koZSkpKX1fZmV0Y2hOYW1lc3BhY2UodCl7cmV0dXJuIHRoaXMuX25hbWVzcGFjZUxvb2t1cFt0XX1mZXRjaE5hbWVzcGFjZXNCeUVsZW1lbnQodCl7Y29uc3QgZT1uZXcgU2V0LG49dGhpcy5zdGF0ZXNCeUVsZW1lbnQuZ2V0KHQpO2lmKG4pe2NvbnN0IHQ9T2JqZWN0LmtleXMobik7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspe2NvbnN0IGk9blt0W29dXS5uYW1lc3BhY2VJZDtpZihpKXtjb25zdCB0PXRoaXMuX2ZldGNoTmFtZXNwYWNlKGkpO3QmJmUuYWRkKHQpfX19cmV0dXJuIGV9dHJpZ2dlcih0LGUsbixvKXtpZihlUChlKSl7Y29uc3QgaT10aGlzLl9mZXRjaE5hbWVzcGFjZSh0KTtpZihpKXJldHVybiBpLnRyaWdnZXIoZSxuLG8pLCEwfXJldHVybiExfWluc2VydE5vZGUodCxlLG4sbyl7aWYoIWVQKGUpKXJldHVybjtjb25zdCBpPWUuX19uZ19yZW1vdmVkO2lmKGkmJmkuc2V0Rm9yUmVtb3ZhbCl7aS5zZXRGb3JSZW1vdmFsPSExLGkuc2V0Rm9yTW92ZT0hMDtjb25zdCB0PXRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5pbmRleE9mKGUpO3Q+PTAmJnRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5zcGxpY2UodCwxKX1pZih0KXtjb25zdCBvPXRoaXMuX2ZldGNoTmFtZXNwYWNlKHQpO28mJm8uaW5zZXJ0Tm9kZShlLG4pfW8mJnRoaXMuY29sbGVjdEVudGVyRWxlbWVudChlKX1jb2xsZWN0RW50ZXJFbGVtZW50KHQpe3RoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5wdXNoKHQpfW1hcmtFbGVtZW50QXNEaXNhYmxlZCh0LGUpe2U/dGhpcy5kaXNhYmxlZE5vZGVzLmhhcyh0KXx8KHRoaXMuZGlzYWJsZWROb2Rlcy5hZGQodCksYVAodCxHTykpOnRoaXMuZGlzYWJsZWROb2Rlcy5oYXModCkmJih0aGlzLmRpc2FibGVkTm9kZXMuZGVsZXRlKHQpLHJQKHQsR08pKX1yZW1vdmVOb2RlKHQsZSxuLG8pe2lmKGVQKGUpKXtjb25zdCBpPXQ/dGhpcy5fZmV0Y2hOYW1lc3BhY2UodCk6bnVsbDtpZihpP2kucmVtb3ZlTm9kZShlLG8pOnRoaXMubWFya0VsZW1lbnRBc1JlbW92ZWQodCxlLCExLG8pLG4pe2NvbnN0IG49dGhpcy5uYW1lc3BhY2VzQnlIb3N0RWxlbWVudC5nZXQoZSk7biYmbi5pZCE9PXQmJm4ucmVtb3ZlTm9kZShlLG8pfX1lbHNlIHRoaXMuX29uUmVtb3ZhbENvbXBsZXRlKGUsbyl9bWFya0VsZW1lbnRBc1JlbW92ZWQodCxlLG4sbyl7dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLnB1c2goZSksZS5fX25nX3JlbW92ZWQ9e25hbWVzcGFjZUlkOnQsc2V0Rm9yUmVtb3ZhbDpvLGhhc0FuaW1hdGlvbjpuLHJlbW92ZWRCZWZvcmVRdWVyaWVkOiExfX1saXN0ZW4odCxlLG4sbyxpKXtyZXR1cm4gZVAoZSk/dGhpcy5fZmV0Y2hOYW1lc3BhY2UodCkubGlzdGVuKGUsbixvLGkpOigpPT57fX1fYnVpbGRJbnN0cnVjdGlvbih0LGUsbixvLGkpe3JldHVybiB0LnRyYW5zaXRpb24uYnVpbGQodGhpcy5kcml2ZXIsdC5lbGVtZW50LHQuZnJvbVN0YXRlLnZhbHVlLHQudG9TdGF0ZS52YWx1ZSxuLG8sdC5mcm9tU3RhdGUub3B0aW9ucyx0LnRvU3RhdGUub3B0aW9ucyxlLGkpfWRlc3Ryb3lJbm5lckFuaW1hdGlvbnModCl7bGV0IGU9dGhpcy5kcml2ZXIucXVlcnkodCxMeCwhMCk7ZS5mb3JFYWNoKCh0PT50aGlzLmRlc3Ryb3lBY3RpdmVBbmltYXRpb25zRm9yRWxlbWVudCh0KSkpLDAhPXRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuc2l6ZSYmKGU9dGhpcy5kcml2ZXIucXVlcnkodCxWeCwhMCksZS5mb3JFYWNoKCh0PT50aGlzLmZpbmlzaEFjdGl2ZVF1ZXJpZWRBbmltYXRpb25PbkVsZW1lbnQodCkpKSl9ZGVzdHJveUFjdGl2ZUFuaW1hdGlvbnNGb3JFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldCh0KTtlJiZlLmZvckVhY2goKHQ9Pnt0LnF1ZXVlZD90Lm1hcmtlZEZvckRlc3Ryb3k9ITA6dC5kZXN0cm95KCl9KSl9ZmluaXNoQWN0aXZlUXVlcmllZEFuaW1hdGlvbk9uRWxlbWVudCh0KXtjb25zdCBlPXRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuZ2V0KHQpO2UmJmUuZm9yRWFjaCgodD0+dC5maW5pc2goKSkpfXdoZW5SZW5kZXJpbmdEb25lKCl7cmV0dXJuIG5ldyBQcm9taXNlKCh0PT57aWYodGhpcy5wbGF5ZXJzLmxlbmd0aClyZXR1cm4gaHgodGhpcy5wbGF5ZXJzKS5vbkRvbmUoKCgpPT50KCkpKTt0KCl9KSl9cHJvY2Vzc0xlYXZlTm9kZSh0KXtjb25zdCBlPXQuX19uZ19yZW1vdmVkO2lmKGUmJmUuc2V0Rm9yUmVtb3ZhbCl7aWYodC5fX25nX3JlbW92ZWQ9cU8sZS5uYW1lc3BhY2VJZCl7dGhpcy5kZXN0cm95SW5uZXJBbmltYXRpb25zKHQpO2NvbnN0IG49dGhpcy5fZmV0Y2hOYW1lc3BhY2UoZS5uYW1lc3BhY2VJZCk7biYmbi5jbGVhckVsZW1lbnRDYWNoZSh0KX10aGlzLl9vblJlbW92YWxDb21wbGV0ZSh0LGUuc2V0Rm9yUmVtb3ZhbCl9dGhpcy5kcml2ZXIubWF0Y2hlc0VsZW1lbnQodCxXTykmJnRoaXMubWFya0VsZW1lbnRBc0Rpc2FibGVkKHQsITEpLHRoaXMuZHJpdmVyLnF1ZXJ5KHQsV08sITApLmZvckVhY2goKHQ9Pnt0aGlzLm1hcmtFbGVtZW50QXNEaXNhYmxlZCh0LCExKX0pKX1mbHVzaCh0PS0xKXtsZXQgZT1bXTtpZih0aGlzLm5ld0hvc3RFbGVtZW50cy5zaXplJiYodGhpcy5uZXdIb3N0RWxlbWVudHMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX2JhbGFuY2VOYW1lc3BhY2VMaXN0KHQsZSkpKSx0aGlzLm5ld0hvc3RFbGVtZW50cy5jbGVhcigpKSx0aGlzLnRvdGFsQW5pbWF0aW9ucyYmdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aClmb3IobGV0IHQ9MDt0PHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5sZW5ndGg7dCsrKWFQKHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50c1t0XSwibmctc3Rhci1pbnNlcnRlZCIpO2lmKHRoaXMuX25hbWVzcGFjZUxpc3QubGVuZ3RoJiYodGhpcy50b3RhbFF1ZXVlZFBsYXllcnN8fHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5sZW5ndGgpKXtjb25zdCBuPVtdO3RyeXtlPXRoaXMuX2ZsdXNoQW5pbWF0aW9ucyhuLHQpfWZpbmFsbHl7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspblt0XSgpfX1lbHNlIGZvcihsZXQgdD0wO3Q8dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aDt0KyspdGhpcy5wcm9jZXNzTGVhdmVOb2RlKHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50c1t0XSk7aWYodGhpcy50b3RhbFF1ZXVlZFBsYXllcnM9MCx0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMubGVuZ3RoPTAsdGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aD0wLHRoaXMuX2ZsdXNoRm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX2ZsdXNoRm5zPVtdLHRoaXMuX3doZW5RdWlldEZucy5sZW5ndGgpe2NvbnN0IHQ9dGhpcy5fd2hlblF1aWV0Rm5zO3RoaXMuX3doZW5RdWlldEZucz1bXSxlLmxlbmd0aD9oeChlKS5vbkRvbmUoKCgpPT57dC5mb3JFYWNoKCh0PT50KCkpKX0pKTp0LmZvckVhY2goKHQ9PnQoKSkpfX1yZXBvcnRFcnJvcih0KXt0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwcm9jZXNzIGFuaW1hdGlvbnMgZHVlIHRvIHRoZSBmb2xsb3dpbmcgZmFpbGVkIHRyaWdnZXIgdHJhbnNpdGlvbnNcbiAke3Quam9pbigiXG4iKX1gKX1fZmx1c2hBbmltYXRpb25zKHQsZSl7Y29uc3Qgbj1uZXcgTU8sbz1bXSxpPW5ldyBNYXAsYT1bXSxyPW5ldyBNYXAscz1uZXcgTWFwLGw9bmV3IE1hcCxjPW5ldyBTZXQ7dGhpcy5kaXNhYmxlZE5vZGVzLmZvckVhY2goKHQ9PntjLmFkZCh0KTtjb25zdCBlPXRoaXMuZHJpdmVyLnF1ZXJ5KHQsIi5uZy1hbmltYXRlLXF1ZXVlZCIsITApO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWMuYWRkKGVbdF0pfSkpO2NvbnN0IGQ9dGhpcy5ib2R5Tm9kZSxwPUFycmF5LmZyb20odGhpcy5zdGF0ZXNCeUVsZW1lbnQua2V5cygpKSxtPWlQKHAsdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzKSx1PW5ldyBNYXA7bGV0IGY9MDttLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj1JeCtmKys7dS5zZXQoZSxuKSx0LmZvckVhY2goKHQ9PmFQKHQsbikpKX0pKTtjb25zdCBnPVtdLGg9bmV3IFNldCxiPW5ldyBTZXQ7Zm9yKGxldCB0PTA7dDx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMubGVuZ3RoO3QrKyl7Y29uc3QgZT10aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHNbdF0sbj1lLl9fbmdfcmVtb3ZlZDtuJiZuLnNldEZvclJlbW92YWwmJihnLnB1c2goZSksaC5hZGQoZSksbi5oYXNBbmltYXRpb24/dGhpcy5kcml2ZXIucXVlcnkoZSwiLm5nLXN0YXItaW5zZXJ0ZWQiLCEwKS5mb3JFYWNoKCh0PT5oLmFkZCh0KSkpOmIuYWRkKGUpKX1jb25zdCB5PW5ldyBNYXAsXz1pUChwLEFycmF5LmZyb20oaCkpO18uZm9yRWFjaCgoKHQsZSk9Pntjb25zdCBuPUh4K2YrKzt5LnNldChlLG4pLHQuZm9yRWFjaCgodD0+YVAodCxuKSkpfSkpLHQucHVzaCgoKCk9PnttLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj11LmdldChlKTt0LmZvckVhY2goKHQ9PnJQKHQsbikpKX0pKSxfLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj15LmdldChlKTt0LmZvckVhY2goKHQ9PnJQKHQsbikpKX0pKSxnLmZvckVhY2goKHQ9Pnt0aGlzLnByb2Nlc3NMZWF2ZU5vZGUodCl9KSl9KSk7Y29uc3QgQz1bXSxNPVtdO2ZvcihsZXQgdD10aGlzLl9uYW1lc3BhY2VMaXN0Lmxlbmd0aC0xO3Q+PTA7dC0tKXRoaXMuX25hbWVzcGFjZUxpc3RbdF0uZHJhaW5RdWV1ZWRUcmFuc2l0aW9ucyhlKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10LnBsYXllcixpPXQuZWxlbWVudDtpZihDLnB1c2goZSksdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aCl7Y29uc3QgdD1pLl9fbmdfcmVtb3ZlZDtpZih0JiZ0LnNldEZvck1vdmUpcmV0dXJuIHZvaWQgZS5kZXN0cm95KCl9Y29uc3QgYz0hZHx8IXRoaXMuZHJpdmVyLmNvbnRhaW5zRWxlbWVudChkLGkpLHA9eS5nZXQoaSksbT11LmdldChpKSxmPXRoaXMuX2J1aWxkSW5zdHJ1Y3Rpb24odCxuLG0scCxjKTtpZihmLmVycm9ycyYmZi5lcnJvcnMubGVuZ3RoKU0ucHVzaChmKTtlbHNle2lmKGMpcmV0dXJuIGUub25TdGFydCgoKCk9Pkt4KGksZi5mcm9tU3R5bGVzKSkpLGUub25EZXN0cm95KCgoKT0+WHgoaSxmLnRvU3R5bGVzKSkpLHZvaWQgby5wdXNoKGUpO2lmKHQuaXNGYWxsYmFja1RyYW5zaXRpb24pcmV0dXJuIGUub25TdGFydCgoKCk9Pkt4KGksZi5mcm9tU3R5bGVzKSkpLGUub25EZXN0cm95KCgoKT0+WHgoaSxmLnRvU3R5bGVzKSkpLHZvaWQgby5wdXNoKGUpO2YudGltZWxpbmVzLmZvckVhY2goKHQ9PnQuc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWU9ITApKSxuLmFwcGVuZChpLGYudGltZWxpbmVzKSxhLnB1c2goe2luc3RydWN0aW9uOmYscGxheWVyOmUsZWxlbWVudDppfSksZi5xdWVyaWVkRWxlbWVudHMuZm9yRWFjaCgodD0+TXgocix0LFtdKS5wdXNoKGUpKSksZi5wcmVTdHlsZVByb3BzLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj1PYmplY3Qua2V5cyh0KTtpZihuLmxlbmd0aCl7bGV0IHQ9cy5nZXQoZSk7dHx8cy5zZXQoZSx0PW5ldyBTZXQpLG4uZm9yRWFjaCgoZT0+dC5hZGQoZSkpKX19KSksZi5wb3N0U3R5bGVQcm9wcy5mb3JFYWNoKCgodCxlKT0+e2NvbnN0IG49T2JqZWN0LmtleXModCk7bGV0IG89bC5nZXQoZSk7b3x8bC5zZXQoZSxvPW5ldyBTZXQpLG4uZm9yRWFjaCgodD0+by5hZGQodCkpKX0pKX19KSk7aWYoTS5sZW5ndGgpe2NvbnN0IHQ9W107TS5mb3JFYWNoKChlPT57dC5wdXNoKGBAJHtlLnRyaWdnZXJOYW1lfSBoYXMgZmFpbGVkIGR1ZSB0bzpcbmApLGUuZXJyb3JzLmZvckVhY2goKGU9PnQucHVzaChgLSAke2V9XG5gKSkpfSkpLEMuZm9yRWFjaCgodD0+dC5kZXN0cm95KCkpKSx0aGlzLnJlcG9ydEVycm9yKHQpfWNvbnN0IHY9bmV3IE1hcCx4PW5ldyBNYXA7YS5mb3JFYWNoKCh0PT57Y29uc3QgZT10LmVsZW1lbnQ7bi5oYXMoZSkmJih4LnNldChlLGUpLHRoaXMuX2JlZm9yZUFuaW1hdGlvbkJ1aWxkKHQucGxheWVyLm5hbWVzcGFjZUlkLHQuaW5zdHJ1Y3Rpb24sdikpfSkpLG8uZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5lbGVtZW50O3RoaXMuX2dldFByZXZpb3VzUGxheWVycyhlLCExLHQubmFtZXNwYWNlSWQsdC50cmlnZ2VyTmFtZSxudWxsKS5mb3JFYWNoKCh0PT57TXgodixlLFtdKS5wdXNoKHQpLHQuZGVzdHJveSgpfSkpfSkpO2NvbnN0IE89Zy5maWx0ZXIoKHQ9PmNQKHQscyxsKSkpLFA9bmV3IE1hcDtvUChQLHRoaXMuZHJpdmVyLGIsbCxleCkuZm9yRWFjaCgodD0+e2NQKHQscyxsKSYmTy5wdXNoKHQpfSkpO2NvbnN0IHc9bmV3IE1hcDttLmZvckVhY2goKCh0LGUpPT57b1Aodyx0aGlzLmRyaXZlcixuZXcgU2V0KHQpLHMsIiEiKX0pKSxPLmZvckVhY2goKHQ9Pntjb25zdCBlPVAuZ2V0KHQpLG49dy5nZXQodCk7UC5zZXQodCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSksbikpfSkpO2NvbnN0IGs9W10sUz1bXSxEPXt9O2EuZm9yRWFjaCgodD0+e2NvbnN0e2VsZW1lbnQ6ZSxwbGF5ZXI6YSxpbnN0cnVjdGlvbjpyfT10O2lmKG4uaGFzKGUpKXtpZihjLmhhcyhlKSlyZXR1cm4gYS5vbkRlc3Ryb3koKCgpPT5YeChlLHIudG9TdHlsZXMpKSksYS5kaXNhYmxlZD0hMCxhLm92ZXJyaWRlVG90YWxUaW1lKHIudG90YWxUaW1lKSx2b2lkIG8ucHVzaChhKTtsZXQgdD1EO2lmKHguc2l6ZT4xKXtsZXQgbj1lO2NvbnN0IG89W107Zm9yKDtuPW4ucGFyZW50Tm9kZTspe2NvbnN0IGU9eC5nZXQobik7aWYoZSl7dD1lO2JyZWFrfW8ucHVzaChuKX1vLmZvckVhY2goKGU9Pnguc2V0KGUsdCkpKX1jb25zdCBuPXRoaXMuX2J1aWxkQW5pbWF0aW9uKGEubmFtZXNwYWNlSWQscix2LGksdyxQKTtpZihhLnNldFJlYWxQbGF5ZXIobiksdD09PUQpay5wdXNoKGEpO2Vsc2V7Y29uc3QgZT10aGlzLnBsYXllcnNCeUVsZW1lbnQuZ2V0KHQpO2UmJmUubGVuZ3RoJiYoYS5wYXJlbnRQbGF5ZXI9aHgoZSkpLG8ucHVzaChhKX19ZWxzZSBLeChlLHIuZnJvbVN0eWxlcyksYS5vbkRlc3Ryb3koKCgpPT5YeChlLHIudG9TdHlsZXMpKSksUy5wdXNoKGEpLGMuaGFzKGUpJiZvLnB1c2goYSl9KSksUy5mb3JFYWNoKCh0PT57Y29uc3QgZT1pLmdldCh0LmVsZW1lbnQpO2lmKGUmJmUubGVuZ3RoKXtjb25zdCBuPWh4KGUpO3Quc2V0UmVhbFBsYXllcihuKX19KSksby5mb3JFYWNoKCh0PT57dC5wYXJlbnRQbGF5ZXI/dC5zeW5jUGxheWVyRXZlbnRzKHQucGFyZW50UGxheWVyKTp0LmRlc3Ryb3koKX0pKTtmb3IobGV0IHQ9MDt0PGcubGVuZ3RoO3QrKyl7Y29uc3QgZT1nW3RdLG49ZS5fX25nX3JlbW92ZWQ7aWYoclAoZSxIeCksbiYmbi5oYXNBbmltYXRpb24pY29udGludWU7bGV0IG89W107aWYoci5zaXplKXtsZXQgdD1yLmdldChlKTt0JiZ0Lmxlbmd0aCYmby5wdXNoKC4uLnQpO2xldCBuPXRoaXMuZHJpdmVyLnF1ZXJ5KGUsVngsITApO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtsZXQgZT1yLmdldChuW3RdKTtlJiZlLmxlbmd0aCYmby5wdXNoKC4uLmUpfX1jb25zdCBpPW8uZmlsdGVyKCh0PT4hdC5kZXN0cm95ZWQpKTtpLmxlbmd0aD9zUCh0aGlzLGUsaSk6dGhpcy5wcm9jZXNzTGVhdmVOb2RlKGUpfXJldHVybiBnLmxlbmd0aD0wLGsuZm9yRWFjaCgodD0+e3RoaXMucGxheWVycy5wdXNoKHQpLHQub25Eb25lKCgoKT0+e3QuZGVzdHJveSgpO2NvbnN0IGU9dGhpcy5wbGF5ZXJzLmluZGV4T2YodCk7dGhpcy5wbGF5ZXJzLnNwbGljZShlLDEpfSkpLHQucGxheSgpfSkpLGt9ZWxlbWVudENvbnRhaW5zRGF0YSh0LGUpe2xldCBuPSExO2NvbnN0IG89ZS5fX25nX3JlbW92ZWQ7cmV0dXJuIG8mJm8uc2V0Rm9yUmVtb3ZhbCYmKG49ITApLHRoaXMucGxheWVyc0J5RWxlbWVudC5oYXMoZSkmJihuPSEwKSx0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmhhcyhlKSYmKG49ITApLHRoaXMuc3RhdGVzQnlFbGVtZW50LmhhcyhlKSYmKG49ITApLHRoaXMuX2ZldGNoTmFtZXNwYWNlKHQpLmVsZW1lbnRDb250YWluc0RhdGEoZSl8fG59YWZ0ZXJGbHVzaCh0KXt0aGlzLl9mbHVzaEZucy5wdXNoKHQpfWFmdGVyRmx1c2hBbmltYXRpb25zRG9uZSh0KXt0aGlzLl93aGVuUXVpZXRGbnMucHVzaCh0KX1fZ2V0UHJldmlvdXNQbGF5ZXJzKHQsZSxuLG8saSl7bGV0IGE9W107aWYoZSl7Y29uc3QgZT10aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmdldCh0KTtlJiYoYT1lKX1lbHNle2NvbnN0IGU9dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldCh0KTtpZihlKXtjb25zdCB0PSFpfHxpPT1LTztlLmZvckVhY2goKGU9PntlLnF1ZXVlZHx8KHR8fGUudHJpZ2dlck5hbWU9PW8pJiZhLnB1c2goZSl9KSl9fXJldHVybihufHxvKSYmKGE9YS5maWx0ZXIoKHQ9PiEobiYmbiE9dC5uYW1lc3BhY2VJZHx8byYmbyE9dC50cmlnZ2VyTmFtZSkpKSksYX1fYmVmb3JlQW5pbWF0aW9uQnVpbGQodCxlLG4pe2NvbnN0IG89ZS5lbGVtZW50LGk9ZS5pc1JlbW92YWxUcmFuc2l0aW9uP3ZvaWQgMDp0LGE9ZS5pc1JlbW92YWxUcmFuc2l0aW9uP3ZvaWQgMDplLnRyaWdnZXJOYW1lO2Zvcihjb25zdCB0IG9mIGUudGltZWxpbmVzKXtjb25zdCByPXQuZWxlbWVudCxzPXIhPT1vLGw9TXgobixyLFtdKTt0aGlzLl9nZXRQcmV2aW91c1BsYXllcnMocixzLGksYSxlLnRvU3RhdGUpLmZvckVhY2goKHQ9Pntjb25zdCBlPXQuZ2V0UmVhbFBsYXllcigpO2UuYmVmb3JlRGVzdHJveSYmZS5iZWZvcmVEZXN0cm95KCksdC5kZXN0cm95KCksbC5wdXNoKHQpfSkpfUt4KG8sZS5mcm9tU3R5bGVzKX1fYnVpbGRBbmltYXRpb24odCxlLG4sbyxpLGEpe2NvbnN0IHI9ZS50cmlnZ2VyTmFtZSxzPWUuZWxlbWVudCxsPVtdLGM9bmV3IFNldCxkPW5ldyBTZXQscD1lLnRpbWVsaW5lcy5tYXAoKGU9Pntjb25zdCBwPWUuZWxlbWVudDtjLmFkZChwKTtjb25zdCBtPXAuX19uZ19yZW1vdmVkO2lmKG0mJm0ucmVtb3ZlZEJlZm9yZVF1ZXJpZWQpcmV0dXJuIG5ldyBteChlLmR1cmF0aW9uLGUuZGVsYXkpO2NvbnN0IHU9cCE9PXMsZj0oZnVuY3Rpb24gZyh0KXtjb25zdCBlPVtdO3JldHVybiBsUCh0LGUpLGV9KSgobi5nZXQocCl8fFlPKS5tYXAoKHQ9PnQuZ2V0UmVhbFBsYXllcigpKSkpLmZpbHRlcigodD0+ISF0LmVsZW1lbnQmJnQuZWxlbWVudD09PXApKSxoPWkuZ2V0KHApLGI9YS5nZXQocCkseT1ieCgwLHRoaXMuX25vcm1hbGl6ZXIsMCxlLmtleWZyYW1lcyxoLGIpLF89dGhpcy5fYnVpbGRQbGF5ZXIoZSx5LGYpO2lmKGUuc3ViVGltZWxpbmUmJm8mJmQuYWRkKHApLHUpe2NvbnN0IGU9bmV3IHRQKHQscixwKTtlLnNldFJlYWxQbGF5ZXIoXyksbC5wdXNoKGUpfXJldHVybiBffSkpO2wuZm9yRWFjaCgodD0+e014KHRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQsdC5lbGVtZW50LFtdKS5wdXNoKHQpLHQub25Eb25lKCgoKT0+KGZ1bmN0aW9uIGUodCxuLG8pe2xldCBpO2lmKHQgaW5zdGFuY2VvZiBNYXApe2lmKGk9dC5nZXQobiksaSl7aWYoaS5sZW5ndGgpe2NvbnN0IHQ9aS5pbmRleE9mKG8pO2kuc3BsaWNlKHQsMSl9MD09aS5sZW5ndGgmJnQuZGVsZXRlKG4pfX1lbHNlIGlmKGk9dFtuXSxpKXtpZihpLmxlbmd0aCl7Y29uc3QgdD1pLmluZGV4T2Yobyk7aS5zcGxpY2UodCwxKX0wPT1pLmxlbmd0aCYmZGVsZXRlIHRbbl19cmV0dXJuIGl9KSh0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LHQuZWxlbWVudCx0KSkpfSkpLGMuZm9yRWFjaCgodD0+YVAodCxCeCkpKTtjb25zdCBtPWh4KHApO3JldHVybiBtLm9uRGVzdHJveSgoKCk9PntjLmZvckVhY2goKHQ9PnJQKHQsQngpKSksWHgocyxlLnRvU3R5bGVzKX0pKSxkLmZvckVhY2goKHQ9PntNeChvLHQsW10pLnB1c2gobSl9KSksbX1fYnVpbGRQbGF5ZXIodCxlLG4pe3JldHVybiBlLmxlbmd0aD4wP3RoaXMuZHJpdmVyLmFuaW1hdGUodC5lbGVtZW50LGUsdC5kdXJhdGlvbix0LmRlbGF5LHQuZWFzaW5nLG4pOm5ldyBteCh0LmR1cmF0aW9uLHQuZGVsYXkpfX1jbGFzcyB0UHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5uYW1lc3BhY2VJZD10LHRoaXMudHJpZ2dlck5hbWU9ZSx0aGlzLmVsZW1lbnQ9bix0aGlzLl9wbGF5ZXI9bmV3IG14LHRoaXMuX2NvbnRhaW5zUmVhbFBsYXllcj0hMSx0aGlzLl9xdWV1ZWRDYWxsYmFja3M9e30sdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5tYXJrZWRGb3JEZXN0cm95PSExLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5xdWV1ZWQ9ITAsdGhpcy50b3RhbFRpbWU9MH1zZXRSZWFsUGxheWVyKHQpe3RoaXMuX2NvbnRhaW5zUmVhbFBsYXllcnx8KHRoaXMuX3BsYXllcj10LE9iamVjdC5rZXlzKHRoaXMuX3F1ZXVlZENhbGxiYWNrcykuZm9yRWFjaCgoZT0+e3RoaXMuX3F1ZXVlZENhbGxiYWNrc1tlXS5mb3JFYWNoKChuPT55eCh0LGUsdm9pZCAwLG4pKSl9KSksdGhpcy5fcXVldWVkQ2FsbGJhY2tzPXt9LHRoaXMuX2NvbnRhaW5zUmVhbFBsYXllcj0hMCx0aGlzLm92ZXJyaWRlVG90YWxUaW1lKHQudG90YWxUaW1lKSx0aGlzLnF1ZXVlZD0hMSl9Z2V0UmVhbFBsYXllcigpe3JldHVybiB0aGlzLl9wbGF5ZXJ9b3ZlcnJpZGVUb3RhbFRpbWUodCl7dGhpcy50b3RhbFRpbWU9dH1zeW5jUGxheWVyRXZlbnRzKHQpe2NvbnN0IGU9dGhpcy5fcGxheWVyO2UudHJpZ2dlckNhbGxiYWNrJiZ0Lm9uU3RhcnQoKCgpPT5lLnRyaWdnZXJDYWxsYmFjaygic3RhcnQiKSkpLHQub25Eb25lKCgoKT0+dGhpcy5maW5pc2goKSkpLHQub25EZXN0cm95KCgoKT0+dGhpcy5kZXN0cm95KCkpKX1fcXVldWVFdmVudCh0LGUpe014KHRoaXMuX3F1ZXVlZENhbGxiYWNrcyx0LFtdKS5wdXNoKGUpfW9uRG9uZSh0KXt0aGlzLnF1ZXVlZCYmdGhpcy5fcXVldWVFdmVudCgiZG9uZSIsdCksdGhpcy5fcGxheWVyLm9uRG9uZSh0KX1vblN0YXJ0KHQpe3RoaXMucXVldWVkJiZ0aGlzLl9xdWV1ZUV2ZW50KCJzdGFydCIsdCksdGhpcy5fcGxheWVyLm9uU3RhcnQodCl9b25EZXN0cm95KHQpe3RoaXMucXVldWVkJiZ0aGlzLl9xdWV1ZUV2ZW50KCJkZXN0cm95Iix0KSx0aGlzLl9wbGF5ZXIub25EZXN0cm95KHQpfWluaXQoKXt0aGlzLl9wbGF5ZXIuaW5pdCgpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4hdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5oYXNTdGFydGVkKCl9cGxheSgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnBsYXkoKX1wYXVzZSgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnBhdXNlKCl9cmVzdGFydCgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnJlc3RhcnQoKX1maW5pc2goKXt0aGlzLl9wbGF5ZXIuZmluaXNoKCl9ZGVzdHJveSgpe3RoaXMuZGVzdHJveWVkPSEwLHRoaXMuX3BsYXllci5kZXN0cm95KCl9cmVzZXQoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5yZXNldCgpfXNldFBvc2l0aW9uKHQpe3RoaXMucXVldWVkfHx0aGlzLl9wbGF5ZXIuc2V0UG9zaXRpb24odCl9Z2V0UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5xdWV1ZWQ/MDp0aGlzLl9wbGF5ZXIuZ2V0UG9zaXRpb24oKX10cmlnZ2VyQ2FsbGJhY2sodCl7Y29uc3QgZT10aGlzLl9wbGF5ZXI7ZS50cmlnZ2VyQ2FsbGJhY2smJmUudHJpZ2dlckNhbGxiYWNrKHQpfX1mdW5jdGlvbiBlUCh0KXtyZXR1cm4gdCYmMT09PXQubm9kZVR5cGV9ZnVuY3Rpb24gblAodCxlKXtjb25zdCBuPXQuc3R5bGUuZGlzcGxheTtyZXR1cm4gdC5zdHlsZS5kaXNwbGF5PW51bGwhPWU/ZToibm9uZSIsbn1mdW5jdGlvbiBvUCh0LGUsbixvLGkpe2NvbnN0IGE9W107bi5mb3JFYWNoKCh0PT5hLnB1c2goblAodCkpKSk7Y29uc3Qgcj1bXTtvLmZvckVhY2goKChuLG8pPT57Y29uc3QgYT17fTtuLmZvckVhY2goKHQ9Pntjb25zdCBuPWFbdF09ZS5jb21wdXRlU3R5bGUobyx0LGkpO24mJjAhPW4ubGVuZ3RofHwoby5fX25nX3JlbW92ZWQ9Wk8sci5wdXNoKG8pKX0pKSx0LnNldChvLGEpfSkpO2xldCBzPTA7cmV0dXJuIG4uZm9yRWFjaCgodD0+blAodCxhW3MrK10pKSkscn1mdW5jdGlvbiBpUCh0LGUpe2NvbnN0IG49bmV3IE1hcDtpZih0LmZvckVhY2goKHQ9Pm4uc2V0KHQsW10pKSksMD09ZS5sZW5ndGgpcmV0dXJuIG47Y29uc3Qgbz1uZXcgU2V0KGUpLGk9bmV3IE1hcDtmdW5jdGlvbiBhKHQpe2lmKCF0KXJldHVybiAxO2xldCBlPWkuZ2V0KHQpO2lmKGUpcmV0dXJuIGU7Y29uc3Qgcj10LnBhcmVudE5vZGU7cmV0dXJuIGU9bi5oYXMocik/cjpvLmhhcyhyKT8xOmEociksaS5zZXQodCxlKSxlfXJldHVybiBlLmZvckVhY2goKHQ9Pntjb25zdCBlPWEodCk7MSE9PWUmJm4uZ2V0KGUpLnB1c2godCl9KSksbn1mdW5jdGlvbiBhUCh0LGUpe2lmKHQuY2xhc3NMaXN0KXQuY2xhc3NMaXN0LmFkZChlKTtlbHNle2xldCBuPXQuJCRjbGFzc2VzO258fChuPXQuJCRjbGFzc2VzPXt9KSxuW2VdPSEwfX1mdW5jdGlvbiByUCh0LGUpe2lmKHQuY2xhc3NMaXN0KXQuY2xhc3NMaXN0LnJlbW92ZShlKTtlbHNle2xldCBuPXQuJCRjbGFzc2VzO24mJmRlbGV0ZSBuW2VdfX1mdW5jdGlvbiBzUCh0LGUsbil7aHgobikub25Eb25lKCgoKT0+dC5wcm9jZXNzTGVhdmVOb2RlKGUpKSl9ZnVuY3Rpb24gbFAodCxlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7Y29uc3Qgbz10W25dO28gaW5zdGFuY2VvZiB1eD9sUChvLnBsYXllcnMsZSk6ZS5wdXNoKG8pfX1mdW5jdGlvbiBjUCh0LGUsbil7Y29uc3Qgbz1uLmdldCh0KTtpZighbylyZXR1cm4hMTtsZXQgaT1lLmdldCh0KTtyZXR1cm4gaT9vLmZvckVhY2goKHQ9PmkuYWRkKHQpKSk6ZS5zZXQodCxvKSxuLmRlbGV0ZSh0KSwhMH1jbGFzcyBkUHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5ib2R5Tm9kZT10LHRoaXMuX2RyaXZlcj1lLHRoaXMuX25vcm1hbGl6ZXI9bix0aGlzLl90cmlnZ2VyQ2FjaGU9e30sdGhpcy5vblJlbW92YWxDb21wbGV0ZT0odCxlKT0+e30sdGhpcy5fdHJhbnNpdGlvbkVuZ2luZT1uZXcgJE8odCxlLG4pLHRoaXMuX3RpbWVsaW5lRW5naW5lPW5ldyBqTyh0LGUsbiksdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5vblJlbW92YWxDb21wbGV0ZT0odCxlKT0+dGhpcy5vblJlbW92YWxDb21wbGV0ZSh0LGUpfXJlZ2lzdGVyVHJpZ2dlcih0LGUsbixvLGkpe2NvbnN0IGE9dCsiLSIrbztsZXQgcj10aGlzLl90cmlnZ2VyQ2FjaGVbYV07aWYoIXIpe2NvbnN0IHQ9W10sZT1mTyh0aGlzLl9kcml2ZXIsaSx0KTtpZih0Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFRoZSBhbmltYXRpb24gdHJpZ2dlciAiJHtvfSIgaGFzIGZhaWxlZCB0byBidWlsZCBkdWUgdG8gdGhlIGZvbGxvd2luZyBlcnJvcnM6XG4gLSAke3Quam9pbigiXG4gLSAiKX1gKTtyPShmdW5jdGlvbiBuKHQsZSxvKXtyZXR1cm4gbmV3IExPKHQsZSxvKX0pKG8sZSx0aGlzLl9ub3JtYWxpemVyKSx0aGlzLl90cmlnZ2VyQ2FjaGVbYV09cn10aGlzLl90cmFuc2l0aW9uRW5naW5lLnJlZ2lzdGVyVHJpZ2dlcihlLG8scil9cmVnaXN0ZXIodCxlKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLnJlZ2lzdGVyKHQsZSl9ZGVzdHJveSh0LGUpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUuZGVzdHJveSh0LGUpfW9uSW5zZXJ0KHQsZSxuLG8pe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUuaW5zZXJ0Tm9kZSh0LGUsbixvKX1vblJlbW92ZSh0LGUsbixvKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLnJlbW92ZU5vZGUodCxlLG98fCExLG4pfWRpc2FibGVBbmltYXRpb25zKHQsZSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5tYXJrRWxlbWVudEFzRGlzYWJsZWQodCxlKX1wcm9jZXNzKHQsZSxuLG8pe2lmKCJAIj09bi5jaGFyQXQoMCkpe2NvbnN0W3QsaV09dngobik7dGhpcy5fdGltZWxpbmVFbmdpbmUuY29tbWFuZCh0LGUsaSxvKX1lbHNlIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUudHJpZ2dlcih0LGUsbixvKX1saXN0ZW4odCxlLG4sbyxpKXtpZigiQCI9PW4uY2hhckF0KDApKXtjb25zdFt0LG9dPXZ4KG4pO3JldHVybiB0aGlzLl90aW1lbGluZUVuZ2luZS5saXN0ZW4odCxlLG8saSl9cmV0dXJuIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUubGlzdGVuKHQsZSxuLG8saSl9Zmx1c2godD0tMSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5mbHVzaCh0KX1nZXQgcGxheWVycygpe3JldHVybiB0aGlzLl90cmFuc2l0aW9uRW5naW5lLnBsYXllcnMuY29uY2F0KHRoaXMuX3RpbWVsaW5lRW5naW5lLnBsYXllcnMpfXdoZW5SZW5kZXJpbmdEb25lKCl7cmV0dXJuIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUud2hlblJlbmRlcmluZ0RvbmUoKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHBQKHQsZSl7bGV0IG49bnVsbCxvPW51bGw7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPyhuPXVQKGVbMF0pLGUubGVuZ3RoPjEmJihvPXVQKGVbZS5sZW5ndGgtMV0pKSk6ZSYmKG49dVAoZSkpLG58fG8/bmV3IG1QKHQsbixvKTpudWxsfWNsYXNzIG1Qe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fc3RhcnRTdHlsZXM9ZSx0aGlzLl9lbmRTdHlsZXM9bix0aGlzLl9zdGF0ZT0wO2xldCBvPW1QLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQuZ2V0KHQpO298fG1QLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQuc2V0KHQsbz17fSksdGhpcy5faW5pdGlhbFN0eWxlcz1vfXN0YXJ0KCl7dGhpcy5fc3RhdGU8MSYmKHRoaXMuX3N0YXJ0U3R5bGVzJiZYeCh0aGlzLl9lbGVtZW50LHRoaXMuX3N0YXJ0U3R5bGVzLHRoaXMuX2luaXRpYWxTdHlsZXMpLHRoaXMuX3N0YXRlPTEpfWZpbmlzaCgpe3RoaXMuc3RhcnQoKSx0aGlzLl9zdGF0ZTwyJiYoWHgodGhpcy5fZWxlbWVudCx0aGlzLl9pbml0aWFsU3R5bGVzKSx0aGlzLl9lbmRTdHlsZXMmJihYeCh0aGlzLl9lbGVtZW50LHRoaXMuX2VuZFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzPW51bGwpLHRoaXMuX3N0YXRlPTEpfWRlc3Ryb3koKXt0aGlzLmZpbmlzaCgpLHRoaXMuX3N0YXRlPDMmJihtUC5pbml0aWFsU3R5bGVzQnlFbGVtZW50LmRlbGV0ZSh0aGlzLl9lbGVtZW50KSx0aGlzLl9zdGFydFN0eWxlcyYmKEt4KHRoaXMuX2VsZW1lbnQsdGhpcy5fc3RhcnRTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcz1udWxsKSx0aGlzLl9lbmRTdHlsZXMmJihLeCh0aGlzLl9lbGVtZW50LHRoaXMuX2VuZFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzPW51bGwpLFh4KHRoaXMuX2VsZW1lbnQsdGhpcy5faW5pdGlhbFN0eWxlcyksdGhpcy5fc3RhdGU9Myl9fWZ1bmN0aW9uIHVQKHQpe2xldCBlPW51bGw7Y29uc3Qgbj1PYmplY3Qua2V5cyh0KTtmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKyl7Y29uc3QgaT1uW29dO2ZQKGkpJiYoZT1lfHx7fSxlW2ldPXRbaV0pfXJldHVybiBlfWZ1bmN0aW9uIGZQKHQpe3JldHVybiJkaXNwbGF5Ij09PXR8fCJwb3NpdGlvbiI9PT10fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9tUC5pbml0aWFsU3R5bGVzQnlFbGVtZW50PW5ldyBXZWFrTWFwO2NvbnN0IGdQPSJhbmltYXRpb24iLGhQPSJhbmltYXRpb25lbmQiO2NsYXNzIGJQe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9uYW1lPWUsdGhpcy5fZHVyYXRpb249bix0aGlzLl9kZWxheT1vLHRoaXMuX2Vhc2luZz1pLHRoaXMuX2ZpbGxNb2RlPWEsdGhpcy5fb25Eb25lRm49cix0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fc3RhcnRUaW1lPTAsdGhpcy5fcG9zaXRpb249MCx0aGlzLl9ldmVudEZuPXQ9PnRoaXMuX2hhbmRsZUNhbGxiYWNrKHQpfWFwcGx5KCl7IShmdW5jdGlvbiB0KGUsbil7Y29uc3Qgbz14UChlLCIiKS50cmltKCk7bGV0IGk9MDtvLmxlbmd0aCYmKChmdW5jdGlvbiBhKHQsZSl7bGV0IG49MDtmb3IobGV0IG89MDtvPHQubGVuZ3RoO28rKyl0LmNoYXJBdChvKT09PWUmJm4rKztyZXR1cm4gbn0pKG8sIiwiKSsxLG49YCR7b30sICR7bn1gKSx2UChlLCIiLG4pfSkodGhpcy5fZWxlbWVudCxgJHt0aGlzLl9kdXJhdGlvbn1tcyAke3RoaXMuX2Vhc2luZ30gJHt0aGlzLl9kZWxheX1tcyAxIG5vcm1hbCAke3RoaXMuX2ZpbGxNb2RlfSAke3RoaXMuX25hbWV9YCksTVAodGhpcy5fZWxlbWVudCx0aGlzLl9ldmVudEZuLCExKSx0aGlzLl9zdGFydFRpbWU9RGF0ZS5ub3coKX1wYXVzZSgpe3lQKHRoaXMuX2VsZW1lbnQsdGhpcy5fbmFtZSwicGF1c2VkIil9cmVzdW1lKCl7eVAodGhpcy5fZWxlbWVudCx0aGlzLl9uYW1lLCJydW5uaW5nIil9c2V0UG9zaXRpb24odCl7Y29uc3QgZT1fUCh0aGlzLl9lbGVtZW50LHRoaXMuX25hbWUpO3RoaXMuX3Bvc2l0aW9uPXQqdGhpcy5fZHVyYXRpb24sdlAodGhpcy5fZWxlbWVudCwiRGVsYXkiLGAtJHt0aGlzLl9wb3NpdGlvbn1tc2AsZSl9Z2V0UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fcG9zaXRpb259X2hhbmRsZUNhbGxiYWNrKHQpe2NvbnN0IGU9dC5fbmdUZXN0TWFudWFsVGltZXN0YW1wfHxEYXRlLm5vdygpLG49MWUzKnBhcnNlRmxvYXQodC5lbGFwc2VkVGltZS50b0ZpeGVkKDMpKTt0LmFuaW1hdGlvbk5hbWU9PXRoaXMuX25hbWUmJk1hdGgubWF4KGUtdGhpcy5fc3RhcnRUaW1lLDApPj10aGlzLl9kZWxheSYmbj49dGhpcy5fZHVyYXRpb24mJnRoaXMuZmluaXNoKCl9ZmluaXNoKCl7dGhpcy5fZmluaXNoZWR8fCh0aGlzLl9maW5pc2hlZD0hMCx0aGlzLl9vbkRvbmVGbigpLE1QKHRoaXMuX2VsZW1lbnQsdGhpcy5fZXZlbnRGbiwhMCkpfWRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5maW5pc2goKSwoZnVuY3Rpb24gdChlLG4pe2NvbnN0IG89eFAoZSwiIikuc3BsaXQoIiwiKSxpPUNQKG8sbik7aT49MCYmKG8uc3BsaWNlKGksMSksdlAoZSwiIixvLmpvaW4oIiwiKSkpfSkodGhpcy5fZWxlbWVudCx0aGlzLl9uYW1lKSl9fWZ1bmN0aW9uIHlQKHQsZSxuKXt2UCh0LCJQbGF5U3RhdGUiLG4sX1AodCxlKSl9ZnVuY3Rpb24gX1AodCxlKXtjb25zdCBuPXhQKHQsIiIpO3JldHVybiBuLmluZGV4T2YoIiwiKT4wP0NQKG4uc3BsaXQoIiwiKSxlKTpDUChbbl0sZSl9ZnVuY3Rpb24gQ1AodCxlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKylpZih0W25dLmluZGV4T2YoZSk+PTApcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gTVAodCxlLG4pe24/dC5yZW1vdmVFdmVudExpc3RlbmVyKGhQLGUpOnQuYWRkRXZlbnRMaXN0ZW5lcihoUCxlKX1mdW5jdGlvbiB2UCh0LGUsbixvKXtjb25zdCBpPWdQK2U7aWYobnVsbCE9byl7Y29uc3QgZT10LnN0eWxlW2ldO2lmKGUubGVuZ3RoKXtjb25zdCB0PWUuc3BsaXQoIiwiKTt0W29dPW4sbj10LmpvaW4oIiwiKX19dC5zdHlsZVtpXT1ufWZ1bmN0aW9uIHhQKHQsZSl7cmV0dXJuIHQuc3R5bGVbZ1ArZV18fCIifWNsYXNzIE9Qe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyl7dGhpcy5lbGVtZW50PXQsdGhpcy5rZXlmcmFtZXM9ZSx0aGlzLmFuaW1hdGlvbk5hbWU9bix0aGlzLl9kdXJhdGlvbj1vLHRoaXMuX2RlbGF5PWksdGhpcy5fZmluYWxTdHlsZXM9cix0aGlzLl9zcGVjaWFsU3R5bGVzPXMsdGhpcy5fb25Eb25lRm5zPVtdLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fb25EZXN0cm95Rm5zPVtdLHRoaXMuY3VycmVudFNuYXBzaG90PXt9LHRoaXMuX3N0YXRlPTAsdGhpcy5lYXNpbmc9YXx8ImxpbmVhciIsdGhpcy50b3RhbFRpbWU9bytpLHRoaXMuX2J1aWxkU3R5bGVyKCl9b25TdGFydCh0KXt0aGlzLl9vblN0YXJ0Rm5zLnB1c2godCl9b25Eb25lKHQpe3RoaXMuX29uRG9uZUZucy5wdXNoKHQpfW9uRGVzdHJveSh0KXt0aGlzLl9vbkRlc3Ryb3lGbnMucHVzaCh0KX1kZXN0cm95KCl7dGhpcy5pbml0KCksdGhpcy5fc3RhdGU+PTR8fCh0aGlzLl9zdGF0ZT00LHRoaXMuX3N0eWxlci5kZXN0cm95KCksdGhpcy5fZmx1c2hTdGFydEZucygpLHRoaXMuX2ZsdXNoRG9uZUZucygpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuZGVzdHJveSgpLHRoaXMuX29uRGVzdHJveUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10pfV9mbHVzaERvbmVGbnMoKXt0aGlzLl9vbkRvbmVGbnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5fb25Eb25lRm5zPVtdfV9mbHVzaFN0YXJ0Rm5zKCl7dGhpcy5fb25TdGFydEZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdfWZpbmlzaCgpe3RoaXMuaW5pdCgpLHRoaXMuX3N0YXRlPj0zfHwodGhpcy5fc3RhdGU9Myx0aGlzLl9zdHlsZXIuZmluaXNoKCksdGhpcy5fZmx1c2hTdGFydEZucygpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuZmluaXNoKCksdGhpcy5fZmx1c2hEb25lRm5zKCkpfXNldFBvc2l0aW9uKHQpe3RoaXMuX3N0eWxlci5zZXRQb3NpdGlvbih0KX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLl9zdHlsZXIuZ2V0UG9zaXRpb24oKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXRlPj0yfWluaXQoKXt0aGlzLl9zdGF0ZT49MXx8KHRoaXMuX3N0YXRlPTEsdGhpcy5fc3R5bGVyLmFwcGx5KCksdGhpcy5fZGVsYXkmJnRoaXMuX3N0eWxlci5wYXVzZSgpKX1wbGF5KCl7dGhpcy5pbml0KCksdGhpcy5oYXNTdGFydGVkKCl8fCh0aGlzLl9mbHVzaFN0YXJ0Rm5zKCksdGhpcy5fc3RhdGU9Mix0aGlzLl9zcGVjaWFsU3R5bGVzJiZ0aGlzLl9zcGVjaWFsU3R5bGVzLnN0YXJ0KCkpLHRoaXMuX3N0eWxlci5yZXN1bWUoKX1wYXVzZSgpe3RoaXMuaW5pdCgpLHRoaXMuX3N0eWxlci5wYXVzZSgpfXJlc3RhcnQoKXt0aGlzLnJlc2V0KCksdGhpcy5wbGF5KCl9cmVzZXQoKXt0aGlzLl9zdGF0ZT0wLHRoaXMuX3N0eWxlci5kZXN0cm95KCksdGhpcy5fYnVpbGRTdHlsZXIoKSx0aGlzLl9zdHlsZXIuYXBwbHkoKX1fYnVpbGRTdHlsZXIoKXt0aGlzLl9zdHlsZXI9bmV3IGJQKHRoaXMuZWxlbWVudCx0aGlzLmFuaW1hdGlvbk5hbWUsdGhpcy5fZHVyYXRpb24sdGhpcy5fZGVsYXksdGhpcy5lYXNpbmcsImZvcndhcmRzIiwoKCk9PnRoaXMuZmluaXNoKCkpKX10cmlnZ2VyQ2FsbGJhY2sodCl7Y29uc3QgZT0ic3RhcnQiPT10P3RoaXMuX29uU3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2UuZm9yRWFjaCgodD0+dCgpKSksZS5sZW5ndGg9MH1iZWZvcmVEZXN0cm95KCl7dGhpcy5pbml0KCk7Y29uc3QgdD17fTtpZih0aGlzLmhhc1N0YXJ0ZWQoKSl7Y29uc3QgZT10aGlzLl9zdGF0ZT49MztPYmplY3Qua2V5cyh0aGlzLl9maW5hbFN0eWxlcykuZm9yRWFjaCgobj0+eyJvZmZzZXQiIT1uJiYodFtuXT1lP3RoaXMuX2ZpbmFsU3R5bGVzW25dOnNPKHRoaXMuZWxlbWVudCxuKSl9KSl9dGhpcy5jdXJyZW50U25hcHNob3Q9dH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIFBQIGV4dGVuZHMgbXh7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuZWxlbWVudD10LHRoaXMuX3N0YXJ0aW5nU3R5bGVzPXt9LHRoaXMuX19pbml0aWFsaXplZD0hMSx0aGlzLl9zdHlsZXM9VHgoZSl9aW5pdCgpeyF0aGlzLl9faW5pdGlhbGl6ZWQmJnRoaXMuX3N0YXJ0aW5nU3R5bGVzJiYodGhpcy5fX2luaXRpYWxpemVkPSEwLE9iamVjdC5rZXlzKHRoaXMuX3N0eWxlcykuZm9yRWFjaCgodD0+e3RoaXMuX3N0YXJ0aW5nU3R5bGVzW3RdPXRoaXMuZWxlbWVudC5zdHlsZVt0XX0pKSxzdXBlci5pbml0KCkpfXBsYXkoKXt0aGlzLl9zdGFydGluZ1N0eWxlcyYmKHRoaXMuaW5pdCgpLE9iamVjdC5rZXlzKHRoaXMuX3N0eWxlcykuZm9yRWFjaCgodD0+dGhpcy5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHQsdGhpcy5fc3R5bGVzW3RdKSkpLHN1cGVyLnBsYXkoKSl9ZGVzdHJveSgpe3RoaXMuX3N0YXJ0aW5nU3R5bGVzJiYoT2JqZWN0LmtleXModGhpcy5fc3RhcnRpbmdTdHlsZXMpLmZvckVhY2goKHQ9Pntjb25zdCBlPXRoaXMuX3N0YXJ0aW5nU3R5bGVzW3RdO2U/dGhpcy5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHQsZSk6dGhpcy5lbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfSkpLHRoaXMuX3N0YXJ0aW5nU3R5bGVzPW51bGwsc3VwZXIuZGVzdHJveSgpKX19Y2xhc3Mgd1B7Y29uc3RydWN0b3IoKXt0aGlzLl9jb3VudD0wfXZhbGlkYXRlU3R5bGVQcm9wZXJ0eSh0KXtyZXR1cm4gRHgodCl9bWF0Y2hlc0VsZW1lbnQodCxlKXtyZXR1cm4gRXgodCxlKX1jb250YWluc0VsZW1lbnQodCxlKXtyZXR1cm4gUngodCxlKX1xdWVyeSh0LGUsbil7cmV0dXJuIEF4KHQsZSxuKX1jb21wdXRlU3R5bGUodCxlLG4pe3JldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KVtlXX1idWlsZEtleWZyYW1lRWxlbWVudCh0LGUsbil7bj1uLm1hcCgodD0+VHgodCkpKTtsZXQgbz1gQGtleWZyYW1lcyAke2V9IHtcbmAsaT0iIjtuLmZvckVhY2goKHQ9PntpPSIgIjtjb25zdCBlPXBhcnNlRmxvYXQodC5vZmZzZXQpO28rPWAke2l9JHsxMDAqZX0lIHtcbmAsaSs9IiAiLE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGU9Pntjb25zdCBuPXRbZV07c3dpdGNoKGUpe2Nhc2Uib2Zmc2V0IjpyZXR1cm47Y2FzZSJlYXNpbmciOnJldHVybiB2b2lkKG4mJihvKz1gJHtpfWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR7bn07XG5gKSk7ZGVmYXVsdDpyZXR1cm4gdm9pZChvKz1gJHtpfSR7ZX06ICR7bn07XG5gKX19KSksbys9YCR7aX19XG5gfSkpLG8rPSJ9XG4iO2NvbnN0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1vLGF9YW5pbWF0ZSh0LGUsbixvLGksYT1bXSxyKXsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJnImJihmdW5jdGlvbiBzKCl7a1B8fChjb25zb2xlLndhcm4oIkBhbmd1bGFyL2FuaW1hdGlvbnM6IHBsZWFzZSBsb2FkIHRoZSB3ZWItYW5pbWF0aW9ucy5qcyBwb2x5ZmlsbCB0byBhbGxvdyBwcm9ncmFtbWF0aWMgYWNjZXNzLi4uXG4iLCIgIHZpc2l0IGh0dHBzOi8vYml0Lmx5L0lXdWthbSB0byBsZWFybiBtb3JlIGFib3V0IHVzaW5nIHRoZSB3ZWItYW5pbWF0aW9uLWpzIHBvbHlmaWxsLiIpLGtQPSEwKX0pKCk7Y29uc3QgbD1hLmZpbHRlcigodD0+dCBpbnN0YW5jZW9mIE9QKSksYz17fTtpTyhuLG8pJiZsLmZvckVhY2goKHQ9PntsZXQgZT10LmN1cnJlbnRTbmFwc2hvdDtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKCh0PT5jW3RdPWVbdF0pKX0pKTtjb25zdCBkPShmdW5jdGlvbiBwKHQpe2xldCBlPXt9O3JldHVybiB0JiYoQXJyYXkuaXNBcnJheSh0KT90Olt0XSkuZm9yRWFjaCgodD0+e09iamVjdC5rZXlzKHQpLmZvckVhY2goKG49Pnsib2Zmc2V0IiE9biYmImVhc2luZyIhPW4mJihlW25dPXRbbl0pfSkpfSkpLGV9KShlPWFPKHQsZSxjKSk7aWYoMD09bilyZXR1cm4gbmV3IFBQKHQsZCk7Y29uc3QgbT0iZ2VuX2Nzc19rZl8iK3RoaXMuX2NvdW50KyssdT10aGlzLmJ1aWxkS2V5ZnJhbWVFbGVtZW50KHQsbSxlKTsoZnVuY3Rpb24gZih0KXt2YXIgZTtjb25zdCBuPW51bGw9PT0oZT10LmdldFJvb3ROb2RlKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jYWxsKHQpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgU2hhZG93Um9vdCYmbiBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Q/bjpkb2N1bWVudC5oZWFkfSkodCkuYXBwZW5kQ2hpbGQodSk7Y29uc3QgZz1wUCh0LGUpLGg9bmV3IE9QKHQsZSxtLG4sbyxpLGQsZyk7cmV0dXJuIGgub25EZXN0cm95KCgoKT0+KGZ1bmN0aW9uIHQoZSl7ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSkodSkpKSxofX1sZXQga1A9ITE7Y2xhc3MgU1B7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5lbGVtZW50PXQsdGhpcy5rZXlmcmFtZXM9ZSx0aGlzLm9wdGlvbnM9bix0aGlzLl9zcGVjaWFsU3R5bGVzPW8sdGhpcy5fb25Eb25lRm5zPVtdLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fb25EZXN0cm95Rm5zPVtdLHRoaXMuX2luaXRpYWxpemVkPSExLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMudGltZT0wLHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy5jdXJyZW50U25hcHNob3Q9e30sdGhpcy5fZHVyYXRpb249bi5kdXJhdGlvbix0aGlzLl9kZWxheT1uLmRlbGF5fHwwLHRoaXMudGltZT10aGlzLl9kdXJhdGlvbit0aGlzLl9kZWxheX1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRvbmVGbnM9W10pfWluaXQoKXt0aGlzLl9idWlsZFBsYXllcigpLHRoaXMuX3ByZXBhcmVQbGF5ZXJCZWZvcmVTdGFydCgpfV9idWlsZFBsYXllcigpe2lmKHRoaXMuX2luaXRpYWxpemVkKXJldHVybjt0aGlzLl9pbml0aWFsaXplZD0hMDtjb25zdCB0PXRoaXMua2V5ZnJhbWVzO3RoaXMuZG9tUGxheWVyPXRoaXMuX3RyaWdnZXJXZWJBbmltYXRpb24odGhpcy5lbGVtZW50LHQsdGhpcy5vcHRpb25zKSx0aGlzLl9maW5hbEtleWZyYW1lPXQubGVuZ3RoP3RbdC5sZW5ndGgtMV06e30sdGhpcy5kb21QbGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiZmluaXNoIiwoKCk9PnRoaXMuX29uRmluaXNoKCkpKX1fcHJlcGFyZVBsYXllckJlZm9yZVN0YXJ0KCl7dGhpcy5fZGVsYXk/dGhpcy5fcmVzZXREb21QbGF5ZXJTdGF0ZSgpOnRoaXMuZG9tUGxheWVyLnBhdXNlKCl9X3RyaWdnZXJXZWJBbmltYXRpb24odCxlLG4pe3JldHVybiB0LmFuaW1hdGUoZSxuKX1vblN0YXJ0KHQpe3RoaXMuX29uU3RhcnRGbnMucHVzaCh0KX1vbkRvbmUodCl7dGhpcy5fb25Eb25lRm5zLnB1c2godCl9b25EZXN0cm95KHQpe3RoaXMuX29uRGVzdHJveUZucy5wdXNoKHQpfXBsYXkoKXt0aGlzLl9idWlsZFBsYXllcigpLHRoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fb25TdGFydEZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX3N0YXJ0ZWQ9ITAsdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhpcy5fc3BlY2lhbFN0eWxlcy5zdGFydCgpKSx0aGlzLmRvbVBsYXllci5wbGF5KCl9cGF1c2UoKXt0aGlzLmluaXQoKSx0aGlzLmRvbVBsYXllci5wYXVzZSgpfWZpbmlzaCgpe3RoaXMuaW5pdCgpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuZmluaXNoKCksdGhpcy5fb25GaW5pc2goKSx0aGlzLmRvbVBsYXllci5maW5pc2goKX1yZXNldCgpe3RoaXMuX3Jlc2V0RG9tUGxheWVyU3RhdGUoKSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMX1fcmVzZXREb21QbGF5ZXJTdGF0ZSgpe3RoaXMuZG9tUGxheWVyJiZ0aGlzLmRvbVBsYXllci5jYW5jZWwoKX1yZXN0YXJ0KCl7dGhpcy5yZXNldCgpLHRoaXMucGxheSgpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhcnRlZH1kZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkfHwodGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuX3Jlc2V0RG9tUGxheWVyU3RhdGUoKSx0aGlzLl9vbkZpbmlzaCgpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuZGVzdHJveSgpLHRoaXMuX29uRGVzdHJveUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10pfXNldFBvc2l0aW9uKHQpe3ZvaWQgMD09PXRoaXMuZG9tUGxheWVyJiZ0aGlzLmluaXQoKSx0aGlzLmRvbVBsYXllci5jdXJyZW50VGltZT10KnRoaXMudGltZX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLmRvbVBsYXllci5jdXJyZW50VGltZS90aGlzLnRpbWV9Z2V0IHRvdGFsVGltZSgpe3JldHVybiB0aGlzLl9kZWxheSt0aGlzLl9kdXJhdGlvbn1iZWZvcmVEZXN0cm95KCl7Y29uc3QgdD17fTt0aGlzLmhhc1N0YXJ0ZWQoKSYmT2JqZWN0LmtleXModGhpcy5fZmluYWxLZXlmcmFtZSkuZm9yRWFjaCgoZT0+eyJvZmZzZXQiIT1lJiYodFtlXT10aGlzLl9maW5pc2hlZD90aGlzLl9maW5hbEtleWZyYW1lW2VdOnNPKHRoaXMuZWxlbWVudCxlKSl9KSksdGhpcy5jdXJyZW50U25hcHNob3Q9dH10cmlnZ2VyQ2FsbGJhY2sodCl7Y29uc3QgZT0ic3RhcnQiPT10P3RoaXMuX29uU3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2UuZm9yRWFjaCgodD0+dCgpKSksZS5sZW5ndGg9MH19Y2xhc3MgRFB7Y29uc3RydWN0b3IoKXt0aGlzLl9pc05hdGl2ZUltcGw9L1x7XHMqXFtuYXRpdmVccytjb2RlXF1ccypcfS8udGVzdChFUCgpLnRvU3RyaW5nKCkpLHRoaXMuX2Nzc0tleWZyYW1lc0RyaXZlcj1uZXcgd1B9dmFsaWRhdGVTdHlsZVByb3BlcnR5KHQpe3JldHVybiBEeCh0KX1tYXRjaGVzRWxlbWVudCh0LGUpe3JldHVybiBFeCh0LGUpfWNvbnRhaW5zRWxlbWVudCh0LGUpe3JldHVybiBSeCh0LGUpfXF1ZXJ5KHQsZSxuKXtyZXR1cm4gQXgodCxlLG4pfWNvbXB1dGVTdHlsZSh0LGUsbil7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpW2VdfW92ZXJyaWRlV2ViQW5pbWF0aW9uc1N1cHBvcnQodCl7dGhpcy5faXNOYXRpdmVJbXBsPXR9YW5pbWF0ZSh0LGUsbixvLGksYT1bXSxyKXtpZighciYmIXRoaXMuX2lzTmF0aXZlSW1wbClyZXR1cm4gdGhpcy5fY3NzS2V5ZnJhbWVzRHJpdmVyLmFuaW1hdGUodCxlLG4sbyxpLGEpO2NvbnN0IHM9e2R1cmF0aW9uOm4sZGVsYXk6byxmaWxsOjA9PW8/ImJvdGgiOiJmb3J3YXJkcyJ9O2kmJihzLmVhc2luZz1pKTtjb25zdCBsPXt9LGM9YS5maWx0ZXIoKHQ9PnQgaW5zdGFuY2VvZiBTUCkpO2lPKG4sbykmJmMuZm9yRWFjaCgodD0+e2xldCBlPXQuY3VycmVudFNuYXBzaG90O09iamVjdC5rZXlzKGUpLmZvckVhY2goKHQ9PmxbdF09ZVt0XSkpfSkpO2NvbnN0IGQ9cFAodCxlPWFPKHQsZT1lLm1hcCgodD0+WXgodCwhMSkpKSxsKSk7cmV0dXJuIG5ldyBTUCh0LGUscyxkKX19ZnVuY3Rpb24gRVAoKXtyZXR1cm4gZngoKSYmRWxlbWVudC5wcm90b3R5cGUuYW5pbWF0ZXx8e319Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovY2xhc3MgUlAgZXh0ZW5kcyB0eHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5fbmV4dEFuaW1hdGlvbklkPTAsdGhpcy5fcmVuZGVyZXI9dC5jcmVhdGVSZW5kZXJlcihlLmJvZHkse2lkOiIwIixlbmNhcHN1bGF0aW9uOkhuLk5vbmUsc3R5bGVzOltdLGRhdGE6e2FuaW1hdGlvbjpbXX19KX1idWlsZCh0KXtjb25zdCBlPXRoaXMuX25leHRBbmltYXRpb25JZC50b1N0cmluZygpO3RoaXMuX25leHRBbmltYXRpb25JZCsrO2NvbnN0IG49QXJyYXkuaXNBcnJheSh0KT9peCh0KTp0O3JldHVybiBOUCh0aGlzLl9yZW5kZXJlcixudWxsLGUsInJlZ2lzdGVyIixbbl0pLG5ldyBBUChlLHRoaXMuX3JlbmRlcmVyKX19UlAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJQKSh2cihfZyksdnIoWl8pKX0sUlAuybVwcm92PU1uKHt0b2tlbjpSUCxmYWN0b3J5OlJQLsm1ZmFjfSksUlAuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpfZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChSUCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6X2d9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y2xhc3MgQVAgZXh0ZW5kcyBjbGFzc3t9e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLl9pZD10LHRoaXMuX3JlbmRlcmVyPWV9Y3JlYXRlKHQsZSl7cmV0dXJuIG5ldyBUUCh0aGlzLl9pZCx0LGV8fHt9LHRoaXMuX3JlbmRlcmVyKX19Y2xhc3MgVFB7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5pZD10LHRoaXMuZWxlbWVudD1lLHRoaXMuX3JlbmRlcmVyPW8sdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLl9zdGFydGVkPSExLHRoaXMudG90YWxUaW1lPTAsdGhpcy5fY29tbWFuZCgiY3JlYXRlIixuKX1fbGlzdGVuKHQsZSl7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQsYEBAJHt0aGlzLmlkfToke3R9YCxlKX1fY29tbWFuZCh0LC4uLmUpe3JldHVybiBOUCh0aGlzLl9yZW5kZXJlcix0aGlzLmVsZW1lbnQsdGhpcy5pZCx0LGUpfW9uRG9uZSh0KXt0aGlzLl9saXN0ZW4oImRvbmUiLHQpfW9uU3RhcnQodCl7dGhpcy5fbGlzdGVuKCJzdGFydCIsdCl9b25EZXN0cm95KHQpe3RoaXMuX2xpc3RlbigiZGVzdHJveSIsdCl9aW5pdCgpe3RoaXMuX2NvbW1hbmQoImluaXQiKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9cGxheSgpe3RoaXMuX2NvbW1hbmQoInBsYXkiKSx0aGlzLl9zdGFydGVkPSEwfXBhdXNlKCl7dGhpcy5fY29tbWFuZCgicGF1c2UiKX1yZXN0YXJ0KCl7dGhpcy5fY29tbWFuZCgicmVzdGFydCIpfWZpbmlzaCgpe3RoaXMuX2NvbW1hbmQoImZpbmlzaCIpfWRlc3Ryb3koKXt0aGlzLl9jb21tYW5kKCJkZXN0cm95Iil9cmVzZXQoKXt0aGlzLl9jb21tYW5kKCJyZXNldCIpLHRoaXMuX3N0YXJ0ZWQ9ITF9c2V0UG9zaXRpb24odCl7dGhpcy5fY29tbWFuZCgic2V0UG9zaXRpb24iLHQpfWdldFBvc2l0aW9uKCl7dmFyIHQsZTtyZXR1cm4gbnVsbCE9PShlPW51bGw9PT0odD10aGlzLl9yZW5kZXJlci5lbmdpbmUucGxheWVyc1srdGhpcy5pZF0pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmdldFBvc2l0aW9uKCkpJiZ2b2lkIDAhPT1lP2U6MH19ZnVuY3Rpb24gTlAodCxlLG4sbyxpKXtyZXR1cm4gdC5zZXRQcm9wZXJ0eShlLGBAQCR7bn06JHtvfWAsaSl9Y29uc3QgelA9IkAiLElQPSJALmRpc2FibGVkIjtjbGFzcyBIUHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5kZWxlZ2F0ZT10LHRoaXMuZW5naW5lPWUsdGhpcy5fem9uZT1uLHRoaXMuX2N1cnJlbnRJZD0wLHRoaXMuX21pY3JvdGFza0lkPTEsdGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyPVtdLHRoaXMuX3JlbmRlcmVyQ2FjaGU9bmV3IE1hcCx0aGlzLl9jZFJlY3VyRGVwdGg9MCx0aGlzLnByb21pc2U9UHJvbWlzZS5yZXNvbHZlKDApLGUub25SZW1vdmFsQ29tcGxldGU9KHQsZSk9PntlJiZlLnBhcmVudE5vZGUodCkmJmUucmVtb3ZlQ2hpbGQodC5wYXJlbnROb2RlLHQpfX1jcmVhdGVSZW5kZXJlcih0LGUpe2NvbnN0IG49dGhpcy5kZWxlZ2F0ZS5jcmVhdGVSZW5kZXJlcih0LGUpO2lmKCEodCYmZSYmZS5kYXRhJiZlLmRhdGEuYW5pbWF0aW9uKSl7bGV0IHQ9dGhpcy5fcmVuZGVyZXJDYWNoZS5nZXQobik7cmV0dXJuIHR8fCh0PW5ldyBGUCgiIixuLHRoaXMuZW5naW5lKSx0aGlzLl9yZW5kZXJlckNhY2hlLnNldChuLHQpKSx0fWNvbnN0IG89ZS5pZCxpPWUuaWQrIi0iK3RoaXMuX2N1cnJlbnRJZDt0aGlzLl9jdXJyZW50SWQrKyx0aGlzLmVuZ2luZS5yZWdpc3RlcihpLHQpO2NvbnN0IGE9ZT0+e0FycmF5LmlzQXJyYXkoZSk/ZS5mb3JFYWNoKGEpOnRoaXMuZW5naW5lLnJlZ2lzdGVyVHJpZ2dlcihvLGksdCxlLm5hbWUsZSl9O3JldHVybiBlLmRhdGEuYW5pbWF0aW9uLmZvckVhY2goYSksbmV3IExQKHRoaXMsaSxuLHRoaXMuZW5naW5lKX1iZWdpbigpe3RoaXMuX2NkUmVjdXJEZXB0aCsrLHRoaXMuZGVsZWdhdGUuYmVnaW4mJnRoaXMuZGVsZWdhdGUuYmVnaW4oKX1fc2NoZWR1bGVDb3VudFRhc2soKXt0aGlzLnByb21pc2UudGhlbigoKCk9Pnt0aGlzLl9taWNyb3Rhc2tJZCsrfSkpfXNjaGVkdWxlTGlzdGVuZXJDYWxsYmFjayh0LGUsbil7dD49MCYmdDx0aGlzLl9taWNyb3Rhc2tJZD90aGlzLl96b25lLnJ1bigoKCk9PmUobikpKTooMD09dGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyLmxlbmd0aCYmUHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oKCgpPT57dGhpcy5fem9uZS5ydW4oKCgpPT57dGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyLmZvckVhY2goKHQ9Pntjb25zdFtlLG5dPXQ7ZShuKX0pKSx0aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXI9W119KSl9KSksdGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyLnB1c2goW2Usbl0pKX1lbmQoKXt0aGlzLl9jZFJlY3VyRGVwdGgtLSwwPT10aGlzLl9jZFJlY3VyRGVwdGgmJnRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57dGhpcy5fc2NoZWR1bGVDb3VudFRhc2soKSx0aGlzLmVuZ2luZS5mbHVzaCh0aGlzLl9taWNyb3Rhc2tJZCl9KSksdGhpcy5kZWxlZ2F0ZS5lbmQmJnRoaXMuZGVsZWdhdGUuZW5kKCl9d2hlblJlbmRlcmluZ0RvbmUoKXtyZXR1cm4gdGhpcy5lbmdpbmUud2hlblJlbmRlcmluZ0RvbmUoKX19SFAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEhQKSh2cihfZyksdnIoZFApLHZyKGFfKSl9LEhQLsm1cHJvdj1Nbih7dG9rZW46SFAsZmFjdG9yeTpIUC7JtWZhY30pLEhQLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6X2d9LHt0eXBlOmRQfSx7dHlwZTphX31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSFAsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOl9nfSx7dHlwZTpkUH0se3R5cGU6YV99XX0pLG51bGwpO2NsYXNzIEZQe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLm5hbWVzcGFjZUlkPXQsdGhpcy5kZWxlZ2F0ZT1lLHRoaXMuZW5naW5lPW4sdGhpcy5kZXN0cm95Tm9kZT10aGlzLmRlbGVnYXRlLmRlc3Ryb3lOb2RlP3Q9PmUuZGVzdHJveU5vZGUodCk6bnVsbH1nZXQgZGF0YSgpe3JldHVybiB0aGlzLmRlbGVnYXRlLmRhdGF9ZGVzdHJveSgpe3RoaXMuZW5naW5lLmRlc3Ryb3kodGhpcy5uYW1lc3BhY2VJZCx0aGlzLmRlbGVnYXRlKSx0aGlzLmRlbGVnYXRlLmRlc3Ryb3koKX1jcmVhdGVFbGVtZW50KHQsZSl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuY3JlYXRlRWxlbWVudCh0LGUpfWNyZWF0ZUNvbW1lbnQodCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuY3JlYXRlQ29tbWVudCh0KX1jcmVhdGVUZXh0KHQpe3JldHVybiB0aGlzLmRlbGVnYXRlLmNyZWF0ZVRleHQodCl9YXBwZW5kQ2hpbGQodCxlKXt0aGlzLmRlbGVnYXRlLmFwcGVuZENoaWxkKHQsZSksdGhpcy5lbmdpbmUub25JbnNlcnQodGhpcy5uYW1lc3BhY2VJZCxlLHQsITEpfWluc2VydEJlZm9yZSh0LGUsbixvPSEwKXt0aGlzLmRlbGVnYXRlLmluc2VydEJlZm9yZSh0LGUsbiksdGhpcy5lbmdpbmUub25JbnNlcnQodGhpcy5uYW1lc3BhY2VJZCxlLHQsbyl9cmVtb3ZlQ2hpbGQodCxlLG4pe3RoaXMuZW5naW5lLm9uUmVtb3ZlKHRoaXMubmFtZXNwYWNlSWQsZSx0aGlzLmRlbGVnYXRlLG4pfXNlbGVjdFJvb3RFbGVtZW50KHQsZSl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuc2VsZWN0Um9vdEVsZW1lbnQodCxlKX1wYXJlbnROb2RlKHQpe3JldHVybiB0aGlzLmRlbGVnYXRlLnBhcmVudE5vZGUodCl9bmV4dFNpYmxpbmcodCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUubmV4dFNpYmxpbmcodCl9c2V0QXR0cmlidXRlKHQsZSxuLG8pe3RoaXMuZGVsZWdhdGUuc2V0QXR0cmlidXRlKHQsZSxuLG8pfXJlbW92ZUF0dHJpYnV0ZSh0LGUsbil7dGhpcy5kZWxlZ2F0ZS5yZW1vdmVBdHRyaWJ1dGUodCxlLG4pfWFkZENsYXNzKHQsZSl7dGhpcy5kZWxlZ2F0ZS5hZGRDbGFzcyh0LGUpfXJlbW92ZUNsYXNzKHQsZSl7dGhpcy5kZWxlZ2F0ZS5yZW1vdmVDbGFzcyh0LGUpfXNldFN0eWxlKHQsZSxuLG8pe3RoaXMuZGVsZWdhdGUuc2V0U3R5bGUodCxlLG4sbyl9cmVtb3ZlU3R5bGUodCxlLG4pe3RoaXMuZGVsZWdhdGUucmVtb3ZlU3R5bGUodCxlLG4pfXNldFByb3BlcnR5KHQsZSxuKXtlLmNoYXJBdCgwKT09elAmJmU9PUlQP3RoaXMuZGlzYWJsZUFuaW1hdGlvbnModCwhIW4pOnRoaXMuZGVsZWdhdGUuc2V0UHJvcGVydHkodCxlLG4pfXNldFZhbHVlKHQsZSl7dGhpcy5kZWxlZ2F0ZS5zZXRWYWx1ZSh0LGUpfWxpc3Rlbih0LGUsbil7cmV0dXJuIHRoaXMuZGVsZWdhdGUubGlzdGVuKHQsZSxuKX1kaXNhYmxlQW5pbWF0aW9ucyh0LGUpe3RoaXMuZW5naW5lLmRpc2FibGVBbmltYXRpb25zKHQsZSl9fWNsYXNzIExQIGV4dGVuZHMgRlB7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIoZSxuLG8pLHRoaXMuZmFjdG9yeT10LHRoaXMubmFtZXNwYWNlSWQ9ZX1zZXRQcm9wZXJ0eSh0LGUsbil7ZS5jaGFyQXQoMCk9PXpQPyIuIj09ZS5jaGFyQXQoMSkmJmU9PUlQP3RoaXMuZGlzYWJsZUFuaW1hdGlvbnModCxuPXZvaWQgMD09PW58fCEhbik6dGhpcy5lbmdpbmUucHJvY2Vzcyh0aGlzLm5hbWVzcGFjZUlkLHQsZS5zdWJzdHIoMSksbik6dGhpcy5kZWxlZ2F0ZS5zZXRQcm9wZXJ0eSh0LGUsbil9bGlzdGVuKHQsZSxuKXtpZihlLmNoYXJBdCgwKT09elApe2NvbnN0IG89KGZ1bmN0aW9uIGkodCl7c3dpdGNoKHQpe2Nhc2UiYm9keSI6cmV0dXJuIGRvY3VtZW50LmJvZHk7Y2FzZSJkb2N1bWVudCI6cmV0dXJuIGRvY3VtZW50O2Nhc2Uid2luZG93IjpyZXR1cm4gd2luZG93O2RlZmF1bHQ6cmV0dXJuIHR9fSkodCk7bGV0IGE9ZS5zdWJzdHIoMSkscj0iIjtyZXR1cm4gYS5jaGFyQXQoMCkhPXpQJiYoW2Escl09KGZ1bmN0aW9uIHModCl7Y29uc3QgZT10LmluZGV4T2YoIi4iKTtyZXR1cm5bdC5zdWJzdHJpbmcoMCxlKSx0LnN1YnN0cihlKzEpXX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKShhKSksdGhpcy5lbmdpbmUubGlzdGVuKHRoaXMubmFtZXNwYWNlSWQsbyxhLHIsKHQ9Pnt0aGlzLmZhY3Rvcnkuc2NoZWR1bGVMaXN0ZW5lckNhbGxiYWNrKHQuX2RhdGF8fC0xLG4sdCl9KSl9cmV0dXJuIHRoaXMuZGVsZWdhdGUubGlzdGVuKHQsZSxuKX19Y2xhc3MgQlAgZXh0ZW5kcyBkUHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodC5ib2R5LGUsbil9bmdPbkRlc3Ryb3koKXt0aGlzLmZsdXNoKCl9fUJQLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCUCkodnIoWl8pLHZyKHp4KSx2cihSTykpfSxCUC7JtXByb3Y9TW4oe3Rva2VuOkJQLGZhY3Rvcnk6QlAuybVmYWN9KSxCUC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6enh9LHt0eXBlOlJPfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCUCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp6eH0se3R5cGU6Uk99XX0pLG51bGwpO2NvbnN0IFZQPW5ldyBHYSgiQW5pbWF0aW9uTW9kdWxlVHlwZSIpLGpQPVt7cHJvdmlkZTp0eCx1c2VDbGFzczpSUH0se3Byb3ZpZGU6Uk8sdXNlRmFjdG9yeTpmdW5jdGlvbiBVUCgpe3JldHVybiBuZXcgQU99fSx7cHJvdmlkZTpkUCx1c2VDbGFzczpCUH0se3Byb3ZpZGU6X2csdXNlRmFjdG9yeTpmdW5jdGlvbiBHUCh0LGUsbil7cmV0dXJuIG5ldyBIUCh0LGUsbil9LGRlcHM6W2h2LGRQLGFfXX1dLFdQPVt7cHJvdmlkZTp6eCx1c2VGYWN0b3J5OmZ1bmN0aW9uIFlQKCl7cmV0dXJuKGZ1bmN0aW9uIHQoKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgRVAoKX0pKCk/bmV3IERQOm5ldyB3UH19LHtwcm92aWRlOlZQLHVzZVZhbHVlOiJCcm93c2VyQW5pbWF0aW9ucyJ9LC4uLmpQXSxxUD1be3Byb3ZpZGU6engsdXNlQ2xhc3M6Tnh9LHtwcm92aWRlOlZQLHVzZVZhbHVlOiJOb29wQW5pbWF0aW9ucyJ9LC4uLmpQXTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFpQe3N0YXRpYyB3aXRoQ29uZmlnKHQpe3JldHVybntuZ01vZHVsZTpaUCxwcm92aWRlcnM6dC5kaXNhYmxlQW5pbWF0aW9ucz9xUDpXUH19fVpQLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxaUCl9LFpQLsm1bW9kPWFvKHt0eXBlOlpQfSksWlAuybVpbmo9dm4oe3Byb3ZpZGVyczpXUCxpbXBvcnRzOltVdl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFpQLFt7dHlwZTpBeSxhcmdzOlt7ZXhwb3J0czpbVXZdLHByb3ZpZGVyczpXUH1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFpQLHtleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1V2XX19KTtjbGFzcyBYUHt9WFAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhQKX0sWFAuybVtb2Q9YW8oe3R5cGU6WFB9KSxYUC7JtWluaj12bih7cHJvdmlkZXJzOnFQLGltcG9ydHM6W1V2XX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWFAsW3t0eXBlOkF5LGFyZ3M6W3tleHBvcnRzOltVdl0scHJvdmlkZXJzOnFQfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oWFAse2V4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bVXZdfX0pO2NvbnN0IEtQPXt9O2Z1bmN0aW9uIEpQKHQsZSl7aWYoS1BbdF09KEtQW3RdfHwwKSsxLCJmdW5jdGlvbiI9PXR5cGVvZiBlKXJldHVybiBRUCh0LCgoLi4ubik9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKC4uLm4pKSx7dHlwZTp0fSkpKTtzd2l0Y2goZT9lLl9hczoiZW1wdHkiKXtjYXNlImVtcHR5IjpyZXR1cm4gUVAodCwoKCk9Pih7dHlwZTp0fSkpKTtjYXNlInByb3BzIjpyZXR1cm4gUVAodCwoZT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHt0eXBlOnR9KSkpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGNvbmZpZy4iKX19ZnVuY3Rpb24gUVAodCxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInR5cGUiLHt2YWx1ZTp0LHdyaXRhYmxlOiExfSl9Y29uc3QgJFA9IkBuZ3J4L3N0b3JlL2luaXQiO2NsYXNzIHR3IGV4dGVuZHMgRntjb25zdHJ1Y3Rvcigpe3N1cGVyKHt0eXBlOiRQfSl9bmV4dCh0KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJcbiAgICAgICAgRGlzcGF0Y2ggZXhwZWN0ZWQgYW4gb2JqZWN0LCBpbnN0ZWFkIGl0IHJlY2VpdmVkIGEgZnVuY3Rpb24uXG4gICAgICAgIElmIHlvdSdyZSB1c2luZyB0aGUgY3JlYXRlQWN0aW9uIGZ1bmN0aW9uLCBtYWtlIHN1cmUgdG8gaW52b2tlIHRoZSBmdW5jdGlvblxuICAgICAgICBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIGFjdGlvbi4gRm9yIGV4YW1wbGUsIHNvbWVBY3Rpb24gc2hvdWxkIGJlIHNvbWVBY3Rpb24oKS4iKTtpZih2b2lkIDA9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkFjdGlvbnMgbXVzdCBiZSBvYmplY3RzIik7aWYodm9pZCAwPT09dC50eXBlKXRocm93IG5ldyBUeXBlRXJyb3IoIkFjdGlvbnMgbXVzdCBoYXZlIGEgdHlwZSBwcm9wZXJ0eSIpO3N1cGVyLm5leHQodCl9Y29tcGxldGUoKXt9bmdPbkRlc3Ryb3koKXtzdXBlci5jb21wbGV0ZSgpfX10dy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dHcpfSx0dy7JtXByb3Y9TW4oe3Rva2VuOnR3LGZhY3Rvcnk6dHcuybVmYWN9KSx0dy5jdG9yUGFyYW1ldGVycz0oKT0+W10sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh0dyxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NvbnN0IGV3PVt0d10sbnc9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBSb290IEd1YXJkIiksb3c9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBJbml0aWFsIFN0YXRlIiksaXc9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbml0aWFsIFN0YXRlIiksYXc9bmV3IEdhKCJAbmdyeC9zdG9yZSBSZWR1Y2VyIEZhY3RvcnkiKSxydz1uZXcgR2EoIkBuZ3J4L3N0b3JlIEludGVybmFsIFJlZHVjZXIgRmFjdG9yeSBQcm92aWRlciIpLHN3PW5ldyBHYSgiQG5ncngvc3RvcmUgSW5pdGlhbCBSZWR1Y2VycyIpLGx3PW5ldyBHYSgiQG5ncngvc3RvcmUgSW50ZXJuYWwgSW5pdGlhbCBSZWR1Y2VycyIpLGN3PW5ldyBHYSgiQG5ncngvc3RvcmUgU3RvcmUgRmVhdHVyZXMiKSxkdz1uZXcgR2EoIkBuZ3J4L3N0b3JlIEludGVybmFsIFN0b3JlIFJlZHVjZXJzIikscHc9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBGZWF0dXJlIFJlZHVjZXJzIiksbXc9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBGZWF0dXJlIENvbmZpZ3MiKSx1dz1uZXcgR2EoIkBuZ3J4L3N0b3JlIEludGVybmFsIFN0b3JlIEZlYXR1cmVzIiksZnc9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBGZWF0dXJlIFJlZHVjZXJzIFRva2VuIiksZ3c9bmV3IEdhKCJAbmdyeC9zdG9yZSBGZWF0dXJlIFJlZHVjZXJzIiksaHc9bmV3IEdhKCJAbmdyeC9zdG9yZSBVc2VyIFByb3ZpZGVkIE1ldGEgUmVkdWNlcnMiKSxidz1uZXcgR2EoIkBuZ3J4L3N0b3JlIE1ldGEgUmVkdWNlcnMiKSx5dz1uZXcgR2EoIkBuZ3J4L3N0b3JlIEludGVybmFsIFJlc29sdmVkIE1ldGEgUmVkdWNlcnMiKSxfdz1uZXcgR2EoIkBuZ3J4L3N0b3JlIFVzZXIgUnVudGltZSBDaGVja3MgQ29uZmlnIiksQ3c9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBVc2VyIFJ1bnRpbWUgQ2hlY2tzIENvbmZpZyIpLE13PW5ldyBHYSgiQG5ncngvc3RvcmUgSW50ZXJuYWwgUnVudGltZSBDaGVja3MiKSx2dz1uZXcgR2EoIkBuZ3J4L3N0b3JlIENoZWNrIGlmIEFjdGlvbiB0eXBlcyBhcmUgdW5pcXVlIik7ZnVuY3Rpb24geHcodCxlPXt9KXtjb25zdCBuPU9iamVjdC5rZXlzKHQpLG89e307Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspe2NvbnN0IGk9bltlXTsiZnVuY3Rpb24iPT10eXBlb2YgdFtpXSYmKG9baV09dFtpXSl9Y29uc3QgaT1PYmplY3Qua2V5cyhvKTtyZXR1cm4gZnVuY3Rpb24gdChuLGEpe249dm9pZCAwPT09bj9lOm47bGV0IHI9ITE7Y29uc3Qgcz17fTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyl7Y29uc3QgZT1pW3RdLGw9bltlXSxjPSgwLG9bZV0pKGwsYSk7c1tlXT1jLHI9cnx8YyE9PWx9cmV0dXJuIHI/czpufX1mdW5jdGlvbiBPdyguLi50KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoMD09PXQubGVuZ3RoKXJldHVybiBlO2NvbnN0IG49dFt0Lmxlbmd0aC0xXTtyZXR1cm4gdC5zbGljZSgwLC0xKS5yZWR1Y2VSaWdodCgoKHQsZSk9PmUodCkpLG4oZSkpfX1mdW5jdGlvbiBQdyh0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD4wJiYodD1Pdy5hcHBseShudWxsLFsuLi5lLHRdKSksKGUsbik9Pntjb25zdCBvPXQoZSk7cmV0dXJuKHQsZSk9Pm8odD12b2lkIDA9PT10P246dCxlKX19Y2xhc3Mgd3cgZXh0ZW5kcyBEe31jbGFzcyBrdyBleHRlbmRzIHR3e31jbGFzcyBTdyBleHRlbmRzIEZ7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIobyhuLGUpKSx0aGlzLmRpc3BhdGNoZXI9dCx0aGlzLmluaXRpYWxTdGF0ZT1lLHRoaXMucmVkdWNlcnM9bix0aGlzLnJlZHVjZXJGYWN0b3J5PW99Z2V0IGN1cnJlbnRSZWR1Y2Vycygpe3JldHVybiB0aGlzLnJlZHVjZXJzfWFkZEZlYXR1cmUodCl7dGhpcy5hZGRGZWF0dXJlcyhbdF0pfWFkZEZlYXR1cmVzKHQpe2NvbnN0IGU9dC5yZWR1Y2UoKCh0LHtyZWR1Y2VyczplLHJlZHVjZXJGYWN0b3J5Om4sbWV0YVJlZHVjZXJzOm8saW5pdGlhbFN0YXRlOmksa2V5OmF9KT0+e2NvbnN0IHI9ImZ1bmN0aW9uIj09dHlwZW9mIGU/KGZ1bmN0aW9uIHModCl7Y29uc3QgZT1BcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD4wP093KC4uLnQpOnQ9PnQ7cmV0dXJuKHQsbik9Pih0PWUodCksKGUsbyk9PnQoZT12b2lkIDA9PT1lP246ZSxvKSl9KShvKShlLGkpOlB3KG4sbykoZSxpKTtyZXR1cm4gdFthXT1yLHR9KSx7fSk7dGhpcy5hZGRSZWR1Y2VycyhlKX1yZW1vdmVGZWF0dXJlKHQpe3RoaXMucmVtb3ZlRmVhdHVyZXMoW3RdKX1yZW1vdmVGZWF0dXJlcyh0KXt0aGlzLnJlbW92ZVJlZHVjZXJzKHQubWFwKCh0PT50LmtleSkpKX1hZGRSZWR1Y2VyKHQsZSl7dGhpcy5hZGRSZWR1Y2Vycyh7W3RdOmV9KX1hZGRSZWR1Y2Vycyh0KXt0aGlzLnJlZHVjZXJzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLnJlZHVjZXJzKSx0KSx0aGlzLnVwZGF0ZVJlZHVjZXJzKE9iamVjdC5rZXlzKHQpKX1yZW1vdmVSZWR1Y2VyKHQpe3RoaXMucmVtb3ZlUmVkdWNlcnMoW3RdKX1yZW1vdmVSZWR1Y2Vycyh0KXt0LmZvckVhY2goKHQ9Pnt0aGlzLnJlZHVjZXJzPShmdW5jdGlvbiBlKHQsbil7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZpbHRlcigodD0+dCE9PW4pKS5yZWR1Y2UoKChlLG4pPT5PYmplY3QuYXNzaWduKGUse1tuXTp0W25dfSkpLHt9KX0pKHRoaXMucmVkdWNlcnMsdCl9KSksdGhpcy51cGRhdGVSZWR1Y2Vycyh0KX11cGRhdGVSZWR1Y2Vycyh0KXt0aGlzLm5leHQodGhpcy5yZWR1Y2VyRmFjdG9yeSh0aGlzLnJlZHVjZXJzLHRoaXMuaW5pdGlhbFN0YXRlKSksdGhpcy5kaXNwYXRjaGVyLm5leHQoe3R5cGU6IkBuZ3J4L3N0b3JlL3VwZGF0ZS1yZWR1Y2VycyIsZmVhdHVyZXM6dH0pfW5nT25EZXN0cm95KCl7dGhpcy5jb21wbGV0ZSgpfX1Tdy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U3cpKHZyKGt3KSx2cihpdyksdnIoc3cpLHZyKGF3KSl9LFN3Lsm1cHJvdj1Nbih7dG9rZW46U3csZmFjdG9yeTpTdy7JtWZhY30pLFN3LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6a3d9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltpd119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3N3XX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbYXddfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFN3LFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTprd30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2l3XX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbc3ddfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlthd119XX1dfSksbnVsbCk7Y29uc3QgRHc9W1N3LHtwcm92aWRlOnd3LHVzZUV4aXN0aW5nOlN3fSx7cHJvdmlkZTprdyx1c2VFeGlzdGluZzp0d31dO2NsYXNzIEV3IGV4dGVuZHMgSXtuZ09uRGVzdHJveSgpe3RoaXMuY29tcGxldGUoKX19RXcuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKEV3KSkpKG58fEV3KX19KSgpLEV3Lsm1cHJvdj1Nbih7dG9rZW46RXcsZmFjdG9yeTpFdy7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRXcsW3t0eXBlOmltfV0sbnVsbCxudWxsKTtjb25zdCBSdz1bRXddO2NsYXNzIEF3IGV4dGVuZHMgRHt9Y2xhc3MgVHcgZXh0ZW5kcyBGe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKG8pO2NvbnN0IGk9dC5waXBlKChmdW5jdGlvbiByKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPTApLFIoKGZ1bmN0aW9uKG4sbyl7bi5zdWJzY3JpYmUobmV3IFQobywoZnVuY3Rpb24obil7cmV0dXJuIG8uYWRkKHQuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIG8ubmV4dChuKX0pLGUpKX0pLChmdW5jdGlvbigpe3JldHVybiBvLmFkZCh0LnNjaGVkdWxlKChmdW5jdGlvbigpe3JldHVybiBvLmNvbXBsZXRlKCl9KSxlKSl9KSwoZnVuY3Rpb24obil7cmV0dXJuIG8uYWRkKHQuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIG8uZXJyb3Iobil9KSxlKSl9KSkpfSkpfSkob3QpKS5waXBlKFZlKGUpKS5waXBlKChmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIFIobWUodCxlLGFyZ3VtZW50cy5sZW5ndGg+PTIsITApKX0pKE53LHtzdGF0ZTpvfSkpO3RoaXMuc3RhdGVTdWJzY3JpcHRpb249aS5zdWJzY3JpYmUoKCh7c3RhdGU6dCxhY3Rpb246ZX0pPT57dGhpcy5uZXh0KHQpLG4ubmV4dChlKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmNvbXBsZXRlKCl9fWZ1bmN0aW9uIE53KHQ9e3N0YXRlOnZvaWQgMH0sW2Usbl0pe2NvbnN0e3N0YXRlOm99PXQ7cmV0dXJue3N0YXRlOm4obyxlKSxhY3Rpb246ZX19VHcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFR3KSh2cih0dyksdnIod3cpLHZyKEV3KSx2cihpdykpfSxUdy7JtXByb3Y9TW4oe3Rva2VuOlR3LGZhY3Rvcnk6VHcuybVmYWN9KSxUdy5JTklUPSRQLFR3LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dHd9LHt0eXBlOnd3fSx7dHlwZTpFd30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2l3XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChUdyxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dHd9LHt0eXBlOnd3fSx7dHlwZTpFd30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2l3XX1dfV19KSxudWxsKTtjb25zdCB6dz1bVHcse3Byb3ZpZGU6QXcsdXNlRXhpc3Rpbmc6VHd9XTtjbGFzcyBJdyBleHRlbmRzIER7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy5hY3Rpb25zT2JzZXJ2ZXI9ZSx0aGlzLnJlZHVjZXJNYW5hZ2VyPW4sdGhpcy5zb3VyY2U9dH1zZWxlY3QodCwuLi5lKXtyZXR1cm4gRncuY2FsbChudWxsLHQsLi4uZSkodGhpcyl9bGlmdCh0KXtjb25zdCBlPW5ldyBJdyh0aGlzLHRoaXMuYWN0aW9uc09ic2VydmVyLHRoaXMucmVkdWNlck1hbmFnZXIpO3JldHVybiBlLm9wZXJhdG9yPXQsZX1kaXNwYXRjaCh0KXt0aGlzLmFjdGlvbnNPYnNlcnZlci5uZXh0KHQpfW5leHQodCl7dGhpcy5hY3Rpb25zT2JzZXJ2ZXIubmV4dCh0KX1lcnJvcih0KXt0aGlzLmFjdGlvbnNPYnNlcnZlci5lcnJvcih0KX1jb21wbGV0ZSgpe3RoaXMuYWN0aW9uc09ic2VydmVyLmNvbXBsZXRlKCl9YWRkUmVkdWNlcih0LGUpe3RoaXMucmVkdWNlck1hbmFnZXIuYWRkUmVkdWNlcih0LGUpfXJlbW92ZVJlZHVjZXIodCl7dGhpcy5yZWR1Y2VyTWFuYWdlci5yZW1vdmVSZWR1Y2VyKHQpfX1Jdy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SXcpKHZyKEF3KSx2cih0dyksdnIoU3cpKX0sSXcuybVwcm92PU1uKHt0b2tlbjpJdyxmYWN0b3J5Okl3Lsm1ZmFjfSksSXcuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpBd30se3R5cGU6dHd9LHt0eXBlOlN3fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChJdyxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QXd9LHt0eXBlOnR3fSx7dHlwZTpTd31dfSksbnVsbCk7Y29uc3QgSHc9W0l3XTtmdW5jdGlvbiBGdyh0LGUsLi4ubil7cmV0dXJuIGZ1bmN0aW9uIG8oaSl7bGV0IGE7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtjb25zdCBvPVtlLC4uLm5dLmZpbHRlcihCb29sZWFuKTthPWkucGlwZSgoZnVuY3Rpb24gcigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj10Lmxlbmd0aDtpZigwPT09bil0aHJvdyBuZXcgRXJyb3IoImxpc3Qgb2YgcHJvcGVydGllcyBjYW5ub3QgYmUgZW1wdHkuIik7cmV0dXJuIEl0KChmdW5jdGlvbihlKXtmb3IodmFyIG89ZSxpPTA7aTxuO2krKyl7dmFyIGE9bnVsbD09bz92b2lkIDA6b1t0W2ldXTtpZih2b2lkIDA9PT1hKXJldHVybjtvPWF9cmV0dXJuIG99KSl9KSh0LC4uLm8pKX1lbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoYFVuZXhwZWN0ZWQgdHlwZSAnJHt0eXBlb2YgdH0nIGluIHNlbGVjdCBvcGVyYXRvciwgZXhwZWN0ZWQgJ3N0cmluZycgb3IgJ2Z1bmN0aW9uJ2ApO2E9aS5waXBlKEl0KChuPT50KG4sZSkpKSl9cmV0dXJuIGEucGlwZShNZSgpKX19Y29uc3QgTHc9Imh0dHBzOi8vbmdyeC5pby9ndWlkZS9zdG9yZS9jb25maWd1cmF0aW9uL3J1bnRpbWUtY2hlY2tzIjtmdW5jdGlvbiBCdyh0KXtyZXR1cm4gdm9pZCAwPT09dH1mdW5jdGlvbiBWdyh0KXtyZXR1cm4gbnVsbD09PXR9ZnVuY3Rpb24gancodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gVXcodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dH1mdW5jdGlvbiBHdyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH1mdW5jdGlvbiBXdyh0LGUpe3JldHVybiB0PT09ZX1mdW5jdGlvbiBZdyh0LGUsbil7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspaWYoIW4odFtvXSxlW29dKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBxdyh0LGU9V3csbj1Xdyl7bGV0IG8saT1udWxsLGE9bnVsbDtyZXR1cm57bWVtb2l6ZWQ6ZnVuY3Rpb24gcigpe2lmKHZvaWQgMCE9PW8pcmV0dXJuIG8ucmVzdWx0O2lmKCFpKXJldHVybiBhPXQuYXBwbHkobnVsbCxhcmd1bWVudHMpLGk9YXJndW1lbnRzLGE7aWYoIVl3KGFyZ3VtZW50cyxpLGUpKXJldHVybiBhO2NvbnN0IHI9dC5hcHBseShudWxsLGFyZ3VtZW50cyk7cmV0dXJuIGk9YXJndW1lbnRzLG4oYSxyKT9hOihhPXIscil9LHJlc2V0OmZ1bmN0aW9uIHMoKXtpPW51bGwsYT1udWxsfSxzZXRSZXN1bHQ6ZnVuY3Rpb24gbCh0KXtvPXtyZXN1bHQ6dH19LGNsZWFyUmVzdWx0OmZ1bmN0aW9uIGMoKXtvPXZvaWQgMH19fWZ1bmN0aW9uIFp3KC4uLnQpe3JldHVybihmdW5jdGlvbiBlKHQsbj17c3RhdGVGbjpYd30pe3JldHVybiBmdW5jdGlvbiguLi5lKXtsZXQgbz1lO2lmKEFycmF5LmlzQXJyYXkob1swXSkpe2NvbnN0W3QsLi4uZV09bztvPVsuLi50LC4uLmVdfWNvbnN0IGk9by5zbGljZSgwLG8ubGVuZ3RoLTEpLGE9b1tvLmxlbmd0aC0xXSxyPWkuZmlsdGVyKCh0PT50LnJlbGVhc2UmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnJlbGVhc2UpKSxzPXQoKGZ1bmN0aW9uKC4uLnQpe3JldHVybiBhLmFwcGx5KG51bGwsdCl9KSksbD1xdygoZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zdGF0ZUZuLmFwcGx5KG51bGwsW3QsaSxlLHNdKX0pKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihsLm1lbW9pemVkLHtyZWxlYXNlOmZ1bmN0aW9uIGMoKXtsLnJlc2V0KCkscy5yZXNldCgpLHIuZm9yRWFjaCgodD0+dC5yZWxlYXNlKCkpKX0scHJvamVjdG9yOnMubWVtb2l6ZWQsc2V0UmVzdWx0Omwuc2V0UmVzdWx0LGNsZWFyUmVzdWx0OmwuY2xlYXJSZXN1bHR9KX19KShxdykoLi4udCl9ZnVuY3Rpb24gWHcodCxlLG4sbyl7aWYodm9pZCAwPT09bil7Y29uc3Qgbj1lLm1hcCgoZT0+ZSh0KSkpO3JldHVybiBvLm1lbW9pemVkLmFwcGx5KG51bGwsbil9Y29uc3QgaT1lLm1hcCgoZT0+ZSh0LG4pKSk7cmV0dXJuIG8ubWVtb2l6ZWQuYXBwbHkobnVsbCxbLi4uaSxuXSl9ZnVuY3Rpb24gS3codCl7cmV0dXJuIFp3KChlPT57Y29uc3Qgbj1lW3RdO3JldHVybiB5XygpJiYhKHQgaW4gZSkmJmNvbnNvbGUud2FybihgQG5ncngvc3RvcmU6IFRoZSBmZWF0dXJlIG5hbWUgIiR7dH0iIGRvZXMgbm90IGV4aXN0IGluIHRoZSBzdGF0ZSwgdGhlcmVmb3JlIGNyZWF0ZUZlYXR1cmVTZWxlY3RvciBjYW5ub3QgYWNjZXNzIGl0LiAgQmUgc3VyZSBpdCBpcyBpbXBvcnRlZCBpbiBhIGxvYWRlZCBtb2R1bGUgdXNpbmcgU3RvcmVNb2R1bGUuZm9yUm9vdCgnJHt0fScsIC4uLikgb3IgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZSgnJHt0fScsIC4uLikuICBJZiB0aGUgZGVmYXVsdCBzdGF0ZSBpcyBpbnRlbmRlZCB0byBiZSB1bmRlZmluZWQsIGFzIGlzIHRoZSBjYXNlIHdpdGggcm91dGVyIHN0YXRlLCB0aGlzIGRldmVsb3BtZW50LW9ubHkgd2FybmluZyBtZXNzYWdlIGNhbiBiZSBpZ25vcmVkLmApLG59KSwodD0+dCkpfWZ1bmN0aW9uIEp3KHQpe09iamVjdC5mcmVlemUodCk7Y29uc3QgZT1Hdyh0KTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkuZm9yRWFjaCgobj0+e2lmKCFuLnN0YXJ0c1dpdGgoIsm1IikmJihmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfSkodCxuKSYmKCFlfHwiY2FsbGVyIiE9PW4mJiJjYWxsZWUiIT09biYmImFyZ3VtZW50cyIhPT1uKSl7Y29uc3QgZT10W25dOyFVdyhlKSYmIUd3KGUpfHxPYmplY3QuaXNGcm96ZW4oZSl8fEp3KGUpfX0pKSx0fWZ1bmN0aW9uIFF3KHQsZT1bXSl7cmV0dXJuKEJ3KHQpfHxWdyh0KSkmJjA9PT1lLmxlbmd0aD97cGF0aDpbInJvb3QiXSx2YWx1ZTp0fTpPYmplY3Qua2V5cyh0KS5yZWR1Y2UoKChuLG8pPT57aWYobilyZXR1cm4gbjtjb25zdCBpPXRbb107cmV0dXJuKGZ1bmN0aW9uIGEodCl7cmV0dXJuIEd3KHQpJiZ0Lmhhc093blByb3BlcnR5KCLJtWNtcCIpfSkoaSk/bjohKEJ3KGkpfHxWdyhpKXx8KGZ1bmN0aW9uIHIodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0fSkoaSl8fChmdW5jdGlvbiBzKHQpe3JldHVybiJib29sZWFuIj09dHlwZW9mIHR9KShpKXx8KGZ1bmN0aW9uIGwodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fSkoaSl8fGp3KGkpKSYmKChmdW5jdGlvbiBjKHQpe2lmKCEoZnVuY3Rpb24gZSh0KXtyZXR1cm4gVXcodCkmJiFqdyh0KX0pKHQpKXJldHVybiExO2NvbnN0IG49T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO3JldHVybiBuPT09T2JqZWN0LnByb3RvdHlwZXx8bnVsbD09PW59KShpKT9RdyhpLFsuLi5lLG9dKTp7cGF0aDpbLi4uZSxvXSx2YWx1ZTppfSl9KSwhMSl9ZnVuY3Rpb24gJHcodCxlKXtpZighMT09PXQpcmV0dXJuO2NvbnN0IG49dC5wYXRoLmpvaW4oIi4iKSxvPW5ldyBFcnJvcihgRGV0ZWN0ZWQgdW5zZXJpYWxpemFibGUgJHtlfSBhdCAiJHtufSIuICR7THd9I3N0cmljdCR7ZX1zZXJpYWxpemFiaWxpdHlgKTt0aHJvdyBvLnZhbHVlPXQudmFsdWUsby51bnNlcmlhbGl6YWJsZVBhdGg9bixvfWZ1bmN0aW9uIHRrKHQpe3JldHVybiB5XygpP09iamVjdC5hc3NpZ24oe3N0cmljdFN0YXRlU2VyaWFsaXphYmlsaXR5OiExLHN0cmljdEFjdGlvblNlcmlhbGl6YWJpbGl0eTohMSxzdHJpY3RTdGF0ZUltbXV0YWJpbGl0eTohMCxzdHJpY3RBY3Rpb25JbW11dGFiaWxpdHk6ITAsc3RyaWN0QWN0aW9uV2l0aGluTmdab25lOiExLHN0cmljdEFjdGlvblR5cGVVbmlxdWVuZXNzOiExfSx0KTp7c3RyaWN0U3RhdGVTZXJpYWxpemFiaWxpdHk6ITEsc3RyaWN0QWN0aW9uU2VyaWFsaXphYmlsaXR5OiExLHN0cmljdFN0YXRlSW1tdXRhYmlsaXR5OiExLHN0cmljdEFjdGlvbkltbXV0YWJpbGl0eTohMSxzdHJpY3RBY3Rpb25XaXRoaW5OZ1pvbmU6ITEsc3RyaWN0QWN0aW9uVHlwZVVuaXF1ZW5lc3M6ITF9fWZ1bmN0aW9uIGVrKHtzdHJpY3RBY3Rpb25TZXJpYWxpemFiaWxpdHk6dCxzdHJpY3RTdGF0ZVNlcmlhbGl6YWJpbGl0eTplfSl7cmV0dXJuIG49PnR8fGU/KGZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gZnVuY3Rpb24obixvKXtlLmFjdGlvbihvKSYmJHcoUXcobyksImFjdGlvbiIpO2NvbnN0IGk9dChuLG8pO3JldHVybiBlLnN0YXRlKCkmJiR3KFF3KGkpLCJzdGF0ZSIpLGl9fSkobix7YWN0aW9uOmU9PnQmJiFvayhlKSxzdGF0ZTooKT0+ZX0pOm59ZnVuY3Rpb24gbmsoe3N0cmljdEFjdGlvbkltbXV0YWJpbGl0eTp0LHN0cmljdFN0YXRlSW1tdXRhYmlsaXR5OmV9KXtyZXR1cm4gbj0+dHx8ZT8oZnVuY3Rpb24gbyh0LGUpe3JldHVybiBmdW5jdGlvbihuLG8pe2NvbnN0IGk9ZS5hY3Rpb24obyk/Sncobyk6byxhPXQobixpKTtyZXR1cm4gZS5zdGF0ZSgpP0p3KGEpOmF9fSkobix7YWN0aW9uOmU9PnQmJiFvayhlKSxzdGF0ZTooKT0+ZX0pOm59ZnVuY3Rpb24gb2sodCl7cmV0dXJuIHQudHlwZS5zdGFydHNXaXRoKCJAbmdyeCIpfWZ1bmN0aW9uIGlrKHtzdHJpY3RBY3Rpb25XaXRoaW5OZ1pvbmU6dH0pe3JldHVybiBlPT50PyhmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4sbyl7aWYoZS5hY3Rpb24obykmJiFhXy5pc0luQW5ndWxhclpvbmUoKSl0aHJvdyBuZXcgRXJyb3IoYEFjdGlvbiAnJHtvLnR5cGV9JyBydW5uaW5nIG91dHNpZGUgTmdab25lLiAke0x3fSNzdHJpY3RhY3Rpb253aXRoaW5uZ3pvbmVgKTtyZXR1cm4gdChuLG8pfX0pKGUse2FjdGlvbjplPT50JiYhb2soZSl9KTplfWZ1bmN0aW9uIGFrKCl7cmV0dXJuW3twcm92aWRlOnZ3LG11bHRpOiEwLGRlcHM6W013XSx1c2VGYWN0b3J5OnNrfV19ZnVuY3Rpb24gcmsodCl7cmV0dXJuIHR9ZnVuY3Rpb24gc2sodCl7aWYoIXQuc3RyaWN0QWN0aW9uVHlwZVVuaXF1ZW5lc3MpcmV0dXJuO2NvbnN0IGU9T2JqZWN0LmVudHJpZXMoS1ApLmZpbHRlcigoKFssdF0pPT50PjEpKS5tYXAoKChbdF0pPT50KSk7aWYoZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBBY3Rpb24gdHlwZXMgYXJlIHJlZ2lzdGVyZWQgbW9yZSB0aGFuIG9uY2UsICR7ZS5tYXAoKHQ9PmAiJHt0fSJgKSkuam9pbigiLCAiKX0uICR7THd9I3N0cmljdGFjdGlvbnR5cGV1bmlxdWVuZXNzYCl9Y2xhc3MgbGt7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe319bGsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxrKSh2cih0dyksdnIod3cpLHZyKEV3KSx2cihJdyksdnIobncsOCksdnIodncsOCkpfSxsay7JtW1vZD1hbyh7dHlwZTpsa30pLGxrLsm1aW5qPXZuKHt9KSxsay5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnR3fSx7dHlwZTp3d30se3R5cGU6RXd9LHt0eXBlOkl3fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W253XX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3Z3XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsayxbe3R5cGU6QXksYXJnczpbe31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnR3fSx7dHlwZTp3d30se3R5cGU6RXd9LHt0eXBlOkl3fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W253XX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3Z3XX1dfV19KSxudWxsKTtjbGFzcyBja3tjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3RoaXMuZmVhdHVyZXM9dCx0aGlzLmZlYXR1cmVSZWR1Y2Vycz1lLHRoaXMucmVkdWNlck1hbmFnZXI9bjtjb25zdCBhPXQubWFwKCgodCxuKT0+e2NvbnN0IG89ZS5zaGlmdCgpW25dO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3JlZHVjZXJzOm8saW5pdGlhbFN0YXRlOmZrKHQuaW5pdGlhbFN0YXRlKX0pfSkpO24uYWRkRmVhdHVyZXMoYSl9bmdPbkRlc3Ryb3koKXt0aGlzLnJlZHVjZXJNYW5hZ2VyLnJlbW92ZUZlYXR1cmVzKHRoaXMuZmVhdHVyZXMpfX1jay7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Y2spKHZyKHV3KSx2cihndyksdnIoU3cpLHZyKGxrKSx2cih2dyw4KSl9LGNrLsm1bW9kPWFvKHt0eXBlOmNrfSksY2suybVpbmo9dm4oe30pLGNrLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbdXddfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2d3XX1dfSx7dHlwZTpTd30se3R5cGU6bGt9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbdnddfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGNrLFt7dHlwZTpBeSxhcmdzOlt7fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbdXddfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2d3XX1dfSx7dHlwZTpTd30se3R5cGU6bGt9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbdnddfV19XX0pLG51bGwpO2NsYXNzIGRre3N0YXRpYyBmb3JSb290KHQsZT17fSl7cmV0dXJue25nTW9kdWxlOmxrLHByb3ZpZGVyczpbe3Byb3ZpZGU6bncsdXNlRmFjdG9yeTpoayxkZXBzOltbSXcsbmV3IFNyLG5ldyBFcl1dfSx7cHJvdmlkZTpvdyx1c2VWYWx1ZTplLmluaXRpYWxTdGF0ZX0se3Byb3ZpZGU6aXcsdXNlRmFjdG9yeTpmayxkZXBzOltvd119LHtwcm92aWRlOmx3LHVzZVZhbHVlOnR9LHtwcm92aWRlOmR3LHVzZUV4aXN0aW5nOnQgaW5zdGFuY2VvZiBHYT90Omx3fSx7cHJvdmlkZTpzdyxkZXBzOltycCxsdyxbbmV3IGtyKGR3KV1dLHVzZUZhY3Rvcnk6cGt9LHtwcm92aWRlOmh3LHVzZVZhbHVlOmUubWV0YVJlZHVjZXJzP2UubWV0YVJlZHVjZXJzOltdfSx7cHJvdmlkZTp5dyxkZXBzOltidyxod10sdXNlRmFjdG9yeTpna30se3Byb3ZpZGU6cncsdXNlVmFsdWU6ZS5yZWR1Y2VyRmFjdG9yeT9lLnJlZHVjZXJGYWN0b3J5Onh3fSx7cHJvdmlkZTphdyxkZXBzOltydyx5d10sdXNlRmFjdG9yeTpQd30sZXcsRHcsUncsencsSHcsKG49ZS5ydW50aW1lQ2hlY2tzLFt7cHJvdmlkZTpDdyx1c2VWYWx1ZTpufSx7cHJvdmlkZTpfdyx1c2VGYWN0b3J5OnJrLGRlcHM6W0N3XX0se3Byb3ZpZGU6TXcsZGVwczpbX3ddLHVzZUZhY3Rvcnk6dGt9LHtwcm92aWRlOmJ3LG11bHRpOiEwLGRlcHM6W013XSx1c2VGYWN0b3J5Om5rfSx7cHJvdmlkZTpidyxtdWx0aTohMCxkZXBzOltNd10sdXNlRmFjdG9yeTpla30se3Byb3ZpZGU6YncsbXVsdGk6ITAsZGVwczpbTXddLHVzZUZhY3Rvcnk6aWt9XSksYWsoKV19O3ZhciBufXN0YXRpYyBmb3JGZWF0dXJlKHQsZSxuPXt9KXtyZXR1cm57bmdNb2R1bGU6Y2sscHJvdmlkZXJzOlt7cHJvdmlkZTptdyxtdWx0aTohMCx1c2VWYWx1ZTp0IGluc3RhbmNlb2YgT2JqZWN0P3t9Om59LHtwcm92aWRlOmN3LG11bHRpOiEwLHVzZVZhbHVlOntrZXk6dCBpbnN0YW5jZW9mIE9iamVjdD90Lm5hbWU6dCxyZWR1Y2VyRmFjdG9yeTpuIGluc3RhbmNlb2YgR2F8fCFuLnJlZHVjZXJGYWN0b3J5P3h3Om4ucmVkdWNlckZhY3RvcnksbWV0YVJlZHVjZXJzOm4gaW5zdGFuY2VvZiBHYXx8IW4ubWV0YVJlZHVjZXJzP1tdOm4ubWV0YVJlZHVjZXJzLGluaXRpYWxTdGF0ZTpuIGluc3RhbmNlb2YgR2F8fCFuLmluaXRpYWxTdGF0ZT92b2lkIDA6bi5pbml0aWFsU3RhdGV9fSx7cHJvdmlkZTp1dyxkZXBzOltycCxtdyxjd10sdXNlRmFjdG9yeTpta30se3Byb3ZpZGU6cHcsbXVsdGk6ITAsdXNlVmFsdWU6dCBpbnN0YW5jZW9mIE9iamVjdD90LnJlZHVjZXI6ZX0se3Byb3ZpZGU6ZncsbXVsdGk6ITAsdXNlRXhpc3Rpbmc6ZSBpbnN0YW5jZW9mIEdhP2U6cHd9LHtwcm92aWRlOmd3LG11bHRpOiEwLGRlcHM6W3JwLHB3LFtuZXcga3IoZncpXV0sdXNlRmFjdG9yeTp1a30sYWsoKV19fX1mdW5jdGlvbiBwayh0LGUpe3JldHVybiBlIGluc3RhbmNlb2YgR2E/dC5nZXQoZSk6ZX1mdW5jdGlvbiBtayh0LGUsbil7cmV0dXJuIG4ubWFwKCgobixvKT0+e2lmKGVbb11pbnN0YW5jZW9mIEdhKXtjb25zdCBpPXQuZ2V0KGVbb10pO3JldHVybntrZXk6bi5rZXkscmVkdWNlckZhY3Rvcnk6aS5yZWR1Y2VyRmFjdG9yeT9pLnJlZHVjZXJGYWN0b3J5Onh3LG1ldGFSZWR1Y2VyczppLm1ldGFSZWR1Y2Vycz9pLm1ldGFSZWR1Y2VyczpbXSxpbml0aWFsU3RhdGU6aS5pbml0aWFsU3RhdGV9fXJldHVybiBufSkpfWZ1bmN0aW9uIHVrKHQsZSl7cmV0dXJuIGUubWFwKChlPT5lIGluc3RhbmNlb2YgR2E/dC5nZXQoZSk6ZSkpfWZ1bmN0aW9uIGZrKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoKTp0fWZ1bmN0aW9uIGdrKHQsZSl7cmV0dXJuIHQuY29uY2F0KGUpfWZ1bmN0aW9uIGhrKHQpe2lmKHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3RvcmVNb2R1bGUuZm9yUm9vdCgpIGNhbGxlZCB0d2ljZS4gRmVhdHVyZSBtb2R1bGVzIHNob3VsZCB1c2UgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZSgpIGluc3RlYWQuIik7cmV0dXJuImd1YXJkZWQifWZ1bmN0aW9uIGJrKC4uLnQpe3JldHVybntyZWR1Y2VyOnQucG9wKCksdHlwZXM6dC5tYXAoKHQ9PnQudHlwZSkpfX1mdW5jdGlvbiB5ayh0LC4uLmUpe2NvbnN0IG49bmV3IE1hcDtmb3IoY29uc3QgdCBvZiBlKWZvcihjb25zdCBlIG9mIHQudHlwZXMpe2NvbnN0IG89bi5nZXQoZSk7bi5zZXQoZSxvPyhlLG4pPT50LnJlZHVjZXIobyhlLG4pLG4pOnQucmVkdWNlcil9cmV0dXJuIGZ1bmN0aW9uKGU9dCxvKXtjb25zdCBpPW4uZ2V0KG8udHlwZSk7cmV0dXJuIGk/aShlLG8pOmV9fWRrLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkayl9LGRrLsm1bW9kPWFvKHt0eXBlOmRrfSksZGsuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZGssW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLG51bGwsbnVsbCk7Y29uc3QgX2s9e2Rpc3BhdGNoOiEwLHVzZUVmZmVjdHNFcnJvckhhbmRsZXI6ITB9LENrPSJfX0BuZ3J4L2VmZmVjdHNfY3JlYXRlX18iO2Z1bmN0aW9uIE1rKHQsZSl7Y29uc3Qgbj10KCksbz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sX2spLGUpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobixDayx7dmFsdWU6b30pLG59ZnVuY3Rpb24gdmsodCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLmZpbHRlcigoZT0+ISghdFtlXXx8IXRbZV0uaGFzT3duUHJvcGVydHkoQ2spKSYmdFtlXVtDa10uaGFzT3duUHJvcGVydHkoImRpc3BhdGNoIikpKS5tYXAoKGU9Pk9iamVjdC5hc3NpZ24oe3Byb3BlcnR5TmFtZTplfSx0W2VdW0NrXSkpKX1mdW5jdGlvbiB4ayh0KXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfWNvbnN0IE9rPSJfX0BuZ3J4L2VmZmVjdHNfXyI7ZnVuY3Rpb24gUGsodCl7cmV0dXJuIE93KHdrLHhrKSh0KX1mdW5jdGlvbiB3ayh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdC5jb25zdHJ1Y3Rvci5oYXNPd25Qcm9wZXJ0eShPayl9KSh0KT90LmNvbnN0cnVjdG9yW09rXTpbXX1mdW5jdGlvbiBrayh0LGUsbj0xMCl7cmV0dXJuIHQucGlwZShwZSgobz0+KGUmJmUuaGFuZGxlRXJyb3Iobyksbjw9MT90OmtrKHQsZSxuLTEpKSkpKX1jbGFzcyBTayBleHRlbmRzIER7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0JiYodGhpcy5zb3VyY2U9dCl9bGlmdCh0KXtjb25zdCBlPW5ldyBTaztyZXR1cm4gZS5zb3VyY2U9dGhpcyxlLm9wZXJhdG9yPXQsZX19ZnVuY3Rpb24gRGsoLi4udCl7cmV0dXJuIGNlKChlPT50LnNvbWUoKHQ9PiJzdHJpbmciPT10eXBlb2YgdD90PT09ZS50eXBlOnQudHlwZT09PWUudHlwZSkpKSl9ZnVuY3Rpb24gRWsodCl7cmV0dXJuIFJrKHQsIm5ncnhPbkluaXRFZmZlY3RzIil9ZnVuY3Rpb24gUmsodCxlKXtyZXR1cm4gdCYmZSBpbiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdFtlXX1Tay7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U2spKHZyKEV3KSl9LFNrLsm1cHJvdj1Nbih7dG9rZW46U2ssZmFjdG9yeTpTay7JtWZhY30pLFNrLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6RCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltFd119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoU2ssW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkQsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbRXddfV19XX0pLG51bGwpO2NvbnN0IEFrPW5ldyBHYSgiQG5ncngvZWZmZWN0cyBJbnRlcm5hbCBSb290IEd1YXJkIiksVGs9bmV3IEdhKCJAbmdyeC9lZmZlY3RzIFVzZXIgUHJvdmlkZWQgRWZmZWN0cyIpLE5rPW5ldyBHYSgiQG5ncngvZWZmZWN0cyBJbnRlcm5hbCBSb290IEVmZmVjdHMiKSx6az1uZXcgR2EoIkBuZ3J4L2VmZmVjdHMgUm9vdCBFZmZlY3RzIiksSWs9bmV3IEdhKCJAbmdyeC9lZmZlY3RzIEludGVybmFsIEZlYXR1cmUgRWZmZWN0cyIpLEhrPW5ldyBHYSgiQG5ncngvZWZmZWN0cyBGZWF0dXJlIEVmZmVjdHMiKSxGaz1uZXcgR2EoIkBuZ3J4L2VmZmVjdHMgRWZmZWN0cyBFcnJvciBIYW5kbGVyIik7Y2xhc3MgTGsgZXh0ZW5kcyBJe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLmVycm9ySGFuZGxlcj10LHRoaXMuZWZmZWN0c0Vycm9ySGFuZGxlcj1lfWFkZEVmZmVjdHModCl7dGhpcy5uZXh0KHQpfXRvQWN0aW9ucygpe3JldHVybiB0aGlzLnBpcGUod2UoeGspLFp0KCh0PT50LnBpcGUod2UoQmspKSkpLFp0KCh0PT5yZSh0LnBpcGUoUGUoKHQ9PihmdW5jdGlvbiBlKHQsbil7cmV0dXJuIGU9Pntjb25zdCBvPShmdW5jdGlvbiBpKHQsZSxuKXtjb25zdCBvPXhrKHQpLmNvbnN0cnVjdG9yLm5hbWU7cmV0dXJuIHJlKC4uLihmdW5jdGlvbiBpKHQpe3JldHVybltQayx2a10ucmVkdWNlKCgoZSxuKT0+ZS5jb25jYXQobih0KSkpLFtdKX0pKHQpLm1hcCgoKHtwcm9wZXJ0eU5hbWU6aSxkaXNwYXRjaDphLHVzZUVmZmVjdHNFcnJvckhhbmRsZXI6cn0pPT57Y29uc3Qgcz0iZnVuY3Rpb24iPT10eXBlb2YgdFtpXT90W2ldKCk6dFtpXSxsPXI/bihzLGUpOnM7cmV0dXJuITE9PT1hP2wucGlwZSh5ZSgpKTpsLnBpcGUoKGZ1bmN0aW9uIGMoKXtyZXR1cm4gUigoZnVuY3Rpb24odCxlKXt0LnN1YnNjcmliZShuZXcgVChlLChmdW5jdGlvbih0KXtlLm5leHQoQXQuY3JlYXRlTmV4dCh0KSl9KSwoZnVuY3Rpb24oKXtlLm5leHQoQXQuY3JlYXRlQ29tcGxldGUoKSksZS5jb21wbGV0ZSgpfSksKGZ1bmN0aW9uKHQpe2UubmV4dChBdC5jcmVhdGVFcnJvcih0KSksZS5jb21wbGV0ZSgpfSkpKX0pKX0pKCkpLnBpcGUoSXQoKGU9Pih7ZWZmZWN0OnRbaV0sbm90aWZpY2F0aW9uOmUscHJvcGVydHlOYW1lOmksc291cmNlTmFtZTpvLHNvdXJjZUluc3RhbmNlOnR9KSkpKX0pKSl9KShlLHQsbik7cmV0dXJuKGZ1bmN0aW9uIGEodCl7cmV0dXJuIFJrKHQsIm5ncnhPblJ1bkVmZmVjdHMiKX0pKGUpP2UubmdyeE9uUnVuRWZmZWN0cyhvKTpvfX0pKHRoaXMuZXJyb3JIYW5kbGVyLHRoaXMuZWZmZWN0c0Vycm9ySGFuZGxlcikodCkpKSxJdCgodD0+KChmdW5jdGlvbiBlKHQsbil7aWYoIk4iPT09dC5ub3RpZmljYXRpb24ua2luZCl7Y29uc3QgZT10Lm5vdGlmaWNhdGlvbi52YWx1ZTshKGZ1bmN0aW9uIG8odCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJnQmJnQudHlwZSYmInN0cmluZyI9PXR5cGVvZiB0LnR5cGV9KShlKSYmbi5oYW5kbGVFcnJvcihuZXcgRXJyb3IoYEVmZmVjdCAkeyhmdW5jdGlvbiBpKHtwcm9wZXJ0eU5hbWU6dCxzb3VyY2VJbnN0YW5jZTplLHNvdXJjZU5hbWU6bn0pe2NvbnN0IG89ImZ1bmN0aW9uIj09dHlwZW9mIGVbdF07cmV0dXJuYCIke259LiR7U3RyaW5nKHQpfSR7bz8iKCkiOiIifSJgfSkodCl9IGRpc3BhdGNoZWQgYW4gaW52YWxpZCBhY3Rpb246ICR7KGZ1bmN0aW9uIGEodCl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jYXRjaChlKXtyZXR1cm4gdH19KShlKX1gKSl9fSkodCx0aGlzLmVycm9ySGFuZGxlciksdC5ub3RpZmljYXRpb24pKSksY2UoKHQ9PiJOIj09PXQua2luZCYmbnVsbCE9dC52YWx1ZSkpLChmdW5jdGlvbiBlKCl7cmV0dXJuIFIoKGZ1bmN0aW9uKHQsZSl7dC5zdWJzY3JpYmUobmV3IFQoZSwoZnVuY3Rpb24odCl7cmV0dXJuIFR0KHQsZSl9KSkpfSkpfSkoKSksdC5waXBlKGJlKDEpLGNlKEVrKSxJdCgodD0+dC5uZ3J4T25Jbml0RWZmZWN0cygpKSkpKSkpKX19ZnVuY3Rpb24gQmsodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIFJrKHQsIm5ncnhPbklkZW50aWZ5RWZmZWN0cyIpfSkodCk/dC5uZ3J4T25JZGVudGlmeUVmZmVjdHMoKToiIn1May7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TGspKHZyKFpzKSx2cihGaykpfSxMay7JtXByb3Y9TW4oe3Rva2VuOkxrLGZhY3Rvcnk6TGsuybVmYWN9KSxMay5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlpzfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbRmtdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKExrLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpac30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0ZrXX1dfV19KSxudWxsKTtjbGFzcyBWa3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuZWZmZWN0U291cmNlcz10LHRoaXMuc3RvcmU9ZSx0aGlzLmVmZmVjdHNTdWJzY3JpcHRpb249bnVsbH1zdGFydCgpe3RoaXMuZWZmZWN0c1N1YnNjcmlwdGlvbnx8KHRoaXMuZWZmZWN0c1N1YnNjcmlwdGlvbj10aGlzLmVmZmVjdFNvdXJjZXMudG9BY3Rpb25zKCkuc3Vic2NyaWJlKHRoaXMuc3RvcmUpKX1uZ09uRGVzdHJveSgpe3RoaXMuZWZmZWN0c1N1YnNjcmlwdGlvbiYmKHRoaXMuZWZmZWN0c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuZWZmZWN0c1N1YnNjcmlwdGlvbj1udWxsKX19VmsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZrKSh2cihMayksdnIoSXcpKX0sVmsuybVwcm92PU1uKHt0b2tlbjpWayxmYWN0b3J5OlZrLsm1ZmFjfSksVmsuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpMa30se3R5cGU6SXd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFZrLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpMa30se3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IGprPSJAbmdyeC9lZmZlY3RzL2luaXQiO0pQKGprKTtjbGFzcyBVa3tjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXt0aGlzLnNvdXJjZXM9dCxlLnN0YXJ0KCksby5mb3JFYWNoKChlPT50LmFkZEVmZmVjdHMoZSkpKSxuLmRpc3BhdGNoKHt0eXBlOmprfSl9YWRkRWZmZWN0cyh0KXt0aGlzLnNvdXJjZXMuYWRkRWZmZWN0cyh0KX19VWsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVrKSh2cihMayksdnIoVmspLHZyKEl3KSx2cih6ayksdnIobGssOCksdnIoY2ssOCksdnIoQWssOCkpfSxVay7JtW1vZD1hbyh7dHlwZTpVa30pLFVrLsm1aW5qPXZuKHt9KSxVay5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkxrfSx7dHlwZTpWa30se3R5cGU6SXd9LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3prXX1dfSx7dHlwZTpsayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpjayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W0FrXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVayxbe3R5cGU6QXksYXJnczpbe31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkxrfSx7dHlwZTpWa30se3R5cGU6SXd9LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3prXX1dfSx7dHlwZTpsayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpjayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W0FrXX1dfV19KSxudWxsKTtjbGFzcyBHa3tjb25zdHJ1Y3Rvcih0LGUsbixvKXtlLmZvckVhY2goKGU9PmUuZm9yRWFjaCgoZT0+dC5hZGRFZmZlY3RzKGUpKSkpKX19R2suybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEdrKSh2cihVayksdnIoSGspLHZyKGxrLDgpLHZyKGNrLDgpKX0sR2suybVtb2Q9YW8oe3R5cGU6R2t9KSxHay7JtWluaj12bih7fSksR2suY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpVa30se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSGtdfV19LHt0eXBlOmxrLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOmNrLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEdrLFt7dHlwZTpBeSxhcmdzOlt7fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWt9LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0hrXX1dfSx7dHlwZTpsayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpjayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV19KSxudWxsKTtjbGFzcyBXa3tzdGF0aWMgZm9yRmVhdHVyZSh0PVtdKXtyZXR1cm57bmdNb2R1bGU6R2sscHJvdmlkZXJzOlt0LHtwcm92aWRlOklrLG11bHRpOiEwLHVzZVZhbHVlOnR9LHtwcm92aWRlOlRrLG11bHRpOiEwLHVzZVZhbHVlOltdfSx7cHJvdmlkZTpIayxtdWx0aTohMCx1c2VGYWN0b3J5OllrLGRlcHM6W3JwLElrLFRrXX1dfX1zdGF0aWMgZm9yUm9vdCh0PVtdKXtyZXR1cm57bmdNb2R1bGU6VWsscHJvdmlkZXJzOlt7cHJvdmlkZTpGayx1c2VWYWx1ZTpra30sVmssTGssU2ssdCx7cHJvdmlkZTpOayx1c2VWYWx1ZTpbdF19LHtwcm92aWRlOkFrLHVzZUZhY3Rvcnk6cWssZGVwczpbW1ZrLG5ldyBTcixuZXcgRXJdLFtOayxuZXcgRHJdXX0se3Byb3ZpZGU6VGssbXVsdGk6ITAsdXNlVmFsdWU6W119LHtwcm92aWRlOnprLHVzZUZhY3Rvcnk6WWssZGVwczpbcnAsTmssVGtdfV19fX1mdW5jdGlvbiBZayh0LGUsbil7Y29uc3Qgbz1bXTtmb3IoY29uc3QgdCBvZiBlKW8ucHVzaCguLi50KTtmb3IoY29uc3QgdCBvZiBuKW8ucHVzaCguLi50KTtyZXR1cm4oZnVuY3Rpb24gaSh0LGUpe3JldHVybiBlLm1hcCgoZT0+dC5nZXQoZSkpKX0pKHQsbyl9ZnVuY3Rpb24gcWsodCxlKXtpZigoMSE9PWUubGVuZ3RofHwwIT09ZVswXS5sZW5ndGgpJiZ0KXRocm93IG5ldyBUeXBlRXJyb3IoIkVmZmVjdHNNb2R1bGUuZm9yUm9vdCgpIGNhbGxlZCB0d2ljZS4gRmVhdHVyZSBtb2R1bGVzIHNob3VsZCB1c2UgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKCkgaW5zdGVhZC4iKTtyZXR1cm4iZ3VhcmRlZCJ9dmFyIFprO1drLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxXayl9LFdrLsm1bW9kPWFvKHt0eXBlOldrfSksV2suybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoV2ssW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLG51bGwsbnVsbCksKGZ1bmN0aW9uKHQpe3RbdC5VTktOT1dOPTBdPSJVTktOT1dOIix0W3QuRVhQRVJJTUVOVFM9MV09IkVYUEVSSU1FTlRTIix0W3QuRVhQRVJJTUVOVD0yXT0iRVhQRVJJTUVOVCIsdFt0LkNPTVBBUkVfRVhQRVJJTUVOVD0zXT0iQ09NUEFSRV9FWFBFUklNRU5UIix0W3QuTk9UX1NFVD00XT0iTk9UX1NFVCJ9KShaa3x8KFprPXt9KSk7Y29uc3QgWGs9ImRlZmF1bHRFeHBlcmltZW50SWQiO2Z1bmN0aW9uIEtrKHQpe3JldHVybiB0LnNwbGl0KCIsIikubWFwKCh0PT57Y29uc3QgZT10LmluZGV4T2YoIjoiKTtpZihlPDApdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgY29sb24gZGVsaW1pdGluZyBuYW1lIGFuZCBJRDogJHt0fWApO2NvbnN0IG49dC5zbGljZSgwLGUpLG89dC5zbGljZShlKzEpO2lmKCFvKXRocm93IG5ldyBFcnJvcihgRXhwZWN0IGlkIHRvIGJlIG5vbi1mYWxzeTogJHt0fWApO3JldHVybntuYW1lOm4saWQ6b319KSl9ZnVuY3Rpb24gSmsodCxlKXtzd2l0Y2godCl7Y2FzZSBaay5FWFBFUklNRU5UOnJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwiZXhwZXJpbWVudElkIik/W2UuZXhwZXJpbWVudElkXTpbWGtdO2Nhc2UgWmsuQ09NUEFSRV9FWFBFUklNRU5UOnJldHVybiBLayhlLmV4cGVyaW1lbnRJZHMpLm1hcCgoKHtpZDp0fSk9PnQpKTtjYXNlIFprLkVYUEVSSU1FTlRTOmRlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIFFrKHQsZSl7dmFyIG47c3dpdGNoKHQpe2Nhc2UgWmsuQ09NUEFSRV9FWFBFUklNRU5UOmNhc2UgWmsuRVhQRVJJTUVOVDp7Y29uc3Qgbz1udWxsIT09KG49SmsodCxlKSkmJnZvaWQgMCE9PW4/bjpbXTtyZXR1cm4gby5zb3J0KCksYCR7dH0vJHtvLmpvaW4oIiwiKX1gfWNhc2UgWmsuRVhQRVJJTUVOVFM6cmV0dXJuIFN0cmluZyh0KTtjYXNlIFprLk5PVF9TRVQ6cmV0dXJuIl9fbm90X3NldCI7ZGVmYXVsdDpyZXR1cm4iIn19Y29uc3QgJGs9KCk9PndpbmRvdy5sb2NhdGlvbi5ocmVmO2NsYXNzIHRTe2dldEhyZWYoKXtyZXR1cm4gJGsoKX1nZXRTZWFyY2goKXtjb25zdCB0PW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCksZT1bXTtyZXR1cm4gdC5mb3JFYWNoKCgodCxuKT0+e2UucHVzaCh7a2V5Om4sdmFsdWU6dH0pfSkpLGV9Z2V0SGFzaCgpe3JldHVybiB3aW5kb3cubG9jYXRpb24uaGFzaH1nZXRQYXRoKCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX1yZXBsYWNlU3RhdGUodCl7d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsIiIsdCl9cHVzaFN0YXRlKHQpe3dpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShudWxsLCIiLHQpfW9uUG9wU3RhdGUoKXtyZXR1cm4gb2Uod2luZG93LCJwb3BzdGF0ZSIpLnBpcGUoSXQoKCgpPT4oe3BhdGhuYW1lOnRoaXMuZ2V0UGF0aCgpLHF1ZXJ5UGFyYW1zOnRoaXMuZ2V0U2VhcmNoKCl9KSkpKX1nZXRSZXNvbHZlZFBhdGgodCl7cmV0dXJuIG5ldyBVUkwodCwkaygpKS5wYXRobmFtZX1nZXRGdWxsUGF0aEZyb21Sb3V0ZU9yTmF2KHQsZSl7Y29uc3Qgbj10aGlzLmdldFJlc29sdmVkUGF0aCh0LnBhdGhuYW1lKTtsZXQgbz0iIjtyZXR1cm4hKGZ1bmN0aW9uIGkodCl7cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoInBhdGhuYW1lIikmJiF0Lmhhc093blByb3BlcnR5KCJxdWVyeVBhcmFtcyIpfSkodCkmJnQucXVlcnlQYXJhbXMubGVuZ3RoJiYobz0iPyIrKGZ1bmN0aW9uIGEodCl7Y29uc3QgZT1uZXcgVVJMU2VhcmNoUGFyYW1zO2Zvcihjb25zdHtrZXk6bix2YWx1ZTpvfW9mIHQpZS5hcHBlbmQobixvKTtyZXR1cm4gZX0pKHQucXVlcnlQYXJhbXMpLnRvU3RyaW5nKCkpLGAke259JHtvfSR7ZT90aGlzLmdldEhhc2goKToiIn1gfX10Uy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dFMpfSx0Uy7JtXByb3Y9TW4oe3Rva2VuOnRTLGZhY3Rvcnk6dFMuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHRTLFt7dHlwZTppbX1dLG51bGwsbnVsbCk7Y2xhc3MgZVN7Y29uc3RydWN0b3IodCl7dGhpcy5hcHBSb290PXRoaXMuZ2V0QXBwUm9vdEZyb21NZXRhRWxlbWVudCh0KX1nZXRBcHBSb290RnJvbU1ldGFFbGVtZW50KHQpe2NvbnN0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCBtZXRhW25hbWU9InRiLXJlbGF0aXZlLXJvb3QiXScpO2lmKCFlKXJldHVybiIvIjtjb25zdHtwYXRobmFtZTpufT1uZXcgVVJMKGUuY29udGVudCx0LmdldEhyZWYoKSk7cmV0dXJuIG4ucmVwbGFjZSgvXC8qJC8sIi8iKX1nZXRBYnNQYXRobmFtZVdpdGhBcHBSb290KHQpe3JldHVybiB0aGlzLmFwcFJvb3Quc2xpY2UoMCwtMSkrdH1nZXRBcHBSb290bGVzc1BhdGhuYW1lKHQpe3JldHVybiB0LnN0YXJ0c1dpdGgodGhpcy5hcHBSb290KT8iLyIrdC5zbGljZSh0aGlzLmFwcFJvb3QubGVuZ3RoKTp0fX1lUy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZVMpKHZyKHRTKSl9LGVTLsm1cHJvdj1Nbih7dG9rZW46ZVMsZmFjdG9yeTplUy7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZVMsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnRTfV19KSxudWxsKTtjbGFzcyBuUyBleHRlbmRzIGVTe2dldEFwcFJvb3QoKXtyZXR1cm4gdGhpcy5hcHBSb290fXNldEFwcFJvb3QodCl7dGhpcy5hcHBSb290PXR9fW5TLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShuUykpKShufHxuUyl9fSkoKSxuUy7JtXByb3Y9TW4oe3Rva2VuOm5TLGZhY3Rvcnk6blMuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG5TLFt7dHlwZTppbX1dLG51bGwsbnVsbCk7Y2xhc3Mgb1N7fW9TLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxvUyl9LG9TLsm1bW9kPWFvKHt0eXBlOm9TfSksb1MuybVpbmo9dm4oe3Byb3ZpZGVyczpbdFNdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvUyxbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpbdFNdfV19XSxudWxsLG51bGwpO2NsYXNzIGlTe31pUy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aVMpfSxpUy7JtW1vZD1hbyh7dHlwZTppU30pLGlTLsm1aW5qPXZuKHtwcm92aWRlcnM6W2VTXSxpbXBvcnRzOltbb1NdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoaVMsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltvU10scHJvdmlkZXJzOltlU119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhpUyx7aW1wb3J0czpbb1NdfSk7Y29uc3QgYVM9SlAoIltBcHAgUm91dGluZ10gRGlzY2FyZGluZyBVbnNhdmVkIFVwZGF0ZXMiKSxyUz1KUCgiW0FwcCBSb3V0aW5nXSBTdGF0ZSBSZWh5ZHJhdGVkIEZyb20gVXJsIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksc1M9SlAoIltBcHAgUm91dGluZ10gUm91dGUgQ29uZmlnIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGxTPUpQKCJbQXBwIFJvdXRpbmddIEluIEFwcCBOYXZpZ2F0aW9uIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGNTPUpQKCJbQXBwIFJvdXRpbmddIEluIEFwcCBOYXZpZ2F0aW5nIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksZFM9SlAoIltBcHAgUm91dGluZ10gSW4gQXBwIE5hdmlnYXRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHBTPW5ldyBHYSgiW0FwcCBSb3V0aW5nXSBEaXJ0eSBVcGRhdGVzIik7Y2xhc3MgbVN7Y29uc3RydWN0b3IodCl7dGhpcy5kaXJ0eVVwZGF0ZXNTZWxlY3RvckZhY3Rvcmllcz10fWdldERpcnR5VXBkYXRlc1NlbGVjdG9ycygpe3ZhciB0O3JldHVybiBudWxsIT09KHQ9dGhpcy5kaXJ0eVVwZGF0ZXNTZWxlY3RvckZhY3RvcmllcykmJnZvaWQgMCE9PXQ/dDpbXX1zdGF0aWMgcmVnaXN0ZXJEaXJ0eVVwZGF0ZXModCl7cmV0dXJue25nTW9kdWxlOm1TLHByb3ZpZGVyczpbe3Byb3ZpZGU6cFMsbXVsdGk6ITAsdXNlRmFjdG9yeTp0fV19fX1tUy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bVMpKHZyKHBTLDgpKX0sbVMuybVtb2Q9YW8oe3R5cGU6bVN9KSxtUy7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChtUyxbe3R5cGU6QXl9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3BTXX1dfV19KSxudWxsKTtjb25zdCB1Uz1uZXcgR2EoIltBcHAgUm91dGluZ10gUHJvZ3JhbW1hdGljYWwgTmF2aWdhdGlvbiBQcm92aWRlciIpO2NsYXNzIGZTe2NvbnN0cnVjdG9yKHQpe3RoaXMucHJvdmlkZXJzPW5ldyBNYXA7Zm9yKGNvbnN0IGUgb2YgdHx8W10pe2lmKHRoaXMucHJvdmlkZXJzLmhhcyhlLmFjdGlvbkNyZWF0b3IudHlwZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYCIke2UuYWN0aW9uQ3JlYXRvci50eXBlfSIgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGZvciBuYXYuIE11bHRpcGxlIG5hdmlnYXRpb25zIG9uIHNhbWUga2ljayBpcyBub3QgYWxsb3dlZC5gKTt0aGlzLnByb3ZpZGVycy5zZXQoZS5hY3Rpb25DcmVhdG9yLnR5cGUsZS5sYW1iZGEpfX1nZXROYXZpZ2F0aW9uKHQpe2NvbnN0IGU9dGhpcy5wcm92aWRlcnMuZ2V0KHQudHlwZSk7cmV0dXJuIGU/ZSh0KTpudWxsfXN0YXRpYyByZWdpc3RlclByb2dyYW1tYXRpY2FsTmF2aWdhdGlvbih0KXtyZXR1cm57bmdNb2R1bGU6ZlMscHJvdmlkZXJzOlt7cHJvdmlkZTp1UyxtdWx0aTohMCx1c2VGYWN0b3J5OnR9XX19fWZ1bmN0aW9uIGdTKHQpe3JldHVybiBudWxsIT10LnJvdXRlS2luZH1mdW5jdGlvbiBoUyh0KXtyZXR1cm4gdlModCkubWFwKCh0PT57Y29uc3QgZT10LnN0YXJ0c1dpdGgoIjoiKTtyZXR1cm4gZT97cGF0aFBhcnQ6dCxpc1BhcmFtOiEwLHBhcmFtTmFtZTp0LnNsaWNlKDEpfTp7cGF0aFBhcnQ6dCxpc1BhcmFtOmV9fSkpfWZTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmUykodnIodVMsOCkpfSxmUy7JtW1vZD1hbyh7dHlwZTpmU30pLGZTLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGZTLFt7dHlwZTpBeSxhcmdzOlt7fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt1U119XX1dfSksbnVsbCk7Y2xhc3MgYlN7Y29uc3RydWN0b3IodCl7dGhpcy52YWxpZGF0ZUNvbmZpZyh0KSx0aGlzLnBhdGhGcmFnbWVudHM9aFModC5wYXRoKSx0aGlzLnBhdGhNYXRjaGVycz10aGlzLmdldFBhdGhNYXRjaGVycyh0aGlzLnBhdGhGcmFnbWVudHMpfXN0YXRpYyBnZXRNYXRjaGVyKHQpe3JldHVybiBnUyh0KT9uZXcgeVModCk6KGZ1bmN0aW9uIGUodCl7cmV0dXJuIHZvaWQgMCE9PXQucmVkaXJlY3Rpb25QYXRofSkodCk/bmV3IF9TKHQpOm5ldyBDUyh0KX12YWxpZGF0ZUNvbmZpZyh7cGF0aDp0fSl7aWYoIXQuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBSYW5nZUVycm9yKGBjb25maWcucGF0aCBzaG91bGQgc3RhcnQgd2l0aCAnLycuICR7dH1gKTtsZXQgZT0wO2Zvcig7KGU9dC5pbmRleE9mKCI6IixlKzEpKT49MDspe2lmKCIvIiE9PXRbZS0xXSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgY29uZmlnLnBhdGggcGFyYW1ldGVyIHNob3VsZCBjb21lIGFmdGVyICcvJy4gJHt0fWApO2lmKHZvaWQgMD09PXRbZSsxXXx8Ii8iPT09dFtlKzFdKXRocm93IG5ldyBSYW5nZUVycm9yKGBjb25maWcucGF0aCBwYXJhbWV0ZXIgc2hvdWxkIGhhdmUgbm9uLWVtcHR5IG5hbWUuICR7dH1gKX19Z2V0UGF0aE1hdGNoZXJzKHQpe3JldHVybiB0Lm1hcCgodD0+e2NvbnN0e3BhdGhQYXJ0OmV9PXQ7cmV0dXJuIHQuaXNQYXJhbT9lPT4oe2lzUGFyYW1QYXRoUGFydDohMCxwYXJ0TWF0Y2hlZDohMCxwYXJhbU5hbWU6dC5wYXJhbU5hbWUscGFyYW1WYWx1ZTplfSk6dD0+KHtpc1BhcmFtUGF0aFBhcnQ6ITEscGFydE1hdGNoZWQ6dD09PWV9KX0pKX1tYXRjaCh0KXtsZXQgZT17fTtpZih0aGlzLnBhdGhNYXRjaGVycy5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm57cmVzdWx0OiExfTtsZXQgbj0wO2Zvcihjb25zdCBvIG9mIHRoaXMucGF0aE1hdGNoZXJzKXtjb25zdCBpPW8odFtuKytdKTtpZighaS5wYXJ0TWF0Y2hlZClyZXR1cm57cmVzdWx0OiExfTtpLmlzUGFyYW1QYXRoUGFydCYmKGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHtbaS5wYXJhbU5hbWVdOmkucGFyYW1WYWx1ZX0pKX1yZXR1cm57cmVzdWx0OiEwLHBhcmFtczplLHBhdGhQYXJ0czp0LGlzUmVkaXJlY3Rpb246ITF9fW1hdGNoQnlQYXJhbXModCl7cmV0dXJue3Jlc3VsdDohMCxwYXJhbXM6dCxwYXRoUGFydHM6dGhpcy5yZXByb2plY3RQYXRoQnlQYXJhbXModGhpcy5wYXRoRnJhZ21lbnRzLHQpLGlzUmVkaXJlY3Rpb246ITF9fXJlcHJvamVjdFBhdGhCeVBhcmFtcyh0LGUpe2NvbnN0IG49W107Zm9yKGNvbnN0IG8gb2YgdClpZihvLmlzUGFyYW0pe2NvbnN0e3BhcmFtTmFtZTp0fT1vO2lmKCFlLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBSYW5nZUVycm9yKGBGYWlsZWQgdG8gcmVwcm9qZWN0IHBhcmFtZXRlci4gIiR7dH0iIHBhcmFtZXRlciBzaG91bGQgYmUgcHJlc2VudC5gKTtuLnB1c2goZVt0XSl9ZWxzZSBuLnB1c2goby5wYXRoUGFydCk7cmV0dXJuIG59fWNsYXNzIHlTIGV4dGVuZHMgYlN7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5kZWZpbml0aW9uPXR9fWNsYXNzIF9TIGV4dGVuZHMgYlN7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5kZWZpbml0aW9uPXQsdGhpcy5yZWRpcmVjdGlvbkZyYWdtZW50cz1oUyh0LnJlZGlyZWN0aW9uUGF0aCl9bWF0Y2godCl7Y29uc3QgZT1zdXBlci5tYXRjaCh0KTtpZighZS5yZXN1bHQpcmV0dXJuIGU7Y29uc3Qgbj10aGlzLnJlcHJvamVjdFBhdGhCeVBhcmFtcyh0aGlzLnJlZGlyZWN0aW9uRnJhZ21lbnRzLGUucGFyYW1zKTtyZXR1cm57cmVzdWx0OiEwLHBhcmFtczplLnBhcmFtcyxwYXRoUGFydHM6bixpc1JlZGlyZWN0aW9uOiEwfX19Y2xhc3MgQ1MgZXh0ZW5kcyBiU3tjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLmRlZmluaXRpb249dH1tYXRjaCh0KXtjb25zdCBlPXN1cGVyLm1hdGNoKHQpO2lmKCFlLnJlc3VsdClyZXR1cm4gZTtjb25zdHtwYXRoUGFydHM6bixxdWVyeVBhcmFtczpvfT10aGlzLmRlZmluaXRpb24ucmVkaXJlY3Rvcih0KTtyZXR1cm57cmVzdWx0OiEwLHBhcmFtczplLnBhcmFtcyxwYXRoUGFydHM6bixpc1JlZGlyZWN0aW9uOiEwLHJlZGlyZWN0aW9uUXVlcnlQYXJhbXM6b319fWNsYXNzIE1Te2NvbnN0cnVjdG9yKHQsZT0zKXtpZih0aGlzLm1heFJlZGlyZWN0aW9uPWUsZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJtYXhSZWRpcmVjdGlvbiBoYXMgdG8gYmUgbm9uLW5lZ2F0aXZlIG51bWJlciIpO3RoaXMudmFsaWRhdGVSb3V0ZUNvbmZpZ3ModCksdGhpcy5kZWZhdWx0Um91dGVDb25maWc9bnVsbCx0aGlzLnJvdXRlS2luZFRvQ29uY3JldGVDb25maWdNYXRjaGVycz1uZXcgTWFwLHRoaXMuY29uZmlnTWF0Y2hlcnM9W107Zm9yKGNvbnN0IGUgb2YgdCl7Y29uc3QgdD1iUy5nZXRNYXRjaGVyKGUpO3RoaXMuY29uZmlnTWF0Y2hlcnMucHVzaCh0KSx0IGluc3RhbmNlb2YgeVMmJih0aGlzLnJvdXRlS2luZFRvQ29uY3JldGVDb25maWdNYXRjaGVycy5zZXQodC5kZWZpbml0aW9uLnJvdXRlS2luZCx0KSx0LmRlZmluaXRpb24uZGVmYXVsdFJvdXRlJiYodGhpcy5kZWZhdWx0Um91dGVDb25maWc9dCkpfX12YWxpZGF0ZVJvdXRlQ29uZmlncyh0KXtjb25zdCBlPXQuZmlsdGVyKGdTKSxuPWUuZmlsdGVyKCh0PT50LmRlZmF1bHRSb3V0ZSkpO2lmKG4ubGVuZ3RoPjEpe2NvbnN0IHQ9bi5tYXAoKCh7cGF0aDp0fSk9PnQpKS5qb2luKCIsICIpO3Rocm93IG5ldyBSYW5nZUVycm9yKGBUaGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBkZWZhdWx0Um91dGVzLiAke3R9YCl9aWYoMT09PW4ubGVuZ3RoKXtjb25zdHtwYXRoOnR9PW5bMF07aWYoQm9vbGVhbihoUyh0KS5maW5kKCgoe2lzUGFyYW06dH0pPT50KSkpKXRocm93IG5ldyBSYW5nZUVycm9yKGBBIGRlZmF1bHRSb3V0ZSBjYW5ub3QgaGF2ZSBhbnkgcGFyYW1zLiAke3R9YCl9Y29uc3Qgbz1uZXcgU2V0O2Zvcihjb25zdHtyb3V0ZUtpbmQ6dH1vZiBlKXtpZihvLmhhcyh0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgTXVsdGlwbGUgcm91dGUgY29uZmlndXJhdGlvbiBmb3Iga2luZDogJHt0fS4gQ29uZmlndXJhdGlvbnMgc2hvdWxkIGhhdmUgdW5pcXVlIHJvdXRlS2luZHNgKTtvLmFkZCh0KX19bWF0Y2godCl7dmFyIGU7aWYoIXQucGF0aG5hbWUuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBSYW5nZUVycm9yKCdOYXZpZ2F0aW9uIGhhcyB0byBtYWRlIHdpdGggcGF0aG5hbWUgdGhhdCBzdGFydHMgd2l0aCAiLyInKTtsZXQgbixvPXZTKHQucGF0aG5hbWUpLGk9MCxhPSExO2Zvcig7Oyl7bGV0IHQ9ITE7Zm9yKGNvbnN0IGUgb2YgdGhpcy5jb25maWdNYXRjaGVycyl7Y29uc3QgaT1lLm1hdGNoKG8pO2lmKGkucmVzdWx0KXt0PSEwO2NvbnN0e3BhcmFtczpyLHBhdGhQYXJ0czpzLGlzUmVkaXJlY3Rpb246bH09aTtpZihsKXtvPXMsYT0hMCxuPWkucmVkaXJlY3Rpb25RdWVyeVBhcmFtczticmVha31pZighKGUgaW5zdGFuY2VvZiB5UykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vIGNvbmNyZXRlIHJvdXRlIGRlZmluaXRpb24gYG1hdGNoYCByZXR1cm4gcmVkaXJlY3Rpb24iKTtjb25zdHtkZWZpbml0aW9uOmN9PWUsZD17cm91dGVLaW5kOmMucm91dGVLaW5kLHBhcmFtczpyLHBhdGhuYW1lOnhTKHMpLGRlZXBMaW5rUHJvdmlkZXI6Yy5kZWVwTGlua1Byb3ZpZGVyfHxudWxsfTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLGE/e29yaWdpbmF0ZUZyb21SZWRpcmVjdGlvbjohMCxyZWRpcmVjdGlvbk9ubHlRdWVyeVBhcmFtczpufTp7b3JpZ2luYXRlRnJvbVJlZGlyZWN0aW9uOiExfSl9fWlmKGEmJmkrKywhdHx8aT50aGlzLm1heFJlZGlyZWN0aW9uKWJyZWFrfWlmKGk+dGhpcy5tYXhSZWRpcmVjdGlvbil0aHJvdyBuZXcgRXJyb3IoYFBvdGVudGlhbCByZWRpcmVjdGlvbiBsb29wIChyZWRpcmVjdGluZyBtb3JlIHRoYW4gJHt0aGlzLm1heFJlZGlyZWN0aW9ufSB0aW1lcy4gUGxlYXNlIGRvIG5vdCBoYXZlIGN5Y2xlcyBpbiB0aGUgcm91dGVzLmApO2lmKHRoaXMuZGVmYXVsdFJvdXRlQ29uZmlnKXtjb25zdHtkZWZpbml0aW9uOnR9PXRoaXMuZGVmYXVsdFJvdXRlQ29uZmlnO3JldHVybntyb3V0ZUtpbmQ6dC5yb3V0ZUtpbmQsZGVlcExpbmtQcm92aWRlcjpudWxsIT09KGU9dC5kZWVwTGlua1Byb3ZpZGVyKSYmdm9pZCAwIT09ZT9lOm51bGwscGF0aG5hbWU6dC5wYXRoLHBhcmFtczp7fSxvcmlnaW5hdGVGcm9tUmVkaXJlY3Rpb246YX19cmV0dXJuIG51bGx9bWF0Y2hCeVJvdXRlS2luZCh0LGUpe2NvbnN0IG49dGhpcy5yb3V0ZUtpbmRUb0NvbmNyZXRlQ29uZmlnTWF0Y2hlcnMuZ2V0KHQpO2lmKCFuKXRocm93IG5ldyBSYW5nZUVycm9yKGBSZXF1aXJlcyBjb25maWd1cmF0aW9uIGZvciByb3V0ZUtpbmQ6ICR7dH1gKTtyZXR1cm57cm91dGVLaW5kOnQscGFyYW1zOmUscGF0aG5hbWU6eFMobi5tYXRjaEJ5UGFyYW1zKGUpLnBhdGhQYXJ0cyksZGVlcExpbmtQcm92aWRlcjpuLmRlZmluaXRpb24uZGVlcExpbmtQcm92aWRlcnx8bnVsbCxvcmlnaW5hdGVGcm9tUmVkaXJlY3Rpb246ITF9fX1mdW5jdGlvbiB2Uyh0KXtyZXR1cm4gdC5zcGxpdCgiLyIpLnNsaWNlKDEpfWZ1bmN0aW9uIHhTKHQpe3JldHVybiIvIit0LmpvaW4oIi8iKX1jb25zdCBPUz1uZXcgR2EoIltBcHAgUm91dGluZ10gUm91dGUgQ29uZmlnIik7Y2xhc3MgUFN7Y29uc3RydWN0b3IodCl7aWYodGhpcy5yb3V0ZUNvbmZpZ3M9bnVsbCx0aGlzLnJvdXRlS2luZFRvTmdDb21wb25lbnQ9bmV3IE1hcCwhdClyZXR1cm47Y29uc3QgZT1bXTtmb3IoY29uc3QgbiBvZiB0KWZvcihjb25zdCB0IG9mIG4pZS5wdXNoKHQpO3RoaXMucm91dGVDb25maWdzPW5ldyBNUyhlKSxlLmZvckVhY2goKHQ9PntnUyh0KSYmdGhpcy5yb3V0ZUtpbmRUb05nQ29tcG9uZW50LnNldCh0LnJvdXRlS2luZCx0Lm5nQ29tcG9uZW50KX0pKX1nZXRSZWdpc3RlcmVkUm91dGVLaW5kcygpe3JldHVybiB0aGlzLnJvdXRlS2luZFRvTmdDb21wb25lbnQua2V5cygpfWdldFJvdXRlQ29uZmlncygpe3JldHVybiB0aGlzLnJvdXRlQ29uZmlnc31nZXROZ0NvbXBvbmVudEJ5Um91dGVLaW5kKHQpe3JldHVybiB0aGlzLnJvdXRlS2luZFRvTmdDb21wb25lbnQuZ2V0KHQpfHxudWxsfXN0YXRpYyByZWdpc3RlclJvdXRlcyh0KXtyZXR1cm57bmdNb2R1bGU6UFMscHJvdmlkZXJzOlt7cHJvdmlkZTpPUyxtdWx0aTohMCx1c2VGYWN0b3J5OnR9XX19fVBTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQUykodnIoT1MsOCkpfSxQUy7JtW1vZD1hbyh7dHlwZTpQU30pLFBTLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFBTLFt7dHlwZTpBeSxhcmdzOlt7fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltPU119XX1dfSksbnVsbCk7Y29uc3Qgd1M9ImFwcF9yb3V0aW5nIixrUz1Ldyh3UyksU1M9Wncoa1MsKHQ9PnQuYWN0aXZlUm91dGUpKSxEUz1adyhrUywodD0+dC5uZXh0Um91dGUpKSxFUz1adyhrUywodD0+dC5yZWdpc3RlcmVkUm91dGVLZXlzKSksUlM9WncoU1MsKHQ9PnQ/dC5yb3V0ZUtpbmQ6WmsuTk9UX1NFVCkpLEFTPVp3KFNTLCh0PT50P3QucGFyYW1zOnt9KSksVFM9WncoUlMsQVMsKCh0LGUpPT5Kayh0LGUpKSksTlM9WncoUlMsQVMsKCh0LGUpPT5Rayh0LGUpKSkselM9WncoUlMsQVMsKCh0LGUpPT57aWYodCE9PVprLkNPTVBBUkVfRVhQRVJJTUVOVClyZXR1cm57fTtjb25zdCBuPShmdW5jdGlvbiBvKHQpe2NvbnN0IGU9bmV3IE1hcCxuPUtrKHQuZXhwZXJpbWVudElkcyk7Zm9yKGNvbnN0e2lkOnQsbmFtZTpvfW9mIG4pbyYmZS5zZXQodCxvKTtyZXR1cm4gZX0pKGUpO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMobi5lbnRyaWVzKCkpfSkpLElTPUpQKCJbQXBwIFJvdXRpbmddIEVmZmVjdHMgSW5pdCIpO2NsYXNzIEhTe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5sb2NhdGlvbj1uLHRoaXMuZGlydHlVcGRhdGVzUmVnaXN0cnk9byx0aGlzLnJlZ2lzdHJ5PWksdGhpcy5wcm9ncmFtbWF0aWNhbE5hdk1vZHVsZT1hLHRoaXMuYXBwUm9vdFByb3ZpZGVyPXIsdGhpcy5vbk5hdmlnYXRpb25SZXF1ZXN0ZWQkPXRoaXMuYWN0aW9ucyQucGlwZShEayhsUyksSXQoKHQ9Pntjb25zdCBlPXQucGF0aG5hbWUuc3RhcnRzV2l0aCgiLyIpP3RoaXMuYXBwUm9vdFByb3ZpZGVyLmdldEFic1BhdGhuYW1lV2l0aEFwcFJvb3QodC5wYXRobmFtZSk6dGhpcy5sb2NhdGlvbi5nZXRSZXNvbHZlZFBhdGgodC5wYXRobmFtZSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cGF0aG5hbWU6ZX0pfSkpKSx0aGlzLmJvb3RzdHJhcFJlZHVjZXJzJD1NaygoKCk9PnRoaXMuYWN0aW9ucyQucGlwZShEayhJUyksSXQoKCgpPT5zUyh7cm91dGVLaW5kczpuZXcgU2V0KHRoaXMucmVnaXN0cnkuZ2V0UmVnaXN0ZXJlZFJvdXRlS2luZHMoKSl9KSkpKSkpLHRoaXMub25Jbml0JD10aGlzLmFjdGlvbnMkLnBpcGUoRGsoSVMpKS5waXBlKENlKDApLEl0KCgoKT0+KHtwYXRobmFtZTp0aGlzLmxvY2F0aW9uLmdldFBhdGgoKSxxdWVyeVBhcmFtczp0aGlzLmxvY2F0aW9uLmdldFNlYXJjaCgpLHJlcGxhY2VTdGF0ZTohMCxicm93c2VySW5pdGlhdGVkOiEwfSkpKSksdGhpcy51c2VySW5pdE5hdlJvdXRlJD1yZSh0aGlzLm9uTmF2aWdhdGlvblJlcXVlc3RlZCQsdGhpcy5vbkluaXQkLHRoaXMubG9jYXRpb24ub25Qb3BTdGF0ZSgpLnBpcGUoSXQoKHQ9Pih7cGF0aG5hbWU6dC5wYXRobmFtZSxyZXBsYWNlU3RhdGU6dC5yZXBsYWNlU3RhdGUsYnJvd3NlckluaXRpYXRlZDohMH0pKSkpKS5waXBlKEl0KCh0PT57aWYoIXQucGF0aG5hbWUuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBFcnJvcihgW0FwcCByb3V0aW5nXSBwYXRobmFtZSBtdXN0IHN0YXJ0IHdpdGggJy8nLiBHb3Q6ICR7dC5wYXRobmFtZX1gKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwYXRobmFtZTp0aGlzLmFwcFJvb3RQcm92aWRlci5nZXRBcHBSb290bGVzc1BhdGhuYW1lKHQucGF0aG5hbWUpfSl9KSksSXQoKHQ9Pih7cm91dGVNYXRjaDp0aGlzLnJvdXRlQ29uZmlncz90aGlzLnJvdXRlQ29uZmlncy5tYXRjaCh0KTpudWxsLG9wdGlvbnM6e3JlcGxhY2VTdGF0ZTp0LnJlcGxhY2VTdGF0ZSxicm93c2VySW5pdGlhdGVkOnQuYnJvd3NlckluaXRpYXRlZH19KSkpKSx0aGlzLnByb2dyYW1tdGljYWxOYXZSb3V0ZSQ9dGhpcy5hY3Rpb25zJC5waXBlKEl0KCh0PT50aGlzLnByb2dyYW1tYXRpY2FsTmF2TW9kdWxlLmdldE5hdmlnYXRpb24odCkpKSxjZSgodD0+bnVsbCE9PXQpKSxJdCgodD0+e2NvbnN0IGU9dCxuPWUucm91dGVLaW5kO2xldCBvO3N3aXRjaChlLnJvdXRlS2luZCl7Y2FzZSBaay5DT01QQVJFX0VYUEVSSU1FTlQ6bz17ZXhwZXJpbWVudElkczooaT1lLnJvdXRlUGFyYW1zLmFsaWFzQW5kRXhwZXJpbWVudElkcyxpLm1hcCgoKHthbGlhczp0LGlkOmV9KT0+YCR7dH06JHtlfWApKS5qb2luKCIsIikpfTticmVhaztkZWZhdWx0Om89ZS5yb3V0ZVBhcmFtc312YXIgaTtyZXR1cm57cm91dGVLaW5kOm4scm91dGVQYXJhbXM6b319KSksSXQoKCh7cm91dGVLaW5kOnQscm91dGVQYXJhbXM6ZX0pPT4oe3JvdXRlTWF0Y2g6dGhpcy5yb3V0ZUNvbmZpZ3M/dGhpcy5yb3V0ZUNvbmZpZ3MubWF0Y2hCeVJvdXRlS2luZCh0LGUpOm51bGwsb3B0aW9uczp7cmVwbGFjZVN0YXRlOiExLGJyb3dzZXJJbml0aWF0ZWQ6ITF9fSkpKSksdGhpcy52YWxpZGF0ZWRSb3V0ZSQ9cmUodGhpcy51c2VySW5pdE5hdlJvdXRlJCx0aGlzLnByb2dyYW1tdGljYWxOYXZSb3V0ZSQpLnBpcGUoY2UoKCh7cm91dGVNYXRjaDp0fSk9PkJvb2xlYW4odCkpKSxJdCgodD0+KHtyb3V0ZU1hdGNoOnQucm91dGVNYXRjaCxvcHRpb25zOnQub3B0aW9uc30pKSkpLHRoaXMubmF2aWdhdGUkPU1rKCgoKT0+dGhpcy52YWxpZGF0ZWRSb3V0ZSQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChTUykpLFp0KCgoW3QsZV0pPT57Y29uc3Qgbj1udWxsIT09ZSYmUWsodC5yb3V0ZU1hdGNoLnJvdXRlS2luZCx0LnJvdXRlTWF0Y2gucGFyYW1zKT09PVFrKGUucm91dGVLaW5kLGUucGFyYW1zKSxvPXRoaXMuZGlydHlVcGRhdGVzUmVnaXN0cnkuZ2V0RGlydHlVcGRhdGVzU2VsZWN0b3JzKCk7cmV0dXJuIG58fCFvLmxlbmd0aD9FdCh0KTokdCh0aGlzLmRpcnR5VXBkYXRlc1JlZ2lzdHJ5LmdldERpcnR5VXBkYXRlc1NlbGVjdG9ycygpLm1hcCgodD0+dGhpcy5zdG9yZS5zZWxlY3QodCkucGlwZShiZSgxKSkpKSkucGlwZShJdCgodD0+dm9pZCAwIT09dFswXS5leHBlcmltZW50SWRzJiZ0WzBdLmV4cGVyaW1lbnRJZHMubGVuZ3RoPjApKSxjZSgodD0+e2lmKHQpe2NvbnN0IHQ9d2luZG93LmNvbmZpcm0oIllvdSBoYXZlIHVuc2F2ZWQgZWRpdHMsIGFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkaXNjYXJkIHRoZW0/Iik7cmV0dXJuIHQmJnRoaXMuc3RvcmUuZGlzcGF0Y2goYVMoKSksdH1yZXR1cm4hMH0pKSxJdCgoKCk9PnQpKSl9KSksRmUoKCh7cm91dGVNYXRjaDp0LG9wdGlvbnM6ZX0pPT57aWYoZS5icm93c2VySW5pdGlhdGVkJiZ0LmRlZXBMaW5rUHJvdmlkZXIpe2NvbnN0IGU9dC5vcmlnaW5hdGVGcm9tUmVkaXJlY3Rpb24mJnQucmVkaXJlY3Rpb25Pbmx5UXVlcnlQYXJhbXM/dC5yZWRpcmVjdGlvbk9ubHlRdWVyeVBhcmFtczp0aGlzLmxvY2F0aW9uLmdldFNlYXJjaCgpLG49dC5kZWVwTGlua1Byb3ZpZGVyLmRlc2VyaWFsaXplUXVlcnlQYXJhbXMoZSk7dGhpcy5zdG9yZS5kaXNwYXRjaChyUyh7cm91dGVLaW5kOnQucm91dGVLaW5kLHBhcnRpYWxTdGF0ZTpufSkpfX0pKSx6ZSgoKHtyb3V0ZU1hdGNoOnQsb3B0aW9uczplfSk9Pnt2YXIgbjtjb25zdCBvPXtyZXBsYWNlU3RhdGU6bnVsbCE9PShuPWUucmVwbGFjZVN0YXRlKSYmdm9pZCAwIT09biYmbn0saT1FdCh7cm91dGVLaW5kOnQucm91dGVLaW5kLHBhcmFtczp0LnBhcmFtcyxwYXRobmFtZTp0LnBhdGhuYW1lLHF1ZXJ5UGFyYW1zOltdLG5hdmlnYXRpb25PcHRpb25zOm99KTtyZXR1cm4gbnVsbD09PXQuZGVlcExpbmtQcm92aWRlcj9pOnQuZGVlcExpbmtQcm92aWRlci5zZXJpYWxpemVTdGF0ZVRvUXVlcnlQYXJhbXModGhpcy5zdG9yZSkucGlwZShJdCgoKGUsbik9Pih7cm91dGVLaW5kOnQucm91dGVLaW5kLHBhcmFtczp0LnBhcmFtcyxwYXRobmFtZTp0LnBhdGhuYW1lLHF1ZXJ5UGFyYW1zOmUsbmF2aWdhdGlvbk9wdGlvbnM6MD09PW4/bzpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbykse3JlcGxhY2VTdGF0ZTohMH0pfSkpKSl9KSksRmUoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKGNTKHthZnRlcjp0fSkpfSkpLGdlKDApKS5waXBlKFZlKHRoaXMuc3RvcmUuc2VsZWN0KFNTKSksSXQoKChbdCxlXSk9Pih7cHJlc2VydmVIYXNoOm51bGw9PT1lfHxudWxsPT09dHx8UWsoZS5yb3V0ZUtpbmQsZS5wYXJhbXMpPT09UWsodC5yb3V0ZUtpbmQsdC5wYXJhbXMpLHJvdXRlOnR9KSkpLEZlKCgoe3ByZXNlcnZlSGFzaDp0LHJvdXRlOmV9KT0+eyEoZnVuY3Rpb24gbih0LGUpe3JldHVybiB0LnBhdGhuYW1lPT09ZS5wYXRobmFtZSYmdC5xdWVyeVBhcmFtcy5sZW5ndGg9PT1lLnF1ZXJ5UGFyYW1zLmxlbmd0aCYmdC5xdWVyeVBhcmFtcy5ldmVyeSgoKHQsbik9Pntjb25zdCBvPWUucXVlcnlQYXJhbXNbbl07cmV0dXJuIHQua2V5PT09by5rZXkmJnQudmFsdWU9PT1vLnZhbHVlfSkpfSkoZSx7cGF0aG5hbWU6dGhpcy5hcHBSb290UHJvdmlkZXIuZ2V0QXBwUm9vdGxlc3NQYXRobmFtZSh0aGlzLmxvY2F0aW9uLmdldFBhdGgoKSkscXVlcnlQYXJhbXM6dGhpcy5sb2NhdGlvbi5nZXRTZWFyY2goKX0pJiYoZS5uYXZpZ2F0aW9uT3B0aW9ucy5yZXBsYWNlU3RhdGU/dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy5hcHBSb290UHJvdmlkZXIuZ2V0QWJzUGF0aG5hbWVXaXRoQXBwUm9vdCh0aGlzLmxvY2F0aW9uLmdldEZ1bGxQYXRoRnJvbVJvdXRlT3JOYXYoZSx0KSkpOnRoaXMubG9jYXRpb24ucHVzaFN0YXRlKHRoaXMuYXBwUm9vdFByb3ZpZGVyLmdldEFic1BhdGhuYW1lV2l0aEFwcFJvb3QodGhpcy5sb2NhdGlvbi5nZXRGdWxsUGF0aEZyb21Sb3V0ZU9yTmF2KGUsdCkpKSl9KSkpLnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3QoU1MpKSxJdCgoKFt7cm91dGU6dH0sZV0pPT5kUyh7YmVmb3JlOmUsYWZ0ZXI6dH0pKSkpKSksdGhpcy5yb3V0ZUNvbmZpZ3M9aS5nZXRSb3V0ZUNvbmZpZ3MoKX1uZ3J4T25Jbml0RWZmZWN0cygpe3JldHVybiBJUygpfX1IUy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SFMpKHZyKFNrKSx2cihJdyksdnIodFMpLHZyKG1TKSx2cihQUyksdnIoZlMpLHZyKGVTKSl9LEhTLsm1cHJvdj1Nbih7dG9rZW46SFMsZmFjdG9yeTpIUy7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSFMsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlNrfSx7dHlwZTpJd30se3R5cGU6dFN9LHt0eXBlOm1TfSx7dHlwZTpQU30se3R5cGU6ZlN9LHt0eXBlOmVTfV19KSxudWxsKTtjb25zdCBGUz15ayh7YWN0aXZlUm91dGU6bnVsbCxuZXh0Um91dGU6bnVsbCxyZWdpc3RlcmVkUm91dGVLZXlzOm5ldyBTZXR9LGJrKGNTLCgodCx7YWZ0ZXI6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse25leHRSb3V0ZTplfSkpKSxiayhkUywoKHQse2FmdGVyOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHthY3RpdmVSb3V0ZTplLG5leHRSb3V0ZTpudWxsfSkpKSxiayhzUywoKHQse3JvdXRlS2luZHM6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3JlZ2lzdGVyZWRSb3V0ZUtleXM6ZX0pKSkpO2Z1bmN0aW9uIExTKHQsZSl7cmV0dXJuIEZTKHQsZSl9Y2xhc3MgQlN7fUJTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCUyl9LEJTLsm1bW9kPWFvKHt0eXBlOkJTfSksQlMuybVpbmo9dm4oe3Byb3ZpZGVyczpbbVMsZlNdLGltcG9ydHM6W1tQUyxkay5mb3JGZWF0dXJlKHdTLExTKSxXay5mb3JGZWF0dXJlKFtIU10pLGlTLG9TXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJTLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbUFMsZGsuZm9yRmVhdHVyZSh3UyxMUyksV2suZm9yRmVhdHVyZShbSFNdKSxpUyxvU10scHJvdmlkZXJzOlttUyxmU119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhCUyx7aW1wb3J0czpbUFMsY2ssR2ssaVMsb1NdfSk7Y2xhc3MgVlN7fWNvbnN0IGpTPSJfX3RhYl9fIjtjbGFzcyBVU3tjb25zdHJ1Y3Rvcigpe3RoaXMudGZTdG9yYWdlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRmLXN0b3JhZ2UiKSxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Zi1nbG9iYWxzIikudGZfZ2xvYmFscy5zZXRVc2VIYXNoKCEwKSx0aGlzLnRmU3RvcmFnZS50Zl9zdG9yYWdlLm1pZ3JhdGVMZWdhY3lVUkxTY2hlbWUoKX1nZXRTdHJpbmcodCl7cmV0dXJuIHRoaXMudGZTdG9yYWdlLnRmX3N0b3JhZ2UuZ2V0U3RyaW5nKHQpfXNldFN0cmluZyh0LGUsbil7dGhpcy50ZlN0b3JhZ2UudGZfc3RvcmFnZS5zZXRTdHJpbmcodCxlLG4pfWdldFBsdWdpbklkKCl7cmV0dXJuIHRoaXMuZ2V0U3RyaW5nKGpTKX1zZXRQbHVnaW5JZCh0LGUpe3RoaXMuc2V0U3RyaW5nKGpTLHQsZSl9fXZhciBHUztVUy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VVMpfSxVUy7JtXByb3Y9TW4oe3Rva2VuOlVTLGZhY3Rvcnk6VVMuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFVTLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCksKGZ1bmN0aW9uKHQpe3QuQlJPV1NFUl9ERUZBVUxUPSJicm93c2VyX2RlZmF1bHQiLHQuTElHSFQ9ImxpZ2h0Iix0LkRBUks9ImRhcmsifSkoR1N8fChHUz17fSkpO2NvbnN0IFdTPUpQKCJbUGVyc2lzdGVudCBTZXR0aW5nc10gR2xvYmFsIFNldHRpbmdzIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFlTPW5ldyBHYSgiW1BlcnNpc3RlbnQgU2V0dGluZ3NdIEdsb2JhbCBTZXR0aW5ncyIpO2NsYXNzIHFTe2NvbnN0cnVjdG9yKHQpe3RoaXMuZ2xvYmFsU2V0dGluZ1NlbGVjdG9ycz1bXSx0JiYodGhpcy5nbG9iYWxTZXR0aW5nU2VsZWN0b3JzPXQubWFwKCh0PT50KCkpKSl9Z2V0R2xvYmFsU2V0dGluZ1NlbGVjdG9ycygpe3ZhciB0O3JldHVybiBudWxsIT09KHQ9dGhpcy5nbG9iYWxTZXR0aW5nU2VsZWN0b3JzKSYmdm9pZCAwIT09dD90OltdfXN0YXRpYyBkZWZpbmVHbG9iYWxTZXR0aW5nKHQpe3JldHVybntuZ01vZHVsZTpxUyxwcm92aWRlcnM6W3twcm92aWRlOllTLG11bHRpOiEwLHVzZVZhbHVlOnR9XX19fXFTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxxUykodnIoWVMsOCkpfSxxUy7JtW1vZD1hbyh7dHlwZTpxU30pLHFTLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHFTLFt7dHlwZTpBeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWVNdfV19XX0pLG51bGwpO2NsYXNzIFpTe3NldEl0ZW0odCxlKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0LGUpfWdldEl0ZW0odCl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHQpfXJlbW92ZUl0ZW0odCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odCl9fVpTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxaUyl9LFpTLsm1cHJvdj1Nbih7dG9rZW46WlMsZmFjdG9yeTpaUy7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWlMsW3t0eXBlOmltfV0sbnVsbCxudWxsKTtjbGFzcyBYU3t9WFMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhTKX0sWFMuybVtb2Q9YW8oe3R5cGU6WFN9KSxYUy7JtWluaj12bih7cHJvdmlkZXJzOltaU119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFhTLFt7dHlwZTpBeSxhcmdzOlt7cHJvdmlkZXJzOltaU119XX1dLG51bGwsbnVsbCk7Y29uc3QgS1M9Il90Yl9nbG9iYWxfc2V0dGluZ3MudGltZXNlcmllcyIsSlM9Il90Yl9nbG9iYWxfc2V0dGluZ3MiLFFTPSJub3RpZmljYXRpb25MYXN0UmVhZFRpbWVzdGFtcCI7Y2xhc3MgJFN7fSRTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHwkUyl9LCRTLsm1cHJvdj1Nbih7dG9rZW46JFMsZmFjdG9yeTokUy7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoJFMsW3t0eXBlOmltfV0sbnVsbCxudWxsKTtjbGFzcyB0RHt9dEQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHREKX0sdEQuybVwcm92PU1uKHt0b2tlbjp0RCxmYWN0b3J5OnRELsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh0RCxbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIGVEIGV4dGVuZHMgdER7dWlUb0JhY2tlbmQodCl7cmV0dXJue2lnbm9yZU91dGxpZXJzOnQuaWdub3JlT3V0bGllcnMsc2NhbGFyU21vb3RoaW5nOnQuc2NhbGFyU21vb3RoaW5nLHRvb2x0aXBTb3J0OnQudG9vbHRpcFNvcnRTdHJpbmcsYXV0b1JlbG9hZDp0LmF1dG9SZWxvYWQsYXV0b1JlbG9hZFBlcmlvZEluTXM6dC5hdXRvUmVsb2FkUGVyaW9kSW5NcyxwYWdpbmF0aW9uU2l6ZTp0LnBhZ2VTaXplLHRoZW1lOnQudGhlbWVPdmVycmlkZSxub3RpZmljYXRpb25MYXN0UmVhZFRpbWVJbk1zOnQubm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5NcyxzaWRlQmFyV2lkdGhJblBlcmNlbnQ6dC5zaWRlQmFyV2lkdGhJblBlcmNlbnQsdGltZVNlcmllc1Byb21vdGlvbkRpc21pc3NlZDp0LnRpbWVTZXJpZXNQcm9tb3Rpb25EaXNtaXNzZWQsdGltZVNlcmllc1NldHRpbmdzUGFuZU9wZW5lZDp0LnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWR9fWJhY2tlbmRUb1VpKHQpe2NvbnN0IGU9e307cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoInNjYWxhclNtb290aGluZyIpJiYibnVtYmVyIj09dHlwZW9mIHQuc2NhbGFyU21vb3RoaW5nJiYoZS5zY2FsYXJTbW9vdGhpbmc9dC5zY2FsYXJTbW9vdGhpbmcpLHQuaGFzT3duUHJvcGVydHkoImlnbm9yZU91dGxpZXJzIikmJiJib29sZWFuIj09dHlwZW9mIHQuaWdub3JlT3V0bGllcnMmJihlLmlnbm9yZU91dGxpZXJzPXQuaWdub3JlT3V0bGllcnMpLHQuaGFzT3duUHJvcGVydHkoInRvb2x0aXBTb3J0IikmJiJzdHJpbmciPT10eXBlb2YgdC50b29sdGlwU29ydCYmKGUudG9vbHRpcFNvcnRTdHJpbmc9dC50b29sdGlwU29ydCksdC5oYXNPd25Qcm9wZXJ0eSgiYXV0b1JlbG9hZCIpJiYiYm9vbGVhbiI9PXR5cGVvZiB0LmF1dG9SZWxvYWQmJihlLmF1dG9SZWxvYWQ9dC5hdXRvUmVsb2FkKSx0Lmhhc093blByb3BlcnR5KCJhdXRvUmVsb2FkUGVyaW9kSW5NcyIpJiYibnVtYmVyIj09dHlwZW9mIHQuYXV0b1JlbG9hZFBlcmlvZEluTXMmJihlLmF1dG9SZWxvYWRQZXJpb2RJbk1zPXQuYXV0b1JlbG9hZFBlcmlvZEluTXMpLHQuaGFzT3duUHJvcGVydHkoInBhZ2luYXRpb25TaXplIikmJiJudW1iZXIiPT10eXBlb2YgdC5wYWdpbmF0aW9uU2l6ZSYmKGUucGFnZVNpemU9dC5wYWdpbmF0aW9uU2l6ZSksdC5oYXNPd25Qcm9wZXJ0eSgidGhlbWUiKSYmInN0cmluZyI9PXR5cGVvZiB0LnRoZW1lJiZuZXcgU2V0KE9iamVjdC52YWx1ZXMoR1MpKS5oYXModC50aGVtZSkmJihlLnRoZW1lT3ZlcnJpZGU9dC50aGVtZSksdC5oYXNPd25Qcm9wZXJ0eSgibm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5NcyIpJiYibnVtYmVyIj09dHlwZW9mIHQubm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5NcyYmKGUubm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5Ncz10Lm5vdGlmaWNhdGlvbkxhc3RSZWFkVGltZUluTXMpLHQuaGFzT3duUHJvcGVydHkoInNpZGVCYXJXaWR0aEluUGVyY2VudCIpJiYibnVtYmVyIj09dHlwZW9mIHQuc2lkZUJhcldpZHRoSW5QZXJjZW50JiYoZS5zaWRlQmFyV2lkdGhJblBlcmNlbnQ9dC5zaWRlQmFyV2lkdGhJblBlcmNlbnQpLHQuaGFzT3duUHJvcGVydHkoInRpbWVTZXJpZXNQcm9tb3Rpb25EaXNtaXNzZWQiKSYmImJvb2xlYW4iPT10eXBlb2YgdC50aW1lU2VyaWVzUHJvbW90aW9uRGlzbWlzc2VkJiYoZS50aW1lU2VyaWVzUHJvbW90aW9uRGlzbWlzc2VkPXQudGltZVNlcmllc1Byb21vdGlvbkRpc21pc3NlZCksdC5oYXNPd25Qcm9wZXJ0eSgidGltZVNlcmllc1NldHRpbmdzUGFuZU9wZW5lZCIpJiYiYm9vbGVhbiI9PXR5cGVvZiB0LnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQmJihlLnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQ9dC50aW1lU2VyaWVzU2V0dGluZ3NQYW5lT3BlbmVkKSxlfX1lRC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoZUQpKSkobnx8ZUQpfX0pKCksZUQuybVwcm92PU1uKHt0b2tlbjplRCxmYWN0b3J5OmVELsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChlRCxbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIG5Ee2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5sb2NhbFN0b3JhZ2U9dCx0aGlzLmNvbnZlcnRlcj1lfXNldFNldHRpbmdzKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KT90aGlzLmdldFNldHRpbmdzKCkucGlwZShGZSgoZT0+e3RoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oSlMsSlNPTi5zdHJpbmdpZnkodGhpcy5jb252ZXJ0ZXIudWlUb0JhY2tlbmQoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHQpKSkpLHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oS1MpLHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oUVMpfSkpLEl0KCgoKT0+e30pKSk6cnR9ZGVzZXJpYWxpemUodCl7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQpfWNhdGNoKHQpe3JldHVybnt9fX1nZXRTZXR0aW5ncygpe3ZhciB0LGU7Y29uc3Qgbj10aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKFFTKSxvPXRoaXMuY29udmVydGVyLmJhY2tlbmRUb1VpKHRoaXMuZGVzZXJpYWxpemUobj9KU09OLnN0cmluZ2lmeSh7bm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5NczpOdW1iZXIobil9KToie30iKSksaT10aGlzLmNvbnZlcnRlci5iYWNrZW5kVG9VaSh0aGlzLmRlc2VyaWFsaXplKG51bGwhPT0odD10aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKEtTKSkmJnZvaWQgMCE9PXQ/dDoie30iKSksYT10aGlzLmNvbnZlcnRlci5iYWNrZW5kVG9VaSh0aGlzLmRlc2VyaWFsaXplKG51bGwhPT0oZT10aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKEpTKSkmJnZvaWQgMCE9PWU/ZToie30iKSk7cmV0dXJuIEV0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG8pLGkpLGEpKX19bkQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5EKSh2cihaUyksdnIodEQpKX0sbkQuybVwcm92PU1uKHt0b2tlbjpuRCxmYWN0b3J5Om5ELsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChuRCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WlN9LHt0eXBlOnREfV19KSxudWxsKTtjbGFzcyBvRHt9b0QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG9EKX0sb0QuybVtb2Q9YW8oe3R5cGU6b0R9KSxvRC7JtWluaj12bih7cHJvdmlkZXJzOlt7cHJvdmlkZTokUyx1c2VDbGFzczpuRH0se3Byb3ZpZGU6dEQsdXNlQ2xhc3M6ZUR9XSxpbXBvcnRzOltbWFNdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgob0QsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltYU10scHJvdmlkZXJzOlt7cHJvdmlkZTokUyx1c2VDbGFzczpuRH0se3Byb3ZpZGU6dEQsdXNlQ2xhc3M6ZUR9XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKG9ELHtpbXBvcnRzOltYU119KTtjb25zdCBpRD1KUCgiW1BlcnNpc3RlbnQgU2V0dGluZ3NdIEVmZmVjdHMgSW5pdCIpO2NsYXNzIGFEe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5jb25maWdNb2R1bGU9bix0aGlzLmRhdGFTb3VyY2U9byx0aGlzLmluaXRpYWxpemVBbmRVcGRhdGVTZXR0aW5ncyQ9TWsoKCgpPT57Y29uc3QgdD10aGlzLmFjdGlvbnMkLnBpcGUoRGsoaUQpLFp0KCgoKT0+dGhpcy5kYXRhU291cmNlLmdldFNldHRpbmdzKCkpKSxGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goV1Moe3BhcnRpYWxTZXR0aW5nczp0fSkpfSkpLENlKDApLFp0KCgoKT0+cmUoLi4udGhpcy5jb25maWdNb2R1bGUuZ2V0R2xvYmFsU2V0dGluZ1NlbGVjdG9ycygpLm1hcCgodD0+dGhpcy5zdG9yZS5zZWxlY3QodCkucGlwZShNZSgoKHQsZSk9Pntjb25zdCBuPU9iamVjdC52YWx1ZXModCksbz1PYmplY3QudmFsdWVzKGUpO3JldHVybiBuLmxlbmd0aD09PW8ubGVuZ3RoJiZuLmV2ZXJ5KCgodCxlKT0+dD09PW9bZV0pKX0pKSxUZSgxKSkpKSkpKSxFZSgpKTtyZXR1cm4gdC5waXBlKChmdW5jdGlvbiBlKHQpe3JldHVybiBSKChmdW5jdGlvbihlLG4pe3ZhciBvPVtdO3JldHVybiBlLnN1YnNjcmliZShuZXcgVChuLChmdW5jdGlvbih0KXtyZXR1cm4gby5wdXNoKHQpfSksKGZ1bmN0aW9uKCl7bi5uZXh0KG8pLG4uY29tcGxldGUoKX0pKSksdC5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24oKXt2YXIgdD1vO289W10sbi5uZXh0KHQpfSkseSkpLGZ1bmN0aW9uKCl7bz1udWxsfX0pKX0pKHQucGlwZShnZSg1MDApKSksWnQoKHQ9Pntjb25zdCBlPXt9O2Zvcihjb25zdCBuIG9mIHQpT2JqZWN0LmFzc2lnbihlLG4pO3JldHVybiB0aGlzLmRhdGFTb3VyY2Uuc2V0U2V0dGluZ3MoZSl9KSkpfSkse2Rpc3BhdGNoOiExfSl9bmdyeE9uSW5pdEVmZmVjdHMoKXtyZXR1cm4gaUQoKX19YUQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGFEKSh2cihTayksdnIoSXcpLHZyKHFTKSx2cigkUykpfSxhRC7JtXByb3Y9TW4oe3Rva2VuOmFELGZhY3Rvcnk6YUQuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGFELFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTa30se3R5cGU6SXd9LHt0eXBlOnFTfSx7dHlwZTokU31dfSksbnVsbCk7Y2xhc3MgckR7fXJELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxyRCl9LHJELsm1bW9kPWFvKHt0eXBlOnJEfSksckQuybVpbmo9dm4oe3Byb3ZpZGVyczpbcVNdLGltcG9ydHM6W1tXay5mb3JGZWF0dXJlKFthRF0pLG9EXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHJELFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV2suZm9yRmVhdHVyZShbYURdKSxvRF0scHJvdmlkZXJzOltxU119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhyRCx7aW1wb3J0czpbR2ssb0RdfSk7Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovCmNsYXNzIHNEe31jbGFzcyBsRHt9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGNEe2NvbnN0cnVjdG9yKHQpe3RoaXMubm9ybWFsaXplZE5hbWVzPW5ldyBNYXAsdGhpcy5sYXp5VXBkYXRlPW51bGwsdD90aGlzLmxhenlJbml0PSJzdHJpbmciPT10eXBlb2YgdD8oKT0+e3RoaXMuaGVhZGVycz1uZXcgTWFwLHQuc3BsaXQoIlxuIikuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5pbmRleE9mKCI6Iik7aWYoZT4wKXtjb25zdCBuPXQuc2xpY2UoMCxlKSxvPW4udG9Mb3dlckNhc2UoKSxpPXQuc2xpY2UoZSsxKS50cmltKCk7dGhpcy5tYXliZVNldE5vcm1hbGl6ZWROYW1lKG4sbyksdGhpcy5oZWFkZXJzLmhhcyhvKT90aGlzLmhlYWRlcnMuZ2V0KG8pLnB1c2goaSk6dGhpcy5oZWFkZXJzLnNldChvLFtpXSl9fSkpfTooKT0+e3RoaXMuaGVhZGVycz1uZXcgTWFwLE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGU9PntsZXQgbj10W2VdO2NvbnN0IG89ZS50b0xvd2VyQ2FzZSgpOyJzdHJpbmciPT10eXBlb2YgbiYmKG49W25dKSxuLmxlbmd0aD4wJiYodGhpcy5oZWFkZXJzLnNldChvLG4pLHRoaXMubWF5YmVTZXROb3JtYWxpemVkTmFtZShlLG8pKX0pKX06dGhpcy5oZWFkZXJzPW5ldyBNYXB9aGFzKHQpe3JldHVybiB0aGlzLmluaXQoKSx0aGlzLmhlYWRlcnMuaGFzKHQudG9Mb3dlckNhc2UoKSl9Z2V0KHQpe3RoaXMuaW5pdCgpO2NvbnN0IGU9dGhpcy5oZWFkZXJzLmdldCh0LnRvTG93ZXJDYXNlKCkpO3JldHVybiBlJiZlLmxlbmd0aD4wP2VbMF06bnVsbH1rZXlzKCl7cmV0dXJuIHRoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5ub3JtYWxpemVkTmFtZXMudmFsdWVzKCkpfWdldEFsbCh0KXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5oZWFkZXJzLmdldCh0LnRvTG93ZXJDYXNlKCkpfHxudWxsfWFwcGVuZCh0LGUpe3JldHVybiB0aGlzLmNsb25lKHtuYW1lOnQsdmFsdWU6ZSxvcDoiYSJ9KX1zZXQodCxlKXtyZXR1cm4gdGhpcy5jbG9uZSh7bmFtZTp0LHZhbHVlOmUsb3A6InMifSl9ZGVsZXRlKHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoe25hbWU6dCx2YWx1ZTplLG9wOiJkIn0pfW1heWJlU2V0Tm9ybWFsaXplZE5hbWUodCxlKXt0aGlzLm5vcm1hbGl6ZWROYW1lcy5oYXMoZSl8fHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChlLHQpfWluaXQoKXt0aGlzLmxhenlJbml0JiYodGhpcy5sYXp5SW5pdCBpbnN0YW5jZW9mIGNEP3RoaXMuY29weUZyb20odGhpcy5sYXp5SW5pdCk6dGhpcy5sYXp5SW5pdCgpLHRoaXMubGF6eUluaXQ9bnVsbCx0aGlzLmxhenlVcGRhdGUmJih0aGlzLmxhenlVcGRhdGUuZm9yRWFjaCgodD0+dGhpcy5hcHBseVVwZGF0ZSh0KSkpLHRoaXMubGF6eVVwZGF0ZT1udWxsKSl9Y29weUZyb20odCl7dC5pbml0KCksQXJyYXkuZnJvbSh0LmhlYWRlcnMua2V5cygpKS5mb3JFYWNoKChlPT57dGhpcy5oZWFkZXJzLnNldChlLHQuaGVhZGVycy5nZXQoZSkpLHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChlLHQubm9ybWFsaXplZE5hbWVzLmdldChlKSl9KSl9Y2xvbmUodCl7Y29uc3QgZT1uZXcgY0Q7cmV0dXJuIGUubGF6eUluaXQ9dGhpcy5sYXp5SW5pdCYmdGhpcy5sYXp5SW5pdCBpbnN0YW5jZW9mIGNEP3RoaXMubGF6eUluaXQ6dGhpcyxlLmxhenlVcGRhdGU9KHRoaXMubGF6eVVwZGF0ZXx8W10pLmNvbmNhdChbdF0pLGV9YXBwbHlVcGRhdGUodCl7Y29uc3QgZT10Lm5hbWUudG9Mb3dlckNhc2UoKTtzd2l0Y2godC5vcCl7Y2FzZSJhIjpjYXNlInMiOmxldCBuPXQudmFsdWU7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYobj1bbl0pLDA9PT1uLmxlbmd0aClyZXR1cm47dGhpcy5tYXliZVNldE5vcm1hbGl6ZWROYW1lKHQubmFtZSxlKTtjb25zdCBvPSgiYSI9PT10Lm9wP3RoaXMuaGVhZGVycy5nZXQoZSk6dm9pZCAwKXx8W107by5wdXNoKC4uLm4pLHRoaXMuaGVhZGVycy5zZXQoZSxvKTticmVhaztjYXNlImQiOmNvbnN0IGk9dC52YWx1ZTtpZihpKXtsZXQgdD10aGlzLmhlYWRlcnMuZ2V0KGUpO2lmKCF0KXJldHVybjt0PXQuZmlsdGVyKCh0PT4tMT09PWkuaW5kZXhPZih0KSkpLDA9PT10Lmxlbmd0aD8odGhpcy5oZWFkZXJzLmRlbGV0ZShlKSx0aGlzLm5vcm1hbGl6ZWROYW1lcy5kZWxldGUoZSkpOnRoaXMuaGVhZGVycy5zZXQoZSx0KX1lbHNlIHRoaXMuaGVhZGVycy5kZWxldGUoZSksdGhpcy5ub3JtYWxpemVkTmFtZXMuZGVsZXRlKGUpfX1mb3JFYWNoKHQpe3RoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5ub3JtYWxpemVkTmFtZXMua2V5cygpKS5mb3JFYWNoKChlPT50KHRoaXMubm9ybWFsaXplZE5hbWVzLmdldChlKSx0aGlzLmhlYWRlcnMuZ2V0KGUpKSkpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgZER7ZW5jb2RlS2V5KHQpe3JldHVybiBwRCh0KX1lbmNvZGVWYWx1ZSh0KXtyZXR1cm4gcEQodCl9ZGVjb2RlS2V5KHQpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodCl9ZGVjb2RlVmFsdWUodCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh0KX19ZnVuY3Rpb24gcEQodCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh0KS5yZXBsYWNlKC8lNDAvZ2ksIkAiKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZ2ksIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lM0IvZ2ksIjsiKS5yZXBsYWNlKC8lMkIvZ2ksIisiKS5yZXBsYWNlKC8lM0QvZ2ksIj0iKS5yZXBsYWNlKC8lM0YvZ2ksIj8iKS5yZXBsYWNlKC8lMkYvZ2ksIi8iKX1mdW5jdGlvbiBtRCh0KXtyZXR1cm5gJHt0fWB9Y2xhc3MgdUR7Y29uc3RydWN0b3IodD17fSl7aWYodGhpcy51cGRhdGVzPW51bGwsdGhpcy5jbG9uZUZyb209bnVsbCx0aGlzLmVuY29kZXI9dC5lbmNvZGVyfHxuZXcgZEQsdC5mcm9tU3RyaW5nKXtpZih0LmZyb21PYmplY3QpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc3BlY2lmeSBib3RoIGZyb21TdHJpbmcgYW5kIGZyb21PYmplY3QuIik7dGhpcy5tYXA9KGZ1bmN0aW9uIGUodCxuKXtjb25zdCBvPW5ldyBNYXA7cmV0dXJuIHQubGVuZ3RoPjAmJnQucmVwbGFjZSgvXlw/LywiIikuc3BsaXQoIiYiKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10LmluZGV4T2YoIj0iKSxbaSxhXT0tMT09ZT9bbi5kZWNvZGVLZXkodCksIiJdOltuLmRlY29kZUtleSh0LnNsaWNlKDAsZSkpLG4uZGVjb2RlVmFsdWUodC5zbGljZShlKzEpKV0scj1vLmdldChpKXx8W107ci5wdXNoKGEpLG8uc2V0KGkscil9KSksb30pKHQuZnJvbVN0cmluZyx0aGlzLmVuY29kZXIpfWVsc2UgdC5mcm9tT2JqZWN0Pyh0aGlzLm1hcD1uZXcgTWFwLE9iamVjdC5rZXlzKHQuZnJvbU9iamVjdCkuZm9yRWFjaCgoZT0+e2NvbnN0IG49dC5mcm9tT2JqZWN0W2VdO3RoaXMubWFwLnNldChlLEFycmF5LmlzQXJyYXkobik/bjpbbl0pfSkpKTp0aGlzLm1hcD1udWxsfWhhcyh0KXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5tYXAuaGFzKHQpfWdldCh0KXt0aGlzLmluaXQoKTtjb25zdCBlPXRoaXMubWFwLmdldCh0KTtyZXR1cm4gZT9lWzBdOm51bGx9Z2V0QWxsKHQpe3JldHVybiB0aGlzLmluaXQoKSx0aGlzLm1hcC5nZXQodCl8fG51bGx9a2V5cygpe3JldHVybiB0aGlzLmluaXQoKSxBcnJheS5mcm9tKHRoaXMubWFwLmtleXMoKSl9YXBwZW5kKHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoe3BhcmFtOnQsdmFsdWU6ZSxvcDoiYSJ9KX1hcHBlbmRBbGwodCl7Y29uc3QgZT1bXTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+e2NvbnN0IG89dFtuXTtBcnJheS5pc0FycmF5KG8pP28uZm9yRWFjaCgodD0+e2UucHVzaCh7cGFyYW06bix2YWx1ZTp0LG9wOiJhIn0pfSkpOmUucHVzaCh7cGFyYW06bix2YWx1ZTpvLG9wOiJhIn0pfSkpLHRoaXMuY2xvbmUoZSl9c2V0KHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoe3BhcmFtOnQsdmFsdWU6ZSxvcDoicyJ9KX1kZWxldGUodCxlKXtyZXR1cm4gdGhpcy5jbG9uZSh7cGFyYW06dCx2YWx1ZTplLG9wOiJkIn0pfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMua2V5cygpLm1hcCgodD0+e2NvbnN0IGU9dGhpcy5lbmNvZGVyLmVuY29kZUtleSh0KTtyZXR1cm4gdGhpcy5tYXAuZ2V0KHQpLm1hcCgodD0+ZSsiPSIrdGhpcy5lbmNvZGVyLmVuY29kZVZhbHVlKHQpKSkuam9pbigiJiIpfSkpLmZpbHRlcigodD0+IiIhPT10KSkuam9pbigiJiIpfWNsb25lKHQpe2NvbnN0IGU9bmV3IHVEKHtlbmNvZGVyOnRoaXMuZW5jb2Rlcn0pO3JldHVybiBlLmNsb25lRnJvbT10aGlzLmNsb25lRnJvbXx8dGhpcyxlLnVwZGF0ZXM9KHRoaXMudXBkYXRlc3x8W10pLmNvbmNhdCh0KSxlfWluaXQoKXtudWxsPT09dGhpcy5tYXAmJih0aGlzLm1hcD1uZXcgTWFwKSxudWxsIT09dGhpcy5jbG9uZUZyb20mJih0aGlzLmNsb25lRnJvbS5pbml0KCksdGhpcy5jbG9uZUZyb20ua2V5cygpLmZvckVhY2goKHQ9PnRoaXMubWFwLnNldCh0LHRoaXMuY2xvbmVGcm9tLm1hcC5nZXQodCkpKSksdGhpcy51cGRhdGVzLmZvckVhY2goKHQ9Pntzd2l0Y2godC5vcCl7Y2FzZSJhIjpjYXNlInMiOmNvbnN0IGU9KCJhIj09PXQub3A/dGhpcy5tYXAuZ2V0KHQucGFyYW0pOnZvaWQgMCl8fFtdO2UucHVzaChtRCh0LnZhbHVlKSksdGhpcy5tYXAuc2V0KHQucGFyYW0sZSk7YnJlYWs7Y2FzZSJkIjppZih2b2lkIDA9PT10LnZhbHVlKXt0aGlzLm1hcC5kZWxldGUodC5wYXJhbSk7YnJlYWt9e2xldCBlPXRoaXMubWFwLmdldCh0LnBhcmFtKXx8W107Y29uc3Qgbj1lLmluZGV4T2YobUQodC52YWx1ZSkpOy0xIT09biYmZS5zcGxpY2UobiwxKSxlLmxlbmd0aD4wP3RoaXMubWFwLnNldCh0LnBhcmFtLGUpOnRoaXMubWFwLmRlbGV0ZSh0LnBhcmFtKX19fSkpLHRoaXMuY2xvbmVGcm9tPXRoaXMudXBkYXRlcz1udWxsKX19Y2xhc3MgZkR7Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1uZXcgTWFwfXNldCh0LGUpe3JldHVybiB0aGlzLm1hcC5zZXQodCxlKSx0aGlzfWdldCh0KXtyZXR1cm4gdGhpcy5tYXAuaGFzKHQpfHx0aGlzLm1hcC5zZXQodCx0LmRlZmF1bHRWYWx1ZSgpKSx0aGlzLm1hcC5nZXQodCl9ZGVsZXRlKHQpe3JldHVybiB0aGlzLm1hcC5kZWxldGUodCksdGhpc31rZXlzKCl7cmV0dXJuIHRoaXMubWFwLmtleXMoKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGdEKHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJnQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcn1mdW5jdGlvbiBoRCh0KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEJsb2ImJnQgaW5zdGFuY2VvZiBCbG9ifWZ1bmN0aW9uIGJEKHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgRm9ybURhdGEmJnQgaW5zdGFuY2VvZiBGb3JtRGF0YX1jbGFzcyB5RHtjb25zdHJ1Y3Rvcih0LGUsbixvKXtsZXQgaTtpZih0aGlzLnVybD1lLHRoaXMuYm9keT1udWxsLHRoaXMucmVwb3J0UHJvZ3Jlc3M9ITEsdGhpcy53aXRoQ3JlZGVudGlhbHM9ITEsdGhpcy5yZXNwb25zZVR5cGU9Impzb24iLHRoaXMubWV0aG9kPXQudG9VcHBlckNhc2UoKSwoZnVuY3Rpb24gYSh0KXtzd2l0Y2godCl7Y2FzZSJERUxFVEUiOmNhc2UiR0VUIjpjYXNlIkhFQUQiOmNhc2UiT1BUSU9OUyI6Y2FzZSJKU09OUCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19KSh0aGlzLm1ldGhvZCl8fG8/KHRoaXMuYm9keT12b2lkIDAhPT1uP246bnVsbCxpPW8pOmk9bixpJiYodGhpcy5yZXBvcnRQcm9ncmVzcz0hIWkucmVwb3J0UHJvZ3Jlc3MsdGhpcy53aXRoQ3JlZGVudGlhbHM9ISFpLndpdGhDcmVkZW50aWFscyxpLnJlc3BvbnNlVHlwZSYmKHRoaXMucmVzcG9uc2VUeXBlPWkucmVzcG9uc2VUeXBlKSxpLmhlYWRlcnMmJih0aGlzLmhlYWRlcnM9aS5oZWFkZXJzKSxpLmNvbnRleHQmJih0aGlzLmNvbnRleHQ9aS5jb250ZXh0KSxpLnBhcmFtcyYmKHRoaXMucGFyYW1zPWkucGFyYW1zKSksdGhpcy5oZWFkZXJzfHwodGhpcy5oZWFkZXJzPW5ldyBjRCksdGhpcy5jb250ZXh0fHwodGhpcy5jb250ZXh0PW5ldyBmRCksdGhpcy5wYXJhbXMpe2NvbnN0IHQ9dGhpcy5wYXJhbXMudG9TdHJpbmcoKTtpZigwPT09dC5sZW5ndGgpdGhpcy51cmxXaXRoUGFyYW1zPWU7ZWxzZXtjb25zdCBuPWUuaW5kZXhPZigiPyIpO3RoaXMudXJsV2l0aFBhcmFtcz1lKygtMT09PW4/Ij8iOm48ZS5sZW5ndGgtMT8iJiI6IiIpK3R9fWVsc2UgdGhpcy5wYXJhbXM9bmV3IHVELHRoaXMudXJsV2l0aFBhcmFtcz1lfXNlcmlhbGl6ZUJvZHkoKXtyZXR1cm4gbnVsbD09PXRoaXMuYm9keT9udWxsOmdEKHRoaXMuYm9keSl8fGhEKHRoaXMuYm9keSl8fGJEKHRoaXMuYm9keSl8fChmdW5jdGlvbiB0KGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgVVJMU2VhcmNoUGFyYW1zJiZlIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zfSkodGhpcy5ib2R5KXx8InN0cmluZyI9PXR5cGVvZiB0aGlzLmJvZHk/dGhpcy5ib2R5OnRoaXMuYm9keSBpbnN0YW5jZW9mIHVEP3RoaXMuYm9keS50b1N0cmluZygpOiJvYmplY3QiPT10eXBlb2YgdGhpcy5ib2R5fHwiYm9vbGVhbiI9PXR5cGVvZiB0aGlzLmJvZHl8fEFycmF5LmlzQXJyYXkodGhpcy5ib2R5KT9KU09OLnN0cmluZ2lmeSh0aGlzLmJvZHkpOnRoaXMuYm9keS50b1N0cmluZygpfWRldGVjdENvbnRlbnRUeXBlSGVhZGVyKCl7cmV0dXJuIG51bGw9PT10aGlzLmJvZHl8fGJEKHRoaXMuYm9keSk/bnVsbDpoRCh0aGlzLmJvZHkpP3RoaXMuYm9keS50eXBlfHxudWxsOmdEKHRoaXMuYm9keSk/bnVsbDoic3RyaW5nIj09dHlwZW9mIHRoaXMuYm9keT8idGV4dC9wbGFpbiI6dGhpcy5ib2R5IGluc3RhbmNlb2YgdUQ/ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Ijoib2JqZWN0Ij09dHlwZW9mIHRoaXMuYm9keXx8Im51bWJlciI9PXR5cGVvZiB0aGlzLmJvZHl8fCJib29sZWFuIj09dHlwZW9mIHRoaXMuYm9keT8iYXBwbGljYXRpb24vanNvbiI6bnVsbH1jbG9uZSh0PXt9KXt2YXIgZTtjb25zdCBuPXQubWV0aG9kfHx0aGlzLm1ldGhvZCxvPXQudXJsfHx0aGlzLnVybCxpPXQucmVzcG9uc2VUeXBlfHx0aGlzLnJlc3BvbnNlVHlwZSxhPXZvaWQgMCE9PXQuYm9keT90LmJvZHk6dGhpcy5ib2R5LHI9dm9pZCAwIT09dC53aXRoQ3JlZGVudGlhbHM/dC53aXRoQ3JlZGVudGlhbHM6dGhpcy53aXRoQ3JlZGVudGlhbHMscz12b2lkIDAhPT10LnJlcG9ydFByb2dyZXNzP3QucmVwb3J0UHJvZ3Jlc3M6dGhpcy5yZXBvcnRQcm9ncmVzcztsZXQgbD10LmhlYWRlcnN8fHRoaXMuaGVhZGVycyxjPXQucGFyYW1zfHx0aGlzLnBhcmFtcztjb25zdCBkPW51bGwhPT0oZT10LmNvbnRleHQpJiZ2b2lkIDAhPT1lP2U6dGhpcy5jb250ZXh0O3JldHVybiB2b2lkIDAhPT10LnNldEhlYWRlcnMmJihsPU9iamVjdC5rZXlzKHQuc2V0SGVhZGVycykucmVkdWNlKCgoZSxuKT0+ZS5zZXQobix0LnNldEhlYWRlcnNbbl0pKSxsKSksdC5zZXRQYXJhbXMmJihjPU9iamVjdC5rZXlzKHQuc2V0UGFyYW1zKS5yZWR1Y2UoKChlLG4pPT5lLnNldChuLHQuc2V0UGFyYW1zW25dKSksYykpLG5ldyB5RChuLG8sYSx7cGFyYW1zOmMsaGVhZGVyczpsLGNvbnRleHQ6ZCxyZXBvcnRQcm9ncmVzczpzLHJlc3BvbnNlVHlwZTppLHdpdGhDcmVkZW50aWFsczpyfSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi92YXIgX0Q7IShmdW5jdGlvbih0KXt0W3QuU2VudD0wXT0iU2VudCIsdFt0LlVwbG9hZFByb2dyZXNzPTFdPSJVcGxvYWRQcm9ncmVzcyIsdFt0LlJlc3BvbnNlSGVhZGVyPTJdPSJSZXNwb25zZUhlYWRlciIsdFt0LkRvd25sb2FkUHJvZ3Jlc3M9M109IkRvd25sb2FkUHJvZ3Jlc3MiLHRbdC5SZXNwb25zZT00XT0iUmVzcG9uc2UiLHRbdC5Vc2VyPTVdPSJVc2VyIn0pKF9EfHwoX0Q9e30pKTtjbGFzcyBDRHtjb25zdHJ1Y3Rvcih0LGU9MjAwLG49Ik9LIil7dGhpcy5oZWFkZXJzPXQuaGVhZGVyc3x8bmV3IGNELHRoaXMuc3RhdHVzPXZvaWQgMCE9PXQuc3RhdHVzP3Quc3RhdHVzOmUsdGhpcy5zdGF0dXNUZXh0PXQuc3RhdHVzVGV4dHx8bix0aGlzLnVybD10LnVybHx8bnVsbCx0aGlzLm9rPXRoaXMuc3RhdHVzPj0yMDAmJnRoaXMuc3RhdHVzPDMwMH19Y2xhc3MgTUQgZXh0ZW5kcyBDRHtjb25zdHJ1Y3Rvcih0PXt9KXtzdXBlcih0KSx0aGlzLnR5cGU9X0QuUmVzcG9uc2VIZWFkZXJ9Y2xvbmUodD17fSl7cmV0dXJuIG5ldyBNRCh7aGVhZGVyczp0LmhlYWRlcnN8fHRoaXMuaGVhZGVycyxzdGF0dXM6dm9pZCAwIT09dC5zdGF0dXM/dC5zdGF0dXM6dGhpcy5zdGF0dXMsc3RhdHVzVGV4dDp0LnN0YXR1c1RleHR8fHRoaXMuc3RhdHVzVGV4dCx1cmw6dC51cmx8fHRoaXMudXJsfHx2b2lkIDB9KX19Y2xhc3MgdkQgZXh0ZW5kcyBDRHtjb25zdHJ1Y3Rvcih0PXt9KXtzdXBlcih0KSx0aGlzLnR5cGU9X0QuUmVzcG9uc2UsdGhpcy5ib2R5PXZvaWQgMCE9PXQuYm9keT90LmJvZHk6bnVsbH1jbG9uZSh0PXt9KXtyZXR1cm4gbmV3IHZEKHtib2R5OnZvaWQgMCE9PXQuYm9keT90LmJvZHk6dGhpcy5ib2R5LGhlYWRlcnM6dC5oZWFkZXJzfHx0aGlzLmhlYWRlcnMsc3RhdHVzOnZvaWQgMCE9PXQuc3RhdHVzP3Quc3RhdHVzOnRoaXMuc3RhdHVzLHN0YXR1c1RleHQ6dC5zdGF0dXNUZXh0fHx0aGlzLnN0YXR1c1RleHQsdXJsOnQudXJsfHx0aGlzLnVybHx8dm9pZCAwfSl9fWNsYXNzIHhEIGV4dGVuZHMgQ0R7Y29uc3RydWN0b3IodCl7c3VwZXIodCwwLCJVbmtub3duIEVycm9yIiksdGhpcy5uYW1lPSJIdHRwRXJyb3JSZXNwb25zZSIsdGhpcy5vaz0hMSx0aGlzLm1lc3NhZ2U9dGhpcy5zdGF0dXM+PTIwMCYmdGhpcy5zdGF0dXM8MzAwP2BIdHRwIGZhaWx1cmUgZHVyaW5nIHBhcnNpbmcgZm9yICR7dC51cmx8fCIodW5rbm93biB1cmwpIn1gOmBIdHRwIGZhaWx1cmUgcmVzcG9uc2UgZm9yICR7dC51cmx8fCIodW5rbm93biB1cmwpIn06ICR7dC5zdGF0dXN9ICR7dC5zdGF0dXNUZXh0fWAsdGhpcy5lcnJvcj10LmVycm9yfHxudWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gT0QodCxlKXtyZXR1cm57Ym9keTplLGhlYWRlcnM6dC5oZWFkZXJzLGNvbnRleHQ6dC5jb250ZXh0LG9ic2VydmU6dC5vYnNlcnZlLHBhcmFtczp0LnBhcmFtcyxyZXBvcnRQcm9ncmVzczp0LnJlcG9ydFByb2dyZXNzLHJlc3BvbnNlVHlwZTp0LnJlc3BvbnNlVHlwZSx3aXRoQ3JlZGVudGlhbHM6dC53aXRoQ3JlZGVudGlhbHN9fWNsYXNzIFBEe2NvbnN0cnVjdG9yKHQpe3RoaXMuaGFuZGxlcj10fXJlcXVlc3QodCxlLG49e30pe2xldCBvO2lmKHQgaW5zdGFuY2VvZiB5RClvPXQ7ZWxzZXtsZXQgaSxhO2k9bi5oZWFkZXJzIGluc3RhbmNlb2YgY0Q/bi5oZWFkZXJzOm5ldyBjRChuLmhlYWRlcnMpLG4ucGFyYW1zJiYoYT1uLnBhcmFtcyBpbnN0YW5jZW9mIHVEP24ucGFyYW1zOm5ldyB1RCh7ZnJvbU9iamVjdDpuLnBhcmFtc30pKSxvPW5ldyB5RCh0LGUsdm9pZCAwIT09bi5ib2R5P24uYm9keTpudWxsLHtoZWFkZXJzOmksY29udGV4dDpuLmNvbnRleHQscGFyYW1zOmEscmVwb3J0UHJvZ3Jlc3M6bi5yZXBvcnRQcm9ncmVzcyxyZXNwb25zZVR5cGU6bi5yZXNwb25zZVR5cGV8fCJqc29uIix3aXRoQ3JlZGVudGlhbHM6bi53aXRoQ3JlZGVudGlhbHN9KX1jb25zdCBpPUV0KG8pLnBpcGUoKGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gbChlKT9adCh0LGUsMSk6WnQodCwxKX0pKCh0PT50aGlzLmhhbmRsZXIuaGFuZGxlKHQpKSkpO2lmKHQgaW5zdGFuY2VvZiB5RHx8ImV2ZW50cyI9PT1uLm9ic2VydmUpcmV0dXJuIGk7Y29uc3Qgcj1pLnBpcGUoY2UoKHQ9PnQgaW5zdGFuY2VvZiB2RCkpKTtzd2l0Y2gobi5vYnNlcnZlfHwiYm9keSIpe2Nhc2UiYm9keSI6c3dpdGNoKG8ucmVzcG9uc2VUeXBlKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gci5waXBlKEl0KCh0PT57aWYobnVsbCE9PXQuYm9keSYmISh0LmJvZHkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBpcyBub3QgYW4gQXJyYXlCdWZmZXIuIik7cmV0dXJuIHQuYm9keX0pKSk7Y2FzZSJibG9iIjpyZXR1cm4gci5waXBlKEl0KCh0PT57aWYobnVsbCE9PXQuYm9keSYmISh0LmJvZHkgaW5zdGFuY2VvZiBCbG9iKSl0aHJvdyBuZXcgRXJyb3IoIlJlc3BvbnNlIGlzIG5vdCBhIEJsb2IuIik7cmV0dXJuIHQuYm9keX0pKSk7Y2FzZSJ0ZXh0IjpyZXR1cm4gci5waXBlKEl0KCh0PT57aWYobnVsbCE9PXQuYm9keSYmInN0cmluZyIhPXR5cGVvZiB0LmJvZHkpdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBpcyBub3QgYSBzdHJpbmcuIik7cmV0dXJuIHQuYm9keX0pKSk7Y2FzZSJqc29uIjpkZWZhdWx0OnJldHVybiByLnBpcGUoSXQoKHQ9PnQuYm9keSkpKX1jYXNlInJlc3BvbnNlIjpyZXR1cm4gcjtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5yZWFjaGFibGU6IHVuaGFuZGxlZCBvYnNlcnZlIHR5cGUgJHtuLm9ic2VydmV9fWApfX1kZWxldGUodCxlPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJERUxFVEUiLHQsZSl9Z2V0KHQsZT17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiR0VUIix0LGUpfWhlYWQodCxlPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJIRUFEIix0LGUpfWpzb25wKHQsZSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiSlNPTlAiLHQse3BhcmFtczoobmV3IHVEKS5hcHBlbmQoZSwiSlNPTlBfQ0FMTEJBQ0siKSxvYnNlcnZlOiJib2R5IixyZXNwb25zZVR5cGU6Impzb24ifSl9b3B0aW9ucyh0LGU9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIk9QVElPTlMiLHQsZSl9cGF0Y2godCxlLG49e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIlBBVENIIix0LE9EKG4sZSkpfXBvc3QodCxlLG49e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIlBPU1QiLHQsT0QobixlKSl9cHV0KHQsZSxuPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJQVVQiLHQsT0QobixlKSl9fVBELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQRCkodnIoc0QpKX0sUEQuybVwcm92PU1uKHt0b2tlbjpQRCxmYWN0b3J5OlBELsm1ZmFjfSksUEQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpzRH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUEQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnNEfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHdEe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5uZXh0PXQsdGhpcy5pbnRlcmNlcHRvcj1lfWhhbmRsZSh0KXtyZXR1cm4gdGhpcy5pbnRlcmNlcHRvci5pbnRlcmNlcHQodCx0aGlzLm5leHQpfX1jb25zdCBrRD1uZXcgR2EoIkhUVFBfSU5URVJDRVBUT1JTIik7Y2xhc3MgU0R7aW50ZXJjZXB0KHQsZSl7cmV0dXJuIGUuaGFuZGxlKHQpfX1TRC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U0QpfSxTRC7JtXByb3Y9TW4oe3Rva2VuOlNELGZhY3Rvcnk6U0QuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFNELFt7dHlwZTppbX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgREQ9MDtjbGFzcyBFRHt9Y2xhc3MgUkR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmNhbGxiYWNrTWFwPXQsdGhpcy5kb2N1bWVudD1lLHRoaXMucmVzb2x2ZWRQcm9taXNlPVByb21pc2UucmVzb2x2ZSgpfW5leHRDYWxsYmFjaygpe3JldHVybiJuZ19qc29ucF9jYWxsYmFja18iK0REKyt9aGFuZGxlKHQpe2lmKCJKU09OUCIhPT10Lm1ldGhvZCl0aHJvdyBuZXcgRXJyb3IoIkpTT05QIHJlcXVlc3RzIG11c3QgdXNlIEpTT05QIHJlcXVlc3QgbWV0aG9kLiIpO2lmKCJqc29uIiE9PXQucmVzcG9uc2VUeXBlKXRocm93IG5ldyBFcnJvcigiSlNPTlAgcmVxdWVzdHMgbXVzdCB1c2UgSnNvbiByZXNwb25zZSB0eXBlLiIpO3JldHVybiBuZXcgRCgoZT0+e2NvbnN0IG49dGhpcy5uZXh0Q2FsbGJhY2soKSxvPXQudXJsV2l0aFBhcmFtcy5yZXBsYWNlKC89SlNPTlBfQ0FMTEJBQ0soJnwkKS8sYD0ke259JDFgKSxpPXRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aS5zcmM9bztsZXQgYT1udWxsLHI9ITEscz0hMTt0aGlzLmNhbGxiYWNrTWFwW25dPXQ9PntkZWxldGUgdGhpcy5jYWxsYmFja01hcFtuXSxzfHwoYT10LHI9ITApfTtjb25zdCBsPSgpPT57aS5wYXJlbnROb2RlJiZpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSksZGVsZXRlIHRoaXMuY2FsbGJhY2tNYXBbbl19LGM9dD0+e3N8fHRoaXMucmVzb2x2ZWRQcm9taXNlLnRoZW4oKCgpPT57bCgpLHI/KGUubmV4dChuZXcgdkQoe2JvZHk6YSxzdGF0dXM6MjAwLHN0YXR1c1RleHQ6Ik9LIix1cmw6b30pKSxlLmNvbXBsZXRlKCkpOmUuZXJyb3IobmV3IHhEKHt1cmw6byxzdGF0dXM6MCxzdGF0dXNUZXh0OiJKU09OUCBFcnJvciIsZXJyb3I6bmV3IEVycm9yKCJKU09OUCBpbmplY3RlZCBzY3JpcHQgZGlkIG5vdCBpbnZva2UgY2FsbGJhY2suIil9KSl9KSl9LGQ9dD0+e3N8fChsKCksZS5lcnJvcihuZXcgeEQoe2Vycm9yOnQsc3RhdHVzOjAsc3RhdHVzVGV4dDoiSlNPTlAgRXJyb3IiLHVybDpvfSkpKX07cmV0dXJuIGkuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYyksaS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZCksdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpLGUubmV4dCh7dHlwZTpfRC5TZW50fSksKCk9PntzPSEwLGkucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsYyksaS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsZCksbCgpfX0pKX19UkQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJEKSh2cihFRCksdnIoWl8pKX0sUkQuybVwcm92PU1uKHt0b2tlbjpSRCxmYWN0b3J5OlJELsm1ZmFjfSksUkQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpFRH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChSRCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RUR9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y2xhc3MgQUR7Y29uc3RydWN0b3IodCl7dGhpcy5qc29ucD10fWludGVyY2VwdCh0LGUpe3JldHVybiJKU09OUCI9PT10Lm1ldGhvZD90aGlzLmpzb25wLmhhbmRsZSh0KTplLmhhbmRsZSh0KX19QUQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEFEKSh2cihSRCkpfSxBRC7JtXByb3Y9TW4oe3Rva2VuOkFELGZhY3Rvcnk6QUQuybVmYWN9KSxBRC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlJEfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChBRCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6UkR9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgVEQ9L15cKVxdXH0nLD9cbi87Y2xhc3MgTkR7Y29uc3RydWN0b3IodCl7dGhpcy54aHJGYWN0b3J5PXR9aGFuZGxlKHQpe2lmKCJKU09OUCI9PT10Lm1ldGhvZCl0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRlZCB0byBjb25zdHJ1Y3QgSnNvbnAgcmVxdWVzdCB3aXRob3V0IEh0dHBDbGllbnRKc29ucE1vZHVsZSBpbnN0YWxsZWQuIik7cmV0dXJuIG5ldyBEKChlPT57Y29uc3Qgbj10aGlzLnhockZhY3RvcnkuYnVpbGQoKTtpZihuLm9wZW4odC5tZXRob2QsdC51cmxXaXRoUGFyYW1zKSx0LndpdGhDcmVkZW50aWFscyYmKG4ud2l0aENyZWRlbnRpYWxzPSEwKSx0LmhlYWRlcnMuZm9yRWFjaCgoKHQsZSk9Pm4uc2V0UmVxdWVzdEhlYWRlcih0LGUuam9pbigiLCIpKSkpLHQuaGVhZGVycy5oYXMoIkFjY2VwdCIpfHxuLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIpLCF0LmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKSl7Y29uc3QgZT10LmRldGVjdENvbnRlbnRUeXBlSGVhZGVyKCk7bnVsbCE9PWUmJm4uc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixlKX1pZih0LnJlc3BvbnNlVHlwZSl7Y29uc3QgZT10LnJlc3BvbnNlVHlwZS50b0xvd2VyQ2FzZSgpO24ucmVzcG9uc2VUeXBlPSJqc29uIiE9PWU/ZToidGV4dCJ9Y29uc3Qgbz10LnNlcmlhbGl6ZUJvZHkoKTtsZXQgaT1udWxsO2NvbnN0IGE9KCk9PntpZihudWxsIT09aSlyZXR1cm4gaTtjb25zdCBlPTEyMjM9PT1uLnN0YXR1cz8yMDQ6bi5zdGF0dXMsbz1uLnN0YXR1c1RleHR8fCJPSyIsYT1uZXcgY0Qobi5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkscj0oZnVuY3Rpb24gcyh0KXtyZXR1cm4icmVzcG9uc2VVUkwiaW4gdCYmdC5yZXNwb25zZVVSTD90LnJlc3BvbnNlVVJMOi9eWC1SZXF1ZXN0LVVSTDovbS50ZXN0KHQuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpP3QuZ2V0UmVzcG9uc2VIZWFkZXIoIlgtUmVxdWVzdC1VUkwiKTpudWxsfSkobil8fHQudXJsO3JldHVybiBpPW5ldyBNRCh7aGVhZGVyczphLHN0YXR1czplLHN0YXR1c1RleHQ6byx1cmw6cn0pLGl9LHI9KCk9PntsZXR7aGVhZGVyczpvLHN0YXR1czppLHN0YXR1c1RleHQ6cix1cmw6c309YSgpLGw9bnVsbDsyMDQhPT1pJiYobD12b2lkIDA9PT1uLnJlc3BvbnNlP24ucmVzcG9uc2VUZXh0Om4ucmVzcG9uc2UpLDA9PT1pJiYoaT1sPzIwMDowKTtsZXQgYz1pPj0yMDAmJmk8MzAwO2lmKCJqc29uIj09PXQucmVzcG9uc2VUeXBlJiYic3RyaW5nIj09dHlwZW9mIGwpe2NvbnN0IHQ9bDtsPWwucmVwbGFjZShURCwiIik7dHJ5e2w9IiIhPT1sP0pTT04ucGFyc2UobCk6bnVsbH1jYXRjaChlKXtsPXQsYyYmKGM9ITEsbD17ZXJyb3I6ZSx0ZXh0Omx9KX19Yz8oZS5uZXh0KG5ldyB2RCh7Ym9keTpsLGhlYWRlcnM6byxzdGF0dXM6aSxzdGF0dXNUZXh0OnIsdXJsOnN8fHZvaWQgMH0pKSxlLmNvbXBsZXRlKCkpOmUuZXJyb3IobmV3IHhEKHtlcnJvcjpsLGhlYWRlcnM6byxzdGF0dXM6aSxzdGF0dXNUZXh0OnIsdXJsOnN8fHZvaWQgMH0pKX0scz10PT57Y29uc3R7dXJsOm99PWEoKSxpPW5ldyB4RCh7ZXJyb3I6dCxzdGF0dXM6bi5zdGF0dXN8fDAsc3RhdHVzVGV4dDpuLnN0YXR1c1RleHR8fCJVbmtub3duIEVycm9yIix1cmw6b3x8dm9pZCAwfSk7ZS5lcnJvcihpKX07bGV0IGw9ITE7Y29uc3QgYz1vPT57bHx8KGUubmV4dChhKCkpLGw9ITApO2xldCBpPXt0eXBlOl9ELkRvd25sb2FkUHJvZ3Jlc3MsbG9hZGVkOm8ubG9hZGVkfTtvLmxlbmd0aENvbXB1dGFibGUmJihpLnRvdGFsPW8udG90YWwpLCJ0ZXh0Ij09PXQucmVzcG9uc2VUeXBlJiZuLnJlc3BvbnNlVGV4dCYmKGkucGFydGlhbFRleHQ9bi5yZXNwb25zZVRleHQpLGUubmV4dChpKX0sZD10PT57bGV0IG49e3R5cGU6X0QuVXBsb2FkUHJvZ3Jlc3MsbG9hZGVkOnQubG9hZGVkfTt0Lmxlbmd0aENvbXB1dGFibGUmJihuLnRvdGFsPXQudG90YWwpLGUubmV4dChuKX07cmV0dXJuIG4uYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsciksbi5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIscyksbi5hZGRFdmVudExpc3RlbmVyKCJ0aW1lb3V0IixzKSxuLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzKSx0LnJlcG9ydFByb2dyZXNzJiYobi5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsYyksbnVsbCE9PW8mJm4udXBsb2FkJiZuLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZCkpLG4uc2VuZChvKSxlLm5leHQoe3R5cGU6X0QuU2VudH0pLCgpPT57bi5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIscyksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixyKSxuLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRpbWVvdXQiLHMpLHQucmVwb3J0UHJvZ3Jlc3MmJihuLnJlbW92ZUV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixjKSxudWxsIT09byYmbi51cGxvYWQmJm4udXBsb2FkLnJlbW92ZUV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixkKSksbi5yZWFkeVN0YXRlIT09bi5ET05FJiZuLmFib3J0KCl9fSkpfX1ORC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TkQpKHZyKFhNKSl9LE5ELsm1cHJvdj1Nbih7dG9rZW46TkQsZmFjdG9yeTpORC7JtWZhY30pLE5ELmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WE19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE5ELFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYTX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB6RD1uZXcgR2EoIlhTUkZfQ09PS0lFX05BTUUiKSxJRD1uZXcgR2EoIlhTUkZfSEVBREVSX05BTUUiKTtjbGFzcyBIRHt9Y2xhc3MgRkR7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuZG9jPXQsdGhpcy5wbGF0Zm9ybT1lLHRoaXMuY29va2llTmFtZT1uLHRoaXMubGFzdENvb2tpZVN0cmluZz0iIix0aGlzLmxhc3RUb2tlbj1udWxsLHRoaXMucGFyc2VDb3VudD0wfWdldFRva2VuKCl7aWYoInNlcnZlciI9PT10aGlzLnBsYXRmb3JtKXJldHVybiBudWxsO2NvbnN0IHQ9dGhpcy5kb2MuY29va2llfHwiIjtyZXR1cm4gdCE9PXRoaXMubGFzdENvb2tpZVN0cmluZyYmKHRoaXMucGFyc2VDb3VudCsrLHRoaXMubGFzdFRva2VuPWlNKHQsdGhpcy5jb29raWVOYW1lKSx0aGlzLmxhc3RDb29raWVTdHJpbmc9dCksdGhpcy5sYXN0VG9rZW59fUZELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGRCkodnIoWl8pLHZyKGp5KSx2cih6RCkpfSxGRC7JtXByb3Y9TW4oe3Rva2VuOkZELGZhY3Rvcnk6RkQuybVmYWN9KSxGRC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2p5XX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbekRdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEZELFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltqeV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3pEXX1dfV19KSxudWxsKTtjbGFzcyBMRHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMudG9rZW5TZXJ2aWNlPXQsdGhpcy5oZWFkZXJOYW1lPWV9aW50ZXJjZXB0KHQsZSl7Y29uc3Qgbj10LnVybC50b0xvd2VyQ2FzZSgpO2lmKCJHRVQiPT09dC5tZXRob2R8fCJIRUFEIj09PXQubWV0aG9kfHxuLnN0YXJ0c1dpdGgoImh0dHA6Ly8iKXx8bi5zdGFydHNXaXRoKCJodHRwczovLyIpKXJldHVybiBlLmhhbmRsZSh0KTtjb25zdCBvPXRoaXMudG9rZW5TZXJ2aWNlLmdldFRva2VuKCk7cmV0dXJuIG51bGw9PT1vfHx0LmhlYWRlcnMuaGFzKHRoaXMuaGVhZGVyTmFtZSl8fCh0PXQuY2xvbmUoe2hlYWRlcnM6dC5oZWFkZXJzLnNldCh0aGlzLmhlYWRlck5hbWUsbyl9KSksZS5oYW5kbGUodCl9fUxELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMRCkodnIoSEQpLHZyKElEKSl9LExELsm1cHJvdj1Nbih7dG9rZW46TEQsZmFjdG9yeTpMRC7JtWZhY30pLExELmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6SER9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltJRF19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTEQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkhEfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSURdfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgQkR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmJhY2tlbmQ9dCx0aGlzLmluamVjdG9yPWUsdGhpcy5jaGFpbj1udWxsfWhhbmRsZSh0KXtpZihudWxsPT09dGhpcy5jaGFpbil7Y29uc3QgdD10aGlzLmluamVjdG9yLmdldChrRCxbXSk7dGhpcy5jaGFpbj10LnJlZHVjZVJpZ2h0KCgodCxlKT0+bmV3IHdEKHQsZSkpLHRoaXMuYmFja2VuZCl9cmV0dXJuIHRoaXMuY2hhaW4uaGFuZGxlKHQpfX1mdW5jdGlvbiBWRCgpe3JldHVybiJvYmplY3QiPT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fX1CRC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QkQpKHZyKGxEKSx2cihycCkpfSxCRC7JtXByb3Y9TW4oe3Rva2VuOkJELGZhY3Rvcnk6QkQuybVmYWN9KSxCRC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmxEfSx7dHlwZTpycH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQkQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmxEfSx7dHlwZTpycH1dfSksbnVsbCk7Y2xhc3MgakR7c3RhdGljIGRpc2FibGUoKXtyZXR1cm57bmdNb2R1bGU6akQscHJvdmlkZXJzOlt7cHJvdmlkZTpMRCx1c2VDbGFzczpTRH1dfX1zdGF0aWMgd2l0aE9wdGlvbnModD17fSl7cmV0dXJue25nTW9kdWxlOmpELHByb3ZpZGVyczpbdC5jb29raWVOYW1lP3twcm92aWRlOnpELHVzZVZhbHVlOnQuY29va2llTmFtZX06W10sdC5oZWFkZXJOYW1lP3twcm92aWRlOklELHVzZVZhbHVlOnQuaGVhZGVyTmFtZX06W11dfX19akQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGpEKX0sakQuybVtb2Q9YW8oe3R5cGU6akR9KSxqRC7JtWluaj12bih7cHJvdmlkZXJzOltMRCx7cHJvdmlkZTprRCx1c2VFeGlzdGluZzpMRCxtdWx0aTohMH0se3Byb3ZpZGU6SEQsdXNlQ2xhc3M6RkR9LHtwcm92aWRlOnpELHVzZVZhbHVlOiJYU1JGLVRPS0VOIn0se3Byb3ZpZGU6SUQsdXNlVmFsdWU6IlgtWFNSRi1UT0tFTiJ9XX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoakQsW3t0eXBlOkF5LGFyZ3M6W3twcm92aWRlcnM6W0xELHtwcm92aWRlOmtELHVzZUV4aXN0aW5nOkxELG11bHRpOiEwfSx7cHJvdmlkZTpIRCx1c2VDbGFzczpGRH0se3Byb3ZpZGU6ekQsdXNlVmFsdWU6IlhTUkYtVE9LRU4ifSx7cHJvdmlkZTpJRCx1c2VWYWx1ZToiWC1YU1JGLVRPS0VOIn1dfV19XSxudWxsLG51bGwpO2NsYXNzIFVEe31VRC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VUQpfSxVRC7JtW1vZD1hbyh7dHlwZTpVRH0pLFVELsm1aW5qPXZuKHtwcm92aWRlcnM6W1BELHtwcm92aWRlOnNELHVzZUNsYXNzOkJEfSxORCx7cHJvdmlkZTpsRCx1c2VFeGlzdGluZzpORH1dLGltcG9ydHM6W1tqRC53aXRoT3B0aW9ucyh7Y29va2llTmFtZToiWFNSRi1UT0tFTiIsaGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIn0pXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFVELFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbakQud2l0aE9wdGlvbnMoe2Nvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLGhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiJ9KV0scHJvdmlkZXJzOltQRCx7cHJvdmlkZTpzRCx1c2VDbGFzczpCRH0sTkQse3Byb3ZpZGU6bEQsdXNlRXhpc3Rpbmc6TkR9XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFVELHtpbXBvcnRzOltqRF19KTtjbGFzcyBHRHt9R0QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEdEKX0sR0QuybVtb2Q9YW8oe3R5cGU6R0R9KSxHRC7JtWluaj12bih7cHJvdmlkZXJzOltSRCx7cHJvdmlkZTpFRCx1c2VGYWN0b3J5OlZEfSx7cHJvdmlkZTprRCx1c2VDbGFzczpBRCxtdWx0aTohMH1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChHRCxbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpbUkQse3Byb3ZpZGU6RUQsdXNlRmFjdG9yeTpWRH0se3Byb3ZpZGU6a0QsdXNlQ2xhc3M6QUQsbXVsdGk6ITB9XX1dfV0sbnVsbCxudWxsKTtjb25zdCBXRD0iZmVhdHVyZSIsWUQ9S3coV0QpLHFEPVp3KFlELCh0PT50LmlzRmVhdHVyZUZsYWdzTG9hZGVkKSksWkQ9WncoWUQsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmRlZmF1bHRGbGFncyksdC5mbGFnT3ZlcnJpZGVzKSkpLFhEPVp3KFlELCh0PT50LmZsYWdPdmVycmlkZXN8fHt9KSksS0Q9WncoWkQsKHQ9PnQuaXNBdXRvRGFya01vZGVBbGxvd2VkKSksSkQ9WncoWkQsKHQ9Pm51bGwhPT10LmVuYWJsZURhcmtNb2RlT3ZlcnJpZGU/dC5lbmFibGVEYXJrTW9kZU92ZXJyaWRlOnQuZGVmYXVsdEVuYWJsZURhcmtNb2RlKSksUUQ9WncoWkQsKHQ9PnQuZW5hYmxlRGFya01vZGVPdmVycmlkZSkpLCREPVp3KFpELCh0PT50LmVuYWJsZWRFeHBlcmltZW50YWxQbHVnaW5zKSksdEU9WncoWkQsKHQ9PnQuaW5Db2xhYikpLGVFPVp3KFpELCh0PT50LmVuYWJsZWRDb2xvckdyb3VwKSksbkU9WncoWkQsKHQ9PnQuZW5hYmxlZENvbG9yR3JvdXBCeVJlZ2V4KSksb0U9WncoWkQsKHQ9PnQubWV0cmljc0ltYWdlU3VwcG9ydEVuYWJsZWQpKSxpRT1adyhaRCwodD0+dC5lbmFibGVkTGlua2VkVGltZSkpLGFFPVp3KFpELCh0PT50LmVuYWJsZVRpbWVTZXJpZXNQcm9tb3Rpb24pKTtmdW5jdGlvbiByRSh0KXtjb25zdCBlPXt9O2Zvcihjb25zdFtuLG9db2YgdC5lbnRyaWVzKCkpZVtuXT1vO3JldHVybiBlfWZ1bmN0aW9uIHNFKHQpe2xldCBlPXQuaGVhZGVyc3x8bmV3IGNEO3JldHVybiBlPWUuYXBwZW5kKCJYLVhTUkYtUHJvdGVjdGVkIiwiMSIpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7aGVhZGVyczplfSl9Y2xhc3MgbEV7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYXBwUm9vdFByb3ZpZGVyPXQsdGhpcy5odHRwPWUsdGhpcy5zdG9yZT1ufXJlc29sdmVBcHBSb290KHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoIi8iKT90aGlzLmFwcFJvb3RQcm92aWRlci5nZXRBYnNQYXRobmFtZVdpdGhBcHBSb290KHQpOnR9Z2V0KHQsZT17fSl7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5yZXNvbHZlQXBwUm9vdCh0KSxlKX1wb3N0KHQsZSxuPXt9KXtyZXR1cm4gbj1zRShuKSx0aGlzLnN0b3JlLnNlbGVjdChxRCkucGlwZShjZSgodD0+Qm9vbGVhbih0KSkpLGJlKDEpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KHRFKSksWnQoKChbLG9dKT0+e2NvbnN0IGk9dGhpcy5yZXNvbHZlQXBwUm9vdCh0KTtyZXR1cm4gbz90aGlzLmh0dHAuZ2V0KGkse2hlYWRlcnM6bi5oZWFkZXJzLHBhcmFtczpyRShlKX0pOnRoaXMuaHR0cC5wb3N0KGksZSxuKX0pKSl9cHV0KHQsZSxuPXt9KXtyZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLnJlc29sdmVBcHBSb290KHQpLGUsc0UobikpfWRlbGV0ZSh0LGU9e30pe3JldHVybiB0aGlzLmh0dHAuZGVsZXRlKHRoaXMucmVzb2x2ZUFwcFJvb3QodCksc0UoZSkpfX1sRS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bEUpKHZyKGVTKSx2cihQRCksdnIoSXcpKX0sbEUuybVwcm92PU1uKHt0b2tlbjpsRSxmYWN0b3J5OmxFLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsRSxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZVN9LHt0eXBlOlBEfSx7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgY0V7fXZhciBkRSxwRSxtRTtjRS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Y0UpfSxjRS7JtW1vZD1hbyh7dHlwZTpjRX0pLGNFLsm1aW5qPXZuKHtwcm92aWRlcnM6W2xFXSxpbXBvcnRzOltbVUQsaVNdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoY0UsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltVRCxpU10scHJvdmlkZXJzOltsRV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhjRSx7aW1wb3J0czpbVUQsaVNdfSksKGZ1bmN0aW9uKHQpe3QuU1RFUD0ic3RlcCIsdC5XQUxMX1RJTUU9IndhbGxfdGltZSIsdC5SRUxBVElWRT0icmVsYXRpdmUifSkoZEV8fChkRT17fSkpLChmdW5jdGlvbih0KXt0Lk9GRlNFVD0ib2Zmc2V0Iix0Lk9WRVJMQVk9Im92ZXJsYXkifSkocEV8fChwRT17fSkpLChmdW5jdGlvbih0KXt0LlVOS05PV049IlVOS05PV04iLHQuTk9UX0ZPVU5EPSJOT1RfRk9VTkQifSkobUV8fChtRT17fSkpO2NvbnN0IHVFPW5ldyBHYSgiVGVuc29yQm9hcmQgYnJhbmQgbmFtZSIpO2Z1bmN0aW9uIGZFKHQpe2xldCBlPW1FLlVOS05PV047cmV0dXJuIHQgaW5zdGFuY2VvZiB4RCYmNDA0PT09dC5zdGF0dXMmJihlPW1FLk5PVF9GT1VORCksUnQobmV3IGdFKGUpKX1jbGFzcyBnRXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmZhaWx1cmVDb2RlPXR9fWNsYXNzIGhFe2NvbnN0cnVjdG9yKHQpe3RoaXMuaHR0cD10LHRoaXMudGZCYWNrZW5kPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRmLWJhY2tlbmQiKS50Zl9iYWNrZW5kfWZldGNoUGx1Z2luc0xpc3RpbmcodCl7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtpZighdC5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgZT1uZXcgVVJMU2VhcmNoUGFyYW1zO2Zvcihjb25zdCBuIG9mIHQpZS5hcHBlbmQoImV4cGVyaW1lbnRhbFBsdWdpbiIsbik7cmV0dXJuIGV9KSh0KSxvPWU/YGRhdGEvcGx1Z2luc19saXN0aW5nPyR7ZS50b1N0cmluZygpfWA6ImRhdGEvcGx1Z2luc19saXN0aW5nIjtyZXR1cm4gdGhpcy5odHRwLmdldChvKS5waXBlKHBlKGZFKSl9ZmV0Y2hFbnZpcm9ubWVudCgpe3JldHVybiAkdChbdGhpcy5odHRwLmdldCgiZGF0YS9lbnZpcm9ubWVudCIpLEN0KHRoaXMudGZCYWNrZW5kLmVudmlyb25tZW50U3RvcmUucmVmcmVzaCgpKV0pLnBpcGUoSXQoKChbdF0pPT50KSkscGUoZkUpKX19aEUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGhFKSh2cihsRSkpfSxoRS7JtXByb3Y9TW4oe3Rva2VuOmhFLGZhY3Rvcnk6aEUuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGhFLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpsRX1dfSksbnVsbCk7Y2xhc3MgYkV7fXZhciB5RTtiRS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YkUpfSxiRS7JtW1vZD1hbyh7dHlwZTpiRX0pLGJFLsm1aW5qPXZuKHtwcm92aWRlcnM6W2hFXSxpbXBvcnRzOltbY0VdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYkUsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltjRV0scHJvdmlkZXJzOltoRV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhiRSx7aW1wb3J0czpbY0VdfSksKGZ1bmN0aW9uKHQpe3RbdC5OT1RfTE9BREVEPTBdPSJOT1RfTE9BREVEIix0W3QuTE9BREVEPTFdPSJMT0FERUQiLHRbdC5MT0FESU5HPTJdPSJMT0FESU5HIix0W3QuRkFJTEVEPTNdPSJGQUlMRUQifSkoeUV8fCh5RT17fSkpO2NvbnN0IF9FPUpQKCJbQ29yZV0gUGx1Z2luIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxDRT1KUCgiW0NvcmVdIFBsdWdpbiBVcmwgSGFzaCBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksTUU9SlAoIltDb3JlXSBMb2FkZWQiKSx2RT1KUCgiW0NvcmVdIFVzZXIgVHJpZ2dlcmVkIFJlbG9hZCIpLHhFPUpQKCJbQ29yZV0gQXV0byBSZWxvYWQiKSxPRT1KUCgiW0NvcmVdIFBsdWdpbkxpc3RpbmcgRmV0Y2ggUmVxdWVzdGVkIiksUEU9SlAoIltDb3JlXSBQbHVnaW5MaXN0aW5nIEZldGNoIFN1Y2Nlc3NmdWwiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx3RT1KUCgiW0NvcmVdIFBsdWdpbkxpc3RpbmcgRmV0Y2ggRmFpbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksa0U9SlAoIltDb3JlXSBQb2x5bWVyIENvbXBvbmVudCBSdW5zIEZldGNoIFJlcXVlc3RlZCIpLFNFPUpQKCJbQ29yZV0gUG9seW1lciBDb21wb25lbnQgUnVucyBGZXRjaCBTdWNjZXNzZnVsIiksREU9SlAoIltDb3JlXSBQb2x5bWVyIENvbXBvbmVudCBSdW5zIEZldGNoIEZhaWxlZCIpLEVFPUpQKCJbQ29yZV0gRW52aXJvbm1lbnQgRmV0Y2ggU3VjY2Vzc2Z1bCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFJFPUpQKCJbQ29yZV0gUnVuIFNlbGVjdGlvbiBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksQUU9SlAoIltDb3JlXSBSdW4gRmV0Y2ggU3VjY2Vzc2Z1bCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFRFPUpQKCJbQ29yZV0gU2lkZSBCYXIgV2lkdGggQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE5FPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5ncyBQYW5lIENsb3NlZCIpLHpFPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5ncyBQYW5lIFRvZ2dsZWQiKSxJRT1KUCgiW01ldHJpY3NdIE1ldHJpY3MgVGFnIE1ldGFkYXRhIFJlcXVlc3RlZCIpLEhFPUpQKCJbTWV0cmljc10gTWV0cmljcyBUYWcgTWV0YWRhdGEgTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksRkU9SlAoIltNZXRyaWNzXSBNZXRyaWNzIFRhZyBNZXRhZGF0YSBGYWlsZWQiKSxMRT1KUCgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZ3MgQ2hhbmdlIFRvb2x0aXAiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KTtKUCgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZ3MgVG9nZ2xlIFNob3cgRGF0YSBEb3dubG9hZCIpO2NvbnN0IEJFPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIFRvZ2dsZSBJZ25vcmUgT3V0bGllciIpLFZFPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIENoYW5nZSBYIEF4aXMgVHlwZSIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGpFPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIENoYW5nZSBTY2FsYXIgU21vb3RoaW5nIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksVUU9SlAoIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmcgUGFydGl0aW9uIE5vbiBNb25vdG9uaWMgWCBUb2dnbGVkIiksR0U9SlAoIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmcgQ2hhbmdlIEltYWdlIEJyaWdodG5lc3MiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxXRT1KUCgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBDaGFuZ2UgSW1hZ2UgQ29udHJhc3QiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxZRT1KUCgiW01ldHJpY3NdIEltYWdlIEJyaWdodG5lc3MgU2V0dGluZyBSZXNldCIpLHFFPUpQKCJbTWV0cmljc10gSW1hZ2UgQ29udHJhc3QgU2V0dGluZyBSZXNldCIpLFpFPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIFRvZ2dsZSBJbWFnZSBTaG93IEFjdHVhbCBTaXplIiksWEU9SlAoIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmcgQ2hhbmdlIEhpc3RvZ3JhbSBNb2RlIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksS0U9SlAoIltNZXRyaWNzXSBNdWx0aXBsZSBUaW1lIFNlcmllcyBSZXF1ZXN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxKRT1KUCgiW01ldHJpY3NdIEZldGNoIFRpbWUgU2VyaWVzIFJlcXVlc3QgRmFpbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksUUU9SlAoIltNZXRyaWNzXSBGZXRjaCBUaW1lIFNlcmllcyBSZXNwb25zZSBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSwkRT1KUCgiW01ldHJpY3NdIENhcmQgVmlzaWJpbGl0eSBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksdFI9SlAoIltNZXRyaWNzXSBDYXJkIFN0ZXAgU2xpZGVyIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxlUj1KUCgiW01ldHJpY3NdIFRhZyBGaWx0ZXIgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLG5SPUpQKCJbTWV0cmljc10gTWV0cmljcyBUYWcgR3JvdXAgRXhwYW5zaW9uIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxvUj1KUCgiW01ldHJpY3NdIENhcmQgUGluIFN0YXRlIFRvZ2dsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxpUj1KUCgiW01ldHJpY3NdIFRvZ2dsZSBWaXNpYmxlIFBsdWdpbiIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGFSPUpQKCJbTWV0cmljc10gVG9nZ2xlIFNob3cgQWxsIFBsdWdpbnMiKSxyUj1KUCgiW01ldHJpY3NdIExpbmtlZCBUaW1lIFNlbGVjdGlvbiBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksc1I9SlAoIltNZXRyaWNzXSBMaW5rZWQgVGltZSBTZWxlY3Rpb24gQ2xlYXJlZCIpLGxSPUpQKCJbTWV0cmljc10gU2VsZWN0IFRpbWUgRW5hYmxlIFRvZ2dsZSIpLGNSPUpQKCJbTWV0cmljc10gVXNlIFJhbmdlIFNlbGVjdCBUaW1lIFRvZ2dsZSIpLGRSPUpQKCJbTWV0cmljc10gTWV0cmljcyBQcm9tbyBEaXNtaXNzZWQiKSxwUj1KUCgiW01ldHJpY3NdIE1ldHJpY3MgUHJvbW8gR28gVG8gU2NhbGFycyIpLG1SPSJjb3JlIix1Uj17YWN0aXZlUGx1Z2luOm51bGwscGx1Z2luczp7fSxjb3JlRGF0YUxvYWRTdGF0ZTp7c3RhdGU6eUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0scGx1Z2luc0xpc3RMb2FkZWQ6e3N0YXRlOnlFLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGwsZmFpbHVyZUNvZGU6bnVsbH0sZW52aXJvbm1lbnQ6e2RhdGFfbG9jYXRpb246IiIsd2luZG93X3RpdGxlOiIifSxwb2x5bWVyUnVuc0xvYWRTdGF0ZTp7c3RhdGU6eUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0scG9seW1lckludGVyb3BSdW5zOltdLHBvbHltZXJJbnRlcm9wUnVuU2VsZWN0aW9uOm5ldyBTZXQsc2lkZUJhcldpZHRoSW5QZXJjZW50OjIwfSxmUj15ayh1UixiayhfRSxDRSwoKHQse3BsdWdpbjplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7YWN0aXZlUGx1Z2luOmV9KSkpLGJrKE9FLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NvcmVEYXRhTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmNvcmVEYXRhTG9hZFN0YXRlKSx7c3RhdGU6eUUuTE9BRElOR30pLHBsdWdpbnNMaXN0TG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBsdWdpbnNMaXN0TG9hZGVkKSx7c3RhdGU6eUUuTE9BRElOR30pfSkpKSxiayh3RSwoKHQse2ZhaWx1cmVDb2RlOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjb3JlRGF0YUxvYWRTdGF0ZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5jb3JlRGF0YUxvYWRTdGF0ZSkse3N0YXRlOnlFLkZBSUxFRH0pLHBsdWdpbnNMaXN0TG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBsdWdpbnNMaXN0TG9hZGVkKSx7c3RhdGU6eUUuRkFJTEVELGZhaWx1cmVDb2RlOmV9KX0pKSksYmsoUEUsKCh0LHtwbHVnaW5zOmV9KT0+e2NvbnN0IG49T2JqZWN0LmtleXMoZSkuZmluZCgodD0+ZVt0XS5lbmFibGVkKSl8fG51bGwsbz10LmFjdGl2ZVBsdWdpbnx8bixpPURhdGUubm93KCk7bGV0IGE9dC5jb3JlRGF0YUxvYWRTdGF0ZTtyZXR1cm4gdC5wb2x5bWVyUnVuc0xvYWRTdGF0ZS5zdGF0ZT09PXlFLkxPQURFRCYmKGE9e3N0YXRlOnlFLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6aX0pLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7YWN0aXZlUGx1Z2luOm8sY29yZURhdGFMb2FkU3RhdGU6YSxwbHVnaW5zOmUscGx1Z2luc0xpc3RMb2FkZWQ6e3N0YXRlOnlFLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6aSxmYWlsdXJlQ29kZTpudWxsfX0pfSkpLGJrKGtFLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NvcmVEYXRhTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmNvcmVEYXRhTG9hZFN0YXRlKSx7c3RhdGU6eUUuTE9BRElOR30pLHBvbHltZXJSdW5zTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBvbHltZXJSdW5zTG9hZFN0YXRlKSx7c3RhdGU6eUUuTE9BRElOR30pfSkpKSxiayhTRSwodD0+e2NvbnN0IGU9RGF0ZS5ub3coKTtsZXQgbj10LmNvcmVEYXRhTG9hZFN0YXRlO3JldHVybiB0LnBsdWdpbnNMaXN0TG9hZGVkLnN0YXRlPT09eUUuTE9BREVEJiYobj17c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczplfSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjb3JlRGF0YUxvYWRTdGF0ZTpuLHBvbHltZXJSdW5zTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBvbHltZXJSdW5zTG9hZFN0YXRlKSx7c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczplfSl9KX0pKSxiayhERSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjb3JlRGF0YUxvYWRTdGF0ZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5jb3JlRGF0YUxvYWRTdGF0ZSkse3N0YXRlOnlFLkZBSUxFRH0pLHBvbHltZXJSdW5zTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBvbHltZXJSdW5zTG9hZFN0YXRlKSx7c3RhdGU6eUUuRkFJTEVEfSl9KSkpLGJrKEVFLCgodCx7ZW52aXJvbm1lbnQ6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2Vudmlyb25tZW50OmV9KSkpLGJrKEFFLCgodCx7cnVuczplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cG9seW1lckludGVyb3BSdW5zOmV9KSkpLGJrKFJFLCgodCx7bmV4dFNlbGVjdGlvbjplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cG9seW1lckludGVyb3BSdW5TZWxlY3Rpb246bmV3IFNldChlKX0pKSksYmsoVEUsKCh0LHt3aWR0aEluUGVyY2VudDplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2lkZUJhcldpZHRoSW5QZXJjZW50Ok1hdGgubWluKE1hdGgubWF4KDAsZSksMTAwKX0pKSksYmsoV1MsKCh0LHtwYXJ0aWFsU2V0dGluZ3M6ZX0pPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LHQpLG89ZS5zaWRlQmFyV2lkdGhJblBlcmNlbnQ7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBvJiZvPj0wJiZvPD0xMDAmJihuLnNpZGVCYXJXaWR0aEluUGVyY2VudD1vKSxufSkpLGJrKHBSLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2FjdGl2ZVBsdWdpbjoic2NhbGFycyJ9KSkpKTtmdW5jdGlvbiBnUih0LGUpe3JldHVybiBmUih0LGUpfWNvbnN0IGhSPUt3KG1SKSxiUj1adyhoUiwodD0+dC5wbHVnaW5zTGlzdExvYWRlZCkpLHlSPVp3KGhSLCh0PT50LnBvbHltZXJSdW5zTG9hZFN0YXRlKSksX1I9WncoaFIsKHQ9PnQuY29yZURhdGFMb2FkU3RhdGUuc3RhdGUpKSxDUj1adyhoUiwodD0+dC5jb3JlRGF0YUxvYWRTdGF0ZS5sYXN0TG9hZGVkVGltZUluTXMpKSxNUj1adyhoUiwodD0+dC5hY3RpdmVQbHVnaW4pKSx2Uj1adyhoUiwodD0+dC5wbHVnaW5zKSkseFI9WncoaFIsKHQ9PnQuZW52aXJvbm1lbnQpKSxPUj1adyhoUiwodD0+dC5zaWRlQmFyV2lkdGhJblBlcmNlbnQpKSxQUj1uZXcgU2V0KFtaay5DT01QQVJFX0VYUEVSSU1FTlQsWmsuRVhQRVJJTUVOVCxaay5OT1RfU0VUXSk7Y2xhc3Mgd1J7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy53ZWJhcHBEYXRhU291cmNlPW4sdGhpcy50ZkJhY2tlbmQ9e3JlZjpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Zi1iYWNrZW5kIikudGZfYmFja2VuZH0sdGhpcy5vbkRhc2hib2FyZExvYWQkPXJlKHRoaXMuYWN0aW9ucyQucGlwZShEayhNRSxkUyksVmUodGhpcy5zdG9yZS5zZWxlY3QoTlMpKSxNZSgoKFssdF0sWyxlXSk9PnQ9PT1lKSkpLHRoaXMuYWN0aW9ucyQucGlwZShEayh4RSx2RSkpKS5waXBlKFZlKHRoaXMuc3RvcmUuc2VsZWN0KFJTKSksY2UoKChbLHRdKT0+UFIuaGFzKHQpKSksQmUoMSx2b2lkIDAse2xlYWRpbmc6ITB9KSksdGhpcy5mZXRjaFdlYkFwcERhdGEkPU1rKCgoKT0+cmUodGhpcy5vbkRhc2hib2FyZExvYWQkLnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3QoYlIpLHRoaXMuc3RvcmUuc2VsZWN0KCREKSksY2UoKChbLHtzdGF0ZTp0fV0pPT50IT09eUUuTE9BRElORykpLEZlKCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChPRSgpKSkpLFp0KCgoWywsdF0pPT4oZnVuY3Rpb24gZSgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1rdCh0KSxvPWxlKHQpO3JldHVybiBvLmxlbmd0aD9uZXcgRCgoZnVuY3Rpb24odCl7dmFyIGU9by5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuW119KSkscj1vLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4hMX0pKTt0LmFkZCgoZnVuY3Rpb24oKXtlPXI9bnVsbH0pKTtmb3IodmFyIHM9ZnVuY3Rpb24ocyl7TXQob1tzXSkuc3Vic2NyaWJlKG5ldyBUKHQsKGZ1bmN0aW9uKG8pe2lmKGVbc10ucHVzaChvKSxlLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGh9KSkpe3ZhciBsPWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zaGlmdCgpfSkpO3QubmV4dChuP24uYXBwbHkodm9pZCAwLGEoW10saShsKSkpOmwpLGUuc29tZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4hdC5sZW5ndGgmJnJbZV19KSkmJnQuY29tcGxldGUoKX19KSwoZnVuY3Rpb24oKXtyW3NdPSEwLCFlW3NdLmxlbmd0aCYmdC5jb21wbGV0ZSgpfSkpKX0sbD0wOyF0LmNsb3NlZCYmbDxvLmxlbmd0aDtsKyspcyhsKTtyZXR1cm4gZnVuY3Rpb24oKXtlPXI9bnVsbH19KSk6cnR9KSh0aGlzLndlYmFwcERhdGFTb3VyY2UuZmV0Y2hQbHVnaW5zTGlzdGluZyh0KSx0aGlzLmZldGNoRW52aXJvbm1lbnQoKSkucGlwZShJdCgoKFt0XSk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKFBFKHtwbHVnaW5zOnR9KSl9KSkscGUoKHQ9Pih0aGlzLnN0b3JlLmRpc3BhdGNoKHdFKHQgaW5zdGFuY2VvZiBnRT97ZmFpbHVyZUNvZGU6dC5mYWlsdXJlQ29kZX06e2ZhaWx1cmVDb2RlOm1FLlVOS05PV059KSkscnQpKSkpKSkpLHRoaXMub25EYXNoYm9hcmRMb2FkJC5waXBlKEl0KCgoWyx0XSk9PnQpKSx6ZSgodD0+dCE9PVprLkNPTVBBUkVfRVhQRVJJTUVOVD9FdChbXSk6dGhpcy5zdG9yZS5zZWxlY3QoelMpLnBpcGUoTWUoKCh0LGUpPT57Y29uc3Qgbj1PYmplY3QuZW50cmllcyh0KSxvPW5ldyBNYXAoT2JqZWN0LmVudHJpZXMoZSkpO2lmKG4ubGVuZ3RoIT09by5zaXplKXJldHVybiExO2Zvcihjb25zdFt0LGVdb2YgbilpZihvLmdldCh0KSE9PWUpcmV0dXJuITE7cmV0dXJuITB9KSksQ2UoMCksQmUoNTAwLHZvaWQgMCx7bGVhZGluZzohMCx0cmFpbGluZzohMH0pKSkpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KFJTKSx0aGlzLnN0b3JlLnNlbGVjdCh5UikpLGNlKCgoWyx0LGVdKT0+UFIuaGFzKHQpJiZlLnN0YXRlIT09eUUuTE9BRElORykpLEZlKCgoKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goa0UoKSl9KSksemUoKCgpPT50aGlzLnJlZnJlc2hQb2x5bWVyUnVucygpKSksRmUoKCgpPT57dGhpcy5zdG9yZS5kaXNwYXRjaChTRSgpKX0pKSxwZSgoKCk9Pih0aGlzLnN0b3JlLmRpc3BhdGNoKERFKCkpLHJ0KSkpKSkpLHtkaXNwYXRjaDohMX0pLHRoaXMuZGlzcGF0Y2hDaGFuZ2VQbHVnaW4kPU1rKCgoKT0+cmUodGhpcy5vbkRhc2hib2FyZExvYWQkLHRoaXMuYWN0aW9ucyQucGlwZShEayhQRSkpKS5waXBlKFZlKHRoaXMuc3RvcmUuc2VsZWN0KE1SKSksSXQoKChbLHRdKT0+dCkpLE1lKCksY2UoKHQ9Pm51bGwhPT10KSksYmUoMSksRmUoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKF9FKHtwbHVnaW46dH0pKX0pKSkpLHtkaXNwYXRjaDohMX0pfXJlZnJlc2hQb2x5bWVyUnVucygpe3JldHVybiBDdCh0aGlzLnRmQmFja2VuZC5yZWYucnVuc1N0b3JlLnJlZnJlc2goKSl9ZmV0Y2hFbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLndlYmFwcERhdGFTb3VyY2UuZmV0Y2hFbnZpcm9ubWVudCgpLnBpcGUoRmUoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKEVFKHtlbnZpcm9ubWVudDp0fSkpfSkpKX19d1IuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHdSKSh2cihTayksdnIoSXcpLHZyKGhFKSl9LHdSLsm1cHJvdj1Nbih7dG9rZW46d1IsZmFjdG9yeTp3Ui7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgod1IsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlNrfSx7dHlwZTpJd30se3R5cGU6aEV9XX0pLG51bGwpO2NvbnN0IGtSPW5ldyBHYSgiQ29yZSBGZWF0dXJlIENvbmZpZyIpO2Z1bmN0aW9uIFNSKHQpe3JldHVybntpbml0aWFsU3RhdGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHVSKSx7YWN0aXZlUGx1Z2luOnQuZ2V0UGx1Z2luSWQoKXx8bnVsbH0pfX1mdW5jdGlvbiBEUigpe3JldHVybiBadyhPUiwodD0+KHtzaWRlQmFyV2lkdGhJblBlcmNlbnQ6dH0pKSl9Y2xhc3MgRVJ7fUVSLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxFUil9LEVSLsm1bW9kPWFvKHt0eXBlOkVSfSksRVIuybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6a1IsZGVwczpbVlNdLHVzZUZhY3Rvcnk6U1J9XSxpbXBvcnRzOltbV2suZm9yRmVhdHVyZShbd1JdKSxkay5mb3JGZWF0dXJlKG1SLGdSLGtSKSxiRSxxUy5kZWZpbmVHbG9iYWxTZXR0aW5nKERSKV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChFUixbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1drLmZvckZlYXR1cmUoW3dSXSksZGsuZm9yRmVhdHVyZShtUixnUixrUiksYkUscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhEUildLHByb3ZpZGVyczpbe3Byb3ZpZGU6a1IsZGVwczpbVlNdLHVzZUZhY3Rvcnk6U1J9XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEVSLHtpbXBvcnRzOltHayxjayxiRSxxU119KTtjb25zdCBSUj1uZXcgR2EoIltBbGVydF0gQWN0aW9uLVRvLUFsZXJ0IFByb3ZpZGVyIik7Y2xhc3MgQVJ7Y29uc3RydWN0b3IodCl7dGhpcy5wcm92aWRlcnM9bmV3IE1hcDtmb3IoY29uc3QgZSBvZiB0fHxbXSlmb3IoY29uc3QgdCBvZiBlKXtpZih0aGlzLnByb3ZpZGVycy5oYXModC5hY3Rpb25DcmVhdG9yLnR5cGUpKXRocm93IG5ldyBSYW5nZUVycm9yKGAiJHt0LmFjdGlvbkNyZWF0b3IudHlwZX0iIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBmb3IgYWxlcnRzLiBNdWx0aXBsZSBhbGVydHMgZm9yIHRoZSBzYW1lIGFjdGlvbiBpcyBub3QgYWxsb3dlZC5gKTt0aGlzLnByb3ZpZGVycy5zZXQodC5hY3Rpb25DcmVhdG9yLnR5cGUsdC5hbGVydEZyb21BY3Rpb24pfX1nZXRBbGVydEZyb21BY3Rpb24odCl7Y29uc3QgZT10aGlzLnByb3ZpZGVycy5nZXQodC50eXBlKTtyZXR1cm4gZT9lKHQpOm51bGx9c3RhdGljIHJlZ2lzdGVyQWxlcnRBY3Rpb25zKHQpe3JldHVybntuZ01vZHVsZTpBUixwcm92aWRlcnM6W3twcm92aWRlOlJSLG11bHRpOiEwLHVzZUZhY3Rvcnk6dH1dfX19QVIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEFSKSh2cihSUiw4KSl9LEFSLsm1bW9kPWFvKHt0eXBlOkFSfSksQVIuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQVIsW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1JSXX1dfV19KSxudWxsKTtjb25zdCBUUj0iaHBhcmFtcyIsTlI9SlAoIltSdW5zXSBGZXRjaCBSdW5zIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHpSPUpQKCJbUnVuc10gRmV0Y2ggUnVucyBTdWNjZWVkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxJUj1KUCgiW1J1bnNdIEZldGNoIFJ1bnMgRmFpbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksSFI9SlAoIltSdW5zXSBSdW4gU2VsZWN0aW9uIFRvZ2dsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxGUj1KUCgiW1J1bnNdIFJ1biBQYWdlIFNlbGVjdGlvbiBUb2dnbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksTFI9SlAoIltSdW5zXSBSdW4gU2VsZWN0b3IgUGFnaW5hdGlvbiBPcHRpb24gQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEJSPUpQKCJbUnVuc10gUnVuIFNlbGVjdG9yIFNvcnQgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFZSPUpQKCJbUnVuc10gUnVuIFNlbGVjdG9yIFJlZ2V4IEZpbHRlciBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksalI9SlAoIltSdW5zXSBSdW4gQ29sb3IgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFVSPUpQKCJbUnVuc10gUnVuIFRhYmxlIFNob3duIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksR1I9SlAoIltSdW5zXSBSdW4gR3JvdXAgQnkgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pO3ZhciBXUixZUixxUixaUjshKGZ1bmN0aW9uKHQpe3QuREFUQVNFVF9VTktOT1dOPSJEQVRBU0VUX1VOS05PV04iLHQuREFUQVNFVF9UUkFJTklORz0iREFUQVNFVF9UUkFJTklORyIsdC5EQVRBU0VUX1ZBTElEQVRJT049IkRBVEFTRVRfVkFMSURBVElPTiJ9KShXUnx8KFdSPXt9KSksKGZ1bmN0aW9uKHQpe3QuU1RBVFVTX1VOS05PV049IlNUQVRVU19VTktOT1dOIix0LlNUQVRVU19TVUNDRVNTPSJTVEFUVVNfU1VDQ0VTUyIsdC5TVEFUVVNfRkFJTFVSRT0iU1RBVFVTX0ZBSUxVUkUiLHQuU1RBVFVTX1JVTk5JTkc9IlNUQVRVU19SVU5OSU5HIn0pKFlSfHwoWVI9e30pKSwoZnVuY3Rpb24odCl7dC5EQVRBX1RZUEVfVU5TRVQ9IkRBVEFfVFlQRV9VTlNFVCIsdC5EQVRBX1RZUEVfU1RSSU5HPSJEQVRBX1RZUEVfU1RSSU5HIix0LkRBVEFfVFlQRV9CT09MPSJEQVRBX1RZUEVfQk9PTCIsdC5EQVRBX1RZUEVfRkxPQVQ2ND0iREFUQV9UWVBFX0ZMT0FUNjQifSkocVJ8fChxUj17fSkpLChmdW5jdGlvbih0KXt0W3QuRElTQ1JFVEU9MF09IkRJU0NSRVRFIix0W3QuSU5URVJWQUw9MV09IklOVEVSVkFMIn0pKFpSfHwoWlI9e30pKTtjbGFzcyBYUnt9WFIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhSKX0sWFIuybVwcm92PU1uKHt0b2tlbjpYUixmYWN0b3J5OlhSLsm1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYUixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSxudWxsLG51bGwpO2NvbnN0IEtSPUpQKCJbSHBhcmFtc10gSHBhcmFtcyBEaXNjcmV0ZSBIcGFyYW0gRmlsdGVyIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxKUj1KUCgiW0hwYXJhbXNdIEhwYXJhbXMgSW50ZXJ2YWwgSHBhcmFtIEZpbHRlciBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksUVI9SlAoIltIcGFyYW1zXSBIcGFyYW1zIE1ldHJpYyBGaWx0ZXIgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pO2Z1bmN0aW9uICRSKHQpe3JldHVybiBKU09OLnN0cmluZ2lmeShbLi4udF0uc29ydCgpKX1mdW5jdGlvbiB0QSh0KXt2YXIgZSxuLG8saTtjb25zdCBhPW5ldyBNYXAscj1uZXcgTWFwLHM9bmV3IE1hcDtmb3IoY29uc3QgYSBvZiB0KWZvcihjb25zdFt0LGxdb2YgYSlpZihsLnR5cGU9PT1aUi5ESVNDUkVURSl7Y29uc3R7cG9zc2libGVWYWx1ZXM6ZSx2YWx1ZXM6bn09ci5nZXQodCl8fHtwb3NzaWJsZVZhbHVlczpuZXcgU2V0LHZhbHVlczpuZXcgU2V0fTtmb3IoY29uc3QgdCBvZiBsLmZpbHRlclZhbHVlcyluLmFkZCh0KTtmb3IoY29uc3QgdCBvZiBsLnBvc3NpYmxlVmFsdWVzKWUuYWRkKHQpO3Iuc2V0KHQse3Bvc3NpYmxlVmFsdWVzOmUsdmFsdWVzOm59KX1lbHNle2NvbnN0IGE9cy5nZXQodCk7cy5zZXQodCx7ZmlsdGVyTG93ZXJWYWx1ZTpNYXRoLm1pbihsLmZpbHRlckxvd2VyVmFsdWUsbnVsbCE9PShlPW51bGw9PWE/dm9pZCAwOmEuZmlsdGVyTG93ZXJWYWx1ZSkmJnZvaWQgMCE9PWU/ZToxLzApLGZpbHRlclVwcGVyVmFsdWU6TWF0aC5tYXgobC5maWx0ZXJVcHBlclZhbHVlLG51bGwhPT0obj1udWxsPT1hP3ZvaWQgMDphLmZpbHRlclVwcGVyVmFsdWUpJiZ2b2lkIDAhPT1uP246LTEvMCksbWluVmFsdWU6TWF0aC5taW4obC5taW5WYWx1ZSxudWxsIT09KG89bnVsbD09YT92b2lkIDA6YS5taW5WYWx1ZSkmJnZvaWQgMCE9PW8/bzoxLzApLG1heFZhbHVlOk1hdGgubWF4KGwubWF4VmFsdWUsbnVsbCE9PShpPW51bGw9PWE/dm9pZCAwOmEubWF4VmFsdWUpJiZ2b2lkIDAhPT1pP2k6LTEvMCl9KX1mb3IoY29uc3RbdCx7dmFsdWVzOmUscG9zc2libGVWYWx1ZXM6bn1db2YgcilhLnNldCh0LHt0eXBlOlpSLkRJU0NSRVRFLGluY2x1ZGVVbmRlZmluZWQ6ITAscG9zc2libGVWYWx1ZXM6Wy4uLm5dLGZpbHRlclZhbHVlczpbLi4uZV19KTtmb3IoY29uc3RbdCx7bWluVmFsdWU6ZSxtYXhWYWx1ZTpuLGZpbHRlckxvd2VyVmFsdWU6byxmaWx0ZXJVcHBlclZhbHVlOml9XW9mIHMpe2lmKGEuaGFzKHQpKXtjb25zdCBlPWEuZ2V0KHQpO2lmKGUudHlwZT09PVpSLkRJU0NSRVRFJiZlLnBvc3NpYmxlVmFsdWVzLnNvbWUoKHQ9PnQpKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgQ2Fubm90IGNvbWJpbmUgaHBhcmFtLCAke3R9LCBhcyBpdCBpcyBvZiBtaXhlZCB0eXBlcy5gKX1hLnNldCh0LHt0eXBlOlpSLklOVEVSVkFMLGluY2x1ZGVVbmRlZmluZWQ6ITAsbWluVmFsdWU6ZSxtYXhWYWx1ZTpuLGZpbHRlckxvd2VyVmFsdWU6byxmaWx0ZXJVcHBlclZhbHVlOml9KX1yZXR1cm4gYX1mdW5jdGlvbiBlQSh0KXt2YXIgZSxuLG8saTtjb25zdCBhPW5ldyBNYXA7Zm9yKGNvbnN0IHIgb2YgdClmb3IoY29uc3RbdCxzXW9mIHIpe2NvbnN0IHI9YS5nZXQodCk7YS5zZXQodCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3R5cGU6WlIuSU5URVJWQUwsaW5jbHVkZVVuZGVmaW5lZDohMH0scikse21pblZhbHVlOk1hdGgubWluKHMubWluVmFsdWUsbnVsbCE9PShlPW51bGw9PXI/dm9pZCAwOnIubWluVmFsdWUpJiZ2b2lkIDAhPT1lP2U6MS8wKSxtYXhWYWx1ZTpNYXRoLm1heChzLm1heFZhbHVlLG51bGwhPT0obj1udWxsPT1yP3ZvaWQgMDpyLm1heFZhbHVlKSYmdm9pZCAwIT09bj9uOi0xLzApLGZpbHRlckxvd2VyVmFsdWU6TWF0aC5taW4ocy5maWx0ZXJMb3dlclZhbHVlLG51bGwhPT0obz1udWxsPT1yP3ZvaWQgMDpyLmZpbHRlckxvd2VyVmFsdWUpJiZ2b2lkIDAhPT1vP286MS8wKSxmaWx0ZXJVcHBlclZhbHVlOk1hdGgubWF4KHMuZmlsdGVyVXBwZXJWYWx1ZSxudWxsIT09KGk9bnVsbD09cj92b2lkIDA6ci5maWx0ZXJVcHBlclZhbHVlKSYmdm9pZCAwIT09aT9pOi0xLzApfSkpfXJldHVybiBhfWNvbnN0IG5BPXlrKHtzcGVjczp7fSxmaWx0ZXJzOnt9fSxiayhLUiwoKHQsZSk9Pnt2YXIgbjtjb25zdHtleHBlcmltZW50SWRzOm8saHBhcmFtTmFtZTppLGZpbHRlclZhbHVlczphLGluY2x1ZGVVbmRlZmluZWQ6cn09ZSxzPSRSKG8pLGw9bnVsbCE9PShuPXQuZmlsdGVyc1tzXSkmJnZvaWQgMCE9PW4/bjp7aHBhcmFtczpuZXcgTWFwfSxjPWwuaHBhcmFtcy5nZXQoaSk7aWYoYyYmYy50eXBlIT09WlIuRElTQ1JFVEUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYE5ldyBkaXNjcmV0ZSBmaWx0ZXIgb2YgJHtpfSBjb25mbGljdHMgZXhpc3RpbmcgZmlsdGVyIG9mIGArWlJbYy50eXBlXSk7Y29uc3QgZD10QShvLmZpbHRlcigoZT0+Qm9vbGVhbih0LnNwZWNzW2VdKSkpLm1hcCgoZT0+dC5zcGVjc1tlXS5ocGFyYW0uZGVmYXVsdEZpbHRlcnMpKSkuZ2V0KGkpO2lmKCFkKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IHNldCBocGFyYW0sICR7aX0sIHdoZW4gaXQgaXMgbm90IGtub3duIGZvciBleHBlcmltZW50SWRzOiAke28uam9pbigiLCAiKX1gKTtpZihkLnR5cGUhPT1aUi5ESVNDUkVURSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZXQgJHtpfSB3aGVuIGRlZmF1bHQgZmlsdGVyIGlzIG5vdCBvZiBkaXNjcmV0ZSB0eXBlLmApO2NvbnN0IHA9bmV3IFNldChkLnBvc3NpYmxlVmFsdWVzKSxtPVsuLi5hXS5maWx0ZXIoKHQ9PiFwLmhhcyh0KSkpO2lmKG0ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgTmV3IGZpbHRlciBmb3IgJHtpfSBoYXMgbW9yZSB0aGFuIG9uZSB2YWx1ZSB0aGF0IGlzIG5vdCBwcmVzZW50IGluIHRoZSBzcGVjLiBCYWQgdmFsdWVzOiAke20uam9pbigiLCAiKX1gKTtjb25zdCB1PW5ldyBNYXAobC5ocGFyYW1zKTtyZXR1cm4gdS5zZXQoaSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYykse3R5cGU6WlIuRElTQ1JFVEUsaW5jbHVkZVVuZGVmaW5lZDpyLHBvc3NpYmxlVmFsdWVzOlsuLi5wXSxmaWx0ZXJWYWx1ZXM6YX0pKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2ZpbHRlcnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZmlsdGVycykse1tzXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbCkse2hwYXJhbXM6dX0pfSl9KX0pKSxiayhKUiwoKHQsZSk9Pnt2YXIgbjtjb25zdHtleHBlcmltZW50SWRzOm8saHBhcmFtTmFtZTppLGZpbHRlckxvd2VyVmFsdWU6YSxmaWx0ZXJVcHBlclZhbHVlOnIsaW5jbHVkZVVuZGVmaW5lZDpzfT1lLGw9JFIobyksYz1udWxsIT09KG49dC5maWx0ZXJzW2xdKSYmdm9pZCAwIT09bj9uOnttZXRyaWNzOm5ldyBNYXAsaHBhcmFtczpuZXcgTWFwfSxkPWMuaHBhcmFtcy5nZXQoaSk7aWYoZCYmZC50eXBlIT09WlIuSU5URVJWQUwpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYE5ldyBpbnRlcnZhbCBmaWx0ZXIgb2YgJHtpfSBjb25mbGljdHMgZXhpc3RpbmcgZmlsdGVyIG9mIGArWlJbZC50eXBlXSk7Y29uc3QgcD10QShvLmZpbHRlcigoZT0+Qm9vbGVhbih0LnNwZWNzW2VdKSkpLm1hcCgoZT0+dC5zcGVjc1tlXS5ocGFyYW0uZGVmYXVsdEZpbHRlcnMpKSkuZ2V0KGkpO2lmKCFwKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IHNldCBocGFyYSwgJHtpfSwgd2hlbiBpdCBpcyBub3Qga25vd24gZm9yIGV4cGVyaW1lbnRJZHM6ICR7by5qb2luKCIsICIpfWApO2lmKHAudHlwZSE9PVpSLklOVEVSVkFMKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IHNldCAke2l9IHdoZW4gZGVmYXVsdCBmaWx0ZXIgaXMgbm90IG9mIGludGVydmFsIHR5cGUuYCk7Y29uc3QgbT1uZXcgTWFwKGMuaHBhcmFtcyk7cmV0dXJuIG0uc2V0KGksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLHt0eXBlOlpSLklOVEVSVkFMLGluY2x1ZGVVbmRlZmluZWQ6cyxtaW5WYWx1ZTpwLm1pblZhbHVlLG1heFZhbHVlOnAubWF4VmFsdWUsZmlsdGVyTG93ZXJWYWx1ZTphLGZpbHRlclVwcGVyVmFsdWU6cn0pKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2ZpbHRlcnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZmlsdGVycykse1tsXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYykse2hwYXJhbXM6bX0pfSl9KX0pKSxiayhRUiwoKHQsZSk9Pnt2YXIgbjtjb25zdHtleHBlcmltZW50SWRzOm8sbWV0cmljVGFnOmksZmlsdGVyTG93ZXJWYWx1ZTphLGZpbHRlclVwcGVyVmFsdWU6cixpbmNsdWRlVW5kZWZpbmVkOnN9PWUsbD0kUihvKSxjPW51bGwhPT0obj10LmZpbHRlcnNbbF0pJiZ2b2lkIDAhPT1uP246e21ldHJpY3M6bmV3IE1hcCxocGFyYW1zOm5ldyBNYXB9LGQ9ZUEoby5maWx0ZXIoKGU9PkJvb2xlYW4odC5zcGVjc1tlXSkpKS5tYXAoKGU9PnQuc3BlY3NbZV0ubWV0cmljLmRlZmF1bHRGaWx0ZXJzKSkpLmdldChpKTtpZighZCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZXQgbWV0cmljLCAke2l9LCB3aGVuIGl0IGlzIG5vdCBrbm93biBmb3IgZXhwZXJpbWVudElkczogJHtvLmpvaW4oIiwgIil9YCk7Y29uc3QgcD1jLm1ldHJpY3MuZ2V0KGkpLG09bmV3IE1hcChjLm1ldHJpY3MpO3JldHVybiBtLnNldChpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxwKSx7dHlwZTpaUi5JTlRFUlZBTCxpbmNsdWRlVW5kZWZpbmVkOnMsbWluVmFsdWU6ZC5taW5WYWx1ZSxtYXhWYWx1ZTpkLm1heFZhbHVlLGZpbHRlckxvd2VyVmFsdWU6YSxmaWx0ZXJVcHBlclZhbHVlOnJ9KSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtmaWx0ZXJzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmZpbHRlcnMpLHtbbF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGMpLHttZXRyaWNzOm19KX0pfSl9KSksYmsoelIsKCh0LGUpPT57dmFyIG4sbyxpLGE7aWYoMD09PU9iamVjdC5rZXlzKGUubmV3UnVuc0FuZE1ldGFkYXRhKS5sZW5ndGgpcmV0dXJuIHQ7Y29uc3Qgcj1PYmplY3QuYXNzaWduKHt9LHQuc3BlY3MpLHM9bmV3IE1hcCxsPW5ldyBTZXQ7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmtleXMoZS5uZXdSdW5zQW5kTWV0YWRhdGEpKXtjb25zdCBjPW5ldyBNYXAsZD1uZXcgTWFwLHA9bmV3IE1hcCxtPW5ldyBNYXAse3J1bnM6dSxtZXRhZGF0YTpmfT1lLm5ld1J1bnNBbmRNZXRhZGF0YVt0XTtmb3IoY29uc3QgdCBvZiB1KXtjb25zdCBlPWYucnVuVG9IcGFyYW1zQW5kTWV0cmljc1t0LmlkXTtpZihlKWZvcihjb25zdCB0IG9mIGUubWV0cmljcyl7Y29uc3QgZT1zLmdldCh0LnRhZyk7cy5zZXQodC50YWcse21pbjplP01hdGgubWluKGUubWluLHQudmFsdWUpOnQudmFsdWUsbWF4OmU/TWF0aC5tYXgoZS5tYXgsdC52YWx1ZSk6dC52YWx1ZX0pfX1mb3IoY29uc3R7bmFtZTp0LGRvbWFpbjplfW9mIGYuaHBhcmFtU3BlY3MpaWYoZS50eXBlPT09WlIuRElTQ1JFVEUpe2NvbnN0IG49cC5nZXQodCl8fG5ldyBTZXQ7Zm9yKGNvbnN0IHQgb2YgZS52YWx1ZXMpbi5hZGQodCk7cC5zZXQodCxuKX1lbHNle2NvbnN0IG49bS5nZXQodCk7bS5zZXQodCx7bWluVmFsdWU6bj9NYXRoLm1pbihlLm1pblZhbHVlLG4ubWluVmFsdWUpOmUubWluVmFsdWUsbWF4VmFsdWU6bj9NYXRoLm1heChlLm1heFZhbHVlLG4ubWF4VmFsdWUpOmUubWF4VmFsdWV9KX1mb3IoY29uc3QgdCBvZiBmLm1ldHJpY1NwZWNzKWwuYWRkKHQudGFnKTtmb3IoY29uc3RbdCxlXW9mIHApYy5zZXQodCx7dHlwZTpaUi5ESVNDUkVURSxpbmNsdWRlVW5kZWZpbmVkOiEwLHBvc3NpYmxlVmFsdWVzOlsuLi5lXSxmaWx0ZXJWYWx1ZXM6Wy4uLmVdfSk7Zm9yKGNvbnN0W3Qse21pblZhbHVlOmUsbWF4VmFsdWU6bn1db2YgbSljLnNldCh0LHt0eXBlOlpSLklOVEVSVkFMLGluY2x1ZGVVbmRlZmluZWQ6ITAsbWluVmFsdWU6ZSxtYXhWYWx1ZTpuLGZpbHRlckxvd2VyVmFsdWU6ZSxmaWx0ZXJVcHBlclZhbHVlOm59KTtmb3IoY29uc3QgdCBvZiBsKXtjb25zdCBlPXMuZ2V0KHQpLGk9bnVsbCE9PShuPW51bGw9PWU/dm9pZCAwOmUubWluKSYmdm9pZCAwIT09bj9uOjAsYT1udWxsIT09KG89bnVsbD09ZT92b2lkIDA6ZS5tYXgpJiZ2b2lkIDAhPT1vP286MDtkLnNldCh0LHt0eXBlOlpSLklOVEVSVkFMLGluY2x1ZGVVbmRlZmluZWQ6ITAsbWluVmFsdWU6aSxtYXhWYWx1ZTphLGZpbHRlckxvd2VyVmFsdWU6aSxmaWx0ZXJVcHBlclZhbHVlOmF9KX1yW3RdPXtocGFyYW06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG51bGw9PT0oaT1yW3RdKXx8dm9pZCAwPT09aT92b2lkIDA6aS5ocGFyYW0pLHtzcGVjczpmLmhwYXJhbVNwZWNzLGRlZmF1bHRGaWx0ZXJzOmN9KSxtZXRyaWM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG51bGw9PT0oYT1yW3RdKXx8dm9pZCAwPT09YT92b2lkIDA6YS5tZXRyaWMpLHtzcGVjczpmLm1ldHJpY1NwZWNzLGRlZmF1bHRGaWx0ZXJzOmR9KX19cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c3BlY3M6cn0pfSkpKTtmdW5jdGlvbiBvQSh0LGUpe3JldHVybiBuQSh0LGUpfWNsYXNzIGlBe31pQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aUEpfSxpQS7JtW1vZD1hbyh7dHlwZTppQX0pLGlBLsm1aW5qPXZuKHtpbXBvcnRzOltbZGsuZm9yRmVhdHVyZShUUixvQSldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoaUEsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltkay5mb3JGZWF0dXJlKFRSLG9BKV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhpQSx7aW1wb3J0czpbY2tdfSk7Y2xhc3MgYUF7fWZ1bmN0aW9uIHJBKHQsZSl7cmV0dXJuYCR7ZX0vJHt0fWB9YUEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGFBKX0sYUEuybVtb2Q9YW8oe3R5cGU6YUF9KSxhQS7JtWluaj12bih7aW1wb3J0czpbW2lBXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGFBLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbaUFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oYUEse2ltcG9ydHM6W2lBXX0pO2NsYXNzIHNBe2NvbnN0cnVjdG9yKHQpe3RoaXMuaHR0cD10fWZldGNoUnVucyh0KXtyZXR1cm4gdGhpcy5odHRwLmdldCgiZGF0YS9ydW5zIikucGlwZShJdCgoZT0+ZS5tYXAoKGU9Pih7aWQ6ckEoZSx0KSxuYW1lOmUsc3RhcnRUaW1lOjB9KSkpKSkpfWZldGNoSHBhcmFtc01ldGFkYXRhKHQpe3JldHVybiBFdCh7aHBhcmFtU3BlY3M6W10sbWV0cmljU3BlY3M6W10scnVuVG9IcGFyYW1zQW5kTWV0cmljczp7fX0pfX1zQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8c0EpKHZyKGxFKSl9LHNBLsm1cHJvdj1Nbih7dG9rZW46c0EsZmFjdG9yeTpzQS7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoc0EsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmxFfV19KSxudWxsKTtjbGFzcyBsQXt9bEEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxBKX0sbEEuybVtb2Q9YW8oe3R5cGU6bEF9KSxsQS7JtWluaj12bih7cHJvdmlkZXJzOlt7cHJvdmlkZTpYUix1c2VDbGFzczpzQX1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsQSxbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpbe3Byb3ZpZGU6WFIsdXNlQ2xhc3M6c0F9XX1dfV0sbnVsbCxudWxsKTtjb25zdCBjQT0iYWxlcnRzIixkQT1adyhLdyhjQSksKHQ9PnQubGF0ZXN0QWxlcnQpKSxwQT0iZXhwZXJpbWVudHMiLG1BPVp3KEt3KHBBKSwodD0+dC5kYXRhKSksdUE9WncobUEsKCh0LGUpPT57Y29uc3R7ZXhwZXJpbWVudElkOm59PWU7cmV0dXJuIHQuZXhwZXJpbWVudE1hcFtuXXx8bnVsbH0pKTsKLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4KCiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC4KCiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSAogICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZCiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsCiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00KICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SCiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SCiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KZnVuY3Rpb24gZkEodCxlKXt2YXIgbj17fTtmb3IodmFyIG8gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKSYmZS5pbmRleE9mKG8pPDAmJihuW29dPXRbb10pO2lmKG51bGwhPXQmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT0wO2ZvcihvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxvLmxlbmd0aDtpKyspZS5pbmRleE9mKG9baV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LG9baV0pJiYobltvW2ldXT10W29baV1dKX1yZXR1cm4gbn1mdW5jdGlvbiBnQSh0LGUsbixvKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24oaSxhKXtmdW5jdGlvbiByKHQpe3RyeXtsKG8ubmV4dCh0KSl9Y2F0Y2godCl7YSh0KX19ZnVuY3Rpb24gcyh0KXt0cnl7bChvLnRocm93KHQpKX1jYXRjaCh0KXthKHQpfX1mdW5jdGlvbiBsKHQpe3QuZG9uZT9pKHQudmFsdWUpOihmdW5jdGlvbiBlKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpfSkodC52YWx1ZSkudGhlbihyLHMpfWwoKG89by5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pKX12YXIgaEEsYkEseUE7IShmdW5jdGlvbih0KXt0LlNDQUxBUlM9InNjYWxhcnMiLHQuSElTVE9HUkFNUz0iaGlzdG9ncmFtcyIsdC5JTUFHRVM9ImltYWdlcyJ9KShoQXx8KGhBPXt9KSksKGZ1bmN0aW9uKHQpe3QuREVGQVVMVD0iZGVmYXVsdCIsdC5BU0NFTkRJTkc9ImFzY2VuZGluZyIsdC5ERVNDRU5ESU5HPSJkZXNjZW5kaW5nIix0Lk5FQVJFU1Q9Im5lYXJlc3QifSkoYkF8fChiQT17fSkpLChmdW5jdGlvbih0KXt0W3QuU1RFUD0wXT0iU1RFUCIsdFt0LlJFTEFUSVZFPTFdPSJSRUxBVElWRSIsdFt0LldBTExfVElNRT0yXT0iV0FMTF9USU1FIn0pKHlBfHwoeUE9e30pKTtjb25zdCBfQT0idGltZXNlcmllcyIsQ0E9W2hBLklNQUdFU107ZnVuY3Rpb24gTUEodCl7cmV0dXJuIENBLmluY2x1ZGVzKHQpfWNvbnN0IHZBPVtoQS5ISVNUT0dSQU1TLGhBLklNQUdFU107ZnVuY3Rpb24geEEodCl7cmV0dXJuIHZBLmluY2x1ZGVzKHQpfWZ1bmN0aW9uIE9BKHQpe3JldHVybiB4QSh0LnBsdWdpbil9Y2xhc3MgUEF7fWZ1bmN0aW9uIHdBKHQpe3JldHVybiB0Lmhhc093blByb3BlcnR5KCJlcnJvciIpfWNvbnN0IGtBPSJkYXRhL3BsdWdpbi90aW1lc2VyaWVzIjtmdW5jdGlvbiBTQSh0KXtjb25zdCBlPXQuaW5kZXhPZigiLyIpO3JldHVybntydW46dC5zdWJzdHJpbmcoZSsxKSxleHBlcmltZW50SWQ6dC5zdWJzdHJpbmcoMCxlKX19ZnVuY3Rpb24gREEodCxlKXtyZXR1cm5gJHtlfS8ke3R9YH1mdW5jdGlvbiBFQSh0LGUpe2NvbnN0e3J1blRvU2VyaWVzOm4scnVuOm99PXQsaT1mQSh0LFsicnVuVG9TZXJpZXMiLCJydW4iXSksYT1PYmplY3QuYXNzaWduKHt9LGkpO3JldHVybiBuJiYoYS5ydW5Ub1Nlcmllcz1SQShuLGUpKSxvJiYoYS5ydW5JZD1EQShvLGUpKSxhfWZ1bmN0aW9uIFJBKHQsZSl7Y29uc3Qgbj17fTtmb3IoY29uc3QgbyBpbiB0KXQuaGFzT3duUHJvcGVydHkobykmJihuW0RBKG8sZSldPXRbb10pO3JldHVybiBufWNsYXNzIEFBe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5odHRwPXQsdGhpcy5zdG9yZT1lfWZldGNoVGFnTWV0YWRhdGEodCl7Y29uc3QgZT10Lm1hcCgodD0+dGhpcy5odHRwLmdldChgL2V4cGVyaW1lbnQvJHt0fS8ke2tBfS90YWdzYCkucGlwZShJdCgoZT0+KGZ1bmN0aW9uIG4odCxlKXtjb25zdCBuPXt9O2Zvcihjb25zdCBvIG9mIE9iamVjdC5rZXlzKHQpKXtjb25zdCBpPW87aWYoTUEoaSkpe2NvbnN0IG89dFtpXSx7dGFnUnVuU2FtcGxlZEluZm86YX09byxyPWZBKG8sWyJ0YWdSdW5TYW1wbGVkSW5mbyJdKSxzPXt9O2Zvcihjb25zdCB0IGluIGEpYS5oYXNPd25Qcm9wZXJ0eSh0KSYmKHNbdF09UkEoYVt0XSxlKSk7bltpXT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3RhZ1J1blNhbXBsZWRJbmZvOnN9KX1lbHNle2NvbnN0IG89dFtpXSx7cnVuVGFnSW5mbzphfT1vLHI9ZkEobyxbInJ1blRhZ0luZm8iXSk7bltpXT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3J1blRhZ0luZm86UkEoYSxlKX0pfX1yZXR1cm4gbn0pKGUsdCkpKSkpKSxuPXRoaXMuc3RvcmUuc2VsZWN0KHFEKS5waXBlKGNlKEJvb2xlYW4pLGJlKDEpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KG9FKSksSXQoKChbLHRdKT0+dCkpKTtyZXR1cm4gJHQoZSkucGlwZShWZShuKSxJdCgoKFt0LGVdKT0+e2NvbnN0IG49KGZ1bmN0aW9uIG8odCl7Y29uc3QgZT17fTtmb3IoY29uc3QgbiBvZiB0KWZvcihjb25zdCB0IG9mIE9iamVjdC52YWx1ZXMoaEEpKWlmKE1BKHQpKXtlW3RdPWVbdF18fHt0YWdEZXNjcmlwdGlvbnM6e30sdGFnUnVuU2FtcGxlZEluZm86e319O2NvbnN0e3RhZ0Rlc2NyaXB0aW9uczpvLHRhZ1J1blNhbXBsZWRJbmZvOml9PW5bdF07ZVt0XS50YWdEZXNjcmlwdGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVbdF0udGFnRGVzY3JpcHRpb25zKSxvKTtjb25zdCBhPWVbdF0udGFnUnVuU2FtcGxlZEluZm87Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmtleXMoaSkpe2FbdF09YVt0XXx8e307Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmtleXMoaVt0XSkpYVt0XVtlXT1pW3RdW2VdfX1lbHNle2VbdF09ZVt0XXx8e3RhZ0Rlc2NyaXB0aW9uczp7fSxydW5UYWdJbmZvOnt9fTtjb25zdHt0YWdEZXNjcmlwdGlvbnM6byxydW5UYWdJbmZvOml9PW5bdF07ZVt0XS50YWdEZXNjcmlwdGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVbdF0udGFnRGVzY3JpcHRpb25zKSxvKSxlW3RdLnJ1blRhZ0luZm89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVbdF0ucnVuVGFnSW5mbyksaSl9cmV0dXJuIGV9KSh0KTtyZXR1cm4gZXx8KG5baEEuSU1BR0VTXT17dGFnRGVzY3JpcHRpb25zOnt9LHRhZ1J1blNhbXBsZWRJbmZvOnt9fSksbn0pKSl9ZmV0Y2hUaW1lU2VyaWVzKHQpe2NvbnN0IGU9dC5tYXAoKHQ9PntpZih4QSh0LnBsdWdpbikpe2NvbnN0IGU9dCx7cnVuSWQ6bn09ZSxvPWZBKGUsWyJydW5JZCJdKSx7cnVuOmksZXhwZXJpbWVudElkOmF9PVNBKG4pLHI9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG8pLHtydW46aX0pO3JldHVybiB0aGlzLmZldGNoVGltZVNlcmllc0JhY2tlbmRSZXF1ZXN0KHIsYSkucGlwZShJdCgoKHtyZXNwb25zZTp0LGV4cGVyaW1lbnRJZDplfSk9PkVBKHQsZSkpKSl9Y29uc3QgZT10LHtleHBlcmltZW50SWRzOm59PWUsbz1mQShlLFsiZXhwZXJpbWVudElkcyJdKTtyZXR1cm4gJHQobi5tYXAoKHQ9PnRoaXMuZmV0Y2hUaW1lU2VyaWVzQmFja2VuZFJlcXVlc3Qobyx0KSkpKS5waXBlKEl0KCh0PT57Y29uc3QgZT1mQSh0WzBdLnJlc3BvbnNlLFsicnVuVG9TZXJpZXMiLCJlcnJvciJdKTtmb3IoY29uc3R7cmVzcG9uc2U6bixleHBlcmltZW50SWQ6b31vZiB0KXtjb25zdCB0PUVBKG4sbyk7aWYoZS5lcnJvciljb250aW51ZTtjb25zdHtydW5Ub1NlcmllczppLGVycm9yOmF9PXQ7aWYoYSllLmVycm9yPWEsZS5ydW5Ub1Nlcmllcz12b2lkIDA7ZWxzZXtlLnJ1blRvU2VyaWVzPWUucnVuVG9TZXJpZXN8fHt9O2Zvcihjb25zdCB0IG9mIE9iamVjdC5rZXlzKGkpKWUucnVuVG9TZXJpZXNbdF09aVt0XX19cmV0dXJuIGV9KSkpfSkpO3JldHVybiAkdChlKX1mZXRjaFRpbWVTZXJpZXNCYWNrZW5kUmVxdWVzdCh0LGUpe2NvbnN0IG49bmV3IEZvcm1EYXRhO3JldHVybiBuLmFwcGVuZCgicmVxdWVzdHMiLEpTT04uc3RyaW5naWZ5KFt0XSkpLHRoaXMuaHR0cC5wb3N0KGAvZXhwZXJpbWVudC8ke2V9LyR7a0F9L3RpbWVTZXJpZXNgLG4pLnBpcGUoSXQoKHQ9Pih7cmVzcG9uc2U6dFswXSxleHBlcmltZW50SWQ6ZX0pKSkpfWltYWdlVXJsKHQpe3JldHVybmAke2tBfS9pbWFnZURhdGE/aW1hZ2VJZD0ke3R9YH1kb3dubG9hZFVybCh0LGUsbixvKXtjb25zdHtydW46aSxleHBlcmltZW50SWQ6YX09U0Eobik7bGV0IHI7c3dpdGNoKHQpe2Nhc2UgaEEuU0NBTEFSUzpyPSJzY2FsYXJzL3NjYWxhcnMiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBOb3QgaW1wbGVtZW50ZWQ6IGRvd25sb2FkVXJsIGZvciAke3R9IGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXRgKX1pZighYSl0aHJvdyBuZXcgRXJyb3IoImV4cGVyaW1lbnRJZCBpcyBlbXB0eTsgaXQgaXMgcmVxdWlyZWQgdG8gZm9ybSBkb3dubG9hZFVybC4iKTtyZXR1cm5gL2V4cGVyaW1lbnQvJHthfS9kYXRhL3BsdWdpbi8ke3J9PyR7bmV3IFVSTFNlYXJjaFBhcmFtcyh7dGFnOmUscnVuOmksZm9ybWF0Om99KX1gfX1BQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QUEpKHZyKGxFKSx2cihJdykpfSxBQS7JtXByb3Y9TW4oe3Rva2VuOkFBLGZhY3Rvcnk6QUEuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEFBLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpsRX0se3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIFRBe31UQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VEEpfSxUQS7JtXByb3Y9TW4oe3Rva2VuOlRBLGZhY3Rvcnk6VEEuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFRBLFt7dHlwZTppbX1dLG51bGwsbnVsbCk7Y29uc3QgTkE9ImV4cGVyaW1lbnRhbFBsdWdpbiIsekE9InNjYWxhcnNCYXRjaFNpemUiLElBPSJlbmFibGVDb2xvckdyb3VwIixIQT0iZW5hYmxlQ29sb3JHcm91cEJ5UmVnZXgiLEZBPSJkYXJrTW9kZSIsTEE9ImVuYWJsZUxpbmtUaW1lIixCQT1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2NsYXNzIFZBe2dldFBhcmFtcygpe3JldHVybiBCQX19VkEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZBKX0sVkEuybVwcm92PU1uKHt0b2tlbjpWQSxmYWN0b3J5OlZBLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWQSxbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIGpBe2NvbnN0cnVjdG9yKHQpe3RoaXMucXVlcnlQYXJhbXM9dH1nZXRGZWF0dXJlcyh0PSExKXtjb25zdCBlPXRoaXMucXVlcnlQYXJhbXMuZ2V0UGFyYW1zKCksbj10P3RoaXMuZ2V0UGFydGlhbEZlYXR1cmVzRnJvbU1lZGlhUXVlcnkoKTp7fTtyZXR1cm4gZS5oYXMoTkEpJiYobi5lbmFibGVkRXhwZXJpbWVudGFsUGx1Z2lucz1lLmdldEFsbChOQSkpLGUuaGFzKCJ0ZW5zb3Jib2FyZENvbGFiIikmJihuLmluQ29sYWI9InRydWUiPT09ZS5nZXQoInRlbnNvcmJvYXJkQ29sYWIiKSksZS5oYXMoekEpJiYobi5zY2FsYXJzQmF0Y2hTaXplPU51bWJlcihlLmdldCh6QSkpKSxlLmhhcyhJQSkmJihuLmVuYWJsZWRDb2xvckdyb3VwPSJmYWxzZSIhPT1lLmdldChJQSkpLGUuaGFzKEhBKSYmKG4uZW5hYmxlZENvbG9yR3JvdXBCeVJlZ2V4PSJmYWxzZSIhPT1lLmdldChIQSkpLGUuaGFzKEZBKSYmKG4uZGVmYXVsdEVuYWJsZURhcmtNb2RlPSJmYWxzZSIhPT1lLmdldChGQSkpLGUuaGFzKExBKSYmKG4uZW5hYmxlZExpbmtlZFRpbWU9ImZhbHNlIiE9PWUuZ2V0KExBKSksbn1nZXRQYXJ0aWFsRmVhdHVyZXNGcm9tTWVkaWFRdWVyeSgpe2NvbnN0IHQ9e307cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcyYmKHQuZGVmYXVsdEVuYWJsZURhcmtNb2RlPSEwKSx0fX1qQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8akEpKHZyKFZBKSl9LGpBLsm1cHJvdj1Nbih7dG9rZW46akEsZmFjdG9yeTpqQS7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoakEsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlZBfV19KSxudWxsKTtjbGFzcyBVQXt9VUEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVBKX0sVUEuybVtb2Q9YW8oe3R5cGU6VUF9KSxVQS7JtWluaj12bih7cHJvdmlkZXJzOltqQSxWQSx7cHJvdmlkZTpUQSx1c2VDbGFzczpqQX1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVQSxbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpbakEsVkEse3Byb3ZpZGU6VEEsdXNlQ2xhc3M6akF9XX1dfV0sbnVsbCxudWxsKTtjb25zdCBHQT1KUCgiW0ZFQVRVUkUgRkxBR10gUGFydGlhbCBGZWF0dXJlIEZsYWdzIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFdBPUpQKCJbRkVBVFVSRSBGTEFHXSBFbmFibGUgRGFyayBNb2RlIE92ZXJyaWRlIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxZQT1KUCgiW0ZFQVRVUkUgRkxBR10gRWZmZWN0cyBJbml0Iik7Y2xhc3MgcUF7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5kYXRhU291cmNlPW4sdGhpcy5nZXRGZWF0dXJlRmxhZ3MkPU1rKCgoKT0+dGhpcy5hY3Rpb25zJC5waXBlKERrKFlBKSxmZSh0aGlzLnN0b3JlLnNlbGVjdChLRCkpLEl0KCgoWyx0XSk9Pntjb25zdCBlPXRoaXMuZGF0YVNvdXJjZS5nZXRGZWF0dXJlcyh0KTtyZXR1cm4gR0Eoe2ZlYXR1cmVzOmV9KX0pKSkpKX1uZ3J4T25Jbml0RWZmZWN0cygpe3JldHVybiBZQSgpfX1xQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cUEpKHZyKFNrKSx2cihJdyksdnIoVEEpKX0scUEuybVwcm92PU1uKHt0b2tlbjpxQSxmYWN0b3J5OnFBLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChxQSxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U2t9LHt0eXBlOkl3fSx7dHlwZTpUQX1dfSksbnVsbCk7Y29uc3QgWkE9e2lzRmVhdHVyZUZsYWdzTG9hZGVkOiExLGRlZmF1bHRGbGFnczp7aXNBdXRvRGFya01vZGVBbGxvd2VkOiEwLGRlZmF1bHRFbmFibGVEYXJrTW9kZTohMSxlbmFibGVEYXJrTW9kZU92ZXJyaWRlOm51bGwsZW5hYmxlZENvbG9yR3JvdXA6ITAsZW5hYmxlZENvbG9yR3JvdXBCeVJlZ2V4OiEwLGVuYWJsZWRFeHBlcmltZW50YWxQbHVnaW5zOltdLGluQ29sYWI6ITEsc2NhbGFyc0JhdGNoU2l6ZTp2b2lkIDAsbWV0cmljc0ltYWdlU3VwcG9ydEVuYWJsZWQ6ITAsZW5hYmxlZExpbmtlZFRpbWU6ITEsZW5hYmxlVGltZVNlcmllc1Byb21vdGlvbjohMX0sZmxhZ092ZXJyaWRlczp7fX0sWEE9bmV3IEdhKCJbRmVhdHVyZSBGbGFnXSBTdG9yZSBDb25maWciKTtmdW5jdGlvbiBLQSgpe3JldHVybntpbml0aWFsU3RhdGU6WkF9fWNvbnN0IEpBPXlrKFpBLGJrKEdBLCgodCx7ZmVhdHVyZXM6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2lzRmVhdHVyZUZsYWdzTG9hZGVkOiEwLGZsYWdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZmxhZ092ZXJyaWRlcyksZSl9KSkpLGJrKFdBLCgodCx7ZW5hYmxlRGFya01vZGU6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2ZsYWdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZmxhZ092ZXJyaWRlcykse2VuYWJsZURhcmtNb2RlT3ZlcnJpZGU6ZX0pfSkpKSxiayhXUywoKHQse3BhcnRpYWxTZXR0aW5nczplfSk9PntpZighZS50aGVtZU92ZXJyaWRlKXJldHVybiB0O2xldCBuO3N3aXRjaChlLnRoZW1lT3ZlcnJpZGUpe2Nhc2UgR1MuQlJPV1NFUl9ERUZBVUxUOm49bnVsbDticmVhaztjYXNlIEdTLkRBUks6bj0hMDticmVhaztjYXNlIEdTLkxJR0hUOm49ITF9cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZmxhZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5mbGFnT3ZlcnJpZGVzKSx7ZW5hYmxlRGFya01vZGVPdmVycmlkZTpufSl9KX0pKSk7ZnVuY3Rpb24gUUEodCxlKXtyZXR1cm4gSkEodCxlKX1mdW5jdGlvbiAkQSgpe3JldHVybiBadyhRRCwodD0+bnVsbD09PXQ/e3RoZW1lT3ZlcnJpZGU6R1MuQlJPV1NFUl9ERUZBVUxUfTp7dGhlbWVPdmVycmlkZTp0P0dTLkRBUks6R1MuTElHSFR9KSl9Y2xhc3MgdFR7fXRULsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0VCl9LHRULsm1bW9kPWFvKHt0eXBlOnRUfSksdFQuybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6WEEsdXNlRmFjdG9yeTpLQX1dLGltcG9ydHM6W1tVQSxkay5mb3JGZWF0dXJlKFdELFFBLFhBKSxXay5mb3JGZWF0dXJlKFtxQV0pLHFTLmRlZmluZUdsb2JhbFNldHRpbmcoJEEpXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHRULFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbVUEsZGsuZm9yRmVhdHVyZShXRCxRQSxYQSksV2suZm9yRmVhdHVyZShbcUFdKSxxUy5kZWZpbmVHbG9iYWxTZXR0aW5nKCRBKV0scHJvdmlkZXJzOlt7cHJvdmlkZTpYQSx1c2VGYWN0b3J5OktBfV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyh0VCx7aW1wb3J0czpbVUEsY2ssR2sscVNdfSk7Y2xhc3MgZVR7fWZ1bmN0aW9uIG5UKHQsZSxuLG8pe3JldHVybiB0W2VdLmhhc093blByb3BlcnR5KG4pP01BKGUpP3RbZV1bbl0uaGFzT3duUHJvcGVydHkobyk/dFtlXVtuXVtvXTpudWxsOnRbZV1bbl06bnVsbH1mdW5jdGlvbiBvVCh0LGUsbixvKXtpZihNQShlKSl7Y29uc3QgaT1PYmplY3QuYXNzaWduKHt9LHRbZV0pLGE9KGZ1bmN0aW9uIGkodCxlLG4pe2NvbnN0IG89dC5oYXNPd25Qcm9wZXJ0eShlKT9PYmplY3QuYXNzaWduKHt9LHRbZV0pOnt9LGk9by5oYXNPd25Qcm9wZXJ0eShuKTtyZXR1cm4gb1tuXT1pP09iamVjdC5hc3NpZ24oe30sb1tuXSk6e3J1blRvU2VyaWVzOnt9LHJ1blRvTG9hZFN0YXRlOnt9fSxvfSkoaSxuLG8pO3JldHVybiBpW25dPWEsaX1jb25zdCBhPU9iamVjdC5hc3NpZ24oe30sdFtlXSkscj1hLmhhc093blByb3BlcnR5KG4pO3JldHVybiBhW25dPXI/T2JqZWN0LmFzc2lnbih7fSxhW25dKTp7cnVuVG9TZXJpZXM6e30scnVuVG9Mb2FkU3RhdGU6e319LGF9ZnVuY3Rpb24gaVQodCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfWZ1bmN0aW9uIGFUKHQsZSxuKXtjb25zdCBvPU9iamVjdC5hc3NpZ24oe30sbik7Zm9yKGNvbnN0IG4gb2YgZSlvW25dPXQ7cmV0dXJuIG99ZnVuY3Rpb24gclQodCxlLG4sbyl7aWYoTUEoZSkpe2NvbnN0IGk9dFtlXS50YWdSdW5TYW1wbGVkSW5mbztyZXR1cm4gaS5oYXNPd25Qcm9wZXJ0eShuKT9PYmplY3Qua2V5cyhpW25dKS5maWx0ZXIoKHQ9Pm88aVtuXVt0XS5tYXhTYW1wbGVzUGVyU3RlcCkpOltdfWNvbnN0IGk9dFtlXS50YWdUb1J1bnM7cmV0dXJuIGkuaGFzT3duUHJvcGVydHkobik/aVtuXTpbXX1mdW5jdGlvbiBzVCh0LGUsbixvLGksYSl7Y29uc3Qgcj1uZXcgU2V0KHQpLHM9W107Zm9yKGNvbnN0IG8gb2YgdClmb3IoY29uc3QgdCBvZiBlKWlmKChsPW5bdF0pLnBsdWdpbj09PShjPW8pLnBsdWdpbiYmbC50YWc9PT1jLnRhZyYmbC5zYW1wbGU9PT1jLnNhbXBsZSYmKGwucnVuSWQ9PT1jLnJ1bklkfHwhbC5ydW5JZCYmIWMucnVuSWQpKXtzLnB1c2godCksci5kZWxldGUobyk7YnJlYWt9dmFyIGwsYztpZighcy5sZW5ndGgpcmV0dXJue3VucmVzb2x2ZWRJbXBvcnRlZFBpbm5lZENhcmRzOnQsY2FyZE1ldGFkYXRhTWFwOm4sY2FyZFRvUGlubmVkQ29weTpvLHBpbm5lZENhcmRUb09yaWdpbmFsOmksY2FyZFN0ZXBJbmRleDphfTtsZXQgZD17Y2FyZFRvUGlubmVkQ29weTpvLHBpbm5lZENhcmRUb09yaWdpbmFsOmksY2FyZFN0ZXBJbmRleDphLGNhcmRNZXRhZGF0YU1hcDpufTtmb3IoY29uc3QgdCBvZiBzKWQ9bFQodCxkLmNhcmRUb1Bpbm5lZENvcHksZC5waW5uZWRDYXJkVG9PcmlnaW5hbCxkLmNhcmRTdGVwSW5kZXgsZC5jYXJkTWV0YWRhdGFNYXApO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZCkse3VucmVzb2x2ZWRJbXBvcnRlZFBpbm5lZENhcmRzOlsuLi5yXX0pfWZ1bmN0aW9uIGxUKHQsZSxuLG8saSl7aWYoZS5oYXModCkpcmV0dXJue2NhcmRUb1Bpbm5lZENvcHk6ZSxwaW5uZWRDYXJkVG9PcmlnaW5hbDpuLGNhcmRTdGVwSW5kZXg6byxjYXJkTWV0YWRhdGFNYXA6aX07Y29uc3QgYT1uZXcgTWFwKGUpLHI9bmV3IE1hcChuKSxzPU9iamVjdC5hc3NpZ24oe30sbyksbD1PYmplY3QuYXNzaWduKHt9LGkpLGM9KGZ1bmN0aW9uIGQodCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHtiYXNlQ2FyZElkOnR9KX0pKHQpO2Euc2V0KHQsYyksci5zZXQoYyx0KSxvLmhhc093blByb3BlcnR5KHQpJiYoc1tjXT1vW3RdKTtjb25zdCBwPWlbdF07aWYoIXApdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcGluIGEgY2FyZCB3aXRob3V0IG1ldGFkYXRhIik7cmV0dXJuIGxbY109cCx7Y2FyZFRvUGlubmVkQ29weTphLHBpbm5lZENhcmRUb09yaWdpbmFsOnIsY2FyZFN0ZXBJbmRleDpzLGNhcmRNZXRhZGF0YU1hcDpsfX1mdW5jdGlvbiBjVCh0KXtyZXR1cm4gdC5waW5uZWRDYXJkVG9PcmlnaW5hbC5zaXplK3QudW5yZXNvbHZlZEltcG9ydGVkUGlubmVkQ2FyZHMubGVuZ3RoPDEwfWVULsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlVCl9LGVULsm1bW9kPWFvKHt0eXBlOmVUfSksZVQuybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6UEEsdXNlQ2xhc3M6QUF9XSxpbXBvcnRzOltbdFQsY0VdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZVQsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOlt0VCxjRV0scHJvdmlkZXJzOlt7cHJvdmlkZTpQQSx1c2VDbGFzczpBQX1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZVQse2ltcG9ydHM6W3RULGNFXX0pO2NvbnN0IGRUPSJtZXRyaWNzIixwVD17dG9vbHRpcFNvcnQ6YkEuREVGQVVMVCxpZ25vcmVPdXRsaWVyczohMCx4QXhpc1R5cGU6eUEuU1RFUCxzY2FsYXJTbW9vdGhpbmc6LjYsc2NhbGFyUGFydGl0aW9uTm9uTW9ub3RvbmljWDohMSxpbWFnZUJyaWdodG5lc3NJbk1pbGxpOjFlMyxpbWFnZUNvbnRyYXN0SW5NaWxsaToxZTMsaW1hZ2VTaG93QWN0dWFsU2l6ZTohMSxoaXN0b2dyYW1Nb2RlOnBFLk9GRlNFVH0sbVQ9S3coZFQpLHVUPVp3KG1ULCh0PT50LnRhZ01ldGFkYXRhTG9hZFN0YXRlKSk7WncobVQsKHQ9PnQudGFnTWV0YWRhdGEpKTtjb25zdCBmVD1adyhtVCwodD0+dC5jYXJkTGlzdCkpLGdUPVp3KG1ULCgodCxlKT0+e2lmKCF0LmNhcmRNZXRhZGF0YU1hcC5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4geUUuTk9UX0xPQURFRDtjb25zdHtwbHVnaW46bix0YWc6byxydW5JZDppLHNhbXBsZTphfT10LmNhcmRNZXRhZGF0YU1hcFtlXSxyPW5UKHQudGltZVNlcmllc0RhdGEsbixvLGEpO2lmKCFyKXJldHVybiB5RS5OT1RfTE9BREVEO2NvbnN0IHM9ci5ydW5Ub0xvYWRTdGF0ZTtpZihpKXJldHVybiBzLmhhc093blByb3BlcnR5KGkpP3NbaV06eUUuTk9UX0xPQURFRDtjb25zdCBsPXJUKHQudGFnTWV0YWRhdGEsbixvLGEpO2lmKCFsLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBsb2FkIGEgY2FyZCB3aG9zZSB0YWcgaGFzIG5vIHJ1bnMiKTtyZXR1cm4gbC5ldmVyeSgodD0+c1t0XT09PXlFLkxPQURFRCkpP3lFLkxPQURFRDpsLnNvbWUoKHQ9PnNbdF09PT15RS5MT0FESU5HKSk/eUUuTE9BRElORzp5RS5OT1RfTE9BREVEfSkpLGhUPVp3KG1ULCgodCxlKT0+e2lmKCF0LmNhcmRNZXRhZGF0YU1hcC5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gbnVsbDtjb25zdHtwbHVnaW46bix0YWc6byxzYW1wbGU6aX09dC5jYXJkTWV0YWRhdGFNYXBbZV0sYT1uVCh0LnRpbWVTZXJpZXNEYXRhLG4sbyxpKTtyZXR1cm4gYT9hLnJ1blRvU2VyaWVzOm51bGx9KSksYlQ9WncobVQsKHQ9PnQuY2FyZE1ldGFkYXRhTWFwKSkseVQ9WncoYlQsKCh0LGUpPT50Lmhhc093blByb3BlcnR5KGUpP3RbZV06bnVsbCkpLF9UPVp3KG1ULCh0PT50LnZpc2libGVDYXJkTWFwKSksQ1Q9WncoX1QsKHQ9Pm5ldyBTZXQodC52YWx1ZXMoKSkpKSxNVD1adyhmVCxiVCwoKHQsZSk9PnQuZmlsdGVyKCh0PT5lLmhhc093blByb3BlcnR5KHQpKSkubWFwKCh0PT5PYmplY3QuYXNzaWduKHtjYXJkSWQ6dH0sZVt0XSkpKSkpLHZUPVp3KG1ULCgodCxlKT0+dC5jYXJkU3RlcEluZGV4Lmhhc093blByb3BlcnR5KGUpP3QuY2FyZFN0ZXBJbmRleFtlXTpudWxsKSkseFQ9WncobVQsKHQ9PnQuY2FyZFRvUGlubmVkQ29weSkpLE9UPVp3KG1ULCh0PT50LnBpbm5lZENhcmRUb09yaWdpbmFsKSksUFQ9WncoeFQsYlQsKCh0LGUpPT5bLi4udC52YWx1ZXMoKV0uZmlsdGVyKCh0PT5lLmhhc093blByb3BlcnR5KHQpKSkubWFwKCh0PT5PYmplY3QuYXNzaWduKHtjYXJkSWQ6dH0sZVt0XSkpKSkpLHdUPVp3KHhULE9ULCgodCxlLG4pPT50LmhhcyhuKXx8ZS5oYXMobikpKSxrVD1adyhtVCwodD0+dC51bnJlc29sdmVkSW1wb3J0ZWRQaW5uZWRDYXJkcykpLFNUPVp3KG1ULCh0PT5jVCh0KSkpLERUPVp3KG1ULCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncyksdC5zZXR0aW5nT3ZlcnJpZGVzKSkpLEVUPVp3KG1ULCh0PT50LnNldHRpbmdPdmVycmlkZXMpKSxSVD1adyhEVCwodD0+dC50b29sdGlwU29ydCkpLEFUPVp3KERULCh0PT50Lmlnbm9yZU91dGxpZXJzKSksVFQ9WncoRFQsKHQ9PnQueEF4aXNUeXBlKSksTlQ9WncoRFQsKHQ9PnQuaGlzdG9ncmFtTW9kZSkpLHpUPVp3KERULCh0PT50LnNjYWxhclNtb290aGluZykpLElUPVp3KERULCh0PT50LnNjYWxhclBhcnRpdGlvbk5vbk1vbm90b25pY1gpKSxIVD1adyhEVCwodD0+dC5pbWFnZUJyaWdodG5lc3NJbk1pbGxpKSksRlQ9WncoRFQsKHQ9PnQuaW1hZ2VDb250cmFzdEluTWlsbGkpKSxMVD1adyhEVCwodD0+dC5pbWFnZVNob3dBY3R1YWxTaXplKSksQlQ9WncobVQsKHQ9PnQudGFnRmlsdGVyKSksVlQ9WncobVQsKCh0LGUpPT5Cb29sZWFuKHQudGFnR3JvdXBFeHBhbmRlZC5nZXQoZSkpKSksalQ9WncobVQsKHQ9PnQuc2VsZWN0VGltZUVuYWJsZWQpKSxVVD1adyhtVCwodD0+dC51c2VSYW5nZVNlbGVjdFRpbWUpKSxHVD1adyhtVCwodD0+e2NvbnN0e21pbjplLG1heDpufT10LnN0ZXBNaW5NYXg7cmV0dXJue21pbjplPT09MS8wPzA6ZSxtYXg6bj09PS0xLzA/MWUzOm59fSkpLFdUPVp3KG1ULEdULCgodCxlKT0+e3ZhciBuO3JldHVybiB0LnNlbGVjdGVkVGltZT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZWxlY3RlZFRpbWUpLHtlbmQ6bnVsbCE9PShuPXQuc2VsZWN0ZWRUaW1lLmVuZCkmJnZvaWQgMCE9PW4/bjp7c3RlcDplLm1heH19KTp7c3RhcnQ6e3N0ZXA6ZS5taW59LGVuZDp7c3RlcDplLm1heH19fSkpLFlUPVp3KG1ULFdULCgodCxlKT0+dC5zZWxlY3RUaW1lRW5hYmxlZD90LnVzZVJhbmdlU2VsZWN0VGltZT9lOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7ZW5kOm51bGx9KTpudWxsKSkscVQ9WncobVQsKHQ9PnQuZmlsdGVyZWRQbHVnaW5UeXBlcykpLFpUPVp3KG1ULCh0PT50LnByb21vdGVUaW1lU2VyaWVzKSksWFQ9WncobVQsKHQ9PnQuaXNTZXR0aW5nc1BhbmVPcGVuKSk7dmFyIEtUOyEoZnVuY3Rpb24odCl7dFt0Lk5PTkU9MF09Ik5PTkUiLHRbdC5XSEFUU19ORVc9MV09IldIQVRTX05FVyJ9KShLVHx8KEtUPXt9KSk7Y29uc3QgSlQ9S3coIm5vdGlmaWNhdGlvbiIpO1p3KEpULCh0PT50Lm5vdGlmaWNhdGlvbnMpKSxadyhKVCwodD0+e3ZhciBlO3JldHVybiBudWxsIT09KGU9dC5sYXN0UmVhZFRpbWVzdGFtcEluTXMpJiZ2b2lkIDAhPT1lP2U6LTF9KSk7Y29uc3QgUVQ9InJ1bnMiO3ZhciAkVCx0TjtmdW5jdGlvbiBlTih0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodC5zbGljZSgpLnNvcnQoKSl9ZnVuY3Rpb24gbk4odCxlLG4pe2NvbnN0IG89e30saT1bXSxhPXttYXRjaGVzOm8sbm9uTWF0Y2hlczppfTtzd2l0Y2godC5rZXkpe2Nhc2UgdE4uUlVOOmZvcihjb25zdCB0IG9mIGUpb1t0LmlkXT1bdF07YnJlYWs7Y2FzZSB0Ti5FWFBFUklNRU5UOmZvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9blt0LmlkXSxpPW9bZV18fFtdO2kucHVzaCh0KSxvW2VdPWl9YnJlYWs7Y2FzZSB0Ti5SRUdFWDppZighdC5yZWdleFN0cmluZylicmVhaztsZXQgYTt0cnl7YT1uZXcgUmVnRXhwKHQucmVnZXhTdHJpbmcpfWNhdGNoKHQpe2JyZWFrfWZvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dC5uYW1lLm1hdGNoKGEpO2lmKGUpe2NvbnN0IG49ZS5sZW5ndGg+MT9KU09OLnN0cmluZ2lmeShlLnNsaWNlKDEpKToicHNldWRvX2dyb3VwIixpPW9bbl18fFtdO2kucHVzaCh0KSxvW25dPWl9ZWxzZSBpLnB1c2godCl9fXJldHVybiBhfWZ1bmN0aW9uIG9OKHQsZSl7c3dpdGNoKHQpe2Nhc2UgdE4uUkVHRVg6cmV0dXJue2tleTp0LHJlZ2V4U3RyaW5nOm51bGwhPWU/ZToiIn07Y2FzZSB0Ti5SVU46Y2FzZSB0Ti5FWFBFUklNRU5UOmRlZmF1bHQ6cmV0dXJue2tleTp0fX19IShmdW5jdGlvbih0KXt0W3QuRVhQRVJJTUVOVF9OQU1FPTBdPSJFWFBFUklNRU5UX05BTUUiLHRbdC5IUEFSQU09MV09IkhQQVJBTSIsdFt0Lk1FVFJJQz0yXT0iTUVUUklDIix0W3QuUlVOX05BTUU9M109IlJVTl9OQU1FIn0pKCRUfHwoJFQ9e30pKSwoZnVuY3Rpb24odCl7dFt0LlJVTj0wXT0iUlVOIix0W3QuRVhQRVJJTUVOVD0xXT0iRVhQRVJJTUVOVCIsdFt0LlJFR0VYPTJdPSJSRUdFWCJ9KSh0Tnx8KHROPXt9KSk7Y29uc3QgaU49S3coUVQpLGFOPVp3KGlOLCh0PT50LmRhdGEpKSxyTj1adyhhTiwoKHQsZSk9Pnt2YXIgbjtyZXR1cm4gbnVsbCE9PShuPXQucnVuSWRUb0V4cElkW2UucnVuSWRdKSYmdm9pZCAwIT09bj9uOm51bGx9KSksc049WncoYU4sKCh0LGUpPT57dmFyIG47cmV0dXJuIG51bGwhPT0obj10LnJ1bk1ldGFkYXRhW2UucnVuSWRdKSYmdm9pZCAwIT09bj9uOm51bGx9KSksbE49WncoYU4sKCh0LGUpPT4odC5ydW5JZHNbZS5leHBlcmltZW50SWRdfHxbXSkuZmlsdGVyKChlPT5Cb29sZWFuKHQucnVuTWV0YWRhdGFbZV0pKSkubWFwKChlPT50LnJ1bk1ldGFkYXRhW2VdKSkpKSxjTj1adyhhTiwoKHQsZSk9Pnt2YXIgbjtyZXR1cm4gbnVsbCE9PShuPXQucnVuSWRzW2UuZXhwZXJpbWVudElkXSkmJnZvaWQgMCE9PW4/bjpbXX0pKSxkTj1adyhhTiwodD0+bmV3IE1hcChPYmplY3QuZW50cmllcyh0LnJ1bk1ldGFkYXRhKSkpKSxwTj1adyhhTiwoKHQsZSk9PnQucnVuc0xvYWRTdGF0ZVtlLmV4cGVyaW1lbnRJZF18fHtsYXN0TG9hZGVkVGltZUluTXM6bnVsbCxzdGF0ZTp5RS5OT1RfTE9BREVEfSkpLG1OPVp3KGFOLCgodCxlKT0+e2NvbnN0IG49ZU4oZS5leHBlcmltZW50SWRzKTtyZXR1cm4gdC5zZWxlY3Rpb25TdGF0ZS5nZXQobil8fG5ldyBNYXB9KSksdU49WncoYU4sKHQ9Pm51bGwhPT10LnVzZXJTZXRHcm91cEJ5S2V5P29OKHQudXNlclNldEdyb3VwQnlLZXksdC5jb2xvckdyb3VwUmVnZXhTdHJpbmcpOm51bGwpKSxmTj1adyh1TixhTiwoKHQsZSk9Pm51bGwhPXQ/dDplLmluaXRpYWxHcm91cEJ5KSksZ049WncoYU4sKHQ9PnQucmVnZXhGaWx0ZXIpKSxoTj1adyhpTiwodD0+dC51aSkpLGJOPVp3KGhOLCh0PT50LnBhZ2luYXRpb25PcHRpb24pKSx5Tj1adyhoTiwodD0+dC5zb3J0KSksX049WncoYU4sKHQ9PnQucnVuQ29sb3JPdmVycmlkZUZvckdyb3VwQnkpKSxDTj1adyhhTiwodD0+dC5kZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnkpKSxNTj1adyhhTiwodD0+dC5jb2xvckdyb3VwUmVnZXhTdHJpbmcpKSx2Tj1KUCgiW1NldHRpbmdzXSBSZWxvYWQgRW5hYmxlIFRvZ2dsZWQiKSx4Tj1KUCgiW1NldHRpbmdzXSBSZWxvYWQgUGVyaW9kIENoYW5nZSIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE9OPUpQKCJbU2V0dGluZ3NdIFBhZ2UgU2l6ZSBDaGFuZ2UiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxQTj0ic2V0dGluZ3MiLHdOPXtzdGF0ZTp5RS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCksc2V0dGluZ3M6e3JlbG9hZFBlcmlvZEluTXM6M2U0LHJlbG9hZEVuYWJsZWQ6ITEscGFnZVNpemU6MTIsY29sb3JQYWxldHRlOntpZDoiZGVmYXVsdCIsbmFtZToiRGVmYWx0Iixjb2xvcnM6W3tuYW1lOiJTbGF0ZSIsbGlnaHRIZXg6IiM0MjUwNjYiLGRhcmtIZXg6IiM4ZTk4YTMifSx7bmFtZToiQ3lhbiIsbGlnaHRIZXg6IiMxMmI1Y2IiLGRhcmtIZXg6IiMxMmI1Y2IifSx7bmFtZToiUGluayIsbGlnaHRIZXg6IiNlNTI1OTIiLGRhcmtIZXg6IiNlNTI1OTIifSx7bmFtZToiWWVsbG93IixsaWdodEhleDoiI2Y5YWIwMCIsZGFya0hleDoiI2Y5YWIwMCJ9LHtuYW1lOiJQdXJwbGUiLGxpZ2h0SGV4OiIjOTMzNGU2IixkYXJrSGV4OiIjOTMzNGU2In0se25hbWU6IkxpZ2h0IEdyZWVuIixsaWdodEhleDoiIzdjYjM0MiIsZGFya0hleDoiIzdjYjM0MiJ9LHtuYW1lOiJPcmFuZ2UiLGxpZ2h0SGV4OiIjZTg3MTBhIixkYXJrSGV4OiIjZTg3MTBhIn1dLGluYWN0aXZlOntuYW1lOiJHcmF5IixsaWdodEhleDoiI2UwZTBlMCIsZGFya0hleDoiIzNiM2IzYiJ9fX19LGtOPUt3KFBOKSxTTj1adyhrTiwodD0+dC5zdGF0ZSkpLEROPVp3KGtOLCh0PT50LnNldHRpbmdzLnJlbG9hZEVuYWJsZWQpKSxFTj1adyhrTiwodD0+dC5zZXR0aW5ncy5yZWxvYWRQZXJpb2RJbk1zKSksUk49Wncoa04sKHQ9PnQuc2V0dGluZ3MucGFnZVNpemUpKSxBTj1adyhrTiwodD0+dC5zZXR0aW5ncy5jb2xvclBhbGV0dGUpKTtmdW5jdGlvbiBUTih0LGUsbil7aWYoIWUpcmV0dXJuITA7bGV0IG87dHJ5e289bmV3IFJlZ0V4cChlLCJpIil9Y2F0Y2godCl7cmV0dXJuITF9Y29uc3QgaT1bdC5ydW5OYW1lXTtyZXR1cm4gbiYmaS5wdXNoKHQuZXhwZXJpbWVudEFsaWFzLGAke3QuZXhwZXJpbWVudEFsaWFzfS8ke3QucnVuTmFtZX1gKSxpLnNvbWUoKHQ9Pm8udGVzdCh0KSkpfWNvbnN0IE5OPVp3KCh0PT57Y29uc3QgZT1UUyh0KTtyZXR1cm4gZT9tTih0LHtleHBlcmltZW50SWRzOmV9KTpudWxsfSksZ04sKHQ9Pnt2YXIgZTtjb25zdCBuPW51bGwhPT0oZT1UUyh0KSkmJnZvaWQgMCE9PWU/ZTpbXSxvPXpTKHQpLGk9bmV3IE1hcDtmb3IoY29uc3QgZSBvZiBuKXtjb25zdCBuPXVBKHQse2V4cGVyaW1lbnRJZDplfSk7aWYoIW4pY29udGludWU7Y29uc3QgYT1sTih0LHtleHBlcmltZW50SWQ6ZX0pO2Zvcihjb25zdCB0IG9mIGEpaS5zZXQodC5pZCx7cnVuTmFtZTp0Lm5hbWUsZXhwZXJpbWVudE5hbWU6bi5uYW1lLGV4cGVyaW1lbnRBbGlhczpvW2VdfSl9cmV0dXJuIGl9KSxSUywoKHQsZSxuLG8pPT57aWYoIXQpcmV0dXJuIG51bGw7Y29uc3QgaT1vPT09WmsuQ09NUEFSRV9FWFBFUklNRU5ULGE9bmV3IE1hcDtmb3IoY29uc3RbbyxyXW9mIHQuZW50cmllcygpKXtjb25zdCB0PW4uZ2V0KG8pO2Euc2V0KG8sVE4odCxlLGkpJiZyKX1yZXR1cm4gYX0pKSx6Tj1adyhBTixDTixfTixKRCwoKHQsZSxuLG8pPT57Y29uc3QgaT17fTtyZXR1cm4gZS5mb3JFYWNoKCgoZSxhKT0+e2xldCByPW8/dC5pbmFjdGl2ZS5kYXJrSGV4OnQuaW5hY3RpdmUubGlnaHRIZXg7aWYobi5oYXMoYSkpcj1uLmdldChhKTtlbHNlIGlmKGU+PTApe2NvbnN0IG49dC5jb2xvcnNbZSV0LmNvbG9ycy5sZW5ndGhdO3I9bz9uLmRhcmtIZXg6bi5saWdodEhleH1pW2FdPXJ9KSksaX0pKTtjbGFzcyBJTntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5hY3Rpb25zJD10LHRoaXMuc3RvcmU9ZSx0aGlzLnJ1bnNEYXRhU291cmNlPW4sdGhpcy5sb2FkUnVuc09uUnVuVGFibGVTaG93biQ9TWsoKCgpPT50aGlzLmFjdGlvbnMkLnBpcGUoRGsoVVIpLFp0KCgoe2V4cGVyaW1lbnRJZHM6dH0pPT50aGlzLmdldEV4cGVyaW1lbnRzV2l0aExvYWRTdGF0ZSh0LCh0PT50PT09eUUuRkFJTEVEfHx0PT09eUUuTk9UX0xPQURFRCkpLnBpcGUoY2UoKHQ9PiEhdC5sZW5ndGgpKSxadCgoZT0+dGhpcy5mZXRjaEFsbFJ1bnNMaXN0KHQsZSkpKSkpKSkpLHtkaXNwYXRjaDohMX0pLHRoaXMuZXhwZXJpbWVudHNXaXRoU3RhbGVSdW5zT25Sb3V0ZUNoYW5nZSQ9dGhpcy5hY3Rpb25zJC5waXBlKERrKGRTKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChOUykpLE1lKCgoWyx0XSxbLGVdKT0+dD09PWUpKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChUUykpLGNlKCgoWyx0XSk9PiEhdCkpLEl0KCgoWyx0XSk9PnQpKSxadCgodD0+dGhpcy5nZXRFeHBlcmltZW50c1dpdGhMb2FkU3RhdGUodCwodD0+dD09PXlFLkZBSUxFRHx8dD09PXlFLk5PVF9MT0FERUQpKS5waXBlKEl0KChlPT4oe2V4cGVyaW1lbnRJZHM6dCxleHBlcmltZW50SWRzVG9CZUZldGNoZWQ6ZX0pKSkpKSkpLHRoaXMuZXhwZXJpbWVudHNXaXRoU3RhbGVSdW5zT25SZWxvYWQkPXRoaXMuYWN0aW9ucyQucGlwZShEayh4RSx2RSksVmUodGhpcy5zdG9yZS5zZWxlY3QoVFMpKSxjZSgoKFssdF0pPT4hIXQpKSxJdCgoKFssdF0pPT50KSksWnQoKHQ9PnRoaXMuZ2V0RXhwZXJpbWVudHNXaXRoTG9hZFN0YXRlKHQsKHQ9PnQhPT15RS5MT0FESU5HKSkucGlwZShJdCgoZT0+KHtleHBlcmltZW50SWRzOnQsZXhwZXJpbWVudElkc1RvQmVGZXRjaGVkOmV9KSkpKSkpKSx0aGlzLmxvYWRSdW5zT25OYXZpZ2F0aW9uT3JSZWxvYWQkPU1rKCgoKT0+cmUodGhpcy5leHBlcmltZW50c1dpdGhTdGFsZVJ1bnNPblJvdXRlQ2hhbmdlJCx0aGlzLmV4cGVyaW1lbnRzV2l0aFN0YWxlUnVuc09uUmVsb2FkJCkucGlwZShadCgoKHtleHBlcmltZW50SWRzOnQsZXhwZXJpbWVudElkc1RvQmVGZXRjaGVkOmV9KT0+dGhpcy5mZXRjaEFsbFJ1bnNMaXN0KHQsZSkpKSkpLHtkaXNwYXRjaDohMX0pfWdldFJ1bnNMaXN0TG9hZFN0YXRlKHQpe3JldHVybiB0aGlzLnN0b3JlLnNlbGVjdChwTix7ZXhwZXJpbWVudElkOnR9KS5waXBlKGJlKDEpKX1nZXRFeHBlcmltZW50c1dpdGhMb2FkU3RhdGUodCxlKXtyZXR1cm4gJHQodC5tYXAoKHQ9PnRoaXMuZ2V0UnVuc0xpc3RMb2FkU3RhdGUodCkpKSkucGlwZShJdCgobj0+dC5maWx0ZXIoKCh0LG8pPT5lKG5bb10uc3RhdGUpKSkpKSl9ZmV0Y2hBbGxSdW5zTGlzdCh0LGUpe3JldHVybiBFdCh7ZXhwZXJpbWVudElkczp0LGV4cGVyaW1lbnRJZHNUb0JlRmV0Y2hlZDplfSkucGlwZShGZSgoKCk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKE5SKHtleHBlcmltZW50SWRzOnQscmVxdWVzdGVkRXhwZXJpbWVudElkczplfSkpfSkpLFp0KCgoKT0+e2NvbnN0IG49bmV3IFNldChlKTtyZXR1cm4gJHQodC5tYXAoKHQ9Pm4uaGFzKHQpP3RoaXMuZmV0Y2hSdW5zRm9yRXhwZXJpbWVudCh0KTp0aGlzLm1heWJlV2FpdEZvclJ1bnNBbmRHZXRSdW5zKHQpKSkpfSkpLEl0KCh0PT57Y29uc3QgZT17fSxuPVtdO2Zvcihjb25zdCBvIG9mIHQpbi5wdXNoKC4uLm8ucnVucyksby5mcm9tUmVtb3RlJiYoZVtvLmV4cGVyaW1lbnRJZF09e3J1bnM6by5ydW5zLG1ldGFkYXRhOm8ubWV0YWRhdGF9KTtyZXR1cm57bmV3UnVuc0FuZE1ldGFkYXRhOmUscnVuc0ZvckFsbEV4cGVyaW1lbnRzOm59fSkpLEZlKCgoe25ld1J1bnNBbmRNZXRhZGF0YTplLHJ1bnNGb3JBbGxFeHBlcmltZW50czpufSk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKHpSKHtleHBlcmltZW50SWRzOnQsbmV3UnVuc0FuZE1ldGFkYXRhOmUscnVuc0ZvckFsbEV4cGVyaW1lbnRzOm59KSl9KSkscGUoKG49Pih0aGlzLnN0b3JlLmRpc3BhdGNoKElSKHtleHBlcmltZW50SWRzOnQscmVxdWVzdGVkRXhwZXJpbWVudElkczplfSkpLEV0KG51bGwpKSkpLEl0KCgoKT0+bnVsbCkpKX1tYXliZVdhaXRGb3JSdW5zQW5kR2V0UnVucyh0KXtyZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QocE4se2V4cGVyaW1lbnRJZDp0fSkucGlwZShjZSgodD0+dC5zdGF0ZSE9PXlFLkxPQURJTkcpKSxiZSgxKSxadCgodD0+dC5zdGF0ZT09PXlFLkZBSUxFRD9SdChuZXcgRXJyb3IoIlBlbmRpbmcgcmVxdWVzdCBmYWlsZWQiKSk6RXQodCkpKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChsTix7ZXhwZXJpbWVudElkOnR9KSksSXQoKChbLGVdKT0+KHtmcm9tUmVtb3RlOiExLGV4cGVyaW1lbnRJZDp0LHJ1bnM6ZX0pKSkpfWZldGNoUnVuc0ZvckV4cGVyaW1lbnQodCl7cmV0dXJuICR0KFt0aGlzLnJ1bnNEYXRhU291cmNlLmZldGNoUnVucyh0KSx0aGlzLnJ1bnNEYXRhU291cmNlLmZldGNoSHBhcmFtc01ldGFkYXRhKHQpXSkucGlwZShJdCgoKFtlLG5dKT0+KHtmcm9tUmVtb3RlOiEwLGV4cGVyaW1lbnRJZDp0LHJ1bnM6ZSxtZXRhZGF0YTpufSkpKSl9fWZ1bmN0aW9uIEhOKHQsZSxuKXtjb25zdCBvPU9iamVjdC5rZXlzKHQpLGk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCksZSkse3ByaXZhdGVSb3V0ZUNvbnRleHRlZFN0YXRlOnt9fSk7cmV0dXJue2luaXRpYWxTdGF0ZTppLHJlZHVjZXJzOnlrKGksYmsoZFMsKChlLHtiZWZvcmU6aSxhZnRlcjphfSk9Pntjb25zdCByPVFrKGEucm91dGVLaW5kLGEucGFyYW1zKSxzPWk/UWsoaS5yb3V0ZUtpbmQsaS5wYXJhbXMpOm51bGw7aWYocz09PXIpcmV0dXJuIGU7bGV0IGw9T2JqZWN0LmFzc2lnbih7fSxlLnByaXZhdGVSb3V0ZUNvbnRleHRlZFN0YXRlKTtpZihzKXtjb25zdCB0PXt9O2Zvcihjb25zdCBuIG9mIG8pdFtuXT1lW25dO2w9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGwpLHtbc106dH0pfWxldCBjPWUucHJpdmF0ZVJvdXRlQ29udGV4dGVkU3RhdGUmJmUucHJpdmF0ZVJvdXRlQ29udGV4dGVkU3RhdGVbcl0/ZS5wcml2YXRlUm91dGVDb250ZXh0ZWRTdGF0ZVtyXTpudWxsO3MmJm51bGw9PT1jJiYoYz10KTtjb25zdCBkPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLGMpLHtwcml2YXRlUm91dGVDb250ZXh0ZWRTdGF0ZTpsfSk7cmV0dXJuIG4/bihkLGEpOmR9KSkpfX12YXIgRk4sTE47ZnVuY3Rpb24gQk4oLi4udCl7cmV0dXJuKGUsbik9PntsZXQgbz1lO2Zvcihjb25zdCBlIG9mIHQpbz1lKG8sbik7cmV0dXJuIG99fUlOLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJTikodnIoU2spLHZyKEl3KSx2cihYUikpfSxJTi7JtXByb3Y9TW4oe3Rva2VuOklOLGZhY3Rvcnk6SU4uybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElOLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTa30se3R5cGU6SXd9LHt0eXBlOlhSfV19KSxudWxsKSwoZnVuY3Rpb24odCl7dC5BU0M9ImFzYyIsdC5ERVNDPSJkZXNjIix0LlVOU0VUPSIifSkoRk58fChGTj17fSkpLChmdW5jdGlvbih0KXt0LkVYUEVSSU1FTlRfSUQ9ImlkIix0LlVTRVI9InVzZXIiLHQuQkVGT1JFPSJiZWZvcmUiLHQuQUZURVI9ImFmdGVyIix0LlJFR0VYPSJyZWdleCJ9KShMTnx8KExOPXt9KSk7Y29uc3R7aW5pdGlhbFN0YXRlOlZOLHJlZHVjZXJzOmpOfT1ITih7cnVuQ29sb3JPdmVycmlkZUZvckdyb3VwQnk6bmV3IE1hcCxkZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnk6bmV3IE1hcCxncm91cEtleVRvQ29sb3JJZDpuZXcgTWFwLGluaXRpYWxHcm91cEJ5OntrZXk6dE4uUlVOfSx1c2VyU2V0R3JvdXBCeUtleTpudWxsLGNvbG9yR3JvdXBSZWdleFN0cmluZzoiIixyZWdleEZpbHRlcjoiIn0se3J1bklkczp7fSxydW5JZFRvRXhwSWQ6e30scnVuTWV0YWRhdGE6e30scnVuc0xvYWRTdGF0ZTp7fSxzZWxlY3Rpb25TdGF0ZTpuZXcgTWFwfSwoKHQsZSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7aW5pdGlhbEdyb3VwQnk6e2tleTplLnJvdXRlS2luZD09PVprLkNPTVBBUkVfRVhQRVJJTUVOVD90Ti5FWFBFUklNRU5UOnROLlJVTn19KSkpLFVOPUJOKHlrKFZOLGJrKHJTLCgodCx7cm91dGVLaW5kOmUscGFydGlhbFN0YXRlOm59KT0+e3ZhciBvO2lmKGUhPT1aay5DT01QQVJFX0VYUEVSSU1FTlQmJmUhPT1aay5FWFBFUklNRU5UKXJldHVybiB0O2NvbnN0IGk9bi5ydW5zLmdyb3VwQnk7aWYoIWkpcmV0dXJuIHQ7Y29uc3QgYT1pLmtleT09PXROLlJFR0VYP2kucmVnZXhTdHJpbmc6dC5jb2xvckdyb3VwUmVnZXhTdHJpbmc7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y29sb3JHcm91cFJlZ2V4U3RyaW5nOmEsdXNlclNldEdyb3VwQnlLZXk6bnVsbCE9PShvPWkua2V5KSYmdm9pZCAwIT09bz9vOm51bGx9KX0pKSxiayhOUiwoKHQsZSk9Pntjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sdC5ydW5zTG9hZFN0YXRlKTtmb3IoY29uc3QgdCBvZiBlLnJlcXVlc3RlZEV4cGVyaW1lbnRJZHMpblt0XT1uW3RdP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuW3RdKSx7c3RhdGU6eUUuTE9BRElOR30pOntsYXN0TG9hZGVkVGltZUluTXM6bnVsbCxzdGF0ZTp5RS5MT0FESU5HfTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtydW5zTG9hZFN0YXRlOm59KX0pKSxiayh6UiwoKHQsZSk9Pnt2YXIgbjtjb25zdCBvPU9iamVjdC5hc3NpZ24oe30sdC5ydW5JZHMpLGk9T2JqZWN0LmFzc2lnbih7fSx0LnJ1bk1ldGFkYXRhKSxhPU9iamVjdC5hc3NpZ24oe30sdC5ydW5JZFRvRXhwSWQpLHI9T2JqZWN0LmFzc2lnbih7fSx0LnJ1bnNMb2FkU3RhdGUpLHM9bmV3IE1hcCh0LnNlbGVjdGlvblN0YXRlKTtmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhlLm5ld1J1bnNBbmRNZXRhZGF0YSkpe2NvbnN0e3J1bnM6bixtZXRhZGF0YTpzfT1lLm5ld1J1bnNBbmRNZXRhZGF0YVt0XTtvW3RdPW4ubWFwKCgoe2lkOnR9KT0+dCkpLHJbdF09T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHJbdF0pLHtsYXN0TG9hZGVkVGltZUluTXM6RGF0ZS5ub3coKSxzdGF0ZTp5RS5MT0FERUR9KTtmb3IoY29uc3QgZSBvZiBuKXtjb25zdCBuPXMucnVuVG9IcGFyYW1zQW5kTWV0cmljc1tlLmlkXTtpW2UuaWRdPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7aHBhcmFtczpuP24uaHBhcmFtczpudWxsLG1ldHJpY3M6bj9uLm1ldHJpY3M6bnVsbH0pLGFbZS5pZF09dH19Y29uc3QgbD1lTihlLmV4cGVyaW1lbnRJZHMpLGM9bmV3IE1hcChudWxsIT09KG49cy5nZXQobCkpJiZ2b2lkIDAhPT1uP246W10pLGQ9ZS5ydW5zRm9yQWxsRXhwZXJpbWVudHMubGVuZ3RoPD01MDA7Zm9yKGNvbnN0IHQgb2YgZS5ydW5zRm9yQWxsRXhwZXJpbWVudHMpYy5oYXModC5pZCl8fGMuc2V0KHQuaWQsZCk7cmV0dXJuIHMuc2V0KGwsYyksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtydW5JZHM6byxydW5JZFRvRXhwSWQ6YSxydW5NZXRhZGF0YTppLHJ1bnNMb2FkU3RhdGU6cixzZWxlY3Rpb25TdGF0ZTpzfSl9KSksYmsoSVIsKCh0LGUpPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LHQucnVuc0xvYWRTdGF0ZSk7Zm9yKGNvbnN0IHQgb2YgZS5yZXF1ZXN0ZWRFeHBlcmltZW50SWRzKW5bdF09blt0XT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sblt0XSkse3N0YXRlOnlFLkZBSUxFRH0pOntsYXN0TG9hZGVkVGltZUluTXM6bnVsbCxzdGF0ZTp5RS5GQUlMRUR9O3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3J1bnNMb2FkU3RhdGU6bn0pfSkpLGJrKEhSLCgodCx7ZXhwZXJpbWVudElkczplLHJ1bklkOm59KT0+e3ZhciBvO2NvbnN0IGk9ZU4oZSksYT1uZXcgTWFwKHQuc2VsZWN0aW9uU3RhdGUpLHI9bmV3IE1hcChudWxsIT09KG89YS5nZXQoaSkpJiZ2b2lkIDAhPT1vP286W10pO3JldHVybiByLnNldChuLCFCb29sZWFuKHIuZ2V0KG4pKSksYS5zZXQoaSxyKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NlbGVjdGlvblN0YXRlOmF9KX0pKSxiayhGUiwoKHQse2V4cGVyaW1lbnRJZHM6ZSxydW5JZHM6bn0pPT57dmFyIG87Y29uc3QgaT1lTihlKSxhPW5ldyBNYXAodC5zZWxlY3Rpb25TdGF0ZSkscj1uZXcgTWFwKG51bGwhPT0obz1hLmdldChpKSkmJnZvaWQgMCE9PW8/bzpbXSkscz0hbi5ldmVyeSgodD0+Qm9vbGVhbihyLmdldCh0KSkpKTtmb3IoY29uc3QgdCBvZiBuKXIuc2V0KHQscyk7cmV0dXJuIGEuc2V0KGksciksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZWxlY3Rpb25TdGF0ZTphfSl9KSksYmsoelIsKCh0LHtydW5zRm9yQWxsRXhwZXJpbWVudHM6ZX0pPT57Y29uc3Qgbj1uZXcgTWFwKHQuZ3JvdXBLZXlUb0NvbG9ySWQpLG89bmV3IE1hcCh0LmRlZmF1bHRSdW5Db2xvcklkRm9yR3JvdXBCeSk7bGV0IGk9dC5pbml0aWFsR3JvdXBCeTtudWxsIT09dC51c2VyU2V0R3JvdXBCeUtleSYmKGk9b04odC51c2VyU2V0R3JvdXBCeUtleSx0LmNvbG9yR3JvdXBSZWdleFN0cmluZykpO2NvbnN0IGE9bk4oaSxlLHQucnVuSWRUb0V4cElkKTtPYmplY3QuZW50cmllcyhhLm1hdGNoZXMpLmZvckVhY2goKChbdCxlXSk9Pnt2YXIgaTtjb25zdCBhPW51bGwhPT0oaT1uLmdldCh0KSkmJnZvaWQgMCE9PWk/aTpuLnNpemU7bi5zZXQodCxhKTtmb3IoY29uc3QgdCBvZiBlKW8uc2V0KHQuaWQsYSl9KSk7Zm9yKGNvbnN0IHQgb2YgYS5ub25NYXRjaGVzKW8uc2V0KHQuaWQsLTEpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2RlZmF1bHRSdW5Db2xvcklkRm9yR3JvdXBCeTpvLGdyb3VwS2V5VG9Db2xvcklkOm59KX0pKSxiayhHUiwoKHQse2V4cGVyaW1lbnRJZHM6ZSxncm91cEJ5Om59KT0+e2NvbnN0IG89bmV3IE1hcCxpPW5ldyBNYXAodC5kZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnkpLGE9bk4obixlLmZsYXRNYXAoKGU9PnQucnVuSWRzW2VdKSkubWFwKChlPT50LnJ1bk1ldGFkYXRhW2VdKSksdC5ydW5JZFRvRXhwSWQpO09iamVjdC5lbnRyaWVzKGEubWF0Y2hlcykuZm9yRWFjaCgoKFt0LGVdKT0+e3ZhciBuO2NvbnN0IGE9bnVsbCE9PShuPW8uZ2V0KHQpKSYmdm9pZCAwIT09bj9uOm8uc2l6ZTtvLnNldCh0LGEpO2Zvcihjb25zdCB0IG9mIGUpaS5zZXQodC5pZCxhKX0pKTtmb3IoY29uc3QgdCBvZiBhLm5vbk1hdGNoZXMpaS5zZXQodC5pZCwtMSk7Y29uc3Qgcj1uLmtleT09PXROLlJFR0VYP24ucmVnZXhTdHJpbmc6dC5jb2xvckdyb3VwUmVnZXhTdHJpbmc7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y29sb3JHcm91cFJlZ2V4U3RyaW5nOnIsdXNlclNldEdyb3VwQnlLZXk6bi5rZXksZGVmYXVsdFJ1bkNvbG9ySWRGb3JHcm91cEJ5OmksZ3JvdXBLZXlUb0NvbG9ySWQ6byxydW5Db2xvck92ZXJyaWRlRm9yR3JvdXBCeTpuZXcgTWFwfSl9KSksYmsoalIsKCh0LHtydW5JZDplLG5ld0NvbG9yOm59KT0+e2NvbnN0IG89bmV3IE1hcCh0LnJ1bkNvbG9yT3ZlcnJpZGVGb3JHcm91cEJ5KTtyZXR1cm4gby5zZXQoZSxuKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3J1bkNvbG9yT3ZlcnJpZGVGb3JHcm91cEJ5Om99KX0pKSxiayhWUiwoKHQsZSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cmVnZXhGaWx0ZXI6ZS5yZWdleFN0cmluZ30pKSkpLGpOKSxHTj17a2V5Om51bGwsZGlyZWN0aW9uOkZOLlVOU0VUfSx7aW5pdGlhbFN0YXRlOldOLHJlZHVjZXJzOllOfT1ITih7cGFnaW5hdGlvbk9wdGlvbjp7cGFnZUluZGV4OjAscGFnZVNpemU6MTB9LHNvcnQ6R059LHt9KSxxTj1CTih5ayhXTixiayhMUiwoKHQse3BhZ2VTaXplOmUscGFnZUluZGV4Om59KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwYWdpbmF0aW9uT3B0aW9uOntwYWdlU2l6ZTplLHBhZ2VJbmRleDpufX0pKSksYmsoVlIsKCh0LGUpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BhZ2luYXRpb25PcHRpb246T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucGFnaW5hdGlvbk9wdGlvbikse3BhZ2VJbmRleDowfSl9KSkpLGJrKEJSLCgodCxlKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzb3J0OntrZXk6ZS5rZXksZGlyZWN0aW9uOmUuZGlyZWN0aW9ufX0pKSkpLFlOKTtmdW5jdGlvbiBaTih0LGUpe3JldHVybiB4dyh7ZGF0YTpVTix1aTpxTn0pKHQsZSl9ZnVuY3Rpb24gWE4oKXtyZXR1cm5be2FjdGlvbkNyZWF0b3I6SVIsYWxlcnRGcm9tQWN0aW9uOigpPT4oe2xvY2FsaXplZE1lc3NhZ2U6IkZhaWxlZCB0byBmZXRjaCBydW5zIn0pfV19Y2xhc3MgS057fXZhciBKTjtLTi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8S04pfSxLTi7JtW1vZD1hbyh7dHlwZTpLTn0pLEtOLsm1aW5qPXZuKHtpbXBvcnRzOltbZGsuZm9yRmVhdHVyZShRVCxaTiksV2suZm9yRmVhdHVyZShbSU5dKSxsQSxBUi5yZWdpc3RlckFsZXJ0QWN0aW9ucyhYTiksYUFdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoS04sW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltkay5mb3JGZWF0dXJlKFFULFpOKSxXay5mb3JGZWF0dXJlKFtJTl0pLGxBLEFSLnJlZ2lzdGVyQWxlcnRBY3Rpb25zKFhOKSxhQV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhLTix7aW1wb3J0czpbY2ssR2ssbEEsQVIsYUFdfSksKGZ1bmN0aW9uKHQpe3QuUlVOU19DSEFOR0VEPSJleHBlcmltZW50YWwuUnVuc0NoYW5nZWQiLHQuR0VUX1JVTlM9ImV4cGVyaW1lbnRhbC5HZXRSdW5zIix0LkdFVF9VUkxfREFUQT0iZXhwZXJpbWVudGFsLkdldFVSTFBsdWdpbkRhdGEiLHQuREFUQV9SRUxPQURFRD0iZXhwZXJpbWVudGFsLkRhdGFSZWxvYWRlZCJ9KShKTnx8KEpOPXt9KSk7Y2xhc3MgUU57Y29uc3RydWN0b3IodCl7dGhpcy5wb3J0PXQsdGhpcy5pZD0wLHRoaXMucmVzcG9uc2VXYWl0cz1uZXcgTWFwLHRoaXMubGlzdGVuZXJzPW5ldyBNYXAsdGhpcy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh0PT50aGlzLm9uTWVzc2FnZSh0KSkpfWxpc3Rlbih0LGUpe3RoaXMubGlzdGVuZXJzLnNldCh0LGUpfXVubGlzdGVuKHQpe3RoaXMubGlzdGVuZXJzLmRlbGV0ZSh0KX1vbk1lc3NhZ2UodCl7cmV0dXJuIGdBKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT1KU09OLnBhcnNlKHQuZGF0YSksbj1lLnR5cGUsbz1lLmlkLGk9ZS5wYXlsb2FkLGE9ZS5lcnJvcjtpZihlLmlzUmVwbHkpe2lmKCF0aGlzLnJlc3BvbnNlV2FpdHMuaGFzKG8pKXJldHVybjtjb25zdHtyZXNvbHZlOnQscmVqZWN0OmV9PXRoaXMucmVzcG9uc2VXYWl0cy5nZXQobyk7cmV0dXJuIHRoaXMucmVzcG9uc2VXYWl0cy5kZWxldGUobyksdm9pZChhP2UobmV3IEVycm9yKGEpKTp0KGkpKX1sZXQgcj1udWxsLHM9bnVsbDtpZih0aGlzLmxpc3RlbmVycy5oYXMobikpe2NvbnN0IHQ9dGhpcy5saXN0ZW5lcnMuZ2V0KG4pO3RyeXtyPXlpZWxkIHQoaSl9Y2F0Y2godCl7cz10fX10aGlzLnBvc3RNZXNzYWdlKHt0eXBlOm4saWQ6byxwYXlsb2FkOnIsZXJyb3I6cyxpc1JlcGx5OiEwfSl9KSl9cG9zdE1lc3NhZ2UodCl7dGhpcy5wb3J0LnBvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHQpKX1zZW5kTWVzc2FnZSh0LGUpe2NvbnN0IG49dGhpcy5pZCsrO3JldHVybiB0aGlzLnBvc3RNZXNzYWdlKHt0eXBlOnQsaWQ6bixwYXlsb2FkOmUsZXJyb3I6bnVsbCxpc1JlcGx5OiExfSksbmV3IFByb21pc2UoKCh0LGUpPT57dGhpcy5yZXNwb25zZVdhaXRzLnNldChuLHtyZXNvbHZlOnQscmVqZWN0OmV9KX0pKX19Y29uc3QgJE49bmV3IFdlYWtNYXAsdHo9bmV3IFNldCxlej1uZXcgTWFwLG56PW5ldyBNYXA7ZnVuY3Rpb24gb3oodCxlKXtyZXR1cm4gbj0+e2NvbnN0IG89bnouZ2V0KGUpLGk9JE4uZ2V0KG8pfHxudWxsO3JldHVybiB0KGksbil9fXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwodD0+e2lmKCJleHBlcmltZW50YWwuYm9vdHN0cmFwIiE9PXQuZGF0YSlyZXR1cm47Y29uc3QgZT10LnBvcnRzWzBdO2lmKCFlKXJldHVybjtjb25zdCBuPXQuc291cmNlP3Quc291cmNlLmZyYW1lRWxlbWVudDpudWxsO24mJihmdW5jdGlvbiBvKHQsZSl7Y29uc3Qgbj1uZXcgUU4odCk7dHouYWRkKG4pLG56LnNldChuLGUpLHQuc3RhcnQoKTtmb3IoY29uc3RbdCxlXW9mIGV6KXtjb25zdCBvPW96KGUsbik7bi5saXN0ZW4odCxvKX19KShlLG4pfSkpO2NsYXNzIGl6e2Jyb2FkY2FzdCh0LGUpe3JldHVybihmdW5jdGlvbiBuKHQsZSl7Zm9yKGNvbnN0IHQgb2YgdHopbnouZ2V0KHQpLmlzQ29ubmVjdGVkfHwodHouZGVsZXRlKHQpLG56LmRlbGV0ZSh0KSk7Y29uc3Qgbj1bLi4udHpdLm1hcCgobj0+bi5zZW5kTWVzc2FnZSh0LGUpKSk7cmV0dXJuIFByb21pc2UuYWxsKG4pfSkodCxlKX1saXN0ZW4odCxlKXshKGZ1bmN0aW9uIG4odCxlKXtlei5zZXQodCxlKTtmb3IoY29uc3QgbiBvZiB0eil7Y29uc3Qgbz1veihlLG4pO24ubGlzdGVuKHQsbyl9fSkodCxlKX11bmxpc3Rlbih0KXshKGZ1bmN0aW9uIGUodCl7ZXouZGVsZXRlKHQpO2Zvcihjb25zdCBlIG9mIHR6KWUudW5saXN0ZW4odCl9KSh0KX19aXouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGl6KX0saXouybVwcm92PU1uKHt0b2tlbjppeixmYWN0b3J5Oml6Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChpeixbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIGF6e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5pcGM9dCx0aGlzLnN0b3JlPWV9aW5pdCgpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGYtc3RvcmFnZSIpO3RoaXMuaXBjLmxpc3RlbihKTi5HRVRfVVJMX0RBVEEsKGU9PntpZighZSlyZXR1cm47Y29uc3Qgbj1gcC4ke2UucGx1Z2luTmFtZX0uYCxvPXt9LGk9dC50Zl9zdG9yYWdlLmdldFVybEhhc2hEaWN0KCk7Zm9yKGxldCB0IGluIGkpdC5zdGFydHNXaXRoKG4pJiYob1t0LnN1YnN0cmluZyhuLmxlbmd0aCldPWlbdF0pO3JldHVybiBvfSkpLHRoaXMuc3RvcmUuc2VsZWN0KENSKS5waXBlKGNlKCh0PT5udWxsIT09dCkpLE1lKCkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLmlwYy5icm9hZGNhc3QoSk4uREFUQV9SRUxPQURFRCx2b2lkIDApfSkpfX1hei7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YXopKHZyKGl6KSx2cihJdykpfSxhei7JtXByb3Y9TW4oe3Rva2VuOmF6LGZhY3Rvcnk6YXouybVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGF6LFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppen0se3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIHJ6e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5pcGM9dCx0aGlzLnN0b3JlPWV9aW5pdCgpe2NvbnN0IHQ9dGhpcy5zdG9yZS5zZWxlY3QoVFMpLnBpcGUoWnQoKHQ9PnQ/V3QodC5tYXAoKHQ9PnRoaXMuc3RvcmUuc2VsZWN0KGxOLHtleHBlcmltZW50SWQ6dH0pKSkpLnBpcGUoSXQoKHQ9PnQuZmxhdCgpKSksTWUoKCh0LGUpPT50Lmxlbmd0aD09PWUubGVuZ3RoJiZ0LmV2ZXJ5KCgodCxuKT0+ZVtuXS5pZD09PXQuaWQpKSkpLEl0KCh0PT50Lm1hcCgoKHtuYW1lOnR9KT0+dCkpKSkpOkV0KFtdKSkpKTt0LnN1YnNjcmliZSgodD0+e3RoaXMuaXBjLmJyb2FkY2FzdChKTi5SVU5TX0NIQU5HRUQsdCl9KSksdGhpcy5pcGMubGlzdGVuKEpOLkdFVF9SVU5TLCgoKT0+dC5waXBlKGJlKDEpKS50b1Byb21pc2UoKSkpfX1yei7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cnopKHZyKGl6KSx2cihJdykpfSxyei7JtXByb3Y9TW4oe3Rva2VuOnJ6LGZhY3Rvcnk6cnouybVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHJ6LFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppen0se3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIHN6e2NvbnN0cnVjdG9yKHQsZSl7ZS5pbml0KCksdC5pbml0KCl9cmVnaXN0ZXJQbHVnaW5JZnJhbWUodCxlKXshKGZ1bmN0aW9uIG4odCxlKXskTi5zZXQodCx7cGx1Z2luTmFtZTplfSl9KSh0LGUpfX1zei7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8c3opKHZyKHJ6KSx2cihheikpfSxzei7JtW1vZD1hbyh7dHlwZTpzen0pLHN6Lsm1aW5qPXZuKHtwcm92aWRlcnM6W2l6LGF6LHJ6XSxpbXBvcnRzOltbQlMsRVIsS05dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoc3osW3t0eXBlOkF5LGFyZ3M6W3twcm92aWRlcnM6W2l6LGF6LHJ6XSxpbXBvcnRzOltCUyxFUixLTl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpyen0se3R5cGU6YXp9XX0pLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oc3ose2ltcG9ydHM6W0JTLEVSLEtOXX0pO2NvbnN0IGx6PUpQKCJbQWxlcnRdIEFsZXJ0IFJlcG9ydGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSk7Y2xhc3MgY3p7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5hbGVydEFjdGlvbk1vZHVsZT1uLHRoaXMucmVwb3J0UmVnaXN0ZXJlZEFjdGlvbkFsZXJ0cyQ9TWsoKCgpPT50aGlzLmFjdGlvbnMkLnBpcGUoRmUoKHQ9Pntjb25zdCBlPXRoaXMuYWxlcnRBY3Rpb25Nb2R1bGUuZ2V0QWxlcnRGcm9tQWN0aW9uKHQpO2UmJnRoaXMuc3RvcmUuZGlzcGF0Y2gobHooZSkpfSkpKSkse2Rpc3BhdGNoOiExfSl9fWN6Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjeikodnIoU2spLHZyKEl3KSx2cihBUikpfSxjei7JtXByb3Y9TW4oe3Rva2VuOmN6LGZhY3Rvcnk6Y3ouybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGN6LFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTa30se3R5cGU6SXd9LHt0eXBlOkFSfV19KSxudWxsKTtjb25zdCBkej15ayh7bGF0ZXN0QWxlcnQ6bnVsbH0sYmsobHosKCh0LHtsb2NhbGl6ZWRNZXNzYWdlOmUsZm9sbG93dXBBY3Rpb246bn0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2xhdGVzdEFsZXJ0Ontsb2NhbGl6ZWRNZXNzYWdlOmUsZm9sbG93dXBBY3Rpb246bixjcmVhdGVkOkRhdGUubm93KCl9fSkpKSk7ZnVuY3Rpb24gcHoodCxlKXtyZXR1cm4gZHoodCxlKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgbXo9MTMsdXo9MjcsZno9MzIsZ3o9MzgsaHo9NDA7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBieih0LC4uLmUpe3JldHVybiBlLmxlbmd0aD9lLnNvbWUoKGU9PnRbZV0pKTp0LmFsdEtleXx8dC5zaGlmdEtleXx8dC5jdHJsS2V5fHx0Lm1ldGFLZXl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHl6KHQpe3JldHVybiBudWxsIT10JiYiZmFsc2UiIT1gJHt0fWB9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIF96KHQsZT0wKXtyZXR1cm4gQ3oodCk/TnVtYmVyKHQpOmV9ZnVuY3Rpb24gQ3oodCl7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQodCkpJiYhaXNOYU4oTnVtYmVyKHQpKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gTXoodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDpbdF19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHZ6KHQpe3JldHVybiBudWxsPT10PyIiOiJzdHJpbmciPT10eXBlb2YgdD90OmAke3R9cHhgfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB4eih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGhnP3QubmF0aXZlRWxlbWVudDp0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgT3osUHo7dHJ5e096PSJ1bmRlZmluZWQiIT10eXBlb2YgSW50bCYmSW50bC52OEJyZWFrSXRlcmF0b3J9Y2F0Y2goakN0KXtPej0hMX1jbGFzcyB3entjb25zdHJ1Y3Rvcih0KXt0aGlzLl9wbGF0Zm9ybUlkPXQsdGhpcy5pc0Jyb3dzZXI9dGhpcy5fcGxhdGZvcm1JZD8oZnVuY3Rpb24gZSh0KXtyZXR1cm4iYnJvd3NlciI9PT10fSkodGhpcy5fcGxhdGZvcm1JZCk6Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmISFkb2N1bWVudCx0aGlzLkVER0U9dGhpcy5pc0Jyb3dzZXImJi8oZWRnZSkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHRoaXMuVFJJREVOVD10aGlzLmlzQnJvd3NlciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx0aGlzLkJMSU5LPXRoaXMuaXNCcm93c2VyJiYhKCF3aW5kb3cuY2hyb21lJiYhT3opJiYidW5kZWZpbmVkIiE9dHlwZW9mIENTUyYmIXRoaXMuRURHRSYmIXRoaXMuVFJJREVOVCx0aGlzLldFQktJVD10aGlzLmlzQnJvd3NlciYmL0FwcGxlV2ViS2l0L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXRoaXMuQkxJTksmJiF0aGlzLkVER0UmJiF0aGlzLlRSSURFTlQsdGhpcy5JT1M9dGhpcy5pc0Jyb3dzZXImJi9pUGFkfGlQaG9uZXxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhKCJNU1N0cmVhbSJpbiB3aW5kb3cpLHRoaXMuRklSRUZPWD10aGlzLmlzQnJvd3NlciYmLyhmaXJlZm94fG1pbmVmaWVsZCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHRoaXMuQU5EUk9JRD10aGlzLmlzQnJvd3NlciYmL2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhdGhpcy5UUklERU5ULHRoaXMuU0FGQVJJPXRoaXMuaXNCcm93c2VyJiYvc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmdGhpcy5XRUJLSVR9fXd6Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx3eikodnIoankpKX0sd3ouybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IHd6KHZyKGp5KSl9LHRva2VuOnd6LHByb3ZpZGVkSW46InJvb3QifSksd3ouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpPYmplY3QsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbanldfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHd6LFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpPYmplY3QsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbanldfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3Mga3p7fWt6Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxreil9LGt6Lsm1bW9kPWFvKHt0eXBlOmt6fSksa3ouybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoa3osW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLG51bGwsbnVsbCk7Y29uc3QgU3o9WyJjb2xvciIsImJ1dHRvbiIsImNoZWNrYm94IiwiZGF0ZSIsImRhdGV0aW1lLWxvY2FsIiwiZW1haWwiLCJmaWxlIiwiaGlkZGVuIiwiaW1hZ2UiLCJtb250aCIsIm51bWJlciIsInBhc3N3b3JkIiwicmFkaW8iLCJyYW5nZSIsInJlc2V0Iiwic2VhcmNoIiwic3VibWl0IiwidGVsIiwidGV4dCIsInRpbWUiLCJ1cmwiLCJ3ZWVrIl07ZnVuY3Rpb24gRHooKXtpZihQeilyZXR1cm4gUHo7aWYoIm9iamVjdCIhPXR5cGVvZiBkb2N1bWVudHx8IWRvY3VtZW50KXJldHVybiBQej1uZXcgU2V0KFN6KSxQejtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3JldHVybiBQej1uZXcgU2V0KFN6LmZpbHRlcigoZT0+KHQuc2V0QXR0cmlidXRlKCJ0eXBlIixlKSx0LnR5cGU9PT1lKSkpKSxQen0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IEV6LFJ6LEF6LFR6O2Z1bmN0aW9uIE56KHQpe3JldHVybihmdW5jdGlvbiBlKCl7aWYobnVsbD09RXomJiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXRyeXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6KCk9PkV6PSEwfSkpfWZpbmFsbHl7RXo9RXp8fCExfXJldHVybiBFen0pKCk/dDohIXQuY2FwdHVyZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24genooKXtpZihudWxsPT1Beil7aWYoIm9iamVjdCIhPXR5cGVvZiBkb2N1bWVudHx8IWRvY3VtZW50fHwiZnVuY3Rpb24iIT10eXBlb2YgRWxlbWVudHx8IUVsZW1lbnQpcmV0dXJuIEF6PSExLEF6O2lmKCJzY3JvbGxCZWhhdmlvciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUpQXo9ITA7ZWxzZXtjb25zdCB0PUVsZW1lbnQucHJvdG90eXBlLnNjcm9sbFRvO0F6PSEhdCYmIS9ce1xzKlxbbmF0aXZlIGNvZGVcXVxzKlx9Ly50ZXN0KHQudG9TdHJpbmcoKSl9fXJldHVybiBBen1mdW5jdGlvbiBJeigpe2lmKCJvYmplY3QiIT10eXBlb2YgZG9jdW1lbnR8fCFkb2N1bWVudClyZXR1cm4gMDtpZihudWxsPT1Seil7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPXQuc3R5bGU7dC5kaXI9InJ0bCIsZS53aWR0aD0iMXB4IixlLm92ZXJmbG93PSJhdXRvIixlLnZpc2liaWxpdHk9ImhpZGRlbiIsZS5wb2ludGVyRXZlbnRzPSJub25lIixlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7Y29uc3Qgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxvPW4uc3R5bGU7by53aWR0aD0iMnB4IixvLmhlaWdodD0iMXB4Iix0LmFwcGVuZENoaWxkKG4pLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksUno9MCwwPT09dC5zY3JvbGxMZWZ0JiYodC5zY3JvbGxMZWZ0PTEsUno9MD09PXQuc2Nyb2xsTGVmdD8xOjIpLHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX1yZXR1cm4gUnp9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEh6KHQpe2lmKChmdW5jdGlvbiBlKCl7aWYobnVsbD09VHope2NvbnN0IHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5oZWFkOm51bGw7VHo9ISghdHx8IXQuY3JlYXRlU2hhZG93Um9vdCYmIXQuYXR0YWNoU2hhZG93KX1yZXR1cm4gVHp9KSgpKXtjb25zdCBlPXQuZ2V0Um9vdE5vZGU/dC5nZXRSb290Tm9kZSgpOm51bGw7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTaGFkb3dSb290JiZTaGFkb3dSb290JiZlIGluc3RhbmNlb2YgU2hhZG93Um9vdClyZXR1cm4gZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBGeigpe2xldCB0PSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50P2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ6bnVsbDtmb3IoO3QmJnQuc2hhZG93Um9vdDspe2NvbnN0IGU9dC5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQ7aWYoZT09PXQpYnJlYWs7dD1lfXJldHVybiB0fWZ1bmN0aW9uIEx6KHQpe3JldHVybiB0LmNvbXBvc2VkUGF0aD90LmNvbXBvc2VkUGF0aCgpWzBdOnQudGFyZ2V0fWNsYXNzIEJ6e2NyZWF0ZSh0KXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXI/bnVsbDpuZXcgTXV0YXRpb25PYnNlcnZlcih0KX19QnouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJ6KX0sQnouybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IEJ6fSx0b2tlbjpCeixwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQnosW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sbnVsbCxudWxsKTtjbGFzcyBWentjb25zdHJ1Y3Rvcih0KXt0aGlzLl9tdXRhdGlvbk9ic2VydmVyRmFjdG9yeT10LHRoaXMuX29ic2VydmVkRWxlbWVudHM9bmV3IE1hcH1uZ09uRGVzdHJveSgpe3RoaXMuX29ic2VydmVkRWxlbWVudHMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX2NsZWFudXBPYnNlcnZlcihlKSkpfW9ic2VydmUodCl7Y29uc3QgZT14eih0KTtyZXR1cm4gbmV3IEQoKHQ9Pntjb25zdCBuPXRoaXMuX29ic2VydmVFbGVtZW50KGUpLnN1YnNjcmliZSh0KTtyZXR1cm4oKT0+e24udW5zdWJzY3JpYmUoKSx0aGlzLl91bm9ic2VydmVFbGVtZW50KGUpfX0pKX1fb2JzZXJ2ZUVsZW1lbnQodCl7aWYodGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5oYXModCkpdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQodCkuY291bnQrKztlbHNle2NvbnN0IGU9bmV3IEksbj10aGlzLl9tdXRhdGlvbk9ic2VydmVyRmFjdG9yeS5jcmVhdGUoKHQ9PmUubmV4dCh0KSkpO24mJm4ub2JzZXJ2ZSh0LHtjaGFyYWN0ZXJEYXRhOiEwLGNoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSksdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5zZXQodCx7b2JzZXJ2ZXI6bixzdHJlYW06ZSxjb3VudDoxfSl9cmV0dXJuIHRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KHQpLnN0cmVhbX1fdW5vYnNlcnZlRWxlbWVudCh0KXt0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmhhcyh0KSYmKHRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KHQpLmNvdW50LS0sdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQodCkuY291bnR8fHRoaXMuX2NsZWFudXBPYnNlcnZlcih0KSl9X2NsZWFudXBPYnNlcnZlcih0KXtpZih0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmhhcyh0KSl7Y29uc3R7b2JzZXJ2ZXI6ZSxzdHJlYW06bn09dGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQodCk7ZSYmZS5kaXNjb25uZWN0KCksbi5jb21wbGV0ZSgpLHRoaXMuX29ic2VydmVkRWxlbWVudHMuZGVsZXRlKHQpfX19VnouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZ6KSh2cihCeikpfSxWei7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgVnoodnIoQnopKX0sdG9rZW46VnoscHJvdmlkZWRJbjoicm9vdCJ9KSxWei5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkJ6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWeixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Qnp9XX0pLG51bGwpO2NsYXNzIGp6e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9jb250ZW50T2JzZXJ2ZXI9dCx0aGlzLl9lbGVtZW50UmVmPWUsdGhpcy5fbmdab25lPW4sdGhpcy5ldmVudD1uZXcgTGgsdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5fY3VycmVudFN1YnNjcmlwdGlvbj1udWxsfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9eXoodCksdGhpcy5fZGlzYWJsZWQ/dGhpcy5fdW5zdWJzY3JpYmUoKTp0aGlzLl9zdWJzY3JpYmUoKX1nZXQgZGVib3VuY2UoKXtyZXR1cm4gdGhpcy5fZGVib3VuY2V9c2V0IGRlYm91bmNlKHQpe3RoaXMuX2RlYm91bmNlPV96KHQpLHRoaXMuX3N1YnNjcmliZSgpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2N1cnJlbnRTdWJzY3JpcHRpb258fHRoaXMuZGlzYWJsZWR8fHRoaXMuX3N1YnNjcmliZSgpfW5nT25EZXN0cm95KCl7dGhpcy5fdW5zdWJzY3JpYmUoKX1fc3Vic2NyaWJlKCl7dGhpcy5fdW5zdWJzY3JpYmUoKTtjb25zdCB0PXRoaXMuX2NvbnRlbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYpO3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0aGlzLl9jdXJyZW50U3Vic2NyaXB0aW9uPSh0aGlzLmRlYm91bmNlP3QucGlwZShnZSh0aGlzLmRlYm91bmNlKSk6dCkuc3Vic2NyaWJlKHRoaXMuZXZlbnQpfSkpfV91bnN1YnNjcmliZSgpe3ZhciB0O251bGw9PT0odD10aGlzLl9jdXJyZW50U3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dHx8dC51bnN1YnNjcmliZSgpfX1qei7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8anopKFNtKFZ6KSxTbShoZyksU20oYV8pKX0sanouybVkaXI9bG8oe3R5cGU6anosc2VsZWN0b3JzOltbIiIsImNka09ic2VydmVDb250ZW50IiwiIl1dLGlucHV0czp7ZGlzYWJsZWQ6WyJjZGtPYnNlcnZlQ29udGVudERpc2FibGVkIiwiZGlzYWJsZWQiXSxkZWJvdW5jZToiZGVib3VuY2UifSxvdXRwdXRzOntldmVudDoiY2RrT2JzZXJ2ZUNvbnRlbnQifSxleHBvcnRBczpbImNka09ic2VydmVDb250ZW50Il19KSxqei5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlZ6fSx7dHlwZTpoZ30se3R5cGU6YV99XSxqei5wcm9wRGVjb3JhdG9ycz17ZXZlbnQ6W3t0eXBlOk95LGFyZ3M6WyJjZGtPYnNlcnZlQ29udGVudCJdfV0sZGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJjZGtPYnNlcnZlQ29udGVudERpc2FibGVkIl19XSxkZWJvdW5jZTpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChqeixbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrT2JzZXJ2ZUNvbnRlbnRdIixleHBvcnRBczoiY2RrT2JzZXJ2ZUNvbnRlbnQifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Vnp9LHt0eXBlOmhnfSx7dHlwZTphX31dfSkse2V2ZW50Olt7dHlwZTpPeSxhcmdzOlsiY2RrT2JzZXJ2ZUNvbnRlbnQiXX1dLGRpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsiY2RrT2JzZXJ2ZUNvbnRlbnREaXNhYmxlZCJdfV0sZGVib3VuY2U6W3t0eXBlOnh5fV19KTtjbGFzcyBVent9ZnVuY3Rpb24gR3oodCxlKXtyZXR1cm4odC5nZXRBdHRyaWJ1dGUoZSl8fCIiKS5tYXRjaCgvXFMrL2cpfHxbXX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovVXouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFV6KX0sVXouybVtb2Q9YW8oe3R5cGU6VXp9KSxVei7JtWluaj12bih7cHJvdmlkZXJzOltCel19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFV6LFt7dHlwZTpBeSxhcmdzOlt7ZXhwb3J0czpbanpdLGRlY2xhcmF0aW9uczpbanpdLHByb3ZpZGVyczpbQnpdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVXose2RlY2xhcmF0aW9uczpbanpdLGV4cG9ydHM6W2p6XX0pO2NvbnN0IFd6PSJjZGstZGVzY3JpYmVkYnktbWVzc2FnZS1jb250YWluZXIiLFl6PSJjZGstZGVzY3JpYmVkYnktaG9zdCI7bGV0IHF6PTA7Y29uc3QgWno9bmV3IE1hcDtsZXQgWHo9bnVsbDtjbGFzcyBLentjb25zdHJ1Y3Rvcih0KXt0aGlzLl9kb2N1bWVudD10fWRlc2NyaWJlKHQsZSxuKXtpZighdGhpcy5fY2FuQmVEZXNjcmliZWQodCxlKSlyZXR1cm47Y29uc3Qgbz1KeihlLG4pOyJzdHJpbmciIT10eXBlb2YgZT8oUXooZSksWnouc2V0KG8se21lc3NhZ2VFbGVtZW50OmUscmVmZXJlbmNlQ291bnQ6MH0pKTpaei5oYXMobyl8fHRoaXMuX2NyZWF0ZU1lc3NhZ2VFbGVtZW50KGUsbiksdGhpcy5faXNFbGVtZW50RGVzY3JpYmVkQnlNZXNzYWdlKHQsbyl8fHRoaXMuX2FkZE1lc3NhZ2VSZWZlcmVuY2UodCxvKX1yZW1vdmVEZXNjcmlwdGlvbih0LGUsbil7aWYoIWV8fCF0aGlzLl9pc0VsZW1lbnROb2RlKHQpKXJldHVybjtjb25zdCBvPUp6KGUsbik7aWYodGhpcy5faXNFbGVtZW50RGVzY3JpYmVkQnlNZXNzYWdlKHQsbykmJnRoaXMuX3JlbW92ZU1lc3NhZ2VSZWZlcmVuY2UodCxvKSwic3RyaW5nIj09dHlwZW9mIGUpe2NvbnN0IHQ9WnouZ2V0KG8pO3QmJjA9PT10LnJlZmVyZW5jZUNvdW50JiZ0aGlzLl9kZWxldGVNZXNzYWdlRWxlbWVudChvKX1YeiYmMD09PVh6LmNoaWxkTm9kZXMubGVuZ3RoJiZ0aGlzLl9kZWxldGVNZXNzYWdlc0NvbnRhaW5lcigpfW5nT25EZXN0cm95KCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbY2RrLWRlc2NyaWJlZGJ5LWhvc3RdIik7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5fcmVtb3ZlQ2RrRGVzY3JpYmVkQnlSZWZlcmVuY2VJZHModFtlXSksdFtlXS5yZW1vdmVBdHRyaWJ1dGUoWXopO1h6JiZ0aGlzLl9kZWxldGVNZXNzYWdlc0NvbnRhaW5lcigpLFp6LmNsZWFyKCl9X2NyZWF0ZU1lc3NhZ2VFbGVtZW50KHQsZSl7Y29uc3Qgbj10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtReihuKSxuLnRleHRDb250ZW50PXQsZSYmbi5zZXRBdHRyaWJ1dGUoInJvbGUiLGUpLHRoaXMuX2NyZWF0ZU1lc3NhZ2VzQ29udGFpbmVyKCksWHouYXBwZW5kQ2hpbGQobiksWnouc2V0KEp6KHQsZSkse21lc3NhZ2VFbGVtZW50Om4scmVmZXJlbmNlQ291bnQ6MH0pfV9kZWxldGVNZXNzYWdlRWxlbWVudCh0KXtjb25zdCBlPVp6LmdldCh0KSxuPWUmJmUubWVzc2FnZUVsZW1lbnQ7WHomJm4mJlh6LnJlbW92ZUNoaWxkKG4pLFp6LmRlbGV0ZSh0KX1fY3JlYXRlTWVzc2FnZXNDb250YWluZXIoKXtpZighWHope2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoV3opO3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLFh6PXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLFh6LmlkPVd6LFh6LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsWHouY2xhc3NMaXN0LmFkZCgiY2RrLXZpc3VhbGx5LWhpZGRlbiIpLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoWHopfX1fZGVsZXRlTWVzc2FnZXNDb250YWluZXIoKXtYeiYmWHoucGFyZW50Tm9kZSYmKFh6LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoWHopLFh6PW51bGwpfV9yZW1vdmVDZGtEZXNjcmliZWRCeVJlZmVyZW5jZUlkcyh0KXtjb25zdCBlPUd6KHQsImFyaWEtZGVzY3JpYmVkYnkiKS5maWx0ZXIoKHQ9PjAhPXQuaW5kZXhPZigiY2RrLWRlc2NyaWJlZGJ5LW1lc3NhZ2UiKSkpO3Quc2V0QXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5IixlLmpvaW4oIiAiKSl9X2FkZE1lc3NhZ2VSZWZlcmVuY2UodCxlKXtjb25zdCBuPVp6LmdldChlKTshKGZ1bmN0aW9uIG8odCxlLG4pe2NvbnN0IG89R3oodCxlKTtvLnNvbWUoKHQ9PnQudHJpbSgpPT1uLnRyaW0oKSkpfHwoby5wdXNoKG4udHJpbSgpKSx0LnNldEF0dHJpYnV0ZShlLG8uam9pbigiICIpKSl9KSh0LCJhcmlhLWRlc2NyaWJlZGJ5IixuLm1lc3NhZ2VFbGVtZW50LmlkKSx0LnNldEF0dHJpYnV0ZShZeiwiIiksbi5yZWZlcmVuY2VDb3VudCsrfV9yZW1vdmVNZXNzYWdlUmVmZXJlbmNlKHQsZSl7Y29uc3Qgbj1aei5nZXQoZSk7bi5yZWZlcmVuY2VDb3VudC0tLChmdW5jdGlvbiBvKHQsZSxuKXtjb25zdCBvPUd6KHQsZSkuZmlsdGVyKCh0PT50IT1uLnRyaW0oKSkpO28ubGVuZ3RoP3Quc2V0QXR0cmlidXRlKGUsby5qb2luKCIgIikpOnQucmVtb3ZlQXR0cmlidXRlKGUpfSkodCwiYXJpYS1kZXNjcmliZWRieSIsbi5tZXNzYWdlRWxlbWVudC5pZCksdC5yZW1vdmVBdHRyaWJ1dGUoWXopfV9pc0VsZW1lbnREZXNjcmliZWRCeU1lc3NhZ2UodCxlKXtjb25zdCBuPUd6KHQsImFyaWEtZGVzY3JpYmVkYnkiKSxvPVp6LmdldChlKSxpPW8mJm8ubWVzc2FnZUVsZW1lbnQuaWQ7cmV0dXJuISFpJiYtMSE9bi5pbmRleE9mKGkpfV9jYW5CZURlc2NyaWJlZCh0LGUpe2lmKCF0aGlzLl9pc0VsZW1lbnROb2RlKHQpKXJldHVybiExO2lmKGUmJiJvYmplY3QiPT10eXBlb2YgZSlyZXR1cm4hMDtjb25zdCBuPW51bGw9PWU/IiI6YCR7ZX1gLnRyaW0oKSxvPXQuZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIik7cmV0dXJuISghbnx8byYmby50cmltKCk9PT1uKX1faXNFbGVtZW50Tm9kZSh0KXtyZXR1cm4gdC5ub2RlVHlwZT09PXRoaXMuX2RvY3VtZW50LkVMRU1FTlRfTk9ERX19ZnVuY3Rpb24gSnoodCxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/YCR7ZXx8IiJ9LyR7dH1gOnR9ZnVuY3Rpb24gUXoodCl7dC5pZHx8KHQuaWQ9ImNkay1kZXNjcmliZWRieS1tZXNzYWdlLSIrcXorKyl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL0t6Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxLeikodnIoWl8pKX0sS3ouybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IEt6KHZyKFpfKSl9LHRva2VuOkt6LHByb3ZpZGVkSW46InJvb3QifSksS3ouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEt6LFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpO2NsYXNzICR6e2NvbnN0cnVjdG9yKHQpe3RoaXMuX2l0ZW1zPXQsdGhpcy5fYWN0aXZlSXRlbUluZGV4PS0xLHRoaXMuX2FjdGl2ZUl0ZW09bnVsbCx0aGlzLl93cmFwPSExLHRoaXMuX2xldHRlcktleVN0cmVhbT1uZXcgSSx0aGlzLl90eXBlYWhlYWRTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl92ZXJ0aWNhbD0hMCx0aGlzLl9hbGxvd2VkTW9kaWZpZXJLZXlzPVtdLHRoaXMuX2hvbWVBbmRFbmQ9ITEsdGhpcy5fc2tpcFByZWRpY2F0ZUZuPXQ9PnQuZGlzYWJsZWQsdGhpcy5fcHJlc3NlZExldHRlcnM9W10sdGhpcy50YWJPdXQ9bmV3IEksdGhpcy5jaGFuZ2U9bmV3IEksdCBpbnN0YW5jZW9mIFZoJiZ0LmNoYW5nZXMuc3Vic2NyaWJlKCh0PT57aWYodGhpcy5fYWN0aXZlSXRlbSl7Y29uc3QgZT10LnRvQXJyYXkoKS5pbmRleE9mKHRoaXMuX2FjdGl2ZUl0ZW0pO2U+LTEmJmUhPT10aGlzLl9hY3RpdmVJdGVtSW5kZXgmJih0aGlzLl9hY3RpdmVJdGVtSW5kZXg9ZSl9fSkpfXNraXBQcmVkaWNhdGUodCl7cmV0dXJuIHRoaXMuX3NraXBQcmVkaWNhdGVGbj10LHRoaXN9d2l0aFdyYXAodD0hMCl7cmV0dXJuIHRoaXMuX3dyYXA9dCx0aGlzfXdpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKHQ9ITApe3JldHVybiB0aGlzLl92ZXJ0aWNhbD10LHRoaXN9d2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0KXtyZXR1cm4gdGhpcy5faG9yaXpvbnRhbD10LHRoaXN9d2l0aEFsbG93ZWRNb2RpZmllcktleXModCl7cmV0dXJuIHRoaXMuX2FsbG93ZWRNb2RpZmllcktleXM9dCx0aGlzfXdpdGhUeXBlQWhlYWQodD0yMDApe2lmKCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmdGhpcy5faXRlbXMubGVuZ3RoJiZ0aGlzLl9pdGVtcy5zb21lKCh0PT4iZnVuY3Rpb24iIT10eXBlb2YgdC5nZXRMYWJlbCkpKXRocm93IEVycm9yKCJMaXN0S2V5TWFuYWdlciBpdGVtcyBpbiB0eXBlYWhlYWQgbW9kZSBtdXN0IGltcGxlbWVudCB0aGUgYGdldExhYmVsYCBtZXRob2QuIik7cmV0dXJuIHRoaXMuX3R5cGVhaGVhZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3R5cGVhaGVhZFN1YnNjcmlwdGlvbj10aGlzLl9sZXR0ZXJLZXlTdHJlYW0ucGlwZShGZSgodD0+dGhpcy5fcHJlc3NlZExldHRlcnMucHVzaCh0KSkpLGdlKHQpLGNlKCgoKT0+dGhpcy5fcHJlc3NlZExldHRlcnMubGVuZ3RoPjApKSxJdCgoKCk9PnRoaXMuX3ByZXNzZWRMZXR0ZXJzLmpvaW4oIiIpKSkpLnN1YnNjcmliZSgodD0+e2NvbnN0IGU9dGhpcy5fZ2V0SXRlbXNBcnJheSgpO2ZvcihsZXQgbj0xO248ZS5sZW5ndGgrMTtuKyspe2NvbnN0IG89KHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCtuKSVlLmxlbmd0aCxpPWVbb107aWYoIXRoaXMuX3NraXBQcmVkaWNhdGVGbihpKSYmMD09PWkuZ2V0TGFiZWwoKS50b1VwcGVyQ2FzZSgpLnRyaW0oKS5pbmRleE9mKHQpKXt0aGlzLnNldEFjdGl2ZUl0ZW0obyk7YnJlYWt9fXRoaXMuX3ByZXNzZWRMZXR0ZXJzPVtdfSkpLHRoaXN9d2l0aEhvbWVBbmRFbmQodD0hMCl7cmV0dXJuIHRoaXMuX2hvbWVBbmRFbmQ9dCx0aGlzfXNldEFjdGl2ZUl0ZW0odCl7Y29uc3QgZT10aGlzLl9hY3RpdmVJdGVtO3RoaXMudXBkYXRlQWN0aXZlSXRlbSh0KSx0aGlzLl9hY3RpdmVJdGVtIT09ZSYmdGhpcy5jaGFuZ2UubmV4dCh0aGlzLl9hY3RpdmVJdGVtSW5kZXgpfW9uS2V5ZG93bih0KXtjb25zdCBlPXQua2V5Q29kZSxuPVsiYWx0S2V5IiwiY3RybEtleSIsIm1ldGFLZXkiLCJzaGlmdEtleSJdLmV2ZXJ5KChlPT4hdFtlXXx8dGhpcy5fYWxsb3dlZE1vZGlmaWVyS2V5cy5pbmRleE9mKGUpPi0xKSk7c3dpdGNoKGUpe2Nhc2UgOTpyZXR1cm4gdm9pZCB0aGlzLnRhYk91dC5uZXh0KCk7Y2FzZSBoejppZih0aGlzLl92ZXJ0aWNhbCYmbil7dGhpcy5zZXROZXh0SXRlbUFjdGl2ZSgpO2JyZWFrfXJldHVybjtjYXNlIGd6OmlmKHRoaXMuX3ZlcnRpY2FsJiZuKXt0aGlzLnNldFByZXZpb3VzSXRlbUFjdGl2ZSgpO2JyZWFrfXJldHVybjtjYXNlIDM5OmlmKHRoaXMuX2hvcml6b250YWwmJm4peyJydGwiPT09dGhpcy5faG9yaXpvbnRhbD90aGlzLnNldFByZXZpb3VzSXRlbUFjdGl2ZSgpOnRoaXMuc2V0TmV4dEl0ZW1BY3RpdmUoKTticmVha31yZXR1cm47Y2FzZSAzNzppZih0aGlzLl9ob3Jpem9udGFsJiZuKXsicnRsIj09PXRoaXMuX2hvcml6b250YWw/dGhpcy5zZXROZXh0SXRlbUFjdGl2ZSgpOnRoaXMuc2V0UHJldmlvdXNJdGVtQWN0aXZlKCk7YnJlYWt9cmV0dXJuO2Nhc2UgMzY6aWYodGhpcy5faG9tZUFuZEVuZCYmbil7dGhpcy5zZXRGaXJzdEl0ZW1BY3RpdmUoKTticmVha31yZXR1cm47Y2FzZSAzNTppZih0aGlzLl9ob21lQW5kRW5kJiZuKXt0aGlzLnNldExhc3RJdGVtQWN0aXZlKCk7YnJlYWt9cmV0dXJuO2RlZmF1bHQ6cmV0dXJuIHZvaWQoKG58fGJ6KHQsInNoaWZ0S2V5IikpJiYodC5rZXkmJjE9PT10LmtleS5sZW5ndGg/dGhpcy5fbGV0dGVyS2V5U3RyZWFtLm5leHQodC5rZXkudG9Mb2NhbGVVcHBlckNhc2UoKSk6KGU+PTY1JiZlPD05MHx8ZT49NDgmJmU8PTU3KSYmdGhpcy5fbGV0dGVyS2V5U3RyZWFtLm5leHQoU3RyaW5nLmZyb21DaGFyQ29kZShlKSkpKX10aGlzLl9wcmVzc2VkTGV0dGVycz1bXSx0LnByZXZlbnREZWZhdWx0KCl9Z2V0IGFjdGl2ZUl0ZW1JbmRleCgpe3JldHVybiB0aGlzLl9hY3RpdmVJdGVtSW5kZXh9Z2V0IGFjdGl2ZUl0ZW0oKXtyZXR1cm4gdGhpcy5fYWN0aXZlSXRlbX1pc1R5cGluZygpe3JldHVybiB0aGlzLl9wcmVzc2VkTGV0dGVycy5sZW5ndGg+MH1zZXRGaXJzdEl0ZW1BY3RpdmUoKXt0aGlzLl9zZXRBY3RpdmVJdGVtQnlJbmRleCgwLDEpfXNldExhc3RJdGVtQWN0aXZlKCl7dGhpcy5fc2V0QWN0aXZlSXRlbUJ5SW5kZXgodGhpcy5faXRlbXMubGVuZ3RoLTEsLTEpfXNldE5leHRJdGVtQWN0aXZlKCl7dGhpcy5fYWN0aXZlSXRlbUluZGV4PDA/dGhpcy5zZXRGaXJzdEl0ZW1BY3RpdmUoKTp0aGlzLl9zZXRBY3RpdmVJdGVtQnlEZWx0YSgxKX1zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKXt0aGlzLl9hY3RpdmVJdGVtSW5kZXg8MCYmdGhpcy5fd3JhcD90aGlzLnNldExhc3RJdGVtQWN0aXZlKCk6dGhpcy5fc2V0QWN0aXZlSXRlbUJ5RGVsdGEoLTEpfXVwZGF0ZUFjdGl2ZUl0ZW0odCl7Y29uc3QgZT10aGlzLl9nZXRJdGVtc0FycmF5KCksbj0ibnVtYmVyIj09dHlwZW9mIHQ/dDplLmluZGV4T2YodCksbz1lW25dO3RoaXMuX2FjdGl2ZUl0ZW09bnVsbD09bz9udWxsOm8sdGhpcy5fYWN0aXZlSXRlbUluZGV4PW59X3NldEFjdGl2ZUl0ZW1CeURlbHRhKHQpe3RoaXMuX3dyYXA/dGhpcy5fc2V0QWN0aXZlSW5XcmFwTW9kZSh0KTp0aGlzLl9zZXRBY3RpdmVJbkRlZmF1bHRNb2RlKHQpfV9zZXRBY3RpdmVJbldyYXBNb2RlKHQpe2NvbnN0IGU9dGhpcy5fZ2V0SXRlbXNBcnJheSgpO2ZvcihsZXQgbj0xO248PWUubGVuZ3RoO24rKyl7Y29uc3Qgbz0odGhpcy5fYWN0aXZlSXRlbUluZGV4K3QqbitlLmxlbmd0aCklZS5sZW5ndGg7aWYoIXRoaXMuX3NraXBQcmVkaWNhdGVGbihlW29dKSlyZXR1cm4gdm9pZCB0aGlzLnNldEFjdGl2ZUl0ZW0obyl9fV9zZXRBY3RpdmVJbkRlZmF1bHRNb2RlKHQpe3RoaXMuX3NldEFjdGl2ZUl0ZW1CeUluZGV4KHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCt0LHQpfV9zZXRBY3RpdmVJdGVtQnlJbmRleCh0LGUpe2NvbnN0IG49dGhpcy5fZ2V0SXRlbXNBcnJheSgpO2lmKG5bdF0pe2Zvcig7dGhpcy5fc2tpcFByZWRpY2F0ZUZuKG5bdF0pOylpZighblt0Kz1lXSlyZXR1cm47dGhpcy5zZXRBY3RpdmVJdGVtKHQpfX1fZ2V0SXRlbXNBcnJheSgpe3JldHVybiB0aGlzLl9pdGVtcyBpbnN0YW5jZW9mIFZoP3RoaXMuX2l0ZW1zLnRvQXJyYXkoKTp0aGlzLl9pdGVtc319Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHRJIGV4dGVuZHMgJHp7c2V0QWN0aXZlSXRlbSh0KXt0aGlzLmFjdGl2ZUl0ZW0mJnRoaXMuYWN0aXZlSXRlbS5zZXRJbmFjdGl2ZVN0eWxlcygpLHN1cGVyLnNldEFjdGl2ZUl0ZW0odCksdGhpcy5hY3RpdmVJdGVtJiZ0aGlzLmFjdGl2ZUl0ZW0uc2V0QWN0aXZlU3R5bGVzKCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBlSSBleHRlbmRzICR6e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcmlnaW49InByb2dyYW0ifXNldEZvY3VzT3JpZ2luKHQpe3JldHVybiB0aGlzLl9vcmlnaW49dCx0aGlzfXNldEFjdGl2ZUl0ZW0odCl7c3VwZXIuc2V0QWN0aXZlSXRlbSh0KSx0aGlzLmFjdGl2ZUl0ZW0mJnRoaXMuYWN0aXZlSXRlbS5mb2N1cyh0aGlzLl9vcmlnaW4pfX1jbGFzcyBuSXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9wbGF0Zm9ybT10fWlzRGlzYWJsZWQodCl7cmV0dXJuIHQuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpfWlzVmlzaWJsZSh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4hISh0Lm9mZnNldFdpZHRofHx0Lm9mZnNldEhlaWdodHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQuZ2V0Q2xpZW50UmVjdHMmJnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpfSkodCkmJiJ2aXNpYmxlIj09PWdldENvbXB1dGVkU3R5bGUodCkudmlzaWJpbGl0eX1pc1RhYmJhYmxlKHQpe2lmKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpcmV0dXJuITE7Y29uc3QgZT0oZnVuY3Rpb24gbyh0KXt0cnl7cmV0dXJuIHQuZnJhbWVFbGVtZW50fWNhdGNoKHQpe3JldHVybiBudWxsfX0pKChmdW5jdGlvbiBuKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQpKTtpZihlKXtpZigtMT09PWlJKGUpKXJldHVybiExO2lmKCF0aGlzLmlzVmlzaWJsZShlKSlyZXR1cm4hMX1sZXQgaT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksYT1pSSh0KTtyZXR1cm4gdC5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpPy0xIT09YToiaWZyYW1lIiE9PWkmJiJvYmplY3QiIT09aSYmISh0aGlzLl9wbGF0Zm9ybS5XRUJLSVQmJnRoaXMuX3BsYXRmb3JtLklPUyYmIShmdW5jdGlvbiByKHQpe2xldCBlPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxuPSJpbnB1dCI9PT1lJiZ0LnR5cGU7cmV0dXJuInRleHQiPT09bnx8InBhc3N3b3JkIj09PW58fCJzZWxlY3QiPT09ZXx8InRleHRhcmVhIj09PWV9KSh0KSkmJigiYXVkaW8iPT09aT8hIXQuaGFzQXR0cmlidXRlKCJjb250cm9scyIpJiYtMSE9PWE6InZpZGVvIj09PWk/LTEhPT1hJiYobnVsbCE9PWF8fHRoaXMuX3BsYXRmb3JtLkZJUkVGT1h8fHQuaGFzQXR0cmlidXRlKCJjb250cm9scyIpKTp0LnRhYkluZGV4Pj0wKX1pc0ZvY3VzYWJsZSh0LGUpe3JldHVybihmdW5jdGlvbiBuKHQpe3JldHVybiEoZnVuY3Rpb24gZSh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4iaW5wdXQiPT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl9KSh0KSYmImhpZGRlbiI9PXQudHlwZX0pKHQpJiYoKGZ1bmN0aW9uIG4odCl7bGV0IGU9dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1lfHwic2VsZWN0Ij09PWV8fCJidXR0b24iPT09ZXx8InRleHRhcmVhIj09PWV9KSh0KXx8KGZ1bmN0aW9uIG8odCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuImEiPT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl9KSh0KSYmdC5oYXNBdHRyaWJ1dGUoImhyZWYiKX0pKHQpfHx0Lmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fG9JKHQpKX0pKHQpJiYhdGhpcy5pc0Rpc2FibGVkKHQpJiYoKG51bGw9PWU/dm9pZCAwOmUuaWdub3JlVmlzaWJpbGl0eSl8fHRoaXMuaXNWaXNpYmxlKHQpKX19ZnVuY3Rpb24gb0kodCl7aWYoIXQuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHx2b2lkIDA9PT10LnRhYkluZGV4KXJldHVybiExO2xldCBlPXQuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpO3JldHVybiItMzI3NjgiIT1lJiYhKCFlfHxpc05hTihwYXJzZUludChlLDEwKSkpfWZ1bmN0aW9uIGlJKHQpe2lmKCFvSSh0KSlyZXR1cm4gbnVsbDtjb25zdCBlPXBhcnNlSW50KHQuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpfHwiIiwxMCk7cmV0dXJuIGlzTmFOKGUpPy0xOmV9bkkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5JKSh2cih3eikpfSxuSS7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgbkkodnIod3opKX0sdG9rZW46bkkscHJvdmlkZWRJbjoicm9vdCJ9KSxuSS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnd6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChuSSxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6d3p9XX0pLG51bGwpO2NsYXNzIGFJe2NvbnN0cnVjdG9yKHQsZSxuLG8saT0hMSl7dGhpcy5fZWxlbWVudD10LHRoaXMuX2NoZWNrZXI9ZSx0aGlzLl9uZ1pvbmU9bix0aGlzLl9kb2N1bWVudD1vLHRoaXMuX2hhc0F0dGFjaGVkPSExLHRoaXMuc3RhcnRBbmNob3JMaXN0ZW5lcj0oKT0+dGhpcy5mb2N1c0xhc3RUYWJiYWJsZUVsZW1lbnQoKSx0aGlzLmVuZEFuY2hvckxpc3RlbmVyPSgpPT50aGlzLmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoKSx0aGlzLl9lbmFibGVkPSEwLGl8fHRoaXMuYXR0YWNoQW5jaG9ycygpfWdldCBlbmFibGVkKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9c2V0IGVuYWJsZWQodCl7dGhpcy5fZW5hYmxlZD10LHRoaXMuX3N0YXJ0QW5jaG9yJiZ0aGlzLl9lbmRBbmNob3ImJih0aGlzLl90b2dnbGVBbmNob3JUYWJJbmRleCh0LHRoaXMuX3N0YXJ0QW5jaG9yKSx0aGlzLl90b2dnbGVBbmNob3JUYWJJbmRleCh0LHRoaXMuX2VuZEFuY2hvcikpfWRlc3Ryb3koKXtjb25zdCB0PXRoaXMuX3N0YXJ0QW5jaG9yLGU9dGhpcy5fZW5kQW5jaG9yO3QmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLnN0YXJ0QW5jaG9yTGlzdGVuZXIpLHQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpKSxlJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5lbmRBbmNob3JMaXN0ZW5lciksZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSkpLHRoaXMuX3N0YXJ0QW5jaG9yPXRoaXMuX2VuZEFuY2hvcj1udWxsLHRoaXMuX2hhc0F0dGFjaGVkPSExfWF0dGFjaEFuY2hvcnMoKXtyZXR1cm4hIXRoaXMuX2hhc0F0dGFjaGVkfHwodGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3RoaXMuX3N0YXJ0QW5jaG9yfHwodGhpcy5fc3RhcnRBbmNob3I9dGhpcy5fY3JlYXRlQW5jaG9yKCksdGhpcy5fc3RhcnRBbmNob3IuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuc3RhcnRBbmNob3JMaXN0ZW5lcikpLHRoaXMuX2VuZEFuY2hvcnx8KHRoaXMuX2VuZEFuY2hvcj10aGlzLl9jcmVhdGVBbmNob3IoKSx0aGlzLl9lbmRBbmNob3IuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuZW5kQW5jaG9yTGlzdGVuZXIpKX0pKSx0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUmJih0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuX3N0YXJ0QW5jaG9yLHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5fZW5kQW5jaG9yLHRoaXMuX2VsZW1lbnQubmV4dFNpYmxpbmcpLHRoaXMuX2hhc0F0dGFjaGVkPSEwKSx0aGlzLl9oYXNBdHRhY2hlZCl9Zm9jdXNJbml0aWFsRWxlbWVudFdoZW5SZWFkeSh0KXtyZXR1cm4gbmV3IFByb21pc2UoKGU9Pnt0aGlzLl9leGVjdXRlT25TdGFibGUoKCgpPT5lKHRoaXMuZm9jdXNJbml0aWFsRWxlbWVudCh0KSkpKX0pKX1mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50V2hlblJlYWR5KHQpe3JldHVybiBuZXcgUHJvbWlzZSgoZT0+e3RoaXMuX2V4ZWN1dGVPblN0YWJsZSgoKCk9PmUodGhpcy5mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KHQpKSkpfSkpfWZvY3VzTGFzdFRhYmJhYmxlRWxlbWVudFdoZW5SZWFkeSh0KXtyZXR1cm4gbmV3IFByb21pc2UoKGU9Pnt0aGlzLl9leGVjdXRlT25TdGFibGUoKCgpPT5lKHRoaXMuZm9jdXNMYXN0VGFiYmFibGVFbGVtZW50KHQpKSkpfSkpfV9nZXRSZWdpb25Cb3VuZGFyeSh0KXtsZXQgZT10aGlzLl9lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYFtjZGstZm9jdXMtcmVnaW9uLSR7dH1dLCBbY2RrRm9jdXNSZWdpb24ke3R9XSwgW2Nkay1mb2N1cy0ke3R9XWApO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKWVbbl0uaGFzQXR0cmlidXRlKGBjZGstZm9jdXMtJHt0fWApP2NvbnNvbGUud2FybihgRm91bmQgdXNlIG9mIGRlcHJlY2F0ZWQgYXR0cmlidXRlICdjZGstZm9jdXMtJHt0fScsIHVzZSAnY2RrRm9jdXNSZWdpb24ke3R9JyBpbnN0ZWFkLiBUaGUgZGVwcmVjYXRlZCBhdHRyaWJ1dGUgd2lsbCBiZSByZW1vdmVkIGluIDguMC4wLmAsZVtuXSk6ZVtuXS5oYXNBdHRyaWJ1dGUoYGNkay1mb2N1cy1yZWdpb24tJHt0fWApJiZjb25zb2xlLndhcm4oYEZvdW5kIHVzZSBvZiBkZXByZWNhdGVkIGF0dHJpYnV0ZSAnY2RrLWZvY3VzLXJlZ2lvbi0ke3R9JywgdXNlICdjZGtGb2N1c1JlZ2lvbiR7dH0nIGluc3RlYWQuIFRoZSBkZXByZWNhdGVkIGF0dHJpYnV0ZSB3aWxsIGJlIHJlbW92ZWQgaW4gOC4wLjAuYCxlW25dKTtyZXR1cm4ic3RhcnQiPT10P2UubGVuZ3RoP2VbMF06dGhpcy5fZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQodGhpcy5fZWxlbWVudCk6ZS5sZW5ndGg/ZVtlLmxlbmd0aC0xXTp0aGlzLl9nZXRMYXN0VGFiYmFibGVFbGVtZW50KHRoaXMuX2VsZW1lbnQpfWZvY3VzSW5pdGlhbEVsZW1lbnQodCl7Y29uc3QgZT10aGlzLl9lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIltjZGstZm9jdXMtaW5pdGlhbF0sIFtjZGtGb2N1c0luaXRpYWxdIik7aWYoZSl7aWYoZS5oYXNBdHRyaWJ1dGUoImNkay1mb2N1cy1pbml0aWFsIikmJmNvbnNvbGUud2FybigiRm91bmQgdXNlIG9mIGRlcHJlY2F0ZWQgYXR0cmlidXRlICdjZGstZm9jdXMtaW5pdGlhbCcsIHVzZSAnY2RrRm9jdXNJbml0aWFsJyBpbnN0ZWFkLiBUaGUgZGVwcmVjYXRlZCBhdHRyaWJ1dGUgd2lsbCBiZSByZW1vdmVkIGluIDguMC4wIixlKSwidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8dGhpcy5fY2hlY2tlci5pc0ZvY3VzYWJsZShlKXx8Y29uc29sZS53YXJuKCJFbGVtZW50IG1hdGNoaW5nICdbY2RrRm9jdXNJbml0aWFsXScgaXMgbm90IGZvY3VzYWJsZS4iLGUpLCF0aGlzLl9jaGVja2VyLmlzRm9jdXNhYmxlKGUpKXtjb25zdCBuPXRoaXMuX2dldEZpcnN0VGFiYmFibGVFbGVtZW50KGUpO3JldHVybiBudWxsPT1ufHxuLmZvY3VzKHQpLCEhbn1yZXR1cm4gZS5mb2N1cyh0KSwhMH1yZXR1cm4gdGhpcy5mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KHQpfWZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQodCl7Y29uc3QgZT10aGlzLl9nZXRSZWdpb25Cb3VuZGFyeSgic3RhcnQiKTtyZXR1cm4gZSYmZS5mb2N1cyh0KSwhIWV9Zm9jdXNMYXN0VGFiYmFibGVFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5fZ2V0UmVnaW9uQm91bmRhcnkoImVuZCIpO3JldHVybiBlJiZlLmZvY3VzKHQpLCEhZX1oYXNBdHRhY2hlZCgpe3JldHVybiB0aGlzLl9oYXNBdHRhY2hlZH1fZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQodCl7aWYodGhpcy5fY2hlY2tlci5pc0ZvY3VzYWJsZSh0KSYmdGhpcy5fY2hlY2tlci5pc1RhYmJhYmxlKHQpKXJldHVybiB0O2xldCBlPXQuY2hpbGRyZW58fHQuY2hpbGROb2Rlcztmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IG49ZVt0XS5ub2RlVHlwZT09PXRoaXMuX2RvY3VtZW50LkVMRU1FTlRfTk9ERT90aGlzLl9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudChlW3RdKTpudWxsO2lmKG4pcmV0dXJuIG59cmV0dXJuIG51bGx9X2dldExhc3RUYWJiYWJsZUVsZW1lbnQodCl7aWYodGhpcy5fY2hlY2tlci5pc0ZvY3VzYWJsZSh0KSYmdGhpcy5fY2hlY2tlci5pc1RhYmJhYmxlKHQpKXJldHVybiB0O2xldCBlPXQuY2hpbGRyZW58fHQuY2hpbGROb2Rlcztmb3IobGV0IHQ9ZS5sZW5ndGgtMTt0Pj0wO3QtLSl7bGV0IG49ZVt0XS5ub2RlVHlwZT09PXRoaXMuX2RvY3VtZW50LkVMRU1FTlRfTk9ERT90aGlzLl9nZXRMYXN0VGFiYmFibGVFbGVtZW50KGVbdF0pOm51bGw7aWYobilyZXR1cm4gbn1yZXR1cm4gbnVsbH1fY3JlYXRlQW5jaG9yKCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdGhpcy5fdG9nZ2xlQW5jaG9yVGFiSW5kZXgodGhpcy5fZW5hYmxlZCx0KSx0LmNsYXNzTGlzdC5hZGQoImNkay12aXN1YWxseS1oaWRkZW4iKSx0LmNsYXNzTGlzdC5hZGQoImNkay1mb2N1cy10cmFwLWFuY2hvciIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0fV90b2dnbGVBbmNob3JUYWJJbmRleCh0LGUpe3Q/ZS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpOmUucmVtb3ZlQXR0cmlidXRlKCJ0YWJpbmRleCIpfXRvZ2dsZUFuY2hvcnModCl7dGhpcy5fc3RhcnRBbmNob3ImJnRoaXMuX2VuZEFuY2hvciYmKHRoaXMuX3RvZ2dsZUFuY2hvclRhYkluZGV4KHQsdGhpcy5fc3RhcnRBbmNob3IpLHRoaXMuX3RvZ2dsZUFuY2hvclRhYkluZGV4KHQsdGhpcy5fZW5kQW5jaG9yKSl9X2V4ZWN1dGVPblN0YWJsZSh0KXt0aGlzLl9uZ1pvbmUuaXNTdGFibGU/dCgpOnRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUodCl9fWNsYXNzIHJJe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9jaGVja2VyPXQsdGhpcy5fbmdab25lPWUsdGhpcy5fZG9jdW1lbnQ9bn1jcmVhdGUodCxlPSExKXtyZXR1cm4gbmV3IGFJKHQsdGhpcy5fY2hlY2tlcix0aGlzLl9uZ1pvbmUsdGhpcy5fZG9jdW1lbnQsZSl9fXJJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxySSkodnIobkkpLHZyKGFfKSx2cihaXykpfSxySS7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgckkodnIobkkpLHZyKGFfKSx2cihaXykpfSx0b2tlbjpySSxwcm92aWRlZEluOiJyb290In0pLHJJLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6bkl9LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHJJLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpuSX0se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y2xhc3Mgc0l7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9mb2N1c1RyYXBGYWN0b3J5PWUsdGhpcy5fcHJldmlvdXNseUZvY3VzZWRFbGVtZW50PW51bGwsdGhpcy5mb2N1c1RyYXA9dGhpcy5fZm9jdXNUcmFwRmFjdG9yeS5jcmVhdGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCEwKX1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLmZvY3VzVHJhcC5lbmFibGVkfXNldCBlbmFibGVkKHQpe3RoaXMuZm9jdXNUcmFwLmVuYWJsZWQ9eXoodCl9Z2V0IGF1dG9DYXB0dXJlKCl7cmV0dXJuIHRoaXMuX2F1dG9DYXB0dXJlfXNldCBhdXRvQ2FwdHVyZSh0KXt0aGlzLl9hdXRvQ2FwdHVyZT15eih0KX1uZ09uRGVzdHJveSgpe3RoaXMuZm9jdXNUcmFwLmRlc3Ryb3koKSx0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQmJih0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKSx0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQ9bnVsbCl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5mb2N1c1RyYXAuYXR0YWNoQW5jaG9ycygpLHRoaXMuYXV0b0NhcHR1cmUmJnRoaXMuX2NhcHR1cmVGb2N1cygpfW5nRG9DaGVjaygpe3RoaXMuZm9jdXNUcmFwLmhhc0F0dGFjaGVkKCl8fHRoaXMuZm9jdXNUcmFwLmF0dGFjaEFuY2hvcnMoKX1uZ09uQ2hhbmdlcyh0KXtjb25zdCBlPXQuYXV0b0NhcHR1cmU7ZSYmIWUuZmlyc3RDaGFuZ2UmJnRoaXMuYXV0b0NhcHR1cmUmJnRoaXMuZm9jdXNUcmFwLmhhc0F0dGFjaGVkKCkmJnRoaXMuX2NhcHR1cmVGb2N1cygpfV9jYXB0dXJlRm9jdXMoKXt0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQ9RnooKSx0aGlzLmZvY3VzVHJhcC5mb2N1c0luaXRpYWxFbGVtZW50V2hlblJlYWR5KCl9fXNJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxzSSkoU20oaGcpLFNtKHJJKSxTbShaXykpfSxzSS7JtWRpcj1sbyh7dHlwZTpzSSxzZWxlY3RvcnM6W1siIiwiY2RrVHJhcEZvY3VzIiwiIl1dLGlucHV0czp7ZW5hYmxlZDpbImNka1RyYXBGb2N1cyIsImVuYWJsZWQiXSxhdXRvQ2FwdHVyZTpbImNka1RyYXBGb2N1c0F1dG9DYXB0dXJlIiwiYXV0b0NhcHR1cmUiXX0sZXhwb3J0QXM6WyJjZGtUcmFwRm9jdXMiXSxmZWF0dXJlczpbQm9dfSksc0kuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6ckl9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLHNJLnByb3BEZWNvcmF0b3JzPXtlbmFibGVkOlt7dHlwZTp4eSxhcmdzOlsiY2RrVHJhcEZvY3VzIl19XSxhdXRvQ2FwdHVyZTpbe3R5cGU6eHksYXJnczpbImNka1RyYXBGb2N1c0F1dG9DYXB0dXJlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChzSSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrVHJhcEZvY3VzXSIsZXhwb3J0QXM6ImNka1RyYXBGb2N1cyJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6ckl9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSkse2VuYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJjZGtUcmFwRm9jdXMiXX1dLGF1dG9DYXB0dXJlOlt7dHlwZTp4eSxhcmdzOlsiY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBsSSBleHRlbmRzIGFJe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3N1cGVyKHQsZSxuLG8sci5kZWZlciksdGhpcy5fZm9jdXNUcmFwTWFuYWdlcj1pLHRoaXMuX2luZXJ0U3RyYXRlZ3k9YSx0aGlzLl9mb2N1c1RyYXBNYW5hZ2VyLnJlZ2lzdGVyKHRoaXMpfWdldCBlbmFibGVkKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9c2V0IGVuYWJsZWQodCl7dGhpcy5fZW5hYmxlZD10LHRoaXMuX2VuYWJsZWQ/dGhpcy5fZm9jdXNUcmFwTWFuYWdlci5yZWdpc3Rlcih0aGlzKTp0aGlzLl9mb2N1c1RyYXBNYW5hZ2VyLmRlcmVnaXN0ZXIodGhpcyl9ZGVzdHJveSgpe3RoaXMuX2ZvY3VzVHJhcE1hbmFnZXIuZGVyZWdpc3Rlcih0aGlzKSxzdXBlci5kZXN0cm95KCl9X2VuYWJsZSgpe3RoaXMuX2luZXJ0U3RyYXRlZ3kucHJldmVudEZvY3VzKHRoaXMpLHRoaXMudG9nZ2xlQW5jaG9ycyghMCl9X2Rpc2FibGUoKXt0aGlzLl9pbmVydFN0cmF0ZWd5LmFsbG93Rm9jdXModGhpcyksdGhpcy50b2dnbGVBbmNob3JzKCExKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBjST1uZXcgR2EoIkZPQ1VTX1RSQVBfSU5FUlRfU1RSQVRFR1kiKSxkST0idW5kZWZpbmVkIiE9dHlwZW9mIEVsZW1lbnQmJiEhRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdDsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gcEkodCxlKXtyZXR1cm4gdC5tYXRjaGVzP3QubWF0Y2hlcyhlKTp0Lm1zTWF0Y2hlc1NlbGVjdG9yKGUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBtSXtjb25zdHJ1Y3Rvcigpe3RoaXMuX2xpc3RlbmVyPW51bGx9cHJldmVudEZvY3VzKHQpe3RoaXMuX2xpc3RlbmVyJiZ0Ll9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fbGlzdGVuZXIsITApLHRoaXMuX2xpc3RlbmVyPWU9PnRoaXMuX3RyYXBGb2N1cyh0LGUpLHQuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0Ll9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fbGlzdGVuZXIsITApfSkpfWFsbG93Rm9jdXModCl7dGhpcy5fbGlzdGVuZXImJih0Ll9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fbGlzdGVuZXIsITApLHRoaXMuX2xpc3RlbmVyPW51bGwpfV90cmFwRm9jdXModCxlKXtjb25zdCBuPWUudGFyZ2V0LG89dC5fZWxlbWVudDtvLmNvbnRhaW5zKG4pfHxudWxsIT09KGZ1bmN0aW9uIGkodCxlKXtpZighKHQgaW5zdGFuY2VvZiBOb2RlKSlyZXR1cm4gbnVsbDtsZXQgbj10O2Zvcig7bnVsbCE9biYmIShuIGluc3RhbmNlb2YgRWxlbWVudCk7KW49bi5wYXJlbnROb2RlO3JldHVybiBuJiYoZEk/bi5jbG9zZXN0KGUpOihmdW5jdGlvbiBvKHQsZSl7bGV0IG49dDtmb3IoO251bGwhPW4mJiEobiBpbnN0YW5jZW9mIEVsZW1lbnQmJnBJKG4sZSkpOyluPW4ucGFyZW50Tm9kZTtyZXR1cm4gbnx8bnVsbH0pKG4sZSkpfSkobiwiZGl2LmNkay1vdmVybGF5LXBhbmUiKXx8c2V0VGltZW91dCgoKCk9Pnt0LmVuYWJsZWQmJiFvLmNvbnRhaW5zKHQuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQpJiZ0LmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoKX0pKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHVJe2NvbnN0cnVjdG9yKCl7dGhpcy5fZm9jdXNUcmFwU3RhY2s9W119cmVnaXN0ZXIodCl7dGhpcy5fZm9jdXNUcmFwU3RhY2s9dGhpcy5fZm9jdXNUcmFwU3RhY2suZmlsdGVyKChlPT5lIT09dCkpO2xldCBlPXRoaXMuX2ZvY3VzVHJhcFN0YWNrO2UubGVuZ3RoJiZlW2UubGVuZ3RoLTFdLl9kaXNhYmxlKCksZS5wdXNoKHQpLHQuX2VuYWJsZSgpfWRlcmVnaXN0ZXIodCl7dC5fZGlzYWJsZSgpO2NvbnN0IGU9dGhpcy5fZm9jdXNUcmFwU3RhY2ssbj1lLmluZGV4T2YodCk7LTEhPT1uJiYoZS5zcGxpY2UobiwxKSxlLmxlbmd0aCYmZVtlLmxlbmd0aC0xXS5fZW5hYmxlKCkpfX11SS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dUkpfSx1SS7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgdUl9LHRva2VuOnVJLHByb3ZpZGVkSW46InJvb3QifSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh1SSxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgZkl7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLl9jaGVja2VyPXQsdGhpcy5fbmdab25lPWUsdGhpcy5fZm9jdXNUcmFwTWFuYWdlcj1uLHRoaXMuX2RvY3VtZW50PW8sdGhpcy5faW5lcnRTdHJhdGVneT1pfHxuZXcgbUl9Y3JlYXRlKHQsZT17ZGVmZXI6ITF9KXtsZXQgbjtyZXR1cm4gbj0iYm9vbGVhbiI9PXR5cGVvZiBlP3tkZWZlcjplfTplLG5ldyBsSSh0LHRoaXMuX2NoZWNrZXIsdGhpcy5fbmdab25lLHRoaXMuX2RvY3VtZW50LHRoaXMuX2ZvY3VzVHJhcE1hbmFnZXIsdGhpcy5faW5lcnRTdHJhdGVneSxuKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBnSSh0KXtyZXR1cm4gMD09PXQub2Zmc2V0WCYmMD09PXQub2Zmc2V0WX1mdW5jdGlvbiBoSSh0KXtjb25zdCBlPXQudG91Y2hlcyYmdC50b3VjaGVzWzBdfHx0LmNoYW5nZWRUb3VjaGVzJiZ0LmNoYW5nZWRUb3VjaGVzWzBdO3JldHVybiEoIWV8fC0xIT09ZS5pZGVudGlmaWVyfHxudWxsIT1lLnJhZGl1c1gmJjEhPT1lLnJhZGl1c1h8fG51bGwhPWUucmFkaXVzWSYmMSE9PWUucmFkaXVzWSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2ZJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmSSkodnIobkkpLHZyKGFfKSx2cih1SSksdnIoWl8pLHZyKGNJLDgpKX0sZkkuybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IGZJKHZyKG5JKSx2cihhXyksdnIodUkpLHZyKFpfKSx2cihjSSw4KSl9LHRva2VuOmZJLHByb3ZpZGVkSW46InJvb3QifSksZkkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpuSX0se3R5cGU6YV99LHt0eXBlOnVJfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbY0ldfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGZJLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpuSX0se3R5cGU6YV99LHt0eXBlOnVJfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbY0ldfV19XX0pLG51bGwpO2NvbnN0IGJJPW5ldyBHYSgiY2RrLWlucHV0LW1vZGFsaXR5LWRldGVjdG9yLW9wdGlvbnMiKSx5ST17aWdub3JlS2V5czpbMTgsMTcsMjI0LDkxLDE2XX0sX0k9Tnooe3Bhc3NpdmU6ITAsY2FwdHVyZTohMH0pO2NsYXNzIENJe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX3BsYXRmb3JtPXQsdGhpcy5fbW9zdFJlY2VudFRhcmdldD1udWxsLHRoaXMuX21vZGFsaXR5PW5ldyBGKG51bGwpLHRoaXMuX2xhc3RUb3VjaE1zPTAsdGhpcy5fb25LZXlkb3duPXQ9Pnt2YXIgZSxuOyhudWxsPT09KG49bnVsbD09PShlPXRoaXMuX29wdGlvbnMpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmlnbm9yZUtleXMpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnNvbWUoKGU9PmU9PT10LmtleUNvZGUpKSl8fCh0aGlzLl9tb2RhbGl0eS5uZXh0KCJrZXlib2FyZCIpLHRoaXMuX21vc3RSZWNlbnRUYXJnZXQ9THoodCkpfSx0aGlzLl9vbk1vdXNlZG93bj10PT57RGF0ZS5ub3coKS10aGlzLl9sYXN0VG91Y2hNczw2NTB8fCh0aGlzLl9tb2RhbGl0eS5uZXh0KGdJKHQpPyJrZXlib2FyZCI6Im1vdXNlIiksdGhpcy5fbW9zdFJlY2VudFRhcmdldD1Meih0KSl9LHRoaXMuX29uVG91Y2hzdGFydD10PT57aEkodCk/dGhpcy5fbW9kYWxpdHkubmV4dCgia2V5Ym9hcmQiKToodGhpcy5fbGFzdFRvdWNoTXM9RGF0ZS5ub3coKSx0aGlzLl9tb2RhbGl0eS5uZXh0KCJ0b3VjaCIpLHRoaXMuX21vc3RSZWNlbnRUYXJnZXQ9THoodCkpfSx0aGlzLl9vcHRpb25zPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx5SSksbyksdGhpcy5tb2RhbGl0eURldGVjdGVkPXRoaXMuX21vZGFsaXR5LnBpcGUoVGUoMSkpLHRoaXMubW9kYWxpdHlDaGFuZ2VkPXRoaXMubW9kYWxpdHlEZXRlY3RlZC5waXBlKE1lKCkpLHQuaXNCcm93c2VyJiZlLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e24uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fb25LZXlkb3duLF9JKSxuLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5fb25Nb3VzZWRvd24sX0kpLG4uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fb25Ub3VjaHN0YXJ0LF9JKX0pKX1nZXQgbW9zdFJlY2VudE1vZGFsaXR5KCl7cmV0dXJuIHRoaXMuX21vZGFsaXR5LnZhbHVlfW5nT25EZXN0cm95KCl7dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fb25LZXlkb3duLF9JKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX29uTW91c2Vkb3duLF9JKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9vblRvdWNoc3RhcnQsX0kpKX19Q0kuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fENJKSh2cih3eiksdnIoYV8pLHZyKFpfKSx2cihiSSw4KSl9LENJLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBDSSh2cih3eiksdnIoYV8pLHZyKFpfKSx2cihiSSw4KSl9LHRva2VuOkNJLHByb3ZpZGVkSW46InJvb3QifSksQ0kuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp3en0se3R5cGU6YV99LHt0eXBlOkRvY3VtZW50LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W2JJXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChDSSxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6d3p9LHt0eXBlOmFffSx7dHlwZTpEb2N1bWVudCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltiSV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBNST1uZXcgR2EoImxpdmVBbm5vdW5jZXJFbGVtZW50Iix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiB2SSgpe3JldHVybiBudWxsfX0pLHhJPW5ldyBHYSgiTElWRV9BTk5PVU5DRVJfREVGQVVMVF9PUFRJT05TIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBPSXtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9uZ1pvbmU9ZSx0aGlzLl9kZWZhdWx0T3B0aW9ucz1vLHRoaXMuX2RvY3VtZW50PW4sdGhpcy5fbGl2ZUVsZW1lbnQ9dHx8dGhpcy5fY3JlYXRlTGl2ZUVsZW1lbnQoKX1hbm5vdW5jZSh0LC4uLmUpe2NvbnN0IG49dGhpcy5fZGVmYXVsdE9wdGlvbnM7bGV0IG8saTtyZXR1cm4gMT09PWUubGVuZ3RoJiYibnVtYmVyIj09dHlwZW9mIGVbMF0/aT1lWzBdOltvLGldPWUsdGhpcy5jbGVhcigpLGNsZWFyVGltZW91dCh0aGlzLl9wcmV2aW91c1RpbWVvdXQpLG98fChvPW4mJm4ucG9saXRlbmVzcz9uLnBvbGl0ZW5lc3M6InBvbGl0ZSIpLG51bGw9PWkmJm4mJihpPW4uZHVyYXRpb24pLHRoaXMuX2xpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIixvKSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5uZXcgUHJvbWlzZSgoZT0+e2NsZWFyVGltZW91dCh0aGlzLl9wcmV2aW91c1RpbWVvdXQpLHRoaXMuX3ByZXZpb3VzVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX2xpdmVFbGVtZW50LnRleHRDb250ZW50PXQsZSgpLCJudW1iZXIiPT10eXBlb2YgaSYmKHRoaXMuX3ByZXZpb3VzVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+dGhpcy5jbGVhcigpKSxpKSl9KSwxMDApfSkpKSl9Y2xlYXIoKXt0aGlzLl9saXZlRWxlbWVudCYmKHRoaXMuX2xpdmVFbGVtZW50LnRleHRDb250ZW50PSIiKX1uZ09uRGVzdHJveSgpe2NsZWFyVGltZW91dCh0aGlzLl9wcmV2aW91c1RpbWVvdXQpLHRoaXMuX2xpdmVFbGVtZW50JiZ0aGlzLl9saXZlRWxlbWVudC5wYXJlbnROb2RlJiYodGhpcy5fbGl2ZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9saXZlRWxlbWVudCksdGhpcy5fbGl2ZUVsZW1lbnQ9bnVsbCl9X2NyZWF0ZUxpdmVFbGVtZW50KCl7Y29uc3QgdD0iY2RrLWxpdmUtYW5ub3VuY2VyLWVsZW1lbnQiLGU9dGhpcy5fZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0KSxuPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlW3RdKTtyZXR1cm4gbi5jbGFzc0xpc3QuYWRkKHQpLG4uY2xhc3NMaXN0LmFkZCgiY2RrLXZpc3VhbGx5LWhpZGRlbiIpLG4uc2V0QXR0cmlidXRlKCJhcmlhLWF0b21pYyIsInRydWUiKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIiwicG9saXRlIiksdGhpcy5fZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKSxufX1PSS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8T0kpKHZyKE1JLDgpLHZyKGFfKSx2cihaXyksdnIoeEksOCkpfSxPSS7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgT0kodnIoTUksOCksdnIoYV8pLHZyKFpfKSx2cih4SSw4KSl9LHRva2VuOk9JLHByb3ZpZGVkSW46InJvb3QifSksT0kuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W01JXX1dfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3hJXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChPSSxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltNSV19XX0se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt4SV19XX1dfSksbnVsbCk7Y2xhc3MgUEl7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2xpdmVBbm5vdW5jZXI9ZSx0aGlzLl9jb250ZW50T2JzZXJ2ZXI9bix0aGlzLl9uZ1pvbmU9byx0aGlzLl9wb2xpdGVuZXNzPSJwb2xpdGUifWdldCBwb2xpdGVuZXNzKCl7cmV0dXJuIHRoaXMuX3BvbGl0ZW5lc3N9c2V0IHBvbGl0ZW5lc3ModCl7dGhpcy5fcG9saXRlbmVzcz0ib2ZmIj09PXR8fCJhc3NlcnRpdmUiPT09dD90OiJwb2xpdGUiLCJvZmYiPT09dGhpcy5fcG9saXRlbmVzcz90aGlzLl9zdWJzY3JpcHRpb24mJih0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9zdWJzY3JpcHRpb249bnVsbCk6dGhpcy5fc3Vic2NyaXB0aW9ufHwodGhpcy5fc3Vic2NyaXB0aW9uPXRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnRoaXMuX2NvbnRlbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYpLnN1YnNjcmliZSgoKCk9Pntjb25zdCB0PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudDt0IT09dGhpcy5fcHJldmlvdXNBbm5vdW5jZWRUZXh0JiYodGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZSh0LHRoaXMuX3BvbGl0ZW5lc3MpLHRoaXMuX3ByZXZpb3VzQW5ub3VuY2VkVGV4dD10KX0pKSkpKX1uZ09uRGVzdHJveSgpe3RoaXMuX3N1YnNjcmlwdGlvbiYmdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fVBJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQSSkoU20oaGcpLFNtKE9JKSxTbShWeiksU20oYV8pKX0sUEkuybVkaXI9bG8oe3R5cGU6UEksc2VsZWN0b3JzOltbIiIsImNka0FyaWFMaXZlIiwiIl1dLGlucHV0czp7cG9saXRlbmVzczpbImNka0FyaWFMaXZlIiwicG9saXRlbmVzcyJdfSxleHBvcnRBczpbImNka0FyaWFMaXZlIl19KSxQSS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpPSX0se3R5cGU6Vnp9LHt0eXBlOmFffV0sUEkucHJvcERlY29yYXRvcnM9e3BvbGl0ZW5lc3M6W3t0eXBlOnh5LGFyZ3M6WyJjZGtBcmlhTGl2ZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUEksW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0FyaWFMaXZlXSIsZXhwb3J0QXM6ImNka0FyaWFMaXZlIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpPSX0se3R5cGU6Vnp9LHt0eXBlOmFffV19KSx7cG9saXRlbmVzczpbe3R5cGU6eHksYXJnczpbImNka0FyaWFMaXZlIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3Qgd0k9bmV3IEdhKCJjZGstZm9jdXMtbW9uaXRvci1kZWZhdWx0LW9wdGlvbnMiKSxrST1Oeih7cGFzc2l2ZTohMCxjYXB0dXJlOiEwfSk7Y2xhc3MgU0l7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLl9uZ1pvbmU9dCx0aGlzLl9wbGF0Zm9ybT1lLHRoaXMuX2lucHV0TW9kYWxpdHlEZXRlY3Rvcj1uLHRoaXMuX29yaWdpbj1udWxsLHRoaXMuX3dpbmRvd0ZvY3VzZWQ9ITEsdGhpcy5fb3JpZ2luRnJvbVRvdWNoSW50ZXJhY3Rpb249ITEsdGhpcy5fZWxlbWVudEluZm89bmV3IE1hcCx0aGlzLl9tb25pdG9yZWRFbGVtZW50Q291bnQ9MCx0aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudD1uZXcgTWFwLHRoaXMuX3dpbmRvd0ZvY3VzTGlzdGVuZXI9KCk9Pnt0aGlzLl93aW5kb3dGb2N1c2VkPSEwLHRoaXMuX3dpbmRvd0ZvY3VzVGltZW91dElkPXNldFRpbWVvdXQoKCgpPT50aGlzLl93aW5kb3dGb2N1c2VkPSExKSl9LHRoaXMuX3N0b3BJbnB1dE1vZGFsaXR5RGV0ZWN0b3I9bmV3IEksdGhpcy5fcm9vdE5vZGVGb2N1c0FuZEJsdXJMaXN0ZW5lcj10PT57Y29uc3QgZT1Meih0KSxuPSJmb2N1cyI9PT10LnR5cGU/dGhpcy5fb25Gb2N1czp0aGlzLl9vbkJsdXI7Zm9yKGxldCBvPWU7bztvPW8ucGFyZW50RWxlbWVudCluLmNhbGwodGhpcyx0LG8pfSx0aGlzLl9kb2N1bWVudD1vLHRoaXMuX2RldGVjdGlvbk1vZGU9KG51bGw9PWk/dm9pZCAwOmkuZGV0ZWN0aW9uTW9kZSl8fDB9bW9uaXRvcih0LGU9ITEpe2NvbnN0IG49eHoodCk7aWYoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcnx8MSE9PW4ubm9kZVR5cGUpcmV0dXJuIEV0KG51bGwpO2NvbnN0IG89SHoobil8fHRoaXMuX2dldERvY3VtZW50KCksaT10aGlzLl9lbGVtZW50SW5mby5nZXQobik7aWYoaSlyZXR1cm4gZSYmKGkuY2hlY2tDaGlsZHJlbj0hMCksaS5zdWJqZWN0O2NvbnN0IGE9e2NoZWNrQ2hpbGRyZW46ZSxzdWJqZWN0Om5ldyBJLHJvb3ROb2RlOm99O3JldHVybiB0aGlzLl9lbGVtZW50SW5mby5zZXQobixhKSx0aGlzLl9yZWdpc3Rlckdsb2JhbExpc3RlbmVycyhhKSxhLnN1YmplY3R9c3RvcE1vbml0b3JpbmcodCl7Y29uc3QgZT14eih0KSxuPXRoaXMuX2VsZW1lbnRJbmZvLmdldChlKTtuJiYobi5zdWJqZWN0LmNvbXBsZXRlKCksdGhpcy5fc2V0Q2xhc3NlcyhlKSx0aGlzLl9lbGVtZW50SW5mby5kZWxldGUoZSksdGhpcy5fcmVtb3ZlR2xvYmFsTGlzdGVuZXJzKG4pKX1mb2N1c1ZpYSh0LGUsbil7Y29uc3Qgbz14eih0KTtvPT09dGhpcy5fZ2V0RG9jdW1lbnQoKS5hY3RpdmVFbGVtZW50P3RoaXMuX2dldENsb3Nlc3RFbGVtZW50c0luZm8obykuZm9yRWFjaCgoKFt0LG5dKT0+dGhpcy5fb3JpZ2luQ2hhbmdlZCh0LGUsbikpKToodGhpcy5fc2V0T3JpZ2luKGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBvLmZvY3VzJiZvLmZvY3VzKG4pKX1uZ09uRGVzdHJveSgpe3RoaXMuX2VsZW1lbnRJbmZvLmZvckVhY2goKCh0LGUpPT50aGlzLnN0b3BNb25pdG9yaW5nKGUpKSl9X2dldERvY3VtZW50KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50fHxkb2N1bWVudH1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2dldERvY3VtZW50KCkuZGVmYXVsdFZpZXd8fHdpbmRvd31fdG9nZ2xlQ2xhc3ModCxlLG4pe24/dC5jbGFzc0xpc3QuYWRkKGUpOnQuY2xhc3NMaXN0LnJlbW92ZShlKX1fZ2V0Rm9jdXNPcmlnaW4odCl7cmV0dXJuIHRoaXMuX29yaWdpbj90aGlzLl9vcmlnaW5Gcm9tVG91Y2hJbnRlcmFjdGlvbj90aGlzLl9zaG91bGRCZUF0dHJpYnV0ZWRUb1RvdWNoKHQpPyJ0b3VjaCI6InByb2dyYW0iOnRoaXMuX29yaWdpbjp0aGlzLl93aW5kb3dGb2N1c2VkJiZ0aGlzLl9sYXN0Rm9jdXNPcmlnaW4/dGhpcy5fbGFzdEZvY3VzT3JpZ2luOiJwcm9ncmFtIn1fc2hvdWxkQmVBdHRyaWJ1dGVkVG9Ub3VjaCh0KXtyZXR1cm4gMT09PXRoaXMuX2RldGVjdGlvbk1vZGV8fCEhKG51bGw9PXQ/dm9pZCAwOnQuY29udGFpbnModGhpcy5faW5wdXRNb2RhbGl0eURldGVjdG9yLl9tb3N0UmVjZW50VGFyZ2V0KSl9X3NldENsYXNzZXModCxlKXt0aGlzLl90b2dnbGVDbGFzcyh0LCJjZGstZm9jdXNlZCIsISFlKSx0aGlzLl90b2dnbGVDbGFzcyh0LCJjZGstdG91Y2gtZm9jdXNlZCIsInRvdWNoIj09PWUpLHRoaXMuX3RvZ2dsZUNsYXNzKHQsImNkay1rZXlib2FyZC1mb2N1c2VkIiwia2V5Ym9hcmQiPT09ZSksdGhpcy5fdG9nZ2xlQ2xhc3ModCwiY2RrLW1vdXNlLWZvY3VzZWQiLCJtb3VzZSI9PT1lKSx0aGlzLl90b2dnbGVDbGFzcyh0LCJjZGstcHJvZ3JhbS1mb2N1c2VkIiwicHJvZ3JhbSI9PT1lKX1fc2V0T3JpZ2luKHQsZT0hMSl7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3RoaXMuX29yaWdpbj10LHRoaXMuX29yaWdpbkZyb21Ub3VjaEludGVyYWN0aW9uPSJ0b3VjaCI9PT10JiZlLDA9PT10aGlzLl9kZXRlY3Rpb25Nb2RlJiYoY2xlYXJUaW1lb3V0KHRoaXMuX29yaWdpblRpbWVvdXRJZCksdGhpcy5fb3JpZ2luVGltZW91dElkPXNldFRpbWVvdXQoKCgpPT50aGlzLl9vcmlnaW49bnVsbCksdGhpcy5fb3JpZ2luRnJvbVRvdWNoSW50ZXJhY3Rpb24/NjUwOjEpKX0pKX1fb25Gb2N1cyh0LGUpe2NvbnN0IG49dGhpcy5fZWxlbWVudEluZm8uZ2V0KGUpLG89THoodCk7biYmKG4uY2hlY2tDaGlsZHJlbnx8ZT09PW8pJiZ0aGlzLl9vcmlnaW5DaGFuZ2VkKGUsdGhpcy5fZ2V0Rm9jdXNPcmlnaW4obyksbil9X29uQmx1cih0LGUpe2NvbnN0IG49dGhpcy5fZWxlbWVudEluZm8uZ2V0KGUpOyFufHxuLmNoZWNrQ2hpbGRyZW4mJnQucmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIE5vZGUmJmUuY29udGFpbnModC5yZWxhdGVkVGFyZ2V0KXx8KHRoaXMuX3NldENsYXNzZXMoZSksdGhpcy5fZW1pdE9yaWdpbihuLnN1YmplY3QsbnVsbCkpfV9lbWl0T3JpZ2luKHQsZSl7dGhpcy5fbmdab25lLnJ1bigoKCk9PnQubmV4dChlKSkpfV9yZWdpc3Rlckdsb2JhbExpc3RlbmVycyh0KXtpZighdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybjtjb25zdCBlPXQucm9vdE5vZGUsbj10aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudC5nZXQoZSl8fDA7bnx8dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX3Jvb3ROb2RlRm9jdXNBbmRCbHVyTGlzdGVuZXIsa0kpLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5fcm9vdE5vZGVGb2N1c0FuZEJsdXJMaXN0ZW5lcixrSSl9KSksdGhpcy5fcm9vdE5vZGVGb2N1c0xpc3RlbmVyQ291bnQuc2V0KGUsbisxKSwxPT0rK3RoaXMuX21vbml0b3JlZEVsZW1lbnRDb3VudCYmKHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0aGlzLl9nZXRXaW5kb3coKS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fd2luZG93Rm9jdXNMaXN0ZW5lcil9KSksdGhpcy5faW5wdXRNb2RhbGl0eURldGVjdG9yLm1vZGFsaXR5RGV0ZWN0ZWQucGlwZShJZSh0aGlzLl9zdG9wSW5wdXRNb2RhbGl0eURldGVjdG9yKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5fc2V0T3JpZ2luKHQsITApfSkpKX1fcmVtb3ZlR2xvYmFsTGlzdGVuZXJzKHQpe2NvbnN0IGU9dC5yb290Tm9kZTtpZih0aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudC5oYXMoZSkpe2NvbnN0IHQ9dGhpcy5fcm9vdE5vZGVGb2N1c0xpc3RlbmVyQ291bnQuZ2V0KGUpO3Q+MT90aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudC5zZXQoZSx0LTEpOihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9yb290Tm9kZUZvY3VzQW5kQmx1ckxpc3RlbmVyLGtJKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX3Jvb3ROb2RlRm9jdXNBbmRCbHVyTGlzdGVuZXIsa0kpLHRoaXMuX3Jvb3ROb2RlRm9jdXNMaXN0ZW5lckNvdW50LmRlbGV0ZShlKSl9LS10aGlzLl9tb25pdG9yZWRFbGVtZW50Q291bnR8fCh0aGlzLl9nZXRXaW5kb3coKS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fd2luZG93Rm9jdXNMaXN0ZW5lciksdGhpcy5fc3RvcElucHV0TW9kYWxpdHlEZXRlY3Rvci5uZXh0KCksY2xlYXJUaW1lb3V0KHRoaXMuX3dpbmRvd0ZvY3VzVGltZW91dElkKSxjbGVhclRpbWVvdXQodGhpcy5fb3JpZ2luVGltZW91dElkKSl9X29yaWdpbkNoYW5nZWQodCxlLG4pe3RoaXMuX3NldENsYXNzZXModCxlKSx0aGlzLl9lbWl0T3JpZ2luKG4uc3ViamVjdCxlKSx0aGlzLl9sYXN0Rm9jdXNPcmlnaW49ZX1fZ2V0Q2xvc2VzdEVsZW1lbnRzSW5mbyh0KXtjb25zdCBlPVtdO3JldHVybiB0aGlzLl9lbGVtZW50SW5mby5mb3JFYWNoKCgobixvKT0+eyhvPT09dHx8bi5jaGVja0NoaWxkcmVuJiZvLmNvbnRhaW5zKHQpKSYmZS5wdXNoKFtvLG5dKX0pKSxlfX1TSS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U0kpKHZyKGFfKSx2cih3eiksdnIoQ0kpLHZyKFpfLDgpLHZyKHdJLDgpKX0sU0kuybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IFNJKHZyKGFfKSx2cih3eiksdnIoQ0kpLHZyKFpfLDgpLHZyKHdJLDgpKX0sdG9rZW46U0kscHJvdmlkZWRJbjoicm9vdCJ9KSxTSS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6Q0l9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbd0ldfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFNJLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOkNJfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3dJXX1dfV19KSxudWxsKTtjbGFzcyBESXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9mb2N1c01vbml0b3I9ZSx0aGlzLmNka0ZvY3VzQ2hhbmdlPW5ldyBMaH1uZ0FmdGVyVmlld0luaXQoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDt0aGlzLl9tb25pdG9yU3Vic2NyaXB0aW9uPXRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHQsMT09PXQubm9kZVR5cGUmJnQuaGFzQXR0cmlidXRlKCJjZGtNb25pdG9yU3VidHJlZUZvY3VzIikpLnN1YnNjcmliZSgodD0+dGhpcy5jZGtGb2N1c0NoYW5nZS5lbWl0KHQpKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZiksdGhpcy5fbW9uaXRvclN1YnNjcmlwdGlvbiYmdGhpcy5fbW9uaXRvclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1ESS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8REkpKFNtKGhnKSxTbShTSSkpfSxESS7JtWRpcj1sbyh7dHlwZTpESSxzZWxlY3RvcnM6W1siIiwiY2RrTW9uaXRvckVsZW1lbnRGb2N1cyIsIiJdLFsiIiwiY2RrTW9uaXRvclN1YnRyZWVGb2N1cyIsIiJdXSxvdXRwdXRzOntjZGtGb2N1c0NoYW5nZToiY2RrRm9jdXNDaGFuZ2UifX0pLERJLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlNJfV0sREkucHJvcERlY29yYXRvcnM9e2Nka0ZvY3VzQ2hhbmdlOlt7dHlwZTpPeX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKERJLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltjZGtNb25pdG9yRWxlbWVudEZvY3VzXSwgW2Nka01vbml0b3JTdWJ0cmVlRm9jdXNdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpTSX1dfSkse2Nka0ZvY3VzQ2hhbmdlOlt7dHlwZTpPeX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBFST0iY2RrLWhpZ2gtY29udHJhc3QtYmxhY2stb24td2hpdGUiLFJJPSJjZGstaGlnaC1jb250cmFzdC13aGl0ZS1vbi1ibGFjayIsQUk9ImNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSI7Y2xhc3MgVEl7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9wbGF0Zm9ybT10LHRoaXMuX2RvY3VtZW50PWV9Z2V0SGlnaENvbnRyYXN0TW9kZSgpe2lmKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpcmV0dXJuIDA7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LnN0eWxlLmJhY2tncm91bmRDb2xvcj0icmdiKDEsMiwzKSIsdC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7Y29uc3QgZT10aGlzLl9kb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93LG49ZSYmZS5nZXRDb21wdXRlZFN0eWxlP2UuZ2V0Q29tcHV0ZWRTdHlsZSh0KTpudWxsLG89KG4mJm4uYmFja2dyb3VuZENvbG9yfHwiIikucmVwbGFjZSgvIC9nLCIiKTtzd2l0Y2godGhpcy5fZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KSxvKXtjYXNlInJnYigwLDAsMCkiOnJldHVybiAyO2Nhc2UicmdiKDI1NSwyNTUsMjU1KSI6cmV0dXJuIDF9cmV0dXJuIDB9X2FwcGx5Qm9keUhpZ2hDb250cmFzdE1vZGVDc3NDbGFzc2VzKCl7aWYoIXRoaXMuX2hhc0NoZWNrZWRIaWdoQ29udHJhc3RNb2RlJiZ0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJnRoaXMuX2RvY3VtZW50LmJvZHkpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Q7dC5yZW1vdmUoQUkpLHQucmVtb3ZlKEVJKSx0LnJlbW92ZShSSSksdGhpcy5faGFzQ2hlY2tlZEhpZ2hDb250cmFzdE1vZGU9ITA7Y29uc3QgZT10aGlzLmdldEhpZ2hDb250cmFzdE1vZGUoKTsxPT09ZT8odC5hZGQoQUkpLHQuYWRkKEVJKSk6Mj09PWUmJih0LmFkZChBSSksdC5hZGQoUkkpKX19fVRJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUSSkodnIod3opLHZyKFpfKSl9LFRJLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBUSSh2cih3eiksdnIoWl8pKX0sdG9rZW46VEkscHJvdmlkZWRJbjoicm9vdCJ9KSxUSS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnd6fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFRJLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIE5Je2NvbnN0cnVjdG9yKHQpe3QuX2FwcGx5Qm9keUhpZ2hDb250cmFzdE1vZGVDc3NDbGFzc2VzKCl9fU5JLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxOSSkodnIoVEkpKX0sTkkuybVtb2Q9YW8oe3R5cGU6Tkl9KSxOSS7JtWluaj12bih7aW1wb3J0czpbW2t6LFV6XV19KSxOSS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlRJfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOSSxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W2t6LFV6XSxkZWNsYXJhdGlvbnM6W1BJLHNJLERJXSxleHBvcnRzOltQSSxzSSxESV19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpUSX1dfSksbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhOSSx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW1BJLHNJLERJXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltreixVel19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bUEksc0ksREldfX0pO2NvbnN0IHpJPW5ldyBHYSgiY2RrLWRpci1kb2MiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIElJKCl7cmV0dXJuIE9yKFpfKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovfSk7Y2xhc3MgSEl7Y29uc3RydWN0b3IodCl7aWYodGhpcy52YWx1ZT0ibHRyIix0aGlzLmNoYW5nZT1uZXcgTGgsdCl7Y29uc3QgZT10LmRvY3VtZW50RWxlbWVudD90LmRvY3VtZW50RWxlbWVudC5kaXI6bnVsbCxuPSh0LmJvZHk/dC5ib2R5LmRpcjpudWxsKXx8ZTt0aGlzLnZhbHVlPSJsdHIiPT09bnx8InJ0bCI9PT1uP246Imx0ciJ9fW5nT25EZXN0cm95KCl7dGhpcy5jaGFuZ2UuY29tcGxldGUoKX19SEkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEhJKSh2cih6SSw4KSl9LEhJLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBISSh2cih6SSw4KSl9LHRva2VuOkhJLHByb3ZpZGVkSW46InJvb3QifSksSEkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3pJXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChISSxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt6SV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBGSXtjb25zdHJ1Y3Rvcigpe3RoaXMuX2Rpcj0ibHRyIix0aGlzLl9pc0luaXRpYWxpemVkPSExLHRoaXMuY2hhbmdlPW5ldyBMaH1nZXQgZGlyKCl7cmV0dXJuIHRoaXMuX2Rpcn1zZXQgZGlyKHQpe2NvbnN0IGU9dGhpcy5fZGlyLG49dD90LnRvTG93ZXJDYXNlKCk6dDt0aGlzLl9yYXdEaXI9dCx0aGlzLl9kaXI9Imx0ciI9PT1ufHwicnRsIj09PW4/bjoibHRyIixlIT09dGhpcy5fZGlyJiZ0aGlzLl9pc0luaXRpYWxpemVkJiZ0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX2Rpcil9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGlyfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2lzSW5pdGlhbGl6ZWQ9ITB9bmdPbkRlc3Ryb3koKXt0aGlzLmNoYW5nZS5jb21wbGV0ZSgpfX1GSS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RkkpfSxGSS7JtWRpcj1sbyh7dHlwZTpGSSxzZWxlY3RvcnM6W1siIiwiZGlyIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJmpwKCJkaXIiLG4uX3Jhd0Rpcil9LGlucHV0czp7ZGlyOiJkaXIifSxvdXRwdXRzOntjaGFuZ2U6ImRpckNoYW5nZSJ9LGV4cG9ydEFzOlsiZGlyIl0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpISSx1c2VFeGlzdGluZzpGSX1dKV19KSxGSS5wcm9wRGVjb3JhdG9ycz17Y2hhbmdlOlt7dHlwZTpPeSxhcmdzOlsiZGlyQ2hhbmdlIl19XSxkaXI6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRkksW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Rpcl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6SEksdXNlRXhpc3Rpbmc6Rkl9XSxob3N0OnsiW2F0dHIuZGlyXSI6Il9yYXdEaXIifSxleHBvcnRBczoiZGlyIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7Y2hhbmdlOlt7dHlwZTpPeSxhcmdzOlsiZGlyQ2hhbmdlIl19XSxkaXI6W3t0eXBlOnh5fV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIExJe31MSS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TEkpfSxMSS7JtW1vZD1hbyh7dHlwZTpMSX0pLExJLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKExJLFt7dHlwZTpBeSxhcmdzOlt7ZXhwb3J0czpbRkldLGRlY2xhcmF0aW9uczpbRkldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oTEkse2RlY2xhcmF0aW9uczpbRkldLGV4cG9ydHM6W0ZJXX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgQkk9bmV3IE9nKCIxMi4yLjEiKSxWST1bIioiLFtbIm1hdC1vcHRpb24iXSxbIm5nLWNvbnRhaW5lciJdXV07ZnVuY3Rpb24gakkodCxlKXtpZigxJnQmJlRtKDAsIm1hdC1wc2V1ZG8tY2hlY2tib3giLDQpLDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJzdGF0ZSIsdC5zZWxlY3RlZD8iY2hlY2tlZCI6InVuY2hlY2tlZCIpKCJkaXNhYmxlZCIsdC5kaXNhYmxlZCl9fWZ1bmN0aW9uIFVJKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsNSksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRHUoIigiLHQuZ3JvdXAubGFiZWwsIikiKX19bmV3IE9nKCIxMi4yLjMiKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEdJe31HSS5TVEFOREFSRF9DVVJWRT0iY3ViaWMtYmV6aWVyKDAuNCwwLjAsMC4yLDEpIixHSS5ERUNFTEVSQVRJT05fQ1VSVkU9ImN1YmljLWJlemllcigwLjAsMC4wLDAuMiwxKSIsR0kuQUNDRUxFUkFUSU9OX0NVUlZFPSJjdWJpYy1iZXppZXIoMC40LDAuMCwxLDEpIixHSS5TSEFSUF9DVVJWRT0iY3ViaWMtYmV6aWVyKDAuNCwwLjAsMC42LDEpIjtjbGFzcyBXSXt9V0kuQ09NUExFWD0iMzc1bXMiLFdJLkVOVEVSSU5HPSIyMjVtcyIsV0kuRVhJVElORz0iMTk1bXMiOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgWUk9bmV3IE9nKCIxMi4yLjMiKSxxST1uZXcgR2EoIm1hdC1zYW5pdHktY2hlY2tzIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBaSSgpe3JldHVybiEwfX0pO2NsYXNzIFhJe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9oYXNEb25lR2xvYmFsQ2hlY2tzPSExLHRoaXMuX2RvY3VtZW50PW4sdC5fYXBwbHlCb2R5SGlnaENvbnRyYXN0TW9kZUNzc0NsYXNzZXMoKSx0aGlzLl9zYW5pdHlDaGVja3M9ZSx0aGlzLl9oYXNEb25lR2xvYmFsQ2hlY2tzfHwodGhpcy5fY2hlY2tEb2N0eXBlSXNEZWZpbmVkKCksdGhpcy5fY2hlY2tUaGVtZUlzUHJlc2VudCgpLHRoaXMuX2NoZWNrQ2RrVmVyc2lvbk1hdGNoKCksdGhpcy5faGFzRG9uZUdsb2JhbENoZWNrcz0hMCl9X2dldFdpbmRvdygpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdztyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJnQ/dDpudWxsfV9jaGVja0lzRW5hYmxlZCh0KXtyZXR1cm4hKCF5XygpfHx0aGlzLl9pc1Rlc3RFbnYoKSkmJigiYm9vbGVhbiI9PXR5cGVvZiB0aGlzLl9zYW5pdHlDaGVja3M/dGhpcy5fc2FuaXR5Q2hlY2tzOiEhdGhpcy5fc2FuaXR5Q2hlY2tzW3RdKX1faXNUZXN0RW52KCl7Y29uc3QgdD10aGlzLl9nZXRXaW5kb3coKTtyZXR1cm4gdCYmKHQuX19rYXJtYV9ffHx0Lmphc21pbmUpfV9jaGVja0RvY3R5cGVJc0RlZmluZWQoKXt0aGlzLl9jaGVja0lzRW5hYmxlZCgiZG9jdHlwZSIpJiYhdGhpcy5fZG9jdW1lbnQuZG9jdHlwZSYmY29uc29sZS53YXJuKCJDdXJyZW50IGRvY3VtZW50IGRvZXMgbm90IGhhdmUgYSBkb2N0eXBlLiBUaGlzIG1heSBjYXVzZSBzb21lIEFuZ3VsYXIgTWF0ZXJpYWwgY29tcG9uZW50cyBub3QgdG8gYmVoYXZlIGFzIGV4cGVjdGVkLiIpfV9jaGVja1RoZW1lSXNQcmVzZW50KCl7aWYoIXRoaXMuX2NoZWNrSXNFbmFibGVkKCJ0aGVtZSIpfHwhdGhpcy5fZG9jdW1lbnQuYm9keXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGdldENvbXB1dGVkU3R5bGUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc0xpc3QuYWRkKCJtYXQtdGhlbWUtbG9hZGVkLW1hcmtlciIpLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7Y29uc3QgZT1nZXRDb21wdXRlZFN0eWxlKHQpO2UmJiJub25lIiE9PWUuZGlzcGxheSYmY29uc29sZS53YXJuKCJDb3VsZCBub3QgZmluZCBBbmd1bGFyIE1hdGVyaWFsIGNvcmUgdGhlbWUuIE1vc3QgTWF0ZXJpYWwgY29tcG9uZW50cyBtYXkgbm90IHdvcmsgYXMgZXhwZWN0ZWQuIEZvciBtb3JlIGluZm8gcmVmZXIgdG8gdGhlIHRoZW1pbmcgZ3VpZGU6IGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9ndWlkZS90aGVtaW5nIiksdGhpcy5fZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KX1fY2hlY2tDZGtWZXJzaW9uTWF0Y2goKXt0aGlzLl9jaGVja0lzRW5hYmxlZCgidmVyc2lvbiIpJiZZSS5mdWxsIT09QkkuZnVsbCYmY29uc29sZS53YXJuKCJUaGUgQW5ndWxhciBNYXRlcmlhbCB2ZXJzaW9uICgiK1lJLmZ1bGwrIikgZG9lcyBub3QgbWF0Y2ggdGhlIEFuZ3VsYXIgQ0RLIHZlcnNpb24gKCIrQkkuZnVsbCsiKS5cblBsZWFzZSBlbnN1cmUgdGhlIHZlcnNpb25zIG9mIHRoZXNlIHR3byBwYWNrYWdlcyBleGFjdGx5IG1hdGNoLiIpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIEtJKHQpe3JldHVybiBjbGFzcyBleHRlbmRzIHR7Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5fZGlzYWJsZWQ9ITF9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD15eih0KX19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBKSSh0LGUpe3JldHVybiBjbGFzcyBleHRlbmRzIHR7Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5kZWZhdWx0Q29sb3I9ZSx0aGlzLmNvbG9yPWV9Z2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuX2NvbG9yfXNldCBjb2xvcih0KXtjb25zdCBlPXR8fHRoaXMuZGVmYXVsdENvbG9yO2UhPT10aGlzLl9jb2xvciYmKHRoaXMuX2NvbG9yJiZ0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShgbWF0LSR7dGhpcy5fY29sb3J9YCksZSYmdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG1hdC0ke2V9YCksdGhpcy5fY29sb3I9ZSl9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gUUkodCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLl9kaXNhYmxlUmlwcGxlPSExfWdldCBkaXNhYmxlUmlwcGxlKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVSaXBwbGV9c2V0IGRpc2FibGVSaXBwbGUodCl7dGhpcy5fZGlzYWJsZVJpcHBsZT15eih0KX19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiAkSSh0LGU9MCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLl90YWJJbmRleD1lLHRoaXMuZGVmYXVsdFRhYkluZGV4PWV9Z2V0IHRhYkluZGV4KCl7cmV0dXJuIHRoaXMuZGlzYWJsZWQ/LTE6dGhpcy5fdGFiSW5kZXh9c2V0IHRhYkluZGV4KHQpe3RoaXMuX3RhYkluZGV4PW51bGwhPXQ/X3oodCk6dGhpcy5kZWZhdWx0VGFiSW5kZXh9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gdEgodCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLnN0YXRlQ2hhbmdlcz1uZXcgSSx0aGlzLmVycm9yU3RhdGU9ITF9dXBkYXRlRXJyb3JTdGF0ZSgpe2NvbnN0IHQ9dGhpcy5lcnJvclN0YXRlLGU9KHRoaXMuZXJyb3JTdGF0ZU1hdGNoZXJ8fHRoaXMuX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcikuaXNFcnJvclN0YXRlKHRoaXMubmdDb250cm9sP3RoaXMubmdDb250cm9sLmNvbnRyb2w6bnVsbCx0aGlzLl9wYXJlbnRGb3JtR3JvdXB8fHRoaXMuX3BhcmVudEZvcm0pO2UhPT10JiYodGhpcy5lcnJvclN0YXRlPWUsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBlSCh0KXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e2NvbnN0cnVjdG9yKC4uLnQpe3N1cGVyKC4uLnQpLHRoaXMuX2lzSW5pdGlhbGl6ZWQ9ITEsdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzPVtdLHRoaXMuaW5pdGlhbGl6ZWQ9bmV3IEQoKHQ9Pnt0aGlzLl9pc0luaXRpYWxpemVkP3RoaXMuX25vdGlmeVN1YnNjcmliZXIodCk6dGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzLnB1c2godCl9KSl9X21hcmtJbml0aWFsaXplZCgpe2lmKHRoaXMuX2lzSW5pdGlhbGl6ZWQmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiVGhpcyBkaXJlY3RpdmUgaGFzIGFscmVhZHkgYmVlbiBtYXJrZWQgYXMgaW5pdGlhbGl6ZWQgYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIHR3aWNlLiIpO3RoaXMuX2lzSW5pdGlhbGl6ZWQ9ITAsdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzLmZvckVhY2godGhpcy5fbm90aWZ5U3Vic2NyaWJlciksdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzPW51bGx9X25vdGlmeVN1YnNjcmliZXIodCl7dC5uZXh0KCksdC5jb21wbGV0ZSgpfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9YSS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WEkpKHZyKFRJKSx2cihxSSw4KSx2cihaXykpfSxYSS7JtW1vZD1hbyh7dHlwZTpYSX0pLFhJLsm1aW5qPXZuKHtpbXBvcnRzOltbTEldLExJXX0pLFhJLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6VEl9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbcUldfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWEksW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltMSV0sZXhwb3J0czpbTEldfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VEl9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbcUldfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhYSSx7aW1wb3J0czpmdW5jdGlvbigpe3JldHVybltMSV19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTEldfX0pO2NvbnN0IG5IPW5ldyBHYSgiTUFUX0RBVEVfTE9DQUxFIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBvSCgpe3JldHVybiBPcihXeSl9fSk7Y2xhc3MgaUh7Y29uc3RydWN0b3IoKXt0aGlzLl9sb2NhbGVDaGFuZ2VzPW5ldyBJLHRoaXMubG9jYWxlQ2hhbmdlcz10aGlzLl9sb2NhbGVDaGFuZ2VzfWdldFZhbGlkRGF0ZU9yTnVsbCh0KXtyZXR1cm4gdGhpcy5pc0RhdGVJbnN0YW5jZSh0KSYmdGhpcy5pc1ZhbGlkKHQpP3Q6bnVsbH1kZXNlcmlhbGl6ZSh0KXtyZXR1cm4gbnVsbD09dHx8dGhpcy5pc0RhdGVJbnN0YW5jZSh0KSYmdGhpcy5pc1ZhbGlkKHQpP3Q6dGhpcy5pbnZhbGlkKCl9c2V0TG9jYWxlKHQpe3RoaXMubG9jYWxlPXQsdGhpcy5fbG9jYWxlQ2hhbmdlcy5uZXh0KCl9Y29tcGFyZURhdGUodCxlKXtyZXR1cm4gdGhpcy5nZXRZZWFyKHQpLXRoaXMuZ2V0WWVhcihlKXx8dGhpcy5nZXRNb250aCh0KS10aGlzLmdldE1vbnRoKGUpfHx0aGlzLmdldERhdGUodCktdGhpcy5nZXREYXRlKGUpfXNhbWVEYXRlKHQsZSl7aWYodCYmZSl7bGV0IG49dGhpcy5pc1ZhbGlkKHQpLG89dGhpcy5pc1ZhbGlkKGUpO3JldHVybiBuJiZvPyF0aGlzLmNvbXBhcmVEYXRlKHQsZSk6bj09b31yZXR1cm4gdD09ZX1jbGFtcERhdGUodCxlLG4pe3JldHVybiBlJiZ0aGlzLmNvbXBhcmVEYXRlKHQsZSk8MD9lOm4mJnRoaXMuY29tcGFyZURhdGUodCxuKT4wP246dH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IGFIPW5ldyBHYSgibWF0LWRhdGUtZm9ybWF0cyIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgckg7dHJ5e3JIPSJ1bmRlZmluZWQiIT10eXBlb2YgSW50bH1jYXRjaChqQ3Qpe3JIPSExfWNvbnN0IHNIPXtsb25nOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxzaG9ydDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLG5hcnJvdzpbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdfSxsSD1wSCgzMSwodD0+U3RyaW5nKHQrMSkpKSxjSD17bG9uZzpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxuYXJyb3c6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl19LGRIPS9eXGR7NH0tXGR7Mn0tXGR7Mn0oPzpUXGR7Mn06XGR7Mn06XGR7Mn0oPzpcLlxkKyk/KD86WnwoPzooPzpcK3wtKVxkezJ9OlxkezJ9KSk/KT8kLztmdW5jdGlvbiBwSCh0LGUpe2NvbnN0IG49QXJyYXkodCk7Zm9yKGxldCBvPTA7bzx0O28rKyluW29dPWUobyk7cmV0dXJuIG59Y2xhc3MgbUggZXh0ZW5kcyBpSHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy51c2VVdGNGb3JEaXNwbGF5PSEwLHN1cGVyLnNldExvY2FsZSh0KSx0aGlzLnVzZVV0Y0ZvckRpc3BsYXk9IWUuVFJJREVOVCx0aGlzLl9jbGFtcERhdGU9ZS5UUklERU5UfHxlLkVER0V9Z2V0WWVhcih0KXtyZXR1cm4gdC5nZXRGdWxsWWVhcigpfWdldE1vbnRoKHQpe3JldHVybiB0LmdldE1vbnRoKCl9Z2V0RGF0ZSh0KXtyZXR1cm4gdC5nZXREYXRlKCl9Z2V0RGF5T2ZXZWVrKHQpe3JldHVybiB0LmdldERheSgpfWdldE1vbnRoTmFtZXModCl7aWYockgpe2NvbnN0IGU9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGUse21vbnRoOnQsdGltZVpvbmU6InV0YyJ9KTtyZXR1cm4gcEgoMTIsKHQ9PnRoaXMuX3N0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKHRoaXMuX2Zvcm1hdChlLG5ldyBEYXRlKDIwMTcsdCwxKSkpKSl9cmV0dXJuIHNIW3RdfWdldERhdGVOYW1lcygpe2lmKHJIKXtjb25zdCB0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMubG9jYWxlLHtkYXk6Im51bWVyaWMiLHRpbWVab25lOiJ1dGMifSk7cmV0dXJuIHBIKDMxLChlPT50aGlzLl9zdHJpcERpcmVjdGlvbmFsaXR5Q2hhcmFjdGVycyh0aGlzLl9mb3JtYXQodCxuZXcgRGF0ZSgyMDE3LDAsZSsxKSkpKSl9cmV0dXJuIGxIfWdldERheU9mV2Vla05hbWVzKHQpe2lmKHJIKXtjb25zdCBlPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMubG9jYWxlLHt3ZWVrZGF5OnQsdGltZVpvbmU6InV0YyJ9KTtyZXR1cm4gcEgoNywodD0+dGhpcy5fc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnModGhpcy5fZm9ybWF0KGUsbmV3IERhdGUoMjAxNywwLHQrMSkpKSkpfXJldHVybiBjSFt0XX1nZXRZZWFyTmFtZSh0KXtpZihySCl7Y29uc3QgZT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmxvY2FsZSx7eWVhcjoibnVtZXJpYyIsdGltZVpvbmU6InV0YyJ9KTtyZXR1cm4gdGhpcy5fc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnModGhpcy5fZm9ybWF0KGUsdCkpfXJldHVybiBTdHJpbmcodGhpcy5nZXRZZWFyKHQpKX1nZXRGaXJzdERheU9mV2Vlaygpe3JldHVybiAwfWdldE51bURheXNJbk1vbnRoKHQpe3JldHVybiB0aGlzLmdldERhdGUodGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIodCksdGhpcy5nZXRNb250aCh0KSsxLDApKX1jbG9uZSh0KXtyZXR1cm4gbmV3IERhdGUodC5nZXRUaW1lKCkpfWNyZWF0ZURhdGUodCxlLG4pe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpe2lmKGU8MHx8ZT4xMSl0aHJvdyBFcnJvcihgSW52YWxpZCBtb250aCBpbmRleCAiJHtlfSIuIE1vbnRoIGluZGV4IGhhcyB0byBiZSBiZXR3ZWVuIDAgYW5kIDExLmApO2lmKG48MSl0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlICIke259Ii4gRGF0ZSBoYXMgdG8gYmUgZ3JlYXRlciB0aGFuIDAuYCl9bGV0IG89dGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0LGUsbik7aWYoby5nZXRNb250aCgpIT1lJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSAiJHtufSIgZm9yIG1vbnRoIHdpdGggaW5kZXggIiR7ZX0iLmApO3JldHVybiBvfXRvZGF5KCl7cmV0dXJuIG5ldyBEYXRlfXBhcnNlKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdD9uZXcgRGF0ZSh0KTp0P25ldyBEYXRlKERhdGUucGFyc2UodCkpOm51bGx9Zm9ybWF0KHQsZSl7aWYoIXRoaXMuaXNWYWxpZCh0KSl0aHJvdyBFcnJvcigiTmF0aXZlRGF0ZUFkYXB0ZXI6IENhbm5vdCBmb3JtYXQgaW52YWxpZCBkYXRlLiIpO2lmKHJIKXt0aGlzLl9jbGFtcERhdGUmJih0LmdldEZ1bGxZZWFyKCk8MXx8dC5nZXRGdWxsWWVhcigpPjk5OTkpJiYodD10aGlzLmNsb25lKHQpKS5zZXRGdWxsWWVhcihNYXRoLm1heCgxLE1hdGgubWluKDk5OTksdC5nZXRGdWxsWWVhcigpKSkpLGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHt0aW1lWm9uZToidXRjIn0pO2NvbnN0IG49bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGUsZSk7cmV0dXJuIHRoaXMuX3N0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKHRoaXMuX2Zvcm1hdChuLHQpKX1yZXR1cm4gdGhpcy5fc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnModC50b0RhdGVTdHJpbmcoKSl9YWRkQ2FsZW5kYXJZZWFycyh0LGUpe3JldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKHQsMTIqZSl9YWRkQ2FsZW5kYXJNb250aHModCxlKXtsZXQgbj10aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcih0KSx0aGlzLmdldE1vbnRoKHQpK2UsdGhpcy5nZXREYXRlKHQpKTtyZXR1cm4gdGhpcy5nZXRNb250aChuKSE9KCh0aGlzLmdldE1vbnRoKHQpK2UpJTEyKzEyKSUxMiYmKG49dGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIobiksdGhpcy5nZXRNb250aChuKSwwKSksbn1hZGRDYWxlbmRhckRheXModCxlKXtyZXR1cm4gdGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIodCksdGhpcy5nZXRNb250aCh0KSx0aGlzLmdldERhdGUodCkrZSl9dG9Jc284NjAxKHQpe3JldHVyblt0LmdldFVUQ0Z1bGxZZWFyKCksdGhpcy5fMmRpZ2l0KHQuZ2V0VVRDTW9udGgoKSsxKSx0aGlzLl8yZGlnaXQodC5nZXRVVENEYXRlKCkpXS5qb2luKCItIil9ZGVzZXJpYWxpemUodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZighdClyZXR1cm4gbnVsbDtpZihkSC50ZXN0KHQpKXtsZXQgZT1uZXcgRGF0ZSh0KTtpZih0aGlzLmlzVmFsaWQoZSkpcmV0dXJuIGV9fXJldHVybiBzdXBlci5kZXNlcmlhbGl6ZSh0KX1pc0RhdGVJbnN0YW5jZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGV9aXNWYWxpZCh0KXtyZXR1cm4haXNOYU4odC5nZXRUaW1lKCkpfWludmFsaWQoKXtyZXR1cm4gbmV3IERhdGUoTmFOKX1fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0LGUsbil7Y29uc3Qgbz1uZXcgRGF0ZTtyZXR1cm4gby5zZXRGdWxsWWVhcih0LGUsbiksby5zZXRIb3VycygwLDAsMCwwKSxvfV8yZGlnaXQodCl7cmV0dXJuKCIwMCIrdCkuc2xpY2UoLTIpfV9zdHJpcERpcmVjdGlvbmFsaXR5Q2hhcmFjdGVycyh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bXHUyMDBlXHUyMDBmXS9nLCIiKX1fZm9ybWF0KHQsZSl7Y29uc3Qgbj1uZXcgRGF0ZTtyZXR1cm4gbi5zZXRVVENGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpLGUuZ2V0RGF0ZSgpKSxuLnNldFVUQ0hvdXJzKGUuZ2V0SG91cnMoKSxlLmdldE1pbnV0ZXMoKSxlLmdldFNlY29uZHMoKSxlLmdldE1pbGxpc2Vjb25kcygpKSx0LmZvcm1hdChuKX19bUguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG1IKSh2cihuSCw4KSx2cih3eikpfSxtSC7JtXByb3Y9TW4oe3Rva2VuOm1ILGZhY3Rvcnk6bUguybVmYWN9KSxtSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbbkhdfV19LHt0eXBlOnd6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChtSCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltuSF19XX0se3R5cGU6d3p9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgdUh7fXVILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx1SCl9LHVILsm1bW9kPWFvKHt0eXBlOnVIfSksdUguybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6aUgsdXNlQ2xhc3M6bUh9XSxpbXBvcnRzOltba3pdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodUgsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltrel0scHJvdmlkZXJzOlt7cHJvdmlkZTppSCx1c2VDbGFzczptSH1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8odUgse2ltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5ba3pdfX0pO2NvbnN0IGZIPXtwYXJzZTp7ZGF0ZUlucHV0Om51bGx9LGRpc3BsYXk6e2RhdGVJbnB1dDp7eWVhcjoibnVtZXJpYyIsbW9udGg6Im51bWVyaWMiLGRheToibnVtZXJpYyJ9LG1vbnRoWWVhckxhYmVsOnt5ZWFyOiJudW1lcmljIixtb250aDoic2hvcnQifSxkYXRlQTExeUxhYmVsOnt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyIsZGF5OiJudW1lcmljIn0sbW9udGhZZWFyQTExeUxhYmVsOnt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyJ9fX07Y2xhc3MgZ0h7fWdILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxnSCl9LGdILsm1bW9kPWFvKHt0eXBlOmdIfSksZ0guybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6YUgsdXNlVmFsdWU6Zkh9XSxpbXBvcnRzOltbdUhdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZ0gsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOlt1SF0scHJvdmlkZXJzOlt7cHJvdmlkZTphSCx1c2VWYWx1ZTpmSH1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZ0gse2ltcG9ydHM6W3VIXX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgaEh7aXNFcnJvclN0YXRlKHQsZSl7cmV0dXJuISEodCYmdC5pbnZhbGlkJiYodC5kaXJ0eXx8ZSYmZS5zdWJtaXR0ZWQpKX19aEguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGhIKX0saEguybVwcm92PU1uKHt0b2tlbjpoSCxmYWN0b3J5OmhILsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChoSCxbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIGJIe2lzRXJyb3JTdGF0ZSh0LGUpe3JldHVybiEhKHQmJnQuaW52YWxpZCYmKHQudG91Y2hlZHx8ZSYmZS5zdWJtaXR0ZWQpKX19YkguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGJIKX0sYkguybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IGJIfSx0b2tlbjpiSCxwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYkgsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHlIe315SC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eUgpfSx5SC7JtWRpcj1sbyh7dHlwZTp5SCxzZWxlY3RvcnM6W1siIiwibWF0LWxpbmUiLCIiXSxbIiIsIm1hdExpbmUiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtbGluZSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh5SCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0LWxpbmVdLCBbbWF0TGluZV0iLGhvc3Q6e2NsYXNzOiJtYXQtbGluZSJ9fV19XSxudWxsLG51bGwpO2NsYXNzIF9Ie31fSC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8X0gpfSxfSC7JtW1vZD1hbyh7dHlwZTpfSH0pLF9ILsm1aW5qPXZuKHtpbXBvcnRzOltbWEldLFhJXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoX0gsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltYSV0sZXhwb3J0czpbeUgsWEldLGRlY2xhcmF0aW9uczpbeUhdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oX0gse2RlY2xhcmF0aW9uczpbeUhdLGltcG9ydHM6W1hJXSxleHBvcnRzOlt5SCxYSV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIENIe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9yZW5kZXJlcj10LHRoaXMuZWxlbWVudD1lLHRoaXMuY29uZmlnPW4sdGhpcy5zdGF0ZT0zfWZhZGVPdXQoKXt0aGlzLl9yZW5kZXJlci5mYWRlT3V0UmlwcGxlKHRoaXMpfX1jb25zdCBNSD17ZW50ZXJEdXJhdGlvbjoyMjUsZXhpdER1cmF0aW9uOjE1MH0sdkg9Tnooe3Bhc3NpdmU6ITB9KSx4SD1bIm1vdXNlZG93biIsInRvdWNoc3RhcnQiXSxPSD1bIm1vdXNldXAiLCJtb3VzZWxlYXZlIiwidG91Y2hlbmQiLCJ0b3VjaGNhbmNlbCJdO2NsYXNzIFBIe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX3RhcmdldD10LHRoaXMuX25nWm9uZT1lLHRoaXMuX2lzUG9pbnRlckRvd249ITEsdGhpcy5fYWN0aXZlUmlwcGxlcz1uZXcgU2V0LHRoaXMuX3BvaW50ZXJVcEV2ZW50c1JlZ2lzdGVyZWQ9ITEsby5pc0Jyb3dzZXImJih0aGlzLl9jb250YWluZXJFbGVtZW50PXh6KG4pKX1mYWRlSW5SaXBwbGUodCxlLG49e30pe2NvbnN0IG89dGhpcy5fY29udGFpbmVyUmVjdD10aGlzLl9jb250YWluZXJSZWN0fHx0aGlzLl9jb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE1IKSxuLmFuaW1hdGlvbik7bi5jZW50ZXJlZCYmKHQ9by5sZWZ0K28ud2lkdGgvMixlPW8udG9wK28uaGVpZ2h0LzIpO2NvbnN0IGE9bi5yYWRpdXN8fChmdW5jdGlvbiByKHQsZSxuKXtjb25zdCBvPU1hdGgubWF4KE1hdGguYWJzKHQtbi5sZWZ0KSxNYXRoLmFicyh0LW4ucmlnaHQpKSxpPU1hdGgubWF4KE1hdGguYWJzKGUtbi50b3ApLE1hdGguYWJzKGUtbi5ib3R0b20pKTtyZXR1cm4gTWF0aC5zcXJ0KG8qbytpKmkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQsZSxvKSxzPXQtby5sZWZ0LGw9ZS1vLnRvcCxjPWkuZW50ZXJEdXJhdGlvbixkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuY2xhc3NMaXN0LmFkZCgibWF0LXJpcHBsZS1lbGVtZW50IiksZC5zdHlsZS5sZWZ0PXMtYSsicHgiLGQuc3R5bGUudG9wPWwtYSsicHgiLGQuc3R5bGUuaGVpZ2h0PTIqYSsicHgiLGQuc3R5bGUud2lkdGg9MiphKyJweCIsbnVsbCE9bi5jb2xvciYmKGQuc3R5bGUuYmFja2dyb3VuZENvbG9yPW4uY29sb3IpLGQuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPWAke2N9bXNgLHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQoZCksKGZ1bmN0aW9uIHAodCl7d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZ2V0UHJvcGVydHlWYWx1ZSgib3BhY2l0eSIpfSkoZCksZC5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIjtjb25zdCBtPW5ldyBDSCh0aGlzLGQsbik7cmV0dXJuIG0uc3RhdGU9MCx0aGlzLl9hY3RpdmVSaXBwbGVzLmFkZChtKSxuLnBlcnNpc3RlbnR8fCh0aGlzLl9tb3N0UmVjZW50VHJhbnNpZW50UmlwcGxlPW0pLHRoaXMuX3J1blRpbWVvdXRPdXRzaWRlWm9uZSgoKCk9Pntjb25zdCB0PW09PT10aGlzLl9tb3N0UmVjZW50VHJhbnNpZW50UmlwcGxlO20uc3RhdGU9MSxuLnBlcnNpc3RlbnR8fHQmJnRoaXMuX2lzUG9pbnRlckRvd258fG0uZmFkZU91dCgpfSksYyksbX1mYWRlT3V0UmlwcGxlKHQpe2NvbnN0IGU9dGhpcy5fYWN0aXZlUmlwcGxlcy5kZWxldGUodCk7aWYodD09PXRoaXMuX21vc3RSZWNlbnRUcmFuc2llbnRSaXBwbGUmJih0aGlzLl9tb3N0UmVjZW50VHJhbnNpZW50UmlwcGxlPW51bGwpLHRoaXMuX2FjdGl2ZVJpcHBsZXMuc2l6ZXx8KHRoaXMuX2NvbnRhaW5lclJlY3Q9bnVsbCksIWUpcmV0dXJuO2NvbnN0IG49dC5lbGVtZW50LG89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE1IKSx0LmNvbmZpZy5hbmltYXRpb24pO24uc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPWAke28uZXhpdER1cmF0aW9ufW1zYCxuLnN0eWxlLm9wYWNpdHk9IjAiLHQuc3RhdGU9Mix0aGlzLl9ydW5UaW1lb3V0T3V0c2lkZVpvbmUoKCgpPT57dC5zdGF0ZT0zLG4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKX0pLG8uZXhpdER1cmF0aW9uKX1mYWRlT3V0QWxsKCl7dGhpcy5fYWN0aXZlUmlwcGxlcy5mb3JFYWNoKCh0PT50LmZhZGVPdXQoKSkpfWZhZGVPdXRBbGxOb25QZXJzaXN0ZW50KCl7dGhpcy5fYWN0aXZlUmlwcGxlcy5mb3JFYWNoKCh0PT57dC5jb25maWcucGVyc2lzdGVudHx8dC5mYWRlT3V0KCl9KSl9c2V0dXBUcmlnZ2VyRXZlbnRzKHQpe2NvbnN0IGU9eHoodCk7ZSYmZSE9PXRoaXMuX3RyaWdnZXJFbGVtZW50JiYodGhpcy5fcmVtb3ZlVHJpZ2dlckV2ZW50cygpLHRoaXMuX3RyaWdnZXJFbGVtZW50PWUsdGhpcy5fcmVnaXN0ZXJFdmVudHMoeEgpKX1oYW5kbGVFdmVudCh0KXsibW91c2Vkb3duIj09PXQudHlwZT90aGlzLl9vbk1vdXNlZG93bih0KToidG91Y2hzdGFydCI9PT10LnR5cGU/dGhpcy5fb25Ub3VjaFN0YXJ0KHQpOnRoaXMuX29uUG9pbnRlclVwKCksdGhpcy5fcG9pbnRlclVwRXZlbnRzUmVnaXN0ZXJlZHx8KHRoaXMuX3JlZ2lzdGVyRXZlbnRzKE9IKSx0aGlzLl9wb2ludGVyVXBFdmVudHNSZWdpc3RlcmVkPSEwKX1fb25Nb3VzZWRvd24odCl7Y29uc3QgZT1nSSh0KSxuPXRoaXMuX2xhc3RUb3VjaFN0YXJ0RXZlbnQmJkRhdGUubm93KCk8dGhpcy5fbGFzdFRvdWNoU3RhcnRFdmVudCs4MDA7dGhpcy5fdGFyZ2V0LnJpcHBsZURpc2FibGVkfHxlfHxufHwodGhpcy5faXNQb2ludGVyRG93bj0hMCx0aGlzLmZhZGVJblJpcHBsZSh0LmNsaWVudFgsdC5jbGllbnRZLHRoaXMuX3RhcmdldC5yaXBwbGVDb25maWcpKX1fb25Ub3VjaFN0YXJ0KHQpe2lmKCF0aGlzLl90YXJnZXQucmlwcGxlRGlzYWJsZWQmJiFoSSh0KSl7dGhpcy5fbGFzdFRvdWNoU3RhcnRFdmVudD1EYXRlLm5vdygpLHRoaXMuX2lzUG9pbnRlckRvd249ITA7Y29uc3QgZT10LmNoYW5nZWRUb3VjaGVzO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXRoaXMuZmFkZUluUmlwcGxlKGVbdF0uY2xpZW50WCxlW3RdLmNsaWVudFksdGhpcy5fdGFyZ2V0LnJpcHBsZUNvbmZpZyl9fV9vblBvaW50ZXJVcCgpe3RoaXMuX2lzUG9pbnRlckRvd24mJih0aGlzLl9pc1BvaW50ZXJEb3duPSExLHRoaXMuX2FjdGl2ZVJpcHBsZXMuZm9yRWFjaCgodD0+eyF0LmNvbmZpZy5wZXJzaXN0ZW50JiYoMT09PXQuc3RhdGV8fHQuY29uZmlnLnRlcm1pbmF0ZU9uUG9pbnRlclVwJiYwPT09dC5zdGF0ZSkmJnQuZmFkZU91dCgpfSkpKX1fcnVuVGltZW91dE91dHNpZGVab25lKHQsZT0wKXt0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5zZXRUaW1lb3V0KHQsZSkpKX1fcmVnaXN0ZXJFdmVudHModCl7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3QuZm9yRWFjaCgodD0+e3RoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodCx0aGlzLHZIKX0pKX0pKX1fcmVtb3ZlVHJpZ2dlckV2ZW50cygpe3RoaXMuX3RyaWdnZXJFbGVtZW50JiYoeEguZm9yRWFjaCgodD0+e3RoaXMuX3RyaWdnZXJFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodCx0aGlzLHZIKX0pKSx0aGlzLl9wb2ludGVyVXBFdmVudHNSZWdpc3RlcmVkJiZPSC5mb3JFYWNoKCh0PT57dGhpcy5fdHJpZ2dlckVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LHRoaXMsdkgpfSkpKX19Y29uc3Qgd0g9bmV3IEdhKCJtYXQtcmlwcGxlLWdsb2JhbC1vcHRpb25zIik7Y2xhc3Mga0h7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fYW5pbWF0aW9uTW9kZT1pLHRoaXMucmFkaXVzPTAsdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5faXNJbml0aWFsaXplZD0hMSx0aGlzLl9nbG9iYWxPcHRpb25zPW98fHt9LHRoaXMuX3JpcHBsZVJlbmRlcmVyPW5ldyBQSCh0aGlzLGUsdCxuKX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR9c2V0IGRpc2FibGVkKHQpe3QmJnRoaXMuZmFkZU91dEFsbE5vblBlcnNpc3RlbnQoKSx0aGlzLl9kaXNhYmxlZD10LHRoaXMuX3NldHVwVHJpZ2dlckV2ZW50c0lmRW5hYmxlZCgpfWdldCB0cmlnZ2VyKCl7cmV0dXJuIHRoaXMuX3RyaWdnZXJ8fHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudH1zZXQgdHJpZ2dlcih0KXt0aGlzLl90cmlnZ2VyPXQsdGhpcy5fc2V0dXBUcmlnZ2VyRXZlbnRzSWZFbmFibGVkKCl9bmdPbkluaXQoKXt0aGlzLl9pc0luaXRpYWxpemVkPSEwLHRoaXMuX3NldHVwVHJpZ2dlckV2ZW50c0lmRW5hYmxlZCgpfW5nT25EZXN0cm95KCl7dGhpcy5fcmlwcGxlUmVuZGVyZXIuX3JlbW92ZVRyaWdnZXJFdmVudHMoKX1mYWRlT3V0QWxsKCl7dGhpcy5fcmlwcGxlUmVuZGVyZXIuZmFkZU91dEFsbCgpfWZhZGVPdXRBbGxOb25QZXJzaXN0ZW50KCl7dGhpcy5fcmlwcGxlUmVuZGVyZXIuZmFkZU91dEFsbE5vblBlcnNpc3RlbnQoKX1nZXQgcmlwcGxlQ29uZmlnKCl7cmV0dXJue2NlbnRlcmVkOnRoaXMuY2VudGVyZWQscmFkaXVzOnRoaXMucmFkaXVzLGNvbG9yOnRoaXMuY29sb3IsYW5pbWF0aW9uOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuX2dsb2JhbE9wdGlvbnMuYW5pbWF0aW9uKSwiTm9vcEFuaW1hdGlvbnMiPT09dGhpcy5fYW5pbWF0aW9uTW9kZT97ZW50ZXJEdXJhdGlvbjowLGV4aXREdXJhdGlvbjowfTp7fSksdGhpcy5hbmltYXRpb24pLHRlcm1pbmF0ZU9uUG9pbnRlclVwOnRoaXMuX2dsb2JhbE9wdGlvbnMudGVybWluYXRlT25Qb2ludGVyVXB9fWdldCByaXBwbGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHwhIXRoaXMuX2dsb2JhbE9wdGlvbnMuZGlzYWJsZWR9X3NldHVwVHJpZ2dlckV2ZW50c0lmRW5hYmxlZCgpeyF0aGlzLmRpc2FibGVkJiZ0aGlzLl9pc0luaXRpYWxpemVkJiZ0aGlzLl9yaXBwbGVSZW5kZXJlci5zZXR1cFRyaWdnZXJFdmVudHModGhpcy50cmlnZ2VyKX1sYXVuY2godCxlPTAsbil7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3RoaXMuX3JpcHBsZVJlbmRlcmVyLmZhZGVJblJpcHBsZSh0LGUsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMucmlwcGxlQ29uZmlnKSxuKSk6dGhpcy5fcmlwcGxlUmVuZGVyZXIuZmFkZUluUmlwcGxlKDAsMCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5yaXBwbGVDb25maWcpLHQpKX19a0guybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGtIKShTbShoZyksU20oYV8pLFNtKHd6KSxTbSh3SCw4KSxTbShWUCw4KSl9LGtILsm1ZGlyPWxvKHt0eXBlOmtILHNlbGVjdG9yczpbWyIiLCJtYXQtcmlwcGxlIiwiIl0sWyIiLCJtYXRSaXBwbGUiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtcmlwcGxlIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoIm1hdC1yaXBwbGUtdW5ib3VuZGVkIixuLnVuYm91bmRlZCl9LGlucHV0czp7cmFkaXVzOlsibWF0UmlwcGxlUmFkaXVzIiwicmFkaXVzIl0sZGlzYWJsZWQ6WyJtYXRSaXBwbGVEaXNhYmxlZCIsImRpc2FibGVkIl0sdHJpZ2dlcjpbIm1hdFJpcHBsZVRyaWdnZXIiLCJ0cmlnZ2VyIl0sY29sb3I6WyJtYXRSaXBwbGVDb2xvciIsImNvbG9yIl0sdW5ib3VuZGVkOlsibWF0UmlwcGxlVW5ib3VuZGVkIiwidW5ib3VuZGVkIl0sY2VudGVyZWQ6WyJtYXRSaXBwbGVDZW50ZXJlZCIsImNlbnRlcmVkIl0sYW5pbWF0aW9uOlsibWF0UmlwcGxlQW5pbWF0aW9uIiwiYW5pbWF0aW9uIl19LGV4cG9ydEFzOlsibWF0UmlwcGxlIl19KSxrSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbd0hdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XSxrSC5wcm9wRGVjb3JhdG9ycz17Y29sb3I6W3t0eXBlOnh5LGFyZ3M6WyJtYXRSaXBwbGVDb2xvciJdfV0sdW5ib3VuZGVkOlt7dHlwZTp4eSxhcmdzOlsibWF0UmlwcGxlVW5ib3VuZGVkIl19XSxjZW50ZXJlZDpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZUNlbnRlcmVkIl19XSxyYWRpdXM6W3t0eXBlOnh5LGFyZ3M6WyJtYXRSaXBwbGVSYWRpdXMiXX1dLGFuaW1hdGlvbjpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZUFuaW1hdGlvbiJdfV0sZGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRSaXBwbGVEaXNhYmxlZCJdfV0sdHJpZ2dlcjpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZVRyaWdnZXIiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGtILFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXQtcmlwcGxlXSwgW21hdFJpcHBsZV0iLGV4cG9ydEFzOiJtYXRSaXBwbGUiLGhvc3Q6e2NsYXNzOiJtYXQtcmlwcGxlIiwiW2NsYXNzLm1hdC1yaXBwbGUtdW5ib3VuZGVkXSI6InVuYm91bmRlZCJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt3SF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse3JhZGl1czpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZVJhZGl1cyJdfV0sZGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRSaXBwbGVEaXNhYmxlZCJdfV0sdHJpZ2dlcjpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZVRyaWdnZXIiXX1dLGNvbG9yOlt7dHlwZTp4eSxhcmdzOlsibWF0UmlwcGxlQ29sb3IiXX1dLHVuYm91bmRlZDpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZVVuYm91bmRlZCJdfV0sY2VudGVyZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRSaXBwbGVDZW50ZXJlZCJdfV0sYW5pbWF0aW9uOlt7dHlwZTp4eSxhcmdzOlsibWF0UmlwcGxlQW5pbWF0aW9uIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgU0h7fVNILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxTSCl9LFNILsm1bW9kPWFvKHt0eXBlOlNIfSksU0guybVpbmo9dm4oe2ltcG9ydHM6W1tYSSxrel0sWEldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChTSCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1hJLGt6XSxleHBvcnRzOltrSCxYSV0sZGVjbGFyYXRpb25zOltrSF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhTSCx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2tIXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltYSSxrel19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5ba0gsWEldfX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgREh7Y29uc3RydWN0b3IodCl7dGhpcy5fYW5pbWF0aW9uTW9kZT10LHRoaXMuc3RhdGU9InVuY2hlY2tlZCIsdGhpcy5kaXNhYmxlZD0hMX19REguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fERIKShTbShWUCw4KSl9LERILsm1Y21wPXRvKHt0eXBlOkRILHNlbGVjdG9yczpbWyJtYXQtcHNldWRvLWNoZWNrYm94Il1dLGhvc3RBdHRyczpbMSwibWF0LXBzZXVkby1jaGVja2JveCJdLGhvc3RWYXJzOjgsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJtYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUiLCJpbmRldGVybWluYXRlIj09PW4uc3RhdGUpKCJtYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQiLCJjaGVja2VkIj09PW4uc3RhdGUpKCJtYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIixuLmRpc2FibGVkKSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1uLl9hbmltYXRpb25Nb2RlKX0saW5wdXRzOntzdGF0ZToic3RhdGUiLGRpc2FibGVkOiJkaXNhYmxlZCJ9LGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXt9LHN0eWxlczpbJy5tYXQtcHNldWRvLWNoZWNrYm94e3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItcmFkaXVzOjJweDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpLGJhY2tncm91bmQtY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpfS5tYXQtcHNldWRvLWNoZWNrYm94OjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7Y29udGVudDoiIjtib3JkZXItYm90dG9tOjJweCBzb2xpZCBjdXJyZW50Q29sb3I7dHJhbnNpdGlvbjpvcGFjaXR5IDkwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKX0ubWF0LXBzZXVkby1jaGVja2JveC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsLm1hdC1wc2V1ZG8tY2hlY2tib3gubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRle2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXBzZXVkby1jaGVja2JveHt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVye3RyYW5zaXRpb246bm9uZX0ubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlOjphZnRlcnt0b3A6NXB4O2xlZnQ6MXB4O3dpZHRoOjEwcHg7b3BhY2l0eToxO2JvcmRlci1yYWRpdXM6MnB4fS5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQ6OmFmdGVye3RvcDoyLjRweDtsZWZ0OjFweDt3aWR0aDo4cHg7aGVpZ2h0OjNweDtib3JkZXItbGVmdDoycHggc29saWQgY3VycmVudENvbG9yO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTtvcGFjaXR5OjE7Ym94LXNpemluZzpjb250ZW50LWJveH1cbiddLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLERILmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dLERILnByb3BEZWNvcmF0b3JzPXtzdGF0ZTpbe3R5cGU6eHl9XSxkaXNhYmxlZDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChESCxbe3R5cGU6TXksYXJnczpbe2VuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHNlbGVjdG9yOiJtYXQtcHNldWRvLWNoZWNrYm94Iix0ZW1wbGF0ZToiIixob3N0OntjbGFzczoibWF0LXBzZXVkby1jaGVja2JveCIsIltjbGFzcy5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGVdIjonc3RhdGUgPT09ICJpbmRldGVybWluYXRlIicsIltjbGFzcy5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWRdIjonc3RhdGUgPT09ICJjaGVja2VkIicsIltjbGFzcy5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkXSI6ImRpc2FibGVkIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6J19hbmltYXRpb25Nb2RlID09PSAiTm9vcEFuaW1hdGlvbnMiJ30sc3R5bGVzOlsnLm1hdC1wc2V1ZG8tY2hlY2tib3h7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXI6MnB4IHNvbGlkO2JvcmRlci1yYWRpdXM6MnB4O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7ZmxleC1zaHJpbms6MDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSksYmFja2dyb3VuZC1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSl9Lm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDtjb250ZW50OiIiO2JvcmRlci1ib3R0b206MnB4IHNvbGlkIGN1cnJlbnRDb2xvcjt0cmFuc2l0aW9uOm9wYWNpdHkgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpfS5tYXQtcHNldWRvLWNoZWNrYm94Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwubWF0LXBzZXVkby1jaGVja2JveC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGV7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcHNldWRvLWNoZWNrYm94e3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXBzZXVkby1jaGVja2JveDo6YWZ0ZXJ7dHJhbnNpdGlvbjpub25lfS5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGU6OmFmdGVye3RvcDo1cHg7bGVmdDoxcHg7d2lkdGg6MTBweDtvcGFjaXR5OjE7Ym9yZGVyLXJhZGl1czoycHh9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZDo6YWZ0ZXJ7dG9wOjIuNHB4O2xlZnQ6MXB4O3dpZHRoOjhweDtoZWlnaHQ6M3B4O2JvcmRlci1sZWZ0OjJweCBzb2xpZCBjdXJyZW50Q29sb3I7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO29wYWNpdHk6MTtib3gtc2l6aW5nOmNvbnRlbnQtYm94fVxuJ119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV19KSx7c3RhdGU6W3t0eXBlOnh5fV0sZGlzYWJsZWQ6W3t0eXBlOnh5fV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEVIe31FSC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RUgpfSxFSC7JtW1vZD1hbyh7dHlwZTpFSH0pLEVILsm1aW5qPXZuKHtpbXBvcnRzOltbWEldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRUgsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltYSV0sZXhwb3J0czpbREhdLGRlY2xhcmF0aW9uczpbREhdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oRUgse2RlY2xhcmF0aW9uczpbREhdLGltcG9ydHM6W1hJXSxleHBvcnRzOltESF19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFJIPW5ldyBHYSgiTUFUX09QVElPTl9QQVJFTlRfQ09NUE9ORU5UIiksQUg9S0koY2xhc3N7fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2xldCBUSD0wO2NsYXNzIE5IIGV4dGVuZHMgQUh7Y29uc3RydWN0b3IodCl7dmFyIGU7c3VwZXIoKSx0aGlzLl9sYWJlbElkPSJtYXQtb3B0Z3JvdXAtbGFiZWwtIitUSCsrLHRoaXMuX2luZXJ0PW51bGwhPT0oZT1udWxsPT10P3ZvaWQgMDp0LmluZXJ0R3JvdXBzKSYmdm9pZCAwIT09ZSYmZX19TkguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE5IKShTbShSSCw4KSl9LE5ILsm1ZGlyPWxvKHt0eXBlOk5ILGlucHV0czp7bGFiZWw6ImxhYmVsIn0sZmVhdHVyZXM6W3hwXX0pLE5ILmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1JIXX0se3R5cGU6U3J9XX1dLE5ILnByb3BEZWNvcmF0b3JzPXtsYWJlbDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOSCxbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1JIXX0se3R5cGU6U3J9XX1dfSkse2xhYmVsOlt7dHlwZTp4eX1dfSk7Y29uc3Qgekg9bmV3IEdhKCJNYXRPcHRncm91cCIpO2NsYXNzIElIIGV4dGVuZHMgTkh7fUlILsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShJSCkpKShufHxJSCl9fSkoKSxJSC7JtWNtcD10byh7dHlwZTpJSCxzZWxlY3RvcnM6W1sibWF0LW9wdGdyb3VwIl1dLGhvc3RBdHRyczpbMSwibWF0LW9wdGdyb3VwIl0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmKGpwKCJyb2xlIixuLl9pbmVydD9udWxsOiJncm91cCIpKCJhcmlhLWRpc2FibGVkIixuLl9pbmVydD9udWxsOm4uZGlzYWJsZWQudG9TdHJpbmcoKSkoImFyaWEtbGFiZWxsZWRieSIsbi5faW5lcnQ/bnVsbDpuLl9sYWJlbElkKSxwdSgibWF0LW9wdGdyb3VwLWRpc2FibGVkIixuLmRpc2FibGVkKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIn0sZXhwb3J0QXM6WyJtYXRPcHRncm91cCJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6ekgsdXNlRXhpc3Rpbmc6SUh9XSkseHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiLCJtYXQtb3B0aW9uLCBuZy1jb250YWluZXIiXSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1siYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtYXQtb3B0Z3JvdXAtbGFiZWwiLDMsImlkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabShWSSksUm0oMCwic3BhbiIsMCksa3UoMSksWG0oMiksQW0oKSxYbSgzLDEpKSwyJmUmJihEbSgiaWQiLG4uX2xhYmVsSWQpLHJjKDEpLER1KCIiLG4ubGFiZWwsIiAiKSl9LHN0eWxlczpbIi5tYXQtb3B0Z3JvdXAtbGFiZWx7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6NDhweDtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMTZweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bWF4LXdpZHRoOjEwMCU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpkZWZhdWx0fS5tYXQtb3B0Z3JvdXAtbGFiZWxbZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0fVtkaXI9cnRsXSAubWF0LW9wdGdyb3VwLWxhYmVse3RleHQtYWxpZ246cmlnaHR9Lm1hdC1vcHRncm91cC1sYWJlbCAubWF0LWljb257bWFyZ2luLXJpZ2h0OjE2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtb3B0Z3JvdXAtbGFiZWwgLm1hdC1pY29uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjp0b3B9W2Rpcj1ydGxdIC5tYXQtb3B0Z3JvdXAtbGFiZWwgLm1hdC1pY29ue21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjB9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElILFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1vcHRncm91cCIsZXhwb3J0QXM6Im1hdE9wdGdyb3VwIix0ZW1wbGF0ZTonPHNwYW4gY2xhc3M9Im1hdC1vcHRncm91cC1sYWJlbCIgYXJpYS1oaWRkZW49InRydWUiIFtpZF09Il9sYWJlbElkIj57eyBsYWJlbCB9fSA8bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuPG5nLWNvbnRlbnQgc2VsZWN0PSJtYXQtb3B0aW9uLCBuZy1jb250YWluZXIiPjwvbmctY29udGVudD5cbicsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsaW5wdXRzOlsiZGlzYWJsZWQiXSxob3N0OntjbGFzczoibWF0LW9wdGdyb3VwIiwiW2F0dHIucm9sZV0iOidfaW5lcnQgPyBudWxsIDogImdyb3VwIicsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiX2luZXJ0ID8gbnVsbCA6IGRpc2FibGVkLnRvU3RyaW5nKCkiLCJbYXR0ci5hcmlhLWxhYmVsbGVkYnldIjoiX2luZXJ0ID8gbnVsbCA6IF9sYWJlbElkIiwiW2NsYXNzLm1hdC1vcHRncm91cC1kaXNhYmxlZF0iOiJkaXNhYmxlZCJ9LHByb3ZpZGVyczpbe3Byb3ZpZGU6ekgsdXNlRXhpc3Rpbmc6SUh9XSxzdHlsZXM6WyIubWF0LW9wdGdyb3VwLWxhYmVse3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDE2cHg7dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lO21heC13aWR0aDoxMDAlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LW9wdGdyb3VwLWxhYmVsW2Rpc2FibGVkXXtjdXJzb3I6ZGVmYXVsdH1bZGlyPXJ0bF0gLm1hdC1vcHRncm91cC1sYWJlbHt0ZXh0LWFsaWduOnJpZ2h0fS5tYXQtb3B0Z3JvdXAtbGFiZWwgLm1hdC1pY29ue21hcmdpbi1yaWdodDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubWF0LW9wdGdyb3VwLWxhYmVsIC5tYXQtaWNvbiBzdmd7dmVydGljYWwtYWxpZ246dG9wfVtkaXI9cnRsXSAubWF0LW9wdGdyb3VwLWxhYmVsIC5tYXQtaWNvbnttYXJnaW4tbGVmdDoxNnB4O21hcmdpbi1yaWdodDowfVxuIl19XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgSEg9MDtjbGFzcyBGSHtjb25zdHJ1Y3Rvcih0LGU9ITEpe3RoaXMuc291cmNlPXQsdGhpcy5pc1VzZXJJbnB1dD1lfX1jbGFzcyBMSHtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9wYXJlbnQ9bix0aGlzLmdyb3VwPW8sdGhpcy5fc2VsZWN0ZWQ9ITEsdGhpcy5fYWN0aXZlPSExLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX21vc3RSZWNlbnRWaWV3VmFsdWU9IiIsdGhpcy5pZD0ibWF0LW9wdGlvbi0iK0hIKyssdGhpcy5vblNlbGVjdGlvbkNoYW5nZT1uZXcgTGgsdGhpcy5fc3RhdGVDaGFuZ2VzPW5ldyBJfWdldCBtdWx0aXBsZSgpe3JldHVybiB0aGlzLl9wYXJlbnQmJnRoaXMuX3BhcmVudC5tdWx0aXBsZX1nZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWR9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuZ3JvdXAmJnRoaXMuZ3JvdXAuZGlzYWJsZWR8fHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD15eih0KX1nZXQgZGlzYWJsZVJpcHBsZSgpe3JldHVybiB0aGlzLl9wYXJlbnQmJnRoaXMuX3BhcmVudC5kaXNhYmxlUmlwcGxlfWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5fYWN0aXZlfWdldCB2aWV3VmFsdWUoKXtyZXR1cm4odGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS50ZXh0Q29udGVudHx8IiIpLnRyaW0oKX1zZWxlY3QoKXt0aGlzLl9zZWxlY3RlZHx8KHRoaXMuX3NlbGVjdGVkPSEwLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX2VtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpKX1kZXNlbGVjdCgpe3RoaXMuX3NlbGVjdGVkJiYodGhpcy5fc2VsZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5fZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCkpfWZvY3VzKHQsZSl7Y29uc3Qgbj10aGlzLl9nZXRIb3N0RWxlbWVudCgpOyJmdW5jdGlvbiI9PXR5cGVvZiBuLmZvY3VzJiZuLmZvY3VzKGUpfXNldEFjdGl2ZVN0eWxlcygpe3RoaXMuX2FjdGl2ZXx8KHRoaXMuX2FjdGl2ZT0hMCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9c2V0SW5hY3RpdmVTdHlsZXMoKXt0aGlzLl9hY3RpdmUmJih0aGlzLl9hY3RpdmU9ITEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWdldExhYmVsKCl7cmV0dXJuIHRoaXMudmlld1ZhbHVlfV9oYW5kbGVLZXlkb3duKHQpe3Qua2V5Q29kZSE9PW16JiZ0LmtleUNvZGUhPT1menx8YnoodCl8fCh0aGlzLl9zZWxlY3RWaWFJbnRlcmFjdGlvbigpLHQucHJldmVudERlZmF1bHQoKSl9X3NlbGVjdFZpYUludGVyYWN0aW9uKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMuX3NlbGVjdGVkPSF0aGlzLm11bHRpcGxlfHwhdGhpcy5fc2VsZWN0ZWQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5fZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCEwKSl9X2dldEFyaWFTZWxlY3RlZCgpe3JldHVybiB0aGlzLnNlbGVjdGVkfHwhdGhpcy5tdWx0aXBsZSYmbnVsbH1fZ2V0VGFiSW5kZXgoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZD8iLTEiOiIwIn1fZ2V0SG9zdEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50fW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe2lmKHRoaXMuX3NlbGVjdGVkKXtjb25zdCB0PXRoaXMudmlld1ZhbHVlO3QhPT10aGlzLl9tb3N0UmVjZW50Vmlld1ZhbHVlJiYodGhpcy5fbW9zdFJlY2VudFZpZXdWYWx1ZT10LHRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KCkpfX1uZ09uRGVzdHJveSgpe3RoaXMuX3N0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpfV9lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQodD0hMSl7dGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KG5ldyBGSCh0aGlzLHQpKX19TEguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExIKShTbShoZyksU20oVWcpLFNtKHZvaWQgMCksU20oTkgpKX0sTEguybVkaXI9bG8oe3R5cGU6TEgsaW5wdXRzOntpZDoiaWQiLGRpc2FibGVkOiJkaXNhYmxlZCIsdmFsdWU6InZhbHVlIn0sb3V0cHV0czp7b25TZWxlY3Rpb25DaGFuZ2U6Im9uU2VsZWN0aW9uQ2hhbmdlIn19KSxMSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwfSx7dHlwZTpOSH1dLExILnByb3BEZWNvcmF0b3JzPXt2YWx1ZTpbe3R5cGU6eHl9XSxpZDpbe3R5cGU6eHl9XSxkaXNhYmxlZDpbe3R5cGU6eHl9XSxvblNlbGVjdGlvbkNoYW5nZTpbe3R5cGU6T3l9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMSCxbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDB9LHt0eXBlOk5IfV19KSx7aWQ6W3t0eXBlOnh5fV0sb25TZWxlY3Rpb25DaGFuZ2U6W3t0eXBlOk95fV0sZGlzYWJsZWQ6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV19KTtjbGFzcyBCSCBleHRlbmRzIExIe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKHQsZSxuLG8pfX1mdW5jdGlvbiBWSCh0LGUsbil7aWYobi5sZW5ndGgpe2xldCBvPWUudG9BcnJheSgpLGk9bi50b0FycmF5KCksYT0wO2ZvcihsZXQgZT0wO2U8dCsxO2UrKylvW2VdLmdyb3VwJiZvW2VdLmdyb3VwPT09aVthXSYmYSsrO3JldHVybiBhfXJldHVybiAwfWZ1bmN0aW9uIGpIKHQsZSxuLG8pe3JldHVybiB0PG4/dDp0K2U+bitvP01hdGgubWF4KDAsdC1vK2UpOm59Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL0JILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCSCkoU20oaGcpLFNtKFVnKSxTbShSSCw4KSxTbSh6SCw4KSl9LEJILsm1Y21wPXRvKHt0eXBlOkJILHNlbGVjdG9yczpbWyJtYXQtb3B0aW9uIl1dLGhvc3RBdHRyczpbInJvbGUiLCJvcHRpb24iLDEsIm1hdC1vcHRpb24iLCJtYXQtZm9jdXMtaW5kaWNhdG9yIl0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUtleWRvd24oZSl9KSksMiZlJiYoVHUoImlkIixuLmlkKSxqcCgidGFiaW5kZXgiLG4uX2dldFRhYkluZGV4KCkpKCJhcmlhLXNlbGVjdGVkIixuLl9nZXRBcmlhU2VsZWN0ZWQoKSkoImFyaWEtZGlzYWJsZWQiLG4uZGlzYWJsZWQudG9TdHJpbmcoKSkscHUoIm1hdC1zZWxlY3RlZCIsbi5zZWxlY3RlZCkoIm1hdC1vcHRpb24tbXVsdGlwbGUiLG4ubXVsdGlwbGUpKCJtYXQtYWN0aXZlIixuLmFjdGl2ZSkoIm1hdC1vcHRpb24tZGlzYWJsZWQiLG4uZGlzYWJsZWQpKX0sZXhwb3J0QXM6WyJtYXRPcHRpb24iXSxmZWF0dXJlczpbeHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczo1LHZhcnM6NCxjb25zdHM6W1siY2xhc3MiLCJtYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveCIsMywic3RhdGUiLCJkaXNhYmxlZCIsNCwibmdJZiJdLFsxLCJtYXQtb3B0aW9uLXRleHQiXSxbImNsYXNzIiwiY2RrLXZpc3VhbGx5LWhpZGRlbiIsNCwibmdJZiJdLFsibWF0LXJpcHBsZSIsIiIsMSwibWF0LW9wdGlvbi1yaXBwbGUiLDMsIm1hdFJpcHBsZVRyaWdnZXIiLCJtYXRSaXBwbGVEaXNhYmxlZCJdLFsxLCJtYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveCIsMywic3RhdGUiLCJkaXNhYmxlZCJdLFsxLCJjZGstdmlzdWFsbHktaGlkZGVuIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFFwKDAsakksMSwyLCJtYXQtcHNldWRvLWNoZWNrYm94IiwwKSxSbSgxLCJzcGFuIiwxKSxYbSgyKSxBbSgpLFFwKDMsVUksMiwxLCJzcGFuIiwyKSxUbSg0LCJkaXYiLDMpKSwyJmUmJihEbSgibmdJZiIsbi5tdWx0aXBsZSkscmMoMyksRG0oIm5nSWYiLG4uZ3JvdXAmJm4uZ3JvdXAuX2luZXJ0KSxyYygxKSxEbSgibWF0UmlwcGxlVHJpZ2dlciIsbi5fZ2V0SG9zdEVsZW1lbnQoKSkoIm1hdFJpcHBsZURpc2FibGVkIixuLmRpc2FibGVkfHxuLmRpc2FibGVSaXBwbGUpKX0sZGlyZWN0aXZlczpbZE0sa0gsREhdLHN0eWxlczpbIi5tYXQtb3B0aW9ue3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDE2cHg7dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lO21heC13aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O21heC13aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtb3B0aW9uW2Rpc2FibGVkXXtjdXJzb3I6ZGVmYXVsdH1bZGlyPXJ0bF0gLm1hdC1vcHRpb257dGV4dC1hbGlnbjpyaWdodH0ubWF0LW9wdGlvbiAubWF0LWljb257bWFyZ2luLXJpZ2h0OjE2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtb3B0aW9uIC5tYXQtaWNvbiBzdmd7dmVydGljYWwtYWxpZ246dG9wfVtkaXI9cnRsXSAubWF0LW9wdGlvbiAubWF0LWljb257bWFyZ2luLWxlZnQ6MTZweDttYXJnaW4tcmlnaHQ6MH0ubWF0LW9wdGlvblthcmlhLWRpc2FibGVkPXRydWVdey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LW9wdGdyb3VwIC5tYXQtb3B0aW9uOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSl7cGFkZGluZy1sZWZ0OjMycHh9W2Rpcj1ydGxdIC5tYXQtb3B0Z3JvdXAgLm1hdC1vcHRpb246bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKXtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjMycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW9wdGlvbnttYXJnaW46MCAxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZle2JvcmRlcjpzb2xpZCAxcHggY3VycmVudENvbG9yO21hcmdpbjowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1vcHRpb25bYXJpYS1kaXNhYmxlZD10cnVlXXtvcGFjaXR5Oi41fS5tYXQtb3B0aW9uLXRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1ncm93OjE7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1vcHRpb24gLm1hdC1vcHRpb24tcmlwcGxle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1vcHRpb24tcHNldWRvLWNoZWNrYm94e21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5tYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveHttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjB9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxCSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltSSF19XX0se3R5cGU6SUgsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3pIXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCSCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtb3B0aW9uIixleHBvcnRBczoibWF0T3B0aW9uIixob3N0Ontyb2xlOiJvcHRpb24iLCJbYXR0ci50YWJpbmRleF0iOiJfZ2V0VGFiSW5kZXgoKSIsIltjbGFzcy5tYXQtc2VsZWN0ZWRdIjoic2VsZWN0ZWQiLCJbY2xhc3MubWF0LW9wdGlvbi1tdWx0aXBsZV0iOiJtdWx0aXBsZSIsIltjbGFzcy5tYXQtYWN0aXZlXSI6ImFjdGl2ZSIsIltpZF0iOiJpZCIsIlthdHRyLmFyaWEtc2VsZWN0ZWRdIjoiX2dldEFyaWFTZWxlY3RlZCgpIiwiW2F0dHIuYXJpYS1kaXNhYmxlZF0iOiJkaXNhYmxlZC50b1N0cmluZygpIiwiW2NsYXNzLm1hdC1vcHRpb24tZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCIoY2xpY2spIjoiX3NlbGVjdFZpYUludGVyYWN0aW9uKCkiLCIoa2V5ZG93bikiOiJfaGFuZGxlS2V5ZG93bigkZXZlbnQpIixjbGFzczoibWF0LW9wdGlvbiBtYXQtZm9jdXMtaW5kaWNhdG9yIn0sdGVtcGxhdGU6JzxtYXQtcHNldWRvLWNoZWNrYm94ICpuZ0lmPSJtdWx0aXBsZSIgY2xhc3M9Im1hdC1vcHRpb24tcHNldWRvLWNoZWNrYm94IlxuICAgIFtzdGF0ZV09InNlbGVjdGVkID8gXCdjaGVja2VkXCcgOiBcJ3VuY2hlY2tlZFwnIiBbZGlzYWJsZWRdPSJkaXNhYmxlZCI+PC9tYXQtcHNldWRvLWNoZWNrYm94PlxuXG48c3BhbiBjbGFzcz0ibWF0LW9wdGlvbi10ZXh0Ij48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuXG5ceDNjIS0tIFNlZSBhMTF5IG5vdGVzIGluc2lkZSBvcHRncm91cC50cyBmb3IgY29udGV4dCBiZWhpbmQgdGhpcyBlbGVtZW50LiAtLVx4M2VcbjxzcGFuIGNsYXNzPSJjZGstdmlzdWFsbHktaGlkZGVuIiAqbmdJZj0iZ3JvdXAgJiYgZ3JvdXAuX2luZXJ0Ij4oe3sgZ3JvdXAubGFiZWwgfX0pPC9zcGFuPlxuXG48ZGl2IGNsYXNzPSJtYXQtb3B0aW9uLXJpcHBsZSIgbWF0LXJpcHBsZVxuICAgICBbbWF0UmlwcGxlVHJpZ2dlcl09Il9nZXRIb3N0RWxlbWVudCgpIlxuICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJkaXNhYmxlZCB8fCBkaXNhYmxlUmlwcGxlIj5cbjwvZGl2PlxuJyxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxzdHlsZXM6WyIubWF0LW9wdGlvbnt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDo0OHB4O2hlaWdodDo0OHB4O3BhZGRpbmc6MCAxNnB4O3RleHQtYWxpZ246bGVmdDt0ZXh0LWRlY29yYXRpb246bm9uZTttYXgtd2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzttYXgtd2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LW9wdGlvbltkaXNhYmxlZF17Y3Vyc29yOmRlZmF1bHR9W2Rpcj1ydGxdIC5tYXQtb3B0aW9ue3RleHQtYWxpZ246cmlnaHR9Lm1hdC1vcHRpb24gLm1hdC1pY29ue21hcmdpbi1yaWdodDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubWF0LW9wdGlvbiAubWF0LWljb24gc3Zne3ZlcnRpY2FsLWFsaWduOnRvcH1bZGlyPXJ0bF0gLm1hdC1vcHRpb24gLm1hdC1pY29ue21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjB9Lm1hdC1vcHRpb25bYXJpYS1kaXNhYmxlZD10cnVlXXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1vcHRncm91cCAubWF0LW9wdGlvbjpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpe3BhZGRpbmctbGVmdDozMnB4fVtkaXI9cnRsXSAubWF0LW9wdGdyb3VwIC5tYXQtb3B0aW9uOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSl7cGFkZGluZy1sZWZ0OjE2cHg7cGFkZGluZy1yaWdodDozMnB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1vcHRpb257bWFyZ2luOjAgMXB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1vcHRpb24ubWF0LWFjdGl2ZXtib3JkZXI6c29saWQgMXB4IGN1cnJlbnRDb2xvcjttYXJnaW46MH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtb3B0aW9uW2FyaWEtZGlzYWJsZWQ9dHJ1ZV17b3BhY2l0eTouNX0ubWF0LW9wdGlvbi10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXgtZ3JvdzoxO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5tYXQtb3B0aW9uIC5tYXQtb3B0aW9uLXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveHttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAubWF0LW9wdGlvbi1wc2V1ZG8tY2hlY2tib3h7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUkhdfV19LHt0eXBlOklILGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt6SF19XX1dfSksbnVsbCk7Y2xhc3MgVUh7fVVILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxVSCl9LFVILsm1bW9kPWFvKHt0eXBlOlVIfSksVUguybVpbmo9dm4oe2ltcG9ydHM6W1tTSCxXTSxYSSxFSF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVSCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1NILFdNLFhJLEVIXSxleHBvcnRzOltCSCxJSF0sZGVjbGFyYXRpb25zOltCSCxJSF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhVSCx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW0JILElIXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltTSCxXTSxYSSxFSF19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bQkgsSUhdfX0pO2NvbnN0IEdIPVsibWF0LWJ1dHRvbiIsIiJdLFdIPVsiKiJdLFlIPSIubWF0LWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5OjB9Lm1hdC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjA0fUBtZWRpYShob3Zlcjogbm9uZSl7Lm1hdC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MH19Lm1hdC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbiwubWF0LXN0cm9rZWQtYnV0dG9uLC5tYXQtZmxhdC1idXR0b257Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGV9Lm1hdC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1pY29uLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LXN0cm9rZWQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtZmxhdC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWljb24tYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmxhdC1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWZsYXQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWljb24tYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtc3Ryb2tlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1mbGF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LXJhaXNlZC1idXR0b257Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9Lm1hdC1yYWlzZWQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtcmFpc2VkLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtcmFpc2VkLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMTJ9Lm1hdC1yYWlzZWQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcmFpc2VkLWJ1dHRvbnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1zdHJva2VkLWJ1dHRvbntib3JkZXI6MXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtwYWRkaW5nOjAgMTVweDtsaW5lLWhlaWdodDozNHB4fS5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGUsLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e3RvcDotMXB4O2xlZnQ6LTFweDtyaWdodDotMXB4O2JvdHRvbTotMXB4fS5tYXQtZmFie2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTpub25lO2JvcmRlcjpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtkaXNwbGF5OmlubGluZS1ibG9jazt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bWluLXdpZHRoOjY0cHg7bGluZS1oZWlnaHQ6MzZweDtwYWRkaW5nOjAgMTZweDtib3JkZXItcmFkaXVzOjRweDtvdmVyZmxvdzp2aXNpYmxlO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2l0aW9uOmJhY2tncm91bmQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO21pbi13aWR0aDowO2JvcmRlci1yYWRpdXM6NTAlO3dpZHRoOjU2cHg7aGVpZ2h0OjU2cHg7cGFkZGluZzowO2ZsZXgtc2hyaW5rOjB9Lm1hdC1mYWI6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LWZhYi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmFiLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LWZhYnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1mYWIgLm1hdC1idXR0b24td3JhcHBlcntwYWRkaW5nOjE2cHggMDtkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDoyNHB4fS5tYXQtbWluaS1mYWJ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtwYWRkaW5nOjA7ZmxleC1zaHJpbms6MH0ubWF0LW1pbmktZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtbWluaS1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LW1pbmktZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1taW5pLWZhYi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMTJ9Lm1hdC1taW5pLWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LW1pbmktZmFie3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LW1pbmktZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXJ7cGFkZGluZzo4cHggMDtkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDoyNHB4fS5tYXQtaWNvbi1idXR0b257cGFkZGluZzowO21pbi13aWR0aDowO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7ZmxleC1zaHJpbms6MDtsaW5lLWhlaWdodDo0MHB4O2JvcmRlci1yYWRpdXM6NTAlfS5tYXQtaWNvbi1idXR0b24gaSwubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbntsaW5lLWhlaWdodDoyNHB4fS5tYXQtYnV0dG9uLXJpcHBsZS5tYXQtcmlwcGxlLC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOmluaGVyaXR9Lm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGU6bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDIwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1idXR0b24tcmlwcGxlLXJvdW5ke2JvcmRlci1yYWRpdXM6NTAlO3otaW5kZXg6MX0ubWF0LWJ1dHRvbiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1mbGF0LWJ1dHRvbiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1yYWlzZWQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWljb24tYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWZhYiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1taW5pLWZhYiAubWF0LWJ1dHRvbi13cmFwcGVyPip7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5KSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sLm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbntkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZTppbmhlcml0O3dpZHRoOjIuNWVtO2hlaWdodDoyLjVlbX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mbGF0LWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcmFpc2VkLWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtaWNvbi1idXR0b24sLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZhYiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWluaS1mYWJ7b3V0bGluZTpzb2xpZCAxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi1iYXNlLmNkay1rZXlib2FyZC1mb2N1c2VkLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tYmFzZS5jZGstcHJvZ3JhbS1mb2N1c2Vke291dGxpbmU6c29saWQgM3B4fVxuIixxSD1bIm1hdC1idXR0b24iLCJtYXQtZmxhdC1idXR0b24iLCJtYXQtaWNvbi1idXR0b24iLCJtYXQtcmFpc2VkLWJ1dHRvbiIsIm1hdC1zdHJva2VkLWJ1dHRvbiIsIm1hdC1taW5pLWZhYiIsIm1hdC1mYWIiXSxaSD1KSShLSShRSShjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSkpKTtjbGFzcyBYSCBleHRlbmRzIFpIe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0KSx0aGlzLl9mb2N1c01vbml0b3I9ZSx0aGlzLl9hbmltYXRpb25Nb2RlPW4sdGhpcy5pc1JvdW5kQnV0dG9uPXRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCJtYXQtZmFiIiwibWF0LW1pbmktZmFiIiksdGhpcy5pc0ljb25CdXR0b249dGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMoIm1hdC1pY29uLWJ1dHRvbiIpO2Zvcihjb25zdCB0IG9mIHFIKXRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKHQpJiZ0aGlzLl9nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQodCk7dC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1hdC1idXR0b24tYmFzZSIpLHRoaXMuaXNSb3VuZEJ1dHRvbiYmKHRoaXMuY29sb3I9ImFjY2VudCIpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsITApfW5nT25EZXN0cm95KCl7dGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpfWZvY3VzKHQsZSl7dD90aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSx0LGUpOnRoaXMuX2dldEhvc3RFbGVtZW50KCkuZm9jdXMoZSl9X2dldEhvc3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudH1faXNSaXBwbGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVSaXBwbGV8fHRoaXMuZGlzYWJsZWR9X2hhc0hvc3RBdHRyaWJ1dGVzKC4uLnQpe3JldHVybiB0LnNvbWUoKHQ9PnRoaXMuX2dldEhvc3RFbGVtZW50KCkuaGFzQXR0cmlidXRlKHQpKSl9fVhILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYSCkoU20oaGcpLFNtKFNJKSxTbShWUCw4KSl9LFhILsm1Y21wPXRvKHt0eXBlOlhILHNlbGVjdG9yczpbWyJidXR0b24iLCJtYXQtYnV0dG9uIiwiIl0sWyJidXR0b24iLCJtYXQtcmFpc2VkLWJ1dHRvbiIsIiJdLFsiYnV0dG9uIiwibWF0LWljb24tYnV0dG9uIiwiIl0sWyJidXR0b24iLCJtYXQtZmFiIiwiIl0sWyJidXR0b24iLCJtYXQtbWluaS1mYWIiLCIiXSxbImJ1dHRvbiIsIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiJdLFsiYnV0dG9uIiwibWF0LWZsYXQtYnV0dG9uIiwiIl1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChrSCw1KSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLnJpcHBsZT10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LWZvY3VzLWluZGljYXRvciJdLGhvc3RWYXJzOjUsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJihqcCgiZGlzYWJsZWQiLG4uZGlzYWJsZWR8fG51bGwpLHB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpKCJtYXQtYnV0dG9uLWRpc2FibGVkIixuLmRpc2FibGVkKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixjb2xvcjoiY29sb3IifSxleHBvcnRBczpbIm1hdEJ1dHRvbiJdLGZlYXR1cmVzOlt4cF0sYXR0cnM6R0gsbmdDb250ZW50U2VsZWN0b3JzOldILGRlY2xzOjQsdmFyczo1LGNvbnN0czpbWzEsIm1hdC1idXR0b24td3JhcHBlciJdLFsibWF0UmlwcGxlIiwiIiwxLCJtYXQtYnV0dG9uLXJpcHBsZSIsMywibWF0UmlwcGxlRGlzYWJsZWQiLCJtYXRSaXBwbGVDZW50ZXJlZCIsIm1hdFJpcHBsZVRyaWdnZXIiXSxbMSwibWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFJtKDAsInNwYW4iLDApLFhtKDEpLEFtKCksVG0oMiwic3BhbiIsMSksVG0oMywic3BhbiIsMikpLDImZSYmKHJjKDIpLHB1KCJtYXQtYnV0dG9uLXJpcHBsZS1yb3VuZCIsbi5pc1JvdW5kQnV0dG9ufHxuLmlzSWNvbkJ1dHRvbiksRG0oIm1hdFJpcHBsZURpc2FibGVkIixuLl9pc1JpcHBsZURpc2FibGVkKCkpKCJtYXRSaXBwbGVDZW50ZXJlZCIsbi5pc0ljb25CdXR0b24pKCJtYXRSaXBwbGVUcmlnZ2VyIixuLl9nZXRIb3N0RWxlbWVudCgpKSl9LGRpcmVjdGl2ZXM6W2tIXSxzdHlsZXM6W1lIXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxYSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpTSX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dLFhILnByb3BEZWNvcmF0b3JzPXtyaXBwbGU6W3t0eXBlOlphLGFyZ3M6W2tIXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFhILFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImJ1dHRvblttYXQtYnV0dG9uXSwgYnV0dG9uW21hdC1yYWlzZWQtYnV0dG9uXSwgYnV0dG9uW21hdC1pY29uLWJ1dHRvbl0sXG4gICAgICAgICAgICAgYnV0dG9uW21hdC1mYWJdLCBidXR0b25bbWF0LW1pbmktZmFiXSwgYnV0dG9uW21hdC1zdHJva2VkLWJ1dHRvbl0sXG4gICAgICAgICAgICAgYnV0dG9uW21hdC1mbGF0LWJ1dHRvbl0iLGV4cG9ydEFzOiJtYXRCdXR0b24iLGhvc3Q6eyJbYXR0ci5kaXNhYmxlZF0iOiJkaXNhYmxlZCB8fCBudWxsIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6J19hbmltYXRpb25Nb2RlID09PSAiTm9vcEFuaW1hdGlvbnMiJywiW2NsYXNzLm1hdC1idXR0b24tZGlzYWJsZWRdIjoiZGlzYWJsZWQiLGNsYXNzOiJtYXQtZm9jdXMtaW5kaWNhdG9yIn0sdGVtcGxhdGU6JzxzcGFuIGNsYXNzPSJtYXQtYnV0dG9uLXdyYXBwZXIiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+XG48c3BhbiBtYXRSaXBwbGUgY2xhc3M9Im1hdC1idXR0b24tcmlwcGxlIlxuICAgICAgW2NsYXNzLm1hdC1idXR0b24tcmlwcGxlLXJvdW5kXT0iaXNSb3VuZEJ1dHRvbiB8fCBpc0ljb25CdXR0b24iXG4gICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJfaXNSaXBwbGVEaXNhYmxlZCgpIlxuICAgICAgW21hdFJpcHBsZUNlbnRlcmVkXT0iaXNJY29uQnV0dG9uIlxuICAgICAgW21hdFJpcHBsZVRyaWdnZXJdPSJfZ2V0SG9zdEVsZW1lbnQoKSI+PC9zcGFuPlxuPHNwYW4gY2xhc3M9Im1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSI+PC9zcGFuPlxuJyxpbnB1dHM6WyJkaXNhYmxlZCIsImRpc2FibGVSaXBwbGUiLCJjb2xvciJdLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHN0eWxlczpbIi5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MH0ubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMDR9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTowfX0ubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uLC5tYXQtc3Ryb2tlZC1idXR0b24sLm1hdC1mbGF0LWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWljb24tYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtc3Ryb2tlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1mbGF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LXN0cm9rZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mbGF0LWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmxhdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtaWNvbi1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1zdHJva2VkLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWZsYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtcmFpc2VkLWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1yYWlzZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1yYWlzZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1yYWlzZWQtYnV0dG9ue3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXN0cm9rZWQtYnV0dG9ue2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO3BhZGRpbmc6MCAxNXB4O2xpbmUtaGVpZ2h0OjM0cHh9Lm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZSwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7dG9wOi0xcHg7bGVmdDotMXB4O3JpZ2h0Oi0xcHg7Ym90dG9tOi0xcHh9Lm1hdC1mYWJ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtwYWRkaW5nOjA7ZmxleC1zaHJpbms6MH0ubWF0LWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mYWIuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtZmFie3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LWZhYiAubWF0LWJ1dHRvbi13cmFwcGVye3BhZGRpbmc6MTZweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1taW5pLWZhYntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTttaW4td2lkdGg6MDtib3JkZXItcmFkaXVzOjUwJTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6MDtmbGV4LXNocmluazowfS5tYXQtbWluaS1mYWI6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtbWluaS1mYWIuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LW1pbmktZmFiLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LW1pbmktZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtbWluaS1mYWJ7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtbWluaS1mYWIgLm1hdC1idXR0b24td3JhcHBlcntwYWRkaW5nOjhweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1pY29uLWJ1dHRvbntwYWRkaW5nOjA7bWluLXdpZHRoOjA7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtmbGV4LXNocmluazowO2xpbmUtaGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czo1MCV9Lm1hdC1pY29uLWJ1dHRvbiBpLC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGUsLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0ubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e3RyYW5zaXRpb246bm9uZX0ubWF0LWJ1dHRvbi1yaXBwbGUtcm91bmR7Ym9yZGVyLXJhZGl1czo1MCU7ei1pbmRleDoxfS5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWZsYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXJhaXNlZC1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtaWNvbi1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LW1pbmktZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+Knt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiwubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOmluaGVyaXQ7d2lkdGg6Mi41ZW07aGVpZ2h0OjIuNWVtfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24sLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZsYXQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1yYWlzZWQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pY29uLWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZmFiLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1taW5pLWZhYntvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLWJhc2UuY2RrLWtleWJvYXJkLWZvY3VzZWQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi1iYXNlLmNkay1wcm9ncmFtLWZvY3VzZWR7b3V0bGluZTpzb2xpZCAzcHh9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpTSX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse3JpcHBsZTpbe3R5cGU6WmEsYXJnczpba0hdfV19KTtjbGFzcyBLSCBleHRlbmRzIFhIe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihlLHQsbil9X2hhbHREaXNhYmxlZEV2ZW50cyh0KXt0aGlzLmRpc2FibGVkJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX1LSC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8S0gpKFNtKFNJKSxTbShoZyksU20oVlAsOCkpfSxLSC7JtWNtcD10byh7dHlwZTpLSCxzZWxlY3RvcnM6W1siYSIsIm1hdC1idXR0b24iLCIiXSxbImEiLCJtYXQtcmFpc2VkLWJ1dHRvbiIsIiJdLFsiYSIsIm1hdC1pY29uLWJ1dHRvbiIsIiJdLFsiYSIsIm1hdC1mYWIiLCIiXSxbImEiLCJtYXQtbWluaS1mYWIiLCIiXSxbImEiLCJtYXQtc3Ryb2tlZC1idXR0b24iLCIiXSxbImEiLCJtYXQtZmxhdC1idXR0b24iLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtZm9jdXMtaW5kaWNhdG9yIl0saG9zdFZhcnM6Nyxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFsdERpc2FibGVkRXZlbnRzKGUpfSkpLDImZSYmKGpwKCJ0YWJpbmRleCIsbi5kaXNhYmxlZD8tMTpuLnRhYkluZGV4fHwwKSgiZGlzYWJsZWQiLG4uZGlzYWJsZWR8fG51bGwpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkLnRvU3RyaW5nKCkpLHB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpKCJtYXQtYnV0dG9uLWRpc2FibGVkIixuLmRpc2FibGVkKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixjb2xvcjoiY29sb3IiLHRhYkluZGV4OiJ0YWJJbmRleCJ9LGV4cG9ydEFzOlsibWF0QnV0dG9uIiwibWF0QW5jaG9yIl0sZmVhdHVyZXM6W3hwXSxhdHRyczpHSCxuZ0NvbnRlbnRTZWxlY3RvcnM6V0gsZGVjbHM6NCx2YXJzOjUsY29uc3RzOltbMSwibWF0LWJ1dHRvbi13cmFwcGVyIl0sWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1idXR0b24tcmlwcGxlIiwzLCJtYXRSaXBwbGVEaXNhYmxlZCIsIm1hdFJpcHBsZUNlbnRlcmVkIiwibWF0UmlwcGxlVHJpZ2dlciJdLFsxLCJtYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFptKCksUm0oMCwic3BhbiIsMCksWG0oMSksQW0oKSxUbSgyLCJzcGFuIiwxKSxUbSgzLCJzcGFuIiwyKSksMiZlJiYocmMoMikscHUoIm1hdC1idXR0b24tcmlwcGxlLXJvdW5kIixuLmlzUm91bmRCdXR0b258fG4uaXNJY29uQnV0dG9uKSxEbSgibWF0UmlwcGxlRGlzYWJsZWQiLG4uX2lzUmlwcGxlRGlzYWJsZWQoKSkoIm1hdFJpcHBsZUNlbnRlcmVkIixuLmlzSWNvbkJ1dHRvbikoIm1hdFJpcHBsZVRyaWdnZXIiLG4uX2dldEhvc3RFbGVtZW50KCkpKX0sZGlyZWN0aXZlczpba0hdLHN0eWxlczpbWUhdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLEtILmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U0l9LHt0eXBlOmhnfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sS0gucHJvcERlY29yYXRvcnM9e3RhYkluZGV4Olt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEtILFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImFbbWF0LWJ1dHRvbl0sIGFbbWF0LXJhaXNlZC1idXR0b25dLCBhW21hdC1pY29uLWJ1dHRvbl0sIGFbbWF0LWZhYl0sXG4gICAgICAgICAgICAgYVttYXQtbWluaS1mYWJdLCBhW21hdC1zdHJva2VkLWJ1dHRvbl0sIGFbbWF0LWZsYXQtYnV0dG9uXSIsZXhwb3J0QXM6Im1hdEJ1dHRvbiwgbWF0QW5jaG9yIixob3N0OnsiW2F0dHIudGFiaW5kZXhdIjoiZGlzYWJsZWQgPyAtMSA6ICh0YWJJbmRleCB8fCAwKSIsIlthdHRyLmRpc2FibGVkXSI6ImRpc2FibGVkIHx8IG51bGwiLCJbYXR0ci5hcmlhLWRpc2FibGVkXSI6ImRpc2FibGVkLnRvU3RyaW5nKCkiLCIoY2xpY2spIjoiX2hhbHREaXNhYmxlZEV2ZW50cygkZXZlbnQpIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6J19hbmltYXRpb25Nb2RlID09PSAiTm9vcEFuaW1hdGlvbnMiJywiW2NsYXNzLm1hdC1idXR0b24tZGlzYWJsZWRdIjoiZGlzYWJsZWQiLGNsYXNzOiJtYXQtZm9jdXMtaW5kaWNhdG9yIn0saW5wdXRzOlsiZGlzYWJsZWQiLCJkaXNhYmxlUmlwcGxlIiwiY29sb3IiXSx0ZW1wbGF0ZTonPHNwYW4gY2xhc3M9Im1hdC1idXR0b24td3JhcHBlciI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Bhbj5cbjxzcGFuIG1hdFJpcHBsZSBjbGFzcz0ibWF0LWJ1dHRvbi1yaXBwbGUiXG4gICAgICBbY2xhc3MubWF0LWJ1dHRvbi1yaXBwbGUtcm91bmRdPSJpc1JvdW5kQnV0dG9uIHx8IGlzSWNvbkJ1dHRvbiJcbiAgICAgIFttYXRSaXBwbGVEaXNhYmxlZF09Il9pc1JpcHBsZURpc2FibGVkKCkiXG4gICAgICBbbWF0UmlwcGxlQ2VudGVyZWRdPSJpc0ljb25CdXR0b24iXG4gICAgICBbbWF0UmlwcGxlVHJpZ2dlcl09Il9nZXRIb3N0RWxlbWVudCgpIj48L3NwYW4+XG48c3BhbiBjbGFzcz0ibWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5Ij48L3NwYW4+XG4nLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHN0eWxlczpbIi5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MH0ubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMDR9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTowfX0ubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uLC5tYXQtc3Ryb2tlZC1idXR0b24sLm1hdC1mbGF0LWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWljb24tYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtc3Ryb2tlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1mbGF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LXN0cm9rZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mbGF0LWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmxhdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtaWNvbi1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1zdHJva2VkLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWZsYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtcmFpc2VkLWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1yYWlzZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1yYWlzZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1yYWlzZWQtYnV0dG9ue3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXN0cm9rZWQtYnV0dG9ue2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO3BhZGRpbmc6MCAxNXB4O2xpbmUtaGVpZ2h0OjM0cHh9Lm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZSwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7dG9wOi0xcHg7bGVmdDotMXB4O3JpZ2h0Oi0xcHg7Ym90dG9tOi0xcHh9Lm1hdC1mYWJ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtwYWRkaW5nOjA7ZmxleC1zaHJpbms6MH0ubWF0LWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mYWIuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtZmFie3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LWZhYiAubWF0LWJ1dHRvbi13cmFwcGVye3BhZGRpbmc6MTZweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1taW5pLWZhYntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTttaW4td2lkdGg6MDtib3JkZXItcmFkaXVzOjUwJTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6MDtmbGV4LXNocmluazowfS5tYXQtbWluaS1mYWI6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtbWluaS1mYWIuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LW1pbmktZmFiLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LW1pbmktZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtbWluaS1mYWJ7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtbWluaS1mYWIgLm1hdC1idXR0b24td3JhcHBlcntwYWRkaW5nOjhweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1pY29uLWJ1dHRvbntwYWRkaW5nOjA7bWluLXdpZHRoOjA7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtmbGV4LXNocmluazowO2xpbmUtaGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czo1MCV9Lm1hdC1pY29uLWJ1dHRvbiBpLC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGUsLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0ubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e3RyYW5zaXRpb246bm9uZX0ubWF0LWJ1dHRvbi1yaXBwbGUtcm91bmR7Ym9yZGVyLXJhZGl1czo1MCU7ei1pbmRleDoxfS5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWZsYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXJhaXNlZC1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtaWNvbi1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LW1pbmktZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+Knt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiwubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOmluaGVyaXQ7d2lkdGg6Mi41ZW07aGVpZ2h0OjIuNWVtfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24sLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZsYXQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1yYWlzZWQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pY29uLWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZmFiLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1taW5pLWZhYntvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLWJhc2UuY2RrLWtleWJvYXJkLWZvY3VzZWQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi1iYXNlLmNkay1wcm9ncmFtLWZvY3VzZWR7b3V0bGluZTpzb2xpZCAzcHh9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlNJfSx7dHlwZTpoZ30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse3RhYkluZGV4Olt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBKSHt9SkguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEpIKX0sSkguybVtb2Q9YW8oe3R5cGU6Skh9KSxKSC7JtWluaj12bih7aW1wb3J0czpbW1NILFhJXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEpILFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbU0gsWEldLGV4cG9ydHM6W1hILEtILFhJXSxkZWNsYXJhdGlvbnM6W1hILEtIXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEpILHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bWEgsS0hdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1NILFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltYSCxLSCxYSV19fSk7Y2xhc3MgUUh7fWZ1bmN0aW9uICRIKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5jb25uZWN0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB0RiBleHRlbmRzIFFIe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fZGF0YT10fWNvbm5lY3QoKXtyZXR1cm4gTnQodGhpcy5fZGF0YSk/dGhpcy5fZGF0YTpFdCh0aGlzLl9kYXRhKX1kaXNjb25uZWN0KCl7fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGVGe2FwcGx5Q2hhbmdlcyh0LGUsbixvLGkpe3QuZm9yRWFjaE9wZXJhdGlvbigoKHQsbyxhKT0+e2xldCByLHM7aWYobnVsbD09dC5wcmV2aW91c0luZGV4KXtjb25zdCBpPW4odCxvLGEpO3I9ZS5jcmVhdGVFbWJlZGRlZFZpZXcoaS50ZW1wbGF0ZVJlZixpLmNvbnRleHQsaS5pbmRleCkscz0xfWVsc2UgbnVsbD09YT8oZS5yZW1vdmUobykscz0zKToocj1lLmdldChvKSxlLm1vdmUocixhKSxzPTIpO2kmJmkoe2NvbnRleHQ6bnVsbD09cj92b2lkIDA6ci5jb250ZXh0LG9wZXJhdGlvbjpzLHJlY29yZDp0fSl9KSl9ZGV0YWNoKCl7fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgbkZ7Y29uc3RydWN0b3IoKXt0aGlzLnZpZXdDYWNoZVNpemU9MjAsdGhpcy5fdmlld0NhY2hlPVtdfWFwcGx5Q2hhbmdlcyh0LGUsbixvLGkpe3QuZm9yRWFjaE9wZXJhdGlvbigoKHQsYSxyKT0+e2xldCBzLGw7bnVsbD09dC5wcmV2aW91c0luZGV4PyhzPXRoaXMuX2luc2VydFZpZXcoKCgpPT5uKHQsYSxyKSkscixlLG8odCkpLGw9cz8xOjApOm51bGw9PXI/KHRoaXMuX2RldGFjaEFuZENhY2hlVmlldyhhLGUpLGw9Myk6KHM9dGhpcy5fbW92ZVZpZXcoYSxyLGUsbyh0KSksbD0yKSxpJiZpKHtjb250ZXh0Om51bGw9PXM/dm9pZCAwOnMuY29udGV4dCxvcGVyYXRpb246bCxyZWNvcmQ6dH0pfSkpfWRldGFjaCgpe2Zvcihjb25zdCB0IG9mIHRoaXMuX3ZpZXdDYWNoZSl0LmRlc3Ryb3koKTt0aGlzLl92aWV3Q2FjaGU9W119X2luc2VydFZpZXcodCxlLG4sbyl7Y29uc3QgaT10aGlzLl9pbnNlcnRWaWV3RnJvbUNhY2hlKGUsbik7aWYoaSlyZXR1cm4gdm9pZChpLmNvbnRleHQuJGltcGxpY2l0PW8pO2NvbnN0IGE9dCgpO3JldHVybiBuLmNyZWF0ZUVtYmVkZGVkVmlldyhhLnRlbXBsYXRlUmVmLGEuY29udGV4dCxhLmluZGV4KX1fZGV0YWNoQW5kQ2FjaGVWaWV3KHQsZSl7Y29uc3Qgbj1lLmRldGFjaCh0KTt0aGlzLl9tYXliZUNhY2hlVmlldyhuLGUpfV9tb3ZlVmlldyh0LGUsbixvKXtjb25zdCBpPW4uZ2V0KHQpO3JldHVybiBuLm1vdmUoaSxlKSxpLmNvbnRleHQuJGltcGxpY2l0PW8saX1fbWF5YmVDYWNoZVZpZXcodCxlKXtpZih0aGlzLl92aWV3Q2FjaGUubGVuZ3RoPHRoaXMudmlld0NhY2hlU2l6ZSl0aGlzLl92aWV3Q2FjaGUucHVzaCh0KTtlbHNle2NvbnN0IG49ZS5pbmRleE9mKHQpOy0xPT09bj90LmRlc3Ryb3koKTplLnJlbW92ZShuKX19X2luc2VydFZpZXdGcm9tQ2FjaGUodCxlKXtjb25zdCBuPXRoaXMuX3ZpZXdDYWNoZS5wb3AoKTtyZXR1cm4gbiYmZS5pbnNlcnQobix0KSxufHxudWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3Mgb0Z7Y29uc3RydWN0b3IodD0hMSxlLG49ITApe3RoaXMuX211bHRpcGxlPXQsdGhpcy5fZW1pdENoYW5nZXM9bix0aGlzLl9zZWxlY3Rpb249bmV3IFNldCx0aGlzLl9kZXNlbGVjdGVkVG9FbWl0PVtdLHRoaXMuX3NlbGVjdGVkVG9FbWl0PVtdLHRoaXMuY2hhbmdlZD1uZXcgSSxlJiZlLmxlbmd0aCYmKHQ/ZS5mb3JFYWNoKCh0PT50aGlzLl9tYXJrU2VsZWN0ZWQodCkpKTp0aGlzLl9tYXJrU2VsZWN0ZWQoZVswXSksdGhpcy5fc2VsZWN0ZWRUb0VtaXQubGVuZ3RoPTApfWdldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLl9zZWxlY3RlZHx8KHRoaXMuX3NlbGVjdGVkPUFycmF5LmZyb20odGhpcy5fc2VsZWN0aW9uLnZhbHVlcygpKSksdGhpcy5fc2VsZWN0ZWR9c2VsZWN0KC4uLnQpe3RoaXMuX3ZlcmlmeVZhbHVlQXNzaWdubWVudCh0KSx0LmZvckVhY2goKHQ9PnRoaXMuX21hcmtTZWxlY3RlZCh0KSkpLHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpfWRlc2VsZWN0KC4uLnQpe3RoaXMuX3ZlcmlmeVZhbHVlQXNzaWdubWVudCh0KSx0LmZvckVhY2goKHQ9PnRoaXMuX3VubWFya1NlbGVjdGVkKHQpKSksdGhpcy5fZW1pdENoYW5nZUV2ZW50KCl9dG9nZ2xlKHQpe3RoaXMuaXNTZWxlY3RlZCh0KT90aGlzLmRlc2VsZWN0KHQpOnRoaXMuc2VsZWN0KHQpfWNsZWFyKCl7dGhpcy5fdW5tYXJrQWxsKCksdGhpcy5fZW1pdENoYW5nZUV2ZW50KCl9aXNTZWxlY3RlZCh0KXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uLmhhcyh0KX1pc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLl9zZWxlY3Rpb24uc2l6ZX1oYXNWYWx1ZSgpe3JldHVybiF0aGlzLmlzRW1wdHkoKX1zb3J0KHQpe3RoaXMuX211bHRpcGxlJiZ0aGlzLnNlbGVjdGVkJiZ0aGlzLl9zZWxlY3RlZC5zb3J0KHQpfWlzTXVsdGlwbGVTZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5fbXVsdGlwbGV9X2VtaXRDaGFuZ2VFdmVudCgpe3RoaXMuX3NlbGVjdGVkPW51bGwsKHRoaXMuX3NlbGVjdGVkVG9FbWl0Lmxlbmd0aHx8dGhpcy5fZGVzZWxlY3RlZFRvRW1pdC5sZW5ndGgpJiYodGhpcy5jaGFuZ2VkLm5leHQoe3NvdXJjZTp0aGlzLGFkZGVkOnRoaXMuX3NlbGVjdGVkVG9FbWl0LHJlbW92ZWQ6dGhpcy5fZGVzZWxlY3RlZFRvRW1pdH0pLHRoaXMuX2Rlc2VsZWN0ZWRUb0VtaXQ9W10sdGhpcy5fc2VsZWN0ZWRUb0VtaXQ9W10pfV9tYXJrU2VsZWN0ZWQodCl7dGhpcy5pc1NlbGVjdGVkKHQpfHwodGhpcy5fbXVsdGlwbGV8fHRoaXMuX3VubWFya0FsbCgpLHRoaXMuX3NlbGVjdGlvbi5hZGQodCksdGhpcy5fZW1pdENoYW5nZXMmJnRoaXMuX3NlbGVjdGVkVG9FbWl0LnB1c2godCkpfV91bm1hcmtTZWxlY3RlZCh0KXt0aGlzLmlzU2VsZWN0ZWQodCkmJih0aGlzLl9zZWxlY3Rpb24uZGVsZXRlKHQpLHRoaXMuX2VtaXRDaGFuZ2VzJiZ0aGlzLl9kZXNlbGVjdGVkVG9FbWl0LnB1c2godCkpfV91bm1hcmtBbGwoKXt0aGlzLmlzRW1wdHkoKXx8dGhpcy5fc2VsZWN0aW9uLmZvckVhY2goKHQ9PnRoaXMuX3VubWFya1NlbGVjdGVkKHQpKSl9X3ZlcmlmeVZhbHVlQXNzaWdubWVudCh0KXtpZih0Lmxlbmd0aD4xJiYhdGhpcy5fbXVsdGlwbGUmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyhmdW5jdGlvbiBlKCl7cmV0dXJuIEVycm9yKCJDYW5ub3QgcGFzcyBtdWx0aXBsZSB2YWx1ZXMgaW50byBTZWxlY3Rpb25Nb2RlbCB3aXRoIHNpbmdsZS12YWx1ZSBtb2RlLiIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKCl9fWNsYXNzIGlGe2NvbnN0cnVjdG9yKCl7dGhpcy5fbGlzdGVuZXJzPVtdfW5vdGlmeSh0LGUpe2ZvcihsZXQgbiBvZiB0aGlzLl9saXN0ZW5lcnMpbih0LGUpfWxpc3Rlbih0KXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzLnB1c2godCksKCk9Pnt0aGlzLl9saXN0ZW5lcnM9dGhpcy5fbGlzdGVuZXJzLmZpbHRlcigoZT0+dCE9PWUpKX19bmdPbkRlc3Ryb3koKXt0aGlzLl9saXN0ZW5lcnM9W119fWlGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxpRil9LGlGLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBpRn0sdG9rZW46aUYscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGlGLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgYUY9bmV3IEdhKCJfVmlld1JlcGVhdGVyIiksckY9WyJjb250ZW50V3JhcHBlciJdLHNGPW5ldyBHYSgiVklSVFVBTF9TQ1JPTExfU1RSQVRFR1kiKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGxGe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9zY3JvbGxlZEluZGV4Q2hhbmdlPW5ldyBJLHRoaXMuc2Nyb2xsZWRJbmRleENoYW5nZT10aGlzLl9zY3JvbGxlZEluZGV4Q2hhbmdlLnBpcGUoTWUoKSksdGhpcy5fdmlld3BvcnQ9bnVsbCx0aGlzLl9pdGVtU2l6ZT10LHRoaXMuX21pbkJ1ZmZlclB4PWUsdGhpcy5fbWF4QnVmZmVyUHg9bn1hdHRhY2godCl7dGhpcy5fdmlld3BvcnQ9dCx0aGlzLl91cGRhdGVUb3RhbENvbnRlbnRTaXplKCksdGhpcy5fdXBkYXRlUmVuZGVyZWRSYW5nZSgpfWRldGFjaCgpe3RoaXMuX3Njcm9sbGVkSW5kZXhDaGFuZ2UuY29tcGxldGUoKSx0aGlzLl92aWV3cG9ydD1udWxsfXVwZGF0ZUl0ZW1BbmRCdWZmZXJTaXplKHQsZSxuKXtpZihuPGUmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiQ0RLIHZpcnR1YWwgc2Nyb2xsOiBtYXhCdWZmZXJQeCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBtaW5CdWZmZXJQeCIpO3RoaXMuX2l0ZW1TaXplPXQsdGhpcy5fbWluQnVmZmVyUHg9ZSx0aGlzLl9tYXhCdWZmZXJQeD1uLHRoaXMuX3VwZGF0ZVRvdGFsQ29udGVudFNpemUoKSx0aGlzLl91cGRhdGVSZW5kZXJlZFJhbmdlKCl9b25Db250ZW50U2Nyb2xsZWQoKXt0aGlzLl91cGRhdGVSZW5kZXJlZFJhbmdlKCl9b25EYXRhTGVuZ3RoQ2hhbmdlZCgpe3RoaXMuX3VwZGF0ZVRvdGFsQ29udGVudFNpemUoKSx0aGlzLl91cGRhdGVSZW5kZXJlZFJhbmdlKCl9b25Db250ZW50UmVuZGVyZWQoKXt9b25SZW5kZXJlZE9mZnNldENoYW5nZWQoKXt9c2Nyb2xsVG9JbmRleCh0LGUpe3RoaXMuX3ZpZXdwb3J0JiZ0aGlzLl92aWV3cG9ydC5zY3JvbGxUb09mZnNldCh0KnRoaXMuX2l0ZW1TaXplLGUpfV91cGRhdGVUb3RhbENvbnRlbnRTaXplKCl7dGhpcy5fdmlld3BvcnQmJnRoaXMuX3ZpZXdwb3J0LnNldFRvdGFsQ29udGVudFNpemUodGhpcy5fdmlld3BvcnQuZ2V0RGF0YUxlbmd0aCgpKnRoaXMuX2l0ZW1TaXplKX1fdXBkYXRlUmVuZGVyZWRSYW5nZSgpe2lmKCF0aGlzLl92aWV3cG9ydClyZXR1cm47Y29uc3QgdD10aGlzLl92aWV3cG9ydC5nZXRSZW5kZXJlZFJhbmdlKCksZT17c3RhcnQ6dC5zdGFydCxlbmQ6dC5lbmR9LG49dGhpcy5fdmlld3BvcnQuZ2V0Vmlld3BvcnRTaXplKCksbz10aGlzLl92aWV3cG9ydC5nZXREYXRhTGVuZ3RoKCk7bGV0IGk9dGhpcy5fdmlld3BvcnQubWVhc3VyZVNjcm9sbE9mZnNldCgpLGE9dGhpcy5faXRlbVNpemU+MD9pL3RoaXMuX2l0ZW1TaXplOjA7aWYoZS5lbmQ+byl7Y29uc3QgdD1NYXRoLmNlaWwobi90aGlzLl9pdGVtU2l6ZSkscj1NYXRoLm1heCgwLE1hdGgubWluKGEsby10KSk7YSE9ciYmKGE9cixpPXIqdGhpcy5faXRlbVNpemUsZS5zdGFydD1NYXRoLmZsb29yKGEpKSxlLmVuZD1NYXRoLm1heCgwLE1hdGgubWluKG8sZS5zdGFydCt0KSl9Y29uc3Qgcj1pLWUuc3RhcnQqdGhpcy5faXRlbVNpemU7aWYocjx0aGlzLl9taW5CdWZmZXJQeCYmMCE9ZS5zdGFydCl7Y29uc3QgdD1NYXRoLmNlaWwoKHRoaXMuX21heEJ1ZmZlclB4LXIpL3RoaXMuX2l0ZW1TaXplKTtlLnN0YXJ0PU1hdGgubWF4KDAsZS5zdGFydC10KSxlLmVuZD1NYXRoLm1pbihvLE1hdGguY2VpbChhKyhuK3RoaXMuX21pbkJ1ZmZlclB4KS90aGlzLl9pdGVtU2l6ZSkpfWVsc2V7Y29uc3QgdD1lLmVuZCp0aGlzLl9pdGVtU2l6ZS0oaStuKTtpZih0PHRoaXMuX21pbkJ1ZmZlclB4JiZlLmVuZCE9byl7Y29uc3Qgbj1NYXRoLmNlaWwoKHRoaXMuX21heEJ1ZmZlclB4LXQpL3RoaXMuX2l0ZW1TaXplKTtuPjAmJihlLmVuZD1NYXRoLm1pbihvLGUuZW5kK24pLGUuc3RhcnQ9TWF0aC5tYXgoMCxNYXRoLmZsb29yKGEtdGhpcy5fbWluQnVmZmVyUHgvdGhpcy5faXRlbVNpemUpKSl9fXRoaXMuX3ZpZXdwb3J0LnNldFJlbmRlcmVkUmFuZ2UoZSksdGhpcy5fdmlld3BvcnQuc2V0UmVuZGVyZWRDb250ZW50T2Zmc2V0KHRoaXMuX2l0ZW1TaXplKmUuc3RhcnQpLHRoaXMuX3Njcm9sbGVkSW5kZXhDaGFuZ2UubmV4dChNYXRoLmZsb29yKGEpKX19ZnVuY3Rpb24gY0YodCl7cmV0dXJuIHQuX3Njcm9sbFN0cmF0ZWd5fWNsYXNzIGRGe2NvbnN0cnVjdG9yKCl7dGhpcy5faXRlbVNpemU9MjAsdGhpcy5fbWluQnVmZmVyUHg9MTAwLHRoaXMuX21heEJ1ZmZlclB4PTIwMCx0aGlzLl9zY3JvbGxTdHJhdGVneT1uZXcgbEYodGhpcy5pdGVtU2l6ZSx0aGlzLm1pbkJ1ZmZlclB4LHRoaXMubWF4QnVmZmVyUHgpfWdldCBpdGVtU2l6ZSgpe3JldHVybiB0aGlzLl9pdGVtU2l6ZX1zZXQgaXRlbVNpemUodCl7dGhpcy5faXRlbVNpemU9X3oodCl9Z2V0IG1pbkJ1ZmZlclB4KCl7cmV0dXJuIHRoaXMuX21pbkJ1ZmZlclB4fXNldCBtaW5CdWZmZXJQeCh0KXt0aGlzLl9taW5CdWZmZXJQeD1feih0KX1nZXQgbWF4QnVmZmVyUHgoKXtyZXR1cm4gdGhpcy5fbWF4QnVmZmVyUHh9c2V0IG1heEJ1ZmZlclB4KHQpe3RoaXMuX21heEJ1ZmZlclB4PV96KHQpfW5nT25DaGFuZ2VzKCl7dGhpcy5fc2Nyb2xsU3RyYXRlZ3kudXBkYXRlSXRlbUFuZEJ1ZmZlclNpemUodGhpcy5pdGVtU2l6ZSx0aGlzLm1pbkJ1ZmZlclB4LHRoaXMubWF4QnVmZmVyUHgpfX1kRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZEYpfSxkRi7JtWRpcj1sbyh7dHlwZTpkRixzZWxlY3RvcnM6W1siY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IiwiaXRlbVNpemUiLCIiXV0saW5wdXRzOntpdGVtU2l6ZToiaXRlbVNpemUiLG1pbkJ1ZmZlclB4OiJtaW5CdWZmZXJQeCIsbWF4QnVmZmVyUHg6Im1heEJ1ZmZlclB4In0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpzRix1c2VGYWN0b3J5OmNGLGRlcHM6W3FlKCgoKT0+ZEYpKV19XSksQm9dfSksZEYucHJvcERlY29yYXRvcnM9e2l0ZW1TaXplOlt7dHlwZTp4eX1dLG1pbkJ1ZmZlclB4Olt7dHlwZTp4eX1dLG1heEJ1ZmZlclB4Olt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGRGLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFtpdGVtU2l6ZV0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6c0YsdXNlRmFjdG9yeTpjRixkZXBzOltxZSgoKCk9PmRGKSldfV19XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse2l0ZW1TaXplOlt7dHlwZTp4eX1dLG1pbkJ1ZmZlclB4Olt7dHlwZTp4eX1dLG1heEJ1ZmZlclB4Olt7dHlwZTp4eX1dfSk7Y2xhc3MgcEZ7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX25nWm9uZT10LHRoaXMuX3BsYXRmb3JtPWUsdGhpcy5fc2Nyb2xsZWQ9bmV3IEksdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fc2Nyb2xsZWRDb3VudD0wLHRoaXMuc2Nyb2xsQ29udGFpbmVycz1uZXcgTWFwLHRoaXMuX2RvY3VtZW50PW59cmVnaXN0ZXIodCl7dGhpcy5zY3JvbGxDb250YWluZXJzLmhhcyh0KXx8dGhpcy5zY3JvbGxDb250YWluZXJzLnNldCh0LHQuZWxlbWVudFNjcm9sbGVkKCkuc3Vic2NyaWJlKCgoKT0+dGhpcy5fc2Nyb2xsZWQubmV4dCh0KSkpKX1kZXJlZ2lzdGVyKHQpe2NvbnN0IGU9dGhpcy5zY3JvbGxDb250YWluZXJzLmdldCh0KTtlJiYoZS51bnN1YnNjcmliZSgpLHRoaXMuc2Nyb2xsQ29udGFpbmVycy5kZWxldGUodCkpfXNjcm9sbGVkKHQ9MjApe3JldHVybiB0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXI/bmV3IEQoKGU9Pnt0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb258fHRoaXMuX2FkZEdsb2JhbExpc3RlbmVyKCk7Y29uc3Qgbj10PjA/dGhpcy5fc2Nyb2xsZWQucGlwZShkZSh0KSkuc3Vic2NyaWJlKGUpOnRoaXMuX3Njcm9sbGVkLnN1YnNjcmliZShlKTtyZXR1cm4gdGhpcy5fc2Nyb2xsZWRDb3VudCsrLCgpPT57bi51bnN1YnNjcmliZSgpLHRoaXMuX3Njcm9sbGVkQ291bnQtLSx0aGlzLl9zY3JvbGxlZENvdW50fHx0aGlzLl9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpfX0pKTpFdCgpfW5nT25EZXN0cm95KCl7dGhpcy5fcmVtb3ZlR2xvYmFsTGlzdGVuZXIoKSx0aGlzLnNjcm9sbENvbnRhaW5lcnMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuZGVyZWdpc3RlcihlKSkpLHRoaXMuX3Njcm9sbGVkLmNvbXBsZXRlKCl9YW5jZXN0b3JTY3JvbGxlZCh0LGUpe2NvbnN0IG49dGhpcy5nZXRBbmNlc3RvclNjcm9sbENvbnRhaW5lcnModCk7cmV0dXJuIHRoaXMuc2Nyb2xsZWQoZSkucGlwZShjZSgodD0+IXR8fG4uaW5kZXhPZih0KT4tMSkpKX1nZXRBbmNlc3RvclNjcm9sbENvbnRhaW5lcnModCl7Y29uc3QgZT1bXTtyZXR1cm4gdGhpcy5zY3JvbGxDb250YWluZXJzLmZvckVhY2goKChuLG8pPT57dGhpcy5fc2Nyb2xsYWJsZUNvbnRhaW5zRWxlbWVudChvLHQpJiZlLnB1c2gobyl9KSksZX1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3d9X3Njcm9sbGFibGVDb250YWluc0VsZW1lbnQodCxlKXtsZXQgbj14eihlKSxvPXQuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQ7ZG97aWYobj09bylyZXR1cm4hMH13aGlsZShuPW4ucGFyZW50RWxlbWVudCk7cmV0dXJuITF9X2FkZEdsb2JhbExpc3RlbmVyKCl7dGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uPXRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pm9lKHRoaXMuX2dldFdpbmRvdygpLmRvY3VtZW50LCJzY3JvbGwiKS5zdWJzY3JpYmUoKCgpPT50aGlzLl9zY3JvbGxlZC5uZXh0KCkpKSkpfV9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpe3RoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbiYmKHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbj1udWxsKX19cEYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBGKSh2cihhXyksdnIod3opLHZyKFpfLDgpKX0scEYuybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IHBGKHZyKGFfKSx2cih3eiksdnIoWl8sOCkpfSx0b2tlbjpwRixwcm92aWRlZEluOiJyb290In0pLHBGLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwRixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIG1Ge2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuZWxlbWVudFJlZj10LHRoaXMuc2Nyb2xsRGlzcGF0Y2hlcj1lLHRoaXMubmdab25lPW4sdGhpcy5kaXI9byx0aGlzLl9kZXN0cm95ZWQ9bmV3IEksdGhpcy5fZWxlbWVudFNjcm9sbGVkPW5ldyBEKCh0PT50aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pm9lKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCJzY3JvbGwiKS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSh0KSkpKSl9bmdPbkluaXQoKXt0aGlzLnNjcm9sbERpc3BhdGNoZXIucmVnaXN0ZXIodGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLnNjcm9sbERpc3BhdGNoZXIuZGVyZWdpc3Rlcih0aGlzKSx0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpfWVsZW1lbnRTY3JvbGxlZCgpe3JldHVybiB0aGlzLl9lbGVtZW50U2Nyb2xsZWR9Z2V0RWxlbWVudFJlZigpe3JldHVybiB0aGlzLmVsZW1lbnRSZWZ9c2Nyb2xsVG8odCl7Y29uc3QgZT10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxuPXRoaXMuZGlyJiYicnRsIj09dGhpcy5kaXIudmFsdWU7bnVsbD09dC5sZWZ0JiYodC5sZWZ0PW4/dC5lbmQ6dC5zdGFydCksbnVsbD09dC5yaWdodCYmKHQucmlnaHQ9bj90LnN0YXJ0OnQuZW5kKSxudWxsIT10LmJvdHRvbSYmKHQudG9wPWUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LXQuYm90dG9tKSxuJiYwIT1JeigpPyhudWxsIT10LmxlZnQmJih0LnJpZ2h0PWUuc2Nyb2xsV2lkdGgtZS5jbGllbnRXaWR0aC10LmxlZnQpLDI9PUl6KCk/dC5sZWZ0PXQucmlnaHQ6MT09SXooKSYmKHQubGVmdD10LnJpZ2h0Py10LnJpZ2h0OnQucmlnaHQpKTpudWxsIT10LnJpZ2h0JiYodC5sZWZ0PWUuc2Nyb2xsV2lkdGgtZS5jbGllbnRXaWR0aC10LnJpZ2h0KSx0aGlzLl9hcHBseVNjcm9sbFRvT3B0aW9ucyh0KX1fYXBwbHlTY3JvbGxUb09wdGlvbnModCl7Y29uc3QgZT10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDt6eigpP2Uuc2Nyb2xsVG8odCk6KG51bGwhPXQudG9wJiYoZS5zY3JvbGxUb3A9dC50b3ApLG51bGwhPXQubGVmdCYmKGUuc2Nyb2xsTGVmdD10LmxlZnQpKX1tZWFzdXJlU2Nyb2xsT2Zmc2V0KHQpe2NvbnN0IGU9ImxlZnQiLG49InJpZ2h0IixvPXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2lmKCJ0b3AiPT10KXJldHVybiBvLnNjcm9sbFRvcDtpZigiYm90dG9tIj09dClyZXR1cm4gby5zY3JvbGxIZWlnaHQtby5jbGllbnRIZWlnaHQtby5zY3JvbGxUb3A7Y29uc3QgaT10aGlzLmRpciYmInJ0bCI9PXRoaXMuZGlyLnZhbHVlO3JldHVybiJzdGFydCI9PXQ/dD1pP246ZToiZW5kIj09dCYmKHQ9aT9lOm4pLGkmJjI9PUl6KCk/dD09ZT9vLnNjcm9sbFdpZHRoLW8uY2xpZW50V2lkdGgtby5zY3JvbGxMZWZ0Om8uc2Nyb2xsTGVmdDppJiYxPT1JeigpP3Q9PWU/by5zY3JvbGxMZWZ0K28uc2Nyb2xsV2lkdGgtby5jbGllbnRXaWR0aDotby5zY3JvbGxMZWZ0OnQ9PWU/by5zY3JvbGxMZWZ0Om8uc2Nyb2xsV2lkdGgtby5jbGllbnRXaWR0aC1vLnNjcm9sbExlZnR9fW1GLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxtRikoU20oaGcpLFNtKHBGKSxTbShhXyksU20oSEksOCkpfSxtRi7JtWRpcj1sbyh7dHlwZTptRixzZWxlY3RvcnM6W1siIiwiY2RrLXNjcm9sbGFibGUiLCIiXSxbIiIsImNka1Njcm9sbGFibGUiLCIiXV19KSxtRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpwRn0se3R5cGU6YV99LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG1GLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltjZGstc2Nyb2xsYWJsZV0sIFtjZGtTY3JvbGxhYmxlXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6cEZ9LHt0eXBlOmFffSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV19KSxudWxsKTtjbGFzcyB1Rntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fcGxhdGZvcm09dCx0aGlzLl9jaGFuZ2U9bmV3IEksdGhpcy5fY2hhbmdlTGlzdGVuZXI9dD0+e3RoaXMuX2NoYW5nZS5uZXh0KHQpfSx0aGlzLl9kb2N1bWVudD1uLGUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57aWYodC5pc0Jyb3dzZXIpe2NvbnN0IHQ9dGhpcy5fZ2V0V2luZG93KCk7dC5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2NoYW5nZUxpc3RlbmVyKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIix0aGlzLl9jaGFuZ2VMaXN0ZW5lcil9dGhpcy5jaGFuZ2UoKS5zdWJzY3JpYmUoKCgpPT50aGlzLl92aWV3cG9ydFNpemU9bnVsbCkpfSkpfW5nT25EZXN0cm95KCl7aWYodGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXtjb25zdCB0PXRoaXMuX2dldFdpbmRvdygpO3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9jaGFuZ2VMaXN0ZW5lciksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsdGhpcy5fY2hhbmdlTGlzdGVuZXIpfXRoaXMuX2NoYW5nZS5jb21wbGV0ZSgpfWdldFZpZXdwb3J0U2l6ZSgpe3RoaXMuX3ZpZXdwb3J0U2l6ZXx8dGhpcy5fdXBkYXRlVmlld3BvcnRTaXplKCk7Y29uc3QgdD17d2lkdGg6dGhpcy5fdmlld3BvcnRTaXplLndpZHRoLGhlaWdodDp0aGlzLl92aWV3cG9ydFNpemUuaGVpZ2h0fTtyZXR1cm4gdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyfHwodGhpcy5fdmlld3BvcnRTaXplPW51bGwpLHR9Z2V0Vmlld3BvcnRSZWN0KCl7Y29uc3QgdD10aGlzLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKSx7d2lkdGg6ZSxoZWlnaHQ6bn09dGhpcy5nZXRWaWV3cG9ydFNpemUoKTtyZXR1cm57dG9wOnQudG9wLGxlZnQ6dC5sZWZ0LGJvdHRvbTp0LnRvcCtuLHJpZ2h0OnQubGVmdCtlLGhlaWdodDpuLHdpZHRoOmV9fWdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKXtpZighdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybnt0b3A6MCxsZWZ0OjB9O2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQsZT10aGlzLl9nZXRXaW5kb3coKSxuPXQuZG9jdW1lbnRFbGVtZW50LG89bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57dG9wOi1vLnRvcHx8dC5ib2R5LnNjcm9sbFRvcHx8ZS5zY3JvbGxZfHxuLnNjcm9sbFRvcHx8MCxsZWZ0Oi1vLmxlZnR8fHQuYm9keS5zY3JvbGxMZWZ0fHxlLnNjcm9sbFh8fG4uc2Nyb2xsTGVmdHx8MH19Y2hhbmdlKHQ9MjApe3JldHVybiB0PjA/dGhpcy5fY2hhbmdlLnBpcGUoZGUodCkpOnRoaXMuX2NoYW5nZX1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3d9X3VwZGF0ZVZpZXdwb3J0U2l6ZSgpe2NvbnN0IHQ9dGhpcy5fZ2V0V2luZG93KCk7dGhpcy5fdmlld3BvcnRTaXplPXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcj97d2lkdGg6dC5pbm5lcldpZHRoLGhlaWdodDp0LmlubmVySGVpZ2h0fTp7d2lkdGg6MCxoZWlnaHQ6MH19fXVGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx1RikodnIod3opLHZyKGFfKSx2cihaXyw4KSl9LHVGLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyB1Rih2cih3eiksdnIoYV8pLHZyKFpfLDgpKX0sdG9rZW46dUYscHJvdmlkZWRJbjoicm9vdCJ9KSx1Ri5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnd6fSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodUYsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnd6fSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y29uc3QgZkY9InVuZGVmaW5lZCIhPXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU/YXQ6JDtjbGFzcyBnRiBleHRlbmRzIG1Ge2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe2lmKHN1cGVyKHQsYSxuLGkpLHRoaXMuZWxlbWVudFJlZj10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9byx0aGlzLl9kZXRhY2hlZFN1YmplY3Q9bmV3IEksdGhpcy5fcmVuZGVyZWRSYW5nZVN1YmplY3Q9bmV3IEksdGhpcy5fb3JpZW50YXRpb249InZlcnRpY2FsIix0aGlzLl9hcHBlbmRPbmx5PSExLHRoaXMuc2Nyb2xsZWRJbmRleENoYW5nZT1uZXcgRCgodD0+dGhpcy5fc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsZWRJbmRleENoYW5nZS5zdWJzY3JpYmUoKGU9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT50aGlzLm5nWm9uZS5ydW4oKCgpPT50Lm5leHQoZSkpKSkpKSkpKSx0aGlzLnJlbmRlcmVkUmFuZ2VTdHJlYW09dGhpcy5fcmVuZGVyZWRSYW5nZVN1YmplY3QsdGhpcy5fdG90YWxDb250ZW50U2l6ZT0wLHRoaXMuX3RvdGFsQ29udGVudFdpZHRoPSIiLHRoaXMuX3RvdGFsQ29udGVudEhlaWdodD0iIix0aGlzLl9yZW5kZXJlZFJhbmdlPXtzdGFydDowLGVuZDowfSx0aGlzLl9kYXRhTGVuZ3RoPTAsdGhpcy5fdmlld3BvcnRTaXplPTAsdGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0PTAsdGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0TmVlZHNSZXdyaXRlPSExLHRoaXMuX2lzQ2hhbmdlRGV0ZWN0aW9uUGVuZGluZz0hMSx0aGlzLl9ydW5BZnRlckNoYW5nZURldGVjdGlvbj1bXSx0aGlzLl92aWV3cG9ydENoYW5nZXM9bS5FTVBUWSwhbyYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCdFcnJvcjogY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IHJlcXVpcmVzIHRoZSAiaXRlbVNpemUiIHByb3BlcnR5IHRvIGJlIHNldC4nKTt0aGlzLl92aWV3cG9ydENoYW5nZXM9ci5jaGFuZ2UoKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5jaGVja1ZpZXdwb3J0U2l6ZSgpfSkpfWdldCBvcmllbnRhdGlvbigpe3JldHVybiB0aGlzLl9vcmllbnRhdGlvbn1zZXQgb3JpZW50YXRpb24odCl7dGhpcy5fb3JpZW50YXRpb24hPT10JiYodGhpcy5fb3JpZW50YXRpb249dCx0aGlzLl9jYWxjdWxhdGVTcGFjZXJTaXplKCkpfWdldCBhcHBlbmRPbmx5KCl7cmV0dXJuIHRoaXMuX2FwcGVuZE9ubHl9c2V0IGFwcGVuZE9ubHkodCl7dGhpcy5fYXBwZW5kT25seT15eih0KX1uZ09uSW5pdCgpe3N1cGVyLm5nT25Jbml0KCksdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX21lYXN1cmVWaWV3cG9ydFNpemUoKSx0aGlzLl9zY3JvbGxTdHJhdGVneS5hdHRhY2godGhpcyksdGhpcy5lbGVtZW50U2Nyb2xsZWQoKS5waXBlKE5lKG51bGwpLGRlKDAsZkYpKS5zdWJzY3JpYmUoKCgpPT50aGlzLl9zY3JvbGxTdHJhdGVneS5vbkNvbnRlbnRTY3JvbGxlZCgpKSksdGhpcy5fbWFya0NoYW5nZURldGVjdGlvbk5lZWRlZCgpfSkpKSl9bmdPbkRlc3Ryb3koKXt0aGlzLmRldGFjaCgpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5LmRldGFjaCgpLHRoaXMuX3JlbmRlcmVkUmFuZ2VTdWJqZWN0LmNvbXBsZXRlKCksdGhpcy5fZGV0YWNoZWRTdWJqZWN0LmNvbXBsZXRlKCksdGhpcy5fdmlld3BvcnRDaGFuZ2VzLnVuc3Vic2NyaWJlKCksc3VwZXIubmdPbkRlc3Ryb3koKX1hdHRhY2godCl7aWYodGhpcy5fZm9yT2YmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IGlzIGFscmVhZHkgYXR0YWNoZWQuIik7dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57dGhpcy5fZm9yT2Y9dCx0aGlzLl9mb3JPZi5kYXRhU3RyZWFtLnBpcGUoSWUodGhpcy5fZGV0YWNoZWRTdWJqZWN0KSkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10Lmxlbmd0aDtlIT09dGhpcy5fZGF0YUxlbmd0aCYmKHRoaXMuX2RhdGFMZW5ndGg9ZSx0aGlzLl9zY3JvbGxTdHJhdGVneS5vbkRhdGFMZW5ndGhDaGFuZ2VkKCkpLHRoaXMuX2RvQ2hhbmdlRGV0ZWN0aW9uKCl9KSl9KSl9ZGV0YWNoKCl7dGhpcy5fZm9yT2Y9bnVsbCx0aGlzLl9kZXRhY2hlZFN1YmplY3QubmV4dCgpfWdldERhdGFMZW5ndGgoKXtyZXR1cm4gdGhpcy5fZGF0YUxlbmd0aH1nZXRWaWV3cG9ydFNpemUoKXtyZXR1cm4gdGhpcy5fdmlld3BvcnRTaXplfWdldFJlbmRlcmVkUmFuZ2UoKXtyZXR1cm4gdGhpcy5fcmVuZGVyZWRSYW5nZX1zZXRUb3RhbENvbnRlbnRTaXplKHQpe3RoaXMuX3RvdGFsQ29udGVudFNpemUhPT10JiYodGhpcy5fdG90YWxDb250ZW50U2l6ZT10LHRoaXMuX2NhbGN1bGF0ZVNwYWNlclNpemUoKSx0aGlzLl9tYXJrQ2hhbmdlRGV0ZWN0aW9uTmVlZGVkKCkpfXNldFJlbmRlcmVkUmFuZ2UodCl7KAovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gZSh0LG4pe3JldHVybiB0LnN0YXJ0PT1uLnN0YXJ0JiZ0LmVuZD09bi5lbmR9KSh0aGlzLl9yZW5kZXJlZFJhbmdlLHQpfHwodGhpcy5hcHBlbmRPbmx5JiYodD17c3RhcnQ6MCxlbmQ6TWF0aC5tYXgodGhpcy5fcmVuZGVyZWRSYW5nZS5lbmQsdC5lbmQpfSksdGhpcy5fcmVuZGVyZWRSYW5nZVN1YmplY3QubmV4dCh0aGlzLl9yZW5kZXJlZFJhbmdlPXQpLHRoaXMuX21hcmtDaGFuZ2VEZXRlY3Rpb25OZWVkZWQoKCgpPT50aGlzLl9zY3JvbGxTdHJhdGVneS5vbkNvbnRlbnRSZW5kZXJlZCgpKSkpfWdldE9mZnNldFRvUmVuZGVyZWRDb250ZW50U3RhcnQoKXtyZXR1cm4gdGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0TmVlZHNSZXdyaXRlP251bGw6dGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0fXNldFJlbmRlcmVkQ29udGVudE9mZnNldCh0LGU9InRvLXN0YXJ0Iil7Y29uc3Qgbj0iaG9yaXpvbnRhbCI9PXRoaXMub3JpZW50YXRpb24sbz1uPyJYIjoiWSI7bGV0IGk9YHRyYW5zbGF0ZSR7b30oJHtOdW1iZXIoKG4mJnRoaXMuZGlyJiYicnRsIj09dGhpcy5kaXIudmFsdWU/LTE6MSkqdCl9cHgpYDt0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXQ9dCwidG8tZW5kIj09PWUmJihpKz1gIHRyYW5zbGF0ZSR7b30oLTEwMCUpYCx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU9ITApLHRoaXMuX3JlbmRlcmVkQ29udGVudFRyYW5zZm9ybSE9aSYmKHRoaXMuX3JlbmRlcmVkQ29udGVudFRyYW5zZm9ybT1pLHRoaXMuX21hcmtDaGFuZ2VEZXRlY3Rpb25OZWVkZWQoKCgpPT57dGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0TmVlZHNSZXdyaXRlPyh0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXQtPXRoaXMubWVhc3VyZVJlbmRlcmVkQ29udGVudFNpemUoKSx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU9ITEsdGhpcy5zZXRSZW5kZXJlZENvbnRlbnRPZmZzZXQodGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0KSk6dGhpcy5fc2Nyb2xsU3RyYXRlZ3kub25SZW5kZXJlZE9mZnNldENoYW5nZWQoKX0pKSl9c2Nyb2xsVG9PZmZzZXQodCxlPSJhdXRvIil7Y29uc3Qgbj17YmVoYXZpb3I6ZX07Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj9uLnN0YXJ0PXQ6bi50b3A9dCx0aGlzLnNjcm9sbFRvKG4pfXNjcm9sbFRvSW5kZXgodCxlPSJhdXRvIil7dGhpcy5fc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9JbmRleCh0LGUpfW1lYXN1cmVTY3JvbGxPZmZzZXQodCl7cmV0dXJuIHN1cGVyLm1lYXN1cmVTY3JvbGxPZmZzZXQodHx8KCJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24/InN0YXJ0IjoidG9wIikpfW1lYXN1cmVSZW5kZXJlZENvbnRlbnRTaXplKCl7Y29uc3QgdD10aGlzLl9jb250ZW50V3JhcHBlci5uYXRpdmVFbGVtZW50O3JldHVybiJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24/dC5vZmZzZXRXaWR0aDp0Lm9mZnNldEhlaWdodH1tZWFzdXJlUmFuZ2VTaXplKHQpe3JldHVybiB0aGlzLl9mb3JPZj90aGlzLl9mb3JPZi5tZWFzdXJlUmFuZ2VTaXplKHQsdGhpcy5vcmllbnRhdGlvbik6MH1jaGVja1ZpZXdwb3J0U2l6ZSgpe3RoaXMuX21lYXN1cmVWaWV3cG9ydFNpemUoKSx0aGlzLl9zY3JvbGxTdHJhdGVneS5vbkRhdGFMZW5ndGhDaGFuZ2VkKCl9X21lYXN1cmVWaWV3cG9ydFNpemUoKXtjb25zdCB0PXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O3RoaXMuX3ZpZXdwb3J0U2l6ZT0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uP3QuY2xpZW50V2lkdGg6dC5jbGllbnRIZWlnaHR9X21hcmtDaGFuZ2VEZXRlY3Rpb25OZWVkZWQodCl7dCYmdGhpcy5fcnVuQWZ0ZXJDaGFuZ2VEZXRlY3Rpb24ucHVzaCh0KSx0aGlzLl9pc0NoYW5nZURldGVjdGlvblBlbmRpbmd8fCh0aGlzLl9pc0NoYW5nZURldGVjdGlvblBlbmRpbmc9ITAsdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX2RvQ2hhbmdlRGV0ZWN0aW9uKCl9KSkpKSl9X2RvQ2hhbmdlRGV0ZWN0aW9uKCl7dGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nPSExLHRoaXMuX2NvbnRlbnRXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtPXRoaXMuX3JlbmRlcmVkQ29udGVudFRyYW5zZm9ybSx0aGlzLm5nWm9uZS5ydW4oKCgpPT50aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSkpO2NvbnN0IHQ9dGhpcy5fcnVuQWZ0ZXJDaGFuZ2VEZXRlY3Rpb247dGhpcy5fcnVuQWZ0ZXJDaGFuZ2VEZXRlY3Rpb249W107Zm9yKGNvbnN0IGUgb2YgdCllKCl9X2NhbGN1bGF0ZVNwYWNlclNpemUoKXt0aGlzLl90b3RhbENvbnRlbnRIZWlnaHQ9Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8iIjpgJHt0aGlzLl90b3RhbENvbnRlbnRTaXplfXB4YCx0aGlzLl90b3RhbENvbnRlbnRXaWR0aD0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uP2Ake3RoaXMuX3RvdGFsQ29udGVudFNpemV9cHhgOiIifX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIGhGKHQsZSxuKXtpZighbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QpcmV0dXJuIDA7Y29uc3Qgbz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiJob3Jpem9udGFsIj09PXQ/InN0YXJ0Ij09PWU/by5sZWZ0Om8ucmlnaHQ6InN0YXJ0Ij09PWU/by50b3A6by5ib3R0b219Z0YuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGdGKShTbShoZyksU20oVWcpLFNtKGFfKSxTbShzRiw4KSxTbShISSw4KSxTbShwRiksU20odUYpKX0sZ0YuybVjbXA9dG8oe3R5cGU6Z0Ysc2VsZWN0b3JzOltbImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgockYsNyksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5fY29udGVudFdyYXBwZXI9dC5maXJzdCl9fSxob3N0QXR0cnM6WzEsImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJjZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsImhvcml6b250YWwiPT09bi5vcmllbnRhdGlvbikoImNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsImhvcml6b250YWwiIT09bi5vcmllbnRhdGlvbil9LGlucHV0czp7b3JpZW50YXRpb246Im9yaWVudGF0aW9uIixhcHBlbmRPbmx5OiJhcHBlbmRPbmx5In0sb3V0cHV0czp7c2Nyb2xsZWRJbmRleENoYW5nZToic2Nyb2xsZWRJbmRleENoYW5nZSJ9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6bUYsdXNlRXhpc3Rpbmc6Z0Z9XSkseHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczo0LHZhcnM6NCxjb25zdHM6W1sxLCJjZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyIl0sWyJjb250ZW50V3JhcHBlciIsIiJdLFsxLCJjZGstdmlydHVhbC1zY3JvbGwtc3BhY2VyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFJtKDAsImRpdiIsMCwxKSxYbSgyKSxBbSgpLFRtKDMsImRpdiIsMikpLDImZSYmKHJjKDMpLGR1KCJ3aWR0aCIsbi5fdG90YWxDb250ZW50V2lkdGgpKCJoZWlnaHQiLG4uX3RvdGFsQ29udGVudEhlaWdodCkpfSxzdHlsZXM6WyJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnR7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzphdXRvO2NvbnRhaW46c3RyaWN0O3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3dpbGwtY2hhbmdlOnNjcm9sbC1wb3NpdGlvbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Y29udGFpbjpjb250ZW50fVtkaXI9cnRsXSAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcntyaWdodDowO2xlZnQ6YXV0b30uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXJ7bWluLWhlaWdodDoxMDAlfS5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj5kbDpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+b2w6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnRhYmxlOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj51bDpub3QoW2Nka1ZpcnR1YWxGb3JdKXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowO291dGxpbmU6bm9uZX0uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVye21pbi13aWR0aDoxMDAlfS5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+ZGw6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj5vbDpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnRhYmxlOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+dWw6bm90KFtjZGtWaXJ0dWFsRm9yXSl7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtvdXRsaW5lOm5vbmV9LmNkay12aXJ0dWFsLXNjcm9sbC1zcGFjZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDoxcHg7d2lkdGg6MXB4O3RyYW5zZm9ybS1vcmlnaW46MCAwfVtkaXI9cnRsXSAuY2RrLXZpcnR1YWwtc2Nyb2xsLXNwYWNlcntyaWdodDowO2xlZnQ6YXV0bzt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMH1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGdGLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltzRl19XX0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6cEZ9LHt0eXBlOnVGfV0sZ0YucHJvcERlY29yYXRvcnM9e29yaWVudGF0aW9uOlt7dHlwZTp4eX1dLGFwcGVuZE9ubHk6W3t0eXBlOnh5fV0sc2Nyb2xsZWRJbmRleENoYW5nZTpbe3R5cGU6T3l9XSxfY29udGVudFdyYXBwZXI6W3t0eXBlOlphLGFyZ3M6WyJjb250ZW50V3JhcHBlciIse3N0YXRpYzohMH1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZ0YsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0Iix0ZW1wbGF0ZTonXHgzYyEtLVxuICBXcmFwIHRoZSByZW5kZXJlZCBjb250ZW50IGluIGFuIGVsZW1lbnQgdGhhdCB3aWxsIGJlIHVzZWQgdG8gb2Zmc2V0IGl0IGJhc2VkIG9uIHRoZSBzY3JvbGxcbiAgcG9zaXRpb24uXG4tLVx4M2VcbjxkaXYgI2NvbnRlbnRXcmFwcGVyIGNsYXNzPSJjZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5ceDNjIS0tXG4gIFNwYWNlciB1c2VkIHRvIGZvcmNlIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyIHRvIHRoZSBjb3JyZWN0IHNpemUgZm9yIHRoZSAqdG90YWwqIG51bWJlciBvZiBpdGVtc1xuICBzbyB0aGF0IHRoZSBzY3JvbGxiYXIgY2FwdHVyZXMgdGhlIHNpemUgb2YgdGhlIGVudGlyZSBkYXRhIHNldC5cbi0tXHgzZVxuPGRpdiBjbGFzcz0iY2RrLXZpcnR1YWwtc2Nyb2xsLXNwYWNlciJcbiAgICAgW3N0eWxlLndpZHRoXT0iX3RvdGFsQ29udGVudFdpZHRoIiBbc3R5bGUuaGVpZ2h0XT0iX3RvdGFsQ29udGVudEhlaWdodCI+PC9kaXY+XG4nLGhvc3Q6e2NsYXNzOiJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQiLCJbY2xhc3MuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWxdIjonb3JpZW50YXRpb24gPT09ICJob3Jpem9udGFsIicsIltjbGFzcy5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWxdIjonb3JpZW50YXRpb24gIT09ICJob3Jpem9udGFsIid9LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHByb3ZpZGVyczpbe3Byb3ZpZGU6bUYsdXNlRXhpc3Rpbmc6Z0Z9XSxzdHlsZXM6WyJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnR7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzphdXRvO2NvbnRhaW46c3RyaWN0O3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3dpbGwtY2hhbmdlOnNjcm9sbC1wb3NpdGlvbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Y29udGFpbjpjb250ZW50fVtkaXI9cnRsXSAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcntyaWdodDowO2xlZnQ6YXV0b30uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXJ7bWluLWhlaWdodDoxMDAlfS5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj5kbDpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+b2w6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnRhYmxlOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj51bDpub3QoW2Nka1ZpcnR1YWxGb3JdKXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowO291dGxpbmU6bm9uZX0uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVye21pbi13aWR0aDoxMDAlfS5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+ZGw6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj5vbDpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnRhYmxlOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+dWw6bm90KFtjZGtWaXJ0dWFsRm9yXSl7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtvdXRsaW5lOm5vbmV9LmNkay12aXJ0dWFsLXNjcm9sbC1zcGFjZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDoxcHg7d2lkdGg6MXB4O3RyYW5zZm9ybS1vcmlnaW46MCAwfVtkaXI9cnRsXSAuY2RrLXZpcnR1YWwtc2Nyb2xsLXNwYWNlcntyaWdodDowO2xlZnQ6YXV0bzt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMH1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltzRl19XX0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6cEZ9LHt0eXBlOnVGfV19KSx7c2Nyb2xsZWRJbmRleENoYW5nZTpbe3R5cGU6T3l9XSxvcmllbnRhdGlvbjpbe3R5cGU6eHl9XSxhcHBlbmRPbmx5Olt7dHlwZTp4eX1dLF9jb250ZW50V3JhcHBlcjpbe3R5cGU6WmEsYXJnczpbImNvbnRlbnRXcmFwcGVyIix7c3RhdGljOiEwfV19XX0pO2NsYXNzIGJGe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhKXt0aGlzLl92aWV3Q29udGFpbmVyUmVmPXQsdGhpcy5fdGVtcGxhdGU9ZSx0aGlzLl9kaWZmZXJzPW4sdGhpcy5fdmlld1JlcGVhdGVyPW8sdGhpcy5fdmlld3BvcnQ9aSx0aGlzLnZpZXdDaGFuZ2U9bmV3IEksdGhpcy5fZGF0YVNvdXJjZUNoYW5nZXM9bmV3IEksdGhpcy5kYXRhU3RyZWFtPXRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzLnBpcGUoTmUobnVsbCksRGUoKSx6ZSgoKFt0LGVdKT0+dGhpcy5fY2hhbmdlRGF0YVNvdXJjZSh0LGUpKSksQWUoMSkpLHRoaXMuX2RpZmZlcj1udWxsLHRoaXMuX25lZWRzVXBkYXRlPSExLHRoaXMuX2Rlc3Ryb3llZD1uZXcgSSx0aGlzLmRhdGFTdHJlYW0uc3Vic2NyaWJlKCh0PT57dGhpcy5fZGF0YT10LHRoaXMuX29uUmVuZGVyZWREYXRhQ2hhbmdlKCl9KSksdGhpcy5fdmlld3BvcnQucmVuZGVyZWRSYW5nZVN0cmVhbS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodD0+e3RoaXMuX3JlbmRlcmVkUmFuZ2U9dCxhLnJ1bigoKCk9PnRoaXMudmlld0NoYW5nZS5uZXh0KHRoaXMuX3JlbmRlcmVkUmFuZ2UpKSksdGhpcy5fb25SZW5kZXJlZERhdGFDaGFuZ2UoKX0pKSx0aGlzLl92aWV3cG9ydC5hdHRhY2godGhpcyl9Z2V0IGNka1ZpcnR1YWxGb3JPZigpe3JldHVybiB0aGlzLl9jZGtWaXJ0dWFsRm9yT2Z9c2V0IGNka1ZpcnR1YWxGb3JPZih0KXt0aGlzLl9jZGtWaXJ0dWFsRm9yT2Y9dCwkSCh0KT90aGlzLl9kYXRhU291cmNlQ2hhbmdlcy5uZXh0KHQpOnRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzLm5leHQobmV3IHRGKE50KHQpP3Q6QXJyYXkuZnJvbSh0fHxbXSkpKX1nZXQgY2RrVmlydHVhbEZvclRyYWNrQnkoKXtyZXR1cm4gdGhpcy5fY2RrVmlydHVhbEZvclRyYWNrQnl9c2V0IGNka1ZpcnR1YWxGb3JUcmFja0J5KHQpe3RoaXMuX25lZWRzVXBkYXRlPSEwLHRoaXMuX2Nka1ZpcnR1YWxGb3JUcmFja0J5PXQ/KGUsbik9PnQoZSsodGhpcy5fcmVuZGVyZWRSYW5nZT90aGlzLl9yZW5kZXJlZFJhbmdlLnN0YXJ0OjApLG4pOnZvaWQgMH1zZXQgY2RrVmlydHVhbEZvclRlbXBsYXRlKHQpe3QmJih0aGlzLl9uZWVkc1VwZGF0ZT0hMCx0aGlzLl90ZW1wbGF0ZT10KX1nZXQgY2RrVmlydHVhbEZvclRlbXBsYXRlQ2FjaGVTaXplKCl7cmV0dXJuIHRoaXMuX3ZpZXdSZXBlYXRlci52aWV3Q2FjaGVTaXplfXNldCBjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemUodCl7dGhpcy5fdmlld1JlcGVhdGVyLnZpZXdDYWNoZVNpemU9X3oodCl9bWVhc3VyZVJhbmdlU2l6ZSh0LGUpe2lmKHQuc3RhcnQ+PXQuZW5kKXJldHVybiAwO2lmKCh0LnN0YXJ0PHRoaXMuX3JlbmRlcmVkUmFuZ2Uuc3RhcnR8fHQuZW5kPnRoaXMuX3JlbmRlcmVkUmFuZ2UuZW5kKSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJFcnJvcjogYXR0ZW1wdGVkIHRvIG1lYXN1cmUgYW4gaXRlbSB0aGF0IGlzbid0IHJlbmRlcmVkLiIpO2NvbnN0IG49dC5zdGFydC10aGlzLl9yZW5kZXJlZFJhbmdlLnN0YXJ0LG89dC5lbmQtdC5zdGFydDtsZXQgaSxhO2ZvcihsZXQgdD0wO3Q8bzt0Kyspe2NvbnN0IGU9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQodCtuKTtpZihlJiZlLnJvb3ROb2Rlcy5sZW5ndGgpe2k9YT1lLnJvb3ROb2Rlc1swXTticmVha319Zm9yKGxldCB0PW8tMTt0Pi0xO3QtLSl7Y29uc3QgZT10aGlzLl92aWV3Q29udGFpbmVyUmVmLmdldCh0K24pO2lmKGUmJmUucm9vdE5vZGVzLmxlbmd0aCl7YT1lLnJvb3ROb2Rlc1tlLnJvb3ROb2Rlcy5sZW5ndGgtMV07YnJlYWt9fXJldHVybiBpJiZhP2hGKGUsImVuZCIsYSktaEYoZSwic3RhcnQiLGkpOjB9bmdEb0NoZWNrKCl7aWYodGhpcy5fZGlmZmVyJiZ0aGlzLl9uZWVkc1VwZGF0ZSl7Y29uc3QgdD10aGlzLl9kaWZmZXIuZGlmZih0aGlzLl9yZW5kZXJlZEl0ZW1zKTt0P3RoaXMuX2FwcGx5Q2hhbmdlcyh0KTp0aGlzLl91cGRhdGVDb250ZXh0KCksdGhpcy5fbmVlZHNVcGRhdGU9ITF9fW5nT25EZXN0cm95KCl7dGhpcy5fdmlld3BvcnQuZGV0YWNoKCksdGhpcy5fZGF0YVNvdXJjZUNoYW5nZXMubmV4dCh2b2lkIDApLHRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzLmNvbXBsZXRlKCksdGhpcy52aWV3Q2hhbmdlLmNvbXBsZXRlKCksdGhpcy5fZGVzdHJveWVkLm5leHQoKSx0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKSx0aGlzLl92aWV3UmVwZWF0ZXIuZGV0YWNoKCl9X29uUmVuZGVyZWREYXRhQ2hhbmdlKCl7dGhpcy5fcmVuZGVyZWRSYW5nZSYmKHRoaXMuX3JlbmRlcmVkSXRlbXM9dGhpcy5fZGF0YS5zbGljZSh0aGlzLl9yZW5kZXJlZFJhbmdlLnN0YXJ0LHRoaXMuX3JlbmRlcmVkUmFuZ2UuZW5kKSx0aGlzLl9kaWZmZXJ8fCh0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKHRoaXMuX3JlbmRlcmVkSXRlbXMpLmNyZWF0ZSgoKHQsZSk9PnRoaXMuY2RrVmlydHVhbEZvclRyYWNrQnk/dGhpcy5jZGtWaXJ0dWFsRm9yVHJhY2tCeSh0LGUpOmUpKSksdGhpcy5fbmVlZHNVcGRhdGU9ITApfV9jaGFuZ2VEYXRhU291cmNlKHQsZSl7cmV0dXJuIHQmJnQuZGlzY29ubmVjdCh0aGlzKSx0aGlzLl9uZWVkc1VwZGF0ZT0hMCxlP2UuY29ubmVjdCh0aGlzKTpFdCgpfV91cGRhdGVDb250ZXh0KCl7Y29uc3QgdD10aGlzLl9kYXRhLmxlbmd0aDtsZXQgZT10aGlzLl92aWV3Q29udGFpbmVyUmVmLmxlbmd0aDtmb3IoO2UtLTspe2NvbnN0IG49dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQoZSk7bi5jb250ZXh0LmluZGV4PXRoaXMuX3JlbmRlcmVkUmFuZ2Uuc3RhcnQrZSxuLmNvbnRleHQuY291bnQ9dCx0aGlzLl91cGRhdGVDb21wdXRlZENvbnRleHRQcm9wZXJ0aWVzKG4uY29udGV4dCksbi5kZXRlY3RDaGFuZ2VzKCl9fV9hcHBseUNoYW5nZXModCl7dGhpcy5fdmlld1JlcGVhdGVyLmFwcGx5Q2hhbmdlcyh0LHRoaXMuX3ZpZXdDb250YWluZXJSZWYsKCh0LGUsbik9PnRoaXMuX2dldEVtYmVkZGVkVmlld0FyZ3ModCxuKSksKHQ9PnQuaXRlbSkpLHQuZm9yRWFjaElkZW50aXR5Q2hhbmdlKCh0PT57dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQodC5jdXJyZW50SW5kZXgpLmNvbnRleHQuJGltcGxpY2l0PXQuaXRlbX0pKTtjb25zdCBlPXRoaXMuX2RhdGEubGVuZ3RoO2xldCBuPXRoaXMuX3ZpZXdDb250YWluZXJSZWYubGVuZ3RoO2Zvcig7bi0tOyl7Y29uc3QgdD10aGlzLl92aWV3Q29udGFpbmVyUmVmLmdldChuKTt0LmNvbnRleHQuaW5kZXg9dGhpcy5fcmVuZGVyZWRSYW5nZS5zdGFydCtuLHQuY29udGV4dC5jb3VudD1lLHRoaXMuX3VwZGF0ZUNvbXB1dGVkQ29udGV4dFByb3BlcnRpZXModC5jb250ZXh0KX19X3VwZGF0ZUNvbXB1dGVkQ29udGV4dFByb3BlcnRpZXModCl7dC5maXJzdD0wPT09dC5pbmRleCx0Lmxhc3Q9dC5pbmRleD09PXQuY291bnQtMSx0LmV2ZW49dC5pbmRleCUyPT0wLHQub2RkPSF0LmV2ZW59X2dldEVtYmVkZGVkVmlld0FyZ3ModCxlKXtyZXR1cm57dGVtcGxhdGVSZWY6dGhpcy5fdGVtcGxhdGUsY29udGV4dDp7JGltcGxpY2l0OnQuaXRlbSxjZGtWaXJ0dWFsRm9yT2Y6dGhpcy5fY2RrVmlydHVhbEZvck9mLGluZGV4Oi0xLGNvdW50Oi0xLGZpcnN0OiExLGxhc3Q6ITEsb2RkOiExLGV2ZW46ITF9LGluZGV4OmV9fX1iRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YkYpKFNtKGVoKSxTbShYZyksU20oSGcpLFNtKGFGKSxTbShnRiw0KSxTbShhXykpfSxiRi7JtWRpcj1sbyh7dHlwZTpiRixzZWxlY3RvcnM6W1siIiwiY2RrVmlydHVhbEZvciIsIiIsImNka1ZpcnR1YWxGb3JPZiIsIiJdXSxpbnB1dHM6e2Nka1ZpcnR1YWxGb3JPZjoiY2RrVmlydHVhbEZvck9mIixjZGtWaXJ0dWFsRm9yVHJhY2tCeToiY2RrVmlydHVhbEZvclRyYWNrQnkiLGNka1ZpcnR1YWxGb3JUZW1wbGF0ZToiY2RrVmlydHVhbEZvclRlbXBsYXRlIixjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemU6ImNka1ZpcnR1YWxGb3JUZW1wbGF0ZUNhY2hlU2l6ZSJ9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6YUYsdXNlQ2xhc3M6bkZ9XSldfSksYkYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH0se3R5cGU6WGd9LHt0eXBlOkhnfSx7dHlwZTpuRixkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlthRl19XX0se3R5cGU6Z0YsZGVjb3JhdG9yczpbe3R5cGU6RXJ9XX0se3R5cGU6YV99XSxiRi5wcm9wRGVjb3JhdG9ycz17Y2RrVmlydHVhbEZvck9mOlt7dHlwZTp4eX1dLGNka1ZpcnR1YWxGb3JUcmFja0J5Olt7dHlwZTp4eX1dLGNka1ZpcnR1YWxGb3JUZW1wbGF0ZTpbe3R5cGU6eHl9XSxjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemU6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYkYsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka1ZpcnR1YWxGb3JdW2Nka1ZpcnR1YWxGb3JPZl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6YUYsdXNlQ2xhc3M6bkZ9XX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofSx7dHlwZTpYZ30se3R5cGU6SGd9LHt0eXBlOm5GLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2FGXX1dfSx7dHlwZTpnRixkZWNvcmF0b3JzOlt7dHlwZTpFcn1dfSx7dHlwZTphX31dfSkse2Nka1ZpcnR1YWxGb3JPZjpbe3R5cGU6eHl9XSxjZGtWaXJ0dWFsRm9yVHJhY2tCeTpbe3R5cGU6eHl9XSxjZGtWaXJ0dWFsRm9yVGVtcGxhdGU6W3t0eXBlOnh5fV0sY2RrVmlydHVhbEZvclRlbXBsYXRlQ2FjaGVTaXplOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyB5Rnt9eUYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHlGKX0seUYuybVtb2Q9YW8oe3R5cGU6eUZ9KSx5Ri7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh5Rixbe3R5cGU6QXksYXJnczpbe2V4cG9ydHM6W21GXSxkZWNsYXJhdGlvbnM6W21GXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHlGLHtkZWNsYXJhdGlvbnM6W21GXSxleHBvcnRzOlttRl19KTtjbGFzcyBfRnt9ZnVuY3Rpb24gQ0YoKXt0aHJvdyBFcnJvcigiSG9zdCBhbHJlYWR5IGhhcyBhIHBvcnRhbCBhdHRhY2hlZCIpfV9GLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfRil9LF9GLsm1bW9kPWFvKHt0eXBlOl9GfSksX0YuybVpbmo9dm4oe2ltcG9ydHM6W1tMSSxreix5Rl0sTEkseUZdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChfRixbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W0xJLGt6LHlGXSxleHBvcnRzOltMSSx5RixkRixiRixnRl0sZGVjbGFyYXRpb25zOltkRixiRixnRl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhfRix7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2RGLGJGLGdGXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltMSSxreix5Rl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTEkseUYsZEYsYkYsZ0ZdfX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgTUZ7YXR0YWNoKHQpe3JldHVybigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmKG51bGw9PXQmJihmdW5jdGlvbiBlKCl7dGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYXR0YWNoIGEgcG9ydGFsIHRvIGEgbnVsbCBQb3J0YWxPdXRsZXQiKX0pKCksdC5oYXNBdHRhY2hlZCgpJiZDRigpKSx0aGlzLl9hdHRhY2hlZEhvc3Q9dCx0LmF0dGFjaCh0aGlzKX1kZXRhY2goKXtsZXQgdD10aGlzLl9hdHRhY2hlZEhvc3Q7bnVsbCE9dD8odGhpcy5fYXR0YWNoZWRIb3N0PW51bGwsdC5kZXRhY2goKSk6KCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiYoZnVuY3Rpb24gZSgpe3Rocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGRldGFjaCBhIHBvcnRhbCB0aGF0IGlzIG5vdCBhdHRhY2hlZCB0byBhIGhvc3QiKX0pKCl9Z2V0IGlzQXR0YWNoZWQoKXtyZXR1cm4gbnVsbCE9dGhpcy5fYXR0YWNoZWRIb3N0fXNldEF0dGFjaGVkSG9zdCh0KXt0aGlzLl9hdHRhY2hlZEhvc3Q9dH19Y2xhc3MgdkYgZXh0ZW5kcyBNRntjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcigpLHRoaXMuY29tcG9uZW50PXQsdGhpcy52aWV3Q29udGFpbmVyUmVmPWUsdGhpcy5pbmplY3Rvcj1uLHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPW99fWNsYXNzIHhGIGV4dGVuZHMgTUZ7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy50ZW1wbGF0ZVJlZj10LHRoaXMudmlld0NvbnRhaW5lclJlZj1lLHRoaXMuY29udGV4dD1ufWdldCBvcmlnaW4oKXtyZXR1cm4gdGhpcy50ZW1wbGF0ZVJlZi5lbGVtZW50UmVmfWF0dGFjaCh0LGU9dGhpcy5jb250ZXh0KXtyZXR1cm4gdGhpcy5jb250ZXh0PWUsc3VwZXIuYXR0YWNoKHQpfWRldGFjaCgpe3JldHVybiB0aGlzLmNvbnRleHQ9dm9pZCAwLHN1cGVyLmRldGFjaCgpfX1jbGFzcyBPRiBleHRlbmRzIE1Ge2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5lbGVtZW50PXQgaW5zdGFuY2VvZiBoZz90Lm5hdGl2ZUVsZW1lbnQ6dH19Y2xhc3MgUEZ7Y29uc3RydWN0b3IoKXt0aGlzLl9pc0Rpc3Bvc2VkPSExLHRoaXMuYXR0YWNoRG9tUG9ydGFsPW51bGx9aGFzQXR0YWNoZWQoKXtyZXR1cm4hIXRoaXMuX2F0dGFjaGVkUG9ydGFsfWF0dGFjaCh0KXtyZXR1cm4oInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJih0fHwoZnVuY3Rpb24gZSgpe3Rocm93IEVycm9yKCJNdXN0IHByb3ZpZGUgYSBwb3J0YWwgdG8gYXR0YWNoIil9KSgpLHRoaXMuaGFzQXR0YWNoZWQoKSYmQ0YoKSx0aGlzLl9pc0Rpc3Bvc2VkJiYoZnVuY3Rpb24gbigpe3Rocm93IEVycm9yKCJUaGlzIFBvcnRhbE91dGxldCBoYXMgYWxyZWFkeSBiZWVuIGRpc3Bvc2VkIil9KSgpKSx0IGluc3RhbmNlb2YgdkY/KHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsdGhpcy5hdHRhY2hDb21wb25lbnRQb3J0YWwodCkpOnQgaW5zdGFuY2VvZiB4Rj8odGhpcy5fYXR0YWNoZWRQb3J0YWw9dCx0aGlzLmF0dGFjaFRlbXBsYXRlUG9ydGFsKHQpKTp0aGlzLmF0dGFjaERvbVBvcnRhbCYmdCBpbnN0YW5jZW9mIE9GPyh0aGlzLl9hdHRhY2hlZFBvcnRhbD10LHRoaXMuYXR0YWNoRG9tUG9ydGFsKHQpKTp2b2lkKCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmKGZ1bmN0aW9uIG8oKXt0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhdHRhY2ggYW4gdW5rbm93biBQb3J0YWwgdHlwZS4gQmFzZVBvcnRhbE91dGxldCBhY2NlcHRzIGVpdGhlciBhIENvbXBvbmVudFBvcnRhbCBvciBhIFRlbXBsYXRlUG9ydGFsLiIpfSkoKSl9ZGV0YWNoKCl7dGhpcy5fYXR0YWNoZWRQb3J0YWwmJih0aGlzLl9hdHRhY2hlZFBvcnRhbC5zZXRBdHRhY2hlZEhvc3QobnVsbCksdGhpcy5fYXR0YWNoZWRQb3J0YWw9bnVsbCksdGhpcy5faW52b2tlRGlzcG9zZUZuKCl9ZGlzcG9zZSgpe3RoaXMuaGFzQXR0YWNoZWQoKSYmdGhpcy5kZXRhY2goKSx0aGlzLl9pbnZva2VEaXNwb3NlRm4oKSx0aGlzLl9pc0Rpc3Bvc2VkPSEwfXNldERpc3Bvc2VGbih0KXt0aGlzLl9kaXNwb3NlRm49dH1faW52b2tlRGlzcG9zZUZuKCl7dGhpcy5fZGlzcG9zZUZuJiYodGhpcy5fZGlzcG9zZUZuKCksdGhpcy5fZGlzcG9zZUZuPW51bGwpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3Mgd0YgZXh0ZW5kcyBQRntjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3N1cGVyKCksdGhpcy5vdXRsZXRFbGVtZW50PXQsdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPWUsdGhpcy5fYXBwUmVmPW4sdGhpcy5fZGVmYXVsdEluamVjdG9yPW8sdGhpcy5hdHRhY2hEb21Qb3J0YWw9dD0+e2lmKCF0aGlzLl9kb2N1bWVudCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJDYW5ub3QgYXR0YWNoIERPTSBwb3J0YWwgd2l0aG91dCBfZG9jdW1lbnQgY29uc3RydWN0b3IgcGFyYW1ldGVyIik7Y29uc3QgZT10LmVsZW1lbnQ7aWYoIWUucGFyZW50Tm9kZSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJET00gcG9ydGFsIGNvbnRlbnQgbXVzdCBiZSBhdHRhY2hlZCB0byBhIHBhcmVudCBub2RlLiIpO2NvbnN0IG49dGhpcy5fZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiZG9tLXBvcnRhbCIpO2UucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobixlKSx0aGlzLm91dGxldEVsZW1lbnQuYXBwZW5kQ2hpbGQoZSksdGhpcy5fYXR0YWNoZWRQb3J0YWw9dCxzdXBlci5zZXREaXNwb3NlRm4oKCgpPT57bi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGUsbil9KSl9LHRoaXMuX2RvY3VtZW50PWl9YXR0YWNoQ29tcG9uZW50UG9ydGFsKHQpe2NvbnN0IGU9KHQuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyfHx0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHQuY29tcG9uZW50KTtsZXQgbjtyZXR1cm4gdC52aWV3Q29udGFpbmVyUmVmPyhuPXQudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZSx0LnZpZXdDb250YWluZXJSZWYubGVuZ3RoLHQuaW5qZWN0b3J8fHQudmlld0NvbnRhaW5lclJlZi5pbmplY3RvciksdGhpcy5zZXREaXNwb3NlRm4oKCgpPT5uLmRlc3Ryb3koKSkpKToobj1lLmNyZWF0ZSh0LmluamVjdG9yfHx0aGlzLl9kZWZhdWx0SW5qZWN0b3IpLHRoaXMuX2FwcFJlZi5hdHRhY2hWaWV3KG4uaG9zdFZpZXcpLHRoaXMuc2V0RGlzcG9zZUZuKCgoKT0+e3RoaXMuX2FwcFJlZi5kZXRhY2hWaWV3KG4uaG9zdFZpZXcpLG4uZGVzdHJveSgpfSkpKSx0aGlzLm91dGxldEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZ2V0Q29tcG9uZW50Um9vdE5vZGUobikpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsbn1hdHRhY2hUZW1wbGF0ZVBvcnRhbCh0KXtsZXQgZT10LnZpZXdDb250YWluZXJSZWYsbj1lLmNyZWF0ZUVtYmVkZGVkVmlldyh0LnRlbXBsYXRlUmVmLHQuY29udGV4dCk7cmV0dXJuIG4ucm9vdE5vZGVzLmZvckVhY2goKHQ9PnRoaXMub3V0bGV0RWxlbWVudC5hcHBlbmRDaGlsZCh0KSkpLG4uZGV0ZWN0Q2hhbmdlcygpLHRoaXMuc2V0RGlzcG9zZUZuKCgoKT0+e2xldCB0PWUuaW5kZXhPZihuKTstMSE9PXQmJmUucmVtb3ZlKHQpfSkpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsbn1kaXNwb3NlKCl7c3VwZXIuZGlzcG9zZSgpLG51bGwhPXRoaXMub3V0bGV0RWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLm91dGxldEVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLm91dGxldEVsZW1lbnQpfV9nZXRDb21wb25lbnRSb290Tm9kZSh0KXtyZXR1cm4gdC5ob3N0Vmlldy5yb290Tm9kZXNbMF19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBrRiBleHRlbmRzIHhGe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKX19a0YuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGtGKShTbShYZyksU20oZWgpKX0sa0YuybVkaXI9bG8oe3R5cGU6a0Ysc2VsZWN0b3JzOltbIiIsImNka1BvcnRhbCIsIiJdXSxleHBvcnRBczpbImNka1BvcnRhbCJdLGZlYXR1cmVzOlt4cF19KSxrRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlhnfSx7dHlwZTplaH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoa0YsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka1BvcnRhbF0iLGV4cG9ydEFzOiJjZGtQb3J0YWwifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WGd9LHt0eXBlOmVofV19KSxudWxsKTtjbGFzcyBTRiBleHRlbmRzIGtGe31TRi7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoU0YpKSkobnx8U0YpfX0pKCksU0YuybVkaXI9bG8oe3R5cGU6U0Ysc2VsZWN0b3JzOltbIiIsImNkay1wb3J0YWwiLCIiXSxbIiIsInBvcnRhbCIsIiJdXSxleHBvcnRBczpbImNka1BvcnRhbCJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6a0YsdXNlRXhpc3Rpbmc6U0Z9XSkseHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChTRixbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrLXBvcnRhbF0sIFtwb3J0YWxdIixleHBvcnRBczoiY2RrUG9ydGFsIixwcm92aWRlcnM6W3twcm92aWRlOmtGLHVzZUV4aXN0aW5nOlNGfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgREYgZXh0ZW5kcyBQRntjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9dCx0aGlzLl92aWV3Q29udGFpbmVyUmVmPWUsdGhpcy5faXNJbml0aWFsaXplZD0hMSx0aGlzLmF0dGFjaGVkPW5ldyBMaCx0aGlzLmF0dGFjaERvbVBvcnRhbD10PT57aWYoIXRoaXMuX2RvY3VtZW50JiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoIkNhbm5vdCBhdHRhY2ggRE9NIHBvcnRhbCB3aXRob3V0IF9kb2N1bWVudCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIiKTtjb25zdCBlPXQuZWxlbWVudDtpZighZS5wYXJlbnROb2RlJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoIkRPTSBwb3J0YWwgY29udGVudCBtdXN0IGJlIGF0dGFjaGVkIHRvIGEgcGFyZW50IG5vZGUuIik7Y29uc3Qgbj10aGlzLl9kb2N1bWVudC5jcmVhdGVDb21tZW50KCJkb20tcG9ydGFsIik7dC5zZXRBdHRhY2hlZEhvc3QodGhpcyksZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLGUpLHRoaXMuX2dldFJvb3ROb2RlKCkuYXBwZW5kQ2hpbGQoZSksdGhpcy5fYXR0YWNoZWRQb3J0YWw9dCxzdXBlci5zZXREaXNwb3NlRm4oKCgpPT57bi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGUsbil9KSl9LHRoaXMuX2RvY3VtZW50PW59Z2V0IHBvcnRhbCgpe3JldHVybiB0aGlzLl9hdHRhY2hlZFBvcnRhbH1zZXQgcG9ydGFsKHQpeyghdGhpcy5oYXNBdHRhY2hlZCgpfHx0fHx0aGlzLl9pc0luaXRpYWxpemVkKSYmKHRoaXMuaGFzQXR0YWNoZWQoKSYmc3VwZXIuZGV0YWNoKCksdCYmc3VwZXIuYXR0YWNoKHQpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQpfWdldCBhdHRhY2hlZFJlZigpe3JldHVybiB0aGlzLl9hdHRhY2hlZFJlZn1uZ09uSW5pdCgpe3RoaXMuX2lzSW5pdGlhbGl6ZWQ9ITB9bmdPbkRlc3Ryb3koKXtzdXBlci5kaXNwb3NlKCksdGhpcy5fYXR0YWNoZWRQb3J0YWw9bnVsbCx0aGlzLl9hdHRhY2hlZFJlZj1udWxsfWF0dGFjaENvbXBvbmVudFBvcnRhbCh0KXt0LnNldEF0dGFjaGVkSG9zdCh0aGlzKTtjb25zdCBlPW51bGwhPXQudmlld0NvbnRhaW5lclJlZj90LnZpZXdDb250YWluZXJSZWY6dGhpcy5fdmlld0NvbnRhaW5lclJlZixuPSh0LmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcnx8dGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKS5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0LmNvbXBvbmVudCksbz1lLmNyZWF0ZUNvbXBvbmVudChuLGUubGVuZ3RoLHQuaW5qZWN0b3J8fGUuaW5qZWN0b3IpO3JldHVybiBlIT09dGhpcy5fdmlld0NvbnRhaW5lclJlZiYmdGhpcy5fZ2V0Um9vdE5vZGUoKS5hcHBlbmRDaGlsZChvLmhvc3RWaWV3LnJvb3ROb2Rlc1swXSksc3VwZXIuc2V0RGlzcG9zZUZuKCgoKT0+by5kZXN0cm95KCkpKSx0aGlzLl9hdHRhY2hlZFBvcnRhbD10LHRoaXMuX2F0dGFjaGVkUmVmPW8sdGhpcy5hdHRhY2hlZC5lbWl0KG8pLG99YXR0YWNoVGVtcGxhdGVQb3J0YWwodCl7dC5zZXRBdHRhY2hlZEhvc3QodGhpcyk7Y29uc3QgZT10aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0LnRlbXBsYXRlUmVmLHQuY29udGV4dCk7cmV0dXJuIHN1cGVyLnNldERpc3Bvc2VGbigoKCk9PnRoaXMuX3ZpZXdDb250YWluZXJSZWYuY2xlYXIoKSkpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsdGhpcy5fYXR0YWNoZWRSZWY9ZSx0aGlzLmF0dGFjaGVkLmVtaXQoZSksZX1fZ2V0Um9vdE5vZGUoKXtjb25zdCB0PXRoaXMuX3ZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50O3JldHVybiB0Lm5vZGVUeXBlPT09dC5FTEVNRU5UX05PREU/dDp0LnBhcmVudE5vZGV9fURGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxERikoU20odWcpLFNtKGVoKSxTbShaXykpfSxERi7JtWRpcj1sbyh7dHlwZTpERixzZWxlY3RvcnM6W1siIiwiY2RrUG9ydGFsT3V0bGV0IiwiIl1dLGlucHV0czp7cG9ydGFsOlsiY2RrUG9ydGFsT3V0bGV0IiwicG9ydGFsIl19LG91dHB1dHM6e2F0dGFjaGVkOiJhdHRhY2hlZCJ9LGV4cG9ydEFzOlsiY2RrUG9ydGFsT3V0bGV0Il0sZmVhdHVyZXM6W3hwXX0pLERGLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dWd9LHt0eXBlOmVofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSxERi5wcm9wRGVjb3JhdG9ycz17YXR0YWNoZWQ6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoREYsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka1BvcnRhbE91dGxldF0iLGV4cG9ydEFzOiJjZGtQb3J0YWxPdXRsZXQiLGlucHV0czpbInBvcnRhbDogY2RrUG9ydGFsT3V0bGV0Il19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp1Z30se3R5cGU6ZWh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSkse2F0dGFjaGVkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgRUYgZXh0ZW5kcyBERnt9RUYuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKEVGKSkpKG58fEVGKX19KSgpLEVGLsm1ZGlyPWxvKHt0eXBlOkVGLHNlbGVjdG9yczpbWyIiLCJjZGtQb3J0YWxIb3N0IiwiIl0sWyIiLCJwb3J0YWxIb3N0IiwiIl1dLGlucHV0czp7cG9ydGFsOlsiY2RrUG9ydGFsSG9zdCIsInBvcnRhbCJdfSxleHBvcnRBczpbImNka1BvcnRhbEhvc3QiXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOkRGLHVzZUV4aXN0aW5nOkVGfV0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRUYsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka1BvcnRhbEhvc3RdLCBbcG9ydGFsSG9zdF0iLGV4cG9ydEFzOiJjZGtQb3J0YWxIb3N0IixpbnB1dHM6WyJwb3J0YWw6IGNka1BvcnRhbEhvc3QiXSxwcm92aWRlcnM6W3twcm92aWRlOkRGLHVzZUV4aXN0aW5nOkVGfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgUkZ7fVJGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxSRil9LFJGLsm1bW9kPWFvKHt0eXBlOlJGfSksUkYuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUkYsW3t0eXBlOkF5LGFyZ3M6W3tleHBvcnRzOltrRixERixTRixFRl0sZGVjbGFyYXRpb25zOltrRixERixTRixFRl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhSRix7ZGVjbGFyYXRpb25zOltrRixERixTRixFRl0sZXhwb3J0czpba0YsREYsU0YsRUZdfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBBRj16eigpO2NsYXNzIFRGe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fdmlld3BvcnRSdWxlcj10LHRoaXMuX3ByZXZpb3VzSFRNTFN0eWxlcz17dG9wOiIiLGxlZnQ6IiJ9LHRoaXMuX2lzRW5hYmxlZD0hMSx0aGlzLl9kb2N1bWVudD1lfWF0dGFjaCgpe31lbmFibGUoKXtpZih0aGlzLl9jYW5CZUVuYWJsZWQoKSl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbj10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKSx0aGlzLl9wcmV2aW91c0hUTUxTdHlsZXMubGVmdD10LnN0eWxlLmxlZnR8fCIiLHRoaXMuX3ByZXZpb3VzSFRNTFN0eWxlcy50b3A9dC5zdHlsZS50b3B8fCIiLHQuc3R5bGUubGVmdD12eigtdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi5sZWZ0KSx0LnN0eWxlLnRvcD12eigtdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi50b3ApLHQuY2xhc3NMaXN0LmFkZCgiY2RrLWdsb2JhbC1zY3JvbGxibG9jayIpLHRoaXMuX2lzRW5hYmxlZD0hMH19ZGlzYWJsZSgpe2lmKHRoaXMuX2lzRW5hYmxlZCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZT10LnN0eWxlLG49dGhpcy5fZG9jdW1lbnQuYm9keS5zdHlsZSxvPWUuc2Nyb2xsQmVoYXZpb3J8fCIiLGk9bi5zY3JvbGxCZWhhdmlvcnx8IiI7dGhpcy5faXNFbmFibGVkPSExLGUubGVmdD10aGlzLl9wcmV2aW91c0hUTUxTdHlsZXMubGVmdCxlLnRvcD10aGlzLl9wcmV2aW91c0hUTUxTdHlsZXMudG9wLHQuY2xhc3NMaXN0LnJlbW92ZSgiY2RrLWdsb2JhbC1zY3JvbGxibG9jayIpLEFGJiYoZS5zY3JvbGxCZWhhdmlvcj1uLnNjcm9sbEJlaGF2aW9yPSJhdXRvIiksd2luZG93LnNjcm9sbCh0aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uLmxlZnQsdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi50b3ApLEFGJiYoZS5zY3JvbGxCZWhhdmlvcj1vLG4uc2Nyb2xsQmVoYXZpb3I9aSl9fV9jYW5CZUVuYWJsZWQoKXtpZih0aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJjZGstZ2xvYmFsLXNjcm9sbGJsb2NrIil8fHRoaXMuX2lzRW5hYmxlZClyZXR1cm4hMTtjb25zdCB0PXRoaXMuX2RvY3VtZW50LmJvZHksZT10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2l6ZSgpO3JldHVybiB0LnNjcm9sbEhlaWdodD5lLmhlaWdodHx8dC5zY3JvbGxXaWR0aD5lLndpZHRofX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gTkYoKXtyZXR1cm4gRXJyb3IoIlNjcm9sbCBzdHJhdGVneSBoYXMgYWxyZWFkeSBiZWVuIGF0dGFjaGVkLiIpfWNsYXNzIHpGe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX3Njcm9sbERpc3BhdGNoZXI9dCx0aGlzLl9uZ1pvbmU9ZSx0aGlzLl92aWV3cG9ydFJ1bGVyPW4sdGhpcy5fY29uZmlnPW8sdGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fZGV0YWNoPSgpPT57dGhpcy5kaXNhYmxlKCksdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpJiZ0aGlzLl9uZ1pvbmUucnVuKCgoKT0+dGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKSkpfX1hdHRhY2godCl7aWYodGhpcy5fb3ZlcmxheVJlZiYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IE5GKCk7dGhpcy5fb3ZlcmxheVJlZj10fWVuYWJsZSgpe2lmKHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbilyZXR1cm47Y29uc3QgdD10aGlzLl9zY3JvbGxEaXNwYXRjaGVyLnNjcm9sbGVkKDApO3RoaXMuX2NvbmZpZyYmdGhpcy5fY29uZmlnLnRocmVzaG9sZCYmdGhpcy5fY29uZmlnLnRocmVzaG9sZD4xPyh0aGlzLl9pbml0aWFsU2Nyb2xsUG9zaXRpb249dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCkudG9wLHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj10LnN1YnNjcmliZSgoKCk9Pntjb25zdCB0PXRoaXMuX3ZpZXdwb3J0UnVsZXIuZ2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpLnRvcDtNYXRoLmFicyh0LXRoaXMuX2luaXRpYWxTY3JvbGxQb3NpdGlvbik+dGhpcy5fY29uZmlnLnRocmVzaG9sZD90aGlzLl9kZXRhY2goKTp0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCl9KSkpOnRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj10LnN1YnNjcmliZSh0aGlzLl9kZXRhY2gpfWRpc2FibGUoKXt0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb24mJih0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb249bnVsbCl9ZGV0YWNoKCl7dGhpcy5kaXNhYmxlKCksdGhpcy5fb3ZlcmxheVJlZj1udWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgSUZ7ZW5hYmxlKCl7fWRpc2FibGUoKXt9YXR0YWNoKCl7fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gSEYodCxlKXtyZXR1cm4gZS5zb21lKChlPT50LmJvdHRvbTxlLnRvcHx8dC50b3A+ZS5ib3R0b218fHQucmlnaHQ8ZS5sZWZ0fHx0LmxlZnQ+ZS5yaWdodCkpfWZ1bmN0aW9uIEZGKHQsZSl7cmV0dXJuIGUuc29tZSgoZT0+dC50b3A8ZS50b3B8fHQuYm90dG9tPmUuYm90dG9tfHx0LmxlZnQ8ZS5sZWZ0fHx0LnJpZ2h0PmUucmlnaHQpKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgTEZ7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fc2Nyb2xsRGlzcGF0Y2hlcj10LHRoaXMuX3ZpZXdwb3J0UnVsZXI9ZSx0aGlzLl9uZ1pvbmU9bix0aGlzLl9jb25maWc9byx0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb249bnVsbH1hdHRhY2godCl7aWYodGhpcy5fb3ZlcmxheVJlZiYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IE5GKCk7dGhpcy5fb3ZlcmxheVJlZj10fWVuYWJsZSgpe3RoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbnx8KHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj10aGlzLl9zY3JvbGxEaXNwYXRjaGVyLnNjcm9sbGVkKHRoaXMuX2NvbmZpZz90aGlzLl9jb25maWcuc2Nyb2xsVGhyb3R0bGU6MCkuc3Vic2NyaWJlKCgoKT0+e2lmKHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSx0aGlzLl9jb25maWcmJnRoaXMuX2NvbmZpZy5hdXRvQ2xvc2Upe2NvbnN0IHQ9dGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7d2lkdGg6ZSxoZWlnaHQ6bn09dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNpemUoKTtIRih0LFt7d2lkdGg6ZSxoZWlnaHQ6bixib3R0b206bixyaWdodDplLHRvcDowLGxlZnQ6MH1dKSYmKHRoaXMuZGlzYWJsZSgpLHRoaXMuX25nWm9uZS5ydW4oKCgpPT50aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpKSkpfX0pKSl9ZGlzYWJsZSgpe3RoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbiYmKHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj1udWxsKX1kZXRhY2goKXt0aGlzLmRpc2FibGUoKSx0aGlzLl9vdmVybGF5UmVmPW51bGx9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBCRntjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9zY3JvbGxEaXNwYXRjaGVyPXQsdGhpcy5fdmlld3BvcnRSdWxlcj1lLHRoaXMuX25nWm9uZT1uLHRoaXMubm9vcD0oKT0+bmV3IElGLHRoaXMuY2xvc2U9dD0+bmV3IHpGKHRoaXMuX3Njcm9sbERpc3BhdGNoZXIsdGhpcy5fbmdab25lLHRoaXMuX3ZpZXdwb3J0UnVsZXIsdCksdGhpcy5ibG9jaz0oKT0+bmV3IFRGKHRoaXMuX3ZpZXdwb3J0UnVsZXIsdGhpcy5fZG9jdW1lbnQpLHRoaXMucmVwb3NpdGlvbj10PT5uZXcgTEYodGhpcy5fc2Nyb2xsRGlzcGF0Y2hlcix0aGlzLl92aWV3cG9ydFJ1bGVyLHRoaXMuX25nWm9uZSx0KSx0aGlzLl9kb2N1bWVudD1vfX1CRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QkYpKHZyKHBGKSx2cih1RiksdnIoYV8pLHZyKFpfKSl9LEJGLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBCRih2cihwRiksdnIodUYpLHZyKGFfKSx2cihaXykpfSx0b2tlbjpCRixwcm92aWRlZEluOiJyb290In0pLEJGLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6cEZ9LHt0eXBlOnVGfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCRixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6cEZ9LHt0eXBlOnVGfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBWRntjb25zdHJ1Y3Rvcih0KXtpZih0aGlzLnNjcm9sbFN0cmF0ZWd5PW5ldyBJRix0aGlzLnBhbmVsQ2xhc3M9IiIsdGhpcy5oYXNCYWNrZHJvcD0hMSx0aGlzLmJhY2tkcm9wQ2xhc3M9ImNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AiLHRoaXMuZGlzcG9zZU9uTmF2aWdhdGlvbj0hMSx0KXtjb25zdCBlPU9iamVjdC5rZXlzKHQpO2Zvcihjb25zdCBuIG9mIGUpdm9pZCAwIT09dFtuXSYmKHRoaXNbbl09dFtuXSl9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgakZ7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLm9mZnNldFg9bix0aGlzLm9mZnNldFk9byx0aGlzLnBhbmVsQ2xhc3M9aSx0aGlzLm9yaWdpblg9dC5vcmlnaW5YLHRoaXMub3JpZ2luWT10Lm9yaWdpblksdGhpcy5vdmVybGF5WD1lLm92ZXJsYXlYLHRoaXMub3ZlcmxheVk9ZS5vdmVybGF5WX19Y2xhc3MgVUZ7fWNsYXNzIEdGe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5jb25uZWN0aW9uUGFpcj10LHRoaXMuc2Nyb2xsYWJsZVZpZXdQcm9wZXJ0aWVzPWV9fWZ1bmN0aW9uIFdGKHQsZSl7aWYoInRvcCIhPT1lJiYiYm90dG9tIiE9PWUmJiJjZW50ZXIiIT09ZSl0aHJvdyBFcnJvcihgQ29ubmVjdGVkUG9zaXRpb246IEludmFsaWQgJHt0fSAiJHtlfSIuIEV4cGVjdGVkICJ0b3AiLCAiYm90dG9tIiBvciAiY2VudGVyIi5gKX1mdW5jdGlvbiBZRih0LGUpe2lmKCJzdGFydCIhPT1lJiYiZW5kIiE9PWUmJiJjZW50ZXIiIT09ZSl0aHJvdyBFcnJvcihgQ29ubmVjdGVkUG9zaXRpb246IEludmFsaWQgJHt0fSAiJHtlfSIuIEV4cGVjdGVkICJzdGFydCIsICJlbmQiIG9yICJjZW50ZXIiLmApfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9HRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmpGfSx7dHlwZTpVRixkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV07Y2xhc3MgcUZ7Y29uc3RydWN0b3IodCl7dGhpcy5fYXR0YWNoZWRPdmVybGF5cz1bXSx0aGlzLl9kb2N1bWVudD10fW5nT25EZXN0cm95KCl7dGhpcy5kZXRhY2goKX1hZGQodCl7dGhpcy5yZW1vdmUodCksdGhpcy5fYXR0YWNoZWRPdmVybGF5cy5wdXNoKHQpfXJlbW92ZSh0KXtjb25zdCBlPXRoaXMuX2F0dGFjaGVkT3ZlcmxheXMuaW5kZXhPZih0KTtlPi0xJiZ0aGlzLl9hdHRhY2hlZE92ZXJsYXlzLnNwbGljZShlLDEpLDA9PT10aGlzLl9hdHRhY2hlZE92ZXJsYXlzLmxlbmd0aCYmdGhpcy5kZXRhY2goKX19cUYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHFGKSh2cihaXykpfSxxRi7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgcUYodnIoWl8pKX0sdG9rZW46cUYscHJvdmlkZWRJbjoicm9vdCJ9KSxxRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocUYsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBaRiBleHRlbmRzIHFGe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuX2tleWRvd25MaXN0ZW5lcj10PT57Y29uc3QgZT10aGlzLl9hdHRhY2hlZE92ZXJsYXlzO2ZvcihsZXQgbj1lLmxlbmd0aC0xO24+LTE7bi0tKWlmKGVbbl0uX2tleWRvd25FdmVudHMub2JzZXJ2ZXJzLmxlbmd0aD4wKXtlW25dLl9rZXlkb3duRXZlbnRzLm5leHQodCk7YnJlYWt9fX1hZGQodCl7c3VwZXIuYWRkKHQpLHRoaXMuX2lzQXR0YWNoZWR8fCh0aGlzLl9kb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2tleWRvd25MaXN0ZW5lciksdGhpcy5faXNBdHRhY2hlZD0hMCl9ZGV0YWNoKCl7dGhpcy5faXNBdHRhY2hlZCYmKHRoaXMuX2RvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fa2V5ZG93bkxpc3RlbmVyKSx0aGlzLl9pc0F0dGFjaGVkPSExKX19WkYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFpGKSh2cihaXykpfSxaRi7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgWkYodnIoWl8pKX0sdG9rZW46WkYscHJvdmlkZWRJbjoicm9vdCJ9KSxaRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWkYsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBYRiBleHRlbmRzIHFGe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCksdGhpcy5fcGxhdGZvcm09ZSx0aGlzLl9jdXJzb3JTdHlsZUlzU2V0PSExLHRoaXMuX2NsaWNrTGlzdGVuZXI9dD0+e2NvbnN0IGU9THoodCksbj10aGlzLl9hdHRhY2hlZE92ZXJsYXlzLnNsaWNlKCk7Zm9yKGxldCBvPW4ubGVuZ3RoLTE7bz4tMTtvLS0pe2NvbnN0IGk9bltvXTtpZighKGkuX291dHNpZGVQb2ludGVyRXZlbnRzLm9ic2VydmVycy5sZW5ndGg8MSkmJmkuaGFzQXR0YWNoZWQoKSl7aWYoaS5vdmVybGF5RWxlbWVudC5jb250YWlucyhlKSlicmVhaztpLl9vdXRzaWRlUG9pbnRlckV2ZW50cy5uZXh0KHQpfX19fWFkZCh0KXtpZihzdXBlci5hZGQodCksIXRoaXMuX2lzQXR0YWNoZWQpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuYm9keTt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSx0LmFkZEV2ZW50TGlzdGVuZXIoImF1eGNsaWNrIix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSx0aGlzLl9wbGF0Zm9ybS5JT1MmJiF0aGlzLl9jdXJzb3JTdHlsZUlzU2V0JiYodGhpcy5fY3Vyc29yT3JpZ2luYWxWYWx1ZT10LnN0eWxlLmN1cnNvcix0LnN0eWxlLmN1cnNvcj0icG9pbnRlciIsdGhpcy5fY3Vyc29yU3R5bGVJc1NldD0hMCksdGhpcy5faXNBdHRhY2hlZD0hMH19ZGV0YWNoKCl7aWYodGhpcy5faXNBdHRhY2hlZCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5ib2R5O3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2NsaWNrTGlzdGVuZXIsITApLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYXV4Y2xpY2siLHRoaXMuX2NsaWNrTGlzdGVuZXIsITApLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMuX2NsaWNrTGlzdGVuZXIsITApLHRoaXMuX3BsYXRmb3JtLklPUyYmdGhpcy5fY3Vyc29yU3R5bGVJc1NldCYmKHQuc3R5bGUuY3Vyc29yPXRoaXMuX2N1cnNvck9yaWdpbmFsVmFsdWUsdGhpcy5fY3Vyc29yU3R5bGVJc1NldD0hMSksdGhpcy5faXNBdHRhY2hlZD0hMX19fVhGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYRikodnIoWl8pLHZyKHd6KSl9LFhGLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBYRih2cihaXyksdnIod3opKX0sdG9rZW46WEYscHJvdmlkZWRJbjoicm9vdCJ9KSxYRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6d3p9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFhGLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEtGPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSxKRj12b2lkIDAhPT1LRi5fX2thcm1hX18mJiEhS0YuX19rYXJtYV9ffHx2b2lkIDAhPT1LRi5qYXNtaW5lJiYhIUtGLmphc21pbmV8fHZvaWQgMCE9PUtGLmplc3QmJiEhS0YuamVzdHx8dm9pZCAwIT09S0YuTW9jaGEmJiEhS0YuTW9jaGE7Y2xhc3MgUUZ7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9wbGF0Zm9ybT1lLHRoaXMuX2RvY3VtZW50PXR9bmdPbkRlc3Ryb3koKXtjb25zdCB0PXRoaXMuX2NvbnRhaW5lckVsZW1lbnQ7dCYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9Z2V0Q29udGFpbmVyRWxlbWVudCgpe3JldHVybiB0aGlzLl9jb250YWluZXJFbGVtZW50fHx0aGlzLl9jcmVhdGVDb250YWluZXIoKSx0aGlzLl9jb250YWluZXJFbGVtZW50fV9jcmVhdGVDb250YWluZXIoKXtjb25zdCB0PSJjZGstb3ZlcmxheS1jb250YWluZXIiO2lmKHRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcnx8SkYpe2NvbnN0IGU9dGhpcy5fZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgLiR7dH1bcGxhdGZvcm09InNlcnZlciJdLCAuJHt0fVtwbGF0Zm9ybT0idGVzdCJdYCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVbdF0pfWNvbnN0IGU9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc0xpc3QuYWRkKHQpLEpGP2Uuc2V0QXR0cmlidXRlKCJwbGF0Zm9ybSIsInRlc3QiKTp0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXJ8fGUuc2V0QXR0cmlidXRlKCJwbGF0Zm9ybSIsInNlcnZlciIpLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksdGhpcy5fY29udGFpbmVyRWxlbWVudD1lfX1RRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UUYpKHZyKFpfKSx2cih3eikpfSxRRi7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgUUYodnIoWl8pLHZyKHd6KSl9LHRva2VuOlFGLHByb3ZpZGVkSW46InJvb3QifSksUUYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChRRixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp3en1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyAkRntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCl7dGhpcy5fcG9ydGFsT3V0bGV0PXQsdGhpcy5faG9zdD1lLHRoaXMuX3BhbmU9bix0aGlzLl9jb25maWc9byx0aGlzLl9uZ1pvbmU9aSx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXI9YSx0aGlzLl9kb2N1bWVudD1yLHRoaXMuX2xvY2F0aW9uPXMsdGhpcy5fb3V0c2lkZUNsaWNrRGlzcGF0Y2hlcj1sLHRoaXMuX2JhY2tkcm9wRWxlbWVudD1udWxsLHRoaXMuX2JhY2tkcm9wQ2xpY2s9bmV3IEksdGhpcy5fYXR0YWNobWVudHM9bmV3IEksdGhpcy5fZGV0YWNobWVudHM9bmV3IEksdGhpcy5fbG9jYXRpb25DaGFuZ2VzPW0uRU1QVFksdGhpcy5fYmFja2Ryb3BDbGlja0hhbmRsZXI9dD0+dGhpcy5fYmFja2Ryb3BDbGljay5uZXh0KHQpLHRoaXMuX2tleWRvd25FdmVudHM9bmV3IEksdGhpcy5fb3V0c2lkZVBvaW50ZXJFdmVudHM9bmV3IEksby5zY3JvbGxTdHJhdGVneSYmKHRoaXMuX3Njcm9sbFN0cmF0ZWd5PW8uc2Nyb2xsU3RyYXRlZ3ksdGhpcy5fc2Nyb2xsU3RyYXRlZ3kuYXR0YWNoKHRoaXMpKSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5PW8ucG9zaXRpb25TdHJhdGVneX1nZXQgb3ZlcmxheUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fcGFuZX1nZXQgYmFja2Ryb3BFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2JhY2tkcm9wRWxlbWVudH1nZXQgaG9zdEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5faG9zdH1hdHRhY2godCl7bGV0IGU9dGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaCh0KTtyZXR1cm4hdGhpcy5faG9zdC5wYXJlbnRFbGVtZW50JiZ0aGlzLl9wcmV2aW91c0hvc3RQYXJlbnQmJnRoaXMuX3ByZXZpb3VzSG9zdFBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLl9ob3N0KSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5JiZ0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmF0dGFjaCh0aGlzKSx0aGlzLl91cGRhdGVTdGFja2luZ09yZGVyKCksdGhpcy5fdXBkYXRlRWxlbWVudFNpemUoKSx0aGlzLl91cGRhdGVFbGVtZW50RGlyZWN0aW9uKCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3kmJnRoaXMuX3Njcm9sbFN0cmF0ZWd5LmVuYWJsZSgpLHRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5oYXNBdHRhY2hlZCgpJiZ0aGlzLnVwZGF0ZVBvc2l0aW9uKCl9KSksdGhpcy5fdG9nZ2xlUG9pbnRlckV2ZW50cyghMCksdGhpcy5fY29uZmlnLmhhc0JhY2tkcm9wJiZ0aGlzLl9hdHRhY2hCYWNrZHJvcCgpLHRoaXMuX2NvbmZpZy5wYW5lbENsYXNzJiZ0aGlzLl90b2dnbGVDbGFzc2VzKHRoaXMuX3BhbmUsdGhpcy5fY29uZmlnLnBhbmVsQ2xhc3MsITApLHRoaXMuX2F0dGFjaG1lbnRzLm5leHQoKSx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXIuYWRkKHRoaXMpLHRoaXMuX2NvbmZpZy5kaXNwb3NlT25OYXZpZ2F0aW9uJiYodGhpcy5fbG9jYXRpb25DaGFuZ2VzPXRoaXMuX2xvY2F0aW9uLnN1YnNjcmliZSgoKCk9PnRoaXMuZGlzcG9zZSgpKSkpLHRoaXMuX291dHNpZGVDbGlja0Rpc3BhdGNoZXIuYWRkKHRoaXMpLGV9ZGV0YWNoKCl7aWYoIXRoaXMuaGFzQXR0YWNoZWQoKSlyZXR1cm47dGhpcy5kZXRhY2hCYWNrZHJvcCgpLHRoaXMuX3RvZ2dsZVBvaW50ZXJFdmVudHMoITEpLHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kmJnRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuZGV0YWNoJiZ0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmRldGFjaCgpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5JiZ0aGlzLl9zY3JvbGxTdHJhdGVneS5kaXNhYmxlKCk7Y29uc3QgdD10aGlzLl9wb3J0YWxPdXRsZXQuZGV0YWNoKCk7cmV0dXJuIHRoaXMuX2RldGFjaG1lbnRzLm5leHQoKSx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXIucmVtb3ZlKHRoaXMpLHRoaXMuX2RldGFjaENvbnRlbnRXaGVuU3RhYmxlKCksdGhpcy5fbG9jYXRpb25DaGFuZ2VzLnVuc3Vic2NyaWJlKCksdGhpcy5fb3V0c2lkZUNsaWNrRGlzcGF0Y2hlci5yZW1vdmUodGhpcyksdH1kaXNwb3NlKCl7Y29uc3QgdD10aGlzLmhhc0F0dGFjaGVkKCk7dGhpcy5fcG9zaXRpb25TdHJhdGVneSYmdGhpcy5fcG9zaXRpb25TdHJhdGVneS5kaXNwb3NlKCksdGhpcy5fZGlzcG9zZVNjcm9sbFN0cmF0ZWd5KCksdGhpcy5kZXRhY2hCYWNrZHJvcCgpLHRoaXMuX2xvY2F0aW9uQ2hhbmdlcy51bnN1YnNjcmliZSgpLHRoaXMuX2tleWJvYXJkRGlzcGF0Y2hlci5yZW1vdmUodGhpcyksdGhpcy5fcG9ydGFsT3V0bGV0LmRpc3Bvc2UoKSx0aGlzLl9hdHRhY2htZW50cy5jb21wbGV0ZSgpLHRoaXMuX2JhY2tkcm9wQ2xpY2suY29tcGxldGUoKSx0aGlzLl9rZXlkb3duRXZlbnRzLmNvbXBsZXRlKCksdGhpcy5fb3V0c2lkZVBvaW50ZXJFdmVudHMuY29tcGxldGUoKSx0aGlzLl9vdXRzaWRlQ2xpY2tEaXNwYXRjaGVyLnJlbW92ZSh0aGlzKSx0aGlzLl9ob3N0JiZ0aGlzLl9ob3N0LnBhcmVudE5vZGUmJih0aGlzLl9ob3N0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5faG9zdCksdGhpcy5faG9zdD1udWxsKSx0aGlzLl9wcmV2aW91c0hvc3RQYXJlbnQ9dGhpcy5fcGFuZT1udWxsLHQmJnRoaXMuX2RldGFjaG1lbnRzLm5leHQoKSx0aGlzLl9kZXRhY2htZW50cy5jb21wbGV0ZSgpfWhhc0F0dGFjaGVkKCl7cmV0dXJuIHRoaXMuX3BvcnRhbE91dGxldC5oYXNBdHRhY2hlZCgpfWJhY2tkcm9wQ2xpY2soKXtyZXR1cm4gdGhpcy5fYmFja2Ryb3BDbGlja31hdHRhY2htZW50cygpe3JldHVybiB0aGlzLl9hdHRhY2htZW50c31kZXRhY2htZW50cygpe3JldHVybiB0aGlzLl9kZXRhY2htZW50c31rZXlkb3duRXZlbnRzKCl7cmV0dXJuIHRoaXMuX2tleWRvd25FdmVudHN9b3V0c2lkZVBvaW50ZXJFdmVudHMoKXtyZXR1cm4gdGhpcy5fb3V0c2lkZVBvaW50ZXJFdmVudHN9Z2V0Q29uZmlnKCl7cmV0dXJuIHRoaXMuX2NvbmZpZ311cGRhdGVQb3NpdGlvbigpe3RoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kmJnRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuYXBwbHkoKX11cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHQpe3QhPT10aGlzLl9wb3NpdGlvblN0cmF0ZWd5JiYodGhpcy5fcG9zaXRpb25TdHJhdGVneSYmdGhpcy5fcG9zaXRpb25TdHJhdGVneS5kaXNwb3NlKCksdGhpcy5fcG9zaXRpb25TdHJhdGVneT10LHRoaXMuaGFzQXR0YWNoZWQoKSYmKHQuYXR0YWNoKHRoaXMpLHRoaXMudXBkYXRlUG9zaXRpb24oKSkpfXVwZGF0ZVNpemUodCl7dGhpcy5fY29uZmlnPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLl9jb25maWcpLHQpLHRoaXMuX3VwZGF0ZUVsZW1lbnRTaXplKCl9c2V0RGlyZWN0aW9uKHQpe3RoaXMuX2NvbmZpZz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5fY29uZmlnKSx7ZGlyZWN0aW9uOnR9KSx0aGlzLl91cGRhdGVFbGVtZW50RGlyZWN0aW9uKCl9YWRkUGFuZWxDbGFzcyh0KXt0aGlzLl9wYW5lJiZ0aGlzLl90b2dnbGVDbGFzc2VzKHRoaXMuX3BhbmUsdCwhMCl9cmVtb3ZlUGFuZWxDbGFzcyh0KXt0aGlzLl9wYW5lJiZ0aGlzLl90b2dnbGVDbGFzc2VzKHRoaXMuX3BhbmUsdCwhMSl9Z2V0RGlyZWN0aW9uKCl7Y29uc3QgdD10aGlzLl9jb25maWcuZGlyZWN0aW9uO3JldHVybiB0PyJzdHJpbmciPT10eXBlb2YgdD90OnQudmFsdWU6Imx0ciJ9dXBkYXRlU2Nyb2xsU3RyYXRlZ3kodCl7dCE9PXRoaXMuX3Njcm9sbFN0cmF0ZWd5JiYodGhpcy5fZGlzcG9zZVNjcm9sbFN0cmF0ZWd5KCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9dCx0aGlzLmhhc0F0dGFjaGVkKCkmJih0LmF0dGFjaCh0aGlzKSx0LmVuYWJsZSgpKSl9X3VwZGF0ZUVsZW1lbnREaXJlY3Rpb24oKXt0aGlzLl9ob3N0LnNldEF0dHJpYnV0ZSgiZGlyIix0aGlzLmdldERpcmVjdGlvbigpKX1fdXBkYXRlRWxlbWVudFNpemUoKXtpZighdGhpcy5fcGFuZSlyZXR1cm47Y29uc3QgdD10aGlzLl9wYW5lLnN0eWxlO3Qud2lkdGg9dnoodGhpcy5fY29uZmlnLndpZHRoKSx0LmhlaWdodD12eih0aGlzLl9jb25maWcuaGVpZ2h0KSx0Lm1pbldpZHRoPXZ6KHRoaXMuX2NvbmZpZy5taW5XaWR0aCksdC5taW5IZWlnaHQ9dnoodGhpcy5fY29uZmlnLm1pbkhlaWdodCksdC5tYXhXaWR0aD12eih0aGlzLl9jb25maWcubWF4V2lkdGgpLHQubWF4SGVpZ2h0PXZ6KHRoaXMuX2NvbmZpZy5tYXhIZWlnaHQpfV90b2dnbGVQb2ludGVyRXZlbnRzKHQpe3RoaXMuX3BhbmUuc3R5bGUucG9pbnRlckV2ZW50cz10PyIiOiJub25lIn1fYXR0YWNoQmFja2Ryb3AoKXtjb25zdCB0PSJjZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIjt0aGlzLl9iYWNrZHJvcEVsZW1lbnQ9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fYmFja2Ryb3BFbGVtZW50LmNsYXNzTGlzdC5hZGQoImNkay1vdmVybGF5LWJhY2tkcm9wIiksdGhpcy5fY29uZmlnLmJhY2tkcm9wQ2xhc3MmJnRoaXMuX3RvZ2dsZUNsYXNzZXModGhpcy5fYmFja2Ryb3BFbGVtZW50LHRoaXMuX2NvbmZpZy5iYWNrZHJvcENsYXNzLCEwKSx0aGlzLl9ob3N0LnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMuX2JhY2tkcm9wRWxlbWVudCx0aGlzLl9ob3N0KSx0aGlzLl9iYWNrZHJvcEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2JhY2tkcm9wQ2xpY2tIYW5kbGVyKSwidW5kZWZpbmVkIiE9dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT90aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuX2JhY2tkcm9wRWxlbWVudCYmdGhpcy5fYmFja2Ryb3BFbGVtZW50LmNsYXNzTGlzdC5hZGQodCl9KSl9KSk6dGhpcy5fYmFja2Ryb3BFbGVtZW50LmNsYXNzTGlzdC5hZGQodCl9X3VwZGF0ZVN0YWNraW5nT3JkZXIoKXt0aGlzLl9ob3N0Lm5leHRTaWJsaW5nJiZ0aGlzLl9ob3N0LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcy5faG9zdCl9ZGV0YWNoQmFja2Ryb3AoKXtsZXQgdCxlPXRoaXMuX2JhY2tkcm9wRWxlbWVudDtpZighZSlyZXR1cm47bGV0IG49KCk9PntlJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fYmFja2Ryb3BDbGlja0hhbmRsZXIpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsbiksZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSkpLHRoaXMuX2JhY2tkcm9wRWxlbWVudD09ZSYmKHRoaXMuX2JhY2tkcm9wRWxlbWVudD1udWxsKSx0aGlzLl9jb25maWcuYmFja2Ryb3BDbGFzcyYmdGhpcy5fdG9nZ2xlQ2xhc3NlcyhlLHRoaXMuX2NvbmZpZy5iYWNrZHJvcENsYXNzLCExKSxjbGVhclRpbWVvdXQodCl9O2UuY2xhc3NMaXN0LnJlbW92ZSgiY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyIpLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntlLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLG4pfSkpLGUuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsdD10aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5zZXRUaW1lb3V0KG4sNTAwKSkpfV90b2dnbGVDbGFzc2VzKHQsZSxuKXtjb25zdCBvPXQuY2xhc3NMaXN0O016KGUpLmZvckVhY2goKHQ9Pnt0JiYobj9vLmFkZCh0KTpvLnJlbW92ZSh0KSl9KSl9X2RldGFjaENvbnRlbnRXaGVuU3RhYmxlKCl7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e2NvbnN0IHQ9dGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoSWUocmUodGhpcy5fYXR0YWNobWVudHMsdGhpcy5fZGV0YWNobWVudHMpKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3BhbmUmJnRoaXMuX2hvc3QmJjAhPT10aGlzLl9wYW5lLmNoaWxkcmVuLmxlbmd0aHx8KHRoaXMuX3BhbmUmJnRoaXMuX2NvbmZpZy5wYW5lbENsYXNzJiZ0aGlzLl90b2dnbGVDbGFzc2VzKHRoaXMuX3BhbmUsdGhpcy5fY29uZmlnLnBhbmVsQ2xhc3MsITEpLHRoaXMuX2hvc3QmJnRoaXMuX2hvc3QucGFyZW50RWxlbWVudCYmKHRoaXMuX3ByZXZpb3VzSG9zdFBhcmVudD10aGlzLl9ob3N0LnBhcmVudEVsZW1lbnQsdGhpcy5fcHJldmlvdXNIb3N0UGFyZW50LnJlbW92ZUNoaWxkKHRoaXMuX2hvc3QpKSx0LnVuc3Vic2NyaWJlKCkpfSkpfSkpfV9kaXNwb3NlU2Nyb2xsU3RyYXRlZ3koKXtjb25zdCB0PXRoaXMuX3Njcm9sbFN0cmF0ZWd5O3QmJih0LmRpc2FibGUoKSx0LmRldGFjaCYmdC5kZXRhY2goKSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCB0TD0iY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCIsZUw9LyhbQS1aYS16JV0rKSQvO2NsYXNzIG5Me2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7dGhpcy5fdmlld3BvcnRSdWxlcj1lLHRoaXMuX2RvY3VtZW50PW4sdGhpcy5fcGxhdGZvcm09byx0aGlzLl9vdmVybGF5Q29udGFpbmVyPWksdGhpcy5fbGFzdEJvdW5kaW5nQm94U2l6ZT17d2lkdGg6MCxoZWlnaHQ6MH0sdGhpcy5faXNQdXNoZWQ9ITEsdGhpcy5fY2FuUHVzaD0hMCx0aGlzLl9ncm93QWZ0ZXJPcGVuPSExLHRoaXMuX2hhc0ZsZXhpYmxlRGltZW5zaW9ucz0hMCx0aGlzLl9wb3NpdGlvbkxvY2tlZD0hMSx0aGlzLl92aWV3cG9ydE1hcmdpbj0wLHRoaXMuX3Njcm9sbGFibGVzPVtdLHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9ucz1bXSx0aGlzLl9wb3NpdGlvbkNoYW5nZXM9bmV3IEksdGhpcy5fcmVzaXplU3Vic2NyaXB0aW9uPW0uRU1QVFksdGhpcy5fb2Zmc2V0WD0wLHRoaXMuX29mZnNldFk9MCx0aGlzLl9hcHBsaWVkUGFuZWxDbGFzc2VzPVtdLHRoaXMucG9zaXRpb25DaGFuZ2VzPXRoaXMuX3Bvc2l0aW9uQ2hhbmdlcyx0aGlzLnNldE9yaWdpbih0KX1nZXQgcG9zaXRpb25zKCl7cmV0dXJuIHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9uc31hdHRhY2godCl7aWYodGhpcy5fb3ZlcmxheVJlZiYmdCE9PXRoaXMuX292ZXJsYXlSZWYmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiVGhpcyBwb3NpdGlvbiBzdHJhdGVneSBpcyBhbHJlYWR5IGF0dGFjaGVkIHRvIGFuIG92ZXJsYXkiKTt0aGlzLl92YWxpZGF0ZVBvc2l0aW9ucygpLHQuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCh0TCksdGhpcy5fb3ZlcmxheVJlZj10LHRoaXMuX2JvdW5kaW5nQm94PXQuaG9zdEVsZW1lbnQsdGhpcy5fcGFuZT10Lm92ZXJsYXlFbGVtZW50LHRoaXMuX2lzRGlzcG9zZWQ9ITEsdGhpcy5faXNJbml0aWFsUmVuZGVyPSEwLHRoaXMuX2xhc3RQb3NpdGlvbj1udWxsLHRoaXMuX3Jlc2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3Jlc2l6ZVN1YnNjcmlwdGlvbj10aGlzLl92aWV3cG9ydFJ1bGVyLmNoYW5nZSgpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9pc0luaXRpYWxSZW5kZXI9ITAsdGhpcy5hcHBseSgpfSkpfWFwcGx5KCl7aWYodGhpcy5faXNEaXNwb3NlZHx8IXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlcilyZXR1cm47aWYoIXRoaXMuX2lzSW5pdGlhbFJlbmRlciYmdGhpcy5fcG9zaXRpb25Mb2NrZWQmJnRoaXMuX2xhc3RQb3NpdGlvbilyZXR1cm4gdm9pZCB0aGlzLnJlYXBwbHlMYXN0UG9zaXRpb24oKTt0aGlzLl9jbGVhclBhbmVsQ2xhc3NlcygpLHRoaXMuX3Jlc2V0T3ZlcmxheUVsZW1lbnRTdHlsZXMoKSx0aGlzLl9yZXNldEJvdW5kaW5nQm94U3R5bGVzKCksdGhpcy5fdmlld3BvcnRSZWN0PXRoaXMuX2dldE5hcnJvd2VkVmlld3BvcnRSZWN0KCksdGhpcy5fb3JpZ2luUmVjdD10aGlzLl9nZXRPcmlnaW5SZWN0KCksdGhpcy5fb3ZlcmxheVJlY3Q9dGhpcy5fcGFuZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjb25zdCB0PXRoaXMuX29yaWdpblJlY3QsZT10aGlzLl9vdmVybGF5UmVjdCxuPXRoaXMuX3ZpZXdwb3J0UmVjdCxvPVtdO2xldCBpO2ZvcihsZXQgYSBvZiB0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnMpe2xldCByPXRoaXMuX2dldE9yaWdpblBvaW50KHQsYSkscz10aGlzLl9nZXRPdmVybGF5UG9pbnQocixlLGEpLGw9dGhpcy5fZ2V0T3ZlcmxheUZpdChzLGUsbixhKTtpZihsLmlzQ29tcGxldGVseVdpdGhpblZpZXdwb3J0KXJldHVybiB0aGlzLl9pc1B1c2hlZD0hMSx2b2lkIHRoaXMuX2FwcGx5UG9zaXRpb24oYSxyKTt0aGlzLl9jYW5GaXRXaXRoRmxleGlibGVEaW1lbnNpb25zKGwscyxuKT9vLnB1c2goe3Bvc2l0aW9uOmEsb3JpZ2luOnIsb3ZlcmxheVJlY3Q6ZSxib3VuZGluZ0JveFJlY3Q6dGhpcy5fY2FsY3VsYXRlQm91bmRpbmdCb3hSZWN0KHIsYSl9KTooIWl8fGkub3ZlcmxheUZpdC52aXNpYmxlQXJlYTxsLnZpc2libGVBcmVhKSYmKGk9e292ZXJsYXlGaXQ6bCxvdmVybGF5UG9pbnQ6cyxvcmlnaW5Qb2ludDpyLHBvc2l0aW9uOmEsb3ZlcmxheVJlY3Q6ZX0pfWlmKG8ubGVuZ3RoKXtsZXQgdD1udWxsLGU9LTE7Zm9yKGNvbnN0IG4gb2Ygbyl7Y29uc3Qgbz1uLmJvdW5kaW5nQm94UmVjdC53aWR0aCpuLmJvdW5kaW5nQm94UmVjdC5oZWlnaHQqKG4ucG9zaXRpb24ud2VpZ2h0fHwxKTtvPmUmJihlPW8sdD1uKX1yZXR1cm4gdGhpcy5faXNQdXNoZWQ9ITEsdm9pZCB0aGlzLl9hcHBseVBvc2l0aW9uKHQucG9zaXRpb24sdC5vcmlnaW4pfWlmKHRoaXMuX2NhblB1c2gpcmV0dXJuIHRoaXMuX2lzUHVzaGVkPSEwLHZvaWQgdGhpcy5fYXBwbHlQb3NpdGlvbihpLnBvc2l0aW9uLGkub3JpZ2luUG9pbnQpO3RoaXMuX2FwcGx5UG9zaXRpb24oaS5wb3NpdGlvbixpLm9yaWdpblBvaW50KX1kZXRhY2goKXt0aGlzLl9jbGVhclBhbmVsQ2xhc3NlcygpLHRoaXMuX2xhc3RQb3NpdGlvbj1udWxsLHRoaXMuX3ByZXZpb3VzUHVzaEFtb3VudD1udWxsLHRoaXMuX3Jlc2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfWRpc3Bvc2UoKXt0aGlzLl9pc0Rpc3Bvc2VkfHwodGhpcy5fYm91bmRpbmdCb3gmJm9MKHRoaXMuX2JvdW5kaW5nQm94LnN0eWxlLHt0b3A6IiIsbGVmdDoiIixyaWdodDoiIixib3R0b206IiIsaGVpZ2h0OiIiLHdpZHRoOiIiLGFsaWduSXRlbXM6IiIsanVzdGlmeUNvbnRlbnQ6IiJ9KSx0aGlzLl9wYW5lJiZ0aGlzLl9yZXNldE92ZXJsYXlFbGVtZW50U3R5bGVzKCksdGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fb3ZlcmxheVJlZi5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKHRMKSx0aGlzLmRldGFjaCgpLHRoaXMuX3Bvc2l0aW9uQ2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuX292ZXJsYXlSZWY9dGhpcy5fYm91bmRpbmdCb3g9bnVsbCx0aGlzLl9pc0Rpc3Bvc2VkPSEwKX1yZWFwcGx5TGFzdFBvc2l0aW9uKCl7aWYoIXRoaXMuX2lzRGlzcG9zZWQmJighdGhpcy5fcGxhdGZvcm18fHRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikpe3RoaXMuX29yaWdpblJlY3Q9dGhpcy5fZ2V0T3JpZ2luUmVjdCgpLHRoaXMuX292ZXJsYXlSZWN0PXRoaXMuX3BhbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5fdmlld3BvcnRSZWN0PXRoaXMuX2dldE5hcnJvd2VkVmlld3BvcnRSZWN0KCk7Y29uc3QgdD10aGlzLl9sYXN0UG9zaXRpb258fHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9uc1swXSxlPXRoaXMuX2dldE9yaWdpblBvaW50KHRoaXMuX29yaWdpblJlY3QsdCk7dGhpcy5fYXBwbHlQb3NpdGlvbih0LGUpfX13aXRoU2Nyb2xsYWJsZUNvbnRhaW5lcnModCl7cmV0dXJuIHRoaXMuX3Njcm9sbGFibGVzPXQsdGhpc313aXRoUG9zaXRpb25zKHQpe3JldHVybiB0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnM9dCwtMT09PXQuaW5kZXhPZih0aGlzLl9sYXN0UG9zaXRpb24pJiYodGhpcy5fbGFzdFBvc2l0aW9uPW51bGwpLHRoaXMuX3ZhbGlkYXRlUG9zaXRpb25zKCksdGhpc313aXRoVmlld3BvcnRNYXJnaW4odCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0TWFyZ2luPXQsdGhpc313aXRoRmxleGlibGVEaW1lbnNpb25zKHQ9ITApe3JldHVybiB0aGlzLl9oYXNGbGV4aWJsZURpbWVuc2lvbnM9dCx0aGlzfXdpdGhHcm93QWZ0ZXJPcGVuKHQ9ITApe3JldHVybiB0aGlzLl9ncm93QWZ0ZXJPcGVuPXQsdGhpc313aXRoUHVzaCh0PSEwKXtyZXR1cm4gdGhpcy5fY2FuUHVzaD10LHRoaXN9d2l0aExvY2tlZFBvc2l0aW9uKHQ9ITApe3JldHVybiB0aGlzLl9wb3NpdGlvbkxvY2tlZD10LHRoaXN9c2V0T3JpZ2luKHQpe3JldHVybiB0aGlzLl9vcmlnaW49dCx0aGlzfXdpdGhEZWZhdWx0T2Zmc2V0WCh0KXtyZXR1cm4gdGhpcy5fb2Zmc2V0WD10LHRoaXN9d2l0aERlZmF1bHRPZmZzZXRZKHQpe3JldHVybiB0aGlzLl9vZmZzZXRZPXQsdGhpc313aXRoVHJhbnNmb3JtT3JpZ2luT24odCl7cmV0dXJuIHRoaXMuX3RyYW5zZm9ybU9yaWdpblNlbGVjdG9yPXQsdGhpc31fZ2V0T3JpZ2luUG9pbnQodCxlKXtsZXQgbixvO2lmKCJjZW50ZXIiPT1lLm9yaWdpblgpbj10LmxlZnQrdC53aWR0aC8yO2Vsc2V7Y29uc3Qgbz10aGlzLl9pc1J0bCgpP3QucmlnaHQ6dC5sZWZ0LGk9dGhpcy5faXNSdGwoKT90LmxlZnQ6dC5yaWdodDtuPSJzdGFydCI9PWUub3JpZ2luWD9vOml9cmV0dXJuIG89ImNlbnRlciI9PWUub3JpZ2luWT90LnRvcCt0LmhlaWdodC8yOiJ0b3AiPT1lLm9yaWdpblk/dC50b3A6dC5ib3R0b20se3g6bix5Om99fV9nZXRPdmVybGF5UG9pbnQodCxlLG4pe2xldCBvLGk7cmV0dXJuIG89ImNlbnRlciI9PW4ub3ZlcmxheVg/LWUud2lkdGgvMjoic3RhcnQiPT09bi5vdmVybGF5WD90aGlzLl9pc1J0bCgpPy1lLndpZHRoOjA6dGhpcy5faXNSdGwoKT8wOi1lLndpZHRoLGk9ImNlbnRlciI9PW4ub3ZlcmxheVk/LWUuaGVpZ2h0LzI6InRvcCI9PW4ub3ZlcmxheVk/MDotZS5oZWlnaHQse3g6dC54K28seTp0LnkraX19X2dldE92ZXJsYXlGaXQodCxlLG4sbyl7Y29uc3QgaT1hTChlKTtsZXR7eDphLHk6cn09dCxzPXRoaXMuX2dldE9mZnNldChvLCJ4IiksbD10aGlzLl9nZXRPZmZzZXQobywieSIpO3MmJihhKz1zKSxsJiYocis9bCk7bGV0IGM9MC1yLGQ9citpLmhlaWdodC1uLmhlaWdodCxwPXRoaXMuX3N1YnRyYWN0T3ZlcmZsb3dzKGkud2lkdGgsMC1hLGEraS53aWR0aC1uLndpZHRoKSxtPXRoaXMuX3N1YnRyYWN0T3ZlcmZsb3dzKGkuaGVpZ2h0LGMsZCksdT1wKm07cmV0dXJue3Zpc2libGVBcmVhOnUsaXNDb21wbGV0ZWx5V2l0aGluVmlld3BvcnQ6aS53aWR0aCppLmhlaWdodD09PXUsZml0c0luVmlld3BvcnRWZXJ0aWNhbGx5Om09PT1pLmhlaWdodCxmaXRzSW5WaWV3cG9ydEhvcml6b250YWxseTpwPT1pLndpZHRofX1fY2FuRml0V2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0LGUsbil7aWYodGhpcy5faGFzRmxleGlibGVEaW1lbnNpb25zKXtjb25zdCBvPW4uYm90dG9tLWUueSxpPW4ucmlnaHQtZS54LGE9aUwodGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5taW5IZWlnaHQpLHI9aUwodGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5taW5XaWR0aCkscz10LmZpdHNJblZpZXdwb3J0SG9yaXpvbnRhbGx5fHxudWxsIT1yJiZyPD1pO3JldHVybih0LmZpdHNJblZpZXdwb3J0VmVydGljYWxseXx8bnVsbCE9YSYmYTw9bykmJnN9cmV0dXJuITF9X3B1c2hPdmVybGF5T25TY3JlZW4odCxlLG4pe2lmKHRoaXMuX3ByZXZpb3VzUHVzaEFtb3VudCYmdGhpcy5fcG9zaXRpb25Mb2NrZWQpcmV0dXJue3g6dC54K3RoaXMuX3ByZXZpb3VzUHVzaEFtb3VudC54LHk6dC55K3RoaXMuX3ByZXZpb3VzUHVzaEFtb3VudC55fTtjb25zdCBvPWFMKGUpLGk9dGhpcy5fdmlld3BvcnRSZWN0LGE9TWF0aC5tYXgodC54K28ud2lkdGgtaS53aWR0aCwwKSxyPU1hdGgubWF4KHQueStvLmhlaWdodC1pLmhlaWdodCwwKSxzPU1hdGgubWF4KGkudG9wLW4udG9wLXQueSwwKSxsPU1hdGgubWF4KGkubGVmdC1uLmxlZnQtdC54LDApO2xldCBjPTAsZD0wO3JldHVybiBjPW8ud2lkdGg8PWkud2lkdGg/bHx8LWE6dC54PHRoaXMuX3ZpZXdwb3J0TWFyZ2luP2kubGVmdC1uLmxlZnQtdC54OjAsZD1vLmhlaWdodDw9aS5oZWlnaHQ/c3x8LXI6dC55PHRoaXMuX3ZpZXdwb3J0TWFyZ2luP2kudG9wLW4udG9wLXQueTowLHRoaXMuX3ByZXZpb3VzUHVzaEFtb3VudD17eDpjLHk6ZH0se3g6dC54K2MseTp0LnkrZH19X2FwcGx5UG9zaXRpb24odCxlKXtpZih0aGlzLl9zZXRUcmFuc2Zvcm1PcmlnaW4odCksdGhpcy5fc2V0T3ZlcmxheUVsZW1lbnRTdHlsZXMoZSx0KSx0aGlzLl9zZXRCb3VuZGluZ0JveFN0eWxlcyhlLHQpLHQucGFuZWxDbGFzcyYmdGhpcy5fYWRkUGFuZWxDbGFzc2VzKHQucGFuZWxDbGFzcyksdGhpcy5fbGFzdFBvc2l0aW9uPXQsdGhpcy5fcG9zaXRpb25DaGFuZ2VzLm9ic2VydmVycy5sZW5ndGgpe2NvbnN0IGU9dGhpcy5fZ2V0U2Nyb2xsVmlzaWJpbGl0eSgpLG49bmV3IEdGKHQsZSk7dGhpcy5fcG9zaXRpb25DaGFuZ2VzLm5leHQobil9dGhpcy5faXNJbml0aWFsUmVuZGVyPSExfV9zZXRUcmFuc2Zvcm1PcmlnaW4odCl7aWYoIXRoaXMuX3RyYW5zZm9ybU9yaWdpblNlbGVjdG9yKXJldHVybjtjb25zdCBlPXRoaXMuX2JvdW5kaW5nQm94LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5fdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3IpO2xldCBuLG89dC5vdmVybGF5WTtuPSJjZW50ZXIiPT09dC5vdmVybGF5WD8iY2VudGVyIjp0aGlzLl9pc1J0bCgpPyJzdGFydCI9PT10Lm92ZXJsYXlYPyJyaWdodCI6ImxlZnQiOiJzdGFydCI9PT10Lm92ZXJsYXlYPyJsZWZ0IjoicmlnaHQiO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0uc3R5bGUudHJhbnNmb3JtT3JpZ2luPWAke259ICR7b31gfV9jYWxjdWxhdGVCb3VuZGluZ0JveFJlY3QodCxlKXtjb25zdCBuPXRoaXMuX3ZpZXdwb3J0UmVjdCxvPXRoaXMuX2lzUnRsKCk7bGV0IGksYSxyLHMsbCxjO2lmKCJ0b3AiPT09ZS5vdmVybGF5WSlhPXQueSxpPW4uaGVpZ2h0LWErdGhpcy5fdmlld3BvcnRNYXJnaW47ZWxzZSBpZigiYm90dG9tIj09PWUub3ZlcmxheVkpcj1uLmhlaWdodC10LnkrMip0aGlzLl92aWV3cG9ydE1hcmdpbixpPW4uaGVpZ2h0LXIrdGhpcy5fdmlld3BvcnRNYXJnaW47ZWxzZXtjb25zdCBlPU1hdGgubWluKG4uYm90dG9tLXQueStuLnRvcCx0LnkpLG89dGhpcy5fbGFzdEJvdW5kaW5nQm94U2l6ZS5oZWlnaHQ7aT0yKmUsYT10LnktZSxpPm8mJiF0aGlzLl9pc0luaXRpYWxSZW5kZXImJiF0aGlzLl9ncm93QWZ0ZXJPcGVuJiYoYT10Lnktby8yKX1pZigiZW5kIj09PWUub3ZlcmxheVgmJiFvfHwic3RhcnQiPT09ZS5vdmVybGF5WCYmbyljPW4ud2lkdGgtdC54K3RoaXMuX3ZpZXdwb3J0TWFyZ2luLHM9dC54LXRoaXMuX3ZpZXdwb3J0TWFyZ2luO2Vsc2UgaWYoInN0YXJ0Ij09PWUub3ZlcmxheVgmJiFvfHwiZW5kIj09PWUub3ZlcmxheVgmJm8pbD10Lngscz1uLnJpZ2h0LXQueDtlbHNle2NvbnN0IGU9TWF0aC5taW4obi5yaWdodC10Lngrbi5sZWZ0LHQueCksbz10aGlzLl9sYXN0Qm91bmRpbmdCb3hTaXplLndpZHRoO3M9MiplLGw9dC54LWUscz5vJiYhdGhpcy5faXNJbml0aWFsUmVuZGVyJiYhdGhpcy5fZ3Jvd0FmdGVyT3BlbiYmKGw9dC54LW8vMil9cmV0dXJue3RvcDphLGxlZnQ6bCxib3R0b206cixyaWdodDpjLHdpZHRoOnMsaGVpZ2h0Oml9fV9zZXRCb3VuZGluZ0JveFN0eWxlcyh0LGUpe2NvbnN0IG49dGhpcy5fY2FsY3VsYXRlQm91bmRpbmdCb3hSZWN0KHQsZSk7dGhpcy5faXNJbml0aWFsUmVuZGVyfHx0aGlzLl9ncm93QWZ0ZXJPcGVufHwobi5oZWlnaHQ9TWF0aC5taW4obi5oZWlnaHQsdGhpcy5fbGFzdEJvdW5kaW5nQm94U2l6ZS5oZWlnaHQpLG4ud2lkdGg9TWF0aC5taW4obi53aWR0aCx0aGlzLl9sYXN0Qm91bmRpbmdCb3hTaXplLndpZHRoKSk7Y29uc3Qgbz17fTtpZih0aGlzLl9oYXNFeGFjdFBvc2l0aW9uKCkpby50b3A9by5sZWZ0PSIwIixvLmJvdHRvbT1vLnJpZ2h0PW8ubWF4SGVpZ2h0PW8ubWF4V2lkdGg9IiIsby53aWR0aD1vLmhlaWdodD0iMTAwJSI7ZWxzZXtjb25zdCB0PXRoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCkubWF4SGVpZ2h0LGk9dGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5tYXhXaWR0aDtvLmhlaWdodD12eihuLmhlaWdodCksby50b3A9dnoobi50b3ApLG8uYm90dG9tPXZ6KG4uYm90dG9tKSxvLndpZHRoPXZ6KG4ud2lkdGgpLG8ubGVmdD12eihuLmxlZnQpLG8ucmlnaHQ9dnoobi5yaWdodCksby5hbGlnbkl0ZW1zPSJjZW50ZXIiPT09ZS5vdmVybGF5WD8iY2VudGVyIjoiZW5kIj09PWUub3ZlcmxheVg/ImZsZXgtZW5kIjoiZmxleC1zdGFydCIsby5qdXN0aWZ5Q29udGVudD0iY2VudGVyIj09PWUub3ZlcmxheVk/ImNlbnRlciI6ImJvdHRvbSI9PT1lLm92ZXJsYXlZPyJmbGV4LWVuZCI6ImZsZXgtc3RhcnQiLHQmJihvLm1heEhlaWdodD12eih0KSksaSYmKG8ubWF4V2lkdGg9dnooaSkpfXRoaXMuX2xhc3RCb3VuZGluZ0JveFNpemU9bixvTCh0aGlzLl9ib3VuZGluZ0JveC5zdHlsZSxvKX1fcmVzZXRCb3VuZGluZ0JveFN0eWxlcygpe29MKHRoaXMuX2JvdW5kaW5nQm94LnN0eWxlLHt0b3A6IjAiLGxlZnQ6IjAiLHJpZ2h0OiIwIixib3R0b206IjAiLGhlaWdodDoiIix3aWR0aDoiIixhbGlnbkl0ZW1zOiIiLGp1c3RpZnlDb250ZW50OiIifSl9X3Jlc2V0T3ZlcmxheUVsZW1lbnRTdHlsZXMoKXtvTCh0aGlzLl9wYW5lLnN0eWxlLHt0b3A6IiIsbGVmdDoiIixib3R0b206IiIscmlnaHQ6IiIscG9zaXRpb246IiIsdHJhbnNmb3JtOiIifSl9X3NldE92ZXJsYXlFbGVtZW50U3R5bGVzKHQsZSl7Y29uc3Qgbj17fSxvPXRoaXMuX2hhc0V4YWN0UG9zaXRpb24oKSxpPXRoaXMuX2hhc0ZsZXhpYmxlRGltZW5zaW9ucyxhPXRoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCk7aWYobyl7Y29uc3Qgbz10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtvTChuLHRoaXMuX2dldEV4YWN0T3ZlcmxheVkoZSx0LG8pKSxvTChuLHRoaXMuX2dldEV4YWN0T3ZlcmxheVgoZSx0LG8pKX1lbHNlIG4ucG9zaXRpb249InN0YXRpYyI7bGV0IHI9IiIscz10aGlzLl9nZXRPZmZzZXQoZSwieCIpLGw9dGhpcy5fZ2V0T2Zmc2V0KGUsInkiKTtzJiYocis9YHRyYW5zbGF0ZVgoJHtzfXB4KSBgKSxsJiYocis9YHRyYW5zbGF0ZVkoJHtsfXB4KWApLG4udHJhbnNmb3JtPXIudHJpbSgpLGEubWF4SGVpZ2h0JiYobz9uLm1heEhlaWdodD12eihhLm1heEhlaWdodCk6aSYmKG4ubWF4SGVpZ2h0PSIiKSksYS5tYXhXaWR0aCYmKG8/bi5tYXhXaWR0aD12eihhLm1heFdpZHRoKTppJiYobi5tYXhXaWR0aD0iIikpLG9MKHRoaXMuX3BhbmUuc3R5bGUsbil9X2dldEV4YWN0T3ZlcmxheVkodCxlLG4pe2xldCBvPXt0b3A6IiIsYm90dG9tOiIifSxpPXRoaXMuX2dldE92ZXJsYXlQb2ludChlLHRoaXMuX292ZXJsYXlSZWN0LHQpO3RoaXMuX2lzUHVzaGVkJiYoaT10aGlzLl9wdXNoT3ZlcmxheU9uU2NyZWVuKGksdGhpcy5fb3ZlcmxheVJlY3QsbikpO2xldCBhPXRoaXMuX292ZXJsYXlDb250YWluZXIuZ2V0Q29udGFpbmVyRWxlbWVudCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtyZXR1cm4gaS55LT1hLCJib3R0b20iPT09dC5vdmVybGF5WT9vLmJvdHRvbT10aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LShpLnkrdGhpcy5fb3ZlcmxheVJlY3QuaGVpZ2h0KSsicHgiOm8udG9wPXZ6KGkueSksb31fZ2V0RXhhY3RPdmVybGF5WCh0LGUsbil7bGV0IG8saT17bGVmdDoiIixyaWdodDoiIn0sYT10aGlzLl9nZXRPdmVybGF5UG9pbnQoZSx0aGlzLl9vdmVybGF5UmVjdCx0KTtyZXR1cm4gdGhpcy5faXNQdXNoZWQmJihhPXRoaXMuX3B1c2hPdmVybGF5T25TY3JlZW4oYSx0aGlzLl9vdmVybGF5UmVjdCxuKSksbz10aGlzLl9pc1J0bCgpPyJlbmQiPT09dC5vdmVybGF5WD8ibGVmdCI6InJpZ2h0IjoiZW5kIj09PXQub3ZlcmxheVg/InJpZ2h0IjoibGVmdCIsInJpZ2h0Ij09PW8/aS5yaWdodD10aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgtKGEueCt0aGlzLl9vdmVybGF5UmVjdC53aWR0aCkrInB4IjppLmxlZnQ9dnooYS54KSxpfV9nZXRTY3JvbGxWaXNpYmlsaXR5KCl7Y29uc3QgdD10aGlzLl9nZXRPcmlnaW5SZWN0KCksZT10aGlzLl9wYW5lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49dGhpcy5fc2Nyb2xsYWJsZXMubWFwKCh0PT50LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSk7cmV0dXJue2lzT3JpZ2luQ2xpcHBlZDpGRih0LG4pLGlzT3JpZ2luT3V0c2lkZVZpZXc6SEYodCxuKSxpc092ZXJsYXlDbGlwcGVkOkZGKGUsbiksaXNPdmVybGF5T3V0c2lkZVZpZXc6SEYoZSxuKX19X3N1YnRyYWN0T3ZlcmZsb3dzKHQsLi4uZSl7cmV0dXJuIGUucmVkdWNlKCgodCxlKT0+dC1NYXRoLm1heChlLDApKSx0KX1fZ2V0TmFycm93ZWRWaWV3cG9ydFJlY3QoKXtjb25zdCB0PXRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCxlPXRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsbj10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtyZXR1cm57dG9wOm4udG9wK3RoaXMuX3ZpZXdwb3J0TWFyZ2luLGxlZnQ6bi5sZWZ0K3RoaXMuX3ZpZXdwb3J0TWFyZ2luLHJpZ2h0Om4ubGVmdCt0LXRoaXMuX3ZpZXdwb3J0TWFyZ2luLGJvdHRvbTpuLnRvcCtlLXRoaXMuX3ZpZXdwb3J0TWFyZ2luLHdpZHRoOnQtMip0aGlzLl92aWV3cG9ydE1hcmdpbixoZWlnaHQ6ZS0yKnRoaXMuX3ZpZXdwb3J0TWFyZ2lufX1faXNSdGwoKXtyZXR1cm4icnRsIj09PXRoaXMuX292ZXJsYXlSZWYuZ2V0RGlyZWN0aW9uKCl9X2hhc0V4YWN0UG9zaXRpb24oKXtyZXR1cm4hdGhpcy5faGFzRmxleGlibGVEaW1lbnNpb25zfHx0aGlzLl9pc1B1c2hlZH1fZ2V0T2Zmc2V0KHQsZSl7cmV0dXJuIngiPT09ZT9udWxsPT10Lm9mZnNldFg/dGhpcy5fb2Zmc2V0WDp0Lm9mZnNldFg6bnVsbD09dC5vZmZzZXRZP3RoaXMuX29mZnNldFk6dC5vZmZzZXRZfV92YWxpZGF0ZVBvc2l0aW9ucygpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpe2lmKCF0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnMubGVuZ3RoKXRocm93IEVycm9yKCJGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k6IEF0IGxlYXN0IG9uZSBwb3NpdGlvbiBpcyByZXF1aXJlZC4iKTt0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnMuZm9yRWFjaCgodD0+e1lGKCJvcmlnaW5YIix0Lm9yaWdpblgpLFdGKCJvcmlnaW5ZIix0Lm9yaWdpblkpLFlGKCJvdmVybGF5WCIsdC5vdmVybGF5WCksV0YoIm92ZXJsYXlZIix0Lm92ZXJsYXlZKX0pKX19X2FkZFBhbmVsQ2xhc3Nlcyh0KXt0aGlzLl9wYW5lJiZNeih0KS5mb3JFYWNoKCh0PT57IiIhPT10JiYtMT09PXRoaXMuX2FwcGxpZWRQYW5lbENsYXNzZXMuaW5kZXhPZih0KSYmKHRoaXMuX2FwcGxpZWRQYW5lbENsYXNzZXMucHVzaCh0KSx0aGlzLl9wYW5lLmNsYXNzTGlzdC5hZGQodCkpfSkpfV9jbGVhclBhbmVsQ2xhc3Nlcygpe3RoaXMuX3BhbmUmJih0aGlzLl9hcHBsaWVkUGFuZWxDbGFzc2VzLmZvckVhY2goKHQ9Pnt0aGlzLl9wYW5lLmNsYXNzTGlzdC5yZW1vdmUodCl9KSksdGhpcy5fYXBwbGllZFBhbmVsQ2xhc3Nlcz1bXSl9X2dldE9yaWdpblJlY3QoKXtjb25zdCB0PXRoaXMuX29yaWdpbjtpZih0IGluc3RhbmNlb2YgaGcpcmV0dXJuIHQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih0IGluc3RhbmNlb2YgRWxlbWVudClyZXR1cm4gdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjb25zdCBlPXQud2lkdGh8fDAsbj10LmhlaWdodHx8MDtyZXR1cm57dG9wOnQueSxib3R0b206dC55K24sbGVmdDp0LngscmlnaHQ6dC54K2UsaGVpZ2h0Om4sd2lkdGg6ZX19fWZ1bmN0aW9uIG9MKHQsZSl7Zm9yKGxldCBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHR9ZnVuY3Rpb24gaUwodCl7aWYoIm51bWJlciIhPXR5cGVvZiB0JiZudWxsIT10KXtjb25zdFtlLG5dPXQuc3BsaXQoZUwpO3JldHVybiBuJiYicHgiIT09bj9udWxsOnBhcnNlRmxvYXQoZSl9cmV0dXJuIHR8fG51bGx9ZnVuY3Rpb24gYUwodCl7cmV0dXJue3RvcDpNYXRoLmZsb29yKHQudG9wKSxyaWdodDpNYXRoLmZsb29yKHQucmlnaHQpLGJvdHRvbTpNYXRoLmZsb29yKHQuYm90dG9tKSxsZWZ0Ok1hdGguZmxvb3IodC5sZWZ0KSx3aWR0aDpNYXRoLmZsb29yKHQud2lkdGgpLGhlaWdodDpNYXRoLmZsb29yKHQuaGVpZ2h0KX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHJMe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3RoaXMuX3ByZWZlcnJlZFBvc2l0aW9ucz1bXSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5PW5ldyBuTChuLG8saSxhLHIpLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoITEpLndpdGhQdXNoKCExKS53aXRoVmlld3BvcnRNYXJnaW4oMCksdGhpcy53aXRoRmFsbGJhY2tQb3NpdGlvbih0LGUpLHRoaXMub25Qb3NpdGlvbkNoYW5nZT10aGlzLl9wb3NpdGlvblN0cmF0ZWd5LnBvc2l0aW9uQ2hhbmdlc31nZXQgcG9zaXRpb25zKCl7cmV0dXJuIHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9uc31hdHRhY2godCl7dGhpcy5fb3ZlcmxheVJlZj10LHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuYXR0YWNoKHQpLHRoaXMuX2RpcmVjdGlvbiYmKHQuc2V0RGlyZWN0aW9uKHRoaXMuX2RpcmVjdGlvbiksdGhpcy5fZGlyZWN0aW9uPW51bGwpfWRpc3Bvc2UoKXt0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmRpc3Bvc2UoKX1kZXRhY2goKXt0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmRldGFjaCgpfWFwcGx5KCl7dGhpcy5fcG9zaXRpb25TdHJhdGVneS5hcHBseSgpfXJlY2FsY3VsYXRlTGFzdFBvc2l0aW9uKCl7dGhpcy5fcG9zaXRpb25TdHJhdGVneS5yZWFwcGx5TGFzdFBvc2l0aW9uKCl9d2l0aFNjcm9sbGFibGVDb250YWluZXJzKHQpe3RoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kud2l0aFNjcm9sbGFibGVDb250YWluZXJzKHQpfXdpdGhGYWxsYmFja1Bvc2l0aW9uKHQsZSxuLG8pe2NvbnN0IGk9bmV3IGpGKHQsZSxuLG8pO3JldHVybiB0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnMucHVzaChpKSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LndpdGhQb3NpdGlvbnModGhpcy5fcHJlZmVycmVkUG9zaXRpb25zKSx0aGlzfXdpdGhEaXJlY3Rpb24odCl7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWY/dGhpcy5fb3ZlcmxheVJlZi5zZXREaXJlY3Rpb24odCk6dGhpcy5fZGlyZWN0aW9uPXQsdGhpc313aXRoT2Zmc2V0WCh0KXtyZXR1cm4gdGhpcy5fcG9zaXRpb25TdHJhdGVneS53aXRoRGVmYXVsdE9mZnNldFgodCksdGhpc313aXRoT2Zmc2V0WSh0KXtyZXR1cm4gdGhpcy5fcG9zaXRpb25TdHJhdGVneS53aXRoRGVmYXVsdE9mZnNldFkodCksdGhpc313aXRoTG9ja2VkUG9zaXRpb24odCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kud2l0aExvY2tlZFBvc2l0aW9uKHQpLHRoaXN9d2l0aFBvc2l0aW9ucyh0KXtyZXR1cm4gdGhpcy5fcHJlZmVycmVkUG9zaXRpb25zPXQuc2xpY2UoKSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LndpdGhQb3NpdGlvbnModGhpcy5fcHJlZmVycmVkUG9zaXRpb25zKSx0aGlzfXNldE9yaWdpbih0KXtyZXR1cm4gdGhpcy5fcG9zaXRpb25TdHJhdGVneS5zZXRPcmlnaW4odCksdGhpc319Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IHNMPSJjZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciI7Y2xhc3MgbEx7Y29uc3RydWN0b3IoKXt0aGlzLl9jc3NQb3NpdGlvbj0ic3RhdGljIix0aGlzLl90b3BPZmZzZXQ9IiIsdGhpcy5fYm90dG9tT2Zmc2V0PSIiLHRoaXMuX2xlZnRPZmZzZXQ9IiIsdGhpcy5fcmlnaHRPZmZzZXQ9IiIsdGhpcy5fYWxpZ25JdGVtcz0iIix0aGlzLl9qdXN0aWZ5Q29udGVudD0iIix0aGlzLl93aWR0aD0iIix0aGlzLl9oZWlnaHQ9IiJ9YXR0YWNoKHQpe2NvbnN0IGU9dC5nZXRDb25maWcoKTt0aGlzLl9vdmVybGF5UmVmPXQsdGhpcy5fd2lkdGgmJiFlLndpZHRoJiZ0LnVwZGF0ZVNpemUoe3dpZHRoOnRoaXMuX3dpZHRofSksdGhpcy5faGVpZ2h0JiYhZS5oZWlnaHQmJnQudXBkYXRlU2l6ZSh7aGVpZ2h0OnRoaXMuX2hlaWdodH0pLHQuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChzTCksdGhpcy5faXNEaXNwb3NlZD0hMX10b3AodD0iIil7cmV0dXJuIHRoaXMuX2JvdHRvbU9mZnNldD0iIix0aGlzLl90b3BPZmZzZXQ9dCx0aGlzLl9hbGlnbkl0ZW1zPSJmbGV4LXN0YXJ0Iix0aGlzfWxlZnQodD0iIil7cmV0dXJuIHRoaXMuX3JpZ2h0T2Zmc2V0PSIiLHRoaXMuX2xlZnRPZmZzZXQ9dCx0aGlzLl9qdXN0aWZ5Q29udGVudD0iZmxleC1zdGFydCIsdGhpc31ib3R0b20odD0iIil7cmV0dXJuIHRoaXMuX3RvcE9mZnNldD0iIix0aGlzLl9ib3R0b21PZmZzZXQ9dCx0aGlzLl9hbGlnbkl0ZW1zPSJmbGV4LWVuZCIsdGhpc31yaWdodCh0PSIiKXtyZXR1cm4gdGhpcy5fbGVmdE9mZnNldD0iIix0aGlzLl9yaWdodE9mZnNldD10LHRoaXMuX2p1c3RpZnlDb250ZW50PSJmbGV4LWVuZCIsdGhpc313aWR0aCh0PSIiKXtyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZj90aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVNpemUoe3dpZHRoOnR9KTp0aGlzLl93aWR0aD10LHRoaXN9aGVpZ2h0KHQ9IiIpe3JldHVybiB0aGlzLl9vdmVybGF5UmVmP3RoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh7aGVpZ2h0OnR9KTp0aGlzLl9oZWlnaHQ9dCx0aGlzfWNlbnRlckhvcml6b250YWxseSh0PSIiKXtyZXR1cm4gdGhpcy5sZWZ0KHQpLHRoaXMuX2p1c3RpZnlDb250ZW50PSJjZW50ZXIiLHRoaXN9Y2VudGVyVmVydGljYWxseSh0PSIiKXtyZXR1cm4gdGhpcy50b3AodCksdGhpcy5fYWxpZ25JdGVtcz0iY2VudGVyIix0aGlzfWFwcGx5KCl7aWYoIXRoaXMuX292ZXJsYXlSZWZ8fCF0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5zdHlsZSxlPXRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQuc3R5bGUsbj10aGlzLl9vdmVybGF5UmVmLmdldENvbmZpZygpLHt3aWR0aDpvLGhlaWdodDppLG1heFdpZHRoOmEsbWF4SGVpZ2h0OnJ9PW4scz0hKCIxMDAlIiE9PW8mJiIxMDB2dyIhPT1vfHxhJiYiMTAwJSIhPT1hJiYiMTAwdnciIT09YSksbD0hKCIxMDAlIiE9PWkmJiIxMDB2aCIhPT1pfHxyJiYiMTAwJSIhPT1yJiYiMTAwdmgiIT09cik7dC5wb3NpdGlvbj10aGlzLl9jc3NQb3NpdGlvbix0Lm1hcmdpbkxlZnQ9cz8iMCI6dGhpcy5fbGVmdE9mZnNldCx0Lm1hcmdpblRvcD1sPyIwIjp0aGlzLl90b3BPZmZzZXQsdC5tYXJnaW5Cb3R0b209dGhpcy5fYm90dG9tT2Zmc2V0LHQubWFyZ2luUmlnaHQ9dGhpcy5fcmlnaHRPZmZzZXQscz9lLmp1c3RpZnlDb250ZW50PSJmbGV4LXN0YXJ0IjoiY2VudGVyIj09PXRoaXMuX2p1c3RpZnlDb250ZW50P2UuanVzdGlmeUNvbnRlbnQ9ImNlbnRlciI6InJ0bCI9PT10aGlzLl9vdmVybGF5UmVmLmdldENvbmZpZygpLmRpcmVjdGlvbj8iZmxleC1zdGFydCI9PT10aGlzLl9qdXN0aWZ5Q29udGVudD9lLmp1c3RpZnlDb250ZW50PSJmbGV4LWVuZCI6ImZsZXgtZW5kIj09PXRoaXMuX2p1c3RpZnlDb250ZW50JiYoZS5qdXN0aWZ5Q29udGVudD0iZmxleC1zdGFydCIpOmUuanVzdGlmeUNvbnRlbnQ9dGhpcy5fanVzdGlmeUNvbnRlbnQsZS5hbGlnbkl0ZW1zPWw/ImZsZXgtc3RhcnQiOnRoaXMuX2FsaWduSXRlbXN9ZGlzcG9zZSgpe2lmKHRoaXMuX2lzRGlzcG9zZWR8fCF0aGlzLl9vdmVybGF5UmVmKXJldHVybjtjb25zdCB0PXRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuc3R5bGUsZT10aGlzLl9vdmVybGF5UmVmLmhvc3RFbGVtZW50LG49ZS5zdHlsZTtlLmNsYXNzTGlzdC5yZW1vdmUoc0wpLG4uanVzdGlmeUNvbnRlbnQ9bi5hbGlnbkl0ZW1zPXQubWFyZ2luVG9wPXQubWFyZ2luQm90dG9tPXQubWFyZ2luTGVmdD10Lm1hcmdpblJpZ2h0PXQucG9zaXRpb249IiIsdGhpcy5fb3ZlcmxheVJlZj1udWxsLHRoaXMuX2lzRGlzcG9zZWQ9ITB9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBjTHtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl92aWV3cG9ydFJ1bGVyPXQsdGhpcy5fZG9jdW1lbnQ9ZSx0aGlzLl9wbGF0Zm9ybT1uLHRoaXMuX292ZXJsYXlDb250YWluZXI9b31nbG9iYWwoKXtyZXR1cm4gbmV3IGxMfWNvbm5lY3RlZFRvKHQsZSxuKXtyZXR1cm4gbmV3IHJMKGUsbix0LHRoaXMuX3ZpZXdwb3J0UnVsZXIsdGhpcy5fZG9jdW1lbnQsdGhpcy5fcGxhdGZvcm0sdGhpcy5fb3ZlcmxheUNvbnRhaW5lcil9ZmxleGlibGVDb25uZWN0ZWRUbyh0KXtyZXR1cm4gbmV3IG5MKHQsdGhpcy5fdmlld3BvcnRSdWxlcix0aGlzLl9kb2N1bWVudCx0aGlzLl9wbGF0Zm9ybSx0aGlzLl9vdmVybGF5Q29udGFpbmVyKX19Y0wuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGNMKSh2cih1RiksdnIoWl8pLHZyKHd6KSx2cihRRikpfSxjTC7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgY0wodnIodUYpLHZyKFpfKSx2cih3eiksdnIoUUYpKX0sdG9rZW46Y0wscHJvdmlkZWRJbjoicm9vdCJ9KSxjTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnVGfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fSx7dHlwZTpRRn1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoY0wsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnVGfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fSx7dHlwZTpRRn1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgZEw9MDtjbGFzcyBwTHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjLGQpe3RoaXMuc2Nyb2xsU3RyYXRlZ2llcz10LHRoaXMuX292ZXJsYXlDb250YWluZXI9ZSx0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9bix0aGlzLl9wb3NpdGlvbkJ1aWxkZXI9byx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXI9aSx0aGlzLl9pbmplY3Rvcj1hLHRoaXMuX25nWm9uZT1yLHRoaXMuX2RvY3VtZW50PXMsdGhpcy5fZGlyZWN0aW9uYWxpdHk9bCx0aGlzLl9sb2NhdGlvbj1jLHRoaXMuX291dHNpZGVDbGlja0Rpc3BhdGNoZXI9ZH1jcmVhdGUodCl7Y29uc3QgZT10aGlzLl9jcmVhdGVIb3N0RWxlbWVudCgpLG49dGhpcy5fY3JlYXRlUGFuZUVsZW1lbnQoZSksbz10aGlzLl9jcmVhdGVQb3J0YWxPdXRsZXQobiksaT1uZXcgVkYodCk7cmV0dXJuIGkuZGlyZWN0aW9uPWkuZGlyZWN0aW9ufHx0aGlzLl9kaXJlY3Rpb25hbGl0eS52YWx1ZSxuZXcgJEYobyxlLG4saSx0aGlzLl9uZ1pvbmUsdGhpcy5fa2V5Ym9hcmREaXNwYXRjaGVyLHRoaXMuX2RvY3VtZW50LHRoaXMuX2xvY2F0aW9uLHRoaXMuX291dHNpZGVDbGlja0Rpc3BhdGNoZXIpfXBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9uQnVpbGRlcn1fY3JlYXRlUGFuZUVsZW1lbnQodCl7Y29uc3QgZT10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5pZD0iY2RrLW92ZXJsYXktIitkTCsrLGUuY2xhc3NMaXN0LmFkZCgiY2RrLW92ZXJsYXktcGFuZSIpLHQuYXBwZW5kQ2hpbGQoZSksZX1fY3JlYXRlSG9zdEVsZW1lbnQoKXtjb25zdCB0PXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0aGlzLl9vdmVybGF5Q29udGFpbmVyLmdldENvbnRhaW5lckVsZW1lbnQoKS5hcHBlbmRDaGlsZCh0KSx0fV9jcmVhdGVQb3J0YWxPdXRsZXQodCl7cmV0dXJuIHRoaXMuX2FwcFJlZnx8KHRoaXMuX2FwcFJlZj10aGlzLl9pbmplY3Rvci5nZXQoT18pKSxuZXcgd0YodCx0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsdGhpcy5fYXBwUmVmLHRoaXMuX2luamVjdG9yLHRoaXMuX2RvY3VtZW50KX19cEwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBMKSh2cihCRiksdnIoUUYpLHZyKHVnKSx2cihjTCksdnIoWkYpLHZyKHJwKSx2cihhXyksdnIoWl8pLHZyKEhJKSx2cihsQyksdnIoWEYpKX0scEwuybVwcm92PU1uKHt0b2tlbjpwTCxmYWN0b3J5OnBMLsm1ZmFjfSkscEwuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpCRn0se3R5cGU6UUZ9LHt0eXBlOnVnfSx7dHlwZTpjTH0se3R5cGU6WkZ9LHt0eXBlOnJwfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTpISX0se3R5cGU6bEN9LHt0eXBlOlhGfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwTCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QkZ9LHt0eXBlOlFGfSx7dHlwZTp1Z30se3R5cGU6Y0x9LHt0eXBlOlpGfSx7dHlwZTpycH0se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6SEl9LHt0eXBlOmxDfSx7dHlwZTpYRn1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBtTD1be29yaWdpblg6InN0YXJ0IixvcmlnaW5ZOiJib3R0b20iLG92ZXJsYXlYOiJzdGFydCIsb3ZlcmxheVk6InRvcCJ9LHtvcmlnaW5YOiJzdGFydCIsb3JpZ2luWToidG9wIixvdmVybGF5WDoic3RhcnQiLG92ZXJsYXlZOiJib3R0b20ifSx7b3JpZ2luWDoiZW5kIixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlYOiJlbmQiLG92ZXJsYXlZOiJib3R0b20ifSx7b3JpZ2luWDoiZW5kIixvcmlnaW5ZOiJib3R0b20iLG92ZXJsYXlYOiJlbmQiLG92ZXJsYXlZOiJ0b3AifV0sdUw9bmV3IEdhKCJjZGstY29ubmVjdGVkLW92ZXJsYXktc2Nyb2xsLXN0cmF0ZWd5Iik7Y2xhc3MgZkx7Y29uc3RydWN0b3IodCl7dGhpcy5lbGVtZW50UmVmPXR9fWZMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmTCkoU20oaGcpKX0sZkwuybVkaXI9bG8oe3R5cGU6Zkwsc2VsZWN0b3JzOltbIiIsImNkay1vdmVybGF5LW9yaWdpbiIsIiJdLFsiIiwib3ZlcmxheS1vcmlnaW4iLCIiXSxbIiIsImNka092ZXJsYXlPcmlnaW4iLCIiXV0sZXhwb3J0QXM6WyJjZGtPdmVybGF5T3JpZ2luIl19KSxmTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChmTCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrLW92ZXJsYXktb3JpZ2luXSwgW292ZXJsYXktb3JpZ2luXSwgW2Nka092ZXJsYXlPcmlnaW5dIixleHBvcnRBczoiY2RrT3ZlcmxheU9yaWdpbiJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ31dfSksbnVsbCk7Y2xhc3MgZ0x7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLl9vdmVybGF5PXQsdGhpcy5fZGlyPWksdGhpcy5faGFzQmFja2Ryb3A9ITEsdGhpcy5fbG9ja1Bvc2l0aW9uPSExLHRoaXMuX2dyb3dBZnRlck9wZW49ITEsdGhpcy5fZmxleGlibGVEaW1lbnNpb25zPSExLHRoaXMuX3B1c2g9ITEsdGhpcy5fYmFja2Ryb3BTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl9hdHRhY2hTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl9kZXRhY2hTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl9wb3NpdGlvblN1YnNjcmlwdGlvbj1tLkVNUFRZLHRoaXMudmlld3BvcnRNYXJnaW49MCx0aGlzLm9wZW49ITEsdGhpcy5kaXNhYmxlQ2xvc2U9ITEsdGhpcy5iYWNrZHJvcENsaWNrPW5ldyBMaCx0aGlzLnBvc2l0aW9uQ2hhbmdlPW5ldyBMaCx0aGlzLmF0dGFjaD1uZXcgTGgsdGhpcy5kZXRhY2g9bmV3IExoLHRoaXMub3ZlcmxheUtleWRvd249bmV3IExoLHRoaXMub3ZlcmxheU91dHNpZGVDbGljaz1uZXcgTGgsdGhpcy5fdGVtcGxhdGVQb3J0YWw9bmV3IHhGKGUsbiksdGhpcy5fc2Nyb2xsU3RyYXRlZ3lGYWN0b3J5PW8sdGhpcy5zY3JvbGxTdHJhdGVneT10aGlzLl9zY3JvbGxTdHJhdGVneUZhY3RvcnkoKX1nZXQgb2Zmc2V0WCgpe3JldHVybiB0aGlzLl9vZmZzZXRYfXNldCBvZmZzZXRYKHQpe3RoaXMuX29mZnNldFg9dCx0aGlzLl9wb3NpdGlvbiYmdGhpcy5fdXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLl9wb3NpdGlvbil9Z2V0IG9mZnNldFkoKXtyZXR1cm4gdGhpcy5fb2Zmc2V0WX1zZXQgb2Zmc2V0WSh0KXt0aGlzLl9vZmZzZXRZPXQsdGhpcy5fcG9zaXRpb24mJnRoaXMuX3VwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5fcG9zaXRpb24pfWdldCBoYXNCYWNrZHJvcCgpe3JldHVybiB0aGlzLl9oYXNCYWNrZHJvcH1zZXQgaGFzQmFja2Ryb3AodCl7dGhpcy5faGFzQmFja2Ryb3A9eXoodCl9Z2V0IGxvY2tQb3NpdGlvbigpe3JldHVybiB0aGlzLl9sb2NrUG9zaXRpb259c2V0IGxvY2tQb3NpdGlvbih0KXt0aGlzLl9sb2NrUG9zaXRpb249eXoodCl9Z2V0IGZsZXhpYmxlRGltZW5zaW9ucygpe3JldHVybiB0aGlzLl9mbGV4aWJsZURpbWVuc2lvbnN9c2V0IGZsZXhpYmxlRGltZW5zaW9ucyh0KXt0aGlzLl9mbGV4aWJsZURpbWVuc2lvbnM9eXoodCl9Z2V0IGdyb3dBZnRlck9wZW4oKXtyZXR1cm4gdGhpcy5fZ3Jvd0FmdGVyT3Blbn1zZXQgZ3Jvd0FmdGVyT3Blbih0KXt0aGlzLl9ncm93QWZ0ZXJPcGVuPXl6KHQpfWdldCBwdXNoKCl7cmV0dXJuIHRoaXMuX3B1c2h9c2V0IHB1c2godCl7dGhpcy5fcHVzaD15eih0KX1nZXQgb3ZlcmxheVJlZigpe3JldHVybiB0aGlzLl9vdmVybGF5UmVmfWdldCBkaXIoKXtyZXR1cm4gdGhpcy5fZGlyP3RoaXMuX2Rpci52YWx1ZToibHRyIn1uZ09uRGVzdHJveSgpe3RoaXMuX2F0dGFjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2RldGFjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2JhY2tkcm9wU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fcG9zaXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9vdmVybGF5UmVmJiZ0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKX1uZ09uQ2hhbmdlcyh0KXt0aGlzLl9wb3NpdGlvbiYmKHRoaXMuX3VwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5fcG9zaXRpb24pLHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh7d2lkdGg6dGhpcy53aWR0aCxtaW5XaWR0aDp0aGlzLm1pbldpZHRoLGhlaWdodDp0aGlzLmhlaWdodCxtaW5IZWlnaHQ6dGhpcy5taW5IZWlnaHR9KSx0Lm9yaWdpbiYmdGhpcy5vcGVuJiZ0aGlzLl9wb3NpdGlvbi5hcHBseSgpKSx0Lm9wZW4mJih0aGlzLm9wZW4/dGhpcy5fYXR0YWNoT3ZlcmxheSgpOnRoaXMuX2RldGFjaE92ZXJsYXkoKSl9X2NyZWF0ZU92ZXJsYXkoKXt0aGlzLnBvc2l0aW9ucyYmdGhpcy5wb3NpdGlvbnMubGVuZ3RofHwodGhpcy5wb3NpdGlvbnM9bUwpO2NvbnN0IHQ9dGhpcy5fb3ZlcmxheVJlZj10aGlzLl9vdmVybGF5LmNyZWF0ZSh0aGlzLl9idWlsZENvbmZpZygpKTt0aGlzLl9hdHRhY2hTdWJzY3JpcHRpb249dC5hdHRhY2htZW50cygpLnN1YnNjcmliZSgoKCk9PnRoaXMuYXR0YWNoLmVtaXQoKSkpLHRoaXMuX2RldGFjaFN1YnNjcmlwdGlvbj10LmRldGFjaG1lbnRzKCkuc3Vic2NyaWJlKCgoKT0+dGhpcy5kZXRhY2guZW1pdCgpKSksdC5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKCh0PT57dGhpcy5vdmVybGF5S2V5ZG93bi5uZXh0KHQpLHQua2V5Q29kZSE9PXV6fHx0aGlzLmRpc2FibGVDbG9zZXx8YnoodCl8fCh0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fZGV0YWNoT3ZlcmxheSgpKX0pKSx0aGlzLl9vdmVybGF5UmVmLm91dHNpZGVQb2ludGVyRXZlbnRzKCkuc3Vic2NyaWJlKCh0PT57dGhpcy5vdmVybGF5T3V0c2lkZUNsaWNrLm5leHQodCl9KSl9X2J1aWxkQ29uZmlnKCl7Y29uc3QgdD10aGlzLl9wb3NpdGlvbj10aGlzLnBvc2l0aW9uU3RyYXRlZ3l8fHRoaXMuX2NyZWF0ZVBvc2l0aW9uU3RyYXRlZ3koKSxlPW5ldyBWRih7ZGlyZWN0aW9uOnRoaXMuX2Rpcixwb3NpdGlvblN0cmF0ZWd5OnQsc2Nyb2xsU3RyYXRlZ3k6dGhpcy5zY3JvbGxTdHJhdGVneSxoYXNCYWNrZHJvcDp0aGlzLmhhc0JhY2tkcm9wfSk7cmV0dXJuKHRoaXMud2lkdGh8fDA9PT10aGlzLndpZHRoKSYmKGUud2lkdGg9dGhpcy53aWR0aCksKHRoaXMuaGVpZ2h0fHwwPT09dGhpcy5oZWlnaHQpJiYoZS5oZWlnaHQ9dGhpcy5oZWlnaHQpLCh0aGlzLm1pbldpZHRofHwwPT09dGhpcy5taW5XaWR0aCkmJihlLm1pbldpZHRoPXRoaXMubWluV2lkdGgpLCh0aGlzLm1pbkhlaWdodHx8MD09PXRoaXMubWluSGVpZ2h0KSYmKGUubWluSGVpZ2h0PXRoaXMubWluSGVpZ2h0KSx0aGlzLmJhY2tkcm9wQ2xhc3MmJihlLmJhY2tkcm9wQ2xhc3M9dGhpcy5iYWNrZHJvcENsYXNzKSx0aGlzLnBhbmVsQ2xhc3MmJihlLnBhbmVsQ2xhc3M9dGhpcy5wYW5lbENsYXNzKSxlfV91cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHQpe2NvbnN0IGU9dGhpcy5wb3NpdGlvbnMubWFwKCh0PT4oe29yaWdpblg6dC5vcmlnaW5YLG9yaWdpblk6dC5vcmlnaW5ZLG92ZXJsYXlYOnQub3ZlcmxheVgsb3ZlcmxheVk6dC5vdmVybGF5WSxvZmZzZXRYOnQub2Zmc2V0WHx8dGhpcy5vZmZzZXRYLG9mZnNldFk6dC5vZmZzZXRZfHx0aGlzLm9mZnNldFkscGFuZWxDbGFzczp0LnBhbmVsQ2xhc3N8fHZvaWQgMH0pKSk7cmV0dXJuIHQuc2V0T3JpZ2luKHRoaXMub3JpZ2luLmVsZW1lbnRSZWYpLndpdGhQb3NpdGlvbnMoZSkud2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0aGlzLmZsZXhpYmxlRGltZW5zaW9ucykud2l0aFB1c2godGhpcy5wdXNoKS53aXRoR3Jvd0FmdGVyT3Blbih0aGlzLmdyb3dBZnRlck9wZW4pLndpdGhWaWV3cG9ydE1hcmdpbih0aGlzLnZpZXdwb3J0TWFyZ2luKS53aXRoTG9ja2VkUG9zaXRpb24odGhpcy5sb2NrUG9zaXRpb24pLndpdGhUcmFuc2Zvcm1PcmlnaW5Pbih0aGlzLnRyYW5zZm9ybU9yaWdpblNlbGVjdG9yKX1fY3JlYXRlUG9zaXRpb25TdHJhdGVneSgpe2NvbnN0IHQ9dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5vcmlnaW4uZWxlbWVudFJlZik7cmV0dXJuIHRoaXMuX3VwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodCksdH1fYXR0YWNoT3ZlcmxheSgpe3RoaXMuX292ZXJsYXlSZWY/dGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5oYXNCYWNrZHJvcD10aGlzLmhhc0JhY2tkcm9wOnRoaXMuX2NyZWF0ZU92ZXJsYXkoKSx0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCl8fHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKHRoaXMuX3RlbXBsYXRlUG9ydGFsKSx0aGlzLmhhc0JhY2tkcm9wP3RoaXMuX2JhY2tkcm9wU3Vic2NyaXB0aW9uPXRoaXMuX292ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgodD0+e3RoaXMuYmFja2Ryb3BDbGljay5lbWl0KHQpfSkpOnRoaXMuX2JhY2tkcm9wU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fcG9zaXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnBvc2l0aW9uQ2hhbmdlLm9ic2VydmVycy5sZW5ndGg+MCYmKHRoaXMuX3Bvc2l0aW9uU3Vic2NyaXB0aW9uPXRoaXMuX3Bvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcy5waXBlKEhlKCgoKT0+dGhpcy5wb3NpdGlvbkNoYW5nZS5vYnNlcnZlcnMubGVuZ3RoPjApKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5wb3NpdGlvbkNoYW5nZS5lbWl0KHQpLDA9PT10aGlzLnBvc2l0aW9uQ2hhbmdlLm9ic2VydmVycy5sZW5ndGgmJnRoaXMuX3Bvc2l0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9KSkpfV9kZXRhY2hPdmVybGF5KCl7dGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKSx0aGlzLl9iYWNrZHJvcFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3Bvc2l0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fWdMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxnTCkoU20ocEwpLFNtKFhnKSxTbShlaCksU20odUwpLFNtKEhJLDgpKX0sZ0wuybVkaXI9bG8oe3R5cGU6Z0wsc2VsZWN0b3JzOltbIiIsImNkay1jb25uZWN0ZWQtb3ZlcmxheSIsIiJdLFsiIiwiY29ubmVjdGVkLW92ZXJsYXkiLCIiXSxbIiIsImNka0Nvbm5lY3RlZE92ZXJsYXkiLCIiXV0saW5wdXRzOnt2aWV3cG9ydE1hcmdpbjpbImNka0Nvbm5lY3RlZE92ZXJsYXlWaWV3cG9ydE1hcmdpbiIsInZpZXdwb3J0TWFyZ2luIl0sb3BlbjpbImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIiwib3BlbiJdLGRpc2FibGVDbG9zZTpbImNka0Nvbm5lY3RlZE92ZXJsYXlEaXNhYmxlQ2xvc2UiLCJkaXNhYmxlQ2xvc2UiXSxzY3JvbGxTdHJhdGVneTpbImNka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneSIsInNjcm9sbFN0cmF0ZWd5Il0sb2Zmc2V0WDpbImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRYIiwib2Zmc2V0WCJdLG9mZnNldFk6WyJjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WSIsIm9mZnNldFkiXSxoYXNCYWNrZHJvcDpbImNka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcCIsImhhc0JhY2tkcm9wIl0sbG9ja1Bvc2l0aW9uOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUxvY2tQb3NpdGlvbiIsImxvY2tQb3NpdGlvbiJdLGZsZXhpYmxlRGltZW5zaW9uczpbImNka0Nvbm5lY3RlZE92ZXJsYXlGbGV4aWJsZURpbWVuc2lvbnMiLCJmbGV4aWJsZURpbWVuc2lvbnMiXSxncm93QWZ0ZXJPcGVuOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW4iLCJncm93QWZ0ZXJPcGVuIl0scHVzaDpbImNka0Nvbm5lY3RlZE92ZXJsYXlQdXNoIiwicHVzaCJdLHBvc2l0aW9uczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiLCJwb3NpdGlvbnMiXSxvcmlnaW46WyJjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luIiwib3JpZ2luIl0scG9zaXRpb25TdHJhdGVneTpbImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvblN0cmF0ZWd5IiwicG9zaXRpb25TdHJhdGVneSJdLHdpZHRoOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoIiwid2lkdGgiXSxoZWlnaHQ6WyJjZGtDb25uZWN0ZWRPdmVybGF5SGVpZ2h0IiwiaGVpZ2h0Il0sbWluV2lkdGg6WyJjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGgiLCJtaW5XaWR0aCJdLG1pbkhlaWdodDpbImNka0Nvbm5lY3RlZE92ZXJsYXlNaW5IZWlnaHQiLCJtaW5IZWlnaHQiXSxiYWNrZHJvcENsYXNzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3MiLCJiYWNrZHJvcENsYXNzIl0scGFuZWxDbGFzczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzIiwicGFuZWxDbGFzcyJdLHRyYW5zZm9ybU9yaWdpblNlbGVjdG9yOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVRyYW5zZm9ybU9yaWdpbk9uIiwidHJhbnNmb3JtT3JpZ2luU2VsZWN0b3IiXX0sb3V0cHV0czp7YmFja2Ryb3BDbGljazoiYmFja2Ryb3BDbGljayIscG9zaXRpb25DaGFuZ2U6InBvc2l0aW9uQ2hhbmdlIixhdHRhY2g6ImF0dGFjaCIsZGV0YWNoOiJkZXRhY2giLG92ZXJsYXlLZXlkb3duOiJvdmVybGF5S2V5ZG93biIsb3ZlcmxheU91dHNpZGVDbGljazoib3ZlcmxheU91dHNpZGVDbGljayJ9LGV4cG9ydEFzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheSJdLGZlYXR1cmVzOltCb119KSxnTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnBMfSx7dHlwZTpYZ30se3R5cGU6ZWh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlt1TF19XX0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX1dLGdMLnByb3BEZWNvcmF0b3JzPXtvcmlnaW46W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luIl19XSxwb3NpdGlvbnM6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zIl19XSxwb3NpdGlvblN0cmF0ZWd5Olt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uU3RyYXRlZ3kiXX1dLG9mZnNldFg6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WCJdfV0sb2Zmc2V0WTpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRZIl19XSx3aWR0aDpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aCJdfV0saGVpZ2h0Olt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUhlaWdodCJdfV0sbWluV2lkdGg6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGgiXX1dLG1pbkhlaWdodDpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlNaW5IZWlnaHQiXX1dLGJhY2tkcm9wQ2xhc3M6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcyJdfV0scGFuZWxDbGFzczpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzIl19XSx2aWV3cG9ydE1hcmdpbjpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlWaWV3cG9ydE1hcmdpbiJdfV0sc2Nyb2xsU3RyYXRlZ3k6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3kiXX1dLG9wZW46W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5T3BlbiJdfV0sZGlzYWJsZUNsb3NlOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheURpc2FibGVDbG9zZSJdfV0sdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3I6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5VHJhbnNmb3JtT3JpZ2luT24iXX1dLGhhc0JhY2tkcm9wOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wIl19XSxsb2NrUG9zaXRpb246W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5TG9ja1Bvc2l0aW9uIl19XSxmbGV4aWJsZURpbWVuc2lvbnM6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5RmxleGlibGVEaW1lbnNpb25zIl19XSxncm93QWZ0ZXJPcGVuOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW4iXX1dLHB1c2g6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5UHVzaCJdfV0sYmFja2Ryb3BDbGljazpbe3R5cGU6T3l9XSxwb3NpdGlvbkNoYW5nZTpbe3R5cGU6T3l9XSxhdHRhY2g6W3t0eXBlOk95fV0sZGV0YWNoOlt7dHlwZTpPeX1dLG92ZXJsYXlLZXlkb3duOlt7dHlwZTpPeX1dLG92ZXJsYXlPdXRzaWRlQ2xpY2s6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZ0wsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nkay1jb25uZWN0ZWQtb3ZlcmxheV0sIFtjb25uZWN0ZWQtb3ZlcmxheV0sIFtjZGtDb25uZWN0ZWRPdmVybGF5XSIsZXhwb3J0QXM6ImNka0Nvbm5lY3RlZE92ZXJsYXkifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6cEx9LHt0eXBlOlhnfSx7dHlwZTplaH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3VMXX1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV19KSx7dmlld3BvcnRNYXJnaW46W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5Vmlld3BvcnRNYXJnaW4iXX1dLG9wZW46W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5T3BlbiJdfV0sZGlzYWJsZUNsb3NlOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheURpc2FibGVDbG9zZSJdfV0sYmFja2Ryb3BDbGljazpbe3R5cGU6T3l9XSxwb3NpdGlvbkNoYW5nZTpbe3R5cGU6T3l9XSxhdHRhY2g6W3t0eXBlOk95fV0sZGV0YWNoOlt7dHlwZTpPeX1dLG92ZXJsYXlLZXlkb3duOlt7dHlwZTpPeX1dLG92ZXJsYXlPdXRzaWRlQ2xpY2s6W3t0eXBlOk95fV0sc2Nyb2xsU3RyYXRlZ3k6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3kiXX1dLG9mZnNldFg6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WCJdfV0sb2Zmc2V0WTpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRZIl19XSxoYXNCYWNrZHJvcDpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcCJdfV0sbG9ja1Bvc2l0aW9uOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUxvY2tQb3NpdGlvbiJdfV0sZmxleGlibGVEaW1lbnNpb25zOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUZsZXhpYmxlRGltZW5zaW9ucyJdfV0sZ3Jvd0FmdGVyT3Blbjpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlHcm93QWZ0ZXJPcGVuIl19XSxwdXNoOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVB1c2giXX1dLHBvc2l0aW9uczpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiXX1dLG9yaWdpbjpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW4iXX1dLHBvc2l0aW9uU3RyYXRlZ3k6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25TdHJhdGVneSJdfV0sd2lkdGg6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5V2lkdGgiXX1dLGhlaWdodDpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlIZWlnaHQiXX1dLG1pbldpZHRoOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheU1pbldpZHRoIl19XSxtaW5IZWlnaHQ6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5TWluSGVpZ2h0Il19XSxiYWNrZHJvcENsYXNzOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3MiXX1dLHBhbmVsQ2xhc3M6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5UGFuZWxDbGFzcyJdfV0sdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3I6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5VHJhbnNmb3JtT3JpZ2luT24iXX1dfSk7Y29uc3QgaEw9e3Byb3ZpZGU6dUwsZGVwczpbcExdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gYkwodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCl9fTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgeUx7fXlMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5TCl9LHlMLsm1bW9kPWFvKHt0eXBlOnlMfSkseUwuybVpbmo9dm4oe3Byb3ZpZGVyczpbcEwsaExdLGltcG9ydHM6W1tMSSxSRixfRl0sX0ZdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh5TCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W0xJLFJGLF9GXSxleHBvcnRzOltnTCxmTCxfRl0sZGVjbGFyYXRpb25zOltnTCxmTF0scHJvdmlkZXJzOltwTCxoTF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyh5TCx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2dMLGZMXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltMSSxSRixfRl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bZ0wsZkwsX0ZdfX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIF9MIGV4dGVuZHMgUUZ7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpfW5nT25EZXN0cm95KCl7c3VwZXIubmdPbkRlc3Ryb3koKSx0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lJiZ0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXImJnRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5fZnVsbFNjcmVlbkV2ZW50TmFtZSx0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXIpfV9jcmVhdGVDb250YWluZXIoKXtzdXBlci5fY3JlYXRlQ29udGFpbmVyKCksdGhpcy5fYWRqdXN0UGFyZW50Rm9yRnVsbHNjcmVlbkNoYW5nZSgpLHRoaXMuX2FkZEZ1bGxzY3JlZW5DaGFuZ2VMaXN0ZW5lcigoKCk9PnRoaXMuX2FkanVzdFBhcmVudEZvckZ1bGxzY3JlZW5DaGFuZ2UoKSkpfV9hZGp1c3RQYXJlbnRGb3JGdWxsc2NyZWVuQ2hhbmdlKCl7dGhpcy5fY29udGFpbmVyRWxlbWVudCYmKHRoaXMuZ2V0RnVsbHNjcmVlbkVsZW1lbnQoKXx8dGhpcy5fZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQodGhpcy5fY29udGFpbmVyRWxlbWVudCl9X2FkZEZ1bGxzY3JlZW5DaGFuZ2VMaXN0ZW5lcih0KXtjb25zdCBlPXRoaXMuX2dldEV2ZW50TmFtZSgpO2UmJih0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXImJnRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXIpLHRoaXMuX2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoZSx0KSx0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXI9dCl9X2dldEV2ZW50TmFtZSgpe2lmKCF0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lKXtjb25zdCB0PXRoaXMuX2RvY3VtZW50O3QuZnVsbHNjcmVlbkVuYWJsZWQ/dGhpcy5fZnVsbFNjcmVlbkV2ZW50TmFtZT0iZnVsbHNjcmVlbmNoYW5nZSI6dC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZD90aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lPSJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIjp0Lm1vekZ1bGxTY3JlZW5FbmFibGVkP3RoaXMuX2Z1bGxTY3JlZW5FdmVudE5hbWU9Im1vemZ1bGxzY3JlZW5jaGFuZ2UiOnQubXNGdWxsc2NyZWVuRW5hYmxlZCYmKHRoaXMuX2Z1bGxTY3JlZW5FdmVudE5hbWU9Ik1TRnVsbHNjcmVlbkNoYW5nZSIpfXJldHVybiB0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lfWdldEZ1bGxzY3JlZW5FbGVtZW50KCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudDtyZXR1cm4gdC5mdWxsc2NyZWVuRWxlbWVudHx8dC53ZWJraXRGdWxsc2NyZWVuRWxlbWVudHx8dC5tb3pGdWxsU2NyZWVuRWxlbWVudHx8dC5tc0Z1bGxzY3JlZW5FbGVtZW50fHxudWxsfX1fTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8X0wpKHZyKFpfKSx2cih3eikpfSxfTC7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgX0wodnIoWl8pLHZyKHd6KSl9LHRva2VuOl9MLHByb3ZpZGVkSW46InJvb3QifSksX0wuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChfTCxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp3en1dfSksbnVsbCk7Y2xhc3MgQ0x7fUNMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDTCl9LENMLsm1bW9kPWFvKHt0eXBlOkNMfSksQ0wuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQ0wsW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBNTD1uZXcgU2V0O2xldCB2TDtjbGFzcyB4THtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9wbGF0Zm9ybT10LHRoaXMuX21hdGNoTWVkaWE9dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiZ3aW5kb3cubWF0Y2hNZWRpYT93aW5kb3cubWF0Y2hNZWRpYS5iaW5kKHdpbmRvdyk6T0x9bWF0Y2hNZWRpYSh0KXtyZXR1cm4gdGhpcy5fcGxhdGZvcm0uV0VCS0lUJiYoZnVuY3Rpb24gZSh0KXtpZighTUwuaGFzKHQpKXRyeXt2THx8KHZMPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksdkwuc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9jc3MiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHZMKSksdkwuc2hlZXQmJih2TC5zaGVldC5pbnNlcnRSdWxlKGBAbWVkaWEgJHt0fSB7LmZ4LXF1ZXJ5LXRlc3R7IH19YCwwKSxNTC5hZGQodCkpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IodCl9fSkodCksdGhpcy5fbWF0Y2hNZWRpYSh0KX19ZnVuY3Rpb24gT0wodCl7cmV0dXJue21hdGNoZXM6ImFsbCI9PT10fHwiIj09PXQsbWVkaWE6dCxhZGRMaXN0ZW5lcjooKT0+e30scmVtb3ZlTGlzdGVuZXI6KCk9Pnt9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICoveEwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHhMKSh2cih3eikpfSx4TC7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgeEwodnIod3opKX0sdG9rZW46eEwscHJvdmlkZWRJbjoicm9vdCJ9KSx4TC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnd6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh4TCxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6d3p9XX0pLG51bGwpO2NsYXNzIFBMe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fbWVkaWFNYXRjaGVyPXQsdGhpcy5fem9uZT1lLHRoaXMuX3F1ZXJpZXM9bmV3IE1hcCx0aGlzLl9kZXN0cm95U3ViamVjdD1uZXcgSX1uZ09uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3lTdWJqZWN0Lm5leHQoKSx0aGlzLl9kZXN0cm95U3ViamVjdC5jb21wbGV0ZSgpfWlzTWF0Y2hlZCh0KXtyZXR1cm4gd0woTXoodCkpLnNvbWUoKHQ9PnRoaXMuX3JlZ2lzdGVyUXVlcnkodCkubXFsLm1hdGNoZXMpKX1vYnNlcnZlKHQpe2xldCBlPVd0KHdMKE16KHQpKS5tYXAoKHQ9PnRoaXMuX3JlZ2lzdGVyUXVlcnkodCkub2JzZXJ2YWJsZSkpKTtyZXR1cm4gZT1KdChlLnBpcGUoYmUoMSkpLGUucGlwZShUZSgxKSxnZSgwKSkpLGUucGlwZShJdCgodD0+e2NvbnN0IGU9e21hdGNoZXM6ITEsYnJlYWtwb2ludHM6e319O3JldHVybiB0LmZvckVhY2goKCh7bWF0Y2hlczp0LHF1ZXJ5Om59KT0+e2UubWF0Y2hlcz1lLm1hdGNoZXN8fHQsZS5icmVha3BvaW50c1tuXT10fSkpLGV9KSkpfV9yZWdpc3RlclF1ZXJ5KHQpe2lmKHRoaXMuX3F1ZXJpZXMuaGFzKHQpKXJldHVybiB0aGlzLl9xdWVyaWVzLmdldCh0KTtjb25zdCBlPXRoaXMuX21lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKHQpLG49e29ic2VydmFibGU6bmV3IEQoKHQ9Pntjb25zdCBuPWU9PnRoaXMuX3pvbmUucnVuKCgoKT0+dC5uZXh0KGUpKSk7cmV0dXJuIGUuYWRkTGlzdGVuZXIobiksKCk9PntlLnJlbW92ZUxpc3RlbmVyKG4pfX0pKS5waXBlKE5lKGUpLEl0KCgoe21hdGNoZXM6ZX0pPT4oe3F1ZXJ5OnQsbWF0Y2hlczplfSkpKSxJZSh0aGlzLl9kZXN0cm95U3ViamVjdCkpLG1xbDplfTtyZXR1cm4gdGhpcy5fcXVlcmllcy5zZXQodCxuKSxufX1mdW5jdGlvbiB3TCh0KXtyZXR1cm4gdC5tYXAoKHQ9PnQuc3BsaXQoIiwiKSkpLnJlZHVjZSgoKHQsZSk9PnQuY29uY2F0KGUpKSkubWFwKCh0PT50LnRyaW0oKSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBrTCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMSksUm0oMSwiYnV0dG9uIiwyKSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkuYWN0aW9uKCl9KSksa3UoMiksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO3JjKDIpLFN1KHQuZGF0YS5hY3Rpb24pfX1mdW5jdGlvbiBTTCh0LGUpe31QTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UEwpKHZyKHhMKSx2cihhXykpfSxQTC7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgUEwodnIoeEwpLHZyKGFfKSl9LHRva2VuOlBMLHByb3ZpZGVkSW46InJvb3QifSksUEwuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp4TH0se3R5cGU6YV99XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFBMLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp4TH0se3R5cGU6YV99XX0pLG51bGwpO2NvbnN0IERMPW5ldyBHYSgiTWF0U25hY2tCYXJEYXRhIik7Y2xhc3MgRUx7Y29uc3RydWN0b3IoKXt0aGlzLnBvbGl0ZW5lc3M9ImFzc2VydGl2ZSIsdGhpcy5hbm5vdW5jZW1lbnRNZXNzYWdlPSIiLHRoaXMuZHVyYXRpb249MCx0aGlzLmRhdGE9bnVsbCx0aGlzLmhvcml6b250YWxQb3NpdGlvbj0iY2VudGVyIix0aGlzLnZlcnRpY2FsUG9zaXRpb249ImJvdHRvbSJ9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBSTD1NYXRoLnBvdygyLDMxKS0xO2NsYXNzIEFMe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fb3ZlcmxheVJlZj1lLHRoaXMuX2FmdGVyRGlzbWlzc2VkPW5ldyBJLHRoaXMuX2FmdGVyT3BlbmVkPW5ldyBJLHRoaXMuX29uQWN0aW9uPW5ldyBJLHRoaXMuX2Rpc21pc3NlZEJ5QWN0aW9uPSExLHRoaXMuY29udGFpbmVySW5zdGFuY2U9dCx0aGlzLm9uQWN0aW9uKCkuc3Vic2NyaWJlKCgoKT0+dGhpcy5kaXNtaXNzKCkpKSx0Ll9vbkV4aXQuc3Vic2NyaWJlKCgoKT0+dGhpcy5fZmluaXNoRGlzbWlzcygpKSl9ZGlzbWlzcygpe3RoaXMuX2FmdGVyRGlzbWlzc2VkLmNsb3NlZHx8dGhpcy5jb250YWluZXJJbnN0YW5jZS5leGl0KCksY2xlYXJUaW1lb3V0KHRoaXMuX2R1cmF0aW9uVGltZW91dElkKX1kaXNtaXNzV2l0aEFjdGlvbigpe3RoaXMuX29uQWN0aW9uLmNsb3NlZHx8KHRoaXMuX2Rpc21pc3NlZEJ5QWN0aW9uPSEwLHRoaXMuX29uQWN0aW9uLm5leHQoKSx0aGlzLl9vbkFjdGlvbi5jb21wbGV0ZSgpKSxjbGVhclRpbWVvdXQodGhpcy5fZHVyYXRpb25UaW1lb3V0SWQpfWNsb3NlV2l0aEFjdGlvbigpe3RoaXMuZGlzbWlzc1dpdGhBY3Rpb24oKX1fZGlzbWlzc0FmdGVyKHQpe3RoaXMuX2R1cmF0aW9uVGltZW91dElkPXNldFRpbWVvdXQoKCgpPT50aGlzLmRpc21pc3MoKSksTWF0aC5taW4odCxSTCkpfV9vcGVuKCl7dGhpcy5fYWZ0ZXJPcGVuZWQuY2xvc2VkfHwodGhpcy5fYWZ0ZXJPcGVuZWQubmV4dCgpLHRoaXMuX2FmdGVyT3BlbmVkLmNvbXBsZXRlKCkpfV9maW5pc2hEaXNtaXNzKCl7dGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCksdGhpcy5fb25BY3Rpb24uY2xvc2VkfHx0aGlzLl9vbkFjdGlvbi5jb21wbGV0ZSgpLHRoaXMuX2FmdGVyRGlzbWlzc2VkLm5leHQoe2Rpc21pc3NlZEJ5QWN0aW9uOnRoaXMuX2Rpc21pc3NlZEJ5QWN0aW9ufSksdGhpcy5fYWZ0ZXJEaXNtaXNzZWQuY29tcGxldGUoKSx0aGlzLl9kaXNtaXNzZWRCeUFjdGlvbj0hMX1hZnRlckRpc21pc3NlZCgpe3JldHVybiB0aGlzLl9hZnRlckRpc21pc3NlZH1hZnRlck9wZW5lZCgpe3JldHVybiB0aGlzLmNvbnRhaW5lckluc3RhbmNlLl9vbkVudGVyfW9uQWN0aW9uKCl7cmV0dXJuIHRoaXMuX29uQWN0aW9ufX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgVEx7Y29uc3RydWN0b3IodCxlKXt0aGlzLnNuYWNrQmFyUmVmPXQsdGhpcy5kYXRhPWV9YWN0aW9uKCl7dGhpcy5zbmFja0JhclJlZi5kaXNtaXNzV2l0aEFjdGlvbigpfWdldCBoYXNBY3Rpb24oKXtyZXR1cm4hIXRoaXMuZGF0YS5hY3Rpb259fVRMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUTCkoU20oQUwpLFNtKERMKSl9LFRMLsm1Y21wPXRvKHt0eXBlOlRMLHNlbGVjdG9yczpbWyJzaW1wbGUtc25hY2stYmFyIl1dLGhvc3RBdHRyczpbMSwibWF0LXNpbXBsZS1zbmFja2JhciJdLGRlY2xzOjMsdmFyczoyLGNvbnN0czpbWyJjbGFzcyIsIm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIiw0LCJuZ0lmIl0sWzEsIm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIl0sWyJtYXQtYnV0dG9uIiwiIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwic3BhbiIpLGt1KDEpLEFtKCksUXAoMixrTCwzLDEsImRpdiIsMCkpLDImZSYmKHJjKDEpLFN1KG4uZGF0YS5tZXNzYWdlKSxyYygxKSxEbSgibmdJZiIsbi5oYXNBY3Rpb24pKX0sZGlyZWN0aXZlczpbZE0sWEhdLHN0eWxlczpbIi5tYXQtc2ltcGxlLXNuYWNrYmFye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7bGluZS1oZWlnaHQ6MjBweDtvcGFjaXR5OjF9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9ue2ZsZXgtc2hyaW5rOjA7bWFyZ2luOi04cHggLThweCAtOHB4IDhweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24gYnV0dG9ue21heC1oZWlnaHQ6MzZweDttaW4td2lkdGg6MH1bZGlyPXJ0bF0gLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9ue21hcmdpbi1sZWZ0Oi04cHg7bWFyZ2luLXJpZ2h0OjhweH1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLFRMLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6QUx9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltETF19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVEwsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic2ltcGxlLXNuYWNrLWJhciIsdGVtcGxhdGU6JzxzcGFuPnt7ZGF0YS5tZXNzYWdlfX08L3NwYW4+XG48ZGl2IGNsYXNzPSJtYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiIgICpuZ0lmPSJoYXNBY3Rpb24iPlxuICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT0iYWN0aW9uKCkiPnt7ZGF0YS5hY3Rpb259fTwvYnV0dG9uPlxuPC9kaXY+XG4nLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLGhvc3Q6e2NsYXNzOiJtYXQtc2ltcGxlLXNuYWNrYmFyIn0sc3R5bGVzOlsiLm1hdC1zaW1wbGUtc25hY2tiYXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtsaW5lLWhlaWdodDoyMHB4O29wYWNpdHk6MX0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb257ZmxleC1zaHJpbms6MDttYXJnaW46LThweCAtOHB4IC04cHggOHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiBidXR0b257bWF4LWhlaWdodDozNnB4O21pbi13aWR0aDowfVtkaXI9cnRsXSAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb257bWFyZ2luLWxlZnQ6LThweDttYXJnaW4tcmlnaHQ6OHB4fVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpBTH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0RMXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IE5MPXtzbmFja0JhclN0YXRlOm54KCJzdGF0ZSIsW3J4KCJ2b2lkLCBoaWRkZW4iLGF4KHt0cmFuc2Zvcm06InNjYWxlKDAuOCkiLG9wYWNpdHk6MH0pKSxyeCgidmlzaWJsZSIsYXgoe3RyYW5zZm9ybToic2NhbGUoMSkiLG9wYWNpdHk6MX0pKSxseCgiKiA9PiB2aXNpYmxlIixveCgiMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiKSksbHgoIiogPT4gdm9pZCwgKiA9PiBoaWRkZW4iLG94KCI3NW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMSwgMSkiLGF4KHtvcGFjaXR5OjB9KSkpXSl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB6TCBleHRlbmRzIFBGe2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7c3VwZXIoKSx0aGlzLl9uZ1pvbmU9dCx0aGlzLl9lbGVtZW50UmVmPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9bix0aGlzLl9wbGF0Zm9ybT1vLHRoaXMuc25hY2tCYXJDb25maWc9aSx0aGlzLl9hbm5vdW5jZURlbGF5PTE1MCx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fb25Bbm5vdW5jZT1uZXcgSSx0aGlzLl9vbkV4aXQ9bmV3IEksdGhpcy5fb25FbnRlcj1uZXcgSSx0aGlzLl9hbmltYXRpb25TdGF0ZT0idm9pZCIsdGhpcy5hdHRhY2hEb21Qb3J0YWw9dD0+KHRoaXMuX2Fzc2VydE5vdEF0dGFjaGVkKCksdGhpcy5fYXBwbHlTbmFja0JhckNsYXNzZXMoKSx0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoRG9tUG9ydGFsKHQpKSx0aGlzLl9saXZlPSJhc3NlcnRpdmUiIT09aS5wb2xpdGVuZXNzfHxpLmFubm91bmNlbWVudE1lc3NhZ2U/Im9mZiI9PT1pLnBvbGl0ZW5lc3M/Im9mZiI6InBvbGl0ZSI6ImFzc2VydGl2ZSIsdGhpcy5fcGxhdGZvcm0uRklSRUZPWCYmKCJwb2xpdGUiPT09dGhpcy5fbGl2ZSYmKHRoaXMuX3JvbGU9InN0YXR1cyIpLCJhc3NlcnRpdmUiPT09dGhpcy5fbGl2ZSYmKHRoaXMuX3JvbGU9ImFsZXJ0IikpfWF0dGFjaENvbXBvbmVudFBvcnRhbCh0KXtyZXR1cm4gdGhpcy5fYXNzZXJ0Tm90QXR0YWNoZWQoKSx0aGlzLl9hcHBseVNuYWNrQmFyQ2xhc3NlcygpLHRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2hDb21wb25lbnRQb3J0YWwodCl9YXR0YWNoVGVtcGxhdGVQb3J0YWwodCl7cmV0dXJuIHRoaXMuX2Fzc2VydE5vdEF0dGFjaGVkKCksdGhpcy5fYXBwbHlTbmFja0JhckNsYXNzZXMoKSx0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwodCl9b25BbmltYXRpb25FbmQodCl7Y29uc3R7ZnJvbVN0YXRlOmUsdG9TdGF0ZTpufT10O2lmKCgidm9pZCI9PT1uJiYidm9pZCIhPT1lfHwiaGlkZGVuIj09PW4pJiZ0aGlzLl9jb21wbGV0ZUV4aXQoKSwidmlzaWJsZSI9PT1uKXtjb25zdCB0PXRoaXMuX29uRW50ZXI7dGhpcy5fbmdab25lLnJ1bigoKCk9Pnt0Lm5leHQoKSx0LmNvbXBsZXRlKCl9KSl9fWVudGVyKCl7dGhpcy5fZGVzdHJveWVkfHwodGhpcy5fYW5pbWF0aW9uU3RhdGU9InZpc2libGUiLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSx0aGlzLl9zY3JlZW5SZWFkZXJBbm5vdW5jZSgpKX1leGl0KCl7cmV0dXJuIHRoaXMuX2FuaW1hdGlvblN0YXRlPSJoaWRkZW4iLHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1hdC1leGl0IiwiIiksY2xlYXJUaW1lb3V0KHRoaXMuX2Fubm91bmNlVGltZW91dElkKSx0aGlzLl9vbkV4aXR9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5fY29tcGxldGVFeGl0KCl9X2NvbXBsZXRlRXhpdCgpe3RoaXMuX25nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUoYmUoMSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9vbkV4aXQubmV4dCgpLHRoaXMuX29uRXhpdC5jb21wbGV0ZSgpfSkpfV9hcHBseVNuYWNrQmFyQ2xhc3Nlcygpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LGU9dGhpcy5zbmFja0JhckNvbmZpZy5wYW5lbENsYXNzO2UmJihBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaCgoZT0+dC5jbGFzc0xpc3QuYWRkKGUpKSk6dC5jbGFzc0xpc3QuYWRkKGUpKSwiY2VudGVyIj09PXRoaXMuc25hY2tCYXJDb25maWcuaG9yaXpvbnRhbFBvc2l0aW9uJiZ0LmNsYXNzTGlzdC5hZGQoIm1hdC1zbmFjay1iYXItY2VudGVyIiksInRvcCI9PT10aGlzLnNuYWNrQmFyQ29uZmlnLnZlcnRpY2FsUG9zaXRpb24mJnQuY2xhc3NMaXN0LmFkZCgibWF0LXNuYWNrLWJhci10b3AiKX1fYXNzZXJ0Tm90QXR0YWNoZWQoKXtpZih0aGlzLl9wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGF0dGFjaCBzbmFjayBiYXIgY29udGVudCBhZnRlciBjb250ZW50IGlzIGFscmVhZHkgYXR0YWNoZWQiKX1fc2NyZWVuUmVhZGVyQW5ub3VuY2UoKXt0aGlzLl9hbm5vdW5jZVRpbWVvdXRJZHx8dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3RoaXMuX2Fubm91bmNlVGltZW91dElkPXNldFRpbWVvdXQoKCgpPT57Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigiW2FyaWEtaGlkZGVuXSIpLGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIlthcmlhLWxpdmVdIik7aWYodCYmZSl7bGV0IG49bnVsbDt0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmKG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCksdC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiksZS5hcHBlbmRDaGlsZCh0KSxudWxsPT1ufHxuLmZvY3VzKCksdGhpcy5fb25Bbm5vdW5jZS5uZXh0KCksdGhpcy5fb25Bbm5vdW5jZS5jb21wbGV0ZSgpfX0pLHRoaXMuX2Fubm91bmNlRGVsYXkpfSkpfX16TC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ekwpKFNtKGFfKSxTbShoZyksU20oVWcpLFNtKHd6KSxTbShFTCkpfSx6TC7JtWNtcD10byh7dHlwZTp6TCxzZWxlY3RvcnM6W1sic25hY2stYmFyLWNvbnRhaW5lciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoREYsNyksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5fcG9ydGFsT3V0bGV0PXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtc25hY2stYmFyLWNvbnRhaW5lciJdLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJmptKCJAc3RhdGUuZG9uZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25BbmltYXRpb25FbmQoZSl9KSksMiZlJiZOdSgiQHN0YXRlIixuLl9hbmltYXRpb25TdGF0ZSl9LGZlYXR1cmVzOlt4cF0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbImFyaWEtaGlkZGVuIiwidHJ1ZSJdLFsiY2RrUG9ydGFsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDApLFFwKDEsU0wsMCwwLCJuZy10ZW1wbGF0ZSIsMSksQW0oKSxUbSgyLCJkaXYiKSksMiZlJiYocmMoMiksanAoImFyaWEtbGl2ZSIsbi5fbGl2ZSkoInJvbGUiLG4uX3JvbGUpKX0sZGlyZWN0aXZlczpbREZdLHN0eWxlczpbIi5tYXQtc25hY2stYmFyLWNvbnRhaW5lcntib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jazttYXJnaW46MjRweDttYXgtd2lkdGg6MzN2dzttaW4td2lkdGg6MzQ0cHg7cGFkZGluZzoxNHB4IDE2cHg7bWluLWhlaWdodDo0OHB4O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbmFjay1iYXItY29udGFpbmVye2JvcmRlcjpzb2xpZCAxcHh9Lm1hdC1zbmFjay1iYXItaGFuZHNldHt3aWR0aDoxMDAlfS5tYXQtc25hY2stYmFyLWhhbmRzZXQgLm1hdC1zbmFjay1iYXItY29udGFpbmVye21hcmdpbjo4cHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7d2lkdGg6MTAwJX1cbiJdLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246W05MLnNuYWNrQmFyU3RhdGVdfX0pLHpMLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6YV99LHt0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6d3p9LHt0eXBlOkVMfV0sekwucHJvcERlY29yYXRvcnM9e19wb3J0YWxPdXRsZXQ6W3t0eXBlOlphLGFyZ3M6W0RGLHtzdGF0aWM6ITB9XX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHpMLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InNuYWNrLWJhci1jb250YWluZXIiLHRlbXBsYXRlOidceDNjIS0tIEluaXRpYWxseSBob2xkcyB0aGUgc25hY2sgYmFyIGNvbnRlbnQsIHdpbGwgYmUgZW1wdHkgYWZ0ZXIgYW5ub3VuY2luZyB0byBzY3JlZW4gcmVhZGVycy4gLS1ceDNlXG48ZGl2IGFyaWEtaGlkZGVuPSJ0cnVlIj5cbiAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cblx4M2MhLS0gV2lsbCByZWNlaXZlIHRoZSBzbmFjayBiYXIgY29udGVudCBmcm9tIHRoZSBub24tbGl2ZSBkaXYsIG1vdmUgd2lsbCBoYXBwZW4gYSBzaG9ydCBkZWxheSBhZnRlciBvcGVuaW5nIC0tXHgzZVxuPGRpdiBbYXR0ci5hcmlhLWxpdmVdPSJfbGl2ZSIgW2F0dHIucm9sZV09Il9yb2xlIj48L2Rpdj5cbicsY2hhbmdlRGV0ZWN0aW9uOnpuLkRlZmF1bHQsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGFuaW1hdGlvbnM6W05MLnNuYWNrQmFyU3RhdGVdLGhvc3Q6e2NsYXNzOiJtYXQtc25hY2stYmFyLWNvbnRhaW5lciIsIltAc3RhdGVdIjoiX2FuaW1hdGlvblN0YXRlIiwiKEBzdGF0ZS5kb25lKSI6Im9uQW5pbWF0aW9uRW5kKCRldmVudCkifSxzdHlsZXM6WyIubWF0LXNuYWNrLWJhci1jb250YWluZXJ7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjI0cHg7bWF4LXdpZHRoOjMzdnc7bWluLXdpZHRoOjM0NHB4O3BhZGRpbmc6MTRweCAxNnB4O21pbi1oZWlnaHQ6NDhweDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc25hY2stYmFyLWNvbnRhaW5lcntib3JkZXI6c29saWQgMXB4fS5tYXQtc25hY2stYmFyLWhhbmRzZXR7d2lkdGg6MTAwJX0ubWF0LXNuYWNrLWJhci1oYW5kc2V0IC5tYXQtc25hY2stYmFyLWNvbnRhaW5lcnttYXJnaW46OHB4O21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO3dpZHRoOjEwMCV9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmFffSx7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnd6fSx7dHlwZTpFTH1dfSkse19wb3J0YWxPdXRsZXQ6W3t0eXBlOlphLGFyZ3M6W0RGLHtzdGF0aWM6ITB9XX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBJTHt9SUwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fElMKX0sSUwuybVtb2Q9YW8oe3R5cGU6SUx9KSxJTC7JtWluaj12bih7aW1wb3J0czpbW3lMLFJGLFdNLEpILFhJXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElMLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbeUwsUkYsV00sSkgsWEldLGV4cG9ydHM6W3pMLFhJXSxkZWNsYXJhdGlvbnM6W3pMLFRMXSxlbnRyeUNvbXBvbmVudHM6W3pMLFRMXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKElMLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bekwsVExdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3lMLFJGLFdNLEpILFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVyblt6TCxYSV19fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBITD1uZXcgR2EoIm1hdC1zbmFjay1iYXItZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBGTCgpe3JldHVybiBuZXcgRUx9fSk7Y2xhc3MgTEx7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe3RoaXMuX292ZXJsYXk9dCx0aGlzLl9saXZlPWUsdGhpcy5faW5qZWN0b3I9bix0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXI9byx0aGlzLl9wYXJlbnRTbmFja0Jhcj1pLHRoaXMuX2RlZmF1bHRDb25maWc9YSx0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsPW51bGwsdGhpcy5zaW1wbGVTbmFja0JhckNvbXBvbmVudD1UTCx0aGlzLnNuYWNrQmFyQ29udGFpbmVyQ29tcG9uZW50PXpMLHRoaXMuaGFuZHNldENzc0NsYXNzPSJtYXQtc25hY2stYmFyLWhhbmRzZXQifWdldCBfb3BlbmVkU25hY2tCYXJSZWYoKXtjb25zdCB0PXRoaXMuX3BhcmVudFNuYWNrQmFyO3JldHVybiB0P3QuX29wZW5lZFNuYWNrQmFyUmVmOnRoaXMuX3NuYWNrQmFyUmVmQXRUaGlzTGV2ZWx9c2V0IF9vcGVuZWRTbmFja0JhclJlZih0KXt0aGlzLl9wYXJlbnRTbmFja0Jhcj90aGlzLl9wYXJlbnRTbmFja0Jhci5fb3BlbmVkU25hY2tCYXJSZWY9dDp0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsPXR9b3BlbkZyb21Db21wb25lbnQodCxlKXtyZXR1cm4gdGhpcy5fYXR0YWNoKHQsZSl9b3BlbkZyb21UZW1wbGF0ZSh0LGUpe3JldHVybiB0aGlzLl9hdHRhY2godCxlKX1vcGVuKHQsZT0iIixuKXtjb25zdCBvPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLl9kZWZhdWx0Q29uZmlnKSxuKTtyZXR1cm4gby5kYXRhPXttZXNzYWdlOnQsYWN0aW9uOmV9LG8uYW5ub3VuY2VtZW50TWVzc2FnZT09PXQmJihvLmFubm91bmNlbWVudE1lc3NhZ2U9dm9pZCAwKSx0aGlzLm9wZW5Gcm9tQ29tcG9uZW50KHRoaXMuc2ltcGxlU25hY2tCYXJDb21wb25lbnQsbyl9ZGlzbWlzcygpe3RoaXMuX29wZW5lZFNuYWNrQmFyUmVmJiZ0aGlzLl9vcGVuZWRTbmFja0JhclJlZi5kaXNtaXNzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsJiZ0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsLmRpc21pc3MoKX1fYXR0YWNoU25hY2tCYXJDb250YWluZXIodCxlKXtjb25zdCBuPXJwLmNyZWF0ZSh7cGFyZW50OmUmJmUudmlld0NvbnRhaW5lclJlZiYmZS52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yfHx0aGlzLl9pbmplY3Rvcixwcm92aWRlcnM6W3twcm92aWRlOkVMLHVzZVZhbHVlOmV9XX0pLG89bmV3IHZGKHRoaXMuc25hY2tCYXJDb250YWluZXJDb21wb25lbnQsZS52aWV3Q29udGFpbmVyUmVmLG4pLGk9dC5hdHRhY2gobyk7cmV0dXJuIGkuaW5zdGFuY2Uuc25hY2tCYXJDb25maWc9ZSxpLmluc3RhbmNlfV9hdHRhY2godCxlKXtjb25zdCBuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG5ldyBFTCksdGhpcy5fZGVmYXVsdENvbmZpZyksZSksbz10aGlzLl9jcmVhdGVPdmVybGF5KG4pLGk9dGhpcy5fYXR0YWNoU25hY2tCYXJDb250YWluZXIobyxuKSxhPW5ldyBBTChpLG8pO2lmKHQgaW5zdGFuY2VvZiBYZyl7Y29uc3QgZT1uZXcgeEYodCxudWxsLHskaW1wbGljaXQ6bi5kYXRhLHNuYWNrQmFyUmVmOmF9KTthLmluc3RhbmNlPWkuYXR0YWNoVGVtcGxhdGVQb3J0YWwoZSl9ZWxzZXtjb25zdCBlPXRoaXMuX2NyZWF0ZUluamVjdG9yKG4sYSksbz1uZXcgdkYodCx2b2lkIDAsZSkscj1pLmF0dGFjaENvbXBvbmVudFBvcnRhbChvKTthLmluc3RhbmNlPXIuaW5zdGFuY2V9cmV0dXJuIHRoaXMuX2JyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKCIobWF4LXdpZHRoOiA1OTkuOThweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIikucGlwZShJZShvLmRldGFjaG1lbnRzKCkpKS5zdWJzY3JpYmUoKHQ9Pntjb25zdCBlPW8ub3ZlcmxheUVsZW1lbnQuY2xhc3NMaXN0O3QubWF0Y2hlcz9lLmFkZCh0aGlzLmhhbmRzZXRDc3NDbGFzcyk6ZS5yZW1vdmUodGhpcy5oYW5kc2V0Q3NzQ2xhc3MpfSkpLG4uYW5ub3VuY2VtZW50TWVzc2FnZSYmaS5fb25Bbm5vdW5jZS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fbGl2ZS5hbm5vdW5jZShuLmFubm91bmNlbWVudE1lc3NhZ2Usbi5wb2xpdGVuZXNzKX0pKSx0aGlzLl9hbmltYXRlU25hY2tCYXIoYSxuKSx0aGlzLl9vcGVuZWRTbmFja0JhclJlZj1hLHRoaXMuX29wZW5lZFNuYWNrQmFyUmVmfV9hbmltYXRlU25hY2tCYXIodCxlKXt0LmFmdGVyRGlzbWlzc2VkKCkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX29wZW5lZFNuYWNrQmFyUmVmPT10JiYodGhpcy5fb3BlbmVkU25hY2tCYXJSZWY9bnVsbCksZS5hbm5vdW5jZW1lbnRNZXNzYWdlJiZ0aGlzLl9saXZlLmNsZWFyKCl9KSksdGhpcy5fb3BlbmVkU25hY2tCYXJSZWY/KHRoaXMuX29wZW5lZFNuYWNrQmFyUmVmLmFmdGVyRGlzbWlzc2VkKCkuc3Vic2NyaWJlKCgoKT0+e3QuY29udGFpbmVySW5zdGFuY2UuZW50ZXIoKX0pKSx0aGlzLl9vcGVuZWRTbmFja0JhclJlZi5kaXNtaXNzKCkpOnQuY29udGFpbmVySW5zdGFuY2UuZW50ZXIoKSxlLmR1cmF0aW9uJiZlLmR1cmF0aW9uPjAmJnQuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCgpPT50Ll9kaXNtaXNzQWZ0ZXIoZS5kdXJhdGlvbikpKX1fY3JlYXRlT3ZlcmxheSh0KXtjb25zdCBlPW5ldyBWRjtlLmRpcmVjdGlvbj10LmRpcmVjdGlvbjtsZXQgbj10aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCk7Y29uc3Qgbz0icnRsIj09PXQuZGlyZWN0aW9uLGk9ImxlZnQiPT09dC5ob3Jpem9udGFsUG9zaXRpb258fCJzdGFydCI9PT10Lmhvcml6b250YWxQb3NpdGlvbiYmIW98fCJlbmQiPT09dC5ob3Jpem9udGFsUG9zaXRpb24mJm8sYT0haSYmImNlbnRlciIhPT10Lmhvcml6b250YWxQb3NpdGlvbjtyZXR1cm4gaT9uLmxlZnQoIjAiKTphP24ucmlnaHQoIjAiKTpuLmNlbnRlckhvcml6b250YWxseSgpLCJ0b3AiPT09dC52ZXJ0aWNhbFBvc2l0aW9uP24udG9wKCIwIik6bi5ib3R0b20oIjAiKSxlLnBvc2l0aW9uU3RyYXRlZ3k9bix0aGlzLl9vdmVybGF5LmNyZWF0ZShlKX1fY3JlYXRlSW5qZWN0b3IodCxlKXtyZXR1cm4gcnAuY3JlYXRlKHtwYXJlbnQ6dCYmdC52aWV3Q29udGFpbmVyUmVmJiZ0LnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3J8fHRoaXMuX2luamVjdG9yLHByb3ZpZGVyczpbe3Byb3ZpZGU6QUwsdXNlVmFsdWU6ZX0se3Byb3ZpZGU6REwsdXNlVmFsdWU6dC5kYXRhfV19KX19TEwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExMKSh2cihwTCksdnIoT0kpLHZyKHJwKSx2cihQTCksdnIoTEwsMTIpLHZyKEhMKSl9LExMLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBMTCh2cihwTCksdnIoT0kpLHZyKEdkKSx2cihQTCksdnIoTEwsMTIpLHZyKEhMKSl9LHRva2VuOkxMLHByb3ZpZGVkSW46SUx9KSxMTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnBMfSx7dHlwZTpPSX0se3R5cGU6cnB9LHt0eXBlOlBMfSx7dHlwZTpMTCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RXJ9XX0se3R5cGU6RUwsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSExdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKExMLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjpJTH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnBMfSx7dHlwZTpPSX0se3R5cGU6cnB9LHt0eXBlOlBMfSx7dHlwZTpMTCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RXJ9XX0se3R5cGU6RUwsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSExdfV19XX0pLG51bGwpO2NvbnN0IEJMPS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxWTD0iXFx1MDAwMC1cXHUwMDIwXFx1MDA3Zi1cXHUwMDlmIixqTD1uZXcgUmVnRXhwKCIoPzpbYS16QS1aXVthLXpBLVowLTkrLi1dezIsfTpcXC9cXC98ZGF0YTp8d3d3XFwuKVteXFxzIitWTCsnIl17Mix9W15cXHMnK1ZMKyJcIicpfVxcXSw6Oy4hP10iLCJndSIpO2Z1bmN0aW9uIFVMKHQpe3JldHVybihmdW5jdGlvbiBlKHQsbil7bi5mbGFncy5pbmNsdWRlcygiZyIpfHwobj1uZXcgUmVnRXhwKG4sbi5mbGFncysiZyIpKTtjb25zdCBvPVtdO2xldCBpPTA7Zm9yKGNvbnN0IGUgb2YgdC5tYXRjaEFsbChuKSl7Y29uc3Qgbj1lLmluZGV4LGE9ZVswXTtuPmkmJm8ucHVzaCh7aW5kZXg6aSx0ZXh0OnQuc3Vic3RyaW5nKGksbiksbWF0Y2hlc1JlZ2V4OiExfSksby5wdXNoKHtpbmRleDpuLHRleHQ6YSxtYXRjaGVzUmVnZXg6ITB9KSxpPW4rYS5sZW5ndGh9cmV0dXJuIHQubGVuZ3RoPmkmJm8ucHVzaCh7aW5kZXg6aSx0ZXh0OnQuc3Vic3RyaW5nKGksdC5sZW5ndGgpLG1hdGNoZXNSZWdleDohMX0pLG99KSh0LGpMKS5tYXAoKCh7bWF0Y2hlc1JlZ2V4OnQsdGV4dDplfSk9Pih7aXNVUkw6dCx0ZXh0OmV9KSkpfWZ1bmN0aW9uIEdMKHQsZSl7aWYoMSZ0JiYoTm0oMCksa3UoMSksem0oKSksMiZ0KXtjb25zdCB0PVltKCkuJGltcGxpY2l0O3JjKDEpLER1KCIgIix0LnRleHQsIiAiKX19ZnVuY3Rpb24gV0wodCxlKXtpZigxJnQmJihSbSgwLCJhIiw3KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKS4kaW1wbGljaXQ7S20oImhyZWYiLHQudGV4dCxUcykscmMoMSksU3UodC50ZXh0KX19ZnVuY3Rpb24gWUwodCxlKXtpZigxJnQmJihObSgwKSxRcCgxLEdMLDIsMSwibmctY29udGFpbmVyIiw1KSxRcCgyLFdMLDIsMiwibmctdGVtcGxhdGUiLG51bGwsNixpYiksem0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49JHAoMyk7cmMoMSksRG0oIm5nSWYiLCF0LmlzVVJMKSgibmdJZkVsc2UiLG4pfX1mdW5jdGlvbiBxTCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImJ1dHRvbiIsOCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLm9uQWN0aW9uQnV0dG9uQ2xpY2tlZCgpfSkpLGt1KDEpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRHUoIiAiLHQuYWxlcnQuZm9sbG93dXBBY3Rpb24ubG9jYWxpemVkTGFiZWwsIiAiKX19Y2xhc3MgWkx7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuc25hY2tCYXJSZWY9dCx0aGlzLnVua25vd25EYXRhPWUsdGhpcy5zdG9yZT1uLHRoaXMuc3BsaXRCeVVSTD1VTCx0aGlzLmFsZXJ0PWV9b25BY3Rpb25CdXR0b25DbGlja2VkKCl7cmV0dXJuIGdBKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dGhpcy5zbmFja0JhclJlZi5kaXNtaXNzKCk7Y29uc3QgdD15aWVsZCB0aGlzLmFsZXJ0LmZvbGxvd3VwQWN0aW9uLmdldEZvbGxvd3VwQWN0aW9uKHRoaXMuc3RvcmUpO3RoaXMuc3RvcmUuZGlzcGF0Y2godCl9KSl9b25DbG9zZUJ1dHRvbkNsaWNrZWQoKXt0aGlzLnNuYWNrQmFyUmVmLmRpc21pc3MoKX19WkwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFpMKShTbShBTCksU20oREwpLFNtKEl3KSl9LFpMLsm1Y21wPXRvKHt0eXBlOlpMLHNlbGVjdG9yczpbWyJhbGVydC1kaXNwbGF5LXNuYWNrYmFyIl1dLGRlY2xzOjYsdmFyczoyLGNvbnN0czpmdW5jdGlvbigpe2xldCB0O3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJEaXNtaXNzIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0byBjbG9zZSB0aGUgc25hY2tiYXIgbWVzc2FnZeKQn2VhNGQ5ZmU2MTQyMGEzZmNlODFjZjU0YzRjNjE1ZTNjMTljNjQ2YTbikJ8xNTM2MDg3NTE5NzQzNzA3MzYyOkRpc21pc3NgLFtbMSwibWVzc2FnZSJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udHJvbHMiXSxbIm1hdC1idXR0b24iLCIiLCJjbGFzcyIsImZvbGxvd3VwLWJ1dHRvbiIsMywiY2xpY2siLDQsIm5nSWYiXSxbIm1hdC1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LDEsImRpc21pc3MtYnV0dG9uIiwzLCJjbGljayJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImxpbmtQaWVjZSIsIiJdLFsicmVsIiwibm9yZWZlcnJlciBub29wZW5lciIsInRhcmdldCIsIl9ibGFuayIsMywiaHJlZiJdLFsibWF0LWJ1dHRvbiIsIiIsMSwiZm9sbG93dXAtYnV0dG9uIiwzLCJjbGljayJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksUXAoMSxZTCw0LDIsIm5nLWNvbnRhaW5lciIsMSksQW0oKSxSbSgyLCJkaXYiLDIpLFFwKDMscUwsMiwxLCJidXR0b24iLDMpLFJtKDQsImJ1dHRvbiIsNCksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uQ2xvc2VCdXR0b25DbGlja2VkKCl9KSksa3UoNSwiIERpc21pc3MgIiksQW0oKSxBbSgpKSwyJmUmJihyYygxKSxEbSgibmdGb3JPZiIsbi5zcGxpdEJ5VVJMKG4uYWxlcnQubG9jYWxpemVkTWVzc2FnZSkpLHJjKDIpLERtKCJuZ0lmIixuLmFsZXJ0LmZvbGxvd3VwQWN0aW9uKSl9LGRpcmVjdGl2ZXM6W2xNLGRNLFhIXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0ubWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7YWxpZ24tc2VsZjpjZW50ZXI7bWFyZ2luOjVweCAwO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV0gICBhW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjppbmhlcml0fS5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OmF1dG99YnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFpMLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImFsZXJ0LWRpc3BsYXktc25hY2tiYXIiLHRlbXBsYXRlVXJsOiIuL2FsZXJ0X2Rpc3BsYXlfc25hY2tiYXJfY29udGFpbmVyLm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vYWxlcnRfZGlzcGxheV9zbmFja2Jhcl9jb250YWluZXIuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkFMfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbRExdfV19LHt0eXBlOkl3fV19KSxudWxsKTtjbGFzcyBYTHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc3RvcmU9dCx0aGlzLnNuYWNrQmFyPWUsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBJfW5nT25Jbml0KCl7dGhpcy5zdG9yZS5zZWxlY3QoZEEpLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSxjZSgodD0+Qm9vbGVhbih0KSkpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLnNob3dBbGVydCh0KX0pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9c2hvd0FsZXJ0KHQpe3RoaXMuc25hY2tCYXIub3BlbkZyb21Db21wb25lbnQoWkwse2R1cmF0aW9uOjVlMyxob3Jpem9udGFsUG9zaXRpb246InN0YXJ0Iix2ZXJ0aWNhbFBvc2l0aW9uOiJib3R0b20iLGRhdGE6dH0pfX1YTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WEwpKFNtKEl3KSxTbShMTCkpfSxYTC7JtWNtcD10byh7dHlwZTpYTCxzZWxlY3RvcnM6W1siYWxlcnQtc25hY2tiYXIiXV0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYTCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJhbGVydC1zbmFja2JhciIsdGVtcGxhdGU6IiIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fSx7dHlwZTpMTH1dfSksbnVsbCk7Y2xhc3MgS0x7fUtMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxLTCl9LEtMLsm1bW9kPWFvKHt0eXBlOktMfSksS0wuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxKSCxJTF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChLTCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbWEwsWkxdLGV4cG9ydHM6W1hMXSxpbXBvcnRzOltXTSxKSCxJTF0sZW50cnlDb21wb25lbnRzOltaTF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhLTCx7ZGVjbGFyYXRpb25zOltYTCxaTF0saW1wb3J0czpbV00sSkgsSUxdLGV4cG9ydHM6W1hMXX0pO2NsYXNzIEpMe31KTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SkwpfSxKTC7JtW1vZD1hbyh7dHlwZTpKTH0pLEpMLsm1aW5qPXZuKHtpbXBvcnRzOltbQVIsS0wsZGsuZm9yRmVhdHVyZShjQSxweiksV2suZm9yRmVhdHVyZShbY3pdKV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChKTCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W0FSLEtMLGRrLmZvckZlYXR1cmUoY0EscHopLFdrLmZvckZlYXR1cmUoW2N6XSldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oSkwse2ltcG9ydHM6W0FSLEtMLGNrLEdrXX0pO2NvbnN0IFFMPVsiKiIsW1sibWF0LXRvb2xiYXItcm93Il1dXSwkTD1KSShjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSk7Y2xhc3MgdEJ7fXRCLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0Qil9LHRCLsm1ZGlyPWxvKHt0eXBlOnRCLHNlbGVjdG9yczpbWyJtYXQtdG9vbGJhci1yb3ciXV0saG9zdEF0dHJzOlsxLCJtYXQtdG9vbGJhci1yb3ciXSxleHBvcnRBczpbIm1hdFRvb2xiYXJSb3ciXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodEIsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXRvb2xiYXItcm93IixleHBvcnRBczoibWF0VG9vbGJhclJvdyIsaG9zdDp7Y2xhc3M6Im1hdC10b29sYmFyLXJvdyJ9fV19XSxudWxsLG51bGwpO2NsYXNzIGVCIGV4dGVuZHMgJEx7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQpLHRoaXMuX3BsYXRmb3JtPWUsdGhpcy5fZG9jdW1lbnQ9bn1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJih0aGlzLl9jaGVja1Rvb2xiYXJNaXhlZE1vZGVzKCksdGhpcy5fdG9vbGJhclJvd3MuY2hhbmdlcy5zdWJzY3JpYmUoKCgpPT50aGlzLl9jaGVja1Rvb2xiYXJNaXhlZE1vZGVzKCkpKSl9X2NoZWNrVG9vbGJhck1peGVkTW9kZXMoKXt0aGlzLl90b29sYmFyUm93cy5sZW5ndGgmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmQXJyYXkuZnJvbSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2RlcykuZmlsdGVyKCh0PT4hKHQuY2xhc3NMaXN0JiZ0LmNsYXNzTGlzdC5jb250YWlucygibWF0LXRvb2xiYXItcm93IikpKSkuZmlsdGVyKCh0PT50Lm5vZGVUeXBlIT09KHRoaXMuX2RvY3VtZW50P3RoaXMuX2RvY3VtZW50LkNPTU1FTlRfTk9ERTo4KSkpLnNvbWUoKHQ9PiEoIXQudGV4dENvbnRlbnR8fCF0LnRleHRDb250ZW50LnRyaW0oKSkpKSYmKGZ1bmN0aW9uIHQoKXt0aHJvdyBFcnJvcigiTWF0VG9vbGJhcjogQXR0ZW1wdGluZyB0byBjb21iaW5lIGRpZmZlcmVudCB0b29sYmFyIG1vZGVzLiBFaXRoZXIgc3BlY2lmeSBtdWx0aXBsZSBgPG1hdC10b29sYmFyLXJvdz5gIGVsZW1lbnRzIGV4cGxpY2l0bHkgb3IganVzdCBwbGFjZSBjb250ZW50IGluc2lkZSBvZiBhIGA8bWF0LXRvb2xiYXI+YCBmb3IgYSBzaW5nbGUgcm93LiIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKCl9fWVCLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlQikoU20oaGcpLFNtKHd6KSxTbShaXykpfSxlQi7JtWNtcD10byh7dHlwZTplQixzZWxlY3RvcnM6W1sibWF0LXRvb2xiYXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYkaChvLHRCLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX3Rvb2xiYXJSb3dzPXQpfX0saG9zdEF0dHJzOlsxLCJtYXQtdG9vbGJhciJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJtYXQtdG9vbGJhci1tdWx0aXBsZS1yb3dzIixuLl90b29sYmFyUm93cy5sZW5ndGg+MCkoIm1hdC10b29sYmFyLXNpbmdsZS1yb3ciLDA9PT1uLl90b29sYmFyUm93cy5sZW5ndGgpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciJ9LGV4cG9ydEFzOlsibWF0VG9vbGJhciJdLGZlYXR1cmVzOlt4cF0sbmdDb250ZW50U2VsZWN0b3JzOlsiKiIsIm1hdC10b29sYmFyLXJvdyJdLGRlY2xzOjIsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabShRTCksWG0oMCksWG0oMSwxKSl9LHN0eWxlczpbIi5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10b29sYmFye291dGxpbmU6c29saWQgMXB4fS5tYXQtdG9vbGJhci1yb3csLm1hdC10b29sYmFyLXNpbmdsZS1yb3d7ZGlzcGxheTpmbGV4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjAgMTZweDt3aWR0aDoxMDAlO2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5tYXQtdG9vbGJhci1tdWx0aXBsZS1yb3dze2Rpc3BsYXk6ZmxleDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpZHRoOjEwMCV9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxlQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sZUIucHJvcERlY29yYXRvcnM9e190b29sYmFyUm93czpbe3R5cGU6WWEsYXJnczpbdEIse2Rlc2NlbmRhbnRzOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChlQixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtdG9vbGJhciIsZXhwb3J0QXM6Im1hdFRvb2xiYXIiLHRlbXBsYXRlOic8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48bmctY29udGVudCBzZWxlY3Q9Im1hdC10b29sYmFyLXJvdyI+PC9uZy1jb250ZW50PlxuJyxpbnB1dHM6WyJjb2xvciJdLGhvc3Q6e2NsYXNzOiJtYXQtdG9vbGJhciIsIltjbGFzcy5tYXQtdG9vbGJhci1tdWx0aXBsZS1yb3dzXSI6Il90b29sYmFyUm93cy5sZW5ndGggPiAwIiwiW2NsYXNzLm1hdC10b29sYmFyLXNpbmdsZS1yb3ddIjoiX3Rvb2xiYXJSb3dzLmxlbmd0aCA9PT0gMCJ9LGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLHN0eWxlczpbIi5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10b29sYmFye291dGxpbmU6c29saWQgMXB4fS5tYXQtdG9vbGJhci1yb3csLm1hdC10b29sYmFyLXNpbmdsZS1yb3d7ZGlzcGxheTpmbGV4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjAgMTZweDt3aWR0aDoxMDAlO2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5tYXQtdG9vbGJhci1tdWx0aXBsZS1yb3dze2Rpc3BsYXk6ZmxleDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpZHRoOjEwMCV9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSx7X3Rvb2xiYXJSb3dzOlt7dHlwZTpZYSxhcmdzOlt0Qix7ZGVzY2VuZGFudHM6ITB9XX1dfSk7Y2xhc3MgbkJ7fWZ1bmN0aW9uIG9CKHQsZSl7MSZ0JiZYbSgwKX1uQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bkIpfSxuQi7JtW1vZD1hbyh7dHlwZTpuQn0pLG5CLsm1aW5qPXZuKHtpbXBvcnRzOltbWEldLFhJXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobkIsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltYSV0sZXhwb3J0czpbZUIsdEIsWEldLGRlY2xhcmF0aW9uczpbZUIsdEJdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8obkIse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltlQix0Ql19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bWEldfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW2VCLHRCLFhJXX19KTtjb25zdCBpQj1bIioiXTtmdW5jdGlvbiBhQih0LGUpe31jb25zdCByQj1mdW5jdGlvbih0KXtyZXR1cm57YW5pbWF0aW9uRHVyYXRpb246dH19LHNCPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3ZhbHVlOnQscGFyYW1zOmV9fSxsQj1bInRhYkJvZHlXcmFwcGVyIl0sY0I9WyJ0YWJIZWFkZXIiXTtmdW5jdGlvbiBkQih0LGUpe31mdW5jdGlvbiBwQih0LGUpezEmdCYmUXAoMCxkQiwwLDAsIm5nLXRlbXBsYXRlIiw5KSwyJnQmJkRtKCJjZGtQb3J0YWxPdXRsZXQiLFltKCkuJGltcGxpY2l0LnRlbXBsYXRlTGFiZWwpfWZ1bmN0aW9uIG1CKHQsZSl7MSZ0JiZrdSgwKSwyJnQmJlN1KFltKCkuJGltcGxpY2l0LnRleHRMYWJlbCl9ZnVuY3Rpb24gdUIodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDYpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtjb25zdCBuPWhpKHQpLG89bi4kaW1wbGljaXQsaT1uLmluZGV4LGE9WW0oKSxyPSRwKDEpO3JldHVybiBhLl9oYW5kbGVDbGljayhvLHIsaSl9KSkoImNka0ZvY3VzQ2hhbmdlIiwoZnVuY3Rpb24gZShuKXtjb25zdCBvPWhpKHQpLmluZGV4O3JldHVybiBZbSgpLl90YWJGb2N1c0NoYW5nZWQobixvKX0pKSxSbSgxLCJkaXYiLDcpLFFwKDIscEIsMSwxLCJuZy10ZW1wbGF0ZSIsOCksUXAoMyxtQiwxLDEsIm5nLXRlbXBsYXRlIiw4KSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49ZS5pbmRleCxvPVltKCk7cHUoIm1hdC10YWItbGFiZWwtYWN0aXZlIixvLnNlbGVjdGVkSW5kZXg9PW4pLERtKCJpZCIsby5fZ2V0VGFiTGFiZWxJZChuKSkoImRpc2FibGVkIix0LmRpc2FibGVkKSgibWF0UmlwcGxlRGlzYWJsZWQiLHQuZGlzYWJsZWR8fG8uZGlzYWJsZVJpcHBsZSksanAoInRhYkluZGV4IixvLl9nZXRUYWJJbmRleCh0LG4pKSgiYXJpYS1wb3NpbnNldCIsbisxKSgiYXJpYS1zZXRzaXplIixvLl90YWJzLmxlbmd0aCkoImFyaWEtY29udHJvbHMiLG8uX2dldFRhYkNvbnRlbnRJZChuKSkoImFyaWEtc2VsZWN0ZWQiLG8uc2VsZWN0ZWRJbmRleD09bikoImFyaWEtbGFiZWwiLHQuYXJpYUxhYmVsfHxudWxsKSgiYXJpYS1sYWJlbGxlZGJ5IiwhdC5hcmlhTGFiZWwmJnQuYXJpYUxhYmVsbGVkYnk/dC5hcmlhTGFiZWxsZWRieTpudWxsKSxyYygyKSxEbSgibmdJZiIsdC50ZW1wbGF0ZUxhYmVsKSxyYygxKSxEbSgibmdJZiIsIXQudGVtcGxhdGVMYWJlbCl9fWZ1bmN0aW9uIGZCKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwibWF0LXRhYi1ib2R5IiwxMCksVm0oIl9vbkNlbnRlcmVkIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLl9yZW1vdmVUYWJCb2R5V3JhcHBlckhlaWdodCgpfSkpKCJfb25DZW50ZXJpbmciLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLl9zZXRUYWJCb2R5V3JhcHBlckhlaWdodChuKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPWUuaW5kZXgsbz1ZbSgpO3B1KCJtYXQtdGFiLWJvZHktYWN0aXZlIixvLnNlbGVjdGVkSW5kZXg9PT1uKSxEbSgiaWQiLG8uX2dldFRhYkNvbnRlbnRJZChuKSkoImNvbnRlbnQiLHQuY29udGVudCkoInBvc2l0aW9uIix0LnBvc2l0aW9uKSgib3JpZ2luIix0Lm9yaWdpbikoImFuaW1hdGlvbkR1cmF0aW9uIixvLmFuaW1hdGlvbkR1cmF0aW9uKSxqcCgidGFiaW5kZXgiLG51bGwhPW8uY29udGVudFRhYkluZGV4JiZvLnNlbGVjdGVkSW5kZXg9PT1uP28uY29udGVudFRhYkluZGV4Om51bGwpKCJhcmlhLWxhYmVsbGVkYnkiLG8uX2dldFRhYkxhYmVsSWQobikpfX1jb25zdCBnQj1bInRhYkxpc3RDb250YWluZXIiXSxoQj1bInRhYkxpc3QiXSxiQj1bIm5leHRQYWdpbmF0b3IiXSx5Qj1bInByZXZpb3VzUGFnaW5hdG9yIl0sX0I9bmV3IEdhKCJNYXRJbmtCYXJQb3NpdGlvbmVyIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBDQigpe3JldHVybiB0PT4oe2xlZnQ6dD8odC5vZmZzZXRMZWZ0fHwwKSsicHgiOiIwIix3aWR0aDp0Pyh0Lm9mZnNldFdpZHRofHwwKSsicHgiOiIwIn0pfX0pO2NsYXNzIE1Ce2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9uZ1pvbmU9ZSx0aGlzLl9pbmtCYXJQb3NpdGlvbmVyPW4sdGhpcy5fYW5pbWF0aW9uTW9kZT1vfWFsaWduVG9FbGVtZW50KHQpe3RoaXMuc2hvdygpLCJ1bmRlZmluZWQiIT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLl9zZXRTdHlsZXModCkpKX0pKTp0aGlzLl9zZXRTdHlsZXModCl9c2hvdygpe3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIn1oaWRlKCl7dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiJ9X3NldFN0eWxlcyh0KXtjb25zdCBlPXRoaXMuX2lua0JhclBvc2l0aW9uZXIodCksbj10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7bi5zdHlsZS5sZWZ0PWUubGVmdCxuLnN0eWxlLndpZHRoPWUud2lkdGh9fU1CLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxNQikoU20oaGcpLFNtKGFfKSxTbShfQiksU20oVlAsOCkpfSxNQi7JtWRpcj1sbyh7dHlwZTpNQixzZWxlY3RvcnM6W1sibWF0LWluay1iYXIiXV0saG9zdEF0dHJzOlsxLCJtYXQtaW5rLWJhciJdLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpfX0pLE1CLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbX0JdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE1CLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1pbmstYmFyIixob3N0OntjbGFzczoibWF0LWluay1iYXIiLCJbY2xhc3MuX21hdC1hbmltYXRpb24tbm9vcGFibGVdIjoiX2FuaW1hdGlvbk1vZGUgPT09ICdOb29wQW5pbWF0aW9ucycifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W19CXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHZCPW5ldyBHYSgiTWF0VGFiQ29udGVudCIpO2NsYXNzIHhCe2NvbnN0cnVjdG9yKHQpe3RoaXMudGVtcGxhdGU9dH19eEIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHhCKShTbShYZykpfSx4Qi7JtWRpcj1sbyh7dHlwZTp4QixzZWxlY3RvcnM6W1siIiwibWF0VGFiQ29udGVudCIsIiJdXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOnZCLHVzZUV4aXN0aW5nOnhCfV0pXX0pLHhCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHhCLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXRUYWJDb250ZW50XSIscHJvdmlkZXJzOlt7cHJvdmlkZTp2Qix1c2VFeGlzdGluZzp4Qn1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WGd9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgT0I9bmV3IEdhKCJNYXRUYWJMYWJlbCIpO2NsYXNzIFBCIGV4dGVuZHMga0Z7fVBCLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShQQikpKShufHxQQil9fSkoKSxQQi7JtWRpcj1sbyh7dHlwZTpQQixzZWxlY3RvcnM6W1siIiwibWF0LXRhYi1sYWJlbCIsIiJdLFsiIiwibWF0VGFiTGFiZWwiLCIiXV0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpPQix1c2VFeGlzdGluZzpQQn1dKSx4cF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFBCLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXQtdGFiLWxhYmVsXSwgW21hdFRhYkxhYmVsXSIscHJvdmlkZXJzOlt7cHJvdmlkZTpPQix1c2VFeGlzdGluZzpQQn1dfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3Qgd0I9S0koY2xhc3N7fSksa0I9bmV3IEdhKCJNQVRfVEFCX0dST1VQIik7Y2xhc3MgU0IgZXh0ZW5kcyB3Qntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5fdmlld0NvbnRhaW5lclJlZj10LHRoaXMuX2Nsb3Nlc3RUYWJHcm91cD1lLHRoaXMudGV4dExhYmVsPSIiLHRoaXMuX2NvbnRlbnRQb3J0YWw9bnVsbCx0aGlzLl9zdGF0ZUNoYW5nZXM9bmV3IEksdGhpcy5wb3NpdGlvbj1udWxsLHRoaXMub3JpZ2luPW51bGwsdGhpcy5pc0FjdGl2ZT0hMX1nZXQgdGVtcGxhdGVMYWJlbCgpe3JldHVybiB0aGlzLl90ZW1wbGF0ZUxhYmVsfXNldCB0ZW1wbGF0ZUxhYmVsKHQpe3RoaXMuX3NldFRlbXBsYXRlTGFiZWxJbnB1dCh0KX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLl9jb250ZW50UG9ydGFsfW5nT25DaGFuZ2VzKHQpeyh0Lmhhc093blByb3BlcnR5KCJ0ZXh0TGFiZWwiKXx8dC5oYXNPd25Qcm9wZXJ0eSgiZGlzYWJsZWQiKSkmJnRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdGF0ZUNoYW5nZXMuY29tcGxldGUoKX1uZ09uSW5pdCgpe3RoaXMuX2NvbnRlbnRQb3J0YWw9bmV3IHhGKHRoaXMuX2V4cGxpY2l0Q29udGVudHx8dGhpcy5faW1wbGljaXRDb250ZW50LHRoaXMuX3ZpZXdDb250YWluZXJSZWYpfV9zZXRUZW1wbGF0ZUxhYmVsSW5wdXQodCl7dCYmKHRoaXMuX3RlbXBsYXRlTGFiZWw9dCl9fVNCLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxTQikoU20oZWgpLFNtKGtCLDgpKX0sU0IuybVjbXA9dG8oe3R5cGU6U0Isc2VsZWN0b3JzOltbIm1hdC10YWIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYoJGgobyxPQiw1KSwkaChvLHZCLDcsWGcpKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLnRlbXBsYXRlTGFiZWw9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2V4cGxpY2l0Q29udGVudD10LmZpcnN0KX19LHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChYZyw3KSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLl9pbXBsaWNpdENvbnRlbnQ9dC5maXJzdCl9fSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsdGV4dExhYmVsOlsibGFiZWwiLCJ0ZXh0TGFiZWwiXSxhcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdfSxleHBvcnRBczpbIm1hdFRhYiJdLGZlYXR1cmVzOlt4cCxCb10sbmdDb250ZW50U2VsZWN0b3JzOmlCLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFFwKDAsb0IsMSwwLCJuZy10ZW1wbGF0ZSIpKX0sZW5jYXBzdWxhdGlvbjoyfSksU0IuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2tCXX0se3R5cGU6U3J9XX1dLFNCLnByb3BEZWNvcmF0b3JzPXt0ZW1wbGF0ZUxhYmVsOlt7dHlwZTpxYSxhcmdzOltPQl19XSxfZXhwbGljaXRDb250ZW50Olt7dHlwZTpxYSxhcmdzOlt2Qix7cmVhZDpYZyxzdGF0aWM6ITB9XX1dLF9pbXBsaWNpdENvbnRlbnQ6W3t0eXBlOlphLGFyZ3M6W1hnLHtzdGF0aWM6ITB9XX1dLHRleHRMYWJlbDpbe3R5cGU6eHksYXJnczpbImxhYmVsIl19XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoU0IsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXRhYiIsdGVtcGxhdGU6Ilx4M2MhLS0gQ3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBjb250ZW50IG9mIHRoZSA8bWF0LXRhYj4gc28gdGhhdCB3ZSBjYW4gZ3JhYiBhIHJlZmVyZW5jZSB0byB0aGlzXG4gICAgVGVtcGxhdGVSZWYgYW5kIHVzZSBpdCBpbiBhIFBvcnRhbCB0byByZW5kZXIgdGhlIHRhYiBjb250ZW50IGluIHRoZSBhcHByb3ByaWF0ZSBwbGFjZSBpbiB0aGVcbiAgICB0YWItZ3JvdXAuIC0tXHgzZVxuPG5nLXRlbXBsYXRlPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxuIixpbnB1dHM6WyJkaXNhYmxlZCJdLGNoYW5nZURldGVjdGlvbjp6bi5EZWZhdWx0LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxleHBvcnRBczoibWF0VGFiIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpba0JdfSx7dHlwZTpTcn1dfV19KSx7dGV4dExhYmVsOlt7dHlwZTp4eSxhcmdzOlsibGFiZWwiXX1dLHRlbXBsYXRlTGFiZWw6W3t0eXBlOnFhLGFyZ3M6W09CXX1dLF9leHBsaWNpdENvbnRlbnQ6W3t0eXBlOnFhLGFyZ3M6W3ZCLHtyZWFkOlhnLHN0YXRpYzohMH1dfV0sX2ltcGxpY2l0Q29udGVudDpbe3R5cGU6WmEsYXJnczpbWGcse3N0YXRpYzohMH1dfV0sYXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBEQj17dHJhbnNsYXRlVGFiOm54KCJ0cmFuc2xhdGVUYWIiLFtyeCgiY2VudGVyLCB2b2lkLCBsZWZ0LW9yaWdpbi1jZW50ZXIsIHJpZ2h0LW9yaWdpbi1jZW50ZXIiLGF4KHt0cmFuc2Zvcm06Im5vbmUifSkpLHJ4KCJsZWZ0IixheCh7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkiLG1pbkhlaWdodDoiMXB4In0pKSxyeCgicmlnaHQiLGF4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIixtaW5IZWlnaHQ6IjFweCJ9KSksbHgoIiogPT4gbGVmdCwgKiA9PiByaWdodCwgbGVmdCA9PiBjZW50ZXIsIHJpZ2h0ID0+IGNlbnRlciIsb3goInt7YW5pbWF0aW9uRHVyYXRpb259fSBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSkiKSksbHgoInZvaWQgPT4gbGVmdC1vcmlnaW4tY2VudGVyIixbYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIn0pLG94KCJ7e2FuaW1hdGlvbkR1cmF0aW9ufX0gY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpIildKSxseCgidm9pZCA9PiByaWdodC1vcmlnaW4tY2VudGVyIixbYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkifSksb3goInt7YW5pbWF0aW9uRHVyYXRpb259fSBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSkiKV0pXSl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBFQiBleHRlbmRzIERGe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKHQsZSxvKSx0aGlzLl9ob3N0PW4sdGhpcy5fY2VudGVyaW5nU3ViPW0uRU1QVFksdGhpcy5fbGVhdmluZ1N1Yj1tLkVNUFRZfW5nT25Jbml0KCl7c3VwZXIubmdPbkluaXQoKSx0aGlzLl9jZW50ZXJpbmdTdWI9dGhpcy5faG9zdC5fYmVmb3JlQ2VudGVyaW5nLnBpcGUoTmUodGhpcy5faG9zdC5faXNDZW50ZXJQb3NpdGlvbih0aGlzLl9ob3N0Ll9wb3NpdGlvbikpKS5zdWJzY3JpYmUoKHQ9Pnt0JiYhdGhpcy5oYXNBdHRhY2hlZCgpJiZ0aGlzLmF0dGFjaCh0aGlzLl9ob3N0Ll9jb250ZW50KX0pKSx0aGlzLl9sZWF2aW5nU3ViPXRoaXMuX2hvc3QuX2FmdGVyTGVhdmluZ0NlbnRlci5zdWJzY3JpYmUoKCgpPT57dGhpcy5kZXRhY2goKX0pKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksdGhpcy5fY2VudGVyaW5nU3ViLnVuc3Vic2NyaWJlKCksdGhpcy5fbGVhdmluZ1N1Yi51bnN1YnNjcmliZSgpfX1FQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RUIpKFNtKHVnKSxTbShlaCksU20ocWUoKCgpPT5BQikpKSxTbShaXykpfSxFQi7JtWRpcj1sbyh7dHlwZTpFQixzZWxlY3RvcnM6W1siIiwibWF0VGFiQm9keUhvc3QiLCIiXV0sZmVhdHVyZXM6W3hwXX0pLEVCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dWd9LHt0eXBlOmVofSx7dHlwZTpBQixkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltxZSgoKCk9PkFCKSldfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRUIsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdFRhYkJvZHlIb3N0XSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp1Z30se3R5cGU6ZWh9LHt0eXBlOkFCLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3FlKCgoKT0+QUIpKV19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSxudWxsKTtjbGFzcyBSQntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2Rpcj1lLHRoaXMuX2RpckNoYW5nZVN1YnNjcmlwdGlvbj1tLkVNUFRZLHRoaXMuX3RyYW5zbGF0ZVRhYkNvbXBsZXRlPW5ldyBJLHRoaXMuX29uQ2VudGVyaW5nPW5ldyBMaCx0aGlzLl9iZWZvcmVDZW50ZXJpbmc9bmV3IExoLHRoaXMuX2FmdGVyTGVhdmluZ0NlbnRlcj1uZXcgTGgsdGhpcy5fb25DZW50ZXJlZD1uZXcgTGgoITApLHRoaXMuYW5pbWF0aW9uRHVyYXRpb249IjUwMG1zIixlJiYodGhpcy5fZGlyQ2hhbmdlU3Vic2NyaXB0aW9uPWUuY2hhbmdlLnN1YnNjcmliZSgodD0+e3RoaXMuX2NvbXB1dGVQb3NpdGlvbkFuaW1hdGlvblN0YXRlKHQpLG4ubWFya0ZvckNoZWNrKCl9KSkpLHRoaXMuX3RyYW5zbGF0ZVRhYkNvbXBsZXRlLnBpcGUoTWUoKCh0LGUpPT50LmZyb21TdGF0ZT09PWUuZnJvbVN0YXRlJiZ0LnRvU3RhdGU9PT1lLnRvU3RhdGUpKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5faXNDZW50ZXJQb3NpdGlvbih0LnRvU3RhdGUpJiZ0aGlzLl9pc0NlbnRlclBvc2l0aW9uKHRoaXMuX3Bvc2l0aW9uKSYmdGhpcy5fb25DZW50ZXJlZC5lbWl0KCksdGhpcy5faXNDZW50ZXJQb3NpdGlvbih0LmZyb21TdGF0ZSkmJiF0aGlzLl9pc0NlbnRlclBvc2l0aW9uKHRoaXMuX3Bvc2l0aW9uKSYmdGhpcy5fYWZ0ZXJMZWF2aW5nQ2VudGVyLmVtaXQoKX0pKX1zZXQgcG9zaXRpb24odCl7dGhpcy5fcG9zaXRpb25JbmRleD10LHRoaXMuX2NvbXB1dGVQb3NpdGlvbkFuaW1hdGlvblN0YXRlKCl9bmdPbkluaXQoKXsiY2VudGVyIj09dGhpcy5fcG9zaXRpb24mJm51bGwhPXRoaXMub3JpZ2luJiYodGhpcy5fcG9zaXRpb249dGhpcy5fY29tcHV0ZVBvc2l0aW9uRnJvbU9yaWdpbih0aGlzLm9yaWdpbikpfW5nT25EZXN0cm95KCl7dGhpcy5fZGlyQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fdHJhbnNsYXRlVGFiQ29tcGxldGUuY29tcGxldGUoKX1fb25UcmFuc2xhdGVUYWJTdGFydGVkKHQpe2NvbnN0IGU9dGhpcy5faXNDZW50ZXJQb3NpdGlvbih0LnRvU3RhdGUpO3RoaXMuX2JlZm9yZUNlbnRlcmluZy5lbWl0KGUpLGUmJnRoaXMuX29uQ2VudGVyaW5nLmVtaXQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCl9X2dldExheW91dERpcmVjdGlvbigpe3JldHVybiB0aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlPyJydGwiOiJsdHIifV9pc0NlbnRlclBvc2l0aW9uKHQpe3JldHVybiJjZW50ZXIiPT10fHwibGVmdC1vcmlnaW4tY2VudGVyIj09dHx8InJpZ2h0LW9yaWdpbi1jZW50ZXIiPT10fV9jb21wdXRlUG9zaXRpb25BbmltYXRpb25TdGF0ZSh0PXRoaXMuX2dldExheW91dERpcmVjdGlvbigpKXt0aGlzLl9wb3NpdGlvbj10aGlzLl9wb3NpdGlvbkluZGV4PDA/Imx0ciI9PXQ/ImxlZnQiOiJyaWdodCI6dGhpcy5fcG9zaXRpb25JbmRleD4wPyJsdHIiPT10PyJyaWdodCI6ImxlZnQiOiJjZW50ZXIifV9jb21wdXRlUG9zaXRpb25Gcm9tT3JpZ2luKHQpe2NvbnN0IGU9dGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCk7cmV0dXJuImx0ciI9PWUmJnQ8PTB8fCJydGwiPT1lJiZ0PjA/ImxlZnQtb3JpZ2luLWNlbnRlciI6InJpZ2h0LW9yaWdpbi1jZW50ZXIifX1SQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UkIpKFNtKGhnKSxTbShISSw4KSxTbShVZykpfSxSQi7JtWRpcj1sbyh7dHlwZTpSQixpbnB1dHM6e2FuaW1hdGlvbkR1cmF0aW9uOiJhbmltYXRpb25EdXJhdGlvbiIscG9zaXRpb246InBvc2l0aW9uIixfY29udGVudDpbImNvbnRlbnQiLCJfY29udGVudCJdLG9yaWdpbjoib3JpZ2luIn0sb3V0cHV0czp7X29uQ2VudGVyaW5nOiJfb25DZW50ZXJpbmciLF9iZWZvcmVDZW50ZXJpbmc6Il9iZWZvcmVDZW50ZXJpbmciLF9hZnRlckxlYXZpbmdDZW50ZXI6Il9hZnRlckxlYXZpbmdDZW50ZXIiLF9vbkNlbnRlcmVkOiJfb25DZW50ZXJlZCJ9fSksUkIuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6VWd9XSxSQi5wcm9wRGVjb3JhdG9ycz17X29uQ2VudGVyaW5nOlt7dHlwZTpPeX1dLF9iZWZvcmVDZW50ZXJpbmc6W3t0eXBlOk95fV0sX2FmdGVyTGVhdmluZ0NlbnRlcjpbe3R5cGU6T3l9XSxfb25DZW50ZXJlZDpbe3R5cGU6T3l9XSxfY29udGVudDpbe3R5cGU6eHksYXJnczpbImNvbnRlbnQiXX1dLG9yaWdpbjpbe3R5cGU6eHl9XSxhbmltYXRpb25EdXJhdGlvbjpbe3R5cGU6eHl9XSxwb3NpdGlvbjpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChSQixbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlVnfV19KSx7X29uQ2VudGVyaW5nOlt7dHlwZTpPeX1dLF9iZWZvcmVDZW50ZXJpbmc6W3t0eXBlOk95fV0sX2FmdGVyTGVhdmluZ0NlbnRlcjpbe3R5cGU6T3l9XSxfb25DZW50ZXJlZDpbe3R5cGU6T3l9XSxhbmltYXRpb25EdXJhdGlvbjpbe3R5cGU6eHl9XSxwb3NpdGlvbjpbe3R5cGU6eHl9XSxfY29udGVudDpbe3R5cGU6eHksYXJnczpbImNvbnRlbnQiXX1dLG9yaWdpbjpbe3R5cGU6eHl9XX0pO2NsYXNzIEFCIGV4dGVuZHMgUkJ7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSxuKX19QUIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEFCKShTbShoZyksU20oSEksOCksU20oVWcpKX0sQUIuybVjbXA9dG8oe3R5cGU6QUIsc2VsZWN0b3JzOltbIm1hdC10YWItYm9keSJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoREYsNSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5fcG9ydGFsSG9zdD10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LXRhYi1ib2R5Il0sZmVhdHVyZXM6W3hwXSxkZWNsczozLHZhcnM6Nixjb25zdHM6W1siY2RrU2Nyb2xsYWJsZSIsIiIsMSwibWF0LXRhYi1ib2R5LWNvbnRlbnQiXSxbImNvbnRlbnQiLCIiXSxbIm1hdFRhYkJvZHlIb3N0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDAsMSksVm0oIkB0cmFuc2xhdGVUYWIuc3RhcnQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9vblRyYW5zbGF0ZVRhYlN0YXJ0ZWQoZSl9KSkoIkB0cmFuc2xhdGVUYWIuZG9uZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX3RyYW5zbGF0ZVRhYkNvbXBsZXRlLm5leHQoZSl9KSksUXAoMixhQiwwLDAsIm5nLXRlbXBsYXRlIiwyKSxBbSgpKSwyJmUmJkRtKCJAdHJhbnNsYXRlVGFiIix2aCgzLHNCLG4uX3Bvc2l0aW9uLE1oKDEsckIsbi5hbmltYXRpb25EdXJhdGlvbikpKX0sZGlyZWN0aXZlczpbRUJdLHN0eWxlczpbIi5tYXQtdGFiLWJvZHktY29udGVudHtoZWlnaHQ6MTAwJTtvdmVyZmxvdzphdXRvfS5tYXQtdGFiLWdyb3VwLWR5bmFtaWMtaGVpZ2h0IC5tYXQtdGFiLWJvZHktY29udGVudHtvdmVyZmxvdzpoaWRkZW59XG4iXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltEQi50cmFuc2xhdGVUYWJdfX0pLEFCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlVnfV0sQUIucHJvcERlY29yYXRvcnM9e19wb3J0YWxIb3N0Olt7dHlwZTpaYSxhcmdzOltERl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChBQixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtdGFiLWJvZHkiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJtYXQtdGFiLWJvZHktY29udGVudCIgI2NvbnRlbnRcbiAgICAgW0B0cmFuc2xhdGVUYWJdPSJ7XG4gICAgICAgIHZhbHVlOiBfcG9zaXRpb24sXG4gICAgICAgIHBhcmFtczoge2FuaW1hdGlvbkR1cmF0aW9uOiBhbmltYXRpb25EdXJhdGlvbn1cbiAgICAgfSJcbiAgICAgKEB0cmFuc2xhdGVUYWIuc3RhcnQpPSJfb25UcmFuc2xhdGVUYWJTdGFydGVkKCRldmVudCkiXG4gICAgIChAdHJhbnNsYXRlVGFiLmRvbmUpPSJfdHJhbnNsYXRlVGFiQ29tcGxldGUubmV4dCgkZXZlbnQpIlxuICAgICBjZGtTY3JvbGxhYmxlPlxuICA8bmctdGVtcGxhdGUgbWF0VGFiQm9keUhvc3Q+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuJyxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLkRlZmF1bHQsYW5pbWF0aW9uczpbREIudHJhbnNsYXRlVGFiXSxob3N0OntjbGFzczoibWF0LXRhYi1ib2R5In0sc3R5bGVzOlsiLm1hdC10YWItYm9keS1jb250ZW50e2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG99Lm1hdC10YWItZ3JvdXAtZHluYW1pYy1oZWlnaHQgLm1hdC10YWItYm9keS1jb250ZW50e292ZXJmbG93OmhpZGRlbn1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlVnfV19KSx7X3BvcnRhbEhvc3Q6W3t0eXBlOlphLGFyZ3M6W0RGXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBUQj1uZXcgR2EoIk1BVF9UQUJTX0NPTkZJRyIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgTkI9MDtjbGFzcyB6Qnt9Y29uc3QgSUI9SkkoUUkoY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZWxlbWVudFJlZj10fX0pLCJwcmltYXJ5Iik7Y2xhc3MgSEIgZXh0ZW5kcyBJQntjb25zdHJ1Y3Rvcih0LGUsbixvKXt2YXIgaTtzdXBlcih0KSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1lLHRoaXMuX2FuaW1hdGlvbk1vZGU9byx0aGlzLl90YWJzPW5ldyBWaCx0aGlzLl9pbmRleFRvU2VsZWN0PTAsdGhpcy5fdGFiQm9keVdyYXBwZXJIZWlnaHQ9MCx0aGlzLl90YWJzU3Vic2NyaXB0aW9uPW0uRU1QVFksdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl9zZWxlY3RlZEluZGV4PW51bGwsdGhpcy5oZWFkZXJQb3NpdGlvbj0iYWJvdmUiLHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZT1uZXcgTGgsdGhpcy5mb2N1c0NoYW5nZT1uZXcgTGgsdGhpcy5hbmltYXRpb25Eb25lPW5ldyBMaCx0aGlzLnNlbGVjdGVkVGFiQ2hhbmdlPW5ldyBMaCghMCksdGhpcy5fZ3JvdXBJZD1OQisrLHRoaXMuYW5pbWF0aW9uRHVyYXRpb249biYmbi5hbmltYXRpb25EdXJhdGlvbj9uLmFuaW1hdGlvbkR1cmF0aW9uOiI1MDBtcyIsdGhpcy5kaXNhYmxlUGFnaW5hdGlvbj0hKCFufHxudWxsPT1uLmRpc2FibGVQYWdpbmF0aW9uKSYmbi5kaXNhYmxlUGFnaW5hdGlvbix0aGlzLmR5bmFtaWNIZWlnaHQ9ISghbnx8bnVsbD09bi5keW5hbWljSGVpZ2h0KSYmbi5keW5hbWljSGVpZ2h0LHRoaXMuY29udGVudFRhYkluZGV4PW51bGwhPT0oaT1udWxsPT1uP3ZvaWQgMDpuLmNvbnRlbnRUYWJJbmRleCkmJnZvaWQgMCE9PWk/aTpudWxsfWdldCBkeW5hbWljSGVpZ2h0KCl7cmV0dXJuIHRoaXMuX2R5bmFtaWNIZWlnaHR9c2V0IGR5bmFtaWNIZWlnaHQodCl7dGhpcy5fZHluYW1pY0hlaWdodD15eih0KX1nZXQgc2VsZWN0ZWRJbmRleCgpe3JldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4fXNldCBzZWxlY3RlZEluZGV4KHQpe3RoaXMuX2luZGV4VG9TZWxlY3Q9X3oodCxudWxsKX1nZXQgYW5pbWF0aW9uRHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uRHVyYXRpb259c2V0IGFuaW1hdGlvbkR1cmF0aW9uKHQpe3RoaXMuX2FuaW1hdGlvbkR1cmF0aW9uPS9eXGQrJC8udGVzdCh0KT90KyJtcyI6dH1nZXQgY29udGVudFRhYkluZGV4KCl7cmV0dXJuIHRoaXMuX2NvbnRlbnRUYWJJbmRleH1zZXQgY29udGVudFRhYkluZGV4KHQpe3RoaXMuX2NvbnRlbnRUYWJJbmRleD1feih0LG51bGwpfWdldCBiYWNrZ3JvdW5kQ29sb3IoKXtyZXR1cm4gdGhpcy5fYmFja2dyb3VuZENvbG9yfXNldCBiYWNrZ3JvdW5kQ29sb3IodCl7Y29uc3QgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7ZS5jbGFzc0xpc3QucmVtb3ZlKGBtYXQtYmFja2dyb3VuZC0ke3RoaXMuYmFja2dyb3VuZENvbG9yfWApLHQmJmUuY2xhc3NMaXN0LmFkZChgbWF0LWJhY2tncm91bmQtJHt0fWApLHRoaXMuX2JhY2tncm91bmRDb2xvcj10fW5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpe2NvbnN0IHQ9dGhpcy5faW5kZXhUb1NlbGVjdD10aGlzLl9jbGFtcFRhYkluZGV4KHRoaXMuX2luZGV4VG9TZWxlY3QpO2lmKHRoaXMuX3NlbGVjdGVkSW5kZXghPXQpe2NvbnN0IGU9bnVsbD09dGhpcy5fc2VsZWN0ZWRJbmRleDtpZighZSl7dGhpcy5zZWxlY3RlZFRhYkNoYW5nZS5lbWl0KHRoaXMuX2NyZWF0ZUNoYW5nZUV2ZW50KHQpKTtjb25zdCBlPXRoaXMuX3RhYkJvZHlXcmFwcGVyLm5hdGl2ZUVsZW1lbnQ7ZS5zdHlsZS5taW5IZWlnaHQ9ZS5jbGllbnRIZWlnaHQrInB4In1Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX3RhYnMuZm9yRWFjaCgoKGUsbik9PmUuaXNBY3RpdmU9bj09PXQpKSxlfHwodGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQodCksdGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudC5zdHlsZS5taW5IZWlnaHQ9IiIpfSkpfXRoaXMuX3RhYnMuZm9yRWFjaCgoKGUsbik9PntlLnBvc2l0aW9uPW4tdCxudWxsPT10aGlzLl9zZWxlY3RlZEluZGV4fHwwIT1lLnBvc2l0aW9ufHxlLm9yaWdpbnx8KGUub3JpZ2luPXQtdGhpcy5fc2VsZWN0ZWRJbmRleCl9KSksdGhpcy5fc2VsZWN0ZWRJbmRleCE9PXQmJih0aGlzLl9zZWxlY3RlZEluZGV4PXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX3N1YnNjcmliZVRvQWxsVGFiQ2hhbmdlcygpLHRoaXMuX3N1YnNjcmliZVRvVGFiTGFiZWxzKCksdGhpcy5fdGFic1N1YnNjcmlwdGlvbj10aGlzLl90YWJzLmNoYW5nZXMuc3Vic2NyaWJlKCgoKT0+e2lmKHRoaXMuX2NsYW1wVGFiSW5kZXgodGhpcy5faW5kZXhUb1NlbGVjdCk9PT10aGlzLl9zZWxlY3RlZEluZGV4KXtjb25zdCB0PXRoaXMuX3RhYnMudG9BcnJheSgpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV0uaXNBY3RpdmUpe3RoaXMuX2luZGV4VG9TZWxlY3Q9dGhpcy5fc2VsZWN0ZWRJbmRleD1lO2JyZWFrfX10aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pKX1fc3Vic2NyaWJlVG9BbGxUYWJDaGFuZ2VzKCl7dGhpcy5fYWxsVGFicy5jaGFuZ2VzLnBpcGUoTmUodGhpcy5fYWxsVGFicykpLnN1YnNjcmliZSgodD0+e3RoaXMuX3RhYnMucmVzZXQodC5maWx0ZXIoKHQ9PnQuX2Nsb3Nlc3RUYWJHcm91cD09PXRoaXN8fCF0Ll9jbG9zZXN0VGFiR3JvdXApKSksdGhpcy5fdGFicy5ub3RpZnlPbkNoYW5nZXMoKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuX3RhYnMuZGVzdHJveSgpLHRoaXMuX3RhYnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfXJlYWxpZ25JbmtCYXIoKXt0aGlzLl90YWJIZWFkZXImJnRoaXMuX3RhYkhlYWRlci5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCl9Zm9jdXNUYWIodCl7Y29uc3QgZT10aGlzLl90YWJIZWFkZXI7ZSYmKGUuZm9jdXNJbmRleD10KX1fZm9jdXNDaGFuZ2VkKHQpe3RoaXMuZm9jdXNDaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudCh0KSl9X2NyZWF0ZUNoYW5nZUV2ZW50KHQpe2NvbnN0IGU9bmV3IHpCO3JldHVybiBlLmluZGV4PXQsdGhpcy5fdGFicyYmdGhpcy5fdGFicy5sZW5ndGgmJihlLnRhYj10aGlzLl90YWJzLnRvQXJyYXkoKVt0XSksZX1fc3Vic2NyaWJlVG9UYWJMYWJlbHMoKXt0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbiYmdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbj1yZSguLi50aGlzLl90YWJzLm1hcCgodD0+dC5fc3RhdGVDaGFuZ2VzKSkpLnN1YnNjcmliZSgoKCk9PnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKSl9X2NsYW1wVGFiSW5kZXgodCl7cmV0dXJuIE1hdGgubWluKHRoaXMuX3RhYnMubGVuZ3RoLTEsTWF0aC5tYXgodHx8MCwwKSl9X2dldFRhYkxhYmVsSWQodCl7cmV0dXJuYG1hdC10YWItbGFiZWwtJHt0aGlzLl9ncm91cElkfS0ke3R9YH1fZ2V0VGFiQ29udGVudElkKHQpe3JldHVybmBtYXQtdGFiLWNvbnRlbnQtJHt0aGlzLl9ncm91cElkfS0ke3R9YH1fc2V0VGFiQm9keVdyYXBwZXJIZWlnaHQodCl7aWYoIXRoaXMuX2R5bmFtaWNIZWlnaHR8fCF0aGlzLl90YWJCb2R5V3JhcHBlckhlaWdodClyZXR1cm47Y29uc3QgZT10aGlzLl90YWJCb2R5V3JhcHBlci5uYXRpdmVFbGVtZW50O2Uuc3R5bGUuaGVpZ2h0PXRoaXMuX3RhYkJvZHlXcmFwcGVySGVpZ2h0KyJweCIsdGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQmJihlLnN0eWxlLmhlaWdodD10KyJweCIpfV9yZW1vdmVUYWJCb2R5V3JhcHBlckhlaWdodCgpe2NvbnN0IHQ9dGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudDt0aGlzLl90YWJCb2R5V3JhcHBlckhlaWdodD10LmNsaWVudEhlaWdodCx0LnN0eWxlLmhlaWdodD0iIix0aGlzLmFuaW1hdGlvbkRvbmUuZW1pdCgpfV9oYW5kbGVDbGljayh0LGUsbil7dC5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWRJbmRleD1lLmZvY3VzSW5kZXg9bil9X2dldFRhYkluZGV4KHQsZSl7cmV0dXJuIHQuZGlzYWJsZWQ/bnVsbDp0aGlzLnNlbGVjdGVkSW5kZXg9PT1lPzA6LTF9X3RhYkZvY3VzQ2hhbmdlZCh0LGUpe3QmJiJtb3VzZSIhPT10JiYidG91Y2giIT09dCYmKHRoaXMuX3RhYkhlYWRlci5mb2N1c0luZGV4PWUpfX1IQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SEIpKFNtKGhnKSxTbShVZyksU20oVEIsOCksU20oVlAsOCkpfSxIQi7JtWRpcj1sbyh7dHlwZTpIQixpbnB1dHM6e2hlYWRlclBvc2l0aW9uOiJoZWFkZXJQb3NpdGlvbiIsYW5pbWF0aW9uRHVyYXRpb246ImFuaW1hdGlvbkR1cmF0aW9uIixkaXNhYmxlUGFnaW5hdGlvbjoiZGlzYWJsZVBhZ2luYXRpb24iLGR5bmFtaWNIZWlnaHQ6ImR5bmFtaWNIZWlnaHQiLGNvbnRlbnRUYWJJbmRleDoiY29udGVudFRhYkluZGV4IixzZWxlY3RlZEluZGV4OiJzZWxlY3RlZEluZGV4IixiYWNrZ3JvdW5kQ29sb3I6ImJhY2tncm91bmRDb2xvciJ9LG91dHB1dHM6e3NlbGVjdGVkSW5kZXhDaGFuZ2U6InNlbGVjdGVkSW5kZXhDaGFuZ2UiLGZvY3VzQ2hhbmdlOiJmb2N1c0NoYW5nZSIsYW5pbWF0aW9uRG9uZToiYW5pbWF0aW9uRG9uZSIsc2VsZWN0ZWRUYWJDaGFuZ2U6InNlbGVjdGVkVGFiQ2hhbmdlIn0sZmVhdHVyZXM6W3hwXX0pLEhCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbVEJdfSx7dHlwZTpTcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sSEIucHJvcERlY29yYXRvcnM9e2R5bmFtaWNIZWlnaHQ6W3t0eXBlOnh5fV0sc2VsZWN0ZWRJbmRleDpbe3R5cGU6eHl9XSxoZWFkZXJQb3NpdGlvbjpbe3R5cGU6eHl9XSxhbmltYXRpb25EdXJhdGlvbjpbe3R5cGU6eHl9XSxjb250ZW50VGFiSW5kZXg6W3t0eXBlOnh5fV0sZGlzYWJsZVBhZ2luYXRpb246W3t0eXBlOnh5fV0sYmFja2dyb3VuZENvbG9yOlt7dHlwZTp4eX1dLHNlbGVjdGVkSW5kZXhDaGFuZ2U6W3t0eXBlOk95fV0sZm9jdXNDaGFuZ2U6W3t0eXBlOk95fV0sYW5pbWF0aW9uRG9uZTpbe3R5cGU6T3l9XSxzZWxlY3RlZFRhYkNoYW5nZTpbe3R5cGU6T3l9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChIQixbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbVEJdfSx7dHlwZTpTcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV19KSx7aGVhZGVyUG9zaXRpb246W3t0eXBlOnh5fV0sc2VsZWN0ZWRJbmRleENoYW5nZTpbe3R5cGU6T3l9XSxmb2N1c0NoYW5nZTpbe3R5cGU6T3l9XSxhbmltYXRpb25Eb25lOlt7dHlwZTpPeX1dLHNlbGVjdGVkVGFiQ2hhbmdlOlt7dHlwZTpPeX1dLGFuaW1hdGlvbkR1cmF0aW9uOlt7dHlwZTp4eX1dLGRpc2FibGVQYWdpbmF0aW9uOlt7dHlwZTp4eX1dLGR5bmFtaWNIZWlnaHQ6W3t0eXBlOnh5fV0sY29udGVudFRhYkluZGV4Olt7dHlwZTp4eX1dLHNlbGVjdGVkSW5kZXg6W3t0eXBlOnh5fV0sYmFja2dyb3VuZENvbG9yOlt7dHlwZTp4eX1dfSk7Y2xhc3MgRkIgZXh0ZW5kcyBIQntjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0LGUsbixvKX19RkIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEZCKShTbShoZyksU20oVWcpLFNtKFRCLDgpLFNtKFZQLDgpKX0sRkIuybVjbXA9dG8oe3R5cGU6RkIsc2VsZWN0b3JzOltbIm1hdC10YWItZ3JvdXAiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYkaChvLFNCLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX2FsbFRhYnM9dCl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKGxCLDUpLFFoKGNCLDUpKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLl90YWJCb2R5V3JhcHBlcj10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5fdGFiSGVhZGVyPXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtdGFiLWdyb3VwIl0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoIm1hdC10YWItZ3JvdXAtZHluYW1pYy1oZWlnaHQiLG4uZHluYW1pY0hlaWdodCkoIm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIiwiYmVsb3ciPT09bi5oZWFkZXJQb3NpdGlvbil9LGlucHV0czp7Y29sb3I6ImNvbG9yIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIn0sZXhwb3J0QXM6WyJtYXRUYWJHcm91cCJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6a0IsdXNlRXhpc3Rpbmc6RkJ9XSkseHBdLGRlY2xzOjYsdmFyczo3LGNvbnN0czpbWzMsInNlbGVjdGVkSW5kZXgiLCJkaXNhYmxlUmlwcGxlIiwiZGlzYWJsZVBhZ2luYXRpb24iLCJpbmRleEZvY3VzZWQiLCJzZWxlY3RGb2N1c2VkSW5kZXgiXSxbInRhYkhlYWRlciIsIiJdLFsiY2xhc3MiLCJtYXQtdGFiLWxhYmVsIG1hdC1mb2N1cy1pbmRpY2F0b3IiLCJyb2xlIiwidGFiIiwibWF0VGFiTGFiZWxXcmFwcGVyIiwiIiwibWF0LXJpcHBsZSIsIiIsImNka01vbml0b3JFbGVtZW50Rm9jdXMiLCIiLDMsImlkIiwibWF0LXRhYi1sYWJlbC1hY3RpdmUiLCJkaXNhYmxlZCIsIm1hdFJpcHBsZURpc2FibGVkIiwiY2xpY2siLCJjZGtGb2N1c0NoYW5nZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsIm1hdC10YWItYm9keS13cmFwcGVyIl0sWyJ0YWJCb2R5V3JhcHBlciIsIiJdLFsicm9sZSIsInRhYnBhbmVsIiwzLCJpZCIsIm1hdC10YWItYm9keS1hY3RpdmUiLCJjb250ZW50IiwicG9zaXRpb24iLCJvcmlnaW4iLCJhbmltYXRpb25EdXJhdGlvbiIsIl9vbkNlbnRlcmVkIiwiX29uQ2VudGVyaW5nIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInJvbGUiLCJ0YWIiLCJtYXRUYWJMYWJlbFdyYXBwZXIiLCIiLCJtYXQtcmlwcGxlIiwiIiwiY2RrTW9uaXRvckVsZW1lbnRGb2N1cyIsIiIsMSwibWF0LXRhYi1sYWJlbCIsIm1hdC1mb2N1cy1pbmRpY2F0b3IiLDMsImlkIiwiZGlzYWJsZWQiLCJtYXRSaXBwbGVEaXNhYmxlZCIsImNsaWNrIiwiY2RrRm9jdXNDaGFuZ2UiXSxbMSwibWF0LXRhYi1sYWJlbC1jb250ZW50Il0sWzMsIm5nSWYiXSxbMywiY2RrUG9ydGFsT3V0bGV0Il0sWyJyb2xlIiwidGFicGFuZWwiLDMsImlkIiwiY29udGVudCIsInBvc2l0aW9uIiwib3JpZ2luIiwiYW5pbWF0aW9uRHVyYXRpb24iLCJfb25DZW50ZXJlZCIsIl9vbkNlbnRlcmluZyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWF0LXRhYi1oZWFkZXIiLDAsMSksVm0oImluZGV4Rm9jdXNlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2ZvY3VzQ2hhbmdlZChlKX0pKSgic2VsZWN0Rm9jdXNlZEluZGV4IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5zZWxlY3RlZEluZGV4PWV9KSksUXAoMix1Qiw0LDE0LCJkaXYiLDIpLEFtKCksUm0oMywiZGl2IiwzLDQpLFFwKDUsZkIsMSw5LCJtYXQtdGFiLWJvZHkiLDUpLEFtKCkpLDImZSYmKERtKCJzZWxlY3RlZEluZGV4IixuLnNlbGVjdGVkSW5kZXh8fDApKCJkaXNhYmxlUmlwcGxlIixuLmRpc2FibGVSaXBwbGUpKCJkaXNhYmxlUGFnaW5hdGlvbiIsbi5kaXNhYmxlUGFnaW5hdGlvbikscmMoMiksRG0oIm5nRm9yT2YiLG4uX3RhYnMpLHJjKDEpLHB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpLHJjKDIpLERtKCJuZ0Zvck9mIixuLl90YWJzKSl9LGRpcmVjdGl2ZXM6ZnVuY3Rpb24oKXtyZXR1cm5bR0IsbE0sQkIsa0gsREksZE0sREYsQUJdfSxzdHlsZXM6WyIubWF0LXRhYi1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC13aWR0aDoxMDAlfS5tYXQtdGFiLWdyb3VwLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5tYXQtdGFiLWxhYmVse2hlaWdodDo0OHB4O3BhZGRpbmc6MCAyNHB4O2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvcGFjaXR5Oi42O21pbi13aWR0aDoxNjBweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXRhYi1sYWJlbDpmb2N1c3tvdXRsaW5lOm5vbmV9Lm1hdC10YWItbGFiZWw6Zm9jdXM6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1sYWJlbDpmb2N1c3tvdXRsaW5lOmRvdHRlZCAycHg7b3V0bGluZS1vZmZzZXQ6LTJweH0ubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZHtvcGFjaXR5Oi41fS5tYXQtdGFiLWxhYmVsIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnR7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1sYWJlbHtvcGFjaXR5OjF9QG1lZGlhKG1heC13aWR0aDogNTk5cHgpey5tYXQtdGFiLWxhYmVse3BhZGRpbmc6MCAxMnB4fX1AbWVkaWEobWF4LXdpZHRoOiA5NTlweCl7Lm1hdC10YWItbGFiZWx7cGFkZGluZzowIDEycHh9fS5tYXQtdGFiLWdyb3VwW21hdC1zdHJldGNoLXRhYnNdPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbHtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjF9Lm1hdC10YWItYm9keS13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmZsZXg7dHJhbnNpdGlvbjpoZWlnaHQgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtdGFiLWJvZHktd3JhcHBlcnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItYm9keXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjtvdXRsaW5lOjA7ZmxleC1iYXNpczoxMDAlfS5tYXQtdGFiLWJvZHkubWF0LXRhYi1ib2R5LWFjdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87ei1pbmRleDoxO2ZsZXgtZ3JvdzoxfS5tYXQtdGFiLWdyb3VwLm1hdC10YWItZ3JvdXAtZHluYW1pYy1oZWlnaHQgLm1hdC10YWItYm9keS5tYXQtdGFiLWJvZHktYWN0aXZle292ZXJmbG93LXk6aGlkZGVufVxuIl0sZW5jYXBzdWxhdGlvbjoyfSksRkIuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltUQl19LHt0eXBlOlNyfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XSxGQi5wcm9wRGVjb3JhdG9ycz17X2FsbFRhYnM6W3t0eXBlOllhLGFyZ3M6W1NCLHtkZXNjZW5kYW50czohMH1dfV0sX3RhYkJvZHlXcmFwcGVyOlt7dHlwZTpaYSxhcmdzOlsidGFiQm9keVdyYXBwZXIiXX1dLF90YWJIZWFkZXI6W3t0eXBlOlphLGFyZ3M6WyJ0YWJIZWFkZXIiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEZCLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC10YWItZ3JvdXAiLGV4cG9ydEFzOiJtYXRUYWJHcm91cCIsdGVtcGxhdGU6JzxtYXQtdGFiLWhlYWRlciAjdGFiSGVhZGVyXG4gICAgICAgICAgICAgICBbc2VsZWN0ZWRJbmRleF09InNlbGVjdGVkSW5kZXggfHwgMCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlUmlwcGxlXT0iZGlzYWJsZVJpcHBsZSJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlUGFnaW5hdGlvbl09ImRpc2FibGVQYWdpbmF0aW9uIlxuICAgICAgICAgICAgICAgKGluZGV4Rm9jdXNlZCk9Il9mb2N1c0NoYW5nZWQoJGV2ZW50KSJcbiAgICAgICAgICAgICAgIChzZWxlY3RGb2N1c2VkSW5kZXgpPSJzZWxlY3RlZEluZGV4ID0gJGV2ZW50Ij5cbiAgPGRpdiBjbGFzcz0ibWF0LXRhYi1sYWJlbCBtYXQtZm9jdXMtaW5kaWNhdG9yIiByb2xlPSJ0YWIiIG1hdFRhYkxhYmVsV3JhcHBlciBtYXQtcmlwcGxlIGNka01vbml0b3JFbGVtZW50Rm9jdXNcbiAgICAgICAqbmdGb3I9ImxldCB0YWIgb2YgX3RhYnM7IGxldCBpID0gaW5kZXgiXG4gICAgICAgW2lkXT0iX2dldFRhYkxhYmVsSWQoaSkiXG4gICAgICAgW2F0dHIudGFiSW5kZXhdPSJfZ2V0VGFiSW5kZXgodGFiLCBpKSJcbiAgICAgICBbYXR0ci5hcmlhLXBvc2luc2V0XT0iaSArIDEiXG4gICAgICAgW2F0dHIuYXJpYS1zZXRzaXplXT0iX3RhYnMubGVuZ3RoIlxuICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPSJfZ2V0VGFiQ29udGVudElkKGkpIlxuICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPSJzZWxlY3RlZEluZGV4ID09IGkiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbF09InRhYi5hcmlhTGFiZWwgfHwgbnVsbCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPSIoIXRhYi5hcmlhTGFiZWwgJiYgdGFiLmFyaWFMYWJlbGxlZGJ5KSA/IHRhYi5hcmlhTGFiZWxsZWRieSA6IG51bGwiXG4gICAgICAgW2NsYXNzLm1hdC10YWItbGFiZWwtYWN0aXZlXT0ic2VsZWN0ZWRJbmRleCA9PSBpIlxuICAgICAgIFtkaXNhYmxlZF09InRhYi5kaXNhYmxlZCJcbiAgICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJ0YWIuZGlzYWJsZWQgfHwgZGlzYWJsZVJpcHBsZSJcbiAgICAgICAoY2xpY2spPSJfaGFuZGxlQ2xpY2sodGFiLCB0YWJIZWFkZXIsIGkpIlxuICAgICAgIChjZGtGb2N1c0NoYW5nZSk9Il90YWJGb2N1c0NoYW5nZWQoJGV2ZW50LCBpKSI+XG5cblxuICAgIDxkaXYgY2xhc3M9Im1hdC10YWItbGFiZWwtY29udGVudCI+XG4gICAgICBceDNjIS0tIElmIHRoZXJlIGlzIGEgbGFiZWwgdGVtcGxhdGUsIHVzZSBpdC4gLS1ceDNlXG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPSJ0YWIudGVtcGxhdGVMYWJlbCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT0idGFiLnRlbXBsYXRlTGFiZWwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICBceDNjIS0tIElmIHRoZXJlIGlzIG5vdCBhIGxhYmVsIHRlbXBsYXRlLCBmYWxsIGJhY2sgdG8gdGhlIHRleHQgbGFiZWwuIC0tXHgzZVxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT0iIXRhYi50ZW1wbGF0ZUxhYmVsIj57e3RhYi50ZXh0TGFiZWx9fTwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9tYXQtdGFiLWhlYWRlcj5cblxuPGRpdlxuICBjbGFzcz0ibWF0LXRhYi1ib2R5LXdyYXBwZXIiXG4gIFtjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV09Il9hbmltYXRpb25Nb2RlID09PSBcJ05vb3BBbmltYXRpb25zXCciXG4gICN0YWJCb2R5V3JhcHBlcj5cbiAgPG1hdC10YWItYm9keSByb2xlPSJ0YWJwYW5lbCJcbiAgICAgICAgICAgICAgICpuZ0Zvcj0ibGV0IHRhYiBvZiBfdGFiczsgbGV0IGkgPSBpbmRleCJcbiAgICAgICAgICAgICAgIFtpZF09Il9nZXRUYWJDb250ZW50SWQoaSkiXG4gICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09Iihjb250ZW50VGFiSW5kZXggIT0gbnVsbCAmJiBzZWxlY3RlZEluZGV4ID09PSBpKSA/IGNvbnRlbnRUYWJJbmRleCA6IG51bGwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPSJfZ2V0VGFiTGFiZWxJZChpKSJcbiAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtdGFiLWJvZHktYWN0aXZlXT0ic2VsZWN0ZWRJbmRleCA9PT0gaSJcbiAgICAgICAgICAgICAgIFtjb250ZW50XT0idGFiLmNvbnRlbnQhIlxuICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT0idGFiLnBvc2l0aW9uISJcbiAgICAgICAgICAgICAgIFtvcmlnaW5dPSJ0YWIub3JpZ2luIlxuICAgICAgICAgICAgICAgW2FuaW1hdGlvbkR1cmF0aW9uXT0iYW5pbWF0aW9uRHVyYXRpb24iXG4gICAgICAgICAgICAgICAoX29uQ2VudGVyZWQpPSJfcmVtb3ZlVGFiQm9keVdyYXBwZXJIZWlnaHQoKSJcbiAgICAgICAgICAgICAgIChfb25DZW50ZXJpbmcpPSJfc2V0VGFiQm9keVdyYXBwZXJIZWlnaHQoJGV2ZW50KSI+XG4gIDwvbWF0LXRhYi1ib2R5PlxuPC9kaXY+XG4nLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxpbnB1dHM6WyJjb2xvciIsImRpc2FibGVSaXBwbGUiXSxwcm92aWRlcnM6W3twcm92aWRlOmtCLHVzZUV4aXN0aW5nOkZCfV0saG9zdDp7Y2xhc3M6Im1hdC10YWItZ3JvdXAiLCJbY2xhc3MubWF0LXRhYi1ncm91cC1keW5hbWljLWhlaWdodF0iOiJkeW5hbWljSGVpZ2h0IiwiW2NsYXNzLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyXSI6J2hlYWRlclBvc2l0aW9uID09PSAiYmVsb3ciJ30sc3R5bGVzOlsiLm1hdC10YWItZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXgtd2lkdGg6MTAwJX0ubWF0LXRhYi1ncm91cC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlcntmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0ubWF0LXRhYi1sYWJlbHtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMjRweDtjdXJzb3I6cG9pbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3BhY2l0eTouNjttaW4td2lkdGg6MTYwcHg7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpub25lfS5tYXQtdGFiLWxhYmVsOmZvY3VzOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpkb3R0ZWQgMnB4O291dGxpbmUtb2Zmc2V0Oi0ycHh9Lm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LXRhYi1sYWJlbCAubWF0LXRhYi1sYWJlbC1jb250ZW50e2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWx7b3BhY2l0eToxfUBtZWRpYShtYXgtd2lkdGg6IDU5OXB4KXsubWF0LXRhYi1sYWJlbHtwYWRkaW5nOjAgMTJweH19QG1lZGlhKG1heC13aWR0aDogOTU5cHgpey5tYXQtdGFiLWxhYmVse3BhZGRpbmc6MCAxMnB4fX0ubWF0LXRhYi1ncm91cFttYXQtc3RyZXRjaC10YWJzXT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWx7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxfS5tYXQtdGFiLWJvZHktd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpmbGV4O3RyYW5zaXRpb246aGVpZ2h0IDUwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXRhYi1ib2R5LXdyYXBwZXJ7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtdGFiLWJvZHl7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47b3V0bGluZTowO2ZsZXgtYmFzaXM6MTAwJX0ubWF0LXRhYi1ib2R5Lm1hdC10YWItYm9keS1hY3RpdmV7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO3otaW5kZXg6MTtmbGV4LWdyb3c6MX0ubWF0LXRhYi1ncm91cC5tYXQtdGFiLWdyb3VwLWR5bmFtaWMtaGVpZ2h0IC5tYXQtdGFiLWJvZHkubWF0LXRhYi1ib2R5LWFjdGl2ZXtvdmVyZmxvdy15OmhpZGRlbn1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbVEJdfSx7dHlwZTpTcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV19KSx7X2FsbFRhYnM6W3t0eXBlOllhLGFyZ3M6W1NCLHtkZXNjZW5kYW50czohMH1dfV0sX3RhYkJvZHlXcmFwcGVyOlt7dHlwZTpaYSxhcmdzOlsidGFiQm9keVdyYXBwZXIiXX1dLF90YWJIZWFkZXI6W3t0eXBlOlphLGFyZ3M6WyJ0YWJIZWFkZXIiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBMQj1LSShjbGFzc3t9KTtjbGFzcyBCQiBleHRlbmRzIExCe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5lbGVtZW50UmVmPXR9Zm9jdXMoKXt0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfWdldE9mZnNldExlZnQoKXtyZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdH1nZXRPZmZzZXRXaWR0aCgpe3JldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aH19QkIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJCKShTbShoZykpfSxCQi7JtWRpcj1sbyh7dHlwZTpCQixzZWxlY3RvcnM6W1siIiwibWF0VGFiTGFiZWxXcmFwcGVyIiwiIl1dLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJihqcCgiYXJpYS1kaXNhYmxlZCIsISFuLmRpc2FibGVkKSxwdSgibWF0LXRhYi1kaXNhYmxlZCIsbi5kaXNhYmxlZCkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCJ9LGZlYXR1cmVzOlt4cF19KSxCQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCQixbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0VGFiTGFiZWxXcmFwcGVyXSIsaW5wdXRzOlsiZGlzYWJsZWQiXSxob3N0OnsiW2NsYXNzLm1hdC10YWItZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbYXR0ci5hcmlhLWRpc2FibGVkXSI6IiEhZGlzYWJsZWQifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFZCPU56KHtwYXNzaXZlOiEwfSk7Y2xhc3MgakJ7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscil7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fdmlld3BvcnRSdWxlcj1uLHRoaXMuX2Rpcj1vLHRoaXMuX25nWm9uZT1pLHRoaXMuX3BsYXRmb3JtPWEsdGhpcy5fYW5pbWF0aW9uTW9kZT1yLHRoaXMuX3Njcm9sbERpc3RhbmNlPTAsdGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQ9ITEsdGhpcy5fZGVzdHJveWVkPW5ldyBJLHRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHM9ITEsdGhpcy5fZGlzYWJsZVNjcm9sbEFmdGVyPSEwLHRoaXMuX2Rpc2FibGVTY3JvbGxCZWZvcmU9ITAsdGhpcy5fc3RvcFNjcm9sbGluZz1uZXcgSSx0aGlzLmRpc2FibGVQYWdpbmF0aW9uPSExLHRoaXMuX3NlbGVjdGVkSW5kZXg9MCx0aGlzLnNlbGVjdEZvY3VzZWRJbmRleD1uZXcgTGgsdGhpcy5pbmRleEZvY3VzZWQ9bmV3IExoLGkucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57b2UodC5uYXRpdmVFbGVtZW50LCJtb3VzZWxlYXZlIikucGlwZShJZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fc3RvcEludGVydmFsKCl9KSl9KSl9Z2V0IHNlbGVjdGVkSW5kZXgoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleH1zZXQgc2VsZWN0ZWRJbmRleCh0KXt0PV96KHQpLHRoaXMuX3NlbGVjdGVkSW5kZXghPXQmJih0aGlzLl9zZWxlY3RlZEluZGV4Q2hhbmdlZD0hMCx0aGlzLl9zZWxlY3RlZEluZGV4PXQsdGhpcy5fa2V5TWFuYWdlciYmdGhpcy5fa2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKHQpKX1uZ0FmdGVyVmlld0luaXQoKXtvZSh0aGlzLl9wcmV2aW91c1BhZ2luYXRvci5uYXRpdmVFbGVtZW50LCJ0b3VjaHN0YXJ0IixWQikucGlwZShJZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5faGFuZGxlUGFnaW5hdG9yUHJlc3MoImJlZm9yZSIpfSkpLG9lKHRoaXMuX25leHRQYWdpbmF0b3IubmF0aXZlRWxlbWVudCwidG91Y2hzdGFydCIsVkIpLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2hhbmRsZVBhZ2luYXRvclByZXNzKCJhZnRlciIpfSkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe2NvbnN0IHQ9dGhpcy5fZGlyP3RoaXMuX2Rpci5jaGFuZ2U6RXQoImx0ciIpLGU9dGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoMTUwKSxuPSgpPT57dGhpcy51cGRhdGVQYWdpbmF0aW9uKCksdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCl9O3RoaXMuX2tleU1hbmFnZXI9bmV3IGVJKHRoaXMuX2l0ZW1zKS53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2dldExheW91dERpcmVjdGlvbigpKS53aXRoSG9tZUFuZEVuZCgpLndpdGhXcmFwKCksdGhpcy5fa2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKHRoaXMuX3NlbGVjdGVkSW5kZXgpLCJ1bmRlZmluZWQiIT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3JlcXVlc3RBbmltYXRpb25GcmFtZShuKTpuKCkscmUodCxlLHRoaXMuX2l0ZW1zLmNoYW5nZXMpLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX25nWm9uZS5ydW4oKCgpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKG4pKSksdGhpcy5fa2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2dldExheW91dERpcmVjdGlvbigpKX0pKSx0aGlzLl9rZXlNYW5hZ2VyLmNoYW5nZS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodD0+e3RoaXMuaW5kZXhGb2N1c2VkLmVtaXQodCksdGhpcy5fc2V0VGFiRm9jdXModCl9KSl9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7dGhpcy5fdGFiTGFiZWxDb3VudCE9dGhpcy5faXRlbXMubGVuZ3RoJiYodGhpcy51cGRhdGVQYWdpbmF0aW9uKCksdGhpcy5fdGFiTGFiZWxDb3VudD10aGlzLl9pdGVtcy5sZW5ndGgsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpLHRoaXMuX3NlbGVjdGVkSW5kZXhDaGFuZ2VkJiYodGhpcy5fc2Nyb2xsVG9MYWJlbCh0aGlzLl9zZWxlY3RlZEluZGV4KSx0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCksdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCksdGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQ9ITEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpLHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCYmKHRoaXMuX3VwZGF0ZVRhYlNjcm9sbFBvc2l0aW9uKCksdGhpcy5fc2Nyb2xsRGlzdGFuY2VDaGFuZ2VkPSExLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZC5uZXh0KCksdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCksdGhpcy5fc3RvcFNjcm9sbGluZy5jb21wbGV0ZSgpfV9oYW5kbGVLZXlkb3duKHQpe2lmKCFieih0KSlzd2l0Y2godC5rZXlDb2RlKXtjYXNlIG16OmNhc2UgZno6dGhpcy5mb2N1c0luZGV4IT09dGhpcy5zZWxlY3RlZEluZGV4JiYodGhpcy5zZWxlY3RGb2N1c2VkSW5kZXguZW1pdCh0aGlzLmZvY3VzSW5kZXgpLHRoaXMuX2l0ZW1TZWxlY3RlZCh0KSk7YnJlYWs7ZGVmYXVsdDp0aGlzLl9rZXlNYW5hZ2VyLm9uS2V5ZG93bih0KX19X29uQ29udGVudENoYW5nZXMoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudDt0IT09dGhpcy5fY3VycmVudFRleHRDb250ZW50JiYodGhpcy5fY3VycmVudFRleHRDb250ZW50PXR8fCIiLHRoaXMuX25nWm9uZS5ydW4oKCgpPT57dGhpcy51cGRhdGVQYWdpbmF0aW9uKCksdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSkpfXVwZGF0ZVBhZ2luYXRpb24oKXt0aGlzLl9jaGVja1BhZ2luYXRpb25FbmFibGVkKCksdGhpcy5fY2hlY2tTY3JvbGxpbmdDb250cm9scygpLHRoaXMuX3VwZGF0ZVRhYlNjcm9sbFBvc2l0aW9uKCl9Z2V0IGZvY3VzSW5kZXgoKXtyZXR1cm4gdGhpcy5fa2V5TWFuYWdlcj90aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleDowfXNldCBmb2N1c0luZGV4KHQpe3RoaXMuX2lzVmFsaWRJbmRleCh0KSYmdGhpcy5mb2N1c0luZGV4IT09dCYmdGhpcy5fa2V5TWFuYWdlciYmdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHQpfV9pc1ZhbGlkSW5kZXgodCl7aWYoIXRoaXMuX2l0ZW1zKXJldHVybiEwO2NvbnN0IGU9dGhpcy5faXRlbXM/dGhpcy5faXRlbXMudG9BcnJheSgpW3RdOm51bGw7cmV0dXJuISFlJiYhZS5kaXNhYmxlZH1fc2V0VGFiRm9jdXModCl7aWYodGhpcy5fc2hvd1BhZ2luYXRpb25Db250cm9scyYmdGhpcy5fc2Nyb2xsVG9MYWJlbCh0KSx0aGlzLl9pdGVtcyYmdGhpcy5faXRlbXMubGVuZ3RoKXt0aGlzLl9pdGVtcy50b0FycmF5KClbdF0uZm9jdXMoKTtjb25zdCBlPXRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudCxuPXRoaXMuX2dldExheW91dERpcmVjdGlvbigpO2Uuc2Nyb2xsTGVmdD0ibHRyIj09bj8wOmUuc2Nyb2xsV2lkdGgtZS5vZmZzZXRXaWR0aH19X2dldExheW91dERpcmVjdGlvbigpe3JldHVybiB0aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlPyJydGwiOiJsdHIifV91cGRhdGVUYWJTY3JvbGxQb3NpdGlvbigpe2lmKHRoaXMuZGlzYWJsZVBhZ2luYXRpb24pcmV0dXJuO2NvbnN0IHQ9dGhpcy5zY3JvbGxEaXN0YW5jZSxlPSJsdHIiPT09dGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCk/LXQ6dDt0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVYKCR7TWF0aC5yb3VuZChlKX1weClgLCh0aGlzLl9wbGF0Zm9ybS5UUklERU5UfHx0aGlzLl9wbGF0Zm9ybS5FREdFKSYmKHRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0PTApfWdldCBzY3JvbGxEaXN0YW5jZSgpe3JldHVybiB0aGlzLl9zY3JvbGxEaXN0YW5jZX1zZXQgc2Nyb2xsRGlzdGFuY2UodCl7dGhpcy5fc2Nyb2xsVG8odCl9X3Njcm9sbEhlYWRlcih0KXtyZXR1cm4gdGhpcy5fc2Nyb2xsVG8odGhpcy5fc2Nyb2xsRGlzdGFuY2UrKCJiZWZvcmUiPT10Py0xOjEpKnRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aC8zKX1faGFuZGxlUGFnaW5hdG9yQ2xpY2sodCl7dGhpcy5fc3RvcEludGVydmFsKCksdGhpcy5fc2Nyb2xsSGVhZGVyKHQpfV9zY3JvbGxUb0xhYmVsKHQpe2lmKHRoaXMuZGlzYWJsZVBhZ2luYXRpb24pcmV0dXJuO2NvbnN0IGU9dGhpcy5faXRlbXM/dGhpcy5faXRlbXMudG9BcnJheSgpW3RdOm51bGw7aWYoIWUpcmV0dXJuO2NvbnN0IG49dGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLHtvZmZzZXRMZWZ0Om8sb2Zmc2V0V2lkdGg6aX09ZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7bGV0IGEscjsibHRyIj09dGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCk/KGE9byxyPWEraSk6KHI9dGhpcy5fdGFiTGlzdC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLW8sYT1yLWkpO2NvbnN0IHM9dGhpcy5zY3JvbGxEaXN0YW5jZSxsPXRoaXMuc2Nyb2xsRGlzdGFuY2UrbjthPHM/dGhpcy5zY3JvbGxEaXN0YW5jZS09cy1hKzYwOnI+bCYmKHRoaXMuc2Nyb2xsRGlzdGFuY2UrPXItbCs2MCl9X2NoZWNrUGFnaW5hdGlvbkVuYWJsZWQoKXtpZih0aGlzLmRpc2FibGVQYWdpbmF0aW9uKXRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHM9ITE7ZWxzZXtjb25zdCB0PXRoaXMuX3RhYkxpc3QubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aD50aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7dHx8KHRoaXMuc2Nyb2xsRGlzdGFuY2U9MCksdCE9PXRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHMmJnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHM9dH19X2NoZWNrU2Nyb2xsaW5nQ29udHJvbHMoKXt0aGlzLmRpc2FibGVQYWdpbmF0aW9uP3RoaXMuX2Rpc2FibGVTY3JvbGxBZnRlcj10aGlzLl9kaXNhYmxlU2Nyb2xsQmVmb3JlPSEwOih0aGlzLl9kaXNhYmxlU2Nyb2xsQmVmb3JlPTA9PXRoaXMuc2Nyb2xsRGlzdGFuY2UsdGhpcy5fZGlzYWJsZVNjcm9sbEFmdGVyPXRoaXMuc2Nyb2xsRGlzdGFuY2U9PXRoaXMuX2dldE1heFNjcm9sbERpc3RhbmNlKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfV9nZXRNYXhTY3JvbGxEaXN0YW5jZSgpe3JldHVybiB0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGgtdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofHwwfV9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKXtjb25zdCB0PXRoaXMuX2l0ZW1zJiZ0aGlzLl9pdGVtcy5sZW5ndGg/dGhpcy5faXRlbXMudG9BcnJheSgpW3RoaXMuc2VsZWN0ZWRJbmRleF06bnVsbCxlPXQ/dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ6bnVsbDtlP3RoaXMuX2lua0Jhci5hbGlnblRvRWxlbWVudChlKTp0aGlzLl9pbmtCYXIuaGlkZSgpfV9zdG9wSW50ZXJ2YWwoKXt0aGlzLl9zdG9wU2Nyb2xsaW5nLm5leHQoKX1faGFuZGxlUGFnaW5hdG9yUHJlc3ModCxlKXtlJiZudWxsIT1lLmJ1dHRvbiYmMCE9PWUuYnV0dG9ufHwodGhpcy5fc3RvcEludGVydmFsKCksYWUoNjUwLDEwMCkucGlwZShJZShyZSh0aGlzLl9zdG9wU2Nyb2xsaW5nLHRoaXMuX2Rlc3Ryb3llZCkpKS5zdWJzY3JpYmUoKCgpPT57Y29uc3R7bWF4U2Nyb2xsRGlzdGFuY2U6ZSxkaXN0YW5jZTpufT10aGlzLl9zY3JvbGxIZWFkZXIodCk7KDA9PT1ufHxuPj1lKSYmdGhpcy5fc3RvcEludGVydmFsKCl9KSkpfV9zY3JvbGxUbyh0KXtpZih0aGlzLmRpc2FibGVQYWdpbmF0aW9uKXJldHVybnttYXhTY3JvbGxEaXN0YW5jZTowLGRpc3RhbmNlOjB9O2NvbnN0IGU9dGhpcy5fZ2V0TWF4U2Nyb2xsRGlzdGFuY2UoKTtyZXR1cm4gdGhpcy5fc2Nyb2xsRGlzdGFuY2U9TWF0aC5tYXgoMCxNYXRoLm1pbihlLHQpKSx0aGlzLl9zY3JvbGxEaXN0YW5jZUNoYW5nZWQ9ITAsdGhpcy5fY2hlY2tTY3JvbGxpbmdDb250cm9scygpLHttYXhTY3JvbGxEaXN0YW5jZTplLGRpc3RhbmNlOnRoaXMuX3Njcm9sbERpc3RhbmNlfX19akIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGpCKShTbShoZyksU20oVWcpLFNtKHVGKSxTbShISSw4KSxTbShhXyksU20od3opLFNtKFZQLDgpKX0sakIuybVkaXI9bG8oe3R5cGU6akIsaW5wdXRzOntkaXNhYmxlUGFnaW5hdGlvbjoiZGlzYWJsZVBhZ2luYXRpb24ifX0pLGpCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp1Rn0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sakIucHJvcERlY29yYXRvcnM9e2Rpc2FibGVQYWdpbmF0aW9uOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGpCLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnVGfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XX0pLHtkaXNhYmxlUGFnaW5hdGlvbjpbe3R5cGU6eHl9XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgVUIgZXh0ZW5kcyBqQntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXtzdXBlcih0LGUsbixvLGksYSxyKSx0aGlzLl9kaXNhYmxlUmlwcGxlPSExfWdldCBkaXNhYmxlUmlwcGxlKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVSaXBwbGV9c2V0IGRpc2FibGVSaXBwbGUodCl7dGhpcy5fZGlzYWJsZVJpcHBsZT15eih0KX1faXRlbVNlbGVjdGVkKHQpe3QucHJldmVudERlZmF1bHQoKX19VUIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVCKShTbShoZyksU20oVWcpLFNtKHVGKSxTbShISSw4KSxTbShhXyksU20od3opLFNtKFZQLDgpKX0sVUIuybVkaXI9bG8oe3R5cGU6VUIsaW5wdXRzOntkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIn0sZmVhdHVyZXM6W3hwXX0pLFVCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp1Rn0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sVUIucHJvcERlY29yYXRvcnM9e2Rpc2FibGVSaXBwbGU6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVUIsW3t0eXBlOkN5fV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6dUZ9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse2Rpc2FibGVSaXBwbGU6W3t0eXBlOnh5fV19KTtjbGFzcyBHQiBleHRlbmRzIFVCe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3N1cGVyKHQsZSxuLG8saSxhLHIpfX1HQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8R0IpKFNtKGhnKSxTbShVZyksU20odUYpLFNtKEhJLDgpLFNtKGFfKSxTbSh3eiksU20oVlAsOCkpfSxHQi7JtWNtcD10byh7dHlwZTpHQixzZWxlY3RvcnM6W1sibWF0LXRhYi1oZWFkZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYkaChvLEJCLDQpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX2l0ZW1zPXQpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChNQiw3KSxRaChnQiw3KSxRaChoQiw3KSxRaChiQiw1KSxRaCh5Qiw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5faW5rQmFyPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl90YWJMaXN0Q29udGFpbmVyPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl90YWJMaXN0PXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9uZXh0UGFnaW5hdG9yPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9wcmV2aW91c1BhZ2luYXRvcj10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LXRhYi1oZWFkZXIiXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIixuLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzKSgibWF0LXRhYi1oZWFkZXItcnRsIiwicnRsIj09bi5fZ2V0TGF5b3V0RGlyZWN0aW9uKCkpfSxpbnB1dHM6e3NlbGVjdGVkSW5kZXg6InNlbGVjdGVkSW5kZXgifSxvdXRwdXRzOntzZWxlY3RGb2N1c2VkSW5kZXg6InNlbGVjdEZvY3VzZWRJbmRleCIsaW5kZXhGb2N1c2VkOiJpbmRleEZvY3VzZWQifSxmZWF0dXJlczpbeHBdLG5nQ29udGVudFNlbGVjdG9yczppQixkZWNsczoxMyx2YXJzOjgsY29uc3RzOltbImFyaWEtaGlkZGVuIiwidHJ1ZSIsIm1hdC1yaXBwbGUiLCIiLDEsIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24iLCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSIsIm1hdC1lbGV2YXRpb24tejQiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwiY2xpY2siLCJtb3VzZWRvd24iLCJ0b3VjaGVuZCJdLFsicHJldmlvdXNQYWdpbmF0b3IiLCIiXSxbMSwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIl0sWzEsIm1hdC10YWItbGFiZWwtY29udGFpbmVyIiwzLCJrZXlkb3duIl0sWyJ0YWJMaXN0Q29udGFpbmVyIiwiIl0sWyJyb2xlIiwidGFibGlzdCIsMSwibWF0LXRhYi1saXN0IiwzLCJjZGtPYnNlcnZlQ29udGVudCJdLFsidGFiTGlzdCIsIiJdLFsxLCJtYXQtdGFiLWxhYmVscyJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwibWF0LXJpcHBsZSIsIiIsMSwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiIsIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIiLCJtYXQtZWxldmF0aW9uLXo0IiwzLCJtYXRSaXBwbGVEaXNhYmxlZCIsIm1vdXNlZG93biIsImNsaWNrIiwidG91Y2hlbmQiXSxbIm5leHRQYWdpbmF0b3IiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFptKCksUm0oMCwiZGl2IiwwLDEpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5faGFuZGxlUGFnaW5hdG9yQ2xpY2soImJlZm9yZSIpfSkpKCJtb3VzZWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVQYWdpbmF0b3JQcmVzcygiYmVmb3JlIixlKX0pKSgidG91Y2hlbmQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX3N0b3BJbnRlcnZhbCgpfSkpLFRtKDIsImRpdiIsMiksQW0oKSxSbSgzLCJkaXYiLDMsNCksVm0oImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVLZXlkb3duKGUpfSkpLFJtKDUsImRpdiIsNSw2KSxWbSgiY2RrT2JzZXJ2ZUNvbnRlbnQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uQ29udGVudENoYW5nZXMoKX0pKSxSbSg3LCJkaXYiLDcpLFhtKDgpLEFtKCksVG0oOSwibWF0LWluay1iYXIiKSxBbSgpLEFtKCksUm0oMTAsImRpdiIsOCw5KSxWbSgibW91c2Vkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlUGFnaW5hdG9yUHJlc3MoImFmdGVyIixlKX0pKSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2hhbmRsZVBhZ2luYXRvckNsaWNrKCJhZnRlciIpfSkpKCJ0b3VjaGVuZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc3RvcEludGVydmFsKCl9KSksVG0oMTIsImRpdiIsMiksQW0oKSksMiZlJiYocHUoIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQiLG4uX2Rpc2FibGVTY3JvbGxCZWZvcmUpLERtKCJtYXRSaXBwbGVEaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEJlZm9yZXx8bi5kaXNhYmxlUmlwcGxlKSxyYyg1KSxwdSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1uLl9hbmltYXRpb25Nb2RlKSxyYyg1KSxwdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEFmdGVyKSxEbSgibWF0UmlwcGxlRGlzYWJsZWQiLG4uX2Rpc2FibGVTY3JvbGxBZnRlcnx8bi5kaXNhYmxlUmlwcGxlKSl9LGRpcmVjdGl2ZXM6W2tILGp6LE1CXSxzdHlsZXM6WycubWF0LXRhYi1oZWFkZXJ7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LXNocmluazowfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Om5vbmU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOjMycHg7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0b3VjaC1hY3Rpb246bm9uZX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2Rpc3BsYXk6ZmxleH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUsLm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlcntwYWRkaW5nLWxlZnQ6NHB4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlLC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVye3BhZGRpbmctcmlnaHQ6NHB4fS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4IDJweCAwIDA7Y29udGVudDoiIjtoZWlnaHQ6OHB4O3dpZHRoOjhweH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZHtib3gtc2hhZG93Om5vbmU7Y3Vyc29yOmRlZmF1bHR9Lm1hdC10YWItbGlzdHtmbGV4LWdyb3c6MTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Lm1hdC1pbmstYmFye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2hlaWdodDoycHg7dHJhbnNpdGlvbjo1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1pbmstYmFye3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC1pbmstYmFye2JvdHRvbTphdXRvO3RvcDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pbmstYmFye291dGxpbmU6c29saWQgMnB4O2hlaWdodDowfS5tYXQtdGFiLWxhYmVsc3tkaXNwbGF5OmZsZXh9W21hdC1hbGlnbi10YWJzPWNlbnRlcl0+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsc3tqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVttYXQtYWxpZ24tdGFicz1lbmRdPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbHN7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5tYXQtdGFiLWxhYmVsLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXRhYi1saXN0e3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXRhYi1sYWJlbHtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMjRweDtjdXJzb3I6cG9pbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3BhY2l0eTouNjttaW4td2lkdGg6MTYwcHg7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpub25lfS5tYXQtdGFiLWxhYmVsOmZvY3VzOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpkb3R0ZWQgMnB4O291dGxpbmUtb2Zmc2V0Oi0ycHh9Lm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LXRhYi1sYWJlbCAubWF0LXRhYi1sYWJlbC1jb250ZW50e2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWx7b3BhY2l0eToxfUBtZWRpYShtYXgtd2lkdGg6IDU5OXB4KXsubWF0LXRhYi1sYWJlbHttaW4td2lkdGg6NzJweH19XG4nXSxlbmNhcHN1bGF0aW9uOjJ9KSxHQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6dUZ9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dLEdCLnByb3BEZWNvcmF0b3JzPXtfaXRlbXM6W3t0eXBlOllhLGFyZ3M6W0JCLHtkZXNjZW5kYW50czohMX1dfV0sX2lua0Jhcjpbe3R5cGU6WmEsYXJnczpbTUIse3N0YXRpYzohMH1dfV0sX3RhYkxpc3RDb250YWluZXI6W3t0eXBlOlphLGFyZ3M6WyJ0YWJMaXN0Q29udGFpbmVyIix7c3RhdGljOiEwfV19XSxfdGFiTGlzdDpbe3R5cGU6WmEsYXJnczpbInRhYkxpc3QiLHtzdGF0aWM6ITB9XX1dLF9uZXh0UGFnaW5hdG9yOlt7dHlwZTpaYSxhcmdzOlsibmV4dFBhZ2luYXRvciJdfV0sX3ByZXZpb3VzUGFnaW5hdG9yOlt7dHlwZTpaYSxhcmdzOlsicHJldmlvdXNQYWdpbmF0b3IiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEdCLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC10YWItaGVhZGVyIix0ZW1wbGF0ZTonPGRpdiBjbGFzcz0ibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiBtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSBtYXQtZWxldmF0aW9uLXo0IlxuICAgICAjcHJldmlvdXNQYWdpbmF0b3JcbiAgICAgYXJpYS1oaWRkZW49InRydWUiXG4gICAgIG1hdC1yaXBwbGUgW21hdFJpcHBsZURpc2FibGVkXT0iX2Rpc2FibGVTY3JvbGxCZWZvcmUgfHwgZGlzYWJsZVJpcHBsZSJcbiAgICAgW2NsYXNzLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEJlZm9yZSJcbiAgICAgKGNsaWNrKT0iX2hhbmRsZVBhZ2luYXRvckNsaWNrKFwnYmVmb3JlXCcpIlxuICAgICAobW91c2Vkb3duKT0iX2hhbmRsZVBhZ2luYXRvclByZXNzKFwnYmVmb3JlXCcsICRldmVudCkiXG4gICAgICh0b3VjaGVuZCk9Il9zdG9wSW50ZXJ2YWwoKSI+XG4gIDxkaXYgY2xhc3M9Im1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiI+PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz0ibWF0LXRhYi1sYWJlbC1jb250YWluZXIiICN0YWJMaXN0Q29udGFpbmVyIChrZXlkb3duKT0iX2hhbmRsZUtleWRvd24oJGV2ZW50KSI+XG4gIDxkaXZcbiAgICAjdGFiTGlzdFxuICAgIGNsYXNzPSJtYXQtdGFiLWxpc3QiXG4gICAgW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXT0iX2FuaW1hdGlvbk1vZGUgPT09IFwnTm9vcEFuaW1hdGlvbnNcJyJcbiAgICByb2xlPSJ0YWJsaXN0IlxuICAgIChjZGtPYnNlcnZlQ29udGVudCk9Il9vbkNvbnRlbnRDaGFuZ2VzKCkiPlxuICAgIDxkaXYgY2xhc3M9Im1hdC10YWItbGFiZWxzIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bWF0LWluay1iYXI+PC9tYXQtaW5rLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz0ibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiBtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVyIG1hdC1lbGV2YXRpb24tejQiXG4gICAgICNuZXh0UGFnaW5hdG9yXG4gICAgIGFyaWEtaGlkZGVuPSJ0cnVlIlxuICAgICBtYXQtcmlwcGxlIFttYXRSaXBwbGVEaXNhYmxlZF09Il9kaXNhYmxlU2Nyb2xsQWZ0ZXIgfHwgZGlzYWJsZVJpcHBsZSJcbiAgICAgW2NsYXNzLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEFmdGVyIlxuICAgICAobW91c2Vkb3duKT0iX2hhbmRsZVBhZ2luYXRvclByZXNzKFwnYWZ0ZXJcJywgJGV2ZW50KSJcbiAgICAgKGNsaWNrKT0iX2hhbmRsZVBhZ2luYXRvckNsaWNrKFwnYWZ0ZXJcJykiXG4gICAgICh0b3VjaGVuZCk9Il9zdG9wSW50ZXJ2YWwoKSI+XG4gIDxkaXYgY2xhc3M9Im1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiI+PC9kaXY+XG48L2Rpdj5cbicsaW5wdXRzOlsic2VsZWN0ZWRJbmRleCJdLG91dHB1dHM6WyJzZWxlY3RGb2N1c2VkSW5kZXgiLCJpbmRleEZvY3VzZWQiXSxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLkRlZmF1bHQsaG9zdDp7Y2xhc3M6Im1hdC10YWItaGVhZGVyIiwiW2NsYXNzLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY29udHJvbHMtZW5hYmxlZF0iOiJfc2hvd1BhZ2luYXRpb25Db250cm9scyIsIltjbGFzcy5tYXQtdGFiLWhlYWRlci1ydGxdIjoiX2dldExheW91dERpcmVjdGlvbigpID09ICdydGwnIn0sc3R5bGVzOlsnLm1hdC10YWItaGVhZGVye2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7ZmxleC1zaHJpbms6MH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpub25lO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21pbi13aWR0aDozMnB4O2N1cnNvcjpwb2ludGVyO3otaW5kZXg6Mjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dG91Y2gtYWN0aW9uOm5vbmV9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY29udHJvbHMtZW5hYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntkaXNwbGF5OmZsZXh9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlLC5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXJ7cGFkZGluZy1sZWZ0OjRweH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKX0ubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSwubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlcntwYWRkaW5nLXJpZ2h0OjRweH0ubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweCAycHggMCAwO2NvbnRlbnQ6IiI7aGVpZ2h0OjhweDt3aWR0aDo4cHh9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWR7Ym94LXNoYWRvdzpub25lO2N1cnNvcjpkZWZhdWx0fS5tYXQtdGFiLWxpc3R7ZmxleC1ncm93OjE7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5tYXQtaW5rLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtoZWlnaHQ6MnB4O3RyYW5zaXRpb246NTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtaW5rLWJhcnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtaW5rLWJhcntib3R0b206YXV0bzt0b3A6MH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtaW5rLWJhcntvdXRsaW5lOnNvbGlkIDJweDtoZWlnaHQ6MH0ubWF0LXRhYi1sYWJlbHN7ZGlzcGxheTpmbGV4fVttYXQtYWxpZ24tdGFicz1jZW50ZXJdPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbHN7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bbWF0LWFsaWduLXRhYnM9ZW5kXT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWxze2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ubWF0LXRhYi1sYWJlbC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO292ZXJmbG93OmhpZGRlbjt6LWluZGV4OjF9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC10YWItbGlzdHt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItbGFiZWx7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDI0cHg7Y3Vyc29yOnBvaW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6LjY7bWluLXdpZHRoOjE2MHB4O3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtdGFiLWxhYmVsOmZvY3Vze291dGxpbmU6bm9uZX0ubWF0LXRhYi1sYWJlbDpmb2N1czpub3QoLm1hdC10YWItZGlzYWJsZWQpe29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVsOmZvY3Vze291dGxpbmU6ZG90dGVkIDJweDtvdXRsaW5lLW9mZnNldDotMnB4fS5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVke29wYWNpdHk6LjV9Lm1hdC10YWItbGFiZWwgLm1hdC10YWItbGFiZWwtY29udGVudHtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVse29wYWNpdHk6MX1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Lm1hdC10YWItbGFiZWx7bWluLXdpZHRoOjcycHh9fVxuJ119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnVGfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XX0pLHtfaXRlbXM6W3t0eXBlOllhLGFyZ3M6W0JCLHtkZXNjZW5kYW50czohMX1dfV0sX2lua0Jhcjpbe3R5cGU6WmEsYXJnczpbTUIse3N0YXRpYzohMH1dfV0sX3RhYkxpc3RDb250YWluZXI6W3t0eXBlOlphLGFyZ3M6WyJ0YWJMaXN0Q29udGFpbmVyIix7c3RhdGljOiEwfV19XSxfdGFiTGlzdDpbe3R5cGU6WmEsYXJnczpbInRhYkxpc3QiLHtzdGF0aWM6ITB9XX1dLF9uZXh0UGFnaW5hdG9yOlt7dHlwZTpaYSxhcmdzOlsibmV4dFBhZ2luYXRvciJdfV0sX3ByZXZpb3VzUGFnaW5hdG9yOlt7dHlwZTpaYSxhcmdzOlsicHJldmlvdXNQYWdpbmF0b3IiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBXQiBleHRlbmRzIGpCe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3N1cGVyKHQsbyxpLGUsbixhLHIpLHRoaXMuX2Rpc2FibGVSaXBwbGU9ITEsdGhpcy5jb2xvcj0icHJpbWFyeSJ9Z2V0IGJhY2tncm91bmRDb2xvcigpe3JldHVybiB0aGlzLl9iYWNrZ3JvdW5kQ29sb3J9c2V0IGJhY2tncm91bmRDb2xvcih0KXtjb25zdCBlPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3Q7ZS5yZW1vdmUoYG1hdC1iYWNrZ3JvdW5kLSR7dGhpcy5iYWNrZ3JvdW5kQ29sb3J9YCksdCYmZS5hZGQoYG1hdC1iYWNrZ3JvdW5kLSR7dH1gKSx0aGlzLl9iYWNrZ3JvdW5kQ29sb3I9dH1nZXQgZGlzYWJsZVJpcHBsZSgpe3JldHVybiB0aGlzLl9kaXNhYmxlUmlwcGxlfXNldCBkaXNhYmxlUmlwcGxlKHQpe3RoaXMuX2Rpc2FibGVSaXBwbGU9eXoodCl9X2l0ZW1TZWxlY3RlZCgpe31uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9pdGVtcy5jaGFuZ2VzLnBpcGUoTmUobnVsbCksSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMudXBkYXRlQWN0aXZlTGluaygpfSkpLHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpfXVwZGF0ZUFjdGl2ZUxpbmsoKXtpZighdGhpcy5faXRlbXMpcmV0dXJuO2NvbnN0IHQ9dGhpcy5faXRlbXMudG9BcnJheSgpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV0uYWN0aXZlKXJldHVybiB0aGlzLnNlbGVjdGVkSW5kZXg9ZSx2b2lkIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO3RoaXMuc2VsZWN0ZWRJbmRleD0tMSx0aGlzLl9pbmtCYXIuaGlkZSgpfX1XQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8V0IpKFNtKGhnKSxTbShISSw4KSxTbShhXyksU20oVWcpLFNtKHVGKSxTbSh3eiksU20oVlAsOCkpfSxXQi7JtWRpcj1sbyh7dHlwZTpXQixpbnB1dHM6e2NvbG9yOiJjb2xvciIsYmFja2dyb3VuZENvbG9yOiJiYWNrZ3JvdW5kQ29sb3IiLGRpc2FibGVSaXBwbGU6ImRpc2FibGVSaXBwbGUifSxmZWF0dXJlczpbeHBdfSksV0IuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6YV99LHt0eXBlOlVnfSx7dHlwZTp1Rn0se3R5cGU6d3p9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XSxXQi5wcm9wRGVjb3JhdG9ycz17YmFja2dyb3VuZENvbG9yOlt7dHlwZTp4eX1dLGRpc2FibGVSaXBwbGU6W3t0eXBlOnh5fV0sY29sb3I6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoV0IsW3t0eXBlOkN5fV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTphX30se3R5cGU6VWd9LHt0eXBlOnVGfSx7dHlwZTp3en0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse2NvbG9yOlt7dHlwZTp4eX1dLGJhY2tncm91bmRDb2xvcjpbe3R5cGU6eHl9XSxkaXNhYmxlUmlwcGxlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgWUIgZXh0ZW5kcyBXQntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXtzdXBlcih0LGUsbixvLGksYSxyKX19WUIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFlCKShTbShoZyksU20oSEksOCksU20oYV8pLFNtKFVnKSxTbSh1RiksU20od3opLFNtKFZQLDgpKX0sWUIuybVjbXA9dG8oe3R5cGU6WUIsc2VsZWN0b3JzOltbIiIsIm1hdC10YWItbmF2LWJhciIsIiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJiRoKG8sWEIsNSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5faXRlbXM9dCl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKE1CLDcpLFFoKGdCLDcpLFFoKGhCLDcpLFFoKGJCLDUpLFFoKHlCLDUpKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLl9pbmtCYXI9dC5maXJzdCksSmgodD10YigpKSYmKG4uX3RhYkxpc3RDb250YWluZXI9dC5maXJzdCksSmgodD10YigpKSYmKG4uX3RhYkxpc3Q9dC5maXJzdCksSmgodD10YigpKSYmKG4uX25leHRQYWdpbmF0b3I9dC5maXJzdCksSmgodD10YigpKSYmKG4uX3ByZXZpb3VzUGFnaW5hdG9yPXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtdGFiLW5hdi1iYXIiLCJtYXQtdGFiLWhlYWRlciJdLGhvc3RWYXJzOjEwLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIixuLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzKSgibWF0LXRhYi1oZWFkZXItcnRsIiwicnRsIj09bi5fZ2V0TGF5b3V0RGlyZWN0aW9uKCkpKCJtYXQtcHJpbWFyeSIsIndhcm4iIT09bi5jb2xvciYmImFjY2VudCIhPT1uLmNvbG9yKSgibWF0LWFjY2VudCIsImFjY2VudCI9PT1uLmNvbG9yKSgibWF0LXdhcm4iLCJ3YXJuIj09PW4uY29sb3IpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciJ9LGV4cG9ydEFzOlsibWF0VGFiTmF2QmFyIiwibWF0VGFiTmF2Il0sZmVhdHVyZXM6W3hwXSxhdHRyczpbIm1hdC10YWItbmF2LWJhciIsIiJdLG5nQ29udGVudFNlbGVjdG9yczppQixkZWNsczoxMyx2YXJzOjgsY29uc3RzOltbImFyaWEtaGlkZGVuIiwidHJ1ZSIsIm1hdC1yaXBwbGUiLCIiLDEsIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24iLCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSIsIm1hdC1lbGV2YXRpb24tejQiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwiY2xpY2siLCJtb3VzZWRvd24iLCJ0b3VjaGVuZCJdLFsicHJldmlvdXNQYWdpbmF0b3IiLCIiXSxbMSwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIl0sWzEsIm1hdC10YWItbGluay1jb250YWluZXIiLDMsImtleWRvd24iXSxbInRhYkxpc3RDb250YWluZXIiLCIiXSxbMSwibWF0LXRhYi1saXN0IiwzLCJjZGtPYnNlcnZlQ29udGVudCJdLFsidGFiTGlzdCIsIiJdLFsxLCJtYXQtdGFiLWxpbmtzIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLCJtYXQtcmlwcGxlIiwiIiwxLCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIiwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciIsIm1hdC1lbGV2YXRpb24tejQiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwibW91c2Vkb3duIiwiY2xpY2siLCJ0b3VjaGVuZCJdLFsibmV4dFBhZ2luYXRvciIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoWm0oKSxSbSgwLCJkaXYiLDAsMSksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9oYW5kbGVQYWdpbmF0b3JDbGljaygiYmVmb3JlIil9KSkoIm1vdXNlZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZVBhZ2luYXRvclByZXNzKCJiZWZvcmUiLGUpfSkpKCJ0b3VjaGVuZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc3RvcEludGVydmFsKCl9KSksVG0oMiwiZGl2IiwyKSxBbSgpLFJtKDMsImRpdiIsMyw0KSxWbSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUtleWRvd24oZSl9KSksUm0oNSwiZGl2Iiw1LDYpLFZtKCJjZGtPYnNlcnZlQ29udGVudCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25Db250ZW50Q2hhbmdlcygpfSkpLFJtKDcsImRpdiIsNyksWG0oOCksQW0oKSxUbSg5LCJtYXQtaW5rLWJhciIpLEFtKCksQW0oKSxSbSgxMCwiZGl2Iiw4LDkpLFZtKCJtb3VzZWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVQYWdpbmF0b3JQcmVzcygiYWZ0ZXIiLGUpfSkpKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5faGFuZGxlUGFnaW5hdG9yQ2xpY2soImFmdGVyIil9KSkoInRvdWNoZW5kIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9zdG9wSW50ZXJ2YWwoKX0pKSxUbSgxMiwiZGl2IiwyKSxBbSgpKSwyJmUmJihwdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEJlZm9yZSksRG0oIm1hdFJpcHBsZURpc2FibGVkIixuLl9kaXNhYmxlU2Nyb2xsQmVmb3JlfHxuLmRpc2FibGVSaXBwbGUpLHJjKDUpLHB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpLHJjKDUpLHB1KCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIixuLl9kaXNhYmxlU2Nyb2xsQWZ0ZXIpLERtKCJtYXRSaXBwbGVEaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEFmdGVyfHxuLmRpc2FibGVSaXBwbGUpKX0sZGlyZWN0aXZlczpba0gsanosTUJdLHN0eWxlczpbJy5tYXQtdGFiLWhlYWRlcntkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjB9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6bm9uZTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4td2lkdGg6MzJweDtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RvdWNoLWFjdGlvbjpub25lfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNvbnRyb2xzLWVuYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257ZGlzcGxheTpmbGV4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSwubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVye3BhZGRpbmctbGVmdDo0cHh9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue3RyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyl9Lm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUsLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXJ7cGFkZGluZy1yaWdodDo0cHh9Lm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHggMnB4IDAgMDtjb250ZW50OiIiO2hlaWdodDo4cHg7d2lkdGg6OHB4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVke2JveC1zaGFkb3c6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LXRhYi1saXN0e2ZsZXgtZ3JvdzoxO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246dHJhbnNmb3JtIDUwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0ubWF0LXRhYi1saW5rc3tkaXNwbGF5OmZsZXh9W21hdC1hbGlnbi10YWJzPWNlbnRlcl0+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3N7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bbWF0LWFsaWduLXRhYnM9ZW5kXT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rc3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lm1hdC1pbmstYmFye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2hlaWdodDoycHg7dHJhbnNpdGlvbjo1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1pbmstYmFye3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC1pbmstYmFye2JvdHRvbTphdXRvO3RvcDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pbmstYmFye291dGxpbmU6c29saWQgMnB4O2hlaWdodDowfS5tYXQtdGFiLWxpbmstY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDoxfS5tYXQtdGFiLWxpbmt7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDI0cHg7Y3Vyc29yOnBvaW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6LjY7bWluLXdpZHRoOjE2MHB4O3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3ZlcnRpY2FsLWFsaWduOnRvcDt0ZXh0LWRlY29yYXRpb246bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtdGFiLWxpbms6Zm9jdXN7b3V0bGluZTpub25lfS5tYXQtdGFiLWxpbms6Zm9jdXM6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1saW5rOmZvY3Vze291dGxpbmU6ZG90dGVkIDJweDtvdXRsaW5lLW9mZnNldDotMnB4fS5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtvcGFjaXR5Oi41fS5tYXQtdGFiLWxpbmsgLm1hdC10YWItbGFiZWwtY29udGVudHtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxpbmt7b3BhY2l0eToxfVttYXQtc3RyZXRjaC10YWJzXSAubWF0LXRhYi1saW5re2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MX0ubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZX1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Lm1hdC10YWItbGlua3ttaW4td2lkdGg6NzJweH19XG4nXSxlbmNhcHN1bGF0aW9uOjJ9KSxZQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTphX30se3R5cGU6VWd9LHt0eXBlOnVGfSx7dHlwZTp3en0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dLFlCLnByb3BEZWNvcmF0b3JzPXtfaXRlbXM6W3t0eXBlOllhLGFyZ3M6W3FlKCgoKT0+WEIpKSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9pbmtCYXI6W3t0eXBlOlphLGFyZ3M6W01CLHtzdGF0aWM6ITB9XX1dLF90YWJMaXN0Q29udGFpbmVyOlt7dHlwZTpaYSxhcmdzOlsidGFiTGlzdENvbnRhaW5lciIse3N0YXRpYzohMH1dfV0sX3RhYkxpc3Q6W3t0eXBlOlphLGFyZ3M6WyJ0YWJMaXN0Iix7c3RhdGljOiEwfV19XSxfbmV4dFBhZ2luYXRvcjpbe3R5cGU6WmEsYXJnczpbIm5leHRQYWdpbmF0b3IiXX1dLF9wcmV2aW91c1BhZ2luYXRvcjpbe3R5cGU6WmEsYXJnczpbInByZXZpb3VzUGFnaW5hdG9yIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChZQixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJbbWF0LXRhYi1uYXYtYmFyXSIsZXhwb3J0QXM6Im1hdFRhYk5hdkJhciwgbWF0VGFiTmF2IixpbnB1dHM6WyJjb2xvciJdLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIG1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIG1hdC1lbGV2YXRpb24tejQiXG4gICAgICNwcmV2aW91c1BhZ2luYXRvclxuICAgICBhcmlhLWhpZGRlbj0idHJ1ZSJcbiAgICAgbWF0LXJpcHBsZSBbbWF0UmlwcGxlRGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEJlZm9yZSB8fCBkaXNhYmxlUmlwcGxlIlxuICAgICBbY2xhc3MubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZF09Il9kaXNhYmxlU2Nyb2xsQmVmb3JlIlxuICAgICAoY2xpY2spPSJfaGFuZGxlUGFnaW5hdG9yQ2xpY2soXCdiZWZvcmVcJykiXG4gICAgIChtb3VzZWRvd24pPSJfaGFuZGxlUGFnaW5hdG9yUHJlc3MoXCdiZWZvcmVcJywgJGV2ZW50KSJcbiAgICAgKHRvdWNoZW5kKT0iX3N0b3BJbnRlcnZhbCgpIj5cbiAgPGRpdiBjbGFzcz0ibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPSJtYXQtdGFiLWxpbmstY29udGFpbmVyIiAjdGFiTGlzdENvbnRhaW5lciAoa2V5ZG93bik9Il9oYW5kbGVLZXlkb3duKCRldmVudCkiPlxuICA8ZGl2XG4gICAgY2xhc3M9Im1hdC10YWItbGlzdCJcbiAgICBbY2xhc3MuX21hdC1hbmltYXRpb24tbm9vcGFibGVdPSJfYW5pbWF0aW9uTW9kZSA9PT0gXCdOb29wQW5pbWF0aW9uc1wnIlxuICAgICN0YWJMaXN0XG4gICAgKGNka09ic2VydmVDb250ZW50KT0iX29uQ29udGVudENoYW5nZXMoKSI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXRhYi1saW5rcyI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG1hdC1pbmstYmFyPjwvbWF0LWluay1iYXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9Im1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gbWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciBtYXQtZWxldmF0aW9uLXo0IlxuICAgICAjbmV4dFBhZ2luYXRvclxuICAgICBhcmlhLWhpZGRlbj0idHJ1ZSJcbiAgICAgbWF0LXJpcHBsZSBbbWF0UmlwcGxlRGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEFmdGVyIHx8IGRpc2FibGVSaXBwbGUiXG4gICAgIFtjbGFzcy5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkXT0iX2Rpc2FibGVTY3JvbGxBZnRlciJcbiAgICAgKG1vdXNlZG93bik9Il9oYW5kbGVQYWdpbmF0b3JQcmVzcyhcJ2FmdGVyXCcsICRldmVudCkiXG4gICAgIChjbGljayk9Il9oYW5kbGVQYWdpbmF0b3JDbGljayhcJ2FmdGVyXCcpIlxuICAgICAodG91Y2hlbmQpPSJfc3RvcEludGVydmFsKCkiPlxuICA8ZGl2IGNsYXNzPSJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24iPjwvZGl2PlxuPC9kaXY+XG4nLGhvc3Q6e2NsYXNzOiJtYXQtdGFiLW5hdi1iYXIgbWF0LXRhYi1oZWFkZXIiLCJbY2xhc3MubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkXSI6Il9zaG93UGFnaW5hdGlvbkNvbnRyb2xzIiwiW2NsYXNzLm1hdC10YWItaGVhZGVyLXJ0bF0iOiJfZ2V0TGF5b3V0RGlyZWN0aW9uKCkgPT0gJ3J0bCciLCJbY2xhc3MubWF0LXByaW1hcnldIjonY29sb3IgIT09ICJ3YXJuIiAmJiBjb2xvciAhPT0gImFjY2VudCInLCJbY2xhc3MubWF0LWFjY2VudF0iOidjb2xvciA9PT0gImFjY2VudCInLCJbY2xhc3MubWF0LXdhcm5dIjonY29sb3IgPT09ICJ3YXJuIid9LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxzdHlsZXM6WycubWF0LXRhYi1oZWFkZXJ7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LXNocmluazowfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Om5vbmU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOjMycHg7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0b3VjaC1hY3Rpb246bm9uZX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2Rpc3BsYXk6ZmxleH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUsLm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlcntwYWRkaW5nLWxlZnQ6NHB4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlLC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVye3BhZGRpbmctcmlnaHQ6NHB4fS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4IDJweCAwIDA7Y29udGVudDoiIjtoZWlnaHQ6OHB4O3dpZHRoOjhweH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZHtib3gtc2hhZG93Om5vbmU7Y3Vyc29yOmRlZmF1bHR9Lm1hdC10YWItbGlzdHtmbGV4LWdyb3c6MTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Lm1hdC10YWItbGlua3N7ZGlzcGxheTpmbGV4fVttYXQtYWxpZ24tdGFicz1jZW50ZXJdPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmtze2p1c3RpZnktY29udGVudDpjZW50ZXJ9W21hdC1hbGlnbi10YWJzPWVuZF0+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3N7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5tYXQtaW5rLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtoZWlnaHQ6MnB4O3RyYW5zaXRpb246NTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtaW5rLWJhcnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtaW5rLWJhcntib3R0b206YXV0bzt0b3A6MH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtaW5rLWJhcntvdXRsaW5lOnNvbGlkIDJweDtoZWlnaHQ6MH0ubWF0LXRhYi1saW5rLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MX0ubWF0LXRhYi1saW5re2hlaWdodDo0OHB4O3BhZGRpbmc6MCAyNHB4O2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvcGFjaXR5Oi42O21pbi13aWR0aDoxNjBweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjp0b3A7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LXRhYi1saW5rOmZvY3Vze291dGxpbmU6bm9uZX0ubWF0LXRhYi1saW5rOmZvY3VzOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGluazpmb2N1c3tvdXRsaW5lOmRvdHRlZCAycHg7b3V0bGluZS1vZmZzZXQ6LTJweH0ubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LXRhYi1saW5rIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnR7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1saW5re29wYWNpdHk6MX1bbWF0LXN0cmV0Y2gtdGFic10gLm1hdC10YWItbGlua3tmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjF9Lm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmV9QG1lZGlhKG1heC13aWR0aDogNTk5cHgpey5tYXQtdGFiLWxpbmt7bWluLXdpZHRoOjcycHh9fVxuJ119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6YV99LHt0eXBlOlVnfSx7dHlwZTp1Rn0se3R5cGU6d3p9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XX0pLHtfaXRlbXM6W3t0eXBlOllhLGFyZ3M6W3FlKCgoKT0+WEIpKSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9pbmtCYXI6W3t0eXBlOlphLGFyZ3M6W01CLHtzdGF0aWM6ITB9XX1dLF90YWJMaXN0Q29udGFpbmVyOlt7dHlwZTpaYSxhcmdzOlsidGFiTGlzdENvbnRhaW5lciIse3N0YXRpYzohMH1dfV0sX3RhYkxpc3Q6W3t0eXBlOlphLGFyZ3M6WyJ0YWJMaXN0Iix7c3RhdGljOiEwfV19XSxfbmV4dFBhZ2luYXRvcjpbe3R5cGU6WmEsYXJnczpbIm5leHRQYWdpbmF0b3IiXX1dLF9wcmV2aW91c1BhZ2luYXRvcjpbe3R5cGU6WmEsYXJnczpbInByZXZpb3VzUGFnaW5hdG9yIl19XX0pO2NvbnN0IHFCPSRJKFFJKEtJKGNsYXNze30pKSk7Y2xhc3MgWkIgZXh0ZW5kcyBxQntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSl7c3VwZXIoKSx0aGlzLl90YWJOYXZCYXI9dCx0aGlzLmVsZW1lbnRSZWY9ZSx0aGlzLl9mb2N1c01vbml0b3I9aSx0aGlzLl9pc0FjdGl2ZT0hMSx0aGlzLnJpcHBsZUNvbmZpZz1ufHx7fSx0aGlzLnRhYkluZGV4PXBhcnNlSW50KG8pfHwwLCJOb29wQW5pbWF0aW9ucyI9PT1hJiYodGhpcy5yaXBwbGVDb25maWcuYW5pbWF0aW9uPXtlbnRlckR1cmF0aW9uOjAsZXhpdER1cmF0aW9uOjB9KX1nZXQgYWN0aXZlKCl7cmV0dXJuIHRoaXMuX2lzQWN0aXZlfXNldCBhY3RpdmUodCl7eXoodCkhPT10aGlzLl9pc0FjdGl2ZSYmKHRoaXMuX2lzQWN0aXZlPXQsdGhpcy5fdGFiTmF2QmFyLnVwZGF0ZUFjdGl2ZUxpbmsoKSl9Z2V0IHJpcHBsZURpc2FibGVkKCl7cmV0dXJuIHRoaXMuZGlzYWJsZWR8fHRoaXMuZGlzYWJsZVJpcHBsZXx8dGhpcy5fdGFiTmF2QmFyLmRpc2FibGVSaXBwbGV8fCEhdGhpcy5yaXBwbGVDb25maWcuZGlzYWJsZWR9Zm9jdXMoKXt0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZil9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmKX1faGFuZGxlRm9jdXMoKXt0aGlzLl90YWJOYXZCYXIuZm9jdXNJbmRleD10aGlzLl90YWJOYXZCYXIuX2l0ZW1zLnRvQXJyYXkoKS5pbmRleE9mKHRoaXMpfX1aQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WkIpKFNtKFdCKSxTbShoZyksU20od0gsOCksTmEoInRhYmluZGV4IiksU20oU0kpLFNtKFZQLDgpKX0sWkIuybVkaXI9bG8oe3R5cGU6WkIsaW5wdXRzOnthY3RpdmU6ImFjdGl2ZSJ9LGZlYXR1cmVzOlt4cF19KSxaQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOldCfSx7dHlwZTpoZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt3SF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOlNJfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sWkIucHJvcERlY29yYXRvcnM9e2FjdGl2ZTpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChaQixbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6V0J9LHt0eXBlOmhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3dIXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6U0l9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XX0pLHthY3RpdmU6W3t0eXBlOnh5fV19KTtjbGFzcyBYQiBleHRlbmRzIFpCe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyl7c3VwZXIodCxlLGksYSxyLHMpLHRoaXMuX3RhYkxpbmtSaXBwbGU9bmV3IFBIKHRoaXMsbixlLG8pLHRoaXMuX3RhYkxpbmtSaXBwbGUuc2V0dXBUcmlnZ2VyRXZlbnRzKGUubmF0aXZlRWxlbWVudCl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuX3RhYkxpbmtSaXBwbGUuX3JlbW92ZVRyaWdnZXJFdmVudHMoKX19WEIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhCKShTbShZQiksU20oaGcpLFNtKGFfKSxTbSh3eiksU20od0gsOCksTmEoInRhYmluZGV4IiksU20oU0kpLFNtKFZQLDgpKX0sWEIuybVkaXI9bG8oe3R5cGU6WEIsc2VsZWN0b3JzOltbIiIsIm1hdC10YWItbGluayIsIiJdLFsiIiwibWF0VGFiTGluayIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC10YWItbGluayIsIm1hdC1mb2N1cy1pbmRpY2F0b3IiXSxob3N0VmFyczo3LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiZm9jdXMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2hhbmRsZUZvY3VzKCl9KSksMiZlJiYoanAoImFyaWEtY3VycmVudCIsbi5hY3RpdmU/InBhZ2UiOm51bGwpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkKSgidGFiSW5kZXgiLG4udGFiSW5kZXgpLHB1KCJtYXQtdGFiLWRpc2FibGVkIixuLmRpc2FibGVkKSgibWF0LXRhYi1sYWJlbC1hY3RpdmUiLG4uYWN0aXZlKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIix0YWJJbmRleDoidGFiSW5kZXgifSxleHBvcnRBczpbIm1hdFRhYkxpbmsiXSxmZWF0dXJlczpbeHBdfSksWEIuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpZQn0se3R5cGU6aGd9LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt3SF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOlNJfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYQixbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0LXRhYi1saW5rXSwgW21hdFRhYkxpbmtdIixleHBvcnRBczoibWF0VGFiTGluayIsaW5wdXRzOlsiZGlzYWJsZWQiLCJkaXNhYmxlUmlwcGxlIiwidGFiSW5kZXgiXSxob3N0OntjbGFzczoibWF0LXRhYi1saW5rIG1hdC1mb2N1cy1pbmRpY2F0b3IiLCJbYXR0ci5hcmlhLWN1cnJlbnRdIjonYWN0aXZlID8gInBhZ2UiIDogbnVsbCcsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbYXR0ci50YWJJbmRleF0iOiJ0YWJJbmRleCIsIltjbGFzcy5tYXQtdGFiLWRpc2FibGVkXSI6ImRpc2FibGVkIiwiW2NsYXNzLm1hdC10YWItbGFiZWwtYWN0aXZlXSI6ImFjdGl2ZSIsIihmb2N1cykiOiJfaGFuZGxlRm9jdXMoKSJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WUJ9LHt0eXBlOmhnfSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbd0hdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpqYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTpTSX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBLQnt9S0IuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEtCKX0sS0IuybVtb2Q9YW8oe3R5cGU6S0J9KSxLQi7JtWluaj12bih7aW1wb3J0czpbW1dNLFhJLFJGLFNILFV6LE5JXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEtCLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV00sWEksUkYsU0gsVXosTkldLGV4cG9ydHM6W1hJLEZCLFBCLFNCLFlCLFhCLHhCXSxkZWNsYXJhdGlvbnM6W0ZCLFBCLFNCLE1CLEJCLFlCLFhCLEFCLEVCLEdCLHhCXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEtCLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bRkIsUEIsU0IsTUIsQkIsWUIsWEIsQUIsRUIsR0IseEJdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1dNLFhJLFJGLFNILFV6LE5JXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltYSSxGQixQQixTQixZQixYQix4Ql19fSk7Y29uc3QgSkI9WyJ1bmRlcmxpbmUiXSxRQj1bImNvbm5lY3Rpb25Db250YWluZXIiXSwkQj1bImlucHV0Q29udGFpbmVyIl0sdFY9WyJsYWJlbCJdO2Z1bmN0aW9uIGVWKHQsZSl7MSZ0JiYoTm0oMCksUm0oMSwiZGl2IiwxNCksVG0oMiwiZGl2IiwxNSksVG0oMywiZGl2IiwxNiksVG0oNCwiZGl2IiwxNyksQW0oKSxSbSg1LCJkaXYiLDE4KSxUbSg2LCJkaXYiLDE1KSxUbSg3LCJkaXYiLDE2KSxUbSg4LCJkaXYiLDE3KSxBbSgpLHptKCkpfWZ1bmN0aW9uIG5WKHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwxOSksWG0oMSwxKSxBbSgpKX1mdW5jdGlvbiBvVih0LGUpe2lmKDEmdCYmKE5tKDApLFhtKDEsMiksUm0oMiwic3BhbiIpLGt1KDMpLEFtKCksem0oKSksMiZ0KXtjb25zdCB0PVltKDIpO3JjKDMpLFN1KHQuX2NvbnRyb2wucGxhY2Vob2xkZXIpfX1mdW5jdGlvbiBpVih0LGUpezEmdCYmWG0oMCwzLFsiKm5nU3dpdGNoQ2FzZSIsInRydWUiXSl9ZnVuY3Rpb24gYVYodCxlKXsxJnQmJihSbSgwLCJzcGFuIiwyMyksa3UoMSwiICoiKSxBbSgpKX1mdW5jdGlvbiByVih0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImxhYmVsIiwyMCwyMSksVm0oImNka09ic2VydmVDb250ZW50IiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLnVwZGF0ZU91dGxpbmVHYXAoKX0pKSxRcCgyLG9WLDQsMSwibmctY29udGFpbmVyIiwxMiksUXAoMyxpViwxLDAsIm5nLWNvbnRlbnQiLDEyKSxRcCg0LGFWLDIsMCwic3BhbiIsMjIpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7cHUoIm1hdC1lbXB0eSIsdC5fY29udHJvbC5lbXB0eSYmIXQuX3Nob3VsZEFsd2F5c0Zsb2F0KCkpKCJtYXQtZm9ybS1maWVsZC1lbXB0eSIsdC5fY29udHJvbC5lbXB0eSYmIXQuX3Nob3VsZEFsd2F5c0Zsb2F0KCkpKCJtYXQtYWNjZW50IiwiYWNjZW50Ij09dC5jb2xvcikoIm1hdC13YXJuIiwid2FybiI9PXQuY29sb3IpLERtKCJjZGtPYnNlcnZlQ29udGVudERpc2FibGVkIiwib3V0bGluZSIhPXQuYXBwZWFyYW5jZSkoImlkIix0Ll9sYWJlbElkKSgibmdTd2l0Y2giLHQuX2hhc0xhYmVsKCkpLGpwKCJmb3IiLHQuX2NvbnRyb2wuaWQpKCJhcmlhLW93bnMiLHQuX2NvbnRyb2wuaWQpLHJjKDIpLERtKCJuZ1N3aXRjaENhc2UiLCExKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIiwhMCkscmMoMSksRG0oIm5nSWYiLCF0LmhpZGVSZXF1aXJlZE1hcmtlciYmdC5fY29udHJvbC5yZXF1aXJlZCYmIXQuX2NvbnRyb2wuZGlzYWJsZWQpfX1mdW5jdGlvbiBzVih0LGUpezEmdCYmKFJtKDAsImRpdiIsMjQpLFhtKDEsNCksQW0oKSl9ZnVuY3Rpb24gbFYodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDI1LDI2KSxUbSgyLCJzcGFuIiwyNyksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMikscHUoIm1hdC1hY2NlbnQiLCJhY2NlbnQiPT10LmNvbG9yKSgibWF0LXdhcm4iLCJ3YXJuIj09dC5jb2xvcil9fWZ1bmN0aW9uIGNWKHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiksWG0oMSw1KSxBbSgpKSwyJnQmJkRtKCJAdHJhbnNpdGlvbk1lc3NhZ2VzIixZbSgpLl9zdWJzY3JpcHRBbmltYXRpb25TdGF0ZSl9ZnVuY3Rpb24gZFYodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDMxKSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7RG0oImlkIix0Ll9oaW50TGFiZWxJZCkscmMoMSksU3UodC5oaW50TGFiZWwpfX1mdW5jdGlvbiBwVih0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMjgpLFFwKDEsZFYsMiwyLCJkaXYiLDI5KSxYbSgyLDYpLFRtKDMsImRpdiIsMzApLFhtKDQsNyksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7RG0oIkB0cmFuc2l0aW9uTWVzc2FnZXMiLHQuX3N1YnNjcmlwdEFuaW1hdGlvblN0YXRlKSxyYygxKSxEbSgibmdJZiIsdC5oaW50TGFiZWwpfX1jb25zdCBtVj1bIioiLFtbIiIsIm1hdFByZWZpeCIsIiJdXSxbWyJtYXQtcGxhY2Vob2xkZXIiXV0sW1sibWF0LWxhYmVsIl1dLFtbIiIsIm1hdFN1ZmZpeCIsIiJdXSxbWyJtYXQtZXJyb3IiXV0sW1sibWF0LWhpbnQiLDMsImFsaWduIiwiZW5kIl1dLFtbIm1hdC1oaW50IiwiYWxpZ24iLCJlbmQiXV1dO2xldCB1Vj0wO2NvbnN0IGZWPW5ldyBHYSgiTWF0RXJyb3IiKTtjbGFzcyBnVntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuaWQ9Im1hdC1lcnJvci0iK3VWKyssdHx8ZS5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIiwicG9saXRlIil9fWdWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxnVikoTmEoImFyaWEtbGl2ZSIpLFNtKGhnKSl9LGdWLsm1ZGlyPWxvKHt0eXBlOmdWLHNlbGVjdG9yczpbWyJtYXQtZXJyb3IiXV0saG9zdEF0dHJzOlsiYXJpYS1hdG9taWMiLCJ0cnVlIiwxLCJtYXQtZXJyb3IiXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZqcCgiaWQiLG4uaWQpfSxpbnB1dHM6e2lkOiJpZCJ9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6ZlYsdXNlRXhpc3Rpbmc6Z1Z9XSldfSksZ1YuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbImFyaWEtbGl2ZSJdfV19LHt0eXBlOmhnfV0sZ1YucHJvcERlY29yYXRvcnM9e2lkOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGdWLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1lcnJvciIsaG9zdDp7Y2xhc3M6Im1hdC1lcnJvciIsIlthdHRyLmlkXSI6ImlkIiwiYXJpYS1hdG9taWMiOiJ0cnVlIn0scHJvdmlkZXJzOlt7cHJvdmlkZTpmVix1c2VFeGlzdGluZzpnVn1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJhcmlhLWxpdmUiXX1dfSx7dHlwZTpoZ31dfSkse2lkOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBoVj17dHJhbnNpdGlvbk1lc3NhZ2VzOm54KCJ0cmFuc2l0aW9uTWVzc2FnZXMiLFtyeCgiZW50ZXIiLGF4KHtvcGFjaXR5OjEsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDAlKSJ9KSksbHgoInZvaWQgPT4gZW50ZXIiLFtheCh7b3BhY2l0eTowLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNXB4KSJ9KSxveCgiMzAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikiKV0pXSl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBiVnt9ZnVuY3Rpb24geVYodCl7cmV0dXJuIEVycm9yKGBBIGhpbnQgd2FzIGFscmVhZHkgZGVjbGFyZWQgZm9yICdhbGlnbj0iJHt0fSInLmApfWJWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxiVil9LGJWLsm1ZGlyPWxvKHt0eXBlOmJWfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChiVixbe3R5cGU6Q3l9XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IF9WPTA7Y29uc3QgQ1Y9bmV3IEdhKCJNYXRIaW50Iik7Y2xhc3MgTVZ7Y29uc3RydWN0b3IoKXt0aGlzLmFsaWduPSJzdGFydCIsdGhpcy5pZD0ibWF0LWhpbnQtIitfVisrfX1NVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TVYpfSxNVi7JtWRpcj1sbyh7dHlwZTpNVixzZWxlY3RvcnM6W1sibWF0LWhpbnQiXV0saG9zdEF0dHJzOlsxLCJtYXQtaGludCJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJihqcCgiaWQiLG4uaWQpKCJhbGlnbiIsbnVsbCkscHUoIm1hdC1mb3JtLWZpZWxkLWhpbnQtZW5kIiwiZW5kIj09PW4uYWxpZ24pKX0saW5wdXRzOnthbGlnbjoiYWxpZ24iLGlkOiJpZCJ9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6Q1YsdXNlRXhpc3Rpbmc6TVZ9XSldfSksTVYucHJvcERlY29yYXRvcnM9e2FsaWduOlt7dHlwZTp4eX1dLGlkOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE1WLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1oaW50Iixob3N0OntjbGFzczoibWF0LWhpbnQiLCJbY2xhc3MubWF0LWZvcm0tZmllbGQtaGludC1lbmRdIjonYWxpZ24gPT09ICJlbmQiJywiW2F0dHIuaWRdIjoiaWQiLCJbYXR0ci5hbGlnbl0iOiJudWxsIn0scHJvdmlkZXJzOlt7cHJvdmlkZTpDVix1c2VFeGlzdGluZzpNVn1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLHthbGlnbjpbe3R5cGU6eHl9XSxpZDpbe3R5cGU6eHl9XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgdlZ7fXZWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx2Vil9LHZWLsm1ZGlyPWxvKHt0eXBlOnZWLHNlbGVjdG9yczpbWyJtYXQtbGFiZWwiXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHZWLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1sYWJlbCJ9XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyB4Vnt9eFYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHhWKX0seFYuybVkaXI9bG8oe3R5cGU6eFYsc2VsZWN0b3JzOltbIm1hdC1wbGFjZWhvbGRlciJdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeFYsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXBsYWNlaG9sZGVyIn1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IE9WPW5ldyBHYSgiTWF0UHJlZml4Iik7Y2xhc3MgUFZ7fVBWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQVil9LFBWLsm1ZGlyPWxvKHt0eXBlOlBWLHNlbGVjdG9yczpbWyIiLCJtYXRQcmVmaXgiLCIiXV0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpPVix1c2VFeGlzdGluZzpQVn1dKV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFBWLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXRQcmVmaXhdIixwcm92aWRlcnM6W3twcm92aWRlOk9WLHVzZUV4aXN0aW5nOlBWfV19XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB3Vj1uZXcgR2EoIk1hdFN1ZmZpeCIpO2NsYXNzIGtWe31rVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8a1YpfSxrVi7JtWRpcj1sbyh7dHlwZTprVixzZWxlY3RvcnM6W1siIiwibWF0U3VmZml4IiwiIl1dLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6d1YsdXNlRXhpc3Rpbmc6a1Z9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrVixbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0U3VmZml4XSIscHJvdmlkZXJzOlt7cHJvdmlkZTp3Vix1c2VFeGlzdGluZzprVn1dfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IFNWPTA7Y29uc3QgRFY9SkkoY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZWxlbWVudFJlZj10fX0sInByaW1hcnkiKSxFVj1uZXcgR2EoIk1BVF9GT1JNX0ZJRUxEX0RFRkFVTFRfT1BUSU9OUyIpLFJWPW5ldyBHYSgiTWF0Rm9ybUZpZWxkIik7Y2xhc3MgQVYgZXh0ZW5kcyBEVntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMpe3N1cGVyKHQpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fZGlyPW8sdGhpcy5fZGVmYXVsdHM9aSx0aGlzLl9wbGF0Zm9ybT1hLHRoaXMuX25nWm9uZT1yLHRoaXMuX291dGxpbmVHYXBDYWxjdWxhdGlvbk5lZWRlZEltbWVkaWF0ZWx5PSExLHRoaXMuX291dGxpbmVHYXBDYWxjdWxhdGlvbk5lZWRlZE9uU3RhYmxlPSExLHRoaXMuX2Rlc3Ryb3llZD1uZXcgSSx0aGlzLl9zaG93QWx3YXlzQW5pbWF0ZT0hMSx0aGlzLl9zdWJzY3JpcHRBbmltYXRpb25TdGF0ZT0iIix0aGlzLl9oaW50TGFiZWw9IiIsdGhpcy5faGludExhYmVsSWQ9Im1hdC1oaW50LSIrU1YrKyx0aGlzLl9sYWJlbElkPSJtYXQtZm9ybS1maWVsZC1sYWJlbC0iK1NWKyssdGhpcy5mbG9hdExhYmVsPXRoaXMuX2dldERlZmF1bHRGbG9hdExhYmVsU3RhdGUoKSx0aGlzLl9hbmltYXRpb25zRW5hYmxlZD0iTm9vcEFuaW1hdGlvbnMiIT09cyx0aGlzLmFwcGVhcmFuY2U9aSYmaS5hcHBlYXJhbmNlP2kuYXBwZWFyYW5jZToibGVnYWN5Iix0aGlzLl9oaWRlUmVxdWlyZWRNYXJrZXI9ISghaXx8bnVsbD09aS5oaWRlUmVxdWlyZWRNYXJrZXIpJiZpLmhpZGVSZXF1aXJlZE1hcmtlcn1nZXQgYXBwZWFyYW5jZSgpe3JldHVybiB0aGlzLl9hcHBlYXJhbmNlfXNldCBhcHBlYXJhbmNlKHQpe2NvbnN0IGU9dGhpcy5fYXBwZWFyYW5jZTt0aGlzLl9hcHBlYXJhbmNlPXR8fHRoaXMuX2RlZmF1bHRzJiZ0aGlzLl9kZWZhdWx0cy5hcHBlYXJhbmNlfHwibGVnYWN5Iiwib3V0bGluZSI9PT10aGlzLl9hcHBlYXJhbmNlJiZlIT09dCYmKHRoaXMuX291dGxpbmVHYXBDYWxjdWxhdGlvbk5lZWRlZE9uU3RhYmxlPSEwKX1nZXQgaGlkZVJlcXVpcmVkTWFya2VyKCl7cmV0dXJuIHRoaXMuX2hpZGVSZXF1aXJlZE1hcmtlcn1zZXQgaGlkZVJlcXVpcmVkTWFya2VyKHQpe3RoaXMuX2hpZGVSZXF1aXJlZE1hcmtlcj15eih0KX1fc2hvdWxkQWx3YXlzRmxvYXQoKXtyZXR1cm4iYWx3YXlzIj09PXRoaXMuZmxvYXRMYWJlbCYmIXRoaXMuX3Nob3dBbHdheXNBbmltYXRlfV9jYW5MYWJlbEZsb2F0KCl7cmV0dXJuIm5ldmVyIiE9PXRoaXMuZmxvYXRMYWJlbH1nZXQgaGludExhYmVsKCl7cmV0dXJuIHRoaXMuX2hpbnRMYWJlbH1zZXQgaGludExhYmVsKHQpe3RoaXMuX2hpbnRMYWJlbD10LHRoaXMuX3Byb2Nlc3NIaW50cygpfWdldCBmbG9hdExhYmVsKCl7cmV0dXJuImxlZ2FjeSIhPT10aGlzLmFwcGVhcmFuY2UmJiJuZXZlciI9PT10aGlzLl9mbG9hdExhYmVsPyJhdXRvIjp0aGlzLl9mbG9hdExhYmVsfXNldCBmbG9hdExhYmVsKHQpe3QhPT10aGlzLl9mbG9hdExhYmVsJiYodGhpcy5fZmxvYXRMYWJlbD10fHx0aGlzLl9nZXREZWZhdWx0RmxvYXRMYWJlbFN0YXRlKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWdldCBfY29udHJvbCgpe3JldHVybiB0aGlzLl9leHBsaWNpdEZvcm1GaWVsZENvbnRyb2x8fHRoaXMuX2NvbnRyb2xOb25TdGF0aWN8fHRoaXMuX2NvbnRyb2xTdGF0aWN9c2V0IF9jb250cm9sKHQpe3RoaXMuX2V4cGxpY2l0Rm9ybUZpZWxkQ29udHJvbD10fWdldExhYmVsSWQoKXtyZXR1cm4gdGhpcy5faGFzRmxvYXRpbmdMYWJlbCgpP3RoaXMuX2xhYmVsSWQ6bnVsbH1nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCl7cmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25Db250YWluZXJSZWZ8fHRoaXMuX2VsZW1lbnRSZWZ9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5fdmFsaWRhdGVDb250cm9sQ2hpbGQoKTtjb25zdCB0PXRoaXMuX2NvbnRyb2w7dC5jb250cm9sVHlwZSYmdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG1hdC1mb3JtLWZpZWxkLXR5cGUtJHt0LmNvbnRyb2xUeXBlfWApLHQuc3RhdGVDaGFuZ2VzLnBpcGUoTmUobnVsbCkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl92YWxpZGF0ZVBsYWNlaG9sZGVycygpLHRoaXMuX3N5bmNEZXNjcmliZWRCeUlkcygpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSkpLHQubmdDb250cm9sJiZ0Lm5nQ29udHJvbC52YWx1ZUNoYW5nZXMmJnQubmdDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9PnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKSksdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3RoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRPblN0YWJsZSYmdGhpcy51cGRhdGVPdXRsaW5lR2FwKCl9KSl9KSkscmUodGhpcy5fcHJlZml4Q2hpbGRyZW4uY2hhbmdlcyx0aGlzLl9zdWZmaXhDaGlsZHJlbi5jaGFuZ2VzKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fb3V0bGluZUdhcENhbGN1bGF0aW9uTmVlZGVkT25TdGFibGU9ITAsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSksdGhpcy5faGludENoaWxkcmVuLmNoYW5nZXMucGlwZShOZShudWxsKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3Byb2Nlc3NIaW50cygpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSkpLHRoaXMuX2Vycm9yQ2hpbGRyZW4uY2hhbmdlcy5waXBlKE5lKG51bGwpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fc3luY0Rlc2NyaWJlZEJ5SWRzKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSksdGhpcy5fZGlyJiZ0aGlzLl9kaXIuY2hhbmdlLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+eyJmdW5jdGlvbiI9PXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU/dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PnRoaXMudXBkYXRlT3V0bGluZUdhcCgpKSl9KSk6dGhpcy51cGRhdGVPdXRsaW5lR2FwKCl9KSl9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7dGhpcy5fdmFsaWRhdGVDb250cm9sQ2hpbGQoKSx0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRJbW1lZGlhdGVseSYmdGhpcy51cGRhdGVPdXRsaW5lR2FwKCl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fc3Vic2NyaXB0QW5pbWF0aW9uU3RhdGU9ImVudGVyIix0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpfV9zaG91bGRGb3J3YXJkKHQpe2NvbnN0IGU9dGhpcy5fY29udHJvbD90aGlzLl9jb250cm9sLm5nQ29udHJvbDpudWxsO3JldHVybiBlJiZlW3RdfV9oYXNQbGFjZWhvbGRlcigpe3JldHVybiEhKHRoaXMuX2NvbnRyb2wmJnRoaXMuX2NvbnRyb2wucGxhY2Vob2xkZXJ8fHRoaXMuX3BsYWNlaG9sZGVyQ2hpbGQpfV9oYXNMYWJlbCgpe3JldHVybiEoIXRoaXMuX2xhYmVsQ2hpbGROb25TdGF0aWMmJiF0aGlzLl9sYWJlbENoaWxkU3RhdGljKX1fc2hvdWxkTGFiZWxGbG9hdCgpe3JldHVybiB0aGlzLl9jYW5MYWJlbEZsb2F0KCkmJih0aGlzLl9jb250cm9sJiZ0aGlzLl9jb250cm9sLnNob3VsZExhYmVsRmxvYXR8fHRoaXMuX3Nob3VsZEFsd2F5c0Zsb2F0KCkpfV9oaWRlQ29udHJvbFBsYWNlaG9sZGVyKCl7cmV0dXJuImxlZ2FjeSI9PT10aGlzLmFwcGVhcmFuY2UmJiF0aGlzLl9oYXNMYWJlbCgpfHx0aGlzLl9oYXNMYWJlbCgpJiYhdGhpcy5fc2hvdWxkTGFiZWxGbG9hdCgpfV9oYXNGbG9hdGluZ0xhYmVsKCl7cmV0dXJuIHRoaXMuX2hhc0xhYmVsKCl8fCJsZWdhY3kiPT09dGhpcy5hcHBlYXJhbmNlJiZ0aGlzLl9oYXNQbGFjZWhvbGRlcigpfV9nZXREaXNwbGF5ZWRNZXNzYWdlcygpe3JldHVybiB0aGlzLl9lcnJvckNoaWxkcmVuJiZ0aGlzLl9lcnJvckNoaWxkcmVuLmxlbmd0aD4wJiZ0aGlzLl9jb250cm9sLmVycm9yU3RhdGU/ImVycm9yIjoiaGludCJ9X2FuaW1hdGVBbmRMb2NrTGFiZWwoKXt0aGlzLl9oYXNGbG9hdGluZ0xhYmVsKCkmJnRoaXMuX2NhbkxhYmVsRmxvYXQoKSYmKHRoaXMuX2FuaW1hdGlvbnNFbmFibGVkJiZ0aGlzLl9sYWJlbCYmKHRoaXMuX3Nob3dBbHdheXNBbmltYXRlPSEwLG9lKHRoaXMuX2xhYmVsLm5hdGl2ZUVsZW1lbnQsInRyYW5zaXRpb25lbmQiKS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fc2hvd0Fsd2F5c0FuaW1hdGU9ITF9KSkpLHRoaXMuZmxvYXRMYWJlbD0iYWx3YXlzIix0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9X3ZhbGlkYXRlUGxhY2Vob2xkZXJzKCl7aWYodGhpcy5fY29udHJvbC5wbGFjZWhvbGRlciYmdGhpcy5fcGxhY2Vob2xkZXJDaGlsZCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KdGhyb3coZnVuY3Rpb24gdCgpe3JldHVybiBFcnJvcigiUGxhY2Vob2xkZXIgYXR0cmlidXRlIGFuZCBjaGlsZCBlbGVtZW50IHdlcmUgYm90aCBzcGVjaWZpZWQuIil9KSgpfV9wcm9jZXNzSGludHMoKXt0aGlzLl92YWxpZGF0ZUhpbnRzKCksdGhpcy5fc3luY0Rlc2NyaWJlZEJ5SWRzKCl9X3ZhbGlkYXRlSGludHMoKXtpZih0aGlzLl9oaW50Q2hpbGRyZW4mJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl7bGV0IHQsZTt0aGlzLl9oaW50Q2hpbGRyZW4uZm9yRWFjaCgobj0+e2lmKCJzdGFydCI9PT1uLmFsaWduKXtpZih0fHx0aGlzLmhpbnRMYWJlbCl0aHJvdyB5Vigic3RhcnQiKTt0PW59ZWxzZSBpZigiZW5kIj09PW4uYWxpZ24pe2lmKGUpdGhyb3cgeVYoImVuZCIpO2U9bn19KSl9fV9nZXREZWZhdWx0RmxvYXRMYWJlbFN0YXRlKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRzJiZ0aGlzLl9kZWZhdWx0cy5mbG9hdExhYmVsfHwiYXV0byJ9X3N5bmNEZXNjcmliZWRCeUlkcygpe2lmKHRoaXMuX2NvbnRyb2wpe2xldCB0PVtdO2lmKHRoaXMuX2NvbnRyb2wudXNlckFyaWFEZXNjcmliZWRCeSYmInN0cmluZyI9PXR5cGVvZiB0aGlzLl9jb250cm9sLnVzZXJBcmlhRGVzY3JpYmVkQnkmJnQucHVzaCguLi50aGlzLl9jb250cm9sLnVzZXJBcmlhRGVzY3JpYmVkQnkuc3BsaXQoIiAiKSksImhpbnQiPT09dGhpcy5fZ2V0RGlzcGxheWVkTWVzc2FnZXMoKSl7Y29uc3QgZT10aGlzLl9oaW50Q2hpbGRyZW4/dGhpcy5faGludENoaWxkcmVuLmZpbmQoKHQ9PiJzdGFydCI9PT10LmFsaWduKSk6bnVsbCxuPXRoaXMuX2hpbnRDaGlsZHJlbj90aGlzLl9oaW50Q2hpbGRyZW4uZmluZCgodD0+ImVuZCI9PT10LmFsaWduKSk6bnVsbDtlP3QucHVzaChlLmlkKTp0aGlzLl9oaW50TGFiZWwmJnQucHVzaCh0aGlzLl9oaW50TGFiZWxJZCksbiYmdC5wdXNoKG4uaWQpfWVsc2UgdGhpcy5fZXJyb3JDaGlsZHJlbiYmdC5wdXNoKC4uLnRoaXMuX2Vycm9yQ2hpbGRyZW4ubWFwKCh0PT50LmlkKSkpO3RoaXMuX2NvbnRyb2wuc2V0RGVzY3JpYmVkQnlJZHModCl9fV92YWxpZGF0ZUNvbnRyb2xDaGlsZCgpe2lmKCF0aGlzLl9jb250cm9sJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gdCgpe3JldHVybiBFcnJvcigibWF0LWZvcm0tZmllbGQgbXVzdCBjb250YWluIGEgTWF0Rm9ybUZpZWxkQ29udHJvbC4iKX0pKCl9dXBkYXRlT3V0bGluZUdhcCgpe2NvbnN0IHQ9dGhpcy5fbGFiZWw/dGhpcy5fbGFiZWwubmF0aXZlRWxlbWVudDpudWxsO2lmKCJvdXRsaW5lIiE9PXRoaXMuYXBwZWFyYW5jZXx8IXR8fCF0LmNoaWxkcmVuLmxlbmd0aHx8IXQudGV4dENvbnRlbnQudHJpbSgpKXJldHVybjtpZighdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybjtpZighdGhpcy5faXNBdHRhY2hlZFRvRE9NKCkpcmV0dXJuIHZvaWQodGhpcy5fb3V0bGluZUdhcENhbGN1bGF0aW9uTmVlZGVkSW1tZWRpYXRlbHk9ITApO2xldCBlPTAsbj0wO2NvbnN0IG89dGhpcy5fY29ubmVjdGlvbkNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LGk9by5xdWVyeVNlbGVjdG9yQWxsKCIubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCIpLGE9by5xdWVyeVNlbGVjdG9yQWxsKCIubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXAiKTtpZih0aGlzLl9sYWJlbCYmdGhpcy5fbGFiZWwubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGgpe2NvbnN0IGk9by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZigwPT09aS53aWR0aCYmMD09PWkuaGVpZ2h0KXJldHVybiB0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRPblN0YWJsZT0hMCx2b2lkKHRoaXMuX291dGxpbmVHYXBDYWxjdWxhdGlvbk5lZWRlZEltbWVkaWF0ZWx5PSExKTtjb25zdCBhPXRoaXMuX2dldFN0YXJ0RW5kKGkpLHI9dC5jaGlsZHJlbixzPXRoaXMuX2dldFN0YXJ0RW5kKHJbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO2xldCBsPTA7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0KyspbCs9clt0XS5vZmZzZXRXaWR0aDtlPU1hdGguYWJzKHMtYSktNSxuPWw+MD8uNzUqbCsxMDowfWZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKWlbdF0uc3R5bGUud2lkdGg9YCR7ZX1weGA7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0KyspYVt0XS5zdHlsZS53aWR0aD1gJHtufXB4YDt0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRPblN0YWJsZT10aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRJbW1lZGlhdGVseT0hMX1fZ2V0U3RhcnRFbmQodCl7cmV0dXJuIHRoaXMuX2RpciYmInJ0bCI9PT10aGlzLl9kaXIudmFsdWU/dC5yaWdodDp0LmxlZnR9X2lzQXR0YWNoZWRUb0RPTSgpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2lmKHQuZ2V0Um9vdE5vZGUpe2NvbnN0IGU9dC5nZXRSb290Tm9kZSgpO3JldHVybiBlJiZlIT09dH1yZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zKHQpfX1BVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QVYpKFNtKGhnKSxTbShVZyksU20oaGcpLFNtKEhJLDgpLFNtKEVWLDgpLFNtKHd6KSxTbShhXyksU20oVlAsOCkpfSxBVi7JtWNtcD10byh7dHlwZTpBVixzZWxlY3RvcnM6W1sibWF0LWZvcm0tZmllbGQiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYoJGgobyxiViw1KSwkaChvLGJWLDcpLCRoKG8sdlYsNSksJGgobyx2Viw3KSwkaChvLHhWLDUpLCRoKG8sZlYsNSksJGgobyxDViw1KSwkaChvLE9WLDUpLCRoKG8sd1YsNSkpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX2NvbnRyb2xOb25TdGF0aWM9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2NvbnRyb2xTdGF0aWM9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2xhYmVsQ2hpbGROb25TdGF0aWM9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2xhYmVsQ2hpbGRTdGF0aWM9dC5maXJzdCksSmgodD10YigpKSYmKG4uX3BsYWNlaG9sZGVyQ2hpbGQ9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2Vycm9yQ2hpbGRyZW49dCksSmgodD10YigpKSYmKG4uX2hpbnRDaGlsZHJlbj10KSxKaCh0PXRiKCkpJiYobi5fcHJlZml4Q2hpbGRyZW49dCksSmgodD10YigpKSYmKG4uX3N1ZmZpeENoaWxkcmVuPXQpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChKQiw1KSxRaChRQiw3KSxRaCgkQiw1KSxRaCh0Viw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi51bmRlcmxpbmVSZWY9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2Nvbm5lY3Rpb25Db250YWluZXJSZWY9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2lucHV0Q29udGFpbmVyUmVmPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9sYWJlbD10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LWZvcm0tZmllbGQiXSxob3N0VmFyczo0MCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoIm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQiLCJzdGFuZGFyZCI9PW4uYXBwZWFyYW5jZSkoIm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCIsImZpbGwiPT1uLmFwcGVhcmFuY2UpKCJtYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUiLCJvdXRsaW5lIj09bi5hcHBlYXJhbmNlKSgibWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kiLCJsZWdhY3kiPT1uLmFwcGVhcmFuY2UpKCJtYXQtZm9ybS1maWVsZC1pbnZhbGlkIixuLl9jb250cm9sLmVycm9yU3RhdGUpKCJtYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQiLG4uX2NhbkxhYmVsRmxvYXQoKSkoIm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCIsbi5fc2hvdWxkTGFiZWxGbG9hdCgpKSgibWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsIixuLl9oYXNGbG9hdGluZ0xhYmVsKCkpKCJtYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIixuLl9oaWRlQ29udHJvbFBsYWNlaG9sZGVyKCkpKCJtYXQtZm9ybS1maWVsZC1kaXNhYmxlZCIsbi5fY29udHJvbC5kaXNhYmxlZCkoIm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsZWQiLG4uX2NvbnRyb2wuYXV0b2ZpbGxlZCkoIm1hdC1mb2N1c2VkIixuLl9jb250cm9sLmZvY3VzZWQpKCJuZy11bnRvdWNoZWQiLG4uX3Nob3VsZEZvcndhcmQoInVudG91Y2hlZCIpKSgibmctdG91Y2hlZCIsbi5fc2hvdWxkRm9yd2FyZCgidG91Y2hlZCIpKSgibmctcHJpc3RpbmUiLG4uX3Nob3VsZEZvcndhcmQoInByaXN0aW5lIikpKCJuZy1kaXJ0eSIsbi5fc2hvdWxkRm9yd2FyZCgiZGlydHkiKSkoIm5nLXZhbGlkIixuLl9zaG91bGRGb3J3YXJkKCJ2YWxpZCIpKSgibmctaW52YWxpZCIsbi5fc2hvdWxkRm9yd2FyZCgiaW52YWxpZCIpKSgibmctcGVuZGluZyIsbi5fc2hvdWxkRm9yd2FyZCgicGVuZGluZyIpKSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCFuLl9hbmltYXRpb25zRW5hYmxlZCl9LGlucHV0czp7Y29sb3I6ImNvbG9yIixmbG9hdExhYmVsOiJmbG9hdExhYmVsIixhcHBlYXJhbmNlOiJhcHBlYXJhbmNlIixoaWRlUmVxdWlyZWRNYXJrZXI6ImhpZGVSZXF1aXJlZE1hcmtlciIsaGludExhYmVsOiJoaW50TGFiZWwifSxleHBvcnRBczpbIm1hdEZvcm1GaWVsZCJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6UlYsdXNlRXhpc3Rpbmc6QVZ9XSkseHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiLCJbbWF0UHJlZml4XSIsIm1hdC1wbGFjZWhvbGRlciIsIm1hdC1sYWJlbCIsIlttYXRTdWZmaXhdIiwibWF0LWVycm9yIiwibWF0LWhpbnQ6bm90KFthbGlnbj0nZW5kJ10pIiwibWF0LWhpbnRbYWxpZ249J2VuZCddIl0sZGVjbHM6MTUsdmFyczo4LGNvbnN0czpbWzEsIm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIiXSxbMSwibWF0LWZvcm0tZmllbGQtZmxleCIsMywiY2xpY2siXSxbImNvbm5lY3Rpb25Db250YWluZXIiLCIiXSxbNCwibmdJZiJdLFsiY2xhc3MiLCJtYXQtZm9ybS1maWVsZC1wcmVmaXgiLDQsIm5nSWYiXSxbMSwibWF0LWZvcm0tZmllbGQtaW5maXgiXSxbImlucHV0Q29udGFpbmVyIiwiIl0sWzEsIm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIiXSxbImNsYXNzIiwibWF0LWZvcm0tZmllbGQtbGFiZWwiLDMsImNka09ic2VydmVDb250ZW50RGlzYWJsZWQiLCJpZCIsIm1hdC1lbXB0eSIsIm1hdC1mb3JtLWZpZWxkLWVtcHR5IiwibWF0LWFjY2VudCIsIm1hdC13YXJuIiwibmdTd2l0Y2giLCJjZGtPYnNlcnZlQ29udGVudCIsNCwibmdJZiJdLFsiY2xhc3MiLCJtYXQtZm9ybS1maWVsZC1zdWZmaXgiLDQsIm5nSWYiXSxbImNsYXNzIiwibWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIiw0LCJuZ0lmIl0sWzEsIm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIiwzLCJuZ1N3aXRjaCJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbImNsYXNzIiwibWF0LWZvcm0tZmllbGQtaGludC13cmFwcGVyIiw0LCJuZ1N3aXRjaENhc2UiXSxbMSwibWF0LWZvcm0tZmllbGQtb3V0bGluZSJdLFsxLCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0Il0sWzEsIm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2FwIl0sWzEsIm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5kIl0sWzEsIm1hdC1mb3JtLWZpZWxkLW91dGxpbmUiLCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIl0sWzEsIm1hdC1mb3JtLWZpZWxkLXByZWZpeCJdLFsxLCJtYXQtZm9ybS1maWVsZC1sYWJlbCIsMywiY2RrT2JzZXJ2ZUNvbnRlbnREaXNhYmxlZCIsImlkIiwibmdTd2l0Y2giLCJjZGtPYnNlcnZlQ29udGVudCJdLFsibGFiZWwiLCIiXSxbImNsYXNzIiwibWF0LXBsYWNlaG9sZGVyLXJlcXVpcmVkIG1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtYXQtcGxhY2Vob2xkZXItcmVxdWlyZWQiLCJtYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIiXSxbMSwibWF0LWZvcm0tZmllbGQtc3VmZml4Il0sWzEsIm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSJdLFsidW5kZXJsaW5lIiwiIl0sWzEsIm1hdC1mb3JtLWZpZWxkLXJpcHBsZSJdLFsxLCJtYXQtZm9ybS1maWVsZC1oaW50LXdyYXBwZXIiXSxbImNsYXNzIiwibWF0LWhpbnQiLDMsImlkIiw0LCJuZ0lmIl0sWzEsIm1hdC1mb3JtLWZpZWxkLWhpbnQtc3BhY2VyIl0sWzEsIm1hdC1oaW50IiwzLCJpZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoWm0obVYpLFJtKDAsImRpdiIsMCksUm0oMSwiZGl2IiwxLDIpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2NvbnRyb2wub25Db250YWluZXJDbGljayYmbi5fY29udHJvbC5vbkNvbnRhaW5lckNsaWNrKGUpfSkpLFFwKDMsZVYsOSwwLCJuZy1jb250YWluZXIiLDMpLFFwKDQsblYsMiwwLCJkaXYiLDQpLFJtKDUsImRpdiIsNSw2KSxYbSg3KSxSbSg4LCJzcGFuIiw3KSxRcCg5LHJWLDUsMTYsImxhYmVsIiw4KSxBbSgpLEFtKCksUXAoMTAsc1YsMiwwLCJkaXYiLDkpLEFtKCksUXAoMTEsbFYsMyw0LCJkaXYiLDEwKSxSbSgxMiwiZGl2IiwxMSksUXAoMTMsY1YsMiwxLCJkaXYiLDEyKSxRcCgxNCxwViw1LDIsImRpdiIsMTMpLEFtKCksQW0oKSksMiZlJiYocmMoMyksRG0oIm5nSWYiLCJvdXRsaW5lIj09bi5hcHBlYXJhbmNlKSxyYygxKSxEbSgibmdJZiIsbi5fcHJlZml4Q2hpbGRyZW4ubGVuZ3RoKSxyYyg1KSxEbSgibmdJZiIsbi5faGFzRmxvYXRpbmdMYWJlbCgpKSxyYygxKSxEbSgibmdJZiIsbi5fc3VmZml4Q2hpbGRyZW4ubGVuZ3RoKSxyYygxKSxEbSgibmdJZiIsIm91dGxpbmUiIT1uLmFwcGVhcmFuY2UpLHJjKDEpLERtKCJuZ1N3aXRjaCIsbi5fZ2V0RGlzcGxheWVkTWVzc2FnZXMoKSkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsImVycm9yIikscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsImhpbnQiKSl9LGRpcmVjdGl2ZXM6W2RNLGZNLGdNLGp6XSxzdHlsZXM6WyIubWF0LWZvcm0tZmllbGR7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0fVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGR7dGV4dC1hbGlnbjpyaWdodH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWZvcm0tZmllbGQtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlfS5tYXQtZm9ybS1maWVsZC1wcmVmaXgsLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeHt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleDpub25lO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtZm9ybS1maWVsZC1pbmZpeHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6YXV0bzttaW4td2lkdGg6MDt3aWR0aDoxODBweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtib3JkZXItaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCl9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JveC1zaXppbmc6Y29udGVudC1ib3g7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZX1bZGlyPXJ0bF0gLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7bGVmdDphdXRvO3JpZ2h0OjB9Lm1hdC1mb3JtLWZpZWxkLWxhYmVse3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtmb250OmluaGVyaXQ7cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjt0cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxjb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSx3aWR0aCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtkaXNwbGF5Om5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtsZWZ0OmF1dG87cmlnaHQ6MH0ubWF0LWZvcm0tZmllbGQtZW1wdHkubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2Rpc3BsYXk6YmxvY2t9Lm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpub25lfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpibG9jazt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtaW5wdXQtc2VydmVyW3BsYWNlaG9sZGVyXTpub3QoOnBsYWNlaG9sZGVyLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpub25lfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbcGxhY2Vob2xkZXJdOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZC1sYWJlbDpub3QoLm1hdC1mb3JtLWZpZWxkLWVtcHR5KXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtOnNjYWxlM2QoMSwgMS4wMDAxLCAxKX0ubWF0LWZvcm0tZmllbGQtcmlwcGxle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt3aWR0aDoxMDAlO3RyYW5zZm9ybS1vcmlnaW46NTAlO3RyYW5zZm9ybTpzY2FsZVgoMC41KTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDMwMG1zIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpfS5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7b3BhY2l0eToxO3RyYW5zZm9ybTpub25lO3RyYW5zaXRpb246dHJhbnNmb3JtIDMwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLG9wYWNpdHkgMTAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciAzMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVufS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1pY29ue3dpZHRoOjFlbTtoZWlnaHQ6MWVtO2ZvbnQtc2l6ZTppbmhlcml0O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5tYXQtZm9ybS1maWVsZC1oaW50LXdyYXBwZXJ7ZGlzcGxheTpmbGV4fS5tYXQtZm9ybS1maWVsZC1oaW50LXNwYWNlcntmbGV4OjEgMCAxZW19Lm1hdC1lcnJvcntkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZC1jb250cm9sLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1mb3JtLWZpZWxkLWhpbnQtZW5ke29yZGVyOjF9Lm1hdC1mb3JtLWZpZWxkLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0cmFuc2l0aW9uOm5vbmV9XG4iLCcubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1mbGV4e2JvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7cGFkZGluZzouNzVlbSAuNzVlbSAwIC43NWVtfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXh7b3V0bGluZTpkYXNoZWQgM3B4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtoZWlnaHQ6MXB4O3dpZHRoOjEwMCV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtcmlwcGxle2JvdHRvbTowO2hlaWdodDoycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbDpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3Zlcn4ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7b3BhY2l0eToxO3RyYW5zZm9ybTpub25lO3RyYW5zaXRpb246b3BhY2l0eSA2MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cGFkZGluZzowIDFlbX1cbicsJy5tYXQtaW5wdXQtZWxlbWVudHtmb250OmluaGVyaXQ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpjdXJyZW50Q29sb3I7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lO3BhZGRpbmc6MDttYXJnaW46MDt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTt0ZXh0LWFsaWduOmluaGVyaXQ7Ym94LXNpemluZzpjb250ZW50LWJveH0ubWF0LWlucHV0LWVsZW1lbnQ6LW1vei11aS1pbnZhbGlke2JveC1zaGFkb3c6bm9uZX0ubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy1jbGVhciwubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy1yZXZlYWx7ZGlzcGxheTpub25lfS5tYXQtaW5wdXQtZWxlbWVudCwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNvbnRhY3RzLWF1dG8tZmlsbC1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNhcHMtbG9jay1pbmRpY2F0b3IsLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNyZWRlbnRpYWxzLWF1dG8tZmlsbC1idXR0b257dmlzaWJpbGl0eTpoaWRkZW59Lm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZV0sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZXRpbWVdLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPWRhdGV0aW1lLWxvY2FsXSwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1tb250aF0sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9d2Vla10sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9dGltZV17bGluZS1oZWlnaHQ6MX0ubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1kYXRlXTo6YWZ0ZXIsLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZXRpbWVdOjphZnRlciwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1kYXRldGltZS1sb2NhbF06OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPW1vbnRoXTo6YWZ0ZXIsLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9d2Vla106OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPXRpbWVdOjphZnRlcntjb250ZW50OiIgIjt3aGl0ZS1zcGFjZTpwcmU7d2lkdGg6MXB4fS5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtY2xlYXItYnV0dG9ue2ZvbnQtc2l6ZTouNzVlbX0ubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LW1zLXVzZXItc2VsZWN0OnRleHR9Lm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlcnstbXMtdXNlci1zZWxlY3Q6dGV4dH0ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXI6LW1zLWlucHV0LXBsYWNlaG9sZGVyey1tcy11c2VyLXNlbGVjdDp0ZXh0fS5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlcnstbXMtdXNlci1zZWxlY3Q6dGV4dH0ubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcntvcGFjaXR5OjB9Lm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVye29wYWNpdHk6MH0ubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7b3BhY2l0eTowfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye29wYWNpdHk6MH10ZXh0YXJlYS5tYXQtaW5wdXQtZWxlbWVudHtyZXNpemU6dmVydGljYWw7b3ZlcmZsb3c6YXV0b310ZXh0YXJlYS5tYXQtaW5wdXQtZWxlbWVudC5jZGstdGV4dGFyZWEtYXV0b3NpemV7cmVzaXplOm5vbmV9dGV4dGFyZWEubWF0LWlucHV0LWVsZW1lbnR7cGFkZGluZzoycHggMDttYXJnaW46LTJweCAwfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudHstbW96LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWZsZXg7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctdG9wOjFlbTt0b3A6LTFlbTttYXJnaW4tYm90dG9tOi0xZW19c2VsZWN0Lm1hdC1pbnB1dC1lbGVtZW50OjotbXMtZXhwYW5ke2Rpc3BsYXk6bm9uZX1zZWxlY3QubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9c2VsZWN0Lm1hdC1pbnB1dC1lbGVtZW50Om5vdCg6ZGlzYWJsZWQpe2N1cnNvcjpwb2ludGVyfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDo6LW1zLXZhbHVle2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDpub25lfS5tYXQtZm9jdXNlZCAuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIHNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDo6LW1zLXZhbHVle2NvbG9yOmluaGVyaXR9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb250ZW50OiIiO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo1cHggc29saWQ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDowO21hcmdpbi10b3A6LTIuNXB4O3BvaW50ZXItZXZlbnRzOm5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7cmlnaHQ6YXV0bztsZWZ0OjB9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1pbnB1dC1lbGVtZW50e3BhZGRpbmctcmlnaHQ6MTVweH1bZGlyPXJ0bF0gLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1pbnB1dC1lbGVtZW50e3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MTVweH0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcnttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTBweCl9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7bWFyZ2luLXRvcDotNXB4fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye21hcmdpbi10b3A6LTEwcHh9XG4nLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSgxMDBweCk7LW1zLXRyYW5zZm9ybTpub25lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb257d2lkdGg6MWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbntmb250OmluaGVyaXQ7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb257Zm9udC1zaXplOmluaGVyaXR9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7aGVpZ2h0OjFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMXB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcmlwcGxle3RvcDowO2hlaWdodDoycHg7b3ZlcmZsb3c6aGlkZGVufS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjA7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1wb3NpdGlvbjowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3JkZXItdG9wLXN0eWxlOmRvdHRlZDtib3JkZXItdG9wLXdpZHRoOjJweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtaW52YWxpZDpub3QoLm1hdC1mb2N1c2VkKSAubWF0LWZvcm0tZmllbGQtcmlwcGxle2hlaWdodDoxcHh9XG4iLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC13cmFwcGVye21hcmdpbjouMjVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWZsZXh7cGFkZGluZzowIC43NWVtIDAgLjc1ZW07bWFyZ2luLXRvcDotMC4yNWVtO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1zdWZmaXh7dG9wOi4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmV7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDouMjVlbTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmR7Ym9yZGVyOjFweCBzb2xpZCBjdXJyZW50Q29sb3I7bWluLXdpZHRoOjVweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0e2JvcmRlci1yYWRpdXM6NXB4IDAgMCA1cHg7Ym9yZGVyLXJpZ2h0LXN0eWxlOm5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnR7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7Ym9yZGVyLXJhZGl1czowIDVweCA1cHggMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZHtib3JkZXItcmFkaXVzOjAgNXB4IDVweCAwO2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7ZmxleC1ncm93OjF9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5ke2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC1zdHlsZTpub25lO2JvcmRlci1yYWRpdXM6NXB4IDAgMCA1cHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXB7Ym9yZGVyLXJhZGl1czouMDAwMDAxcHg7Ym9yZGVyOjFweCBzb2xpZCBjdXJyZW50Q29sb3I7Ym9yZGVyLWxlZnQtc3R5bGU6bm9uZTtib3JkZXItcmlnaHQtc3R5bGU6bm9uZX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2Fwe2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tvcGFjaXR5OjB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcHtib3JkZXItd2lkdGg6MnB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMTAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljaywubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tib3JkZXI6M3B4IGRhc2hlZH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgNjAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZTpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3ZlciAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tvcGFjaXR5OjF9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cGFkZGluZzowIDFlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcHt0cmFuc2l0aW9uOm5vbmV9XG4iLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtZmxleHtwYWRkaW5nLXRvcDouNzVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDoxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMXB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7Ym90dG9tOjA7aGVpZ2h0OjJweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjA7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7Ym9yZGVyLXRvcC1zdHlsZTpkb3R0ZWQ7Ym9yZGVyLXRvcC13aWR0aDoycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQ6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXJ+Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtcmlwcGxle29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgNjAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQuX21hdC1hbmltYXRpb24tbm9vcGFibGU6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXJ+Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtcmlwcGxle3RyYW5zaXRpb246bm9uZX1cbiJdLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246W2hWLnRyYW5zaXRpb25NZXNzYWdlc119LGNoYW5nZURldGVjdGlvbjowfSksQVYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltoZ119XX0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltFVl19XX0se3R5cGU6d3p9LHt0eXBlOmFffSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sQVYucHJvcERlY29yYXRvcnM9e2FwcGVhcmFuY2U6W3t0eXBlOnh5fV0saGlkZVJlcXVpcmVkTWFya2VyOlt7dHlwZTp4eX1dLGhpbnRMYWJlbDpbe3R5cGU6eHl9XSxmbG9hdExhYmVsOlt7dHlwZTp4eX1dLHVuZGVybGluZVJlZjpbe3R5cGU6WmEsYXJnczpbInVuZGVybGluZSJdfV0sX2Nvbm5lY3Rpb25Db250YWluZXJSZWY6W3t0eXBlOlphLGFyZ3M6WyJjb25uZWN0aW9uQ29udGFpbmVyIix7c3RhdGljOiEwfV19XSxfaW5wdXRDb250YWluZXJSZWY6W3t0eXBlOlphLGFyZ3M6WyJpbnB1dENvbnRhaW5lciJdfV0sX2xhYmVsOlt7dHlwZTpaYSxhcmdzOlsibGFiZWwiXX1dLF9jb250cm9sTm9uU3RhdGljOlt7dHlwZTpxYSxhcmdzOltiVl19XSxfY29udHJvbFN0YXRpYzpbe3R5cGU6cWEsYXJnczpbYlYse3N0YXRpYzohMH1dfV0sX2xhYmVsQ2hpbGROb25TdGF0aWM6W3t0eXBlOnFhLGFyZ3M6W3ZWXX1dLF9sYWJlbENoaWxkU3RhdGljOlt7dHlwZTpxYSxhcmdzOlt2Vix7c3RhdGljOiEwfV19XSxfcGxhY2Vob2xkZXJDaGlsZDpbe3R5cGU6cWEsYXJnczpbeFZdfV0sX2Vycm9yQ2hpbGRyZW46W3t0eXBlOllhLGFyZ3M6W2ZWLHtkZXNjZW5kYW50czohMH1dfV0sX2hpbnRDaGlsZHJlbjpbe3R5cGU6WWEsYXJnczpbQ1Yse2Rlc2NlbmRhbnRzOiEwfV19XSxfcHJlZml4Q2hpbGRyZW46W3t0eXBlOllhLGFyZ3M6W09WLHtkZXNjZW5kYW50czohMH1dfV0sX3N1ZmZpeENoaWxkcmVuOlt7dHlwZTpZYSxhcmdzOlt3Vix7ZGVzY2VuZGFudHM6ITB9XX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEFWLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1mb3JtLWZpZWxkIixleHBvcnRBczoibWF0Rm9ybUZpZWxkIix0ZW1wbGF0ZTonPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtd3JhcHBlciI+XG4gIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLWZsZXgiICNjb25uZWN0aW9uQ29udGFpbmVyXG4gICAgICAgKGNsaWNrKT0iX2NvbnRyb2wub25Db250YWluZXJDbGljayAmJiBfY29udHJvbC5vbkNvbnRhaW5lckNsaWNrKCRldmVudCkiPlxuXG4gICAgXHgzYyEtLSBPdXRsaW5lIHVzZWQgZm9yIG91dGxpbmUgYXBwZWFyYW5jZS4gLS1ceDNlXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj0iYXBwZWFyYW5jZSA9PSBcJ291dGxpbmVcJyI+XG4gICAgICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC1vdXRsaW5lIj5cbiAgICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2FwIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmQiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC1vdXRsaW5lIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2siPlxuICAgICAgICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0Ij48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXAiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLXByZWZpeCIgKm5nSWY9Il9wcmVmaXhDaGlsZHJlbi5sZW5ndGgiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSJbbWF0UHJlZml4XSI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtaW5maXgiICNpbnB1dENvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgICAgPHNwYW4gY2xhc3M9Im1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIiPlxuICAgICAgICBceDNjIS0tIFdlIGFkZCBhcmlhLW93bnMgYXMgYSB3b3JrYXJvdW5kIGZvciBhbiBpc3N1ZSBpbiBKQVdTICYgTlZEQSB3aGVyZSB0aGUgbGFiZWwgaXNuXCd0XG4gICAgICAgICAgICAgcmVhZCBpZiBpdCBjb21lcyBiZWZvcmUgdGhlIGNvbnRyb2wgaW4gdGhlIERPTS4gLS1ceDNlXG4gICAgICAgIDxsYWJlbCBjbGFzcz0ibWF0LWZvcm0tZmllbGQtbGFiZWwiXG4gICAgICAgICAgICAgICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPSJ1cGRhdGVPdXRsaW5lR2FwKCkiXG4gICAgICAgICAgICAgICBbY2RrT2JzZXJ2ZUNvbnRlbnREaXNhYmxlZF09ImFwcGVhcmFuY2UgIT0gXCdvdXRsaW5lXCciXG4gICAgICAgICAgICAgICBbaWRdPSJfbGFiZWxJZCJcbiAgICAgICAgICAgICAgIFthdHRyLmZvcl09Il9jb250cm9sLmlkIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1vd25zXT0iX2NvbnRyb2wuaWQiXG4gICAgICAgICAgICAgICBbY2xhc3MubWF0LWVtcHR5XT0iX2NvbnRyb2wuZW1wdHkgJiYgIV9zaG91bGRBbHdheXNGbG9hdCgpIlxuICAgICAgICAgICAgICAgW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWVtcHR5XT0iX2NvbnRyb2wuZW1wdHkgJiYgIV9zaG91bGRBbHdheXNGbG9hdCgpIlxuICAgICAgICAgICAgICAgW2NsYXNzLm1hdC1hY2NlbnRdPSJjb2xvciA9PSBcJ2FjY2VudFwnIlxuICAgICAgICAgICAgICAgW2NsYXNzLm1hdC13YXJuXT0iY29sb3IgPT0gXCd3YXJuXCciXG4gICAgICAgICAgICAgICAjbGFiZWxcbiAgICAgICAgICAgICAgICpuZ0lmPSJfaGFzRmxvYXRpbmdMYWJlbCgpIlxuICAgICAgICAgICAgICAgW25nU3dpdGNoXT0iX2hhc0xhYmVsKCkiPlxuXG4gICAgICAgICAgXHgzYyEtLSBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHJlbW92ZSBpbiBmYXZvciBvZiBtYXQtbGFiZWwgZWxlbWVudCBhbiBwbGFjZWhvbGRlciBhdHRyLiAtLVx4M2VcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9ImZhbHNlIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0ibWF0LXBsYWNlaG9sZGVyIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8c3Bhbj57e19jb250cm9sLnBsYWNlaG9sZGVyfX08L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9Im1hdC1sYWJlbCIgKm5nU3dpdGNoQ2FzZT0idHJ1ZSI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgICAgXHgzYyEtLSBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHJlbW92ZSBgbWF0LXBsYWNlaG9sZGVyLXJlcXVpcmVkYCBjbGFzcyAtLVx4M2VcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9Im1hdC1wbGFjZWhvbGRlci1yZXF1aXJlZCBtYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSJcbiAgICAgICAgICAgICpuZ0lmPSIhaGlkZVJlcXVpcmVkTWFya2VyICYmIF9jb250cm9sLnJlcXVpcmVkICYmICFfY29udHJvbC5kaXNhYmxlZCI+JiMzMjsqPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtc3VmZml4IiAqbmdJZj0iX3N1ZmZpeENoaWxkcmVuLmxlbmd0aCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9IlttYXRTdWZmaXhdIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIFx4M2MhLS0gVW5kZXJsaW5lIHVzZWQgZm9yIGxlZ2FjeSwgc3RhbmRhcmQsIGFuZCBib3ggYXBwZWFyYW5jZXMuIC0tXHgzZVxuICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC11bmRlcmxpbmUiICN1bmRlcmxpbmVcbiAgICAgICAqbmdJZj0iYXBwZWFyYW5jZSAhPSBcJ291dGxpbmVcJyI+XG4gICAgPHNwYW4gY2xhc3M9Im1hdC1mb3JtLWZpZWxkLXJpcHBsZSJcbiAgICAgICAgICBbY2xhc3MubWF0LWFjY2VudF09ImNvbG9yID09IFwnYWNjZW50XCciXG4gICAgICAgICAgW2NsYXNzLm1hdC13YXJuXT0iY29sb3IgPT0gXCd3YXJuXCciPjwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIiXG4gICAgICAgW25nU3dpdGNoXT0iX2dldERpc3BsYXllZE1lc3NhZ2VzKCkiPlxuICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT0iXCdlcnJvclwnIiBbQHRyYW5zaXRpb25NZXNzYWdlc109Il9zdWJzY3JpcHRBbmltYXRpb25TdGF0ZSI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9Im1hdC1lcnJvciI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtaGludC13cmFwcGVyIiAqbmdTd2l0Y2hDYXNlPSJcJ2hpbnRcJyJcbiAgICAgIFtAdHJhbnNpdGlvbk1lc3NhZ2VzXT0iX3N1YnNjcmlwdEFuaW1hdGlvblN0YXRlIj5cbiAgICAgIFx4M2MhLS0gVE9ETyhtbWFsZXJiYSk6IHVzZSBhbiBhY3R1YWwgPG1hdC1oaW50PiBvbmNlIGFsbCBzZWxlY3RvcnMgYXJlIHN3aXRjaGVkIHRvIG1hdC0qIC0tXHgzZVxuICAgICAgPGRpdiAqbmdJZj0iaGludExhYmVsIiBbaWRdPSJfaGludExhYmVsSWQiIGNsYXNzPSJtYXQtaGludCI+e3toaW50TGFiZWx9fTwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSJtYXQtaGludDpub3QoW2FsaWduPVwnZW5kXCddKSI+PC9uZy1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtaGludC1zcGFjZXIiPjwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSJtYXQtaGludFthbGlnbj1cJ2VuZFwnXSI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuJyxhbmltYXRpb25zOltoVi50cmFuc2l0aW9uTWVzc2FnZXNdLGhvc3Q6e2NsYXNzOiJtYXQtZm9ybS1maWVsZCIsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkXSI6J2FwcGVhcmFuY2UgPT0gInN0YW5kYXJkIicsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxdIjonYXBwZWFyYW5jZSA9PSAiZmlsbCInLCJbY2xhc3MubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lXSI6J2FwcGVhcmFuY2UgPT0gIm91dGxpbmUiJywiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5XSI6J2FwcGVhcmFuY2UgPT0gImxlZ2FjeSInLCJbY2xhc3MubWF0LWZvcm0tZmllbGQtaW52YWxpZF0iOiJfY29udHJvbC5lcnJvclN0YXRlIiwiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdF0iOiJfY2FuTGFiZWxGbG9hdCgpIiwiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdF0iOiJfc2hvdWxkTGFiZWxGbG9hdCgpIiwiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWhhcy1sYWJlbF0iOiJfaGFzRmxvYXRpbmdMYWJlbCgpIiwiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXJdIjoiX2hpZGVDb250cm9sUGxhY2Vob2xkZXIoKSIsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZF0iOiJfY29udHJvbC5kaXNhYmxlZCIsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbGVkXSI6Il9jb250cm9sLmF1dG9maWxsZWQiLCJbY2xhc3MubWF0LWZvY3VzZWRdIjoiX2NvbnRyb2wuZm9jdXNlZCIsIltjbGFzcy5uZy11bnRvdWNoZWRdIjonX3Nob3VsZEZvcndhcmQoInVudG91Y2hlZCIpJywiW2NsYXNzLm5nLXRvdWNoZWRdIjonX3Nob3VsZEZvcndhcmQoInRvdWNoZWQiKScsIltjbGFzcy5uZy1wcmlzdGluZV0iOidfc2hvdWxkRm9yd2FyZCgicHJpc3RpbmUiKScsIltjbGFzcy5uZy1kaXJ0eV0iOidfc2hvdWxkRm9yd2FyZCgiZGlydHkiKScsIltjbGFzcy5uZy12YWxpZF0iOidfc2hvdWxkRm9yd2FyZCgidmFsaWQiKScsIltjbGFzcy5uZy1pbnZhbGlkXSI6J19zaG91bGRGb3J3YXJkKCJpbnZhbGlkIiknLCJbY2xhc3MubmctcGVuZGluZ10iOidfc2hvdWxkRm9yd2FyZCgicGVuZGluZyIpJywiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6IiFfYW5pbWF0aW9uc0VuYWJsZWQifSxpbnB1dHM6WyJjb2xvciJdLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHByb3ZpZGVyczpbe3Byb3ZpZGU6UlYsdXNlRXhpc3Rpbmc6QVZ9XSxzdHlsZXM6WyIubWF0LWZvcm0tZmllbGR7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0fVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGR7dGV4dC1hbGlnbjpyaWdodH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWZvcm0tZmllbGQtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlfS5tYXQtZm9ybS1maWVsZC1wcmVmaXgsLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeHt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleDpub25lO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtZm9ybS1maWVsZC1pbmZpeHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6YXV0bzttaW4td2lkdGg6MDt3aWR0aDoxODBweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtib3JkZXItaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCl9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JveC1zaXppbmc6Y29udGVudC1ib3g7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZX1bZGlyPXJ0bF0gLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7bGVmdDphdXRvO3JpZ2h0OjB9Lm1hdC1mb3JtLWZpZWxkLWxhYmVse3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtmb250OmluaGVyaXQ7cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjt0cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxjb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSx3aWR0aCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtkaXNwbGF5Om5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtsZWZ0OmF1dG87cmlnaHQ6MH0ubWF0LWZvcm0tZmllbGQtZW1wdHkubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2Rpc3BsYXk6YmxvY2t9Lm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpub25lfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpibG9jazt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtaW5wdXQtc2VydmVyW3BsYWNlaG9sZGVyXTpub3QoOnBsYWNlaG9sZGVyLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpub25lfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbcGxhY2Vob2xkZXJdOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZC1sYWJlbDpub3QoLm1hdC1mb3JtLWZpZWxkLWVtcHR5KXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtOnNjYWxlM2QoMSwgMS4wMDAxLCAxKX0ubWF0LWZvcm0tZmllbGQtcmlwcGxle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt3aWR0aDoxMDAlO3RyYW5zZm9ybS1vcmlnaW46NTAlO3RyYW5zZm9ybTpzY2FsZVgoMC41KTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDMwMG1zIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpfS5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7b3BhY2l0eToxO3RyYW5zZm9ybTpub25lO3RyYW5zaXRpb246dHJhbnNmb3JtIDMwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLG9wYWNpdHkgMTAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciAzMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVufS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1pY29ue3dpZHRoOjFlbTtoZWlnaHQ6MWVtO2ZvbnQtc2l6ZTppbmhlcml0O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5tYXQtZm9ybS1maWVsZC1oaW50LXdyYXBwZXJ7ZGlzcGxheTpmbGV4fS5tYXQtZm9ybS1maWVsZC1oaW50LXNwYWNlcntmbGV4OjEgMCAxZW19Lm1hdC1lcnJvcntkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZC1jb250cm9sLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1mb3JtLWZpZWxkLWhpbnQtZW5ke29yZGVyOjF9Lm1hdC1mb3JtLWZpZWxkLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0cmFuc2l0aW9uOm5vbmV9XG4iLCcubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1mbGV4e2JvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7cGFkZGluZzouNzVlbSAuNzVlbSAwIC43NWVtfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXh7b3V0bGluZTpkYXNoZWQgM3B4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtoZWlnaHQ6MXB4O3dpZHRoOjEwMCV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtcmlwcGxle2JvdHRvbTowO2hlaWdodDoycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbDpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3Zlcn4ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7b3BhY2l0eToxO3RyYW5zZm9ybTpub25lO3RyYW5zaXRpb246b3BhY2l0eSA2MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cGFkZGluZzowIDFlbX1cbicsJy5tYXQtaW5wdXQtZWxlbWVudHtmb250OmluaGVyaXQ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpjdXJyZW50Q29sb3I7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lO3BhZGRpbmc6MDttYXJnaW46MDt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTt0ZXh0LWFsaWduOmluaGVyaXQ7Ym94LXNpemluZzpjb250ZW50LWJveH0ubWF0LWlucHV0LWVsZW1lbnQ6LW1vei11aS1pbnZhbGlke2JveC1zaGFkb3c6bm9uZX0ubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy1jbGVhciwubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy1yZXZlYWx7ZGlzcGxheTpub25lfS5tYXQtaW5wdXQtZWxlbWVudCwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNvbnRhY3RzLWF1dG8tZmlsbC1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNhcHMtbG9jay1pbmRpY2F0b3IsLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNyZWRlbnRpYWxzLWF1dG8tZmlsbC1idXR0b257dmlzaWJpbGl0eTpoaWRkZW59Lm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZV0sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZXRpbWVdLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPWRhdGV0aW1lLWxvY2FsXSwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1tb250aF0sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9d2Vla10sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9dGltZV17bGluZS1oZWlnaHQ6MX0ubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1kYXRlXTo6YWZ0ZXIsLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZXRpbWVdOjphZnRlciwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1kYXRldGltZS1sb2NhbF06OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPW1vbnRoXTo6YWZ0ZXIsLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9d2Vla106OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPXRpbWVdOjphZnRlcntjb250ZW50OiIgIjt3aGl0ZS1zcGFjZTpwcmU7d2lkdGg6MXB4fS5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtY2xlYXItYnV0dG9ue2ZvbnQtc2l6ZTouNzVlbX0ubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LW1zLXVzZXItc2VsZWN0OnRleHR9Lm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlcnstbXMtdXNlci1zZWxlY3Q6dGV4dH0ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXI6LW1zLWlucHV0LXBsYWNlaG9sZGVyey1tcy11c2VyLXNlbGVjdDp0ZXh0fS5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlcnstbXMtdXNlci1zZWxlY3Q6dGV4dH0ubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcntvcGFjaXR5OjB9Lm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVye29wYWNpdHk6MH0ubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7b3BhY2l0eTowfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye29wYWNpdHk6MH10ZXh0YXJlYS5tYXQtaW5wdXQtZWxlbWVudHtyZXNpemU6dmVydGljYWw7b3ZlcmZsb3c6YXV0b310ZXh0YXJlYS5tYXQtaW5wdXQtZWxlbWVudC5jZGstdGV4dGFyZWEtYXV0b3NpemV7cmVzaXplOm5vbmV9dGV4dGFyZWEubWF0LWlucHV0LWVsZW1lbnR7cGFkZGluZzoycHggMDttYXJnaW46LTJweCAwfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudHstbW96LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWZsZXg7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctdG9wOjFlbTt0b3A6LTFlbTttYXJnaW4tYm90dG9tOi0xZW19c2VsZWN0Lm1hdC1pbnB1dC1lbGVtZW50OjotbXMtZXhwYW5ke2Rpc3BsYXk6bm9uZX1zZWxlY3QubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9c2VsZWN0Lm1hdC1pbnB1dC1lbGVtZW50Om5vdCg6ZGlzYWJsZWQpe2N1cnNvcjpwb2ludGVyfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDo6LW1zLXZhbHVle2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDpub25lfS5tYXQtZm9jdXNlZCAuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIHNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDo6LW1zLXZhbHVle2NvbG9yOmluaGVyaXR9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb250ZW50OiIiO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo1cHggc29saWQ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDowO21hcmdpbi10b3A6LTIuNXB4O3BvaW50ZXItZXZlbnRzOm5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7cmlnaHQ6YXV0bztsZWZ0OjB9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1pbnB1dC1lbGVtZW50e3BhZGRpbmctcmlnaHQ6MTVweH1bZGlyPXJ0bF0gLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1pbnB1dC1lbGVtZW50e3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MTVweH0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcnttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTBweCl9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7bWFyZ2luLXRvcDotNXB4fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye21hcmdpbi10b3A6LTEwcHh9XG4nLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSgxMDBweCk7LW1zLXRyYW5zZm9ybTpub25lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb257d2lkdGg6MWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbntmb250OmluaGVyaXQ7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb257Zm9udC1zaXplOmluaGVyaXR9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7aGVpZ2h0OjFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMXB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcmlwcGxle3RvcDowO2hlaWdodDoycHg7b3ZlcmZsb3c6aGlkZGVufS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjA7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1wb3NpdGlvbjowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3JkZXItdG9wLXN0eWxlOmRvdHRlZDtib3JkZXItdG9wLXdpZHRoOjJweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtaW52YWxpZDpub3QoLm1hdC1mb2N1c2VkKSAubWF0LWZvcm0tZmllbGQtcmlwcGxle2hlaWdodDoxcHh9XG4iLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC13cmFwcGVye21hcmdpbjouMjVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWZsZXh7cGFkZGluZzowIC43NWVtIDAgLjc1ZW07bWFyZ2luLXRvcDotMC4yNWVtO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1zdWZmaXh7dG9wOi4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmV7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDouMjVlbTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmR7Ym9yZGVyOjFweCBzb2xpZCBjdXJyZW50Q29sb3I7bWluLXdpZHRoOjVweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0e2JvcmRlci1yYWRpdXM6NXB4IDAgMCA1cHg7Ym9yZGVyLXJpZ2h0LXN0eWxlOm5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnR7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7Ym9yZGVyLXJhZGl1czowIDVweCA1cHggMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZHtib3JkZXItcmFkaXVzOjAgNXB4IDVweCAwO2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7ZmxleC1ncm93OjF9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5ke2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC1zdHlsZTpub25lO2JvcmRlci1yYWRpdXM6NXB4IDAgMCA1cHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXB7Ym9yZGVyLXJhZGl1czouMDAwMDAxcHg7Ym9yZGVyOjFweCBzb2xpZCBjdXJyZW50Q29sb3I7Ym9yZGVyLWxlZnQtc3R5bGU6bm9uZTtib3JkZXItcmlnaHQtc3R5bGU6bm9uZX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2Fwe2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tvcGFjaXR5OjB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcHtib3JkZXItd2lkdGg6MnB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMTAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljaywubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tib3JkZXI6M3B4IGRhc2hlZH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgNjAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZTpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3ZlciAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tvcGFjaXR5OjF9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cGFkZGluZzowIDFlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcHt0cmFuc2l0aW9uOm5vbmV9XG4iLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtZmxleHtwYWRkaW5nLXRvcDouNzVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDoxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMXB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7Ym90dG9tOjA7aGVpZ2h0OjJweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjA7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7Ym9yZGVyLXRvcC1zdHlsZTpkb3R0ZWQ7Ym9yZGVyLXRvcC13aWR0aDoycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQ6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXJ+Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtcmlwcGxle29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgNjAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQuX21hdC1hbmltYXRpb24tbm9vcGFibGU6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXJ+Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtcmlwcGxle3RyYW5zaXRpb246bm9uZX1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbaGddfV19LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbRVZdfV19LHt0eXBlOnd6fSx7dHlwZTphX30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse2Zsb2F0TGFiZWw6W3t0eXBlOnh5fV0sYXBwZWFyYW5jZTpbe3R5cGU6eHl9XSxoaWRlUmVxdWlyZWRNYXJrZXI6W3t0eXBlOnh5fV0saGludExhYmVsOlt7dHlwZTp4eX1dLHVuZGVybGluZVJlZjpbe3R5cGU6WmEsYXJnczpbInVuZGVybGluZSJdfV0sX2Nvbm5lY3Rpb25Db250YWluZXJSZWY6W3t0eXBlOlphLGFyZ3M6WyJjb25uZWN0aW9uQ29udGFpbmVyIix7c3RhdGljOiEwfV19XSxfaW5wdXRDb250YWluZXJSZWY6W3t0eXBlOlphLGFyZ3M6WyJpbnB1dENvbnRhaW5lciJdfV0sX2xhYmVsOlt7dHlwZTpaYSxhcmdzOlsibGFiZWwiXX1dLF9jb250cm9sTm9uU3RhdGljOlt7dHlwZTpxYSxhcmdzOltiVl19XSxfY29udHJvbFN0YXRpYzpbe3R5cGU6cWEsYXJnczpbYlYse3N0YXRpYzohMH1dfV0sX2xhYmVsQ2hpbGROb25TdGF0aWM6W3t0eXBlOnFhLGFyZ3M6W3ZWXX1dLF9sYWJlbENoaWxkU3RhdGljOlt7dHlwZTpxYSxhcmdzOlt2Vix7c3RhdGljOiEwfV19XSxfcGxhY2Vob2xkZXJDaGlsZDpbe3R5cGU6cWEsYXJnczpbeFZdfV0sX2Vycm9yQ2hpbGRyZW46W3t0eXBlOllhLGFyZ3M6W2ZWLHtkZXNjZW5kYW50czohMH1dfV0sX2hpbnRDaGlsZHJlbjpbe3R5cGU6WWEsYXJnczpbQ1Yse2Rlc2NlbmRhbnRzOiEwfV19XSxfcHJlZml4Q2hpbGRyZW46W3t0eXBlOllhLGFyZ3M6W09WLHtkZXNjZW5kYW50czohMH1dfV0sX3N1ZmZpeENoaWxkcmVuOlt7dHlwZTpZYSxhcmdzOlt3Vix7ZGVzY2VuZGFudHM6ITB9XX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBUVnt9VFYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRWKX0sVFYuybVtb2Q9YW8oe3R5cGU6VFZ9KSxUVi7JtWluaj12bih7aW1wb3J0czpbW1dNLFhJLFV6XSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFRWLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltnVixBVixNVix2Vix4VixQVixrVl0saW1wb3J0czpbV00sWEksVXpdLGV4cG9ydHM6W1hJLGdWLEFWLE1WLHZWLHhWLFBWLGtWXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFRWLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bZ1YsQVYsTVYsdlYseFYsUFYsa1ZdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1dNLFhJLFV6XX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltYSSxnVixBVixNVix2Vix4VixQVixrVl19fSk7Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovCmNsYXNzIE5We2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fcmVuZGVyZXI9dCx0aGlzLl9lbGVtZW50UmVmPWUsdGhpcy5vbkNoYW5nZT10PT57fSx0aGlzLm9uVG91Y2hlZD0oKT0+e319c2V0UHJvcGVydHkodCxlKXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsdCxlKX1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLm9uVG91Y2hlZD10fXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5vbkNoYW5nZT10fXNldERpc2FibGVkU3RhdGUodCl7dGhpcy5zZXRQcm9wZXJ0eSgiZGlzYWJsZWQiLHQpfX1OVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TlYpKFNtKENnKSxTbShoZykpfSxOVi7JtWRpcj1sbyh7dHlwZTpOVn0pLE5WLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6Q2d9LHt0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOVixbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Q2d9LHt0eXBlOmhnfV19KSxudWxsKTtjbGFzcyB6ViBleHRlbmRzIE5We316Vi7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoelYpKSkobnx8elYpfX0pKCkselYuybVkaXI9bG8oe3R5cGU6elYsZmVhdHVyZXM6W3hwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoelYsW3t0eXBlOkN5fV0sbnVsbCxudWxsKTtjb25zdCBJVj1uZXcgR2EoIk5nVmFsdWVBY2Nlc3NvciIpLEhWPXtwcm92aWRlOklWLHVzZUV4aXN0aW5nOnFlKCgoKT0+RlYpKSxtdWx0aTohMH07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIEZWIGV4dGVuZHMgelZ7d3JpdGVWYWx1ZSh0KXt0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIix0KX19RlYuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKEZWKSkpKG58fEZWKX19KSgpLEZWLsm1ZGlyPWxvKHt0eXBlOkZWLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJjaGVja2JveCIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiY2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkNoYW5nZShlLnRhcmdldC5jaGVja2VkKX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvdWNoZWQoKX0pKX0sZmVhdHVyZXM6W3BnKFtIVl0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRlYsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiaW5wdXRbdHlwZT1jaGVja2JveF1bZm9ybUNvbnRyb2xOYW1lXSxpbnB1dFt0eXBlPWNoZWNrYm94XVtmb3JtQ29udHJvbF0saW5wdXRbdHlwZT1jaGVja2JveF1bbmdNb2RlbF0iLGhvc3Q6eyIoY2hhbmdlKSI6Im9uQ2hhbmdlKCRldmVudC50YXJnZXQuY2hlY2tlZCkiLCIoYmx1cikiOiJvblRvdWNoZWQoKSJ9LHByb3ZpZGVyczpbSFZdfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgTFY9e3Byb3ZpZGU6SVYsdXNlRXhpc3Rpbmc6cWUoKCgpPT5WVikpLG11bHRpOiEwfSxCVj1uZXcgR2EoIkNvbXBvc2l0aW9uRXZlbnRNb2RlIik7Y2xhc3MgVlYgZXh0ZW5kcyBOVntjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlKSx0aGlzLl9jb21wb3NpdGlvbk1vZGU9bix0aGlzLl9jb21wb3Npbmc9ITEsbnVsbD09dGhpcy5fY29tcG9zaXRpb25Nb2RlJiYodGhpcy5fY29tcG9zaXRpb25Nb2RlPSEoZnVuY3Rpb24gbygpe2NvbnN0IHQ9cV8oKT9xXygpLmdldFVzZXJBZ2VudCgpOiIiO3JldHVybi9hbmRyb2lkIChcZCspLy50ZXN0KHQudG9Mb3dlckNhc2UoKSl9KSgpKX13cml0ZVZhbHVlKHQpe3RoaXMuc2V0UHJvcGVydHkoInZhbHVlIixudWxsPT10PyIiOnQpfV9oYW5kbGVJbnB1dCh0KXsoIXRoaXMuX2NvbXBvc2l0aW9uTW9kZXx8dGhpcy5fY29tcG9zaXRpb25Nb2RlJiYhdGhpcy5fY29tcG9zaW5nKSYmdGhpcy5vbkNoYW5nZSh0KX1fY29tcG9zaXRpb25TdGFydCgpe3RoaXMuX2NvbXBvc2luZz0hMH1fY29tcG9zaXRpb25FbmQodCl7dGhpcy5fY29tcG9zaW5nPSExLHRoaXMuX2NvbXBvc2l0aW9uTW9kZSYmdGhpcy5vbkNoYW5nZSh0KX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBqVih0KXtyZXR1cm4gbnVsbD09dHx8MD09PXQubGVuZ3RofWZ1bmN0aW9uIFVWKHQpe3JldHVybiBudWxsIT10JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RofVZWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxWVikoU20oQ2cpLFNtKGhnKSxTbShCViw4KSl9LFZWLsm1ZGlyPWxvKHt0eXBlOlZWLHNlbGVjdG9yczpbWyJpbnB1dCIsImZvcm1Db250cm9sTmFtZSIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyJ0ZXh0YXJlYSIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJmb3JtQ29udHJvbCIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyJ0ZXh0YXJlYSIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsIm5nTW9kZWwiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsidGV4dGFyZWEiLCJuZ01vZGVsIiwiIl0sWyIiLCJuZ0RlZmF1bHRDb250cm9sIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiaW5wdXQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVJbnB1dChlLnRhcmdldC52YWx1ZSl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub3VjaGVkKCl9KSkoImNvbXBvc2l0aW9uc3RhcnQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2NvbXBvc2l0aW9uU3RhcnQoKX0pKSgiY29tcG9zaXRpb25lbmQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9jb21wb3NpdGlvbkVuZChlLnRhcmdldC52YWx1ZSl9KSl9LGZlYXR1cmVzOltwZyhbTFZdKSx4cF19KSxWVi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkNnfSx7dHlwZTpoZ30se3R5cGU6Qm9vbGVhbixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbQlZdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFZWLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pW2Zvcm1Db250cm9sTmFtZV0sdGV4dGFyZWFbZm9ybUNvbnRyb2xOYW1lXSxpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKVtmb3JtQ29udHJvbF0sdGV4dGFyZWFbZm9ybUNvbnRyb2xdLGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pW25nTW9kZWxdLHRleHRhcmVhW25nTW9kZWxdLFtuZ0RlZmF1bHRDb250cm9sXSIsaG9zdDp7IihpbnB1dCkiOiIkYW55KHRoaXMpLl9oYW5kbGVJbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKSIsIihibHVyKSI6Im9uVG91Y2hlZCgpIiwiKGNvbXBvc2l0aW9uc3RhcnQpIjoiJGFueSh0aGlzKS5fY29tcG9zaXRpb25TdGFydCgpIiwiKGNvbXBvc2l0aW9uZW5kKSI6IiRhbnkodGhpcykuX2NvbXBvc2l0aW9uRW5kKCRldmVudC50YXJnZXQudmFsdWUpIn0scHJvdmlkZXJzOltMVl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpDZ30se3R5cGU6aGd9LHt0eXBlOkJvb2xlYW4sZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W0JWXX1dfV19KSxudWxsKTtjb25zdCBHVj1uZXcgR2EoIk5nVmFsaWRhdG9ycyIpLFdWPW5ldyBHYSgiTmdBc3luY1ZhbGlkYXRvcnMiKSxZVj0vXig/PS57MSwyNTR9JCkoPz0uezEsNjR9QClbYS16QS1aMC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKD86XC5bYS16QS1aMC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSpAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKiQvO2NsYXNzIHFWe3N0YXRpYyBtaW4odCl7cmV0dXJuIFpWKHQpfXN0YXRpYyBtYXgodCl7cmV0dXJuIFhWKHQpfXN0YXRpYyByZXF1aXJlZCh0KXtyZXR1cm4gS1YodCl9c3RhdGljIHJlcXVpcmVkVHJ1ZSh0KXtyZXR1cm4gSlYodCl9c3RhdGljIGVtYWlsKHQpe3JldHVybiBRVih0KX1zdGF0aWMgbWluTGVuZ3RoKHQpe3JldHVybiAkVih0KX1zdGF0aWMgbWF4TGVuZ3RoKHQpe3JldHVybiB0aih0KX1zdGF0aWMgcGF0dGVybih0KXtyZXR1cm4gZWoodCl9c3RhdGljIG51bGxWYWxpZGF0b3IodCl7cmV0dXJuIG51bGx9c3RhdGljIGNvbXBvc2UodCl7cmV0dXJuIGxqKHQpfXN0YXRpYyBjb21wb3NlQXN5bmModCl7cmV0dXJuIGRqKHQpfX1mdW5jdGlvbiBaVih0KXtyZXR1cm4gZT0+e2lmKGpWKGUudmFsdWUpfHxqVih0KSlyZXR1cm4gbnVsbDtjb25zdCBuPXBhcnNlRmxvYXQoZS52YWx1ZSk7cmV0dXJuIWlzTmFOKG4pJiZuPHQ/e21pbjp7bWluOnQsYWN0dWFsOmUudmFsdWV9fTpudWxsfX1mdW5jdGlvbiBYVih0KXtyZXR1cm4gZT0+e2lmKGpWKGUudmFsdWUpfHxqVih0KSlyZXR1cm4gbnVsbDtjb25zdCBuPXBhcnNlRmxvYXQoZS52YWx1ZSk7cmV0dXJuIWlzTmFOKG4pJiZuPnQ/e21heDp7bWF4OnQsYWN0dWFsOmUudmFsdWV9fTpudWxsfX1mdW5jdGlvbiBLVih0KXtyZXR1cm4galYodC52YWx1ZSk/e3JlcXVpcmVkOiEwfTpudWxsfWZ1bmN0aW9uIEpWKHQpe3JldHVybiEwPT09dC52YWx1ZT9udWxsOntyZXF1aXJlZDohMH19ZnVuY3Rpb24gUVYodCl7cmV0dXJuIGpWKHQudmFsdWUpfHxZVi50ZXN0KHQudmFsdWUpP251bGw6e2VtYWlsOiEwfX1mdW5jdGlvbiAkVih0KXtyZXR1cm4gZT0+alYoZS52YWx1ZSl8fCFVVihlLnZhbHVlKT9udWxsOmUudmFsdWUubGVuZ3RoPHQ/e21pbmxlbmd0aDp7cmVxdWlyZWRMZW5ndGg6dCxhY3R1YWxMZW5ndGg6ZS52YWx1ZS5sZW5ndGh9fTpudWxsfWZ1bmN0aW9uIHRqKHQpe3JldHVybiBlPT5VVihlLnZhbHVlKSYmZS52YWx1ZS5sZW5ndGg+dD97bWF4bGVuZ3RoOntyZXF1aXJlZExlbmd0aDp0LGFjdHVhbExlbmd0aDplLnZhbHVlLmxlbmd0aH19Om51bGx9ZnVuY3Rpb24gZWoodCl7aWYoIXQpcmV0dXJuIG5qO2xldCBlLG47cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0PyhuPSIiLCJeIiE9PXQuY2hhckF0KDApJiYobis9Il4iKSxuKz10LCIkIiE9PXQuY2hhckF0KHQubGVuZ3RoLTEpJiYobis9IiQiKSxlPW5ldyBSZWdFeHAobikpOihuPXQudG9TdHJpbmcoKSxlPXQpLHQ9PntpZihqVih0LnZhbHVlKSlyZXR1cm4gbnVsbDtjb25zdCBvPXQudmFsdWU7cmV0dXJuIGUudGVzdChvKT9udWxsOntwYXR0ZXJuOntyZXF1aXJlZFBhdHRlcm46bixhY3R1YWxWYWx1ZTpvfX19fWZ1bmN0aW9uIG5qKHQpe3JldHVybiBudWxsfWZ1bmN0aW9uIG9qKHQpe3JldHVybiBudWxsIT10fWZ1bmN0aW9uIGlqKHQpe2NvbnN0IGU9Rm0odCk/Q3QodCk6dDtpZighQm0oZSkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHZhbGlkYXRvciB0byByZXR1cm4gUHJvbWlzZSBvciBPYnNlcnZhYmxlLiIpO3JldHVybiBlfWZ1bmN0aW9uIGFqKHQpe2xldCBlPXt9O3JldHVybiB0LmZvckVhY2goKHQ9PntlPW51bGwhPXQ/T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHQpOmV9KSksMD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aD9udWxsOmV9ZnVuY3Rpb24gcmoodCxlKXtyZXR1cm4gZS5tYXAoKGU9PmUodCkpKX1mdW5jdGlvbiBzaih0KXtyZXR1cm4gdC5tYXAoKHQ9PihmdW5jdGlvbiBlKHQpe3JldHVybiF0LnZhbGlkYXRlfSkodCk/dDplPT50LnZhbGlkYXRlKGUpKSl9ZnVuY3Rpb24gbGoodCl7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3QgZT10LmZpbHRlcihvaik7cmV0dXJuIDA9PWUubGVuZ3RoP251bGw6ZnVuY3Rpb24odCl7cmV0dXJuIGFqKHJqKHQsZSkpfX1mdW5jdGlvbiBjaih0KXtyZXR1cm4gbnVsbCE9dD9saihzaih0KSk6bnVsbH1mdW5jdGlvbiBkaih0KXtpZighdClyZXR1cm4gbnVsbDtjb25zdCBlPXQuZmlsdGVyKG9qKTtyZXR1cm4gMD09ZS5sZW5ndGg/bnVsbDpmdW5jdGlvbih0KXtyZXR1cm4gJHQocmoodCxlKS5tYXAoaWopKS5waXBlKEl0KGFqKSl9fWZ1bmN0aW9uIHBqKHQpe3JldHVybiBudWxsIT10P2RqKHNqKHQpKTpudWxsfWZ1bmN0aW9uIG1qKHQsZSl7cmV0dXJuIG51bGw9PT10P1tlXTpBcnJheS5pc0FycmF5KHQpP1suLi50LGVdOlt0LGVdfWZ1bmN0aW9uIHVqKHQpe3JldHVybiB0Ll9yYXdWYWxpZGF0b3JzfWZ1bmN0aW9uIGZqKHQpe3JldHVybiB0Ll9yYXdBc3luY1ZhbGlkYXRvcnN9ZnVuY3Rpb24gZ2oodCl7cmV0dXJuIHQ/QXJyYXkuaXNBcnJheSh0KT90Olt0XTpbXX1mdW5jdGlvbiBoaih0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QuaW5jbHVkZXMoZSk6dD09PWV9ZnVuY3Rpb24gYmoodCxlKXtjb25zdCBuPWdqKGUpO3JldHVybiBnaih0KS5mb3JFYWNoKCh0PT57aGoobix0KXx8bi5wdXNoKHQpfSkpLG59ZnVuY3Rpb24geWoodCxlKXtyZXR1cm4gZ2ooZSkuZmlsdGVyKChlPT4haGoodCxlKSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBfantjb25zdHJ1Y3Rvcigpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9W10sdGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPVtdLHRoaXMuX29uRGVzdHJveUNhbGxiYWNrcz1bXX1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC52YWx1ZTpudWxsfWdldCB2YWxpZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnZhbGlkOm51bGx9Z2V0IGludmFsaWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5pbnZhbGlkOm51bGx9Z2V0IHBlbmRpbmcoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5wZW5kaW5nOm51bGx9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZGlzYWJsZWQ6bnVsbH1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmVuYWJsZWQ6bnVsbH1nZXQgZXJyb3JzKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZXJyb3JzOm51bGx9Z2V0IHByaXN0aW5lKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wucHJpc3RpbmU6bnVsbH1nZXQgZGlydHkoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5kaXJ0eTpudWxsfWdldCB0b3VjaGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wudG91Y2hlZDpudWxsfWdldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5zdGF0dXM6bnVsbH1nZXQgdW50b3VjaGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wudW50b3VjaGVkOm51bGx9Z2V0IHN0YXR1c0NoYW5nZXMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzOm51bGx9Z2V0IHZhbHVlQ2hhbmdlcygpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlczpudWxsfWdldCBwYXRoKCl7cmV0dXJuIG51bGx9X3NldFZhbGlkYXRvcnModCl7dGhpcy5fcmF3VmFsaWRhdG9ycz10fHxbXSx0aGlzLl9jb21wb3NlZFZhbGlkYXRvckZuPWNqKHRoaXMuX3Jhd1ZhbGlkYXRvcnMpfV9zZXRBc3luY1ZhbGlkYXRvcnModCl7dGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPXR8fFtdLHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1waih0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpfWdldCB2YWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbnx8bnVsbH1nZXQgYXN5bmNWYWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5fY29tcG9zZWRBc3luY1ZhbGlkYXRvckZufHxudWxsfV9yZWdpc3Rlck9uRGVzdHJveSh0KXt0aGlzLl9vbkRlc3Ryb3lDYWxsYmFja3MucHVzaCh0KX1faW52b2tlT25EZXN0cm95Q2FsbGJhY2tzKCl7dGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uRGVzdHJveUNhbGxiYWNrcz1bXX1yZXNldCh0KXt0aGlzLmNvbnRyb2wmJnRoaXMuY29udHJvbC5yZXNldCh0KX1oYXNFcnJvcih0LGUpe3JldHVybiEhdGhpcy5jb250cm9sJiZ0aGlzLmNvbnRyb2wuaGFzRXJyb3IodCxlKX1nZXRFcnJvcih0LGUpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmdldEVycm9yKHQsZSk6bnVsbH19X2ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fF9qKX0sX2ouybVkaXI9bG8oe3R5cGU6X2p9KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIENqIGV4dGVuZHMgX2p7Z2V0IGZvcm1EaXJlY3RpdmUoKXtyZXR1cm4gbnVsbH1nZXQgcGF0aCgpe3JldHVybiBudWxsfX1Dai7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoQ2opKSkobnx8Q2opfX0pKCksQ2ouybVkaXI9bG8oe3R5cGU6Q2osZmVhdHVyZXM6W3hwXX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgTWogZXh0ZW5kcyBfantjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fcGFyZW50PW51bGwsdGhpcy5uYW1lPW51bGwsdGhpcy52YWx1ZUFjY2Vzc29yPW51bGx9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB2antjb25zdHJ1Y3Rvcih0KXt0aGlzLl9jZD10fWlzKHQpe3ZhciBlLG4sbztyZXR1cm4ic3VibWl0dGVkIj09PXQ/ISEobnVsbD09PShlPXRoaXMuX2NkKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5zdWJtaXR0ZWQpOiEhKG51bGw9PT0obz1udWxsPT09KG49dGhpcy5fY2QpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmNvbnRyb2wpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvW3RdKX19Y2xhc3MgeGogZXh0ZW5kcyB2antjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX19eGouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHhqKShTbShNaiwyKSl9LHhqLsm1ZGlyPWxvKHt0eXBlOnhqLHNlbGVjdG9yczpbWyIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIiIsIm5nTW9kZWwiLCIiXSxbIiIsImZvcm1Db250cm9sIiwiIl1dLGhvc3RWYXJzOjE0LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgibmctdW50b3VjaGVkIixuLmlzKCJ1bnRvdWNoZWQiKSkoIm5nLXRvdWNoZWQiLG4uaXMoInRvdWNoZWQiKSkoIm5nLXByaXN0aW5lIixuLmlzKCJwcmlzdGluZSIpKSgibmctZGlydHkiLG4uaXMoImRpcnR5IikpKCJuZy12YWxpZCIsbi5pcygidmFsaWQiKSkoIm5nLWludmFsaWQiLG4uaXMoImludmFsaWQiKSkoIm5nLXBlbmRpbmciLG4uaXMoInBlbmRpbmciKSl9LGZlYXR1cmVzOlt4cF19KSx4ai5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOk1qLGRlY29yYXRvcnM6W3t0eXBlOkRyfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHhqLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Iltmb3JtQ29udHJvbE5hbWVdLFtuZ01vZGVsXSxbZm9ybUNvbnRyb2xdIixob3N0OnsiW2NsYXNzLm5nLXVudG91Y2hlZF0iOidpcygidW50b3VjaGVkIiknLCJbY2xhc3MubmctdG91Y2hlZF0iOidpcygidG91Y2hlZCIpJywiW2NsYXNzLm5nLXByaXN0aW5lXSI6J2lzKCJwcmlzdGluZSIpJywiW2NsYXNzLm5nLWRpcnR5XSI6J2lzKCJkaXJ0eSIpJywiW2NsYXNzLm5nLXZhbGlkXSI6J2lzKCJ2YWxpZCIpJywiW2NsYXNzLm5nLWludmFsaWRdIjonaXMoImludmFsaWQiKScsIltjbGFzcy5uZy1wZW5kaW5nXSI6J2lzKCJwZW5kaW5nIiknfX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOk1qLGRlY29yYXRvcnM6W3t0eXBlOkRyfV19XX0pLG51bGwpO2NsYXNzIE9qIGV4dGVuZHMgdmp7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9fU9qLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxPaikoU20oQ2osMTApKX0sT2ouybVkaXI9bG8oe3R5cGU6T2osc2VsZWN0b3JzOltbIiIsImZvcm1Hcm91cE5hbWUiLCIiXSxbIiIsImZvcm1BcnJheU5hbWUiLCIiXSxbIiIsIm5nTW9kZWxHcm91cCIsIiJdLFsiIiwiZm9ybUdyb3VwIiwiIl0sWyJmb3JtIiwzLCJuZ05vRm9ybSIsIiJdLFsiIiwibmdGb3JtIiwiIl1dLGhvc3RWYXJzOjE2LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgibmctdW50b3VjaGVkIixuLmlzKCJ1bnRvdWNoZWQiKSkoIm5nLXRvdWNoZWQiLG4uaXMoInRvdWNoZWQiKSkoIm5nLXByaXN0aW5lIixuLmlzKCJwcmlzdGluZSIpKSgibmctZGlydHkiLG4uaXMoImRpcnR5IikpKCJuZy12YWxpZCIsbi5pcygidmFsaWQiKSkoIm5nLWludmFsaWQiLG4uaXMoImludmFsaWQiKSkoIm5nLXBlbmRpbmciLG4uaXMoInBlbmRpbmciKSkoIm5nLXN1Ym1pdHRlZCIsbi5pcygic3VibWl0dGVkIikpfSxmZWF0dXJlczpbeHBdfSksT2ouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpDaixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoT2osW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Zvcm1Hcm91cE5hbWVdLFtmb3JtQXJyYXlOYW1lXSxbbmdNb2RlbEdyb3VwXSxbZm9ybUdyb3VwXSxmb3JtOm5vdChbbmdOb0Zvcm1dKSxbbmdGb3JtXSIsaG9zdDp7IltjbGFzcy5uZy11bnRvdWNoZWRdIjonaXMoInVudG91Y2hlZCIpJywiW2NsYXNzLm5nLXRvdWNoZWRdIjonaXMoInRvdWNoZWQiKScsIltjbGFzcy5uZy1wcmlzdGluZV0iOidpcygicHJpc3RpbmUiKScsIltjbGFzcy5uZy1kaXJ0eV0iOidpcygiZGlydHkiKScsIltjbGFzcy5uZy12YWxpZF0iOidpcygidmFsaWQiKScsIltjbGFzcy5uZy1pbnZhbGlkXSI6J2lzKCJpbnZhbGlkIiknLCJbY2xhc3MubmctcGVuZGluZ10iOidpcygicGVuZGluZyIpJywiW2NsYXNzLm5nLXN1Ym1pdHRlZF0iOidpcygic3VibWl0dGVkIiknfX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkNqLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFBqPSdcbiAgICA8ZGl2IFtmb3JtR3JvdXBdPSJteUdyb3VwIj5cbiAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9ImZpcnN0TmFtZSI+XG4gICAgPC9kaXY+XG5cbiAgICBJbiB5b3VyIGNsYXNzOlxuXG4gICAgdGhpcy5teUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgZmlyc3ROYW1lOiBuZXcgRm9ybUNvbnRyb2woKVxuICAgIH0pOycsd2o9J1xuICAgIDxkaXYgW2Zvcm1Hcm91cF09Im15R3JvdXAiPlxuICAgICAgIDxkaXYgZm9ybUdyb3VwTmFtZT0icGVyc29uIj5cbiAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPSJmaXJzdE5hbWUiPlxuICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgSW4geW91ciBjbGFzczpcblxuICAgIHRoaXMubXlHcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgIHBlcnNvbjogbmV3IEZvcm1Hcm91cCh7IGZpcnN0TmFtZTogbmV3IEZvcm1Db250cm9sKCkgfSlcbiAgICB9KTsnLGtqPSdcbiAgICA8Zm9ybT5cbiAgICAgICA8ZGl2IG5nTW9kZWxHcm91cD0icGVyc29uIj5cbiAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09InBlcnNvbi5uYW1lIiBuYW1lPSJmaXJzdE5hbWUiPlxuICAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT4nOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBTantzdGF0aWMgY29udHJvbFBhcmVudEV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcihgZm9ybUNvbnRyb2xOYW1lIG11c3QgYmUgdXNlZCB3aXRoIGEgcGFyZW50IGZvcm1Hcm91cCBkaXJlY3RpdmUuICBZb3UnbGwgd2FudCB0byBhZGQgYSBmb3JtR3JvdXBcbiAgICAgICBkaXJlY3RpdmUgYW5kIHBhc3MgaXQgYW4gZXhpc3RpbmcgRm9ybUdyb3VwIGluc3RhbmNlICh5b3UgY2FuIGNyZWF0ZSBvbmUgaW4geW91ciBjbGFzcykuXG5cbiAgICAgIEV4YW1wbGU6XG5cbiAgICAgICR7UGp9YCl9c3RhdGljIG5nTW9kZWxHcm91cEV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcihgZm9ybUNvbnRyb2xOYW1lIGNhbm5vdCBiZSB1c2VkIHdpdGggYW4gbmdNb2RlbEdyb3VwIHBhcmVudC4gSXQgaXMgb25seSBjb21wYXRpYmxlIHdpdGggcGFyZW50c1xuICAgICAgIHRoYXQgYWxzbyBoYXZlIGEgImZvcm0iIHByZWZpeDogZm9ybUdyb3VwTmFtZSwgZm9ybUFycmF5TmFtZSwgb3IgZm9ybUdyb3VwLlxuXG4gICAgICAgT3B0aW9uIDE6ICBVcGRhdGUgdGhlIHBhcmVudCB0byBiZSBmb3JtR3JvdXBOYW1lIChyZWFjdGl2ZSBmb3JtIHN0cmF0ZWd5KVxuXG4gICAgICAgICR7d2p9XG5cbiAgICAgICAgT3B0aW9uIDI6IFVzZSBuZ01vZGVsIGluc3RlYWQgb2YgZm9ybUNvbnRyb2xOYW1lICh0ZW1wbGF0ZS1kcml2ZW4gc3RyYXRlZ3kpXG5cbiAgICAgICAgJHtran1gKX1zdGF0aWMgbWlzc2luZ0Zvcm1FeGNlcHRpb24oKXt0aHJvdyBuZXcgRXJyb3IoYGZvcm1Hcm91cCBleHBlY3RzIGEgRm9ybUdyb3VwIGluc3RhbmNlLiBQbGVhc2UgcGFzcyBvbmUgaW4uXG5cbiAgICAgICBFeGFtcGxlOlxuXG4gICAgICAgJHtQan1gKX1zdGF0aWMgZ3JvdXBQYXJlbnRFeGNlcHRpb24oKXt0aHJvdyBuZXcgRXJyb3IoYGZvcm1Hcm91cE5hbWUgbXVzdCBiZSB1c2VkIHdpdGggYSBwYXJlbnQgZm9ybUdyb3VwIGRpcmVjdGl2ZS4gIFlvdSdsbCB3YW50IHRvIGFkZCBhIGZvcm1Hcm91cFxuICAgICAgZGlyZWN0aXZlIGFuZCBwYXNzIGl0IGFuIGV4aXN0aW5nIEZvcm1Hcm91cCBpbnN0YW5jZSAoeW91IGNhbiBjcmVhdGUgb25lIGluIHlvdXIgY2xhc3MpLlxuXG4gICAgICBFeGFtcGxlOlxuXG4gICAgICAke3dqfWApfXN0YXRpYyBhcnJheVBhcmVudEV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcignZm9ybUFycmF5TmFtZSBtdXN0IGJlIHVzZWQgd2l0aCBhIHBhcmVudCBmb3JtR3JvdXAgZGlyZWN0aXZlLiAgWW91XCdsbCB3YW50IHRvIGFkZCBhIGZvcm1Hcm91cFxuICAgICAgIGRpcmVjdGl2ZSBhbmQgcGFzcyBpdCBhbiBleGlzdGluZyBGb3JtR3JvdXAgaW5zdGFuY2UgKHlvdSBjYW4gY3JlYXRlIG9uZSBpbiB5b3VyIGNsYXNzKS5cblxuICAgICAgICBFeGFtcGxlOlxuXG4gICAgICAgIFxuICAgIDxkaXYgW2Zvcm1Hcm91cF09Im15R3JvdXAiPlxuICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPSJjaXRpZXMiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj0ibGV0IGNpdHkgb2YgY2l0eUFycmF5LmNvbnRyb2xzOyBpbmRleCBhcyBpIj5cbiAgICAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sTmFtZV09ImkiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgSW4geW91ciBjbGFzczpcblxuICAgIHRoaXMuY2l0eUFycmF5ID0gbmV3IEZvcm1BcnJheShbbmV3IEZvcm1Db250cm9sKFwnU0ZcJyldKTtcbiAgICB0aGlzLm15R3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGNpdGllczogdGhpcy5jaXR5QXJyYXlcbiAgICB9KTsnKX1zdGF0aWMgZGlzYWJsZWRBdHRyV2FybmluZygpe2NvbnNvbGUud2FybigiXG4gICAgICBJdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyB0aGUgZGlzYWJsZWQgYXR0cmlidXRlIHdpdGggYSByZWFjdGl2ZSBmb3JtIGRpcmVjdGl2ZS4gSWYgeW91IHNldCBkaXNhYmxlZCB0byB0cnVlXG4gICAgICB3aGVuIHlvdSBzZXQgdXAgdGhpcyBjb250cm9sIGluIHlvdXIgY29tcG9uZW50IGNsYXNzLCB0aGUgZGlzYWJsZWQgYXR0cmlidXRlIHdpbGwgYWN0dWFsbHkgYmUgc2V0IGluIHRoZSBET00gZm9yXG4gICAgICB5b3UuIFdlIHJlY29tbWVuZCB1c2luZyB0aGlzIGFwcHJvYWNoIHRvIGF2b2lkICdjaGFuZ2VkIGFmdGVyIGNoZWNrZWQnIGVycm9ycy5cblxuICAgICAgRXhhbXBsZTpcbiAgICAgIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgZmlyc3Q6IG5ldyBGb3JtQ29udHJvbCh7dmFsdWU6ICdOYW5jeScsIGRpc2FibGVkOiB0cnVlfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGxhc3Q6IG5ldyBGb3JtQ29udHJvbCgnRHJldycsIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICB9KTtcbiAgICAiKX1zdGF0aWMgbmdNb2RlbFdhcm5pbmcodCl7Y29uc29sZS53YXJuKGBcbiAgICBJdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyBuZ01vZGVsIG9uIHRoZSBzYW1lIGZvcm0gZmllbGQgYXMgJHt0fS5cbiAgICBTdXBwb3J0IGZvciB1c2luZyB0aGUgbmdNb2RlbCBpbnB1dCBwcm9wZXJ0eSBhbmQgbmdNb2RlbENoYW5nZSBldmVudCB3aXRoXG4gICAgcmVhY3RpdmUgZm9ybSBkaXJlY3RpdmVzIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gQW5ndWxhciB2NiBhbmQgd2lsbCBiZSByZW1vdmVkXG4gICAgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBBbmd1bGFyLlxuXG4gICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgc2VlIG91ciBBUEkgZG9jcyBoZXJlOlxuICAgIGh0dHBzOi8vYW5ndWxhci5pby9hcGkvZm9ybXMvJHsiZm9ybUNvbnRyb2wiPT09dD8iRm9ybUNvbnRyb2xEaXJlY3RpdmUiOiJGb3JtQ29udHJvbE5hbWUifSN1c2Utd2l0aC1uZ21vZGVsXG4gICAgYCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBEaih0LGUpe3JldHVyblsuLi5lLnBhdGgsdF19ZnVuY3Rpb24gRWoodCxlKXsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJih0fHxIaihlLCJDYW5ub3QgZmluZCBjb250cm9sIHdpdGgiKSxlLnZhbHVlQWNjZXNzb3J8fEhqKGUsIk5vIHZhbHVlIGFjY2Vzc29yIGZvciBmb3JtIGNvbnRyb2wgd2l0aCIpKSxUaih0LGUpLGUudmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlKHQudmFsdWUpLChmdW5jdGlvbiBuKHQsZSl7ZS52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2UoKG49Pnt0Ll9wZW5kaW5nVmFsdWU9bix0Ll9wZW5kaW5nQ2hhbmdlPSEwLHQuX3BlbmRpbmdEaXJ0eT0hMCwiY2hhbmdlIj09PXQudXBkYXRlT24mJnpqKHQsZSl9KSl9KSh0LGUpLChmdW5jdGlvbiBvKHQsZSl7Y29uc3Qgbj0odCxuKT0+e2UudmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlKHQpLG4mJmUudmlld1RvTW9kZWxVcGRhdGUodCl9O3QucmVnaXN0ZXJPbkNoYW5nZShuKSxlLl9yZWdpc3Rlck9uRGVzdHJveSgoKCk9Pnt0Ll91bnJlZ2lzdGVyT25DaGFuZ2Uobil9KSl9KSh0LGUpLChmdW5jdGlvbiBpKHQsZSl7ZS52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25Ub3VjaGVkKCgoKT0+e3QuX3BlbmRpbmdUb3VjaGVkPSEwLCJibHVyIj09PXQudXBkYXRlT24mJnQuX3BlbmRpbmdDaGFuZ2UmJnpqKHQsZSksInN1Ym1pdCIhPT10LnVwZGF0ZU9uJiZ0Lm1hcmtBc1RvdWNoZWQoKX0pKX0pKHQsZSksKGZ1bmN0aW9uIGEodCxlKXtpZihlLnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZSl7Y29uc3Qgbj10PT57ZS52YWx1ZUFjY2Vzc29yLnNldERpc2FibGVkU3RhdGUodCl9O3QucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKG4pLGUuX3JlZ2lzdGVyT25EZXN0cm95KCgoKT0+e3QuX3VucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKG4pfSkpfX0pKHQsZSl9ZnVuY3Rpb24gUmoodCxlLG49ITApe2NvbnN0IG89KCk9PntuJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJihmdW5jdGlvbiB0KGUpe0hqKGUsIlRoZXJlIGlzIG5vIEZvcm1Db250cm9sIGluc3RhbmNlIGF0dGFjaGVkIHRvIGZvcm0gY29udHJvbCBlbGVtZW50IHdpdGgiKX0pKGUpfTtlLnZhbHVlQWNjZXNzb3ImJihlLnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPbkNoYW5nZShvKSxlLnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPblRvdWNoZWQobykpLE5qKHQsZSksdCYmKGUuX2ludm9rZU9uRGVzdHJveUNhbGxiYWNrcygpLHQuX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgoKT0+e30pKSl9ZnVuY3Rpb24gQWoodCxlKXt0LmZvckVhY2goKHQ9Pnt0LnJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UmJnQucmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShlKX0pKX1mdW5jdGlvbiBUaih0LGUpe2NvbnN0IG49dWoodCk7bnVsbCE9PWUudmFsaWRhdG9yP3Quc2V0VmFsaWRhdG9ycyhtaihuLGUudmFsaWRhdG9yKSk6ImZ1bmN0aW9uIj09dHlwZW9mIG4mJnQuc2V0VmFsaWRhdG9ycyhbbl0pO2NvbnN0IG89ZmoodCk7bnVsbCE9PWUuYXN5bmNWYWxpZGF0b3I/dC5zZXRBc3luY1ZhbGlkYXRvcnMobWoobyxlLmFzeW5jVmFsaWRhdG9yKSk6ImZ1bmN0aW9uIj09dHlwZW9mIG8mJnQuc2V0QXN5bmNWYWxpZGF0b3JzKFtvXSk7Y29uc3QgaT0oKT0+dC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7QWooZS5fcmF3VmFsaWRhdG9ycyxpKSxBaihlLl9yYXdBc3luY1ZhbGlkYXRvcnMsaSl9ZnVuY3Rpb24gTmoodCxlKXtsZXQgbj0hMTtpZihudWxsIT09dCl7aWYobnVsbCE9PWUudmFsaWRhdG9yKXtjb25zdCBvPXVqKHQpO2lmKEFycmF5LmlzQXJyYXkobykmJm8ubGVuZ3RoPjApe2NvbnN0IGk9by5maWx0ZXIoKHQ9PnQhPT1lLnZhbGlkYXRvcikpO2kubGVuZ3RoIT09by5sZW5ndGgmJihuPSEwLHQuc2V0VmFsaWRhdG9ycyhpKSl9fWlmKG51bGwhPT1lLmFzeW5jVmFsaWRhdG9yKXtjb25zdCBvPWZqKHQpO2lmKEFycmF5LmlzQXJyYXkobykmJm8ubGVuZ3RoPjApe2NvbnN0IGk9by5maWx0ZXIoKHQ9PnQhPT1lLmFzeW5jVmFsaWRhdG9yKSk7aS5sZW5ndGghPT1vLmxlbmd0aCYmKG49ITAsdC5zZXRBc3luY1ZhbGlkYXRvcnMoaSkpfX19Y29uc3Qgbz0oKT0+e307cmV0dXJuIEFqKGUuX3Jhd1ZhbGlkYXRvcnMsbyksQWooZS5fcmF3QXN5bmNWYWxpZGF0b3JzLG8pLG59ZnVuY3Rpb24gemoodCxlKXt0Ll9wZW5kaW5nRGlydHkmJnQubWFya0FzRGlydHkoKSx0LnNldFZhbHVlKHQuX3BlbmRpbmdWYWx1ZSx7ZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiExfSksZS52aWV3VG9Nb2RlbFVwZGF0ZSh0Ll9wZW5kaW5nVmFsdWUpLHQuX3BlbmRpbmdDaGFuZ2U9ITF9ZnVuY3Rpb24gSWoodCxlKXtudWxsIT10fHwidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8SGooZSwiQ2Fubm90IGZpbmQgY29udHJvbCB3aXRoIiksVGoodCxlKX1mdW5jdGlvbiBIaih0LGUpe2xldCBuO3Rocm93IG49dC5wYXRoLmxlbmd0aD4xP2BwYXRoOiAnJHt0LnBhdGguam9pbigiIC0+ICIpfSdgOnQucGF0aFswXT9gbmFtZTogJyR7dC5wYXRofSdgOiJ1bnNwZWNpZmllZCBuYW1lIGF0dHJpYnV0ZSIsbmV3IEVycm9yKGAke2V9ICR7bn1gKX1mdW5jdGlvbiBGaih0LGUpe2lmKCF0Lmhhc093blByb3BlcnR5KCJtb2RlbCIpKXJldHVybiExO2NvbnN0IG49dC5tb2RlbDtyZXR1cm4hIW4uaXNGaXJzdENoYW5nZSgpfHwhT2JqZWN0LmlzKGUsbi5jdXJyZW50VmFsdWUpfWZ1bmN0aW9uIExqKHQsZSl7dC5fc3luY1BlbmRpbmdDb250cm9scygpLGUuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5jb250cm9sOyJzdWJtaXQiPT09ZS51cGRhdGVPbiYmZS5fcGVuZGluZ0NoYW5nZSYmKHQudmlld1RvTW9kZWxVcGRhdGUoZS5fcGVuZGluZ1ZhbHVlKSxlLl9wZW5kaW5nQ2hhbmdlPSExKX0pKX1mdW5jdGlvbiBCaih0LGUpe2lmKCFlKXJldHVybiBudWxsO2xldCBuLG8saTtyZXR1cm4gQXJyYXkuaXNBcnJheShlKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fEhqKHQsIlZhbHVlIGFjY2Vzc29yIHdhcyBub3QgcHJvdmlkZWQgYXMgYW4gYXJyYXkgZm9yIGZvcm0gY29udHJvbCB3aXRoIiksZS5mb3JFYWNoKChlPT57ZS5jb25zdHJ1Y3Rvcj09PVZWP249ZTooZnVuY3Rpb24gYSh0KXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKHQuY29uc3RydWN0b3IpPT09elZ9KShlKT8obyYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZIaih0LCJNb3JlIHRoYW4gb25lIGJ1aWx0LWluIHZhbHVlIGFjY2Vzc29yIG1hdGNoZXMgZm9ybSBjb250cm9sIHdpdGgiKSxvPWUpOihpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJkhqKHQsIk1vcmUgdGhhbiBvbmUgY3VzdG9tIHZhbHVlIGFjY2Vzc29yIG1hdGNoZXMgZm9ybSBjb250cm9sIHdpdGgiKSxpPWUpfSkpLGl8fG98fG58fCgoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJkhqKHQsIk5vIHZhbGlkIHZhbHVlIGFjY2Vzc29yIGZvciBmb3JtIGNvbnRyb2wgd2l0aCIpLG51bGwpfWZ1bmN0aW9uIFZqKHQsZSl7Y29uc3Qgbj10LmluZGV4T2YoZSk7bj4tMSYmdC5zcGxpY2UobiwxKX1mdW5jdGlvbiBqaih0LGUsbixvKXsibmV2ZXIiIT09byYmKChudWxsIT09byYmIm9uY2UiIT09b3x8ZS5fbmdNb2RlbFdhcm5pbmdTZW50T25jZSkmJigiYWx3YXlzIiE9PW98fG4uX25nTW9kZWxXYXJuaW5nU2VudCl8fChTai5uZ01vZGVsV2FybmluZyh0KSxlLl9uZ01vZGVsV2FybmluZ1NlbnRPbmNlPSEwLG4uX25nTW9kZWxXYXJuaW5nU2VudD0hMCkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBVaj0iVkFMSUQiLEdqPSJJTlZBTElEIixXaj0iUEVORElORyIsWWo9IkRJU0FCTEVEIjtmdW5jdGlvbiBxaih0KXtyZXR1cm4oSmoodCk/dC52YWxpZGF0b3JzOnQpfHxudWxsfWZ1bmN0aW9uIFpqKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP2NqKHQpOnR8fG51bGx9ZnVuY3Rpb24gWGoodCxlKXtyZXR1cm4oSmooZSk/ZS5hc3luY1ZhbGlkYXRvcnM6dCl8fG51bGx9ZnVuY3Rpb24gS2oodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/cGoodCk6dHx8bnVsbH1mdW5jdGlvbiBKaih0KXtyZXR1cm4gbnVsbCE9dCYmIUFycmF5LmlzQXJyYXkodCkmJiJvYmplY3QiPT10eXBlb2YgdH1jbGFzcyBRantjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2U9KCk9Pnt9LHRoaXMuX3BhcmVudD1udWxsLHRoaXMucHJpc3RpbmU9ITAsdGhpcy50b3VjaGVkPSExLHRoaXMuX29uRGlzYWJsZWRDaGFuZ2U9W10sdGhpcy5fcmF3VmFsaWRhdG9ycz10LHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1lLHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49WmoodGhpcy5fcmF3VmFsaWRhdG9ycyksdGhpcy5fY29tcG9zZWRBc3luY1ZhbGlkYXRvckZuPUtqKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyl9Z2V0IHZhbGlkYXRvcigpe3JldHVybiB0aGlzLl9jb21wb3NlZFZhbGlkYXRvckZufXNldCB2YWxpZGF0b3IodCl7dGhpcy5fcmF3VmFsaWRhdG9ycz10aGlzLl9jb21wb3NlZFZhbGlkYXRvckZuPXR9Z2V0IGFzeW5jVmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbn1zZXQgYXN5bmNWYWxpZGF0b3IodCl7dGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPXRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj10fWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcGFyZW50fWdldCB2YWxpZCgpe3JldHVybiB0aGlzLnN0YXR1cz09PVVqfWdldCBpbnZhbGlkKCl7cmV0dXJuIHRoaXMuc3RhdHVzPT09R2p9Z2V0IHBlbmRpbmcoKXtyZXR1cm4gdGhpcy5zdGF0dXM9PVdqfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLnN0YXR1cz09PVlqfWdldCBlbmFibGVkKCl7cmV0dXJuIHRoaXMuc3RhdHVzIT09WWp9Z2V0IGRpcnR5KCl7cmV0dXJuIXRoaXMucHJpc3RpbmV9Z2V0IHVudG91Y2hlZCgpe3JldHVybiF0aGlzLnRvdWNoZWR9Z2V0IHVwZGF0ZU9uKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZU9uP3RoaXMuX3VwZGF0ZU9uOnRoaXMucGFyZW50P3RoaXMucGFyZW50LnVwZGF0ZU9uOiJjaGFuZ2UifXNldFZhbGlkYXRvcnModCl7dGhpcy5fcmF3VmFsaWRhdG9ycz10LHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49WmoodCl9c2V0QXN5bmNWYWxpZGF0b3JzKHQpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz10LHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1Laih0KX1hZGRWYWxpZGF0b3JzKHQpe3RoaXMuc2V0VmFsaWRhdG9ycyhiaih0LHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1hZGRBc3luY1ZhbGlkYXRvcnModCl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoYmoodCx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1yZW1vdmVWYWxpZGF0b3JzKHQpe3RoaXMuc2V0VmFsaWRhdG9ycyh5aih0LHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1yZW1vdmVBc3luY1ZhbGlkYXRvcnModCl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoeWoodCx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1oYXNWYWxpZGF0b3IodCl7cmV0dXJuIGhqKHRoaXMuX3Jhd1ZhbGlkYXRvcnMsdCl9aGFzQXN5bmNWYWxpZGF0b3IodCl7cmV0dXJuIGhqKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyx0KX1jbGVhclZhbGlkYXRvcnMoKXt0aGlzLnZhbGlkYXRvcj1udWxsfWNsZWFyQXN5bmNWYWxpZGF0b3JzKCl7dGhpcy5hc3luY1ZhbGlkYXRvcj1udWxsfW1hcmtBc1RvdWNoZWQodD17fSl7dGhpcy50b3VjaGVkPSEwLHRoaXMuX3BhcmVudCYmIXQub25seVNlbGYmJnRoaXMuX3BhcmVudC5tYXJrQXNUb3VjaGVkKHQpfW1hcmtBbGxBc1RvdWNoZWQoKXt0aGlzLm1hcmtBc1RvdWNoZWQoe29ubHlTZWxmOiEwfSksdGhpcy5fZm9yRWFjaENoaWxkKCh0PT50Lm1hcmtBbGxBc1RvdWNoZWQoKSkpfW1hcmtBc1VudG91Y2hlZCh0PXt9KXt0aGlzLnRvdWNoZWQ9ITEsdGhpcy5fcGVuZGluZ1RvdWNoZWQ9ITEsdGhpcy5fZm9yRWFjaENoaWxkKCh0PT57dC5tYXJrQXNVbnRvdWNoZWQoe29ubHlTZWxmOiEwfSl9KSksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVUb3VjaGVkKHQpfW1hcmtBc0RpcnR5KHQ9e30pe3RoaXMucHJpc3RpbmU9ITEsdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Lm1hcmtBc0RpcnR5KHQpfW1hcmtBc1ByaXN0aW5lKHQ9e30pe3RoaXMucHJpc3RpbmU9ITAsdGhpcy5fcGVuZGluZ0RpcnR5PSExLHRoaXMuX2ZvckVhY2hDaGlsZCgodD0+e3QubWFya0FzUHJpc3RpbmUoe29ubHlTZWxmOiEwfSl9KSksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVQcmlzdGluZSh0KX1tYXJrQXNQZW5kaW5nKHQ9e30pe3RoaXMuc3RhdHVzPVdqLCExIT09dC5lbWl0RXZlbnQmJnRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFya0FzUGVuZGluZyh0KX1kaXNhYmxlKHQ9e30pe2NvbnN0IGU9dGhpcy5fcGFyZW50TWFya2VkRGlydHkodC5vbmx5U2VsZik7dGhpcy5zdGF0dXM9WWosdGhpcy5lcnJvcnM9bnVsbCx0aGlzLl9mb3JFYWNoQ2hpbGQoKGU9PntlLmRpc2FibGUoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtvbmx5U2VsZjohMH0pKX0pKSx0aGlzLl91cGRhdGVWYWx1ZSgpLCExIT09dC5lbWl0RXZlbnQmJih0aGlzLnZhbHVlQ2hhbmdlcy5lbWl0KHRoaXMudmFsdWUpLHRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSksdGhpcy5fdXBkYXRlQW5jZXN0b3JzKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2tpcFByaXN0aW5lQ2hlY2s6ZX0pKSx0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLmZvckVhY2goKHQ9PnQoITApKSl9ZW5hYmxlKHQ9e30pe2NvbnN0IGU9dGhpcy5fcGFyZW50TWFya2VkRGlydHkodC5vbmx5U2VsZik7dGhpcy5zdGF0dXM9VWosdGhpcy5fZm9yRWFjaENoaWxkKChlPT57ZS5lbmFibGUoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtvbmx5U2VsZjohMH0pKX0pKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwLGVtaXRFdmVudDp0LmVtaXRFdmVudH0pLHRoaXMuX3VwZGF0ZUFuY2VzdG9ycyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NraXBQcmlzdGluZUNoZWNrOmV9KSksdGhpcy5fb25EaXNhYmxlZENoYW5nZS5mb3JFYWNoKCh0PT50KCExKSkpfV91cGRhdGVBbmNlc3RvcnModCl7dGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmKHRoaXMuX3BhcmVudC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHQpLHQuc2tpcFByaXN0aW5lQ2hlY2t8fHRoaXMuX3BhcmVudC5fdXBkYXRlUHJpc3RpbmUoKSx0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQoKSl9c2V0UGFyZW50KHQpe3RoaXMuX3BhcmVudD10fXVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkodD17fSl7dGhpcy5fc2V0SW5pdGlhbFN0YXR1cygpLHRoaXMuX3VwZGF0ZVZhbHVlKCksdGhpcy5lbmFibGVkJiYodGhpcy5fY2FuY2VsRXhpc3RpbmdTdWJzY3JpcHRpb24oKSx0aGlzLmVycm9ycz10aGlzLl9ydW5WYWxpZGF0b3IoKSx0aGlzLnN0YXR1cz10aGlzLl9jYWxjdWxhdGVTdGF0dXMoKSx0aGlzLnN0YXR1cyE9PVVqJiZ0aGlzLnN0YXR1cyE9PVdqfHx0aGlzLl9ydW5Bc3luY1ZhbGlkYXRvcih0LmVtaXRFdmVudCkpLCExIT09dC5lbWl0RXZlbnQmJih0aGlzLnZhbHVlQ2hhbmdlcy5lbWl0KHRoaXMudmFsdWUpLHRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkodCl9X3VwZGF0ZVRyZWVWYWxpZGl0eSh0PXtlbWl0RXZlbnQ6ITB9KXt0aGlzLl9mb3JFYWNoQ2hpbGQoKGU9PmUuX3VwZGF0ZVRyZWVWYWxpZGl0eSh0KSkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OnQuZW1pdEV2ZW50fSl9X3NldEluaXRpYWxTdGF0dXMoKXt0aGlzLnN0YXR1cz10aGlzLl9hbGxDb250cm9sc0Rpc2FibGVkKCk/WWo6VWp9X3J1blZhbGlkYXRvcigpe3JldHVybiB0aGlzLnZhbGlkYXRvcj90aGlzLnZhbGlkYXRvcih0aGlzKTpudWxsfV9ydW5Bc3luY1ZhbGlkYXRvcih0KXtpZih0aGlzLmFzeW5jVmFsaWRhdG9yKXt0aGlzLnN0YXR1cz1Xaix0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITA7Y29uc3QgZT1paih0aGlzLmFzeW5jVmFsaWRhdG9yKHRoaXMpKTt0aGlzLl9hc3luY1ZhbGlkYXRpb25TdWJzY3JpcHRpb249ZS5zdWJzY3JpYmUoKGU9Pnt0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITEsdGhpcy5zZXRFcnJvcnMoZSx7ZW1pdEV2ZW50OnR9KX0pKX19X2NhbmNlbEV4aXN0aW5nU3Vic2NyaXB0aW9uKCl7dGhpcy5fYXN5bmNWYWxpZGF0aW9uU3Vic2NyaXB0aW9uJiYodGhpcy5fYXN5bmNWYWxpZGF0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5faGFzT3duUGVuZGluZ0FzeW5jVmFsaWRhdG9yPSExKX1zZXRFcnJvcnModCxlPXt9KXt0aGlzLmVycm9ycz10LHRoaXMuX3VwZGF0ZUNvbnRyb2xzRXJyb3JzKCExIT09ZS5lbWl0RXZlbnQpfWdldCh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0LG4sbyl7aWYobnVsbD09bilyZXR1cm4gbnVsbDtpZihBcnJheS5pc0FycmF5KG4pfHwobj1uLnNwbGl0KG8pKSxBcnJheS5pc0FycmF5KG4pJiYwPT09bi5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IGk9dDtyZXR1cm4gbi5mb3JFYWNoKCh0PT57aT1pIGluc3RhbmNlb2YgdFU/aS5jb250cm9scy5oYXNPd25Qcm9wZXJ0eSh0KT9pLmNvbnRyb2xzW3RdOm51bGw6aSBpbnN0YW5jZW9mIGVVJiZpLmF0KHQpfHxudWxsfSkpLGl9KSh0aGlzLHQsIi4iKX1nZXRFcnJvcih0LGUpe2NvbnN0IG49ZT90aGlzLmdldChlKTp0aGlzO3JldHVybiBuJiZuLmVycm9ycz9uLmVycm9yc1t0XTpudWxsfWhhc0Vycm9yKHQsZSl7cmV0dXJuISF0aGlzLmdldEVycm9yKHQsZSl9Z2V0IHJvb3QoKXtsZXQgdD10aGlzO2Zvcig7dC5fcGFyZW50Oyl0PXQuX3BhcmVudDtyZXR1cm4gdH1fdXBkYXRlQ29udHJvbHNFcnJvcnModCl7dGhpcy5zdGF0dXM9dGhpcy5fY2FsY3VsYXRlU3RhdHVzKCksdCYmdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQodGhpcy5zdGF0dXMpLHRoaXMuX3BhcmVudCYmdGhpcy5fcGFyZW50Ll91cGRhdGVDb250cm9sc0Vycm9ycyh0KX1faW5pdE9ic2VydmFibGVzKCl7dGhpcy52YWx1ZUNoYW5nZXM9bmV3IExoLHRoaXMuc3RhdHVzQ2hhbmdlcz1uZXcgTGh9X2NhbGN1bGF0ZVN0YXR1cygpe3JldHVybiB0aGlzLl9hbGxDb250cm9sc0Rpc2FibGVkKCk/WWo6dGhpcy5lcnJvcnM/R2o6dGhpcy5faGFzT3duUGVuZGluZ0FzeW5jVmFsaWRhdG9yfHx0aGlzLl9hbnlDb250cm9sc0hhdmVTdGF0dXMoV2opP1dqOnRoaXMuX2FueUNvbnRyb2xzSGF2ZVN0YXR1cyhHaik/R2o6VWp9X2FueUNvbnRyb2xzSGF2ZVN0YXR1cyh0KXtyZXR1cm4gdGhpcy5fYW55Q29udHJvbHMoKGU9PmUuc3RhdHVzPT09dCkpfV9hbnlDb250cm9sc0RpcnR5KCl7cmV0dXJuIHRoaXMuX2FueUNvbnRyb2xzKCh0PT50LmRpcnR5KSl9X2FueUNvbnRyb2xzVG91Y2hlZCgpe3JldHVybiB0aGlzLl9hbnlDb250cm9scygodD0+dC50b3VjaGVkKSl9X3VwZGF0ZVByaXN0aW5lKHQ9e30pe3RoaXMucHJpc3RpbmU9IXRoaXMuX2FueUNvbnRyb2xzRGlydHkoKSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVByaXN0aW5lKHQpfV91cGRhdGVUb3VjaGVkKHQ9e30pe3RoaXMudG91Y2hlZD10aGlzLl9hbnlDb250cm9sc1RvdWNoZWQoKSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQodCl9X2lzQm94ZWRWYWx1ZSh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10JiYyPT09T2JqZWN0LmtleXModCkubGVuZ3RoJiYidmFsdWUiaW4gdCYmImRpc2FibGVkImluIHR9X3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKHQpe3RoaXMuX29uQ29sbGVjdGlvbkNoYW5nZT10fV9zZXRVcGRhdGVTdHJhdGVneSh0KXtKaih0KSYmbnVsbCE9dC51cGRhdGVPbiYmKHRoaXMuX3VwZGF0ZU9uPXQudXBkYXRlT24pfV9wYXJlbnRNYXJrZWREaXJ0eSh0KXtyZXR1cm4hdCYmISghdGhpcy5fcGFyZW50fHwhdGhpcy5fcGFyZW50LmRpcnR5KSYmIXRoaXMuX3BhcmVudC5fYW55Q29udHJvbHNEaXJ0eSgpfX1jbGFzcyAkaiBleHRlbmRzIFFqe2NvbnN0cnVjdG9yKHQ9bnVsbCxlLG4pe3N1cGVyKHFqKGUpLFhqKG4sZSkpLHRoaXMuX29uQ2hhbmdlPVtdLHRoaXMuX2FwcGx5Rm9ybVN0YXRlKHQpLHRoaXMuX3NldFVwZGF0ZVN0cmF0ZWd5KGUpLHRoaXMuX2luaXRPYnNlcnZhYmxlcygpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OiEhdGhpcy5hc3luY1ZhbGlkYXRvcn0pfXNldFZhbHVlKHQsZT17fSl7dGhpcy52YWx1ZT10aGlzLl9wZW5kaW5nVmFsdWU9dCx0aGlzLl9vbkNoYW5nZS5sZW5ndGgmJiExIT09ZS5lbWl0TW9kZWxUb1ZpZXdDaGFuZ2UmJnRoaXMuX29uQ2hhbmdlLmZvckVhY2goKHQ9PnQodGhpcy52YWx1ZSwhMSE9PWUuZW1pdFZpZXdUb01vZGVsQ2hhbmdlKSkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShlKX1wYXRjaFZhbHVlKHQsZT17fSl7dGhpcy5zZXRWYWx1ZSh0LGUpfXJlc2V0KHQ9bnVsbCxlPXt9KXt0aGlzLl9hcHBseUZvcm1TdGF0ZSh0KSx0aGlzLm1hcmtBc1ByaXN0aW5lKGUpLHRoaXMubWFya0FzVW50b3VjaGVkKGUpLHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSxlKSx0aGlzLl9wZW5kaW5nQ2hhbmdlPSExfV91cGRhdGVWYWx1ZSgpe31fYW55Q29udHJvbHModCl7cmV0dXJuITF9X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZH1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlLnB1c2godCl9X3VucmVnaXN0ZXJPbkNoYW5nZSh0KXtWaih0aGlzLl9vbkNoYW5nZSx0KX1yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UodCl7dGhpcy5fb25EaXNhYmxlZENoYW5nZS5wdXNoKHQpfV91bnJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZSh0KXtWaih0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLHQpfV9mb3JFYWNoQ2hpbGQodCl7fV9zeW5jUGVuZGluZ0NvbnRyb2xzKCl7cmV0dXJuISgic3VibWl0IiE9PXRoaXMudXBkYXRlT258fCh0aGlzLl9wZW5kaW5nRGlydHkmJnRoaXMubWFya0FzRGlydHkoKSx0aGlzLl9wZW5kaW5nVG91Y2hlZCYmdGhpcy5tYXJrQXNUb3VjaGVkKCksIXRoaXMuX3BlbmRpbmdDaGFuZ2UpfHwodGhpcy5zZXRWYWx1ZSh0aGlzLl9wZW5kaW5nVmFsdWUse29ubHlTZWxmOiEwLGVtaXRNb2RlbFRvVmlld0NoYW5nZTohMX0pLDApKX1fYXBwbHlGb3JtU3RhdGUodCl7dGhpcy5faXNCb3hlZFZhbHVlKHQpPyh0aGlzLnZhbHVlPXRoaXMuX3BlbmRpbmdWYWx1ZT10LnZhbHVlLHQuZGlzYWJsZWQ/dGhpcy5kaXNhYmxlKHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ITF9KTp0aGlzLmVuYWJsZSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OiExfSkpOnRoaXMudmFsdWU9dGhpcy5fcGVuZGluZ1ZhbHVlPXR9fWNsYXNzIHRVIGV4dGVuZHMgUWp7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHFqKGUpLFhqKG4sZSkpLHRoaXMuY29udHJvbHM9dCx0aGlzLl9pbml0T2JzZXJ2YWJsZXMoKSx0aGlzLl9zZXRVcGRhdGVTdHJhdGVneShlKSx0aGlzLl9zZXRVcENvbnRyb2xzKCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ISF0aGlzLmFzeW5jVmFsaWRhdG9yfSl9cmVnaXN0ZXJDb250cm9sKHQsZSl7cmV0dXJuIHRoaXMuY29udHJvbHNbdF0/dGhpcy5jb250cm9sc1t0XToodGhpcy5jb250cm9sc1t0XT1lLGUuc2V0UGFyZW50KHRoaXMpLGUuX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSksZSl9YWRkQ29udHJvbCh0LGUsbj17fSl7dGhpcy5yZWdpc3RlckNvbnRyb2wodCxlKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDpuLmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfXJlbW92ZUNvbnRyb2wodCxlPXt9KXt0aGlzLmNvbnRyb2xzW3RdJiZ0aGlzLmNvbnRyb2xzW3RdLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSgoKCk9Pnt9KSksZGVsZXRlIHRoaXMuY29udHJvbHNbdF0sdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ZS5lbWl0RXZlbnR9KSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UoKX1zZXRDb250cm9sKHQsZSxuPXt9KXt0aGlzLmNvbnRyb2xzW3RdJiZ0aGlzLmNvbnRyb2xzW3RdLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSgoKCk9Pnt9KSksZGVsZXRlIHRoaXMuY29udHJvbHNbdF0sZSYmdGhpcy5yZWdpc3RlckNvbnRyb2wodCxlKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDpuLmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfWNvbnRhaW5zKHQpe3JldHVybiB0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5KHQpJiZ0aGlzLmNvbnRyb2xzW3RdLmVuYWJsZWR9c2V0VmFsdWUodCxlPXt9KXt0aGlzLl9jaGVja0FsbFZhbHVlc1ByZXNlbnQodCksT2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+e3RoaXMuX3Rocm93SWZDb250cm9sTWlzc2luZyhuKSx0aGlzLmNvbnRyb2xzW25dLnNldFZhbHVlKHRbbl0se29ubHlTZWxmOiEwLGVtaXRFdmVudDplLmVtaXRFdmVudH0pfSkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShlKX1wYXRjaFZhbHVlKHQsZT17fSl7bnVsbCE9dCYmKE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49Pnt0aGlzLmNvbnRyb2xzW25dJiZ0aGlzLmNvbnRyb2xzW25dLnBhdGNoVmFsdWUodFtuXSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9KSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGUpKX1yZXNldCh0PXt9LGU9e30pe3RoaXMuX2ZvckVhY2hDaGlsZCgoKG4sbyk9PntuLnJlc2V0KHRbb10se29ubHlTZWxmOiEwLGVtaXRFdmVudDplLmVtaXRFdmVudH0pfSkpLHRoaXMuX3VwZGF0ZVByaXN0aW5lKGUpLHRoaXMuX3VwZGF0ZVRvdWNoZWQoZSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGUpfWdldFJhd1ZhbHVlKCl7cmV0dXJuIHRoaXMuX3JlZHVjZUNoaWxkcmVuKHt9LCgodCxlLG4pPT4odFtuXT1lIGluc3RhbmNlb2YgJGo/ZS52YWx1ZTplLmdldFJhd1ZhbHVlKCksdCkpKX1fc3luY1BlbmRpbmdDb250cm9scygpe2xldCB0PXRoaXMuX3JlZHVjZUNoaWxkcmVuKCExLCgodCxlKT0+ISFlLl9zeW5jUGVuZGluZ0NvbnRyb2xzKCl8fHQpKTtyZXR1cm4gdCYmdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMH0pLHR9X3Rocm93SWZDb250cm9sTWlzc2luZyh0KXtpZighT2JqZWN0LmtleXModGhpcy5jb250cm9scykubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiXG4gICAgICAgIFRoZXJlIGFyZSBubyBmb3JtIGNvbnRyb2xzIHJlZ2lzdGVyZWQgd2l0aCB0aGlzIGdyb3VwIHlldC4gSWYgeW91J3JlIHVzaW5nIG5nTW9kZWwsXG4gICAgICAgIHlvdSBtYXkgd2FudCB0byBjaGVjayBuZXh0IHRpY2sgKGUuZy4gdXNlIHNldFRpbWVvdXQpLlxuICAgICAgIik7aWYoIXRoaXMuY29udHJvbHNbdF0pdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBmb3JtIGNvbnRyb2wgd2l0aCBuYW1lOiAke3R9LmApfV9mb3JFYWNoQ2hpbGQodCl7T2JqZWN0LmtleXModGhpcy5jb250cm9scykuZm9yRWFjaCgoZT0+e2NvbnN0IG49dGhpcy5jb250cm9sc1tlXTtuJiZ0KG4sZSl9KSl9X3NldFVwQ29udHJvbHMoKXt0aGlzLl9mb3JFYWNoQ2hpbGQoKHQ9Pnt0LnNldFBhcmVudCh0aGlzKSx0Ll9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpfSkpfV91cGRhdGVWYWx1ZSgpe3RoaXMudmFsdWU9dGhpcy5fcmVkdWNlVmFsdWUoKX1fYW55Q29udHJvbHModCl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmtleXModGhpcy5jb250cm9scykpe2NvbnN0IG49dGhpcy5jb250cm9sc1tlXTtpZih0aGlzLmNvbnRhaW5zKGUpJiZ0KG4pKXJldHVybiEwfXJldHVybiExfV9yZWR1Y2VWYWx1ZSgpe3JldHVybiB0aGlzLl9yZWR1Y2VDaGlsZHJlbih7fSwoKHQsZSxuKT0+KChlLmVuYWJsZWR8fHRoaXMuZGlzYWJsZWQpJiYodFtuXT1lLnZhbHVlKSx0KSkpfV9yZWR1Y2VDaGlsZHJlbih0LGUpe2xldCBuPXQ7cmV0dXJuIHRoaXMuX2ZvckVhY2hDaGlsZCgoKHQsbyk9PntuPWUobix0LG8pfSkpLG59X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKSlpZih0aGlzLmNvbnRyb2xzW3RdLmVuYWJsZWQpcmV0dXJuITE7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLmxlbmd0aD4wfHx0aGlzLmRpc2FibGVkfV9jaGVja0FsbFZhbHVlc1ByZXNlbnQodCl7dGhpcy5fZm9yRWFjaENoaWxkKCgoZSxuKT0+e2lmKHZvaWQgMD09PXRbbl0pdGhyb3cgbmV3IEVycm9yKGBNdXN0IHN1cHBseSBhIHZhbHVlIGZvciBmb3JtIGNvbnRyb2wgd2l0aCBuYW1lOiAnJHtufScuYCl9KSl9fWNsYXNzIGVVIGV4dGVuZHMgUWp7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHFqKGUpLFhqKG4sZSkpLHRoaXMuY29udHJvbHM9dCx0aGlzLl9pbml0T2JzZXJ2YWJsZXMoKSx0aGlzLl9zZXRVcGRhdGVTdHJhdGVneShlKSx0aGlzLl9zZXRVcENvbnRyb2xzKCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ISF0aGlzLmFzeW5jVmFsaWRhdG9yfSl9YXQodCl7cmV0dXJuIHRoaXMuY29udHJvbHNbdF19cHVzaCh0LGU9e30pe3RoaXMuY29udHJvbHMucHVzaCh0KSx0aGlzLl9yZWdpc3RlckNvbnRyb2wodCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ZS5lbWl0RXZlbnR9KSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UoKX1pbnNlcnQodCxlLG49e30pe3RoaXMuY29udHJvbHMuc3BsaWNlKHQsMCxlKSx0aGlzLl9yZWdpc3RlckNvbnRyb2woZSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6bi5lbWl0RXZlbnR9KX1yZW1vdmVBdCh0LGU9e30pe3RoaXMuY29udHJvbHNbdF0mJnRoaXMuY29udHJvbHNbdF0uX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgoKT0+e30pKSx0aGlzLmNvbnRyb2xzLnNwbGljZSh0LDEpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9c2V0Q29udHJvbCh0LGUsbj17fSl7dGhpcy5jb250cm9sc1t0XSYmdGhpcy5jb250cm9sc1t0XS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UoKCgpPT57fSkpLHRoaXMuY29udHJvbHMuc3BsaWNlKHQsMSksZSYmKHRoaXMuY29udHJvbHMuc3BsaWNlKHQsMCxlKSx0aGlzLl9yZWdpc3RlckNvbnRyb2woZSkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50Om4uZW1pdEV2ZW50fSksdGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlKCl9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmNvbnRyb2xzLmxlbmd0aH1zZXRWYWx1ZSh0LGU9e30pe3RoaXMuX2NoZWNrQWxsVmFsdWVzUHJlc2VudCh0KSx0LmZvckVhY2goKCh0LG4pPT57dGhpcy5fdGhyb3dJZkNvbnRyb2xNaXNzaW5nKG4pLHRoaXMuYXQobikuc2V0VmFsdWUodCx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9KSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGUpfXBhdGNoVmFsdWUodCxlPXt9KXtudWxsIT10JiYodC5mb3JFYWNoKCgodCxuKT0+e3RoaXMuYXQobikmJnRoaXMuYXQobikucGF0Y2hWYWx1ZSh0LHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ZS5lbWl0RXZlbnR9KX0pKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZSkpfXJlc2V0KHQ9W10sZT17fSl7dGhpcy5fZm9yRWFjaENoaWxkKCgobixvKT0+e24ucmVzZXQodFtvXSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9KSksdGhpcy5fdXBkYXRlUHJpc3RpbmUoZSksdGhpcy5fdXBkYXRlVG91Y2hlZChlKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZSl9Z2V0UmF3VmFsdWUoKXtyZXR1cm4gdGhpcy5jb250cm9scy5tYXAoKHQ9PnQgaW5zdGFuY2VvZiAkaj90LnZhbHVlOnQuZ2V0UmF3VmFsdWUoKSkpfWNsZWFyKHQ9e30pe3RoaXMuY29udHJvbHMubGVuZ3RoPDF8fCh0aGlzLl9mb3JFYWNoQ2hpbGQoKHQ9PnQuX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgoKT0+e30pKSkpLHRoaXMuY29udHJvbHMuc3BsaWNlKDApLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OnQuZW1pdEV2ZW50fSkpfV9zeW5jUGVuZGluZ0NvbnRyb2xzKCl7bGV0IHQ9dGhpcy5jb250cm9scy5yZWR1Y2UoKCh0LGUpPT4hIWUuX3N5bmNQZW5kaW5nQ29udHJvbHMoKXx8dCksITEpO3JldHVybiB0JiZ0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwfSksdH1fdGhyb3dJZkNvbnRyb2xNaXNzaW5nKHQpe2lmKCF0aGlzLmNvbnRyb2xzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlxuICAgICAgICBUaGVyZSBhcmUgbm8gZm9ybSBjb250cm9scyByZWdpc3RlcmVkIHdpdGggdGhpcyBhcnJheSB5ZXQuIElmIHlvdSdyZSB1c2luZyBuZ01vZGVsLFxuICAgICAgICB5b3UgbWF5IHdhbnQgdG8gY2hlY2sgbmV4dCB0aWNrIChlLmcuIHVzZSBzZXRUaW1lb3V0KS5cbiAgICAgICIpO2lmKCF0aGlzLmF0KHQpKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgZm9ybSBjb250cm9sIGF0IGluZGV4ICR7dH1gKX1fZm9yRWFjaENoaWxkKHQpe3RoaXMuY29udHJvbHMuZm9yRWFjaCgoKGUsbik9Pnt0KGUsbil9KSl9X3VwZGF0ZVZhbHVlKCl7dGhpcy52YWx1ZT10aGlzLmNvbnRyb2xzLmZpbHRlcigodD0+dC5lbmFibGVkfHx0aGlzLmRpc2FibGVkKSkubWFwKCh0PT50LnZhbHVlKSl9X2FueUNvbnRyb2xzKHQpe3JldHVybiB0aGlzLmNvbnRyb2xzLnNvbWUoKGU9PmUuZW5hYmxlZCYmdChlKSkpfV9zZXRVcENvbnRyb2xzKCl7dGhpcy5fZm9yRWFjaENoaWxkKCh0PT50aGlzLl9yZWdpc3RlckNvbnRyb2wodCkpKX1fY2hlY2tBbGxWYWx1ZXNQcmVzZW50KHQpe3RoaXMuX2ZvckVhY2hDaGlsZCgoKGUsbik9PntpZih2b2lkIDA9PT10W25dKXRocm93IG5ldyBFcnJvcihgTXVzdCBzdXBwbHkgYSB2YWx1ZSBmb3IgZm9ybSBjb250cm9sIGF0IGluZGV4OiAke259LmApfSkpfV9hbGxDb250cm9sc0Rpc2FibGVkKCl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5jb250cm9scylpZih0LmVuYWJsZWQpcmV0dXJuITE7cmV0dXJuIHRoaXMuY29udHJvbHMubGVuZ3RoPjB8fHRoaXMuZGlzYWJsZWR9X3JlZ2lzdGVyQ29udHJvbCh0KXt0LnNldFBhcmVudCh0aGlzKSx0Ll9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgblU9e3Byb3ZpZGU6Q2osdXNlRXhpc3Rpbmc6cWUoKCgpPT5pVSkpfSxvVT1Qcm9taXNlLnJlc29sdmUobnVsbCk7Y2xhc3MgaVUgZXh0ZW5kcyBDantjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5zdWJtaXR0ZWQ9ITEsdGhpcy5fZGlyZWN0aXZlcz1bXSx0aGlzLm5nU3VibWl0PW5ldyBMaCx0aGlzLmZvcm09bmV3IHRVKHt9LGNqKHQpLHBqKGUpKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9zZXRVcGRhdGVTdHJhdGVneSgpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXN9Z2V0IGNvbnRyb2woKXtyZXR1cm4gdGhpcy5mb3JtfWdldCBwYXRoKCl7cmV0dXJuW119Z2V0IGNvbnRyb2xzKCl7cmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc31hZGRDb250cm9sKHQpe29VLnRoZW4oKCgpPT57Y29uc3QgZT10aGlzLl9maW5kQ29udGFpbmVyKHQucGF0aCk7dC5jb250cm9sPWUucmVnaXN0ZXJDb250cm9sKHQubmFtZSx0LmNvbnRyb2wpLEVqKHQuY29udHJvbCx0KSx0LmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSksdGhpcy5fZGlyZWN0aXZlcy5wdXNoKHQpfSkpfWdldENvbnRyb2wodCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQodC5wYXRoKX1yZW1vdmVDb250cm9sKHQpe29VLnRoZW4oKCgpPT57Y29uc3QgZT10aGlzLl9maW5kQ29udGFpbmVyKHQucGF0aCk7ZSYmZS5yZW1vdmVDb250cm9sKHQubmFtZSksVmoodGhpcy5fZGlyZWN0aXZlcyx0KX0pKX1hZGRGb3JtR3JvdXAodCl7b1UudGhlbigoKCk9Pntjb25zdCBlPXRoaXMuX2ZpbmRDb250YWluZXIodC5wYXRoKSxuPW5ldyB0VSh7fSk7SWoobix0KSxlLnJlZ2lzdGVyQ29udHJvbCh0Lm5hbWUsbiksbi51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KX0pKX1yZW1vdmVGb3JtR3JvdXAodCl7b1UudGhlbigoKCk9Pntjb25zdCBlPXRoaXMuX2ZpbmRDb250YWluZXIodC5wYXRoKTtlJiZlLnJlbW92ZUNvbnRyb2wodC5uYW1lKX0pKX1nZXRGb3JtR3JvdXAodCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQodC5wYXRoKX11cGRhdGVNb2RlbCh0LGUpe29VLnRoZW4oKCgpPT57dGhpcy5mb3JtLmdldCh0LnBhdGgpLnNldFZhbHVlKGUpfSkpfXNldFZhbHVlKHQpe3RoaXMuY29udHJvbC5zZXRWYWx1ZSh0KX1vblN1Ym1pdCh0KXtyZXR1cm4gdGhpcy5zdWJtaXR0ZWQ9ITAsTGoodGhpcy5mb3JtLHRoaXMuX2RpcmVjdGl2ZXMpLHRoaXMubmdTdWJtaXQuZW1pdCh0KSwhMX1vblJlc2V0KCl7dGhpcy5yZXNldEZvcm0oKX1yZXNldEZvcm0odCl7dGhpcy5mb3JtLnJlc2V0KHQpLHRoaXMuc3VibWl0dGVkPSExfV9zZXRVcGRhdGVTdHJhdGVneSgpe3RoaXMub3B0aW9ucyYmbnVsbCE9dGhpcy5vcHRpb25zLnVwZGF0ZU9uJiYodGhpcy5mb3JtLl91cGRhdGVPbj10aGlzLm9wdGlvbnMudXBkYXRlT24pfV9maW5kQ29udGFpbmVyKHQpe3JldHVybiB0LnBvcCgpLHQubGVuZ3RoP3RoaXMuZm9ybS5nZXQodCk6dGhpcy5mb3JtfX1pVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aVUpKFNtKEdWLDEwKSxTbShXViwxMCkpfSxpVS7JtWRpcj1sbyh7dHlwZTppVSxzZWxlY3RvcnM6W1siZm9ybSIsMywibmdOb0Zvcm0iLCIiLDMsImZvcm1Hcm91cCIsIiJdLFsibmctZm9ybSJdLFsiIiwibmdGb3JtIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgic3VibWl0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblN1Ym1pdChlKX0pKSgicmVzZXQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZXNldCgpfSkpfSxpbnB1dHM6e29wdGlvbnM6WyJuZ0Zvcm1PcHRpb25zIiwib3B0aW9ucyJdfSxvdXRwdXRzOntuZ1N1Ym1pdDoibmdTdWJtaXQifSxleHBvcnRBczpbIm5nRm9ybSJdLGZlYXR1cmVzOltwZyhbblVdKSx4cF19KSxpVS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbR1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbV1ZdfV19XSxpVS5wcm9wRGVjb3JhdG9ycz17b3B0aW9uczpbe3R5cGU6eHksYXJnczpbIm5nRm9ybU9wdGlvbnMiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGlVLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImZvcm06bm90KFtuZ05vRm9ybV0pOm5vdChbZm9ybUdyb3VwXSksbmctZm9ybSxbbmdGb3JtXSIscHJvdmlkZXJzOltuVV0saG9zdDp7IihzdWJtaXQpIjoib25TdWJtaXQoJGV2ZW50KSIsIihyZXNldCkiOiJvblJlc2V0KCkifSxvdXRwdXRzOlsibmdTdWJtaXQiXSxleHBvcnRBczoibmdGb3JtIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbR1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbV1ZdfV19XX0pLHtvcHRpb25zOlt7dHlwZTp4eSxhcmdzOlsibmdGb3JtT3B0aW9ucyJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGFVIGV4dGVuZHMgQ2p7bmdPbkluaXQoKXt0aGlzLl9jaGVja1BhcmVudFR5cGUoKSx0aGlzLmZvcm1EaXJlY3RpdmUuYWRkRm9ybUdyb3VwKHRoaXMpfW5nT25EZXN0cm95KCl7dGhpcy5mb3JtRGlyZWN0aXZlJiZ0aGlzLmZvcm1EaXJlY3RpdmUucmVtb3ZlRm9ybUdyb3VwKHRoaXMpfWdldCBjb250cm9sKCl7cmV0dXJuIHRoaXMuZm9ybURpcmVjdGl2ZS5nZXRGb3JtR3JvdXAodGhpcyl9Z2V0IHBhdGgoKXtyZXR1cm4gRGoobnVsbD09dGhpcy5uYW1lP3RoaXMubmFtZTp0aGlzLm5hbWUudG9TdHJpbmcoKSx0aGlzLl9wYXJlbnQpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXMuX3BhcmVudD90aGlzLl9wYXJlbnQuZm9ybURpcmVjdGl2ZTpudWxsfV9jaGVja1BhcmVudFR5cGUoKXt9fWFVLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShhVSkpKShufHxhVSl9fSkoKSxhVS7JtWRpcj1sbyh7dHlwZTphVSxmZWF0dXJlczpbeHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChhVSxbe3R5cGU6Q3l9XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgclV7c3RhdGljIG1vZGVsUGFyZW50RXhjZXB0aW9uKCl7dGhyb3cgbmV3IEVycm9yKGBcbiAgICAgIG5nTW9kZWwgY2Fubm90IGJlIHVzZWQgdG8gcmVnaXN0ZXIgZm9ybSBjb250cm9scyB3aXRoIGEgcGFyZW50IGZvcm1Hcm91cCBkaXJlY3RpdmUuICBUcnkgdXNpbmdcbiAgICAgIGZvcm1Hcm91cCdzIHBhcnRuZXIgZGlyZWN0aXZlICJmb3JtQ29udHJvbE5hbWUiIGluc3RlYWQuICBFeGFtcGxlOlxuXG4gICAgICAke1BqfVxuXG4gICAgICBPciwgaWYgeW91J2QgbGlrZSB0byBhdm9pZCByZWdpc3RlcmluZyB0aGlzIGZvcm0gY29udHJvbCwgaW5kaWNhdGUgdGhhdCBpdCdzIHN0YW5kYWxvbmUgaW4gbmdNb2RlbE9wdGlvbnM6XG5cbiAgICAgIEV4YW1wbGU6XG5cbiAgICAgIFxuICAgIDxkaXYgW2Zvcm1Hcm91cF09Im15R3JvdXAiPlxuICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9ImZpcnN0TmFtZSI+XG4gICAgICAgPGlucHV0IFsobmdNb2RlbCldPSJzaG93TW9yZUNvbnRyb2xzIiBbbmdNb2RlbE9wdGlvbnNdPSJ7c3RhbmRhbG9uZTogdHJ1ZX0iPlxuICAgIDwvZGl2PlxuICBgKX1zdGF0aWMgZm9ybUdyb3VwTmFtZUV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcihgXG4gICAgICBuZ01vZGVsIGNhbm5vdCBiZSB1c2VkIHRvIHJlZ2lzdGVyIGZvcm0gY29udHJvbHMgd2l0aCBhIHBhcmVudCBmb3JtR3JvdXBOYW1lIG9yIGZvcm1BcnJheU5hbWUgZGlyZWN0aXZlLlxuXG4gICAgICBPcHRpb24gMTogVXNlIGZvcm1Db250cm9sTmFtZSBpbnN0ZWFkIG9mIG5nTW9kZWwgKHJlYWN0aXZlIHN0cmF0ZWd5KTpcblxuICAgICAgJHt3an1cblxuICAgICAgT3B0aW9uIDI6ICBVcGRhdGUgbmdNb2RlbCdzIHBhcmVudCBiZSBuZ01vZGVsR3JvdXAgKHRlbXBsYXRlLWRyaXZlbiBzdHJhdGVneSk6XG5cbiAgICAgICR7a2p9YCl9c3RhdGljIG1pc3NpbmdOYW1lRXhjZXB0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdJZiBuZ01vZGVsIGlzIHVzZWQgd2l0aGluIGEgZm9ybSB0YWcsIGVpdGhlciB0aGUgbmFtZSBhdHRyaWJ1dGUgbXVzdCBiZSBzZXQgb3IgdGhlIGZvcm1cbiAgICAgIGNvbnRyb2wgbXVzdCBiZSBkZWZpbmVkIGFzIFwnc3RhbmRhbG9uZVwnIGluIG5nTW9kZWxPcHRpb25zLlxuXG4gICAgICBFeGFtcGxlIDE6IDxpbnB1dCBbKG5nTW9kZWwpXT0icGVyc29uLmZpcnN0TmFtZSIgbmFtZT0iZmlyc3QiPlxuICAgICAgRXhhbXBsZSAyOiA8aW5wdXQgWyhuZ01vZGVsKV09InBlcnNvbi5maXJzdE5hbWUiIFtuZ01vZGVsT3B0aW9uc109IntzdGFuZGFsb25lOiB0cnVlfSI+Jyl9c3RhdGljIG1vZGVsR3JvdXBQYXJlbnRFeGNlcHRpb24oKXt0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgbmdNb2RlbEdyb3VwIGNhbm5vdCBiZSB1c2VkIHdpdGggYSBwYXJlbnQgZm9ybUdyb3VwIGRpcmVjdGl2ZS5cblxuICAgICAgT3B0aW9uIDE6IFVzZSBmb3JtR3JvdXBOYW1lIGluc3RlYWQgb2YgbmdNb2RlbEdyb3VwIChyZWFjdGl2ZSBzdHJhdGVneSk6XG5cbiAgICAgICR7d2p9XG5cbiAgICAgIE9wdGlvbiAyOiAgVXNlIGEgcmVndWxhciBmb3JtIHRhZyBpbnN0ZWFkIG9mIHRoZSBmb3JtR3JvdXAgZGlyZWN0aXZlICh0ZW1wbGF0ZS1kcml2ZW4gc3RyYXRlZ3kpOlxuXG4gICAgICAke2tqfWApfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3Qgc1U9e3Byb3ZpZGU6Q2osdXNlRXhpc3Rpbmc6cWUoKCgpPT5sVSkpfTtjbGFzcyBsVSBleHRlbmRzIGFVe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcigpLHRoaXMuX3BhcmVudD10LHRoaXMuX3NldFZhbGlkYXRvcnMoZSksdGhpcy5fc2V0QXN5bmNWYWxpZGF0b3JzKG4pfV9jaGVja1BhcmVudFR5cGUoKXt0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBsVXx8dGhpcy5fcGFyZW50IGluc3RhbmNlb2YgaVV8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxyVS5tb2RlbEdyb3VwUGFyZW50RXhjZXB0aW9uKCl9fWxVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsVSkoU20oQ2osNSksU20oR1YsMTApLFNtKFdWLDEwKSl9LGxVLsm1ZGlyPWxvKHt0eXBlOmxVLHNlbGVjdG9yczpbWyIiLCJuZ01vZGVsR3JvdXAiLCIiXV0saW5wdXRzOntuYW1lOlsibmdNb2RlbEdyb3VwIiwibmFtZSJdfSxleHBvcnRBczpbIm5nTW9kZWxHcm91cCJdLGZlYXR1cmVzOltwZyhbc1VdKSx4cF19KSxsVS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkNqLGRlY29yYXRvcnM6W3t0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV0sbFUucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOnh5LGFyZ3M6WyJuZ01vZGVsR3JvdXAiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGxVLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltuZ01vZGVsR3JvdXBdIixwcm92aWRlcnM6W3NVXSxleHBvcnRBczoibmdNb2RlbEdyb3VwIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkNqLGRlY29yYXRvcnM6W3t0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV19KSx7bmFtZTpbe3R5cGU6eHksYXJnczpbIm5nTW9kZWxHcm91cCJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGNVPXtwcm92aWRlOk1qLHVzZUV4aXN0aW5nOnFlKCgoKT0+cFUpKX0sZFU9UHJvbWlzZS5yZXNvbHZlKG51bGwpO2NsYXNzIHBVIGV4dGVuZHMgTWp7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIoKSx0aGlzLmNvbnRyb2w9bmV3ICRqLHRoaXMuX3JlZ2lzdGVyZWQ9ITEsdGhpcy51cGRhdGU9bmV3IExoLHRoaXMuX3BhcmVudD10LHRoaXMuX3NldFZhbGlkYXRvcnMoZSksdGhpcy5fc2V0QXN5bmNWYWxpZGF0b3JzKG4pLHRoaXMudmFsdWVBY2Nlc3Nvcj1Caih0aGlzLG8pfW5nT25DaGFuZ2VzKHQpe3RoaXMuX2NoZWNrRm9yRXJyb3JzKCksdGhpcy5fcmVnaXN0ZXJlZHx8dGhpcy5fc2V0VXBDb250cm9sKCksImlzRGlzYWJsZWQiaW4gdCYmdGhpcy5fdXBkYXRlRGlzYWJsZWQodCksRmoodCx0aGlzLnZpZXdNb2RlbCkmJih0aGlzLl91cGRhdGVWYWx1ZSh0aGlzLm1vZGVsKSx0aGlzLnZpZXdNb2RlbD10aGlzLm1vZGVsKX1uZ09uRGVzdHJveSgpe3RoaXMuZm9ybURpcmVjdGl2ZSYmdGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUNvbnRyb2wodGhpcyl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5fcGFyZW50P0RqKHRoaXMubmFtZSx0aGlzLl9wYXJlbnQpOlt0aGlzLm5hbWVdfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXMuX3BhcmVudD90aGlzLl9wYXJlbnQuZm9ybURpcmVjdGl2ZTpudWxsfXZpZXdUb01vZGVsVXBkYXRlKHQpe3RoaXMudmlld01vZGVsPXQsdGhpcy51cGRhdGUuZW1pdCh0KX1fc2V0VXBDb250cm9sKCl7dGhpcy5fc2V0VXBkYXRlU3RyYXRlZ3koKSx0aGlzLl9pc1N0YW5kYWxvbmUoKT90aGlzLl9zZXRVcFN0YW5kYWxvbmUoKTp0aGlzLmZvcm1EaXJlY3RpdmUuYWRkQ29udHJvbCh0aGlzKSx0aGlzLl9yZWdpc3RlcmVkPSEwfV9zZXRVcGRhdGVTdHJhdGVneSgpe3RoaXMub3B0aW9ucyYmbnVsbCE9dGhpcy5vcHRpb25zLnVwZGF0ZU9uJiYodGhpcy5jb250cm9sLl91cGRhdGVPbj10aGlzLm9wdGlvbnMudXBkYXRlT24pfV9pc1N0YW5kYWxvbmUoKXtyZXR1cm4hdGhpcy5fcGFyZW50fHwhKCF0aGlzLm9wdGlvbnN8fCF0aGlzLm9wdGlvbnMuc3RhbmRhbG9uZSl9X3NldFVwU3RhbmRhbG9uZSgpe0VqKHRoaXMuY29udHJvbCx0aGlzKSx0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9X2NoZWNrRm9yRXJyb3JzKCl7dGhpcy5faXNTdGFuZGFsb25lKCl8fHRoaXMuX2NoZWNrUGFyZW50VHlwZSgpLHRoaXMuX2NoZWNrTmFtZSgpfV9jaGVja1BhcmVudFR5cGUoKXsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJighKHRoaXMuX3BhcmVudCBpbnN0YW5jZW9mIGxVKSYmdGhpcy5fcGFyZW50IGluc3RhbmNlb2YgYVU/clUuZm9ybUdyb3VwTmFtZUV4Y2VwdGlvbigpOnRoaXMuX3BhcmVudCBpbnN0YW5jZW9mIGxVfHx0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBpVXx8clUubW9kZWxQYXJlbnRFeGNlcHRpb24oKSl9X2NoZWNrTmFtZSgpe3RoaXMub3B0aW9ucyYmdGhpcy5vcHRpb25zLm5hbWUmJih0aGlzLm5hbWU9dGhpcy5vcHRpb25zLm5hbWUpLHRoaXMuX2lzU3RhbmRhbG9uZSgpfHx0aGlzLm5hbWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxyVS5taXNzaW5nTmFtZUV4Y2VwdGlvbigpfV91cGRhdGVWYWx1ZSh0KXtkVS50aGVuKCgoKT0+e3RoaXMuY29udHJvbC5zZXRWYWx1ZSh0LHtlbWl0Vmlld1RvTW9kZWxDaGFuZ2U6ITF9KX0pKX1fdXBkYXRlRGlzYWJsZWQodCl7Y29uc3QgZT10LmlzRGlzYWJsZWQuY3VycmVudFZhbHVlLG49IiI9PT1lfHxlJiYiZmFsc2UiIT09ZTtkVS50aGVuKCgoKT0+e24mJiF0aGlzLmNvbnRyb2wuZGlzYWJsZWQ/dGhpcy5jb250cm9sLmRpc2FibGUoKTohbiYmdGhpcy5jb250cm9sLmRpc2FibGVkJiZ0aGlzLmNvbnRyb2wuZW5hYmxlKCl9KSl9fXBVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxwVSkoU20oQ2osOSksU20oR1YsMTApLFNtKFdWLDEwKSxTbShJViwxMCkpfSxwVS7JtWRpcj1sbyh7dHlwZTpwVSxzZWxlY3RvcnM6W1siIiwibmdNb2RlbCIsIiIsMywiZm9ybUNvbnRyb2xOYW1lIiwiIiwzLCJmb3JtQ29udHJvbCIsIiJdXSxpbnB1dHM6e25hbWU6Im5hbWUiLGlzRGlzYWJsZWQ6WyJkaXNhYmxlZCIsImlzRGlzYWJsZWQiXSxtb2RlbDpbIm5nTW9kZWwiLCJtb2RlbCJdLG9wdGlvbnM6WyJuZ01vZGVsT3B0aW9ucyIsIm9wdGlvbnMiXX0sb3V0cHV0czp7dXBkYXRlOiJuZ01vZGVsQ2hhbmdlIn0sZXhwb3J0QXM6WyJuZ01vZGVsIl0sZmVhdHVyZXM6W3BnKFtjVV0pLHhwLEJvXX0pLHBVLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbR1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbV1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbSVZdfV19XSxwVS5wcm9wRGVjb3JhdG9ycz17bmFtZTpbe3R5cGU6eHl9XSxpc0Rpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsiZGlzYWJsZWQiXX1dLG1vZGVsOlt7dHlwZTp4eSxhcmdzOlsibmdNb2RlbCJdfV0sb3B0aW9uczpbe3R5cGU6eHksYXJnczpbIm5nTW9kZWxPcHRpb25zIl19XSx1cGRhdGU6W3t0eXBlOk95LGFyZ3M6WyJuZ01vZGVsQ2hhbmdlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdNb2RlbF06bm90KFtmb3JtQ29udHJvbE5hbWVdKTpub3QoW2Zvcm1Db250cm9sXSkiLHByb3ZpZGVyczpbY1VdLGV4cG9ydEFzOiJuZ01vZGVsIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkNqLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0lWXX1dfV19KSx7dXBkYXRlOlt7dHlwZTpPeSxhcmdzOlsibmdNb2RlbENoYW5nZSJdfV0sbmFtZTpbe3R5cGU6eHl9XSxpc0Rpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsiZGlzYWJsZWQiXX1dLG1vZGVsOlt7dHlwZTp4eSxhcmdzOlsibmdNb2RlbCJdfV0sb3B0aW9uczpbe3R5cGU6eHksYXJnczpbIm5nTW9kZWxPcHRpb25zIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgbVV7fW1VLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxtVSl9LG1VLsm1ZGlyPWxvKHt0eXBlOm1VLHNlbGVjdG9yczpbWyJmb3JtIiwzLCJuZ05vRm9ybSIsIiIsMywibmdOYXRpdmVWYWxpZGF0ZSIsIiJdXSxob3N0QXR0cnM6WyJub3ZhbGlkYXRlIiwiIl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG1VLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImZvcm06bm90KFtuZ05vRm9ybV0pOm5vdChbbmdOYXRpdmVWYWxpZGF0ZV0pIixob3N0Ontub3ZhbGlkYXRlOiIifX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHVVPXtwcm92aWRlOklWLHVzZUV4aXN0aW5nOnFlKCgoKT0+ZlUpKSxtdWx0aTohMH07Y2xhc3MgZlUgZXh0ZW5kcyB6Vnt3cml0ZVZhbHVlKHQpe3RoaXMuc2V0UHJvcGVydHkoInZhbHVlIixudWxsPT10PyIiOnQpfXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5vbkNoYW5nZT1lPT57dCgiIj09ZT9udWxsOnBhcnNlRmxvYXQoZSkpfX19ZlUuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKGZVKSkpKG58fGZVKX19KSgpLGZVLsm1ZGlyPWxvKHt0eXBlOmZVLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiaW5wdXQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvdWNoZWQoKX0pKX0sZmVhdHVyZXM6W3BnKFt1VV0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZlUsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiaW5wdXRbdHlwZT1udW1iZXJdW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1udW1iZXJdW2Zvcm1Db250cm9sXSxpbnB1dFt0eXBlPW51bWJlcl1bbmdNb2RlbF0iLGhvc3Q6eyIoaW5wdXQpIjoib25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSkiLCIoYmx1cikiOiJvblRvdWNoZWQoKSJ9LHByb3ZpZGVyczpbdVVdfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgZ1U9e3Byb3ZpZGU6SVYsdXNlRXhpc3Rpbmc6cWUoKCgpPT55VSkpLG11bHRpOiEwfTtjbGFzcyBoVXt9aFUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGhVKX0saFUuybVtb2Q9YW8oe3R5cGU6aFV9KSxoVS7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChoVSxbe3R5cGU6QXl9XSxudWxsLG51bGwpO2NsYXNzIGJVe2NvbnN0cnVjdG9yKCl7dGhpcy5fYWNjZXNzb3JzPVtdfWFkZCh0LGUpe3RoaXMuX2FjY2Vzc29ycy5wdXNoKFt0LGVdKX1yZW1vdmUodCl7Zm9yKGxldCBlPXRoaXMuX2FjY2Vzc29ycy5sZW5ndGgtMTtlPj0wOy0tZSlpZih0aGlzLl9hY2Nlc3NvcnNbZV1bMV09PT10KXJldHVybiB2b2lkIHRoaXMuX2FjY2Vzc29ycy5zcGxpY2UoZSwxKX1zZWxlY3QodCl7dGhpcy5fYWNjZXNzb3JzLmZvckVhY2goKGU9Pnt0aGlzLl9pc1NhbWVHcm91cChlLHQpJiZlWzFdIT09dCYmZVsxXS5maXJlVW5jaGVjayh0LnZhbHVlKX0pKX1faXNTYW1lR3JvdXAodCxlKXtyZXR1cm4hIXRbMF0uY29udHJvbCYmdFswXS5fcGFyZW50PT09ZS5fY29udHJvbC5fcGFyZW50JiZ0WzFdLm5hbWU9PT1lLm5hbWV9fWJVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxiVSl9LGJVLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBiVX0sdG9rZW46YlUscHJvdmlkZWRJbjpoVX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYlUsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOmhVfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NsYXNzIHlVIGV4dGVuZHMgelZ7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCxlKSx0aGlzLl9yZWdpc3RyeT1uLHRoaXMuX2luamVjdG9yPW8sdGhpcy5vbkNoYW5nZT0oKT0+e319bmdPbkluaXQoKXt0aGlzLl9jb250cm9sPXRoaXMuX2luamVjdG9yLmdldChNaiksdGhpcy5fY2hlY2tOYW1lKCksdGhpcy5fcmVnaXN0cnkuYWRkKHRoaXMuX2NvbnRyb2wsdGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLl9yZWdpc3RyeS5yZW1vdmUodGhpcyl9d3JpdGVWYWx1ZSh0KXt0aGlzLl9zdGF0ZT10PT09dGhpcy52YWx1ZSx0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIix0aGlzLl9zdGF0ZSl9cmVnaXN0ZXJPbkNoYW5nZSh0KXt0aGlzLl9mbj10LHRoaXMub25DaGFuZ2U9KCk9Pnt0KHRoaXMudmFsdWUpLHRoaXMuX3JlZ2lzdHJ5LnNlbGVjdCh0aGlzKX19ZmlyZVVuY2hlY2sodCl7dGhpcy53cml0ZVZhbHVlKHQpfV9jaGVja05hbWUoKXt0aGlzLm5hbWUmJnRoaXMuZm9ybUNvbnRyb2xOYW1lJiZ0aGlzLm5hbWUhPT10aGlzLmZvcm1Db250cm9sTmFtZSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiYoZnVuY3Rpb24gdCgpe3Rocm93IG5ldyBFcnJvcignXG4gICAgICBJZiB5b3UgZGVmaW5lIGJvdGggYSBuYW1lIGFuZCBhIGZvcm1Db250cm9sTmFtZSBhdHRyaWJ1dGUgb24geW91ciByYWRpbyBidXR0b24sIHRoZWlyIHZhbHVlc1xuICAgICAgbXVzdCBtYXRjaC4gRXg6IDxpbnB1dCB0eXBlPSJyYWRpbyIgZm9ybUNvbnRyb2xOYW1lPSJmb29kIiBuYW1lPSJmb29kIj5cbiAgICAnKX0pKCksIXRoaXMubmFtZSYmdGhpcy5mb3JtQ29udHJvbE5hbWUmJih0aGlzLm5hbWU9dGhpcy5mb3JtQ29udHJvbE5hbWUpfX15VS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eVUpKFNtKENnKSxTbShoZyksU20oYlUpLFNtKHJwKSl9LHlVLsm1ZGlyPWxvKHt0eXBlOnlVLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJyYWRpbyIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFkaW8iLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFkaW8iLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiY2hhbmdlIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uQ2hhbmdlKCl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub3VjaGVkKCl9KSl9LGlucHV0czp7bmFtZToibmFtZSIsZm9ybUNvbnRyb2xOYW1lOiJmb3JtQ29udHJvbE5hbWUiLHZhbHVlOiJ2YWx1ZSJ9LGZlYXR1cmVzOltwZyhbZ1VdKSx4cF19KSx5VS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkNnfSx7dHlwZTpoZ30se3R5cGU6YlV9LHt0eXBlOnJwfV0seVUucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOnh5fV0sZm9ybUNvbnRyb2xOYW1lOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHlVLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImlucHV0W3R5cGU9cmFkaW9dW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1yYWRpb11bZm9ybUNvbnRyb2xdLGlucHV0W3R5cGU9cmFkaW9dW25nTW9kZWxdIixob3N0OnsiKGNoYW5nZSkiOiJvbkNoYW5nZSgpIiwiKGJsdXIpIjoib25Ub3VjaGVkKCkifSxwcm92aWRlcnM6W2dVXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkNnfSx7dHlwZTpoZ30se3R5cGU6YlV9LHt0eXBlOnJwfV19KSx7bmFtZTpbe3R5cGU6eHl9XSxmb3JtQ29udHJvbE5hbWU6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IF9VPXtwcm92aWRlOklWLHVzZUV4aXN0aW5nOnFlKCgoKT0+Q1UpKSxtdWx0aTohMH07Y2xhc3MgQ1UgZXh0ZW5kcyB6Vnt3cml0ZVZhbHVlKHQpe3RoaXMuc2V0UHJvcGVydHkoInZhbHVlIixwYXJzZUZsb2F0KHQpKX1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMub25DaGFuZ2U9ZT0+e3QoIiI9PWU/bnVsbDpwYXJzZUZsb2F0KGUpKX19fUNVLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShDVSkpKShufHxDVSl9fSkoKSxDVS7JtWRpcj1sbyh7dHlwZTpDVSxzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwicmFuZ2UiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsInJhbmdlIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsInJhbmdlIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25DaGFuZ2UoZS50YXJnZXQudmFsdWUpfSkpKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25DaGFuZ2UoZS50YXJnZXQudmFsdWUpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVG91Y2hlZCgpfSkpfSxmZWF0dXJlczpbcGcoW19VXSkseHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChDVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJpbnB1dFt0eXBlPXJhbmdlXVtmb3JtQ29udHJvbE5hbWVdLGlucHV0W3R5cGU9cmFuZ2VdW2Zvcm1Db250cm9sXSxpbnB1dFt0eXBlPXJhbmdlXVtuZ01vZGVsXSIsaG9zdDp7IihjaGFuZ2UpIjoib25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSkiLCIoaW5wdXQpIjoib25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSkiLCIoYmx1cikiOiJvblRvdWNoZWQoKSJ9LHByb3ZpZGVyczpbX1VdfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgTVU9bmV3IEdhKCJOZ01vZGVsV2l0aEZvcm1Db250cm9sV2FybmluZyIpLHZVPXtwcm92aWRlOk1qLHVzZUV4aXN0aW5nOnFlKCgoKT0+eFUpKX07Y2xhc3MgeFUgZXh0ZW5kcyBNantjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcigpLHRoaXMuX25nTW9kZWxXYXJuaW5nQ29uZmlnPW8sdGhpcy51cGRhdGU9bmV3IExoLHRoaXMuX25nTW9kZWxXYXJuaW5nU2VudD0hMSx0aGlzLl9zZXRWYWxpZGF0b3JzKHQpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyhlKSx0aGlzLnZhbHVlQWNjZXNzb3I9QmoodGhpcyxuKX1zZXQgaXNEaXNhYmxlZCh0KXsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlNqLmRpc2FibGVkQXR0cldhcm5pbmcoKX1uZ09uQ2hhbmdlcyh0KXtpZih0aGlzLl9pc0NvbnRyb2xDaGFuZ2VkKHQpKXtjb25zdCBlPXQuZm9ybS5wcmV2aW91c1ZhbHVlO2UmJlJqKGUsdGhpcywhMSksRWoodGhpcy5mb3JtLHRoaXMpLHRoaXMuY29udHJvbC5kaXNhYmxlZCYmdGhpcy52YWx1ZUFjY2Vzc29yLnNldERpc2FibGVkU3RhdGUmJnRoaXMudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlKCEwKSx0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9RmoodCx0aGlzLnZpZXdNb2RlbCkmJigoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmpqKCJmb3JtQ29udHJvbCIseFUsdGhpcyx0aGlzLl9uZ01vZGVsV2FybmluZ0NvbmZpZyksdGhpcy5mb3JtLnNldFZhbHVlKHRoaXMubW9kZWwpLHRoaXMudmlld01vZGVsPXRoaXMubW9kZWwpfW5nT25EZXN0cm95KCl7dGhpcy5mb3JtJiZSaih0aGlzLmZvcm0sdGhpcywhMSl9Z2V0IHBhdGgoKXtyZXR1cm5bXX1nZXQgY29udHJvbCgpe3JldHVybiB0aGlzLmZvcm19dmlld1RvTW9kZWxVcGRhdGUodCl7dGhpcy52aWV3TW9kZWw9dCx0aGlzLnVwZGF0ZS5lbWl0KHQpfV9pc0NvbnRyb2xDaGFuZ2VkKHQpe3JldHVybiB0Lmhhc093blByb3BlcnR5KCJmb3JtIil9fXhVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4VSkoU20oR1YsMTApLFNtKFdWLDEwKSxTbShJViwxMCksU20oTVUsOCkpfSx4VS7JtWRpcj1sbyh7dHlwZTp4VSxzZWxlY3RvcnM6W1siIiwiZm9ybUNvbnRyb2wiLCIiXV0saW5wdXRzOntpc0Rpc2FibGVkOlsiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIl0sZm9ybTpbImZvcm1Db250cm9sIiwiZm9ybSJdLG1vZGVsOlsibmdNb2RlbCIsIm1vZGVsIl19LG91dHB1dHM6e3VwZGF0ZToibmdNb2RlbENoYW5nZSJ9LGV4cG9ydEFzOlsibmdGb3JtIl0sZmVhdHVyZXM6W3BnKFt2VV0pLHhwLEJvXX0pLHhVLl9uZ01vZGVsV2FybmluZ1NlbnRPbmNlPSExLHhVLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltHVl19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltXVl19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltJVl19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltNVV19XX1dLHhVLnByb3BEZWNvcmF0b3JzPXtmb3JtOlt7dHlwZTp4eSxhcmdzOlsiZm9ybUNvbnRyb2wiXX1dLGlzRGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJkaXNhYmxlZCJdfV0sbW9kZWw6W3t0eXBlOnh5LGFyZ3M6WyJuZ01vZGVsIl19XSx1cGRhdGU6W3t0eXBlOk95LGFyZ3M6WyJuZ01vZGVsQ2hhbmdlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh4VSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbZm9ybUNvbnRyb2xdIixwcm92aWRlcnM6W3ZVXSxleHBvcnRBczoibmdGb3JtIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbR1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbV1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbSVZdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbTVVdfV19XX0pLHt1cGRhdGU6W3t0eXBlOk95LGFyZ3M6WyJuZ01vZGVsQ2hhbmdlIl19XSxpc0Rpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsiZGlzYWJsZWQiXX1dLGZvcm06W3t0eXBlOnh5LGFyZ3M6WyJmb3JtQ29udHJvbCJdfV0sbW9kZWw6W3t0eXBlOnh5LGFyZ3M6WyJuZ01vZGVsIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgT1U9e3Byb3ZpZGU6Q2osdXNlRXhpc3Rpbmc6cWUoKCgpPT5QVSkpfTtjbGFzcyBQVSBleHRlbmRzIENqe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLnZhbGlkYXRvcnM9dCx0aGlzLmFzeW5jVmFsaWRhdG9ycz1lLHRoaXMuc3VibWl0dGVkPSExLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZT0oKT0+dGhpcy5fdXBkYXRlRG9tVmFsdWUoKSx0aGlzLmRpcmVjdGl2ZXM9W10sdGhpcy5mb3JtPW51bGwsdGhpcy5uZ1N1Ym1pdD1uZXcgTGgsdGhpcy5fc2V0VmFsaWRhdG9ycyh0KSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMoZSl9bmdPbkNoYW5nZXModCl7dGhpcy5fY2hlY2tGb3JtUHJlc2VudCgpLHQuaGFzT3duUHJvcGVydHkoImZvcm0iKSYmKHRoaXMuX3VwZGF0ZVZhbGlkYXRvcnMoKSx0aGlzLl91cGRhdGVEb21WYWx1ZSgpLHRoaXMuX3VwZGF0ZVJlZ2lzdHJhdGlvbnMoKSx0aGlzLl9vbGRGb3JtPXRoaXMuZm9ybSl9bmdPbkRlc3Ryb3koKXt0aGlzLmZvcm0mJihOaih0aGlzLmZvcm0sdGhpcyksdGhpcy5mb3JtLl9vbkNvbGxlY3Rpb25DaGFuZ2U9PT10aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UmJnRoaXMuZm9ybS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UoKCgpPT57fSkpKX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzfWdldCBjb250cm9sKCl7cmV0dXJuIHRoaXMuZm9ybX1nZXQgcGF0aCgpe3JldHVybltdfWFkZENvbnRyb2wodCl7Y29uc3QgZT10aGlzLmZvcm0uZ2V0KHQucGF0aCk7cmV0dXJuIEVqKGUsdCksZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KSx0aGlzLmRpcmVjdGl2ZXMucHVzaCh0KSxlfWdldENvbnRyb2wodCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQodC5wYXRoKX1yZW1vdmVDb250cm9sKHQpe1JqKHQuY29udHJvbHx8bnVsbCx0LCExKSxWaih0aGlzLmRpcmVjdGl2ZXMsdCl9YWRkRm9ybUdyb3VwKHQpe3RoaXMuX3NldFVwRm9ybUNvbnRhaW5lcih0KX1yZW1vdmVGb3JtR3JvdXAodCl7dGhpcy5fY2xlYW5VcEZvcm1Db250YWluZXIodCl9Z2V0Rm9ybUdyb3VwKHQpe3JldHVybiB0aGlzLmZvcm0uZ2V0KHQucGF0aCl9YWRkRm9ybUFycmF5KHQpe3RoaXMuX3NldFVwRm9ybUNvbnRhaW5lcih0KX1yZW1vdmVGb3JtQXJyYXkodCl7dGhpcy5fY2xlYW5VcEZvcm1Db250YWluZXIodCl9Z2V0Rm9ybUFycmF5KHQpe3JldHVybiB0aGlzLmZvcm0uZ2V0KHQucGF0aCl9dXBkYXRlTW9kZWwodCxlKXt0aGlzLmZvcm0uZ2V0KHQucGF0aCkuc2V0VmFsdWUoZSl9b25TdWJtaXQodCl7cmV0dXJuIHRoaXMuc3VibWl0dGVkPSEwLExqKHRoaXMuZm9ybSx0aGlzLmRpcmVjdGl2ZXMpLHRoaXMubmdTdWJtaXQuZW1pdCh0KSwhMX1vblJlc2V0KCl7dGhpcy5yZXNldEZvcm0oKX1yZXNldEZvcm0odCl7dGhpcy5mb3JtLnJlc2V0KHQpLHRoaXMuc3VibWl0dGVkPSExfV91cGRhdGVEb21WYWx1ZSgpe3RoaXMuZGlyZWN0aXZlcy5mb3JFYWNoKCh0PT57Y29uc3QgZT10LmNvbnRyb2wsbj10aGlzLmZvcm0uZ2V0KHQucGF0aCk7ZSE9PW4mJihSaihlfHxudWxsLHQpLG4gaW5zdGFuY2VvZiAkaiYmKEVqKG4sdCksdC5jb250cm9sPW4pKX0pKSx0aGlzLmZvcm0uX3VwZGF0ZVRyZWVWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9X3NldFVwRm9ybUNvbnRhaW5lcih0KXtjb25zdCBlPXRoaXMuZm9ybS5nZXQodC5wYXRoKTtJaihlLHQpLGUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9X2NsZWFuVXBGb3JtQ29udGFpbmVyKHQpe2lmKHRoaXMuZm9ybSl7Y29uc3QgZT10aGlzLmZvcm0uZ2V0KHQucGF0aCk7ZSYmKGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gTmoodCxlKX0pKGUsdCkmJmUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9fV91cGRhdGVSZWdpc3RyYXRpb25zKCl7dGhpcy5mb3JtLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpLHRoaXMuX29sZEZvcm0mJnRoaXMuX29sZEZvcm0uX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgoKT0+e30pKX1fdXBkYXRlVmFsaWRhdG9ycygpe1RqKHRoaXMuZm9ybSx0aGlzKSx0aGlzLl9vbGRGb3JtJiZOaih0aGlzLl9vbGRGb3JtLHRoaXMpfV9jaGVja0Zvcm1QcmVzZW50KCl7dGhpcy5mb3JtfHwidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8U2oubWlzc2luZ0Zvcm1FeGNlcHRpb24oKX19UFUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFBVKShTbShHViwxMCksU20oV1YsMTApKX0sUFUuybVkaXI9bG8oe3R5cGU6UFUsc2VsZWN0b3JzOltbIiIsImZvcm1Hcm91cCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oInN1Ym1pdCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TdWJtaXQoZSl9KSkoInJlc2V0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVzZXQoKX0pKX0saW5wdXRzOntmb3JtOlsiZm9ybUdyb3VwIiwiZm9ybSJdfSxvdXRwdXRzOntuZ1N1Ym1pdDoibmdTdWJtaXQifSxleHBvcnRBczpbIm5nRm9ybSJdLGZlYXR1cmVzOltwZyhbT1VdKSx4cCxCb119KSxQVS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbR1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbV1ZdfV19XSxQVS5wcm9wRGVjb3JhdG9ycz17Zm9ybTpbe3R5cGU6eHksYXJnczpbImZvcm1Hcm91cCJdfV0sbmdTdWJtaXQ6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUFUsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Zvcm1Hcm91cF0iLHByb3ZpZGVyczpbT1VdLGhvc3Q6eyIoc3VibWl0KSI6Im9uU3VibWl0KCRldmVudCkiLCIocmVzZXQpIjoib25SZXNldCgpIn0sZXhwb3J0QXM6Im5nRm9ybSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV19KSx7Zm9ybTpbe3R5cGU6eHksYXJnczpbImZvcm1Hcm91cCJdfV0sbmdTdWJtaXQ6W3t0eXBlOk95fV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHdVPXtwcm92aWRlOkNqLHVzZUV4aXN0aW5nOnFlKCgoKT0+a1UpKX07Y2xhc3Mga1UgZXh0ZW5kcyBhVXtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9zZXRWYWxpZGF0b3JzKGUpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyhuKX1fY2hlY2tQYXJlbnRUeXBlKCl7RVUodGhpcy5fcGFyZW50KSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZTai5ncm91cFBhcmVudEV4Y2VwdGlvbigpfX1rVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8a1UpKFNtKENqLDEzKSxTbShHViwxMCksU20oV1YsMTApKX0sa1UuybVkaXI9bG8oe3R5cGU6a1Usc2VsZWN0b3JzOltbIiIsImZvcm1Hcm91cE5hbWUiLCIiXV0saW5wdXRzOntuYW1lOlsiZm9ybUdyb3VwTmFtZSIsIm5hbWUiXX0sZmVhdHVyZXM6W3BnKFt3VV0pLHhwXX0pLGtVLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV0sa1UucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOnh5LGFyZ3M6WyJmb3JtR3JvdXBOYW1lIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbZm9ybUdyb3VwTmFtZV0iLHByb3ZpZGVyczpbd1VdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV19KSx7bmFtZTpbe3R5cGU6eHksYXJnczpbImZvcm1Hcm91cE5hbWUiXX1dfSk7Y29uc3QgU1U9e3Byb3ZpZGU6Q2osdXNlRXhpc3Rpbmc6cWUoKCgpPT5EVSkpfTtjbGFzcyBEVSBleHRlbmRzIENqe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcigpLHRoaXMuX3BhcmVudD10LHRoaXMuX3NldFZhbGlkYXRvcnMoZSksdGhpcy5fc2V0QXN5bmNWYWxpZGF0b3JzKG4pfW5nT25Jbml0KCl7dGhpcy5fY2hlY2tQYXJlbnRUeXBlKCksdGhpcy5mb3JtRGlyZWN0aXZlLmFkZEZvcm1BcnJheSh0aGlzKX1uZ09uRGVzdHJveSgpe3RoaXMuZm9ybURpcmVjdGl2ZSYmdGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUZvcm1BcnJheSh0aGlzKX1nZXQgY29udHJvbCgpe3JldHVybiB0aGlzLmZvcm1EaXJlY3RpdmUuZ2V0Rm9ybUFycmF5KHRoaXMpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXMuX3BhcmVudD90aGlzLl9wYXJlbnQuZm9ybURpcmVjdGl2ZTpudWxsfWdldCBwYXRoKCl7cmV0dXJuIERqKG51bGw9PXRoaXMubmFtZT90aGlzLm5hbWU6dGhpcy5uYW1lLnRvU3RyaW5nKCksdGhpcy5fcGFyZW50KX1fY2hlY2tQYXJlbnRUeXBlKCl7RVUodGhpcy5fcGFyZW50KSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZTai5hcnJheVBhcmVudEV4Y2VwdGlvbigpfX1mdW5jdGlvbiBFVSh0KXtyZXR1cm4hKHQgaW5zdGFuY2VvZiBrVXx8dCBpbnN0YW5jZW9mIFBVfHx0IGluc3RhbmNlb2YgRFUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9EVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RFUpKFNtKENqLDEzKSxTbShHViwxMCksU20oV1YsMTApKX0sRFUuybVkaXI9bG8oe3R5cGU6RFUsc2VsZWN0b3JzOltbIiIsImZvcm1BcnJheU5hbWUiLCIiXV0saW5wdXRzOntuYW1lOlsiZm9ybUFycmF5TmFtZSIsIm5hbWUiXX0sZmVhdHVyZXM6W3BnKFtTVV0pLHhwXX0pLERVLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV0sRFUucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOnh5LGFyZ3M6WyJmb3JtQXJyYXlOYW1lIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChEVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbZm9ybUFycmF5TmFtZV0iLHByb3ZpZGVyczpbU1VdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV19KSx7bmFtZTpbe3R5cGU6eHksYXJnczpbImZvcm1BcnJheU5hbWUiXX1dfSk7Y29uc3QgUlU9e3Byb3ZpZGU6TWosdXNlRXhpc3Rpbmc6cWUoKCgpPT5BVSkpfTtjbGFzcyBBVSBleHRlbmRzIE1qe2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7c3VwZXIoKSx0aGlzLl9uZ01vZGVsV2FybmluZ0NvbmZpZz1pLHRoaXMuX2FkZGVkPSExLHRoaXMudXBkYXRlPW5ldyBMaCx0aGlzLl9uZ01vZGVsV2FybmluZ1NlbnQ9ITEsdGhpcy5fcGFyZW50PXQsdGhpcy5fc2V0VmFsaWRhdG9ycyhlKSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMobiksdGhpcy52YWx1ZUFjY2Vzc29yPUJqKHRoaXMsbyl9c2V0IGlzRGlzYWJsZWQodCl7KCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZTai5kaXNhYmxlZEF0dHJXYXJuaW5nKCl9bmdPbkNoYW5nZXModCl7dGhpcy5fYWRkZWR8fHRoaXMuX3NldFVwQ29udHJvbCgpLEZqKHQsdGhpcy52aWV3TW9kZWwpJiYoKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZqaigiZm9ybUNvbnRyb2xOYW1lIixBVSx0aGlzLHRoaXMuX25nTW9kZWxXYXJuaW5nQ29uZmlnKSx0aGlzLnZpZXdNb2RlbD10aGlzLm1vZGVsLHRoaXMuZm9ybURpcmVjdGl2ZS51cGRhdGVNb2RlbCh0aGlzLHRoaXMubW9kZWwpKX1uZ09uRGVzdHJveSgpe3RoaXMuZm9ybURpcmVjdGl2ZSYmdGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUNvbnRyb2wodGhpcyl9dmlld1RvTW9kZWxVcGRhdGUodCl7dGhpcy52aWV3TW9kZWw9dCx0aGlzLnVwZGF0ZS5lbWl0KHQpfWdldCBwYXRoKCl7cmV0dXJuIERqKG51bGw9PXRoaXMubmFtZT90aGlzLm5hbWU6dGhpcy5uYW1lLnRvU3RyaW5nKCksdGhpcy5fcGFyZW50KX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzLl9wYXJlbnQ/dGhpcy5fcGFyZW50LmZvcm1EaXJlY3RpdmU6bnVsbH1fY2hlY2tQYXJlbnRUeXBlKCl7KCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiYoISh0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBrVSkmJnRoaXMuX3BhcmVudCBpbnN0YW5jZW9mIGFVP1NqLm5nTW9kZWxHcm91cEV4Y2VwdGlvbigpOnRoaXMuX3BhcmVudCBpbnN0YW5jZW9mIGtVfHx0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBQVXx8dGhpcy5fcGFyZW50IGluc3RhbmNlb2YgRFV8fFNqLmNvbnRyb2xQYXJlbnRFeGNlcHRpb24oKSl9X3NldFVwQ29udHJvbCgpe3RoaXMuX2NoZWNrUGFyZW50VHlwZSgpLHRoaXMuY29udHJvbD10aGlzLmZvcm1EaXJlY3RpdmUuYWRkQ29udHJvbCh0aGlzKSx0aGlzLmNvbnRyb2wuZGlzYWJsZWQmJnRoaXMudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlJiZ0aGlzLnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZSghMCksdGhpcy5fYWRkZWQ9ITB9fUFVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBVSkoU20oQ2osMTMpLFNtKEdWLDEwKSxTbShXViwxMCksU20oSVYsMTApLFNtKE1VLDgpKX0sQVUuybVkaXI9bG8oe3R5cGU6QVUsc2VsZWN0b3JzOltbIiIsImZvcm1Db250cm9sTmFtZSIsIiJdXSxpbnB1dHM6e2lzRGlzYWJsZWQ6WyJkaXNhYmxlZCIsImlzRGlzYWJsZWQiXSxuYW1lOlsiZm9ybUNvbnRyb2xOYW1lIiwibmFtZSJdLG1vZGVsOlsibmdNb2RlbCIsIm1vZGVsIl19LG91dHB1dHM6e3VwZGF0ZToibmdNb2RlbENoYW5nZSJ9LGZlYXR1cmVzOltwZyhbUlVdKSx4cCxCb119KSxBVS5fbmdNb2RlbFdhcm5pbmdTZW50T25jZT0hMSxBVS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkNqLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn0se3R5cGU6RXJ9XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltHVl19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltXVl19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltJVl19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltNVV19XX1dLEFVLnByb3BEZWNvcmF0b3JzPXtuYW1lOlt7dHlwZTp4eSxhcmdzOlsiZm9ybUNvbnRyb2xOYW1lIl19XSxpc0Rpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsiZGlzYWJsZWQiXX1dLG1vZGVsOlt7dHlwZTp4eSxhcmdzOlsibmdNb2RlbCJdfV0sdXBkYXRlOlt7dHlwZTpPeSxhcmdzOlsibmdNb2RlbENoYW5nZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQVUsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Zvcm1Db250cm9sTmFtZV0iLHByb3ZpZGVyczpbUlVdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0lWXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W01VXX1dfV19KSx7dXBkYXRlOlt7dHlwZTpPeSxhcmdzOlsibmdNb2RlbENoYW5nZSJdfV0saXNEaXNhYmxlZDpbe3R5cGU6eHksYXJnczpbImRpc2FibGVkIl19XSxuYW1lOlt7dHlwZTp4eSxhcmdzOlsiZm9ybUNvbnRyb2xOYW1lIl19XSxtb2RlbDpbe3R5cGU6eHksYXJnczpbIm5nTW9kZWwiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBUVT17cHJvdmlkZTpJVix1c2VFeGlzdGluZzpxZSgoKCk9PnpVKSksbXVsdGk6ITB9O2Z1bmN0aW9uIE5VKHQsZSl7cmV0dXJuIG51bGw9PXQ/YCR7ZX1gOihlJiYib2JqZWN0Ij09dHlwZW9mIGUmJihlPSJPYmplY3QiKSxgJHt0fTogJHtlfWAuc2xpY2UoMCw1MCkpfWNsYXNzIHpVIGV4dGVuZHMgelZ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX29wdGlvbk1hcD1uZXcgTWFwLHRoaXMuX2lkQ291bnRlcj0wLHRoaXMuX2NvbXBhcmVXaXRoPU9iamVjdC5pc31zZXQgY29tcGFyZVdpdGgodCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBuZXcgRXJyb3IoYGNvbXBhcmVXaXRoIG11c3QgYmUgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkodCl9YCk7dGhpcy5fY29tcGFyZVdpdGg9dH13cml0ZVZhbHVlKHQpe3RoaXMudmFsdWU9dDtjb25zdCBlPXRoaXMuX2dldE9wdGlvbklkKHQpO251bGw9PWUmJnRoaXMuc2V0UHJvcGVydHkoInNlbGVjdGVkSW5kZXgiLC0xKTtjb25zdCBuPU5VKGUsdCk7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLG4pfXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5vbkNoYW5nZT1lPT57dGhpcy52YWx1ZT10aGlzLl9nZXRPcHRpb25WYWx1ZShlKSx0KHRoaXMudmFsdWUpfX1fcmVnaXN0ZXJPcHRpb24oKXtyZXR1cm4odGhpcy5faWRDb3VudGVyKyspLnRvU3RyaW5nKCl9X2dldE9wdGlvbklkKHQpe2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20odGhpcy5fb3B0aW9uTWFwLmtleXMoKSkpaWYodGhpcy5fY29tcGFyZVdpdGgodGhpcy5fb3B0aW9uTWFwLmdldChlKSx0KSlyZXR1cm4gZTtyZXR1cm4gbnVsbH1fZ2V0T3B0aW9uVmFsdWUodCl7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5zcGxpdCgiOiIpWzBdfSkodCk7cmV0dXJuIHRoaXMuX29wdGlvbk1hcC5oYXMoZSk/dGhpcy5fb3B0aW9uTWFwLmdldChlKTp0fX16VS7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoelUpKSkobnx8elUpfX0pKCkselUuybVkaXI9bG8oe3R5cGU6elUsc2VsZWN0b3JzOltbInNlbGVjdCIsImZvcm1Db250cm9sTmFtZSIsIiIsMywibXVsdGlwbGUiLCIiXSxbInNlbGVjdCIsImZvcm1Db250cm9sIiwiIiwzLCJtdWx0aXBsZSIsIiJdLFsic2VsZWN0IiwibmdNb2RlbCIsIiIsMywibXVsdGlwbGUiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvdWNoZWQoKX0pKX0saW5wdXRzOntjb21wYXJlV2l0aDoiY29tcGFyZVdpdGgifSxmZWF0dXJlczpbcGcoW1RVXSkseHBdfSkselUucHJvcERlY29yYXRvcnM9e2NvbXBhcmVXaXRoOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHpVLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6InNlbGVjdDpub3QoW211bHRpcGxlXSlbZm9ybUNvbnRyb2xOYW1lXSxzZWxlY3Q6bm90KFttdWx0aXBsZV0pW2Zvcm1Db250cm9sXSxzZWxlY3Q6bm90KFttdWx0aXBsZV0pW25nTW9kZWxdIixob3N0OnsiKGNoYW5nZSkiOiJvbkNoYW5nZSgkZXZlbnQudGFyZ2V0LnZhbHVlKSIsIihibHVyKSI6Im9uVG91Y2hlZCgpIn0scHJvdmlkZXJzOltUVV19XX1dLG51bGwse2NvbXBhcmVXaXRoOlt7dHlwZTp4eX1dfSk7Y2xhc3MgSVV7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9yZW5kZXJlcj1lLHRoaXMuX3NlbGVjdD1uLHRoaXMuX3NlbGVjdCYmKHRoaXMuaWQ9dGhpcy5fc2VsZWN0Ll9yZWdpc3Rlck9wdGlvbigpKX1zZXQgbmdWYWx1ZSh0KXtudWxsIT10aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5zZXQodGhpcy5pZCx0KSx0aGlzLl9zZXRFbGVtZW50VmFsdWUoTlUodGhpcy5pZCx0KSksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9c2V0IHZhbHVlKHQpe3RoaXMuX3NldEVsZW1lbnRWYWx1ZSh0KSx0aGlzLl9zZWxlY3QmJnRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSl9X3NldEVsZW1lbnRWYWx1ZSh0KXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsInZhbHVlIix0KX1uZ09uRGVzdHJveSgpe3RoaXMuX3NlbGVjdCYmKHRoaXMuX3NlbGVjdC5fb3B0aW9uTWFwLmRlbGV0ZSh0aGlzLmlkKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpKX19SVUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fElVKShTbShoZyksU20oQ2cpLFNtKHpVLDkpKX0sSVUuybVkaXI9bG8oe3R5cGU6SVUsc2VsZWN0b3JzOltbIm9wdGlvbiJdXSxpbnB1dHM6e25nVmFsdWU6Im5nVmFsdWUiLHZhbHVlOiJ2YWx1ZSJ9fSksSVUuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6Q2d9LHt0eXBlOnpVLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV0sSVUucHJvcERlY29yYXRvcnM9e25nVmFsdWU6W3t0eXBlOnh5LGFyZ3M6WyJuZ1ZhbHVlIl19XSx2YWx1ZTpbe3R5cGU6eHksYXJnczpbInZhbHVlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChJVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJvcHRpb24ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOkNnfSx7dHlwZTp6VSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6UnJ9XX1dfSkse25nVmFsdWU6W3t0eXBlOnh5LGFyZ3M6WyJuZ1ZhbHVlIl19XSx2YWx1ZTpbe3R5cGU6eHksYXJnczpbInZhbHVlIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgSFU9e3Byb3ZpZGU6SVYsdXNlRXhpc3Rpbmc6cWUoKCgpPT5MVSkpLG11bHRpOiEwfTtmdW5jdGlvbiBGVSh0LGUpe3JldHVybiBudWxsPT10P2Ake2V9YDooInN0cmluZyI9PXR5cGVvZiBlJiYoZT1gJyR7ZX0nYCksZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYoZT0iT2JqZWN0IiksYCR7dH06ICR7ZX1gLnNsaWNlKDAsNTApKX1jbGFzcyBMVSBleHRlbmRzIHpWe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcHRpb25NYXA9bmV3IE1hcCx0aGlzLl9pZENvdW50ZXI9MCx0aGlzLl9jb21wYXJlV2l0aD1PYmplY3QuaXN9c2V0IGNvbXBhcmVXaXRoKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgbmV3IEVycm9yKGBjb21wYXJlV2l0aCBtdXN0IGJlIGEgZnVuY3Rpb24sIGJ1dCByZWNlaXZlZCAke0pTT04uc3RyaW5naWZ5KHQpfWApO3RoaXMuX2NvbXBhcmVXaXRoPXR9d3JpdGVWYWx1ZSh0KXtsZXQgZTtpZih0aGlzLnZhbHVlPXQsQXJyYXkuaXNBcnJheSh0KSl7Y29uc3Qgbj10Lm1hcCgodD0+dGhpcy5fZ2V0T3B0aW9uSWQodCkpKTtlPSh0LGUpPT57dC5fc2V0U2VsZWN0ZWQobi5pbmRleE9mKGUudG9TdHJpbmcoKSk+LTEpfX1lbHNlIGU9KHQsZSk9Pnt0Ll9zZXRTZWxlY3RlZCghMSl9O3RoaXMuX29wdGlvbk1hcC5mb3JFYWNoKGUpfXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5vbkNoYW5nZT1lPT57Y29uc3Qgbj1bXTtpZih2b2lkIDAhPT1lLnNlbGVjdGVkT3B0aW9ucyl7Y29uc3QgdD1lLnNlbGVjdGVkT3B0aW9ucztmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7Y29uc3Qgbz10Lml0ZW0oZSksaT10aGlzLl9nZXRPcHRpb25WYWx1ZShvLnZhbHVlKTtuLnB1c2goaSl9fWVsc2V7Y29uc3QgdD1lLm9wdGlvbnM7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0IG89dC5pdGVtKGUpO2lmKG8uc2VsZWN0ZWQpe2NvbnN0IHQ9dGhpcy5fZ2V0T3B0aW9uVmFsdWUoby52YWx1ZSk7bi5wdXNoKHQpfX19dGhpcy52YWx1ZT1uLHQobil9fV9yZWdpc3Rlck9wdGlvbih0KXtjb25zdCBlPSh0aGlzLl9pZENvdW50ZXIrKykudG9TdHJpbmcoKTtyZXR1cm4gdGhpcy5fb3B0aW9uTWFwLnNldChlLHQpLGV9X2dldE9wdGlvbklkKHQpe2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20odGhpcy5fb3B0aW9uTWFwLmtleXMoKSkpaWYodGhpcy5fY29tcGFyZVdpdGgodGhpcy5fb3B0aW9uTWFwLmdldChlKS5fdmFsdWUsdCkpcmV0dXJuIGU7cmV0dXJuIG51bGx9X2dldE9wdGlvblZhbHVlKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQuc3BsaXQoIjoiKVswXX0pKHQpO3JldHVybiB0aGlzLl9vcHRpb25NYXAuaGFzKGUpP3RoaXMuX29wdGlvbk1hcC5nZXQoZSkuX3ZhbHVlOnR9fUxVLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShMVSkpKShufHxMVSl9fSkoKSxMVS7JtWRpcj1sbyh7dHlwZTpMVSxzZWxlY3RvcnM6W1sic2VsZWN0IiwibXVsdGlwbGUiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25DaGFuZ2UoZS50YXJnZXQpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVG91Y2hlZCgpfSkpfSxpbnB1dHM6e2NvbXBhcmVXaXRoOiJjb21wYXJlV2l0aCJ9LGZlYXR1cmVzOltwZyhbSFVdKSx4cF19KSxMVS5wcm9wRGVjb3JhdG9ycz17Y29tcGFyZVdpdGg6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTFUsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3Rvcjoic2VsZWN0W211bHRpcGxlXVtmb3JtQ29udHJvbE5hbWVdLHNlbGVjdFttdWx0aXBsZV1bZm9ybUNvbnRyb2xdLHNlbGVjdFttdWx0aXBsZV1bbmdNb2RlbF0iLGhvc3Q6eyIoY2hhbmdlKSI6Im9uQ2hhbmdlKCRldmVudC50YXJnZXQpIiwiKGJsdXIpIjoib25Ub3VjaGVkKCkifSxwcm92aWRlcnM6W0hVXX1dfV0sbnVsbCx7Y29tcGFyZVdpdGg6W3t0eXBlOnh5fV19KTtjbGFzcyBCVXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fZWxlbWVudD10LHRoaXMuX3JlbmRlcmVyPWUsdGhpcy5fc2VsZWN0PW4sdGhpcy5fc2VsZWN0JiYodGhpcy5pZD10aGlzLl9zZWxlY3QuX3JlZ2lzdGVyT3B0aW9uKHRoaXMpKX1zZXQgbmdWYWx1ZSh0KXtudWxsIT10aGlzLl9zZWxlY3QmJih0aGlzLl92YWx1ZT10LHRoaXMuX3NldEVsZW1lbnRWYWx1ZShGVSh0aGlzLmlkLHQpKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpKX1zZXQgdmFsdWUodCl7dGhpcy5fc2VsZWN0Pyh0aGlzLl92YWx1ZT10LHRoaXMuX3NldEVsZW1lbnRWYWx1ZShGVSh0aGlzLmlkLHQpKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpKTp0aGlzLl9zZXRFbGVtZW50VmFsdWUodCl9X3NldEVsZW1lbnRWYWx1ZSh0KXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsInZhbHVlIix0KX1fc2V0U2VsZWN0ZWQodCl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCJzZWxlY3RlZCIsdCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5kZWxldGUodGhpcy5pZCksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gVlUodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3Q6cGFyc2VJbnQodCwxMCl9QlUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJVKShTbShoZyksU20oQ2cpLFNtKExVLDkpKX0sQlUuybVkaXI9bG8oe3R5cGU6QlUsc2VsZWN0b3JzOltbIm9wdGlvbiJdXSxpbnB1dHM6e25nVmFsdWU6Im5nVmFsdWUiLHZhbHVlOiJ2YWx1ZSJ9fSksQlUuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6Q2d9LHt0eXBlOkxVLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV0sQlUucHJvcERlY29yYXRvcnM9e25nVmFsdWU6W3t0eXBlOnh5LGFyZ3M6WyJuZ1ZhbHVlIl19XSx2YWx1ZTpbe3R5cGU6eHksYXJnczpbInZhbHVlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJvcHRpb24ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOkNnfSx7dHlwZTpMVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6UnJ9XX1dfSkse25nVmFsdWU6W3t0eXBlOnh5LGFyZ3M6WyJuZ1ZhbHVlIl19XSx2YWx1ZTpbe3R5cGU6eHksYXJnczpbInZhbHVlIl19XX0pO2NsYXNzIGpVe2NvbnN0cnVjdG9yKCl7dGhpcy5fdmFsaWRhdG9yPW5qfWhhbmRsZUNoYW5nZXModCl7aWYodGhpcy5pbnB1dE5hbWUgaW4gdCl7Y29uc3QgZT10aGlzLm5vcm1hbGl6ZUlucHV0KHRbdGhpcy5pbnB1dE5hbWVdLmN1cnJlbnRWYWx1ZSk7dGhpcy5fdmFsaWRhdG9yPXRoaXMuY3JlYXRlVmFsaWRhdG9yKGUpLHRoaXMuX29uQ2hhbmdlJiZ0aGlzLl9vbkNoYW5nZSgpfX12YWxpZGF0ZSh0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdG9yKHQpfXJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH19alUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGpVKX0salUuybVkaXI9bG8oe3R5cGU6alV9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGpVLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7Y29uc3QgVVU9e3Byb3ZpZGU6R1YsdXNlRXhpc3Rpbmc6cWUoKCgpPT5HVSkpLG11bHRpOiEwfTtjbGFzcyBHVSBleHRlbmRzIGpVe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlucHV0TmFtZT0ibWF4Iix0aGlzLm5vcm1hbGl6ZUlucHV0PXQ9PnBhcnNlRmxvYXQodCksdGhpcy5jcmVhdGVWYWxpZGF0b3I9dD0+WFYodCl9bmdPbkNoYW5nZXModCl7dGhpcy5oYW5kbGVDaGFuZ2VzKHQpfX1HVS7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoR1UpKSkobnx8R1UpfX0pKCksR1UuybVkaXI9bG8oe3R5cGU6R1Usc2VsZWN0b3JzOltbImlucHV0IiwidHlwZSIsIm51bWJlciIsIm1heCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwibWF4IiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIsIm1heCIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pe2lmKDImZSl7bGV0IHQ7anAoIm1heCIsbnVsbCE9PSh0PW4ubWF4KSYmdm9pZCAwIT09dD90Om51bGwpfX0saW5wdXRzOnttYXg6Im1heCJ9LGZlYXR1cmVzOltwZyhbVVVdKSx4cCxCb119KSxHVS5wcm9wRGVjb3JhdG9ycz17bWF4Olt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEdVLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImlucHV0W3R5cGU9bnVtYmVyXVttYXhdW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1udW1iZXJdW21heF1bZm9ybUNvbnRyb2xdLGlucHV0W3R5cGU9bnVtYmVyXVttYXhdW25nTW9kZWxdIixwcm92aWRlcnM6W1VVXSxob3N0OnsiW2F0dHIubWF4XSI6Im1heCA/PyBudWxsIn19XX1dLG51bGwse21heDpbe3R5cGU6eHl9XX0pO2NvbnN0IFdVPXtwcm92aWRlOkdWLHVzZUV4aXN0aW5nOnFlKCgoKT0+WVUpKSxtdWx0aTohMH07Y2xhc3MgWVUgZXh0ZW5kcyBqVXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pbnB1dE5hbWU9Im1pbiIsdGhpcy5ub3JtYWxpemVJbnB1dD10PT5wYXJzZUZsb2F0KHQpLHRoaXMuY3JlYXRlVmFsaWRhdG9yPXQ9PlpWKHQpfW5nT25DaGFuZ2VzKHQpe3RoaXMuaGFuZGxlQ2hhbmdlcyh0KX19WVUuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKFlVKSkpKG58fFlVKX19KSgpLFlVLsm1ZGlyPWxvKHt0eXBlOllVLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJtaW4iLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIsIm1pbiIsIiIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJtaW4iLCIiLCJuZ01vZGVsIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXtpZigyJmUpe2xldCB0O2pwKCJtaW4iLG51bGwhPT0odD1uLm1pbikmJnZvaWQgMCE9PXQ/dDpudWxsKX19LGlucHV0czp7bWluOiJtaW4ifSxmZWF0dXJlczpbcGcoW1dVXSkseHAsQm9dfSksWVUucHJvcERlY29yYXRvcnM9e21pbjpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChZVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJpbnB1dFt0eXBlPW51bWJlcl1bbWluXVtmb3JtQ29udHJvbE5hbWVdLGlucHV0W3R5cGU9bnVtYmVyXVttaW5dW2Zvcm1Db250cm9sXSxpbnB1dFt0eXBlPW51bWJlcl1bbWluXVtuZ01vZGVsXSIscHJvdmlkZXJzOltXVV0saG9zdDp7IlthdHRyLm1pbl0iOiJtaW4gPz8gbnVsbCJ9fV19XSxudWxsLHttaW46W3t0eXBlOnh5fV19KTtjb25zdCBxVT17cHJvdmlkZTpHVix1c2VFeGlzdGluZzpxZSgoKCk9PlhVKSksbXVsdGk6ITB9LFpVPXtwcm92aWRlOkdWLHVzZUV4aXN0aW5nOnFlKCgoKT0+S1UpKSxtdWx0aTohMH07Y2xhc3MgWFV7Y29uc3RydWN0b3IoKXt0aGlzLl9yZXF1aXJlZD0hMX1nZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy5fcmVxdWlyZWR9c2V0IHJlcXVpcmVkKHQpe3RoaXMuX3JlcXVpcmVkPW51bGwhPXQmJiExIT09dCYmImZhbHNlIiE9YCR7dH1gLHRoaXMuX29uQ2hhbmdlJiZ0aGlzLl9vbkNoYW5nZSgpfXZhbGlkYXRlKHQpe3JldHVybiB0aGlzLnJlcXVpcmVkP0tWKHQpOm51bGx9cmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSh0KXt0aGlzLl9vbkNoYW5nZT10fX1YVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WFUpfSxYVS7JtWRpcj1sbyh7dHlwZTpYVSxzZWxlY3RvcnM6W1siIiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsiIiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbCIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyIiLCJyZXF1aXJlZCIsIiIsIm5nTW9kZWwiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZqcCgicmVxdWlyZWQiLG4ucmVxdWlyZWQ/IiI6bnVsbCl9LGlucHV0czp7cmVxdWlyZWQ6InJlcXVpcmVkIn0sZmVhdHVyZXM6W3BnKFtxVV0pXX0pLFhVLnByb3BEZWNvcmF0b3JzPXtyZXF1aXJlZDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiI6bm90KFt0eXBlPWNoZWNrYm94XSlbcmVxdWlyZWRdW2Zvcm1Db250cm9sTmFtZV0sOm5vdChbdHlwZT1jaGVja2JveF0pW3JlcXVpcmVkXVtmb3JtQ29udHJvbF0sOm5vdChbdHlwZT1jaGVja2JveF0pW3JlcXVpcmVkXVtuZ01vZGVsXSIscHJvdmlkZXJzOltxVV0saG9zdDp7IlthdHRyLnJlcXVpcmVkXSI6J3JlcXVpcmVkID8gIiIgOiBudWxsJ319XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse3JlcXVpcmVkOlt7dHlwZTp4eX1dfSk7Y2xhc3MgS1UgZXh0ZW5kcyBYVXt2YWxpZGF0ZSh0KXtyZXR1cm4gdGhpcy5yZXF1aXJlZD9KVih0KTpudWxsfX1LVS7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoS1UpKSkobnx8S1UpfX0pKCksS1UuybVkaXI9bG8oe3R5cGU6S1Usc2VsZWN0b3JzOltbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJyZXF1aXJlZCIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmanAoInJlcXVpcmVkIixuLnJlcXVpcmVkPyIiOm51bGwpfSxmZWF0dXJlczpbcGcoW1pVXSkseHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChLVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJpbnB1dFt0eXBlPWNoZWNrYm94XVtyZXF1aXJlZF1bZm9ybUNvbnRyb2xOYW1lXSxpbnB1dFt0eXBlPWNoZWNrYm94XVtyZXF1aXJlZF1bZm9ybUNvbnRyb2xdLGlucHV0W3R5cGU9Y2hlY2tib3hdW3JlcXVpcmVkXVtuZ01vZGVsXSIscHJvdmlkZXJzOltaVV0saG9zdDp7IlthdHRyLnJlcXVpcmVkXSI6J3JlcXVpcmVkID8gIiIgOiBudWxsJ319XX1dLG51bGwsbnVsbCk7Y29uc3QgSlU9e3Byb3ZpZGU6R1YsdXNlRXhpc3Rpbmc6cWUoKCgpPT5RVSkpLG11bHRpOiEwfTtjbGFzcyBRVXtjb25zdHJ1Y3Rvcigpe3RoaXMuX2VuYWJsZWQ9ITF9c2V0IGVtYWlsKHQpe3RoaXMuX2VuYWJsZWQ9IiI9PT10fHwhMD09PXR8fCJ0cnVlIj09PXQsdGhpcy5fb25DaGFuZ2UmJnRoaXMuX29uQ2hhbmdlKCl9dmFsaWRhdGUodCl7cmV0dXJuIHRoaXMuX2VuYWJsZWQ/UVYodCk6bnVsbH1yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9fVFVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxRVSl9LFFVLsm1ZGlyPWxvKHt0eXBlOlFVLHNlbGVjdG9yczpbWyIiLCJlbWFpbCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwiZW1haWwiLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsiIiwiZW1haWwiLCIiLCJuZ01vZGVsIiwiIl1dLGlucHV0czp7ZW1haWw6ImVtYWlsIn0sZmVhdHVyZXM6W3BnKFtKVV0pXX0pLFFVLnByb3BEZWNvcmF0b3JzPXtlbWFpbDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChRVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbZW1haWxdW2Zvcm1Db250cm9sTmFtZV0sW2VtYWlsXVtmb3JtQ29udHJvbF0sW2VtYWlsXVtuZ01vZGVsXSIscHJvdmlkZXJzOltKVV19XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse2VtYWlsOlt7dHlwZTp4eX1dfSk7Y29uc3QgJFU9e3Byb3ZpZGU6R1YsdXNlRXhpc3Rpbmc6cWUoKCgpPT50RykpLG11bHRpOiEwfTtjbGFzcyB0R3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3ZhbGlkYXRvcj1uan1uZ09uQ2hhbmdlcyh0KXsibWlubGVuZ3RoImluIHQmJih0aGlzLl9jcmVhdGVWYWxpZGF0b3IoKSx0aGlzLl9vbkNoYW5nZSYmdGhpcy5fb25DaGFuZ2UoKSl9dmFsaWRhdGUodCl7cmV0dXJuIHRoaXMuZW5hYmxlZCgpP3RoaXMuX3ZhbGlkYXRvcih0KTpudWxsfXJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH1fY3JlYXRlVmFsaWRhdG9yKCl7dGhpcy5fdmFsaWRhdG9yPXRoaXMuZW5hYmxlZCgpPyRWKFZVKHRoaXMubWlubGVuZ3RoKSk6bmp9ZW5hYmxlZCgpe3JldHVybiBudWxsIT10aGlzLm1pbmxlbmd0aH19dEcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHRHKX0sdEcuybVkaXI9bG8oe3R5cGU6dEcsc2VsZWN0b3JzOltbIiIsIm1pbmxlbmd0aCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwibWlubGVuZ3RoIiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbIiIsIm1pbmxlbmd0aCIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmanAoIm1pbmxlbmd0aCIsbi5lbmFibGVkKCk/bi5taW5sZW5ndGg6bnVsbCl9LGlucHV0czp7bWlubGVuZ3RoOiJtaW5sZW5ndGgifSxmZWF0dXJlczpbcGcoWyRVXSksQm9dfSksdEcucHJvcERlY29yYXRvcnM9e21pbmxlbmd0aDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh0Ryxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWlubGVuZ3RoXVtmb3JtQ29udHJvbE5hbWVdLFttaW5sZW5ndGhdW2Zvcm1Db250cm9sXSxbbWlubGVuZ3RoXVtuZ01vZGVsXSIscHJvdmlkZXJzOlskVV0saG9zdDp7IlthdHRyLm1pbmxlbmd0aF0iOiJlbmFibGVkKCkgPyBtaW5sZW5ndGggOiBudWxsIn19XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse21pbmxlbmd0aDpbe3R5cGU6eHl9XX0pO2NvbnN0IGVHPXtwcm92aWRlOkdWLHVzZUV4aXN0aW5nOnFlKCgoKT0+bkcpKSxtdWx0aTohMH07Y2xhc3Mgbkd7Y29uc3RydWN0b3IoKXt0aGlzLl92YWxpZGF0b3I9bmp9bmdPbkNoYW5nZXModCl7Im1heGxlbmd0aCJpbiB0JiYodGhpcy5fY3JlYXRlVmFsaWRhdG9yKCksdGhpcy5fb25DaGFuZ2UmJnRoaXMuX29uQ2hhbmdlKCkpfXZhbGlkYXRlKHQpe3JldHVybiB0aGlzLmVuYWJsZWQoKT90aGlzLl92YWxpZGF0b3IodCk6bnVsbH1yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9X2NyZWF0ZVZhbGlkYXRvcigpe3RoaXMuX3ZhbGlkYXRvcj10aGlzLmVuYWJsZWQoKT90aihWVSh0aGlzLm1heGxlbmd0aCkpOm5qfWVuYWJsZWQoKXtyZXR1cm4gbnVsbCE9dGhpcy5tYXhsZW5ndGh9fW5HLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxuRyl9LG5HLsm1ZGlyPWxvKHt0eXBlOm5HLHNlbGVjdG9yczpbWyIiLCJtYXhsZW5ndGgiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIiIsIm1heGxlbmd0aCIsIiIsImZvcm1Db250cm9sIiwiIl0sWyIiLCJtYXhsZW5ndGgiLCIiLCJuZ01vZGVsIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJmpwKCJtYXhsZW5ndGgiLG4uZW5hYmxlZCgpP24ubWF4bGVuZ3RoOm51bGwpfSxpbnB1dHM6e21heGxlbmd0aDoibWF4bGVuZ3RoIn0sZmVhdHVyZXM6W3BnKFtlR10pLEJvXX0pLG5HLnByb3BEZWNvcmF0b3JzPXttYXhsZW5ndGg6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobkcsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21heGxlbmd0aF1bZm9ybUNvbnRyb2xOYW1lXSxbbWF4bGVuZ3RoXVtmb3JtQ29udHJvbF0sW21heGxlbmd0aF1bbmdNb2RlbF0iLHByb3ZpZGVyczpbZUddLGhvc3Q6eyJbYXR0ci5tYXhsZW5ndGhdIjoiZW5hYmxlZCgpID8gbWF4bGVuZ3RoIDogbnVsbCJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLHttYXhsZW5ndGg6W3t0eXBlOnh5fV19KTtjb25zdCBvRz17cHJvdmlkZTpHVix1c2VFeGlzdGluZzpxZSgoKCk9PmlHKSksbXVsdGk6ITB9O2NsYXNzIGlHe2NvbnN0cnVjdG9yKCl7dGhpcy5fdmFsaWRhdG9yPW5qfW5nT25DaGFuZ2VzKHQpeyJwYXR0ZXJuImluIHQmJih0aGlzLl9jcmVhdGVWYWxpZGF0b3IoKSx0aGlzLl9vbkNoYW5nZSYmdGhpcy5fb25DaGFuZ2UoKSl9dmFsaWRhdGUodCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRvcih0KX1yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9X2NyZWF0ZVZhbGlkYXRvcigpe3RoaXMuX3ZhbGlkYXRvcj1laih0aGlzLnBhdHRlcm4pfX1pRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aUcpfSxpRy7JtWRpcj1sbyh7dHlwZTppRyxzZWxlY3RvcnM6W1siIiwicGF0dGVybiIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwicGF0dGVybiIsIiIsImZvcm1Db250cm9sIiwiIl0sWyIiLCJwYXR0ZXJuIiwiIiwibmdNb2RlbCIsIiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZqcCgicGF0dGVybiIsbi5wYXR0ZXJuP24ucGF0dGVybjpudWxsKX0saW5wdXRzOntwYXR0ZXJuOiJwYXR0ZXJuIn0sZmVhdHVyZXM6W3BnKFtvR10pLEJvXX0pLGlHLnByb3BEZWNvcmF0b3JzPXtwYXR0ZXJuOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGlHLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltwYXR0ZXJuXVtmb3JtQ29udHJvbE5hbWVdLFtwYXR0ZXJuXVtmb3JtQ29udHJvbF0sW3BhdHRlcm5dW25nTW9kZWxdIixwcm92aWRlcnM6W29HXSxob3N0OnsiW2F0dHIucGF0dGVybl0iOiJwYXR0ZXJuID8gcGF0dGVybiA6IG51bGwifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7cGF0dGVybjpbe3R5cGU6eHl9XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgYUc9W21VLElVLEJVLFZWLGZVLENVLEZWLHpVLExVLHlVLHhqLE9qLFhVLHRHLG5HLGlHLEtVLFFVLFlVLEdVXSxyRz1bcFUsbFUsaVVdLHNHPVt4VSxQVSxBVSxrVSxEVV07Y2xhc3MgbEd7fWxHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsRyl9LGxHLsm1bW9kPWFvKHt0eXBlOmxHfSksbEcuybVpbmo9dm4oe2ltcG9ydHM6W1toVV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsRyxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczphRyxpbXBvcnRzOltoVV0sZXhwb3J0czphR31dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKGxHLHtkZWNsYXJhdGlvbnM6W21VLElVLEJVLFZWLGZVLENVLEZWLHpVLExVLHlVLHhqLE9qLFhVLHRHLG5HLGlHLEtVLFFVLFlVLEdVXSxpbXBvcnRzOltoVV0sZXhwb3J0czpbbVUsSVUsQlUsVlYsZlUsQ1UsRlYselUsTFUseVUseGosT2osWFUsdEcsbkcsaUcsS1UsUVUsWVUsR1VdfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBjR3t9Y0cuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGNHKX0sY0cuybVtb2Q9YW8oe3R5cGU6Y0d9KSxjRy7JtWluaj12bih7aW1wb3J0czpbbEddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChjRyxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpyRyxleHBvcnRzOltsRyxyR119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhjRyx7ZGVjbGFyYXRpb25zOltwVSxsVSxpVV0sZXhwb3J0czpbbEcscFUsbFUsaVVdfSk7Y2xhc3MgZEd7c3RhdGljIHdpdGhDb25maWcodCl7cmV0dXJue25nTW9kdWxlOmRHLHByb3ZpZGVyczpbe3Byb3ZpZGU6TVUsdXNlVmFsdWU6dC53YXJuT25OZ01vZGVsV2l0aEZvcm1Db250cm9sfV19fX1kRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZEcpfSxkRy7JtW1vZD1hbyh7dHlwZTpkR30pLGRHLsm1aW5qPXZuKHtpbXBvcnRzOltsR119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGRHLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltzR10sZXhwb3J0czpbbEcsc0ddfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZEcse2RlY2xhcmF0aW9uczpbeFUsUFUsQVUsa1UsRFVdLGV4cG9ydHM6W2xHLHhVLFBVLEFVLGtVLERVXX0pO2NsYXNzIHBHe2dyb3VwKHQsZT1udWxsKXtjb25zdCBuPXRoaXMuX3JlZHVjZUNvbnRyb2xzKHQpO2xldCBvLGk9bnVsbCxhPW51bGw7cmV0dXJuIG51bGwhPWUmJigoCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiByKHQpe3JldHVybiB2b2lkIDAhPT10LmFzeW5jVmFsaWRhdG9yc3x8dm9pZCAwIT09dC52YWxpZGF0b3JzfHx2b2lkIDAhPT10LnVwZGF0ZU9ufSkoZSk/KGk9bnVsbCE9ZS52YWxpZGF0b3JzP2UudmFsaWRhdG9yczpudWxsLGE9bnVsbCE9ZS5hc3luY1ZhbGlkYXRvcnM/ZS5hc3luY1ZhbGlkYXRvcnM6bnVsbCxvPW51bGwhPWUudXBkYXRlT24/ZS51cGRhdGVPbjp2b2lkIDApOihpPW51bGwhPWUudmFsaWRhdG9yP2UudmFsaWRhdG9yOm51bGwsYT1udWxsIT1lLmFzeW5jVmFsaWRhdG9yP2UuYXN5bmNWYWxpZGF0b3I6bnVsbCkpLG5ldyB0VShuLHthc3luY1ZhbGlkYXRvcnM6YSx1cGRhdGVPbjpvLHZhbGlkYXRvcnM6aX0pfWNvbnRyb2wodCxlLG4pe3JldHVybiBuZXcgJGoodCxlLG4pfWFycmF5KHQsZSxuKXtjb25zdCBvPXQubWFwKCh0PT50aGlzLl9jcmVhdGVDb250cm9sKHQpKSk7cmV0dXJuIG5ldyBlVShvLGUsbil9X3JlZHVjZUNvbnRyb2xzKHQpe2NvbnN0IGU9e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PntlW25dPXRoaXMuX2NyZWF0ZUNvbnRyb2wodFtuXSl9KSksZX1fY3JlYXRlQ29udHJvbCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mICRqfHx0IGluc3RhbmNlb2YgdFV8fHQgaW5zdGFuY2VvZiBlVT90OkFycmF5LmlzQXJyYXkodCk/dGhpcy5jb250cm9sKHRbMF0sdC5sZW5ndGg+MT90WzFdOm51bGwsdC5sZW5ndGg+Mj90WzJdOm51bGwpOnRoaXMuY29udHJvbCh0KX19cEcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBHKX0scEcuybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IHBHfSx0b2tlbjpwRyxwcm92aWRlZEluOmRHfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwRyxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46ZEd9XX1dLG51bGwsbnVsbCksCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpuZXcgT2coIjEyLjIuMSIpO2NvbnN0IG1HPVsidHJpZ2dlciJdLHVHPVsicGFuZWwiXTtmdW5jdGlvbiBmRyh0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDgpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLFN1KHQucGxhY2Vob2xkZXIpfX1mdW5jdGlvbiBnRyh0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDEyKSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoMSksU3UodC50cmlnZ2VyVmFsdWUpfX1mdW5jdGlvbiBoRyh0LGUpezEmdCYmWG0oMCwwLFsiKm5nU3dpdGNoQ2FzZSIsInRydWUiXSl9ZnVuY3Rpb24gYkcodCxlKXsxJnQmJihSbSgwLCJzcGFuIiw5KSxRcCgxLGdHLDIsMSwic3BhbiIsMTApLFFwKDIsaEcsMSwwLCJuZy1jb250ZW50IiwxMSksQW0oKSksMiZ0JiYoRG0oIm5nU3dpdGNoIiwhIVltKCkuY3VzdG9tVHJpZ2dlcikscmMoMiksRG0oIm5nU3dpdGNoQ2FzZSIsITApKX1mdW5jdGlvbiB5Ryh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMTMpLFJtKDEsImRpdiIsMTQsMTUpLFZtKCJAdHJhbnNmb3JtUGFuZWwuZG9uZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkuX3BhbmVsRG9uZUFuaW1hdGluZ1N0cmVhbS5uZXh0KG4udG9TdGF0ZSl9KSkoImtleWRvd24iLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLl9oYW5kbGVLZXlkb3duKG4pfSkpLFhtKDMsMSksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJAdHJhbnNmb3JtUGFuZWxXcmFwIix2b2lkIDApLHJjKDEpLEF1KCJtYXQtc2VsZWN0LXBhbmVsICIsdC5fZ2V0UGFuZWxUaGVtZSgpLCIiKSxkdSgidHJhbnNmb3JtLW9yaWdpbiIsdC5fdHJhbnNmb3JtT3JpZ2luKSgiZm9udC1zaXplIix0Ll90cmlnZ2VyRm9udFNpemUsInB4IiksRG0oIm5nQ2xhc3MiLHQucGFuZWxDbGFzcykoIkB0cmFuc2Zvcm1QYW5lbCIsdC5tdWx0aXBsZT8ic2hvd2luZy1tdWx0aXBsZSI6InNob3dpbmciKSxqcCgiaWQiLHQuaWQrIi1wYW5lbCIpKCJhcmlhLW11bHRpc2VsZWN0YWJsZSIsdC5tdWx0aXBsZSkoImFyaWEtbGFiZWwiLHQuYXJpYUxhYmVsfHxudWxsKSgiYXJpYS1sYWJlbGxlZGJ5Iix0Ll9nZXRQYW5lbEFyaWFMYWJlbGxlZGJ5KCkpfX1jb25zdCBfRz1bW1sibWF0LXNlbGVjdC10cmlnZ2VyIl1dLCIqIl0sQ0c9e3RyYW5zZm9ybVBhbmVsV3JhcDpueCgidHJhbnNmb3JtUGFuZWxXcmFwIixbbHgoIiogPT4gdm9pZCIsZHgoIkB0cmFuc2Zvcm1QYW5lbCIsW2N4KCldLHtvcHRpb25hbDohMH0pKV0pLHRyYW5zZm9ybVBhbmVsOm54KCJ0cmFuc2Zvcm1QYW5lbCIsW3J4KCJ2b2lkIixheCh7dHJhbnNmb3JtOiJzY2FsZVkoMC44KSIsbWluV2lkdGg6IjEwMCUiLG9wYWNpdHk6MH0pKSxyeCgic2hvd2luZyIsYXgoe29wYWNpdHk6MSxtaW5XaWR0aDoiY2FsYygxMDAlICsgMzJweCkiLHRyYW5zZm9ybToic2NhbGVZKDEpIn0pKSxyeCgic2hvd2luZy1tdWx0aXBsZSIsYXgoe29wYWNpdHk6MSxtaW5XaWR0aDoiY2FsYygxMDAlICsgNjRweCkiLHRyYW5zZm9ybToic2NhbGVZKDEpIn0pKSxseCgidm9pZCA9PiAqIixveCgiMTIwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiKSksbHgoIiogPT4gdm9pZCIsb3goIjEwMG1zIDI1bXMgbGluZWFyIixheCh7b3BhY2l0eTowfSkpKV0pfTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBNRz0wO2NvbnN0IHZHPTI1Nix4Rz1uZXcgR2EoIm1hdC1zZWxlY3Qtc2Nyb2xsLXN0cmF0ZWd5IiksT0c9bmV3IEdhKCJNQVRfU0VMRUNUX0NPTkZJRyIpLFBHPXtwcm92aWRlOnhHLGRlcHM6W3BMXSx1c2VGYWN0b3J5OmZ1bmN0aW9uIHdHKHQpe3JldHVybigpPT50LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpfX07Y2xhc3Mga0d7Y29uc3RydWN0b3IodCxlKXt0aGlzLnNvdXJjZT10LHRoaXMudmFsdWU9ZX19Y29uc3QgU0c9UUkoJEkoS0kodEgoY2xhc3N7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyPWUsdGhpcy5fcGFyZW50Rm9ybT1uLHRoaXMuX3BhcmVudEZvcm1Hcm91cD1vLHRoaXMubmdDb250cm9sPWl9fSkpKSksREc9bmV3IEdhKCJNYXRTZWxlY3RUcmlnZ2VyIik7Y2xhc3MgRUd7fUVHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxFRyl9LEVHLsm1ZGlyPWxvKHt0eXBlOkVHLHNlbGVjdG9yczpbWyJtYXQtc2VsZWN0LXRyaWdnZXIiXV0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpERyx1c2VFeGlzdGluZzpFR31dKV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEVHLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1zZWxlY3QtdHJpZ2dlciIscHJvdmlkZXJzOlt7cHJvdmlkZTpERyx1c2VFeGlzdGluZzpFR31dfV19XSxudWxsLG51bGwpO2NsYXNzIFJHIGV4dGVuZHMgU0d7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1KXt2YXIgZixnLGg7c3VwZXIoaSxvLHIscyxjKSx0aGlzLl92aWV3cG9ydFJ1bGVyPXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9uZ1pvbmU9bix0aGlzLl9kaXI9YSx0aGlzLl9wYXJlbnRGb3JtRmllbGQ9bCx0aGlzLl9saXZlQW5ub3VuY2VyPW0sdGhpcy5fZGVmYXVsdE9wdGlvbnM9dSx0aGlzLl9wYW5lbE9wZW49ITEsdGhpcy5fY29tcGFyZVdpdGg9KHQsZSk9PnQ9PT1lLHRoaXMuX3VpZD0ibWF0LXNlbGVjdC0iK01HKyssdGhpcy5fdHJpZ2dlckFyaWFMYWJlbGxlZEJ5PW51bGwsdGhpcy5fZGVzdHJveT1uZXcgSSx0aGlzLl9vbkNoYW5nZT0oKT0+e30sdGhpcy5fb25Ub3VjaGVkPSgpPT57fSx0aGlzLl92YWx1ZUlkPSJtYXQtc2VsZWN0LXZhbHVlLSIrTUcrKyx0aGlzLl9wYW5lbERvbmVBbmltYXRpbmdTdHJlYW09bmV3IEksdGhpcy5fb3ZlcmxheVBhbmVsQ2xhc3M9KG51bGw9PT0oZj10aGlzLl9kZWZhdWx0T3B0aW9ucyl8fHZvaWQgMD09PWY/dm9pZCAwOmYub3ZlcmxheVBhbmVsQ2xhc3MpfHwiIix0aGlzLl9mb2N1c2VkPSExLHRoaXMuY29udHJvbFR5cGU9Im1hdC1zZWxlY3QiLHRoaXMuX3JlcXVpcmVkPSExLHRoaXMuX211bHRpcGxlPSExLHRoaXMuX2Rpc2FibGVPcHRpb25DZW50ZXJpbmc9bnVsbCE9PShoPW51bGw9PT0oZz10aGlzLl9kZWZhdWx0T3B0aW9ucyl8fHZvaWQgMD09PWc/dm9pZCAwOmcuZGlzYWJsZU9wdGlvbkNlbnRlcmluZykmJnZvaWQgMCE9PWgmJmgsdGhpcy5hcmlhTGFiZWw9IiIsdGhpcy5vcHRpb25TZWxlY3Rpb25DaGFuZ2VzPVF0KCgoKT0+e2NvbnN0IHQ9dGhpcy5vcHRpb25zO3JldHVybiB0P3QuY2hhbmdlcy5waXBlKE5lKHQpLHplKCgoKT0+cmUoLi4udC5tYXAoKHQ9PnQub25TZWxlY3Rpb25DaGFuZ2UpKSkpKSk6dGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoYmUoMSksemUoKCgpPT50aGlzLm9wdGlvblNlbGVjdGlvbkNoYW5nZXMpKSl9KSksdGhpcy5vcGVuZWRDaGFuZ2U9bmV3IExoLHRoaXMuX29wZW5lZFN0cmVhbT10aGlzLm9wZW5lZENoYW5nZS5waXBlKGNlKCh0PT50KSksSXQoKCgpPT57fSkpKSx0aGlzLl9jbG9zZWRTdHJlYW09dGhpcy5vcGVuZWRDaGFuZ2UucGlwZShjZSgodD0+IXQpKSxJdCgoKCk9Pnt9KSkpLHRoaXMuc2VsZWN0aW9uQ2hhbmdlPW5ldyBMaCx0aGlzLnZhbHVlQ2hhbmdlPW5ldyBMaCx0aGlzLm5nQ29udHJvbCYmKHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3I9dGhpcyksbnVsbCE9KG51bGw9PXU/dm9pZCAwOnUudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCkmJih0aGlzLl90eXBlYWhlYWREZWJvdW5jZUludGVydmFsPXUudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3lGYWN0b3J5PXAsdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9dGhpcy5fc2Nyb2xsU3RyYXRlZ3lGYWN0b3J5KCksdGhpcy50YWJJbmRleD1wYXJzZUludChkKXx8MCx0aGlzLmlkPXRoaXMuaWR9Z2V0IGZvY3VzZWQoKXtyZXR1cm4gdGhpcy5fZm9jdXNlZHx8dGhpcy5fcGFuZWxPcGVufWdldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLl9wbGFjZWhvbGRlcn1zZXQgcGxhY2Vob2xkZXIodCl7dGhpcy5fcGxhY2Vob2xkZXI9dCx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuX3JlcXVpcmVkfXNldCByZXF1aXJlZCh0KXt0aGlzLl9yZXF1aXJlZD15eih0KSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuX211bHRpcGxlfXNldCBtdWx0aXBsZSh0KXtpZih0aGlzLl9zZWxlY3Rpb25Nb2RlbCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KdGhyb3coZnVuY3Rpb24gZSgpe3JldHVybiBFcnJvcigiQ2Fubm90IGNoYW5nZSBgbXVsdGlwbGVgIG1vZGUgb2Ygc2VsZWN0IGFmdGVyIGluaXRpYWxpemF0aW9uLiIpfSkoKTt0aGlzLl9tdWx0aXBsZT15eih0KX1nZXQgZGlzYWJsZU9wdGlvbkNlbnRlcmluZygpe3JldHVybiB0aGlzLl9kaXNhYmxlT3B0aW9uQ2VudGVyaW5nfXNldCBkaXNhYmxlT3B0aW9uQ2VudGVyaW5nKHQpe3RoaXMuX2Rpc2FibGVPcHRpb25DZW50ZXJpbmc9eXoodCl9Z2V0IGNvbXBhcmVXaXRoKCl7cmV0dXJuIHRoaXMuX2NvbXBhcmVXaXRofXNldCBjb21wYXJlV2l0aCh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIGUoKXtyZXR1cm4gRXJyb3IoImBjb21wYXJlV2l0aGAgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpfSkoKTt0aGlzLl9jb21wYXJlV2l0aD10LHRoaXMuX3NlbGVjdGlvbk1vZGVsJiZ0aGlzLl9pbml0aWFsaXplU2VsZWN0aW9uKCl9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfXNldCB2YWx1ZSh0KXsodCE9PXRoaXMuX3ZhbHVlfHx0aGlzLl9tdWx0aXBsZSYmQXJyYXkuaXNBcnJheSh0KSkmJih0aGlzLm9wdGlvbnMmJnRoaXMuX3NldFNlbGVjdGlvbkJ5VmFsdWUodCksdGhpcy5fdmFsdWU9dCl9Z2V0IHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwoKXtyZXR1cm4gdGhpcy5fdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbH1zZXQgdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCh0KXt0aGlzLl90eXBlYWhlYWREZWJvdW5jZUludGVydmFsPV96KHQpfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZH1zZXQgaWQodCl7dGhpcy5faWQ9dHx8dGhpcy5fdWlkLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1uZ09uSW5pdCgpe3RoaXMuX3NlbGVjdGlvbk1vZGVsPW5ldyBvRih0aGlzLm11bHRpcGxlKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCksdGhpcy5fcGFuZWxEb25lQW5pbWF0aW5nU3RyZWFtLnBpcGUoTWUoKSxJZSh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgoKT0+dGhpcy5fcGFuZWxEb25lQW5pbWF0aW5nKHRoaXMucGFuZWxPcGVuKSkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2luaXRLZXlNYW5hZ2VyKCksdGhpcy5fc2VsZWN0aW9uTW9kZWwuY2hhbmdlZC5waXBlKEllKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKHQ9Pnt0LmFkZGVkLmZvckVhY2goKHQ9PnQuc2VsZWN0KCkpKSx0LnJlbW92ZWQuZm9yRWFjaCgodD0+dC5kZXNlbGVjdCgpKSl9KSksdGhpcy5vcHRpb25zLmNoYW5nZXMucGlwZShOZShudWxsKSxJZSh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3Jlc2V0T3B0aW9ucygpLHRoaXMuX2luaXRpYWxpemVTZWxlY3Rpb24oKX0pKX1uZ0RvQ2hlY2soKXtjb25zdCB0PXRoaXMuX2dldFRyaWdnZXJBcmlhTGFiZWxsZWRieSgpO2lmKHQhPT10aGlzLl90cmlnZ2VyQXJpYUxhYmVsbGVkQnkpe2NvbnN0IGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O3RoaXMuX3RyaWdnZXJBcmlhTGFiZWxsZWRCeT10LHQ/ZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsdCk6ZS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIpfXRoaXMubmdDb250cm9sJiZ0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKX1uZ09uQ2hhbmdlcyh0KXt0LmRpc2FibGVkJiZ0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCksdC50eXBlYWhlYWREZWJvdW5jZUludGVydmFsJiZ0aGlzLl9rZXlNYW5hZ2VyJiZ0aGlzLl9rZXlNYW5hZ2VyLndpdGhUeXBlQWhlYWQodGhpcy5fdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95Lm5leHQoKSx0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCksdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKX10b2dnbGUoKXt0aGlzLnBhbmVsT3Blbj90aGlzLmNsb3NlKCk6dGhpcy5vcGVuKCl9b3Blbigpe3RoaXMuX2Nhbk9wZW4oKSYmKHRoaXMuX3BhbmVsT3Blbj0hMCx0aGlzLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24obnVsbCksdGhpcy5faGlnaGxpZ2h0Q29ycmVjdE9wdGlvbigpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1jbG9zZSgpe3RoaXMuX3BhbmVsT3BlbiYmKHRoaXMuX3BhbmVsT3Blbj0hMSx0aGlzLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5faXNSdGwoKT8icnRsIjoibHRyIiksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5fb25Ub3VjaGVkKCkpfXdyaXRlVmFsdWUodCl7dGhpcy52YWx1ZT10fXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLl9vblRvdWNoZWQ9dH1zZXREaXNhYmxlZFN0YXRlKHQpe3RoaXMuZGlzYWJsZWQ9dCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9Z2V0IHBhbmVsT3Blbigpe3JldHVybiB0aGlzLl9wYW5lbE9wZW59Z2V0IHNlbGVjdGVkKCl7cmV0dXJuIHRoaXMubXVsdGlwbGU/dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQ6dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRbMF19Z2V0IHRyaWdnZXJWYWx1ZSgpe2lmKHRoaXMuZW1wdHkpcmV0dXJuIiI7aWYodGhpcy5fbXVsdGlwbGUpe2NvbnN0IHQ9dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubWFwKCh0PT50LnZpZXdWYWx1ZSkpO3JldHVybiB0aGlzLl9pc1J0bCgpJiZ0LnJldmVyc2UoKSx0LmpvaW4oIiwgIil9cmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkWzBdLnZpZXdWYWx1ZX1faXNSdGwoKXtyZXR1cm4hIXRoaXMuX2RpciYmInJ0bCI9PT10aGlzLl9kaXIudmFsdWV9X2hhbmRsZUtleWRvd24odCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMucGFuZWxPcGVuP3RoaXMuX2hhbmRsZU9wZW5LZXlkb3duKHQpOnRoaXMuX2hhbmRsZUNsb3NlZEtleWRvd24odCkpfV9oYW5kbGVDbG9zZWRLZXlkb3duKHQpe2NvbnN0IGU9dC5rZXlDb2RlLG49ZT09PWh6fHxlPT09Z3p8fDM3PT09ZXx8Mzk9PT1lLG89ZT09PW16fHxlPT09ZnosaT10aGlzLl9rZXlNYW5hZ2VyO2lmKCFpLmlzVHlwaW5nKCkmJm8mJiFieih0KXx8KHRoaXMubXVsdGlwbGV8fHQuYWx0S2V5KSYmbil0LnByZXZlbnREZWZhdWx0KCksdGhpcy5vcGVuKCk7ZWxzZSBpZighdGhpcy5tdWx0aXBsZSl7Y29uc3QgZT10aGlzLnNlbGVjdGVkO2kub25LZXlkb3duKHQpO2NvbnN0IG49dGhpcy5zZWxlY3RlZDtuJiZlIT09biYmdGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZShuLnZpZXdWYWx1ZSwxZTQpfX1faGFuZGxlT3BlbktleWRvd24odCl7Y29uc3QgZT10aGlzLl9rZXlNYW5hZ2VyLG49dC5rZXlDb2RlLG89bj09PWh6fHxuPT09Z3osaT1lLmlzVHlwaW5nKCk7aWYobyYmdC5hbHRLZXkpdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xvc2UoKTtlbHNlIGlmKGl8fG4hPT1teiYmbiE9PWZ6fHwhZS5hY3RpdmVJdGVtfHxieih0KSlpZighaSYmdGhpcy5fbXVsdGlwbGUmJjY1PT09biYmdC5jdHJsS2V5KXt0LnByZXZlbnREZWZhdWx0KCk7Y29uc3QgZT10aGlzLm9wdGlvbnMuc29tZSgodD0+IXQuZGlzYWJsZWQmJiF0LnNlbGVjdGVkKSk7dGhpcy5vcHRpb25zLmZvckVhY2goKHQ9Pnt0LmRpc2FibGVkfHwoZT90LnNlbGVjdCgpOnQuZGVzZWxlY3QoKSl9KSl9ZWxzZXtjb25zdCBuPWUuYWN0aXZlSXRlbUluZGV4O2Uub25LZXlkb3duKHQpLHRoaXMuX211bHRpcGxlJiZvJiZ0LnNoaWZ0S2V5JiZlLmFjdGl2ZUl0ZW0mJmUuYWN0aXZlSXRlbUluZGV4IT09biYmZS5hY3RpdmVJdGVtLl9zZWxlY3RWaWFJbnRlcmFjdGlvbigpfWVsc2UgdC5wcmV2ZW50RGVmYXVsdCgpLGUuYWN0aXZlSXRlbS5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKX1fb25Gb2N1cygpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLl9mb2N1c2VkPSEwLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9X29uQmx1cigpe3RoaXMuX2ZvY3VzZWQ9ITEsdGhpcy5kaXNhYmxlZHx8dGhpcy5wYW5lbE9wZW58fCh0aGlzLl9vblRvdWNoZWQoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpfV9vbkF0dGFjaGVkKCl7dGhpcy5fb3ZlcmxheURpci5wb3NpdGlvbkNoYW5nZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuX3Bvc2l0aW9uaW5nU2V0dGxlZCgpfSkpfV9nZXRQYW5lbFRoZW1lKCl7cmV0dXJuIHRoaXMuX3BhcmVudEZvcm1GaWVsZD9gbWF0LSR7dGhpcy5fcGFyZW50Rm9ybUZpZWxkLmNvbG9yfWA6IiJ9Z2V0IGVtcHR5KCl7cmV0dXJuIXRoaXMuX3NlbGVjdGlvbk1vZGVsfHx0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCl9X2luaXRpYWxpemVTZWxlY3Rpb24oKXtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX3NldFNlbGVjdGlvbkJ5VmFsdWUodGhpcy5uZ0NvbnRyb2w/dGhpcy5uZ0NvbnRyb2wudmFsdWU6dGhpcy5fdmFsdWUpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pKX1fc2V0U2VsZWN0aW9uQnlWYWx1ZSh0KXtpZih0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5mb3JFYWNoKCh0PT50LnNldEluYWN0aXZlU3R5bGVzKCkpKSx0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpLHRoaXMubXVsdGlwbGUmJnQpe2lmKCFBcnJheS5pc0FycmF5KHQpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gZSgpe3JldHVybiBFcnJvcigiVmFsdWUgbXVzdCBiZSBhbiBhcnJheSBpbiBtdWx0aXBsZS1zZWxlY3Rpb24gbW9kZS4iKX0pKCk7dC5mb3JFYWNoKCh0PT50aGlzLl9zZWxlY3RWYWx1ZSh0KSkpLHRoaXMuX3NvcnRWYWx1ZXMoKX1lbHNle2NvbnN0IGU9dGhpcy5fc2VsZWN0VmFsdWUodCk7ZT90aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oZSk6dGhpcy5wYW5lbE9wZW58fHRoaXMuX2tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbSgtMSl9dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X3NlbGVjdFZhbHVlKHQpe2NvbnN0IGU9dGhpcy5vcHRpb25zLmZpbmQoKGU9PntpZih0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKGUpKXJldHVybiExO3RyeXtyZXR1cm4gbnVsbCE9ZS52YWx1ZSYmdGhpcy5fY29tcGFyZVdpdGgoZS52YWx1ZSx0KX1jYXRjaCh0KXtyZXR1cm4oInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmNvbnNvbGUud2Fybih0KSwhMX19KSk7cmV0dXJuIGUmJnRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdChlKSxlfV9pbml0S2V5TWFuYWdlcigpe3RoaXMuX2tleU1hbmFnZXI9bmV3IHRJKHRoaXMub3B0aW9ucykud2l0aFR5cGVBaGVhZCh0aGlzLl90eXBlYWhlYWREZWJvdW5jZUludGVydmFsKS53aXRoVmVydGljYWxPcmllbnRhdGlvbigpLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5faXNSdGwoKT8icnRsIjoibHRyIikud2l0aEhvbWVBbmRFbmQoKS53aXRoQWxsb3dlZE1vZGlmaWVyS2V5cyhbInNoaWZ0S2V5Il0pLHRoaXMuX2tleU1hbmFnZXIudGFiT3V0LnBpcGUoSWUodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLnBhbmVsT3BlbiYmKCF0aGlzLm11bHRpcGxlJiZ0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0mJnRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbS5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKSx0aGlzLmZvY3VzKCksdGhpcy5jbG9zZSgpKX0pKSx0aGlzLl9rZXlNYW5hZ2VyLmNoYW5nZS5waXBlKEllKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fcGFuZWxPcGVuJiZ0aGlzLnBhbmVsP3RoaXMuX3Njcm9sbE9wdGlvbkludG9WaWV3KHRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4fHwwKTp0aGlzLl9wYW5lbE9wZW58fHRoaXMubXVsdGlwbGV8fCF0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW18fHRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbS5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKX0pKX1fcmVzZXRPcHRpb25zKCl7Y29uc3QgdD1yZSh0aGlzLm9wdGlvbnMuY2hhbmdlcyx0aGlzLl9kZXN0cm95KTt0aGlzLm9wdGlvblNlbGVjdGlvbkNoYW5nZXMucGlwZShJZSh0KSkuc3Vic2NyaWJlKCh0PT57dGhpcy5fb25TZWxlY3QodC5zb3VyY2UsdC5pc1VzZXJJbnB1dCksdC5pc1VzZXJJbnB1dCYmIXRoaXMubXVsdGlwbGUmJnRoaXMuX3BhbmVsT3BlbiYmKHRoaXMuY2xvc2UoKSx0aGlzLmZvY3VzKCkpfSkpLHJlKC4uLnRoaXMub3B0aW9ucy5tYXAoKHQ9PnQuX3N0YXRlQ2hhbmdlcykpKS5waXBlKEllKHQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfSkpfV9vblNlbGVjdCh0LGUpe2NvbnN0IG49dGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZCh0KTtudWxsIT10LnZhbHVlfHx0aGlzLl9tdWx0aXBsZT8obiE9PXQuc2VsZWN0ZWQmJih0LnNlbGVjdGVkP3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdCh0KTp0aGlzLl9zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdCh0KSksZSYmdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHQpLHRoaXMubXVsdGlwbGUmJih0aGlzLl9zb3J0VmFsdWVzKCksZSYmdGhpcy5mb2N1cygpKSk6KHQuZGVzZWxlY3QoKSx0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpLG51bGwhPXRoaXMudmFsdWUmJnRoaXMuX3Byb3BhZ2F0ZUNoYW5nZXModC52YWx1ZSkpLG4hPT10aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKHQpJiZ0aGlzLl9wcm9wYWdhdGVDaGFuZ2VzKCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfV9zb3J0VmFsdWVzKCl7aWYodGhpcy5tdWx0aXBsZSl7Y29uc3QgdD10aGlzLm9wdGlvbnMudG9BcnJheSgpO3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNvcnQoKChlLG4pPT50aGlzLnNvcnRDb21wYXJhdG9yP3RoaXMuc29ydENvbXBhcmF0b3IoZSxuLHQpOnQuaW5kZXhPZihlKS10LmluZGV4T2YobikpKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9fV9wcm9wYWdhdGVDaGFuZ2VzKHQpe2xldCBlPW51bGw7ZT10aGlzLm11bHRpcGxlP3RoaXMuc2VsZWN0ZWQubWFwKCh0PT50LnZhbHVlKSk6dGhpcy5zZWxlY3RlZD90aGlzLnNlbGVjdGVkLnZhbHVlOnQsdGhpcy5fdmFsdWU9ZSx0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZSksdGhpcy5fb25DaGFuZ2UoZSksdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLl9nZXRDaGFuZ2VFdmVudChlKSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X2hpZ2hsaWdodENvcnJlY3RPcHRpb24oKXt0aGlzLl9rZXlNYW5hZ2VyJiYodGhpcy5lbXB0eT90aGlzLl9rZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpOnRoaXMuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSh0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXSkpfV9jYW5PcGVuKCl7dmFyIHQ7cmV0dXJuIXRoaXMuX3BhbmVsT3BlbiYmIXRoaXMuZGlzYWJsZWQmJihudWxsPT09KHQ9dGhpcy5vcHRpb25zKXx8dm9pZCAwPT09dD92b2lkIDA6dC5sZW5ndGgpPjB9Zm9jdXModCl7dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKHQpfV9nZXRQYW5lbEFyaWFMYWJlbGxlZGJ5KCl7dmFyIHQ7aWYodGhpcy5hcmlhTGFiZWwpcmV0dXJuIG51bGw7Y29uc3QgZT1udWxsPT09KHQ9dGhpcy5fcGFyZW50Rm9ybUZpZWxkKXx8dm9pZCAwPT09dD92b2lkIDA6dC5nZXRMYWJlbElkKCk7cmV0dXJuIHRoaXMuYXJpYUxhYmVsbGVkYnk/KGU/ZSsiICI6IiIpK3RoaXMuYXJpYUxhYmVsbGVkYnk6ZX1fZ2V0QXJpYUFjdGl2ZURlc2NlbmRhbnQoKXtyZXR1cm4gdGhpcy5wYW5lbE9wZW4mJnRoaXMuX2tleU1hbmFnZXImJnRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbT90aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uaWQ6bnVsbH1fZ2V0VHJpZ2dlckFyaWFMYWJlbGxlZGJ5KCl7dmFyIHQ7aWYodGhpcy5hcmlhTGFiZWwpcmV0dXJuIG51bGw7Y29uc3QgZT1udWxsPT09KHQ9dGhpcy5fcGFyZW50Rm9ybUZpZWxkKXx8dm9pZCAwPT09dD92b2lkIDA6dC5nZXRMYWJlbElkKCk7bGV0IG49KGU/ZSsiICI6IiIpK3RoaXMuX3ZhbHVlSWQ7cmV0dXJuIHRoaXMuYXJpYUxhYmVsbGVkYnkmJihuKz0iICIrdGhpcy5hcmlhTGFiZWxsZWRieSksbn1fcGFuZWxEb25lQW5pbWF0aW5nKHQpe3RoaXMub3BlbmVkQ2hhbmdlLmVtaXQodCl9c2V0RGVzY3JpYmVkQnlJZHModCl7dGhpcy5fYXJpYURlc2NyaWJlZGJ5PXQuam9pbigiICIpfW9uQ29udGFpbmVyQ2xpY2soKXt0aGlzLmZvY3VzKCksdGhpcy5vcGVuKCl9Z2V0IHNob3VsZExhYmVsRmxvYXQoKXtyZXR1cm4gdGhpcy5fcGFuZWxPcGVufHwhdGhpcy5lbXB0eXx8dGhpcy5fZm9jdXNlZCYmISF0aGlzLl9wbGFjZWhvbGRlcn19UkcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJHKShTbSh1RiksU20oVWcpLFNtKGFfKSxTbShiSCksU20oaGcpLFNtKEhJLDgpLFNtKGlVLDgpLFNtKFBVLDgpLFNtKFJWLDgpLFNtKE1qLDEwKSxOYSgidGFiaW5kZXgiKSxTbSh4RyksU20oT0kpLFNtKE9HLDgpKX0sUkcuybVkaXI9bG8oe3R5cGU6Ukcsdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChtRyw1KSxRaCh1Ryw1KSxRaChnTCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi50cmlnZ2VyPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLnBhbmVsPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9vdmVybGF5RGlyPXQuZmlyc3QpfX0saW5wdXRzOnthcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0saWQ6ImlkIixwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIiLHJlcXVpcmVkOiJyZXF1aXJlZCIsbXVsdGlwbGU6Im11bHRpcGxlIixkaXNhYmxlT3B0aW9uQ2VudGVyaW5nOiJkaXNhYmxlT3B0aW9uQ2VudGVyaW5nIixjb21wYXJlV2l0aDoiY29tcGFyZVdpdGgiLHZhbHVlOiJ2YWx1ZSIsdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbDoidHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCIscGFuZWxDbGFzczoicGFuZWxDbGFzcyIsYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdLGVycm9yU3RhdGVNYXRjaGVyOiJlcnJvclN0YXRlTWF0Y2hlciIsc29ydENvbXBhcmF0b3I6InNvcnRDb21wYXJhdG9yIn0sb3V0cHV0czp7b3BlbmVkQ2hhbmdlOiJvcGVuZWRDaGFuZ2UiLF9vcGVuZWRTdHJlYW06Im9wZW5lZCIsX2Nsb3NlZFN0cmVhbToiY2xvc2VkIixzZWxlY3Rpb25DaGFuZ2U6InNlbGVjdGlvbkNoYW5nZSIsdmFsdWVDaGFuZ2U6InZhbHVlQ2hhbmdlIn0sZmVhdHVyZXM6W3hwLEJvXX0pLFJHLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dUZ9LHt0eXBlOlVnfSx7dHlwZTphX30se3R5cGU6Ykh9LHt0eXBlOmhnfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTppVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpQVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpBVixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUlZdfV19LHt0eXBlOk1qLGRlY29yYXRvcnM6W3t0eXBlOkRyfSx7dHlwZTpTcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3hHXX1dfSx7dHlwZTpPSX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltPR119XX1dLFJHLnByb3BEZWNvcmF0b3JzPXt0cmlnZ2VyOlt7dHlwZTpaYSxhcmdzOlsidHJpZ2dlciJdfV0scGFuZWw6W3t0eXBlOlphLGFyZ3M6WyJwYW5lbCJdfV0sX292ZXJsYXlEaXI6W3t0eXBlOlphLGFyZ3M6W2dMXX1dLHBhbmVsQ2xhc3M6W3t0eXBlOnh5fV0scGxhY2Vob2xkZXI6W3t0eXBlOnh5fV0scmVxdWlyZWQ6W3t0eXBlOnh5fV0sbXVsdGlwbGU6W3t0eXBlOnh5fV0sZGlzYWJsZU9wdGlvbkNlbnRlcmluZzpbe3R5cGU6eHl9XSxjb21wYXJlV2l0aDpbe3R5cGU6eHl9XSx2YWx1ZTpbe3R5cGU6eHl9XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0sZXJyb3JTdGF0ZU1hdGNoZXI6W3t0eXBlOnh5fV0sdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbDpbe3R5cGU6eHl9XSxzb3J0Q29tcGFyYXRvcjpbe3R5cGU6eHl9XSxpZDpbe3R5cGU6eHl9XSxvcGVuZWRDaGFuZ2U6W3t0eXBlOk95fV0sX29wZW5lZFN0cmVhbTpbe3R5cGU6T3ksYXJnczpbIm9wZW5lZCJdfV0sX2Nsb3NlZFN0cmVhbTpbe3R5cGU6T3ksYXJnczpbImNsb3NlZCJdfV0sc2VsZWN0aW9uQ2hhbmdlOlt7dHlwZTpPeX1dLHZhbHVlQ2hhbmdlOlt7dHlwZTpPeX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFJHLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp1Rn0se3R5cGU6VWd9LHt0eXBlOmFffSx7dHlwZTpiSH0se3R5cGU6aGd9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOmlVLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlBVLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOkFWLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltSVl19XX0se3R5cGU6TWosZGVjb3JhdG9yczpbe3R5cGU6RHJ9LHt0eXBlOlNyfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpqYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbeEddfV19LHt0eXBlOk9JfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W09HXX1dfV19KSx7YXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sb3BlbmVkQ2hhbmdlOlt7dHlwZTpPeX1dLF9vcGVuZWRTdHJlYW06W3t0eXBlOk95LGFyZ3M6WyJvcGVuZWQiXX1dLF9jbG9zZWRTdHJlYW06W3t0eXBlOk95LGFyZ3M6WyJjbG9zZWQiXX1dLHNlbGVjdGlvbkNoYW5nZTpbe3R5cGU6T3l9XSx2YWx1ZUNoYW5nZTpbe3R5cGU6T3l9XSxpZDpbe3R5cGU6eHl9XSxwbGFjZWhvbGRlcjpbe3R5cGU6eHl9XSxyZXF1aXJlZDpbe3R5cGU6eHl9XSxtdWx0aXBsZTpbe3R5cGU6eHl9XSxkaXNhYmxlT3B0aW9uQ2VudGVyaW5nOlt7dHlwZTp4eX1dLGNvbXBhcmVXaXRoOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWw6W3t0eXBlOnh5fV0sdHJpZ2dlcjpbe3R5cGU6WmEsYXJnczpbInRyaWdnZXIiXX1dLHBhbmVsOlt7dHlwZTpaYSxhcmdzOlsicGFuZWwiXX1dLF9vdmVybGF5RGlyOlt7dHlwZTpaYSxhcmdzOltnTF19XSxwYW5lbENsYXNzOlt7dHlwZTp4eX1dLGFyaWFMYWJlbGxlZGJ5Olt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbGxlZGJ5Il19XSxlcnJvclN0YXRlTWF0Y2hlcjpbe3R5cGU6eHl9XSxzb3J0Q29tcGFyYXRvcjpbe3R5cGU6eHl9XX0pO2NsYXNzIEFHIGV4dGVuZHMgUkd7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3Njcm9sbFRvcD0wLHRoaXMuX3RyaWdnZXJGb250U2l6ZT0wLHRoaXMuX3RyYW5zZm9ybU9yaWdpbj0idG9wIix0aGlzLl9vZmZzZXRZPTAsdGhpcy5fcG9zaXRpb25zPVt7b3JpZ2luWDoic3RhcnQiLG9yaWdpblk6InRvcCIsb3ZlcmxheVg6InN0YXJ0IixvdmVybGF5WToidG9wIn0se29yaWdpblg6InN0YXJ0IixvcmlnaW5ZOiJib3R0b20iLG92ZXJsYXlYOiJzdGFydCIsb3ZlcmxheVk6ImJvdHRvbSJ9XX1fY2FsY3VsYXRlT3ZlcmxheVNjcm9sbCh0LGUsbil7Y29uc3Qgbz10aGlzLl9nZXRJdGVtSGVpZ2h0KCk7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KDAsbyp0LWUrby8yKSxuKX1uZ09uSW5pdCgpe3N1cGVyLm5nT25Jbml0KCksdGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoKS5waXBlKEllKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5wYW5lbE9wZW4mJih0aGlzLl90cmlnZ2VyUmVjdD10aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9KSl9b3Blbigpe3N1cGVyLl9jYW5PcGVuKCkmJihzdXBlci5vcGVuKCksdGhpcy5fdHJpZ2dlclJlY3Q9dGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5fdHJpZ2dlckZvbnRTaXplPXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQpLmZvbnRTaXplfHwiMCIpLHRoaXMuX2NhbGN1bGF0ZU92ZXJsYXlQb3NpdGlvbigpLHRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fdHJpZ2dlckZvbnRTaXplJiZ0aGlzLl9vdmVybGF5RGlyLm92ZXJsYXlSZWYmJnRoaXMuX292ZXJsYXlEaXIub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudCYmKHRoaXMuX292ZXJsYXlEaXIub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5zdHlsZS5mb250U2l6ZT1gJHt0aGlzLl90cmlnZ2VyRm9udFNpemV9cHhgKX0pKSl9X3Njcm9sbE9wdGlvbkludG9WaWV3KHQpe2NvbnN0IGU9VkgodCx0aGlzLm9wdGlvbnMsdGhpcy5vcHRpb25Hcm91cHMpLG49dGhpcy5fZ2V0SXRlbUhlaWdodCgpO3RoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A9MD09PXQmJjE9PT1lPzA6akgoKHQrZSkqbixuLHRoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AsdkcpfV9wb3NpdGlvbmluZ1NldHRsZWQoKXt0aGlzLl9jYWxjdWxhdGVPdmVybGF5T2Zmc2V0WCgpLHRoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A9dGhpcy5fc2Nyb2xsVG9wfV9wYW5lbERvbmVBbmltYXRpbmcodCl7dGhpcy5wYW5lbE9wZW4/dGhpcy5fc2Nyb2xsVG9wPTA6KHRoaXMuX292ZXJsYXlEaXIub2Zmc2V0WD0wLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKSxzdXBlci5fcGFuZWxEb25lQW5pbWF0aW5nKHQpfV9nZXRDaGFuZ2VFdmVudCh0KXtyZXR1cm4gbmV3IGtHKHRoaXMsdCl9X2NhbGN1bGF0ZU92ZXJsYXlPZmZzZXRYKCl7Y29uc3QgdD10aGlzLl9vdmVybGF5RGlyLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZT10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2l6ZSgpLG49dGhpcy5faXNSdGwoKSxvPXRoaXMubXVsdGlwbGU/NTY6MzI7bGV0IGk7aWYodGhpcy5tdWx0aXBsZSlpPTQwO2Vsc2UgaWYodGhpcy5kaXNhYmxlT3B0aW9uQ2VudGVyaW5nKWk9MTY7ZWxzZXtsZXQgdD10aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXXx8dGhpcy5vcHRpb25zLmZpcnN0O2k9dCYmdC5ncm91cD8zMjoxNn1ufHwoaSo9LTEpO2NvbnN0IGE9MC0odC5sZWZ0K2ktKG4/bzowKSkscj10LnJpZ2h0K2ktZS53aWR0aCsobj8wOm8pO2E+MD9pKz1hKzg6cj4wJiYoaS09cis4KSx0aGlzLl9vdmVybGF5RGlyLm9mZnNldFg9TWF0aC5yb3VuZChpKSx0aGlzLl9vdmVybGF5RGlyLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKX1fY2FsY3VsYXRlT3ZlcmxheU9mZnNldFkodCxlLG4pe2NvbnN0IG89dGhpcy5fZ2V0SXRlbUhlaWdodCgpLGk9KG8tdGhpcy5fdHJpZ2dlclJlY3QuaGVpZ2h0KS8yLGE9TWF0aC5mbG9vcih2Ry9vKTtsZXQgcjtyZXR1cm4gdGhpcy5kaXNhYmxlT3B0aW9uQ2VudGVyaW5nPzA6KHI9MD09PXRoaXMuX3Njcm9sbFRvcD90Km86dGhpcy5fc2Nyb2xsVG9wPT09bj8odC0odGhpcy5fZ2V0SXRlbUNvdW50KCktYSkpKm8rKG8tKHRoaXMuX2dldEl0ZW1Db3VudCgpKm8tdkcpJW8pOmUtby8yLE1hdGgucm91bmQoLTEqci1pKSl9X2NoZWNrT3ZlcmxheVdpdGhpblZpZXdwb3J0KHQpe2NvbnN0IGU9dGhpcy5fZ2V0SXRlbUhlaWdodCgpLG49dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNpemUoKSxvPXRoaXMuX3RyaWdnZXJSZWN0LnRvcC04LGk9bi5oZWlnaHQtdGhpcy5fdHJpZ2dlclJlY3QuYm90dG9tLTgsYT1NYXRoLmFicyh0aGlzLl9vZmZzZXRZKSxyPU1hdGgubWluKHRoaXMuX2dldEl0ZW1Db3VudCgpKmUsdkcpLWEtdGhpcy5fdHJpZ2dlclJlY3QuaGVpZ2h0O3I+aT90aGlzLl9hZGp1c3RQYW5lbFVwKHIsaSk6YT5vP3RoaXMuX2FkanVzdFBhbmVsRG93bihhLG8sdCk6dGhpcy5fdHJhbnNmb3JtT3JpZ2luPXRoaXMuX2dldE9yaWdpbkJhc2VkT25PcHRpb24oKX1fYWRqdXN0UGFuZWxVcCh0LGUpe2NvbnN0IG49TWF0aC5yb3VuZCh0LWUpO3RoaXMuX3Njcm9sbFRvcC09bix0aGlzLl9vZmZzZXRZLT1uLHRoaXMuX3RyYW5zZm9ybU9yaWdpbj10aGlzLl9nZXRPcmlnaW5CYXNlZE9uT3B0aW9uKCksdGhpcy5fc2Nyb2xsVG9wPD0wJiYodGhpcy5fc2Nyb2xsVG9wPTAsdGhpcy5fb2Zmc2V0WT0wLHRoaXMuX3RyYW5zZm9ybU9yaWdpbj0iNTAlIGJvdHRvbSAwcHgiKX1fYWRqdXN0UGFuZWxEb3duKHQsZSxuKXtjb25zdCBvPU1hdGgucm91bmQodC1lKTtpZih0aGlzLl9zY3JvbGxUb3ArPW8sdGhpcy5fb2Zmc2V0WSs9byx0aGlzLl90cmFuc2Zvcm1PcmlnaW49dGhpcy5fZ2V0T3JpZ2luQmFzZWRPbk9wdGlvbigpLHRoaXMuX3Njcm9sbFRvcD49bilyZXR1cm4gdGhpcy5fc2Nyb2xsVG9wPW4sdGhpcy5fb2Zmc2V0WT0wLHZvaWQodGhpcy5fdHJhbnNmb3JtT3JpZ2luPSI1MCUgdG9wIDBweCIpfV9jYWxjdWxhdGVPdmVybGF5UG9zaXRpb24oKXtjb25zdCB0PXRoaXMuX2dldEl0ZW1IZWlnaHQoKSxlPXRoaXMuX2dldEl0ZW1Db3VudCgpLG49TWF0aC5taW4oZSp0LHZHKSxvPWUqdC1uO2xldCBpO2k9dGhpcy5lbXB0eT8wOk1hdGgubWF4KHRoaXMub3B0aW9ucy50b0FycmF5KCkuaW5kZXhPZih0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXSksMCksaSs9VkgoaSx0aGlzLm9wdGlvbnMsdGhpcy5vcHRpb25Hcm91cHMpO2NvbnN0IGE9bi8yO3RoaXMuX3Njcm9sbFRvcD10aGlzLl9jYWxjdWxhdGVPdmVybGF5U2Nyb2xsKGksYSxvKSx0aGlzLl9vZmZzZXRZPXRoaXMuX2NhbGN1bGF0ZU92ZXJsYXlPZmZzZXRZKGksYSxvKSx0aGlzLl9jaGVja092ZXJsYXlXaXRoaW5WaWV3cG9ydChvKX1fZ2V0T3JpZ2luQmFzZWRPbk9wdGlvbigpe2NvbnN0IHQ9dGhpcy5fZ2V0SXRlbUhlaWdodCgpLGU9KHQtdGhpcy5fdHJpZ2dlclJlY3QuaGVpZ2h0KS8yO3JldHVybmA1MCUgJHtNYXRoLmFicyh0aGlzLl9vZmZzZXRZKS1lK3QvMn1weCAwcHhgfV9nZXRJdGVtSGVpZ2h0KCl7cmV0dXJuIDMqdGhpcy5fdHJpZ2dlckZvbnRTaXplfV9nZXRJdGVtQ291bnQoKXtyZXR1cm4gdGhpcy5vcHRpb25zLmxlbmd0aCt0aGlzLm9wdGlvbkdyb3Vwcy5sZW5ndGh9fUFHLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShBRykpKShufHxBRyl9fSkoKSxBRy7JtWNtcD10byh7dHlwZTpBRyxzZWxlY3RvcnM6W1sibWF0LXNlbGVjdCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJigkaChvLERHLDUpLCRoKG8sQkgsNSksJGgobyx6SCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5jdXN0b21UcmlnZ2VyPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLm9wdGlvbnM9dCksSmgodD10YigpKSYmKG4ub3B0aW9uR3JvdXBzPXQpfX0saG9zdEF0dHJzOlsicm9sZSIsImNvbWJvYm94IiwiYXJpYS1hdXRvY29tcGxldGUiLCJub25lIiwiYXJpYS1oYXNwb3B1cCIsInRydWUiLDEsIm1hdC1zZWxlY3QiXSxob3N0VmFyczoyMCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVLZXlkb3duKGUpfSkpKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25Gb2N1cygpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbkJsdXIoKX0pKSwyJmUmJihqcCgiaWQiLG4uaWQpKCJ0YWJpbmRleCIsbi50YWJJbmRleCkoImFyaWEtY29udHJvbHMiLG4ucGFuZWxPcGVuP24uaWQrIi1wYW5lbCI6bnVsbCkoImFyaWEtZXhwYW5kZWQiLG4ucGFuZWxPcGVuKSgiYXJpYS1sYWJlbCIsbi5hcmlhTGFiZWx8fG51bGwpKCJhcmlhLXJlcXVpcmVkIixuLnJlcXVpcmVkLnRvU3RyaW5nKCkpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkLnRvU3RyaW5nKCkpKCJhcmlhLWludmFsaWQiLG4uZXJyb3JTdGF0ZSkoImFyaWEtZGVzY3JpYmVkYnkiLG4uX2FyaWFEZXNjcmliZWRieXx8bnVsbCkoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsbi5fZ2V0QXJpYUFjdGl2ZURlc2NlbmRhbnQoKSkscHUoIm1hdC1zZWxlY3QtZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJtYXQtc2VsZWN0LWludmFsaWQiLG4uZXJyb3JTdGF0ZSkoIm1hdC1zZWxlY3QtcmVxdWlyZWQiLG4ucmVxdWlyZWQpKCJtYXQtc2VsZWN0LWVtcHR5IixuLmVtcHR5KSgibWF0LXNlbGVjdC1tdWx0aXBsZSIsbi5tdWx0aXBsZSkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsdGFiSW5kZXg6InRhYkluZGV4In0sZXhwb3J0QXM6WyJtYXRTZWxlY3QiXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOmJWLHVzZUV4aXN0aW5nOkFHfSx7cHJvdmlkZTpSSCx1c2VFeGlzdGluZzpBR31dKSx4cF0sbmdDb250ZW50U2VsZWN0b3JzOlsibWF0LXNlbGVjdC10cmlnZ2VyIiwiKiJdLGRlY2xzOjksdmFyczoxMixjb25zdHM6W1siY2RrLW92ZXJsYXktb3JpZ2luIiwiIiwxLCJtYXQtc2VsZWN0LXRyaWdnZXIiLDMsImNsaWNrIl0sWyJvcmlnaW4iLCJjZGtPdmVybGF5T3JpZ2luIiwidHJpZ2dlciIsIiJdLFsxLCJtYXQtc2VsZWN0LXZhbHVlIiwzLCJuZ1N3aXRjaCJdLFsiY2xhc3MiLCJtYXQtc2VsZWN0LXBsYWNlaG9sZGVyIG1hdC1zZWxlY3QtbWluLWxpbmUiLDQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJtYXQtc2VsZWN0LXZhbHVlLXRleHQiLDMsIm5nU3dpdGNoIiw0LCJuZ1N3aXRjaENhc2UiXSxbMSwibWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIl0sWzEsIm1hdC1zZWxlY3QtYXJyb3ciXSxbImNkay1jb25uZWN0ZWQtb3ZlcmxheSIsIiIsImNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb24iLCIiLCJjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3AiLCIiLCJjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcyIsImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIiwzLCJjZGtDb25uZWN0ZWRPdmVybGF5UGFuZWxDbGFzcyIsImNka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneSIsImNka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW4iLCJjZGtDb25uZWN0ZWRPdmVybGF5T3BlbiIsImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiLCJjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGgiLCJjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WSIsImJhY2tkcm9wQ2xpY2siLCJhdHRhY2giLCJkZXRhY2giXSxbMSwibWF0LXNlbGVjdC1wbGFjZWhvbGRlciIsIm1hdC1zZWxlY3QtbWluLWxpbmUiXSxbMSwibWF0LXNlbGVjdC12YWx1ZS10ZXh0IiwzLCJuZ1N3aXRjaCJdLFsiY2xhc3MiLCJtYXQtc2VsZWN0LW1pbi1saW5lIiw0LCJuZ1N3aXRjaERlZmF1bHQiXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzEsIm1hdC1zZWxlY3QtbWluLWxpbmUiXSxbMSwibWF0LXNlbGVjdC1wYW5lbC13cmFwIl0sWyJyb2xlIiwibGlzdGJveCIsInRhYmluZGV4IiwiLTEiLDMsIm5nQ2xhc3MiLCJrZXlkb3duIl0sWyJwYW5lbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoWm0oX0cpLFJtKDAsImRpdiIsMCwxKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4udG9nZ2xlKCl9KSksUm0oMywiZGl2IiwyKSxRcCg0LGZHLDIsMSwic3BhbiIsMyksUXAoNSxiRywzLDIsInNwYW4iLDQpLEFtKCksUm0oNiwiZGl2Iiw1KSxUbSg3LCJkaXYiLDYpLEFtKCksQW0oKSxRcCg4LHlHLDQsMTQsIm5nLXRlbXBsYXRlIiw3KSxWbSgiYmFja2Ryb3BDbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5jbG9zZSgpfSkpKCJhdHRhY2giLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uQXR0YWNoZWQoKX0pKSgiZGV0YWNoIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmNsb3NlKCl9KSkpLDImZSl7Y29uc3QgdD0kcCgxKTtqcCgiYXJpYS1vd25zIixuLnBhbmVsT3Blbj9uLmlkKyItcGFuZWwiOm51bGwpLHJjKDMpLERtKCJuZ1N3aXRjaCIsbi5lbXB0eSksanAoImlkIixuLl92YWx1ZUlkKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIiwhMCkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsITEpLHJjKDMpLERtKCJjZGtDb25uZWN0ZWRPdmVybGF5UGFuZWxDbGFzcyIsbi5fb3ZlcmxheVBhbmVsQ2xhc3MpKCJjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3kiLG4uX3Njcm9sbFN0cmF0ZWd5KSgiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiIsdCkoImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIixuLnBhbmVsT3BlbikoImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiLG4uX3Bvc2l0aW9ucykoImNka0Nvbm5lY3RlZE92ZXJsYXlNaW5XaWR0aCIsbnVsbD09bi5fdHJpZ2dlclJlY3Q/bnVsbDpuLl90cmlnZ2VyUmVjdC53aWR0aCkoImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRZIixuLl9vZmZzZXRZKX19LGRpcmVjdGl2ZXM6W2ZMLGZNLGdNLGdMLGhNLGFNXSxzdHlsZXM6WycubWF0LXNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlO291dGxpbmU6bm9uZX0ubWF0LXNlbGVjdC10cmlnZ2Vye2Rpc3BsYXk6aW5saW5lLXRhYmxlO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC10cmlnZ2Vyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LXNlbGVjdC12YWx1ZXtkaXNwbGF5OnRhYmxlLWNlbGw7bWF4LXdpZHRoOjA7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1hdC1zZWxlY3QtdmFsdWUtdGV4dHt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTI1JSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsIC5tYXQtc2VsZWN0Om5vdCgubWF0LXNlbGVjdC1lbXB0eSkgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWVtcHR5IC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1lbXB0eSAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVye3RyYW5zaXRpb246bm9uZX0ubWF0LXNlbGVjdC1hcnJvd3t3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NXB4IHNvbGlkO21hcmdpbjowIDRweH0ubWF0LXNlbGVjdC1wYW5lbC13cmFwe2ZsZXgtYmFzaXM6MTAwJX0ubWF0LXNlbGVjdC1wYW5lbHttaW4td2lkdGg6MTEycHg7bWF4LXdpZHRoOjI4MHB4O292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO21heC1oZWlnaHQ6MjU2cHg7bWluLXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czo0cHg7b3V0bGluZTowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zZWxlY3QtcGFuZWx7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRncm91cC1sYWJlbCwubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbntmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDozZW07aGVpZ2h0OjNlbX0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtc2VsZWN0Om5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4e2N1cnNvcjpwb2ludGVyfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3dpZHRoOmNhbGMoMTAwJSAtIDE4cHgpfS5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXJ7dHJhbnNpdGlvbjpub25lfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246bm9uZTtkaXNwbGF5OmJsb2NrfS5tYXQtc2VsZWN0LW1pbi1saW5lOmVtcHR5OjpiZWZvcmV7Y29udGVudDoiICI7d2hpdGUtc3BhY2U6cHJlO3dpZHRoOjFweDtkaXNwbGF5OmlubGluZS1ibG9jaztvcGFjaXR5OjB9XG4nXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltDRy50cmFuc2Zvcm1QYW5lbFdyYXAsQ0cudHJhbnNmb3JtUGFuZWxdfSxjaGFuZ2VEZXRlY3Rpb246MH0pLEFHLnByb3BEZWNvcmF0b3JzPXtvcHRpb25zOlt7dHlwZTpZYSxhcmdzOltCSCx7ZGVzY2VuZGFudHM6ITB9XX1dLG9wdGlvbkdyb3Vwczpbe3R5cGU6WWEsYXJnczpbekgse2Rlc2NlbmRhbnRzOiEwfV19XSxjdXN0b21UcmlnZ2VyOlt7dHlwZTpxYSxhcmdzOltER119XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChBRyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtc2VsZWN0IixleHBvcnRBczoibWF0U2VsZWN0Iix0ZW1wbGF0ZTonXHgzYyEtLVxuIE5vdGUgdGhhdCB0aGUgc2VsZWN0IHRyaWdnZXIgZWxlbWVudCBzcGVjaWZpZXMgYGFyaWEtb3duc2AgcG9pbnRpbmcgdG8gdGhlIGxpc3Rib3ggb3ZlcmxheS5cbiBXaGlsZSBhcmlhLW93bnMgaXMgbm90IHJlcXVpcmVkIGZvciB0aGUgQVJJQSAxLjIgYHJvbGU9ImNvbWJvYm94ImAgaW50ZXJhY3Rpb24gcGF0dGVybixcbiBpdCBmaXhlcyBhbiBpc3N1ZSB3aXRoIFZvaWNlT3ZlciB3aGVuIHRoZSBzZWxlY3QgYXBwZWFycyBpbnNpZGUgb2YgYW4gYGFyaWEtbW9kZWw9InRydWUiYFxuIGVsZW1lbnQgKGUuZy4gYSBkaWFsb2cpLiBXaXRob3V0IHRoaXMgYGFyaWEtb3duc2AsIHRoZSBgYXJpYS1tb2RhbGAgb24gYSBkaWFsb2cgcHJldmVudHNcbiBWb2ljZU92ZXIgZnJvbSAic2VlaW5nIiB0aGUgc2VsZWN0XCdzIGxpc3Rib3ggb3ZlcmxheSBmb3IgYXJpYS1hY3RpdmVkZXNjZW5kYW50LlxuIFVzaW5nIGBhcmlhLW93bnNgIHJlLXBhcmVudHMgdGhlIHNlbGVjdCBvdmVybGF5IHNvIHRoYXQgaXQgd29ya3MgYWdhaW4uXG4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzIwNjk0XG4tLVx4M2VcbjxkaXYgY2RrLW92ZXJsYXktb3JpZ2luXG4gICAgIFthdHRyLmFyaWEtb3duc109InBhbmVsT3BlbiA/IGlkICsgXCctcGFuZWxcJyA6IG51bGwiXG4gICAgIGNsYXNzPSJtYXQtc2VsZWN0LXRyaWdnZXIiXG4gICAgIChjbGljayk9InRvZ2dsZSgpIlxuICAgICAjb3JpZ2luPSJjZGtPdmVybGF5T3JpZ2luIlxuICAgICAjdHJpZ2dlcj5cbiAgPGRpdiBjbGFzcz0ibWF0LXNlbGVjdC12YWx1ZSIgW25nU3dpdGNoXT0iZW1wdHkiIFthdHRyLmlkXT0iX3ZhbHVlSWQiPlxuICAgIDxzcGFuIGNsYXNzPSJtYXQtc2VsZWN0LXBsYWNlaG9sZGVyIG1hdC1zZWxlY3QtbWluLWxpbmUiICpuZ1N3aXRjaENhc2U9InRydWUiPnt7cGxhY2Vob2xkZXJ9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz0ibWF0LXNlbGVjdC12YWx1ZS10ZXh0IiAqbmdTd2l0Y2hDYXNlPSJmYWxzZSIgW25nU3dpdGNoXT0iISFjdXN0b21UcmlnZ2VyIj5cbiAgICAgIDxzcGFuIGNsYXNzPSJtYXQtc2VsZWN0LW1pbi1saW5lIiAqbmdTd2l0Y2hEZWZhdWx0Pnt7dHJpZ2dlclZhbHVlfX08L3NwYW4+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9Im1hdC1zZWxlY3QtdHJpZ2dlciIgKm5nU3dpdGNoQ2FzZT0idHJ1ZSI+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz0ibWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIj48ZGl2IGNsYXNzPSJtYXQtc2VsZWN0LWFycm93Ij48L2Rpdj48L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgY2RrLWNvbm5lY3RlZC1vdmVybGF5XG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb25cbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzPSJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzXT0iX292ZXJsYXlQYW5lbENsYXNzIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVNjcm9sbFN0cmF0ZWd5XT0iX3Njcm9sbFN0cmF0ZWd5IlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09Im9yaWdpbiJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT0icGFuZWxPcGVuIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109Il9wb3NpdGlvbnMiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGhdPSJfdHJpZ2dlclJlY3Q/LndpZHRoISJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRZXT0iX29mZnNldFkiXG4gIChiYWNrZHJvcENsaWNrKT0iY2xvc2UoKSJcbiAgKGF0dGFjaCk9Il9vbkF0dGFjaGVkKCkiXG4gIChkZXRhY2gpPSJjbG9zZSgpIj5cbiAgPGRpdiBjbGFzcz0ibWF0LXNlbGVjdC1wYW5lbC13cmFwIiBbQHRyYW5zZm9ybVBhbmVsV3JhcF0+XG4gICAgPGRpdlxuICAgICAgI3BhbmVsXG4gICAgICByb2xlPSJsaXN0Ym94IlxuICAgICAgdGFiaW5kZXg9Ii0xIlxuICAgICAgY2xhc3M9Im1hdC1zZWxlY3QtcGFuZWwge3sgX2dldFBhbmVsVGhlbWUoKSB9fSJcbiAgICAgIFthdHRyLmlkXT0iaWQgKyBcJy1wYW5lbFwnIlxuICAgICAgW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdPSJtdWx0aXBsZSJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPSJhcmlhTGFiZWwgfHwgbnVsbCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09Il9nZXRQYW5lbEFyaWFMYWJlbGxlZGJ5KCkiXG4gICAgICBbbmdDbGFzc109InBhbmVsQ2xhc3MiXG4gICAgICBbQHRyYW5zZm9ybVBhbmVsXT0ibXVsdGlwbGUgPyBcJ3Nob3dpbmctbXVsdGlwbGVcJyA6IFwnc2hvd2luZ1wnIlxuICAgICAgKEB0cmFuc2Zvcm1QYW5lbC5kb25lKT0iX3BhbmVsRG9uZUFuaW1hdGluZ1N0cmVhbS5uZXh0KCRldmVudC50b1N0YXRlKSJcbiAgICAgIFtzdHlsZS50cmFuc2Zvcm1PcmlnaW5dPSJfdHJhbnNmb3JtT3JpZ2luIlxuICAgICAgW3N0eWxlLmZvbnQtc2l6ZS5weF09Il90cmlnZ2VyRm9udFNpemUiXG4gICAgICAoa2V5ZG93bik9Il9oYW5kbGVLZXlkb3duKCRldmVudCkiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4nLGlucHV0czpbImRpc2FibGVkIiwiZGlzYWJsZVJpcHBsZSIsInRhYkluZGV4Il0sZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsaG9zdDp7cm9sZToiY29tYm9ib3giLCJhcmlhLWF1dG9jb21wbGV0ZSI6Im5vbmUiLCJhcmlhLWhhc3BvcHVwIjoidHJ1ZSIsY2xhc3M6Im1hdC1zZWxlY3QiLCJbYXR0ci5pZF0iOiJpZCIsIlthdHRyLnRhYmluZGV4XSI6InRhYkluZGV4IiwiW2F0dHIuYXJpYS1jb250cm9sc10iOidwYW5lbE9wZW4gPyBpZCArICItcGFuZWwiIDogbnVsbCcsIlthdHRyLmFyaWEtZXhwYW5kZWRdIjoicGFuZWxPcGVuIiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJhcmlhTGFiZWwgfHwgbnVsbCIsIlthdHRyLmFyaWEtcmVxdWlyZWRdIjoicmVxdWlyZWQudG9TdHJpbmcoKSIsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiZGlzYWJsZWQudG9TdHJpbmcoKSIsIlthdHRyLmFyaWEtaW52YWxpZF0iOiJlcnJvclN0YXRlIiwiW2F0dHIuYXJpYS1kZXNjcmliZWRieV0iOiJfYXJpYURlc2NyaWJlZGJ5IHx8IG51bGwiLCJbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdIjoiX2dldEFyaWFBY3RpdmVEZXNjZW5kYW50KCkiLCJbY2xhc3MubWF0LXNlbGVjdC1kaXNhYmxlZF0iOiJkaXNhYmxlZCIsIltjbGFzcy5tYXQtc2VsZWN0LWludmFsaWRdIjoiZXJyb3JTdGF0ZSIsIltjbGFzcy5tYXQtc2VsZWN0LXJlcXVpcmVkXSI6InJlcXVpcmVkIiwiW2NsYXNzLm1hdC1zZWxlY3QtZW1wdHldIjoiZW1wdHkiLCJbY2xhc3MubWF0LXNlbGVjdC1tdWx0aXBsZV0iOiJtdWx0aXBsZSIsIihrZXlkb3duKSI6Il9oYW5kbGVLZXlkb3duKCRldmVudCkiLCIoZm9jdXMpIjoiX29uRm9jdXMoKSIsIihibHVyKSI6Il9vbkJsdXIoKSJ9LGFuaW1hdGlvbnM6W0NHLnRyYW5zZm9ybVBhbmVsV3JhcCxDRy50cmFuc2Zvcm1QYW5lbF0scHJvdmlkZXJzOlt7cHJvdmlkZTpiVix1c2VFeGlzdGluZzpBR30se3Byb3ZpZGU6UkgsdXNlRXhpc3Rpbmc6QUd9XSxzdHlsZXM6WycubWF0LXNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlO291dGxpbmU6bm9uZX0ubWF0LXNlbGVjdC10cmlnZ2Vye2Rpc3BsYXk6aW5saW5lLXRhYmxlO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC10cmlnZ2Vyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LXNlbGVjdC12YWx1ZXtkaXNwbGF5OnRhYmxlLWNlbGw7bWF4LXdpZHRoOjA7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1hdC1zZWxlY3QtdmFsdWUtdGV4dHt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTI1JSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsIC5tYXQtc2VsZWN0Om5vdCgubWF0LXNlbGVjdC1lbXB0eSkgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWVtcHR5IC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1lbXB0eSAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVye3RyYW5zaXRpb246bm9uZX0ubWF0LXNlbGVjdC1hcnJvd3t3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NXB4IHNvbGlkO21hcmdpbjowIDRweH0ubWF0LXNlbGVjdC1wYW5lbC13cmFwe2ZsZXgtYmFzaXM6MTAwJX0ubWF0LXNlbGVjdC1wYW5lbHttaW4td2lkdGg6MTEycHg7bWF4LXdpZHRoOjI4MHB4O292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO21heC1oZWlnaHQ6MjU2cHg7bWluLXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czo0cHg7b3V0bGluZTowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zZWxlY3QtcGFuZWx7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRncm91cC1sYWJlbCwubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbntmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDozZW07aGVpZ2h0OjNlbX0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtc2VsZWN0Om5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4e2N1cnNvcjpwb2ludGVyfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3dpZHRoOmNhbGMoMTAwJSAtIDE4cHgpfS5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXJ7dHJhbnNpdGlvbjpub25lfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246bm9uZTtkaXNwbGF5OmJsb2NrfS5tYXQtc2VsZWN0LW1pbi1saW5lOmVtcHR5OjpiZWZvcmV7Y29udGVudDoiICI7d2hpdGUtc3BhY2U6cHJlO3dpZHRoOjFweDtkaXNwbGF5OmlubGluZS1ibG9jaztvcGFjaXR5OjB9XG4nXX1dfV0sbnVsbCx7b3B0aW9uczpbe3R5cGU6WWEsYXJnczpbQkgse2Rlc2NlbmRhbnRzOiEwfV19XSxvcHRpb25Hcm91cHM6W3t0eXBlOllhLGFyZ3M6W3pILHtkZXNjZW5kYW50czohMH1dfV0sY3VzdG9tVHJpZ2dlcjpbe3R5cGU6cWEsYXJnczpbREddfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFRHe31mdW5jdGlvbiBORyh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsInNwYW4iLDUpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUobil7aGkodCk7Y29uc3Qgbz1ZbSgpLiRpbXBsaWNpdDtyZXR1cm4gWW0oKS5vbkFjdGl2ZVBsdWdpblNlbGVjdGlvbihuLG8uaWQpfSkpLGt1KDEpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCkuJGltcGxpY2l0O2pwKCJkYXRhLXBsdWdpbi1pZCIsdC5pZCkscmMoMSksRHUoIiAiLHQudGFiX25hbWUsIiAiKX19ZnVuY3Rpb24gekcodCxlKXsxJnQmJihSbSgwLCJtYXQtdGFiIiwzKSxRcCgxLE5HLDIsMiwibmctdGVtcGxhdGUiLDQpLEFtKCkpLDImdCYmRG0oImRpc2FibGVkIiwhZS4kaW1wbGljaXQuZW5hYmxlZCl9ZnVuY3Rpb24gSUcodCxlKXtpZigxJnQmJihSbSgwLCJtYXQtb3B0aW9uIiw5KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7RG0oInZhbHVlIix0LmlkKSxqcCgiZGF0YS1wbHVnaW4taWQiLHQuaWQpLHJjKDEpLER1KCIgIix0LnRhYl9uYW1lLCIgIil9fWZ1bmN0aW9uIEhHKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwibWF0LWZvcm0tZmllbGQiLDYpLFJtKDEsIm1hdC1sYWJlbCIpLGt1KDIsIkluYWN0aXZlIiksQW0oKSxSbSgzLCJtYXQtc2VsZWN0Iiw3KSxWbSgic2VsZWN0aW9uQ2hhbmdlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vbkRpc2FibGVkUGx1Z2luU2VsZWN0aW9uQ2hhbmdlZChuKX0pKSxRcCg0LElHLDIsMywibWF0LW9wdGlvbiIsOCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO3JjKDMpLERtKCJ2YWx1ZSIsdC5zZWxlY3RlZFBsdWdpbikscmMoMSksRG0oIm5nRm9yT2YiLHQuZGlzYWJsZWRQbHVnaW5zKX19VEcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRHKX0sVEcuybVtb2Q9YW8oe3R5cGU6VEd9KSxURy7JtWluaj12bih7cHJvdmlkZXJzOltQR10saW1wb3J0czpbW1dNLHlMLFVILFhJXSx5RixUVixVSCxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFRHLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV00seUwsVUgsWEldLGV4cG9ydHM6W3lGLFRWLEFHLEVHLFVILFhJXSxkZWNsYXJhdGlvbnM6W0FHLEVHXSxwcm92aWRlcnM6W1BHXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFRHLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bQUcsRUddfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1dNLHlMLFVILFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVyblt5RixUVixBRyxFRyxVSCxYSV19fSk7Y2xhc3MgRkd7Y29uc3RydWN0b3IoKXt0aGlzLm9uUGx1Z2luU2VsZWN0aW9uQ2hhbmdlZD1uZXcgTGh9Z2V0QWN0aXZlUGx1Z2luSW5kZXgoKXtyZXR1cm4gdGhpcy5hY3RpdmVQbHVnaW5zLmZpbmRJbmRleCgoKHtpZDp0fSk9PnQ9PT10aGlzLnNlbGVjdGVkUGx1Z2luKSl9b25BY3RpdmVQbHVnaW5TZWxlY3Rpb24odCxlKXt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZSl9b25EaXNhYmxlZFBsdWdpblNlbGVjdGlvbkNoYW5nZWQodCl7dGhpcy5vblBsdWdpblNlbGVjdGlvbkNoYW5nZWQuZW1pdCh0LnZhbHVlKX19RkcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEZHKX0sRkcuybVjbXA9dG8oe3R5cGU6Rkcsc2VsZWN0b3JzOltbInBsdWdpbi1zZWxlY3Rvci1jb21wb25lbnQiXV0saW5wdXRzOnthY3RpdmVQbHVnaW5zOiJhY3RpdmVQbHVnaW5zIixkaXNhYmxlZFBsdWdpbnM6ImRpc2FibGVkUGx1Z2lucyIsc2VsZWN0ZWRQbHVnaW46InNlbGVjdGVkUGx1Z2luIn0sb3V0cHV0czp7b25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkOiJvblBsdWdpblNlbGVjdGlvbkNoYW5nZWQifSxkZWNsczozLHZhcnM6Myxjb25zdHM6W1siYW5pbWF0aW9uRHVyYXRpb24iLCIxMDBtcyIsMSwiYWN0aXZlLXBsdWdpbi1saXN0IiwzLCJzZWxlY3RlZEluZGV4Il0sWzMsImRpc2FibGVkIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImZsb2F0TGFiZWwiLCJuZXZlciIsNCwibmdJZiJdLFszLCJkaXNhYmxlZCJdLFsibWF0LXRhYi1sYWJlbCIsIiJdLFsxLCJwbHVnaW4tbmFtZSIsMywiY2xpY2siXSxbImZsb2F0TGFiZWwiLCJuZXZlciJdLFszLCJ2YWx1ZSIsInNlbGVjdGlvbkNoYW5nZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtYXQtdGFiLWdyb3VwIiwwKSxRcCgxLHpHLDIsMSwibWF0LXRhYiIsMSksQW0oKSxRcCgyLEhHLDUsMiwibWF0LWZvcm0tZmllbGQiLDIpKSwyJmUmJihEbSgic2VsZWN0ZWRJbmRleCIsbi5nZXRBY3RpdmVQbHVnaW5JbmRleCgpKSxyYygxKSxEbSgibmdGb3JPZiIsbi5hY3RpdmVQbHVnaW5zKSxyYygxKSxEbSgibmdJZiIsbi5kaXNhYmxlZFBsdWdpbnMubGVuZ3RoPjApKX0sZGlyZWN0aXZlczpbRkIsbE0sZE0sU0IsUEIsQVYsdlYsQUcsQkhdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2ZvbnQtc2l6ZToxNHB4O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn1tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17ZmxleDowIDA7bWFyZ2luLXRvcDo1cHg7d2lkdGg6MTMwcHh9bWF0LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgbWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV0sIG1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LmFjdGl2ZS1wbHVnaW4tbGlzdFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24tc2VsZjpzdHJldGNoO2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3c6aGlkZGVufS5wbHVnaW4tbmFtZVtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjAgMTJweDt3aWR0aDoxMDAlfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QubWF0LXByaW1hcnkgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1sYWJlbCwgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1saW5re2NvbG9yOmluaGVyaXQ7b3BhY2l0eTouN31bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItbGFiZWwtYWN0aXZlLCBbX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1sYWJlbC1hY3RpdmV7b3BhY2l0eToxfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6Y3VycmVudENvbG9yfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWR7dmlzaWJpbGl0eTpoaWRkZW59W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1kaXNhYmxlZHtkaXNwbGF5Om5vbmV9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWxpc3QsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC10YWItaGVhZGVyLCBbX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtdGFiLWxhYmVscywgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1sYWJlbHtoZWlnaHQ6MTAwJX1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtdGFiLWxhYmVse21pbi13aWR0aDo0OHB4O3BhZGRpbmc6MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1sYWJlbC1jb250ZW50e2hlaWdodDoxMDAlfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGlzdHtwYWRkaW5nOjAgMzZweH1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyPjpmaXJzdC1jaGlsZCwgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj4ubWF0LXRhYi1sYWJlbC1jb250YWluZXIsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+Omxhc3QtY2hpbGR7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj46Zmlyc3QtY2hpbGQsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+Lm1hdC10YWItbGFiZWwtY29udGFpbmVye2xlZnQ6MH1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyPjpsYXN0LWNoaWxkLCBbX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyPi5tYXQtdGFiLWxhYmVsLWNvbnRhaW5lcntyaWdodDowfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9J119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEZHLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InBsdWdpbi1zZWxlY3Rvci1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL3BsdWdpbl9zZWxlY3Rvcl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9wbHVnaW5fc2VsZWN0b3JfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLHthY3RpdmVQbHVnaW5zOlt7dHlwZTp4eX1dLGRpc2FibGVkUGx1Z2luczpbe3R5cGU6eHl9XSxzZWxlY3RlZFBsdWdpbjpbe3R5cGU6eHl9XSxvblBsdWdpblNlbGVjdGlvbkNoYW5nZWQ6W3t0eXBlOk95fV19KTtjb25zdCBMRz1adyh2UiwodD0+T2JqZWN0LmtleXModCkubWFwKChlPT5PYmplY3QuYXNzaWduKHt9LHtpZDplfSx0W2VdKSkpKSksQkc9WncoTEcsKHQ9PnQuZmlsdGVyKCh0PT4hdC5lbmFibGVkKSkpKTtjbGFzcyBWR3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hY3RpdmVQbHVnaW4kPXRoaXMuc3RvcmUucGlwZShGdyhNUikpLHRoaXMucGx1Z2lucyQ9dGhpcy5zdG9yZS5waXBlKEZ3KExHKSksdGhpcy5kaXNhYmxlZFBsdWdpbnMkPXRoaXMuc3RvcmUucGlwZShGdyhCRykpfW9uUGx1Z2luU2VsZWN0aW9uQ2hhbmdlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goX0Uoe3BsdWdpbjp0fSkpfX1mdW5jdGlvbiBqRyh0LGUpe31WRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VkcpKFNtKEl3KSl9LFZHLsm1Y21wPXRvKHt0eXBlOlZHLHNlbGVjdG9yczpbWyJwbHVnaW4tc2VsZWN0b3IiXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywiYWN0aXZlUGx1Z2lucyIsImRpc2FibGVkUGx1Z2lucyIsInNlbGVjdGVkUGx1Z2luIiwib25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJwbHVnaW4tc2VsZWN0b3ItY29tcG9uZW50IiwwKSxWbSgib25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblBsdWdpblNlbGVjdGlvbkNoYW5nZShlKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJhY3RpdmVQbHVnaW5zIixUaCgxLDMsbi5wbHVnaW5zJCkpKCJkaXNhYmxlZFBsdWdpbnMiLFRoKDIsNSxuLmRpc2FibGVkUGx1Z2lucyQpKSgic2VsZWN0ZWRQbHVnaW4iLFRoKDMsNyxuLmFjdGl2ZVBsdWdpbiQpKX0sZGlyZWN0aXZlczpbRkddLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWRyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJwbHVnaW4tc2VsZWN0b3IiLHRlbXBsYXRlOidcbiAgICA8cGx1Z2luLXNlbGVjdG9yLWNvbXBvbmVudFxuICAgICAgW2FjdGl2ZVBsdWdpbnNdPSJwbHVnaW5zJCB8IGFzeW5jIlxuICAgICAgW2Rpc2FibGVkUGx1Z2luc109ImRpc2FibGVkUGx1Z2lucyQgfCBhc3luYyJcbiAgICAgIFtzZWxlY3RlZFBsdWdpbl09ImFjdGl2ZVBsdWdpbiQgfCBhc3luYyJcbiAgICAgIChvblBsdWdpblNlbGVjdGlvbkNoYW5nZWQpPSJvblBsdWdpblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpIlxuICAgID48L3BsdWdpbi1zZWxlY3Rvci1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgVUd7Y29uc3RydWN0b3IoKXt0aGlzLnJvbGU9ImRpYWxvZyIsdGhpcy5wYW5lbENsYXNzPSIiLHRoaXMuaGFzQmFja2Ryb3A9ITAsdGhpcy5iYWNrZHJvcENsYXNzPSIiLHRoaXMuZGlzYWJsZUNsb3NlPSExLHRoaXMud2lkdGg9IiIsdGhpcy5oZWlnaHQ9IiIsdGhpcy5tYXhXaWR0aD0iODB2dyIsdGhpcy5kYXRhPW51bGwsdGhpcy5hcmlhRGVzY3JpYmVkQnk9bnVsbCx0aGlzLmFyaWFMYWJlbGxlZEJ5PW51bGwsdGhpcy5hcmlhTGFiZWw9bnVsbCx0aGlzLmF1dG9Gb2N1cz0hMCx0aGlzLnJlc3RvcmVGb2N1cz0hMCx0aGlzLmNsb3NlT25OYXZpZ2F0aW9uPSEwfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgR0c9e2RpYWxvZ0NvbnRhaW5lcjpueCgiZGlhbG9nQ29udGFpbmVyIixbcngoInZvaWQsIGV4aXQiLGF4KHtvcGFjaXR5OjAsdHJhbnNmb3JtOiJzY2FsZSgwLjcpIn0pKSxyeCgiZW50ZXIiLGF4KHt0cmFuc2Zvcm06Im5vbmUifSkpLGx4KCIqID0+IGVudGVyIixveCgiMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiLGF4KHt0cmFuc2Zvcm06Im5vbmUiLG9wYWNpdHk6MX0pKSksbHgoIiogPT4gdm9pZCwgKiA9PiBleGl0IixveCgiNzVtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSkiLGF4KHtvcGFjaXR5OjB9KSkpXSl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBXRygpe3Rocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGF0dGFjaCBkaWFsb2cgY29udGVudCBhZnRlciBjb250ZW50IGlzIGFscmVhZHkgYXR0YWNoZWQiKX1jbGFzcyBZRyBleHRlbmRzIFBGe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhKXtzdXBlcigpLHRoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9mb2N1c1RyYXBGYWN0b3J5PWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9bix0aGlzLl9jb25maWc9aSx0aGlzLl9mb2N1c01vbml0b3I9YSx0aGlzLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQ9bmV3IExoLHRoaXMuX2VsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkPW51bGwsdGhpcy5fY2xvc2VJbnRlcmFjdGlvblR5cGU9bnVsbCx0aGlzLmF0dGFjaERvbVBvcnRhbD10PT4odGhpcy5fcG9ydGFsT3V0bGV0Lmhhc0F0dGFjaGVkKCkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmV0coKSx0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoRG9tUG9ydGFsKHQpKSx0aGlzLl9hcmlhTGFiZWxsZWRCeT1pLmFyaWFMYWJlbGxlZEJ5fHxudWxsLHRoaXMuX2RvY3VtZW50PW99X2luaXRpYWxpemVXaXRoQXR0YWNoZWRDb250ZW50KCl7dGhpcy5fc2V0dXBGb2N1c1RyYXAoKSx0aGlzLl9jYXB0dXJlUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCksdGhpcy5fZm9jdXNEaWFsb2dDb250YWluZXIoKX1hdHRhY2hDb21wb25lbnRQb3J0YWwodCl7cmV0dXJuIHRoaXMuX3BvcnRhbE91dGxldC5oYXNBdHRhY2hlZCgpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJldHKCksdGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaENvbXBvbmVudFBvcnRhbCh0KX1hdHRhY2hUZW1wbGF0ZVBvcnRhbCh0KXtyZXR1cm4gdGhpcy5fcG9ydGFsT3V0bGV0Lmhhc0F0dGFjaGVkKCkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmV0coKSx0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwodCl9X3JlY2FwdHVyZUZvY3VzKCl7dGhpcy5fY29udGFpbnNGb2N1cygpfHwoIXRoaXMuX2NvbmZpZy5hdXRvRm9jdXN8fCF0aGlzLl9mb2N1c1RyYXAuZm9jdXNJbml0aWFsRWxlbWVudCgpKSYmdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCl9X3RyYXBGb2N1cygpe3RoaXMuX2NvbmZpZy5hdXRvRm9jdXM/dGhpcy5fZm9jdXNUcmFwLmZvY3VzSW5pdGlhbEVsZW1lbnRXaGVuUmVhZHkoKTp0aGlzLl9jb250YWluc0ZvY3VzKCl8fHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfV9yZXN0b3JlRm9jdXMoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkO2lmKHRoaXMuX2NvbmZpZy5yZXN0b3JlRm9jdXMmJnQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmZvY3VzKXtjb25zdCBlPUZ6KCksbj10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7ZSYmZSE9PXRoaXMuX2RvY3VtZW50LmJvZHkmJmUhPT1uJiYhbi5jb250YWlucyhlKXx8KHRoaXMuX2ZvY3VzTW9uaXRvcj8odGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHQsdGhpcy5fY2xvc2VJbnRlcmFjdGlvblR5cGUpLHRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlPW51bGwpOnQuZm9jdXMoKSl9dGhpcy5fZm9jdXNUcmFwJiZ0aGlzLl9mb2N1c1RyYXAuZGVzdHJveSgpfV9zZXR1cEZvY3VzVHJhcCgpe3RoaXMuX2ZvY3VzVHJhcD10aGlzLl9mb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpfV9jYXB0dXJlUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCl7dGhpcy5fZG9jdW1lbnQmJih0aGlzLl9lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZD1GeigpKX1fZm9jdXNEaWFsb2dDb250YWluZXIoKXt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMmJnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfV9jb250YWluc0ZvY3VzKCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsZT1GeigpO3JldHVybiB0PT09ZXx8dC5jb250YWlucyhlKX19WUcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFlHKShTbShoZyksU20ockkpLFNtKFVnKSxTbShaXyw4KSxTbShVRyksU20oU0kpKX0sWUcuybVkaXI9bG8oe3R5cGU6WUcsdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKERGLDcpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX3BvcnRhbE91dGxldD10LmZpcnN0KX19LGZlYXR1cmVzOlt4cF19KSxZRy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpySX0se3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlVHfSx7dHlwZTpTSX1dLFlHLnByb3BEZWNvcmF0b3JzPXtfcG9ydGFsT3V0bGV0Olt7dHlwZTpaYSxhcmdzOltERix7c3RhdGljOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChZRyxbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOnJJfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6VUd9LHt0eXBlOlNJfV19KSx7X3BvcnRhbE91dGxldDpbe3R5cGU6WmEsYXJnczpbREYse3N0YXRpYzohMH1dfV19KTtjbGFzcyBxRyBleHRlbmRzIFlHe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9zdGF0ZT0iZW50ZXIifV9vbkFuaW1hdGlvbkRvbmUoe3RvU3RhdGU6dCx0b3RhbFRpbWU6ZX0peyJlbnRlciI9PT10Pyh0aGlzLl90cmFwRm9jdXMoKSx0aGlzLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQubmV4dCh7c3RhdGU6Im9wZW5lZCIsdG90YWxUaW1lOmV9KSk6ImV4aXQiPT09dCYmKHRoaXMuX3Jlc3RvcmVGb2N1cygpLHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5uZXh0KHtzdGF0ZToiY2xvc2VkIix0b3RhbFRpbWU6ZX0pKX1fb25BbmltYXRpb25TdGFydCh7dG9TdGF0ZTp0LHRvdGFsVGltZTplfSl7ImVudGVyIj09PXQ/dGhpcy5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLm5leHQoe3N0YXRlOiJvcGVuaW5nIix0b3RhbFRpbWU6ZX0pOiJleGl0IiE9PXQmJiJ2b2lkIiE9PXR8fHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5uZXh0KHtzdGF0ZToiY2xvc2luZyIsdG90YWxUaW1lOmV9KX1fc3RhcnRFeGl0QW5pbWF0aW9uKCl7dGhpcy5fc3RhdGU9ImV4aXQiLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfX1xRy7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEocUcpKSkobnx8cUcpfX0pKCkscUcuybVjbXA9dG8oe3R5cGU6cUcsc2VsZWN0b3JzOltbIm1hdC1kaWFsb2ctY29udGFpbmVyIl1dLGhvc3RBdHRyczpbInRhYmluZGV4IiwiLTEiLCJhcmlhLW1vZGFsIiwidHJ1ZSIsMSwibWF0LWRpYWxvZy1jb250YWluZXIiXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZqbSgiQGRpYWxvZ0NvbnRhaW5lci5zdGFydCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uQW5pbWF0aW9uU3RhcnQoZSl9KSkoIkBkaWFsb2dDb250YWluZXIuZG9uZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uQW5pbWF0aW9uRG9uZShlKX0pKSwyJmUmJihUdSgiaWQiLG4uX2lkKSxqcCgicm9sZSIsbi5fY29uZmlnLnJvbGUpKCJhcmlhLWxhYmVsbGVkYnkiLG4uX2NvbmZpZy5hcmlhTGFiZWw/bnVsbDpuLl9hcmlhTGFiZWxsZWRCeSkoImFyaWEtbGFiZWwiLG4uX2NvbmZpZy5hcmlhTGFiZWwpKCJhcmlhLWRlc2NyaWJlZGJ5IixuLl9jb25maWcuYXJpYURlc2NyaWJlZEJ5fHxudWxsKSxOdSgiQGRpYWxvZ0NvbnRhaW5lciIsbi5fc3RhdGUpKX0sZmVhdHVyZXM6W3hwXSxkZWNsczoxLHZhcnM6MCxjb25zdHM6W1siY2RrUG9ydGFsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlFwKDAsakcsMCwwLCJuZy10ZW1wbGF0ZSIsMCl9LGRpcmVjdGl2ZXM6W0RGXSxzdHlsZXM6WyIubWF0LWRpYWxvZy1jb250YWluZXJ7ZGlzcGxheTpibG9jaztwYWRkaW5nOjI0cHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmF1dG87b3V0bGluZTowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWluLWhlaWdodDppbmhlcml0O21heC1oZWlnaHQ6aW5oZXJpdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZGlhbG9nLWNvbnRhaW5lcntvdXRsaW5lOnNvbGlkIDFweH0ubWF0LWRpYWxvZy1jb250ZW50e2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjAgLTI0cHg7cGFkZGluZzowIDI0cHg7bWF4LWhlaWdodDo2NXZoO292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Lm1hdC1kaWFsb2ctdGl0bGV7bWFyZ2luOjAgMCAyMHB4O2Rpc3BsYXk6YmxvY2t9Lm1hdC1kaWFsb2ctYWN0aW9uc3twYWRkaW5nOjhweCAwO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttaW4taGVpZ2h0OjUycHg7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Y29udGVudC1ib3g7bWFyZ2luLWJvdHRvbTotMjRweH0ubWF0LWRpYWxvZy1hY3Rpb25zW2FsaWduPWVuZF17anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5tYXQtZGlhbG9nLWFjdGlvbnNbYWxpZ249Y2VudGVyXXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5tYXQtZGlhbG9nLWFjdGlvbnMgLm1hdC1idXR0b24tYmFzZSsubWF0LWJ1dHRvbi1iYXNlLC5tYXQtZGlhbG9nLWFjdGlvbnMgLm1hdC1tZGMtYnV0dG9uLWJhc2UrLm1hdC1tZGMtYnV0dG9uLWJhc2V7bWFyZ2luLWxlZnQ6OHB4fVtkaXI9cnRsXSAubWF0LWRpYWxvZy1hY3Rpb25zIC5tYXQtYnV0dG9uLWJhc2UrLm1hdC1idXR0b24tYmFzZSxbZGlyPXJ0bF0gLm1hdC1kaWFsb2ctYWN0aW9ucyAubWF0LW1kYy1idXR0b24tYmFzZSsubWF0LW1kYy1idXR0b24tYmFzZXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo4cHh9XG4iXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltHRy5kaWFsb2dDb250YWluZXJdfX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocUcsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWRpYWxvZy1jb250YWluZXIiLHRlbXBsYXRlOiI8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+XG4iLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxhbmltYXRpb25zOltHRy5kaWFsb2dDb250YWluZXJdLGhvc3Q6e2NsYXNzOiJtYXQtZGlhbG9nLWNvbnRhaW5lciIsdGFiaW5kZXg6Ii0xIiwiYXJpYS1tb2RhbCI6InRydWUiLCJbaWRdIjoiX2lkIiwiW2F0dHIucm9sZV0iOiJfY29uZmlnLnJvbGUiLCJbYXR0ci5hcmlhLWxhYmVsbGVkYnldIjoiX2NvbmZpZy5hcmlhTGFiZWwgPyBudWxsIDogX2FyaWFMYWJlbGxlZEJ5IiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJfY29uZmlnLmFyaWFMYWJlbCIsIlthdHRyLmFyaWEtZGVzY3JpYmVkYnldIjoiX2NvbmZpZy5hcmlhRGVzY3JpYmVkQnkgfHwgbnVsbCIsIltAZGlhbG9nQ29udGFpbmVyXSI6Il9zdGF0ZSIsIihAZGlhbG9nQ29udGFpbmVyLnN0YXJ0KSI6Il9vbkFuaW1hdGlvblN0YXJ0KCRldmVudCkiLCIoQGRpYWxvZ0NvbnRhaW5lci5kb25lKSI6Il9vbkFuaW1hdGlvbkRvbmUoJGV2ZW50KSJ9LHN0eWxlczpbIi5tYXQtZGlhbG9nLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MjRweDtib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6YXV0bztvdXRsaW5lOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OmluaGVyaXQ7bWF4LWhlaWdodDppbmhlcml0fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1kaWFsb2ctY29udGFpbmVye291dGxpbmU6c29saWQgMXB4fS5tYXQtZGlhbG9nLWNvbnRlbnR7ZGlzcGxheTpibG9jazttYXJnaW46MCAtMjRweDtwYWRkaW5nOjAgMjRweDttYXgtaGVpZ2h0OjY1dmg7b3ZlcmZsb3c6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0ubWF0LWRpYWxvZy10aXRsZXttYXJnaW46MCAwIDIwcHg7ZGlzcGxheTpibG9ja30ubWF0LWRpYWxvZy1hY3Rpb25ze3BhZGRpbmc6OHB4IDA7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21pbi1oZWlnaHQ6NTJweDthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpjb250ZW50LWJveDttYXJnaW4tYm90dG9tOi0yNHB4fS5tYXQtZGlhbG9nLWFjdGlvbnNbYWxpZ249ZW5kXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lm1hdC1kaWFsb2ctYWN0aW9uc1thbGlnbj1jZW50ZXJde2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm1hdC1kaWFsb2ctYWN0aW9ucyAubWF0LWJ1dHRvbi1iYXNlKy5tYXQtYnV0dG9uLWJhc2UsLm1hdC1kaWFsb2ctYWN0aW9ucyAubWF0LW1kYy1idXR0b24tYmFzZSsubWF0LW1kYy1idXR0b24tYmFzZXttYXJnaW4tbGVmdDo4cHh9W2Rpcj1ydGxdIC5tYXQtZGlhbG9nLWFjdGlvbnMgLm1hdC1idXR0b24tYmFzZSsubWF0LWJ1dHRvbi1iYXNlLFtkaXI9cnRsXSAubWF0LWRpYWxvZy1hY3Rpb25zIC5tYXQtbWRjLWJ1dHRvbi1iYXNlKy5tYXQtbWRjLWJ1dHRvbi1iYXNle21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjhweH1cbiJdfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IFpHPTA7Y2xhc3MgWEd7Y29uc3RydWN0b3IodCxlLG49Im1hdC1kaWFsb2ctIitaRysrKXt0aGlzLl9vdmVybGF5UmVmPXQsdGhpcy5fY29udGFpbmVySW5zdGFuY2U9ZSx0aGlzLmlkPW4sdGhpcy5kaXNhYmxlQ2xvc2U9dGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2NvbmZpZy5kaXNhYmxlQ2xvc2UsdGhpcy5fYWZ0ZXJPcGVuZWQ9bmV3IEksdGhpcy5fYWZ0ZXJDbG9zZWQ9bmV3IEksdGhpcy5fYmVmb3JlQ2xvc2VkPW5ldyBJLHRoaXMuX3N0YXRlPTAsZS5faWQ9bixlLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZShjZSgodD0+Im9wZW5lZCI9PT10LnN0YXRlKSksYmUoMSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9hZnRlck9wZW5lZC5uZXh0KCksdGhpcy5fYWZ0ZXJPcGVuZWQuY29tcGxldGUoKX0pKSxlLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZShjZSgodD0+ImNsb3NlZCI9PT10LnN0YXRlKSksYmUoMSkpLnN1YnNjcmliZSgoKCk9PntjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VGYWxsYmFja1RpbWVvdXQpLHRoaXMuX2ZpbmlzaERpYWxvZ0Nsb3NlKCl9KSksdC5kZXRhY2htZW50cygpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9iZWZvcmVDbG9zZWQubmV4dCh0aGlzLl9yZXN1bHQpLHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpLHRoaXMuX2FmdGVyQ2xvc2VkLm5leHQodGhpcy5fcmVzdWx0KSx0aGlzLl9hZnRlckNsb3NlZC5jb21wbGV0ZSgpLHRoaXMuY29tcG9uZW50SW5zdGFuY2U9bnVsbCx0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKX0pKSx0LmtleWRvd25FdmVudHMoKS5waXBlKGNlKCh0PT50LmtleUNvZGU9PT11eiYmIXRoaXMuZGlzYWJsZUNsb3NlJiYhYnoodCkpKSkuc3Vic2NyaWJlKCh0PT57dC5wcmV2ZW50RGVmYXVsdCgpLEtHKHRoaXMsImtleWJvYXJkIil9KSksdC5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuZGlzYWJsZUNsb3NlP3RoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9yZWNhcHR1cmVGb2N1cygpOktHKHRoaXMsIm1vdXNlIil9KSl9Y2xvc2UodCl7dGhpcy5fcmVzdWx0PXQsdGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKGNlKCh0PT4iY2xvc2luZyI9PT10LnN0YXRlKSksYmUoMSkpLnN1YnNjcmliZSgoZT0+e3RoaXMuX2JlZm9yZUNsb3NlZC5uZXh0KHQpLHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpLHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoQmFja2Ryb3AoKSx0aGlzLl9jbG9zZUZhbGxiYWNrVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+dGhpcy5fZmluaXNoRGlhbG9nQ2xvc2UoKSksZS50b3RhbFRpbWUrMTAwKX0pKSx0aGlzLl9zdGF0ZT0xLHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9zdGFydEV4aXRBbmltYXRpb24oKX1hZnRlck9wZW5lZCgpe3JldHVybiB0aGlzLl9hZnRlck9wZW5lZH1hZnRlckNsb3NlZCgpe3JldHVybiB0aGlzLl9hZnRlckNsb3NlZH1iZWZvcmVDbG9zZWQoKXtyZXR1cm4gdGhpcy5fYmVmb3JlQ2xvc2VkfWJhY2tkcm9wQ2xpY2soKXtyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCl9a2V5ZG93bkV2ZW50cygpe3JldHVybiB0aGlzLl9vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKX11cGRhdGVQb3NpdGlvbih0KXtsZXQgZT10aGlzLl9nZXRQb3NpdGlvblN0cmF0ZWd5KCk7cmV0dXJuIHQmJih0LmxlZnR8fHQucmlnaHQpP3QubGVmdD9lLmxlZnQodC5sZWZ0KTplLnJpZ2h0KHQucmlnaHQpOmUuY2VudGVySG9yaXpvbnRhbGx5KCksdCYmKHQudG9wfHx0LmJvdHRvbSk/dC50b3A/ZS50b3AodC50b3ApOmUuYm90dG9tKHQuYm90dG9tKTplLmNlbnRlclZlcnRpY2FsbHkoKSx0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCksdGhpc311cGRhdGVTaXplKHQ9IiIsZT0iIil7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh7d2lkdGg6dCxoZWlnaHQ6ZX0pLHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSx0aGlzfWFkZFBhbmVsQ2xhc3ModCl7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWYuYWRkUGFuZWxDbGFzcyh0KSx0aGlzfXJlbW92ZVBhbmVsQ2xhc3ModCl7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWYucmVtb3ZlUGFuZWxDbGFzcyh0KSx0aGlzfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX3N0YXRlfV9maW5pc2hEaWFsb2dDbG9zZSgpe3RoaXMuX3N0YXRlPTIsdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCl9X2dldFBvc2l0aW9uU3RyYXRlZ3koKXtyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5wb3NpdGlvblN0cmF0ZWd5fX1mdW5jdGlvbiBLRyh0LGUsbil7cmV0dXJuIHZvaWQgMCE9PXQuX2NvbnRhaW5lckluc3RhbmNlJiYodC5fY29udGFpbmVySW5zdGFuY2UuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlPWUpLHQuY2xvc2Uobil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IEpHPW5ldyBHYSgiTWF0RGlhbG9nRGF0YSIpLFFHPW5ldyBHYSgibWF0LWRpYWxvZy1kZWZhdWx0LW9wdGlvbnMiKSwkRz1uZXcgR2EoIm1hdC1kaWFsb2ctc2Nyb2xsLXN0cmF0ZWd5IiksdFc9e3Byb3ZpZGU6JEcsZGVwczpbcExdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gZVcodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpfX07Y2xhc3Mgbld7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwpe3RoaXMuX292ZXJsYXk9dCx0aGlzLl9pbmplY3Rvcj1lLHRoaXMuX2RlZmF1bHRPcHRpb25zPW4sdGhpcy5fcGFyZW50RGlhbG9nPW8sdGhpcy5fb3ZlcmxheUNvbnRhaW5lcj1pLHRoaXMuX2RpYWxvZ1JlZkNvbnN0cnVjdG9yPXIsdGhpcy5fZGlhbG9nQ29udGFpbmVyVHlwZT1zLHRoaXMuX2RpYWxvZ0RhdGFUb2tlbj1sLHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWw9W10sdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbD1uZXcgSSx0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsPW5ldyBJLHRoaXMuX2FyaWFIaWRkZW5FbGVtZW50cz1uZXcgTWFwLHRoaXMuYWZ0ZXJBbGxDbG9zZWQ9UXQoKCgpPT50aGlzLm9wZW5EaWFsb2dzLmxlbmd0aD90aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpOnRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkucGlwZShOZSh2b2lkIDApKSkpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5PWF9Z2V0IG9wZW5EaWFsb2dzKCl7cmV0dXJuIHRoaXMuX3BhcmVudERpYWxvZz90aGlzLl9wYXJlbnREaWFsb2cub3BlbkRpYWxvZ3M6dGhpcy5fb3BlbkRpYWxvZ3NBdFRoaXNMZXZlbH1nZXQgYWZ0ZXJPcGVuZWQoKXtyZXR1cm4gdGhpcy5fcGFyZW50RGlhbG9nP3RoaXMuX3BhcmVudERpYWxvZy5hZnRlck9wZW5lZDp0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsfV9nZXRBZnRlckFsbENsb3NlZCgpe2NvbnN0IHQ9dGhpcy5fcGFyZW50RGlhbG9nO3JldHVybiB0P3QuX2dldEFmdGVyQWxsQ2xvc2VkKCk6dGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbH1vcGVuKHQsZSl7aWYoKGU9KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHQpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKGUsdGhpcy5fZGVmYXVsdE9wdGlvbnN8fG5ldyBVRykpLmlkJiZ0aGlzLmdldERpYWxvZ0J5SWQoZS5pZCkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcihgRGlhbG9nIHdpdGggaWQgIiR7ZS5pZH0iIGV4aXN0cyBhbHJlYWR5LiBUaGUgZGlhbG9nIGlkIG11c3QgYmUgdW5pcXVlLmApO2NvbnN0IG89dGhpcy5fY3JlYXRlT3ZlcmxheShlKSxpPXRoaXMuX2F0dGFjaERpYWxvZ0NvbnRhaW5lcihvLGUpLGE9dGhpcy5fYXR0YWNoRGlhbG9nQ29udGVudCh0LGksbyxlKTtyZXR1cm4gdGhpcy5vcGVuRGlhbG9ncy5sZW5ndGh8fHRoaXMuX2hpZGVOb25EaWFsb2dDb250ZW50RnJvbUFzc2lzdGl2ZVRlY2hub2xvZ3koKSx0aGlzLm9wZW5EaWFsb2dzLnB1c2goYSksYS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKCk9PnRoaXMuX3JlbW92ZU9wZW5EaWFsb2coYSkpKSx0aGlzLmFmdGVyT3BlbmVkLm5leHQoYSksaS5faW5pdGlhbGl6ZVdpdGhBdHRhY2hlZENvbnRlbnQoKSxhfWNsb3NlQWxsKCl7dGhpcy5fY2xvc2VEaWFsb2dzKHRoaXMub3BlbkRpYWxvZ3MpfWdldERpYWxvZ0J5SWQodCl7cmV0dXJuIHRoaXMub3BlbkRpYWxvZ3MuZmluZCgoZT0+ZS5pZD09PXQpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2Nsb3NlRGlhbG9ncyh0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsKSx0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCksdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpfV9jcmVhdGVPdmVybGF5KHQpe2NvbnN0IGU9dGhpcy5fZ2V0T3ZlcmxheUNvbmZpZyh0KTtyZXR1cm4gdGhpcy5fb3ZlcmxheS5jcmVhdGUoZSl9X2dldE92ZXJsYXlDb25maWcodCl7Y29uc3QgZT1uZXcgVkYoe3Bvc2l0aW9uU3RyYXRlZ3k6dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLHNjcm9sbFN0cmF0ZWd5OnQuc2Nyb2xsU3RyYXRlZ3l8fHRoaXMuX3Njcm9sbFN0cmF0ZWd5KCkscGFuZWxDbGFzczp0LnBhbmVsQ2xhc3MsaGFzQmFja2Ryb3A6dC5oYXNCYWNrZHJvcCxkaXJlY3Rpb246dC5kaXJlY3Rpb24sbWluV2lkdGg6dC5taW5XaWR0aCxtaW5IZWlnaHQ6dC5taW5IZWlnaHQsbWF4V2lkdGg6dC5tYXhXaWR0aCxtYXhIZWlnaHQ6dC5tYXhIZWlnaHQsZGlzcG9zZU9uTmF2aWdhdGlvbjp0LmNsb3NlT25OYXZpZ2F0aW9ufSk7cmV0dXJuIHQuYmFja2Ryb3BDbGFzcyYmKGUuYmFja2Ryb3BDbGFzcz10LmJhY2tkcm9wQ2xhc3MpLGV9X2F0dGFjaERpYWxvZ0NvbnRhaW5lcih0LGUpe2NvbnN0IG49cnAuY3JlYXRlKHtwYXJlbnQ6ZSYmZS52aWV3Q29udGFpbmVyUmVmJiZlLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3J8fHRoaXMuX2luamVjdG9yLHByb3ZpZGVyczpbe3Byb3ZpZGU6VUcsdXNlVmFsdWU6ZX1dfSksbz1uZXcgdkYodGhpcy5fZGlhbG9nQ29udGFpbmVyVHlwZSxlLnZpZXdDb250YWluZXJSZWYsbixlLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcik7cmV0dXJuIHQuYXR0YWNoKG8pLmluc3RhbmNlfV9hdHRhY2hEaWFsb2dDb250ZW50KHQsZSxuLG8pe2NvbnN0IGk9bmV3IHRoaXMuX2RpYWxvZ1JlZkNvbnN0cnVjdG9yKG4sZSxvLmlkKTtpZih0IGluc3RhbmNlb2YgWGcpZS5hdHRhY2hUZW1wbGF0ZVBvcnRhbChuZXcgeEYodCxudWxsLHskaW1wbGljaXQ6by5kYXRhLGRpYWxvZ1JlZjppfSkpO2Vsc2V7Y29uc3Qgbj10aGlzLl9jcmVhdGVJbmplY3RvcihvLGksZSksYT1lLmF0dGFjaENvbXBvbmVudFBvcnRhbChuZXcgdkYodCxvLnZpZXdDb250YWluZXJSZWYsbikpO2kuY29tcG9uZW50SW5zdGFuY2U9YS5pbnN0YW5jZX1yZXR1cm4gaS51cGRhdGVTaXplKG8ud2lkdGgsby5oZWlnaHQpLnVwZGF0ZVBvc2l0aW9uKG8ucG9zaXRpb24pLGl9X2NyZWF0ZUluamVjdG9yKHQsZSxuKXtjb25zdCBvPXQmJnQudmlld0NvbnRhaW5lclJlZiYmdC52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLGk9W3twcm92aWRlOnRoaXMuX2RpYWxvZ0NvbnRhaW5lclR5cGUsdXNlVmFsdWU6bn0se3Byb3ZpZGU6dGhpcy5fZGlhbG9nRGF0YVRva2VuLHVzZVZhbHVlOnQuZGF0YX0se3Byb3ZpZGU6dGhpcy5fZGlhbG9nUmVmQ29uc3RydWN0b3IsdXNlVmFsdWU6ZX1dO3JldHVybiF0LmRpcmVjdGlvbnx8byYmby5nZXQoSEksbnVsbCxFbi5PcHRpb25hbCl8fGkucHVzaCh7cHJvdmlkZTpISSx1c2VWYWx1ZTp7dmFsdWU6dC5kaXJlY3Rpb24sY2hhbmdlOkV0KCl9fSkscnAuY3JlYXRlKHtwYXJlbnQ6b3x8dGhpcy5faW5qZWN0b3IscHJvdmlkZXJzOml9KX1fcmVtb3ZlT3BlbkRpYWxvZyh0KXtjb25zdCBlPXRoaXMub3BlbkRpYWxvZ3MuaW5kZXhPZih0KTtlPi0xJiYodGhpcy5vcGVuRGlhbG9ncy5zcGxpY2UoZSwxKSx0aGlzLm9wZW5EaWFsb2dzLmxlbmd0aHx8KHRoaXMuX2FyaWFIaWRkZW5FbGVtZW50cy5mb3JFYWNoKCgodCxlKT0+e3Q/ZS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIix0KTplLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKX0pKSx0aGlzLl9hcmlhSGlkZGVuRWxlbWVudHMuY2xlYXIoKSx0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLm5leHQoKSkpfV9oaWRlTm9uRGlhbG9nQ29udGVudEZyb21Bc3Npc3RpdmVUZWNobm9sb2d5KCl7Y29uc3QgdD10aGlzLl9vdmVybGF5Q29udGFpbmVyLmdldENvbnRhaW5lckVsZW1lbnQoKTtpZih0LnBhcmVudEVsZW1lbnQpe2NvbnN0IGU9dC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO2ZvcihsZXQgbj1lLmxlbmd0aC0xO24+LTE7bi0tKXtsZXQgbz1lW25dO289PT10fHwiU0NSSVBUIj09PW8ubm9kZU5hbWV8fCJTVFlMRSI9PT1vLm5vZGVOYW1lfHxvLmhhc0F0dHJpYnV0ZSgiYXJpYS1saXZlIil8fCh0aGlzLl9hcmlhSGlkZGVuRWxlbWVudHMuc2V0KG8sby5nZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIikpLG8uc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSl9fX1fY2xvc2VEaWFsb2dzKHQpe2xldCBlPXQubGVuZ3RoO2Zvcig7ZS0tOyl0W2VdLmNsb3NlKCl9fW5XLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxuVykoU20ocEwpLFNtKHJwKSxTbSh2b2lkIDApLFNtKHZvaWQgMCksU20oUUYpLFNtKHZvaWQgMCksU20oUWEpLFNtKFFhKSxTbShHYSkpfSxuVy7JtWRpcj1sbyh7dHlwZTpuV30pLG5XLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6cEx9LHt0eXBlOnJwfSx7dHlwZTp2b2lkIDB9LHt0eXBlOnZvaWQgMH0se3R5cGU6UUZ9LHt0eXBlOnZvaWQgMH0se3R5cGU6UWF9LHt0eXBlOlFhfSx7dHlwZTpHYX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoblcsW3t0eXBlOkN5fV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnBMfSx7dHlwZTpycH0se3R5cGU6dm9pZCAwfSx7dHlwZTp2b2lkIDB9LHt0eXBlOlFGfSx7dHlwZTp2b2lkIDB9LHt0eXBlOlFhfSx7dHlwZTpRYX0se3R5cGU6R2F9XX0pLG51bGwpO2NsYXNzIG9XIGV4dGVuZHMgbld7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscil7c3VwZXIodCxlLG8sYSxyLGksWEcscUcsSkcpfX1vVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b1cpKHZyKHBMKSx2cihycCksdnIobEMsOCksdnIoUUcsOCksdnIoJEcpLHZyKG9XLDEyKSx2cihRRikpfSxvVy7JtXByb3Y9TW4oe3Rva2VuOm9XLGZhY3Rvcnk6b1cuybVmYWN9KSxvVy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnBMfSx7dHlwZTpycH0se3R5cGU6bEMsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6VUcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1FHXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbJEddfV19LHt0eXBlOm9XLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpFcn1dfSx7dHlwZTpRRn1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgob1csW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnBMfSx7dHlwZTpycH0se3R5cGU6bEMsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6VUcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1FHXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbJEddfV19LHt0eXBlOm9XLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpFcn1dfSx7dHlwZTpRRn1dfSksbnVsbCk7bGV0IGlXPTA7Y2xhc3MgYVd7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuZGlhbG9nUmVmPXQsdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX2RpYWxvZz1uLHRoaXMudHlwZT0iYnV0dG9uIn1uZ09uSW5pdCgpe3RoaXMuZGlhbG9nUmVmfHwodGhpcy5kaWFsb2dSZWY9Y1codGhpcy5fZWxlbWVudFJlZix0aGlzLl9kaWFsb2cub3BlbkRpYWxvZ3MpKX1uZ09uQ2hhbmdlcyh0KXtjb25zdCBlPXQuX21hdERpYWxvZ0Nsb3NlfHx0Ll9tYXREaWFsb2dDbG9zZVJlc3VsdDtlJiYodGhpcy5kaWFsb2dSZXN1bHQ9ZS5jdXJyZW50VmFsdWUpfV9vbkJ1dHRvbkNsaWNrKHQpe0tHKHRoaXMuZGlhbG9nUmVmLDA9PT10LnNjcmVlblgmJjA9PT10LnNjcmVlblk/ImtleWJvYXJkIjoibW91c2UiLHRoaXMuZGlhbG9nUmVzdWx0KX19YVcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGFXKShTbShYRyw4KSxTbShoZyksU20ob1cpKX0sYVcuybVkaXI9bG8oe3R5cGU6YVcsc2VsZWN0b3JzOltbIiIsIm1hdC1kaWFsb2ctY2xvc2UiLCIiXSxbIiIsIm1hdERpYWxvZ0Nsb3NlIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uQnV0dG9uQ2xpY2soZSl9KSksMiZlJiZqcCgiYXJpYS1sYWJlbCIsbi5hcmlhTGFiZWx8fG51bGwpKCJ0eXBlIixuLnR5cGUpfSxpbnB1dHM6e3R5cGU6InR5cGUiLGRpYWxvZ1Jlc3VsdDpbIm1hdC1kaWFsb2ctY2xvc2UiLCJkaWFsb2dSZXN1bHQiXSxhcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sX21hdERpYWxvZ0Nsb3NlOlsibWF0RGlhbG9nQ2xvc2UiLCJfbWF0RGlhbG9nQ2xvc2UiXX0sZXhwb3J0QXM6WyJtYXREaWFsb2dDbG9zZSJdLGZlYXR1cmVzOltCb119KSxhVy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlhHLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOmhnfSx7dHlwZTpvV31dLGFXLnByb3BEZWNvcmF0b3JzPXthcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSx0eXBlOlt7dHlwZTp4eX1dLGRpYWxvZ1Jlc3VsdDpbe3R5cGU6eHksYXJnczpbIm1hdC1kaWFsb2ctY2xvc2UiXX1dLF9tYXREaWFsb2dDbG9zZTpbe3R5cGU6eHksYXJnczpbIm1hdERpYWxvZ0Nsb3NlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChhVyxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0LWRpYWxvZy1jbG9zZV0sIFttYXREaWFsb2dDbG9zZV0iLGV4cG9ydEFzOiJtYXREaWFsb2dDbG9zZSIsaG9zdDp7IihjbGljaykiOiJfb25CdXR0b25DbGljaygkZXZlbnQpIiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJhcmlhTGFiZWwgfHwgbnVsbCIsIlthdHRyLnR5cGVdIjoidHlwZSJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WEcsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6aGd9LHt0eXBlOm9XfV19KSx7dHlwZTpbe3R5cGU6eHl9XSxkaWFsb2dSZXN1bHQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXQtZGlhbG9nLWNsb3NlIl19XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxfbWF0RGlhbG9nQ2xvc2U6W3t0eXBlOnh5LGFyZ3M6WyJtYXREaWFsb2dDbG9zZSJdfV19KTtjbGFzcyByV3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fZGlhbG9nUmVmPXQsdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX2RpYWxvZz1uLHRoaXMuaWQ9Im1hdC1kaWFsb2ctdGl0bGUtIitpVysrfW5nT25Jbml0KCl7dGhpcy5fZGlhbG9nUmVmfHwodGhpcy5fZGlhbG9nUmVmPWNXKHRoaXMuX2VsZW1lbnRSZWYsdGhpcy5fZGlhbG9nLm9wZW5EaWFsb2dzKSksdGhpcy5fZGlhbG9nUmVmJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e2NvbnN0IHQ9dGhpcy5fZGlhbG9nUmVmLl9jb250YWluZXJJbnN0YW5jZTt0JiYhdC5fYXJpYUxhYmVsbGVkQnkmJih0Ll9hcmlhTGFiZWxsZWRCeT10aGlzLmlkKX0pKX19clcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHJXKShTbShYRyw4KSxTbShoZyksU20ob1cpKX0sclcuybVkaXI9bG8oe3R5cGU6clcsc2VsZWN0b3JzOltbIiIsIm1hdC1kaWFsb2ctdGl0bGUiLCIiXSxbIiIsIm1hdERpYWxvZ1RpdGxlIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LWRpYWxvZy10aXRsZSJdLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJlR1KCJpZCIsbi5pZCl9LGlucHV0czp7aWQ6ImlkIn0sZXhwb3J0QXM6WyJtYXREaWFsb2dUaXRsZSJdfSksclcuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYRyxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpoZ30se3R5cGU6b1d9XSxyVy5wcm9wRGVjb3JhdG9ycz17aWQ6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoclcsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdC1kaWFsb2ctdGl0bGVdLCBbbWF0RGlhbG9nVGl0bGVdIixleHBvcnRBczoibWF0RGlhbG9nVGl0bGUiLGhvc3Q6e2NsYXNzOiJtYXQtZGlhbG9nLXRpdGxlIiwiW2lkXSI6ImlkIn19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYRyxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpoZ30se3R5cGU6b1d9XX0pLHtpZDpbe3R5cGU6eHl9XX0pO2NsYXNzIHNXe31zVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8c1cpfSxzVy7JtWRpcj1sbyh7dHlwZTpzVyxzZWxlY3RvcnM6W1siIiwibWF0LWRpYWxvZy1jb250ZW50IiwiIl0sWyJtYXQtZGlhbG9nLWNvbnRlbnQiXSxbIiIsIm1hdERpYWxvZ0NvbnRlbnQiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtZGlhbG9nLWNvbnRlbnQiXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoc1csW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdC1kaWFsb2ctY29udGVudF0sIG1hdC1kaWFsb2ctY29udGVudCwgW21hdERpYWxvZ0NvbnRlbnRdIixob3N0OntjbGFzczoibWF0LWRpYWxvZy1jb250ZW50In19XX1dLG51bGwsbnVsbCk7Y2xhc3MgbFd7fWZ1bmN0aW9uIGNXKHQsZSl7bGV0IG49dC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7Zm9yKDtuJiYhbi5jbGFzc0xpc3QuY29udGFpbnMoIm1hdC1kaWFsb2ctY29udGFpbmVyIik7KW49bi5wYXJlbnRFbGVtZW50O3JldHVybiBuP2UuZmluZCgodD0+dC5pZD09PW4uaWQpKTpudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bFcpfSxsVy7JtWRpcj1sbyh7dHlwZTpsVyxzZWxlY3RvcnM6W1siIiwibWF0LWRpYWxvZy1hY3Rpb25zIiwiIl0sWyJtYXQtZGlhbG9nLWFjdGlvbnMiXSxbIiIsIm1hdERpYWxvZ0FjdGlvbnMiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtZGlhbG9nLWFjdGlvbnMiXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobFcsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdC1kaWFsb2ctYWN0aW9uc10sIG1hdC1kaWFsb2ctYWN0aW9ucywgW21hdERpYWxvZ0FjdGlvbnNdIixob3N0OntjbGFzczoibWF0LWRpYWxvZy1hY3Rpb25zIn19XX1dLG51bGwsbnVsbCk7Y2xhc3MgZFd7fWRXLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkVyl9LGRXLsm1bW9kPWFvKHt0eXBlOmRXfSksZFcuybVpbmo9dm4oe3Byb3ZpZGVyczpbb1csdFddLGltcG9ydHM6W1t5TCxSRixYSV0sWEldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkVyxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W3lMLFJGLFhJXSxleHBvcnRzOltxRyxhVyxyVyxzVyxsVyxYSV0sZGVjbGFyYXRpb25zOltxRyxhVyxyVyxsVyxzV10scHJvdmlkZXJzOltvVyx0V10sZW50cnlDb21wb25lbnRzOltxR119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhkVyx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW3FHLGFXLHJXLGxXLHNXXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVyblt5TCxSRixYSV19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bcUcsYVcsclcsc1csbFcsWEldfX0pO2NsYXNzIHBXe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fZG9jdW1lbnQ9ZTtjb25zdCBuPXRoaXMuX3RleHRhcmVhPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIiksbz1uLnN0eWxlO28ucG9zaXRpb249ImZpeGVkIixvLnRvcD1vLm9wYWNpdHk9IjAiLG8ubGVmdD0iLTk5OWVtIixuLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksbi52YWx1ZT10LHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobil9Y29weSgpe2NvbnN0IHQ9dGhpcy5fdGV4dGFyZWE7bGV0IGU9ITE7dHJ5e2lmKHQpe2NvbnN0IG49dGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudDt0LnNlbGVjdCgpLHQuc2V0U2VsZWN0aW9uUmFuZ2UoMCx0LnZhbHVlLmxlbmd0aCksZT10aGlzLl9kb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpLG4mJm4uZm9jdXMoKX19Y2F0Y2godCl7fXJldHVybiBlfWRlc3Ryb3koKXtjb25zdCB0PXRoaXMuX3RleHRhcmVhO3QmJih0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0aGlzLl90ZXh0YXJlYT12b2lkIDApfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgbVd7Y29uc3RydWN0b3IodCl7dGhpcy5fZG9jdW1lbnQ9dH1jb3B5KHQpe2NvbnN0IGU9dGhpcy5iZWdpbkNvcHkodCksbj1lLmNvcHkoKTtyZXR1cm4gZS5kZXN0cm95KCksbn1iZWdpbkNvcHkodCl7cmV0dXJuIG5ldyBwVyh0LHRoaXMuX2RvY3VtZW50KX19bVcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG1XKSh2cihaXykpfSxtVy7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgbVcodnIoWl8pKX0sdG9rZW46bVcscHJvdmlkZWRJbjoicm9vdCJ9KSxtVy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobVcsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB1Vz1uZXcgR2EoIkNES19DT1BZX1RPX0NMSVBCT0FSRF9DT05GSUciKTtjbGFzcyBmV3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fY2xpcGJvYXJkPXQsdGhpcy5fbmdab25lPWUsdGhpcy50ZXh0PSIiLHRoaXMuYXR0ZW1wdHM9MSx0aGlzLmNvcGllZD1uZXcgTGgsdGhpcy5fcGVuZGluZz1uZXcgU2V0LG4mJm51bGwhPW4uYXR0ZW1wdHMmJih0aGlzLmF0dGVtcHRzPW4uYXR0ZW1wdHMpfWNvcHkodD10aGlzLmF0dGVtcHRzKXtpZih0PjEpe2xldCBlPXQ7Y29uc3Qgbj10aGlzLl9jbGlwYm9hcmQuYmVnaW5Db3B5KHRoaXMudGV4dCk7dGhpcy5fcGVuZGluZy5hZGQobik7Y29uc3Qgbz0oKT0+e2NvbnN0IHQ9bi5jb3B5KCk7dHx8IS0tZXx8dGhpcy5fZGVzdHJveWVkPyh0aGlzLl9jdXJyZW50VGltZW91dD1udWxsLHRoaXMuX3BlbmRpbmcuZGVsZXRlKG4pLG4uZGVzdHJveSgpLHRoaXMuY29waWVkLmVtaXQodCkpOnRoaXMuX2N1cnJlbnRUaW1lb3V0PXRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnNldFRpbWVvdXQobywxKSkpfTtvKCl9ZWxzZSB0aGlzLmNvcGllZC5lbWl0KHRoaXMuX2NsaXBib2FyZC5jb3B5KHRoaXMudGV4dCkpfW5nT25EZXN0cm95KCl7dGhpcy5fY3VycmVudFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9jdXJyZW50VGltZW91dCksdGhpcy5fcGVuZGluZy5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX3BlbmRpbmcuY2xlYXIoKSx0aGlzLl9kZXN0cm95ZWQ9ITB9fWZXLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmVykoU20obVcpLFNtKGFfKSxTbSh1Vyw4KSl9LGZXLsm1ZGlyPWxvKHt0eXBlOmZXLHNlbGVjdG9yczpbWyIiLCJjZGtDb3B5VG9DbGlwYm9hcmQiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5jb3B5KCl9KSl9LGlucHV0czp7dGV4dDpbImNka0NvcHlUb0NsaXBib2FyZCIsInRleHQiXSxhdHRlbXB0czpbImNka0NvcHlUb0NsaXBib2FyZEF0dGVtcHRzIiwiYXR0ZW1wdHMiXX0sb3V0cHV0czp7Y29waWVkOiJjZGtDb3B5VG9DbGlwYm9hcmRDb3BpZWQifX0pLGZXLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6bVd9LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3VXXX1dfV0sZlcucHJvcERlY29yYXRvcnM9e3RleHQ6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb3B5VG9DbGlwYm9hcmQiXX1dLGF0dGVtcHRzOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29weVRvQ2xpcGJvYXJkQXR0ZW1wdHMiXX1dLGNvcGllZDpbe3R5cGU6T3ksYXJnczpbImNka0NvcHlUb0NsaXBib2FyZENvcGllZCJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZlcsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0NvcHlUb0NsaXBib2FyZF0iLGhvc3Q6eyIoY2xpY2spIjoiY29weSgpIn19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTptV30se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbdVddfV19XX0pLHt0ZXh0Olt7dHlwZTp4eSxhcmdzOlsiY2RrQ29weVRvQ2xpcGJvYXJkIl19XSxhdHRlbXB0czpbe3R5cGU6eHksYXJnczpbImNka0NvcHlUb0NsaXBib2FyZEF0dGVtcHRzIl19XSxjb3BpZWQ6W3t0eXBlOk95LGFyZ3M6WyJjZGtDb3B5VG9DbGlwYm9hcmRDb3BpZWQiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBnV3t9ZnVuY3Rpb24gaFcodCl7cmV0dXJuIEVycm9yKGBVbmFibGUgdG8gZmluZCBpY29uIHdpdGggdGhlIG5hbWUgIiR7dH0iYCl9ZnVuY3Rpb24gYlcodCl7cmV0dXJuIEVycm9yKGBUaGUgVVJMIHByb3ZpZGVkIHRvIE1hdEljb25SZWdpc3RyeSB3YXMgbm90IHRydXN0ZWQgYXMgYSByZXNvdXJjZSBVUkwgdmlhIEFuZ3VsYXIncyBEb21TYW5pdGl6ZXIuIEF0dGVtcHRlZCBVUkwgd2FzICIke3R9Ii5gKX1mdW5jdGlvbiB5Vyh0KXtyZXR1cm4gRXJyb3IoYFRoZSBsaXRlcmFsIHByb3ZpZGVkIHRvIE1hdEljb25SZWdpc3RyeSB3YXMgbm90IHRydXN0ZWQgYXMgc2FmZSBIVE1MIGJ5IEFuZ3VsYXIncyBEb21TYW5pdGl6ZXIuIEF0dGVtcHRlZCBsaXRlcmFsIHdhcyAiJHt0fSIuYCl9Z1cuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGdXKX0sZ1cuybVtb2Q9YW8oe3R5cGU6Z1d9KSxnVy7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnVyxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbZlddLGV4cG9ydHM6W2ZXXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKGdXLHtkZWNsYXJhdGlvbnM6W2ZXXSxleHBvcnRzOltmV119KTtjbGFzcyBfV3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy51cmw9dCx0aGlzLnN2Z1RleHQ9ZSx0aGlzLm9wdGlvbnM9bn19Y2xhc3MgQ1d7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5faHR0cENsaWVudD10LHRoaXMuX3Nhbml0aXplcj1lLHRoaXMuX2Vycm9ySGFuZGxlcj1vLHRoaXMuX3N2Z0ljb25Db25maWdzPW5ldyBNYXAsdGhpcy5faWNvblNldENvbmZpZ3M9bmV3IE1hcCx0aGlzLl9jYWNoZWRJY29uc0J5VXJsPW5ldyBNYXAsdGhpcy5faW5Qcm9ncmVzc1VybEZldGNoZXM9bmV3IE1hcCx0aGlzLl9mb250Q3NzQ2xhc3Nlc0J5QWxpYXM9bmV3IE1hcCx0aGlzLl9yZXNvbHZlcnM9W10sdGhpcy5fZGVmYXVsdEZvbnRTZXRDbGFzcz0ibWF0ZXJpYWwtaWNvbnMiLHRoaXMuX2RvY3VtZW50PW59YWRkU3ZnSWNvbih0LGUsbil7cmV0dXJuIHRoaXMuYWRkU3ZnSWNvbkluTmFtZXNwYWNlKCIiLHQsZSxuKX1hZGRTdmdJY29uTGl0ZXJhbCh0LGUsbil7cmV0dXJuIHRoaXMuYWRkU3ZnSWNvbkxpdGVyYWxJbk5hbWVzcGFjZSgiIix0LGUsbil9YWRkU3ZnSWNvbkluTmFtZXNwYWNlKHQsZSxuLG8pe3JldHVybiB0aGlzLl9hZGRTdmdJY29uQ29uZmlnKHQsZSxuZXcgX1cobixudWxsLG8pKX1hZGRTdmdJY29uUmVzb2x2ZXIodCl7cmV0dXJuIHRoaXMuX3Jlc29sdmVycy5wdXNoKHQpLHRoaXN9YWRkU3ZnSWNvbkxpdGVyYWxJbk5hbWVzcGFjZSh0LGUsbixvKXtjb25zdCBpPXRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShBcy5IVE1MLG4pO2lmKCFpKXRocm93IHlXKG4pO3JldHVybiB0aGlzLl9hZGRTdmdJY29uQ29uZmlnKHQsZSxuZXcgX1coIiIsaSxvKSl9YWRkU3ZnSWNvblNldCh0LGUpe3JldHVybiB0aGlzLmFkZFN2Z0ljb25TZXRJbk5hbWVzcGFjZSgiIix0LGUpfWFkZFN2Z0ljb25TZXRMaXRlcmFsKHQsZSl7cmV0dXJuIHRoaXMuYWRkU3ZnSWNvblNldExpdGVyYWxJbk5hbWVzcGFjZSgiIix0LGUpfWFkZFN2Z0ljb25TZXRJbk5hbWVzcGFjZSh0LGUsbil7cmV0dXJuIHRoaXMuX2FkZFN2Z0ljb25TZXRDb25maWcodCxuZXcgX1coZSxudWxsLG4pKX1hZGRTdmdJY29uU2V0TGl0ZXJhbEluTmFtZXNwYWNlKHQsZSxuKXtjb25zdCBvPXRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShBcy5IVE1MLGUpO2lmKCFvKXRocm93IHlXKGUpO3JldHVybiB0aGlzLl9hZGRTdmdJY29uU2V0Q29uZmlnKHQsbmV3IF9XKCIiLG8sbikpfXJlZ2lzdGVyRm9udENsYXNzQWxpYXModCxlPXQpe3JldHVybiB0aGlzLl9mb250Q3NzQ2xhc3Nlc0J5QWxpYXMuc2V0KHQsZSksdGhpc31jbGFzc05hbWVGb3JGb250QWxpYXModCl7cmV0dXJuIHRoaXMuX2ZvbnRDc3NDbGFzc2VzQnlBbGlhcy5nZXQodCl8fHR9c2V0RGVmYXVsdEZvbnRTZXRDbGFzcyh0KXtyZXR1cm4gdGhpcy5fZGVmYXVsdEZvbnRTZXRDbGFzcz10LHRoaXN9Z2V0RGVmYXVsdEZvbnRTZXRDbGFzcygpe3JldHVybiB0aGlzLl9kZWZhdWx0Rm9udFNldENsYXNzfWdldFN2Z0ljb25Gcm9tVXJsKHQpe2NvbnN0IGU9dGhpcy5fc2FuaXRpemVyLnNhbml0aXplKEFzLlJFU09VUkNFX1VSTCx0KTtpZighZSl0aHJvdyBiVyh0KTtjb25zdCBuPXRoaXMuX2NhY2hlZEljb25zQnlVcmwuZ2V0KGUpO3JldHVybiBuP0V0KE1XKG4pKTp0aGlzLl9sb2FkU3ZnSWNvbkZyb21Db25maWcobmV3IF9XKHQsbnVsbCkpLnBpcGUoRmUoKHQ9PnRoaXMuX2NhY2hlZEljb25zQnlVcmwuc2V0KGUsdCkpKSxJdCgodD0+TVcodCkpKSl9Z2V0TmFtZWRTdmdJY29uKHQsZT0iIil7Y29uc3Qgbj12VyhlLHQpO2xldCBvPXRoaXMuX3N2Z0ljb25Db25maWdzLmdldChuKTtpZihvKXJldHVybiB0aGlzLl9nZXRTdmdGcm9tQ29uZmlnKG8pO2lmKG89dGhpcy5fZ2V0SWNvbkNvbmZpZ0Zyb21SZXNvbHZlcnMoZSx0KSxvKXJldHVybiB0aGlzLl9zdmdJY29uQ29uZmlncy5zZXQobixvKSx0aGlzLl9nZXRTdmdGcm9tQ29uZmlnKG8pO2NvbnN0IGk9dGhpcy5faWNvblNldENvbmZpZ3MuZ2V0KGUpO3JldHVybiBpP3RoaXMuX2dldFN2Z0Zyb21JY29uU2V0Q29uZmlncyh0LGkpOlJ0KGhXKG4pKX1uZ09uRGVzdHJveSgpe3RoaXMuX3Jlc29sdmVycz1bXSx0aGlzLl9zdmdJY29uQ29uZmlncy5jbGVhcigpLHRoaXMuX2ljb25TZXRDb25maWdzLmNsZWFyKCksdGhpcy5fY2FjaGVkSWNvbnNCeVVybC5jbGVhcigpfV9nZXRTdmdGcm9tQ29uZmlnKHQpe3JldHVybiB0LnN2Z1RleHQ/RXQoTVcodGhpcy5fc3ZnRWxlbWVudEZyb21Db25maWcodCkpKTp0aGlzLl9sb2FkU3ZnSWNvbkZyb21Db25maWcodCkucGlwZShJdCgodD0+TVcodCkpKSl9X2dldFN2Z0Zyb21JY29uU2V0Q29uZmlncyh0LGUpe2NvbnN0IG49dGhpcy5fZXh0cmFjdEljb25XaXRoTmFtZUZyb21BbnlTZXQodCxlKTtyZXR1cm4gbj9FdChuKTokdChlLmZpbHRlcigodD0+IXQuc3ZnVGV4dCkpLm1hcCgodD0+dGhpcy5fbG9hZFN2Z0ljb25TZXRGcm9tQ29uZmlnKHQpLnBpcGUocGUoKGU9Pntjb25zdCBuPXRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShBcy5SRVNPVVJDRV9VUkwsdC51cmwpO3JldHVybiB0aGlzLl9lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IobmV3IEVycm9yKGBMb2FkaW5nIGljb24gc2V0IFVSTDogJHtufSBmYWlsZWQ6ICR7ZS5tZXNzYWdlfWApKSxFdChudWxsKX0pKSkpKSkucGlwZShJdCgoKCk9Pntjb25zdCBuPXRoaXMuX2V4dHJhY3RJY29uV2l0aE5hbWVGcm9tQW55U2V0KHQsZSk7aWYoIW4pdGhyb3cgaFcodCk7cmV0dXJuIG59KSkpfV9leHRyYWN0SWNvbldpdGhOYW1lRnJvbUFueVNldCh0LGUpe2ZvcihsZXQgbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtjb25zdCBvPWVbbl07aWYoby5zdmdUZXh0JiZvLnN2Z1RleHQuaW5kZXhPZih0KT4tMSl7Y29uc3QgZT10aGlzLl9zdmdFbGVtZW50RnJvbUNvbmZpZyhvKSxuPXRoaXMuX2V4dHJhY3RTdmdJY29uRnJvbVNldChlLHQsby5vcHRpb25zKTtpZihuKXJldHVybiBufX1yZXR1cm4gbnVsbH1fbG9hZFN2Z0ljb25Gcm9tQ29uZmlnKHQpe3JldHVybiB0aGlzLl9mZXRjaEljb24odCkucGlwZShGZSgoZT0+dC5zdmdUZXh0PWUpKSxJdCgoKCk9PnRoaXMuX3N2Z0VsZW1lbnRGcm9tQ29uZmlnKHQpKSkpfV9sb2FkU3ZnSWNvblNldEZyb21Db25maWcodCl7cmV0dXJuIHQuc3ZnVGV4dD9FdChudWxsKTp0aGlzLl9mZXRjaEljb24odCkucGlwZShGZSgoZT0+dC5zdmdUZXh0PWUpKSl9X2V4dHJhY3RTdmdJY29uRnJvbVNldCh0LGUsbil7Y29uc3Qgbz10LnF1ZXJ5U2VsZWN0b3IoYFtpZD0iJHtlfSJdYCk7aWYoIW8pcmV0dXJuIG51bGw7Y29uc3QgaT1vLmNsb25lTm9kZSghMCk7aWYoaS5yZW1vdmVBdHRyaWJ1dGUoImlkIiksInN2ZyI9PT1pLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHRoaXMuX3NldFN2Z0F0dHJpYnV0ZXMoaSxuKTtpZigic3ltYm9sIj09PWkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4gdGhpcy5fc2V0U3ZnQXR0cmlidXRlcyh0aGlzLl90b1N2Z0VsZW1lbnQoaSksbik7Y29uc3QgYT10aGlzLl9zdmdFbGVtZW50RnJvbVN0cmluZygiPHN2Zz48L3N2Zz4iKTtyZXR1cm4gYS5hcHBlbmRDaGlsZChpKSx0aGlzLl9zZXRTdmdBdHRyaWJ1dGVzKGEsbil9X3N2Z0VsZW1lbnRGcm9tU3RyaW5nKHQpe2NvbnN0IGU9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7ZS5pbm5lckhUTUw9dDtjb25zdCBuPWUucXVlcnlTZWxlY3Rvcigic3ZnIik7aWYoIW4pdGhyb3cgRXJyb3IoIjxzdmc+IHRhZyBub3QgZm91bmQiKTtyZXR1cm4gbn1fdG9TdmdFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5fc3ZnRWxlbWVudEZyb21TdHJpbmcoIjxzdmc+PC9zdmc+Iiksbj10LmF0dHJpYnV0ZXM7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspe2NvbnN0e25hbWU6byx2YWx1ZTppfT1uW3RdOyJpZCIhPT1vJiZlLnNldEF0dHJpYnV0ZShvLGkpfWZvcihsZXQgbj0wO248dC5jaGlsZE5vZGVzLmxlbmd0aDtuKyspdC5jaGlsZE5vZGVzW25dLm5vZGVUeXBlPT09dGhpcy5fZG9jdW1lbnQuRUxFTUVOVF9OT0RFJiZlLmFwcGVuZENoaWxkKHQuY2hpbGROb2Rlc1tuXS5jbG9uZU5vZGUoITApKTtyZXR1cm4gZX1fc2V0U3ZnQXR0cmlidXRlcyh0LGUpe3JldHVybiB0LnNldEF0dHJpYnV0ZSgiZml0IiwiIiksdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIjEwMCUiKSx0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCIxMDAlIiksdC5zZXRBdHRyaWJ1dGUoInByZXNlcnZlQXNwZWN0UmF0aW8iLCJ4TWlkWU1pZCBtZWV0IiksdC5zZXRBdHRyaWJ1dGUoImZvY3VzYWJsZSIsImZhbHNlIiksZSYmZS52aWV3Qm94JiZ0LnNldEF0dHJpYnV0ZSgidmlld0JveCIsZS52aWV3Qm94KSx0fV9mZXRjaEljb24odCl7dmFyIGU7Y29uc3R7dXJsOm4sb3B0aW9uczpvfT10LGk9bnVsbCE9PShlPW51bGw9PW8/dm9pZCAwOm8ud2l0aENyZWRlbnRpYWxzKSYmdm9pZCAwIT09ZSYmZTtpZighdGhpcy5faHR0cENsaWVudCl0aHJvdyhmdW5jdGlvbiBhKCl7cmV0dXJuIEVycm9yKCJDb3VsZCBub3QgZmluZCBIdHRwQ2xpZW50IHByb3ZpZGVyIGZvciB1c2Ugd2l0aCBBbmd1bGFyIE1hdGVyaWFsIGljb25zLiBQbGVhc2UgaW5jbHVkZSB0aGUgSHR0cENsaWVudE1vZHVsZSBmcm9tIEBhbmd1bGFyL2NvbW1vbi9odHRwIGluIHlvdXIgYXBwIGltcG9ydHMuIil9KSgpO2lmKG51bGw9PW4pdGhyb3cgRXJyb3IoYENhbm5vdCBmZXRjaCBpY29uIGZyb20gVVJMICIke259Ii5gKTtjb25zdCByPXRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShBcy5SRVNPVVJDRV9VUkwsbik7aWYoIXIpdGhyb3cgYlcobik7Y29uc3Qgcz10aGlzLl9pblByb2dyZXNzVXJsRmV0Y2hlcy5nZXQocik7aWYocylyZXR1cm4gcztjb25zdCBsPXRoaXMuX2h0dHBDbGllbnQuZ2V0KHIse3Jlc3BvbnNlVHlwZToidGV4dCIsd2l0aENyZWRlbnRpYWxzOml9KS5waXBlKChmdW5jdGlvbiBjKHQpe3JldHVybiBSKChmdW5jdGlvbihlLG4pe3RyeXtlLnN1YnNjcmliZShuKX1maW5hbGx5e24uYWRkKHQpfX0pKX0pKCgoKT0+dGhpcy5faW5Qcm9ncmVzc1VybEZldGNoZXMuZGVsZXRlKHIpKSksRWUoKSk7cmV0dXJuIHRoaXMuX2luUHJvZ3Jlc3NVcmxGZXRjaGVzLnNldChyLGwpLGx9X2FkZFN2Z0ljb25Db25maWcodCxlLG4pe3JldHVybiB0aGlzLl9zdmdJY29uQ29uZmlncy5zZXQodlcodCxlKSxuKSx0aGlzfV9hZGRTdmdJY29uU2V0Q29uZmlnKHQsZSl7Y29uc3Qgbj10aGlzLl9pY29uU2V0Q29uZmlncy5nZXQodCk7cmV0dXJuIG4/bi5wdXNoKGUpOnRoaXMuX2ljb25TZXRDb25maWdzLnNldCh0LFtlXSksdGhpc31fc3ZnRWxlbWVudEZyb21Db25maWcodCl7aWYoIXQuc3ZnRWxlbWVudCl7Y29uc3QgZT10aGlzLl9zdmdFbGVtZW50RnJvbVN0cmluZyh0LnN2Z1RleHQpO3RoaXMuX3NldFN2Z0F0dHJpYnV0ZXMoZSx0Lm9wdGlvbnMpLHQuc3ZnRWxlbWVudD1lfXJldHVybiB0LnN2Z0VsZW1lbnR9X2dldEljb25Db25maWdGcm9tUmVzb2x2ZXJzKHQsZSl7Zm9yKGxldCBvPTA7bzx0aGlzLl9yZXNvbHZlcnMubGVuZ3RoO28rKyl7Y29uc3QgaT10aGlzLl9yZXNvbHZlcnNbb10oZSx0KTtpZihpKXJldHVybihuPWkpLnVybCYmbi5vcHRpb25zP25ldyBfVyhpLnVybCxudWxsLGkub3B0aW9ucyk6bmV3IF9XKGksbnVsbCl9dmFyIG47Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL319ZnVuY3Rpb24gTVcodCl7cmV0dXJuIHQuY2xvbmVOb2RlKCEwKX1mdW5jdGlvbiB2Vyh0LGUpe3JldHVybiB0KyI6IitlfUNXLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDVykodnIoUEQsOCksdnIoenYpLHZyKFpfLDgpLHZyKFpzKSl9LENXLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBDVyh2cihQRCw4KSx2cih6diksdnIoWl8sOCksdnIoWnMpKX0sdG9rZW46Q1cscHJvdmlkZWRJbjoicm9vdCJ9KSxDVy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlBELGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnp2fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTpac31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQ1csW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlBELGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnp2fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTpac31dfSksbnVsbCksbmV3IFNyLG5ldyBFcixuZXcgU3IsbmV3IFNyO2NvbnN0IHhXPUpJKGNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuX2VsZW1lbnRSZWY9dH19KSxPVz1uZXcgR2EoIm1hdC1pY29uLWxvY2F0aW9uIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBQVygpe2NvbnN0IHQ9T3IoWl8pLGU9dD90LmxvY2F0aW9uOm51bGw7cmV0dXJue2dldFBhdGhuYW1lOigpPT5lP2UucGF0aG5hbWUrZS5zZWFyY2g6IiJ9fX0pLHdXPVsiY2xpcC1wYXRoIiwiY29sb3ItcHJvZmlsZSIsInNyYyIsImN1cnNvciIsImZpbGwiLCJmaWx0ZXIiLCJtYXJrZXIiLCJtYXJrZXItc3RhcnQiLCJtYXJrZXItbWlkIiwibWFya2VyLWVuZCIsIm1hc2siLCJzdHJva2UiXSxrVz13Vy5tYXAoKHQ9PmBbJHt0fV1gKSkuam9pbigiLCAiKSxTVz0vXnVybFwoWyciXT8jKC4qPylbJyJdP1wpJC87Y2xhc3MgRFcgZXh0ZW5kcyB4V3tjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3N1cGVyKHQpLHRoaXMuX2ljb25SZWdpc3RyeT1lLHRoaXMuX2xvY2F0aW9uPW8sdGhpcy5fZXJyb3JIYW5kbGVyPWksdGhpcy5faW5saW5lPSExLHRoaXMuX2N1cnJlbnRJY29uRmV0Y2g9bS5FTVBUWSxufHx0Lm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKX1nZXQgaW5saW5lKCl7cmV0dXJuIHRoaXMuX2lubGluZX1zZXQgaW5saW5lKHQpe3RoaXMuX2lubGluZT15eih0KX1nZXQgc3ZnSWNvbigpe3JldHVybiB0aGlzLl9zdmdJY29ufXNldCBzdmdJY29uKHQpe3QhPT10aGlzLl9zdmdJY29uJiYodD90aGlzLl91cGRhdGVTdmdJY29uKHQpOnRoaXMuX3N2Z0ljb24mJnRoaXMuX2NsZWFyU3ZnRWxlbWVudCgpLHRoaXMuX3N2Z0ljb249dCl9Z2V0IGZvbnRTZXQoKXtyZXR1cm4gdGhpcy5fZm9udFNldH1zZXQgZm9udFNldCh0KXtjb25zdCBlPXRoaXMuX2NsZWFudXBGb250VmFsdWUodCk7ZSE9PXRoaXMuX2ZvbnRTZXQmJih0aGlzLl9mb250U2V0PWUsdGhpcy5fdXBkYXRlRm9udEljb25DbGFzc2VzKCkpfWdldCBmb250SWNvbigpe3JldHVybiB0aGlzLl9mb250SWNvbn1zZXQgZm9udEljb24odCl7Y29uc3QgZT10aGlzLl9jbGVhbnVwRm9udFZhbHVlKHQpO2UhPT10aGlzLl9mb250SWNvbiYmKHRoaXMuX2ZvbnRJY29uPWUsdGhpcy5fdXBkYXRlRm9udEljb25DbGFzc2VzKCkpfV9zcGxpdEljb25OYW1lKHQpe2lmKCF0KXJldHVyblsiIiwiIl07Y29uc3QgZT10LnNwbGl0KCI6Iik7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDE6cmV0dXJuWyIiLGVbMF1dO2Nhc2UgMjpyZXR1cm4gZTtkZWZhdWx0OnRocm93IEVycm9yKGBJbnZhbGlkIGljb24gbmFtZTogIiR7dH0iYCl9fW5nT25Jbml0KCl7dGhpcy5fdXBkYXRlRm9udEljb25DbGFzc2VzKCl9bmdBZnRlclZpZXdDaGVja2VkKCl7Y29uc3QgdD10aGlzLl9lbGVtZW50c1dpdGhFeHRlcm5hbFJlZmVyZW5jZXM7aWYodCYmdC5zaXplKXtjb25zdCB0PXRoaXMuX2xvY2F0aW9uLmdldFBhdGhuYW1lKCk7dCE9PXRoaXMuX3ByZXZpb3VzUGF0aCYmKHRoaXMuX3ByZXZpb3VzUGF0aD10LHRoaXMuX3ByZXBlbmRQYXRoVG9SZWZlcmVuY2VzKHQpKX19bmdPbkRlc3Ryb3koKXt0aGlzLl9jdXJyZW50SWNvbkZldGNoLnVuc3Vic2NyaWJlKCksdGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzJiZ0aGlzLl9lbGVtZW50c1dpdGhFeHRlcm5hbFJlZmVyZW5jZXMuY2xlYXIoKX1fdXNpbmdGb250SWNvbigpe3JldHVybiF0aGlzLnN2Z0ljb259X3NldFN2Z0VsZW1lbnQodCl7dGhpcy5fY2xlYXJTdmdFbGVtZW50KCk7Y29uc3QgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIik7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS50ZXh0Q29udGVudCs9IiAiO2NvbnN0IG49dGhpcy5fbG9jYXRpb24uZ2V0UGF0aG5hbWUoKTt0aGlzLl9wcmV2aW91c1BhdGg9bix0aGlzLl9jYWNoZUNoaWxkcmVuV2l0aEV4dGVybmFsUmVmZXJlbmNlcyh0KSx0aGlzLl9wcmVwZW5kUGF0aFRvUmVmZXJlbmNlcyhuKSx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodCl9X2NsZWFyU3ZnRWxlbWVudCgpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2xldCBlPXQuY2hpbGROb2Rlcy5sZW5ndGg7Zm9yKHRoaXMuX2VsZW1lbnRzV2l0aEV4dGVybmFsUmVmZXJlbmNlcyYmdGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzLmNsZWFyKCk7ZS0tOyl7Y29uc3Qgbj10LmNoaWxkTm9kZXNbZV07MT09PW4ubm9kZVR5cGUmJiJzdmciIT09bi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpfHx0LnJlbW92ZUNoaWxkKG4pfX1fdXBkYXRlRm9udEljb25DbGFzc2VzKCl7aWYoIXRoaXMuX3VzaW5nRm9udEljb24oKSlyZXR1cm47Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsZT10aGlzLmZvbnRTZXQ/dGhpcy5faWNvblJlZ2lzdHJ5LmNsYXNzTmFtZUZvckZvbnRBbGlhcyh0aGlzLmZvbnRTZXQpOnRoaXMuX2ljb25SZWdpc3RyeS5nZXREZWZhdWx0Rm9udFNldENsYXNzKCk7ZSE9dGhpcy5fcHJldmlvdXNGb250U2V0Q2xhc3MmJih0aGlzLl9wcmV2aW91c0ZvbnRTZXRDbGFzcyYmdC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX3ByZXZpb3VzRm9udFNldENsYXNzKSxlJiZ0LmNsYXNzTGlzdC5hZGQoZSksdGhpcy5fcHJldmlvdXNGb250U2V0Q2xhc3M9ZSksdGhpcy5mb250SWNvbiE9dGhpcy5fcHJldmlvdXNGb250SWNvbkNsYXNzJiYodGhpcy5fcHJldmlvdXNGb250SWNvbkNsYXNzJiZ0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fcHJldmlvdXNGb250SWNvbkNsYXNzKSx0aGlzLmZvbnRJY29uJiZ0LmNsYXNzTGlzdC5hZGQodGhpcy5mb250SWNvbiksdGhpcy5fcHJldmlvdXNGb250SWNvbkNsYXNzPXRoaXMuZm9udEljb24pfV9jbGVhbnVwRm9udFZhbHVlKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90LnRyaW0oKS5zcGxpdCgiICIpWzBdOnR9X3ByZXBlbmRQYXRoVG9SZWZlcmVuY2VzKHQpe2NvbnN0IGU9dGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzO2UmJmUuZm9yRWFjaCgoKGUsbik9PntlLmZvckVhY2goKGU9PntuLnNldEF0dHJpYnV0ZShlLm5hbWUsYHVybCgnJHt0fSMke2UudmFsdWV9JylgKX0pKX0pKX1fY2FjaGVDaGlsZHJlbldpdGhFeHRlcm5hbFJlZmVyZW5jZXModCl7Y29uc3QgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoa1cpLG49dGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzPXRoaXMuX2VsZW1lbnRzV2l0aEV4dGVybmFsUmVmZXJlbmNlc3x8bmV3IE1hcDtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl3Vy5mb3JFYWNoKChvPT57Y29uc3QgaT1lW3RdLGE9aS5nZXRBdHRyaWJ1dGUobykscj1hP2EubWF0Y2goU1cpOm51bGw7aWYocil7bGV0IHQ9bi5nZXQoaSk7dHx8KHQ9W10sbi5zZXQoaSx0KSksdC5wdXNoKHtuYW1lOm8sdmFsdWU6clsxXX0pfX0pKX1fdXBkYXRlU3ZnSWNvbih0KXtpZih0aGlzLl9zdmdOYW1lc3BhY2U9bnVsbCx0aGlzLl9zdmdOYW1lPW51bGwsdGhpcy5fY3VycmVudEljb25GZXRjaC51bnN1YnNjcmliZSgpLHQpe2NvbnN0W2Usbl09dGhpcy5fc3BsaXRJY29uTmFtZSh0KTtlJiYodGhpcy5fc3ZnTmFtZXNwYWNlPWUpLG4mJih0aGlzLl9zdmdOYW1lPW4pLHRoaXMuX2N1cnJlbnRJY29uRmV0Y2g9dGhpcy5faWNvblJlZ2lzdHJ5LmdldE5hbWVkU3ZnSWNvbihuLGUpLnBpcGUoYmUoMSkpLnN1YnNjcmliZSgodD0+dGhpcy5fc2V0U3ZnRWxlbWVudCh0KSksKHQ9Pnt0aGlzLl9lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IobmV3IEVycm9yKGBFcnJvciByZXRyaWV2aW5nIGljb24gJHtlfToke259ISAke3QubWVzc2FnZX1gKSl9KSl9fX1EVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RFcpKFNtKGhnKSxTbShDVyksTmEoImFyaWEtaGlkZGVuIiksU20oT1cpLFNtKFpzKSl9LERXLsm1Y21wPXRvKHt0eXBlOkRXLHNlbGVjdG9yczpbWyJtYXQtaWNvbiJdXSxob3N0QXR0cnM6WyJyb2xlIiwiaW1nIiwxLCJtYXQtaWNvbiIsIm5vdHJhbnNsYXRlIl0saG9zdFZhcnM6Nyxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmKGpwKCJkYXRhLW1hdC1pY29uLXR5cGUiLG4uX3VzaW5nRm9udEljb24oKT8iZm9udCI6InN2ZyIpKCJkYXRhLW1hdC1pY29uLW5hbWUiLG4uX3N2Z05hbWV8fG4uZm9udEljb24pKCJkYXRhLW1hdC1pY29uLW5hbWVzcGFjZSIsbi5fc3ZnTmFtZXNwYWNlfHxuLmZvbnRTZXQpLHB1KCJtYXQtaWNvbi1pbmxpbmUiLG4uaW5saW5lKSgibWF0LWljb24tbm8tY29sb3IiLCJwcmltYXJ5IiE9PW4uY29sb3ImJiJhY2NlbnQiIT09bi5jb2xvciYmIndhcm4iIT09bi5jb2xvcikpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciIsaW5saW5lOiJpbmxpbmUiLHN2Z0ljb246InN2Z0ljb24iLGZvbnRTZXQ6ImZvbnRTZXQiLGZvbnRJY29uOiJmb250SWNvbiJ9LGV4cG9ydEFzOlsibWF0SWNvbiJdLGZlYXR1cmVzOlt4cF0sbmdDb250ZW50U2VsZWN0b3JzOlsiKiJdLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFhtKDApKX0sc3R5bGVzOlsiLm1hdC1pY29ue2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtkaXNwbGF5OmlubGluZS1ibG9jaztmaWxsOmN1cnJlbnRDb2xvcjtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS5tYXQtaWNvbi5tYXQtaWNvbi1pbmxpbmV7Zm9udC1zaXplOmluaGVyaXQ7aGVpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDt3aWR0aDppbmhlcml0fVtkaXI9cnRsXSAubWF0LWljb24tcnRsLW1pcnJvcnt0cmFuc2Zvcm06c2NhbGUoLTEsIDEpfS5tYXQtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5KSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb257ZGlzcGxheTpibG9ja30ubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbnttYXJnaW46YXV0b31cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLERXLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOkNXfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbImFyaWEtaGlkZGVuIl19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W09XXX1dfSx7dHlwZTpac31dLERXLnByb3BEZWNvcmF0b3JzPXtpbmxpbmU6W3t0eXBlOnh5fV0sc3ZnSWNvbjpbe3R5cGU6eHl9XSxmb250U2V0Olt7dHlwZTp4eX1dLGZvbnRJY29uOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKERXLFt7dHlwZTpNeSxhcmdzOlt7dGVtcGxhdGU6IjxuZy1jb250ZW50PjwvbmctY29udGVudD4iLHNlbGVjdG9yOiJtYXQtaWNvbiIsZXhwb3J0QXM6Im1hdEljb24iLGlucHV0czpbImNvbG9yIl0saG9zdDp7cm9sZToiaW1nIixjbGFzczoibWF0LWljb24gbm90cmFuc2xhdGUiLCJbYXR0ci5kYXRhLW1hdC1pY29uLXR5cGVdIjonX3VzaW5nRm9udEljb24oKSA/ICJmb250IiA6ICJzdmciJywiW2F0dHIuZGF0YS1tYXQtaWNvbi1uYW1lXSI6Il9zdmdOYW1lIHx8IGZvbnRJY29uIiwiW2F0dHIuZGF0YS1tYXQtaWNvbi1uYW1lc3BhY2VdIjoiX3N2Z05hbWVzcGFjZSB8fCBmb250U2V0IiwiW2NsYXNzLm1hdC1pY29uLWlubGluZV0iOiJpbmxpbmUiLCJbY2xhc3MubWF0LWljb24tbm8tY29sb3JdIjonY29sb3IgIT09ICJwcmltYXJ5IiAmJiBjb2xvciAhPT0gImFjY2VudCIgJiYgY29sb3IgIT09ICJ3YXJuIid9LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHN0eWxlczpbIi5tYXQtaWNvbntiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmlsbDpjdXJyZW50Q29sb3I7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ubWF0LWljb24ubWF0LWljb24taW5saW5le2ZvbnQtc2l6ZTppbmhlcml0O2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7d2lkdGg6aW5oZXJpdH1bZGlyPXJ0bF0gLm1hdC1pY29uLXJ0bC1taXJyb3J7dHJhbnNmb3JtOnNjYWxlKC0xLCAxKX0ubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29ue2Rpc3BsYXk6YmxvY2t9Lm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb257bWFyZ2luOmF1dG99XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpDV30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJhcmlhLWhpZGRlbiJdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltPV119XX0se3R5cGU6WnN9XX0pLHtpbmxpbmU6W3t0eXBlOnh5fV0sc3ZnSWNvbjpbe3R5cGU6eHl9XSxmb250U2V0Olt7dHlwZTp4eX1dLGZvbnRJY29uOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBFV3t9RVcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEVXKX0sRVcuybVtb2Q9YW8oe3R5cGU6RVd9KSxFVy7JtWluaj12bih7aW1wb3J0czpbW1hJXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEVXLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbWEldLGV4cG9ydHM6W0RXLFhJXSxkZWNsYXJhdGlvbnM6W0RXXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEVXLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bRFddfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1hJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltEVyxYSV19fSk7Y2xhc3MgUld7Y29uc3RydWN0b3IodCl7dGhpcy5kaWFsb2dSZWY9dCx0aGlzLnRlbnNvcmJvYXJkRG90RGV2VXJsPSJodHRwczovL3RlbnNvcmJvYXJkLmRldi8/dXRtX3NvdXJjZT10ZW5zb3Jib2FyZCJ9b25DbG9zZSgpe3RoaXMuZGlhbG9nUmVmLmNsb3NlKCl9Z2V0Q29tbWFuZFRleHQoKXtyZXR1cm4gdGhpcy5sb2dkaXI/InRlbnNvcmJvYXJkIGRldiB1cGxvYWQgLS1sb2dkaXIgXFxcbiAgICAnIit0aGlzLmxvZ2Rpci5yZXBsYWNlKC8nL2csIidcXCcnIikrIiciOiJ0ZW5zb3Jib2FyZCBkZXYgdXBsb2FkIC0tbG9nZGlyIHtsb2dkaXJ9In19UlcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJXKShTbShYRykpfSxSVy7JtWNtcD10byh7dHlwZTpSVyxzZWxlY3RvcnM6W1sidGJkZXYtdXBsb2FkLWRpYWxvZy1jb21wb25lbnQiXV0saW5wdXRzOntsb2dkaXI6ImxvZ2RpciJ9LGRlY2xzOjIxLHZhcnM6NCxjb25zdHM6W1sidGFyZ2V0IiwiX2JsYW5rIiwicmVsIiwibm9yZWZlcnJlciBub29wZW5lciIsMSwiYW5jaG9yLXRleHQiLDMsImhyZWYiXSxbMSwiY29tbWFuZCJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwidGl0bGUiLCJDbGljayB0byBjb3B5IHRoZSBjb21tYW5kIiwxLCJjb21tYW5kLWNvcHkiLDMsImNka0NvcHlUb0NsaXBib2FyZCJdLFsic3ZnSWNvbiIsImNvbnRlbnRfY29weV8yNHB4Il0sWzEsImJvdHRvbS1idXR0b25zIl0sWyJtYXQtZmxhdC1idXR0b24iLCIiLDEsImNsb3NlLWJ1dHRvbiIsMywiY2xpY2siXSxbIm1hdC1mbGF0LWJ1dHRvbiIsIiIsInRhcmdldCIsIl9ibGFuayIsInJlbCIsIm5vcmVmZXJyZXIgbm9vcGVuZXIiLDEsImxlYXJuLW1vcmUtYnV0dG9uIiwzLCJocmVmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJoMyIpLGt1KDEsIlVwbG9hZCB0byBUZW5zb3JCb2FyZC5kZXYiKSxBbSgpLFJtKDIsInAiKSxSbSgzLCJhIiwwKSxrdSg0LCIgVGVuc29yQm9hcmQuZGV2IiksQW0oKSxrdSg1LCIgZW5hYmxlcyB5b3UgdG8gZWFzaWx5IGhvc3QsIHRyYWNrLCBhbmQgc2hhcmUgeW91ciBNTCBleHBlcmltZW50cyB3aXRoIGV2ZXJ5b25lLiBZb3UgY2FuIHNoYXJlIGEgbGluayB0byB0aGUgdXBsb2FkZWQgVGVuc29yQm9hcmQgaW4gcGFwZXJzLCBibG9nIHBvc3RzLCBhbmQgc29jaWFsIG1lZGlhLiBUaGlzIGNhbiBzaG93Y2FzZSB0aGUgcmVzdWx0cyBtb3JlIGVmZmVjdGl2ZWx5IGFuZCBoZWxwcyByZXByb2R1Y2liaWxpdHkuXG4iKSxBbSgpLFJtKDYsInAiKSxrdSg3LCJUbyB1cGxvYWQgYSBsb2dkaXIgdG8gVGVuc29yQm9hcmQuZGV2LCBydW4gdGhlIGNvbW1hbmQ6IiksQW0oKSxSbSg4LCJkaXYiLDEpLFJtKDksInByZSIpLFJtKDEwLCJjb2RlIiksa3UoMTEpLEFtKCksQW0oKSxSbSgxMiwiYnV0dG9uIiwyKSxUbSgxMywibWF0LWljb24iLDMpLEFtKCksQW0oKSxSbSgxNCwicCIpLGt1KDE1LCIgT25seSBjZXJ0YWluIHBsdWdpbnMgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuIFVwbG9hZGVkIFRlbnNvckJvYXJkcyBhcmUgcHVibGljIGFuZCB2aXNpYmxlIHRvIGV2ZXJ5b25lOyBkbyBub3QgdXBsb2FkIHNlbnNpdGl2ZSBkYXRhLlxuIiksQW0oKSxSbSgxNiwiZGl2Iiw0KSxSbSgxNywiYnV0dG9uIiw1KSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25DbG9zZSgpfSkpLGt1KDE4LCIgQ2xvc2UgIiksQW0oKSxSbSgxOSwiYSIsNiksa3UoMjAsIiBMZWFybiBtb3JlICIpLEFtKCksQW0oKSksMiZlJiYocmMoMyksS20oImhyZWYiLG4udGVuc29yYm9hcmREb3REZXZVcmwsVHMpLHJjKDgpLFN1KG4uZ2V0Q29tbWFuZFRleHQoKSkscmMoMSksRG0oImNka0NvcHlUb0NsaXBib2FyZCIsbi5nZXRDb21tYW5kVGV4dCgpKSxyYyg3KSxLbSgiaHJlZiIsbi50ZW5zb3Jib2FyZERvdERldlVybCxUcykpfSxkaXJlY3RpdmVzOltYSCxmVyxEVyxLSF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9ZGl2W19uZ2NvbnRlbnQtJUNPTVAlXSwgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjE2cHggMH1bX25naG9zdC0lQ09NUCVdID4gW19uZ2NvbnRlbnQtJUNPTVAlXTpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9W19uZ2hvc3QtJUNPTVAlXSA+IFtfbmdjb250ZW50LSVDT01QJV06bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9aDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxLjV9cFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzIxMjEyMTtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmZmZ9LmFuY2hvci10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWRlY29yYXRpb246bm9uZX0uY29tbWFuZFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6I2Y1ZjZmNztib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoycHggMTJweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuY29tbWFuZFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5jb21tYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiM2MTYxNjF9cHJlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdy14OmF1dG99Y29kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS41fS5ib3R0b20tYnV0dG9uc1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNsb3NlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWFyZ2luLXJpZ2h0OjhweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuY2xvc2UtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNsb3NlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9W19uZ2hvc3QtJUNPTVAlXSAgIC5sZWFybi1tb3JlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzE5NzZkMjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmxlYXJuLW1vcmUtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNDJhNWY1fSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChSVyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0YmRldi11cGxvYWQtZGlhbG9nLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vdGJkZXZfdXBsb2FkX2RpYWxvZ19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi90YmRldl91cGxvYWRfZGlhbG9nX2NvbXBvbmVudC5jc3MiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhHfV19KSx7bG9nZGlyOlt7dHlwZTp4eX1dfSk7Y29uc3QgQVc9WncoeFIsKHQ9PnQuZGF0YV9sb2NhdGlvbikpO2NsYXNzIFRXe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmxvZ2RpciQ9dGhpcy5zdG9yZS5waXBlKEZ3KEFXKSl9fWZ1bmN0aW9uIE5XKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwxKSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkub3BlbkRpYWxvZygpfSkpLFJtKDEsInNwYW4iLDIpLFRtKDIsIm1hdC1pY29uIiwzKSxrdSgzLCIgVXBsb2FkICIpLEFtKCksQW0oKX19VFcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRXKShTbShJdykpfSxUVy7JtWNtcD10byh7dHlwZTpUVyxzZWxlY3RvcnM6W1sidGJkZXYtdXBsb2FkLWRpYWxvZyJdXSxkZWNsczoyLHZhcnM6Myxjb25zdHM6W1szLCJsb2dkaXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsInRiZGV2LXVwbG9hZC1kaWFsb2ctY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpKSwyJmUmJkRtKCJsb2dkaXIiLFRoKDEsMSxuLmxvZ2RpciQpKX0sZGlyZWN0aXZlczpbUlddLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChUVyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0YmRldi11cGxvYWQtZGlhbG9nIix0ZW1wbGF0ZTonXG4gICAgPHRiZGV2LXVwbG9hZC1kaWFsb2ctY29tcG9uZW50XG4gICAgICBbbG9nZGlyXT0ibG9nZGlyJCB8IGFzeW5jIlxuICAgID48L3RiZGV2LXVwbG9hZC1kaWFsb2ctY29tcG9uZW50PlxuICAnfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IHpXPVsibG9jYWxob3N0IiwiMTI3LjAuMC4xIl07Y2xhc3MgSVd7Y29uc3RydWN0b3IodCxlKXt0aGlzLndpbmRvdz10LHRoaXMuZGlhbG9nPWUsdGhpcy5zaG93bj16Vy5pbmNsdWRlcyh0LmxvY2F0aW9uLmhvc3RuYW1lKX1vcGVuRGlhbG9nKCl7dGhpcy5kaWFsb2cub3BlbihUVyx7d2lkdGg6IjU2MHB4In0pfX1mdW5jdGlvbiBIVyh0LGUpezEmdCYmKHFpKCksUm0oMCwic3ZnIiwyKSxUbSgxLCJwb2x5Z29uIiwzKSxBbSgpKX1JVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SVcpKFNtKCJ3aW5kb3ciKSxTbShvVykpfSxJVy7JtWNtcD10byh7dHlwZTpJVyxzZWxlY3RvcnM6W1sidGJkZXYtdXBsb2FkLWJ1dHRvbiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgic2hvd24iLG4uc2hvd24pfSxkZWNsczoxLHZhcnM6MSxjb25zdHM6W1sibWF0LXN0cm9rZWQtYnV0dG9uIiwiIiwzLCJjbGljayIsNCwibmdJZiJdLFsibWF0LXN0cm9rZWQtYnV0dG9uIiwiIiwzLCJjbGljayJdLFsxLCJidXR0b24tY29udGVudHMiXSxbInN2Z0ljb24iLCJpbmZvX291dGxpbmVfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZRcCgwLE5XLDQsMCwiYnV0dG9uIiwwKSwyJmUmJkRtKCJuZ0lmIixuLnNob3duKX0sZGlyZWN0aXZlczpbZE0sWEgsRFddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV0gICBidXR0b24ubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmVifWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIGJ1dHRvbi5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH0uYnV0dG9uLWNvbnRlbnRzW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX1tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjZweH0nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSVcsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGJkZXYtdXBsb2FkLWJ1dHRvbiIsdGVtcGxhdGVVcmw6Ii4vdGJkZXZfdXBsb2FkX2J1dHRvbl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi90YmRldl91cGxvYWRfYnV0dG9uX2NvbXBvbmVudC5jc3MiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOldpbmRvdyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlsid2luZG93Il19XX0se3R5cGU6b1d9XX0pLHtzaG93bjpbe3R5cGU6UHksYXJnczpbImNsYXNzLnNob3duIl19XX0pO2NvbnN0IEZXPVsiKiJdO2Z1bmN0aW9uIExXKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwwKSxWbSgia2V5ZG93biIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkuX2hhbmRsZUtleWRvd24obil9KSkoImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLmNsb3NlZC5lbWl0KCJjbGljayIpfSkpKCJAdHJhbnNmb3JtTWVudS5zdGFydCIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkuX29uQW5pbWF0aW9uU3RhcnQobil9KSkoIkB0cmFuc2Zvcm1NZW51LmRvbmUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLl9vbkFuaW1hdGlvbkRvbmUobil9KSksUm0oMSwiZGl2IiwxKSxYbSgyKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7RG0oImlkIix0LnBhbmVsSWQpKCJuZ0NsYXNzIix0Ll9jbGFzc0xpc3QpKCJAdHJhbnNmb3JtTWVudSIsdC5fcGFuZWxBbmltYXRpb25TdGF0ZSksanAoImFyaWEtbGFiZWwiLHQuYXJpYUxhYmVsfHxudWxsKSgiYXJpYS1sYWJlbGxlZGJ5Iix0LmFyaWFMYWJlbGxlZGJ5fHxudWxsKSgiYXJpYS1kZXNjcmliZWRieSIsdC5hcmlhRGVzY3JpYmVkYnl8fG51bGwpfX1jb25zdCBCVz17dHJhbnNmb3JtTWVudTpueCgidHJhbnNmb3JtTWVudSIsW3J4KCJ2b2lkIixheCh7b3BhY2l0eTowLHRyYW5zZm9ybToic2NhbGUoMC44KSJ9KSksbHgoInZvaWQgPT4gZW50ZXIiLG94KCIxMjBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSIsYXgoe29wYWNpdHk6MSx0cmFuc2Zvcm06InNjYWxlKDEpIn0pKSksbHgoIiogPT4gdm9pZCIsb3goIjEwMG1zIDI1bXMgbGluZWFyIixheCh7b3BhY2l0eTowfSkpKV0pLGZhZGVJbkl0ZW1zOm54KCJmYWRlSW5JdGVtcyIsW3J4KCJzaG93aW5nIixheCh7b3BhY2l0eToxfSkpLGx4KCJ2b2lkID0+ICoiLFtheCh7b3BhY2l0eTowfSksb3goIjQwMG1zIDEwMG1zIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpIildKV0pfSxWVz1uZXcgR2EoIk1hdE1lbnVDb250ZW50Iik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGpXe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3RoaXMuX3RlbXBsYXRlPXQsdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPWUsdGhpcy5fYXBwUmVmPW4sdGhpcy5faW5qZWN0b3I9byx0aGlzLl92aWV3Q29udGFpbmVyUmVmPWksdGhpcy5fZG9jdW1lbnQ9YSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1yLHRoaXMuX2F0dGFjaGVkPW5ldyBJfWF0dGFjaCh0PXt9KXt0aGlzLl9wb3J0YWx8fCh0aGlzLl9wb3J0YWw9bmV3IHhGKHRoaXMuX3RlbXBsYXRlLHRoaXMuX3ZpZXdDb250YWluZXJSZWYpKSx0aGlzLmRldGFjaCgpLHRoaXMuX291dGxldHx8KHRoaXMuX291dGxldD1uZXcgd0YodGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLHRoaXMuX2FwcFJlZix0aGlzLl9pbmplY3RvcikpO2NvbnN0IGU9dGhpcy5fdGVtcGxhdGUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2UucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5fb3V0bGV0Lm91dGxldEVsZW1lbnQsZSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYmJnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX3BvcnRhbC5hdHRhY2godGhpcy5fb3V0bGV0LHQpLHRoaXMuX2F0dGFjaGVkLm5leHQoKX1kZXRhY2goKXt0aGlzLl9wb3J0YWwuaXNBdHRhY2hlZCYmdGhpcy5fcG9ydGFsLmRldGFjaCgpfW5nT25EZXN0cm95KCl7dGhpcy5fb3V0bGV0JiZ0aGlzLl9vdXRsZXQuZGlzcG9zZSgpfX1qVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8alcpKFNtKFhnKSxTbSh1ZyksU20oT18pLFNtKHJwKSxTbShlaCksU20oWl8pLFNtKFVnKSl9LGpXLsm1ZGlyPWxvKHt0eXBlOmpXLHNlbGVjdG9yczpbWyJuZy10ZW1wbGF0ZSIsIm1hdE1lbnVDb250ZW50IiwiIl1dLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6VlcsdXNlRXhpc3Rpbmc6ald9XSldfSksalcuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYZ30se3R5cGU6dWd9LHt0eXBlOk9ffSx7dHlwZTpycH0se3R5cGU6ZWh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6VWd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGpXLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im5nLXRlbXBsYXRlW21hdE1lbnVDb250ZW50XSIscHJvdmlkZXJzOlt7cHJvdmlkZTpWVyx1c2VFeGlzdGluZzpqV31dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WGd9LHt0eXBlOnVnfSx7dHlwZTpPX30se3R5cGU6cnB9LHt0eXBlOmVofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlVnfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFVXPW5ldyBHYSgiTUFUX01FTlVfUEFORUwiKSxHVz1RSShLSShjbGFzc3t9KSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIFdXIGV4dGVuZHMgR1d7Y29uc3RydWN0b3IodCxlLG4sbyxpKXtzdXBlcigpLHRoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9mb2N1c01vbml0b3I9bix0aGlzLl9wYXJlbnRNZW51PW8sdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9aSx0aGlzLnJvbGU9Im1lbnVpdGVtIix0aGlzLl9ob3ZlcmVkPW5ldyBJLHRoaXMuX2ZvY3VzZWQ9bmV3IEksdGhpcy5faGlnaGxpZ2h0ZWQ9ITEsdGhpcy5fdHJpZ2dlcnNTdWJtZW51PSExLG8mJm8uYWRkSXRlbSYmby5hZGRJdGVtKHRoaXMpfWZvY3VzKHQsZSl7dGhpcy5fZm9jdXNNb25pdG9yJiZ0P3RoaXMuX2ZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLl9nZXRIb3N0RWxlbWVudCgpLHQsZSk6dGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5mb2N1cyhlKSx0aGlzLl9mb2N1c2VkLm5leHQodGhpcyl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZm9jdXNNb25pdG9yJiZ0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCExKX1uZ09uRGVzdHJveSgpe3RoaXMuX2ZvY3VzTW9uaXRvciYmdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpLHRoaXMuX3BhcmVudE1lbnUmJnRoaXMuX3BhcmVudE1lbnUucmVtb3ZlSXRlbSYmdGhpcy5fcGFyZW50TWVudS5yZW1vdmVJdGVtKHRoaXMpLHRoaXMuX2hvdmVyZWQuY29tcGxldGUoKSx0aGlzLl9mb2N1c2VkLmNvbXBsZXRlKCl9X2dldFRhYkluZGV4KCl7cmV0dXJuIHRoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9X2dldEhvc3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudH1fY2hlY2tEaXNhYmxlZCh0KXt0aGlzLmRpc2FibGVkJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpfV9oYW5kbGVNb3VzZUVudGVyKCl7dGhpcy5faG92ZXJlZC5uZXh0KHRoaXMpfWdldExhYmVsKCl7dmFyIHQsZTtjb25zdCBuPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9uZU5vZGUoITApLG89bi5xdWVyeVNlbGVjdG9yQWxsKCJtYXQtaWNvbiwgLm1hdGVyaWFsLWljb25zIik7Zm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspe2NvbnN0IG49b1tlXTtudWxsPT09KHQ9bi5wYXJlbnROb2RlKXx8dm9pZCAwPT09dHx8dC5yZW1vdmVDaGlsZChuKX1yZXR1cm4obnVsbD09PShlPW4udGV4dENvbnRlbnQpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnRyaW0oKSl8fCIifV9zZXRIaWdobGlnaHRlZCh0KXt2YXIgZTt0aGlzLl9oaWdobGlnaHRlZD10LG51bGw9PT0oZT10aGlzLl9jaGFuZ2VEZXRlY3RvclJlZil8fHZvaWQgMD09PWV8fGUubWFya0ZvckNoZWNrKCl9fVdXLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxXVykoU20oaGcpLFNtKFpfKSxTbShTSSksU20oVVcsOCksU20oVWcpKX0sV1cuybVjbXA9dG8oe3R5cGU6V1csc2VsZWN0b3JzOltbIiIsIm1hdC1tZW51LWl0ZW0iLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtZm9jdXMtaW5kaWNhdG9yIl0saG9zdFZhcnM6MTAsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2NoZWNrRGlzYWJsZWQoZSl9KSkoIm1vdXNlZW50ZXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2hhbmRsZU1vdXNlRW50ZXIoKX0pKSwyJmUmJihqcCgicm9sZSIsbi5yb2xlKSgidGFiaW5kZXgiLG4uX2dldFRhYkluZGV4KCkpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkLnRvU3RyaW5nKCkpKCJkaXNhYmxlZCIsbi5kaXNhYmxlZHx8bnVsbCkscHUoIm1hdC1tZW51LWl0ZW0iLCEwKSgibWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCIsbi5faGlnaGxpZ2h0ZWQpKCJtYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlciIsbi5fdHJpZ2dlcnNTdWJtZW51KSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixyb2xlOiJyb2xlIn0sZXhwb3J0QXM6WyJtYXRNZW51SXRlbSJdLGZlYXR1cmVzOlt4cF0sYXR0cnM6WyJtYXQtbWVudS1pdGVtIiwiIl0sbmdDb250ZW50U2VsZWN0b3JzOkZXLGRlY2xzOjMsdmFyczozLGNvbnN0czpbWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1tZW51LXJpcHBsZSIsMywibWF0UmlwcGxlRGlzYWJsZWQiLCJtYXRSaXBwbGVUcmlnZ2VyIl0sWyJjbGFzcyIsIm1hdC1tZW51LXN1Ym1lbnUtaWNvbiIsInZpZXdCb3giLCIwIDAgNSAxMCIsImZvY3VzYWJsZSIsImZhbHNlIiw0LCJuZ0lmIl0sWyJ2aWV3Qm94IiwiMCAwIDUgMTAiLCJmb2N1c2FibGUiLCJmYWxzZSIsMSwibWF0LW1lbnUtc3VibWVudS1pY29uIl0sWyJwb2ludHMiLCIwLDAgNSw1IDAsMTAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFptKCksWG0oMCksVG0oMSwiZGl2IiwwKSxRcCgyLEhXLDIsMCwic3ZnIiwxKSksMiZlJiYocmMoMSksRG0oIm1hdFJpcHBsZURpc2FibGVkIixuLmRpc2FibGVSaXBwbGV8fG4uZGlzYWJsZWQpKCJtYXRSaXBwbGVUcmlnZ2VyIixuLl9nZXRIb3N0RWxlbWVudCgpKSxyYygxKSxEbSgibmdJZiIsbi5fdHJpZ2dlcnNTdWJtZW51KSl9LGRpcmVjdGl2ZXM6W2tILGRNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxXVy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlNJfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbVVddfSx7dHlwZTpTcn1dfSx7dHlwZTpVZ31dLFdXLnByb3BEZWNvcmF0b3JzPXtyb2xlOlt7dHlwZTp4eX1dLF9jaGVja0Rpc2FibGVkOlt7dHlwZTp3eSxhcmdzOlsiY2xpY2siLFsiJGV2ZW50Il1dfV0sX2hhbmRsZU1vdXNlRW50ZXI6W3t0eXBlOnd5LGFyZ3M6WyJtb3VzZWVudGVyIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXVyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJbbWF0LW1lbnUtaXRlbV0iLGV4cG9ydEFzOiJtYXRNZW51SXRlbSIsaW5wdXRzOlsiZGlzYWJsZWQiLCJkaXNhYmxlUmlwcGxlIl0saG9zdDp7IlthdHRyLnJvbGVdIjoicm9sZSIsIltjbGFzcy5tYXQtbWVudS1pdGVtXSI6InRydWUiLCJbY2xhc3MubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZF0iOiJfaGlnaGxpZ2h0ZWQiLCJbY2xhc3MubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXJdIjoiX3RyaWdnZXJzU3VibWVudSIsIlthdHRyLnRhYmluZGV4XSI6Il9nZXRUYWJJbmRleCgpIiwiW2F0dHIuYXJpYS1kaXNhYmxlZF0iOiJkaXNhYmxlZC50b1N0cmluZygpIiwiW2F0dHIuZGlzYWJsZWRdIjoiZGlzYWJsZWQgfHwgbnVsbCIsY2xhc3M6Im1hdC1mb2N1cy1pbmRpY2F0b3IifSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLGVuY2Fwc3VsYXRpb246SG4uTm9uZSx0ZW1wbGF0ZTonPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz0ibWF0LW1lbnUtcmlwcGxlIiBtYXRSaXBwbGVcbiAgICAgW21hdFJpcHBsZURpc2FibGVkXT0iZGlzYWJsZVJpcHBsZSB8fCBkaXNhYmxlZCJcbiAgICAgW21hdFJpcHBsZVRyaWdnZXJdPSJfZ2V0SG9zdEVsZW1lbnQoKSI+XG48L2Rpdj5cblxuPHN2Z1xuICAqbmdJZj0iX3RyaWdnZXJzU3VibWVudSJcbiAgY2xhc3M9Im1hdC1tZW51LXN1Ym1lbnUtaWNvbiJcbiAgdmlld0JveD0iMCAwIDUgMTAiXG4gIGZvY3VzYWJsZT0iZmFsc2UiPjxwb2x5Z29uIHBvaW50cz0iMCwwIDUsNSAwLDEwIi8+PC9zdmc+XG4nfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6U0l9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltVV119LHt0eXBlOlNyfV19LHt0eXBlOlVnfV19KSx7cm9sZTpbe3R5cGU6eHl9XSxfY2hlY2tEaXNhYmxlZDpbe3R5cGU6d3ksYXJnczpbImNsaWNrIixbIiRldmVudCJdXX1dLF9oYW5kbGVNb3VzZUVudGVyOlt7dHlwZTp3eSxhcmdzOlsibW91c2VlbnRlciJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFlXPW5ldyBHYSgibWF0LW1lbnUtZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBxVygpe3JldHVybntvdmVybGFwVHJpZ2dlcjohMSx4UG9zaXRpb246ImFmdGVyIix5UG9zaXRpb246ImJlbG93IixiYWNrZHJvcENsYXNzOiJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCJ9fX0pO2xldCBaVz0wO2NsYXNzIFhXe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fbmdab25lPWUsdGhpcy5fZGVmYXVsdE9wdGlvbnM9bix0aGlzLl94UG9zaXRpb249dGhpcy5fZGVmYXVsdE9wdGlvbnMueFBvc2l0aW9uLHRoaXMuX3lQb3NpdGlvbj10aGlzLl9kZWZhdWx0T3B0aW9ucy55UG9zaXRpb24sdGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zPW5ldyBWaCx0aGlzLl90YWJTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl9jbGFzc0xpc3Q9e30sdGhpcy5fcGFuZWxBbmltYXRpb25TdGF0ZT0idm9pZCIsdGhpcy5fYW5pbWF0aW9uRG9uZT1uZXcgSSx0aGlzLm92ZXJsYXlQYW5lbENsYXNzPXRoaXMuX2RlZmF1bHRPcHRpb25zLm92ZXJsYXlQYW5lbENsYXNzfHwiIix0aGlzLmJhY2tkcm9wQ2xhc3M9dGhpcy5fZGVmYXVsdE9wdGlvbnMuYmFja2Ryb3BDbGFzcyx0aGlzLl9vdmVybGFwVHJpZ2dlcj10aGlzLl9kZWZhdWx0T3B0aW9ucy5vdmVybGFwVHJpZ2dlcix0aGlzLl9oYXNCYWNrZHJvcD10aGlzLl9kZWZhdWx0T3B0aW9ucy5oYXNCYWNrZHJvcCx0aGlzLmNsb3NlZD1uZXcgTGgsdGhpcy5jbG9zZT10aGlzLmNsb3NlZCx0aGlzLnBhbmVsSWQ9Im1hdC1tZW51LXBhbmVsLSIrWlcrK31nZXQgeFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3hQb3NpdGlvbn1zZXQgeFBvc2l0aW9uKHQpeyJiZWZvcmUiPT09dHx8ImFmdGVyIj09PXR8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHwoZnVuY3Rpb24gZSgpe3Rocm93IEVycm9yKCd4UG9zaXRpb24gdmFsdWUgbXVzdCBiZSBlaXRoZXIgXCdiZWZvcmVcJyBvciBhZnRlclwnLlxuICAgICAgRXhhbXBsZTogPG1hdC1tZW51IHhQb3NpdGlvbj0iYmVmb3JlIiAjbWVudT0ibWF0TWVudSI+PC9tYXQtbWVudT4nKX0pKCksdGhpcy5feFBvc2l0aW9uPXQsdGhpcy5zZXRQb3NpdGlvbkNsYXNzZXMoKX1nZXQgeVBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3lQb3NpdGlvbn1zZXQgeVBvc2l0aW9uKHQpeyJhYm92ZSI9PT10fHwiYmVsb3ciPT09dHx8InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fChmdW5jdGlvbiBlKCl7dGhyb3cgRXJyb3IoJ3lQb3NpdGlvbiB2YWx1ZSBtdXN0IGJlIGVpdGhlciBcJ2Fib3ZlXCcgb3IgYmVsb3dcJy5cbiAgICAgIEV4YW1wbGU6IDxtYXQtbWVudSB5UG9zaXRpb249ImFib3ZlIiAjbWVudT0ibWF0TWVudSI+PC9tYXQtbWVudT4nKX0pKCksdGhpcy5feVBvc2l0aW9uPXQsdGhpcy5zZXRQb3NpdGlvbkNsYXNzZXMoKX1nZXQgb3ZlcmxhcFRyaWdnZXIoKXtyZXR1cm4gdGhpcy5fb3ZlcmxhcFRyaWdnZXJ9c2V0IG92ZXJsYXBUcmlnZ2VyKHQpe3RoaXMuX292ZXJsYXBUcmlnZ2VyPXl6KHQpfWdldCBoYXNCYWNrZHJvcCgpe3JldHVybiB0aGlzLl9oYXNCYWNrZHJvcH1zZXQgaGFzQmFja2Ryb3AodCl7dGhpcy5faGFzQmFja2Ryb3A9eXoodCl9c2V0IHBhbmVsQ2xhc3ModCl7Y29uc3QgZT10aGlzLl9wcmV2aW91c1BhbmVsQ2xhc3M7ZSYmZS5sZW5ndGgmJmUuc3BsaXQoIiAiKS5mb3JFYWNoKCh0PT57dGhpcy5fY2xhc3NMaXN0W3RdPSExfSkpLHRoaXMuX3ByZXZpb3VzUGFuZWxDbGFzcz10LHQmJnQubGVuZ3RoJiYodC5zcGxpdCgiICIpLmZvckVhY2goKHQ9Pnt0aGlzLl9jbGFzc0xpc3RbdF09ITB9KSksdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZT0iIil9Z2V0IGNsYXNzTGlzdCgpe3JldHVybiB0aGlzLnBhbmVsQ2xhc3N9c2V0IGNsYXNzTGlzdCh0KXt0aGlzLnBhbmVsQ2xhc3M9dH1uZ09uSW5pdCgpe3RoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5fdXBkYXRlRGlyZWN0RGVzY2VuZGFudHMoKSx0aGlzLl9rZXlNYW5hZ2VyPW5ldyBlSSh0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMpLndpdGhXcmFwKCkud2l0aFR5cGVBaGVhZCgpLndpdGhIb21lQW5kRW5kKCksdGhpcy5fdGFiU3Vic2NyaXB0aW9uPXRoaXMuX2tleU1hbmFnZXIudGFiT3V0LnN1YnNjcmliZSgoKCk9PnRoaXMuY2xvc2VkLmVtaXQoInRhYiIpKSksdGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zLmNoYW5nZXMucGlwZShOZSh0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMpLHplKCh0PT5yZSguLi50Lm1hcCgodD0+dC5fZm9jdXNlZCkpKSkpKS5zdWJzY3JpYmUoKHQ9PnRoaXMuX2tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbSh0KSkpfW5nT25EZXN0cm95KCl7dGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zLmRlc3Ryb3koKSx0aGlzLl90YWJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmNsb3NlZC5jb21wbGV0ZSgpfV9ob3ZlcmVkKCl7cmV0dXJuIHRoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcy5jaGFuZ2VzLnBpcGUoTmUodGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zKSx6ZSgodD0+cmUoLi4udC5tYXAoKHQ9PnQuX2hvdmVyZWQpKSkpKSl9YWRkSXRlbSh0KXt9cmVtb3ZlSXRlbSh0KXt9X2hhbmRsZUtleWRvd24odCl7Y29uc3QgZT10LmtleUNvZGUsbj10aGlzLl9rZXlNYW5hZ2VyO3N3aXRjaChlKXtjYXNlIHV6OmJ6KHQpfHwodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xvc2VkLmVtaXQoImtleWRvd24iKSk7YnJlYWs7Y2FzZSAzNzp0aGlzLnBhcmVudE1lbnUmJiJsdHIiPT09dGhpcy5kaXJlY3Rpb24mJnRoaXMuY2xvc2VkLmVtaXQoImtleWRvd24iKTticmVhaztjYXNlIDM5OnRoaXMucGFyZW50TWVudSYmInJ0bCI9PT10aGlzLmRpcmVjdGlvbiYmdGhpcy5jbG9zZWQuZW1pdCgia2V5ZG93biIpO2JyZWFrO2RlZmF1bHQ6ZSE9PWd6JiZlIT09aHp8fG4uc2V0Rm9jdXNPcmlnaW4oImtleWJvYXJkIiksbi5vbktleWRvd24odCl9fWZvY3VzRmlyc3RJdGVtKHQ9InByb2dyYW0iKXt0aGlzLmxhenlDb250ZW50P3RoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT50aGlzLl9mb2N1c0ZpcnN0SXRlbSh0KSkpOnRoaXMuX2ZvY3VzRmlyc3RJdGVtKHQpfV9mb2N1c0ZpcnN0SXRlbSh0KXtjb25zdCBlPXRoaXMuX2tleU1hbmFnZXI7aWYoZS5zZXRGb2N1c09yaWdpbih0KS5zZXRGaXJzdEl0ZW1BY3RpdmUoKSwhZS5hY3RpdmVJdGVtJiZ0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMubGVuZ3RoKXtsZXQgdD10aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMuZmlyc3QuX2dldEhvc3RFbGVtZW50KCkucGFyZW50RWxlbWVudDtmb3IoO3Q7KXtpZigibWVudSI9PT10LmdldEF0dHJpYnV0ZSgicm9sZSIpKXt0LmZvY3VzKCk7YnJlYWt9dD10LnBhcmVudEVsZW1lbnR9fX1yZXNldEFjdGl2ZUl0ZW0oKXt0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oLTEpfXNldEVsZXZhdGlvbih0KXtjb25zdCBlPU1hdGgubWluKHRoaXMuX2Jhc2VFbGV2YXRpb24rdCwyNCksbj1gJHt0aGlzLl9lbGV2YXRpb25QcmVmaXh9JHtlfWAsbz1PYmplY3Qua2V5cyh0aGlzLl9jbGFzc0xpc3QpLmZpbmQoKHQ9PnQuc3RhcnRzV2l0aCh0aGlzLl9lbGV2YXRpb25QcmVmaXgpKSk7byYmbyE9PXRoaXMuX3ByZXZpb3VzRWxldmF0aW9ufHwodGhpcy5fcHJldmlvdXNFbGV2YXRpb24mJih0aGlzLl9jbGFzc0xpc3RbdGhpcy5fcHJldmlvdXNFbGV2YXRpb25dPSExKSx0aGlzLl9jbGFzc0xpc3Rbbl09ITAsdGhpcy5fcHJldmlvdXNFbGV2YXRpb249bil9c2V0UG9zaXRpb25DbGFzc2VzKHQ9dGhpcy54UG9zaXRpb24sZT10aGlzLnlQb3NpdGlvbil7Y29uc3Qgbj10aGlzLl9jbGFzc0xpc3Q7blsibWF0LW1lbnUtYmVmb3JlIl09ImJlZm9yZSI9PT10LG5bIm1hdC1tZW51LWFmdGVyIl09ImFmdGVyIj09PXQsblsibWF0LW1lbnUtYWJvdmUiXT0iYWJvdmUiPT09ZSxuWyJtYXQtbWVudS1iZWxvdyJdPSJiZWxvdyI9PT1lfV9zdGFydEFuaW1hdGlvbigpe3RoaXMuX3BhbmVsQW5pbWF0aW9uU3RhdGU9ImVudGVyIn1fcmVzZXRBbmltYXRpb24oKXt0aGlzLl9wYW5lbEFuaW1hdGlvblN0YXRlPSJ2b2lkIn1fb25BbmltYXRpb25Eb25lKHQpe3RoaXMuX2FuaW1hdGlvbkRvbmUubmV4dCh0KSx0aGlzLl9pc0FuaW1hdGluZz0hMX1fb25BbmltYXRpb25TdGFydCh0KXt0aGlzLl9pc0FuaW1hdGluZz0hMCwiZW50ZXIiPT09dC50b1N0YXRlJiYwPT09dGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXgmJih0LmVsZW1lbnQuc2Nyb2xsVG9wPTApfV91cGRhdGVEaXJlY3REZXNjZW5kYW50cygpe3RoaXMuX2FsbEl0ZW1zLmNoYW5nZXMucGlwZShOZSh0aGlzLl9hbGxJdGVtcykpLnN1YnNjcmliZSgodD0+e3RoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcy5yZXNldCh0LmZpbHRlcigodD0+dC5fcGFyZW50TWVudT09PXRoaXMpKSksdGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zLm5vdGlmeU9uQ2hhbmdlcygpfSkpfX1YVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WFcpKFNtKGhnKSxTbShhXyksU20oWVcpKX0sWFcuybVkaXI9bG8oe3R5cGU6WFcsY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYoJGgobyxWVyw1KSwkaChvLFdXLDUpLCRoKG8sV1csNCkpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4ubGF6eUNvbnRlbnQ9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2FsbEl0ZW1zPXQpLEpoKHQ9dGIoKSkmJihuLml0ZW1zPXQpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKFhnLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4udGVtcGxhdGVSZWY9dC5maXJzdCl9fSxpbnB1dHM6e2JhY2tkcm9wQ2xhc3M6ImJhY2tkcm9wQ2xhc3MiLHhQb3NpdGlvbjoieFBvc2l0aW9uIix5UG9zaXRpb246InlQb3NpdGlvbiIsb3ZlcmxhcFRyaWdnZXI6Im92ZXJsYXBUcmlnZ2VyIixoYXNCYWNrZHJvcDoiaGFzQmFja2Ryb3AiLHBhbmVsQ2xhc3M6WyJjbGFzcyIsInBhbmVsQ2xhc3MiXSxjbGFzc0xpc3Q6ImNsYXNzTGlzdCIsYXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLGFyaWFMYWJlbGxlZGJ5OlsiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYUxhYmVsbGVkYnkiXSxhcmlhRGVzY3JpYmVkYnk6WyJhcmlhLWRlc2NyaWJlZGJ5IiwiYXJpYURlc2NyaWJlZGJ5Il19LG91dHB1dHM6e2Nsb3NlZDoiY2xvc2VkIixjbG9zZToiY2xvc2UifX0pLFhXLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWVddfV19XSxYVy5wcm9wRGVjb3JhdG9ycz17X2FsbEl0ZW1zOlt7dHlwZTpZYSxhcmdzOltXVyx7ZGVzY2VuZGFudHM6ITB9XX1dLGJhY2tkcm9wQ2xhc3M6W3t0eXBlOnh5fV0sYXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLGFyaWFEZXNjcmliZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtZGVzY3JpYmVkYnkiXX1dLHhQb3NpdGlvbjpbe3R5cGU6eHl9XSx5UG9zaXRpb246W3t0eXBlOnh5fV0sdGVtcGxhdGVSZWY6W3t0eXBlOlphLGFyZ3M6W1hnXX1dLGl0ZW1zOlt7dHlwZTpZYSxhcmdzOltXVyx7ZGVzY2VuZGFudHM6ITF9XX1dLGxhenlDb250ZW50Olt7dHlwZTpxYSxhcmdzOltWV119XSxvdmVybGFwVHJpZ2dlcjpbe3R5cGU6eHl9XSxoYXNCYWNrZHJvcDpbe3R5cGU6eHl9XSxwYW5lbENsYXNzOlt7dHlwZTp4eSxhcmdzOlsiY2xhc3MiXX1dLGNsYXNzTGlzdDpbe3R5cGU6eHl9XSxjbG9zZWQ6W3t0eXBlOk95fV0sY2xvc2U6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWFcsW3t0eXBlOkN5fV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1lXXX1dfV19KSx7YmFja2Ryb3BDbGFzczpbe3R5cGU6eHl9XSxjbG9zZWQ6W3t0eXBlOk95fV0sY2xvc2U6W3t0eXBlOk95fV0seFBvc2l0aW9uOlt7dHlwZTp4eX1dLHlQb3NpdGlvbjpbe3R5cGU6eHl9XSxvdmVybGFwVHJpZ2dlcjpbe3R5cGU6eHl9XSxoYXNCYWNrZHJvcDpbe3R5cGU6eHl9XSxwYW5lbENsYXNzOlt7dHlwZTp4eSxhcmdzOlsiY2xhc3MiXX1dLGNsYXNzTGlzdDpbe3R5cGU6eHl9XSxfYWxsSXRlbXM6W3t0eXBlOllhLGFyZ3M6W1dXLHtkZXNjZW5kYW50czohMH1dfV0sYXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLGFyaWFEZXNjcmliZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtZGVzY3JpYmVkYnkiXX1dLHRlbXBsYXRlUmVmOlt7dHlwZTpaYSxhcmdzOltYZ119XSxpdGVtczpbe3R5cGU6WWEsYXJnczpbV1cse2Rlc2NlbmRhbnRzOiExfV19XSxsYXp5Q29udGVudDpbe3R5cGU6cWEsYXJnczpbVlddfV19KTtjbGFzcyBLVyBleHRlbmRzIFhXe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUsbiksdGhpcy5fZWxldmF0aW9uUHJlZml4PSJtYXQtZWxldmF0aW9uLXoiLHRoaXMuX2Jhc2VFbGV2YXRpb249NH19S1cuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEtXKShTbShoZyksU20oYV8pLFNtKFlXKSl9LEtXLsm1Y21wPXRvKHt0eXBlOktXLHNlbGVjdG9yczpbWyJtYXQtbWVudSJdXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZqcCgiYXJpYS1sYWJlbCIsbnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbnVsbCkoImFyaWEtZGVzY3JpYmVkYnkiLG51bGwpfSxleHBvcnRBczpbIm1hdE1lbnUiXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOlVXLHVzZUV4aXN0aW5nOktXfV0pLHhwXSxuZ0NvbnRlbnRTZWxlY3RvcnM6RlcsZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbInRhYmluZGV4IiwiLTEiLCJyb2xlIiwibWVudSIsMSwibWF0LW1lbnUtcGFuZWwiLDMsImlkIiwibmdDbGFzcyIsImtleWRvd24iLCJjbGljayJdLFsxLCJtYXQtbWVudS1jb250ZW50Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFFwKDAsTFcsMyw2LCJuZy10ZW1wbGF0ZSIpKX0sZGlyZWN0aXZlczpbYU1dLHN0eWxlczpbIm1hdC1tZW51e2Rpc3BsYXk6bm9uZX0ubWF0LW1lbnUtcGFuZWx7bWluLXdpZHRoOjExMnB4O21heC13aWR0aDoyODBweDtvdmVyZmxvdzphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDQ4cHgpO2JvcmRlci1yYWRpdXM6NHB4O291dGxpbmU6MDttaW4taGVpZ2h0OjY0cHh9Lm1hdC1tZW51LXBhbmVsLm5nLWFuaW1hdGluZ3twb2ludGVyLWV2ZW50czpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LXBhbmVse291dGxpbmU6c29saWQgMXB4fS5tYXQtbWVudS1jb250ZW50Om5vdCg6ZW1wdHkpe3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1tZW51LWl0ZW17LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6NDhweDtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMTZweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bWF4LXdpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZW51LWl0ZW06Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0fVtkaXI9cnRsXSAubWF0LW1lbnUtaXRlbXt0ZXh0LWFsaWduOnJpZ2h0fS5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbnttYXJnaW4tcmlnaHQ6MTZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjp0b3B9W2Rpcj1ydGxdIC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbnttYXJnaW4tbGVmdDoxNnB4O21hcmdpbi1yaWdodDowfS5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXXtwb2ludGVyLWV2ZW50czpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LWl0ZW17bWFyZ2luLXRvcDoxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZHtvdXRsaW5lOmRvdHRlZCAxcHh9Lm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2Vye3BhZGRpbmctcmlnaHQ6MzJweH1bZGlyPXJ0bF0gLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2Vye3BhZGRpbmctcmlnaHQ6MTZweDtwYWRkaW5nLWxlZnQ6MzJweH0ubWF0LW1lbnUtc3VibWVudS1pY29ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTZweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDo1cHg7aGVpZ2h0OjEwcHg7ZmlsbDpjdXJyZW50Q29sb3J9W2Rpcj1ydGxdIC5tYXQtbWVudS1zdWJtZW51LWljb257cmlnaHQ6YXV0bztsZWZ0OjE2cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgc2NhbGVYKC0xKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWVudS1zdWJtZW51LWljb257ZmlsbDpDYW52YXNUZXh0fWJ1dHRvbi5tYXQtbWVudS1pdGVte3dpZHRoOjEwMCV9Lm1hdC1tZW51LWl0ZW0gLm1hdC1tZW51LXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lfVxuIl0sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbQlcudHJhbnNmb3JtTWVudSxCVy5mYWRlSW5JdGVtc119LGNoYW5nZURldGVjdGlvbjowfSksS1cuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltZV119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoS1csW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LW1lbnUiLHRlbXBsYXRlOic8bmctdGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz0ibWF0LW1lbnUtcGFuZWwiXG4gICAgW2lkXT0icGFuZWxJZCJcbiAgICBbbmdDbGFzc109Il9jbGFzc0xpc3QiXG4gICAgKGtleWRvd24pPSJfaGFuZGxlS2V5ZG93bigkZXZlbnQpIlxuICAgIChjbGljayk9ImNsb3NlZC5lbWl0KFwnY2xpY2tcJykiXG4gICAgW0B0cmFuc2Zvcm1NZW51XT0iX3BhbmVsQW5pbWF0aW9uU3RhdGUiXG4gICAgKEB0cmFuc2Zvcm1NZW51LnN0YXJ0KT0iX29uQW5pbWF0aW9uU3RhcnQoJGV2ZW50KSJcbiAgICAoQHRyYW5zZm9ybU1lbnUuZG9uZSk9Il9vbkFuaW1hdGlvbkRvbmUoJGV2ZW50KSJcbiAgICB0YWJpbmRleD0iLTEiXG4gICAgcm9sZT0ibWVudSJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT0iYXJpYUxhYmVsIHx8IG51bGwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT0iYXJpYUxhYmVsbGVkYnkgfHwgbnVsbCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT0iYXJpYURlc2NyaWJlZGJ5IHx8IG51bGwiPlxuICAgIDxkaXYgY2xhc3M9Im1hdC1tZW51LWNvbnRlbnQiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4nLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGV4cG9ydEFzOiJtYXRNZW51Iixob3N0OnsiW2F0dHIuYXJpYS1sYWJlbF0iOiJudWxsIiwiW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSI6Im51bGwiLCJbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSI6Im51bGwifSxhbmltYXRpb25zOltCVy50cmFuc2Zvcm1NZW51LEJXLmZhZGVJbkl0ZW1zXSxwcm92aWRlcnM6W3twcm92aWRlOlVXLHVzZUV4aXN0aW5nOktXfV0sc3R5bGVzOlsibWF0LW1lbnV7ZGlzcGxheTpub25lfS5tYXQtbWVudS1wYW5lbHttaW4td2lkdGg6MTEycHg7bWF4LXdpZHRoOjI4MHB4O292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gNDhweCk7Ym9yZGVyLXJhZGl1czo0cHg7b3V0bGluZTowO21pbi1oZWlnaHQ6NjRweH0ubWF0LW1lbnUtcGFuZWwubmctYW5pbWF0aW5ne3BvaW50ZXItZXZlbnRzOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtcGFuZWx7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC1tZW51LWNvbnRlbnQ6bm90KDplbXB0eSl7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LW1lbnUtaXRlbXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTpub25lO2JvcmRlcjpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDo0OHB4O2hlaWdodDo0OHB4O3BhZGRpbmc6MCAxNnB4O3RleHQtYWxpZ246bGVmdDt0ZXh0LWRlY29yYXRpb246bm9uZTttYXgtd2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1lbnUtaXRlbTo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF17Y3Vyc29yOmRlZmF1bHR9W2Rpcj1ydGxdIC5tYXQtbWVudS1pdGVte3RleHQtYWxpZ246cmlnaHR9Lm1hdC1tZW51LWl0ZW0gLm1hdC1pY29ue21hcmdpbi1yaWdodDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubWF0LW1lbnUtaXRlbSAubWF0LWljb24gc3Zne3ZlcnRpY2FsLWFsaWduOnRvcH1bZGlyPXJ0bF0gLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29ue21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjB9Lm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRde3BvaW50ZXItZXZlbnRzOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtaXRlbXttYXJnaW4tdG9wOjFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZCwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVke291dGxpbmU6ZG90dGVkIDFweH0ubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXJ7cGFkZGluZy1yaWdodDozMnB4fVtkaXI9cnRsXSAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXJ7cGFkZGluZy1yaWdodDoxNnB4O3BhZGRpbmctbGVmdDozMnB4fS5tYXQtbWVudS1zdWJtZW51LWljb257cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxNnB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3dpZHRoOjVweDtoZWlnaHQ6MTBweDtmaWxsOmN1cnJlbnRDb2xvcn1bZGlyPXJ0bF0gLm1hdC1tZW51LXN1Ym1lbnUtaWNvbntyaWdodDphdXRvO2xlZnQ6MTZweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSBzY2FsZVgoLTEpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LXN1Ym1lbnUtaWNvbntmaWxsOkNhbnZhc1RleHR9YnV0dG9uLm1hdC1tZW51LWl0ZW17d2lkdGg6MTAwJX0ubWF0LW1lbnUtaXRlbSAubWF0LW1lbnUtcmlwcGxle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmV9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1lXXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEpXPW5ldyBHYSgibWF0LW1lbnUtc2Nyb2xsLXN0cmF0ZWd5IiksUVc9e3Byb3ZpZGU6SlcsZGVwczpbcExdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gJFcodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCl9fSx0WT1Oeih7cGFzc2l2ZTohMH0pO2NsYXNzIGVZe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyl7dGhpcy5fb3ZlcmxheT10LHRoaXMuX2VsZW1lbnQ9ZSx0aGlzLl92aWV3Q29udGFpbmVyUmVmPW4sdGhpcy5fbWVudUl0ZW1JbnN0YW5jZT1hLHRoaXMuX2Rpcj1yLHRoaXMuX2ZvY3VzTW9uaXRvcj1zLHRoaXMuX292ZXJsYXlSZWY9bnVsbCx0aGlzLl9tZW51T3Blbj0hMSx0aGlzLl9jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbj1tLkVNUFRZLHRoaXMuX2hvdmVyU3Vic2NyaXB0aW9uPW0uRU1QVFksdGhpcy5fbWVudUNsb3NlU3Vic2NyaXB0aW9uPW0uRU1QVFksdGhpcy5faGFuZGxlVG91Y2hTdGFydD10PT57aEkodCl8fCh0aGlzLl9vcGVuZWRCeT0idG91Y2giKX0sdGhpcy5fb3BlbmVkQnk9dm9pZCAwLHRoaXMucmVzdG9yZUZvY3VzPSEwLHRoaXMubWVudU9wZW5lZD1uZXcgTGgsdGhpcy5vbk1lbnVPcGVuPXRoaXMubWVudU9wZW5lZCx0aGlzLm1lbnVDbG9zZWQ9bmV3IExoLHRoaXMub25NZW51Q2xvc2U9dGhpcy5tZW51Q2xvc2VkLHRoaXMuX3Njcm9sbFN0cmF0ZWd5PW8sdGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51PWkgaW5zdGFuY2VvZiBYVz9pOnZvaWQgMCxlLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5faGFuZGxlVG91Y2hTdGFydCx0WSksYSYmKGEuX3RyaWdnZXJzU3VibWVudT10aGlzLnRyaWdnZXJzU3VibWVudSgpKX1nZXQgX2RlcHJlY2F0ZWRNYXRNZW51VHJpZ2dlckZvcigpe3JldHVybiB0aGlzLm1lbnV9c2V0IF9kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3IodCl7dGhpcy5tZW51PXR9Z2V0IG1lbnUoKXtyZXR1cm4gdGhpcy5fbWVudX1zZXQgbWVudSh0KXt0IT09dGhpcy5fbWVudSYmKHRoaXMuX21lbnU9dCx0aGlzLl9tZW51Q2xvc2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0JiYodCE9PXRoaXMuX3BhcmVudE1hdGVyaWFsTWVudXx8InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fChmdW5jdGlvbiBlKCl7dGhyb3cgRXJyb3IoIm1hdE1lbnVUcmlnZ2VyRm9yOiBtZW51IGNhbm5vdCBjb250YWluIGl0cyBvd24gdHJpZ2dlci4gQXNzaWduIGEgbWVudSB0aGF0IGlzIG5vdCBhIHBhcmVudCBvZiB0aGUgdHJpZ2dlciBvciBtb3ZlIHRoZSB0cmlnZ2VyIG91dHNpZGUgb2YgdGhlIG1lbnUuIil9KSgpLHRoaXMuX21lbnVDbG9zZVN1YnNjcmlwdGlvbj10LmNsb3NlLnN1YnNjcmliZSgodD0+e3RoaXMuX2Rlc3Ryb3lNZW51KHQpLCJjbGljayIhPT10JiYidGFiIiE9PXR8fCF0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnV8fHRoaXMuX3BhcmVudE1hdGVyaWFsTWVudS5jbG9zZWQuZW1pdCh0KX0pKSkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2NoZWNrTWVudSgpLHRoaXMuX2hhbmRsZUhvdmVyKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9vdmVybGF5UmVmJiYodGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCksdGhpcy5fb3ZlcmxheVJlZj1udWxsKSx0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5faGFuZGxlVG91Y2hTdGFydCx0WSksdGhpcy5fbWVudUNsb3NlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9ob3ZlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfWdldCBtZW51T3Blbigpe3JldHVybiB0aGlzLl9tZW51T3Blbn1nZXQgZGlyKCl7cmV0dXJuIHRoaXMuX2RpciYmInJ0bCI9PT10aGlzLl9kaXIudmFsdWU/InJ0bCI6Imx0ciJ9dHJpZ2dlcnNTdWJtZW51KCl7cmV0dXJuISghdGhpcy5fbWVudUl0ZW1JbnN0YW5jZXx8IXRoaXMuX3BhcmVudE1hdGVyaWFsTWVudSl9dG9nZ2xlTWVudSgpe3JldHVybiB0aGlzLl9tZW51T3Blbj90aGlzLmNsb3NlTWVudSgpOnRoaXMub3Blbk1lbnUoKX1vcGVuTWVudSgpe2lmKHRoaXMuX21lbnVPcGVuKXJldHVybjt0aGlzLl9jaGVja01lbnUoKTtjb25zdCB0PXRoaXMuX2NyZWF0ZU92ZXJsYXkoKSxlPXQuZ2V0Q29uZmlnKCk7dGhpcy5fc2V0UG9zaXRpb24oZS5wb3NpdGlvblN0cmF0ZWd5KSxlLmhhc0JhY2tkcm9wPW51bGw9PXRoaXMubWVudS5oYXNCYWNrZHJvcD8hdGhpcy50cmlnZ2Vyc1N1Ym1lbnUoKTp0aGlzLm1lbnUuaGFzQmFja2Ryb3AsdC5hdHRhY2godGhpcy5fZ2V0UG9ydGFsKCkpLHRoaXMubWVudS5sYXp5Q29udGVudCYmdGhpcy5tZW51LmxhenlDb250ZW50LmF0dGFjaCh0aGlzLm1lbnVEYXRhKSx0aGlzLl9jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbj10aGlzLl9tZW51Q2xvc2luZ0FjdGlvbnMoKS5zdWJzY3JpYmUoKCgpPT50aGlzLmNsb3NlTWVudSgpKSksdGhpcy5faW5pdE1lbnUoKSx0aGlzLm1lbnUgaW5zdGFuY2VvZiBYVyYmdGhpcy5tZW51Ll9zdGFydEFuaW1hdGlvbigpfWNsb3NlTWVudSgpe3RoaXMubWVudS5jbG9zZS5lbWl0KCl9Zm9jdXModCxlKXt0aGlzLl9mb2N1c01vbml0b3ImJnQ/dGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2VsZW1lbnQsdCxlKTp0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoZSl9dXBkYXRlUG9zaXRpb24oKXt2YXIgdDtudWxsPT09KHQ9dGhpcy5fb3ZlcmxheVJlZil8fHZvaWQgMD09PXR8fHQudXBkYXRlUG9zaXRpb24oKX1fZGVzdHJveU1lbnUodCl7aWYoIXRoaXMuX292ZXJsYXlSZWZ8fCF0aGlzLm1lbnVPcGVuKXJldHVybjtjb25zdCBlPXRoaXMubWVudTt0aGlzLl9jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCksIXRoaXMucmVzdG9yZUZvY3VzfHwia2V5ZG93biIhPT10JiZ0aGlzLl9vcGVuZWRCeSYmdGhpcy50cmlnZ2Vyc1N1Ym1lbnUoKXx8dGhpcy5mb2N1cyh0aGlzLl9vcGVuZWRCeSksdGhpcy5fb3BlbmVkQnk9dm9pZCAwLGUgaW5zdGFuY2VvZiBYVz8oZS5fcmVzZXRBbmltYXRpb24oKSxlLmxhenlDb250ZW50P2UuX2FuaW1hdGlvbkRvbmUucGlwZShjZSgodD0+InZvaWQiPT09dC50b1N0YXRlKSksYmUoMSksSWUoZS5sYXp5Q29udGVudC5fYXR0YWNoZWQpKS5zdWJzY3JpYmUoe25leHQ6KCk9PmUubGF6eUNvbnRlbnQuZGV0YWNoKCksY29tcGxldGU6KCk9PnRoaXMuX3NldElzTWVudU9wZW4oITEpfSk6dGhpcy5fc2V0SXNNZW51T3BlbighMSkpOih0aGlzLl9zZXRJc01lbnVPcGVuKCExKSxlLmxhenlDb250ZW50JiZlLmxhenlDb250ZW50LmRldGFjaCgpKX1faW5pdE1lbnUoKXt0aGlzLm1lbnUucGFyZW50TWVudT10aGlzLnRyaWdnZXJzU3VibWVudSgpP3RoaXMuX3BhcmVudE1hdGVyaWFsTWVudTp2b2lkIDAsdGhpcy5tZW51LmRpcmVjdGlvbj10aGlzLmRpcix0aGlzLl9zZXRNZW51RWxldmF0aW9uKCksdGhpcy5tZW51LmZvY3VzRmlyc3RJdGVtKHRoaXMuX29wZW5lZEJ5fHwicHJvZ3JhbSIpLHRoaXMuX3NldElzTWVudU9wZW4oITApfV9zZXRNZW51RWxldmF0aW9uKCl7aWYodGhpcy5tZW51LnNldEVsZXZhdGlvbil7bGV0IHQ9MCxlPXRoaXMubWVudS5wYXJlbnRNZW51O2Zvcig7ZTspdCsrLGU9ZS5wYXJlbnRNZW51O3RoaXMubWVudS5zZXRFbGV2YXRpb24odCl9fV9zZXRJc01lbnVPcGVuKHQpe3RoaXMuX21lbnVPcGVuPXQsdGhpcy5fbWVudU9wZW4/dGhpcy5tZW51T3BlbmVkLmVtaXQoKTp0aGlzLm1lbnVDbG9zZWQuZW1pdCgpLHRoaXMudHJpZ2dlcnNTdWJtZW51KCkmJnRoaXMuX21lbnVJdGVtSW5zdGFuY2UuX3NldEhpZ2hsaWdodGVkKHQpfV9jaGVja01lbnUoKXt0aGlzLm1lbnV8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHwoCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiB0KCl7dGhyb3cgRXJyb3IoJ21hdE1lbnVUcmlnZ2VyRm9yOiBtdXN0IHBhc3MgaW4gYW4gbWF0LW1lbnUgaW5zdGFuY2UuXG5cbiAgICBFeGFtcGxlOlxuICAgICAgPG1hdC1tZW51ICNtZW51PSJtYXRNZW51Ij48L21hdC1tZW51PlxuICAgICAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPSJtZW51Ij48L2J1dHRvbj4nKX0pKCl9X2NyZWF0ZU92ZXJsYXkoKXtpZighdGhpcy5fb3ZlcmxheVJlZil7Y29uc3QgdD10aGlzLl9nZXRPdmVybGF5Q29uZmlnKCk7dGhpcy5fc3Vic2NyaWJlVG9Qb3NpdGlvbnModC5wb3NpdGlvblN0cmF0ZWd5KSx0aGlzLl9vdmVybGF5UmVmPXRoaXMuX292ZXJsYXkuY3JlYXRlKHQpLHRoaXMuX292ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnN1YnNjcmliZSgpfXJldHVybiB0aGlzLl9vdmVybGF5UmVmfV9nZXRPdmVybGF5Q29uZmlnKCl7cmV0dXJuIG5ldyBWRih7cG9zaXRpb25TdHJhdGVneTp0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50KS53aXRoTG9ja2VkUG9zaXRpb24oKS53aXRoR3Jvd0FmdGVyT3BlbigpLndpdGhUcmFuc2Zvcm1PcmlnaW5PbigiLm1hdC1tZW51LXBhbmVsLCAubWF0LW1kYy1tZW51LXBhbmVsIiksYmFja2Ryb3BDbGFzczp0aGlzLm1lbnUuYmFja2Ryb3BDbGFzc3x8ImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIixwYW5lbENsYXNzOnRoaXMubWVudS5vdmVybGF5UGFuZWxDbGFzcyxzY3JvbGxTdHJhdGVneTp0aGlzLl9zY3JvbGxTdHJhdGVneSgpLGRpcmVjdGlvbjp0aGlzLl9kaXJ9KX1fc3Vic2NyaWJlVG9Qb3NpdGlvbnModCl7dGhpcy5tZW51LnNldFBvc2l0aW9uQ2xhc3NlcyYmdC5wb3NpdGlvbkNoYW5nZXMuc3Vic2NyaWJlKCh0PT57dGhpcy5tZW51LnNldFBvc2l0aW9uQ2xhc3Nlcygic3RhcnQiPT09dC5jb25uZWN0aW9uUGFpci5vdmVybGF5WD8iYWZ0ZXIiOiJiZWZvcmUiLCJ0b3AiPT09dC5jb25uZWN0aW9uUGFpci5vdmVybGF5WT8iYmVsb3ciOiJhYm92ZSIpfSkpfV9zZXRQb3NpdGlvbih0KXtsZXRbZSxuXT0iYmVmb3JlIj09PXRoaXMubWVudS54UG9zaXRpb24/WyJlbmQiLCJzdGFydCJdOlsic3RhcnQiLCJlbmQiXSxbbyxpXT0iYWJvdmUiPT09dGhpcy5tZW51LnlQb3NpdGlvbj9bImJvdHRvbSIsInRvcCJdOlsidG9wIiwiYm90dG9tIl0sW2Escl09W28saV0sW3MsbF09W2Usbl0sYz0wO3RoaXMudHJpZ2dlcnNTdWJtZW51KCk/KGw9ZT0iYmVmb3JlIj09PXRoaXMubWVudS54UG9zaXRpb24/InN0YXJ0IjoiZW5kIixuPXM9ImVuZCI9PT1lPyJzdGFydCI6ImVuZCIsYz0iYm90dG9tIj09PW8/ODotOCk6dGhpcy5tZW51Lm92ZXJsYXBUcmlnZ2VyfHwoYT0idG9wIj09PW8/ImJvdHRvbSI6InRvcCIscj0idG9wIj09PWk/ImJvdHRvbSI6InRvcCIpLHQud2l0aFBvc2l0aW9ucyhbe29yaWdpblg6ZSxvcmlnaW5ZOmEsb3ZlcmxheVg6cyxvdmVybGF5WTpvLG9mZnNldFk6Y30se29yaWdpblg6bixvcmlnaW5ZOmEsb3ZlcmxheVg6bCxvdmVybGF5WTpvLG9mZnNldFk6Y30se29yaWdpblg6ZSxvcmlnaW5ZOnIsb3ZlcmxheVg6cyxvdmVybGF5WTppLG9mZnNldFk6LWN9LHtvcmlnaW5YOm4sb3JpZ2luWTpyLG92ZXJsYXlYOmwsb3ZlcmxheVk6aSxvZmZzZXRZOi1jfV0pfV9tZW51Q2xvc2luZ0FjdGlvbnMoKXtjb25zdCB0PXRoaXMuX292ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLGU9dGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpO3JldHVybiByZSh0LHRoaXMuX3BhcmVudE1hdGVyaWFsTWVudT90aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUuY2xvc2VkOkV0KCksdGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51P3RoaXMuX3BhcmVudE1hdGVyaWFsTWVudS5faG92ZXJlZCgpLnBpcGUoY2UoKHQ9PnQhPT10aGlzLl9tZW51SXRlbUluc3RhbmNlKSksY2UoKCgpPT50aGlzLl9tZW51T3BlbikpKTpFdCgpLGUpfV9oYW5kbGVNb3VzZWRvd24odCl7Z0kodCl8fCh0aGlzLl9vcGVuZWRCeT0wPT09dC5idXR0b24/Im1vdXNlIjp2b2lkIDAsdGhpcy50cmlnZ2Vyc1N1Ym1lbnUoKSYmdC5wcmV2ZW50RGVmYXVsdCgpKX1faGFuZGxlS2V5ZG93bih0KXtjb25zdCBlPXQua2V5Q29kZTtlIT09bXomJmUhPT1menx8KHRoaXMuX29wZW5lZEJ5PSJrZXlib2FyZCIpLHRoaXMudHJpZ2dlcnNTdWJtZW51KCkmJigzOT09PWUmJiJsdHIiPT09dGhpcy5kaXJ8fDM3PT09ZSYmInJ0bCI9PT10aGlzLmRpcikmJih0aGlzLl9vcGVuZWRCeT0ia2V5Ym9hcmQiLHRoaXMub3Blbk1lbnUoKSl9X2hhbmRsZUNsaWNrKHQpe3RoaXMudHJpZ2dlcnNTdWJtZW51KCk/KHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vcGVuTWVudSgpKTp0aGlzLnRvZ2dsZU1lbnUoKX1faGFuZGxlSG92ZXIoKXt0aGlzLnRyaWdnZXJzU3VibWVudSgpJiZ0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUmJih0aGlzLl9ob3ZlclN1YnNjcmlwdGlvbj10aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUuX2hvdmVyZWQoKS5waXBlKGNlKCh0PT50PT09dGhpcy5fbWVudUl0ZW1JbnN0YW5jZSYmIXQuZGlzYWJsZWQpKSxDZSgwLCQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fb3BlbmVkQnk9Im1vdXNlIix0aGlzLm1lbnUgaW5zdGFuY2VvZiBYVyYmdGhpcy5tZW51Ll9pc0FuaW1hdGluZz90aGlzLm1lbnUuX2FuaW1hdGlvbkRvbmUucGlwZShiZSgxKSxDZSgwLCQpLEllKHRoaXMuX3BhcmVudE1hdGVyaWFsTWVudS5faG92ZXJlZCgpKSkuc3Vic2NyaWJlKCgoKT0+dGhpcy5vcGVuTWVudSgpKSk6dGhpcy5vcGVuTWVudSgpfSkpKX1fZ2V0UG9ydGFsKCl7cmV0dXJuIHRoaXMuX3BvcnRhbCYmdGhpcy5fcG9ydGFsLnRlbXBsYXRlUmVmPT09dGhpcy5tZW51LnRlbXBsYXRlUmVmfHwodGhpcy5fcG9ydGFsPW5ldyB4Rih0aGlzLm1lbnUudGVtcGxhdGVSZWYsdGhpcy5fdmlld0NvbnRhaW5lclJlZikpLHRoaXMuX3BvcnRhbH19ZVkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGVZKShTbShwTCksU20oaGcpLFNtKGVoKSxTbShKVyksU20oVVcsOCksU20oV1csMTApLFNtKEhJLDgpLFNtKFNJKSl9LGVZLsm1ZGlyPWxvKHt0eXBlOmVZLHNlbGVjdG9yczpbWyIiLCJtYXQtbWVudS10cmlnZ2VyLWZvciIsIiJdLFsiIiwibWF0TWVudVRyaWdnZXJGb3IiLCIiXV0saG9zdEF0dHJzOlsiYXJpYS1oYXNwb3B1cCIsInRydWUiLDEsIm1hdC1tZW51LXRyaWdnZXIiXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgibW91c2Vkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlTW91c2Vkb3duKGUpfSkpKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlS2V5ZG93bihlKX0pKSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVDbGljayhlKX0pKSwyJmUmJmpwKCJhcmlhLWV4cGFuZGVkIixuLm1lbnVPcGVufHxudWxsKSgiYXJpYS1jb250cm9scyIsbi5tZW51T3Blbj9uLm1lbnUucGFuZWxJZDpudWxsKX0saW5wdXRzOntyZXN0b3JlRm9jdXM6WyJtYXRNZW51VHJpZ2dlclJlc3RvcmVGb2N1cyIsInJlc3RvcmVGb2N1cyJdLF9kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3I6WyJtYXQtbWVudS10cmlnZ2VyLWZvciIsIl9kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3IiXSxtZW51OlsibWF0TWVudVRyaWdnZXJGb3IiLCJtZW51Il0sbWVudURhdGE6WyJtYXRNZW51VHJpZ2dlckRhdGEiLCJtZW51RGF0YSJdfSxvdXRwdXRzOnttZW51T3BlbmVkOiJtZW51T3BlbmVkIixvbk1lbnVPcGVuOiJvbk1lbnVPcGVuIixtZW51Q2xvc2VkOiJtZW51Q2xvc2VkIixvbk1lbnVDbG9zZToib25NZW51Q2xvc2UifSxleHBvcnRBczpbIm1hdE1lbnVUcmlnZ2VyIl19KSxlWS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnBMfSx7dHlwZTpoZ30se3R5cGU6ZWh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltKV119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1VXXX0se3R5cGU6U3J9XX0se3R5cGU6V1csZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfV19LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlNJfV0sZVkucHJvcERlY29yYXRvcnM9e19kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3I6W3t0eXBlOnh5LGFyZ3M6WyJtYXQtbWVudS10cmlnZ2VyLWZvciJdfV0sbWVudTpbe3R5cGU6eHksYXJnczpbIm1hdE1lbnVUcmlnZ2VyRm9yIl19XSxtZW51RGF0YTpbe3R5cGU6eHksYXJnczpbIm1hdE1lbnVUcmlnZ2VyRGF0YSJdfV0scmVzdG9yZUZvY3VzOlt7dHlwZTp4eSxhcmdzOlsibWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXMiXX1dLG1lbnVPcGVuZWQ6W3t0eXBlOk95fV0sb25NZW51T3Blbjpbe3R5cGU6T3l9XSxtZW51Q2xvc2VkOlt7dHlwZTpPeX1dLG9uTWVudUNsb3NlOlt7dHlwZTpPeX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGVZLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXQtbWVudS10cmlnZ2VyLWZvcl0sIFttYXRNZW51VHJpZ2dlckZvcl0iLGhvc3Q6e2NsYXNzOiJtYXQtbWVudS10cmlnZ2VyIiwiYXJpYS1oYXNwb3B1cCI6InRydWUiLCJbYXR0ci5hcmlhLWV4cGFuZGVkXSI6Im1lbnVPcGVuIHx8IG51bGwiLCJbYXR0ci5hcmlhLWNvbnRyb2xzXSI6Im1lbnVPcGVuID8gbWVudS5wYW5lbElkIDogbnVsbCIsIihtb3VzZWRvd24pIjoiX2hhbmRsZU1vdXNlZG93bigkZXZlbnQpIiwiKGtleWRvd24pIjoiX2hhbmRsZUtleWRvd24oJGV2ZW50KSIsIihjbGljaykiOiJfaGFuZGxlQ2xpY2soJGV2ZW50KSJ9LGV4cG9ydEFzOiJtYXRNZW51VHJpZ2dlciJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpwTH0se3R5cGU6aGd9LHt0eXBlOmVofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSlddfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltVV119LHt0eXBlOlNyfV19LHt0eXBlOldXLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpTSX1dfSkse3Jlc3RvcmVGb2N1czpbe3R5cGU6eHksYXJnczpbIm1hdE1lbnVUcmlnZ2VyUmVzdG9yZUZvY3VzIl19XSxtZW51T3BlbmVkOlt7dHlwZTpPeX1dLG9uTWVudU9wZW46W3t0eXBlOk95fV0sbWVudUNsb3NlZDpbe3R5cGU6T3l9XSxvbk1lbnVDbG9zZTpbe3R5cGU6T3l9XSxfZGVwcmVjYXRlZE1hdE1lbnVUcmlnZ2VyRm9yOlt7dHlwZTp4eSxhcmdzOlsibWF0LW1lbnUtdHJpZ2dlci1mb3IiXX1dLG1lbnU6W3t0eXBlOnh5LGFyZ3M6WyJtYXRNZW51VHJpZ2dlckZvciJdfV0sbWVudURhdGE6W3t0eXBlOnh5LGFyZ3M6WyJtYXRNZW51VHJpZ2dlckRhdGEiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBuWXt9blkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5ZKX0sblkuybVtb2Q9YW8oe3R5cGU6bll9KSxuWS7JtWluaj12bih7cHJvdmlkZXJzOltRV10saW1wb3J0czpbWEldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChuWSxbe3R5cGU6QXksYXJnczpbe2V4cG9ydHM6W2VZLGpXLFhJXSxkZWNsYXJhdGlvbnM6W2VZLGpXXSxwcm92aWRlcnM6W1FXXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKG5ZLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bZVksalddfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW2VZLGpXLFhJXX19KTtjbGFzcyBvWXt9ZnVuY3Rpb24gaVkodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiw4KX1mdW5jdGlvbiBhWSh0LGUpezEmdCYmVG0oMCwibWF0LWljb24iLDkpfWZ1bmN0aW9uIHJZKHQsZSl7MSZ0JiZUbSgwLCJtYXQtaWNvbiIsMTApfXZhciBzWTtvWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b1kpfSxvWS7JtW1vZD1hbyh7dHlwZTpvWX0pLG9ZLsm1aW5qPXZuKHtwcm92aWRlcnM6W1FXXSxpbXBvcnRzOltbV00sWEksU0gseUwsblldLHlGLFhJLG5ZXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgob1ksW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltXTSxYSSxTSCx5TCxuWV0sZXhwb3J0czpbeUYsWEksS1csV1csblldLGRlY2xhcmF0aW9uczpbS1csV1ddLHByb3ZpZGVyczpbUVddfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8ob1kse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltLVyxXV119LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bV00sWEksU0gseUwsblldfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3lGLFhJLEtXLFdXLG5ZXX19KSwoZnVuY3Rpb24odCl7dFt0LkRFRkFVTFQ9MF09IkRFRkFVTFQiLHRbdC5EQVJLX01PREVfT049MV09IkRBUktfTU9ERV9PTiIsdFt0LkRBUktfTU9ERV9PRkY9Ml09IkRBUktfTU9ERV9PRkYifSkoc1l8fChzWT17fSkpO2NsYXNzIGxZe2NvbnN0cnVjdG9yKCl7dGhpcy5EYXJrTW9kZU92ZXJyaWRlPXNZLHRoaXMub25PdmVycmlkZUNoYW5nZWQ9bmV3IExofWdldEJ1dHRvblRpdGxlKCl7bGV0IHQ7c3dpdGNoKHRoaXMuZGFya01vZGVPdmVycmlkZSl7Y2FzZSBzWS5ERUZBVUxUOnQ9IkJyb3dzZXIgZGVmYXVsdCI7YnJlYWs7Y2FzZSBzWS5EQVJLX01PREVfT046dD0iRGFyayBtb2RlIjticmVhaztjYXNlIHNZLkRBUktfTU9ERV9PRkY6dD0iTGlnaHQgbW9kZSJ9cmV0dXJuYEN1cnJlbnQgbW9kZTogWyR7dH1dLiBTd2l0Y2ggYmV0d2VlbiBicm93c2VyIGRlZmF1bHQsIGxpZ2h0LCBvciBkYXJrIHRoZW1lLmB9fWxZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsWSl9LGxZLsm1Y21wPXRvKHt0eXBlOmxZLHNlbGVjdG9yczpbWyJhcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGUtY29tcG9uZW50Il1dLGlucHV0czp7ZGFya01vZGVPdmVycmlkZToiZGFya01vZGVPdmVycmlkZSJ9LG91dHB1dHM6e29uT3ZlcnJpZGVDaGFuZ2VkOiJvbk92ZXJyaWRlQ2hhbmdlZCJ9LGRlY2xzOjE1LHZhcnM6Nixjb25zdHM6W1sibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsIk1lbnUgZm9yIGNoYW5naW5nIGxpZ2h0IG9yIGRhcmsgdGhlbWUiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIiwibmdTd2l0Y2giLCJ0aXRsZSJdLFsic3ZnSWNvbiIsImJyaWdodG5lc3NfNl8yNHB4Iiw0LCJuZ1N3aXRjaENhc2UiXSxbInN2Z0ljb24iLCJsaWdodF9tb2RlXzI0cHgiLDQsIm5nU3dpdGNoQ2FzZSJdLFsic3ZnSWNvbiIsImRhcmtfbW9kZV8yNHB4Iiw0LCJuZ1N3aXRjaENhc2UiXSxbIm1lbnUiLCJtYXRNZW51Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwidGl0bGUiLCJTZXQgdGhlIHRoZW1lIHRvIG1hdGNoIHRoZSBkZWZhdWx0IG1vZGUgaW4gdGhlIGJyb3dzZXIuIiwzLCJjbGljayJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInRpdGxlIiwiRm9yY2UgbGlnaHQgVGVuc29yQm9hcmQgdGhlbWUuIiwzLCJjbGljayJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInRpdGxlIiwiRm9yY2UgZGFyayBUZW5zb3JCb2FyZCB0aGVtZS4iLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiYnJpZ2h0bmVzc182XzI0cHgiXSxbInN2Z0ljb24iLCJsaWdodF9tb2RlXzI0cHgiXSxbInN2Z0ljb24iLCJkYXJrX21vZGVfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiYnV0dG9uIiwwKSxRcCgxLGlZLDEsMCwibWF0LWljb24iLDEpLFFwKDIsYVksMSwwLCJtYXQtaWNvbiIsMiksUXAoMyxyWSwxLDAsIm1hdC1pY29uIiwzKSxBbSgpLFJtKDQsIm1hdC1tZW51IixudWxsLDQpLFJtKDYsImJ1dHRvbiIsNSksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uT3ZlcnJpZGVDaGFuZ2VkLmVtaXQobi5EYXJrTW9kZU92ZXJyaWRlLkRFRkFVTFQpfSkpLFJtKDcsImxhYmVsIiksa3UoOCwiQnJvd3NlciBkZWZhdWx0IiksQW0oKSxBbSgpLFJtKDksImJ1dHRvbiIsNiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uT3ZlcnJpZGVDaGFuZ2VkLmVtaXQobi5EYXJrTW9kZU92ZXJyaWRlLkRBUktfTU9ERV9PRkYpfSkpLFJtKDEwLCJsYWJlbCIpLGt1KDExLCJMaWdodCIpLEFtKCksQW0oKSxSbSgxMiwiYnV0dG9uIiw3KSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25PdmVycmlkZUNoYW5nZWQuZW1pdChuLkRhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09OKX0pKSxSbSgxMywibGFiZWwiKSxrdSgxNCwiRGFyayIpLEFtKCksQW0oKSxBbSgpKSwyJmUmJihEbSgibWF0TWVudVRyaWdnZXJGb3IiLCRwKDUpKSgibmdTd2l0Y2giLG4uZGFya01vZGVPdmVycmlkZSkoInRpdGxlIixuLmdldEJ1dHRvblRpdGxlKCkpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLG4uRGFya01vZGVPdmVycmlkZS5ERUZBVUxUKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIixuLkRhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09GRikscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsbi5EYXJrTW9kZU92ZXJyaWRlLkRBUktfTU9ERV9PTikpfSxkaXJlY3RpdmVzOltYSCxlWSxmTSxnTSxLVyxXVyxEV10sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJhcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGUtY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPSJtZW51IlxuICAgICAgYXJpYS1sYWJlbD0iTWVudSBmb3IgY2hhbmdpbmcgbGlnaHQgb3IgZGFyayB0aGVtZSJcbiAgICAgIFtuZ1N3aXRjaF09ImRhcmtNb2RlT3ZlcnJpZGUiXG4gICAgICBbdGl0bGVdPSJnZXRCdXR0b25UaXRsZSgpIlxuICAgID5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICAqbmdTd2l0Y2hDYXNlPSJEYXJrTW9kZU92ZXJyaWRlLkRFRkFVTFQiXG4gICAgICAgIHN2Z0ljb249ImJyaWdodG5lc3NfNl8yNHB4IlxuICAgICAgPjwvbWF0LWljb24+XG4gICAgICA8bWF0LWljb25cbiAgICAgICAgKm5nU3dpdGNoQ2FzZT0iRGFya01vZGVPdmVycmlkZS5EQVJLX01PREVfT0ZGIlxuICAgICAgICBzdmdJY29uPSJsaWdodF9tb2RlXzI0cHgiXG4gICAgICA+PC9tYXQtaWNvbj5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICAqbmdTd2l0Y2hDYXNlPSJEYXJrTW9kZU92ZXJyaWRlLkRBUktfTU9ERV9PTiJcbiAgICAgICAgc3ZnSWNvbj0iZGFya19tb2RlXzI0cHgiXG4gICAgICA+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnUgI21lbnU9Im1hdE1lbnUiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIHRpdGxlPSJTZXQgdGhlIHRoZW1lIHRvIG1hdGNoIHRoZSBkZWZhdWx0IG1vZGUgaW4gdGhlIGJyb3dzZXIuIlxuICAgICAgICAoY2xpY2spPSJvbk92ZXJyaWRlQ2hhbmdlZC5lbWl0KERhcmtNb2RlT3ZlcnJpZGUuREVGQVVMVCkiXG4gICAgICA+XG4gICAgICAgIDxsYWJlbD5Ccm93c2VyIGRlZmF1bHQ8L2xhYmVsPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgdGl0bGU9IkZvcmNlIGxpZ2h0IFRlbnNvckJvYXJkIHRoZW1lLiJcbiAgICAgICAgKGNsaWNrKT0ib25PdmVycmlkZUNoYW5nZWQuZW1pdChEYXJrTW9kZU92ZXJyaWRlLkRBUktfTU9ERV9PRkYpIlxuICAgICAgPlxuICAgICAgICA8bGFiZWw+TGlnaHQ8L2xhYmVsPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgdGl0bGU9IkZvcmNlIGRhcmsgVGVuc29yQm9hcmQgdGhlbWUuIlxuICAgICAgICAoY2xpY2spPSJvbk92ZXJyaWRlQ2hhbmdlZC5lbWl0KERhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09OKSJcbiAgICAgID5cbiAgICAgICAgPGxhYmVsPkRhcms8L2xhYmVsPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtbWVudT5cbiAgJ31dfV0sbnVsbCx7ZGFya01vZGVPdmVycmlkZTpbe3R5cGU6eHl9XSxvbk92ZXJyaWRlQ2hhbmdlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIGNZe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmRhcmtNb2RlT3ZlcnJpZGUkPXRoaXMuc3RvcmUuc2VsZWN0KFFEKS5waXBlKEl0KCh0PT5udWxsPT09dD9zWS5ERUZBVUxUOnQ/c1kuREFSS19NT0RFX09OOnNZLkRBUktfTU9ERV9PRkYpKSl9Y2hhbmdlRGFya01vZGUodCl7bGV0IGU9bnVsbDtzd2l0Y2godCl7Y2FzZSBzWS5ERUZBVUxUOmU9bnVsbDticmVhaztjYXNlIHNZLkRBUktfTU9ERV9PRkY6ZT0hMTticmVhaztjYXNlIHNZLkRBUktfTU9ERV9PTjplPSEwfXRoaXMuc3RvcmUuZGlzcGF0Y2goV0Eoe2VuYWJsZURhcmtNb2RlOmV9KSl9fWNZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjWSkoU20oSXcpKX0sY1kuybVjbXA9dG8oe3R5cGU6Y1ksc2VsZWN0b3JzOltbImFwcC1oZWFkZXItZGFyay1tb2RlLXRvZ2dsZSJdXSxkZWNsczoyLHZhcnM6Myxjb25zdHM6W1szLCJkYXJrTW9kZU92ZXJyaWRlIiwib25PdmVycmlkZUNoYW5nZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImFwcC1oZWFkZXItZGFyay1tb2RlLXRvZ2dsZS1jb21wb25lbnQiLDApLFZtKCJvbk92ZXJyaWRlQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uY2hhbmdlRGFya01vZGUoZSl9KSksQWgoMSwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJkYXJrTW9kZU92ZXJyaWRlIixUaCgxLDEsbi5kYXJrTW9kZU92ZXJyaWRlJCkpfSxkaXJlY3RpdmVzOltsWV0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGNZLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImFwcC1oZWFkZXItZGFyay1tb2RlLXRvZ2dsZSIsdGVtcGxhdGU6J1xuICAgIDxhcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGUtY29tcG9uZW50XG4gICAgICBbZGFya01vZGVPdmVycmlkZV09ImRhcmtNb2RlT3ZlcnJpZGUkIHwgYXN5bmMiXG4gICAgICAob25PdmVycmlkZUNoYW5nZWQpPSJjaGFuZ2VEYXJrTW9kZSgkZXZlbnQpIlxuICAgID5cbiAgICA8L2FwcC1oZWFkZXItZGFyay1tb2RlLXRvZ2dsZS1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y29uc3QgZFk9WncodlIsTVIsKCh0LGUpPT4hKCFlfHwhdFtlXSkmJnRbZV0uZGlzYWJsZV9yZWxvYWQpKTtjbGFzcyBwWXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5yZWxvYWREaXNhYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoZFkpLHRoaXMuaXNSZWxvYWRpbmckPXRoaXMuc3RvcmUuc2VsZWN0KF9SKS5waXBlKGZlKHRoaXMucmVsb2FkRGlzYWJsZWQkKSxJdCgoKFt0LGVdKT0+IWUmJnQ9PT15RS5MT0FESU5HKSkpLHRoaXMubGFzdExvYWRlZFRpbWVJbk1zJD10aGlzLnN0b3JlLnNlbGVjdChDUil9dHJpZ2dlclJlbG9hZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2godkUoKSl9Z2V0UmVsb2FkVGl0bGUodCl7cmV0dXJuIHQ/YExhc3QgVXBkYXRlZDogJHt0fWA6IkxvYWRpbmcuLi4ifX1mdW5jdGlvbiBtWSh0KXtyZXR1cm4gdC5zdGF0ZSE9PXlFLk5PVF9MT0FERUQmJnQuc3RhdGUhPT15RS5MT0FESU5HfXBZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxwWSkoU20oSXcpKX0scFkuybVjbXA9dG8oe3R5cGU6cFksc2VsZWN0b3JzOltbImFwcC1oZWFkZXItcmVsb2FkIl1dLGRlY2xzOjYsdmFyczoxMyxjb25zdHM6W1sibWF0LWljb24tYnV0dG9uIiwiIiwxLCJyZWxvYWQtYnV0dG9uIiwzLCJ0aXRsZSIsImRpc2FibGVkIiwiY2xpY2siXSxbInN2Z0ljb24iLCJyZWZyZXNoXzI0cHgiLDEsInJlZnJlc2gtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiYnV0dG9uIiwwKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4udHJpZ2dlclJlbG9hZCgpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiZGF0ZSIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxUbSg1LCJtYXQtaWNvbiIsMSksQW0oKSksMiZlJiYocHUoImxvYWRpbmciLFRoKDEsNCxuLmlzUmVsb2FkaW5nJCkpLERtKCJ0aXRsZSIsbi5nZXRSZWxvYWRUaXRsZShOaCgyLDYsVGgoMyw5LG4ubGFzdExvYWRlZFRpbWVJbk1zJCksIm1lZGl1bSIpKSkoImRpc2FibGVkIixUaCg0LDExLG4ucmVsb2FkRGlzYWJsZWQkKSkpfSxkaXJlY3RpdmVzOltYSCxEV10scGlwZXM6W3dNLFJNXSxzdHlsZXM6WyIucmVsb2FkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5yZWZyZXNoLWljb25bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5yZWxvYWQtYnV0dG9uLmxvYWRpbmdbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYW5pbWF0aW9uOiByb3RhdGUgMnMgbGluZWFyIGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgICA1MCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJhcHAtaGVhZGVyLXJlbG9hZCIsdGVtcGxhdGU6J1xuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPSJyZWxvYWQtYnV0dG9uIlxuICAgICAgW2NsYXNzLmxvYWRpbmddPSJpc1JlbG9hZGluZyQgfCBhc3luYyJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgKGNsaWNrKT0idHJpZ2dlclJlbG9hZCgpIlxuICAgICAgW3RpdGxlXT0iZ2V0UmVsb2FkVGl0bGUobGFzdExvYWRlZFRpbWVJbk1zJCB8IGFzeW5jIHwgZGF0ZTogXCdtZWRpdW1cJykiXG4gICAgICBbZGlzYWJsZWRdPSJyZWxvYWREaXNhYmxlZCQgfCBhc3luYyJcbiAgICA+XG4gICAgICA8bWF0LWljb24gY2xhc3M9InJlZnJlc2gtaWNvbiIgc3ZnSWNvbj0icmVmcmVzaF8yNHB4Ij48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAnLHN0eWxlczpbIlxuICAgICAgLnJlbG9hZC1idXR0b24sXG4gICAgICAucmVmcmVzaC1pY29uIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5yZWxvYWQtYnV0dG9uLmxvYWRpbmcge1xuICAgICAgICBhbmltYXRpb246IHJvdGF0ZSAycyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgcm90YXRlIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y29uc3QgdVk9eWsod04sYmsodk4sKHQ9Pm1ZKHQpP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ3M6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MpLHtyZWxvYWRFbmFibGVkOiF0LnNldHRpbmdzLnJlbG9hZEVuYWJsZWR9KX0pOnQpKSxiayh4TiwoKHQse3BlcmlvZEluTXM6ZX0pPT57aWYoIW1ZKHQpKXJldHVybiB0O2NvbnN0IG49ZT49M2U0P2U6dC5zZXR0aW5ncy5yZWxvYWRQZXJpb2RJbk1zO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdzKSx7cmVsb2FkUGVyaW9kSW5NczpufSl9KX0pKSxiayhPTiwoKHQse3NpemU6ZX0pPT57aWYoIW1ZKHQpKXJldHVybiB0O2NvbnN0IG49ZT4wP2U6dC5zZXR0aW5ncy5wYWdlU2l6ZTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncykse3BhZ2VTaXplOm59KX0pfSkpLGJrKFdTLCgodCx7cGFydGlhbFNldHRpbmdzOmV9KT0+e2NvbnN0IG49e307cmV0dXJuIE51bWJlci5pc0Zpbml0ZShlLnBhZ2VTaXplKSYmZS5wYWdlU2l6ZT4wJiYobi5wYWdlU2l6ZT1lLnBhZ2VTaXplKSwiYm9vbGVhbiI9PXR5cGVvZiBlLmF1dG9SZWxvYWQmJihuLnJlbG9hZEVuYWJsZWQ9ZS5hdXRvUmVsb2FkKSxOdW1iZXIuaXNGaW5pdGUoZS5hdXRvUmVsb2FkUGVyaW9kSW5NcykmJmUuYXV0b1JlbG9hZFBlcmlvZEluTXM+M2U0JiYobi5yZWxvYWRQZXJpb2RJbk1zPWUuYXV0b1JlbG9hZFBlcmlvZEluTXMpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ3M6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MpLG4pfSl9KSkpO2Z1bmN0aW9uIGZZKHQsZSl7cmV0dXJuIHVZKHQsZSl9Y29uc3QgZ1k9WyJpbnB1dCJdLGhZPWZ1bmN0aW9uKHQpe3JldHVybntlbnRlckR1cmF0aW9uOnR9fSxiWT1uZXcgR2EoIm1hdC1jaGVja2JveC1kZWZhdWx0LW9wdGlvbnMiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIHlZKCl7cmV0dXJue2NvbG9yOiJhY2NlbnQiLGNsaWNrQWN0aW9uOiJjaGVjay1pbmRldGVybWluYXRlIn19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL30pO2xldCBfWT0wO2NvbnN0IENZPXtjb2xvcjoiYWNjZW50IixjbGlja0FjdGlvbjoiY2hlY2staW5kZXRlcm1pbmF0ZSJ9LE1ZPXtwcm92aWRlOklWLHVzZUV4aXN0aW5nOnFlKCgoKT0+T1kpKSxtdWx0aTohMH07Y2xhc3Mgdll7fWNvbnN0IHhZPSRJKEpJKFFJKEtJKGNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuX2VsZW1lbnRSZWY9dH19KSkpKTtjbGFzcyBPWSBleHRlbmRzIHhZe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3N1cGVyKHQpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fZm9jdXNNb25pdG9yPW4sdGhpcy5fbmdab25lPW8sdGhpcy5fYW5pbWF0aW9uTW9kZT1hLHRoaXMuX29wdGlvbnM9cix0aGlzLmFyaWFMYWJlbD0iIix0aGlzLmFyaWFMYWJlbGxlZGJ5PW51bGwsdGhpcy5fdW5pcXVlSWQ9Im1hdC1jaGVja2JveC0iKyArK19ZLHRoaXMuaWQ9dGhpcy5fdW5pcXVlSWQsdGhpcy5sYWJlbFBvc2l0aW9uPSJhZnRlciIsdGhpcy5uYW1lPW51bGwsdGhpcy5jaGFuZ2U9bmV3IExoLHRoaXMuaW5kZXRlcm1pbmF0ZUNoYW5nZT1uZXcgTGgsdGhpcy5fb25Ub3VjaGVkPSgpPT57fSx0aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3M9IiIsdGhpcy5fY3VycmVudENoZWNrU3RhdGU9MCx0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuPSgpPT57fSx0aGlzLl9jaGVja2VkPSExLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX2luZGV0ZXJtaW5hdGU9ITEsdGhpcy5fb3B0aW9ucz10aGlzLl9vcHRpb25zfHxDWSx0aGlzLmNvbG9yPXRoaXMuZGVmYXVsdENvbG9yPXRoaXMuX29wdGlvbnMuY29sb3J8fENZLmNvbG9yLHRoaXMudGFiSW5kZXg9cGFyc2VJbnQoaSl8fDB9Z2V0IGlucHV0SWQoKXtyZXR1cm5gJHt0aGlzLmlkfHx0aGlzLl91bmlxdWVJZH0taW5wdXRgfWdldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLl9yZXF1aXJlZH1zZXQgcmVxdWlyZWQodCl7dGhpcy5fcmVxdWlyZWQ9eXoodCl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwhMCkuc3Vic2NyaWJlKCh0PT57dHx8UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9Pnt0aGlzLl9vblRvdWNoZWQoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pKX0pKSx0aGlzLl9zeW5jSW5kZXRlcm1pbmF0ZSh0aGlzLl9pbmRldGVybWluYXRlKX1uZ0FmdGVyVmlld0NoZWNrZWQoKXt9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZil9Z2V0IGNoZWNrZWQoKXtyZXR1cm4gdGhpcy5fY2hlY2tlZH1zZXQgY2hlY2tlZCh0KXt0IT10aGlzLmNoZWNrZWQmJih0aGlzLl9jaGVja2VkPXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7Y29uc3QgZT15eih0KTtlIT09dGhpcy5kaXNhYmxlZCYmKHRoaXMuX2Rpc2FibGVkPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWdldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuX2luZGV0ZXJtaW5hdGV9c2V0IGluZGV0ZXJtaW5hdGUodCl7Y29uc3QgZT10IT10aGlzLl9pbmRldGVybWluYXRlO3RoaXMuX2luZGV0ZXJtaW5hdGU9eXoodCksZSYmKHRoaXMuX3RyYW5zaXRpb25DaGVja1N0YXRlKHRoaXMuX2luZGV0ZXJtaW5hdGU/Mzp0aGlzLmNoZWNrZWQ/MToyKSx0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2UuZW1pdCh0aGlzLl9pbmRldGVybWluYXRlKSksdGhpcy5fc3luY0luZGV0ZXJtaW5hdGUodGhpcy5faW5kZXRlcm1pbmF0ZSl9X2lzUmlwcGxlRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kaXNhYmxlUmlwcGxlfHx0aGlzLmRpc2FibGVkfV9vbkxhYmVsVGV4dENoYW5nZSgpe3RoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKX13cml0ZVZhbHVlKHQpe3RoaXMuY2hlY2tlZD0hIXR9cmVnaXN0ZXJPbkNoYW5nZSh0KXt0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuPXR9cmVnaXN0ZXJPblRvdWNoZWQodCl7dGhpcy5fb25Ub3VjaGVkPXR9c2V0RGlzYWJsZWRTdGF0ZSh0KXt0aGlzLmRpc2FibGVkPXR9X2dldEFyaWFDaGVja2VkKCl7cmV0dXJuIHRoaXMuY2hlY2tlZD8idHJ1ZSI6dGhpcy5pbmRldGVybWluYXRlPyJtaXhlZCI6ImZhbHNlIn1fdHJhbnNpdGlvbkNoZWNrU3RhdGUodCl7bGV0IGU9dGhpcy5fY3VycmVudENoZWNrU3RhdGUsbj10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7aWYoZSE9PXQmJih0aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3MubGVuZ3RoPjAmJm4uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3MpLHRoaXMuX2N1cnJlbnRBbmltYXRpb25DbGFzcz10aGlzLl9nZXRBbmltYXRpb25DbGFzc0ZvckNoZWNrU3RhdGVUcmFuc2l0aW9uKGUsdCksdGhpcy5fY3VycmVudENoZWNrU3RhdGU9dCx0aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3MubGVuZ3RoPjApKXtuLmNsYXNzTGlzdC5hZGQodGhpcy5fY3VycmVudEFuaW1hdGlvbkNsYXNzKTtjb25zdCB0PXRoaXMuX2N1cnJlbnRBbmltYXRpb25DbGFzczt0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57c2V0VGltZW91dCgoKCk9PntuLmNsYXNzTGlzdC5yZW1vdmUodCl9KSwxZTMpfSkpfX1fZW1pdENoYW5nZUV2ZW50KCl7Y29uc3QgdD1uZXcgdlk7dC5zb3VyY2U9dGhpcyx0LmNoZWNrZWQ9dGhpcy5jaGVja2VkLHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5jaGVja2VkKSx0aGlzLmNoYW5nZS5lbWl0KHQpLHRoaXMuX2lucHV0RWxlbWVudCYmKHRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQ9dGhpcy5jaGVja2VkKX10b2dnbGUoKXt0aGlzLmNoZWNrZWQ9IXRoaXMuY2hlY2tlZH1fb25JbnB1dENsaWNrKHQpe3ZhciBlO2NvbnN0IG49bnVsbD09PShlPXRoaXMuX29wdGlvbnMpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNsaWNrQWN0aW9uO3Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5kaXNhYmxlZHx8Im5vb3AiPT09bj90aGlzLmRpc2FibGVkfHwibm9vcCIhPT1ufHwodGhpcy5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZD10aGlzLmNoZWNrZWQsdGhpcy5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5kZXRlcm1pbmF0ZT10aGlzLmluZGV0ZXJtaW5hdGUpOih0aGlzLmluZGV0ZXJtaW5hdGUmJiJjaGVjayIhPT1uJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX2luZGV0ZXJtaW5hdGU9ITEsdGhpcy5pbmRldGVybWluYXRlQ2hhbmdlLmVtaXQodGhpcy5faW5kZXRlcm1pbmF0ZSl9KSksdGhpcy50b2dnbGUoKSx0aGlzLl90cmFuc2l0aW9uQ2hlY2tTdGF0ZSh0aGlzLl9jaGVja2VkPzE6MiksdGhpcy5fZW1pdENoYW5nZUV2ZW50KCkpfWZvY3VzKHQsZSl7dD90aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5faW5wdXRFbGVtZW50LHQsZSk6dGhpcy5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoZSl9X29uSW50ZXJhY3Rpb25FdmVudCh0KXt0LnN0b3BQcm9wYWdhdGlvbigpfV9nZXRBbmltYXRpb25DbGFzc0ZvckNoZWNrU3RhdGVUcmFuc2l0aW9uKHQsZSl7aWYoIk5vb3BBbmltYXRpb25zIj09PXRoaXMuX2FuaW1hdGlvbk1vZGUpcmV0dXJuIiI7bGV0IG49IiI7c3dpdGNoKHQpe2Nhc2UgMDppZigxPT09ZSluPSJ1bmNoZWNrZWQtY2hlY2tlZCI7ZWxzZXtpZigzIT1lKXJldHVybiIiO249InVuY2hlY2tlZC1pbmRldGVybWluYXRlIn1icmVhaztjYXNlIDI6bj0xPT09ZT8idW5jaGVja2VkLWNoZWNrZWQiOiJ1bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSI7YnJlYWs7Y2FzZSAxOm49Mj09PWU/ImNoZWNrZWQtdW5jaGVja2VkIjoiY2hlY2tlZC1pbmRldGVybWluYXRlIjticmVhaztjYXNlIDM6bj0xPT09ZT8iaW5kZXRlcm1pbmF0ZS1jaGVja2VkIjoiaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQifXJldHVybmBtYXQtY2hlY2tib3gtYW5pbS0ke259YH1fc3luY0luZGV0ZXJtaW5hdGUodCl7Y29uc3QgZT10aGlzLl9pbnB1dEVsZW1lbnQ7ZSYmKGUubmF0aXZlRWxlbWVudC5pbmRldGVybWluYXRlPXQpfX1PWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8T1kpKFNtKGhnKSxTbShVZyksU20oU0kpLFNtKGFfKSxOYSgidGFiaW5kZXgiKSxTbShWUCw4KSxTbShiWSw4KSl9LE9ZLsm1Y21wPXRvKHt0eXBlOk9ZLHNlbGVjdG9yczpbWyJtYXQtY2hlY2tib3giXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChnWSw1KSxRaChrSCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5faW5wdXRFbGVtZW50PXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLnJpcHBsZT10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LWNoZWNrYm94Il0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJihUdSgiaWQiLG4uaWQpLGpwKCJ0YWJpbmRleCIsbnVsbCkscHUoIm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIixuLmluZGV0ZXJtaW5hdGUpKCJtYXQtY2hlY2tib3gtY2hlY2tlZCIsbi5jaGVja2VkKSgibWF0LWNoZWNrYm94LWRpc2FibGVkIixuLmRpc2FibGVkKSgibWF0LWNoZWNrYm94LWxhYmVsLWJlZm9yZSIsImJlZm9yZSI9PW4ubGFiZWxQb3NpdGlvbikoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIiwiTm9vcEFuaW1hdGlvbnMiPT09bi5fYW5pbWF0aW9uTW9kZSkpfSxpbnB1dHM6e2Rpc2FibGVSaXBwbGU6ImRpc2FibGVSaXBwbGUiLGNvbG9yOiJjb2xvciIsdGFiSW5kZXg6InRhYkluZGV4IixhcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdLGlkOiJpZCIsbGFiZWxQb3NpdGlvbjoibGFiZWxQb3NpdGlvbiIsbmFtZToibmFtZSIscmVxdWlyZWQ6InJlcXVpcmVkIixjaGVja2VkOiJjaGVja2VkIixkaXNhYmxlZDoiZGlzYWJsZWQiLGluZGV0ZXJtaW5hdGU6ImluZGV0ZXJtaW5hdGUiLGFyaWFEZXNjcmliZWRieTpbImFyaWEtZGVzY3JpYmVkYnkiLCJhcmlhRGVzY3JpYmVkYnkiXSx2YWx1ZToidmFsdWUifSxvdXRwdXRzOntjaGFuZ2U6ImNoYW5nZSIsaW5kZXRlcm1pbmF0ZUNoYW5nZToiaW5kZXRlcm1pbmF0ZUNoYW5nZSJ9LGV4cG9ydEFzOlsibWF0Q2hlY2tib3giXSxmZWF0dXJlczpbcGcoW01ZXSkseHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczoxNyx2YXJzOjIxLGNvbnN0czpbWzEsIm1hdC1jaGVja2JveC1sYXlvdXQiXSxbImxhYmVsIiwiIl0sWzEsIm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIiXSxbInR5cGUiLCJjaGVja2JveCIsMSwibWF0LWNoZWNrYm94LWlucHV0IiwiY2RrLXZpc3VhbGx5LWhpZGRlbiIsMywiaWQiLCJyZXF1aXJlZCIsImNoZWNrZWQiLCJkaXNhYmxlZCIsInRhYkluZGV4IiwiY2hhbmdlIiwiY2xpY2siXSxbImlucHV0IiwiIl0sWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1jaGVja2JveC1yaXBwbGUiLCJtYXQtZm9jdXMtaW5kaWNhdG9yIiwzLCJtYXRSaXBwbGVUcmlnZ2VyIiwibWF0UmlwcGxlRGlzYWJsZWQiLCJtYXRSaXBwbGVSYWRpdXMiLCJtYXRSaXBwbGVDZW50ZXJlZCIsIm1hdFJpcHBsZUFuaW1hdGlvbiJdLFsxLCJtYXQtcmlwcGxlLWVsZW1lbnQiLCJtYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGUiXSxbMSwibWF0LWNoZWNrYm94LWZyYW1lIl0sWzEsIm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIl0sWyJ2ZXJzaW9uIiwiMS4xIiwiZm9jdXNhYmxlIiwiZmFsc2UiLCJ2aWV3Qm94IiwiMCAwIDI0IDI0IiwwLCJ4bWwiLCJzcGFjZSIsInByZXNlcnZlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtYXQtY2hlY2tib3gtY2hlY2ttYXJrIl0sWyJmaWxsIiwibm9uZSIsInN0cm9rZSIsIndoaXRlIiwiZCIsIk00LjEsMTIuNyA5LDE3LjYgMjAuMyw2LjMiLDEsIm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCJdLFsxLCJtYXQtY2hlY2tib3gtbWl4ZWRtYXJrIl0sWzEsIm1hdC1jaGVja2JveC1sYWJlbCIsMywiY2RrT2JzZXJ2ZUNvbnRlbnQiXSxbImNoZWNrYm94TGFiZWwiLCIiXSxbMiwiZGlzcGxheSIsIm5vbmUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFptKCksUm0oMCwibGFiZWwiLDAsMSksUm0oMiwic3BhbiIsMiksUm0oMywiaW5wdXQiLDMsNCksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uSW50ZXJhY3Rpb25FdmVudChlKX0pKSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9vbklucHV0Q2xpY2soZSl9KSksQW0oKSxSbSg1LCJzcGFuIiw1KSxUbSg2LCJzcGFuIiw2KSxBbSgpLFRtKDcsInNwYW4iLDcpLFJtKDgsInNwYW4iLDgpLHFpKCksUm0oOSwic3ZnIiw5KSxUbSgxMCwicGF0aCIsMTApLEFtKCksWmkoKSxUbSgxMSwic3BhbiIsMTEpLEFtKCksQW0oKSxSbSgxMiwic3BhbiIsMTIsMTMpLFZtKCJjZGtPYnNlcnZlQ29udGVudCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25MYWJlbFRleHRDaGFuZ2UoKX0pKSxSbSgxNCwic3BhbiIsMTQpLGt1KDE1LCLCoCIpLEFtKCksWG0oMTYpLEFtKCksQW0oKSksMiZlKXtjb25zdCB0PSRwKDEpLGU9JHAoMTMpO2pwKCJmb3IiLG4uaW5wdXRJZCkscmMoMikscHUoIm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXItbm8tc2lkZS1tYXJnaW4iLCFlLnRleHRDb250ZW50fHwhZS50ZXh0Q29udGVudC50cmltKCkpLHJjKDEpLERtKCJpZCIsbi5pbnB1dElkKSgicmVxdWlyZWQiLG4ucmVxdWlyZWQpKCJjaGVja2VkIixuLmNoZWNrZWQpKCJkaXNhYmxlZCIsbi5kaXNhYmxlZCkoInRhYkluZGV4IixuLnRhYkluZGV4KSxqcCgidmFsdWUiLG4udmFsdWUpKCJuYW1lIixuLm5hbWUpKCJhcmlhLWxhYmVsIixuLmFyaWFMYWJlbHx8bnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbi5hcmlhTGFiZWxsZWRieSkoImFyaWEtY2hlY2tlZCIsbi5fZ2V0QXJpYUNoZWNrZWQoKSkoImFyaWEtZGVzY3JpYmVkYnkiLG4uYXJpYURlc2NyaWJlZGJ5KSxyYygyKSxEbSgibWF0UmlwcGxlVHJpZ2dlciIsdCkoIm1hdFJpcHBsZURpc2FibGVkIixuLl9pc1JpcHBsZURpc2FibGVkKCkpKCJtYXRSaXBwbGVSYWRpdXMiLDIwKSgibWF0UmlwcGxlQ2VudGVyZWQiLCEwKSgibWF0UmlwcGxlQW5pbWF0aW9uIixNaCgxOSxoWSwiTm9vcEFuaW1hdGlvbnMiPT09bi5fYW5pbWF0aW9uTW9kZT8wOjE1MCkpfX0sZGlyZWN0aXZlczpba0gsanpdLHN0eWxlczpbIkBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZHswJXtvcGFjaXR5OjB9NTAle29wYWNpdHk6MX19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZHswJSw1MCV7b3BhY2l0eToxfTEwMCV7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC11bmNoZWNrZWQtY2hlY2tlZC1jaGVja21hcmstcGF0aHswJSw1MCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjIuOTEwMjU5fTUwJXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSl9MTAwJXtzdHJva2UtZGFzaG9mZnNldDowfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmt7MCUsNjguMiV7dHJhbnNmb3JtOnNjYWxlWCgwKX02OC4yJXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLCAwLCAwLCAxKX0xMDAle3RyYW5zZm9ybTpzY2FsZVgoMSl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWNoZWNrZWQtdW5jaGVja2VkLWNoZWNrbWFyay1wYXRoe2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtzdHJva2UtZGFzaG9mZnNldDowfXRve3N0cm9rZS1kYXNob2Zmc2V0Oi0yMi45MTAyNTl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1jaGVja21hcmt7ZnJvbXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSk7b3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtY2hlY2ttYXJre2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC4xNCwgMCwgMCwgMSk7b3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmt7ZnJvbXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSk7b3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLW1peGVkbWFya3tmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMTQsIDAsIDAsIDEpO29wYWNpdHk6MTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDMxNWRlZyl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkLW1peGVkbWFya3swJXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlWCgxKX0zMi44JSwxMDAle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDApfX0ubWF0LWNoZWNrYm94LWJhY2tncm91bmQsLm1hdC1jaGVja2JveC1mcmFtZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LWNoZWNrYm94e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtY2hlY2tib3h7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZSl7b3BhY2l0eTouMTZ9Lm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LXJpcHBsZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OmNhbGMoNTAlIC0gMjBweCk7dG9wOmNhbGMoNTAlIC0gMjBweCk7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtY2hlY2tib3guY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jaGVja2JveC1yaXBwbGV7b3V0bGluZTpzb2xpZCAzcHh9Lm1hdC1jaGVja2JveC1sYXlvdXR7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjppbmhlcml0O2FsaWduLWl0ZW1zOmJhc2VsaW5lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtkaXNwbGF5OmlubGluZS1mbGV4O3doaXRlLXNwYWNlOm5vd3JhcH0ubWF0LWNoZWNrYm94LWxhYmVsey13ZWJraXQtdXNlci1zZWxlY3Q6YXV0bzstbW96LXVzZXItc2VsZWN0OmF1dG87LW1zLXVzZXItc2VsZWN0OmF1dG87dXNlci1zZWxlY3Q6YXV0b30ubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTZweDtsaW5lLWhlaWdodDowO21hcmdpbjphdXRvO21hcmdpbi1yaWdodDo4cHg7b3JkZXI6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjE2cHg7ZmxleC1zaHJpbms6MH1bZGlyPXJ0bF0gLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXJ7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDphdXRvfS5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyLW5vLXNpZGUtbWFyZ2lue21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjB9Lm1hdC1jaGVja2JveC1mcmFtZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIDkwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKTtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1jaGVja2JveC1mcmFtZXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDkwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSxvcGFjaXR5IDkwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKTstd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDpleGFjdDtjb2xvci1hZGp1c3Q6ZXhhY3R9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHt0cmFuc2l0aW9uOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kOm5vbmV9Lm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dHJhbnNmb3JtOm5vbmV9Lm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXI6aG92ZXIgLm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5Oi4wNH0ubWF0LWNoZWNrYm94LmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGV7b3BhY2l0eTouMTJ9Lm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LWNoZWNrYm94Lm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcjpob3ZlciAubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6MH1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyOmhvdmVyIC5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGV7ZGlzcGxheTpub25lfX0ubWF0LWNoZWNrYm94LWNoZWNrbWFya3t0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlfS5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7c3Ryb2tlLWRhc2hvZmZzZXQ6MjIuOTEwMjU5O3N0cm9rZS1kYXNoYXJyYXk6MjIuOTEwMjU5O3N0cm9rZS13aWR0aDoyLjEzMzMzMzMzMzNweH0uY2RrLWhpZ2gtY29udHJhc3QtYmxhY2stb24td2hpdGUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHtzdHJva2U6IzAwMCAhaW1wb3J0YW50fS5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre3dpZHRoOmNhbGMoMTAwJSAtIDZweCk7aGVpZ2h0OjJweDtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlWCgwKSByb3RhdGUoMGRlZyk7Ym9yZGVyLXJhZGl1czoycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWNoZWNrYm94LW1peGVkbWFya3toZWlnaHQ6MDtib3JkZXItdG9wOnNvbGlkIDJweDttYXJnaW4tdG9wOjJweH0ubWF0LWNoZWNrYm94LWxhYmVsLWJlZm9yZSAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcntvcmRlcjoxO21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6YXV0b31bZGlyPXJ0bF0gLm1hdC1jaGVja2JveC1sYWJlbC1iZWZvcmUgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXJ7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6OHB4fS5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWNoZWNrbWFya3tvcGFjaXR5OjF9Lm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7c3Ryb2tlLWRhc2hvZmZzZXQ6MH0ubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7dHJhbnNmb3JtOnNjYWxlWCgxKSByb3RhdGUoLTQ1ZGVnKX0ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1jaGVja21hcmt7b3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjB9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGVYKDEpIHJvdGF0ZSgwZGVnKX0ubWF0LWNoZWNrYm94LXVuY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LWNoZWNrYm94LWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1jaGVja2JveC1kaXNhYmxlZHtvcGFjaXR5Oi41fS5tYXQtY2hlY2tib3gtYW5pbS11bmNoZWNrZWQtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZH0ubWF0LWNoZWNrYm94LWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHthbmltYXRpb246MTgwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtdW5jaGVja2VkLWNoZWNrZWQtY2hlY2ttYXJrLXBhdGh9Lm1hdC1jaGVja2JveC1hbmltLXVuY2hlY2tlZC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHthbmltYXRpb246MTgwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kfS5tYXQtY2hlY2tib3gtYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LW1peGVkbWFya3thbmltYXRpb246OTBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmt9Lm1hdC1jaGVja2JveC1hbmltLWNoZWNrZWQtdW5jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHthbmltYXRpb246MTgwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZH0ubWF0LWNoZWNrYm94LWFuaW0tY2hlY2tlZC11bmNoZWNrZWQgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHthbmltYXRpb246OTBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aH0ubWF0LWNoZWNrYm94LWFuaW0tY2hlY2tlZC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJre2FuaW1hdGlvbjo5MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1jaGVja21hcmt9Lm1hdC1jaGVja2JveC1hbmltLWNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LW1peGVkbWFya3thbmltYXRpb246OTBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1pbmRldGVybWluYXRlLWNoZWNrZWQgLm1hdC1jaGVja2JveC1jaGVja21hcmt7YW5pbWF0aW9uOjUwMG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1jaGVja21hcmt9Lm1hdC1jaGVja2JveC1hbmltLWluZGV0ZXJtaW5hdGUtY2hlY2tlZCAubWF0LWNoZWNrYm94LW1peGVkbWFya3thbmltYXRpb246NTAwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLW1peGVkbWFya30ubWF0LWNoZWNrYm94LWFuaW0taW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2FuaW1hdGlvbjoxODBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kfS5tYXQtY2hlY2tib3gtYW5pbS1pbmRldGVybWluYXRlLXVuY2hlY2tlZCAubWF0LWNoZWNrYm94LW1peGVkbWFya3thbmltYXRpb246MzAwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQtbWl4ZWRtYXJrfS5tYXQtY2hlY2tib3gtaW5wdXR7Ym90dG9tOjA7bGVmdDo1MCV9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxPWS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6U0l9LHt0eXBlOmFffSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltiWV19XX1dLE9ZLnByb3BEZWNvcmF0b3JzPXthcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0sYXJpYURlc2NyaWJlZGJ5Olt7dHlwZTp4eSxhcmdzOlsiYXJpYS1kZXNjcmliZWRieSJdfV0saWQ6W3t0eXBlOnh5fV0scmVxdWlyZWQ6W3t0eXBlOnh5fV0sbGFiZWxQb3NpdGlvbjpbe3R5cGU6eHl9XSxuYW1lOlt7dHlwZTp4eX1dLGNoYW5nZTpbe3R5cGU6T3l9XSxpbmRldGVybWluYXRlQ2hhbmdlOlt7dHlwZTpPeX1dLHZhbHVlOlt7dHlwZTp4eX1dLF9pbnB1dEVsZW1lbnQ6W3t0eXBlOlphLGFyZ3M6WyJpbnB1dCJdfV0scmlwcGxlOlt7dHlwZTpaYSxhcmdzOltrSF19XSxjaGVja2VkOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dLGluZGV0ZXJtaW5hdGU6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoT1ksW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWNoZWNrYm94Iix0ZW1wbGF0ZTonPGxhYmVsIFthdHRyLmZvcl09ImlucHV0SWQiIGNsYXNzPSJtYXQtY2hlY2tib3gtbGF5b3V0IiAjbGFiZWw+XG4gIDxzcGFuIGNsYXNzPSJtYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIlxuICAgICAgIFtjbGFzcy5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyLW5vLXNpZGUtbWFyZ2luXT0iIWNoZWNrYm94TGFiZWwudGV4dENvbnRlbnQgfHwgIWNoZWNrYm94TGFiZWwudGV4dENvbnRlbnQudHJpbSgpIj5cbiAgICA8aW5wdXQgI2lucHV0XG4gICAgICAgICAgIGNsYXNzPSJtYXQtY2hlY2tib3gtaW5wdXQgY2RrLXZpc3VhbGx5LWhpZGRlbiIgdHlwZT0iY2hlY2tib3giXG4gICAgICAgICAgIFtpZF09ImlucHV0SWQiXG4gICAgICAgICAgIFtyZXF1aXJlZF09InJlcXVpcmVkIlxuICAgICAgICAgICBbY2hlY2tlZF09ImNoZWNrZWQiXG4gICAgICAgICAgIFthdHRyLnZhbHVlXT0idmFsdWUiXG4gICAgICAgICAgIFtkaXNhYmxlZF09ImRpc2FibGVkIlxuICAgICAgICAgICBbYXR0ci5uYW1lXT0ibmFtZSJcbiAgICAgICAgICAgW3RhYkluZGV4XT0idGFiSW5kZXgiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPSJhcmlhTGFiZWwgfHwgbnVsbCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT0iYXJpYUxhYmVsbGVkYnkiXG4gICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09Il9nZXRBcmlhQ2hlY2tlZCgpIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT0iYXJpYURlc2NyaWJlZGJ5IlxuICAgICAgICAgICAoY2hhbmdlKT0iX29uSW50ZXJhY3Rpb25FdmVudCgkZXZlbnQpIlxuICAgICAgICAgICAoY2xpY2spPSJfb25JbnB1dENsaWNrKCRldmVudCkiPlxuICAgIDxzcGFuIG1hdFJpcHBsZSBjbGFzcz0ibWF0LWNoZWNrYm94LXJpcHBsZSBtYXQtZm9jdXMtaW5kaWNhdG9yIlxuICAgICAgICAgW21hdFJpcHBsZVRyaWdnZXJdPSJsYWJlbCJcbiAgICAgICAgIFttYXRSaXBwbGVEaXNhYmxlZF09Il9pc1JpcHBsZURpc2FibGVkKCkiXG4gICAgICAgICBbbWF0UmlwcGxlUmFkaXVzXT0iMjAiXG4gICAgICAgICBbbWF0UmlwcGxlQ2VudGVyZWRdPSJ0cnVlIlxuICAgICAgICAgW21hdFJpcHBsZUFuaW1hdGlvbl09IntlbnRlckR1cmF0aW9uOiBfYW5pbWF0aW9uTW9kZSA9PT0gXCdOb29wQW5pbWF0aW9uc1wnID8gMCA6IDE1MH0iPlxuICAgICAgPHNwYW4gY2xhc3M9Im1hdC1yaXBwbGUtZWxlbWVudCBtYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGUiPjwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9Im1hdC1jaGVja2JveC1mcmFtZSI+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPSJtYXQtY2hlY2tib3gtYmFja2dyb3VuZCI+XG4gICAgICA8c3ZnIHZlcnNpb249IjEuMSJcbiAgICAgICAgICAgZm9jdXNhYmxlPSJmYWxzZSJcbiAgICAgICAgICAgY2xhc3M9Im1hdC1jaGVja2JveC1jaGVja21hcmsiXG4gICAgICAgICAgIHZpZXdCb3g9IjAgMCAyNCAyNCJcbiAgICAgICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSJcbiAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiPlxuICAgICAgICA8cGF0aCBjbGFzcz0ibWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIlxuICAgICAgICAgICAgICBmaWxsPSJub25lIlxuICAgICAgICAgICAgICBzdHJva2U9IndoaXRlIlxuICAgICAgICAgICAgICBkPSJNNC4xLDEyLjcgOSwxNy42IDIwLjMsNi4zIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIFx4M2MhLS0gRWxlbWVudCBmb3IgcmVuZGVyaW5nIHRoZSBpbmRldGVybWluYXRlIHN0YXRlIGNoZWNrYm94LiAtLVx4M2VcbiAgICAgIDxzcGFuIGNsYXNzPSJtYXQtY2hlY2tib3gtbWl4ZWRtYXJrIj48L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPSJtYXQtY2hlY2tib3gtbGFiZWwiICNjaGVja2JveExhYmVsIChjZGtPYnNlcnZlQ29udGVudCk9Il9vbkxhYmVsVGV4dENoYW5nZSgpIj5cbiAgICBceDNjIS0tIEFkZCBhbiBpbnZpc2libGUgc3BhbiBzbyBKQVdTIGNhbiByZWFkIHRoZSBsYWJlbCAtLVx4M2VcbiAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTpub25lIj4mbmJzcDs8L3NwYW4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3NwYW4+XG48L2xhYmVsPlxuJyxleHBvcnRBczoibWF0Q2hlY2tib3giLGhvc3Q6e2NsYXNzOiJtYXQtY2hlY2tib3giLCJbaWRdIjoiaWQiLCJbYXR0ci50YWJpbmRleF0iOiJudWxsIiwiW2NsYXNzLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlXSI6ImluZGV0ZXJtaW5hdGUiLCJbY2xhc3MubWF0LWNoZWNrYm94LWNoZWNrZWRdIjoiY2hlY2tlZCIsIltjbGFzcy5tYXQtY2hlY2tib3gtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbY2xhc3MubWF0LWNoZWNrYm94LWxhYmVsLWJlZm9yZV0iOidsYWJlbFBvc2l0aW9uID09ICJiZWZvcmUiJywiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6Il9hbmltYXRpb25Nb2RlID09PSAnTm9vcEFuaW1hdGlvbnMnIn0scHJvdmlkZXJzOltNWV0saW5wdXRzOlsiZGlzYWJsZVJpcHBsZSIsImNvbG9yIiwidGFiSW5kZXgiXSxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxzdHlsZXM6WyJAa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmR7MCV7b3BhY2l0eTowfTUwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmR7MCUsNTAle29wYWNpdHk6MX0xMDAle29wYWNpdHk6MH19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtdW5jaGVja2VkLWNoZWNrZWQtY2hlY2ttYXJrLXBhdGh7MCUsNTAle3N0cm9rZS1kYXNob2Zmc2V0OjIyLjkxMDI1OX01MCV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpfTEwMCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MH19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrezAlLDY4LjIle3RyYW5zZm9ybTpzY2FsZVgoMCl9NjguMiV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMCwgMSl9MTAwJXt0cmFuc2Zvcm06c2NhbGVYKDEpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aHtmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7c3Ryb2tlLWRhc2hvZmZzZXQ6MH10b3tzdHJva2UtZGFzaG9mZnNldDotMjIuOTEwMjU5fX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJre2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpO29wYWNpdHk6MTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWNoZWNrbWFya3tmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMTQsIDAsIDAsIDEpO29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJre2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpO29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmt7ZnJvbXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjE0LCAwLCAwLCAxKTtvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnJvdGF0ZSgzMTVkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmt7MCV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZVgoMSl9MzIuOCUsMTAwJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlWCgwKX19Lm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLC5tYXQtY2hlY2tib3gtZnJhbWV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNpemluZzpib3JkZXItYm94O3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2l0aW9uOmJhY2tncm91bmQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LWNoZWNrYm94e3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGUpe29wYWNpdHk6LjE2fS5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1yaXBwbGV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDpjYWxjKDUwJSAtIDIwcHgpO3RvcDpjYWxjKDUwJSAtIDIwcHgpO2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWNoZWNrYm94LmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2hlY2tib3gtcmlwcGxle291dGxpbmU6c29saWQgM3B4fS5tYXQtY2hlY2tib3gtbGF5b3V0ey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6aW5oZXJpdDthbGlnbi1pdGVtczpiYXNlbGluZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmUtZmxleDt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1hdC1jaGVja2JveC1sYWJlbHstd2Via2l0LXVzZXItc2VsZWN0OmF1dG87LW1vei11c2VyLXNlbGVjdDphdXRvOy1tcy11c2VyLXNlbGVjdDphdXRvO3VzZXItc2VsZWN0OmF1dG99Lm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6MDttYXJnaW46YXV0bzttYXJnaW4tcmlnaHQ6OHB4O29yZGVyOjA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxNnB4O2ZsZXgtc2hyaW5rOjB9W2Rpcj1ydGxdIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVye21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6YXV0b30ubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lci1uby1zaWRlLW1hcmdpbnttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfS5tYXQtY2hlY2tib3gtZnJhbWV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSk7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtY2hlY2tib3gtZnJhbWV7dHJhbnNpdGlvbjpub25lfS5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSksb3BhY2l0eSA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSk7LXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6ZXhhY3Q7Y29sb3ItYWRqdXN0OmV4YWN0fS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZDpub25lfS5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGV7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RyYW5zZm9ybTpub25lfS5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyOmhvdmVyIC5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGV7b3BhY2l0eTouMDR9Lm1hdC1jaGVja2JveC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6LjEyfS5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1jaGVja2JveC5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXI6aG92ZXIgLm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5OjB9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcjpob3ZlciAubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxle2Rpc3BsYXk6bm9uZX19Lm1hdC1jaGVja2JveC1jaGVja21hcmt7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0ubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjIyLjkxMDI1OTtzdHJva2UtZGFzaGFycmF5OjIyLjkxMDI1OTtzdHJva2Utd2lkdGg6Mi4xMzMzMzMzMzMzcHh9LmNkay1oaWdoLWNvbnRyYXN0LWJsYWNrLW9uLXdoaXRlIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7c3Ryb2tlOiMwMDAgIWltcG9ydGFudH0ubWF0LWNoZWNrYm94LW1peGVkbWFya3t3aWR0aDpjYWxjKDEwMCUgLSA2cHgpO2hlaWdodDoycHg7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZVgoMCkgcm90YXRlKDBkZWcpO2JvcmRlci1yYWRpdXM6MnB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7aGVpZ2h0OjA7Ym9yZGVyLXRvcDpzb2xpZCAycHg7bWFyZ2luLXRvcDoycHh9Lm1hdC1jaGVja2JveC1sYWJlbC1iZWZvcmUgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXJ7b3JkZXI6MTttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OmF1dG99W2Rpcj1ydGxdIC5tYXQtY2hlY2tib3gtbGFiZWwtYmVmb3JlIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVye21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OjhweH0ubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1jaGVja21hcmt7b3BhY2l0eToxfS5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjB9Lm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre3RyYW5zZm9ybTpzY2FsZVgoMSkgcm90YXRlKC00NWRlZyl9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJre29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHtzdHJva2UtZGFzaG9mZnNldDowfS5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LW1peGVkbWFya3tvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlWCgxKSByb3RhdGUoMGRlZyl9Lm1hdC1jaGVja2JveC11bmNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1jaGVja2JveC1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtY2hlY2tib3gtZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LWNoZWNrYm94LWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2FuaW1hdGlvbjoxODBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmR9Lm1hdC1jaGVja2JveC1hbmltLXVuY2hlY2tlZC1jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LXVuY2hlY2tlZC1jaGVja2VkLWNoZWNrbWFyay1wYXRofS5tYXQtY2hlY2tib3gtYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZH0ubWF0LWNoZWNrYm94LWFuaW0tdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjkwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1jaGVja2VkLXVuY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmR9Lm1hdC1jaGVja2JveC1hbmltLWNoZWNrZWQtdW5jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7YW5pbWF0aW9uOjkwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtY2hlY2tlZC11bmNoZWNrZWQtY2hlY2ttYXJrLXBhdGh9Lm1hdC1jaGVja2JveC1hbmltLWNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWNoZWNrbWFya3thbmltYXRpb246OTBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjkwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFya30ubWF0LWNoZWNrYm94LWFuaW0taW5kZXRlcm1pbmF0ZS1jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJre2FuaW1hdGlvbjo1MDBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtY2hlY2ttYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1pbmRldGVybWluYXRlLWNoZWNrZWQgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjUwMG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmt9Lm1hdC1jaGVja2JveC1hbmltLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHthbmltYXRpb246MTgwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZH0ubWF0LWNoZWNrYm94LWFuaW0taW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjMwMG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkLW1peGVkbWFya30ubWF0LWNoZWNrYm94LWlucHV0e2JvdHRvbTowO2xlZnQ6NTAlfVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOlNJfSx7dHlwZTphX30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbYlldfV19XX0pLHthcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0saWQ6W3t0eXBlOnh5fV0sbGFiZWxQb3NpdGlvbjpbe3R5cGU6eHl9XSxuYW1lOlt7dHlwZTp4eX1dLGNoYW5nZTpbe3R5cGU6T3l9XSxpbmRldGVybWluYXRlQ2hhbmdlOlt7dHlwZTpPeX1dLHJlcXVpcmVkOlt7dHlwZTp4eX1dLGNoZWNrZWQ6W3t0eXBlOnh5fV0sZGlzYWJsZWQ6W3t0eXBlOnh5fV0saW5kZXRlcm1pbmF0ZTpbe3R5cGU6eHl9XSxhcmlhRGVzY3JpYmVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSx2YWx1ZTpbe3R5cGU6eHl9XSxfaW5wdXRFbGVtZW50Olt7dHlwZTpaYSxhcmdzOlsiaW5wdXQiXX1dLHJpcHBsZTpbe3R5cGU6WmEsYXJnczpba0hdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFBZPXtwcm92aWRlOkdWLHVzZUV4aXN0aW5nOnFlKCgoKT0+d1kpKSxtdWx0aTohMH07Y2xhc3Mgd1kgZXh0ZW5kcyBLVXt9d1kuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKHdZKSkpKG58fHdZKX19KSgpLHdZLsm1ZGlyPWxvKHt0eXBlOndZLHNlbGVjdG9yczpbWyJtYXQtY2hlY2tib3giLCJyZXF1aXJlZCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsibWF0LWNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsibWF0LWNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJuZ01vZGVsIiwiIl1dLGZlYXR1cmVzOltwZyhbUFldKSx4cF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHdZLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1jaGVja2JveFtyZXF1aXJlZF1bZm9ybUNvbnRyb2xOYW1lXSxcbiAgICAgICAgICAgICBtYXQtY2hlY2tib3hbcmVxdWlyZWRdW2Zvcm1Db250cm9sXSwgbWF0LWNoZWNrYm94W3JlcXVpcmVkXVtuZ01vZGVsXSIscHJvdmlkZXJzOltQWV19XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBrWXt9a1kuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGtZKX0sa1kuybVtb2Q9YW8oe3R5cGU6a1l9KSxrWS7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrWSxbe3R5cGU6QXksYXJnczpbe2V4cG9ydHM6W3dZXSxkZWNsYXJhdGlvbnM6W3dZXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKGtZLHtkZWNsYXJhdGlvbnM6W3dZXSxleHBvcnRzOlt3WV19KTtjbGFzcyBTWXt9U1kuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFNZKX0sU1kuybVtb2Q9YW8oe3R5cGU6U1l9KSxTWS7JtWluaj12bih7aW1wb3J0czpbW1NILFhJLFV6LGtZXSxYSSxrWV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFNZLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbU0gsWEksVXosa1ldLGV4cG9ydHM6W09ZLFhJLGtZXSxkZWNsYXJhdGlvbnM6W09ZXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFNZLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bT1ldfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1NILFhJLFV6LGtZXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltPWSxYSSxrWV19fSk7Y29uc3QgRFk9Tnooe3Bhc3NpdmU6ITB9KTtjbGFzcyBFWXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3BsYXRmb3JtPXQsdGhpcy5fbmdab25lPWUsdGhpcy5fbW9uaXRvcmVkRWxlbWVudHM9bmV3IE1hcH1tb25pdG9yKHQpe2lmKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpcmV0dXJuIHJ0O2NvbnN0IGU9eHoodCksbj10aGlzLl9tb25pdG9yZWRFbGVtZW50cy5nZXQoZSk7aWYobilyZXR1cm4gbi5zdWJqZWN0O2NvbnN0IG89bmV3IEksaT0iY2RrLXRleHQtZmllbGQtYXV0b2ZpbGxlZCIsYT10PT57ImNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IiE9PXQuYW5pbWF0aW9uTmFtZXx8ZS5jbGFzc0xpc3QuY29udGFpbnMoaSk/ImNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCI9PT10LmFuaW1hdGlvbk5hbWUmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKGkpJiYoZS5jbGFzc0xpc3QucmVtb3ZlKGkpLHRoaXMuX25nWm9uZS5ydW4oKCgpPT5vLm5leHQoe3RhcmdldDp0LnRhcmdldCxpc0F1dG9maWxsZWQ6ITF9KSkpKTooZS5jbGFzc0xpc3QuYWRkKGkpLHRoaXMuX25nWm9uZS5ydW4oKCgpPT5vLm5leHQoe3RhcmdldDp0LnRhcmdldCxpc0F1dG9maWxsZWQ6ITB9KSkpKX07cmV0dXJuIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntlLmFkZEV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbnN0YXJ0IixhLERZKSxlLmNsYXNzTGlzdC5hZGQoImNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZCIpfSkpLHRoaXMuX21vbml0b3JlZEVsZW1lbnRzLnNldChlLHtzdWJqZWN0Om8sdW5saXN0ZW46KCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbnN0YXJ0IixhLERZKX19KSxvfXN0b3BNb25pdG9yaW5nKHQpe2NvbnN0IGU9eHoodCksbj10aGlzLl9tb25pdG9yZWRFbGVtZW50cy5nZXQoZSk7biYmKG4udW5saXN0ZW4oKSxuLnN1YmplY3QuY29tcGxldGUoKSxlLmNsYXNzTGlzdC5yZW1vdmUoImNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZCIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiY2RrLXRleHQtZmllbGQtYXV0b2ZpbGxlZCIpLHRoaXMuX21vbml0b3JlZEVsZW1lbnRzLmRlbGV0ZShlKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9tb25pdG9yZWRFbGVtZW50cy5mb3JFYWNoKCgodCxlKT0+dGhpcy5zdG9wTW9uaXRvcmluZyhlKSkpfX1FWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RVkpKHZyKHd6KSx2cihhXykpfSxFWS7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgRVkodnIod3opLHZyKGFfKSl9LHRva2VuOkVZLHByb3ZpZGVkSW46InJvb3QifSksRVkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp3en0se3R5cGU6YV99XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEVZLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp3en0se3R5cGU6YV99XX0pLG51bGwpO2NsYXNzIFJZe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2F1dG9maWxsTW9uaXRvcj1lLHRoaXMuY2RrQXV0b2ZpbGw9bmV3IExofW5nT25Jbml0KCl7dGhpcy5fYXV0b2ZpbGxNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZikuc3Vic2NyaWJlKCh0PT50aGlzLmNka0F1dG9maWxsLmVtaXQodCkpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2F1dG9maWxsTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKX19UlkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJZKShTbShoZyksU20oRVkpKX0sUlkuybVkaXI9bG8oe3R5cGU6Ulksc2VsZWN0b3JzOltbIiIsImNka0F1dG9maWxsIiwiIl1dLG91dHB1dHM6e2Nka0F1dG9maWxsOiJjZGtBdXRvZmlsbCJ9fSksUlkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6RVl9XSxSWS5wcm9wRGVjb3JhdG9ycz17Y2RrQXV0b2ZpbGw6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUlksW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0F1dG9maWxsXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6RVl9XX0pLHtjZGtBdXRvZmlsbDpbe3R5cGU6T3l9XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgQVl7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX3BsYXRmb3JtPWUsdGhpcy5fbmdab25lPW4sdGhpcy5fZGVzdHJveWVkPW5ldyBJLHRoaXMuX2VuYWJsZWQ9ITAsdGhpcy5fcHJldmlvdXNNaW5Sb3dzPS0xLHRoaXMuX2lzVmlld0luaXRlZD0hMSx0aGlzLl9oYW5kbGVGb2N1c0V2ZW50PXQ9Pnt0aGlzLl9oYXNGb2N1cz0iZm9jdXMiPT09dC50eXBlfSx0aGlzLl9kb2N1bWVudD1vLHRoaXMuX3RleHRhcmVhRWxlbWVudD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR9Z2V0IG1pblJvd3MoKXtyZXR1cm4gdGhpcy5fbWluUm93c31zZXQgbWluUm93cyh0KXt0aGlzLl9taW5Sb3dzPV96KHQpLHRoaXMuX3NldE1pbkhlaWdodCgpfWdldCBtYXhSb3dzKCl7cmV0dXJuIHRoaXMuX21heFJvd3N9c2V0IG1heFJvd3ModCl7dGhpcy5fbWF4Um93cz1feih0KSx0aGlzLl9zZXRNYXhIZWlnaHQoKX1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLl9lbmFibGVkfXNldCBlbmFibGVkKHQpe3Q9eXoodCksdGhpcy5fZW5hYmxlZCE9PXQmJigodGhpcy5fZW5hYmxlZD10KT90aGlzLnJlc2l6ZVRvRml0Q29udGVudCghMCk6dGhpcy5yZXNldCgpKX1nZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy5fdGV4dGFyZWFFbGVtZW50LnBsYWNlaG9sZGVyfXNldCBwbGFjZWhvbGRlcih0KXt0aGlzLl9jYWNoZWRQbGFjZWhvbGRlckhlaWdodD12b2lkIDAsdGhpcy5fdGV4dGFyZWFFbGVtZW50LnBsYWNlaG9sZGVyPXQsdGhpcy5fY2FjaGVUZXh0YXJlYVBsYWNlaG9sZGVySGVpZ2h0KCl9X3NldE1pbkhlaWdodCgpe2NvbnN0IHQ9dGhpcy5taW5Sb3dzJiZ0aGlzLl9jYWNoZWRMaW5lSGVpZ2h0P3RoaXMubWluUm93cyp0aGlzLl9jYWNoZWRMaW5lSGVpZ2h0KyJweCI6bnVsbDt0JiYodGhpcy5fdGV4dGFyZWFFbGVtZW50LnN0eWxlLm1pbkhlaWdodD10KX1fc2V0TWF4SGVpZ2h0KCl7Y29uc3QgdD10aGlzLm1heFJvd3MmJnRoaXMuX2NhY2hlZExpbmVIZWlnaHQ/dGhpcy5tYXhSb3dzKnRoaXMuX2NhY2hlZExpbmVIZWlnaHQrInB4IjpudWxsO3QmJih0aGlzLl90ZXh0YXJlYUVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0PXQpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX3BsYXRmb3JtLmlzQnJvd3NlciYmKHRoaXMuX2luaXRpYWxIZWlnaHQ9dGhpcy5fdGV4dGFyZWFFbGVtZW50LnN0eWxlLmhlaWdodCx0aGlzLnJlc2l6ZVRvRml0Q29udGVudCgpLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntvZSh0aGlzLl9nZXRXaW5kb3coKSwicmVzaXplIikucGlwZShkZSgxNiksSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+dGhpcy5yZXNpemVUb0ZpdENvbnRlbnQoITApKSksdGhpcy5fdGV4dGFyZWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9oYW5kbGVGb2N1c0V2ZW50KSx0aGlzLl90ZXh0YXJlYUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5faGFuZGxlRm9jdXNFdmVudCl9KSksdGhpcy5faXNWaWV3SW5pdGVkPSEwLHRoaXMucmVzaXplVG9GaXRDb250ZW50KCEwKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl90ZXh0YXJlYUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2hhbmRsZUZvY3VzRXZlbnQpLHRoaXMuX3RleHRhcmVhRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9oYW5kbGVGb2N1c0V2ZW50KSx0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpfV9jYWNoZVRleHRhcmVhTGluZUhlaWdodCgpe2lmKHRoaXMuX2NhY2hlZExpbmVIZWlnaHQpcmV0dXJuO2xldCB0PXRoaXMuX3RleHRhcmVhRWxlbWVudC5jbG9uZU5vZGUoITEpO3Qucm93cz0xLHQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsdC5zdHlsZS5ib3JkZXI9Im5vbmUiLHQuc3R5bGUucGFkZGluZz0iMCIsdC5zdHlsZS5oZWlnaHQ9IiIsdC5zdHlsZS5taW5IZWlnaHQ9IiIsdC5zdHlsZS5tYXhIZWlnaHQ9IiIsdC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIix0aGlzLl90ZXh0YXJlYUVsZW1lbnQucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0KSx0aGlzLl9jYWNoZWRMaW5lSGVpZ2h0PXQuY2xpZW50SGVpZ2h0LHRoaXMuX3RleHRhcmVhRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHRoaXMuX3NldE1pbkhlaWdodCgpLHRoaXMuX3NldE1heEhlaWdodCgpfV9tZWFzdXJlU2Nyb2xsSGVpZ2h0KCl7Y29uc3QgdD10aGlzLl90ZXh0YXJlYUVsZW1lbnQsZT10LnN0eWxlLm1hcmdpbkJvdHRvbXx8IiIsbj10aGlzLl9wbGF0Zm9ybS5GSVJFRk9YLG89biYmdGhpcy5faGFzRm9jdXMsaT1uPyJjZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3giOiJjZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIjtvJiYodC5zdHlsZS5tYXJnaW5Cb3R0b209YCR7dC5jbGllbnRIZWlnaHR9cHhgKSx0LmNsYXNzTGlzdC5hZGQoaSk7Y29uc3QgYT10LnNjcm9sbEhlaWdodC00O3JldHVybiB0LmNsYXNzTGlzdC5yZW1vdmUoaSksbyYmKHQuc3R5bGUubWFyZ2luQm90dG9tPWUpLGF9X2NhY2hlVGV4dGFyZWFQbGFjZWhvbGRlckhlaWdodCgpe2lmKCF0aGlzLl9pc1ZpZXdJbml0ZWR8fG51bGwhPXRoaXMuX2NhY2hlZFBsYWNlaG9sZGVySGVpZ2h0KXJldHVybjtpZighdGhpcy5wbGFjZWhvbGRlcilyZXR1cm4gdm9pZCh0aGlzLl9jYWNoZWRQbGFjZWhvbGRlckhlaWdodD0wKTtjb25zdCB0PXRoaXMuX3RleHRhcmVhRWxlbWVudC52YWx1ZTt0aGlzLl90ZXh0YXJlYUVsZW1lbnQudmFsdWU9dGhpcy5fdGV4dGFyZWFFbGVtZW50LnBsYWNlaG9sZGVyLHRoaXMuX2NhY2hlZFBsYWNlaG9sZGVySGVpZ2h0PXRoaXMuX21lYXN1cmVTY3JvbGxIZWlnaHQoKSx0aGlzLl90ZXh0YXJlYUVsZW1lbnQudmFsdWU9dH1uZ0RvQ2hlY2soKXt0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJnRoaXMucmVzaXplVG9GaXRDb250ZW50KCl9cmVzaXplVG9GaXRDb250ZW50KHQ9ITEpe2lmKCF0aGlzLl9lbmFibGVkKXJldHVybjtpZih0aGlzLl9jYWNoZVRleHRhcmVhTGluZUhlaWdodCgpLHRoaXMuX2NhY2hlVGV4dGFyZWFQbGFjZWhvbGRlckhlaWdodCgpLCF0aGlzLl9jYWNoZWRMaW5lSGVpZ2h0KXJldHVybjtjb25zdCBlPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxuPWUudmFsdWU7aWYoIXQmJnRoaXMuX21pblJvd3M9PT10aGlzLl9wcmV2aW91c01pblJvd3MmJm49PT10aGlzLl9wcmV2aW91c1ZhbHVlKXJldHVybjtjb25zdCBvPXRoaXMuX21lYXN1cmVTY3JvbGxIZWlnaHQoKSxpPU1hdGgubWF4KG8sdGhpcy5fY2FjaGVkUGxhY2Vob2xkZXJIZWlnaHR8fDApO2Uuc3R5bGUuaGVpZ2h0PWAke2l9cHhgLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnsidW5kZWZpbmVkIiE9dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLl9zY3JvbGxUb0NhcmV0UG9zaXRpb24oZSkpKTpzZXRUaW1lb3V0KCgoKT0+dGhpcy5fc2Nyb2xsVG9DYXJldFBvc2l0aW9uKGUpKSl9KSksdGhpcy5fcHJldmlvdXNWYWx1ZT1uLHRoaXMuX3ByZXZpb3VzTWluUm93cz10aGlzLl9taW5Sb3dzfXJlc2V0KCl7dm9pZCAwIT09dGhpcy5faW5pdGlhbEhlaWdodCYmKHRoaXMuX3RleHRhcmVhRWxlbWVudC5zdHlsZS5oZWlnaHQ9dGhpcy5faW5pdGlhbEhlaWdodCl9X25vb3BJbnB1dEhhbmRsZXIoKXt9X2dldERvY3VtZW50KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50fHxkb2N1bWVudH1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2dldERvY3VtZW50KCkuZGVmYXVsdFZpZXd8fHdpbmRvd31fc2Nyb2xsVG9DYXJldFBvc2l0aW9uKHQpe2NvbnN0e3NlbGVjdGlvblN0YXJ0OmUsc2VsZWN0aW9uRW5kOm59PXQ7IXRoaXMuX2Rlc3Ryb3llZC5pc1N0b3BwZWQmJnRoaXMuX2hhc0ZvY3VzJiZ0LnNldFNlbGVjdGlvblJhbmdlKGUsbil9fUFZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBWSkoU20oaGcpLFNtKHd6KSxTbShhXyksU20oWl8sOCkpfSxBWS7JtWRpcj1sbyh7dHlwZTpBWSxzZWxlY3RvcnM6W1sidGV4dGFyZWEiLCJjZGtUZXh0YXJlYUF1dG9zaXplIiwiIl1dLGhvc3RBdHRyczpbInJvd3MiLCIxIiwxLCJjZGstdGV4dGFyZWEtYXV0b3NpemUiXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImlucHV0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9ub29wSW5wdXRIYW5kbGVyKCl9KSl9LGlucHV0czp7bWluUm93czpbImNka0F1dG9zaXplTWluUm93cyIsIm1pblJvd3MiXSxtYXhSb3dzOlsiY2RrQXV0b3NpemVNYXhSb3dzIiwibWF4Um93cyJdLGVuYWJsZWQ6WyJjZGtUZXh0YXJlYUF1dG9zaXplIiwiZW5hYmxlZCJdLHBsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciJ9LGV4cG9ydEFzOlsiY2RrVGV4dGFyZWFBdXRvc2l6ZSJdfSksQVkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6d3p9LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sQVkucHJvcERlY29yYXRvcnM9e21pblJvd3M6W3t0eXBlOnh5LGFyZ3M6WyJjZGtBdXRvc2l6ZU1pblJvd3MiXX1dLG1heFJvd3M6W3t0eXBlOnh5LGFyZ3M6WyJjZGtBdXRvc2l6ZU1heFJvd3MiXX1dLGVuYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJjZGtUZXh0YXJlYUF1dG9zaXplIl19XSxwbGFjZWhvbGRlcjpbe3R5cGU6eHl9XSxfbm9vcElucHV0SGFuZGxlcjpbe3R5cGU6d3ksYXJnczpbImlucHV0Il19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChBWSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJ0ZXh0YXJlYVtjZGtUZXh0YXJlYUF1dG9zaXplXSIsZXhwb3J0QXM6ImNka1RleHRhcmVhQXV0b3NpemUiLGhvc3Q6e2NsYXNzOiJjZGstdGV4dGFyZWEtYXV0b3NpemUiLHJvd3M6IjEifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTp3en0se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLHttaW5Sb3dzOlt7dHlwZTp4eSxhcmdzOlsiY2RrQXV0b3NpemVNaW5Sb3dzIl19XSxtYXhSb3dzOlt7dHlwZTp4eSxhcmdzOlsiY2RrQXV0b3NpemVNYXhSb3dzIl19XSxlbmFibGVkOlt7dHlwZTp4eSxhcmdzOlsiY2RrVGV4dGFyZWFBdXRvc2l6ZSJdfV0scGxhY2Vob2xkZXI6W3t0eXBlOnh5fV0sX25vb3BJbnB1dEhhbmRsZXI6W3t0eXBlOnd5LGFyZ3M6WyJpbnB1dCJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFRZe31UWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VFkpfSxUWS7JtW1vZD1hbyh7dHlwZTpUWX0pLFRZLsm1aW5qPXZuKHtpbXBvcnRzOltba3pdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVFksW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1JZLEFZXSxpbXBvcnRzOltrel0sZXhwb3J0czpbUlksQVldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVFkse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltSWSxBWV19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5ba3pdfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1JZLEFZXX19KTtjbGFzcyBOWSBleHRlbmRzIEFZe2dldCBtYXRBdXRvc2l6ZU1pblJvd3MoKXtyZXR1cm4gdGhpcy5taW5Sb3dzfXNldCBtYXRBdXRvc2l6ZU1pblJvd3ModCl7dGhpcy5taW5Sb3dzPXR9Z2V0IG1hdEF1dG9zaXplTWF4Um93cygpe3JldHVybiB0aGlzLm1heFJvd3N9c2V0IG1hdEF1dG9zaXplTWF4Um93cyh0KXt0aGlzLm1heFJvd3M9dH1nZXQgbWF0QXV0b3NpemUoKXtyZXR1cm4gdGhpcy5lbmFibGVkfXNldCBtYXRBdXRvc2l6ZSh0KXt0aGlzLmVuYWJsZWQ9dH1nZXQgbWF0VGV4dGFyZWFBdXRvc2l6ZSgpe3JldHVybiB0aGlzLmVuYWJsZWR9c2V0IG1hdFRleHRhcmVhQXV0b3NpemUodCl7dGhpcy5lbmFibGVkPXR9fU5ZLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShOWSkpKShufHxOWSl9fSkoKSxOWS7JtWRpcj1sbyh7dHlwZTpOWSxzZWxlY3RvcnM6W1sidGV4dGFyZWEiLCJtYXQtYXV0b3NpemUiLCIiXSxbInRleHRhcmVhIiwibWF0VGV4dGFyZWFBdXRvc2l6ZSIsIiJdXSxob3N0QXR0cnM6WyJyb3dzIiwiMSIsMSwiY2RrLXRleHRhcmVhLWF1dG9zaXplIiwibWF0LWF1dG9zaXplIl0saW5wdXRzOntjZGtBdXRvc2l6ZU1pblJvd3M6ImNka0F1dG9zaXplTWluUm93cyIsY2RrQXV0b3NpemVNYXhSb3dzOiJjZGtBdXRvc2l6ZU1heFJvd3MiLG1hdEF1dG9zaXplTWluUm93czoibWF0QXV0b3NpemVNaW5Sb3dzIixtYXRBdXRvc2l6ZU1heFJvd3M6Im1hdEF1dG9zaXplTWF4Um93cyIsbWF0QXV0b3NpemU6WyJtYXQtYXV0b3NpemUiLCJtYXRBdXRvc2l6ZSJdLG1hdFRleHRhcmVhQXV0b3NpemU6Im1hdFRleHRhcmVhQXV0b3NpemUifSxleHBvcnRBczpbIm1hdFRleHRhcmVhQXV0b3NpemUiXSxmZWF0dXJlczpbeHBdfSksTlkucHJvcERlY29yYXRvcnM9e21hdEF1dG9zaXplTWluUm93czpbe3R5cGU6eHl9XSxtYXRBdXRvc2l6ZU1heFJvd3M6W3t0eXBlOnh5fV0sbWF0QXV0b3NpemU6W3t0eXBlOnh5LGFyZ3M6WyJtYXQtYXV0b3NpemUiXX1dLG1hdFRleHRhcmVhQXV0b3NpemU6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTlksW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoidGV4dGFyZWFbbWF0LWF1dG9zaXplXSwgdGV4dGFyZWFbbWF0VGV4dGFyZWFBdXRvc2l6ZV0iLGV4cG9ydEFzOiJtYXRUZXh0YXJlYUF1dG9zaXplIixpbnB1dHM6WyJjZGtBdXRvc2l6ZU1pblJvd3MiLCJjZGtBdXRvc2l6ZU1heFJvd3MiXSxob3N0OntjbGFzczoiY2RrLXRleHRhcmVhLWF1dG9zaXplIG1hdC1hdXRvc2l6ZSIscm93czoiMSJ9fV19XSxudWxsLHttYXRBdXRvc2l6ZU1pblJvd3M6W3t0eXBlOnh5fV0sbWF0QXV0b3NpemVNYXhSb3dzOlt7dHlwZTp4eX1dLG1hdEF1dG9zaXplOlt7dHlwZTp4eSxhcmdzOlsibWF0LWF1dG9zaXplIl19XSxtYXRUZXh0YXJlYUF1dG9zaXplOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB6WT1uZXcgR2EoIk1BVF9JTlBVVF9WQUxVRV9BQ0NFU1NPUiIpLElZPVsiYnV0dG9uIiwiY2hlY2tib3giLCJmaWxlIiwiaGlkZGVuIiwiaW1hZ2UiLCJyYWRpbyIsInJhbmdlIiwicmVzZXQiLCJzdWJtaXQiXTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IEhZPTA7Y29uc3QgRlk9dEgoY2xhc3N7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyPXQsdGhpcy5fcGFyZW50Rm9ybT1lLHRoaXMuX3BhcmVudEZvcm1Hcm91cD1uLHRoaXMubmdDb250cm9sPW99fSk7Y2xhc3MgTFkgZXh0ZW5kcyBGWXtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjKXtzdXBlcihhLG8saSxuKSx0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fcGxhdGZvcm09ZSx0aGlzLl9hdXRvZmlsbE1vbml0b3I9cyx0aGlzLl9mb3JtRmllbGQ9Yyx0aGlzLl91aWQ9Im1hdC1pbnB1dC0iK0hZKyssdGhpcy5mb2N1c2VkPSExLHRoaXMuc3RhdGVDaGFuZ2VzPW5ldyBJLHRoaXMuY29udHJvbFR5cGU9Im1hdC1pbnB1dCIsdGhpcy5hdXRvZmlsbGVkPSExLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX3JlcXVpcmVkPSExLHRoaXMuX3R5cGU9InRleHQiLHRoaXMuX3JlYWRvbmx5PSExLHRoaXMuX25ldmVyRW1wdHlJbnB1dFR5cGVzPVsiZGF0ZSIsImRhdGV0aW1lIiwiZGF0ZXRpbWUtbG9jYWwiLCJtb250aCIsInRpbWUiLCJ3ZWVrIl0uZmlsdGVyKCh0PT5EeigpLmhhcyh0KSkpO2NvbnN0IGQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LHA9ZC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3RoaXMuX2lucHV0VmFsdWVBY2Nlc3Nvcj1yfHxkLHRoaXMuX3ByZXZpb3VzTmF0aXZlVmFsdWU9dGhpcy52YWx1ZSx0aGlzLmlkPXRoaXMuaWQsZS5JT1MmJmwucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57dC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwodD0+e2NvbnN0IGU9dC50YXJnZXQ7ZS52YWx1ZXx8MCE9PWUuc2VsZWN0aW9uU3RhcnR8fDAhPT1lLnNlbGVjdGlvbkVuZHx8KGUuc2V0U2VsZWN0aW9uUmFuZ2UoMSwxKSxlLnNldFNlbGVjdGlvblJhbmdlKDAsMCkpfSkpfSkpLHRoaXMuX2lzU2VydmVyPSF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIsdGhpcy5faXNOYXRpdmVTZWxlY3Q9InNlbGVjdCI9PT1wLHRoaXMuX2lzVGV4dGFyZWE9InRleHRhcmVhIj09PXAsdGhpcy5faXNJbkZvcm1GaWVsZD0hIWMsdGhpcy5faXNOYXRpdmVTZWxlY3QmJih0aGlzLmNvbnRyb2xUeXBlPWQubXVsdGlwbGU/Im1hdC1uYXRpdmUtc2VsZWN0LW11bHRpcGxlIjoibWF0LW5hdGl2ZS1zZWxlY3QiKX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5uZ0NvbnRyb2wmJm51bGwhPT10aGlzLm5nQ29udHJvbC5kaXNhYmxlZD90aGlzLm5nQ29udHJvbC5kaXNhYmxlZDp0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9eXoodCksdGhpcy5mb2N1c2VkJiYodGhpcy5mb2N1c2VkPSExLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lkfXNldCBpZCh0KXt0aGlzLl9pZD10fHx0aGlzLl91aWR9Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuX3JlcXVpcmVkfXNldCByZXF1aXJlZCh0KXt0aGlzLl9yZXF1aXJlZD15eih0KX1nZXQgdHlwZSgpe3JldHVybiB0aGlzLl90eXBlfXNldCB0eXBlKHQpe3RoaXMuX3R5cGU9dHx8InRleHQiLHRoaXMuX3ZhbGlkYXRlVHlwZSgpLCF0aGlzLl9pc1RleHRhcmVhJiZEeigpLmhhcyh0aGlzLl90eXBlKSYmKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50eXBlPXRoaXMuX3R5cGUpfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLl9pbnB1dFZhbHVlQWNjZXNzb3IudmFsdWV9c2V0IHZhbHVlKHQpe3QhPT10aGlzLnZhbHVlJiYodGhpcy5faW5wdXRWYWx1ZUFjY2Vzc29yLnZhbHVlPXQsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX1nZXQgcmVhZG9ubHkoKXtyZXR1cm4gdGhpcy5fcmVhZG9ubHl9c2V0IHJlYWRvbmx5KHQpe3RoaXMuX3JlYWRvbmx5PXl6KHQpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX3BsYXRmb3JtLmlzQnJvd3NlciYmdGhpcy5fYXV0b2ZpbGxNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLmF1dG9maWxsZWQ9dC5pc0F1dG9maWxsZWQsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfSkpfW5nT25DaGFuZ2VzKCl7dGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfW5nT25EZXN0cm95KCl7dGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKSx0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJnRoaXMuX2F1dG9maWxsTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpfW5nRG9DaGVjaygpe3RoaXMubmdDb250cm9sJiZ0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKSx0aGlzLl9kaXJ0eUNoZWNrTmF0aXZlVmFsdWUoKSx0aGlzLl9kaXJ0eUNoZWNrUGxhY2Vob2xkZXIoKX1mb2N1cyh0KXt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXModCl9X2ZvY3VzQ2hhbmdlZCh0KXt0IT09dGhpcy5mb2N1c2VkJiYodGhpcy5mb2N1c2VkPXQsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX1fb25JbnB1dCgpe31fZGlydHlDaGVja1BsYWNlaG9sZGVyKCl7dmFyIHQsZTtjb25zdCBuPShudWxsPT09KGU9bnVsbD09PSh0PXRoaXMuX2Zvcm1GaWVsZCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuX2hpZGVDb250cm9sUGxhY2Vob2xkZXIpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNhbGwodCkpP251bGw6dGhpcy5wbGFjZWhvbGRlcjtpZihuIT09dGhpcy5fcHJldmlvdXNQbGFjZWhvbGRlcil7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7dGhpcy5fcHJldmlvdXNQbGFjZWhvbGRlcj1uLG4/dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIixuKTp0LnJlbW92ZUF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiKX19X2RpcnR5Q2hlY2tOYXRpdmVWYWx1ZSgpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO3RoaXMuX3ByZXZpb3VzTmF0aXZlVmFsdWUhPT10JiYodGhpcy5fcHJldmlvdXNOYXRpdmVWYWx1ZT10LHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9X3ZhbGlkYXRlVHlwZSgpe2lmKElZLmluZGV4T2YodGhpcy5fdHlwZSk+LTEmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSkKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCnRocm93KGZ1bmN0aW9uIHQoZSl7cmV0dXJuIEVycm9yKGBJbnB1dCB0eXBlICIke2V9IiBpc24ndCBzdXBwb3J0ZWQgYnkgbWF0SW5wdXQuYCl9KSh0aGlzLl90eXBlKX1faXNOZXZlckVtcHR5KCl7cmV0dXJuIHRoaXMuX25ldmVyRW1wdHlJbnB1dFR5cGVzLmluZGV4T2YodGhpcy5fdHlwZSk+LTF9X2lzQmFkSW5wdXQoKXtsZXQgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsaWRpdHk7cmV0dXJuIHQmJnQuYmFkSW5wdXR9Z2V0IGVtcHR5KCl7cmV0dXJuISh0aGlzLl9pc05ldmVyRW1wdHkoKXx8dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlfHx0aGlzLl9pc0JhZElucHV0KCl8fHRoaXMuYXV0b2ZpbGxlZCl9Z2V0IHNob3VsZExhYmVsRmxvYXQoKXtpZih0aGlzLl9pc05hdGl2ZVNlbGVjdCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsZT10Lm9wdGlvbnNbMF07cmV0dXJuIHRoaXMuZm9jdXNlZHx8dC5tdWx0aXBsZXx8IXRoaXMuZW1wdHl8fCEhKHQuc2VsZWN0ZWRJbmRleD4tMSYmZSYmZS5sYWJlbCl9cmV0dXJuIHRoaXMuZm9jdXNlZHx8IXRoaXMuZW1wdHl9c2V0RGVzY3JpYmVkQnlJZHModCl7dC5sZW5ndGg/dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIsdC5qb2luKCIgIikpOnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtZGVzY3JpYmVkYnkiKX1vbkNvbnRhaW5lckNsaWNrKCl7dGhpcy5mb2N1c2VkfHx0aGlzLmZvY3VzKCl9fUxZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMWSkoU20oaGcpLFNtKHd6KSxTbShNaiwxMCksU20oaVUsOCksU20oUFUsOCksU20oYkgpLFNtKHpZLDEwKSxTbShFWSksU20oYV8pLFNtKFJWLDgpKX0sTFkuybVkaXI9bG8oe3R5cGU6TFksc2VsZWN0b3JzOltbImlucHV0IiwibWF0SW5wdXQiLCIiXSxbInRleHRhcmVhIiwibWF0SW5wdXQiLCIiXSxbInNlbGVjdCIsIm1hdE5hdGl2ZUNvbnRyb2wiLCIiXSxbImlucHV0IiwibWF0TmF0aXZlQ29udHJvbCIsIiJdLFsidGV4dGFyZWEiLCJtYXROYXRpdmVDb250cm9sIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LWlucHV0LWVsZW1lbnQiLCJtYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sIl0saG9zdFZhcnM6OSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImZvY3VzIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9mb2N1c0NoYW5nZWQoITApfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9mb2N1c0NoYW5nZWQoITEpfSkpKCJpbnB1dCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25JbnB1dCgpfSkpLDImZSYmKFR1KCJkaXNhYmxlZCIsbi5kaXNhYmxlZCkoInJlcXVpcmVkIixuLnJlcXVpcmVkKSxqcCgiaWQiLG4uaWQpKCJkYXRhLXBsYWNlaG9sZGVyIixuLnBsYWNlaG9sZGVyKSgicmVhZG9ubHkiLG4ucmVhZG9ubHkmJiFuLl9pc05hdGl2ZVNlbGVjdHx8bnVsbCkoImFyaWEtaW52YWxpZCIsbi5lbXB0eSYmbi5yZXF1aXJlZD9udWxsOm4uZXJyb3JTdGF0ZSkoImFyaWEtcmVxdWlyZWQiLG4ucmVxdWlyZWQpLHB1KCJtYXQtaW5wdXQtc2VydmVyIixuLl9pc1NlcnZlcikpfSxpbnB1dHM6e2lkOiJpZCIsZGlzYWJsZWQ6ImRpc2FibGVkIixyZXF1aXJlZDoicmVxdWlyZWQiLHR5cGU6InR5cGUiLHZhbHVlOiJ2YWx1ZSIscmVhZG9ubHk6InJlYWRvbmx5IixwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIiLGVycm9yU3RhdGVNYXRjaGVyOiJlcnJvclN0YXRlTWF0Y2hlciIsdXNlckFyaWFEZXNjcmliZWRCeTpbImFyaWEtZGVzY3JpYmVkYnkiLCJ1c2VyQXJpYURlc2NyaWJlZEJ5Il19LGV4cG9ydEFzOlsibWF0SW5wdXQiXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOmJWLHVzZUV4aXN0aW5nOkxZfV0pLHhwLEJvXX0pLExZLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOnd6fSx7dHlwZTpNaixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9XX0se3R5cGU6aVUsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6UFUsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6Ykh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W3pZXX1dfSx7dHlwZTpFWX0se3R5cGU6YV99LHt0eXBlOkFWLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltSVl19XX1dLExZLnByb3BEZWNvcmF0b3JzPXtkaXNhYmxlZDpbe3R5cGU6eHl9XSxpZDpbe3R5cGU6eHl9XSxwbGFjZWhvbGRlcjpbe3R5cGU6eHl9XSxyZXF1aXJlZDpbe3R5cGU6eHl9XSx0eXBlOlt7dHlwZTp4eX1dLGVycm9yU3RhdGVNYXRjaGVyOlt7dHlwZTp4eX1dLHVzZXJBcmlhRGVzY3JpYmVkQnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSx2YWx1ZTpbe3R5cGU6eHl9XSxyZWFkb25seTpbe3R5cGU6eHl9XSxfZm9jdXNDaGFuZ2VkOlt7dHlwZTp3eSxhcmdzOlsiZm9jdXMiLFsidHJ1ZSJdXX0se3R5cGU6d3ksYXJnczpbImJsdXIiLFsiZmFsc2UiXV19XSxfb25JbnB1dDpbe3R5cGU6d3ksYXJnczpbImlucHV0Il19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMWSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJpbnB1dFttYXRJbnB1dF0sIHRleHRhcmVhW21hdElucHV0XSwgc2VsZWN0W21hdE5hdGl2ZUNvbnRyb2xdLFxuICAgICAgaW5wdXRbbWF0TmF0aXZlQ29udHJvbF0sIHRleHRhcmVhW21hdE5hdGl2ZUNvbnRyb2xdIixleHBvcnRBczoibWF0SW5wdXQiLGhvc3Q6e2NsYXNzOiJtYXQtaW5wdXQtZWxlbWVudCBtYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sIiwiW2NsYXNzLm1hdC1pbnB1dC1zZXJ2ZXJdIjoiX2lzU2VydmVyIiwiW2F0dHIuaWRdIjoiaWQiLCJbYXR0ci5kYXRhLXBsYWNlaG9sZGVyXSI6InBsYWNlaG9sZGVyIiwiW2Rpc2FibGVkXSI6ImRpc2FibGVkIiwiW3JlcXVpcmVkXSI6InJlcXVpcmVkIiwiW2F0dHIucmVhZG9ubHldIjoicmVhZG9ubHkgJiYgIV9pc05hdGl2ZVNlbGVjdCB8fCBudWxsIiwiW2F0dHIuYXJpYS1pbnZhbGlkXSI6IihlbXB0eSAmJiByZXF1aXJlZCkgPyBudWxsIDogZXJyb3JTdGF0ZSIsIlthdHRyLmFyaWEtcmVxdWlyZWRdIjoicmVxdWlyZWQifSxwcm92aWRlcnM6W3twcm92aWRlOmJWLHVzZUV4aXN0aW5nOkxZfV19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6d3p9LHt0eXBlOk1qLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn1dfSx7dHlwZTppVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpQVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpiSH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbelldfV19LHt0eXBlOkVZfSx7dHlwZTphX30se3R5cGU6QVYsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1JWXX1dfV19KSx7aWQ6W3t0eXBlOnh5fV0sZGlzYWJsZWQ6W3t0eXBlOnh5fV0scmVxdWlyZWQ6W3t0eXBlOnh5fV0sdHlwZTpbe3R5cGU6eHl9XSx2YWx1ZTpbe3R5cGU6eHl9XSxyZWFkb25seTpbe3R5cGU6eHl9XSxfZm9jdXNDaGFuZ2VkOlt7dHlwZTp3eSxhcmdzOlsiZm9jdXMiLFsidHJ1ZSJdXX0se3R5cGU6d3ksYXJnczpbImJsdXIiLFsiZmFsc2UiXV19XSxfb25JbnB1dDpbe3R5cGU6d3ksYXJnczpbImlucHV0Il19XSxwbGFjZWhvbGRlcjpbe3R5cGU6eHl9XSxlcnJvclN0YXRlTWF0Y2hlcjpbe3R5cGU6eHl9XSx1c2VyQXJpYURlc2NyaWJlZEJ5Olt7dHlwZTp4eSxhcmdzOlsiYXJpYS1kZXNjcmliZWRieSJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEJZe31mdW5jdGlvbiBWWSh0LGUpe2lmKDEmdCYmKFJtKDAsIm1hdC1lcnJvciIpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLER1KCIgUmVsb2FkIHBlcmlvZCBoYXMgdG8gYmUgbWluaW11bSBvZiAiLHQuTUlOX1JFTE9BRF9QRVJJT0RfSU5fUywiIHNlY29uZHMuICIpfX1mdW5jdGlvbiBqWSh0LGUpezEmdCYmKFJtKDAsIm1hdC1lcnJvciIpLGt1KDEsIiBQYWdlIHNpemUgaGFzIHRvIGJlIGEgcG9zaXRpdmUgaW50ZWdlci4gIiksQW0oKSl9QlkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJZKX0sQlkuybVtb2Q9YW8oe3R5cGU6Qll9KSxCWS7JtWluaj12bih7cHJvdmlkZXJzOltiSF0saW1wb3J0czpbW1RZLFRWLFhJXSxUWSxUVl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJZLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltMWSxOWV0saW1wb3J0czpbVFksVFYsWEldLGV4cG9ydHM6W1RZLFRWLExZLE5ZXSxwcm92aWRlcnM6W2JIXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEJZLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bTFksTlldfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1RZLFRWLFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltUWSxUVixMWSxOWV19fSk7Y2xhc3MgVVl7Y29uc3RydWN0b3IoKXt0aGlzLnJlbG9hZFRvZ2dsZWQ9bmV3IExoLHRoaXMucmVsb2FkUGVyaW9kSW5Nc0NoYW5nZWQ9bmV3IExoLHRoaXMucGFnZVNpemVDaGFuZ2VkPW5ldyBMaCx0aGlzLk1JTl9SRUxPQURfUEVSSU9EX0lOX1M9MzAsdGhpcy5yZWxvYWRQZXJpb2RDb250cm9sPW5ldyAkaih0aGlzLk1JTl9SRUxPQURfUEVSSU9EX0lOX1MsW3FWLnJlcXVpcmVkLHFWLm1pbih0aGlzLk1JTl9SRUxPQURfUEVSSU9EX0lOX1MpXSksdGhpcy5wYWdpbmF0aW9uQ29udHJvbD1uZXcgJGooMSxbcVYucmVxdWlyZWQscVYubWluKDEpLHQ9Pntjb25zdCBlPU51bWJlcih0LnZhbHVlKTtyZXR1cm4gTWF0aC5yb3VuZChlKT09PXQudmFsdWU/bnVsbDp7aW50ZWdlcjp7dmFsdWU6dC52YWx1ZX19fV0pLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgSX1uZ09uSW5pdCgpe3RoaXMucmVsb2FkUGVyaW9kQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLGdlKDUwMCksY2UoKCgpPT50aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wudmFsaWQpKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMucmVsb2FkUGVyaW9kQ29udHJvbC52YWxpZCYmdGhpcy5yZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZC5lbWl0KDFlMyp0aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wudmFsdWUpfSkpLHRoaXMucGFnaW5hdGlvbkNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSxnZSg1MDApLGNlKCgoKT0+dGhpcy5wYWdpbmF0aW9uQ29udHJvbC52YWxpZCkpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5wYWdlU2l6ZUNoYW5nZWQuZW1pdCh0aGlzLnBhZ2luYXRpb25Db250cm9sLnZhbHVlKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9bmdPbkNoYW5nZXModCl7aWYodC5yZWxvYWRQZXJpb2RJbk1zKXtjb25zdCBlPXQucmVsb2FkUGVyaW9kSW5NcztlLnByZXZpb3VzVmFsdWUhPT1lLmN1cnJlbnRWYWx1ZSYmdGhpcy5yZWxvYWRQZXJpb2RDb250cm9sLnNldFZhbHVlKGUuY3VycmVudFZhbHVlLzFlMyl9aWYodC5yZWxvYWRFbmFibGVkJiYodC5yZWxvYWRFbmFibGVkLmN1cnJlbnRWYWx1ZT90aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wuZW5hYmxlKCk6dGhpcy5yZWxvYWRQZXJpb2RDb250cm9sLmRpc2FibGUoKSksdC5wYWdlU2l6ZSl7Y29uc3QgZT10LnBhZ2VTaXplO2UucHJldmlvdXNWYWx1ZSE9PWUuY3VycmVudFZhbHVlJiZ0aGlzLnBhZ2luYXRpb25Db250cm9sLnNldFZhbHVlKGUuY3VycmVudFZhbHVlKX19b25SZWxvYWRUb2dnbGUoKXt0aGlzLnJlbG9hZFRvZ2dsZWQuZW1pdCgpfX1VWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VVkpfSxVWS7JtWNtcD10byh7dHlwZTpVWSxzZWxlY3RvcnM6W1sic2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudCJdXSxpbnB1dHM6e3JlbG9hZEVuYWJsZWQ6InJlbG9hZEVuYWJsZWQiLHJlbG9hZFBlcmlvZEluTXM6InJlbG9hZFBlcmlvZEluTXMiLHBhZ2VTaXplOiJwYWdlU2l6ZSJ9LG91dHB1dHM6e3JlbG9hZFRvZ2dsZWQ6InJlbG9hZFRvZ2dsZWQiLHJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkOiJyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCIscGFnZVNpemVDaGFuZ2VkOiJwYWdlU2l6ZUNoYW5nZWQifSxmZWF0dXJlczpbQm9dLGRlY2xzOjE0LHZhcnM6NSxjb25zdHM6W1sxLCJyZWxvYWQtdG9nZ2xlIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbIm1hdElucHV0IiwiIiwidHlwZSIsIm51bWJlciIsInBsYWNlaG9sZGVyIiwiUmVsb2FkIFBlcmlvZCIsMSwicmVsb2FkLXBlcmlvZCIsMywiZm9ybUNvbnRyb2wiXSxbNCwibmdJZiJdLFsibWF0SW5wdXQiLCIiLCJ0eXBlIiwibnVtYmVyIiwicGxhY2Vob2xkZXIiLCJQYWdpbmF0aW9uIExpbWl0IiwxLCJwYWdlLXNpemUiLDMsImZvcm1Db250cm9sIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJoMyIpLGt1KDEsIlNldHRpbmdzIiksQW0oKSxSbSgyLCJkaXYiKSxSbSgzLCJkaXYiLDApLFJtKDQsIm1hdC1jaGVja2JveCIsMSksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlbG9hZFRvZ2dsZSgpfSkpLGt1KDUsIlJlbG9hZCBkYXRhIiksQW0oKSxBbSgpLFJtKDYsImRpdiIpLFJtKDcsIm1hdC1mb3JtLWZpZWxkIiksVG0oOCwiaW5wdXQiLDIpLEFtKCksUXAoOSxWWSwyLDEsIm1hdC1lcnJvciIsMyksQW0oKSxBbSgpLFJtKDEwLCJkaXYiKSxSbSgxMSwibWF0LWZvcm0tZmllbGQiKSxUbSgxMiwiaW5wdXQiLDQpLEFtKCksUXAoMTMsalksMiwwLCJtYXQtZXJyb3IiLDMpLEFtKCkpLDImZSYmKHJjKDQpLERtKCJjaGVja2VkIixuLnJlbG9hZEVuYWJsZWQpLHJjKDQpLERtKCJmb3JtQ29udHJvbCIsbi5yZWxvYWRQZXJpb2RDb250cm9sKSxyYygxKSxEbSgibmdJZiIsbi5yZWxvYWRQZXJpb2RDb250cm9sLmhhc0Vycm9yKCJtaW4iKXx8bi5yZWxvYWRQZXJpb2RDb250cm9sLmhhc0Vycm9yKCJyZXF1aXJlZCIpKSxyYygzKSxEbSgiZm9ybUNvbnRyb2wiLG4ucGFnaW5hdGlvbkNvbnRyb2wpLHJjKDEpLERtKCJuZ0lmIixuLnBhZ2luYXRpb25Db250cm9sLmludmFsaWQpKX0sZGlyZWN0aXZlczpbT1ksQVYsTFksZlUsVlYseGoseFUsZE0sZ1ZdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbltfbmdob3N0LSVDT01QJV0gICAgPiBkaXZbX25nY29udGVudC0lQ09NUCVdIHtcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbltfbmdob3N0LSVDT01QJV0gICAgPiBbX25nY29udGVudC0lQ09NUCVdOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuW19uZ2hvc3QtJUNPTVAlXSAgICA+IFtfbmdjb250ZW50LSVDT01QJV06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmgzW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLnJlbG9hZC10b2dnbGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn0iXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVVksW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6InNldHRpbmdzX2RpYWxvZ19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9zZXR0aW5nc19kaWFsb2dfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLHtyZWxvYWRFbmFibGVkOlt7dHlwZTp4eX1dLHJlbG9hZFBlcmlvZEluTXM6W3t0eXBlOnh5fV0scGFnZVNpemU6W3t0eXBlOnh5fV0scmVsb2FkVG9nZ2xlZDpbe3R5cGU6T3l9XSxyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZDpbe3R5cGU6T3l9XSxwYWdlU2l6ZUNoYW5nZWQ6W3t0eXBlOk95fV19KTtjbGFzcyBHWXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5yZWxvYWRFbmFibGVkJD10aGlzLnN0b3JlLnNlbGVjdChETiksdGhpcy5yZWxvYWRQZXJpb2RJbk1zJD10aGlzLnN0b3JlLnNlbGVjdChFTiksdGhpcy5wYWdlU2l6ZSQ9dGhpcy5zdG9yZS5zZWxlY3QoUk4pfW9uUmVsb2FkVG9nZ2xlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2godk4oKSl9b25SZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKHhOKHtwZXJpb2RJbk1zOnR9KSl9b25QYWdlU2l6ZUNoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChPTih7c2l6ZTp0fSkpfX1HWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8R1kpKFNtKEl3KSl9LEdZLsm1Y21wPXRvKHt0eXBlOkdZLHNlbGVjdG9yczpbWyJzZXR0aW5ncy1kaWFsb2ciXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywicmVsb2FkRW5hYmxlZCIsInJlbG9hZFBlcmlvZEluTXMiLCJwYWdlU2l6ZSIsInJlbG9hZFRvZ2dsZWQiLCJyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCIsInBhZ2VTaXplQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwic2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudCIsMCksVm0oInJlbG9hZFRvZ2dsZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZWxvYWRUb2dnbGVkKCl9KSkoInJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkKGUpfSkpKCJwYWdlU2l6ZUNoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUGFnZVNpemVDaGFuZ2VkKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFtKCkpLDImZSYmRG0oInJlbG9hZEVuYWJsZWQiLFRoKDEsMyxuLnJlbG9hZEVuYWJsZWQkKSkoInJlbG9hZFBlcmlvZEluTXMiLFRoKDIsNSxuLnJlbG9hZFBlcmlvZEluTXMkKSkoInBhZ2VTaXplIixUaCgzLDcsbi5wYWdlU2l6ZSQpKX0sZGlyZWN0aXZlczpbVVldLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChHWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJzZXR0aW5ncy1kaWFsb2ciLHRlbXBsYXRlOidcbiAgICA8c2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudFxuICAgICAgW3JlbG9hZEVuYWJsZWRdPSJyZWxvYWRFbmFibGVkJCB8IGFzeW5jIlxuICAgICAgW3JlbG9hZFBlcmlvZEluTXNdPSJyZWxvYWRQZXJpb2RJbk1zJCB8IGFzeW5jIlxuICAgICAgW3BhZ2VTaXplXT0icGFnZVNpemUkIHwgYXN5bmMiXG4gICAgICAocmVsb2FkVG9nZ2xlZCk9Im9uUmVsb2FkVG9nZ2xlZCgpIlxuICAgICAgKHJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkKT0ib25SZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCgkZXZlbnQpIlxuICAgICAgKHBhZ2VTaXplQ2hhbmdlZCk9Im9uUGFnZVNpemVDaGFuZ2VkKCRldmVudCkiXG4gICAgPjwvc2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjbGFzcyBXWXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmRpYWxvZz10fWlzQnV0dG9uRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5zZXR0aW5nc0xvYWRTdGF0ZT09PXlFLk5PVF9MT0FERUR8fHRoaXMuc2V0dGluZ3NMb2FkU3RhdGU9PT15RS5MT0FESU5HfW9wZW5EaWFsb2coKXt0aGlzLmRpYWxvZy5vcGVuKEdZLHt3aWR0aDoiNDAwcHgifSl9fVdZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxXWSkoU20ob1cpKX0sV1kuybVjbXA9dG8oe3R5cGU6V1ksc2VsZWN0b3JzOltbInNldHRpbmdzLWJ1dHRvbi1jb21wb25lbnQiXV0saW5wdXRzOntzZXR0aW5nc0xvYWRTdGF0ZToic2V0dGluZ3NMb2FkU3RhdGUifSxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1sibWF0LWljb24tYnV0dG9uIiwiIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzdmdJY29uIiwic2V0dGluZ3NfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiYnV0dG9uIiwwKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub3BlbkRpYWxvZygpfSkpLFRtKDEsIm1hdC1pY29uIiwxKSxBbSgpKSwyJmUmJkRtKCJkaXNhYmxlZCIsbi5pc0J1dHRvbkRpc2FibGVkKCkpfSxkaXJlY3RpdmVzOltYSCxEV10sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJzZXR0aW5ncy1idXR0b24tY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbZGlzYWJsZWRdPSJpc0J1dHRvbkRpc2FibGVkKCkiXG4gICAgICAoY2xpY2spPSJvcGVuRGlhbG9nKCkiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249InNldHRpbmdzXzI0cHgiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpvV31dfSkse3NldHRpbmdzTG9hZFN0YXRlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgWVl7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuc2V0dGluZ3NMb2FkU3RhdGUkPXRoaXMuc3RvcmUuc2VsZWN0KFNOKX19WVkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFlZKShTbShJdykpfSxZWS7JtWNtcD10byh7dHlwZTpZWSxzZWxlY3RvcnM6W1sic2V0dGluZ3MtYnV0dG9uIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsInNldHRpbmdzTG9hZFN0YXRlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJzZXR0aW5ncy1idXR0b24tY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpKSwyJmUmJkRtKCJzZXR0aW5nc0xvYWRTdGF0ZSIsVGgoMSwxLG4uc2V0dGluZ3NMb2FkU3RhdGUkKSl9LGRpcmVjdGl2ZXM6W1dZXSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWVksW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic2V0dGluZ3MtYnV0dG9uIix0ZW1wbGF0ZTonXG4gICAgPHNldHRpbmdzLWJ1dHRvbi1jb21wb25lbnRcbiAgICAgIFtzZXR0aW5nc0xvYWRTdGF0ZV09InNldHRpbmdzTG9hZFN0YXRlJCB8IGFzeW5jIlxuICAgID48L3NldHRpbmdzLWJ1dHRvbi1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgcVl7fXFZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxxWSl9LHFZLsm1Y21wPXRvKHt0eXBlOnFZLHNlbGVjdG9yczpbWyJhcHAtaGVhZGVyIl1dLGRlY2xzOjEwLHZhcnM6MCxjb25zdHM6W1sxLCJicmFuZCJdLFsxLCJwbHVnaW5zIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJocmVmIiwiaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwicmVsIiwibm9vcGVuZXIgbm9yZWZlcnJlciIsInRhcmdldCIsIl9ibGFuayIsImFyaWEtbGFiZWwiLCJIZWxwIiwxLCJyZWFkbWUiXSxbInN2Z0ljb24iLCJoZWxwX291dGxpbmVfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWF0LXRvb2xiYXIiKSxSbSgxLCJzcGFuIiwwKSxrdSgyLCJUZW5zb3JCb2FyZCIpLEFtKCksVG0oMywicGx1Z2luLXNlbGVjdG9yIiwxKSxUbSg0LCJ0YmRldi11cGxvYWQtYnV0dG9uIiksVG0oNSwiYXBwLWhlYWRlci1kYXJrLW1vZGUtdG9nZ2xlIiksVG0oNiwiYXBwLWhlYWRlci1yZWxvYWQiKSxUbSg3LCJzZXR0aW5ncy1idXR0b24iKSxSbSg4LCJhIiwyKSxUbSg5LCJtYXQtaWNvbiIsMyksQW0oKSxBbSgpKX0sZGlyZWN0aXZlczpbZUIsVkcsSVcsY1kscFksWVksS0gsRFddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfW1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjY0cHg7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCV9dGJkZXYtdXBsb2FkLWJ1dHRvbi5zaG93bltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgOHB4IDAgMTZweH0uYnJhbmRbX25nY29udGVudC0lQ09NUCVdLCAucmVhZG1lW19uZ2NvbnRlbnQtJUNPTVAlXSwgYXBwLWhlYWRlci1yZWxvYWRbX25nY29udGVudC0lQ09NUCVdLCBzZXR0aW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZsZXg6MCAwIGF1dG99LmJyYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtsZXR0ZXItc3BhY2luZzotMC4wMjVlbTttYXJnaW4tbGVmdDoxMHB4O3RleHQtcmVuZGVyaW5nOm9wdGltaXplTGVnaWJpbGl0eX0ucGx1Z2luc1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2ZvbnQtc2l6ZToxNHB4O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocVksW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiYXBwLWhlYWRlciIsdGVtcGxhdGU6J1xuICAgIDxtYXQtdG9vbGJhcj5cbiAgICAgIDxzcGFuIGNsYXNzPSJicmFuZCI+VGVuc29yQm9hcmQ8L3NwYW4+XG4gICAgICA8cGx1Z2luLXNlbGVjdG9yIGNsYXNzPSJwbHVnaW5zIj48L3BsdWdpbi1zZWxlY3Rvcj5cbiAgICAgIDx0YmRldi11cGxvYWQtYnV0dG9uPjwvdGJkZXYtdXBsb2FkLWJ1dHRvbj5cbiAgICAgIDxhcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGU+PC9hcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGU+XG4gICAgICA8YXBwLWhlYWRlci1yZWxvYWQ+PC9hcHAtaGVhZGVyLXJlbG9hZD5cbiAgICAgIDxzZXR0aW5ncy1idXR0b24+PC9zZXR0aW5ncy1idXR0b24+XG4gICAgICA8YVxuICAgICAgICBjbGFzcz0icmVhZG1lIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIlxuICAgICAgICByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiXG4gICAgICAgIHRhcmdldD0iX2JsYW5rIlxuICAgICAgICBhcmlhLWxhYmVsPSJIZWxwIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj0iaGVscF9vdXRsaW5lXzI0cHgiPjwvbWF0LWljb24+XG4gICAgICA8L2E+XG4gICAgPC9tYXQtdG9vbGJhcj5cbiAgJyxzdHlsZVVybHM6WyJoZWFkZXJfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLG51bGwpO2NvbnN0IFpZPVsicm91dGVDb250YWluZXIiXTtjbGFzcyBYWXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj10fW5nT25DaGFuZ2VzKHQpe2NvbnN0IGU9dC5hY3RpdmVOZ0NvbXBvbmVudDtpZihlJiYodGhpcy5yb3V0ZUNvbnRhaW5lci5jbGVhcigpLGUuY3VycmVudFZhbHVlKSl7Y29uc3QgdD10aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShlLmN1cnJlbnRWYWx1ZSk7dGhpcy5yb3V0ZUNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodCl9fX1YWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WFkpKFNtKHVnKSl9LFhZLsm1Y21wPXRvKHt0eXBlOlhZLHNlbGVjdG9yczpbWyJyb3V0ZXItb3V0bGV0LWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoWlksNyxlaCksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5yb3V0ZUNvbnRhaW5lcj10LmZpcnN0KX19LGlucHV0czp7YWN0aXZlTmdDb21wb25lbnQ6ImFjdGl2ZU5nQ29tcG9uZW50In0sZmVhdHVyZXM6W0JvXSxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1sicm91dGVDb250YWluZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmSW0oMCxudWxsLDApfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFhZLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InJvdXRlci1vdXRsZXQtY29tcG9uZW50Iix0ZW1wbGF0ZToiIDxuZy1jb250YWluZXIgI3JvdXRlQ29udGFpbmVyPjwvbmctY29udGFpbmVyPiAiLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp1Z31dfSkse3JvdXRlQ29udGFpbmVyOlt7dHlwZTpaYSxhcmdzOlsicm91dGVDb250YWluZXIiLHtzdGF0aWM6ITAscmVhZDplaH1dfV0sYWN0aXZlTmdDb21wb25lbnQ6W3t0eXBlOnh5fV19KTtjbGFzcyBLWXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc3RvcmU9dCx0aGlzLnJlZ2lzdHJ5PWUsdGhpcy5hY3RpdmVOZ0NvbXBvbmVudCQ9V3QoW3RoaXMuc3RvcmUuc2VsZWN0KFNTKSx0aGlzLnN0b3JlLnNlbGVjdChEUyldKS5waXBlKEl0KCgoW3QsZV0pPT50P251bGwhPT1lJiZRayhlLnJvdXRlS2luZCxlLnBhcmFtcykhPT1Rayh0LnJvdXRlS2luZCx0LnBhcmFtcyk/bnVsbDp0aGlzLnJlZ2lzdHJ5LmdldE5nQ29tcG9uZW50QnlSb3V0ZUtpbmQodC5yb3V0ZUtpbmQpOm51bGwpKSl9fXZhciBKWTtLWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8S1kpKFNtKEl3KSxTbShQUykpfSxLWS7JtWNtcD10byh7dHlwZTpLWSxzZWxlY3RvcnM6W1sicm91dGVyLW91dGxldCJdXSxkZWNsczoyLHZhcnM6Myxjb25zdHM6W1szLCJhY3RpdmVOZ0NvbXBvbmVudCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwicm91dGVyLW91dGxldC1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIikpLDImZSYmRG0oImFjdGl2ZU5nQ29tcG9uZW50IixUaCgxLDEsbi5hY3RpdmVOZ0NvbXBvbmVudCQpKX0sZGlyZWN0aXZlczpbWFldLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChLWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJyb3V0ZXItb3V0bGV0Iix0ZW1wbGF0ZTonXG4gICAgPHJvdXRlci1vdXRsZXQtY29tcG9uZW50XG4gICAgICBbYWN0aXZlTmdDb21wb25lbnRdPSJhY3RpdmVOZ0NvbXBvbmVudCQgfCBhc3luYyJcbiAgICA+PC9yb3V0ZXItb3V0bGV0LWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9LHt0eXBlOlBTfV19KSxudWxsKSwoZnVuY3Rpb24odCl7dFt0LkFDVElWRV9QTFVHSU49MF09IkFDVElWRV9QTFVHSU4ifSkoSll8fChKWT17fSkpO2NsYXNzIFFZe2NvbnN0cnVjdG9yKHQpe3RoaXMuZGVlcExpbmtlcj10LHRoaXMub25WYWx1ZUNoYW5nZT1uZXcgTGgsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBJLHRoaXMub25IYXNoQ2hhbmdlPW9lKHdpbmRvdywicG9wc3RhdGUiLHtwYXNzaXZlOiEwfSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpKX1uZ09uSW5pdCgpe3RoaXMub25IYXNoQ2hhbmdlLnN1YnNjcmliZSgoKCk9Pntjb25zdCB0PXRoaXMuZGVlcExpbmtlci5nZXRQbHVnaW5JZCgpO3QhPT10aGlzLmFjdGl2ZVBsdWdpbklkJiZ0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh7cHJvcDpKWS5BQ1RJVkVfUExVR0lOLHZhbHVlOnR9KX0pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9bmdPbkNoYW5nZXModCl7aWYodC5hY3RpdmVQbHVnaW5JZCl7Y29uc3QgZT10LmFjdGl2ZVBsdWdpbklkO3RoaXMuZGVlcExpbmtlci5zZXRQbHVnaW5JZChudWxsPT09ZS5jdXJyZW50VmFsdWU/IiI6ZS5jdXJyZW50VmFsdWUse2RlZmF1bHRWYWx1ZToiIix1c2VMb2NhdGlvblJlcGxhY2U6bnVsbD09PWUucHJldmlvdXNWYWx1ZXx8ZS5maXJzdENoYW5nZX0pfX19UVkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFFZKShTbShWUykpfSxRWS7JtWNtcD10byh7dHlwZTpRWSxzZWxlY3RvcnM6W1siaGFzaC1zdG9yYWdlLWNvbXBvbmVudCJdXSxpbnB1dHM6e2FjdGl2ZVBsdWdpbklkOiJhY3RpdmVQbHVnaW5JZCJ9LG91dHB1dHM6e29uVmFsdWVDaGFuZ2U6Im9uVmFsdWVDaGFuZ2UifSxmZWF0dXJlczpbQm9dLGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXt9LGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUVksW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiaGFzaC1zdG9yYWdlLWNvbXBvbmVudCIsdGVtcGxhdGU6IiIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlZTfV19KSx7YWN0aXZlUGx1Z2luSWQ6W3t0eXBlOnh5fV0sb25WYWx1ZUNoYW5nZTpbe3R5cGU6T3l9XX0pO2NsYXNzICRZe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmFjdGl2ZVBsdWdpbklkJD10aGlzLnN0b3JlLnBpcGUoRncoTVIpKX1vblZhbHVlQ2hhbmdlZCh0KXtzd2l0Y2godC5wcm9wKXtjYXNlIEpZLkFDVElWRV9QTFVHSU46dGhpcy5zdG9yZS5kaXNwYXRjaChDRSh7cGx1Z2luOnQudmFsdWV9KSl9fX0kWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8JFkpKFNtKEl3KSl9LCRZLsm1Y21wPXRvKHt0eXBlOiRZLHNlbGVjdG9yczpbWyJoYXNoLXN0b3JhZ2UiXV0sZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbMywiYWN0aXZlUGx1Z2luSWQiLCJvblZhbHVlQ2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJoYXNoLXN0b3JhZ2UtY29tcG9uZW50IiwwKSxWbSgib25WYWx1ZUNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25WYWx1ZUNoYW5nZWQoZSl9KSksQWgoMSwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJhY3RpdmVQbHVnaW5JZCIsVGgoMSwxLG4uYWN0aXZlUGx1Z2luSWQkKSl9LGRpcmVjdGl2ZXM6W1FZXSxwaXBlczpbd01dLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCgkWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJoYXNoLXN0b3JhZ2UiLHRlbXBsYXRlOidcbiAgICA8aGFzaC1zdG9yYWdlLWNvbXBvbmVudFxuICAgICAgW2FjdGl2ZVBsdWdpbklkXT0iYWN0aXZlUGx1Z2luSWQkIHwgYXN5bmMiXG4gICAgICAob25WYWx1ZUNoYW5nZSk9Im9uVmFsdWVDaGFuZ2VkKCRldmVudCkiXG4gICAgPlxuICAgIDwvaGFzaC1zdG9yYWdlLWNvbXBvbmVudD5cbiAgJyxzdHlsZXM6WyJcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIHRxe25nT25DaGFuZ2VzKHQpe3QudGl0bGUmJihmdW5jdGlvbiBlKHQpe2RvY3VtZW50LnRpdGxlPXR9KSh0LnRpdGxlLmN1cnJlbnRWYWx1ZSl9fXRxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0cSl9LHRxLsm1Y21wPXRvKHt0eXBlOnRxLHNlbGVjdG9yczpbWyJwYWdlLXRpdGxlLWNvbXBvbmVudCJdXSxpbnB1dHM6e3RpdGxlOiJ0aXRsZSJ9LGZlYXR1cmVzOltCb10sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh0cSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJwYWdlLXRpdGxlLWNvbXBvbmVudCIsdGVtcGxhdGU6IiIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7dGl0bGU6W3t0eXBlOnh5fV19KTtjb25zdCBlcT0iVGVuc29yQm9hcmQiO2NsYXNzIG5xe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zdG9yZT10LHRoaXMuY3VzdG9tQnJhbmROYW1lPWUsdGhpcy5nZXRFeHBlcmltZW50SWQkPXRoaXMuc3RvcmUuc2VsZWN0KFRTKS5waXBlKEl0KCh0PT5udWxsPT10P3ZvaWQgMDp0WzBdKSkpLHRoaXMuZXhwZXJpbWVudE5hbWUkPXRoaXMuZ2V0RXhwZXJpbWVudElkJC5waXBlKGNlKEJvb2xlYW4pLFp0KCh0PT50aGlzLnN0b3JlLnNlbGVjdCh1QSx7ZXhwZXJpbWVudElkOnR9KSkpLEl0KCh0PT50P3QubmFtZTpudWxsKSkpLHRoaXMudGl0bGUkPXRoaXMuc3RvcmUuc2VsZWN0KHhSKS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KFJTKSx0aGlzLmV4cGVyaW1lbnROYW1lJCksSXQoKChbdCxlLG5dKT0+e2NvbnN0IG89dGhpcy5jdXN0b21CcmFuZE5hbWV8fGVxO3JldHVybiB0LndpbmRvd190aXRsZT90LndpbmRvd190aXRsZTplPT09WmsuRVhQRVJJTUVOVCYmbj9gJHtufSAtICR7b31gOm99KSksTmUodGhpcy5jdXN0b21CcmFuZE5hbWV8fGVxKSxNZSgpKX19bnEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5xKShTbShJdyksU20odUUsOCkpfSxucS7JtWNtcD10byh7dHlwZTpucSxzZWxlY3RvcnM6W1sicGFnZS10aXRsZSJdXSxkZWNsczoyLHZhcnM6Myxjb25zdHM6W1szLCJ0aXRsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwicGFnZS10aXRsZS1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIikpLDImZSYmRG0oInRpdGxlIixUaCgxLDEsbi50aXRsZSQpKX0sZGlyZWN0aXZlczpbdHFdLHBpcGVzOlt3TV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG5xLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InBhZ2UtdGl0bGUiLHRlbXBsYXRlOidcbiAgICA8cGFnZS10aXRsZS1jb21wb25lbnQgW3RpdGxlXT0idGl0bGUkIHwgYXN5bmMiPjwvcGFnZS10aXRsZS1jb21wb25lbnQ+XG4gICcsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3VFXX1dfV19KSxudWxsKTtjbGFzcyBvcXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBJLHRoaXMuZ2V0UGFnZVNpemUkPXRoaXMuc3RvcmUucGlwZShGdyhSTikpLHRoaXMucGFnaW5hdGVkVmlld1N0b3JlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRmLXBhZ2luYXRlZC12aWV3LXN0b3JlIikudGZfcGFnaW5hdGVkX3ZpZXd9bmdPbkluaXQoKXt0aGlzLmdldFBhZ2VTaXplJC5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSksTWUoKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5wYWdpbmF0ZWRWaWV3U3RvcmUuc2V0TGltaXQodCl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfX1vcS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b3EpKFNtKEl3KSl9LG9xLsm1Y21wPXRvKHt0eXBlOm9xLHNlbGVjdG9yczpbWyJzZXR0aW5ncy1wb2x5bWVyLWludGVyb3AiXV0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvcSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJzZXR0aW5ncy1wb2x5bWVyLWludGVyb3AiLHRlbXBsYXRlOiIiLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgaXF7Y29uc3RydWN0b3IodCl7dC5zZWxlY3QoSkQpLnN1YnNjcmliZSgodD0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiZGFyay1tb2RlIix0KX0pKX19aXEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGlxKShTbShJdykpfSxpcS7JtWNtcD10byh7dHlwZTppcSxzZWxlY3RvcnM6W1siZGFyay1tb2RlLXN1cHBvcnRlciJdXSxkZWNsczowLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7fSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoaXEsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiZGFyay1tb2RlLXN1cHBvcnRlciIsdGVtcGxhdGU6IiIsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjbGFzcyBhcXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnZjUmVmPXR9fWFxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxhcSkoU20oZWgpKX0sYXEuybVjbXA9dG8oe3R5cGU6YXEsc2VsZWN0b3JzOltbInRiLXdlYmFwcCJdXSxkZWNsczo4LHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwiYXBwLWhlYWRlciIpLFJtKDEsIm1haW4iKSxUbSgyLCJyb3V0ZXItb3V0bGV0IiksQW0oKSxUbSgzLCJhbGVydC1zbmFja2JhciIpLFRtKDQsImhhc2gtc3RvcmFnZSIpLFRtKDUsInBhZ2UtdGl0bGUiKSxUbSg2LCJzZXR0aW5ncy1wb2x5bWVyLWludGVyb3AiKSxUbSg3LCJkYXJrLW1vZGUtc3VwcG9ydGVyIikpfSxkaXJlY3RpdmVzOltxWSxLWSxYTCwkWSxucSxvcSxpcV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9aHRtbFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90byxzYW5zLXNlcmlmO2hlaWdodDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MH1bX25naG9zdC0lQ09NUCVde2JhY2tncm91bmQ6I2Y1ZjVmNTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlfWFwcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MCAxcHggM3B4IDNweCByZ2JhKDAsMCwwLC4yNSk7ZmxleDowIDA7ei1pbmRleDoxfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIGFwcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBhcHAtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjAgMXB4IDNweCAzcHggcmdiYSgyNTUsMjU1LDI1NSwuMSl9bWFpbltfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjE7b3ZlcmZsb3c6YXV0b30nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYXEsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGItd2ViYXBwIix0ZW1wbGF0ZVVybDoiLi9hcHBfY29udGFpbmVyLm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vYXBwX2NvbnRhaW5lci5jc3MiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofV19KSxudWxsKTtjbGFzcyBycXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5zdG9yZT10LHRoaXMubG9jYXRpb249ZSx0aGlzLmFwcFJvb3RQcm92aWRlcj1uLHRoaXMucGF0aG5hbWU9bnVsbH1oYW5kbGVDbGljayh0KXshdGhpcy5wYXRobmFtZXx8dC5jdHJsS2V5fHx0Lm1ldGFLZXl8fCh0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnN0b3JlLmRpc3BhdGNoKGxTKHtwYXRobmFtZTp0aGlzLnBhdGhuYW1lfSkpKX1nZXQgaHJlZigpe3JldHVybiB0aGlzLnBhdGhuYW1lP3RoaXMuYXBwUm9vdFByb3ZpZGVyLmdldEFic1BhdGhuYW1lV2l0aEFwcFJvb3QodGhpcy5sb2NhdGlvbi5nZXRGdWxsUGF0aEZyb21Sb3V0ZU9yTmF2KHtwYXRobmFtZTp0aGlzLnBhdGhuYW1lfSkpOm51bGx9c2V0IHJvdXRlckxpbmsodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYodD1bdF0pLDA9PT10Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigicm91dGVMaW5rIHNob3VsZCBoYXZlIHByb3BlciBwYXRoLiBHb3Qgbm90aGluZy4iKTtjb25zdCBlPVsuLi50XS5qb2luKCIvIik7dGhpcy5wYXRobmFtZT1lLmVuZHNXaXRoKCIvIik/ZTplKyIvIn19cnEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHJxKShTbShJdyksU20odFMpLFNtKGVTKSl9LHJxLsm1ZGlyPWxvKHt0eXBlOnJxLHNlbGVjdG9yczpbWyJhIiwicm91dGVyTGluayIsIiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmhhbmRsZUNsaWNrKGUpfSkpLDImZSYmanAoImhyZWYiLG4uaHJlZixUcyl9LGlucHV0czp7cm91dGVyTGluazoicm91dGVyTGluayJ9fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChycSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJhW3JvdXRlckxpbmtdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fSx7dHlwZTp0U30se3R5cGU6ZVN9XX0pLHtoYW5kbGVDbGljazpbe3R5cGU6d3ksYXJnczpbImNsaWNrIixbIiRldmVudCJdXX1dLGhyZWY6W3t0eXBlOlB5LGFyZ3M6WyJhdHRyLmhyZWYiXX1dLHJvdXRlckxpbms6W3t0eXBlOnh5fV19KTtjbGFzcyBzcXt9c3EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHNxKX0sc3EuybVtb2Q9YW8oe3R5cGU6c3F9KSxzcS7JtWluaj12bih7aW1wb3J0czpbW1dNLGlTLG9TLFBTXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHNxLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV00saVMsb1MsUFNdLGV4cG9ydHM6W0tZLHJxXSxkZWNsYXJhdGlvbnM6W0tZLFhZLHJxXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHNxLHtkZWNsYXJhdGlvbnM6W0tZLFhZLHJxXSxpbXBvcnRzOltXTSxpUyxvUyxQU10sZXhwb3J0czpbS1kscnFdfSk7Y2xhc3MgbHF7fWxxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxscSl9LGxxLsm1bW9kPWFvKHt0eXBlOmxxfSksbHEuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobHEsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2lxXSxleHBvcnRzOltpcV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhscSx7ZGVjbGFyYXRpb25zOltpcV0sZXhwb3J0czpbaXFdfSk7Y2xhc3MgY3F7fWNxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjcSl9LGNxLsm1bW9kPWFvKHt0eXBlOmNxfSksY3EuybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6VlMsdXNlQ2xhc3M6VVN9XX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoY3EsW3t0eXBlOkF5LGFyZ3M6W3twcm92aWRlcnM6W3twcm92aWRlOlZTLHVzZUNsYXNzOlVTfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgZHF7fWRxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkcSl9LGRxLsm1bW9kPWFvKHt0eXBlOmRxfSksZHEuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjcV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkcSxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbJFksUVldLGV4cG9ydHM6WyRZXSxpbXBvcnRzOltXTSxjcV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhkcSx7ZGVjbGFyYXRpb25zOlskWSxRWV0saW1wb3J0czpbV00sY3FdLGV4cG9ydHM6WyRZXX0pO2NsYXNzIHBxe31wcS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cHEpfSxwcS7JtW1vZD1hbyh7dHlwZTpwcX0pLHBxLsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocHEsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W25xLHRxXSxleHBvcnRzOltucV0saW1wb3J0czpbV01dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8ocHEse2RlY2xhcmF0aW9uczpbbnEsdHFdLGltcG9ydHM6W1dNXSxleHBvcnRzOltucV19KTtjb25zdCBtcT17aWQ6WGssbmFtZToiIixzdGFydF90aW1lOjB9LHVxPXlrKHtleHBlcmltZW50TWFwOntbbXEuaWRdOm1xfX0pO2Z1bmN0aW9uIGZxKHQsZSl7cmV0dXJuIHh3KHtkYXRhOnVxfSkodCxlKX1jbGFzcyBncXt9Z3EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGdxKX0sZ3EuybVtb2Q9YW8oe3R5cGU6Z3F9KSxncS7JtWluaj12bih7aW1wb3J0czpbW2RrLmZvckZlYXR1cmUocEEsZnEpXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGdxLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbZGsuZm9yRmVhdHVyZShwQSxmcSldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZ3Ese2ltcG9ydHM6W2NrXX0pO2NsYXNzIGhxe31mdW5jdGlvbiBicSgpe3JldHVybiBadyhETiwodD0+KHthdXRvUmVsb2FkOnR9KSkpfWZ1bmN0aW9uIHlxKCl7cmV0dXJuIFp3KEVOLCh0PT4oe2F1dG9SZWxvYWRQZXJpb2RJbk1zOnR9KSkpfWZ1bmN0aW9uIF9xKCl7cmV0dXJuIFp3KFJOLCh0PT4oe3BhZ2VTaXplOnR9KSkpfWhxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxocSl9LGhxLsm1bW9kPWFvKHt0eXBlOmhxfSksaHEuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjRyxkRyxKSCxTWSxkVyxFVyxCWV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChocSxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbV1ksWVksVVksR1ksb3FdLGV4cG9ydHM6W1dZLFlZLEdZLG9xXSxlbnRyeUNvbXBvbmVudHM6W0dZXSxpbXBvcnRzOltXTSxjRyxkRyxKSCxTWSxkVyxFVyxCWV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhocSx7ZGVjbGFyYXRpb25zOltXWSxZWSxVWSxHWSxvcV0saW1wb3J0czpbV00sY0csZEcsSkgsU1ksZFcsRVcsQlldLGV4cG9ydHM6W1dZLFlZLEdZLG9xXX0pO2NsYXNzIENxe31DcS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Q3EpfSxDcS7JtW1vZD1hbyh7dHlwZTpDcX0pLENxLsm1aW5qPXZuKHtpbXBvcnRzOltbZGsuZm9yRmVhdHVyZShQTixmWSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhicSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyh5cSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhfcSldLGhxXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQ3EsW3t0eXBlOkF5LGFyZ3M6W3tleHBvcnRzOltocV0saW1wb3J0czpbZGsuZm9yRmVhdHVyZShQTixmWSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhicSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyh5cSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhfcSldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oQ3Ese2ltcG9ydHM6W2NrLHFTLHFTLHFTXSxleHBvcnRzOltocV19KTtjbGFzcyBNcXt9TXEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE1xKX0sTXEuybVtb2Q9YW8oe3R5cGU6TXF9KSxNcS7JtWluaj12bih7cHJvdmlkZXJzOlt7cHJvdmlkZToid2luZG93Iix1c2VWYWx1ZTp3aW5kb3d9XSxpbXBvcnRzOltbZ1csV00sSkgsZFcsRVddXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTXEsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0lXLFJXLFRXXSxleHBvcnRzOltJV10sZW50cnlDb21wb25lbnRzOltUV10saW1wb3J0czpbZ1csV00sSkgsZFcsRVddLHByb3ZpZGVyczpbe3Byb3ZpZGU6IndpbmRvdyIsdXNlVmFsdWU6d2luZG93fV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhNcSx7ZGVjbGFyYXRpb25zOltJVyxSVyxUV10saW1wb3J0czpbZ1csV00sSkgsZFcsRVddLGV4cG9ydHM6W0lXXX0pO2NsYXNzIHZxe312cS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dnEpfSx2cS7JtW1vZD1hbyh7dHlwZTp2cX0pLHZxLsm1aW5qPXZuKHtwcm92aWRlcnM6W10saW1wb3J0czpbW0pILEVXLEtCLG5CLFRHLG9ZLFdNLEVSLENxLE1xXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHZxLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltsWSxjWSxxWSxGRyxWRyxwWV0sZXhwb3J0czpbY1kscVksVkcscFldLHByb3ZpZGVyczpbXSxpbXBvcnRzOltKSCxFVyxLQixuQixURyxvWSxXTSxFUixDcSxNcV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyh2cSx7ZGVjbGFyYXRpb25zOltsWSxjWSxxWSxGRyxWRyxwWV0saW1wb3J0czpbSkgsRVcsS0IsbkIsVEcsb1ksV00sRVIsQ3EsTXFdLGV4cG9ydHM6W2NZLHFZLFZHLHBZXX0pO2NsYXNzIHhxe2NvbnN0cnVjdG9yKHQsZSl7Y29uc3Qgbj10LmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCgiLi9pY29uX2J1bmRsZS5zdmciKTtlLmFkZFN2Z0ljb25TZXQobil9fXhxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4cSkodnIoenYpLHZyKENXKSl9LHhxLsm1bW9kPWFvKHt0eXBlOnhxfSkseHEuybVpbmo9dm4oe2ltcG9ydHM6W1tFV11dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh4cSxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W0VXXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnp2fSx7dHlwZTpDV31dfSksbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyh4cSx7aW1wb3J0czpbRVddfSk7Y29uc3QgT3E9bmV3IEdhKCJbcGx1Z2luc10gUGx1Z2luIHJlZ2lzdHJ5IGNvbmZpZyIpLFBxPW5ldyBNYXA7Y2xhc3Mgd3F7Y29uc3RydWN0b3IodCl7aWYoIXQpcmV0dXJuO2NvbnN0IGU9bmV3IFNldCh0Lm1hcCgodD0+dC5wbHVnaW5OYW1lKSkpO2NvbnNvbGUuYXNzZXJ0KGUuc2l6ZT09PXQubGVuZ3RoLCJDYW5ub3QgcmVnaXN0ZXIgdGhlIHNhbWUgcGx1Z2luIG11bHRpcGxlIHRpbWVzLiIpO2Zvcihjb25zdCBlIG9mIHQpe2NvbnN0e3BsdWdpbk5hbWU6dCxjb21wb25lbnRDbGFzczpufT1lO1BxLnNldCh0LG4pfX1zdGF0aWMgZm9yUGx1Z2luKHQsZSl7cmV0dXJue25nTW9kdWxlOndxLHByb3ZpZGVyczpbe3Byb3ZpZGU6T3EsbXVsdGk6ITAsdXNlVmFsdWU6e3BsdWdpbk5hbWU6dCxjb21wb25lbnRDbGFzczplfX1dfX1nZXRDb21wb25lbnQodCl7cmV0dXJuIFBxLmdldCh0KXx8bnVsbH19d3EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHdxKSh2cihPcSw4KSl9LHdxLsm1bW9kPWFvKHt0eXBlOndxfSksd3EuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgod3EsW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W09xXX1dfV19KSxudWxsKTtjbGFzcyBrcXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmh0dHA9dCx0aGlzLmh0dHBQYXRoUHJlZml4PSJkYXRhL3BsdWdpbi9kZWJ1Z2dlci12MiJ9ZmV0Y2hSdW5zKCl7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL3J1bnMiKX1mZXRjaEV4ZWN1dGlvbkRpZ2VzdHModCxlLG4pe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9leGVjdXRpb24vZGlnZXN0cyIse3BhcmFtczp7cnVuOnQsYmVnaW46U3RyaW5nKGUpLGVuZDpTdHJpbmcobil9fSl9ZmV0Y2hFeGVjdXRpb25EYXRhKHQsZSxuKXtyZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4KyIvZXhlY3V0aW9uL2RhdGEiLHtwYXJhbXM6e3J1bjp0LGJlZ2luOlN0cmluZyhlKSxlbmQ6U3RyaW5nKG4pfX0pfWZldGNoR3JhcGhFeGVjdXRpb25EaWdlc3RzKHQsZSxuLG8pe2lmKHZvaWQgMCE9PW8pdGhyb3cgbmV3IEVycm9yKCJ0cmFjZV9pZCBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIGZldGNoR3JhcGhFeGVjdXRpb25EaWdlc3RzKCkgeWV0Iik7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL2dyYXBoX2V4ZWN1dGlvbi9kaWdlc3RzIix7cGFyYW1zOntydW46dCxiZWdpbjpTdHJpbmcoZSksZW5kOlN0cmluZyhuKX19KX1mZXRjaEdyYXBoRXhlY3V0aW9uRGF0YSh0LGUsbixvKXtpZih2b2lkIDAhPT1vKXRocm93IG5ldyBFcnJvcigidHJhY2VfaWQgaXMgbm90IGltcGxlbWVudGVkIGZvciBmZXRjaEdyYXBoRXhlY3V0aW9uRGF0YSgpIHlldCIpO3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9ncmFwaF9leGVjdXRpb24vZGF0YSIse3BhcmFtczp7cnVuOnQsYmVnaW46U3RyaW5nKGUpLGVuZDpTdHJpbmcobil9fSl9ZmV0Y2hHcmFwaE9wSW5mbyh0LGUsbil7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL2dyYXBocy9vcF9pbmZvIix7cGFyYW1zOntydW46dCxncmFwaF9pZDplLG9wX25hbWU6bn19KX1mZXRjaFNvdXJjZUZpbGVMaXN0KHQpe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9zb3VyY2VfZmlsZXMvbGlzdCIse3BhcmFtczp7cnVuOnR9fSl9ZmV0Y2hTb3VyY2VGaWxlKHQsZSl7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL3NvdXJjZV9maWxlcy9maWxlIix7cGFyYW1zOntydW46dCxpbmRleDpTdHJpbmcoZSl9fSl9ZmV0Y2hTdGFja0ZyYW1lcyh0LGUpe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9zdGFja19mcmFtZXMvc3RhY2tfZnJhbWVzIix7cGFyYW1zOntydW46dCxzdGFja19mcmFtZV9pZHM6ZS5qb2luKCIsIil9fSkucGlwZShJdCgodD0+KHtzdGFja19mcmFtZXM6dC5zdGFja19mcmFtZXMubWFwKCh0PT4oZnVuY3Rpb24gZSh0KXtyZXR1cm57aG9zdF9uYW1lOnRbMF0sZmlsZV9wYXRoOnRbMV0sbGluZW5vOnRbMl0sZnVuY3Rpb25fbmFtZTp0WzNdfX0pKHQpKSl9KSkpKX1mZXRjaEFsZXJ0cyh0LGUsbixvKXtjb25zdCBpPXtydW46dCxiZWdpbjpTdHJpbmcoZSksZW5kOlN0cmluZyhuKX07cmV0dXJuIHZvaWQgMCE9PW8mJihpLmFsZXJ0X3R5cGU9byksdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4KyIvYWxlcnRzIix7cGFyYW1zOml9KX19a3EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGtxKSh2cihsRSkpfSxrcS7JtXByb3Y9TW4oe3Rva2VuOmtxLGZhY3Rvcnk6a3EuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGtxLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpsRX1dfSksbnVsbCk7Y2xhc3MgU3F7fVNxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxTcSl9LFNxLsm1bW9kPWFvKHt0eXBlOlNxfSksU3EuybVpbmo9dm4oe3Byb3ZpZGVyczpba3FdLGltcG9ydHM6W1tjRV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChTcSxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W2NFXSxwcm92aWRlcnM6W2txXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFNxLHtpbXBvcnRzOltjRV19KTtjbGFzcyBEcXt9RHEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fERxKX0sRHEuybVjbXA9dG8oe3R5cGU6RHEsc2VsZWN0b3JzOltbImluYWN0aXZlLWNvbXBvbmVudCJdXSxkZWNsczo1NCx2YXJzOjAsY29uc3RzOltbMSwiY29udGFpbmVyIl0sWzEsInRpdGxlIl0sWzEsImNvZGUiXSxbMSwiYXJnIl0sWzEsImV4aGliaXRzLWNvbnRhaW5lciJdLFsxLCJleGhpYml0Il0sWzEsInNjcmVlbnNob3QiXSxbInNyYyIsImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBVFlBQUFFMkNBWUFBQURydkw2cEFBQW95SHBVV0hSU1lYY2djSEp2Wm1sc1pTQjBlWEJsSUdWNGFXWUFBSGphclp4cGRoeTVjb1gvWXhWZUF1WmhPUmdDNTNnSFhyNi9pMkpyZW1xcm4rMVdpNlNLeFV3a0VIR0hRSURPL3VzL3Ivc1AvaHV0WlpkTDYzWFU2dmt2anp6aTVJdnVQLytOOXpINC9ENisvMUw5K2lyOC9Mcjc5bzNJNTZSM2ZyN1I1dWR6bUx4ZXZ2L0FYL2NJNitmWFhmLzZUdXhmRi9yNkJoZitqRUIzMXRmbngwSHlldnk4SHZMWGhZWjl2cWlqdHgrSHVyNHV0TC9lK0lieTlUZC9HOWJuay83dGZucWhNVXVuY0tNVW82V1EvUHVZUHlOSW43K1R2KzE5akx3djhOcE1LUVgzK2ZSMU1TYmtwOGY3NjdQM1AwN1FUNVA4MTFmdTE5bi85dFV2a3gvbjErdnBsN21zWDNQazYrKy9FY292cjZkdnQ0ay9oY08zRWNXZnYzRjd6UC95T0Y5Lzd6MzlYdnM4M2N5VkdhMWZFZlVtKzY4WjBoc1hVNTdlajFYK05QNFd2bTd2eitCUDk5TnZsdno0N1JkL2RoZ2hzaXJYaFJ4T21PRUdlNTkzMkF3eFI0dU56ekh1bU41clBiVTQ0azVhcDZ3LzRjYVdSanFwczI0N21tUE5jb3JmeGhMZWZjZTczdzZkTzUvQVcyUGdZbHJxdi8zai9xZHYvanQvM0wxYlV4UjgvelpYakNzcXJobUdWazRmZVJkTEVPN1h1cFUzd1gvOStWcCsvMFA4RUtxc1lIblQzSG5BNmRmbkVxdUU3N0dWM2pvbjNsZjQvRm5qNE5yNXVnQlR4TDBMZ3dtSkZmQTFwQkpxOEMzR0ZnTHoyRm1neWNoanluR3hBcUdVZUJoa3pDblY2RnJzVWZmbVoxcDQ3NDBsMXFpWHdTWVdvcVJLYm5WV2FMSllPUmZpcCtWT0RNMlNTaTZsMU5KS2QyV1VXVlBOdGRSYVd4WEl6WlphYnFYVjFscHZvODJlZXU2bDE5NTY3NlBQRVVjQ0E4dW9vNDAreHBnenVzbU5KdGVhdkgveXlvb3JyYnpLcXF1dHZzYWFtL0RaZVpkZGQ5dDlqejFQUE9rQUU2ZWVkdm9aWjFwd0JsSll0bUxWbW5VYk5pK3hkdFBOdDl4NjIrMTMzUGx0MWI1VzlWLysvQnVyRnI1V0xiNlYwdnZhdDFYalZkZmFYNWNJZ3BPaU5XUEZZZzZzZU5NS0VOQlJhK1o3eURscTViUm1ma1NTb2tRR1diUTI3Z1N0R0V1WUxjUnl3N2UxKzc1eS8yamRYT24vYU4zaW4xYk9hZW4rUDFiT3NYVC91bTYvV2JVam50dHZ4VDVacURuMWlleTdaWnk0M0k1eDFUTG50SmxhUzJYdUZYTUxhWmVRV3oyMXJucUJrOXZQTHQzSHhyZTZaNVlQbk1Na0hMOXlQYUhvUXIybWZPUHhFM2hmcGQwMTAyRnBrNTZ5TTQ2OVRyNjUzMVVZTFpjRy84NDhPN1JqM0xTc3VGZFk1dG8wbml1bGZYbmtsdkkrbnFRc0J3QmRmVzhtZGQ4V29tK3NaT285NTU3KzRvWWtLTDlsbmpaakp5RDVPSFZ6bTZXdVdjNWNaWmVUSnludnpmTzQyWWM2Um84UnJTR1NQbmxNUzIzbmNRbTFmSS9DeGFVZVRpM3dkZHNnd3RwMzdicHV5TVhhWWJKcnYxWUE3dVhUYWNiVDVkRGEzS3pEQ20weWY1VXhNMzNiNVFrOWhGMW40YVozU1JTRXMyOGZ6V0k2Vm1lSXlXeHM0MXErcmg3V09DMGFWekRpdUsvR1BCRVF3U21KQ09uK3hFUmFZOTdNMEViYnZoeml0bmF5b0xHRVBNSnN1MXBpa1FmZ05jdGw2WHNJMXRmTmxoMXozRzhvZHBLRndjTWh1eTZQNGxFVFFPSHVNNDJ5N0I3TlNDSU9UN3A5WHlZL0hPWDJRaUsxZlJaejFIWUVPWGlZZmtyTithUmx1L2hWZlIrUm1HUnR5VEk3blptb2ljZzcvdVp5RDhHOUR6azZFb05vc2FHUGFneDVaUktOY1laOFd6bjdpQXZQOWJQWktHWWtKdmNOUE5EMW5ZYytQQ1J3UFkxUXlIRHRhdFhjNnJYQ3hKZEpiWk9STWhlVmRMQithMHVSbXhJUmhjbGsyT2UwYm9jdzdpeUVKK1p6Vk1EeWdmK2R4TjJZZXNycnIvWFR5Tmk5V3BuNTlNMDAzV09OQlNZVkV2ZFY2QmF1SFBaS0RETldHeFZZS2JlNFdFY1NjR3crRTZFa3hzbkowQk05dEJLWXQ2QWJWejFPR2d1Z0lmZnZIRVQ2SkZvTDR3UWN6bUN5Szh6V1NLTWFod2ZIeUdHR2txWUdFTllCVG5PRGpNdGNaeEZZMmJZVmNBT1FJMklodDd1TnBTUkY5a1JDZENZWVBPVHJHeUEvVnJjdVltSGNYYStGblJseU9Zblp0VkRTM2p3T29kcHRTZkFrd1U4eU55NloxWGpBS2FCWXVaK3doYlVrRkFoYUEvUkpGdm8rUVFWYkF6Q3ViU2NGb3lka0pwTi9iaUhtSElIT3R3dWh0bmRPZTBtRXdRZkxHOGhSMHdnbEt4UkoyMkp4RTFDRGZONFRlcmRid0VER3lQVldkRHN0QUdPMkM4TGI2Qy9tUmdQTG1KaDRnS3JXenlTbWdmNEZGbGZ3ajVjSlVGRGtLa3dPa1hQbmNZMVpKZ0tQRVZhZ0c2blFvSlNJZGtzeGQ4VlFPMW15K1M0a21TMkZ4QllFVk5ZdWx5UWtZNUZRL2lFTWI2Y1FqdU9za3hKaWxGZ0RNb3p3OEtZQkdWRTZSaGl4MWhJOXQyOWtYeWRLWWp5ekxsWWhJMnVZeXBHQ2dlTTFBWGZlR3lBMDg5T2txSnRNZW1mMGkxd0hNRjYrZjI0a0pNaEZoRVhRaWpnQ0hiRU81QnY4dUMvNUltSWxCZ09NQ21vQ2cyUDdUYWlCM0FFQUJWdFJtSk1GSmlTenFHSEFLYTd1QVVPUEJwcDBCbVNRNGdVTklSTmZZUDFGVk56Yy9ENEFkMEdlb28wclV1MENZUkFCVHlxV3UyazRVQlR0dFhoV0l3Uk5yQXN4RGpKM3JkMVg3Y0lLaFd1VEtTQVNlU0JtSDBpWXl0V05zQWFoaHJtamxTV1ZXQ0x6MnpKRU9zWTlGUTZyd3ZiZWJWOGlrRXVrc2xseUxOQ05zemFBNktZSjN5MkxBY3kydVJnMHlaaFdtdWlVeGhVRUFMVlpJbFFQY01UVkd6UlBzdkxvbXhDY0Z4QWFyV1JDd3RhMUNFbTZUUGdRdXhpL2phNnYrQUFlR3NRaXF3MThJdHBZUjBKZU9Dd1dBVWxMWXVyMktzTUkwbzRuSU5YTjVUU1kraHhaOVhQNUZwZGNDbGVnc0VQSFlHSmg0VWoyVWxZZy9OcmxHbk1zSm1NalZMaFpZRVhUbG1JREZWbVd4SlNqb3pBT3hCY3EyWVBsVVU0M041SFUvWWFGdi8vczlFVUd0a3NtYXJvQWRPOExCWkVFWnlJbGRrSlE5VEJyUlI4Y1VyYklYb01QTWszTVNnT3pab0ZGN0JJWEZ6RllHcU5ackJ4NnlMTmVnRXNpbi9xR3VJS3VqaHpQSFRteVJIQ0VCcmxtRWpSOGU5VGxrT2RubGF0WlBhdW53d2ZqbmR3OEkxb1dkQWI3b3lNazQ5QmVxWEhQR01sbEVtT1VSc0FNTkV3MzVxaEFud0J5T2NnOGtET1RtMnY0WXdVaGdLSElCS1VGcENEUEMvcXh0UDU2VUdSc1lMOEZDUThnTFRtSW5wOHhLWkF1ZE1DSThzT1hmQU9vQUxrOERnK1Z6amFXcDBwSG5BZVI2Q2xtNWFUWmk1WFRGOW0vejE3RUoxbU1jb2w1QXgxTUplQU93Y3E5NEIyUlBRZ0pRaGpVSHVnVnBCeU1kQVc0QUdXVU9IUHRqZ0k4Ly9LeVhtM0tBd3h3MlFOUVFocVFOOEZTWC9ub0ViR1c1V0E5MGE3TXJYY0xXMlZvU2lJeUNla3ZySCtUeEtvRXpnMWkxMFpXMkRwRzhnellkM2Q0STI4bWdYVWhjcVJkajBOaWlYZVFCbVErUzVvQnExU1FDUFBGdk1JRXpHNUZvclNSK0loRzVCd2lPeXRtRTdDQXJKODdPVGlJTllSbHhLOXozNW1ZOTdvV0lnZm9aa2FnTVM3TTRJQUpjQzRkbnBtQmNvdUw2WWRIdHRla3VDQnNxdWVBSk9RMnF5bnhESHNzekFEWVRIREJCd2huSHBVdkNJY05tUFlKODJFSWdoSXpTTnd2aDYyL3FGc3doYWVUa0NJMFlDeFNIV3lYK3I5RFRtS0JUajBiOEVBNHMrNHNDeCtoYzUrUmFYdkRJb2hoWTdxMTVIeGo0SnBLWVdhR3lVRVV5RHFzUmt4MTY1M0Z1TUlXeFhWRnpFR1pDSTJUSlhoZFFoekFXNENwdUFIeVpSUm9OQVlML1JnUDI1RVJnWGtvOEdmZWltK1VRMGZBTGNLU2pPQ0JRYkx0OW43Z2F2Q1RzZkRjbmpTMTlBWlZpSG5NRm9NZjh4UkJHcWc1R0JEZmcrbDZ3MDFKd203MHUxdGdXRldnWENSekp2MlJOUTJHSjlZbmlMbXc1MFJySmtpTXlRVnAwb0pLa1RRcXNzMG5Kb1ltM0JVRi9FQzk2TVlFU1VORzgwenh6UkRBakd0b09MdXFkVitFMkVsZDZvSDVLS3JUbGZEMTJZVmZYdmoxTTg4Qmtac25DbGp5eG1JeVVGSzN5dG9OTFE4cXNVK0Uxc0I0SUZnMnVoOCtSQkloRDhrZVJEaHZ3UzB1RkFUMlUrYXBpcThObzFnRFZnWHJwZVVETTJGSWMwQ2V4OUMwcCtQQkw2SVJUYTRNK2Qyckt5ZEV5bnhnalIwQ2JrRWFNQWRWeXd1SnJMeGRzNDdzeFh6aVVnbG1GbjRsd0JrN0FkSGphSnNQYlMydXdHQU54b0JlMGFHUUY3QkdISGtVb2ljeFR3ZlJWRUVCQUlvaXY0cEZpZkR0S3c0bjRTMEdFOXdKZFZnUmJEdG5zOEI0aWFUS1FITVhKWUlXNnZJc1RLN2hpdURDblFGSkpneTloN2NHUzBHNXhGdkp2cWFFaDNJbVNiZEltYXFVYU0xeDM0cmNRUGZpSTlDSHZVYUZqdzNtc2hLQWd4aEg1c0hPQURrMEVGUEFxUjVWaGRmWDB2SnhaZ2VNRWk2YnFTTWZFUzlkdzdFYjVDTWxSN2tkN0RQSVY3SUJHN3RFQ1pmd0dnMEZIQWNUZmdqQTdiQSt0NkpNSTR4dGsrbkVUbHkvSUkyRGwwMVpNcjBVNG5VRG5TajlQVUg5S2prUDlWd0VKaTVoZ0crT3Q2QVlLdmlCYkNETU10UW1kc3prdXlvdGQrRXZzWDVRTUltUDZpWDRXWktPOVFlbE8yQVo4VHU1T0d3NVVBeWgrUVpSamd1WGJpQk5kRWwrR3c2S0M0MUVrbTlpT1pBODFhOVIwWnk0TGloQWhXMVdGb0lrc1J2RSt5aTF3Vmt6TjJSakJ0K3d0Z1NTS2d1NkczR3lBZU83aENsSFZvaGJvWWFpYkpCTlJ3QTI1bzdjUmxlU3UxYzJoY1ZsWmdGZzFwMHhtT1Myblp3TmFnR0lXQlhRRWlXRlk2N2dzRExaVFRDOE5WVkJ5SDl1TFdGM3lId01mVlJkMTBmSWxEQkRCYWFTNWxCUS9lN216alEyd0xaQzE3OFoyei8rcnZzZnZvM2dIWmkzeWRSVUtMczJTUkNNak9GRXZDcER5TWs0VHdEemVuVG80SHQ1dEJWNU51Z2FUTjk4WjRtMjhZZnBDV0pzZjg4a2ZTakk2Z1QrSWtUQ1NJQXl1cmJzQnRnNWVETmwvR1Z0d1dxMURaVjFnZytkamhDend6eXBOb04wUWI1K2dMWFV2dlFWMmdYMlJWa3RlVXlFVnBtcVFudkJKOCtHaWNkKzRUd2J1blFUMndENUJXdHlSQThOVkJ2UFF5RGpJOUFhcjhhQVJXQXNqdHh2Q0VWNEVHL2pzUkZIUWtRQ0UrZWgwVi9CS2tsRFhCWFFNT0ZYVVZwZ0ZtU25Za1p2cW03OGJrU0FkRVNuSTZUSnhiaE5QbkxqcGcyc0JKY2JNbWc5TTA5aU56eTI3Y0JGSFhaVThnUjl4M1NyYXNFaUJsYnd4U1g0SlcwWGtDbmtlSW1JeGJMRkgrVEU1Q21aS1dWRkdzY2pqM0V1NEFnRElZTFIyQ1VPcEEvS0RLMkxZdVk5ZXlxdXF5MzQ0RjVMQjhPbFM3eVBjV0xJN2kxRWRnRzFmbFZyT0ttR2pPOHBRV212Mm5pSU54Z3g0N1RRUXd2elhQd3dINkpRaW9zNDNCKzQrRDdnQlBCSTZYTlJyb0NJR2ZLb3FSSWNoRWc0aVFCaC9ZSmxuUFRLRUJsU0NIWURLaHhra29UR2ozaE93V3lSU3dnejNtODVTQmtmQ0ZBZWhWczJwb21YcWt6OVFFQTErQUlLQmZ6TlhjZ2NqVGtoTXE4S0NuNGtraGhBUnBYckRQQzh5Qnk4eEFGTVpCYk9aSmNxZjRkd3c1aWhDdEVoSkMzeENRWlBSb3ZiNTJhQU92Zm43ZkJLMFZjQmpWRndQSjJuSXc1c1Y3UVhERUpBRUVFb3ZnaHk0bW1OTWJKUzRhcllTcnFxL25zbVM0WDVneDhMZW42QUg3dE1CV2Jnc2ZkVzlSUGtoc2tOa0x3NVl0Y0JKY3kyYXF3TlQwR3VIZFlEcFRWeG1zd2ZBRlFCK29reElRTHc0N1YyOEpNMXhER2VjRkYzR2VyT3ljV0FCT011aUdnRUVLcHF5Sm1RYXdOSzZVT0tHbUlqRXJhUGVFOUd2YmhDWFRsM01wSjFOSW5maW9oQTJ5MWtQSzRSK1lJTTQ1MVFUdVhmQ0hPVkVaSmtQSlBVV2RJTE1HUkJySHlyN0FWNkhVNjRyVHBaS213dlZITVNiSGV4ZWd1Ym5VT3ZTT25FeHpFUVl5dDY4WkxIQ1NBTGlXK0NCQVZNanNZWm5zNldqYnZJQVVNV2NHTXlxd2tIa1FnZUVpcXF2ZkNvd1BpUmVjSlRkZVViZ2dMaU9vUUl5UzNUVkYzUXM3QWl2ak9mczkvU29tMjRDMHNhSVllTG9tem5WVUhIRURrejVxeDYrZXg1QXhlcVEvaFpnWkZ3dE5raCtjZzZUR050VFNWZjhOeS9FaDJvZytoRFBiK3FKdlluUU12R2NyRUVRN1Y0THllOXRodTRicHhEd0EyZ1ZWQkJYcFZuTXYvakoxWHJCODJEWnlGSVhpL0JlQkx1QlRXSFlxL0llaVFVb3dMOHhkam5xSnlBZEF0RitRRlFza1pqU0NWRHJVaTNoSEt6RElGZ3NqekNvOHJ3a3ozanF0VEh1RjNEaVdPRThheFlIdXlvU0lKVVZIWDU3clZBUTYzOVVCMXNUT3ZvU0RqR0JrNys2NHZOdFU4MGdJMkhHdWhBeE5yVlpzRUowbVBNSUJHS0NHeHlwZmRnTFM3UHRVT2RxZ2hweDhaam9WUjNOMlRocks1Q1krT0JDTG8xdnkvMVJTRXlEY2tXK0RmakIrOUlqZmpBbFM5QnVsNEVuYnhpNVNHWVF4ZUc5N1crcUN5Vzl2YUVrcis5K0U4Ly9lMUhCYnZ1NjZkYlRLbytCRlJ4cmR0dlpCQjhwdklNTVlrNlJHYUdxKzJkRmpzcVRvVm5ySStzWFJmVjE0aUZHQkZ6cXQwZTZkTktsdGpXcm9CQzhFck5HUUJ6dURzMGIzRDAxZzVFT3BYcHFxck40TFFyVjNmaUNvS2lvM3VnUmtnVTBUb0FjOUlyUkJGWnNpelBnek1XOHhUVktyQTJrSTU4SHNhNkU1a1dyMHNKc0FocnFCb0N2MGtoSkhTV2FvbS9HMWw0U3ZQb1ZjVUpXWHVGSmdFWUdmQlV4TVpma2grZm04WXowb2g0TEFoY29rSkpQV21URVBDejEyNnFhbzNaZ3lhRVFCeXd6Q0lFbmZhMnQwcFI4QXlhUEwzU2tYUXljcnFYbXlLWWx5T3d3cGZvWTc1R09hSkFtREVZdmdGZEx5U3V3OTVGV0VGVnRneUt4YXpCTFBUOGxtYkU2U0hyUzBoZVZYU2dIWW1lc1FZcklhako1dkZZVnNiTC9ZNkVZWnA0eHVhS2VSRW1hQ1pCbnlsODhHYWtZekR1Yzg2SThQQ0FYQkdWYm5obUtpZzlxeHl6bkJtQVBCSGpxRmtUbXNCNVZzaUoxeVF5WmNaaE9TZ1RFSUFXeUhRVmZ4b3d3a3dEV0VBMHN1NG13SVhVVEhQQ21vQ3RxclJra3JnS0xESTVHV0FUeHN0UGhxT1hWWkJDN1Rpc1FZQitONmtFWlJ0TEtoUkVScU8vRm9NbGdRRThucFh3dy9zeE5pZ1E5cTRxeXV3bG1FWW1abm1SSHNsOU1rZENTK1VWeEwzMkV1NitNQ0wzYkNRSElRajFRYVg0aEE1dXBKTHhVRUhpRjRhdXpLMDI2Z3hGempLRGc3V2NqRE1uNDdSWmh0c2srdkYzQ1AyTDVnQ3A0WjJsblFrMEhpRmZNVERjcTRvcVhjWjBxdXdudlFJOVZOZ1hsa2xoeTZGY1pET0crdzZicHlEL3NMcEhtdy9ZeUNDcjI3WTIrSFpQK3lMWUkwTUh1Q2RpaEF0Z0V3blpDVjVXeEFoQktLT1hDcEZhWW9GaVgzS1FpdVEvT1lLZVpRV1FQT3BBV054ODVZdmIzdW81V05JVGcwRjZtWkl3aXFvMWhRZ0pTeG1OdDBKV0Z0RXZjaFRXa3JQeWkxd0QxSGU4ZW1ORVJuVnQyMTdwcTRrTVpoNFlFcm9maEJ5bDk2WktWZGNtTWhJSTVRMHFJNXo4d1dBNGVWNjBDN09aNE1vcnpVVEt6anVKeTUyYXNPWUU3UndpUnJURkZBTEVLSmxlVlV5T2pjV2ZSQ1pNU3c2U01RUGdERis3Y21IUFgzY2MvdnpaL2MwM1htSFNFNXcvU04ydmN1VXZyNnBIakNkeXFreWtsTENXYzJ6c1hjS0dJN25nUXBBRGEzRWFHTnFUZ2xKSUFwL0FzUU5OVW1QVHRyK3hGancrOHZnUUZSMVFnTkd5N0dZQ1FsUmd5MHdTcnArOGdlSUlERHlzb1RwMjJFOGNXMGZqc2M0TkVHNTRmVGZsV3JWbkpqZFZ0RHRkRDdKTEdhaUV2ZDZ5akpzQjdKaWhzSGJ2R2RPaktobWtzeUNUS05VK0hIU3Y0bVF3d0dtK1RYK3l0V0VqTmhtSm9vRngxZ3MxZkZHVDd1SG5rTmZKdzNLZElHVmNtRDB1aE1iY0lpaE1pQm5XYThtS1NxV055dU9CbVZmS0hCMkROc1pUdHpXSWtSclgxUDRLdUt4U0xmZU9yazN5R1dtTzMxUHhrZmpSTmh6RDV6NEJMd3BtSXp1MVZjZlBBSDJxRFFOSFFObFJ1d3hRYzNLSkhxZ0ZjZUdscXQyVTNobHdXREZCZkhoRzFJZ0s5eVNqdE93YkFnbU9oMk0yVUxza0xGUUppRi9GT2JsMm1WVFVJWXpieHVFeVRMTlhwcVBGVkpBUFN1NVc0T0JscXBLUkZkclNhZHBKQ1VjNGdpaTczU25BTU1DR3hzR081MUs4NGFvWEQ4Zno1M2FzN1BISVNGeFlWRkJTRldoRm5odEd4WkJtTWdXOGQraUpnVTBHQjRIYXVyRmZBQVBNcG5JZlFzMlBpWHNhVUFiVXJGS0FxY2hVYnhsM2VoVTNWQXcxZExzakVNdFpTRVVpSitNU3h6YjhPalBVQ0lQSmRHT3d5cCtLbFh4MmYzckQrNXpiVTBFL0VWejgrVlgzZVRtckN3RTFMTXdIU0dTM2VWazg4c2M4NC9NYkVkcjBkTDVvaWVBZWlKbmJTWnBUbVNCQWlIeXBRL1VtVm8ybGVjME9zb21nY3VTeFFTNGl2aWdVSFNxL0JrL1VSdUlaQThDaXdRR21iWkVJaFZvNW9seXV0MGxzRUJCWFNKVFd5VzBydDhRY1RmU3piYWZTMWxGVHlXaVZjRlJSQ1c3V1B1a2NRbEdZa3JRUDVFd0k2UGtCQUlqMTRHbUdoanhBU0VPdUN6RUt3ajVmalFyS2hRa2k2azBiaFR3L2RBNnBRSnZFZzk1VENUNlVOTStMV1VyeUhLai9oaFFuVFJ6QWpPSkNaR1FZYTZtS2ZER0pBQk42Zld0UEVmTzhrdTJDTGtFOU1PY2dRNUJwU1ZQa1dERUxyWTZ0elFPeTVMeVo1NUg5djQvV244L3UvNHJXbitqUWhWNkFJTjVlaUJEN3Y0bW1EZmVlRWJCdjJCWSthL0RhR3BvenY2NGVkSzUzMGhqd040WW1MTWdXYVlwcmtPL3J1SlZVK3V6cFpLK2V5Ym04ZHVteTloQ0taRG82bmlraDVUcjZ3cW5KRE5nWnVCVDFUWGpWN0dBWGRXQVl3dnVvMVlEQUF5bjR1WWxuRGIxTDNsUVZZVkdDL2FJYk54WUMyTFBYK1lBeFJLUGFSZTBsaExsS3Y5TURSaDZVMkVXOVVvQUF4dXlxazJHczBodTJaOVpTRnBOUjBVY3NPSk1Xc1dUQXdsak1RRk43QlJKK3FXbWt5NldpQWZqT1BnVDR4QVZtK0JvSXhvYmg0OUNUQ1B2dXdCY0dweDNxSExzdUxxL1oxUWdKbXRYTmNzRmFEWHZLYW5BWFZSWFUwem0xU2RCVTVzWFRJMG1Td3pLamgwL3RYYjA2blZERXR2TG9VTVpSRlloSHIxZWx2ZkRLNHZCdlVMK05qT3dabDhsRUE2cEx4bUhJNzl1MmV3VngrYkpqcjNxdkhXdkVJYWxMOGlCOUcxQnZ0Y2JwVlFkZm9BSitBZnI3Q2tEM3Z3N2xueU5ZWXZRM0lmeEx4ZTJIRVA0UjRJZ1RNTEloWG10UmkxNk8rR1A4ZUN5TDljWktWNVF2RDQ5VnE3YXJIRGlDMEJQQlhxVWNuRUJDQTdJQTBGbU1XQWh0bDNPaHMydGxQVnZIZktwWEVnRWF1am9zSnJvWTB1RTJQVmVWWm1CTkVBakVTMHVYWkFXWENoc3A1UnJVTXR6eDlBb2RtQ2hPUk9ZR2FJOHdWOXhWUUdCK0pEZXAvSml2akZocVRNQ0RmUnpIM1JJV016MkNIS2dZVFFXOGhUaE9GUVcwc0dUb0R6K3h5bDBOZmFCY1VrK2IvaTRRRG43VVprZGhOUkhTWXpnVkdEZnordmJhMFVmaFU2WEVEQmIrNzlwemozSFhyZFJWcVZjRGtMU2U0aDZpR3JFd3dJREFaTVBQVUhwN1pTcDhSWWpTWGdKbDhsTjdudHlsbzVIMHM0Qzh1cW53ZkpnV0ZhdHRxUDJOVkdwZ2RuNmRZdkF5d2tyOWt0cTNTeUpuaUFPUm9KMkRBOTFqUWZFVEpLUnlRclk5WTcxNFhsRDRZcDNkWkxWbXVuNnBsUTJsc3hUejFZTUc2clVpc0M3U1hwMTd2cXV2aTFFQWFVbm1VQW9HeGM2VHMvTFplUXpLM2xQY2J6cTNFQ2ZtRk8vZUZrL3pRd3I4S2NMZFAwMkJQMldBKzY2NUp6RkFrQmIxZEJncUdYYUN0dmREOUxZd0hOQWlHTWVIb3ViVlg2RGQvUXUyQTNTWVpnVDB4dWdGbWUwQTZrMFlMMnJuSGlTREg4cFNHR3NuL1ZXZG1XV25NaWdzZ0RndlNkMkNXNW9XVFF4b0V2cEZFQmRHWk9INTMyUUVNb0RmVkhvbEpxd2tOVlduMVlkRHprRXBFdi8xcXB6ZUVZSmphZGRoRXBuVnQ2Rk95MnEzUklYY0FSbW45bzZJMnlFc1o5eXY1OGdWYlEva0dsbHBobll6U1pLbHU1Y2hHZ3IzSzRYbkFSejVCbUc2TXRrMmNOWXdpWFpReUFpOE9DRGd1QXBFUHRST2NORE9mVExSUk9CYytMcklEWGlDSkgwYWRITGd6akNaYXJDL2c4cjFYQmdzWmd4alBtNW45ZmlOT3pMZUQ4SERpNjlmUzVWRXlHRTh6NHAxcVFuQjM5WHdlUlBMSVFIUDhoWGIwSjE2TlJ3alYvRnRta3BwaUgxU0tsMzFjUUh2eHljbXpBaDRGV2JnNG55bnlnN0UrVkJoYkRRUHdpK0diOEFJcGtmb3JqSUQ2UTFXb2F5RERoUGNYdFJBaHNJMjZXdnRwNWRaQTA0VkZjZWpxWDlwa0NwcTA1N05aZGJ1OWxmeHZyM0pES3NYaUp3cGFnR00yaVZJMmtKSzVvV1FoNGYwOEE1b0JhV3BDV1BDNkFDbnF3aFRWby9waG1NQndTVWRwZE0xVVR2Y1hmWDZCb1l2aENTZUFvU2VjM3oyM0h0Vm5YUjF0Q3ByNG5EMG1EVWNFRWE3NHRYQjFqVDd0NDM0Zi96Wi9jMDMvbkVIUVBjUlZSRVdUS3VlOENITGtyU0IxWkJCVmFVaWdLMEFLT1I0K29XaGdEcmQ4TEZKN0V4ZnFBTlpvMi9xY0FuQ3lxdWlGcjJha2hIS1JITHlhaWxSNDJwR2plRmFNSGRvS0J3ZFlsNGRIT0ZEN1RndEorOWNCK0hpdFZtTzk4UjJ0L3FxVk1nUE5Xek85Yng4WGdnUndjTHhPRGJBQ3A5L2tDQTRjaUk1NGlDemYvNFllSnJxQXQ3STRsN1UxeFl5RDZ2K1gzZ0xndEttcVRRTGtTbzJKWkVKOFM2Nnprd1o1bGlubjFqOHJrTTROWWxRaDdZbFZpbmkrNXEzNnAyS2Z2U2FRZmJocUtyWXlKNWR5MmNYSWRma3VFbUJVUHZDZU12S1hXM1lzQkxZZnVZOUlIYU9PdXlnQWpYTFFabHhuMC9IRjNDR2NpZC84VHpadTJ6dzVGb3lKK3JnWGMxNFoxUTV3UjZwNkZqS1ZJc2hkcDgxU0RMQ1pLR0Z2WGJ6UXkxeitFdWZuSHlrUi9oOStyOVJXbG1OOGlnT2kxUFpScVozYmF0VUJjNGVMS2k2TDBFMWtrQWRPOUFaQ0J1M2s5S056V3Q3cTZrM2w4eGdtdFdsSGRRdWh1TzRBV1M4SW1Jc2pxbStEa0hrckZ1Z1RCZWEwemVienZmWExYSzBjdW9OcS85V1luei83UDV2aWZFOUw5eTN4QWo0Uk9RL0RpbURtQWlURVY0RElsNjN2K1JJbURINVpkT1JNZVNacm5lZTE5TS9uSURBTnI0RGFRTDlxMXVNREF0TDRxbCtkaGplUDhSckJuSTJYQ0N6MWlRTHB0cE1rQ0RFZm5OZUxlc0l5c0p0Tzl4MmNZeFJPOUhNY28zcXRjY3E0MzRhY1lQZ1ltSURaQlFHTE1GZFdTaHR2K0NFQVRaN0hlbllHcEJkNTE5QWFSUjhLd2pEWVF1RkFmYm1nbEdHNzVPMHEwNDhxTzl5cVhZR0d1c3d5WFJYeDBSSXU2QkdXZmpiQXFGOGNNUVdrQVRxNDlldWRvWkJzVFBjUGh2dU5KUFVHVis3dFdIcHB6YitIZTdFOTVuZ09TUURvMndyOTc1MEtJWG9RZGRsRlVSaWJ3ZmszV0JwcXFxV29Va3dNQk5ZelVHbGlOSWN6d0JyQU11Z016bE50QUxTNnBEMUt1WWExTkpLVUhKNWJOWk40RDVLTnV5dFhzUWJNcE9nMHgrWW1taWVhYjd2dUNUMnBUSXo0R01KbUczRTR0WDJQTXQ1WHU4ekNTaU5oc3IwT2dUME5udkZFVWdBNXNoVXBCM3Ewb3dhNTZ2aXF2VmxGNTNDUEZzTlNpVE0rbkRIVUNFclZKUm5Kd3F6Q3VyKzFWMmNIZXRvZy8xNkNab2ttdHFyMGl6L3FJenovYlA3VFgzbmQ5V2RIMTk3cFIzTUpkYXU3cFhSYVlBSnk3K0JYaWtWTW1mc2pBaTFRZndVc21ab245bE9RSEdvS0ZpMHAzTFFZSFY0U2UzUzFCYXJuWGZzdEF2cXdrZi9xbHFwWGkva0lkWmF4dVlNc1NiWEJ4NW0wZUdLaVVBQ0pra1VRRnoxUTNCT0xaT3EvamdTcFduL0hOcVdKQXZpQUxSVWxaa1lhbVFGL2RXb1JGamhQR1RSMUxhaFJsa05IVFdGWmpqekhBY1RsWTVHclZqcFJwQ0NtK1I0bTdlOTB3N1ZKeHpHOTlFa1pROXNGWS9DcE5TbVBXbFpCTGRoa0tyeG9QMzk4QWRpcW5vV0s3eVpZUEhhbndzSlZPSEhkQmYxSXZZZ1p3dW5RYTJEL0sxSFVKdlUyNXZHYXlsL2JieERYYmg3YVljUXlGaVlrS0YyT2dGV3JYSmpUQ05jcTYzUnF0YW5UdlFXWnd3OG9xRG02K0RSOWdTdTRTSjhIbVRob2RZTlFXWW9QZGpHQ1pZTENJSkFvYWt5VFNaS20zcW5iVTBVZG1aQTZ0QU42ajVnK1JFUUdSTkhITVUrSUNwbVQ3M3RpR3F6dHFPMk45b3BVWEtQVUlhZWRYNHRxV1c5ZFo5ZjR4M3FLZXJmQ1p5UTcwRmdDQzNSbUZ4Q3g0VlcvNXlwMWxGd1NVaHNJL2JXU1NZam50WHBpK3lkYitXbTltNlV6RldWVlJ3TE1oblFqeGsvZ0hKWEd5eXBPdS9DSEVKSWt1L2RhWThMVFlHczFvYks3QzNxekp0d2oxemd2ZTBsSzU0bmdRVTZtWWNXNnRsWG5Td2RQSWZPa0xGc0h1NC9Gek9vR3JKT3dPbUlVMUVMNjZoSzQ2UGpCZHRRUUhVUDFNM1N4dUxybitTQm5vRUlrbFRBaXNzcUhrMDFQWU1XMHVPTUNRT3BwblVnbm9qQllDTm1vVDNlcGZYc0M3QmNHNVZtekI3NENBQ0dGcHdLcGR5Zmh3cmEybEhKQzhHRTZsVmp2NDVZUnBEMW5SbHAwa293M0lycVFkd3FNUFNrWXpYdm9JNUxCRHJXZzJBR2pEVFFGZFdzaVl3anUzbHN4V3NpS0ZGK2hiUWhqeit0bkJlVjNsRVEyN1RwaFJWZHFhdEJ3VlRvZ2oySzlpQjErby9rMDZteXJoYWNQeHc2ZUovZHJ5L005THVkMi9FM3I3T2VxSnVHbDNPZWh3R3NWSVpZdGhJY3FiTmhwWXlrVXdGRVhLNXFHQXlxZE1FM3BpTmpxRkI3dS9OcU1EYlpCdnhhOE5ORDE3dkwvY2s2TWpqMU9FaUJialZvUytzT25ZOVVwSVdHNkQxRmlLQitWQWxFd3BwL2RLZDhKV1lqL09FSkxrbFRuZW5EMGxpb1IzWkp2VzFCRnErVC93RktVNnBsakJqeUJCdEU3c3Z2dWxXSWEvUnBtOEFOWVVGV3ZnWGRFcGtaOEVDOElna200cFVNVzhHdnJqT01ZYXNyQ0FEUTBTQUFEMzJFYmh6S3BsNVFRS0FuajAwRUdHTXg5VnV5Nk9yMXdIbGxIV3U5d042Vkt1OWxJS1hxYStVTndKUmpQZFNUcno2bnJhMFMxVUVLUU9WNVo1L29SQkRRZ3A3Z3lOb2lPV1dscG9TMnBXaGJKWXNPUWp1OGJxaGRsbk9oWDh0V1I3anN2Rnc3czZ6ejZJUzJDRncxQWVndnFXYVRYNmRSd0JLaTBPZnJpWWhadmZsSmhqQXh2MXEyT3NMTVY4M21yOU9DcEFRbWN0b2RKVVRlYlIxbkpLbTZqblF3ejZCV3l1YlVkcmluQXFkbWdIcngrSk1sQlpzZ1YvV0E0THEzZlB4bEZDU2Nlb0o3ZjNRRVovS2Rxak9YSXpwQ1U2azZuZ3ByYWpTS2tuMldkZm9MMnBpdnNxNU5nMlpiQWd6M1BKcGtxK3FGRWFRbDZkVVBTVTR2OVVsai9PUFY0UXhGL2xUZm9qYjgwSHVHeG9NVFpvU3BKMitwWUhsOGpXRkxUV2JjOGJVRU9mSmJKMTZBRVNPSmwxcEljQVozRTBYYTF6cWZRajVDT3dlVUtnWXBNOWNYczR4ZXJWRERWZUVlZ25MSTZsZHEwakdmNUYrUE9nQ0t3UENBVFh6dDE4aEtLT2tkU24wSFVPTWVDUmZlV05Ld0paRkx4ZmZQdEhHSVVlNzBDME9ISGdLRnJPT0hPb1h4cmltMkFMTlJPR3IzVVJkTWZtMzdPZ0JVTTRiUGZXN1pzRHM2akR0MUlyUEtQbzFJTW5ENXc0cnNxZTBySXAyNWI2bzJ2T08vK00ycmZqRUdpdlNBKzYrT2hiR3NDeXR3R2ZSZ0RVR0pGZ09HTFJsOEFIZXkzTWp0dzgrbEYxczZqd2xwNDRhSWFsWFEzSzA2SnNQVWtpSjg1SnVIUkFPUGp4Nm9pek1CSHlHMk9vUzlQQXlXc0d2VnA4NG5JYWdRTmI0NmozTWsrSEJyeUUxQ2ZhcHd5OUJFdDR4WVBRVjRrSUpPUHlwUUZCMFAxVzdUaHZrQlpsUjhFbGNXTG9SOWtsYkRxZjBCbG45Q1kzN2lnN3RDWGJDWXlKYXRWbGxoRTZGQko0ZVpFeDN6RzJBR3l6KzBWMkllb0YwQmtVMHVCektBbjJMd09wYW1rM2g0U3ZEbzZLd25ZWTJoVklPS2dFMEt0S21BWFZ0VzZUY0RzV1NjamtzT25ocEpvVUtqam9TK3ZnZlVTSEpFQWg1Nlh2Vm5EMEMzNlZpZ05JeUtGc0Fxcm5vZG5SYnM2dFhJMWxxR0owYVh6SHRPU3NlWFJ5bHV2aE1ES2VvYWdWVTY3OGpNdWtYblVMWVJFc2dpdUpqNXlmbWRrOUZPVEkwNHlxc3lzN3F4dFJQc0pKU2hBclZTVjBtRmhlUFdyNjI1NnQ3UHFobnZaRStiQS93MXFidEtuU2lpSnBBY3lPa2dJdUh0VkRjSlJ5YzVNc0dUbVlaeUZFOXhERFd1RVFvb3RLUTZkYml2WmZNcGJWVEc4VHJZcitvMWRKeW1XK0NsS3ZQQUhnWTBKamtxNExFdWRVMlRyb3I1T0tzaVZoeUtlckRQZm5aV1I0eUJST0tDdDhIUzFGUSs5UXNJTWhuOGRqOVZxaVBSWjFDSHRhb1hxQVVKVDlQdnFDRFJnSE5XaTRUU3IySkk2cUVFYWhrZFdWUlAyYS95QSs5Y0RXUU83ZkhMdnBPNEJFL1NNYnNkbWVXVnRCc2NNSlVIWWEwVEkvNkMyVk9IWC9Ec3dPVzRiNGNCTzRvOE5rblFxOU5HTnBOYTNsL2ZLTm1nTTJNQTF3RjhWVkt4TEFSdEZhYkZlQ1BCQ2srUEwwbUszdTVmK1g2dDE0TkNXSHkwQjZScXFQcnhkVjkxM00ybnhuWHZ0OEh5NiszVjRNWUFqclF5bksvRGpKTHdFUnRRNitmNHE5cml3TkpmeTRkcFpLVVpNWVgxdFQ3R1VjeThaVldoYTBvSkJwQWtMY0dpdWc2NURHOEkrdDBOREV2S2YrbjNWRFMxMzZvU0VnUk5iWVhQK1Q0Y0hjZ1QxZEdpWHNKUWxCZkkzWGNtMGRUT05QeCtIY1U2VG4zZWhvcllweDZOaVNUZjJ1a0RNSnZPVm1vZlVJQ3ZYN1lCWlZicFZjRU9VZTYxSjQ0Q3VNeXhtMTd0T1BoczlCYjZCQXA4OUlPS2FXckMwV1pQbDNnRjE4QTRSTmRhOEJLbzYwZFBIUytONkFFbHN0TzJWd096V2FEWHVRdHZYMi9JMFVTR0tOUGlpam9CSDFHRW9LRWVHUThFOFJIeGFxV2FSQmpMa1Z3UlBML3FCYTVOT3h3NGYvMCtEWlYyZWxFbEFSYUVFb1BNVTlwUGhPRmR1Vi9mWDdVQTJUMEJXM2o5SmloU0xFMUNGOXV1T3ErbDN4UVE5QnQrNXRhdnBqQVUzMmc2RTN1Zkw3MEhVYmtNUzBWMHhLNytvL2RUcjU2b0k5ZjhHeFJsVGhFK1RTNVNwZThoUVlwcTRPblJ2VjNTUUQwL3JFWlFYd3h4YWc3dW5Jb1FKQ3BmcUtYNjg3c2ZqbjZ6Q1c5YThBc29kWmR5R3JRaDlYRWRXK2NLY2xUYnNrNEdBYTZPV2ZTTVl1aFg2YWh6WDRwMWZCMGdJTWFBQ0l1U25UbXJaQnJIZk16NzJWZmxXZFJ2dEl3bmRYM2ppZkRxYW1OcUtNQUlUT3R3SWlLVm1OK1cvWTZDZkdndmFnOTZwUFNNNEg2U0Z5eUR3TlUwNS9DQ0FkRFdXWkNzTGR3dWNhSGZ6aFdDVHFxb2s2UWhNVmo4aGJoQytwYWpYeUtoQmhCMVdPZ2IyTGdWbkZ3cTRrNlRxczR0cG5hdFhaWitwWWM2NS9WZHNhNU9DNkpsbU9oY2xVZ3JhYWNDa0dvK2VUMmpBeEszMnM5WDBMbU5kRmpOZ1JObnBwcnlROGR3MVN5Y1ZDTXNQREpKa0xYRnFaTnhPakx6MTYvTWNnaUU5ZmVWSVJ3ajV0VDlOOUN1dGhqZzZ0MTRBQUFCZzJsRFExQkpRME1nY0hKdlptbHNaUUFBZUp4OWtUMUl3MEFjeFY5VHBhSVZCVHVJT0dTb1RoWkVSUnkxQ2tXb0VHcUZWaDFNTHYyQ0pnMUppb3VqNEZwdzhHT3g2dURpckt1RHF5QUlmb0E0T1RvcHVraUovMHNLTFdJOE9PN0h1M3VQdTNlQVVDOHp6ZW9ZQnpUZE5sT0p1SmpKcm9xaFY0UWdvQjg5Q01qTU11WWtLUW5mOFhXUEFGL3ZZanpMLzl5Zm8xZk5XUXdJaU1TenpEQnQ0ZzNpNlUzYjRMeFBIR0ZGV1NVK0p4NHo2WUxFajF4WFBIN2pYSEJaNEprUk01MmFKNDRRaTRVMlZ0cVlGVTJOZUlvNHFtbzY1UXNaajFYT1c1eTFjcFUxNzhsZkdNN3BLOHRjcHptTUJCYXhCQWtpRkZSUlFoazJZclRxcEZoSTBYN2N4ei9rK2lWeUtlUXFnWkZqQVJWb2tGMC8rQi84N3RiS1QwNTRTZUU0MFBuaU9COGpRR2dYYU5RYzUvdlljUm9uUVBBWnVOSmIva29kbVBra3ZkYlNva2RBM3pad2NkM1NsRDNnY2djWWZESmtVM2FsSUUwaG53ZmV6K2lic3NEQUxkQzk1dlhXM01mcEE1Q21ycEkzd01FaE1GcWc3SFdmZDNlMTkvYnZtV1ovUDhhN2NtTHcwWHh2QUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDVBY0NFQjhmQlZ4SHRBQUFJQUJKUkVGVWVOcnNuWGw4Vk9XOS85L1BtUzA3a0lXd2hNVUVBUkVFcEFXMEltb1JwWXExaUZXdy9rVEZ1clNpWGNDNjBOcUNYYkQxdXR3cVdtcXhyZEQySXJkWHNiVEk5WXBMQ3lpaVV0a0RFUklnZXpLVFdjK2M4L3orbUhNbUo1TUppeUlrOEx4ZnIvTUtaQ1l6a3pOblB2bnVYL0g5cjEzQW1xMVZSSDE5R1RieFp1WmQrQUczejF0RjBSMnJXRHR2R0ZETGlobmptTGRoSElzK1dNNzBQS0Q4R2E2NDlGSEtMMTNNOW1jbjA0cWZGYlBHTXUvTjBTellzSndiaXV6dlJ5bGZzWUNIRnIvQzVqMEJmSVZuTWY3bWU3aW1iZ0YzL0M3S3pHVWJXVGllTGtrNEhPYkFnUVBVMU5SUVYxZEhZMk1qVFUxTkJBSUJXbHBhQ0FhRGhNTmh3dUV3MFdpVWFEUktMQllqRm91aDZ6cTZyaE9QeDVPSFlSakpyNFpoWUpxbTg5L0NORTJjaDVUUy9pcWtsTmdISUZLL0FrZ3BoZlhTazE5VHZpZDI3ZHBWWEZCUTBOdm44eFc3WEs1aVRkT0tORTByRUVMa0F6MkFQQ0ZFSHBBTlpBR1pnTmM2WElCbVBaNEpHRURNT3NKQUNBaEtLZjJBWDByWkpLVnNrRkxXRzRaUnArdDZkU1FTcVRsNDhPREJrU05IMWxpUEl4MUh1LzhMSVZKdnM3OEhJSVVRN2I0NkRxbHBHa0lJTkUxTFBhVEw1Y0xsY3FGcEd2YS8zVzUzOHF0OWVEd2UzRzQzaG1IUXZYdDNmRDRmUHArUHpNeE1Nak16eWM3T0ppY25oOXpjWExwMzcwNlBIajBvTEN5a1o4K2U5T25UaDh6TXpHTzQ2dnlzbXp1Sm16ZFBaZFhhK1F4RGtZcDkwYmVlc2hXekdEdnZUVVl2Mk1EeVZtWDZISWl5YnM1WWJsNVZ4QjJyMWpLdmk3MDdzVmlNQXdjT2NPalFJZXJxNm1ob2FLQ3BxUW0vMzU4VXRGQW9SQ1FTSVJLSkhGSFFuR0xtUEV6VEZMYkFwWWhaR3lHenhja3BVcW1DNWZ4L1RVM040SnljbkVGdXQ3dE0wN1JTSWNSQUljUUFZQUNRMFVsT2N3VFlKNlg4eERUTkNzTXc5c1ppc1QyTmpZM2xBd1lNMkowaWNQSXdndGRPQUczaEUwSzBFVHBOMDJTcXlGbkNsaFE1NStFVU41ZkxoV0VZNU9YbDRmVjY4WHE5K0h3K01qSXl5TWpJSUNzckt5bHdlWGw1ZE8vZW5mejhmQW9MQytuVnF4ZDkrdlRCNi9VZVZ0QzJybmlSbDk1Y3hZcFZsUXhiOENyTGJ5aFJLcFlHZHkzUWFsaHRaZkh2MWhQakxDNGNYM1RjQkd6ck0zTlpWaktQK1ZOTDhObmZMVi9CNG5VQjZEdVZTN3VZcU8zZnY1OURodzVSVzF0TGZYMDlqWTJOK1AxK0FvRkFVdERDNGZCaEJVM1g5YVIxbGlwcTZjVE10c3BzWWJQL0tLVVJzamIvMzdWclY4OCtmZnFNOEhnOEkxd3UxOWxDaUxPQnN5RDVWblJtTW9EQlFvakJ0cEI0dlY1eWNuSXdUVE1LYkROTmMyczhIdDhhRG9jLzNybHo1OGZqeG8ycnN5eEZLUk1uU3RyL2Q0cWNsRklLSWV6N0pBWE9NSXlrOVdaYmM5WWhPaEk1cDdDWnBvbW1hWGc4SGp3ZUQxNnZsM0E0ak0vbkl4UUtFUXdHYVdscElSQUk0UGY3YVdwcW9yR3hrWWFHQm1wcmErblZxeGY5K3ZYcitMTzA2Z2wrdDc2SWNUYy95Wk5LMURxMjJJWmNjRDJUSnc2amlGbzJyMXZEQjFWUWV2TlNWczRmVDk1eGVZcEtWc3lheHJ3My9mUWROWkdKbzB2QXY1WDFyMnhnVDZ3dlZ5NWV5Wk9UaTdyRXlhcXVybTduZGpZM055ZmRUcWVnUlNLUmRvSjJCQ3ROMkc1bmlxQ0pEcXl5ZGhiWnRkZGU2MXF5Wk1rWE16SXl2dUJ5dWNZSUljNEZCcDltMS9RdTB6VGYxM1Y5czkvdmYvL3JYLy82Kyt2V3JUTWQ0cFlVT1NHRW1jNmlTMmZOYVpvbTAxaHh1Rnl1TmlJbnBTUXJLeXZwbmpvRnp1djFKcTIzek14TXNyS3lrdTVwdDI3ZDJybW54Y1hGU3FFK3JiQjkvNmF2c0c3OU51cklwYkJzTkZOdm5zYzkwNGNkSjFHenFXWDlpMCt3ZU5rNk5wZFhFYUNRMHZHVHVmbWVlN2hoZE9jWHRlYm1acXFxcXBKV1dqcTNNMTBjVGRkMVlyRlkwa0pMRTBjVHpqaGFHc3RNcEltWDJWYVorTjczdnVkNitPR0hML0Q1Zk9kcG1uYStFT0k4SUVkZDFtMW9rVkt1ajhmajZ3T0J3TWE3N3Jwci9WLys4cGQ0R3FFem5hNnJRK1NjY1RtWmFzbWx4TitrbEpLTWpJeDJzVGV2MTVzVXVJN2liMDczdEtpb2lGNjlldEczYjErNmRldW0zc1hQR21OVHRLTHJPdnYzNzI5anBUVTFOU1d0dEtPSm82VkxEdGlDbG1LZEpkMU1oMFdHVThpa2xGcERROE93bkp5Y2kxd3UxNFZDaUltQXV1cVA4ZStVYVpwdjZicitkblYxOWRzREJ3N2Nib2xiTzZ2T2FkSFoxcHZ6MzNhQ3dTbHlVa3A4UHA5TWwxeEl0ZDdTeGQ5czY2MTc5KzV0ckxkKy9mcmg4WGpVdTZlRTdiTng2TkFoS2lzcjJ5VUhuRzZuTFdxMmxXWmJhRWNyYUlaaEpOMU0welE3RkxOUUtIU3gxK3VkcEduYUpHQ0VlbmVPSy8rT3grT3YrLzMrTndvTEM5OG1rY1UxVThXdUk1R3prdzIydXdyZzlYcVRGbHhIQW1kYmNMYjFab3ViMHoxTlRTNlVsSlRRcTFjdjlZNHBZVHQyZ3NFZysvYnQ0OENCQTFSWFY2ZE5EaHlwZkNQRjdSUXBpUUduZFNaU0xMU2ttSVhENFNsZXIzZUtFR0lLMEZlOU15ZUVLc013L2hFSUJOYm01K2V2cGJWY0phM0lPV055dHFzSzRIYTdwYk04eEJhNUkxbHZxZTVwYm00dWVYbDU5T2pSZzRLQ0FvcUxpK25UcHcvOSsvY25PenRidlZ0SzJJNk8vZnYzSjYwMFp5d3RYWElnTlphV3hrbzdrcUNKMUpoWk1CaTh4T2Z6WFNXRXVGS0pXYWNRdWRWTlRVMnJpNHFLYkV1dWpjaWxXbkgydngzdWFUdUJjN3ZkSFFxYzAzcExUUzZreHQ1S1Nrb09rejFWS0dFREFvRUFuM3p5Q1ZWVlZXMnN0T2JtNWpZMWFVZFpaQ3RzMTlOMk53OWpuV21OalkzRGMzSnl2cVpwMnRXZ2FpMDdLZHRpc2RnckJ3NGMrRnRwYWVsV2g4QVpEcEZ6eHViYVdIRjI5dFFXT1V2WVpEcjNOTlY2YzlhKzJabFQyM3JyMjdjdkF3WU1JRGMzVjcxRFN0amFXMmwyZ2lCZHhyT2pFZzViMU5JSm1yTkx3Q2xvdHBpdFdyVXFZOUtrU2RlNjNlN3BRb2pMMUdYWWRUQk5jMDBvRkhyNXFhZWVldVhCQng4TUEvR09SQzZkd0RscjROSUpuQzF1SFpXR3BHWk83Y1NDc3Q2VXNBRVFDb1hZdTNkdnV3U0JiYVcxdExRa1kybEg2Qnc0bktBSnA5dloxTlEwSWpzNyt6cE4wNjREMUpYWXhmOG02cnIrMHY3OSsvODZhTkNnYlE1WDFVaDFWUjBDSjQ4a2NCMWxUdTNZVzA1T1R0SjZTMDBzbkhIR0dXUmxaYWwzNW5RVnRvTUhEeVpkejVxYW1qWUpnaVBWcFRsRUxhMmdXUVcxYmR6TlVDZzB4ZXYxemhCQ1hLc3V1VlBTaWx2WjFOVDBVbUZoNGV0U3lyZ1F3aWx3aHRPQ3M0WE9HWWRMRmJpT1ltL3A2dDVzMTdSbno1NUoxN1IzNzk2bi9YdmlQcDErV2NNd0tDOHZaOSsrZlJ3OGVERFpFdFhjM0l6Zjd5Y1lEQ1pGTFJxTnB1MGVzQVhORVVkTEsyZzMzbmlqYThtU0pUZTYzZTRiZ1F2VXgvL1VSZE8wYWZuNStkTmlzZGc3TzNmdS9QTXR0OXp5MHNhTkcrT1dtMnBJS2R0bFZnM0RrS1pwU2szVDdGaXNkSllFeGVOeDZTd1hzajBFWnlqRS9xTnIveEVPaFVMSmRxMnlzakpjTHBjU3RsT2RwcVltOXV6WjB5YnI2V3lKT2xLeGJScTNVemk2QkpLQ3RtblRwdHdSSTBiTWNybGNONkZxems0djkwZUlMMlZuWjMvcFgvLzYxemNqa2NqeVpjdVcvZVcyMjI3elc5WmJ2Q09CazFKS1I2RzJVK0JrYWd1ZXM5ZjRTQUpYV2xwSzkrN2RsU3Q2cWxKWldVbEZSUVdWbFpWcGE5UFNGZHNleGtwTEcwUGJ0bTFiajdLeXNsdGNMdGN0d0NEMU1ULzlNQXlEeXNwS0Jnd1lZSCtyUEJLSi9PR1ZWMTc1ODNYWFhkZG9XM0QyWWNYZ3pIUXhPR2ZkbTlNOVRTMExzWXQ2MDlXOGxaU1VNSERnUUVwS1NwU3duVXBJS2RtNWN5ZWZmUEpKc3VEMmNGblAxQTZDRHR4T084dXBTU25GaHg5K21IZldXV2ZOZHJsY3M0RXk5ZkZXd3VZUU5wczk0WEQ0OTMvNjA1K1czM3JycmMxSEVEalQwWFNmMnJrZzAzVXNkSlExdFF0NkJ3d1l3T0RCZzdHNkpaU3dkV1VDZ1FDN2QrOU94dE5xYW1xU1dVOW53VzBIcnFkSWJZVktzZEswK2ZQbnUrYlBuLzlObDh2MVRWVDkyUWw4WXc5QjlRNW9xSUJ3VStJQXlPeWVPUElIUXZFUXlPM1ZtWVROL2tPN0xSUUt2ZkQxcjM5OTJlclZxMk9Xd05raVp6b0V6a3kxM3B3QzUvRjRaRWY5cHM1cElmbjUrZlRzMlpQZXZYdlR2MzkvQmcwYWROclV2SjJTd2xaZFhVMTVlVG43OSsvbjRNR0Q3VW81VXVOcHpvQnNPcmZUVGd6WVdjNUlKSEs5eCtPNUV4aW5sT1lFMFZBQnU5Y2x2aDROK1FOaDBNVEUxMDRpYkE2QjIrajMrNWQyNzk3OUZTR0VuaUp3N1Z4VVJ3ZURUTFhlVW12ZVVndDY3WktRM3IxNzA2OWZQOHJLeWs2TGNVaW5YUEtnb3FLaVRaTEFucHZXVVR6TmFhWFpnVm1uMitsSURHaWhVT2dTcjlkN2w5WHlwRGhSYlBrclZIMTQ3RUs0c1FMNmpvSVJYKzFjMW9RUVk3dDE2emJXTUl3cmEycHFsdmJ1M2Z1ZlRvRkxUVExZQ1FacldJSk1tZDluLy8rb2tneVJTSVJ3T016QWdRT1ZzSFdWZU5xT0hUdllzMmRQc2pYS0hqUFVVVHl0QTllem5kdlowTkF3T0M4djcxdENpRHVVeXB4QTRoSFk4RUxDL2Z5MFZIMlFjRmZQdlE3Y0daM3ExOU0wN1N1OWV2WDZTaXdXVy9MeHh4Ly9mdlRvMGVVT2diUExSQXpBTkUzVHRQZGIyTmxUdTJYUEtXNnBJbWNud0ZMRkxSS0pNR1RJa0ZNMjduWktDRnM0SEdiSGpoMVVWRlMwNmZlMDY5TTZpcWVsV21tV3FDWGR6bG16WnJtZWUrNjV1MTB1MXh4QXpXRSswV3hZQ29IcTQrUEd2djluR0h0VHAvdzFQUjdQN0ZHalJrMEpCb1BQVHBndzRmZWJOMitPQWJwbHZXbTJpeXFsTk8xeDVsWUNTenFISzZRS1hMcFNFV2ZZeFJhM1kxc2tvNFR0aE5EWTJNak9uVHVwcUtoSURvUjBUdVZJVjU5bS9SVnppcHJUU3RPa2xDSVVDazMyK1h6M0FsOVdDbk9TM00vaklXcE9jZHZ5UDUzT0xYWFFOeXNyNnlmdnZ2dnV4VFUxTlV0NjkrNzlsaEFpNW5CUEJhMDlxVExGZ25NS25FeTNGQ2lkZTJwWEFRd2VQSmdlUFhxY1lzTG1YOEdNVWZQWWtIc052L3Z3VVNaMm9SZGZYVjNkcHB6RGJtSlBWM1RyS09VUXRubWV4a3JUS2lzcmV4VVhGOStyYWRwM2xMcWNKQm9xamoybWRyUnVhZCtSSnpTaDhDbmMwNHQ3OWVwMWNUUWEvZlhycjcvK3V5bFRwaHl5M0ZQTktYQ0pYVFRDN01oNmM3aXFISTJiT25qdzRGTXFxZEJsTGJiOSsvZXphOWN1UHZua2syUTVoN09USUYyU0lOVktNd3pEYWFWcGtVaGt1c2ZqK1E0d1JxbkxTV1RYRzYzLzFnL3gwSS8vd2JJR0dEZmo2eXlma0FrWVZINjRpWWRlM2N2NnlnaGtaak42NUFqbVRSL0NhS3NIUExwL053dFdiT0dWdlg0Q1pGQTZ1RDkzVEIvTDlOM3JZT3pBVG44S3ZGN3Z0eTY3N0xMejYrdnJueTBvS0ZndGhIQlo3cW51aUwwSlovd3RqY0IxR0h0THRlQnNnZXZ5VTBMODVheDdaUm51U2FQbXNRY2c4QkkzbDY1ajVrc2JXVmkybFJjWFBNVGlOVnVwaXZyb08yd2lOODlmeUMyajh6ckZheTh2TDJmMzd0MUpVYlBMT1ZLYjJEc1NOV2ZHVTBxcFZWZFg5eXNvS1BpdUVPSXVwU29ubWNBaGFQd2srZCt0cjI5a1JVUEt0ZnZ4djVqeGJEbFZlQ2dkV0l5dm9aWU42OWN6b3g3V2ZtY0lKYzE3bWZQNE83d1doc0xpWW9iUnpJYXRPNW4zZUl5OEg3cVlmTmFoazFMbmRxd0lJVWJuNStjdmpzVml2M25ublhlZXYvamlpeXVGRUpyRFBZMWp0ZkxaazBUc3pLbFQzSnhiejV6TGcrellzbk80UXl3V282eXNLOWFabDdOaXpod1dyZG1HMzVlTGUrYk1DL25kc2plcDhwWnk2UTNYY0dtUm4zVVB6V0wrS2o5OUw1ek9IU1hsdkxKc0ZRdG4rY2xidTVUcEozbXAxUGJ0MjVPRnQ4NmV6OE5rUG9XejE5TlJsNlpKS1VVa0Vwbm04WGkrQjN4QnFVcG5pQzlzYi8xMy9RNFd2TnBJTE9VdVc3ZldFczNMNXNJckxtZnBoQndJN1diV0Q5N2h6YjM3V0I4YXd1U0tmV3oxWk5CMzJGaFczbm9HUmJUdy9LS1hXRmhSeGFxOU1MbStva3NJbTQzSDQ3bHQ0c1NKWTJwcmF4Y1hGUld0c1dKdm1pVnF0dlZHd25DVHFkYWJTSW5Ea2VxaU9qZW4yUUkzZE9qUUxuYmhSS0hvR3VZdm44cmt2Qlc0YjVsM0phOHRlNU1xMzJobXpyK1RpWlR6VEhrZFVNclVlZk9aTnl6S3BXY3RadFdlWFBMOE9MWXJuMWlrbEh6ODhjZnMzcjI3emNKaWUydVVQWmtqSlVtUUttckplTnIyN2R1N2w1V1ZmVi9UdEhsS1RUb1I5UlhXUDJLcytlc0hiS0FINHdhMnNLRkNUOTVsL0xWZlkyTzZBVkFlTDNrZXlCczVrYmRHcG50d0Yza2VTendIanU5U3AwVUljVzVoWWVGemtVamtpVC8rOFkrL25UMTdkcU5sdmVtMGpzZ3liRUZ6eHQ3c1FhZE9jVXRkKzVnUXVTaE5GZS95NXlmMlVqanJQM2xzNXRsZHFCeGtHTlBuRDdPTnQzUXh0akltWGptS0o3Wjl3T0lyeDdKbTFIakdYM29OTSsrWnpMQ1Q1SW5xdXM3SEgzK2M3Q1pJTGJ4TkxlZXcwdG1wV2M5a2dpQVlERjdvOC9ubUNpRW1LeVhwWkZndFV0RzltMWl3S1VMZkN5WnljM3hkRzJHenFmMXdFd3ZlYTZaMmJ4VWI0aGxjZU8wb0pqczMxQjNhelVPdlZsRlpmNGoxRlJwOXg0emxqc0ZBUE5wbFQ0L1A1N3ZuNXB0dlBudlNwRW5QRGh3NDhGMHI5aGF6WEZNaGhEQVNobHByM00zcG1xWk1Fa2tJV3p4QzNkNHR2TDUvUHdmOEp1Nk1Ya3lkdklNUFA0eHo5dGxuZDhtMWYybVRCOFB1WE03YTBTdFl0dXcxMXExZng3SkhYMlBaNzY1azhkb25tWHlDeFMwU2lhUVZOYnZ3TnQwK0FvZWxsdXA2YXJGWTdIYVh5M1VmMEVlcFNDY2swZ3cwOC96eTNWUmw5dU9KcTN1UnR5TDlYZjE3OTdGcWt6L3huN3h1REN0T3FjZnkxN0ptVXdWMUFPNXNocDNSTGJFSS9MTVUvSFlDTkUyYk5HREFnR0Yrdi84LzgvTHkvZ3hvbG51YXROeHdKQlpzajhleTNvVGxzbUthVVJxcnlxbHRDcU9qNGMzcnlhQnpoelAyM0hNNFM2dGc1ODZFcTNyMjJXZVRrWkhSdGM0UmdNL3lVYU5Sd0wrZVorYk1aZEZyZWN4OGNpbXZibHpMUTZPQXVuV3MybnhpWDF3d0dPU2pqejQ2YkoxYVNseE54R0l4WWZkOFdtYTJacHFtVmxWVjFTY2Vqei9tY3JtZVVLTFd1YW45MTBZV1Y4SzRxOGN5OVRDVHJzdXUvaHA3bnY0R0crNDlpN05DMVN4KzlsK3NDVG51TVBnOE5qNTlFOXNXWE13MUJVRmVXL0U2aS9ZYXA4cHA2cE9ibS92VGFEUjYvNnBWcTBxa2xCbldSOWtMZUtTVUxpbWxabC8vVmd4TjJONU1KQklSNFdBejFRMGhvcVlnbytnTVJvNFl6QmtGR2VqTk5SdzRjSUNLaWdwMjd0ekpSeDk5UkRBWTdHSVdtNitJdkZ3Z3NJWUYwMlpSdm5BaGViVnJXTFZxSFZzclAyQnlTUzNyeWdGdkdhTk9ZTElrRUFpMHNkU2NMVksyb0RuSGQ5dXVwMVdmMWlickdRd0dKL2g4dnZ1RUVKY3EyZWprWkJpcytMOERCSUFOeTEraWRIbnJUUnVXLzRVSis3L0NxNWQ1cWRWZDVCWGtVT1J4VVRSNEdOZVViR05oUlMwYnFtRmlmZ3VWWVFOZlhqZEtzc0JYMEorWnc3SjVxVHJJNXAwdGNNN2dVK1owZWIzZTJWT21UQ25kdTNmdk0yZWNjY1o3VnR6TlRpd0lJWVJobXFacEwzaHVHM2R6aVc3ZE1tVkxNRUs0ZWpjYmF6OGh0N0F2WldjT1lxakRYYldQczg4K3U4dE1CM0hqbThnOTg2OWs2NEkxN0NrdnB5cGF3cDFQTHNYLzBBSit0KzUzTEk1NUtUenJVdTZZdDVCYlRsQlRVWE56YzFMVTdHYjIrdnI2ZHU3bllUS2Z5WGhhTkJyOWh0dnR2aDgxL0xGcmtObVRzalA3Y0tFajVGRmJlWWh0ZnBQYzRtTEdueUZZcy94bDVtMkZjVE8reHZJSk9SQnE0SU1HQUMrRm1WQzUvblV1L1o5R2NzZGN6RnUzOWllUE1PWFZZVUFqTDgvYjZYcEdqNE5yZXNtQUFRTUdORFEwUEpXZm4vK0s1WnFLRk5jVVo5ek5Gam1QSjFOMEwrd21QZWdFQTM2YWF6L2hnOW9xYXVPWGNxSFYyZURzVVQzNzdMUHAxcTFiMTRpeGxVMS9rclhUbmQ4ZXo1M1B2c3FkSitFRk5UVTFmV3BSY3lRSnRGdHV1Y1cxZVBIaUgyaWE5aUNuMlc2SExrM0JjQ1pmZXluT3JNNzYzLytabWVzakRMdGtJbytlbDBtdHB5K0ZXL2V6WWZuTFRIb3ZIMTkxTGR2OGtIdm1FS2IyZ2hMUEVNYXRXYytHVGV1WVZGMUVtZDdNaG1vVDh2b3hjMWdtRkE4OTVVNmJFS0tzUjQ4ZXZ3eUZRbjNHangrLzVLT1BQdEljMXB0dWlWa3k3aGFQeDl0a1RLWFhLM01LZWxQWUcyTEJJTzVvTTQyTnliS1JOc2ZaWjUvZDZVZU9kNm9QZkdOajR4RkZMWjM3bVpva09IVG9VTCtDZ29MN2hSQ3psVkowTVlxSEp1YXVIWWFpTDB4a09adFlzR1l2NjNkVlEyWWU0eTRZd2Z5ckJ5VW1GUlFNNGRsN1hTeGFzWVUxZTZ2WlFBWm5EVHVMTzZhUFlXbzNvR0RncVhyMjNKbVptZlBlZSsrOTR0ZGZmLzAzbDE5K2VhVnR1Vm5XVzl5K1k3cWtRdUtMajh6Y0FqSmxDODNONllYTkZyZk8zRi9hYVFaTk9rWE56bjdhb3VhTXFhV3gxT3pXS00wMFRSRUlCTDZRbVpuNWdKcVoxb1hac0xSTjk4RnhwY2NBR0RmcmMzbm9veDAwZVNJd0RHUDF6cDA3Rnc4Yk5td0xFTFd5cGpxUVhBK29hWm9VUXBqV2RGNXA3VlNRenBIajlrVGU3dDI3VTFCUVFLOWV2WklES3p1enVIVUtpODNwZnFhSzJ1SGNUNnZmTStsK2hzUGh5N3hlNzRPb3liWmRtek12Z28wdmZINlBmUnJnY3JtbURCMDZ0S0N5c3ZMcGtwS1N0NnhFZ20yNUlZVEFtVlN3ZzI2dGxsc3lGc2ZoakovaHc0ZDNTcmYwcEF1Yk0xSGdGTFhHeHNhMEV6cFMzTStrcUVXajBSbHV0L3RCNEV5bERGMmMvSUdKS1J6SGU4SkhKNS9zOFRuRTNjYjI2ZE1udjY2dTdxbkN3c0svU1NtZFNRVWRSMUxCSVdEU2NsM2JxVms2Z1JOQ01IejQ4RTZYVURpcHd1WXM2WERHMUd4Uk81ejc2UlMxV0N4Mmg4dmxlb2lUMXZDbE9PNk11QnI4aDQ3ZlRMWWVBeEtQZVpvaGhCaFVVRkR3VUZOVFUwNzM3dDMveTJHNXRRbEYyZUlXajhmVGlsdEhvbVlmSTBhTTZGU2xJQ2ROMklMQllJZUpnalIxYXNLNTQ5TXBhcnF1ejlVMDdTRWdRNm5CS2NhNFdjZG5pbTZQQVREbSt0UDVUQloxNjladGZrdExTM1pPVHM3dm5XNnBVN1RTaVp1ZFhFZ1Z0RlJoMHpTTkVTTkdrSjJkM1NsK1llMWtQS216VGVvb3NwL0N1VUhLanFrOS9mVFRIbDNYZjZocDJrSWxhcWNvN2d6NDBoMEpGL0t6dUovalpwMXl0V3VmZ296czdPd0hRcUhRN1ZkZWVXVzJvMVBCQTdpdFRnV1hhWnJDTUF6aDZGSWdHbzBLKy9NWURBYngrLzAwTlRWUlgxL1BvVU9IcUt5c3BMeThuSTgvL3BoSUpOSXBmbG5Yd3c4L2ZFS2ZVTmQxL3YzdmY3Y1pQZVMwMUZKaWFzTGV5RzRuQ3FTVTR0MTMzODM1eWxlKzhpTk4wMzZnUHYybkFjVkRFN0d4VUpQVlMzcVVWdG81VjUvUUtSNVNTdngrZjZldThmSjRQT2RObXpZTmw4dTFkZDI2ZGZFT3BuZklOSWtEa2VxU09wcnMyeHhGUlVXNFhLN1RSOWlrbEd6WnNxV05xS1hiSkpVNmRzZ3BhanQyN09neGRPalFIMnFhOWwzMWlUK055T3dPSmFNU0l1ZkxTVGhLbmd5SVdUMk11Y1dRWFpnUXNpR1RvUFNDeE0rY1FMcUNzQUc0M2U2eDU1OS92aWd1THQ3K3Q3LzlUWGRtUmpzU042Y0FPdXZaVWdYTy9scGNYSHhTUng2ZDBCaGJSNzJmVHZlem81SU9LYVVvTHk4djZOKy8vNE5DaUx2VkovMDBKYmRYNGxBTmNwOEpuODkzKzIyMzNhWjV2ZDRsdDk5K2V5MjB4czRjVnBsaEdJYnRhYlZKS0RqamE4NDRtOHZsd3Q1YVAzejQ4Rk5mMk96SnR4Mk5IanBNOFczU1VsT2lwbEFjVjNHNzdhYWJiaUlhalQ0M1o4NmNCcWRsbGs3Y2NHUkxPeEsyVkhFN1daTjRUNGdyV2w1ZW50d21kZkRnd1E3SGVhY3I2YkJqYXBiN09VZGRqb3JPU2xkeFJWUGMwakVqUjQ2VVFvaC92L25tbTRabGpiVnpTMVBFcmwyOHpYa09uTzZweStVaVB6Ly8xTFBZOXUvZmY5UXh0WFIxYWs4Ly9iUm41TWlSRDJxYWRvLzY2Q2dVeDUrTWpJemJIM2pnZ2ZpbVRadWVYYjE2TmVrc045TTBEV2d0QmJIS1JlVGgzRkdYeTRYVnBuWEN0MTk5cnNKV1hWMmRYSkdYdW5qbGNERTFaNTNhN05tekg5UTA3ZnZxOGxNb1BqOHlNek8vdFdMRmlsaDJkdlp2YlVGemlKdkVXdEpzK2FiSm1Kc1FRanJkVU9kaHU2TzJ1SjNJdmFXZm03RFpHOXFkN21kSDQ3eFRZMm9weGJjUHFzdE9vZmo4eWNySytrNGdFSWprNXViK2tiWlpVcGxheEd0L1h5U1FIY1haYkt2TkZyY1QxVFQvdVFoYk9CeHVJMnIyNHBYbTV1YkR1cC9XS085a201VFZVYUJRS0U0UU9UazUzMmxzYkF6MTZORmpwV1cxU1ZKaWJKYTRPUzAySVlTUXRxZzVCYzYyMkd4aE8rZWNjOGpNek94NndpYWxaTWVPSGUxMkZLUmFhdFkyS2VjU1kreUZLOUZvZEliVis2azZDaFNLRTB0RzkrN2Q1MVJYVndlTGk0di9MaFA5VjIwKzMvWlhlMkNsWmEyMXNkeWNGcHZUSmZYNWZJd2NPZkp6cjNFNzdzTG1GTFhVN0tlOTk3T2p5YmVtYVlwd09IeVpOYVZETmJRckZDZUhvcUtpb3J2Mjd0M3JQK09NTS82Wllyblo4VGE3OUFPSG9BbE4wMlJIY1RaYjJESXlNajczTXBEakttd1ZGUlhzMmJPSHFxcXFwS1dXNm40NnVncElLZXZRQW9IQUY2eDVhbXIwa0VKeEVoRkNET3Jmdi8vdG16ZHZiaG85ZXZUSGx1V1duTnNtaEdoanRaR1NJVTJOczduZGJ0eHVOMTZ2RjYvWFMwWkdCZ01IRHV6OHdsWmRYWjBVdGVycTZxU28yZjJmRHZlelRhdVVjNXgzWm1ibUE2Z2hrUXBGcDBEVHRDK09HREZpOXNxVkt4K2RObTFhbFVQY3BHTjJHNlpwbW5hbU5KM1Zac2ZhbkJsU2UwTHY1NVVwUFM3Q0ZnZ0VrcE02cXF1cjJ6UzFPMk5xNmNvNnBKVGlsbHR1Y1ZrN0N0UTRiNFdpRStGeXVTNi80b29yYW9jT0hmclk5dTNielJSeHN6T24wdDRxYjR1Yk01bGdXMnoyVjYvWG0zUkpzN0t5UHBjNWJwOVoyS1NVN1ZxbG5KWmF1cWIyMUF6bzRzV0xmNkFXcnlnVW5ST3YxM3ZqdSsrK1c1T2JtL3Q3UzlETUZIR1RxWmxTVGRQYVdHN3BTajk4UGgrWm1abU1HalhxdUNjVFByT3c3ZHk1azMzNzlpWExPbzVtVFY1S0J2UWJxbFpOb2VqYzVPVGszRk5kWFgyb3VMajQ3NENaeGkxdEUzT3p5ajZTNG5hNFdGdFdWaFpEaGd6cFBNSldXVm5acmxhdGcxWXAwbVZBZzhIZ0JHdVpzZHI3cVZCMGJ0eEZSVVYzYk4yNjlkQ3dZY1BldDZ3ejIwcHJseW1OeCtPeW80TGRkTEcyN094c1NrcU8zMGIyVHkwb1RVMU5hV3ZWT2hBMWtiS2xYVHR3NEVBZm44OTNIMm9BalVMUkpSQkNsQTBlUFBpV0YxOTg4Y0FOTjl4d3dPR1NKaTI0bFBxMnBFdWFUdGljNHBhVmxVVk9UczV4R3lEZy9qVDdHdzNUWk0rL3QxSzVldy9WKzZ0b09GUkRjMzA5Z2FabVF2NEFrV0NJU0NoRU5CSkJqOFNFcnNlSTYzRmhHcWFRTWlGc1BUM2hlYUpwMzZYcWNsR2NuRStwQmk0UGFKN0V3RXB2dGpvblI0SEw1YnA0MnJScEZjQlR0TWJiVE5Ja0UxTEZ6WmxJY0xxa3prVEN5SkVqajh2MDNVOWxzWlh2L1lUS3FvTlUxOVRSME5CSXM5OVBTMHVRVUNoTU9CSWhFbzBTamNYUVk3clE0M0hpY1NNeE5saEtJU1ZhckhyMzdVS0l1OVJsb2pocFNCUGlVU0FLc1JZSU5VSkdMbVRrMmQ2VW9nTXlNakp1cnErdnJ5Z29LUGdyWUhTVVRCQkNTRHZlbG1xNU9kMVJwN0RsNU9Rd2VQRGdFeTlzQjZ0cjJGZFp4YUhxV3VvYkdtbHE5aE1JdEJBTWhRaUZJMFFpVWFMUkdIcE1KeUZxY1JJeE5TbWtsQ0pZdGUxQ2w4dDFuN284RkoxTDZBd0lONEVlaHB5ZUNZdE8wU0g1K2ZsM2JOMjZ0Y0tLdDVrcGg1UlN5b1MyQ2VMeGVESTdHbzFHNlVqY01qTXprK1Vmdlh2M1BuSENGZ3FGK1dSL0pRY1AxVkJiWDA5alV6TW9NaklCQUFBZ0FFbEVRVlQrUUFzdFNWR0xFSTNGaU9reDlIaGM2UEU0aHRFNmdtajdodi90N3ZQNTVnSjkxS1doNkpURW8rQS9tQkEzbCtkemY3cDE2OVoxbWwvOW9vc3VPcGE3OXdadUF2YVNpTEcxRVRaQVdpVmRwbUVZeE9OeEdZdkZSRFFhbGZhMnE1YVdsdVMycStycWFxcXFxcWlvcUdEbnpwMlVsWldSa2ZIcFc4V1BTZGoyN3R0UDFjRnFhdXRzVVF2UUVuUllhckVZc1ppT3JzZUZyc2N4REJORFdpNG9pTEl6Qm54ZndHVDE2VkYwYXN3NGhPb1R1eFZPQUdWbmZyYSt5ZkpkMndIdzlmM2lwMzZNYU5XN0FGU2QrZVN4L05nbFlUTzJiVkQ1OTM5TFlxdThnWjFJQUNrUVVrZ3BNRTFKWEVMVWdHQmNhQ0ltTldKb0lvSkxoSENKSUc2WEg3ZXJDWStuRG8vM0VBY1haWEhHR1dkdzVtMGZmYXJmNTZqdDdmMVZCNmlzT2toTmJSMzFqVTAwK3dNRVdvS0V3bUVpNFVSY0xSYUxFZE4xZEQxTzNEQXdERk5JTXhGWGl4emNPVTNUdEhucVU2UG9NcGJiMGE3Nk80M0oxTHpmZW5mZ2p5ZVFtTVRqQTd5V3dlU1NTSmNFVFNLRmlSUUdramdtT2dZeDRrUmxuSWpVQ2Nzb1FUTkt3QXpUYUFTcGkvdXByYTJscHFibVU3K3VveEsyUUVzTCt5c1BjS2ltbHZyNlJwcWIvUVJhV2hMSkFxZW9XZFphc2w3TnlvQlc3M2l2bjhmai9wNjZEQlJkaW5CeklzbWdPTHhQNnVrKzY5bWlXYjA3RURkTmdtWTZ4RTJYcGtpS0d6b1JxUk9TVVZyTUNINGpUR004bUhSUFc0eFB0NEQ1cUZ6UlQvWlZjYUM2aHJyNkJocWJFM0cxWURCTXlKRUJqU1dTQmJhb1lab1NLYVdRU0swZ3Y4ZDNnUytvUytBVTh0YWFZd1NlMjBIa1g5VVlWYUV1OFpwZGZiUEpPSzhudWQ4Y2d0Yk5leFEvSVJON1MzMjVKKzAxZi9MWEozbUdhL241MWIxUDl0bkQ5L09iS0xpaWpzWXhMeE9PdGQ0aUVLTXZ6UnZ4ZFdyNXRlMlNTakNFTTVrQTBrUktBeE1CYU5JUUxpR2tTMnE0aFlaYnV2Q1lVYnpDamM5d296VTNrNW1aU2FVZVlhanIyRVB5UjdUWTlsY2RwT3JnSVdycjZtbXdrZ1dKREtpenNWMXY2NEphR2RDRUM3cHJ1aXJ0T1BYd1AvRXh3UlY3dTR5b0FSaFZRWUlyOXVKLzR1T2oveUU5ck43c284Q25lVzUrYitCUEpqZ3NOaS9nQWR3U3FRR2FCR0ZDV3BjMEtuWENVcmRjMGdoK3Y1K21waVlPNlUwYzBCdVByOFVXRElhb1BIQ1E2dG82R2hxYWt2VnF3WkF0YWpHaWxxakY0M0VSTjZ3c3FPV0NWbjY4dnBmSDQvNk9ldHRQUFNML3F1bXlyejI2cWY3bzd4eVBkc25mc2ZvZmovRFMzbUlLM0g1YUdnTzRoMDFrY0dBTGU1cjhOSWVMR2YrTm16aTM2UGhtZlh0NXV0MEVmSnpPYXBOSUNVS2FTRk1BQmxMR3BTazBZVWczY2FKb3VIRVJsaTY4cGhzUkROTGMzRXl0SGlWSHk2QzdLNHNzelhkOExMWkV2VnBOc2w3TkZyVkVFVzRzVVlTYkdCaHB1YUFtcGpSdEYxUVVGeFhkQzR4Uk1uQnFJUU02WmtPMHk3NStvemFNR2RDUDhwZnR1akcyZU9HWCtPcnM3M0xydHk4blkrTmE2cys5Z3h2dWVKQ1pZLzI4dmE3aXVEK2ZRSXdDcGx0V213L3dTaXZXWm1tTklHRzFZVnR0Y1dtSUdBWXhhUkNWT2hFWkl5U2poRUloV2xwYWFJd0hxWTM3cVlvMUhCOVg5RkIxTFFjT1ZWTmIxNUFvN1docG9TVVlJaHdKRTdXS2NHTkphODJ3dXd2c0xLZ0lIZGd4V2RPRXN0Wk9RVVN1cDJ2L0FvWkU2K3Evd3hIeGtKMmJtMWdha3BsUGRrNHgvZnNsZnVlYzNFemlrYy9OeGY3bUgvLzR4M1BUdUtSMmxsU2taa25qR09qRWlVa3JVMnJxUkNJUlFxRVFUVWFJK25pQVEzb3pOYnIvc3dtYkhvOWJMbWc5RFZacHh5ZnZyT0t2ZjkvQTN1WW9rVmcwVVlTcjY4U2pBZEhVN0Nlc3QzWVh6SnB4amN2bjlkNmI3ckUzLy9SNlNzKzdseGNQcE54UTl6SXp6cHZHUSsrbGNSMys3eWVNdldrWjVVcFRUaU95eVBqMUxmVForVFd5Q3gwWDdJVHp5Rjk5QzcxMzNrM3ZkNjZueHpmN3Q3bUlqM1M3NHZPblQ1OCtNd2VJN2hrT3E4MWpoYjAwYWNYYVpFTFlFdUxXSmtzYUowSkMyTUxoY0tJRUpCNmlMaDdnb041SVhCcWZYdGlTcFIwTmpUVDUvYlFFZzBSMEEwdy9GZVhWaEdLNm5RVWxiaVJNZGRsYWlLczk5L2pQN3dhKzNPR3p4ajVrMGE5ZXAvYW9YbUlMYTFaOVFNblVTeWhUMTh6cFl4Vk9ta0MzUzFNYTAwdkhrUC8wQ0Z3Yi8wbjlWWCtrN3BkMXVPKytuTzVmeXpxNjJ4VW5CRTNUSnE0KzR3ZFRIVmFicDFYY3BJdWt1TFc2cERwRzRwQnhZbEluR28wU2lVUUlHaEg4Um9qR2VJdmxralorT21GcjlnYzRjS2c2VWRyUjFKem9BdzJHaU1STnBBRFpjcENxeG9qZEJ5cmloa3k0MTFJS3BCUU41UjhNZHJsY2N3NzdyRG5aOE1aL3N1aWZMVWQraFhWdjg5SjdnNWg1VVM5MXhad3U1UFluNzRFQkdLOVZZanBDZWU1SlorS3AzVW56STl1SmJXOUUvKzgzYWRuZ3dqZXA3MUhkcmpoeGRITmwzZlRINHR2N09jV050clZ0d2xuYjVyVGFZc1NKeFdKRW8xRkNNa2FMR2FIWkNGRWZiNkU2M2tUQUNCKzdzRlVkU0hRWE5EUTJPVnFtd3NUaUpyaTdrWjhoQ2RmWEVkVGoxdURJNUtRU0laRmFYcDc0MXVabFB5bVpObmt5cFdNbU0vYWFlU3o2Wjl2QW4zZmdWZHd6R1Y3NjZYTnNQa0lNdXZhTnY3UDVDNWN6dWZCdzRyZVB6VnYyNFZmWFV5Y1RxQjU0Si9URjdTd0RHM3NSUmUvZFFON1lqa2JUdVBEY1BZSE11azAwLzNmYlVwTDQwdi9pME9WdkVZdWwvSWpQZFZTM2QwVUdYRDNuVTlXd0ZWODJqMXN2c3djM25zbVZjKy9tSEd0UHNmdWNPL251Tjg0NXhrYzBpUDdnZVE2TWFGdkRkaGo2bnA4eitHcFNFd2xDdUt4RFF4TkpxODFJSkJLSVc0a0VYZGVKeFdLRVpZeVFHU1ZnUkdpS0I2azdveS9oMzF4RXo5ZHZTaDVGLzNGbXUza3NiY285cW12ck9GUlRTNTA5dGNOcW1RcEhvc1RpRWt4QlpsRTNYQWVhOERlN1JKYTN0UThVaVFnZjJINUozYXI1ZDh4Nk5zWU5QMXZDczROaDYvS2ZNK2YreHpocjFVS21KaS93ZkNaLzc5dHN1T2JuUFBUY1ZieDZkMGV6SmcveHlpdjdHRDlyTEhuMnR3Njh6WUtmTG1OenJEL1gzUDF0SmdlZVk4N1NGc3A2dDdENXFWRTgrdFJNaHZtVXBweHd2SVZrL2VKaXNrdmp4RmYraytZTlJYVDd5Wm13SjRycmdiRkV2dk15TGRzTnFOcEg1TlVvK3A0T1lpVkR4OUo5R29SdS9RQzlhRkpLQ01OQU9nVFFOV0VjT2VPaVJPN2JkM1MzbnlZYzJGZkJDOC8reHhIdk4rbUtyL0hGOHk4NnFzZjBYVFNRZ3VlbUFoQmF1WTJtSDZ3OThzOW9ucHZlNlBmQU94ZnQvK2ttSUc0ZGlYNVNwQW5DTkVHQXhBQnBJSVdPSVYzRUVaYXdSV1Nja0JuREp5SmtHbDZhbTNiUXdCZW85NFNURzY1aWRhT1E3T3BZMkE0Y1RHUkJtNXFhQ2JRa0NuSERZYXNJMTVCSWFhRExESEo5UWpSR3drUTBqOUJNS1VpOE9NM3I5ZDZWZDk2M1diazhuN0krT1FCTW5IRTV3NVl0NDRNS21EckM4V1NGbHpELzdwZVo5S3ZIZVA2YXA3a2xYU0g0M3RkNTZlQW81cDJmay96VytxWEw0UGJIV2RsN0s0c2V1SXNadWRONTlybXJLQVBXLy9SZVh0bzVrMkVqbE02YzhMakt0UFBKcW4yVDJ2dGlaUHppTW9xdTkrUC8xbjhUM2dQaWExZFJjRVVQV3JiWFFkVWVBai9hMDhHajlDRDdKeU1Rci82ZHdJY0dUT3JBb252Z2VncG41Q044Y2VJci8wSHozMExIY1B1cFQ1LytBN24va1NlTzYyTkczNmpnd09Dbmp2bm5TbjA5cndIK0RlaUFMcVdNQzd2T1RhS1I2RXJBQk9LWVVwTkN4SVVoUlR5ZXNOcGtuQWh1UW1iQ0pXMm9yR0hIZFM4UXp5aG1lR2EvSTd1aSs2dGFYZEJtZjhJRlRmU0JKa1lSNllZRWFSQ1B4OEhud3lVa2hoN0hxdkxSN3YvYnJ1dUZFRmY2Q25Pby9jZGpUTHZ5U29hZU41blN5LzZERGJFWTZUek9rdW5mNXA2QnUzbmlwMytuTXMzdFcxZjlIZjlGVnpIZVlZSDV2RkM1WXg5YmQrNm1QT29sTDdDUHlnQkFDLzVBNG5iRmlVZjY0NGlpSG5oSEZlUHJDMmJNaDZjdzhXWm9lUzVrNE1qWkxOZjFFOGp0K3duK1grNXpXRjd0WFNMOXViOVJlKzFmYVBqaEx1U2tTZlM0cWNjeDNLNDRrYmlFZHRtbWdUKzV3T0dTZWxwcjI1SWRDWmhPbDVURTlGMWQxNU5kQ1JFWlMzUWxHR0dhakNCMWV1Q3dIUWx1Z0ppdWM2aTZwdFVGRGJaT3c3WHIxZUptUXRpTWVGekVEWUhISllRUk40VmhDbTFvWHFGTGM3bnZCQ2hmOWhDelh1ckZ3bC85bnFsRDh2RUYvczZNeWM5MThQU0R1T1dCcTNocDFuTXNlbU42cXF5eDdCOHhKdjlzRkU3UGN2VGRQK0RLNTVieHU0cEIzUHlySll5dWY1bTUzNzZMeGJRUUhUaUxKNGVvaStta0NOdmYzc0JmZEQ3Wk0rTEVubnFWNW0wOXlQdVBhUlRsdVlCcUFuY2RJWnZsTFNiN213UFFpcURIUDB1dHYySnVCTkR0Lys0a2ErbC9VZnVyT2l1bTJraThEdUxiNnpEUDZrdkJ0S0c0WC9nWDhXVE05UWkzSzA0b1BUM2RyaDJoOWY3WEZ2T2dibGx1VHBkVWdwQVNhVnJpSnVQU0ZDSWVseTZYQ3gwelVRSWlkY0ptakJZalFyTVdwc0Zvb1VadnBzaWRoMGU0MGd2YkFhc1h0TEdweVdwd1Q4eFlpOW9ON3JwTzNBQ2thWThqd2hRdU5CRVhwcFRDazkvdm04QTRhR0h6UDNlVE4rYWJUQitTbjNpR1FBdUh5dy80UnN4aS9wV3ZjL05UeThpTmVaTWxIZEgzWG1hTjd4S1dwcnFWdnY1TXZmc0hURTI2dEZmeDVBdFhFWTJDVDhYV1RpSWhvaStzSmZxQy9mOEEvaHYzZ2RjRnNhT29QWXJWMFRKN09TR254VDNxZkFwL2trWHcxcldFOS9qeFBuQTkzVXUzMFREN3c2Ukl5U2lKbkJzdXZBOWNlNWpiRlNjdFRJSDQ0cklCZDA4ZXNmZUJWVW1YRkd5WDFHcTVRaVJNcDBUNWg1WVlUb2t1VFhSY1JORUp5eGcrMDBPTEViRUtkMXM0cERmUnoxdlEvam5Ea1FpSGFscG5yTFVFZzRuQmtkRldhMDNYZGVKU0lqR0ZFVTh1T2haQ0NIRk5XZSs4RmlHK21YaTRITW9HNWxQM3IyVTgvOC9kYkgzdjd6eDAvMUkraUVHMFEzWExZZUxkMytaU2dnUmFyM0xXdmJTUm9pc3ZaOWhSbmp3bGFwMlVWRkhyVzBydXo4L0RWOWpleFRUMzFCSGY3ampxb2hDTkpyNWZGMFBmV0ljWU40YThiNWJpTHUyQlo5Slk4cTdJSXY3V25rVDErbUZ2VjV4TWVyaXpyNzA3NTh1NXBEVElKMXhScWFWMkpCaUdJUXpEd0ZrQ2ttaVVqeEUwSXdTczhVYTF1cCtJMmI0OVRtdFhzNVpjbmRjcWFyb2V4N0NHajVpbWFTMW1RVWlFZUd6dTJObGVXdlZuOU8wLzVLRVJoM2ppZTdjeDdZRVYrQytieGN6aE9VVHJEMU96Vm5nSjgrOGUyZnFITmZBMkwvMnpGOWRjMWw5ZEVhY2FmZnVUT2FrVVg5OWpMOEdRYS8rUCtoL3VRWHh0RWtWLy93YUZQeTVGdnJxV3hsOVdIOVh0aXBPSFFBeTlzK2VsbDlLMmFMZE5INmxkdEdzbWhBM0RTSlIvNk5MdUpVMklXOGgyU1kwUTlVWUwxWHBUKytmNzV6OWVZbGQ1UmJzRkxmNFd5eVZ0M1R3bG90SEVMb080WVFocFNtM3Jodi9OSDF4MnhqdHduSnNDRHJ6TjgvL01ZZXIwVVJTcGE2SlRjbURjeTEzNjlmZlpjTlV4bUJzRGp1cHVobUZRV1ZuSmdBRURqdnFodS9ET2d3NTU0NDAzMHY5aGtuTFBILzd3aHp1ZWYvNzVPaUFJaElDd0VDSm11YWlHRU1LMHRsbEphOUdMdExkWTJjdGVjbkp5Nk5hdEcvbjUrUlFYRjFOU1VzS2dRWVBhN0VodzE5VzNyMW16VnVjbHJEVnIwMVE4Ym1CWTFwcVVDWFV0R3pqZ2x1TXVhZ0I5THVDVzZVbzhGS2MrRXlkTzdEU3ZwWFV0Nk9kRzZhaFJveVk5Ly96eksrMVlteEJDeHlyL0VFS1lRb2prbWo3bjNsRjdXM3hPVGc1NWVYbms1K2RUVkZSRTc5Njk2ZCsvUDRNR0RhS3NyRldLTkhzcFN6RG9xRm16ZHhmWW9tYjV1NlpwQ3ROcW5kcjBmNnR5WFM3dEZuVnBLaFNLbzZWYnQyN1h6SjA3TnpmcGprcnBzZHpScEV1YVdOZHBDbXU3bGJCTFB4THJCeEt0VnZhbUs3L2ZUMk5qSXpVMU5ZUkNyZldLbWoxbkxSUU90NDc1dHVKcXVwNFV0bmJXMm9oaFEyWUJnOVJiZFhyaTZwVjFlcngyemFYZTdPT0lFS0xzdnZ2dXU1ajJTUVNYbEZKTFRONld3alJOTEdGTDFyVFo0bVkzeU5zejIrd1Zmb2NPSFdwOTJ4SWRCZ2tYTkdLTitVNjRvRHB4bzYyMUppMXI3Y2F2WCsxeXVWdzNxYmZwOU1VM3BxRHJ2dll2RkI2RENxcGFrZU5OZm43K1YwdExTNzFwckRiTnR0b3NjV3RudGRuaVpvODFDZ2FEQkFJQkdoc2JxYTJ0SlJKSkxIL1JuTmFhTXd0cUQ0ODBEQVBUTUszbExBbHJiY21UaTI0RVZPUFNhVXplUFdlVGRYVi9YSDJ6dTQ2bDFqZUw3T2xua0RkbjJOSC9rQ2RUdmRuSDMybzcrKzIzMzU1d05GYmI0U3czcDlYVzNOemN4bXB6Si9ZWFJOUEcxaEsxSkNhR1phMVpGcHZtZHJ0dlZHL1A2WTNXelV2MyswZWQ0cDlBRGJ3NTZzMytIQ2d1THI0Q2VOTVN0cGlVMGkyRWNKTklKR2d5Z2JES1BxUmhHQ0llajh2VVdGc2tFbWxqdGRYVjFWRlNVb0xiS3VXd2Q0SW1sVEZ1MVpFWXBvRXBKVkpLSklqUXdSMVRnQXZVVzZNNDVjbnNCa0o4L3M5akduQm9LN1RVbkRaYnNUUTRiK2VyaTBjTnZ1S09qWmJGNWtGS0hZRkxTZ3dTaGhTbU5ER2tnU0YxNG1hVXVCRW1IZytpeHdQRVlrMUVvZzJFSXpXMGhBL1FIUHlFK3BiZEhQTC9PeUZzeVdMY3VHMnRHUmkyRzJwS3BKbFl6Z0pTZUQyZUdlcUtWNXp5dUgzZ3kvdjhueWZVQ0pXYlFRK2RkcWQ0WU4vaVNjQUhTYXNOUEVJU1IwZ1hDRk1paFpSZ1Npa053OFF3VE9LR2lXNFk2THBCVEk4VDFYWENrU2pCY0pSQU1FeFRvSVc2eG1hMGFDVGhndXB4dlcwVzFISkRyYVFCVWlLYTltNFpJWVM0VmwzMWlsUGJuSEJCVHM4VDgxd3ROYWVscUFGNDNPNnIvdmUzQy9zbExiWkVuQzFsTndLWVVnb2pFV3NUY1NNUis5ZU5PSG84VGl5bUU0MVo0aFlLMHh3STBkQVVRSE9XZHlRTGNXMFgxRFFUYm1qQ1d0T3lzN091VTFlOTRwUzMxUEo2SitKcko0TG1BNmYxNlI0N1lzaUZwR3l6UWxvWlVva21wUlNtbEppbXhMQVRDYmE0eFExaThUalJtRTRrR2lNWWlSSUlobWdNQk5HU1RlNU9VVXRhYTNiQ0FMSHFUNy9MMERSTkNadmkxRVM0d0pzTnViMFMvejVSbk9hYjVuT3lNcTZZT1dWQ2htMjFTVnZjRXJQYUJJbVpSaUpodFVrTXd4UUpsOVNhL3FISGllbHhJcGJWMWhLTzRBOEUwZXdzcUc2NW9IYlNJR210V1NVZWt5NjY0RnFnbi9vRUtFNE5JZE1TMXBrM0I3SUxvWHNKYmZiOG5TaTY4RUxtNDBUSm8zTnZIWmZHSFhWSjBLUzBoWTJrMVJZM1RPSnhFOTIyMnZSV3F5MFVqaElJaFhIcnVJbmp4c0JGWEFvTUtZUWhCWVlsYUpacWF1N0MwdWtuSkVPa1VDaE9LM29XZEw4RWVOdGh0Ym1GeElXUVd1SXZrSlJTSWd3cE1Vd3BEZE1RY2NPUXR1V214MU9zdGxBRXJkVU5qU2RIaFNSYXA2UjlpTWJHeHVGQ2lNdlVXNkJRZEQyaWIvNkdvWGU4ek5aTyt2cmNMdGNsYTVjc1NFMGl1Q3lyTFRuT1NKclNLdGcxTGN1dE5kWm1KeElTVmxzRWQ3SnV6UkkyTTlrVG1oQTFRT1RrNUh4TlhSNEt4UW1rOGpXdXVQTVZ0clYrL01udE9aREowNmN4ZjBvSmh5MUVhZHpGaS8vclovejBNU2R3eWZndUhycnhLWmFsamtiem5NdmlsYk9ZZklTZi91THd3ZU9BVDFLc05oMkJoaVJSK2lHUXBta2xFcXpTRHp0ODFqYldGbXNWdHRha2dUWEZ3elJ0TjFSb21uYTF1dElVaWhPTVp4QUxmanVIRzNvQTZGUnVXczJjUjU5aWJ2YVBlUGJDd3pUeU4yN2pkOHVxeUx0OERHVW50SEhDemFVUFBzYXo0NC85SjNPek15Y0IvMDNiT0pzYlpOeXFraGFtRldzelRGTWFpVDVTbVlpM0dlaEdhNnd0SEkyaHBicWc5b0hWaUJvTUJpOEJocW1yVEtFNHFTcEh5WmdwM0R4RVovT1dHaXIvNTFkdDNjdnFONWcyN1JmODhyK2VZZXdEYjdCSDM4WGMyUTh6ZDVOMXUxN05TNC8vaWduVDVqRDArb1hNV1Z1ZDNFVVNyZHpFUS9jL3pNaHAzMlhvamIvZzloVzdxTFZ1Vy8vNGc0ejkwWitaZS84dm1IVGpmWXk4NHhtZTMzNk1kWGV4U3A2WjgxMnVXRnFaZU03R1RkeCsvWVBjL3FhMTRyejZJeFkrOE1qUVFmMzZEYlVFcmRVZGxiaE1LVFhEbENKdW1DSnFtQmlteE5RakhLenpVeCt6eXovQzdQN3czN3k1UDhUdURXK2gyYUtXTHI0R0NKL1BkNVc2cUJTS2s0MU83ZlozV0xiRHc3QWgrWlJjT0k3Uk5SK3h5bHJSV3Z2K1Iyd3RPWmV2WFhzbkczOTZFYVdlTTNsMHljTThPc2I2OFpvcWFvZC9nMWRYL29xMXM0dFp2K1JsMXJRQXNRb1dMZndMVzRmY3dOcVZqL0hoenliaFc3MkVPYXZyazg5Y1Z4bm0wbnZ2WSswZkZySjBURDJMWG5nL0tYeEhoYmVFVys2OUNQNytaMTZzOUxQdU55dlpQUHdxRmw2WUI3RUtGdnpvUlRZUHVZN1gvL3I0ZWM0NG03UXlvNENtQ1NGY0FqQk5Jb2JFTUVGQ011YVdHSzBHcG1IUzgreHpFNjZvdy8zRWJuYTNEazBJY2FXNnFCU0trNkZsdTVuLy8rWXdQeGxqNjh2RTZiT1pQeWtQT0lkcmhxeGs4WnVWekN2Tlo5MzZLc291dks3am1GcmZjN2xqVWpGNVFONlljeWg3K2cxcWd4RGQ4VFlyZ2lONGR1YVppVEg4SldPWVAvMGRKcXgrbi9JcGx3SlFPT0pMVEM1T1dJMmpSNVRBK21vcUljM1kvaml2UFRLSFVzZDNMcnpuNXl5ZGxJV3ZkQXFQWHI2TkdRdWZKQzlZd3J3bngxRUVSTGU4d1lyZ0NKNmNlU2I5dkZ3Q0xFMjEyb1JJZENJZ2hLbUJRRXJNaFBVbFRNT1VpVGliaGlIQnRGeFNkNnExWnJ1aGdBaUh3MU9BdnVvS1V5aE9kb3d0bFR3bWZ2bE1Gcnk4amZMcCtieTJJNThyYnlzK1dxODI0WUxxRUcwTUVDMCtpeExIMkxtaW52bjRHcXM3dE1wOG55ckc1bUhZVnk5aTlNc3ZVdjdsNjVodS9VN1JSaitCcGdwdXYvNTlnRDREQnZRZjhja24rOTVyRzJkREJ3UVNJWVFRbWtDYTFoUnowelN0amdRd3BVd0ttNVlxYXBhbEJpQzhYdThVZFhVcEZKMlRvdkZqR1YzelBzdit2b1hOSmVPWVduTHNqK0hya1ltdnVwcktXT3YzYW1zYWlQWW9QczZMbEVLc1g3YWF6U1VEOEwyMW1oZXR4V0crbkR4eWUzNko1U3NmWS92S3g5aSs4aisrbUdxeFNkbmFpV0JLaVNHbE1HV3FLMm9tRnBTYWlkSVB6UkkwZTZpYnNNczhMRGRVQ1p0QzBWbkpPWXRyaGpmdzRyS1BLSmt3Z3FTdWVUUHhFYUt5NmNoQmZ0K0lpNWp1Zlo5Rnl5cW9CYUxWbTFpd29vclJVODQ5cnFVaTBTMnZNUGV0Zk9ZOU9JZEh2K3huMGVOdlV3bjRobzlsTWh0WnRLSUNQNUNoTjE2VVlxMGxWL1JKcEdaYW9tYUNFRWlpRVYzb1JweHd3RTlkSEtTWnFHdHpweVlOYkRjMEZBcGRyTnhRaGFJems4WEVTWVB3YmZCejVYakhxUGFTYzdqNTNIZDQ2TTRmcyszQmhUeDZ1SWZ3RG1UZWo3L09nbDh2WmRJMFA5SHNmQ1orZFRaUFR2azBvOS9ieDlqZ0xCYTlNSWtQZnIyQm9objNjVU94QjJaTVkvSTlMekIzOVZrc256S01oVCtleG9KZkwyWENNajlSYjE2ZnkyWitlOGcvbHYzbmh5VDdSbkZKbVJnWmpoQkNBeUdsa0Y2WElLcEhPVmdmdytWeTQ5TWtwbFgrSVhyMjdFazBHaFd4V0l4NFBDNU0wOVNrbEM1ZDEzK21hZHAzMU1XalVCd2RuMmF2S0IrditteVcwS1kvTW1sNUNjdC9lUkVscDhoNURJWWlTM0xHWHZzaTBBSUVnS0NBTUlLb1FPaENZR2hDbUc2WEpyMGVGejZ2UjJiNnZHVDZmR1JsK3NqT3pFQkx6WWFTcUYvVE5FMmJwQzVWaGFMekVtMnM0UGtWMnlqNThybW5qS2dCWkdYNnprdm5pbUxOYWNOdXM1SlNKRG9SVEd1RmdaSHNSTkJTaW5LUlVvcUdob1pocUdVdENrWG5aYy9MWEhIck03elU0eW9XVHNrN3BYNDFJY1RacTUvNVVlOE94RTFJaVVDQ0thMU1xTE9IMURyY3FRM3ZKSHBETDFKWGprTFJpU205aXJVclQ5M2ErVEZubnprTTJHOExtd1NYa0dnSTIyS1RRb0tVZHUrb2RkaGJyWkpaVVZwSEZBbVh5M1dodW5JVUNzWEpvbnRlemlqTFNrdE8ra2djc2xXcnBOMC9LcE9WSFlaMWFLa1cyL2UrOXoyWEVHS2lPclVLaGVKazRYRzd6aHQ1WnIrVWh2aGtuSzExbEJHV0t5cmJ1cU5haWh2S3d3OC9mQUhRVFoxYWhVSnhFdW4yL0NQZkxYVmFiVExSRkovWUZpL0JtcTZMdEVRdE9kTElhYkZaQ0ovUGQ1NDZwd3FGNG1SVFd0SnJTSHRYRkszVkhVMFlaYVoxR0xJMUVhbzV5enhJekY0N1g1MVNoVUp4c3NuSnpqekhZYkcxS2Z1dzlVcGFXVkpwN1Q4MlpHS3NrV1piYTFKS2NlMjExN3FFRU1waVV5Z1VKeDIzeS9XRkFiM3lYU2tXbThzU05FMUtCRmh4dGpidWFHdU1UUUJpeVpJbFh3UnkxQ2xWS0JTZHdXaGI5dWg5L1oyaUpxMTlvemhXOHlYaWJNNmFOb2ZGQnBDUmtmRUZkUzRWQ2tWbjRjd0JmZHNrRUdnYlp5TTF6aWFsaVNuTlZ1VWpVYjgyUnAxS2hVTFJXZWlXbXpXRWRzbUR0bkUySEhFMjAweTBXYmtkWTRxRUVPSmNkU29WQ2tWbndlTjJENmQ5akMzWkw0cXpuaTNwanJaYWJPemF0YXNuTUZpZFNvVkMwVmtRUWd6NjVmZG01WFFrYmlSVUxWblBacnVsZG94TjlPblRSelc5S3hTS1RzZWw1NS9ieHhJeWErQWtHaEpoVDlXVldKVWRWaGVDbEk3c2dzZmpVY0ttVUNnNkhYMkxDL283ckxSMnRXeFlJNHhhdXhBU3dvYVVVcmhjcnJQVktWUW9GSjJObkt6TU14eWkxa2JZckRoYndpT1ZDTXNWRlpyZEl5cUVVTUttVUNnNkhSNlBlMUNLcUxrY0ZodXQ0cFpJSU5pdUtOWWR6bEtuVUtGUWREWTBJWVk0ckxUMkpSOXBFZ2dhSUdwcWFnWnp1SFdCQ29WQ2NTU3FOekYzem9NTW5Yb2ZjOWJyeC9PUmZTc2Z2Ny9RS1dqU21zZEdzdVREVGlBNExMYWNuSnhCNmwxUktFNVgvTHg0L3k5WVZBbFV2OEcwNzc5QjVURS9oczZhRi83Q3VwNVhzZmFsWC9Ea2VFL2JtN2UveElRYmw3SW05dWxlNGREU2ZrV2tMZEsxT3hBU2dxYnJCdUc0WmJHNTNlNHk5ZVlxRktjcExidDRzM0VnRjVaQTdaWnRSSWNQK2hUTFljTFVOdXFVakJqVVpxdDhrdEtMZUhMZUZNWjdQOTFMTE95UlY1ekdIUlZ0RHlrTTB4UzZBVzRwcGRBMHJWUzl1d3JGNmNaVzV0NzZJdXVDWWVwaUhqYmYrQkhSWUlDb3Q1SUpOZGV4ZHQ0NWJlTlRzVXBlZlByUExGNWZSUzJaRER0M0NndnZ1b0JoT1pVODgvMW5lR0pIbk5pT1JZeGRQWlpuRjEvRGFPZlA3bGpMN1kvb1BQcW5iekQremQ4d2NobmNVQnBtM1k1cWFtT1pUTHpwTmg2ZFZJeXY4VzFtM1BvT2VSZG1Vcm05Z2RvbUtQdnlOQmJjT0tSUFcwc3RHVjhUSmxKb2dHN2F4bU0wNFlvS0lRYXFOMW1oT04wWXhxTy9mWVNWTS9veWF1WjMyZmlIT2R4Uk1vajV6enpDVzZtaVJvZzFqei9ERTQxamVIYkpZMnhmY2lmWEJGY3o2L0ZOMUZMQ25iKzhqL25EM1l5NmFSNGJVMFV0SFRVTk1HVVdhMy83Q0cvZE81RDFTMTVtVFV1cmE4endHMWk1K0dFMlBqT05vdlV2OHBNM1E3MHR5Nnk5dUFGU0NPRjJpY1FkM043RURVS0lBZXBOVmloT1IzUzI3Z2hRZGtZeHRGVHlRYXd2dzNxa2MxZTNzR3g5SnROdnVvaGhPVUJPQ1RmY05vNjg5OTloWGVPbmVOcWVaM0hOaU1UYXdMelNNeW1MTlZBYnRHOHM1c0l4QlFsaDdYRU9kMHpJWmVNN08wbzZFRFY3c1Fza0J4VkozTllOU3RnVWl0T015dFhQTUdOWkpmNm1NR3g1a0hXRXFRdDYySHhyQlRjLytEM3VkQWFvbXZ6VVVrQnBUNmM0OWFXRWo5alRDUFQ0REMvRXlqTkVkU0JOREs2b09BLytIZW1YWXJFSkNacEltYVpyeTV1MmE5ZXVZaUJEdmMwS3hlbEZ5WlE3ZWV1WmFZenYreVdXL3VFUlhwMTVKbWRkZFRjYmY1c2lhZ0RkOHlpaW5qMDFiZDNKV3ZJbzdmSDV2czdLeWdiSXpzMzQyYnhiY2pxMDJGTFFDZ29LZXF1M1dLRTRUYW1wb0prdkJxQUFBQ0FBU1VSQlZMeTRoREtnZkU4OUphWEY2ZStYTTRLWjQ4T3NlT0Z0dHJZQUxaVzh1UFFOYXMvOUVoT1B1N0JWc2VwL0svQUQwY3EzZWVMTk1PTW5uTWtYQjUrUjV4Q3kxbnEyRktScDR2YjVmTVhxM1ZVb1RrLzhsUTFRTW9ZOC9KUlhlaWliNHVuZ25sbE12dmRPYXAvK003Tm1yOFFmeTZScy9CU2V2V3NNUmNmOVZlV1NWN21hYWRmdm9qS1d4K2dwTi9Eb3BEeWFkL2ZJNjhCYWExMUdKUkNHYVVnUmpVYnY5SHE5VDZ1M1dLSDRiQmlHUVdWbEpRTUdIRVBJK3VOVjZzUTVhWHliR2JlK3o1Vy9uY01OS1paZ1pYWGRnbjVmdnZrZElHQWZBa0lJSWdJUkV3SkRFOEowYVpwMGE1cFdwTTZtUXFIbzdHUmwrUEljYm1nYlM4MDU1UU1rbXFacEJlcVVLUlNLem83WDQyNFhZeU5kakExd0N5SHkxU2xUS0JTZGdoNFhzSHpsQldsdmNydmJDRnY3UXlKc21kUDRiQlVvQ29WQ2NVSndhVm82VjVRMlZwdFZxS3NCZWVxVUtSU0t6bzZtaVJ6U3hkWmtHM0VURXRDRUVFcllGQXBGcDBlSTlzS1dhcm5aWFZVYWtLMU9tVUtoNlBUQ2x0QXFwL3VacHV0QUpvVXRTNTB5aFVMUkJTeTJ6QlJSYzJpZWJDTndHcENwVHBsQ29lZ0NaQnpHRFcxanRXbWs3YWRYS0JTS1RvZTN2WGVhVHRaUXdxWlFLSTZHRUp0WFBNT0U2Ny9MME8rL1J2bkpFN1oyQ1lOMkFpZGI1NGNyRklwVGxTMS9adExDajRpaXMyN1JRdVp1K2hRYnBDcmY0YUZsZmlZL3ZKRHR2N3lVNDdja3BaNTEvL01HYTZxUDZzNnV3MWhzMWtaNE1HbHRTMUFvRktjb1d6ZFZVRFJtSUQ2cWVHMVBNUmNPOFJ6N2d6UTJVSnZkbHd1SEh1OWNZd092clZqTmEwZTNGa3ZyMEVxelRMWEVKbmdRVWtxcDNucUY0clBUMmFaN2xQL1BrOHhZVVlXL1NjZlhQUk9mbmxqYVVwamRrNXQvM0g2WVpPMm1sNW43bTNkWVg2UGo2M2ttMDJkOW5mbmpDNGl1WDhxRXh6K2lMZ2k1MlptTW4zMGZ6MDVxVy80YXJkekVnbCsvd2lzNy9FU3ppNW40MVdrc25ING1SY0M2UmZjeE4zczJHNzkxWnVMTzYzL0QwTi9rcy96SGVTeTRmeTFibThLUW5Vdlo1YmZ4NmxjcjB5NXplZlMyY3lnQnhQQ3AwNEFnaWVrZWZxQUZDQXFJU3RDQk9DQTFFcGFiUXFFNHhTajc2aHcyL3ZZbXB2WThoMGQvK3dodjNYc09mUytjemNZL3BKbVFXL2thc3g3OWlKSlo4L2h3NVM5WWUxcys2eDVmd3FJOTRCcy9pNDBQanFPdys3azgrYWRIMm9rYXNRb1dMZndMVzRmY3dOcVZqL0hoenliaFc3MkVPYXZyRC84Q1N5NWw1UjltTTcxN0psUG5Qc0tyc3daYU43UmY1dkxRV2orSDFTcVJtQk9lR01xbW9RR0d1Z1FVaWxPVW1pcktldzVpbUJmS3QxZFROcnh2MnJ0dFh2ME9sY09uTUc5OEFUNDhGSTJaeXJ6aERheFlYWEhFcDRodWVac1Z3UkhNbTVtdzBId2xZNWcvdlMrYlY3Ly9LWk1NN1plNXJIOXJHLzcyV3RXK1Y5VENEY1JJcmxOUUtCU25CbHQ1Nkk2L3NLYkpUMTBzazJrM3JrN3NETTEraEFudlQrUFZlV1BhTkluWE5vYkpLeTV3ZkMrTGtwSmMvSlgxUkJtWXNvb3ZSZGdhQTBTTHoycXpLTG1vWno2K3htcHFqOE52a2xqbUVzYWYwS3FqUXVNWTdxeFFLTG9LdzFpNCtHR1dmam1mQys5NmtJMS9tTVhVbmlNU0xtbUtxQUVVOWNqRVgxMlBQL2tkbmNxYUFIazlDZzRyYWdDK0hwbjRxcXVwZENoSmJVMEQwUjdGaWJIaG43R2d6RnJtUWw1N3JaSXBYOXNJVzFoZEJBckZxVWlJOG1vb0s4bUN4bXJLdmNXVWRTQXlvNmQ4aVpKL3IyWFJKajlSRW9tRUo5N1BaL3FVZ1VkOEZ0K0lpNWp1Zlo5Rnl5cW9CYUxWbTFpd29vclJVODZsRENncHljZS81U1BXTitwRUd5dDRmbldGUTZFOCtMdzZ0VFgxUkpQZlM3L01KUThpUi9Wcnk0UXJHbElYZ0VKeEt0TEFCNVVGbkZVQzdLMml0dWVnanV2UFNpNWw2ZHd3YzMvekNDTWZzYktpOTg1bVh1bFJQSTEzSVBOKy9IVVcvSG9wazZiNWlXYm5NL0dyczNseVNtSTRkOW5sMTNIUGxxWGMvdi9XRWUwK2dLa2o4c2xOL25CZnJwa3lrRm0vZVlSSmUrN2tyWm5RMFRJWEtXVTRqWFhtK0w5QUNJa3BUU21rbEI4QUk5VkZvRkI4TnRReWwrUEFZWmE1bUZKdWNZMjQ2b2UwbG5zNEY3cEVCVUlYZ3JnbWhLbEpLZjNxYkNvVWlzNk9sTEtsWTJ2Tm5wMmJRQU9Vc0NrVWlrNlBhY29XaDRESmRJSm1lYVM0cFpSTlFnaDExaFFLeGNubk1NdGNETU1JSE1aaWMrb2FtcFN5UVoxTmhVTFIyWWtiaGovRllwUHB4VTJnU1NucjFTbFRLQlNkbldoTTkzZmdma3JIdWdNQU5NTXc2dFFwVXlnVW5aMVFKQnFnZld4TnRuZEVRZE4xdlZxZE1vVkMwZGxwOGdjN2NrV1RZbWRuQzl5UlNLUW1KeWRIblRXRm9oUHh5WUVhZFJKUytHRDdua0RIb2lhdEZhT0pRV3p1Z3djUEhpd3NMRlJuVGFIb1JBem8wMU9kaEJTcTZ4dnRjZy9URmpXUjhENmw3WUlLSWRBMGdUWnk1TWdhanJZSFM2RlFLRTRPa2JtL1dobzZqQ3Y2Lzl0NzgvaW82bnYvLy9VNTIreExsc2tlRWhLV0VFUkFLK0R2aWxoLzZOV3FiUzlZV3JTOVNsdSthUHVyMUc4TDFRcTl0cUJ0b2N0RmJ5dFdyMWhic0ZxZ1ZXcFJSQlRVRmxjVU5TeWFSQ0FRUXNqQ3pHU1ptWFBPNS9mSG5IUHltWk16U2JCc3d1ZjFlQndUQW1hWk0vUE02NzE5M3RUYUNZKytvM2IzODhlTmk0dnJUQldsOUlBTlpEcmozREpFRExCUlN1aysvdEJ4Y1hHZHFkSjAvYUFOYWhsdXpkeVliQVNrYWJEcHV2NHhmK2k0dUxqT1ZDV1Rhck9EWTNOcytTQWt2Zk9BYXByV3lCODZMaTZ1TTFYeDdwNW1oeEEwYSt1SGxLWmhza0ZSK041a0xpNnVNMEVwYkZqNkE4eC9UVTMvc1dBYWZuN0haMW94aEJ3YklTUmRHUVZBT3pvNjZ2bUR5Y1YxWmluUjlCWVczWGszeGw5M0cycSs5a3NzMk56RW5ESTdORURVYlg0ZWEzZWZyTE5rVzdCcDdTdlkzbkdpUDYrTTZ4YjlDcnZXL1JMdkxCZ0hCVUJEL2I0MkJtWTIxMmFPVXhIcnZ3SUFXbEZSOFJGd25JOFpGeGZYeVZQeVF5eForaVIyVk0zQStzZC9oczBMejBmVHd3OWd3ZmJqZ1ZRUGRyeXdFV3Yybkt6VC8xdXdiczFMMk5aeGNqNjdTNUVSVEFlU2lUdSt2N3pEN3RRSW9JTms5TFNsQ3dna0hZcWExbTRYZ0FuOEdjWEZkZm9WM2Y0U05tQVNIcDE3ZnZvNDczRlhZT24xYitPYXA5NUQ2NVRKaURpY05MdHA2Zi9Ga3NMYjhQTGNTdXg0OU9lWTkydzdvbDBxa251V1lmempBT1FSV0h6ZlhGeWZBMFEzUDRCSmF5VmNWOWlPSFEzdGFGVktjZjNjRzdGNFN2bzQ3OFMyaHpCK1RTSFdyL3c4YWdFQUgyTFIxeDVHOUxzL3gzMFh0dUNSTysvRGlrWVZpVlFQdHY3d0IxZ053RFg4YWp6KzA4dXlIeitlb1c1c1g3c2FTNTdhaGZvdUlGZzJCblBtZmhtM2pnczYvRnU2eHdZMUhZQk9BUW9LQ3FTM3ZoTmlMQmFsZWpySGhuUmx0RTRRQkE0MkxxNHpRRTBOTFVEVlpBTXFhVldQcmtUd3FROVJqOG5wN1U4RGFPTE5QOERyTjBleCtzNjdzVzdLUXF6L1FsNy9mOVNwWXNLaS80dmxaVEphdHorS0dmKzlHbFVyYnNPTmhZTjlkNFg0K2svdndkZXhFL05tUEkzcWV4Y05iVGNDRzJhL3RSNjNQUVVzL09uUGNYMVpDblViZjQrYjcxbVA2b2R2eHBXMkNVOWQxK3ZSUDdlbUE5Q0oyWlJMUVRWS0lZR0FDQ0lFUWdnRlFGVlZyZU5QSnk2dU0wT0pMaFV1UmNwY2ZlZVQ0RXFwSnk1blZEQUNVOHJTSzRValU2N0dEUVVmNDIvdm5hSUR0UlVacmxRUFdqdWlpTUtMMnF1L2ljMFB6TUkwaDdGMVhVdnVRLy84R2hPQ0Vpb1FBSlJDQTFNOEFFQjdlbm8rNEU4bkxxNHpReTZmaEVUU0JyRXVGUWxaR25UUDV5ZFRBR1U1UUxUejFHempkSTJiZ2NlL093YTcxanlBNlYrNUM5UC9hejAydEtpT1AxdXlOMzdRQmpRTjlwWVBRaWhKVDhKVFF2cEdxdWpldlhzNTJMaTR6aEJWMXhRQ2V6NUVYVVo0Mm9SbzJVZ2poeVVEU0NGeHd0YWR4OURVQWdURG5qUjRGQm11Vk9xa1ZSUVRMUzFJakw0TTkvMTBFVjcvMDEyNGIyb1BWdDY5R21zZENoSFI5Z010QnNBMEJtckdaVlJFS1FVRklCQ1N2a3ppVFo0OCtTaUFEL2xUaW92ckRIQnNGMXlCNitYWHNlU2hPdFRIdTlHNit5VXNXTnVPSzc4d0xwMWZ5eWxGYmNGQi9PM2xKa1NSUXV2dTU3SHFmZFgyV1R3b3k1RlIvL1l1MUNlQlJEeUtLQXZDSXp1eGFYYzNnQlRxTnorTlZVY3FjYTJadkI5ZWllcU9YZmpiZTkwQXVsRzMrU1ZzNnJSL2wwR1U1YlJqKzl0TmlBS0lkblFQR1lTdDI1L0FOWGMrZ1UwdEtRQmVSQW9EY0NYN2c3UTNnWStPSGQ3Wmc2eXRIdWxMcHdDSUFKbWtpd2hXOFFDQXJ1djYyNElnak9SUEt5NnUweXlsRWdzWHpjS1MzenlKYTJhM0ErRlNYSG5EclZnK3hXdjhnekxNLy9abG1QZmZ2OEtFMzhzb1BlOENYSGxlQUUwWm4wVEd0SnRtNE1wN25zWTFNNThFd2hXWWY5ZjNjR3VOOGRjK0wzWTkvaXRNZXE4ZDBaeEtYTC93eHI3Q1FlRy9ZZWxOSCtLMmV4WmhWZEtEQ1pkZWdDbWw5bSt5RXJmTW5ZeDV2L2tWSnZ3ZUNKVCtHKzY3YnlhbURhSFh2K3dMTitQQmp2Vlk5djBmNExZdXdGVlFpZXUvZTZOUjRlMXIwS1dVZnVBVWhwSjBWVlNuNmVQWEFFS29MS2JkR2lFRVJCUkZXZGQxQ1lEYzA5TnpxOHZsK2hsL1ZuRnhIYjgrVFF1VG81c2Z3S1NuUitDWis2NFlZbnZHNmRIaG94Mi9MTDdzUDE5RmVrbHlISmxMa25zQmtoSUlWRUtJTGdrQ1ZTU0JLb3FjenJHWmxkRm9OUG8yZjNweWNYR2RLZHJkY0dDZnphMnhPVFpLakpFcW96R1hrblNPalFwc25EcHIxcXkzRFNweWNYRnhuVzdGdi9hRDVTM0lySVJtZ00yOENDR1VrTDRUZENWQ2lIRktPUFN0VzdmcWxOTHRoSkRwL0RIbDRqcDdGWngrSzNhZjRhOXlWZFBlYW1ydDdBYzFZNVNLQXNSd2JlYU1hQnBxYkI4YmpMZTZxcXJiK1czbjR1STYzWXJHdTk5M0NFUFpjSlNtWTFCWWJvMlk3UjdHSDZpWlo0dkZZcS96aDVTTGkrdDBhKy9IQnhzR2dockpPRG1YUUNCR0g1c2dJQ1BIQmtELzFyZSt0UjNBTWY2d2NuRnhuVVlkKzhhaVh6ZGxnWnBEamcyVUNBU0NRS2dnR0k2TkVYM3l5U2RWWGRkZjVvOHJGeGVYa3lnOStWOGpwYXF2MVRVZVlzTlFOUk51Zldld01lRW5DQkVnRUNGZFBDQ0VtSDF1RklDZVNxVmVjYmxjMS9KYnlNWEZCYVM3WVErblBEaVNVS0NCSUo3UVR1clhhMnRyMjVrdERLWHBBZ0tsNXRRQkNGS1VBRlFFcUFpcWkybXdBVll2bTA0cHBTMHRMYThNR3phTTMwMHVMaTdvRk5nUkN3S3VBUHg1UWZoOGZoU2U1Sy81NFVkL3IzZUFtZ1pBTTFsRkNLRkVFQ0FJQW1SWmhxSzQ0SEs1NEhhNzA4Y1dtWVVEMDdGVlZsYnVCdkErdjZWY1hGeUhVMjdBRlVCaFVRbDhQdjhwQ0hWcDNkeHZmcjNORm9hcUJ0UnNSeGFaUFd5Q2tWOUxnMDRRQkFGTW5zMkNtNnFxVy9ndDVlTGlPcEpRNEE4RVQ5blg2K3JxZWczT3ViVytpbWpha0JrdEhnSUVnY0NDbWloWTdSNW1LQXJqZjlTajBlaEwvSlp5Y1ozYm9oVFFxSkRkcWJWdHg4cnZmUVdmdS94aVRML3FQL0REdnpjREFKcWYvQ1l1dmVSaTQvb20vdHc4OUs5WlgvOVJIVEx6YTdiQ0FYVExpQm1UQm9JZ2dCaFFFd1VSa3VuWUdMaFJTcW1lbjUvL2lwN2V2bHpLYnk4WDE3a3BRb0I0VXN1U1U0dmg1ZnNXNDFsOEN5dWUrZytNVkdLSUlRQUFLSjcxTUxaOUlZRkUrOSt4NE1abmp1ZExIcnIyYzFmdHQ0V2d4bVVQUXlrMFZZY2twNkVtc283TnNHOU9TMGMxVGRPZTQ3ZVdpNHZMV2MzNDRNTWthcS8rSEVZR0FMZ0NDTEJINExwY2NCM251dUtlbnA1dDJkd2FJZENRc1hLUFVsM1hxSjUyYkZRUVJJaUNDRkh2N08vWXpMbFJBSG9zRnRzY0RvZS96bThnRnhjWEUzOWk0NTMvaWZ0M0pKR01KNEZmWEl2UC9RS0FNZ1YzL25rSnBycUc5amxlKytNeVBQamtkdXlQS3lpYWVBM21mZis3eU85c2ZOY0dOYXR3WUxSNTZBUklBODM0VE1sNEhPM3hPQVJQQkZWbFBvakVuUWFiZWVtNm5nRzMzTnpjelR3YzVlTGl5bFFlcnY3cE03Z2FlN0h5aHJuWS8vVy80ZDdweDdlSllkK1RQOENQLzE2Qk94L2NoS201Y2J5MjhuYjgrSHUvUGZUZTFwODBHc1pLdFlNTmxPb2doSUlRS2dvaVJLSWhxUko0d2lFRWpUWVBVUlFnZW5JZ3BDMmNrREV2eXBSVWRVM1ROdklieWNYRmRlSzBGeHYvK2lGcXYvcGRUQzEyQWE0OFRMN2xHNWg0OU9tWDRKaGI2ejlLUlVoNk94VWhBREhDVUVFVUlZb2lSRW1DSUlxaTVkak1rQlI5Ky91MHpzNU9Eall1THE0VHFIYTB0L3RSVkJ6bys1Q3JBZ0Z2MjQ1c1lhZ0Z0NHcyRHdBZ1NFTXRYUTBWUlJHU0tLYkJac0tOZ1pyVnp4YUpSRjVCZWtzOEZ4Y1gxd2xRTG5KejR6amNGck0rUW51Yjkvem1qUVAyYW1qS2hCckpQREhYT0NrMy9mK3lVQk5GQ1pJVzY2dUttbStaWTR5c0FkUmtNcm1CM3d3dUxxNVBySXcxZ2FOdzlSZEhvdTZSMytMbDVnU0FOcnp5MndkZVF2OUpnNHpDZ1hXd3BNRW9RUlJBb05ORWtrSVVDWFFLU0pJSWljWWdzWTZOeWJVUnBqcXFIVHAwNk8rVmxaVUwrZDNoNHVJYWlwcWYvQ2ErZkYvZnF1SjNicndZOXdPWTlNTk4rTVhuQXFpWTlYUDhWOXNTM0QvdlN2dzRya0FMalhqWHdhM1pHM01wVE9NbENCQmtCWDZ0Ry9HT0kyanNKSkQ5WlJpWG13TTVNQkpreElnUjZPM3RSVzl2TDBra0VraWxVa1JWVmFMcnVrQXBsWkRlek9wU1ZmV1BnaUJjeVc4WkY1ZXpQazFicW9ZcVNvRzNZMkVVVnB5OHJaeXFxcjQ0dktKc0pZQmU5RzJqTXE5dVFrZ0NRSW9Rb2hKQ2RGRVVxU1RKVkZFVXVOd3U2bmE3NFhGNzRQVjY0ZlA3RVF3RUlFaVNaRHEyak9xb1BSenQ3dTUrbWo5MXViak9MUkVDU0VSSFY5ZkoyL0hVM0h6b1ZZY1FOQVZBSllSa2JxVXkyQ1FJQWtSUm9GWnVUUkloU1JKa1NZS3NLSDNGQTNzUndWWWQxZSsvLy80TkFBN3dXODNGZFc2cFFFbWdLM1p5RHRXbWxEYjkxNDhXNzJMQWxyS0ZvVHJNSTRyTW5RYlcyRlFmdHlSUlNvTk5scUVvU3A5alkvTnNnaUNBb2FNT1FMdnJycnQ2VXFuVU9uNmJ1YmpPTFJVcENkQkVIRWVhbTA2NGM0dkg0ODg5dittNWxKTmJBNGc5djVhR216RVhhb2VhSk11UUZRVXVsd3VTSktVL2FQd2pLb29pMFRTTkNvSUFUZE1vNDlyVUF3Y08vTFdxcXVxNy9GWnpjWjFiNGVnRmdTaU9KTHB4dUMyTzJGRVJYY2tUYzRMdUs2Kzg4bllXdDZZQzFCeDhUM09JR3RKMWFKcEdOVTJGcXFhUVNvbElKa1ZJdlNKNlpRazlMcVVQYkV5dWpRMUhNMlpIUjR3WXNVdFYxZldDSU16Z3Q1dUw2OXlDVzZGYlJhRTdCa3FCekZVcG4weUpaT3B2bHkxYWROVG0xRklBVWdSUVFjd3dGRlFnb0NJQlpCRlFKTUN0RUhnVXdPc0N2RzRnNEFWQ2ZpQTNDQlRrQUlJc3k3QzVOdGdINDQxUkt3M3BTUVFlam5KeG5lT1FPeEhhM1hqZ1ZRZTNsdEhta2JGaXp6aDNUUlRUb2Fna2lwQWtFYklrUXBZa0tJb010MHVCMStQdUE1c29pdVpiYW9hbHpKSGhWblUwUHo5L0M2WDBWWDU3dWJpNFBxazBUZDgrWWViOHhnSGNtdFozL2xyYVhJbUVVRkVnRUFXUlNxSUlVVXpEVFpZa0tMSUV0eUxENDNiQjczVkRVQlFGc2l6RDd0eHNEYnRXRVFHQTJ0WFY5UVMvTlZ4Y1hKOVVCdzYzdmpDQVcxTU50NmFUOUpaM0toQkFFSWpoMUFSSWttQTROUkdLTE1GbHVUVVhBbDVQSDlnY2lnam1pRlhHN0NnQWJmcjA2ZXNvcFh6WkN4Y1gxM0ZMcDdSdTZsZS8vMzRXdDJiTWgvWVZEZEpnTTl5YUtGRFRxYVhiTzJ4dXplTkdNT0NENEhLNWtBVnVHYTZORFVkZmYvMTF0YmUzOTNGK2k3aTR1STVYUjlvNm4yMXE3V1NobGpTdU5OU0llWkpIdW45Tk1QWWFtQzBlYkc1TmtmcmNtcy90UXNEblJZNGRiRGE0c2E3TlBoaXZybG16NWtrQTlmdzJjWEZ4RFZXVTBvWWYzZitISFlPRW9kWkp1UVJBMnEwSkVNVjBiazJTUk1paVpCVU1YSVpiODNrOUNBVzh5QTBISUhnOEhqakJ6VlloWlVOU0RZQTJkKzdjYUc5djd4LzRyZUxpNGhxcVdqdWlHeDVhOTN6Q3lhMFJJR1VVRFRUQVBFZ3k3ZGhFVVRDS0JRSmtVWVFzRzdrMTJZQ2F4NFdBejROd3dJLzhuRkFhYkc2M3UxODRtcVg5STZQMVk4T0dEVThBYU9DM2k0dUxhd2h1clhIWncwKytaWU1hNjlqNldqelNSUU1JaEVDMGlnWnB0MmJPaENxeURMZExoc2Vsd08vMUlCVHdJUzhjUUZGZURnU2Z6d2UzMjIyNU5oWnc5dFlQVzY1Ti9mS1h2OXpSMDlQekdMOWxYRnhjZzdxMTltTlAvL0t4cDN0dElhanAxbFNRdmhWN3Bsc1RCVUxUYmkwZGhxYUJsbGtKOVhuY0NQZzh5QW1tM1pva2lSRDhmais4WG0rR2F6dWUxbzgvL2VsUGoxTksrUW03WEZ4Y0E3bTFQWGYvNW85dk9rRE5kRzBPTFI1RzBVQVVqUllQZXpPdURLL2JCYi9QY0d1aEFJcnljd0FBUWlBUWdNL25nejBrWmVEbTFQcGhWVWkvOFkxdkhPdnU3djQ5djNWY1hGeloxTnphL3ZRRFR6NDNXRzR0b3lGWE1OeWFKQXEwSDlRVUdSNlhLOE90UlhKRGNCdUxUSVZ3T0F6V3RRMVFKYzNxMm1iTm1yV0dVdm82djMxY1hGeDI2YnIrNXZSdi9IQ0hBOVFHY0d1QUtCQklnamxkMERkaDRKSmx1SlYwTTY3ZjUwRTQ0RU5lT0lpaS9GenJhd281T1RrSUJvT1dhM1BLdGJHdWpka2FiMjFyM3JoeFl6SWFqVDdLYnlFWEY1ZGREVTJIbjluVmVFakY0SlZRSFNCVVNCOGtTVVZCZ0NTSmhsdExRMDJSbWZZT2p4dEJueGM1d1FBS2NzUHdldnAybXdyNStma0loOE1JQkFMd2VyMFczRXpITmxUWEZnNkhOK2k2L25kK0c3bTR1RXlsVlBYNWtaK2J0OHZCcVEzdTFzUk10eVliQlFPUDJ4aWQ4bmtRRHZxUW54TkVVU1FuNCtzS0JRVUZ5TTNOUlRBWWhOL3Z0M0p0RGhNSkE3azJsUkNTT25Ma0NIZHRYRnhjbG5ic3F0K0V6R1pjQzJ5R1cxT0g2dFpjVm51SE1Ucmw5eUkzRkVCQlhoZytqenNUYkNVbEpjalB6MGRPVGc3TVFzSlFjbTFtTVlGMWJjWEZ4ZjlJcFZJUDg5dkp4Y1hWMWRPN1p2THM3eCt3UVMyUnphMEpSaVhVeWEwcHNnU1h5Mnp2Y0NIZzkxcnRIU1dSdkg1ZlcvQjRQQ2dxS2tKZVhoNUNvVkRXUW9KVGhkVGUxMFlJU1gzd3dRZVBBVGpJYnlzWDE3a3JDaHo4NitaL2JvTnp3WUIxYXhsOWExWWwxTzdXRktOZzRIYW4yenY4WHVTRmdpakt6NEhIcmZRSEd3Q1VsSlFnRW9tQUxTUjR2VjY0WEM1a0c1TFBsbXViT0hGaWZYZDM5NFA4MW5KeG5iczZjclRqeWEvZSthc09tMVBMNnRaSWhsc1RNODVaY3lreVhJb0NyMXVCejJzVURFSUJSSEpES0NuSWMvejZBZ0FvaW9LaW9pSmtLeVRZcXFUVW5FcXdyK2d6WGR2VXFWTWYwM1g5Ulg1N3ViZ0drZUk3NjM0a1ZkTmUvc3lYYm50akNHNU5NOXlhYms0WlNFYmZXcjhxcUhFeWJzQ2JidS9JRHdkUkZNbUZJa3Zad1FZQTVlWGxNQXNKWmtqcVZFaGdoK1NaR1ZLZGRXMDdkdXhJSGpseWhPZmF1TGdHVTZqa3JQdVJkdTVwZkthcHRkTStYWkFBa0NETUJpckRyZW5FT2tTU1dFNU50bzFOZVR6cGszSE4wenNLOHNJb0w4clArajBJN0IvTWtOUjBiUVAwdGxtdWpabElZSjFicXJpNCtPVmtNdmtiL3N6bDRocEFrWkZubFd1THhyc2Z2WERXN1I4YmJvMkZXdC9BZS8vejFxaElDRTBQdUlzMGZTcXVuT0hXMGhNR1hvU0Rma1J5c29lZ2ptQXJMQ3pNR3BJNmpGdFJTWkl5Q2dtc2F5T0VKTGRzMmJLS1VycURQM3U1dUxLSUNFRDFwVUJPQlNCN1B0VS9pcTdUZHgvNDB6UDJnb0dWV3lOQTBneEJtZlBXcUdDRm9HbW9aWnlLNnhTQzV1ZWlNQzg4NFBmU0wwQXRMUzFGZTNzN290RW80dkU0ZW5wNmtFZ2trRXdta1V3bWtVcWxvS29xVkZXRnBtblFOQTI2cm9OWjA2ZFJTZ1VBNnRWWFgzMjRyYTN0d2R6YzNKWDhHY3pGbGMxZWlFREp1RS85ai9IaG5qM3I3L2p2eCtJT1VFczdOa0xTQlFOQ05DTjlSUVZSaENqTGtGd3VTQzRYWkk4SGl0Y0xsOThQZHpBSWJ6Z01mMTRlZ29XRnlCMDJEQVVqUnFCMDNEZ2dGQnE2WXdPQVVDZ0VwOTYyTEkyN0dTRXBISnAyOC9MeU5xWlNxWWY0czVlTDYreFZQQjVmWFZOVHM0Y0pRVE9nUmdoaDErcnBBTktOdUtKSXpWWXlXWmFoR0p2YzNXNDNQQjRQZkQ0ZkFvRUFjbkp5a0orZmo1S1NFb1FHZ1pvajJJQjBJY0hzYldPSDVMUE5rdHFhZG5WQ2lOVnBUQWhKdmZycXE0OVFTdC9tdDUrTDYreVRydXZ2UFByb295K2lmMTZOaFZyS01Ec2FJVVEzSnBpc3RaOG0xRXl3ZVR3ZWVMMWUrUDEraE1OaDVPWGxvYWlvQ09YbDVVTXp3VTRmbEdVWlpXVmxLQ3dzN0ZjbGRUaHhkNkJDZ2dvZzlkblBmcmFwcmEyTmg2TmNYR2VoOXV6WnMvNDczL2xPTkdzSTJ0ZTNabXgySjFuZG11blVQQjRQL0g0L1FxRVFjbk56VVZoWWlMS3lNc2l5UEtUdlNjcjJGMFZGUmVqbzZFQTBHa1ZYVjFmV1hCdWJaOU4xbmVxNmJtNjEwaWlseEhCdFFpUVMyZFRiMjd2QzVYTE41MDhGTHE2elE4ZU9IWHU0dHJaMjd3QnV6ZG8rWmJnMWFvTE5iUGhublpycDF2eCtQNExCSUhKeWNoQ0pSRkJTVW9LaW9xSWhmMS9TUUg4NWJOZ3dkSFoySWhhTG9idTdPd051WmdIQnVLaXU2OFJXU0tBQWRFcXBWU1g5NHgvLytMOXo1c3daS3dqQ2RQNlU0T0lDOXUzYjk2bjkzbFZWZmVtZWUrNTUyUWExWHB0Ynk4aXJBYUNFRU90ekdDWUlBSkRHUnZxdHdSSHJZOGY3V0EwSU5wL1BoN0t5TXN1MWRYZDNXMkJMcFZKMjEwWTFUU082cmxQakc5TU54MmJtMjRSdmZ2T2JIZE9uVDMrd29xS2lGa0FKZjFwem5ldXFxS2o0dEg3cnphKysrdXFHVmF0VzlUaUVvTDJ3RlF5TXZKcHVPRFZxT0RScTV0TE1Ja0U0SEVadWJpNEtDZ3BRVmxhR3Fxb3ExTmJXRGptM05pU3dBZWxDd3JGanh5elgxdHZibXdFM3R2WERDRWRCMDRMUjEwWW9wV29hemtTb3JLeDhJeHFOL2s4Z0VMaVhQNjI1dUQ2ZE9uanc0Qjh2dWVTU0pnTnFMTkRzSWFocVRpWVJRcXk4bXIxWTRIYTdMY0FGZzBIazV1WWlFb21ndExUMHVLRUdaQ2tlT1AxV1lWdEEyRUY1V3dzSWRSaVNaOGV0VW9TUVpEQVlmQ0taVFBLUkt5NnVNMVIxUzZhaXF1cG1ySTMyLzd0NFBMNjZyS3pzYldTMmRsZ2hxQzJ2WmtITlZnV2wyYURHdG5aOFVrYzdKTEFGQW9HTUZwQlFLT1E0bFdDRG0xa2x6UmlTTngrSTU1OS8vbUZkMTdmd3B4QVhWMXJSdXJWWU11OGFUQjFmZzZxcUdveWZOQjJ6Rnp5Q3JhMW56dmVvcXVyV2xTdFhib0Z6QmRTQUcwMVNTbFZLcWFicnVxNXBtcTVwT3RWaHVUV3FLQXBFdFF2dDdURWs1WFE0R2dnRUVBcUZNbG83QW9IQUovbytwYUgrdy9MeWNzZHBCSWRjVzdhUUZFYk9UU1dFSksrOTl0cERqWTJORDFSVVZGUVFRcXI1MDVyclhGYnIxZ1dZUFc4ZEdvSVRjTzMxODNGREtSRGJ0UTBiTml6Rm5LMnZZY1V6RCtLNnlPbjlIaW1sRGR1M2IzOTZ3WUlGTVljUXRCZnBJZmNrcFdiQmdHaUVwRWVuS05WcEt0R0RoTWVIZ0dHQ3hHZ3ptbzhvQ05lY2x3RTFNNy8yU1VMUTR3WWJBQXdmUHR5eFF1b3daa1YxWFNkbVpRTUExWFdkYlFFaGhCQmgrUERoYjdhM3Q5K2ZrNVB6aStQOVhyaTR6aDZydGhYTEZxeERRMlFtVnExZmpta1d3RzdGTFRjc3dZeVpxN0JrMlZaY3VYd2FYS2ZSckRVMk5xNlpPblZxazgydFpZYWdsS1lMQmtUUVJNSHFWNE1rYU9qdVNhRTNucUJDWGhBdWx3dWlMSUFRRVc1dlptdEhhV2twaGc4Zi9pOTlzOEx4L0dPdjE0dUtpZ29VRnhkbkhFeVo1ZFJkS3N0eXY1RFVOcFdReU0zTjNkRFQwL01yL3V6bU9uZTV0Z1liamlxNGRQNUMwU0F4c2dBQUlBQkpSRUZVQm1wcEJTZmVnc1VMYnNDVmtRUmFiZm12WmFzWFlNYlVHbFNOWDRDdGFkK0hyUS9jaGhsVHg2T21xZ28xazY3QnpVczJvU25CZk1LdHQyRjgxWFFzV3JzYWkyWlB4L2lhS3RTTW40b1pDOWFpemlHZmxxamZnRVd6cDJQc2lJcUhxcXVyMzJlY1dpOTdFVUlTWUErUVRKL2NvWnVOdUxMTEI3OGtVSUhxSUhvNzluN3dBZDQ3bEFRaGNieS82Uzk0NUsvdkl4V0pvUGpJVTVnemF3NXUvLzJmY05zMWsxQlROUlZMNmdCc21vZWFxa2xZc0Qzeis5dTZZRHlxYXVaaEUvdkJwcTNINzVLS2k0c0hkRzFtT01xR3BHWUxpQkdhc3ZrMkFZQXdaY3FVaDk5ODg4MUNXWlp2NGs5enJuTk5kYS90UUJLMXVHS0tVNndad2JSYmwySmF2NDl2dzhwbFZiamkrdmxZVkZXTGFrU3hkZEVNekZtVHdPUWI1bVBwQkJkYVgxdUhsYXR1d2V6b0ttek9jSHNOV0xOb0ZhNmRQeC8zelE4aXVtMFZscTFjaU5sUkZ6WS9lQjM2dm92dFdIWnpIU28rKy9rbjlyZjhnKzFYNnhlQ3NsQURvRk1LU296RlQrbThtZ0ovVVNtS3ZWNzRQQkp5eHBZQnh4cnd3V0UzeGw0eEhSZVBIb054UlVVWTVnMUJrUko0ZnZrS2pMbjJSc3lmV1lXSkVRQk5RM2UvQzJiUCtXVGhYM1YxTmVMeGVOYjJEd1pzR1NFcHBaVHF1bTV2QVNFN2QrNFV0bXpaOHREMDZkTUxSRkc4bWovVnVjNGRKZERhR2dXVUNDSXMxNkt0YUdXZEZsd0lSb0lNbkVveDg3NzFXRDR0YVB6N1RWaXhIWmh3eTRONGRPSEU5TCs3L2pwRVdpZGg0YWEvWWZ2eWFRd2NGVXhlL0RqdXU5SDRnbE9tb0N3eEhUTlhyY0NxdXV1d3NMYnZhNDYvODRuTm56bXk0ZmtOOFI2blhqVjdGVlFsQXRHaFU1MVNuYVpTS1ZBSVVFUVpzaXhUYTdqZGx3NDlKYmtadTQ1NFVUbHVJaTQ1dndMRHk4cFFmU3k5UnEvcWxzZXhmbUh0Y1lmZWRTdVhZTjNCcWs4R05sRVVVVlZWMVE5czdEU0NiY3lLbUlVRUkrZkdGaE1JSVVTNDZxcXJtdXJxNmxiVzFOVGtFVUltOFNjODE3a0N0a1FpRFJFWDh5cmV2dVFhM0xEdWFOOEhBak94NnQzbERKeXFNWGxpa0lsWnI4VHl6VmZhUG5jUTFXVVJZSHNyb2dtZ2p4SXVSTW9pR2RDY09QTTZWSzFhaWUwN1dvRmE4KzhtdkZXdTdIMTYvdno1VVZ0T3JjZTRlbTM5YXVsR1hJbFFVSjFxdWs3VlpDK090U2RvM09WSFVYa0llVVpyUnlBUWdCU1ZJWW91QlBNTHJXWmM4VjBDSUlEYXliV2ZJSjlZajYxYkc0QXhDejU1d2o0Y0RxT3lzdEtDVzdZS0tldmNUTGdaVXdrZ2hKakZCSUVRUW1wcmE5OXJhbXI2YlVsSlNTNGhaQVIvMG5PZC9US0JaZ0RPZURYWDNuSWZWbDJiQUJERnRtWHpzV29vb1ZpMERtdFhyTUNhVGR0UmR6Q0dwR1hRcXROSUdvZ1VaVlVvQTFEZjBBUWdBa3BSMzlQVDl1ZDdaMTdWWW9OYVh3V1V5YXNadVhNcnJ5YkxMaXJMTW1SQnAycWlGL0dlT0pvYlBnTDFUY2Jra3JSamt6c1VTSklMNGNJU1ZGWldJaHdPLzR1UFpTc2FXZ0ZsWXZXL1Zva3NLeXV6QnVSWnVHWEx0UmxRTTRlL3pMQlVNeDRjQWtBb0t5dDcrZWpSby9mbjVlVXRBaERoVDN5dXN4MXNrVWdRU0RhaHFSVkFtZUcxcXFkZ1dqVUFSTkc2U2hsQ2pxa09EOHllZ2VXdEV6Rm40WElzckM1RDBBWFVyYndaQ3pjTjFUdGFPbnFndlh2MTRjT3ZOQ0p6c0wzWElhK1dNdk5xNWpKMWRyckE3WGJEazErRVNpV0ZwcjM3Y0tUaE1EQ2hDams1T1ZEYVhaQWtEL0xMS2xCV1ZuWkNIOVYvdWNWaTFLaFJHYTZORFVudEozOVFTdGw4bTI0T3d4cmhLU0dFRUVvcHljL1AvM3RuWjZjL0ZBb3RCdURtVDM2dXMxbTFsMDVFWU0xVy9HMVRFNzcrOVUvNEF0K3hCbXQyQVpldWVCQ0xyK3NMVVJQQklRWjA5ZStnQ1VDa3FxejM0TUdEcTY1ZThYWWQrdG82elBDVGRXdjlRbEJDcUs0bWswaUpMbmg5TWhSRnNmSnEza0FleXZNUG9MTXRpVlFnalB6OGZMaU91cUVvUGhSVmpSclNMd0Fna1VIZi9vcWdLZ0lrbTVxT3I5M0RTWVFRakJneHdwcE15TS9QdHlZVDdHTlhaZ3VJYmZHeU9YSmx0b0FrQVNUQzRmQ2Z1N3E2ZUJzSTExbXY0TFJiY0gxcEV1K3NXSUJINmhMOXdxdlcxdVFRN0ZZQ1VRQ0pLUFAvSitydy9JNVd1eHNERUVOOVhUMGJ3MkxUcWswNGlER1lNZ29QR2VOU0xOUjZHYmhsbkxGbXZuN05maldCZ0ZJOWhTVHBLeFo0dlY3NFBDbkU0Z1NDUHc5bGhma29LaXBDUldFSWlxSWdtU1NELzN5UkNDS0lvYjYrS2VQbmU2MHV4dnlqYWt5YlZnWHNXbk5pbW1JRGdRQ3FxNnY3RlJJMFRjczJJRDlZTVlGUVNvbmY3MytzdTd2YjQvRjRidWRQZjY2ek54cWRpSVVQTGtMZDdLVllPbU02bnIvdVNsdzZwaFE0Mm9EWE5tM0F0b1lBSnR3eUV4TUh0SDNYNHNyOGRWaTNaRGJtTlZ5SmFyUml4NllOMkhFd0NTQ0tSQlFBVTJ2WXRYdzJaalJjajJzbjVPUG9hMnV3K205SEViNzA5Z2QvTUtuZ0h3Nmhadzh5anlPeU9UV3pFVmVpYmg4UTYwclMrTkVXSkx1RHlBbW4wQk5ydzc3Mk5yUW5YYWllUGhVWEdJZEdqblNOUXVpSkxWaXpaQWx3eGFXNDdzWnBLQnZvNXl0ZGhWWExic2E4Z3pNeHdYVVE3MnphZ09jYkFEQ0w0R3R2V1l5WkcrYWN1Rzcvd3NKQ3gxeWJxcXBzUDF0R1dNb1dFNHhQbzluRDBsbXpaajM4NXovL1dYRzczZC9tcndDdXM1WnR0Vi9INDV0cjhjaXlGVml6ZFMxV3JJc2hxZVNqcW5ZYWJsazVIL092ckI2NFNoaWNocVdQTDROcjBRcHNXTDBTVzExVm1ITDlmWGg4d3ZOWXRMSUpCNW44SFJEQUZZc1dvMnpiQ3F4YzBvQ29xeFFqcjczN2tmcFhmN2tWL2FjS3JCQ1VFQ1FvTlZmb1dWRHJhOEtWWlNpS2o1YUdLSHFpY2NSN1kyZzlITU5SUVVHNHNBcFRwMTZPYS85dEpFcExTMUZWVllYeXkrL0U0amVic1d6REtxeG96Y2UwRzZjTkRQOUhseUc2WUFVMnJWcU9yWUVxVEx4dU1aWk5YSUdGR3pJZmgrV1Byd1JoRDNJN0VkcTllemQyNzk2TnhzWkdIRHAwQ0VlT0hFRjdlM3ZHMFVjR0FBa0RRR0wwdXdrQVJFcXBCRUFHNEtLVXVuLzBveCtGZi9qREg5N2ljcm5tOFpjQTE1a3FUZFBRMU5SMFpwK3h0dlUyakorekZkTld2WXY3REk3RVlySGZmL3ZiMzk3OGh6LzhvWWR4WlQwQXVvMjNQWVFRcTJCQWpHMVQ3UGxxek5IZTFobHI1dnluZWI1YVNVa0poZzhmanBxYUd0VFUxSnpVSC9PRXoyZU9IajNhQ2tudDdSOVpYSnQ1NGk2UVdTbTF3dEtmL09Rbm5aRkk1T0c1YytjS0xwZHJMbjhKY1hHZEdNVmlzVDhzWHJ4NGl3RzFKQU8xSGdacS9VN0RkYXFBc3NVQ244L25lTHgzWldVbFJvOGVmZEovcmhNT05rSUlSbzhlYllITjN2cWhhWnAxNUMrVGI4dFdLYlUrNTNlKzg1MDJSVkVldnVtbW04RGh4c1YxWXFDMmRPblN6U3RXck9oQ1pxR0FiY0RObGxmVEJVRmdOMHhSY3hHTC9jQkkwNjJaVUdPUEJ2L1VnQTBBUEI0UFJvMGExYTlwMTliUDFxK1lZTGcwMDdXeGNDT0VFREp2M3J6V1JDTHh1N2x6NStwdXQ1dUhwVnhjbjFESjd0anZGeTlldkdVQXFMRk9yZC9xUE9QQVNHcDNhdWJLdkZBb1pCMFlXVnhjaklxS0Nvd2FOUW9lejZuWmRpL2VmZmZkSitVVG13ZFFtbkF6SzZRczNHelhZQmluQUxCeDQ4WVVJZVQ5aXkrK1dKVmxtWTllY1oweG9wUWlHbzJlZ0E3Nms2aktxM0hEelRjODh2U3kvMi9MNzM3M3UrNXNUZzBPa3dWc29jQ0Vtc3Zsb3V3SnVQYVZlV2FoWU15WU1jalB6ejlsUCtaSlBRT3RzTEN3M3pTQ1E0VVVUSjdOcXBRQ2dHMWdIb1FRVUVxeGRPbFN2UFhXV3crdVhiczI2ZlY2ZVNzSUY5Y1ExZEhSOGVBVlYxeXg5YTIzM2twbWMycXdIVVBFVmo4eks2QjlUczNjMnM3bTFJcUtpbEJSVVlHUkkwZWlzTER3bFA2Y0ovMXd4L0x5OGd6WHhrNGoyRjFiK3BjZUpRQ29xcW9tM0RRMkxEWGh0bkhqUnZoOHZ2K054V0s5ZnIvL2R2QUpCUzZ1Z2RUYjJ0cjZVRUZCd1QvUS8vVGJnYUNtRVVJMG9lOElvcXpoWnpBWVJEaWNuaW9vS2lyQ3NHSERyT2I5VTYxVGNtcHRkWFYxMXVQRG1WTjJUVHR2NWRwVVZUWC96aEZ1QUJBSUJQN1kwZEhSSFE2SGJ3T2ZMZVhpY3RMUmd3Y1ByakltQ3RqWnp4NWIrT2tJTldiQmNRYlVuRmJubVZBckx5L0hpQkVqVUYxOWVrNzlQMlhIY2RmVTFHVGJpK0RvM0V5NEFlbitvQUhnUm5OeWN0YTN0TFIwUlNLUmIvRlRRYmk0d0JxRit2cjYrdFVqUjQ2c0c4U3BKYkpCamMycFpRcy9uYUIyc252VnpnaXdBY0RZc1dQN3dTMEwyQ3k0bVFtM2JIQXovMXhZV1Boc1kyTmpkTml3WWZNRVFiaUlQNlc1em5WcG12Yld1KysrKytjTEw3eXdFZjFuUHdkcjZiQ2dObGhPellSYVlXRWh5c3ZMVVYxZGpiRmp4NTdXbi8yVWdvMFFnckZqeDJaMWJRNi9iVmdINXdnMzQvTlNTaWtkUG56NFAzYnMyTkU1YnR5NGI0cWllQlYvYW5PZDhUcjJ1NVB5YVZNcGJmT1diYnVldm1ybS9TMU0rR21mL2V3aHhycThUS2hSalJCS1JZRlFVYUJVbG5USW9nNlhwTUl0cS9BcUtmamRTUVE5Q1lTOVBjanpkNkV3RkVkNVhoVFZoWjBZVzk0R0VuMzkzQUViQU1peWJNRnRFTWZHNXR1eXdZMGFINmRtYURweDRzUVAxcTlmdi95YWE2NXBWUlRsYS95VnczV3VxYnM3K2NURGoyMTdmdjRkZjQ0T0FMVmVBaVJBWUt0K1FpTUVhYWlKaE1xeUFFVVc0WEpKMU8yVzRmVW84UGxjQ1BqZENJZTh5TXYxbzZnd2hQTFNYRlFQTDhEWW1sTElrbmphSDRQVHN2TE83WFpqN05peGpuazIxcTJ4SVNraEJLbFVLbjBVU1ByLzAvcllsdW5jWnN5WWNiQ21wdVpYYjd6eHhoRy8zejhmZkxVZjE3a2h0YTA5L3RENGYvdXZsdzgyeCswN0N0anoxRXlvMlp3YWRJR0FDZ0toa2dFMVdSYVE2RXpRenFBTFkzTFNVQXNHR0tnVmhGQldtb3ZxNFJHTUhWTUN0MXMrSXg2STAvYUM5L2w4RnR6c1lMT0hwWVFRYXVUVDdLMGc5Z2tGYXNKdDkrN2RlaUFRZUt5bHBlVndKQks1aFM5bDVqcFR0ZjJlKzNIejBmOFg3LzY2OWhQdkRhV1VOalR1TzdxbWVzS2k5NUc1VGFyZmVXb00xTlNCb0tZb0luVXBJcWlRUkZLUjRmZTVFVENobHVkSFVVR3dEMm8xcGZCNVhhaC85cC9Zbmo4T04zN0c3L0JkeHJIMXZtZXc1T245YUlwSmlJd2JoOFUvbVk0clM4NGlzQUhwYzl6R2poM3I2TmpZdkJ4Ny93YUJHMldkR3dCYVdGajRiRjFkM2VGUm8wWjlYUlRGei9LWEVkZFpaOU5VYmV2Mk54cWVubnIxTDV5V0dkdVA4MDZBOUIzcDNRYzFRZ1VCVkpJRUtrdkVnSm9NdDF1QUpoS0lMaGNDQVRkeVdLZFcxZ2UxUU1BTlFFWGRjNjlnWlVtVkk5aGFuMzBHdHowdFllbGp0K082a2w1cy9kRWF6THZqRFd4KzdDS1VuVTFnQTRCUUtHVEJiUkNvOVlPYmtXOWp6M096Z0diQVRRZWcxOWJXdnIxNjllcERNMmJNK05qdGRzL2hMd1d1TTFXSlo5ZGgvSVBBamFNVDJMcXpEYTFKRjZiZE5oUExQNThIRjFxdzdEL1dZUHZvS3JqMnRLQXBsb0JZTldiMWVTUFZMYis1NXk4eFpMWnoyTU5QYSs2VFVxUUVRalFRNkNiVVJBRlVUZWswbWRRQlFxZ2dFNVNWeXZCNlJHZ1MwTzEyR1ZEelFEdTBIMzk2TG9aTzNZdnlDOGZqaHo4ZWp1dUMrN0hrUDU3QzJrTWFZbGlEU1hzdXdlTVBYNFMrTUVuRmp1Y09JZmp2czNCZGlRVEFqMmx6eHFINkt4OWllK3dpWEorb3c3eXZiRVhrWjdkaTZXZk9BckFCNlkxWEE1V0hUY0FSUXN5TEVrS0ltWE16YzIyNnJsTzJ2NDExYmpmZWVPTWhBUGUzdGJWOW5KdWJld3VBWXY0eTRqb2pkZWdZY05jc2JQNlpIOUZYbjhIME8xN0Nwcy9PeEhVQkFFaWdWUm1EOVgvNVFuUHk0LzEvTEp0d3o5dGIrNWFxSkJtSXNVZDVKd2hCa2xLa1FLQUtJQm9JTklHQUVvSG9va0JBVXhyVmlJQ2NQQmYxU3hUdHJRbTBkSXNvSzNCQmxRVW8zblQ0NlRuNk1WYnZDdUsySDgvQXZNdHo4ZkZqeitMbWIyOUc1QzlYWWZGZmJzV0UyMytOWlNVMzRPVUY5aEdxWHJUR1ZFUktHQ2VYNzBjRXZXZzlDbUQ0TU54eTE3OGpPTzRzY1d5bWNuSnlNdURHUUt3ZjJPek9EUUJoNWtyN09UY0F1dUhlYUY1ZTNsL3I2dW8rSGpWcTFFMmlLRjdPWDBWY1o1eEtxakRUQ09XQ280ZWhPdmtHV21NQUFnQWdvbVp5eFV0N3QzKzQ0WktyZnRHRWdiZXo5OXBDVHhWSWg1NkVRQmNFUWdXQlFKSUlKUnBCVWdjbGdnaVgzNFVSdVVFb1hpK0NBUWtwUlVEVTcwTnhnUXYxcjNXaCtrdWZ4N3pMaHlFbjdFWE9iWmZodXFmWFljMC9wbVBLWUltZWZxc2JSQUFxWWtrQThHUGlaLzFuVHlocWg5dDU1NTNYRDJvRFFJNlN0UHJsM0N3YjE5Y09Zb2FtV20xdDdkcy8rOW5QR3Ivem5lL3M4bnE5L01oeHJqTlhSalVoWVd4ajZVbHBENy95Mk5xWEgzNXVXNDh0bjlaLzd5ZVFwRUNLV0ZDRER2UkJUUlFKbFNRQ1dSS2dlQ1hxN2traDJ0Nk56clllQkNLNU9ML1lqWnl3Z3FSYlJHY29pUEl5TnhwVUwyb3ZISUdjc05kTUpxR3FSTVh6UjNzeDZMaTJZditBQmtCQ1FEbnhEOXNaMXdZUkRvZUhCRGQ3V0dxK2J4eU5wSnRBWTRvS09pSEVkRzc2SFhmY29kOXh4eDMvZStEQWdiMmxwYVUzRTBJbThsY1IxNWtxcXROM2R1MDVzdjd1VnhyM0FvMnFRejR0dzZVUmdpU29CVFNORUdpZzBFRkFCWkZRU1NCVWt0THRISW9pVWdrRXZrSS95djBLZkxLTzVvK080dDJtZkV3WTRVZlNJNkV0TndjanF2TVFyWGdmcjBaMTVqdUxvK0dvaEVqK1lHZFF1QkhKbDlCNktBNGdsUDdRMFRoYTRVUGtKSnhtSkp5Sk56RVVDbUhjdUhFWU9YSWtoZzBiaHVMaVlrUWlFZVRrNUdSYjdVY1ZSUUd6Mm84eXEvMDA0NHoyRklBa0lTUkJDREhQYys4dUx5L2Z1bTdkdWgvMjl2YXU0aThmcmpOUnFxNnRmdkdKTGY5VE8vbC9kaU56ejZmMVBHWXVhMFVlTloyYWNaWmEraGM4Mjg0aEdJMjNJbExIZXJDL1RZWHNkU09VNDBlK1g0TGk4Nkc0S0loOG40SkFRVDdHamFuQkYyY1BSOTJxRjdEaGtBcWdGenNlMllvTkdJTWIvaDhKZ0FTWFMwS2k3UmhhRS8wOTFKVExoaUg2M0hhc2JWU0J4REZzV3ZVTzZzZU53cFJBR3BBN1hteEFmZUlzZFd5bUFvRUF4bzBiQjBFUUhDOUNpUDJ0NWR4U3FaUlpNV1dMQ3BRSlRVMzNwZ0hRdnZTbEx6VUIrRTFUVTlQT2twS1Ntd2doRS9qTGlldDBTOWZwdXgvV3Q2OWYrK0diZTdEc1RaVUpQWk9PTG8yQkdhVjkrd2xJdWo5TkZ5aEZTdGRwVDFLRXp5dENVU1RxZGtsd3UyWGtqMUNnSEl6aG5UZmpvS0tNZ29waG1IMVZHU3JLdlVnRVhEaFlXb0pBd0kzQTU3K0FCNDgrZ3lYLytXc3NpRW1JakI2RHhiK1pqaWxHeUR6bCtuRW91K01wVFAzUFMvRE1FeGVEYlI0Tlh2WHZlUERRYzFnMDk5ZFlaUFN4M2ZlVGllbFdqNlA3c2ZKSFcxSDJtMXV4K1B4Ly9iRTc0VnVxVHJSNmUzdnh3UWNmb0w2K0hnY09ITURodzRkeDlPaFJkSFoySWhxTm9xdXJ5OXA4bFVna3pGMExoTmwrQlYzWENhVlVNQzhqYXlrQmtDbWxpcEhKY0FGd3JWcTFLakpyMXF6cnZWN3YvK0V2TGE3ajBTZmFVcFZsVmpRYTYzbjBnZjk5Y2RzZGR6OFZSMStCZ0IyUFlzUFFkT2dKTnZRa09rSC9Jb0VzQ1pCbGticVV0THZ5dUdWNHZhNk1pWUw4dkFDS0NrSW9MOHV4eHFUT2xJbUNUNzFqc3lKenR4dm5uMzgrUkZIc2Q3SHV6ZWJnc2hVVktKTjdNNHNLT3RKVlV3MkFPbWZPSEczT25Ea1A3ZDI3OTYycXFxb2JSRkdjeGwreVhLY3M3RlQxbDNlK2YrQ1pDeSs3OTJNRFVuYVh4dWJVa2dSSVprd1JvSzgvelhCcVZCU1lJb0VpVWtXUjRIYkpjQnRROC90Y0NBWTh5QWw1a1ovSHpINVdGV0RzbUROajl2T3NBeHVRSHB3ZlAzNDhKRW5xQnpiN1d3WjJWQkFFSWdnQ1ZGV2x6TDZGOU42L3Z0RFVxQlFSelF4TkFhaWpSbzE2ZmNTSUVUdGZmLzMxNjNKeWNtNENVTXBmZGx3blM1VGk0SkhXWTA5K1p0cFAzbWhLejNteVVFczRYRWtIbDlZWGVwcVRCR0pma1NEdDFHUzQzUkxjYmdVK2IzcjJNeFR3SUJ6MklXSkNyU3dYSTRZWFl1eVlVcHlDaFZMbkx0aUFkSHZIZWVlZEIwbVNqZ2R3L1NxbWhCQnFoS1pnblp1WmQwTjZHNzBHUVAzb280L1UzTnpjOVJzM2Juempzc3N1KzZMYjdiNkp2d1M1VHFoQy93ZGRYVjFyL3ZyWHYyNzc2bGZuZFF6aTBneWdFUk5vS2VNWHNYVitHck9iQUpJa09lNzhORSsrdGUvOVpJL3pQcDJIUko1VFlETlZVMU1EV1piTkNpaU1OV0NPSWFvSk4rTXRZZUFHUFMzclNDU3pnZGZKdlYxOTlkV05BSDViVjFmMzZzaVJJMmRLa3ZUdi9CWEo5YThxbFVvOXYyUEhqazJUSjA4K3dBQXRHOVNTRE5SVTlBMndteEdIdFd6Rk9NYmJmSjFRUlZGZ1B5RFNoRnB1Ym03R2lyelRlWnozT1EwMklMMUR3V3p2TUM4V2NFNmhxWEhEcmRDVXFacGFybzBKVFRYR3ZWbFBvdHJhMnJjQXZOL1UxUFJDY1hIeGwvaEp2VnlmUkxxdXY5blEwUERNeUpFamQ1bS9QRzFBU3pxNHRKU0RTOU9aaXhxLzJMTkN6ZXYxd3V2MUloQUlXSHMvQ3dvS0xLaU5IRG55dEN4ZTRXQmpWRjVlbmdFMzgyYWFvYXJkeFJtZ3MrQ1dTcVVvSWNRODhOSmVXTkFad0dXNE53Q3Bzckt5RnkrODhNSi9QdnZzczFmbTVlVjlpUkJTdzErdVhJUG4wZWllNXVibXA2ZFBuNzVqMTY1ZEtwTWZZM05wN051a0RXb3E4MHZYQXBxNUVrOFVSZmFYUFhXNVhCbFFNNWV1bUhzL0k1RUlTa3BLckdYR3AzcEYzc25VU1Z1WWZDcGsybW1uZkp6NWRvQnhMSHRhMUp3cmhRRTRHSEN6R24xTjJBSFFtNXVidGVYTGx6ZWtVcWtYTHJqZ2dtYTMyMTFDQ01uaEw5OXpHbHlPQzVNcHBZMnRyYTJQTFZ5NDhFK3paOC9lZi9Ub1Vic3I2M2RrTjlMTFZYcnQrVFJtY2JIVFJuWW9pa0lWUmVtWFMyT0J4aTVkcWE2dVB1WExqTGxqRzRKeWNuSncvdm5udy96dHhFd2daT1RoMkN1UlNEaUdwb3g3TTRmckJWdDRxZ0ZRamZBMEJTQjE3NzMzSnUrOTk5Ni9MRjI2OUlWdmYvdmIwME9oMEV4K3FDV1hBYlNHMXRiV0RjdVdMWHZybDcvOFpTK1RHM1BLcGJGaGFBcnA0NFZVUW1CR0N4cEEra1lGQVVwQWFQcXBTa0JCUUNtb1RnRktDWFFLYURxRnBnT3FScEhTZ0pRR0pGV0toQW9rVWtCdmlxQW5SYkQ3b3dNQURweFZqLzJuMnJHWmttVVpoWVdGanFlQURISGUxRzdnekJONzJSTkM3TlZUeTcwQjBMWnMyWkw0K2M5L3ZyZTd1L3Y1Q3k2NG9Nbmo4ZVFTUWdyNHkvdmNjMnpCWUxDdXBhWGxEOS83M3ZjZW56MTdkdU0vLy9uUFhnZUgxbStucHkybnBoSmlnZERJcDZXZmk0UUlFQVdSaXBJSVNUSnlhYklNUlVuL2NuZTUzWEM3UGZCNmZmRDUvQWdFQXdpRndzakp5VVYrcEFERnhTVW9IellNVmRVaklFbnlXWGt2enZqSmcrUFZ4eDkvaklhR0JqUTFOVmxUQ2gwZEhZaEdvNGpGWXVqdTdrWjNkemQ2ZTN1UlNDU1FUQ2JOVGZXRVhlcXM2em94TCtOeE1xY1cyTWtGaVZJcUE1Q1JQcnZBdXFxcXFwUlhYbmxsYW1GaDRUV0NJRnpNWC9abnY1TEo1UFkzM25qamhhOTg1U3Z2TnpVMW1TTk5yRU96RndneUhKb3gwOHlNUWhIemx5aGxLNTVtb1l3dEVHUXJFcGp0SEdiNFdWWldocXFxS2xSV1ZwN1Y5K0tzVzNKU1dWa0pqOGRqRHNlYmVZZWhGQmlvVVUwbHFxcGE0YW5aOTJhNk5TTTgxUWNJVDVNQWxJYUdCcVdrcE9RRkFOdjI3dDA3b2JLeWNyb3N5NS9uTC8relQ0bEU0bSs3ZCs5K2RjS0VDWTBNek5pd00ra0FOUloycWdFMXE5cHBnSTJheFFIanVVbVo1NjRGTkRPbnhoWUovSDUvUms2dHVMall5cW1kVFVXQ2N3WnNBRkJZV0FpdjEyc0J6dTEyZzMwUzJPSFcyOXRyQVM2WlRHYkx2VkZLS1dIUGVEUFBkMk9lbUNuRHdWbUFBNkNNR2pYcWRRRHZ2UERDQzA5TW1qVHBVci9mZncxd3dvOTU1enExWVdkVExCWjc3c1VYWDN6N2kxLzg0dEVzUUhPQ211bk9yR0YxSTQrbTI2dWRCdFJnVmp6TjU2dVRTek9oWmk4VW1PMGNadU50SUJBNEorN1BXUmVLMm5NZWUvZnV4YjU5KzNEbzBDRzB0TFNndmIzZEdxQ1B4K1BXQUwwWm1ocEQ5RWdtazFCVjFYUnZHZUdwc1hoR29KUVN3OEdaNGFsNXNTRXFHNnJLQUpRYmJyakJ2WHo1OHNrRkJRV1hTNUxFVC9IOUZFbFYxUmNQSERqdzZ1MjMzNzdycWFlZVNnMFJhQ2s3MEFDMktKQUJNOTJjZDJiRFR0YWx5YklNdHBYRFBra1FEb2VSbTV1THdzTENqSFlPOG1tZGorSmdjMVpUVXhNKy92aGpORFUxb2FXbEJXMXRiUVBtM2N6Y1d5cVZnbmxLQ0FNNFlxd01KT3cxQU9Da0xJQ1RBY2liTjI4dXYraWlpeVlIQW9IcHZCL3VqUDBGdWFlenMvT2xiZHUydmZ2RkwzNnhqUUdTRTlCU1dZQ20yb0ZtSG54cWhwdDJsOFlDemV4UE0xM2FRUG0wdkx3OEZCWVdvcXlzREpXVmxTZ3JPL2VDZzNNQ2JBRFEyZG1aVVZSb2JXMUZSMGNIamgwN2hsZ3NaaDEvMU52YjYxUllnQUUyWXJvM0ZuQk1nWUVGSEZ0a0VBMEhaNGRjeHZYZWUrL1ZWRmRYWCt6eGVDNEhVTUtSY2xwaGRxaTd1L3VsdXJxNkhaTW1UZHFQdmlyNFlFQ3o1ODVZVjJjUE9hbDVJQU9UNDJWZEdqdnI2Umg2c2syMzdNeW5XU1N3OTlSeHNKMkYwalFOOWZYMTJMOS9QNXFibTlIYTJvcTJ0alljTzNiTU90dXRxNnZMT3R1dHQ3YzNBMjRPN3MwTVQ4MHozd1lDM0ZBZ1ozNU0ycjE3OTdpS2lvcUwzRzczWlJ4eXB3NW1QVDA5Mno3NjZLTjN4NDhmMzJnTEY1MkFwZzRSWnYyQUJtc1BCeWdSQ0JSWjdoZDJzaTdOTEJDNFhDNXIzdFBuOHlFWURDSVVDaUV2THcrUlNNVEtwMVZYVjBNVXhYUDJYcDVUWURQVjNOeU1mZnYyNGVEQmd6aHk1RWhHYUJxUHh5MjRzWWRYc25CakFjY1VGd1lDSERIQUpqaUVxWklOYXJMdFk5TE9uVHRIVjFWVlRmQjZ2UmNUUXNaeUJKMDQ2YnBlMTlYVjlkcWVQWHZxTHJyb0l0YVo2UXlZQmdLYXlnQk5wWlNxUnFYYzZuRTBONld4UURNcm5icXVVMEVRNFhhNytnSE5IbnA2UEo1K1EreG02RmxRVUlEUzBsSlVWRlNndUpodmxqd253UVlBM2QzZGFHeHN6T2gzYTI5dng3Rmp4eENQeHhHUHh5MjRPWVdtV2NKVEMzQU9PVGpDT0xpTVhCd0RPQ2ZRWmZ6ZHhvMGJpeSs4OE1MYWNEZzhRWmJsaTJGdHh1QWFvbzZsVXFuWDJ0cmFkdjd6bi8rc256RmpScHNCSUgwQWQrWUVOZmFFalg3RkFNYWhXYmt6Tm9kbUZnWTBUWWNvaXZENXZPendlci9RMDRTYTMrL3YxOHBoaHA3RGh3K0gxK3ZsZC9oY0JwdXBBd2NPNE1DQkF6aDA2QkJhVzFzSHJKcXlvYWt0OXpZWTRNQVdHV3lRTTUyY0dhYUtkcGc1QVE2QU9INzhlUG1SUng2cHFxcXFHdTMzKzgrWEpPa3pBUHo4YVoyaHVLcXFiMFdqMGZmMzd0M2I4STF2ZktPcHJxNnUzK1NJTFhUTUJqUVdadXovbzl1QVpqazA0NElkYUdiWXFhb2FGU1VKQWI4dkEyaHNiMXEycXFjNXhGNWVYbjdXbk1yQndYWUNGWXZGck5DVXJacWE3czFwcjBJVzk1WUJPRjNYN1ZWVVpBbFQ3WkF6UTFVckwrY0FOc24yZDJKRlJZVzRaczJhWVNOSGpxd0toVUtqWlZrK2p4QXk0aHpMazMyVVRDWS82T2pvK0dqMzd0Mzd2dmExcjdVME5UWHBObGZtNU02eXVUVHI3OHhtYk52bnlJQ1p6YUdCclhLYXgybXhoWUZrU29Va1NRaUhnaGt1elF3OTdRMjNiTlhUREQzUGxkNDBEclovd2IyeFZWUFR2Y1Zpc2F3OWJ3NjVOd3R3cG5zeklXY1BVeG5BT1lXcTluQlZ0QUhPNlgzUmZ2M2lGNy93WDNIRkZTV2xwYVhEL0g3L2NGbVdSd2lDTUJyV0t0NVByUks2cnU5SkpwUDFzVmhzMy83OSt3OCs5OXh6TFhmZGRWZVBDWmhCWUpZTmFobnZNODRzSTh4a1EwM1k1b21adzAySXBRaVhBQUFHR1VsRVFWUXRtREV1alRLTnRrZ2tVNUFrR1htNTRheTlhWUZBSU1PbG1hRW5kMmtjYkVOV1YxY1g5dS9mYnpYMDJudmVzaFVXc2dGTzA3VEJBR2QzY1NiZ2lBUGtCQWZJRGZhKzZPQUdoZlhyMStmWDFOUkU4dlB6Qy8xK2Y0a3N5OFdpS0pZUlFzb3g2RXJ2VTZaZVN1a0JUZE1PSnBQSjVuZzgzbnpreUpIV3VycTZ0aTkvK2NzZFlBNG1HQVJtMlJ5YTQvdjI1RDhMTS9RdEFLSnNNY0IwWndBZ1NWSS9vTEY5YVd4eG9LYzNtVDdFb1NDL1g0SEFxVGV0cEtRRXc0WU5nOC9uNHk5V0RyYmoxK0hEaC9zVkZ1enV6ZDdVYTA0c09MZzNxL2VOQlp5bWFTYll3UFRDd2NIRjJTRm5BWXFCM0dDWFlIdGZzTDF2NWY5Ky9ldGYrOGVOR3hjc0tpb0toa0tob05mckRTcUtFcFFrS1NpS1lsQVFCRDhoeEU4SThSRkNQQVlJelFNQXpNOEpCZ3pXMmpoS2FRK2x0SXRTR3RkMVBhNXBXa3hWMVdnaWtZaDJkM2ZIT2pzN284M056YkdkTzNmR0Z5eFkwTTNBaTlwQVJnZUFtVzV6V05wZ2wvMjh2V3d3WTBGbXVqTm1TeG9GQUVWUkxKalpXamd5aWdPeUxLTzdKd2xGVVZCU1hHQTEyOXBkR2xzZ0tDb3E0aTlPRHJaL1RhbFV5aW9zSERseXhOcG5PdFNtM3FFQ3p1YmlXQWMzRU9RY1ljZE1Qd2dEUUUxMEFKdjlZci9PUUJjYzN0cmZ6MGlET2J6UHZoM29zb1BNZm1WemFmM2VONDkrZDRMWVlEQXozN2Z0MUlBb2lxQ1V3dVZ5WlFXYXZlSVo3K3FGeStWQ3hiRFNqR2JiY0RpTS9QeDhGQlFVV0FVQ1daYjVpNUtEN2NUcDJMRmpPSGp3WUwvYzIxRDYzb3laVTN0NG1oR21HdTdOZ3B3eHpXQ0Zxc3g5c3Vma2lBT0Vzc0ZPeUFJemNRaGdZd0VuT0VCdElNQU5CRGM3ME9BQXNZRWNtcDdGcmRrVCs0TkNqQ2tBVUZ1WWFjTE1LZ1F3RmM2TUhSdWlLRkpLS2R4dWR3YlFKRW15SEpxOU9CQ05kY1B0OFdEVWlPSDlLcDVGUlVVb0xTMUZLTVE3ZWpqWVRxSmFXbG95M0JzN2tqVlFhMGcyOThhMmg1alZVNXVMQXpOMGI3bzNlMDRPRG81dVVPRFpxckZPUUJzSWJzZmozSTRIYk1jVGRqb0NqcWxPWmdVWUF5OFdubUJ6WnVhZjJUQ1RYUTdFQUkyeXVUUktLYnhlYjFhWFptL2g2SXgyd2V2MTRmenphcXh6MDB5WGRpNGNMOFRCZGdicHdJRURsbnR6S2k3WXE2ZE9yU0dwVk1weWJqYkFRZGQxNGdBNDFzbkJGcXJhM1p6OXozWW9aWFZpRHVFdUdRUnMyVnliUFNTbEE4QnRJTURwVG45bW9EU1FzN1AvUHhsZmkvMnpMZFNFM1puWmdFWnRsVTdyYkQ5ZDErSHorUVpzdEdWblBOczZZZ2dFZ3BneWFhTGwwbmkxazRQdHRDbVpUT0xRb1VQOWlndHNlRHBZL20wQTl6WWc1TXhpQStQazdHNE9XUnlkSFVSTzE2RE9qQTJIVDBhT3piWlVodzRSZVBZTHRpUGRZUWVaM1pXWnpvekpuMldGbVIxcUp0ZzBUVU13R0J4d2FKMXR0RzA1ZWd6aGNBNnV1UHdTbEpTVVFGRVUvdUxpWUR2OTZ1bnA2UmVlc3RYVG9iU0gyT0ZtbTJCd21rZTFRNDV0SFlGRFhnNDJLTUhCMldFQUp6YlVmSm9UekxJNXRxRVdFdXlBd3dBQWd4MWM5andaa3krRExXOW0zME9iQVRPMmZZTmQxRzNQcFdtYWhuQTRuSFcrMDZ4Mm1tSG53Y1B0eUk4VTRMSkwrSXJhRXltSlB3VC9tandlRDZxcnExRlVWSVREaHc5bkROV3orVGNUY0hZSE4xRDExQUZ3bE1uREVSdmdxQTEwNWtWTm9GRkt6Y01HMlY5b2c0TEtDWVlEd0d5b3B4blNvVUxPWVMwaWJDRWwrMjh6M21lY21TUElISUJHN1V1M0J3TWFlMm1haHB5Y25INWIxOW1qaGN5aDlhS2lJa0NxNXk4aURyWXpWejZmRDlYVjFTZ3VMdTZYZjJQYlEreUFzOCtlWm1rUGNRcFJxUWsxVGRPcy9Kc1Q2RXpBTWE3T2hGMC8xODVBYkRCb1pRUFlKd1ZiVnNBeEo3LzIwYmdQZHJBNXNneUkyY0xNZmlBek42amJROC9Cd2s1N0RzMjhWRlZGZm42K2RheVFIV2htSG8wUHEzT3dmYXJrOVhwUlZWV0ZrcElTSy8vVzF0YVcwZi9tVkVFOUhnZG5DMDh6M0J5YmczTndjSGJZbVhCajMyWkFqLzI3VTVIQ1lCMlg3V1A5NEdWNzZ3Z3hCNkJsNU5CWXFObkR6c0VjbWoySDVuYTdrVXFsVUZKU2t0R1BscGVYWnpYWnV0MXUvaUxoWVB2MHl1MTJXOGN5c3dVR3RvTEtBdTU0Y25BTzdzMnBUY1FPdW40RkI5UFoyUUhIL0preVJRblcxZldqbWhQOGh1TFVuTTdoWnovR2dzdm14dXp1TEFObWJJdEdsdnlaWTdnNVZJZG16NkdaVXdPcFZBcVZsWlhJeWNuSm1CcVFKUDVTTzVYNi93SEYxRm5aOGoxaXh3QUFBQUJKUlU1RXJrSmdnZz09Il0sWzEsImRlc2NyaXB0aW9uIl0sWyJzcmMiLCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVRZQUFBRTJDQVlBQUFEcnZMNnBBQUJNQzNwVVdIUlNZWGNnY0hKdlptbHNaU0IwZVhCbElHVjRhV1lBQUhqYXJmMVp0aVc1bFdVTC9rc3JvZ2tpcUFSb0Rpb1o0L1VnbTU5ejRpaU5SdEk5SXZ4bG1sSUwzbnV1Rk1BdTF0b1ZydjMvK1grKzYzLzlyLy8xdktta0srVzNsbGJLelgrcHBSWTYvNmozNzc5Mi9uenVkUDQ4LzhYeTUxL1B2Mzc5K3VzYmdiK2puL3g5NCsyL3Y1L08xL00vZitBZjkzakd2Mzc5cW4rK0UrcWZDLzM1QmhmK1BZRjM5dC9yN3cvSjE4UHY2MC82YzZHMmYvOG9yYjUvZjlUeDUwTHp6d2ZQby96NW5mNTZyTjlmL3Yvclg3N3dza29yYzZNWXdvNVB2TStmNmZjRThmZTc4L3M5ZndZKzkvQzFIbU1zRjM4OThmMXpNUmJrWDE3dkgzL2Y5OThYNkY4VytSLy91djU5OWYvNjE3OHRmdWgvdmg3L2JTM0xuelc2eTMvOWpTZi8yOWZqWDdjSi95SU9mejFSK05kdjNDSEYvM2lkUDcrL2I5WHYyNyszNjBoaFMrV1BSSjNGZnY1eEdUNDRXUEo0ZnF6dzYrVjM1dC92K2RYNFZlOStUN1o4M2ZNZS9KcFBld0s3OGwxUGV0YlRuKy9aNSsvNVRCNHhoUjFlL2c1aGhuaStWdU1iV3BqUmZVcitlcjd3eGhaWHJPemJEUHRpNjFJTWZ6M0xjKzdienYzbVU3bnpldmhvZUxpWVcvM2YvcnIrZDkvOG4veTZ2bSs2Uk05ZC8xb3JuaXNvMXp5R08rZWZmSW9OZWI0Lys1YlBBdi9qMTUvdHYvOG1QNGdxTzVqUE1sZGVzTi9qZDRtUm4zL0tWano3SFBsYzV1K2ZDajNYdS81Y2dDWGkzcG1IZVNJN2NKY241cWM4OXh2Qyt6eXNZMldET2s4ZVlncURIWGh5RG91SFJGNWlDZGNiYXZEZS9NejduTStHSEVyd3k5Z21OaUxIZ201VmRxaXpXU2xsNU9kTkZSbnFPZWFVY3k3NXpmWEtMZmNTU3lxNWxQSVdqVngvNDV2ZS9KYjNmZXZiM2w1alRUWFhVdDlhYTZ1OWhSYXhnYm1WOXJiYVd1czlYSjBiZGE3VitYem5LeU9NT05MSW80eDMxTkZHbjRqUFREUFBNdDlaWjV0OWhSVVhabUtWOWE2NjJ1cjd1VGFXWXFlZGQ5bnZycnZ0L2lGclgvelNsNy95dlYvOTJ0Zi8yclUvdS9vZnYvNEh1L2I4MmJWd2RzclB2WC90R2wrOTN2Y2ZsM2cwSjlrOVk4ZENldGp4MXgxQW9JTjdkdGNucGVET3VXZDNDeWhGRGp4a2RtK3U5YmhqYkdIYVQ4amY4OWZlL1hQbi9xLzI3Y3IxLzJyZnd2OXA1eTYzN3Y4Zk8zZXhkZis1Yi8vRnJpMzkzRHc3OXROQzEvU09hQitmNmFGZS9MNXYvdmpyYng2cDdwN0w2SG4xa1dkZXFhTWk5NzdmRjRmeWNObVpZbjkzdjFOWU82VXZocFRlSzliUWE4Wk81YStOc2Q1N2JOYzhzRFp2K3VwVDhGclBkcW5penBVMXJuMitiWS82MUw3ak84dkhoM2R1VjRtNHlCRXdaWVZscjJGekU0eGYvN2hvU3l6QnlPL3FmYzMwM2pQdzFud1hieHZZMGR4YS9ZbytPbzc3WXNPL09ubVorTDVmcVd6RDJobWZIc1lJdmV5TVJ3UUlQTHhsbmFPdHROTllMZk9jdVlYTXBuN0lFd0pVcjRFUlhwWG5DcW4xUFYvZXVlYjFmbThyOWV1MWpQWStYMEVvSXErNVcxOGRPOU16Ky9IdVozQ2hOMjA4d1hzOTdCNHVvdll2NTQ4djFQeWw4ZDFuVC9IZ2RjZTYyVS8ycnFlRW9JNVVTd2hydHZmRncxUldaQjNkdWNvN25sMTR6VmxIaWp6TllBay8xQUlkd0g0OXBha01uMUw1N2Z6bCtaWEpvOFZudDd6MnF1K2VIMXRjVUpGNWYzM3R3ZDUrTWRZNzl6QlN1dG1kOTVsMXphVVhXdC9kZWNiOERsNXZmVWhQV09OYisvbG1yeXU5Kzd0NGlxeDQ3UGNwNzNkdmZNSEx6OHhSMm14WXlQZDk0c2F2enBCdjlndWREM2ZKZGFQckc2ZjI3SW5FUFN0Y0kwMWVrajhpdCtvKzloZm5qWmNiM3JPbFhka3lkaTZ1Kzlzam9Wbzk4WWc3c0lNWWx6SkNyU0d4L1JPUmFDbjB2VldudVQ3V2xsdVArYjBvM1U0RnVZajM3clBpZFhkZ0M5QzV3YzY5TGgxWHcvWWdGL25DUG9Ua3hTcHFGbmZ4L2R0dXdiL1hOOC8vZjNwaHM1Nm5aVFM3M1RFMmZYZ1liM2kvMkhkZUk2MXJMRjRtM1BWTHJHRmlEenNPS2JjUmUvdFFjT0J1VzJOZ21DYmJ3Zjh3Vm14VGIvRWJvV0Nwa0tuVTN0d3ZmTk5DTXdjN0hWSkJxZ2VHQjdBQXNwdklGelp1YllUanJldkxBMlVaZS9LWU55L2xEU0pyMitabXQ2K05UajF6RlV4YlExYjd5bHZkZjdGSTkrQlJFS0cxUUl4ejhyRTNIRDBzV0krZXhoeiticXYwOWFDMDJpYmM1NDVlTGN6R005MnJwcktScjRhdGlieDFmN25MZzB6c2pxbGFxN1FXTUZBcGxkcnZ2TGdPeUw5aXhQWWNEeVlaUk5YQlZ4R2JJaTVlNmR0UC9saFdWZ3ZKU2JraU1hM3hrYlhxTE9sN0VOUVhGVTF4UWlFKzNqUnJUQkhWK21Jd3NBWCtMOFRCNXM0K1o4UWZvTHgzVGhnbDlCZ2wzOXc5THBUM2V3RjZvUTlzZHJ2ZFl2UVQrTVhiOCsrWSsxMnd6YkgzdDk1alloZmkzZG8zSzR2Q1U5MjVZVTE0aFRsQi9yRXNsdnZDek1YTmpzeGNucFI3VFJqcThLUTNJSU1kTHFDSHV3dUxneWZJZzQwYWhlY2N1d0ZXeHV4bGxZU0hBRVRVbVBKNGNrVFVKMnBYc084VDNMcmJmTit1TUxIM3JPUERzaURzdlBsdUdBM1cwVjNFcDdFay9VWXZMcGE1cE1ETEQyMUw0c1ZRSUM1MmYvNTRYaXhmd2dFTlJHVy8yTitNU3FMMGZLNDJibzZ3aDgwRjl0VzRZNHQ1cnJjTzFCem5zSEJ5dURLRUR1L1YwZmZZNTUxS0tNL0h2MnY1VUY5TU9UOHhQOXhGM0R2anhhRlpHNXVYRTUvQUFLWStzRTY4YnVVdlRENWVBdUY4ZTZxajNCT0ZCbVVETmpGeGVYd0ZiVVlpTXo3andXV3ZoUnRwWGg5bm05N2FlbVpWMFFoV0Z2SEg2bUtHZmVmQk15TmhyNUx4ZklNbmEvVjQzdlcxV2E5SEN5S3c1eG5SRnN4NUx3RkJ3STY2L0E4K0d5ZVJ0SWpOVmVUYkJiRFBXN0RTN0ZoVDBsNFpwRnVNVVFOS1lIa2p0cFJYeTFoUlZpYS82RCtDV1ZyR2tDTSsrR0YwclFxbnY3bGJTWURSa2p2T1pWelNndzlHOElZUlpzVUF5VlhDOXVJZG1VSmxrSjVVUGtES2hpdjBnWWdqSDBYUDlXSE1jWWhMYTMwOXFPVVJwWFhqejlhSDJyZHYrWUg3UXhLaEVBVVFrR0NtTENieXhZOGhBN21pTkI4cnpSODM5dll0MTFzbkYwY0pWd2U4N2JleUl3cmRNeFl1ODFiZXNONVR3SUF2akJxMnIyYzgyQXg0eHc5UitmYis4Q0s4SytnQTRJSVJ3b2hqOFlCbGoyNmQ3V3Y3Z3gwTkVNOUNLRUZCS0M2QzhHMFdQN0o2SDc0Qng5QVJodXZHQ29SM0RGejBERHpqM1dOUkZWa3NTQUtQMnBDRDJZb2NXQlB6WWNBQk9Ed1M5OGFWWWtqdzdSSGp2M2paamRGSndDVllJVGRhZU8xajlNZUdaUDM5SnhyS3picC83NUdma0F1N2dZWlhEUGVGN2VVaURTZ3hwRVRsUlZ0QkZHOTlYTlZieGVkR1BDdTdFU2FlVDBjTGF2eGFqZ3BPeGcxaTBGOEFPeVlVQlh1ZlVQQUtlQSswbGdzQXk5Qlp4SGgvZ3hYTEdLRGVubmV5K3FrOEQ1Z25nVGg1SWxaUWczYTlFL1BMT3BaUFUrbEs3YWNDSDBabDYzc3JlYlQwRnFBVzBvaWZIamp5K1FEWXBqR0NxcmlpM1R3WFFHdlA5dUVBRmV3RjZzR2xjR0hVRkNlUGlSTTVndDJ3VDAvSEZVajlVRHBzVlB0dXR2RURmTU9Obm5JMW5BWXFnM0haQmJERjVvQWZzVnFaalgzQU9NMTM1MllWZzg0LzhYMlFYY3dsL2pHT3dpYmphUkhBZENIdFNGbGNRVU1PbW4vVGdpRUNWc1E0b1VBcWNvQktsSXhqdUpWdGRBaVpQOGdETkFFdUwySGdsYTVibUlOb0taTVF4M0dXSGhkWGdhWW85WU92QmdLK0dHTitQSlNXbG55UzF3c1pnY1gvSWNaM25lbWFGVE8xVmU4bXdjZER4L3VOMEZYV1RjU1IwVXpFSFMvT1ZvTlhjcGh6QXdyeGlZSEwzQ3c3TnFpVks3SUhXTGdHL0FNN0k3MW9PU3Yxdks3eWc1NkhoZy9EK0FZd05nUVB1UHNoZWVLdG1yazVxcFVnVFB2cTZCUXdJUmVjV0FJeklBZ29QcThGT1lZYUpZZ0hkMEh5SjJDVkhaL0lGWmoxdzNOdnZBSGZPVngrWFZpbXg4akpDeVg1eDllUHZ5NTFQVEtHOWZzQUZ1VHZINW5IcHYzdEo2Ly85ei82cno5NW5SL2RvK1M3WWd4N2F0aWVDSnFjWTJKT1lTbUk2SVBSaFphQzlMRGZDR25MRUlDWEhTcWlrZC9iWHZOSUs5Ymh4ZTIvOCtBQWRMVCtZeVYrMzRCRitDMlY5MEFaVE5ETnphS2F6eTNuVGhjQ09QRnlvTCtBSG1GdFhpQXI2b082SHVUSFBrSms4Z3NkMkYySGt6SHU3S0M0SFVCWC9mUERNMStMN1VHNzN4VUVkZy9NQU1VT01zOGN2VFdrWmVEbWNXOTR1dyt2SkU2TGdNUTNkamowRFJBZlJqb3VjSERCR1dPQnNac05nY0dBaHhlNENLWm1LYmduZG0wQWNnR2JQR3BNY1dnVEVxaDFwTHVCYWhOeTNPTjFieTRGcWNHUGJSWm5vQzJzQk9hUGp3VEpJSzQrUkZ3WVZvbEhHYkFqckxEUlQ0aGpiM3VQdmRhbzMyWG9DdUFxb0ZMUDBTelVEWjRjV0JBWU5adGJFbWF2cy8wTkdaMDRwcG1mTU1TbjdEUFVHMk4wZi9tcWNHdUFKZENndmtwSmlobjNCUHY0S3A0NUQ1eCtydHh6ZGhGWVNWS01oQ0dhK203czBvSTJMNjU5VFRRU1NsamZJVHBpalhDV2NUenBHOUQvUGxnMWVQNkh6TUNTeDFmeGRqc0hIQlppMVdTUkQyNityUEZnMkxqekIrd0FqZUJESUFqdm01OThLQVIrQWxTR0NQWENZdDBpL1RkTTlMNjlBVjVRUlNKdzZ3UmtYeGVxSGZSVUJidUJ0SDFmKzRQSEFPOXhZNWphRVZoZ0lkWXN3bmcvWE5QODhEdm9pQnl4QXRUWnp5dGovUnF3SDZ6K3BNQnQ1ZUxuaDFHS0cvekE0K1hJM21ON2VDM2VuMzFubFo4TUZvcEE4WTRGRGUwRnNiRWZRRTJlQTFvQjJVS3FOb1JpcHdSNVlVZUN6QXVVOG9DY01KNll4QWc5d3RtaHVDelhEZVNTb2x6RlhjZkRBWFIxbkJtbUpibzNwaWd3TGVnZnNBR1V6dTQwT0lBc21wL2xIYll1YWNKOU1XUGh1WDc4ck9MdG9KYTd2MndUb3BCNWQ1VDFabFZ1VER1MjFUQUdEQjZ6Q1ppTE9NQ2huMDI4WGtxbzdydzZJQnRFaGs0VWJTK09DSGpUV1V6OENZNUJ6b1RvWWVqaE14MUVDQk9GVGtpMjJNNEhhQVhrZkRSc0NUM283eDRzUFJzeThLcUdIOUNXRFBERGMyRW5CTU0za09jYjJBQnNUeEFuZWowZUwyRE1XYjN5WG1VamU5c2NBekNzMyt4U3llOUJoMi9HdjdGRU9OWlZXUkxqYnM4TFRPa2JHN0x3ZExPQWpockVtblcvUU5aWWlpQlpLdm5CaVJvMUFhYkEyTytXSDNYemhNTEV2RGpZd3JPM0ZjTXFBRng0Q2VqdlpRM3ZjcTNxSG1TbGNIVE1Sb1hpSkw0SUJJMlNZdkFOc0czaGpZYVNBdHlJaWdXaTlPb0gxUW53ejQyS0hDWVBtTUpVOFNCcnZTQjZsQi9oNEw2YlZjS0pZYzRDQ2kwWkc1V05CY0hOVzdXOTN3RWhoRzdzQzRJTDlrSFV3ZGY1L011ZGcrT3pZcENxZ0kxR1lQa1NXTmVRNHR3dk9CZWJuc0V1aGlSUVhBUzhYNENZZ0YvQUM1YU5QT0NLdFZ0VG1NRHl1ZXlvVGw4R0NtS29idzRxY3BlMnNtNExFUXlWRndQNnNUZ1lEVVFNdFVSY3VUZXlFUnFNSE13R2FoQ2xWR3c4SGtxdml6MWx6WkNNelRibWdUSFJoT1BicjVNNkFhQXZzUld3Qm16NUhTZ2RjQ0RmMjNIdXJDRzYvQUVPY0pPZjRmWVhIS2tDQVg0MmN1Sy9UVUpwRU1ieFo0TmJJZnBZZm9CV1FMNXF5TytFTFhXOERsNElLNDJkbCtrQkdQazhKQUtXaVZLOXo1VmcrVGphdHU3ZHE2ckFOcUlEckdMSUlqak1icm1CS3dOZXQ5bkhKUDJHb2Y3alNmN3hJTmVmSjBFUCtyR0tCbjBFMVh5SzNVRkl2N3hPZkplMWhnMFhTRFBZQzhWaWRlSmROSjYzRHYzS01GZE1yczVBRXQxUWJYNmcxSUpBWTdaaGM0akFnNmJmZmNsWnZ2TG4xbmp4OVAzejl0ZmY3eDgvd0sxb0F5TEtBcDBGN1N2ajBnRzZCbG1rUWMzb21ORS9CYlBINTJ1WXROd3ZURnFTaWhiSWZ4TkFnOEZiZERGbHNDOE1EUG4rak9nbTZhQ3hJSmdqdHBVdE5jUjlGbjIwY0NVOFVPQ3hmRGZNTnFBVi93YWlEcytJUU9JQWoxUm1jYWI1T1NMellzV2hWTU9jNE4vQ0dwZHhqZFlibmdIZmNvUmdISkFsc1AwRHQvNXRmLzdyN2JuKzJoOHQvd0NCNEN6eWcvK0YzK0JaRjZRSEd3YnN5TFZnT2xJNFVjVWJwTERuMFU4ajZTakx0YkNRYStiS0MwekRCZ0hsWWRNYjJzYzJicnhVbEZzY29MNm1pQXQrTm5CNzZBQVB4eGFEVEZoWUxPUytIeUQ5MHpvdktNM0xFM3M0MEV5TWJOREh3MGw1NmdlSzYxN2lZOS96cW8veDhyMzdUMW11dTVRNzdxckZFeGd2dlB0RUd5RzFrcTRURTRPWHlScll1eE9kVG51QU96NXN6RjVWNW84Q2xIcE5IQ0hLWFRMd3B3Q1RFSVEzd25OQnFCQVVLSGRmVDNCdEIxNk42L085VlFXdWZDTHlUT3dydXJrMEk0anlQV0RBS0JSbW1MWHBFU0tNbTB3UlVJSGx1Q1Zhc21EZUh5dUUxUVVsU1lDZVZlSEtHM2YwakF1RU53d2FHTjFIWmhkcUpOVjh4MmQ4R0JRTWJPblF3aGhpVWRrTldBL2o4SzlCbEtYeGI2dUVkU0hOTUdtRG5Ed2prZzFkZ0thT2IyWWM3YU5aNkJXeWdLeGxLTXFlMHFHeXNaUEdwa1BTbmlKVkkxMUd6bHBubFg1N1d4dE9RQWdIcW1oUWQ3T3JyQ0Uvelpla3B4aGhRK25pdXNERmNaVGdLL2pLVlJzVzJEVDMvYXBMb3J4dkYwWFlUQVJNc3FPQ09JcVYyc2J3c3pOQTA2NVMzRkJsdkRyUGlud1lRS2g0aW5yamJpclVxT25raGlRS1JJKzNpUk1VQTdQN01zdUNnWTN6Qjd3Z2VSR29rbVlBOEVNbzZoVkVRaER1bGNGUCsyQTE0T3YzYmlRYVVpd0kzem5pOHlGbkgxcXc4Ym52QjVUaEpoK1dISk5UOEpoVHhKYkJIK3JzUE9xNGpTMFhWZzI4T1NlMGMrQWpqQUZEUW5HdllHTjR4c2RGY2VHWXpGWnJpZERRQzE3OExwZGQwYTA0RGZnUnEyaUFrNFZQT0dXZUZ3K3dZaDlyNTJXQXc0MVBPck9HRUppb3h0NWY0Snh0M0NFMGJyaGtMM2xVMEUweUFZQVRPK0lYUG53c1duaVhiNlBhS1R6b2Z0WG56VGRXZ05LYVY5MjRiMURZbDJ0Q3NjRE1DTzhOOFgxZ05pdHh1N3FCT3hEdS9EN2dINU1uY0RVdzJNMXRBQXREM1dueE1qUTBaY2NRNm9DdHdEd2x0UmlTZ0dEK0kzUmZzVTFQaHRpKzBFaDBialhFUndlUVZvc2dqU2RmQVMxeVlUZGVlRWltOTZ0MTI1aUNEREsrTzdnVWZ3cnZpMGEwUUxJYkMzaFhjekdGSmZwKzBQN2tSWkJnby9PUEllMG5KYUF6QXNVK0JoMHkwZzNPM2RLQ1J6ZGw0bjdNOVFCSmNWTy9uQkpMbks4aEdETGtnUkZwaUJ2YWJqRHhSSStCSlZKWUVGWXZFcGtRVVNIZUQ1SEZ0Y016dExwUVg2U3FYeGlVa1JBRVZnRi9OdlBocjF0bkFMaUlRcldGSEdKM3NSY0w4OGJydzlJU3VBaWZlWnM0ZUJhVWFGKzZTendIMndTSGhvYTJwMFlBUENKeWcwL3lFWGJJTDZ6dzQ0RmZTQ0FmUUdLNWIwYnVRZjVnUlJ6WkJYcGNieXFEYjQwSi94NzhSalc1aEtIbkFxb0VSeGovdUxHendNY25MK0g0L1Z2aXB4cWdXeXc0K0tpYXQ5ZWNpWE1OdjJoMHFrYkpid0J4bnR1ZzI5MTF5WWFsMEg1WTJtNXhQWGxHSlFIbHVNU01ZS0tOMFVSV09oQnFwaStFYm5YTjFwMXJ0K2FTR2d5SkFQaVVaY05oY1MrTWNZakJqRW9HUkZTd1pQOFA0UlBuLzIzZE1BaDhNR09ySS9BaG9vV1ovOTdYZVBhZEowK0s4VzhtcGRDeEpkbXl4Q2ViSkdXZkRURmhGZmNHNjBNUEJDYi9manNFOHNjRDQ2VTR4bi9lL2NGVFlDbnJNSTJrU0p0clN5Y3FBaitCZE1TVGhHTFhhOCt4Ui9OK3JZZnhYcCtGTGJWalAxSFIyOWcxUk9NRi9KZit6OXVkdTAyREFGdDRPdXVCRUR3UTNuUGh1d0JQRjhKZkUzZ2Y0SVE1eDhzVUF3SjREM3dxZnROMFg2eVloMSt1RDdNWmtzOHdOL0tCUWdCVnh0RFdYUHpiVDZZdllpaTNBZnp2WkFsOTE3TWdmeTBIK0pnSGlUZHdQT0NDc1cyNDFsWngxWERrKzJLSHh6M2h1cmp6cmFpQk5iV3ZrbzErdGg0OGhkbHIvNGViWFArNFN6NFNBVWptM1lFR2FMVUxEOFpENFRDWXVMc09UOG5uOFYvQS9NdDJBQTdteWZMaGZDN2diUnpZNTR4dmVqNFVHb3ZzbXM2VGpmM1hCL2pidHYvTGU4WWFRUDRzRFJ3REl3Rml3b1ZrVGZHSjZXQXlHOXVDRFVIWlFaZEdrYnFrNWUrN2gvWEMrdlN4TDBnNldvbFV5dEFOT09LWEkyWVZNWmJzakNkQzVORkY3REc4NTMyQnYrQTVKS2RYNUMvcXZrenhLWkQ0YnpZQUlpU016bFdhTnF1R3pqaUNGQkZZQnJvcVg5RUdoWm54UkRqdzl5OVFXaWFROFNyQ3VmRUhtcU9WRTRxTFA4VWxRNUFiMmdRVktDK1diVXYvYnBPRnoxR0NabUprUDloUmRIYysxNUJjR01xQnd0enhYdWptTU04SzFvVE5taHpCaEpaM2M5Rzh6d2FBUlQ0enRaQWhQMzFqUExBb2x6NXZtT21ZK0lOOUloRGNqMlhHeDZmNjRXNHhsU2JKd0NhTlp3UTVyY0x5c3VLc25RVmxHYVRSOTJYQWNuMG1ia3J2WEFWbmhJaU1lbWRaRlR1QzZaOW8wSy9LWmZMcTIxZ1lQamF6UWRVOHZrWVN1cjRUeGlQd1hpYlJYK09kNFBScFRka1RQak5VOG9yZXNaWGJJQnY4MzJqWlNRVWE2Q3JyYWV3UHFMWUI4aDgwZnhnOWovMEJFTEd6Y24xY1NHZGpKcVprakNQU1ZVSWhpREFTemNydllPWTRocThIdkVnNzlZbHd1ME1sUHJqbGhMc1ZUR1FHcFVXcjZmZ1paQzByS1ZQSlI2WndhOXorUzVnU3J2Mll6bEE0VFRWSGxwMVZnU3hiaHZDTGFZSDd1NVVqM0RzTmdCNTcyTER5TDh4UlB3aGdCdFVDTFo1OVJlQWxaQ0dEeE9SNG90MjNJWGxKWklodkxTdkRxMXFZNlFTbjJFeUFDK3lETlRTK1h2UEo1RDJtNlJ0MExCWFRHY2FvOFMxY1RFdHV2WU4wVlN5cytjUEhyRU9WWUlOZ2p2UWtCSjM3NDIyeGtkZnptSFNva3gzQVdJeGpXOFBQKzhLanVPTWI0SU1MaElDSUFIQlJhTVRydFdnbWZnQXpBQW52SFBjRlJ2QmJxSk5xdytzaGpMTjNKQjhvQmwrdGVMWnZRZUdXZ1k3OEdMSlMvLys2NDdtZnlVejkweERpb3lUb2RjVHg0TEFnL2pIaGJzVmhpVjJER0NCSCtIU1RnUG5GVTZNQmo5OFB4a3UrZmpYOE5ONW5BblhhKzVqNkJDV0M4WEEyUXFCUWpBTHhMbENXdUZHa2x2QlhKOWxkQVErZ3laR0tNT3JpVVlCd0E0dUREdDVZVThnQ05HcURBU3JZTytYNFlMYVEvMmNOOXEwY0hnYktRWW5CNFA2NUVKaUpQZnBiamtIY0QwQkt0NG5vWDhidnh4VWp5cHpMNFlxWUdmalJCL1FCNUpna1MrOER3Uy9YMXdjWUtpMWVDU2tDSWdMU3A3YnpPWWtIeGRtNm9CdWptdzB5Z3preGozbGpKdzJyOFB3WStyb25oaTNrb1o1dU1XMHlWN3RNdTNmTE9VQ0NTR1FVdExlbDdSUm5Md1AzM1NEaFNVekdYOHIrMHZGSGpPVUh1TTNscERSK2JQN0J1ZTRIQk1iM3Y2YVIrcjJNMG94d3ZMb0JNVFJlQS9xTzBsYVVITitiSVNuV3ZTQ2tCaTd4aVR4L1J5eXl0VXlnRi9CQnJnQ2h1azRCTlVDTHI0RGg0YTVKTk5KTWVrUlVKUFZYVHplTnpnRmFVNDl2d2lJaWdZWWhlU3VVdmNSa3JBNXZQWUJJMGJEY1l4WVJRbnhGODVQc1RyQktSY3FLalZZTnhoaStoN1JCcnhLTHNWV2NTTVhaWW1DeExqaTdjcTlmREtDVUN3c0NyVGdMRmtvK1A0UVJnT2dCL2pDL3JBK0FBNXVCYU93RjhBY0NBcUVtR2phd0pwZ1M3aHRHWFNCL2ZLSkpBTmxOUlJSV3g2RVpOK0RkYmpsQ040akJicUhYVm9weHp3UytFbTZNdjczNEJVK0hHRm1PdHdZdzRzRk9mTUhhRlRnak1tNGxqd2dKbSszV205RUFxeVFnR080WXVDaGVoSzNkMjByZnVBQUZ0UjVCNFBkU0g3SDRIK2dQQUc3cXE4UGxBK3hyak00aWxjejZXRHRpNlZHMFhNRDgyZ2N1aEd3K3hnQS85dVhCcVBQS3JHUnNRMFdDa3FOZ3dMSnlGcTJlOVFQUW16cWYzSVJyWVJMcTFhQVBrSU1ialc4dzluTFNveDlXRVhPSDgrTDN4cDRNakg5OVRmbnZDbWZsZmdLYzIwVFc4YjRqWHRFUTFYbVg4UDZXTUJzVndIWkIzVzVqN29BdGtDTW9CRVNVZ2hsQlNCR2NXNS95R3ZaK2tKNThJWmEzRjBMZVlEd3NVTG9iajlqUjduYkNFam1mdEJhMElxQjdWaXhpa3RrTHNhakpVdlBGT05lejJKWEw1SGREaTRlbEFZY1ZRU0JBRWF3S3lHNXVFSXFBUWJMQVhtQUxjQjVJc01WU1pSbzltWmVSUVpacytkN28xUnJzY0RReXRBeWU2VG0ybVFjNG82Vi9vby83TTBzeEFhdDgwWW9qci9kZE1JV2VyZUVTTW9kYWNJbzMxczJ5aHdTQTJQR1lpUnRuQXhQY2x2NEJDbnZkRFU4Q1dNMElHRVJ0dGdzTGJFUkdlSmg3TlErRlBxTG5HTFo2U20wQXl0V0VOSStYWXNaNkEvQkFoVkNqOVZoU2NHUHVNQWlBQ0o4SDZHRFdMWnJiUndicVFoYkJUK1UrSmRrWnNqMXcyaGJJWTdBTndBRDhkVVliRnkzZ3llT2FXSWVOQi84c21RSlUxMnJBUWIyTTNDSVhnekhmSVJHc3RlbDYxamRYby9pbXdaRHFWSkc0TmkremY1dDdmNERLOXZaaTZHcytJRHVYR0E2QUlOekJNT1g5amZHcjNMOTNISllWQ3NuTnY3SnFMMDhVNzdSUHJTRWdoMGV0cHJjTTJRd2xQT0NkTUtVR2kzQWNpYlY5bXFVTXhnaTNWZWdBc1g1cVF5K3NNcFRLekUweUNtbHBPbERBU2dZeGlMY0hZbVJFeitvQjYzYkFRUjBFanMxN0UzSTF1blVYRDd0V1VUME1NRGZNMnpJelh1M1JqbjI4UGpDaFdTZG9jQTJ2MExSZFlMM0JUc09WbGNOVmVYYkFON3EydDZVVkpvWUFZNy9rUE1TZWEvbyswTGREQTVCa05CYy9oSERMQkxKNTcySlFOb1lUdVYyc2tmZ0llUVludkJWUVBqSkVKQmpEZkRBZ3dMTStoNldURmVqRzZrSUYrNHVBRnhZWkV6YjdBeUR1YjduMkN4UkZiZ0EyWnJSYTNOTTBtcFV2Z0IzaklkKzB3SEVhY0R2NTBSUGJUMzU1TEdReEh3VDJvR3RUSjQxTzdveHQ0WGRTcmpWOGVLWUVlOENXM01naVd4V01WdFlwU2VhS0FsM1E2N1FjTmdmcklRM001WEkva0JaV2hFdmkrcE5PYW9mT3ZyQVh0NFdsNzdES3cyenVsRHVlY0hzM2pKaGVFT0ZsTmVTZnJFUFYxa2JyUmZqaUwxZUwwVFNDekplZzVjbXlhYXRXMUFSNWk2V2UrME1KY0R3Zy93Y0VCUy9PMll2MXRuR01PTS8zUmErbjRSS1RaRHdRV0FBRDJ3empyMmd4Z0xWalNpVk1qQVc4MHZydkh2YmZuMVZUYlREelZ5TVJiaFpDN3d3UVp6L0RaWmhMYVR4MW1LZzlHS0Nua0tCKzBEUTBLV0NacGd5bDUxTyswR1JCVmpKTlhBZG1Ca0lGQTQvcENtd0NnQWhROWVpcXpCQWExZWFudnYvcXFmNDgvbC9KalQ4dk1QSmwwZnc2M3dJcEhCdUZtQlJjNllrQ2hjT3RjenN4M21DVUVvcWJtb0YxSE9EM0V6TGp3Zmw2MVhkMFBJckhrVEVBeWR4OFNzZ0tsSHQxMDEyc2dyeTk3TU1OMTFxditCV29CL01HQjdNb3NLT3EyWVA4VDR2cUJDalZOSElDL21KdThzbGdKK1N2WWVzQVFCYXZKUFBxa05NTUdKbFkrRzRjQjNka08wRDY2VWI0ZmtwUWZsVnN1azZBblJVMXI3c2FUelhiOGF6YjZrRTRMRitZRFNkWjhnVUJZTjlnUmV3WXptSGpBbmx6WEhFQ3lHUFo1MHdnbmhNUldzYWVIMnM1Z1IxQVZaYm13Nyt4YXZsYjEwa1BRRnh1cUhUYkp0T01oVUFzc0grUHhaTGhHMko4bnE3OEl4bjExNk1kMGpST1U4bUZoRXR1VDJ6OXMwSmxHUWxvL3JpUDBIbzB2NkkxSHZoTXN6bTV6aUFWVXZqNXMwNDg0dXFYRnVqR3dUYXd1dVdrMVlMbFZYaE5pQXQyQmM2RUh3WlNscHdOQ2NrT0FpNGlXL0J6M2hIT0JBYStEQTdNZitUSlhPWHh5NkQ5YzVYLzgyVitVT2JGb1lsc29rYjVRWTRPMjhERUE2QlNNTXp5enZITFZvbS9oQ213aHBGWnhWQnV1OFFDNjgxYW5DUkNBd0ZqUHRFMXl4NEVJVkNiKzFldkx1ZEZzd0xNQmljZnNSd3dDQUFsUUJQNkF2Y01tbGFXaDFkRDlMRmFzb01yS1hRNG5BZEVpSWdpaWpDQS9QNWFmVjVERWMxQThuZGFackNTMnR3aGZZYnlCMUNwVFB3R0YxNUdPSU5PMDRRRmFONW1rLy9wcW8wT3AvMUxPTlAzV3pZWWJJNTJKeVRRL1lpamJMTmtKcGZTdEpRQlMyTWR2dVd5ZVJvZEttMWo4VnpzbUc1Z1dNTkNza0R1UFdhUzJ4c1BBMzBYaUdyRy9YSVIvQU9Zb2dQTit1RVcxb1ZEN0VMZ0JhOW45T2VuWWN0V2pHS2NnL1VWclUwNDlyT2EvbnZITzFjdk8wVVArRGFjTDVRWHNIbi85SE9mcEhnL0pGTmptdUl2NEcySjJIRzEvVFV6S1RWM0RmQ01acFBZNWJidUNlZTAxSHh1Q0NPNkZxcmRWY2JPY1VDMkpKZzNlMW13WllrTW9CMUVqZ3V3akJta2lnQmFZR1kwNXpIcmZVUlR2M0VwT1hIVzMxNTgzQlVlUE8yQ1lUMStYN1BraEZkQWhJOFh4VWppUW5oM05nTHppRU8yL21GZUZyN3hxaFhrcjc0OXVNME9vUVF2c1Y3TE5FblpBOXFDRmJFYWN6MW1IaXhtZk15K1ZlUHQ3T29ET1k0NjBQRWZxd01xdjMreWhHRndFYlg4K1FDVytBdmF3YWp2MzRMWk9IQk4yelVSdTN0TGFSQXZaQmJNaEttd3pjc2FJOGpEampnUkMxOTdmV2Y4UUkvc0t5eENYdnZsWW16NytsanhhaTJMelNSWlBwdngwYmZ0TGkvT0FlLzE5dnNFVlgydUIzS04yMnRZbTEydEFVSEYwVHN3TUo2Mnd3M1JSVjU4V2M5a2p1WlRwbUlwa0M0QlNZVGdQbmlhaWRtTDJDalFLMWJpQkdhbXhkNUFMeE4xMml6OGVRbWdKTU5LcGxUdmFtMEFVTHNBWTRWWXRoeFptd0pJKzdSKzRLenZUNUxsdDdzWEx0UTBtWjRudlBCUGxobWJ6MlpJK0FNcktWNkRackhoRnYxSTBvSEttUFFuVnd0ajd0ZmkvejJ1ekRmYk5vQWM1ZytUdlVheE9raFpKQUFUQ0xZbHhYeHlXZmlXK2t6SXJFVlFBZnJiakI1YW9IOHRnQVVnSVNCZDFlUjlZWGRuTFR3RkdQUzI1OHNWV0pZSmdqS0xKWW80WHcwVlZoWEEvaHBWZzNkY3I5MFhjZ0owcWhpUmg4RStXaXBUTGpPQ1NOZW9keHNOaWRnYlc4bHF2OFppbzQwVnBXTlN4b1BzWHRrNkJIemQrMkJ5Z2xIQitTdkFRYmFCRzQvMTNValQ5QVhaZDVNSXNCbXJkTmtIYkhoa2I4Q2J6OVhNVkcxb3h5bTNoc3MrVm1qRENrQjdvSE13R3JUaWZubkJ0NTMvaSt3OHdJZkM0NWI3eTgrbzJKUUpZcHQyUFVCcWpvdkVmaUVxN0NuSU52Q0R2QWI4aTMxL0Nnd01lbXY1MHdPaGd5c0F2bkpHMEFPWUxkNlhqMnpqajdsTWtOakhtMWRiUWxsTGtWMHhEbjRiZGhrbm1vK2t0bWJlRklsNVBvc1dSQzZQRHZKVEVjNDJjbWZ3RDQ3TnFzTXRSOVNzeFpQWHQwVUxGTmpFZmJOYVVNSUw1OU1qOHV3S283dXlyWFFEeTEveUNDZ1M1aXpmS1ExZkIwYkFRMmJjOTJNczB0b1JNMVJ2ejZlMUNkTTVnRkxSeXFyN21paE5BcXdIaVNEMk5PT2EwaTgzYW1yZjZrbzA1OWxOeW1SZWZwWmZkVmNDYzMwTFd3a2wrdVVnc1VVL2ExT3M5VWtuUFduOVpZVDkzeWM2Rk4vL3ZOamY3bm51ZUV3dHlCWklhY0V2bG9WZGVMSFJvVC80K1JmOEJhS0d0UmdOQk12SUNic0I5OWZvaUltUmIwNlVOVi90Ly9LTy83d2grQVlUdml4RHJTYTg3YzVGYWEzd1NSSFBnREIydUdjSGZleW84N3J4QXljYTlWb2hnYW5VdW9TVFBaQWduU0lDRVlOZUNRWlpRSGw5TmE2UC83VDdnMGMyM1JsaHNSRGZvVnRLRWR4eGVqOHdVYk5ZSklXaFJ5Y0JlQmxrYlJFdHZoOVl4N1hjL0lCMVEyM1JWOVFPbWRQNk50OEQwcCtSLzJVN0ZwK0hwRTE0NUVKYjhaSmNHOFp4d1NXVEtkaGZLOVFHWHFIcEZ2MW1TR0RoU3NzTU1wU1l4MEJoaDJuYlVYRExCWE13Wmg0R2NRVVJ6ekJuY1dCTHNYQ25tVHAvMFVVOGNMYXdEM2lDOEQzUmN0YmJMUFJ0bjJOUGFMaWhTalFScWxXUTdGUWI3OXZTblpHemQxbHpjb3YzT2g5ZkZVS2F0dlY1Q1JObk1NeGtxc0VHNjlnQ1hzVU9UdnZQcnJzZ0hiYStueHdQL3k0ejdPM0RBV1hRUW4wcFc0YmMvT3FScFU1NGw5UFJDcjh3QXdlbnVOc1YwQXRydU5Lako3NFBUbjRWb2JFTUFVRXQ4ZjRiUkpPZko3MFdMNXJBd3loQUt1dmRyWm01YlhpNUxNTXg3V3I0OUhQYnJIdVozUzVsaUxpdG9XWWR6Ly9rODM3QlVoYWtJRFpBVmx0OCtFRXFMNzBremdHaWpWTkRIbitVWloyWUNzOVhzbDAxdHNXODJVNndiOThMNjQ3ODNnYVFSb21vVk5peEE5Z25iZ21pZ3hldnZCeUdOZHZMdGF6N2U1QzlPN1lLbEY2R1RTZlMxSzF1Wkd0aE11aW1WWE8zelpHWHdBQXRPRzA0M1M0NFdJaTE0QWFBeStoSlRtaWpkYlVOVkZ6SGZvN0dTeGE4R2dhQ1MvRXlrSnBxWVVlMFR0Z1FOV3NIZU9rZDN3cUJ3NDNWOXJKSkEzRTBoSG9IYlBtOHhRc1p0cnB2T1N6dmsyYTZVS014dWpLQVkwRWlZSkJXQmtQanpLMmNlcEtWTEtCQjhLMXJRTXBDTWRVL2JCL2IvdUJudzlZRnYzaGF0Sm5Gc29rQXhjM0JlUmYzcjlidVJuZnRkc2FpUG5iZEJRdFJjbzg4S0x4MlFwTXR0T0VScmxvd1hKYUw1ZklyNGx0VzRDZjRLeXNRQkZiVHd2VngrbTROUDBBZlpoSjNSQi9KZm9udEY2NXBFQ3lDUEFNN3lRNmR2SVVKSWR1T3JkaFd1RzhiWG80K2RvakhpWjBsYkRJMDZaVVRBQ2NhaUMzYkNZVWtBOWNBQ3ZNR2wvSmNHS2JIUWtUK0Z5SFpFMkNMYnpzWGh1R2hTSjkxcHNrY0J1UWVNUHE5eTQ2QnZaZUZFVHh3MDZIanZMQitFN2VRd3BrZmczSkdheFhTeEQ4Nm9jTW5xVkNjKzdITE9kMFhUSFBxUjVMSkt2WUhEeFAxMHlDR1lZSHpLb2FnNUErMVlRVWVwOGRnVEIzK1lldkdON1hJNzNkZnRqbEE2Y3FKTTBGVTY3QktwMzVyMWV3NjFjOE12c2g0L1lDQnFNbHNBQ0RsRVdBQXd1NDA4MVY5bTJ3N245NzBzL2UxL0JyWDVtNkdsUnFMZ0sycDVvd2UrTTNhVWxOSkZMU2ExWURlRyt3RytWdkdZNzdIM21BMGtLZDVnRlZmaXZZTVRzdUVPeUsxb3kzaEZRT2FkZmpXMmUzYkpCNm9kd1BKcm1KVlNtT0RiNlhSdmNCbnJiQ2JuWlh3M1c3VmtCR0s3TndJNjdRRm90RTFLOUFkSU9MSE5oVjgvelRpakUxOGJQSkh5SGwrOERPU1p2a2IzcVRaK1hCcXRZQkdwdy84Tlo3UDB4a0gyWGsvTDFoM1h3NmpFTk4rMDU3Sk5uUWt4WWc2R0JuUUFZNDNhMmZhK2IxMXhVRjJEWFlBVU5wNTNwTFY5M2RmMXRXZWR0MWhXNER4WTc0Tk9zTU5JSXdmYm5uV2hCV1BCZ1FRZUFQb0ZkWlJtcGp6VFNrT25TbFUxTmdzUDVBQTYxZ3RLOGJITkVsclZwZWwvekJoUm5kcjBoNThBTnBuV1hsLzkvWktYSGpZZUtvVnJ4V3RJUWkxc0JlZ1k2Zzdvb0FPZ1RkZmROT3VOaXo5YWNROWxCMVViVHZMQnpFQWgyQzVYeXZWNTc3YStCV1pEbXNQZGJ0bXhnUG10cUFaN1o4QmoxOVY4bXQxQ0FvZ285c0YycmJtYTZRNVAxNEkwYmp6MDRDY3ZHK3lwdmdCdFg4RkRXVDVnTDQxb0dHUHIvdVlxYnF0Uzc3TmVlZFdPZzdJZlBuMS9xcnhoNE5jOERsUEhJWURwb0hvejNRREtzSnF1dFJnak1lSW5WV3RwcFFOa3RoaW5ubjUrVnc0QlR1UldBdWNyQ0pxdEJOMStVNWhFbTRjQjJBUExONm0zS2dDcUw0cVU3Y0Y0U2lJVVVCem5sZTI2djdyanJWd3B0T3ZJanR1eWZnN3NYamdlREFHdUczaDY3Q2p1T1JpTlFPMFl1c1owMzc3aGpkY1dDS00xTVFzN1JhNEsvY0ZhQ0diZ3FLVEdMVFVZYkZJOVFiRmZraVY3UENKb0NORXIvRkpmTUtLRjVhZGwwSUoyVXRjb0ROTE9tK0thaTV6NmFjRkhYc045YmVieFhqTXRPTUM4Y0w1N2RIdDlXUTN3b1VUc2Nwaldlc0lXMlB2UU9vTDA3Vk1jdHBtanBHMGZBVCtEN1JmV2VVd2lZQVhlaHhLMEZLSEp0Y0xrTm1xZVNxdzl2MUFsRjQ3eVJxdXhraE5ONHhnZWJ3c09laVgrTmZEVXE1VHBldGJQalpqM2VXeWxla3RQNmxGZ3NISHhoTGk5eE8yQlVuL0pyTFBBd3dqK3JvS3FCNXVHUmRtbmhSMGhIM285NFZmL0xhanZuZ0ExdGU1Tm05SmVpSk10L2xJYS9WUS9mYldkVHVNQnZDVjlPV2dNRVF1Yjl0Zys4YlRzc3ZSeGdRdzlPbi9LRnpEZkgwMndqenN0dWtuczVxc1h4Qms4WDc3QVBvTndaNGlnNDFEdjlBZnE0cmlabHRmRUhKSTNEajVpbVpqV0RTZ3haTlBCOGs3ZVV3YjZONWs4M0VDOUo3WUp0YmlUbGMxeExiakVjVFhDb2J5TEhOMm16VjVPdVRPTWxKOVg1ejJHSlFUMjRoQUFXTWtDYkxDRG9BWnRpb0NKbTAyNFFGdmwyTnFESWFGVTRzTWpnY293bVpWOTNVeU5MeFVzRFNqbi9BOWdORWVSejV4L1I4K01qVjRqaFZ3QkUyMjlRbDZISVRQdVFnVG12U2c3VEV1bHVPRWt1b25BRDVZSFAvUXJWNXpoQXZDYkR3K0FUeFo3aTdFd2p3Q2NEQWVlbDVuTmZRT2w3MldOVnZMSG5XMjNqamo1NVFTU0REbU5waUtyS2U2NmdSMGJMbEIrT0VxQmdoNUpKTjZFOU1BNmRhd0xXTXhXRmNnQnNZODNGYStOMXcrWkFiYk5MdVc2Yk5DTEM1OFZiWlFxanFKQjVjSEFnSzJodzFndHlZa3VndjVzWnFrVDhFTU9qMDZTQXlpNEpnTmk5YmdReG5sQWtuQU5CQ0xHMUF2OXVqSUdSRHh1d0xpL3FIengrWTFhUjBQaiswelBsVW4ydzZrUU9vVHB2UERKSnRZMFgxdHl4ZmduY1hDT0V6dGdJc0FLOUgzZnFyUkM3b2hjUi9WK241OGJNYUJRTCtlSUZuWXAyOHJhd3M2QUdvTHE0OFZBb2RmV2xyOUV0TEhTMWg2K0oxRjVnYnZ2NGlEZEREYkFTOXpTSFl5c2s3b0FCQUhyQUFWeGM5ejlSSE5LNE1WeXd0d0dNRVVCMjRmSzNTZnlVaC9YVk42YnpEMng1WEdMMExBQ2x4bjJKSlZhNWhhczByclYzUno2bDMvN2N2RzBITDlieTU1L2ZPYS83OWQ4dnF2SHZQL3pTV3YvLzJiczd5b0lpUTBZRzV2YStLRTBpZjZrSDRMZVRjY24zRklKejhzZyt6MytJL0wvQ3lIY3hCK3RzTXNwZTIrTVBlZ252ZmY0SUJUdTN6OSs5Y05IdjBYTDJ1ZEpPWUZOZDZJbzUxVXVmMW8xN0xNOUF1WFExdWdaSmdpZkNkVzBNTG5Qait3SWh3cGgybzhoSFd3Wk85VEZHMW0xQ1RvaDBRVHVEV3JOc3ZWM20wUEtmYndYTisrS0J6eHJLNFpvR1pWc0RVZUQ3dXd3cHdPdlVHWjRKSExrbmowUmtoczZPYjZiT2I3ckhVR1c1U0JaZGhXZ3pWNzlEc2VheHNVL09JeDNWWnliSXRoYjl1QkhQMFJzRG1mSTVRc3EzN3QrZnF3elJsc2lFTkV4Wko5YXYxNUxJUUFEZk0xVE1vQ2htclA3Q2ZBQW42R21kakU2YlNEMUM4c2FJZkR0RlFDak8wV2pqdEQ3eGpPTjd6THJqSEwvWUp4TlNjZzdRRGdkdnJNNTJ3MTUwN0FDWnBnRk9XSENzT3VvZzJyZU96UDhIODUxWnJSQnVwa21mVm5kYUxmMUNkRE81Rkt5STNKMHUva3RpNFdDNE1KN3Rxd1NDaUNwc2R3ZExGMHlkaTVmdmZPUHB3ellaQkE4UWtJeUM0bDJ5QUNIaUdZcDUxbjlscTNsWDdjRWtNcHhiUXF4Z2Q3VHFPRkpYcXV6MGtmbWRHRUFkejFjTXJIbUR3c0hONlBpdVR1OXA5Q1dNVHh3MlZEN1NQR1pqeXVaUlVHRnlpcDJhdzE4QU1CcDFLQlIxQkV4ZkNiVmlBNDYwTU90VXdhaFZPZkc1emZ4ZzRub3phVzRTNG43U1FMR3V4VWorQXNiUE50UlFxK3JEM3c0eXZjZ29xU3dRYThUY1R4NXo4Vm8zc3NpZFp0WU1PeHBILzl6Zk82RzlYSmZBQnJLT2Q2KzJrNlpZc0ZLamY3QnZDMFZ1aXpNc1FhVllBOGtFYWkxRSt2L3lmYTNXQk9tT1NMVHp5N0NFLzhlRFVUZElvanFNbm04NDRvZ2M1aWJhQkI1eVhzYWY4RlBnWFFCNUp1eHJUZ0NwSzc1THlPamg5YSs4cllvd25LZi9LcDFFZ1dQeWN1RVIxamd4cW5XRXl6Qk9kQ0RXdlljVTdnOVR3aDNSVStMRlYyVE5hRmxDYzI2OHVIcVlJZGRGK0RIWjIrSDhBR2pKWWN1bW1GRFI1OGRoT2lmaFZENHJnWk5JbWRYSmRSSWhNUW9KaU5YSDJ2cERuZXpyNTY0WDRxVjA4akE2YWRXY1crckZTY0ZLZ0REWTVYbTg0OEt0bW8zOWRPSTlkMkxnK3lETDhRbTIyTVUxYjlUMjJ0ZzV6QTNOemxEbVhQMCtBMnNKbVFLR3U4OXJwMHE5QWpPT1pHSmV5N0dNQWdlSkRCTXJHM1JvRFhXYzZGM2ZPa3VrOXgyTnJQbVRsa3JSRlk1bkxTaGZrdExyRGhmMWdpVUt3OXJvNGNhbGhHN004d0NnUVlTaCs2RDIxaC9leGJDZllKWXRjL2N5QVhhQkwvMEU5UzFwQ1ZMc0ZhdFdMT3o1UkR3VmFjVVlmOU9mV2RJZzZ6UVFzQXI3a3JnSVFTeDNWaW5MRllDZHJ2VmNvOWZHM2N1SE1FNnNNWGlnR3RaQVZBZkQ2UXJ6MHM2N1NQYUtqR3I5UXpYVGFyWlhZQk84SnRSc0MyZDJmZzJhMThRMWJ0ZVVnZENXZEo0VkNBYlg4WTJ4a21ycVpOMlBZMFQyUy95Qm03QnVGN0R4NTZONHNrUTg2aVZNU3UyS2pGbi9kb0xMSnhOaU5ucDZNcG41U01jMENRYkpocXNMYnZrTjdxYUtUMWE4MEY5Wm5ZUEpNNVdqVmRtaUhoblo5dk1lUG53bE1iaU1iWmNuMlB5d1FlNzRrdk5uUTUyc24rTzUzUWNWdFlBc2NFYXA0c2NqMnp3Nnh6Y3ppRjB4ak9hdy9SS2RBUDlKNmp5cE5ZNTJVMzFRamxRY1N4VHJFa3kzcHU3MitGNlBQc1dqRDhUcmw3TFNacnR4TjJIcmp0ZGFmakQ4dy9yejJqdFZIZHlISjJobDl1em5jS1JVTGZUNWs5aG5qeDJmdXhiUGlaaGc2YzZ3VmQvL25YZWlxYkhjVmg0ZWRuL3dYNm9iSUgrK2JMWTVQeGQ0dnBIWGgxaGlnYUhyVmMwMExDbmk5WEptRUxNL3R1YkxMYk8zUjNqSThpblo2K2tuT3k3dXhrcEZoNEcyQUpCaW80ZCtwR3E4Nk9MOW1SUGRZMkNaY1BVQXBzeHJJajdOREtZRWtHUGhkYmJWSHJOSXI5dnBGcnB2WWFjc0NsWUFaUlpCemVaWWtRSnBkZnh0anc2Z2dYcERTYmNJeEFHa0dXeVFNY0UwYldHVWRMaWV0Mkx5Sy9xWnJEUi9pdkh0OWpkNFdEZVZ2Q3NoeXlkaGVuRmpxV1l0c0Q4Q0MyR2FZNzdhZVAwYkdNRmlmYUFZeHd3SG4yOVNURnlqSTJRelN2UmFaV3RGblpDV000Q1ZVYkh4elhOL01OSTMyek5YeHMxVDR6Ry9qQmJ1bm1sYzR3UDd1VExhRnc3aGxMNTU3ajNuU01mQXREWWVVc2l6OC95NTk1OU9lTVQwVFJxMmxBVEVtNEZvNm5JMXloTzIvcVBVbUo5U3dzbXoyR1RrZUM3VXdzTnM0aldyeWFMVWFTejhDRjdER2NKclhMZDdHcEFkRWNmQmljQlNiQWU3Q3I5Mm1CZ0pEZ3pzemtETXpZc2xyRE1rellDaUp1bEd3WVlhaldLRjdSOFpOdlNoTllaREwvTnhjeXNxbjZLQTBscEZ1ZG5mWjhuZ0dnYjNST1N2dWdheGpqTUhyQUZrSkY0V3UzMC92TWlnS2dINmpxWjBzTTJtd3I4R09zekM3MVlWTDJzZllyNUk3VzI1WGk0Rm9NZkovOXNvL0hvVzdRK2ZLY1dBSzJIbmdGRkhvNmNtckxTM1JpREFidlVEVTg4SXZCc3NEVEVHZVZRdS8yWHY5KzE2YzVqTEtPdi9jOGZZYm1ZL3lYai83NnN2NzY4SHV0OTlkVy8xOSsyb28ybTJZY3MyRTIwWG04dU05OU85UmdSSXhMZXh6WFluRUZGZzhuc2o0aHB5WGIrMUVOWUFzWmZ5QkJmTWRVdXZsak9rdXRtalVCeWlLbXhjRmZyOVdhVmVMMzNkVnFKZENRUFBxSGplS2ZSTUZwZEJIQ0c3ZGF6YWhzTXFBRU5FaC9taW02NGNocEVnb2R4dVUxaDhvNHRndGJheGNNTG1WYnhCckFSc3ZlZFdjVW1WZDAxSWR3ekVsc2dGZm5XWHd2YkpnMVNoWnhPbm9EVmNkdk81bkYydVFIWTVmNEY1UTRkSWUxMmd6bkZJVzdDZzJSSFQ2emJLaTNjdmU3T202a3h0amRWRXdGTmxhaHRvUnhWa3lpcWZmZEg1Tmh3QlV3eTBRSFR2QjQyQzJCcDhyMloyS1BCdHVHR1J5T3RJTHl4OU15UEgvVk0vdXpFRktKRjlDZU52UDNoeS90TU1nc084c2F1cFBhL296aytYM2l6L2Vmdnk3WC8zNDVuRUw5MTd2NTdiL3VkZjF1OXU4WCszT3pZWnY3KzRBNXdWbzRHSUM1ZnRZSmV1dTBBSm5RUWNEYm50ZWZCV25sdjdqZC8rM0xPWFhwTW1nSkttR2xMVEhGQm1sZklVYWZVb1ZYaGhYQ1g5N3o5ZGFIeGN0RGFobFAvTkZSRFRndDAvU25nK1kzWFhTViswOWxKazl3aXNrUTAxT3lqSE0zRHY0Q2NFYzZVVDRINTVuM2h1RmFIeEZRMnBGTzJXaHp1RkpDbVVCM1RsdnFqckxVNFJ6QVA3czVxWk1NZ1AwKy9UUGJacmV2ZFJ3MzhEcGV1Nlh0dUJIczJENnIwK2RaZk50Sy96enM3MUZ0MVhQU2I5UmxPaThRZC9SYVpmZllmRjJ1VXV1WVozelV2RSt6VE5vQ01qMDJTL0hzcms1N3lBTm9CUHk1bmFXS0FZZEFSTjFXL2NmY0U1RC9mejRKcE5zaEtkRVorZEJ1YTN1TElkb2MwWFZuWUJRMEpGbjNaSjNLWjA5NXU4Qkx2cXdlSXI0aUhpOW9tOG5FYnlaVEozek1OaVY4VzBOZzdFWlhkRWFNelp6M3dOb0tqSzVvYk1GSm1OYitQK0FTcDVjMHAwM01GSVVXay9mb2o2MjExWEc0SVFHUU1USHhWR25nMjRlOWZXVmNqOFBFQnRwbEZCaW9hT1U4Zmo5aGtuTUZhNHJOeStoeWhkMTJjWnpTRkJra0VCN290STZZdWcyMGw2MVYzU1lDUG4xTTFZMG5ldXhtNDRraXZpZndvbkQxM2NOcnRQZ2RDYnJqcXQ0T2NWYjZNRXRmdll6em5xNnp4eXBIVUtqMW5lY2dDZXhLa0gvYjBkUUJHZFpKWWUxNFRJK1hlREIzRDg0WFI4NFNMVlRFZEFBT3lFamx4NElEY2Ezc2M5ekZzbitUSmNNM2RTSENWZ2Ewejh1U1FHN3NTSVIvekNmSEhUbWtDY0M1Q2p6ZXdZZmdGNFVrR3ZBM2JlSElqZkE2d2hoOFVSMXVCcjIwUUxJMWdLVXpYKzFydHUzTStsN0FvNTFyeHIyWDRSQ2JvMWFSa2JYeHE2Und0eDNmaEMxWmpyYnNOdDA2bXJUWkpoMHV4eCtFaEg4RklJSUNiOGU2R01rNEpZb3hPeGtITUhVYjRyUnJhY3ZHckJoNlBXakRnbjBUREVqOGhZWVg2Yk1KV3JNWUMzTDE4R0pwREljQlliZC9NNkRPZkkvYlFWcE9ZZ05RU0hZVjd3ZVozMjFkZGErVFJuZWtLcHdqTy9kMU9FWWt2bzREZGhqK0djRTBucnV5dUdjMkZvRFNzckU3OVpxbFdPV2N3dkR1bk9ZNE15dXpnL0dCYXdyaTQ5em1NNGhrbEYvaG5vYlVtSVVzSHdQZ3pDelRTaGlDQmRHLzBFaFFITlRWdVRaQ25MYVBWZXY2dVhRN1p2Nk1lVisyemZJU29oZHJZVnQzSUlLbGFyQktRT2pGN2pkc2UvSkpIL2t4OStuamNkemN0b0tGMVRlU2J3R1Vsc2lBRkFyOG1DT2Jwb1k3dEFjb0VDNlA0bkE2aHVVTXAxUlNaQXUxL1pWTXZHY3k3ZW5yZDlhVk9lbmwrUS9RUWg3dHBIczYzaFk1WWRmczNPZS9aYk1pVW1TZ1dDNEQvTXZSbWppSFg2RDMzNGtyNlZKTVhyWlNMRmdLMWlzaXM3a0RqNDA3T2t3aE9CaXVRSHZDeWVNNW9VTHNhbkhhWWd1ZEZ2QnQzUUo3S2tWdlR0aVMrRmwyczY1ZG0wMDF3UmpQNUhtZHZNdWwzcE1iZzBBNTNXN0FPRHFJWTlvTEVneldMSHZjc2pLNk16QUE4Ym84cldHaVhzVmhQZ2tFYmwwd0dJR2ZldTM5QSt0SDUyMWlEcjVwODJNcGdoRWJwTzFTYmJhUGFnSXVQcEhuTktYY25QLytBdmRaVVpPUTJRNTlGSGFoM0V1MzdieVFWTGNRMEs0SkdOeGZZNnNReVBjNHhYOGJYU1U3TmdCNUI4ZFEyQnpDbDE5WDNjd29QdEVDQjE4K1FVMjNTWmIzUWw4dytzV3VKMjluSGF3VG1DcytvVGtZMzk2WmFuK2VrUmhkcTEzOWF4Z3lmUzN5UDJWTWQ3b3YwVlpsMjUyNlpnc05FcThZdjZmZGFUazN4dk9Gd3EvQkhxWUU3Ri9SbWhTbk85OUdmZmNKbjF4bzl3ZU4rRHl5Qld6czNNdHpwc2lYbm1pUnFaMGsyUmR5dE42L0pJTnQ0UG5uOUtyckgrT3JUS0RDR1ROY1o3RzVEaWMwL0dYenRPYzFGQ3YxK002MkpnWlB3UVo4VHRSeElqUU9NYldyQkFzNllNUGZWL0swWVE3U1o5UTFzejBRNHJVMTNwYk9Jay93WFNFUUsycHJFdHVLeW1wRTBhekxtY2VtaW02TXFIUFFVU3hXODhYcllhdTFOZEdPdTU0ek1vQjJzOEFzVnJIYkdHeGcvL2hJNHdNMlgvekViZ1dLZHVielduSUwvd3c0clhMR0w3L0FzQWFZRlpwaG84YXRNTllEWlhHMlJsRVFQbEJMdXh5MVpXOHlaSHBiWFZ4US9TQmN5cGEvcy8rc2lpMHNFK1Z6cUluaXNrOVN6V0J4YzJnNE9qNDMwSzh0eStudEdKeVc3ejdPdUxUekZsS0NKUGRqZHJHWThqMEVGa3A0VzhnVzdTMHZkalZhN3ZhT0s1WnNsNS9sbHVaYkxWcEhzT3B2c3VGdGRHSGdZdkNkR3ZjWm5aZFRuSXlRNjNJOVR3Sk5ZQWluL1pPNk94bGQwVU5VTVIwYTR1a1ZSdHFHRXdhaHFvZ2J6Z1FENUtEdzRXd3g0SktqVkR3bTVESzAvMWl0Q1RNMWh1ZjhWNHdHckFUcVlEN0U2Z04rMnFrZ0huNnc5bTVOUDJER0huVlBJempMT1Y5R2N3VmF4YzRzWHVqTVZpeUNZWFNXbDEvT202MU9sd3ptTVQzSVkySnRicTRNamlwWWFSczdXN3lTSmN3V2UzZ1NUN2RkeHE2Wnp3SkI1Nzg3MkRlbHoyS1U3cUJvVzVSOXdBWVE4WkFKamJyenZMN0w3cDdITWo5ci9lMVl6YzV0QmtMd0FqZHd4RzVlNEtUZGNmZm5EQlI3MjdOczEra2tnS2xsRnRTb0g1TG9kSGVZUFU0ME9lcjZYbzdkNG9HcUk1UU02emxWeGxaT0FGV1Foajl2cWc2akFzS01BWjVCQ0s4Y3ExV2p4OHJaTGZJdHAvS2lBT09NZER6YW5mcDYwalRnbUFxUW96alV5cWJGS0RjbzQ0VGpyN2dkTlpSQWpzYWg4Q0dhTlJ2MzdQVzMwdmFjS3VBRXlSSzVQZThlSGd2UERYTy80YlI0bm5rV0YwaU1hK05ieTRCMHoxMnRyTm0ybnpza0paaitCM0k1dTk2aFA5aU1kaVl1QThHclUwT0FBVHJxV2ZCcjRjbkcrZmM2UlgrYWZGYmx6QUZ3aERsNjVVU284Zm9zemFsYzFlbkhqNTJjRS92blJ2Q0NrSnJQU2FMZENiMjJ3L01Hd2VnaDdCZFcvc3lGRllxWkpXdmwxcnc2dE43REVTQWFxS2I5cEkrVHR1TzRUa2xqUGlOdGVYVUhFUlM3a3M0RzhNcjl6SVhVVE85VHkrR0V0MkszK1BLNEJZQklldkZ2MElQTGVwZDU2dGlzcGtBRnN4bDJHM2lUNGNWMHlwMUJ5S2MxcmhlYkdCOXIyRUcraUFZd3J0NW5jUDNGYXRnNmNzVFplcTBqMEZiTW1pZHF2L1RKZzVmL2paMCtFWXBkQnliQzNwdS82Y0FGTk1oT3JuQW9POThZOVVGcDU2K3QrKzNoc3gzODN5NTUzTVcvL0JUN2Z2MVRxSjczRGhXYzhadGZZckZyLy9kTDVwOVgvdHZQOFBRT3g1N3JPbTJUKzBhZHNSdFNhdERGdWoxbUFTY2QyK256WDh0SjFyRmdYdS84cGpQTzRIWkduYk9qMmpodmVQMXpYWDd2S0VQOVBlLy83UG11ZjMzQWZ6eGZCQXkxVlJ5bSs4QVQrMnRhYmp2SXltcmhRMXl6aFdUM2hIZ0hlKzh2Si9hbDkwK2IxOUVXREdob1dIL2tlK1V6Z2p3QWRvS1JHbmI5SElqenJDK2ZTanFMYUNOUTlKa1hacVpGQi9zdW85Vm5Ndmo0NEVleHZ0bm9mTFVrc1owT2lnZU54Rm5EUkR5MkIzNjZmS0w2RnVOL09NaHpSb1V6MVZ5YU5OZzdRTy9lVHA1ajllMVhyTGFpbndwcGlFVURuajhOV2pyMGZjMTRDY3YzWGF2Vlg1djA5MXRJQ2E3elVESXdkd3RPUUFnVGtRZC9ZV3FEWFp2WWs5Y1JCbVU3Ui9nSTZjMGFtV3Q1REV6djRUU3p3Q3Fpc3RZYkJ0Ti9Ob0VOY1VYVnZ3V25yR0VmdjM0N0ZOUVJjSjQwOGE1d2RZODYrdXhmOEFYT21GdkxWbmZ3K0ozdDZ6Nk92SE0yY1hWMkpaWUVZTHVhQ25lT0g5aW5GaVZmbHFQYVRIeE9mTE4xSU5qQ2J3SUVQYmYwZnZ4NjUrQjJtQ3Nza29YUnhlcFE0KzFHdzlLUksvdjd2OXVoSXlmYnlzOVpCV2pmb3FNWnJDMndXVDJmVXlhSDFYVk8vLzh6YXVXY0paWnhwZTB0OGJJWXhrazUzUW01TmlUb3pWNGpNN2dBOGU5WDg2L3lvUUFxTXErRGV3TDBKUHNFdUFOYytuR3c5OFVLZUpsdDdRRTNQNE94c3pkK2s0ZXN4TjRobUNGM1l6cmRvc2o4Y1p2eFdGenVYSWJqeDVEMHF6dkdjejhuaUtIdnJUYm1aTFBpYk13Wk1tcXpUZ2Rhb25RQlJ1bm8zZjQ2WGRKdW1uRG5DY1Z0VHF0K3pWREpIZU1haGp5QmRmYW1PRWpRR0M4S2dWbSsyN2JjYWxxQ09VNWVFRGZhOFJQR3doY28rS3IxeklhWVFxVG1DSU8yeHVOSktmSUttNVF4SXUxZEh0amxxVkZHMEl5L0EvS2NNeFZDZGd5RXNSR1dZWTFpQXl0SzQ4UUE1NDJiQzdZTFlOdEo2SW1ZemRQV0tqaW1DMTBkaXJlc0szRGUza25Jd1duWm1OZFl6YXRCeHNGQkdCMTlaUWUzalh6T0ZzV0ZoWFBnbUFIV1J6RGtsT3BxLzQ1VEJWN0lTZ2NlNHpsWE94cnlaL1N1cDJ2QWR4T0FFTjRJYnVGQy9PY2NEUWRjUEwybWF1TnBIcFpRWVFYcVBuWCtzTmd6NldlOURqVEJ2TDRPRUpsUS9XV0I5N1pIUERudTFRbW1BOUtQNlFBQ2R0WURhY0pwclFlcGdFSmc5QUtJSlRzWFpNOEhON2xnSlU5ZTZEWTR5NVkrYkxUSFVEUlBXektHSEhqR3gzSnBRZloyd0Jpa0pqdEVibjNPemJiSDdBN2I0SlBSRmRUVzdybGx6WnFKdzVGc3REdmI5OERaUEJPdzVXankzOU5WMkRVNzNMZW54bGh3NGlHc096bnpGdkF5RUIzbnpOZ0RjM3VjWEMvL01ndmJ3cVl5L3ZUVHJyK1pzNXovL3ExLy9jNFptbW5hMElIWXcrRjRTOVNRem5sc0ZqSlZxRGtneTU0OUozNGoxL0VjMVZOdFFSdW5yZ1loVHNueDBKYmNJQWpiM3JMVkZwN2Y4ZXpEYWNUMWdqMEQ4bkowSU1ZcGJiSkw1VDBaaVBramR1Q2svKzdyRzNRS0NhczlOb2Nwc0pvNVFKNnFjMlphc01FNnozTjQwV3RJTldHN25qNGQ2M3BtVE5zMGRRcElteFgvQUc4ZStZa1hGc3l3OFRZMWZsc045ajk4cG1LZmZCd0RtcldPcTBxMVNxOGZFSmVlRnhLQVpRNnZoWXlmQjl2QkFaYjcxb0tWQWw4emNPdEpUWFo1UEU0WnhvUlg2eUtBMG0xRDBXMHlkNmJTaVNMWFgyVFlzMjRNVW5pNG5tTWg0NWxZZ3BOMHJ2Q0p1K1Z3cllWN21WYm9POW9SOFppdjRZUHFxQmN3Tjl0NG5qLy82YS8vRFFhM21lc2M5MlVtNk1oTHZJNjRIR0ZoMWY0cFNQSGZ2aTU5M2JxcWZCRC9hMEdEVll0V21zQUVlcnlLM1NnQTh3cTczc1hJMkZxZUJ3QnlIQTcvZENZemJNMDVkbllreE5xQ25pT1krUmVkUDVLaENJVzROZHJzV0xJWWY4azFrM05qMlYvRGljTW12QS9XMEkyS25LbXJ3VnJuNHJGY0ZsSTRJZVdrMWEvL05xL3VtWGIyWWV1NFVZY3prQW9HNGxRVXlQUDBFS1VCV2hTTTQ4UHlKZkMrblV4Z0JiZlJRS2VncmVuOFM2T1pnODEzcUxlVkx2czljNnN0MDlKYWFFL0RtOUY5UXdZWE1LTURUQ1FRY0xKdUlIS2hoUG11VGxWL25DTnVCMkg5bkwvRXowaEwwam5BemtIb0EvNTlnNGJnSW13aE8zWG5BdXBvNW4wL1IxNkJOWndVTmswR2RTbmU2N3dMUkpBMTNBWnJzRWlHcnozaVlJQXNjNGNjODNPbUwvczlTbUczcG1jdW5CcG0yTFZJQmF2bHFaaUlQSTZTSGZIY1NLZytUc3ltclZHSHVZam53b0FCY1l6ZExOU2dUVXc4cmcvbytTNEw4WjdIdHVuaTNOeHNPKzNub0JnYjd5d1pibmZCVEJlanAvQitUS2FuQVZUcmhMTjFFL0djM2dPZ3ZIZkZjSDlHSEVCaVdGV0xXSVlENDdkRE1MbjE2N2xOc0U3ZUJGMnp2QitIZXRjS0JuRzBlUDg4eEk3bk5HY1RuMmRZWi9mbnlDdVB3b0hTL3M3SWFyZ293K1hoSEp5RXE3SC8rM01NdHVld05tZTA0QzdSWUtSb2ZSVWJ3U1dkVStRWXpISnlMYTloeUF6QkJlMTRFa091bDNQSFc3V1h3bmx0ck84SHRrYWVuWWtsbFB0ekdpT2dFUTd4MDd4UExPM1FobmVkempsWTUwVDdiNFBtT3g2bGdmLzliMzdVb0hZOThZVHFKSlhpYVdmQlRuZFcxTUM0VSs2c25KYm1lOUFkZ3Y3OEFOV050Sm5nRzhsTUNWemRtd0h0SEFFenpsR1JxNkRZb0RHbkREZjcweE13cVlLUW5EWDdIQ0x0eU5LN2ZkWFRPejA1OWN4M1FmcnJjRHlEZHJMQUxJRDdEbEQ1S3J1bXhKeUlpWlRIczE4OFpRL2s3YUc0dytIK3dTRkw4VDdCbHBvZHZnZUtWNTVQZHZCclRxcXpXMHhvNFBTNjRjUkZEMGV0UUtLNlBDUFM4U3hkc3V5cjhrOUFoVlUvejMwYUFUeWYwN3A0YkVudjdUcUpGOUNsZzJhVmllaWg1WkM5UitvdkI3REJBb2RRN0hBby9WUWEyMEpsMVE4bTBIR0pTTjFiQUtOcm56TW5vR0JCL1p1Ty9Cb3ZiQnNEYWsyZFo1M1lsb3ZpUEFHaTFQM0JkZWJWb2pPZXc0YkphNWZwL2pySzQwUUtYTXp6TEQzZEVna0oydTNhVC9ZemRyUGxZR2d3RkovSmY1MTNXcitUKzIrWGRZSDNPZHJIQks1UlRNdTFxb25pWUR0TFlWMkFOcERJSTJKL0JBeGt6RlliY3dkbDJpQ1lFY2hUc1c4OThmQW93SGxLWmw2bkhqaFFFMlZ6aXA1OXlSQ2RmV3V0djJqRjdqNk5uTk9CZFpDdmpvWHN2NGtoeTlFUDZWK1Z3b2cvTUJiejI2b0htb0phV2NFRG5XMTVsWDBYNXp4N0NvTVRiMDZ4Mll1dUJ5VVZNMncweFZOdVlyQUZyVnJwNDZrdGtBZnJHZi8yaWtlSGpnWmQ5emxDcHRXRDZJc1RLb0taaXZ2YnhUa1ljWGhnQVlUVUh1dlg4ZGU1ZUE0Wmh0VVUrdHhXaUdEQjM4dVdCQ2R3Mld0NzZ2L3pMMGJDNHRaUWYyWHAzNS8zenZpUCtEcGtPR0liWXJubFpmMTBIcS9MZzJYUVZDZlFUSDRZeEZxc1Q0Mi9uaFljMWZyZlhmcmtyWUtEMDY4bCtMWnRBUmlNT0ZyZGhqbVl4NDk1Mk5BNTZRNi9GZlJYNW91dHpFUHpEVnhDQVlQdE9pYkFMMzJDZ1NlRGpZNmJEeDRQZ0dMQ2NzN1p3STdBZkR6cEdMVjUwMWgydUtmYndmYnY4YTNnVzZoV0hGYzk3V2FtZE9YeVJWeGN6UzNvZjdjVkVjT2h3Q2ExQzQ3S2s1QTlabU1iZ0JxZVZYc0x1a3l3T0hJWExDbjdpNmJjUHFjdEd0TXNRVXAwVGlscUo2ZDVvMzJtSXg4blY1YUQ1aEgrYUlOem1QUDZwU29GYXNIMHROT2YwMkQ5bHFOM25kRWI0enJUbWMyc3RUT1l6VURmNDRtb3poN3BKeTN6b212ak50MWpxV0p4aXFPbE0veVk4MU1xSy9VQXBSMm1XVytQdXdSSEZEdGNBQmt0Z2ZkZTV5SzNQL05xZVVpWThNblF6TlNkQzJTZStINHdBTHVlU1BHTXU4YmtNYjdaREJlT3VucWVGTXpRTXQxNENtRytDd2RXSCtjQ3ZtVTFzQTk0Mm41YnozNTF2TUE2WTF3ODBleHhMay8rZFZNOGY4N1Z3c0J0VDY0QmRGMVdUTnVRNy9HQXJMT1QvZmM1SE9aOHRCNjNQSm9ub0p3SVRzQzdyNG9yaTU1NitwMVJxeDdNbU9EOVZyRkFRSjBYamJleWlMLzhUUzA5Ly91RkJNZm1hUXBPZFRRRVpxT0RTZnVURVR4RFVDOU1qR2JaZVFmSXlHMEZuUU9tSEhhMFR6cXQ1Tjg1UHRaZEZhZXMyMEg0bi9wLzZVS2RvL0NkdlAzZks4M2ZadkFXUkhMYUJUM2w3VTM0eFZvZFRGQTgzdkp6T1BuNzRnKzNaL253bzlwS2VJaGQzazZVQ3c1OXkwaVEyNDM4VktNcjAyTlZzSDhuVHZTZTA3V2hDajFZRGNvbnJuaHFUWkRrVTNuVG5aNTRzeUxvd0x6UElRT2oyVzZKRUU4bktOcDhiM0d5SWJieU9Ea1poZ0RvU0pjTkx0YVBXVG0yaHZQaGtzZmtnYUVmaDhNSEo1YS9uZ3I2Mmd6ZG5PMnBMM0w2cVJXWW5yV0J2RUhYMzlmanc4VHhqL044K1Jtbk8rQ0lkYVpXN0s3b3NNOXUvUTRPK3daMk8zcjhPY1Z5ZUFCMmFEcE00RG9oRkFDNStHVTYyZ0ZnNWJBZ2c5UFJVOEtEeHhFNS9NekRUNnl0aE94Nzh0M3lhRGxJaEFLUzhQMC8wb0tjTjFOaWdHWkQxMkU2cmNhSjJxK05EaW44OHRIMmJpZlU4UFdjS1N1dGNlWEpRdWRRN3N0Y2RRd1oxbStlZHppdVl0M0NRanZSRGV1Yks1SXh6eE9UdzMyV09UQWxveDhrMGV1SUtET28xck1Ta1dYZFRJRkkyS2xSREpuK0NpdzFUTTZlM3RGRGZLM3g3UmFFYnVNTDJHSGtkVHYwc1RuWjY4OWswN25QSVhNZTBwREZhR3hyR3lmVmhLa2YyOWxtRW1qUFMweW1mOHpqLzg0N0F1cjlacks4QzFPQmVTMmUrUHhyZ2JRbXBKNGhua1hHNlFHTjFWbmlGaVpoNHExbWZteDF4S2ZiakhRNldLWm52enpid1ZPNGpUZWVmQjJ2M2U5d3N1YU9uclJvekJTVnc1ejVUQTdBaHZyMWc5YnZEeVhEdFhtMldKYVlwdGtTQW96bU90SGZFNmxONFFHbHpwRkdOcFFBOHl3TEhSNjEzaDJpM0o1cXM0SDlXTTZybFdBODV0M1J5eGgyUUdNTW5qMm1EeDNRVUIyY1d5eWVsdVp0TEhnemNlRXVPNURXSkNPc3RsMW53aXcyMi9PL3krZTVndmFOVEpkbHRHTTVrY1BuOUkwNkNPSjJCb09EWWhUTlpGdnJPUXNsTFk5eWFpZjV4MjRhWGJIeHFXbmVUdnJPWkp3elJ0WFk3V25BVmt4Z0V1SDEvdGpkalZMakE2dERGSk1CYnE5L2gyTWhEcEhTWEVIZWx0bjltTTVSV3g3QXhMN1pHOHU3MnJpaHF6WWN1YkgybDlVZXJ6bnpjelM5REdlbk03YXBXZk53Q2xkVzV6WGY5M1I4WTVGd21kbkdHNk9BbnZzVHo3SGZGK1ROZ2pWTFM1cjhJdU81N3p3OGRDSmo2UlpiWUNWRkVoMDYrUTAzalgzVElYZ3YrWkJkcDlhd3Z4N2VpZzJ3RU1hS0pydzZUMlgwZEZwMyttWHJZVDh1Q01IQ3VaZmxvUjNZeDlJTlpUM3VnTW5UeTAxWVo5Nzk0TW51NVpFWUNJQnpSb1NrRm0rSm9MZkYzR2RtMWhsbzdSQ3d1czhCMzFhN2xQWmRBUy9aN00wS1R0d2Q5em5zT1ZuVHREekJRalY5ekN1YkVuUzRQUGFlYjJlSHdsYjcxN09uRmZlK0w5dWpIVCtGM21WUDMrck9CdkRjUC90WHduTU9WUExRR0E5eHFpYmcyRi9KWnZmSWVnK3R3YXpwZjY1ekxDckk1ZnIvQXBZVHFBOGFKZXJZQUFBQmcybERRMUJKUTBNZ2NISnZabWxzWlFBQWVKeDlrVDFJdzBBY3hWOVRwYUlWQlR1SU9HU29UaFpFUlJ5MUNrV29FR3FGVmgxTUx2MkNKZzFKaW91ajRGcHc4R094NnVEaXJLdURxeUFJZm9BNE9Ub3B1a2lKLzBzS0xXSThPTzdIdTN1UHUzZUFVQzh6emVvWUJ6VGRObE9KdUpqSnJvcWhWNFFnb0I4OUNNak1NdVlrS1FuZjhYV1BBRi92WWp6TC85eWZvMWZOV1F3SWlNU3p6REJ0NGczaTZVM2I0THhQSEdGRldTVStKeDR6NllMRWoxeFhQSDdqWEhCWjRKa1JNNTJhSjQ0UWk0VTJWdHFZRlUyTmVJbzRxbW82NVFzWmoxWE9XNXkxY3BVMTc4bGZHTTdwSzh0Y3B6bU1CQmF4QkFraUZGUlJRaGsyWXJUcXBGaEkwWDdjeHovaytpVnlLZVFxZ1pGakFSVm9rRjAvK0IvODd0YktUMDU0U2VFNDBQbmlPQjhqUUdnWGFOUWM1L3ZZY1JvblFQQVp1TkpiL2tvZG1Qa2t2ZGJTb2tkQTN6WndjZDNTbEQzZ2NnY1lmREprVTNhbElFMGhud2ZleitpYnNzREFMZEM5NXZYVzNNZnBBNUNtcnBJM3dNRWhNRnFnN0hXZmQzZTE5L2J2bVdaL1A4YTdjbUx3MFh4dkFBQUFCbUpMUjBRQS93RC9BUCtndmFlVEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFBQjNSSlRVVUg1QWNDRUNRU1IxL1VNUUFBSUFCSlJFRlVlTnJzWFdkNEZGWGJ2cy9NMW5UU0V3SkpxRUtvU3ErQ1NGRXNLS0orb29DZ2lJclN1d2d2dlNnZFFTa1dSSDFGUklvRkMvS0NnQ0NDUWlDMGtKQzJ1OGx1eXZhZGNyNGZPek5zR29ZU2l1eHpYWE50c2p1N00zUG1uSHVlZWorRVVvcTdWZjc4ODArTUdERUNmLy85TjhMRHc5R3paMC9FeHNiaXE2Kyt3dG16WndFQUd6ZHV4T3paczVHYm00dEhIMzBVTE1zaUpDUUVhOWFzQVFEczNic1hJMGVPeE9uVHA1R1ltSWhHalJyaHQ5OSt3OWl4WTJHejJiQjU4MllVRmhiaTBVY2ZoZHZ0aHNQaHdOR2pSMkV5bVFBQW9hR2hTRTVPaGlpSzRIa2VnaUFvcjRJZ1FCUkYzNytKS0lydzNTaWw4aXVobEVMZUFKQ3lyd0JBS1NYUzVTdXZaZDRqNTg2ZGk0bUlpSWpUYXJVeExNdkdNQXdUeFRCTUJDRWtIRUFOQUNHRWtCQUFnUUFDQU9nQmFLU05CY0JJdnljQ0VBQjRwTTBKd0FIQVRpa3RBVkJDS1MyaWxGb29wV1pCRUFvNGpqTzZYQzVUWGw1ZVh2UG16VTNTNzFDZnJkei9oSkN5bjhudkFRQWxoSlI3OWRrb3d6QWdoSUJobUxJYlpWa1dMTXVDWVJqSWY2dFVLdVZWM3RScU5kUnFOVFFhRFRRYURiUmFMYlJhTGZSNlBmUjZQUUlEQXhFVUZJVGc0R0NFaFlXaFJvMGFpSXlNUkhSME5PTGo0M0g0OEdIVXJYOFAvSEpqaE56TndIWTk0dkY0a0p1YkM0UEJnSUtDQWxnc0ZoUVZGYUdrcEFRMm13MTJ1eDBPaHdNdWx3c3Vsd3R1dHhzZWp3Y2Vqd2NjeDRIak9QQThYMnFUQWN4M0UwV1J5QUJYQnN4S0FabjhmeGtBS3dWWXZ2OXYyN2F0Z1Y2dnI4ZXliRjJHWWVvQVNDS0VKQUpJQktDN1RZYlpCZUFTcFRTVFVwb2hpdUpGanVQU3JWYnJoUUVEQnB5WHdjMEgyQ29EdkhJQVNBaWgwbmhSRUhKNVlBZ3BCWHkrSU9jTGVtWEJ6aGYwZk1GT3A5ZERwOVVpTkRRVU1URXhDc0NGaElRZ0xDd000ZUhoaUl5TVJFWkdCdHEyN3dTMVd1MWZYSDVndTNZWk9YSWtWcTVjZVZ1ZFUzUjB0RmZOcVFETVpLMU1CamI1M3NtYW1pOTQrZjYvYi8vQjZKalkyS1pxdGJvcHd6QXBoSkFVQUkwQWFPL3dXK2dHY0ZvVXhWT0NJSnh5dVp5cDZSZlNVeC9wMjZkQTBoUjlRVTBzQTRDZ2xDci9YMEdqbzRSaHdCQUdERVBBTURLWU1aUmgyQXBCalZXeFVLblVVS3RVVUtuVjBLalZFaGdTcURVYTFFcElRRUJBQUFJREF4RWNISXlRa0JEVXFGRURPVGs1YU5xc0pRUkJRRXhNakIrWi9NQjI4OFJvTkNJM054Y21rd2tGQlFVb0xDeEVjWEV4ckZZcmJEWWJIQTRIbkU2bm9xV1YxZEQrUVVzanN0bFpCdEI4TmJOUzJsaFpVSHU0N3lQczRuZVd0TmJwZEswWWhybVBFSEl2Z0FaMzJXMDZKNHJpbjdrNVdjYzBHdldmWThlTStYUHYzcjJpRDlpSmxRQ2VaTVlTU2dnb1FFQklaU0RIZ0dFWnNBd0RobUZwS1lCVHNWQ3hsN1UybFd5aXF0VVFSUkhCd1VHSWlJaUFYcTlIUUVDQVlwNGFqVWJVYjNBUGFrZ2FYR3hNTENLam92eUx6ZzlzMVNmRnhjWEl5Y21Cd1dCQWZuNStoV2FuMCttRTArbUUyKzFXekU2TzQrRHhlTUR6ZkNsUTgvR2pFVjgvV2dXYUdhbkFYNlpvWm1QSGptVWZlK3p4VHVHUlVlMkRnb0k3RUVMYUF3ankzekhBYnJmQldsS01WdmZkYTZPVUh1SjUvcERWYWozODZxdXZIdnJpaXk5NFFraFpvQk1yTW0zTGFIRzBsRitPVWNBTkxNdUFZYjBncDJKWnNMN2dKZ0Vjd3pCZ2lGY3pMK3QvTTV2TnFGVTdDYUdob1Y0VE5TSUMwZEhSaUl1TFEzQndpUCtHK29IdHhnbkhjY2pLeWlxbHBSVVZGU2xhV2xYOGFHVzFORms3OHcwT3lKcVpiR2I2YUdTK3ZqSkNLV1VzRmt2am9LQ2crMW1XN1FLUXJrZU9IQW1OVDZqdHYxa1ZTRzdPSmJScDNicmNjK3JRNzRmM1JVWEg3aThveU4vZnZtM3JOQW5VS3RMcXhFcEE3cklteHpDVUlUNGFITXVDbGJXNGN0cWJDcUlnSWpJeVFna3c2SFE2NkhRNkZCVVZJUzZ1SmdLREFoRWNISUxRMEZCRmU0dUppVVZ3VUJDeXN6Smh0OXNxdmQ3QXdDQWtKZGRGU0dqb0xSdnprdUppWkZ5OGNNdlBVM1czVFhaS0tRd0dBMHdtRTNoQmdNMXFyWEEvaThVQ2s4bFVTanV6MisyS2R1WUxaUDhBWWhWR05XV0h2MlQvZ1BqNHg4cUNtY1BoNktiUmFIb3dETk1EUUZQZjgzUTZIWDRFcTBTY2pnckhKdFR0Y3ZiVmFyVjlhOVpNd0tYc3ZKTTh6LzlpczlsK2JaclNhRDhoRUh5QmpsSmFUcU9UL0hNQUlaU0lJa1JDd0lnTUJNSlFoaEhBc2d4aEdCWXN6MUtlNWFGU1NSb2NwNElnOExEWnROQm9OSXAyNzNLNVVGSlNBcTFPRDZmTHEvazdITjY1WnJOYVVWSlNnaUpMQVFJREF4RVdGblpGTFRYajRnVTBhM0h2TFJ2emkrbm40WERZLzFHYnJ1N3pWTjF0b0hiczJER0FNQWdNQ2taZ1lCQmlZa3Z2NDNBNGtKT1REYmVIQjhlTDRBUVJna2doVWlpdkZLVDBSbEZtbzZBVUVDbUZLRklpS3BGTDcxYld4S1NVRWlxWm1jUWJybU9jVG1jZmpVYlRoeERTQjBETmE3M21IM2YvZ0kwYjFzTmtNaUkrUGg0ZmIvb001ODZkeGRBaGc1UjlKazJaaG9jZWV2aHV4YjhtS3BXcVNWaFkyQnRaT1hrNWdpRDhZTGZiZjBwcDFPQW55VndWS2dVNVNpa0ZvZDRBS3dVaElrU1JRQkI4QUk1bHdmTXNXQlZQVmJ3S29pakE0WENBNHppbzFXckZYV0czMjZFcExsYUFUblp0T0J4MjJPdzJGSmlNQ0EwTmhjMW1RMlJrSkhRNlhhV2djU3ZsbjBEdFpwM25YUVZzQm9NQklBeWlZK0lxTmwxeWM1R1htd3RUdmdsbXN4bEZoWVdLSDgzaHNNTXBtNTF1Tnp4dU56eWNCNXhIMHRaNEh4OGFMMEFRZU1uY0ZDR0tzc2xKQ2FVaUtBVUJLTGxzY25yLy8rMjNBOTBURTJzL0doOGYzL2Q2d016M2VoYk1uNHVacythZ2RlczJLQ2twQVFEVXExY2ZQLzc4S3dEZ3BhR0RxMjI4TjZ4Zmg4Y2U3NGVJaUloeTU3VnN5VHM0Y2VKdmFEUWE5SGl3RjBhOCtocFlsZ1VBWkdkblk4V3lKVGh4OGdTMFdpMTY5dXlGbDRlUFVENnZEcEdPV2ZQRXlSTXZhclhhRjZkTW5aWXpkTmpMMzludDl1K2FOV20wWHdJNG9ZelpXbGFMazRJUElrU1JnU2dTeWdnQ0JJWUZLekJFWUhtSW9raWRUbWM1WUhNNEhGQ3JOVjVYaGpTLzNHNDNuRTRYSEE0bkNpMEZFdEE1WUxmYkVSRVJnY2pJU0w5YTdnYzJ3R1RLUjJCUWNMbjNiVFlic3JPenZEbHArZm13RkZwUVhDVDcwUzVITzkwdUY5d2VOenh1anhmVU9BNDh4NEZUQUkwSEx3Y0VGRkFUSlRDVEUyaTlJQ2FibWFkT24yMFNFQmpZajJHWXgrMTJXK1A4L0h6RXg4ZmZrT3M5azNZYWtaR1I2Tml4RXdBb0M0RVFBcTFXcS94ZFhmTGh4dlhvM0tWTE9XQ2I4ZlkwTkduU0ZQK1pQUmZGUlVVWU0vcE4xRXlvaVg3OW5vUW9pcGcwWVJ5NmRYOEFzK2JNZzhsb3hMaXhveEFWRlkzK1R3Mm9sdk9zNUpnMW82S2loL1YvYXNDd3JCekQ2YzRkMiszNHoreTUzNzR3OFA5T0FSQWs3VTBneEt1WVg5YmtLS1dVVUVJRVNpa2hvaWhTUWtRSUFrTloxdXVPY0xsY1VLbFVWQTRxcWRWcXVGd3VxTlIyeWFYaDlkTzZQUjdKWEhXaHVLaFEwZVpjTGhjY0RnY2NEZ2Vpb3FLZzErdXY2YnEvMnZJbDNsdTlFai85c2hjQThNckx3MkN4V0VxNVl5Wk5ub0llRC9ZRUFKdytmUXE3ZHU1QTgrWXQ4R0RQWHRXK1hoZk1uNHR2ZCsxVTV1anJJOTlFLzZjR0lEMDlIVXZlWFl5UzRpSUVoNFJpNHFUSnFGWEw2MmMrZU9BM3JGbXordTRDTmw3Z0VSZ1lWRVo3eUVGdVRpNk1SaVBNWm04S2gxZExzMTcycDhuUlRvL2tVL1BJL2pRdnFBazhENTczRFFnSXZta2FwSFJBQU14SEgzK2k2OXlsNjFNc3kvWW5oUFR5ZGFyYVNvcXUrenFQSHorR0dkT25LWnJBNDQ5NnpjeCtUL1RIb01GRHF2UWJodzRld01vVnkyRXc1Q0V4TVFsanhvNUhTcE1teXVkN2Y5MkREUnZXSWQ5a1FreHNMSVlQSDRGMjdUc0FBRWErL2lxeUxtVUNBRWEvK1FaVUtoWUpDYld3Y3ZVYWlLS0lybDI3NGVHK2ZhSFZhaEVkRTROV3JWdmo3Smt6eW1LcUVSNk81d1lPaEVhalFVS3RXdWpZcVRQUzBrNVgyN3lvd2pFYkVVSWF4Y2JHVHJpVW5iZmI2WFJzbnpIOXJSMmZmYmJaQ1lDWE5EY1o3QlNRazMxeGhGQlE2alZUS2FYVTdYYUQ1M2tpQlJVb3ovTnd1OTFnV1JWNE5RK092K3l6NWFSZ2xMV2tSQWxNZVR5ZVVnQVhHUmxab2ZZbWlpSVloaW4zTndEazVlWGgyMTA3UysyLzV2MTF5dDl1bHd0REJyK0FqcDA2QXdCV3IxcUo5UFFMY05qdHFGZXYvdFhaK2syYUtJbnNWenJIc3Y5YnpHYTh0K1lETkU1SktmV2RXZjk1RzZOR2pVSHpGaTJ4YStjT0xGKzJGSXNXdnd1WHk0bUZDK1poNWVxMVlPNG1ZUE1ORkRpZFRwdzVjd1puejU3RnhZdnB5TTdPUWw1ZUh2THpUUXJBRlJjWHd5cVpvamE3SFE2N0EwNkgweWRYelEyMzIwM2NiZy94QmhFODRIbU9TRGxwUkJSRlJoUkZobExLVWtyWjFOTm5tMmRjeXA3ZHJmc0RKMVFxMVFlK29PYXJQVjZ2dEdqUkV0dTI3OEtibzhhZ1pzMEViTnUrQzl1Mjc2b3lxRjA0Zng1dlRadUNFYSs5amwzZjdjWlRBNTdHbU5GdndHUTBBZ0F5TXpNd2U5Wk1USnc0QlR1Ly9RR1BQUElZcGs2ZERJZmtyRit4Y2pXMmJkOEZBRml5YkRtMmJkK0ZsYXU5SldnTXcrQzVnYzhqTEt5RzE5bDhNUjBIZnZzTmJkdTJVN1RLRlN0WFE2ZlRLeFA5K0xGamFOYXNlYlhOaTZzNUppR2taMEJBNE1vRmk5N1pYNzlCZ3lscjMxL1hqRktxaFRmaFdRTkFEVkFWcFZRbDMzZDVIa2h6Z25BY1J6eVNOdVp5dVlqTDVTSXlXRG1kVGpnZFRqanNEdGpzZHRoc05saWx3SlhOWmtOeGNURUtDd3RoTnB0aE1wbVFsNWVIckt3c1hMcDBDVzYzV3puUEkwY09ZK3JraWVBNERoYUxCUzhOSFZKS0cxdTBjRDVHdnZGbXBXUHkzWGZmb2xQbkxvbzJPT3lsbDdING5TV29VN2Z1Vlk5dlNFZ0lOQnBOaFordFgvYytObis2Q1FCdzRzVGZlUE9OMThzOWNNcjZ5Ujk5N0hFMGI5RVNBSERQUFkxZ2xnQXpMeThQWVdFMVVMTm16YnN2S3VvMVNZM0l6c3FXbmlMNUtDeTA0TUtGQzlqOXcvZm8xdTBCdUZ4T09GMnV5NmFucEtWbFptWWdyRVlORUVJZzhEemhlYStHNXZHNElRZ0NZVlVxOEJ4SFpKSE56ZDY5Ky9SWis4SDZaL2Y5Yis5VEgyN2NBSTdqVUxkZVBVeWFQRVZaVExlVDdOeTVIVjN2NzZhWXNMMzdQSVR2dnR1RjNidC93TURuWDBCRVJDUTJiUHdZdFdwNzFmOUhIbjBNUzVlOGc2eXNTMmpZc0dyMWpxa25UMkwwcUpGd3VWeTR2MXQzZE9sNmY0WDdyWGx2RmZRQkFYam80YjQzN2ZxcmNreENTSzJJOEloUlFjSEJvekt6Y3JlV2xCUi8xVFNsMFM4QTRhWElxaUJwYllLdkJnZUE4anhQR1lhUjh4ZXBsTmRJR0lZQkw2Z29ML2dtY1h2OXQwNkhvMVErcEt6UmVSUnoxV3VtUmtsSnZhMWF0Y2F2ZTM3QnpCblRrWk9UalNlZmZBcmhFa2hzLzJZYjZ0YXRoMGFOVXlvMXpiZCs5U1VXTG41WGVhOHlZTHBlZWZiL0JtTDBxRGRnTmhkZzMvLytoMWx6NWlxZm1TMW1USjgyQldhTEdXM2F0TVhvTWVPZzFXclJyOStUeWo1ZmZQNFpldmJ1RFFDSWpZMkR4V0pHZW5yNjNhV3hpYUtJOVBRTE9IUG1qS1NsWFVKZVhoNU1KaFBPcEtXQjUzbGN5cnFrVkJMSWVXcE9oeE5PbHhPVVVuamNIdUp4dTB0cGFGTGFCcUdpeUJCQ0dFb3AwKytKSjFVWExsNGFQRzc4aEIrN2RMMS9xOWxzZm1yRjhtVjRkK2t5ZlBMcFoxQ3IxTmo2MVZlM2JaQWxMcTYwbjY5MjdTUVlESGtBZ0tDZ0lCdzkrZ2VHdnp3VXp6MzdOQWEvTUZBWjM2cEtTcE1tMlAzVEhueng1VmJrNWVWaHcvcDE1ZmI1K0tNUDhmdnZoekIzN255b1ZEZm5HVnpWWTFKS1lTbTBJQ2d3Q0F6RFBCRVdWdVBUUzlsNVc5TE9ubisyZWZNV2VrcXBEcGVKQVh3MU9JWlN5Z2lDd1BBOFQzaWVKeHpIRVo3bjVjQUJjYnZjeE9WeWVWTS9IRTRsVjFJT0h2QThyMVFzaElhR1FxL1h3MlF5SVRjM0YxbFpXVWhQdndCS0tZWVBINEUvai80QnJVYXJnTFRSYU1DTzdkOWcyTENYS3IyMjMvYnZRMUp5SGNUR3hsM1hXUGJ1M1J2OSsvZEhmSHc4T25Ub2dQNzkrNk54NDhhbDlna0tDc0lycjd5S0wvLzdCYnAxNzE3cXdUaCsvRVM4OCs1U2JQcjBjNWpOWm55OWRVdXA3Mjc1OHI4b01CZmdxYWVlQmdEbzlYcE1uaklOOCtmTnZuczB0cUtpSXB3L2Z4NnNTZ3RUdmhFV3N6Yy96V3IxbXBwWldaY1FHeGVIM053Y3hNVEVLRTlDUTE0ZU9JNERJUVNVVXNKeEhnQUVITWNSUWVDQjBqV2FaUE5uWHdRdldqaC84SktseXdjUlFwb2VQSGdBOCtZdkJCVkZ2REZxdEdLQ05iem5IdVRsNWQ2V1l4VVRFd05EWGw2cDkzSnlzdEd5cFRmdmFOLy85dUxUVFo5Z3lkTGxTS2hWQ3dEUXBWUDdpclNhY21EbmRybnczWGZmb2srZmg2RFY2UkFYRjRjZVBSN0UvdjM3eWszYUgzZi9nR1VyVnQyMGhOT3JPZWFSSTRlaFVhdlJvR0ZEMyt2dEdCZ1kySEg3em05ZmRydmRuMzM5OVZmL25UQnViQWtoUkpCOGNiSVdwL2ppQkVHZ2xGSXFpaUk0am9NZ2lKUmxSUWlpUUFSQm9JSktnQ0I0UWM4M0o5SnV0ME9qMFVDbjB5bmxXYkwvN2Z5NTh5aklMOENhTmFzdzhQbEJPSHNtRFF2bXo4V2t5Vk94YzhjT1dHMVd2REw4SllCNHlSeUdESG9lYTlaK0FLMlVRdkxGNTUvaDVWZEdYUGQ0ZnYvOTl3Q0FEaDA2SUNNakE3bTU1ZWY3aFFzWE1IL2VIUHhuMWh4czNMQU90Uk9UOFBERGZTRUlBbHEwdkZjeGhYdjI3SVhEdi8rdWZPL1hQYi9neHg5L3dMdExscGVLbHJkcjN3SHQybmU0T3pTMjdPeHNuRHg1RWxsWldjakt1b1M4M0R5WVRKZURCVWFEQVlJZ0lpZ3dDRVdGaFlvZnJTQS9INElnSUNRa2xHaTFPa0lwaFNBSWhCZDRJZ2c4WVNRQndEejVaUC93aTVuWll6dDE3bklvSmpaMmNkcnBVMDJ6c2k0QkFKS1NraEVWSFkzT25ic29pM3ZIam0vUW84ZUR0eTZRSXBrNkFFQWx5aVFaaEI3dSt3ajI3dDJEdzRkL0I4L3orT1dYbjVGNjhnUjY5dks2Qk0xbU13Z0JHSlpGY1hHUjRpT2hZdWtxbHJqNGVCdzZlQkFjeHlGZm9tblNhTFg0NU9PUDhQbm5tOEZ4SElxS0NyRnYzLy9RckZtenk2YndqdTNZOXZWV0xGMitVakdmcXQzOHJ1SXgzVzQzZmo5MEVQUG56Y0h3VjE1RllHQmdSWURlUktmVHpYbjIyZWUrUDM4aFk4VHE5OVpHU1JxY2xsS3FvWlNxZlRVNHlRL0xlTWtQZU1MeEhQRUdEZHpFN1hZVGw4c05INTljS2UzTmJyZkRLaVh4eXI2M3JLeExPSFRvQU9yVXFZdHUzUi9BdE9rem9ORm9ZYkZZTUhUWVMvajhpeTNZK05FbldMTjJIVFFhRFRaKzlJa0NhcWRQbllMYjQ2bFduNmF2SFAzakNDWk5ub3I3dTNYSHUwdFg0RlRxU1ZCS1VWeGNqQmNHL3ArU29uVDgrREVrSlNjcmYzLzA0VWJNWDdDb3d2RUgvdVhwSHBSU25EMTdGcG1abVFyRkVLdFNvNlM0QkZhYkZRNjdIUTZuRTlrNTJRZ0kwRXZPVjRMaTRtSVFoc0RsY2hPMVdnVVA1NEVvQ2dCQWZPaUJHQURraHg5L0NibDBLWFBZZ2YzN2hqRU1VeGNBT25ic2pJTUhEeUl3TUJDZE8zY3RadzdQbVRNTER6elFvMUlmUjNWTDJRVGRCZlBuWXNIOHVYaXdaeSs4TlgwRzZ0ZHZnTGRuenNKN3ExZkNrSmVIMm9tSldMajRYY1JJMmN4OUhub1lKMCtld05BaEw0QmxWWGpzOFg2b1g3OEJMSVdXVXNjWk0yWWNGaTlhNkgwUzE2Nk5kUnMrZ2thandZS0ZpN0Z5eFRKODhmbG5VS3ZWNkhwL053d2EvQ0lBUUJBRUxGcm9OUU9mZmJwL2FUTngwK2JyTm84cWtxb2VjK1JycjRJUUlERXhDV1BIVFZCOGtGZVF1bHFkYmtiZlJ4NTlvY2VEUFQvK1p0dlhuNDBiTzdwWTF0NGsvNXVpeFhsVFE0aElLQVgxVnFoUVFSUWhpZ0xoZVI0c3kxSzVjcVVpaWl2NVlXVXc1S0ZHalhBMGFOQVFaOCtlZ2NQaHdKaXg0NnFVMnZQNVo1L2lxUnVjVm5QZ3dJRktQeHZ3OURQSzN4RVJFUmcvWVJJQUlEdzhIQzhPRzRiWFh4ME9Tb0hrT25YUTd3bXZiMjMrdkRsd3U5MFk1Uk5vbVByVzIyalFvQ0VLQ3kxNGVkalFmMit0cU5WcXhmbno1M0hwMG1VLzJsOS8vUVdHVmNGdXM4SHVrNXVXbG5iNnN2WkNLZFJxTmRIcGRMQmFyVEx2RnBHSUlBbkRNSVJTeWlRbEpiRjc5dTUvbVdYWmwzLzY2Y2ZHKy8rM0Z6UCtNeHNBa0o2ZWpubHpaeU1vTUJDRFh4eUs1czFiS09lMWJPbTc0RGdPNDhaUHJEZ2llUzROWGJ0MnJmSjE3dDI3MTA5UVdJbFVOcGEzY014T3A1NDQvdEh5NWNzM2YvZmRkeDRKNEJRVEZkN2FWUG1WeXNYMkRNTlFRUkFVL2plVlNrVlpsb1ZhcllaS3BWTElMV1hUTkNtNWpzVDNKcEZaeHNTZ1pzMEVKQ2NubFV0M3V0Rnk4TGYvVlhuZjloMjdWTnQ1L0NzMU5xUFJpQXNYTGlBcnk1dkM0VXNFeWJBcXJ6UFc2WVRMN1lMZGJnZlA4NGlPaVFIUGNYQzZYTVJodDROaFdSQkNpQ0FJY2k2YUV1VThmZWI4TXk4TS9MOFJScU94Ylh4OFBQTEsrQTdxMUtrRHU4Mkdnb0o4TkcxNjJjVGEvT2ttbU0xbXpKZzU2NFpkcTE0ZjRFZXdxeHliV3pobWpXclVDSisvYytmT0owcEtTajRNQ3d2YlFRamhmQUZPMHVLSVY0c0RwVlNnb2xTckovbmpJSW9pVWFsVTFKY1ZSdGJhQUlLaW9pTHdISzhrKzdyZGJyaGRMcmhjVGlRbEpsVXJIVkpBUUdDVnlxb0NBZ0tyZGFEL2RjQ1drWkdCOVBSMFpHZG5LMG1CY3RLdDFXb0Z3N0JLS29mSDQ0SEZiSUZLcFlMYjVTWTh6NE5LQmVyZXRBMkdpQ0pQQkVFZ0FKZzJiZHAyZjJmSjBsY0RBd1A3VHBveUZWTW5UMFNOOEhDb1ZDd0N5aXlXanAwNm82UzRTRWsyTkJvTldQUGVLaVFrMU1LUVFkNG9Jc093MlBqUko5ZDF2U3pMd202M1ZmdVQrRTRUdTgxYWFRa1djNHZHekc2emdsV3BRQWhwRXhvYTJrWVFoTDRtaytuRHVMaTRBNFFRamxMS0UwSmtnQk5CSUlKQ2hDZ3FCSm1pNk0wYWthbXRSRkZVekZNQTBPbjBzSmFVZUZOQ2VEa2xoTHRjeWVCeXcrbHlvWllVOUxuUmtseW4zajhXd2djRUJDSzVUcjFxSGV0L2pTbEtLY1daTTJlUW5wNk9uSndjR0kxR2hXWklydmZNeWNrQllSZ3ZLMGVwc2lpZWVOazRlRi82SUZsTFkwNmtwalVJRGc1K2pSRHl5cTB5bnlvSDhreVlMUmJFeE1iNzBjeFhhemZrSWpJeUFvbTF5MU02WldSbXdteSsrV05tTk9RaUlpSUNTWW1sejRuanVIV3BxYWtmdDJ6WjhnSUFEZ0F2UlZJVkg1ek1IK2ZMQ2VkRGNFbkxtcVV5SlpJY01aVlRROExEd3hFVkZZVzR1RGpVcmwyN1drdnFicVg4S3pRMnVZb2dJeU5EQVRXejJZemk0bUtmSW5ZSDNHNDNSRXA5eTZJSXovUGdCUjZpUWl0RUNRVWxvSlQwZjJvQXUzRFJPeU5abG4wRFFNTE51SmFnNE9DcjJqOHhzVGJ5ODAwd0duSVJGQnh5MTJ0dWRwc1ZOcHNWQXM5WENHb0FrSlNZQ0pQcDVvMlpmRTZpSUpRRE5RQlFxOVhEV3JSbzBjZHV0Ni90M0xueng4ZU9IZlBJQUFkdmtNcTNBRi9oaHBOQmptRVlJdm5mcUV4Ujd0dGNSZ1k0WDlaZXVlZEN3NFlOcjduVzlIYVdPMTVqS3l3c3hObXpaNVU4R1Y4T3RiSmtrSVdGaGZCV0MvRGdLdGZTR0FEazNJV01uaHFOWmhTQUIyN21vblM3bldqV3RPbFZhNnNYTXpKaHNaZ2g4Q0pjcnJ1VG8wMnZEd0REc29pTWlFUmlZcTEvMUVZeU15OGh2NkFBQWk5VTI1anA5UUZnVmFvS05iV0tSQlRGUFNhVGFWMWNYTncrUW9odmdJR1hORGRCQWpSUkRpNndMRXQ5d0l5cTFlcFNKSmErUFJia0JqSnlkNnlrcENRMGFOQUFOV3JVOEFQYmJXTnVHSTJsMGpsazJ1NktHRzdkYmpmc2RqdGNMaGNSS1lVZ0VVRXFXaHFsQktETWthUEhZcU9pb2tjUlFrYmY3T3N4R2ZNUUZ4dUR1TGc0K09YdUZvL0hzK3FYWDM3WjJLZFBINE1VWUpBMU9NRW5jaXFERzVXMU5WbFRVNnZWVkc0QldCYmNmRTNTK1BoNEpDWW1va0dEQnYrcUpqSjNyQ21hbFpXRmMrZk9JVE16VTBubjhHMnVJdE82K0RMZENvSkFQQjZ1SXZZTkJnQno0ZUtsL2lxVmFqU0ErMjdtdFRqc050aXNKUUNvSDlUOEFnRFFhRFN2OWVyVnE0UFpiRjRiRVJIeEhTR0VsY0NOODhsL0kxNGxUeFI5R3Y1UUg2cDVXbG11VzJWMXA5VVZWUEFEV3hYa3dvVUxPSC8rdkFKcWNqcEgyZVlxWmVpN0NjZHhBS2g4MCtVdVQ4eTJiZHRxaFlTRWpNbThlUDdWbTMwdHdjSEJVS2xVaUkrUFEyeHNySDlGKytXeU9VVkl5L0R3OERVZWorZUQzMzc3YlVPM2J0MnlDU0dNYkpwU1NubGNabDRXdlY0SjZoc3BKYjVSMDdMcElUSjl2UysxdmNmalFkMXJZUER3QTl0MVNscGFtcEo0SzNlTktpekZkT3NvQzJyRXB4ZUI0a3VEVkRuZ2RydWZVS3ZWWXdHMDhpOGx2OXlPb2xhclgrcmF0ZXQ5K2ZuNWE2S2lvblpMdmpkR0FqVlplNU5UUWNwcWIrWFNRc3BXTHZoMlRwTUI3cDU3N3V5a2I1S1JrWEZIbktoY0hpVUhDWHo5YVdXMU5KOU9VY1JiV096dERDV25jRkJLeWM4Ly94eVdtSmc0am1HWUNmNmw0NWM3eVBlMmJPdldyZXNuVFpwVUNNRGprK0FyeVA0M3VXcEJTZ254OWIxUjN3b0Z1ZlZmVUZCUU9iK2JIRlM0VTlOQlZJbUppYmY5U1hJY2g5VFVWTVYzVmxHSHFBcTZRdmwyVS9jRk5jWnV0M2ZSYXJYakNTRTkvVXZGTDNlWXZEbCsvUGlVWjU1NVptMVNVdElSQUN3QU9YcEtVSnJKRjZJb2doQWlsMlFSbWYrdHJJYm1XMlR2Y0RoZ3RWcFJWRlNFbEpRVXFOVnF2eWw2bzhYbGNpRTFOVlVwa1pLckNYeGI0aWs5Q1NUQ1BWbFRrMDFQQ2RnWVNpbmo4WGlHc3l3N0VZQS9vOVV2ZDZRd0ROTWpNVEd4Y1VsSnljcVFrSkF2QURDU2VTb25sWmNLTE1nV0QvVUtrYXNYZlByWTRrckY5U2twS1pWMnhicHRUZEhiT2QzRGJyZVhBcld5MVFSbEd4YkwvalRKL0pUclBCbFJGRWx1Ym01OGRIVDBCRUxJcS82bDRaZmIxZDFpTUJoZ05Kb2dDQUpzTnVzL2ZvZm4rWFZIamh4Wk4zbnk1RnhKYzVNckY1VGllcCs4TjBpcElYSVNyNUx6Sm5lbUwxdWxFQjBkalpvMWF5STVPZm0yQUxmZzRCQ3dMSVBvNk9nclpoRGN0aHFiMVdxdEZOUmtobHU1OTZKdmtFQUdOWi9JSjJPMzJ6dHJ0ZHFKaEpBSC9jdkhMN2NycUIwN2Rnd1VSS21HcUdKVzJiRDZEUnZYNmRydGdmYzZ0R3Z6QndBRzNzaXBUSURxcFVYeS9rT2x2cmRlalkxU0wwT1MxQWRYM3VRZXVvSkl3UXNVSEMvQzdSR1FtSnlBb0tCYlg5bGl0OXVRbTJkQWJsNGU3cnYzM2pzSDJJcUxpeFZRazR2WnpXWnpoWnBhSlpGUHhaL21kcnNIcWxTcXlRRHErWmVQWDI1WE1SZ01vQ0RYVkwvS01FejNXclZxSjU1TVRWdlJKT1dlSGFDVW9ZQnYzdzFCb2dzUnZiRUFDc2tDQmJ6cmhDb21xUnhSbGN4VVVhUVFxUlJOcFNJYU5taUk0SkNRV3pwV2dZRkJDQXdNZ3NtWUI0UEJVR0dhMUczRm9QdkREeitnZmZ2MmlJbUpRZGV1WFRGaHdnVHMyYk5IWWVpb0tBTHFWdm9QZUgxcTBzYUlvcWlhUDMvK2xQVDA5TFhmZi8vOWJRTnFQTTlqMUtoUmlJNk9SbWhvS0lZUEg2NTBkL0xMM1NzbVV6NkNncThMTU9xR2hvVXRQbmYrNHZDRzl6UUtBS0NUdW1mSlBSZFlTc0ZTS25mTEVnalBjL0J3bkplcDErV1dlaXg0dTJOWnJWWVVGeFhCWWpIRFpEUWhKeWNIR1Jjdkl1MU1Ha3FLaTIrTE1Rc01Db1pSNnB4V1Z0Z1pNMmJjRmllNWQrOWU5T3paRXlrcEtYamdnUWVRbEpTRW9xSWlIRDU4V0k3c0tJQlcxdnlVdFRRdnRiTEFwS1NrMVByODg4L25kdTNhZGN5QUFRT1lrSkFRZE9uUzViYTR6b2tUSjJMYnRtMzQ5Tk5QOGV5enoyTHAwcVU0ZGVvVUhudnNNZi9xdm9zbE56Y1hOY0lqcnZwN3AwK2xZdDVVN01lSEFBQWdBRWxFUVZTYzJlalZ1dzhBTUNxMXV1T3ovL2RjU0t2V2JTNTh2ZlVyQitCVjNTb3pmeWxBY0xtUnQyU08wc3VicEtrVkZPVGowTUdES0N3c1JFUkVCSUtDZ3FIVDZmRDExMTloL3R6WjJMWnRLd290aFdncG1ZYjUrZmw0YTlvVWJONjhDVC8vOUJPYU5HMkswTkF3QU1CZmZ4M0h0Q21Uc0hYckZody85aWRhdDJsN1RWMndOQm9Ock5aaXhGZmdhN3R0VE5HMWE5ZWlhZE9tZU9hWlo1Q1ZsUVZDQ0ZxMmJJbUNnZ0tjT1hNR0tTa3BsU1hlbGdvU1BQamdnNjBhTldvMHBWdTNibjNsbTNlN2lOMXV4NnBWcTdCcDB5YUZtdWo5OTk5SHo1NDlzV0RCZ2dxYjN2cmw3aENydFFUUjEyQ0dOcnluRWQ2ZStaOVM3Nm5WNmtGZHVuU0ovdVhYLzYzcGZuK1hFNVJTUmtJM3hUU1ZzVTBVQkpHWGZHMkE5OVVMZUJLd2dlSkMrZ1Z3SEFlV1lSRVJFWUdNakF4UUFJR0JnZGk2WlF2V2ZyQWVHbzBHWThlOGlTTkhEcU4xNnpaWXZXb0Z1bmQvQUgwZmVSUi8vSEVFQytiTnhhcjMxb0xuZWN5Yk13dnpGeTVHVWxJeTFuM2c3U3Y2MHN2RHIybmNmSHNGMzNhbWFGRlJFZXgyTzNKeWNuRGh3b1ZTUHJYRXhFUWtKaVlxS1IxMnV4MzUrZm1rc0xBUU5wdU51Rnd1SWdnQ0k0b2lrNVNVMVB2SEgzOWNzbno1OHI2RUVIVHAwZ1ZIang3RlcyKzloWGJ0dkExNTI3VnJoOW16WjZONzkrNElDQWhBdlhyMThQMzMzMlBac21WSVNFaEFhR2dvaGcwYnBoRDNVVW94Yjk0ODFLOWZIeHFOQmhFUkVSZzBhQkRzZGpzOEhnK2FObTJLQngrOEhKUFl0R2tUdEZvdGpoOC9EZ0RvMzc4L1dyWHlGalVjTzNZTVRxZXpGTjlhNTg3ZVR0c0hEeDcwcjI2L2xCT3oyWXl4WTBaaDBQUC9oOEdEQnVMM1E5NTVrcDJkalFIOW44Q1QvUjdGcURkR2x2ck81SW5qTVdUUTgzMW0vMmZHMUpTVWxDNEFkS0RVdDVFTUs0b2lLNjhicFlrTXg2R2twSmdZREhsZVFrcW50M0Z6WkdRa0dqWm9DSTFXZzVLU0V1VG01aUF6SXdPN2YvZ0JLVTJhSUNEQVM3SmFJNndHL3BMbS9WOS9IVWVYTHQ1NUhob2FpclMwMC9CNFBERGs1VUduMXlNcHlkdVlKVHc4SEg4ZFAzYkR4KzJXYTJ4eW9LQmR1M2I0OXR0dk1YZnVYTVRGeFNFa0pBUjZ2UjR5MTd1YzBtRTJtd2tBcUZRcVFpbVZ1NjR6VnF2MVdZMUdNN1Z2Mzc3MUd6WnNpRVdMRm9GaEdMUnYzeDZQUFBJSXBreVpvaHh6L3Z6NTJMRmpCenAxNm9SWFhua0YvZnIxdytPUFA0N1RwMC9qMUtsVDZOYXRHeDU2NkNFODhjUVRXTFZxRlJZdVhJak5temVqY2VQR09INzhPQVlPSElqbXpadGp6Smd4K1BEREQ5R3VYVHQ4OHNrbjZONjlPMGFPSEltWk0yZWlSWXNXQ3JBVkZoWUNBSEp5Y2hSdzlIbTZJaUlpQXRuWjJmNVY3SmR5OHNYbm05R3NXVE1NR3Z3aTB0UFRzWHJWQ3JSdDF4NEpDUW40NzVhdE9IZnVMT2JPTGswMVAyL0JJbWx0RmJVWi90TFE4QTgvK21URjRFSFBmeXNwTWtTeVRqa0tDTjRIT0JHbGZGNFFRcWhLcFNKdXQ5dXJ4QUdnb0NDRWdkdmxnczFtUTc0cEh3QkJabVlHQWdJQ2NQRmlPbFlzV3dwQkZCQXMrUW1MaTR1aDFlbXdZL3MzK09tbjNkQm9OTERaYkNncEtZRldxNFhINDhIS0ZjdVFtNXVMb3FLaUd6NXV0MVJqODAzcEVFVVJBd2NPUk4yNmRXRXltWERxMUNrY1BYb1VxYW1wS0NrcGdkdnRSa2xKQ1pIQVFJbjRNQXpEQkFjSHYvTGxsMTh1MG1nMDllV0dGenFkRGhxTkJvUVFoVmxVbG43OStxRmJ0MjVRcTlWNDRva240SEs1TUhmdVhBUUhCNk50MjdabzBxUUpVbE5UQVFCSlNVbFl2MzQ5K3ZUcGc4VEVSRHoyMkdQbzJyV3I4dmw5OTkySFNaTW1ZZno0OFJneVpBaWFOR21DQ1JNdVYyazk4OHd6R0RIQzI2UFI0WEJVbUF1azFXcWxEbGwrOFV0cGFkMm1MWDcrNlVkODlPRkd1RjB1TEg1blNaVytKNG9pWnM1NEd3LzNmYlRlQXowZW5IWXE3ZHdBQURwcDAxQksxYUJVQllBRktLT2tSd0dFWlZYZ09BL3h1RDArcmY3c2NIczhjRGdjc0JSYWtKOXZRbEZSRVU3OC9SZkdqeHVENTU1L0FkMjZsYVl1bkRkbkZqSXlMbUx4TzB1aDFXcExLVE5qUnIrSnhvMVRNUEtOTjZ0bDNHNFpzUGttMzhvcEhTNlhDM1hxMUVHclZxM1F1SEZqUkVSRVFCQUVHSTFHNG5hN0pYWU83eE5IemxIak9HNThTa3JLZ3RUVTFDcDNxUEF0STVNSFBDRWhvWlJUVWdhYXZuMzdvbmJ0MnBnNWN5YWVlKzQ1dEdqUkF0OTk5NTNVT01NcjA2ZFBSMFJFQlBiczJZT1BQLzVZNlhOUVZ2UjZQVHdlVDduMzNXNTNwZjBSL1hLWEExdnJObGk1YWcxcUppVGc0NDgyNHUyM3BsYnBlK3ZYdlErZFRvZUJ6NzhBQUZIQndjRnZmZjNOOXNFQTlCSzRhUWtoYWtLSWlsTEtBbUI4QW5DRTQzaDRPQTlSSXFaT0p6aVBGK2hLaW90aHNWamdjYnRSWEZLQ3h4OS9BZ1FFSmRZU2hJYUZLZVpuaDQ2ZE1QS05VVkNyMWZCNFBBcHpiMGx4TVVhUEdZZmVmUjZDeStWQ21QU2RPeDdZZk11a3NyT3prWk9UZ3kxYnR1RGl4WXRLbmhySGNkRHI5UWdKQ1NHQWwvN2JGOVJXcjE2dDVqaHVPc013czBWUjFKWHRPSDVGKzF0VjNnS3ZyTmgzeVpJbDZOQ2hBekl6TTlHaFF3ZXNYYnNXdlh2M0xyV1AwV2hFVGs0T0tLWDQ5ZGRmS3oxdVFrSUNYQzVYS2RXYjR6aVl6V2JVckZuVHY0cjlVazdteloyTncwY09vMGVQQnpGNXlqUWNPblFRL3pUWDkrL2ZoNzIvL29vcFU5L3luZGU2SmsyYVRybjMzbnVITjJ2V1BCQlNPZ2lsVkEwcEhRUUFTMFdSOER4SEJJRW5QRmM2SFlUbmViamRic1drVkdzMGNEZ2NLQ2pJeDhXTDZkajl3L2RvMUxneEFLQkZpNWJLZWY1NTlDaVNrcEtoMFdnUUd4ZUgwTEF3YUNVTGF2KytmV2plb3NXZDcyT1RDOXA5YXorTGlvcVFuNThQaDhPQjVPUmszK1JiSW1zNGN2czdBR1RuenAxQlBYdjJuTW93ekxpaW9pS2NPblVLUTRjT3JmQjQxOHRPc0dUSkVreWVQQmt6Wjg1VTNzdkl5Q2dWd1h6cHBaZlFva1VMOU92WEQ2TkhqMGJQbmowckJLcVdMVnRDcjlkajM3NTllT1NSUjZSSnVCOE13eWpCRGIvNHhWY0dEbndCaXhjdndPZWJQNFVvaWhnemRqd1loa0YyZGpiR2pIb0RIT2RCY1hFeEJ2Ui9BdmZlZHg4bVRaNktsY3VYd3VWeTRiVVJMeXUvczNMMVdnUUhCMlBCb25kR3Y3Tm9vYWFnSUg5ZGJtNnUvSVNWbzZXOHROWUViMk1zd2V0aWsvYmhlWUY2T0s4NUNnSUVCd1VqTGk0ZW4yN3lkcEsvOTk3N0VCd2NESjduOGVwckl6Ri8zaHg4K2Q4dm9OZnJNWEh5RkVXcG1ETDFMY3lhTlFPY2gwT3RXclV3WWRLVU94dllLS1hseXFUazZHZHljakxPbnorUDFOUlVCQVFFUUJBRXVOM2Vwd1FoUkNiVEl5a3BLVFZtejU0OU5TSWk0azIxV28wcFU2WWdKQ1FFQXdaVTNMMDZLQ2dJQnc4ZXhLRkRoNjRKUE1MRHczSGd3QUhrNXVaQ0VBUXNYTGdRcDA2ZFFsT3BMOEg2OWV1eFo4OGUvUDMzMzZoWHJ4NDJiZHFFbDE1NkNkOSsreTBBNFBQUFAwZGhZU0ZHakJpQndNQkFEQjA2RksrLy9qcUNnNE9oMFdnd2ZQaHdEQmt5Qk9IaDRmNVY3SmR5VXF0MmJTeGJ2cXBDN2YrL1c3WlcrSjNQLy90VnBiOTN6ejJOOE1INmphKzUzVzdWNWs4M3JadisxbFN6dExaOGxBRUdsSXFDS0RLbHdDMG9LQWdhclVhMm5rQkFVQ01zREVsSlNZaUlpRUJNVEN3eU16TEFzaXdhTjA2cDFCL1l0R2t6ckgxL2ZiV08yMDAxUmE5VTBCNFVGSVRZMkZpSW9paWJvMFFHTlpabENhV1VYTGh3SWVMNzc3OS9LeTR1N3MwSEhuZ0FYYnAwZ1ZhcnhmNzkreXUxMDE5NzdUVWNPSEFBZ3djUHZxWnozckJoQTBwS1NsQzNibDIwYTljT05wc05reVpOd3A5Ly9vbXNyQ3lNR1RNR1U2ZE9SWU1HRGNBd0RENzQ0QVA4K09PUDJMQmhBd0JneTVZdFdMLys4azFjdkhneEhucm9JVHorK09QbzI3Y3Y3ci8vZml4YnRzeS9ndjF5VTBXcjFRNS9idURBbCtjdFdCUUZRQ3RWS2FpOXlvNVNwVUJFMFp0NTRHM0E3QTBvdU4zZUtnV0h3K0UxU3lXZm04bGtRbTV1TGpJeU1uRDJ6SmxiZW4wM2pkMGpMUzBOYVdscFNvczh1WnVVWENibHkzeGJKdm1XVUVySm1UTm5hdFNwVStjdFFzaEkvN1FzTGFJb0lpUHpFaXdXQ3dSQmdNdDVkNVpvNmZSNnNDeUw4Qm9SU0VxcVhXa1FSN1lldkdObUJzOVgzNWpwOUhxb1ZDcEVoRWNnS2FseTdzTzllL2VpYnYyYnoxcnJjYnMvMkxUcGsvZmZuajdOQXNCRkNIRkRhUnhEQkVJZ0VNSW9EV1BVYWhYVUdnM1ZhcVMrcFFFQkNBb01STERVemk4aUloS3hzYkdvWGJzMjZ0YXJqM3IxcXJlYXNiSSt2RGZGRkpWN0ZKVGxVNU03U1IwL2Z0eTNRb0Q0MnYzU0ZsU3ZYcjJwQVA3Vm9HWXdHSzY2VTVEYjdjRmZmLzBGVnFWQ2NFaW92NitvM1liQ29rSVVITTFIaStZdG9OR29Ld1MxUC80NENvWmxFUlJjL1dObXQ5dGd0bGlRWDVDUDFxMnV6RUNmYy9QekdWL3ExcTI3ZUhISWkycy8zTGhCV1lkZTA5UmJZZ1dJZ2loU1VHOHhQQlVFa1FpOFFKVnU4ejRrbFU2SEEzYTdEVlpyQ1lvS2kyQXVLQ2lWY1hBanBlWVZmcmZhZ1Mwcks2dFVqNEt5M2RrZERnZHExNjZ0YUdvZWo2ZFU3ZWZxMWF2Vnc0WU5tOG93ekp2d1N6bkpNK1NCVmFuOG5lQWxrWmtmaklaYzVPYmxJcWtDaHVpTEdabGdXUGFtalpudk9XVm1Ya0xpRmZxTDFreEl1QlhETm56cXRPbDhSa2JHMmwvMy9GS1poaXRjQmp1UlVpb1NTc3YzVWVBbFpsNlBoNFBMNDgyQkk0UWcvaVpIL2FzVjJJeEdvOUlpcjJ6amxRbzZTWkdLdU5Ra1VCdm5YN0lWaTduQWpLQ1FVUDlBbEpHZzRCQVVGSmdyQkRhTHhZTGdXekJtUWNFaEtEQVhYQkhZYnBrWnI5Tzk5djRINnowTjZpV3ZsN1ZhT2FCQXZkRUZLcGJLTXlFVUlBUWdjbGQ2RUVMQWVNa3N3VEFzV0phRmlsVkI1VFZmRVJVVmRlY0RtOXloWFc2Umw1K2ZYeW1kZDFtZm1tL3lMY013VS8zTHRESS9FU0FJd2wxdmZsYW1KUlVYV1NyODdGYU5XV0JnRUlvTExkZjAzWkxpWW1SY3ZBQzczWGJGMzA5S3JvdVEwR3NEYmIxZVB6cnQ3QVhYUFEzcWJwTHdUSmxxUG1NblhtN2Z4MUdPOHhBSitFQVlBc0l3RXJBeFlGa0dLcFhDMWd1TlJvUFEwTkE3RjlpY1RtY3BVQ3ZMcDFZSlNhVGNmSVZJdlFsZVlSaG0ycFVYOXRWVEtkOXVVbFdxNDRxRUVNRHA5SE81VlRvUEsrRzV1NVhCbFd1OVh4ZlR6OFBoc0Y5eEg3dmRob3lMRjlDc3hiM1hBYjZCbzArZU91Tm8wcmpoVmg5UW8yVTBPQkVBRlVXUjhEeFBuVTRIWVZtV01vU0FFQVlNUXlDWE5ubzNGVlJxTlRScURSbzFibnhUS01adk9MQlJTbkhtekJtbFRaNGMvU3lycVpXSmZzcU5KUmlKOWZaWmxtV253VnY2VWVseHJwRksrYmFUcWxBZFg2djh1UHNIYk55d0hpYVRFZkh4OGZoNDAyYzRkKzRzaGc0WnBPd3phY28wUFBUUXczNGt2STNsbjBETmR5NWRyMVVhR2hyNnhyRy9UdHBiTm0veXZhKzJWZ2JjQUVDa2xIcDlhcHlIZUhzclhBWTJobVhCTWhLd3lWcWJWb1BHalZPcXZhM2ZEUWMyWDFBcjI4ellicmRYU09mdDYxZHpPcDI5VkNyVlZBQlhOTWl2aDByNWRqU2Ivb25xK0Zva056Y1hDK2JQeGN4WmM5QzZkUnVVbEpRQUFPclZxNDhmZi80VkFQRFMwTUhWZGwwYjFxL0RZNC8zSzhWbUlwL1hzaVh2NE1TSnY2SFJhTkRqd1Y0WThlcHJZRmtXZ0plU1o4V3lKVGh4OGdTMFdpMTY5dXlGbDRlUFVENnZEdm1uWTNicDFCNXF0UnFFTUVoS1NzS1FvY1BRc1dPbmZ5dU9Sa1ZFUkx5NmN1WEtrdGRmZi8xQUdjMk5Fa0tvOUQrUm0yRHhIT2ZsSW1jSUpRd0JReVEvbTZTNUtjQ20xa0NyMGFKZS9mclZlZ0UzTkVFM0l5TUQ2ZW5wbGVhcHlkUkRVb3M4K0xMZlVrb1pxOVhhU3FQUlRBWHdqMWQ5QTZpVWJ6K0F1d0xWOFRVOVpOSk9Jekl5RWgwN2RvSkdvMUhLd0FnaFNtZWk2bnh5ZnJoeFBTd1djN24zWjd3OURUVVRFdkQxTnp2eC9nY2JjT2pnQVd6ZnZnMkFOeWR2MG9SeGFORHdIbXo3WmlkV3JGaU52Yi91d2RkYnY2cTI4NnpxTVZldVhvTWR1NzdEa0tIRHNIamhmR3o5YXNzdG1TZUVFTng3NzczbzJiTW5ldlRvZ2ZqNHEzdTRDNEtBMzM3Ymo4a1R4eU03SzZ1eVk5U0xpb29hdm1EQmdzYVM1U1RUakt1VnVsSks1VzcwaE9kNThKdzM5Y05US3ZYRGpzS2lRdnowNDI2c1hmTWU1cytmZy8zNzl5RkxPbTdXcFVzWStmcXJlUGFacHpCbTFCc29LaXBVenVHakR6Zml1V2VmeGpOUDk4ZXVuVHR1amNabU5Cb1ZVRE1halFxb3libHF2bDNhZlRxMEs2Qm1NQmhxNmZYNktRRGFWdlhtL051YzVvR0JRYkJacjU5UC92anhZNWd4ZlJvOEVzM000NDk2emN4K1QvVEhvTUZEcXZRYmh3NGV3TW9WeTJFdzVDRXhNUWxqeG81SFNwTW15dWQ3ZjkyRERSdldJZDlrUWt4c0xJWVBINEYyN1RzQUFFYSsvaXF5TG1VQ0FFYS8rUVpVS2hZSkNiV3djdlVhaUtLSXJsMjc0ZUcrZmFIVmFoRWRFNE5XclZzcm1lb1dpd1Uxd3NQeDNNQ0IwR2cwU0toVkN4MDdkVVphMnVscUcvZXJPYVplcjBmSGpwMmduaklOYjArZmhsNjkrOXgwWnBiazVHU3dMSXZkdTNkRHE5V2llL2Z1eU0vUGg4UitVd3F3NVNSbDM3L2ZmT04xMUt4WkU2ZFBuNElnQ2xjQzBOYUppWW5EeG80ZHUraWRkOTdKa2JVMkg1K2JIR0FRQlVFRUlieTM3cEV3bERBTUNFUEFzQXh5YzNOQkNNRURQWG9BbEdMRCtuV29WNzgrOURvZGxpNTVCNDg5M2c4OWVqeUlMejcvRE8rdFhvWEpVNmJoeEltL3ZYTnM0MGR3dTkwWVBud1lXdDU3WDVWQi9JWm9iRmFyVldIcThLMy9sRHUzWHltdGcxSktYbnp4UlRZaUltSXlJYVJ2MVk5WmNrTW5pOWxzeHVSSkUvRGNzMDlqM3R6WnR3emNLcU02dmhwcDBhSWx0bTNmaFRkSGpVSE5tZ25ZdG4wWHRtM2ZWV1ZRdTNEK1BONmFOZ1VqWG5zZHU3N2JqYWNHUEkweG85K0FTZEltTXpNek1IdldURXljT0FVN3YvMEJqenp5R0taT25hdzBwVm14Y2pXMmJkOEZBRml5YkRtMmJkK0ZsYXZYZUNjY3crQzVnYzhqTEt5RzF5bCtNUjBIZnZzTmJkdDY2M2dqSXlPeFl1VnE2SFI2WlVFZVAzWU16Wm8xcjdZeHY1Wmp0bTdURmg2T3V5V2xRNUdSa2NqTnpWVjhYYUlvb2thTkdxWDJPWExrTUtaT25naU80MkN4V1BEUzBDR3dXTHdSMlhlWExNUGtLZE9xcEJnd0ROUDd2dnZ1R3h3VEU2T1h0RGFmMGl1d0FCaHZSemlSdUZ3dTRuSzV3SEVlWWpHYmtaZWJDNWZUaGVMaUlnUUdCcUtrcEFRcXRScUNJQ0QxNUFsa1pHWWdMZTIwY3U4ZmVyZ3ZEdjkrQ0FCdy90eFp0R2paRWxxZERpR2hvV2pmdmdQK09ITDQ1cG1pbE5KeVZRVyttcHB2Qk5TM1E3dHZCSFRObWpXVENDSERic1JOLzJyTGwzanUyYWZ4N0ROUFlmNjhPWEM3WEZYNjN2dHIzOE05OXpUQ3A1OTlnYkhqTGhORm1veEc3Tnl4L2E1eVZPL2N1UjFkNysrR2poMDdRYXZWb25lZmgzQlBvMGJZdmZzSEFFQkVSQ1EyYlB3WWpWTlN3REFNSG5uME1YQWVEN0t5TGxYNUdLa25UNkpuajI0WTlQeHp1S2RSSTNUcGVuK0YrNjE1YnhYMEFRRjQ2T0crTiszNnEzSk1RZ2pDYTRURGR2M08rcXNXalVZRFFSQVFFUkdCVHAwNlFSVEZVa1NPQU5DcVZXdUVSMFJnNW96cEdEdm1UZlI3NGttRmFPRnFHNmVvVktybkZ5MWFOQkJlTGpkZmsxUWxZUWdqVWtvWWhvSEg0eUUybXcwdWw0c0VCZ2JDN1haRHBWTEJZTWlEMVdwRmRuWTJDZ3N0eU0zTlJXNU9EaUlqb3lBbkJSODZlQUJXcTNjODY5U3RoNk4vSEZFb2tsSlRUOEptczkwOFlEdDc5aXd1WGJxa3BIVlVwZmRubVFqb3dCdVZxM2JpeE4vWXN1Vy9XUHZCZW55NitRc3dESVAxNjlkVjZidm56NTFEaDQ0ZHk5MzQvUHg4N05qeHpWMEZiQWFEQVhGeHBWWCsycldUWUREa0FmQ3lQQnc5K2dlR3Z6d1V6ejM3TkFhL01GRFJkS29xS1UyYVlQZFBlL0RGbDF1Umw1ZUhEUlhjcDQ4LytoQy8vMzRJYytmT3I1QkRyenFrcXNla2xNSlNhRUhRTFhLSEpDY25vMUdqUnZqdHQ5K1VvRkJaNEIwK2ZBVCtQUG9IdEJydGRUMFk5SG85Qmc0YytLYkJZT2haZ2IvTnE3bDUvVzBNSVFTQ0lFQ3Qxa0FRQk9MeHVCRVVGQXhlRUhENDkwTTRmU29WRE1QQTRYREFaREtoVjYvZStPYWJyekZrOFBOSVRUMkp3RUJ2LzRUbXpWdWdaNjgrR1BuNkNFeWZOZ1VCK2dEb0EvUTN4OGVXbloxZExsZk50MVRLQjlSUVVRVFVicmQzbHBvWjM1QlphN05hRVJRVWpJQ0FBREFNZ3hlSHZvU0xGOU9seFpxSFJRc1hJTjlrUkdoWURZd2JQd0dKaVVuNCtlZWY4Tjh2UGtObVppYm16cGtGalVhRDU1NTdIbDI2M28rbFM5N0JzVCtQd21Bd1lQakxYcjYzdGUrdng0YjE2L0RubjBkaE5CaVEwcVFKTHFaZlFHUlVOTjU1ZHlrb3BWaTlhaVgrK09Nd09BK0g5aDA2NHJYWFI0SlNpbkZqUnVIK2J0M3h5S09QNGNTSnZ6Rm45bit3YnYySHQwVjNiVitKaVltQklTK3YxSHM1T2RsbzJkS2Jpckx2ZjN2eDZhWlBzR1RwY2lUVXFnWEFHeldzYUhHVkJUdTN5NFh2dnZzV2ZmbzhCSzFPaDdpNE9QVG84U0QyNzk5WGFyOHRYLzRYUCs3K0FjdFdyTHJtaE5PcmxhczU1cEVqaDZGUnE5R2dZY09iZm4ra3NrUDgrZWVmQUFDV1pjdFJ5OXRzTm93ZlB3WURueCtFczJmU3NHRCtYRXlhUFBXYWdrVk9weE5idG14UkFYamxyNy8rTWpSdjN2eFB5ZGNtU3Y0MkpXSktLU1VNdzhMamNWT24wOXVVbmpBTW9xS2lFQkFRQUoxT2g3Ly8rZ3VpSU1KaU1VTWJGNC9uWHhpTUJnMGE0bUo2T2k1bFppckhmVzdnODNodTRQTUFnSmVHdllpNmRhdGVVSC9OR2x0UlVWR0Z1V3FWZ0JvcDA2V2R5YzNOamRkcXRSTnhBenUwdDI3VEZqVnIxc1RMdzE3RTExdTNRS2ZUb1hYck5nQ0FPYk5ub1dmUFh2aDQwMmQ0L29WQm1DNVJMRC93UUErc2ZYODlhdGFNeDdTM1ptRHQrK3NWczJqVTZMR1lNSEVLa3BLVHNmYjk5YVU0cE5xMmJZY1pNMmNoTXpNREgzMnlHWmN5TTJHeFdHQTBHaEFZR0lBTkd6L0d4NXMySS9Ya0NSdy9mZ3lFRUV5Wk5oMmZidm9ZYVdtbk1YZk9MRXg3NisxYkJtclMvZkJxSDZLb2FOSUE4SERmUjdCMzd4NGNQdnc3ZUo3SEw3LzhqTlNUSjlDelZ5L0ZIMGtJd0xBc2lvdUxzUG5UVGRMdmxHYUtpWXVQeDZHREI4RnhIUEpOSnE4MnJOWGlrNDgvd3VlZmJ3YkhjU2dxS3NTK2ZmOURzMmJOTHB2Q083WmoyOWRic1hUNXlwdkdVMWZWWTdyZGJ2eCs2Q0RtejV1RDRhKzhla3NvM2ZQejh4V0EwbWcwQ0FzTEs5Y1E1Y0tGOCtqYXRSdis3N21CbURaOUJqUWFyZUpqdXc2cFc3OSsvUmRIalJvVlc1Ry9qVkxLTUF6RHlGUmpIbzhISE04UnpzUEI0M2JEWVhmZ3pKa3ppSXFLZ3QxaFIxRlJFUW9LQ21BMEdQREhIMGV3Zk5rU1BQbFVhVjVGanVPdzZaT1BRWWlYeDYxYU5UWkJFSkNlbnE0RUMzd2pvQldrZFpBeWFSMkVVc3BFUjBkUElJUThlQ052dUVxbHdveVpzM0Q2VkNxKy9mWmJESDVoSUdiTm5vczZkZXZpN0prMDlGemhKZXhyMDZZdDNuVzVZRElhRVIxemJXbTlXcTBXT3IxZU1Wc0RBdlRnT1E2eHNYR0lqSXpDeEFsandUSXNERWF2MzlIcm00ckE2REhqOFBxcnIrRDVGd2FqU1pPbXR3VFV5aWJvTHBnL0Z3dm16OFdEUFh2aHJla3pVTDkrQTd3OWN4YmVXNzBTaHJ3ODFFNU14TUxGN3lJbXhwdGYxK2VoaDNIeTVBa01IZklDV0ZhRnh4N3ZoL3IxRzhCU3BseG96Smh4V0x4b0lUWnVXSWZhdFd0ajNZYVBvTkZvc0dEaFlxeGNzUXhmZlA0WjFHbzF1dDdmRFlNR3Y2ak1yVVVMdldiZ3MwLzNMMjBtYnRxTTJOaTRHejRlVlQzbXlOZGVCU0ZBWW1JU3hvNmJjRVB6MklLRGc2dThiMFpHQnNMQ3d0Q2pSdzhBd1BIang4djEwbWpldkFXYU4yK2hySXV4NDhiZklQL3J6bTZ0VzdmT0FMRENSMnNUQVZCQ2lEZEdTa1VxMTR2eVBFOFp3cEFTYXdubE9RNmhvV0dJam9tRjNXNkhXcVdHV3EzR3JsMDd3RElzbm5yNmFiU1hJdXVBbCtKOCtkSjMwYng1Uzh4ZnNMaENiYk95Y2JzbVlQT05nRmJHcVZZRzFHUUdBTGxjYWpnaDVOVWJQVUZQbno0Rm5VNkhSbzFUMEtoeENyNzl0akUrK0dBdDVzMWJvSmhHaXBuRU1LQzQ4VngwZi8xMUhMdDI3c0RTWlN1ZzFla3dZM3JwcWpDSHd3RzFXZzJYeTFudEFOYXJkeCs1UTNncHFWKy9BZjYzLzhwOVREdDI3RlRwd3RWcXRaajIxdHVsM3F1bzRXMmJ0dTBxWkhtdFY3OCtsaTVmV2VGdnN5eUx2ZnNPM0ZTZ3I4b3gvMm04YnNRNTJPMjJLa1VxNWFxYjY1VlBQL3ZpbXI2blZxdUhiTml3SWVQRkYxL2NCaS9GcmtnQktyV1NwL0NtZ1lpaUtGS0JGOEFURG9FQkFVU3IxVkdkWGdlMzJ3V253MXVOb0ZLcjBLMWJkOFRHeHFGV3Jkckl5TGlJT25YcUFnQTZkZXFNVHAwNlYzb2VkcHUxVWovb1ZadWllWGw1Q2dXUmIxcEhCUkZRK0lDYW9xM1o3Zll1TE10T3JJN0prWFhwRWhiT253ZTczVnQrWWk0b1FHaG9LTFE2SGVvM2FJZ2ZwYWplSDM4Y2dWcWxRblQwUDJ0cm9hR2hLTWd2cUxDN1ZFVmlOcHVoMSt1aDFtaVFuNS92ellXU2lva05oank4dDNvbDN2OWdBdzcvL2p1T1hFWDR1bkxIYmdEOGNuVmpjeXZIckxKalIwZEh3M0dGV3VlQWdLcVp2RlhkNzNwL0t5Z282SlYzMzMyM2hSSk1rSnJDeUNhcG5BSWlpZ0xoZVFFY3o0UGpQUEI0WkFaZUZ4d09CK3cyRzBxS1M3d012UGxHS2JtL2FrbnFkcHNWMGRIUjF3OXNEb2VqRkZ2SFB3UUx5aVhocHFXbGhXbTEydkVBcXFVT3FtZXYzdWpjcFN0ZUh2WWlubjNtS2FTZVBJSFhSM3BwM0taT200NXZkKzNFNEVFRHNYSDlPc3o0ejV3cU9WSVRhdFZDMjNidDhQU0FKL0hDd0dkaE5CcXV1SCtuVHAyaDArdngxSlA5TUgzYUZOU3RWeDkydXgwOHoyUG0yOVB4MHN1dm9GYnQycGo2MXR0WXZIRCtkZnM5NUNlOVg4cFArc3BLc0poYk5HWjJteFZzSlJwR1hGd2NLQldSYjh5cjhOeVM2OVQ3UjlBS0NBaEVjcDBieDFqN0Q4ZU1pNCtQSC9UQ0M0TnF5T0JHeTRNYlF5a2xvaWdRZ2VmQmNiemtiL1BBN1hMQjVYVEM3bkRBYXJPaXVMZ0lGck1GSnFNUjJWblpTbCtGeXNiUlpNZ0ZDQ290UDd3cWF2RFUxRlNrcGFVaE16TlRxUVgxTlVWOUtneUlyTFZKdmpWR29pR2F4VERNaEJzeDZMZUtTcm02cFRLcTQ4cjlMWmt3V3l4K29za3lZalRrSWpJeUFvbTF5M09mWldSbXdteSsrV05tTk9RaUlpSUNTVmZnWXpPWlREQVlET0I1SGxicjdjOVc0M0s1VnZYdTNYczlBSWUwdVFCNENDRWNBSjRRSWhKQ1JJbGFYS1l2b2xxdGwxbzhJQ0FBZ1lHQkNBNE9SbzBhTlJBUkVZRzR1RGpVcmwwYnljbko1VFhGNEdDb1ZTckV4c1pXcXExZGxZOHRLeXNMMmRuWk1KbE1NSnZORlFZTFBCNVB1ZFFPT1ZqZ2NybWV1RkdnZHJYTzFqdEpydmE2RWhOckl6L2ZCS01oVjJFNXVkczFOWnZOQ29Ibkt3UTFBRWhLVElUSmRQUEdURDRuVVJDdUNHcXlTWHFsQlhzYnltdFpXVmxuYTlXcXRWZjJ0eEZDbElBQ0FIaFpQd2hrY0ZPcFZOQm9OTkJxdGREcjlRcXdoWWFHSWp3OEhGRlJVWWlMaTBPZE9uVlFTMG9udWxxcEVyQlpyVmFsc3FBc3FQbldnUHFtZHZpYW9FYWpzWlphclI1N3E1eXRkOUtpdk5wRVZFSUlXclZxaFlzWm1iQll6Q2l5V09CeTNaMGNiWHA5QUJpV1JXUkVKQklUcjd3ZzJyUnVqY3pNUzhndktLaldNZFByQThDcVZQK29xZDNKVXJObXpjRmZmdm5sMmFlZWVpb2JsNk9rTXJCUk9aTGdKYWZrS2NNd2hHVlp5cklzWEM1WEtTSktHZXdDQWdJUUhKdGcwTndBQUNBQVNVUkJWQnlNc0xDd2ExSmlxclNLWk5QVE53bTNnc29DWDFDVHF3c0lwWlNKaUlnWUE2RFZqUnpNNk9ob0dBekdmeDJ3eGNkZmZUb0RJUVIxa3BOUUp6bkpiNE5lcGJhYitDOEZtNXNwaEpDV2ZmdjJIUUJnRlFCQjZvL2dqWlpLcEpUd0VsTlNDZHpBY1p3Q2JpcVZxa0p3Q3d3TVJFaElDSnI0a0M5VVZmNHhlSkNWbFlXY25CekZuMVlacUYzQkJPMWZIYWtkaXJQVlpJRGpEbmVlTyt3MnJ6TVU5SVp4c2ZuRkx6ZFRkRHJka096czdNNlF5cTBvcFJwSXlidStnUVJCRUlnRWJBcHV5QjJ1SEJMTlVVbUpOMHFhbjUrUG5Kd2NoZUxvaG1sc2RydTl3bncxWDhKSUdkaDRuaTluZ21ablo4ZXExZXJSMVRXWTk5NTdMNHhHSTR3bUU2d2x4WGNrTmJqc0RFMUlxSG1uK1ZiODRwZFNFaDhmUDJqanhvMnBRNFlNRVNSL20rQnJscFkxU2FYcUJPcExSR20zMnhXdFRRNHNoSVNFSUR3OC9LcXFQSzRJYkdYejFjcEVQbjN6MVNveVFVbE1UTXdvQVBkVjUyREd4TVJjZFM5T3YvakZMOVZpa3JZWU1HQkEveUZEaG53QWdQY3hTUVhKSkJYaFpkMVZURktHWVloS3BhSXlDNGh2WUtHb3FLaVVyNjFSbzBaVkI3Wk1uNkpUWDhuUHo4ZVpNMmRLTVhlVTlhK1ZEUno0Y3F5bHBhWDF6TXJLR3UyLzNYN3h5MTBsTCsvWnMrZG90MjdkRHN2Z0JpbFNLaGZMUzAxZzVLcDVoVlB1Y3Zlcnk2WnFXVE8xcWkzOFZJbGhQNVI3aytNRjVGL01BbkVhUU54bUVFOHhDR2NESTloQkJCY2d1QURCNDkxRWpsQlJBQ2dsOGpiNC85cXc5YVAzalBMZlk3LzQ1ZTZUaEdiaS85VkxydkgzK1l1RlBBQ0JBQUpBWmJPVWdSZk5BQ3FDaWp5RjZDWVFYQlNDQXhDc0lJSU9qR0FCNGZKQlBMa2c3a3dRNXpuQWxvcjQ1RnBRcS82NTkwV0Z3WU9zYkFzTXBtS1lMVFlVRlR0aHM3bmdjTHJoZEhKd3V6bDRQRHc4SEErT0Y4RHpJZ1NCUWhRcFJFb0pCWmozbHcwZUNlQUIveTMyaTErdVRTaTljOCtkWlptdWgvZE1md1J5SU1FYlJKQURDU3lWaUNsRmtVSVFLSGhlQk1jTDhIQThQQjRlYmpjSHA1T0R3K21HemVaQ1ViRVRab3NOQmxNeExtVlZyVktubkkrdHVNU0ozTHdpRkJSWVVWamtnTlhxaE4zaEJUV1htNFBidzhQakVjQnhBbmhlSkx4QUlRaVVpSlFTVUJETHhYY2JzQ3p6aG45cStzVXZWeWNpQlF5V1NKZ0t3eUNJTEd4M2RqcmlvQVVMRmh5Wk9ISGlSYTlKNmcwbWVFMVNpSklGU2tSS3dBdUVjZ0pEUER4TDNad0tUbzhhTnBjYUpVNHRDbTA2RkZqMU1CWUZJdHNjQkVOeENQSks0bEFuZ1VOY2VBRXFxNG9zQjJ3NXVZVXc1WmZBVW1oSGlkVUptOTBOaDlNRGw4c2pnUm9QanVQQisycHJGS0FVaEFKTVNJaitOUUFKL21ucUY3OWNIYWdkTzFjZllNTVFGSEpuOThtVnBHWkM3ZVRISjA2Y3VCb0FEMitFVkg0VlFRZ0Z2RzM4Q0NFZ1VyTmxJdEVkc1NvMVZDbzFWR29OMUJvdE5Gb2R0TG9BaUNRUXhUWTE4b29Ta0djT3c3MzF6MWNJYnFWTVVXTitDUXpHWWhSWWJDZ3Fkc0JxYzhIaDhNRHA0dUJ5eTZBbXlDWW80YjBtS0tFaUpaU0NPUEpXZENlRXZQSnZtbkRqcG0zQi9YM2Z1V0cveC9NQ1JrMytBdEgxeGlHMDlwc1lQbW9USEE2UGYyWGY1V0lvakFUWU1NVEV4djlya3M2MVd1MmdQYi91YTQ3TFZPSWFTdUZESmU3Tm5oQkZrUWlDQUY3Z0NjOTVBd2VjNS8vWk8rL3dLS28yaXY5bXRtVlRJRTE2Q1VoSGFWSkUwQUFmVWtSQkJDc2xJQWdxTFlMU2xkNkQ5TjVFcFNnSWlpQktFWkFlbENJSVVnVUVFdEo3c21WbXZqOW1kNUpOSXlCTjJmTTgrMEIyWm5idTNwMTU1MjMzSENzV3F3V0xROFpQMVQ1SUpENHVqdVNVRkhRNkErZ0tjelBlTDlkenV4aTJHeEVKUk1jbWs1Q2dHclhVTkF2cEdkYk12SnJEc05udHNtQzNPMEpRR1VFQkFSQ05Sc1A3N2tzMGZ3d2JzNUZOUC96T3VzOTZzV2wxSDNidStaTitnOWU2SitZUlIxUjhvZitjVGk1QXVmTGxPMlF4YkFaUURHU3FXNG5PMWpCSmxnWEpMbUczMndXYjNaWlpGYlZtVmtWVFVsSklURXdrTGphV3lKdVJlUHY0M3Rxdy9YMDlUZzFCNDFKSlRFb2pKZFZDZXBxVmpBd2JGb3VqV0pEcHJTRkpNcktzT0FzY1lrYlV2RGNFZ1JmZGwyamVTRTIxTUcvcGJzTEdkeUM0Y1NXQ0cxZGk4YXpPckZ4emtKaFlOL1hRb3dwRkFVblMzNUduZHViMEh3d012ZmNwN1ROblRoTTJiWXJHYWVqRXhvM2ZFTkxsTFVLNmRuSVI1SW1Pam1iZ0J3TjR1M3ZYbGkxYXRtcE1GaXB4UlZIVUlvS2lpQTdtSHhSSHE0Y2syYlYyRHlmRlVZYWo1U00xTlpYazVDU05Vand4TVFtN3JNKzEwQ0lDV0cxMk5RU05UU0VoS1kza0ZBdHBhUmJTblViTldUQ3dTOWp0a21DWFpDUVp4N0lweEk4L2FxMHo2SFh2UGVnTDVPbm1rd2tkOWhYQmJjSUlxakdjSnhxTzRmdXRKN1R0ZFp0TVpQallqVlN0UDRyaWxUL2k3UGxJTEJZYll5WnZwbnpORVhnVTdVTzlwaFBac2R0VktOZG1rK2dkK2lYZUpmdFR2UEpIZkRwdmUrWVBHSlBNSzUwWDRsZjJBN3hMOXVlRlYrZHc0VktVdHIxajEwWFViVElSZ0dPLy8wMTZ1bzNnUnBXMDdjODJWRVh2RDRaZmROL2hqeWdFQVZMU2hEczZ0bktWcW93YU0vYWVqbS8rdkxrc1c3cUVTeGN2YWlTdUFGZXZYbUhEK3ZVc1dMU1VaY3RYY3VMRU1ZMDhkZjY4T1RScjlqOVdmcjZLZDk5Ny8xVVBEN09ITXh6RlVTRVZCRUVIT0kyYnl0c21TVWlPVlV3Mm13MnJMWXV5ZkhvNnFTbXBKQ2FxSVdsMFZCUUppVkt1T1RZOXdJMGJDVVRISkJPZmtFcFNrbG9GVFhPMGRsaXNkcXlhcHliaHFJSTZ2RFUxRFAxNDhFdTlLS0NDKzczR2dtVy9zSFY5UDVvOVY0WE5QLzdPSzEwV2Nuam5VR3JYVUJjN3o1aS9rNVVMdW1FeTZxbFVvU2c5KzMzQmp6di9ZT0duYjFHcFFsR1dmcjZQRjE2ZHcvRzlJNmxXUmVYck9uRDRJdVhLQm5CMHp3aU9ucmhLajM2ZlU4akhUTSt1alFrZDlqVVdxNDN3bjRjQzBHL3dWNFM4OXhuN2YxSVptanEycTBOOGdscmV1aDZSZ05Hb0o4QS84OGxzTU9nSThQZmkybzBFOXgzdVJnN0V4c1l5Y2NJNFlxS2pFRVNSOTk3clE0T25HM0x0MmpVR2h2YkhaclBpNit2SGlwVmZaS1k3aG56RWpSdlhBVlYweWRQTGl6VnIxd0VxcmYrY1dUTklURXJFMzgrZndVT0hhVm9XQU91Ky9vb05HOVpyK3dQMGZLY1hScU9Sc0dsVFhNYjIrNGtUUEZXM0xwNmVudGp0ZHZ4OC9UaHgvRGoxNnRYbnhJbmpmUENCU3VqajYrdGJyMFNKNGkwdVhicTBHYkE1WGxvaFFWRVUyUkdTT2xZa1NPaDBkdXgyR3phYkhxdk4wYWlibms2YVNRMUpFeElTaUltTndXVEl2YWRObjU1dTFYcldFcE95VkVFMW8rYklxemx5YTQ0UTFPbXRDU2YyZlZ4SXB4TjdQU3dYd2xzZDY5SHNPWldBOHNWV05XamVwQ29MbC8vQ29wbXE5bVdiRmsveVdudVZhQ1F1UHBYUFZoOWcxWklldk5SYVZmMmVOcTRqaDM3OWl5bXpmbUxsQWxVNXZWalJRaXliMHhXVHlVQ2xDa1g1N2ZnVjVpemVSYyt1amJsOE5aYlNKZjBvV2R3UFQwOGp5K2QyNWRxTmVHMDhiM1NvcC8wL0xkMktoNGMrbHlTckhvdlY3cjZMM2NpQnI5YXVwa2FOR29SMGU1dExseTR4Zjk0Y0dqemRrRktsU3ZIMStnMmNQMytPaWVQSHVSd3phY28wQUJJVEUrajlUZzgrR1BnaG9NcjJUUncvbHZFVEoxTzhlSEYrK25FckMrYlBZL1NZek9OcjFxcVZnM2s0TDRIbHhNUkVQRHc4aUk2T1p0S0VjVWl5aEk4alQ1aVltSWpKdzRQdk4zM0hqaDNiOFBUMGZMVkh6M2YyTEZ1NnhPbzBiSTVWQ1pJajM2YklpaUlJYWtpcTJDVzdZTFByRkwwekpEV29JV2w2ZWpxcHFTbHFTQm9majBFdmtwNHVZemE3amxHOEVhbUdvUEdKbVQxckdlbVpCUU9iemRtemx0VmJBOW5oclZXdFhMd25VTzFodVJEcTFIU2xvYWxlcFRpbnp0elEvcTc0ZU9aQzh6Tm5JNUJsaFliMXlyc2MwL2pwQ3Z4eEpsTlhzMjd0SUV3bWcvWjMvYWZLOGVlNVNHUlpac2lBbG56LzQrOEVQajZRTnEvTjRic2ZUbEM5U3U3TXJHWVBBMWFybE9OOWk4V09sNmZSZlJlN2tRUDE2amRnNTQ3dHJQeHNCWmFNRE1LbXp5alFjYklzTTJiMEtOcTgySmI2OWRWZzZxKy9Mbkh0MnQ4TUh6cVk3aUZkV0wzNlM2SnV1dW9MVktwVW1WYzZkQ3p3K0U2Zi9vT1JJNGJ5VHU5M2FkclV0U2QvMG9SeFhMNzhGMkhUWjJJeW1hcDA2OTdqZVZ3S0NZNEtxWm9TRTFDOU5tUlpRckpMU0hhN1F5dEJyWkphTFJZeUxCbWtwNlZyaFlURXhFUnVSQ2JtOU5qVW5yVVVraHplV3JyVFc3TTRRbEJuejVva0M1SmQ5ZGFjemJobndzZjQ2WFJpejRmcFFwQ3phVnRtV096b2RKbkYzNndHSkx1Vnovb1pXWVYramRuY1hiMWVSSzhYRVVXUnRpL1U1UHFaS1h5LzlYZCszUGtIdzhkK3kveGx1em04WXhpZTJZeFZxUkorWkdUWVNFaE13N2V3cDVhL2k0MUxwV1J4WC9kZDdFWk93MWF2UG5QbkxTVDhTRGlmcjF5QjBXaGt6TGdKdHp4dTJkTEZlSGg0MExsTDF5eTVZaHZGaWhWekNWdi9DUW9YTGt4R1JnWmgwMmRTcUZBaFRwdzRUbUZmWDIzYk00MGEwNkpsSzgxYkxGNjgrS3U5ZXIyN2MvSGloZFlzNGFpZExMeHRMbDZiWFJKMGRydmlVaVcxV0VqUFNDYzFOWTNrNUdUME9vR29hSmxpUlF2aDVXbks5TmhpWXBOSlNFeFhlOWJTclZyQndLWlZRZVZNYjAxV3ZUVm5idTN4Y28rOURUeitNRjBJNFVjdnUveDk2TWdsYXRmSW5VMjFZdmtpNlBVaUI0OWNjbm4vUVBoRnFsVEt6RHVjdmVENlZEdCs4bStxVlZZSklZZU0yc0Q1aTFGMGVlTnBWaTNwd2Y2ZlB1TFU2UnNjUDVtVFE2cDJqZEtZelFiMkhqaXZ2YmZ2MEFWRVVlRHBiRjZqRzI0QVRKbzRudkFqNFRSdi9qekRoby9rMEtHRExnL2QzTEJ2MzE3MjdON044QkVmdXdnV1ZhaFFnYVNrSkg3WnMxdkx0MzIvNlR1WFk4K2ZQOGZHamQ4VWFHeFAxcWlCMVdyRlpESWhTUklIRCt5blppMVZ5N1JXcmRyYU9JLys5aHRCUWVVd21VemwrL1R0MTV4c1JZVHNYcHZzOU5yVVFrSm1sZFNtQ2k5Yk1qSklUMWR6YlNrcEtjVEVKaE41MDlWcjA4Y25xQ3NNVWgzZW1zVmlVOWRzT1VOUW04TmJrMXk5dGQvMkRQZlI2Y1MzSDdxY3hJWmZlYWIrNHp6ZnRDb3JWaDNnNU9ucnJGclNJOWQ5Zlh3ODZOZXJHWU5HcnNmYnkwU2xDa1ZaL3VWK0RvWmZZdXJXRDdYOS9qaHpnNFhMOS9EdTI4RWMvdlV2NWl6YXhkSTVYUnhHTDVJK0g2NWhYdGliQlBoN3NXTFZBYnk5VFpwaFhQdk5FZUlUMG5pdlJ6QmVYaVo2ZEdsTTM4RnI4Zkh4d0dqUTB6djBTN3AzZWdaL1B5LzNYZXhHRG5UdTNKV3dzQ21zWGIwS1daWVpPT2dqUkZGMEtSNGtKaWJ5V3NkWHFQUFVVd3dkTm9LNXMyZVNrWkZCbi9jeVU5OXo1eS9DeDhlSFNWT21NZlBUNlN4YXVBQlBUMDhHWmhOU1BuYjBLQnMycktkOSt3NjNIRnZac2tHMGI5K0JkM3YxUkVIaDJXZURxVmV2UGdEdjkrbkg1RWtUV1BmMVY1ak5ab1lNR3c2QW43OS9oL2F2ZE5pK2NjTTNOc0RxTUc1MlZHVXJsVzFYYmRwMTVOcFVyeTFybGRSaXRXcTliVG9SNGhNa29xS1RLVjdVVjR1U2hGbVRYK1ZHUkR4Uk1jbkV4NmVTbUt3dWVrOU5zMnBMcVRJc2ttQzFTdGp0aWlESmlxZ29pTmJvK2YxME9qSHNZYm9Jbm00K21TZXFsdURDWDlFY09uS0pHdFZMTVgxOFI1NTlSbTJwcU50a0lpKzNxY25Jajlwb3gxaXRka2FPLzQ0dnZqcEVRbUk2dFo0c3pmaVJiZmxmc01yOTlPSEk5Wnc1RjRHZnJ5Yy8vM0lXblU1a2FHZ3IrcnpUQkZEYlBRWU0vWXJ0dTg2UW5KSkJuWnBsbURhMkE0MmVWbVhRT25aZHhPV3JzZnk2ZTdnam4yWWpkTmpYclBubUNLSWcwTEZkSFdaUGVRTVBENFA3TG42RXNlZDQ1ZitrNmxwdWlJK1BuMWpqaWFyZkF5bEFLcEFtQ0lJRlZkM0s3bEMxa25VNm5XSXdHakVaVFlxSGh3a1BzeGxQc3lkZTNsNzQrQlRDdDdBdm9nZ05hMG1VRDNxTWFsVktVRDVJcFRVU3hvOTh5WFVabGNON1MwMnprcDVoSlNQREpsaXNFamFiSWtpU0xNZ3lZdWZYNitrL1c5RGpNUERrdzJiWVdqV3Z6dWloTHoyeU40aWlnQ0M0di92RE1tY0YvZXhIeWJBcGl2SkhvNFlOM3YvNzc2c3BEdU9XSmdoQ09tQkJsZXlUUkZHVVJWRlVEQWFEb2hKUGVpZ2VIaDZZUGMxNGVucmg3ZTFONFVLRkVRU0Zlay9LbENubFQ2VUt4YWo1UkdrOFBBem9VeHk1dFl3TUcxWkwxdFVGV1JhNVordGJXenFuVzVlSHphaGxoK0RiKzEvM2cwZWVtMGJSSXJlL3JFWlM5RnlPcWt4OGtoNUpGc2xJZnpSVnFqek1ablNpZ244aE8wRkZ6aUlLZWJmUXlBcGNpYWxNYklJSlNkYmRzemxUeHlRVFdOaEMyY2ZPM3RMSVhiOTI3Vkg0cWFvdldMajQyUmZidE5ycHlMWFpGRVd4Z1dBWEJMV1FJTXV5QUNnMm15M1RJT0pZNlNTckt4VThUQ2ExdVRsRklqRXBrOW9vcUV3Zyt0UTBpNE81STF0dVRaS1JKRm1RSk1XeHlrQjlvU0RxOWJvdUQvMVRJV0hSSTNFenA5djkrUDFDS2ZRR0Qzd0t1M1ZGVTFOVGlFOU9JaWFoS2pVZnY0cEpuNWlyVWZ2MTNCUG85T2I3TW1lcHFTbkVKaWNSRmY4RTlTcWR5dGU0bFN6MWFCRGpGQzlSb2czd2k4T3dXUUc5SUtESDBkZUdxbXdscU12UUJRVUVRUlFFUlJUVmJnUlJwOE5pdFNLZ2tKb21rWnljUVh4Q0dqRXh5WlFxNFllWW5tNVR2VFdyU3lNdWRydUVKTWxxSmRSQm5xU0FrSFp6Ym11ZzhjTTRXWWQyREgza3d0REl1Q0xvRFI3L0tWYUlmd0l2TDIrS0ZpdUJUdTlCUkZ6dWlsK1hvNnVoMDV2djI1eGxqc25NbFpqS3VBR2lLRGJjcy9kQUxUSkpLQTJLb3VoUUs2U3FOVk1VRkVWV0s2U3lNNHJNdXBaVWxTUklUN2VSa3BwQllsSWFzZkdwUkVZbElhWnJQR3RxejVyTkxtR1hIRWJOR1lKbU1uZ0lSb1B1VGZmUDh2QWdOdEgwbjJTRitLZnc5aWxFVEtJcDEyMXhpZm9ITW1mZVBvV0lTVEM1Znh3SFNwY3VuYjMxdzhuOG9YT3lmamhvalpBbHRmM0Q3bGdrYjdmWnNEcGFRTkl6cktTbVdVbE95U0FoSVkyWTJHVDBGa3NtZWFUV3M2Ym0xZ1MxYjAxeFdFNkVoQ3N6bnhRRTRkWGJDZ2tmNFdUMnZaNGZTZFloeVRxM3A1YUhsNVFZSDRzc2d5aTZ6dmVEbWpOMVRIRjM5SnNuSlNaeSthK0xwT2Fqb2V2bDVVMVF1Y2NwVkxqd1hSbnZ2VDZud1dCb3UvYXI5Vis5OFhySEMyUlNoK3NGUWJBN3dsRlpsZXhUQkVtU0ZVbVNCTWt1S1U2dnpXNnpBUW9XaTB4NnVwWFVWQXVKeWVuRXhhV2lWM05yV1pkTnlRNXZUVmFMQmdvNCtkYTh2RXl2RjJUQS96R0s0M3Y3RlBjRW5VNmlpRzlDdmxUSHVVRW5Tbzlzb2FBZ1NFOVBkekZxb0JxVUJ6bG42ZWxwZC9RZysrdlNCZExTVXZQZEp6VTFoY3QvWGFSR3JUcDNaYXozNDV5MTY5UitEcmlhSmRkbWRYaHRrcUtvdVRaRmtSVlZ4VXB5cFRheTJ4RlFzRmdsTWl3MjFXdEx6aUErTVExOUZ2MENOYTltenl3YXlBNVhFQVZoODFkOVBFUlJlTDBnUnUwL1JuRjh6NUdhbWtKRWdsKytWTWQzaXUzYmZtTEY4bVZFUmQya1JJa1NmUDdsR3M2ZlAwZVA3aUhhUGtPSGorU0ZGOXE0ZjRpSEdMY3lNRm12cFgvVE9UMDl2ZHEwZTduOSt1KyszV2pKekxWaEV3UkVVQnk1TmtGUUZCbEpraFZKbGdTN3VrZ2V1OTJHQUZpdE1oa1dHK25wVmxKU00waEtTa2VmblVEU25pVzNsblg1VlBPbTFWNEZTdDlxb0ZrcGp0MG9lSWppNWVYTnpVaVptL0YrRlBPUHZ5dWZlK1BHRGFaTW5zaVljUk9vVjY4K1NVbEpBRlNvVUpIdE8zY0Q4RTZQYnZmc2V5MWZ0cFIyTDdjbklDQWd4N2htelpqT3laTy9ZelFhYWY1OFM5NTd2NC9HS25IdDJqWG16SnJCeVZNbk1abE10R2pSa2w2OTM4dkJPbkUzY2F0elB0ZTRJUWFEQVVFUUNRb0tvbnVQbmpScTFOaDk4ZjV6bEJyNThhZ0czMzI3Y1JmYUVpdEZEMEttUG9KS0lhNWt6YldwaStRbFFNRnFrN0ZZN0dSWWJLU2xxN2syMFJtQ1NwS2MyZUloWjdaNDRHengwT2tLdE9UL3YwcHhmRi9DMG55b2p1OEVaLzg4UTJCZ0lJMGFOY1pvTkJJWUdPZ0l4d1JNSmhNbWs4bGxMZUhkeG1jcmxoRVhGNXZqL2RHalJsS3lWQ2syZnJlWnhVdVdjK2pnQVRadCtsYjErR1dab1lNL3BGTGxLbno3M1dibXpKblBudDI3MkxqaG0zczJ6b0tlYys3OGhYeS9aU3ZkZS9Ra2JPcGtObnl6L29GY0o0SWdVS2RPSFZxMGFFSHo1czBwVWVMMm5BaEprdGkvZngvRGhuekV0Yi8vdmk4cGdiRmpSdkhXRzYvUnZWc1h6cHcrclczNysrcFZ4bzhiMDR3czFWRWM2MGVkREx1U0pBbVNKQW1LSWd1U2F0d0VwN0N5SktrUnA5VnFkL0hhTk1QbTB0NGhPU20vMVJhUCtLc3puaEFFV3Q3cUMvd1RpbU0zVk04dEw2cmoyOEh4NDhkNHVXMGJwazJkVEdSa0pDKzNiY1BMYmR1dzhyTVZCZjZNUXdjUDBQbXROMmplTEpnZTNVUDQ0OVFwbCsxN2R1OGlwR3NuWG1qMVBOMjdkZUhRd1FQYXRuNTkzK2ZsdG1wbys4R0EvcnpjdGcxOTMzOVhNeUxCd1UzcEd0SU5rOGxFa2FKRnFWdXZIdWZPbmdVZ0xpNE9QMzkvT25YdWpORm9wRlRwMGpScS9DeC8vbm5tbnMzNzdaelRiRGJUcUZGamhnMGZ5WkxGQzEwWVplOFh5cFVyaDA2blk5dTJiZXpkdTVlYU5XdGlNQmh5TmRpNS9YOUEvNzc4c21jM1o4NmNScEtsMnpwMzQ4YU4wZXYxZVQ0Z2N2dDczZGRmNGVucHllcTFYek40OEZER2p4dUQ0cmpJWjg2WXpzdnRYMm0yWnUyNjBtVFRId1YwZ2lBSW9pZzYxNDRpYXpVQVNYczVxZFdzRmpzWkdUYlMwcXlJem9LQlhTc1lPTFVNdEtLQjRPM2wwYjVnVDVJN3B6aDJRMFZLcXZDUGMyeTFhdFhtMjAxYkdCQTZrSklsUy9IdHBpMTh1MmtMSWQyNkYrajRpeGN1OFBISTRielhweTlidG03ajFkZGVaK0FIL1RYdXJpdFhMak4rM0JpR0RCbk81aDkrNHFXWDJqRml4RERTMHRTay9KeTU4L2wyMHhZQVpzeWF6YmVidGpCMy9rSUFSRkdrVStjdStQcXFudWxmZjEzaXdQNzlOR2p3TkFDQmdZSE1tVHNmRHcremRuTWNQM2FNR2pWcTNyTTV2NU56MXF2ZkFLdk5waG5rKzRuQXdFQnUzTGpoY0NaVWlpMC9QMWRQLzhpUmNFWU1HNExOWmlNdUxvNTNlblFuTGs0VkcvNTB4aXlHRFI5NVJ3NUlRRUJBbmw3K2h3TkRPWDdzcUdiTUZzeWY1N2llem11L2I5VnExVEVhalZ5N3BucUs1OCtmbzBHRHA2bFZ1MWFEWEx3MkVSQVZCVUVRQkxYdFE4bGFSSEMwZ05pemVtMTIwak9zaUhaSjFzUlpuR0dvckdTeWVLQW9naWdLTC8rVEgyTFF3RkJlNjlpZWtDNXYwYlh6bTJ6Wi9MMlcxM2l0NHl1MGIvY2kzVVB1N1dLRzdpRmR1SGp4OW5RRnR2MzBJNjkxZklVWFdyZGc5cXk4Q2Y1MjdOak82RTlHL21lTTYrYk5td2h1MHBSR2pScGpNcGxvMWZvRnFsU3R5amFIa0VkQVFDRExWM3hPdGVyVkVVV1JsOXEydzJhMTh2ZmZWd3Q4amo5T25hSkY4NmFFZE9sRWxhcFZlUzY0U2E3N0xWd3dEN09uSnkrMHVYODZRUVU1cHlBSStQdjVrNUo2LzBWNGpFWWpraVFSRUJCQTQ4YU5rV1VaazhtMVA2NXUzWHI0QndRd1p2UW5EQm80Z1BhdmRNRGYzMTg3L2w2Z1Q5LytUSnd3bnJselpyUDFoeTEwNmFvV3FCNnZVSUZmOXV4QmxtVXVYYnJFelp1UnBDU3I4L2I0NHhYWXMzc1hYbDdlemJNWk5YMm1jY3ZzYVZOa1J6anExRWVRVk1kTVZaS1hzRmh0cEdmWUVMTVlOYTFnSUN1QW8yaVFHakczR1hlQklmZWpJY05ZK2NWcTVzeGJ3T2NyVjNEcDBpV04zbmhxMktjUDVRM2VvbVVydmw2L2dXN2QzdVpSUW1Sa0pNV0x1K1p0eXBRSklqSlNaUlgyOXZibXQ5OStwWGV2SG5SNjgzVzZkZTJjYXlpU0g2by84UVRiZHV6aXEzVWJpSWlJY0ZFNGN1THpsWjl4K1BBaEprNmNuR2Y0YzdkUjBITXFpa0pjZkJ6ZUR5anRVcTVjT2FwV3JjcisvZnUxb2xCMnc5dTc5M3NjL2UxWFRFYlRQM293bU0xbU9uYnNTTWVPSFRFWURMUnIxNDZPSFR2eTJHT1B1ZXozZUlVSzZqM3oxUnA2OVg2WFFvWFVYUHVycjcyQlRxK2plN2N1ZlBINVozaDdlMlAyVkwzalFSOE81dWVmZC9KMjk2NVZ1b2FFVkhFWXM2eDVOcDJpS0NwWG0zTTFnaXdqT1VOVFdkWTZPbFN2VGNKaXNhR1hzcXd5Y0RUa09zTlFBTUZrMHJlOW16OUk0Y0srUFBGa0RTNWVPRS81OG5tVEt5WW1KakI1NGdTaW9xS3cyMjEwNnR4VlkrTThjK1kwTTJkTUp6MHRqU0pGaXpGMDJBZ3RNYjU3MTgrc1h2MGxsb3dNcWoveEpCOE0vRkRMUCt6NmVTZGpSMzlNZW5vR2ZmdjExN3lFYjlhdlU1UFhpa0xUWnYralcvY2V0L3dlUjQ2RTgrbjBhWWlDU01sU0pmRTBlMnJiOGh0RDgyYkI5Qi93QVV1WExFSlI0UHN0V3g4NncxYTBhRkVpSXlKYzNydCsvUnExYTZ1OVNudC8yY09xTDc5Z3hzelpsQ3F0RnNxZmE5d3cxNXNydTdHelpHU3dkZXNQdEc3OUFpWVBENG9YTDA3ejVzK3piOTllbC8zV3IvdWE3ZHQrWXRhY2VYZXQ0ZlJXdUoxekhqa1NqdEZnb0ZMbCs3OUV5bXExWXJmYk9YcFVEZnQwT2gwV2k4VTFwWkdTd2tjZkRhUnpseERPbmYyVEtaTW5NblRZaURzcUZxV25wN04rdlZvb2FkZXVIVC84OEFOWkY2ZG5qWEIyNy9xWjhSTW1NVDFzR2hNbVRhWlNwY3FZeldhR0Roc0JRRkpTRW0rODFvRVNKVW9DVUtwMGFUNmRNY3R4Myt4cStQbktsWDlrTld5Q0lEakNVVVhJR25xcktUTUpSUkdRSkFXN1hmWGFiRFk3Rm90ZERVVlZiMDBXSEVVRFRhaEZVUlJSRUlTN0dnTkVSMFZ4NnVUdlZLbFNOZC85enAwN3gvK2FQOCt5RlN1Wk0zY0JzMmJPd09wWUd6YnE0eEdFaGc3azh5L1g4TXd6alZpeWFJR1dyMW0vZmgxejVzeG41UmVyQWZoaHkyYnRNMzE4ZkZqNXhXcEdqeG5IL1BsekFaVlliL1BtVFN4Y3RKUWx5ejdqdDk5K1k5ZlBPL01kbThWaVljSzRNWXdhUFpZdlY2K2xUT215MnJaYmpjRnV0eE1WRmNXNmI3NWwvVGNiSDVqeGNuWnZBeWl5ak4xdTE0eFFteGRmWXMrZVhZU0hIOFp1dC9Qenp6djU0OVJKV3JSVTYwZXhzYkVJQW9nNkhZbUpDYXhlOWFYamMxeXJIc1ZMbE9EUXdZUFliRGFpbzFSSlFxUEp4QmVmcjJUdDJ0WFliRFlTRXVMWnUvY1hhdFNva1JrS2Y3K0piemR1WU9ic3VWcjRkTS9EN3dLZTAyS3hjUGpRUVNaUG1rRHZkOS9IeSt2K0U0UkdSMGRyQnNwb05PTHI2MHRDZ3F2SzJjV0xGd2dPYnNwYm5Ub3o4cFBSR0kwbUxjZDJyM0R5NUVrK25UR0w1NEtiTU9MalQvanQxeU11MjVPU2twZzJkVEl2dnRRMlJ6ajg5OTlYV2JaMGNiTXNJYWhXUkhCNGJLSWdDQzdMckZRYU5kbFJJM0ROdGVuVlNxaXNlV3V5eW1FcEFFSjY1THpXUU1tNzhhV25oMDNGN0dIR2FETFNwMjkvU3BjcGsrLytOV3ZXWXZteUpXemI5aU02blI2TEpZUGs1R1FTNHVQeDl2YWhhclhxQUx6VXRoMU5telVENFBEaFExejcreXJ2OW41SGU3SjVlL3RrNWgwYzdKNVZxMVhURXVIaDRZZDQvdm1XbU0ycWEvemlpeThSSG42WXBzMytsK2ZZcmw2OXdtT1BGZEdNYzVWcTFkajN5NTRDalFHZ2EwaTNlNWJuS0FpeU4raE9tVHlSS1pNbjhueUxsbno4eVdncVZxekVxREhqV0RCL0xwRVJFWlFwVzVhcFlaOXFNbTJ0WDJqRHFWTW42ZEc5S3pxZG5uWXZ0NmRpeFVyRXhidmVPQU1IZmtqWXRLbXNXTDZVTW1YS3NIVDVTb3hHSTFPbWhqRjN6aXkrV3JzR2c4RkFjSk9taERqQ2ZVbVNtRFpWRFFQZmZOMjF3K2p6TDFkVHJGanh1ejRmQlQxbnZ6N3ZJd2dxYyt5Z0R3ZmZ0VDQyUlFGdno0S1h3aTlmdm95dnJ5L05temNINFBqeDQxaXQxaHozdzYyQXVRQUFJQUJKUkVGVVQ4MmFLazIzWHE5blVEYW0zRHZGZDk5OWwzY3VQY3M1YXRXcVRhMWF0YlcvRnk5YXdPNWR1L2hmOCtkekZMSDY5M3VmbE9RVVFycS9YV0wwMlBGUE5ubXUwYS9aOG13MlFiWGt6bkJVVVlzSU1vS2dlbXlTbzFiZ3pMWHBKYWZ5bEhQNWxKcGJBeENNUmwzcnUzWHhEUHB3c0VZYlhCQ3NYYk1LdTgzT2xLblRFUVJCYXg5d2hqaE9HQXdHL1B6VUo2ek5haU80U1ZOTmJpeS94Ry9XRUNtcmR5NElnbGFLemkrL2tsZXphRUhHSUdaZjUzT1AwTEpWYTFxMnl2a1RWcXhZaVYvMkhjejMyRWFOR3VkNTQ1cE1Ka1orUE1ybHZYZDY1ZVMvcTkvZ2FiNWV2eUhIK3hVcVZtVG03TG01ZnJaT3AyUFAzZ1AzMWRBWDVKeTNtcTkvQWtFQXZjNU9hbXBLZ1NxVmlxSnc3Tml4ZjN6ZVZXdSt1bTl6M0t2M2UvVHFuYnVtK3V3NTg3T21LdW9CeDdPRm83cHM0YWlneUxJaVNYWkVRVVNTQk1maWdreXZUWlNkWWFpakdxcVN1V2xoYUdzZUVLS2pZL0QyOFVZUUJJNGZQMFpTVWhLS29sQzZUQm1TazVNNWYvNGNBRC85dUZVVGNxMVh2ejQvNzl6SjlldXFXT3pPblRzNGVmTDNmTTlUdDI1OXRtL2JSbnA2T2phYmpSKzJiS2Erb3pTZEY4cVdEU0k2T2xvcnVVZmN5SlQzdTVNeC9KTW52VGxMYnMrTjdFbHZ6eHc5Z1E5NnpuSWJFMEFSM3dSU2svTVd6ZmIwTEZqSVc5RDk3dVpuM2Mxem1qdzhtbVR6MXB3OWJhTGo1U0RsVUFSSmtoQUV1eUE3bzg0c1hwdGVDME1WQlNWTEdKb1dNYmZwM1FwRDgwSitnaFN2dmZZNlk4ZU00b2N0VzZoY3BRb1ZLbFlrTVNHQndNQkF4b3diejZkaDA3QllMQVErRnNpUW9XcGlza3FWcXZUclA0Q2hnei9FWnJkUkxxZ2NnNGNPeTNjTVQ5V3RTOHRXclhtM2wxb3dlUGE1SmpSdDJreExoaTVkc3BpVTFCUmtTV0xmM3IxMDZSckNTMjNiTVhUNENFWU1HNEtmdno5NnZVNHJIdHpKR1A3SmsxNFU1UUkvNlI4bHBLWWtJNHB5anA1QWRjNmtCekpucVNuSjZFUXAxejdGWXY1eDNJajFKeXBTd2N2SEw4Zll5cFd2Y010RjZaNmVYcFFyWCtHdWpmZEJuQk1vc1gzSHJzclBOMjk2Z2l3MFJrNmpwaG8yQkZtV0hlNGJTTEtnZFhZNEs2UkNrVUF6RnF0ZHNGcGw3SklpeUtwWWk4NFdzMkNTS0FvZjNPNm9IaVh1OW51QmkrZi9KTGhXd1pzK0wwZFZKamE1a0h0dGJqYmNqTHhCUUtFa2doN0xPWmVYb3lzVG0zVC81eXkvTVRtOXlhajRRa1RHQjJDVGpLUStvc1F0NmVucFMxdTNicjBLVlE4aEdWWHdKZDBoK0dJVEJDUlJGR1NEWGxDTVJoR1RVYStZUFF5WXpRWTh6U2E4dkV6b25XR29rb1hKUTFFVVVSU0Y1dmM2Q2VwR1RuaDdLcmZGMTFVbThEeFI4ZFc1R1hrRGJ4ODNOWGhxU2pJcEtjblliUm1VQ1RpWGV5b2g4Q3hSY1UvZXR6bHpqa215cDFNMjhHeStIbmhSL3lTSytpYzk0cUk4U2tQZ3F5emhxTTdCOXFGV1J4RWNDK05CbGhWRlZwdDJGVWxTMUFxcFhVS2ZyU2tYQllTNHl6T3FjUWRpTGJlYkJIVWo1dzJnMTlsdjY0SVdSWm02bGM1d09ib3ljWWxXRXVMaXlNaDROQi8xWnJNbm9pZ1RVTmhHMmNmT0lRcEtudGRwdlVvbnVSSlRtWmdFeXoyZE03UFpFNTBvRWVCcm9XemcyUUwvdG84eU9hc2dDTlczcnU5YnZIWEh1WDlweGsxQmgrRElzWUVnS0tyTmttWFViZzVIWmRUNTBxdlUzOW5XaG5wN05MblRRUlh4VFNBaUljRnQyTzRBS1NtSmxQUzdmY29pVWJCVHZzZ2ZsQy9pbHQrN0hjTVI5TmhaZ2g1N09PVDMzSERGVTdXQ3FnRi9PdzJiQWpvaGF3RkJ6YlVwaXFOTlRYS3NSbkQwdHlFNnZEVUJiVzBvZ2s0VW43dlRBUlh6ajBPUkVvaTZlWTIwQjdDTzd0K0l0TlFVb2lLdWdwUklVYjkveHNYMmFEL3BINzQ1Y3h1MU80T3ZyMmN0MUtLQm5zd0NnaXIwb3RHcEtZS3NJRGk4TmtHV2xTd2VtNU9leU9HeERlclhUQ2NJQlArVEgvS3BTcGU0R2UvRHpmZ0FraE9OcEtTNmY2aTg0TzBGQnAyVlVvRnhGUEZOY2srSUcyNEFCcjJ1WWMzcXhRd24vb2pVWndsSFJRUkVCVVVBUVZBVXh4SXJ4Ykc0d0VHN0pza3lncGRaSjlqc2lpQ3AxVkF4K2Zyc3BwNW00NC91cVhYRERUY2VKSTZldU5MbnFlQ0pwOGhTSFJVRTBnR3JJQWcyUVVEV2FkVlJIUjRtdmVMaFljQnNOcUszUzFrV3ZpdUtjRE1xc2VIOTZveDN3dzAzM01qVGF6UG9LZ04vWmcxRkZRVlJFRkE3T0JDUVpRVzdCSUpOUmhEc2FzZ29nT0RoNFNIYTdYWkJVUlJSVVJTZDNXN2ZKQWpDOCs1cGRjTU5OeDRrN0hiN2JvUEJNREdMeDVZaUNFSXFZQkVFd1NvSWdpUUlncXpYNnhXajBhZzQ2TzRWczltTTZGd1hxU2lLOE9xcnIrb0VRV2pvbmxJMzNIRGpRVU92MTljdFc3WnMxc0tCVmtCd09HS3VWRVpaWG9MUmFCUWxTUklWUmRFbEppWTI5UGIyM3VXZVVqZmN1UDlRRklYSXlFaHUzb3hDa2lSU1VwSWYrVGs1ZGVwVTc3NTkrNTUxZW15T1Y3b2dDRmJBN3ZUYWREcWRvdGZyTVJnTWlzbGtRcCtWeWNMRHc2T3UrL0p5dzQwSFk5U09IVHVHZ3FDdGhuRHI4WUt2LzJQbGdRdGthZnR3a0U5cWpUU0NJQ0FJQXFLb1E2L1hvOWNiTWhlV0FvSk9wM3ZxMy9qbFEwTkRhZFdxVllIMlRVbEpRUkFFZHUvZWZjZm5xMVdyRnBNblQ3N1R2QUdob2FFVUtWS0V3b1VMMDd0M2IwMEV4WTFIRjVHUmtTZ0lGQzFXd3QzY25nVStQajZWczRXaG9wTjRNcXZ0VWhtSlpMV2ZUWkhWSEp0em5hZ2dDSFhjVTNsdk1XellNRFp0MnNTNmRldll0R2tUTzNmdXBGKy9mdTZKZWNRUkZSWHQxdVBOQlFhRDRRbHk1dGl5R1RVRmxXNU5RVkZrRkZuV2R1RDgrZk5GZ0VydXFieDNTRTFOWmQ2OGVZU0ZoUkVjSEV4d2NEQ0xGeTltNWNxVnhNVEV1Q2ZvRVlZa1NYZmtxWjA1L1FjRFEvdmY4L0dkT1hPYXNHbFQyTzVRS25OaTQ4WnZDT255RmlGZE83a0k4a1JIUnpQd2d3R0VkTzFFM3o3dmNmWHFGVzNiaVJQSDZmbDJON3FGZEdiMEp5UHoxV1lWQktIQ3lJOUhlZWRqM0FBRUhBc05uTTI2enFxb1VLSkVpU2YvS3hmSmQ5OTlSLzM2OVRHYnpYaDVlZEc4ZVhQT25YTmxldmpsbDErb1ZxMGFIaDRlTkd2V2pMLysra3ZiSnNzeVk4ZU9wWFRwMG5oN2U5T29VU1AyNzkrZjY3bWlvNk41NVpWWDhQUHp3OXZibXhkZWVJRUxGeTVvMndNREEvbndRNVZOOTlpeFk2U25weE1jbkxtdzQ5bG5ud1hnNE1HRDdydjdFVVp5OHAydE9xbGNwU3FqeG95OXAyT2JQMjh1eTVZdTRkTEZpeTVHNk9yVksyeFl2NTRGaTVheWJQbEtUcHc0eHBFajRZNWo1dENzMmY5WStma3F1blYvbXltVEptcXBtRWtUeGpIeWsxRjh0dkpMU3BVdW8ybG01SVZubndzdTRUQmtMb1NUanJCVVc0R2dLbGlwWHB2bTBoa01oditFWWZ2OTk5OTU1WlZYNk55NU0yZk9uR0hIamgzY3ZIbFRNeTVPekpvMWkwbVRKbkg4K0hHOHZiMXAxcXlacHJ3emNlSkVsaXhad3BJbFN6aDU4aVFkT25TZ2VmUG1uTTFGSERjME5CU0x4VUo0ZURqSGpoMURsbVZDUWpMMUJBWU5HcVJ4MDErL2ZoMmowVWhBUUVCV1Y1dUFnQUN1WGJ2bXZydmR5SUhZMkZnR0RRd2xwTXRiZEF2cHpPRkQ2Z1BRcWNuYm9YMWJRdnU3cGpLR0RmbEk5YUs2dkVXN2wxN2d6VGRlMWJaZHZIaVIwUDU5NmQ2dEM0TStHTURObTVFdXg2NzcraXVYL1FGNnZ0T0xzT2t6S1AvNDQ2NzMyb2tUUEZXM0xwNmVLc21xbjY4Zko0NGYxN3l5NTU1VEgrQ0ZDeGZtenovUFlMVmFpWXlJd01Oc0ppaW9IQUQrL3Y2Y09KNC96WG54WXNYS1pERnFqanhiMW5CVXlReEoxVHdiZWxCNzJIUTZYZlgvd29XZ0tBcWZmdm9wL2Z1cjdubFFVQkFoSVNFc1dMREFaYjlQUHZtRWR1M2FBYkJpeFFwS2xTckY1czJiZWVtbGw1ZzhlVExMbHkvWENoSURCdzVrMTY1ZHpKdzVNOGZuWEw1OG1kS2xTMU95WkVrOFBUMVp2bnk1aTVFYU5peVRQVGN0TFEwUEQ0OGNZemFaVERuazA5eHdBK0NydGF1cFVhTUdJZDNlNXRLbFM4eWZONGNHVHpmVU5IblBuei9IeFBIalhJNlpOR1Vhb0VwWTluNm5oNmEvWWJWYW1UaCtMT01uVHFaNDhlTDg5T05XRnN5ZngrZ3htY2ZYckZVcmg1NUhYc0pEaVltSmVIaDRFQjBkemFRSjQ1QmtDUjlIbmpBeE1SR1Rod2ZmYi9xT0hUdTJZVFFhU1VsSklTa3BDWlBKaE5WcVplNmNXZHk0Y1NPSHdsWjJlSGw3bDh0aTFCd0dUaEVkRkFPT1hqYWN0UUpGVVJSQjcyeHlFd1RoUDJIWWF0YXNTVUJBQU5PblQrZk1tVE9jUFh1V1gzLzlsYUpGWFl2bmpSdG5DcFVFQkFSUXZueDUvdmpqRDU1ODhrbFNVMVBwMXEwYmI3K2RLWlJzdFZwZGpuRml5SkFodlBubW13UUdCdEswYVZOZWZQRkZ1bmJ0bXV2WXpHWnpEalVoVUNYZEhvU01teHNQUCtyVmI4Q2NXVE1BZ2ZyMUd4QTJmVWFCanBObG1UR2pSOUhteGJiVXI5OEFVS1VocjEzN20rRkRCNnY3S0RKZTJmUUtLbFdxVEtWS0JkZEtQWDM2RDQ2TkdFcm9CNE00KytlZlhNeVNocGswWVJ3QmdZR0VUWi9KcXgxZWRqR0lBejhZd0lzdnZrU0hqcTh5WXRqUWZNOWhNQmdxWk11dDVjeXhvYUNBVmtEUVoyNmc2bi9oUWpoNDhDRE5taldqU1pNbU5HM2FsTmRlZTQzdzhIQ1dMbDJhNzFOSXI5ZGpOQm8xcmMwMWE5WlF2YnFycmMvTjIycmJ0aTNYcjEvbisrKy81OGNmZjJUNDhPSE1ueitmdzRjUGF5NjZFNlZLbFNJakk0T0VoQVI4ZlgwQnNObHN4TWJHVXJKa1NmZGQ3RVpPdzFhdlBuUG5MU1Q4U0RpZnIxeUIwV2hrekxnSnR6eHUyZExGZUhoNDBMbEw1a1BXWnJOUnJGZ3hWcXo4NHE2TXJYRGh3bVJrWkJBMmZTYUZDaFhpeEluakZIWmMxNFVMRithWlJvMDFrWE5WaHRLYlFvVUtrWlNZeUlTSlUzajg4Y2M1ZS9aUDdWN0lDNElnVk02U1c4dWFaOHRlUUZDY0JRUVJFS0tpb2lvQnB2L0NoYkJnd1FMcTE2L1AxcTFiR1R4NE1DMWF0T0RHalJzNUpQV3k1c3VTazVPNWVQRWkxYXRYcDN6NThwaE1KaTVjdUVDRkNoVzAxNkpGaTlpeVpVdXVIdHY1OCtmcDBxVUxxMWF0WXYvKy9adzZkWXJqamx4RFZ0U3VYUnV6MmN6ZXZabXE1L3YyN1VNVVJaNSsrbW4zWGV4R0RreWFPSjd3SStFMGIvNDh3NGFQNU5DaGd5N1NrYmxoMzc2OTdObTltK0VqUG5hUnFxeFFvUUpKU1VuOHNtZTNsbS83ZnBPclR1ajU4K2ZZdVBHYkFvM3R5Um8xc0ZxdG1Fd21KRW5pNElIOTFLeWxhcG5XcWxWYkcrZlIzMzRqS0tnY1JxT1JZc1dMVTlqWEY1UERzZGkzZDY5MlRENHdMVjY2UERBWGc2YjFzQUZaUERaSGpzM2IyN3ZDZitWQzhQZjNaK2ZPblp3OGVaS1NKVXV5YnQwNmxpMWJocCtmbjh0KzQ4ZVBwM0hqeHZqNitoSWFHa3JGaWhWcDNibzFvaWd5Y09CQXhvNGRTN0ZpeFdqWXNDSHIxNjlueG93WmJOKytQY2Y1enA0OVM1OCtmWmczYng0QkFRR3NXTEVDYjI5dnFsUlJCVzBtVFpwRTdkcTFhZFdxRlY1ZVh2VG8wWU8rZmZ2aTQrT0QwV2lrZCsvZWRPL2UvYjRwbnJ2eDcwTG56bDBKQzV2QzJ0V3JrR1daZ1lNK1FoVEZmQlhlNXM2ZVNVWkdCbjNlNjZWOXp0ejVpL0R4OFdIU2xHbk0vSFE2aXhZdXdOUFRrNEhaaEpTUEhUM0toZzNyYWQrK3d5M0hWclpzRU8zYmQrRGRYajFSVUhqMjJXQk5PL2o5UHYyWVBHa0M2NzcrQ3JQWnpKQmh3N1hJYVBpSWp4azNialEycTQzU3BVc3plT2p3VzU2clFvV0tqd0hYYy9mWUhEb2hHcmVrZ2lDS29vZkZZaG1nMStzbi8xdC8vTkRRVVA3ODgwOSsvUEZIWW1OajZkbXpKenQzN3NSZ01QRFVVMC94eGh0djBMTm5UNjVldllxdnJ5OCtQajVNblRxVmxTdFg4dmZmZjlPb1VTTVdMbHhJR1ljNnZjMW1ZOHlZTVh6MjJXZkV4TVJRdVhKbFB2bmtFenAwNk9CNEd0WGlqVGZlWU9qUW9VUkhSek5nd0FDMmI5OU9jbkl5ZGVyVVlkcTBhVFJxMUFoUTJ6MjZkZXRHV0ZpWWxrOExEUTFselpvMWlLSkl4NDRkbVQxN2RxNWhyaHVQRHZiczJlTldkOHNIY2JHeFlUVnJWTitPdW1iVStVb1RCQ0VEVlNsZUVrVlJYVE5xTUNpQ0lBaG11OTArVXhURlh1N3BjOE1OdDJGN0dKR1JucjY2WW9WeVgyUXpiS2xaREp0ZEVFUlpweE1WdmNHZzZCM0p1YUIvNnhlZU4yOGVmZnYyL1UvOGVKR1JrVG1xdHdXQkxNdGN2bktWdUxnNEpFa2lJLzNSWEh2cVlUYWowK253OXdzZ0tLZ00rUkdtS29yaW1MTlk3UFo3TjJjZVpqTjZ2WjRBL3dDQ2dzcmVjdi9yN243R1hDRkpVbkVjVGJsWlg0cWlwaEhWN2c0WldRYkpMaUVJZ3VBcHkvSlJvTEo3K3Y1OXNGaXNuRGh4QXAxZTc5WVZCVkpUVTBoSlRrS1M3TlNxV1F1ajBaQ3JVZnYxMTk4UWRicjdveXZxR0pNc1M5U3JXOWZ0c2QwQkZFVTVYNlpVOFEvSUpKMTBFazg2cWNMdGpuQlUwZXYxaXJPNlVOWTlkZjlPUkVSR29OUHIzYXdRRG5oNWVWTzBXQWwwT2owM0ltN2t1czlmbDY4ZzZuVDNiYzZjWXhKRkhWZXVYSFZmdEhjQVFSQktaL1BZc3YvZnBWbFhQSC8rZkZIQW5ibitseUkySnRiTkNwRUx2SDBLRVJNVG0rdTJ1TGk0QnpKbjNqNkZpSWwxa3gzY2FWVC95ZWd4M3VUWjh1SFViUUZRMEFjRUJCUjN6OW0vMVQyL2MxYUlSOEZ6UzB5SXkzWGJnNW96THk5dkV1UGo3dWpZcE1SRUx2OTFrZFI4dEhxOXZMd0pLdmM0aFFvWGZtRHpmaS9IV2JWS3RVSkFUQzdlbXZPT3dObjZvVGVaVEVYdi9nM25wamd1S0h4OENxSFRpUlFwVW9UaXhXL3ZHU01Ja0o3dUpxbk1DK2w1RUhnK3lPTEtuZjVlZjEyNlFGcGEvZ0s5cWFrcFhQN3JJalZxUFRoYXhYczV6c2VLRkNtVTNWdHpGQThFMTNCVVVmUTZuZTZ1R2pZM3hmSHRJelUxaFJzUmtkeUlpT0NwT25mM290eSs3U2RXTEY5R1ZOUk5TcFFvd2VkZnJ1SDgrWFAwNko3SlFESjArRWhlZUtHTis0ZDRpSEVyWTVIMVd2cXZqck5Rb1VLRnNoZ3daM091NEZnTW56V1NFZlNpS0Q1Mk43OVlWb3BqTndvZW9uaDVlUk4xTTRMSXlFaUtGU3QyVno3M3hvMGJUSms4a1RIakpsQ3ZYbjJTa2xUT3J3b1ZLcko5NTI0QTN1blI3WjU5citYTGx0THU1Zll1TkUzT2NjMmFNWjJUSjMvSGFEVFMvUG1XdlBkK0g0MVY0dHExYTh5Wk5ZT1RwMDVpTXBsbzBhSWx2WHEvbDROMTRtN2lWdWQ4cm5GRERBWURnaUFTRkJSRTl4NDlhZFNvc2Z2aXZZOHdtejBLdVJxMUhDL0gwa2tGVVJURmdMdDVjamZGOFQ4d2NONCszTHg1ODY1OTN0ay96eEFZR0VpalJvMHhHbzBFQmdZNlFsZ0Jod2FqeTFyQ3U0M1BWaXdqTGk1bkFuLzBxSkdVTEZXS2pkOXRadkdTNVJ3NmVJQk5tNzRGMUo2OG9ZTS9wRkxsS256NzNXYm16Sm5QbnQyNzJMamhtM3Myem9LZWMrNzhoWHkvWlN2ZGUvUWtiT3BrTm55ei9vRmNKNElnVUtkT0hWcTBhRUh6NXMwcFVlTDJuSWlEQi9ZVDByVVRyNy82Q2pNK0RkUFdkTnBzTnNLbVRTR2t5MXQwRCtuQ3ZuMlphNXJ6WThTOWQ1Rk1LcHUrKzVhaGcxWGFKWVBCbU4xakUzRVVEckpHakZhckZWRVFoTHU2U05HZHpQNW5ucHRka3Y3eDV4dy9mb3lYMjdaaDJ0VEpSRVpHOG5MYk5yemN0ZzByUDF0UjRNODRkUEFBbmQ5NmcrYk5ndW5SUFlRL1RwMXkyYjVuOXk1Q3VuYmloVmJQMDcxYkZ3NGRQS0J0NjlmM2ZWNXVxNGEySHd6b3o4dHQyOUQzL1hjMUl4SWMzSlN1SWQwd21Vd1VLVnFVdXZYcWNjNUJTaEFYRjRlZnZ6K2RPbmZHYURSU3FuUnBHalYrbGovL1BIUFA1djEyem1rMm0yblVxREhEaG85a3llS0YrZEphM3l1VUsxY09uVTdIdG0zYjJMdDNMelZyMXNSZ01PUnFzTFAvUHlNam5hbFRKakZ4MGxSV3IxMUhURXdNMjM3NkVZQ3RQMndoSXlPRGxWK3NadnFNV2N5ZSthbm01ZWZGaUZzUVBQSEVFOXBETmI4eFp2MDdKaWFHZDNwMDU4S0Y4OXJ2b05mckMrWGhxV2t2V1piUjYvV0lnTi9kblBRN3BUaDJRMFZLOGo4dnROU3FWWnR2TjIxaFFPaEFTcFlzeGJlYnR2RHRwaTJFZE90ZW9PTXZYcmpBeHlPSDgxNmZ2bXpadW8xWFgzdWRnUi8wSjhyaFRWNjVjcG54NDhZd1pNaHdOdi93RXkrOTFJNFJJNFpwYWx0ejVzN24yMDBxRThxTVdiUDVkdE1XNXM1ZkNJQW9pblRxM0FWZlgvV3krK3V2U3h6WXY1OEdEVlIyazhEQVFPYk1uWStIaDFtNzBJOGZPMGFOR2pYdjJaemZ5VG5yMVcrQTFXYlREUEw5UkdCZ0lEZHUzTkE4RkZtV2M1QThIRGtTem9oaFE3RFpiTVRGeGZGT2orN0V4Y1VSRVJHQnI2OGZKVXVXUktmVDBhcFZhdzRmUGdTb3JMZlBQdnVjNDNjU01CaU1uRHQzVnR1V0d5TnVBWE5qZVpKVkxsdTZXS01HUDNueWR3YjBWMWNSK2ZyNjhzV3FOWVIweStSRTFPbDB1WVdpdUlhaHFrY3JBdmM4Ymh3ME1KVFhPcllucE10YmRPMzhKbHMyZjYvbE5WN3IrQXJ0MjcxSTk1QXU5M1FNM1VPNmNQSGl4ZHM2WnR0UFAvSmF4MWQ0b1hVTFpzL0ttK0J2eDQ3dGpQNWs1SC9HdUc3ZXZJbmdKazFwMUtneEpwT0pWcTFmb0VyVnFteHpDSGtFQkFTeWZNWG5WS3RlSFZFVWVhbHRPMnhXSzMvL1hmRG0wejlPbmFKRjg2YUVkT2xFbGFwVmVTNjRTYTc3TFZ3d0Q3T25KeSswZWZHK2ZmK0NuRk1RQlB6OS9FbDVBTWw2bzlHSUpFa0VCQVRRdUhGalpGbkdaSEpsSGF0YnR4NytBUUdNR2YwSmd3WU9vUDBySGZEMzk2ZFlzZUxFeGNWeTZkSWw3SFk3NGVIaHBLU28zOEhKaUh2cTFFbUdEUDRRbzhsSVltS2l0czNKaUR0M3ppeU5FZmVmNHMyM09yTnIxOC9NbVQyVGNXTkcwN2RmZjZkM2xpT25LZ2lDZHo2NU5SY2pweGNFNGI0a3hENGFNb3g2OWVxVG1KaEFyNTV2VTdXYXluMldGNzN4dzRBV0xWdlJvbVVydnY1cUxaR1JFWStNMXhnWkdVbUZDaFZkM2l0VEpraWJBMjl2YjNaczM4YjQ4V05JU1U3Sk02eklEOVdmZUlKdE8zWVJFUkhCSngrUFlQbXlwZlI4eDVXSDRmT1ZuM0g0OENIbXpKbVBYcSsvTDkrOW9PZFVGSVc0K0RpOEgxRGF4Um1PN3QrL24xcTU4SmtKZ2tEdjN1L3h4dXNkS1ZPbXJHYWt6V1l6dzRhUFpQS2s4WTdmdFN5ZVpyTjIzUGZmYnlJOVBaMUprNmN4ZSthbkxwK1pGeU51WG1qVnFoWGUzdXI4T1BPQXAwK2Y1dlRwMDlvKzN0N2V2UHZ1KzN3UTJvODMzK3BFNWNwNUx5c1RSZEU3bnpCVU0ybzJtdzA5Y0Y4NXFRc1g5dVdKSjJ0dzhjSjV5cGN2bitkK2lZa0pUSjQ0Z2Fpb0tPeDJHNTA2ZDlYWU9NK2NPYzNNR2ROSlQwdWpTTkZpREIwMlFvdmhkKy82bWRXcnY4U1NrVUgxSjU3a2c0RWZhdm1IWFQvdlpPem9qMGxQejZCdnYvNmFsL0ROK25WcThscFJhTnJzZjNUcjN1T1czK1BJa1hBK25UNE5VUkFwV2Fva251Wk10dHo4eHRDOFdURDlCM3pBMGlXTFVCVDRmc3ZXaDg2d0ZTMWFsTWdJVjBOKy9mbzFhdGRXVzFIMi9yS0hWVjkrd1l5WnN5bFZ1alNnVmcxenU3bXlHenRMUmdaYnQvNUE2OVl2WVBMd29Iang0alJ2L3J4TG9ocGcvYnF2MmI3dEoyYk5tWGZmR2s1djU1eEhqb1JqTkJpb1ZQbitMN0cyV3EzWTdYYU9IajNxRE5GeWFHYWtwS1R3MFVjRDZkd2xoSE5uLzJUSzVJa01IVFlDUVJCNHV1RXpQTjN3R1VmdWJLNUdTMSs0Y0dITVpqTmp4MDFBRkVVc0ZndUZIZk9RRnlOdWZ2anhSelYzOTh3enozRDU4bVV0ZkhaSmUxeTh5T1JKRXhnN2JnSXJsaStsVE5rZzJ1VHRLWHRsTTJKWmpKcVFOV1JGQkR6djU0OFNIUlhGcVpPL1U2Vksva3prNTg2ZDQzL05uMmZaaXBYTW1idUFXVE5uWUxWYXNWcXRqUHA0QktHaEEvbjh5elU4ODB3amxpeGFvT1ZyMXE5Zng1dzU4MW41eFdvQWZ0aXlXZnRNSHg4ZlZuNnhtdEZqeGpGLy9seEFKZGJidkhrVEN4Y3RaY215ei9qdHQ5L1k5ZlBPZk1kbXNWaVlNRzRNbzBhUDVjdlZheWxUT25PcDdhM0dZTGZiaVlxS1l0MDMzN0wrbTQwUHpIalo3WGFOQmwyUlpleDJ1MmFFMnJ6NEVudjI3Q0k4L0RCMnU1MmZmOTdKSDZkTzBxSmxTMEJWVGhJRUVIVTZFaE1UdEJ5SklydXlGQmN2VVlKREJ3OWlzOW1Jam9wU3d5aVRpUzgrWDhuYXRhdXgyV3drSk1TemQrOHYxS2hSSXpNVS9uNFQzMjdjd016WmMrOGJBV2RCejJteFdEaDg2Q0NUSjAyZzk3dnZQeEN0aXVqb2FLMmFiVFFhOGZYMXpTR0ljdkhpQllLRG0vSldwODZNL0dRMFJxT0p1RGpYVlErSER4MWt4NDV0V2c5anJWcTFzZHZ0aUtKSVFrSThGeTllcEZMRlN0cTIzQmh4L3lsKysvVUlRNGVOb0VuVFpudzZjdzZuL3ppVmcrMDZ5NFBTbk0yb1pYMkd1cFQzOVlENWZ2d1kwOE9tWXZZd1l6UVo2ZE8zUDZVZHBJNTVvV2JOV2l4ZnRvUnQyMzVFcDlOanNXU1FuSnhNUW53ODN0NCtWSzJtNmhHODFMWWRUWnMxVTMrb3c0ZTQ5dmRWM3UzOVRwYW5pazltM3NIQjdsbTFXalV0RVI0ZWZvam5uMitKMmVHT3YvamlTNFNISDZacHMvL2xPYmFyVjYvdzJHTkZOT05jcFZvMTl2MnlwMEJqQU9nYTB1MnVYQlIzaXV3TnVsTW1UMlRLNUlrODM2SWxIMzh5bW9vVkt6RnF6RGdXeko5TFpFUUVaY3FXWldyWXB4UXRxdmJYdFg2aERhZE9uYVJIOTY3b2RIcmF2ZHllaWhVckVaZHR1ZERBZ1I4U05tMnEraVF1VTRhbHkxZGlOQnFaTWpXTXVYTm04ZFhhTlJnTUJvS2JOTldTeEpJa01XM3FaUFI2UFcrKzN0RTFUUHh5TmNXSzNmMFZnQVU5Wjc4Kzd5TUlLblBzb0E4SDM5VStOaDhmbndMdmUvbnlaWHg5ZlRWWngrUEhqK2RJNU5lc1dZdWFOV3RwK2FwQldaaHk0K1BqNk5XekI2VkxsMmJpcENrOFZxU0k5cnVlTzNkT3kzZjNHeENxZWE1NU1lSVdCQWNPSE1oejIydXZ2Nkg5UHlBZ2dJOEc1eXZzNHBGUEdPcXdjQ0tTSktFSDdzc2ROdWpEd1JwdGNFR3dkczBxN0RZN1U2Wk9SeEFFclgzQWFaNmRNQmdNK1BtcFQxaWIxVVp3azZhYTNGaCtpZCtzSVZMV1ZpNUJFUEo4WW1UTnIrVFZMRnFRTWVUSEUzWTMwYkpWYTFxMmFwM2ovWW9WSy9ITHZ2d0ZtaHMxYXB6bmpXc3ltUmo1OFNpWDk5N3AxVHZIZnZVYlBNM1g2emZrZUw5Q3hZck1uRDAzMTgvVzZYVHMyWHZndmhyNmdwenpWdk4xTjhhUW1wcFNvRllwNStxZU80V2Zuei9yY29rV3NodkFyQWdNREN5d1F0YmRSRUJBZ0ZaaHo4VldDZG50Z1NDQVRxZTJlenc0MXlGZmR6c0dieDl2QkVIZytQRmpKQ1Vsb1NnS3BjdVVJVGs1bWZQblZXWDNuMzdjU3RpMEtRRFVxMStmbjNmdTVQcjE2d0RzM0xtRGt5ZC96L2M4ZGV2V1ovdTJiYVNucDJPejJmaGh5MmJxTjhoZldLVnMyU0NpbzZPMW5FRkVsdHpCbll6aG44QnM5c1NOMjV1YkJ6bG5lWjI3U0pFaXBPV3pwdHJUczJBaGIwSDN1MWU0eCtNMDV1S3BDVW8ycjgwWml1b2UxQ1RrSjBqeDJtdXZNM2JNS0g3WXNvWEtWYXBRb1dKRkVoTVNDQXdNWk15NDhYd2FOZzJMeFVMZ1k0RU1HVHBDRFFtclZLVmYvd0VNSGZ3aE5ydU5ja0hsR0R4MFdMNWplS3B1WFZxMmFzMjd2ZFNDd2JQUE5hRnBVelcwM2ZiVGp5eGRzcGlVMUJSa1NXTGYzcjEwNlJyQ1MyM2JNWFQ0Q0VZTUc0S2Z2ejk2dlU0ckh0ekpHTzdYay81UlFtcEtjcDVldGZpQTVpdzFKUmxkSHBYVzRzV0xFeEVSUWZUTkNEeTlmWEtNclZ6NUNyZGNZTzdwNlVXNThnOVdsK2tlajFPWG04ZVdXOTVOVUc0VmQ5MG1qaDQ5U3BGaWJvM01PMFZVNUhYcTNNWkMrTXVYcnhBYkYrZGVtNXNOTnlOdkVCZ1lRTmxjY3JtWHIxd2hOdmIrejluTnlCc0VCQVFRVkRidi9ISlVWQlNSa1pIWTdYYVNrOTJzT05uUnBFbVQ5a0FhS29OdUVwbWlMaFkwN1FOQnZ1dk5RVzRQNHA4OTBXKzNYNnRzMlRKRVIwY2pudHFQQUFBZ0FFbEVRVlJ4TS9LR214cmNNWWNwS2NsSWRudXVSZzBncUd4Wm9xTHUzNXc1eHlSTFVyNUd6Um1TRm5Fazg5M0lGZG5EVHNHWll4TUVRVjExSUlxQ29DaUtoTHBFNGE0Z0lpS0N5TWliUEZiVXpWOTUrOTdhRFVxVUtIN2I3QjZLb3ZEWDVTdkV4Y1VpMldVeU1oNU5qamF6MlJOUnB5TXdJSkN5WlV2ZmNvSC9sU3RYaVk2SlFiSkw5MnpPekdaUGRIcjlMVDAxTndvRVdSQ0Vqa0JxRm84dFJSQ0VWTUFpQ0lKTkVBUzdLSXFLb0NpS0ZURGM3WEJVRUhWNGVYbmo2ZmJjYm9rMGg5Z0hLTGNWaHJyaHhpTUdteUFJcjJjeGJNbEFzaUFJYVVCR1ZzT21CKzY2WWF0VHB3NDNiOTdrWmxRVXlVbUpiZ2JkZk9EdDQ0TkJyNmRVcVpMdUVNUU5OL0tIdGFBN09nM2JYYThSRnkxYTlJNDBNdDF3d3cwM0NtallsR3ovYWhDQmRQZDh1ZUdHRy84Q1pCVFlZN3R5NVlwYkRjUU5OOXg0NktFb1Nub3UzcG1pT0JSZG5KMXJpcUlvK3JKbHk2YTZwOHdOTjl4NDJDSExjbXFXMEZNemNObmJQUVJCUUZRVXhVMTU2NFliYnZ3YlBMYnN6SlpLdHY5cmYrdFJlMEhjY01PTkIzL2p1dlY0ODRIZGJrL0pZc0NVTEtHb2tqVVVsV1VadmFJb0NmZFNxY2dOTjl3b21GRno2L0htRDR2RmtweWJ4K1pxdnpKRDBiaEhiWUpLbFNwRnRXclZjaFdqOFBiMjVyUFBQcnVYVHgxQ1EwTXBVcVFJaFFzWHBuZnYzcG9JaWh1UExyTHE4YnFYSStaNTd5Umw4OWdVY21uMUFOV3d4VDZLazNUbXpCa21UWnAwMzg4N2JOZ3dObTNheExwMTY5aTBhUk03ZCs2a1g3OSs3cXYyRVlkYmovZldzRnF0U1ZrOHRWenlhNExLclNpQUtFbFN6S000U2VYS2xXUGl4SW1jT1hQbXZwMHpOVFdWZWZQbUVSWVdSbkJ3TU1IQndTeGV2SmlWSzFjU0V4UGp2bklmWWR5cEh1K1owMzh3TUxUL2ZYQUVUaE0yYlFyYkhVcGxUbXpjK0EwaFhkNGlwR3NubGk5YnFyMmZuOER5aVJQSDZmbDJON3FGZEdiMEp5TUxyTTJhbnA2V2pHdFRicmJxcU5OZkE5Rm1zOTE4RkMrazNyMTdVNzE2ZGQ1NTU1MThHWFBYcjEvUGswOCtpZGxzcG5yMTZpeGR1dFJsKzg4Ly8weWRPblV3bTgzVXExZVBzTEF3RjNIWXdNQkFQdnhRWmRNOWR1d1k2ZW5wQkFjSGE5dWZmZlpaQUE0ZVBPaSt1eDloM0trZWIrVXFWUmsxWnV3OUhkdjhlWE5adG5RSmx5NWVkREZDVjY5ZVljUDY5U3hZdEpSbHkxZHk0c1F4amh3SmR4eVR1OEN5M1c1bjBvUnhqUHhrRkordC9KSlNwY3RvbWhtM1FsSmlVbDZoYUk0VkNQcU1qSXlvVzZuTi9CZWgwK2xZc21RSkRSbzBZTkdpUmJ6NzdyczU5dG03ZHkrZE9uVmk5dXpadEdyVmlxTkhqOUs3ZDI5ME9oM2R1M2ZuNHNXTHRHblRocjU5KzdKbXpScCsrZVVYK3Zmdjd5THdNV2pRSUdyWHJnM0E5ZXZYTVJxTkJBUUVhTnNOQmdNQkFRRmN1M2JOZlhlN2tRT3hzYkZNbkRDT21PZ29CRkhrdmZmNjBPRHBoaTRrcmI2K2ZxeFkrVVZtdW1QSVI5eTRvVEk0SnlRazRPbmx4WnExNndCVkZXck9yQmtrSmlYaTcrZlA0S0hETkMwTGdIVmZmOFdHRGV1MS9RRjZ2dE1MbzlHb01WVTc4ZnVKRXp4VnR5NmVucDdZN1hiOGZQMDRjZnc0OWVyVjU4U0o0M3p3d1NEQVZXQTU2dVpOUE14bWdvTEtBZUR2NzgvUE8zY1VhQzV1UnQxTUxvQlJVd0QwRVJFUkVYbkp6Ly9YOGRSVFR4RWFHc3FRSVVObzI3YXRwbjNveElRSkUralJvd2U5ZTZ0OC9tWExsdVhTcFV0TW5UcVY3dDI3czNEaFFxcFVxY0swYWRQVXAyZmx5cHc4ZVpMVnExZTc1TlNjU0V0THc4UERJOGM0VENaVER2azBOOXdBK0dydGFtclVxRUZJdDdlNWRPa1M4K2ZOb2NIVERTbFZxbFNlbXJ5VHBxalhZMkppQXIzZjZhSHBiMWl0VmlhT0g4djRpWk1wWHJ3NFAvMjRsUVh6NXpGNlRPYnhOV3ZWeXNFOG5KZndrRk5nT1RvNm1ra1R4aUhKRWo2T1BHRldnZVVkTzdacEFzdEpTVW1ZVENhc1ZpdHo1OHppeG8wYk9SUzI4ZzY3VHp2YlBlUzhQRFZuTUNyV3JGa3ppdHRZZy9WZnc5aXhZd2tJQ0tCdjM3NDV0cDA2ZFlwbHk1Ymg3ZTJ0dlVhT0hNbUZDeGVRSkluang0OVR2NzZyUUUyalJvM3lQSmZaYk02MUVtdXhXQjZJakpzYkR6L3ExVy9BemgzYldmblpDaXdaR1FVV1ZKRmxtVEdqUjlIbXhiYlVyOThBVUtVaHIxMzdtK0ZEQjlNOXBBdXJWMytwcWJVNVVhbFNaVjdwMExIQTR6dDkrZzlHamhqS083M2ZwV2xUVjJXM1NSUEdjZm55WDRSTm4rbWlWSitZbU1qQUR3WlFyVnAxK3ZVZlVOQlRaVXdZUHpZdG4xQlVNM1NDb0Rib0Fsd0ZLajJLRjQ2bnB5Y0xGeTZrWmN1V2JOem9xdHhqdDlzWk5HZ1FiNy85ZG83alJGRkVyOWZuRUFUT0wxOVhxbFFwTWpJeVNFaEl3TmZYRjFCVnEyTmpZeWxaMGsybjdrWXVocTFlZmViT1cwajRrWEErWDdrQ285SEltSEVUYm5uY3NxV0w4ZkR3b0hPWHJ0cDdOcHVOWXNXS3VZU3Qvd1NGQ3hjbUl5T0RzT2t6S1ZTb0VDZE9IS2V3NDdyT1MyQzVVS0ZDSkNVbU1tSGlGQjUvL0hIT252MVR1eGZ5ZzZJb2YyY3pZSElXenkzbi9ha2VvMXg1bEMrZUZpMWEwTGx6Wi9yMjdhdUpDQU5VcTFhTmt5ZFBVcUZDQmUxMTRNQUJaczJhaFNBSVBQbmtreHc1Y3NUbHM3TC9uUlcxYTlmR2JEYXpkMittNnZtK2Zmc1FSWkdubjM3YWZSZTdrUU9USm80bi9FZzR6WnMvejdEaEl6bDA2R0NPaDJsMjdOdTNsejI3ZHpOOHhNY3V6YXNWS2xRZ0tTbUpYL2JzMXZKdDMyLzZ6dVhZOCtmUHNYSGpOd1VhMjVNMWFtQzFXakdaVEVpU3hNRUQrNmxaUzlVeXpVdGd1Vmp4NGhUMjljWGtDRy8zN2QyckhaTWZKRW02bnMybzVlR3RxZjBlZWtDUlpmbHlYb28randwbXpKaEIxYXBWWFhKZFE0WU1vVldyVm93ZVBacE9uVHB4K3ZScCt2ZnZ6OENCQXdIbzI3Y3ZzMmZQWnVqUW9iejk5dHNjT25TSUJRc1d1SVNWa3laTm9uYnQyclJxMVFvdkx5OTY5T2hCMzc1OThmSHh3V2cwMHJ0M2I3cDM3MzdmRk0vZCtIZWhjK2V1aElWTlllM3FWY2l5ek1CQkh5R0tZcjRLYjNObnp5UWpJNE0rNy9YU1BtZnUvRVg0K1Bnd2FjbzBabjQ2blVVTEYrRHA2Y25BYkRxaXg0NGVaY09HOWJSdjMrR1dZeXRiTm9qMjdUdndicStlS0NnOCsyeXdwaDJjbDhDeVhxOW4rSWlQR1RkdU5EYXJqZEtsU3pONDZLM0ZsMjAyVzBRdUhwdWlxdSs1ZW0yQ2dDSUlndUNka1pIUnoyZzBUbnhVTHBaU3BVb1JHaHFxdFdFNDhjVVhYOUMxYTFkV3JGaEJ0MjdkQUZpMWFoVVRKMDdrd29VTEZDdFdqSjQ5ZXpKeTVFanRTZmpUVHo4eGNPQkFMbHk0UU8zYXRXblFvQUhyMTYvWGRFVURBd1BwMXEwYllXRmhXajR0TkRTVU5XdldJSW9pSFR0MlpQYnMyYmtXRmR4NGRMQm56eDRlcjFqRlBSRjVJQ1ltNXRQYU5aLzRCVmRhOEJRbkxUZ3FiYmdraXFLczArbFZ3NWFVbE5URzI5dDdyWHY2Ymc4blQ1NGtMUzJOQmcwYWFPK05IajJhSDM3NGdmRHc4UHMyRGxtV3VYemxLbkZ4Y1VpU1JFYjZvN2xFeThOc1JxZlQ0ZThYUUZCUUdVUlJ6QzluNDVpeldPejJlemRuSG1ZemVyMmVBUDhBZ29MS3VnM2JIZUxzbjM4T2EvNi9KcWZKS2VTU0RqaWs5MFJKRkVWWnI5Y3Bla0NKajQrLytDajBza21TZE52eWR2bmRHQmN1WEtCTGx5NnNXcldLV3JWcWNmTGtTZWJObThmdzRjUEpqUGNManNqSXlOdW1VN2RZckp3NGNRS2RYbzlQb2NKdStiM1VGT0lUNG9uNUxacGFOV3RoTkJweS9lMSsvZlUzUkowT2I1OTdQMmVwcVNuRXhzVVJIUk5OdmJwMTg5MzN1cnVmTVZjY09uZ2dsc3lDZ1ZZNGNEQjdPRUpSQlFVRldaWVJCRUh3Qkl6L1orKzc0NXVvLy8rZmQ1ZGNkdmVtcFlXMkRGR2dTQUUvRkJGL2JCemdGMFVGUkN4WWtDRWdJaFFVRkdRclFnc2lVNUNsSUdKWkFySmt5aXBZaG15UTBxYnBidE9SY1hlL1AyNDBTZE5Tb0dYbTlYaEVhZFpkM25mM3ZOZDhQbG1XMVFOUXVKYnc3bXpxMUtsWXZIZ3gwdExTRUJ3Y2pMaTRPSXdlUGJwU2I2RTY3V0dKL3o3cXhvc1RleUVzdEx5WGRPMzZEZVRtNWo0VXdXUWZiMitFT3BIaGMzbHNsZCsvUTJvRjlBRXZZMkIwQ0VWTEFKZ0ZvV1NHSkVsT0pwTnhKTXFTY1JkYzYzZjNGaDhmait2WHI4TmtNdUhxMWFzWU0yYk1Bd00xQU1qT3luWU5UenN4cmM0TldWbk8rUjF5Y25JZXlwcHBkVzdJeW5iTkJOOURxdVVpN0ZzOGJGczk3SXNISW9PdTZKMnpMSHZldFlTUGwzSGN2UTlQUCttbTBXakJza3lGS1ltSHNXWWFqUmFNbFhFZG5MczBpOFZ5RmVYNzF4ejcySGgyRHdIY1pBUkJjQnpIY1ZhcjlYeEZveE11ZXpTTklJQ1NFaGVYVzBWV1VnSFAzY01zcnR6cjhTckl6OGVONjFkUlZHU3NGRGpENm9URHpkMzlvZjIrbXRoUG83SHdwaE5BSytleEVVU1o3b0ZNZktHa3BPU2NDOWdxODQ1NDJtYUR3UUFydzhCWVdEMjB6VnF0RGpLNURINit2Z2dNREt6Mi9kNjFjd2VXTDFzS2d5RURRVUZCV0xscUxTNWZ2b1RZL3Yyazk0eU5uNEN1WGJ1NUR2SWpiTmV2WFVGeGNlWDBQa1ZGUnR5NGZoV05telo3b3Ziejl1MjAydzZBeGdCZ2hhSkJ1WWNJYkFEQVhicDA2VngwZExUckRLb0ExSktUa3dHQ2hFYXI0Mm1iQTZydis0dUtqRWpYWnlBOVBSM05tbFhmU1ptV2xvWVowNmZpeThsZkl6cTZCUW9LZUdxY2lJaEk3TnE5RHdBd01QYjlHbHUzWlV1WDRQWHVQZXpZVE1UOW1qdm5HNlNrL0FPYXB0RytReWNNL21pSU5IeWRtcHFLaExsemtISTJCUXFGQWgwN2RzS0hjWU5SazAza2Q5cm1pekV2UUM2WGd5QkloSVdGb1gvc0FMUnVIZlBBenNFN2dZWHR1ZlF3clNiMmMvKyt2UmtDYURFaXFObDdiYnlYQmx1VktoSGxXclpzbVFYZ3Nndkd5cHRlcndjSUVuNytnVFdTbTlGb3RQRHpEd1JBSUQwOXZkcSs5K0svRitEajQ0UFdyV05BMDdURUUwY1FCQlFLQlJRS0JXcFM3K0xINVV1UmsxTStnVDlwNGdUVUNnN0diNzl2d2FMRnkzRDB5R0VrSlcwQ3dQZmtqUjB6R3ZYcU44Q20zN2NnSVdFQjl1L2JpOTgyL2xwaisxblZiU1l1V0lqTlc3ZWpmK3dBeko0NUhSdC8zZUM2T0dyZXFiZ3ljOGEwa3NyQ1VJSVFRbEhZaDZJUTNzQ3lMSHVLSk1sSTEzTGFtOEdRQ1kxV1YrUGIwZWpjWURBWTdqc2tQWDA2R1pPK21BQ3oyWXppNG1KMGY0MFBNM3U4MFJQOTN1OWZwZTg0ZXVRd0VoUG1RYTlQUjJob0dFWjk4aWthUGZ1czdWMFV5NVl0UWFiQkFQK0FBTVRGRFVhckYvNEhBQmcyOUNQY0VoaFRSMzQ4SERJWmhlRGdFQ1F1V0FpV1pkRzJiVHQwZStVVktCUUsrUG43bzNsME5DNWR2QWlBcjFoNmVubWhkNTgrb0drYXdTRWhhQjNUQnYvK1czTkYrN3ZacGtxbFF1dldNWkRIVDhERUx5YWdVK2N1angwekM4TXdPSHIwQ0xZay9ZNGhRNGNqT0NRRUFEOGtQL2U3YjVIeXp4bVFKSVhZZ1I4aUpvWW5RczNNek1TMHFWT1FuWjBGbmM0Tll6NGJpOXExUXl2ZERrRVFpSXFLZ28rUEQxaVd4Zm56NTVHV2xsYmwvVnp4NDNMOHNYM2JPV2RoS0FDVzR6aTJMTDlHY0NBSXZrRzlvRUFxSGdBQVo3RllraFVLUlM4WGxObWJsYkUra0NxYVJxT0ZzU0R2dnIrbmFkTW9iRXJhaWgxL2JNZktGVDlpOWRxZjcrcnpWNjljd2VjVDRqSHBxeWxvM2p3YWUvZnN4cWlSdy9IVHFyWHc4L2ZIelpzM01HWHlsNWc3Yno0YU5HeUlUYjl0eFBqeDQ3QjV5M2FvMVdva0pDNlF3cmM1YytjaE1yS01PSVlrU2ZUdTA3Y3NKM1A5R2c0Zk9vU1BodkMwVVQ0K1B0TG5SVy9xZEhJeVh1L2VvOGJXL1Y2MkdkMmlKY3dXQ3k1ZHZJaW9aczBleWZPV1pWbXA5Y2oyM3g4UEg0cGF0V3Jod29YellHd3F4OXUzYlVWcGFTbFcvTFFHT1RrNUdQUmhMQm8zYmdJM056ZUpFZmVWVjEvRGlSUEhNV1BhVk16Ly9vZEt0MStuVGgxUUZJV2RPM2RDb1ZEZzVaZGZSbVptSml3V2k5Tjl0UDA3SmVVZjdOKzNGN05tZjN2bGhWYlJqbUdvYlk0TklvQVJBamhydFZxKzNVTk13aFVVRkp4eXdWaDVxNjVDUVpXMlpUUSs5Tis3WlVzUzJyN1VEcTFieDBDaFVLQnpsNjVvMExBaGRncDg5OTdlUGxpMmZDV2VhZFFJSkVuaTFkZGVoOFZzeHExYi8xVjVHK2ZPbmtYSDl1M1FyMjl2TkdqWUVDKzJmY25wK3haK1B4OHF0UnBkdTczeXdINS9WYlpKRUFTOFBMMWdMREkra3VmczhlUEhNSDdjWjdCWUxNakp5Y0hBMlA3SXllRUY2YjZkTXhmajRpZVV1MW1mT1hNYWJkcThLTnlBQ01qbE5DNWR1aWk5OXVLTFBLVzlMU1B1blc0WW9vZkdjZnhFZ0tlbnA5MTdsaTVaSkZHRHA2VDhnNCtIOHplNEs1Y3ZvV2xVRkc3eHJyK3R0OFk0Q1VmQmNad0VjSEk1YmRlZ3k3MzExbHVud0hmMnVxd1NPM1BtTkRwMWVCbDVlYm1TaDlPdjc3dFBWRTR4TU5DK0s3OTI3VERvOVh6K1Q2dlY0dVRKRTRqN01CYTkzK21GOTkvckk5MXRxMnFObm4wV08vL2NpNS9YYjBSNmVycWRFSWhvSzFmOGlMLy9Qb3FwVTZkWDJ5amNuYXlxMitRNERqbTVPZEErb2oyRXpadEh3OHZiRzE5TytnS2ZqUG9ZUGQ3NFA0bEI1azZNdUdmUHB1Q3pNYU5CSzJqazUrZExyNG1NdUlrSmN5VkczTXFNcG1rd0RBTnZiMi9FeE1TQVpWazd3a2tBZU9mZFB0aTdkdzhTNW4ySHlWOU93dEJodkRCTjNmQUluRHh4M0RoMHlFY1pEaUdvSGJBSllGWk8xSVVVa3NjY0FIYi8vdjBzeDNGSFhkQjFaeXNwS2NHYTFhdWZ5Ti9tNys4UHZVTVI0L2J0VklrYi84QmYrN0Y2MVUvNC9QTkpXTDMyNXdwRFhZSWd5b0dkcWJRVW0zN2JDRk1wVDlvY0dCaUk5dTA3NE15WjAzYnYyN0QrRit6YXVRTnp2a3Q0WUgxWmQ3UE40OGVQZ1piTFVhOSsvWWR5ZkRwMjdDZzlIRm1jeGJXUGl4dU1VeWRQUUVFcnF1enhidDZjaE9YTGxtTGE5RmtJZGNpaFZjU0llNmR3dEdIRGhqaDA2SkJVbGJjMXJWYUxRWU0rd3ZwZmZrYTdsMTlHL2ZyOFdGbVRKazNSdmtPbmt3WkRSbVdneHBiTmlZckJLSy96UU1LZU41eTFXcTB1WUt2aUFkdTdaN2ZrM3R2YXZyMTc4T0hBRDlDdjc3dVlPV09hbEZOSVMwdkRvQThIb1BjN3ZUQnI1blFwcWY5UThvWldxMFNxeWJFc3JGYXJCRUxkWG5rVisvZnZ4YkZqZjhOcXRXTFBudDA0ZHpZRkhUdDFBc0FMakJBRVFGSVU4dlB6cEZDQ1krM0pUQU9EZ25EMHlCRllMQlprR2d6OFhWeWh3RThyVjJEZHVqV3dXQ3pJeTh2RmdRTi9vWEhqeG1XaDhPWWtiUHB0STc2YmwvakFlT3FxdWsyVHlZUy9qeDdCOUdsZkkyN1FSdytsY0pDUmtZR2RPM2RLRDJkTU1rYWpFWjkrT2dwOSt2WkRRRUFBWmt5ZldpbTdzeGhpZW5oNFlOYnNiK0hsNVFXVHlRUjNBZUJGUnR4aHcwZEFMcGRMakxpVm1kbHNoc2xrd3NHREIyRXltVUJSVkRsdGo2dFhyMkw2dEsveDFlU3ZjZlRJWVd6ZHVrVjY3ZFZYWHp2ckpBeGxiSE5zb21OR0VJU1VxM056ZDRkTUtJOXlvbHRYV0ZoNHpFVjZlR2RUcXpYbzJLa0xWcTlhaVM1ZHlnRHErdlZyMkxCaFBSSVNGa0NoVkdMbWpHbll0blVMWHUvZUEzUG5mSVAySFRxaTU1dHY0ZGpmUjNIbzRJR0hzdStPRGJvenBrL0ZqT2xUMGFGakozeit4U1JFUnRiRHhDOG40L3NGaWRDbnA2TjJhQ2htenY1Vzh0aTZkTzJHczJkVEVOdi9QVkNVREs5Mzc0SEl5SHJJeWJVSCtWR2pSbVAyckpsWXZtd0phdGV1alNYTFZvQ21hY3lZT1J1SkNYUHg4N3Exa012bGFQdFNPL1I3bjZkZlp4Z0dzMmJ5WWVBN3ZleTU5MWV1V29PQWdPcHZZcTdxTm9jTitRZ0V3Uk1zZmpKNnpBUHRZN3RidTNyMUN0cTJiWWQzZS9lQjFXckYzTy9tSUNjbnAxeFBvYTAxYlJxRmMrZk9naVJKNU9YbDR1clZxNmduRkg0cVlzU3R6REl6TSszQ1h3OFBqM0xDTFNkUEhNZlljZVB4ZlBQbWVLNXhFeXhidWhoZHUzWURRUkM0ZHYzYXRZcEFEUTVUQnlSSlFTYWpZRFlERkVtVlRSNklIdHRISDMxMGROMjZkZmtBM0Yzd1ZibTk4WDg5MGE5dmI0azFGQUQrL3Zzb1VtLzloMEZ4QTZXN2xsWm9GVWxKK1FjVEJVV2c4SWlhNzZycDFMa0xPblh1VXU3NXlNaDYrT3RnNVRxbXJWdkhWSGpoS2hRS1RQaDhvdDF6QXorTUsvZStGaTFiNFpjTkc4czlIeEVaaWUvbUpUcjlib3Fpc1AvQTRRZDZIS3V5elR1dDEvMmFUbGU5N1VSTm1qUkZreVk4NWJaTUpzTW5Ea3k1enF4TDEyNjRkT2tTK3ZmanE5YkRQaDRoaGVRVk1lSldaamR1M0lDSGh3ZmF0MjhQQURoOStuUzVnc05idmQ2Vy91M3Q3WTFQeDR5VlVuNXhBMk5UbllJYVFiRGdPSllUakNSSmppUUpqaUJJYUxWYUxqYzNoL2ZZYkhPaXYvenlpM1hObWpVSFNKSjh4UVZkRlJ0QkVGQ3BWSGlqWjArc1dsVW1qbUV4VzlEMnBYYVM1Smxqd3JrbUcySmQ5dmdhUlZFb0tqSSswT0Y4eDl4b1pRRG80K05UWllVczIvTTlPVG41bnZiTllySDhyZGZyYmNOUXF3aHVCQTl1bkRSbFFKSWdDQklrU1lCV0tPRHU3c0VYRHh4bXJsaUx4WExRZGFyZEdkZ0FvRWYzTjNBNzlaYjBmSFNMRnRpemU3ZEVEYjU3OTU5SVNmbEhjdWUzYjl2S2g0TkNHZjErVGFWU3V3N0dYYTdOdzF5emlyYnQ1K2VIWW1OaHBhbVBxcVpJSG5hS3BqcmVsNXViKzA4bFlhaERLQ3FNVXBFa1NJSUVTWkpTVlJSQ0lvNEZ3R1ZrWkxpQXJZcW1VQ3JScDI5WnZxcEJnNFlZTnZ4ampCMHpHbS8zNm9rL2QrNUFjSEF3QUdENGlGSFl1ZU1QOUg2bkY3WnQyd3F5R21ZZnhUdTl5K3l0eUZoWTRXd3ArWkRXck1oWUNLcUNGcExBd0VCd0hJdk1qSFNuKzFhbmJzUWR3VUN0MXFCTzNZaUh1dTdWdForblRwNjQ2Z1RVeEVlWm1BdEI4SVVza2lnRE5aSUVvVktwQ0t2VlNyQXNTM0ljUjNFY0p3ZWdZRmwySDRCblhaY0ljUExVS2ZnSDNML3U1NFVMNTFHclZqRGMzTnl3Wjg5dWJOKzJGYk5tZjJ2M25nejliVHgvRjUzc04yN2NSSGFPaTBIWDBUTDBhZkR4OFVabzdmSnN0UStMZFpobjlmVkdtQk1HWGRFTUJnUDBlajJzVmlzS0gyQmorS05rSE1lZGI5ZXUzU1R3SWkyMjRpMUZBSW9KZ2hBMERnaUdJQWlXSkVtT29palFOTTNSTkEyRlFnRVpINTlLZVI4cEhMVmFyWHRrTXBrTDJBRElxaW4vVVZwU2lqR2pSL0hLNzFvdFBoczdydHdkWFM2WDM5VjNob2JXUm1hbUFSbjZOR2gxYmk3TkEyTWhqTVpDTUZhclUxQURnTERRVUJnTUQyN054SDFpR2FaU1VCTkRVajgvdjZmNkdCWVdGdjROSjdrMUFJd1lWWXF0SGhSRlFTNlhnNlpwS0pWS0tKVktxRlFxRUZxdGxyQllMQVRETUFUTHNoVEhjUlFBT2lzcjYyVXZMNitOTGxnRDB0UFRrYTdQRUJnNGFzNE1HZWtJRFBDLzZ5RjRqdU53L2NaTjVPUmtnN0d5S0MxOU9za25WU28xU0lxQ2o3Y1BRa05EN2xpb3VYbnpQMlJtWllHeE1qVzJaaXFWR3BSTWRrZFB6V1ZsZHVMRWlVK2pvNk92QWloR21jYUJrU0NJSXNHTE13djZCZ3hGVVp4Y0x1Y1VDZ1dVU2lXblZDcWhWcXRCdUxtNUVXYXpXUVEyMjNCVXliSnNNb0JhcnFVR1RwMUtCa0VRMEdoMVVGZnpIYjY0eUFoallRRUFybHI1MkZ6bXNzY3dERTBqU1hLa1RSaHFDMndsQUVvSmdyRFJFS1U0bXFZbFlGT3BWRkNyMVh3b1NwSWt4ekNNYlNqS0FXQVlodGxCVWRRSHJ1VUdtaldMUW5wNk9neUdUQlFXNUZYYnNMcE9wNE5NSmtOUVVDQUNBZ0pjQysyeXA5cEtTa3IrZ24wMTFDNFVkY0Fvb1llTnh6Q1NKRUZSRkNpS0tzdXhpVzBmd2xBcEM0QXRMQ3o4MDhQRHd3VnNnZ1VHQnRZSWZiZkxYT1l5M3E1Y3VYTEdBZFNzQUt3RVFkaTFlaEFPZld3aW9Jbi9Kc1h5cURoblpkUFR4bnA1ZWYwSjRMWnJ1VjNtTXBjOWlEQzBTWk1tMXdYd3NqbzhHRnRRQXdCYjdMSUZONHFpSUdOWmx1TTRyb3h0MHNaakE4QmV1M1p0TzBWUkExekw3aktYdWF5R3c5QjlqcDZhQTZpSnpMbWNHRjBLUEc4Y3d6QmdHQVpXcXhVV2l3VXloVUloa3JSSjAvOEMyTEVBR0hkMzkrM2UzdDR1WUhPWnkxeFdvM2I4K1BIa1NzSlFpZEZEOU5Ca01obmtjam1Fd2dIRXdvRldxd1ZwRzV2YWNMTko0YWl2cis5QnVGVGlYZVl5bDlWc0dIcXhSWXNXL3ptQW1nVVZNSG80NXRha0VGUW00eDgyRlFXQ0pFbU9aVmxDaUdGRnNRVEdiRFp2cG1tNm9XdjVYZWF5R3IyNG9kZnJrWkZoQU1Nd01CcWZuc21Ed3NMQ2ZiQnZ5cFVlSE1lSmpia2l3U1JZbHVVc0ZndHNkQS9BY1p3VWpzcHNQVGJCYStPSU1vVVhGZ0NUbHBhMkxTd3NiSXpyMUhPWnkyb08xSktUazhHQmtLWWgvSitpMzc5enh4OW5uSGhyVnZEVEJuYkVraVJKY3BSTUJscE9RNkdnb1ZBcW9WS3FvRktyb0ZGcm9OUHB5a0pSVzNCekRFZnIxcTE3bm1YWm5VL2FZaVltSmtLcFZEN1FiVnF0Vm93WU1RSitmbjV3ZDNkSFhGd2Npb3VMWFZmMlUyNTZ2UjRjQ1BnSEJEMTFZM0ZXcTNWdjdBZnZaOXNBbThYQmF5c2Zob29ENzdaaEtDV0RUQzZIWEM0SEtaUEpSRkRqYkR3MnpvYnRnd1hBRkJjWEo3bE92L3UzY2VQR0lTa3BDZXZYcjBkU1VoSjI3OTZOWWNPR3VSYm1LVGVESVJOYW5kdFQrZHZUMDlNT09RbEJMYWk0ZjAxb3hpVTVpaFNBVGNibjErUXlHZVEwWFJhS09oWVJDSUt3YS8xSVNFallQRzdjdU04QWhMaE93M3V6b3FJaXpKOC9INnRXclVMYnRyeVUyYUpGaTlDeFkwZk1tREZEVW1wMzJkTm5ETVBjazZkMjRmdzVMRjcwQTc3OWJsNk43dCtGQytleGRjdG1OR25TRkIwNmRwS2UvKzIzWDdGcDQ2OEFRYUJ0MjNiNElKWnZvS2hNWVBuTW1kTkltUHNkckl3VllhRmhxZGV1WDcvZzRLMUpZYWlJUDQ0TnVTUkZnaVFkdkRXaFNrclRkSm5IWmh1S2l1R29qZGZHakI4L3ZzUmlzZno2dEoxd2E5ZXVSWk1tVGFCU3FWQzNibDNNbTJkL0F1M1pzd2ZObWpXRFNxVkNkSFEwWnMrZWJRZFFQWHYyUlBQbXpRRUF5Y25KS0NrcGtVQU5BTnEwNFpXMmp4dzU0cnE2bjJJckxDeTRwOC9WYjlBUUU3Lzhxa2IzYmNIOFJDeGRzaGpYcmw1RlVWR1I5UHgvLzkzRXhnMGI4UDBQUzdCMDJRcWNPWk9NNDhlUENaL2hCWlpYckZ5TjkvdC9nQm5UcGtxcG1HbGZUOGFFTHliaXh4V3I0T1BydDJQdm50MFdaOTRhUU5oWFJFVndJMGxRdHVOVEFxako1SExJUmRvaXNUd3F2SW1qS0lwZ0dJWWpTUklNdzBoNU5nRFdXN2R1YmFwYnQrNklwK1ZrKyttbm54QWJHNHR2dnZrR25UdDN4bDkvL1lYaHc0ZERyVlpqd0lBQnVIcjFLcnAxNjRhaFE0ZGk3ZHExMHV1MnlrVTllL1pFYmk2dlAzcjc5bTNRTkcwbnFDR1h5K0h0N1kzVTFGVFgxZTJ5Y3BhZG5ZMnBYMDlHVnFZQkJFbGk4T0FoYU5ucUJhU21wbUxVaU9Hd1dNenc4UERFOGhWbDlQVGpQdnNVYVduOHdGQmVYaDdVR2czV3Jsc1BnRmVGU3BnN0Iva0YrZkR5OU1LWXNlTWtrUjRBV1AvTHo5aTRjWVAwZmdBWU1QQkQwRFNOMmJObTJPM2JQMmZPNFBubXphRldxMkcxV3VIcDRZa3pwMDhqT3JvRnpwdzVqWkVqUHdGZ0w3QnN5TWlBVXFWQ1dGZ2QwYk03VllHM1ppVUlNYjlHY0FEQkVRQkhrQ1JIa1NSSWt1S2tTRk1NUXdWdlRhRlFsZ0diVGE3Tk5oeTFteDJOaUlpNFlMVmFONUlrK2NiVGNGSjk4ODAzK09DREQ2UWNXR1JrSkc3Y3VJSEpreWRqd0lBQldMaHdJUm8wYUlCWnMyYnhkOC82OVpHU2tvSTFhOVpJMy9IMjIyVmlGY1hGeFU2TEZRcUZvcHdzbWN0Y0JnQS9yMXVEeG8wYm85LzdIK0RhdFd0WU1EOEJMVnU5Z09EZ1lQeXlZU011WDc2RXFWTW0yMzFtMmd6K2ZNelB6MFBjd0ZoSmY4TnNObVBxbEs4d1plcDBCQVlHWXNjZjIvSDlndm1ZOVBqTzdyUUFBQ0FBU1VSQlZHWFo1NXMwYlZxT2VmaE9Bc3VabVptWTl2VmtNQ3dEblpBbnRCVlkvdlBQblpMQWNrRkJBUlFLQmN4bU0rWis5KzJXWlVzWFp6bDRhcmJnSm9TaDRQaUhXRFN3U1ovSnlydzFXbWpXVmFtVUlPVnlPUnk4TmpnT3hndTlJZ3dBSmk4djc2a0pSOCtmUDQ4WFhuakI3cm1ZbUJqODk5OS9NQnFOT0gzNmREbXgydGF0VzFmNGZTcVZxcHhLRDhCclZUNE1mVXFYUGZvVzNhSWxkdis1Q3l0K1hBNVRhV21WQlZWWWxzV1hreWFpMnl1dm9VV0xsZ0I0YWNqVTFGdUlIenNHL2Z2MXhabzFxMkRJeUxEN1hMMTY5ZkhHLy9XOGkydmtIQ2FNSDR1QmNZUFFydDMvc3dmWUNnU1c4L1B6TVdya3gvQnc5empreEZ1ekxScEliQjYydVRXS3NnbERaUlJrTXJtTnQ2YUFTcVdHVEFRMnNXdFhERWNwaXVJRUhVSGIyVkhHeDhkbkQ4TXdod2lDYVAya24xUXFsY3JwQ1NQK1h5YVRsVk02cjB5VU5qZzRHS1dscGNqTHk0T0hod2NBd0dLeElEczdHN1ZxdVdqdlhPWUUyS0piSUhIK1FodzdmZ3dyVnl3SFRkUDRjdkxYZC96YzBpV0xvRlFxMGFmdmU5SnpGb3NGQVFFQmRtSHIvWmk3dXp0S1Mwc3grNXZ2NE9ibWhqTm5Uc05kT0s5RmdlV09uVHBMM3FKV3E0V2JteHNLOHZNeGVjcTBveSsvMU9aNkpkNmEyTHZHbG5WcENHRW9qMUdTUXlhWHlVREw1YUFWQ2lpVktxZzFhcEEwVFVNdTlINVVFSkxhRlJFQVdJdUtpbjUrR2s2cWhnMGJsa3ZxSHo1OEdJR0JnWEJ6YzhOenp6Mkg0OGVQMjczdStMZXRSVVZGUWFWUzRjQ0JNcUhrZ3djUGdpUkp0R3JWeW5VVnU2eWNUWnM2QmNlT0gwUDc5aDB3TG40Q2poNDlVdTVtNm1nSER4N0EvbjM3RUQvK2N6c1c0WWlJQ0JRVUZPQ3YvZnVrZk52bXBOL3RQbnY1OGlYODlsdlZnckxuR2plRzJXeUdRcUVBd3pBNGN2Z1FtalRsdFV3ckVsZ09DQXlFdTRjSDhuSnpkMWZrclFHRUhac0hRTmg0YkdWNU5jck9XMU5BcVZCQ3JWWkJxOUZDSmdKYlJVVUVtN1lQYVJLaGZmdjJ2eDQ1Y3VSRGdpQWVlMDBFbG1YeHh4OS9sSHUrYmR1MmlJK1BSOCtlUGZIc3M4K2ljK2ZPT0hqd0lPYk1tWU9KRTNteDRLRkRoMkxldkhrWU8zWXNQdmpnQXh3OWVoVGZmLys5WFZpNWJ0MDY1T2JtWXZEZ3dkQm9OSWlOamNYUW9VT2gwK2xBMHpUaTR1TFF2MzkvU1RIYlpTNnp0VDU5M3NQczJUT3diczFxc0N5TFVaOThDcElrN1lvSCtmbjVlS3ZuRzJqMi9QTVlPMjQ4RXVkOWg5TFNVZ3daL0tIMFBZa0xmb0JPcDhPMEdiUHczYmZmNEllRjMwT3RWbU9VZzQ1bzhxbFQyTGh4QTNyMCtMODc3bHRvYUJoNjlQZy9EUHB3QURod2FOT21yU1FlWHBIQXNrd213N2o0Q2VkZmU2WHIyUXE4TlF0QmlLQW1GQTBJOE40YVJZSWlLVTRtVlVMbFV0OGFyYUNoVkNtaEZpWVBpSjQ5ZXlJL1B4K0ZoWVVvS2lwQ2NYRXhTa3BLWURLWkNKUEpCQnM5QkpMak9Ca0FPUUJsVVZIUkFKVks5ZlhqZk5Ja0ppWlcyQng3L2ZwMWhJV0ZZZG15WlpneFl3WnUzTGlCc0xBd0RCOCtIRU9HREpIZXQyUEhEb3dhTlFwWHJseEJWRlFVV3Jac2lRMGJOa2k2b2oxNzlzU05HemR3NHNRSktaODJZc1FJckYyN0ZpUkpvbWZQbnBnM2I5NERuNEJ3MmFObCsvZnZSM2hrZzZmaXR4b01obStmajJwOEJEejl0NmhyWUFSUEJWNUNFRVFwRDNDRWxWZWhvamlaVENZcVVIRzJUQjRhclJZNm5RNmVucDd3OGZGRlVGQVF3c0xDUVBUdTNSdDVlWGtvS0NoQVVWRVJpb3FLVUZKU2d0TFNVcGhNSnNKc05zTnF0WklzeXhJMmVnajA0c1dMdldKalkvOEFFUDYwbm93cEtTa29MaTVHeTVZdHBlY21UWnFFYmR1MjRkaXhZdy9VNjd4eDh6L2s1T1NBWVJpVWxqeWRJMXBLbFFvVVJjSEwweHRoWWJVbDhsUm54bkdjc0diWnNGcHJiczJVS2hWa01obTh2YndSRmhiNjFBTWJ4M0hYUGhzemV1TGFOYXVMQUpTZ1ROZkFDRjVhcndTQVdRQTJScERXWTRWd2sxTW9GZnhjcUVvRnRVWURuVllMTjNkM2VIbDV3OS9mRDhIQklRaVBpSUJNcFZLaHBLUUVORTNEYkRaRExwZkRZckU0VmtodFExSUdBRE53NE1DQzNyMTcvNlJVS2ljOWpnczhiTmd3SkNZbTNzOEJ3cFVyVjlDM2IxK3NYcjBhVFpzMlJVcEtDdWJQbjQvNGVON3R2cE5La3FQcDlYcjQrOS9kNkxQSlpNYVpNMmRBeVdUUXVibTc1UGVLak1qTnkwWFd5VXcwYmRJVU5DMTNldXhPbkRnSmtxS2cxZFg4bWhVVkdaR2RrNFBNckV4RUM4M2FGZG50Sjd5Zk1UYzNkL1BhTmF0Tk5pR29XUVF5QUJZT1lBZ0hiUVB4UHh6SGdXTTVzQ3dMbG1WNUpnK0J6Y05xdGNCaXNjQmlOc05zTXZQQXBsUXFVVkpTWXBkcms4bGtzRnF0b0NnS0RNT0E0emlKTnB6ak9BWUFzM256NXAvZmZQUE45d0RVZmR3V09DRWhBUWtKQ2ZmMUhUMTY5RUI4ZkR4R2pCaUJ0TFEwQkFjSDQ5TlBQOFhISDM4c1hVQTFiZW42ZEZBeW1Vc3dXVENOUmd1TlJvc01mUnJTMHRNUUZscmVTN3ArNHlaSWlucGdhMmE3VHpkdi9vZlFTbVQ0YWdVSFA4bmUydldsUzVlY2RBQTFtOXhhV1l0SEdhRWtCYmxNMUEzbHE1Nml0NmJWYXVIdTdnNVBUeS80K2ZraE9EZ1lkY1BEMGFqUnN5QTFHZzJVU2lVVUNnVm9tb1p0TVVFb0lvQ2lLTTZtbjAxcy9iRDI2dFVydDZTa1pPWFRmQ0hGeDhmait2WHJNSmxNdUhyMUtzYU1HVk5wQ0ZUZGxwMlYvZFFPVDFkbVdwMGJzckt5bmI2V2s1UHpVTlpNcTNORFZuYldVM3RNc3JPemt4WXZXbGdLKzRLQkNHNFNrNGR0aXdjZmlwS2daQlJIVVE3TnVNS1VnVnF0a2tETzI4c2JNcGtNcEZhcmhWcXRobEtweEwyMGZxeGJ0MjR0eDNFdWh0MkhjZ2U4OStIcHA4RnpZMW5HNldzUGE4MDBHaTBZSy9PVW5xdmN4VzltenpyaEJOVEVmRm81d1JaZTZaMTBtQWZsUjZma0FxaXBWRXBvTkJxNHVibkJ3OU1Udm42K0FBQ1pUcWVUS3FKQ3djQXUxeWFUeVRpcjFVb3dET08wWVRjMk5qYi9yYmZlV3FIUmFLWS80UWNHZXIwZUJvTUJWb2FCc2JCNjJFMjFXaDFrY2huOGZIM3ZXdHFQSUlDU0VoZVhXMFZXVWdIUDNjTXNydHpyOFNLU00wSE1Ud2F1NU4zYmhpTTh3QTJKQWhmbFd5Mi9veUEvSHpldVgwVlJrYkZTSUErckV3NDNkM2RrWkdRa3JmcHBSWVc1TlRocHlDVkprdVA3MW1TY1RFYnhvQ2FUZzZiTGRBNTRqUU1kNzYxNSswQ2g0THNMWkI0ZUhpZ29LSURSYUpTcW9XYXpXUUkzcTlVS21Vd0dobUhFcEozVTB5YmsycXh2dmZYV21pMWJ0cnhCRUVTTEp4WFVrcE9UQVlLRVJxdmoyVTJyVWR1NHFNaUlkSDBHMHRQVHExMEpmdGZPSFZpK2JDa01oZ3dFQlFWaDVhcTF1SHo1RW1MNzk1UGVNelorQXJwMjdlWkN3a2ZaRXBPQnEzbjMvdmtyZVNEbUo0TmIwckZhZHVmNnRTc29MaTY2NDNsOTQvcFZQTnU0NllsM2VyMlo3QVRVbkhwcmtKaHliWWZjNVpETDVKRFRmRE91UXFHQVVxV0NSc05QTTNoNjhYazIwV1NlbnA3SXk4dERZV0doYlE4YmFKcm1xd3dPWHBzTjY0ZWsxcng5KzNaelFVSEJqKzd1N2s4a3NPbjFlb0FnNGVkZk0yTEpZbkxab0U5RGVucDZ0WWt5cDZXbFljYjBxZmh5OHRlSWptNkJnZ0tlR2ljaUloSzdkdThEQUF5TWZiL0cxbTNaMGlWNHZYc1BPellUY2IvbXp2a0dLU24vZ0tacHRPL1FDWU0vR2lJTlg2ZW1waUpoN2h5a25FMkJRcUZBeDQ2ZDhHSGM0SExEMmRWcGQ5cm1pekV2UUM2WGd5QkloSVdGb1gvc0FMUnVIZlBBemtIaWZrRE5CdHlxeSs0RWFyYmc5dC9ObTF1dlhMbHN2WU8zeHBUUHJWR1FVUlFualU3SjVUd2RPRTJYZVdzNkxkdzlQT0R0N1dNM0FrbjYrUGpBdzhNRE9wME9hclVhS3BVS0NvVkN5clU1eTdjNXk3VjVlSGhzWmxsMjI1TUliQVpESmpSYVhjM25ZSFJ1TUJnTTFmWjlGLys5QUI4Zkg3UnVIUU9hcGlXZU9JSWdvRkR3ZDcyN2JVbTVHL3R4K1ZMazVKUlA0RSthT0FHMWdvUHgyKzlic0dqeE1odzljaGhKU1pzQThEMTVZOGVNUnIzNkRiRHA5eTFJU0ZpQS9mdjI0cmVOTmNlOVVOVnRKaTVZaU0xYnQ2Ti83QURNbmprZEczL2Q0UElrNzJCV3EzVlhtNWdYTGpqeDFDcjAxa2c3YjYwTTFPVENQS2hDcVlSS3hjdnN1YnU1dzh2VEMvNDIzaG9Ba0g1K2Z2RHk4b0tibXh1MFdpM0U5Zyt4U21vRGJKd05oYmpkaUJYNGFYeUx3V0Q0OFlrOE9JejFnU1NiTlJvdHJGYnJmWC9QNmRQSjZQNWFOOHlhT1IxNnZSN2RYK3VHN3E5MXc0b2ZsMWY1TzQ0ZU9Zdys3NzZOOWkrM1JXei9mamgzOXF6ZDYvdjM3VVcvOTNxamErY082UDkrWHh3OWNsaDZiZGpRajlEOU5UNjBIZm54Y0hSL3JSdUdmalJJQXBHMmJkdmh2WDd2UTZGUXdNL2ZIODJqbzNIcDRrVUFmTVhTMDhzTHZmdjBBVTNUQ0E0SlFldVlOdmozMzVxclQ5M05ObFVxRlZxM2pzRzQrQWxZdkdpaEhmSGlrMkJGUlVWSStuMFR4bzRaWFQwaDYvWHJPMkUvRTJvSGJCekhXVG1PWXppT1kxbVc1UWhBOHRaS1NvcTVUSU1CcWJkdW9hQ2dvSXk5UTZtQ1JxT0dRcUhBZ3ZtSk9IandMNmpVYW50Z0N3b0tnbytQRHp3OVBhSFQ2ZURZL2xGSmxiU2MxeFlZR0hqWVlyRXNlZEtBcmJvS0JWWGFsdEY0MzkvUnRHa1VOaVZ0eGNjalJxRldyV0JzU3RxS1RVbGIwZS85L2xYNi9OVXJWL0Q1aEhnTUhqSVVXN2Z2eEp0djljS29rY01saXB1Yk4yOWd5dVF2OGRsbjhkaXliUWRlZmZWMWpCOC9UaEtsU1VoY2dFMUpXd0VBYytiT3c2YWtyVWhjc0pBLzRVZ1N2ZnYwaFllSHAzRGlYOFBoUTRmUXNpVlBBdURqNDRPRXhBVlFLbFVTRUo1T1RrYmp4azFxYk0zdlpadlJMVnJDYkxGSWdQdzRtZU1RdmZoM1ZsWVdCc2IyeDVVcmw2dmxSbEphV3JwbS9Qanh0eHhBemVUb3JmRmpVenllTUF3RGtxVEFzZ3dzRmdzL1NSQWVqc3lzVExBY0I2VkNDWlhRM25IczJGRW9sVXE0dWJtWDJ6YXBVcWtRRUJBQWIyOXZ1THU3dzdiOW96S3Z6VmxmRzBFUWxuUG56cTBFY052bGhEKyt0bVZMRXRxKzFBNnRXOGRBb1ZDZ2M1ZXVhTkN3SVhidTNBRUE4UGIyd2JMbEsvRk1vMFlnU1JLdnZ2WTZMR1l6YnQzNnI4cmJPSGYyTERxMmI0ZCtmWHVqUWNPR2VMSHRTMDdmdC9ENytWQ3AxZWphN1pVSDl2dXJzazJDSU9EbDZRVmprZkhST1hBRW9QMGdDbTZqL3dkQ0tZUHF0ZnB3RzljR2hKdkM3bTJqUjQzQTZlUlRBSGpHM084WHpBY0FlSGg0NEtmVmE5SHYvUStxWTI5dUh6dDI3SzhLUERYYjNqVVc0SE5yRkVWeEhNZHhGRVdCWlZsT29WQUl3KzBxZUh0NXdXZ3NoRW9vR09UbDVjRnNNdUhGRjErRVhGNSt1b1FFZ0tDZ0lQajYrc0xUMHhOdWJtN1FhRFJRcTlWU0hzWVpBMGhGdWJhb3FLaXJ4Y1hGUHp6cEYzL1h6aDFRV1Boa0N0cnE5WG9FQnRwMzVkZXVIUWE5UGgwQW9OVnFjZkxrQ2NSOUdJdmU3L1RDKysvMWNlb0pWR2FObm4wV08vL2NpNS9YYjBSNmVqcVdMUzN2Nks5YzhTUCsvdnNvcGs2ZERwbE05a0IrZTFXM3lYRWNjbkp6b0gyRWVnaVZIU05BcU9SZ2Mwcmd2ZlExcU45b2lOSS9yOEw5VTN2cXhDRkRoMlBxMTFPUW1EQVAyN2R0UmQvMytBcTVlRzFYaCtYbDVmMlNtSmlZNitDcG1aem4xaml1VE1vWWtNa29LSlJLbU0xbVVDU1BOY1hGeFNBSVFuQzZGRGg4NkJBR0RJaUR6czE1bzdVTTRLbC9Bd0lDa0pPVFUySHJoOFZpRVdheXJKekE5c0d4TEF1Q0lGaU80d2piWEZ1Yk5tMVdIajkrdkIxSmt1MWMvcy9qWi83Ky90Q25wOXZmZm0rbklpcUtiMFU1OE5kK3JGNzFFK1o4TncvQklieG8yWXN4THpqMWFoekJ6bFJhaXUzYnQ2RkxsNjVRS0pVSURBeEUrL1lkY1BEZ0FidjNiVmovQzNidDNJRzVDZlBoNXU3K1FINzMzV3p6K1BGam9PVnkxS3RmLzRFZkgwWHJFTGpIdnlqOWJmazNFN21mN0lTOG5qZEt0bDJHOVhvdWRNTmJJbmZrRHBpUHAwSDdnWDBMVVhoRUJEcDI2b3lWSzVaajVxeHY0T1oyNzFNWWNya2M3ZHJaWCtZN2R1dzRNSHIwNk9OVjhOWVlBVDlZcTlYS0NaRWdLSm1NVXlxVUlBa0NOMjVjbDRZSGVEWVBEVTZmVHNaTDdWNUd2UVlOOE8vRkN4VURHd0NFaElRZ0t5dkxhZXVIQ0d3aXVERU1JejJFR1ZJV0FDSDJ0U1VuSjVzTkJzT1NnSUNBcHhMWWZ0MnducS95Y1J6YXZmei84SDcvV0FCOG04TlhrNzVBWVdFaG1rWkY0ZERCQTFJdTZrR2JiWkdDWTFsWXJWWnB3cVRiSzY5aXlPQTRkT2pVQ2MyYVBZKy8vdHFQYzJkVDhOblljUUI0Z1JHQ0FFaUtRbjUrSHJadTJTSjhqLzFzYkdCUUVJNGVPWUs2ZGNPUmw1c0xYejgvMEFvRmZscTVBdm41ZVhpM2QxOFVGUmx4NE1CZmFOS2tMSisxWlhNU052MjJFWE1UNWo4d25ycXFidE5rTXVGMDhpbk1tREVOY1lNK2VpaVU3cVpEdDJEb3RycjhNYjJlQzdxSlArVFArY0Y2TXcrcVYrdkJjamtiY0RndU8zZjhnWDE3OTJESzE5UHd6ZXhaK0hyYWROU3JkMjhBYmJGWXNIT252WmI2dFd2WHRoWVVGRGhPRjRnZVd6bUdYSXFpUUZJVXdIRlMzNnhjTGtkQVlDQTBHZzEwV2gzKytlY00vUDBEUU5NS1hMMXlCWVVGaGJqNDd3WGs1R1NESkVuSTVYTDBldnVkOHNBbWhxUzV1Ym5JejgrSDBXaEVjWEV4VENhVEhialplbTBNdzNBY3gwRjRTTk1JQUN5QmdZRUhUQ2JUZkpxbWh6eE5vSlo4NmhTMmJFbkN3aCtXZ0tJb2ZESnFCRUpEdzlEdTVmK0h1WE8rUWZzT0hkSHp6YmR3N08rak9PVGdwVHdvYzJ6UW5URjlLbVpNbjRvT0hUdmg4eThtSVRLeUhpWitPUm5mTDBpRVBqMGR0VU5ETVhQMnQ1S2FVWmV1M1hEMmJBcGkrNzhIaXBMaDllNDlFQmxaRHptNU9YYmJHVFZxTkdiUG1vbmx5NWFnZHUzYVdMSnNCV2lheG95WnM1R1lNQmMvcjFzTHVWeU90aSsxay9JNkRNTmcxa3crREh5bmx6MzMvc3BWYXhBUVVQMjloRlhkNXJBaEg0RWdlSUxGVDBhUGVhQjliRld4a3UyWDRmYkovMEQ1cUpIVmV5TTBiejREOTg5aWtEL2pvTjM3VWxKUzhPMmN1ZkR6OTRlYnV6dE9uamgrejhCV2JoOUtTbjRjTjI3Y0RRRzh6STRGQTFRd1pRQ0FzMWdzMEdpMW5OeEd3MEF1cDVHV25nYVpUSVk2ZGVyQ3o4OFAwMmZPUm9QNkRlRGo2NHVGMzgrSFZxdXpBN1Z5d09idjc0L3M3R3prNWVWSndDYU9XWWtlbTQzWDVoaVMyazBqRUFSaDNyTm56L0pPblRyOWp5Q0lxS2NGMkk0ZE80b09IVHBKellLdnZQSXFqaDM3RysxZS9uOUlTZmtIRXdWRm9QQ0l5QnJmbDA2ZHU2QlQ1eTdsbm8rTXJJZS9EbGF1WTlxNmRVeUZGNjVDb2NDRXp5ZmFQVGZ3dzdoeTcydlJzaFYrMmJDeDNQTVJrWkg0YnA1enlpaUtvckQvd09FSGVzeXFzczA3cmRmOW1rNVhEWDJTREllQ21ZZWtQNDNMVHdQTFQ1ZDcyeWMyckxsTm0wYWhhZFBxdVR3NWpqdnp4eDkvT0JZTWJITnJaaW0zUmhDc1FQbk5XYTFXRGdDVVNpV24wK21rV2RDaW9tSmN1bmdSL3Y0QjZOQ3hFOC9rSVV3WStQaFdQaHBXTGp0YXExYXRjcmsyMFdOejhOcWtjSlJsV1Z2VmVJYmpPQktBdFV1WEx2cnM3T3dmdkx5OEZqNU5YcHR0ejZ2QVl5Y2xuR3V5SWRabGo2OVJGSVdpSXVNalFXamc3ZTE5VHltU3RMUzBqV3ZYcmpVNkFUV1RIYWp4bkdzc1FZQWpTWktuOXBielBXcmkySlNDcHVIdDVZWDY5ZXNMdEVTKzhQRHdnSStQajkxa3pxREJ6Z1BDY3Z3Njd1N3VjTmJiVmtIakxpZlNHMVhVdE92dDdiM2RZckVzZmxwTzBPYk5XMkRYenAwb0tTbUJ4V0xCdHExYjBFTG8wV3JhTkFyYnQvRW56T1ZMMWRQL3BGS3BYYWh3bDJ2ek1OZXNvbTM3K2ZtaDJGaHhsWjBMOTdoL2o2b2F2a00wdGRvK3QxaGFXcnA2NU1pUkYyMUNVSk9EdDJaWE1DQUlnaU9FWm44WnJ6akZ5ZVV5WVJhVWxtWkIrU0YzZ1NYWDJ4disvZ0dTZHVsZGVXd0FYMGdRdlRaYnFuQkhyODIyaUNCNmJTeGZCbU9FU2lsSkVBUjE2TkNoWlczYnRuMmVJSWhtVDlLRk0rQ0RmaUFFN2pWZlh6OGtKQzdBODgyYm8xUG5MaGowSVY4d2FQUGlTMmpYN21VQXdQQVJvL0RseE0veDY0YjFDSStJNEJPbVQ5Q2QvbEd5SW1OaGhhMEw1RU5hc3lKaklhZ0tXa2dDQXdPUm5wNk96SXgwcUFXaUJUc2JHZ1V1TWZtZVowYTVjQTlnYVBWbGhPclVqWkFHNFRtT083MW56NTY5VHZKcXR1MGRqa1VEZm5SS0hKdVN5eUNYQzU0YkxZNU5sUTI1ZTNsNndjL1hyOG95bFU1WFdTNlhJemc0Mks2SVlFdHBKSWFpanUwZlRnb0pWZ0NXZHUzYXBXWm1aaTcwOGZGWjlEaGVKRm9uK1k5dGYreXE4UDI5M242blhESVRBUEx5Y2pGejlyZHdjM1BEbmoyN1VWSlNVcVZ0M1Nsc3lNN0pjUUdiZ3htTmhmRHg5WEg2bW8rUE43S3pIL3lhR1kyRjVRZ0JiSzFaczJZd0dBelE2L1VvS3N5Mzc1UFVBaGhiRzBEdCs5aURiT0J5ZHZWZEYxb050Rm9OYnQ2OHVmSEhIMzhzcUNnRWhZT3lPNStWRVpUdk9BNGN5M0ljeTRKbEdUQ01sWDlZTGJCYXpMQ1lTMkV4bDhKVVdneFRhUkZ1WHI5eTc4QUdBQUVCQWNqTnpiWHoycHpsMm13OU5vZENndWkxV1FpQ0lIMTlmWGVXbHBiT1ZTZ1VIejl1RjRtc211N3dwU1dsR0RONkZLLzhydFZLN1JPMmQzUm5YZFNWV1dob2JXUm1HcENoVDROVzUrYlNQREFXd21nc0JHTzFJclMyY3hBSUN3MkZ3ZkRnMWt6Y0o1WmhFQlphT1RENStmblowZTg4NnBhZm43L2twWmRldWxTUnQwWVFoQWhzREVFUWpNamNJYXBPMFRRTmxVb2xlR2RsZE45ZVhsN3c5UzFUbldyUW9BRWFObXhZOVd1MnNoZHIxNjVkWVYrYm85ZkdzaXpoVUVnb1Z5VmR0V3JWMHY3OSt6Y2lTYkw5NDNTeCtQbjVJVjJmY2Q4WFFGU3pabGk0cU9KUjJxSWlJd0lEN2s3TWhTQUlORy9lSE5kdjNFUk9UamJ5Y25KUVd2cDBraytxVkdxUUZBVWZieCtFaG9aVSt0NFcwZEc0ZWZNL1pHWmwxZWlhcVZScVVESVp2TDI5N3docWo1dFpyZFo5RXlkT1BPQUFhcVVpc0FtZ1pwOVhFN1FNUkNWM3VWek95ZVZseEpHMkFPZmg0UUZ2YjI4RUJBU2dkdTI3V3p2aVRvSWp0Mjdkd3ZuejUzSHQyaldrcHFiQ1lEQWdKeWRIQWp4SExWSUI5QWlXWlFtV1pTbU80eWp3V3FRMHgzSEtHemR1dEFvTkRaMEw0TEZTSHpsMUtoa0VRVUNqMVVGZHpYZjQ0aUlqaklVRkFMaHFKNXAwbWN0cXlOSVBIVG8wT3lZbTVwWUFaQ1hnTlVLTFlLOFBhaXVseDloNmF3cUZncFAwUVRXODBMR0hod2U4dkd6RVdlcld4VFBQUElPUWtKQzdpN0x1OUlhUWtCQkpVTmt4MStiWStpSEtZbkc4MlU0a1dIbm5naUREd3NLT0Z4UVVKT3AwdXFtUDAxRnMxaXdLNmVucE1CZ3lVVmlRVnkwc0hBRGZ2eVNUeVJBVUZJaUFnQURYNWVLeXg4SnUzNzY5S2lZbUpsVUlNOFhRczlSSkNHb1Z2RFZwMEYwaWpSUkNVVnVhYjFHL1FBeEZhOVdxZGRlZ1ZpVmc0L000b1U1emJVNTYyc1JDZ21Odm16aHVaU0VJZ25KemMvdlpaRExWcFdsNndPTjBNQU1EQTZ1TjNkWmxMbnRjeldnMHJnNE9EajRGKzlZT3h4RFVZaE9Dc3M1QzBJcEFqVmQxOTBGUVVCQkNRMFB2YVIrcnBCT24wK2tRRWhKaVIyOWt5N2dyRHFrSy9XMTJ2VzJDMXliMXRva0xzV3ZYcmlVc3krNXhuU1l1YzlsamxWZmJ2M0Rod2oxd1hnR1ZQRFk0eklNSzVKR2NMYWpSQXNXM0dJN3FkS0lvQzU5WEN3a0p1ZWVKRE5uTm16ZXJqb0k4VlpIVDdubnhPZkYxNFNFbThGaWhBNThRd2UyVlYxNUpPM0Rnd1BjaElTR2hBTUpkcDR6TFhQWm9HOGR4MTA2Y09KSDA2YWVmRmpvSlFjdUJtaUNBYkNlblo0c2ZGZUVJTCtSQ2dtVlozQTArMlFIYjNiaDZ2cjYrVGljUmJBU1dZVU1mVHBoTUpoQUVBVUc2VDJvQklmaGZSTFpwMCtaRVRrNU9ncWVuNSt5cWhzVXVjNW5MSG82emR1M2F0VFZ2dnZsbXFvTzM1aXdFdGRxMmRvamhwOER2S0JVTXRGcXRYZWdwVmo4akl5UFJ1SEZqcU5YM1BpRnlWMkNpVnFzUkdocGFib2EwZ3ZsUmptVlpRaXdrY0J6SENnVUYyNmtFMHN2TGEzTnhjWEdRU3FVYTR6cDNYT2F5UjlPeXM3TVhoNGVIbjdYeDFFcHRId1JCbUd4QnpURUVGU1FHeXVYVmJNSE5WOURXRFEwTnZTOVF1MnRnQS9nRWVrVjhiYzdHck1UR1hRSGNPR0VxUWN5M2tRRElWcTFhTFRseDRvUy9YQzd2NXpxRlhQWVVoM3JRNi9YSXlEQ0FZUmdZalk4R1EzTnBhZW5QNzc3N3JtMi9XcmtRbE9NNENkUTRqbU1GUmx5T1pWbU9ZUmc3dmo4eHNoTWZZcFZVb1ZCQXJWWkRMcGZqMHFWTER4YllBQ0E4UE56cHFKV1RhUVJPNkdjVFI2M0VXVkxiRmhEaW4zLytJZmZzMmJPNGZmdjJmaFJGZFhHZDRpNTdHa0V0T1RrWkhBaHBHc0wvRWRndmk4WHk1MDhyVit6S3ljbXhPQUUxMndrRGZteUtJRmdDWVBsMEZLL2VMakIzY0VvbEw4U2kwV2o1bmpWM0QzaDVlOEhmUHdDMWdvTVJYamRjMHRHNFg3dW5iNkFvQ25YcjFrVndjREQ4L2YzaDVlVmxWeWxWS3BXMitUZE9aQUt4VmJZUzNGVXIrQllRYytmT25WTXZYYnEwa09PNFk0L3pDYnBwMHlZb2xjcUtFeFZXSzBhTUdBRS9Qeis0dTdzakxpNU9VbmR5MmROcmVyMGVIQWo0QndROU1tTnhMTXVlUEhUd1lOTEVMeVlVT09UVVNvUkhxUjJvU1hSRUpGZStDbHArdWtEbnBvT0hoNmRFUlZRN05MUmFRTzJlZ1EzZ0ZXM0N3c0lRRkJRRVIyMVNKeXBYb3BxelhRdUlBN2labm5ubW1aUzB0TFFGSE1kZGVWSlA0SEhqeGlFcEtRbnIxNjlIVWxJU2R1L2VqV0hEaHJtdTdLZmNESVpNYUhWdWo4eitjQngzOWR5NWMrdjc5bmtud3dIVWJDdWdKanRRRTNyV1NGS2FCNFZjSnVma3RDaDBySUJLWlQ5bDRPUGpBLytBQUlTRTFMNHY3WVZxQXpZQUNBNE9SbWhvS0FJREF5WCt0a3JBRGJiOWJRSi9tMFFsTGp4TXdjSEJCM0p5Y2hJQVpENXBKMjlSVVJIbXo1K1AyYk5ubzIzYnRtamJ0aTBXTFZxRUZTdFdJQ3NyeTNWMVA4WEdNTXc5ZVdvWHpwL0RxQkhEcTN0M3NtN2V2TG02YStjTzEyRS8yRzRIYkFSQldEaU9zNGlDeHh6SENSeHJGRWVRSklxS2pNak56VUdtd1FBQ3ZOaTBScTJHMldUQ2diLyt3cFl0bS9IbnJwM3c5dmF1OXNiMysvYjc2dFdyaDlxMWEwdmc1dUhoWVNmaFp3TnVZa2dxOXNPeHprSlNBQ1lmSDU5dCtmbjUzd2tMV0tQV3FsVXJUSmt5QlMrLy9ETFVhalVpSWlMd3h4OS9ZTzdjdVFnT0RvYTd1enNHREJnZ3FTMk5HREVDblR0M3R2dU83dDI3WTlDZ1FVNi92MmZQbm1qZXZEa0FJRGs1R1NVbEpXamJ0cTMwZXBzMmJRQUFSNDRjY1YzZFQ3RVZGaGJjMCtmcU4yaUlpVjkrVloyN1VxclhweTl2MDdyVmVaUzFkWlRhaEo2OHQyYlgya0V5SkVteEhNZXg0RGpJWkJUTUpoTlVLalVYRWxJYi9nRUJTRTlQaDFxdGdWcWpRVXJLUDNqbDFWY3hldlFZUkVSRTR2Q2hROVcrbnZmZE8wWVFCQ0lpSXB3cVdqbXJqb290SUFBSUFFNkxDUnpIa1I0ZUh1dU5ScU5HbzlIRTEvUkpOWDM2ZEd6ZXZCa3hNVEVZTkdnUWV2VG9nZTdkdStQQ2hRczRmLzQ4MnJWcmg2NWR1K0tOTjk2NDYrL3UyYk1uY25OekFRQzNiOThHVGROMm5GeHl1UnplM3Q1SVRVMTFYZDB1SzJmWjJkbVkrdlZrWkdVYVFKQWtCZzhlZ3BhdFhrQnFhaXBHalJnT2k4VU1EdzlQTEYveFUxbTY0N05Qa1piR2E1Ym41ZVZCcmRGZzdicjFBSUNyVjY4aVllNGM1QmZrdzh2VEMyUEdqcE5FZWdCZytiS2xpNy80ZlB3cEIxQXJ0UUUzdmxnQVdJUnJsaVVJc0FSSmNBUkhnT000VGlhVGdXVlp6dDNESFFxRkFnUkJRSitlRHJWS0RZcWlvRmFyVWI5QlF3VFZxb1dpSWlNT0hUejRNcm5Fd0FBQUlBQkpSRUZVNkFFYndJOWNoWWVIbHlPakZNdThUZ2JrYmZ2YklJU2s0bVNDQ0c2RVZxdGRXVnhjckZLcFZDTnI4dVRwMGFPSHBJMzR4aHR2WU5teVpaZzZkU3AwT2gxYXRteUpaNTk5RnVmT25ic25ZSHY3N2JlbGZ4Y1hGenN0TENnVUNwaE1KdGRWN0xKeTl2TzZOV2pjdURINnZmOEJybDI3aGdYekU5Q3kxUXNJRGc3R0x4czI0dkxsUzVnNlpiTGRaNmJObUFVQXlNL1BROXpBV0l3Y05Sb0FZRGFiTVhYS1Y1Z3lkVG9DQXdPeDQ0L3QrSDdCZkV3U0JJYnk4L04rK09MejhZZWRoSjRsZDhpcmNTekRpRlJsa010cFVad0ZSVVZGTUFwc3hrb1ZINzFwdEZyNCt2cGkrN2F0eU0vUFIxNWUzcU1KYkFDdmNHVkxJVzdidEd2anNkbjJ0VW5neHBhcDZqSUMwRW5nOXRaYmJ5MVp2MzQ5clZRcWEwekd6M2I2UXFGUVNQbEQwV2lhcmhiZ1VhbFVNSnZONVo0M21Vd1BSWi9TWlkrK1JiZG9pWVM1Y3dBUWFOR2lKV1ovTTZkS24yTlpGbDlPbW9odXI3eUdGaTFhQWdDdVg3K0cxTlJiaUIvTDk4S3pIQXVOb0YxUVdGaTQ3SjFlYisxSCtha0MreERVUmtKUEZEdG1HSWFUeStVYzc1eUFvMm1lTERYVFlJQkdvMFYwZEF2OC9mZFJ1THQ3UUtWVWdtVlpyUGh4T1hyMWVoc05uM2tHNDhlTmZYU0JEUURDd3NMc3RCRWNweEZzaUNoaDQ2MXhBdmlKa3drUW12MUFFQVN4WmNzV1l0cTBhVXZpNCtObENvVWlyaVpPSHBrVEh2cUsxS1NjUFcreFdLcTBuZURnWUpTV2xpSXZMdzhlSGg3U1o3T3pzNnZNNWU2eXB3ellvbHNnY2Y1Q0hEdCtEQ3RYTEFkTjAvaHk4dGQzL056U0pZdWdWQ3JScCs5N2R1ZHBRRUNBWGRnS0FFYWpjY1dFK0hGN1UxTCtjZXhUY3dRMU96WmNvZG1lb3hVS2pwYkxZYlpZUUpFa2FJVUNGRVhCMTljWGRlclVoYnU3QndpQ1FHQlFJSFJhSFJpckZSTStuNGp3OEhCY3ZQaXZkQzA4c3NBR0FQWHIxeStuUmVvWWpqcDRiU0s5RVd4eWJveVFneU1JZ2lDKyt1cXJQRjlmM3lVREJ3NGtGUXJGd0lkNW90RTBYYzUxdm5UcFVwVTRvNktpb3FCU3FYRGd3QUc4K3VxckFJQ0RCdytDSkVtMGF0WEtkUlc3ckp4Tm16b0YwUzFhb24zN0RtZ1IzUUp2OXV3QmxtVXI3ZmM2ZVBBQTl1L2JoNFdMbHRqZGlDTWlJbEJRVUlDLzl1L0RpMjFmd3RXclYzSHE1SW1menA0OXUyZmp4ZzBsTnA1YWljUERSQkNFV2NpcDJiSGhNaXpMeVNnWlpESTVTa3BLT0hjdmJ5aVZTdWgwYmxBbytQK1hta3I1SnR4YXdRZ0xEVU5BWUNBVU5NM3Y2NEVEYU5LMDZhTVBiQVJCb0g3OStoS3dPWHBzRE1QWWVteTI0QVpoRkFOQ3ZzM3VPNGNORzVaTjAvU1NmdjM2NFdHQ1c4dVdMVEY3OW13c1c3WU16WnMzeDZKRmk1Q2VubDdoKzlldFc0ZmMzRndNSGp3WUdvMEdzYkd4R0RwMEtIUTZIV2lhUmx4Y0hQcjM3dzh2THkvWFZleXljdGFuejN1WVBYc0cxcTFaRFpabE1lcVRUMEdTcEYzeElEOC9IMi8xZkFQTm5uOGVZOGVOUitLODcxQmFXb29oZ3orVXZpZHh3US9RNlhTWU5tTVd2dnYyRy95dzhIdlFOUDJUaDZmbm54dlcvMUlFKzBLQmJRT3V5WEVPVk9wWG95Z1FESU9Ta21LVWxwWndhclVhbmw1ZVVLbFVxRmUvUG03ZXVJR2pSdzlEcDlPaDE5dnZJaVE0QlBYcTEwZjgrTTh4ZWZJa1dNd1doSVNFWU16WStFY2YyTVJjVXIxNjlld3FwTGE1TmlHdlZxNllBUHRLcVMyNEVRUkJFSEZ4Y1prbWsyblJ3SUVEV2FWU0dmY3dUclRYWDM4ZEkwZU94T2pSbzhHeUxQcjE2NGNCQXdhZ3ROUjVaOHFHRFJ0dzQ4WU5EQjQ4R0FBd2UvWnNXSzFXZE8vZUhTUkpvbWZQbnBnN2Q2N3JDbmFaVXd1cFhSdHo1ODEzbXRiNFpjTkc1emZUWDM2dDhQc2FOR2lJaFl1V3dHZzBycGcxYzhhZVpVc1hWd1Jxa3FjbWdocEprZ3hRUmhvcG95aE9ybFNDcGhVYzMzd3JpTEtvTlhCemQwZGtaQ1Q4L1B3UUZGUUxZWFhxb0c1NE9KUktKWjU3cmpGK1dMUzBSdGZ0anBvSDkyTVpHUms0ZCs0Y3JseTVndFRVVk9qMWVtUm5aNWZUU3hCQ1YwSUFRRUpnNFNVNGppTnROQlBrSE1jcEFDZ25USmpnSGg4Zkg2dFNxWWE0VG4wK1VYemo1bi9JeWNrQnd6QW9MWGs2UjdTVUtoVW9pb0tYcHpmQ3dtcFhHcTV4SENlc1dUYXMxcHBiTTZWS0JabE1CbTh2YjRTRlZVd1J0bi8vZm9SSE5uZ2c2MVJZV0xoc1F2eTR2VGJocHpOUXMyWHNzSWlNSFdKelBVWEpPSUhlbXdjMXBiMjRzYWRubWNwVWFGZ1k2dGR2QUY5ZjN3ZDJMdFFvQjVxL3YzKzU0WGduRlZMWTVObWtTcWx3d2RyMnVJbUZCVXlaTWdVblQ1NzhZY09HRFdhMVduM1ByU0FkT25UQW4zLysrY2hjbUhxOUh2NytkemY2YkRLWmNlYk1HVkF5R1hSdTdpNzV2U0lqY3ZOeWtYVXlFMDJiTklWWW9YTUV0Uk1uVG9La0tHaDFOYjltUlVWR1pPZmtJRE1yRTlGQ3MzWkZkcnVHK3hrTENncCtHRHBrOFA1TGx5NmFLd00xbEZWQUpUMVFnVGhXVUpvaUlJeE9TYXdkSkNWUWYxTVU1RElaeFBsUXRWSUZzOGxVNDcvdGdRRWJ3SXZCaU9CV1dYVlVySkFLdld5YzFXb1Z3WTJ4RFV0RmNOdStmVHMwR3MzU3dzTENVcTFXT3hLQThtNzNiZGV1WFkvOWhaeXVUd2NsazhFL0lBZ3VBelFhTFRRYUxUTDBhVWhMVDBPWUV5TFY2emR1Z3FTb0I3Wm10dnQwOCtaL0NLMUVocStXVFp0Uk5WdHBkbmIyNGxZdG14OUdlZmJiaWp3MUt3aUNJUUNHRUR3MUdVVnhNcG5ncVlsRDdXbzF0Qm9OZEhha2tZR29YVHNVa1pHUkNBMExlK0Rud1FOaHJRMFBENjlJWUZrQ09KdTdxWlJyczFxdDRtdE93UTBBZERyZHF0emMzR0lQRDQvaEFIeWZ0Z3M1T3lzYldqZDNGNkk1bUZibmhxeXNiS2ZBbHBPVEE5MURXRE90emcxWjJWbVZBbHNOV1paZW43NDgrdm1vVTdDZi9YVDAwdXhCRFFLb0VTUkhFaVJIa1FKYkIyMURHQ25NZjJvRnZRSStCUFZEclZwOFh1MWhnTm9EQXpZK2FkbkFLYkE1ZW0yaTV5YUNHOEFQQ0ZjQ2JweW5wK2ZHakl5TUlsOWYzNDhJZ29oNFdpNWVqcnYzNGVtbndYUEx6OHR4K3RyRFdqT05Sb3Y4M0p4NytpeVJuQWxpZmpKdzVlNjY5RGx3VjIrYXNsYTMvbS95K1R0NGFxWnlvRVlJb0VZU0FndXVESEk1elNsb2thbERBRFdKQmRjTGJqb2RMT1pTNU9WbUl6TkRnOHlNTktmckVGWW5IRzd1N284L3NBRkFvMGFOeW9GYkJjQW1nWnVZY0tzSTNNUy8vZjM5LzdoKy9YcEI3ZHExNDBpU2pLNStFT0haVFEwR0E2d01BMk5oOWJDYmFyVTZ5T1F5K0FtMHlIZDFzaE5BU1ltTHk2MGlLNm1BNSs1aEZsZnUrWGdsSmdOWDd3N1VXSEFuejVYY1d0ODVkZloxbEovOXRHL3BzTXVwbFFjMW1RQnF0SUwzMUJ5TEJhTElzZFZpZ29lSFI2WEs3VVZGUnR5NGZoV05telo3TW9DTklBZzBhdFNvUXEvTkdaalllSEJPd1UzNFhvN2pPSzVPblRxSGs1T1Q4NTU3N3JrQkZFVjFyazVRUzA1T0JnZ1NHcTJPWnpldFJtM2pvaUlqMHZVWlNFOVByM1lsK0YwN2QyRDVzcVV3R0RJUUZCU0VsYXZXNHZMbFM0anRYOGJDUGpaK0FycDI3ZVpDd2tmWWlMc0VOUXZIL0htdzhHSlNuNHlGR1RiaHArUHNaNGtBYXVaeU9UVTdVSk9ERmdTT2xRcEJMay9qV0FIMVEyQlFFSXdGZVpXQ211MDUvMFNFb3FMSjVYSUozTzdnc2RubTJ5b0NOM0h3bGhORDA2aW9xSE1iTjI2YzFhMWJ0MHlhcHZ0V3h6N3I5WHFBSU9Iblh6Tml5V0p5MmFCUFEzcDZlclZ4VTZXbHBXSEc5S240Y3ZMWGlJNXVnWUlDbmhvbklpSVN1M2J2QXdBTWpIMi94bzcxc3FWTDhIcjNIblpzSnVKK3paM3pEVkpTL2dGTjAyamZvUk1HZnpRRUZFVUJBRkpUVTVFd2R3NVN6cVpBb1ZDZ1k4ZE8rREJ1c1BSNlRkaWR0dmxpekF1UXkrVWdDQkpoWVdIb0h6c0FyVnZIUEpxZUttditlVTMyb1YxZjVQMVdVQW1vbGZQVUJBTFlDa0NONzFWVHFrUVJGbDBacVBueGJSMWhvV0hJejh1dTBlTlVWU01meGthVlNpVWFOV3FFOFBCd0JBY0hTMExNdGx4dVlyT2ZRcUdReEZWbE1obG5JOFRNMkhLNUNUbUNVZ0FsYjd6eHh1MG1UWnA4YXpRYXZ4RmV2eTh6R0RLaDBlcHFmRjAwT2pjWURJWnErNzZMLzE2QWo0OFBXcmVPQVUzVDhQSHhrVHhuUVFxdHdwblk2ckFmbHk5RlRrNTJ1ZWNuVFp5QVdzSEIrTzMzTFZpMGVCbU9Iam1NcEtSTmZQakVzaGc3WmpUcTFXK0FUYjl2UVVMQ0F1emZ0eGUvYmZ5MXh2YXpxdHRNWExBUW03ZHVSLy9ZQVpnOWN6bzIvcnJob1Z5MDNqOTJoOXZvLzBsL2V5VjBoYkpUQkFCWWM2MUYzN2UrTnZIM0wvSit5M2ZJcFJVTGo3THFweTJvZ1dCZ1UvMmtLRms1VUFNSFpHWm1vcmk0V01xcCtmcjZJaWd3Q0tHaFlhaFh2ejVvWVZSS1BNK2FOV3VHamgwN29uMzc5Z2dLdXJzcTlJb2ZsNlAzTzczd2RxK2UyTHBsYzVrM2FyRmc5cXdaNk5mM1hmVHYxeGNIRHg1NCtCNWJtWmVpUWFOR2pad054WmNMUzBXeFZkaFVTNFVUMG5GQ2dSUEQwbi8vL1pmVjZYUXJNekl5OUw2K3ZvTUlncmhuVVdZclkzMGd5V2FOUmd0andmMVR1Sncrbll4SlgweUEyV3hHY1hFeHVyL0doNWs5M3VpSmZ1LzNyOUozSEQxeUdJa0o4NkRYcHlNME5BeWpQdmtValo1OVZucDkvNzY5V0xac0NUSU5CdmdIQkNBdWJqQmF2Y0JmYk1PR2ZvUmIvL0ZDdHlNL0hnNlpqRUp3Y0FnU0Z5d0V5N0pvMjdZZHVyM3lDaFFLQmZ6OC9kRThPaHFYTGw0RXdGY3NQYjI4MEx0UEg5QTBqZUNRRUxTT2FZTi8vNzFRWSt0K045dFVxVlJvM1RvRzh2Z0ptUGpGQkhUcTNPV2hNTE5vK2pTR2NWa3kySndTSVp6aHJ2MW56bHJ6d3MydnpzSmVUY29abjVvUWZoSldnQk5CamVVZEJ0S21VQ0RuYUtGUWtKK2ZEMFpRbXFKcEdsNWVaWjVhYUJnUGFvNlNlWFhxMUFGRlVkaTVjeWNVQ2dWZWZ2bGxaR1ptMnBGR09NNjlpbitucFB6RG4yUExWOEJrTWlFdWJnQ2ltajJQb0tBZ2JOKzJGYVdscFZqeDB4cms1T1JnMElleGFOeTRpVVF0bnA2ZS9uQThOdEYwT3AxVHo4M1QweE02bmM0WnhiaWRNSXlvbitEZ3Vaa0Z6NjBVUUxHL3YvOGYvLzc3N3lTR1lmYmU2MzVXVjZHZ1N0c3kzbi91b1duVEtHeEsyb3FQUjR4Q3JWckIySlMwRlp1U3RsWVoxSzVldVlMUEo4Umo4SkNoMkxwOUo5NThxeGRHalJ3T1EwWUdBT0RtelJ1WU12bExmUFpaUExaczI0RlhYMzBkNDhlUGswUnBFaElYWUZQU1ZnREFuTG56c0NscEt4SVhMT1JEQkpKRTd6NTk0ZUhoQ1lDbjBqbDg2QkJhdHVSSkFIeDhmSkNRdUFCS3BVbzYwVThuSjZOeDR5WTF0dWIzc3Mzb0ZpMWh0bGdrUUg3UVpqbHJnUGJENS9rYkwydmQvL2Z0Yy9OZnVQbFZDdXdaYjRzZEhxVUUvekFEaEFVRXlrQ056K3h3VnF1Rms4bDVDdis4dkh6STVES29WQ3JVQ2F1RHFHYlB3OHZiRzFxdEZyNitmcnluRmhhRyt2WHFRNnZWT2wzWHRMUTB5VmxoV1JhZW5wNTI3MW02WkJIV3JGNEZBRWhKK1FjZkR4OEtBTGh5K1JLYVJrVkJvVlRDemQwZEw3endQNXc0enVzOG5UbHpHbTNhdkNpY1R3VGtjaHFYTHBVZGgxa3pwejljWUFNQWQzZDNDZHhDUWtMc3dPME9GT08yWVNrcmhLYmluVW9FdHhJQXhjODg4OHlwbjMvK2VVcHBhZWx5VnhyNnpyWmxTeExhdnRRT3JWdkhRS0ZRb0hPWHJtalFzQ0YyN3R6QmgwTGVQbGkyZktVa2xmYnFhNi9EWWpiajFxMy9xcnlOYzJmUG9tUDdkdWpYdHpjYU5HeUlGOXUrNVBSOUM3K2ZENVZhamE3ZFhubGd2NzhxMnlRSUFsNmVYakRXY0JLOHdodmd5ak5RZFk1QWlTZTFPdUhYNVN1Ny9UYm1sZ09vT1FKYkNRR1VBb1NaZjhCS0NLcFNKTUNSSURpYXBqbVNKRkZTWE13VkZCVEEzY01kT3EyT24vMTBjNE83dXp0VUtoWGMzTno0bkpvQWFyb0tSRmhvbWdiRE1QRDI5a1pNVEF4WWxwWDREa1Y3NTkwKzJMdDNEeExtZllmSlgwN0MwR0c4ZmtQZDhBaWNQSEVjUnFNUkJRVUZPSGZ1ckhUVHo4L1BoMUtweE5tektmaHN6R2pRQ2hyNStma0FnS1RmTnlFOFBPTGhoYUsyNXVIaGdVYU5HbFY2RW9uL0Z4NGNRUkNFeFdMaGJPc01MTXR5dHYxdFlsZ0tnT3ZkdTNjYWdJVHM3T3diWGw1ZWd3RGNjNGIrd29YemlCc1lpMlhMVnlJaU1oSkxseXpHNXFSTmtwZFNrWDAzNXhzY1BuUUlPVGs1bURqcFM3UjVzZTBqQ1d4NnZSNFJFWkYyejlXdUhRYTlubWN4MFdxMStIUFhUa3laOGlXTWhVYTdNS0txMXVqWlo3SHp6NzFJVDAvSEY1K1B4N0tsU3pCZzRJZDI3MW01NGtmOC9mZFJKQ1FzY01xWlZ4TlcxVzF5SEllYzNCeG9IMUlQSVZka1NiODhmL2VxaHNlR25NSXhpZnhSQkRaVEJhR25CZUJFcFhhR0FNRUp3QVlLQkNlWHk2RlVxcmk4dkZ4UWxBd0IvZ0ZDOVZNSE56YzNlSGw1UWEvWHdOUExTd2cvRzl5eEYwME1SdzhkT29TbVR1aUp0Rm90QmczNkNDTkhETU03Ny9aRy9mcjh2R3lUSmszUnNWTVhEQnM2R081dTdsQ3IxRkNwVmRMbk5tOU9Ra2xKQ2FaTm40VjUzMzBMQU1qSTBHTnowdTlJblAvOW93RnNBT0RwNldrSGJqWWdWZzdZeEdPTHNpWmV3bWF1VkFRNmFhNE5BQ3VTNG5sN2UyODZmLzc4alhyMTZ2V2pLT3JsZTkxZnVWeU92LzdhajRqSVNCdytWRFhPOWhFalA4R0lrWjlnbk1CZytxaWF2NzgvOUE1VVRMZHZweUlxaW05Rk9mRFhmcXhlOVJQbWZEY1B3UUlQM1lzeEx6aTlJVG1DbmFtMEZOdTNiME9YTGwyaFVDb1JHQmlJOXUwN2xFc0FiMWovQzNidDNJRzVDZk5ydEpIelhyZDUvUGd4MEhJNTZ0V3YvOENQajVXeDd2dGJmMzV6dHgvalUxR0pPcnQ5Z1lDUWV0UUFnaVVKZ2lWQWNDVEhnZ0xKeVVCQ0pwTnorZmw1Y0hOM0IyTzF3bURJd0xQUE5TNmJLUER6aFZ2cUxmajYrcUYrL2YvZjNwbkhSMVhlKy8vem5HWDJ5YjRNeVlTRWtJUmN0dUNsd3JWaVhTNHVWRnNwdUsrWHFxMC8vZlc2SWxhOXJiVjFCWmNxeXExNlJhdTFldVVWYmRVZjlkNjZ3cjBnb2xHSkNZUWtKQ1FrSVNHUVpTYVptYk04dnovT2VVNmVPWmxKUUFGSnpQTjZIZVprTXBNWnpweDVuODkzTDBmcUtNZUlOWnY5N0xQUEFCanppTzJkcUJzYUd2REEvZmZpbnQvZWk3WFBQWXZKaFVVNDIxVEtsMTUyT1M2OXpFaHN1T2JxbjJMcTFCTEx5bk83M2JqbnQvZENFQVJFbzFHa3BxYmlyVGZmUkgrb0g5ZisvSnB2M3hTMXcyM216SmtvS1NsQlFVRkIzRmkvMU5SVXkrZm1kcnVaYVVyWjNGS2JXY3I4Ym9yTk5CMWdwdW1xVmF2dUhoZ1llUExydnRkL21ENERIMys4Q1hWMU94RGcwak0rM3J3Sks1YmZZdjM4NkNPcnZyWG8yWWhmRHJPN01RQlFYYmZhU2dIQTJlZjhDQjkrK0Q2MmJQa1lxcXJpdmZmZXhWZlYyM0RHbVdjQ01BYU1FQUlJb29qZTNoN0xSMEwxK0tEUHBMdzhiTjYwQ1lxaW9NdU05anFjVHJ6NHh4Znd5aXN2UTFFVTlQUWN3SVlOSDJIMjdObERwdkNiZjhVYnIxZmlzY2RYSDdVK2RRZjdtdEZvRkI5djNvUUg3cjhYUDcvMnVxTWVPT2pUQnArOS9mSGZyVDM3YjNlTVpub09BSWlZMDZSaUFCUkN6SUhHRkxvZ2lWUWtBcFVnVUJrQ0hFU2toQUIrZndyeTg0T1lWdjRQY0xuY2NMdmN5TWpJUkU1T0R2THo4cEdlbG82OHZMeFJvUVlZRVZRbVJCd09COUxTMG9ZMWFmMTA2eWU0L1pkMzRwUlRUOE1qanoyQm1xK3E0NEtIaXFMZ3BSZi9DRUtBV2JObVd6NWsxUXhrOVBRY1FFTkRBOHBLeTNEVjFkZmdsVmZYWWUwTEx4NDdpbzAzUzJmT25EbE1zWTJ3VVdJc0VFS3NOdU9ta3FOY2dxL09lclFEMEcrLy9YYjk5dHR2LzQrV2xwYTYvUHo4ZnlHRUhIY283OU1oeS9CNlBIanhqeTlnd1VrbjRhdnFiV1BHaDJaUDBIM3dnZnZ3NEFQMzRmUXp6c1MvL2VwdWxKYVc0ZGUvK1MzV1BMVWFIZTN0bUZ4WWlJZFdQV0pOTTFyMHc3TlJYYjBOVnkyN0FxSW80ZHpGUDBGcGFSbjIyOHFGYnI3NVZxeGErWkJ4Slo0OEdjOCs5d0ljRGdjZWZHZ1ZWai94ZTd6NnlwOGh5ekpPUHVWVVhQa3ZQd1ZnNUNtdWZPZ0JTSktFaXk4OEw5NU1mT2xsQkFLSFA1ZndZRi96RjlkZkIwS0F3c0lpM0hMcmJVYzFqMDBIL2J3aHNyZnlsSmI3NnRBNGxPSmtVMnJXTGNGUUh6VUFSaVVCaUE1UUtnQlVwSVJLZ2dCUkEyUWlVaWNrT05QU2gyby9mVDRVRkJRTTVhbVpnWUlkTzdZUGkzNG1XMDFOVFVoTFM4UENoUXNCQUo5Ly92bXdtUjhYWERnMDdDZ3pNeFBMYnh1YWY3Qng0d1k4L3RnanFLZzREZzg4dU1xQzVLSWZubzI2dWpvc3U5SlFjNys0NGNaaENsczZGcjk0cWFtcG1EVnJsdFVPaFJCaTNmTDczSDBXM0FCUXJxcEI1M3h3aVV4VHJhQ2c0TVBYWG51dDdweHp6cm5BNVhJdE85ajNxS2dxVHZ2bmhmajlZNC9naGh0dnhoL1dQSFhNSGNjenoxcUVNODlhTk96KzB0SXlmTFJ4NURtbUo1NjRJT2tYMStsMDRxNS8rM1hjZmRmOGJIamZ6M256L3lsaE04U1MwbEk4OXZqcWhIOWJGRVY4dU9GL2orcHhPcGpYSE8xNGZkUGw5eWZQa3h3SWgvLzAycjRQMzcvclFHVWZaM3JHRWdITjlLY3BBRFdnUmcyZ0VRcWRnRklDUWtVUUtpb2FKQUF5a1F5b1FZYmI0ekdTYi8xRFByWHM3QndqcGNQTVUvdmU5dzYrV3RHcTJQbWFhOEdDazdCZ3dVbkQ3cGNrQ2JmY3VuekU1eDZUWUdNZk5BODMrNVlBY0JiY0ZFV2hab1VDSDFTZ1hLVUNVMjhhQU8zODg4OXZCZkJrYTJ2cmwzbDVlVmNTUWtadHdxNXJHcjUvNGdJME5UWEZSWG9FVVlSK0JKdDNUcXp4dVVSUlJEZ2Npc3VYMUhYOWkxMjdkbFdlOG9NVGQ0QkxaeG9CYWpFeXBOSllkdzZkQUdhUWdFQUVvUklFeUJBc3FMa2d3K1gwd09QendlZnpXVDYxbkJ5alRLcW9NSEdlV3FMbDhYZ3hNQkErcU1jZHlTVWR5eCsyMSt2RjdObXpJWXFpdFkwQ09tb3FPQll4dFFjVm1HMnEyMDFUQUZvd0dQeGc3ZHExWDExd3dRWG5lVHllbjQzMi9qSXlNdkIvZi9HdjZPZnkzUEx6ZzlqZDNJUllMQWFxNjZpdHJVRmhZZEVSTzBadXQyZUNDb2Q0Ykw3Tlk1YnN0WE55Y3REUnNkY0NXeWpVLy93ZlgzaitvL3Z2dXpka1UybDg1SlBmZUtpWlppZDBFMmpVaUh3S1ZBS0JURVRxZ0FnSFpMaUlETGZEQTA5SkRueG1TZ2VER3QvOTFwNm1rV3hOS1M3QnJzYjZFZUhtOFhneHBiamt1d3Myd0NpL3NzUE5EcmtFSmlwVGIvWXFCY3I1M3BocHFwdW1xUVpBWGJac21iWnMyYkpuNnVycVBpMHVMcjVFRk1WRHlzbkl5OHZEcWFmOU15Ni85Q0trcEtSYVpVeEFmTHJIVjlYYjhNVGp2OGY5RHp5RXFTVmYvME5PZEtXZldFRFlITktiYUFuZjBqRUxoL29oSmtraG1UUnBFdHJiMjlIUjFycGhkMHZyMjB1WExHNUtvdEo0bnhvTGpNV0dWSm94UmNxNGNCczFuNElnVWtrU0lVbG1odzZIREFkckVtbk9LR0Q5MUN6ek16L2Z5Rk9iVm41SXFUWXBxYW1vT0c3dXQvNzVIOUdaQjRkelVVcXQrUWt0TFMzbzZPaEFWMWNYZW5wNjBOdmJpM0E0akhBNGpFZ2t3by8vSTl6Z1pxTHJPcHVsUUFDd2VRcWlDWGlaVXVvQTRBRGdCT0FzS1NseGJkbXk1VWVOdTNaZG1SczRPb00vOTNic3dkeEQ2UERSMU5TTTd2MzdKenJvRGp1T2Jjakt5a1JoZ2s0VFRjM042TzQrK3Nkc2IwY2JNak16VVpTZzBTU2xkRTluWitkL3pwa3o1NU9Pamc3RkJyVm9Jb1VHSzlwSlZCaU5JVFRURXFGc015dDBJRWtTSk1tYVV3QW5CemFQeHdPLzM0KzB0RFJrWkdRZ056Y1grZm41bURKbHloR3RKZjVPS3phTHdJUmc1c3laN0FNYXB0enN0K1kyTEdKS0NLRW0zTUFyTjJhYXdwaEdyd0ZRNit2cjFZeU1qTW9ubjN6eWt3VS9PR1Z4UmtibWxVZjZpaTdMOGlFOXA3QndNcnE2T3JHM293MCtmOHJFeklOUVAwS2hmbWlxbWhCcUFGQlVXSWpPenFOM3pOaDcwalV0SWRUQzRmRExiN3p4eGtlWFhYYlpnVkZVV3BSVGFOWkVkbE9sYVNiTWRBNW1Sc2RiMmRiSzI4MzFValBiZVdkblp5TVFDR0R5NU1rb0tTbEJlWG41bUQ0UHhveGk0MWREUXdQcTYrdlIzTnlNOXZaMjdOdTNEL3YzNzBkZlh4OUNvUkRDNFRBR0J3Y3Q1V2JPWENEY0dFQmV2UW1tZWhOTTBFc0FKRTY5V1FydS9RODJWRXdwTGw0cWl1S1pSK0wvMWJtM0haTUN1WWZjdG9oU2lsMU56ZGkvdnh1YXFpTVMrVzQybjNTN1BSQkVFVm1aV1Nnc0xCaFZiVFEzNzBiWHZuM1FWTzJJSFRPMzJ3TlJraElxTlVWUi9ydXFxdXEvNXMrZjM4SUJMUm5VRXBtZDZwRFphUUhObUUxZ0FzMG9aSTlYYUY2djE0SmFSa1lHc3JLeU1HblNKQlFXRnFLa3BBUlRwMDRkOCtmQ21BUWJBTFMwdEdEbnpwMFczRG83TzNIZ3dBSDA5dmFpdjc4ZkF3TUQvR2kvWVhEVE5JMll3NXZabUQ4R04yYWVzcEYvTWc4M0FNNVBQcTFha0pPVGUvN2g2dFE3RUE0aDFOOEhnQjcyUnBNVDY5aGJ1cTV2Yld4c2ZMdTB0TFRXVkZ4MmxSWkxvTktVQkNwTjV6WnFXakJKb2VZeDB6bjgxbnlDZENQeWFVS3R0TFFVQldZbHlWaGYwbGg5NHdVRkJUQ3JEbUFXeFZ1M2ljeFYwMFNsZ2lBUVFSQ2dLQW9saExDR2wvYkFnaFVwSllRdzA5UTZBWStmZTl6N0pTVWxteDUrK09FelVsSlN6aWVFZkczZDd2ZjdJVWtTOHZJbUlSQUlUSHpyeC9HaWxPNW9iMi8vNjhLRkM2dHFhMnNaek95K3RKak5oOFpEelJZY3NJWVhVMUVVcVNpSzF2ZEJsbVhLZXU0eHFIbTlYZ3RxUnBEQWJEdFVXSWl5c3JKREh2MDRBYllqdEhKemM4R2FVUEtBU3dRMXp2ZkdaaUVTUlZGQUNHRUp2WlFPRFRYVmJXa2hHZ0RWbkcrcW1QNDM1ZHh6ejMzcmpqdnUrUERXVzI4OVBTMHQ3WHhDU1BIRTEzZGlKUURhcnE2dXJyL2VmZmZkVzllc1dSUGxUTWxZQXRPVDNTcDJzNU9kaTh5WHhpYXkyMVdhTE1zVzBPeFFZd0VDbHM1UlZGU0Vzckt5WWUyRXhyd3AydFRVTk9iL0U1RklCSTJOalZhMGROKytmVmEwTkJRS1lXQmdBSU9EZzRoR281WlphaGJvRWxZenljeFNMbXBLYkthcFNDbVZtSW5LK2Q4Y0FKeTMzSEpMeWhWWFhMRXdKU1ZsNlRkcGFqbXh4aFhRR3ZmdjMvL21talZyUG4zMjJXY2pIS0NVSkVDTGNiQ3pSenVaVXJPaW5jejg1S3dVcTlzMFUydDhvQ0ExTlJWcGFXbm0zTThBQ2dvS1VGeGNESmZMTmU2Ty9aajFzU1U0aWJCanh3NDBOalppejU0OTJMdDNyd1U0RmxSZ2dPUDlic3ozeGdHT21GMTlDZk8vSVQ0MVJJUVJYRWdFT01meTVjdjlLMWFzT0RVakkrTmNRc2lNaWEvM2Q5S0hWdFBaMmZtM1gvM3FWMVhQUFBOTWRBU2cyVGZGTkR0VkRtWWFiM2JhVlpxcDFPS0FsaWp5eVlER1VqbUtpNHN4YmRxME1adk84WjBCRzF0TlRVMW9iR3hFYTJ1cnBkNE9IRGlBdnI2K3BFR0ZCSUdGdU1ncFUyOE1jaGpLZlVzS3VPTGlZc2ZHalJ0UHlzM05QVnNRaEJNbXZ1N2pmMm1hdHJtbHBlWGRrMDQ2cWJxMXRaWEJpUWVhY2hCQVk4K3pBZ01BS0IveFpDcU5EeEFrQ3hLa3hFMW5EeUFZREtLNHVCaEYzOUlnNHdrZjI5ZGNSVVZGZkZ1ak9CL2NLQUVHZGlWazZvMXFtbWJsdmNITWRUUFZXMXh3d2VaL2l3RndORFkyT3ZMeTh0NEY4RkZkWGQyY29xS2loYklzLzNqaTZ6LytWalFhZld2Nzl1My9NMmZPbkYwY3pIaVZGa3NBTlNVSjBQamdRRnlTTGEvU2VMUFQ0WEFNODZjeDA1TlA1eWdvS01EVXFWUEhWWkRnT3dNMndBZ3E4SDNiWEM0WCtKUEFEcmRJSkdJQkxoYUxXWkZUQmpjdXVFRDRrWCtzUXdpTWZDSVZnR0lxT0F0d0FCeGxaV1ZiQUh6KzdydnZ2anB2M3J3ZitIeStzd0VFSjVBd3BsMGZyZjM5L2UrOC8vNzdueTFldkhoZkVxQWxncG95a2tJekw1aDhsQjRzcHNXdGtKVHlBQUFUVGtsRVFWVG1CdWk2VG5WZGg2WnBWbDh5UlZHc0JIV202QndPQjhMaE1OeHVOL3I3KzlIYjI0dnQyN2RqKy9idGgrVVkrUDBwRUVYQlNobVpNRVdQb3QrdHJxNE96YzNOYUd0cnc5NjllN0YvLy80Ui9XNW1LVmJDNEFLWDFBdlROR1dsV1hGQkJwdUp5cHVxTWdESEpaZGM0bHE1Y3VYOG5KeWMweVJKT20wQ0UyTm5xYXI2Zmt0THkvL2NkTk5OdFgvNXkxK1Vnd1Nha2dCbzlxQUFnNWxPaUFDanhsT2dnaWhDRWtXSXJDUktraUU3WkRoa0I0eXA3S1pTYzd2aDhYcmg5L21Sa21xTXhzdkt5a0p1SUlCZzBBZ1NIQWwvV3BqTHdaeDdET1Znaml1d1hYVFJSWGoxMVZkeC9mWFhZL1hxb1g1ZnJhMnRhR3Bxd2cwMzNJRFBQdnNNNTU1N0xnb0tDcEw2M2JpRVhwaCt0NUdDQzJRVXdFbEpBQ2NEa0JjdFdsU3dkdTNhK1RrNU9RdS9TVDdjeERxaUY4Z2RQVDA5SDN6MDBVZGZMRjY4dUp1RFVpS2dLVW1BcGlZRG10a2prREpmR2hFRWlLWXZUUlFOb0VteVdSb2xPeUE3SEhDYVVITzdYSERINWFnWjZSeFoyZG1tK1RuNXFLaXB6cjN0eUpzVU9HWnlNY2VkS1NyTE10NTQ0dzA4OGNRVDFoVXFHQXhDRUFSVVYxY0RNRHAxQmdLQllUNDRleTVjTEJhREtJcFFGSVZsZFpORTVxbk5COGM2aFFpbWlTcHhKcXBrbnZBVzJOYXZYMThmQ0FTYUFieStiZHUyOHFsVHA1N2dkcnRQQXpCUjFmN3R3cXh0WUdEZ2c1cWFtcXA1OCtidFpqN1Znd0FhdjZtbVF0TVNtWndNYUlJZ1VFcXBtVjlwSk5xS2tnaEpaTFdlRW1UWllTZzFGaVJ3R3BGUHR4bjU5UHVOeUdkR1pnWnlzbk9SbDVlSHlZV0YxcXpOSTcyOFBqLzI3dDA3QWJZanRSWXNXSUFOR3paZ3k1WXRtRDkvdm5YL3hvMGJNV2ZPSEd6ZHV0VXE5alVuemNjQkxod09XMEdHU0NSaUFjNVViOVFlWE5CMW5ROHdKQW95YUFCRTg0b3RVVW9aMk94S1RwNDFhOWJuQUw0QzhQejI3ZHRuRlJZV0h1OXl1VTZaZ056Umc5bmc0T0JIOWZYMVgxUlVWT3ppMVZVU29La0hDYk9FUU9NREE3cXVVMW1XTVV5bHhabWVUcmo0ZEE2dkY3Rm9GRnMvK1FRWFgzSUpNak96a0dPbWN4UVZUWWtiUlB4TlYyMXREZDUrNjAxVVZNekI2V2NNTDVYMmVuMEk5ZmNlTTUvbHVBTmJSa1lHVGozMVZGUldWc2FCYmQyNmRiamdnZ3Z3NmFlZkloZ01vclMwRkI2UEJ6VTFOYWlzckVSUFR3L2NiamZLeTh1Um41K1B3Y0ZCU0pLRW5UdDNZdCsrZmRhZ0UwbVNhR1ptSmtSUkpLRlFDSkZJaElxaUNOYXhGd0FSUmRFQ25LN3JnbWwyaUdia1ZEUlBmR2FtU2dsQUo1V1hsMjhGOERtQXRWOSsrZVcwNHVMaU9SNlA1NFNKM0xqRHUzUmRyd21Id3gvdjJMR2o1dmpqaitlVm1jNkJhU1NncVJ6UTdPWW1pNXpUWkVCajZSdXFxc0xoY0VCa0hUa2swNEpnS3MzaGhOTTEzUFQwcDZSZ3puSEhJUmljYktSekZBU1JrM040bzU1UFBia2FqWTBOR0FpSGg0MWw1TmZSSEN6K25RTWJBQ3hkdWhRUFAvd3dIbnp3UVFEQTRPQWcxcTlmajVVclYyTEZpaFZJVDAvSDdObXpVVmRYaCtlZmZ4NlhYSElKQ2dvS1VGdGJpemZmZkJPeUxDTVlER0wzN3QzbzZ1cENhV2twWkZsR1QwOFA5dXpaZzRHQkFhU21wdEpZTElaSUpFSjBYWWZYNjZXYXBpRVNpVURYZFNwSkV1R2lxTVM4V2dzMk01V3ZhT0EzSG5UUzdObXp2ekNWM0t2cjE2K2ZOSGZ1M09scGFXbHpaRmsrQVVEcUJKNE9hZlVxaXZKeGQzZjNsNXMyYldwWXNtUkpONFlpa2NuVVdTS284UjAyVk50emRVNmhVYjQvR2t1d0ZTd2ZtaEhCRkFTQk9wMHVQajhOc3NNQmdSRHMzcjBibXFwQ2xDVE1ualViK2NFZ0tBWCszOXR2UVJBRXBLZG40SkhISHJlc2tGK3VXSTYydGowQWdKNmVIbmk4WHZ6NWxkY0FHSjF4bnZqOW8ranQ2MFZHZWdadXUvMlgxcEFlQUhqdFAxOUZaZVU2Ni9FQWNQVTFQNFBENGNDcWxRK09tUTk1WElKdDhlTEZ1TzY2NjFCZFhZMlpNMmRpL2ZyMW1ENTlPZ29MQzYzSGVEd2V2UHp5eTdqNDRvdHg3YlhYb3EydERjRmdFS0ZRQ0pzMmJVSkZSUVZ5YzNQaDkvdVJsWldGU0NRQ244K0hmZnYyUWRNMHVOMXVSQ0lSQUtEcDZla1FCTUV5VVZWVmhTaUtiTllDaTZJUzB6UVZ6UHNZNEVUeml5S1pxazYwUVk0SG5iUm8wYUpkQUZvQS9MMmlva0orN3JubmlvdUxpNmY1Zkw3WmtpUjlEOEJFSzEyYmtGQlY5ZE8rdnI3cXVycTZ4cXV1dXFxMXBxWkd0eWt6eldZNkpnTWFEelArT2JyTjNMUVVtcmtoR2RCWXp6UkNDRnd1MXpDVnRxZHREM0t5Y3pCOXhneW9xb3J0dGJXWS8wOG5JRDA5SGQvLy9vbUl4YUo0OVpVL1l4bzMzL1QrQjFjYUJPL3R3Yyt2dVFvMzNYd3JBR1BPNTMyL3V3ZS91KzhCVEpvMENlLzhiVDNXUFBVazd2N05iNjNuVnN5Wk02enpzTVBoR0hNZityak5ZMXV3WUFGZWYvMTF6Snc1RSt2V3JjTjU1NTAzN0hIVjFkWG82dXBDWldVbHVNbFcwSFVkMmRuWmNMbGNhR3hzeE02ZE82MDBFVVZSa0pLU0FxL1hpNEVCbzRlWDMrK0hwbWxVVlZVTURnNFNWVlVoeTdLVmEyUkdVVmsrRWpYSGFRMVRjS2FaYWxVMmNKQkxCRHZwaXkrK2tPYk9uVnNOWUR1QXR3b0xDOFdYWDM1NWNtbHBhWEZxYXVvMFdaWm5Fa0pLdmtzVW81VFd4Mkt4cnc0Y09GQy9mZnYyNXNzdnYzeHZhMnVyYmxObGlkUlpNcFZtL1k0bFk5ditCdTgzaXpNM2VhQnhDZUJ4UUdNS2pSQUN0OGM5bE1aaG1wN0JZQUYyMXUxQVcxc2JTa3BLY01sbGx5RWozWWg2QmdJQlJLTlJ1TjN1UkNZMmZuUDNyM0gyT1QvR3ZIbUdTMmJYcmthMHRyYmdEbk5ndDA1MWVHMURWY3JLcHFHc2JOcVlQdytrOFhxQ0wxMjZGR3ZYcnNWdHQ5Mkd0OTkrRy9mZWUrK3d4NmlxaWx0dXVRVS8vYWt4MDdLOXZkMXFPUzZLSXQ1NDR3Mjg4ODQ3S0M0dXh1VEprekZqeGd4VVZWVkJraVQ0ZkQ1cmlJdlg2N1ZTUTJSWnB0Rm9GRTZuazVqUlUycUxvREt3V1ZQc0thVzZlUitEbkFBalJZQXZ3QmR0Z0J1MjM5emNMSjU0NG9rN0FOUURlQmVBdUdyVkt0L3BwNStlbDUrZlA5bm44MDJSWmJsRUVJUnBNSHJMamVVVjFYVjlSeXdXYStqdjcyL2V2WHYzbm5mZWVXZnZuWGZlT1FndUoyd0VtQ1dEV3R3K3A4eml6RXliT3FNMm9GRytrd3pmWWNZT05MWUJnTmZqalE4UWVEekl5OHZIak9uVGNhQ25CenZyZHFDOXJRMDMzblFMSnVYbElTOHZEenQzMWlVOE9QL3g3Tk53dVZ5NDdQSXJyUHNVUlVFZ0VNRGFGMTRjOXhlNGNRdTJKVXVXNE1ZYmI4VFRUeitOc3JJeVRKa3laZGhqcGsrZmptM2J0cUhFSEtaU1VsS0NaNTU1QmhzM2JzUlZWMTJGVFpzMlllSENoVml3WUlHVjg3WjU4MmE0M1c3NC9YNXJxclhYNjdVaXB3NkhnNWtWbEc5b3FXa2FCRUdncXFxQ1VncFJGQ21sbEpoQkI4S3BPRlo0VHpqSUNTYmtoQVNRRzNILzFsdHZIUVRRRGFDR00zMkZ5c3JLclBMeTh1eXNyS3hjbjgrWEo4dnlKRkVVZzRTUUFnREhTcnVIQ0tXMFJkTzBQYkZZckQwVUNyVjNkbloyMWRUVWRGOTQ0WVVITUpTZHI0OENzMlFLTGVFK0J6UGREak1NRFFDaXlkUlpJcURaaXRhdGpVWGpBY0RuOThlVlJ2bDhQbXpkK2dtbVRTdkhxYWVlQnJmYmpYdC9kdyttbFpmRDUwdnVjZGk0Y1FNKy9PQUQvUHZUejhZbDVaYVVsS0N2cnc4ZmZmZ0JmbkR5S1dob2FFRE5WOVg0MFkvUHRSNnpjMmNkcXF1MzRTYy9XVG9CdG1OeEJZTkJ6SnMzRDNmZGRSZnV2UFBPaEk5WnNXSUZ6anJyTE54OTk5MjQ5TkpMVVZOVGcrWExsK1BtbTIvR2pCa3prSldWaFk2T0R2ajlmaWlLZ3ZmZWV3K1JTQVN5TENNOVBSMzc5eHVUejMwK24xV3h3RTVTdDlzTlZWV3hmLzkrcWlnS2ZENGZKRWtpZzRPRDBEU05NajhHU3hjUkJJRVYyNE1CYmdUSVdZQ3lkUjBaYWVPVGg0VWxTNVlNQU5qRC9WMzJHdVRSUngvMXpabzFLeVVRQ0tTa3BxYW1lRHllRklmRGtTSkpVb29vaWltQ0lQZ0lJVDVDaUpjUTRqWkJ5Qm9Bc05jQ0J3WnJiQnlsZEpCU0dxYVVoblJkRDJtYTFxK3FhbDgwR3UwYkdCam83K25wNld0dmIrLy84c3N2UTh1WEx4L2c0RVZ0SUtNandFeTNLU3h0dEkxMTBVZ0FzamlZOFNBRFM2ZzFwNlR4NWlhRG1hMnRVQnpRV044MHA5TUpTaWxTVTFOdHJidFRjZFpaUDhTNzcvNDNHaHZxNFhRNmNlZGR2NExQNTBOcmF5dHV2dkZmb1NneDlQYjI0b0x6bHVBZjU4N0Y3Yis4RTZzZmZ3eVJTQVRYLzUraENaS3JuL29EL0g0LzduOXdKUjU3NUdIODRkL1h3T1B4NEdiYjRPR3F6ejVEWmVXNk1RKzJjVmQ1b0tvcTFxMWJCd0JZdVhJbGJydnROalEwTktDNDJPZ0JLVWtTWG5ycEpWeDAwVVVBZ0QvOTZVKzQ3Nzc3VUY5ZmowQWdnS3V2dmhwMzNYVVhDQ0hZc21VTHJyNzZhdFRXMXNMajhhQzgzSml2V0ZWVmhXWExscUcydGhaLy8vdmZzWGp4WXF0cVlkZXVYV2h1YmtaRlJRVVVSY0hPblR1aHFpcUN3U0NibG9YdTdtNm0xQ0FJQWp1eENlZUxzeURIOWhOQUxnNTJuSm9URW9Fc3dUNS9tMmpqWDJla0RRbHU3ZnR4YnJBRSsvenRTSnNkWlBZdG1Vb2J0czhHOXlTQzJHZ3dZL3UyeHFVSEJUUmVwZkhOSUh0NmVqQnBVajY4UGkvOGZuTytwMW5BbnBzYlFINSsvaUdOd2ZzMlZzUE83VGo1NUpNbndEWldWbTl2TC9iczJXUDUzK3oxcG14NGpMMlpKVmR6Q200TW9GVzh6TXhVUHNqQXlyVzRzaTMrY3lJMjBNVkJqbElRZ0E2RDNTSCtuQWhzUE9DRUJGQWJDWEFqd2MwT05DU0EyRWdLVFUraTF1eU8vVkVoWm5zOTNtL0dZR2JkY3FhbmZYQTN0WGR0WmpCenVkeElTZkVQYXdMSkZGcDNkemNLSmhkWnpTQXpNak90NG5LL1AyVk1mRStPSmJDTkcxUDBoQk5Pd09iTm04ZGNFSSsveUtTbXBqTHpsSEpkSEFqWDNZRVFRdUpVSEl4eGdjVHcwMEVBQ0VrRUpVb2gyS0JIUmdIYVNIQTdGT1YyS0dBN0ZMTXpHZUNvRFdnakFVeTNBd3dnbEJCUWdJQVFDMlFHekFRQkFqRWhKZ29RK1JJb3RobWxVRU5xVFpZaENBUUNJVkExRGRtcHFjTWFRZnI5ZmhCQ0VBd0dvV2thZkQ0L1VsTlM0ZlY0MGRmYmg3N2V2bVArUk00UEhsdk5hc1lOMkRadDJuVFVYb3NmMk56ZDNSM1h5REljRG8vVXFkZFNib3FpV01yTlZHOThEU3JoRkJ6bGxCeTdwVFpUbGNGRTU5VWRyN0lJQVVrRVBRNlNvNEZNR0FWb3lhQkdFa0I4TkxWR2t5aTNaS0JqY05KSGVnNXo5ck9ac3B6elA1RXFzOEdNUUJEWTdGcUJDc0x3bVJxU0pCbGdrMlRJSnRRY1pxS3QwK0dBcnV1UUpCbVptWmxXNVFCckJDbUtJb3FMcHlMYm5FVXdzU2JBZHRSWFFVRUJjbk56MGRiV1puWHBUV1Nlc280aEl3R08zeGpZUm9NY0J6aG9ta1lKa3hoRFFJdURqVTNoeFVHUFN6MFpCakRUdEIwSlpFZlN4MmI3bVNtcHBNQ2ppWjdQZGM3QXNIMkQ5Z2JRQ0FFQkFSRUlGUWhCbkRvekZCb1ZCUUdDS0VLMFEwMlNJRW5NcDJaQVRYWTQ0SkJsT0V5ejA2Z3FFQ0dLQWdLQmdOV3VteldDbEdVWjAyZk1PT1NCMlJOckFteUhkVGtjRGhRVkZWbUE2K3pzdE5xUTkvVDBvTCsvZjBUL1d6TEFjZjQzcTRNSUR6a3VpZGlDbkdtZUluNjRQYS9jQ0V4QVlRaDJJT3c3bmd4WU5wVTNxaitOc24wNmltSWoxczNCUUc0VTRQRS9HK1lqLzNkc1RuOEFvTHBPSVFnQ0RKNFJhdlkvQTdHVW1jQUZCa1RUN0RSdmVZVW1Nb1hHQWMxVWFQSEJBVGM4SHNPWHBpb0tKaytlYkxYclp0T2lvdEhvaUZBalZWMGdUMVlCOVQySC8yUXVTUU85L2pqUTQ3SW53RFllRjZVVUhSMGQ2T3pzaEtwcGgxVFVHNGxFME4vZmI1bWpiRXZXeUpKdGxBSTZwWkFrQ1U2bmN5VEFRZE0wdnByQmdwd2dpS0JVcDdwT1RjRHBvQlNnb0t6OUtnQkNUUENaMzNlWUlCd09LaTZnUkVhNWpkdTNlSFZ3L1F6cElTcTUrRGVmNEhkY3poWmwrYytpS0ZyUFllYWxwbWtRUldrWXpBaWZnMmI0enl5b2plWkhrMDJ6MCtGd3d1RjB4QUhONHhtYXZENFE3a2RwYVNseWNuSVFDQVRnOVhvUDdnUmJYUVUwOUJ5WkU3KytCK1RKS3RCbno1Z0EyM2lFV2xWVkZVQUVlSDErZUwwKzVINk4xbEtEZzRQbzdPeEVkL2MrOUppVDZmdjYreEFPaFJBT0QyQndjQUNSd1FnaTBRaGlwbm9iR0J4RUpESUlWVkdNcTNwaTh6UnVZNHBOVlZWSWtnUmRwMFNuT3FpdXd3Q2NNUnFWUldWTkFCRFo0WUJ1bXJxTVJ5eTZOOFFuQWs3TklZbDV5WU1TQjJHQ2pnSTJBa0tTQWk0T1dQR1A0MzRtaEplYW9KUmFkWmpzLzBnSU1TcEVIQTdtTzZNTWFoYk1ERC9hY0xOelJLQ3h0a0l1dU53dXVOMGVlTDBlZUgwK3BKanBHMm5wNlFqMzk2S2lvZ0llaitlUXppdHlwS0RHd1czQ0ZCMkhxNk9qQXlBQ2NuSy9XYmRSdDl1TndzSkNCQUs1Nk9yc1F2ZCtNN2pRMjJ1WnB3TURZUXdNR0RDTFJxTndlenlJeFdMbzcrdUZKRWx3dTkwam1xaE10V21hQmtWUklFbnlVSkJoQ0c1RVZZMi80WFE2emNlWS9qaFJoSzRiMWxzMEdqV1VpaWhpeUpaRkhOZ1NwQVF4Zm1Bb2RrRVRYaXlTdGFObWJhRGkxWlQxUEdyL3ZablF6SVBOQWxnQ3B6OElJZEEwRFE2SHd3SWFNeThCd09sd3hxZHFpSUwxR1ZGSzRUTHJORjF1RjBSUndoZWZWMWwvMStQeG9LUzBGSG1abVhIcEczYUY1dmY3a1pLYWl2VDBkR1JtWkNJN0p4dXR1NXNPR1dvVGF3SnNYM3QxZG5iQjYvTWZ0ci9uZExvUUxDaEFZTklrTS9ldDIxSncvZjM5Q0lWREdEQVYzT0JnQk5Gb0JBNVp4dURnQUh3KzM0ZytPSDZMeFdLUVpVZGNBYjhKT0txR0ZCQkM0UGY3VFJWSENhVTZkTXBNVm1vTXJ5RUNaRW5pL1hTY3YyN0lGY1lCei9xSERPME5neDhiTkdLREcxVlYxWUlWcFlDbXFTQ0VRaENNYWd4RlVVQUVBWkpvdkNkVlZhRHJsQnJGNGtNcXpYTDYyemFCR0NhbXBxblU1WElOeXpkajRPS2hGZ3FGRUFxRlVGdzhGUzYzRzNzN090RFd0Z2V6WnMwR1UzM2ZPMzRlMHRMUzBOZlhoK3B0WDhMcGNHTEd6Rmx3bXdyTjQvWEE1L1daTGJvTmhaYVJrWW5zN096RG1seWIrZnhpS05XZDZGdjF2d0NBakNkK2lJRzM2aEI1cHo3cGMvelhIUS9uS1VYWWQ0SFJqc2g3K1d4SVU5TFJlOCtIQi8yNm96V2JQSmJXL3djYUx0Ynd1T0xUcXdBQUFBQkpSVTVFcmtKZ2dnPT0iXSxbInNyYyIsImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBVFlBQUFFMkNBWUFBQURydkw2cEFBQktvbnBVV0hSU1lYY2djSEp2Wm1sc1pTQjBlWEJsSUdWNGFXWUFBSGphcloxdGx1VzRyV1gvYXhSdkNCSy9PUnp4UTJ2MURIcjR2VGNqczF4VnRsLzdyVzZYcXlJejRzYTlFZ2tjbkFNQzBMWC85Ly82cnYvNnIvOTZTbXZoU3JtMjBrdTUrVi9xcVllWFA3VDc1My85L1BlNTAvbnYrVjhzdi83MC9QWDcxeDgvQ0h5TnZ2TG5CL1g5K2ZxOGZELy80eGQrZjhZei92cjlxLzM2U1dpLzN1alhEM2pqbnl2d2svM3ordk5GOHYzdzgvMG4vWHFqdm4vK1VIcXJmNzdVOGV1TjVxOFhua3Y1OVcvNjQ3Sit2dmozNnkvZnFLelN5bnhRREdISEo5N252K25uQ3VMUHZ5Ly8xdlBmd091ZUdQbnpFOXQxdnZ5K0pSYmtMN2YzKyt0OS8zbUIvckxJdi85MC9YMzEvL2pUM3hZL3ZMKytILysybHVYWEd0M2xYLy9neVgvN2Z2empZOEpmek9HUEt3cC8vY0VZNlo5djU5ZS8zN2ZhOSsyZnUzdFRZVVhMTDRzNmkvMzhmaHRlT0ZqeWVINnQ4RS9sMzh5ZjYvbW44MCs3MzN1eTVldWU5K0NmK2ZRbnNDdmY5YVJuUGUvelBmdDhuYy9rRWxQWW9mSTFoQm5pK1Y2TE5mUXdvL3VVL09mNVFvMDlydGpZeXhuMnhmYWxHUDY0bHVkOGJqK2ZONS9HSjYrSGw0YUhOM3Y0bFgvN3ovWGYvZkIvOHMvMWZkTWxldTcyeDFweFhVRzc1akxjT2YvTHE5aUQ1L3UxYi9rczhPOS9mbTMvL1NmN3dWVFp3WHlXdVhHRDd6MSszbUxrNXgrMkZjOCtSMTZYK2ZxenljOVYxNjgzWUluNDdNekZQSkVkdU1zVDgxT2V1NFpRbjRkMWJHelF5NVdIbU1KZ0I1NmN3K0lpUTRxeGhLdUdGdnhzZnFjKzU3VWhoeEw4TnRqRVJ1Ulk4SzNHRHIxc1Zrb1orNm1wWVVOdmpqbmxuRXV1dVYyNTU3ZkVra291cGRRaXlMMDExbFJ6TGJYV1ZudDlXMnlwNVZaYWJhMzE5dmJRSXhpWWUrbTF0OTc3KzRicjVZTmUzdXZsOVMvZkdXSEVrVVllWmRUUlJoL3Z4SHhtbW5tV1dXZWJmYjRyckxpQWlWVldYVzMxOWU3bjJpREZUanZ2c3V0dXUrLzN3OWErK0tVdmYrV3JYL3Y2OS82eGE3OTI5Wi8rK1IvczJ2TnIxOExaS1Y5WC85ZzF2bnZWK3ZzdEh1RWt1MmZzV0VnUE8xN2RBUXc2dUdkM2UxSUs3cHg3ZHZlQVUrVEFSV2IzNWxxUE84WVdwdjJFL0QxLzdOMC9kdTQvMnJjcnQvOW8zOEwvYmVjdXQrNy94ODVkYk4wLzc5dS8yTFZsbkp0bngzNjgwRFc5STk3SGE5N0FGWDFqZmZ5MXhDKy84YXZqMjdOdVlkSWYvK2MvdlY3dlo3LzE0VjdMdStwVGMwaWx2V3h1SEozTEdIUGlWMmxFTDJXL2laZU1IZExYV255NWc5bldNKzg5cmpCbkhMdTJKKzg2ZHN4ZmU0RzZiK3kxVjU0SmU5cVR6MXExMzJ2dDhYQWZNKzkzalRWQ0duenVFL29NcVY1UDQ2MG02NFgxM1h2WG1RWTJzTCtZNy81OE5lMzY4TE9ZNTczbUhwM3RIUFVlVDhwanMyT0EvOHN1WWxUWFRLTFZzK2FxTDhRa3gwMTRmZGZMT25RdU1lVEJubGJXSjR6U0FmWTN6L3FOVk4vd0xTeHJmaVhPWEVlNklEVjEzaXhHYlFtRDdrU1ozc3Yzc01GZjNTekdIUHh4eGEvTkw5eGNudjR6b0NGMThxNnh6b0J6enE5ZGJlV1MwbUtkWnI1SHVWc1A3UHNjUUg3ZnE0VTFTMXhoclB0TCtWc1kwRno0UVk5NXJ4cHEzeVd3RVNtWHE3U0hQZmxxNXVhTU4rdTcyWXpPNjl6WWY3UDV6OHlyY1RIQVFTejl1MGNxMXpEZ3hidVV0UWF3d3EyRnVQRWpEQk96aldzVXRqbHlLWFBFL1BJSkJjZC9CNSs4NDZoY3lvTWg4R3ZYR01lcS9qdUwreGMvbTZXTVdQYVk4Y09wOTJ6ZkZkWXFIZmVPaWJET1BXTWJLVXhYcHNjMlYvYlcxajYzK1h3dllQL0hXMk10SWJBaFJQcjJmQmVoL1FGOUZtQ0NLZlc1dWNmK3hsQXg0bWVYd1hLWDhSVSt2UlI4OHlQQ1l5ZnRUZmViV250NVQ4eDlyblcxOHVVSmlIM0huTXFMRFg3LzdncStmdlBpcjZWdngvcHhRVEdOc0h0Ym9PUDFzb1A4dFh3UkFNSzd1VXBRRE44SEZVYm5mbk1BU2NTczJPVis3N05lYkNBYUJSZi81bzlYNzY5ZVVoNHV2dGZ2aWQvWi9mMDFYZUZsaTJyQldwNVpndWF5ODRRbUxqeGs4LzZzSWV5R1QzMjBsVEJodFlTVHhJY2tQUXgzL1BhajV3NXNhb1JudlBWaks3aitZNWNkTUs2d0JSY3UxZGJmTC9MaGtYZTRObEc2bDhhT0R1Z1NLMVJUK2JCalhqbEhMOXQ3WHZ5aEZaYWtoNmZuRzJzTEtRZnViNy9TNzdyRzgxNnBqRldlZC9JcGdHdHZCQUt3R09OLzhsdnpSK0J2TlU3d2xML09BejR6cHhiM3lDek1malRIY1dOVTE4TTlWWnowVGJNMjdoNUhlOWRSRUptOWxJN0pMbExBMTBKZ0pmK2R5VjcvdVQwL1h2SEtHdzRYSmpmTkJSY2lUK2NlcERVM3hqZUJWVHhhT2xwRHdUS0pydlV0R3lOczd5N2xHNERBZ3BEbGN2ZlJpbXZFUlk5S0dKMVZUSG9IVjlRelZERUJwcE9RcHJrV1ByVHp5ZzF1d25uNC8vZXlpckVOWUpLVjRwNzUwekQyQVR2c3lWcFB2OHJUZExXT05RSlFmT0p1OGRDdXpYczloQzhDWWt4RXhNZFBHUnU4aWdSVklta3BzZDBFOC9SaUd2dGEvVTQ1Z28rZG5jZW5TOFpRSGx5clB4MThZSjltNUJjcWNjWlBXcVcrWHd0N0VqSW4vc1J2YmFJQWNZMzd3RnJaNWtCRVh1bmV4TS8rZU5zdmlBT3lEZEIxMTRKb1drRERBMFpoTWMvZ2QwZHEvVDdzRysrNVFPRmtWRFdDRFlKYzIxWGt4ZWkrQXRCa1FoUG9jRStDL2lEK3M3SjFQanZpOXgzR1V4OUR6cTQ1WFdQaTd2RVJFTURZeGtKeStiemxuQVQrR3JtaU1jcXp1TTNiMEFRUmdPaDhIU3dCL2lOK0dTQXJmTzlLOFNVOGNodjh6U1VocW1DNjVka3BHOGJBSlZaLzg0dG44VEdMbGdGckl4Vy9qemtsc0FFeUVhK1JGb3NPUUk2YXhTaG9GUHpxL25hQU9zQzI5b2RZTFFOQ1JkUWpYb3pBSGNBaXFtamEwaUljZjVOMXV6Wk9DSVpGU0VlcXdENlVZMGxDcHRZRGpFU1FzUzhpVFNHNFZqQ3NOTDZ1dlo4SmZNU1ZoYkV2dlZkSmE5OGd3ZDczT3dpM2tXQ2VYdXc4QXk4ZjcvSHRZcEM1VTJFbFo5dkljYkFLLzBPTHNWdllQcHp0SmtDK2hPUWJ1cGQwcHp1dnRVSW0zTDdiQ3dVRVNzejVXYmxCSE91SFMzUFJtTUtRSlJMU1lERWZzQkhZTlJ5K2x3eDI5bHN0QmJ6aVFSdkN4d2RqZmRBVUdDQXh6VVdGeExWYUNPRmpBOURneFFmZFpITUpKUmU2ekhDQ3pSUGVJVWg0TjVmUDRzUDFRSFo0M3MwTnNVNHBEYUltZG5BTEJqS24vdjVjRmplVzR4VXlSR2krSFhMWUMvNkN4QUtWY0NQOGpoc2hxT1pudndUbXNEYjJuRURWaVRNUVplL2FpWDdZS0phdjhJdlF4ZzVtOTRGNVlFejNCOW9BRzRtTDc4QXc5S2pnM1VSMGRoNEVaM1hlbk5oWjNwZGJ4V1Q3M250ZFMzNUJOQW9ZZDRzRHozZzdMdnBKQS9BYUtCWnZnQk1YMW4yOVdNbWNIZGJSY3lDWUpTVlc1WGQ2dmZTZVJQZ0k4QnRDOWF1ZHdDZ211QTZsSS83Y0IvV1FCa0FNWkJLK1dONVFGd3FoNUFGWTFjNlBCbS9VZVBsczNuWGlWckVNcENCMG5vMURYMWVNSXh2bmVvTkpnZ0VMcmM2YWFrdWJWWGxZbDRWbEJRSWtiTXJOVGMwZFJjZWtHZ2hvcUljMmMrdDU0b2tUTXdBdVFBYmVlMkUxaTFENlFNWUMwZ0NxU2VSWUY4eXVtU0tBanFVcUhpQkljQTU1R1ZFd3NaUlFwRGsvc0creElZU3JDVTBCUjNadVdncHNZY0w1MkRYQXZHdktQVWFpQXdJS2x3V3BXSFB6UGZ3V1ZCTmtqdEF3VENPV2I3NWdub3QrUWhXdndLbnJ2bnJDbTlZTDJ6VHlQVFVBeklRTDRESmtkQVdYRGdxaFBrQ1laMjNlSFJ3QmFOeHEyR3JxT0FnN2VvUFpnQWg0RHVKcWh2ZFRqVE5xc0JjSlhURENSSFI5Mk1EcFp3Z09OMkU3dzhwQmF3SXpEbG9ENEhvQjVIQ0xVREo0OVFiV0N4VGlBb24reUFEczVlMndpL0tDbkVRWGpIYjM1eDR2Q3h6QlVvSUlXOHJXb1VXZ3IwUWIvSE9OcEJXai8xaXhUdUJoWSsrcHo1NTBHeXNFUnR4dzVwNGpJVGRPSWhpVUFFSjhBL0lRclNlVmhZWUpRanM3N0gyK2NDUXVHWDhrSEJDOE96aUZIRzBoSmNJc1lWTWdMdGd2VXFVU1A5VU1GMFFwanU4dUh4NnNXZ256WXpIblU4SGtyK2NLeHpkU0FUeVREWUlrVHJidWdUQUNQQldUZnJHcmhHOWVMOUhLUDZKTStSTkdVSlArNnk5MWJpWEJzN2lxZ0o0QzFBSExoUVJDVmdTa1RKUTlZa2U0TE5RUHZJa2RKb0NPaWxJNUNkR0FrOVVYaEk0RUtaeDgrOEdHT3Q4WHFwYkN5OW9EVTVDS3lwSzFXY2VGZlV3WXdyY0NvaFg5M1JNc0VIN29Uc0FFMGJtOEFRZ3dDTVBwVWJSQjBJM0ZMNlFFbklhMHNNdDN2ZEFrMzBOY2hLR3lwSERhSmpYZXQxSWJVK3FUaTlrOVpKZ2Y5UGcxakhrRkV6S0dHNktGNzdJaDF3bmhSNmoxcGlEampTVU9vTklORkJwckJ5R08vK0JaZXN6NzVjNTFGUlRsQm9sYklPSmwvQnBKeDFaZUVjditqSTEzbDQrQ3dvRVk5TEsyUkVWZXlKMHZUTjBQWVZNSkZ4MlRhd2d4Z2pPWWl4SHRQSUNrQzdjWUgrOFA0bjFMVGY2OU4wNnZqZ1RtVW1oZ0M0dUh3NEVvMkNUT0FnRUQ2aUJWbnd1R1JZLzh0Z3MwakhzaEJGQUZEZmNObUVyMmN4QzRpK0J1S3F5ejZnTW43cUFRd1pOb2puYzExU3ZtR0hDOHVIRVJYZ2tNYnN4RzVNaUdZUUpRZmt0NkFOZTM0VkhObldjTkRpRDFrMVpFNDM1dk96RnA0akFENGNmSHNoTUp3aEpnNVRBRkZ1ZjgxZ0E4TUNlRFVkc0dJbHk1SnhPYUl4THAyRHN3Q3NrTW5zQjhMdmdBZkp4OU53b013UHJlSU4zTnZSQzdNZU1YTzRiRVRwWWZQdjZDZzF3Rmk4VjExd1RyZWdzYjJVYTRaSE1nQmFvZWlXc3VGYU5KWExNOHBCTnA5dEVvbU1lSUNlRDd5ckd6bDZWbEtURS9TRFpMUDVFUWdBdmsrTlhqbDJaRzRBZGxvQk80U0NWU3dmaUlJWlYvdi81RU16UklpVWVYSm1wT0JkNElZOHpyVFJnOGtRVyt6VzlYV0dFMFJUSkN4NGVKRWdBZ2R3SHlmRk41WHpFUzFQNDlzRnpvMzNvRVFaWWxYeTBaN0RHTDczTzdJakljVGNsNnZRQ0l2MDRVYmtab2ZpV1BEMUkrRXlTQmVBUEhiZnpwWFFpSkhTNTBZTTY5dzJ2TC9neTZCUFBLVnZ4YURoY2pFWWhRaWIyYmdJQUNzemhQVFRkUnFiRzF5QVFXdEpsaGYvZzczeFhIUzVBQmJLUXMxbzZqQ095QVVpb3plYkF3RVRWZlJnMzZTWWczS0czSk4rdk5HN1h3Qk5qZDRIS0krTUFQY2FraTVIQnRERGVqKzlnempHS1lNTVRKaUFBZzI1MzRYRmtOL0NHR2hjVmRFMHZlQ2s2azViY2lLLzF6UWR5RWx5VHFIYTcyNVVHWVFESHp1Wkcvb25wQjVZclNmUkNUZlVOR1lkWTNuSFBJWkFKeUQvNmNYendLQm9uUGNTUEFGWnJQZTRaVndqakdxTVh3U2lSOE5QRE94U0N6cXZENXI1YVZnSWlZUkpNVVJENWU4YjRxUHZpN0Y1TUM3MGNvYnhncGtwQXJZaStoS1lxTHBkOGs0aU4zK21IcGtLcWdac201aEhQa2xYbHYrSXFadEk0NzhUMkUyMjlidi83cFFoQWVLUEJ6SmdGU1lZNnNDT3h0QzNoM0FLSUQyaWplUmxsVys4R0xIaVJSdXZobDZUdWNLK0pWaElZTU9VSU9RRFVLWlA4TExNaG1sWEJzeURBaHlqd21sNy8rdGp2WDkzdHpjTkVjRGp2bURiaWhuUk9Pai9hUmZrYzJDeVoxQ0dEYmtERndGeFNxSzV2VUsxOVpGL3JtSVJ3VDdMeFRqMlpNRldmMkZpYi9uWk01S0J3b1FIamQzQlpzOWc5ei9jZEZzVWJiSzY4WksvbHUxRTh3ek8raDYwSzh3R3o4RFZuUmVLOGxyMFZheE5kTUw2UnU5M0diNlVXV2huakJmRk9ycHNyVVpWa1VoWEdFb2YzOXEwOG1aa2kxVFgraUxZQWErWEo5dUtKOW05dG1IV0NGSGJxeVppRFdvTGlBZkN6SENBZFlZcWNtdkJGUUQzK0R0MmJzR1Y0SHFRYW4wS2tROWc0VE80bW50eUpDUy93M1Y4SUs2TEd4d2poWXJGQU5mOHArSUJVeWVSR3VDdEVUTVlWQThKUjJtME1DODkrQi9YNTF3K2FnS093T2tmZE81dUtXeW1pZ0JBdnFMR2dLNE01MW44djQvdXlvZjc2UWp6MEc5cEN4alNoQzdNWVB3UisyRk9XTnIvRCtjUFRTRzhDR1ZtZ05KWHQvQlZZRyswUEJoeUdoQk53N0lUUEJBR1dxUlAveHFvMGdhWmdZNFA3ZUFEaWtBVFZ5N2VlRnR1NnQ5b0pPUWM0RkZSZzZ2UHJGMU1HZVhUL0UrZ1BxcGc5V2h0U0ZnQU8rQ0llWjNJc0t4RjdRUWVMMWN6d2ptM3NzQ01pQ2VxdlRvNVM0aHprbjJRMXZuRG82SFZva2hxc0x3VFRDMkFNRDJSZWhuc1dBTTNTbzJ3ZnRoeVpBR0Q1MzVYbjVWYVFsd211bXdtMFFOTUNGQ0QzQ05jdnU3RE1lRFV5T1pqNzdoeDdoNU5nSFV0SXMyRHNWaUliS2JDb2FWcDBDTWFoNWpBUDNmVEZMZUJVRWxpZ0hQK1NTTC9VdWxrelEzcmZISEpBT1VDeDZxdHkwY3lrQWVyc1hreVVUR0J6L0dnYXZoR1ErWndQbEhGaW5RLy9RTy9EQlYva0hjR1djQWRuVTRHNGdhekRCNFE3eWxqQmJyamRyLzNnL1AyTDFrVzltc0JBU1k2RllSTTEzNFpLWURmc2lBUUV2Q1NkOENqc1BpM2lmMjBUSVJHczh4T3pyZy8zaWhxQlBXRENMWVdvTUFOdmI3QmJMU3B5RzFTQ1FRRjVBR0NkcEd5Zi96TG1pVEovMkZjK3VJRnEvVHZtRnJNZGZPQm54eVdWTFc3RHZpVkVpa2VEeEExV0ZtMFhzaEhVQjV6QnJOTUdFMW02UE13aFJZRTB6dzVuUUhlemFEVmplSUJOdmpBNzU3cDhVNzRSakxQT2szUGQ0YnUrZlVCUlordlRHY3ZrbHY4bzlJbkJQNkErcEpKdmhrVmhCSXhkVGhCRGVneEJRTnFKa0lBaUdqLy80blR0ajhOKytWTHJmQ2JYdzU0VkJCUk9pR3dHQTViTmx2QzF2VE9BSkNpelRjWVowb2dJQjdtTmxaUTR2dGc4ZWdZVlFRUzQrZUtiTmRpRGNDYXNEQnpSTjVCRjlOK1dKVnVtSFBSVitCTWk4VC9tTWZxbDUxQzBiZWZkRVd3K3dybmt3QXkwRTR3bGhEeHdUaTBEVFdINHczRXZvWXovWkhSVjJCN3d6ZUkyd04rbnJZa1RQcjVROWlwWEYvektNaW5qL0lnTUJYV3hwdGladjczampvL0dDYVd5ZktRSzJjMEVUTDZ3Tklib251eFhEQUptTzNHa1JodEZ1ZHJpYWFrVko4NVkzOFNTWlJNZEF1RnpJVTN4dVhtK2VaMTRtYWowQnd5YUEvY3dPc3NxbUdFQlNMbjFnR2JlSG1oTkdVUU1CQ1ViS3k3aVUwUlZqTmNDU0FuZ0VhcmtzbWRYQUlWajNDblNqREpJL3hjeUJUR1F6TzZJOEI1MlIxZHk0YUdndUszZEFHa0JvL1dMVm9rZXFzczlzRHU0eFZ5QVBVR1crejhSK3NmUjFrc0VwbjNPdUFGQTB6NFYwanFtU2UrS0JFYWkvMG9WMVlGZkxCK2VEUFlNV3c2UUZ3UWQyakl3YmdOczM0RnFMSFlNSVJZVHZzOGRraitIUjE0S05OYzJkVDlDYkg4d285Qzk0Nk5XTS8rSXNzY25ySktCREx3TFhORjVvbm1lQmhJWkJuT3JKek9pUnpnTTZSaERrMzlpSmMwaG9FeDEzckhDOFdhYld2VytjQlRoN01pVFovRHJ4SVJIS3NEZENkb05ZOFJWSEtBRHo5cXpRUThlNUlBTlEvTytjbGo0QkdZQjhSSTQ4QVJUbmdyRW4zQnlGalJEYnJQaUZxK1VZQVdoQ1RabGRvd3d2OGNqTTJGNDNsMkMrK2I2SnQ4MWNYczluZllnb0EwWUlQZ0xzUU5wM2VmenRTVEJHMEhDYjZhSFdMSjV3dWtpN1JzKzhBYlNIVDRXRFpVVHBqU2NYZVlmcFhUNGNXQ3hnTnB1MWM0UVZFc0M1YTZ5ZHBSdjZnam93UG1xOGtuRUpOQURnNG5uQkIxT1FxZDBJbklEWUFzbS9xNThqTU5nMFBnakh3Tzg4cW5qalMrd0pVQjh3Q2c3WElKVlFIVURRT0xsMm5oMEhuYXpmbkh4YTdkWkUrS1hpWk1FY2p3b2MzdjZrS2tYNkNCQUxGaDFNc1dXdUFsVDk5b3ZwNEFiZklwUmcyMWdYNkh2bDBuTkpyWXNCSC94K21VZ3o1bnhvSG9nVkxHc1MzeXN3aGd4aGRTcUxGRTUwY2tzc0JZQkExK2ZpTS9PVFFDVElEUGpKZFhzWWlEMjl0YjFjVW9RYnd1WFBnY09ReTZBRmN5dG1nN2NudVI5V2g2eUx2Qkc4Q1JhYk1wSDlQV3dITzVkUUI1VDlGNUk2S21NZGt4Zy9DWnVZSGF2SkhzTjcwTFlZbzZ4bXNtdmZuYzA4WUtGcEhBVDRJTEVzRlIvVk52RVBzLzlraDZ3S09yT2hQelBXNFdGRGZXRHhlRG5zazhWTzdnWDZFd2FTWVdhK2NVbFI4WHR6U1dBcVhBNFhHY3Jld2QzazduRVE3N21RME85M2t0K3MvY1ZHSnBPa2tmODAxaGFWUWNTSXJpRU96SjVpeEN3OHpHTWNkYzdtQnZWU3ZORUxqOWlOQy9NcDJORURTOWtmWVFMVzBJRW1OSWVxSGw0VWpLVGJzeWJRdE4xNFdJdFlLMzhEcVRJYldHY2tKbVF6T0pjNmVucTRiVjFUelBMaURqUlg3TndFVFVvSk8wTGFjaG1JZkZuRmtxRkdrd090c3h6M1NvVVB2Z2pkY0FzVXlrbER3VEF3Tnk3VkUwK1dNSjZERytKc2d3MXpmNnNRdXNmTjlkK2Ztc0xqekd6S2ZsektRY0IvUXk5Z0o3RDNpZWEya3FZQWN1RlFBaHozeTZZb1AwOWNmMzBsM0RlTFQyN1l5Z3Qzdm9KT25ZMzloSTVVZ3A4Rnl1UVA2czc3d2lMeEI0SCtlVmpvZ28vaWIzdzFpSnVQQkxPSlYxaDI4SXY1V3lJN3NhaXVUckErQlJpeXZtYXhnV3lXV0liUVJnZ2h6bDVwNVZnUW1tWFVBc3NoaVZmUHBwb3RaeWp6M21iNVpHS3lnUVEvQWhNQVgwU2UvczV0VEVJSEVXY3JOV0dQT1cwMEgwSHJDOWZIdldZaURCYnZNWEQ3elZsdVM0OStjUllzOEpBV3YvNm1MWWg1L0l6bC8zNFkwT1Y1RUpkcmpVekdWcTJBeUlxUUxuRnFQNVVSNkJ6ZTMrTnBmQVU0Ky9XRFg5OW1PL2pCWmRWcU9uVUdlRW8za2Zld3ljU2pZS2tTenJKWTBZRGRBT2x3NUtWVCt4UGpuWnc2UVF1UTNPa0NRYUxSazlqbUFjTk0yWElsd2pZVXR2MmNTU1NEQXpIOHNXNGwrZG9Kbm52dUZzdDRUNlZKd3RlZ1RTVnNYcTJjWXk4TlJkd2ZGMi9RUWdkbWVBZ3VtTTM4UmVqSmhLVkhWd2w3KzlRcGlBYnprSXNZSU9oRU0vdGFFdW9HU01FOVZPc2VwN0xOZzQwSXJBWGhYbTRGa3JIcW5xeHREQno5QkI2aDlFSEM0QW5JVWoxOW9TVmpHd29DdkdpZXRkMFZydWpCN0NzMzBFL2VmRnNUZ1Q1Q1Q4WXhQWUx1VUdiYzRnVnlJK292L05iNlppd0paNE1ZV2N3NHhXYVZJandobitOd1pDZmlsMGpiUVhZbzk3cFlmZ2drNUFuVUp1S0JEb1ZZQUhzWWFncmVzSGwrRGl5VzVzY0JlRmh3U2FqVEczT0ZFOHdQMHZhdWE5MWNFaUlkY0s0cHZxYU1NWUxDQnNDWDJQM2pKQURMMTBYbUFNZ1JDRGNSZ3N1SGZTV0oyZ0l1TGd0N0lLZTNDSkNlMTN3anZqYlVDcDRhcWhMWnlqcFpKalllUU5NZXUwa0V6d3E0ZHpaMUxld0k0WlZiZ29SWVZRYlAzZENXNWYyZ1FSY1hrenlJQXdkeFYvUU0xTWxVVEFnblNuYlBrdkJzRER4Y3hJbHVMdWdHL2tDTmVKTGpyeUkvSUJwWnZWY2ptTTNnZ2t5VEk0VnpOdm15YmNDRnJLU3lJTmZSZDZnMUJGRXFUMHFZeDRDZG0zajF2Qnl1WkNHSmxIYXREd0dSY0ZIcmJLWlZYTkdqUWV5SnYxOGVGTTdpZ2ZYTEN5dVlnNTU4MkZ3UUZ2a0x1VFdCZzBJcGFYSi9jSXQ4dng2MGJqMHpHOU83U2RmcnVTWGphRTlNNyszcWNHVDlubnRDTEt6VllnOENieFB1VWFmbFkwMHJHcGlBRlJnRUJUZ2dhaTdBajVUQ1ZpWDI1Mlk5RFNYRTdJWnk1QmZoSjU0eEVtMkkxTkUxaDdFSGF3THdqQUlwK0Y3dkJ2NWFMamFQeFNkQWg2Y3ZyTUxqdVY4NnoyUnBSZXQ4ZWc4TURQYThDSENzQVJqU0lBNHhudFNoWlNQek10ZXdQbFFDV0RndGxVaXNNazZWd1pOUUxDK0J1UlBBOHBzOEl3Q05SM3JpMXVnOW8wSnllMnlkKzJYVm1qVTcwQ1BJUW1GaGtYZ3h3bTFhTE83SVBPVlJyRHU4RkRLNGdyQzA1Yjc4ZzZTMi9xTDE3MUlabm16NnRLcGtla3FIQ3NFaXNQYmFNaUNEN3hLVDhXb1kwSWhHR1NMK1l6VVJUSVJWZzR2dzI5ZkRqNkFzME5FR3UxK285S1A5UHp5WXkzeVFjMzE3d0tXZE5lUVRzb2RJSWlNUjEzRi9sQ29Xdks4eWRydk5hWUVHWFBDRzB6WlBYOTZBcDJZcjFtQm1XQnAweWxNbWdpWnVpc1FHS3daMytwMWpQbXdjcUlXQUZDQm40RFNTSzFIWlBJV25hUStoNFVQeVdVN1NNUC9rMFdnbGRPSHVPeGRVQjN0L2QwakF2RTQyQi9mUzRNRFpMeEQ0SmxweWU3S044V1lnazRpQW12M3dLSWdyOGR3Q0NmWWlXNTExRXpvZU5OcEY4SjRQU0pIUTBGNWt4S1BqQjg1akRBblJBdU41OWNKRFkxNVBnWEI5aE1zODVZSEVHZUJDMkxocWhmbUQrT3o3U3F3dmhKVDFqRStjMzcwOFd1ZTlFYWRWczRKaEdkQytVMWgxa3R5OUtPeDE5Q3RDTVZYRXBadGl5ZFkyQTRnbTF2c0E3Vm9hdC9rMjRlelR4aHZHM2l4WHdpOEpaTU55TzI0blhFUWYxTDVITCtZZmVWdDhJbkROQ09mUUJ1dVpWU2pkMCtpWndrOGQyd3hBeU1PMno0Z2ZIWkhiTUVoQ0N0ekhZZ0ZZVEZ2TjBtTkMxU0wyVmlVT3VMSUhqTnJpa3cxZlN3WmlZdDBIMENvd3VZSEFyUkd3WUJFQnNudnlsZWFNdVp6SGNsOVdlbHFJU3h5dHcwekhucm4vOEpaa2FZRkhJT003b3NqRFRIRDVaRVJZMGZNVkR2Mk5NSElBMllpTWgyMThZRDVzNjJSbldNbnp0Y0ozNEsyUTVHRFJIZXJvNXcyYXF2cHdFV0lGSENUOC9PRFAzNFpYRXd3ZVpEaTBMQ05GRTJ3N0FlZzNXRWFBQlBJSSsraVhCOUNLeVlOS1hOeVRTY2lKdVJURVp4andOWXZaaVpaRWJpQlpvMGsvbkNtejM1OTVTRlBYVnVBVFlxRURFTWdXOFE4enc1RC91QWlZNFpYNVZpZ1RkbW9SVDhBaXBiMmdLeTQ0WnVhS0NITUE2aXVmSDBiN1l2RU9ZZTlGejJHY2dNSE9saW53VGxDQTVkNFFjOU5YM2wwOStRVkRDUUR4YXJDb2hrNUE3dktHajNtS2x3L0hlT0Rsbms5K2ZncHk1ejBWM0hDOVlnVU11QldoTFZrakJCZ0dlSVFOVjlBRFVXUEppUTVIK014UTBVV2MvenduaFBkZ0hjWGNSUkVDaVRGcllYZ0VxUnVIUnZQaXhsY05uaktoQklnenNtSVFHSnd3YzVnc3ZIemhpTVAxZ0x2NFpaMzhCVGMzOS9aSTV5UkhhbHdXNkdaTUhPV3dNbmFER09KdGxmeVlKaDZJNTRscm5tOWtzMWMxSGNrN1gxNWlFYUhKM0w0VEYzNnhteXhreTNCN0FKV3dWNENRRE0rekJvOFFvRktLQ0NJUDhyOWR6Mms2b2loWk1vdFZnRkd2UlJuelFwNjQ3NW13bGphTW9pZ25QZHY0dXZLZExRSEtTdWNqVXJmMjB2cVNHeTNBbFFIakE1cGt6dVpOT0czMEhWK1BlamV1VDNUeXlKN3cwME1GbzJBY2pVMW0vL2tLQXB2M0JkUzlLU3RWTEpmMGlDQmYrU2xXVnVMVlpoQ3g1M21EcUFVL2dZZGJRVzdlZnB0T1dOWGFNNnYyVGY0cytTclVDbXFRaUlEemdwV1diWEVac1N5S0RwMlZHM3dHWVQ2WmpLOWY1ZFZkaFdOdHdjWk0wU0tvYm5odkRCNEF3cEZEdk41SC80R2VJK3pGU1U5MFhXZ2dUU3BIZUFraDVCdDA1aDFkb21xbEZ0d1VpRVAzWWFIcWpWUXYweUxGbnBVdmVvWnJ3aGh2KzFEQjhPd01zQzU3aXhEcTMydWxkaXQ0YkpGb0tURm15OFNJT1UyeWVPcGNMUnhKMW95cVdaRFZxa1pXNjMzTW9pcmRjT0JzMGNCandrT3JUNS90RG55RzlTb1FqWGhKYVYrMldlOENtRnMzdFhCYlYyZHhocFdQZUxGNVNuTVkxVkRIZHFOTXNhRjlKNlFKRWhlWGJOalJTYmhtT050VTdySjVzRHJpNC9Ra1pYbFloZmhBNVFIOXczd1ZvdlN6RlNGOEN2bHFRb2RYak1zNmxUWk9xNDh4MUNvL1VNNktHcVR3dWIvTmxYT0R5MmFnUkJodjVpM1IvamFOUUZiT3I1ZDJIVWpyMXNUMDkvRU0veFJYbmFRak1SRCsxUWpnWEhBTG51L0JzT1J0dUJEclY2eW16eWNmY3BkTC95REc0WlZKYmMvVkVDcDlPMjQyWlFGZzVJZGRzUjZNT0llRVlZa3c2Qml5cm9RdmhKTXJ1anl3eGdDMng2WkZhWlVzOWtWK2N1R2JXQkhiOXliUHVvcThXOGU3N1pSQkVjSkVWT29DQUpkMDNkOUo5QUtFSGx3UFAxVkZDS1MrWmdKaGFVSEx0M2o0c1cxdjJ3QlJvSkhZUDR1QnVYbSsvcXpMRTFsM2lrMEJ2RHBvMTB6TlFEUnY2eWNhUE5hVHdHTGhIZ1NZU01hL0NETm8yWHJWY1lYM2duZGREWjVQSU1TSVh1dmhlejVIMHVobnFIQ3N5end2SnZ3TjNyUGV3U0tmMjFSRVZrZmVrSDZDLzNvQXV3c3oyZ1ZDWVM4RWl3cnFZQUxaSlBPNHQxazJjQk0xaUh3SFlTMVg5elQxMjFCWTFtWS9Ia1N0RnllK2Jtemh0bHAydmVWV2I0YjJlVUx3SlF0UTlvc1VqQjllQ0dVS2NBQ2JIOWdRYzRhbklNbmNhSlNsWEF0MitMelFHbUV5V3ZFSGtQWU9WeUVTWTQ5Sk5meHBCekFXNVRCNmhMdkNVVjhFbkdrc3BHU0RSSnk0RDc5RkJKVTVVZUlzdHZtYkV1QWVqYjJ2cHVwTk1scVRYQzEzeHpxZ1U0UUZsdlFKMWRPU3VTL0xKSW5GbUVVbERJQVVjSHZUVzNWd3o3bjNXbGdza05naUQ2SWZFZXk5VHhVenFxdFkzeVl2aEFaY2lOK2Zia3dyZVRFbjhRRXdlSHN3bzNNYmdMY0ZtaG1pVGdSQXNZQm5BMTVrOUFGZlhHbndaVmxXYlVrWjhmdFU4eUs0Q1drS3FTZXRVM2VBSUlIUXNqQVQxUTJKOEtnakRmUk1oNTI3NTJ3eUNBalBQdFgwbGlUZU54b2RhZFYzdHRpaERvM05JdW0wakRLNVNuZUZKVnU4MnQ4eVRkZC9ubXI2dDVrbUlES25DK1BJcDRwKzNoN1lXYzVhMm8wL1AyaHV2L0hhai94Ly8zcjlKeS9FUUwrbXRBNjdib3MzUWR4NDloZXNjdU5tZXkvdUQ2V1BDbEQwZ1JJNXFxNEpaY0dNd2VrSEdxdlVvMVpQcVJwRVEraDNqMUh2dHFmczUwTkN3Snl6WjkrUXpXbDUvcFEwMitGUW9Sa1YvUE13YnMzWHVrRUxPT3A5aWh5TjE3Q1E1Rm51YThmV1pTbWVhRnR0QVNsVGtZWXJSUTgxS3NJaHZ4V3FBU0VBZzFCZEhnaWlrcERXdUdERFh3bGhmcnVuaS9oYjl5bFF0R1RXZzdueVUxYVIwS3daTmcwclRzMDJtdnNoVUJERlRPNWE4RSs0R3FqNXRPMjdhVmZmMmdvc3Q3SHBTNEsxUVo2QTV4eGJoOHBDUHN4L1ZHTFBUMFo1ZWtoeWpyYjVVSlFtU2ljL1Z3YWxyTHQ2ckZJREFQNWhQTmpVTC9PQm1tbEFmdFdBTkovOFZ3SHhwT3ZmQ0FoOGIySGY0QXVJWkdGRUJsRHVjenh1a3lBK3JFSjhna1NtVFVqUnhZNWk1eDU5MjdrUVpDV3RleWpYSUVVR3ptcllHelovZWZCK0UycUl3LzNlN0d1MEgrV3p5YUxlMTRaenhlR2gycHVoNXpnczRkM0RENXM3b2gxZ0ZqYTFJaUdDMHNMNHRnYklVc0lVSVZpSnV3ZHc3Y3kwemhEbW1LeGxKd3hvUmVqVkl4SU1UeS9raUlWOHZtTDhBazZnVndhRmRIK0laaERyNS9TWFhjdmFEc0RMaW9JNzlvRkhHWnRaSHl0eE5od0VqSUpDOHRiYlZ1TzFMSDM4aW9NS0NPTHBOYVYrM2VkMCtnNzRRclRPOUFVb3VXVVRHUGFDVEl0Tmk4ZUdxNEdIMktiY0ZQSG9ZZWhMa0xESkcxVmFMOHU4eHZzaG5UejVObWNhMzNkYVM1VE5pc3JncDgxTHJNT3cyQzE2VjRRTG5EZDUvdGVuRFJscFhqOFY1NmxteTdyWTdoMWdDY05PRUg0WC80UVVQZk93SmE4TTl2amFIT1JaU05WTzdaUE8vSGhkL0lkdHZLc25udUZXQVZiN3Y0TG50REpjWEJtdzl1aFZDUmM4cmJmWGdNQXk4ZVVNc0Z1cWtQTUZ0Vlh6QXJDc2Q3RTBJd1I3MUJJWHhNb2pRU2UveHR2aTR6REw1NjBRaUk1ck51MGh4Zzk5d0VhTnEyY0N1Y0s1bjQ2Qi9tcEFvMldQS203ZEtVNTc1bEZCSDRUL0ZWYzJGdTBwZWJ3Sm9xZVdGWnBEN0VldFFCclNZNDN4NmYrSW1DQ0tGcDV2VFkwbzVYa1h2TG9wcWdEenoycEtZak1xUzFVSDJNdVBoTHB2blB3b3Q5SHdvcG93RHVMYU9aMTRCU0MyRktLQmF5eGdEUzRNSDhNK0pXRlFvS2RCNXVCSFpaNXlTbUo4Wm1NOFhtTEZZTHhzT3BvanRQSGVmTWNRRGtMY0xnOUFjWHVtSW1TbzJjNVhTejJuYVlGbFVTTUJCYU9UUVdlcjBFR0swV1hucVgrYis5NW93enNFOWJrbEpETWFoOHhjNHliWFNnUmw3ZzNlYkRrYVpsVGE1dzVQdTA3Wk9LVDZkNXZ3WGFhTk1EM0NPWXJmUGpVK1BkU2Z2Rkh4WE1RU0dzbnB0bExIWE0yclhuNHRuRVI2b0dtZTZuRXhHdE9hWURTTnhWYnZ1b25YWU53Z1NBSXkxMk41VkxSYVB4TjFZR3hRTFN3cnZLYjRQUWMxdEkxNFRxZms3MkFHTG05REgyNkNxVmlZNXBuQ2xjL0Z3c3B2MDBlQk5VZmNOL2p6WStEeFhKTGJRbVRZOXhUUGVkZmNrR25yVHRHWllEeDB6MmtDbDZtZG5RNlBNTnRkVDRLbm1PRjVmNTFNL1NYRDg1M1dRZkg1QjUwUE5qc0w1UHBUZnVjSHRYL3lPei9ablpQYnNUVG5qK3pPN3h3T1FlZVAxSTdpRDZlVmV1SVVpeFY1YlpuL1VMakk3WjBscUY4TGxtRVppZE50WitZdHN3a1NTTVc3WndMRVBKSGhRdWg3QklBMnR3U0FuUXNtdzNNRnltMGtpV3pUR3NCR1BOM0ZNbDM3a2lyeExSTUk4YlRhUFcwY0Y1UUxYcVhZUnpCK3RwL2NNdEQ1M3RZNnZUYXZJcEpaUHhRb1FvWXJnQ2w3T3BXRzRpS0FyYTBDOGRkMFpVOTlpRjA0dDVvVXJ3aFdMdGhzQURZUUVvcWRMUTJaYzAvelJWdFRXcXphOE9BcFlMb1FkaFF1Sk5hZ2dneUdvNFNJaUo2akhXbUJVUFBVc3lUQlJDUWhaRUcxVjhSRDhmcmNUOCsvZlRMMWdzbWlZdkMzaytNaWltV1BkajBJRlZDdDlhMGIzMzhMZ3NQdXJXSFJIQ3JWRSsvYk9IQVRpcjhYY2R4TlRyS2lxSWFBWnhlNDlsZHFCcEc1ZUpqMU1uOUlyR3V2OVNQZGNvQTJyZkN5UldVb1hiNlJHNkxHUGxMUDgwYUI2VnREbGl3ditPYnRNUnErdk9SQ2FPRlRJem05Wlg2S3JNZGFvS0UyMUJHaFFyN1FyVVJpT0RoTEVrOXVHQ1FZZDdZUkZDVEJZZmtRQy9ROXM3TVNpQVY5OFZhNEdMYUVVV3picUV1OTJHSG9VN2NZSENIK0pxakVBcXFFWnB5WXo1QXMrMm53ZWpQYWIzREtRaUpZUnoweFB1VlVickZyWDdhZERTbldMVWZGTllqMnBkc2xBSnN3aHJNUkhtczBlY3lLL0xENVNTMzkycERubFhSRnQzOWhrOG1TSG1TTUtRTTdaSzFvYlRicDNnZEo4LzNIVjZ6NkJwMGhML2plSFo1b0RjRzhMM1ljaTl6Mzk0eTFJVDVyUTdGd3RpT0NXVXlUSkpXTCtDeU5lSDRUNG1DYlNEdDBlS2F2OFdhb0kvajNwMERLSnNqTVpTUTRoYjIrbUNwQXNDd3o2bTlWWjI1RFZKdldYWnNWcmVFemJNVVBMbkRaMTczNkdDWUlocXpOWG1ZWUwzelp5dExrb1lLdEZYcVNMYzNFQ0FESG1seHJrakMzdUxsSkZydXNaVTlMTEJrVnVvc0ZCN2pTeVc2Q2pmWnpkb2hWd2UvdEJPcjdIdGF3b3hJZUs3WkNMbVlQaU80WHEyTXUxS1JLOWppR1RjUENoMG1mYW9iWlRuWEwxNkVOeGZROS9Bb0RZWGZoTlhnMEcvVlk4ZGl1MC9xUzJUdjdwOUVxV0JDM1pYZFZ1QWZFeFdLdEdON3ErWkx1YTllYmRTK0liTWlrV2Nxa3BvV043T1VwYURTaFM0ejdxZmdiME5PRDJLUEdPM1FwNDJOM3BvWTkyZEZwQ2pRQ3NNbVpTOEQrd1B0L3VpVFp1MDYwWUM5WWVWdUg0UE8rMnRCRGxBUFdRN2Vub0VPM2hpWDdHNTVyZEZIMUUxYjdaUVVjM2dXdTRvZ2Y4Tlh0dFFuMkNPR25ZSWNqYTlnUlpQdXc5UlY3d0ZBa2xpZUt6OWNHZVJpaDNhdklhSFMwNGFoQ01oYmFOMzBlUzhjQlZUcDVMSHZPaUJnSUxXTEd3QnBxcS9DY2lZOXdrWjhXZjltWGg3TURiOHFMaEJvSFpqeFZ0RDBaQW5qYkJvMENaeHNBeG1FNUNsU0hCYnVmKy9Ub1JHTTRscDFodUJxTjgwRkt0dUVBRGRSKzhvK0xxSXFvUUZuY2xreDN4VjUyUnNyQ1B0aWpVNlpzVWU1VDltVWhaVFJ4aXluWEUreTM4cnoyMCtLRVcwTmoyVmpDWXZZOHN2MzVMOE5oV1orQ2E2WExHa2tMRGdQQjFKemViU1YwaFJ0dkR6R3NFYlR2UGllUEZrL040dW5SdCszSlVzc3h3eTQyKzBCR29jb3ZzWThvQkxDZHMvSWJ6bUVueU5MMnVFZVcwOGtoaFZVM0VmdHVBQVQvdGtldnl1RVF3ZDB5eHVIQkl2WVI3dHdxQk1DVCtmZ2tHM3JzNWcvOFB4RllIUDB3alZlWVN6THA5VVhBQXVqajkzRHlDNXJPajl3QVNGUDd3QzlpUk1JNHQrVlhIWE8zOE9KOTdqUVZpdkt3YytDRExUbE9BV00weTlIV2hTTEhKZ25wbnB0OU50MjJFdTdYSTJnLzJLSnAyeFVnSlhhcUNxU1BSN3AyT0Nkb0tWS2pnYVhodWV5R3g1a3hudWVyZzdqM3ZkK3BvdzBUVWJCNGp5U0JKT1NqWlorYkFMdk1QVUhvZ0tKNWl2UHg3NGJ3ZS9OeUhsaDdmaVo1Z0tyQTZZQXduVGFkYXBVMnY0VmZQeGp1UkpUQTMrMHBPdDIzN054cDRCcmo4aUlkSldFZFFuNklZZzRtd1I3NXRJRFdBNjdpK296Y0lOeEk3Q0pYSUFtMHN2QlVvVG04QUtPNlRsVVFIL0M2U3QzMHBiTmlHaXlEaFpYL2VsWmhKVEdMeDRJRTV4NndVNTVXNVJ2NVorbWFKeUtYZlRBQkxPdFdjTUdTMFozb1BrU2d4Uml3VGxRM0RERTYxYU1OOTZoNmhBUGdqMmRwUURZMVFkakNGWnVOWThsNDVrZ25HYUNESnJUY1J3VmFUNjRSNDhja3JTejc4MS9rM0dBenB2TFdDd0k5WlJ0UVpEemdCa0FncjdZWFk2Tld3VXZtTXpwRzFwK1QxUS9OQTdISFJvRGFSSkxHbmdXSDMvRkRhM3VKSHNSS0xUQkNuNU5kc3M4UDNxemJuZ3lMNElJVkFZWHdMc094cHdtZU9nMGMvYnYrakk1UVNHVEp6YkpNQTJxeU5BRHU5SjBnbDg1UWc1dXR1Z1cyZldhQUNGV3ZSd0g5VWhSOEFXRnpHci82R2dSZEM5bWlaMzJZZFNLOFlVRElVM1BGSnBXd1FidUJUbkV4ZnRRMlRtQmY5c09xT0Jya0NNTS9yYU9KUnJQR09KcEYxZyswM2VKZUdGU3h6aEl6OEt3ZXY2eEhrVGxLSlVsa1VmVm5KNGQ1M2drenQxN0hBenhFc0gyUXhWNWNhd3EzS05JZVI4bDRvQUpGQStnZk1MdStaNG9JNEdMSGJMUnAxcmlZUFZHNms0NXNpZitmY2JIeDQyWHpyNEhOUW1Uczhic2lVSm1zbCtINm9ZamRkUFNSY3BZZDN3TG5Qb1RjWmxKTG05My9aWVZycW56T3kxWGFZYmJqaGJERytzWW5nT3BKbm4rcml0ZjNUQk1yc0kzSERubUVZQnFuWlVpQ041RWhqN0tud0tCN2htcGVyS0F6Wmo3TFd1QWN4NUJlbTBtc2owQVdsUXBXMjJHVG1rSXlUWnRsVHBFMEROdUtYbXRQVTNOa0lXeWd5Vk4xbzNxYTA3SUNnS3RzWjU0T1FJRWtLRmJybUt0MGxrMHdqSjRwUWhGb3RUMitYaXpHK094YnJRdFVZRFhzclZtd2htRGJPOXUxZ2FWcWpTbmZYQkdHVXgzWTByRlI4Rzg1RU1WVlRSQ3RhU3J5ak9xeGhPTk1BYnFqZmNvZjlMM1pSYk9reVkxTGcvVEJxVzdMZng5bDF5bll1NjBPT3J0bTlTcWFuSHUxZHJWVm0yS1JYb252SVR0bWI2Y2ZGSmJTTnJHSXEzalhUNjZ3bnVFaHBwRHVkWUh3ZDdZQjlrVzl0cG9KTzl1NVFzUFhlTDZ1QklJOUlJb2VqTnloQU1zVUVPd2JGc0hXM3ZkSlplRWlQNk1WdUd0VWlBWE1kekluQW1kcDQ0ZGF4Ny9YUC95cjhvZnJmMXovQUg1YU9HUVpPM2JOeFJJZEg1dVhuUkFUUFVpOVpUWGJpbXJ6RGNzVGQvVGRBaEpxc2xFWE0vRmtEbmNoZGp2S3hzazVZWjVFMC8xYzUvVGFPc3p1U0pMUUdzUTdHeS81M0czbGFuRHdUYldIQWxjZml1OVJGcGJaaTUwdDNTaUJXQTVYc0VsYWlaUS9ITHlhRWljUUkvQk9TTWJWYjQ5Umt0VlFOc2VjbVQ1SVpNK0phbStZSnlMV1pOaUZnV0JpdTM0ZDQ3SmNuVEFTVGQzT0JWWERWenhDaHBKVmh3MHNQcU5uQzhuUElGRDkrSDVzbnJON0ZTVDJZb1pWT3RnenIzSll4eTBsZEJwQjk4RFpRVGhIdllQMUVWM0xkUk1aK0trZHlkbUVTTG1Lc3pYZ251Z3hqRG9IbEYrSGVFR1F1aE11Y0xzVnovVEQxMFdxVDdKUE1IdUF3R3VzNWp3ZGlTK1dqVXFyNHlIYUZQU0QxUkIyNFh5MUlna3NjSnEyWHp1OElKeVkrazAvMWNsLzBwNlJjZVE2MkFWTHp3Rit5N3lKY253aVc5QnRXUHlRRE9xK0FDRXl0VzM5MWpRTGpabUF2aXhpa2w5Tlc3WnNIMEN1VjhkL25lRlVMMWorVFJ1OTJOd1A3bzA5bVIwN2RiYjNaNHQyUkJTak00dlZaYytaUlFEbFJmek5jZG1SQmJXeGxmTzBRcldmd1hOSVdkNGd2dXhjRWpHKzNFVTlKSjFDMnV6cHRISktRaFNWQ00zaGQ2RE51S1hYWnVmQUFWc3VBQlRlM3g1T0lnbnNkbHF4bHh6Z1lGMUIxYldKeE9hVkliVTJBRjFsOE9sY20yVWFKWEo5ZGJQLzdIN0MwTHVwQzlNTlQ3Y3NoTldwOXM4OUZnNG9Lci9LZmdDb2hQaXJFWG1iTGQ0bXVyVmlHeWVkYVRvOVJiSlBmZndhN21IN0RQQU1TN0ZFWHJFMHpzZ1IxTk00TTFsZ3lyZWpSQ3A0UjZnd0dXSFZ4dlQ4dWhMV3FpMkg2QnRIM2ppSllscm5pWnNjb3BneXdZS1lNNi8zN3J6YWdRaE9hdUd1c1BlcThzOW13KzYxU2lVbzFRUWR0M3ZlbkdNaHlHS1U0WkVtaEFmayszSzRia3ZkTElqWjBhYks5NXlMejI3d05Zc0wrL1BZRGtGRE9QTzA4bFNnY2tmVlJZZDVSdXZkVUtTWGM0bFFsSXVBZzNpQU41eENjU3MrWCtnQVNoakw2bDRKS0FwZmY1VFh3WUtqS20zeTNGOWhOZVBGTzhPNzdHeDB5b1ZETk12SGhVQUE4UFhGeDhFbnAyT0F5bnRTOEN3aWEyZEZyeVB2SE5YRzMxQVQ0TkZXNGtEemw3eU9FRFhVaytha0F1NXo2aEU5TU5zcXlZMjZzeWkxdjkwalYvemI3aGRFMmszc1ArMnVOZG16MjI0ejVPS01LUUdQNmkwUUtrUTRPMEtTczhLU1V5ekRaK0hFTXpkRTFhcFMvZVZhZXptdkFDT0h3cnlaQzI0UUVIQUExMTJXNmVKZGtIQTdXZVA0R1hsa1NYeXc2cmJhQUV1WVF6c0wvazRKR1N0c3h6UWd2bXhQc0Z0NjJXQnUzUzUwVmNpcUd5cndnV2JOMlg2d2dkNHRjV0JYNEJiN0ptUURzRGR4OFN4c3MxNGRVL0N1TUZ1WW5LM2VqdmNzelpZdlFMTnpnNDdVTzNVaCtod3FFN2VEWjc5bmRxbWQvYkF2cStteEhKUVgvby9Mb3BvN24yRm5mSmxJczFqT1hMUElXdzUyTm0raDBwbGVsMVBnTEloK29ZSndBeFR4K0lnY0x3cDFPYXZGZ0dGeXhoUG1ZcFI0aTNYSmFhTmx4NWswWjRGWHlwYyttZXhhYVNkWHgzNVVzM1phcDZNeVc5V2hsbW5LZFVZSVd0RDdoTStJWVNQNDh0QWM1UUhQdG44bUJpZURmQjY2bm82TVd3NkpxRjNPbkgzc3hjMjREQjVwM1F5TVp6WUhYa0E5VXdJUjdaL3RGOXEybTU0bWFuK0NsbnEyT212bWxNNTBCd1FrU3dOTlJXNUhYam9FeGdoSlJMSlJIUm8vbGFRNExTUXhlcnBSN0pERWUrNkdmSHFKSzhFYVdPazNOM1I3S1o5OVJxZmt2cGpmeERiUTVOeThReit1RnUvdGRKZEtHRnpPN0pDa1RZZnVlWVJwMjhjMExYeWZZdHlLMk9HTnEvT01uSzRRUFQ2NHR6SGdzZ0VTSVpzd1l0VGdhNi81czdtWnluSTBTL1VkSFFzWXNCSFR1VFNkS0JSTXZ6d3FEWENVaU9JMHBHdEd1MFl0T0IyM2c4TEVIWWRSc01VT1FhbTh1L2xLTE96R2daRktFS0JvQ2drS21LRWhlcUhvY0ZrOGJMK1VmZ05MbTl0R01rZEx3UjZ4azk2emhjTmVSN2Z1MHg0NVp4amxKRHNCdTBSK3MyalgvMU5Mem9aaXoxZnpjaEp6OUFEanpPT0RIU0VEMGlNdnpXTTVHY0IyUVBndTI0Y202aGtiQ2VkSWVkbGxrMDgrdFNja3JYTzBWaE5CYlg5NzBVN0padjl6V284YXZKWE5CYUFDWDk3WFlpU3JkbzFWdHNWQWRYck5aK29BTGtKSWNtN0hlckl0N2NYWlFleE5pK3V6d1JBUEZtV3lsQTVjbDllWnNMQVNld0RmZ0prN2JUZkV0Vm4xT3Q1bytsSXl0dmRqVWYzS1lJQjE1UkNGYm5jTGhLZnAyVW9FaTVuU2l6Vmx0Nkp4L3dGZ0s5Qm5pOWo0TzdIS28rL0hVdlY2Y3EzQm9jcjJjeFMwUElqaTRCYXU2Sndxb0FHaXVkTzdtOHF6aHAwZGR3NGVETXhCWTNnOGtZK1kxcTNPTWp0bi9xZkhjMkZlUkROOTcvRElNVE1oMFBsNHRmYnJjZklJOHF6ZVZnRGNRUEhKODVnNUtJNERhZjloTWN2MSt3OThORzcyUmFVT1hCRFQ3eTlhaDh2YnJQZVlhSFBIQjVVelZUT1kzM1FqVUMvd3hNOUJBYWRlL3U0T2hTVnNPaEhyNlU2N08rZFcyQW9CMVNQSEl5U3l3d0N5cmpmL2lpMEo1bS9iQ1FSaW52R29lNnhwZXRLcWVaVFdaOHV2OUFYRkRsTkFISFkxaUQzczlwdUFDZmxNNVFYeDZ1WHM4ZWRNTVlDUERZSlJzZSsxbmxFM2RzMXVhRjZBa2lUbk5jQmliaWR4dmE3L0diTmlsc2Z4MSsxQ040VFRBV0RuVWJROWMvdkJYZ3hibzcwTkoxK3pTTzh3N1dMeGJIZXdYaWV1bnVvYVhCZi8xZnUzdllnT29iMm5rNHNjNmZYWnhJdzlnT2RGZUVNeERLQ3NPUmpxTTFMYi9QMFI5d2g2anI3emVMV2o4c3FwS3Q3Mm9pQ1duTGxjRllOZ1ZtZ2VURmhhdE02QXJoYndwK2JzUTJ1S0FJRFBDdnorMU12bzhqcUhwWG9WMXFJVUQvMXdOY2NkalhiS3kyRU9DWVd4UGZNbUppQXJwc1dObnZUZlo3ejNHeTZvMkQraFVScEswTDlxeWhjelE3NkowS3poR1c3V1hZb0pPMzN4NXN1RmN3VFY0L2dqTzJtS1F5VDNHVm50L0RuSXZQVXpVdVpodmFQZE9aSy9nYmRPcS84UVJRNXlRV1VUbDkya1plOEVhMm5DRFM5OEFYTEgyRVhWcFMxMDRUUXZUUk9iTUNNSCtVNUZwM2w0cTJhdXR3SEpBV3RJRHJSR0ZoYWJSQWg2emxvdEhsdHVod0U0d29hVmN6ajI3enFWdzhYQkRsUHJCV0JEZEExRmFQU1F5ZnFRR1J5TUxRNVh1TjFZRGpFdWpvU2RpZGR0MXBQZFc2WnhQNURXNTNhWTVyNmNFMXljaCtjMFJNelowNXB3TDJBU29zL2xwRE12ZFlHZjZSeVI4Z2M0K1RJTnptZG1TN2tKN2M5anliQ2VhSGNySzJxZ3Nya1BpY2oyZU52OEJKb0JCd25tOWp3dWNKWm82ZEdSSGl3Z2xNVXN1SThGV1phbmVJNTYwcnVaYnpnMUJEcTBDclJ0V3Bqd09wak4vQzRYSGR3U0lPV3hOR1E2NDhHcFYrdUtFRElmcllHMlFwQk9PeDJtSlR2TlVZTFd1Nk8zeStlUGNNQ2l1TDJkK0NBa0wraUNyVU1FREpoLytkZ2tEeENjelNCYjNQbFJ2RnNEQVgwTzlaU2lPc242N2JjbnF0bnhWQjJ1UFpKam0wR2JaWTN4aGRzL3MyUWtxN01XSWNUM0dlTmJZY2g1Yi9tUE8yVzFsbWVQVmc3ZERoTUowMkViYzhwNklSYmx1VHcyaTA3QTR6NHJmTlJCamtHVkg1MHpiOVlnclE3dk1WVU10MEpFSjhoRjZpQ2I5U0tJVFdoYlNlbWFMcDFIZHBBS3p6aXFoK2pCSTh4enlieE5VZzQ3VE0yVGRXeEVQaHlNdmc3WmNkWm5YSkM5aXdYTUdYNzBkc2Z0b1Q2Uk11aGFoN281RStBSTR0Y3lXQmFEbjVtSlBLVjFEbnE1WHlzRWlyMEZuU3VLWjc0SFJMUFlyVTBnOXNoWGQrTzMrNHlDdzdJa0p3Y2Y0MkVxMHRMMFBURS9iT0hCMmVaK3kzVnNidU8waHpIeDRhM1pydXhnT0V6YlRtM3I1bStWZGJLczMrSWw1elRDVkk3c2FNN05ubm5ad2ZKNUVqUk85aUtBUXdUWkRXS3hXbDkzd3VGZy80YWQ1Y0ZheERPNDdNT09paFZ3enNnOFIrL3pxaTNyanpiTmdkWFJtbVJFYVkybjZQdUZTamduU2ZZUXpvbU9mZVFZQktMTXJ2a3p3YzdPOFp3dngrNmY0ZllQQkVuY2VDVkt6NmxXVGFZcm0yMnBjVFJMRWRBOTJxdjFNYzVVdUNIYTIvNzJCUnNCTEIxMkFLNklIcFBMeHJQZjVCeGNCMGJaZUJmdEZMR1V6RWNCNUZkZXRVMzJFQmZMM1J4ZmlicTZBUElVcmI2MDJUNmZLZEtRdkFBdlk0M3Q1cTAyeWNWNVlPcWdYUHVzRERXcjlWcU44Slg5Ni9raTJJVFZVRDdVWVZvWG9QVG5zajMvYnR5Q2pjWWorUnFjeXpxTnh5NGJlZVhqbU1uYlUyV2c0eHFLci9zZFVYMktRSzAycnNleXA3eDNFSitSQ0M5ZlFLdmw1QitSZkczSG5kc1JsQWEzUXdBSW1WMUxKdmVlNHVobFFrUkc3N3dKS1pmc0NLM3pPUWZVWnlxbXd6QnRWMHFFTkxZV3VGeW1kcXFqVnNEc3dqM3NFdXd0Tmxub3RDS3ovVTZmSFVzbURPZGVHb2Z6czNlZDVzNm5kYXI3REdRTVcwbGVpTFErZ2NOUjJGeG9IUjBBZStDSVFMNkhTY1Y0RHgrWUUyWmVrYWtZRnJJS3NpY0xiQVpnRzdUdFJMN09JNEdzQkhwUTBRNmk5akVSblVoNFNtbE45Y1ZmcWZ4N1F1ZVFEaTk0VlFuRURvb01UdFhhbFNEREd0blBDb0lRMFZsc0E3V0gvMjg5WTV3czRmbHI2SFlpYzJ0U0FLRHdUSHpHQTlBczF5bnV0Q29wK2N3SVQvQlJiYXVlMlJaT0luSjhxVnhQbW50T1dKeEpqaUpiQlZWeGp1Q1FacWlDeTdaclowK1lQWWxPUkF5RVlQU2lGTHQxL2dWY3h6bDNzVFhrT1pPNG5NMW9sL1FaTHNSclBNKy93blF1SElEQ0lqcHVibHVKdno1QnpKNzZoQjYzTk5LWlhPOHI2eHZkWTRKa2Q1QkpxK0swYnJ0OHRtTS9Tbldvc01PRE1ERTA0SEppM0YyRHg0WFA4ckV2NXU4ZHd1TlFMdE1QM1Q2K25LeGJDY04raGl2RGIvT1ppZXVBR1FkT1pQMklHOTVvMWZjOHBNcVNwdFBicmZKVGdBWWZLR052a3ZPUnQwOGJtUmYyMFcxdHNMVHlTK0VwNDNhYzRuTzYvWjFJdnUwd1I3WEU2dXhpL05tU2FmNis3UUo4N0dpUzVUaXVHSmJrZFVySGlwTzJUanNoUHR1enRVMVdQRVZreG1zamtHY3NIdGE0eks5anBHQXhYRGtoWlY5V2hMUFFZMGhDUWZaWW5DOXZuc2xHRDBlblRvOE5MU3MyZUxDZ3RpRUxGa1FQTUJxL1FrM0VkS0VTQjl4M09HRy9PcXpiYytVN08vUU1FbXA5b3pNNVlYVk83UWtlM1Rrc0lVNGZJd005WklOWm16SHFaUmRldDM0WldVVTBIUVNheDBJQUVCMU9qSGtSOGZGQzNPWG4rVlV6TmJPd1RuTTJnZVRJN0dYZG5OUFBWdFdqOSsxSjhubUVUc3NlMVRUc09ZbWlxWnpKenQxQ1VqYkVrbGxJZ2hKcm5tZGJGUWRMWGVNOG1DRytDQ3M3M1ZzOFBVNTludEgwSGl3RmorM251VDByTjYyRWhxY2lxT2Vwc2JGWFFXUkNpd3l1M2NkVkNJUGd6SFNLbDlVVmhBLzdqWHlhRlZ4M255Rnh6dWNiRXVGRGFnZUNFZlJweHJLTEdNY0cxZWM4eG9WRkM1Wk1ycy8yVWdMSFo4TmRQc09hc3NZL0hPQVNwSnk5clFjZGhjL3NjeGg1V1JUOUFsa2VqQklDMkZySHJmTFNSY0NQOHVVV3dta25URTZPVjJEWTRGT3JKZzZkcmFkSDhDdlhxeGMvbmd3QXpNMm5YWlNOcEd2eWhHYUNncUJLV0o0d2xCTVVYck1hUGxmRE05MDVMYm5rWFV1NUhCeTFidDRob0ltY1EvUVltanhySDVBZGJzV1p5Q1U1QnM0SGpIbVVPOC9NaG16cnVNaGt3K0FMaHdUbXBKcnJnMVRwSDE4MVRMTnlNU0FmSVlUck5uK0VKWVIwQ29vOXdmS3dhNXhuUnRnd05DcVJGbnJpMEhtSFBVcmhjdjJpVTFvY2cyL2VIdk5uKzNCY1p6S2tkVW94WGdMa1poY01sT3E0TTB6NzRrMVpNMGNxUDdhR212WlhnSG00cEVOeDAzMDVUZUZrK2U0enN2UjliU2diVS9WT2pFZHNGd3d5M3phMm4yZVpmT1laNEp1dzVtQnZHMDd4Uk1mN1EyeFlSQ2RlV3B3Umc4Zmp6dUQwRVNMVG04TWpyd290ZEVobFErWkRmMTVQVTZFaHpZbmgzMm1FZGNLTUZkM2JpZ1VucDhYNzFORi90amxMTTFnT3BDalVhSnVIUkhSL1owNDNHR0MzeUxmOW44blFuUkVNSGk2Zkt2Nzl5VUJBdE1VRjMxYTRxYnFMYklTMVU3dHZITVhpVitkT090TEQ2aE5ZS2lFL3p1REpPRCtOTWpaN1BzOVAxOC9JSDJ3RXNMK2NZZ1NYeHRpakU4RXNOVHd0enE4QS9kMjJ4ei8yQ0hUMnhPWVdKQ09PQzJFR1grNC9xc2FKL1E3YlFRQlpvWWNHdWxXdTFlb3ZyTkU1cnRzcFI1OFliTVVMN0tBNm8vaDk2NWxydVRCTTFOWUdOODhBbkR0Z0E4RmhtUWpONlNEb0JlWkRCTE9QQmJEakhFTHdWZDVjZlltT3RwVUNUUUkzMm1kSTBoZlNaVzF2UDQvVklhcER4bDZrOW52TEFCT29LZkt1TTdOQ1BMQ2p2eUsxUk9xZWJjOTQ3QWhTdDkvWHVPMlVLSStqTW53Q0RqUXUyKzRFUEtsV05OdG4ydkl5dkVrdmRxVEVwUTROanQwN3ovMGc0TmpDTUIyK0RuVERtQkQwVHNmM0lWQnpnTnZRNi9ZemhsTmFycnBTbFVHZnUrZkZ6UUhGODhVZzQ4ZXRvV0E4Z0Ivd016dk1hem5WL0E3d3RxcnE3czZVZW4xMmhGMVF2TmR0SVZwWUJNa0owNnNGVE1SUkw3TzRsaFUyczhDQjJIWUdhRXF3VC9YZmFZSHljTWl4K1gzNGtNSk1KQjBPbkxjNDByWnJLZmdIclhGV2c2ak4rL3U0SE1UNjRjL2JLR2VXRFFKamdZeGo3NTA2aGlna0RGbkZBNEttZVZ0NURGZThRQllZOUxkNklNNWo4SGJUelBFTjA2MGQ4d1VvUFhFa2ZpMFBQUWlrUVA3eTJRanMybXpCL0ZWS2xudllIeDU4T0E5czNQeVNUVWZ1UjhGMUxBODNDVmk0TXdkTDMyOXdZcFd4M2o2K24vS29hdU1wck5idXNuNmU4VE1PaFhYV1BRcjljUWQ5TEJEczBVa25acG50MDRBOXFLelk0b25hOGF6VHFkZDVYczR3N2FhelFJd2tGQ0RwQUJBZ3dybWNyK2Mwc3BYWnpJdG11QnNSb0RvVUdnMmY1RGFuWWRFNUVkRklMbXFkZ3ZCbWR0RHhkTU5YMVdvTnZROXVFUWliZGFESlBEWHJMVUxiL0RESGVTYmFldzFqd3VOa2Z2aml5YXRidEdkQnVQWER5Tkg3VjVuYzU4RCs0UFMxQndMNUZvamg2WkU1VTdReHlONWZINVBuVThoWVRaOFFVY3lyQnlLb1RkWUJIKzRQd1luSTVxTWVzek95YlNhMU5zcHNNU0NUbk1kK2ZVS3lVMzU4SXBVUEV3aU9rcldiL05UaFkxQ0ZOVmJrMkZQc09CM0VySlZxYi9JNUtwYVB5S3pMTloxQWMwb2RvNDl1eUVGUXhxOFFDZmVaeER6RVRaOVQxcVd6RG5UY0hxQzlmRnIwak0wbjZPd0ZyUWxPRFN2MmZTVnJWc3JwaE1WSlVOZG55Q0NZMElGTUk5NlEySnc4M2o3UGw0eU9XSzhSZWZMQklaL3d0WHhTSGphVW0rb1o3N1FySldQeFhFNXhVQ3dLMUFlc2JLT1NUZkdPZlBtNlJQbk1nY1Y2ek5VU3d5MnNIaVhhTzB2NFNJTVhPZVFTTkR4SjB0UDRmYWJhcWZGaC9zdGFKQUlDdi9ZNGJ6dDlWeFlwSkZVTzBYWXVUenE1L25rb3UvSEExT3hKTEh2MnZKMjBCN05wNXJQR012QnhYeXhGZ3ZvdER3NlhCK2pGYnMrNStsaU8zTGZRR2VkSXArcmVzckc1N3VqYzNZM2RPc1lmWSsvZXZvTzE3OHZCRW5leUJBTWk1RUFSOWJRZEx1TzBjeW05enpSVnJNc0RUc05nUm01NkcvYlFtQ1k3UVlQRnZzRVczcHdMSkZaOVRrYVdJamh6eEVmdlFXS2NBdS80Y1hqVk5nZnBXU0ZyWFdkQnF2dUFoNG9kWHdnNmZvWFA1UHF3Ryt4b0JuejZ0SVJidE04aU9hU3BPZmZVc2JtT2tuak91SXpwdWZBY3lyZnc1c3NScnl5SkZQUFhzOU13eUdrVHVNODZlVEUrWU5iNXo0NHI4ZnpFZG9UUHlBdjRQVTVYbVYxMjRPZ0NxM2R1TUxuSWJDdG8rOGdGQUZtazFEcXpvM3pvbk95TEJlUm1wYU1lUmNGSnpUNlpQdnVlaTQxblM1N1hHdTNndVkvVFdRQlRLSGVGVjY5dFRaa0greW9taTJ6T2M5dWVIY2JuUXgvMEZ4K08xYS8zVENpMTFNaE9ZR0lIckxIN2JDZXJzdGxESjhkVkoraDZ6T2ZEUFJ3bGtwMDVXbndLVFBJdVRkMWNJN3BYenpQeVQ1bGVObHc2M2dKRzlxQUNsSENQTGZ0UWlzOENoalBQenc0NTYxRWNWcGxmUi9aZTJJbFBuWU9heEF3bjgzZ1pjSWdvQy9UNnlWcURiUFk4bktkZHpXb3Yrc05LQjRQUjgvajRGeTVzK3JBN2EzRjhvcFoxbXltY1pGeDAzTnVwdC9ZeGRQMHRVSDY4OVIxbldwV0hOdXdLTXVXUjBRTUhNNjdydTAvNUtmdnpoVlZPVnQvU041RFVKOFE1VU1hSFBWaHFOTXlVbU9xTHhCK1dtWS8zc1ljSWU3YTJYWTZYZGlpaWJXNDQ2ODlNWkd3YXh2dTVKeU9jeHpqc2JmL1RZMTdmTWp1YkN5Q2J6bW00bXdlYjR6cVJPL2xZWWVodzhyR1B5OVF3Nkg2eXNkc0gxK0syNTdBMjJoWmpoMlV4a3hOOWhBOE1FWmVFK0RwcmJOa3NrYU1QOCswK29jN1JURWZ3TGl2R2lJUmVDbmJoOFlIc3Zwc3ljSnc2RUlzZjVWUFNjNWxXVUxmNllMdm5IR0RZZUswY1JKN0FUeDdpQmN5TDNmUkpJdzQveFBNOUtYMGo3bHJzdXpsbmxsZER5dmlJaGVjMkxZMjVmUEZNQncvTFRyNWdmWVJUaHdnMnhBZTIydGtFNk96aFUrSFdjdjY0bytTMG8yMWZvTW1qZTV4SGU1YndGSityTVFGbHgxaDlCSE1mK3VSakhHQlIrZGVvcWZ2MHo1aVlQWDRNSGprU3gvTnFXR1VqMkcySEREcmdLeE5wWVhIZFpwWGlRNWtMdU9DY3NtYndSUUlhWHl5ejhEUGZlb204NlZjL0k0cnF0YXdmTmVxMFVqMkEzYkk0eDBjMzJibnNRMTdzUUQxUHViS3BHTnN3N3p6MlJiU1lSaFdIbnBxdDRyY3RteVo4RW9BbXhCYjVacnFia0Izbk14NWJhWHdpeE9jakhoM0RpVHBzRnVnQ2xzMnVNcXR3eTdiU0JEbjNzRGg4RWdCUHdQaFRUeVBCNVBuZG5WN0ZFdnYvZVo4eGg3Tjk3Q0tNU0NHZkFGc0pSaDZiblRHcll6cTVQWHVzV1oyQ0dJZlBkNElGL3IzaGtkVzR0a2Q0UG43cmtZR2JxSExlRU84QzZ6QllFMm5FVFpPZ1RqcVJRVHNJQ1hlSzJlZWNkc2M2eExhdVUxV3JCWml0T2dQYmEyMU9GL1NRenZHM1ZreGd1WHRHQjVXZHB5Q2RWdjd1V0NZVFV5THNlQzRIV0ZydFlNdEtkQW9RaXNRSjYrTnpOQ3ZZOFp5Ukt3NDh4UUNoYThnY09LTlpWQ3VLZ2s4cGZYekNRRlhLcnZBNUU5OE8yZXpqQjZyOXZpamY1VE4vRytLMU9QeTZPOG9TVW5JN0dyOURlN0Y4SStEc25tV2o5VDJmeHlpTEhJb0ZnSSs2OEo1NzRTeE8zYTdMNThQNGJKMEEvcjNxcFNSQi9FenhlUnFSZlFJVHhoaUFWcGpGbUQ3Y2JKdTI5Umpma3Ywelh1MDdCeCtPNXhDK2ZXNVdQdW1vZWNvWUVWOEFjcnYyUExOTWtHZndSVlpLVU1TSnN5VWlIakhHMTltSHFUdSszeDZUSHM2elNhQmV3SWZEK29vUGRBNzJISCtWdXh6V0o5bXBCdXQzakh5MnJRekYzQ3JvYW1JZm1MdWRNTUNOUWRSc3IvQTVqNXMzdzJCWnZldk1BU2svbGNTT0xEelBKNFdPTCtOR3NSbHlxRHpmWGoyMUR6NDJPUHRvaWNma2NiU21mSjJ6MjR1bEhvN0U1aXFRaWhha1R4K1RHcERlTXoxQzJVZjR6QjMxNWZOVUxQVzUyK05qcVo5NysxeW5ZQkhVNHlOVG5UUnpwamVpYzMwR2VmbDV4dGdwSC9MSkFzUVk0N3dkYVdDVkE0SldjVFRwTU4zdHdUVC9zbXU3VjgrKytDN3JBRGtFOXg3SENWaHc4bnBnN0lPcEhYWG84eHA5cU9PcC92Rmh5TDRZazM3VTA5RkJremJIM2FnREJ4dXdXdDI0T2thMU5XQWxqMElSRkQ2emFaWUdlWHJpT2NDM1dKL2xyY3VXdSs4ODdheWZydjdoZ2FYajhweStWeUptZDVxSEljMldyampNd0dNZ0tCZlUyTm84eStVcjB2aStjVnVqOCtWNGcyMEJrMCtzdzRZOWh1WENpVUdPVFhmcUdwVFpKeUY1K2o1Zm43c21mOXYyNHpxeC93VDR1dXBWUEhJZ05IZ1c1SUZ1UDdNOXZvUkxmZFZIRDhHSUFmZnNBY1I5R3ZlVEQwQWJCZG1IQTN5UGVlRVhMZEtHbTRyN29aN1BYRWY4QkNKdm5ScXY5eG1OVnQxR0h3NTlocDFqSDhSdEsxVXNpMkZsZllidERENnB3bno3emhIRWM1enpycWRRREJhbWhTenA1NW56WmFzWnZvRTVMZ25rNFpUSnMxdmxmRW5UY1h6ejFKZEVINXhta2lEeUJxOUQ4ckZqYkljRmwvTE94ZldiZzdRbXloSFdEd1NCejc0L2JxZjduR09zNnZVMHdRZk5BUm5Pckx0dDVhaHE2L2M4eFdQZU9UbmNzMFdUZkZZcjNSNHBwek9nVHp6QlJ5NnJuQUNFODh5MEp3MldNcW1uaStOOWJhYXhlOENHZm9tQ3d3THMvZmc4ZXpZVlBCeGtyaXRhZ1dDVGdnY3pQVHZFMzRkdUpwK2ltQjJ3ZFNyMVgydlpBRUZqNkRlQXpXS2F4SWR3UHpBM3Uza2lvdU02RDFKS1g1cWVmTXRLdWRKbGhwdG8ySDFNd1p1ZHR3WEVxdWVjOHd1YXNXT0FyR08rNjdRamkrVytQaDkvKzRxVEZpVzBEaUI2U05LRzAvaHR6MFc0d3BpMlJsODN1NUVTOGdQZHlmWjRQb2lSR2J2aVpibWxOWWFXZkZvbGlMQllwalNmZDNZRjRPdUVGTHVYMXZESnUydlk4dTJENnQvMlpXUUlkdTVVbTN3VkM5VzZjK1J0OGJQWkdtZGp5WjNZeEJyYk1YdGI3dm42Q0hFY3cvUDU2cEFWYktsWk9rQzQ1SXJTOVZrTWRkdVVaOE5Fc04za3RrTjN3YmJsN0dCcFF3QzJuZzArbm9vNDhqaWFyOGRqN0xVQVp2OFBQUGZ2RWE2TzBVNEFBQUdEYVVORFVFbERReUJ3Y205bWFXeGxBQUI0bkgyUlBVakRRQnpGWDFPbG9oVUZPNGc0WktoT0ZrUkZITFVLUmFnUWFvVldIVXd1L1lJbURVbUtpNlBnV25Ed1k3SHE0T0tzcTRPcklBaCtnRGc1T2ltNlNJbi9Td290WWp3NDdzZTdlNCs3ZDRCUUx6UE42aGdITk4wMlU0bTRtTW11aXFGWGhDQ2dIejBJeU13eTVpUXBDZC94ZFk4QVgrOWlQTXYvM0oralY4MVpEQWlJeExQTU1HM2lEZUxwVGR2Z3ZFOGNZVVZaSlQ0bkhqUHBnc1NQWEZjOGZ1TmNjRm5nbVJFem5ab25qaENMaFRaVzJwZ1ZUWTE0aWppcWFqcmxDeG1QVmM1Ym5MVnlsVFh2eVY4WXp1a3J5MXluT1l3RUZyRUVDU0lVVkZGQ0dUWml0T3FrV0VqUmZ0ekhQK1Q2SlhJcDVDcUJrV01CRldpUVhULzRIL3p1MXNwUFRuaEo0VGpRK2VJNEh5TkFhQmRvMUJ6bis5aHhHaWRBOEJtNDBsditTaDJZK1NTOTF0S2lSMERmTm5CeDNkS1VQZUJ5QnhoOE1tUlRkcVVnVFNHZkI5N1A2SnV5d01BdDBMM205ZGJjeCtrRGtLYXVramZBd1NFd1dxRHNkWjkzZDdYMzl1K1pabjgveHJ0eVl2RFJmRzhBQUFBR1lrdEhSQUQvQVA4QS82QzlwNU1BQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBQUhkRWxOUlFma0J3SVJFZytzaDBPcUFBQWdBRWxFUVZSNDJ1eGRkM2dVMWQ1K3oyekxwdmVFa0lSaUNDMFFhZ2hkT3FHSU5CRkVVY0VHSW9JRnBQaGh1VjdBY20zWDNwQXJLZ29pSUNBaXZZbDBFa3BDU085bGU1dlptZlA5c1R2RDdHWkRVVVRVL1QzUFBKdmR6Y3llT1hQbW5mZlhDYVVVZnZudFlyUFpVRjVlanVycWF0VFcxa0tuMDBHdjE4TmtNc0ZzTnNOaXNjQm1zOEZtczhIaGNNRGhjSUJsV2JBc0M0N2p3SEVjbkU2bnRQRThMNzN5UEE5QkVPUi9FMEVRSU44b3BlSXJvWlJDM0FBUTcxY0FvSlFTOTlDbFY2L1BTRjVlWGx4VVZGUVRqVVlUcDFBbzRoaUdpV0VZSm9vUUVna2dBa0FvSVNRVVFCQ0FRQUJhQUdyM3BnREF1SThuQU9BQnNPN05Cc0FLd0VJcE5RSXdVa3IxbE5KNlNta2R6L08xSE1kVjJlMzI2b3FLaW9yMDlQUnE5M0dvYkd2d25oRGkvWjM0R1FCUVFraURWOWxHR1lZQklRUU13MEFRQktqVmFqQU1BNFpocUVLaGdFS2hBTU13RVA5V0twWFNxN2lwVkNxb1ZDcW8xV3FvMVdwb05CcG9OQnBvdFZwb3RWb0VCUVVoT0RnWUlTRWhDQThQUjBSRUJLS2pveEViRzR1RWhBUm90VnIvelhRZGhmaUI3YmNKeTdJb0x5OUhaV1VsYW10clVWOWZENzFlRDZQUktBR2ExV3FGM1c2SDNXNi9JcURKd1V5K0NZSkFSSUR6QWpNUElCUEJTUTVTM29BbGYxOWRYWjBhSEJ5Y29sUXFiMkVZcGlVaHBEa2hwQm1BWmdBQ2JwSnB0Z01vcHBRV0NZSlF5UE44QWN1eUYzVTZYWDZ6WnMwdWVBRWN2UXpnTlFCQUVmZ0lJUjVBUnltbFNxVlNCRFlKME9RZ0o5L2s0TllZd0FVRUJDQWdJQUNCZ1lFU3dJV0doaUk4UEJ5UmtaR0lqbzVHZkh3OEVoSVNvRmFyL1RlWEg5aitIQ2twS1VGbFpTVnFhbXBRVjFjSG5VNEhvOUVJazhra0Fack5acnNzb0hFY0o3RXpiMUR6QldZaUt4T0JUYngyUG9ETTQzMWVYbDVzUWtKQ0I1VksxVUdoVUxRbmhMUUgwQmFBNXE5OERYaWVkNVNXbHA1TlNrbzY0M1E2ejloc3RwemMzTnljSGoxNjFMcVpvaHpVQkRkVDgyQjIza0FuQXBzSWFDS2J1eExJaWFDbVVDaWdVcWt1QzNCYXJWWUN1SkNRRUlTR2hpSWlJZ0pSVVZHSWlZbEJmSHc4a3BLUy9EZVpIOWh1bkZSVlZUVlFPdzBHZzZSMnlnSE5icmMzQUxRcnNEUWlxcDFlZ0VZYVlXVU5HTm5FaVJNVkgzMzBVZmVBZ0lCdUNvV2lLeUdrQzREVXYrTzE0SGtlcGFXbGFOYXNtZmRYZVlJZ0hPTTQ3cmpSYUR4Mnh4MTNITnU5ZTdjZ0F6c0o5QWdoZ2plamN3TmJBemJITUF6MUFYQlFLQlQwU3V4TkRuQWlleE1CVGxSUHc4TENHcWluY1hGeC9wdk9EMngvbkJnTUJwU1ZsVWtzelpmYTZjdU94bkVjV0phVkdKb1BPeHFSMjlGOE1EUGl3MTRtc2pMeXhCTlBLSll1WGRwSG85SDBaQmltRnlHa0o0RGdmOEkxdVF5d2VZdVpVbnJJNlhRZU1wbE1oMmZPbkhsb3pabzFUaDlBSjRqQTVnWTA2c011UjcyWm5KZjlqWHJiMzBRR3AxYXJKWUJyelA0bVYwOUY5dGEwYVZPRWhZWDViMEkvc0YwLzRUZ09KU1VsSGl4TnI5ZExMTzFxN0dpK25BTWlvSG14TTBuTmxERXl5SUdNVXNyVTE5ZTNDdzRPdmxXaFVQUWpoUFFIOEk5YzlkY0FiQTJlVTRJZzdPVTRibDlWVmRXKzVzMmJuM09EV3dOV0oyZDBJbnVUL3kwNkdPUWdKd0pjWTg2Rks5bmZSUFlXSGg3dXdkNlNrcEtnVXFuOE42VWYySDZmVkZaV29yUzB0SUZ6UUs1MmlxQW1zalNSb1YwdG9QRThMNm1aZ2lBMENtWldxM1dBV3EwZXpERE1ZQUFkL0ZmbmR3R2J0MlE3bmM0ZFJxTnhWM1IwOUQ2NHZMaUNOOWcxQm5JTXcwanFxa0tob0ZjTGNDS0RFOW1iQ0c1eTlkVGJ1WkNZbUlqNCtIai94ZmNEMjdXTHhXSkJjWEV4eXN2TFVWVlY1ZE01Y0tYd0RTKzFrM2c1QnVUc2pIZ3hOQW5NYkRaYmxscXR6aUtFWkFGbzZyOHlOMFRLZUo3LzBXUXliWStNak55T1MrRXFQa0ZPcHE1NnFLb2lpL1B5b05JcnNUZHY5ZFRidVJBWEY0ZUVoQVFrSnljaktDaklmN1g4d0haMVVsSlNJckUwdVMzTmwzUEEyNWJtZzZWZENkQ0l0ODNNWXJFTTFHZzB0eEZDUnZuQjdLWUF1UzE2dlg1TFRFeU15T1E4UU02YnhjbEFybEdBVXlxVmpRS2NuTDE1T3hlOGJXK0ppWWwrNzZrZjJDNHZKcE1KUlVWRktDc3I4MkJwQm9QQkl5YnRLb05zaWFoNml1cm1aZGdabzlQcDBvS0RnOGN5REhNN2dIYitKWGxUeWxtV1pUZVdsNWR2YnRteTVSa1p3UEV5a0tPeTF3WXNUcTZtdW9HTlhrMXdyenoyVGZTY2l1eXRhZE9tYU5hc0dVSkNRdnhYeUE5c0RWbWE2Q0R3NWZGc0xJUkRCRFZmZ0NiUEVwQURtZ2htbXpadENoZzhlUEJFcFZJNWdSQXl6TDhNL3pvaUNNSTJxOVc2NGEyMzN0cTRhTkVpR3dDbkhPUmtMRTRRMlp1M211b1ZIdUlCY0NLNE5SWWE0dTA1RlIwTGZ2Ym1CellBZ05WcVJVRkJRUU1IZ2NqU3pHYXpaRXU3UXViQTVRQ055TlZPdlY3ZklTZ29hQkxETUpNQStGZmlYL3laeUhIYzJwS1NrdlVwS1Nsblphb3E3NjJxeWdDT1hnbmdMaGZZcTlWcUVSd2NMTEUzYjhkQ2l4WXRFQmdZNkw4eS8xUmdxNmlva0ZUUDZ1cHFEd2ZCbGVMU1pLRG1FOURjQWJVZTZxYlZhczFTcTlXVENTRVQvVXZ1YjhuaTF1bjErclhSMGRFNzNBeE9EbkM4THpWVkZpYlNBT0FhczczNWluc1RWZFBZMkZoSk5XM1NwTWsvL3Bvby8wa255L004OHZQelVWeGNqSXFLQ2lrbHltQXd3R2cwd21LeFNLRG1jRGg4WmcrSWdDYXpvL2tFdEx2dnZsdngwVWNmM2ExVUt1OEcwTWQvKy85OWhXR1ljWkdSa2VONG50OXZzVmkrSGp4NDhOckRodzg3UlpDamxEYndyUEk4VHdWQm9HTGlQYy96VkI0UzVIUTZxVHhjU05RUTVLWVE4YUVyUG9TdFZpdk1aak5NSmhOdXVlVVdLQlNLZnk1akt5d3MvRWVjcU5GbzlBbG9vc2RUcm5aZXpvN21TK1dVc1RPeWFkT21rTmF0VzkrclVDaW13Ujl6OW84VVNtbTJ3K0g0Y3YzNjlXc1dMRmhnSklUd01pYlhRRTJWc1RodkJuZForNXRjUFJVRGU4V2MweVpObWlBNU9SbWhvYUgvVEdEak9PNXZmNUpsWldVb0xDeVV2SjVpQm9HMzZ0bFlHSWVYMmtsa2FVOFNxR1ZuWjBlMGJObnlmb1ZDY1QrQUZQL3Q3UmNBK1hhN2ZkV21UWnUrbmpKbGlzNUxUZVhkNENhcHFPNWdYeXJQUWZWV1QzMkZoWGluWkVWSFIwdGUwK2JObTZOcDAzOWU1TkRmMnNaR0tVVnViaTZLaW9xa2dOdkxlVDI5TXdnYVVUdEZMeWRES1NVblQ1NE1iZHUyN1F5RlFqRUR3QzMrZTlrdlB1U2l6V2I3L0t1dnZ2cHkrdlRwaHNzQkhDRkVrQ1hkZTJjdVVGOFpDNDE1VGNXQTNtYk5taUUxTlJYdWJBay9zUDJWeFdReTRjS0ZDNUw2V1YxZExYazk1UUczamVSNUV1OVVLQzlQSjdOa3lSTEZraVZMSGxRb0ZBL0NIMy9tbDZ0NzBKNjFXcTByNzdqamp0VmJ0bXhoM1FBbnFhZ3lnQlBrSGxUdjFDeVZTa1VieXplVnE2V1JrWkdJalkyVjFOS1VsSlIvVE16YjN4TFlxcXFxa0orZmo1S1NFbFJVVkRRSTVmQk9YcGZiMUx4WW1vZGpRUFJ5MnUzMk8xVXExU01BZXZodlY3LzhCb0E3YkRRYVB3c1BEOTlJQ09HOEFNNmJ3VkZaQmdQMVptL2VNVy9lQWIxaVNFaVRKazJRbEpTRVcyNjU1UjlSRHVsdjV4VXRMQ3pFeFlzWFBlTFQ1TG1lM3NucmNwWW1PZ3JrYXFmTWpzWllyZGFCYXJWNnBqdmx5UzkrK1cxc2dwQ01zTEN3REo3blIxVlhWMy9XcEVtVEEzS0E4L2FpOGp4UDNRSkJFS2hYL1Q3eFBYeDVVVVd6aXVoRnRkdnRzTmxzYU42OHVSL1kvaXIydFBQbnorUGl4WXVOT2drdVU5bTJBVXVUcTUzMTlmV3BvYUdoc3dnaEQvdHZTNzljTDJFWVprUjhmUHdJbG1VL3lzbkorYnh6NTg3NU1vQVR3MFI0QUlJZ0NJTFkzOEs5VVRGbFR3NXUzaUFuT3NDOHdjMXV0Nk4xNjlaL1c3dmIzd0xZYkRZYnpwOC83K0g1bE1lbk5XWlA4MlpwYmxDVDFNNTc3NzFYOGNFSEg4eFdLQlNQQVVqMDM0cCsrU05FcFZMTjZOU3BVNWJGWW5tL2I5KytueDgvZnB3RndMblpHeU9xcUpSU3FSaW0yNEZGNWNVVnZBSE91MXF6SE9CWWxwWEE3ZS9ZU09ZdkQydzZuUTY1dWJrb0xDeVVDa0xLcTNMNEtnYnBmb3JKUVUzTzBoaEtLYkZhclVNMUdzM2pBQWI1YnoyLzNBQnBHaGdZK1B5dnYvNDZvTHE2K3FNbVRacnNKWVN3TXZXVTRGSk9LdlZpY0hLQW83NmFBdmxTVDhVb2dOVFVWRVJFUlBpQjdXYVJxcW9xajNBT01ZbmRWNFZiV1NnSEVlbTVENWJHbEphV3hzZkZ4VDNPTU14Yy83M21sejlCUFIwUUh4OC93T0Z3L0hmSGpoMmZabVZsVmJyVlUwWU9jSzRLNWtSb2pMM0pWRlZjalpxYW1wcjZ0M0lxL0dXQnJhU2tCSGw1ZVNncUtwTENPZVROVlh3NUNieFpHcy96Y3BiRzJPMzJDU3FWYW03cHVlTmR5eDNCeUVodmRWT2RjMzE5UFdwcmE1R2FtdXBIZ0wrQTZQVjZiTnEwQ1E2SEE0TUdEYm9tZzcxYXJaNDFiTml3WG5WMWRlOUhSVVZ0SVlRbzNPb3BKN085RWJuOVRRNXdMTXNTbG1VYnRiMTVNemlPNDFCVFV3T3oyUXdBaUlpSVFPdldyWDgzOFNnb0tBQUF4TWZIWDlYNVYxUlV3T0Z3L0c3bkJ0UG9ONndlbnl4N0VvUDdaeUlqc3o4ZVdmZ3F5a3pPbTJMQjVPZm40OHlaTXg1eGFwZlltZzdGRjg3ZzJKRmZrWjJkZzhMaU1saHNkamdjRGlJQ25EczFpZ2lDd0FpQ29LaXNyRXgyT3AydnFWU3Evd0hvdXZvLzgzRFB3bmR1aW5NOWZQZ3czbnp6VFFEQWtTTkg4TnByci8ycFkvZzl3bkVjQmcwYUJJUEI4S2VONFhyTDJiTm5ZYmZiRzN6dWREb3hZY0lFRkJVVklUQXdFRmFyOVpxUFRRanBIQmtaK1I3THNvdDM3TmpSakZJYVFDblZ3TldZV2tVcFZWQktGWUlnS0FSQllIaWVKMDZuazdBc0M1UEpCS1BSU0VRdnFEeVAxR0F3U0ZXaUt5b3FVRnhjakFzWEx1RFFvVVA0K09PUDhmYmJiLy9tZGZiU1N5L2h6Smt6QUlDQ2dnS3NXN2NPSzFhc3dLcFZxNjVxUFd6WnNzWG4vMTdyZW1nVTJMWjk4Q3hlL0hRM1JrNS9CdiszNEQ3ay9mZ2VIbm4yNHo5OUlaMDdkdzVuejU1RmZuNitSN1Zia2ExVkZlY2h2NlFheXNCUWhBUUhnSE5ZU0gyOW5vaU16YzNVaUNBSUlrc2JGeDBkL1JVaFpPYk4rTlQvOHNzdmtaR1I4YmNZZzBxbHd2dnZ2LytidWk3ZERQUGdTK2JNbVlPU2twSUduK2ZsNVlFUWdrV0xGbUh5NU1sbzE2N2Q3NW0zQi9yMzcvL2ZFeWRPWkFIUXd0VVRWZ1EzcFJ2Z0dCSGMzTDAwQ00vemNEZ2N4RzYzRXhIY0xCWUxUQ1lUVHA0OGlZS0NBdFRVMUVqOVBWaVd4Wmd4WXpCdzRNRGZORTZUeVlUZHUzZWpUWnMyQUlETXpFeXNXTEVDdDkxMjJ3MWZENDBDVzFGUkVVaEVjMHlaTkFZamI3OFhMeTkvRWNPNkpNRUpRRjk0RkhQdm40Q01qRXpjTnZraDdENVhCUUE0dXY1TkRNKzZGM2syQUhEaXhZZEc0dUZsWDdwNStVbE15aHFPZDcvWWlEbFRiMGRtUmlZKzIxM29ZbUNIdnNjOTQ0WWlJNk1YcGo3NkhQSnJIU0p0eE5aUGxtUDBnTDdJN0RzWUR5NTRCYWZQblVOQlFZSFVEcys3SjBGRmVUWEFxQkFhRkFDVldrdlVTZ1dvNEhTQm10TkpPSTVsbkU0bjAyUEFpUEJ2OXAxNVFhVlNmUW1nMjRGdjM4VHcvcjB3OExaN2NMalFKS2V1SG1OWTh1WWFPRzdRVFdNMEduSDI3Rm4wNkhFcER0aHF0V0xldkhubzM3OC9IbnZzTVRnY3J0R1l6V1k4OWRSVEdEcDBLQ1pObW9SVHAwNEJBTDc0NGdzOCt1aWpHREJnQUJZdlhveXNyQ3pNbVROSGJMcU10V3ZYWXVUSWtjakt5dkw1cFBRMWhsOSsrUVhqeDQvSDRNR0RzV1RKRXRoc05nQkFiVzB0WnMrZWpheXNMSXdmUHg2Ly9QS0x0TTlkZDkyRmtTTkhZczZjT1pLNkk4cW5uMzZLNGNPSFk4aVFJWGp0dGRmZ0hUVHVQWWJ2di84ZTc3MzNudlQ5NmRPbnNXREJBb2twTFZ1MkRFT0hEc1hZc1dPbE1aak5aa3lmUGgydnYvNDZoZ3daZ29rVEo2S29xQWdBOE1JTEwyRC8vdjNTOFZhdlhvM1ZxMWRmOXRyczJiTUhFeWRPUkdscEtlYk9uWXVKRXlkaTU4NmRBSUNubjM0YVR6enhCQ29xS2pCeDRrUk1uRGdSTE10ZTluanIxNi9INjYrL2poa3pacUJmdjM1WXVuU3BOQS9MbHkvSHFGR2p1aXhjdVBDRFhidDJ6ZjN3d3crakthVUJBRFNVVWhXbFZDa0lncExuZVViYzNNQkdEQVlEYW10clVWdGJTMncyRzNRNkhVNmZQZzJqMFlqczdHeHMyN1lOUjQ4ZVJXVmxKY3JLeWxCUVVJRGk0bUxVMWRWSnY1K1hsNGQ3N3JrSGdpQkk0NTA5ZXphT0hqM3FjUTRiTjI3RXFGR2p3RERNRmRmMjVkYkR1WFBuTUdIQ0JBd1lNQUNmZnZycEZkZmtoUXNYTUhQbVREend3QVBvMzc4L0ZpNWNDTWgwYzQrdDhzUUc5R2pmRXAxNmpjRFNWOTdCNlJMWGlWTGVnRmtqT3FIN3NHbjRidE42ekpwd0sxcjNtSUFTTzhXdWorZWpSWXMrT0dtbW9KVERJNE5TTUd6Mlc2NzlxdmVoUzRzV2FObTZFMmJNbTQ5Rjg1L0Uzbnd6K0xvVEdOQytKVVkvK0N3MnJGK04wVDNiWXRUanJuMU9yRnVHbGkzYVl2N3JLL0hLMGpsSWlvbEMxclFuTUgvK2ZFeWZQaDNqeG8zRDRNR0RrWm1aaVk0ZE95STFOUlVhQlFGUmFoQVpHVWxDUWtLSVZxc2xhcldhVVNxVkN1S3lLYXBYcmZsMjhPSUhSLy9Zc20wZmVxeWFvNDdTUGJSclNnczY5cUdsZFAzYWxYUll0MVRhZXNUamxGSktUNnhiUmx1MmFFdWZlZXQvZE8ybksyaW5sSlowMmJvVDlFYklxbFdyNk50dnZ5MjkvL0hISDJuLy92MXBXVmtaZFRnYzlNNDc3NlJyMTY2bGxGSzZZTUVDK3E5Ly9Zc0tna0FQSHo1TWUvVG9RYTFXSzMzOTlkZnBmLzd6SDNya3lCRTZkT2hReW5FYzdkV3JGNjJ0cmFVSER4NmtJMGVPcEhxOW51cjFlanBreUJCNjh1VEp5NDVCcDlQUjd0MjcwN05uejFLZTUrbkNoUXZwRzIrOFFTbWw5UDMzMzZlZmYvNDVwWlRTUTRjTzBYNzkra243bVV3bWFqUWFhWHA2T2pVWUROTG41OCtmcC8zNjlhTVdpNFZhTEJZNlpjb1Urc3N2djF4MkREVTFOYlIzNzk2VTR6aEtLYVZMbGl5aGE5YXNvWlJTK3ZycnI5T25uMzZhT3AxT2V2YnNXWnFabVVudGRqczFHQXcwSlNXRkhqaHdnRkpLNllvVksrajgrZk9sZVowNWM2WjAvR0hEaHRIQ3dzS3J1a1pEaGd5aHVibTVEVDQvY2VJRUhUTm16RlZmNjQ4Ly9wamVkdHR0VktmVFViUFpUQWNPSEVoLy9mVlhTaW1sTnB1TkdvMUdPbVBHRFByamp6OVNudWQvS2l3c25BQ2dHWUFtQUtJSUlXRUFnZ0FFTUF5akpvUW9DU0VLdFZyTkJBUUVFQUFrTEN5TXhNZkhJems1R1FFQkFXamV2RGt5TXpNeGVQQmdqQnMzRHRPblQ4ZjgrZlB4MEVNUFllREFnVGgrL0RoWWxnV2xGR1BHak1IT25UdEJLY1c1YytmUXQyOWZPSjFPRDh3WU4yNGN5c3JLR21ESnA1OStpdWVmZjk3ak03ZXFqUFQwZEJnTUJ1bnpqei8rR0dQSGpvWFpiRVpWVlJVeU16T1JuWjN0c2UrcVZhdnc5dHR2Uys5UG56Nk5ybDI3b3F5c0RGYXJGUk1uVG15Y3NjV2xqOGJXcmQvanZxd08yUC9OZXhnemVBZysrZmtjaE9JRDJISFdnSWtQUG8zYlI0N0Jvc2Z1Qmx0OUZMdFAxbDhWQ3huMTZISjgrT295dkxqc1pmUnBHWVNDZzd0UmFHVXdmZDRpakI0ekdXKzgrd0ZtanV2dGVnSjh2d0UwTEFGOHhSbmtGQmtRb0hEaTlQR2pVcHlhZDBpSHpXWURUeWtnOEI2cXA4dnJLVEFVVU14K1k5UERVeWVPWDdsay9zeWhHbnNadHUzT1JmNnZoMURQQitEQnA1L0JtSEgzWUdDWGhFdFBvZTgzQUJGSlNGQVlVV1VMUkdJRWcxMjc5dDBReHJaMjdWcU1HemZPNDdNMmJkb2dJU0VCYXJVYTNicDFRMFZGQlFEZ3A1OSt3b3daTTBBSVFmZnUzWkdjbkl3VEowNEFnRlIxTlNRa0JFcWxFa0ZCUVdCWkZwczNiMGFUSmsyd2R1MWFyRjI3RmpFeE1UaDA2TkJseDNENDhHRjA2TkFCYmRxMEFjTXdXTEJnQWNhUEh3OEFtREZqQmhJU0V2RDIyMjlqNTg2ZHFLbXBrZllUZjk4N0lEUXVMZzRxbFFydnZQTU9UcDgralpVclZ6WlFNYnpIRUIwZGpTNWR1bUQzN3QxZ1dSYTdkKy9HcUZHdVpKQWZmdmdCSVNFaFdMbHlKUTRjT0FDR1lYRCsvSGxwREQxNzlnUUFaR1Jrb0tyS3BXa01IRGdRT1RrNTBPbDBPSG55Sk9MaTRxNUhXNzlybHU3ZHV5TThQQnhCUVVGbzM3NDlLaXNyQVFBQkFRRUlDUW1SNnFzeERETzRXYk5tYjN6enpUZFQzS3BwZ0tpYUFoQlZVd1VBUnN5ZUlZUVF0eU9OMk8xMjhEd1B1OTB1cWFaNnZSNTFkWFZTWUx2UmFFUnViaTVPblRvRnU5Mk9HVE5tNFBQUFB3Y0FmUFhWVjdqbm5uczg2cjNsNXVZaUpDUUVDUWtKVjNXdWphMEhBT2pjdVRPQ2dvSVFHeHVMWWNPR2VURC94dTZMaElRRUpDUWtRS3ZWNHE2Nzdtb00yRmhzVy9NWjloY3llR3p4TW16YnN4ZTNkMURobGRmZWQzbFFBR2cwcnVhdEt2Y3J4L0x1ZlFYSUdHc0RDZmVLbDJFNUJ3QUZOQnFYZzdaRmVoOWs5ZTNzb3B3bUN6aWJIaGZPbjBkaFlSSENrMUlSRzZLOFhQY29Ra0VJcFlKVU84M3A1QmllNTVuaXZPMEp2VnEyZUMxQXEzMERRSUpTbzRZQ0FNZXo0Snc4QUFXVW1vWk9ZcnZORGlYRG82YXlFcFdWMWVpU05RVlp2ZHJlRUZ0aWVIajRaYXVoTWd3anFRc2N4MEdqMFVqZmFiWGFLNm8vTnBzTm9hR2gwaloyN0ZqMDZkUG5zbVBnT0E1cXRWcDZIeElTSXBYRmVlMjExN0IrL1hyMDZORURJMGFNdUtyekRBc0x3OGFORzVHYW1vcHZ2dmtHdzRZTlExbFoyUlhuWWVyVXFmajIyMit4ZmZ0MkRCbzBTQW95dGRsc2lJeU1sTTVwN3R5NVB1ZFFQbmRLcFJMang0L0g5OTkvajNYcjF1R3V1Kzc2MDIxM2hCQmNJWTg3UWExV3Z6Uno1c3huTm0zYWxDaXFwaktBRTRHTmNkdVRJUWdDY1FmbkVrRVFpTVBoOEhBcTZQVjY2ZDZ5V0N3b0xDeVV3SzF2Mzc3SXo4L0h1WFBuc0czYk5reWFOTWxqTUd2V3JNR0VDUk91K3p5bzFXcklTNnRkelgyaDBXZ2FBellsanYrNEVrOHRlQlo3VCthanRMUVFlclByeGxFMDY0Wk8wU3I4c081L0tDd3R4YW92TndDQkxkR3RZd3ppWStJQTFPR1hnOW5JUDdrTEY2cjVLdzY4WlpjTVJDaFliUHBtSGNwSzgvRFl1RXowdnVkRm1Fd21ORW0rQlpiYUtnaWg4YmlsWlRNb0JSWUJha1dET0RWM3hWdkNzaXdVaEFCVUlDekxFWjduR1VHZ3pOQ0hYKzNYcEhubWg1bnR3MmJ1MnJnRzU0cEw4ZTJxTmJDUUVHUjBhWTFiT25SRUlDeFl2Mm9kQ3M4ZnhjbThPbWw4ZlhyM0JLZlhJU0VqQ3c4L09BMXQ0c09Ra2RIbEQxL1lhOWFzd1IxMzNIRk5UL3N0VzdaSWJ2YnM3R3gwN05qeGl2dFVWVlZoekpneG1EQmhBbHEzYnUyeFlIeU5vWFBuempoNjlDajBlcjMwUHg5ODhJSGt0UjAzYmh5NmQrOHVxUWxYa2wyN2R1SGxsMS9HYmJmZGhsZGVlUVZ0MjdiRndZTUhyemdQM2J0M1IybHBLVmF1WElrcFU2WkluMmRrWklCbFdVeVlNQUVUSmt4QVFrTENWUVdmVHBvMENldlhyOGZodzRldnlYaXUxV3BSVjFmM3A0QmZlbm82amg0OU9xTlhyMTR2RlJRVTlQRGxXQUNnRUFTQkVkbWI2RFdsbE1LWFUwSE0xckhaYkZJSi9ieThQSnc5ZXhhVEprM0NvNDgraXFGRGgzcFVDZUU0RHJ0MjdjTFFvVU92eTNrVkZoYUNVZ3FIdzRIZHUzZWpRNGNPVjF3UE9wMU9zamYvOU5OUGpjV3hNWGpzcGYraWV2NUN6QmczQkJ3Rm9sdDJ3Y3N2ejRGUzNRVExYdjhYWnM1N0hnUDdyWUk2ckNtZWVlVnRwSVVDR0h3blJxVjlnK1VQMzRaUFcvZERpNlpoMEYzaEpEVEovZkhLMGdmeDFMOFhvZSs3SEtLYWQ4VnpDNmZnOU9uVGlPNDRCSm10TCtEbmJ6NEQ2K1NoMElhZ1pZb0dBWEI2eDZoSjhXbFFLQWdSQkNJSVBBSEFESjc0eU5UWC8rL2had2pScGl4NCtYVVVQVElQSTI3dEIwVkFCTzViK2hxR3R0SUNHSW9sRHc3QnN4OCtqUjlYeDZKOXdxV3FvOE1mZmg2UGx6NkJOeDZmZ3VVOEVOMnFLMTdxUHhsQStCKzJZRm1XeFo0OWV5U0QrTlhJMHFWTE1YUG1UR3phdEFrVkZSVll1blRwRlcvbzhlUEg0L1RwMDhqS3lrSk1UQXdVQ29YazVtOXNEQWtKQ1pnN2R5NG1USmlBbUpnWUFKRGM3ak5tek1EQ2hRc1JHeHVMMk5oWUNJSUFnOEdBc0xBd2pCczNEdlgxOVRDWlRCZzFhaFNDZ29Ld1pjc1daR1ptWXZYcTFSZ3pab3pyd2FsUVNEZkk1ZWFCRUlLSkV5ZGl5NVl0U0VtNVZOZHo0Y0tGZVBUUlJ6RjI3RmhRU3RHdVhidXI4cWFLUFFOYXRXb0ZwZkxxd3p1blRwMktPWFBtb0huejVoZzllalNtVHAxNjNkZkQ4ODgvangwN2RxQzJ0aGJIamgzRFN5KzloUGZmZngrdFc3ZkcxS2xUTVdyVXFJRnhjWEhOQmcwYTlOYlBQLys4MFoyR0phL3N6QU1BcFZSd3gyNUNvVkJRa1JDbzFXb2FIeDhQczltTVU2ZE9TV3p4czg4K1EvdjI3VEZ5NUVnSWdvQTJiZHFndUxnWTk5NTdyOGY0ZnY3NVovVHQyOWVEeVFQQWhnMGI4TnBycjhGa01zSHBkT0xubjMvR0k0ODhna21USmpXNkhrU1FHanQyTFBSNlBYcjA2Q0daRHk2M0hod09CKzY5OTE0cDlPYUtaWXRZaHdsV0I0UHdVSy9PMDRJVDlYbzlna09qb2ZaWUJ3TDA5WG9FUjBaZVUvU3Z3RHFnTjlzQUJqaWJrK01SemxGZFhZWGFlaDBjTmx1RGJBSTVxTW15Q0pocGQwOVZMUC9QZnhkRWh3Y3Rna2Nnc210ODJ1QndhTlNlaE5WbTBRUEtZR2g5cUtTc3d3S2pqVWQwK0I5ZmF2bnMyYk00Y3VRSTdyNzc3bXZldDY2dURxR2hvVkNwVkZlOWo4MW1BOGR4SG1Xa3J6UUdsbVZoTnBzUkdSblpZSUhaYkRhRWgxOGI4SnRNSmhCQ0VCd2NmRjNtd1dBd1FLMVcvKzQ4eUNsVHBqU0l1OXU0Y2FPSDUwL3NrWEdsY3k0dUxzWWpqenppOFZuNzl1MnhZc1dLM3p5K21wb2FhTFZhTUF5RGYvM3JYODdFeE1UWDNudnZ2WTlPblRwbGQ2ZGtjZTdONmE3ekpoQkNCSGtoUzQxR0E3VmFUY1hhYm1McEk3Rm9aVlJVRk9MajQyRTBHcEdUazROVnExWjVuT3VubjM2S1BuMzZvRldyNnhmUUxpYnJ5ME5CR2xzUDJkblpXTGh3SWI3Nzdqdm85WHBFUmtiZVhQWFlkRG9kY3J4QVRYUVNpTTFXNU4yalpLQW1yNXZHVkZaV0prVkZSVDFEQ0prQnYvamxieXFDSU9EdXUrOUcwNlpOd2ZNOFRwMDZoYSsvL2hvaElTRXJkK3pZOGVIdzRjTkxDU0VPTDNEanZjQk5LajB1Z3B1OEc1WUlicVdscFNnb0tNQ3NXYlBRcDA4ZnRHL2YvcWJKTHhXQmJjT0dEWmNZL2MwQ2JISlFLeWtwOFFBMWVjTVZIMHhOVEkxaUJFRWdKcE9wbTFhclhlaXZtZWFYZndxNFpXZG53MjYzSXowOVhYSWc4VHkvSlRjMzk3MTI3ZHFkQnVDUXNUZW51N2tNNys2eElJaU5ZK1RnSnBZY0Y3MlhZZzIzbEpRVXFXRGx6UUp1VnFzVmhZV0ZIa0hRTndXdzZmVjZaR2RuK3dRMWthbjVVajlsV1FTRVVzclliTFpoYXJWNkVmeVZiZjNpRjFCS0Q1ZVhsNytUbUppNDF3dmNPRGU0U2N6TlhYNjhBYmcxcHBhSzRKYVdsbmJOWm9jYklYOTZFcnpCWVBESjFIUTZuYzhLSFY3cXB3UnFEb2Rqc2xLcFhBU2dsWDlKKzhVdnJrcTlDUWtKa2JXMXRXOUZSMGR2cHBReXhCVTRSaWlsSE54T0JjR2RVdUFtT1JRdXh3UDFBWlMrZmdOcGFXbS9LUzNxYnd0c0pwUEpwMDFOQkxYTHFaOXlVR05aOW1HRlFyRVlRSXgvT2Z2Rkx4N0FreElWRmJWWXI5Y0hoNGVIZitNdWQwUzhOVFlSM0p4T3AwOXdhd3pVeEsxRGh3NDNWYU1ZNXMvNllZdkYwcWlqd0VjVFk5SVlxSEVjOTVSQ29WanVCN1hHN1EvMzNYZmZUVFdtd3NKQy9OVWFkYi84OHN2bzNiczNoZzRkS3FVYVRaNDhHWk1uVDhiMDZkT3YrKy90Mzc4ZjE3SG5iMHhZV05nU3M5bDhMd0N0TEpoWG5xa2daU2s0blU3aXJscEpSN1FBQUNBQVNVUkJWTk1tSmREYmJEYVBRTjY2dWpvcGVUNC9QeDg1T1Rtd1dDdzRlL2FzbE5IaExmUG16Wk15WlJxVHpaczNTeGtPZnpsZ3M5dnQxK0w5SlBJT1VxSk43WjEzM2xGeEhQY3N3ekF2d3BWUzRoY2Z3dk04amh3NWNsT042Y1VYWDRURllwSGVHNDFHeko0OSs2YWR3NU1uVDJMTGxpMzQ2YWVmc0czYk5uVHExQWtxbFFxdnZQSUtubnZ1dWVzK3Z6VTFOVmkrZlBrMWhlejRrb3NYTCtLNTU1NFQzd1lFQlFVdHJLeXNmRWlqMFFRMUFtNEtRUkNJdlB5UnU5S3VCRzRXaXdWR283RlJjSHZpaVNjOFVxM2tjdXJVS2FsZ1FtTlNXVmtwRlNmNFM2bWlITWRkMXZ2cFpWTVRjejRoTDhmeTY2Ky9CcWVucHk5aUdPYkp2eU1ZSFRod0FNMmJOOGYrL2ZzUkZ4ZUh2bjM3U2psMVpyTVoyN2R2QndEMDZkTUgwZEhSMG43bDVlWFl0MjhmSWlNak1YRGdRSjlWRms2ZE9nV05SaU1WRWF5dHJjWE9uVHNSR0JpSWZ2MzZlYWdUUjQ4ZVJWNWVIdnIxNjRmYzNGemNldXV0a2xxeWI5OCtsSmVYbzNmdjNraE12TlFPb3F5c0RQdjI3VU5vYUNnR0Roem9rZVlGdUxJaWFtcHEwTDU5ZXdCQVRrNE96cDQ5aTkyN2QyUGJ0bTBBZ0w1OSswcnhaOFhGeFRodzRBQ1NrNVBScTFjdkNRZ3ZYTGlBbUpnWTdOKy9INm1wcWVqU3Bjc1Z4MEFweGQ2OWUxRlJVWUdlUFhzaU9UbFoyaWNuSndkUlVWRW9MUzFGYm00dSt2WHJoOFRFUk96Y3VST0hEaDFDUkVRRTl1M2JCN1ZhTGMxRDA2Wk5ZVEtaR21XbGh3NGRRbEpTRW5yMTZnVkNDSTRkTzRiVTFGUm90VnFjUG4wYW5UcDF3b1VMRnhBWUdPaVJZN2x1M1RxTUhUdjJpdXZoK1BIamlJNk9SbEpTRWdCSWViT0RCZzNDc1dQSGNQVG9VZXphdFVzS2NCMDZkQ2kwV3UzYzFxMWJxNGNORy9iUnl5Ky9ySGVybEtMZHplbFdTM2wzcVh4UkxZWEQ0U0NDSUZDajBRaTFXbzNFeEVRUFZaUVFncEtTRWdRRUJIalkyOFRyNTZ0czA5R2pSNUdibTR0dTNicDV4TUFKZ29BZE8zYWd2cjRlUTRZTWtZNzN5eSsvb0UyYk5nZ0xDd1BMc2podzRJQjBMZXgyTzdadDJ3YWxVb2wyN2RyZFdNWkdLZlVBTlhreXUzZlRGVmx2QWc5UU8zLytmRVI2ZXZyU3Z5dW9BYTR5T2s4KytTVDBlajJXTFZzbVpRUG9kRHJjZHR0dEtDMHRSV0ZoSVVhUEhvM2EybG9Bd0xGanh6QnAwaVRvOVhwczNyd1pEenp3UUlQamJ0bXlCZlBuejVmQThPTEZpNWc0Y2FLVS9EMW16QmdwTFdYMTZ0VjQrdW1uWVRRYXNXalJJano5OU5NZUtzWFhYMzhObzlHSUtWT21JRHM3R3dCdy9QaHgzSDMzM1RBYWpkaTVjeWNtVDU3Y3dEYXpidDA2andUbXVybzZsSmFXUWhBRUZCVVZvYWlvU0xUellPZk9uWGpnZ1FkZ3NWanc3cnZ2U29Hc3BhV2xtRFZyRnQ1NDR3M29kRHJNbWpVTHUzYnR1dUlZNXMyYmh5KysrQUlta3dsVHAwNzFLRlcwYXRVcVRKOCtIZSsrK3k1eWNuSlFYKzhxNmxCU1VvS2FtaHJZYkRZVUZSV2h0TFQwaXRkdjU4NmR1TysrKzJDeFdQRFJSeDlKa2ZJYk4yN0VrU05IY1Bic1dUenh4Qk1BZ1BmZmY5OURQYU9VNHZ2dnY4ZnR0OTkreGZWdy92eDVQUC84ODlML2JkMjZGWjkvL2prWWhrRjFkVFVxS3l2QnNxdzByNkt3TER2TDRYQThQSEhpeEdnQVl2RktGUUNsSUFnS0FBcEtLV0ZaVmxKTFRTWVRxcXFxWUxGWVVGMWRqWnljSEEvbVZsVlZoYTFidDZKZHUzYkl5Y2tCcFJSbnpwekIrUEhqVVYxZGpjOC8vOXhqN2w1OTlWVzgvdnJyc0ZxdGVPU1JSN0JqeHc3cHV3MGJOdURvMGFNNGZmbzB4b3daSTdINzVjdVhTeVlNbzlHSUo1OThVZ0xDcVZPbll2djI3Y2pQejNkbGZ6Uld0dWlQMkU2ZlBvMXZ2LzBXcjd6eUN1Yk5tNGVwVTZkaTVNaVI2Tk9uRHpwMTZvVFUxRlFrSlNVaE5qWVc0ZUhoSkNnb2lHZzBHa2FwVkNvVUNvV3lzTEF3VGhDRU4rbmZYSVlQSDA2enM3TXBwWlNXbHBiU0RoMDZVS2ZUU1d0cmErbXhZOGNvcFpTeUxFdG56SmhCdDJ6WlFpbWw5UDc3NzZlYk5tMmk3dExRZE1HQ0JWU24wMUdqMFVqVDB0TG8xcTFiNlpBaFEyaFZWWlgwTzZXbHBmVE1tVFBTOGJLeXN1anAwNmNwcFpUMjc5OWZHa041ZVRudDNyMDdwWlRTNDhlUDB4RWpSbEJYTldwS3Yvbm1HL3JVVTA5UlNpbjk5Tk5QNmV6WnM2blQ2WlMrczlsczB1OEpna0N6c3JLb1RxZnpPTithbWhyYXRXdlhCdk13ZVBCZ2FRd1dpNFYyN3R5Wk9od09tcE9UUXdjTkdpU040WU1QUHFEUFBmZmNaY2R3NXN3WmV1dXR0MUt4UitldVhidm8rUEhqcGQrYVAzOCtmZjc1NTMxZWowMmJOdEZaczJiNS9NNW9OTktPSFR0NmZEWnExQ2g2K1BCaFNpbWxITWZSbmoxNzB2ejhmUHJkZDkvUmQ5NTVoMzc0NFlkMDRNQ0J0TEt5a280ZE85WmpqbzRjT2RMZ3R4cGJEM2E3bldaa1pORGk0bUpLS2FWMzNua24zYkZqeDJWTEp4a01CcHFXbGtZNWpxTjJ1LzJEMmJOblp3Qm9BU0FCUUJTQVVFSklJTU13R2dCS2htRVVHbzJHSVlTUXdNQkFFaHNiaTRTRUJEQU1nMDZkT3FGUG56NFlPWElrSmsrZWpDWk5tbURGaWhYNDl0dHZwUnA1SDMvOHNYVC85K3ZYRC9uNSthaXNyRVJHUmdic2Rqc29wVGg0OENDbVRKa2lsUzFhdEdpUnRNLzA2ZE94ZnYxNlVFb3hkdXhZbkRoeEFwUlMxTlRVb0d2WHJxQ1U0cGRmZnNHSUVTTWdzc3kzM25ycnhxbWk1ODZkdzRVTEZ5VDFVOTd6VTdTcE5SSjhLekcxNU9Ua1JZU1EyZmdIaUppdjJMUnBVekFNQTZQUmlKQ1FFS3hldlJvclZxeEFhR2dvY25KeXBDZDdZV0docEY0U1F2RHZmLzhiZ012emJMZmJNWC8rZlBUczJWUEs3d1JjcFdPZWYvNTVXQ3dXQkFjSG82S2lBanpQUzZ4SVBKN2MxcE9ibTR2eThuS01IRGxTc3VHMWJldXFkako1OG1RVUZSVmgyTEJoU0UxTnhiUnAweEFRY01uOGVlVElFYVNrcEZ4VjNCUFA4OGpQejhkVFR6M2xNVjR4K1Y2cjFVcnFlWEJ3c0ZUSnBMRXhGQlFVb0czYnRwSjZucGFXSnRYakYrVjZwUVJkdkhoUlVyMlVTaVhhdEdtRHdzSkNwS2VuWStmT25YQTRISmc2ZFNvT0hqd0lwVkxwTVVlTkpYbjdXZzhSRVJHWU9uVXFWcTFhaGNtVEo2T21wZ2I5Ky9lL3FyWGwzaDRZTjI0Yzl1N2QrOEdKRXlmcXZiVXJkODRvTCthWDhqeFBXWllWKy8vQlpyTkphbWg1ZVRsaVkyTlJYVjBObFVvRmhVS0IwNmRQUytXazVPc29QejhmRm90RlVyY0ZRZkJZRTNMelJXcHFxa2UxRjE5U1ZsYm0wU05WcFZMZEdHREx6OC8zQ1dvK0tuUTBDT2tRYldvdFdyVDR4NENhWEl4R0kxaVdSWEJ3TUxaczJRS2owWWd2djNSVkpYNzAwVWVsLzR1T2prWkZSWVdVRUw1bnp4NTA3OTdkNVNGaUdHemV2Qm56NXMzRGUrKzlKK1Vycmw2OUdvbUppVml5WkFrQWVLZy9VVkZScUt5czlMQ2ZpWiszYmR2V1o0WFp2THc4UFB6d3czajIyV2R4N05neFBQamdnOWkyYlJ1aW9xSXVlOU1TUWp5cXN3S0FRcUZBZUhnNFB2endRNmtza2lpaSt1MUxHaHREVEV5TXh3MVNWbGJtQWZMWFU4VGZFcHZ1aUwvVnZIbHpWRlpXSWpBd0VJTUdEY0xpeFlzOUdxWllMQlljUDM1Y2VpaGRhVDBBcmlUOEVTTkdnR1ZaVEpzMnpjT3U2bXRldlVXdFZqL1FwazBiWWRTb1VlKy8rT0tMYUF6Y1JBRGlPRTRLQlJFZEFZUVFYTHg0RWQyNmRVTnRiUzBVQ29Ya1FEaCsvRGg2OSs0dEhVOWNROUhSMGRpMGFaTlBPN0I4ek9YbDVjak16QlRIS2ozQTVDYU9xS2lvQnVyOEh3NXNKU1VsVXRNVmI2Ym1iVlB6RmRMeHpqdnZxTnlPZ2puL0pFQjc3NzMzTUdYS0ZLeGF0UW9qUm95QVNxVkNiR3lzVkErcnVMZ1l1M2J0a2tyc1RKczJUZktrNWVibTRxdXZ2c0tHRFJ2Z2REcWhWcXVSa0pDQXQ5NTZDN2ZmZmp2YXRXdUgvdjM3SXlZbUJsdTNic1dPSFR0dzRzUUpuRGx6UnJLeFRabzBDUXNYTHNTRER6N29rWVBYdDI5ZnZQTEtLM2oxMVZmUnYzOS83Tml4QTBsSlNaZzhlVEtPSERtQ2JkdTJZYzZjT2FpcHFZRmFyWmFldm1MbGlPWExsemM0MS9Ed2NDZ1VDbnoxMVZkbzBxUUoyclZyaDVpWUdEend3QU9ZTTJjTzVzMmJoN3E2T216WnNnWC8vZTkvTHp0dmpZMmhhOWV1SUlUZzdiZmZSa1pHQnBZdFc5YWdTc1cxZXBzM2JOZ0F1OTBPanVQdzNYZmZJVFEwRklNR0RjTDk5OStQSlV1VzRNa25uOFRldlhzUkZoYUd0TFEwRUVJUUdCaUl0bTNiSWprNUdVVkZSUjc5QURadjNvemh3NGY3dk5sOXJRZkExVTFxOE9EQjJMQmhBL2J0OHl5QW1wU1VoT0xpWXZ6d3d3OElDQWlRQU1KYkZBckZRd3NYTG5UdTNMbnovZjM3OXpld2k3cmY4NElnU0hGdWxGTGljRGdvSVFUeXB1TjZ2VjRDdHRUVVZMejc3cnVJakl5RXpXWkRjWEV4QUtCMTY5Wm8zcnc1RmkxYWhQSGp4K1BZc1dPd1dDeVlPM2V1TkE5ZHUzYUZ5V1RDL3YzN3NYanhZZ0JBMTY1ZDhmbm5uOFBoY09DSEgzNlF4cGVabVluLys3Ly93M3Z2dllkV3JWcGh6Wm8xVUN4ZHV2UVB1em1ycXFwd3p0MmpRTjdNMkdBd2VCU0k5RTZUa3NlcHJWKy9mZ25ETUF2K1NhRDJ4UmRmWU5Tb1VUaDQ4Q0JhdEdpQnVYUG5RcVZTSVRFeEVZbUppZGkzYngvaTQrTXhZY0lFUkVWRklURXhFYTFhdFVKU1VwS3JGcFZTaVJkZWVFSHlMQ29VQ25UdjNoMUJRVUhvMGFNSHpwdzVnL1QwZExScjF3NHFsUXFIRGgxQ1dsb2FoZzRkaW9TRUJNVEV4Q0FqSXdOV3F4VkhqaHhCdDI3ZGNPalFJVXlmUGgwS2hRSzMzWFliY25OemNmVG9VYlJwMHdZVEprd0F3ekJJVDA5SFVGQVFkdTdjQ1l2RmdzV0xGMHU5S3RldFc0Y21UWnBJSGpxNU1BeURYcjE2WWQrK2ZhaW9xRUJhV2hwQ1EwT2xpcktpK2pacjFpeUpxUVFHQm5yVTZZcUxpME9MRmkwYUhRTWhCQ05IamtSMmRqYU9IeitPaVJNbk5tZ3kwckpsUzhUR3h2cThKbEZSVVEwOGQ5dTNiNGZGWWtHM2J0MWdNQmpnZERxUm5wNk85UFIwaElXRllmdjI3WWlLaXNLenp6NHJsZlNKaUloQXQyN2RFQjBkamVqb2FHUm1aa3FlNk9lZWV3NlBQLzU0Z3lqK3h0YURuRHcwYjk0Y0F3WU04TmhQcTlXaVk4ZU8yTE5uRDNRNkhUcDE2b1NBZ0FBb0ZBcDA2OVpOK3Ird3NEQjA3Tmd4NDg0Nzc3Uy85TkpMcDJXTVQwUTRLcXFjY2lhblZDcUo2TlFLQ1FueHFLUkNLVVZrWkNTYU5XdUdFeWRPSUNrcENWbFpXVWhMUzROV3EwVldWaGFxcTZ0eDhPQkJ4TWJHNHQ1Nzc1WFU3ZDY5ZXlNdkx3OWxaV1Y0OXRsbkplOTF0MjdkVUZwYWlweWNIRXlhTkFteHNiSG8ycldyVk9ycThPSERxS3FxUW54OC9CK1hLNnJUNlpDZG5lM0Ixcnl6Q3J6RE91UnhhbUx3clR0T3pTOSs4Y3NORUxQWi9PK1FrSkQvQWJDNUs0TTRBTENRVlFZUmMwdVZTaVYxTTJJcTVwV0tTZk1SRVJGU1htbHljakpTVWxLUWxwWjJ3NUxtL3hCVjFHYXpTUjNhS3lvcVVGdGJLN1hIdTV6NnlmTTg1R2xTRE1NczlpODF2L2pseGtsd2NQQmNuVTVuallpSVdPZG1aaFR1V0RhdjlDdnFJblhFbGFORkNHVVlCZ3pEZ0JBQzhXK2xVZ21WU2dWM2NqMDZkdXo0dTJ2ay9TbkFSaW5GK2ZQblVWaFk2S0YreXF0MGlCNVFlWkZJdDZ1V0VSUGEzYm1mL293Q3Yvamx4a3BBZUhqNFkxVlZWWmE0dUxpdDFKVmM2bTF2Zzd1SGd1QjBPa1hQcUFoeUlJUklkalp4RXdGT285RWdQVDNkWnhPWG14clk1S0FtTmpJV0hRVVdpK1d5bFc4RlFTQTJtMjJZdTBxSFAvZlRMMzc1Y3lRbUppWm1aa0ZCZ2JGRml4WUh2SmdiQlVBRlFSQzlvNUFCR2hHTFY0cWJITlJFWUFzSUNKQ2FLdjhsZ0syd3NCQVhMMTVFV1ZtWlQwZUIzVzV2a0ZVZ0MrdGdUQ1pUTjNjOU5YL3BJYi80NVU4VVFraEtjbkx5UThlUEg5ZDM3dHc1eDgzY1JKV1VpbjBSUk5ZR21ZTkJWRVc5R1p0U3FZUmFyWVphclpiNm12NVJjdDI4b2xWVlZaSmRyYnk4M0tkZHJURVBxRmpPT3pRMDlDVkN5RUQvc3ZLTFgyNEtjR3NhRXhNVDJxbFRwOU5mZi8yMXpRMWVrcWNVUG1xMnVWVlM4Vy81NTVCL0xvYSt5SHRjWEZmR2RqMWFoNW5OWnB3NWMwWmlhMklPcUhlYlBJZkQ0ZUVCRmRYUHUrNjZTd0hnbWZyNmVuODViNy80NWVhUzRabVptVFVwS1NtdlhiaHdRWkF4TjFmNmdmc1A5eXZjV1FuRW5VSUgrZVowT3FYTlhUVUU3ZHExKzBQQVRmbDdhejVSU3BHWGw0Zmk0bUpVVkZRMHNLczFWdExiN1N3Z0FKaGx5NVl0Y0RxZE42VHhpdGhUMGJ2cXhKWEVZckVnTUZBTFFoai9VdmZMUDQyNTNiMTE2OWJxbEpTVXo5MDRKc2pCalJBUnh3VEs4enpoT0k2NmFSc1Z2YVJ5RmRYYlk5cStmZnZyN2t4UUJnVUYvcTRENU9YbG9iYTJCbnE5RG1hekNWYXJCWGE3cEhMS0tuUTRpUmlkTFBlQTF0YldUSFU3QzI2SThMd1RUaWVQYXoxdm5VNkh5TWlJYStvNWFUQVlFUklTN0RPUzNDOSsrU3RKVUZEZ25QejhDNVczM0pLeUZZQTNjNVArVHhBRWdlZDVPSjFPS0JRTTRUaU9LcFZLaWFIWjdUWllyUmFZelNibzlUclUxdGFnb3FMOHVyYnVBd0RsdGR5bzNsSldWb2F5c25KVVY5ZWd2bDRIZzhFSXM3bEJqd0kzdUVtZ1J0eFVsZFRXMXZRTkNBaDRCamV3THB6cmFTSGd0NXkzYUFDOVdqR1pUQWdMQzhYdm1XTy8rT1VtRVdWOGZQekR4NDhmcSt6Y3Vjc3hYOHpOL1VvRVFRRFA4NVRqbkdBWXppdmtRd21WU2cyMVdnT05KZ0JhYlNDQ2dvSVJHaHJhSUNmNGR3MjJzV3FYVjVMUzhqSWNQM3NCT25kR2djRndLYW5kYkxiQWJMV0J2UVJzSWxzanZDQVFLbENtcUtnd0lTZ29hRDZBbEJ0THF4a3B6dVphVlc1NWN1OGZ0YzhmSWZwamU2Qm9sb0dRcUJzVEZrZzVPNncxOVZCR1JFT2pWUU53b21Mckp0aHNnS3BwR3lSbHRQbGIzT20vWlY1dGhUbXdPS01SblJMWHlIL1lVYlhqTUNKdjdRZVZtK2c3aWs2ajdGZytBSUxZUWFNUkhNcGN4N0ZFSURvbDRXcDN1YVYxNjliM3IxeTVzbnphdEdubEFNUkFYZkdWaXA1U251ZmhEdHFWUWtBdWVVY3Q3dEFQdGJzVGxoYkJ3VUVJQ3d1N3BxWXdqdEpjR0l4YXhMWkxhbkJPeW10V2s2Z1ZpejdZZ1AxRjVTQjFaU2l2cVVmWHVGQW9MU1pZTEdhVWxKV2hzTjRNd3RrZ0NFQ0lFc1RwZE1MSmNjVEJPUW5nc3F1OWsydCsrcm40K0NIa1QxaVFsT0thMVVNeFArNWE5dnN0Ky93UlV2TFpjZ1JOL2d4aHZRUC84TitxMi9ZWkRyL3lKYlROV3NCUlZvQm04OTlGbS81SlVBVUV3bkp1Tjg0ZHFFS3p6SFovQzJEN0xmTnFPTEFHaGZwTXhLYU9iSXpuSS8rOXp4RFk5MVpvM0VTZlVXcWcxZ2JnNHRzdlFKMStHMExERzY2bnl1OC9Sc0R0YVFpTDhSeEx3ZnRMb2V6MUdKSTZSRGJZeDN6aVI1UVlPaU0yTmZGYU5KNEI0OGFOSzV3MmJkcGJNdFlteUZnYjRJcHpnMXNscFF6REVJV0NvUTZIQWtxbGF4TXpFZFRxUzIzK2dvT0QwYkZqeDZzbUFwYmptM0gyVkJMaTA1bzFPS2RyQnphbzBUK3REWG8yRFVGaG9ScTc5cFppN3prZHVrY29ZTmJYNFdLZEZZbmhnZUR0UUVWMUhURXJsVkFJVG5DdUNHVkNBTVpTbS8vUXlEZjJ6TXpKVEVYSEc1eGJJRGRpL2pZMWx2bkQ5d0VFVURCdzZxdkEwU0FFUm5oNmpTZ0VFREN3VjVWRDBJUWpNUHpTWXJaWGxZSlhoaUlvS3ZUU0Rxd2RvQVRPdW1vSW1qQUVoSHFtdERpTmRiQVpIUWlNaTRkQzlkdEJtQy9kai8yTFY2TEgybzFvMGl3VUVHeXcxbk5nR0EzaUI0OUFNRk9PL0FLTGova1E0S2lwQnNjcEVKUVFBOCtISFE5YmVRVUVWVEFDWThJOXZxTU9LOHhWdGRERXhFR3QxZHhrOCtyN25BalBnVG9GVUtzQk5nc1FIQmZoT1Q1bkRQcCsreG1JYkk2MHpkcWhlYk4ycVB4b0NZQ0dhNWM2bldqLzNDb1FaY1BQemFjT1FObHFPb2dRRGlpVjBqaW80RVQ4N2ZNUUwvdnMwakE0V01zcndFVEdJU0JRMDJDdDhFYkhmVlVWVllWeFRlTFdBK0I5cWFTQ0lBaUVFT3AwT3NFd0JBNGJKWVF3MUtYQktLRlV1dE9zVkdvRWFOUlFPT3pRS0xVSURRMTEyOXNFMkNyTFFRTWlQYTREQUhDNktuQWtCRVRnUUoyOE5CL3ljMUplcXplaW9xSWVhazZQa3FwSzFOWFZnemhaMk13bVdOUXExT29NSUFvQ2NDNjdtb0pRY0N3TEVFcW9xNlk2c1ZoTS9aVE91dmtjbzBTd2tvQ1FHdzFzbHdEdXR6QzJhOW52dCt3REFPZWZtWWlMdVNvd1NpV0V5b3NJdm4waCtzNGQ3ZnJTZUFycit6K0RwR0V4cUR5bEE4dzZkUGprSnpSTE11TFFmVk5SWjQyRXlsSUdrallSdDc0Nkd5b0dvRTRPaFcvTlI3RktBWHZCR2NUUFhvSHVkN2tLRWhiKzUxR2MzRlNDaU9ZUk1GNm9ROFozR3hFclBkd2RPUG5rVEtnR3pVSzdyQzVYWGhzL3JJZXErd1FrTkhlckU0cEFCTW55UndnVlFIbkJhejZxc1hQd2VMQXhMYUdDQVNaZEtQcXUraENSTVJwUVV6SDJUTGtIOXRDV1VBczYyQk1HSXV0VlYwaysvZTdQc1dmUkp3aHRtd0o3MlVVa1Ava0oyZzFzZnBQTWErUG5CSUdIOGVlVjJIN2dLekNXTXFEMW5SajR4aXdvQVZTdSt5OU9mYmtEK21OMUdIeG1MeUs5c1pyakFIaXVKL2JzejlqOS9FZXduUDRWcmQvZWk3YTNObkdwWk1jMllkL0xYOENTVXdKUzhEaktQOUVpK3JaSDBHVnlQd0JsT0hEM2s5QVZua2ZJN1l2Ui8rbExwZHJ0dVh1d2U5WWlNRTFhZ1MzTVE5eERMNkhiWFgxOXJaV0g5eHpJTHV6WEsrMllTeFdsQWtBRVVTMTF1MGtKejdKdzJ1MVVTUWpzT2gzNDZIZzNhMU9DNk10UTlRdUxXcFVkUWVwZ1hGVCtpSUIzWGtDZ3ZReDV6endITnJRWlVIOFJRVVBub3ZjVDQwQWc0T0pyczNGeVl5SENZalhnV0FkSW0yVDNmSGllMHpVQm05VnFsY0k2YW12cm9LK3Z4dkhDU3NRRmg3cmFjOW5zSUx3QW85RUdvOE5KRkZRQUZTaWhEQWhEd0l4YnNpTDhrVFU3bjZxdjB5ZE1HejhZS2VvL1F4SDliY0QyZS9hN1poRGxuWEJHOXNLb2o1NENNZVhoaDh6eHFKZ3lBZ254U2hldnFEa0ZSZVptakY3ZUVRQUxKNnRFMWVvM1VhWHFoOUhmTDRiQ2FjQ3VJWm5JMnpNTzdRY2tBcndUeXJRc0RINXVDcHpsZTdGK3dCSzBHcmNMRVlIVk9QZmhYbVRzT29XRU9BQk9GandqZjlnSU1KdzZBazE3M1ZXZGcrWENCUVFuOTJ6OGY2a0F3ZWtOYkJIb3MzNDcxQ0V1NnA3M3doU2MrV29YK2o0MkhPWURQNkErYkRER2ZlRXFoTW16ckxSdjRlY2ZvTm5UbjZIVEdOZlRuV2VGSzQ3eHhzMXI0K2NFZ1ljVnlSajc3WnRRQ3dic0hOUUQrWWZ1UUp1ZXNXZ3lmZzZhakIrTEg5cE1kQU9ZMS9pZEhFQTlnVTNUYmpDR2ZqVVlSKzdxQnRCTGF5Mnc2MmdNL1dvMGp0L2ZHNm83MzBMYTBHVFprUkxSNTh1dlVQTCtZN2hRVDJYSHMrTElZM09Rc09CcmRCemNHb0xwUERiM200SDZNWHNSRmRKZ3JUUmhxV0xhc21YL0xsaXc0Qm1CVWdpRVFJRE1ZMG9wQlFVRXlpaWcwQVpRRlp6RVhGdER0YUdCVUNqc0lDd0xjMTAxNG9lUFJHeUxKb2lMamtadFJRVjIvdWRWSkkxOEdjTm5EUUdjT3V3WU9BQ2w0MGFpcWZvUWpuNXlBVU1QYjBWNGtJRGo5dzlHbGZTZzlEeW5hM0xYRlJRVW9Lek1uUU5hWDR1REo4N0FvUXBDc3NJSnM5a09qbVVoY0FLYzFFbkFTNG50RUFRUVFhREVrZHpweWJuOTJ3MnRMem1QVjdjZndhalVFWWhUd1M4K0pMWlBMMWVublpCV2lHa0QxSjhxUjBLOGUzRnFVbkhMNkk2U2FVQ3BCblFuVHlLdTc1TlFBSUF5REUxNnQwZjE2ZFBBQUpmOUpLNm5xNHFwTXFFN29xSXVvajdmam9nT2tZanZHWWtqRDB4RDhwQitpQjg0RFBIdDVmYVdRUFQvNmRRZmZLWU1xamUrZzl6dmRzTm10b090TGtLSXU1eTBOcTBybUZNUFlOY2NCK0o2ZEVYeXlKRUlVcnZucDJjdkhQalhMRGpQamtCVWozNUlIdERsSnBwWFphUG5CQUJSbVpsUU13Q1lNTVIzYjRYNjdHeWc1MDJRY0dQS1JYVzJEWXE5MytEWVFaZHFUcDJsMEJXWUVkWFI1MW9aT0h2MjdMTUxGanp6c1ZzbDViM3NiZFNOMEpUbmVUQXFCZ0xsaWMzT1VxVkNBY0p5Y0FaR1FDQXNqRVlqTkJvTkFtc0tVSCtzQ0h6MGVoeXIvd1VVQU90MG9ENm5CQkdxTTJEU01oQWV4QUJnRU4rM0o2ck9OTGFxcnRaUVdsS0MwdEpTVkZkWG9hNnVGa2RPbkVLSlE0SFdvVXJZN2E1cUhWUVFJSEFjR01KQXpRQzhRQWxBQ2FXVW1mYjhmOFpOSGRybjZaN040ekd5YngrMDV3cXhyZERpUjdCRzZjVmx2dE1HNGZkRmtCRDNsVmVpODBmYjBIdnhkS2k1TXV3ZlB4UjV4MnArODFHRFdqYUhzYUQ0bXZheDdGK0pneCtmUkpkMy9vZVJXN2FnNi8xRDNkb01vRXpzZ2RIN2ZrTEtrRTR3N1ZxRkgyNS9ES3g3djZZUHZJd1JYNjVBZUh3QXppKzVCNGZlMzNIVHpPdmx6c25uWG96aUpsbDBBcUNLUlB6SUxDUm1aU0VwYXlSNmZMb1dUVzhKYkhTdEJBWUd6aW9wS2U0TFZ5VWVEYVZVRFZmNGxvSlNxcUFBUXlsMTl5cmx3UVBnT0JZczY0Q0Q0OEJCZ05WcWhjbGtoc0ZnUUYyZERqcU9BZHVxTFVpWExrakt5a0tYTi8rSGxGN1hGZ3B5VmNCbU1wazhlb0FlUDNVS1o0d1VIYUkwWU8wMjJPME9zS3dEQ2dDVXRST0hLMmFOVUVFZ0JHQ3Fxa3FUUWdQVlR4VFZHbHpUWnplZ3hFSVFIT0NQNzJwTXF2Y2VjQmtyVEhtb09RZEVkcnk4U3o0aXZRT3E5dTRGRHdCT0F5cjI1eUJTVm1HMjZ1QmVsL0czL0ZmVTZWb2hxa1VBQUJhc1JVQlVSaiswbS9jc1V2ckZ3cGd2NytMTkl1Zi81dUQ4OXF0amJRbWp4NEhkdHhwbEJRYjNmV0tGcGRwd3llMFVHUW0yckFST3VYbWpyQXdCcmRJUkhoTUVDQmFVL2JUM2txSGFaQUxDNHBBNGFnSzZ2N1lVeXBKenNMcDNaazBtQk4zU0NTbjNQb3hPRDk0Ry9ibThtMlplTDNkT0FGQzNieDlZd1hXOHlsL3pFTmtoN2VyY2RwSGhzRnloc1ltM0tEVWFzSFgxVi9mUElXMFEyOW9HcXlrY3NkMjZJclpiVjRTM2FBWlZFSFBadGRLMGFkTjd2L2xtVFJNUjNBQkk0QWFBb1FMUHVPeHRUc0lUUUhCeWhHVTVPRGduV040Sm04MFZ0T3NDTnc2MGFTREtDcXRnaXdpSHRuVXFvbHEzaERva0VFR2RPb0JtSDRiZUlnQndvbkx2d2NiUCsyck8xNVhZN2k0WVdWT0tBM21Wc0xGMjdDbTNRV0R0Z0FBa0JDbmhwQ0FxeHRXOUJ0UlZoNDRCbUtpb3VIbVBqdXpkN1lGdk4rTG9rUmpvYTJ1UjBMRW5SaVJwL0FqV2lDaHFEK0xIY1hlQXI3NkkwQWRlY051QkdwZjRPeDlIM0E5MzRvY1JKNkN5bFlHa1BZUlcvUytwbGR6SkxkZzZjU3ZzQldmUWZNbGJjRG1hcXJGcjJGandDYWxRb3g1Rzh5MFlPRlFlaXNHaGN0TTNVTWNPUit2QkhhOThFeVgzUjc5L1Q4SCsyL3Nqb0VVTE9FcUxrZkxTYW5RWTZuSW1hTHFNUkt1V1gyRjl0OTdRZEJtQjBSOHNRdFNnU1ZDL2RSZTJURHdLeGxhUGdPaExEZ0R6d2YvaDU4VmZJcUpOQzlnS3ppQjY1Z0tFdWFmaDdJSTdVSFJSaTVBWU5YUzUxZWo2d2VNM3pid0tsemtuQU5BcXl2SFQ3ZVBBV01yQWRIb010MlJFQWREaDREMzNRRmZ2Z05GUWdRUGpSa09wYllFK2E5K0UyTUs2OWR6NTJQbllPT1F2RFViN2w3OUVxNTRKeUZ2eEtQTDJGTUdhV3cxU2NpOEtYOU1pYmZuL2tOemV0VmZ5UFE5ajF4T1BvT3lURU1UZCtUUXlwZzlHN2RaM2NQanRMV0FyTDhMQi9Zck4rMWVpeVgwTDBYbDhUM1I3ODNYc2ZuQXFTdDVMZ1pLcmhkbVNnQ0UvZll6Z3k2d1ZRa2puVWFORzNRSGd2ektWbEhmVFZJRlNTZ1dua3dvQVZTclZjRHFkNERpT0VKNm5uRUJodDl2ZHdidXV5aDlSUFFlZ2F2dEtiRHorRTNJaUF4QmxEVVBmRGQ4akpyNHZ1ajdRRWo4UEc0N1FXQzE0cW5FMURBUWFuQk9oR21uUWdRQUFJQUJKUkVGVVZMaWlDaW9tdUplV2l1V0k2cURYRzN4MW1YSW51SE9FNXdWQ0tWWFk3YmFKS3BYcWZ5N3JMNGR5Z3dVYWJSQ2l0SCtPY2EyNnVob3N5eUV4OGRxb2JYWjJEbEpUVzBtMTYvK29mUURnN0ZPalllbTZGQjJISllJVGdoRVVGWFRWKzdyQ0VrSVFGTlV3ME5GUlV3a2hJQlRha0VBUDljTldXUWtuVkFpT2o4SDFjT2RRMWdwemVUVlVNZkVJQ0xxS2VCNkJoYW00RXVyWUJHZ0NsVjVmV1dHcHJJVXFJaFlCSVo3SFlnMDFjQmdjQ0V4SWhFSjVrODNyWmM0SkFIaExIV3hteGl2YzQyWVJBZGJ5VWxCTkJJS2lRcTU2clpTVmxjMU5URXphQmNBQ1YybHhPNldVSllSdzdyTGl2SGRKY2ExV2k4REFRQVFGQlNFa0pBVGg0V0dJakl4Q2JHd3M0a0lEMGF4WkszVHVuWW5rcEV0QnVHeGRGWnhNTUFJamduNGJZN05ZTENndExVVlZsYnkybWdrV2k5V2REM29wYmNycGxISkJpU0M0Z25CTFMwdmlWU3JWM0V1UFN4VVNJc1BobDZzVGRVUWMxTmU0VDBCYzQ4R1dtcGg0bjlZSWJYekNkUjAzVVFjaTVGcHFiVEZxaERSUGJ1U3JRSVFrKy81T0hSWURkZGhOT3ErWE9TY0FVQVJGSVRqb1psMTVEQUlUa3E5NXJTUWtKRXo3OU5OUGN1Njc3MzRlQUE5UWliWGhVb0ZLTVplVUtoUUt3cklzZFdVa0tLQlNLV0d4cUtUT1lvR0JXaGhZTzhwS1N4RVZHWW1nSU5lRXFhT3VmUDB1YTJPNzFJVEYxVEpQQkRWWGFXOEhIQTRXSE9lUk1pVjZRZ21sbE1URnhUME9vS3Nmb3E1TkVtZjhIMUp1VGZGUGhIOWUvMUpDQ09sMHh4MTNUSERiMlRTVVF1NUlZRVJja0dVbGdPTTR3bkVzSEE0V2Ryc0ROcHNORm92Vm5TU3ZSMTFkTFNvcks2WFdmVmR0VzJ6c2k4cktTcS95M2lhWXpSYlliRllQcHNheW5GUmpTUkI0S2NIZGFyVU1aUmhtcnY5eVg3dUV0TzdtbndUL3ZQNGxKVEF3OE1IYzNQTkhVMU5iSHdiZ2RERzNTN1kyU0lueVVyb1ZXSmFEUXNGS1NmSTJtd3BtczlxZEpLOURVRkFRUWtOREVSRVJnZmo0K0t2a25ENkU0emd2RmRSVlc4MW1zOEptczd1OW9LeFUybHV1Z2xKS3liMzNUbE5vTkpySC9aZlpMMzc1NTBuTGxpMm5wS1NreUQya0tqZUpZdUFPL3hBRU1RVEVDYWZUU1RpT0E4dUtyTTBPbTgwS3M5a01nOEdJK3ZwNlZGVlZvN1MwRkZkYlA5SW5zTGxDTzZyY0txaEJxck5tczhtWkd1dlJBZHBkSlpOUVNwa1BQdmhnTm9CQi9rdDg3VkpkWFkzUzBqTC9SUGpsTHlzS2hhTC80Y08vakJhQmpWS3FFc0dOVXFxZ2xETHU2dGx5bFZUQ0ZZZkRCVzZYNnJZWjNDcHBGVXBLU240YnNCa01CbmZQZ2hyb2RIcVlUSzYyZVdMTFBIbU5OYWVUSS9JdVV3QklmWDFkcWtLaGVNeC9lZjNpbDMrdVJFUkVUTnV5WlhPU0Y3aEpzVzBBaUNBSU10YkdTYXpOVlpEUzdyYTNXV0F5R2FIVDZWRmJXNFB5OG5JWURJWnJCelo1aHlsWGVXOExyRlpQVURPYXpLZzFtS0EzV1dGak9ibkRnQkU0NjZ4WE51eE1YTEJ1TC9hV21TNGQyR25ITjdzUDRjbXZ0dUhmMjArZ3lrSDlWLzk2aTlPQzJ0UG5YY0drdjFNcVZyK0FnKzl2dSs1RDVDdC94WTdaeXozR2FEaTJIY2VXek1lKzJYTng1cnU5RUg3WEx3alFuOWlQOHgrK2d4TnZyb1RENjd1cXJTdHhjUFpqT1BMS2g3QmFaYi9rck1PKysyZkM1RStHdVY3UzlOWmJiNzNkRFd3ZVFic2lhL04wSkhneU54SGNyRlliekdZTGpFYVhTbHBkWFkyeXF3aFM5Z0MycXFvcVZGWld1aExjM1hGcUxoWFVKck9yMldHdzJNRVFWeUVQd2NrUnB5dG1qVmdORlFObmY3VDVZUzRxRVNOYi9qOTc1eDBmUlozLy8rZk1sdXhtMDNzMmdTUWtoQllnR0NEU0lRS0NvS0FDSXZZR25PVzhzNWV2RFU4NXozTHF6M1lxbGtOUkViRmdwQmNGUktRSENNMlFoUFJlTjl0bmZuL3NKdGtVVWhDVTAzazl6QU96bTVuNXpPZnptZmU4Nit0dDRLSDN2dUZBdldzTGY1VCtIVXR6Yk13ZE1Zamcyanh1WHZIenI5ekFDdHJBZEpRdDF6N2FWSGIwcTJSa1hSbVd5dHF6UHNUakx6MUw4TVV6OFN3aXl2bGlKWDdESnhFM1l4VFpqOTlNNW9iY1gzR0ZLakpmZUlYcXpEMWt2dnB4aTdtbzN2dzJQL3pqYTZMblhvZTJhQ09iN251MXVjSktIVXpNRUMwSDN0K2c3S096QkoxT2QwTm01dUhCSGxyYjZhS2tMYlMybHY2Mnhxb0VsMGxhWGw1QmNYRXhKU1VsWFJkc2hZV3VaaXpWMVZVdFRGQ3IxWUxOMWlqWUpQeTl0WUpXRkJBRkJORlZ4aThBWXVISjdOdVArTVZ5LzZqZWpFbStnTGtKQWl2MkZ3QldOaHd1NGRaSkl4a2FFOEg4UzBkZ1AzYVVnMlpsOGM4V2lyNWV3djZYbHVLb084bmh4WXZadi9oNXFpcWtSaWxGMXB2UHMvMk9POW43OGhJYVRGMTdwY2gxaFJ4YS9BamI3MzJFZ294OFQ2bEg5anN2c2YyT085bjkwcEtXbWsrSGd2Y0l4OWFhaUp2Y3A4WEhnNTk1ZzRSTEp4STFjUmFSS1NHWUNvdC94VXdFTS9LajVhVGVmdzJ0S3pDelAxeEs3TUtINlRGcUdJTVdQWUw5dS85UzVtSFZSTTIrbk9ML3ZvZEZlZU9lTmZUdTNmdEtXZ1lSTkI3bWFLUFcxbFJMNmhsSXNObXNXSzB0VGRMcTZpckt5c29vTEN6cW1tREx5M01WdUxlT2dycE1VRmRhaDBlVDQrYUFnU3VDSzFvczVybkh5NnVuSjBTRTRHeW81MVNkbGNTSUVJNlhWZ0ZPSEpLTVN1VytuS2hDSmRkenN0S3VyUHhaZ2svL1lZU05HWUtvQ1NJNExZMnd0TEhvOWE3NVB2SDBBbzd1cVNIK3RsdlI1RzlrdzkwdmRrbGJMbHJ4R2VvaDA0aWRFTWRQMTh5anZNSUJPTWk0ZXc2L1pEcEpXREFmSC9NZU52NzEzMTA2WDkzUFAyQlBISTdmYWJJcmk1Y3RJanUzRi8wdUgzWU9ac2hDOWRFOC9Qc25Vbi95R0RhdlJBSWl5cW5KYW5hWGlCRXBCSWw3S2M2eUtSdnFMRUd0VmwrY241ODNtcWJjdG1aZlcyTkRKemVkZUl0QWdrdTQyZDM1YlcyanBLV2xKZVRsNVhjczJHdzJHOFhGcmxyUTZ1cHF0d25hNEJFRlBVMTZoOU1weUxJczN2SFFZeXFOUnZNWHM4Mkd0MWJGcDJ2V2NzMktuOUZyMU5UYUhZQTNJK0tEV1BGakJtWDFEYXpkdW85Y1djQnNkU2dyZjViZzIzc1F4bUZKaUxvQUlsSlRNYWFtb3ZNR0tDTjc1UzZTSG4yY2lPUmtCaTU2Rk9lNjVWVFVkMzVPLzZsWDAzZktLS0ttMzBiOE1DYzVHektRUzNkeWJLT1RvWXZ1SWlneGtmaTc3MFhjc1lLcWhzN1BWM3Z5Sklib21IYS9hOWkvZ20ydjdTTnQrUkw4Zk04Rmxib0pteGxVbW1LMlRCeExabm91YWowNDZqek5CaDk4WW5UVVpSVXJHK29zSWpJeWNuWktTb3JPcmJXMUNTUTBtcVh0cFgrNHRMYkdLR21EMnlTdHByeThuT0xpSW15MjlsOUNhcGNKV3RpaUg2aXIvck94WktwWlcydE14SFU2bmE0MmRwSWtDSUlndlBMMFkvT0JWTDFXUzRQSnlkWFRMK0VTcDVxOU96ZmpwM0hWaE40Mll3cld0VHU1ZldrV0EvdjBaWHpRQ2J3VmRvOXpEMGMxRGRYK2VJZTUxU1R2VVBTKzFWZ3FnVTc2MUJvOGtpSDF4a2pLSzh0eGxOWml0UlN5NjlZYm05UjlyNlFrc0FLZFVQL0xPT0EwTk9rVk83WVJjUEZzQWtQUEZWZThBYTBlblBZSUp2NjBEMDFJRUQ4c0JyV3Z2dTJmU2s1bDM1eEZpS0k0Yk0yYTFaTkRROE8rQmV6dUh3ZHVXbkZjeWJ1Q3V5OXBrNXp4MU5xMFdsY2dRYWR6QlJLcXFocE4wa0ppMnluZlU1dk41aVk2SWxjdHFHZVQ0NWI1YWc2SFEzQUxOY0h1Y0FtMWpBUDcvVlFxMVh5QVBxR0IvSEswSE5Gck1LSEE4ZUp5RW51NE9oSnB2UU80NS9LTDNTNmFRaVpzOCtYK1VJVmw4dXp1SUFGQmNyYWtIRk1INEIxUVEwT3BEZUswWUNyRFhCZUFMcWdMT282SHI4dGNXSVIrc0JGMW1BRXZRenlqUHY0VVF6ZmZTMzZSY1pnM3RKK0hGRFR4V3BKc29lMGJrU1g1NEIySXp2ZlhGRmZxQ09qZmc1ck00K2d1R0FhbURLcEx3eGdRNzl2Q1hHMG9NQkVTRjludUdKeGFmd3lCdnNvK094UFBaM0R3N0VjZWVmajdaNTlkYkFQc3NpdzczQXdnVHJmVzFxSjFuOXN5bEp1anBEWjNsTFRSSksyaG9zSVZTQWdQRDBldmIvbUNFcHZvaUtvYTIrYzFlRFE4dGpiV2d1SndOUHJXSE5oc0RnQUJXUmIyMURodVhiYi9WSCtBMkw1OTZWZWJ3L1BiVDdCbC8xNCt6WktabGV3cUhpNDZsY3RIZTA2dzZlQXgvcjUwRTRNdUhFcWNJdGZPc2xJU2c2LzZCSm52ZlVIZXVnMDBtQUJDaWIxaUdJZWUrUWZGR2ZzNStNUmlWSlBuRU96VCtlbHExbjdNMFRYYktmajJIYkwyYU9nNXNUOUNXQ3A5eHRyNDhmN25LZDZmUWRIbU5leCs0WjB1cFpqNGpSaUprTGtIVXpzZWlNcE5Lem0rZW5lN3grMjVkZ3piWDE3VjVXa28rdllqam55K0FhZTluS3dQUGlSNyt5RUFlbDEzUFRsdlBFUHU5enM1OFBpemFLWmNTNmhIRWIxY2NZQnkweUFpK3JUVkdnL2NNWVh2bjEydTdMRXpoQ0FJZmUrNzc3NUp0SzFHOEV6OWFKRzA2M0EwK3ZXYlRWS0x4VlZMV2xkWDU4NXRLMjgza0tDYU8vY3FqOXkxS21wcmE5cHBlbXpGWm5PRllwME9SeE43eHlQdmZSYWs5dlo1M1NwcWc0WkhCNEhLaTdSK1VSdzRsa1ZHcFpNN0x4M0hNSGVmUTZmTndwYk1iUGFYMURJd2FUQVBqSW5uOStBTk5abE1PSjBTZm41KzNUcXV0TFNNNE9EZ2J2VUlQWk5qem5SOHJ0M2pqWEhTaFppT0hxUWh2d2pEd0F2UmV3c0VqNW1NcXV3d2VhdTNJTWFPWlBpamYwSGJoWDRUd2VNbVl6dXdscExNV2dZKy9VL0NZL3dBa2ZBcE0xQ1ZIaVF2ZlFPMWhiVUVqeHhMVUZ4azU1Ukgra2pzR1V1cDhSNURXSytXTEMrU3RRRjFXQ3hCY2ExcUFhVmlEdi96Yll4M1BFWlliTmVZWWFwKzJrUkRyWmF3NFFNUkdreUlmajBKN20xRUYzY0JJVkYyVHFXdlJZZ2V6ZkJIRnFEVk5JKzY2SlBYYU9nMW5jUXg3ZmM5OVJzd2pPRDRTRVZLbmFuT3JOTVpOUnJOK2syYk5sdHgxNDgyVW9rTGd0RFlXZDZ6azV3Z2lnS2lxSEwvaU80T1Z5cDNseXMxV3EwV25jNkxvS0NnRnZSZ3dqZmZmTzNSeTZCUnVOVzZtVHdhazNQTldDeU5YR3NPd2VsMGlySXNpemFiOVY2VlN2WHMvOUxrbnU5OGJHYzZ2djhWMkxJMnNQSHBINW44d2VOZGVySFpNcjVnMVNNL00rUGI1emluSGxsSEJWdXUrQXVEUHZ5VW9FQlJrVUxuQ05YVjFmOEtEQXhhaVl1enpTUUlRZ011RDYxTkVBU0hJQWlTU3FXU0dqbmJkRG92V2FmVDQrMnR4MkF3NE9Qamk1K2ZIMEZCZ1lTR2hoRVZaU1F1TG83Ky9mc1RIeC9mYklwNkJnemNaSkdOR2hwMnU4T3RFam9GZDNwSFUrblVuajI3ZlZVcTFjM0tVaW5vRHJUeEU1bmFSYUVHb0UyYXdlVmZMZWFjaDVuVXdZei9acmtpMU00eC9QMzlyN3ovL3Z0OEc4MVJkNFJVUmF0U0szZHVHdzZISzFKcXR6dXcyZXdlVVZKWGJsdGpJS0cwdEpTR2h1YlF2T2dxY3E5dlpYcTJ6RmxyajJ0dDRNQ0JOd0lLdVpXQ2N3dFJqYWhXaE0wZnlOY1cvK0NERDA1d0M3WjJmVzJ0T2R2YTVyWlpXd1FTWEVYeXJrQkMwN1pwV2VUZW1LL1dOaExxWnU0UUFPRzY2NjVWcVZTcUc1UmxVcUJBUVhjUkZCUTBvMWV2WHRwMnREYXhVV3Z6cUVob3lwMXREaVI0a2xJMkZzbTcwajhzRm90THNMbTBOVmVSZXp0Q3paT1NxRWxiZS9mZGQ2OERCaXBMZFBiaEl0VlRVZ29VL0tHMXRnSGJ0bTBkMHhXdHJYM05yVkc0TlJiSnQwei9BQkJicG5mWVd2alduRTZuTzIrdG1Sa1hFTlZxOVhYSzhweEx3ZWFuVElTQ1B6VEN3OE9udVFWYW85YW1waFVaWldNMVFxTU1hdWxyczUwMi9jUGhjS0J1ckFkdDFOWWE4OVdhS3d5YWZHdTRLYituQXFPcmEydXBzWXRFQmZyUXJndkVLWU9xZFFLQWs2S3FPZ3pldnZoNXFaVFZQUTJLMTN4S1ZiRVZNYVFYZmFhUDZkSXh0dndqbEJTSzlCamVwOHZYc1JjZklXdk56OGhBK01RckNJbytWNXFpaE9Sb1cwMHFxTlZucFN0V2l5dFY1Wkt6dDR4ZUYzV0RCcnd1bjJOZmJFUUNBbE12SnFKZjEraW5LN2F2UnRWN0hBRmgzbDIrVk1YV2RFcXp5aEYwNGNUUG5jTFpTdVdVR2lvbzNMSU5xMG5FZU9tbDZIVy8zWDQxbmRoTnJUV1V5S1NZTGg4aml1S0k0OGVQSmJzcHhCdUw0KzF1cmMzcE5rZWJORGFuMDRuRFpzRlVYNDlUcTRYUVNMeTh2RnJWa1RacWJTV0lybnJRNWdvREQyMnRUY0FBRUxScTI5VjMvZnNEcHIzMUxYLy82RXRHdjdTQ0hhV045WFpXbnZ2b0MwWSs5UjhTRmkzSHMwVFZZYXBnL2lzZnNlQ3p6Vno2NGxJK1BGS21TTERUUU9WbFFGTnpoRDJ2Zk43bFl4cjJmY3UrRDlaMnp5UVF0V2dNQm9vL2VaSEN6S3B6ZGorbjNubVlsU2xEV1ptU3pDZkdhRDRmTXBTVktVUForTVJIditxOCtSOHQ1c2lHSXkxZm5RVzcrUG1GLzNidlJLSWFqY0ZBNWRvUHlmN3hlSmNQeTM3ak1Zb09WWGZ2VWw1NnRHSTUrNTk2bmJOWGF1OWc5MDJYOE11bVE1aEx5NUhPSVR2SndZZHVvcml3NVFVcU55MGo4OHRkM1Q1WGJHenNSRTl6dEZXRVZHZ2RTSEE2blRobEdXdDFPZldWZFUwVkNXYXpwVWxyYzlXUmxpRTJVaEo1Q2pWM2hZRm4wQUJabG9YcTZxcUJna283ZThHc21XeC9ZQjRyNzc2T0IvcDdzV2pEd2NaSGtza2pMMlRWZ290by9lNWY5ZjJQMVBVY3pEY0xMMmZsTlVONSthdnRWQ2owTU8waWRNS2w5SnFjZW5ydHJLS0UybE9GT051WlAyZERIWFg1cGJTaDhaUnNtRTdsWURGWm1qNVNoOFVUUDNzV2dWRytwMzFnR3ZKUFVWOVN4YStoQmUxNTIzUE1PckNmV1FkVzRlY2R5S2kxKzVsMVlEOFRuN3EyZVhpU1M3TXo1ZWRncWJOMHJxRTRISmlPSGFEbVZEbVN3MEdiOXJpU2picWNmT3kyTG13eVF3UzlaczhpTlBFMHJlVWNOa3o1cHpCVnRNL2NhaTB0eEZ6VDBNNWExRkNiazk5aW5RS0hweEUvNHlKT0YraVZMQ1pxYzNLd05saTZPTHNTa2lPZnNuMGlTWXNlcFA5ZmJzRGdvVUE2VFJYVW5jcHZkNi9JQUE0TGRUazVYWm9ueWVHZ2V1Y1dURFUyMTV5M3UvZUsyeks5dUs5aGJXaFpjcUxSYUM3YnVIRkREdytOcmNrY2JmSzF1VnNPdUlRYWd1anREUm9WRG1kakxha0h0VkZkRGFVNTJSUms1NkgyVE85b0xwdHk0blJLU0ZLenhnYUlCb1BoS2hCSjh1amczalBJSDB0SkkvMlFtaUc5b3FBbXA4MFU3c2dxWk1KRll3RUlqdWxGUDhkV2RwWTV1U1JjTVVtN1k5THR2R29NWmVaSXZIMGxxck1iU0gzL0U2TDZ1SnJ1Mmc2dlpzMnN6V2lvd3F3Znh1UlBua2V2QmZPeExXeWUveUFxWXlMVzdPTkUzUDR2aGw4L3JzTXJ5WFc1YkprOUQ0dHZMN1J5Slphb1NVeDdwYmsvaiszWUpyWXVXazd5RzI4UjdQOHI3K3JJbDN5eTRITVNldFZSVmlSaHIzSXdldjFhTEovZXcvSFNrVnowMkN6QXdwYVIvWWo5T0pzWXpRN1cvZTFGTENjT1lqYzhSZlYzQVJoR3ptSE1QWFBjNW1nV1c2NmJpNjJ1bnVwU1B5YXZYMEhBR1ZyWjloUHJXSFhOMC9qMjdvVlVmaElwYmpvWHZmRWdXcmRneW43MVhuTFZLaXpabVVUZS9SS3AxNDhISkU2OTh3aTdsL3lFZjN3UXRmbDJSbjY0alBEWWpnZFJ2Zmw5TmovNEx2NzlFN0FVWkJIejRGSUdUSXpyOEppODkvN0I0VzkyVWx0VHhFL3o1cUpXQnpEcy9YY0o5b1dDOXg3aHB6ZTJFUkFYU0hXdWpaR2ZmVXBrbkd1eENwZmN6NEdkRW1MMkxwd2FiNnoreWN6ODVKK25kUTJVci9zUHU5OWVRMTIybVlwN3J1YUVRVVhQK1UvUmYvSUFBTXo3dm1iOXRjdVJLbjVCNm5NTlU5KytGeFZRdldNNVA5ejlQUG8rZlRFZCs0WEVmN3piZEF6QThPR3BZNEZUYnEzTkJySU5CQld5N0pSbFdaUkFscHhPV1JCRTFHcVg1aVpMTW9Ma2JKSCswVkJ5Z3IwcnZpUXkya2lKMUlDNnRXK3QwVkhuMHRhYVRkQnZ2LzFXSjRyaVZTMVgzY1I3TzdPWU0rbXlUcmFIbGJJNkJ5UDhSRjc0YkEzSm8wY1I3Z05sdFdZSTkxSGtWZGNOR1lhOHV3YXRyK3NCS2ZyZ0VmYS9zNUtvRjI1eHpYSzFscWxydjhTZ3M3SDdxbEZrZnIyZmxObUo3UDdyMzRoKzdETUdUZXlEVkhlTTc4YmVTc1hsV3dudTREbXIzNTVPVmZBVXJ2ajRNZGZidUJVOWpMT3VsSXI5aDdDZEpYdEtQckdId0JjMmt6cmNDQTRMVHFEd2RDWjA5QWltckZqQjhTZm1VaFgzZDFKdmJLbmRTcVVtQnE3OW1tQi9rZDFYRFNmMyt5d0Nwc2VmbVZzZ2FnU1gvcmdWalJyQXdyWXBROG5kUFovZXcxMHZFKzNnUzVuNDFEd2NoVnY1YXNKakpNN2FnaUY3TlR2L2M0eUxOMi9DejFlay9JdG4rT241OTVuK2VzZXRRTEtYdmt2Y294K1FQS00zSU9Ic2doYlY0K2JINlhIektWWWxYTTNJRlNzSWFzeGtyc3ZnNTMrdVovUzJyWVNINmNoLy9XNTJQZmMrbDczVi9IS3Eybm1VU3phdEl5QlloOU5pNmREZkdUSjVBVk1tTDJEcmhEaWlYdjJjWHIxYnBreWJIVVl1LytZNTFKWWMwZ2ZOcEt6aVhpSjhDOWw1K3o5SVdycVJYa21oMlBPMzhQWE1wNGlidUJ3M1ZTQStQb1pwOCtiTlc3RnMyVEtyeXh4Rkl5RGJaUkFGd2ZXZjRDS3p4ZWwweWs2blU1QWxXUmFjVG5jdHFic0JqQ0dBNk5temlJd01wMmZQQ05TTlVWQ1hHZXIwU1BGbzZWK2JPSEhpYktDNXo3eGs1L1V2VnVOSVNHVkIvK0N1ZW5VdzZEUm9SRUdSVVdlSW11MHJ5Znc0SFZORkhZN3FFcVMremU4YVE4cG9ERG9BTFNHamgzSDh3Q0dZQXFXSHpLaTJmczdlSFNBaklUdnlxY3F1SjNqUTZWOHErcVFVeEl6YjJISzNsZkRVRkhwT200YkJvekpNUDNRdWN3N1BQWHMzRm5NaHZZYTdUVUcxN2xmVkVhdmlrd2oyZHoxNGh1aEk2cXFyei9oY2dtamh4UE9MeWQ5NUFMdFZ3cHhUUzBCbERlQVNiT0VqUnJtR2JCeEdjUEJKS3JNc21IZHZBMi9JZXZsWlZ3djB5aFBVSFBUQzZYWWVuUTVoSTBieTR6TjM0RGh5Q2NHcFkrazU0WUl6SHJmbFdBYm1xR0dFaGJtaUNCRmp4MUM3TkwzRkdBSW16aVRBWGN1dDB2MjZhRU5neWhCWGRZZ3VBa05JRFpaYWNKYnZvcnpHaTZBdi8wUFZsNEJrUnF6TXBLWUs5TTBpSS9yNTUvK1Z1bXpac3MyTjVxanNNa2NkSUR0bEdjbmxiNU5rU1hLMjB0ZzhvcVJhTThVL2JhR2lwcDRDalJmcVJoUFU2V3lkNHRHY2tBdUlhclZxbHNmN21rOVhyV2FyR01mN1UvdlRlVjY0RjZHK2FzcHFuZnhseGtWQUEvK3BoMUEvdlNLcE9yWThXN29xVHE1ank2UExHZmZGZndtTERhYnE2eGZaOHJXdEl3WFBkUkpORUJIVHB1TGpYcWdlVTZmakcrL2Q0YlhVMGFsY3VtMDlSVnUzVXZqTlV0TGZXY3ZNelcraFBVZTNLdW9OcDlsSFV0Ty9jaGQ1U1FWUEIxWTNpaGJhZTkxbXYvb1ErYVVwakYyMkNKMjNtdDNYRFVPVzVOT2Z3WDA5cjVqQlJFMmQ2djU4S2oxdkRtZ3hsUGF1RlhYYjgxeVN0cCtpclQ5eDdMSHJLYnp1VlVZdFNEdG4yMHZyYy9hZVAwRThUZEdiZnpSUlU2YzJsY1QxbURhN2pWc2dMQ3dzRGRqV3l0Zm1tYkFydTFJL1hKUkdzb3dnT0oyeVMyYTUzR2hWbVlkQk5qSmdTaHJSUFl5SXpjbTR6dmJTTzVCbFdhaXFxa3dTQk9IaVJuOVordnIxZkZZWHdqdFhwalNwbEoxdG1aR0pSallmeXdhZ0xQY2t4OVNScElZcS9yWFR6bGh3Q09yeVhFd2Vjc3RlVklRYzJaZmcyR0RBUWQ2NmxvMUhUSHUyVVc4QnNGRytiUmVoQXdlQmIxL0MrcGhwcUFzZ2JHZ0tZVU5UQ0lpTFFXTm9Yamh0U0FoMUJTMGJxRGpxNnNBL25PanBzeGoyMHBPbzg0N2k2ZnUxWlcxbCsxMFBVMWwzN3ViQUt5Q0FCamY5czdQNEFKVkZMY21SMUhvRGxzcnlzL2VnaHdSaE90V1NicnFob0lDQUljUFFlYXR4Vmh5aWFHZExQcm1TSFZ0ZDgxVzRpNHFxM2dUSDZRZ1pQaHByMWlIMC9ZWTB6Ym1mTWFoWm1CbUMwRHFLTVZXMWxOUzJ1am9NOGNrazNMaVE1UG1YVVgzMHhCbmZpNjdQSUhRRnV5Z3RkUVVoaW4vWWlsL3k0Ri9OcUtQMjFXTXI3MW9FWFJVM2pCQnlzUnBpbStjaExncE5xN2VqV3ExTzI3QmhmWTkyQkp1cTBXSnNsRWVTSkNFTDRMRFpXblMyc3BnYUVQejljVGl0MUpkbm8yNFVhbTJyREpxQ0JvS1BqOC9semNaMENZczNaVkdyOHlMdFdWZW9YUnZhaSswTEp3RHc1TnNma0Y1c284N21ZTWFpSlNRTkhzYUhNd1l4ZmN3b3ZudG5GWmU5ZVpLYXFscitldmswZ3BVU3dOTUx0ckFSREo0Wnd1b0xSNkEycG5EeHQ2K2hIellWSTIremV1WmN0R0lkdXFDUWxvSWdTT0tIV1planBncUw3MFFtenhnRXdOQlhYK2I3K2RlUzkxWUNhbnM1OVNZams5WXZhU0xRN1hYTFBXeTYrVDYrZkY5SDNOOWZKUG5Lb2RUditJaU4vL2NKZ1gzak1HZG5Fbkw3US9oN3ZKU2Q1U2ZKL3V3clloNWJUTkE1U244TG1YZ0Zxbi9PSVgzbVQ2ajlJdEdGdE5SempKZGZ6OUZiSCtLYjFhL2dOLzU2eGo5NjdhKzZYdlRjQlp5WU41K1ZJOThrNHBxSEdIbkhOR0t1dVpYMUN4WlF0M0VnbGhyUUo3UmtYYkVmV00yYTJXdXdaR2NTKzlqL0k4QWJHRENWMUp1MnMzN0NPUHo3eFdJK2xZM2ZwUTh5OXA1TDNVOXlUd2JmZHhGYjAwYWc4b3RoVFBvS2duM2d5RU56eUQycHh6ZFVTOVh4VWxMZS90dVozNHp2SUZJZnVwanQweWZqSHg5TWRiYU5rWjhzK3RWcmtuRFRRcmJmUFpOZi9BM0UzUDBTQTZjbmRmQ21NSkw2MmtOc3ZXa0tKK0w3SWxlVllnbEtaZnBIaTlvSTJHSERocVVDdVo3Q1RaWmx1K0NLa0VxeUlMak5VUW1WbHc3SlZFOVZ0Z2xiWURqYVdDOTA0VVpxTTM4aXEvd2tKWUlPWWZEZ3dlNytCbVlzRm90Z3RWcXgyKzJDdytFUTNDRlhsZFBwMkFQMFB4dTJWVWxWUFhxREFUL3Q3Nk90bmUrMFJaM0RnU2svSDFWZ0JEcERXNytJczZHT2hsb0xQaEdocmN3ZGlZYkNmR1N2UUF6QlhaTkVrcTBCVTNFNW1zQXdkTDY2MzJXOVpKdUordEk2dktNaitMMzBlMmRESFEybE5YajNqRWJWenN2WVdsYU1wUE5ENzl2U3ZKY3NKa3lsRlhpRlJhRFZkVzBQMkdyS3NOWlk4VFpHb3pvTGxDWk9VdzBORlNhOG80M3RqdjIzY2FuWU1PVVhJL3FIb1BkdlA1bFpsdVdqb3FpNkE2Z0g2bkJSR3BrQmk0QmdGMFRCS1FpQ3BGYXJaWTFHSTN0NWVhSFQ2V1M5WG8rM3Q3ZUwwc2hiajQ5V1QxalBIaTZOcmRrRWJkYlljQ2ZJbVV6MWFXZEhxTGtjSHVHQlNyblFyelFHTUVUSG5sNzk5L2JGMTl1MzNibjNOdmJzM21wcHZmSHQyZk4zdlZ0QmE4QTMydkM3amtIbDdZdHZCNmthWHFIdFZ5cUlPZ08rUGJzM2RxMS9LRnIvc3poMmd6KytCdi9mZDh1S1dneWQ3Q05CRVBvZVBKalJkK0RBUWZ2Ym1LUElUbVFrUVJBRVNYSnBiWTJCQk04NlVvY2tJMm5WMkd3V3hNYkdMTTI1YTgzK05VRHc4dks2VEJFbUNoUW9PTmVJajQ4ZjBjb1ViYzM0UVhPWmxZU243UElza0xkYWJZZ2V2alhCN1ZzVFBCeDJvaUFJMDVVcFY2QkF3Ym1HWHE5UG83bjZvTjBXZmE0ZnFaSDVRMmloc1RWMXRySTFhbXlTUitEQXBha0JndG5jTUJXSVVxWmNnUUlGdndHTVI0OGVHVWpMOHFwR3hvL0cxRE5Ca2p5TDQ1czF0MmIyanliQjFvWnp6ZVhlMEdxbktuUDkyNkswdEpUOC9BSmxJaFQ4S1JFVEV6UE1VMk56bTZPcVZ1Wm9DNjQyTjRWNEM2MU5kQWNNbWxTN3hnUGRacWdpMkJRb1VQQ2JRYWZUalcrbHJiVm5qcmFRV2EwRENYYTdIZEhUREczVTFBQ2hvY0Uwb1gwejFNbk9qTU1zV3JtQmU1ZHY0djE5dVI3MEt6SlplWGw4dW0wdnIyNDhTSzNIVVE1ckE5c1BIZWV0alR0Wm5sbWlyT0J2aUVQM1hjR0pIY1hud1Vna2ZyNTZQQVduL2poemF5dk5wYnF3NGd5UHJtUGJaWmRTMnFYRGJWUmxITUorRmhoeGFqY3RZY01UUzgvcVBNZ05GWlFleVczeitjL1hqQ1V2cDN2bWFFYkdnVDRlV2xzTGphM3hweVZYbTlRbVFpcTJNa1B4TUVNbnRyODM2L2hxYnlGOVltUEV6UktVQUFBZ0FFbEVRVlM0dEg4VW03ZHM0UEVmR2tkdTVyMzFlemhTWE1KYlAyUzJFR3lsZVRtOHN6ZWIvYitjNUl0amltRDdMV0V0SzhCdXRwMEhJeEdKbnJjUXY4QS9rT3RnMVN2c1diTCtqQVc5cFNBUFIxZTZUVlBPanF0dnBOcDhGbDR2cGtvYXlzNHUvNTZVK3dNYi92cGltODh0ZVRuWTdkMDdWNjlldlpJOU5iYlRtS040bXFQTldwdExzS21ibzZHTlRCNHVNMVFVeGZZRm14akE0aHNuTmYwYTJGREdYL2Jud3RoWXdKdG5icDRKTlRsOGMzQm5TekdjMEo4UEV2cXplc05hUHFoVGhNMjVRUFhPZEk0dlg0OGREUUVqcDlIL3l2Rk5TYnEyNHFQc2UreDF6RlpmRXY5Mk55RkdYOEJDM3JJUEtkcDdGTHRkVGZDa1dmU1pub29BVlArY1RtV2xub1k5RzZpcEZJbTc2WGFNU2U0aWRVY2QyZSsvUStIK2szakZENkgvd3B2dzl1NDQrOU4wNkFkT3JOb09vaGJ2MGEwRWI4NStNcGQ4Z3FuYWlpRitDSDBYM3RBNUEreHB4bEN6ZHcxRkJmNzB2WFFFQUpXYlYxSWxKUkovVVJKbDZ6NmlRVzJrY25NNkZtY3dDZlB2SURUVzMvMndsM0w4blhlb3lDckJrRFNPL3JkY2lWYmRxSTJVY2VLOTl5ZzdVb0JYejBRU2JyNlZBUDlxTWw5K240bzlHZFRWbGJGL2NUWkNaREtEYjNSNWJ4d1ZXUng5OTBPcVQ5VVNNUFl5K2wyVjVrNHd0cEgzMFZ1YzJubVNnTFRKZEVVQnEveCtCYWQrM0kvWlZNT0pGeFpUb0JXSm5MT1E4SGgvMS9tV3ZVdmVqcU9valFra3pwL2ZWTmplc1FKWXpiR1huNlU4dTRySVdUZlRhMHkvSnMwdy8vUDN5UHZoRUtxSVJCSVhkbjYrM0E5ZW92TGdBZVRpWFBZdFhveWdDcVQzM3hZMmtTYVlUK3hrOTVKUHNYdEZNK0NldS9Gemw3Qlk4ak00OXM3SDFGVTdDSjE2TllsVGhpSUEzdDdlSTREUFdwdWlqZVlvc2lRNUpVbkE2VVFscW1WSkl3bE91MDAyMWRSZ2t5UXNYdDZJalZMUG5aU0xMQ05VVmxiMHA0dk5XbzZVbHBOb0RGR2t5dThNdVdRbkcrWS9UK2pNYStsejNSVUk1cG9XUklBbmwzOUY2Q1d6Q2RCbHMvWEIxNXBNb1pwQ08xR3pyNlAzdkdrVXZYSTdCOWNjQTZCbVZ6bzcvdlk0bXBScHhFN293WTZycjZXaVJnSWNaTnc5aDE4eW5TUXNtSStQZVE4Yi8vcnZUaDlRVFhnc1lXbWpLZm44VlZxU2JUU3c4NmJyY2ZhNW1IN3piOFEvUU1MYTZSdis5R1B3Nnp1SXdsZnY0OFR1UW14Wlcvbmg0ZjhRTUNqUnBmT3MvNHdkRDd4STRPUzVHQk1kYkxuMlRzd09seFd5ODVvWmxKbU1KTjUySXh6OWpCK2VXOTVrb2Z3MDd6SUtDbjFKdUcwKzRiMjhxTTJ0QkxVdndlUFM4RThNUXh2ZGw3QzBOTUtISnJwdktaOHRNK2ZRRUpCQ245dXVvdjdiWjluOXdYWUFTajU5bGwyZkhpTHVwaHNSOXEya3JMRHp5bjVkM0VEQzBsSlJhNzBJSEpOR1dOcDRmSUpjbklpRlN4NWoxNmNaeE41ME13R2FrNnlmZDErWG1IbnIxbjFLUStTRnhNOGN5YUU3cnlMM21JdEVNK3U1djdCL1ZUYXhOODBuTkt5VXpkYzkxT241L0llT0lXUllFdmhHRUo2V1J0aTRDOTAwVHk2dE5HZEZPc1paMTZBdDNjSlB6eTl6T2JSSzk3TnU1aTJJZ3liUlo5NWxGTDU4QjRjM1pRR3VaaStyVjM4WDJaNmZEVmtXWkFSQkVBUVFhSEtqT2UxV25LalJCSWVpRGRDaGJsM3dqcXMyZEh4WEhxWlQyWWQ1ODdDVGQrN3NwMGlXMzl0NzFWQ0p3NkZIYjR3bUpENkNrT1NXMzhkZGR5ZlJJL29qUjExTnh1VWZZQU8waERMZ3J6ZFJzWDgvNW1vYi9vUGlLTjkxRUthNCtpWUVYSHdOZmFhTUFrWVJ0K0k5Y2pjZEkyaFVKY2MyT3BtNDZ5NThOQkIwOTcxa3BWNUxWY085QkhkQS9hOE43WWt4MU1ndmJUUTdLNVpxSzRGaFlRUU1TQ0o0WUhMblFyeDBad2RqTURMeXRhZFpjOHR0NUJocTZmdmlSd1NITnBjelJjNWJTT3lZWVRCbU1Ma2ZEaUIvYnhVeDZ2WGtsdmRuNXIxWG93TDg3NzJEcjJlOGp1WFJPWWdacThrcFR1REtyMjUzTVpza045ZEdocWVtWWo4VVFaazJIbU5xTXlkYzFmcmwxQmluTWY2R2k1R0JRWGZkeUtwRlh6SDh4bEhrcmxoSjc3OStqZkdDT0l6OTcrZkVoMWQyZXIvZVBmdmczZE1YalVaSFNHb3FvWVptb1pHOTRpdjZQdlE5eGdzaUlQa0pjcFplUU1HSmw0anIzWEVKbCthQ1MwbStLZzBCNkRmek0zTFRmeUFtZmpCSGx1d2llZE9QaElhb2tmdmZUKzdTRVJSbE9ZaUpQMzE5VjBEU01IeFYrUWlHdkJiejBJamVDLytPY1dnZ2dmWlpySHJPVlY5ZThQbjdhTWJmU3Y5cG81R0FnUXV1WU1meWRKTFNYSngxS1NrcC9ZRThUM05VRUlTbVpGMEVRVUFVWlVIRXBaaHB2TkQ1YW5BNnJOZ0ZMNWRnYSt6dTN2aWpVcW5HZGpiWkZVVTVMUGo4QUl0dW1FbWlRYWxtLzcyaGlwdkV5SHN5T0hEbkhING90R0s4NXUrTWVHQnVVMzJsVjZDcjVGM1FhUkVjRGlUQVdaSEoraGszNFQxeUtnRVIvalFVMXlQNU5GTlNlMGVFTnYyL1BqU002c29TSEtYbFdDMkY3THIxeGlZYUhxK2tKTEFDM21jeThrQ0d2Zm9NKzE5OW1DLytua2ZBaU1zWThjcVQrSGF3cHh5bFJSMk9RZGRuUERHSml6aGVNSmp4bzFvMkdOR0hOZEovYS9FMit0TlFYazJEc3hpcE1vTnROOXpZUEtvQjhVaUF0YkFZVFV4OHQraWE2b3Z6Y1J6ZHc1WWJtdnNuQlBjZTdqcGZhUjFCWVdGdVZTd0NROEN2S1FnMVl5azFvMnUwbU1SQURHRmdxNndET3VaSTFJVkZOYmtwZE1Zd0dySXFvYVlJczluTW9YdHY1V2pUbStBQ1ZOamM4dVhNL0tycVFKZFRWYVZSSVZ1dHJwRVhGV0Q2OFFpYmI5amNyUGtOYVM1eUNnZ0lTQVkyZUdocnJoOEJBVmtXSktkVGtKMlNJSW9xSkVtU0hlWmFvYWJVS2h0OGZCRjB0cllhMjczMzNxc1NCS0ZEM3VpNmlnSnUrV2diZDg2ZHdiZ0liMFdxbkJkUTAvT1dCK2w1eTRQWVNqTllOMjQyUmRmT0pkcllnZTltNHdvY1EyNWc3TDl1QitENEU3dndERmcyRkRjMzNER1hsZUoxWVRqcU1BMWVobmhHZmZ3cEJ2WFpHWG5nbUZsTUdETUwyVkxGam5tVE9mN2RIRkptbjU0MVFoMFcyZUVZeXI5NWtkenFJY1QzK29XZlg5L0FxRHVhM2NYbTRrSWdCYkRSVUZoRFpFZ0EzdW9JVkpHcFRQanN0VGFGOWpaakJQYmNuZGdrbXVqQVBTRUlBbktyN2lrK0VkRjRwWVF5OGIySDJ3cVVjSC9NcGFWQUhGaUtNVlU3dWl3Z0JGRnExZHRCank1TWo2V3dISHBIZ0ZTRnFSU01YYUJic1pRV0lMczFHVXRoS2Q0UlFlQWZqdDdnejVDM2xoRWVlQWJLU2plNnlPZ2pqZmhmTkpPSlQ3ZlB5S0xSYUVZTUhqeEljK0JBUnF0RVhVRjA2V3VDZ0N6aHROdVJOR3JzWmdzYW4yQjBZZjdvdkhXb1c1bWhQUG5rRTZPQjAxZk4ydXU0YzBrNnV1ZytWQlprczdRQVZQb0E1aVc3aWx5M0h6akV5WXB5ckU0elgyN1BJQ0U4a3FrSm9VZ04xU3c3Y0lyRHA2b3B0VWtzM1FHcEEvcVI2S2RSWk5KWmdDMXJPMGMyRlJDWk9nQkgvazZzMmhoOEFqb3hjYUo2MExBbm5ZS2ZSMFB4TG81OXV3Lzk5RXVhZ3hGclArYm9ta0g0T2c2UnZjL0ErRmY2SVBoTDlCbHI0OGY3bjJmZ0RSY2pWeFZTc0NlUElmZmQxaUg3UnRYKzdaaHFySmhOVGlwM2JrRjl5b3VRMUJIb2RLVWMvTmNLZ3NhTlJFc2w5YVYyZ21QQ094eTNFSlo2MmpFNHM3YXo3UjlyR2ZYTk40VDRsckYreWh4T3BQYW45MUNYaEMvNjVDMXlVaU1Rc2xkVFlyK1FZUmNFb2hXbjB0UDNSYlkvczRRK2w2YmlLRHhHU2JiRUJYK1pqWGJRVkdJai9zMzIvM3VEL25QSFlzdmRneHc1aVo3dTgvbkg5NlhxZzY4NE9UUUliV2dNMGNQN0VUaHBEajR2WE03UGIvWW1ia3dpNXF4RFZKdkNHRFJ2SWpGenJtVGJxNHNKQ2JtZHFxL2VvTDZyY28wUUFtSWNuSGh6S2Ria1NBSlNSdU1ickNOdTFreCtldkZKQW53WFVyL3BBMm9pcGhIVnUzUDkwcjQzblgyZlhZd3hvb1lqM3h4bHlLZmpRZTFMdjVzR3N2dXVoMG4rNnpXbzdlVVViZHBQd21QMzBCbUJ2eW82SG4zQk14ejZmQlgrZ1VHRWp4L1ZGSHhwRDFHemIrVEFKWDhobzM4SXhnRkc2bzd1eE9xVFROOUxoalVwY08rOTkzNnZsSlNVUXpRM1UxWUpJQ0lJSXJMc1JFWkFGR1JabHBGRkFidTVGbHVEQnJtNkZKVmFyUmJjaWJrQ0lENzExSk5YaTZKNGVoK2JaS2ZLcGlMY29NRmlkMkN4TzdDS1dvWkhCd0Z3TFBjVWVWWTFRMk5Ed2VGQXJmY2xLY3dYMlZyUEQ5bGwrUGdIMGkvSUc0dmRRVlI0QkJINjM1YU14bVF5NFhSSzNXNUtYRnBhUm5Cd01DcVY2cHdlYzZialEzQlN0V3M3UlpzMlUxc3FNSERSMDRRYW03ZWpiNzhVRElIdTZKWW1nTEJoL2RIMUhFeGdVQTA1WDY3QmpKR2syMlpqNkpGQVlGdzROYnZTY2NSY2hMNXNENlhIVFF4OCtwK0U5L0FGUk1LbnpFQlZlcEM4OUEzVUZ0WVNQSElzUVhHUkhYTG1sNjFiU2RYeGZIeVRVaEZyQ3pFWGxPQnpRU282THpCbkhhQm8weWJLRHVjUWZjdWpKSTVONkZSN09kMFl5cmR2Sm5UMlh6RDJqVURRQmhBNW9pOFZod3NKR1JoUHhmcFAwSTJkaStQZ0pxcktmRWg1N2duOEEzUWdlQkYxMlV4c1I3ZVR2KzRIVEZWMndzYU93ejhxQkFRdm9pK2JnVDE3Si9scmY4RHFDTUE0WVFRNmI5ZFRxNDBkVEVpVVFQWGg0MWpNV3NJSDl3YU5IejFuVEtMdTU4MFViTnlLMWFvbFl1eDRmTU44TVF3WWdhK1lUKzQzbTlHTm1VMU1TaStDaGc3RnExTlpKQkkrTVExYjFpSHE4L0xSeFNWakNOTGhlOEU0Zk9RQ1RxMWFqODBRei9Cbkg4YmczYmtxYlJpZWhsZkJ6K1QvbkVYQy9jOFNrK3dTMUVHakw4RkhLQ0l2L1R1cXNvcnh1MkEwWWYxaU9pY2k5Z29uYW13L2FqSU9ZUzZzeG45NENvM01aQUhKSTlDN0RUdkJONXl3UVFtSWhraGlMeGxCeFpZMUZHNzdDWWNZVE9UWTBYZ0hORnVBZXIwKzY3bm5uanVCcTkrb0hYQUk0QUNjZ0NRSW9peXFSRmtRQk5SZU9sU1NFNm5CZ3RvUWlLRFQ2VVJQN2pXSHcvNk5JQWlUL3FpYXpmbk94M2FtNHp2YnlIMzlkckpOa3hqL3dPVi9tTFUvY3YrbG1GS2VaT2pjRkVYRi94K0F3K0hZb3RGb242V1pvNjFlRUFRVFlCVUV3U1lJelJ4dFdxMkxvODNMeThYUkpyb1RjcEZsV1pnOWU1WktFSVFSeXBRcThBcUx3eWNpNkE5MVQ3cVlSTHhERkovdy80elhXSzBlR2hNVDB4dzRhTmxNV1d4MG43bVNkUnQvWEtscmFzODBqM2ZmZlhjWW9QVERVMERFN1B1SitJUGRVOXlkTHlvTCs3OEZuMlhMUHU0NWF0VG9ZelQzUUJEZGFSK05wVldDTE11eUxEZm40MHFTMUt5eEFlaDB1cUhLWENwUW9PQjhRZS9ldlh1NWhacG4ya2VqWUtPbHh1YnExU0pKVXN2Q1VwVktwVGdmemlMQ3drSzdGVGdBTUJnTStQbjVLcE9uUUFIZzcrL2ZwNVVaS25yOENLMDBOeVRKUldtazlxQXBFZ1JCdUVDWnlyTXAyTUs2Zll6QllGQW1Ub0VDTnpRYVRSSnRmV3lOeGZCTlRCK2VSZkdlR2hzblRod1BBeEs3ZXNIcTJscHlLK3B4bkM0bno5bTJxYXpWYkNhM3JCcXpRMVpXVElFQ0JaMUNFSVNFRjE1NDNxZWxZSk5ibTZOQ2N6NnVSL0FBRUl4R1k1ZUszcEhxdWV1VkZleTFhd24zY2xKbzEvUHY2NmN4SWt3UFdIbnVvMi81T3F1Y1VpbUFMVTlkUmJUN3NQZFhydVNOekRwNkJIaVJWMlZod1JXWGNPdUFNR1hsRkNoUTBDRW1UWnBrQkNwb0lweEVGQVFFRDgwTmFQYTF5YktFdXRGRzFXaTBYUk5zb29ZRnMyYVMxTU9WMXI3eXUxVXMybkNRMWZPR0F5b21qN3lRV3llYW1mam1uaGFIalVnZHhUVXp3OUdLa0g5MEQ1TlhiT1B5QVZkMFV0R21RSUdDUHp1aW9xSjZBcGx1UWRhaWN4VnRvcU11NFNhNkpaMmdVb2tEdW5ZWnJ5YWhCdEF6eUI5TEU4K01taUc5b2dqV3Q4MTg3aHNWM2xSckZ4YmtoK2l3WTVXVVJWT2dRRUhIOFBIeGlmTVFhcTFiOGpYbHNyazdXQ0ZKa3RDVTVDWUl3b0J1WDlGdTRyMmRXY3hKN2R1TmcyUSsyWHFRWWNPVE1DcWtJQW9VS09nRUdvMG1vWlZRYStGamE1Mm9LOHR5VXdtWUFIU1BWRTJ5OC9vWHEzRWtwTEtnZjljTnloMC9iK1hqY2o5ZW1EUkFXVEVGQ2hSMENsRVUrM2hvYVc2aEpudWFvOUFpZ09BU2JFSnBhVWtpNE5YMVN6bjVkTlZxdG9weHZESzFQMTFWdkE1bTdPS3huMnA1NTdvMGdoVlNEd1VLRkhRTlhpdFhmaEhpSWR4RVdhWUZoNlJuQUVHV1hla2UrUGo0SkhUOUdqTHA2OWZ6V1YwSTcxeVpncjZMVXUzRThRUDhmVk1CYjl3MGhSaHZ4UVpWb0VCQjE5RzNiOTlRVHArazZ5SFVYT2FvR2hEVWFuVjhsNjlnTG1IeHBpeHFkVjZrUGV1aStkV0c5bUw3d2drQVBQbjJCNlFYMjZpek9aaXhhQWxKZzRmeDRZeEIvR2YxRGdvclJhNTUrVVAzaWZTOGQ5ODhCdXFWUlZPZ1FFSEhDQWtKRFc5cmpyYlUyanpNVVZrUUJFSHZjTmhmRmtWeC9wOWhnbjVMMmlJRkNoU2NIWmpONW1YZTNvYWx1T2lMNm9BNk40V1JCYkFMZ3VBUVJWRlNxOVd5UnFPUlJRQkJFR0tWcVZPZ1FNSDVDbzFHRStuV3lzVFRtS0tlYVIrdUx3UkJpRkdtVG9FQ0JlY3JWQ3BWOUdtRW11QWgzQUFaa0p1K1ZBU2JBZ1VLemxzSWd0Q2psY1lteUhLTGxBOTM5UUhJTW9nblRod1BCM1RLMUNsUW9PQThodTdmLzM3SnAzT056V1dPaXNIQndaSEtuQ2xRb09COHg4Q0JBLzA4QkZtYmRJOUdvU2JMTXFLWGwxZjRtVnprVEdpTHpPWUdjc3VxTWRuL1BMUkZzdVJBa3BTaVdBVUtmaTBpSWlMOFRxT3R0ZjVCclZLcHVpZll6cEMyNktPdlZ2TG1VUlBodmxvS0swM2NPR01xQ3dmOXdaWEZ3azBzVDc0ZVZZOElaSnNGcjdnVWhyLzRFaEc5T3k5Qk0rMyttZ1BiSFl5OCswcGxSeXRRQVBqNys3ZlcyRTVuaWdxaUtJcWgzVHE3bTdabyt3UHpXSG4zZFR6UTM0dEZHdzY2djNUUkZxMWFjQkd0eWEydm5EcWQ3UTlkeDhvN3JpTDkycUc4K3MxUFZQd1pWc01ya1VsN2RqUDc0SDc2RG5Hdy9mLytYNHV2SFRWbDFPWVhJN1hROGlUc3hkbVVIdndGeWRFOWpVOEdjRmlveThuQmJwUGM1M045WjZzcW83NjBwczB4OXBveWFrL2w0N0FwbXFXQzh4ZmUzdDUrcHhGcVRkVGdqYVZWYWxFVXUwbUo1a1ZTaitheTBwNUIvbGhLV3RJV1VaUFQ1aWk5UjBkWUNWQ3J4QTRiN1A3eG9DWnNlQXFXelVkeEFpb3NISHY2TGc1dnlNTS9WRU50YlJBVFBsdENRR0FkTytmZlJzV0pIQnJLSk5iTjNRVUJTVXg0OTBtOEtDUzk3K1VNMzdPVFVBTlVmcm1ZYmVzTlhQYkdYMTBLNHBMN09iQlRRc3plaFZQampkVS9tWm1mL0pPOU42VlNJUXhCTmxYVGNEU0RpTCsveFlpYnh3S1EvY0pDOW4yVFMyQnNFTFcvbEhQaHFyV0VOKzBJQy92L3ZnRDFSWGVSTkYzcDg2UGc5NFZXcSszVXgrYlcyRkFMZ25EbXpTTWJhWXNtWGRhbFAvOXB6eTVlM1pYTnlRb3IvNWgzS1VGL2h0V1E2aWpldElscVN3MG5YL3VDdUd1ZVFnVlViM2lQakIwYUx0dTRCaTgxNUx3OG4zMXZyV0xDdzVkejRic3JxUG51VlRaL1pXWEsyL2QzNjNKVk80OXl5YVoxQkFUcmNGb3NUYXV1NlRlVkNRL093TEo3R1YvZXU0emhONDlGUlNsSGwvekloVnN5TUlZRERodk9GbVc4RWpXSDl1RTFzRnA1cWhUOC9xcUJXdTFIeDc0MW9WbU5nTUF6ZTJDN1QxczBzRzgvbmpMR3NHM3ZIbDdkdUorTGJoM1BINzUxaVZSTDhhcHZFWXFQVWFNZnl1UWJKZ0pRdG4wN0drUXlGLzhEQ2JEblZsQmxQUVQ4dXM3ckFSTm5FaERzeXQ1UjZacXplTUtHREFaQUZ4Mk5XRjJOSFZBUlJNU0lJSGJmZGdNOUo0MGxJdTFpSWdaRWV5ci9qRnVmb1R4UkNzNExxRlNxZGt4UkdSQ0UxZzRaRWZEci9pWE9qTGJJWVBDaGQyUVlOMDBkalYvK01YNnMrQk5FUjlWUkpQLzdKY1orc29wZWtjZlk5VnA2MCtRYmtsS0ptanFWSGxPbjBtdmhJNHg5L0phdVNNcm01V3NuSkszMWFaOVZRRkM3VjBsc2FSNFBlWGNkby83dkZyVDJBclpmT1prVGU4dVVKMGpCZVFsUkZIMW80MXRyV1ZMbC9neFJFSVJ1Q3JZem9TMlNLS294TmYxV1dWcE1ua05Mb083UDVHVVQ2WGYvQTVRc2VaN0tHb25RVVNPcHpUeUJmM0lLWVVOVENCczZHRU5Rcy82cTlqVmdMNitrcGVqeXhjdW5sb2JDQnBmV3QyL1ByeHlURFp0SkluajRXUHJmOHpnSlk4T296U3BwOGYzaEorN20yQVpGYTFQdyswTVFCSjlPVE5BbVhqWTFkTk1hUENQYW9yNjhzdlF6dHB0MWhPcEZjaXRNekpsK0VVUC9aQzAwTmJGcDlCMy9MQWYvazg2NEIyNGxhY2ZkcEkrYlRFQ3ZjT3B6ZnlIcWpwZEl1V3FFUzd0Tm1Vb2tOL0xOdUlsb0lsSzQ2TFBuME9GTDcrc25zWFBXeFJ4TENFZHJFTUhuMTR5b2xDMFhYNDdUbUlpV1NtcnI0MG1iM04vamV6dkYzMzZPTm13S2ZTWU9VcDRzQmIrM1lEUFFzdWk5VGFvSHpSSk9LZ0NNdjhYQVRBMG1LaXdPZ24xOU1XaCtIN0xKODQyMnlHbXFvYUdxRG4yWUViVzJhM05pTFN0RTBnV2c5L1UrQ3lPUU1CY1g0MENEVDBUb255eFNyZUIvREVXQ0lDNEVUTGlvaTJxQmVrRVF6SUJWRUFTN0lBaE9sVW9scVlIZmpPclI0RzNBNEsyc2ppZFVCbjk4RGY3ZE9zWXI5R3kraDBUMEVVWmxJUlQ4TDBEWGdSbnFBVmZ3UUdGT1ZLQkF3ZjhDV3N1cWRnME1XVVlSYkFvVUtQaWZFbXh0QWdidENiaEcvbkFGQ2hRb09OK2g2a0JqYXlIZ0dzc1NGSndESERwMEdKdk5wa3lFQWdWbkIySkhXbHA3ZjZoQWdRSUYvd3NRT3ZrZFFCQ0JibEk2T05tWmNaaEZLemR3Ny9KTnZMOHZsMmFkUkNZckw0OVB0KzNsMVkwSHFXM3ZjSWVKOXpmK3hKYjhHbVdKT29LdG1NeC9QVWZlL3R6ZjVmSy92SFF2NlpkTVl2bm9HMmc0aDljeFo2U1RQdjFTVmc0Znd0SHY4My9YS2EvUE9vU3BSdEd3ejJOMFdWYUpnTE43cDY3anE3MkY5SW1ONGRMK1VXemVzb0hIZjhocDNLYTh0MzRQUjRwTGVPdUh6SFlGMitvdDIzamp4d3kyRk5RcXk5VFJRN2JqYXc1OXNKVDkvL255ZDdsK3dqMHZNdTJUNXhHcktqbVhoVy82UWRPWTl1MHFlaVY1NDdEK3ZyUkpKNTVaUVBiT1ltWHpuYjl3bmtaYmE2TzFxUUVib09tNmxSdkE0aHNuTmYwYTJGREdYL2Jud3RoWXdKdG5icDRKTlRsOGMzQm5tME5yaTdOWld1akQ3RGp2YzZvRi9CR1F0M29OdmU1OWlQeVhQNmJXOWpmOHVoQzdydDZaenZIbDY3R2pJV0RrTlBwZk9iNXB4VTFIdG5OczJUZVlheVg4TDd5WWZsZFBSSVdGdkdVZlVyVDNLSGE3bXVCSnMrZ3pQYlhUSk4ySzdhdklYZjBqRFZVbWZBZU5vZTlOczJsa3BhcmJ1NDdTbWlDOFNuNGlkK3RSZk1aY3dlQzVhV2Y4Z2k3NWJpblphM2VCWHhUeHR5d2tOTmJGMlNBM2xITHM3WGNvUDFHRWx6R0dYamNzSkRqYXhRSm9PcnlWSXgrdXhHb1Y4UmswbHY2M3pPaHdnMXV6ZG5GaytRWktqcFlqcm5nVHh4NC8vRVplU3E5eFNVM25PN2IwSzh4V0xWRnpieVEydFE4QWhWKzhnMndjUk9sM0t6RmJmVW44MjkyRUdGMWpzT2JzSjNQSko1aXFyUmppaDlCMzRRM29kUjNmRTVnNDhmcFNncWRjU002U3BWZ2N2dlQ1Mi8wRUd3M0tBK0cyWTdxanNmMHEzZnRJYVRtSnhwQXU3RkViejMzN013dW5Ec05MU1cvdlpLNnF5RitYVGVUVU9VUW1scERmQlMxQ0x0bkpodm5QRXpyeld2cGNkd1dDdWFaSjA3SWNXY09hZVErZ0czb3hmVzZhZzFEVzZENm9vNmJRVHRUczYrZzlieHBGcjl6T3dUWEhPcjFXWFZZdWdXblQ2YmZnZXFUTXovamhtWSthdjl1M25yMzMvWTFUMlY3RXpKcUoybEYzeGhwZjlZYlgrT0haZEtMbTNreGtuSk10Vjk1RXJmdU5lUHpaMjhrdkRLVHY3UXVKSE5JRFM2VzdGdG1Xei9mejdzSTdiUTU5YjVtTEhoT09UcTZqRG9vaUxDME43eEFEUG9NdUpDd3REZis0OE9hNXUvNVJmTkpta25ERk9JN2VlejNaQjZzQUtQcm1YWFkrOXlHaGw4d21RSmZOMWdkZmM1K3hnWjAzWFkreno4WDBtMzhqL2dFU1Zudm45d1Ftc2w1N2tSLy83elg4UjE1TTlLZ0VMT1YxeXZOd2VzRW10L3EzaGNabTVneXBpMDVsSCtiTncwN2V1Yk5mcDMvNzg4NGRWUGRJWm15b2xuM0tBblVJYThaR0tueFNDVGRxa2RMR2NHVHRPdnFQdWI1aldkaFFpY09oUjIrTUppUStncERrNXU5eWxyNU42SFdQMG4rR1MzTUtTUjdtL2lhVUFYKzlpWXI5K3pGWDIvQWZGRWY1cm9Nd3BVK0gxNHE5L25acWoreW5wcUFjLzZUK0hGdXhHN2kyK1cyWmtNYUloMjlEQUtKL3hUemtMbDlCM08wdjBXUEVCVEJpRUlVckI1SDNVejREMHFLeFZsYWlpUXJCTDc0dklRT1NQTForTlZhVENsMVlCSUdENGdnZU5LelQ2NmdDalJoVGpaU0U2TkVrRHNHWTJyTjU3dDcvRDJFM1BFU3ZzY09RZ2I2emg1R2R2b200Z1M3SzlyanI3aVI2Ukgva3FLdkp1UHdEYklBV0s1WnFLNEZoWVFRTVNDSjRZSEtYN3NuMWlKcnBjKzl6eEE4TlZoNkV0ckIwUjJNN0k2dXdvaWlIQlo4ZllORU5VMGswZEJKY3RWWHdqNDNaREEzWHNQN3dTVTdXMk1rckxPWlFoVWxacW5aUXVHNHRHcjJGbzYrL1FVVmVQV1ZyMTJMdDdPR01tOFRJZThaejRNNDVMQitjeXJaL2ZkcmtrREFYRk9BYkY5ZldZVkdSeWRxME5ESlhyS2ZxMEdFYWl1dVJISjN0SFJPN3I3K1lINS85TDVYN0QxT1hYWVJrczdWNFpmb21KcDZWbWxOTFpTWGVJV0ZONzJCOVdDQ1cwbklBK2p6d0FsNTVYL1B0aUtGOGZjbTFGSjV3RTgzN0pESHlwZHM0K2VRQ3ZoaVF6S1lIWHNicU9QTXhtRW9LS2Z2eVRiYmNjQ1BmMzNBanYveFlqazl3czJub0ZlaGlJUkIwV2dTSHcrM2REbVRZcTg5US9zN0RmREV3bVhXM1BrNmRTZXIwbmx3TEdZSnZ2Q0xVMnJWS1pObmNqbmJXbmtFZ3EzRVZsSFlMZFJVRjNQTFJOdTZjTzROeEVWMG8vcFJWakIwWVMyN3VLWEtCN0hvNzl0SlNUbFRFa2hTcytBOWF2NVR5MTI4bGZNSzlxQXhhVkgxSEVwRCtUd29PbXVnMXNLTzVVdFB6bGdmcGVjdUQyRW96V0RkdU5rWFh6aVhhQ1BvZVVaUmtad010TmV2S2pTdHdETG1Cc2YrNjNXWGVQYkdMVXkya3BSclI0V2l4YytUOEhadzRITUdWZTE1R0M5UnVlSTNET3pKZGRIK05iOHN6U0NJUzFDcWtSbnZORFYxUUVBM2xwVUJQd0lHNXRBcS9NSmZid3l2MkFpNTg2MlBBUWRiaUJleC9hd1hHRnhjQUVIN1pRc0l2VzRpekpwOHQweWFRcy9jRytnenZvbEhTcXIrRUlkeEk1T2g3R0hIYm1HN2RUK0NZV1V3WU13dlpVc1dPZVpNNS90MGNVbVluZFhoUGRESi90b3BpYkE0dmZNSUQvNnlDemVRaHpEcjBjS2hsV2E0VmhHNjhYKzExM0xra0hWMTBIeW9Mc2xsYUFDcDlBUE9TWGVyNzlnT0hPRmxSanRWcDVzdnRHU1NFUnpJMUlaVDdab3h2T3NVckgrZFRsVENJeXhOREZUbldXb3ZLLzVIQzNKNU12ZSsycG9DQmZQQXI4amQrVDYrQmw1eGVLYzdhenBGTkJVU21Ec0NSdnhPck5nYWZBTGZwZU0xOERzOTdpc3g0SFdGeHZwUituMEhjWGJmZ0hkV0RoajNwRlB3OEdvcDNjZXpiZmVpbmUxekRweGVoc1VWa3ZQQWhFWDBpTVU2ZGpDNHdDbS96UWJMVzdTRFlZT0x3cXg4RFEzNzFmWWVtam1EWGYxL0JJRTNDZjlDRmhNU0YwblBPTERZOCtTL0M0eDVDeWxwTmZsRWlGMS9vTXRteVAzZ1ZvZWN3ZkVNMVZKekl3eWY1S3JjcGNZZ0R5L1lRUGlZRm9TYUxCcE12dmwxMHZ2djFUdURZOG5meEZjZmlIVGVJME40UnhONndnTU0zUE1iUnlDY0o2ZWxIOWQ0ZkVIdlBvTmVvdUE3T1ZNckJmNjBnYU54SXRGUlNYMm9uT01ibHMrdm9uanJETDA5ZVQyYnBTR1o5OXVTZlZiRFZkNkN0dFJCMnFpZWVlT0pLUVJBU3UrN1l0bE5sVXhGdTBHQ3hPN0RZSFZoRkxjT2pYUjBNanVXZUlzK3FabWhzS0RnY3FQVytKSVg1dGpsTmRIZzRzWDYvZmJjT3Npd0FBQ0FBU1VSQlZBTjZrOG1FMHluaDU5YzlmczNTMGpLQ2c0TlJxVlRuOUJoclFTSHF2c1Bva1J6ZjlKbDNsQkdIWFVOby85Z09WQjRuVmJ1MlU3UnBNN1dsQWdNWFBVMm8wV1VtcVVNVGlCazNnSksxNlJUL2ZBaDk3MVRDQjhiaTFYTXdnVUUxNUh5NUJqTkdrbTZiamFGSEFvRnhqUjBaTlJndnZnanpzUXdzSlNZQ2hxYWc5UTdGbUJwTHdjb3ZxY3F0cDk5ZHQrTWRIa1Y0Y3JQNTZSVVo3M0dPcnNFM2VRdytZaVcxV2Jtb0l4UHhqd3hBMzJzWW9VWWJwNzVLeDFRZnhKQi9MaUlvMUVWRzQ2ak1wV2pUWmtwKzNJY2hkUzdKdDE2Q1NnUkVnZHFNSFJSdDJVVGxMMVVrUHZnMDBmM0N1cVpsRFJ1UDJseE0zUzg1NEJkRllHd1k2ckFFWXNiMHBuaE5Pc1UvSFVEd2pjVTRiamc2Z3l2TzZ0c3ZCVU9nZXg5ckFnZ2I1bUtVTm1jZG9HalRKc29PNXhCOXk2TWtqazBBNlBDZVhOQVNOR3dvV25YN1l6VDBIa3pvZ05nLzUwdmY2VHo2OU5QLytCbFhFTUhhK0s4Z0NIYkFLUWlDSkFpQ0xBaUNMRGlkam85RVViem16ekk1dnlVZjI3bmljRk9nNEUvcHBMRllWdXIxM3YrbExSOWJBeTM0MkVSSmxHVzVVcGt5QlFvVW5POXdPQnkxSGlhbmZIcGZtNEFveTNLRk1tVUtGQ2c0MzJHMVdodkxsVm9MdERZQ1RuUTZuZVhLbENsUW9PQjhSME5EUXgwdGszSlBHeDBWN1haN2lUSmw1d1poWWFIZENod29VS0RnOUtpdXJqNmRLZG9rN0JvelBFU0x4VktxVE5tNUVteGhpbUJUb09Bc29haW9xSzYxUUJPRU5tVlZzaUNBV0ZSVVhIUkcwck8ybHR5S2VoeW5JMlJ3dHRJUUpSbUhVMnI2a2FRL3o0TEk3bngwdVIzV2xkTVZ1elY5TGlrYldvRUNnSXlNZy9YdVIwTnFGbTVDTzQrUGdIcnc0TUdsa3VTMDRPb0Ewem1rZXU1NlpRVjc3VnJDdlp3VTJ2WDgrL3BwakFqVEExYWUrK2hidnM0cXAxUUtZTXRUVnpYVkNuNjFialdQN0NqQXo1MmdNL3JDVWJ4d1VlSWZmelZxOXZERnBIOHo0K2NuU0I5d0Q1TU9yMnBxNUpxLzVCNU8xa3lnbi9FQUI0NGtNUEdwdVUySGJadVFST3lIaHlpOEo1blFwM2ZUcTU5YTJka0svc3l3M0gvLy9RMGRtS0l0L0cyTlQ4c3BvR3RTUnRTd1lOWk1rbnE0MHRwWGZyZUtSUnNPc25yZWNFREY1SkVYY3V0RU14UGZiTnVsZk9xRUNidzRQa0ZaSWdVS0ZIVFA2cEhsdkZZQ1RQTFEzRnJxYTRLQTZEcEc3Z1pOcTFlVFVBUG9HZVNQcGFuR1Q4MlFYbEVFNjl2WExxcXJxOWh5Sklmc0dzdWZhRWtFVkY1ZWdJaEtyMjlSSEM2cXZCQzFJb0pLaGRncTFWelU2MEVFMFV2djRqbFdvT0JQREtmVFdkQktxTFh5dFFteUlBZzBCZy9VZ0N4SlVzNFpPYm50SnQ3Ym1jV2NTWmQxK3FjYUx4MzJrbkpXN1M5aDYvSjFUSjh5aGNjOTZHSCtzUEMvZ011M0xnSGcwdDNMVzN4bHZIRXhybGJGMDJoTnhUanF1MTBBOVBoNGg3S3JGZnpwWWJQWml0clIyTnBOK1JBRVFWWURzdFBwek82MllKUHN2UDdGYWh3SnFTem8zem5OeXJRSmFVeHovMzlaN21FbXZMZWQ2eS9vU2F4R1dUUUZDaFIwalByNitxSjJUTkRUK3RsRXR6UTgyVTNGa0U5WHJXYXJHTWNyVS90M3U5VlZhSFFrVVk1NlRpbjg0QW9VS09nQ1NrdEx5K2lDajYzUkhCVUJ1YXFxS3F2cmw1QkpYNytleitwQ2VPZktGUFJpMTQ2cHJEYzMvWloxN0NRRittRDYrQ2dMcGtDQmdzNlJtWmxaNFNITXBFNU1VUVJCRUx3QnJTUTVpd0d2VHE5Z0xtYjBvaStvMVhuaEpib2NkZHJRWG14Zk9BR0FKOS8rZ1BSaUcxVm1CLzU2TDVJR0QrUERHUU80NzVYMzJPUHd3Vjhqa1ZjcmNlL3NxY3pyRS9LYlQ5QnZ5ZTZoUUlHQ3N3S3JJSWpYNG1walVJK0wyYU5PRUlSNjkyYzJRUkFjb2lnNlZTcFIxbWcwc2lBSWd0NHQyTFlBeWVkdWJCSmwxZldZblFMaEFiNTQvVTRKK1lwZ1U2RGdmd3VTSkdXb1ZPcEZ1Tm9ZZUFvMms0ZGdjN29FbTByV2FEUnlZNDZCTEVsU3BpaUs1MUN3aVlRRytDbXJwRUNCZ203QlpyTmwwZGEzMXRySEpudVlvWWlDSU1pQTdIQTRNcFVwVktCQXdmbUd1cnE2M0hZRVdwT1ByWFVPVzFQd0FKRE5adk5oWlFvVktGQnd2dUhVcVZNRnJRU2FrOU9rZkRRS3VjYVlwbno4K0FsRnNDbFFvT0M4dzlxMTYwcmNnc3ZwSWRUYXBIczBtYUdpNEtvOEFPVFUxTlJ5U1hLZUFIci9wcU4rNTlLMm4xMXdOYVRNVTFaVWdZSS9PV1JaL3VYUlJ4ODF0elpEM1hSRm5wcWFoM0FUbTRyZ1pVQ1NKR212S0lxOS84Z1Q1VldUaTZvd0U2cTcxNVRXNzlRcFJNY0pVQ3NzR3dvVS9GYXcyZXlIMnpWRFpTUUVXUUpCUnBaQmxtUkJsaEdjSURqa3B1QUJnR3kzMi9kMWZpa25Pek1PczJqbEJ1NWR2b24zOStWaWE1YXZaT1hsOGVtMnZieTY4U0MxclczbC9CeWUrWElqOTYzWXpFZVpoWCs2UlNyZnQ1bXhUMzdSNHJPVDI3NWwrcjlXdC92M1A2NVp3ZWpaZDVFODYxSDIxbmg4NGFobDBaUC9ZTkFWZDNQSjRxOS8yNXR3RkhQdFRROHk5SXFGWFB2R0QxMCs3SVVuSCtHL2U2dTZkYWxsLzNtTjBkZituZWdaejNBMjJWQy9XN242LzdOMzduRlIxZm4vZjU0ekY0WmhHRVlZWUVSRVJGSkRSRU15SkRVemM4M016Rnh6eTh5MXNqSXoxM1ZiYTExei9mVTF0MjI3bUd0bWRqTXoxOHpNVE0xWU5EUFh5c3pJQzVrUklSSWlJZ3pETU16bGZINS96SVVad0d2cVZzNzc4VGdQWmM3bDh6bm44em12ODc2K1BwelI3SE0zc0t1b2xCTXRLTC9talpmSkdUV1pubVAvU2NWNWUvQXU5dTByeHRhTW4yLzVpMDh6NS8xdnoraEtCYXRmcCsrNDZhUmQrd2QyMjg1aEZ4VWJVNmJQNDREOTNKRUlIcmZhRHJaaWhnYjcyUENUVFVwSXlGSlQ4QUIvWk5ScXRlNDZkZWZyV0xPcm5DNnBIYmdob3gyYnQrUXphMnVKYjJjREwzLzRCZnNyanJCbzY3NFFZRHRXZG9EZnZicU51TGJKREwwMEdkbmx2dWlBemUyb3AvUm9iY2h2c1IweXVPdnFMcTBjWGNmc2Y3N0h6UGxQc252Vi81RWQwN1NuL0xPUGVMazhnWjJybjJYOXd6ZGUySnRRVzFqMnl0K1pOeXFMR3J2cjlFSDlhQ1ZXdStlTW1ycjFuc2xzV3pnSmRhMlZjL0dxNUc5NGo0SUR4eml3NXh1cTdjZVovL0phcWs1bkd0cExHWDcvaTdTNk9JaTltQmt2RnJKczZiUHNYdlpITE9mdHdkY3ljZEpjaXBvUjQxaXJxNm11ZDUzUmxRYU92SjF0Uy85Q2txdnV4RVN4WnlHRm05YXlyMDBXbmZYbmpvNm1xUGpRRDgyMHRXQWZtNUQ4NE9ZRE9GK3FoMUFIMjZtalI5K3lhL1BtQWh0dzRtSW4yY1RqNDY4Ti9ObkdmcFQ3ZHY4QS9WTUJQZjgzWVFUVWxyRDI2MDlEVGx1eGJSZlhEUnJJdmJsSkZ4V1lPWTRmNXNtWDExSmNyMlZvdWk3a0M3enN0YmNvc2lwWUxzME9PV2ZudHYrdzVzdHZLYXgyczNybFcyeFRSVEx4enB0SmliU3orTVYzMkxYM2F4eFZHdVk4dDR6WWpwbE1HOWJ6WjNHdmJsc1ZpMWZtcy92N0NoU2RrZEUzM2NEZ2pQZ21jQ3Y5aG9mbXZJbE5uOENVMzQrZ2E1eTMwTVYrL0RBTDN0aklubklibWJsOW1UcThGNmRLZzFZYWpyTm8yWHZzK1A0WXNZbUpqQnM5Z3V5MitwTy8wQU91WXRuS3RiejhTU0ZibERVOE5QNG16S2Z3TEd6NVlCMzVYeGRqclQvTUU4OHRRNC9NcldQSGtORkdKdi85dFd6Wjh5MWxqZ2FXdlBRbWVsMGMwKzYrRHRNSnI5YkkwdGMzVWVPcTVxQTlnYUdkbkt6OC9CalQ3NytkakRnTnV6Ly9oQlVGZXlpdmJTRHQwaDVNSFhNMUpnM3MvdTltVnUwOFNJbTlua1dMbG1IUlNBeTk0VWJ5VWcwK0JiNktKeGNzWnM5UkdELzJ0d3k0cE0xUEdFUTd5OTlZdzZadmptRHBlQWxUYnh1S3hRZFVaVVc3ZVdMRlJ5aHRraG1lRlk4anRoUERlN1FMV0hLTC9sM0FyVk9mRHJIdVZpeC9CMk5xZTlaLzhDbTZ4STVNLy8zMVdIeDFtRFVsKzFtMjMwbU85a2VXRkJTUjBPa3laazY0Q2owdTFxOWV4Nm92ZnJDOXNXSHJrV1phbWdkUWhOY2M5Vk9EQzBsQ0tJcUNyY0dEcmRHRjdITzZDVUQ1NktPUEZDSEVqak41RHZzcnEraWNkS3JTS0JkN1MydUpFY2U1Yy9GYjNQcnlCajc0b2VaaThCQXdmZHBzRHVxN01HbFlOc3ZleVEvYXB5STdweWRkdFVkWmxCK2FRcGpjSVowaHVkMHdTUkhrNVdZekpLODdSZzJBaHQ2OUx5T3ZjeUlHY3lKRHJzeW0vNlZ0VDlvRDY2RUR6Rm40SnJPYmJadUt6djNpWk03cUNxcTFDWXkvWlRoais3Vm42b04vWVh0Vms1YTI1SjB0REJvMmhOeW9IeG55aHhleEF6UWNaZFNFUjZtTTZjeVVXNitoWk5QclRQLzMxNmRzYThuOHAxaC9KSnBwZDl6STBPNEpWQjF2T09VNXhRZjJzK09IT3BMajQwblFPZGoweWQ0V3BsMXpTZXQ4S1VONlg0Sk9ZNlQvbGRrTXViSW5DVHJ2aTVuZTlWS0c1S1NqMHhrWWVHVTJneS92Y2dvYTZrYVd2dkltY3FmZWxIKzhuTVY3dGVSR1ZmREV1MThCY0xDa2dwd3I4NWcyZGdnY0tHRE1zNXNBU0VycHhKQXJNNGpWYU9qZE81c2hWMTVHU3BzbTZGKzk3aitrOWVyTHNJNkMwWDk1aVovQ0xmSHFNLzlnZm1FOUUyOGRSdXlQWHpENHJ5dTg2bEZ0TVVNbnpTY2w5eXBHOXpJeWJmWjhWbjhaWk5EYmZtRFRnU2o2ZG9zT0FiWlZiNzdCak5jL1ovU282NGl0M01uSXVVMnVrNW9maXBqOTVIUE0vMjhOSTYrL2lsU2RDd2RRc0h3SlU5NzlqdHQrZTkwWFRwZGJhY1VFOVp1aGlpS0VrUERxYlkxdUJZMUdUWXhlRzRpS0JzRE43WGJ2MEdnMGcwN25JWlIrdjVmbjkzcDRjZktscC9vTVlITzVXYi92Q00rUEdZYXQvQnNtdkxhUmpnK040ZGRNRHE1VTdHWEY5M0hzZVdrZ0ZobG0zdDZmVVIvNEg3ZE1ScmNNNU1PNzRmdlE4eXp0TzJCcHI4T2dpU0NuVndhWkFhMUNRODhlR2FqTGQyTW9qNlJ2ZHNhcExVZU5sZ1J6U3gzQ29EbjNOVzM2bEV5bUQ2L2hzMisrd3laTVpDUTQrR3hmTlhuOXZWcmJtTnQreStEc1M2RG5IYno4MW4xc09UeUoxRDBGN0V2c3c2clJWeUFEYys0Y1NzYlRXNWwvUy9lVHRsVjkzSXErYlF4cHFSM28yU1h0dFBvbkd5ek1lK1ErWHA3N0RFTm0zQWRGM3lPZndtcEs2ZGlKbERnM1dtMDB1ZGtaSWFabWFxZExTSTJwUnhjUlRWNTJ4a2swdGVEdldSeUQrbDJLODBNelNxL0xHT0NwWjlVWDNvL01xTi9lUlBHM0J5bjZzWmJNcnFuTVgxY0VEQ2FoWFFvSjdmUVlOVnF5c3pQSWFhYVlEaHgySFNQN1pNRGwwY3hlT0k4U0oyU2NWZVZmRFV2WDcyZm1xNCtRbDZJaHI5TTRsdlNmeTI3N3JjZ2ZmNEl6YXhEVGgzaXRnd2xYZjBoaDhFZnR4ekxLWXhKSWFVVUR2dmZPMituZlBZYitLV05ZK0p0RkZEOTZFMm0rNCt5R05CYlBIT00xRWZNQUZKYS8vekZUSmovSFpSMjFlMW94UXoyQVI1Szg0Q1lFSUNIOGE3cW8xU29pSXlKUSszSS9oUGNnSWVycTZqNkxqWTA5NVNNNDltTUo5N3oxRlhQdUdFSG5xRlBaMUdyMGFoalcrekpTalpGZ3pLSlAxSFkrSzdmL3FvSE5XVk9MclUwY1p0L2pzY1RHQXhkMlVUQTVRb2ZGM05JME1lcFBIZDFkdHVCSlpxN2REOGc4OGR4OFJuZUpQUG1IYmxjK2cyYSt5NUJCdVNSRXFhbXllM0M0bS93L3lXYmZ2SktOV0dKY1ZOWTBJbGRXWWozNERTTWZQQlE0cm5mSFMxSGdwSFJZOTk1L1A0OHNXRUgyc05mUkpYWmsvditieXNDT0p5L1pTK3ZVQVlBaE4xOVBFbURzMnZIQ1R3cFpqVm9HV2FWQzFraG9aUlgyUmdFME1IUEtJMndScVF6cVpvSGpWVGhjcHhlQk54dDk5NjFXb1ZhNVVjUloreEtvckRWZ01mdElFaU5OSkVUWktEOE82dG9hTE9ZbVd2K0UySmpRanppZ3lGSXJGOVdRbE9BN05pYVdCTWxLcFIzU2ZGMU83cGpjek8vVlNFVlZJME1zSmc2VWZGdmNHcWdGKzllRWQwT1NaYlFvMURjNHNOa2RoUGpZQUdYU3BQdDNyRmp4WmkwUWM2TDdyenQybUR1WGJXUHltQnU1eXFJL2pTZW1vV09pQVpmYkhYZ01MbytFUnY1MUwwMm5qVFZoUEg2TUtnVXNNbFJVSGIzd1ByN3FvNnovNlBNV3p2Y2hwbFF5MjBhZjlOeXhrNmN6ZHZJSjdrMmp4dUVLRFFhc2VtY0RJeWRPWmQ2SVRvQ0w0aTN2aE93dnE2b0N6S0JZcWFqVmtSUWJRWEpDQWdsWmJkajQxTmdUYURncVpMZW5SVVRTMUw0ekMvOCtDL0N3YlA0L21QbmFGcmJQSG41YXo2UnJ0elBNYUpJbFpNVnp4Z0VNbTdXV0tyc2cxWElhdXR5UGUxbjRUUnlsSHp5SUFTaloralpQZkZFU2RJQUUwcG12N3VhMDJ5Zy8za2h5dXppYWtjK2pWU2s0Z29kUWJTQWh4a1pGbFF0U05HQ3ZvYkxlUUZJYjBKbmpLZDNXRlBNdHF6Z0tRZDhSWFdJOENjY3JLVmNnVFE1MVE1VWZxWUVVRTlSV1V5bU1tSU1nUTI0QmhoRll6QkdVVjlUVVB2cjRNMlVuQUxXUWtpclpWM0VRcWRQU1Jxc1JHaFZlalMxSXhNcVZLOTNMbDcveHNTekx3MXAzbDlVeCthWDMwU1Yzb2Zydzk3eCtHRlNSSm03dDZhWDUvdVNyUFJRZnE2TFIwOEE3bnhTU250aVc2OUxqdWJIWHBVd28rQzg5alRuVUh6N0k1NHFGdjdhTCtGVURtNXlRd2EzcHg1anh3bVltWDJIaXNUYytob1MrWHNDcFBjcTJmWWNwUGZBajlxTnE4dis3RzFOQ01qbWR6aTJWazZsVGR4Yi9yZnM1djdlczd0MG9ldWtkRm1mcFNVMXV6K0FlSFVocGw4Q0tyVnZZMlZWaTM4Y2ZzUDRISlVRalgvbkcyd3hPR1UzbHArOVQycUVmZmR2SzZFMERTVnYwQ05OZWE4ZXRWNlJRV1ZMTUhuc2JIaHFaNHowcHFoMEQyaDlqenZNYkdOekp6TUNCbHhPcmhsWC9YZ1h0dXRMWnJHYm45NVdrWjE1ei9nWlNuMGhYZFJrTFZueEVYdHNvY2k3UDRYUys1eHZmWE15WWRSNXM3ODA0OVJKd01mRWtPYjVqMlVkN3lORTdlT0tsRHduTmxUZVIwZDdEb3FVYnFleG1KaU1yaTdRMnA3WTNDemU5emVWemQvSHRaODhTdW94U0RQMTdSUEhVb3JjcDcyVWhMNjhQeVFZVDQ0WmV5bVBQTGlYMnp2NXNXL1VtdXY1WDAxTVBjcjkrSkQ4OWsrbXZwWkFUV2NXcm54NGhOM2h3amVrTTdsakw5cUlHMGpKQ05mdEZMeThqTS9JM2JGKzFrdVJyQjVCK1VrVlU1dGJyKzNIUDh5OTlldkQ3OG1BejFCMENic0svTXFXdlJsUW8xRHNFa2lTanVEMm8xR3ExSklSQUNDSDV0SC81NFljZlRsQ3IxYTM3MlJRWHg1MHFFcU0wT0Z4dUhDNDNqYktXM3NsZU0rT2JIMG81MUtnbUp6VWUzRzdVa2RGa0prUmpUa3lpbTc2UkRWLy93STlLSkErUDZFY25neHAydmRteWpiYmRJYW43ZVptampkWGxLSFZIMGV2MVozUmViVzB0MGRIUnlQS1poTEpWRE9pWHc0R2RPL2pQL3FQY2Njc3dPcVVra2R1NUxiYUtVbFordklkYUtab2VTVkdVVmxSaDE1ckk3aGdNYkZwNlpYY21xaFVOUHlvdWdaeU84Zjh6ME5hWlV4amMxY2dYUlQ5UXI0bWhkM29pR2QyekVPVUhlUHVqUXFJdTdjdTkxM1NrVTNwblV0cDRQMkRYWDNVNS84bmZ6QTlTSWd2K2ZDdUprU3JRUkhIemIzTDQ5c3N2V2ZmSlYxUTZ0UXpzY3hrZDR2UUJOOFkxQTNMNDhidGlTcW9hNk5HakM5RnFzTmRVc09tVFhlUi9mb0NVN0VITXZqV1hpUE8xNkkyazR6Zjl1MUY4c0pqaThtT2tYWnBCZkdUUW9HZ005T21SU212dmEzeFNDbGQxVHdreXExWDA2SkZPSkpEY3NSUEpNVnAwSmpPWFhaTEc0T3kyckZ1L2xjL0xHbmhnd2syMGl6ZlRyMXY3d0F0L1ZiOWVWSlY4ejdlSGo1S1lrazU3azlZWFhPaElla0pVWU03a1pIY2gyRHNVYmJZd29OY2xOSGNrOUwzeUN1b3JTdmp1eCtPa2RlMUdnbDZpWisvZTZLdS9aK1htTDlFa1o3TGd3WnVJMWtpZ01YTFRvQ3dPZkYxRWpiNDkvUklhT0dycXlnM2RMWUg3U2hCVkxOaFZ6MjE5T2dhQ0J5dmZmSThieG81aWUvNFdHaTBaTEhqZ0JxSTBUYzlPWnpMVE96MDBTYVpqOTU3RVdnKzk4ODcydlljQUo5QUlPSHovT2dHWEgrQlVzcXlvSkFtMVNrWlJCRTYzQjZjaUllbDBPdG50ZGt0Q0NGa0lvUkpDYUV0S3Z1K2VrcEt5N1lLOElSZTRwS3IyMjg5eGwrOGpMdTdNS2c5S1MwdEpTa3BDSGE0OENNdEZLa1hmZkVkcXAwNm9uY2U1OWZkL1pPak1weG5mUGNoajVhcGgxTDFQTWVmWjJXUVlaTURKcUJ2R01YYlJDa2FjR2YwaDcrUnZ2Mi9rSCtiOVNDZ0htMDJDZWlRYUpTU25KT0dSSkVsUnk3TFFxbVVSb2RVUUVhRVIvdUNCa0NRSjRZMHZDRUJKVGUxWXBDaWVQVUJtZURqREVwYXdBR3o5Y0EzalpwZWhTSkVNSFRXSmNkMmJ1ZUUxSmxhOU5DZkVMNWpldFJPeFo3aGdreUxFdnBGL21IZXNtUm5xcG1XNmg1QjhPV3orSUtoS2tsSEpFbXBabGdueXN3WEF6ZTEyRjZqVjZsOGRzTGtqWW5ESHBrRkM0cG1ac0xVU0lqNFZOT0ZsdGNKeWNjckVPUzh3OFF6UG1mZmFXMmZjVHIydC90TVQrTlk4U0pJWDFDUUVrb1FreTk0SXMxcUxTcU5GMWtZZ1IrZ0M2UjVJa3VSVDJyeUlhTFZhdDhUR3hrNzV0UTJPUjJmQ0pVZEJ3cG5weG8yVkxrVDhKUkNtQmc5TFdNNnJmRk82Y3graGFSNXV3Q05KVXBER0ppRkpzcEJrRlpKS2c2elJJbXQxeUZvZHFnaDlrOGJXTEo5Tk1admp0eW1LNXpEUTdyemVSZmJ2V3Y3V3RudDRkTU1TbG90UWhCRGxsMS9ldTdTWkNlcmZmSlJGVWdocnJpekxnVTJsVXFGU3lWNWdrMlZaZUR5ZVlGTlVBQjZQeC9PQlNxV2FjRjd2Sk15N0ZwYXdoTVVuRFEwTlcxdlQxb0syRUI0MldaYUZIOE84d09ZRk43azFqYzJQakhWMXR2d1RkYURHYXVXSFk3WVRzd040UXRPZkZVWEI3UW5kZnZXaVZMTmk4U0lXTFZyRSt1MUZ2N3JicXlrdll2V0s1U3hmZHlFQzZFNEtWcSttMG5FUnZOMk9LdGJuZjNiQzNmdTJiNlN3TkxUV2V2ZVdOUlJWdEY0bFdsbThrNVhMbDdObXkrNW04OVBKWndWcldiNXNHWHRLbTdoNFBpdFlUNVh6ZjNQckJ3OSs5MVV6VUhNRDdsQXpsQllhV3hPZ3FWQ3AxRjVnODI4UTREWVNnQkliRzVzUEhBNTlHRFllZVBwVnJsKzBqajhzZTRlK1Q2M2l2NVgrQXVSRy9yN3NiZkwrOWdMcGMxWlNGampKeFVQL2VvMis4M3piNHk5ejZjd2xmRlFqZnVVelZNWmdNRkM2NHkwV3J0N3hpK3U5dTJRTG82YzgxZnBPNng0RzVWM1A5cUpTS2lwck9QK2ZLVHRQVEh1UXdvdUFPMkhkTTM5aS9iNFRFNld0WC93d3E3ZVhoZnkyOGRXL3MrMkF0U1ZHbG13aWQrQ2Q3Q2t0bzdJNjlPR3RuZmQ3N24zaWJjcktLN0RhbTJvN2JIdldNSDMreHYrSkdkcWpSNC92ZmVEVjNBeHRLcVh5RllZR1k1Y1gwSm8ydFUrRms1clNQaVFoU1NoQ0NBVlFQQjdQQnBWS2RWZlR1NnJobmxFanlHenZMUk5admY0OTV1Ui96WVpiZXdNcUJ1ZmxjdGVnQmdZOS8wVlFselU4K2NEdkEzK1ZGMzNKeU0zSDZXT1NmdVc0Wm1MWXJXUFJWWDlDWWNrSnRKN0tNbXJjT2xLYk02UW9Uc3BLeTVBTlpwTE1vVFdRRGxzMTVaVld6RW5KR0hYbkthOU9VWERVbExGcCsxZTQzVzZRWmRUKzVHUkZ3VnEwazFMTFFPYk5uTzZkV0tkMVRVQUdlMDBWbFRaSVRXNjZaNmU5aHJJS0swbXBLZWlDTCtaMlVGSldpU1hsREpkdVZKeVVsWmFqajdVUWE5U0ZkS0t5ckJTMzNreFNyT0gwQU41aHBjb0dsbGd0WmVVMUpDVmJtdTdYTjA0NmN4Sm1RMmc3MVJYbFdKMXFVbElzSWM5SEFSUzdsYklxRzhrcFNhR0p2YzVTNWkzWnljTGRyN1I0ZUJXbHBlak1MV20vRkxlYjZVcytRYTJXVzFoSnhUdDJZT2g3QzdPbVQwT1cxU0huYk4rK2czRlROak41Y0doKzVzRHhrNWlhL1FDbFU0YVFjZ0ZqWlhhN2Zjc0pmR3VlSVArYUFnRWZXOEFNOVd0c2FyVUt0VnFOMm1lUEVteVMrc0tqQ3VDcHFhblpFQmNYMXdSc1JKRFp2cWtVS2lVMkJzY1JmNkd6bXN2UzJrRnR5VWx2NEsyZGV4bVdmVFVYZFh4UnNURjMvQTI4V3VnbVJWOURsYkV2RzljOGowVUg5cklkREI1MEc3cjBuc2pXTW1MNzM4K0t4OFlCc09YVnYzRFgzUFZrWmFaUWV1QUFNNVovenFnc3d6bnYzaE9UaDdOKzV3L1lEbFF4YU1oMXFPVkVGcTVkUm1jZFBEWnhDSnQySDZibVlBMURobHlIbkhvVkc1Zk1QQ1c0amUvZEJuMy9DV3pOMzRKZWRqQmd5Z3M4TVNHUHRmTWZaT3FDcldSME5sTlUyc2lyYTliVE44MklyWFE3Z3diOURsMTZGZzZIaTVvZ2pxRXhtWkdNV3RYQXFLNVFzMk1KWGFkK1NzV09Gd0U0c0cwcG84Yy9TbXpuTEp4VkpReWE5aUt6eC9UR1hyNkwwU051bzhxWUJsVUhTQjN4S010bmp6MXB2OGZudHFYRW5FdnBycy9vbXRzSGEvRlg5Sno0QWdzbURhUnkzeVpHanJrZmJYSUdOUWYzTVhENjh6dzVjUkJRd2Npc2ZsUW1kQ2FXR2c1VW0xaTUvbTJ5TERvMlBuTTNqNnc5UWl5TjJLdUtjR2JjeWZZVnN3THZRa25CS2lvNi80YVFJWFZXTVduRU5XeXJTY0NFQTdldG1zRkRmSXB6NFRwR1RudVdvbDNibUw3OFc2WU9TZmFkVk1XVWtiOWo1OEVERkZmS0RCbXlHVXZ1TFN4NzdDNUt0eTVqd3B6WEtOcFZqcUg4TnRZOXBXUGNySmNZMTk5YkZvbXhKNE03bDdPcW9JUnBRMUl2MkN1eGI5LytMMDlpaGdacGJLRkJneVlUMUd1R3F0VnFTRTV1aDlsc2xxS2pvNldJaUFoWnJWYXJaRm5XU0pJVUtVbVNVWktrQkNHVWZVSW9vc1htckJQM1BmT1NXTGozYU9qdk5jV2k1NnczeGFGV3puSFZIUko1czVlSy9RMnRYTzhDYkVlT1ZJaERodzZkOFhsZmYvMjFhR3gwbkZXYkh6NTNqN2orankrSC9QYkRCMCtLeEY2M2lGcVBJb1J3aUQ5ZmY2bDQ4SVd0UWdoRi9PZTVlOFhWOXkwTUhCdmM3dTJYeFloWFByZjYvbmFLeGtiM1Nkdis4YVBGb20xaW9raHN0ajM2eG1lbjdIZkQxOHRGVEs4N1d0MTMvUE9YUmVLVjk1elJjN2lqVjVTNDVyNW5oTXQvL1FhN3FQMXFsVWpzZUpYNHZ0WjdIMSs4TVVQMHVuMnVFRUlSejk3ZFIvenU4VFhlOXI1YUlXS2tSUEhoajk1emIra1dJZDdhNyt2TGZ4ZUx4Q3Z1OUxiaktoTlh0NDhYcjN4UzVtdlhMWTRkcnhGQ0tPTFJtN3VMKzU3Tjl4MVhKVzdzMWs2OCs2Mzk1SDIrSWxHOHRkOHBYdnZ6OWVMMmY2d1J4ejVaSXJyOWRvNFF3aVorZjNrNzhmZjM5d2doRk9HcDNTTjZ0YjlVZkZIckhjL2EycWJydnZibjY4VHR2dnZZOFBTZG9sMi9lMFc5VUlSb09DaDZ0V2tuUGo3YTFONWJmN3RGM1BqdzBwQStmUEhHSTZManRkTkVvMUNFYUNnVlY3WFRpRWZmTEF3NTVzL1hkeEJQYnlodE9XL2ZuQ1Y2M1BGRXEvZjJ4K3M3aU9jK0xHOTEzK3NQM3lodStkdktDL1plS29xbkNCZ05EQWNHQWJsQU55QlZrcVFFSHhaRnlyS3NVYXZWcW9pSUNEazZPbG95bTgxU2NuSTcwdFBUeWNyS29rK2ZQbHg3N2JXb1pWbmxqeWhJc2l3TFJWRWtYeERCYjQ1Nm5FN25lMXF0TnBSMFRYSHhyN2MzNEU2L2duc3lUcjg4YWR2Ty9jUmYycFd1T2k1cTJiWHJTM3IydlFhakRLQmx3T0E4SHR1NUd5YjJKYk4zZnc3TS9UUGo1Ukw2NXZWbDVNaWgrSW1rQmd6c3k1eTdidVRBeU92b08yZ29RL05PenNsbTZYOFg1UlYzL1d4OGptUEdqZzJZWGpxZGpoM2JDbEQwc0dqdVg3elRxcXFJUGJ0MEtNQ3VuWHNZT01GTEdtREtHa0JQODZrTlh2ZUJiWHdtOTJadFhsS2d6VmlURWFoa3k5WUR4Sm8vWU1hTUQ3MDZqZHRCNGU0U2hxZDNQY2tWOVJnTWFqQWFNQmxpTVJqdE9PdzJzTzVqeTI0N2NzSHJ6TmpxTlJXZDdsTDJITFNSbmExang2b25XYmppUXlxdERtb3Fpa2tkZFhQZ2lqMXplNk1IMENXUm1sQkRWUTNnczhxcnE2c3dKWWV5Z1JUdS9wSzhBWGQ2dFRwZE1nUHowcys3VDlNWWE2S3E3TUk1Tkd0cWFyYlFzdElneEJTVkpFa0pyQnNhRWcwTjhxMnAxV2cwR3E4cDJzd2NGVkpUdHE0Q2VNckx5OWVucHFZK0ZCVHlaTVY3Ry9oWTdzZ3IxMlZ3MnJYSFNpTXJzU09ncEFBQUlBQkpSRUZVZHhZemNzUkZsdUp4aHNYWkNiM0hzRzkzTGdYNUJheGUramVlWExHZGZXdm5JZ01Ubm55WC9ydTJVYkJsQ3pORzlXUDN3bzk0Wk1TSkMwUXFkNnhnOEwxL2IvSDd1Tm12TVcxRTFvVVBwaGhia2c5WTBub3hZb1IvN1lZYkdUVTU5cFNQek92Vjh6cnRGRVZwZXRGUGVxS2VBVU52b25lQzk2OFJJMjRrSlQzbDlBWlA5akZFZU9FVFVGQzBaZ2FQdkpFVTJYKzltMG5ycktkOHkwSW1MUGlDL0kzdjBUWEJ3UG9uNzJSK1JSTVVxZVVUKzBXTkpoTldxN1dWUHNnWGRLUnNWaXNtaytHQ3RiZDE2OGRmTlFNMTEwbk1VQkdhdHhia1cvTUJtK3hQYUdzQ3R3QlZlQ0E2bXBiV2FaK2lLSnQ4c1F2ZS8vQkQvbDFuNXNXYmV4RjVCcy83NkEvZjhJbW5MY1BUREJjVnJsbGkyMUpjWEJMeWxjM092b3pkMi82RFZRRndzbVhqZG5KeWVnWW1sU0VobFJHM1RtRHhNdzlUc1c4L0RwOEQyV3ExazU3ZG40blRadkhRK0w3czJYZmdwRzJiczRlemZ0MTdyR3UyM1RXNDZ5bjdyZFhwVUtxcmZIMDhmVm4yeEJUbUxzMC9yV096K3c2azZzQlhKR1gySmpjM2w5emNYTko4UVlYczNKNFViUEdta3RRVWJtRlhWVk5IWXMxR1NrdThrY0VkMjNZRW5xMDZ2Uys5bGM5WUdZZ2FLdFRVV0lFRUJ2UlA1bUNGTTlCT2RrYm5Wb0gyOUZTYVRBWm0yQ20xeGdhdWw1bWVodEVnVTFGYVNrTFhYblJOTUlCaVkrMjZndE8rYkU1MkwvYnRDYVdLejg2K2pPMWJ0bmxYZzNPVWtiLzk0UG4zZCszWlEwNTJ6Z1Y1UDl4dTkrWVJJMFljQ3dJMkZ5MFRjNE55MTZTUVpOeGczNXBHbzBhcjFhSldxOVYrVVBORlIyVWhTUXJOelZHN3ZXR3R3UkExbUlZalBGN3dIVlpkQkFQbjd2ZStBUEZwZkhMdjFRRE1YdndxNzFjNHFYTzZ1WEhPUzJUMnVKelhidlJxQm05L3ZwOSt2WHBoa2k4cVhDTnorQVR5WHI2SnRLNXZrVFgwUHRZK05abVVRUk9ac3Z4OWNuS3VJa1ZucGNyWW40M2p2R2JYWnl0bU0vR1pqOG5zbWtKeDRXNG1QZktTMTNUQnpVUERlN0JMU1NmSjZLU3d4TTN5OVlOUHJtOW85U1FsbjkzTEs2Y1BaR3J2WjhuSnVneWpJWlZsQmUvUTlUUXV0V1BUVyt4Tzc4d2o0MDdOTUcvTUdzSGlTUjh4c0dkM3VtYW1VMVZ5a0s2ai9zYXJNMGR4MXlOL1orWGczekZnNjRzNDNZTGtJRk4wM01TN0dUcStINXV5T21NeFJ5RGpXL3RCbmNTaTVmOWd6TGlyV05ZMUU2V3FqRUZUbjJmbW1ONDhOUDhWeG82OG5aemx5VmkwRGc2V0NaWnQzVXJPV1ZIZzZabjM2a3VNSG5NRGE1L3FpczVaU2FtdEhmazdWNUUxZER6bUo2NG5iL0NuNk94VldCTFNUdnVxNllOR1lwaDJHd2NkaitGZit5ZHIxQlNHTGIyR25MeHJpWlZkS09ZbW1wK1haOS9CeS9uRkZPK3JRRmR5RTZzZTB6Tmo0WHNNeXpLZS9ZUzFIMkRqTGlQTGw2VmZrUGZqMEtHeVQxb3hRVjBuTUVPRkpNbEIwZEFtVGMydnJXbTFXcVJ1M2JyUjBOQkFRME1EalkwT3FiSFJpY3Zsa2hSRmtSVkZrWVVRYWtEN2YvLzNtUEhoaHgvZUJyVC9KWU5NWldVbFRxZUw1T1F6cXhUYnMyY3ZuVHRmZ3ZZYzE0cldWSlZqZFd0SnNZUytYVTY3bGZMS2Frd0pTWmowMmhiblZOdGxVcEl0cUg4bEh3bTN3MFo1UlJXeGxpUU1PbTN3RHNyS3FraElTVWJiN0Y1dFZlWFlNR0l4dDJJQktFN0tTOHZSbVMzRUdrSWR1dFVWcFRqUVk3R1l6NEdCcDFCUlZncTZXQ3pCYVRtS2s5S1Njb3lXWkV6Nk0wdkpXVDdySm5hblBjd1Q0M3VIdEZOWlhvYk9sSFJhdE80L1JiWXZtY2FUcFRtc25uUCtYVVpDaUxLYmJocjU1M2ZmZmRkT0UwV1JEYkJKa21USHk4UG1sQ1RKTGN1eUlzdXlvdEZvUkVTRWxvZ0luWWlNakNReU1wS29xQ2dNQmdOR281SFkyRFpJUFhyMHdHNjMwOURRZ01QaGtCb2JHM0c1WEZJempqWU5vR3RzZER5aTBXaW1ob0V0TEdFNWY2SllpMW02cVlUeG93YitUOW92V1BVcTZVUEdrV0k0LzE5TnE5WDZVa3lNNlFPZ2dWRHV0WHBKa2hvQWh5UkpMa21Tdk54cmFyWHdBbHNFT3AwWDJQUjZQVkZSVVVSSFJ4TVRFME5jWEp6WEZQV2JveXFWU3FoVUtzbmo4UWhabHZCNFJIQ0psZnZRb1VOcjB0TFNwb2FuWGxoK1BWTEQ4b1hMcUc3Rmoyako3TXVvQVJkK3pWYlptTWI0VVduL3N5Y3ljTlQ0QzliVzVzMWJkalh6clozUXZ5YkxrdkNibno2c0NqSkIxV2kxR2lJaUlvaU0xUG1CVFVXUXI4MFhIWlh4eGtZRDBWRWxQZjJTL1c2M2E3VXN5eVBETDBSWWZoMWk0dFpKazhPUDRYOGdqWTJONjBhTUdGRkZxRi9OQmJna1NRcXdlUkNvRFExbDhRakdMcjl2VGFlTElESlNqNnpSYUFJSEJLZCtCQmZHK3dJSkhyeVZDRytIaHlRc1lRbkxUNVdpb3FKUFd0SFdnb01HbnRZb2lwcW5lR2cwR2pRYUxWcHRCRHFkRHIwK0FHeWFRTGpVcitLcFZMSm96dllCZU16bStBSWh4Q2ZoWVFsTFdNSnl0dUx4ZUhiMDdIblo5eWZSMWxxd2VhaFVUV2FvRjZ2VXFOV2FGdHFhd1JDRldxdlZvTkY0YlZTWHk0dUFicmNiYjBXQ2dxSW9BWEFUUW5nQWQzMTkvYi9kaW5KbHJVdW1YUnRENjVFNWp3QlZzeUozajR2eTR6WWlvZ3pFUllZcHRuL09zcnRnTlRzT1ZJSXVpWEhqaDZNUFA1S3duRU01ZEtqc1B5ZlIxdnlNdVVwb3Nic3F4QVQxNDViZnQ2YlRlUU1KMGRIUnFMVmFMUnFORnJYYTJVb1F3ZDFpb1JmQWs5SWw4KzFMSDV3N01USENrMW51aXVUcGNkZlRKeUVTTDIzUk90Nzlyb3BLeGNTV3Y5MkN2eVQzeUtGdkdiOXNHM0dXZUk1WEhxVnpyenorT2FnTGNuaU1XNVh5SFRCbkN5eWE4YjlwWDZ2VFk1QXJtZnJRRzR3SUExdFl6cUVvaXJLdlg3KytlMXJYMXBxVzFzTy9ZSXNrQ1ZtV1dna2ErRTFRdjdZV2ljRVFoZEVZZ3h3UkVZRlhhL09hcEUzZ0p2dTBOam1Rck9zSHR1UGxoOXo1RDl6MDV1b0hiK2VoakFqbTVIL3Q2N0tYdHVpOWU2NmgrUnJqYjJ6OWxPNTVWN1BzOThONGQ5SzFmTHA1TzE4MVhDUUQ2ZnZYV2dWbEZhSDc3RFZRWEVySVN1ZUtBclp5MkxvTDNHN09hUFZ2QmU5VUtTa0d1ek8wQTdicWx1MmZTREx5aGpCMjlGQk9GUEYzTzZ3VUY1ZGdkN2JzWEUxbEdTV2w1YlRZcFRncEt5bW12TW9hZnJzdllxbXNyTnhZVm5ZNEdOU2NCTllMRFNtaFVrSzF0ZUNnZ2Q4RWJkTFdvcUs4MmxxYk5pYmtpQWdkV20yRXp3SFhsTUdyVXFtRnZ5SWhLSWpnYXd6Mzh1WExWd0xmcGNURzRHZ01wUzJLaTJ5WlFHalFhbEg1bDdPWEFMVVdnK3JpR01qK0ZwajJFT1FOZ3VHRFlJR3ZPRzN4RE9qWkg2Wk1nS3plVUZUdC9mMmhNVEJ1TnBSc2dTRkRZUEFZOE8waTF3eTdmUnlFZTFaQXo3Rk43ZVF2Z0FGallIQXVqQmtMMlNPOHY4OFlDVU5Hd3NneE1DZ2JKaS84aVdicTJtZm8zTGtYVTZiY1E5Zk9QVmk1bzlTM3g4bVRFNitoNzlBN21EcjU5L1RNSG81L2o3MXNCMzB6TG1YODVEOHhmdVMxakptNU5QeUdYNFFpaENpZU5ldlJMMDloaHJZb2VQZVZUWW5nOUE0dnNFVVFFYUh6SmVrYWlJbUpJVFkyRm5Wa3BJNkdCcTg2NTNScWZMNDJkZk1JYWJCSjZnRThkOTg5MFhyYjZCR3Z2L3pwZDdOSFh6djhsRGQweDNYWDhNRHJteGhmdkpmcVl6WGNPZnBhTHJsWWNsM2RFdFd4Z2owK1ptYUhBNHJYdzJOYm9YQVhtTlN3ZGk0ODlCU3NmUXllWEFrSDE4Q0lGWkMvNHN5YTJya05kdTZHRExPM25jQ0hKUk5XellHYUhaQTZFWjZaQkdlVnY2NVVNbTNTLytPeHRkOXdhN2FaZmF0bU0yRGFZNHpZdmhodHpXNFdyTEt5cGVwelVtVlFuTTZBdHJwanpWSzBBLzlFL3NKN3ZSRG9kSWJmOG90UWpoNDkrdDZMTDc3WTJKcTJKa21TM3d6MTBFVC9MVUlqb2NHZ3BpVWlRa3RrcEM2Z3JabE1Kc3ptZU9USVNEMDZuWTRtWDV1R1prbTd3ZWtmSWFrZmsyYiszNy9kNlZjVW53NXQwWmJQdnFCU1orR2VxN0s1NS9KMnZKRy9rd0EvNWE5ZFpNR3RRWnFWVGdmYnRvQWVtRGNUWnN5QWpidGhUK0ZQYjZyblVDK28rZHZ4UzU2dk9zZVVBcnBxYjNyMzJUbi9DaW0wWnpBZzI5dEl4c0JCcUFzL3AxUUJqT24wVDY5a3pMRGJtZnZNSW5hWDFRVEFNN04zZnc2c2VaenhrMmV3WlBrNmJJbzYvSlpmZk5yYTkwODg4Y1FYelVBdFdHTnJrZUxSSE5SYSt0WjB2a2lvSVZCMVlMRWtJa2RGNmRIcEl2SDYyclQ0bzZTaHFSOHFFUVJxQ3Q0SXFmdVYrYzhjLy91QWprdFBIUUJvWk9XbjMzTGJ0VmZTSjlYQzlmMzYwczFWd3FhUytvc0UyTUJvYU9rTFMra0pJMFo0dDNIVFlOVVRaK2F6VTl3dDl4bFBVUHNjWU1vNW45RWFPWmFsMi9jeWYvb3R5Qlc3R056N2NyYVdlVFV6THhYVFI0ekk2OHpXcFg4amIvUk1sUEM3ZnJGcGEydi8rYytuSE0xTVVMKzIxdW9TZThFWUZGeGg0TlhXV3ZyV3pHWXphclVhMldBd29OZEhobWh0VFVtNzZ0YTQybnpnSm5ra1NYS3ZXYm5pVFNIRS9wUGZrZ3BEaElvZnFtcTlMNlNqbGtQMUVnYmR4ZnZWN2o4QURoUkMxeHpJemZWdUtVRjE4SG9qV0N0RGd3b0FDVVlvOVRIeWJQdnNQSGZTWU1ic0xxZWtPcWdYU1psazZmZXhaVmNWQVBzSzhuRm5YZTdsSkhQYXNMcjE5QjQ0akJuekZqSWkzVUZSaVZjM1BERVZVMWd1RW0zdG05bXpaKzlzQmRTY1FmNjFWbEk4WkVKTHAwSzFOYjArc3BtMjVtVStVVWRIRzZtcnE2TyszbzdEMFVCall5Tk9weGFOeG9YTDVVS3RWZ3UzMnkxNVBCNmhlTU56UWdnVUVJb1FlQ1pNdUxQMmhUckxhenVtWERjUFRreGJOUG42SzdsNzFYdDhzVE9lbXFvcWtyTDZNRFJvN1lTTFRkS0d3c3l0a0pNRm1lbmVLT2JRaDJEdU9COSs1SHI1a2JPeXdKQUVHemRDTERCaEl0dzFDQloyQmJNQk9KL1VkdXBVWnM4YXlxMDl1NkEzcGJGaSs0ZGtHaXc4dGVDdmpCclpoK1daYWV6WlY4NkM1ZTk3MlYxckN1bWZlenZtakN6a21oSnFFc1l3TDlmTC9YdGlLcWF3WEF6eTQ0OC9ybjMrK1VXbjhxMkZKT1FHMFJLSmxxQVdFV0QxaUk0MjBxWk5HK0xqNDlINS9DL1NhNis5U21scEtSVVZSemgycklxYW1scnE2cXpZYlBXbnkvcWh2ZTY2SWZwMTY5YXRraVNwOTBudnp1T2l2TGFlaU1pby8xbUM3cytOM2NOaGc0cHFzRmhBZDVxWHJxNEVSUWRtNC85dW9yb2ROc29xcWtoSVRrRWZuS0d0T0ttb0tNZXROcEdjRUVweGZUSXFwckQ4ZWtWUmxKMlptZDJmMnI5L3Z3TXZpMGU5YjdNQmRoK0xoL04wV0R3TUJpK1FtVXd4eE1XWnNWZ1NTVWxKNFpKTExxRkhqeDdvOWQ3UHBicE5temJVMU5SUVYyZkRicStub2NGQlkyTUVXcTBUbDhzYklWV3JWY0x0OXJOK3lIZzhua0N5THVEWnNHR2owMnExdmhvVEUzTnlZRk5wU0lvMWhVYzZTSFFHU0QxRHJTczI0WC9mYjdYT1FHcHJIWmUxV0pKU1d6MUhxemVTbW1vTUQvcEZKc1hGeGUvdjM3L2Z6YWtqb1FwTnE3djd0TFhtdnJVSUg0T0hWMXN6R3IzYVdrSkNRZ0RVQUdTejJZekpaQ0k2Mm9CZUgwVmtwSTZJaUFpZnI2MTFmMXRRMUNLdytJTEoxT1k5UlZIV2g0Y3hMR0VKaTE5Y0x0ZUhsMXpTZVg4elFEdWxiNjAxdjVwR293M1FFdW4xVVVSSEczenBIZWFBYnkwQWJBa0ppY1RHeG1JMHhtQXdST0ZOLzRpZ3FTSkI3VXNCVVlrZ0N2R1FFaXU4aXk2NEtpc3JYdzBQWlZqQ0VoYS9mUG5sbDVzSVRjWU5BSnRQVzNPZlhGdlROS3NIYlNwME54cTl5YmdKQ1lsRVJVV0ZBbHRTVWx2TVpqTnQycGlJam80bU5QMGpJa2hyMHpTUGtyYlEydHEyVGRydWNybVdoSWN6TEdFSlMzMTkvZklycnNnOTFBelVHaytrcmZtWDFHdGVOdVduSkRwUmVrZFNVdHVXSHBISXlFZ3NGZ3R4Y1hIRXhNVGdUZi93SnUxR1JHaDlLU0FCY3pTNHpFbzBxeUYxUzVMazJydDM3MUxnOEs5dGtESXp1NFZwd2NNU2x0TVVJY1RoTld2V2JHMU5VMnVtcllYa3JiVVdDZlZYR1BpNTFwcW5kMFJHUnJZRU5vQ2twQ1RpNCtOcDA2WU5ScU9ScUtnbzlQcElJaUw4NEtZNWJWL2JaWmRsZjJlMzIxOElEMjFZd25MeFNtVmw1Y3F4WTI4LzNreFRPNkcyZGlMZm10Y0UxUklSNGMxWkN3NFl4TWZIazVTVTFHcjczblhJdFZvc0ZxOUo2ZzBrUktQWDZ3T0JCSzAySWxoekU0b1FPTjBlNGZZb1FoRk5yQjkrZE83YUkzdnBzL21GbTBNNEhOd08zdnBvQjlOWGJPTHgvTjBjYVJUaDBROUxXSDZGNG5hN1A4N0p5Zm44TkxTMWtLWDEvTlVGdmxRUFh5VlVSRkRBSUxnZTFJekYwdmFFVmxRZ0FhbDkrMlQ4Z1lTWUdDTUdnd0YvSFdtdzFxYlJ5RGpkb05ab1VLbFVJQVRDMXprL3VCMDZlTUM1WU1OL2x3UUQyN0wzMS9ONmlaTXhmYktJc3g1aXdxclB3aVUxWVFuTHIxQUtDd3ZmTHlzNzNMeTZvQkZvREFZMUg2QXB3VFdoVFZIUUptMHR0QjdVR0FnWXRHK2ZmTUkraEZRT0ppVzFKVDQrSHBPcERkSFJYcE0wTXRKcmtqWnBiVHJNYmFLRklUS0NDSzFHcUZTeThHSmJ3RmIyU0JLdWcwL2Q5N0hMNmZ5WDk4cU41Tzg5d2wzWDVwSFR3Y0xFRy9yZytxYUlyeHZDa3lBc1lmazFpZFZxZmJWWHI1d1NIM2dGZzFwd3dYdHp2aldmdHFacVJWdlRoVlFZbUV4K0U3VHRTZnNSQW15SmlZbFlMQmJNNWpoTXBoaWZTZW9GTjUydXlSejFSVW1GV3ExR0JOR0xOR2x0a2h0d2Jpc29lRVVJOFNWNGNDc0NsY3JYbkt4Q0pXd1VWN3ZDTXlFc1lmbVZpS0lvWHozLy9LTG1BWU9BYjAyU0pDZXQrOVo4SnFoR05HbHJUV1ZUM3B5MWFFeW1HTXhtYjhBZ01USHg5SUVOb0YyN2RpUWtKUGh5MjR3WURGR0JJbmsvQTRnL2tBQUtpcEJRYTlRQklrcEpDakJndXNkZE43VGkrUEhqTDRDZVBwMWlXYlc5a0tNMk94OTgvQ1UvQ0ltR1JuZDROb1FsTEw4UytmYmJiMWZQbURIRDFncW8rVFUyUDZnRnAzaTBXSEdxaWJuRFgrUWU1VnZoUFphRWhBVGF0VHQxT1dRTFlJdUppU0VwS1Ftek9kNlgyOVpra2dhRG15eEJuY01qZEhvOUdwV3ExYVJkSk1rVkYyZmU0SEs1WHJ6N3hpRjA1d2lUWHQvQXAwb2lBMkpWNkhWaFRxNndoT1hYSURhYjdZMnVYUy85SnNnRWJXeW1yYldhak5zVU1OQ0k1cUFXV3VUdUpaQk1Ta29pSmlibWxQMXBGVm5hdDI5UGRYVTFWcXVWK3ZwNlh5RjhJMDZuRTZmVGlhT2huaU8yUm93bUUycVBrOFpHQlVWUkVFSUlSVkVVRUI0aGtDU1FrU1RWSjU5ODh2SlZWMTNWYTlwTnY4a0djTmVWYy9XMmFQNFVIMTZwS2l4aCtSV1lvTHRmZmZXMXphMzQxWUpCellVMzE5VWpTWkxTUEJtM3lhOFdXalpsTUVTSEZMeTNiOS8rdFByVUtyQnBOQnFTazVPcHJhM0ZacXZEYnJmamNEaThsRWFPQnI0K1ZvY3FNZ3BKdUdod0s4SXRKRW10VWdraEZEd2U4TklhU1lvQU53TFgxVmNQTE52ejVhNUZYM3FpRmlkcEZkNzUrSE95Y252VE1ZeHJZUW5MTDE2KytlYWIxUTg4OElEMUpDWm9pMlJjMzZwVExkSTd2SDYxbGxIUXhNUUVrcE9UMFdoT0R6Uk95S2Rxc1ZpYUplNUcrMnBKSTRtUGk4T2tqd0NWQ2ttbFFwSzlxQ3ZMS2lGSkNDUkpTSkt2WWwvQ0pVbVNNL095N0UybEpTWFByaTg2VE0vZWZYbDZjT2Z3akFoTFdIN2hVbHRidXlRam85dUJrMmhyZm1Eeis5WjhBWU1BcUlVdzRucWpvUDVhME9pUVJOem1oZTVuckxINUpTVWxKWWpTeU82ak5Hb2tQVm54Y2JiWnFLKzMwOURRSUJvYkd5V1B4NE5hcmNiajhRaWZCQlpabGlUSm1WaFQrdEtNMy8rK215ekxnOEpUSWl4aCtXV0wyKzNlOHVpanN6OXVCbW9PbW5MV1RoUUZEVFpCaFplMUk1ZzhVdTh6UVUwK0U5UkNTa3JLR2ZYdHBBejRVVkZSSkNjbms1aVk0RXZjamNGZ0NDNlVid29tK0d1N1ZMNUFnbitwUG9JcUV1NjY2KzdqaHc0ZGVnRW9EMCtMc0lUbEZ5MC9mdnJwcCs4OSsreXpEYTJZb0k1bUptaWd3aUEwWUtBV3dacWF2OERkWUlnT0xLUG5OMEdiczNmOEpJME52SUdFMnRyYWdOWVc4TFU1dmRUaGJyY2J0OXVOeCtOQlVacUNDRUlJZk9BbUNTSGNnQ1JKa3B5YTJ2RnpxN1YyUVhSMDlOenczQWhMV0g2WmN2anc0V1Y5Ky9Zcjg0RlhNS0ExTjBIZFFSVUdvbWxSbHRCZ2diL0FQU3JLNEV2dGFFTjh2RGUxNDNRREJtY0ViQUFkT25Ud1JVaHRORFEwME5qb3dPbDA0bkk1ZzRETmpjZmpFUjZQUndvR09KL1dKdmxNVXBja1NTcWpNZWJmalkyT05LMVdlMWQ0aW9RbExMOHNzZGxzYnlRbnQ5OUZhR3BIY3hQVVJXalpWQXNUdElsakxiakFQWlNPcUVPSERtZlZ4OU5hakMwNk9wcjI3ZHNIMFJzRk0rNzZxeEw4eEpTYVU1bWtUcUR4d3cvemx5aUtVaENlSm1FSnl5OUgzRzczUjRzV0xTcWc5UWhvUUdNN21RbnFCeld0TnFKWmRZR0JtQmhUZ0k2b2ZmdjJSRWRIbjFVL1R6dER0bjM3OWxpdDNrVmVRclUydjBucXdlUHg0UEVvSnpKSkVVSklQdFhVT1d6WXNQTHZ2eTkrdmtPSDFBNlNSS2Z3bEFsTFdIN2VJb1FvM3JGang5by8vZW1odWxaTVVBY3RBd2FlRTV1Z1hrMU5wNHYwc1hiNE9kYThCZTdKeWNsblpZS2VrY2JtbDQ0ZE85S3VuVGNGSkZLdkIwMGsrcWlvSUdMS0NMUWFEWklzQzFubFgwaytoRzAzRUVpUUpNblpzV1BhenBxYTQ4L1Jjdm5NaTBhc3BYdFl2MjNQdWJuTzluMFhwTS9iMXErZ3pQcHpmNjZ3ZnR1RmFzMU93Zm90T0g4aGM2VzVmTFpwTlFlclQva0t1b3UvL3UveWZ2MzZselhUMWxvelFmMkp1TDdxQXE4SnF0SDR0YlZRdjVxL1pLcE5tMWppNCtOcDF5NkpqaDA3L3FSN09pTmcwK3YxZEdodjVxMVBDbm45NnpJK0tTbG4wM2VWTktpOU5ySWtQSlJVMTNITTdzUnFkd2k3UzBGV3FZVXNTMEtTVUJUaFhZdFVDT0VXQXBja1NZMnhzWEh2TlRRMFBQVkxBYUluSm85a1c5bTVJMXlxTE16bm1aVmJmdkoxeWo5YnhTTUwxMTZRZTFydzBPL1o4VE9QYTFjV3dqTXJXM2xPTytEZWVlZTJyZDByNS9Ga3dVRzB2NUM1MGx4ZW5uTS8yNHB0SnozbTJMSHFGOU43OU4wVHBLazVnamRKa2hxRFFhM0pCSldFU3FVV1hsRFRpaFBWZ1hyejFjeTBiWnRFaHc0ZFFsYWNPdS9BQnRDMlhYc20vbTRNODM4L2dnZHVHRVMvOWtiMjF6aUppb3JDRUIzRHBSM2FrWjZVUUx1RU5raEN3WVdNTEt1RUlvUUFTY2l5djFCZStCa0FHbk56YzVlNFhLN1hmZ0grQlFxM2ZVaFpqVGRvRWlyZUNhdzRiQlFYbCtJTW1zLzJtaXFLaTB1d3UwTW51YUlvcEE2WnpNYjVrMXU5bHNOV1JVbFoxWm4xMFc2bHBMU2lCZGVkdzFaRFNYRXhOb2Y3RE83SnUzNW9jVWtwZG1mTEY3U21zb3lLNnBZdmhLMnF2TlYrSzA0N0pjWEZWRm50NTNXY0ZBVlNoOERHK1MxL3Q1WEQxbDNnZG52L0R0bnZnSklTc0xlaWVpbDQ3WXFTNHViNzdUejV4QnRNbWpUMmx6VlhGQ2RsSlNYWVdoblg1dU5rdDl2LzNhTkhqK0I4dFJZbUtDMVRPM3hyR0toRU1NZGE4MkNCbnppeUtWK3RQVzNidHYzSmMrQXNxdEFqdUs1dlQ3NzZTc1p1YnlERmtzQ250ZFVZREJHNFhHNGtXY2FHZ3NmalFhMVJDNkZTUzJvWkhJMU9aRmtTRWlLUUFpSzhLU0JTWWVIWGNrRkJ3WXVEQmcxS1VLbFUxLzBjUWExdzNUTk1lK1pkQ2cvYTJYM1hkU3d4cUJrMjlaOU1IWllGd0t2VGIyUjFUVWNxUDlzTWVoM3F6SnZadG1RR1Q5dzdpR1c3UGFRbDZOaXpyNXpacjc3TjJMN3BnSU5aNDRhVFgvZ050cXo3MkxOc1JxQ3RSVk4vdzRvRGNhamR4Nms2V0VqSzZNZFpPMi84S2Z0WVhiaUdBWU0rUUVjMUZmbzhDdFkvVDRJV1ZzNFp5NnpWMzlNNTFjekJ3aUxHUC9FR0Q0M0tPZVU5clZ2d0lGT2Uya1JHVm1mS0R4UXpkKzBYREVuMzZpWExabzluc2ZVSSszYnVZdXJMLzJINnNFeHdWek5yL00yc0xGSkkwZHVwTnZSbTNlcC9ZZEZCeGU0MURCNzFKMUl5czdCVkhpUjcvTk04TlhIZ2VSbXJXZU1ndnhCc1diQm5XZFB2RDQyQmJVVlFVZ0ZEaGdDeHNISWx4QUk3VnNMNEdaQ2VDUWVLWU81eUdKWGpQUzkvQWN6WkJycURZTlZDalFtS2ZBdE5Pb3JXVTJEUFlVbWE3aGN6VjVTYWc0d2MvQnNxREYyUjdRMDRLcDNrK3ZZMUg2ZWV0LzhqUDgzMXpZZUhEeDl1TFZldE5STlVDYTRGOWE4SnF0Rm9SZE1xVTVHQk90Q1lHQk94c1hFa0ppYVNuTnllVHAzT2tidGRDT1dzdHVQSHEvbDQ4d2YwdjJVODE5My9aKzY3N3o1R2ovNHQxMTU3TFZkY2NRV2RMMGxETnNRUmIybExiR3diU1ZLcEpKVldLMHV5ckpKa1dRTlNCSklVSlVtU1NaS2tSS0REdm4xN2h5dUs1MU52d2NMNTJZNGNxUkNIRGgwNjYvTnY2eEVsM3RydmJQSDdLMys4WHNUM0dpVitySGNMSVJUUjBHZ1hRaWlpdHJZbWNNejNHNTRRSGE2ZEduTGUvcmRtaVc2M3pRMzU3ZmtIcnhHWDN6WlhlSVFpWEljTFJMdTRLOFFQbnBQM2EvOWJzNFNtWFQ5eHFFRVJRampFSDMvVFVmenA5YzlhOUtGdS95b1IzK1ZtVVgrS2U2cjlhcFdJYTNlRjJIL000ZjJ0c1VZY3IvUGUyeTNkVk9LUEwyNFhRaWhpNzc5bmlrNDN6QkJDS0dMemM1TkVqNXNmRVkxQ0VVSzR4ZE4zWHluKzhPSTIzL081VHR6eGo3V0I2emMyT2s3K3JCdjNpVDV0RTBWaVl1aDI5ZjN6VDJ1YzlyK2xpRzYzdGZ6OTIzY1UwZTJXME44OFJ4WFJLVkVSbnh6Mi92M2p4NHBvMzA4Ukx0LytENTlUUkdRN1Jldzk2djI3b2FIcDNDOWVteUc2Lys2eFg5UmNlZmZ4c2FMZmZkN24ySGhraCtnVXFSS3ZmRjdkWXB6Y2J0Zk85OTViK3dEd1cyQTRNQmpvQzJRRFhZRU9raVFsK3Q3aEtGbVdJMVFxbFVhdFZxc2lJaUprZzhFZ3hjYkdTbTNidGlVdHJTT1ptZDI0NG9vcnVQYmFheGs5K3JmY2Q5OTkvTzF2ZitPVlYxN200NCszY3Z4NDlWbmpVZlB0ckhtRFRNWW90dXd0SnJKYkg0YkZleWd2Sy9ORlNOMDBOdFJ6eU9yQ2toaUh4dDJJUTNpRUpNbVNKS3VFMS95V0ZDRjVrTHhxcXdUSWtpUkpHUm5kdmk0ck83UXdLU2twVnBLazlGOWFJR0R3eUZ1eDZMM1d2VTdyL1lKWEZHNWk4ak92Y0tDc0dzVlJSYVdjZDFyWDZwMlhpd3pJU2NtWW5kVlluWUR1NU9lazVWNU5zZzVBUy8rQmVTemN1UnZHNW1BcjNjbU1lZjlpOThFS0ZMZU5tbW9qVnVCa1hveGRPd3BJSFhRelhXTjluaU90RVpPMlNkSHZuZWRWWjVKU1VyQlZmUTdBMXEyYjBkcHptRFhqWVFCS1MreFU2QXFCUExMNzltUEc1RDl4YjhWbjVQWHR6NmhoZ3pqcG1sL2FybXd2Ly9HQ2pGdkpkaWhYdzVyNXNOWnJwV0hkNHkyUDhSZnk5QndLR1didi8zVkI0MUJaZlJTak1ma1hOVmQyN2Z5Yy9pT25leDl6UWc1OU00eUJmVTNqOU9sM1NXMlQzbnAwK3YxSG1nVUtnaU9nSi9DcnlhSnBCWGQvc0tBcEFtb3dHSHhyZ3JZaEljRmJCNXFhbW9ySlpEcG5ZM3FXd09aaHhYc2IyQk9md3hQWEdQaitteUtjUGxvamg3Mk9UNDdXMFM0NW1XakZRWDI5MXo4Z3ExUklzcG9JTGNMamNlTlVFRWlTZ2k5eDF3OXd5Y250UDY2cU92cGNYRnpjVENEK2x3UnNPcU9obWJPcGtGR2ovc3BqNno5Z1dIWUs5bDFMc1V6NDhQUUdSZzRhR3ZuTUhkQ0szNE9xVkRGaCtHME1XL1FoOHdkbm9xN2NnaVh6cno4NURDMEg5OC9uckZLQXJOeHJHVEhZOTAwYWNTUEdoRlFBc2tiTVlGL09jUEkzRmJCMDNuMHMzZkpIOHArNTk4UU5PQTh5SXUrM2xEVHJhTmRoRDdEaXNRbm5mT3lNeVRCeVJOUGZJOGRBUXZCK1krdm5tWTNSMk96V1g5WmNrZVhXM0hUQjQxUzE3UFYvdi9IZzlQdS9KN1N3M2RHS1h5MUE5UjIwMkxId3J3bmFNZ0pxOEFVTHZQeHFiZHQ2azNDVGs1UFA2WGllQmJBSjN2L3dRLzVkWjJicDczcGhrQVdlaGdZY0RnY09XdzNyZGh3ak9TMmRSQnhZcmJWNHpGTmlBQUFnQUVsRVFWU0JVcXVveUFoUjV4U1NUcTFHOGJnQlNaRWxDUUY0Q3hTOC9qWWhoR1EyeDYrdnFUbHVpSW1KK2V1cDlaUUxLd2FqbnFyS2F1aWFjT3FEcThzb1ZhZlF0MmNLTXJCK3pidTQwWiszdmhYdjJFeVpZemJKT2lmYkNyYVRNL1lQNEs2a3ROcEkvN3hNMU1DTzlldXBWRTU5VDltNUF5bVo4dytLcXFkNHRUYTNsUnFIQVpQaHhQR21BZjJ2NXFGdHhXVFBHdXZWeGhRN1ZUWGV4cXhXSzdISkdZeWVrRUZ1a3B1OEo0dE9malBhVkJhdmZZL212bTJ0NGFkOTFmVkdzRlo2dmR6K3laK2FCNFpTa0ZPaHQ0OUFvcXJxOUNaZTE1NDVsRCt6QVNlMDBFQi9ybk9sZDA0djVtM2JDcmRtNGF6Y3liWWlLd044KzZ4V3E2TkJpbm5sd1VmKzN6NmEwam9jUUVNSXFMVk03ZkJyYThIOGFxSzF5Z0wvS2xOdDIxcElTZWxBNTg3bm51bm56SUd0NFFpUEYzeUhWUmZCd0xuN0FWQkZXM2lxZHdxRmhWOXlTTkdpUG5LTWIreDF1QnZzdE5GSFl0YnBpRFhGVUgva21LaHY5RWpDSTRSS3JaWmsvTVNVSWZXa2toQkNOcG5hdkdXejFVVkZSVVU5OG5NQ3RnbVQvc0Q0Q1ZleDJHUmd6Q012OHRESW5pYytPR1VBVS9JZXBXL3VOYVFaRk13cDhZRUhYckZqQmFPbS93dDdWUWtsVlRKOSs3NVA1ckFIV1RSajFGbjN6V0wyTUhiUTFhaXBwdEk0bElMUjJhQlZtRDZoTThOeis5QXpXWStjMUI2TGZPcDdNbWFONE5VWkh6RTBwd2NaV1oycExDM2xzWldmTWpqOXhBYmtnSWx6R1ByWmI4bnNlU1VaS1NZT0hpaG04b0wzdVhlUWdiVlBqT2V4OVVmSlNJMWxYMkVSanl4OCs1UlRNeUhwekwvaUZUdGcxSFN3VjBGSkZmVHRDNW5EWUpIUDM1NlVDNE9BckN3d0pNSEdqUkJyaHVYellWeWVOM2hnTFFkdER1UXZPbzBQWGMraDVMa2ZaV3VaazBISjJsL0VYQmx5N3l4ZUhuUTl1UU0vUU8xMFliUTBxYVBMSHYzZGkvYy9zMkZYTTFCekJJR2J0eGEwbFdDQmY2RmpYd1JVdEJZQmpZa3hCZFl0YU44K2hmVDBUa2lTZE03ZlUwbUljNU5uYytUSUVmYnUzY3QzMzMzSG9VTmxIRGxTd2JGanh6aCt2SWE2dWpycTY3MUY5UFgxRFRoZFRzbnRMYUNYUEI2UEpJU1FmWnNhMEFCYUlZUU9pTFRiNisrSmpJejh3N202NGNyS1NweE9GOG5KN1M0WUdGYVZsZURXbTdIRUdzNTdXMjY3bGZJYUI4bEpDU0c1UERXVlpkZ3drSnh3WmhxUDIyR2p2TElhc3lVWnZmYjBzb1BzTlpWVVdkMVlrcExRQm4wNkhiWXF5cXRzV0pKU1R2dGFGMUlVTjVTVmdkRU1wak1ZcW0xTHBqSy9OSStWYzBiL2d1YUttL0xTY2t4QjQzcjgrUEVYWW1QanRqUXpQUnNBdSs5ZnI5WW1TVTdKbTJRZkFEWmZaWUUvVDAwMEFacUI2R2h2L1dkY1hCeUppUmJhdDArbVU2ZE9kT3ZXN1pTTHNweXRxR2JQZnZUY21HZ0dBNUlrMGRqb0xZNTN1ZnlGOFFxSzR2R1hXUGxEc1Q1UUZVMi9CZHU2WHMwTmdLKysrbXJQeUpFalVhdlZ2YzlGUCt2cjYvRjRGSXduY3BxY0I5RWJUUmdpdFJla0xWa1RRVXgwRk0yL2dib29JOGFvTTdmcVpiV1dtSmdZTktyVC82cHFkRkhFeEVTamFvWmRhcTJlTmliVEdWM3JRb29rUTR3SmRHYzRWQ2xadldrOFhFYlhIbDFSL1dMbWlreDAwTGpXMXRhK1BHalF0WnQvL1BGSFZ5dkE1azNDOWZuVkpFbHlOVE0vQTZEbU56LzlDeHo3QXdWdDJyVHhyVm5RTm1CK25tdS8yamtJSHJRdXFhbXBPQndPbkU0dnJaSGI3UXBRR25rOGlnL2t2R0RXQkdwQ2VKTWxGY1ZYVjRvUXd1VjN1cTFiOTc3MCtPUHpsanp5eU1QcWlJaUllN2hvcFlibEM1ZFIzWXFDYmNuc3k2Z0JQUW5MLzBqVXNZd2ROK0lYTzFmcTZ1cGVlK0NCQnpaLzhjVVh6ZlBVbWtETkd3SDFhMm9lZk13ZC9naG84d1JjYndUVW42c1d1c0pVV2xwSFVsTlR6KytRbk9zTGR1blN4Y2ZaNWd5a2YvZ0w1UDJhbTI4VFFnaWYxa1pBbFZNVTRXY0NrZncrdHpsejV0VEV4NXVYM0gzMzNYSkVSTVRkRitmYlkrTFdTWlBESUJLV2N6cFg2dXJxWHYvclgyY1Z2UDc2c29ZZ1RhMGhlUE9ER2tHVkJiSXN0UllCRGZqVnZJU1JocUFhMElSQVdrZVhMbDNPLzdmbW5Ldnpra1NYTGwxb2JHejA4Ylc1L0Z4dEFjMnRLWkZPQklHYlFBaWgrSWhBUWt4VVNaSjQ0SUVweDdSYTdaSTc3cmlEaXhmY3doS1djeWQxZFhXdlAvYllZL25QUHZ0c1BhR0Jnb0EvelFkcUlmbHFYaE5VYmhFQjlTL0UwcHd3MHB1cjFwYlUxQTUwNmRMbHZBUUx6anV3QVVSR1J0SzVjK2NnV2lPdjF0YmthL09hcEQ2ejFBOXV3cWVsK1NPbHdlQW1TUkxTUGZmY2U3U3hzWEh4M1hmZnJlaDB1bnZDVXpNc1lUbHJVSHZ0cjMrZFZYQVNVR3VRcE5CVnBvS1h6Z3VPZ0RacGFrMEp1REV4eG9CZnpaK3Ixcmx6WnlJakl5L0kvWjJ6NEVGcjRLYlQ2UUxnNXZINHdTM0ExZWJYMnZ5YkQ4YkZpWFJCQWJCaHcwYVhKRWw3K3ZUSmRXczBtak1PS1B3dmdnZGhDY3ZQU1dwcmExK2VQSGx5d2VMRkw5cFBwS25SU21WQkU2akp3ci9BY1dnRU5LckZlZ1YrbjlxbGwxNksyV3krWVBkNEZqRjNENThXN21YTzZueit1TEtBVjc3OEljQkQxVmhmdy9LUFBtWEd2emZ4bDNlM1U2eEVjY2tsbDlDaFF3b0o1amdhRkluRDlZM1VDSzF2ZFhsOThPcnlRcVBSb0ZLcGhUK0QyUjkxb1luRHJSRndQUGJZWTdVMzN6enFCYnZkL3ZTRm5oUUg5K3lrMm5HdXJ1WmszNjdkMkU0NzQ2YWNrVG0vNGNCWkVIOVpLNG9wT2dQMmgyMnZQc0s5VDY3NTJiK2tJM09ncUpYbnNXOFhaL0JjVDBmY3pMdHJORnRLN0QvcHVaNUtLa3VMS0trOFM3STc5d0dHWk45TTJVa09PWDc4K0F2WFhETW9QOGluMWtKVG95VU5VWEJodTQrR0tOU25GaG1wOXlYZ2Vxc0s0dVBOV0N4dDZkQWhoVXN1dWVTOHBYV2NPMkJUNmxpenE1d3VxUjI0SWFNZG03ZmtNMnRyQ1FBL0ZKZndkYjNNMWQwN2t4MHJlT0NGVlJ3MnRDVTlQWjFvblliOURSTDFIc0VSUllQUmFNUmdhRVpTNlFNM3Rkb1BibDV5eW1ZRWxZMkFZOE9HRGZWUlVZYVhiRGJiNDc2QnVTQXllK3pWRkpTY0sxN01TaVlPdllraSsra0RZV2xKTWM2emVHRS9XL1U0MHhlc08rM2piVFZIcWFpeS9leUJiZnhVU0dobEZrOGN5aGs4MTlNWXFSMUxXVkdSUnY5VS9VOTZycWVTdGZQL3dMelZoV2Y5b1N3cExqMVJ1WnpqNk5Hano4WEd4bTBKaW42ZURxaDVKRW55K0lNRkxjM1BVTEpJZjFXQm40SW9QVDM5SnpIaFhqZ2ZtMnppOGZIWEJ2NXNZei9LZmJ0L2dQNnBkTzdlazhlNysvZWtzbXZ2ZnJaK1g4MUQyWjF3dVFZU2s5Q085emV1cDZEY2dja2srY3pTUU5vSFByOWF3TmZtZHVNckpjVVQ3SFB6cFlRQUVCMXRYSGI4ZUxYZFpESk40VHpXbHBidVhNZmlOWjlTV09IRS9zeWo3RGJMNUk2NG0yRTUzakxwZlZ0WHMyVDUrMWpsTm95NWR5cURzcnc1T29xOWdrWFB6R2RIMFdGaWt6c3k3dDVwWktjWTJaMi9qRlZidnFERVZzT2lPWC9Gb3BVWk91NFA1SFUrZFFMdDd2eWx6RisxbVlTTXE1ZytiVHdtTmJpdFpTeGU5REs3aTc1SDBjY3hlc0lVQm1lbmdMT2NwK1krejg0ZHV6aGdyV1Rtek8vUUpmZGk1cjBqQWk5RC9zckZyTnI0QlJqYU1tckNKQWIxOVBYZFdjMlN1WSt3N2VBeGhrMzRJNlA2K2twZjNGWldMSnpQcHAzZmt0RDVjcVpPbXhRbzZONjNiVFdMbHI2UERTMFpBMjVpMnEyRE9SK3B1UHUyd3ZKTjNobmNPK1Rad0tvdFVHS0RSWFBBb29XaDR5RFAxL1h0NjJEWkduQWJZT0kweVBGWHVUdmdtUVV3WkRBc1hnQjJBMHlmQmVtKzRYaDE4UXNNSC90QzA3MmM0cm5hcXc2d1lQNGk5cFRVa2pub3Qwd2ROeVJRY3JWajNXSmVYZjFmbkZvamVjTnY0NjZodlZHcTlqSG4vN2QzN3VGUmxIZjcvOHpzSVp2TlpyTXNJUWtoaVRGZ2lDSEVpQmdSSXlJaUlsSkVSS1NJaUpRaVdxcldvclZLS1M4dlB6elVJcVVVclZJOElaNFFFUkVwSXFVVUVSQVJNVWFNTWNRUVlnZ2hoR1d6MmV6T3p2UDdZL1l3dXptQWVLSytQdGMxMTU1blptZWV1ZWYrbnU3dndoZll0YldDdXJLL002dm1uNlFWWHNhTWNZTlB3TkpjTEYvNENCdEx2MkxJMkl1amtheWhnb1VMRjFOV2Zhd2hQam45cVNjZWZXQTMwYldmTFRIbVo3dWdwbXR3SEFWcWtVQkJBb21KMGFDbVZSWDArdlpraUw1ellJc1puOVkza0p0K1Z0c1AvTWVwT0tJeUtUVUpnTHk4UEJSRm9WdEtOK0piV2toT1J1ZHJDeTFoOEFxREcwQWcwQ200aVM1ZG5Lc09IYXByN3RhdDIyM2ZsU3FJUFNPUDRjTnRiSC94RVlwS0xtTkl0cG0wRE0xUFY3NWhFU1B1ZkkwRmkvNlhaRjhsTThaY3hkSnQ3MU9jWW1icGZUZXl6bmNGODJhT283NXlEdzBOYnNpeWs5NnJIOE10RnRZc2VaSGlJVmVRYjRPczVKTklvRldxV1BaeU9RL2Uva3RXekwrRHlYTXNySjQzSGw5OUpZMldiQ2JmTmdwZi9XNXVHMzBaUzNkK3lzQVVPNE9HWG9IczJrMWxiUitHRDc4QzJSYXBYWHh4OWczTTIyWm53Wnhic1hwcUtOMVhIZ2EyTFM4L3g4Z2xEekVoZXhzVHh0NU1jZlc3WkprVkhweHlCWnZOVnpEN3pqc29YZmtvSXlZM3N1dmwyVkMzbFJIai80Y0Z6LzZkYkx1UGJYczB3Y3ZPZ0czYnFzZlpzUGRRek0yeks3ZmRONE9VVG1ablNqWU1Id3BUUjhQWWV5RXQrTjMwWGpEY0FtdVdRUEVRZ3NjMWFGNHZnNmxQd01KSGdGb1lQd3cyN1lFc1N4RFk1c0c2N1RCMU10QUlqUzdBQWREQSt2V1YzRGV2VUhmbGRISmNQZFdNSFh3RitWTWY0dlpSYVN5Yit4dG1laXdzbWo2WXh0MHJHRDN6RlpZdmV3aUgyc0R1YXMyTWxhMHBEQjErQmQ3eURjaFpGekI4ZUJIVzVCTTNDVjQ1N3hjczNKdkJvdnQreWJwRjkxS2hvMnR6cHY2TStuTm5mWEg5OWJiblI0NjhKbFQ3R1p1bkZscGFPd0sxVUZWQlorYW5CbXBkU1V0TEpUTXprMTY5ZXBLWGwvZURNZmx2Qkd6Vit6L2hzVThDUERuajdGaDdsV2ZXYkNUdTdBRmMyU011L0c2ZlBuMUlUMDhub2JtWjFGUTZDaUlFdnkwRWhLT2xIWUliYUlDWW1wcTJmdi8rL2E2c3JNeGJaRmsrLzlzK1VJNjBYcFNrOVNMTlppUy8veUJLOGlLSGJ1bkN2ekJ4MXF1TUtNa0Qrak4xNkZPc1dMdUw0aWtEYVd4b3dKcVZRazV1QVVXRlJib0xNNStVYkR0MnM0VitKU1gwUDlrS0d0bkt6TGx6S000MlVqajN0NlNNZWc3WHZQSFlldzFpNXFROGR1N1pqVnROSVQvZHpjN2R0UXdja1VYL2toS2E5cVNUYk02bHBLUkVCNUxWTEZ5OGxRVjd2bVJZbGhrb1J2Y3BCU052Wk5xb0lVQXhBMmY5bWIyMWtHWFp5c0oxQ3Bzcjd5WGJEUDN1K3dOUDlQb1pwWjdaNUxzYmFGS3NwR1JrMFM4M25YNzlUL3gzTEE0bmFXbHRiaU1ZVDBEemtyT2dKQXRzeHJhQWw1SU5kalAwS3lIcXVDNTZCTzU2QWdZSDkydjAwN0I2Szl3K05QZ0ZEOXk3Q0lha3gyeXNxWkpLVndiWitpSmIyZGJoY1MxYit5eGxHZGV3Y3Zvb1pHRHV2YmVTZjgrTExKbytHRzlESTZyRlJscEdOZ1ZaL1FnZkltc3lKU1VsN0Z2dHBLbFhVZlI1NnRoaHdQSVZHNW01NmlBREM2d1V6NzJISmF2L0VQR25IV3I4b0xYVi9jcklrVGZ1cDIzdHA2NUVpbGFKamtITllEQUlrOG1JMld6U2dWcHNVWHVvWENvelhDNzFRNDVUQnJZalgxVnh5eXNmTWZlbTBlUW02R2VoWU1PbWpieDZQSm5sTnhaRzNhMGxTU0k3TzV2RTR5NHlNOUNab21xVU9ScGFqOGJnb0RQbUJoSWFlUlBpekRQUDNQYmhoN3ViK3ZidE85VmdNQXovdmc1aWRYVXRaWXQveDY1blEvL1d3dENoMnZQcGMvL09mYlArbDM2NTkyUEpLR0xSc3FjWWt2Y05va055Q3VsQmVtSkp5OERhVkU4ajBMVDFhWVpPZnBUaFk2NG14VzZtd2EzZzlaMGd5dUN1cFVaTkl5ZXIvUktlWkljelBFM01aZ1ZGQVc5ZERZM2VHdTRjZDAza2UwWG5vSHJCMkdza3o4N2F6YXhKVjFCZTQyWDQxUHQ1Zk03a1RuWFhiSTRVMHRKaXZpSGJ2NU04cE9wYVdEb0xWdW1JY1QvOWhoeVFtOTZ1WXhsRi9qcmIrUkpYNlhiR2pQNDAvRjV4M2tXb1FQclF5VHc0cG9LcEl5K2syaVV6K2Q1SG1ULzlWS2RxRTNYMUZqS1NOYitmTVMwTlozQS8vWDcveG9zbjNyN214aG0zSHRLWm4zcFFDeGUxUzdSUjZvZ0JOUk1tVTNzTldFS3kzbTFCN2Z2SVZmdldnZTM0a1lQOFl2bFdab3kvbWt2U29wMnA3NzczSC83eXVjelROMStNdlozQ09ZUFJnQ09ySnozUEZLaHFJSWF0aFlBczVHOExtNlFkZ1ZzSURVWElORDMzM0g2ZnJGcjE2cCt1dXVxcXcyYXorY1p2UGRvaXk2Z3hZdmxaV1JrVVRmOGI5NDVxYXdVN2NvcFpzdUlOUUdINXJKOHphOEZ5dGoxeFp5UjJJNnR0dFBjN0Q5N1VVMU9yVUpSanhGdFhnOGVaUVRMd3hMTEhHRFByS1I2YzNBL3dVYm5tejdFNzNtYS9zYVdUSWRkUldlMmpWOWJKMVNlYTB6Sncybko1ZXUxYllmTlBQNTFHelpqTHFCbHpjZFh0Wm5EaDVXeWVPcGxoblpRRVZ1N1p3dHB0QjJKV2swcnhpQ0hZdjRselRtN2IweUFySGNZc2h2RUZYek9VNXNnbXgxSkhUUVAwU3VHRXh6VXIvUXhTQnFTeWZ1VzhkclpoWThyc2hVeVp2WkQ2MGxVVURmdzlVNllPcDVkUlA3OU9OampsSUQzRlMwMkRCOUtzS0hWMU5LclE0dkc4OU5qU2Y3eDl4eDEvY0hVQ2FsNmRXYXFQZnJZQnRVaGhlN3hPcWNPdTYxV1FHaXhzejZGUG56NllUS1lmUEtqMDlZSE5mNXdaLzNnVFMwWnZHZy91NTdtRFlJaDNNS0VvaS8zbGU3ajFyYys1NGRMK3JQOUFpK3ljZGNhWkRFaFBSUFUwc2VLamFqNnBidUtJVDJWdk55ZjJ0RFBJVUtOOWJEcFFDejBYSWF2VDc5ZHkyYlJFWHdJUmJBc3pRaUdFRUdQR1hIc3dMeTl2d2Z2djc2eTMyV3gzOEMwbUl1Zm45Mkw1b2dWWVJoYlFxM0FnK1ZsT3B0NzVLNGJmOVV0eXpQOURybE5tNTZiMTVJeTZoNkg1ZGxZKy9pQmtEeVEzemN5dWZWWDA2bitUM25BaVAwZmg4UVZQVU44L2cvd0JROGc1a1o5TjliSmd6aXhTYmgvRml2bC9adGpFMzJFRHNyS3plWEh0OCt3cWtpbGI5d1RyeWhYMEtsZTV1WDNZdmVRbFhoeVFqQ010aCtFREM4Q1l4WjB6U3JocnlxMHNtUE1yck40YTlqWGFtRHF1NDE0RWNsb0pkdzcxTVhuNkhHWk5Id1dOTmF6ZFhzWGMyYmZqSzkvTW92WFZEQ2twd2xPOWxRWnpEdG5PenYvTzhDbXpHWDRLdXBHN3QwS2pGMXcrMkw0Skdxd3djSEJFRlRnL0J4NWZBUFg5SVg4QTVDVEQ3VE5oNmpTd3pkZUNDbHZXdytEYm9kOEpDWFFhdzRhbXNHMTdPWU5IUld1SHRYZGM4MGRPSW1mdXBkeTFJSThKUS9LcEw5OURxVHVOZTZhTW9HcnJhbGFWK3hqY0w1ZmEzYnVRczdKSjFzM092RjVuOCtDS2Y3QXF3MDF5Umg2RCtuWG1Ncll4Y2VKdzVzKytuNno3ZnM2YVJZOG94eFhseVV0emUvL25VTnNlQlhwQTgwcVMxQ3FFYUNmNVZoOG9NSWFZbW9pUEQ1bWZOaDFUMDBBdDFLdWdUNTgrV0N5bmgzemkxMC9RVmYwYzlSbElUVERoOVN0NC9RcXRzcG5pRENmSG0xdXcybXlZUkNEOFdWSVhKemxKRmtTcm15MzdEMk5MNnNMWlRpdCtJWkdYbTR2VEtGQVVCVldObEZ1cHFnaWJvanF5Um9pOUNkSGgzZ2xKa2dRZ0dob2ExQWNlZUtEc3R0dHVyYkphclQwbFNYTENOMC9RTFI1eUZVcmRQajZ0cUNLK1J4OXkwNVBvMm5NQVZ4WTVXZlBxcTJ4K3Z3eHJabCtHWG53ZWlYRXlub1pLTnF6L0p4czM3eVNyWkRKemZqMmFPRGxDRVM0WmNTVU41WHY0Zkg4MXFiMzZrOW4xQkJORFRtWFVzRE40L3BtVk9NLzlPUS9kTTU0NEdmSXZ1QlJSdFlOWDMvZ1hDZjNHTVgxMEVUMzdGSk9WckdWNkorV2N4NEFzaWQwZmZVcWR4OHpGNTJtTzNZSkxSNU5ycWVPMVYxL240Mm9YRncrOWd1eFU3ZGc0TTNwVGtKTWEzdGMreFJlVEhDOVRNbW9jbHJvUFdiVnFIWjhlT0VhL1M0WnlUcThlR0NTRkQ3ZjlpdzNyLzBuWlZ4Si9XUEFvNS9WSS9FNG03dHN2dzBjVjBQZENjQitFNmhvNGQxQUUyQzRaQVEzbDhQbCtTTzBGbVYwaDYxd1kwQjFXdlFvN1BvSzBQakQ0ZkxBWUlyZjVBUU1ocnAzdFpYZnhNK2ZwWFV3YmUwblUrKzBlVjFNUzE0Njdpcy9mWGMvYXR6WlIzeHJIa0tIRE9DUFZqb3lYN1p2ZjVxMzE3L0JsU3pjZS9zc0RuSmtVT2VlWjU1WndWdHd4UGl3cngyMTBjbjUrZHFmSDRleUxobUUvOUFFdnJYdTNNbWZ3MVkrdFgvblkrODNIajNlazBLRlA1L0FGQVMwcStUWTIraGxxdmhJZnI1bWZpWW4yb0FTUkpoU3BCUXA2VVZCUWdNMW00M1FaMzVvZTI2bU9ZOGVPVVZwYVNrWEZGeHc0Y0lDNnVqcU9IR21JMFhGckNSYld0K0x6K1NSL1VNdE5WVlZKVmRXUW5wc0JNS0RwdVptRUVIRm9jOVJTVnZaSlVXNXU3aFNEd1hEcEQ2SEg5dFA0TVF3UGQ0NitrbEVMMzJKSXR2VzAyak5GVWY2OWZmdjJOUjAwTSs2Z1Q0SHdDMEZBbHVXQVB2bTIvVHkxV0YyMVVFcUhGdjBzS0NnZ0tTbnB0RG9teGg5NkI1S1NrdWpUcDQvTzlOU2JsbEZFVFUvZkpOQjZKMmltYWRqSklVSit0NkJacWdKcWZuNmYzYzgvLzN6dG1ESFhWQUUzbjg2WFQvbXVUZXl0YW16bkV6dkR4ZzdqcDBLd0gycFlXYmo2MzkvN1ZuME5GYXpadktmZHozS0xoNUxqTkQ3LytPT1BiN3I3N251T0U1M09FV3QrNnR2aytTVkpEa2dTcXI1TXFyMktnbENlV3F6NXFSZUxQTjFBN2JRQU5nQ0h3MEdmUHZrNlVKTjBqMUlZNENSSkNpMUNraVJKODdrcFFVQlRVVlVoOVBsdElaOGJJRzY0NFlaYTRLK2ZmYmF2eW1wTm1BNTBQeDB2bjR5OEl1d1o3VVF6WlNPMm45RGwvOXd3MmpNWVZHS2pIYnZxSzdmSHRUd3hNVHNrNDYxUDU5Q2JvTzMxL2d3QUFhMnlSMWJiTDJqWGZHb2g4ek1VL2RTWVdnalU4ci9WemxJL09tQUQ2TktsU3pEM0pRSm1Hb2lGbUpzVWZoM0wzQUJKVlNVVlZDa0VhbnJtQnFoQjlpWjY5ODVidlduVHBxcnUzZE51TWhnTVEwNjNFMksxT2JIK2hHQS9qZEQ5ekd3aEpTYlJUMUdVelR0MjdIaWpwT1RpR2pydnpxNnZKR2l2OFVxb3FYR2Jpb0pJOG0xSGdZSjh1blRwY3RvZXQrOU0zZU5VUm54OFBIYTdQYXpmRmdva2hMSTZPZ2dhZEpZd0U3WnRRd0FIaUdlZWVlYXcxV3JkMGE5ZlA4K3BLSVQ4Tkg0YVA5UTRkdXpZMHZ2dXUvLzFXMjY1NVlqTzlEeFJ6V2RVTWJ0T2VpZ21uY09pNjlJZUt6Mms5Nm4xT2ExQkRVNkQ0RUVISjQ5UFBpbmppeSsrb0tibUFIVjFoemh5NUFoTlRVMjRYQzZhbTV2eGVEenRCQlQ4S0VvZ0ZGQ0lEU29ZMFlJS1pvSkJCU0R1d0lIcWkzdjA2REZaa3FSemY3cHNmaHFuNjFCVmRjOW5uMzIyS2orL1QzbVFwY1g2MC9RbWFKVHBpU2JqSFdKcUl0TFEyRVRIUGpXOStSbk4xRTVIbjlxM3h0aWFYQzRPdWYzWUxHWmtQV2NLS05RMkhzTWpETmpNMFJtNnJTMHRIR3hxSmk0dURwUGNNZEd5V0N3NEhJNXdUOUxvNmdUQ3ZyaVk1R2FwSS9JV1NnSFJtNmFoMTQ4Kyt1akJnb0tDblRrNU9YNmowZmk5ZzV1cnVwUjNQcTduckt5VWsvK1J0NTVWYTNiUTgrd3p2M0h6a05OcFZPM2R5dnAzdGxEWFlpR25SOWZ2ZndkTzhiaHVYZnNpY2xvQjlyanZacmZjYnZmelR6NjU5T1dSSTBjZXBQMTZUMzBxaDFmcXVPZW5ydTdUSEdacVF2Rmh0am13MnhKSVRJdzBYd2xKRDRWVU9nb0tDazZZSnJWM3l6b0NYWHVTYUpaQWJlVEZKNTloNi91N3FQZlpPQ3Z6KzlOaisvbytOdFhOci8reWt0MStNNmx4QVdyOThUdzY2U291VEltbjV2T1B1ZTdGSFRnZGRqeXU0M1R2MVplL1gxZE1vZ3hQclZyRmtyTGpaRHJpT0hEVXl5MWpSakMxVDhjWGMySmlJbjM3OWtXV1pXVFpFSHlNTEpLa2Y0d0VGQ1JKd3UvM2kyQ0ZnaEJDb0twcVZDQWhxUEdtQ2swNkpIRGRkZU5xZ0wvVjFCelltNTZlZnBNa1NkOXFaNVQxUzJkUmtUNmVHU1BhcHJ6WDc5M0l3ZzFHUnBRVW5Qd0tQVlhNZjNBcGc4Y013ZmxmQkZ4NzFpeGtWV01CY3ljUGJmTlozYlluR0RUbE9hWlAvaGx5aXVjNzI0ZmE3Uzh6ZDdQQzQvZE8rSmFPcThxS0JYOWtWTUY0TXI3bGtMV3FxaDk5L3ZubnEvTHl6djVNeDlKaU83TjN4TklVU1pJQ1FxaXFFQWpaYUZJTkJnT1JFcWxJbmxyZG9hOHdkYzBpTVRFeHFxQTlVaWFsVlJRa0pDUjBmbCtvM3N6a1dTK3daY3VJa0ljUW04M0czZzFQc2JiQ3dvaUJlYWN4c01rbWJoazdtb0pNTFJxeWF0MGJ6TjM0TVc5TktNYnFUT2ZWMzk1RXV0V0U2bk16YWNGenZGU2V4OVE4T3hkZWNCRTNqRTdGTEVQTnZnOFl0bklyMS9RWlEyZjM1WVNFQkFvTEM5Rk9pSXpCMEI3SVNVRmdrd21LVTZKRlRQM0JvRUs0SVROaHBOTVlteXBKVWlpb29BS0JqSXpNelU4OXRleVRjZVBHamJWYXJkUGF2WHMyMVZQdlVzbktTb3M2ZUNyZ2RUWFE0SmJKU285Y0ZxcWlVRjMyQWFXK0lTaUtnaXdia2VYd3hDVjcrQXpXanpTMnVWamNqZlg0ekU3c3NvYzZ0MHhHaWozOG1XTHZ4ODd0eTl0VUFDbEtkQ21PYkRSR3ZxUDZxS211d1pLY1RyTE5FcnM1a0ZYcXFxc3dPdEpKdG4vNzJlT3FxbEJYOVFtN2ErenRIQWVGbmR2ZW85L1lXN2huNW5oazQ4bE5TOFhyb3JxMmtiU01tRDZsS3FpS20rcmFKdEt6TThLMXFxcXE0cTZ0WU10dWIzQWZ0RGwwd3VQcWRkSGdoalNubVpyYUp0SXowc0xmVVJTVlJScy9iVk8wcnlwS1ZDUlQvMzhCbXVxcWNjdjJObjFlUTJvb0IvZVhQLzIzZjZ6WThzRC9tK3NtRWlEUWwwZnB6ZEQyVEU5VmtpUlZWVFhyUktnaXVwbXgyWXdzeThSWnJKaGtpRSt3NFhBNHRNVnV3MktPSXkwOWc5emNzNElWQldadER0VTJrcDZSUmtOTk5iYTBMS3k2VS9Yc3dnY1lNdmwvSXRGNzJjSElDUk94Tkw3TDNxb083dEZOOWRTNUZMS3kwcU91SjhYcnBxYTJIa2RLT283WStSbzhTbzIxMWZnc3pxZ2VyS3JQUTNWdHc2bEVSZU1veUl4dzdpeG5FdDVEZmdDY1hTTXdKWnNUeUxBYmFmRnBGMXRlajRpQ1pvclRqcXo0YVQyUnBrM1FMSTJBbXlFRzVDS3NMY0xncEJEQVNaSWtpZERGSGdRNGdTNWkyZzU3VTI2K2VVcmc1cHVuUEZsZS90a0hPVGs1RXd3R3d5V2hnL24wZlQ5bnp1cEs4dE5rS3R6cHJGNzNFdm5KWmxZL2NpT3pWaDdBYmpRZ2U2b3hGOTNDdW1Vek1WZHZZZmlVLzZWbTMyNmFiSGRUc2NwSjl1QWJXVHByRXVCbDlxUlJiTno3R2U3Q1d5bGRIbXhWN3Q1RGJ0YlBLQ2pKWS92ZVJnYjBTMlBmN3IzTVcvMHhZNG9jckh4NEJvK3YyY0cyS2lmVk5XOFRKdmMxV3hnKy92Nmc0cWFQMHAyN1diVDlLSlA2MmFndjI4Q1k4Yi9DbkpGUFUwVVpRMlkreGlQVE5OYWtsTDZJWS94elRNazl4dFlhZ2FkUlljV3VIZlQ3TnFQNDNuSW1qZm9WWmRXbFZMbTNNWHozQzFoeUwyZnRrbnZBVmNyNHNiK2h2THlVR25VWHc3Yy9ROUhvTzNoa3hzZ1Rzcjh4TS81R2ZtRU9lMHRyZWVURk54azNJSXVtN1V2Sm1mQVlSU2xXTEZhRmZlNTBObXg4aFY3Mkp1NFpmejFiOTFWUVZhY3lmUGg3NER5SGwxOStCQ2QwZUZ3bkQraE9WZklBcW5mdkpHL0FoYmdxUDZKbzJ0OVpmTnNReWpjczViYUhuMmZ2OXUwczJkUEMySEQxazR1N3h2Mk1YZlVhdEZYdjI4M1FXYSt3N000UnFLNUtwbzI5anQwZUp3NWZQUlQ4bkxYTDdnMVdUTlJ4Y1dyLy81d3hyT2pORjVhdnErcUFwZW5OVUY4UTBIeDZsaGE2YVV0YXVFM0VtUXlpVlZFSjlmMDBHK0dyMm9Pb0JoUHlWNGVRVkxBbUp0RzFxNU5Ebi95SDF5czlaR2VrOFB3enk3bmwwWmM1N3p3THkrKzlodm1ibXJHN1A4V1ljUjQyNVN2cWs2OWs5OHR6Z3BkSFBTKytYTWJzZTA4MkZ1ZmxpYWN4dkRnQUFDQUFTVVJCVkh0djRwRjFWZVNtbUtsMEpiTnEvU3ZrT1kxc2ZmbytKai84TmdXNTZWU1hsVEx3dHIrdytNN2dmR2phUlhiZXJZd2RuY3FHWFVkUVhJM01XL01SK2FXUE1QemhMUlE1QkUxTnRlZzZScDNDNGp2T3JRdi93WkpQRHJmNXJIWi9LUmZPZjRVRDN0amZCWGg2NVVvbXYvbngxOXFXcWdiNCtPTzl2UGJhYXl4YTlCZnV1Ky8zL1BLWHYrUzY2OFl5Yk5nd0xycG9JRVZGUmVUbDlTWTdPNXZ1M2J1VG5Kd3NKU1VsU1FrSlZpa3VMazQybVV3R2c4RmdsR1haSk10eW5DUkpWa21TRWlWSjZpSkpVZ3FRQWVRQVp3TkZ2WHIxR3REWWVPVC9DYUhXTkgrNlNuVHRmcUhZMzZ3SUlWVHh0MTlkS241Mi83TkNDRlc4OXFjYlJMY0xKb3ZqQVZVSWY0TzQrdXl1NHFrZERVSUlWUWloaWlkL2U0VzQ1YkV0NGRmNjVkTlhab3MrTjh5UHZIZDh0emlyeDZYaXNGREV6ZWNsaVgrODN5aGVlK0FHOGF2SE5rVytjM2lMNk5Iak1uRzRuZlVKb1lwM0h2dTFPUGZxZTdUOUVXNXg4L2s5eEVOdmxnb2hWQkU0VmlyT3l6eGJmSEJNKzY3LzR4WENZT2dpbm5xM1d2dTkzeU5hL08ydlZ3aFZ2UC84YkpHYW1ocXpkQmRQL3J1Mnc5K0VscmYvK2d0eDFlK1d0ZnZaRzMrNlNWejd4eFVuWEljUXFoQ0JPbkZwank3aStRL3FoUkNxK09TVjJhTGJoVk5GcTFERjBmZWVFSWI0czhTT3cxNGhoQ3IrL011THhFMFByUTMvOXZQWDVvcysxODl1ZjczdEhOZWJMa2dWcjN6cUU4Lzg3aXB4NDU5V2l5UHZMaFY5cnB1cis1MVBYTjhuUWJ6eWVmdjcrdFdISzBYdjNpWGk0K0QrUEhYM1ZlTEszeTRUQWFFS0lUemlqc3ZPRW45NXAxcW9hcUNtcnU2akJUTDhIQmdMakFhdUFpNEhCZ0VYQUVYQnVaa0RaRWlTbEJLY3U0bVNKRmxsV1k2VFpkbGtNQmlNSnBQSllKUWxHY2tnSmRrVEpBa2taMnAzc3JPelNYUEVZYktuY3RGRkE3bDg4UG1ZSkNpNWVoTDMzZmQ3SG5yb0lWNTc3VFUrL25ndnJyS1ZkT3Q5TGMxQzVibmZYYzJ2SDl2TWwyODhUT1pWZHlJQzVaeDc1aVVjQ2w2ZmdmM3I2Tkw5TWc2M2MrMisvZGRidU9xM3k2TGUrK0xOaDhtODhBYU8rclhYci8rLzYvblovU3NRUXVYNHNTWUNvZlVlM1U3UHJ1ZnlSZkI3NHVoT3pqQ1orTU1MdTRMcjh0TFNxdkRwSzNPSlAvTUtEcldxQ09INkJubHNxcCsvdmZvV1NxOEx1Q1UvMnFCc2J2eUtXMS8rZ1B0dnVJYU1HSWZxZXp2L3cvTU5kbDZZOHZYMG1pUkpvcUNnQUtQUmlORm93R0F3aGhtY0xPc2ZvM3h4WWIrYkpDa2g5aVpVVlEwcmh1allXNmkvUWlERTNpb3FLaFNucyt1cXQ5NWE5MzdYUTl0SE93ZGNlbE4yVUNsMjZKRExtUC9FYm1BaUFNV0RCbUdUQWRuSjRJRTU3TnBkeXVUaVFhZDBhR1diSFJzeWRvY2R1ODJPeldiRDdUazVtZTdxcmM4eWZVazU2N2E4b2UyUHE0ek5lenpJbTU3ajNpMGE4L1FwMVpSV3VPblhUNlB3NXB4QmpCOFlsT0F3V3VqTUVPMC9ZUTUxRStiOHNNNjYycjNzOWVRek9GaTluajlrS01iSnY2WmFoV1RBbmorUS9zbWFBVHBrME1Vc1c3c0xHSEdLRzdOaXN4bkJic05oYzJLemUvQ2U1TG53TlpReWJ2ejl6SC94WHhRRTkyZlR4aTM0Y3JPNTc5N1BBQ2gzcXh4NWYvdUtGVisxYnBrNDhjYWpKMkJwb1JwUG55UkpvVFNPZ0M3cUtmVDVhVDdGTDR4eDhaamo0akViUEtMVkQ5YXU4YmdQK2VuYW96dDJleEoyZXlLWjl0MGtkVTJoUjQ4TUVrUWpMeTVkVEhXREIxVngwOVJvSjlTQndXNnpZM1hZY2RvOElOdXc0aWJrRGZVMk5lQ3hPemhab3I5MTg3K3hJdlBnck45ckhMZXlubEx2SG1BOGFsTUY5OTcxSjNhV1ZlRlZmZFM3RzJod1EwNW81Wlo4Sm8zdEYzeGh4aEwwTldUM3Y0QVVNNER0VklFdHdJdHZ2TVYvNURONTZzcjhLR3V5MWQzQXJjOXU1TnFycitLcXJPaE0wNC8zdnM4ZnRydjR4OVFSZEQxRlpaTzh2RHhDemsrajBZakJFQUs2aUptcStlSEN2amdSZkpTQ0VWR2RiellLNEZRZHdJWEFMUUFvVjE0NVlqK3dKUE95WDc2cktNcTFScVB4aXBOeEtuL3pJVWRzOVpOWW5hZDJOK09uL0puRnEvOUZMNGN4dkIrcU9abGhZNjRtSzdpcTBhT3ZKU2MzVXU4b1cyMmNyRmR0NytvRlRKcnpYSnYzNzMzOG40d2ZrTUtQYjhqaGg4alpPQWxaSWFXSjI4ZmZRTW5zcHhoVGxCYTF2Z0ZEcjJaa2dRMUZVZDQrNjZ4ZUc2Wk9IWGRnZVFUUU9nSTF2WTlOMFptZVlYOXhxRStJTEJ1RTBTRHdla0gxdWtWRGF6TUlnYi9GUzBLQ2pUaXpqTWxxbzB1WExqaWREcXhHaWE2cFBlaDVabGZtL2ZJUFhMOXNNOU9IRldDczMweGF3UjlpL20zN2M5Sml0MlAydUhCQjI4Q0wzTjdWb1pKVmRER2pSNGR1L2xjejFaRUJLTnczNldvc2s1NW53eE9ETUZOTmNmSkYwZFBmYXNQU0RuTEpzdkViQkE4UXZQbjIyN3gwUEpsbmYzNGU4YnFkVmp4TjNQSFVlZ1lPR2NhTnZhUC8zdWZsSC9HYlRRZFo4b3VSbkdIOVppcjRQWHYyeEd3MkJ3SE9pTWtVRFhEdE1MY2d3RWxTUkhvOFVxRVFZbTI2d0VKQXg5N0NrK2pBTzA5K1lESTlXVnBUYytDZHQ5L1plRjIvL2xQQ1NyMDd0MnpCclU3R3BqYXllVnNsbzZaR1pLUnRWaHVORGZYZjdmWG5xMmY2dUJzWStlQUxETXZYSFh0N0FVUHlQVlM3bkl3YnJrbnV1QnNhTU5wTzdSemtEWnZLMnY3ajJzeGNaOHFKUS9sV2F5SU5EViszbzVPUGhUT25ZeDB5ZzJramduZnA5QUlLcldWczN0M0FoSDdKbEczYWlGSjRQbGt5ZUFCWDJWWjJOZmdvVGphemFjdC82Ti92OTVGOXNOdHcxZGVnOEYyVzNhZ3N2ZWRHYWdwL3paSUpBNkkrR1RKMElLOStYck5yMHVDU04zdWZsZnRwNk9ZWkEyanRnSnJrbHlRTitJUVFBUUVCT1p4d2l4b0lxQUxKZ05sb0VrYWpFZUZyQnRra3pzaE0xd1FpWlM4ZmYvWVZSbHNpNmFsZCtkenRvVnUzYmppdFhnNDJCUmllY1NiNXVRa2NjWGRsME1BQ2pNRDJkZXVvUDhuN3M1emRqMExmUHNvYW9TUUcyZEtjM2FuY1dCVWxFejlvOENYTW1mOFplZjN2UWJzSEs1cHNQaDZxcXoxTUxTbkdMRVBWcGpYc1BZV21YVi8vM0xZYzRvRk5YK0N5eERGa3ZxWVFhdTZXdzd2VEwyWEhoeCt5c2U0NEg3eStsbis4SG1RSGx3L2ovZ0daL1AydDk2aHRsTGxoNFRQQkZjV3piT1lFK3A1aS85VE16RXdkdUpuUWtnMk5ZVk0xbXNXRmdVNElJYVJnUGFtUXBFQW9WeTRjV05DeHR4REFSYkUzd0orUmtma3YyUmovM3I4L2VYNllFT0k2SUMrRlNvWU51Z3lqcHdaenllK1pNQ0J5ZG9lTnY0VkY0MzVGMGVvSHlCdDJDeS9PbjByZDloY1pPL052ZUJxcXFHcVFLU2w1azRLUmQvRDRqRTcwdDd6N0dEZnNsOVI2WGRUWFZ6T3k1R0xNR1JlejhjWDUxRzk2a2VXNzZpaWNlek12ejlWTzdid1YvMlprdnBVSG4vNEg0OGIvakRVTDhyRDQ2cWwyOTJEanJwVmtuTUp4TjF2dFpGaFBMYStoLzhoSk9CNi9nWUtpRjNBV1hjT1dwMmVkRkxCdFhQa2NqclJSRVdDVDAxaXcrQStNSFhNaEt3cHlLQzJyWmZHS056R2pBWnM5emM2OUl5L0ZhbFVwZDJldzdwR0lRbTM2Z05FTTVSb0tDOC9EbG40QjY5Y3Z3ZG5KY2Uxc3pKOTJCZXZLM095cjlMQjMzRVVzdERwWXNPcE5pdTE3ZVhEUmVzaXJvVi9SMzdUcllPWmYrZU1ORjMwMjlCZXoxdnlxNzZBUGV6OGNVSFJSVEwwaWh5K1dvVW5nRjVvYWh4S2NoMm9FMUNRaHl3aEZFVUpJTW1hemRqMGNiM1lKYzBKeXVBdWMxZXJFWVR5QXF6V080dUtMYUZqM1QxNSt6VVc4MFlTemF6d1pQZlBJN05tTG1WTnlHVFhnUW9veXJNanBtYVNkN1AxUHptRGM2Q3pXYjloRHlmam9iS21DVVZNWXVPd2Fjdkplb1hERXJheFpNSU9jRWJjemE4dk45Qzg4bjRKZTZWUlY3bVBFUFU4eWY5SWdicnR6QWxPSFg4Q3lnalM4MXU3ME9vV2NwdE95OHVEcmpLTkhqMUplWGs1VjFaZlUxdFpTWDE5UFkrTVJtcHFPQldXUFFsVUtMWGk5clhnOEhudytIMEtva3RhaFhpRVFDRWpCL2d1aGFnVXBXTEVnQjhIZkNCaURWUXNtdE1vRk14QjMzMzIvVHp6YlVuSDU2c0ExMXkyL2EyaE9nMWNtSStWMHpDNVRxYXVwQm91VHRPUWZoMGFJNG5WVFU5ZEFTa1lXMW1DK1JkUDJwZVROL0lEYVRYK2lwczVGZWt3YXdROHhoQkQ3RHg4K3ZHYk9uRG03SG52czhWYWRLZWxyeC9RTVBmcURFVTlGdDZoNlgxcXdpb0JnMG0zUWVqR0hHaGxqc1VTNnMydXF0NGs0SEVrNG5WMUpTZWxLdk5uQzJlZWNSMkdmM2xFbFVrMzFOYml4dFVsRk9kRndsYTJoWk1ZR2RtNWFmTkt1RGErN2licEdGMmxwR1ZoMEtUdnV4bm9hUERKWkdjbW4xT1hNK044K3VidDA2VUpoWVNGeGNYSEV4Wm5EZHl3OWc5TXpOeUhVVUljckljdCtTWlpsRkVVUmdVQVVld3NWMThzeDVta0FVSUxtcVIvd3o1Ly9nQTk0cmZjZzhZNzN6dUZEZTNSTHVoYm9lZm9kS1ptMGpPd2ZsZmZMYUxHUm5kMitZb0JzdHBHVlpmdWhBYTN5OE9IRGJ6ejg4TU1mL1BuUEM3dzZnUEozQUdpeGdRRkZIeHdJQXBzSWxVVUY1YnZSUUUzTFR3dFdFMFNCbXMybXFkNG1KWVg2RTJnZDJyT3pzK25kdXpmeDhkRm1reU1sZzFQSjlySG5qMkxoakVacVhTbzVKNm5yYnJFNXlMYTEzWnJObVlMdEcvQ0QvM3JHcHB0RWZQYlpaMVJXN3VmZ3dSb09IVHBFUTBPa3Z0VHRkdVB4ZUhDNWp0SFM0a1VJZ2MvbncrZno0ZmY3SlVWcGw3MUpRZ2c1Q0hDaG1sTkRrTDJaZ3V6TnJGL3V2bnRtNHU5Kzk3dExuVTduMVpJazllR244ZjJ5dUtZYXR1eHpNV1JBL2cvSGpWVzFyTDYrZnYzczJYLzg4TWtubjJ6dEJOQmlGMzhRMU5vRE5EMm9oVmxhRU5SRU1FY052ZVJRQk5UMDFRU3A5T2lSUVU3T21mVHUzZnNIYjdyeVhZMGZEYkNGUmxWVkZaV1ZsZFRVMUZCWFYwZERnNmJHNjNJZDQvaHhOMGVQSHNYajhTQ0VDQmJRdCtMeitmSDcvU0ZsM2lCekMwaXFLcVJnNURSa29vWkNRZ2FkZWRvdXdPWGs1SmkzYnYzUHhhbXBxVmZKc256aFQ1RHo0eCtCUUdEN2dRTTE3MXg4Y1VscFRjMUJKU1l3MEJtbzZRRXQ3RWNMVlE4QVFoL3hiTXZTVEpqTmNlZ1ZiNjFXZmQxbnBKRnhSa1lHT1RrNVpHZG4vNmpQaGZISDlvZXlzN09KajQvSFlva25MaTRPc3prdUhHUXdHazBFQWdGa1dVWUlvVE5UV3pFWURLRTdZWWk5aVVBZ2dDUkpvYnkza0VrcXh3WVhZc3hUSDJDdXJLdzBwNmYzZUFmWVVsNytXVkYyZHZaUWs4azA2cWZMLzhjM1dsdGIxKzdidCsvZG9xSno5K3ZBVE0vU2ZPMkFtcjhEUUF2b1VqakNabWNzU3pNYWpVR1dwb0dheFdMUnlYZ25ZTE1sa3BTVWhOT3BseDNLb21mUEhGSlRVMy8wNThUNFkveFRxYW1wV0szV0lNQlpzRmdpQUJjSUtCZ01CbFJWRFVkUXZWNWpDTnp3K1h4Q2x1WDJmRzhpYUpyR1JrOERCSnRpb0lYaVRYcUFBOHk1dWIxM0FudmVlV2ZqUzhYRkZ3eXkyUkt1Z2xNS1N2NDBUaC9YUjgzeDQ4Zi8rYTkvYmQ0OWV2VG9oZzRBclQxUTgzZkcwRG95TzBNc3JYM1RVKzlQMDRJRVNVa09uRTRuS1NuZDZONjlPMWxaWjlDclYwOFNFeFAvVDV5ZlV6WkZtMXd1anZsbGVuU3hSUmNBQnhScWp4N0hFSjlBYWtKMHI4cVdGZy8xYmgvSmppUVNUTkwzTWZrb0x5L255eSsxaU9taFEvVWNPRkROMGFOTnFHb0F0MXVMbUxhMFJKckZ0TGEyNHZmNzhQbTBoakU2M3h1aDVqRnFRS0FLSVFmYm1ZWk0xSTU4Y0hwVDFRU1lKMHlZWVBuVG54NitJQ1VsWllqUmFPeFF4WGZQNXRWWThvYVJsM2J5elVOcXk2QkNnVUdGUDY2SldyRnJNMnBHTWJuaFk2R2lLRkZsNWhpREUvRkVKY2lxcXVxSzM2TStvYjZtR3AvWjBTWWkyTlJRUTZNYjB0TFQvblhvWU0yN3Yvbk5iejU5L2ZYWC9TY0phUDUyQUMzUUFVTlRRL1hPd1FBQjBTd3Qwcnk0clQ4dG9xUG1kR3BCZ3ZUMGRNNDQ0d3h5YzNPL1UzOWE5ZDZ0dUoyRjVHZWNIaEgzNzAyMmFQbnFWVHkycjVuVVJETzFqYzFNdnZwS3BoZCt0MjBISkVtaWQrL2VKQ1FrQlBONTR2SDcvUmdNUmxRMUVKWGtHNWs4QmxwYmpSZ01QdngrdjlDK0wwdUtFa0JSRktINEF2aFZGVWtTS3RwTk5hd1dFc3gzTXdRbmE0akJHWU9BNWdzQjI0b1ZLMXBYckZqeEwyRHJ4bzF2UDNYKytlZGZrSmlZT0ZTU3BDaGRsL1ZQUDBUeWxBRmZDOWoyYllNVmpUOHVZRk5kNVV5Wit2OVlzZjN0OEhzcjU5M0F4QWZYayt5d2hhZnlJMnMrWW55L1JvcHQ1ekp2MzFHR3Q4ZUpQV1VVcEJWZ0gvY3cyNWZPakFCWHhWYkdqYnVKV21NR2RxVWV1ZkJtdGo1OUQzanJ1V1BDMVordC9zUzNPY25RL05ISG41WWYwWUZTZTREbTd3RFFsQk1BbW1nL09HREFhRFRwcFlhSWl6TVRGMmRweDUrbUtkNTI3WnBNYW1vcUdSazkyUDM2WXR6WExhTDNkeHdrc0NrMWpKbStsbTFySDhSOEdzeVpVMkJzclpRZWFJbVNMWHF5S1pXM0poVFRlT1FJM25oN2xHelI0TkUzTURYUFRrdXJqL2c0N1M4ZjJiK1hpNS8vZ3YvTXVvYnZTMDZ3cWFtSnlzcjlsSmFXVWx0YlN5QVE0T2pSUm80ZDA0SUtzZmx1UVdYZVVOUVVSVkh3Ky8xUzgvRUFmalZBbkRrU1BkVUZHQ1Foa0tGTmtNRVFaSERHR0JZWHRYejg4ZDY4bmoxN1hoZ2ZIejlFVlpSMFZjZENUZ29BVkcyUmpUR01KVWhoM0kzUTVJT010SzhKTEY2b3FvV01iQWlsR25tYW9LNFIwcktJa3E0SjFiNVVWMEZ5QmxoMXMxenhRblVkWkdXM3ZhT3F3YzlTMHFOL0E3QngwVFNXTkE1aDFaenhPbUQ3T1F0ckxtSHI0OU5qMWxSRi8wNkFyWEx0ZzR4ZHNndDMyV0UyVi95YmRDT0FtMG45ZTJLZjloS0xwdzBHb0xTMHJQYk1NOC9ZL05KRDB6Nzh4ZisrVUIzeXFaNEVvT2tYSmNqUUF1MlpuQVNGVDRNMXpURm1wd0dEd1JSc1dteWlJOU16SVNHQlJKc1ZDWWt1S2VuMHpNNElCZ2t5eWM3SzRwRnBBM0ZNZnBPN1JtUkh5MWdCN29aYUdyeG1zak9TMjh5VnhycHFGR3N5S2Zib202cW5xWjY2Smk5cDZSblJVbEg0bUQ2b0Q0TVh2cy80Zmo5OGc1ZnZUYllvQkdxaFkyYzB5SHlmZ1dhSHc4RTU1eFRTMnVyRlpES2hLSDdpNHkzRXhWbUNRUWJORWR2Y2JNSm9iTUZrTXVMMWFpek81L1BoYi9WenBNRWdWRldSQkFxdHJZcVE1QUJtazRxRUpIeCtEZHhDUVFaWkRnY1pBa0pnQUNsWXhTTkN6SzBOeVBYdFc3Z0grQVI0K29JTEx1aDc0TE1QejcvN2hZckJkdzdQU0QrWi96aHRPT3lxZ093SnNIcGU1UDE3eDhBZUdWUTNWSmZDMEZtdytMWVRyKy9wbWJDcUNlcDNBbFl3RnNEV3BmRHdkRmkrQjNKU29MUU01andORTB2QXZRY3l4c0hJWEdod3daNDYyTElMY3UxUXR4c0dqNGFNUXUyZjc5c01XNXNnRzlqK01reStGM29WUVBrK21MOEN4dllQd3lFclZyek82RVVQZnl2ellNM3FOeGc2NFZHOFM2OWw3ZllHcHBVazQ5MjNudFVWV2V5WmZFbXR4K1BaVWxIeHhVZm5uSFBPZmoyNzZnRFEyZ08yMEh1aG9GSWdER2l5ckVwQ3FHcW9JemdJSkVrWVRTWU1zaVM4TFMzSTVnUzZXT1BBM3l3YWpyckl6TTdHYXRGQXpXS0pJeTR1MUpIZFNrS0NqWGpKemVzdnY0RTE3UXppMUdaU2lzZng1SnpCMkJwMk0yNzhQWlR2cWNGWWVSTWJGbGtaTVA1dTVrMGRCa29qc3lkZnk4djdWTEtzSGhwdHhheGQ5VGZTTERCelJDYmJQSDB4bWczVVYrNWw5T3puZUhDeVZzLzU0dHdibVBWeUpZVzlrcW5ZVjg4VFczY3dJSXlKWmthTnVvZ2xMNjlsZkwrSlVjZmNWYmFlQ2ZjOHk3emxLeWh5bkxiQXBoditacGJ0K0lKeGw3Y045bjFWOVNsYmpqbDVXVmN6dXYyRDkxbjAvbjRxajdReWI4TFB2bmYxVjRQQlFNK2VQWW1McytEenRXSzFKZ1M3WE1jQ25KbVdGaTJLMnRyYXFvR2IwY2NaMlVhTzF2bUZLK0NuUzZJV1BRMEVBcUxGRndCSnhXeFNoYXFxa3FJZ0NSQ1NGSTZpQmdDREpLR0FaQWhPZkdQUVREVzJBM1RHSFR0MjdBTDIvT2JLcktjdTIvdFI3NXljbkNLcjFYcGhaN2x4U3pmQTJvV3d0SjF5VEZzQnJKd0xUZHNoZXhvc3ZPM2tUdjcyUGJCM082Ulp3UnZzQ2pqOVliZ242RXFwV2crRDU4TEVEY0U3ZWgzY3N4TUtIWERQY0ZpNUVlNGJBdy9mQzJNZmhIa1RvR29EOU5vWXZNazF3TVRiNGRuZE1EQWQ2clpDOFYwd2VrdHcvM3dWN0N5MWMzdEIyeXVpZE0xZkdGcnhxamFSMHk1ZzlmSjVuV2U4cTNXc1hsZkY3SG45OGRSZXl1TnIxekYxNE1TeThnLzM3ZkIwY1pUMWpEUG9tWm1xWTFtZEFacWlZMmVLSHN3a0NUWFlsRmhvaWd1U2tHUkpHTU9SVG9sV2I2dFFoWUY0czRuNE9CT05UY2RGZ0hpT0hXc2hMYXNuU2JiNHNEOHQwajNLaXMybXFkMGUrYlNVaEw0amVmaXVjZlRva1U1NmVqcFpXVm1RbTh2R2plT1pOZlpzSEpPZlorYkk3UEJoMlB6NGJOWjRMMkx2cm5tWVVWazQ3UkllWHI2TkJWTUhhaVJnd0RqV1BUd1pUL1ZHZXZXL20ybmpkNUJqcVdQSjRzMHMyM3VRUVdtQTRzTVhZMHdVRmhheDY4R2RoQlJ2d3JjbVZ4MjdkbjJFMi9mZkVCVTlCZG1pdm5sbjh6L3BaN0IxOXdjc2VtY1BsMDBkVE1JUFFGTlRVbEp3T3J1UW1KaUl6WllRRlVIVkp0RngzRzR6WnJPSGxoYU40WVZNMDJhekQ4bHZ4R0x4aTJCZ1FmSzRGUXltZ0RBYXRSNE5BVVVWSUNSWkRrZFJKUTNraEJ5OFVPVGdoV0FJbXFuaHNxMTJnTTVZV0hqT1IwRW05OUpiYjYzcmZ0NTU1K1U3SEk0aWs4bDBJWEJTblRVR0J2WC9IRmxnYVFRM25GUjIrYkF4R3FnQllYbVl1cjB3WXlHVTEyZ21aTDF1Z3R0eU5WQUR5TXFDVU8vblhidGg5dFBhOCt5QmtCR2NlVlhib05ZSXF4ZkJHa0QxZ2FzVWFvRXNBRmNEalVZSGpuYmNqRG1Ecm1QeG5LREV0OUYyUXQ5TzQvYTFsS1pkZHV6OHJvRWQ5VVhGZTkrWjlOY3ZEQTlOUGhMeWtYYkN6dG9ETmIzQ1JyVHZERlNCcEdxUFFvUjdic2l5TU1nSTdZYW9DSkMwM3BFR0l4YUxSUmlOUnRLTmNQQndBL2JVYkxwM3Rlc0NCQnFvMld6UnFSelpDZWZ6K3FLVlBMc3lnV0hEUnBCYmRHS2h4eTFiL29YWjA1L1o5LzQrNkRid1VHZlpDMmpBTm1TUVpvNWJzd1pTYkM5bGQ1VkNUbDR5UXdZbGM5dTRheGczOGpJR0R4L0ZvTUtzcVBYYW5RNWM5VWZhYk04NVlESjFkWk5QZDFNVVRsVzJLQ0hCeGxrSk5zNjZzb1EzNXE1ZzI1Rkx1THpyRDVQNWJMVmE2ZE9uRDNhN25jVEVSQklTYkZpdFZxeldlSnFhTkFibmRzZGhOamRqTnB2d2VrMTR2YTBjTnhzeDRDYytQdXg3RTdMa0IyTkFNcHMxQnVkcjFSaWNMR3NwSW9HQVFKS0ZoQWdIN0tUZ1hWM1dtSnprMS9uaURERWdwd2M2WTFCQzZRQ3c4Wnh6Q2szTGxqMlZrNU56Wm0rYnpWWm9OQnI3US90OWxjT0tMbCt6OE00U0crUnl3OWl4TUc4ZGpPd0hudDJRTnFXZDdjUnNTemFDVDRuNEl2U2VYWHNHakJrZGVUMW1QSVFGa093TzdJb0xseGRpNlpqVmtVNWUzZ2wxOU4yS29uemdjcmxLRno3K1ZPV1JEN2ZYMk0zTDFSaG1Gb2p4ZzNVRWFIb3cwLzlHMWZ2UGdvMGlWVWxDSUJDeUxLTUdBa0tXRGFoS3F4RElKTm9UTVp1TUhHdHNFQWFUQmw0bWt3bVA1d2l5TE9Ieks5Z1NiY1RIdE1RTDlmbDBPcDEwNjVaQ2V2cUZiTHZtSmo3NzlGTldQZnNnZjMzdEE4cld6Tzg4S2d3VURyaWMwY09DZ2d1anI4YWVrbjFDcUpqejh2dU0zcjZGTFpzMk1ISEkrVHk0N21NbUZFZWtxdHhOTG16TzA2T0QxZmNrVzZUeTFiRVd1aWRwL0t5eHZvNERpcGt1bGgrK25DTXpNeE9Id3hFRU9Gc1k0T0xqajJLeGFPQ21CUlphTUpsYU9CWm53b0NQaEFSanFHS0JoRGdqTHNVdkxIWURpaThndVlXQ3lSd1FKbGtsRUFqZzk2dElraURZVHliVTZGbHZwc3JCQzhRZ1NWSTQ2S0FEdWZiQXp2alJSM3VONTUxM1hpbXdEMWg3eGhsbkdHNGI5WHhXcStHc0hKOHZxYmZKWkNxUUpLblh0M3JBR3FIYUNDVkYyazZ2VzMxUzZtUU1HZ2pyMThDSUdiQjNQZFFvRWZabXF3WTVHNHFEUVkyR0JoMkdtWE1wem0ya3ROeERZZUdKbzhOQ2lBcFZpRStPSHE2cjJGeXg3OHNiYjV4MHFLYW1SbzFoWmUyeHM0NVlXdml6b05LTEVyTU9WUWloVDlVUVdndGNTY2d5QkZTRXdXQkE4ZnVGd1dSQ1ZWb3htT0t4eHNjSmd4UkFVU0UrVG10N0o3eE5mSFZNMEsrNG1PcTlIMURqeXViOE5JY3U0VllmOWRUcVBidDI2VUpxang2Y2ZlNkZETy9uSUcza2MzZzFsNmpHb0MwVzZoc2EwTHlaMmhnODZGTHUyVnBKdjlrVE5aYXJlbWhvaXR4cU5tM1p4TXlSVS9CVWIyT25xNEFGMlViQWg4dXRValJ3S0VVRGg5SlUray9LeW10QkIyeGxaYVVVOVcvTEdOM2xtNWd4ZnhYM0xGcE12djEwQmJaVGtpMUs1Uy9QdmNTN0xSYTZ4Y3Q4ZWFTWmNTTXZvMy9DYVFIdUpDWW1VbEJRUUZKU2tnN2dFckJhRzJscWlzZGljUkVYMTB4Y25KbkdPRE1tNGNWbU05SGFxa1ZOMHpKOXVDdE0xQi8ySTFSRnlHWUZlNElpQlpON2hkY2JRRGFxUWhhcUZFcjAxUVVhUWlBWFpuSEJ2RGcvMGJseGhoaUFhL1A4eXkrL05QenVyeVdmQVJWeEMza0hNRHp5eUo5c2g1b3VUMDkwOWNocWJiV2RhUkttWGlEM1JsTW8rZm9qQzI0ZkNDVURJTWNHeVZrbk40bnVlaGhHajRIOHBaRGJIN0tDZHFPY0RDc1d3YVNCV3ZEQVZRdm0vckR4OFloVGV1eTRLMWk1ZmlNVENrZEZoK2VGK016cjlYNXgvUGp4TDZ1cnF3Lys4NThiRHQxLy8vMHRnRHFoWDdvNEFaaDFCR3F4ejhOTDhQeEVKZElHMndNSmlLUnJJRWxDUXNKb2tJUmYwZEtLZksxZVRPWTRMQ1pWSEdseWM3akJDMExDYUpBd3g4VmpOY1BlZlhYazlSdElhbGM3R1lNdjR1Mk5PL0hrOXlhN1czSlFsY05KdDI3ZHdxVlJtWm1aYkhyaUxpNWUrQjhLOHJLbzNMdUgyKzc3QjNyNEh6dnRONHlkZGdNYkY5c1pQUGwvV0RCakJJT256V1hFenVzb0tMcUkvQ3dIRmVXVnpGajhKdE9IYW1TL2FmdkxEQnI2R2syVnBVeDYrQmx5TEFCMWpDKytGSGRHUG5ZYXFIVG5zbVprWVJSNVdidm0zNHlkTzYvTnVmZldsL1BNTXk4eDhjSHZEOWkrMTFyUlprOHpSN3dLWFJNVFNUREpQd2lJMWRmWDQvUDV5Y2pvMGY0K05qZFRYVjBkVHVnOWNpUlVhK29LeXlDMXRHaSt0OVpXYnhEY3RIcFRqOXVISWhTRXFxV0hoSXJxUTlVTHdScFVnaldvb1VKN1FrQ25lNVNEZ0NmcmxwQ01raUdtQ2ZTSm5odGlmdy9JcTFhOW1weVhsOWN0T2JsYnFzMldrRzR5bWJvYkRJWU1TWkl5MnhwOWJVZEREU2hXU1B1YUVTQkZBV29oYXlpVWwwZnNabFdCbWhxd0o0TWpZa3g3aFJBSFdnL3ZPamh3K0IrL1dySDI2YStVeHZyRFpXVmxSNjYvZnZ4UklocDY0ZlNKRHNDc0k0Ylc0Zk5ROGJudTkvb1VqWENxUnVneDJCMHRxTllzaVpCY3ZXNkpsRU1aWkFRUzFnUWJscmhRbmFjNUdQRU1CUWdTd3Uzd3VuUnhoRmxhS0RpZ2I0WG44N2lvclcvVU9qcFpUejZMek5OVVQ0TkxJUzA5SFhQdzdqUnplQ2JaTTk5bllxR0NZbkdTSEpYdW9kSlFXNHNiTTFucEtkR3BJL3ZXTW5ENk9yWnZYb0wxTkNBclA3b2krRzhLYktGUlYxY1hMS1EvUkVQRFlSb2JHNE1hYnhHbEVJK24vWW9Gdjk4ZnpuM1RWeTRFQW9vVUNLaGhnQXNFMUNDd3FhaHFHTlRRTWJxT1FDNE1VREdxSTUwdGNzeHpPZVo1YUJ2U280OHVzUFh0MjllZWxwWm1UMHBLc2x1dFZydlpiTFlialVhN3dXQ3d5N0pza3lUSkprbFNnaVJKOFVFZ0RBa0FHSFRldFJBdytHcTM0cHY1TE41emU0dVdiYStKNXZRSndyM3dsNm83RUFnY1Z4VEYxZHJhNnZKNFBNZWJtcHBjWDMzMTFmRzllejkyMzMzMzNSNGRlSWtZSUJPZGIrLzA0Z0FBQzh4SlJFRlVnSmtleURwaWFsRkxKMEFXQldaNklBT0VMRXRDNjVJbVlURElPa0NUTVJpTXNaVURSQkp0MjFZUWFNbTJtaUpIWXFJOXpOS1NrN3NGdTdGck9XcmY1UWdCMjR5aFgyODcrN2F0cGNGUlRFbis2U0VQL3hPd2RaYk40dmR6NE1DQnNJQ2xKb04wbEdQSFhPMktXRWFyaGZpQ0FLZTBBM0FSRnFkMXVsZEQ1VnJFTUxqT1FLNWRzTk9WZDhtZGdKcWhIV0NMWGZUYjZXeWhuY2ZZNTlGTzJyYlA5WStkTGJGQUZydDB4TkxhUEE5SnY3Y0hZaWNDczlEem1KNGFVZXlzTGFDRlFDMVN1TjZSR0dSU2toMkhvd3ZKeVYxeHlHNys4MkVsRG1jWERJYm8vdlQ5aDQxblFPNjMyMTE5Mzg3TldIc05KTXRwL3ErK3puOEN0cE1ZeDQ0ZDQrREJnOVRWMVhINGNJaTlSWFRlbXBzOU92TTBVclVRcVRtTkJyaEFJQkJscHFxcUdnVnlRcWlTcW9xd3FVcTQ0Yk9RaEVBUGRGSTdJQlFEVU1LZ1ZVTzB5OUk2QXplcEE0Q1Qyd0cxemdDdU0zQ0xCVFRhQWJIT0dKcmFBVnVMZXEybDJraWRnbGpRWjZick54djJtNFhBTEdocVNraFNOSmpwUUUyRUZHUDBnR1kwUmhoYXFIcWdiVjZhVFZmbkdmR2w5ZWpSZzZTa0pINGEzM2xVOVAvZVNFcEtJaWtwaWE1ZHUxSmIreFgxOVllQ09tOUhneVZaeDRNRjljM2hnbnF2VjErU3BXZHZJUk0xRUtVZW9nbGNCZ2dFVkZSVkZVR1FFNnFxU3FGK00xcS9CcUpZWFBBQ2ptVjBPZ0NTWkVtS0JUd2hCd0d5TTBEckROeStEblA3T3NEMmRjek9kZ0V1Q0VpZEFoalJ6YkxEb0tyM21ZVmVCd0V0aXBscFFDYUgyajZLRUZPTDFIWWF3d3JPRVpZV3FSNndSS1Z3aEZoYUVsMjZkQ0U1T1ptVWxGVFMwN3YvbjVBWCtnbllmdUJSV3ZvSnVibG5rWnFheW9FRE5kVFZmY1hodzRjNWN1UklsSkJseUR6Vks0Ym9hMDQxMzVzR2NvRkFHT0FJQkFKNmlTUkp4K0JFaE1tSjBLT0lNVlhSUjFjamJGeEk3WU5TRk5oRmZhY2RjMWM2QWJCMXhOcGlUVkxSQ2JoMUJuQnFlNjkxb05RWnM0djlUZFMyOUs5alRFMWtXZFlGQS9TQVppQ2t1aEVMYUFaRGhLSHBpOWJiVTdiVnpNNklFR1RYcmwyRExLMDdtWmsvS1ZyOUJHdy93TWpNekNBMU5ZWGEydHF3U205Yjg3UTVHRndJQVp3dnh2L1docjJGQWd4QmtGTTdCRGtkd0JITjVxUllvSXQ2M3M1bmJaWmdIbDBuekV4TDB2b3VmV3hCMW5XeVRLNmpCYjFwR2ZPYTlsaFppSm5wL0dmdGdGbkk3RFIyd3RMMGZqUnpVQk13WGljQ0dXMTJodFJ0MDlQVE1adk5QMTFnUHd5d0JkaXhkeC8vclBpS1k0cE13Vms5dWVIY016QURyYzFOdkxyck0vYldIY05nc1RHeXVKQUx1OGNrd2l2TlBQWHZqem16OTlrTXp2anY5UjJZeldheXM3TkpUVTF0WTU3cW82ZlIvamM5ZytzNGVxb29Db3EvbFpaV0NZdFppZ0k1WGJDaFBaQWowaVlWS2ZaUlZWVWtXUTRKMk1ReU96cGhZcnJYVWtqVzYyVEJyQ1BHRnZXZUNOblpKMlp5ZEFKZ2tkOExJVlJWWURESVVVeE01eTlEbjZJUkMyYWh3SUMrQ2JlZW9YVVc3WXo0MFN4dC9HaWhhR2VzMlJuYlVLVzlVYllic29xZzNaYXc3aW9tVEhtWXhTdVc0TlJkMWJYbGU1QlQ4a2x6ZkR1QTZTbGR4ZUM1dTlqNTh2eHZ2SjRoYzNleC9SVFdjekwvNlJUMDJJNnplbmN0UllYWnBKcFZscjI5a2MrT1g4YURnN0w1c3JLS2o1dGxMdTJiaS92SVFYNzk5NVVzdm1NaUE3cEVOdlBXNXEwc2VlOUxyckwxK0s4R3R0Q0lqNCtuWjg4YzB0SlNxYXVybzc2K1BtaWU2djF2SVlCcmFTT0wxRkgwdExuaENJY2JBK1JrcGVqVFE0VE9ENmNIT1lSUWhSWndVQWtHSHNKQUY3ek9KU0VFa2l3alJjQ09rMkZkTWNCM0lqQTcyWEtTTnFhcGlQdzRDcVJDN0tvanRxY0h4UER6NFA4ekdBemg5Mk1DQUVRZVk4Rk0xalhkMWdPYUlkaVl1Nk5vWjdTc1VFaUZRd08waUIrdGE5ZXVwS1Nra0phV0ZwV1BkcUl4YlFRc3JJRCs3UlROclZzeUI4dUE4VkdnQnJEa3ZwL2ptUHhXVkJIOE43cWhweFZ3KzZSdm50S2hlbDFVVlI4K3BkK2V6SC82K3NBbU8zaGc4dVhobDEwOGg3bDF6NWN3S0p2Y3ZrVTgwRGYwU1RhN1AvbVVMZnNiR2RCRk94Q3V1djA4VjJ2anVqT3RlSDVrMURjaElZR2VQWHZTdlh2M2NQVDBTTzFuUFAvQ2UvUXRLY0hlY2h6WG9VbzJmVkpMbjc2NUpMUzJCQU1Nc1F6T3k0RXZ2cURwV0ROQ0VSdzVjZ1JWTXBHUzRvUkFnSURpNWZEaFkxaXRSbkhNNVVKRnhwN2tRQloreWVWeW93UzBXSUlwemlKTVJna2hCQUcvRDE4Z0lBQkpsZzFJaE1CT1JWRlVMU0NocXFDeGxwTUZyVFlBcGtYWXBUQ2xDNmJrSTdjdmNpakMzd21CclBiOVlGNFlZWUFLN20yUTFXbUFKSVFxaE5CK0wwa3lScU1oQkhBRUZEOENDVW5Xb3BRaFVBdjRXMUV4b3JTMkVoQmd0ZG14eHBuQ1FOWk8yZ1p0ZldudE16U3Q3MEFRMEl6eDdQbkVTdTRaTm5ac1M2UmJUaEkzVDNTUTNrM3pveDJ0U09OdnoxaHh5VEIrT2d3dEJEeXdjQkdNdnhQU0xPQ3JoMGVlaFJsM1FlVW1XTGtacXR6dytGeElNOE9JU1RBd040UVNqU3grNGwvY3RXVnArT0EybFc5andiTnZzYm0wSHN2eVA5TzAzVUhlNEd1Wk9GUnJabHk1Y3kxYm01SkpxZDNDaTVzK0lYZkl6N2x2OG5BcWQyM2c2WmZmb3JxdWtmVGM4NWx4KzNUUzdScE1ySHY2WWJaVkhNZWFkWDdVaWF6WXZvYnRqWGE4ZXphd3RlSUlJNmY4bHJFbHVTZHgxZmhZdldRZWEzWitTYitSTjNIYjJCSmtvTDU4TzB1ZlhVVjU5U0djR2IyWmR2dWQ1S1ZaVC9pZlZFODl5eFl2Wm12cEFiNXgrdituOVEza3ByZVRTK00vVHNVUmxUNnBRVmFtK25obzdVNm1YM2srY1QvT2psK0FWbHlmazVQRE9lZWNRLzY1Z3pqSDBjQ0xHOHZJeWtwangvbzFtRFB5eVV4THBWdTNGSktUdStKME9uRTR1b1RMdWV4Mk82azlNa2gxSmlLWkUwaExTeU0xcFNzSlZvMEJ4TWNaY0x1UGMrUm9NM2FIRTd2Tmd0RWNSNXhSRnJJcFR0aVRrb1F0d1N4OExjMWdER2EwV3pRNUpzMDJNd21UeVNTTVJxTXdHaVFSQkFoaE1CcUUxc1JCVWcwR2d5ckxjbnRMSUxpRUd2ZEdMNXIybkNKSmtxWjRvZFZWaGwvSExBRkprZ0t5SkFWa1dRNG15V3JybG1VcHZCMkJVSVdHdW1wd3U2ckJZRkFsdEk1TkpwTlJTS2hDQ2FqQ2FEUUtrOGtrVENhek1FaUlnQ3AwaXJOeGlJQkNhMnVyc0NRa0NwdFpGbTdYY1JFWHIvbS9Jbzc5NEhHT2o4ZHF0WEM4c1o1RGh3NVJWMWRIYlcwdEJ3OGU1S3NqYnV4Mk8wbEpTVGdjWFlKK3NxNTA2NVpDYW1vcTZjbmRlVzlMQm1VTlozRDk5VGswN3N4bFcxMCs1NXh6RGtwRkR0ZmVhYVZrTEV3YUNYZU5nWjMxZ0JXeWZERHBIazBzZE5ZVWNLV0JYWWIwWGpCOE9Eak5VRHhFZTU2bHUrUjg1WnZZS2ZkblFIcUVwMWlTc3hnMi9BcXlVMnowNm5jeHc0ZGZRYjllRVZtL3lwMXZjdCswWDdDcXdzTDRpZGRqVlZ3QVZGV1UwMnZBbGR4KzF4MWt1ZDlqMkpSNVljR0N2SDZES2NrSzhNaXlOMktBN1ExbVRMc2J0V0FvRTRabU1uM3N6VlNmaEVSUjArNVZiSEQxWXZxVWExazkrem9XYjZnRW9LYXlBbWQrQ1hmZWRRY2xLWWNZTnVJVzNDZjZUNnFMR1NNdVpsMk5uV20zMy9ITmdnZlYrei9oc1U4Q1BEbmo3RmlpeVROck5oSjM5Z0N1N0tHVkpPN2M4UjVObVVVTTZtYm13LzhEemt1THhVSjJkalozTFg2QlR5Ky9tTWNmLzRER3pKSE12dTRTM0M1OWlvaW5UWW1XMVpxSVRiaW85UGpKeU1pSTlzRVp0Um1UY1ZadkVnMUNaNlphTU1mN2FQWTBvMGp4eUhLTFVERVFGMmRHbU0zRVdWUWFXcjJTMFJ4SG5DRm9zaXFDRnE5ZnhOc1NrSVdndGFVWlJZRFJhQ1Jpd1lxUU9Sb21Xa0VpRmtXK2hORGlwcW8vQUxLTWpDb0ZBbUF3R0pHbGprMVFqV1JKK0gwK0pJTVJveHg1RDBBRUFnUWtDWXNsTHNxa05KdE5CQlNGZ0Nvd0dtUjhBVUZjbkJsSmtwRXNGcFFXRjY1V1NWZ3NjV0Z6cy9XNGhDa3VpV1NuQTFsSzRIaGxMWEpjUFBGR2ZiV0FQakFnMDJwTEpJNW9jOVNjMkFXbnMwdVVEMDNmU01WT0VpYWpnOS8rMFVtLzFHNTBQNTdLcXpWR0xCWll1aEFtem9JUkpkci9uem9VVnF5RjRpa3daaFpzSGdGanhrQlRDbXdNeXBxbFpHdUwzUXo5U3RxYW9yWGxWVmh5TXFOa1hTek9ERXBLTWxpZllzV1JYMHhKU1Z1enpaaDNCWS9QdXgwWkdCNThiOGo0R2RSVzdHVnZlUTBaaGVkUzkreGJOQUxKUUU1aE1TbStNdVJsYlUzSWdwRTNNbTNVRUtDWWdiUCt6TjVhVFNtNTA1RStpUG4zanNjQnpKcHhEZmU4dUlyYmg4MmszL0NKWkZmdlkwOVpKZVplNTJDcGZJQUtOeFIxOHA5Y3UxZXp2RGFQbXMwenNRUC9IM2l4Z0ptUU81d3VBQUFBQUVsRlRrU3VRbUNDIl0sWzEsImRldGFpbHMtY29udGFpbmVyIl0sWzEsImRldGFpbHMiXSxbImhyZWYiLCJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9hcGlfZG9jcy9weXRob24vdGYvZGVidWdnaW5nL2V4cGVyaW1lbnRhbC9lbmFibGVfZHVtcF9kZWJ1Z19pbmZvIiwidGFyZ2V0IiwiYmxhbmsiLCJyZWwiLCJub3JlZmVycmVyIG5vb3BlbmVyIl0sWyJocmVmIiwiaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvYXBpX2RvY3MvcHl0aG9uL3RmL2RlYnVnZ2luZyIsInRhcmdldCIsImJsYW5rIiwicmVsIiwibm9yZWZlcnJlciBub29wZW5lciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiLDEpLGt1KDIsIkRlYnVnZ2VyIFYyIGlzIGluYWN0aXZlIGJlY2F1c2Ugbm8gZGF0YSBpcyBhdmFpbGFibGUuIiksQW0oKSxSbSgzLCJkaXYiKSxrdSg0LCJUbyB1c2UgdGhlIGRlYnVnZ2VyLCIpLEFtKCksUm0oNSwiZGl2IiksUm0oNiwib2wiKSxSbSg3LCJsaSIpLGt1KDgsIiBBZGQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHRoZSBiZWdpbm5pbmcgb2YgeW91ciBwcm9ncmFtOiAiKSxSbSg5LCJkaXYiLDIpLFJtKDEwLCJzcGFuIiksa3UoMTEsInRmLmRlYnVnZ2luZy5leHBlcmltZW50YWwuZW5hYmxlX2R1bXBfZGVidWdfaW5mbygiKSxBbSgpLFJtKDEyLCJzcGFuIiwzKSxrdSgxMywibG9nZGlyIiksQW0oKSxrdSgxNCwiLCAiKSxSbSgxNSwic3BhbiIsMyksa3UoMTYsJ3RlbnNvcl9kZWJ1Z19tb2RlPSJGVUxMX0hFQUxUSCInKSxBbSgpLGt1KDE3LCIsICIpLFJtKDE4LCJzcGFuIiwzKSxrdSgxOSwiY2lyY3VsYXJfYnVmZmVyX3NpemU9LTEiKSxBbSgpLFJtKDIwLCJzcGFuIiksa3UoMjEsIikiKSxBbSgpLEFtKCksQW0oKSxSbSgyMiwibGkiKSxrdSgyMywiUmUtcnVuIHRoZSBwcm9ncmFtLiIpLEFtKCksQW0oKSxBbSgpLFJtKDI0LCJkaXYiLDQpLFJtKDI1LCJkaXYiLDUpLFJtKDI2LCJkaXYiLDYpLFRtKDI3LCJpbWciLDcpLEFtKCksUm0oMjgsImRpdiIsOCksa3UoMjksIkF1dG8tYWxlcnRzIGZvciBwcm9ibGVtcyBmb3VuZCIpLEFtKCksQW0oKSxSbSgzMCwiZGl2Iiw1KSxSbSgzMSwiZGl2Iiw2KSxUbSgzMiwiaW1nIiw5KSxBbSgpLFJtKDMzLCJkaXYiLDgpLGt1KDM0LCIgSW50ZWdyYXRlZCBkZWJ1Z2dpbmcgdG8gdHJhY2UgcHJvYmxlbXMgdG8gdGhlaXIgY2F1c2VzICIpLEFtKCksQW0oKSxSbSgzNSwiZGl2Iiw1KSxSbSgzNiwiZGl2Iiw2KSxUbSgzNywiaW1nIiwxMCksQW0oKSxSbSgzOCwiZGl2Iiw4KSxrdSgzOSwiTGluayBsb2cgdG8gY29kZSIpLEFtKCksQW0oKSxBbSgpLFJtKDQwLCJkaXYiLDExKSxSbSg0MSwiZGl2IiwxMiksa3UoNDIsIiBUaGUgbG9nIGRpcmVjdG9yeSBtdXN0IGNvbnRhaW4gVGVuc29yRmxvdyBEZWJ1Z2dlciAoVjIpIGRhdGEuIHRmLmRlYnVnZ2luZy5leHBlcmltZW50YWwuZW5hYmxlX2R1bXBfZGVidWdfaW5mbygpIHdpbGwgY29sbGVjdCB0ZW5zb3IgZGF0YSwgZ3JhcGggc3RydWN0dXJlcywgdGhlIGFzc29jaWF0ZWQgc3RhY2sgdHJhY2VzLCBhbmQgc291cmNlIGNvZGUgdG8gdGhlIHNwZWNpZmljZWQgZGlyZWN0b3J5IGxvZ2RpciBhcyB0aGUgaW5zdHJ1bWVudGVkIFRlbnNvckZsb3cgcHJvZ3JhbSBleGVjdXRlcy4gIiksQW0oKSxSbSg0MywiZGl2IiwxMiksUm0oNDQsImRpdiIpLGt1KDQ1LCIgU2VlICIpLFJtKDQ2LCJhIiwxMyksa3UoNDcsIiBkb2N1bWVudGF0aW9uICIpLEFtKCksa3UoNDgsIiBvZiB0aGUgUHl0aG9uIEFQSSBvZiBEZWJ1Z2dlciBWMi4gIiksQW0oKSxSbSg0OSwiZGl2Iiksa3UoNTAsIiBTZWUgIiksUm0oNTEsImEiLDE0KSxrdSg1MiwiIGhlcmUgIiksQW0oKSxrdSg1MywiIGZvciBvdGhlciBUZW5zb3JGbG93IGRlYnVnZ2luZyBBUElzLiAiKSxBbSgpLEFtKCksQW0oKSxBbSgpKX0sc3R5bGVzOlsiLmFyZ1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBjb2xvcjogbGlnaHRibHVlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIG1hcmdpbjogMnB4O1xufVxuXG4uY29kZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICBtYXJnaW46IDEwcHg7XG59XG5cbi5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LWZhbWlseTogUm9ib3RvO1xuICBmb250LXNpemU6IDE1cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDUwcHg7XG59XG5cbi5kZXRhaWxzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAxMHB4IDYwcHg7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5leGhpYml0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmV4aGliaXRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMTBweCA2MHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogMzEwcHg7XG59XG5cbi5leGhpYml0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kZXNjcmlwdGlvbltfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMzEwcHg7XG59XG5cbi5leGhpYml0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zY3JlZW5zaG90W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNhbnZhc1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBoZWlnaHQ6IDIwMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtc2l6ZTogMTM1JTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG59Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKERxLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImluYWN0aXZlLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vaW5hY3RpdmVfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vaW5hY3RpdmVfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLG51bGwpO2NsYXNzIEVxe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dH19RXEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEVxKShTbShJdykpfSxFcS7JtWNtcD10byh7dHlwZTpFcSxzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItaW5hY3RpdmUiXV0sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmVG0oMCwiaW5hY3RpdmUtY29tcG9uZW50Iil9LGRpcmVjdGl2ZXM6W0RxXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEVxLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLWluYWN0aXZlIix0ZW1wbGF0ZToiIDxpbmFjdGl2ZS1jb21wb25lbnQ+PC9pbmFjdGl2ZS1jb21wb25lbnQ+ICJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y29uc3QgUnE9SlAoIltEZWJ1Z2dlcl0gRGVidWdnZXIgTG9hZGVkIiksQXE9SlAoIltEZWJ1Z2dlcl0gRGVidWdnZXIgVW5sb2FkZWQiKSxUcT1KUCgiW0RlYnVnZ2VyXSBBIE5ldyBEZWJ1Z2dlciBEYXRhIFBvbGxpbmcgRXZlbnQgQmVnaW5zIiksTnE9SlAoIltEZWJ1Z2dlcl0gRGVidWdnZXIgUnVucyBSZXF1ZXN0ZWQiKSx6cT1KUCgiW0RlYnVnZ2VyXSBEZWJ1Z2dlciBSdW5zIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLElxPUpQKCJbRGVidWdnZXJdIERlYnVnZ2VyIFJ1bnMgUmVxdWVzdCBGYWlsZWQiKSxIcT1KUCgiW0RlYnVnZ2VyXSBOdW1iZXIgYW5kIEJyZWFrZG93biBvZiBBbGVydHMgUmVxdWVzdGVkIiksRnE9SlAoIltEZWJ1Z2dlcl0gTnVtYmVyIGFuZCBCcmVha2Rvd24gb2YgQWxlcnRzIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLExxPUpQKCJbRGVidWdnZXJdIEFsZXJ0cyBEYXRhIG9mIGFuIEFsZXJ0VHlwZSBJcyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxCcT1KUCgiW0RlYnVnZ2VyXSBBbGVydCBUeXBlIEZvY3VzIFRvZ2dsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxWcT1KUCgiW0RlYnVnZ2VyXSBOdW1iZXIgb2YgVG9wLUxldmVsIEV4ZWN1dGlvbnMgUmVxdWVzdGVkIiksanE9SlAoIltEZWJ1Z2dlcl0gTnVtYmVyIG9mIFRvcC1MZXZlbCBFeGVjdXRpb25zIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFVxPUpQKCJbRGVidWdnZXJdIEV4ZWN1dGlvbkRpZ2VzdHMgUmVxdWVzdGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksR3E9SlAoIltEZWJ1Z2dlcl0gRXhlY3V0aW9uRGlnZXN0cyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxXcT1KUCgiW0RlYnVnZ2VyXSBTY3JvbGwgTGVmdHdhcmQgb24gdGhlIEV4ZWN1dGlvbiBUaW1lbGluZSIpLFlxPUpQKCJbRGVidWdnZXJdIFNjcm9sbCBSaWdodHdhcmQgb24gdGhlIEV4ZWN1dGlvbiBUaW1lbGluZSIpLHFxPUpQKCJbRGVidWdnZXJdIFNjcm9sbCB0aGUgRXhlY3V0aW9uIFRpbWVsaW5lIHRvIEdpdmVuIEluZGV4Iix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksWnE9SlAoIltEZWJ1Z2dlcl0gRXhlY3V0aW9uIERhdGEgT2JqZWN0cyBCZWluZyBGb2N1c2VkIE9uIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksWHE9SlAoIltEZWJ1Z2dlcl0gRXhlY3V0aW9uIERhdGEgT2JqZWN0cyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxLcT1KUCgiW0RlYnVnZ2VyXSBOdW1iZXIgb2YgSW50cmEtR3JhcGggRXhlY3V0aW9ucyBSZXF1ZXN0ZWQiKSxKcT1KUCgiW0RlYnVnZ2VyXSBOdW1iZXIgb2YgSW50cmEtR3JhcGggRXhlY3V0aW9ucyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxRcT1KUCgiW0RlYnVnZ2VyXSBJbnRyYS1HcmFwaCBFeGVjdXRpb24gRGF0YSBSZXF1ZXN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSwkcT1KUCgiW0RlYnVnZ2VyXSBJbnRyYS1HcmFwaCBFeGVjdXRpb24gRGF0YSBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx0Wj1KUCgiW0RlYnVnZ2VyXSBTY3JvbGwgSW50cmEtR3JhcGggRXhlY3V0aW9uIExpc3QgdG8gR2l2ZW4gSW5kZXgiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxlWj1KUCgiW0RlYnVnZ2VyXSBHcmFwaCBFeGVjdXRpb24gaXMgRm9jdXNlZCBPbiIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLG5aPUpQKCJbRGVidWdnZXJdIEdyYXBoIE9wIElzIEZvY3VzZWQgT24iLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxvWj1KUCgiW0RlYnVnZ2VyXSBHcmFwaCBPcCBJbmZvIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGlaPUpQKCJbRGVidWdnZXJdIEdyYXBoIE9wIEluZm8gTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksYVo9SlAoIltEZWJ1Z2dlcl0gU291cmNlIEZpbGUgTGlzdCBSZXF1ZXN0ZWQuIiksclo9SlAoIltEZWJ1Z2dlcl0gU291cmNlIEZpbGUgTGlzdCBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxzWj1KUCgiW0RlYnVnZ2VyXSBTb3VyY2UgRmlsZSBMaW5lIElzIEZvY3VzZWQgb24iLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxsWj1KUCgiW0RlYnVnZ2VyXSBTb3VyY2UgRmlsZSBSZXF1ZXN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxjWj1KUCgiW0RlYnVnZ2VyXSBTb3VyY2UgRmlsZSBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxkWj1KUCgiW0RlYnVnZ2VyXSBBIFNldCBvZiBTdGFjayBGcmFtZXMgSGF2ZSBCZWVuIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHBaPSJkZWJ1Z2dlciI7dmFyIG1aLHVaLGZaO2Z1bmN0aW9uIGdaKHQpe2lmKG51bGw9PT10LmNvZGVMb2NhdGlvbkZvY3VzVHlwZSlyZXR1cm4gbnVsbDtsZXQgZT1bXTtpZih0LmNvZGVMb2NhdGlvbkZvY3VzVHlwZT09PWZaLkVYRUNVVElPTil7Y29uc3R7Zm9jdXNJbmRleDpuLGV4ZWN1dGlvbkRhdGE6b309dC5leGVjdXRpb25zO2lmKG51bGw9PT1ufHx2b2lkIDA9PT1vW25dKXJldHVybiBudWxsO2U9b1tuXS5zdGFja19mcmFtZV9pZHN9ZWxzZXtpZihudWxsPT09dC5ncmFwaHMuZm9jdXNlZE9wKXJldHVybiBudWxsO2NvbnN0e2dyYXBoSWQ6bixvcE5hbWU6b309dC5ncmFwaHMuZm9jdXNlZE9wO2lmKHZvaWQgMD09PXQuZ3JhcGhzLm9wc1tuXXx8IXQuZ3JhcGhzLm9wc1tuXS5oYXMobykpcmV0dXJuIG51bGw7ZT10LmdyYXBocy5vcHNbbl0uZ2V0KG8pLnN0YWNrX2ZyYW1lX2lkc31jb25zdCBuPVtdO2Zvcihjb25zdCBvIG9mIGUpe2lmKG51bGw9PXQuc3RhY2tGcmFtZXNbb10pcmV0dXJuIG51bGw7bi5wdXNoKHQuc3RhY2tGcmFtZXNbb10pfXJldHVybiBufWZ1bmN0aW9uIGhaKHQsZSl7cmV0dXJuIHQuZmluZEluZGV4KCh0PT50Lmhvc3RfbmFtZT09PWUuaG9zdF9uYW1lJiZ0LmZpbGVfcGF0aD09PWUuZmlsZV9wYXRoKSl9ZnVuY3Rpb24gYloodCxlLG4pe2lmKGU+PW4pdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBiZWdpbiB0byBiZSBsZXNzIHRoYW4gZW5kLCBidXQgZ290IGJlZ2luPSR7ZX0sIGVuZD0ke259YCk7cmV0dXJuIHQuZmluZEluZGV4KCh0PT50LmJlZ2luPT09ZSYmdC5lbmQ9PT1uKSl9ZnVuY3Rpb24geVoodCl7Y29uc3QgZT10LnNvdXJjZUNvZGUuZm9jdXNMaW5lU3BlYztpZighdC5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSlyZXR1cm4gZTtjb25zdCBuPWdaKHQpO2lmKG51bGw9PT1uKXJldHVybiBlO2NvbnN0IG89KGZ1bmN0aW9uIGkodCxlKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtmb3IobGV0IG49dC5sZW5ndGgtMTtuPj0wOy0tbil7Y29uc3Qgbz10W25dLHtob3N0X25hbWU6aSxmaWxlX3BhdGg6YX09bztpZihpPT09ZS5ob3N0X25hbWUmJmE9PT1lLmZpbGVfcGF0aClyZXR1cm4gb31yZXR1cm4gbnVsbH0pKG4sZSk7cmV0dXJuIG51bGw9PT1vP2U6b30hKGZ1bmN0aW9uKHQpe3RbdC5VTlNQRUNJRklFRD0wXT0iVU5TUEVDSUZJRUQiLHRbdC5OT19URU5TT1I9MV09Ik5PX1RFTlNPUiIsdFt0LkNVUlRfSEVBTFRIPTJdPSJDVVJUX0hFQUxUSCIsdFt0LkNPTkNJU0VfSEVBTFRIPTNdPSJDT05DSVNFX0hFQUxUSCIsdFt0LkZVTExfSEVBTFRIPTRdPSJGVUxMX0hFQUxUSCIsdFt0LlNIQVBFPTVdPSJTSEFQRSIsdFt0LkZVTExfTlVNRVJJQ1M9Nl09IkZVTExfTlVNRVJJQ1MiLHRbdC5GVUxMX1RFTlNPUj03XT0iRlVMTF9URU5TT1IiLHRbdC5SRURVQ0VfSU5GX05BTl9USFJFRV9TTE9UUz04XT0iUkVEVUNFX0lORl9OQU5fVEhSRUVfU0xPVFMifSkobVp8fChtWj17fSkpLChmdW5jdGlvbih0KXt0LkZVTkNUSU9OX1JFQ09NUElMRV9BTEVSVD0iRnVuY3Rpb25SZWNvbXBpbGVzQWxlcnQiLHQuSU5GX05BTl9BTEVSVD0iSW5mTmFuQWxlcnQiLHQuVEVOU09SX1NIQVBFX0FMRVJUPSJUZW5zb3JTaGFwZUFsZXJ0In0pKHVafHwodVo9e30pKSwoZnVuY3Rpb24odCl7dFt0LkVYRUNVVElPTj0wXT0iRVhFQ1VUSU9OIix0W3QuR1JBUEhfT1BfQ1JFQVRJT049MV09IkdSQVBIX09QX0NSRUFUSU9OIn0pKGZafHwoZlo9e30pKTtjb25zdCBfWj15ayh7cnVuczp7fSxydW5zTG9hZGVkOntzdGF0ZTp5RS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSxhY3RpdmVSdW5JZDpudWxsLGxhc3REYXRhUG9sbE9uc2V0VGltZU1zOi0xLGxhc3ROb25FbXB0eVBvbGxEYXRhVGltZU1zOjEsYWxlcnRzOnthbGVydHNMb2FkZWQ6e3N0YXRlOnlFLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGx9LG51bUFsZXJ0czowLGFsZXJ0c0JyZWFrZG93bjp7fSxhbGVydHM6e30sZXhlY3V0aW9uSW5kaWNlczp7fSxncmFwaEV4ZWN1dGlvbkluZGljZXM6e30sZm9jdXNUeXBlOm51bGx9LGV4ZWN1dGlvbnM6KGZ1bmN0aW9uIENaKCl7cmV0dXJue251bUV4ZWN1dGlvbnNMb2FkZWQ6e3N0YXRlOnlFLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGx9LGV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQ6e2xvYWRpbmdSYW5nZXM6W10sbnVtRXhlY3V0aW9uczowLHBhZ2VMb2FkZWRTaXplczp7fX0sZGlzcGxheUNvdW50OjUwLHBhZ2VTaXplOjEwMCxzY3JvbGxCZWdpbkluZGV4OjAsZm9jdXNJbmRleDpudWxsLGV4ZWN1dGlvbkRpZ2VzdHM6e30sZXhlY3V0aW9uRGF0YTp7fX19KSgpLGdyYXBoRXhlY3V0aW9uczooZnVuY3Rpb24gTVooKXtyZXR1cm57bnVtRXhlY3V0aW9uc0xvYWRlZDp7c3RhdGU6eUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0sZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDp7bG9hZGluZ1JhbmdlczpbXSxudW1FeGVjdXRpb25zOjAscGFnZUxvYWRlZFNpemVzOnt9fSxkaXNwbGF5Q291bnQ6MTAwLHBhZ2VTaXplOjIwMCxzY3JvbGxCZWdpbkluZGV4OjAsZm9jdXNJbmRleDpudWxsLGdyYXBoRXhlY3V0aW9uRGlnZXN0czp7fSxncmFwaEV4ZWN1dGlvbkRhdGFMb2FkaW5nUGFnZXM6W10sZ3JhcGhFeGVjdXRpb25EYXRhUGFnZUxvYWRlZFNpemVzOnt9LGdyYXBoRXhlY3V0aW9uRGF0YTp7fX19KSgpLGdyYXBoczp7b3BzOnt9LGxvYWRpbmdPcHM6e30sZm9jdXNlZE9wOm51bGx9LHN0YWNrRnJhbWVzOnt9LGNvZGVMb2NhdGlvbkZvY3VzVHlwZTpudWxsLHN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlOiExLHNvdXJjZUNvZGU6e3NvdXJjZUZpbGVMaXN0TG9hZGVkOntzdGF0ZTp5RS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSxzb3VyY2VGaWxlTGlzdDpbXSxmaWxlQ29udGVudHM6W10sZm9jdXNMaW5lU3BlYzpudWxsfX0sYmsoTnEsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cnVuc0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ydW5zTG9hZGVkKSx7c3RhdGU6eUUuTE9BRElOR30pfSkpKSxiayhJcSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtydW5zTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnJ1bnNMb2FkZWQpLHtzdGF0ZTp5RS5GQUlMRUR9KX0pKSksYmsoenEsKCh0LHtydW5zOmV9KT0+e2NvbnN0IG49T2JqZWN0LmtleXMoZSksbz1uLmxlbmd0aD4wJiZudWxsPT09dC5hY3RpdmVSdW5JZDtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtsYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNczpvP0RhdGUubm93KCk6dC5sYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNcyxydW5zOmUscnVuc0xvYWRlZDp7c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSxhY3RpdmVSdW5JZDpuLmxlbmd0aD4wP25bMF06bnVsbH0pfSkpLGJrKFRxLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2xhc3REYXRhUG9sbE9uc2V0VGltZU1zOkRhdGUubm93KCl9KSkpLGJrKEhxLCh0PT5udWxsPT09dC5hY3RpdmVSdW5JZD90Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7YWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cykse2FsZXJ0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuYWxlcnRzTG9hZGVkKSx7c3RhdGU6eUUuTE9BRElOR30pfSl9KSkpLGJrKEZxLCgodCx7bnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm59KT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG89ZT50LmFsZXJ0cy5udW1BbGVydHM7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXM6bz9EYXRlLm5vdygpOnQubGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXMsYWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cykse2FsZXJ0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuYWxlcnRzTG9hZGVkKSx7c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSksbnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm59KX0pfSkpLGJrKExxLCgodCx7bnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm4sYWxlcnRUeXBlOm8sYmVnaW46aSxhbGVydHM6YX0pPT57aWYobnVsbD09PXQuYWN0aXZlUnVuSWQpcmV0dXJuIHQ7Y29uc3Qgcj17fSxzPXQuYWxlcnRzLmV4ZWN1dGlvbkluZGljZXNbb10/dC5hbGVydHMuZXhlY3V0aW9uSW5kaWNlc1tvXS5zbGljZSgpOltdLGw9dC5hbGVydHMuZ3JhcGhFeGVjdXRpb25JbmRpY2VzW29dP3QuYWxlcnRzLmdyYXBoRXhlY3V0aW9uSW5kaWNlc1tvXS5zbGljZSgpOltdO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7Kyt0KXtjb25zdCBlPWkrdCxuPWFbdF07aWYocltlXT1uLG4uYWxlcnRfdHlwZT09PXVaLklORl9OQU5fQUxFUlQpe2NvbnN0IHQ9bjtzW2VdPXQuZXhlY3V0aW9uX2luZGV4LG51bGwhPT10LmdyYXBoX2V4ZWN1dGlvbl90cmFjZV9pbmRleCYmKGxbZV09dC5ncmFwaF9leGVjdXRpb25fdHJhY2VfaW5kZXgpfX12b2lkIDAhPT10LmFsZXJ0cy5hbGVydHNbb10mJk9iamVjdC5hc3NpZ24ocix0LmFsZXJ0cy5hbGVydHNbb10pO2xldCBjPXQuZXhlY3V0aW9ucy5zY3JvbGxCZWdpbkluZGV4LGQ9dC5ncmFwaEV4ZWN1dGlvbnMuZm9jdXNJbmRleDtpZihvPT09dVouSU5GX05BTl9BTEVSVCYmMD09PWkpe2NvbnN0IGU9YVswXTtjPU1hdGgubWF4KDAsZS5leGVjdXRpb25faW5kZXgtTWF0aC5mbG9vcih0LmV4ZWN1dGlvbnMuZGlzcGxheUNvdW50LzIpKSxudWxsIT09ZS5ncmFwaF9leGVjdXRpb25fdHJhY2VfaW5kZXgmJihkPWUuZ3JhcGhfZXhlY3V0aW9uX3RyYWNlX2luZGV4KX1yZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtleGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMpLHtzY3JvbGxCZWdpbkluZGV4OmN9KSxncmFwaEV4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zKSx7Zm9jdXNJbmRleDpkfSksYWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cykse2FsZXJ0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuYWxlcnRzTG9hZGVkKSx7c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSksbnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm4sYWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cy5hbGVydHMpLHtbb106cn0pLGV4ZWN1dGlvbkluZGljZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuYWxlcnRzLmV4ZWN1dGlvbkluZGljZXMpLHtbb106c30pLGdyYXBoRXhlY3V0aW9uSW5kaWNlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuZ3JhcGhFeGVjdXRpb25JbmRpY2VzKSx7W29dOmx9KX0pfSl9KSksYmsoQnEsKCh0LHthbGVydFR5cGU6ZX0pPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2FsZXJ0czpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMpLHtmb2N1c1R5cGU6dC5hbGVydHMuZm9jdXNUeXBlPT09ZT9udWxsOmV9KX0pLG89bi5hbGVydHMuZm9jdXNUeXBlO2lmKG51bGwhPT1vKXtjb25zdCB0PW4uYWxlcnRzLmV4ZWN1dGlvbkluZGljZXNbb118fFtdO3ZvaWQgMCE9PXRbMF0mJihuLmV4ZWN1dGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4uZXhlY3V0aW9ucykse3Njcm9sbEJlZ2luSW5kZXg6TWF0aC5tYXgoMCxOdW1iZXIodFswXSktTWF0aC5mbG9vcihuLmV4ZWN1dGlvbnMuZGlzcGxheUNvdW50LzIpKX0pKX1yZXR1cm4gbn0pKSxiayhWcSwodD0+bnVsbD09PXQuYWN0aXZlUnVuSWQ/dDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2V4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucykse251bUV4ZWN1dGlvbnNMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucy5udW1FeGVjdXRpb25zTG9hZGVkKSx7c3RhdGU6eUUuTE9BRElOR30pfSl9KSkpLGJrKGpxLCgodCx7bnVtRXhlY3V0aW9uczplfSk9PntpZihudWxsPT09dC5hY3RpdmVSdW5JZClyZXR1cm4gdDtjb25zdCBuPWU+dC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubnVtRXhlY3V0aW9ucyxvPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXM6bj9EYXRlLm5vdygpOnQubGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXMsZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7bnVtRXhlY3V0aW9uc0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zLm51bUV4ZWN1dGlvbnNMb2FkZWQpLHtzdGF0ZTp5RS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCl9KSxleGVjdXRpb25EaWdlc3RzTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZCkse251bUV4ZWN1dGlvbnM6ZX0pfSl9KTtyZXR1cm4gZT4wJiZudWxsPT09dC5leGVjdXRpb25zLmZvY3VzSW5kZXgmJihvLmV4ZWN1dGlvbnMuZm9jdXNJbmRleD0wKSxvfSkpLGJrKFVxLCgodCxlKT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG49Wy4uLnQuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkLmxvYWRpbmdSYW5nZXNdO3JldHVybi0xPT09YloobixlLmJlZ2luLGUuZW5kKSYmbi5wdXNoKHtiZWdpbjplLmJlZ2luLGVuZDplLmVuZH0pLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7ZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQpLHtsb2FkaW5nUmFuZ2VzOm59KX0pfSl9KSksYmsoR3EsKCh0LGUpPT57aWYobnVsbD09PXQuYWN0aXZlUnVuSWQpcmV0dXJuIHQ7Y29uc3Qgbj1bLi4udC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubG9hZGluZ1Jhbmdlc10sbz1iWihuLGUuYmVnaW4sZS5lbmQpOy0xIT09byYmbi5zcGxpY2UobywxKTtjb25zdCBpPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7ZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQpLHtudW1FeGVjdXRpb25zOmUubnVtX2RpZ2VzdHMsbG9hZGluZ1JhbmdlczpufSksZXhlY3V0aW9uRGlnZXN0czpPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzKX0pfSk7Zm9yKGxldCB0PWUuYmVnaW47dDxlLmVuZDsrK3QpaS5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNbdF09ZS5leGVjdXRpb25fZGlnZXN0c1t0LWUuYmVnaW5dO2lmKGUuZW5kPmUuYmVnaW4pe2NvbnN0IG49ZS5iZWdpbi90LmV4ZWN1dGlvbnMucGFnZVNpemU7aS5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQucGFnZUxvYWRlZFNpemVzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpLmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZC5wYWdlTG9hZGVkU2l6ZXMpLHtbbl06ZS5lbmQtZS5iZWdpbn0pfXJldHVybiBpfSkpLGJrKFdxLCh0PT57aWYobnVsbD09PXQuYWN0aXZlUnVuSWQpcmV0dXJuIHQ7bGV0IGU9dC5leGVjdXRpb25zLnNjcm9sbEJlZ2luSW5kZXg7cmV0dXJuIGU+MCYmZS0tLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7c2Nyb2xsQmVnaW5JbmRleDplfSl9KX0pKSxiayhZcSwodD0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2xldCBlPXQuZXhlY3V0aW9ucy5zY3JvbGxCZWdpbkluZGV4O3JldHVybiBlK3QuZXhlY3V0aW9ucy5kaXNwbGF5Q291bnQrMTw9dC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubnVtRXhlY3V0aW9ucyYmZSsrLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7c2Nyb2xsQmVnaW5JbmRleDplfSl9KX0pKSxiayhxcSwoKHQsZSk9PntpZihlLmluZGV4PDB8fCFOdW1iZXIuaXNJbnRlZ2VyKGUuaW5kZXgpKXRocm93IG5ldyBFcnJvcihgQXR0ZW1wdCB0byBzY3JvbGwgdG8gbmVnYXRpdmUgb3Igbm9uLWludGVnZXIgZXhlY3V0aW9uIGluZGV4ICgke2UuaW5kZXh9KWApO2NvbnN0e2Rpc3BsYXlDb3VudDpufT10LmV4ZWN1dGlvbnMse251bUV4ZWN1dGlvbnM6b309dC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQ7aWYoZS5pbmRleD5NYXRoLm1heCgwLG8tbikpdGhyb3cgbmV3IEVycm9yKGBBdHRlbXB0IHRvIHNjcm9sbCB0byBleGVjdXRpb24gaW5kZXggKCR7ZS5pbmRleH0pLCB3aGljaCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBpbmRleCAobnVtRXhlY3V0aW9ucz0ke299OyBkaXNwbGF5Q291bnQ9JHtufSlgKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtleGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMpLHtzY3JvbGxCZWdpbkluZGV4OmUuaW5kZXh9KX0pfSkpLGJrKFpxLCgodCxlKT0+e2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtleGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMpLHtmb2N1c0luZGV4OnQuZXhlY3V0aW9ucy5zY3JvbGxCZWdpbkluZGV4K2UuZGlzcGxheUluZGV4fSksY29kZUxvY2F0aW9uRm9jdXNUeXBlOmZaLkVYRUNVVElPTixzb3VyY2VDb2RlOk9iamVjdC5hc3NpZ24oe30sdC5zb3VyY2VDb2RlKX0pO3JldHVybiBuLnNvdXJjZUNvZGUuZm9jdXNMaW5lU3BlYz15WihuKSxufSkpLGJrKFhxLCgodCxlKT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtleGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMpLHtleGVjdXRpb25EYXRhOk9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zLmV4ZWN1dGlvbkRhdGEpfSl9KTtmb3IobGV0IHQ9ZS5iZWdpbjt0PGUuZW5kOysrdCluLmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGF0YVt0XT1lLmV4ZWN1dGlvbnNbdC1lLmJlZ2luXTtyZXR1cm4gbn0pKSxiayhLcSwodD0+bnVsbD09PXQuYWN0aXZlUnVuSWQ/dDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2dyYXBoRXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMpLHtudW1FeGVjdXRpb25zTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBoRXhlY3V0aW9ucy5udW1FeGVjdXRpb25zTG9hZGVkKSx7c3RhdGU6eUUuTE9BRElOR30pfSl9KSkpLGJrKEpxLCgodCx7bnVtR3JhcGhFeGVjdXRpb25zOmV9KT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG49ZT50LmdyYXBoRXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkLm51bUV4ZWN1dGlvbnMsbz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2xhc3ROb25FbXB0eVBvbGxEYXRhVGltZU1zOm4/RGF0ZS5ub3coKTp0Lmxhc3ROb25FbXB0eVBvbGxEYXRhVGltZU1zLGdyYXBoRXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMpLHtudW1FeGVjdXRpb25zTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBoRXhlY3V0aW9ucy5udW1FeGVjdXRpb25zTG9hZGVkKSx7c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSksZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZCkse251bUV4ZWN1dGlvbnM6ZX0pfSl9KTtyZXR1cm4gZT4wJiZudWxsPT09dC5ncmFwaEV4ZWN1dGlvbnMuZm9jdXNJbmRleCYmKG8uZ3JhcGhFeGVjdXRpb25zLmZvY3VzSW5kZXg9MCksb30pKSxiayhRcSwoKHQse3BhZ2VJbmRleDplfSk9PntpZihudWxsPT09dC5hY3RpdmVSdW5JZClyZXR1cm4gdDtjb25zdCBuPXQuZ3JhcGhFeGVjdXRpb25zLmdyYXBoRXhlY3V0aW9uRGF0YUxvYWRpbmdQYWdlcy5zbGljZSgpO3JldHVybi0xPT09bi5pbmRleE9mKGUpJiZuLnB1c2goZSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtncmFwaEV4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zKSx7Z3JhcGhFeGVjdXRpb25EYXRhTG9hZGluZ1BhZ2VzOm59KX0pfSkpLGJrKCRxLCgodCxlKT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0e3BhZ2VTaXplOm59PXQuZ3JhcGhFeGVjdXRpb25zLG89dC5ncmFwaEV4ZWN1dGlvbnMuZ3JhcGhFeGVjdXRpb25EYXRhTG9hZGluZ1BhZ2VzLnNsaWNlKCksaT1PYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zLmdyYXBoRXhlY3V0aW9uRGF0YVBhZ2VMb2FkZWRTaXplcyksYT1PYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zLmdyYXBoRXhlY3V0aW9uRGF0YSk7Zm9yKGxldCB0PWUuYmVnaW47dDxlLmVuZDsrK3Qpe2NvbnN0IHI9TWF0aC5mbG9vcih0L24pOy0xIT09by5pbmRleE9mKHIpJiZvLnNwbGljZShvLmluZGV4T2YociksMSksdm9pZCAwPT09aVtyXSYmKGlbcl09MCksdm9pZCAwPT09YVt0XSYmaVtyXSsrLGFbdF09ZS5ncmFwaF9leGVjdXRpb25zW3QtZS5iZWdpbl19cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Z3JhcGhFeGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBoRXhlY3V0aW9ucykse2dyYXBoRXhlY3V0aW9uRGF0YUxvYWRpbmdQYWdlczpvLGdyYXBoRXhlY3V0aW9uRGF0YVBhZ2VMb2FkZWRTaXplczppLGdyYXBoRXhlY3V0aW9uRGF0YTphfSl9KX0pKSxiayh0WiwoKHQsZSk9PntpZihlLmluZGV4PDB8fCFOdW1iZXIuaXNJbnRlZ2VyKGUuaW5kZXgpKXRocm93IG5ldyBFcnJvcihgQXR0ZW1wdCB0byBzY3JvbGwgdG8gbmVnYXRpdmUgb3Igbm9uLWludGVnZXIgZ3JhcGgtZXhlY3V0aW9uIGluZGV4ICgke2UuaW5kZXh9KWApO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2dyYXBoRXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMpLHtzY3JvbGxCZWdpbkluZGV4OmUuaW5kZXh9KX0pfSkpLGJrKGVaLCgodCxlKT0+dloodCxlLmdyYXBoX2lkLGUub3BfbmFtZSxlLmluZGV4KSkpLGJrKG5aLCgodCxlKT0+dloodCxlLmdyYXBoX2lkLGUub3BfbmFtZSkpKSxiayhvWiwoKHQsZSk9Pntjb25zdHtncmFwaF9pZDpuLG9wX25hbWU6b309ZSxpPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Z3JhcGhzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBocykse2xvYWRpbmdPcHM6T2JqZWN0LmFzc2lnbih7fSx0LmdyYXBocy5sb2FkaW5nT3BzKX0pfSk7cmV0dXJuIHZvaWQgMD09PWkuZ3JhcGhzLmxvYWRpbmdPcHNbbl0mJihpLmdyYXBocy5sb2FkaW5nT3BzW25dPW5ldyBNYXApLGkuZ3JhcGhzLmxvYWRpbmdPcHNbbl0uaGFzKG8pfHxpLmdyYXBocy5sb2FkaW5nT3BzW25dLnNldChvLHlFLkxPQURJTkcpLGl9KSksYmsoaVosKCh0LGUpPT57Y29uc3R7Z3JhcGhPcEluZm9SZXNwb25zZTpufT1lLHtncmFwaF9pZHM6b309bixpPW9bby5sZW5ndGgtMV0sYT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2dyYXBoczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaHMpLHtvcHM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhzLm9wcykse1tpXTpuZXcgTWFwKHQuZ3JhcGhzLm9wc1tpXSl9KSxsb2FkaW5nT3BzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBocy5sb2FkaW5nT3BzKSx7W2ldOm5ldyBNYXAodC5ncmFwaHMubG9hZGluZ09wc1tpXSl9KX0pfSk7Zm9yKGNvbnN0IHQgb2Ygbi5pbnB1dHMpdC5kYXRhJiZhLmdyYXBocy5vcHNbaV0uc2V0KHQub3BfbmFtZSx0LmRhdGEpO2ZvcihsZXQgdD0wO3Q8bi5jb25zdW1lcnMubGVuZ3RoOysrdClmb3IoY29uc3QgZSBvZiBuLmNvbnN1bWVyc1t0XSllLmRhdGEmJmEuZ3JhcGhzLm9wc1tpXS5zZXQoZS5vcF9uYW1lLGUuZGF0YSk7cmV0dXJuIGEuZ3JhcGhzLm9wc1tpXS5zZXQobi5vcF9uYW1lLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSx7aW5wdXRzOm4uaW5wdXRzLm1hcCgodD0+KHtvcF9uYW1lOnQub3BfbmFtZSxvdXRwdXRfc2xvdDp0Lm91dHB1dF9zbG90fSkpKSxjb25zdW1lcnM6bi5jb25zdW1lcnMubWFwKCh0PT50Lm1hcCgodD0+KHtvcF9uYW1lOnQub3BfbmFtZSxpbnB1dF9zbG90OnQuaW5wdXRfc2xvdH0pKSkpKX0pKSxhLmdyYXBocy5sb2FkaW5nT3BzW2ldLnNldChuLm9wX25hbWUseUUuTE9BREVEKSxhfSkpLGJrKGFaLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NvdXJjZUNvZGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc291cmNlQ29kZSkse3NvdXJjZUZpbGVMaXN0TG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUuc291cmNlRmlsZUxpc3RMb2FkZWQpLHtzdGF0ZTp5RS5MT0FESU5HfSl9KX0pKSksYmsoclosKCh0LGUpPT57dmFyIG47Y29uc3Qgbz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NvdXJjZUNvZGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc291cmNlQ29kZSkse3NvdXJjZUZpbGVMaXN0TG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUuc291cmNlRmlsZUxpc3RMb2FkZWQpLHtzdGF0ZTp5RS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCl9KSxzb3VyY2VGaWxlTGlzdDplLnNvdXJjZUZpbGVzLGZpbGVDb250ZW50czp0LnNvdXJjZUNvZGUuZmlsZUNvbnRlbnRzLnNsaWNlKCl9KX0pLGk9ZS5zb3VyY2VGaWxlcy5sZW5ndGgse2ZpbGVDb250ZW50czphfT1vLnNvdXJjZUNvZGU7Zm9yKGxldCBlPTA7ZTxpOysrZSlhW2VdPW51bGwhPT0obj10LnNvdXJjZUNvZGUuZmlsZUNvbnRlbnRzW2VdKSYmdm9pZCAwIT09bj9uOntsb2FkU3RhdGU6eUUuTk9UX0xPQURFRCxsaW5lczpudWxsfTtyZXR1cm4gb30pKSxiayhzWiwoKHQsZSk9Pntjb25zdCBuPWdaKHQpLG89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzb3VyY2VDb2RlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUpLHtmb2N1c0xpbmVTcGVjOmUuc3RhY2tGcmFtZX0pfSk7cmV0dXJuIG51bGwhPT1uJiYoby5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZT0oZnVuY3Rpb24gaSh0LGUpe2xldCBuPS0xLG89LTE7aWYodC5mb3JFYWNoKCgoe2ZpbGVfcGF0aDp0LGxpbmVubzppfSxhKT0+e3Q9PT1lLmZpbGVfcGF0aCYmKG89YSxpPT09ZS5saW5lbm8mJihuPWEpKX0pKSwtMT09PW4pdGhyb3cgbmV3IEVycm9yKGBTdGFjayBmcmFtZSAke0pTT04uc3RyaW5naWZ5KGUpfSBpcyBub3QgZm91bmQuYCk7cmV0dXJuIG49PT1vfSkobixlLnN0YWNrRnJhbWUpKSxvfSkpLGJrKGxaLCgodCxlKT0+e2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzb3VyY2VDb2RlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUpLHtmaWxlQ29udGVudHM6dC5zb3VyY2VDb2RlLmZpbGVDb250ZW50cy5zbGljZSgpfSl9KSxvPWhaKG4uc291cmNlQ29kZS5zb3VyY2VGaWxlTGlzdCxlKTtpZighKG8+PTApKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgdGhlIGZvbGxvd2luZyBmaWxlIGluIGZpbGUgbGlzdDogaG9zdF9uYW1lPSIke2UuaG9zdF9uYW1lfSIsIGZpbGVfcGF0aD0iJHtlLmZpbGVfcGF0aH0iYCk7cmV0dXJuIG4uc291cmNlQ29kZS5maWxlQ29udGVudHMuc3BsaWNlKG8sMSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbi5zb3VyY2VDb2RlLmZpbGVDb250ZW50c1tvXSkse2xvYWRTdGF0ZTp5RS5MT0FESU5HfSkpLG59KSksYmsoY1osKCh0LGUpPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NvdXJjZUNvZGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc291cmNlQ29kZSkse2ZpbGVDb250ZW50czp0LnNvdXJjZUNvZGUuZmlsZUNvbnRlbnRzLnNsaWNlKCl9KX0pLG89aFoobi5zb3VyY2VDb2RlLnNvdXJjZUZpbGVMaXN0LGUpO2lmKCEobz49MCkpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCB0aGUgZm9sbG93aW5nIGZpbGUgaW4gZmlsZSBsaXN0OiBob3N0X25hbWU9IiR7ZS5ob3N0X25hbWV9IiwgZmlsZV9wYXRoPSIke2UuZmlsZV9wYXRofSJgKTtyZXR1cm4gbi5zb3VyY2VDb2RlLmZpbGVDb250ZW50cy5zcGxpY2UobywxLHtsb2FkU3RhdGU6eUUuTE9BREVELGxpbmVzOmUubGluZXN9KSxufSkpLGJrKGRaLCgodCxlKT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzdGFja0ZyYW1lczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zdGFja0ZyYW1lcyksZS5zdGFja0ZyYW1lcyksc291cmNlQ29kZTpPYmplY3QuYXNzaWduKHt9LHQuc291cmNlQ29kZSl9KTtyZXR1cm4gbi5zb3VyY2VDb2RlLmZvY3VzTGluZVNwZWM9eVoobiksbn0pKSk7ZnVuY3Rpb24gdloodCxlLG4sbyl7Y29uc3QgaT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2dyYXBoczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaHMpLHtmb2N1c2VkT3A6e2dyYXBoSWQ6ZSxvcE5hbWU6bn19KSxjb2RlTG9jYXRpb25Gb2N1c1R5cGU6ZlouR1JBUEhfT1BfQ1JFQVRJT04sc291cmNlQ29kZTpPYmplY3QuYXNzaWduKHt9LHQuc291cmNlQ29kZSl9KTtyZXR1cm4gaS5zb3VyY2VDb2RlLmZvY3VzTGluZVNwZWM9eVooaSksdm9pZCAwIT09byYmKGkuZ3JhcGhFeGVjdXRpb25zPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBoRXhlY3V0aW9ucykse2ZvY3VzSW5kZXg6b30pKSxpfWZ1bmN0aW9uIHhaKHQsZSl7cmV0dXJuIF9aKHQsZSl9Y29uc3QgT1o9S3cocFopLFBaPVp3KE9aLCh0PT50LnJ1bnMpKSx3Wj1adyhPWiwodD0+dC5ydW5zTG9hZGVkKSksa1o9WncoT1osKHQ9PnQuYWN0aXZlUnVuSWQpKSxTWj1adyhPWiwodD0+dC5sYXN0RGF0YVBvbGxPbnNldFRpbWVNcy10Lmxhc3ROb25FbXB0eVBvbGxEYXRhVGltZU1zKSksRFo9WncoT1osKHQ9PnQuYWxlcnRzKSksRVo9WncoRFosKHQ9PnQuYWxlcnRzTG9hZGVkKSksUlo9WncoRFosKHQ9PnQubnVtQWxlcnRzKSksQVo9WncoRFosKHQ9PnQuZm9jdXNUeXBlKSksVFo9WncoRFosKHQ9Pm51bGw9PT10LmZvY3VzVHlwZT8wOnQuYWxlcnRzQnJlYWtkb3duW3QuZm9jdXNUeXBlXXx8MCkpLE5aPVp3KERaLCh0PT5udWxsPT09dC5mb2N1c1R5cGV8fHZvaWQgMD09PXQuYWxlcnRzW3QuZm9jdXNUeXBlXT9udWxsOnQuYWxlcnRzW3QuZm9jdXNUeXBlXSkpLHpaPVp3KERaLCh0PT50LmFsZXJ0c0JyZWFrZG93bikpLElaPVp3KE9aLCh0PT50LmV4ZWN1dGlvbnMpKSxIWj1adyhJWiwodD0+dC5udW1FeGVjdXRpb25zTG9hZGVkKSksRlo9WncoSVosKHQ9PnQuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZCkpLExaPVp3KElaLCh0PT50LmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubnVtRXhlY3V0aW9ucykpLEJaPVp3KElaLCh0PT50LnNjcm9sbEJlZ2luSW5kZXgpKSxWWj1adyhJWiwodD0+dC5wYWdlU2l6ZSkpLGpaPVp3KElaLCh0PT50LmRpc3BsYXlDb3VudCkpLFVaPVp3KElaLCh0PT57Y29uc3QgZT1bXTtmb3IobGV0IG49dC5zY3JvbGxCZWdpbkluZGV4O248dC5zY3JvbGxCZWdpbkluZGV4K3QuZGlzcGxheUNvdW50OysrbillLnB1c2gobiBpbiB0LmV4ZWN1dGlvbkRpZ2VzdHM/dC5leGVjdXRpb25EaWdlc3RzW25dOm51bGwpO3JldHVybiBlfSkpLEdaPVp3KE9aLCh0PT50LmdyYXBoRXhlY3V0aW9ucykpLFdaPVp3KEdaLCh0PT50Lm51bUV4ZWN1dGlvbnNMb2FkZWQpKSxZWj1adyhPWiwodD0+dC5ncmFwaEV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZC5udW1FeGVjdXRpb25zKSkscVo9WncoR1osKHQ9PnQuc2Nyb2xsQmVnaW5JbmRleCkpLFpaPVp3KEdaLCh0PT50LmRpc3BsYXlDb3VudCkpLFhaPVp3KEdaLCh0PT50LnBhZ2VTaXplKSksS1o9WncoR1osKHQ9PnQuZ3JhcGhFeGVjdXRpb25EYXRhTG9hZGluZ1BhZ2VzKSksSlo9WncoR1osKHQ9PnQuZ3JhcGhFeGVjdXRpb25EYXRhUGFnZUxvYWRlZFNpemVzKSksUVo9WncoR1osKHQ9PnQuZ3JhcGhFeGVjdXRpb25EYXRhKSksJFo9WncoR1osKHQ9PnQuZm9jdXNJbmRleCkpLHRYPVp3KE9aLCh0PT50LmdyYXBocykpLGVYPVp3KHRYLCh0PT57Y29uc3R7Zm9jdXNlZE9wOmUsb3BzOm59PXQ7cmV0dXJuIG51bGw9PT1lfHx2b2lkIDA9PT1uW2UuZ3JhcGhJZF0/bnVsbDpuW2UuZ3JhcGhJZF0uZ2V0KGUub3BOYW1lKXx8bnVsbH0pKSxuWD1adyh0WCwodD0+e2NvbnN0e2ZvY3VzZWRPcDplLG9wczpufT10O2lmKG51bGwhPT1lJiZ2b2lkIDAhPT1uW2UuZ3JhcGhJZF0mJm5bZS5ncmFwaElkXS5oYXMoZS5vcE5hbWUpKXtjb25zdCB0PW5bZS5ncmFwaElkXSx7aW5wdXRzOm99PXQuZ2V0KGUub3BOYW1lKTtyZXR1cm4gby5tYXAoKGU9Pntjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sZSk7cmV0dXJuIHQuaGFzKGUub3BfbmFtZSkmJihuLmRhdGE9dC5nZXQoZS5vcF9uYW1lKSksbn0pKX1yZXR1cm4gbnVsbH0pKSxvWD1adygkWixRWixuWCwoKHQsZSxuKT0+e2lmKG51bGw9PT10fHxudWxsPT09bilyZXR1cm4gbnVsbDtjb25zdCBvPW4ubWFwKCh0PT4hMSkpLGk9W107aWYoMD09PW4ubGVuZ3RoKXJldHVybiBpO2NvbnN0IGE9ZVt0XS5ncmFwaF9pZCxyPU1hdGgubWF4KDAsdC0yMDApO2ZvcihsZXQgcz10LTE7cz49cjstLXMpaWYodm9pZCAwIT09ZVtzXSlmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoJiYob1t0XXx8ZVtzXS5ncmFwaF9pZCE9PWF8fGVbc10ub3BfbmFtZSE9PW5bdF0ub3BfbmFtZXx8ZVtzXS5vdXRwdXRfc2xvdCE9PW5bdF0ub3V0cHV0X3Nsb3R8fChpLnB1c2gocyksb1t0XT0hMCxpLmxlbmd0aCE9PW4ubGVuZ3RoKSk7Kyt0KTtyZXR1cm4gaX0pKSxpWD1adyh0WCwodD0+e2NvbnN0e2ZvY3VzZWRPcDplLG9wczpufT10O2lmKG51bGwhPT1lJiZ2b2lkIDAhPT1uW2UuZ3JhcGhJZF0mJm5bZS5ncmFwaElkXS5oYXMoZS5vcE5hbWUpKXtjb25zdCB0PW5bZS5ncmFwaElkXSx7Y29uc3VtZXJzOm99PXQuZ2V0KGUub3BOYW1lKTtyZXR1cm4gby5tYXAoKGU9PmUubWFwKChlPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LGUpO3JldHVybiB0LmhhcyhlLm9wX25hbWUpJiYobi5kYXRhPXQuZ2V0KGUub3BfbmFtZSkpLG59KSkpKX1yZXR1cm4gbnVsbH0pKSxhWD1adyhPWiwodD0+e2NvbnN0IGU9dC5leGVjdXRpb25zLnNjcm9sbEJlZ2luSW5kZXgsbj10LmV4ZWN1dGlvbnMuc2Nyb2xsQmVnaW5JbmRleCt0LmV4ZWN1dGlvbnMuZGlzcGxheUNvdW50LG89bmV3IEFycmF5KG4tZSkuZmlsbChudWxsKSxpPXQuYWxlcnRzLmZvY3VzVHlwZTtpZihudWxsPT09aSlyZXR1cm4gbztjb25zdCBhPXQuYWxlcnRzLmV4ZWN1dGlvbkluZGljZXNbaV07aWYodm9pZCAwPT09YSlyZXR1cm4gbztmb3IobGV0IGk9ZTtpPG47KytpKWEuaW5jbHVkZXMoaSkmJihvW2ktZV09dC5hbGVydHMuZm9jdXNUeXBlKTtyZXR1cm4gb30pKSxyWD1adyhPWiwodD0+dC5leGVjdXRpb25zKSksc1g9WncoclgsKHQ9PnQuZm9jdXNJbmRleCkpLGxYPVp3KHJYLCh0PT57aWYobnVsbD09PXQuZm9jdXNJbmRleClyZXR1cm4gbnVsbDtjb25zdHtmb2N1c0luZGV4OmUsc2Nyb2xsQmVnaW5JbmRleDpuLGRpc3BsYXlDb3VudDpvfT10O3JldHVybiBlPG58fGU+PW4rbz9udWxsOmUtbn0pKSxjWD1adyhyWCwodD0+dC5leGVjdXRpb25EYXRhKSksZFg9WncoT1osKHQ9PnQuZ3JhcGhzLmxvYWRpbmdPcHMpKSxwWD1adyhPWiwodD0+dC5zdGFja0ZyYW1lcykpLG1YPVp3KHJYLCh0PT57Y29uc3R7Zm9jdXNJbmRleDplLGV4ZWN1dGlvbkRhdGE6bn09dDtyZXR1cm4gbnVsbD09PWV8fHZvaWQgMD09PW5bZV0/bnVsbDpuW2VdfSkpLHVYPVp3KE9aLHNYLG1YLGVYLCgodCxlLG4sbyk9Pntjb25zdHtjb2RlTG9jYXRpb25Gb2N1c1R5cGU6aX09dDtyZXR1cm4gbnVsbD09PWk/bnVsbDppPT09ZlouRVhFQ1VUSU9OP251bGw9PT1lfHxudWxsPT09bj9udWxsOntjb2RlTG9jYXRpb25UeXBlOmZaLkVYRUNVVElPTixvcFR5cGU6bi5vcF90eXBlLGV4ZWN1dGlvbkluZGV4OmV9Om51bGw9PT1vP251bGw6e2NvZGVMb2NhdGlvblR5cGU6ZlouR1JBUEhfT1BfQ1JFQVRJT04sb3BUeXBlOm8ub3BfdHlwZSxvcE5hbWU6by5vcF9uYW1lfX0pKSxmWD1adyhPWixnWiksZ1g9WncoT1osKHQ9PnQuc291cmNlQ29kZSkpLGhYPVp3KGdYLCh0PT50LnNvdXJjZUZpbGVMaXN0TG9hZGVkKSk7WncoZ1gsKHQ9PnQuc291cmNlRmlsZUxpc3QpKTtjb25zdCBiWD1adyhnWCwodD0+e2NvbnN0e3NvdXJjZUZpbGVMaXN0OmUsZm9jdXNMaW5lU3BlYzpufT10O3JldHVybiBudWxsPT09bj8tMTpoWihlLG4pfSkpLHlYPVp3KGdYLGJYLCgodCxlKT0+LTE9PT1lP251bGw6dC5maWxlQ29udGVudHNbZV18fG51bGwpKSxfWD1adyhPWiwodD0+dC5zb3VyY2VDb2RlLmZvY3VzTGluZVNwZWMpKSxDWD1adyhPWiwodD0+dC5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSkpLE1YPWZ1bmN0aW9uKHQpe3JldHVyblt0XX07ZnVuY3Rpb24gdlgodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDcpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtjb25zdCBuPWhpKHQpLiRpbXBsaWNpdDtyZXR1cm4gWW0oKS5vblRvZ2dsZUZvY3VzVHlwZS5lbWl0KG4udHlwZSl9KSksUm0oMSwiZGl2Iiw4KSxrdSgyKSxBbSgpLFJtKDMsImRpdiIsOSksa3UoNCksQW0oKSxUbSg1LCJkaXYiKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPVltKCk7RG0oIm5nQ2xhc3MiLE1oKDQsTVgsdC50eXBlPT09bi5mb2N1c1R5cGU/ImZvY3VzIjoiIikpLHJjKDIpLFN1KHQuZGlzcGxheU5hbWUpLHJjKDIpLEV1KCIgIix0LmRpc3BsYXlTeW1ib2wsIjogIix0LmNvdW50LCIgIil9fWNsYXNzIHhYe2NvbnN0cnVjdG9yKCl7dGhpcy5udW1BbGVydHM9MCx0aGlzLmFsZXJ0c0JyZWFrZG93bj1bXSx0aGlzLmZvY3VzVHlwZT1udWxsLHRoaXMub25Ub2dnbGVGb2N1c1R5cGU9bmV3IExofX14WC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eFgpfSx4WC7JtWNtcD10byh7dHlwZTp4WCxzZWxlY3RvcnM6W1siYWxlcnRzLWNvbXBvbmVudCJdXSxpbnB1dHM6e251bUFsZXJ0czoibnVtQWxlcnRzIixhbGVydHNCcmVha2Rvd246ImFsZXJ0c0JyZWFrZG93biIsZm9jdXNUeXBlOiJmb2N1c1R5cGUifSxvdXRwdXRzOntvblRvZ2dsZUZvY3VzVHlwZToib25Ub2dnbGVGb2N1c1R5cGUifSxkZWNsczoxMCx2YXJzOjUsY29uc3RzOltbMSwiYWxlcnRzLWNvbnRhaW5lciJdLFsxLCJkZWJ1Z2dpbmctdGl0bGUiXSxbMSwibnVtLWFsZXJ0cy1jb250YWluZXIiXSxbMSwibnVtLWFsZXJ0cy1sYWJlbCJdLFsxLCJudW0tYWxlcnRzLXZhbHVlIiwzLCJuZ0NsYXNzIl0sWzEsImFsZXJ0cy1icmVha2Rvd24tY29udGFpbmVyIl0sWyJjbGFzcyIsImFsZXJ0cy1icmVha2Rvd24tdHlwZSIsMywibmdDbGFzcyIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiYWxlcnRzLWJyZWFrZG93bi10eXBlIiwzLCJuZ0NsYXNzIiwiY2xpY2siXSxbMSwiYWxlcnQtdHlwZS1uYW1lIl0sWzEsImFsZXJ0LXR5cGUtY291bnQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksUm0oMSwiZGl2IiwxKSxrdSgyLCJEZWJ1Z2dpbmciKSxBbSgpLFJtKDMsImRpdiIsMiksUm0oNCwiZGl2IiwzKSxrdSg1LCJBbGVydHMiKSxBbSgpLFJtKDYsImRpdiIsNCksa3UoNyksQW0oKSxBbSgpLFJtKDgsImRpdiIsNSksUXAoOSx2WCw2LDYsImRpdiIsNiksQW0oKSxBbSgpKSwyJmUmJihyYyg2KSxEbSgibmdDbGFzcyIsTWgoMyxNWCxuLm51bUFsZXJ0cz4wPyJub24temVybyI6IiIpKSxyYygxKSxEdSgiICIsbi5udW1BbGVydHMsIiAiKSxyYygyKSxEbSgibmdGb3JPZiIsbi5hbGVydHNCcmVha2Rvd24pKX0sZGlyZWN0aXZlczpbYU0sbE1dLHN0eWxlczpbIi5hbGVydHMtYnJlYWtkb3duLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDEwcHggMTBweCAxMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5hbGVydHMtYnJlYWtkb3duLXR5cGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDEwcHggMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiA2cHggMCA2cHggNTBweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmFsZXJ0cy1icmVha2Rvd24tdHlwZS5mb2N1c1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZWUwO1xufVxuXG4uYWxlcnRzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LWZhbWlseTogJ1JvYm90bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG59XG5cbi5hbGVydC10eXBlLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTUyNTkyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDNweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMjBweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmFsZXJ0LXR5cGUtbmFtZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDNweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRlYnVnZ2luZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5udW0tYWxlcnRzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogMTBweCAxMHB4IDEwcHggMzBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubnVtLWFsZXJ0cy1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLm51bS1hbGVydHMtdmFsdWVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyNHB4O1xufVxuXG4ubnVtLWFsZXJ0cy12YWx1ZS5ub24temVyb1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiNzgwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn0iXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeFgsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiYWxlcnRzLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vYWxlcnRzX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2FsZXJ0c19jb21wb25lbnQuY3NzIl19XX1dLG51bGwse251bUFsZXJ0czpbe3R5cGU6eHl9XSxhbGVydHNCcmVha2Rvd246W3t0eXBlOnh5fV0sZm9jdXNUeXBlOlt7dHlwZTp4eX1dLG9uVG9nZ2xlRm9jdXNUeXBlOlt7dHlwZTpPeX1dfSk7Y29uc3QgT1g9e1t1Wi5GVU5DVElPTl9SRUNPTVBJTEVfQUxFUlRdOntkaXNwbGF5TmFtZToiRnVuY3Rpb24gcmVjb21waWxlcyIsZGlzcGxheVN5bWJvbDoiQyJ9LFt1Wi5JTkZfTkFOX0FMRVJUXTp7ZGlzcGxheU5hbWU6Ik5hTi/iiJ4iLGRpc3BsYXlTeW1ib2w6IuKIniJ9LFt1Wi5URU5TT1JfU0hBUEVfQUxFUlRdOntkaXNwbGF5TmFtZToiVGVuc29yIHNoYXBlIixkaXNwbGF5U3ltYm9sOiLilqAifX07Y2xhc3MgUFh7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMubnVtQWxlcnRzJD10aGlzLnN0b3JlLnBpcGUoRncoUlopKSx0aGlzLmFsZXJ0c0JyZWFrZG93biQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KHpaLCh0PT57Y29uc3QgZT1PYmplY3Qua2V5cyh0KTtyZXR1cm4gZS5zb3J0KCksZS5tYXAoKGU9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7dHlwZTplfSxPWFtlXSkse2NvdW50OnRbZV19KSkpfSkpKSksdGhpcy5mb2N1c1R5cGUkPXRoaXMuc3RvcmUucGlwZShGdyhBWikpfW9uVG9nZ2xlRm9jdXNUeXBlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goQnEoe2FsZXJ0VHlwZTp0fSkpfX1QWC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UFgpKFNtKEl3KSl9LFBYLsm1Y21wPXRvKHt0eXBlOlBYLHNlbGVjdG9yczpbWyJ0Zi1kZWJ1Z2dlci12Mi1hbGVydHMiXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywibnVtQWxlcnRzIiwiYWxlcnRzQnJlYWtkb3duIiwiZm9jdXNUeXBlIiwib25Ub2dnbGVGb2N1c1R5cGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImFsZXJ0cy1jb21wb25lbnQiLDApLFZtKCJvblRvZ2dsZUZvY3VzVHlwZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25Ub2dnbGVGb2N1c1R5cGUoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgibnVtQWxlcnRzIixUaCgxLDMsbi5udW1BbGVydHMkKSkoImFsZXJ0c0JyZWFrZG93biIsVGgoMiw1LG4uYWxlcnRzQnJlYWtkb3duJCkpKCJmb2N1c1R5cGUiLFRoKDMsNyxuLmZvY3VzVHlwZSQpKX0sZGlyZWN0aXZlczpbeFhdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChQWCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Zi1kZWJ1Z2dlci12Mi1hbGVydHMiLHRlbXBsYXRlOidcbiAgICA8YWxlcnRzLWNvbXBvbmVudFxuICAgICAgW251bUFsZXJ0c109Im51bUFsZXJ0cyQgfCBhc3luYyJcbiAgICAgIFthbGVydHNCcmVha2Rvd25dPSJhbGVydHNCcmVha2Rvd24kIHwgYXN5bmMiXG4gICAgICBbZm9jdXNUeXBlXT0iZm9jdXNUeXBlJCB8IGFzeW5jIlxuICAgICAgKG9uVG9nZ2xlRm9jdXNUeXBlKT0ib25Ub2dnbGVGb2N1c1R5cGUoJGV2ZW50KSJcbiAgICA+XG4gICAgPC9hbGVydHMtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y29uc3Qgd1g9WyJzbGlkZXJXcmFwcGVyIl0sa1g9Tnooe3Bhc3NpdmU6ITF9KSxTWD17cHJvdmlkZTpJVix1c2VFeGlzdGluZzpxZSgoKCk9PlJYKSksbXVsdGk6ITB9O2NsYXNzIERYe31jb25zdCBFWD0kSShKSShLSShjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSksImFjY2VudCIpKTtjbGFzcyBSWCBleHRlbmRzIEVYe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyl7c3VwZXIodCksdGhpcy5fZm9jdXNNb25pdG9yPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9bix0aGlzLl9kaXI9byx0aGlzLl9uZ1pvbmU9YSx0aGlzLl9hbmltYXRpb25Nb2RlPXMsdGhpcy5faW52ZXJ0PSExLHRoaXMuX21heD0xMDAsdGhpcy5fbWluPTAsdGhpcy5fc3RlcD0xLHRoaXMuX3RodW1iTGFiZWw9ITEsdGhpcy5fdGlja0ludGVydmFsPTAsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl92ZXJ0aWNhbD0hMSx0aGlzLmNoYW5nZT1uZXcgTGgsdGhpcy5pbnB1dD1uZXcgTGgsdGhpcy52YWx1ZUNoYW5nZT1uZXcgTGgsdGhpcy5vblRvdWNoZWQ9KCk9Pnt9LHRoaXMuX3BlcmNlbnQ9MCx0aGlzLl9pc1NsaWRpbmc9bnVsbCx0aGlzLl9pc0FjdGl2ZT0hMSx0aGlzLl90aWNrSW50ZXJ2YWxQZXJjZW50PTAsdGhpcy5fc2xpZGVyRGltZW5zaW9ucz1udWxsLHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm49KCk9Pnt9LHRoaXMuX2RpckNoYW5nZVN1YnNjcmlwdGlvbj1tLkVNUFRZLHRoaXMuX3BvaW50ZXJEb3duPXQ9Pnt0aGlzLmRpc2FibGVkfHx0aGlzLl9pc1NsaWRpbmd8fCFBWCh0KSYmMCE9PXQuYnV0dG9ufHx0aGlzLl9uZ1pvbmUucnVuKCgoKT0+e3RoaXMuX3RvdWNoSWQ9QVgodCk/KGZ1bmN0aW9uIGUodCxuKXtmb3IobGV0IGU9MDtlPHQudG91Y2hlcy5sZW5ndGg7ZSsrKXtjb25zdCBvPXQudG91Y2hlc1tlXS50YXJnZXQ7aWYobj09PW98fG4uY29udGFpbnMobykpcmV0dXJuIHQudG91Y2hlc1tlXS5pZGVudGlmaWVyfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0LHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk6dm9pZCAwO2NvbnN0IG49VFgodCx0aGlzLl90b3VjaElkKTtpZihuKXtjb25zdCBlPXRoaXMudmFsdWU7dGhpcy5faXNTbGlkaW5nPSJwb2ludGVyIix0aGlzLl9sYXN0UG9pbnRlckV2ZW50PXQsdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzSG9zdEVsZW1lbnQoKSx0aGlzLl9vbk1vdXNlZW50ZXIoKSx0aGlzLl9iaW5kR2xvYmFsRXZlbnRzKHQpLHRoaXMuX2ZvY3VzSG9zdEVsZW1lbnQoKSx0aGlzLl91cGRhdGVWYWx1ZUZyb21Qb3NpdGlvbihuKSx0aGlzLl92YWx1ZU9uU2xpZGVTdGFydD1lLGUhPXRoaXMudmFsdWUmJnRoaXMuX2VtaXRJbnB1dEV2ZW50KCl9fSkpfSx0aGlzLl9wb2ludGVyTW92ZT10PT57aWYoInBvaW50ZXIiPT09dGhpcy5faXNTbGlkaW5nKXtjb25zdCBlPVRYKHQsdGhpcy5fdG91Y2hJZCk7aWYoZSl7dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IG49dGhpcy52YWx1ZTt0aGlzLl9sYXN0UG9pbnRlckV2ZW50PXQsdGhpcy5fdXBkYXRlVmFsdWVGcm9tUG9zaXRpb24oZSksbiE9dGhpcy52YWx1ZSYmdGhpcy5fZW1pdElucHV0RXZlbnQoKX19fSx0aGlzLl9wb2ludGVyVXA9dD0+eyJwb2ludGVyIj09PXRoaXMuX2lzU2xpZGluZyYmKEFYKHQpJiYibnVtYmVyIj09dHlwZW9mIHRoaXMuX3RvdWNoSWQmJiFOWCh0LmNoYW5nZWRUb3VjaGVzLHRoaXMuX3RvdWNoSWQpfHwodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX3JlbW92ZUdsb2JhbEV2ZW50cygpLHRoaXMuX2lzU2xpZGluZz1udWxsLHRoaXMuX3RvdWNoSWQ9dm9pZCAwLHRoaXMuX3ZhbHVlT25TbGlkZVN0YXJ0PT10aGlzLnZhbHVlfHx0aGlzLmRpc2FibGVkfHx0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKSx0aGlzLl92YWx1ZU9uU2xpZGVTdGFydD10aGlzLl9sYXN0UG9pbnRlckV2ZW50PW51bGwpKX0sdGhpcy5fd2luZG93Qmx1cj0oKT0+e3RoaXMuX2xhc3RQb2ludGVyRXZlbnQmJnRoaXMuX3BvaW50ZXJVcCh0aGlzLl9sYXN0UG9pbnRlckV2ZW50KX0sdGhpcy5fZG9jdW1lbnQ9cix0aGlzLnRhYkluZGV4PXBhcnNlSW50KGkpfHwwLGEucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57Y29uc3QgZT10Lm5hdGl2ZUVsZW1lbnQ7ZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX3BvaW50ZXJEb3duLGtYKSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX3BvaW50ZXJEb3duLGtYKX0pKX1nZXQgaW52ZXJ0KCl7cmV0dXJuIHRoaXMuX2ludmVydH1zZXQgaW52ZXJ0KHQpe3RoaXMuX2ludmVydD15eih0KX1nZXQgbWF4KCl7cmV0dXJuIHRoaXMuX21heH1zZXQgbWF4KHQpe3RoaXMuX21heD1feih0LHRoaXMuX21heCksdGhpcy5fcGVyY2VudD10aGlzLl9jYWxjdWxhdGVQZXJjZW50YWdlKHRoaXMuX3ZhbHVlKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1nZXQgbWluKCl7cmV0dXJuIHRoaXMuX21pbn1zZXQgbWluKHQpe3RoaXMuX21pbj1feih0LHRoaXMuX21pbiksdGhpcy5fcGVyY2VudD10aGlzLl9jYWxjdWxhdGVQZXJjZW50YWdlKHRoaXMuX3ZhbHVlKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1nZXQgc3RlcCgpe3JldHVybiB0aGlzLl9zdGVwfXNldCBzdGVwKHQpe3RoaXMuX3N0ZXA9X3oodCx0aGlzLl9zdGVwKSx0aGlzLl9zdGVwJTEhPTAmJih0aGlzLl9yb3VuZFRvRGVjaW1hbD10aGlzLl9zdGVwLnRvU3RyaW5nKCkuc3BsaXQoIi4iKS5wb3AoKS5sZW5ndGgpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfWdldCB0aHVtYkxhYmVsKCl7cmV0dXJuIHRoaXMuX3RodW1iTGFiZWx9c2V0IHRodW1iTGFiZWwodCl7dGhpcy5fdGh1bWJMYWJlbD15eih0KX1nZXQgdGlja0ludGVydmFsKCl7cmV0dXJuIHRoaXMuX3RpY2tJbnRlcnZhbH1zZXQgdGlja0ludGVydmFsKHQpe3RoaXMuX3RpY2tJbnRlcnZhbD0iYXV0byI9PT10PyJhdXRvIjoibnVtYmVyIj09dHlwZW9mIHR8fCJzdHJpbmciPT10eXBlb2YgdD9feih0LHRoaXMuX3RpY2tJbnRlcnZhbCk6MH1nZXQgdmFsdWUoKXtyZXR1cm4gbnVsbD09PXRoaXMuX3ZhbHVlJiYodGhpcy52YWx1ZT10aGlzLl9taW4pLHRoaXMuX3ZhbHVlfXNldCB2YWx1ZSh0KXtpZih0IT09dGhpcy5fdmFsdWUpe2xldCBlPV96KHQsMCk7dGhpcy5fcm91bmRUb0RlY2ltYWwmJmUhPT10aGlzLm1pbiYmZSE9PXRoaXMubWF4JiYoZT1wYXJzZUZsb2F0KGUudG9GaXhlZCh0aGlzLl9yb3VuZFRvRGVjaW1hbCkpKSx0aGlzLl92YWx1ZT1lLHRoaXMuX3BlcmNlbnQ9dGhpcy5fY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLl92YWx1ZSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9fWdldCB2ZXJ0aWNhbCgpe3JldHVybiB0aGlzLl92ZXJ0aWNhbH1zZXQgdmVydGljYWwodCl7dGhpcy5fdmVydGljYWw9eXoodCl9Z2V0IGRpc3BsYXlWYWx1ZSgpe3JldHVybiB0aGlzLmRpc3BsYXlXaXRoP3RoaXMuZGlzcGxheVdpdGgodGhpcy52YWx1ZSk6dGhpcy5fcm91bmRUb0RlY2ltYWwmJnRoaXMudmFsdWUmJnRoaXMudmFsdWUlMSE9MD90aGlzLnZhbHVlLnRvRml4ZWQodGhpcy5fcm91bmRUb0RlY2ltYWwpOnRoaXMudmFsdWV8fDB9Zm9jdXModCl7dGhpcy5fZm9jdXNIb3N0RWxlbWVudCh0KX1ibHVyKCl7dGhpcy5fYmx1ckhvc3RFbGVtZW50KCl9Z2V0IHBlcmNlbnQoKXtyZXR1cm4gdGhpcy5fY2xhbXAodGhpcy5fcGVyY2VudCl9X3Nob3VsZEludmVydEF4aXMoKXtyZXR1cm4gdGhpcy52ZXJ0aWNhbD8hdGhpcy5pbnZlcnQ6dGhpcy5pbnZlcnR9X2lzTWluVmFsdWUoKXtyZXR1cm4gMD09PXRoaXMucGVyY2VudH1fZ2V0VGh1bWJHYXAoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZD83OnRoaXMuX2lzTWluVmFsdWUoKSYmIXRoaXMudGh1bWJMYWJlbD90aGlzLl9pc0FjdGl2ZT8xMDo3OjB9X2dldFRyYWNrQmFja2dyb3VuZFN0eWxlcygpe2NvbnN0IHQ9dGhpcy52ZXJ0aWNhbD9gMSwgJHsxLXRoaXMucGVyY2VudH0sIDFgOjEtdGhpcy5wZXJjZW50KyIsIDEsIDEiO3JldHVybnt0cmFuc2Zvcm06YHRyYW5zbGF0ZSR7dGhpcy52ZXJ0aWNhbD8iWSI6IlgifSgke3RoaXMuX3Nob3VsZEludmVydE1vdXNlQ29vcmRzKCk/Ii0iOiIifSR7dGhpcy5fZ2V0VGh1bWJHYXAoKX1weCkgc2NhbGUzZCgke3R9KWB9fV9nZXRUcmFja0ZpbGxTdHlsZXMoKXtjb25zdCB0PXRoaXMucGVyY2VudCxlPXRoaXMudmVydGljYWw/YDEsICR7dH0sIDFgOmAke3R9LCAxLCAxYDtyZXR1cm57dHJhbnNmb3JtOmB0cmFuc2xhdGUke3RoaXMudmVydGljYWw/IlkiOiJYIn0oJHt0aGlzLl9zaG91bGRJbnZlcnRNb3VzZUNvb3JkcygpPyIiOiItIn0ke3RoaXMuX2dldFRodW1iR2FwKCl9cHgpIHNjYWxlM2QoJHtlfSlgLGRpc3BsYXk6MD09PXQ/Im5vbmUiOiIifX1fZ2V0VGlja3NDb250YWluZXJTdHlsZXMoKXtyZXR1cm57dHJhbnNmb3JtOmB0cmFuc2xhdGUke3RoaXMudmVydGljYWw/IlkiOiJYIn0oJHt0aGlzLnZlcnRpY2FsfHwicnRsIiE9dGhpcy5fZ2V0RGlyZWN0aW9uKCk/Ii0iOiIifSR7dGhpcy5fdGlja0ludGVydmFsUGVyY2VudC8yKjEwMH0lKWB9fV9nZXRUaWNrc1N0eWxlcygpe2xldCB0PTEwMCp0aGlzLl90aWNrSW50ZXJ2YWxQZXJjZW50LGU9e2JhY2tncm91bmRTaXplOnRoaXMudmVydGljYWw/YDJweCAke3R9JWA6YCR7dH0lIDJweGAsdHJhbnNmb3JtOmB0cmFuc2xhdGVaKDApIHRyYW5zbGF0ZSR7dGhpcy52ZXJ0aWNhbD8iWSI6IlgifSgke3RoaXMudmVydGljYWx8fCJydGwiIT10aGlzLl9nZXREaXJlY3Rpb24oKT8iIjoiLSJ9JHt0LzJ9JSkke3RoaXMudmVydGljYWx8fCJydGwiIT10aGlzLl9nZXREaXJlY3Rpb24oKT8iIjoiIHJvdGF0ZSgxODBkZWcpIn1gfTtpZih0aGlzLl9pc01pblZhbHVlKCkmJnRoaXMuX2dldFRodW1iR2FwKCkpe2NvbnN0IHQ9dGhpcy5fc2hvdWxkSW52ZXJ0QXhpcygpO2xldCBuO249dGhpcy52ZXJ0aWNhbD90PyJCb3R0b20iOiJUb3AiOnQ/IlJpZ2h0IjoiTGVmdCIsZVtgcGFkZGluZyR7bn1gXT1gJHt0aGlzLl9nZXRUaHVtYkdhcCgpfXB4YH1yZXR1cm4gZX1fZ2V0VGh1bWJDb250YWluZXJTdHlsZXMoKXtjb25zdCB0PXRoaXMuX3Nob3VsZEludmVydEF4aXMoKTtyZXR1cm57dHJhbnNmb3JtOmB0cmFuc2xhdGUke3RoaXMudmVydGljYWw/IlkiOiJYIn0oLSR7MTAwKigoInJ0bCIhPXRoaXMuX2dldERpcmVjdGlvbigpfHx0aGlzLnZlcnRpY2FsP3Q6IXQpP3RoaXMucGVyY2VudDoxLXRoaXMucGVyY2VudCl9JSlgfX1fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMoKXtjb25zdCB0PXRoaXMuX3Nob3VsZEludmVydEF4aXMoKTtyZXR1cm4icnRsIiE9dGhpcy5fZ2V0RGlyZWN0aW9uKCl8fHRoaXMudmVydGljYWw/dDohdH1fZ2V0RGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpciYmInJ0bCI9PXRoaXMuX2Rpci52YWx1ZT8icnRsIjoibHRyIn1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCEwKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLl9pc0FjdGl2ZT0hIXQmJiJrZXlib2FyZCIhPT10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKX0pKSx0aGlzLl9kaXImJih0aGlzLl9kaXJDaGFuZ2VTdWJzY3JpcHRpb249dGhpcy5fZGlyLmNoYW5nZS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSkpfW5nT25EZXN0cm95KCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7dC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX3BvaW50ZXJEb3duLGtYKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX3BvaW50ZXJEb3duLGtYKSx0aGlzLl9sYXN0UG9pbnRlckV2ZW50PW51bGwsdGhpcy5fcmVtb3ZlR2xvYmFsRXZlbnRzKCksdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpLHRoaXMuX2RpckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfV9vbk1vdXNlZW50ZXIoKXt0aGlzLmRpc2FibGVkfHwodGhpcy5fc2xpZGVyRGltZW5zaW9ucz10aGlzLl9nZXRTbGlkZXJEaW1lbnNpb25zKCksdGhpcy5fdXBkYXRlVGlja0ludGVydmFsUGVyY2VudCgpKX1fb25Gb2N1cygpe3RoaXMuX3NsaWRlckRpbWVuc2lvbnM9dGhpcy5fZ2V0U2xpZGVyRGltZW5zaW9ucygpLHRoaXMuX3VwZGF0ZVRpY2tJbnRlcnZhbFBlcmNlbnQoKX1fb25CbHVyKCl7dGhpcy5vblRvdWNoZWQoKX1fb25LZXlkb3duKHQpe2lmKHRoaXMuZGlzYWJsZWR8fGJ6KHQpfHx0aGlzLl9pc1NsaWRpbmcmJiJrZXlib2FyZCIhPT10aGlzLl9pc1NsaWRpbmcpcmV0dXJuO2NvbnN0IGU9dGhpcy52YWx1ZTtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIDMzOnRoaXMuX2luY3JlbWVudCgxMCk7YnJlYWs7Y2FzZSAzNDp0aGlzLl9pbmNyZW1lbnQoLTEwKTticmVhaztjYXNlIDM1OnRoaXMudmFsdWU9dGhpcy5tYXg7YnJlYWs7Y2FzZSAzNjp0aGlzLnZhbHVlPXRoaXMubWluO2JyZWFrO2Nhc2UgMzc6dGhpcy5faW5jcmVtZW50KCJydGwiPT10aGlzLl9nZXREaXJlY3Rpb24oKT8xOi0xKTticmVhaztjYXNlIGd6OnRoaXMuX2luY3JlbWVudCgxKTticmVhaztjYXNlIDM5OnRoaXMuX2luY3JlbWVudCgicnRsIj09dGhpcy5fZ2V0RGlyZWN0aW9uKCk/LTE6MSk7YnJlYWs7Y2FzZSBoejp0aGlzLl9pbmNyZW1lbnQoLTEpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufWUhPXRoaXMudmFsdWUmJih0aGlzLl9lbWl0SW5wdXRFdmVudCgpLHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpKSx0aGlzLl9pc1NsaWRpbmc9ImtleWJvYXJkIix0LnByZXZlbnREZWZhdWx0KCl9X29uS2V5dXAoKXsia2V5Ym9hcmQiPT09dGhpcy5faXNTbGlkaW5nJiYodGhpcy5faXNTbGlkaW5nPW51bGwpfV9nZXRXaW5kb3coKXtyZXR1cm4gdGhpcy5fZG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvd31fYmluZEdsb2JhbEV2ZW50cyh0KXtjb25zdCBlPXRoaXMuX2RvY3VtZW50LG49QVgodCksbz1uPyJ0b3VjaGVuZCI6Im1vdXNldXAiO2UuYWRkRXZlbnRMaXN0ZW5lcihuPyJ0b3VjaG1vdmUiOiJtb3VzZW1vdmUiLHRoaXMuX3BvaW50ZXJNb3ZlLGtYKSxlLmFkZEV2ZW50TGlzdGVuZXIobyx0aGlzLl9wb2ludGVyVXAsa1gpLG4mJmUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLHRoaXMuX3BvaW50ZXJVcCxrWCk7Y29uc3QgaT10aGlzLl9nZXRXaW5kb3coKTt2b2lkIDAhPT1pJiZpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX3dpbmRvd0JsdXIpfV9yZW1vdmVHbG9iYWxFdmVudHMoKXtjb25zdCB0PXRoaXMuX2RvY3VtZW50O3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9wb2ludGVyTW92ZSxrWCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9wb2ludGVyVXAsa1gpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9wb2ludGVyTW92ZSxrWCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5fcG9pbnRlclVwLGtYKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIix0aGlzLl9wb2ludGVyVXAsa1gpO2NvbnN0IGU9dGhpcy5fZ2V0V2luZG93KCk7dm9pZCAwIT09ZSYmZSYmZS5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl93aW5kb3dCbHVyKX1faW5jcmVtZW50KHQpe3RoaXMudmFsdWU9dGhpcy5fY2xhbXAoKHRoaXMudmFsdWV8fDApK3RoaXMuc3RlcCp0LHRoaXMubWluLHRoaXMubWF4KX1fdXBkYXRlVmFsdWVGcm9tUG9zaXRpb24odCl7aWYoIXRoaXMuX3NsaWRlckRpbWVuc2lvbnMpcmV0dXJuO2xldCBlPXRoaXMuX2NsYW1wKCgodGhpcy52ZXJ0aWNhbD90Lnk6dC54KS0odGhpcy52ZXJ0aWNhbD90aGlzLl9zbGlkZXJEaW1lbnNpb25zLnRvcDp0aGlzLl9zbGlkZXJEaW1lbnNpb25zLmxlZnQpKS8odGhpcy52ZXJ0aWNhbD90aGlzLl9zbGlkZXJEaW1lbnNpb25zLmhlaWdodDp0aGlzLl9zbGlkZXJEaW1lbnNpb25zLndpZHRoKSk7aWYodGhpcy5fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMoKSYmKGU9MS1lKSwwPT09ZSl0aGlzLnZhbHVlPXRoaXMubWluO2Vsc2UgaWYoMT09PWUpdGhpcy52YWx1ZT10aGlzLm1heDtlbHNle2NvbnN0IHQ9dGhpcy5fY2FsY3VsYXRlVmFsdWUoZSksbj1NYXRoLnJvdW5kKCh0LXRoaXMubWluKS90aGlzLnN0ZXApKnRoaXMuc3RlcCt0aGlzLm1pbjt0aGlzLnZhbHVlPXRoaXMuX2NsYW1wKG4sdGhpcy5taW4sdGhpcy5tYXgpfX1fZW1pdENoYW5nZUV2ZW50KCl7dGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbih0aGlzLnZhbHVlKSx0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSksdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudCgpKX1fZW1pdElucHV0RXZlbnQoKXt0aGlzLmlucHV0LmVtaXQodGhpcy5fY3JlYXRlQ2hhbmdlRXZlbnQoKSl9X3VwZGF0ZVRpY2tJbnRlcnZhbFBlcmNlbnQoKXtpZih0aGlzLnRpY2tJbnRlcnZhbCYmdGhpcy5fc2xpZGVyRGltZW5zaW9ucylpZigiYXV0byI9PXRoaXMudGlja0ludGVydmFsKXtsZXQgdD10aGlzLnZlcnRpY2FsP3RoaXMuX3NsaWRlckRpbWVuc2lvbnMuaGVpZ2h0OnRoaXMuX3NsaWRlckRpbWVuc2lvbnMud2lkdGgsZT1NYXRoLmNlaWwoMzAvKHQqdGhpcy5zdGVwLyh0aGlzLm1heC10aGlzLm1pbikpKTt0aGlzLl90aWNrSW50ZXJ2YWxQZXJjZW50PWUqdGhpcy5zdGVwL3R9ZWxzZSB0aGlzLl90aWNrSW50ZXJ2YWxQZXJjZW50PXRoaXMudGlja0ludGVydmFsKnRoaXMuc3RlcC8odGhpcy5tYXgtdGhpcy5taW4pfV9jcmVhdGVDaGFuZ2VFdmVudCh0PXRoaXMudmFsdWUpe2xldCBlPW5ldyBEWDtyZXR1cm4gZS5zb3VyY2U9dGhpcyxlLnZhbHVlPXQsZX1fY2FsY3VsYXRlUGVyY2VudGFnZSh0KXtyZXR1cm4oKHR8fDApLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pfV9jYWxjdWxhdGVWYWx1ZSh0KXtyZXR1cm4gdGhpcy5taW4rdCoodGhpcy5tYXgtdGhpcy5taW4pfV9jbGFtcCh0LGU9MCxuPTEpe3JldHVybiBNYXRoLm1heChlLE1hdGgubWluKHQsbikpfV9nZXRTbGlkZXJEaW1lbnNpb25zKCl7cmV0dXJuIHRoaXMuX3NsaWRlcldyYXBwZXI/dGhpcy5fc2xpZGVyV3JhcHBlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOm51bGx9X2ZvY3VzSG9zdEVsZW1lbnQodCl7dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKHQpfV9ibHVySG9zdEVsZW1lbnQoKXt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpfXdyaXRlVmFsdWUodCl7dGhpcy52YWx1ZT10fXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbj10fXJlZ2lzdGVyT25Ub3VjaGVkKHQpe3RoaXMub25Ub3VjaGVkPXR9c2V0RGlzYWJsZWRTdGF0ZSh0KXt0aGlzLmRpc2FibGVkPXR9fWZ1bmN0aW9uIEFYKHQpe3JldHVybiJ0Ij09PXQudHlwZVswXX1mdW5jdGlvbiBUWCh0LGUpe2xldCBuO3JldHVybiBuPUFYKHQpPyJudW1iZXIiPT10eXBlb2YgZT9OWCh0LnRvdWNoZXMsZSl8fE5YKHQuY2hhbmdlZFRvdWNoZXMsZSk6dC50b3VjaGVzWzBdfHx0LmNoYW5nZWRUb3VjaGVzWzBdOnQsbj97eDpuLmNsaWVudFgseTpuLmNsaWVudFl9OnZvaWQgMH1mdW5jdGlvbiBOWCh0LGUpe2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl0uaWRlbnRpZmllcj09PWUpcmV0dXJuIHRbbl19UlguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJYKShTbShoZyksU20oU0kpLFNtKFVnKSxTbShISSw4KSxOYSgidGFiaW5kZXgiKSxTbShhXyksU20oWl8pLFNtKFZQLDgpKX0sUlguybVjbXA9dG8oe3R5cGU6Ulgsc2VsZWN0b3JzOltbIm1hdC1zbGlkZXIiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKHdYLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX3NsaWRlcldyYXBwZXI9dC5maXJzdCl9fSxob3N0QXR0cnM6WyJyb2xlIiwic2xpZGVyIiwxLCJtYXQtc2xpZGVyIiwibWF0LWZvY3VzLWluZGljYXRvciJdLGhvc3RWYXJzOjI5LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiZm9jdXMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uRm9jdXMoKX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25CbHVyKCl9KSkoImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9vbktleWRvd24oZSl9KSkoImtleXVwIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbktleXVwKCl9KSkoIm1vdXNlZW50ZXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uTW91c2VlbnRlcigpfSkpKCJzZWxlY3RzdGFydCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUucHJldmVudERlZmF1bHQoKX0pKSwyJmUmJihUdSgidGFiSW5kZXgiLG4udGFiSW5kZXgpLGpwKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkKSgiYXJpYS12YWx1ZW1heCIsbi5tYXgpKCJhcmlhLXZhbHVlbWluIixuLm1pbikoImFyaWEtdmFsdWVub3ciLG4udmFsdWUpKCJhcmlhLXZhbHVldGV4dCIsbnVsbD09bi52YWx1ZVRleHQ/bi5kaXNwbGF5VmFsdWU6bi52YWx1ZVRleHQpKCJhcmlhLW9yaWVudGF0aW9uIixuLnZlcnRpY2FsPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwiKSxwdSgibWF0LXNsaWRlci1kaXNhYmxlZCIsbi5kaXNhYmxlZCkoIm1hdC1zbGlkZXItaGFzLXRpY2tzIixuLnRpY2tJbnRlcnZhbCkoIm1hdC1zbGlkZXItaG9yaXpvbnRhbCIsIW4udmVydGljYWwpKCJtYXQtc2xpZGVyLWF4aXMtaW52ZXJ0ZWQiLG4uX3Nob3VsZEludmVydEF4aXMoKSkoIm1hdC1zbGlkZXItaW52ZXJ0LW1vdXNlLWNvb3JkcyIsbi5fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMoKSkoIm1hdC1zbGlkZXItc2xpZGluZyIsbi5faXNTbGlkaW5nKSgibWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIixuLnRodW1iTGFiZWwpKCJtYXQtc2xpZGVyLXZlcnRpY2FsIixuLnZlcnRpY2FsKSgibWF0LXNsaWRlci1taW4tdmFsdWUiLG4uX2lzTWluVmFsdWUoKSkoIm1hdC1zbGlkZXItaGlkZS1sYXN0LXRpY2siLG4uZGlzYWJsZWR8fG4uX2lzTWluVmFsdWUoKSYmbi5fZ2V0VGh1bWJHYXAoKSYmbi5fc2hvdWxkSW52ZXJ0QXhpcygpKSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1uLl9hbmltYXRpb25Nb2RlKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixjb2xvcjoiY29sb3IiLHRhYkluZGV4OiJ0YWJJbmRleCIsaW52ZXJ0OiJpbnZlcnQiLG1heDoibWF4IixtaW46Im1pbiIsc3RlcDoic3RlcCIsdGh1bWJMYWJlbDoidGh1bWJMYWJlbCIsdGlja0ludGVydmFsOiJ0aWNrSW50ZXJ2YWwiLHZhbHVlOiJ2YWx1ZSIsdmVydGljYWw6InZlcnRpY2FsIixkaXNwbGF5V2l0aDoiZGlzcGxheVdpdGgiLHZhbHVlVGV4dDoidmFsdWVUZXh0In0sb3V0cHV0czp7Y2hhbmdlOiJjaGFuZ2UiLGlucHV0OiJpbnB1dCIsdmFsdWVDaGFuZ2U6InZhbHVlQ2hhbmdlIn0sZXhwb3J0QXM6WyJtYXRTbGlkZXIiXSxmZWF0dXJlczpbcGcoW1NYXSkseHBdLGRlY2xzOjEzLHZhcnM6Nixjb25zdHM6W1sxLCJtYXQtc2xpZGVyLXdyYXBwZXIiXSxbInNsaWRlcldyYXBwZXIiLCIiXSxbMSwibWF0LXNsaWRlci10cmFjay13cmFwcGVyIl0sWzEsIm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCIsMywibmdTdHlsZSJdLFsxLCJtYXQtc2xpZGVyLXRyYWNrLWZpbGwiLDMsIm5nU3R5bGUiXSxbMSwibWF0LXNsaWRlci10aWNrcy1jb250YWluZXIiLDMsIm5nU3R5bGUiXSxbMSwibWF0LXNsaWRlci10aWNrcyIsMywibmdTdHlsZSJdLFsxLCJtYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lciIsMywibmdTdHlsZSJdLFsxLCJtYXQtc2xpZGVyLWZvY3VzLXJpbmciXSxbMSwibWF0LXNsaWRlci10aHVtYiJdLFsxLCJtYXQtc2xpZGVyLXRodW1iLWxhYmVsIl0sWzEsIm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwLDEpLFJtKDIsImRpdiIsMiksVG0oMywiZGl2IiwzKSxUbSg0LCJkaXYiLDQpLEFtKCksUm0oNSwiZGl2Iiw1KSxUbSg2LCJkaXYiLDYpLEFtKCksUm0oNywiZGl2Iiw3KSxUbSg4LCJkaXYiLDgpLFRtKDksImRpdiIsOSksUm0oMTAsImRpdiIsMTApLFJtKDExLCJzcGFuIiwxMSksa3UoMTIpLEFtKCksQW0oKSxBbSgpLEFtKCkpLDImZSYmKHJjKDMpLERtKCJuZ1N0eWxlIixuLl9nZXRUcmFja0JhY2tncm91bmRTdHlsZXMoKSkscmMoMSksRG0oIm5nU3R5bGUiLG4uX2dldFRyYWNrRmlsbFN0eWxlcygpKSxyYygxKSxEbSgibmdTdHlsZSIsbi5fZ2V0VGlja3NDb250YWluZXJTdHlsZXMoKSkscmMoMSksRG0oIm5nU3R5bGUiLG4uX2dldFRpY2tzU3R5bGVzKCkpLHJjKDEpLERtKCJuZ1N0eWxlIixuLl9nZXRUaHVtYkNvbnRhaW5lclN0eWxlcygpKSxyYyg1KSxTdShuLmRpc3BsYXlWYWx1ZSkpfSxkaXJlY3RpdmVzOltDTV0sc3R5bGVzOlsnLm1hdC1zbGlkZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6OHB4O291dGxpbmU6bm9uZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKTphY3RpdmUsLm1hdC1zbGlkZXIubWF0LXNsaWRlci1zbGlkaW5nOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCl7Y3Vyc29yOi13ZWJraXQtZ3JhYmJpbmc7Y3Vyc29yOmdyYWJiaW5nfS5tYXQtc2xpZGVyLXdyYXBwZXJ7LXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6ZXhhY3Q7Y29sb3ItYWRqdXN0OmV4YWN0O3Bvc2l0aW9uOmFic29sdXRlfS5tYXQtc2xpZGVyLXRyYWNrLXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO292ZXJmbG93OmhpZGRlbn0ubWF0LXNsaWRlci10cmFjay1maWxse3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zZm9ybS1vcmlnaW46MCAwO3RyYW5zaXRpb246dHJhbnNmb3JtIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7b3ZlcmZsb3c6aGlkZGVufS5tYXQtc2xpZGVyLXRpY2tzey13ZWJraXQtYmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQ7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItdGh1bWItY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci1mb2N1cy1yaW5ne3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czo1MCU7dHJhbnNmb3JtOnNjYWxlKDApO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLG9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1zbGlkZXItZm9jdXMtcmluZywubWF0LXNsaWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX0ubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpOm5vdCgubWF0LXNsaWRlci1zbGlkaW5nKSAubWF0LXNsaWRlci10aHVtYi1sYWJlbCwubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpOm5vdCgubWF0LXNsaWRlci1zbGlkaW5nKSAubWF0LXNsaWRlci10aHVtYntjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFifS5tYXQtc2xpZGVyLXRodW1ie3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi0xMHB4O2JvdHRvbTotMTBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXI6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6NTAlO3RyYW5zZm9ybTpzY2FsZSgwLjcpO3RyYW5zaXRpb246dHJhbnNmb3JtIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYm9yZGVyLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2Rpc3BsYXk6bm9uZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O2JvcmRlci1yYWRpdXM6NTAlO3RyYW5zaXRpb246dHJhbnNmb3JtIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJvcmRlci1yYWRpdXMgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse291dGxpbmU6c29saWQgMXB4fS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7ei1pbmRleDoxO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItc2xpZGluZyAubWF0LXNsaWRlci10cmFjay1maWxsLC5tYXQtc2xpZGVyLXNsaWRpbmcgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCwubWF0LXNsaWRlci1zbGlkaW5nIC5tYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lcnt0cmFuc2l0aW9uLWR1cmF0aW9uOjBtc30ubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItd2lkdGg6MDtib3JkZXItc3R5bGU6c29saWQ7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci1oYXMtdGlja3MuY2RrLWZvY3VzZWQ6bm90KC5tYXQtc2xpZGVyLWhpZGUtbGFzdC10aWNrKSAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciwubWF0LXNsaWRlci1oYXMtdGlja3M6aG92ZXI6bm90KC5tYXQtc2xpZGVyLWhpZGUtbGFzdC10aWNrKSAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntvcGFjaXR5OjF9Lm1hdC1zbGlkZXItaGFzLXRpY2tzLmNkay1mb2N1c2VkOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkgLm1hdC1zbGlkZXItdGlja3MsLm1hdC1zbGlkZXItaGFzLXRpY2tzOmhvdmVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkgLm1hdC1zbGlkZXItdGlja3N7b3BhY2l0eToxfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tkaXNwbGF5Om5vbmV9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtkaXNwbGF5OmZsZXh9Lm1hdC1zbGlkZXItYXhpcy1pbnZlcnRlZCAubWF0LXNsaWRlci10cmFjay1maWxse3RyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlfS5tYXQtc2xpZGVyLWF4aXMtaW52ZXJ0ZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHt0cmFuc2Zvcm0tb3JpZ2luOjAgMH0ubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYnt0cmFuc2Zvcm06c2NhbGUoMCl9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtib3JkZXItcmFkaXVzOjUwJSA1MCUgMH0ubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7b3BhY2l0eToxfS5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkuY2RrLW1vdXNlLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstdG91Y2gtZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWJ7Ym9yZGVyLXdpZHRoOjJweDt0cmFuc2Zvcm06c2NhbGUoMSl9Lm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3t0cmFuc2Zvcm06c2NhbGUoMCk7b3BhY2l0eTowfS5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci13aWR0aDo0cHg7dHJhbnNmb3JtOnNjYWxlKDAuNSl9Lm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7ZGlzcGxheTpub25lfS5tYXQtc2xpZGVyLWhvcml6b250YWx7aGVpZ2h0OjQ4cHg7bWluLXdpZHRoOjEyOHB4fS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItd3JhcHBlcntoZWlnaHQ6MnB4O3RvcDoyM3B4O2xlZnQ6OHB4O3JpZ2h0OjhweH0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye2hlaWdodDoycHg7Ym9yZGVyLWxlZnQtd2lkdGg6MnB4O3JpZ2h0OjA7dG9wOjB9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay13cmFwcGVye2hlaWdodDoycHg7d2lkdGg6MTAwJX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7aGVpZ2h0OjJweDt3aWR0aDoxMDAlO3RyYW5zZm9ybTpzY2FsZVgoMCl9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2hlaWdodDoycHg7d2lkdGg6MTAwJTt0cmFuc2Zvcm06c2NhbGVYKDEpfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3MtY29udGFpbmVye2hlaWdodDoycHg7d2lkdGg6MTAwJX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3MtY29udGFpbmVye2hlaWdodDowO291dGxpbmU6c29saWQgMnB4O3RvcDoxcHh9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrc3toZWlnaHQ6MnB4O3dpZHRoOjEwMCV9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aHVtYi1jb250YWluZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MDt0b3A6NTAlfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3t0b3A6LTE1cHg7cmlnaHQ6LTE1cHh9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtyaWdodDotMTRweDt0b3A6LTQwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjZweCkgc2NhbGUoMC4wMSkgcm90YXRlKDQ1ZGVnKX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS5tYXQtc2xpZGVyLWhvcml6b250YWwuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlci1ob3Jpem9udGFsLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbC5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e3RyYW5zZm9ybTpub25lfS5tYXQtc2xpZGVyLXZlcnRpY2Fse3dpZHRoOjQ4cHg7bWluLWhlaWdodDoxMjhweH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci13cmFwcGVye3dpZHRoOjJweDt0b3A6OHB4O2JvdHRvbTo4cHg7bGVmdDoyM3B4fS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye3dpZHRoOjJweDtib3JkZXItdG9wLXdpZHRoOjJweDtib3R0b206MDtsZWZ0OjB9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdHJhY2std3JhcHBlcntoZWlnaHQ6MTAwJTt3aWR0aDoycHh9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdHJhY2stZmlsbHtoZWlnaHQ6MTAwJTt3aWR0aDoycHg7dHJhbnNmb3JtOnNjYWxlWSgwKX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2hlaWdodDoxMDAlO3dpZHRoOjJweDt0cmFuc2Zvcm06c2NhbGVZKDEpfS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lcnt3aWR0aDoycHg7aGVpZ2h0OjEwMCV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcy1jb250YWluZXJ7d2lkdGg6MDtvdXRsaW5lOnNvbGlkIDJweDtsZWZ0OjFweH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JvdHRvbTotMTVweDtsZWZ0Oi0xNXB4fS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tze3dpZHRoOjJweDtoZWlnaHQ6MTAwJX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aHVtYi1jb250YWluZXJ7aGVpZ2h0OjEwMCU7d2lkdGg6MDtsZWZ0OjUwJX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aHVtYnstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JvdHRvbTotMTRweDtsZWZ0Oi00MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVYKDI2cHgpIHNjYWxlKDAuMDEpIHJvdGF0ZSgtNDVkZWcpfS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9Lm1hdC1zbGlkZXItdmVydGljYWwuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfVtkaXI9cnRsXSAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntsZWZ0OjA7cmlnaHQ6YXV0b31bZGlyPXJ0bF0gLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay1maWxse3RyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlfVtkaXI9cnRsXSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7dHJhbnNmb3JtLW9yaWdpbjowIDB9W2Rpcj1ydGxdIC5tYXQtc2xpZGVyLWhvcml6b250YWwubWF0LXNsaWRlci1heGlzLWludmVydGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7dHJhbnNmb3JtLW9yaWdpbjowIDB9W2Rpcj1ydGxdIC5tYXQtc2xpZGVyLWhvcml6b250YWwubWF0LXNsaWRlci1heGlzLWludmVydGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDEwMCV9Lm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRpY2tzLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lciwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci1mb2N1cy1yaW5nLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye3RyYW5zaXRpb246bm9uZX1cbiddLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLFJYLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlNJfSx7dHlwZTpVZ30se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XSxSWC5wcm9wRGVjb3JhdG9ycz17aW52ZXJ0Olt7dHlwZTp4eX1dLG1heDpbe3R5cGU6eHl9XSxtaW46W3t0eXBlOnh5fV0sc3RlcDpbe3R5cGU6eHl9XSx0aHVtYkxhYmVsOlt7dHlwZTp4eX1dLHRpY2tJbnRlcnZhbDpbe3R5cGU6eHl9XSx2YWx1ZTpbe3R5cGU6eHl9XSxkaXNwbGF5V2l0aDpbe3R5cGU6eHl9XSx2YWx1ZVRleHQ6W3t0eXBlOnh5fV0sdmVydGljYWw6W3t0eXBlOnh5fV0sY2hhbmdlOlt7dHlwZTpPeX1dLGlucHV0Olt7dHlwZTpPeX1dLHZhbHVlQ2hhbmdlOlt7dHlwZTpPeX1dLF9zbGlkZXJXcmFwcGVyOlt7dHlwZTpaYSxhcmdzOlsic2xpZGVyV3JhcHBlciJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUlgsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXNsaWRlciIsZXhwb3J0QXM6Im1hdFNsaWRlciIscHJvdmlkZXJzOltTWF0saG9zdDp7Iihmb2N1cykiOiJfb25Gb2N1cygpIiwiKGJsdXIpIjoiX29uQmx1cigpIiwiKGtleWRvd24pIjoiX29uS2V5ZG93bigkZXZlbnQpIiwiKGtleXVwKSI6Il9vbktleXVwKCkiLCIobW91c2VlbnRlcikiOiJfb25Nb3VzZWVudGVyKCkiLCIoc2VsZWN0c3RhcnQpIjoiJGV2ZW50LnByZXZlbnREZWZhdWx0KCkiLGNsYXNzOiJtYXQtc2xpZGVyIG1hdC1mb2N1cy1pbmRpY2F0b3IiLHJvbGU6InNsaWRlciIsIlt0YWJJbmRleF0iOiJ0YWJJbmRleCIsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbYXR0ci5hcmlhLXZhbHVlbWF4XSI6Im1heCIsIlthdHRyLmFyaWEtdmFsdWVtaW5dIjoibWluIiwiW2F0dHIuYXJpYS12YWx1ZW5vd10iOiJ2YWx1ZSIsIlthdHRyLmFyaWEtdmFsdWV0ZXh0XSI6InZhbHVlVGV4dCA9PSBudWxsID8gZGlzcGxheVZhbHVlIDogdmFsdWVUZXh0IiwiW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0iOid2ZXJ0aWNhbCA/ICJ2ZXJ0aWNhbCIgOiAiaG9yaXpvbnRhbCInLCJbY2xhc3MubWF0LXNsaWRlci1kaXNhYmxlZF0iOiJkaXNhYmxlZCIsIltjbGFzcy5tYXQtc2xpZGVyLWhhcy10aWNrc10iOiJ0aWNrSW50ZXJ2YWwiLCJbY2xhc3MubWF0LXNsaWRlci1ob3Jpem9udGFsXSI6IiF2ZXJ0aWNhbCIsIltjbGFzcy5tYXQtc2xpZGVyLWF4aXMtaW52ZXJ0ZWRdIjoiX3Nob3VsZEludmVydEF4aXMoKSIsIltjbGFzcy5tYXQtc2xpZGVyLWludmVydC1tb3VzZS1jb29yZHNdIjoiX3Nob3VsZEludmVydE1vdXNlQ29vcmRzKCkiLCJbY2xhc3MubWF0LXNsaWRlci1zbGlkaW5nXSI6Il9pc1NsaWRpbmciLCJbY2xhc3MubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nXSI6InRodW1iTGFiZWwiLCJbY2xhc3MubWF0LXNsaWRlci12ZXJ0aWNhbF0iOiJ2ZXJ0aWNhbCIsIltjbGFzcy5tYXQtc2xpZGVyLW1pbi12YWx1ZV0iOiJfaXNNaW5WYWx1ZSgpIiwiW2NsYXNzLm1hdC1zbGlkZXItaGlkZS1sYXN0LXRpY2tdIjoiZGlzYWJsZWQgfHwgX2lzTWluVmFsdWUoKSAmJiBfZ2V0VGh1bWJHYXAoKSAmJiBfc2hvdWxkSW52ZXJ0QXhpcygpIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6J19hbmltYXRpb25Nb2RlID09PSAiTm9vcEFuaW1hdGlvbnMiJ30sdGVtcGxhdGU6JzxkaXYgY2xhc3M9Im1hdC1zbGlkZXItd3JhcHBlciIgI3NsaWRlcldyYXBwZXI+XG4gIDxkaXYgY2xhc3M9Im1hdC1zbGlkZXItdHJhY2std3JhcHBlciI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIiBbbmdTdHlsZV09Il9nZXRUcmFja0JhY2tncm91bmRTdHlsZXMoKSI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci10cmFjay1maWxsIiBbbmdTdHlsZV09Il9nZXRUcmFja0ZpbGxTdHlsZXMoKSI+PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPSJtYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lciIgW25nU3R5bGVdPSJfZ2V0VGlja3NDb250YWluZXJTdHlsZXMoKSI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci10aWNrcyIgW25nU3R5bGVdPSJfZ2V0VGlja3NTdHlsZXMoKSI+PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPSJtYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lciIgW25nU3R5bGVdPSJfZ2V0VGh1bWJDb250YWluZXJTdHlsZXMoKSI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci1mb2N1cy1yaW5nIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPSJtYXQtc2xpZGVyLXRodW1iIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPSJtYXQtc2xpZGVyLXRodW1iLWxhYmVsIj5cbiAgICAgIDxzcGFuIGNsYXNzPSJtYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQiPnt7ZGlzcGxheVZhbHVlfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4nLGlucHV0czpbImRpc2FibGVkIiwiY29sb3IiLCJ0YWJJbmRleCJdLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHN0eWxlczpbJy5tYXQtc2xpZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjhweDtvdXRsaW5lOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCk6YWN0aXZlLC5tYXQtc2xpZGVyLm1hdC1zbGlkZXItc2xpZGluZzpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpe2N1cnNvcjotd2Via2l0LWdyYWJiaW5nO2N1cnNvcjpncmFiYmluZ30ubWF0LXNsaWRlci13cmFwcGVyey13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OmV4YWN0O2NvbG9yLWFkanVzdDpleGFjdDtwb3NpdGlvbjphYnNvbHV0ZX0ubWF0LXNsaWRlci10cmFjay13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW59Lm1hdC1zbGlkZXItdHJhY2stZmlsbHtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDEwMCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci10aWNrcy1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO292ZXJmbG93OmhpZGRlbn0ubWF0LXNsaWRlci10aWNrc3std2Via2l0LWJhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItZm9jdXMtcmluZ3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6NTAlO3RyYW5zZm9ybTpzY2FsZSgwKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcsLm1hdC1zbGlkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LXNsaWRlci1mb2N1cy1yaW5ne3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKTpub3QoLm1hdC1zbGlkZXItc2xpZGluZykgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwsLm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKTpub3QoLm1hdC1zbGlkZXItc2xpZGluZykgLm1hdC1zbGlkZXItdGh1bWJ7Y3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYn0ubWF0LXNsaWRlci10aHVtYntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMTBweDtib3R0b206LTEwcHg7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Ym9yZGVyOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2Zvcm06c2NhbGUoMC43KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJvcmRlci1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci10aHVtYi1sYWJlbHtkaXNwbGF5Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3JkZXItcmFkaXVzIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtvdXRsaW5lOnNvbGlkIDFweH0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e3otaW5kZXg6MTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXNsaWRpbmcgLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXNsaWRlci1zbGlkaW5nIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsLm1hdC1zbGlkZXItc2xpZGluZyAubWF0LXNsaWRlci10aHVtYi1jb250YWluZXJ7dHJhbnNpdGlvbi1kdXJhdGlvbjowbXN9Lm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXdpZHRoOjA7Ym9yZGVyLXN0eWxlOnNvbGlkO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItaGFzLXRpY2tzLmNkay1mb2N1c2VkOm5vdCgubWF0LXNsaWRlci1oaWRlLWxhc3QtdGljaykgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXIsLm1hdC1zbGlkZXItaGFzLXRpY2tzOmhvdmVyOm5vdCgubWF0LXNsaWRlci1oaWRlLWxhc3QtdGljaykgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7b3BhY2l0eToxfS5tYXQtc2xpZGVyLWhhcy10aWNrcy5jZGstZm9jdXNlZDpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpIC5tYXQtc2xpZGVyLXRpY2tzLC5tYXQtc2xpZGVyLWhhcy10aWNrczpob3Zlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpIC5tYXQtc2xpZGVyLXRpY2tze29wYWNpdHk6MX0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7ZGlzcGxheTpub25lfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7ZGlzcGxheTpmbGV4fS5tYXQtc2xpZGVyLWF4aXMtaW52ZXJ0ZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbHt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX0ubWF0LXNsaWRlci1heGlzLWludmVydGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7dHJhbnNmb3JtLW9yaWdpbjowIDB9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDApfS5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7Ym9yZGVyLXJhZGl1czo1MCUgNTAlIDB9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e29wYWNpdHk6MX0ubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpLmNkay1tb3VzZS1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkuY2RrLXRvdWNoLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci13aWR0aDoycHg7dHJhbnNmb3JtOnNjYWxlKDEpfS5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7dHJhbnNmb3JtOnNjYWxlKDApO29wYWNpdHk6MH0ubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItd2lkdGg6NHB4O3RyYW5zZm9ybTpzY2FsZSgwLjUpfS5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2Rpc3BsYXk6bm9uZX0ubWF0LXNsaWRlci1ob3Jpem9udGFse2hlaWdodDo0OHB4O21pbi13aWR0aDoxMjhweH0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXdyYXBwZXJ7aGVpZ2h0OjJweDt0b3A6MjNweDtsZWZ0OjhweDtyaWdodDo4cHh9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntoZWlnaHQ6MnB4O2JvcmRlci1sZWZ0LXdpZHRoOjJweDtyaWdodDowO3RvcDowfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2std3JhcHBlcntoZWlnaHQ6MnB4O3dpZHRoOjEwMCV9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay1maWxse2hlaWdodDoycHg7d2lkdGg6MTAwJTt0cmFuc2Zvcm06c2NhbGVYKDApfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtoZWlnaHQ6MnB4O3dpZHRoOjEwMCU7dHJhbnNmb3JtOnNjYWxlWCgxKX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lcntoZWlnaHQ6MnB4O3dpZHRoOjEwMCV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lcntoZWlnaHQ6MDtvdXRsaW5lOnNvbGlkIDJweDt0b3A6MXB4fS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3N7aGVpZ2h0OjJweDt3aWR0aDoxMDAlfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGh1bWItY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjA7dG9wOjUwJX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7dG9wOi0xNXB4O3JpZ2h0Oi0xNXB4fS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7cmlnaHQ6LTE0cHg7dG9wOi00MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKDI2cHgpIHNjYWxlKDAuMDEpIHJvdGF0ZSg0NWRlZyl9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX0ubWF0LXNsaWRlci1ob3Jpem9udGFsLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbC5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGVyLWhvcml6b250YWwuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHt0cmFuc2Zvcm06bm9uZX0ubWF0LXNsaWRlci12ZXJ0aWNhbHt3aWR0aDo0OHB4O21pbi1oZWlnaHQ6MTI4cHh9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItd3JhcHBlcnt3aWR0aDoycHg7dG9wOjhweDtib3R0b206OHB4O2xlZnQ6MjNweH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcnt3aWR0aDoycHg7Ym9yZGVyLXRvcC13aWR0aDoycHg7Ym90dG9tOjA7bGVmdDowfS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRyYWNrLXdyYXBwZXJ7aGVpZ2h0OjEwMCU7d2lkdGg6MnB4fS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7aGVpZ2h0OjEwMCU7d2lkdGg6MnB4O3RyYW5zZm9ybTpzY2FsZVkoMCl9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtoZWlnaHQ6MTAwJTt3aWR0aDoycHg7dHJhbnNmb3JtOnNjYWxlWSgxKX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcy1jb250YWluZXJ7d2lkdGg6MnB4O2hlaWdodDoxMDAlfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3MtY29udGFpbmVye3dpZHRoOjA7b3V0bGluZTpzb2xpZCAycHg7bGVmdDoxcHh9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tib3R0b206LTE1cHg7bGVmdDotMTVweH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrc3t3aWR0aDoycHg7aGVpZ2h0OjEwMCV9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGh1bWItY29udGFpbmVye2hlaWdodDoxMDAlO3dpZHRoOjA7bGVmdDo1MCV9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGh1bWJ7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbn0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtib3R0b206LTE0cHg7bGVmdDotNDBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyNnB4KSBzY2FsZSgwLjAxKSByb3RhdGUoLTQ1ZGVnKX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYXQtc2xpZGVyLXZlcnRpY2FsLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX1bZGlyPXJ0bF0gLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7bGVmdDowO3JpZ2h0OmF1dG99W2Rpcj1ydGxdIC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2stZmlsbHt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX1bZGlyPXJ0bF0gLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke3RyYW5zZm9ybS1vcmlnaW46MCAwfVtkaXI9cnRsXSAubWF0LXNsaWRlci1ob3Jpem9udGFsLm1hdC1zbGlkZXItYXhpcy1pbnZlcnRlZCAubWF0LXNsaWRlci10cmFjay1maWxse3RyYW5zZm9ybS1vcmlnaW46MCAwfVtkaXI9cnRsXSAubWF0LXNsaWRlci1ob3Jpem9udGFsLm1hdC1zbGlkZXItYXhpcy1pbnZlcnRlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke3RyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlfS5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aWNrcywubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYi1jb250YWluZXIsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItZm9jdXMtcmluZywubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYi1sYWJlbCwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0LC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcnt0cmFuc2l0aW9uOm5vbmV9XG4nXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpTSX0se3R5cGU6VWd9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpqYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV19KSx7Y2hhbmdlOlt7dHlwZTpPeX1dLGlucHV0Olt7dHlwZTpPeX1dLHZhbHVlQ2hhbmdlOlt7dHlwZTpPeX1dLGludmVydDpbe3R5cGU6eHl9XSxtYXg6W3t0eXBlOnh5fV0sbWluOlt7dHlwZTp4eX1dLHN0ZXA6W3t0eXBlOnh5fV0sdGh1bWJMYWJlbDpbe3R5cGU6eHl9XSx0aWNrSW50ZXJ2YWw6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV0sdmVydGljYWw6W3t0eXBlOnh5fV0sZGlzcGxheVdpdGg6W3t0eXBlOnh5fV0sdmFsdWVUZXh0Olt7dHlwZTp4eX1dLF9zbGlkZXJXcmFwcGVyOlt7dHlwZTpaYSxhcmdzOlsic2xpZGVyV3JhcHBlciJdfV19KTtjbGFzcyB6WHt9elguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHpYKX0selguybVtb2Q9YW8oe3R5cGU6elh9KSx6WC7JtWluaj12bih7aW1wb3J0czpbW1dNLFhJXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHpYLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV00sWEldLGV4cG9ydHM6W1JYLFhJXSxkZWNsYXJhdGlvbnM6W1JYXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHpYLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bUlhdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1dNLFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltSWCxYSV19fSk7Y29uc3QgSVg9ezE5OiJmbG9hdDE2IiwxOiJmbG9hdDMyIiwyOiJmbG9hdDY0IiwzOiJpbnQzMiIsNDoidWludDgiLDE3OiJ1aW50MTYiLDIyOiJ1aW50MzIiLDIzOiJ1aW50NjQiLDU6ImludDE2Iiw2OiJpbnQ4Iiw3OiJzdHJpbmciLDg6ImNvbXBsZXg2NCIsMTg6ImNvbXBsZXgxMjgiLDk6ImludDY0IiwxMDoiYm9vbCIsMTE6InFpbnQ4IiwxMjoicXVpbnQ4IiwxNToicWludDE2IiwxNjoicXVpbnQxNiIsMTM6InFpbnQzMiIsMTQ6ImJmbG9hdDE2IiwyMDoicmVzb3VyY2UiLDIxOiJ2YXJpYW50IiwxMTk6ImZsb2F0MTZfcmVmIiwxMDE6ImZsb2F0MzJfcmVmIiwxMDI6ImZsb2F0NjRfcmVmIiwxMDM6ImludDMyX3JlZiIsMTIyOiJ1aW50MzJfcmVmIiwxMDQ6InVpbnQ4X3JlZiIsMTE3OiJ1aW50MTZfcmVmIiwxMDU6ImludDE2X3JlZiIsMTA2OiJpbnQ4X3JlZiIsMTA3OiJzdHJpbmdfcmVmIiwxMDg6ImNvbXBsZXg2NF9yZWYiLDExODoiY29tcGxleDEyOF9yZWYiLDEwOToiaW50NjRfcmVmIiwxMjM6InVpbnQ2NF9yZWYiLDExMDoiYm9vbF9yZWYiLDExMToicWludDhfcmVmIiwxMTI6InF1aW50OF9yZWYiLDExNToicWludDE2X3JlZiIsMTE2OiJxdWludDE2X3JlZiIsMTEzOiJxaW50MzJfcmVmIiwxMTQ6ImJmbG9hdDE2X3JlZiIsMTIwOiJyZXNvdXJjZV9yZWYiLDEyMToidmFyaWFudF9yZWYifTtmdW5jdGlvbiBIWCh0KXtjb25zdHt0ZW5zb3JEZWJ1Z01vZGU6ZSxhcnJheTpufT10O3N3aXRjaChlKXtjYXNlIG1aLk5PX1RFTlNPUjppZihudWxsIT09bil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWRseSByZWNlaXZlZCBub24tbnVsbCBkZWJ1Zy10ZW5zb3ItdmFsdWUgYXJyYXkgdW5kZXIgTk9fVEVOU09SIG1vZGUiKTtyZXR1cm57fTtjYXNlIG1aLkNVUlRfSEVBTFRIOmlmKG51bGw9PT1ufHwyIT09bi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBVbmRlciBDVVJUX0hFQUxUSCBtb2RlLCBleHBlY3RlZCBkZWJ1Zy10ZW5zb3ItdmFsdWUgYXJyYXkgdG8gaGF2ZSBsZW5ndGggMiwgYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KG4pfWApO3JldHVybntoYXNJbmZPck5hTjpCb29sZWFuKG5bMV0pfTtjYXNlIG1aLkNPTkNJU0VfSEVBTFRIOntpZihudWxsPT09bnx8NSE9PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5kZXIgQ09OQ0lTRV9IRUFMVEggbW9kZSwgZXhwZWN0ZWQgZGVidWctdGVuc29yLXZhbHVlIGFycmF5IHRvIGhhdmUgbGVuZ3RoIDUsIGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShuKX1gKTtjb25zdCB0PXtzaXplOm5bMV19O3JldHVybiBuWzJdPjAmJih0Lm51bU5lZ2F0aXZlSW5mcz1uWzJdKSxuWzNdPjAmJih0Lm51bVBvc2l0aXZlSW5mcz1uWzNdKSxuWzRdPjAmJih0Lm51bU5hTnM9bls0XSksdH1jYXNlIG1aLlNIQVBFOntpZihudWxsPT09bnx8MTAhPT1uLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFVuZGVyIFNIQVBFIG1vZGUsIGV4cGVjdGVkIGRlYnVnLXRlbnNvci12YWx1ZSBhcnJheSB0byBoYXZlIGxlbmd0aCAxMCwgYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KG4pfWApO2NvbnN0IHQ9blsyXTtsZXQgZT1uLnNsaWNlKDQsTWF0aC5taW4oNCt0LG4ubGVuZ3RoKSk7cmV0dXJuIGUubGVuZ3RoPHQmJihlPW5ldyBBcnJheSh0LWUubGVuZ3RoKS5jb25jYXQoZSkpLHtkdHlwZTpJWFtuWzFdXSxyYW5rOnQsc2l6ZTpuWzNdLHNoYXBlOmV9fWNhc2UgbVouRlVMTF9IRUFMVEg6e2lmKG51bGw9PT1ufHwxMSE9PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5kZXIgRlVMTF9IRUFMVEggbW9kZSwgZXhwZWN0ZWQgZGVidWctdGVuc29yLXZhbHVlIGFycmF5IHRvIGhhdmUgbGVuZ3RoIDExLCBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkobil9YCk7Y29uc3QgdD17ZHR5cGU6SVhbblsyXV0scmFuazpuWzNdLHNpemU6bls0XX07cmV0dXJuIG5bNV0+MCYmKHQubnVtTmVnYXRpdmVJbmZzPW5bNV0pLG5bNl0+MCYmKHQubnVtUG9zaXRpdmVJbmZzPW5bNl0pLG5bN10+MCYmKHQubnVtTmFOcz1uWzddKSxuWzhdPjAmJih0Lm51bU5lZ2F0aXZlRmluaXRlcz1uWzhdKSxuWzldPjAmJih0Lm51bVplcm9zPW5bOV0pLG5bMTBdPjAmJih0Lm51bVBvc2l0aXZlRmluaXRlcz1uWzEwXSksdH1jYXNlIG1aLkZVTExfVEVOU09SOmlmKG51bGwhPT1uKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZGx5IHJlY2VpdmVkIG5vbi1udWxsIGRlYnVnLXRlbnNvci12YWx1ZSBhcnJheSB1bmRlciBGVUxMX1RFTlNPUiBtb2RlIik7cmV0dXJue307ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCB0ZW5zb3JEZWJ1Z01vZGU6ICR7ZX1gKX19Y29uc3QgRlg9Iltfbmdob3N0LSVDT01QJV0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlM2U1ZTg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsIG1vbm9zcGFjZTtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAxcHggM3B4O1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgfSI7ZnVuY3Rpb24gTFgodCxlKXsxJnQmJlRtKDAsImRpdiIsNCl9ZnVuY3Rpb24gQlgodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDcpLFJtKDEsInNwYW4iLDgpLGt1KDIsIk5hTiIpLEFtKCksUm0oMywic3BhbiIsOSksa3UoNCksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoNCksRHUoIsOXIix0Lm51bU5hTnMsIiIpfX1mdW5jdGlvbiBWWCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNyksUm0oMSwic3BhbiIsOCksa3UoMiwiLeKIniIpLEFtKCksUm0oMywic3BhbiIsOSksa3UoNCksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoNCksRHUoIsOXIix0Lm51bU5lZ2F0aXZlSW5mcywiIil9fWZ1bmN0aW9uIGpYKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiw3KSxSbSgxLCJzcGFuIiw4KSxrdSgyLCIr4oieIiksQW0oKSxSbSgzLCJzcGFuIiw5KSxrdSg0KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYyg0KSxEdSgiw5ciLHQubnVtUG9zaXRpdmVJbmZzLCIiKX19ZnVuY3Rpb24gVVgodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDcpLFJtKDEsInNwYW4iLDEwKSxrdSgyLCItIiksQW0oKSxSbSgzLCJzcGFuIiw5KSxrdSg0KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYyg0KSxEdSgiw5ciLHQubnVtTmVnYXRpdmVGaW5pdGVzLCIiKX19ZnVuY3Rpb24gR1godCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDcpLFJtKDEsInNwYW4iLDEwKSxrdSgyLCIwIiksQW0oKSxSbSgzLCJzcGFuIiw5KSxrdSg0KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYyg0KSxEdSgiw5ciLHQubnVtWmVyb3MsIiIpfX1mdW5jdGlvbiBXWCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNyksUm0oMSwic3BhbiIsMTApLGt1KDIsIisiKSxBbSgpLFJtKDMsInNwYW4iLDkpLGt1KDQpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO3JjKDQpLER1KCLDlyIsdC5udW1Qb3NpdGl2ZUZpbml0ZXMsIiIpfX1mdW5jdGlvbiBZWCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNSksUXAoMSxCWCw1LDEsImRpdiIsNiksUXAoMixWWCw1LDEsImRpdiIsNiksUXAoMyxqWCw1LDEsImRpdiIsNiksUXAoNCxVWCw1LDEsImRpdiIsNiksUXAoNSxHWCw1LDEsImRpdiIsNiksUXAoNixXWCw1LDEsImRpdiIsNiksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRG0oIm5nSWYiLHZvaWQgMCE9PXQubnVtTmFOcyYmdC5udW1OYU5zPjApLHJjKDEpLERtKCJuZ0lmIix2b2lkIDAhPT10Lm51bU5lZ2F0aXZlSW5mcyYmdC5udW1OZWdhdGl2ZUluZnM+MCkscmMoMSksRG0oIm5nSWYiLHZvaWQgMCE9PXQubnVtUG9zaXRpdmVJbmZzJiZ0Lm51bVBvc2l0aXZlSW5mcz4wKSxyYygxKSxEbSgibmdJZiIsdm9pZCAwIT09dC5udW1OZWdhdGl2ZUZpbml0ZXMmJnQubnVtTmVnYXRpdmVGaW5pdGVzPjApLHJjKDEpLERtKCJuZ0lmIix2b2lkIDAhPT10Lm51bVplcm9zJiZ0Lm51bVplcm9zPjApLHJjKDEpLERtKCJuZ0lmIix2b2lkIDAhPT10Lm51bVBvc2l0aXZlRmluaXRlcyYmdC5udW1Qb3NpdGl2ZUZpbml0ZXM+MCl9fWNvbnN0IHFYPWZ1bmN0aW9uKHQpe3JldHVyblsiY29udGFpbmVyIix0XX07ZnVuY3Rpb24gWlgodCxlKXsxJnQmJlRtKDAsImRlYnVnLXRlbnNvci1kdHlwZSIsNSksMiZ0JiZEbSgiZHR5cGUiLFltKCkuZGVidWdUZW5zb3JWYWx1ZS5kdHlwZSl9ZnVuY3Rpb24gWFgodCxlKXsxJnQmJlRtKDAsImRlYnVnLXRlbnNvci1yYW5rIiw2KSwyJnQmJkRtKCJyYW5rIixZbSgpLmRlYnVnVGVuc29yVmFsdWUucmFuayl9ZnVuY3Rpb24gS1godCxlKXsxJnQmJlRtKDAsImRlYnVnLXRlbnNvci1zaGFwZSIsNyksMiZ0JiZEbSgic2hhcGUiLFltKCkuZGVidWdUZW5zb3JWYWx1ZS5zaGFwZSl9ZnVuY3Rpb24gSlgodCxlKXsxJnQmJlRtKDAsImRlYnVnLXRlbnNvci1oYXMtaW5mLW9yLW5hbiIsOCksMiZ0JiZEbSgiaGFzSW5mT3JOYU4iLFltKCkuZGVidWdUZW5zb3JWYWx1ZS5oYXNJbmZPck5hTil9ZnVuY3Rpb24gUVgodCxlKXtpZigxJnQmJlRtKDAsImRlYnVnLXRlbnNvci1udW1lcmljLWJyZWFrZG93biIsOSksMiZ0KXtjb25zdCB0PVltKCk7S20oInNpemUiLHQuZGVidWdUZW5zb3JWYWx1ZS5zaXplKSxEbSgibnVtTmVnYXRpdmVJbmZzIix0LmRlYnVnVGVuc29yVmFsdWUubnVtTmVnYXRpdmVJbmZzKSgibnVtUG9zaXRpdmVJbmZzIix0LmRlYnVnVGVuc29yVmFsdWUubnVtUG9zaXRpdmVJbmZzKSgibnVtTmFOcyIsdC5kZWJ1Z1RlbnNvclZhbHVlLm51bU5hTnMpKCJudW1OZWdhdGl2ZUZpbml0ZXMiLHQuZGVidWdUZW5zb3JWYWx1ZS5udW1OZWdhdGl2ZUZpbml0ZXMpKCJudW1aZXJvcyIsdC5kZWJ1Z1RlbnNvclZhbHVlLm51bVplcm9zKSgibnVtUG9zaXRpdmVGaW5pdGVzIix0LmRlYnVnVGVuc29yVmFsdWUubnVtUG9zaXRpdmVGaW5pdGVzKX19Y29uc3QgJFg9IlxuICA6aG9zdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTVlODtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICAgIGhlaWdodDogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHBhZGRpbmc6IDFweCAzcHg7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICB9XG4iO2NsYXNzIHRLe310Sy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dEspfSx0Sy7JtWNtcD10byh7dHlwZTp0SyxzZWxlY3RvcnM6W1siZGVidWctdGVuc29yLWR0eXBlIl1dLGlucHV0czp7ZHR5cGU6ImR0eXBlIn0sZGVjbHM6MSx2YXJzOjEsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYma3UoMCksMiZlJiZEdSgiICIsbi5kdHlwZSwiICIpfSxzdHlsZXM6W0ZYXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodEssW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiZGVidWctdGVuc29yLWR0eXBlIix0ZW1wbGF0ZToiIHt7IGR0eXBlIH19ICIsc3R5bGVzOlskWF19XX1dLG51bGwse2R0eXBlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgZUt7fWVLLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlSyl9LGVLLsm1Y21wPXRvKHt0eXBlOmVLLHNlbGVjdG9yczpbWyJkZWJ1Zy10ZW5zb3ItcmFuayJdXSxpbnB1dHM6e3Jhbms6InJhbmsifSxkZWNsczoxLHZhcnM6MSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZrdSgwKSwyJmUmJkR1KCIgIixuLnJhbmssIkQgIil9LHN0eWxlczpbRlhdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChlSyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJkZWJ1Zy10ZW5zb3ItcmFuayIsdGVtcGxhdGU6IiB7eyByYW5rIH19RCAiLHN0eWxlczpbJFhdfV19XSxudWxsLHtyYW5rOlt7dHlwZTp4eX1dfSk7Y2xhc3Mgbkt7Z2V0IHNoYXBlU3RyaW5nKCl7cmV0dXJuIlsiK3RoaXMuc2hhcGUubWFwKCh0PT52b2lkIDA9PT10PyI/IjpTdHJpbmcodCkpKS5qb2luKCIsIikrIl0ifX1uSy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bkspfSxuSy7JtWNtcD10byh7dHlwZTpuSyxzZWxlY3RvcnM6W1siZGVidWctdGVuc29yLXNoYXBlIl1dLGlucHV0czp7c2hhcGU6InNoYXBlIn0sZGVjbHM6MSx2YXJzOjEsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYma3UoMCksMiZlJiZEdSgiIHNoYXBlOiIsbi5zaGFwZVN0cmluZywiICIpfSxzdHlsZXM6W0ZYXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobkssW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiZGVidWctdGVuc29yLXNoYXBlIix0ZW1wbGF0ZToiIHNoYXBlOnt7IHNoYXBlU3RyaW5nIH19ICIsc3R5bGVzOlskWF19XX1dLG51bGwse3NoYXBlOlt7dHlwZTp4eX1dfSk7Y2xhc3Mgb0t7Z2V0IGJyZWFrZG93bkV4aXN0cygpe3JldHVybiB2b2lkIDAhPT10aGlzLm51bU5hTnN8fHZvaWQgMCE9PXRoaXMubnVtTmVnYXRpdmVJbmZzfHx2b2lkIDAhPT10aGlzLm51bVBvc2l0aXZlSW5mc3x8dm9pZCAwIT09dGhpcy5udW1OZWdhdGl2ZUZpbml0ZXN8fHZvaWQgMCE9PXRoaXMubnVtWmVyb3N8fHZvaWQgMCE9PXRoaXMubnVtUG9zaXRpdmVGaW5pdGVzfX1vSy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b0spfSxvSy7JtWNtcD10byh7dHlwZTpvSyxzZWxlY3RvcnM6W1siZGVidWctdGVuc29yLW51bWVyaWMtYnJlYWtkb3duIl1dLGlucHV0czp7c2l6ZToic2l6ZSIsbnVtTmFOczoibnVtTmFOcyIsbnVtTmVnYXRpdmVJbmZzOiJudW1OZWdhdGl2ZUluZnMiLG51bVBvc2l0aXZlSW5mczoibnVtUG9zaXRpdmVJbmZzIixudW1OZWdhdGl2ZUZpbml0ZXM6Im51bU5lZ2F0aXZlRmluaXRlcyIsbnVtWmVyb3M6Im51bVplcm9zIixudW1Qb3NpdGl2ZUZpbml0ZXM6Im51bVBvc2l0aXZlRmluaXRlcyJ9LGRlY2xzOjcsdmFyczozLGNvbnN0czpbWzEsInNpemUiXSxbMSwic2l6ZS12YWx1ZSJdLFsiY2xhc3MiLCJicmVhayIsNCwibmdJZiJdLFsiY2xhc3MiLCJicmVha2Rvd24iLDQsIm5nSWYiXSxbMSwiYnJlYWsiXSxbMSwiYnJlYWtkb3duIl0sWyJjbGFzcyIsImNhdGVnb3J5Iiw0LCJuZ0lmIl0sWzEsImNhdGVnb3J5Il0sWzEsImNhdGVnb3J5LXRhZyIsImluZmluaXRlIl0sWzEsImNhdGVnb3J5LWNvdW50Il0sWzEsImNhdGVnb3J5LXRhZyIsImZpbml0ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJzcGFuIiksa3UoMiwic2l6ZToiKSxBbSgpLFJtKDMsInNwYW4iLDEpLGt1KDQpLEFtKCksQW0oKSxRcCg1LExYLDEsMCwiZGl2IiwyKSxRcCg2LFlYLDcsNiwiZGl2IiwzKSksMiZlJiYocmMoNCksU3Uobi5zaXplKSxyYygxKSxEbSgibmdJZiIsbi5icmVha2Rvd25FeGlzdHMpLHJjKDEpLERtKCJuZ0lmIixuLmJyZWFrZG93bkV4aXN0cykpfSxkaXJlY3RpdmVzOltkTV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlM2U1ZTg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICB9XG4gICAgICAuYnJlYWtbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICB9XG4gICAgICAuc2l6ZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTFweDtcbiAgICAgICAgbWFyZ2luOiAwIDNweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICAgIC5icmVha2Rvd25bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGhlaWdodDogMTFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDExcHg7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICAgIC5jYXRlZ29yeVtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgaGVpZ3RoOiAxMDAlO1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICB9XG4gICAgICAuY2F0ZWdvcnktdGFnW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICB9XG4gICAgICAuZmluaXRlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhYWE7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgfVxuICAgICAgLmluZmluaXRlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNTI1OTI7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvSyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJkZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd24iLHRlbXBsYXRlOidcbiAgICA8ZGl2IGNsYXNzPSJzaXplIj5cbiAgICAgIDxzcGFuPnNpemU6PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9InNpemUtdmFsdWUiPnt7IHNpemUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj0iYnJlYWtkb3duRXhpc3RzIiBjbGFzcz0iYnJlYWsiPjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9ImJyZWFrZG93bkV4aXN0cyIgY2xhc3M9ImJyZWFrZG93biI+XG4gICAgICA8ZGl2ICpuZ0lmPSJudW1OYU5zICE9PSB1bmRlZmluZWQgJiYgbnVtTmFOcyA+IDAiIGNsYXNzPSJjYXRlZ29yeSI+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS10YWcgaW5maW5pdGUiPk5hTjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LWNvdW50Ij7Dl3t7IG51bU5hTnMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9Im51bU5lZ2F0aXZlSW5mcyAhPT0gdW5kZWZpbmVkICYmIG51bU5lZ2F0aXZlSW5mcyA+IDAiXG4gICAgICAgIGNsYXNzPSJjYXRlZ29yeSJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LXRhZyBpbmZpbml0ZSI+LeKInjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LWNvdW50Ij7Dl3t7IG51bU5lZ2F0aXZlSW5mcyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj0ibnVtUG9zaXRpdmVJbmZzICE9PSB1bmRlZmluZWQgJiYgbnVtUG9zaXRpdmVJbmZzID4gMCJcbiAgICAgICAgY2xhc3M9ImNhdGVnb3J5IlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktdGFnIGluZmluaXRlIj4r4oiePC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktY291bnQiPsOXe3sgbnVtUG9zaXRpdmVJbmZzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPSJudW1OZWdhdGl2ZUZpbml0ZXMgIT09IHVuZGVmaW5lZCAmJiBudW1OZWdhdGl2ZUZpbml0ZXMgPiAwIlxuICAgICAgICBjbGFzcz0iY2F0ZWdvcnkiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS10YWcgZmluaXRlIj4tPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktY291bnQiPsOXe3sgbnVtTmVnYXRpdmVGaW5pdGVzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPSJudW1aZXJvcyAhPT0gdW5kZWZpbmVkICYmIG51bVplcm9zID4gMCIgY2xhc3M9ImNhdGVnb3J5Ij5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LXRhZyBmaW5pdGUiPjA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS1jb3VudCI+w5d7eyBudW1aZXJvcyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj0ibnVtUG9zaXRpdmVGaW5pdGVzICE9PSB1bmRlZmluZWQgJiYgbnVtUG9zaXRpdmVGaW5pdGVzID4gMCJcbiAgICAgICAgY2xhc3M9ImNhdGVnb3J5IlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktdGFnIGZpbml0ZSI+Kzwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LWNvdW50Ij7Dl3t7IG51bVBvc2l0aXZlRmluaXRlcyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAnLHN0eWxlczpbIlxuICAgICAgOmhvc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlNWU4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nLCBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgfVxuICAgICAgLmJyZWFrIHtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICB9XG4gICAgICAuc2l6ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDExcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICAgICAgICBtYXJnaW46IDAgM3B4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgICAgLmJyZWFrZG93biB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBoZWlnaHQ6IDExcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICAgICAgICBwYWRkaW5nOiAycHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgICAuY2F0ZWdvcnkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgaGVpZ3RoOiAxMDAlO1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICB9XG4gICAgICAuY2F0ZWdvcnktdGFnIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDJweDtcbiAgICAgIH1cbiAgICAgIC5maW5pdGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWFhO1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIH1cbiAgICAgIC5pbmZpbml0ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNTI1OTI7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuICAgICJdfV19XSxudWxsLHtzaXplOlt7dHlwZTp4eX1dLG51bU5hTnM6W3t0eXBlOnh5fV0sbnVtTmVnYXRpdmVJbmZzOlt7dHlwZTp4eX1dLG51bVBvc2l0aXZlSW5mczpbe3R5cGU6eHl9XSxudW1OZWdhdGl2ZUZpbml0ZXM6W3t0eXBlOnh5fV0sbnVtWmVyb3M6W3t0eXBlOnh5fV0sbnVtUG9zaXRpdmVGaW5pdGVzOlt7dHlwZTp4eX1dfSk7Y2xhc3MgaUt7Z2V0IGluZm9TdHJpbmcoKXtyZXR1cm4gdGhpcy5oYXNJbmZPck5hTj8iSGFzIOKIni9OYU4iOiJObyDiiJ4vTmFOIn19aUsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGlLKX0saUsuybVjbXA9dG8oe3R5cGU6aUssc2VsZWN0b3JzOltbImRlYnVnLXRlbnNvci1oYXMtaW5mLW9yLW5hbiJdXSxpbnB1dHM6e2hhc0luZk9yTmFOOiJoYXNJbmZPck5hTiJ9LGRlY2xzOjIsdmFyczo0LGNvbnN0czpbWzMsIm5nQ2xhc3MiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksa3UoMSksQW0oKSksMiZlJiYoRG0oIm5nQ2xhc3MiLE1oKDIscVgsbi5oYXNJbmZPck5hTj8iaGFzLWluZi1vci1uYW4iOiIiKSkscmMoMSksRHUoIiAiLG4uaW5mb1N0cmluZywiICIpKX0sZGlyZWN0aXZlczpbYU1dLHN0eWxlczpbIi5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTVlODtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBjb2xvcjogIzY2NjY2NjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgcGFkZGluZzogMXB4IDNweDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgfVxuICAgICAgLmhhcy1pbmYtb3ItbmFuW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNTI1OTI7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChpSyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJkZWJ1Zy10ZW5zb3ItaGFzLWluZi1vci1uYW4iLHRlbXBsYXRlOiJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cIlsnY29udGFpbmVyJywgaGFzSW5mT3JOYU4gPyAnaGFzLWluZi1vci1uYW4nIDogJyddXCI+XG4gICAgICB7eyBpbmZvU3RyaW5nIH19XG4gICAgPC9kaXY+XG4gICIsc3R5bGVzOlsiXG4gICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTVlODtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBjb2xvcjogIzY2NjY2NjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgcGFkZGluZzogMXB4IDNweDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgfVxuICAgICAgLmhhcy1pbmYtb3ItbmFuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1MjU5MjtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgIl19XX1dLG51bGwse2hhc0luZk9yTmFOOlt7dHlwZTp4eX1dfSk7Y2xhc3MgYUt7fWFLLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxhSyl9LGFLLsm1Y21wPXRvKHt0eXBlOmFLLHNlbGVjdG9yczpbWyJkZWJ1Zy10ZW5zb3ItdmFsdWUiXV0saW5wdXRzOntkZWJ1Z1RlbnNvclZhbHVlOiJkZWJ1Z1RlbnNvclZhbHVlIn0sZGVjbHM6NSx2YXJzOjUsY29uc3RzOltbMywiZHR5cGUiLDQsIm5nSWYiXSxbMywicmFuayIsNCwibmdJZiJdLFszLCJzaGFwZSIsNCwibmdJZiJdLFszLCJoYXNJbmZPck5hTiIsNCwibmdJZiJdLFszLCJzaXplIiwibnVtTmVnYXRpdmVJbmZzIiwibnVtUG9zaXRpdmVJbmZzIiwibnVtTmFOcyIsIm51bU5lZ2F0aXZlRmluaXRlcyIsIm51bVplcm9zIiwibnVtUG9zaXRpdmVGaW5pdGVzIiw0LCJuZ0lmIl0sWzMsImR0eXBlIl0sWzMsInJhbmsiXSxbMywic2hhcGUiXSxbMywiaGFzSW5mT3JOYU4iXSxbMywic2l6ZSIsIm51bU5lZ2F0aXZlSW5mcyIsIm51bVBvc2l0aXZlSW5mcyIsIm51bU5hTnMiLCJudW1OZWdhdGl2ZUZpbml0ZXMiLCJudW1aZXJvcyIsIm51bVBvc2l0aXZlRmluaXRlcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUXAoMCxaWCwxLDEsImRlYnVnLXRlbnNvci1kdHlwZSIsMCksUXAoMSxYWCwxLDEsImRlYnVnLXRlbnNvci1yYW5rIiwxKSxRcCgyLEtYLDEsMSwiZGVidWctdGVuc29yLXNoYXBlIiwyKSxRcCgzLEpYLDEsMSwiZGVidWctdGVuc29yLWhhcy1pbmYtb3ItbmFuIiwzKSxRcCg0LFFYLDEsNywiZGVidWctdGVuc29yLW51bWVyaWMtYnJlYWtkb3duIiw0KSksMiZlJiYoRG0oIm5nSWYiLHZvaWQgMCE9PW4uZGVidWdUZW5zb3JWYWx1ZS5kdHlwZSkscmMoMSksRG0oIm5nSWYiLHZvaWQgMCE9PW4uZGVidWdUZW5zb3JWYWx1ZS5yYW5rKSxyYygxKSxEbSgibmdJZiIsdm9pZCAwIT09bi5kZWJ1Z1RlbnNvclZhbHVlLnNoYXBlKSxyYygxKSxEbSgibmdJZiIsdm9pZCAwIT09bi5kZWJ1Z1RlbnNvclZhbHVlLmhhc0luZk9yTmFOKSxyYygxKSxEbSgibmdJZiIsdm9pZCAwIT09bi5kZWJ1Z1RlbnNvclZhbHVlLnNpemUpKX0sZGlyZWN0aXZlczpbZE0sdEssZUssbkssaUssb0tdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICB9XG4gICAgICBkZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd25bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChhSyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJkZWJ1Zy10ZW5zb3ItdmFsdWUiLHRlbXBsYXRlOidcbiAgICA8ZGVidWctdGVuc29yLWR0eXBlXG4gICAgICAqbmdJZj0iZGVidWdUZW5zb3JWYWx1ZS5kdHlwZSAhPT0gdW5kZWZpbmVkIlxuICAgICAgW2R0eXBlXT0iZGVidWdUZW5zb3JWYWx1ZS5kdHlwZSJcbiAgICA+XG4gICAgPC9kZWJ1Zy10ZW5zb3ItZHR5cGU+XG4gICAgPGRlYnVnLXRlbnNvci1yYW5rXG4gICAgICAqbmdJZj0iZGVidWdUZW5zb3JWYWx1ZS5yYW5rICE9PSB1bmRlZmluZWQiXG4gICAgICBbcmFua109ImRlYnVnVGVuc29yVmFsdWUucmFuayJcbiAgICA+XG4gICAgPC9kZWJ1Zy10ZW5zb3ItcmFuaz5cbiAgICA8ZGVidWctdGVuc29yLXNoYXBlXG4gICAgICAqbmdJZj0iZGVidWdUZW5zb3JWYWx1ZS5zaGFwZSAhPT0gdW5kZWZpbmVkIlxuICAgICAgW3NoYXBlXT0iZGVidWdUZW5zb3JWYWx1ZS5zaGFwZSJcbiAgICA+XG4gICAgPC9kZWJ1Zy10ZW5zb3Itc2hhcGU+XG4gICAgPGRlYnVnLXRlbnNvci1oYXMtaW5mLW9yLW5hblxuICAgICAgKm5nSWY9ImRlYnVnVGVuc29yVmFsdWUuaGFzSW5mT3JOYU4gIT09IHVuZGVmaW5lZCJcbiAgICAgIFtoYXNJbmZPck5hTl09ImRlYnVnVGVuc29yVmFsdWUuaGFzSW5mT3JOYU4iXG4gICAgPlxuICAgIDwvZGVidWctdGVuc29yLWhhcy1pbmYtb3ItbmFuPlxuICAgIDxkZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd25cbiAgICAgICpuZ0lmPSJkZWJ1Z1RlbnNvclZhbHVlLnNpemUgIT09IHVuZGVmaW5lZCJcbiAgICAgIHNpemU9Int7IGRlYnVnVGVuc29yVmFsdWUuc2l6ZSB9fSJcbiAgICAgIFtudW1OZWdhdGl2ZUluZnNdPSJkZWJ1Z1RlbnNvclZhbHVlLm51bU5lZ2F0aXZlSW5mcyJcbiAgICAgIFtudW1Qb3NpdGl2ZUluZnNdPSJkZWJ1Z1RlbnNvclZhbHVlLm51bVBvc2l0aXZlSW5mcyJcbiAgICAgIFtudW1OYU5zXT0iZGVidWdUZW5zb3JWYWx1ZS5udW1OYU5zIlxuICAgICAgW251bU5lZ2F0aXZlRmluaXRlc109ImRlYnVnVGVuc29yVmFsdWUubnVtTmVnYXRpdmVGaW5pdGVzIlxuICAgICAgW251bVplcm9zXT0iZGVidWdUZW5zb3JWYWx1ZS5udW1aZXJvcyJcbiAgICAgIFtudW1Qb3NpdGl2ZUZpbml0ZXNdPSJkZWJ1Z1RlbnNvclZhbHVlLm51bVBvc2l0aXZlRmluaXRlcyJcbiAgICA+XG4gICAgPC9kZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd24+XG4gICcsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cbiAgICAgIGRlYnVnLXRlbnNvci1udW1lcmljLWJyZWFrZG93biB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICAiXX1dfV0sbnVsbCx7ZGVidWdUZW5zb3JWYWx1ZTpbe3R5cGU6eHl9XX0pO2NvbnN0IHJLPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3RlbnNvckRlYnVnTW9kZTp0LGFycmF5OmV9fTtmdW5jdGlvbiBzSyh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTIpLFJtKDEsImRpdiIsMTMpLGt1KDIpLEFtKCksUm0oMywiZGl2IiwxNCksVG0oNCwiZGVidWctdGVuc29yLXZhbHVlIiwxNSksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1lLmluZGV4LG89WW0oMyk7cmMoMiksRHUoIk91dHB1dCBzbG90ICIsbiwiOiIpLHJjKDIpLERtKCJkZWJ1Z1RlbnNvclZhbHVlIixvLnBhcnNlRGVidWdUZW5zb3JWYWx1ZSh2aCgyLHJLLG8udGVuc29yRGVidWdNb2RlLHQpKSl9fWZ1bmN0aW9uIGxLKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwxMCksUXAoMSxzSyw1LDUsImRpdiIsMTEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygxKSxEbSgibmdGb3JPZiIsdC5kZWJ1Z1RlbnNvclZhbHVlcyl9fWZ1bmN0aW9uIGNLKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiksUm0oMSwiZGl2IiksUm0oMiwiZGl2IiwzKSxSbSgzLCJzcGFuIiw0KSxrdSg0LCIgT3A6ICIpLEFtKCksUm0oNSwic3BhbiIsNSksa3UoNiksQW0oKSxBbSgpLFJtKDcsImRpdiIsMyksUm0oOCwic3BhbiIsNCksa3UoOSwiICMgb2YgaW5wdXQgdGVuc29yczogIiksQW0oKSxSbSgxMCwic3BhbiIsNiksa3UoMTEpLEFtKCksQW0oKSxSbSgxMiwiZGl2IiwzKSxSbSgxMywic3BhbiIsNCksa3UoMTQsIiAjIG9mIG91dHB1dCB0ZW5zb3JzOiAiKSxBbSgpLFJtKDE1LCJzcGFuIiw3KSxrdSgxNiksQW0oKSxSbSgxNywic3BhbiIsOCksa3UoMTgpLEFtKCksQW0oKSxRcCgxOSxsSywyLDEsImRpdiIsOSksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYyg2KSxEdSgiICIsdC5mb2N1c2VkRXhlY3V0aW9uRGF0YS5vcF90eXBlLCIgIikscmMoNSksRHUoIiAiLG51bGw9PXQuZm9jdXNlZEV4ZWN1dGlvbkRhdGEuaW5wdXRfdGVuc29yX2lkcz8wOnQuZm9jdXNlZEV4ZWN1dGlvbkRhdGEuaW5wdXRfdGVuc29yX2lkcy5sZW5ndGgsIiAiKSxyYyg1KSxEdSgiICIsbnVsbD09dC5mb2N1c2VkRXhlY3V0aW9uRGF0YS5vdXRwdXRfdGVuc29yX2lkcz8wOnQuZm9jdXNlZEV4ZWN1dGlvbkRhdGEub3V0cHV0X3RlbnNvcl9pZHMubGVuZ3RoLCIgIikscmMoMiksRHUoIiAoZGVidWcgbW9kZTogIix0LlRlbnNvckRlYnVnTW9kZVt0LnRlbnNvckRlYnVnTW9kZV0sIikgIikscmMoMSksRG0oIm5nSWYiLHQuaGFzRGVidWdUZW5zb3JWYWx1ZXMpfX1mdW5jdGlvbiBkSyh0LGUpe31jbGFzcyBwS3tjb25zdHJ1Y3Rvcigpe3RoaXMudGVuc29yRGVidWdNb2RlPW1aLlVOU1BFQ0lGSUVELHRoaXMuaGFzRGVidWdUZW5zb3JWYWx1ZXM9ITEsdGhpcy5kZWJ1Z1RlbnNvclZhbHVlcz1udWxsLHRoaXMuZGVidWdUZW5zb3JEdHlwZXM9bnVsbCx0aGlzLlRlbnNvckRlYnVnTW9kZT1tWix0aGlzLnBhcnNlRGVidWdUZW5zb3JWYWx1ZT1IWH19cEsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBLKX0scEsuybVjbXA9dG8oe3R5cGU6cEssc2VsZWN0b3JzOltbImV4ZWN1dGlvbi1kYXRhLWNvbXBvbmVudCJdXSxpbnB1dHM6e2ZvY3VzZWRFeGVjdXRpb25JbmRleDoiZm9jdXNlZEV4ZWN1dGlvbkluZGV4Iixmb2N1c2VkRXhlY3V0aW9uRGF0YToiZm9jdXNlZEV4ZWN1dGlvbkRhdGEiLHRlbnNvckRlYnVnTW9kZToidGVuc29yRGVidWdNb2RlIixoYXNEZWJ1Z1RlbnNvclZhbHVlczoiaGFzRGVidWdUZW5zb3JWYWx1ZXMiLGRlYnVnVGVuc29yVmFsdWVzOiJkZWJ1Z1RlbnNvclZhbHVlcyIsZGVidWdUZW5zb3JEdHlwZXM6ImRlYnVnVGVuc29yRHR5cGVzIn0sZGVjbHM6Nyx2YXJzOjMsY29uc3RzOltbMSwiZm9jdXMtZXhlY3V0aW9uLWNvbnRhaW5lciJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImxvYWRpbmdfc2VjdGlvbiIsIiJdLFsxLCJleGVjdXRpb24tZGF0YS1maWVsZCJdLFsxLCJleGVjdXRpb24tZGF0YS1rZXkiXSxbMSwiZXhlY3V0aW9uLWRhdGEtdmFsdWUiLCJvcC10eXBlIl0sWzEsImV4ZWN1dGlvbi1kYXRhLXZhbHVlIiwiaW5wdXQtdGVuc29ycyJdLFsxLCJleGVjdXRpb24tZGF0YS12YWx1ZSIsIm91dHB1dC10ZW5zb3JzIl0sWzEsImV4ZWN1dGlvbi1kYXRhLXZhbHVlIl0sWyJjbGFzcyIsIm91dHB1dC1zbG90cyIsNCwibmdJZiJdLFsxLCJvdXRwdXQtc2xvdHMiXSxbImNsYXNzIiwib3V0cHV0LXNsb3QtY29udGFpbmVyIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwib3V0cHV0LXNsb3QtY29udGFpbmVyIl0sWzEsIm91dHB1dC1zbG90LW51bWJlciJdLFsxLCJvdXRwdXQtc2xvdC1kZWJ1Zy10ZW5zb3ItdmFsdWUiXSxbMywiZGVidWdUZW5zb3JWYWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiKSxSbSgyLCJzcGFuIiksa3UoMyksQW0oKSxBbSgpLFFwKDQsY0ssMjAsNSwiZGl2IiwxKSxRcCg1LGRLLDAsMCwibmctdGVtcGxhdGUiLG51bGwsMixpYiksQW0oKSksMiZlKXtjb25zdCB0PSRwKDYpO3JjKDMpLER1KCIgUHl0aG9uIEV4ZWN1dGlvbiAjIixuLmZvY3VzZWRFeGVjdXRpb25JbmRleCwiICIpLHJjKDEpLERtKCJuZ0lmIixudWxsIT09bi5mb2N1c2VkRXhlY3V0aW9uRGF0YSkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W2RNLGxNLGFLXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uZGVidWctdGVuc29yLXZhbHVlcy10YWJsZVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uZGVidWctdGVuc29yLXZhbHVlcy10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0ZFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgIzAwMDt0ZXh0LWFsaWduOmxlZnR9LmRlYnVnLXRlbnNvci12YWx1ZXMtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246bGVmdH0uZXhlY3V0aW9uLWRhdGEtZmllbGRbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcH0uZXhlY3V0aW9uLWRhdGEta2V5W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jazttYXgtd2lkdGg6MTIwcHg7dGV4dC1hbGlnbjpyaWdodDt3aWR0aDoxMjBweH0uZXhlY3V0aW9uLWRhdGEtdmFsdWVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OjEwcHh9LmZvY3VzLWV4ZWN1dGlvbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmY2M4MDtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6MTJweDtoZWlnaHQ6MTIwcHg7cGFkZGluZzo1cHg7d2lkdGg6MzYwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmZvY3VzLWV4ZWN1dGlvbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZm9jdXMtZXhlY3V0aW9uLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZTY1MTAwfS5vdXRwdXQtc2xvdHNbX25nY29udGVudC0lQ09NUCVde2hlaWdodDo2MHB4O292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmF1dG99Lm91dHB1dC1zbG90LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgI2ViZWJlYjttYXJnaW4tdG9wOjVweDtwYWRkaW5nOjJweCAwO3ZlcnRpY2FsLWFsaWduOnRvcH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3V0cHV0LXNsb3QtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm91dHB1dC1zbG90LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgIzU1NX0ub3V0cHV0LXNsb3QtbnVtYmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5OiJSb2JvdG8gTW9ubyIsbW9ub3NwYWNlfS5vdXRwdXQtc2xvdC1kZWJ1Zy10ZW5zb3ItdmFsdWVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjNweCAwIDNweCAzMHB4fS5vdXRwdXQtdGVuc29yc1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDo1cHh9J119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHBLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImV4ZWN1dGlvbi1kYXRhLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vZXhlY3V0aW9uX2RhdGFfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vZXhlY3V0aW9uX2RhdGFfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLHtmb2N1c2VkRXhlY3V0aW9uSW5kZXg6W3t0eXBlOnh5fV0sZm9jdXNlZEV4ZWN1dGlvbkRhdGE6W3t0eXBlOnh5fV0sdGVuc29yRGVidWdNb2RlOlt7dHlwZTp4eX1dLGhhc0RlYnVnVGVuc29yVmFsdWVzOlt7dHlwZTp4eX1dLGRlYnVnVGVuc29yVmFsdWVzOlt7dHlwZTp4eX1dLGRlYnVnVGVuc29yRHR5cGVzOlt7dHlwZTp4eX1dfSk7Y29uc3QgbUs9IlVua25vd24gZHR5cGUiO2NsYXNzIHVLe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmZvY3VzZWRFeGVjdXRpb25EYXRhJD10aGlzLnN0b3JlLnBpcGUoRncobVgpKSx0aGlzLnRlbnNvckRlYnVnTW9kZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KG1YLCh0PT5udWxsPT09dD9tWi5VTlNQRUNJRklFRDp0LnRlbnNvcl9kZWJ1Z19tb2RlKSkpKSx0aGlzLmhhc0RlYnVnVGVuc29yVmFsdWVzJD10aGlzLnN0b3JlLnBpcGUoRncoWncobVgsKHQ9PntpZihudWxsPT09dHx8bnVsbD09PXQuZGVidWdfdGVuc29yX3ZhbHVlcylyZXR1cm4hMTtmb3IoY29uc3QgZSBvZiB0LmRlYnVnX3RlbnNvcl92YWx1ZXMpaWYobnVsbCE9PWUmJmUubGVuZ3RoPjApcmV0dXJuITA7cmV0dXJuITF9KSkpKSx0aGlzLmRlYnVnVGVuc29yVmFsdWVzJD10aGlzLnN0b3JlLnBpcGUoRncoWncobVgsKHQ9Pm51bGw9PT10P251bGw6dC5kZWJ1Z190ZW5zb3JfdmFsdWVzKSkpKSx0aGlzLmRlYnVnVGVuc29yRHR5cGVzJD10aGlzLnN0b3JlLnBpcGUoRncoWncobVgsKHQ9PntpZihudWxsPT09dHx8bnVsbD09PXQuZGVidWdfdGVuc29yX3ZhbHVlcylyZXR1cm4gbnVsbDtpZih0LnRlbnNvcl9kZWJ1Z19tb2RlIT09bVouRlVMTF9IRUFMVEgmJnQudGVuc29yX2RlYnVnX21vZGUhPT1tWi5TSEFQRSlyZXR1cm4gbnVsbDtjb25zdCBlPVtdO2Zvcihjb25zdCBuIG9mIHQuZGVidWdfdGVuc29yX3ZhbHVlcylpZihudWxsPT09billLnB1c2gobUspO2Vsc2V7Y29uc3Qgbz1TdHJpbmcodC50ZW5zb3JfZGVidWdfbW9kZT09PW1aLkZVTExfSEVBTFRIP25bMl06blsxXSk7ZS5wdXNoKElYW29dfHxtSyl9cmV0dXJuIGV9KSkpKX19ZnVuY3Rpb24gZksodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJtYXQtc2xpZGVyIiwxMSksVm0oImlucHV0IiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25TbGlkZXJDaGFuZ2UuZW1pdChuLnZhbHVlKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgibWluIiwwKSgibWF4Iix0LnNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0KSgidmFsdWUiLHQuc2Nyb2xsQmVnaW5JbmRleCl9fWZ1bmN0aW9uIGdLKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2Iiw2KSxSbSgxLCJidXR0b24iLDcpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vbk5hdmlnYXRlTGVmdC5lbWl0KCl9KSksa3UoMiwiIDwgIiksQW0oKSxSbSgzLCJkaXYiLDgpLGt1KDQpLEFtKCksUm0oNSwiYnV0dG9uIiw5KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkub25OYXZpZ2F0ZVJpZ2h0LmVtaXQoKX0pKSxrdSg2LCIgPiAiKSxBbSgpLFFwKDcsZkssMSwzLCJtYXQtc2xpZGVyIiwxMCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtyYyg0KSxSdSgiICIsdC5zY3JvbGxCZWdpbkluZGV4LCIgfiAiLHQuc2Nyb2xsQmVnaW5JbmRleCt0LmRpc3BsYXlDb3VudC0xLCIgb2YgIix0Lm51bUV4ZWN1dGlvbnMsIiAiKSxyYygzKSxEbSgibmdJZiIsdC5zY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdD4wKX19dUsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHVLKShTbShJdykpfSx1Sy7JtWNtcD10byh7dHlwZTp1SyxzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItZXhlY3V0aW9uLWRhdGEiXV0saW5wdXRzOntmb2N1c2VkRXhlY3V0aW9uSW5kZXg6ImZvY3VzZWRFeGVjdXRpb25JbmRleCJ9LGRlY2xzOjYsdmFyczoxNixjb25zdHM6W1szLCJmb2N1c2VkRXhlY3V0aW9uSW5kZXgiLCJmb2N1c2VkRXhlY3V0aW9uRGF0YSIsInRlbnNvckRlYnVnTW9kZSIsImhhc0RlYnVnVGVuc29yVmFsdWVzIiwiZGVidWdUZW5zb3JWYWx1ZXMiLCJkZWJ1Z1RlbnNvckR0eXBlcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwiZXhlY3V0aW9uLWRhdGEtY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBaCg0LCJhc3luYyIpLEFoKDUsImFzeW5jIikpLDImZSYmRG0oImZvY3VzZWRFeGVjdXRpb25JbmRleCIsbi5mb2N1c2VkRXhlY3V0aW9uSW5kZXgpKCJmb2N1c2VkRXhlY3V0aW9uRGF0YSIsVGgoMSw2LG4uZm9jdXNlZEV4ZWN1dGlvbkRhdGEkKSkoInRlbnNvckRlYnVnTW9kZSIsVGgoMiw4LG4udGVuc29yRGVidWdNb2RlJCkpKCJoYXNEZWJ1Z1RlbnNvclZhbHVlcyIsVGgoMywxMCxuLmhhc0RlYnVnVGVuc29yVmFsdWVzJCkpKCJkZWJ1Z1RlbnNvclZhbHVlcyIsVGgoNCwxMixuLmRlYnVnVGVuc29yVmFsdWVzJCkpKCJkZWJ1Z1RlbnNvckR0eXBlcyIsVGgoNSwxNCxuLmRlYnVnVGVuc29yRHR5cGVzJCkpfSxkaXJlY3RpdmVzOltwS10scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHVLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLWV4ZWN1dGlvbi1kYXRhIix0ZW1wbGF0ZTonXG4gICAgPGV4ZWN1dGlvbi1kYXRhLWNvbXBvbmVudFxuICAgICAgW2ZvY3VzZWRFeGVjdXRpb25JbmRleF09ImZvY3VzZWRFeGVjdXRpb25JbmRleCJcbiAgICAgIFtmb2N1c2VkRXhlY3V0aW9uRGF0YV09ImZvY3VzZWRFeGVjdXRpb25EYXRhJCB8IGFzeW5jIlxuICAgICAgW3RlbnNvckRlYnVnTW9kZV09InRlbnNvckRlYnVnTW9kZSQgfCBhc3luYyJcbiAgICAgIFtoYXNEZWJ1Z1RlbnNvclZhbHVlc109Imhhc0RlYnVnVGVuc29yVmFsdWVzJCB8IGFzeW5jIlxuICAgICAgW2RlYnVnVGVuc29yVmFsdWVzXT0iZGVidWdUZW5zb3JWYWx1ZXMkIHwgYXN5bmMiXG4gICAgICBbZGVidWdUZW5zb3JEdHlwZXNdPSJkZWJ1Z1RlbnNvckR0eXBlcyQgfCBhc3luYyJcbiAgICA+PC9leGVjdXRpb24tZGF0YS1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSkse2ZvY3VzZWRFeGVjdXRpb25JbmRleDpbe3R5cGU6eHl9XX0pO2NvbnN0IGhLPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bdCxlLG5dfTtmdW5jdGlvbiBiSyh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMTQpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtjb25zdCBuPWhpKHQpLmluZGV4O3JldHVybiBZbSgyKS5vbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQuZW1pdChuKX0pKSxSbSgxLCJkaXYiLDE1KSxrdSgyKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49ZS5pbmRleCxvPVltKDIpO3JjKDEpLEttKCJ0aXRsZSIsdC5vcF90eXBlKSxEbSgibmdDbGFzcyIseGgoMyxoSyx0LmlzX2dyYXBoPyJmdW5jLWdyYXBoLWV4ZWN1dGlvbiI6IiIsbj09PW8uZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleD8iZm9jdXNlZCI6IiIsby5kaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXNbbl18fCIiKSkscmMoMSksRHUoIiAiLHQuc2hvcnRfb3BfdHlwZSwiICIpfX1mdW5jdGlvbiB5Syh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTIpLFFwKDEsYkssMyw3LCJkaXYiLDEzKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEbSgibmdGb3JPZiIsdC5kaXNwbGF5RXhlY3V0aW9uRGlnZXN0cyl9fWZ1bmN0aW9uIF9LKHQsZSl7aWYoMSZ0JiYoTm0oMCksVG0oMSwidGYtZGVidWdnZXItdjItZXhlY3V0aW9uLWRhdGEiLDE2KSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEbSgiZm9jdXNlZEV4ZWN1dGlvbkluZGV4Iix0LmZvY3VzZWRFeGVjdXRpb25JbmRleCl9fWNsYXNzIENLe2NvbnN0cnVjdG9yKCl7dGhpcy5hY3RpdmVSdW5JZD1udWxsLHRoaXMubG9hZGluZ051bUV4ZWN1dGlvbnM9ITEsdGhpcy5udW1FeGVjdXRpb25zPTAsdGhpcy5zY3JvbGxCZWdpbkluZGV4PTAsdGhpcy5zY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdD0wLHRoaXMucGFnZVNpemU9MCx0aGlzLmRpc3BsYXlDb3VudD0wLHRoaXMuZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHM9W10sdGhpcy5kaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXM9W10sdGhpcy5mb2N1c2VkRXhlY3V0aW9uSW5kZXg9bnVsbCx0aGlzLmZvY3VzZWRFeGVjdXRpb25EaXNwbGF5SW5kZXg9bnVsbCx0aGlzLmZvY3VzZWRFeGVjdXRpb25EYXRhPW51bGwsdGhpcy5vbk5hdmlnYXRlTGVmdD1uZXcgTGgsdGhpcy5vbk5hdmlnYXRlUmlnaHQ9bmV3IExoLHRoaXMub25FeGVjdXRpb25EaWdlc3RDbGlja2VkPW5ldyBMaCx0aGlzLm9uU2xpZGVyQ2hhbmdlPW5ldyBMaH19Q0suybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fENLKX0sQ0suybVjbXA9dG8oe3R5cGU6Q0ssc2VsZWN0b3JzOltbInRpbWVsaW5lLWNvbXBvbmVudCJdXSxpbnB1dHM6e2FjdGl2ZVJ1bklkOiJhY3RpdmVSdW5JZCIsbG9hZGluZ051bUV4ZWN1dGlvbnM6ImxvYWRpbmdOdW1FeGVjdXRpb25zIixudW1FeGVjdXRpb25zOiJudW1FeGVjdXRpb25zIixzY3JvbGxCZWdpbkluZGV4OiJzY3JvbGxCZWdpbkluZGV4IixzY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdDoic2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQiLHBhZ2VTaXplOiJwYWdlU2l6ZSIsZGlzcGxheUNvdW50OiJkaXNwbGF5Q291bnQiLGRpc3BsYXlFeGVjdXRpb25EaWdlc3RzOiJkaXNwbGF5RXhlY3V0aW9uRGlnZXN0cyIsZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzOiJkaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXMiLGZvY3VzZWRFeGVjdXRpb25JbmRleDoiZm9jdXNlZEV4ZWN1dGlvbkluZGV4Iixmb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4OiJmb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4Iixmb2N1c2VkRXhlY3V0aW9uRGF0YToiZm9jdXNlZEV4ZWN1dGlvbkRhdGEifSxvdXRwdXRzOntvbk5hdmlnYXRlTGVmdDoib25OYXZpZ2F0ZUxlZnQiLG9uTmF2aWdhdGVSaWdodDoib25OYXZpZ2F0ZVJpZ2h0IixvbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQ6Im9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZCIsb25TbGlkZXJDaGFuZ2U6Im9uU2xpZGVyQ2hhbmdlIn0sZGVjbHM6OSx2YXJzOjQsY29uc3RzOltbMSwidGltZWxpbmUtdGl0bGUiXSxbMSwiZXhlY3V0aW9uLWNvdW50Il0sWzEsInRvcC1sZXZlbC1leGVjdXRpb25zIl0sWyJjbGFzcyIsIm5hdmlnYXRpb24tc2VjdGlvbiIsNCwibmdJZiJdLFsiY2xhc3MiLCJleGVjdXRpb24tdGltZWxpbmUiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsxLCJuYXZpZ2F0aW9uLXNlY3Rpb24iXSxbIm1hdC1idXR0b24iLCIiLDEsIm5hdmlnYXRpb24tYnV0dG9uLWxlZnQiLDMsImNsaWNrIl0sWzEsIm5hdmlnYXRpb24tcG9zaXRpb24taW5mbyJdLFsibWF0LWJ1dHRvbiIsIiIsMSwibmF2aWdhdGlvbi1idXR0b24tcmlnaHQiLDMsImNsaWNrIl0sWyJjbGFzcyIsInRpbWVsaW5lLXNsaWRlciIsInN0ZXAiLCIxIiwzLCJtaW4iLCJtYXgiLCJ2YWx1ZSIsImlucHV0Iiw0LCJuZ0lmIl0sWyJzdGVwIiwiMSIsMSwidGltZWxpbmUtc2xpZGVyIiwzLCJtaW4iLCJtYXgiLCJ2YWx1ZSIsImlucHV0Il0sWzEsImV4ZWN1dGlvbi10aW1lbGluZSJdLFszLCJjbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsImNsaWNrIl0sWzEsImV4ZWN1dGlvbi1kaWdlc3QiLDMsIm5nQ2xhc3MiLCJ0aXRsZSJdLFszLCJmb2N1c2VkRXhlY3V0aW9uSW5kZXgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIpLFJtKDEsImRpdiIsMCksa3UoMiwiIFB5dGhvbiBFeGVjdXRpb24gVGltZWxpbmUgIiksUm0oMywic3BhbiIsMSksa3UoNCksQW0oKSxBbSgpLFJtKDUsImRpdiIsMiksUXAoNixnSyw4LDQsImRpdiIsMyksUXAoNyx5SywyLDEsImRpdiIsNCksUXAoOCxfSywyLDEsIm5nLWNvbnRhaW5lciIsNSksQW0oKSxBbSgpKSwyJmUmJihyYyg0KSxEdSgiICgiLG4ubnVtRXhlY3V0aW9ucywiKSAiKSxyYygyKSxEbSgibmdJZiIsbi5udW1FeGVjdXRpb25zKSxyYygxKSxEbSgibmdJZiIsbi5udW1FeGVjdXRpb25zKSxyYygxKSxEbSgibmdJZiIsbnVsbCE9PW4uYWN0aXZlUnVuSWQmJm51bGwhPT1uLmZvY3VzZWRFeGVjdXRpb25JbmRleCkpfSxkaXJlY3RpdmVzOltkTSxYSCxSWCxsTSxhTSx1S10sc3R5bGVzOlsiLmV4ZWN1dGlvbi1kaWdlc3RbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTVlODtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgY29sb3I6ICM0MjUwNjY7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxMHB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIHBhZGRpbmc6IDFweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMTJweDtcbn1cblxuLmV4ZWN1dGlvbi1kaWdlc3QuZnVuYy1ncmFwaC1leGVjdXRpb25bX25nY29udGVudC0lQ09NUCVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M3ZGJmNTtcbiAgY29sb3I6ICM0ZTU2NjQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uZXhlY3V0aW9uLWRpZ2VzdC5mb2N1c2VkW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ0YjM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZXhlY3V0aW9uLWRpZ2VzdC5JbmZOYW5BbGVydFtfbmdjb250ZW50LSVDT01QJV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTUyNTkyO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuXG4uZXhlY3V0aW9uLWRpZ2VzdFtfbmdjb250ZW50LSVDT01QJV06aG92ZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmV4ZWN1dGlvbi10aW1lbGluZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnRpbWVsaW5lLXNsaWRlcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogNDhweDtcbiAgbGVmdDogMzQwcHg7IFxuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA0MHB4O1xufVxuXG4gIC50aW1lbGluZS1zbGlkZXIgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHJpZ2h0OiAtNDBweDtcbiAgd2lkdGg6IDgwcHg7XG59XG5cblxuLm5hdmlnYXRpb24tcG9zaXRpb24taW5mb1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm5hdmlnYXRpb24tc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0ge1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAxMDAlO1xufSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChDSyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0aW1lbGluZS1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL3RpbWVsaW5lX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL3RpbWVsaW5lX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHthY3RpdmVSdW5JZDpbe3R5cGU6eHl9XSxsb2FkaW5nTnVtRXhlY3V0aW9uczpbe3R5cGU6eHl9XSxudW1FeGVjdXRpb25zOlt7dHlwZTp4eX1dLHNjcm9sbEJlZ2luSW5kZXg6W3t0eXBlOnh5fV0sc2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQ6W3t0eXBlOnh5fV0scGFnZVNpemU6W3t0eXBlOnh5fV0sZGlzcGxheUNvdW50Olt7dHlwZTp4eX1dLGRpc3BsYXlFeGVjdXRpb25EaWdlc3RzOlt7dHlwZTp4eX1dLGRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlczpbe3R5cGU6eHl9XSxmb2N1c2VkRXhlY3V0aW9uSW5kZXg6W3t0eXBlOnh5fV0sZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleDpbe3R5cGU6eHl9XSxmb2N1c2VkRXhlY3V0aW9uRGF0YTpbe3R5cGU6eHl9XSxvbk5hdmlnYXRlTGVmdDpbe3R5cGU6T3l9XSxvbk5hdmlnYXRlUmlnaHQ6W3t0eXBlOk95fV0sb25FeGVjdXRpb25EaWdlc3RDbGlja2VkOlt7dHlwZTpPeX1dLG9uU2xpZGVyQ2hhbmdlOlt7dHlwZTpPeX1dfSk7Y29uc3QgTUs9WyJfX2ZvcndhcmRfIiwiX19iYWNrd2FyZF8iLCJfX2luZmVyZW5jZV8iXTtjbGFzcyB2S3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hY3RpdmVSdW5JZCQ9dGhpcy5zdG9yZS5waXBlKEZ3KGtaKSksdGhpcy5sb2FkaW5nTnVtRXhlY3V0aW9ucyQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KEhaLCh0PT50LnN0YXRlPT15RS5MT0FESU5HKSkpKSx0aGlzLnNjcm9sbEJlZ2luSW5kZXgkPXRoaXMuc3RvcmUucGlwZShGdyhCWikpLHRoaXMuc2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQkPXRoaXMuc3RvcmUucGlwZShGdyhadyhMWixqWiwoKHQsZSk9Pk1hdGgubWF4KDAsdC1lKSkpKSksdGhpcy5wYWdlU2l6ZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KFZaKSksdGhpcy5kaXNwbGF5Q291bnQkPXRoaXMuc3RvcmUucGlwZShGdyhqWikpLHRoaXMuZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHMkPXRoaXMuc3RvcmUucGlwZShGdyhadyhVWiwodD0+dC5tYXAoKHQ9PihmdW5jdGlvbiBlKHQsbj0xKXtpZighdClyZXR1cm57b3BfdHlwZToiKE4vQSkiLHNob3J0X29wX3R5cGU6Ii4uIixpc19ncmFwaDohMX07Y29uc3Qgbz1NSy5maWx0ZXIoKGU9PnQub3BfdHlwZS5zdGFydHNXaXRoKGUpKSk7aWYoby5sZW5ndGgpe2NvbnN0IGU9dC5vcF90eXBlLnNsaWNlKG9bMF0ubGVuZ3RoKTtyZXR1cm57b3BfdHlwZTp0Lm9wX3R5cGUsc2hvcnRfb3BfdHlwZTplLnNsaWNlKDAsbiksaXNfZ3JhcGg6ITB9fXJldHVybntvcF90eXBlOnQub3BfdHlwZSxzaG9ydF9vcF90eXBlOnQub3BfdHlwZS5zbGljZSgwLG4pLGlzX2dyYXBoOiExfX0pKHQpKSkpKSkpLHRoaXMuZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzJD10aGlzLnN0b3JlLnBpcGUoRncoYVgpKSx0aGlzLmZvY3VzZWRFeGVjdXRpb25JbmRleCQ9dGhpcy5zdG9yZS5waXBlKEZ3KHNYKSksdGhpcy5mb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4JD10aGlzLnN0b3JlLnBpcGUoRncobFgpKSx0aGlzLm51bUV4ZWN1dGlvbnMkPXRoaXMuc3RvcmUucGlwZShGdyhMWikpfW9uTmF2aWdhdGVMZWZ0KCl7dGhpcy5zdG9yZS5kaXNwYXRjaChXcSgpKX1vbk5hdmlnYXRlUmlnaHQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFlxKCkpfW9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKFpxKHtkaXNwbGF5SW5kZXg6dH0pKX1vblNsaWRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKHFxKHtpbmRleDp0fSkpfX1mdW5jdGlvbiB4Syh0LGUpezEmdCYmKFJtKDAsInNwYW4iKSxrdSgxLCIgT3V0cHV0ICIpLEFtKCkpfWZ1bmN0aW9uIE9LKHQsZSl7MSZ0JiYoUm0oMCwic3BhbiIpLGt1KDEsIiBJbnB1dCAiKSxBbSgpKX1mdW5jdGlvbiBQSyh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNiksUm0oMSwic3BhbiIsNyksUXAoMix4SywyLDAsInNwYW4iLDgpLFFwKDMsT0ssMiwwLCJzcGFuIiw4KSxBbSgpLGt1KDQpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLERtKCJuZ1N3aXRjaCIsdC5raW5kKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIiwiaW5wdXQiKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIiwiY29uc3VtZXIiKSxyYygxKSxEdSgiIHNsb3Q6ICIsdC5zbG90LCIgIil9fWZ1bmN0aW9uIHdLKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiw5KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEdSgiICIsdC5vcERhdGEub3BfdHlwZSwiICIpfX1mdW5jdGlvbiBrSyh0LGUpezEmdCYmKFJtKDAsInNwYW4iLDEwKSxrdSgxLCIgKE9wIGluZm8gdW5hdmFpbGFibGUuKSAiKSxBbSgpKX12Sy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dkspKFNtKEl3KSl9LHZLLsm1Y21wPXRvKHt0eXBlOnZLLHNlbGVjdG9yczpbWyJ0Zi1kZWJ1Z2dlci12Mi10aW1lbGluZSJdXSxkZWNsczoxMix2YXJzOjMzLGNvbnN0czpbWzMsImFjdGl2ZVJ1bklkIiwibG9hZGluZ051bUV4ZWN1dGlvbnMiLCJudW1FeGVjdXRpb25zIiwic2Nyb2xsQmVnaW5JbmRleCIsInNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0IiwicGFnZVNpemUiLCJkaXNwbGF5Q291bnQiLCJkaXNwbGF5RXhlY3V0aW9uRGlnZXN0cyIsImRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlcyIsImZvY3VzZWRFeGVjdXRpb25JbmRleCIsImZvY3VzZWRFeGVjdXRpb25EaXNwbGF5SW5kZXgiLCJvbk5hdmlnYXRlTGVmdCIsIm9uTmF2aWdhdGVSaWdodCIsIm9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZCIsIm9uU2xpZGVyQ2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJ0aW1lbGluZS1jb21wb25lbnQiLDApLFZtKCJvbk5hdmlnYXRlTGVmdCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbk5hdmlnYXRlTGVmdCgpfSkpKCJvbk5hdmlnYXRlUmlnaHQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25OYXZpZ2F0ZVJpZ2h0KCl9KSkoIm9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25FeGVjdXRpb25EaWdlc3RDbGlja2VkKGUpfSkpKCJvblNsaWRlckNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TbGlkZXJDaGFuZ2UoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxBaCg4LCJhc3luYyIpLEFoKDksImFzeW5jIiksQWgoMTAsImFzeW5jIiksQWgoMTEsImFzeW5jIiksQW0oKSksMiZlJiZEbSgiYWN0aXZlUnVuSWQiLFRoKDEsMTEsbi5hY3RpdmVSdW5JZCQpKSgibG9hZGluZ051bUV4ZWN1dGlvbnMiLFRoKDIsMTMsbi5sb2FkaW5nTnVtRXhlY3V0aW9ucyQpKSgibnVtRXhlY3V0aW9ucyIsVGgoMywxNSxuLm51bUV4ZWN1dGlvbnMkKSkoInNjcm9sbEJlZ2luSW5kZXgiLFRoKDQsMTcsbi5zY3JvbGxCZWdpbkluZGV4JCkpKCJzY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdCIsVGgoNSwxOSxuLnNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0JCkpKCJwYWdlU2l6ZSIsVGgoNiwyMSxuLnBhZ2VTaXplJCkpKCJkaXNwbGF5Q291bnQiLFRoKDcsMjMsbi5kaXNwbGF5Q291bnQkKSkoImRpc3BsYXlFeGVjdXRpb25EaWdlc3RzIixUaCg4LDI1LG4uZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHMkKSkoImRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlcyIsVGgoOSwyNyxuLmRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlcyQpKSgiZm9jdXNlZEV4ZWN1dGlvbkluZGV4IixUaCgxMCwyOSxuLmZvY3VzZWRFeGVjdXRpb25JbmRleCQpKSgiZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleCIsVGgoMTEsMzEsbi5mb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4JCkpfSxkaXJlY3RpdmVzOltDS10scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHZLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLXRpbWVsaW5lIix0ZW1wbGF0ZTonXG4gICAgPHRpbWVsaW5lLWNvbXBvbmVudFxuICAgICAgW2FjdGl2ZVJ1bklkXT0iYWN0aXZlUnVuSWQkIHwgYXN5bmMiXG4gICAgICBbbG9hZGluZ051bUV4ZWN1dGlvbnNdPSJsb2FkaW5nTnVtRXhlY3V0aW9ucyQgfCBhc3luYyJcbiAgICAgIFtudW1FeGVjdXRpb25zXT0ibnVtRXhlY3V0aW9ucyQgfCBhc3luYyJcbiAgICAgIFtzY3JvbGxCZWdpbkluZGV4XT0ic2Nyb2xsQmVnaW5JbmRleCQgfCBhc3luYyJcbiAgICAgIFtzY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdF09InNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0JCB8IGFzeW5jIlxuICAgICAgW3BhZ2VTaXplXT0icGFnZVNpemUkIHwgYXN5bmMiXG4gICAgICBbZGlzcGxheUNvdW50XT0iZGlzcGxheUNvdW50JCB8IGFzeW5jIlxuICAgICAgW2Rpc3BsYXlFeGVjdXRpb25EaWdlc3RzXT0iZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHMkIHwgYXN5bmMiXG4gICAgICBbZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzXT0iZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzJCB8IGFzeW5jIlxuICAgICAgW2ZvY3VzZWRFeGVjdXRpb25JbmRleF09ImZvY3VzZWRFeGVjdXRpb25JbmRleCQgfCBhc3luYyJcbiAgICAgIFtmb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4XT0iZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleCQgfCBhc3luYyJcbiAgICAgIChvbk5hdmlnYXRlTGVmdCk9Im9uTmF2aWdhdGVMZWZ0KCkiXG4gICAgICAob25OYXZpZ2F0ZVJpZ2h0KT0ib25OYXZpZ2F0ZVJpZ2h0KCkiXG4gICAgICAob25FeGVjdXRpb25EaWdlc3RDbGlja2VkKT0ib25FeGVjdXRpb25EaWdlc3RDbGlja2VkKCRldmVudCkiXG4gICAgICAob25TbGlkZXJDaGFuZ2UpPSJvblNsaWRlckNoYW5nZSgkZXZlbnQpIlxuICAgID48L3RpbWVsaW5lLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IFNLPWZ1bmN0aW9uKHQpe3JldHVyblt0XX07Y2xhc3MgREt7Y29uc3RydWN0b3IoKXt0aGlzLm9uT3BOYW1lQ2xpY2s9bmV3IExofX1mdW5jdGlvbiBFSyh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMTMpLFJtKDEsImRpdiIsMTQpLGt1KDIpLEFtKCksUm0oMywiZ3JhcGgtb3AiLDE1KSxWbSgib25PcE5hbWVDbGljayIsKGZ1bmN0aW9uIGUobil7aGkodCk7Y29uc3Qgbz1ZbSgzKTtyZXR1cm4gby5vbkdyYXBoT3BOYXZpZ2F0ZS5lbWl0KHtvcF9uYW1lOm4ub3BfbmFtZSxncmFwaF9pZDpvLmdyYXBoSWR9KX0pKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49ZS5pbmRleDtyYygyKSxEdSgiSW5wdXQgc2xvdCAiLG4sIjoiKSxyYygxKSxEbSgia2luZCIsImlucHV0IikoIm9wTmFtZSIsdC5vcF9uYW1lKSgic2xvdCIsdC5vdXRwdXRfc2xvdCkoIm9wRGF0YSIsdC5kYXRhKX19ZnVuY3Rpb24gUksodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDExKSxSbSgxLCJkaXYiKSxRcCgyLEVLLDQsNSwiZGl2IiwxMiksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoMiksRG0oIm5nRm9yT2YiLHQuaW5wdXRPcHMpfX1mdW5jdGlvbiBBSyh0LGUpezEmdCYmKFJtKDAsImRpdiIsMTYpLGt1KDEsIiAoVGhpcyBvcCBoYXMgbm8gaW5wdXQgdGVuc29yLikgIiksQW0oKSl9ZnVuY3Rpb24gVEsodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDIzKSxSbSgxLCJncmFwaC1vcCIsMTUpLFZtKCJvbk9wTmFtZUNsaWNrIiwoZnVuY3Rpb24gZShuKXtoaSh0KTtjb25zdCBvPVltKDQpO3JldHVybiBvLm9uR3JhcGhPcE5hdmlnYXRlLmVtaXQoe29wX25hbWU6bi5vcF9uYW1lLGdyYXBoX2lkOm8uZ3JhcGhJZH0pfSkpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7cmMoMSksRG0oImtpbmQiLCJjb25zdW1lciIpKCJvcE5hbWUiLHQub3BfbmFtZSkoInNsb3QiLHQuaW5wdXRfc2xvdCkoIm9wRGF0YSIsdC5kYXRhKX19ZnVuY3Rpb24gTksodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDE5KSxSbSgxLCJkaXYiLDIwKSxrdSgyKSxSbSgzLCJzcGFuIiksdGcoNCwyMSksQW0oKSxrdSg1LCIpICIpLEFtKCksUXAoNixUSywyLDQsImRpdiIsMjIpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPWUuaW5kZXg7cmMoMiksRXUoIiBPdXRwdXQgc2xvdCAiLG4sIjogKCIsdC5sZW5ndGgsIiAiKSxyYygyKSxlZyh0Lmxlbmd0aCksbmcoNCkscmMoMiksRG0oIm5nRm9yT2YiLHQpfX1mdW5jdGlvbiB6Syh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTcpLFJtKDEsImRpdiIpLFFwKDIsTkssNyw0LCJkaXYiLDE4KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygyKSxEbSgibmdGb3JPZiIsdC5jb25zdW1lck9wcyl9fWZ1bmN0aW9uIElLKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwyNCksa3UoMSksUm0oMiwic3BhbiIpLHRnKDMsMjUpLEFtKCksa3UoNCwiIGFuZCBubyBjb25zdW1lci4pICIpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygxKSxEdSgiIChUaGlzIG9wIGhhcyAiLHQub3BJbmZvLmNvbnN1bWVycy5sZW5ndGgsIiBvdXRwdXQgIikscmMoMiksZWcodC5vcEluZm8uY29uc3VtZXJzLmxlbmd0aCksbmcoMyl9fWZ1bmN0aW9uIEhLKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiksUXAoMSxSSywzLDEsImRpdiIsNCksUXAoMixBSywyLDAsIm5nLXRlbXBsYXRlIixudWxsLDUsaWIpLFJtKDQsImRpdiIsNiksUm0oNSwiZGl2Iiw3KSxrdSg2LCJPcDoiKSxBbSgpLFJtKDcsImdyYXBoLW9wIiw4KSxWbSgib25PcE5hbWVDbGljayIsKGZ1bmN0aW9uIGUobil7aGkodCk7Y29uc3Qgbz1ZbSgpO3JldHVybiBvLm9uR3JhcGhPcE5hdmlnYXRlLmVtaXQoe29wX25hbWU6bi5vcF9uYW1lLGdyYXBoX2lkOm8uZ3JhcGhJZH0pfSkpLEFtKCksQW0oKSxRcCg4LHpLLDMsMSwiZGl2Iiw5KSxRcCg5LElLLDUsMiwibmctdGVtcGxhdGUiLG51bGwsMTAsaWIpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PSRwKDMpLGU9JHAoMTApLG49WW0oKTtyYygxKSxEbSgibmdJZiIsbi5pbnB1dE9wcy5sZW5ndGg+MCkoIm5nSWZFbHNlIix0KSxyYyg2KSxEbSgia2luZCIsInNlbGYiKSgib3BOYW1lIixuLm9wSW5mby5vcF9uYW1lKSgib3BEYXRhIixuLm9wSW5mbykscmMoMSksRG0oIm5nSWYiLG4udG90YWxOdW1Db25zdW1lcnM+MCkoIm5nSWZFbHNlIixlKX19ZnVuY3Rpb24gRksodCxlKXsxJnQmJihSbSgwLCJzcGFuIiwyNiksa3UoMSwiIChPcCBpbmZvIHVuYXZhaWxhYmxlLikgIiksQW0oKSl9ZnVuY3Rpb24gTEsodCxlKXsxJnQmJihSbSgwLCJkaXYiLDI3KSxrdSgxLCIgTm8gZ3JhcGggb3Agc2VsZWN0ZWQuIENsaWNrIGEgdGVuc29yIG5hbWUgaW4gdGhlIEdyYXBoIEV4ZWN1dGlvbnMgdGFibGUgdG8gdmlldyB0aGUgbmVpZ2hib3Job29kIG9mIHRoZSB0ZW5zb3IncyBvcCBpbiBpdHMgZ3JhcGguICIpLEFtKCkpfURLLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxESyl9LERLLsm1Y21wPXRvKHt0eXBlOkRLLHNlbGVjdG9yczpbWyJncmFwaC1vcCJdXSxpbnB1dHM6e2tpbmQ6ImtpbmQiLG9wTmFtZToib3BOYW1lIixzbG90OiJzbG90IixvcERhdGE6Im9wRGF0YSJ9LG91dHB1dHM6e29uT3BOYW1lQ2xpY2s6Im9uT3BOYW1lQ2xpY2sifSxkZWNsczo5LHZhcnM6Nyxjb25zdHM6W1sxLCJvcC1jb250YWluZXIiXSxbMSwiaW5wdXQtdGVuc29yLW5hbWUiXSxbMSwib3AtbmFtZSIsMywibmdDbGFzcyIsImNsaWNrIl0sWyJjbGFzcyIsInNsb3QiLDQsIm5nSWYiXSxbImNsYXNzIiwib3AtdHlwZSIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJvcEluZm9NaXNzaW5nIiwiIl0sWzEsInNsb3QiXSxbMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzEsIm9wLXR5cGUiXSxbMSwib3AtaW5mby1taXNzaW5nIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJidXR0b24iLDApLFJtKDEsImRpdiIsMSksUm0oMiwiYnV0dG9uIiwyKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25PcE5hbWVDbGljay5lbWl0KHtvcF9uYW1lOm4ub3BOYW1lfSl9KSksUm0oMywic3BhbiIpLGt1KDQpLEFtKCksQW0oKSxRcCg1LFBLLDUsNCwiZGl2IiwzKSxBbSgpLFFwKDYsd0ssMiwxLCJkaXYiLDQpLFFwKDcsa0ssMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw1LGliKSxBbSgpKSwyJmUpe2NvbnN0IHQ9JHAoOCk7cmMoMiksRG0oIm5nQ2xhc3MiLE1oKDUsU0ssInNlbGYiPT09bi5raW5kPyJzZWxmLW9wLW5hbWUiOiIiKSkscmMoMiksU3Uobi5vcE5hbWUpLHJjKDEpLERtKCJuZ0lmIiwic2VsZiIhPT1uLmtpbmQpLHJjKDEpLERtKCJuZ0lmIix2b2lkIDAhPT1uLm9wRGF0YSkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W2FNLGRNLGZNLGdNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ub3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm9wLW5hbWVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoycHggc29saWQgI2ViZWJlYjtib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93OjFweCAzcHggI2VlZTtjdXJzb3I6cG9pbnRlcjttYXJnaW46MCA1cHggMCAwO3BhZGRpbmc6MnB4IDZweDt0ZXh0LWFsaWduOnJpZ2h0O3dpZHRoOjIwMHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAub3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MnB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9wLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MXB4IDNweCAjNzU3NTc1fS5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3Vze291dGxpbmU6MH0ub3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3Zlcntib3JkZXI6MnB4IHNvbGlkICNmZmQzYjJ9Lm9wLWluZm8tbWlzc2luZ1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6Z3JheX0ub3AtbmFtZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTtwYWRkaW5nOjA7dGV4dC1hbGlnbjpyaWdodDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3doaXRlLXNwYWNlOnByZS13cmFwfS5vcC1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1c3tvdXRsaW5lOjB9Lm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2VjZWZmMTtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1mYW1pbHk6IlJvYm90byBNb25vIixtb25vc3BhY2U7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjE0cHg7bGluZS1oZWlnaHQ6MTRweDtwYWRkaW5nOjFweCAzcHg7d2lkdGg6bWF4LWNvbnRlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDozcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzQ1NWE2NH0uc2VsZi1vcC1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpib2xkO3RleHQtZGVjb3JhdGlvbjpub25lfS5zbG90W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zbG90W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnNsb3RbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChESyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJncmFwaC1vcCIsdGVtcGxhdGVVcmw6ImdyYXBoX29wX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2dyYXBoX29wX2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCx7a2luZDpbe3R5cGU6eHl9XSxvcE5hbWU6W3t0eXBlOnh5fV0sc2xvdDpbe3R5cGU6eHl9XSxvcERhdGE6W3t0eXBlOnh5fV0sb25PcE5hbWVDbGljazpbe3R5cGU6T3l9XX0pO2NsYXNzIEJLe2NvbnN0cnVjdG9yKCl7dGhpcy5vbkdyYXBoT3BOYXZpZ2F0ZT1uZXcgTGh9Z2V0IGdyYXBoSWQoKXtyZXR1cm4gdGhpcy5vcEluZm8uZ3JhcGhfaWRzW3RoaXMub3BJbmZvLmdyYXBoX2lkcy5sZW5ndGgtMV19Z2V0IHRvdGFsTnVtQ29uc3VtZXJzKCl7cmV0dXJuIHRoaXMuY29uc3VtZXJPcHMucmVkdWNlKCgodCxlKT0+dCtlLmxlbmd0aCksMCl9fUJLLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCSyl9LEJLLsm1Y21wPXRvKHt0eXBlOkJLLHNlbGVjdG9yczpbWyJncmFwaC1jb21wb25lbnQiXV0saW5wdXRzOntvcEluZm86Im9wSW5mbyIsaW5wdXRPcHM6ImlucHV0T3BzIixjb25zdW1lck9wczoiY29uc3VtZXJPcHMifSxvdXRwdXRzOntvbkdyYXBoT3BOYXZpZ2F0ZToib25HcmFwaE9wTmF2aWdhdGUifSxkZWNsczo5LHZhcnM6Mixjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdCxlLG4sbztyZXR1cm4gdD0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygie1ZBUl9QTFVSQUwsIHBsdXJhbCwgPTAge2NvbnN1bWVyfSA9MSB7Y29uc3VtZXJ9IG90aGVyIHtjb25zdW1lcnN9fSIpOiRsb2NhbGl6ZWA64pCfZmU1NWY5YjE5M2VhMjBhYWU1YjU2MzVlNjhkOTM4NjUwMzg0Nzc0NuKQnzQ5NTUxMzM3NDA4NDEyOTk4NTE6e1ZBUl9QTFVSQUwsIHBsdXJhbCwgPTAge2NvbnN1bWVyfSA9MSB7Y29uc3VtZXJ9IG90aGVyIHtjb25zdW1lcnN9fWAsdD1vZyh0LHtWQVJfUExVUkFMOiLvv70w77+9In0pLGU9InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIiB7JGljdX0iLHtpY3U6dH0pOiRsb2NhbGl6ZWA64pCfYmFhNDYwZTJmMmI4NTdlMjYyOTJiMjQ2ZmMxOGFlMGVhOWI1ZTUzN+KQnzU1NTYzNDAzNDM4NTAxNjU1MTY6ICR7dH06SUNVOmAsbj0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygie1ZBUl9QTFVSQUwsIHBsdXJhbCwgPTAge3RlbnNvcn0gPTEge3RlbnNvcn0gb3RoZXIge3RlbnNvcnN9fSIpOiRsb2NhbGl6ZWA64pCfNmFhNzVmNjI3ZTBkYzE2MTUwZWY0NDg0NjRlMGM4NTdhYWEwZGMxOOKQnzUxNTY3MTI5MzUxNTA1ODY4Nzg6e1ZBUl9QTFVSQUwsIHBsdXJhbCwgPTAge3RlbnNvcn0gPTEge3RlbnNvcn0gb3RoZXIge3RlbnNvcnN9fWAsbj1vZyhuLHtWQVJfUExVUkFMOiLvv70w77+9In0pLG89InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIiB7JGljdX0iLHtpY3U6bn0pOiRsb2NhbGl6ZWA64pCfODkzNDc2YzJjNDIxY2VlNDc2NjNjOTczMmZhNDFhNzUwZDNhNzNkZuKQnzI0NjA2NzA1MzczNTE2MjYzNDogJHtufTpJQ1U6YCxbWzEsImdyYXBoLXN0cnVjdHVyZS1jb250YWluZXIiXSxbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJvcEluZm9NaXNzaW5nIiwiIl0sWyJub09wRm9jdXNlZCIsIiJdLFsiY2xhc3MiLCJpbnB1dHMtY29udGFpbmVyIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vSW5wdXRzIiwiIl0sWzEsInNlbGYtb3AtY29udGFpbmVyIl0sWzEsInNlbGYtb3AtaGVhZGVyIl0sWzMsImtpbmQiLCJvcE5hbWUiLCJvcERhdGEiLCJvbk9wTmFtZUNsaWNrIl0sWyJjbGFzcyIsImNvbnN1bWVycy1jb250YWluZXIiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibm9Db25zdW1lcnMiLCIiXSxbMSwiaW5wdXRzLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJpbnB1dC1vcC1zZWN0aW9uIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiaW5wdXQtb3Atc2VjdGlvbiJdLFsxLCJpbnB1dC1zbG90LWhlYWRlciJdLFszLCJraW5kIiwib3BOYW1lIiwic2xvdCIsIm9wRGF0YSIsIm9uT3BOYW1lQ2xpY2siXSxbMSwiaW5wdXRzLWNvbnRhaW5lciIsIm5vLWlucHV0cy1pbmRpY2F0b3IiXSxbMSwiY29uc3VtZXJzLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJzbG90LWNvbnN1bWVycy1jb250YWluZXIiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJzbG90LWNvbnN1bWVycy1jb250YWluZXIiXSxbMSwic2xvdC1jb25zdW1lcnMtaGVhZGVyIl0sZSxbImNsYXNzIiwiY29uc3VtZXItc2VjdGlvbiIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnN1bWVyLXNlY3Rpb24iXSxbMSwib3AtY29uc3VtZXJzLWNvbnRhaW5lciJdLG8sWzEsIm9wLWluZm8tbWlzc2luZyJdLFsxLCJuby1vcC1mb2N1c2VkIl1dfSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUm0oMCwiZGl2IiksUm0oMSwiZGl2Iiksa3UoMiwiR3JhcGggU3RydWN0dXJlIiksQW0oKSxSbSgzLCJkaXYiLDApLFFwKDQsSEssMTEsNywiZGl2IiwxKSxBbSgpLFFwKDUsRkssMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLGliKSxRcCg3LExLLDIsMCwibmctdGVtcGxhdGUiLG51bGwsMyxpYiksQW0oKSksMiZlKXtjb25zdCB0PSRwKDgpO3JjKDQpLERtKCJuZ0lmIixudWxsIT1uLm9wSW5mbykoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W2RNLERLLGxNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde292ZXJmbG93LXk6YXV0b30uY29uc3VtZXJzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206NXB4O292ZXJmbG93LXg6YXV0bzt3aGl0ZS1zcGFjZTpub3dyYXB9LmNvbnN1bWVyLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjVweCAwfS5ncmFwaC1zdHJ1Y3R1cmUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtvdmVyZmxvdy15OmF1dG87d2hpdGUtc3BhY2U6bm93cmFwfS5pbnB1dHMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMik7bWFyZ2luLXRvcDo1cHg7b3ZlcmZsb3cteDphdXRvO3BhZGRpbmctYm90dG9tOjA7d2hpdGUtc3BhY2U6bm93cmFwfS5pbnB1dC1vcC1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyKTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6NXB4O3BhZGRpbmctYm90dG9tOjVweH0uaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjA5OTttYXJnaW4tYm90dG9tOjVweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2U2NTEwMH0uaW5wdXQtdGVuc29yLW5hbWVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwfS5uby1vcC1mb2N1c2VkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpncmF5O2ZvbnQtZmFtaWx5OiJSb2JvdG8iLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O3doaXRlLXNwYWNlOm5vcm1hbH0uc2VsZi1vcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luLWJvdHRvbTo1cHh9LnNlbGYtb3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMik7cGFkZGluZy1ib3R0b206NXB4fS5zbG90LWNvbnN1bWVycy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo1cHg7cGFkZGluZy10b3A6NXB4O3ZlcnRpY2FsLWFsaWduOnRvcH0uc2xvdC1jb25zdW1lcnMtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXB9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImdyYXBoLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vZ3JhcGhfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vZ3JhcGhfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse29wSW5mbzpbe3R5cGU6eHl9XSxpbnB1dE9wczpbe3R5cGU6eHl9XSxjb25zdW1lck9wczpbe3R5cGU6eHl9XSxvbkdyYXBoT3BOYXZpZ2F0ZTpbe3R5cGU6T3l9XX0pO2NsYXNzIFZLe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLm9wSW5mbyQ9dGhpcy5zdG9yZS5waXBlKEZ3KGVYKSksdGhpcy5pbnB1dE9wcyQ9dGhpcy5zdG9yZS5waXBlKEZ3KG5YKSksdGhpcy5jb25zdW1lck9wcyQ9dGhpcy5zdG9yZS5waXBlKEZ3KGlYKSl9b25HcmFwaE9wTmF2aWdhdGUodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChuWih0KSl9fWZ1bmN0aW9uIGpLKHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwxMiksa3UoMSwi4pa2IiksQW0oKSl9VksuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZLKShTbShJdykpfSxWSy7JtWNtcD10byh7dHlwZTpWSyxzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItZ3JhcGgiXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywib3BJbmZvIiwiaW5wdXRPcHMiLCJjb25zdW1lck9wcyIsIm9uR3JhcGhPcE5hdmlnYXRlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJncmFwaC1jb21wb25lbnQiLDApLFZtKCJvbkdyYXBoT3BOYXZpZ2F0ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25HcmFwaE9wTmF2aWdhdGUoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgib3BJbmZvIixUaCgxLDMsbi5vcEluZm8kKSkoImlucHV0T3BzIixUaCgyLDUsbi5pbnB1dE9wcyQpKSgiY29uc3VtZXJPcHMiLFRoKDMsNyxuLmNvbnN1bWVyT3BzJCkpfSxkaXJlY3RpdmVzOltCS10scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFZLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLWdyYXBoIix0ZW1wbGF0ZTonXG4gICAgPGdyYXBoLWNvbXBvbmVudFxuICAgICAgW29wSW5mb109Im9wSW5mbyQgfCBhc3luYyJcbiAgICAgIFtpbnB1dE9wc109ImlucHV0T3BzJCB8IGFzeW5jIlxuICAgICAgW2NvbnN1bWVyT3BzXT0iY29uc3VtZXJPcHMkIHwgYXN5bmMiXG4gICAgICAob25HcmFwaE9wTmF2aWdhdGUpPSJvbkdyYXBoT3BOYXZpZ2F0ZSgkZXZlbnQpIlxuICAgID48L2dyYXBoLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjb25zdCBVSz1mdW5jdGlvbih0LGUpe3JldHVybnt0ZW5zb3JEZWJ1Z01vZGU6dCxhcnJheTplfX07ZnVuY3Rpb24gR0sodCxlKXtpZigxJnQmJlRtKDAsImRlYnVnLXRlbnNvci12YWx1ZSIsMTcpLDImdCl7Y29uc3QgdD1ZbSgyKS4kaW1wbGljaXQsZT1ZbSgyKTtEbSgiZGVidWdUZW5zb3JWYWx1ZSIsZS5wYXJzZURlYnVnVGVuc29yVmFsdWUodmgoMSxVSyxlLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS50ZW5zb3JfZGVidWdfbW9kZSxlLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS5kZWJ1Z190ZW5zb3JfdmFsdWUpKSl9fWZ1bmN0aW9uIFdLKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiksUm0oMSwiZGl2IiwxMyksUm0oMiwiYnV0dG9uIiwxNCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe2hpKHQpO2NvbnN0IG49WW0oKS4kaW1wbGljaXQsbz1ZbSgyKTtyZXR1cm4gby5vblRlbnNvck5hbWVDbGljay5lbWl0KHtpbmRleDpuLGdyYXBoX2lkOm8uZ3JhcGhFeGVjdXRpb25EYXRhW25dLmdyYXBoX2lkLG9wX25hbWU6by5ncmFwaEV4ZWN1dGlvbkRhdGFbbl0ub3BfbmFtZX0pfSkpLGt1KDMpLEFtKCksUm0oNCwiZGl2IiwxNSksa3UoNSksQW0oKSxBbSgpLFFwKDYsR0ssMSw0LCJkZWJ1Zy10ZW5zb3ItdmFsdWUiLDE2KSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpLiRpbXBsaWNpdCxlPVltKDIpO3JjKDIpLEttKCJ0aXRsZSIsZS5nZXRUZW5zb3JOYW1lKHQpKSxyYygxKSxEdSgiICIsZS5nZXRUZW5zb3JOYW1lKHQpLCIgIikscmMoMiksU3UoZS5ncmFwaEV4ZWN1dGlvbkRhdGFbdF0ub3BfdHlwZSkscmMoMSksRG0oIm5nSWYiLG51bGwhPT1lLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS5kZWJ1Z190ZW5zb3JfdmFsdWUpfX1mdW5jdGlvbiBZSyh0LGUpezEmdCYmKFJtKDAsImRpdiIsMTgpLGt1KDEsIiBMb2FkaW5nLi4uICIpLEFtKCkpfWNvbnN0IHFLPWZ1bmN0aW9uKHQpe3JldHVybnsiaW5wdXQtb2YtZm9jdXMiOnR9fTtmdW5jdGlvbiBaSyh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNSksUm0oMSwiZGl2Iiw2KSxSbSgyLCJkaXYiLDcpLFFwKDMsakssMiwwLCJkaXYiLDgpLGt1KDQpLEFtKCksUXAoNSxXSyw3LDQsImRpdiIsOSksUXAoNixZSywyLDAsIm5nLXRlbXBsYXRlIiwxMCwxMSxpYiksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj0kcCg3KSxvPVltKDIpO3JjKDEpLERtKCJuZ0NsYXNzIixNaCg1LHFLLG8uaXNJbnB1dE9mRm9jdXModCkpKSxyYygyKSxEbSgibmdJZiIsdD09PW8uZm9jdXNJbmRleCkscmMoMSksRHUoIiAiLHQsIiAiKSxyYygxKSxEbSgibmdJZiIsby5ncmFwaEV4ZWN1dGlvbkRhdGFbdF0pKCJuZ0lmRWxzZSIsbil9fWZ1bmN0aW9uIFhLKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IiwzKSxWbSgic2Nyb2xsZWRJbmRleENoYW5nZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25TY3JvbGxlZEluZGV4Q2hhbmdlLmVtaXQobil9KSksUXAoMSxaSyw4LDcsImRpdiIsNCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEbSgiY2RrVmlydHVhbEZvck9mIix0LmdyYXBoRXhlY3V0aW9uSW5kaWNlcyl9fWNsYXNzIEtLe2NvbnN0cnVjdG9yKCl7dGhpcy5vblNjcm9sbGVkSW5kZXhDaGFuZ2U9bmV3IExoLHRoaXMub25UZW5zb3JOYW1lQ2xpY2s9bmV3IExoLHRoaXMucGFyc2VEZWJ1Z1RlbnNvclZhbHVlPUhYLHRoaXMuVEVTVF9PTkxZPXtnZXRWaWV3UG9ydDooKT0+dGhpcy52aWV3UG9ydH19bmdPbkNoYW5nZXModCl7aWYodGhpcy52aWV3UG9ydCYmdC5mb2N1c0luZGV4JiZudWxsIT09dC5mb2N1c0luZGV4LmN1cnJlbnRWYWx1ZSl7Y29uc3QgZT10aGlzLnZpZXdQb3J0LmdldFJlbmRlcmVkUmFuZ2UoKSxuPXQuZm9jdXNJbmRleC5jdXJyZW50VmFsdWUsbz1NYXRoLnJvdW5kKChlLmVuZC1lLnN0YXJ0KS8zKSxpPU1hdGgubWF4KG4tbywwKTt0aGlzLnZpZXdQb3J0LnNjcm9sbFRvSW5kZXgoaSxuPj1lLnN0YXJ0JiZuPGUuZW5kPyJzbW9vdGgiOnZvaWQgMCl9fWdldFRlbnNvck5hbWUodCl7cmV0dXJuYCR7dGhpcy5ncmFwaEV4ZWN1dGlvbkRhdGFbdF0ub3BfbmFtZX06JHt0aGlzLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS5vdXRwdXRfc2xvdH1gfWlzSW5wdXRPZkZvY3VzKHQpe3JldHVybiBudWxsIT09dGhpcy5mb2N1c0lucHV0SW5kaWNlcyYmdGhpcy5mb2N1c0lucHV0SW5kaWNlcy5pbmNsdWRlcyh0KX19S0suybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEtLKX0sS0suybVjbXA9dG8oe3R5cGU6S0ssc2VsZWN0b3JzOltbImdyYXBoLWV4ZWN1dGlvbnMtY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChnRiw1KSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLnZpZXdQb3J0PXQuZmlyc3QpfX0saW5wdXRzOntudW1HcmFwaEV4ZWN1dGlvbnM6Im51bUdyYXBoRXhlY3V0aW9ucyIsZ3JhcGhFeGVjdXRpb25EYXRhOiJncmFwaEV4ZWN1dGlvbkRhdGEiLGdyYXBoRXhlY3V0aW9uSW5kaWNlczoiZ3JhcGhFeGVjdXRpb25JbmRpY2VzIixmb2N1c0luZGV4OiJmb2N1c0luZGV4Iixmb2N1c0lucHV0SW5kaWNlczoiZm9jdXNJbnB1dEluZGljZXMifSxvdXRwdXRzOntvblNjcm9sbGVkSW5kZXhDaGFuZ2U6Im9uU2Nyb2xsZWRJbmRleENoYW5nZSIsb25UZW5zb3JOYW1lQ2xpY2s6Im9uVGVuc29yTmFtZUNsaWNrIn0sZmVhdHVyZXM6W0JvXSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1sxLCJncmFwaC1leGVjdXRpb25zLWNvbnRhaW5lciJdLFsxLCJncmFwaC1leGVjdXRpb25zLXRpdGxlIl0sWyJpdGVtU2l6ZSIsIjM4IiwiY2xhc3MiLCJncmFwaC1leGVjdXRpb25zLXZpZXdwb3J0IiwzLCJzY3JvbGxlZEluZGV4Q2hhbmdlIiw0LCJuZ0lmIl0sWyJpdGVtU2l6ZSIsIjM4IiwxLCJncmFwaC1leGVjdXRpb25zLXZpZXdwb3J0IiwzLCJzY3JvbGxlZEluZGV4Q2hhbmdlIl0sWyJjbGFzcyIsInRlbnNvci1jb250YWluZXIiLDQsImNka1ZpcnR1YWxGb3IiLCJjZGtWaXJ0dWFsRm9yT2YiXSxbMSwidGVuc29yLWNvbnRhaW5lciJdLFsxLCJ0ZW5zb3ItaXRlbSIsMywibmdDbGFzcyJdLFsxLCJncmFwaC1leGVjdXRpb24taW5kZXgiXSxbImNsYXNzIiwiZ3JhcGgtZXhlY3V0aW9uLWZvY3VzIiw0LCJuZ0lmIl0sWzQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsiY2xhc3MiLCJ0ZW5zb3ItaXRlbSJdLFsiZGF0YUxvYWRpbmciLCIiXSxbMSwiZ3JhcGgtZXhlY3V0aW9uLWZvY3VzIl0sWzEsInRlbnNvci1uYW1lLWFuZC1vcC10eXBlIl0sWzEsInRlbnNvci1uYW1lIiwzLCJ0aXRsZSIsImNsaWNrIl0sWzEsIm9wLXR5cGUiXSxbMywiZGVidWdUZW5zb3JWYWx1ZSIsNCwibmdJZiJdLFszLCJkZWJ1Z1RlbnNvclZhbHVlIl0sWzEsImxvYWRpbmctc3Bpbm5lciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiLDEpLGt1KDIpLEFtKCksUXAoMyxYSywyLDEsImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCIsMiksQW0oKSksMiZlJiYocmMoMiksRHUoIiBHcmFwaCBFeGVjdXRpb25zICgiLG4ubnVtR3JhcGhFeGVjdXRpb25zLCIpICIpLHJjKDEpLERtKCJuZ0lmIixudWxsIT09bi5udW1HcmFwaEV4ZWN1dGlvbnMmJm4ubnVtR3JhcGhFeGVjdXRpb25zPjApKX0sZGlyZWN0aXZlczpbZE0sZ0YsZEYsYkYsYU0sYUtdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5ncmFwaC1leGVjdXRpb25zLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTttYXJnaW4tbGVmdDo4cHg7cGFkZGluZy1sZWZ0OjEwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyYXBoLWV4ZWN1dGlvbnMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyYXBoLWV4ZWN1dGlvbnMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdDoxcHggc29saWQgIzU1NX0uZ3JhcGgtZXhlY3V0aW9uLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9ja30uZ3JhcGgtZXhlY3V0aW9uLWluZGV4W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctcmlnaHQ6NHB4O3RleHQtYWxpZ246cmlnaHQ7d2lkdGg6NDBweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JhcGgtZXhlY3V0aW9uLWluZGV4W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyYXBoLWV4ZWN1dGlvbi1pbmRleFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmdyYXBoLWV4ZWN1dGlvbnMtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MCA1cHggM3B4IC0zcHggI2NjYztwYWRkaW5nLWJvdHRvbTo1cHh9LmdyYXBoLWV4ZWN1dGlvbnMtdmlld3BvcnRbX25nY29udGVudC0lQ09NUCVde2ZsZXgtZ3JvdzoxO2ZvbnQtc2l6ZToxMnB4O3dpZHRoOjEwMCU7b3ZlcmZsb3cteDpoaWRkZW59LmlucHV0LW9mLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYwOTl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmlucHV0LW9mLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmlucHV0LW9mLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlNjUxMDB9LmxvYWRpbmctc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2VjZWZmMTtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1mYW1pbHk6IlJvYm90byBNb25vIixtb25vc3BhY2U7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjE0cHg7bGluZS1oZWlnaHQ6MTRweDtwYWRkaW5nOjFweCAzcHg7d2lkdGg6bWF4LWNvbnRlbnQ7ZGlyZWN0aW9uOnJ0bDtkaXNwbGF5OmJsb2NrfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTVhNjR9LnRlbnNvci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LnRlbnNvci1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwO2hlaWdodDozOHB4O2xpbmUtaGVpZ2h0OjM4cHg7dGV4dC1hbGlnbjpsZWZ0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MTAwJX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudGVuc29yLWl0ZW1bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudGVuc29yLWl0ZW1bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9LnRlbnNvci1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2N1cnNvcjpwb2ludGVyO2RpcmVjdGlvbjpydGw7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTZweDtsaW5lLWhlaWdodDoxNnB4O21hcmdpbjoycHggMCAxcHg7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDJweCk7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MCAycHg7dGV4dC1hbGlnbjpyaWdodDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS50ZW5zb3ItbmFtZVtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7b3V0bGluZToxcHggc29saWQgI2M2Y2FkMX0udGVuc29yLW5hbWUtYW5kLW9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2RpcmVjdGlvbjpydGw7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctcmlnaHQ6OHB4O3RleHQtYWxpZ246cmlnaHQ7d2lkdGg6MjQwcHh9ZGVidWctdGVuc29yLXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MnB4IDB9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEtLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImdyYXBoLWV4ZWN1dGlvbnMtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9ncmFwaF9leGVjdXRpb25zX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2dyYXBoX2V4ZWN1dGlvbnNfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse251bUdyYXBoRXhlY3V0aW9uczpbe3R5cGU6eHl9XSxncmFwaEV4ZWN1dGlvbkRhdGE6W3t0eXBlOnh5fV0sZ3JhcGhFeGVjdXRpb25JbmRpY2VzOlt7dHlwZTp4eX1dLGZvY3VzSW5kZXg6W3t0eXBlOnh5fV0sZm9jdXNJbnB1dEluZGljZXM6W3t0eXBlOnh5fV0sb25TY3JvbGxlZEluZGV4Q2hhbmdlOlt7dHlwZTpPeX1dLG9uVGVuc29yTmFtZUNsaWNrOlt7dHlwZTpPeX1dLHZpZXdQb3J0Olt7dHlwZTpaYSxhcmdzOltnRix7c3RhdGljOiExfV19XX0pO2NsYXNzIEpLe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLm51bUdyYXBoRXhlY3V0aW9ucyQ9dGhpcy5zdG9yZS5waXBlKEZ3KFlaKSksdGhpcy5ncmFwaEV4ZWN1dGlvbkRhdGEkPXRoaXMuc3RvcmUucGlwZShGdyhRWikpLHRoaXMuZ3JhcGhFeGVjdXRpb25JbmRpY2VzJD10aGlzLnN0b3JlLnBpcGUoRncoWncoWVosKHQ9PjA9PT10P251bGw6QXJyYXkuZnJvbSh7bGVuZ3RoOnR9KS5tYXAoKCh0LGUpPT5lKSkpKSkpLHRoaXMuZm9jdXNJbmRleCQ9dGhpcy5zdG9yZS5waXBlKEZ3KCRaKSksdGhpcy5mb2N1c0lucHV0SW5kaWNlcyQ9dGhpcy5zdG9yZS5waXBlKEZ3KG9YKSl9b25TY3JvbGxlZEluZGV4Q2hhbmdlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2godFooe2luZGV4OnR9KSl9b25UZW5zb3JOYW1lQ2xpY2sodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChlWih0KSl9fUpLLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxKSykoU20oSXcpKX0sSksuybVjbXA9dG8oe3R5cGU6Skssc2VsZWN0b3JzOltbInRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnMiXV0sZGVjbHM6Nix2YXJzOjE1LGNvbnN0czpbWzMsIm51bUdyYXBoRXhlY3V0aW9ucyIsImdyYXBoRXhlY3V0aW9uRGF0YSIsImdyYXBoRXhlY3V0aW9uSW5kaWNlcyIsImZvY3VzSW5kZXgiLCJmb2N1c0lucHV0SW5kaWNlcyIsIm9uU2Nyb2xsZWRJbmRleENoYW5nZSIsIm9uVGVuc29yTmFtZUNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJncmFwaC1leGVjdXRpb25zLWNvbXBvbmVudCIsMCksVm0oIm9uU2Nyb2xsZWRJbmRleENoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TY3JvbGxlZEluZGV4Q2hhbmdlKGUpfSkpKCJvblRlbnNvck5hbWVDbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25UZW5zb3JOYW1lQ2xpY2soZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFtKCkpLDImZSYmRG0oIm51bUdyYXBoRXhlY3V0aW9ucyIsVGgoMSw1LG4ubnVtR3JhcGhFeGVjdXRpb25zJCkpKCJncmFwaEV4ZWN1dGlvbkRhdGEiLFRoKDIsNyxuLmdyYXBoRXhlY3V0aW9uRGF0YSQpKSgiZ3JhcGhFeGVjdXRpb25JbmRpY2VzIixUaCgzLDksbi5ncmFwaEV4ZWN1dGlvbkluZGljZXMkKSkoImZvY3VzSW5kZXgiLFRoKDQsMTEsbi5mb2N1c0luZGV4JCkpKCJmb2N1c0lucHV0SW5kaWNlcyIsVGgoNSwxMyxuLmZvY3VzSW5wdXRJbmRpY2VzJCkpfSxkaXJlY3RpdmVzOltLS10scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEpLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnMiLHRlbXBsYXRlOidcbiAgICA8Z3JhcGgtZXhlY3V0aW9ucy1jb21wb25lbnRcbiAgICAgIFtudW1HcmFwaEV4ZWN1dGlvbnNdPSJudW1HcmFwaEV4ZWN1dGlvbnMkIHwgYXN5bmMiXG4gICAgICBbZ3JhcGhFeGVjdXRpb25EYXRhXT0iZ3JhcGhFeGVjdXRpb25EYXRhJCB8IGFzeW5jIlxuICAgICAgW2dyYXBoRXhlY3V0aW9uSW5kaWNlc109ImdyYXBoRXhlY3V0aW9uSW5kaWNlcyQgfCBhc3luYyJcbiAgICAgIFtmb2N1c0luZGV4XT0iZm9jdXNJbmRleCQgfCBhc3luYyJcbiAgICAgIFtmb2N1c0lucHV0SW5kaWNlc109ImZvY3VzSW5wdXRJbmRpY2VzJCB8IGFzeW5jIlxuICAgICAgKG9uU2Nyb2xsZWRJbmRleENoYW5nZSk9Im9uU2Nyb2xsZWRJbmRleENoYW5nZSgkZXZlbnQpIlxuICAgICAgKG9uVGVuc29yTmFtZUNsaWNrKT0ib25UZW5zb3JOYW1lQ2xpY2soJGV2ZW50KSJcbiAgICA+PC9ncmFwaC1leGVjdXRpb25zLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjb25zdCBRSz1mdW5jdGlvbiAkSygpe3JldHVybiB3aW5kb3d9O2Z1bmN0aW9uIHRKKHQpe2NvbnN0IGU9UUsoKS5yZXF1aXJlO3JldHVybiBuZXcgUHJvbWlzZSgobj0+e2UodCxuKX0pKX1mdW5jdGlvbiBlSigpe3JldHVybiBnQSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9UUsoKTtpZih2b2lkIDA9PT10Lm1vbmFjbyl7aWYoIXQucmVxdWlyZSl0aHJvdyBuZXcgRXJyb3IoImxvYWRNb25hY28oKSBmYWlsZWQgYmVjYXVzZSBmdW5jdGlvbiByZXF1aXJlKCkgaXMgdW5hdmFpbGFibGUiKTt0LnJlcXVpcmUuY29uZmlnKHtwYXRoczp7dnM6Ii90Zi1pbXBvcnRzL3ZzIn19KSx5aWVsZCB0SihbInZzL2VkaXRvci9lZGl0b3IubWFpbiJdKSx5aWVsZCB0SihbInZzL3B5dGhvbi9weXRob24uY29udHJpYnV0aW9uIl0pfX0pKX1mdW5jdGlvbiBuSih0KXtyZXR1cm4gdD8idnMtZGFyayI6InZzIn1jbGFzcyBvSntjb25zdHJ1Y3Rvcih0KXt0aGlzLnJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zPTEwMCx0aGlzLm9uUmVzaXplPW5ldyBMaCx0aGlzLm5nVW5zdWJzY3JpYmUkPW5ldyBJLHRoaXMub25SZXNpemUkPW5ldyBJO2NvbnN0IGU9bmV3IFJlc2l6ZU9ic2VydmVyKCgoKT0+e3RoaXMub25SZXNpemUkLm5leHQoKX0pKTtlLm9ic2VydmUodC5uYXRpdmVFbGVtZW50KSx0aGlzLm5nVW5zdWJzY3JpYmUkLnN1YnNjcmliZSgoKCk9PntlLnVub2JzZXJ2ZSh0Lm5hdGl2ZUVsZW1lbnQpfSkpfW5nT25Jbml0KCl7dGhpcy5vblJlc2l6ZSQucGlwZShUZSgxKSxnZSh0aGlzLnJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zKSxJZSh0aGlzLm5nVW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMub25SZXNpemUuZW1pdCgpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlJC5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpfX1vSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b0opKFNtKGhnKSl9LG9KLsm1ZGlyPWxvKHt0eXBlOm9KLHNlbGVjdG9yczpbWyIiLCJkZXRlY3RSZXNpemUiLCIiXV0saW5wdXRzOntyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5NczoicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMifSxvdXRwdXRzOntvblJlc2l6ZToib25SZXNpemUifX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgob0osW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2RldGVjdFJlc2l6ZV0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9XX0pLHtyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5Nczpbe3R5cGU6eHl9XSxvblJlc2l6ZTpbe3R5cGU6T3l9XX0pO2NvbnN0IGlKPVsiY29kZVZpZXdlckNvbnRhaW5lciJdO2NsYXNzIGFKe2NvbnN0cnVjdG9yKCl7dGhpcy5saW5lcz1udWxsLHRoaXMuZm9jdXNlZExpbmVubz1udWxsLHRoaXMubW9uYWNvPW51bGwsdGhpcy5lZGl0b3I9bnVsbCx0aGlzLmRlY29yYXRpb25zPVtdLHRoaXMuUkVTSVpFX0RFQk9VTkNFX0lOVEVSVkFMX01TPTUwfW9uUmVzaXplKCl7dGhpcy5lZGl0b3ImJnRoaXMuZWRpdG9yLmxheW91dCgpfW5nT25DaGFuZ2VzKHQpe3ZhciBlO2lmKG51bGw9PT10aGlzLm1vbmFjbylyZXR1cm47Y29uc3Qgbj10Lm1vbmFjbyYmbnVsbD09PXRoaXMuZWRpdG9yO251bGw9PT10aGlzLmVkaXRvciYmKHRoaXMuZWRpdG9yPXRoaXMubW9uYWNvLmVkaXRvci5jcmVhdGUodGhpcy5jb2RlVmlld2VyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQse3ZhbHVlOihudWxsIT09KGU9dGhpcy5saW5lcykmJnZvaWQgMCE9PWU/ZTpbXSkuam9pbigiXG4iKSxsYW5ndWFnZToicHl0aG9uIixyZWFkT25seTohMCxmb250U2l6ZToxMCxtaW5pbWFwOntlbmFibGVkOiEwfSx0aGVtZTpuSih0aGlzLnVzZURhcmtNb2RlKX0pKSx0LmxpbmVzJiZ0aGlzLmxpbmVzJiZ0aGlzLmVkaXRvci5zZXRWYWx1ZSh0aGlzLmxpbmVzLmpvaW4oIlxuIikpO2NvbnN0IG89bnx8dC5mb2N1c2VkTGluZW5vP3RoaXMuZm9jdXNlZExpbmVubzpudWxsO2lmKG8mJnRoaXMubGluZXMpe3RoaXMuZWRpdG9yLnJldmVhbExpbmVJbkNlbnRlcihvLHRoaXMubW9uYWNvLmVkaXRvci5TY3JvbGxUeXBlLlNtb290aCk7Y29uc3QgdD10aGlzLmxpbmVzW28tMV0ubGVuZ3RoO3RoaXMuZGVjb3JhdGlvbnM9dGhpcy5lZGl0b3IuZGVsdGFEZWNvcmF0aW9ucyh0aGlzLmRlY29yYXRpb25zLFt7cmFuZ2U6bmV3IHRoaXMubW9uYWNvLlJhbmdlKG8sMSxvLDEpLG9wdGlvbnM6e2lzV2hvbGVMaW5lOiEwLGxpbmVzRGVjb3JhdGlvbnNDbGFzc05hbWU6ImhpZ2hsaWdodC1ndXR0ZXIifX0se3JhbmdlOm5ldyB0aGlzLm1vbmFjby5SYW5nZShvLDEsbyx0KzEpLG9wdGlvbnM6e2lubGluZUNsYXNzTmFtZToiaGlnaGxpZ2h0LWxpbmUifX1dKX10LnVzZURhcmtNb2RlJiZ0aGlzLm1vbmFjby5lZGl0b3Iuc2V0VGhlbWUobkoodGhpcy51c2VEYXJrTW9kZSkpfX1hSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YUopfSxhSi7JtWNtcD10byh7dHlwZTphSixzZWxlY3RvcnM6W1sic291cmNlLWNvZGUtY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChpSiw3LGhnKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLmNvZGVWaWV3ZXJDb250YWluZXI9dC5maXJzdCl9fSxpbnB1dHM6e2xpbmVzOiJsaW5lcyIsZm9jdXNlZExpbmVubzoiZm9jdXNlZExpbmVubyIsbW9uYWNvOiJtb25hY28iLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSJ9LGZlYXR1cmVzOltCb10sZGVjbHM6Mix2YXJzOjEsY29uc3RzOltbImRldGVjdFJlc2l6ZSIsIiIsMSwiY29kZS12aWV3ZXItY29udGFpbmVyIiwzLCJyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5NcyIsIm9uUmVzaXplIl0sWyJjb2RlVmlld2VyQ29udGFpbmVyIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDAsMSksVm0oIm9uUmVzaXplIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVzaXplKCl9KSksQW0oKSksMiZlJiZEbSgicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLG4uUkVTSVpFX0RFQk9VTkNFX0lOVEVSVkFMX01TKX0sZGlyZWN0aXZlczpbb0pdLHN0eWxlczpbIi5jb2RlLXZpZXdlci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5bX25naG9zdC0lQ09NUCVdICAgICAuaGlnaGxpZ2h0LWd1dHRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxMTEsIDAsIDAuNyk7XG4gIHdpZHRoOiA1cHggIWltcG9ydGFudDtcbn1cblxuW19uZ2hvc3QtJUNPTVAlXSAgICAgLmhpZ2hsaWdodC1saW5lIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDExMSwgMCwgMC4zKTtcbn0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYUosW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic291cmNlLWNvZGUtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9zb3VyY2VfY29kZV9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9zb3VyY2VfY29kZV9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7bGluZXM6W3t0eXBlOnh5fV0sZm9jdXNlZExpbmVubzpbe3R5cGU6eHl9XSxtb25hY286W3t0eXBlOnh5fV0sdXNlRGFya01vZGU6W3t0eXBlOnh5fV0sY29kZVZpZXdlckNvbnRhaW5lcjpbe3R5cGU6WmEsYXJnczpbImNvZGVWaWV3ZXJDb250YWluZXIiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV19KTtjbGFzcyBySntjb25zdHJ1Y3Rvcigpe3RoaXMubGluZXM9bnVsbCx0aGlzLmZvY3VzZWRMaW5lbm89bnVsbCx0aGlzLnVzZURhcmtNb2RlPSExLHRoaXMubW9uYWNvJD1udWxsfW5nT25Jbml0KCl7dGhpcy5tb25hY28kPUN0KGVKKCkpLnBpcGUoSXQoKCgpPT53aW5kb3cubW9uYWNvKSkpfX1mdW5jdGlvbiBzSih0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNiksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRHUoIiAiLHQuZm9jdXNlZFNvdXJjZUxpbmVTcGVjLmZpbGVfcGF0aCwiICIpfX1mdW5jdGlvbiBsSih0LGUpezEmdCYmKFJtKDAsImRpdiIsNyksa3UoMSwiIE5vIGZpbGUgc2VsZWN0ZWQuIENsaWNrIGEgbGluZSBudW1iZXIgaW4gdGhlIFN0YWNrIFRyYWNlIHNlY3Rpb24gdG8gc2hvdyB0aGUgc291cmNlIGNvZGUuICIpLEFtKCkpfWZ1bmN0aW9uIGNKKHQsZSl7aWYoMSZ0JiZUbSgwLCJzb3VyY2UtY29kZSIsOCksMiZ0KXtjb25zdCB0PVltKCk7RG0oImxpbmVzIix0LmZvY3VzZWRTb3VyY2VGaWxlQ29udGVudC5saW5lcykoImZvY3VzZWRMaW5lbm8iLHQuZm9jdXNlZFNvdXJjZUxpbmVTcGVjLmxpbmVubykoInVzZURhcmtNb2RlIix0LnVzZURhcmtNb2RlKX19ckouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHJKKX0sckouybVjbXA9dG8oe3R5cGU6ckosc2VsZWN0b3JzOltbInNvdXJjZS1jb2RlIl1dLGlucHV0czp7bGluZXM6ImxpbmVzIixmb2N1c2VkTGluZW5vOiJmb2N1c2VkTGluZW5vIix1c2VEYXJrTW9kZToidXNlRGFya01vZGUifSxkZWNsczoyLHZhcnM6Nixjb25zdHM6W1szLCJsaW5lcyIsImZvY3VzZWRMaW5lbm8iLCJtb25hY28iLCJ1c2VEYXJrTW9kZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwic291cmNlLWNvZGUtY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpKSwyJmUmJkRtKCJsaW5lcyIsbi5saW5lcykoImZvY3VzZWRMaW5lbm8iLG4uZm9jdXNlZExpbmVubykoIm1vbmFjbyIsVGgoMSw0LG4ubW9uYWNvJCkpKCJ1c2VEYXJrTW9kZSIsbi51c2VEYXJrTW9kZSl9LGRpcmVjdGl2ZXM6W2FKXSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgockosW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic291cmNlLWNvZGUiLHRlbXBsYXRlOidcbiAgICA8c291cmNlLWNvZGUtY29tcG9uZW50XG4gICAgICBbbGluZXNdPSJsaW5lcyJcbiAgICAgIFtmb2N1c2VkTGluZW5vXT0iZm9jdXNlZExpbmVubyJcbiAgICAgIFttb25hY29dPSJtb25hY28kIHwgYXN5bmMiXG4gICAgICBbdXNlRGFya01vZGVdPSJ1c2VEYXJrTW9kZSJcbiAgICA+PC9zb3VyY2UtY29kZS1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse2xpbmVzOlt7dHlwZTp4eX1dLGZvY3VzZWRMaW5lbm86W3t0eXBlOnh5fV0sdXNlRGFya01vZGU6W3t0eXBlOnh5fV19KTtjbGFzcyBkSntjb25zdHJ1Y3Rvcigpe3RoaXMuZm9jdXNlZFNvdXJjZUZpbGVDb250ZW50PW51bGwsdGhpcy5mb2N1c2VkU291cmNlTGluZVNwZWM9bnVsbH19ZEouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGRKKX0sZEouybVjbXA9dG8oe3R5cGU6ZEosc2VsZWN0b3JzOltbInNvdXJjZS1maWxlcy1jb21wb25lbnQiXV0saW5wdXRzOntmb2N1c2VkU291cmNlRmlsZUNvbnRlbnQ6ImZvY3VzZWRTb3VyY2VGaWxlQ29udGVudCIsZm9jdXNlZFNvdXJjZUxpbmVTcGVjOiJmb2N1c2VkU291cmNlTGluZVNwZWMiLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSJ9LGRlY2xzOjgsdmFyczozLGNvbnN0czpbWzEsInNvdXJjZS1maWxlcy1jb250YWluZXIiXSxbMSwiaGVhZGVyLXNlY3Rpb24iXSxbMSwidGl0bGUtdGFnIl0sWyJjbGFzcyIsImZpbGUtbGFiZWwiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibm9GaWxlU2VsZWN0ZWQiLCIiXSxbMywibGluZXMiLCJmb2N1c2VkTGluZW5vIiwidXNlRGFya01vZGUiLDQsIm5nSWYiXSxbMSwiZmlsZS1sYWJlbCJdLFsxLCJuby1maWxlLXNlbGVjdGVkIl0sWzMsImxpbmVzIiwiZm9jdXNlZExpbmVubyIsInVzZURhcmtNb2RlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsImRpdiIsMSksUm0oMiwiZGl2IiwyKSxrdSgzLCJTb3VyY2UgQ29kZSIpLEFtKCksUXAoNCxzSiwyLDEsImRpdiIsMyksUXAoNSxsSiwyLDAsIm5nLXRlbXBsYXRlIixudWxsLDQsaWIpLEFtKCksUXAoNyxjSiwxLDMsInNvdXJjZS1jb2RlIiw1KSxBbSgpKSwyJmUpe2NvbnN0IHQ9JHAoNik7cmMoNCksRG0oIm5nSWYiLG51bGwhPT1uLmZvY3VzZWRTb3VyY2VMaW5lU3BlYykoIm5nSWZFbHNlIix0KSxyYygzKSxEbSgibmdJZiIsbnVsbCE9PW4uZm9jdXNlZFNvdXJjZUZpbGVDb250ZW50JiZudWxsIT09bi5mb2N1c2VkU291cmNlTGluZVNwZWMmJm51bGwhPT1uLmZvY3VzZWRTb3VyY2VGaWxlQ29udGVudC5saW5lcyl9fSxkaXJlY3RpdmVzOltkTSxySl0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LmhlYWRlci1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjRweDtwYWRkaW5nLWJvdHRvbTo2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxMDAlfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5oZWFkZXItc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5oZWFkZXItc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0uZmlsZS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC13ZWlnaHQ6bm9ybWFsO3doaXRlLXNwYWNlOm5vcm1hbDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO292ZXJmbG93LXk6YXV0bztwYWRkaW5nOjAgMjBweH0ubm8tZmlsZS1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6IzY2NjtwYWRkaW5nOjAgMjBweDt3aGl0ZS1zcGFjZTpub3JtYWx9LnNvdXJjZS1maWxlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1mYW1pbHk6IlJvYm90byBNb25vIixtb25vc3BhY2U7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjEwMCV9LnRpdGxlLXRhZ1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC13ZWlnaHQ6Ym9sZDtoZWlnaHQ6MTAwJTtwYWRkaW5nLWxlZnQ6NnB4O3ZlcnRpY2FsLWFsaWduOnRvcH1zb3VyY2UtY29kZVtfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjE7d2lkdGg6MTAwJX0nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZEosW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic291cmNlLWZpbGVzLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vc291cmNlX2ZpbGVzX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL3NvdXJjZV9maWxlc19jb21wb25lbnQuY3NzIl19XX1dLG51bGwse2ZvY3VzZWRTb3VyY2VGaWxlQ29udGVudDpbe3R5cGU6eHl9XSxmb2N1c2VkU291cmNlTGluZVNwZWM6W3t0eXBlOnh5fV0sdXNlRGFya01vZGU6W3t0eXBlOnh5fV19KTtjbGFzcyBwSntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5mb2N1c2VkU291cmNlRmlsZUNvbnRlbnQkPXRoaXMuc3RvcmUuc2VsZWN0KHlYKSx0aGlzLmZvY3VzZWRTb3VyY2VMaW5lU3BlYyQ9dGhpcy5zdG9yZS5zZWxlY3QoX1gpLHRoaXMudXNlRGFya01vZGUkPXRoaXMuc3RvcmUuc2VsZWN0KEpEKX19cEouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBKKShTbShJdykpfSxwSi7JtWNtcD10byh7dHlwZTpwSixzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItc291cmNlLWZpbGVzIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsImZvY3VzZWRTb3VyY2VGaWxlQ29udGVudCIsImZvY3VzZWRTb3VyY2VMaW5lU3BlYyIsInVzZURhcmtNb2RlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJzb3VyY2UtZmlsZXMtY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSksMiZlJiZEbSgiZm9jdXNlZFNvdXJjZUZpbGVDb250ZW50IixUaCgxLDMsbi5mb2N1c2VkU291cmNlRmlsZUNvbnRlbnQkKSkoImZvY3VzZWRTb3VyY2VMaW5lU3BlYyIsVGgoMiw1LG4uZm9jdXNlZFNvdXJjZUxpbmVTcGVjJCkpKCJ1c2VEYXJrTW9kZSIsVGgoMyw3LG4udXNlRGFya01vZGUkKSl9LGRpcmVjdGl2ZXM6W2RKXSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocEosW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGYtZGVidWdnZXItdjItc291cmNlLWZpbGVzIix0ZW1wbGF0ZTonXG4gICAgPHNvdXJjZS1maWxlcy1jb21wb25lbnRcbiAgICAgIFtmb2N1c2VkU291cmNlRmlsZUNvbnRlbnRdPSJmb2N1c2VkU291cmNlRmlsZUNvbnRlbnQkIHwgYXN5bmMiXG4gICAgICBbZm9jdXNlZFNvdXJjZUxpbmVTcGVjXT0iZm9jdXNlZFNvdXJjZUxpbmVTcGVjJCB8IGFzeW5jIlxuICAgICAgW3VzZURhcmtNb2RlXT0idXNlRGFya01vZGUkIHwgYXN5bmMiXG4gICAgPjwvc291cmNlLWZpbGVzLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjb25zdCBtSj1bInN0YWNrRnJhbWVBcnJheSJdO2Z1bmN0aW9uIHVKKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTMpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgzKTtyYygxKSxEdSgiICMiLHQuZXhlY3V0aW9uSW5kZXgsIjogIil9fWZ1bmN0aW9uIGZKKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTQpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgzKTtyYygxKSxEdSgiICIsdC5vcFR5cGUsIiAiKX19ZnVuY3Rpb24gZ0oodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiKSxrdSgxLCIgRWFnZXIgZXhlY3V0aW9uICIpLFFwKDIsdUosMiwxLCJzcGFuIiwxMSksUXAoMyxmSiwyLDEsInNwYW4iLDEyKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoMiksRG0oIm5nSWYiLG51bGwhPT10Lm9wVHlwZSkscmMoMSksRG0oIm5nSWYiLG51bGwhPT10Lm9wVHlwZSl9fWZ1bmN0aW9uIGhKKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTYpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgzKTtyYygxKSxEdSgnICInLHQub3BOYW1lLCciICcpfX1mdW5jdGlvbiBiSih0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDE0KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMyk7cmMoMSksRHUoIiAiLHQub3BUeXBlLCIgIil9fWZ1bmN0aW9uIHlKKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiksa3UoMSwiIENyZWF0aW9uIG9mIGdyYXBoIG9wICIpLFFwKDIsaEosMiwxLCJzcGFuIiwxNSksUXAoMyxiSiwyLDEsInNwYW4iLDEyKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoMiksRG0oIm5nSWYiLG51bGwhPT10Lm9wTmFtZSkscmMoMSksRG0oIm5nSWYiLG51bGwhPT10Lm9wVHlwZSl9fWZ1bmN0aW9uIF9KKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTcpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygxKSxEdSgiIChIb3N0IG5hbWU6ICIsdC5zdGFja0ZyYW1lc0ZvckRpc3BsYXlbMF0uaG9zdF9uYW1lLCIpICIpfX1mdW5jdGlvbiBDSih0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNyksUm0oMSwic3BhbiIpLFJtKDIsInNwYW4iLDgpLFFwKDMsZ0osNCwyLCJkaXYiLDkpLFFwKDQseUosNCwyLCJkaXYiLDkpLEFtKCksQW0oKSxSbSg1LCJkaXYiKSxRcCg2LF9KLDIsMSwic3BhbiIsMTApLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMiksRG0oIm5nU3dpdGNoIix0LmNvZGVMb2NhdGlvblR5cGUpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLHQuQ29kZUxvY2F0aW9uVHlwZS5FWEVDVVRJT04pLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLHQuQ29kZUxvY2F0aW9uVHlwZS5HUkFQSF9PUF9DUkVBVElPTikscmMoMiksRG0oIm5nSWYiLG51bGwhPT10LnN0YWNrRnJhbWVzRm9yRGlzcGxheSYmdC5zdGFja0ZyYW1lc0ZvckRpc3BsYXkubGVuZ3RoPjApfX1mdW5jdGlvbiBNSih0LGUpezEmdCYmKFJtKDAsImRpdiIsMTgpLGt1KDEsIiBDbGljayBhbiBlYWdlciBleGVjdXRpb24gb3IgZ3JhcGggb3AgdG8gc2hvdyBpdHMgb3JpZ2luYWwgc3RhY2sgdHJhY2UuICIpLEFtKCkpfWZ1bmN0aW9uIHZKKHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwyOCksa3UoMSwiIOKkkyAiKSxBbSgpKX1jb25zdCB4Sj1mdW5jdGlvbih0LGUpe3JldHVyblt0LGVdfTtmdW5jdGlvbiBPSih0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMjIpLFJtKDEsImRpdiIsMjMpLGt1KDIpLEFtKCksUm0oMywiZGl2IiwyNCksUXAoNCx2SiwyLDAsImRpdiIsMjUpLFJtKDUsImRpdiIsMjYpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtjb25zdCBuPWhpKHQpLiRpbXBsaWNpdDtyZXR1cm4gWW0oMikub25Tb3VyY2VMaW5lQ2xpY2tlZC5lbWl0KG4pfSkpLGt1KDYpLEFtKCksUm0oNywiZGl2IiwyNyksa3UoOCksQW0oKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7RG0oIm5nQ2xhc3MiLHZoKDYseEosdC5iZWxvbmdzVG9Gb2N1c2VkRmlsZT8iZm9jdXNlZC1maWxlIjoiIix0LmZvY3VzZWQ/ImZvY3VzZWQtc3RhY2stZnJhbWUiOiIiKSkscmMoMSksS20oInRpdGxlIix0LmZpbGVfcGF0aCkscmMoMSksRHUoIiAiLHQuY29uY2lzZV9maWxlX3BhdGgsIiAiKSxyYygyKSxEbSgibmdJZiIsbi5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSYmdC5mb2N1c2VkKSxyYygyKSxEdSgiIExpbmUgIix0LmxpbmVubywiICIpLHJjKDIpLER1KCIgIix0LmZ1bmN0aW9uX25hbWUsIiAiKX19ZnVuY3Rpb24gUEoodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDE5LDIwKSxRcCgyLE9KLDksOSwiZGl2IiwyMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMiksRG0oIm5nRm9yT2YiLHQuc3RhY2tGcmFtZXNGb3JEaXNwbGF5KX19ZnVuY3Rpb24gd0oodCxlKXt9Y2xhc3Mga0p7Y29uc3RydWN0b3IoKXt0aGlzLnN0YWNrRnJhbWVzRm9yRGlzcGxheT1udWxsLHRoaXMub25Tb3VyY2VMaW5lQ2xpY2tlZD1uZXcgTGgsdGhpcy5Db2RlTG9jYXRpb25UeXBlPWZafW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe2lmKHZvaWQgMD09PXRoaXMuc3RhY2tGcmFtZUFycmF5KXJldHVybjtjb25zdCB0PXRoaXMuc3RhY2tGcmFtZUFycmF5Lm5hdGl2ZUVsZW1lbnQsZT10LnF1ZXJ5U2VsZWN0b3IoIi5mb2N1c2VkLXN0YWNrLWZyYW1lIik7aWYobnVsbCE9PWUpcmV0dXJuIHZvaWQgdGhpcy5zY3JvbGxUb0VsZW1lbnQodCxlKTtjb25zdCBuPXQucXVlcnlTZWxlY3RvcigiLnN0YWNrLWZyYW1lLWNvbnRhaW5lcjpsYXN0LWNoaWxkIik7bnVsbCE9PW4mJnRoaXMuc2Nyb2xsVG9FbGVtZW50KHQsbil9c2Nyb2xsVG9FbGVtZW50KHQsZSl7dC5zY3JvbGxUb3A9ZS5vZmZzZXRUb3B9fWtKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrSil9LGtKLsm1Y21wPXRvKHt0eXBlOmtKLHNlbGVjdG9yczpbWyJzdGFjay10cmFjZS1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKG1KLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uc3RhY2tGcmFtZUFycmF5PXQuZmlyc3QpfX0saW5wdXRzOntjb2RlTG9jYXRpb25UeXBlOiJjb2RlTG9jYXRpb25UeXBlIixvcFR5cGU6Im9wVHlwZSIsb3BOYW1lOiJvcE5hbWUiLGV4ZWN1dGlvbkluZGV4OiJleGVjdXRpb25JbmRleCIsc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGU6InN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlIixzdGFja0ZyYW1lc0ZvckRpc3BsYXk6InN0YWNrRnJhbWVzRm9yRGlzcGxheSJ9LG91dHB1dHM6e29uU291cmNlTGluZUNsaWNrZWQ6Im9uU291cmNlTGluZUNsaWNrZWQifSxkZWNsczoxMCx2YXJzOjQsY29uc3RzOltbMSwic3RhY2stdHJhY2UtY29udGFpbmVyIl0sWzEsInN0YWNrLXRyYWNlLWhlYWRlciJdLFsxLCJzdGFjay10cmFjZS10aXRsZSJdLFsiY2xhc3MiLCJzdGFjay10cmFjZS1hdXgtaW5mbyIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub1N0YWNrVHJhY2UiLCIiXSxbImNsYXNzIiwic3RhY2stZnJhbWUtYXJyYXkiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibG9hZGluZ1NlY3Rpb24iLCIiXSxbMSwic3RhY2stdHJhY2UtYXV4LWluZm8iXSxbMSwiY29kZS1sb2NhdGlvbi1vcmlnaW4iLDMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJzdGFjay10cmFjZS1ob3N0LW5hbWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiZWFnZXItZXhlY3V0aW9uLWluZGV4Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm9wLXR5cGUiLDQsIm5nSWYiXSxbMSwiZWFnZXItZXhlY3V0aW9uLWluZGV4Il0sWzEsIm9wLXR5cGUiXSxbImNsYXNzIiwib3AtbmFtZSIsNCwibmdJZiJdLFsxLCJvcC1uYW1lIl0sWzEsInN0YWNrLXRyYWNlLWhvc3QtbmFtZSJdLFsxLCJzdGFjay10cmFjZS1hdXgtaW5mbyIsIm5vLXN0YWNrLXRyYWNlIl0sWzEsInN0YWNrLWZyYW1lLWFycmF5Il0sWyJzdGFja0ZyYW1lQXJyYXkiLCIiXSxbImNsYXNzIiwic3RhY2stZnJhbWUtY29udGFpbmVyIiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwic3RhY2stZnJhbWUtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWzEsInN0YWNrLWZyYW1lLWZpbGUtcGF0aCIsMywidGl0bGUiXSxbMSwic3RhY2stZnJhbWUtbGluZW5vLWZ1bmN0aW9uIl0sWyJjbGFzcyIsInN0aWNrLXRvLWJvdHRvbW1vc3QtaW5kaWNhdG9yIiwidGl0bGUiLCJTdGlja2luZyB0byB0aGUgYm90dG9tbW9zdCBmcmFtZSBpbiB0aGUgY3VycmVudCBzb3VyY2UgZmlsZSB3aGVuIG5hdmlnYXRpbmcgZXhlY3V0aW9ucyBhbmQgZ3JhcGggb3BzLiBUbyByZW1vdmUgdGhpcyBzdGlja2luZywgY2xpY2sgYW55IG5vbi1ib3R0b21tb3N0IHN0YWNrIGZyYW1lLiIsNCwibmdJZiJdLFsxLCJzdGFjay1mcmFtZS1saW5lbm8iLDMsImNsaWNrIl0sWzEsInN0YWNrLWZyYW1lLWZ1bmN0aW9uIl0sWyJ0aXRsZSIsIlN0aWNraW5nIHRvIHRoZSBib3R0b21tb3N0IGZyYW1lIGluIHRoZSBjdXJyZW50IHNvdXJjZSBmaWxlIHdoZW4gbmF2aWdhdGluZyBleGVjdXRpb25zIGFuZCBncmFwaCBvcHMuIFRvIHJlbW92ZSB0aGlzIHN0aWNraW5nLCBjbGljayBhbnkgbm9uLWJvdHRvbW1vc3Qgc3RhY2sgZnJhbWUuIiwxLCJzdGljay10by1ib3R0b21tb3N0LWluZGljYXRvciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiLDEpLFJtKDIsInNwYW4iLDIpLGt1KDMsIiBTdGFjayBUcmFjZSAiKSxBbSgpLFFwKDQsQ0osNyw0LCJkaXYiLDMpLFFwKDUsTUosMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LGliKSxBbSgpLFFwKDcsUEosMywxLCJkaXYiLDUpLFFwKDgsd0osMCwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw2LGliKSxBbSgpKSwyJmUpe2NvbnN0IHQ9JHAoNiksZT0kcCg5KTtyYyg0KSxEbSgibmdJZiIsbnVsbCE9PW4uY29kZUxvY2F0aW9uVHlwZSkoIm5nSWZFbHNlIix0KSxyYygzKSxEbSgibmdJZiIsbnVsbCE9PW4uc3RhY2tGcmFtZXNGb3JEaXNwbGF5KSgibmdJZkVsc2UiLGUpfX0sZGlyZWN0aXZlczpbZE0sZk0sZ00sbE0sYU1dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5mb2N1c2VkLWZpbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGR9LmZvY3VzZWQtc3RhY2stZnJhbWVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTExLDAsLjMpfS5uby1zdGFjay10cmFjZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6Z3JheX0ub3AtbmFtZVtfbmdjb250ZW50LSVDT01QJV17d29yZC13cmFwOmFueXdoZXJlfS5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlY2VmZjE7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtZmFtaWx5OiJSb2JvdG8gTW9ubyIsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxMHB4O2hlaWdodDoxNHB4O2xpbmUtaGVpZ2h0OjE0cHg7cGFkZGluZzoxcHggM3B4O3dpZHRoOm1heC1jb250ZW50fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTVhNjR9LnN0YWNrLWZyYW1lLWFycmF5W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87d2lkdGg6Y2FsYygxMDAlIC0gOHB4KX0uc3RhY2stZnJhbWUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYTBhMGEwfS5zdGFjay1mcmFtZS1maWxlLXBhdGhbX25nY29udGVudC0lQ09NUCVde21heC13aWR0aDoxODBweDt3aWR0aDoxODBweH0uc3RhY2stZnJhbWUtbGluZW5vLWZ1bmN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOnJpZ2h0O3doaXRlLXNwYWNlOm5vd3JhcH0uc3RhY2stZnJhbWUtZnVuY3Rpb25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoyMDBweDtwYWRkaW5nLWxlZnQ6MTBweDt0ZXh0LWFsaWduOmxlZnQ7d2hpdGUtc3BhY2U6bm9ybWFsO3dpZHRoOjIwMHB4O3dvcmQtd3JhcDphbnl3aGVyZX0uc3RhY2stZnJhbWUtbGluZW5vW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazttYXgtd2lkdGg6ODBweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt3aWR0aDo4MHB4fS5zdGFjay10cmFjZS1hdXgtaW5mb1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxNXB4O3BhZGRpbmctbGVmdDoyNHB4fS5zdGFjay10cmFjZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZWJlYmViO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OmNvbHVtbjtmb250LXNpemU6MTBweDtmb250LWZhbWlseToiUm9ib3RvIE1vbm8iLG1vbm9zcGFjZTtoZWlnaHQ6MTAwJTttYXJnaW4tbGVmdDo4cHg7bWF4LWhlaWdodDozNjBweDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmhpZGRlbjtwYWRkaW5nLWxlZnQ6OHB4O3dpZHRoOjEwMCV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnN0YWNrLXRyYWNlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zdGFjay10cmFjZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjNTU1fS5zdGFjay10cmFjZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MCA1cHggM3B4IC0zcHggI2NjYztwYWRkaW5nLWJvdHRvbTozcHh9LnN0YWNrLXRyYWNlLWhvc3QtbmFtZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6Z3JheX0uc3RhY2stdHJhY2UtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGR9LnN0aWNrLXRvLWJvdHRvbW1vc3QtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmctcmlnaHQ6M3B4fSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrSixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJzdGFjay10cmFjZS1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL3N0YWNrX3RyYWNlX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL3N0YWNrX3RyYWNlX2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCx7Y29kZUxvY2F0aW9uVHlwZTpbe3R5cGU6eHl9XSxvcFR5cGU6W3t0eXBlOnh5fV0sb3BOYW1lOlt7dHlwZTp4eX1dLGV4ZWN1dGlvbkluZGV4Olt7dHlwZTp4eX1dLHN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlOlt7dHlwZTp4eX1dLHN0YWNrRnJhbWVzRm9yRGlzcGxheTpbe3R5cGU6eHl9XSxvblNvdXJjZUxpbmVDbGlja2VkOlt7dHlwZTpPeX1dLHN0YWNrRnJhbWVBcnJheTpbe3R5cGU6WmEsYXJnczpbInN0YWNrRnJhbWVBcnJheSJdfV19KTtjbGFzcyBTSntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5jb2RlTG9jYXRpb25UeXBlJD10aGlzLnN0b3JlLnBpcGUoRncoWncodVgsKHQ9Pm51bGw9PT10P251bGw6dC5jb2RlTG9jYXRpb25UeXBlKSkpKSx0aGlzLm9wVHlwZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KHVYLCh0PT5udWxsPT09dD9udWxsOnQub3BUeXBlKSkpKSx0aGlzLm9wTmFtZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KHVYLCh0PT5udWxsPT09dHx8dC5jb2RlTG9jYXRpb25UeXBlIT09ZlouR1JBUEhfT1BfQ1JFQVRJT04/bnVsbDp0Lm9wTmFtZSkpKSksdGhpcy5leGVjdXRpb25JbmRleCQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KHVYLCh0PT5udWxsPT09dHx8dC5jb2RlTG9jYXRpb25UeXBlIT09ZlouRVhFQ1VUSU9OP251bGw6dC5leGVjdXRpb25JbmRleCkpKSksdGhpcy5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KENYKSksdGhpcy5zdGFja0ZyYW1lc0ZvckRpc3BsYXkkPXRoaXMuc3RvcmUucGlwZShGdyhadyhmWCxfWCwoKHQsZSk9PntpZihudWxsPT09dClyZXR1cm4gbnVsbDtjb25zdCBuPVtdO2Zvcihjb25zdCBvIG9mIHQpe2NvbnN0e2hvc3RfbmFtZTp0LGZpbGVfcGF0aDppLGxpbmVubzphLGZ1bmN0aW9uX25hbWU6cn09byxzPWkuc3BsaXQoIi8iKSxsPW51bGwhPT1lJiZ0PT09ZS5ob3N0X25hbWUmJmk9PT1lLmZpbGVfcGF0aDtuLnB1c2goe2hvc3RfbmFtZTp0LGZpbGVfcGF0aDppLGNvbmNpc2VfZmlsZV9wYXRoOnNbcy5sZW5ndGgtMV0sbGluZW5vOmEsZnVuY3Rpb25fbmFtZTpyLGJlbG9uZ3NUb0ZvY3VzZWRGaWxlOmwsZm9jdXNlZDpsJiZhPT09ZS5saW5lbm99KX1yZXR1cm4gbn0pKSkpfW9uU291cmNlTGluZUNsaWNrZWQodCl7Y29uc3R7aG9zdF9uYW1lOmUsZmlsZV9wYXRoOm4sbGluZW5vOm8sZnVuY3Rpb25fbmFtZTppfT10O3RoaXMuc3RvcmUuZGlzcGF0Y2goc1ooe3N0YWNrRnJhbWU6e2hvc3RfbmFtZTplLGZpbGVfcGF0aDpuLGxpbmVubzpvLGZ1bmN0aW9uX25hbWU6aX19KSl9fWZ1bmN0aW9uIERKKHQsZSl7MSZ0JiZUbSgwLCJ0Zi1kZWJ1Z2dlci12Mi1pbmFjdGl2ZSIpfWZ1bmN0aW9uIEVKKHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwzKSxUbSgxLCJ0Zi1kZWJ1Z2dlci12Mi1hbGVydHMiKSxSbSgyLCJkaXYiLDQpLFRtKDMsInRmLWRlYnVnZ2VyLXYyLXRpbWVsaW5lIiksVG0oNCwidGYtZGVidWdnZXItdjItZ3JhcGgiKSxBbSgpLFRtKDUsInRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnMiKSxBbSgpLFJtKDYsImRpdiIsNSksVG0oNywidGYtZGVidWdnZXItdjItc291cmNlLWZpbGVzIiksVG0oOCwidGYtZGVidWdnZXItdjItc3RhY2stdHJhY2UiKSxBbSgpKX1TSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U0opKFNtKEl3KSl9LFNKLsm1Y21wPXRvKHt0eXBlOlNKLHNlbGVjdG9yczpbWyJ0Zi1kZWJ1Z2dlci12Mi1zdGFjay10cmFjZSJdXSxkZWNsczo3LHZhcnM6MTgsY29uc3RzOltbMywiY29kZUxvY2F0aW9uVHlwZSIsIm9wVHlwZSIsIm9wTmFtZSIsImV4ZWN1dGlvbkluZGV4Iiwic3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUiLCJzdGFja0ZyYW1lc0ZvckRpc3BsYXkiLCJvblNvdXJjZUxpbmVDbGlja2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJzdGFjay10cmFjZS1jb21wb25lbnQiLDApLFZtKCJvblNvdXJjZUxpbmVDbGlja2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblNvdXJjZUxpbmVDbGlja2VkKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQWgoNSwiYXN5bmMiKSxBaCg2LCJhc3luYyIpLEFtKCkpLDImZSYmRG0oImNvZGVMb2NhdGlvblR5cGUiLFRoKDEsNixuLmNvZGVMb2NhdGlvblR5cGUkKSkoIm9wVHlwZSIsVGgoMiw4LG4ub3BUeXBlJCkpKCJvcE5hbWUiLFRoKDMsMTAsbi5vcE5hbWUkKSkoImV4ZWN1dGlvbkluZGV4IixUaCg0LDEyLG4uZXhlY3V0aW9uSW5kZXgkKSkoInN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlIixUaCg1LDE0LG4uc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUkKSkoInN0YWNrRnJhbWVzRm9yRGlzcGxheSIsVGgoNiwxNixuLnN0YWNrRnJhbWVzRm9yRGlzcGxheSQpKX0sZGlyZWN0aXZlczpba0pdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChTSixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Zi1kZWJ1Z2dlci12Mi1zdGFjay10cmFjZSIsdGVtcGxhdGU6J1xuICAgIDxzdGFjay10cmFjZS1jb21wb25lbnRcbiAgICAgIFtjb2RlTG9jYXRpb25UeXBlXT0iY29kZUxvY2F0aW9uVHlwZSQgfCBhc3luYyJcbiAgICAgIFtvcFR5cGVdPSJvcFR5cGUkIHwgYXN5bmMiXG4gICAgICBbb3BOYW1lXT0ib3BOYW1lJCB8IGFzeW5jIlxuICAgICAgW2V4ZWN1dGlvbkluZGV4XT0iZXhlY3V0aW9uSW5kZXgkIHwgYXN5bmMiXG4gICAgICBbc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGVdPSJcbiAgICAgICAgc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUkIHwgYXN5bmNcbiAgICAgICJcbiAgICAgIFtzdGFja0ZyYW1lc0ZvckRpc3BsYXldPSJzdGFja0ZyYW1lc0ZvckRpc3BsYXkkIHwgYXN5bmMiXG4gICAgICAob25Tb3VyY2VMaW5lQ2xpY2tlZCk9Im9uU291cmNlTGluZUNsaWNrZWQoJGV2ZW50KSJcbiAgICA+PC9zdGFjay10cmFjZS1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgUkp7Y29uc3RydWN0b3IoKXt0aGlzLnJ1bnM9e30sdGhpcy5ydW5JZHM9W10sdGhpcy5hY3RpdmVSdW5JZD1udWxsfX1SSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UkopfSxSSi7JtWNtcD10byh7dHlwZTpSSixzZWxlY3RvcnM6W1siZGVidWdnZXItY29tcG9uZW50Il1dLGlucHV0czp7cnVuczoicnVucyIscnVuSWRzOiJydW5JZHMiLGFjdGl2ZVJ1bklkOiJhY3RpdmVSdW5JZCJ9LGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWzEsImRlYnVnZ2VyLWNvbnRhaW5lciJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImRhdGFBdmFpbGFibGUiLCIiXSxbMSwidG9wLXNlY3Rpb24iXSxbMSwidG9wLWNlbnRlci1zZWN0aW9uIl0sWzEsImJvdHRvbS1zZWN0aW9uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFFwKDEsREosMSwwLCJ0Zi1kZWJ1Z2dlci12Mi1pbmFjdGl2ZSIsMSksUXAoMixFSiw5LDAsIm5nLXRlbXBsYXRlIixudWxsLDIsaWIpLEFtKCkpLDImZSl7Y29uc3QgdD0kcCgzKTtyYygxKSxEbSgibmdJZiIsMD09PW4ucnVuSWRzLmxlbmd0aCkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W2RNLEVxLFBYLHZLLFZLLEpLLHBKLFNKXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uYm90dG9tLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTtoZWlnaHQ6MzQlO3BhZGRpbmctdG9wOjZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYm90dG9tLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYm90dG9tLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICM1NTV9LmRlYnVnZ2VyLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0udG9wLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7aGVpZ2h0OjY2JTtwYWRkaW5nOjZweCAwfXRmLWRlYnVnZ2VyLXYyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoxMHB4O21pbi13aWR0aDoxNjBweDt3aWR0aDpjYWxjKDE1JSAtIDExcHgpfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIHRmLWRlYnVnZ2VyLXYyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIHRmLWRlYnVnZ2VyLXYyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjNTU1fXRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXgtZ3JvdzoxO21pbi13aWR0aDo1NDBweDt3aWR0aDo1NDBweH10Zi1kZWJ1Z2dlci12Mi1zb3VyY2UtZmlsZXNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjcwJX10Zi1kZWJ1Z2dlci12Mi1zdGFjay10cmFjZVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1ncm93OjE7aGVpZ2h0OjEwMCU7bWluLXdpZHRoOjU0MHB4O3dpZHRoOjU0MHB4fS50b3AtY2VudGVyLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO292ZXJmbG93OmF1dG87d2lkdGg6NTUlfXRmLWRlYnVnZ2VyLXYyLXRpbWVsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmJsb2NrfXRmLWRlYnVnZ2VyLXYyLWdyYXBoW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDo1cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgdGYtZGVidWdnZXItdjItZ3JhcGhbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICB0Zi1kZWJ1Z2dlci12Mi1ncmFwaFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgIzU1NX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUkosW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiZGVidWdnZXItY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9kZWJ1Z2dlcl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9kZWJ1Z2dlcl9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cnVuczpbe3R5cGU6eHl9XSxydW5JZHM6W3t0eXBlOnh5fV0sYWN0aXZlUnVuSWQ6W3t0eXBlOnh5fV19KTtjbGFzcyBBSntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5ydW5zJD10aGlzLnN0b3JlLnBpcGUoRncoUFopKSx0aGlzLnJ1bnNJZHMkPXRoaXMuc3RvcmUucGlwZShGdyhadyhQWiwodD0+T2JqZWN0LmtleXModCkpKSkpLHRoaXMuYWN0aXZlUnVuSWQkPXRoaXMuc3RvcmUucGlwZShGdyhrWikpfW5nT25Jbml0KCl7dGhpcy5zdG9yZS5kaXNwYXRjaChScSgpKX1uZ09uRGVzdHJveSgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goQXEoKSl9fUFKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBSikoU20oSXcpKX0sQUouybVjbXA9dG8oe3R5cGU6QUosc2VsZWN0b3JzOltbInRmLWRlYnVnZ2VyLXYyIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsInJ1bnMiLCJydW5JZHMiLCJhY3RpdmVSdW5JZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwiZGVidWdnZXItY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSksMiZlJiZEbSgicnVucyIsVGgoMSwzLG4ucnVucyQpKSgicnVuSWRzIixUaCgyLDUsbi5ydW5zSWRzJCkpKCJhY3RpdmVSdW5JZCIsVGgoMyw3LG4uYWN0aXZlUnVuSWQkKSl9LGRpcmVjdGl2ZXM6W1JKXSxwaXBlczpbd01dLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChBSixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Zi1kZWJ1Z2dlci12MiIsdGVtcGxhdGU6J1xuICAgIDxkZWJ1Z2dlci1jb21wb25lbnRcbiAgICAgIFtydW5zXT0icnVucyQgfCBhc3luYyJcbiAgICAgIFtydW5JZHNdPSJydW5zSWRzJCB8IGFzeW5jIlxuICAgICAgW2FjdGl2ZVJ1bklkXT0iYWN0aXZlUnVuSWQkIHwgYXN5bmMiXG4gICAgPjwvZGVidWdnZXItY29tcG9uZW50PlxuICAnLHN0eWxlczpbIlxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IFRKPSJkZWJ1Z2dlci12MiI7ZnVuY3Rpb24gTkoodCxlLG4sbyxpKXtpZihuPD0wfHwhTnVtYmVyLmlzSW50ZWdlcihuKSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFnZVNpemU6ICR7bn1gKTtpZihlPm8pdGhyb3cgbmV3IEVycm9yKGBlbmQgaW5kZXggKCR7ZX0pIGV4Y2VlZHMgdG90YWwgbnVtYmVyIG9mIGl0ZW1zICgke299KWApO2lmKGUtdD5uKXRocm93IG5ldyBFcnJvcigiYmVnaW4tZW5kIHNwYW4gZXhjZWVkcyBwYWdlIHNpemUsIHdoaWNoIGlzIG5vdCBhbGxvd2VkIik7Y29uc3QgYT1bXSxyPU1hdGguZmxvb3IodC9uKTsoIShyIGluIGkpfHxpW3JdPG4mJnIqbitpW3JdPG8pJiZhLnB1c2gocik7Y29uc3Qgcz1NYXRoLmZsb29yKChlLTEpL24pO3JldHVybiBzIT09ciYmKCEocyBpbiBpKXx8cypuK2lbc108ZSYmZTxvKSYmYS5wdXNoKHMpLGF9Y2xhc3Mgekp7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5kYXRhU291cmNlPW4sdGhpcy5sb2FkRGF0YSQ9TWsoKCgpPT57Y29uc3QgdD10aGlzLmxvYWREZWJ1Z2dlclJ1bnMocmUodGhpcy5vbkRlYnVnZ2VyRGF0YVBvbGwoKSx0aGlzLm9uQ29yZVJlbG9hZCgpKSkucGlwZShFZSgpKSxlPXRoaXMubG9hZFNvdXJjZUZpbGVMaXN0KHQpLG49dGhpcy5jcmVhdGVOdW1FeGVjdXRpb25Mb2FkZXIodCksbz10aGlzLmNyZWF0ZU51bUFsZXJ0c0FuZEJyZWFrZG93bkxvYWRlcih0KSxpPXRoaXMub25BbGVydFR5cGVGb2N1c2VkKCksYT10aGlzLmZldGNoRXhlY3V0aW9uRGlnZXN0c0ZvckFsZXJ0VHlwZUZvY3VzKGkpLHI9dGhpcy5jcmVhdGVJbml0aWFsRXhlY3V0aW9uRGV0ZWN0b3IobikucGlwZShFZSgpKSxzPXRoaXMuY3JlYXRlRXhlY3V0aW9uRGlnZXN0TG9hZGVyKHJlKHRoaXMub25FeGVjdXRpb25TY3JvbGwoKSx0aGlzLmNyZWF0ZUluaXRpYWxFeGVjdXRpb25EaWdlc3QociksYSkpLGw9dGhpcy5jcmVhdGVFeGVjdXRpb25EYXRhQW5kU3RhY2tGcmFtZXNMb2FkZXIocmUodGhpcy5vbkV4ZWN1dGlvbkRpZ2VzdEZvY3VzZWQoKSxyLnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3Qoa1opLHRoaXMuc3RvcmUuc2VsZWN0KGNYKSksSXQoKChbLHQsZV0pPT4oe2FjdGl2ZVJ1bklkOnQsbG9hZGVkRXhlY3V0aW9uRGF0YTplLGZvY3VzSW5kZXg6MH0pKSkpKSk7cmV0dXJuIHJlKG8scyxsLHRoaXMuY3JlYXRlTnVtR3JhcGhFeGVjdXRpb25Mb2FkZXIodCksZSx0aGlzLm9uU291cmNlRmlsZUZvY3VzZWQoKSx0aGlzLmxvYWRHcmFwaEV4ZWN1dGlvblBhZ2VzKHRoaXMub25HcmFwaEV4ZWN1dGlvblNjcm9sbCgpKSx0aGlzLmxvYWRHcmFwaE9wU3RhY2tGcmFtZXModGhpcy5sb2FkR3JhcGhPcEluZm8oKSkpLnBpcGUoSXQoKCgpPT4oe30pKSkpfSkse2Rpc3BhdGNoOiExfSl9b25EZWJ1Z2dlckRhdGFQb2xsKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShEayhScSksemUoKHQ9PihmdW5jdGlvbiBlKHQsbixvKXtyZXR1cm4gdC5waXBlKChmdW5jdGlvbiBpKHQpe3JldHVybiBSKChmdW5jdGlvbihlLG4pe3ZhciBvLGksYT0hMSxyPSExLHM9ITEsbD1mdW5jdGlvbigpe3JldHVybiBzJiZyJiYobi5jb21wbGV0ZSgpLCEwKX0sYz1mdW5jdGlvbigpe3M9ITEsbz1lLnN1YnNjcmliZShuZXcgVChuLHZvaWQgMCwoZnVuY3Rpb24oKXtzPSEwLCFsKCkmJihpfHwoaT1uZXcgSSx0KGkpLnN1YnNjcmliZShuZXcgVChuLChmdW5jdGlvbigpe28/YygpOmE9ITB9KSwoZnVuY3Rpb24oKXtyPSEwLGwoKX0pKSkpLGkpLm5leHQoKX0pKSksYSYmKG8udW5zdWJzY3JpYmUoKSxvPW51bGwsYT0hMSxjKCkpfTtjKCl9KSl9KSgodD0+dC5waXBlKFZlKG4pLF9lKCgoWyx0XSk9PmFlKHQpKSkpKSksSWUobyksSXQoKCgpPT57fSkpKX0pKEV0KHQpLHRoaXMuc3RvcmUuc2VsZWN0KFNaKS5waXBlKEl0KCh0PT4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdD42ZTQ/NmU0OnQ+NGUzP3Q6MmUzfSkodCkpKSksdGhpcy5hY3Rpb25zJC5waXBlKERrKEFxKSkpKSksRmUoKCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKFRxKCkpKSksSXQoKCgpPT57fSkpKX1vbkNvcmVSZWxvYWQoKXtyZXR1cm4gcmUodGhpcy5hY3Rpb25zJC5waXBlKERrKHZFLHhFKSksdGhpcy5hY3Rpb25zJC5waXBlKERrKF9FKSkucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdCh3WikpLGNlKCgoWyx0XSk9PnQuc3RhdGU9PT15RS5OT1RfTE9BREVEfHx0LnN0YXRlPT09eUUuRkFJTEVEJiZudWxsPT09dC5sYXN0TG9hZGVkVGltZUluTXMpKSkpLnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3QoTVIpKSxjZSgoKFssdF0pPT50PT09VEopKSxGZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goVHEoKSkpKSxJdCgoKCk9Pnt9KSkpfWxvYWREZWJ1Z2dlclJ1bnModCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdCh3WikpLGNlKCgoWyx7c3RhdGU6dH1dKT0+dCE9PXlFLkxPQURJTkcpKSxGZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goTnEoKSkpKSxadCgoKCk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaFJ1bnMoKS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaCh6cSh7cnVuczp0fSkpfSkpLEl0KCgoKT0+e30pKSkpKSl9Y3JlYXRlTnVtRXhlY3V0aW9uTG9hZGVyKHQpe3JldHVybiB0LnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3QoUFopLHRoaXMuc3RvcmUuc2VsZWN0KEhaKSksY2UoKChbLHQsZV0pPT5PYmplY3Qua2V5cyh0KS5sZW5ndGg+MCYmZS5zdGF0ZSE9PXlFLkxPQURJTkcpKSxGZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goVnEoKSkpKSxadCgoKFssdF0pPT57Y29uc3QgZT1PYmplY3Qua2V5cyh0KVswXTtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoRXhlY3V0aW9uRGlnZXN0cyhlLDAsMCkucGlwZShGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goanEoe251bUV4ZWN1dGlvbnM6dC5udW1fZGlnZXN0c30pKX0pKSxJdCgoKCk9Pnt9KSkpfSkpKX1jcmVhdGVOdW1HcmFwaEV4ZWN1dGlvbkxvYWRlcih0KXtyZXR1cm4gdC5waXBlKFZlKHRoaXMuc3RvcmUuc2VsZWN0KFBaKSx0aGlzLnN0b3JlLnNlbGVjdChXWikpLGNlKCgoWyx0LGVdKT0+T2JqZWN0LmtleXModCkubGVuZ3RoPjAmJmUuc3RhdGUhPT15RS5MT0FESU5HKSksRmUoKCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKEtxKCkpKSksWnQoKChbLHRdKT0+e2NvbnN0IGU9T2JqZWN0LmtleXModClbMF07cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaEdyYXBoRXhlY3V0aW9uRGlnZXN0cyhlLDAsMCkucGlwZShGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goSnEoe251bUdyYXBoRXhlY3V0aW9uczp0Lm51bV9kaWdlc3RzfSkpfSkpLEl0KCgoKT0+e30pKSl9KSkpfWNyZWF0ZU51bUFsZXJ0c0FuZEJyZWFrZG93bkxvYWRlcih0KXtyZXR1cm4gdC5waXBlKFZlKHRoaXMuc3RvcmUuc2VsZWN0KFBaKSx0aGlzLnN0b3JlLnNlbGVjdChFWikpLGNlKCgoWyx0LGVdKT0+T2JqZWN0LmtleXModCkubGVuZ3RoPjAmJmUuc3RhdGUhPT15RS5MT0FESU5HKSksRmUoKCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKEhxKCkpKSksWnQoKChbLHRdKT0+e2NvbnN0IGU9T2JqZWN0LmtleXModClbMF07cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaEFsZXJ0cyhlLDAsMCkucGlwZShGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goRnEoe251bUFsZXJ0czp0Lm51bV9hbGVydHMsYWxlcnRzQnJlYWtkb3duOnQuYWxlcnRzX2JyZWFrZG93bn0pKX0pKSxJdCgoKCk9Pnt9KSkpfSkpKX1jcmVhdGVJbml0aWFsRXhlY3V0aW9uRGV0ZWN0b3IodCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChMWiksdGhpcy5zdG9yZS5zZWxlY3QoRlopKSxjZSgoKFssdCxlXSk9PnQ+MCYmMD09PU9iamVjdC5rZXlzKGUucGFnZUxvYWRlZFNpemVzKS5sZW5ndGgpKSxJdCgoKCk9Pnt9KSkpfWNyZWF0ZUluaXRpYWxFeGVjdXRpb25EaWdlc3QodCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChMWiksdGhpcy5zdG9yZS5zZWxlY3Qoa1opLHRoaXMuc3RvcmUuc2VsZWN0KFZaKSksY2UoKChbLCx0XSk9Pm51bGwhPT10KSksSXQoKChbLHQsZSxuXSk9Pih7YmVnaW46MCxlbmQ6TWF0aC5taW4odCxuKSxydW5JZDplfSkpKSl9b25FeGVjdXRpb25TY3JvbGwoKXtyZXR1cm4gdGhpcy5hY3Rpb25zJC5waXBlKERrKFdxLFlxLHFxKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChrWiksdGhpcy5zdG9yZS5zZWxlY3QoQlopLHRoaXMuc3RvcmUuc2VsZWN0KExaKSx0aGlzLnN0b3JlLnNlbGVjdChqWiksdGhpcy5zdG9yZS5zZWxlY3QoVlopKSxjZSgoKFt0XSk9Pm51bGwhPT10KSksSXQoKChbLHQsZSxuLG8saV0pPT4oe3J1bklkOnQsYmVnaW46ZSxlbmQ6TWF0aC5taW4obixlK28pLHBhZ2VTaXplOml9KSkpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KEZaKSksSXQoKChbdCxlXSk9Pih7cHJvcHM6dCxsb2FkZWQ6ZSxtaXNzaW5nUGFnZXM6TkoodC5iZWdpbix0LmVuZCx0LnBhZ2VTaXplLGUubnVtRXhlY3V0aW9ucyxlLnBhZ2VMb2FkZWRTaXplcyl9KSkpLGNlKCgoe21pc3NpbmdQYWdlczp0fSk9PnQubGVuZ3RoPjApKSxJdCgoKHtwcm9wczp0LGxvYWRlZDplLG1pc3NpbmdQYWdlczpufSk9Pntjb25zdHtydW5JZDpvLHBhZ2VTaXplOml9PXQ7cmV0dXJue2JlZ2luOm5bMF0qaSxlbmQ6TWF0aC5taW4oZS5udW1FeGVjdXRpb25zLChuW24ubGVuZ3RoLTFdKzEpKmkpLHJ1bklkOm99fSkpKX1jcmVhdGVFeGVjdXRpb25EaWdlc3RMb2FkZXIodCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChGWikpLGNlKCgoW3tiZWdpbjp0LGVuZDplfSxuXSk9PmU+dCYmIShmdW5jdGlvbiBvKHQsZSxuKXtpZihlPj1uKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYmVnaW4gdG8gYmUgbGVzcyB0aGFuIGVuZCwgYnV0IGdvdCBiZWdpbj0ke2V9LCBlbmQ9JHtufWApO3JldHVybi0xIT09dC5maW5kSW5kZXgoKHQ9PnQuYmVnaW4+PWUmJnQuZW5kPD1uKSl9KShuLmxvYWRpbmdSYW5nZXMsdCxlKSkpLEZlKCgoW3tiZWdpbjp0LGVuZDplfV0pPT57dGhpcy5zdG9yZS5kaXNwYXRjaChVcSh7YmVnaW46dCxlbmQ6ZX0pKX0pKSxadCgoKFt7cnVuSWQ6dCxiZWdpbjplLGVuZDpufV0pPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hFeGVjdXRpb25EaWdlc3RzKHQsZSxuKS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaChHcSh0KSl9KSksSXQoKCgpPT57fSkpKSkpKX1vbkV4ZWN1dGlvbkRpZ2VzdEZvY3VzZWQoKXtyZXR1cm4gdGhpcy5hY3Rpb25zJC5waXBlKERrKFpxKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChrWiksdGhpcy5zdG9yZS5zZWxlY3QoY1gpLHRoaXMuc3RvcmUuc2VsZWN0KEJaKSksSXQoKChbdCxlLG4sb10pPT4oe2FjdGl2ZVJ1bklkOmUsbG9hZGVkRXhlY3V0aW9uRGF0YTpuLGZvY3VzSW5kZXg6byt0LmRpc3BsYXlJbmRleH0pKSkpfWNyZWF0ZUV4ZWN1dGlvbkRhdGFBbmRTdGFja0ZyYW1lc0xvYWRlcih0KXtyZXR1cm4gdC5waXBlKGNlKCgoe2FjdGl2ZVJ1bklkOnQsbG9hZGVkRXhlY3V0aW9uRGF0YTplLGZvY3VzSW5kZXg6bn0pPT5udWxsIT09dCYmbnVsbCE9PW4mJnZvaWQgMD09PWVbbl0pKSxadCgoKHthY3RpdmVSdW5JZDp0LGZvY3VzSW5kZXg6ZX0pPT57Y29uc3Qgbj1lLG89bisxO3JldHVybiB0aGlzLmRhdGFTb3VyY2UuZmV0Y2hFeGVjdXRpb25EYXRhKHQsbixvKS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaChYcSh0KSl9KSksSXQoKHQ9Pih7ZXhlY3V0aW9uRGF0YTp0LGJlZ2luOm4sZW5kOm99KSkpKX0pKSxJdCgoKHtleGVjdXRpb25EYXRhOnR9KT0+dC5leGVjdXRpb25zWzBdKSksVmUodGhpcy5zdG9yZS5zZWxlY3Qoa1opLHRoaXMuc3RvcmUuc2VsZWN0KHBYKSksY2UoKChbdCxlLG5dKT0+e2lmKG51bGw9PT1lKXJldHVybiExO2Zvcihjb25zdCBlIG9mIHQuc3RhY2tfZnJhbWVfaWRzKWlmKHZvaWQgMD09PW5bZV0pcmV0dXJuITA7cmV0dXJuITF9KSksWnQoKChbdCxlXSk9Pntjb25zdCBuPXQuc3RhY2tfZnJhbWVfaWRzO3JldHVybiB0aGlzLmRhdGFTb3VyY2UuZmV0Y2hTdGFja0ZyYW1lcyhlLG4pLnBpcGUoRmUoKHQ9Pntjb25zdCBlPXt9O2ZvcihsZXQgbz0wO288bi5sZW5ndGg7KytvKWVbbltvXV09dC5zdGFja19mcmFtZXNbb107dGhpcy5zdG9yZS5kaXNwYXRjaChkWih7c3RhY2tGcmFtZXM6ZX0pKX0pKSxJdCgoKCk9Pnt9KSkpfSkpKX1vbkdyYXBoRXhlY3V0aW9uU2Nyb2xsKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShEayh0WiksZ2UoMTAwKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChrWiksdGhpcy5zdG9yZS5zZWxlY3QoWVopLHRoaXMuc3RvcmUuc2VsZWN0KHFaKSksY2UoKChbLHQsZV0pPT5udWxsIT09dCYmZT4wKSksSXQoKChbLHQsZSxuXSk9Pih7cnVuSWQ6dCxudW1HcmFwaEV4ZWN1dGlvbnM6ZSxzY3JvbGxCZWdpbkluZGV4Om59KSkpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KFhaKSx0aGlzLnN0b3JlLnNlbGVjdChaWiksdGhpcy5zdG9yZS5zZWxlY3QoS1opLHRoaXMuc3RvcmUuc2VsZWN0KEpaKSksSXQoKChbe3J1bklkOnQsbnVtR3JhcGhFeGVjdXRpb25zOmUsc2Nyb2xsQmVnaW5JbmRleDpufSxvLGksYSxyXSk9PntsZXQgcz1OSihuLE1hdGgubWluKG4raSxlKSxvLGUscik7cmV0dXJuIHM9cy5maWx0ZXIoKHQ9Pi0xPT09YS5pbmRleE9mKHQpKSkse3J1bklkOnQsbWlzc2luZ1BhZ2VzOnMscGFnZVNpemU6byxudW1HcmFwaEV4ZWN1dGlvbnM6ZX19KSkpfWxvYWRHcmFwaEV4ZWN1dGlvblBhZ2VzKHQpe3JldHVybiB0LnBpcGUoY2UoKCh7bWlzc2luZ1BhZ2VzOnR9KT0+dC5sZW5ndGg+MCkpLEZlKCgoe21pc3NpbmdQYWdlczp0fSk9Pnt0LmZvckVhY2goKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKFFxKHtwYWdlSW5kZXg6dH0pKX0pKX0pKSxadCgoKHtydW5JZDp0LG1pc3NpbmdQYWdlczplLHBhZ2VTaXplOm4sbnVtR3JhcGhFeGVjdXRpb25zOm99KT0+e2NvbnN0IGk9ZVswXSpuLGE9TWF0aC5taW4oKGVbZS5sZW5ndGgtMV0rMSkqbixvKTtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoR3JhcGhFeGVjdXRpb25EYXRhKHQsaSxhKS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaCgkcSh0KSl9KSksSXQoKCgpPT57fSkpKX0pKSl9bG9hZEdyYXBoT3BJbmZvKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShEayhuWixlWiksVmUodGhpcy5zdG9yZS5zZWxlY3Qoa1opLHRoaXMuc3RvcmUuc2VsZWN0KGRYKSksY2UoKChbdCxlLG5dKT0+e2NvbnN0e2dyYXBoX2lkOm8sb3BfbmFtZTppfT10O3JldHVybiEobnVsbD09PWV8fHZvaWQgMCE9PW5bb10mJm5bb10uaGFzKGkpJiYobltvXS5nZXQoaSk9PT15RS5MT0FESU5HfHxuW29dLmdldChpKT09PXlFLkxPQURFRCkpfSkpLEZlKCgoW3tncmFwaF9pZDp0LG9wX25hbWU6ZX1dKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChvWih7Z3JhcGhfaWQ6dCxvcF9uYW1lOmV9KSkpKSxadCgoKFt0LGVdKT0+e2NvbnN0e2dyYXBoX2lkOm4sb3BfbmFtZTpvfT10O3JldHVybiB0aGlzLmRhdGFTb3VyY2UuZmV0Y2hHcmFwaE9wSW5mbyhlLG4sbykucGlwZShGZSgodD0+dGhpcy5zdG9yZS5kaXNwYXRjaChpWih7Z3JhcGhPcEluZm9SZXNwb25zZTp0fSkpKSksSXQoKHQ9Pih7cnVuSWQ6ZSxzdGFja0ZyYW1lSWRzOnQuc3RhY2tfZnJhbWVfaWRzfSkpKSl9KSkpfWxvYWRHcmFwaE9wU3RhY2tGcmFtZXModCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChwWCkpLEl0KCgoW3tydW5JZDp0LHN0YWNrRnJhbWVJZHM6ZX0sbl0pPT4oe3J1bklkOnQsbWlzc2luZ1N0YWNrRnJhbWVJZHM6ZS5maWx0ZXIoKHQ9PnZvaWQgMD09PW5bdF0pKX0pKSksY2UoKCh7cnVuSWQ6dCxtaXNzaW5nU3RhY2tGcmFtZUlkczplfSk9Pm51bGwhPT10JiZlLmxlbmd0aD4wKSksWnQoKCh7cnVuSWQ6dCxtaXNzaW5nU3RhY2tGcmFtZUlkczplfSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaFN0YWNrRnJhbWVzKHQsZSkucGlwZShGZSgodD0+e2NvbnN0IG49e307Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDsrK28pbltlW29dXT10LnN0YWNrX2ZyYW1lc1tvXTt0aGlzLnN0b3JlLmRpc3BhdGNoKGRaKHtzdGFja0ZyYW1lczpufSkpfSkpLEl0KCgoKT0+e30pKSkpKSl9b25BbGVydFR5cGVGb2N1c2VkKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShEayhCcSksVmUodGhpcy5zdG9yZS5zZWxlY3Qoa1opLHRoaXMuc3RvcmUuc2VsZWN0KEFaKSx0aGlzLnN0b3JlLnNlbGVjdChUWiksdGhpcy5zdG9yZS5zZWxlY3QoTlopLHRoaXMuc3RvcmUuc2VsZWN0KEVaKSksY2UoKChbLHQsZSxuLG8saV0pPT5udWxsIT09dCYmbnVsbCE9PWUmJm4+MCYmKG51bGw9PT1vfHxPYmplY3Qua2V5cyhvKS5sZW5ndGg8bikmJmkuc3RhdGUhPT15RS5MT0FESU5HKSksRmUoKCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKEhxKCkpKSksWnQoKChbLHQsZV0pPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hBbGVydHModCwwLC0xLGUpKSksRmUoKCh7bnVtX2FsZXJ0czp0LGFsZXJ0c19icmVha2Rvd246ZSxhbGVydF90eXBlOm4sYmVnaW46byxlbmQ6aSxhbGVydHM6YX0pPT57dGhpcy5zdG9yZS5kaXNwYXRjaChMcSh7bnVtQWxlcnRzOnQsYWxlcnRzQnJlYWtkb3duOmUsYWxlcnRUeXBlOm4sYmVnaW46byxlbmQ6aSxhbGVydHM6YX0pKX0pKSl9ZmV0Y2hFeGVjdXRpb25EaWdlc3RzRm9yQWxlcnRUeXBlRm9jdXModCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChWWiksdGhpcy5zdG9yZS5zZWxlY3QoalopLHRoaXMuc3RvcmUuc2VsZWN0KExaKSx0aGlzLnN0b3JlLnNlbGVjdChGWiksdGhpcy5zdG9yZS5zZWxlY3Qoa1opKSxJdCgoKFt0LGUsbixvLGksYV0pPT57Y29uc3Qgcj10LmFsZXJ0c1swXS5leGVjdXRpb25faW5kZXgscz1OSihNYXRoLm1heCgwLHItTWF0aC5mbG9vcihuLzIpKSxNYXRoLm1pbihyK01hdGguZmxvb3Iobi8yKSxvKSxlLG8saS5wYWdlTG9hZGVkU2l6ZXMpO3JldHVybiAwPT09cy5sZW5ndGg/e3J1bklkOmEsYmVnaW46MCxlbmQ6MH06e3J1bklkOmEsYmVnaW46c1swXSplLGVuZDpNYXRoLm1pbihpLm51bUV4ZWN1dGlvbnMsKHNbcy5sZW5ndGgtMV0rMSkqZSl9fSkpKX1sb2FkU291cmNlRmlsZUxpc3QodCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChrWiksdGhpcy5zdG9yZS5zZWxlY3QoaFgpKSxjZSgoKFssdCxlXSk9Pm51bGwhPT10JiZlLnN0YXRlIT09eUUuTE9BRElORykpLEZlKCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChhWigpKSkpLFp0KCgoWyx0XSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaFNvdXJjZUZpbGVMaXN0KHQpLnBpcGUoRmUoKHQ9Pntjb25zdCBlPVtdO3QuZm9yRWFjaCgoKFt0LG5dKT0+e2UucHVzaCh7aG9zdF9uYW1lOnQsZmlsZV9wYXRoOm59KX0pKSx0aGlzLnN0b3JlLmRpc3BhdGNoKHJaKHtzb3VyY2VGaWxlczplfSkpfSkpLEl0KCgoKT0+e30pKSkpKSl9b25Tb3VyY2VGaWxlRm9jdXNlZCgpe3JldHVybiB0aGlzLmFjdGlvbnMkLnBpcGUoRGsoc1opLFZlKHRoaXMuc3RvcmUuc2VsZWN0KGtaKSx0aGlzLnN0b3JlLnNlbGVjdChiWCksdGhpcy5zdG9yZS5zZWxlY3QoeVgpKSxJdCgoKFt0LGUsbixvXSk9Pih7cnVuSWQ6ZSxzdGFja0ZyYW1lOnQuc3RhY2tGcmFtZSxmaWxlSW5kZXg6bixmaWxlQ29udGVudDpvfSkpKSxjZSgoKHtydW5JZDp0LGZpbGVDb250ZW50OmV9KT0+bnVsbCE9PXQmJm51bGwhPT1lJiZlLmxvYWRTdGF0ZT09PXlFLk5PVF9MT0FERUQpKSxGZSgoKHtzdGFja0ZyYW1lOnR9KT0+dGhpcy5zdG9yZS5kaXNwYXRjaChsWih7aG9zdF9uYW1lOnQuaG9zdF9uYW1lLGZpbGVfcGF0aDp0LmZpbGVfcGF0aH0pKSkpLFp0KCgoe2ZpbGVJbmRleDp0LHJ1bklkOmV9KT0+dGhpcy5kYXRhU291cmNlLmZldGNoU291cmNlRmlsZShlLHQpLnBpcGUoRmUoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKGNaKHQpKX0pKSxJdCgoKCk9Pnt9KSkpKSkpfX16Si7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ekopKHZyKFNrKSx2cihJdyksdnIoa3EpKX0sekouybVwcm92PU1uKHt0b2tlbjp6SixmYWN0b3J5OnpKLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh6Sixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U2t9LHt0eXBlOkl3fSx7dHlwZTprcX1dfSksbnVsbCk7Y2xhc3MgSUp7fUlKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJSil9LElKLsm1bW9kPWFvKHt0eXBlOklKfSksSUouybVpbmo9dm4oe2ltcG9ydHM6W1tXTV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChJSixbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbeFgsUFhdLGltcG9ydHM6W1dNXSxleHBvcnRzOltQWF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhJSix7ZGVjbGFyYXRpb25zOlt4WCxQWF0saW1wb3J0czpbV01dLGV4cG9ydHM6W1BYXX0pO2NsYXNzIEhKe31ISi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SEopfSxISi7JtW1vZD1hbyh7dHlwZTpISn0pLEhKLsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSEosW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0JLLERLLFZLXSxpbXBvcnRzOltXTV0sZXhwb3J0czpbVktdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oSEose2RlY2xhcmF0aW9uczpbQkssREssVktdLGltcG9ydHM6W1dNXSxleHBvcnRzOltWS119KTtjbGFzcyBGSnt9RkouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEZKKX0sRkouybVtb2Q9YW8oe3R5cGU6Rkp9KSxGSi7JtWluaj12bih7aW1wb3J0czpbW1dNXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEZKLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOlt0SyxpSyxvSyxlSyxuSyxhS10saW1wb3J0czpbV01dLGV4cG9ydHM6W2FLXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEZKLHtkZWNsYXJhdGlvbnM6W3RLLGlLLG9LLGVLLG5LLGFLXSxpbXBvcnRzOltXTV0sZXhwb3J0czpbYUtdfSk7Y2xhc3MgTEp7fUxKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMSil9LExKLsm1bW9kPWFvKHt0eXBlOkxKfSksTEouybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxGSixfRl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMSixbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbS0ssSktdLGltcG9ydHM6W1dNLEZKLF9GXSxleHBvcnRzOltKS119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhMSix7ZGVjbGFyYXRpb25zOltLSyxKS10saW1wb3J0czpbV00sRkosX0ZdLGV4cG9ydHM6W0pLXX0pO2NsYXNzIEJKe31CSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QkopfSxCSi7JtW1vZD1hbyh7dHlwZTpCSn0pLEJKLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJKLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltEcSxFcV0sZXhwb3J0czpbRXFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oQkose2RlY2xhcmF0aW9uczpbRHEsRXFdLGV4cG9ydHM6W0VxXX0pO2NsYXNzIFZKe31WSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VkopfSxWSi7JtW1vZD1hbyh7dHlwZTpWSn0pLFZKLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFZKLFt7dHlwZTpBeSxhcmdzOlt7ZXhwb3J0czpbb0pdLGRlY2xhcmF0aW9uczpbb0pdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVkose2RlY2xhcmF0aW9uczpbb0pdLGV4cG9ydHM6W29KXX0pO2NvbnN0IGpKPVsiY29kZVZpZXdlckNvbnRhaW5lciJdO2NsYXNzIFVKe2NvbnN0cnVjdG9yKCl7dGhpcy5maXJzdFRleHQ9bnVsbCx0aGlzLnNlY29uZFRleHQ9bnVsbCx0aGlzLnJlbmRlclNpZGVCeVNpZGU9ITAsdGhpcy5tb25hY289bnVsbCx0aGlzLmVkaXRvcj1udWxsLHRoaXMuUkVTSVpFX0RFQk9VTkNFX0lOVEVSVkFMX01TPTUwfW9uUmVzaXplKCl7dGhpcy5lZGl0b3ImJnRoaXMuZWRpdG9yLmxheW91dCgpfW5nT25DaGFuZ2VzKHQpe2lmKCF0aGlzLm1vbmFjbylyZXR1cm47Y29uc3QgZT0hdGhpcy5lZGl0b3I7ZSYmKHRoaXMuZWRpdG9yPXRoaXMubW9uYWNvLmVkaXRvci5jcmVhdGVEaWZmRWRpdG9yKHRoaXMuY29kZVZpZXdlckNvbnRhaW5lci5uYXRpdmVFbGVtZW50LHtyZWFkT25seTohMCxmb250U2l6ZToxMCxtaW5pbWFwOntlbmFibGVkOiEwfSxyZW5kZXJTaWRlQnlTaWRlOnRoaXMucmVuZGVyU2lkZUJ5U2lkZSx0aGVtZTpuSih0aGlzLnVzZURhcmtNb2RlKX0pKSwoZXx8dC5maXJzdFRleHR8fHQuc2Vjb25kVGV4dCkmJnRoaXMuZWRpdG9yLnNldE1vZGVsKHtvcmlnaW5hbDp0aGlzLm1vbmFjby5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5maXJzdFRleHR8fCIiKSxtb2RpZmllZDp0aGlzLm1vbmFjby5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5zZWNvbmRUZXh0fHwiIil9KSx0LnJlbmRlclNpZGVCeVNpZGUmJnRoaXMuZWRpdG9yLnVwZGF0ZU9wdGlvbnMoe3JlbmRlclNpZGVCeVNpZGU6dGhpcy5yZW5kZXJTaWRlQnlTaWRlfSksdC51c2VEYXJrTW9kZSYmdGhpcy5tb25hY28uZWRpdG9yLnNldFRoZW1lKG5KKHRoaXMudXNlRGFya01vZGUpKX19VUouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVKKX0sVUouybVjbXA9dG8oe3R5cGU6VUosc2VsZWN0b3JzOltbInNvdXJjZS1jb2RlLWRpZmYtY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChqSiw3LGhnKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLmNvZGVWaWV3ZXJDb250YWluZXI9dC5maXJzdCl9fSxpbnB1dHM6e2ZpcnN0VGV4dDoiZmlyc3RUZXh0IixzZWNvbmRUZXh0OiJzZWNvbmRUZXh0IixyZW5kZXJTaWRlQnlTaWRlOiJyZW5kZXJTaWRlQnlTaWRlIixtb25hY286Im1vbmFjbyIsdXNlRGFya01vZGU6InVzZURhcmtNb2RlIn0sZmVhdHVyZXM6W0JvXSxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1siZGV0ZWN0UmVzaXplIiwiIiwxLCJjb2RlLXZpZXdlci1jb250YWluZXIiLDMsInJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zIiwib25SZXNpemUiXSxbImNvZGVWaWV3ZXJDb250YWluZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCwxKSxWbSgib25SZXNpemUiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZXNpemUoKX0pKSxBbSgpKSwyJmUmJkRtKCJyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5NcyIsbi5SRVNJWkVfREVCT1VOQ0VfSU5URVJWQUxfTVMpfSxkaXJlY3RpdmVzOltvSl0sc3R5bGVzOlsiLmNvZGUtdmlld2VyLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFVKLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InNvdXJjZS1jb2RlLWRpZmYtY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPGRpdlxuICAgICAgI2NvZGVWaWV3ZXJDb250YWluZXJcbiAgICAgIGNsYXNzPSJjb2RlLXZpZXdlci1jb250YWluZXIiXG4gICAgICBkZXRlY3RSZXNpemVcbiAgICAgIFtyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5Nc109IlJFU0laRV9ERUJPVU5DRV9JTlRFUlZBTF9NUyJcbiAgICAgIChvblJlc2l6ZSk9Im9uUmVzaXplKCkiXG4gICAgPjwvZGl2PlxuICAnLHN0eWxlczpbIlxuICAgICAgLmNvZGUtdmlld2VyLWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICAiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtmaXJzdFRleHQ6W3t0eXBlOnh5fV0sc2Vjb25kVGV4dDpbe3R5cGU6eHl9XSxyZW5kZXJTaWRlQnlTaWRlOlt7dHlwZTp4eX1dLG1vbmFjbzpbe3R5cGU6eHl9XSx1c2VEYXJrTW9kZTpbe3R5cGU6eHl9XSxjb2RlVmlld2VyQ29udGFpbmVyOlt7dHlwZTpaYSxhcmdzOlsiY29kZVZpZXdlckNvbnRhaW5lciIse3N0YXRpYzohMCxyZWFkOmhnfV19XX0pO2NsYXNzIEdKe2NvbnN0cnVjdG9yKCl7dGhpcy5maXJzdFRleHQ9bnVsbCx0aGlzLnNlY29uZFRleHQ9bnVsbCx0aGlzLnJlbmRlclNpZGVCeVNpZGU9ITAsdGhpcy51c2VEYXJrTW9kZT0hMSx0aGlzLm1vbmFjbyQ9bnVsbH1uZ09uSW5pdCgpe3RoaXMubW9uYWNvJD1DdChlSigpKS5waXBlKEl0KCgoKT0+d2luZG93Lm1vbmFjbykpKX19R0ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEdKKX0sR0ouybVjbXA9dG8oe3R5cGU6R0osc2VsZWN0b3JzOltbInNvdXJjZS1jb2RlLWRpZmYiXV0saW5wdXRzOntmaXJzdFRleHQ6ImZpcnN0VGV4dCIsc2Vjb25kVGV4dDoic2Vjb25kVGV4dCIscmVuZGVyU2lkZUJ5U2lkZToicmVuZGVyU2lkZUJ5U2lkZSIsdXNlRGFya01vZGU6InVzZURhcmtNb2RlIn0sZGVjbHM6Mix2YXJzOjcsY29uc3RzOltbMywiZmlyc3RUZXh0Iiwic2Vjb25kVGV4dCIsInJlbmRlclNpZGVCeVNpZGUiLCJtb25hY28iLCJ1c2VEYXJrTW9kZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwic291cmNlLWNvZGUtZGlmZi1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIikpLDImZSYmRG0oImZpcnN0VGV4dCIsbi5maXJzdFRleHQpKCJzZWNvbmRUZXh0IixuLnNlY29uZFRleHQpKCJyZW5kZXJTaWRlQnlTaWRlIixuLnJlbmRlclNpZGVCeVNpZGUpKCJtb25hY28iLFRoKDEsNSxuLm1vbmFjbyQpKSgidXNlRGFya01vZGUiLG4udXNlRGFya01vZGUpfSxkaXJlY3RpdmVzOltVSl0scGlwZXM6W3dNXSxzdHlsZXM6WyJzb3VyY2UtY29kZS1kaWZmLWNvbXBvbmVudFtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChHSixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJzb3VyY2UtY29kZS1kaWZmIix0ZW1wbGF0ZTonXG4gICAgPHNvdXJjZS1jb2RlLWRpZmYtY29tcG9uZW50XG4gICAgICBbZmlyc3RUZXh0XT0iZmlyc3RUZXh0IlxuICAgICAgW3NlY29uZFRleHRdPSJzZWNvbmRUZXh0IlxuICAgICAgW3JlbmRlclNpZGVCeVNpZGVdPSJyZW5kZXJTaWRlQnlTaWRlIlxuICAgICAgW21vbmFjb109Im1vbmFjbyQgfCBhc3luYyJcbiAgICAgIFt1c2VEYXJrTW9kZV09InVzZURhcmtNb2RlIlxuICAgID48L3NvdXJjZS1jb2RlLWRpZmYtY29tcG9uZW50PlxuICAnLHN0eWxlczpbIlxuICAgICAgc291cmNlLWNvZGUtZGlmZi1jb21wb25lbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse2ZpcnN0VGV4dDpbe3R5cGU6eHl9XSxzZWNvbmRUZXh0Olt7dHlwZTp4eX1dLHJlbmRlclNpZGVCeVNpZGU6W3t0eXBlOnh5fV0sdXNlRGFya01vZGU6W3t0eXBlOnh5fV19KTtjbGFzcyBXSnt9V0ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFdKKX0sV0ouybVtb2Q9YW8oe3R5cGU6V0p9KSxXSi7JtWluaj12bih7aW1wb3J0czpbW1dNLFZKXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFdKLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOlthSixySixVSixHSl0saW1wb3J0czpbV00sVkpdLGV4cG9ydHM6W3JKLEdKXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFdKLHtkZWNsYXJhdGlvbnM6W2FKLHJKLFVKLEdKXSxpbXBvcnRzOltXTSxWSl0sZXhwb3J0czpbckosR0pdfSk7Y2xhc3MgWUp7fVlKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxZSil9LFlKLsm1bW9kPWFvKHt0eXBlOllKfSksWUouybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxXSl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChZSixbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbZEoscEpdLGltcG9ydHM6W1dNLFdKXSxleHBvcnRzOltwSl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhZSix7ZGVjbGFyYXRpb25zOltkSixwSl0saW1wb3J0czpbV00sV0pdLGV4cG9ydHM6W3BKXX0pO2NsYXNzIHFKe31xSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cUopfSxxSi7JtW1vZD1hbyh7dHlwZTpxSn0pLHFKLsm1aW5qPXZuKHtpbXBvcnRzOltbV00sV0pdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocUosW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2tKLFNKXSxpbXBvcnRzOltXTSxXSl0sZXhwb3J0czpbU0pdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8ocUose2RlY2xhcmF0aW9uczpba0osU0pdLGltcG9ydHM6W1dNLFdKXSxleHBvcnRzOltTSl19KTtjbGFzcyBaSnt9WkouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFpKKX0sWkouybVtb2Q9YW8oe3R5cGU6Wkp9KSxaSi7JtWluaj12bih7aW1wb3J0czpbW1dNLEZKXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFpKLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltwSyx1S10saW1wb3J0czpbV00sRkpdLGV4cG9ydHM6W3VLXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFpKLHtkZWNsYXJhdGlvbnM6W3BLLHVLXSxpbXBvcnRzOltXTSxGSl0sZXhwb3J0czpbdUtdfSk7Y2xhc3MgWEp7fVhKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYSil9LFhKLsm1bW9kPWFvKHt0eXBlOlhKfSksWEouybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxaSixKSCx6WF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYSixbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbQ0ssdktdLGltcG9ydHM6W1dNLFpKLEpILHpYXSxleHBvcnRzOlt2S119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhYSix7ZGVjbGFyYXRpb25zOltDSyx2S10saW1wb3J0czpbV00sWkosSkgselhdLGV4cG9ydHM6W3ZLXX0pO2NsYXNzIEtKe31mdW5jdGlvbiBKSih0LGUpe2NvbnN0IG49e307Zm9yKGNvbnN0IG8gb2YgT2JqZWN0LmtleXModCkpbltvXT1lKHRbb10sbyk7cmV0dXJuIG59ZnVuY3Rpb24gUUoodCxlLG4pe2NvbnN0e3BsdWdpbjpvLHRhZzppLHJ1bklkOmEsc2FtcGxlOnJ9PWVbdF0scz1uVChuLG8saSxyKTtpZihzKXtpZihudWxsIT09YSYmcy5ydW5Ub1Nlcmllcy5oYXNPd25Qcm9wZXJ0eShhKSl7Y29uc3QgdD1zLnJ1blRvU2VyaWVzW2FdLmxlbmd0aDtyZXR1cm4gdD4wP3QtMTpudWxsfWNvbnN0IHQ9T2JqZWN0LnZhbHVlcyhzLnJ1blRvU2VyaWVzKS5tYXAoKHQ9PnQubGVuZ3RoKSk7aWYodC5sZW5ndGgpcmV0dXJuIE1hdGgubWF4KC4uLnQpLTF9cmV0dXJuIG51bGx9ZnVuY3Rpb24gJEoodCxlLG4sbyl7Y29uc3QgaT1PYmplY3QuYXNzaWduKHt9LGUpO2Zvcihjb25zdCBhIGluIHQpe2lmKCF0Lmhhc093blByb3BlcnR5KGEpKWNvbnRpbnVlO2NvbnN0IHI9UUooYSx0LG4pO2lmKG51bGw9PT1yKXtlLmhhc093blByb3BlcnR5KGEpJiYoaVthXT1udWxsKTtjb250aW51ZX1jb25zdCBzPWUuaGFzT3duUHJvcGVydHkoYSk/ZVthXTpudWxsLGw9UUooYSx0LG8pLGM9bnVsbCE9PXMmJnM9PT1sLGQ9bnVsbD09PXN8fGM7KG51bGwhPT1zJiZzPnJ8fGQpJiYoaVthXT1yKX1yZXR1cm4gaX1mdW5jdGlvbiB0USh0KXtjb25zdCBlPUpKKHQucnVuVG9Mb2FkU3RhdGUsKHQ9PnQ9PT15RS5MT0FESU5HP3lFLkxPQURJTkc6eUUuTk9UX0xPQURFRCkpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3J1blRvTG9hZFN0YXRlOmV9KX1mdW5jdGlvbiBlUSh0LGUsbixvKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoW3QsZSxufHwiIixvXSl9S0ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEtKKX0sS0ouybVtb2Q9YW8oe3R5cGU6S0p9KSxLSi7JtWluaj12bih7aW1wb3J0czpbW0lKLFdNLEVSLExKLEhKLEJKLFlKLHFKLFNxLFhKLGRrLmZvckZlYXR1cmUocFoseFopLFdrLmZvckZlYXR1cmUoW3pKXSksd3EuZm9yUGx1Z2luKFRKLEFKKV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChLSixbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbUkosQUpdLGltcG9ydHM6W0lKLFdNLEVSLExKLEhKLEJKLFlKLHFKLFNxLFhKLGRrLmZvckZlYXR1cmUocFoseFopLFdrLmZvckZlYXR1cmUoW3pKXSksd3EuZm9yUGx1Z2luKFRKLEFKKV0sZXhwb3J0czpbQUpdLGVudHJ5Q29tcG9uZW50czpbQUpdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oS0ose2RlY2xhcmF0aW9uczpbUkosQUpdLGltcG9ydHM6W0lKLFdNLEVSLExKLEhKLEJKLFlKLHFKLFNxLFhKLGNrLEdrLHdxXSxleHBvcnRzOltBSl19KTtjb25zdHtpbml0aWFsU3RhdGU6blEscmVkdWNlcnM6b1F9PUhOKHt0YWdNZXRhZGF0YUxvYWRTdGF0ZTp7c3RhdGU6eUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0sdGFnTWV0YWRhdGE6e3NjYWxhcnM6e3RhZ0Rlc2NyaXB0aW9uczp7fSx0YWdUb1J1bnM6e319LGhpc3RvZ3JhbXM6e3RhZ0Rlc2NyaXB0aW9uczp7fSx0YWdUb1J1bnM6e319LGltYWdlczp7dGFnRGVzY3JpcHRpb25zOnt9LHRhZ1J1blNhbXBsZWRJbmZvOnt9fX0sY2FyZExpc3Q6W10sY2FyZFRvUGlubmVkQ29weTpuZXcgTWFwLHBpbm5lZENhcmRUb09yaWdpbmFsOm5ldyBNYXAsdW5yZXNvbHZlZEltcG9ydGVkUGlubmVkQ2FyZHM6W10sY2FyZE1ldGFkYXRhTWFwOnt9LGNhcmRTdGVwSW5kZXg6e30sdGFnRmlsdGVyOiIiLHRhZ0dyb3VwRXhwYW5kZWQ6bmV3IE1hcCxzZWxlY3RlZFRpbWU6bnVsbCxzZWxlY3RUaW1lRW5hYmxlZDohMSx1c2VSYW5nZVNlbGVjdFRpbWU6ITEsZmlsdGVyZWRQbHVnaW5UeXBlczpuZXcgU2V0LHN0ZXBNaW5NYXg6e21pbjoxLzAsbWF4Oi0xLzB9fSx7aXNTZXR0aW5nc1BhbmVPcGVuOiEwLHByb21vdGVUaW1lU2VyaWVzOiEwLHRpbWVTZXJpZXNEYXRhOntzY2FsYXJzOnt9LGhpc3RvZ3JhbXM6e30saW1hZ2VzOnt9fSxzZXR0aW5nczpwVCxzZXR0aW5nT3ZlcnJpZGVzOnt9LHZpc2libGVDYXJkTWFwOm5ldyBNYXB9LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3Zpc2libGVDYXJkTWFwOm5ldyBNYXB9KSkpLGlRPW5RLGFRPXlrKG5RLGJrKHJTLCgodCx7cm91dGVLaW5kOmUscGFydGlhbFN0YXRlOm59KT0+e2lmKGUhPT1aay5FWFBFUklNRU5UJiZlIT09WmsuQ09NUEFSRV9FWFBFUklNRU5UKXJldHVybiB0O2NvbnN0IG89bmV3IFNldDtmb3IoY29uc3QgZSBvZiB0LnBpbm5lZENhcmRUb09yaWdpbmFsLmtleXMoKSl7Y29uc3R7cGx1Z2luOm4sdGFnOmkscnVuSWQ6YSxzYW1wbGU6cn09dC5jYXJkTWV0YWRhdGFNYXBbZV07by5hZGQoZVEobixpLGEscikpfWNvbnN0IGk9bixhPVtdO2Zvcihjb25zdCBlIG9mWy4uLnQudW5yZXNvbHZlZEltcG9ydGVkUGlubmVkQ2FyZHMsLi4uaS5tZXRyaWNzLnBpbm5lZENhcmRzXSl7Y29uc3QgdD1lUShlLnBsdWdpbixlLnRhZyxlLnJ1bklkLGUuc2FtcGxlKTtvLmhhcyh0KXx8KG8uYWRkKHQpLGEucHVzaChlKSl9Y29uc3Qgcj1zVChhLHQuY2FyZExpc3QsdC5jYXJkTWV0YWRhdGFNYXAsdC5jYXJkVG9QaW5uZWRDb3B5LHQucGlubmVkQ2FyZFRvT3JpZ2luYWwsdC5jYXJkU3RlcEluZGV4KSxzPWkubWV0cmljcy5zbW9vdGhpbmc7bGV0IGw9dC5zZXR0aW5nT3ZlcnJpZGVzO2lmKE51bWJlci5pc0Zpbml0ZShzKSYmbnVsbCE9PXMpe2NvbnN0IGU9TWF0aC5tYXgoMCxNYXRoLm1pbiguOTk5LE51bWJlcihzLnRvUHJlY2lzaW9uKDMpKSkpO2w9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ092ZXJyaWRlcykse3NjYWxhclNtb290aGluZzplfSl9Y29uc3QgYz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSxyKSx7c2V0dGluZ092ZXJyaWRlczpsfSk7cmV0dXJuIG51bGwhPT1pLm1ldHJpY3MudGFnRmlsdGVyJiYoYy50YWdGaWx0ZXI9aS5tZXRyaWNzLnRhZ0ZpbHRlciksY30pKSxiayhXUywoKHQse3BhcnRpYWxTZXR0aW5nczplfSk9Pnt2YXIgbjtjb25zdCBvPXt9O2lmKGUudG9vbHRpcFNvcnRTdHJpbmcpc3dpdGNoKGUudG9vbHRpcFNvcnRTdHJpbmcpe2Nhc2UgYkEuQVNDRU5ESU5HOm8udG9vbHRpcFNvcnQ9YkEuQVNDRU5ESU5HO2JyZWFrO2Nhc2UgYkEuREVTQ0VORElORzpvLnRvb2x0aXBTb3J0PWJBLkRFU0NFTkRJTkc7YnJlYWs7Y2FzZSBiQS5ERUZBVUxUOm8udG9vbHRpcFNvcnQ9YkEuREVGQVVMVDticmVhaztjYXNlIGJBLk5FQVJFU1Q6by50b29sdGlwU29ydD1iQS5ORUFSRVNUfSJib29sZWFuIj09dHlwZW9mIGUuaWdub3JlT3V0bGllcnMmJihvLmlnbm9yZU91dGxpZXJzPWUuaWdub3JlT3V0bGllcnMpLCJudW1iZXIiPT10eXBlb2YgZS5zY2FsYXJTbW9vdGhpbmcmJihvLnNjYWxhclNtb290aGluZz1lLnNjYWxhclNtb290aGluZyk7Y29uc3QgaT0iYm9vbGVhbiI9PXR5cGVvZiBlLnRpbWVTZXJpZXNQcm9tb3Rpb25EaXNtaXNzZWQ/IWUudGltZVNlcmllc1Byb21vdGlvbkRpc21pc3NlZDp0LnByb21vdGVUaW1lU2VyaWVzLGE9bnVsbCE9PShuPWUudGltZVNlcmllc1NldHRpbmdzUGFuZU9wZW5lZCkmJnZvaWQgMCE9PW4/bjp0LmlzU2V0dGluZ3NQYW5lT3BlbjtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwcm9tb3RlVGltZVNlcmllczppLGlzU2V0dGluZ3NQYW5lT3BlbjphLHNldHRpbmdzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdzKSxvKX0pfSkpLGJrKHhFLHZFLCh0PT57Y29uc3QgZT10LnRhZ01ldGFkYXRhTG9hZFN0YXRlLnN0YXRlPT09eUUuTE9BRElORz95RS5MT0FESU5HOnlFLk5PVF9MT0FERUQsbj1KSih0LnRpbWVTZXJpZXNEYXRhLCgodCxlKT0+SkoodCwodD0+TUEoZSk/SkoodCwodD0+dFEodCkpKTp0USh0KSkpKSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7dGFnTWV0YWRhdGFMb2FkU3RhdGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQudGFnTWV0YWRhdGFMb2FkU3RhdGUpLHtzdGF0ZTplfSksdGltZVNlcmllc0RhdGE6bn0pfSkpLGJrKElFLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3RhZ01ldGFkYXRhTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnRhZ01ldGFkYXRhTG9hZFN0YXRlKSx7c3RhdGU6eUUuTE9BRElOR30pfSkpKSxiayhGRSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0YWdNZXRhZGF0YUxvYWRTdGF0ZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC50YWdNZXRhZGF0YUxvYWRTdGF0ZSkse3N0YXRlOnlFLkZBSUxFRH0pfSkpKSxiayhIRSwoKHQse3RhZ01ldGFkYXRhOmV9KT0+e2NvbnN0IG49e3NjYWxhcnM6c1EoZSxoQS5TQ0FMQVJTKSxoaXN0b2dyYW1zOnNRKGUsaEEuSElTVE9HUkFNUyksaW1hZ2VzOmVbaEEuSU1BR0VTXX0sbz1PYmplY3QuYXNzaWduKHt9LHQuY2FyZE1ldGFkYXRhTWFwKSxpPShmdW5jdGlvbiBhKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuIG9mIE9iamVjdC5rZXlzKHQpKXtjb25zdCBvPW47bGV0IGk7aWYoTUEobykpe2lmKCF4QShvKSl0aHJvdyBuZXcgRXJyb3IoIk11bHRpLXJ1biwgc2FtcGxlZCBwbHVnaW4gc3VwcG9ydCBub3QgeWV0IGltcGxlbWVudGVkIik7e2NvbnN0IG49dFtvXS50YWdSdW5TYW1wbGVkSW5mbztmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhuKSlmb3IoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhuW3RdKSl7Y29uc3R7bWF4U2FtcGxlc1BlclN0ZXA6YX09blt0XVtpXTtmb3IobGV0IG49MDtuPGE7bisrKWUucHVzaCh7cGx1Z2luOm8sdGFnOnQscnVuSWQ6aSxzYW1wbGU6bixudW1TYW1wbGU6YX0pfX19ZWxzZSBpZih4QShvKSl7aT10W29dLnRhZ1RvUnVucztmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhpKSlmb3IoY29uc3QgbiBvZiBpW3RdKWUucHVzaCh7cGx1Z2luOm8sdGFnOnQscnVuSWQ6bn0pfWVsc2V7aT10W29dLnRhZ1RvUnVucztmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhpKSllLnB1c2goe3BsdWdpbjpvLHRhZzp0LHJ1bklkOm51bGx9KX19cmV0dXJuIGV9KShuKSxyPVtdO2Zvcihjb25zdCBlIG9mIGkpe2NvbnN0IG49aVQoZSk7dC5jYXJkTWV0YWRhdGFNYXAuaGFzT3duUHJvcGVydHkobil8fChvW25dPWUsci5wdXNoKG4pKX1jb25zdCBzPVsuLi50LmNhcmRMaXN0LC4uLnJdLGw9c1QodC51bnJlc29sdmVkSW1wb3J0ZWRQaW5uZWRDYXJkcyxyLG8sdC5jYXJkVG9QaW5uZWRDb3B5LHQucGlubmVkQ2FyZFRvT3JpZ2luYWwsdC5jYXJkU3RlcEluZGV4KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCksbCkse3RhZ01ldGFkYXRhTG9hZFN0YXRlOntzdGF0ZTp5RS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCl9LHRhZ01ldGFkYXRhOm4sY2FyZExpc3Q6c30pfSkpLGJrKGVSLCgodCx7dGFnRmlsdGVyOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0YWdGaWx0ZXI6ZX0pKSksYmsoTEUsKCh0LHtzb3J0OmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHt0b29sdGlwU29ydDplfSl9KSkpLGJrKEJFLCh0PT57dmFyIGU7Y29uc3Qgbj0hKG51bGwhPT0oZT10LnNldHRpbmdPdmVycmlkZXMuaWdub3JlT3V0bGllcnMpJiZ2b2lkIDAhPT1lP2U6dC5zZXR0aW5ncy5pZ25vcmVPdXRsaWVycyk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5nT3ZlcnJpZGVzKSx7aWdub3JlT3V0bGllcnM6bn0pfSl9KSksYmsoVkUsKCh0LHt4QXhpc1R5cGU6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ092ZXJyaWRlcykse3hBeGlzVHlwZTplfSl9KSkpLGJrKGpFLCgodCx7c21vb3RoaW5nOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtzY2FsYXJTbW9vdGhpbmc6ZX0pfSkpKSxiayhVRSwodD0+e3ZhciBlO2NvbnN0IG49IShudWxsIT09KGU9dC5zZXR0aW5nT3ZlcnJpZGVzLnNjYWxhclBhcnRpdGlvbk5vbk1vbm90b25pY1gpJiZ2b2lkIDAhPT1lP2U6dC5zZXR0aW5ncy5zY2FsYXJQYXJ0aXRpb25Ob25Nb25vdG9uaWNYKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtzY2FsYXJQYXJ0aXRpb25Ob25Nb25vdG9uaWNYOm59KX0pfSkpLGJrKEdFLCgodCx7YnJpZ2h0bmVzc0luTWlsbGk6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ092ZXJyaWRlcykse2ltYWdlQnJpZ2h0bmVzc0luTWlsbGk6ZX0pfSkpKSxiayhXRSwoKHQse2NvbnRyYXN0SW5NaWxsaTplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5nT3ZlcnJpZGVzKSx7aW1hZ2VDb250cmFzdEluTWlsbGk6ZX0pfSkpKSxiayhZRSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtpbWFnZUJyaWdodG5lc3NJbk1pbGxpOnZvaWQgMH0pfSkpKSxiayhxRSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtpbWFnZUNvbnRyYXN0SW5NaWxsaTp2b2lkIDB9KX0pKSksYmsoWkUsKHQ9Pnt2YXIgZTtjb25zdCBuPSEobnVsbCE9PShlPXQuc2V0dGluZ092ZXJyaWRlcy5pbWFnZVNob3dBY3R1YWxTaXplKSYmdm9pZCAwIT09ZT9lOnQuc2V0dGluZ3MuaW1hZ2VTaG93QWN0dWFsU2l6ZSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5nT3ZlcnJpZGVzKSx7aW1hZ2VTaG93QWN0dWFsU2l6ZTpufSl9KX0pKSxiayhYRSwoKHQse2hpc3RvZ3JhbU1vZGU6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ092ZXJyaWRlcykse2hpc3RvZ3JhbU1vZGU6ZX0pfSkpKSxiayhLRSwoKHQse3JlcXVlc3RzOmV9KT0+e2lmKCFlLmxlbmd0aClyZXR1cm4gdDtjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sdC50aW1lU2VyaWVzRGF0YSk7Zm9yKGNvbnN0IG8gb2YgZSl7Y29uc3R7cGx1Z2luOmUsdGFnOmksc2FtcGxlOmF9PW87bltlXT1vVChuLGUsaSxhKTtjb25zdCByPW5UKG4sZSxpLGEpLHM9T0Eobyk/W28ucnVuSWRdOnJUKHQudGFnTWV0YWRhdGEsZSxpLGEpO3IucnVuVG9Mb2FkU3RhdGU9YVQoeUUuTE9BRElORyxzLHIucnVuVG9Mb2FkU3RhdGUpfXJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3RpbWVTZXJpZXNEYXRhOm59KX0pKSxiayhKRSwoKHQse3JlcXVlc3Q6ZX0pPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LHQudGltZVNlcmllc0RhdGEpLHtwbHVnaW46byx0YWc6aSxzYW1wbGU6YX09ZTtuW29dPW9UKG4sbyxpLGEpO2NvbnN0IHI9blQobixvLGksYSkscz1PQShlKT9bZS5ydW5JZF06clQodC50YWdNZXRhZGF0YSxvLGksYSk7cmV0dXJuIHIucnVuVG9Mb2FkU3RhdGU9YVQoeUUuRkFJTEVELHMsci5ydW5Ub0xvYWRTdGF0ZSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0aW1lU2VyaWVzRGF0YTpufSl9KSksYmsoUUUsKCh0LHtyZXNwb25zZTplfSk9Pntjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sdC5zdGVwTWluTWF4KSxvPU9iamVjdC5hc3NpZ24oe30sdC50aW1lU2VyaWVzRGF0YSkse3BsdWdpbjppLHRhZzphLHJ1bklkOnIsc2FtcGxlOnN9PWU7b1tpXT1vVChvLGksYSxzKTtjb25zdCBsPW5UKG8saSxhLHMpO2lmKHdBKGUpKXtjb25zdCBlPXI/W3JdOnJUKHQudGFnTWV0YWRhdGEsaSxhLHMpO2wucnVuVG9Mb2FkU3RhdGU9YVQoeUUuRkFJTEVELGUsbC5ydW5Ub0xvYWRTdGF0ZSl9ZWxzZXtjb25zdCB0PWUucnVuVG9TZXJpZXM7bC5ydW5Ub1Nlcmllcz1PYmplY3QuYXNzaWduKHt9LGwucnVuVG9TZXJpZXMpLGwucnVuVG9Mb2FkU3RhdGU9T2JqZWN0LmFzc2lnbih7fSxsLnJ1blRvTG9hZFN0YXRlKTtmb3IoY29uc3QgZSBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkoZSkpe2wucnVuVG9TZXJpZXNbZV09dFtlXSxsLnJ1blRvTG9hZFN0YXRlW2VdPXlFLkxPQURFRDtmb3IoY29uc3QgbyBvZiB0W2VdKW4ubWluPU1hdGgubWluKG4ubWluLG8uc3RlcCksbi5tYXg9TWF0aC5tYXgobi5tYXgsby5zdGVwKX19cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7dGltZVNlcmllc0RhdGE6byxjYXJkU3RlcEluZGV4OiRKKHQuY2FyZE1ldGFkYXRhTWFwLHQuY2FyZFN0ZXBJbmRleCxvLHQudGltZVNlcmllc0RhdGEpLHN0ZXBNaW5NYXg6bn0pfSkpLGJrKHRSLCgodCx7Y2FyZElkOmUsc3RlcEluZGV4Om59KT0+e2NvbnN0IG89UUooZSx0LmNhcmRNZXRhZGF0YU1hcCx0LnRpbWVTZXJpZXNEYXRhKTtsZXQgaT1uO3JldHVybiBudWxsPT09bz9pPW51bGw6bj5vJiYoaT1vKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NhcmRTdGVwSW5kZXg6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuY2FyZFN0ZXBJbmRleCkse1tlXTppfSl9KX0pKSxiayhuUiwoKHQse3RhZ0dyb3VwOmV9KT0+e2NvbnN0IG49bmV3IE1hcCh0LnRhZ0dyb3VwRXhwYW5kZWQpO3JldHVybiBuLnNldChlLCFuLmdldChlKSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0YWdHcm91cEV4cGFuZGVkOm59KX0pKSxiaygkRSwoKHQse2VudGVyZWRDYXJkczplLGV4aXRlZENhcmRzOm59KT0+e2lmKCFlLmxlbmd0aCYmIW4ubGVuZ3RoKXJldHVybiB0O2NvbnN0IG89bmV3IE1hcCh0LnZpc2libGVDYXJkTWFwKTtyZXR1cm4gZS5mb3JFYWNoKCgoe2VsZW1lbnRJZDp0LGNhcmRJZDplfSk9Pnt2YXIgbjtjb25zdCBpPW51bGwhPT0obj1vLmdldCh0KSkmJnZvaWQgMCE9PW4/bjpudWxsO2lmKG51bGwhPT1pJiZpIT09ZSl0aHJvdyBuZXcgRXJyb3IoIkEgRE9NIGVsZW1lbnQgY2Fubm90IGJlIHJldXNlZCBmb3IgbW9yZSB0aGFuIDEgdW5pcXVlIGNhcmQgbWV0YWRhdGEiKTtvLnNldCh0LGUpfSkpLG4uZm9yRWFjaCgoKHtlbGVtZW50SWQ6dH0pPT57by5kZWxldGUodCl9KSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt2aXNpYmxlQ2FyZE1hcDpvfSl9KSksYmsob1IsKCh0LHtjYXJkSWQ6ZX0pPT57Y29uc3Qgbj10LnBpbm5lZENhcmRUb09yaWdpbmFsLmhhcyhlKSxvPSFuJiYhdC5jYXJkVG9QaW5uZWRDb3B5LmhhcyhlKTtpZihvJiYhY1QodCkpcmV0dXJuIHQ7bGV0IGk9bmV3IE1hcCh0LmNhcmRUb1Bpbm5lZENvcHkpLGE9bmV3IE1hcCh0LnBpbm5lZENhcmRUb09yaWdpbmFsKSxyPU9iamVjdC5hc3NpZ24oe30sdC5jYXJkTWV0YWRhdGFNYXApLHM9T2JqZWN0LmFzc2lnbih7fSx0LmNhcmRTdGVwSW5kZXgpO2lmKG4pe2NvbnN0IG49dC5waW5uZWRDYXJkVG9PcmlnaW5hbC5nZXQoZSk7aS5kZWxldGUobiksYS5kZWxldGUoZSksZGVsZXRlIHJbZV0sZGVsZXRlIHNbZV19ZWxzZSBpZihvKXtjb25zdCB0PWxUKGUsaSxhLHMscik7aT10LmNhcmRUb1Bpbm5lZENvcHksYT10LnBpbm5lZENhcmRUb09yaWdpbmFsLHI9dC5jYXJkTWV0YWRhdGFNYXAscz10LmNhcmRTdGVwSW5kZXh9ZWxzZXtjb25zdCBuPXQuY2FyZFRvUGlubmVkQ29weS5nZXQoZSk7aS5kZWxldGUoZSksYS5kZWxldGUobiksZGVsZXRlIHJbbl0sZGVsZXRlIHNbbl19cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y2FyZE1ldGFkYXRhTWFwOnIsY2FyZFN0ZXBJbmRleDpzLGNhcmRUb1Bpbm5lZENvcHk6aSxwaW5uZWRDYXJkVG9PcmlnaW5hbDphfSl9KSksYmsobFIsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2VsZWN0VGltZUVuYWJsZWQ6IXQuc2VsZWN0VGltZUVuYWJsZWR9KSkpLGJrKHJSLCgodCxlKT0+e3ZhciBuLG8saSxhO2NvbnN0IHI9ZS5zdGFydFN0ZXA7bGV0IHM9bnVsbCE9PShhPW51bGwhPT0obj1lLmVuZFN0ZXApJiZ2b2lkIDAhPT1uP246bnVsbD09PShpPW51bGw9PT0obz10LnNlbGVjdGVkVGltZSl8fHZvaWQgMD09PW8/dm9pZCAwOm8uZW5kKXx8dm9pZCAwPT09aT92b2lkIDA6aS5zdGVwKSYmdm9pZCAwIT09YT9hOnQuc3RlcE1pbk1heC5tYXg7cmV0dXJuIHI+cyYmKHM9ciksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZWxlY3RUaW1lRW5hYmxlZDohMCxzZWxlY3RlZFRpbWU6e3N0YXJ0OntzdGVwOnJ9LGVuZDp7c3RlcDpzfX19KX0pKSxiayhjUiwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt1c2VSYW5nZVNlbGVjdFRpbWU6IXQudXNlUmFuZ2VTZWxlY3RUaW1lfSkpKSxiayhzUiwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZWxlY3RlZFRpbWU6bnVsbH0pKSksYmsoaVIsKCh0LHtwbHVnaW46ZX0pPT57bGV0IG49bmV3IFNldCh0LmZpbHRlcmVkUGx1Z2luVHlwZXMpO3JldHVybiBuLmhhcyhlKT9uLmRlbGV0ZShlKTpuLmFkZChlKSxPYmplY3QudmFsdWVzKGhBKS5ldmVyeSgodD0+bi5oYXModCkpKSYmKG49bmV3IFNldCksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtmaWx0ZXJlZFBsdWdpblR5cGVzOm59KX0pKSxiayhhUiwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtmaWx0ZXJlZFBsdWdpblR5cGVzOm5ldyBTZXR9KSkpLGJrKGRSLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3Byb21vdGVUaW1lU2VyaWVzOiExfSkpKSxiayh6RSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtpc1NldHRpbmdzUGFuZU9wZW46IXQuaXNTZXR0aW5nc1BhbmVPcGVufSkpKSxiayhORSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtpc1NldHRpbmdzUGFuZU9wZW46ITF9KSkpKTtmdW5jdGlvbiByUSh0LGUpe3JldHVybiBCTihhUSxvUSkodCxlKX1mdW5jdGlvbiBzUSh0LGUpe3JldHVybnt0YWdEZXNjcmlwdGlvbnM6dFtlXS50YWdEZXNjcmlwdGlvbnMsdGFnVG9SdW5zOmxRKHRbZV0ucnVuVGFnSW5mbyl9fWZ1bmN0aW9uIGxRKHQpe2NvbnN0IGU9e307Zm9yKGNvbnN0IG4gaW4gdClmb3IoY29uc3QgbyBvZiB0W25dKWVbb109Wy4uLmVbb118fFtdLG5dO3JldHVybiBlfWNvbnN0IGNRPVp3KGdULHlULCgodCxlLG4pPT5lP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7bG9hZFN0YXRlOnQsaWQ6bn0pOm51bGwpKSxkUT1KUCgiW01ldHJpY3MgRWZmZWN0c10gSW5pdCIpO2NsYXNzIHBRe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmFjdGlvbnMkPXQsdGhpcy5zdG9yZT1lLHRoaXMuZGF0YVNvdXJjZT1uLHRoaXMuZGFzaGJvYXJkU2hvd25XaXRob3V0RGF0YSQ9dGhpcy5hY3Rpb25zJC5waXBlKERrKGRRLF9FLFBFLGRTKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChNUiksdGhpcy5zdG9yZS5zZWxlY3QodVQpKSxjZSgoKFssdCxlXSk9PnQ9PT1fQSYmZS5zdGF0ZT09PXlFLk5PVF9MT0FERUQpKSksdGhpcy5yZWxvYWRSZXF1ZXN0ZWRXaGlsZVNob3duJD10aGlzLmFjdGlvbnMkLnBpcGUoRGsoeEUsdkUpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KE1SKSksY2UoKChbLHRdKT0+dD09PV9BKSkpLHRoaXMubG9hZFRhZ01ldGFkYXRhJD1yZSh0aGlzLmRhc2hib2FyZFNob3duV2l0aG91dERhdGEkLHRoaXMucmVsb2FkUmVxdWVzdGVkV2hpbGVTaG93biQpLnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3QodVQpLHRoaXMuc3RvcmUuc2VsZWN0KFRTKSksY2UoKChbLHQsZV0pPT50LnN0YXRlIT09eUUuTE9BRElORyYmbnVsbCE9PWUpKSxGZSgoKCk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKElFKCkpfSkpLHplKCgoWywsdF0pPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hUYWdNZXRhZGF0YSh0KS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaChIRSh7dGFnTWV0YWRhdGE6dH0pKX0pKSxwZSgoKCk9Pih0aGlzLnN0b3JlLmRpc3BhdGNoKEZFKCkpLEV0KG51bGwpKSkpKSkpKSx0aGlzLnZpc2libGVDYXJkc1dpdGhvdXREYXRhQ2hhbmdlZCQ9dGhpcy5hY3Rpb25zJC5waXBlKERrKCRFKSx6ZSgoKCk9PnRoaXMuZ2V0VmlzaWJsZUNhcmRGZXRjaEluZm9zKCkucGlwZShiZSgxKSkpKSxJdCgodD0+dC5maWx0ZXIoKHQ9PnQubG9hZFN0YXRlPT09eUUuTk9UX0xPQURFRCkpKSkpLHRoaXMudmlzaWJsZUNhcmRzUmVsb2FkZWQkPXRoaXMucmVsb2FkUmVxdWVzdGVkV2hpbGVTaG93biQucGlwZSh6ZSgoKCk9PnRoaXMuZ2V0VmlzaWJsZUNhcmRGZXRjaEluZm9zKCkucGlwZShiZSgxKSkpKSxJdCgodD0+dC5maWx0ZXIoKHQ9PnQubG9hZFN0YXRlIT09eUUuTE9BRElORykpKSkpLHRoaXMubG9hZFRpbWVTZXJpZXMkPXJlKHRoaXMudmlzaWJsZUNhcmRzV2l0aG91dERhdGFDaGFuZ2VkJCx0aGlzLnZpc2libGVDYXJkc1JlbG9hZGVkJCkucGlwZShjZSgodD0+dC5sZW5ndGg+MCkpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KFRTKS5waXBlKGNlKCh0PT5udWxsIT09dCkpKSksWnQoKChbdCxlXSk9PnRoaXMuZmV0Y2hUaW1lU2VyaWVzRm9yQ2FyZHModCxlKSkpKSx0aGlzLmRhdGFFZmZlY3RzJD1NaygoKCk9PnJlKHRoaXMubG9hZFRhZ01ldGFkYXRhJCx0aGlzLmxvYWRUaW1lU2VyaWVzJCkpLHtkaXNwYXRjaDohMX0pfW5ncnhPbkluaXRFZmZlY3RzKCl7cmV0dXJuIGRRKCl9Z2V0VmlzaWJsZUNhcmRGZXRjaEluZm9zKCl7cmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENUKS5waXBlKHplKCh0PT50LnNpemU/JHQoWy4uLnRdLm1hcCgodD0+dGhpcy5zdG9yZS5zZWxlY3QoY1EsdCkucGlwZShiZSgxKSkpKSk6RXQoW10pKSksSXQoKHQ9PnQuZmlsdGVyKEJvb2xlYW4pKSkpfWZldGNoVGltZVNlcmllcyh0KXtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoVGltZVNlcmllcyhbdF0pLnBpcGUoRmUoKHQ9Pntjb25zdCBlPXQuZmlsdGVyKHdBKTtlLmxlbmd0aCYmY29uc29sZS5lcnJvcigiVGltZSBzZXJpZXMgcmVzcG9uc2UgY29udGFpbmVkIGVycm9yczoiLGUpLHRoaXMuc3RvcmUuZGlzcGF0Y2goUUUoe3Jlc3BvbnNlOnRbMF19KSl9KSkscGUoKCgpPT4odGhpcy5zdG9yZS5kaXNwYXRjaChKRSh7cmVxdWVzdDp0fSkpLEV0KG51bGwpKSkpKX1mZXRjaFRpbWVTZXJpZXNGb3JDYXJkcyh0LGUpe3JldHVybiBFdCh0Lm1hcCgodD0+e2NvbnN0e3BsdWdpbjpuLHRhZzpvLHJ1bklkOmksc2FtcGxlOmF9PXQ7cmV0dXJuIHhBKG4pP3twbHVnaW46bix0YWc6byxzYW1wbGU6YSxydW5JZDppfTp7cGx1Z2luOm4sdGFnOm8sc2FtcGxlOmEsZXhwZXJpbWVudElkczplfX0pKSkucGlwZShGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goS0Uoe3JlcXVlc3RzOnR9KSl9KSksWnQoKHQ9PnJlKC4uLnQubWFwKCh0PT50aGlzLmZldGNoVGltZVNlcmllcyh0KSkpKSkpKX19cFEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBRKSh2cihTayksdnIoSXcpLHZyKFBBKSl9LHBRLsm1cHJvdj1Nbih7dG9rZW46cFEsZmFjdG9yeTpwUS7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocFEsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlNrfSx7dHlwZTpJd30se3R5cGU6UEF9XX0pLG51bGwpO2NvbnN0IG1RPW5ldyBHYSgiTWV0cmljcyBTdG9yZSBDb25maWciKSx1UT1uZXcgR2EoIk1ldHJpY3MgSW5pdGlhbCBTZXR0aW5ncyBDb25maWciKTtmdW5jdGlvbiBmUSh0KXtyZXR1cm4gdD97aW5pdGlhbFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpUSkse3NldHRpbmdzOnR9KX06e2luaXRpYWxTdGF0ZTppUX19dmFyIGdROyEoZnVuY3Rpb24odCl7dFt0LkxFRlQ9MV09IkxFRlQiLHRbdC5SSUdIVD0yXT0iUklHSFQiLHRbdC5NSURETEU9NF09Ik1JRERMRSIsdFt0LkZPVVJUSD04XT0iRk9VUlRIIix0W3QuRklGVEg9MzJdPSJGSUZUSCJ9KShnUXx8KGdRPXt9KSk7bGV0IGhRPTA7ZnVuY3Rpb24gYlEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJidXR0b24iLDMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5leHBhbmRTaWRlYmFyKCl9KSksVG0oMSwibWF0LWljb24iLDQpLEFtKCl9fWZ1bmN0aW9uIHlRKHQsZSl7aWYoMSZ0JiYoUm0oMCwibmF2Iiw1KSxBaCgxLCJhc3luYyIpLFhtKDIsMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7ZHUoIndpZHRoIixUaCgxLDQsdC53aWR0aCQpLCIlIikoIm1pbi13aWR0aCIsdC5NSU5JTVVNX1NJREVCQVJfV0lEVEhfSU5fUFgsInB4Iil9fWZ1bmN0aW9uIF9RKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2Iiw2KSxWbSgibW91c2Vkb3duIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLnJlc2l6ZUdyYWJiZWQoKX0pKSxUbSgxLCJtYXQtaWNvbiIsNyksQW0oKX19Y29uc3QgQ1E9W1tbIiIsIm1haW4iLCIiXV0sW1siIiwic2lkZWJhciIsIiJdXV07Y2xhc3MgTVF7Y29uc3RydWN0b3IodCxlKXt0aGlzLnN0b3JlPXQsdGhpcy53aWR0aCQ9dGhpcy5zdG9yZS5zZWxlY3QoT1IpLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgSSx0aGlzLnJlc2l6aW5nPSExLHRoaXMuTUlOSU1VTV9TSURFQkFSX1dJRFRIX0lOX1BYPTc1LG9lKGUubmF0aXZlRWxlbWVudCwibW91c2Vtb3ZlIikucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLGNlKCgoKT0+dGhpcy5yZXNpemluZykpKS5zdWJzY3JpYmUoKHQ9PntpZigodC5idXR0b25zJmdRLkxFRlQpIT09Z1EuTEVGVClyZXR1cm4gdm9pZCh0aGlzLnJlc2l6aW5nPSExKTt0LnByZXZlbnREZWZhdWx0KCk7Y29uc3R7d2lkdGg6bn09ZS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuc3RvcmUuZGlzcGF0Y2goVEUoe3dpZHRoSW5QZXJjZW50OnQuY2xpZW50WDw9dGhpcy5NSU5JTVVNX1NJREVCQVJfV0lEVEhfSU5fUFg/MDp0LmNsaWVudFgvbioxMDB9KSl9KSksb2UoZS5uYXRpdmVFbGVtZW50LCJtb3VzZXVwIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMucmVzaXppbmc9ITF9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfXJlc2l6ZUdyYWJiZWQoKXt0aGlzLnJlc2l6aW5nPSEwfWV4cGFuZFNpZGViYXIoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFRFKHt3aWR0aEluUGVyY2VudDoyMH0pKX19dmFyIHZRO01RLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxNUSkoU20oSXcpLFNtKGhnKSl9LE1RLsm1Y21wPXRvKHt0eXBlOk1RLHNlbGVjdG9yczpbWyJ0Yi1kYXNoYm9hcmQtbGF5b3V0Il1dLG5nQ29udGVudFNlbGVjdG9yczpbIlttYWluXSIsIltzaWRlYmFyXSJdLGRlY2xzOjcsdmFyczo5LGNvbnN0czpbWyJjbGFzcyIsImV4cGFuZCIsMywiY2xpY2siLDQsIm5nSWYiXSxbImNsYXNzIiwic2lkZWJhciIsMywid2lkdGgiLCJtaW5XaWR0aCIsNCwibmdJZiJdLFsiY2xhc3MiLCJyZXNpemVyIiwzLCJtb3VzZWRvd24iLDQsIm5nSWYiXSxbMSwiZXhwYW5kIiwzLCJjbGljayJdLFsic3ZnSWNvbiIsImV4cGFuZF9tb3JlXzI0cHgiXSxbMSwic2lkZWJhciJdLFsxLCJyZXNpemVyIiwzLCJtb3VzZWRvd24iXSxbInN2Z0ljb24iLCJkcmFnX2luZGljYXRvcl8yNHB4Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabShDUSksUXAoMCxiUSwyLDAsImJ1dHRvbiIsMCksQWgoMSwiYXN5bmMiKSxRcCgyLHlRLDMsNiwibmF2IiwxKSxBaCgzLCJhc3luYyIpLFFwKDQsX1EsMiwwLCJkaXYiLDIpLEFoKDUsImFzeW5jIiksWG0oNikpLDImZSYmKERtKCJuZ0lmIiwwPT09VGgoMSwzLG4ud2lkdGgkKSkscmMoMiksRG0oIm5nSWYiLFRoKDMsNSxuLndpZHRoJCk+MCkscmMoMiksRG0oIm5nSWYiLFRoKDUsNyxuLndpZHRoJCk+MCkpfSxkaXJlY3RpdmVzOltkTSxEV10scGlwZXM6W3dNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0uc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV17bWF4LXdpZHRoOjgwdnd9LnJlc2l6ZXJbX25nY29udGVudC0lQ09NUCVdLCAuZXhwYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6I2ViZWJlYjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZmxleDowIDAgMjBweDtqdXN0aWZ5LXNlbGY6c3RyZXRjaDt3aWR0aDoyMHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5yZXNpemVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnJlc2l6ZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjojNTU1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5leHBhbmRbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZXhwYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6IzU1NX0ucmVzaXplcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MCAxcHg7Y3Vyc29yOmV3LXJlc2l6ZTtkaXNwbGF5OmZsZXg7anVzdGlmeS1zZWxmOnN0cmV0Y2h9LnJlc2l6ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5leHBhbmRbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MCAxcHggMCAwO2NvbG9yOmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktc2VsZjpzdHJldGNoO3BhZGRpbmc6MH0uZXhwYW5kW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXJ9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE1RLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRiLWRhc2hib2FyZC1sYXlvdXQiLHRlbXBsYXRlOidcbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj0iKHdpZHRoJCB8IGFzeW5jKSA9PT0gMCJcbiAgICAgIGNsYXNzPSJleHBhbmQiXG4gICAgICAoY2xpY2spPSJleHBhbmRTaWRlYmFyKCkiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249ImV4cGFuZF9tb3JlXzI0cHgiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPG5hdlxuICAgICAgKm5nSWY9Iih3aWR0aCQgfCBhc3luYykgPiAwIlxuICAgICAgY2xhc3M9InNpZGViYXIiXG4gICAgICBbc3R5bGUud2lkdGguJV09IndpZHRoJCB8IGFzeW5jIlxuICAgICAgW3N0eWxlLm1pbldpZHRoLnB4XT0iTUlOSU1VTV9TSURFQkFSX1dJRFRIX0lOX1BYIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0iW3NpZGViYXJdIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uYXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9Iih3aWR0aCQgfCBhc3luYykgPiAwIlxuICAgICAgY2xhc3M9InJlc2l6ZXIiXG4gICAgICAobW91c2Vkb3duKT0icmVzaXplR3JhYmJlZCgpIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPSJkcmFnX2luZGljYXRvcl8yNHB4Ij48L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD0iW21haW5dIj48L25nLWNvbnRlbnQ+XG4gICcsc3R5bGVVcmxzOlsibGF5b3V0X2NvbnRhaW5lci5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9LHt0eXBlOmhnfV19KSxudWxsKSwoZnVuY3Rpb24odCl7dC5DSEVDS0JPWD0iY2hlY2tib3giLHQuUlVOX05BTUU9InJ1bl9uYW1lIix0LkVYUEVSSU1FTlRfTkFNRT0iZXhwZXJpbWVudF9uYW1lIix0LlJVTl9DT0xPUj0icnVuX2NvbG9yIn0pKHZRfHwodlE9e30pKTtjb25zdCB4UT1LdyhUUiksT1E9WncoeFEsKCh0LGUpPT57Y29uc3Qgbj1bXTtmb3IoY29uc3QgbyBvZiBlKXQuc3BlY3Nbb10mJm4ucHVzaCh0LnNwZWNzW29dLmhwYXJhbS5kZWZhdWx0RmlsdGVycyk7cmV0dXJuIHRBKG4pfSkpLFBRPVp3KE9RLHhRLCgodCxlLG4pPT57dmFyIG87Y29uc3QgaT0kUihuKSxhPWUuZmlsdGVyc1tpXTtyZXR1cm4gbmV3IE1hcChbLi4udCwuLi5udWxsIT09KG89bnVsbD09YT92b2lkIDA6YS5ocGFyYW1zKSYmdm9pZCAwIT09bz9vOltdXSl9KSksd1E9WncoeFEsKCh0LGUpPT57Y29uc3Qgbj1bXTtmb3IoY29uc3QgbyBvZiBlKXQuc3BlY3Nbb10mJm4ucHVzaCh0LnNwZWNzW29dLm1ldHJpYy5kZWZhdWx0RmlsdGVycyk7cmV0dXJuIGVBKG4pfSkpLGtRPVp3KHdRLHhRLCgodCxlLG4pPT57dmFyIG87Y29uc3QgaT0kUihuKSxhPWUuZmlsdGVyc1tpXTtyZXR1cm4gbmV3IE1hcChbLi4udCwuLi5udWxsIT09KG89bnVsbD09YT92b2lkIDA6YS5tZXRyaWNzKSYmdm9pZCAwIT09bz9vOltdXSl9KSksU1E9WncoeFEsKCh0LGUpPT4oZnVuY3Rpb24gbiguLi50KXtjb25zdCBlPW5ldyBNYXAsbj1uZXcgTWFwLG89bmV3IE1hcCxpPW5ldyBNYXAsYT1bXTtmb3IoY29uc3QgciBvZiB0KXtmb3IoY29uc3QgdCBvZiByLmhwYXJhbXMpaWYobi5oYXModC5uYW1lKXx8bi5zZXQodC5uYW1lLG5ldyBTZXQpLG4uZ2V0KHQubmFtZSkuYWRkKHQuZGlzcGxheU5hbWUpLGUuaGFzKHQubmFtZSkpe2NvbnN0IG49ZS5nZXQodC5uYW1lKSxvPXQ7aWYobi50eXBlIT09by50eXBlJiZhLnB1c2goYEhwYXJhbSwgJHtvLm5hbWV9LCB0eXBlcyBoYXZlIHRvIG1hdGNoLiBHb3Q6ICR7bi50eXBlfSB2cy4gJHtvLnR5cGV9YCksbi5kb21haW4udHlwZT09PVpSLklOVEVSVkFMJiZvLmRvbWFpbi50eXBlPT09WlIuSU5URVJWQUwpbi5kb21haW4ubWluVmFsdWU9PT1vLmRvbWFpbi5taW5WYWx1ZSYmbi5kb21haW4ubWF4VmFsdWU9PT1vLmRvbWFpbi5tYXhWYWx1ZXx8YS5wdXNoKGBIcGFyYW0sICR7by5uYW1lfSwgZG9tYWlucyBoYXZlIHRvIG1hdGNoLiBHb3Q6ICR7bi5kb21haW59IHZzLiAke28uZG9tYWlufWApO2Vsc2UgaWYobi5kb21haW4udHlwZT09PVpSLkRJU0NSRVRFJiZvLmRvbWFpbi50eXBlPT09WlIuRElTQ1JFVEUpe2NvbnN0IHQ9bmV3IFNldChbLi4ubi5kb21haW4udmFsdWVzLC4uLm8uZG9tYWluLnZhbHVlc10pO24uZG9tYWluLnZhbHVlcy5sZW5ndGg9PT1vLmRvbWFpbi52YWx1ZXMubGVuZ3RoJiZuLmRvbWFpbi52YWx1ZXMubGVuZ3RoPT09dC5zaXplfHxhLnB1c2goYEhwYXJhbSwgJHtvLm5hbWV9LCBkb21haW5zIGhhdmUgdG8gbWF0Y2guIEdvdDogJHtuLmRvbWFpbn0gdnMuICR7by5kb21haW59YCl9ZWxzZSBhLnB1c2goYEhwYXJhbSwgJHtvLm5hbWV9LCBkb21haW5zIGhhdmUgdG8gbWF0Y2guIEdvdDogJHtuLmRvbWFpbn0gdnMuICR7by5kb21haW59YCl9ZWxzZSBlLnNldCh0Lm5hbWUsT2JqZWN0LmFzc2lnbih7fSx0KSk7Zm9yKGNvbnN0IHQgb2Ygci5tZXRyaWNzKWlmKGkuaGFzKHQudGFnKXx8aS5zZXQodC50YWcsbmV3IFNldCksaS5nZXQodC50YWcpLmFkZCh0LmRpc3BsYXlOYW1lKSxvLmhhcyh0LnRhZykpe2NvbnN0IGU9by5nZXQodC50YWcpLG49dDtlLmRhdGFzZXRUeXBlIT09bi5kYXRhc2V0VHlwZSYmYS5wdXNoKGBNZXRyaWMsICR7bi50YWd9LCBkYXRhc2V0VHlwZXMgaGF2ZSB0byBtYXRjaC4gR290OiAke2UuZGF0YXNldFR5cGV9IHZzLiAke24uZGF0YXNldFR5cGV9YCl9ZWxzZSBvLnNldCh0LnRhZyxPYmplY3QuYXNzaWduKHt9LHQpKX1pZihhLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFZhbGlkYXRpb24gZXJyb3I6XG4ke2Euam9pbigiXG4iKX1gKTtyZXR1cm57aHBhcmFtczpbLi4uZV0ubWFwKCgoW3QsZV0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse2Rpc3BsYXlOYW1lOlsuLi5uLmdldCh0KV0uam9pbigiIG9yICIpfSkpKSxtZXRyaWNzOlsuLi5vXS5tYXAoKChbdCxlXSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7ZGlzcGxheU5hbWU6Wy4uLmkuZ2V0KHQpXS5qb2luKCIgb3IgIil9KSkpfX0pKC4uLmUuZXhwZXJpbWVudElkcy5tYXAoKGU9Pntjb25zdCBuPXQuc3BlY3NbZV07cmV0dXJuIG4/e2hwYXJhbXM6bi5ocGFyYW0uc3BlY3MsbWV0cmljczpuLm1ldHJpYy5zcGVjc306bnVsbH0pKS5maWx0ZXIoQm9vbGVhbikpKSksRFE9e3Rvb2x0aXBTdGF0ZTpueCgic3RhdGUiLFtyeCgiaW5pdGlhbCwgdm9pZCwgaGlkZGVuIixheCh7b3BhY2l0eTowLHRyYW5zZm9ybToic2NhbGUoMCkifSkpLHJ4KCJ2aXNpYmxlIixheCh7dHJhbnNmb3JtOiJzY2FsZSgxKSJ9KSksbHgoIiogPT4gdmlzaWJsZSIsb3goIjIwMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpIixzeChbYXgoe29wYWNpdHk6MCx0cmFuc2Zvcm06InNjYWxlKDApIixvZmZzZXQ6MH0pLGF4KHtvcGFjaXR5Oi41LHRyYW5zZm9ybToic2NhbGUoMC45OSkiLG9mZnNldDouNX0pLGF4KHtvcGFjaXR5OjEsdHJhbnNmb3JtOiJzY2FsZSgxKSIsb2Zmc2V0OjF9KV0pKSksbHgoIiogPT4gaGlkZGVuIixveCgiMTAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiLGF4KHtvcGFjaXR5OjB9KSkpXSl9LEVRPU56KHtwYXNzaXZlOiEwfSk7ZnVuY3Rpb24gUlEodCl7cmV0dXJuIEVycm9yKGBUb29sdGlwIHBvc2l0aW9uICIke3R9IiBpcyBpbnZhbGlkLmApfWNvbnN0IEFRPW5ldyBHYSgibWF0LXRvb2x0aXAtc2Nyb2xsLXN0cmF0ZWd5IiksVFE9e3Byb3ZpZGU6QVEsZGVwczpbcExdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gTlEodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKHtzY3JvbGxUaHJvdHRsZToyMH0pfX0selE9bmV3IEdhKCJtYXQtdG9vbHRpcC1kZWZhdWx0LW9wdGlvbnMiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIElRKCl7cmV0dXJue3Nob3dEZWxheTowLGhpZGVEZWxheTowLHRvdWNoZW5kSGlkZURlbGF5OjE1MDB9fX0pO2NsYXNzIEhRe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwKXt0aGlzLl9vdmVybGF5PXQsdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX3Njcm9sbERpc3BhdGNoZXI9bix0aGlzLl92aWV3Q29udGFpbmVyUmVmPW8sdGhpcy5fbmdab25lPWksdGhpcy5fcGxhdGZvcm09YSx0aGlzLl9hcmlhRGVzY3JpYmVyPXIsdGhpcy5fZm9jdXNNb25pdG9yPXMsdGhpcy5fZGlyPWMsdGhpcy5fZGVmYXVsdE9wdGlvbnM9ZCx0aGlzLl9wb3NpdGlvbj0iYmVsb3ciLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX3ZpZXdJbml0aWFsaXplZD0hMSx0aGlzLl9wb2ludGVyRXhpdEV2ZW50c0luaXRpYWxpemVkPSExLHRoaXMuX3ZpZXdwb3J0TWFyZ2luPTgsdGhpcy5fY3NzQ2xhc3NQcmVmaXg9Im1hdCIsdGhpcy5zaG93RGVsYXk9dGhpcy5fZGVmYXVsdE9wdGlvbnMuc2hvd0RlbGF5LHRoaXMuaGlkZURlbGF5PXRoaXMuX2RlZmF1bHRPcHRpb25zLmhpZGVEZWxheSx0aGlzLnRvdWNoR2VzdHVyZXM9ImF1dG8iLHRoaXMuX21lc3NhZ2U9IiIsdGhpcy5fcGFzc2l2ZUxpc3RlbmVycz1bXSx0aGlzLl9kZXN0cm95ZWQ9bmV3IEksdGhpcy5faGFuZGxlS2V5ZG93bj10PT57dGhpcy5faXNUb29sdGlwVmlzaWJsZSgpJiZ0LmtleUNvZGU9PT11eiYmIWJ6KHQpJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fbmdab25lLnJ1bigoKCk9PnRoaXMuaGlkZSgwKSkpKX0sdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9bCx0aGlzLl9kb2N1bWVudD1wLGQmJihkLnBvc2l0aW9uJiYodGhpcy5wb3NpdGlvbj1kLnBvc2l0aW9uKSxkLnRvdWNoR2VzdHVyZXMmJih0aGlzLnRvdWNoR2VzdHVyZXM9ZC50b3VjaEdlc3R1cmVzKSksYy5jaGFuZ2UucGlwZShJZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fdXBkYXRlUG9zaXRpb24odGhpcy5fb3ZlcmxheVJlZil9KSksaS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntlLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5faGFuZGxlS2V5ZG93bil9KSl9Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9ufXNldCBwb3NpdGlvbih0KXt2YXIgZTt0IT09dGhpcy5fcG9zaXRpb24mJih0aGlzLl9wb3NpdGlvbj10LHRoaXMuX292ZXJsYXlSZWYmJih0aGlzLl91cGRhdGVQb3NpdGlvbih0aGlzLl9vdmVybGF5UmVmKSxudWxsPT09KGU9dGhpcy5fdG9vbHRpcEluc3RhbmNlKXx8dm9pZCAwPT09ZXx8ZS5zaG93KDApLHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSkpfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9eXoodCksdGhpcy5fZGlzYWJsZWQ/dGhpcy5oaWRlKDApOnRoaXMuX3NldHVwUG9pbnRlckVudGVyRXZlbnRzSWZOZWVkZWQoKX1nZXQgbWVzc2FnZSgpe3JldHVybiB0aGlzLl9tZXNzYWdlfXNldCBtZXNzYWdlKHQpe3RoaXMuX2FyaWFEZXNjcmliZXIucmVtb3ZlRGVzY3JpcHRpb24odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LHRoaXMuX21lc3NhZ2UsInRvb2x0aXAiKSx0aGlzLl9tZXNzYWdlPW51bGwhPXQ/U3RyaW5nKHQpLnRyaW0oKToiIiwhdGhpcy5fbWVzc2FnZSYmdGhpcy5faXNUb29sdGlwVmlzaWJsZSgpP3RoaXMuaGlkZSgwKToodGhpcy5fc2V0dXBQb2ludGVyRW50ZXJFdmVudHNJZk5lZWRlZCgpLHRoaXMuX3VwZGF0ZVRvb2x0aXBNZXNzYWdlKCksdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57dGhpcy5fYXJpYURlc2NyaWJlci5kZXNjcmliZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsdGhpcy5tZXNzYWdlLCJ0b29sdGlwIil9KSl9KSkpfWdldCB0b29sdGlwQ2xhc3MoKXtyZXR1cm4gdGhpcy5fdG9vbHRpcENsYXNzfXNldCB0b29sdGlwQ2xhc3ModCl7dGhpcy5fdG9vbHRpcENsYXNzPXQsdGhpcy5fdG9vbHRpcEluc3RhbmNlJiZ0aGlzLl9zZXRUb29sdGlwQ2xhc3ModGhpcy5fdG9vbHRpcENsYXNzKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl92aWV3SW5pdGlhbGl6ZWQ9ITAsdGhpcy5fc2V0dXBQb2ludGVyRW50ZXJFdmVudHNJZk5lZWRlZCgpLHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYpLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCh0PT57dD8ia2V5Ym9hcmQiPT09dCYmdGhpcy5fbmdab25lLnJ1bigoKCk9PnRoaXMuc2hvdygpKSk6dGhpcy5fbmdab25lLnJ1bigoKCk9PnRoaXMuaGlkZSgwKSkpfSkpfW5nT25EZXN0cm95KCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7Y2xlYXJUaW1lb3V0KHRoaXMuX3RvdWNoc3RhcnRUaW1lb3V0KSx0aGlzLl9vdmVybGF5UmVmJiYodGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCksdGhpcy5fdG9vbHRpcEluc3RhbmNlPW51bGwpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5faGFuZGxlS2V5ZG93biksdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5mb3JFYWNoKCgoW2Usbl0pPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbixFUSl9KSksdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5sZW5ndGg9MCx0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpLHRoaXMuX2FyaWFEZXNjcmliZXIucmVtb3ZlRGVzY3JpcHRpb24odCx0aGlzLm1lc3NhZ2UsInRvb2x0aXAiKSx0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodCl9c2hvdyh0PXRoaXMuc2hvd0RlbGF5KXtpZih0aGlzLmRpc2FibGVkfHwhdGhpcy5tZXNzYWdlfHx0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKCkmJiF0aGlzLl90b29sdGlwSW5zdGFuY2UuX3Nob3dUaW1lb3V0SWQmJiF0aGlzLl90b29sdGlwSW5zdGFuY2UuX2hpZGVUaW1lb3V0SWQpcmV0dXJuO2NvbnN0IGU9dGhpcy5fY3JlYXRlT3ZlcmxheSgpO3RoaXMuX2RldGFjaCgpLHRoaXMuX3BvcnRhbD10aGlzLl9wb3J0YWx8fG5ldyB2Rih0aGlzLl90b29sdGlwQ29tcG9uZW50LHRoaXMuX3ZpZXdDb250YWluZXJSZWYpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZT1lLmF0dGFjaCh0aGlzLl9wb3J0YWwpLmluc3RhbmNlLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5hZnRlckhpZGRlbigpLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+dGhpcy5fZGV0YWNoKCkpKSx0aGlzLl9zZXRUb29sdGlwQ2xhc3ModGhpcy5fdG9vbHRpcENsYXNzKSx0aGlzLl91cGRhdGVUb29sdGlwTWVzc2FnZSgpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5zaG93KHQpfWhpZGUodD10aGlzLmhpZGVEZWxheSl7dGhpcy5fdG9vbHRpcEluc3RhbmNlJiZ0aGlzLl90b29sdGlwSW5zdGFuY2UuaGlkZSh0KX10b2dnbGUoKXt0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKCk/dGhpcy5oaWRlKCk6dGhpcy5zaG93KCl9X2lzVG9vbHRpcFZpc2libGUoKXtyZXR1cm4hIXRoaXMuX3Rvb2x0aXBJbnN0YW5jZSYmdGhpcy5fdG9vbHRpcEluc3RhbmNlLmlzVmlzaWJsZSgpfV9jcmVhdGVPdmVybGF5KCl7aWYodGhpcy5fb3ZlcmxheVJlZilyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZjtjb25zdCB0PXRoaXMuX3Njcm9sbERpc3BhdGNoZXIuZ2V0QW5jZXN0b3JTY3JvbGxDb250YWluZXJzKHRoaXMuX2VsZW1lbnRSZWYpLGU9dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZWxlbWVudFJlZikud2l0aFRyYW5zZm9ybU9yaWdpbk9uKGAuJHt0aGlzLl9jc3NDbGFzc1ByZWZpeH0tdG9vbHRpcGApLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoITEpLndpdGhWaWV3cG9ydE1hcmdpbih0aGlzLl92aWV3cG9ydE1hcmdpbikud2l0aFNjcm9sbGFibGVDb250YWluZXJzKHQpO3JldHVybiBlLnBvc2l0aW9uQ2hhbmdlcy5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodD0+e3RoaXMuX3VwZGF0ZUN1cnJlbnRQb3NpdGlvbkNsYXNzKHQuY29ubmVjdGlvblBhaXIpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZSYmdC5zY3JvbGxhYmxlVmlld1Byb3BlcnRpZXMuaXNPdmVybGF5Q2xpcHBlZCYmdGhpcy5fdG9vbHRpcEluc3RhbmNlLmlzVmlzaWJsZSgpJiZ0aGlzLl9uZ1pvbmUucnVuKCgoKT0+dGhpcy5oaWRlKDApKSl9KSksdGhpcy5fb3ZlcmxheVJlZj10aGlzLl9vdmVybGF5LmNyZWF0ZSh7ZGlyZWN0aW9uOnRoaXMuX2Rpcixwb3NpdGlvblN0cmF0ZWd5OmUscGFuZWxDbGFzczpgJHt0aGlzLl9jc3NDbGFzc1ByZWZpeH0tdG9vbHRpcC1wYW5lbGAsc2Nyb2xsU3RyYXRlZ3k6dGhpcy5fc2Nyb2xsU3RyYXRlZ3koKX0pLHRoaXMuX3VwZGF0ZVBvc2l0aW9uKHRoaXMuX292ZXJsYXlSZWYpLHRoaXMuX292ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9PnRoaXMuX2RldGFjaCgpKSksdGhpcy5fb3ZlcmxheVJlZi5vdXRzaWRlUG9pbnRlckV2ZW50cygpLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3ZhciB0O3JldHVybiBudWxsPT09KHQ9dGhpcy5fdG9vbHRpcEluc3RhbmNlKXx8dm9pZCAwPT09dD92b2lkIDA6dC5faGFuZGxlQm9keUludGVyYWN0aW9uKCl9KSksdGhpcy5fb3ZlcmxheVJlZn1fZGV0YWNoKCl7dGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpJiZ0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZT1udWxsfV91cGRhdGVQb3NpdGlvbih0KXtjb25zdCBlPXQuZ2V0Q29uZmlnKCkucG9zaXRpb25TdHJhdGVneSxuPXRoaXMuX2dldE9yaWdpbigpLG89dGhpcy5fZ2V0T3ZlcmxheVBvc2l0aW9uKCk7ZS53aXRoUG9zaXRpb25zKFt0aGlzLl9hZGRPZmZzZXQoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4ubWFpbiksby5tYWluKSksdGhpcy5fYWRkT2Zmc2V0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuLmZhbGxiYWNrKSxvLmZhbGxiYWNrKSldKX1fYWRkT2Zmc2V0KHQpe3JldHVybiB0fV9nZXRPcmlnaW4oKXtjb25zdCB0PSF0aGlzLl9kaXJ8fCJsdHIiPT10aGlzLl9kaXIudmFsdWUsZT10aGlzLnBvc2l0aW9uO2xldCBuO2lmKCJhYm92ZSI9PWV8fCJiZWxvdyI9PWUpbj17b3JpZ2luWDoiY2VudGVyIixvcmlnaW5ZOiJhYm92ZSI9PWU/InRvcCI6ImJvdHRvbSJ9O2Vsc2UgaWYoImJlZm9yZSI9PWV8fCJsZWZ0Ij09ZSYmdHx8InJpZ2h0Ij09ZSYmIXQpbj17b3JpZ2luWDoic3RhcnQiLG9yaWdpblk6ImNlbnRlciJ9O2Vsc2UgaWYoImFmdGVyIj09ZXx8InJpZ2h0Ij09ZSYmdHx8ImxlZnQiPT1lJiYhdCluPXtvcmlnaW5YOiJlbmQiLG9yaWdpblk6ImNlbnRlciJ9O2Vsc2UgaWYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSl0aHJvdyBSUShlKTtjb25zdHt4Om8seTppfT10aGlzLl9pbnZlcnRQb3NpdGlvbihuLm9yaWdpblgsbi5vcmlnaW5ZKTtyZXR1cm57bWFpbjpuLGZhbGxiYWNrOntvcmlnaW5YOm8sb3JpZ2luWTppfX19X2dldE92ZXJsYXlQb3NpdGlvbigpe2NvbnN0IHQ9IXRoaXMuX2Rpcnx8Imx0ciI9PXRoaXMuX2Rpci52YWx1ZSxlPXRoaXMucG9zaXRpb247bGV0IG47aWYoImFib3ZlIj09ZSluPXtvdmVybGF5WDoiY2VudGVyIixvdmVybGF5WToiYm90dG9tIn07ZWxzZSBpZigiYmVsb3ciPT1lKW49e292ZXJsYXlYOiJjZW50ZXIiLG92ZXJsYXlZOiJ0b3AifTtlbHNlIGlmKCJiZWZvcmUiPT1lfHwibGVmdCI9PWUmJnR8fCJyaWdodCI9PWUmJiF0KW49e292ZXJsYXlYOiJlbmQiLG92ZXJsYXlZOiJjZW50ZXIifTtlbHNlIGlmKCJhZnRlciI9PWV8fCJyaWdodCI9PWUmJnR8fCJsZWZ0Ij09ZSYmIXQpbj17b3ZlcmxheVg6InN0YXJ0IixvdmVybGF5WToiY2VudGVyIn07ZWxzZSBpZigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKXRocm93IFJRKGUpO2NvbnN0e3g6byx5Oml9PXRoaXMuX2ludmVydFBvc2l0aW9uKG4ub3ZlcmxheVgsbi5vdmVybGF5WSk7cmV0dXJue21haW46bixmYWxsYmFjazp7b3ZlcmxheVg6byxvdmVybGF5WTppfX19X3VwZGF0ZVRvb2x0aXBNZXNzYWdlKCl7dGhpcy5fdG9vbHRpcEluc3RhbmNlJiYodGhpcy5fdG9vbHRpcEluc3RhbmNlLm1lc3NhZ2U9dGhpcy5tZXNzYWdlLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5fbWFya0ZvckNoZWNrKCksdGhpcy5fbmdab25lLm9uTWljcm90YXNrRW1wdHkucGlwZShiZSgxKSxJZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fdG9vbHRpcEluc3RhbmNlJiZ0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCl9KSkpfV9zZXRUb29sdGlwQ2xhc3ModCl7dGhpcy5fdG9vbHRpcEluc3RhbmNlJiYodGhpcy5fdG9vbHRpcEluc3RhbmNlLnRvb2x0aXBDbGFzcz10LHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5fbWFya0ZvckNoZWNrKCkpfV9pbnZlcnRQb3NpdGlvbih0LGUpe3JldHVybiJhYm92ZSI9PT10aGlzLnBvc2l0aW9ufHwiYmVsb3ciPT09dGhpcy5wb3NpdGlvbj8idG9wIj09PWU/ZT0iYm90dG9tIjoiYm90dG9tIj09PWUmJihlPSJ0b3AiKToiZW5kIj09PXQ/dD0ic3RhcnQiOiJzdGFydCI9PT10JiYodD0iZW5kIikse3g6dCx5OmV9fV91cGRhdGVDdXJyZW50UG9zaXRpb25DbGFzcyh0KXtjb25zdHtvdmVybGF5WTplLG9yaWdpblg6bixvcmlnaW5ZOm99PXQ7bGV0IGk7aWYoaT0iY2VudGVyIj09PWU/dGhpcy5fZGlyJiYicnRsIj09PXRoaXMuX2Rpci52YWx1ZT8iZW5kIj09PW4/ImxlZnQiOiJyaWdodCI6InN0YXJ0Ij09PW4/ImxlZnQiOiJyaWdodCI6ImJvdHRvbSI9PT1lJiYidG9wIj09PW8/ImFib3ZlIjoiYmVsb3ciLGkhPT10aGlzLl9jdXJyZW50UG9zaXRpb24pe2NvbnN0IHQ9dGhpcy5fb3ZlcmxheVJlZjtpZih0KXtjb25zdCBlPWAke3RoaXMuX2Nzc0NsYXNzUHJlZml4fS10b29sdGlwLXBhbmVsLWA7dC5yZW1vdmVQYW5lbENsYXNzKGUrdGhpcy5fY3VycmVudFBvc2l0aW9uKSx0LmFkZFBhbmVsQ2xhc3MoZStpKX10aGlzLl9jdXJyZW50UG9zaXRpb249aX19X3NldHVwUG9pbnRlckVudGVyRXZlbnRzSWZOZWVkZWQoKXshdGhpcy5fZGlzYWJsZWQmJnRoaXMubWVzc2FnZSYmdGhpcy5fdmlld0luaXRpYWxpemVkJiYhdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5sZW5ndGgmJih0aGlzLl9wbGF0Zm9ybVN1cHBvcnRzTW91c2VFdmVudHMoKT90aGlzLl9wYXNzaXZlTGlzdGVuZXJzLnB1c2goWyJtb3VzZWVudGVyIiwoKT0+e3RoaXMuX3NldHVwUG9pbnRlckV4aXRFdmVudHNJZk5lZWRlZCgpLHRoaXMuc2hvdygpfV0pOiJvZmYiIT09dGhpcy50b3VjaEdlc3R1cmVzJiYodGhpcy5fZGlzYWJsZU5hdGl2ZUdlc3R1cmVzSWZOZWNlc3NhcnkoKSx0aGlzLl9wYXNzaXZlTGlzdGVuZXJzLnB1c2goWyJ0b3VjaHN0YXJ0IiwoKT0+e3RoaXMuX3NldHVwUG9pbnRlckV4aXRFdmVudHNJZk5lZWRlZCgpLGNsZWFyVGltZW91dCh0aGlzLl90b3VjaHN0YXJ0VGltZW91dCksdGhpcy5fdG91Y2hzdGFydFRpbWVvdXQ9c2V0VGltZW91dCgoKCk9PnRoaXMuc2hvdygpKSw1MDApfV0pKSx0aGlzLl9hZGRMaXN0ZW5lcnModGhpcy5fcGFzc2l2ZUxpc3RlbmVycykpfV9zZXR1cFBvaW50ZXJFeGl0RXZlbnRzSWZOZWVkZWQoKXtpZih0aGlzLl9wb2ludGVyRXhpdEV2ZW50c0luaXRpYWxpemVkKXJldHVybjt0aGlzLl9wb2ludGVyRXhpdEV2ZW50c0luaXRpYWxpemVkPSEwO2NvbnN0IHQ9W107aWYodGhpcy5fcGxhdGZvcm1TdXBwb3J0c01vdXNlRXZlbnRzKCkpdC5wdXNoKFsibW91c2VsZWF2ZSIsKCk9PnRoaXMuaGlkZSgpXSxbIndoZWVsIix0PT50aGlzLl93aGVlbExpc3RlbmVyKHQpXSk7ZWxzZSBpZigib2ZmIiE9PXRoaXMudG91Y2hHZXN0dXJlcyl7dGhpcy5fZGlzYWJsZU5hdGl2ZUdlc3R1cmVzSWZOZWNlc3NhcnkoKTtjb25zdCBlPSgpPT57Y2xlYXJUaW1lb3V0KHRoaXMuX3RvdWNoc3RhcnRUaW1lb3V0KSx0aGlzLmhpZGUodGhpcy5fZGVmYXVsdE9wdGlvbnMudG91Y2hlbmRIaWRlRGVsYXkpfTt0LnB1c2goWyJ0b3VjaGVuZCIsZV0sWyJ0b3VjaGNhbmNlbCIsZV0pfXRoaXMuX2FkZExpc3RlbmVycyh0KSx0aGlzLl9wYXNzaXZlTGlzdGVuZXJzLnB1c2goLi4udCl9X2FkZExpc3RlbmVycyh0KXt0LmZvckVhY2goKChbdCxlXSk9Pnt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0LGUsRVEpfSkpfV9wbGF0Zm9ybVN1cHBvcnRzTW91c2VFdmVudHMoKXtyZXR1cm4hdGhpcy5fcGxhdGZvcm0uSU9TJiYhdGhpcy5fcGxhdGZvcm0uQU5EUk9JRH1fd2hlZWxMaXN0ZW5lcih0KXtpZih0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKCkpe2NvbnN0IGU9dGhpcy5fZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh0LmNsaWVudFgsdC5jbGllbnRZKSxuPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtlPT09bnx8bi5jb250YWlucyhlKXx8dGhpcy5oaWRlKCl9fV9kaXNhYmxlTmF0aXZlR2VzdHVyZXNJZk5lY2Vzc2FyeSgpe2NvbnN0IHQ9dGhpcy50b3VjaEdlc3R1cmVzO2lmKCJvZmYiIT09dCl7Y29uc3QgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsbj1lLnN0eWxlOygib24iPT09dHx8IklOUFVUIiE9PWUubm9kZU5hbWUmJiJURVhUQVJFQSIhPT1lLm5vZGVOYW1lKSYmKG4udXNlclNlbGVjdD1uLm1zVXNlclNlbGVjdD1uLndlYmtpdFVzZXJTZWxlY3Q9bi5Nb3pVc2VyU2VsZWN0PSJub25lIiksIm9uIiE9PXQmJmUuZHJhZ2dhYmxlfHwobi53ZWJraXRVc2VyRHJhZz0ibm9uZSIpLG4udG91Y2hBY3Rpb249Im5vbmUiLG4ud2Via2l0VGFwSGlnaGxpZ2h0Q29sb3I9InRyYW5zcGFyZW50In19fUhRLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIUSkoU20ocEwpLFNtKGhnKSxTbShwRiksU20oZWgpLFNtKGFfKSxTbSh3eiksU20oS3opLFNtKFNJKSxTbSh2b2lkIDApLFNtKEhJKSxTbSh2b2lkIDApLFNtKFpfKSl9LEhRLsm1ZGlyPWxvKHt0eXBlOkhRLGlucHV0czp7c2hvd0RlbGF5OlsibWF0VG9vbHRpcFNob3dEZWxheSIsInNob3dEZWxheSJdLGhpZGVEZWxheTpbIm1hdFRvb2x0aXBIaWRlRGVsYXkiLCJoaWRlRGVsYXkiXSx0b3VjaEdlc3R1cmVzOlsibWF0VG9vbHRpcFRvdWNoR2VzdHVyZXMiLCJ0b3VjaEdlc3R1cmVzIl0scG9zaXRpb246WyJtYXRUb29sdGlwUG9zaXRpb24iLCJwb3NpdGlvbiJdLGRpc2FibGVkOlsibWF0VG9vbHRpcERpc2FibGVkIiwiZGlzYWJsZWQiXSxtZXNzYWdlOlsibWF0VG9vbHRpcCIsIm1lc3NhZ2UiXSx0b29sdGlwQ2xhc3M6WyJtYXRUb29sdGlwQ2xhc3MiLCJ0b29sdGlwQ2xhc3MiXX19KSxIUS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnBMfSx7dHlwZTpoZ30se3R5cGU6cEZ9LHt0eXBlOmVofSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOkt6fSx7dHlwZTpTSX0se3R5cGU6dm9pZCAwfSx7dHlwZTpISX0se3R5cGU6dm9pZCAwfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSxIUS5wcm9wRGVjb3JhdG9ycz17cG9zaXRpb246W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwUG9zaXRpb24iXX1dLGRpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsibWF0VG9vbHRpcERpc2FibGVkIl19XSxzaG93RGVsYXk6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwU2hvd0RlbGF5Il19XSxoaWRlRGVsYXk6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwSGlkZURlbGF5Il19XSx0b3VjaEdlc3R1cmVzOlt7dHlwZTp4eSxhcmdzOlsibWF0VG9vbHRpcFRvdWNoR2VzdHVyZXMiXX1dLG1lc3NhZ2U6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwIl19XSx0b29sdGlwQ2xhc3M6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwQ2xhc3MiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEhRLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpwTH0se3R5cGU6aGd9LHt0eXBlOnBGfSx7dHlwZTplaH0se3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTpLen0se3R5cGU6U0l9LHt0eXBlOnZvaWQgMH0se3R5cGU6SEl9LHt0eXBlOnZvaWQgMH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSx7c2hvd0RlbGF5Olt7dHlwZTp4eSxhcmdzOlsibWF0VG9vbHRpcFNob3dEZWxheSJdfV0saGlkZURlbGF5Olt7dHlwZTp4eSxhcmdzOlsibWF0VG9vbHRpcEhpZGVEZWxheSJdfV0sdG91Y2hHZXN0dXJlczpbe3R5cGU6eHksYXJnczpbIm1hdFRvb2x0aXBUb3VjaEdlc3R1cmVzIl19XSxwb3NpdGlvbjpbe3R5cGU6eHksYXJnczpbIm1hdFRvb2x0aXBQb3NpdGlvbiJdfV0sZGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwRGlzYWJsZWQiXX1dLG1lc3NhZ2U6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwIl19XSx0b29sdGlwQ2xhc3M6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwQ2xhc3MiXX1dfSk7Y2xhc3MgRlEgZXh0ZW5kcyBIUXtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjLGQscCl7c3VwZXIodCxlLG4sbyxpLGEscixzLGwsYyxkLHApLHRoaXMuX3Rvb2x0aXBDb21wb25lbnQ9QlF9fUZRLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGUSkoU20ocEwpLFNtKGhnKSxTbShwRiksU20oZWgpLFNtKGFfKSxTbSh3eiksU20oS3opLFNtKFNJKSxTbShBUSksU20oSEksOCksU20oelEsOCksU20oWl8pKX0sRlEuybVkaXI9bG8oe3R5cGU6RlEsc2VsZWN0b3JzOltbIiIsIm1hdFRvb2x0aXAiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtdG9vbHRpcC10cmlnZ2VyIl0sZXhwb3J0QXM6WyJtYXRUb29sdGlwIl0sZmVhdHVyZXM6W3hwXX0pLEZRLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6cEx9LHt0eXBlOmhnfSx7dHlwZTpwRn0se3R5cGU6ZWh9LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6S3p9LHt0eXBlOlNJfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbQVFdfV19LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbelFdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRlEsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdFRvb2x0aXBdIixleHBvcnRBczoibWF0VG9vbHRpcCIsaG9zdDp7Y2xhc3M6Im1hdC10b29sdGlwLXRyaWdnZXIifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnBMfSx7dHlwZTpoZ30se3R5cGU6cEZ9LHt0eXBlOmVofSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOkt6fSx7dHlwZTpTSX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0FRXX1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3pRXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpO2NsYXNzIExRe2NvbnN0cnVjdG9yKHQpe3RoaXMuX2NoYW5nZURldGVjdG9yUmVmPXQsdGhpcy5fdmlzaWJpbGl0eT0iaW5pdGlhbCIsdGhpcy5fY2xvc2VPbkludGVyYWN0aW9uPSExLHRoaXMuX29uSGlkZT1uZXcgSX1zaG93KHQpe2NsZWFyVGltZW91dCh0aGlzLl9oaWRlVGltZW91dElkKSx0aGlzLl9jbG9zZU9uSW50ZXJhY3Rpb249ITAsdGhpcy5fc2hvd1RpbWVvdXRJZD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX3Zpc2liaWxpdHk9InZpc2libGUiLHRoaXMuX3Nob3dUaW1lb3V0SWQ9dm9pZCAwLHRoaXMuX29uU2hvdygpLHRoaXMuX21hcmtGb3JDaGVjaygpfSksdCl9aGlkZSh0KXtjbGVhclRpbWVvdXQodGhpcy5fc2hvd1RpbWVvdXRJZCksdGhpcy5faGlkZVRpbWVvdXRJZD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX3Zpc2liaWxpdHk9ImhpZGRlbiIsdGhpcy5faGlkZVRpbWVvdXRJZD12b2lkIDAsdGhpcy5fbWFya0ZvckNoZWNrKCl9KSx0KX1hZnRlckhpZGRlbigpe3JldHVybiB0aGlzLl9vbkhpZGV9aXNWaXNpYmxlKCl7cmV0dXJuInZpc2libGUiPT09dGhpcy5fdmlzaWJpbGl0eX1uZ09uRGVzdHJveSgpe2NsZWFyVGltZW91dCh0aGlzLl9zaG93VGltZW91dElkKSxjbGVhclRpbWVvdXQodGhpcy5faGlkZVRpbWVvdXRJZCksdGhpcy5fb25IaWRlLmNvbXBsZXRlKCl9X2FuaW1hdGlvblN0YXJ0KCl7dGhpcy5fY2xvc2VPbkludGVyYWN0aW9uPSExfV9hbmltYXRpb25Eb25lKHQpe2NvbnN0IGU9dC50b1N0YXRlOyJoaWRkZW4iIT09ZXx8dGhpcy5pc1Zpc2libGUoKXx8dGhpcy5fb25IaWRlLm5leHQoKSwidmlzaWJsZSIhPT1lJiYiaGlkZGVuIiE9PWV8fCh0aGlzLl9jbG9zZU9uSW50ZXJhY3Rpb249ITApfV9oYW5kbGVCb2R5SW50ZXJhY3Rpb24oKXt0aGlzLl9jbG9zZU9uSW50ZXJhY3Rpb24mJnRoaXMuaGlkZSgwKX1fbWFya0ZvckNoZWNrKCl7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X29uU2hvdygpe319TFEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExRKShTbShVZykpfSxMUS7JtWRpcj1sbyh7dHlwZTpMUX0pLExRLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6VWd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKExRLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpVZ31dfSksbnVsbCk7Y2xhc3MgQlEgZXh0ZW5kcyBMUXtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQpLHRoaXMuX2JyZWFrcG9pbnRPYnNlcnZlcj1lLHRoaXMuX2lzSGFuZHNldD10aGlzLl9icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZSgiKG1heC13aWR0aDogNTk5Ljk4cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSwgKG1heC13aWR0aDogOTU5Ljk4cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkiKX19QlEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJRKShTbShVZyksU20oUEwpKX0sQlEuybVjbXA9dG8oe3R5cGU6QlEsc2VsZWN0b3JzOltbIm1hdC10b29sdGlwLWNvbXBvbmVudCJdXSxob3N0QXR0cnM6WyJhcmlhLWhpZGRlbiIsInRydWUiXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZkdSgiem9vbSIsInZpc2libGUiPT09bi5fdmlzaWJpbGl0eT8xOm51bGwpfSxmZWF0dXJlczpbeHBdLGRlY2xzOjMsdmFyczo3LGNvbnN0czpbWzEsIm1hdC10b29sdGlwIiwzLCJuZ0NsYXNzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFZtKCJAc3RhdGUuc3RhcnQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2FuaW1hdGlvblN0YXJ0KCl9KSkoIkBzdGF0ZS5kb25lIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5fYW5pbWF0aW9uRG9uZShlKX0pKSxBaCgxLCJhc3luYyIpLGt1KDIpLEFtKCkpLDImZSl7bGV0IHQ7cHUoIm1hdC10b29sdGlwLWhhbmRzZXQiLG51bGw9PSh0PVRoKDEsNSxuLl9pc0hhbmRzZXQpKT9udWxsOnQubWF0Y2hlcyksRG0oIm5nQ2xhc3MiLG4udG9vbHRpcENsYXNzKSgiQHN0YXRlIixuLl92aXNpYmlsaXR5KSxyYygyKSxTdShuLm1lc3NhZ2UpfX0sZGlyZWN0aXZlczpbYU1dLHBpcGVzOlt3TV0sc3R5bGVzOlsiLm1hdC10b29sdGlwLXBhbmVse3BvaW50ZXItZXZlbnRzOm5vbmUgIWltcG9ydGFudH0ubWF0LXRvb2x0aXB7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjRweDttYXJnaW46MTRweDttYXgtd2lkdGg6MjUwcHg7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjhweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdG9vbHRpcHtvdXRsaW5lOnNvbGlkIDFweH0ubWF0LXRvb2x0aXAtaGFuZHNldHttYXJnaW46MjRweDtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjE2cHh9XG4iXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltEUS50b29sdGlwU3RhdGVdfSxjaGFuZ2VEZXRlY3Rpb246MH0pLEJRLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6VWd9LHt0eXBlOlBMfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCUSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtdG9vbHRpcC1jb21wb25lbnQiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJtYXQtdG9vbHRpcCJcbiAgICAgW25nQ2xhc3NdPSJ0b29sdGlwQ2xhc3MiXG4gICAgIFtjbGFzcy5tYXQtdG9vbHRpcC1oYW5kc2V0XT0iKF9pc0hhbmRzZXQgfCBhc3luYyk/Lm1hdGNoZXMiXG4gICAgIFtAc3RhdGVdPSJfdmlzaWJpbGl0eSJcbiAgICAgKEBzdGF0ZS5zdGFydCk9Il9hbmltYXRpb25TdGFydCgpIlxuICAgICAoQHN0YXRlLmRvbmUpPSJfYW5pbWF0aW9uRG9uZSgkZXZlbnQpIj57e21lc3NhZ2V9fTwvZGl2PlxuJyxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxhbmltYXRpb25zOltEUS50b29sdGlwU3RhdGVdLGhvc3Q6eyJbc3R5bGUuem9vbV0iOidfdmlzaWJpbGl0eSA9PT0gInZpc2libGUiID8gMSA6IG51bGwnLCJhcmlhLWhpZGRlbiI6InRydWUifSxzdHlsZXM6WyIubWF0LXRvb2x0aXAtcGFuZWx7cG9pbnRlci1ldmVudHM6bm9uZSAhaW1wb3J0YW50fS5tYXQtdG9vbHRpcHtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NHB4O21hcmdpbjoxNHB4O21heC13aWR0aDoyNTBweDtwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6OHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10b29sdGlwe291dGxpbmU6c29saWQgMXB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0e21hcmdpbjoyNHB4O3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MTZweH1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWd9LHt0eXBlOlBMfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFZRe31mdW5jdGlvbiBqUSh0LGUpe2lmKDEmdCYmKFJtKDAsIm1hdC1vcHRpb24iLDE5KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7RG0oInZhbHVlIix0KSxyYygxKSxEdSgiICIsdCwiICIpfX1mdW5jdGlvbiBVUSh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsIm1hdC1mb3JtLWZpZWxkIiwxNiksUm0oMSwibWF0LXNlbGVjdCIsMTcpLFZtKCJzZWxlY3Rpb25DaGFuZ2UiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5fY2hhbmdlUGFnZVNpemUobi52YWx1ZSl9KSksUXAoMixqUSwyLDIsIm1hdC1vcHRpb24iLDE4KSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJhcHBlYXJhbmNlIix0Ll9mb3JtRmllbGRBcHBlYXJhbmNlKSgiY29sb3IiLHQuY29sb3IpLHJjKDEpLERtKCJ2YWx1ZSIsdC5wYWdlU2l6ZSkoImRpc2FibGVkIix0LmRpc2FibGVkKSgiYXJpYS1sYWJlbCIsdC5faW50bC5pdGVtc1BlclBhZ2VMYWJlbCkscmMoMSksRG0oIm5nRm9yT2YiLHQuX2Rpc3BsYXllZFBhZ2VTaXplT3B0aW9ucyl9fWZ1bmN0aW9uIEdRKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwyMCksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO3JjKDEpLFN1KHQucGFnZVNpemUpfX1mdW5jdGlvbiBXUSh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTIpLFJtKDEsImRpdiIsMTMpLGt1KDIpLEFtKCksUXAoMyxVUSwzLDYsIm1hdC1mb3JtLWZpZWxkIiwxNCksUXAoNCxHUSwyLDEsImRpdiIsMTUpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDIpLER1KCIgIix0Ll9pbnRsLml0ZW1zUGVyUGFnZUxhYmVsLCIgIikscmMoMSksRG0oIm5nSWYiLHQuX2Rpc3BsYXllZFBhZ2VTaXplT3B0aW9ucy5sZW5ndGg+MSkscmMoMSksRG0oIm5nSWYiLHQuX2Rpc3BsYXllZFBhZ2VTaXplT3B0aW9ucy5sZW5ndGg8PTEpfX1mdW5jdGlvbiBZUSh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImJ1dHRvbiIsMjEpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5maXJzdFBhZ2UoKX0pKSxxaSgpLFJtKDEsInN2ZyIsNyksVG0oMiwicGF0aCIsMjIpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtEbSgibWF0VG9vbHRpcCIsdC5faW50bC5maXJzdFBhZ2VMYWJlbCkoIm1hdFRvb2x0aXBEaXNhYmxlZCIsdC5fcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKSkoIm1hdFRvb2x0aXBQb3NpdGlvbiIsImFib3ZlIikoImRpc2FibGVkIix0Ll9wcmV2aW91c0J1dHRvbnNEaXNhYmxlZCgpKSxqcCgiYXJpYS1sYWJlbCIsdC5faW50bC5maXJzdFBhZ2VMYWJlbCl9fWZ1bmN0aW9uIHFRKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7cWkoKSxaaSgpLFJtKDAsImJ1dHRvbiIsMjMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5sYXN0UGFnZSgpfSkpLHFpKCksUm0oMSwic3ZnIiw3KSxUbSgyLCJwYXRoIiwyNCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJtYXRUb29sdGlwIix0Ll9pbnRsLmxhc3RQYWdlTGFiZWwpKCJtYXRUb29sdGlwRGlzYWJsZWQiLHQuX25leHRCdXR0b25zRGlzYWJsZWQoKSkoIm1hdFRvb2x0aXBQb3NpdGlvbiIsImFib3ZlIikoImRpc2FibGVkIix0Ll9uZXh0QnV0dG9uc0Rpc2FibGVkKCkpLGpwKCJhcmlhLWxhYmVsIix0Ll9pbnRsLmxhc3RQYWdlTGFiZWwpfX1WUS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VlEpfSxWUS7JtW1vZD1hbyh7dHlwZTpWUX0pLFZRLsm1aW5qPXZuKHtwcm92aWRlcnM6W1RRXSxpbXBvcnRzOltbTkksV00seUwsWEldLFhJLHlGXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVlEsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltOSSxXTSx5TCxYSV0sZXhwb3J0czpbRlEsQlEsWEkseUZdLGRlY2xhcmF0aW9uczpbRlEsQlFdLGVudHJ5Q29tcG9uZW50czpbQlFdLHByb3ZpZGVyczpbVFFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVlEse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltGUSxCUV19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTkksV00seUwsWEldfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW0ZRLEJRLFhJLHlGXX19KTtjbGFzcyBaUXtjb25zdHJ1Y3Rvcigpe3RoaXMuY2hhbmdlcz1uZXcgSSx0aGlzLml0ZW1zUGVyUGFnZUxhYmVsPSJJdGVtcyBwZXIgcGFnZToiLHRoaXMubmV4dFBhZ2VMYWJlbD0iTmV4dCBwYWdlIix0aGlzLnByZXZpb3VzUGFnZUxhYmVsPSJQcmV2aW91cyBwYWdlIix0aGlzLmZpcnN0UGFnZUxhYmVsPSJGaXJzdCBwYWdlIix0aGlzLmxhc3RQYWdlTGFiZWw9Ikxhc3QgcGFnZSIsdGhpcy5nZXRSYW5nZUxhYmVsPSh0LGUsbik9PntpZigwPT1ufHwwPT1lKXJldHVybmAwIG9mICR7bn1gO2NvbnN0IG89dCplO3JldHVybmAke28rMX0g4oCTICR7bzwobj1NYXRoLm1heChuLDApKT9NYXRoLm1pbihvK2Usbik6bytlfSBvZiAke259YH19fVpRLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxaUSl9LFpRLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBaUX0sdG9rZW46WlEscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFpRLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7Y29uc3QgWFE9e3Byb3ZpZGU6WlEsZGVwczpbW25ldyBTcixuZXcgRXIsWlFdXSx1c2VGYWN0b3J5OmZ1bmN0aW9uIEtRKHQpe3JldHVybiB0fHxuZXcgWlF9fSxKUT1uZXcgR2EoIk1BVF9QQUdJTkFUT1JfREVGQVVMVF9PUFRJT05TIiksUVE9S0koZUgoY2xhc3N7fSkpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyAkUSBleHRlbmRzIFFRe2NvbnN0cnVjdG9yKHQsZSxuKXtpZihzdXBlcigpLHRoaXMuX2ludGw9dCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1lLHRoaXMuX3BhZ2VJbmRleD0wLHRoaXMuX2xlbmd0aD0wLHRoaXMuX3BhZ2VTaXplT3B0aW9ucz1bXSx0aGlzLl9oaWRlUGFnZVNpemU9ITEsdGhpcy5fc2hvd0ZpcnN0TGFzdEJ1dHRvbnM9ITEsdGhpcy5wYWdlPW5ldyBMaCx0aGlzLl9pbnRsQ2hhbmdlcz10LmNoYW5nZXMuc3Vic2NyaWJlKCgoKT0+dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpKSxuKXtjb25zdHtwYWdlU2l6ZTp0LHBhZ2VTaXplT3B0aW9uczplLGhpZGVQYWdlU2l6ZTpvLHNob3dGaXJzdExhc3RCdXR0b25zOml9PW47bnVsbCE9dCYmKHRoaXMuX3BhZ2VTaXplPXQpLG51bGwhPWUmJih0aGlzLl9wYWdlU2l6ZU9wdGlvbnM9ZSksbnVsbCE9byYmKHRoaXMuX2hpZGVQYWdlU2l6ZT1vKSxudWxsIT1pJiYodGhpcy5fc2hvd0ZpcnN0TGFzdEJ1dHRvbnM9aSl9fWdldCBwYWdlSW5kZXgoKXtyZXR1cm4gdGhpcy5fcGFnZUluZGV4fXNldCBwYWdlSW5kZXgodCl7dGhpcy5fcGFnZUluZGV4PU1hdGgubWF4KF96KHQpLDApLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5fbGVuZ3RofXNldCBsZW5ndGgodCl7dGhpcy5fbGVuZ3RoPV96KHQpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfWdldCBwYWdlU2l6ZSgpe3JldHVybiB0aGlzLl9wYWdlU2l6ZX1zZXQgcGFnZVNpemUodCl7dGhpcy5fcGFnZVNpemU9TWF0aC5tYXgoX3oodCksMCksdGhpcy5fdXBkYXRlRGlzcGxheWVkUGFnZVNpemVPcHRpb25zKCl9Z2V0IHBhZ2VTaXplT3B0aW9ucygpe3JldHVybiB0aGlzLl9wYWdlU2l6ZU9wdGlvbnN9c2V0IHBhZ2VTaXplT3B0aW9ucyh0KXt0aGlzLl9wYWdlU2l6ZU9wdGlvbnM9KHR8fFtdKS5tYXAoKHQ9Pl96KHQpKSksdGhpcy5fdXBkYXRlRGlzcGxheWVkUGFnZVNpemVPcHRpb25zKCl9Z2V0IGhpZGVQYWdlU2l6ZSgpe3JldHVybiB0aGlzLl9oaWRlUGFnZVNpemV9c2V0IGhpZGVQYWdlU2l6ZSh0KXt0aGlzLl9oaWRlUGFnZVNpemU9eXoodCl9Z2V0IHNob3dGaXJzdExhc3RCdXR0b25zKCl7cmV0dXJuIHRoaXMuX3Nob3dGaXJzdExhc3RCdXR0b25zfXNldCBzaG93Rmlyc3RMYXN0QnV0dG9ucyh0KXt0aGlzLl9zaG93Rmlyc3RMYXN0QnV0dG9ucz15eih0KX1uZ09uSW5pdCgpe3RoaXMuX2luaXRpYWxpemVkPSEwLHRoaXMuX3VwZGF0ZURpc3BsYXllZFBhZ2VTaXplT3B0aW9ucygpLHRoaXMuX21hcmtJbml0aWFsaXplZCgpfW5nT25EZXN0cm95KCl7dGhpcy5faW50bENoYW5nZXMudW5zdWJzY3JpYmUoKX1uZXh0UGFnZSgpe2lmKCF0aGlzLmhhc05leHRQYWdlKCkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5wYWdlSW5kZXg7dGhpcy5wYWdlSW5kZXgrKyx0aGlzLl9lbWl0UGFnZUV2ZW50KHQpfXByZXZpb3VzUGFnZSgpe2lmKCF0aGlzLmhhc1ByZXZpb3VzUGFnZSgpKXJldHVybjtjb25zdCB0PXRoaXMucGFnZUluZGV4O3RoaXMucGFnZUluZGV4LS0sdGhpcy5fZW1pdFBhZ2VFdmVudCh0KX1maXJzdFBhZ2UoKXtpZighdGhpcy5oYXNQcmV2aW91c1BhZ2UoKSlyZXR1cm47Y29uc3QgdD10aGlzLnBhZ2VJbmRleDt0aGlzLnBhZ2VJbmRleD0wLHRoaXMuX2VtaXRQYWdlRXZlbnQodCl9bGFzdFBhZ2UoKXtpZighdGhpcy5oYXNOZXh0UGFnZSgpKXJldHVybjtjb25zdCB0PXRoaXMucGFnZUluZGV4O3RoaXMucGFnZUluZGV4PXRoaXMuZ2V0TnVtYmVyT2ZQYWdlcygpLTEsdGhpcy5fZW1pdFBhZ2VFdmVudCh0KX1oYXNQcmV2aW91c1BhZ2UoKXtyZXR1cm4gdGhpcy5wYWdlSW5kZXg+PTEmJjAhPXRoaXMucGFnZVNpemV9aGFzTmV4dFBhZ2UoKXtjb25zdCB0PXRoaXMuZ2V0TnVtYmVyT2ZQYWdlcygpLTE7cmV0dXJuIHRoaXMucGFnZUluZGV4PHQmJjAhPXRoaXMucGFnZVNpemV9Z2V0TnVtYmVyT2ZQYWdlcygpe3JldHVybiB0aGlzLnBhZ2VTaXplP01hdGguY2VpbCh0aGlzLmxlbmd0aC90aGlzLnBhZ2VTaXplKTowfV9jaGFuZ2VQYWdlU2l6ZSh0KXtjb25zdCBlPXRoaXMucGFnZUluZGV4O3RoaXMucGFnZUluZGV4PU1hdGguZmxvb3IodGhpcy5wYWdlSW5kZXgqdGhpcy5wYWdlU2l6ZS90KXx8MCx0aGlzLnBhZ2VTaXplPXQsdGhpcy5fZW1pdFBhZ2VFdmVudChlKX1fbmV4dEJ1dHRvbnNEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHwhdGhpcy5oYXNOZXh0UGFnZSgpfV9wcmV2aW91c0J1dHRvbnNEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHwhdGhpcy5oYXNQcmV2aW91c1BhZ2UoKX1fdXBkYXRlRGlzcGxheWVkUGFnZVNpemVPcHRpb25zKCl7dGhpcy5faW5pdGlhbGl6ZWQmJih0aGlzLnBhZ2VTaXplfHwodGhpcy5fcGFnZVNpemU9MCE9dGhpcy5wYWdlU2l6ZU9wdGlvbnMubGVuZ3RoP3RoaXMucGFnZVNpemVPcHRpb25zWzBdOjUwKSx0aGlzLl9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnM9dGhpcy5wYWdlU2l6ZU9wdGlvbnMuc2xpY2UoKSwtMT09PXRoaXMuX2Rpc3BsYXllZFBhZ2VTaXplT3B0aW9ucy5pbmRleE9mKHRoaXMucGFnZVNpemUpJiZ0aGlzLl9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMucHVzaCh0aGlzLnBhZ2VTaXplKSx0aGlzLl9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMuc29ydCgoKHQsZSk9PnQtZSkpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1fZW1pdFBhZ2VFdmVudCh0KXt0aGlzLnBhZ2UuZW1pdCh7cHJldmlvdXNQYWdlSW5kZXg6dCxwYWdlSW5kZXg6dGhpcy5wYWdlSW5kZXgscGFnZVNpemU6dGhpcy5wYWdlU2l6ZSxsZW5ndGg6dGhpcy5sZW5ndGh9KX19JFEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fCRRKShTbShaUSksU20oVWcpLFNtKHZvaWQgMCkpfSwkUS7JtWRpcj1sbyh7dHlwZTokUSxpbnB1dHM6e3BhZ2VJbmRleDoicGFnZUluZGV4IixsZW5ndGg6Imxlbmd0aCIscGFnZVNpemU6InBhZ2VTaXplIixwYWdlU2l6ZU9wdGlvbnM6InBhZ2VTaXplT3B0aW9ucyIsaGlkZVBhZ2VTaXplOiJoaWRlUGFnZVNpemUiLHNob3dGaXJzdExhc3RCdXR0b25zOiJzaG93Rmlyc3RMYXN0QnV0dG9ucyIsY29sb3I6ImNvbG9yIn0sb3V0cHV0czp7cGFnZToicGFnZSJ9LGZlYXR1cmVzOlt4cF19KSwkUS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlpRfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwfV0sJFEucHJvcERlY29yYXRvcnM9e2NvbG9yOlt7dHlwZTp4eX1dLHBhZ2VJbmRleDpbe3R5cGU6eHl9XSxsZW5ndGg6W3t0eXBlOnh5fV0scGFnZVNpemU6W3t0eXBlOnh5fV0scGFnZVNpemVPcHRpb25zOlt7dHlwZTp4eX1dLGhpZGVQYWdlU2l6ZTpbe3R5cGU6eHl9XSxzaG93Rmlyc3RMYXN0QnV0dG9uczpbe3R5cGU6eHl9XSxwYWdlOlt7dHlwZTpPeX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKCRRLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpaUX0se3R5cGU6VWd9LHt0eXBlOnZvaWQgMH1dfSkse3BhZ2U6W3t0eXBlOk95fV0scGFnZUluZGV4Olt7dHlwZTp4eX1dLGxlbmd0aDpbe3R5cGU6eHl9XSxwYWdlU2l6ZTpbe3R5cGU6eHl9XSxwYWdlU2l6ZU9wdGlvbnM6W3t0eXBlOnh5fV0saGlkZVBhZ2VTaXplOlt7dHlwZTp4eX1dLHNob3dGaXJzdExhc3RCdXR0b25zOlt7dHlwZTp4eX1dLGNvbG9yOlt7dHlwZTp4eX1dfSk7Y2xhc3MgdCQgZXh0ZW5kcyAkUXtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlLG4pLG4mJm51bGwhPW4uZm9ybUZpZWxkQXBwZWFyYW5jZSYmKHRoaXMuX2Zvcm1GaWVsZEFwcGVhcmFuY2U9bi5mb3JtRmllbGRBcHBlYXJhbmNlKX19dCQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHQkKShTbShaUSksU20oVWcpLFNtKEpRLDgpKX0sdCQuybVjbXA9dG8oe3R5cGU6dCQsc2VsZWN0b3JzOltbIm1hdC1wYWdpbmF0b3IiXV0saG9zdEF0dHJzOlsicm9sZSIsImdyb3VwIiwxLCJtYXQtcGFnaW5hdG9yIl0saW5wdXRzOntkaXNhYmxlZDoiZGlzYWJsZWQifSxleHBvcnRBczpbIm1hdFBhZ2luYXRvciJdLGZlYXR1cmVzOlt4cF0sZGVjbHM6MTQsdmFyczoxNCxjb25zdHM6W1sxLCJtYXQtcGFnaW5hdG9yLW91dGVyLWNvbnRhaW5lciJdLFsxLCJtYXQtcGFnaW5hdG9yLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSIsNCwibmdJZiJdLFsxLCJtYXQtcGFnaW5hdG9yLXJhbmdlLWFjdGlvbnMiXSxbMSwibWF0LXBhZ2luYXRvci1yYW5nZS1sYWJlbCJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwibWF0LXBhZ2luYXRvci1uYXZpZ2F0aW9uLWZpcnN0IiwzLCJtYXRUb29sdGlwIiwibWF0VG9vbHRpcERpc2FibGVkIiwibWF0VG9vbHRpcFBvc2l0aW9uIiwiZGlzYWJsZWQiLCJjbGljayIsNCwibmdJZiJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwidHlwZSIsImJ1dHRvbiIsMSwibWF0LXBhZ2luYXRvci1uYXZpZ2F0aW9uLXByZXZpb3VzIiwzLCJtYXRUb29sdGlwIiwibWF0VG9vbHRpcERpc2FibGVkIiwibWF0VG9vbHRpcFBvc2l0aW9uIiwiZGlzYWJsZWQiLCJjbGljayJdLFsidmlld0JveCIsIjAgMCAyNCAyNCIsImZvY3VzYWJsZSIsImZhbHNlIiwxLCJtYXQtcGFnaW5hdG9yLWljb24iXSxbImQiLCJNMTUuNDEgNy40MUwxNCA2bC02IDYgNiA2IDEuNDEtMS40MUwxMC44MyAxMnoiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInR5cGUiLCJidXR0b24iLDEsIm1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1uZXh0IiwzLCJtYXRUb29sdGlwIiwibWF0VG9vbHRpcERpc2FibGVkIiwibWF0VG9vbHRpcFBvc2l0aW9uIiwiZGlzYWJsZWQiLCJjbGljayJdLFsiZCIsIk0xMCA2TDguNTkgNy40MSAxMy4xNyAxMmwtNC41OCA0LjU5TDEwIDE4bDYtNnoiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInR5cGUiLCJidXR0b24iLCJjbGFzcyIsIm1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1sYXN0IiwzLCJtYXRUb29sdGlwIiwibWF0VG9vbHRpcERpc2FibGVkIiwibWF0VG9vbHRpcFBvc2l0aW9uIiwiZGlzYWJsZWQiLCJjbGljayIsNCwibmdJZiJdLFsxLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSJdLFsxLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1sYWJlbCJdLFsiY2xhc3MiLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1zZWxlY3QiLDMsImFwcGVhcmFuY2UiLCJjb2xvciIsNCwibmdJZiJdLFsiY2xhc3MiLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS12YWx1ZSIsNCwibmdJZiJdLFsxLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1zZWxlY3QiLDMsImFwcGVhcmFuY2UiLCJjb2xvciJdLFszLCJ2YWx1ZSIsImRpc2FibGVkIiwiYXJpYS1sYWJlbCIsInNlbGVjdGlvbkNoYW5nZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInZhbHVlIl0sWzEsIm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXZhbHVlIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJ0eXBlIiwiYnV0dG9uIiwxLCJtYXQtcGFnaW5hdG9yLW5hdmlnYXRpb24tZmlyc3QiLDMsIm1hdFRvb2x0aXAiLCJtYXRUb29sdGlwRGlzYWJsZWQiLCJtYXRUb29sdGlwUG9zaXRpb24iLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJkIiwiTTE4LjQxIDE2LjU5TDEzLjgyIDEybDQuNTktNC41OUwxNyA2bC02IDYgNiA2ek02IDZoMnYxMkg2eiJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwidHlwZSIsImJ1dHRvbiIsMSwibWF0LXBhZ2luYXRvci1uYXZpZ2F0aW9uLWxhc3QiLDMsIm1hdFRvb2x0aXAiLCJtYXRUb29sdGlwRGlzYWJsZWQiLCJtYXRUb29sdGlwUG9zaXRpb24iLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJkIiwiTTUuNTkgNy40MUwxMC4xOCAxMmwtNC41OSA0LjU5TDcgMThsNi02LTYtNnpNMTYgNmgydjEyaC0yeiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiLDEpLFFwKDIsV1EsNSwzLCJkaXYiLDIpLFJtKDMsImRpdiIsMyksUm0oNCwiZGl2Iiw0KSxrdSg1KSxBbSgpLFFwKDYsWVEsMyw1LCJidXR0b24iLDUpLFJtKDcsImJ1dHRvbiIsNiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnByZXZpb3VzUGFnZSgpfSkpLHFpKCksUm0oOCwic3ZnIiw3KSxUbSg5LCJwYXRoIiw4KSxBbSgpLEFtKCksWmkoKSxSbSgxMCwiYnV0dG9uIiw5KSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ubmV4dFBhZ2UoKX0pKSxxaSgpLFJtKDExLCJzdmciLDcpLFRtKDEyLCJwYXRoIiwxMCksQW0oKSxBbSgpLFFwKDEzLHFRLDMsNSwiYnV0dG9uIiwxMSksQW0oKSxBbSgpLEFtKCkpLDImZSYmKHJjKDIpLERtKCJuZ0lmIiwhbi5oaWRlUGFnZVNpemUpLHJjKDMpLER1KCIgIixuLl9pbnRsLmdldFJhbmdlTGFiZWwobi5wYWdlSW5kZXgsbi5wYWdlU2l6ZSxuLmxlbmd0aCksIiAiKSxyYygxKSxEbSgibmdJZiIsbi5zaG93Rmlyc3RMYXN0QnV0dG9ucykscmMoMSksRG0oIm1hdFRvb2x0aXAiLG4uX2ludGwucHJldmlvdXNQYWdlTGFiZWwpKCJtYXRUb29sdGlwRGlzYWJsZWQiLG4uX3ByZXZpb3VzQnV0dG9uc0Rpc2FibGVkKCkpKCJtYXRUb29sdGlwUG9zaXRpb24iLCJhYm92ZSIpKCJkaXNhYmxlZCIsbi5fcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKSksanAoImFyaWEtbGFiZWwiLG4uX2ludGwucHJldmlvdXNQYWdlTGFiZWwpLHJjKDMpLERtKCJtYXRUb29sdGlwIixuLl9pbnRsLm5leHRQYWdlTGFiZWwpKCJtYXRUb29sdGlwRGlzYWJsZWQiLG4uX25leHRCdXR0b25zRGlzYWJsZWQoKSkoIm1hdFRvb2x0aXBQb3NpdGlvbiIsImFib3ZlIikoImRpc2FibGVkIixuLl9uZXh0QnV0dG9uc0Rpc2FibGVkKCkpLGpwKCJhcmlhLWxhYmVsIixuLl9pbnRsLm5leHRQYWdlTGFiZWwpLHJjKDMpLERtKCJuZ0lmIixuLnNob3dGaXJzdExhc3RCdXR0b25zKSl9LGRpcmVjdGl2ZXM6W2RNLFhILEZRLEFWLEFHLGxNLEJIXSxzdHlsZXM6WyIubWF0LXBhZ2luYXRvcntkaXNwbGF5OmJsb2NrfS5tYXQtcGFnaW5hdG9yLW91dGVyLWNvbnRhaW5lcntkaXNwbGF5OmZsZXh9Lm1hdC1wYWdpbmF0b3ItY29udGFpbmVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BhZGRpbmc6MCA4cHg7ZmxleC13cmFwOndyYXAtcmV2ZXJzZTt3aWR0aDoxMDAlfS5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6YmFzZWxpbmU7bWFyZ2luLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXple21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjhweH0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUtbGFiZWx7bWFyZ2luOjAgNHB4fS5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1zZWxlY3R7bWFyZ2luOjZweCA0cHggMCA0cHg7d2lkdGg6NTZweH0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZXt3aWR0aDo2NHB4fS5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxse3dpZHRoOjY0cHh9Lm1hdC1wYWdpbmF0b3ItcmFuZ2UtbGFiZWx7bWFyZ2luOjAgMzJweCAwIDI0cHh9Lm1hdC1wYWdpbmF0b3ItcmFuZ2UtYWN0aW9uc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5tYXQtcGFnaW5hdG9yLWljb257d2lkdGg6MjhweDtmaWxsOmN1cnJlbnRDb2xvcn1bZGlyPXJ0bF0gLm1hdC1wYWdpbmF0b3ItaWNvbnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXBhZ2luYXRvci1pY29ue2ZpbGw6Q2FudmFzVGV4dH1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLHQkLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WlF9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W0pRXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh0JCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtcGFnaW5hdG9yIixleHBvcnRBczoibWF0UGFnaW5hdG9yIix0ZW1wbGF0ZTonPGRpdiBjbGFzcz0ibWF0LXBhZ2luYXRvci1vdXRlci1jb250YWluZXIiPlxuICA8ZGl2IGNsYXNzPSJtYXQtcGFnaW5hdG9yLWNvbnRhaW5lciI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXBhZ2luYXRvci1wYWdlLXNpemUiICpuZ0lmPSIhaGlkZVBhZ2VTaXplIj5cbiAgICAgIDxkaXYgY2xhc3M9Im1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLWxhYmVsIj5cbiAgICAgICAge3tfaW50bC5pdGVtc1BlclBhZ2VMYWJlbH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgICpuZ0lmPSJfZGlzcGxheWVkUGFnZVNpemVPcHRpb25zLmxlbmd0aCA+IDEiXG4gICAgICAgIFthcHBlYXJhbmNlXT0iX2Zvcm1GaWVsZEFwcGVhcmFuY2UhIlxuICAgICAgICBbY29sb3JdPSJjb2xvciJcbiAgICAgICAgY2xhc3M9Im1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXNlbGVjdCI+XG4gICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgW3ZhbHVlXT0icGFnZVNpemUiXG4gICAgICAgICAgW2Rpc2FibGVkXT0iZGlzYWJsZWQiXG4gICAgICAgICAgW2FyaWEtbGFiZWxdPSJfaW50bC5pdGVtc1BlclBhZ2VMYWJlbCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT0iX2NoYW5nZVBhZ2VTaXplKCRldmVudC52YWx1ZSkiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj0ibGV0IHBhZ2VTaXplT3B0aW9uIG9mIF9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMiIFt2YWx1ZV09InBhZ2VTaXplT3B0aW9uIj5cbiAgICAgICAgICAgIHt7cGFnZVNpemVPcHRpb259fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz0ibWF0LXBhZ2luYXRvci1wYWdlLXNpemUtdmFsdWUiXG4gICAgICAgICpuZ0lmPSJfZGlzcGxheWVkUGFnZVNpemVPcHRpb25zLmxlbmd0aCA8PSAxIj57e3BhZ2VTaXplfX08L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9Im1hdC1wYWdpbmF0b3ItcmFuZ2UtYWN0aW9ucyI+XG4gICAgICA8ZGl2IGNsYXNzPSJtYXQtcGFnaW5hdG9yLXJhbmdlLWxhYmVsIj5cbiAgICAgICAge3tfaW50bC5nZXRSYW5nZUxhYmVsKHBhZ2VJbmRleCwgcGFnZVNpemUsIGxlbmd0aCl9fVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9ImJ1dHRvbiJcbiAgICAgICAgICAgICAgY2xhc3M9Im1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1maXJzdCJcbiAgICAgICAgICAgICAgKGNsaWNrKT0iZmlyc3RQYWdlKCkiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPSJfaW50bC5maXJzdFBhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPSJfaW50bC5maXJzdFBhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09Il9wcmV2aW91c0J1dHRvbnNEaXNhYmxlZCgpIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT0iXCdhYm92ZVwnIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPSJfcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKSJcbiAgICAgICAgICAgICAgKm5nSWY9InNob3dGaXJzdExhc3RCdXR0b25zIj5cbiAgICAgICAgPHN2ZyBjbGFzcz0ibWF0LXBhZ2luYXRvci1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZvY3VzYWJsZT0iZmFsc2UiPlxuICAgICAgICAgIDxwYXRoIGQ9Ik0xOC40MSAxNi41OUwxMy44MiAxMmw0LjU5LTQuNTlMMTcgNmwtNiA2IDYgNnpNNiA2aDJ2MTJINnoiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9ImJ1dHRvbiJcbiAgICAgICAgICAgICAgY2xhc3M9Im1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1wcmV2aW91cyJcbiAgICAgICAgICAgICAgKGNsaWNrKT0icHJldmlvdXNQYWdlKCkiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPSJfaW50bC5wcmV2aW91c1BhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPSJfaW50bC5wcmV2aW91c1BhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09Il9wcmV2aW91c0J1dHRvbnNEaXNhYmxlZCgpIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT0iXCdhYm92ZVwnIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPSJfcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKSI+XG4gICAgICAgIDxzdmcgY2xhc3M9Im1hdC1wYWdpbmF0b3ItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmb2N1c2FibGU9ImZhbHNlIj5cbiAgICAgICAgICA8cGF0aCBkPSJNMTUuNDEgNy40MUwxNCA2bC02IDYgNiA2IDEuNDEtMS40MUwxMC44MyAxMnoiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9ImJ1dHRvbiJcbiAgICAgICAgICAgICAgY2xhc3M9Im1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1uZXh0IlxuICAgICAgICAgICAgICAoY2xpY2spPSJuZXh0UGFnZSgpIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT0iX2ludGwubmV4dFBhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPSJfaW50bC5uZXh0UGFnZUxhYmVsIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT0iX25leHRCdXR0b25zRGlzYWJsZWQoKSJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09IlwnYWJvdmVcJyJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT0iX25leHRCdXR0b25zRGlzYWJsZWQoKSI+XG4gICAgICAgIDxzdmcgY2xhc3M9Im1hdC1wYWdpbmF0b3ItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmb2N1c2FibGU9ImZhbHNlIj5cbiAgICAgICAgICA8cGF0aCBkPSJNMTAgNkw4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6Ii8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPSJidXR0b24iXG4gICAgICAgICAgICAgIGNsYXNzPSJtYXQtcGFnaW5hdG9yLW5hdmlnYXRpb24tbGFzdCJcbiAgICAgICAgICAgICAgKGNsaWNrKT0ibGFzdFBhZ2UoKSJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09Il9pbnRsLmxhc3RQYWdlTGFiZWwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT0iX2ludGwubGFzdFBhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09Il9uZXh0QnV0dG9uc0Rpc2FibGVkKCkiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwUG9zaXRpb25dPSJcJ2Fib3ZlXCciXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09Il9uZXh0QnV0dG9uc0Rpc2FibGVkKCkiXG4gICAgICAgICAgICAgICpuZ0lmPSJzaG93Rmlyc3RMYXN0QnV0dG9ucyI+XG4gICAgICAgIDxzdmcgY2xhc3M9Im1hdC1wYWdpbmF0b3ItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmb2N1c2FibGU9ImZhbHNlIj5cbiAgICAgICAgICA8cGF0aCBkPSJNNS41OSA3LjQxTDEwLjE4IDEybC00LjU5IDQuNTlMNyAxOGw2LTYtNi02ek0xNiA2aDJ2MTJoLTJ6Ii8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4nLGlucHV0czpbImRpc2FibGVkIl0saG9zdDp7Y2xhc3M6Im1hdC1wYWdpbmF0b3IiLHJvbGU6Imdyb3VwIn0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsc3R5bGVzOlsiLm1hdC1wYWdpbmF0b3J7ZGlzcGxheTpibG9ja30ubWF0LXBhZ2luYXRvci1vdXRlci1jb250YWluZXJ7ZGlzcGxheTpmbGV4fS5tYXQtcGFnaW5hdG9yLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nOjAgOHB4O2ZsZXgtd3JhcDp3cmFwLXJldmVyc2U7d2lkdGg6MTAwJX0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemV7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDo4cHh9Lm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLWxhYmVse21hcmdpbjowIDRweH0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUtc2VsZWN0e21hcmdpbjo2cHggNHB4IDAgNHB4O3dpZHRoOjU2cHh9Lm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmV7d2lkdGg6NjRweH0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbHt3aWR0aDo2NHB4fS5tYXQtcGFnaW5hdG9yLXJhbmdlLWxhYmVse21hcmdpbjowIDMycHggMCAyNHB4fS5tYXQtcGFnaW5hdG9yLXJhbmdlLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubWF0LXBhZ2luYXRvci1pY29ue3dpZHRoOjI4cHg7ZmlsbDpjdXJyZW50Q29sb3J9W2Rpcj1ydGxdIC5tYXQtcGFnaW5hdG9yLWljb257dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1wYWdpbmF0b3ItaWNvbntmaWxsOkNhbnZhc1RleHR9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlpRfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltKUV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBlJHt9ZnVuY3Rpb24gbiQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDMpLFZtKCJAYXJyb3dQb3NpdGlvbi5zdGFydCIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbj0hMH0pKSgiQGFycm93UG9zaXRpb24uZG9uZSIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbj0hMX0pKSxUbSgxLCJkaXYiLDQpLFJtKDIsImRpdiIsNSksVG0oMywiZGl2Iiw2KSxUbSg0LCJkaXYiLDcpLFRtKDUsImRpdiIsOCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJAYXJyb3dPcGFjaXR5Iix0Ll9nZXRBcnJvd1ZpZXdTdGF0ZSgpKSgiQGFycm93UG9zaXRpb24iLHQuX2dldEFycm93Vmlld1N0YXRlKCkpKCJAYWxsb3dDaGlsZHJlbiIsdC5fZ2V0QXJyb3dEaXJlY3Rpb25TdGF0ZSgpKSxyYygyKSxEbSgiQGluZGljYXRvciIsdC5fZ2V0QXJyb3dEaXJlY3Rpb25TdGF0ZSgpKSxyYygxKSxEbSgiQGxlZnRQb2ludGVyIix0Ll9nZXRBcnJvd0RpcmVjdGlvblN0YXRlKCkpLHJjKDEpLERtKCJAcmlnaHRQb2ludGVyIix0Ll9nZXRBcnJvd0RpcmVjdGlvblN0YXRlKCkpfX1lJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZSQpfSxlJC7JtW1vZD1hbyh7dHlwZTplJH0pLGUkLsm1aW5qPXZuKHtwcm92aWRlcnM6W1hRXSxpbXBvcnRzOltbV00sSkgsVEcsVlEsWEldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZSQsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltXTSxKSCxURyxWUSxYSV0sZXhwb3J0czpbdCRdLGRlY2xhcmF0aW9uczpbdCRdLHByb3ZpZGVyczpbWFFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZSQse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVyblt0JF19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bV00sSkgsVEcsVlEsWEldfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3QkXX19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IG8kPW5ldyBHYSgiTUFUX1NPUlRfREVGQVVMVF9PUFRJT05TIiksaSQ9ZUgoS0koY2xhc3N7fSkpO2NsYXNzIGEkIGV4dGVuZHMgaSR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9kZWZhdWx0T3B0aW9ucz10LHRoaXMuc29ydGFibGVzPW5ldyBNYXAsdGhpcy5fc3RhdGVDaGFuZ2VzPW5ldyBJLHRoaXMuc3RhcnQ9ImFzYyIsdGhpcy5fZGlyZWN0aW9uPSIiLHRoaXMuc29ydENoYW5nZT1uZXcgTGh9Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLl9kaXJlY3Rpb259c2V0IGRpcmVjdGlvbih0KXtpZih0JiYiYXNjIiE9PXQmJiJkZXNjIiE9PXQmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyhmdW5jdGlvbiBlKHQpe3JldHVybiBFcnJvcihgJHt0fSBpcyBub3QgYSB2YWxpZCBzb3J0IGRpcmVjdGlvbiAoJ2FzYycgb3IgJ2Rlc2MnKS5gKX0pKHQpO3RoaXMuX2RpcmVjdGlvbj10fWdldCBkaXNhYmxlQ2xlYXIoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZUNsZWFyfXNldCBkaXNhYmxlQ2xlYXIodCl7dGhpcy5fZGlzYWJsZUNsZWFyPXl6KHQpfXJlZ2lzdGVyKHQpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpe2lmKCF0LmlkKXRocm93KGZ1bmN0aW9uIGUoKXtyZXR1cm4gRXJyb3IoIk1hdFNvcnRIZWFkZXIgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGEgdW5pcXVlIGlkLiIpfSkoKTtpZih0aGlzLnNvcnRhYmxlcy5oYXModC5pZCkpdGhyb3coZnVuY3Rpb24gbih0KXtyZXR1cm4gRXJyb3IoYENhbm5vdCBoYXZlIHR3byBNYXRTb3J0YWJsZXMgd2l0aCB0aGUgc2FtZSBpZCAoJHt0fSkuYCl9KSh0LmlkKX10aGlzLnNvcnRhYmxlcy5zZXQodC5pZCx0KX1kZXJlZ2lzdGVyKHQpe3RoaXMuc29ydGFibGVzLmRlbGV0ZSh0LmlkKX1zb3J0KHQpe3RoaXMuYWN0aXZlIT10LmlkPyh0aGlzLmFjdGl2ZT10LmlkLHRoaXMuZGlyZWN0aW9uPXQuc3RhcnQ/dC5zdGFydDp0aGlzLnN0YXJ0KTp0aGlzLmRpcmVjdGlvbj10aGlzLmdldE5leHRTb3J0RGlyZWN0aW9uKHQpLHRoaXMuc29ydENoYW5nZS5lbWl0KHthY3RpdmU6dGhpcy5hY3RpdmUsZGlyZWN0aW9uOnRoaXMuZGlyZWN0aW9ufSl9Z2V0TmV4dFNvcnREaXJlY3Rpb24odCl7dmFyIGUsbixvO2lmKCF0KXJldHVybiIiO2NvbnN0IGk9bnVsbCE9PShuPW51bGwhPT0oZT1udWxsPT10P3ZvaWQgMDp0LmRpc2FibGVDbGVhcikmJnZvaWQgMCE9PWU/ZTp0aGlzLmRpc2FibGVDbGVhcikmJnZvaWQgMCE9PW4/bjohIShudWxsPT09KG89dGhpcy5fZGVmYXVsdE9wdGlvbnMpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLmRpc2FibGVDbGVhcik7bGV0IGE9KGZ1bmN0aW9uIHIodCxlKXtsZXQgbj1bImFzYyIsImRlc2MiXTtyZXR1cm4iZGVzYyI9PXQmJm4ucmV2ZXJzZSgpLGV8fG4ucHVzaCgiIiksbn0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0LnN0YXJ0fHx0aGlzLnN0YXJ0LGkpLHM9YS5pbmRleE9mKHRoaXMuZGlyZWN0aW9uKSsxO3JldHVybiBzPj1hLmxlbmd0aCYmKHM9MCksYVtzXX1uZ09uSW5pdCgpe3RoaXMuX21hcmtJbml0aWFsaXplZCgpfW5nT25DaGFuZ2VzKCl7dGhpcy5fc3RhdGVDaGFuZ2VzLm5leHQoKX1uZ09uRGVzdHJveSgpe3RoaXMuX3N0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpfX1hJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YSQpKFNtKG8kLDgpKX0sYSQuybVkaXI9bG8oe3R5cGU6YSQsc2VsZWN0b3JzOltbIiIsIm1hdFNvcnQiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtc29ydCJdLGlucHV0czp7ZGlzYWJsZWQ6WyJtYXRTb3J0RGlzYWJsZWQiLCJkaXNhYmxlZCJdLHN0YXJ0OlsibWF0U29ydFN0YXJ0Iiwic3RhcnQiXSxkaXJlY3Rpb246WyJtYXRTb3J0RGlyZWN0aW9uIiwiZGlyZWN0aW9uIl0sZGlzYWJsZUNsZWFyOlsibWF0U29ydERpc2FibGVDbGVhciIsImRpc2FibGVDbGVhciJdLGFjdGl2ZTpbIm1hdFNvcnRBY3RpdmUiLCJhY3RpdmUiXX0sb3V0cHV0czp7c29ydENoYW5nZToibWF0U29ydENoYW5nZSJ9LGV4cG9ydEFzOlsibWF0U29ydCJdLGZlYXR1cmVzOlt4cCxCb119KSxhJC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbbyRdfV19XSxhJC5wcm9wRGVjb3JhdG9ycz17YWN0aXZlOlt7dHlwZTp4eSxhcmdzOlsibWF0U29ydEFjdGl2ZSJdfV0sc3RhcnQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRTb3J0U3RhcnQiXX1dLGRpcmVjdGlvbjpbe3R5cGU6eHksYXJnczpbIm1hdFNvcnREaXJlY3Rpb24iXX1dLGRpc2FibGVDbGVhcjpbe3R5cGU6eHksYXJnczpbIm1hdFNvcnREaXNhYmxlQ2xlYXIiXX1dLHNvcnRDaGFuZ2U6W3t0eXBlOk95LGFyZ3M6WyJtYXRTb3J0Q2hhbmdlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChhJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0U29ydF0iLGV4cG9ydEFzOiJtYXRTb3J0Iixob3N0OntjbGFzczoibWF0LXNvcnQifSxpbnB1dHM6WyJkaXNhYmxlZDogbWF0U29ydERpc2FibGVkIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W28kXX1dfV19KSx7c3RhcnQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRTb3J0U3RhcnQiXX1dLHNvcnRDaGFuZ2U6W3t0eXBlOk95LGFyZ3M6WyJtYXRTb3J0Q2hhbmdlIl19XSxkaXJlY3Rpb246W3t0eXBlOnh5LGFyZ3M6WyJtYXRTb3J0RGlyZWN0aW9uIl19XSxkaXNhYmxlQ2xlYXI6W3t0eXBlOnh5LGFyZ3M6WyJtYXRTb3J0RGlzYWJsZUNsZWFyIl19XSxhY3RpdmU6W3t0eXBlOnh5LGFyZ3M6WyJtYXRTb3J0QWN0aXZlIl19XX0pO2NvbnN0IHIkPVdJLkVOVEVSSU5HKyIgIitHSS5TVEFOREFSRF9DVVJWRSxzJD17aW5kaWNhdG9yOm54KCJpbmRpY2F0b3IiLFtyeCgiYWN0aXZlLWFzYywgYXNjIixheCh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDBweCkifSkpLHJ4KCJhY3RpdmUtZGVzYywgZGVzYyIsYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlWSgxMHB4KSJ9KSksbHgoImFjdGl2ZS1hc2MgPD0+IGFjdGl2ZS1kZXNjIixveChyJCkpXSksbGVmdFBvaW50ZXI6bngoImxlZnRQb2ludGVyIixbcngoImFjdGl2ZS1hc2MsIGFzYyIsYXgoe3RyYW5zZm9ybToicm90YXRlKC00NWRlZykifSkpLHJ4KCJhY3RpdmUtZGVzYywgZGVzYyIsYXgoe3RyYW5zZm9ybToicm90YXRlKDQ1ZGVnKSJ9KSksbHgoImFjdGl2ZS1hc2MgPD0+IGFjdGl2ZS1kZXNjIixveChyJCkpXSkscmlnaHRQb2ludGVyOm54KCJyaWdodFBvaW50ZXIiLFtyeCgiYWN0aXZlLWFzYywgYXNjIixheCh7dHJhbnNmb3JtOiJyb3RhdGUoNDVkZWcpIn0pKSxyeCgiYWN0aXZlLWRlc2MsIGRlc2MiLGF4KHt0cmFuc2Zvcm06InJvdGF0ZSgtNDVkZWcpIn0pKSxseCgiYWN0aXZlLWFzYyA8PT4gYWN0aXZlLWRlc2MiLG94KHIkKSldKSxhcnJvd09wYWNpdHk6bngoImFycm93T3BhY2l0eSIsW3J4KCJkZXNjLXRvLWFjdGl2ZSwgYXNjLXRvLWFjdGl2ZSwgYWN0aXZlIixheCh7b3BhY2l0eToxfSkpLHJ4KCJkZXNjLXRvLWhpbnQsIGFzYy10by1oaW50LCBoaW50IixheCh7b3BhY2l0eTouNTR9KSkscngoImhpbnQtdG8tZGVzYywgYWN0aXZlLXRvLWRlc2MsIGRlc2MsIGhpbnQtdG8tYXNjLCBhY3RpdmUtdG8tYXNjLCBhc2MsIHZvaWQiLGF4KHtvcGFjaXR5OjB9KSksbHgoIiogPT4gYXNjLCAqID0+IGRlc2MsICogPT4gYWN0aXZlLCAqID0+IGhpbnQsICogPT4gdm9pZCIsb3goIjBtcyIpKSxseCgiKiA8PT4gKiIsb3gociQpKV0pLGFycm93UG9zaXRpb246bngoImFycm93UG9zaXRpb24iLFtseCgiKiA9PiBkZXNjLXRvLWhpbnQsICogPT4gZGVzYy10by1hY3RpdmUiLG94KHIkLHN4KFtheCh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC0yNSUpIn0pLGF4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSldKSkpLGx4KCIqID0+IGhpbnQtdG8tZGVzYywgKiA9PiBhY3RpdmUtdG8tZGVzYyIsb3gociQsc3goW2F4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSksYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlWSgyNSUpIn0pXSkpKSxseCgiKiA9PiBhc2MtdG8taGludCwgKiA9PiBhc2MtdG8tYWN0aXZlIixveChyJCxzeChbYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlWSgyNSUpIn0pLGF4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSldKSkpLGx4KCIqID0+IGhpbnQtdG8tYXNjLCAqID0+IGFjdGl2ZS10by1hc2MiLG94KHIkLHN4KFtheCh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDApIn0pLGF4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTI1JSkifSldKSkpLHJ4KCJkZXNjLXRvLWhpbnQsIGFzYy10by1oaW50LCBoaW50LCBkZXNjLXRvLWFjdGl2ZSwgYXNjLXRvLWFjdGl2ZSwgYWN0aXZlIixheCh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDApIn0pKSxyeCgiaGludC10by1kZXNjLCBhY3RpdmUtdG8tZGVzYywgZGVzYyIsYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlWSgtMjUlKSJ9KSkscngoImhpbnQtdG8tYXNjLCBhY3RpdmUtdG8tYXNjLCBhc2MiLGF4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMjUlKSJ9KSldKSxhbGxvd0NoaWxkcmVuOm54KCJhbGxvd0NoaWxkcmVuIixbbHgoIiogPD0+ICoiLFtkeCgiQCoiLGN4KCkse29wdGlvbmFsOiEwfSldKV0pfTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGwke2NvbnN0cnVjdG9yKCl7dGhpcy5jaGFuZ2VzPW5ldyBJfX1sJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bCQpfSxsJC7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgbCR9LHRva2VuOmwkLHByb3ZpZGVkSW46InJvb3QifSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsJCxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NvbnN0IGMkPXtwcm92aWRlOmwkLGRlcHM6W1tuZXcgU3IsbmV3IEVyLGwkXV0sdXNlRmFjdG9yeTpmdW5jdGlvbiBkJCh0KXtyZXR1cm4gdHx8bmV3IGwkfX0scCQ9S0koY2xhc3N7fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIG0kIGV4dGVuZHMgcCR7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe2lmKHN1cGVyKCksdGhpcy5faW50bD10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fc29ydD1uLHRoaXMuX2NvbHVtbkRlZj1vLHRoaXMuX2ZvY3VzTW9uaXRvcj1pLHRoaXMuX2VsZW1lbnRSZWY9YSx0aGlzLl9zaG93SW5kaWNhdG9ySGludD0hMSx0aGlzLl92aWV3U3RhdGU9e30sdGhpcy5fYXJyb3dEaXJlY3Rpb249IiIsdGhpcy5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbj0hMSx0aGlzLmFycm93UG9zaXRpb249ImFmdGVyIiwhbiYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIHIoKXtyZXR1cm4gRXJyb3IoIk1hdFNvcnRIZWFkZXIgbXVzdCBiZSBwbGFjZWQgd2l0aGluIGEgcGFyZW50IGVsZW1lbnQgd2l0aCB0aGUgTWF0U29ydCBkaXJlY3RpdmUuIil9KSgpO3RoaXMuX2hhbmRsZVN0YXRlQ2hhbmdlcygpfWdldCBkaXNhYmxlQ2xlYXIoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZUNsZWFyfXNldCBkaXNhYmxlQ2xlYXIodCl7dGhpcy5fZGlzYWJsZUNsZWFyPXl6KHQpfW5nT25Jbml0KCl7IXRoaXMuaWQmJnRoaXMuX2NvbHVtbkRlZiYmKHRoaXMuaWQ9dGhpcy5fY29sdW1uRGVmLm5hbWUpLHRoaXMuX3VwZGF0ZUFycm93RGlyZWN0aW9uKCksdGhpcy5fc2V0QW5pbWF0aW9uVHJhbnNpdGlvblN0YXRlKHt0b1N0YXRlOnRoaXMuX2lzU29ydGVkKCk/ImFjdGl2ZSI6dGhpcy5fYXJyb3dEaXJlY3Rpb259KSx0aGlzLl9zb3J0LnJlZ2lzdGVyKHRoaXMpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsITApLnN1YnNjcmliZSgodD0+e2NvbnN0IGU9ISF0O2UhPT10aGlzLl9zaG93SW5kaWNhdG9ySGludCYmKHRoaXMuX3NldEluZGljYXRvckhpbnRWaXNpYmxlKGUpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKSx0aGlzLl9zb3J0LmRlcmVnaXN0ZXIodGhpcyksdGhpcy5fcmVyZW5kZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1fc2V0SW5kaWNhdG9ySGludFZpc2libGUodCl7dGhpcy5faXNEaXNhYmxlZCgpJiZ0fHwodGhpcy5fc2hvd0luZGljYXRvckhpbnQ9dCx0aGlzLl9pc1NvcnRlZCgpfHwodGhpcy5fdXBkYXRlQXJyb3dEaXJlY3Rpb24oKSx0aGlzLl9zZXRBbmltYXRpb25UcmFuc2l0aW9uU3RhdGUodGhpcy5fc2hvd0luZGljYXRvckhpbnQ/e2Zyb21TdGF0ZTp0aGlzLl9hcnJvd0RpcmVjdGlvbix0b1N0YXRlOiJoaW50In06e2Zyb21TdGF0ZToiaGludCIsdG9TdGF0ZTp0aGlzLl9hcnJvd0RpcmVjdGlvbn0pKSl9X3NldEFuaW1hdGlvblRyYW5zaXRpb25TdGF0ZSh0KXt0aGlzLl92aWV3U3RhdGU9dHx8e30sdGhpcy5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbiYmKHRoaXMuX3ZpZXdTdGF0ZT17dG9TdGF0ZTp0LnRvU3RhdGV9KX1fdG9nZ2xlT25JbnRlcmFjdGlvbigpe3RoaXMuX3NvcnQuc29ydCh0aGlzKSwiaGludCIhPT10aGlzLl92aWV3U3RhdGUudG9TdGF0ZSYmImFjdGl2ZSIhPT10aGlzLl92aWV3U3RhdGUudG9TdGF0ZXx8KHRoaXMuX2Rpc2FibGVWaWV3U3RhdGVBbmltYXRpb249ITApfV9oYW5kbGVDbGljaygpe3RoaXMuX2lzRGlzYWJsZWQoKXx8dGhpcy5fc29ydC5zb3J0KHRoaXMpfV9oYW5kbGVLZXlkb3duKHQpe3RoaXMuX2lzRGlzYWJsZWQoKXx8dC5rZXlDb2RlIT09ZnomJnQua2V5Q29kZSE9PW16fHwodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX3RvZ2dsZU9uSW50ZXJhY3Rpb24oKSl9X2lzU29ydGVkKCl7cmV0dXJuIHRoaXMuX3NvcnQuYWN0aXZlPT10aGlzLmlkJiYoImFzYyI9PT10aGlzLl9zb3J0LmRpcmVjdGlvbnx8ImRlc2MiPT09dGhpcy5fc29ydC5kaXJlY3Rpb24pfV9nZXRBcnJvd0RpcmVjdGlvblN0YXRlKCl7cmV0dXJuYCR7dGhpcy5faXNTb3J0ZWQoKT8iYWN0aXZlLSI6IiJ9JHt0aGlzLl9hcnJvd0RpcmVjdGlvbn1gfV9nZXRBcnJvd1ZpZXdTdGF0ZSgpe2NvbnN0IHQ9dGhpcy5fdmlld1N0YXRlLmZyb21TdGF0ZTtyZXR1cm4odD9gJHt0fS10by1gOiIiKSt0aGlzLl92aWV3U3RhdGUudG9TdGF0ZX1fdXBkYXRlQXJyb3dEaXJlY3Rpb24oKXt0aGlzLl9hcnJvd0RpcmVjdGlvbj10aGlzLl9pc1NvcnRlZCgpP3RoaXMuX3NvcnQuZGlyZWN0aW9uOnRoaXMuc3RhcnR8fHRoaXMuX3NvcnQuc3RhcnR9X2lzRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fc29ydC5kaXNhYmxlZHx8dGhpcy5kaXNhYmxlZH1fZ2V0QXJpYVNvcnRBdHRyaWJ1dGUoKXtyZXR1cm4gdGhpcy5faXNTb3J0ZWQoKT8iYXNjIj09dGhpcy5fc29ydC5kaXJlY3Rpb24/ImFzY2VuZGluZyI6ImRlc2NlbmRpbmciOiJub25lIn1fcmVuZGVyQXJyb3coKXtyZXR1cm4hdGhpcy5faXNEaXNhYmxlZCgpfHx0aGlzLl9pc1NvcnRlZCgpfV9oYW5kbGVTdGF0ZUNoYW5nZXMoKXt0aGlzLl9yZXJlbmRlclN1YnNjcmlwdGlvbj1yZSh0aGlzLl9zb3J0LnNvcnRDaGFuZ2UsdGhpcy5fc29ydC5fc3RhdGVDaGFuZ2VzLHRoaXMuX2ludGwuY2hhbmdlcykuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2lzU29ydGVkKCkmJih0aGlzLl91cGRhdGVBcnJvd0RpcmVjdGlvbigpLCJoaW50IiE9PXRoaXMuX3ZpZXdTdGF0ZS50b1N0YXRlJiYiYWN0aXZlIiE9PXRoaXMuX3ZpZXdTdGF0ZS50b1N0YXRlfHwodGhpcy5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbj0hMCksdGhpcy5fc2V0QW5pbWF0aW9uVHJhbnNpdGlvblN0YXRlKHtmcm9tU3RhdGU6dGhpcy5fYXJyb3dEaXJlY3Rpb24sdG9TdGF0ZToiYWN0aXZlIn0pLHRoaXMuX3Nob3dJbmRpY2F0b3JIaW50PSExKSwhdGhpcy5faXNTb3J0ZWQoKSYmdGhpcy5fdmlld1N0YXRlJiYiYWN0aXZlIj09PXRoaXMuX3ZpZXdTdGF0ZS50b1N0YXRlJiYodGhpcy5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbj0hMSx0aGlzLl9zZXRBbmltYXRpb25UcmFuc2l0aW9uU3RhdGUoe2Zyb21TdGF0ZToiYWN0aXZlIix0b1N0YXRlOnRoaXMuX2Fycm93RGlyZWN0aW9ufSkpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSkpfX1tJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bSQpKFNtKGwkKSxTbShVZyksU20oYSQsOCksU20oIk1BVF9TT1JUX0hFQURFUl9DT0xVTU5fREVGIiw4KSxTbShTSSksU20oaGcpKX0sbSQuybVjbXA9dG8oe3R5cGU6bSQsc2VsZWN0b3JzOltbIiIsIm1hdC1zb3J0LWhlYWRlciIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1zb3J0LWhlYWRlciJdLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5faGFuZGxlQ2xpY2soKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUtleWRvd24oZSl9KSkoIm1vdXNlZW50ZXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX3NldEluZGljYXRvckhpbnRWaXNpYmxlKCEwKX0pKSgibW91c2VsZWF2ZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc2V0SW5kaWNhdG9ySGludFZpc2libGUoITEpfSkpLDImZSYmKGpwKCJhcmlhLXNvcnQiLG4uX2dldEFyaWFTb3J0QXR0cmlidXRlKCkpLHB1KCJtYXQtc29ydC1oZWFkZXItZGlzYWJsZWQiLG4uX2lzRGlzYWJsZWQoKSkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsYXJyb3dQb3NpdGlvbjoiYXJyb3dQb3NpdGlvbiIsZGlzYWJsZUNsZWFyOiJkaXNhYmxlQ2xlYXIiLGlkOlsibWF0LXNvcnQtaGVhZGVyIiwiaWQiXSxzdGFydDoic3RhcnQifSxleHBvcnRBczpbIm1hdFNvcnRIZWFkZXIiXSxmZWF0dXJlczpbeHBdLGF0dHJzOlsibWF0LXNvcnQtaGVhZGVyIiwiIl0sbmdDb250ZW50U2VsZWN0b3JzOlsiKiJdLGRlY2xzOjQsdmFyczo2LGNvbnN0czpbWyJyb2xlIiwiYnV0dG9uIiwxLCJtYXQtc29ydC1oZWFkZXItY29udGFpbmVyIiwibWF0LWZvY3VzLWluZGljYXRvciJdLFsxLCJtYXQtc29ydC1oZWFkZXItY29udGVudCJdLFsiY2xhc3MiLCJtYXQtc29ydC1oZWFkZXItYXJyb3ciLDQsIm5nSWYiXSxbMSwibWF0LXNvcnQtaGVhZGVyLWFycm93Il0sWzEsIm1hdC1zb3J0LWhlYWRlci1zdGVtIl0sWzEsIm1hdC1zb3J0LWhlYWRlci1pbmRpY2F0b3IiXSxbMSwibWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItbGVmdCJdLFsxLCJtYXQtc29ydC1oZWFkZXItcG9pbnRlci1yaWdodCJdLFsxLCJtYXQtc29ydC1oZWFkZXItcG9pbnRlci1taWRkbGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFptKCksUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiLDEpLFhtKDIpLEFtKCksUXAoMyxuJCw2LDYsImRpdiIsMiksQW0oKSksMiZlJiYocHUoIm1hdC1zb3J0LWhlYWRlci1zb3J0ZWQiLG4uX2lzU29ydGVkKCkpKCJtYXQtc29ydC1oZWFkZXItcG9zaXRpb24tYmVmb3JlIiwiYmVmb3JlIj09bi5hcnJvd1Bvc2l0aW9uKSxqcCgidGFiaW5kZXgiLG4uX2lzRGlzYWJsZWQoKT9udWxsOjApLHJjKDMpLERtKCJuZ0lmIixuLl9yZW5kZXJBcnJvdygpKSl9LGRpcmVjdGl2ZXM6W2RNXSxzdHlsZXM6WyIubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7Y3Vyc29yOnBvaW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2xldHRlci1zcGFjaW5nOm5vcm1hbDtvdXRsaW5lOjB9W21hdC1zb3J0LWhlYWRlcl0uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1zb3J0LWhlYWRlci1jb250YWluZXIsW21hdC1zb3J0LWhlYWRlcl0uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntib3JkZXItYm90dG9tOnNvbGlkIDFweCBjdXJyZW50Q29sb3J9Lm1hdC1zb3J0LWhlYWRlci1kaXNhYmxlZCAubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntjdXJzb3I6ZGVmYXVsdH0ubWF0LXNvcnQtaGVhZGVyLWNvbnRlbnR7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0ubWF0LXNvcnQtaGVhZGVyLWFycm93e2hlaWdodDoxMnB4O3dpZHRoOjEycHg7bWluLXdpZHRoOjEycHg7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O29wYWNpdHk6MH0ubWF0LXNvcnQtaGVhZGVyLWFycm93LFtkaXI9cnRsXSAubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZSAubWF0LXNvcnQtaGVhZGVyLWFycm93e21hcmdpbjowIDAgMCA2cHh9Lm1hdC1zb3J0LWhlYWRlci1wb3NpdGlvbi1iZWZvcmUgLm1hdC1zb3J0LWhlYWRlci1hcnJvdyxbZGlyPXJ0bF0gLm1hdC1zb3J0LWhlYWRlci1hcnJvd3ttYXJnaW46MCA2cHggMCAwfS5tYXQtc29ydC1oZWFkZXItc3RlbXtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtoZWlnaHQ6MTBweDt3aWR0aDoycHg7bWFyZ2luOmF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc29ydC1oZWFkZXItc3RlbXt3aWR0aDowO2JvcmRlci1sZWZ0OnNvbGlkIDJweH0ubWF0LXNvcnQtaGVhZGVyLWluZGljYXRvcnt3aWR0aDoxMDAlO2hlaWdodDoycHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLW1pZGRsZXttYXJnaW46YXV0bztoZWlnaHQ6MnB4O3dpZHRoOjJweDtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc29ydC1oZWFkZXItcG9pbnRlci1taWRkbGV7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItdG9wOnNvbGlkIDJweDtib3JkZXItbGVmdDpzb2xpZCAycHh9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnQsLm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLXJpZ2h0e2JhY2tncm91bmQ6Y3VycmVudENvbG9yO3dpZHRoOjZweDtoZWlnaHQ6MnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItcmlnaHR7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDpzb2xpZCA2cHg7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnR7dHJhbnNmb3JtLW9yaWdpbjpyaWdodDtsZWZ0OjB9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLXJpZ2h0e3RyYW5zZm9ybS1vcmlnaW46bGVmdDtyaWdodDowfVxuIl0sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbcyQuaW5kaWNhdG9yLHMkLmxlZnRQb2ludGVyLHMkLnJpZ2h0UG9pbnRlcixzJC5hcnJvd09wYWNpdHkscyQuYXJyb3dQb3NpdGlvbixzJC5hbGxvd0NoaWxkcmVuXX0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxtJC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmwkfSx7dHlwZTpVZ30se3R5cGU6YSQsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6WyJNQVRfU09SVF9IRUFERVJfQ09MVU1OX0RFRiJdfSx7dHlwZTpTcn1dfSx7dHlwZTpTSX0se3R5cGU6aGd9XSxtJC5wcm9wRGVjb3JhdG9ycz17aWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXQtc29ydC1oZWFkZXIiXX1dLGFycm93UG9zaXRpb246W3t0eXBlOnh5fV0sc3RhcnQ6W3t0eXBlOnh5fV0sZGlzYWJsZUNsZWFyOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG0kLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6IlttYXQtc29ydC1oZWFkZXJdIixleHBvcnRBczoibWF0U29ydEhlYWRlciIsdGVtcGxhdGU6J1x4M2MhLS1cbiAgV2Ugc2V0IHRoZSBgdGFiaW5kZXhgIG9uIGFuIGVsZW1lbnQgaW5zaWRlIHRoZSB0YWJsZSBoZWFkZXIsIHJhdGhlciB0aGFuIHRoZSBoZWFkZXIgaXRzZWxmLFxuICBiZWNhdXNlIG9mIGEgYnVnIGluIE5WREEgd2hlcmUgaGF2aW5nIGEgYHRhYmluZGV4YCBvbiBhIGB0aGAgYnJlYWtzIGtleWJvYXJkIG5hdmlnYXRpb24gaW4gdGhlXG4gIHRhYmxlIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL252YWNjZXNzL252ZGEvaXNzdWVzLzc3MTgpLiBUaGlzIGFsbG93cyBmb3IgdGhlIGhlYWRlciB0byBib3RoXG4gIGJlIGZvY3VzYWJsZSwgYW5kIGhhdmUgc2NyZWVuIHJlYWRlcnMgcmVhZCBvdXQgaXRzIGBhcmlhLXNvcnRgIHN0YXRlLiBXZSBwcmVmZXIgdGhpcyBhcHByb2FjaFxuICBvdmVyIGhhdmluZyBhIGJ1dHRvbiB3aXRoIGFuIGBhcmlhLWxhYmVsYCBpbnNpZGUgdGhlIGhlYWRlciwgYmVjYXVzZSB0aGUgYnV0dG9uXCdzIGBhcmlhLWxhYmVsYFxuICB3aWxsIGJlIHJlYWQgb3V0IGFzIHRoZSB1c2VyIGlzIG5hdmlnYXRpbmcgdGhlIHRhYmxlXCdzIGNlbGwgKHNlZSAjMTMwMTIpLlxuXG4gIFRoZSBhcHByb2FjaCBpcyBiYXNlZCBvZmYgb2Y6IGh0dHBzOi8vZGVxdWV1bml2ZXJzaXR5LmNvbS9saWJyYXJ5L2FyaWEvdGFibGVzL3NmLXNvcnRhYmxlLWdyaWRcbi0tXHgzZVxuPGRpdiBjbGFzcz0ibWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lciBtYXQtZm9jdXMtaW5kaWNhdG9yIlxuICAgICBbY2xhc3MubWF0LXNvcnQtaGVhZGVyLXNvcnRlZF09Il9pc1NvcnRlZCgpIlxuICAgICBbY2xhc3MubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZV09ImFycm93UG9zaXRpb24gPT0gXCdiZWZvcmVcJyJcbiAgICAgW2F0dHIudGFiaW5kZXhdPSJfaXNEaXNhYmxlZCgpID8gbnVsbCA6IDAiXG4gICAgIHJvbGU9ImJ1dHRvbiI+XG5cbiAgXHgzYyEtLVxuICAgIFRPRE8oY3Jpc2JldG8pOiB0aGlzIGRpdiBpc25cJ3Qgc3RyaWN0bHkgbmVjZXNzYXJ5LCBidXQgd2UgaGF2ZSB0byBrZWVwIGl0IGR1ZSB0byBhIGxhcmdlXG4gICAgbnVtYmVyIG9mIHNjcmVlbnNob3QgZGlmZiBmYWlsdXJlcy4gSXQgc2hvdWxkIGJlIHJlbW92ZWQgZXZlbnR1YWxseS4gTm90ZSB0aGF0IHRoZSBkaWZmZXJlbmNlXG4gICAgaXNuXCd0IHZpc2libGUgd2l0aCBhIHNob3J0ZXIgaGVhZGVyLCBidXQgb25jZSBpdCBicmVha3MgdXAgaW50byBtdWx0aXBsZSBsaW5lcywgdGhpcyBlbGVtZW50XG4gICAgY2F1c2VzIGl0IHRvIGJlIGNlbnRlci1hbGlnbmVkLCB3aGVyZWFzIHJlbW92aW5nIGl0IHdpbGwga2VlcCB0aGUgdGV4dCB0byB0aGUgbGVmdC5cbiAgLS1ceDNlXG4gIDxkaXYgY2xhc3M9Im1hdC1zb3J0LWhlYWRlci1jb250ZW50Ij5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIFx4M2MhLS0gRGlzYWJsZSBhbmltYXRpb25zIHdoaWxlIGEgY3VycmVudCBhbmltYXRpb24gaXMgcnVubmluZyAtLVx4M2VcbiAgPGRpdiBjbGFzcz0ibWF0LXNvcnQtaGVhZGVyLWFycm93IlxuICAgICAgICpuZ0lmPSJfcmVuZGVyQXJyb3coKSJcbiAgICAgICBbQGFycm93T3BhY2l0eV09Il9nZXRBcnJvd1ZpZXdTdGF0ZSgpIlxuICAgICAgIFtAYXJyb3dQb3NpdGlvbl09Il9nZXRBcnJvd1ZpZXdTdGF0ZSgpIlxuICAgICAgIFtAYWxsb3dDaGlsZHJlbl09Il9nZXRBcnJvd0RpcmVjdGlvblN0YXRlKCkiXG4gICAgICAgKEBhcnJvd1Bvc2l0aW9uLnN0YXJ0KT0iX2Rpc2FibGVWaWV3U3RhdGVBbmltYXRpb24gPSB0cnVlIlxuICAgICAgIChAYXJyb3dQb3NpdGlvbi5kb25lKT0iX2Rpc2FibGVWaWV3U3RhdGVBbmltYXRpb24gPSBmYWxzZSI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNvcnQtaGVhZGVyLXN0ZW0iPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9Im1hdC1zb3J0LWhlYWRlci1pbmRpY2F0b3IiIFtAaW5kaWNhdG9yXT0iX2dldEFycm93RGlyZWN0aW9uU3RhdGUoKSI+XG4gICAgICA8ZGl2IGNsYXNzPSJtYXQtc29ydC1oZWFkZXItcG9pbnRlci1sZWZ0IiBbQGxlZnRQb2ludGVyXT0iX2dldEFycm93RGlyZWN0aW9uU3RhdGUoKSI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPSJtYXQtc29ydC1oZWFkZXItcG9pbnRlci1yaWdodCIgW0ByaWdodFBvaW50ZXJdPSJfZ2V0QXJyb3dEaXJlY3Rpb25TdGF0ZSgpIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9Im1hdC1zb3J0LWhlYWRlci1wb2ludGVyLW1pZGRsZSI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4nLGhvc3Q6e2NsYXNzOiJtYXQtc29ydC1oZWFkZXIiLCIoY2xpY2spIjoiX2hhbmRsZUNsaWNrKCkiLCIoa2V5ZG93bikiOiJfaGFuZGxlS2V5ZG93bigkZXZlbnQpIiwiKG1vdXNlZW50ZXIpIjoiX3NldEluZGljYXRvckhpbnRWaXNpYmxlKHRydWUpIiwiKG1vdXNlbGVhdmUpIjoiX3NldEluZGljYXRvckhpbnRWaXNpYmxlKGZhbHNlKSIsIlthdHRyLmFyaWEtc29ydF0iOiJfZ2V0QXJpYVNvcnRBdHRyaWJ1dGUoKSIsIltjbGFzcy5tYXQtc29ydC1oZWFkZXItZGlzYWJsZWRdIjoiX2lzRGlzYWJsZWQoKSJ9LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLGlucHV0czpbImRpc2FibGVkIl0sYW5pbWF0aW9uczpbcyQuaW5kaWNhdG9yLHMkLmxlZnRQb2ludGVyLHMkLnJpZ2h0UG9pbnRlcixzJC5hcnJvd09wYWNpdHkscyQuYXJyb3dQb3NpdGlvbixzJC5hbGxvd0NoaWxkcmVuXSxzdHlsZXM6WyIubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7Y3Vyc29yOnBvaW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2xldHRlci1zcGFjaW5nOm5vcm1hbDtvdXRsaW5lOjB9W21hdC1zb3J0LWhlYWRlcl0uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1zb3J0LWhlYWRlci1jb250YWluZXIsW21hdC1zb3J0LWhlYWRlcl0uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntib3JkZXItYm90dG9tOnNvbGlkIDFweCBjdXJyZW50Q29sb3J9Lm1hdC1zb3J0LWhlYWRlci1kaXNhYmxlZCAubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntjdXJzb3I6ZGVmYXVsdH0ubWF0LXNvcnQtaGVhZGVyLWNvbnRlbnR7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0ubWF0LXNvcnQtaGVhZGVyLWFycm93e2hlaWdodDoxMnB4O3dpZHRoOjEycHg7bWluLXdpZHRoOjEycHg7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O29wYWNpdHk6MH0ubWF0LXNvcnQtaGVhZGVyLWFycm93LFtkaXI9cnRsXSAubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZSAubWF0LXNvcnQtaGVhZGVyLWFycm93e21hcmdpbjowIDAgMCA2cHh9Lm1hdC1zb3J0LWhlYWRlci1wb3NpdGlvbi1iZWZvcmUgLm1hdC1zb3J0LWhlYWRlci1hcnJvdyxbZGlyPXJ0bF0gLm1hdC1zb3J0LWhlYWRlci1hcnJvd3ttYXJnaW46MCA2cHggMCAwfS5tYXQtc29ydC1oZWFkZXItc3RlbXtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtoZWlnaHQ6MTBweDt3aWR0aDoycHg7bWFyZ2luOmF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc29ydC1oZWFkZXItc3RlbXt3aWR0aDowO2JvcmRlci1sZWZ0OnNvbGlkIDJweH0ubWF0LXNvcnQtaGVhZGVyLWluZGljYXRvcnt3aWR0aDoxMDAlO2hlaWdodDoycHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLW1pZGRsZXttYXJnaW46YXV0bztoZWlnaHQ6MnB4O3dpZHRoOjJweDtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc29ydC1oZWFkZXItcG9pbnRlci1taWRkbGV7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItdG9wOnNvbGlkIDJweDtib3JkZXItbGVmdDpzb2xpZCAycHh9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnQsLm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLXJpZ2h0e2JhY2tncm91bmQ6Y3VycmVudENvbG9yO3dpZHRoOjZweDtoZWlnaHQ6MnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItcmlnaHR7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDpzb2xpZCA2cHg7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnR7dHJhbnNmb3JtLW9yaWdpbjpyaWdodDtsZWZ0OjB9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLXJpZ2h0e3RyYW5zZm9ybS1vcmlnaW46bGVmdDtyaWdodDowfVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpsJH0se3R5cGU6VWd9LHt0eXBlOmEkLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlsiTUFUX1NPUlRfSEVBREVSX0NPTFVNTl9ERUYiXX0se3R5cGU6U3J9XX0se3R5cGU6U0l9LHt0eXBlOmhnfV19KSx7YXJyb3dQb3NpdGlvbjpbe3R5cGU6eHl9XSxkaXNhYmxlQ2xlYXI6W3t0eXBlOnh5fV0saWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXQtc29ydC1oZWFkZXIiXX1dLHN0YXJ0Olt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyB1JHt9dSQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHUkKX0sdSQuybVtb2Q9YW8oe3R5cGU6dSR9KSx1JC7JtWluaj12bih7cHJvdmlkZXJzOltjJF0saW1wb3J0czpbW1dNLFhJXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHUkLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV00sWEldLGV4cG9ydHM6W2EkLG0kXSxkZWNsYXJhdGlvbnM6W2EkLG0kXSxwcm92aWRlcnM6W2MkXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHUkLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bYSQsbSRdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1dNLFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVyblthJCxtJF19fSk7Y29uc3QgZiQ9W1tbImNhcHRpb24iXV0sW1siY29sZ3JvdXAiXSxbImNvbCJdXV07ZnVuY3Rpb24gZyQodCxlKXtpZigxJnQmJihSbSgwLCJ0aCIsMyksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7ZHUoInRleHQtYWxpZ24iLHQuanVzdGlmeSkscmMoMSksRHUoIiAiLHQuaGVhZGVyVGV4dCwiICIpfX1mdW5jdGlvbiBoJCh0LGUpe2lmKDEmdCYmKFJtKDAsInRkIiw0KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgpO2R1KCJ0ZXh0LWFsaWduIixuLmp1c3RpZnkpLHJjKDEpLER1KCIgIixuLmRhdGFBY2Nlc3Nvcih0LG4ubmFtZSksIiAiKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGIkKHQpe3JldHVybiBjbGFzcyBleHRlbmRzIHR7Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5fc3RpY2t5PSExLHRoaXMuX2hhc1N0aWNreUNoYW5nZWQ9ITF9Z2V0IHN0aWNreSgpe3JldHVybiB0aGlzLl9zdGlja3l9c2V0IHN0aWNreSh0KXtjb25zdCBlPXRoaXMuX3N0aWNreTt0aGlzLl9zdGlja3k9eXoodCksdGhpcy5faGFzU3RpY2t5Q2hhbmdlZD1lIT09dGhpcy5fc3RpY2t5fWhhc1N0aWNreUNoYW5nZWQoKXtjb25zdCB0PXRoaXMuX2hhc1N0aWNreUNoYW5nZWQ7cmV0dXJuIHRoaXMuX2hhc1N0aWNreUNoYW5nZWQ9ITEsdH1yZXNldFN0aWNreUNoYW5nZWQoKXt0aGlzLl9oYXNTdGlja3lDaGFuZ2VkPSExfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IHkkPW5ldyBHYSgiQ0RLX1RBQkxFIiksXyQ9bmV3IEdhKCJ0ZXh0LWNvbHVtbi1vcHRpb25zIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBDJHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnRlbXBsYXRlPXR9fUMkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDJCkoU20oWGcpKX0sQyQuybVkaXI9bG8oe3R5cGU6QyQsc2VsZWN0b3JzOltbIiIsImNka0NlbGxEZWYiLCIiXV19KSxDJC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChDJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrQ2VsbERlZl0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WGd9XX0pLG51bGwpO2NsYXNzIE0ke2NvbnN0cnVjdG9yKHQpe3RoaXMudGVtcGxhdGU9dH19TSQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE0kKShTbShYZykpfSxNJC7JtWRpcj1sbyh7dHlwZTpNJCxzZWxlY3RvcnM6W1siIiwiY2RrSGVhZGVyQ2VsbERlZiIsIiJdXX0pLE0kLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE0kLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltjZGtIZWFkZXJDZWxsRGVmXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYZ31dfSksbnVsbCk7Y2xhc3MgdiR7Y29uc3RydWN0b3IodCl7dGhpcy50ZW1wbGF0ZT10fX12JC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8diQpKFNtKFhnKSl9LHYkLsm1ZGlyPWxvKHt0eXBlOnYkLHNlbGVjdG9yczpbWyIiLCJjZGtGb290ZXJDZWxsRGVmIiwiIl1dfSksdiQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYZ31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodiQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0Zvb3RlckNlbGxEZWZdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhnfV19KSxudWxsKTtjb25zdCB4JD1iJChjbGFzc3t9KTtjbGFzcyBPJCBleHRlbmRzIHgke2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fdGFibGU9dCx0aGlzLl9zdGlja3lFbmQ9ITF9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5fbmFtZX1zZXQgbmFtZSh0KXt0aGlzLl9zZXROYW1lSW5wdXQodCl9Z2V0IHN0aWNreUVuZCgpe3JldHVybiB0aGlzLl9zdGlja3lFbmR9c2V0IHN0aWNreUVuZCh0KXtjb25zdCBlPXRoaXMuX3N0aWNreUVuZDt0aGlzLl9zdGlja3lFbmQ9eXoodCksdGhpcy5faGFzU3RpY2t5Q2hhbmdlZD1lIT09dGhpcy5fc3RpY2t5RW5kfV91cGRhdGVDb2x1bW5Dc3NDbGFzc05hbWUoKXt0aGlzLl9jb2x1bW5Dc3NDbGFzc05hbWU9W2BjZGstY29sdW1uLSR7dGhpcy5jc3NDbGFzc0ZyaWVuZGx5TmFtZX1gXX1fc2V0TmFtZUlucHV0KHQpe3QmJih0aGlzLl9uYW1lPXQsdGhpcy5jc3NDbGFzc0ZyaWVuZGx5TmFtZT10LnJlcGxhY2UoL1teYS16MC05Xy1dL2dpLCItIiksdGhpcy5fdXBkYXRlQ29sdW1uQ3NzQ2xhc3NOYW1lKCkpfX1PJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TyQpKFNtKHkkLDgpKX0sTyQuybVkaXI9bG8oe3R5cGU6TyQsc2VsZWN0b3JzOltbIiIsImNka0NvbHVtbkRlZiIsIiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJigkaChvLEMkLDUpLCRoKG8sTSQsNSksJGgobyx2JCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5jZWxsPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLmhlYWRlckNlbGw9dC5maXJzdCksSmgodD10YigpKSYmKG4uZm9vdGVyQ2VsbD10LmZpcnN0KX19LGlucHV0czp7c3RpY2t5OiJzdGlja3kiLG5hbWU6WyJjZGtDb2x1bW5EZWYiLCJuYW1lIl0sc3RpY2t5RW5kOiJzdGlja3lFbmQifSxmZWF0dXJlczpbcGcoW3twcm92aWRlOiJNQVRfU09SVF9IRUFERVJfQ09MVU1OX0RFRiIsdXNlRXhpc3Rpbmc6TyR9XSkseHBdfSksTyQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbeSRdfSx7dHlwZTpTcn1dfV0sTyQucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb2x1bW5EZWYiXX1dLHN0aWNreUVuZDpbe3R5cGU6eHksYXJnczpbInN0aWNreUVuZCJdfV0sY2VsbDpbe3R5cGU6cWEsYXJnczpbQyRdfV0saGVhZGVyQ2VsbDpbe3R5cGU6cWEsYXJnczpbTSRdfV0sZm9vdGVyQ2VsbDpbe3R5cGU6cWEsYXJnczpbdiRdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTyQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0NvbHVtbkRlZl0iLGlucHV0czpbInN0aWNreSJdLHByb3ZpZGVyczpbe3Byb3ZpZGU6Ik1BVF9TT1JUX0hFQURFUl9DT0xVTU5fREVGIix1c2VFeGlzdGluZzpPJH1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3kkXX0se3R5cGU6U3J9XX1dfSkse25hbWU6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb2x1bW5EZWYiXX1dLHN0aWNreUVuZDpbe3R5cGU6eHksYXJnczpbInN0aWNreUVuZCJdfV0sY2VsbDpbe3R5cGU6cWEsYXJnczpbQyRdfV0saGVhZGVyQ2VsbDpbe3R5cGU6cWEsYXJnczpbTSRdfV0sZm9vdGVyQ2VsbDpbe3R5cGU6cWEsYXJnczpbdiRdfV19KTtjbGFzcyBQJHtjb25zdHJ1Y3Rvcih0LGUpe2NvbnN0IG49ZS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtmb3IoY29uc3QgZSBvZiB0Ll9jb2x1bW5Dc3NDbGFzc05hbWUpbi5hZGQoZSl9fWNsYXNzIHckIGV4dGVuZHMgUCR7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpfX13JC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dyQpKFNtKE8kKSxTbShoZykpfSx3JC7JtWRpcj1sbyh7dHlwZTp3JCxzZWxlY3RvcnM6W1siY2RrLWhlYWRlci1jZWxsIl0sWyJ0aCIsImNkay1oZWFkZXItY2VsbCIsIiJdXSxob3N0QXR0cnM6WyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJjZGstaGVhZGVyLWNlbGwiXSxmZWF0dXJlczpbeHBdfSksdyQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpPJH0se3R5cGU6aGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHckLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImNkay1oZWFkZXItY2VsbCwgdGhbY2RrLWhlYWRlci1jZWxsXSIsaG9zdDp7Y2xhc3M6ImNkay1oZWFkZXItY2VsbCIscm9sZToiY29sdW1uaGVhZGVyIn19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpPJH0se3R5cGU6aGd9XX0pLG51bGwpO2NsYXNzIGskIGV4dGVuZHMgUCR7Y29uc3RydWN0b3IodCxlKXt2YXIgbjtpZihzdXBlcih0LGUpLDE9PT0obnVsbD09PShuPXQuX3RhYmxlKXx8dm9pZCAwPT09bj92b2lkIDA6bi5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5vZGVUeXBlKSl7Y29uc3Qgbj10Ll90YWJsZS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgicm9sZSIpO2UubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJncmlkIj09PW58fCJ0cmVlZ3JpZCI9PT1uPyJncmlkY2VsbCI6ImNlbGwiKX19fWskLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrJCkoU20oTyQpLFNtKGhnKSl9LGskLsm1ZGlyPWxvKHt0eXBlOmskLHNlbGVjdG9yczpbWyJjZGstZm9vdGVyLWNlbGwiXSxbInRkIiwiY2RrLWZvb3Rlci1jZWxsIiwiIl1dLGhvc3RBdHRyczpbMSwiY2RrLWZvb3Rlci1jZWxsIl0sZmVhdHVyZXM6W3hwXX0pLGskLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6TyR9LHt0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJjZGstZm9vdGVyLWNlbGwsIHRkW2Nkay1mb290ZXItY2VsbF0iLGhvc3Q6e2NsYXNzOiJjZGstZm9vdGVyLWNlbGwifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOk8kfSx7dHlwZTpoZ31dfSksbnVsbCk7Y2xhc3MgUyQgZXh0ZW5kcyBQJHtjb25zdHJ1Y3Rvcih0LGUpe3ZhciBuO2lmKHN1cGVyKHQsZSksMT09PShudWxsPT09KG49dC5fdGFibGUpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubm9kZVR5cGUpKXtjb25zdCBuPXQuX3RhYmxlLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJyb2xlIik7ZS5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgicm9sZSIsImdyaWQiPT09bnx8InRyZWVncmlkIj09PW4/ImdyaWRjZWxsIjoiY2VsbCIpfX19UyQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFMkKShTbShPJCksU20oaGcpKX0sUyQuybVkaXI9bG8oe3R5cGU6UyQsc2VsZWN0b3JzOltbImNkay1jZWxsIl0sWyJ0ZCIsImNkay1jZWxsIiwiIl1dLGhvc3RBdHRyczpbMSwiY2RrLWNlbGwiXSxmZWF0dXJlczpbeHBdfSksUyQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpPJH0se3R5cGU6aGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFMkLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImNkay1jZWxsLCB0ZFtjZGstY2VsbF0iLGhvc3Q6e2NsYXNzOiJjZGstY2VsbCJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6TyR9LHt0eXBlOmhnfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEQke2NvbnN0cnVjdG9yKCl7dGhpcy50YXNrcz1bXSx0aGlzLmVuZFRhc2tzPVtdfX1jb25zdCBFJD1uZXcgR2EoIl9DT0FMRVNDRURfU1RZTEVfU0NIRURVTEVSIik7Y2xhc3MgUiR7Y29uc3RydWN0b3IodCl7dGhpcy5fbmdab25lPXQsdGhpcy5fY3VycmVudFNjaGVkdWxlPW51bGwsdGhpcy5fZGVzdHJveWVkPW5ldyBJfXNjaGVkdWxlKHQpe3RoaXMuX2NyZWF0ZVNjaGVkdWxlSWZOZWVkZWQoKSx0aGlzLl9jdXJyZW50U2NoZWR1bGUudGFza3MucHVzaCh0KX1zY2hlZHVsZUVuZCh0KXt0aGlzLl9jcmVhdGVTY2hlZHVsZUlmTmVlZGVkKCksdGhpcy5fY3VycmVudFNjaGVkdWxlLmVuZFRhc2tzLnB1c2godCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpfV9jcmVhdGVTY2hlZHVsZUlmTmVlZGVkKCl7dGhpcy5fY3VycmVudFNjaGVkdWxlfHwodGhpcy5fY3VycmVudFNjaGVkdWxlPW5ldyBEJCx0aGlzLl9nZXRTY2hlZHVsZU9ic2VydmFibGUoKS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9Pntmb3IoO3RoaXMuX2N1cnJlbnRTY2hlZHVsZS50YXNrcy5sZW5ndGh8fHRoaXMuX2N1cnJlbnRTY2hlZHVsZS5lbmRUYXNrcy5sZW5ndGg7KXtjb25zdCB0PXRoaXMuX2N1cnJlbnRTY2hlZHVsZTt0aGlzLl9jdXJyZW50U2NoZWR1bGU9bmV3IEQkO2Zvcihjb25zdCBlIG9mIHQudGFza3MpZSgpO2Zvcihjb25zdCBlIG9mIHQuZW5kVGFza3MpZSgpfXRoaXMuX2N1cnJlbnRTY2hlZHVsZT1udWxsfSkpKX1fZ2V0U2NoZWR1bGVPYnNlcnZhYmxlKCl7cmV0dXJuIHRoaXMuX25nWm9uZS5pc1N0YWJsZT9DdChQcm9taXNlLnJlc29sdmUodm9pZCAwKSk6dGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoYmUoMSkpfX1SJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UiQpKHZyKGFfKSl9LFIkLsm1cHJvdj1Nbih7dG9rZW46UiQsZmFjdG9yeTpSJC7JtWZhY30pLFIkLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6YV99XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFIkLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTphX31dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBBJD0iPG5nLWNvbnRhaW5lciBjZGtDZWxsT3V0bGV0PjwvbmctY29udGFpbmVyPiI7Y2xhc3MgVCR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnRlbXBsYXRlPXQsdGhpcy5fZGlmZmVycz1lfW5nT25DaGFuZ2VzKHQpe2lmKCF0aGlzLl9jb2x1bW5zRGlmZmVyKXtjb25zdCBlPXQuY29sdW1ucyYmdC5jb2x1bW5zLmN1cnJlbnRWYWx1ZXx8W107dGhpcy5fY29sdW1uc0RpZmZlcj10aGlzLl9kaWZmZXJzLmZpbmQoZSkuY3JlYXRlKCksdGhpcy5fY29sdW1uc0RpZmZlci5kaWZmKGUpfX1nZXRDb2x1bW5zRGlmZigpe3JldHVybiB0aGlzLl9jb2x1bW5zRGlmZmVyLmRpZmYodGhpcy5jb2x1bW5zKX1leHRyYWN0Q2VsbFRlbXBsYXRlKHQpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgeiQ/dC5oZWFkZXJDZWxsLnRlbXBsYXRlOnRoaXMgaW5zdGFuY2VvZiBIJD90LmZvb3RlckNlbGwudGVtcGxhdGU6dC5jZWxsLnRlbXBsYXRlfX1UJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VCQpKFNtKFhnKSxTbShIZykpfSxUJC7JtWRpcj1sbyh7dHlwZTpUJCxmZWF0dXJlczpbQm9dfSksVCQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYZ30se3R5cGU6SGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFQkLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYZ30se3R5cGU6SGd9XX0pLG51bGwpO2NvbnN0IE4kPWIkKGNsYXNzIGV4dGVuZHMgVCR7fSk7Y2xhc3MgeiQgZXh0ZW5kcyBOJHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlKSx0aGlzLl90YWJsZT1ufW5nT25DaGFuZ2VzKHQpe3N1cGVyLm5nT25DaGFuZ2VzKHQpfX16JC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eiQpKFNtKFhnKSxTbShIZyksU20oeSQsOCkpfSx6JC7JtWRpcj1sbyh7dHlwZTp6JCxzZWxlY3RvcnM6W1siIiwiY2RrSGVhZGVyUm93RGVmIiwiIl1dLGlucHV0czp7Y29sdW1uczpbImNka0hlYWRlclJvd0RlZiIsImNvbHVtbnMiXSxzdGlja3k6WyJjZGtIZWFkZXJSb3dEZWZTdGlja3kiLCJzdGlja3kiXX0sZmVhdHVyZXM6W3hwLEJvXX0pLHokLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WGd9LHt0eXBlOkhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbeSRdfSx7dHlwZTpTcn1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh6JCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrSGVhZGVyUm93RGVmXSIsaW5wdXRzOlsiY29sdW1uczogY2RrSGVhZGVyUm93RGVmIiwic3RpY2t5OiBjZGtIZWFkZXJSb3dEZWZTdGlja3kiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhnfSx7dHlwZTpIZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3kkXX0se3R5cGU6U3J9XX1dfSksbnVsbCk7Y29uc3QgSSQ9YiQoY2xhc3MgZXh0ZW5kcyBUJHt9KTtjbGFzcyBIJCBleHRlbmRzIEkke2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUpLHRoaXMuX3RhYmxlPW59bmdPbkNoYW5nZXModCl7c3VwZXIubmdPbkNoYW5nZXModCl9fUgkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIJCkoU20oWGcpLFNtKEhnKSxTbSh5JCw4KSl9LEgkLsm1ZGlyPWxvKHt0eXBlOkgkLHNlbGVjdG9yczpbWyIiLCJjZGtGb290ZXJSb3dEZWYiLCIiXV0saW5wdXRzOntjb2x1bW5zOlsiY2RrRm9vdGVyUm93RGVmIiwiY29sdW1ucyJdLHN0aWNreTpbImNka0Zvb3RlclJvd0RlZlN0aWNreSIsInN0aWNreSJdfSxmZWF0dXJlczpbeHAsQm9dfSksSCQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYZ30se3R5cGU6SGd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlt5JF19LHt0eXBlOlNyfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEgkLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltjZGtGb290ZXJSb3dEZWZdIixpbnB1dHM6WyJjb2x1bW5zOiBjZGtGb290ZXJSb3dEZWYiLCJzdGlja3k6IGNka0Zvb3RlclJvd0RlZlN0aWNreSJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WGd9LHt0eXBlOkhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbeSRdfSx7dHlwZTpTcn1dfV19KSxudWxsKTtjbGFzcyBGJCBleHRlbmRzIFQke2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUpLHRoaXMuX3RhYmxlPW59fUYkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGJCkoU20oWGcpLFNtKEhnKSxTbSh5JCw4KSl9LEYkLsm1ZGlyPWxvKHt0eXBlOkYkLHNlbGVjdG9yczpbWyIiLCJjZGtSb3dEZWYiLCIiXV0saW5wdXRzOntjb2x1bW5zOlsiY2RrUm93RGVmQ29sdW1ucyIsImNvbHVtbnMiXSx3aGVuOlsiY2RrUm93RGVmV2hlbiIsIndoZW4iXX0sZmVhdHVyZXM6W3hwXX0pLEYkLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WGd9LHt0eXBlOkhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbeSRdfSx7dHlwZTpTcn1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChGJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrUm93RGVmXSIsaW5wdXRzOlsiY29sdW1uczogY2RrUm93RGVmQ29sdW1ucyIsIndoZW46IGNka1Jvd0RlZldoZW4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhnfSx7dHlwZTpIZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3kkXX0se3R5cGU6U3J9XX1dfSksbnVsbCk7Y2xhc3MgTCR7Y29uc3RydWN0b3IodCl7dGhpcy5fdmlld0NvbnRhaW5lcj10LEwkLm1vc3RSZWNlbnRDZWxsT3V0bGV0PXRoaXN9bmdPbkRlc3Ryb3koKXtMJC5tb3N0UmVjZW50Q2VsbE91dGxldD09PXRoaXMmJihMJC5tb3N0UmVjZW50Q2VsbE91dGxldD1udWxsKX19TCQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEwkKShTbShlaCkpfSxMJC7JtWRpcj1sbyh7dHlwZTpMJCxzZWxlY3RvcnM6W1siIiwiY2RrQ2VsbE91dGxldCIsIiJdXX0pLEwkLm1vc3RSZWNlbnRDZWxsT3V0bGV0PW51bGwsTCQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTCQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0NlbGxPdXRsZXRdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofV19KSxudWxsKTtjbGFzcyBCJHt9QiQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEIkKX0sQiQuybVjbXA9dG8oe3R5cGU6QiQsc2VsZWN0b3JzOltbImNkay1oZWFkZXItcm93Il0sWyJ0ciIsImNkay1oZWFkZXItcm93IiwiIl1dLGhvc3RBdHRyczpbInJvbGUiLCJyb3ciLDEsImNkay1oZWFkZXItcm93Il0sZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbImNka0NlbGxPdXRsZXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmSW0oMCwwKX0sZGlyZWN0aXZlczpbTCRdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQiQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiY2RrLWhlYWRlci1yb3csIHRyW2Nkay1oZWFkZXItcm93XSIsdGVtcGxhdGU6QSQsaG9zdDp7Y2xhc3M6ImNkay1oZWFkZXItcm93Iixyb2xlOiJyb3cifSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxlbmNhcHN1bGF0aW9uOkhuLk5vbmV9XX1dLG51bGwsbnVsbCk7Y2xhc3MgViR7fVYkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxWJCl9LFYkLsm1Y21wPXRvKHt0eXBlOlYkLHNlbGVjdG9yczpbWyJjZGstZm9vdGVyLXJvdyJdLFsidHIiLCJjZGstZm9vdGVyLXJvdyIsIiJdXSxob3N0QXR0cnM6WyJyb2xlIiwicm93IiwxLCJjZGstZm9vdGVyLXJvdyJdLGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJjZGtDZWxsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJkltKDAsMCl9LGRpcmVjdGl2ZXM6W0wkXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFYkLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImNkay1mb290ZXItcm93LCB0cltjZGstZm9vdGVyLXJvd10iLHRlbXBsYXRlOkEkLGhvc3Q6e2NsYXNzOiJjZGstZm9vdGVyLXJvdyIscm9sZToicm93In0sY2hhbmdlRGV0ZWN0aW9uOnpuLkRlZmF1bHQsZW5jYXBzdWxhdGlvbjpIbi5Ob25lfV19XSxudWxsLG51bGwpO2NsYXNzIGoke31qJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aiQpfSxqJC7JtWNtcD10byh7dHlwZTpqJCxzZWxlY3RvcnM6W1siY2RrLXJvdyJdLFsidHIiLCJjZGstcm93IiwiIl1dLGhvc3RBdHRyczpbInJvbGUiLCJyb3ciLDEsImNkay1yb3ciXSxkZWNsczoxLHZhcnM6MCxjb25zdHM6W1siY2RrQ2VsbE91dGxldCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZJbSgwLDApfSxkaXJlY3RpdmVzOltMJF0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChqJCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJjZGstcm93LCB0cltjZGstcm93XSIsdGVtcGxhdGU6QSQsaG9zdDp7Y2xhc3M6ImNkay1yb3ciLHJvbGU6InJvdyJ9LGNoYW5nZURldGVjdGlvbjp6bi5EZWZhdWx0LGVuY2Fwc3VsYXRpb246SG4uTm9uZX1dfV0sbnVsbCxudWxsKTtjbGFzcyBVJHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnRlbXBsYXRlUmVmPXR9fVUkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxVJCkoU20oWGcpKX0sVSQuybVkaXI9bG8oe3R5cGU6VSQsc2VsZWN0b3JzOltbIm5nLXRlbXBsYXRlIiwiY2RrTm9EYXRhUm93IiwiIl1dfSksVSQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYZ31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVSQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibmctdGVtcGxhdGVbY2RrTm9EYXRhUm93XSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYZ31dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBHJD1bInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCJdO2NsYXNzIFcke2NvbnN0cnVjdG9yKHQsZSxuLG8saT0hMCxhPSEwLHIpe3RoaXMuX2lzTmF0aXZlSHRtbFRhYmxlPXQsdGhpcy5fc3RpY2tDZWxsQ3NzPWUsdGhpcy5kaXJlY3Rpb249bix0aGlzLl9jb2FsZXNjZWRTdHlsZVNjaGVkdWxlcj1vLHRoaXMuX2lzQnJvd3Nlcj1pLHRoaXMuX25lZWRzUG9zaXRpb25TdGlja3lPbkVsZW1lbnQ9YSx0aGlzLl9wb3NpdGlvbkxpc3RlbmVyPXIsdGhpcy5fY2FjaGVkQ2VsbFdpZHRocz1bXSx0aGlzLl9ib3JkZXJDZWxsQ3NzPXt0b3A6YCR7ZX0tYm9yZGVyLWVsZW0tdG9wYCxib3R0b206YCR7ZX0tYm9yZGVyLWVsZW0tYm90dG9tYCxsZWZ0OmAke2V9LWJvcmRlci1lbGVtLWxlZnRgLHJpZ2h0OmAke2V9LWJvcmRlci1lbGVtLXJpZ2h0YH19Y2xlYXJTdGlja3lQb3NpdGlvbmluZyh0LGUpe2NvbnN0IG49W107Zm9yKGNvbnN0IGUgb2YgdClpZihlLm5vZGVUeXBlPT09ZS5FTEVNRU5UX05PREUpe24ucHVzaChlKTtmb3IobGV0IHQ9MDt0PGUuY2hpbGRyZW4ubGVuZ3RoO3QrKyluLnB1c2goZS5jaGlsZHJlblt0XSl9dGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXIuc2NoZWR1bGUoKCgpPT57Zm9yKGNvbnN0IHQgb2Ygbil0aGlzLl9yZW1vdmVTdGlja3lTdHlsZSh0LGUpfSkpfXVwZGF0ZVN0aWNreUNvbHVtbnModCxlLG4sbz0hMCl7aWYoIXQubGVuZ3RofHwhdGhpcy5faXNCcm93c2VyfHwhZS5zb21lKCh0PT50KSkmJiFuLnNvbWUoKHQ9PnQpKSlyZXR1cm4gdm9pZCh0aGlzLl9wb3NpdGlvbkxpc3RlbmVyJiYodGhpcy5fcG9zaXRpb25MaXN0ZW5lci5zdGlja3lDb2x1bW5zVXBkYXRlZCh7c2l6ZXM6W119KSx0aGlzLl9wb3NpdGlvbkxpc3RlbmVyLnN0aWNreUVuZENvbHVtbnNVcGRhdGVkKHtzaXplczpbXX0pKSk7Y29uc3QgaT10WzBdLGE9aS5jaGlsZHJlbi5sZW5ndGgscj10aGlzLl9nZXRDZWxsV2lkdGhzKGksbykscz10aGlzLl9nZXRTdGlja3lTdGFydENvbHVtblBvc2l0aW9ucyhyLGUpLGw9dGhpcy5fZ2V0U3RpY2t5RW5kQ29sdW1uUG9zaXRpb25zKHIsbiksYz1lLmxhc3RJbmRleE9mKCEwKSxkPW4uaW5kZXhPZighMCk7dGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXIuc2NoZWR1bGUoKCgpPT57Y29uc3Qgbz0icnRsIj09PXRoaXMuZGlyZWN0aW9uLGk9bz8icmlnaHQiOiJsZWZ0IixwPW8/ImxlZnQiOiJyaWdodCI7Zm9yKGNvbnN0IG8gb2YgdClmb3IobGV0IHQ9MDt0PGE7dCsrKXtjb25zdCBhPW8uY2hpbGRyZW5bdF07ZVt0XSYmdGhpcy5fYWRkU3RpY2t5U3R5bGUoYSxpLHNbdF0sdD09PWMpLG5bdF0mJnRoaXMuX2FkZFN0aWNreVN0eWxlKGEscCxsW3RdLHQ9PT1kKX10aGlzLl9wb3NpdGlvbkxpc3RlbmVyJiYodGhpcy5fcG9zaXRpb25MaXN0ZW5lci5zdGlja3lDb2x1bW5zVXBkYXRlZCh7c2l6ZXM6LTE9PT1jP1tdOnIuc2xpY2UoMCxjKzEpLm1hcCgoKHQsbik9PmVbbl0/dDpudWxsKSl9KSx0aGlzLl9wb3NpdGlvbkxpc3RlbmVyLnN0aWNreUVuZENvbHVtbnNVcGRhdGVkKHtzaXplczotMT09PWQ/W106ci5zbGljZShkKS5tYXAoKCh0LGUpPT5uW2UrZF0/dDpudWxsKSkucmV2ZXJzZSgpfSkpfSkpfXN0aWNrUm93cyh0LGUsbil7aWYoIXRoaXMuX2lzQnJvd3NlcilyZXR1cm47Y29uc3Qgbz0iYm90dG9tIj09PW4/dC5zbGljZSgpLnJldmVyc2UoKTp0LGk9ImJvdHRvbSI9PT1uP2Uuc2xpY2UoKS5yZXZlcnNlKCk6ZSxhPVtdLHI9W10scz1bXTtmb3IobGV0IHQ9MCxlPTA7dDxvLmxlbmd0aDt0Kyspe2lmKCFpW3RdKWNvbnRpbnVlO2FbdF09ZTtjb25zdCBuPW9bdF07c1t0XT10aGlzLl9pc05hdGl2ZUh0bWxUYWJsZT9BcnJheS5mcm9tKG4uY2hpbGRyZW4pOltuXTtjb25zdCBsPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O2UrPWwsclt0XT1sfWNvbnN0IGw9aS5sYXN0SW5kZXhPZighMCk7dGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXIuc2NoZWR1bGUoKCgpPT57dmFyIHQsZTtmb3IobGV0IHQ9MDt0PG8ubGVuZ3RoO3QrKyl7aWYoIWlbdF0pY29udGludWU7Y29uc3QgZT1hW3RdLG89dD09PWw7Zm9yKGNvbnN0IGkgb2Ygc1t0XSl0aGlzLl9hZGRTdGlja3lTdHlsZShpLG4sZSxvKX0idG9wIj09PW4/bnVsbD09PSh0PXRoaXMuX3Bvc2l0aW9uTGlzdGVuZXIpfHx2b2lkIDA9PT10fHx0LnN0aWNreUhlYWRlclJvd3NVcGRhdGVkKHtzaXplczpyLG9mZnNldHM6YSxlbGVtZW50czpzfSk6bnVsbD09PShlPXRoaXMuX3Bvc2l0aW9uTGlzdGVuZXIpfHx2b2lkIDA9PT1lfHxlLnN0aWNreUZvb3RlclJvd3NVcGRhdGVkKHtzaXplczpyLG9mZnNldHM6YSxlbGVtZW50czpzfSl9KSl9dXBkYXRlU3RpY2t5Rm9vdGVyQ29udGFpbmVyKHQsZSl7aWYoIXRoaXMuX2lzTmF0aXZlSHRtbFRhYmxlKXJldHVybjtjb25zdCBuPXQucXVlcnlTZWxlY3RvcigidGZvb3QiKTt0aGlzLl9jb2FsZXNjZWRTdHlsZVNjaGVkdWxlci5zY2hlZHVsZSgoKCk9PntlLnNvbWUoKHQ9PiF0KSk/dGhpcy5fcmVtb3ZlU3RpY2t5U3R5bGUobixbImJvdHRvbSJdKTp0aGlzLl9hZGRTdGlja3lTdHlsZShuLCJib3R0b20iLDAsITEpfSkpfV9yZW1vdmVTdGlja3lTdHlsZSh0LGUpe2Zvcihjb25zdCBuIG9mIGUpdC5zdHlsZVtuXT0iIix0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fYm9yZGVyQ2VsbENzc1tuXSk7RyQuc29tZSgobj0+LTE9PT1lLmluZGV4T2YobikmJnQuc3R5bGVbbl0pKT90LnN0eWxlLnpJbmRleD10aGlzLl9nZXRDYWxjdWxhdGVkWkluZGV4KHQpOih0LnN0eWxlLnpJbmRleD0iIix0aGlzLl9uZWVkc1Bvc2l0aW9uU3RpY2t5T25FbGVtZW50JiYodC5zdHlsZS5wb3NpdGlvbj0iIiksdC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX3N0aWNrQ2VsbENzcykpfV9hZGRTdGlja3lTdHlsZSh0LGUsbixvKXt0LmNsYXNzTGlzdC5hZGQodGhpcy5fc3RpY2tDZWxsQ3NzKSxvJiZ0LmNsYXNzTGlzdC5hZGQodGhpcy5fYm9yZGVyQ2VsbENzc1tlXSksdC5zdHlsZVtlXT1gJHtufXB4YCx0LnN0eWxlLnpJbmRleD10aGlzLl9nZXRDYWxjdWxhdGVkWkluZGV4KHQpLHRoaXMuX25lZWRzUG9zaXRpb25TdGlja3lPbkVsZW1lbnQmJih0LnN0eWxlLmNzc1RleHQrPSJwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7IHBvc2l0aW9uOiBzdGlja3k7ICIpfV9nZXRDYWxjdWxhdGVkWkluZGV4KHQpe2NvbnN0IGU9e3RvcDoxMDAsYm90dG9tOjEwLGxlZnQ6MSxyaWdodDoxfTtsZXQgbj0wO2Zvcihjb25zdCBvIG9mIEckKXQuc3R5bGVbb10mJihuKz1lW29dKTtyZXR1cm4gbj9gJHtufWA6IiJ9X2dldENlbGxXaWR0aHModCxlPSEwKXtpZighZSYmdGhpcy5fY2FjaGVkQ2VsbFdpZHRocy5sZW5ndGgpcmV0dXJuIHRoaXMuX2NhY2hlZENlbGxXaWR0aHM7Y29uc3Qgbj1bXSxvPXQuY2hpbGRyZW47Zm9yKGxldCB0PTA7dDxvLmxlbmd0aDt0Kyspbi5wdXNoKG9bdF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpO3JldHVybiB0aGlzLl9jYWNoZWRDZWxsV2lkdGhzPW4sbn1fZ2V0U3RpY2t5U3RhcnRDb2x1bW5Qb3NpdGlvbnModCxlKXtjb25zdCBuPVtdO2xldCBvPTA7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspZVtpXSYmKG5baV09byxvKz10W2ldKTtyZXR1cm4gbn1fZ2V0U3RpY2t5RW5kQ29sdW1uUG9zaXRpb25zKHQsZSl7Y29uc3Qgbj1bXTtsZXQgbz0wO2ZvcihsZXQgaT10Lmxlbmd0aDtpPjA7aS0tKWVbaV0mJihuW2ldPW8sbys9dFtpXSk7cmV0dXJuIG59fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBZJCh0KXtyZXR1cm4gRXJyb3IoYENvdWxkIG5vdCBmaW5kIGNvbHVtbiB3aXRoIGlkICIke3R9Ii5gKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHEkPW5ldyBHYSgiQ0RLX1NQTCIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBaJHt9WiQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFokKX0sWiQuybVkaXI9bG8oe3R5cGU6WiQsc2VsZWN0b3JzOltbImNkay10YWJsZSIsInJlY3ljbGVSb3dzIiwiIl0sWyJ0YWJsZSIsImNkay10YWJsZSIsIiIsInJlY3ljbGVSb3dzIiwiIl1dLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6YUYsdXNlQ2xhc3M6bkZ9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChaJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJjZGstdGFibGVbcmVjeWNsZVJvd3NdLCB0YWJsZVtjZGstdGFibGVdW3JlY3ljbGVSb3dzXSIscHJvdmlkZXJzOlt7cHJvdmlkZTphRix1c2VDbGFzczpuRn1dfV19XSxudWxsLG51bGwpO2NsYXNzIFgke2NvbnN0cnVjdG9yKHQsZSl7dGhpcy52aWV3Q29udGFpbmVyPXQsdGhpcy5lbGVtZW50UmVmPWV9fVgkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYJCkoU20oZWgpLFNtKGhnKSl9LFgkLsm1ZGlyPWxvKHt0eXBlOlgkLHNlbGVjdG9yczpbWyIiLCJyb3dPdXRsZXQiLCIiXV19KSxYJC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmVofSx7dHlwZTpoZ31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWCQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW3Jvd091dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZWh9LHt0eXBlOmhnfV19KSxudWxsKTtjbGFzcyBLJHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMudmlld0NvbnRhaW5lcj10LHRoaXMuZWxlbWVudFJlZj1lfX1LJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SyQpKFNtKGVoKSxTbShoZykpfSxLJC7JtWRpcj1sbyh7dHlwZTpLJCxzZWxlY3RvcnM6W1siIiwiaGVhZGVyUm93T3V0bGV0IiwiIl1dfSksSyQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH0se3R5cGU6aGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEskLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltoZWFkZXJSb3dPdXRsZXRdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofSx7dHlwZTpoZ31dfSksbnVsbCk7Y2xhc3MgSiR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnZpZXdDb250YWluZXI9dCx0aGlzLmVsZW1lbnRSZWY9ZX19SiQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEokKShTbShlaCksU20oaGcpKX0sSiQuybVkaXI9bG8oe3R5cGU6SiQsc2VsZWN0b3JzOltbIiIsImZvb3RlclJvd091dGxldCIsIiJdXX0pLEokLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6ZWh9LHt0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChKJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbZm9vdGVyUm93T3V0bGV0XSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTplaH0se3R5cGU6aGd9XX0pLG51bGwpO2NsYXNzIFEke2NvbnN0cnVjdG9yKHQsZSl7dGhpcy52aWV3Q29udGFpbmVyPXQsdGhpcy5lbGVtZW50UmVmPWV9fVEkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxRJCkoU20oZWgpLFNtKGhnKSl9LFEkLsm1ZGlyPWxvKHt0eXBlOlEkLHNlbGVjdG9yczpbWyIiLCJub0RhdGFSb3dPdXRsZXQiLCIiXV19KSxRJC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmVofSx7dHlwZTpoZ31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUSQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW25vRGF0YVJvd091dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZWh9LHt0eXBlOmhnfV19KSxudWxsKTtjb25zdCAkJD0nXG4gIDxuZy1jb250ZW50IHNlbGVjdD0iY2FwdGlvbiI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9ImNvbGdyb3VwLCBjb2wiPjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRhaW5lciBoZWFkZXJSb3dPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgcm93T3V0bGV0PjwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIG5vRGF0YVJvd091dGxldD48L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBmb290ZXJSb3dPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4nO2NsYXNzIHQwe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMsZCl7dGhpcy5fZGlmZmVycz10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fZWxlbWVudFJlZj1uLHRoaXMuX2Rpcj1pLHRoaXMuX3BsYXRmb3JtPXIsdGhpcy5fdmlld1JlcGVhdGVyPXMsdGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXI9bCx0aGlzLl92aWV3cG9ydFJ1bGVyPWMsdGhpcy5fc3RpY2t5UG9zaXRpb25pbmdMaXN0ZW5lcj1kLHRoaXMuX29uRGVzdHJveT1uZXcgSSx0aGlzLl9jb2x1bW5EZWZzQnlOYW1lPW5ldyBNYXAsdGhpcy5fY3VzdG9tQ29sdW1uRGVmcz1uZXcgU2V0LHRoaXMuX2N1c3RvbVJvd0RlZnM9bmV3IFNldCx0aGlzLl9jdXN0b21IZWFkZXJSb3dEZWZzPW5ldyBTZXQsdGhpcy5fY3VzdG9tRm9vdGVyUm93RGVmcz1uZXcgU2V0LHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQ9ITAsdGhpcy5fZm9vdGVyUm93RGVmQ2hhbmdlZD0hMCx0aGlzLl9zdGlja3lDb2x1bW5TdHlsZXNOZWVkUmVzZXQ9ITAsdGhpcy5fZm9yY2VSZWNhbGN1bGF0ZUNlbGxXaWR0aHM9ITAsdGhpcy5fY2FjaGVkUmVuZGVyUm93c01hcD1uZXcgTWFwLHRoaXMuc3RpY2t5Q3NzQ2xhc3M9ImNkay10YWJsZS1zdGlja3kiLHRoaXMubmVlZHNQb3NpdGlvblN0aWNreU9uRWxlbWVudD0hMCx0aGlzLl9pc1Nob3dpbmdOb0RhdGFSb3c9ITEsdGhpcy5fbXVsdGlUZW1wbGF0ZURhdGFSb3dzPSExLHRoaXMuX2ZpeGVkTGF5b3V0PSExLHRoaXMuY29udGVudENoYW5nZWQ9bmV3IExoLHRoaXMudmlld0NoYW5nZT1uZXcgRih7c3RhcnQ6MCxlbmQ6TnVtYmVyLk1BWF9WQUxVRX0pLG98fHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJ0YWJsZSIpLHRoaXMuX2RvY3VtZW50PWEsdGhpcy5faXNOYXRpdmVIdG1sVGFibGU9IlRBQkxFIj09PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZX1nZXQgdHJhY2tCeSgpe3JldHVybiB0aGlzLl90cmFja0J5Rm59c2V0IHRyYWNrQnkodCl7InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fG51bGw9PXR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0fHxjb25zb2xlLndhcm4oYHRyYWNrQnkgbXVzdCBiZSBhIGZ1bmN0aW9uLCBidXQgcmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeSh0KX0uYCksdGhpcy5fdHJhY2tCeUZuPXR9Z2V0IGRhdGFTb3VyY2UoKXtyZXR1cm4gdGhpcy5fZGF0YVNvdXJjZX1zZXQgZGF0YVNvdXJjZSh0KXt0aGlzLl9kYXRhU291cmNlIT09dCYmdGhpcy5fc3dpdGNoRGF0YVNvdXJjZSh0KX1nZXQgbXVsdGlUZW1wbGF0ZURhdGFSb3dzKCl7cmV0dXJuIHRoaXMuX211bHRpVGVtcGxhdGVEYXRhUm93c31zZXQgbXVsdGlUZW1wbGF0ZURhdGFSb3dzKHQpe3RoaXMuX211bHRpVGVtcGxhdGVEYXRhUm93cz15eih0KSx0aGlzLl9yb3dPdXRsZXQmJnRoaXMuX3Jvd091dGxldC52aWV3Q29udGFpbmVyLmxlbmd0aCYmKHRoaXMuX2ZvcmNlUmVuZGVyRGF0YVJvd3MoKSx0aGlzLnVwZGF0ZVN0aWNreUNvbHVtblN0eWxlcygpKX1nZXQgZml4ZWRMYXlvdXQoKXtyZXR1cm4gdGhpcy5fZml4ZWRMYXlvdXR9c2V0IGZpeGVkTGF5b3V0KHQpe3RoaXMuX2ZpeGVkTGF5b3V0PXl6KHQpLHRoaXMuX2ZvcmNlUmVjYWxjdWxhdGVDZWxsV2lkdGhzPSEwLHRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldD0hMH1uZ09uSW5pdCgpe3RoaXMuX3NldHVwU3RpY2t5U3R5bGVyKCksdGhpcy5faXNOYXRpdmVIdG1sVGFibGUmJnRoaXMuX2FwcGx5TmF0aXZlVGFibGVTZWN0aW9ucygpLHRoaXMuX2RhdGFEaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKCh0LGUpPT50aGlzLnRyYWNrQnk/dGhpcy50cmFja0J5KGUuZGF0YUluZGV4LGUuZGF0YSk6ZSkpLHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKCkucGlwZShJZSh0aGlzLl9vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fZm9yY2VSZWNhbGN1bGF0ZUNlbGxXaWR0aHM9ITB9KSl9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7aWYodGhpcy5fY2FjaGVSb3dEZWZzKCksdGhpcy5fY2FjaGVDb2x1bW5EZWZzKCksIXRoaXMuX2hlYWRlclJvd0RlZnMubGVuZ3RoJiYhdGhpcy5fZm9vdGVyUm93RGVmcy5sZW5ndGgmJiF0aGlzLl9yb3dEZWZzLmxlbmd0aCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIHQoKXtyZXR1cm4gRXJyb3IoIk1pc3NpbmcgZGVmaW5pdGlvbnMgZm9yIGhlYWRlciwgZm9vdGVyLCBhbmQgcm93OyBjYW5ub3QgZGV0ZXJtaW5lIHdoaWNoIGNvbHVtbnMgc2hvdWxkIGJlIHJlbmRlcmVkLiIpfSkoKTtjb25zdCBlPXRoaXMuX3JlbmRlclVwZGF0ZWRDb2x1bW5zKCl8fHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWR8fHRoaXMuX2Zvb3RlclJvd0RlZkNoYW5nZWQ7dGhpcy5fc3RpY2t5Q29sdW1uU3R5bGVzTmVlZFJlc2V0PXRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldHx8ZSx0aGlzLl9mb3JjZVJlY2FsY3VsYXRlQ2VsbFdpZHRocz1lLHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQmJih0aGlzLl9mb3JjZVJlbmRlckhlYWRlclJvd3MoKSx0aGlzLl9oZWFkZXJSb3dEZWZDaGFuZ2VkPSExKSx0aGlzLl9mb290ZXJSb3dEZWZDaGFuZ2VkJiYodGhpcy5fZm9yY2VSZW5kZXJGb290ZXJSb3dzKCksdGhpcy5fZm9vdGVyUm93RGVmQ2hhbmdlZD0hMSksdGhpcy5kYXRhU291cmNlJiZ0aGlzLl9yb3dEZWZzLmxlbmd0aD4wJiYhdGhpcy5fcmVuZGVyQ2hhbmdlU3Vic2NyaXB0aW9uP3RoaXMuX29ic2VydmVSZW5kZXJDaGFuZ2VzKCk6dGhpcy5fc3RpY2t5Q29sdW1uU3R5bGVzTmVlZFJlc2V0JiZ0aGlzLnVwZGF0ZVN0aWNreUNvbHVtblN0eWxlcygpLHRoaXMuX2NoZWNrU3RpY2t5U3RhdGVzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9yb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX25vRGF0YVJvd091dGxldC52aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5faGVhZGVyUm93T3V0bGV0LnZpZXdDb250YWluZXIuY2xlYXIoKSx0aGlzLl9mb290ZXJSb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX2NhY2hlZFJlbmRlclJvd3NNYXAuY2xlYXIoKSx0aGlzLl9vbkRlc3Ryb3kubmV4dCgpLHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpLCRIKHRoaXMuZGF0YVNvdXJjZSkmJnRoaXMuZGF0YVNvdXJjZS5kaXNjb25uZWN0KHRoaXMpfXJlbmRlclJvd3MoKXt0aGlzLl9yZW5kZXJSb3dzPXRoaXMuX2dldEFsbFJlbmRlclJvd3MoKTtjb25zdCB0PXRoaXMuX2RhdGFEaWZmZXIuZGlmZih0aGlzLl9yZW5kZXJSb3dzKTtpZighdClyZXR1cm4gdGhpcy5fdXBkYXRlTm9EYXRhUm93KCksdm9pZCB0aGlzLmNvbnRlbnRDaGFuZ2VkLm5leHQoKTtjb25zdCBlPXRoaXMuX3Jvd091dGxldC52aWV3Q29udGFpbmVyO3RoaXMuX3ZpZXdSZXBlYXRlci5hcHBseUNoYW5nZXModCxlLCgodCxlLG4pPT50aGlzLl9nZXRFbWJlZGRlZFZpZXdBcmdzKHQuaXRlbSxuKSksKHQ9PnQuaXRlbS5kYXRhKSwodD0+ezE9PT10Lm9wZXJhdGlvbiYmdC5jb250ZXh0JiZ0aGlzLl9yZW5kZXJDZWxsVGVtcGxhdGVGb3JJdGVtKHQucmVjb3JkLml0ZW0ucm93RGVmLHQuY29udGV4dCl9KSksdGhpcy5fdXBkYXRlUm93SW5kZXhDb250ZXh0KCksdC5mb3JFYWNoSWRlbnRpdHlDaGFuZ2UoKHQ9PntlLmdldCh0LmN1cnJlbnRJbmRleCkuY29udGV4dC4kaW1wbGljaXQ9dC5pdGVtLmRhdGF9KSksdGhpcy5fdXBkYXRlTm9EYXRhUm93KCksdGhpcy51cGRhdGVTdGlja3lDb2x1bW5TdHlsZXMoKSx0aGlzLmNvbnRlbnRDaGFuZ2VkLm5leHQoKX1hZGRDb2x1bW5EZWYodCl7dGhpcy5fY3VzdG9tQ29sdW1uRGVmcy5hZGQodCl9cmVtb3ZlQ29sdW1uRGVmKHQpe3RoaXMuX2N1c3RvbUNvbHVtbkRlZnMuZGVsZXRlKHQpfWFkZFJvd0RlZih0KXt0aGlzLl9jdXN0b21Sb3dEZWZzLmFkZCh0KX1yZW1vdmVSb3dEZWYodCl7dGhpcy5fY3VzdG9tUm93RGVmcy5kZWxldGUodCl9YWRkSGVhZGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUhlYWRlclJvd0RlZnMuYWRkKHQpLHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQ9ITB9cmVtb3ZlSGVhZGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUhlYWRlclJvd0RlZnMuZGVsZXRlKHQpLHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQ9ITB9YWRkRm9vdGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUZvb3RlclJvd0RlZnMuYWRkKHQpLHRoaXMuX2Zvb3RlclJvd0RlZkNoYW5nZWQ9ITB9cmVtb3ZlRm9vdGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUZvb3RlclJvd0RlZnMuZGVsZXRlKHQpLHRoaXMuX2Zvb3RlclJvd0RlZkNoYW5nZWQ9ITB9c2V0Tm9EYXRhUm93KHQpe3RoaXMuX2N1c3RvbU5vRGF0YVJvdz10fXVwZGF0ZVN0aWNreUhlYWRlclJvd1N0eWxlcygpe2NvbnN0IHQ9dGhpcy5fZ2V0UmVuZGVyZWRSb3dzKHRoaXMuX2hlYWRlclJvd091dGxldCksZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigidGhlYWQiKTtlJiYoZS5zdHlsZS5kaXNwbGF5PXQubGVuZ3RoPyIiOiJub25lIik7Y29uc3Qgbj10aGlzLl9oZWFkZXJSb3dEZWZzLm1hcCgodD0+dC5zdGlja3kpKTt0aGlzLl9zdGlja3lTdHlsZXIuY2xlYXJTdGlja3lQb3NpdGlvbmluZyh0LFsidG9wIl0pLHRoaXMuX3N0aWNreVN0eWxlci5zdGlja1Jvd3ModCxuLCJ0b3AiKSx0aGlzLl9oZWFkZXJSb3dEZWZzLmZvckVhY2goKHQ9PnQucmVzZXRTdGlja3lDaGFuZ2VkKCkpKX11cGRhdGVTdGlja3lGb290ZXJSb3dTdHlsZXMoKXtjb25zdCB0PXRoaXMuX2dldFJlbmRlcmVkUm93cyh0aGlzLl9mb290ZXJSb3dPdXRsZXQpLGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoInRmb290Iik7ZSYmKGUuc3R5bGUuZGlzcGxheT10Lmxlbmd0aD8iIjoibm9uZSIpO2NvbnN0IG49dGhpcy5fZm9vdGVyUm93RGVmcy5tYXAoKHQ9PnQuc3RpY2t5KSk7dGhpcy5fc3RpY2t5U3R5bGVyLmNsZWFyU3RpY2t5UG9zaXRpb25pbmcodCxbImJvdHRvbSJdKSx0aGlzLl9zdGlja3lTdHlsZXIuc3RpY2tSb3dzKHQsbiwiYm90dG9tIiksdGhpcy5fc3RpY2t5U3R5bGVyLnVwZGF0ZVN0aWNreUZvb3RlckNvbnRhaW5lcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsbiksdGhpcy5fZm9vdGVyUm93RGVmcy5mb3JFYWNoKCh0PT50LnJlc2V0U3RpY2t5Q2hhbmdlZCgpKSl9dXBkYXRlU3RpY2t5Q29sdW1uU3R5bGVzKCl7Y29uc3QgdD10aGlzLl9nZXRSZW5kZXJlZFJvd3ModGhpcy5faGVhZGVyUm93T3V0bGV0KSxlPXRoaXMuX2dldFJlbmRlcmVkUm93cyh0aGlzLl9yb3dPdXRsZXQpLG49dGhpcy5fZ2V0UmVuZGVyZWRSb3dzKHRoaXMuX2Zvb3RlclJvd091dGxldCk7KHRoaXMuX2lzTmF0aXZlSHRtbFRhYmxlJiYhdGhpcy5fZml4ZWRMYXlvdXR8fHRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldCkmJih0aGlzLl9zdGlja3lTdHlsZXIuY2xlYXJTdGlja3lQb3NpdGlvbmluZyhbLi4udCwuLi5lLC4uLm5dLFsibGVmdCIsInJpZ2h0Il0pLHRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldD0hMSksdC5mb3JFYWNoKCgodCxlKT0+e3RoaXMuX2FkZFN0aWNreUNvbHVtblN0eWxlcyhbdF0sdGhpcy5faGVhZGVyUm93RGVmc1tlXSl9KSksdGhpcy5fcm93RGVmcy5mb3JFYWNoKCh0PT57Y29uc3Qgbj1bXTtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl0aGlzLl9yZW5kZXJSb3dzW29dLnJvd0RlZj09PXQmJm4ucHVzaChlW29dKTt0aGlzLl9hZGRTdGlja3lDb2x1bW5TdHlsZXMobix0KX0pKSxuLmZvckVhY2goKCh0LGUpPT57dGhpcy5fYWRkU3RpY2t5Q29sdW1uU3R5bGVzKFt0XSx0aGlzLl9mb290ZXJSb3dEZWZzW2VdKX0pKSxBcnJheS5mcm9tKHRoaXMuX2NvbHVtbkRlZnNCeU5hbWUudmFsdWVzKCkpLmZvckVhY2goKHQ9PnQucmVzZXRTdGlja3lDaGFuZ2VkKCkpKX1fZ2V0QWxsUmVuZGVyUm93cygpe2NvbnN0IHQ9W10sZT10aGlzLl9jYWNoZWRSZW5kZXJSb3dzTWFwO3RoaXMuX2NhY2hlZFJlbmRlclJvd3NNYXA9bmV3IE1hcDtmb3IobGV0IG49MDtuPHRoaXMuX2RhdGEubGVuZ3RoO24rKyl7bGV0IG89dGhpcy5fZGF0YVtuXTtjb25zdCBpPXRoaXMuX2dldFJlbmRlclJvd3NGb3JEYXRhKG8sbixlLmdldChvKSk7dGhpcy5fY2FjaGVkUmVuZGVyUm93c01hcC5oYXMobyl8fHRoaXMuX2NhY2hlZFJlbmRlclJvd3NNYXAuc2V0KG8sbmV3IFdlYWtNYXApO2ZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXtsZXQgbj1pW2VdO2NvbnN0IG89dGhpcy5fY2FjaGVkUmVuZGVyUm93c01hcC5nZXQobi5kYXRhKTtvLmhhcyhuLnJvd0RlZik/by5nZXQobi5yb3dEZWYpLnB1c2gobik6by5zZXQobi5yb3dEZWYsW25dKSx0LnB1c2gobil9fXJldHVybiB0fV9nZXRSZW5kZXJSb3dzRm9yRGF0YSh0LGUsbil7cmV0dXJuIHRoaXMuX2dldFJvd0RlZnModCxlKS5tYXAoKG89Pntjb25zdCBpPW4mJm4uaGFzKG8pP24uZ2V0KG8pOltdO2lmKGkubGVuZ3RoKXtjb25zdCB0PWkuc2hpZnQoKTtyZXR1cm4gdC5kYXRhSW5kZXg9ZSx0fXJldHVybntkYXRhOnQscm93RGVmOm8sZGF0YUluZGV4OmV9fSkpfV9jYWNoZUNvbHVtbkRlZnMoKXt0aGlzLl9jb2x1bW5EZWZzQnlOYW1lLmNsZWFyKCksZTAodGhpcy5fZ2V0T3duRGVmcyh0aGlzLl9jb250ZW50Q29sdW1uRGVmcyksdGhpcy5fY3VzdG9tQ29sdW1uRGVmcykuZm9yRWFjaCgodD0+e2lmKHRoaXMuX2NvbHVtbkRlZnNCeU5hbWUuaGFzKHQubmFtZSkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyhmdW5jdGlvbiBlKHQpe3JldHVybiBFcnJvcihgRHVwbGljYXRlIGNvbHVtbiBkZWZpbml0aW9uIG5hbWUgcHJvdmlkZWQ6ICIke3R9Ii5gKX0pKHQubmFtZSk7dGhpcy5fY29sdW1uRGVmc0J5TmFtZS5zZXQodC5uYW1lLHQpfSkpfV9jYWNoZVJvd0RlZnMoKXt0aGlzLl9oZWFkZXJSb3dEZWZzPWUwKHRoaXMuX2dldE93bkRlZnModGhpcy5fY29udGVudEhlYWRlclJvd0RlZnMpLHRoaXMuX2N1c3RvbUhlYWRlclJvd0RlZnMpLHRoaXMuX2Zvb3RlclJvd0RlZnM9ZTAodGhpcy5fZ2V0T3duRGVmcyh0aGlzLl9jb250ZW50Rm9vdGVyUm93RGVmcyksdGhpcy5fY3VzdG9tRm9vdGVyUm93RGVmcyksdGhpcy5fcm93RGVmcz1lMCh0aGlzLl9nZXRPd25EZWZzKHRoaXMuX2NvbnRlbnRSb3dEZWZzKSx0aGlzLl9jdXN0b21Sb3dEZWZzKTtjb25zdCB0PXRoaXMuX3Jvd0RlZnMuZmlsdGVyKCh0PT4hdC53aGVuKSk7aWYoIXRoaXMubXVsdGlUZW1wbGF0ZURhdGFSb3dzJiZ0Lmxlbmd0aD4xJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gZSgpe3JldHVybiBFcnJvcigiVGhlcmUgY2FuIG9ubHkgYmUgb25lIGRlZmF1bHQgcm93IHdpdGhvdXQgYSB3aGVuIHByZWRpY2F0ZSBmdW5jdGlvbi4iKX0pKCk7dGhpcy5fZGVmYXVsdFJvd0RlZj10WzBdfV9yZW5kZXJVcGRhdGVkQ29sdW1ucygpe2NvbnN0IHQ9KHQsZSk9PnR8fCEhZS5nZXRDb2x1bW5zRGlmZigpLGU9dGhpcy5fcm93RGVmcy5yZWR1Y2UodCwhMSk7ZSYmdGhpcy5fZm9yY2VSZW5kZXJEYXRhUm93cygpO2NvbnN0IG49dGhpcy5faGVhZGVyUm93RGVmcy5yZWR1Y2UodCwhMSk7biYmdGhpcy5fZm9yY2VSZW5kZXJIZWFkZXJSb3dzKCk7Y29uc3Qgbz10aGlzLl9mb290ZXJSb3dEZWZzLnJlZHVjZSh0LCExKTtyZXR1cm4gbyYmdGhpcy5fZm9yY2VSZW5kZXJGb290ZXJSb3dzKCksZXx8bnx8b31fc3dpdGNoRGF0YVNvdXJjZSh0KXt0aGlzLl9kYXRhPVtdLCRIKHRoaXMuZGF0YVNvdXJjZSkmJnRoaXMuZGF0YVNvdXJjZS5kaXNjb25uZWN0KHRoaXMpLHRoaXMuX3JlbmRlckNoYW5nZVN1YnNjcmlwdGlvbiYmKHRoaXMuX3JlbmRlckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3JlbmRlckNoYW5nZVN1YnNjcmlwdGlvbj1udWxsKSx0fHwodGhpcy5fZGF0YURpZmZlciYmdGhpcy5fZGF0YURpZmZlci5kaWZmKFtdKSx0aGlzLl9yb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpKSx0aGlzLl9kYXRhU291cmNlPXR9X29ic2VydmVSZW5kZXJDaGFuZ2VzKCl7aWYoIXRoaXMuZGF0YVNvdXJjZSlyZXR1cm47bGV0IHQ7aWYoJEgodGhpcy5kYXRhU291cmNlKT90PXRoaXMuZGF0YVNvdXJjZS5jb25uZWN0KHRoaXMpOk50KHRoaXMuZGF0YVNvdXJjZSk/dD10aGlzLmRhdGFTb3VyY2U6QXJyYXkuaXNBcnJheSh0aGlzLmRhdGFTb3VyY2UpJiYodD1FdCh0aGlzLmRhdGFTb3VyY2UpKSx2b2lkIDA9PT10JiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gZSgpe3JldHVybiBFcnJvcigiUHJvdmlkZWQgZGF0YSBzb3VyY2UgZGlkIG5vdCBtYXRjaCBhbiBhcnJheSwgT2JzZXJ2YWJsZSwgb3IgRGF0YVNvdXJjZSIpfSkoKTt0aGlzLl9yZW5kZXJDaGFuZ2VTdWJzY3JpcHRpb249dC5waXBlKEllKHRoaXMuX29uRGVzdHJveSkpLnN1YnNjcmliZSgodD0+e3RoaXMuX2RhdGE9dHx8W10sdGhpcy5yZW5kZXJSb3dzKCl9KSl9X2ZvcmNlUmVuZGVySGVhZGVyUm93cygpe3RoaXMuX2hlYWRlclJvd091dGxldC52aWV3Q29udGFpbmVyLmxlbmd0aD4wJiZ0aGlzLl9oZWFkZXJSb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX2hlYWRlclJvd0RlZnMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX3JlbmRlclJvdyh0aGlzLl9oZWFkZXJSb3dPdXRsZXQsdCxlKSkpLHRoaXMudXBkYXRlU3RpY2t5SGVhZGVyUm93U3R5bGVzKCl9X2ZvcmNlUmVuZGVyRm9vdGVyUm93cygpe3RoaXMuX2Zvb3RlclJvd091dGxldC52aWV3Q29udGFpbmVyLmxlbmd0aD4wJiZ0aGlzLl9mb290ZXJSb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX2Zvb3RlclJvd0RlZnMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX3JlbmRlclJvdyh0aGlzLl9mb290ZXJSb3dPdXRsZXQsdCxlKSkpLHRoaXMudXBkYXRlU3RpY2t5Rm9vdGVyUm93U3R5bGVzKCl9X2FkZFN0aWNreUNvbHVtblN0eWxlcyh0LGUpe2NvbnN0IG49QXJyYXkuZnJvbShlLmNvbHVtbnN8fFtdKS5tYXAoKHQ9Pntjb25zdCBlPXRoaXMuX2NvbHVtbkRlZnNCeU5hbWUuZ2V0KHQpO2lmKCFlJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgWSQodCk7cmV0dXJuIGV9KSksbz1uLm1hcCgodD0+dC5zdGlja3kpKSxpPW4ubWFwKCh0PT50LnN0aWNreUVuZCkpO3RoaXMuX3N0aWNreVN0eWxlci51cGRhdGVTdGlja3lDb2x1bW5zKHQsbyxpLCF0aGlzLl9maXhlZExheW91dHx8dGhpcy5fZm9yY2VSZWNhbGN1bGF0ZUNlbGxXaWR0aHMpfV9nZXRSZW5kZXJlZFJvd3ModCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPHQudmlld0NvbnRhaW5lci5sZW5ndGg7bisrKXtjb25zdCBvPXQudmlld0NvbnRhaW5lci5nZXQobik7ZS5wdXNoKG8ucm9vdE5vZGVzWzBdKX1yZXR1cm4gZX1fZ2V0Um93RGVmcyh0LGUpe2lmKDE9PXRoaXMuX3Jvd0RlZnMubGVuZ3RoKXJldHVyblt0aGlzLl9yb3dEZWZzWzBdXTtsZXQgbj1bXTtpZih0aGlzLm11bHRpVGVtcGxhdGVEYXRhUm93cyluPXRoaXMuX3Jvd0RlZnMuZmlsdGVyKChuPT4hbi53aGVufHxuLndoZW4oZSx0KSkpO2Vsc2V7bGV0IG89dGhpcy5fcm93RGVmcy5maW5kKChuPT5uLndoZW4mJm4ud2hlbihlLHQpKSl8fHRoaXMuX2RlZmF1bHRSb3dEZWY7byYmbi5wdXNoKG8pfWlmKCFuLmxlbmd0aCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIG8odCl7cmV0dXJuIEVycm9yKGBDb3VsZCBub3QgZmluZCBhIG1hdGNoaW5nIHJvdyBkZWZpbml0aW9uIGZvciB0aGVwcm92aWRlZCByb3cgZGF0YTogJHtKU09OLnN0cmluZ2lmeSh0KX1gKX0pKHQpO3JldHVybiBufV9nZXRFbWJlZGRlZFZpZXdBcmdzKHQsZSl7cmV0dXJue3RlbXBsYXRlUmVmOnQucm93RGVmLnRlbXBsYXRlLGNvbnRleHQ6eyRpbXBsaWNpdDp0LmRhdGF9LGluZGV4OmV9fV9yZW5kZXJSb3codCxlLG4sbz17fSl7Y29uc3QgaT10LnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KGUudGVtcGxhdGUsbyxuKTtyZXR1cm4gdGhpcy5fcmVuZGVyQ2VsbFRlbXBsYXRlRm9ySXRlbShlLG8pLGl9X3JlbmRlckNlbGxUZW1wbGF0ZUZvckl0ZW0odCxlKXtmb3IobGV0IG4gb2YgdGhpcy5fZ2V0Q2VsbFRlbXBsYXRlcyh0KSlMJC5tb3N0UmVjZW50Q2VsbE91dGxldCYmTCQubW9zdFJlY2VudENlbGxPdXRsZXQuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KG4sZSk7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X3VwZGF0ZVJvd0luZGV4Q29udGV4dCgpe2NvbnN0IHQ9dGhpcy5fcm93T3V0bGV0LnZpZXdDb250YWluZXI7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBvPXQuZ2V0KGUpLmNvbnRleHQ7by5jb3VudD1uLG8uZmlyc3Q9MD09PWUsby5sYXN0PWU9PT1uLTEsby5ldmVuPWUlMj09MCxvLm9kZD0hby5ldmVuLHRoaXMubXVsdGlUZW1wbGF0ZURhdGFSb3dzPyhvLmRhdGFJbmRleD10aGlzLl9yZW5kZXJSb3dzW2VdLmRhdGFJbmRleCxvLnJlbmRlckluZGV4PWUpOm8uaW5kZXg9dGhpcy5fcmVuZGVyUm93c1tlXS5kYXRhSW5kZXh9fV9nZXRDZWxsVGVtcGxhdGVzKHQpe3JldHVybiB0JiZ0LmNvbHVtbnM/QXJyYXkuZnJvbSh0LmNvbHVtbnMsKGU9Pntjb25zdCBuPXRoaXMuX2NvbHVtbkRlZnNCeU5hbWUuZ2V0KGUpO2lmKCFuJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgWSQoZSk7cmV0dXJuIHQuZXh0cmFjdENlbGxUZW1wbGF0ZShuKX0pKTpbXX1fYXBwbHlOYXRpdmVUYWJsZVNlY3Rpb25zKCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZT1be3RhZzoidGhlYWQiLG91dGxldHM6W3RoaXMuX2hlYWRlclJvd091dGxldF19LHt0YWc6InRib2R5IixvdXRsZXRzOlt0aGlzLl9yb3dPdXRsZXQsdGhpcy5fbm9EYXRhUm93T3V0bGV0XX0se3RhZzoidGZvb3QiLG91dGxldHM6W3RoaXMuX2Zvb3RlclJvd091dGxldF19XTtmb3IoY29uc3QgbiBvZiBlKXtjb25zdCBlPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQobi50YWcpO2Uuc2V0QXR0cmlidXRlKCJyb2xlIiwicm93Z3JvdXAiKTtmb3IoY29uc3QgdCBvZiBuLm91dGxldHMpZS5hcHBlbmRDaGlsZCh0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7dC5hcHBlbmRDaGlsZChlKX10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodCl9X2ZvcmNlUmVuZGVyRGF0YVJvd3MoKXt0aGlzLl9kYXRhRGlmZmVyLmRpZmYoW10pLHRoaXMuX3Jvd091dGxldC52aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5yZW5kZXJSb3dzKCl9X2NoZWNrU3RpY2t5U3RhdGVzKCl7Y29uc3QgdD0odCxlKT0+dHx8ZS5oYXNTdGlja3lDaGFuZ2VkKCk7dGhpcy5faGVhZGVyUm93RGVmcy5yZWR1Y2UodCwhMSkmJnRoaXMudXBkYXRlU3RpY2t5SGVhZGVyUm93U3R5bGVzKCksdGhpcy5fZm9vdGVyUm93RGVmcy5yZWR1Y2UodCwhMSkmJnRoaXMudXBkYXRlU3RpY2t5Rm9vdGVyUm93U3R5bGVzKCksQXJyYXkuZnJvbSh0aGlzLl9jb2x1bW5EZWZzQnlOYW1lLnZhbHVlcygpKS5yZWR1Y2UodCwhMSkmJih0aGlzLl9zdGlja3lDb2x1bW5TdHlsZXNOZWVkUmVzZXQ9ITAsdGhpcy51cGRhdGVTdGlja3lDb2x1bW5TdHlsZXMoKSl9X3NldHVwU3RpY2t5U3R5bGVyKCl7dGhpcy5fc3RpY2t5U3R5bGVyPW5ldyBXJCh0aGlzLl9pc05hdGl2ZUh0bWxUYWJsZSx0aGlzLnN0aWNreUNzc0NsYXNzLHRoaXMuX2Rpcj90aGlzLl9kaXIudmFsdWU6Imx0ciIsdGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXIsdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyLHRoaXMubmVlZHNQb3NpdGlvblN0aWNreU9uRWxlbWVudCx0aGlzLl9zdGlja3lQb3NpdGlvbmluZ0xpc3RlbmVyKSwodGhpcy5fZGlyP3RoaXMuX2Rpci5jaGFuZ2U6RXQoKSkucGlwZShJZSh0aGlzLl9vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLl9zdGlja3lTdHlsZXIuZGlyZWN0aW9uPXQsdGhpcy51cGRhdGVTdGlja3lDb2x1bW5TdHlsZXMoKX0pKX1fZ2V0T3duRGVmcyh0KXtyZXR1cm4gdC5maWx0ZXIoKHQ9PiF0Ll90YWJsZXx8dC5fdGFibGU9PT10aGlzKSl9X3VwZGF0ZU5vRGF0YVJvdygpe2NvbnN0IHQ9dGhpcy5fY3VzdG9tTm9EYXRhUm93fHx0aGlzLl9ub0RhdGFSb3c7aWYodCl7Y29uc3QgZT0wPT09dGhpcy5fcm93T3V0bGV0LnZpZXdDb250YWluZXIubGVuZ3RoO2lmKGUhPT10aGlzLl9pc1Nob3dpbmdOb0RhdGFSb3cpe2NvbnN0IG49dGhpcy5fbm9EYXRhUm93T3V0bGV0LnZpZXdDb250YWluZXI7ZT9uLmNyZWF0ZUVtYmVkZGVkVmlldyh0LnRlbXBsYXRlUmVmKTpuLmNsZWFyKCksdGhpcy5faXNTaG93aW5nTm9EYXRhUm93PWV9fX19ZnVuY3Rpb24gZTAodCxlKXtyZXR1cm4gdC5jb25jYXQoQXJyYXkuZnJvbShlKSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL3QwLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0MCkoU20oSGcpLFNtKFVnKSxTbShoZyksTmEoInJvbGUiKSxTbShISSw4KSxTbShaXyksU20od3opLFNtKGFGKSxTbShFJCksU20odUYpLFNtKHEkLDEyKSl9LHQwLsm1Y21wPXRvKHt0eXBlOnQwLHNlbGVjdG9yczpbWyJjZGstdGFibGUiXSxbInRhYmxlIiwiY2RrLXRhYmxlIiwiIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uIHQoZSxuLG8pe2lmKDEmZSYmKCRoKG8sVSQsNSksJGgobyxPJCw1KSwkaChvLEYkLDUpLCRoKG8seiQsNSksJGgobyxIJCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5fbm9EYXRhUm93PXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9jb250ZW50Q29sdW1uRGVmcz10KSxKaCh0PXRiKCkpJiYobi5fY29udGVudFJvd0RlZnM9dCksSmgodD10YigpKSYmKG4uX2NvbnRlbnRIZWFkZXJSb3dEZWZzPXQpLEpoKHQ9dGIoKSkmJihuLl9jb250ZW50Rm9vdGVyUm93RGVmcz10KX19LHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUWgoWCQsNyksUWgoSyQsNyksUWgoSiQsNyksUWgoUSQsNykpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX3Jvd091dGxldD10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5faGVhZGVyUm93T3V0bGV0PXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9mb290ZXJSb3dPdXRsZXQ9dC5maXJzdCksSmgodD10YigpKSYmKG4uX25vRGF0YVJvd091dGxldD10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwiY2RrLXRhYmxlIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoImNkay10YWJsZS1maXhlZC1sYXlvdXQiLG4uZml4ZWRMYXlvdXQpfSxpbnB1dHM6e3RyYWNrQnk6InRyYWNrQnkiLGRhdGFTb3VyY2U6ImRhdGFTb3VyY2UiLG11bHRpVGVtcGxhdGVEYXRhUm93czoibXVsdGlUZW1wbGF0ZURhdGFSb3dzIixmaXhlZExheW91dDoiZml4ZWRMYXlvdXQifSxvdXRwdXRzOntjb250ZW50Q2hhbmdlZDoiY29udGVudENoYW5nZWQifSxleHBvcnRBczpbImNka1RhYmxlIl0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTp5JCx1c2VFeGlzdGluZzp0MH0se3Byb3ZpZGU6YUYsdXNlQ2xhc3M6ZUZ9LHtwcm92aWRlOkUkLHVzZUNsYXNzOlIkfSx7cHJvdmlkZTpxJCx1c2VWYWx1ZTpudWxsfV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyJjYXB0aW9uIiwiY29sZ3JvdXAsIGNvbCJdLGRlY2xzOjYsdmFyczowLGNvbnN0czpbWyJoZWFkZXJSb3dPdXRsZXQiLCIiXSxbInJvd091dGxldCIsIiJdLFsibm9EYXRhUm93T3V0bGV0IiwiIl0sWyJmb290ZXJSb3dPdXRsZXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFptKGYkKSxYbSgwKSxYbSgxLDEpLEltKDIsMCksSW0oMywxKSxJbSg0LDIpLEltKDUsMykpfSxkaXJlY3RpdmVzOltLJCxYJCxRJCxKJF0sc3R5bGVzOlsiLmNkay10YWJsZS1maXhlZC1sYXlvdXR7dGFibGUtbGF5b3V0OmZpeGVkfVxuIl0sZW5jYXBzdWxhdGlvbjoyfSksdDAuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpIZ30se3R5cGU6VWd9LHt0eXBlOmhnfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInJvbGUiXX1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbYUZdfV19LHt0eXBlOlIkLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0UkXX1dfSx7dHlwZTp1Rn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpFcn0se3R5cGU6a3IsYXJnczpbcSRdfV19XSx0MC5wcm9wRGVjb3JhdG9ycz17dHJhY2tCeTpbe3R5cGU6eHl9XSxkYXRhU291cmNlOlt7dHlwZTp4eX1dLG11bHRpVGVtcGxhdGVEYXRhUm93czpbe3R5cGU6eHl9XSxmaXhlZExheW91dDpbe3R5cGU6eHl9XSxjb250ZW50Q2hhbmdlZDpbe3R5cGU6T3l9XSxfcm93T3V0bGV0Olt7dHlwZTpaYSxhcmdzOltYJCx7c3RhdGljOiEwfV19XSxfaGVhZGVyUm93T3V0bGV0Olt7dHlwZTpaYSxhcmdzOltLJCx7c3RhdGljOiEwfV19XSxfZm9vdGVyUm93T3V0bGV0Olt7dHlwZTpaYSxhcmdzOltKJCx7c3RhdGljOiEwfV19XSxfbm9EYXRhUm93T3V0bGV0Olt7dHlwZTpaYSxhcmdzOltRJCx7c3RhdGljOiEwfV19XSxfY29udGVudENvbHVtbkRlZnM6W3t0eXBlOllhLGFyZ3M6W08kLHtkZXNjZW5kYW50czohMH1dfV0sX2NvbnRlbnRSb3dEZWZzOlt7dHlwZTpZYSxhcmdzOltGJCx7ZGVzY2VuZGFudHM6ITB9XX1dLF9jb250ZW50SGVhZGVyUm93RGVmczpbe3R5cGU6WWEsYXJnczpbeiQse2Rlc2NlbmRhbnRzOiEwfV19XSxfY29udGVudEZvb3RlclJvd0RlZnM6W3t0eXBlOllhLGFyZ3M6W0gkLHtkZXNjZW5kYW50czohMH1dfV0sX25vRGF0YVJvdzpbe3R5cGU6cWEsYXJnczpbVSRdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodDAsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiY2RrLXRhYmxlLCB0YWJsZVtjZGstdGFibGVdIixleHBvcnRBczoiY2RrVGFibGUiLHRlbXBsYXRlOiQkLGhvc3Q6e2NsYXNzOiJjZGstdGFibGUiLCJbY2xhc3MuY2RrLXRhYmxlLWZpeGVkLWxheW91dF0iOiJmaXhlZExheW91dCJ9LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxwcm92aWRlcnM6W3twcm92aWRlOnkkLHVzZUV4aXN0aW5nOnQwfSx7cHJvdmlkZTphRix1c2VDbGFzczplRn0se3Byb3ZpZGU6RSQsdXNlQ2xhc3M6UiR9LHtwcm92aWRlOnEkLHVzZVZhbHVlOm51bGx9XSxzdHlsZXM6WyIuY2RrLXRhYmxlLWZpeGVkLWxheW91dHt0YWJsZS1sYXlvdXQ6Zml4ZWR9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkhnfSx7dHlwZTpVZ30se3R5cGU6aGd9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpqYSxhcmdzOlsicm9sZSJdfV19LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6d3p9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlthRl19XX0se3R5cGU6UiQsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbRSRdfV19LHt0eXBlOnVGfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkVyfSx7dHlwZTprcixhcmdzOltxJF19XX1dfSkse2NvbnRlbnRDaGFuZ2VkOlt7dHlwZTpPeX1dLHRyYWNrQnk6W3t0eXBlOnh5fV0sZGF0YVNvdXJjZTpbe3R5cGU6eHl9XSxtdWx0aVRlbXBsYXRlRGF0YVJvd3M6W3t0eXBlOnh5fV0sZml4ZWRMYXlvdXQ6W3t0eXBlOnh5fV0sX3Jvd091dGxldDpbe3R5cGU6WmEsYXJnczpbWCQse3N0YXRpYzohMH1dfV0sX2hlYWRlclJvd091dGxldDpbe3R5cGU6WmEsYXJnczpbSyQse3N0YXRpYzohMH1dfV0sX2Zvb3RlclJvd091dGxldDpbe3R5cGU6WmEsYXJnczpbSiQse3N0YXRpYzohMH1dfV0sX25vRGF0YVJvd091dGxldDpbe3R5cGU6WmEsYXJnczpbUSQse3N0YXRpYzohMH1dfV0sX2NvbnRlbnRDb2x1bW5EZWZzOlt7dHlwZTpZYSxhcmdzOltPJCx7ZGVzY2VuZGFudHM6ITB9XX1dLF9jb250ZW50Um93RGVmczpbe3R5cGU6WWEsYXJnczpbRiQse2Rlc2NlbmRhbnRzOiEwfV19XSxfY29udGVudEhlYWRlclJvd0RlZnM6W3t0eXBlOllhLGFyZ3M6W3okLHtkZXNjZW5kYW50czohMH1dfV0sX2NvbnRlbnRGb290ZXJSb3dEZWZzOlt7dHlwZTpZYSxhcmdzOltIJCx7ZGVzY2VuZGFudHM6ITB9XX1dLF9ub0RhdGFSb3c6W3t0eXBlOnFhLGFyZ3M6W1UkXX1dfSk7Y2xhc3MgbjB7Y29uc3RydWN0b3IodCxlKXt0aGlzLl90YWJsZT10LHRoaXMuX29wdGlvbnM9ZSx0aGlzLmp1c3RpZnk9InN0YXJ0Iix0aGlzLl9vcHRpb25zPWV8fHt9fWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuX25hbWV9c2V0IG5hbWUodCl7dGhpcy5fbmFtZT10LHRoaXMuX3N5bmNDb2x1bW5EZWZOYW1lKCl9bmdPbkluaXQoKXtpZih0aGlzLl9zeW5jQ29sdW1uRGVmTmFtZSgpLHZvaWQgMD09PXRoaXMuaGVhZGVyVGV4dCYmKHRoaXMuaGVhZGVyVGV4dD10aGlzLl9jcmVhdGVEZWZhdWx0SGVhZGVyVGV4dCgpKSx0aGlzLmRhdGFBY2Nlc3Nvcnx8KHRoaXMuZGF0YUFjY2Vzc29yPXRoaXMuX29wdGlvbnMuZGVmYXVsdERhdGFBY2Nlc3Nvcnx8KCh0LGUpPT50W2VdKSksdGhpcy5fdGFibGUpdGhpcy5jb2x1bW5EZWYuY2VsbD10aGlzLmNlbGwsdGhpcy5jb2x1bW5EZWYuaGVhZGVyQ2VsbD10aGlzLmhlYWRlckNlbGwsdGhpcy5fdGFibGUuYWRkQ29sdW1uRGVmKHRoaXMuY29sdW1uRGVmKTtlbHNlIGlmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpdGhyb3coZnVuY3Rpb24gdCgpe3JldHVybiBFcnJvcigiVGV4dCBjb2x1bW4gY291bGQgbm90IGZpbmQgYSBwYXJlbnQgdGFibGUgZm9yIHJlZ2lzdHJhdGlvbi4iKX0pKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl90YWJsZSYmdGhpcy5fdGFibGUucmVtb3ZlQ29sdW1uRGVmKHRoaXMuY29sdW1uRGVmKX1fY3JlYXRlRGVmYXVsdEhlYWRlclRleHQoKXtjb25zdCB0PXRoaXMubmFtZTtpZighdCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIGUoKXtyZXR1cm4gRXJyb3IoIlRhYmxlIHRleHQgY29sdW1uIG11c3QgaGF2ZSBhIG5hbWUuIil9KSgpO3JldHVybiB0aGlzLl9vcHRpb25zJiZ0aGlzLl9vcHRpb25zLmRlZmF1bHRIZWFkZXJUZXh0VHJhbnNmb3JtP3RoaXMuX29wdGlvbnMuZGVmYXVsdEhlYWRlclRleHRUcmFuc2Zvcm0odCk6dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSl9X3N5bmNDb2x1bW5EZWZOYW1lKCl7dGhpcy5jb2x1bW5EZWYmJih0aGlzLmNvbHVtbkRlZi5uYW1lPXRoaXMubmFtZSl9fW4wLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxuMCkoU20odDAsOCksU20oXyQsOCkpfSxuMC7JtWNtcD10byh7dHlwZTpuMCxzZWxlY3RvcnM6W1siY2RrLXRleHQtY29sdW1uIl1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUWgoTyQsNyksUWgoQyQsNyksUWgoTSQsNykpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uY29sdW1uRGVmPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLmNlbGw9dC5maXJzdCksSmgodD10YigpKSYmKG4uaGVhZGVyQ2VsbD10LmZpcnN0KX19LGlucHV0czp7anVzdGlmeToianVzdGlmeSIsbmFtZToibmFtZSIsaGVhZGVyVGV4dDoiaGVhZGVyVGV4dCIsZGF0YUFjY2Vzc29yOiJkYXRhQWNjZXNzb3IifSxkZWNsczozLHZhcnM6MCxjb25zdHM6W1siY2RrQ29sdW1uRGVmIiwiIl0sWyJjZGstaGVhZGVyLWNlbGwiLCIiLDMsInRleHQtYWxpZ24iLDQsImNka0hlYWRlckNlbGxEZWYiXSxbImNkay1jZWxsIiwiIiwzLCJ0ZXh0LWFsaWduIiw0LCJjZGtDZWxsRGVmIl0sWyJjZGstaGVhZGVyLWNlbGwiLCIiXSxbImNkay1jZWxsIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihObSgwLDApLFFwKDEsZyQsMiwzLCJ0aCIsMSksUXAoMixoJCwyLDMsInRkIiwyKSx6bSgpKX0sZGlyZWN0aXZlczpbTyQsTSQsQyQsdyQsUyRdLGVuY2Fwc3VsYXRpb246Mn0pLG4wLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltfJF19XX1dLG4wLnByb3BEZWNvcmF0b3JzPXtuYW1lOlt7dHlwZTp4eX1dLGhlYWRlclRleHQ6W3t0eXBlOnh5fV0sZGF0YUFjY2Vzc29yOlt7dHlwZTp4eX1dLGp1c3RpZnk6W3t0eXBlOnh5fV0sY29sdW1uRGVmOlt7dHlwZTpaYSxhcmdzOltPJCx7c3RhdGljOiEwfV19XSxjZWxsOlt7dHlwZTpaYSxhcmdzOltDJCx7c3RhdGljOiEwfV19XSxoZWFkZXJDZWxsOlt7dHlwZTpaYSxhcmdzOltNJCx7c3RhdGljOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChuMCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJjZGstdGV4dC1jb2x1bW4iLHRlbXBsYXRlOidcbiAgICA8bmctY29udGFpbmVyIGNka0NvbHVtbkRlZj5cbiAgICAgIDx0aCBjZGstaGVhZGVyLWNlbGwgKmNka0hlYWRlckNlbGxEZWYgW3N0eWxlLnRleHQtYWxpZ25dPSJqdXN0aWZ5Ij5cbiAgICAgICAge3toZWFkZXJUZXh0fX1cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgY2RrLWNlbGwgKmNka0NlbGxEZWY9ImxldCBkYXRhIiBbc3R5bGUudGV4dC1hbGlnbl09Imp1c3RpZnkiPlxuICAgICAgICB7e2RhdGFBY2Nlc3NvcihkYXRhLCBuYW1lKX19XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAnLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnQwLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbXyRdfV19XX0pLHtqdXN0aWZ5Olt7dHlwZTp4eX1dLG5hbWU6W3t0eXBlOnh5fV0saGVhZGVyVGV4dDpbe3R5cGU6eHl9XSxkYXRhQWNjZXNzb3I6W3t0eXBlOnh5fV0sY29sdW1uRGVmOlt7dHlwZTpaYSxhcmdzOltPJCx7c3RhdGljOiEwfV19XSxjZWxsOlt7dHlwZTpaYSxhcmdzOltDJCx7c3RhdGljOiEwfV19XSxoZWFkZXJDZWxsOlt7dHlwZTpaYSxhcmdzOltNJCx7c3RhdGljOiEwfV19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgbzA9W3QwLEYkLEMkLEwkLE0kLHYkLE8kLFMkLGokLHckLGskLEIkLHokLFYkLEgkLFgkLEskLEokLG4wLFUkLFokLFEkXTtjbGFzcyBpMHt9aTAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGkwKX0saTAuybVtb2Q9YW8oe3R5cGU6aTB9KSxpMC7JtWluaj12bih7aW1wb3J0czpbW19GXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGkwLFt7dHlwZTpBeSxhcmdzOlt7ZXhwb3J0czpvMCxkZWNsYXJhdGlvbnM6bzAsaW1wb3J0czpbX0ZdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oaTAse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVyblt0MCxGJCxDJCxMJCxNJCx2JCxPJCxTJCxqJCx3JCxrJCxCJCx6JCxWJCxIJCxYJCxLJCxKJCxuMCxVJCxaJCxRJF19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bX0ZdfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3QwLEYkLEMkLEwkLE0kLHYkLE8kLFMkLGokLHckLGskLEIkLHokLFYkLEgkLFgkLEskLEokLG4wLFUkLFokLFEkXX19KTtjb25zdCBhMD1bW1siY2FwdGlvbiJdXSxbWyJjb2xncm91cCJdLFsiY29sIl1dXTtmdW5jdGlvbiByMCh0LGUpe2lmKDEmdCYmKFJtKDAsInRoIiwzKSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtkdSgidGV4dC1hbGlnbiIsdC5qdXN0aWZ5KSxyYygxKSxEdSgiICIsdC5oZWFkZXJUZXh0LCIgIil9fWZ1bmN0aW9uIHMwKHQsZSl7aWYoMSZ0JiYoUm0oMCwidGQiLDQpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPVltKCk7ZHUoInRleHQtYWxpZ24iLG4uanVzdGlmeSkscmMoMSksRHUoIiAiLG4uZGF0YUFjY2Vzc29yKHQsbi5uYW1lKSwiICIpfX1jbGFzcyBsMHt9bDAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGwwKX0sbDAuybVkaXI9bG8oe3R5cGU6bDAsc2VsZWN0b3JzOltbIm1hdC10YWJsZSIsInJlY3ljbGVSb3dzIiwiIl0sWyJ0YWJsZSIsIm1hdC10YWJsZSIsIiIsInJlY3ljbGVSb3dzIiwiIl1dLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6YUYsdXNlQ2xhc3M6bkZ9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsMCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJtYXQtdGFibGVbcmVjeWNsZVJvd3NdLCB0YWJsZVttYXQtdGFibGVdW3JlY3ljbGVSb3dzXSIscHJvdmlkZXJzOlt7cHJvdmlkZTphRix1c2VDbGFzczpuRn1dfV19XSxudWxsLG51bGwpO2NsYXNzIGMwIGV4dGVuZHMgdDB7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc3RpY2t5Q3NzQ2xhc3M9Im1hdC10YWJsZS1zdGlja3kiLHRoaXMubmVlZHNQb3NpdGlvblN0aWNreU9uRWxlbWVudD0hMX19YzAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKGMwKSkpKG58fGMwKX19KSgpLGMwLsm1Y21wPXRvKHt0eXBlOmMwLHNlbGVjdG9yczpbWyJtYXQtdGFibGUiXSxbInRhYmxlIiwibWF0LXRhYmxlIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LXRhYmxlIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoIm1hdC10YWJsZS1maXhlZC1sYXlvdXQiLG4uZml4ZWRMYXlvdXQpfSxleHBvcnRBczpbIm1hdFRhYmxlIl0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTphRix1c2VDbGFzczplRn0se3Byb3ZpZGU6dDAsdXNlRXhpc3Rpbmc6YzB9LHtwcm92aWRlOnkkLHVzZUV4aXN0aW5nOmMwfSx7cHJvdmlkZTpFJCx1c2VDbGFzczpSJH0se3Byb3ZpZGU6cSQsdXNlVmFsdWU6bnVsbH1dKSx4cF0sbmdDb250ZW50U2VsZWN0b3JzOlsiY2FwdGlvbiIsImNvbGdyb3VwLCBjb2wiXSxkZWNsczo2LHZhcnM6MCxjb25zdHM6W1siaGVhZGVyUm93T3V0bGV0IiwiIl0sWyJyb3dPdXRsZXQiLCIiXSxbIm5vRGF0YVJvd091dGxldCIsIiJdLFsiZm9vdGVyUm93T3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabShhMCksWG0oMCksWG0oMSwxKSxJbSgyLDApLEltKDMsMSksSW0oNCwyKSxJbSg1LDMpKX0sZGlyZWN0aXZlczpbSyQsWCQsUSQsSiRdLHN0eWxlczpbJ21hdC10YWJsZXtkaXNwbGF5OmJsb2NrfW1hdC1oZWFkZXItcm93e21pbi1oZWlnaHQ6NTZweH1tYXQtcm93LG1hdC1mb290ZXItcm93e21pbi1oZWlnaHQ6NDhweH1tYXQtcm93LG1hdC1oZWFkZXItcm93LG1hdC1mb290ZXItcm93e2Rpc3BsYXk6ZmxleDtib3JkZXItd2lkdGg6MDtib3JkZXItYm90dG9tLXdpZHRoOjFweDtib3JkZXItc3R5bGU6c29saWQ7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveH1tYXQtcm93OjphZnRlcixtYXQtaGVhZGVyLXJvdzo6YWZ0ZXIsbWF0LWZvb3Rlci1yb3c6OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi1oZWlnaHQ6aW5oZXJpdDtjb250ZW50OiIifW1hdC1jZWxsOmZpcnN0LW9mLXR5cGUsbWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGUsbWF0LWZvb3Rlci1jZWxsOmZpcnN0LW9mLXR5cGV7cGFkZGluZy1sZWZ0OjI0cHh9W2Rpcj1ydGxdIG1hdC1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIG1hdC1mb290ZXItY2VsbDpmaXJzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjI0cHh9bWF0LWNlbGw6bGFzdC1vZi10eXBlLG1hdC1oZWFkZXItY2VsbDpsYXN0LW9mLXR5cGUsbWF0LWZvb3Rlci1jZWxsOmxhc3Qtb2YtdHlwZXtwYWRkaW5nLXJpZ2h0OjI0cHh9W2Rpcj1ydGxdIG1hdC1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIG1hdC1oZWFkZXItY2VsbDpsYXN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtZm9vdGVyLWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKXtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjI0cHh9bWF0LWNlbGwsbWF0LWhlYWRlci1jZWxsLG1hdC1mb290ZXItY2VsbHtmbGV4OjE7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47d29yZC13cmFwOmJyZWFrLXdvcmQ7bWluLWhlaWdodDppbmhlcml0fXRhYmxlLm1hdC10YWJsZXtib3JkZXItc3BhY2luZzowfXRyLm1hdC1oZWFkZXItcm93e2hlaWdodDo1NnB4fXRyLm1hdC1yb3csdHIubWF0LWZvb3Rlci1yb3d7aGVpZ2h0OjQ4cHh9dGgubWF0LWhlYWRlci1jZWxse3RleHQtYWxpZ246bGVmdH1bZGlyPXJ0bF0gdGgubWF0LWhlYWRlci1jZWxse3RleHQtYWxpZ246cmlnaHR9dGgubWF0LWhlYWRlci1jZWxsLHRkLm1hdC1jZWxsLHRkLm1hdC1mb290ZXItY2VsbHtwYWRkaW5nOjA7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZH10aC5tYXQtaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZSx0ZC5tYXQtY2VsbDpmaXJzdC1vZi10eXBlLHRkLm1hdC1mb290ZXItY2VsbDpmaXJzdC1vZi10eXBle3BhZGRpbmctbGVmdDoyNHB4fVtkaXI9cnRsXSB0aC5tYXQtaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIHRkLm1hdC1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSB0ZC5tYXQtZm9vdGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDoyNHB4fXRoLm1hdC1oZWFkZXItY2VsbDpsYXN0LW9mLXR5cGUsdGQubWF0LWNlbGw6bGFzdC1vZi10eXBlLHRkLm1hdC1mb290ZXItY2VsbDpsYXN0LW9mLXR5cGV7cGFkZGluZy1yaWdodDoyNHB4fVtkaXI9cnRsXSB0aC5tYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gdGQubWF0LWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gdGQubWF0LWZvb3Rlci1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDoyNHB4fS5tYXQtdGFibGUtc3RpY2t5e3Bvc2l0aW9uOi13ZWJraXQtc3RpY2t5ICFpbXBvcnRhbnQ7cG9zaXRpb246c3RpY2t5ICFpbXBvcnRhbnR9Lm1hdC10YWJsZS1maXhlZC1sYXlvdXR7dGFibGUtbGF5b3V0OmZpeGVkfVxuJ10sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChjMCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtdGFibGUsIHRhYmxlW21hdC10YWJsZV0iLGV4cG9ydEFzOiJtYXRUYWJsZSIsdGVtcGxhdGU6JCQsaG9zdDp7Y2xhc3M6Im1hdC10YWJsZSIsIltjbGFzcy5tYXQtdGFibGUtZml4ZWQtbGF5b3V0XSI6ImZpeGVkTGF5b3V0In0scHJvdmlkZXJzOlt7cHJvdmlkZTphRix1c2VDbGFzczplRn0se3Byb3ZpZGU6dDAsdXNlRXhpc3Rpbmc6YzB9LHtwcm92aWRlOnkkLHVzZUV4aXN0aW5nOmMwfSx7cHJvdmlkZTpFJCx1c2VDbGFzczpSJH0se3Byb3ZpZGU6cSQsdXNlVmFsdWU6bnVsbH1dLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxzdHlsZXM6WydtYXQtdGFibGV7ZGlzcGxheTpibG9ja31tYXQtaGVhZGVyLXJvd3ttaW4taGVpZ2h0OjU2cHh9bWF0LXJvdyxtYXQtZm9vdGVyLXJvd3ttaW4taGVpZ2h0OjQ4cHh9bWF0LXJvdyxtYXQtaGVhZGVyLXJvdyxtYXQtZm9vdGVyLXJvd3tkaXNwbGF5OmZsZXg7Ym9yZGVyLXdpZHRoOjA7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3h9bWF0LXJvdzo6YWZ0ZXIsbWF0LWhlYWRlci1yb3c6OmFmdGVyLG1hdC1mb290ZXItcm93OjphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jazttaW4taGVpZ2h0OmluaGVyaXQ7Y29udGVudDoiIn1tYXQtY2VsbDpmaXJzdC1vZi10eXBlLG1hdC1oZWFkZXItY2VsbDpmaXJzdC1vZi10eXBlLG1hdC1mb290ZXItY2VsbDpmaXJzdC1vZi10eXBle3BhZGRpbmctbGVmdDoyNHB4fVtkaXI9cnRsXSBtYXQtY2VsbDpmaXJzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gbWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtZm9vdGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDoyNHB4fW1hdC1jZWxsOmxhc3Qtb2YtdHlwZSxtYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlLG1hdC1mb290ZXItY2VsbDpsYXN0LW9mLXR5cGV7cGFkZGluZy1yaWdodDoyNHB4fVtkaXI9cnRsXSBtYXQtY2VsbDpsYXN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gbWF0LWZvb3Rlci1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDoyNHB4fW1hdC1jZWxsLG1hdC1oZWFkZXItY2VsbCxtYXQtZm9vdGVyLWNlbGx7ZmxleDoxO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3dvcmQtd3JhcDpicmVhay13b3JkO21pbi1oZWlnaHQ6aW5oZXJpdH10YWJsZS5tYXQtdGFibGV7Ym9yZGVyLXNwYWNpbmc6MH10ci5tYXQtaGVhZGVyLXJvd3toZWlnaHQ6NTZweH10ci5tYXQtcm93LHRyLm1hdC1mb290ZXItcm93e2hlaWdodDo0OHB4fXRoLm1hdC1oZWFkZXItY2VsbHt0ZXh0LWFsaWduOmxlZnR9W2Rpcj1ydGxdIHRoLm1hdC1oZWFkZXItY2VsbHt0ZXh0LWFsaWduOnJpZ2h0fXRoLm1hdC1oZWFkZXItY2VsbCx0ZC5tYXQtY2VsbCx0ZC5tYXQtZm9vdGVyLWNlbGx7cGFkZGluZzowO2JvcmRlci1ib3R0b20td2lkdGg6MXB4O2JvcmRlci1ib3R0b20tc3R5bGU6c29saWR9dGgubWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGUsdGQubWF0LWNlbGw6Zmlyc3Qtb2YtdHlwZSx0ZC5tYXQtZm9vdGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZXtwYWRkaW5nLWxlZnQ6MjRweH1bZGlyPXJ0bF0gdGgubWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSB0ZC5tYXQtY2VsbDpmaXJzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gdGQubWF0LWZvb3Rlci1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpe3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MjRweH10aC5tYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlLHRkLm1hdC1jZWxsOmxhc3Qtb2YtdHlwZSx0ZC5tYXQtZm9vdGVyLWNlbGw6bGFzdC1vZi10eXBle3BhZGRpbmctcmlnaHQ6MjRweH1bZGlyPXJ0bF0gdGgubWF0LWhlYWRlci1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIHRkLm1hdC1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIHRkLm1hdC1mb290ZXItY2VsbDpsYXN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpe3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MjRweH0ubWF0LXRhYmxlLXN0aWNreXtwb3NpdGlvbjotd2Via2l0LXN0aWNreSAhaW1wb3J0YW50O3Bvc2l0aW9uOnN0aWNreSAhaW1wb3J0YW50fS5tYXQtdGFibGUtZml4ZWQtbGF5b3V0e3RhYmxlLWxheW91dDpmaXhlZH1cbiddfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgZDAgZXh0ZW5kcyBDJHt9ZDAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKGQwKSkpKG58fGQwKX19KSgpLGQwLsm1ZGlyPWxvKHt0eXBlOmQwLHNlbGVjdG9yczpbWyIiLCJtYXRDZWxsRGVmIiwiIl1dLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6QyQsdXNlRXhpc3Rpbmc6ZDB9XSkseHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkMCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0Q2VsbERlZl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6QyQsdXNlRXhpc3Rpbmc6ZDB9XX1dfV0sbnVsbCxudWxsKTtjbGFzcyBwMCBleHRlbmRzIE0ke31wMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEocDApKSkobnx8cDApfX0pKCkscDAuybVkaXI9bG8oe3R5cGU6cDAsc2VsZWN0b3JzOltbIiIsIm1hdEhlYWRlckNlbGxEZWYiLCIiXV0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpNJCx1c2VFeGlzdGluZzpwMH1dKSx4cF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHAwLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXRIZWFkZXJDZWxsRGVmXSIscHJvdmlkZXJzOlt7cHJvdmlkZTpNJCx1c2VFeGlzdGluZzpwMH1dfV19XSxudWxsLG51bGwpO2NsYXNzIG0wIGV4dGVuZHMgdiR7fW0wLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShtMCkpKShufHxtMCl9fSkoKSxtMC7JtWRpcj1sbyh7dHlwZTptMCxzZWxlY3RvcnM6W1siIiwibWF0Rm9vdGVyQ2VsbERlZiIsIiJdXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOnYkLHVzZUV4aXN0aW5nOm0wfV0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobTAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdEZvb3RlckNlbGxEZWZdIixwcm92aWRlcnM6W3twcm92aWRlOnYkLHVzZUV4aXN0aW5nOm0wfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgdTAgZXh0ZW5kcyBPJHtnZXQgbmFtZSgpe3JldHVybiB0aGlzLl9uYW1lfXNldCBuYW1lKHQpe3RoaXMuX3NldE5hbWVJbnB1dCh0KX1fdXBkYXRlQ29sdW1uQ3NzQ2xhc3NOYW1lKCl7c3VwZXIuX3VwZGF0ZUNvbHVtbkNzc0NsYXNzTmFtZSgpLHRoaXMuX2NvbHVtbkNzc0NsYXNzTmFtZS5wdXNoKGBtYXQtY29sdW1uLSR7dGhpcy5jc3NDbGFzc0ZyaWVuZGx5TmFtZX1gKX19dTAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKHUwKSkpKG58fHUwKX19KSgpLHUwLsm1ZGlyPWxvKHt0eXBlOnUwLHNlbGVjdG9yczpbWyIiLCJtYXRDb2x1bW5EZWYiLCIiXV0saW5wdXRzOntzdGlja3k6InN0aWNreSIsbmFtZTpbIm1hdENvbHVtbkRlZiIsIm5hbWUiXX0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpPJCx1c2VFeGlzdGluZzp1MH0se3Byb3ZpZGU6Ik1BVF9TT1JUX0hFQURFUl9DT0xVTU5fREVGIix1c2VFeGlzdGluZzp1MH1dKSx4cF19KSx1MC5wcm9wRGVjb3JhdG9ycz17bmFtZTpbe3R5cGU6eHksYXJnczpbIm1hdENvbHVtbkRlZiJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodTAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdENvbHVtbkRlZl0iLGlucHV0czpbInN0aWNreSJdLHByb3ZpZGVyczpbe3Byb3ZpZGU6TyQsdXNlRXhpc3Rpbmc6dTB9LHtwcm92aWRlOiJNQVRfU09SVF9IRUFERVJfQ09MVU1OX0RFRiIsdXNlRXhpc3Rpbmc6dTB9XX1dfV0sbnVsbCx7bmFtZTpbe3R5cGU6eHksYXJnczpbIm1hdENvbHVtbkRlZiJdfV19KTtjbGFzcyBmMCBleHRlbmRzIHcke31mMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoZjApKSkobnx8ZjApfX0pKCksZjAuybVkaXI9bG8oe3R5cGU6ZjAsc2VsZWN0b3JzOltbIm1hdC1oZWFkZXItY2VsbCJdLFsidGgiLCJtYXQtaGVhZGVyLWNlbGwiLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsImNvbHVtbmhlYWRlciIsMSwibWF0LWhlYWRlci1jZWxsIl0sZmVhdHVyZXM6W3hwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZjAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWhlYWRlci1jZWxsLCB0aFttYXQtaGVhZGVyLWNlbGxdIixob3N0OntjbGFzczoibWF0LWhlYWRlci1jZWxsIixyb2xlOiJjb2x1bW5oZWFkZXIifX1dfV0sbnVsbCxudWxsKTtjbGFzcyBnMCBleHRlbmRzIGske31nMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoZzApKSkobnx8ZzApfX0pKCksZzAuybVkaXI9bG8oe3R5cGU6ZzAsc2VsZWN0b3JzOltbIm1hdC1mb290ZXItY2VsbCJdLFsidGQiLCJtYXQtZm9vdGVyLWNlbGwiLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsImdyaWRjZWxsIiwxLCJtYXQtZm9vdGVyLWNlbGwiXSxmZWF0dXJlczpbeHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnMCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJtYXQtZm9vdGVyLWNlbGwsIHRkW21hdC1mb290ZXItY2VsbF0iLGhvc3Q6e2NsYXNzOiJtYXQtZm9vdGVyLWNlbGwiLHJvbGU6ImdyaWRjZWxsIn19XX1dLG51bGwsbnVsbCk7Y2xhc3MgaDAgZXh0ZW5kcyBTJHt9aDAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKGgwKSkpKG58fGgwKX19KSgpLGgwLsm1ZGlyPWxvKHt0eXBlOmgwLHNlbGVjdG9yczpbWyJtYXQtY2VsbCJdLFsidGQiLCJtYXQtY2VsbCIsIiJdXSxob3N0QXR0cnM6WyJyb2xlIiwiZ3JpZGNlbGwiLDEsIm1hdC1jZWxsIl0sZmVhdHVyZXM6W3hwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoaDAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWNlbGwsIHRkW21hdC1jZWxsXSIsaG9zdDp7Y2xhc3M6Im1hdC1jZWxsIixyb2xlOiJncmlkY2VsbCJ9fV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgYjAgZXh0ZW5kcyB6JHt9YjAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKGIwKSkpKG58fGIwKX19KSgpLGIwLsm1ZGlyPWxvKHt0eXBlOmIwLHNlbGVjdG9yczpbWyIiLCJtYXRIZWFkZXJSb3dEZWYiLCIiXV0saW5wdXRzOntjb2x1bW5zOlsibWF0SGVhZGVyUm93RGVmIiwiY29sdW1ucyJdLHN0aWNreTpbIm1hdEhlYWRlclJvd0RlZlN0aWNreSIsInN0aWNreSJdfSxmZWF0dXJlczpbcGcoW3twcm92aWRlOnokLHVzZUV4aXN0aW5nOmIwfV0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYjAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdEhlYWRlclJvd0RlZl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6eiQsdXNlRXhpc3Rpbmc6YjB9XSxpbnB1dHM6WyJjb2x1bW5zOiBtYXRIZWFkZXJSb3dEZWYiLCJzdGlja3k6IG1hdEhlYWRlclJvd0RlZlN0aWNreSJdfV19XSxudWxsLG51bGwpO2NsYXNzIHkwIGV4dGVuZHMgSCR7fXkwLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYSh5MCkpKShufHx5MCl9fSkoKSx5MC7JtWRpcj1sbyh7dHlwZTp5MCxzZWxlY3RvcnM6W1siIiwibWF0Rm9vdGVyUm93RGVmIiwiIl1dLGlucHV0czp7Y29sdW1uczpbIm1hdEZvb3RlclJvd0RlZiIsImNvbHVtbnMiXSxzdGlja3k6WyJtYXRGb290ZXJSb3dEZWZTdGlja3kiLCJzdGlja3kiXX0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpIJCx1c2VFeGlzdGluZzp5MH1dKSx4cF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHkwLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXRGb290ZXJSb3dEZWZdIixwcm92aWRlcnM6W3twcm92aWRlOkgkLHVzZUV4aXN0aW5nOnkwfV0saW5wdXRzOlsiY29sdW1uczogbWF0Rm9vdGVyUm93RGVmIiwic3RpY2t5OiBtYXRGb290ZXJSb3dEZWZTdGlja3kiXX1dfV0sbnVsbCxudWxsKTtjbGFzcyBfMCBleHRlbmRzIEYke31fMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoXzApKSkobnx8XzApfX0pKCksXzAuybVkaXI9bG8oe3R5cGU6XzAsc2VsZWN0b3JzOltbIiIsIm1hdFJvd0RlZiIsIiJdXSxpbnB1dHM6e2NvbHVtbnM6WyJtYXRSb3dEZWZDb2x1bW5zIiwiY29sdW1ucyJdLHdoZW46WyJtYXRSb3dEZWZXaGVuIiwid2hlbiJdfSxmZWF0dXJlczpbcGcoW3twcm92aWRlOkYkLHVzZUV4aXN0aW5nOl8wfV0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoXzAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdFJvd0RlZl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6RiQsdXNlRXhpc3Rpbmc6XzB9XSxpbnB1dHM6WyJjb2x1bW5zOiBtYXRSb3dEZWZDb2x1bW5zIiwid2hlbjogbWF0Um93RGVmV2hlbiJdfV19XSxudWxsLG51bGwpO2NsYXNzIEMwIGV4dGVuZHMgQiR7fUMwLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShDMCkpKShufHxDMCl9fSkoKSxDMC7JtWNtcD10byh7dHlwZTpDMCxzZWxlY3RvcnM6W1sibWF0LWhlYWRlci1yb3ciXSxbInRyIiwibWF0LWhlYWRlci1yb3ciLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsInJvdyIsMSwibWF0LWhlYWRlci1yb3ciXSxleHBvcnRBczpbIm1hdEhlYWRlclJvdyJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6QiQsdXNlRXhpc3Rpbmc6QzB9XSkseHBdLGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJjZGtDZWxsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJkltKDAsMCl9LGRpcmVjdGl2ZXM6W0wkXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEMwLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1oZWFkZXItcm93LCB0clttYXQtaGVhZGVyLXJvd10iLHRlbXBsYXRlOkEkLGhvc3Q6e2NsYXNzOiJtYXQtaGVhZGVyLXJvdyIscm9sZToicm93In0sY2hhbmdlRGV0ZWN0aW9uOnpuLkRlZmF1bHQsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGV4cG9ydEFzOiJtYXRIZWFkZXJSb3ciLHByb3ZpZGVyczpbe3Byb3ZpZGU6QiQsdXNlRXhpc3Rpbmc6QzB9XX1dfV0sbnVsbCxudWxsKTtjbGFzcyBNMCBleHRlbmRzIFYke31NMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoTTApKSkobnx8TTApfX0pKCksTTAuybVjbXA9dG8oe3R5cGU6TTAsc2VsZWN0b3JzOltbIm1hdC1mb290ZXItcm93Il0sWyJ0ciIsIm1hdC1mb290ZXItcm93IiwiIl1dLGhvc3RBdHRyczpbInJvbGUiLCJyb3ciLDEsIm1hdC1mb290ZXItcm93Il0sZXhwb3J0QXM6WyJtYXRGb290ZXJSb3ciXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOlYkLHVzZUV4aXN0aW5nOk0wfV0pLHhwXSxkZWNsczoxLHZhcnM6MCxjb25zdHM6W1siY2RrQ2VsbE91dGxldCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZJbSgwLDApfSxkaXJlY3RpdmVzOltMJF0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChNMCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtZm9vdGVyLXJvdywgdHJbbWF0LWZvb3Rlci1yb3ddIix0ZW1wbGF0ZTpBJCxob3N0OntjbGFzczoibWF0LWZvb3Rlci1yb3ciLHJvbGU6InJvdyJ9LGNoYW5nZURldGVjdGlvbjp6bi5EZWZhdWx0LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxleHBvcnRBczoibWF0Rm9vdGVyUm93Iixwcm92aWRlcnM6W3twcm92aWRlOlYkLHVzZUV4aXN0aW5nOk0wfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgdjAgZXh0ZW5kcyBqJHt9djAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKHYwKSkpKG58fHYwKX19KSgpLHYwLsm1Y21wPXRvKHt0eXBlOnYwLHNlbGVjdG9yczpbWyJtYXQtcm93Il0sWyJ0ciIsIm1hdC1yb3ciLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsInJvdyIsMSwibWF0LXJvdyJdLGV4cG9ydEFzOlsibWF0Um93Il0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpqJCx1c2VFeGlzdGluZzp2MH1dKSx4cF0sZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbImNka0NlbGxPdXRsZXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmSW0oMCwwKX0sZGlyZWN0aXZlczpbTCRdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodjAsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXJvdywgdHJbbWF0LXJvd10iLHRlbXBsYXRlOkEkLGhvc3Q6e2NsYXNzOiJtYXQtcm93Iixyb2xlOiJyb3cifSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsZXhwb3J0QXM6Im1hdFJvdyIscHJvdmlkZXJzOlt7cHJvdmlkZTpqJCx1c2VFeGlzdGluZzp2MH1dfV19XSxudWxsLG51bGwpO2NsYXNzIHgwIGV4dGVuZHMgVSR7fXgwLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYSh4MCkpKShufHx4MCl9fSkoKSx4MC7JtWRpcj1sbyh7dHlwZTp4MCxzZWxlY3RvcnM6W1sibmctdGVtcGxhdGUiLCJtYXROb0RhdGFSb3ciLCIiXV0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpVJCx1c2VFeGlzdGluZzp4MH1dKSx4cF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHgwLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im5nLXRlbXBsYXRlW21hdE5vRGF0YVJvd10iLHByb3ZpZGVyczpbe3Byb3ZpZGU6VSQsdXNlRXhpc3Rpbmc6eDB9XX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIE8wIGV4dGVuZHMgbjB7fU8wLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShPMCkpKShufHxPMCl9fSkoKSxPMC7JtWNtcD10byh7dHlwZTpPMCxzZWxlY3RvcnM6W1sibWF0LXRleHQtY29sdW1uIl1dLGZlYXR1cmVzOlt4cF0sZGVjbHM6Myx2YXJzOjAsY29uc3RzOltbIm1hdENvbHVtbkRlZiIsIiJdLFsibWF0LWhlYWRlci1jZWxsIiwiIiwzLCJ0ZXh0LWFsaWduIiw0LCJtYXRIZWFkZXJDZWxsRGVmIl0sWyJtYXQtY2VsbCIsIiIsMywidGV4dC1hbGlnbiIsNCwibWF0Q2VsbERlZiJdLFsibWF0LWhlYWRlci1jZWxsIiwiIl0sWyJtYXQtY2VsbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoTm0oMCwwKSxRcCgxLHIwLDIsMywidGgiLDEpLFFwKDIsczAsMiwzLCJ0ZCIsMiksem0oKSl9LGRpcmVjdGl2ZXM6W3UwLHAwLGQwLGYwLGgwXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE8wLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC10ZXh0LWNvbHVtbiIsdGVtcGxhdGU6J1xuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBbc3R5bGUudGV4dC1hbGlnbl09Imp1c3RpZnkiPlxuICAgICAgICB7e2hlYWRlclRleHR9fVxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj0ibGV0IGRhdGEiIFtzdHlsZS50ZXh0LWFsaWduXT0ianVzdGlmeSI+XG4gICAgICAgIHt7ZGF0YUFjY2Vzc29yKGRhdGEsIG5hbWUpfX1cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICcsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGNoYW5nZURldGVjdGlvbjp6bi5EZWZhdWx0fV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgUDA9W2MwLGwwLHAwLGIwLHUwLGQwLF8wLG0wLHkwLGYwLGgwLGcwLEMwLHYwLE0wLHgwLE8wXTtjbGFzcyB3MHt9dzAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHcwKX0sdzAuybVtb2Q9YW8oe3R5cGU6dzB9KSx3MC7JtWluaj12bih7aW1wb3J0czpbW2kwLFhJXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHcwLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbaTAsWEldLGV4cG9ydHM6W1hJLFAwXSxkZWNsYXJhdGlvbnM6UDB9XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyh3MCx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2MwLGwwLHAwLGIwLHUwLGQwLF8wLG0wLHkwLGYwLGgwLGcwLEMwLHYwLE0wLHgwLE8wXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltpMCxYSV19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bWEksYzAsbDAscDAsYjAsdTAsZDAsXzAsbTAseTAsZjAsaDAsZzAsQzAsdjAsTTAseDAsTzBdfX0pO2NsYXNzIGswIGV4dGVuZHMgUUh7Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoKSx0aGlzLl9yZW5kZXJEYXRhPW5ldyBGKFtdKSx0aGlzLl9maWx0ZXI9bmV3IEYoIiIpLHRoaXMuX2ludGVybmFsUGFnZUNoYW5nZXM9bmV3IEksdGhpcy5fcmVuZGVyQ2hhbmdlc1N1YnNjcmlwdGlvbj1udWxsLHRoaXMuc29ydGluZ0RhdGFBY2Nlc3Nvcj0odCxlKT0+e2NvbnN0IG49dFtlXTtpZihDeihuKSl7Y29uc3QgdD1OdW1iZXIobik7cmV0dXJuIHQ8OTAwNzE5OTI1NDc0MDk5MT90Om59cmV0dXJuIG59LHRoaXMuc29ydERhdGE9KHQsZSk9Pntjb25zdCBuPWUuYWN0aXZlLG89ZS5kaXJlY3Rpb247cmV0dXJuIG4mJiIiIT1vP3Quc29ydCgoKHQsZSk9PntsZXQgaT10aGlzLnNvcnRpbmdEYXRhQWNjZXNzb3IodCxuKSxhPXRoaXMuc29ydGluZ0RhdGFBY2Nlc3NvcihlLG4pO2NvbnN0IHI9dHlwZW9mIGkscz10eXBlb2YgYTtyIT09cyYmKCJudW1iZXIiPT09ciYmKGkrPSIiKSwibnVtYmVyIj09PXMmJihhKz0iIikpO2xldCBsPTA7cmV0dXJuIG51bGwhPWkmJm51bGwhPWE/aT5hP2w9MTppPGEmJihsPS0xKTpudWxsIT1pP2w9MTpudWxsIT1hJiYobD0tMSksbCooImFzYyI9PW8/MTotMSl9KSk6dH0sdGhpcy5maWx0ZXJQcmVkaWNhdGU9KHQsZSk9Pntjb25zdCBuPU9iamVjdC5rZXlzKHQpLnJlZHVjZSgoKGUsbik9PmUrdFtuXSsi4pesIiksIiIpLnRvTG93ZXJDYXNlKCksbz1lLnRyaW0oKS50b0xvd2VyQ2FzZSgpO3JldHVybi0xIT1uLmluZGV4T2Yobyl9LHRoaXMuX2RhdGE9bmV3IEYodCksdGhpcy5fdXBkYXRlQ2hhbmdlU3Vic2NyaXB0aW9uKCl9Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy5fZGF0YS52YWx1ZX1zZXQgZGF0YSh0KXt0aGlzLl9kYXRhLm5leHQodCksdGhpcy5fcmVuZGVyQ2hhbmdlc1N1YnNjcmlwdGlvbnx8dGhpcy5fZmlsdGVyRGF0YSh0KX1nZXQgZmlsdGVyKCl7cmV0dXJuIHRoaXMuX2ZpbHRlci52YWx1ZX1zZXQgZmlsdGVyKHQpe3RoaXMuX2ZpbHRlci5uZXh0KHQpLHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb258fHRoaXMuX2ZpbHRlckRhdGEodGhpcy5kYXRhKX1nZXQgc29ydCgpe3JldHVybiB0aGlzLl9zb3J0fXNldCBzb3J0KHQpe3RoaXMuX3NvcnQ9dCx0aGlzLl91cGRhdGVDaGFuZ2VTdWJzY3JpcHRpb24oKX1nZXQgcGFnaW5hdG9yKCl7cmV0dXJuIHRoaXMuX3BhZ2luYXRvcn1zZXQgcGFnaW5hdG9yKHQpe3RoaXMuX3BhZ2luYXRvcj10LHRoaXMuX3VwZGF0ZUNoYW5nZVN1YnNjcmlwdGlvbigpfV91cGRhdGVDaGFuZ2VTdWJzY3JpcHRpb24oKXt2YXIgdDtjb25zdCBlPXRoaXMuX3NvcnQ/cmUodGhpcy5fc29ydC5zb3J0Q2hhbmdlLHRoaXMuX3NvcnQuaW5pdGlhbGl6ZWQpOkV0KG51bGwpLG49dGhpcy5fcGFnaW5hdG9yP3JlKHRoaXMuX3BhZ2luYXRvci5wYWdlLHRoaXMuX2ludGVybmFsUGFnZUNoYW5nZXMsdGhpcy5fcGFnaW5hdG9yLmluaXRpYWxpemVkKTpFdChudWxsKSxvPVd0KFt0aGlzLl9kYXRhLHRoaXMuX2ZpbHRlcl0pLnBpcGUoSXQoKChbdF0pPT50aGlzLl9maWx0ZXJEYXRhKHQpKSkpLGk9V3QoW28sZV0pLnBpcGUoSXQoKChbdF0pPT50aGlzLl9vcmRlckRhdGEodCkpKSksYT1XdChbaSxuXSkucGlwZShJdCgoKFt0XSk9PnRoaXMuX3BhZ2VEYXRhKHQpKSkpO251bGw9PT0odD10aGlzLl9yZW5kZXJDaGFuZ2VzU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dHx8dC51bnN1YnNjcmliZSgpLHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb249YS5zdWJzY3JpYmUoKHQ9PnRoaXMuX3JlbmRlckRhdGEubmV4dCh0KSkpfV9maWx0ZXJEYXRhKHQpe3JldHVybiB0aGlzLmZpbHRlcmVkRGF0YT1udWxsPT10aGlzLmZpbHRlcnx8IiI9PT10aGlzLmZpbHRlcj90OnQuZmlsdGVyKCh0PT50aGlzLmZpbHRlclByZWRpY2F0ZSh0LHRoaXMuZmlsdGVyKSkpLHRoaXMucGFnaW5hdG9yJiZ0aGlzLl91cGRhdGVQYWdpbmF0b3IodGhpcy5maWx0ZXJlZERhdGEubGVuZ3RoKSx0aGlzLmZpbHRlcmVkRGF0YX1fb3JkZXJEYXRhKHQpe3JldHVybiB0aGlzLnNvcnQ/dGhpcy5zb3J0RGF0YSh0LnNsaWNlKCksdGhpcy5zb3J0KTp0fV9wYWdlRGF0YSh0KXtpZighdGhpcy5wYWdpbmF0b3IpcmV0dXJuIHQ7Y29uc3QgZT10aGlzLnBhZ2luYXRvci5wYWdlSW5kZXgqdGhpcy5wYWdpbmF0b3IucGFnZVNpemU7cmV0dXJuIHQuc2xpY2UoZSxlK3RoaXMucGFnaW5hdG9yLnBhZ2VTaXplKX1fdXBkYXRlUGFnaW5hdG9yKHQpe1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57Y29uc3QgZT10aGlzLnBhZ2luYXRvcjtpZihlJiYoZS5sZW5ndGg9dCxlLnBhZ2VJbmRleD4wKSl7Y29uc3QgdD1NYXRoLmNlaWwoZS5sZW5ndGgvZS5wYWdlU2l6ZSktMXx8MCxuPU1hdGgubWluKGUucGFnZUluZGV4LHQpO24hPT1lLnBhZ2VJbmRleCYmKGUucGFnZUluZGV4PW4sdGhpcy5faW50ZXJuYWxQYWdlQ2hhbmdlcy5uZXh0KCkpfX0pKX1jb25uZWN0KCl7cmV0dXJuIHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb258fHRoaXMuX3VwZGF0ZUNoYW5nZVN1YnNjcmlwdGlvbigpLHRoaXMuX3JlbmRlckRhdGF9ZGlzY29ubmVjdCgpe3ZhciB0O251bGw9PT0odD10aGlzLl9yZW5kZXJDaGFuZ2VzU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dHx8dC51bnN1YnNjcmliZSgpLHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb249bnVsbH19Y2xhc3MgUzAgZXh0ZW5kcyBrMHt9Y29uc3QgRDA9WyJwYW5lbCJdO2Z1bmN0aW9uIEUwKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwwLDEpLFhtKDIpLEFtKCkpLDImdCl7Y29uc3QgdD1lLmlkLG49WW0oKTtEbSgiaWQiLG4uaWQpKCJuZ0NsYXNzIixuLl9jbGFzc0xpc3QpLGpwKCJhcmlhLWxhYmVsIixuLmFyaWFMYWJlbHx8bnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbi5fZ2V0UGFuZWxBcmlhTGFiZWxsZWRieSh0KSl9fWxldCBSMD0wO2NsYXNzIEEwe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zb3VyY2U9dCx0aGlzLm9wdGlvbj1lfX1jb25zdCBUMD1RSShjbGFzc3t9KSxOMD1uZXcgR2EoIm1hdC1hdXRvY29tcGxldGUtZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiB6MCgpe3JldHVybnthdXRvQWN0aXZlRmlyc3RPcHRpb246ITF9fX0pO2NsYXNzIEkwIGV4dGVuZHMgVDB7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj10LHRoaXMuX2VsZW1lbnRSZWY9ZSx0aGlzLl9hY3RpdmVPcHRpb25DaGFuZ2VzPW0uRU1QVFksdGhpcy5zaG93UGFuZWw9ITEsdGhpcy5faXNPcGVuPSExLHRoaXMuZGlzcGxheVdpdGg9bnVsbCx0aGlzLm9wdGlvblNlbGVjdGVkPW5ldyBMaCx0aGlzLm9wZW5lZD1uZXcgTGgsdGhpcy5jbG9zZWQ9bmV3IExoLHRoaXMub3B0aW9uQWN0aXZhdGVkPW5ldyBMaCx0aGlzLl9jbGFzc0xpc3Q9e30sdGhpcy5pZD0ibWF0LWF1dG9jb21wbGV0ZS0iK1IwKyssdGhpcy5pbmVydEdyb3Vwcz0obnVsbD09bz92b2lkIDA6by5TQUZBUkkpfHwhMSx0aGlzLl9hdXRvQWN0aXZlRmlyc3RPcHRpb249ISFuLmF1dG9BY3RpdmVGaXJzdE9wdGlvbn1nZXQgaXNPcGVuKCl7cmV0dXJuIHRoaXMuX2lzT3BlbiYmdGhpcy5zaG93UGFuZWx9Z2V0IGF1dG9BY3RpdmVGaXJzdE9wdGlvbigpe3JldHVybiB0aGlzLl9hdXRvQWN0aXZlRmlyc3RPcHRpb259c2V0IGF1dG9BY3RpdmVGaXJzdE9wdGlvbih0KXt0aGlzLl9hdXRvQWN0aXZlRmlyc3RPcHRpb249eXoodCl9c2V0IGNsYXNzTGlzdCh0KXt0aGlzLl9jbGFzc0xpc3Q9dCYmdC5sZW5ndGg/KGZ1bmN0aW9uIGUodCxuPS9ccysvKXtjb25zdCBvPVtdO2lmKG51bGwhPXQpe2NvbnN0IGU9QXJyYXkuaXNBcnJheSh0KT90OmAke3R9YC5zcGxpdChuKTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPWAke3R9YC50cmltKCk7ZSYmby5wdXNoKGUpfX1yZXR1cm4gb30pKHQpLnJlZHVjZSgoKHQsZSk9Pih0W2VdPSEwLHQpKSx7fSk6e30sdGhpcy5fc2V0VmlzaWJpbGl0eUNsYXNzZXModGhpcy5fY2xhc3NMaXN0KSx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lPSIifW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2tleU1hbmFnZXI9bmV3IHRJKHRoaXMub3B0aW9ucykud2l0aFdyYXAoKSx0aGlzLl9hY3RpdmVPcHRpb25DaGFuZ2VzPXRoaXMuX2tleU1hbmFnZXIuY2hhbmdlLnN1YnNjcmliZSgodD0+e3RoaXMub3B0aW9uQWN0aXZhdGVkLmVtaXQoe3NvdXJjZTp0aGlzLG9wdGlvbjp0aGlzLm9wdGlvbnMudG9BcnJheSgpW3RdfHxudWxsfSl9KSksdGhpcy5fc2V0VmlzaWJpbGl0eSgpfW5nT25EZXN0cm95KCl7dGhpcy5fYWN0aXZlT3B0aW9uQ2hhbmdlcy51bnN1YnNjcmliZSgpfV9zZXRTY3JvbGxUb3AodCl7dGhpcy5wYW5lbCYmKHRoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A9dCl9X2dldFNjcm9sbFRvcCgpe3JldHVybiB0aGlzLnBhbmVsP3RoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A6MH1fc2V0VmlzaWJpbGl0eSgpe3RoaXMuc2hvd1BhbmVsPSEhdGhpcy5vcHRpb25zLmxlbmd0aCx0aGlzLl9zZXRWaXNpYmlsaXR5Q2xhc3Nlcyh0aGlzLl9jbGFzc0xpc3QpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfV9lbWl0U2VsZWN0RXZlbnQodCl7Y29uc3QgZT1uZXcgQTAodGhpcyx0KTt0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoZSl9X2dldFBhbmVsQXJpYUxhYmVsbGVkYnkodCl7cmV0dXJuIHRoaXMuYXJpYUxhYmVsP251bGw6dGhpcy5hcmlhTGFiZWxsZWRieT8odD90KyIgIjoiIikrdGhpcy5hcmlhTGFiZWxsZWRieTp0fV9zZXRWaXNpYmlsaXR5Q2xhc3Nlcyh0KXt0W3RoaXMuX3Zpc2libGVDbGFzc109dGhpcy5zaG93UGFuZWwsdFt0aGlzLl9oaWRkZW5DbGFzc109IXRoaXMuc2hvd1BhbmVsfX1JMC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8STApKFNtKFVnKSxTbShoZyksU20oTjApLFNtKHd6KSl9LEkwLsm1ZGlyPWxvKHt0eXBlOkkwLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUWgoWGcsNyksUWgoRDAsNSkpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4udGVtcGxhdGU9dC5maXJzdCksSmgodD10YigpKSYmKG4ucGFuZWw9dC5maXJzdCl9fSxpbnB1dHM6e2Rpc3BsYXlXaXRoOiJkaXNwbGF5V2l0aCIsYXV0b0FjdGl2ZUZpcnN0T3B0aW9uOiJhdXRvQWN0aXZlRmlyc3RPcHRpb24iLGNsYXNzTGlzdDpbImNsYXNzIiwiY2xhc3NMaXN0Il0sYXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLGFyaWFMYWJlbGxlZGJ5OlsiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYUxhYmVsbGVkYnkiXSxwYW5lbFdpZHRoOiJwYW5lbFdpZHRoIn0sb3V0cHV0czp7b3B0aW9uU2VsZWN0ZWQ6Im9wdGlvblNlbGVjdGVkIixvcGVuZWQ6Im9wZW5lZCIsY2xvc2VkOiJjbG9zZWQiLG9wdGlvbkFjdGl2YXRlZDoib3B0aW9uQWN0aXZhdGVkIn0sZmVhdHVyZXM6W3hwXX0pLEkwLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6VWd9LHt0eXBlOmhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbTjBdfV19LHt0eXBlOnd6fV0sSTAucHJvcERlY29yYXRvcnM9e3RlbXBsYXRlOlt7dHlwZTpaYSxhcmdzOltYZyx7c3RhdGljOiEwfV19XSxwYW5lbDpbe3R5cGU6WmEsYXJnczpbInBhbmVsIl19XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0sZGlzcGxheVdpdGg6W3t0eXBlOnh5fV0sYXV0b0FjdGl2ZUZpcnN0T3B0aW9uOlt7dHlwZTp4eX1dLHBhbmVsV2lkdGg6W3t0eXBlOnh5fV0sb3B0aW9uU2VsZWN0ZWQ6W3t0eXBlOk95fV0sb3BlbmVkOlt7dHlwZTpPeX1dLGNsb3NlZDpbe3R5cGU6T3l9XSxvcHRpb25BY3RpdmF0ZWQ6W3t0eXBlOk95fV0sY2xhc3NMaXN0Olt7dHlwZTp4eSxhcmdzOlsiY2xhc3MiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEkwLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpVZ30se3R5cGU6aGd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltOMF19XX0se3R5cGU6d3p9XX0pLHtkaXNwbGF5V2l0aDpbe3R5cGU6eHl9XSxvcHRpb25TZWxlY3RlZDpbe3R5cGU6T3l9XSxvcGVuZWQ6W3t0eXBlOk95fV0sY2xvc2VkOlt7dHlwZTpPeX1dLG9wdGlvbkFjdGl2YXRlZDpbe3R5cGU6T3l9XSxhdXRvQWN0aXZlRmlyc3RPcHRpb246W3t0eXBlOnh5fV0sY2xhc3NMaXN0Olt7dHlwZTp4eSxhcmdzOlsiY2xhc3MiXX1dLHRlbXBsYXRlOlt7dHlwZTpaYSxhcmdzOltYZyx7c3RhdGljOiEwfV19XSxwYW5lbDpbe3R5cGU6WmEsYXJnczpbInBhbmVsIl19XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0scGFuZWxXaWR0aDpbe3R5cGU6eHl9XX0pO2NsYXNzIEgwIGV4dGVuZHMgSTB7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3Zpc2libGVDbGFzcz0ibWF0LWF1dG9jb21wbGV0ZS12aXNpYmxlIix0aGlzLl9oaWRkZW5DbGFzcz0ibWF0LWF1dG9jb21wbGV0ZS1oaWRkZW4ifX1IMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoSDApKSkobnx8SDApfX0pKCksSDAuybVjbXA9dG8oe3R5cGU6SDAsc2VsZWN0b3JzOltbIm1hdC1hdXRvY29tcGxldGUiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYoJGgobyx6SCw1KSwkaChvLEJILDUpKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLm9wdGlvbkdyb3Vwcz10KSxKaCh0PXRiKCkpJiYobi5vcHRpb25zPXQpfX0saG9zdEF0dHJzOlsxLCJtYXQtYXV0b2NvbXBsZXRlIl0saW5wdXRzOntkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIn0sZXhwb3J0QXM6WyJtYXRBdXRvY29tcGxldGUiXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOlJILHVzZUV4aXN0aW5nOkgwfV0pLHhwXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIl0sZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbInJvbGUiLCJsaXN0Ym94IiwxLCJtYXQtYXV0b2NvbXBsZXRlLXBhbmVsIiwzLCJpZCIsIm5nQ2xhc3MiXSxbInBhbmVsIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFFwKDAsRTAsMyw0LCJuZy10ZW1wbGF0ZSIpKX0sZGlyZWN0aXZlczpbYU1dLHN0eWxlczpbIi5tYXQtYXV0b2NvbXBsZXRlLXBhbmVse21pbi13aWR0aDoxMTJweDttYXgtd2lkdGg6MjgwcHg7b3ZlcmZsb3c6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDt2aXNpYmlsaXR5OmhpZGRlbjttYXgtd2lkdGg6bm9uZTttYXgtaGVpZ2h0OjI1NnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4fS5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsLm1hdC1hdXRvY29tcGxldGUtdmlzaWJsZXt2aXNpYmlsaXR5OnZpc2libGV9Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwubWF0LWF1dG9jb21wbGV0ZS1oaWRkZW57dmlzaWJpbGl0eTpoaWRkZW59Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwtYWJvdmUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWx7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6NHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweH0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LWRpdmlkZXItaG9yaXpvbnRhbHttYXJnaW4tdG9wOi0xcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbHtvdXRsaW5lOnNvbGlkIDFweH1tYXQtYXV0b2NvbXBsZXRle2Rpc3BsYXk6bm9uZX1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLEgwLnByb3BEZWNvcmF0b3JzPXtvcHRpb25Hcm91cHM6W3t0eXBlOllhLGFyZ3M6W3pILHtkZXNjZW5kYW50czohMH1dfV0sb3B0aW9uczpbe3R5cGU6WWEsYXJnczpbQkgse2Rlc2NlbmRhbnRzOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChIMCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtYXV0b2NvbXBsZXRlIix0ZW1wbGF0ZTonPG5nLXRlbXBsYXRlIGxldC1mb3JtRmllbGRJZD0iaWQiPlxuICA8ZGl2IGNsYXNzPSJtYXQtYXV0b2NvbXBsZXRlLXBhbmVsIlxuICAgICAgIHJvbGU9Imxpc3Rib3giXG4gICAgICAgW2lkXT0iaWQiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbF09ImFyaWFMYWJlbCB8fCBudWxsIlxuICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09Il9nZXRQYW5lbEFyaWFMYWJlbGxlZGJ5KGZvcm1GaWVsZElkKSJcbiAgICAgICBbbmdDbGFzc109Il9jbGFzc0xpc3QiXG4gICAgICAgI3BhbmVsPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuJyxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxleHBvcnRBczoibWF0QXV0b2NvbXBsZXRlIixpbnB1dHM6WyJkaXNhYmxlUmlwcGxlIl0saG9zdDp7Y2xhc3M6Im1hdC1hdXRvY29tcGxldGUifSxwcm92aWRlcnM6W3twcm92aWRlOlJILHVzZUV4aXN0aW5nOkgwfV0sc3R5bGVzOlsiLm1hdC1hdXRvY29tcGxldGUtcGFuZWx7bWluLXdpZHRoOjExMnB4O21heC13aWR0aDoyODBweDtvdmVyZmxvdzphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO3Zpc2liaWxpdHk6aGlkZGVuO21heC13aWR0aDpub25lO21heC1oZWlnaHQ6MjU2cHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo0cHh9Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwubWF0LWF1dG9jb21wbGV0ZS12aXNpYmxle3Zpc2liaWxpdHk6dmlzaWJsZX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbC5tYXQtYXV0b2NvbXBsZXRlLWhpZGRlbnt2aXNpYmlsaXR5OmhpZGRlbn0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbC1hYm92ZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NHB4fS5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtZGl2aWRlci1ob3Jpem9udGFse21hcmdpbi10b3A6LTFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVse291dGxpbmU6c29saWQgMXB4fW1hdC1hdXRvY29tcGxldGV7ZGlzcGxheTpub25lfVxuIl19XX1dLG51bGwse29wdGlvbkdyb3Vwczpbe3R5cGU6WWEsYXJnczpbekgse2Rlc2NlbmRhbnRzOiEwfV19XSxvcHRpb25zOlt7dHlwZTpZYSxhcmdzOltCSCx7ZGVzY2VuZGFudHM6ITB9XX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBGMHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmVsZW1lbnRSZWY9dH19RjAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEYwKShTbShoZykpfSxGMC7JtWRpcj1sbyh7dHlwZTpGMH0pLEYwLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEYwLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ31dfSksbnVsbCk7Y2xhc3MgTDAgZXh0ZW5kcyBGMHt9TDAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKEwwKSkpKG58fEwwKX19KSgpLEwwLsm1ZGlyPWxvKHt0eXBlOkwwLHNlbGVjdG9yczpbWyIiLCJtYXRBdXRvY29tcGxldGVPcmlnaW4iLCIiXV0sZXhwb3J0QXM6WyJtYXRBdXRvY29tcGxldGVPcmlnaW4iXSxmZWF0dXJlczpbeHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMMCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0QXV0b2NvbXBsZXRlT3JpZ2luXSIsZXhwb3J0QXM6Im1hdEF1dG9jb21wbGV0ZU9yaWdpbiJ9XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBCMD1uZXcgR2EoIm1hdC1hdXRvY29tcGxldGUtc2Nyb2xsLXN0cmF0ZWd5IiksVjA9e3Byb3ZpZGU6QjAsZGVwczpbcExdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gajAodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCl9fSxVMD17cHJvdmlkZTpJVix1c2VFeGlzdGluZzpxZSgoKCk9PlcwKSksbXVsdGk6ITB9O2NsYXNzIEcwe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMsZCl7dGhpcy5fZWxlbWVudD10LHRoaXMuX292ZXJsYXk9ZSx0aGlzLl92aWV3Q29udGFpbmVyUmVmPW4sdGhpcy5fem9uZT1vLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWksdGhpcy5fZGlyPXIsdGhpcy5fZm9ybUZpZWxkPXMsdGhpcy5fZG9jdW1lbnQ9bCx0aGlzLl92aWV3cG9ydFJ1bGVyPWMsdGhpcy5fZGVmYXVsdHM9ZCx0aGlzLl9jb21wb25lbnREZXN0cm95ZWQ9ITEsdGhpcy5fYXV0b2NvbXBsZXRlRGlzYWJsZWQ9ITEsdGhpcy5fbWFudWFsbHlGbG9hdGluZ0xhYmVsPSExLHRoaXMuX3ZpZXdwb3J0U3Vic2NyaXB0aW9uPW0uRU1QVFksdGhpcy5fY2FuT3Blbk9uTmV4dEZvY3VzPSEwLHRoaXMuX2Nsb3NlS2V5RXZlbnRTdHJlYW09bmV3IEksdGhpcy5fd2luZG93Qmx1ckhhbmRsZXI9KCk9Pnt0aGlzLl9jYW5PcGVuT25OZXh0Rm9jdXM9dGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudHx8dGhpcy5wYW5lbE9wZW59LHRoaXMuX29uQ2hhbmdlPSgpPT57fSx0aGlzLl9vblRvdWNoZWQ9KCk9Pnt9LHRoaXMucG9zaXRpb249ImF1dG8iLHRoaXMuYXV0b2NvbXBsZXRlQXR0cmlidXRlPSJvZmYiLHRoaXMuX292ZXJsYXlBdHRhY2hlZD0hMSx0aGlzLm9wdGlvblNlbGVjdGlvbnM9UXQoKCgpPT50aGlzLmF1dG9jb21wbGV0ZSYmdGhpcy5hdXRvY29tcGxldGUub3B0aW9ucz9yZSguLi50aGlzLmF1dG9jb21wbGV0ZS5vcHRpb25zLm1hcCgodD0+dC5vblNlbGVjdGlvbkNoYW5nZSkpKTp0aGlzLl96b25lLm9uU3RhYmxlLnBpcGUoYmUoMSksemUoKCgpPT50aGlzLm9wdGlvblNlbGVjdGlvbnMpKSkpKSx0aGlzLl9zY3JvbGxTdHJhdGVneT1hfWdldCBhdXRvY29tcGxldGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLl9hdXRvY29tcGxldGVEaXNhYmxlZH1zZXQgYXV0b2NvbXBsZXRlRGlzYWJsZWQodCl7dGhpcy5fYXV0b2NvbXBsZXRlRGlzYWJsZWQ9eXoodCl9bmdBZnRlclZpZXdJbml0KCl7Y29uc3QgdD10aGlzLl9nZXRXaW5kb3coKTt2b2lkIDAhPT10JiZ0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+dC5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl93aW5kb3dCbHVySGFuZGxlcikpKX1uZ09uQ2hhbmdlcyh0KXt0LnBvc2l0aW9uJiZ0aGlzLl9wb3NpdGlvblN0cmF0ZWd5JiYodGhpcy5fc2V0U3RyYXRlZ3lQb3NpdGlvbnModGhpcy5fcG9zaXRpb25TdHJhdGVneSksdGhpcy5wYW5lbE9wZW4mJnRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSl9bmdPbkRlc3Ryb3koKXtjb25zdCB0PXRoaXMuX2dldFdpbmRvdygpO3ZvaWQgMCE9PXQmJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5fd2luZG93Qmx1ckhhbmRsZXIpLHRoaXMuX3ZpZXdwb3J0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fY29tcG9uZW50RGVzdHJveWVkPSEwLHRoaXMuX2Rlc3Ryb3lQYW5lbCgpLHRoaXMuX2Nsb3NlS2V5RXZlbnRTdHJlYW0uY29tcGxldGUoKX1nZXQgcGFuZWxPcGVuKCl7cmV0dXJuIHRoaXMuX292ZXJsYXlBdHRhY2hlZCYmdGhpcy5hdXRvY29tcGxldGUuc2hvd1BhbmVsfW9wZW5QYW5lbCgpe3RoaXMuX2F0dGFjaE92ZXJsYXkoKSx0aGlzLl9mbG9hdExhYmVsKCl9Y2xvc2VQYW5lbCgpe3RoaXMuX3Jlc2V0TGFiZWwoKSx0aGlzLl9vdmVybGF5QXR0YWNoZWQmJih0aGlzLnBhbmVsT3BlbiYmdGhpcy5hdXRvY29tcGxldGUuY2xvc2VkLmVtaXQoKSx0aGlzLmF1dG9jb21wbGV0ZS5faXNPcGVuPXRoaXMuX292ZXJsYXlBdHRhY2hlZD0hMSx0aGlzLl9vdmVybGF5UmVmJiZ0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkmJih0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpLHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpLHRoaXMuX2NvbXBvbmVudERlc3Ryb3llZHx8dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpKX11cGRhdGVQb3NpdGlvbigpe3RoaXMuX292ZXJsYXlBdHRhY2hlZCYmdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpfWdldCBwYW5lbENsb3NpbmdBY3Rpb25zKCl7cmV0dXJuIHJlKHRoaXMub3B0aW9uU2VsZWN0aW9ucyx0aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlci50YWJPdXQucGlwZShjZSgoKCk9PnRoaXMuX292ZXJsYXlBdHRhY2hlZCkpKSx0aGlzLl9jbG9zZUtleUV2ZW50U3RyZWFtLHRoaXMuX2dldE91dHNpZGVDbGlja1N0cmVhbSgpLHRoaXMuX292ZXJsYXlSZWY/dGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpLnBpcGUoY2UoKCgpPT50aGlzLl9vdmVybGF5QXR0YWNoZWQpKSk6RXQoKSkucGlwZShJdCgodD0+dCBpbnN0YW5jZW9mIEZIP3Q6bnVsbCkpKX1nZXQgYWN0aXZlT3B0aW9uKCl7cmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlJiZ0aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlcj90aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlci5hY3RpdmVJdGVtOm51bGx9X2dldE91dHNpZGVDbGlja1N0cmVhbSgpe3JldHVybiByZShvZSh0aGlzLl9kb2N1bWVudCwiY2xpY2siKSxvZSh0aGlzLl9kb2N1bWVudCwiYXV4Y2xpY2siKSxvZSh0aGlzLl9kb2N1bWVudCwidG91Y2hlbmQiKSkucGlwZShjZSgodD0+e2NvbnN0IGU9THoodCksbj10aGlzLl9mb3JtRmllbGQ/dGhpcy5fZm9ybUZpZWxkLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ6bnVsbCxvPXRoaXMuY29ubmVjdGVkVG8/dGhpcy5jb25uZWN0ZWRUby5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ6bnVsbDtyZXR1cm4gdGhpcy5fb3ZlcmxheUF0dGFjaGVkJiZlIT09dGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50JiYoIW58fCFuLmNvbnRhaW5zKGUpKSYmKCFvfHwhby5jb250YWlucyhlKSkmJiEhdGhpcy5fb3ZlcmxheVJlZiYmIXRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuY29udGFpbnMoZSl9KSkpfXdyaXRlVmFsdWUodCl7UHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oKCgpPT50aGlzLl9zZXRUcmlnZ2VyVmFsdWUodCkpKX1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9cmVnaXN0ZXJPblRvdWNoZWQodCl7dGhpcy5fb25Ub3VjaGVkPXR9c2V0RGlzYWJsZWRTdGF0ZSh0KXt0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQ9dH1faGFuZGxlS2V5ZG93bih0KXtjb25zdCBlPXQua2V5Q29kZTtpZihlIT09dXp8fGJ6KHQpfHx0LnByZXZlbnREZWZhdWx0KCksdGhpcy5hY3RpdmVPcHRpb24mJmU9PT1teiYmdGhpcy5wYW5lbE9wZW4pdGhpcy5hY3RpdmVPcHRpb24uX3NlbGVjdFZpYUludGVyYWN0aW9uKCksdGhpcy5fcmVzZXRBY3RpdmVJdGVtKCksdC5wcmV2ZW50RGVmYXVsdCgpO2Vsc2UgaWYodGhpcy5hdXRvY29tcGxldGUpe2NvbnN0IG49dGhpcy5hdXRvY29tcGxldGUuX2tleU1hbmFnZXIuYWN0aXZlSXRlbSxvPWU9PT1nenx8ZT09PWh6O3RoaXMucGFuZWxPcGVufHw5PT09ZT90aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlci5vbktleWRvd24odCk6byYmdGhpcy5fY2FuT3BlbigpJiZ0aGlzLm9wZW5QYW5lbCgpLChvfHx0aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlci5hY3RpdmVJdGVtIT09bikmJnRoaXMuX3Njcm9sbFRvT3B0aW9uKHRoaXMuYXV0b2NvbXBsZXRlLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleHx8MCl9fV9oYW5kbGVJbnB1dCh0KXtsZXQgZT10LnRhcmdldCxuPWUudmFsdWU7Im51bWJlciI9PT1lLnR5cGUmJihuPSIiPT1uP251bGw6cGFyc2VGbG9hdChuKSksdGhpcy5fcHJldmlvdXNWYWx1ZSE9PW4mJih0aGlzLl9wcmV2aW91c1ZhbHVlPW4sdGhpcy5fb25DaGFuZ2UobiksdGhpcy5fY2FuT3BlbigpJiZ0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dC50YXJnZXQmJnRoaXMub3BlblBhbmVsKCkpfV9oYW5kbGVGb2N1cygpe3RoaXMuX2Nhbk9wZW5Pbk5leHRGb2N1cz90aGlzLl9jYW5PcGVuKCkmJih0aGlzLl9wcmV2aW91c1ZhbHVlPXRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSx0aGlzLl9hdHRhY2hPdmVybGF5KCksdGhpcy5fZmxvYXRMYWJlbCghMCkpOnRoaXMuX2Nhbk9wZW5Pbk5leHRGb2N1cz0hMH1fZmxvYXRMYWJlbCh0PSExKXt0aGlzLl9mb3JtRmllbGQmJiJhdXRvIj09PXRoaXMuX2Zvcm1GaWVsZC5mbG9hdExhYmVsJiYodD90aGlzLl9mb3JtRmllbGQuX2FuaW1hdGVBbmRMb2NrTGFiZWwoKTp0aGlzLl9mb3JtRmllbGQuZmxvYXRMYWJlbD0iYWx3YXlzIix0aGlzLl9tYW51YWxseUZsb2F0aW5nTGFiZWw9ITApfV9yZXNldExhYmVsKCl7dGhpcy5fbWFudWFsbHlGbG9hdGluZ0xhYmVsJiYodGhpcy5fZm9ybUZpZWxkLmZsb2F0TGFiZWw9ImF1dG8iLHRoaXMuX21hbnVhbGx5RmxvYXRpbmdMYWJlbD0hMSl9X3N1YnNjcmliZVRvQ2xvc2luZ0FjdGlvbnMoKXtyZXR1cm4gcmUodGhpcy5fem9uZS5vblN0YWJsZS5waXBlKGJlKDEpKSx0aGlzLmF1dG9jb21wbGV0ZS5vcHRpb25zLmNoYW5nZXMucGlwZShGZSgoKCk9PnRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kucmVhcHBseUxhc3RQb3NpdGlvbigpKSksQ2UoMCkpKS5waXBlKHplKCgoKT0+e2NvbnN0IHQ9dGhpcy5wYW5lbE9wZW47cmV0dXJuIHRoaXMuX3Jlc2V0QWN0aXZlSXRlbSgpLHRoaXMuYXV0b2NvbXBsZXRlLl9zZXRWaXNpYmlsaXR5KCksdGhpcy5wYW5lbE9wZW4mJih0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCksdCE9PXRoaXMucGFuZWxPcGVuJiZ0aGlzLmF1dG9jb21wbGV0ZS5vcGVuZWQuZW1pdCgpKSx0aGlzLnBhbmVsQ2xvc2luZ0FjdGlvbnN9KSksYmUoMSkpLnN1YnNjcmliZSgodD0+dGhpcy5fc2V0VmFsdWVBbmRDbG9zZSh0KSkpfV9kZXN0cm95UGFuZWwoKXt0aGlzLl9vdmVybGF5UmVmJiYodGhpcy5jbG9zZVBhbmVsKCksdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCksdGhpcy5fb3ZlcmxheVJlZj1udWxsKX1fc2V0VHJpZ2dlclZhbHVlKHQpe2NvbnN0IGU9dGhpcy5hdXRvY29tcGxldGUmJnRoaXMuYXV0b2NvbXBsZXRlLmRpc3BsYXlXaXRoP3RoaXMuYXV0b2NvbXBsZXRlLmRpc3BsYXlXaXRoKHQpOnQsbj1udWxsIT1lP2U6IiI7dGhpcy5fZm9ybUZpZWxkP3RoaXMuX2Zvcm1GaWVsZC5fY29udHJvbC52YWx1ZT1uOnRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZT1uLHRoaXMuX3ByZXZpb3VzVmFsdWU9bn1fc2V0VmFsdWVBbmRDbG9zZSh0KXt0JiZ0LnNvdXJjZSYmKHRoaXMuX2NsZWFyUHJldmlvdXNTZWxlY3RlZE9wdGlvbih0LnNvdXJjZSksdGhpcy5fc2V0VHJpZ2dlclZhbHVlKHQuc291cmNlLnZhbHVlKSx0aGlzLl9vbkNoYW5nZSh0LnNvdXJjZS52YWx1ZSksdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCksdGhpcy5hdXRvY29tcGxldGUuX2VtaXRTZWxlY3RFdmVudCh0LnNvdXJjZSkpLHRoaXMuY2xvc2VQYW5lbCgpfV9jbGVhclByZXZpb3VzU2VsZWN0ZWRPcHRpb24odCl7dGhpcy5hdXRvY29tcGxldGUub3B0aW9ucy5mb3JFYWNoKChlPT57ZSE9PXQmJmUuc2VsZWN0ZWQmJmUuZGVzZWxlY3QoKX0pKX1fYXR0YWNoT3ZlcmxheSgpe3ZhciB0O2lmKCF0aGlzLmF1dG9jb21wbGV0ZSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIGUoKXtyZXR1cm4gRXJyb3IoIkF0dGVtcHRpbmcgdG8gb3BlbiBhbiB1bmRlZmluZWQgaW5zdGFuY2Ugb2YgYG1hdC1hdXRvY29tcGxldGVgLiBNYWtlIHN1cmUgdGhhdCB0aGUgaWQgcGFzc2VkIHRvIHRoZSBgbWF0QXV0b2NvbXBsZXRlYCBpcyBjb3JyZWN0IGFuZCB0aGF0IHlvdSdyZSBhdHRlbXB0aW5nIHRvIG9wZW4gaXQgYWZ0ZXIgdGhlIG5nQWZ0ZXJDb250ZW50SW5pdCBob29rLiIpfSkoKTtsZXQgbj10aGlzLl9vdmVybGF5UmVmO24/KHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuc2V0T3JpZ2luKHRoaXMuX2dldENvbm5lY3RlZEVsZW1lbnQoKSksbi51cGRhdGVTaXplKHt3aWR0aDp0aGlzLl9nZXRQYW5lbFdpZHRoKCl9KSk6KHRoaXMuX3BvcnRhbD1uZXcgeEYodGhpcy5hdXRvY29tcGxldGUudGVtcGxhdGUsdGhpcy5fdmlld0NvbnRhaW5lclJlZix7aWQ6bnVsbD09PSh0PXRoaXMuX2Zvcm1GaWVsZCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuZ2V0TGFiZWxJZCgpfSksbj10aGlzLl9vdmVybGF5LmNyZWF0ZSh0aGlzLl9nZXRPdmVybGF5Q29uZmlnKCkpLHRoaXMuX292ZXJsYXlSZWY9bixuLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoKHQ9PnsodC5rZXlDb2RlPT09dXomJiFieih0KXx8dC5rZXlDb2RlPT09Z3omJmJ6KHQsImFsdEtleSIpKSYmKHRoaXMuX3Jlc2V0QWN0aXZlSXRlbSgpLHRoaXMuX2Nsb3NlS2V5RXZlbnRTdHJlYW0ubmV4dCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdC5wcmV2ZW50RGVmYXVsdCgpKX0pKSx0aGlzLl92aWV3cG9ydFN1YnNjcmlwdGlvbj10aGlzLl92aWV3cG9ydFJ1bGVyLmNoYW5nZSgpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLnBhbmVsT3BlbiYmbiYmbi51cGRhdGVTaXplKHt3aWR0aDp0aGlzLl9nZXRQYW5lbFdpZHRoKCl9KX0pKSksbiYmIW4uaGFzQXR0YWNoZWQoKSYmKG4uYXR0YWNoKHRoaXMuX3BvcnRhbCksdGhpcy5fY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb249dGhpcy5fc3Vic2NyaWJlVG9DbG9zaW5nQWN0aW9ucygpKTtjb25zdCBvPXRoaXMucGFuZWxPcGVuO3RoaXMuYXV0b2NvbXBsZXRlLl9zZXRWaXNpYmlsaXR5KCksdGhpcy5hdXRvY29tcGxldGUuX2lzT3Blbj10aGlzLl9vdmVybGF5QXR0YWNoZWQ9ITAsdGhpcy5wYW5lbE9wZW4mJm8hPT10aGlzLnBhbmVsT3BlbiYmdGhpcy5hdXRvY29tcGxldGUub3BlbmVkLmVtaXQoKX1fZ2V0T3ZlcmxheUNvbmZpZygpe3ZhciB0O3JldHVybiBuZXcgVkYoe3Bvc2l0aW9uU3RyYXRlZ3k6dGhpcy5fZ2V0T3ZlcmxheVBvc2l0aW9uKCksc2Nyb2xsU3RyYXRlZ3k6dGhpcy5fc2Nyb2xsU3RyYXRlZ3koKSx3aWR0aDp0aGlzLl9nZXRQYW5lbFdpZHRoKCksZGlyZWN0aW9uOnRoaXMuX2RpcixwYW5lbENsYXNzOm51bGw9PT0odD10aGlzLl9kZWZhdWx0cyl8fHZvaWQgMD09PXQ/dm9pZCAwOnQub3ZlcmxheVBhbmVsQ2xhc3N9KX1fZ2V0T3ZlcmxheVBvc2l0aW9uKCl7Y29uc3QgdD10aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9nZXRDb25uZWN0ZWRFbGVtZW50KCkpLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoITEpLndpdGhQdXNoKCExKTtyZXR1cm4gdGhpcy5fc2V0U3RyYXRlZ3lQb3NpdGlvbnModCksdGhpcy5fcG9zaXRpb25TdHJhdGVneT10LHR9X3NldFN0cmF0ZWd5UG9zaXRpb25zKHQpe2NvbnN0IGU9W3tvcmlnaW5YOiJzdGFydCIsb3JpZ2luWToiYm90dG9tIixvdmVybGF5WDoic3RhcnQiLG92ZXJsYXlZOiJ0b3AifSx7b3JpZ2luWDoiZW5kIixvcmlnaW5ZOiJib3R0b20iLG92ZXJsYXlYOiJlbmQiLG92ZXJsYXlZOiJ0b3AifV0sbj10aGlzLl9hYm92ZUNsYXNzLG89W3tvcmlnaW5YOiJzdGFydCIsb3JpZ2luWToidG9wIixvdmVybGF5WDoic3RhcnQiLG92ZXJsYXlZOiJib3R0b20iLHBhbmVsQ2xhc3M6bn0se29yaWdpblg6ImVuZCIsb3JpZ2luWToidG9wIixvdmVybGF5WDoiZW5kIixvdmVybGF5WToiYm90dG9tIixwYW5lbENsYXNzOm59XTtsZXQgaTtpPSJhYm92ZSI9PT10aGlzLnBvc2l0aW9uP286ImJlbG93Ij09PXRoaXMucG9zaXRpb24/ZTpbLi4uZSwuLi5vXSx0LndpdGhQb3NpdGlvbnMoaSl9X2dldENvbm5lY3RlZEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5jb25uZWN0ZWRUbz90aGlzLmNvbm5lY3RlZFRvLmVsZW1lbnRSZWY6dGhpcy5fZm9ybUZpZWxkP3RoaXMuX2Zvcm1GaWVsZC5nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk6dGhpcy5fZWxlbWVudH1fZ2V0UGFuZWxXaWR0aCgpe3JldHVybiB0aGlzLmF1dG9jb21wbGV0ZS5wYW5lbFdpZHRofHx0aGlzLl9nZXRIb3N0V2lkdGgoKX1fZ2V0SG9zdFdpZHRoKCl7cmV0dXJuIHRoaXMuX2dldENvbm5lY3RlZEVsZW1lbnQoKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofV9yZXNldEFjdGl2ZUl0ZW0oKXtjb25zdCB0PXRoaXMuYXV0b2NvbXBsZXRlO3QuYXV0b0FjdGl2ZUZpcnN0T3B0aW9uP3QuX2tleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk6dC5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKC0xKX1fY2FuT3Blbigpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50O3JldHVybiF0LnJlYWRPbmx5JiYhdC5kaXNhYmxlZCYmIXRoaXMuX2F1dG9jb21wbGV0ZURpc2FibGVkfV9nZXRXaW5kb3coKXt2YXIgdDtyZXR1cm4obnVsbD09PSh0PXRoaXMuX2RvY3VtZW50KXx8dm9pZCAwPT09dD92b2lkIDA6dC5kZWZhdWx0Vmlldyl8fHdpbmRvd31fc2Nyb2xsVG9PcHRpb24odCl7Y29uc3QgZT10aGlzLmF1dG9jb21wbGV0ZSxuPVZIKHQsZS5vcHRpb25zLGUub3B0aW9uR3JvdXBzKTtpZigwPT09dCYmMT09PW4pZS5fc2V0U2Nyb2xsVG9wKDApO2Vsc2UgaWYoZS5wYW5lbCl7Y29uc3Qgbj1lLm9wdGlvbnMudG9BcnJheSgpW3RdO2lmKG4pe2NvbnN0IHQ9bi5fZ2V0SG9zdEVsZW1lbnQoKSxvPWpIKHQub2Zmc2V0VG9wLHQub2Zmc2V0SGVpZ2h0LGUuX2dldFNjcm9sbFRvcCgpLGUucGFuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpO2UuX3NldFNjcm9sbFRvcChvKX19fX1HMC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RzApKFNtKGhnKSxTbShwTCksU20oZWgpLFNtKGFfKSxTbShVZyksU20oQjApLFNtKEhJLDgpLFNtKFJWLDkpLFNtKFpfLDgpLFNtKHVGKSxTbShOMCw4KSl9LEcwLsm1ZGlyPWxvKHt0eXBlOkcwLGlucHV0czp7cG9zaXRpb246WyJtYXRBdXRvY29tcGxldGVQb3NpdGlvbiIsInBvc2l0aW9uIl0sYXV0b2NvbXBsZXRlQXR0cmlidXRlOlsiYXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlQXR0cmlidXRlIl0sYXV0b2NvbXBsZXRlRGlzYWJsZWQ6WyJtYXRBdXRvY29tcGxldGVEaXNhYmxlZCIsImF1dG9jb21wbGV0ZURpc2FibGVkIl0sYXV0b2NvbXBsZXRlOlsibWF0QXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlIl0sY29ubmVjdGVkVG86WyJtYXRBdXRvY29tcGxldGVDb25uZWN0ZWRUbyIsImNvbm5lY3RlZFRvIl19LGZlYXR1cmVzOltCb119KSxHMC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpwTH0se3R5cGU6ZWh9LHt0eXBlOmFffSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0IwXX1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpBVixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUlZdfSx7dHlwZTpScn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp1Rn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltOMF19XX1dLEcwLnByb3BEZWNvcmF0b3JzPXthdXRvY29tcGxldGU6W3t0eXBlOnh5LGFyZ3M6WyJtYXRBdXRvY29tcGxldGUiXX1dLHBvc2l0aW9uOlt7dHlwZTp4eSxhcmdzOlsibWF0QXV0b2NvbXBsZXRlUG9zaXRpb24iXX1dLGNvbm5lY3RlZFRvOlt7dHlwZTp4eSxhcmdzOlsibWF0QXV0b2NvbXBsZXRlQ29ubmVjdGVkVG8iXX1dLGF1dG9jb21wbGV0ZUF0dHJpYnV0ZTpbe3R5cGU6eHksYXJnczpbImF1dG9jb21wbGV0ZSJdfV0sYXV0b2NvbXBsZXRlRGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRBdXRvY29tcGxldGVEaXNhYmxlZCJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRzAsW3t0eXBlOkN5fV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpwTH0se3R5cGU6ZWh9LHt0eXBlOmFffSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0IwXX1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpBVixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUlZdfSx7dHlwZTpScn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp1Rn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltOMF19XX1dfSkse3Bvc2l0aW9uOlt7dHlwZTp4eSxhcmdzOlsibWF0QXV0b2NvbXBsZXRlUG9zaXRpb24iXX1dLGF1dG9jb21wbGV0ZUF0dHJpYnV0ZTpbe3R5cGU6eHksYXJnczpbImF1dG9jb21wbGV0ZSJdfV0sYXV0b2NvbXBsZXRlRGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRBdXRvY29tcGxldGVEaXNhYmxlZCJdfV0sYXV0b2NvbXBsZXRlOlt7dHlwZTp4eSxhcmdzOlsibWF0QXV0b2NvbXBsZXRlIl19XSxjb25uZWN0ZWRUbzpbe3R5cGU6eHksYXJnczpbIm1hdEF1dG9jb21wbGV0ZUNvbm5lY3RlZFRvIl19XX0pO2NsYXNzIFcwIGV4dGVuZHMgRzB7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2Fib3ZlQ2xhc3M9Im1hdC1hdXRvY29tcGxldGUtcGFuZWwtYWJvdmUifX1XMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoVzApKSkobnx8VzApfX0pKCksVzAuybVkaXI9bG8oe3R5cGU6VzAsc2VsZWN0b3JzOltbImlucHV0IiwibWF0QXV0b2NvbXBsZXRlIiwiIl0sWyJ0ZXh0YXJlYSIsIm1hdEF1dG9jb21wbGV0ZSIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1hdXRvY29tcGxldGUtdHJpZ2dlciJdLGhvc3RWYXJzOjcsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJmb2N1c2luIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9oYW5kbGVGb2N1cygpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vblRvdWNoZWQoKX0pKSgiaW5wdXQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVJbnB1dChlKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUtleWRvd24oZSl9KSksMiZlJiZqcCgiYXV0b2NvbXBsZXRlIixuLmF1dG9jb21wbGV0ZUF0dHJpYnV0ZSkoInJvbGUiLG4uYXV0b2NvbXBsZXRlRGlzYWJsZWQ/bnVsbDoiY29tYm9ib3giKSgiYXJpYS1hdXRvY29tcGxldGUiLG4uYXV0b2NvbXBsZXRlRGlzYWJsZWQ/bnVsbDoibGlzdCIpKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLG4ucGFuZWxPcGVuJiZuLmFjdGl2ZU9wdGlvbj9uLmFjdGl2ZU9wdGlvbi5pZDpudWxsKSgiYXJpYS1leHBhbmRlZCIsbi5hdXRvY29tcGxldGVEaXNhYmxlZD9udWxsOm4ucGFuZWxPcGVuLnRvU3RyaW5nKCkpKCJhcmlhLW93bnMiLG4uYXV0b2NvbXBsZXRlRGlzYWJsZWR8fCFuLnBhbmVsT3Blbnx8bnVsbD09bi5hdXRvY29tcGxldGU/bnVsbDpuLmF1dG9jb21wbGV0ZS5pZCkoImFyaWEtaGFzcG9wdXAiLCFuLmF1dG9jb21wbGV0ZURpc2FibGVkKX0sZXhwb3J0QXM6WyJtYXRBdXRvY29tcGxldGVUcmlnZ2VyIl0sZmVhdHVyZXM6W3BnKFtVMF0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVzAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiaW5wdXRbbWF0QXV0b2NvbXBsZXRlXSwgdGV4dGFyZWFbbWF0QXV0b2NvbXBsZXRlXSIsaG9zdDp7Y2xhc3M6Im1hdC1hdXRvY29tcGxldGUtdHJpZ2dlciIsIlthdHRyLmF1dG9jb21wbGV0ZV0iOiJhdXRvY29tcGxldGVBdHRyaWJ1dGUiLCJbYXR0ci5yb2xlXSI6J2F1dG9jb21wbGV0ZURpc2FibGVkID8gbnVsbCA6ICJjb21ib2JveCInLCJbYXR0ci5hcmlhLWF1dG9jb21wbGV0ZV0iOidhdXRvY29tcGxldGVEaXNhYmxlZCA/IG51bGwgOiAibGlzdCInLCJbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdIjoiKHBhbmVsT3BlbiAmJiBhY3RpdmVPcHRpb24pID8gYWN0aXZlT3B0aW9uLmlkIDogbnVsbCIsIlthdHRyLmFyaWEtZXhwYW5kZWRdIjoiYXV0b2NvbXBsZXRlRGlzYWJsZWQgPyBudWxsIDogcGFuZWxPcGVuLnRvU3RyaW5nKCkiLCJbYXR0ci5hcmlhLW93bnNdIjoiKGF1dG9jb21wbGV0ZURpc2FibGVkIHx8ICFwYW5lbE9wZW4pID8gbnVsbCA6IGF1dG9jb21wbGV0ZT8uaWQiLCJbYXR0ci5hcmlhLWhhc3BvcHVwXSI6IiFhdXRvY29tcGxldGVEaXNhYmxlZCIsIihmb2N1c2luKSI6Il9oYW5kbGVGb2N1cygpIiwiKGJsdXIpIjoiX29uVG91Y2hlZCgpIiwiKGlucHV0KSI6Il9oYW5kbGVJbnB1dCgkZXZlbnQpIiwiKGtleWRvd24pIjoiX2hhbmRsZUtleWRvd24oJGV2ZW50KSJ9LGV4cG9ydEFzOiJtYXRBdXRvY29tcGxldGVUcmlnZ2VyIixwcm92aWRlcnM6W1UwXX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFkwe31ZMC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WTApfSxZMC7JtW1vZD1hbyh7dHlwZTpZMH0pLFkwLsm1aW5qPXZuKHtwcm92aWRlcnM6W1YwXSxpbXBvcnRzOltbeUwsVUgsWEksV01dLHlGLFVILFhJXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWTAsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOlt5TCxVSCxYSSxXTV0sZXhwb3J0czpbSDAsVzAsTDAseUYsVUgsWEldLGRlY2xhcmF0aW9uczpbSDAsVzAsTDBdLHByb3ZpZGVyczpbVjBdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oWTAse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltIMCxXMCxMMF19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5beUwsVUgsWEksV01dfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW0gwLFcwLEwwLHlGLFVILFhJXX19KTtjbGFzcyBxMHtjb25zdHJ1Y3Rvcigpe3RoaXMudmFsdWU9IiIsdGhpcy5wbGFjZWhvbGRlcj0iIn1vbklucHV0S2V5VXAodCl7IkVudGVyIj09PXQua2V5JiZ0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIuY2xvc2VQYW5lbCgpfX1mdW5jdGlvbiBaMCh0LGUpe2lmKDEmdCYmKHFpKCksVG0oMCwiY2lyY2xlIiwzKSksMiZ0KXtjb25zdCB0PVltKCk7ZHUoImFuaW1hdGlvbi1uYW1lIiwibWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS0iK3QuX3NwaW5uZXJBbmltYXRpb25MYWJlbCkoInN0cm9rZS1kYXNob2Zmc2V0Iix0Ll9nZXRTdHJva2VEYXNoT2Zmc2V0KCksInB4IikoInN0cm9rZS1kYXNoYXJyYXkiLHQuX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSwicHgiKSgic3Ryb2tlLXdpZHRoIix0Ll9nZXRDaXJjbGVTdHJva2VXaWR0aCgpLCIlIiksanAoInIiLHQuX2dldENpcmNsZVJhZGl1cygpKX19ZnVuY3Rpb24gWDAodCxlKXtpZigxJnQmJihxaSgpLFRtKDAsImNpcmNsZSIsMykpLDImdCl7Y29uc3QgdD1ZbSgpO2R1KCJzdHJva2UtZGFzaG9mZnNldCIsdC5fZ2V0U3Ryb2tlRGFzaE9mZnNldCgpLCJweCIpKCJzdHJva2UtZGFzaGFycmF5Iix0Ll9nZXRTdHJva2VDaXJjdW1mZXJlbmNlKCksInB4IikoInN0cm9rZS13aWR0aCIsdC5fZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKSwiJSIpLGpwKCJyIix0Ll9nZXRDaXJjbGVSYWRpdXMoKSl9fWZ1bmN0aW9uIEswKHQsZSl7aWYoMSZ0JiYocWkoKSxUbSgwLCJjaXJjbGUiLDMpKSwyJnQpe2NvbnN0IHQ9WW0oKTtkdSgiYW5pbWF0aW9uLW5hbWUiLCJtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLSIrdC5fc3Bpbm5lckFuaW1hdGlvbkxhYmVsKSgic3Ryb2tlLWRhc2hvZmZzZXQiLHQuX2dldFN0cm9rZURhc2hPZmZzZXQoKSwicHgiKSgic3Ryb2tlLWRhc2hhcnJheSIsdC5fZ2V0U3Ryb2tlQ2lyY3VtZmVyZW5jZSgpLCJweCIpKCJzdHJva2Utd2lkdGgiLHQuX2dldENpcmNsZVN0cm9rZVdpZHRoKCksIiUiKSxqcCgiciIsdC5fZ2V0Q2lyY2xlUmFkaXVzKCkpfX1mdW5jdGlvbiBKMCh0LGUpe2lmKDEmdCYmKHFpKCksVG0oMCwiY2lyY2xlIiwzKSksMiZ0KXtjb25zdCB0PVltKCk7ZHUoInN0cm9rZS1kYXNob2Zmc2V0Iix0Ll9nZXRTdHJva2VEYXNoT2Zmc2V0KCksInB4IikoInN0cm9rZS1kYXNoYXJyYXkiLHQuX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSwicHgiKSgic3Ryb2tlLXdpZHRoIix0Ll9nZXRDaXJjbGVTdHJva2VXaWR0aCgpLCIlIiksanAoInIiLHQuX2dldENpcmNsZVJhZGl1cygpKX19cTAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHEwKX0scTAuybVjbXA9dG8oe3R5cGU6cTAsc2VsZWN0b3JzOltbInRiLWZpbHRlci1pbnB1dCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoVzAsNSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5hdXRvY29tcGxldGVUcmlnZ2VyPXQuZmlyc3QpfX0saW5wdXRzOnt2YWx1ZToidmFsdWUiLG1hdEF1dG9jb21wbGV0ZToibWF0QXV0b2NvbXBsZXRlIixwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIifSxkZWNsczoyLHZhcnM6NCxjb25zdHM6W1sic3ZnSWNvbiIsInNlYXJjaF8yNHB4Il0sWyJ0eXBlIiwidGV4dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywicGxhY2Vob2xkZXIiLCJtYXRBdXRvY29tcGxldGUiLCJtYXRBdXRvY29tcGxldGVEaXNhYmxlZCIsInZhbHVlIiwia2V5dXAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsIm1hdC1pY29uIiwwKSxSbSgxLCJpbnB1dCIsMSksVm0oImtleXVwIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbklucHV0S2V5VXAoZSl9KSksQW0oKSksMiZlJiYocmMoMSksRG0oInBsYWNlaG9sZGVyIixuLnBsYWNlaG9sZGVyKSgibWF0QXV0b2NvbXBsZXRlIixuLm1hdEF1dG9jb21wbGV0ZSkoIm1hdEF1dG9jb21wbGV0ZURpc2FibGVkIiwhbi5tYXRBdXRvY29tcGxldGUpKCJ2YWx1ZSIsbi52YWx1ZSkpfSxkaXJlY3RpdmVzOltEVyxXMF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjEzcHh9bWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7ZmxleDpub25lO21hcmdpbi1yaWdodDo1cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBtYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9aW5wdXRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtjYXJldC1jb2xvcjpjdXJyZW50Q29sb3I7Y29sb3I6Y3VycmVudENvbG9yO2ZvbnQ6aW5oZXJpdDtib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmU7cGFkZGluZzowO2ZsZXgtZ3JvdzoxfSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChxMCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Yi1maWx0ZXItaW5wdXQiLHRlbXBsYXRlOidcbiAgICA8bWF0LWljb24gc3ZnSWNvbj0ic2VhcmNoXzI0cHgiPjwvbWF0LWljb24+XG5cbiAgICBceDNjIS0tIE5vdGU6IHRvIGFsbG93IGZhbHN5IFwnbWF0QXV0b2NvbXBsZXRlXCcgdmFsdWVzLCB3ZSBuZWVkIFwnbWF0QXV0b2NvbXBsZXRlRGlzYWJsZWRcJ1xuICAgIHRvIHByZXZlbnQgcnVudGltZSBlcnJvcnMuIC0tXHgzZVxuICAgIDxpbnB1dFxuICAgICAgdHlwZT0idGV4dCJcbiAgICAgIGF1dG9jb21wbGV0ZT0ib2ZmIlxuICAgICAgW3BsYWNlaG9sZGVyXT0icGxhY2Vob2xkZXIiXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT0ibWF0QXV0b2NvbXBsZXRlIlxuICAgICAgW21hdEF1dG9jb21wbGV0ZURpc2FibGVkXT0iIW1hdEF1dG9jb21wbGV0ZSJcbiAgICAgIFt2YWx1ZV09InZhbHVlIlxuICAgICAgKGtleXVwKT0ib25JbnB1dEtleVVwKCRldmVudCkiXG4gICAgLz5cbiAgJyxzdHlsZVVybHM6WyJmaWx0ZXJfaW5wdXRfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLHt2YWx1ZTpbe3R5cGU6eHl9XSxtYXRBdXRvY29tcGxldGU6W3t0eXBlOnh5fV0scGxhY2Vob2xkZXI6W3t0eXBlOnh5fV0sYXV0b2NvbXBsZXRlVHJpZ2dlcjpbe3R5cGU6WmEsYXJnczpbVzBdfV19KTtjb25zdCBRMD0iLm1hdC1wcm9ncmVzcy1zcGlubmVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBzdmd7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RvcDowO2xlZnQ6MDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7ZmlsbDp0cmFuc3BhcmVudDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2l0aW9uOnN0cm9rZS1kYXNob2Zmc2V0IDIyNW1zIGxpbmVhcn0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2U6Q2FudmFzVGV4dH0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGUgMjAwMG1zIGxpbmVhciBpbmZpbml0ZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIGNpcmNsZXt0cmFuc2l0aW9uLXByb3BlcnR5OnN0cm9rZTthbmltYXRpb24tZHVyYXRpb246NDAwMG1zO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2sgMTAwMDBtcyBjdWJpYy1iZXppZXIoMC44NywgMC4wMywgMC4zMywgMSkgaW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gc3Zne3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBjaXJjbGV7dHJhbnNpdGlvbi1wcm9wZXJ0eTpzdHJva2V9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGV7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLTEwMHswJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41JXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41MDAxJXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoNzIuNWRlZyl9MjUle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSg3Mi41ZGVnKX0yNS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9MzcuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MC4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfTYyLjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9NjIuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NSV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9ODcuNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfTg3LjUwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgzNDEuNWRlZyl9MTAwJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMzQxLjVkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2t7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0yNSV7dHJhbnNmb3JtOnJvdGF0ZSgxMTcwZGVnKX01MCV7dHJhbnNmb3JtOnJvdGF0ZSgyMzQwZGVnKX03NSV7dHJhbnNmb3JtOnJvdGF0ZSgzNTEwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoNDY4MGRlZyl9fVxuIiwkMD1KSShjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSwicHJpbWFyeSIpLHQxPW5ldyBHYSgibWF0LXByb2dyZXNzLXNwaW5uZXItZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBlMSgpe3JldHVybntkaWFtZXRlcjoxMDB9fX0pO2NsYXNzIG4xIGV4dGVuZHMgJDB7Y29uc3RydWN0b3IodCxlLG4sbyxpKXtzdXBlcih0KSx0aGlzLl9kb2N1bWVudD1uLHRoaXMuX2RpYW1ldGVyPTEwMCx0aGlzLl92YWx1ZT0wLHRoaXMuX2ZhbGxiYWNrQW5pbWF0aW9uPSExLHRoaXMubW9kZT0iZGV0ZXJtaW5hdGUiO2NvbnN0IGE9bjEuX2RpYW1ldGVyczt0aGlzLl9zcGlubmVyQW5pbWF0aW9uTGFiZWw9dGhpcy5fZ2V0U3Bpbm5lckFuaW1hdGlvbkxhYmVsKCksYS5oYXMobi5oZWFkKXx8YS5zZXQobi5oZWFkLG5ldyBTZXQoWzEwMF0pKSx0aGlzLl9mYWxsYmFja0FuaW1hdGlvbj1lLkVER0V8fGUuVFJJREVOVCx0aGlzLl9ub29wQW5pbWF0aW9ucz0iTm9vcEFuaW1hdGlvbnMiPT09byYmISFpJiYhaS5fZm9yY2VBbmltYXRpb25zLGkmJihpLmRpYW1ldGVyJiYodGhpcy5kaWFtZXRlcj1pLmRpYW1ldGVyKSxpLnN0cm9rZVdpZHRoJiYodGhpcy5zdHJva2VXaWR0aD1pLnN0cm9rZVdpZHRoKSl9Z2V0IGRpYW1ldGVyKCl7cmV0dXJuIHRoaXMuX2RpYW1ldGVyfXNldCBkaWFtZXRlcih0KXt0aGlzLl9kaWFtZXRlcj1feih0KSx0aGlzLl9zcGlubmVyQW5pbWF0aW9uTGFiZWw9dGhpcy5fZ2V0U3Bpbm5lckFuaW1hdGlvbkxhYmVsKCksIXRoaXMuX2ZhbGxiYWNrQW5pbWF0aW9uJiZ0aGlzLl9zdHlsZVJvb3QmJnRoaXMuX2F0dGFjaFN0eWxlTm9kZSgpfWdldCBzdHJva2VXaWR0aCgpe3JldHVybiB0aGlzLl9zdHJva2VXaWR0aHx8dGhpcy5kaWFtZXRlci8xMH1zZXQgc3Ryb2tlV2lkdGgodCl7dGhpcy5fc3Ryb2tlV2lkdGg9X3oodCl9Z2V0IHZhbHVlKCl7cmV0dXJuImRldGVybWluYXRlIj09PXRoaXMubW9kZT90aGlzLl92YWx1ZTowfXNldCB2YWx1ZSh0KXt0aGlzLl92YWx1ZT1NYXRoLm1heCgwLE1hdGgubWluKDEwMCxfeih0KSkpfW5nT25Jbml0KCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7dGhpcy5fc3R5bGVSb290PUh6KHQpfHx0aGlzLl9kb2N1bWVudC5oZWFkLHRoaXMuX2F0dGFjaFN0eWxlTm9kZSgpLHQuY2xhc3NMaXN0LmFkZChgbWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZSR7dGhpcy5fZmFsbGJhY2tBbmltYXRpb24/Ii1mYWxsYmFjayI6IiJ9LWFuaW1hdGlvbmApfV9nZXRDaXJjbGVSYWRpdXMoKXtyZXR1cm4odGhpcy5kaWFtZXRlci0xMCkvMn1fZ2V0Vmlld0JveCgpe2NvbnN0IHQ9Mip0aGlzLl9nZXRDaXJjbGVSYWRpdXMoKSt0aGlzLnN0cm9rZVdpZHRoO3JldHVybmAwIDAgJHt0fSAke3R9YH1fZ2V0U3Ryb2tlQ2lyY3VtZmVyZW5jZSgpe3JldHVybiAyKk1hdGguUEkqdGhpcy5fZ2V0Q2lyY2xlUmFkaXVzKCl9X2dldFN0cm9rZURhc2hPZmZzZXQoKXtyZXR1cm4iZGV0ZXJtaW5hdGUiPT09dGhpcy5tb2RlP3RoaXMuX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSooMTAwLXRoaXMuX3ZhbHVlKS8xMDA6dGhpcy5fZmFsbGJhY2tBbmltYXRpb24mJiJpbmRldGVybWluYXRlIj09PXRoaXMubW9kZT8uMip0aGlzLl9nZXRTdHJva2VDaXJjdW1mZXJlbmNlKCk6bnVsbH1fZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKXtyZXR1cm4gdGhpcy5zdHJva2VXaWR0aC90aGlzLmRpYW1ldGVyKjEwMH1fYXR0YWNoU3R5bGVOb2RlKCl7Y29uc3QgdD10aGlzLl9zdHlsZVJvb3QsZT10aGlzLl9kaWFtZXRlcixuPW4xLl9kaWFtZXRlcnM7bGV0IG89bi5nZXQodCk7aWYoIW98fCFvLmhhcyhlKSl7Y29uc3QgaT10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2kuc2V0QXR0cmlidXRlKCJtYXQtc3Bpbm5lci1hbmltYXRpb24iLHRoaXMuX3NwaW5uZXJBbmltYXRpb25MYWJlbCksaS50ZXh0Q29udGVudD10aGlzLl9nZXRBbmltYXRpb25UZXh0KCksdC5hcHBlbmRDaGlsZChpKSxvfHwobz1uZXcgU2V0LG4uc2V0KHQsbykpLG8uYWRkKGUpfX1fZ2V0QW5pbWF0aW9uVGV4dCgpe2NvbnN0IHQ9dGhpcy5fZ2V0U3Ryb2tlQ2lyY3VtZmVyZW5jZSgpO3JldHVybiJcbiBAa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtRElBTUVURVIge1xuICAgIDAlICAgICAgeyBzdHJva2UtZGFzaG9mZnNldDogU1RBUlRfVkFMVUU7ICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuICAgIDEyLjUlICAgeyBzdHJva2UtZGFzaG9mZnNldDogRU5EX1ZBTFVFOyAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuICAgIDEyLjUwMDElICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBFTkRfVkFMVUU7ICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZSg3Mi41ZGVnKTsgfVxuICAgIDI1JSAgICAgeyBzdHJva2UtZGFzaG9mZnNldDogU1RBUlRfVkFMVUU7ICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoNzIuNWRlZyk7IH1cblxuICAgIDI1LjAwMDElICAgeyBzdHJva2UtZGFzaG9mZnNldDogU1RBUlRfVkFMVUU7ICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9XG4gICAgMzcuNSUgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBFTkRfVkFMVUU7ICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IH1cbiAgICAzNy41MDAxJSAgeyBzdHJva2UtZGFzaG9mZnNldDogRU5EX1ZBTFVFOyAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMTYxLjVkZWcpOyB9XG4gICAgNTAlICAgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBTVEFSVF9WQUxVRTsgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZSgxNjEuNWRlZyk7IH1cblxuICAgIDUwLjAwMDElICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBTVEFSVF9WQUxVRTsgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgICA2Mi41JSAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IEVORF9WQUxVRTsgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuICAgIDYyLjUwMDElICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBFTkRfVkFMVUU7ICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZSgyNTEuNWRlZyk7IH1cbiAgICA3NSUgICAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IFNUQVJUX1ZBTFVFOyAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKTsgfVxuXG4gICAgNzUuMDAwMSUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IFNUQVJUX1ZBTFVFOyAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG4gICAgODcuNSUgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBFTkRfVkFMVUU7ICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuICAgIDg3LjUwMDElICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBFTkRfVkFMVUU7ICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZSgzNDEuNWRlZyk7IH1cbiAgICAxMDAlICAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IFNUQVJUX1ZBTFVFOyAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZykgcm90YXRlKDM0MS41ZGVnKTsgfVxuICB9XG4iLnJlcGxhY2UoL1NUQVJUX1ZBTFVFL2csIiIrLjk1KnQpLnJlcGxhY2UoL0VORF9WQUxVRS9nLCIiKy4yKnQpLnJlcGxhY2UoL0RJQU1FVEVSL2csYCR7dGhpcy5fc3Bpbm5lckFuaW1hdGlvbkxhYmVsfWApfV9nZXRTcGlubmVyQW5pbWF0aW9uTGFiZWwoKXtyZXR1cm4gdGhpcy5kaWFtZXRlci50b1N0cmluZygpLnJlcGxhY2UoIi4iLCJfIil9fW4xLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxuMSkoU20oaGcpLFNtKHd6KSxTbShaXyw4KSxTbShWUCw4KSxTbSh0MSkpfSxuMS7JtWNtcD10byh7dHlwZTpuMSxzZWxlY3RvcnM6W1sibWF0LXByb2dyZXNzLXNwaW5uZXIiXV0saG9zdEF0dHJzOlsicm9sZSIsInByb2dyZXNzYmFyIiwidGFiaW5kZXgiLCItMSIsMSwibWF0LXByb2dyZXNzLXNwaW5uZXIiXSxob3N0VmFyczoxMCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmKGpwKCJhcmlhLXZhbHVlbWluIiwiZGV0ZXJtaW5hdGUiPT09bi5tb2RlPzA6bnVsbCkoImFyaWEtdmFsdWVtYXgiLCJkZXRlcm1pbmF0ZSI9PT1uLm1vZGU/MTAwOm51bGwpKCJhcmlhLXZhbHVlbm93IiwiZGV0ZXJtaW5hdGUiPT09bi5tb2RlP24udmFsdWU6bnVsbCkoIm1vZGUiLG4ubW9kZSksZHUoIndpZHRoIixuLmRpYW1ldGVyLCJweCIpKCJoZWlnaHQiLG4uZGlhbWV0ZXIsInB4IikscHUoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIixuLl9ub29wQW5pbWF0aW9ucykpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciIsbW9kZToibW9kZSIsZGlhbWV0ZXI6ImRpYW1ldGVyIixzdHJva2VXaWR0aDoic3Ryb2tlV2lkdGgiLHZhbHVlOiJ2YWx1ZSJ9LGV4cG9ydEFzOlsibWF0UHJvZ3Jlc3NTcGlubmVyIl0sZmVhdHVyZXM6W3hwXSxkZWNsczozLHZhcnM6OCxjb25zdHM6W1sicHJlc2VydmVBc3BlY3RSYXRpbyIsInhNaWRZTWlkIG1lZXQiLCJmb2N1c2FibGUiLCJmYWxzZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMywibmdTd2l0Y2giXSxbImN4IiwiNTAlIiwiY3kiLCI1MCUiLDMsImFuaW1hdGlvbi1uYW1lIiwic3Ryb2tlLWRhc2hvZmZzZXQiLCJzdHJva2UtZGFzaGFycmF5Iiwic3Ryb2tlLXdpZHRoIiw0LCJuZ1N3aXRjaENhc2UiXSxbImN4IiwiNTAlIiwiY3kiLCI1MCUiLDMsInN0cm9rZS1kYXNob2Zmc2V0Iiwic3Ryb2tlLWRhc2hhcnJheSIsInN0cm9rZS13aWR0aCIsNCwibmdTd2l0Y2hDYXNlIl0sWyJjeCIsIjUwJSIsImN5IiwiNTAlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihxaSgpLFJtKDAsInN2ZyIsMCksUXAoMSxaMCwxLDksImNpcmNsZSIsMSksUXAoMixYMCwxLDcsImNpcmNsZSIsMiksQW0oKSksMiZlJiYoZHUoIndpZHRoIixuLmRpYW1ldGVyLCJweCIpKCJoZWlnaHQiLG4uZGlhbWV0ZXIsInB4IiksRG0oIm5nU3dpdGNoIiwiaW5kZXRlcm1pbmF0ZSI9PT1uLm1vZGUpLGpwKCJ2aWV3Qm94IixuLl9nZXRWaWV3Qm94KCkpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLCEwKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIiwhMSkpfSxkaXJlY3RpdmVzOltmTSxnTV0sc3R5bGVzOltRMF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbjEuX2RpYW1ldGVycz1uZXcgV2Vha01hcCxuMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3QxXX1dfV0sbjEucHJvcERlY29yYXRvcnM9e2RpYW1ldGVyOlt7dHlwZTp4eX1dLHN0cm9rZVdpZHRoOlt7dHlwZTp4eX1dLG1vZGU6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobjEsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXByb2dyZXNzLXNwaW5uZXIiLGV4cG9ydEFzOiJtYXRQcm9ncmVzc1NwaW5uZXIiLGhvc3Q6e3JvbGU6InByb2dyZXNzYmFyIixjbGFzczoibWF0LXByb2dyZXNzLXNwaW5uZXIiLHRhYmluZGV4OiItMSIsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOiJfbm9vcEFuaW1hdGlvbnMiLCJbc3R5bGUud2lkdGgucHhdIjoiZGlhbWV0ZXIiLCJbc3R5bGUuaGVpZ2h0LnB4XSI6ImRpYW1ldGVyIiwiW2F0dHIuYXJpYS12YWx1ZW1pbl0iOidtb2RlID09PSAiZGV0ZXJtaW5hdGUiID8gMCA6IG51bGwnLCJbYXR0ci5hcmlhLXZhbHVlbWF4XSI6J21vZGUgPT09ICJkZXRlcm1pbmF0ZSIgPyAxMDAgOiBudWxsJywiW2F0dHIuYXJpYS12YWx1ZW5vd10iOidtb2RlID09PSAiZGV0ZXJtaW5hdGUiID8gdmFsdWUgOiBudWxsJywiW2F0dHIubW9kZV0iOiJtb2RlIn0saW5wdXRzOlsiY29sb3IiXSx0ZW1wbGF0ZTonXHgzYyEtLVxuICBwcmVzZXJ2ZUFzcGVjdFJhdGlvIG9mIHhNaWRZTWlkIG1lZXQgYXMgdGhlIGNlbnRlciBvZiB0aGUgdmlld3BvcnQgaXMgdGhlIGNpcmNsZVwnc1xuICBjZW50ZXIuIFRoZSBjZW50ZXIgb2YgdGhlIGNpcmNsZSB3aWxsIHJlbWFpbiBhdCB0aGUgY2VudGVyIG9mIHRoZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICBlbGVtZW50IGNvbnRhaW5pbmcgdGhlIFNWRy4gYGZvY3VzYWJsZT0iZmFsc2UiYCBwcmV2ZW50cyBJRSBmcm9tIGFsbG93aW5nIHRoZSB1c2VyIHRvXG4gIHRhYiBpbnRvIHRoZSBTVkcgZWxlbWVudC5cbi0tXHgzZVxuXHgzYyEtLVxuICBBbGwgY2hpbGRyZW4gbmVlZCB0byBiZSBoaWRkZW4gZm9yIHNjcmVlbiByZWFkZXJzIGluIG9yZGVyIHRvIHN1cHBvcnQgQ2hyb21lVm94LlxuICBNb3JlIGNvbnRleHQgaW4gdGhlIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8yMjE2NS5cbi0tXHgzZVxuPHN2Z1xuICBbc3R5bGUud2lkdGgucHhdPSJkaWFtZXRlciJcbiAgW3N0eWxlLmhlaWdodC5weF09ImRpYW1ldGVyIlxuICBbYXR0ci52aWV3Qm94XT0iX2dldFZpZXdCb3goKSJcbiAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgZm9jdXNhYmxlPSJmYWxzZSJcbiAgW25nU3dpdGNoXT0ibW9kZSA9PT0gXCdpbmRldGVybWluYXRlXCciXG4gIGFyaWEtaGlkZGVuPSJ0cnVlIj5cblxuICBceDNjIS0tXG4gICAgVGVjaG5pY2FsbHkgd2UgY2FuIHJldXNlIHRoZSBzYW1lIGBjaXJjbGVgIGVsZW1lbnQsIGhvd2V2ZXIgU2FmYXJpIGhhcyBhbiBpc3N1ZSB0aGF0IGJyZWFrc1xuICAgIHRoZSBTVkcgcmVuZGVyaW5nIGluIGRldGVybWluYXRlIG1vZGUsIGFmdGVyIHN3aXRjaGluZyBiZXR3ZWVuIGluZGV0ZXJtaW5hdGUgYW5kIGRldGVybWluYXRlLlxuICAgIFVzaW5nIGEgZGlmZmVyZW50IGVsZW1lbnQgYXZvaWRzIHRoZSBpc3N1ZS4gQW4gYWx0ZXJuYXRpdmUgdG8gdGhpcyBpcyBhZGRpbmcgYGRpc3BsYXk6IG5vbmVgXG4gICAgZm9yIGEgc3BsaXQgc2Vjb25kIGFuZCB0aGVuIHJlbW92aW5nIGl0IHdoZW4gc3dpdGNoaW5nIGJldHdlZW4gbW9kZXMsIGJ1dCBpdFwncyBoYXJkIHRvIGtub3dcbiAgICBmb3IgaG93IGxvbmcgdG8gaGlkZSB0aGUgZWxlbWVudCBhbmQgaXQgY2FuIGNhdXNlIHRoZSBVSSB0byBibGluay5cbiAgLS1ceDNlXG4gIDxjaXJjbGVcbiAgICAqbmdTd2l0Y2hDYXNlPSJ0cnVlIlxuICAgIGN4PSI1MCUiXG4gICAgY3k9IjUwJSJcbiAgICBbYXR0ci5yXT0iX2dldENpcmNsZVJhZGl1cygpIlxuICAgIFtzdHlsZS5hbmltYXRpb24tbmFtZV09IlwnbWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS1cJyArIF9zcGlubmVyQW5pbWF0aW9uTGFiZWwiXG4gICAgW3N0eWxlLnN0cm9rZS1kYXNob2Zmc2V0LnB4XT0iX2dldFN0cm9rZURhc2hPZmZzZXQoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLWRhc2hhcnJheS5weF09Il9nZXRTdHJva2VDaXJjdW1mZXJlbmNlKCkiXG4gICAgW3N0eWxlLnN0cm9rZS13aWR0aC4lXT0iX2dldENpcmNsZVN0cm9rZVdpZHRoKCkiPjwvY2lyY2xlPlxuXG4gIDxjaXJjbGVcbiAgICAqbmdTd2l0Y2hDYXNlPSJmYWxzZSJcbiAgICBjeD0iNTAlIlxuICAgIGN5PSI1MCUiXG4gICAgW2F0dHIucl09Il9nZXRDaXJjbGVSYWRpdXMoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLWRhc2hvZmZzZXQucHhdPSJfZ2V0U3Ryb2tlRGFzaE9mZnNldCgpIlxuICAgIFtzdHlsZS5zdHJva2UtZGFzaGFycmF5LnB4XT0iX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoLiVdPSJfZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKSI+PC9jaXJjbGU+XG48L3N2Zz5cbicsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsc3R5bGVzOlsiLm1hdC1wcm9ncmVzcy1zcGlubmVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBzdmd7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RvcDowO2xlZnQ6MDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7ZmlsbDp0cmFuc3BhcmVudDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2l0aW9uOnN0cm9rZS1kYXNob2Zmc2V0IDIyNW1zIGxpbmVhcn0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2U6Q2FudmFzVGV4dH0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGUgMjAwMG1zIGxpbmVhciBpbmZpbml0ZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIGNpcmNsZXt0cmFuc2l0aW9uLXByb3BlcnR5OnN0cm9rZTthbmltYXRpb24tZHVyYXRpb246NDAwMG1zO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2sgMTAwMDBtcyBjdWJpYy1iZXppZXIoMC44NywgMC4wMywgMC4zMywgMSkgaW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gc3Zne3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBjaXJjbGV7dHJhbnNpdGlvbi1wcm9wZXJ0eTpzdHJva2V9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGV7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLTEwMHswJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41JXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41MDAxJXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoNzIuNWRlZyl9MjUle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSg3Mi41ZGVnKX0yNS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9MzcuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MC4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfTYyLjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9NjIuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NSV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9ODcuNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfTg3LjUwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgzNDEuNWRlZyl9MTAwJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMzQxLjVkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2t7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0yNSV7dHJhbnNmb3JtOnJvdGF0ZSgxMTcwZGVnKX01MCV7dHJhbnNmb3JtOnJvdGF0ZSgyMzQwZGVnKX03NSV7dHJhbnNmb3JtOnJvdGF0ZSgzNTEwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoNDY4MGRlZyl9fVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6d3p9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlt0MV19XX1dfSkse21vZGU6W3t0eXBlOnh5fV0sZGlhbWV0ZXI6W3t0eXBlOnh5fV0sc3Ryb2tlV2lkdGg6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV19KTtjbGFzcyBvMSBleHRlbmRzIG4xe2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7c3VwZXIodCxlLG4sbyxpKSx0aGlzLm1vZGU9ImluZGV0ZXJtaW5hdGUifX1vMS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bzEpKFNtKGhnKSxTbSh3eiksU20oWl8sOCksU20oVlAsOCksU20odDEpKX0sbzEuybVjbXA9dG8oe3R5cGU6bzEsc2VsZWN0b3JzOltbIm1hdC1zcGlubmVyIl1dLGhvc3RBdHRyczpbInJvbGUiLCJwcm9ncmVzc2JhciIsIm1vZGUiLCJpbmRldGVybWluYXRlIiwxLCJtYXQtc3Bpbm5lciIsIm1hdC1wcm9ncmVzcy1zcGlubmVyIl0saG9zdFZhcnM6Nixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmKGR1KCJ3aWR0aCIsbi5kaWFtZXRlciwicHgiKSgiaGVpZ2h0IixuLmRpYW1ldGVyLCJweCIpLHB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsbi5fbm9vcEFuaW1hdGlvbnMpKX0saW5wdXRzOntjb2xvcjoiY29sb3IifSxmZWF0dXJlczpbeHBdLGRlY2xzOjMsdmFyczo4LGNvbnN0czpbWyJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwieE1pZFlNaWQgbWVldCIsImZvY3VzYWJsZSIsImZhbHNlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwzLCJuZ1N3aXRjaCJdLFsiY3giLCI1MCUiLCJjeSIsIjUwJSIsMywiYW5pbWF0aW9uLW5hbWUiLCJzdHJva2UtZGFzaG9mZnNldCIsInN0cm9rZS1kYXNoYXJyYXkiLCJzdHJva2Utd2lkdGgiLDQsIm5nU3dpdGNoQ2FzZSJdLFsiY3giLCI1MCUiLCJjeSIsIjUwJSIsMywic3Ryb2tlLWRhc2hvZmZzZXQiLCJzdHJva2UtZGFzaGFycmF5Iiwic3Ryb2tlLXdpZHRoIiw0LCJuZ1N3aXRjaENhc2UiXSxbImN4IiwiNTAlIiwiY3kiLCI1MCUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHFpKCksUm0oMCwic3ZnIiwwKSxRcCgxLEswLDEsOSwiY2lyY2xlIiwxKSxRcCgyLEowLDEsNywiY2lyY2xlIiwyKSxBbSgpKSwyJmUmJihkdSgid2lkdGgiLG4uZGlhbWV0ZXIsInB4IikoImhlaWdodCIsbi5kaWFtZXRlciwicHgiKSxEbSgibmdTd2l0Y2giLCJpbmRldGVybWluYXRlIj09PW4ubW9kZSksanAoInZpZXdCb3giLG4uX2dldFZpZXdCb3goKSkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsITApLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLCExKSl9LGRpcmVjdGl2ZXM6W2ZNLGdNXSxzdHlsZXM6W1EwXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxvMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3QxXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvMSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtc3Bpbm5lciIsaG9zdDp7cm9sZToicHJvZ3Jlc3NiYXIiLG1vZGU6ImluZGV0ZXJtaW5hdGUiLGNsYXNzOiJtYXQtc3Bpbm5lciBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciIsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOiJfbm9vcEFuaW1hdGlvbnMiLCJbc3R5bGUud2lkdGgucHhdIjoiZGlhbWV0ZXIiLCJbc3R5bGUuaGVpZ2h0LnB4XSI6ImRpYW1ldGVyIn0saW5wdXRzOlsiY29sb3IiXSx0ZW1wbGF0ZTonXHgzYyEtLVxuICBwcmVzZXJ2ZUFzcGVjdFJhdGlvIG9mIHhNaWRZTWlkIG1lZXQgYXMgdGhlIGNlbnRlciBvZiB0aGUgdmlld3BvcnQgaXMgdGhlIGNpcmNsZVwnc1xuICBjZW50ZXIuIFRoZSBjZW50ZXIgb2YgdGhlIGNpcmNsZSB3aWxsIHJlbWFpbiBhdCB0aGUgY2VudGVyIG9mIHRoZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICBlbGVtZW50IGNvbnRhaW5pbmcgdGhlIFNWRy4gYGZvY3VzYWJsZT0iZmFsc2UiYCBwcmV2ZW50cyBJRSBmcm9tIGFsbG93aW5nIHRoZSB1c2VyIHRvXG4gIHRhYiBpbnRvIHRoZSBTVkcgZWxlbWVudC5cbi0tXHgzZVxuXHgzYyEtLVxuICBBbGwgY2hpbGRyZW4gbmVlZCB0byBiZSBoaWRkZW4gZm9yIHNjcmVlbiByZWFkZXJzIGluIG9yZGVyIHRvIHN1cHBvcnQgQ2hyb21lVm94LlxuICBNb3JlIGNvbnRleHQgaW4gdGhlIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8yMjE2NS5cbi0tXHgzZVxuPHN2Z1xuICBbc3R5bGUud2lkdGgucHhdPSJkaWFtZXRlciJcbiAgW3N0eWxlLmhlaWdodC5weF09ImRpYW1ldGVyIlxuICBbYXR0ci52aWV3Qm94XT0iX2dldFZpZXdCb3goKSJcbiAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgZm9jdXNhYmxlPSJmYWxzZSJcbiAgW25nU3dpdGNoXT0ibW9kZSA9PT0gXCdpbmRldGVybWluYXRlXCciXG4gIGFyaWEtaGlkZGVuPSJ0cnVlIj5cblxuICBceDNjIS0tXG4gICAgVGVjaG5pY2FsbHkgd2UgY2FuIHJldXNlIHRoZSBzYW1lIGBjaXJjbGVgIGVsZW1lbnQsIGhvd2V2ZXIgU2FmYXJpIGhhcyBhbiBpc3N1ZSB0aGF0IGJyZWFrc1xuICAgIHRoZSBTVkcgcmVuZGVyaW5nIGluIGRldGVybWluYXRlIG1vZGUsIGFmdGVyIHN3aXRjaGluZyBiZXR3ZWVuIGluZGV0ZXJtaW5hdGUgYW5kIGRldGVybWluYXRlLlxuICAgIFVzaW5nIGEgZGlmZmVyZW50IGVsZW1lbnQgYXZvaWRzIHRoZSBpc3N1ZS4gQW4gYWx0ZXJuYXRpdmUgdG8gdGhpcyBpcyBhZGRpbmcgYGRpc3BsYXk6IG5vbmVgXG4gICAgZm9yIGEgc3BsaXQgc2Vjb25kIGFuZCB0aGVuIHJlbW92aW5nIGl0IHdoZW4gc3dpdGNoaW5nIGJldHdlZW4gbW9kZXMsIGJ1dCBpdFwncyBoYXJkIHRvIGtub3dcbiAgICBmb3IgaG93IGxvbmcgdG8gaGlkZSB0aGUgZWxlbWVudCBhbmQgaXQgY2FuIGNhdXNlIHRoZSBVSSB0byBibGluay5cbiAgLS1ceDNlXG4gIDxjaXJjbGVcbiAgICAqbmdTd2l0Y2hDYXNlPSJ0cnVlIlxuICAgIGN4PSI1MCUiXG4gICAgY3k9IjUwJSJcbiAgICBbYXR0ci5yXT0iX2dldENpcmNsZVJhZGl1cygpIlxuICAgIFtzdHlsZS5hbmltYXRpb24tbmFtZV09IlwnbWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS1cJyArIF9zcGlubmVyQW5pbWF0aW9uTGFiZWwiXG4gICAgW3N0eWxlLnN0cm9rZS1kYXNob2Zmc2V0LnB4XT0iX2dldFN0cm9rZURhc2hPZmZzZXQoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLWRhc2hhcnJheS5weF09Il9nZXRTdHJva2VDaXJjdW1mZXJlbmNlKCkiXG4gICAgW3N0eWxlLnN0cm9rZS13aWR0aC4lXT0iX2dldENpcmNsZVN0cm9rZVdpZHRoKCkiPjwvY2lyY2xlPlxuXG4gIDxjaXJjbGVcbiAgICAqbmdTd2l0Y2hDYXNlPSJmYWxzZSJcbiAgICBjeD0iNTAlIlxuICAgIGN5PSI1MCUiXG4gICAgW2F0dHIucl09Il9nZXRDaXJjbGVSYWRpdXMoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLWRhc2hvZmZzZXQucHhdPSJfZ2V0U3Ryb2tlRGFzaE9mZnNldCgpIlxuICAgIFtzdHlsZS5zdHJva2UtZGFzaGFycmF5LnB4XT0iX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoLiVdPSJfZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKSI+PC9jaXJjbGU+XG48L3N2Zz5cbicsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsc3R5bGVzOlsiLm1hdC1wcm9ncmVzcy1zcGlubmVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBzdmd7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RvcDowO2xlZnQ6MDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7ZmlsbDp0cmFuc3BhcmVudDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2l0aW9uOnN0cm9rZS1kYXNob2Zmc2V0IDIyNW1zIGxpbmVhcn0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2U6Q2FudmFzVGV4dH0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGUgMjAwMG1zIGxpbmVhciBpbmZpbml0ZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIGNpcmNsZXt0cmFuc2l0aW9uLXByb3BlcnR5OnN0cm9rZTthbmltYXRpb24tZHVyYXRpb246NDAwMG1zO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2sgMTAwMDBtcyBjdWJpYy1iZXppZXIoMC44NywgMC4wMywgMC4zMywgMSkgaW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gc3Zne3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBjaXJjbGV7dHJhbnNpdGlvbi1wcm9wZXJ0eTpzdHJva2V9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGV7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLTEwMHswJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41JXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41MDAxJXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoNzIuNWRlZyl9MjUle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSg3Mi41ZGVnKX0yNS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9MzcuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MC4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfTYyLjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9NjIuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NSV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9ODcuNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfTg3LjUwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgzNDEuNWRlZyl9MTAwJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMzQxLjVkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2t7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0yNSV7dHJhbnNmb3JtOnJvdGF0ZSgxMTcwZGVnKX01MCV7dHJhbnNmb3JtOnJvdGF0ZSgyMzQwZGVnKX03NSV7dHJhbnNmb3JtOnJvdGF0ZSgzNTEwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoNDY4MGRlZyl9fVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6d3p9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlt0MV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBpMXt9aTEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGkxKX0saTEuybVtb2Q9YW8oe3R5cGU6aTF9KSxpMS7JtWluaj12bih7aW1wb3J0czpbW1hJLFdNXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGkxLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbWEksV01dLGV4cG9ydHM6W24xLG8xLFhJXSxkZWNsYXJhdGlvbnM6W24xLG8xXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKGkxLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bbjEsbzFdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1hJLFdNXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltuMSxvMSxYSV19fSk7Y29uc3QgYTE9WyJyZWdleFN0cmluZ0lucHV0Il07ZnVuY3Rpb24gcjEodCxlKXtpZigxJnQmJihObSgwKSxSbSgxLCJsaSIsMjIpLGt1KDIpLEFtKCksem0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0O3JjKDEpLERtKCJ0aXRsZSIsdC5uYW1lKSxyYygxKSxTdSh0Lm5hbWUpfX1mdW5jdGlvbiBzMSh0LGUpe2lmKDEmdCYmKFJtKDAsImxpIiwyMyksUm0oMSwiZW0iKSxrdSgyKSxBaCgzLCJudW1iZXIiKSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpLiRpbXBsaWNpdDtyYygyKSxEdSgiYW5kICIsVGgoMywxLHQucnVucy5sZW5ndGgtNSksIiBtb3JlIil9fWZ1bmN0aW9uIGwxKHQsZSl7MSZ0JiYoUm0oMCwibGkiLDI0KSxSbSgxLCJlbSIpLGt1KDIsIk5vIHJ1bnMgYXJlIGluIHRoZSBncm91cCIpLEFtKCksQW0oKSl9Y29uc3QgYzE9ZnVuY3Rpb24odCl7cmV0dXJue2JvcmRlckNvbG9yOnR9fSxkMT1mdW5jdGlvbih0KXtyZXR1cm57YmFja2dyb3VuZENvbG9yOnR9fTtmdW5jdGlvbiBwMSh0LGUpe2lmKDEmdCYmKFJtKDAsInVsIiwxNiksUm0oMSwibGkiKSxSbSgyLCJsYWJlbCIpLFRtKDMsInNwYW4iLDE3KSxSbSg0LCJjb2RlIiwxOCksa3UoNSksQW0oKSxBbSgpLFJtKDYsInVsIiksUXAoNyxyMSwzLDIsIm5nLWNvbnRhaW5lciIsMTkpLEFoKDgsInNsaWNlIiksUXAoOSxzMSw0LDMsImxpIiwyMCksUXAoMTAsbDEsMywwLCJsaSIsMjEpLEFtKCksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7RG0oIm5nU3R5bGUiLE1oKDExLGMxLHQuY29sb3IpKSxyYygzKSxEbSgibmdTdHlsZSIsTWgoMTMsZDEsdC5jb2xvcikpLHJjKDEpLERtKCJ0aXRsZSIsdC5ncm91cElkKSxyYygxKSxTdSh0Lmdyb3VwSWQpLHJjKDIpLERtKCJuZ0Zvck9mIix6aCg4LDcsdC5ydW5zLDAsNSkpLHJjKDIpLERtKCJuZ0lmIix0LnJ1bnMubGVuZ3RoPjUpLHJjKDEpLERtKCJuZ0lmIiwwPT09dC5ydW5zLmxlbmd0aCl9fWZ1bmN0aW9uIG0xKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwxNCksUXAoMSxwMSwxMSwxNSwidWwiLDE1KSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoMSksRG0oIm5nRm9yT2YiLHQuY29sb3JSdW5QYWlyTGlzdCl9fWZ1bmN0aW9uIHUxKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwyNSksa3UoMSwiIFRoZXJlIGFyZSBubyBydW5zIG1hdGNoaW5nIHRoZSByZWdleCwgIiksUm0oMiwiY29kZSIpLGt1KDMpLEFtKCksa3UoNCwiLiBQbGVhc2UgY2hlY2sgaWYgeW91ciByZWdleCBzdHJpbmcgaXMgY29ycmVjdC4gIiksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO3JjKDMpLER1KCIvIix0LnJlZ2V4U3RyaW5nLCIvIil9fWZ1bmN0aW9uIGYxKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwxMCksUm0oMSwiaDQiKSxrdSgyLCJDb2xvciBncm91cCBwcmV2aWV3IiksQW0oKSxSbSgzLCJkaXYiLDExKSxRcCg0LG0xLDIsMSwiZGl2IiwxMiksUXAoNSx1MSw1LDEsIm5nLXRlbXBsYXRlIixudWxsLDEzLGliKSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD0kcCg2KSxlPVltKCk7cmMoNCksRG0oIm5nSWYiLGUuY29sb3JSdW5QYWlyTGlzdC5sZW5ndGgpKCJuZ0lmRWxzZSIsdCl9fWNsYXNzIGcxe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5kaWFsb2dSZWY9dCx0aGlzLmhvc3RFbFJlZj1lLHRoaXMub25TYXZlPW5ldyBMaCx0aGlzLnJlZ2V4SW5wdXRPbkNoYW5nZT1uZXcgTGgsdGhpcy50aW1lT3V0SWQ9MH1yZXNldEZvY3VzKCl7dGhpcy5ob3N0RWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KXx8dGhpcy5yZWdleFN0cmluZ0lucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1vbkVudGVyKHQpe3RoaXMub25TYXZlQ2xpY2sodCksdGhpcy5kaWFsb2dSZWYuY2xvc2UoKX1vblNhdmVDbGljayh0KXt0aGlzLm9uU2F2ZS5lbWl0KHQpfWZpbGxFeGFtcGxlKHQpe3RoaXMucmVnZXhTdHJpbmc9dCx0aGlzLnJlZ2V4SW5wdXRDaGFuZ2UodCl9cmVnZXhJbnB1dENoYW5nZSh0KXt0aGlzLnJlZ2V4SW5wdXRPbkNoYW5nZS5lbWl0KHQpfWhhbmRsZUZvY3VzT3V0KCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZU91dElkKSx0aGlzLnRpbWVPdXRJZD1zZXRUaW1lb3V0KHRoaXMucmVzZXRGb2N1cy5iaW5kKHRoaXMpLDApfX1nMS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZzEpKFNtKFhHKSxTbShoZykpfSxnMS7JtWNtcD10byh7dHlwZTpnMSxzZWxlY3RvcnM6W1sicmVnZXgtZWRpdC1kaWFsb2ctY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChhMSw3KSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLnJlZ2V4U3RyaW5nSW5wdXQ9dC5maXJzdCl9fSxpbnB1dHM6e3JlZ2V4U3RyaW5nOiJyZWdleFN0cmluZyIsY29sb3JSdW5QYWlyTGlzdDoiY29sb3JSdW5QYWlyTGlzdCJ9LG91dHB1dHM6e29uU2F2ZToib25TYXZlIixyZWdleElucHV0T25DaGFuZ2U6InJlZ2V4SW5wdXRPbkNoYW5nZSJ9LGRlY2xzOjMwLHZhcnM6Mixjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gdD0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiQ29sb3IgUnVucyBieSBSZWdleCBRdWVyeSIpOiRsb2NhbGl6ZWA6Q29sb3IgUnVucyBieSBSZWdleCBRdWVyeeKQnzE1ZWQ5ZjZmZDJkNDkwNmE0ODAzZmMxMjU1ZGUzYzVkYjJjNTY1MzDikJ85MDg4OTg1MTEzOTYwMzEyODA4OkNvbG9yIFJ1bnMgYnkgUmVnZXggUXVlcnlgLFtbMSwicmVnZXgtZWRpdC1kaWFsb2ciLDMsImZvY3Vzb3V0Il0sWyJtYXQtZGlhbG9nLXRpdGxlIiwiIl0sWyJtYXRJbnB1dCIsIiIsImFyaWEtbGFiZWwiLHQsImNka0ZvY3VzSW5pdGlhbCIsIiIsMywidmFsdWUiLCJrZXlkb3duLmVudGVyIiwiaW5wdXQiXSxbInJlZ2V4U3RyaW5nSW5wdXQiLCIiXSxbMSwiZXhhbXBsZS1kZXRhaWxzIl0sWzMsImNsaWNrIl0sWyJjbGFzcyIsImdyb3VwLWNvbnRhaW5lciIsNCwibmdJZiJdLFsibWF0LWRpYWxvZy1hY3Rpb25zIiwiIiwiYWxpZ24iLCJlbmQiXSxbIm1hdC1idXR0b24iLCIiLCJtYXQtZGlhbG9nLWNsb3NlIiwiIl0sWyJtYXQtcmFpc2VkLWJ1dHRvbiIsIiIsImNvbG9yIiwicHJpbWFyeSIsIm1hdC1kaWFsb2ctY2xvc2UiLCIiLDMsImNsaWNrIl0sWzEsImdyb3VwLWNvbnRhaW5lciJdLFsxLCJncm91cGluZy1wcmV2aWV3Il0sWyJjbGFzcyIsIm1hdGNoLWNvbnRhaW5lciIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJlbXB0eSIsIiJdLFsxLCJtYXRjaC1jb250YWluZXIiXSxbImNsYXNzIiwiZ3JvdXAiLDMsIm5nU3R5bGUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJncm91cCIsMywibmdTdHlsZSJdLFsxLCJjb2xvci1zd2F0Y2giLDMsIm5nU3R5bGUiXSxbMSwiZ3JvdXAtaWQiLDMsInRpdGxlIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xhc3MiLCJtb3JlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm5vLW1hdGNoIiw0LCJuZ0lmIl0sWzMsInRpdGxlIl0sWzEsIm1vcmUiXSxbMSwibm8tbWF0Y2giXSxbMSwid2FybmluZyJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMCksVm0oImZvY3Vzb3V0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmhhbmRsZUZvY3VzT3V0KCl9KSksUm0oMSwiaDEiLDEpLGt1KDIsIkNvbG9yIHJ1bnMgYnkgcmVnZXgiKSxBbSgpLFJtKDMsIm1hdC1kaWFsb2ctY29udGVudCIpLFJtKDQsInAiKSxrdSg1LCJFbnRlciBhIHJlZ2V4IHdpdGggY2FwdHVyaW5nIGdyb3VwcyB0byBtYXRjaCBhZ2FpbnN0IHJ1biBuYW1lczoiKSxBbSgpLFJtKDYsIm1hdC1mb3JtLWZpZWxkIiksUm0oNywiaW5wdXQiLDIsMyksVm0oImtleWRvd24uZW50ZXIiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uRW50ZXIoZS50YXJnZXQudmFsdWUpfSkpKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ucmVnZXhJbnB1dENoYW5nZShlLnRhcmdldC52YWx1ZSl9KSksQW0oKSxBbSgpLEFtKCksUm0oOSwiZGl2Iiw0KSxSbSgxMCwicCIpLGt1KDExLCcgRWFjaCBtYXRjaGluZyBydW4gd2lsbCBiZSBhc3NpZ25lZCBhIGNvbG9yIGJhc2VkIG9uIHRoZSAia2V5IiBmb3JtZWQgYnkgaXRzIG1hdGNoZXMgdG8gdGhlIGNhcHR1cmluZyBncm91cHMuICcpLFRtKDEyLCJiciIpLFJtKDEzLCJidXR0b24iLDUpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5maWxsRXhhbXBsZSgiKHRyYWlufGV2YWwpIil9KSksa3UoMTQsIiBUcnkgIiksUm0oMTUsImNvZGUiKSxrdSgxNiwiKHRyYWlufGV2YWwpIiksQW0oKSxBbSgpLGt1KDE3LCIgdG8gYXNzaWduIGFsbCBydW5zIGNvbnRhaW5pbmcgIiksUm0oMTgsImNvZGUiKSxrdSgxOSwidHJhaW4iKSxBbSgpLGt1KDIwLCIgdG8gb25lIGNvbG9yIGFuZCBhbGwgcnVucyBjb250YWluaW5nICIpLFJtKDIxLCJjb2RlIiksa3UoMjIsImV2YWwiKSxBbSgpLGt1KDIzLCIgdG8gYW5vdGhlciBjb2xvci4gIiksQW0oKSxBbSgpLFFwKDI0LGYxLDcsMiwiZGl2Iiw2KSxSbSgyNSwiZGl2Iiw3KSxSbSgyNiwiYnV0dG9uIiw4KSxrdSgyNywiQ2FuY2VsIiksQW0oKSxSbSgyOCwiYnV0dG9uIiw5KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7aGkodCk7Y29uc3Qgbz0kcCg4KTtyZXR1cm4gbi5vblNhdmVDbGljayhvLnZhbHVlKX0pKSxrdSgyOSwiIFNhdmUgIiksQW0oKSxBbSgpLEFtKCl9MiZlJiYocmMoNyksS20oInZhbHVlIixuLnJlZ2V4U3RyaW5nKSxyYygxNyksRG0oIm5nSWYiLG4ucmVnZXhTdHJpbmcpKX0sZGlyZWN0aXZlczpbclcsc1csQVYsTFksZE0sbFcsWEgsYVcsbE0sQ01dLHBpcGVzOltVTSxGTV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LmV4YW1wbGUtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7cGFkZGluZzowO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y29sb3I6IzE5NzZkMn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZXhhbXBsZS1kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5leGFtcGxlLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNDJhNWY1fS5leGFtcGxlLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXTp2aXNpdGVke2NvbG9yOiM3YjFmYTJ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmV4YW1wbGUtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVdOnZpc2l0ZWQsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5leGFtcGxlLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXTp2aXNpdGVke2NvbG9yOiNiYTY4Yzh9Lmdyb3VwLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjEwcHggMH0uZ3JvdXAtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tYm90dG9tOjEwcHh9Lmdyb3VwLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAud2FybmluZ1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTtmb250LXNpemU6LjllbX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC53YXJuaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAud2FybmluZ1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Lmdyb3VwaW5nLXByZXZpZXdbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjttYXgtaGVpZ2h0OjUwdmg7b3ZlcmZsb3cteTphdXRvO3BhZGRpbmc6MjBweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXBpbmctcHJldmlld1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cGluZy1wcmV2aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICM1NTV9Lm1hdGNoLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6ZmxleC1zdGFydDtkaXNwbGF5OmdyaWQ7ZmxleC13cmFwOndyYXA7Z2FwOjEwcHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLCBtaW5tYXgoNTAlLCAxZnIpKX0uY29sb3Itc3dhdGNoW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmFkaXVzOjUwJTtib3gtc2hhZG93OjAgMCAycHggIzAwMDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTVweDt3aWR0aDoxNXB4fXVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaXN0LXN0eWxlLXR5cGU6bm9uZTtwYWRkaW5nOjB9bWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9Lmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7Ym9yZGVyLXJhZGl1czozcHg7bWFyZ2luOjA7cGFkZGluZzoxMHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjNTU1fS5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICBsYWJlbFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpncmlkO2dhcDoxMHB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczptYXgtY29udGVudCBhdXRvO3BhZGRpbmc6NXB4IDB9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fS5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICBsYWJlbFtfbmdjb250ZW50LSVDT01QJV0gICAuZ3JvdXAtaWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTouOTVlbTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6LjllbX0uZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgdWxbX25nY29udGVudC0lQ09NUCVdICAgbGlbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgLm1vcmVbX25nY29udGVudC0lQ09NUCVdLCAuZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgLm5vLW1hdGNoW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO21hcmdpbi10b3A6NXB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubW9yZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubW9yZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uby1tYXRjaFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubm8tbWF0Y2hbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnMSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJyZWdleC1lZGl0LWRpYWxvZy1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJyZWdleF9lZGl0X2RpYWxvZy5uZy5odG1sIixzdHlsZVVybHM6WyJyZWdleF9lZGl0X2RpYWxvZ19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhHfSx7dHlwZTpoZ31dfSkse3JlZ2V4U3RyaW5nOlt7dHlwZTp4eX1dLGNvbG9yUnVuUGFpckxpc3Q6W3t0eXBlOnh5fV0sb25TYXZlOlt7dHlwZTpPeX1dLHJlZ2V4SW5wdXRPbkNoYW5nZTpbe3R5cGU6T3l9XSxyZWdleFN0cmluZ0lucHV0Olt7dHlwZTpaYSxhcmdzOlsicmVnZXhTdHJpbmdJbnB1dCIse3N0YXRpYzohMH1dfV19KTtjbGFzcyBoMXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5zdG9yZT10LHRoaXMuZGlhbG9nUmVmPWUsdGhpcy50ZW50YXRpdmVSZWdleFN0cmluZyQ9bmV3IEksdGhpcy5ncm91cEJ5UmVnZXhTdHJpbmckPVF0KCgoKT0+cmUodGhpcy5zdG9yZS5zZWxlY3QoTU4pLnBpcGUoYmUoMSkpLHRoaXMudGVudGF0aXZlUmVnZXhTdHJpbmckKSkpLnBpcGUoTmUoIiIpKSx0aGlzLmNvbG9yUnVuUGFpckxpc3QkPVF0KCgoKT0+dGhpcy5ncm91cEJ5UmVnZXhTdHJpbmckLnBpcGUoZ2UoNTAwKSxjZSgodD0+e3RyeXtjb25zdCBlPW5ldyBSZWdFeHAodCk7cmV0dXJuIEJvb2xlYW4oZSl9Y2F0Y2godCl7cmV0dXJuITF9fSkpLGZlKHRoaXMuYWxsUnVucyQsdGhpcy5ydW5JZFRvRWlkJCx0aGlzLnN0b3JlLnNlbGVjdChBTiksdGhpcy5zdG9yZS5zZWxlY3QoSkQpKSxJdCgoKFt0LGUsbixvLGldKT0+e2NvbnN0IGE9bk4oe2tleTp0Ti5SRUdFWCxyZWdleFN0cmluZzp0fSxlLG4pLHI9bmV3IE1hcCxzPVtdO2Zvcihjb25zdFt0LGVdb2YgT2JqZWN0LmVudHJpZXMoYS5tYXRjaGVzKSl7bGV0IG49ci5nZXQodCk7aWYoIW4pe2NvbnN0IGU9by5jb2xvcnNbci5zaXplJW8uY29sb3JzLmxlbmd0aF07bj1pP2UuZGFya0hleDplLmxpZ2h0SGV4LHIuc2V0KHQsbil9cy5wdXNoKHtncm91cElkOnQsY29sb3I6bixydW5zOmV9KX1yZXR1cm4gc30pKSkpKS5waXBlKE5lKFtdKSksdGhpcy5leHBlcmltZW50SWRzPW4uZXhwZXJpbWVudElkcyx0aGlzLnJ1bklkVG9FaWQkPVd0KHRoaXMuZXhwZXJpbWVudElkcy5tYXAoKHQ9PnRoaXMuc3RvcmUuc2VsZWN0KGNOLHtleHBlcmltZW50SWQ6dH0pLnBpcGUoSXQoKGU9Pih7ZXhwZXJpbWVudElkOnQscnVuSWRzOmV9KSkpKSkpKS5waXBlKEl0KCh0PT57Y29uc3QgZT17fTtmb3IoY29uc3R7cnVuSWRzOm4sZXhwZXJpbWVudElkOm99b2YgdClmb3IoY29uc3QgdCBvZiBuKWVbdF09bztyZXR1cm4gZX0pKSksdGhpcy5hbGxSdW5zJD1XdCh0aGlzLmV4cGVyaW1lbnRJZHMubWFwKCh0PT50aGlzLnN0b3JlLnNlbGVjdChsTix7ZXhwZXJpbWVudElkOnR9KSkpKS5waXBlKEl0KCh0PT50LmZsYXQoKSkpKX1vblJlZ2V4SW5wdXRPbkNoYW5nZSh0KXt0aGlzLnRlbnRhdGl2ZVJlZ2V4U3RyaW5nJC5uZXh0KHQpfW9uU2F2ZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKEdSKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxncm91cEJ5OntrZXk6dE4uUkVHRVgscmVnZXhTdHJpbmc6dH19KSl9fWZ1bmN0aW9uIGIxKHQsZSl7MSZ0JiZUbSgwLCJtYXQtaWNvbiIsMTEpfWZ1bmN0aW9uIHkxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwxMCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe2hpKHQpO2NvbnN0IG49WW0oKTtyZXR1cm4gbi5vbkdyb3VwQnlDaGFuZ2UuZW1pdCh7a2V5Om4uR3JvdXBCeUtleS5FWFBFUklNRU5UfSl9KSksUm0oMSwic3BhbiIpLFFwKDIsYjEsMSwwLCJtYXQtaWNvbiIsNyksQW0oKSxSbSgzLCJsYWJlbCIpLGt1KDQsIkV4cGVyaW1lbnQiKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7anAoImFyaWEtY2hlY2tlZCIsdC5zZWxlY3RlZEdyb3VwQnkua2V5PT09dC5Hcm91cEJ5S2V5LkVYUEVSSU1FTlQpLHJjKDIpLERtKCJuZ0lmIix0LnNlbGVjdGVkR3JvdXBCeS5rZXk9PT10Lkdyb3VwQnlLZXkuRVhQRVJJTUVOVCl9fWZ1bmN0aW9uIF8xKHQsZSl7MSZ0JiZUbSgwLCJtYXQtaWNvbiIsMTEpfWZ1bmN0aW9uIEMxKHQsZSl7MSZ0JiZUbSgwLCJtYXQtaWNvbiIsMTEpfWZ1bmN0aW9uIE0xKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwxMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLm9uR3JvdXBCeVJlZ2V4Q2xpY2soKX0pKSxSbSgxLCJzcGFuIiksUXAoMixDMSwxLDAsIm1hdC1pY29uIiw3KSxBbSgpLFJtKDMsImxhYmVsIiksa3UoNCwiUmVnZXgiKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7anAoImFyaWEtY2hlY2tlZCIsdC5zZWxlY3RlZEdyb3VwQnkua2V5PT09dC5Hcm91cEJ5S2V5LlJFR0VYKSxyYygyKSxEbSgibmdJZiIsdC5zZWxlY3RlZEdyb3VwQnkua2V5PT09dC5Hcm91cEJ5S2V5LlJFR0VYKX19ZnVuY3Rpb24gdjEodCxlKXtpZigxJnQmJihSbSgwLCJsYWJlbCIpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygxKSxTdSh0LnJlZ2V4U3RyaW5nKX19ZnVuY3Rpb24geDEodCxlKXsxJnQmJihSbSgwLCJsYWJlbCIsMTcpLGt1KDEsIihub25lIHNldCkiKSxBbSgpKX1mdW5jdGlvbiBPMSh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImJ1dHRvbiIsMTMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vblJlZ2V4U3RyaW5nRWRpdCgpfSkpLFJtKDEsInNwYW4iKSxUbSgyLCJtYXQtaWNvbiIsMTQpLEFtKCksUXAoMyx2MSwyLDEsImxhYmVsIiwxNSksUXAoNCx4MSwyLDAsImxhYmVsIiwxNiksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtyYygzKSxEbSgibmdJZiIsdC5yZWdleFN0cmluZykscmMoMSksRG0oIm5nSWYiLCF0LnJlZ2V4U3RyaW5nKX19aDEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGgxKShTbShJdyksU20oWEcpLFNtKEpHKSl9LGgxLsm1Y21wPXRvKHt0eXBlOmgxLHNlbGVjdG9yczpbWyJyZWdleC1lZGl0LWRpYWxvZyJdXSxkZWNsczozLHZhcnM6Nixjb25zdHM6W1szLCJyZWdleFN0cmluZyIsImNvbG9yUnVuUGFpckxpc3QiLCJvblNhdmUiLCJyZWdleElucHV0T25DaGFuZ2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsInJlZ2V4LWVkaXQtZGlhbG9nLWNvbXBvbmVudCIsMCksVm0oIm9uU2F2ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TYXZlKGUpfSkpKCJyZWdleElucHV0T25DaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUmVnZXhJbnB1dE9uQ2hhbmdlKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJyZWdleFN0cmluZyIsVGgoMSwyLG4uZ3JvdXBCeVJlZ2V4U3RyaW5nJCkpKCJjb2xvclJ1blBhaXJMaXN0IixUaCgyLDQsbi5jb2xvclJ1blBhaXJMaXN0JCkpfSxkaXJlY3RpdmVzOltnMV0scGlwZXM6W3dNXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdLCByZWdleC1lZGl0LWRpYWxvZy1jb21wb25lbnRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGgxLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InJlZ2V4LWVkaXQtZGlhbG9nIix0ZW1wbGF0ZTonPHJlZ2V4LWVkaXQtZGlhbG9nLWNvbXBvbmVudFxuICAgIFtyZWdleFN0cmluZ109Imdyb3VwQnlSZWdleFN0cmluZyQgfCBhc3luYyJcbiAgICBbY29sb3JSdW5QYWlyTGlzdF09ImNvbG9yUnVuUGFpckxpc3QkIHwgYXN5bmMiXG4gICAgKG9uU2F2ZSk9Im9uU2F2ZSgkZXZlbnQpIlxuICAgIChyZWdleElucHV0T25DaGFuZ2UpPSJvblJlZ2V4SW5wdXRPbkNoYW5nZSgkZXZlbnQpIlxuICA+PC9yZWdleC1lZGl0LWRpYWxvZy1jb21wb25lbnQ+JyxzdHlsZXM6WyJcbiAgICAgIDpob3N0LFxuICAgICAgcmVnZXgtZWRpdC1kaWFsb2ctY29tcG9uZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd30se3R5cGU6WEd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltKR119XX1dfSksbnVsbCk7Y2xhc3MgUDF7Y29uc3RydWN0b3IodCl7dGhpcy5kaWFsb2c9dCx0aGlzLkdyb3VwQnlLZXk9dE4sdGhpcy5vbkdyb3VwQnlDaGFuZ2U9bmV3IExofW9uUmVnZXhTdHJpbmdFZGl0KCl7dGhpcy5kaWFsb2cub3BlbihoMSx7bWF4SGVpZ2h0OiI5NXZoIixtYXhXaWR0aDoiODB2dyIsZGF0YTp7ZXhwZXJpbWVudElkczp0aGlzLmV4cGVyaW1lbnRJZHN9fSl9b25Hcm91cEJ5UmVnZXhDbGljaygpe3RoaXMucmVnZXhTdHJpbmc/dGhpcy5vbkdyb3VwQnlDaGFuZ2UuZW1pdCh7a2V5OnROLlJFR0VYLHJlZ2V4U3RyaW5nOnRoaXMucmVnZXhTdHJpbmd9KTp0aGlzLm9uUmVnZXhTdHJpbmdFZGl0KCl9fVAxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQMSkoU20ob1cpKX0sUDEuybVjbXA9dG8oe3R5cGU6UDEsc2VsZWN0b3JzOltbInJ1bnMtZ3JvdXAtbWVudS1idXR0b24tY29tcG9uZW50Il1dLGlucHV0czp7c2hvd0V4cGVyaW1lbnRzR3JvdXBCeToic2hvd0V4cGVyaW1lbnRzR3JvdXBCeSIsZXhwZXJpbWVudElkczoiZXhwZXJpbWVudElkcyIscmVnZXhTdHJpbmc6InJlZ2V4U3RyaW5nIixzZWxlY3RlZEdyb3VwQnk6InNlbGVjdGVkR3JvdXBCeSIsc2hvd0dyb3VwQnlSZWdleDoic2hvd0dyb3VwQnlSZWdleCJ9LG91dHB1dHM6e29uR3JvdXBCeUNoYW5nZToib25Hcm91cEJ5Q2hhbmdlIn0sZGVjbHM6MTQsdmFyczo2LGNvbnN0czpbWyJtYXQtaWNvbi1idXR0b24iLCIiLCJ0aXRsZSIsIkNvbG9yIHJ1bnMgYnkuLi4iLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIl0sWyJzdmdJY29uIiwicGFsZXR0ZV8yNHB4Il0sWzEsInJ1bi10YWJsZS1jb2xvci1ncm91cC1ieSJdLFsiZ3JvdXBCeU1lbnUiLCJtYXRNZW51Il0sWzEsImxhYmVsIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtcmFkaW8iLCJkYXRhLXZhbHVlIiwiZXhwZXJpbWVudCIsMywiY2xpY2siLDQsIm5nSWYiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJyb2xlIiwibWVudWl0ZW1yYWRpbyIsImRhdGEtdmFsdWUiLCJydW4iLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiZG9uZV8yNHB4Iiw0LCJuZ0lmIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtcmFkaW8iLCJkYXRhLXZhbHVlIiwicmVnZXgiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtIiwiZGF0YS12YWx1ZSIsInJlZ2V4LWVkaXQiLCJjbGFzcyIsImRpc3BsYXktcmVnZXgtc3RyaW5nIiwzLCJjbGljayIsNCwibmdJZiJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInJvbGUiLCJtZW51aXRlbXJhZGlvIiwiZGF0YS12YWx1ZSIsImV4cGVyaW1lbnQiLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiZG9uZV8yNHB4Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtcmFkaW8iLCJkYXRhLXZhbHVlIiwicmVnZXgiLDMsImNsaWNrIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtIiwiZGF0YS12YWx1ZSIsInJlZ2V4LWVkaXQiLDEsImRpc3BsYXktcmVnZXgtc3RyaW5nIiwzLCJjbGljayJdLFsic3ZnSWNvbiIsImVkaXRfMjRweCJdLFs0LCJuZ0lmIl0sWyJjbGFzcyIsIm5vbmUtc2V0LXN0cmluZyIsNCwibmdJZiJdLFsxLCJub25lLXNldC1zdHJpbmciXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImJ1dHRvbiIsMCksVG0oMSwibWF0LWljb24iLDEpLEFtKCksUm0oMiwibWF0LW1lbnUiLDIsMyksUm0oNCwiZGl2Iiw0KSxrdSg1LCJDb2xvciBydW5zIGJ5IiksQW0oKSxRcCg2LHkxLDUsMiwiYnV0dG9uIiw1KSxSbSg3LCJidXR0b24iLDYpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkdyb3VwQnlDaGFuZ2UuZW1pdCh7a2V5Om4uR3JvdXBCeUtleS5SVU59KX0pKSxSbSg4LCJzcGFuIiksUXAoOSxfMSwxLDAsIm1hdC1pY29uIiw3KSxBbSgpLFJtKDEwLCJsYWJlbCIpLGt1KDExLCJSdW4iKSxBbSgpLEFtKCksUXAoMTIsTTEsNSwyLCJidXR0b24iLDgpLFFwKDEzLE8xLDUsMiwiYnV0dG9uIiw5KSxBbSgpKSwyJmUmJihEbSgibWF0TWVudVRyaWdnZXJGb3IiLCRwKDMpKSxyYyg2KSxEbSgibmdJZiIsbi5zaG93RXhwZXJpbWVudHNHcm91cEJ5KSxyYygxKSxqcCgiYXJpYS1jaGVja2VkIixuLnNlbGVjdGVkR3JvdXBCeS5rZXk9PT1uLkdyb3VwQnlLZXkuUlVOKSxyYygyKSxEbSgibmdJZiIsbi5zZWxlY3RlZEdyb3VwQnkua2V5PT09bi5Hcm91cEJ5S2V5LlJVTikscmMoMyksRG0oIm5nSWYiLG4uc2hvd0dyb3VwQnlSZWdleCkscmMoMSksRG0oIm5nSWYiLG4uc2hvd0dyb3VwQnlSZWdleCkpfSxkaXJlY3RpdmVzOltYSCxlWSxEVyxLVyxkTSxXV10sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9ICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5e2ZvbnQtc2l6ZToxNnB4fSAgLnJ1bi10YWJsZS1jb2xvci1ncm91cC1ieSAubGFiZWx7Y29sb3I6IzYxNjE2MTtmb250LXNpemU6LjllbTttYXJnaW46MTBweCAwO3BhZGRpbmc6MCAxNnB4O3BvaW50ZXItZXZlbnRzOm5vbmV9ICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5IGJ1dHRvbntkaXNwbGF5OmdyaWQ7Z2FwOjJweCAxMHB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczoyMHB4IGF1dG99ICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5IG1hdC1pY29ue2hlaWdodDoyMHB4O3dpZHRoOjIwcHh9ICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5IC5kaXNwbGF5LXJlZ2V4LXN0cmluZ3twYWRkaW5nLWxlZnQ6NDBweH0gIC5ydW4tdGFibGUtY29sb3ItZ3JvdXAtYnkgLmRpc3BsYXktcmVnZXgtc3RyaW5nIC5ub25lLXNldC1zdHJpbmd7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAgIC5ydW4tdGFibGUtY29sb3ItZ3JvdXAtYnkgLmRpc3BsYXktcmVnZXgtc3RyaW5nIC5ub25lLXNldC1zdHJpbmcsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgICAgLnJ1bi10YWJsZS1jb2xvci1ncm91cC1ieSAuZGlzcGxheS1yZWdleC1zdHJpbmcgLm5vbmUtc2V0LXN0cmluZ3tjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUDEsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoicnVucy1ncm91cC1tZW51LWJ1dHRvbi1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJydW5zX2dyb3VwX21lbnVfYnV0dG9uX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyJydW5zX2dyb3VwX21lbnVfYnV0dG9uX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6b1d9XX0pLHtzaG93RXhwZXJpbWVudHNHcm91cEJ5Olt7dHlwZTp4eX1dLGV4cGVyaW1lbnRJZHM6W3t0eXBlOnh5fV0scmVnZXhTdHJpbmc6W3t0eXBlOnh5fV0sc2VsZWN0ZWRHcm91cEJ5Olt7dHlwZTp4eX1dLHNob3dHcm91cEJ5UmVnZXg6W3t0eXBlOnh5fV0sb25Hcm91cEJ5Q2hhbmdlOlt7dHlwZTpPeX1dfSk7Y2xhc3MgdzF7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuc2hvd0dyb3VwQnlSZWdleCQ9dGhpcy5zdG9yZS5zZWxlY3QobkUpLHRoaXMuc2hvd0V4cGVyaW1lbnRzR3JvdXBCeSQ9dGhpcy5zdG9yZS5zZWxlY3QoRVMpLnBpcGUoSXQoKHQ9PnQuaGFzKFprLkNPTVBBUkVfRVhQRVJJTUVOVCkpKSksdGhpcy5zZWxlY3RlZEdyb3VwQnkkPXRoaXMuc3RvcmUuc2VsZWN0KGZOKSx0aGlzLmdyb3VwQnlSZWdleFN0cmluZyQ9dGhpcy5zdG9yZS5zZWxlY3QoTU4pfW9uR3JvdXBCeUNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKEdSKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxncm91cEJ5OnR9KSl9fXcxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx3MSkoU20oSXcpKX0sdzEuybVjbXA9dG8oe3R5cGU6dzEsc2VsZWN0b3JzOltbInJ1bnMtZ3JvdXAtbWVudS1idXR0b24iXV0saW5wdXRzOntleHBlcmltZW50SWRzOiJleHBlcmltZW50SWRzIn0sZGVjbHM6NSx2YXJzOjEzLGNvbnN0czpbWzMsInJlZ2V4U3RyaW5nIiwic2VsZWN0ZWRHcm91cEJ5Iiwic2hvd0dyb3VwQnlSZWdleCIsInNob3dFeHBlcmltZW50c0dyb3VwQnkiLCJleHBlcmltZW50SWRzIiwib25Hcm91cEJ5Q2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJydW5zLWdyb3VwLW1lbnUtYnV0dG9uLWNvbXBvbmVudCIsMCksVm0oIm9uR3JvdXBCeUNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25Hcm91cEJ5Q2hhbmdlKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQW0oKSksMiZlJiZEbSgicmVnZXhTdHJpbmciLFRoKDEsNSxuLmdyb3VwQnlSZWdleFN0cmluZyQpKSgic2VsZWN0ZWRHcm91cEJ5IixUaCgyLDcsbi5zZWxlY3RlZEdyb3VwQnkkKSkoInNob3dHcm91cEJ5UmVnZXgiLFRoKDMsOSxuLnNob3dHcm91cEJ5UmVnZXgkKSkoInNob3dFeHBlcmltZW50c0dyb3VwQnkiLFRoKDQsMTEsbi5zaG93RXhwZXJpbWVudHNHcm91cEJ5JCkpKCJleHBlcmltZW50SWRzIixuLmV4cGVyaW1lbnRJZHMpfSxkaXJlY3RpdmVzOltQMV0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHcxLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InJ1bnMtZ3JvdXAtbWVudS1idXR0b24iLHRlbXBsYXRlOidcbiAgICA8cnVucy1ncm91cC1tZW51LWJ1dHRvbi1jb21wb25lbnRcbiAgICAgIFtyZWdleFN0cmluZ109Imdyb3VwQnlSZWdleFN0cmluZyQgfCBhc3luYyJcbiAgICAgIFtzZWxlY3RlZEdyb3VwQnldPSJzZWxlY3RlZEdyb3VwQnkkIHwgYXN5bmMiXG4gICAgICBbc2hvd0dyb3VwQnlSZWdleF09InNob3dHcm91cEJ5UmVnZXgkIHwgYXN5bmMiXG4gICAgICBbc2hvd0V4cGVyaW1lbnRzR3JvdXBCeV09InNob3dFeHBlcmltZW50c0dyb3VwQnkkIHwgYXN5bmMiXG4gICAgICBbZXhwZXJpbWVudElkc109ImV4cGVyaW1lbnRJZHMiXG4gICAgICAob25Hcm91cEJ5Q2hhbmdlKT0ib25Hcm91cEJ5Q2hhbmdlKCRldmVudCkiXG4gICAgPjwvcnVucy1ncm91cC1tZW51LWJ1dHRvbi1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7ZXhwZXJpbWVudElkczpbe3R5cGU6eHl9XX0pO2NvbnN0IGsxPVsiY29udGFpbmVyIl07dmFyIFMxOyEoZnVuY3Rpb24odCl7dFt0Lk5PTkU9MF09Ik5PTkUiLHRbdC5MRUZUPTFdPSJMRUZUIix0W3QuUklHSFQ9Ml09IlJJR0hUIn0pKFMxfHwoUzE9e30pKTtjbGFzcyBEMXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmNoYW5nZURldGVjdG9yPXQsdGhpcy50aWNrQ291bnQ9MjAsdGhpcy52YWx1ZT1uZXcgTGgsdGhpcy5Qb3NpdGlvbj1TMSx0aGlzLmFjdGl2ZVRodW1iPVMxLk5PTkUsdGhpcy5vZmZzZXRYRnJvbU9yaWdpbk9mQWN0aXZlVGh1bWI9MCx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEl9Z2V0VGh1bWJQb3NpdGlvbih0KXtjb25zdCBlPXRoaXMuZ2V0Q2xpcHBlZFZhbHVlKHQpLG49dGhpcy5tYXgtdGhpcy5taW47cmV0dXJuIG48PTA/IjUwJSI6KGUtdGhpcy5taW4pL24qMTAwKyIlIn1nZXRUcmFja1dpZHRoKCl7Y29uc3QgdD10aGlzLm1heC10aGlzLm1pbjtyZXR1cm4gdDw9MD8iMCUiOih0aGlzLmdldENsaXBwZWRWYWx1ZSh0aGlzLnVwcGVyVmFsdWUpLXRoaXMuZ2V0Q2xpcHBlZFZhbHVlKHRoaXMubG93ZXJWYWx1ZSkpL3QqMTAwKyIlIn1nZXRDbGlwcGVkVmFsdWUodCl7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KHQsdGhpcy5taW4pLHRoaXMubWF4KX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9bmdPbkluaXQoKXtvZShkb2N1bWVudCwibW91c2Vtb3ZlIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5oYW5kbGVNb3VzZU1vdmUodCl9KSksb2UoZG9jdW1lbnQsIm1vdXNldXAiLHtwYXNzaXZlOiEwfSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLmhhbmRsZU1vdXNlT3V0KHQpfSkpfWhhbmRsZU1vdXNlRG93bih0LGUpe3RoaXMuYWN0aXZlVGh1bWI9ZSx0aGlzLm9mZnNldFhGcm9tT3JpZ2luT2ZBY3RpdmVUaHVtYj02LXQub2Zmc2V0WH1jYWxjdWxhdGVWYWx1ZUZyb21Nb3VzZUV2ZW50KHQpe2NvbnN0e2xlZnQ6ZSxyaWdodDpufT10aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dC5jbGllbnRYLWUrdGhpcy5vZmZzZXRYRnJvbU9yaWdpbk9mQWN0aXZlVGh1bWI7bGV0IGk7aWYobnVsbCE9PXRoaXMudGlja0NvdW50JiZ0aGlzLnRpY2tDb3VudD4wKXtjb25zdCB0PShuLWUpL3RoaXMudGlja0NvdW50O2k9TWF0aC5yb3VuZChvL3QpKnQvKG4tZSl9ZWxzZSBpPW8vKG4tZSk7Y29uc3QgYT10aGlzLmdldENsaXBwZWRWYWx1ZSh0aGlzLm1pbisodGhpcy5tYXgtdGhpcy5taW4pKmkpO3JldHVybiBOdW1iZXIoYS50b0ZpeGVkKDEwKSl9aGFuZGxlTW91c2VNb3ZlKHQpe2lmKHRoaXMuYWN0aXZlVGh1bWI9PT1TMS5OT05FKXJldHVybjtjb25zdCBlPXRoaXMuY2FsY3VsYXRlVmFsdWVGcm9tTW91c2VFdmVudCh0KTtsZXQgbj1bdGhpcy5sb3dlclZhbHVlLHRoaXMudXBwZXJWYWx1ZV07dGhpcy5hY3RpdmVUaHVtYj09PVMxLkxFRlQ/KGU+dGhpcy51cHBlclZhbHVlJiYodGhpcy5hY3RpdmVUaHVtYj1TMS5SSUdIVCksbj1bZSx0aGlzLnVwcGVyVmFsdWVdKTooZTx0aGlzLmxvd2VyVmFsdWUmJih0aGlzLmFjdGl2ZVRodW1iPVMxLkxFRlQpLG49W3RoaXMubG93ZXJWYWx1ZSxlXSksdGhpcy5tYXliZU5vdGlmeU5leHRWYWx1ZShuKSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpfW1heWJlTm90aWZ5TmV4dFZhbHVlKHQpe2NvbnN0W2Usbl09dC5zb3J0KCgodCxlKT0+dC1lKSk7dGhpcy5sb3dlclZhbHVlPT09ZSYmdGhpcy51cHBlclZhbHVlPT09bnx8dGhpcy52YWx1ZS5lbWl0KHtsb3dlclZhbHVlOmUsdXBwZXJWYWx1ZTpufSl9aGFuZGxlTW91c2VPdXQodCl7dGhpcy5hY3RpdmVUaHVtYiE9PVMxLk5PTkUmJih0aGlzLmFjdGl2ZVRodW1iPVMxLk5PTkUsdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKSl9aGFuZGxlSW5wdXRDaGFuZ2UodCxlKXtjb25zdCBuPXRoaXMuZ2V0Q2xpcHBlZFZhbHVlKE51bWJlcih0LnRhcmdldC52YWx1ZSkpO2lmKGlzTmFOKG4pKXJldHVybjtsZXQgbz1bdGhpcy5sb3dlclZhbHVlLHRoaXMudXBwZXJWYWx1ZV07bz1lPT09UzEuTEVGVD9bbix0aGlzLnVwcGVyVmFsdWVdOlt0aGlzLmxvd2VyVmFsdWUsbl0sdGhpcy5tYXliZU5vdGlmeU5leHRWYWx1ZShvKX1pc1RodW1iQWN0aXZlKHQpe3JldHVybiB0aGlzLmFjdGl2ZVRodW1iPT09dH19RDEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEQxKShTbShVZykpfSxEMS7JtWNtcD10byh7dHlwZTpEMSxzZWxlY3RvcnM6W1sidGItcmFuZ2UtaW5wdXQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKGsxLDcsaGcpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uY29udGFpbmVyPXQuZmlyc3QpfX0saW5wdXRzOnttaW46Im1pbiIsbWF4OiJtYXgiLGxvd2VyVmFsdWU6Imxvd2VyVmFsdWUiLHVwcGVyVmFsdWU6InVwcGVyVmFsdWUiLHRpY2tDb3VudDoidGlja0NvdW50In0sb3V0cHV0czp7dmFsdWU6InZhbHVlIn0sZGVjbHM6OCx2YXJzOjE0LGNvbnN0czpbWyJ0eXBlIiwibnVtYmVyIiwxLCJsb3dlci1pbnB1dCIsMywidmFsdWUiLCJjaGFuZ2UiXSxbInR5cGUiLCJudW1iZXIiLDEsInVwcGVyLWlucHV0IiwzLCJ2YWx1ZSIsImNoYW5nZSJdLFsxLCJjb250YWluZXIiXSxbImNvbnRhaW5lciIsIiJdLFsxLCJzbGlkZXItdHJhY2siXSxbMSwic2xpZGVyLXRyYWNrLWZpbGwiXSxbMSwidGh1bWIiLDMsIm1vdXNlZG93biJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiaW5wdXQiLDApLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmhhbmRsZUlucHV0Q2hhbmdlKGUsbi5Qb3NpdGlvbi5MRUZUKX0pKSxBbSgpLFJtKDEsImlucHV0IiwxKSxWbSgiY2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVJbnB1dENoYW5nZShlLG4uUG9zaXRpb24uUklHSFQpfSkpLEFtKCksUm0oMiwic3BhbiIsMiwzKSxUbSg0LCJzcGFuIiw0KSxUbSg1LCJzcGFuIiw1KSxSbSg2LCJzcGFuIiw2KSxWbSgibW91c2Vkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVNb3VzZURvd24oZSxuLlBvc2l0aW9uLkxFRlQpfSkpLEFtKCksUm0oNywic3BhbiIsNiksVm0oIm1vdXNlZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uaGFuZGxlTW91c2VEb3duKGUsbi5Qb3NpdGlvbi5SSUdIVCl9KSksQW0oKSxBbSgpKSwyJmUmJihEbSgidmFsdWUiLG4ubG93ZXJWYWx1ZSkscmMoMSksRG0oInZhbHVlIixuLnVwcGVyVmFsdWUpLHJjKDQpLGR1KCJsZWZ0IixuLmdldFRodW1iUG9zaXRpb24obi5sb3dlclZhbHVlKSkoIndpZHRoIixuLmdldFRyYWNrV2lkdGgoKSkscmMoMSksZHUoImxlZnQiLG4uZ2V0VGh1bWJQb3NpdGlvbihuLmxvd2VyVmFsdWUpKSxwdSgiYWN0aXZlIixuLmlzVGh1bWJBY3RpdmUobi5Qb3NpdGlvbi5MRUZUKSkscmMoMSksZHUoImxlZnQiLG4uZ2V0VGh1bWJQb3NpdGlvbihuLnVwcGVyVmFsdWUpKSxwdSgiYWN0aXZlIixuLmlzVGh1bWJBY3RpdmUobi5Qb3NpdGlvbi5SSUdIVCkpKX0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtZ3JpZDtncmlkLWdhcDoxMHB4O2dyaWQtdGVtcGxhdGUtYXJlYXM6Imxvd2VyLWlucHV0IHVwcGVyLWlucHV0IiAic2xpZGVyIHNsaWRlciI7Zm9udC1zaXplOjA7bWluLXdpZHRoOjEwMHB4O3BhZGRpbmc6NnB4fWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlfS5sb3dlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOmxvd2VyLWlucHV0fS51cHBlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOnVwcGVyLWlucHV0O2p1c3RpZnktc2VsZjpmbGV4LWVuZH0uY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLWFyZWE6c2xpZGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtZmxleDtoZWlnaHQ6MTJweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LnNsaWRlci10cmFja1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yNik7aGVpZ2h0OjJweDt3aWR0aDoxMDAlfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItdHJhY2tbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2xpZGVyLXRyYWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjMpfS5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjJweH0udGh1bWJbX25nY29udGVudC0lQ09NUCVde2JveC1zYWRob3c6MCAwIDAgMXB4IHJnYmEoMCwwLDAsLjI2KTtib3JkZXItcmFkaXVzOjEwMCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEycHg7bWFyZ2luLWxlZnQ6LTZweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZTt3aWR0aDoxMnB4O3dpbGwtY2hhbmdlOnRyYW5zZm9ybX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudGh1bWJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudGh1bWJbX25nY29udGVudC0lQ09NUCVde2JveC1zYWRob3c6MCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjMpfS50aHVtYi5hY3RpdmVbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTpzY2FsZSgxLjIpfS5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV0sIC50aHVtYltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZjU3YzAwfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC50aHVtYltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC50aHVtYltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZWY2YzAwfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChEMSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Yi1yYW5nZS1pbnB1dCIsdGVtcGxhdGVVcmw6Ii4vcmFuZ2VfaW5wdXRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vcmFuZ2VfaW5wdXRfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpVZ31dfSkse2NvbnRhaW5lcjpbe3R5cGU6WmEsYXJnczpbImNvbnRhaW5lciIse3N0YXRpYzohMCxyZWFkOmhnfV19XSxtaW46W3t0eXBlOnh5fV0sbWF4Olt7dHlwZTp4eX1dLGxvd2VyVmFsdWU6W3t0eXBlOnh5fV0sdXBwZXJWYWx1ZTpbe3R5cGU6eHl9XSx0aWNrQ291bnQ6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOk95fV19KTtjb25zdCBFMT1bImRpYWxvZ1BvcHVwIl0sUjE9WyJodWVTbGlkZXIiXSxBMT1bImFscGhhU2xpZGVyIl07ZnVuY3Rpb24gVDEodCxlKXtpZigxJnQmJlRtKDAsImRpdiIpLDImdCl7Y29uc3QgdD1ZbSgpO0F1KCJhcnJvdyBhcnJvdy0iLHQuY3BVc2VQb3NpdGlvbiwiIiksZHUoInRvcCIsdC5hcnJvd1RvcCwicHgiKX19ZnVuY3Rpb24gTjEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDI2KSxWbSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQ29sb3JDaGFuZ2Uobil9KSkoImRyYWdTdGFydCIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vbkRyYWdTdGFydCgic2F0dXJhdGlvbi1saWdodG5lc3MiKX0pKSgiZHJhZ0VuZCIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vbkRyYWdFbmQoInNhdHVyYXRpb24tbGlnaHRuZXNzIil9KSksVG0oMSwiZGl2IiwxMyksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtkdSgiYmFja2dyb3VuZC1jb2xvciIsdC5odWVTbGlkZXJDb2xvciksRG0oInJnWCIsMSkoInJnWSIsMSkscmMoMSksZHUoInRvcCIsbnVsbD09dC5zbGlkZXI/bnVsbDp0LnNsaWRlci52LCJweCIpKCJsZWZ0IixudWxsPT10LnNsaWRlcj9udWxsOnQuc2xpZGVyLnMsInB4Iil9fWZ1bmN0aW9uIHoxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwyNyksVm0oImNsaWNrIiwoZnVuY3Rpb24gZShuKXtoaSh0KTtjb25zdCBvPVltKCk7cmV0dXJuIG8ub25BZGRQcmVzZXRDb2xvcihuLG8uc2VsZWN0ZWRDb2xvcil9KSksa3UoMSksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtmdSh0LmNwQWRkQ29sb3JCdXR0b25DbGFzcyksRG0oImRpc2FibGVkIix0LmNwUHJlc2V0Q29sb3JzJiZ0LmNwUHJlc2V0Q29sb3JzLmxlbmd0aD49dC5jcE1heFByZXNldENvbG9yc0xlbmd0aCkscmMoMSksRHUoIiAiLHQuY3BBZGRDb2xvckJ1dHRvblRleHQsIiAiKX19ZnVuY3Rpb24gSTEodCxlKXsxJnQmJlRtKDAsImRpdiIsMjgpfWZ1bmN0aW9uIEgxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiaW5wdXQiLDM0KSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uQWxwaGFJbnB1dChuKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgicmciLDEpKCJ2YWx1ZSIsbnVsbD09dC5jbXlrVGV4dD9udWxsOnQuY215a1RleHQuYSl9fWZ1bmN0aW9uIEYxKHQsZSl7MSZ0JiYoUm0oMCwiZGl2Iiksa3UoMSwiQSIpLEFtKCkpfWZ1bmN0aW9uIEwxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwyOSksUm0oMSwiZGl2IiwzMCksUm0oMiwiaW5wdXQiLDMxKSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vbkN5YW5JbnB1dChuKX0pKSxBbSgpLFJtKDMsImlucHV0IiwzMSksVm0oImtleXVwLmVudGVyIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25NYWdlbnRhSW5wdXQobil9KSksQW0oKSxSbSg0LCJpbnB1dCIsMzEpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uWWVsbG93SW5wdXQobil9KSksQW0oKSxSbSg1LCJpbnB1dCIsMzEpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQmxhY2tJbnB1dChuKX0pKSxBbSgpLFFwKDYsSDEsMSwyLCJpbnB1dCIsMzIpLEFtKCksUm0oNywiZGl2IiwzMCksUm0oOCwiZGl2Iiksa3UoOSwiQyIpLEFtKCksUm0oMTAsImRpdiIpLGt1KDExLCJNIiksQW0oKSxSbSgxMiwiZGl2Iiksa3UoMTMsIlkiKSxBbSgpLFJtKDE0LCJkaXYiKSxrdSgxNSwiSyIpLEFtKCksUXAoMTYsRjEsMiwwLCJkaXYiLDMzKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7ZHUoImRpc3BsYXkiLDMhPT10LmZvcm1hdD8ibm9uZSI6ImJsb2NrIikscmMoMiksRG0oInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09dC5jbXlrVGV4dD9udWxsOnQuY215a1RleHQuYykscmMoMSksRG0oInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09dC5jbXlrVGV4dD9udWxsOnQuY215a1RleHQubSkscmMoMSksRG0oInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09dC5jbXlrVGV4dD9udWxsOnQuY215a1RleHQueSkscmMoMSksRG0oInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09dC5jbXlrVGV4dD9udWxsOnQuY215a1RleHQuaykscmMoMSksRG0oIm5nSWYiLCJkaXNhYmxlZCIhPT10LmNwQWxwaGFDaGFubmVsKSxyYygxMCksRG0oIm5nSWYiLCJkaXNhYmxlZCIhPT10LmNwQWxwaGFDaGFubmVsKX19ZnVuY3Rpb24gQjEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJpbnB1dCIsMzQpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25BbHBoYUlucHV0KG4pfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJyZyIsMSkoInZhbHVlIixudWxsPT10LmhzbGFUZXh0P251bGw6dC5oc2xhVGV4dC5hKX19ZnVuY3Rpb24gVjEodCxlKXsxJnQmJihSbSgwLCJkaXYiKSxrdSgxLCJBIiksQW0oKSl9ZnVuY3Rpb24gajEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDM1KSxSbSgxLCJkaXYiLDMwKSxSbSgyLCJpbnB1dCIsMzYpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uSHVlSW5wdXQobil9KSksQW0oKSxSbSgzLCJpbnB1dCIsMzEpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uU2F0dXJhdGlvbklucHV0KG4pfSkpLEFtKCksUm0oNCwiaW5wdXQiLDMxKSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vbkxpZ2h0bmVzc0lucHV0KG4pfSkpLEFtKCksUXAoNSxCMSwxLDIsImlucHV0IiwzMiksQW0oKSxSbSg2LCJkaXYiLDMwKSxSbSg3LCJkaXYiKSxrdSg4LCJIIiksQW0oKSxSbSg5LCJkaXYiKSxrdSgxMCwiUyIpLEFtKCksUm0oMTEsImRpdiIpLGt1KDEyLCJMIiksQW0oKSxRcCgxMyxWMSwyLDAsImRpdiIsMzMpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtkdSgiZGlzcGxheSIsMiE9PXQuZm9ybWF0PyJub25lIjoiYmxvY2siKSxyYygyKSxEbSgicmciLDM2MCkoInZhbHVlIixudWxsPT10LmhzbGFUZXh0P251bGw6dC5oc2xhVGV4dC5oKSxyYygxKSxEbSgicmciLDEwMCkoInZhbHVlIixudWxsPT10LmhzbGFUZXh0P251bGw6dC5oc2xhVGV4dC5zKSxyYygxKSxEbSgicmciLDEwMCkoInZhbHVlIixudWxsPT10LmhzbGFUZXh0P251bGw6dC5oc2xhVGV4dC5sKSxyYygxKSxEbSgibmdJZiIsImRpc2FibGVkIiE9PXQuY3BBbHBoYUNoYW5uZWwpLHJjKDgpLERtKCJuZ0lmIiwiZGlzYWJsZWQiIT09dC5jcEFscGhhQ2hhbm5lbCl9fWZ1bmN0aW9uIFUxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiaW5wdXQiLDM0KSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uQWxwaGFJbnB1dChuKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgicmciLDEpKCJ2YWx1ZSIsbnVsbD09dC5yZ2JhVGV4dD9udWxsOnQucmdiYVRleHQuYSl9fWZ1bmN0aW9uIEcxKHQsZSl7MSZ0JiYoUm0oMCwiZGl2Iiksa3UoMSwiQSIpLEFtKCkpfWZ1bmN0aW9uIFcxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwzNyksUm0oMSwiZGl2IiwzMCksUm0oMiwiaW5wdXQiLDM4KSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vblJlZElucHV0KG4pfSkpLEFtKCksUm0oMywiaW5wdXQiLDM4KSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vbkdyZWVuSW5wdXQobil9KSksQW0oKSxSbSg0LCJpbnB1dCIsMzgpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQmx1ZUlucHV0KG4pfSkpLEFtKCksUXAoNSxVMSwxLDIsImlucHV0IiwzMiksQW0oKSxSbSg2LCJkaXYiLDMwKSxSbSg3LCJkaXYiKSxrdSg4LCJSIiksQW0oKSxSbSg5LCJkaXYiKSxrdSgxMCwiRyIpLEFtKCksUm0oMTEsImRpdiIpLGt1KDEyLCJCIiksQW0oKSxRcCgxMyxHMSwyLDAsImRpdiIsMzMpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtkdSgiZGlzcGxheSIsMSE9PXQuZm9ybWF0PyJub25lIjoiYmxvY2siKSxyYygyKSxEbSgicmciLDI1NSkoInZhbHVlIixudWxsPT10LnJnYmFUZXh0P251bGw6dC5yZ2JhVGV4dC5yKSxyYygxKSxEbSgicmciLDI1NSkoInZhbHVlIixudWxsPT10LnJnYmFUZXh0P251bGw6dC5yZ2JhVGV4dC5nKSxyYygxKSxEbSgicmciLDI1NSkoInZhbHVlIixudWxsPT10LnJnYmFUZXh0P251bGw6dC5yZ2JhVGV4dC5iKSxyYygxKSxEbSgibmdJZiIsImRpc2FibGVkIiE9PXQuY3BBbHBoYUNoYW5uZWwpLHJjKDgpLERtKCJuZ0lmIiwiZGlzYWJsZWQiIT09dC5jcEFscGhhQ2hhbm5lbCl9fWZ1bmN0aW9uIFkxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiaW5wdXQiLDM0KSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uQWxwaGFJbnB1dChuKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgicmciLDEpKCJ2YWx1ZSIsdC5oZXhBbHBoYSl9fWZ1bmN0aW9uIHExKHQsZSl7MSZ0JiYoUm0oMCwiZGl2Iiksa3UoMSwiQSIpLEFtKCkpfWZ1bmN0aW9uIFoxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwzOSksUm0oMSwiZGl2IiwzMCksUm0oMiwiaW5wdXQiLDQwKSxWbSgiYmx1ciIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vbkhleElucHV0KG51bGwpfSkpKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uSGV4SW5wdXQobil9KSksQW0oKSxRcCgzLFkxLDEsMiwiaW5wdXQiLDMyKSxBbSgpLFJtKDQsImRpdiIsMzApLFJtKDUsImRpdiIpLGt1KDYsIkhleCIpLEFtKCksUXAoNyxxMSwyLDAsImRpdiIsMzMpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtkdSgiZGlzcGxheSIsMCE9PXQuZm9ybWF0PyJub25lIjoiYmxvY2siKSxwdSgiaGV4LWFscGhhIiwiZm9yY2VkIj09PXQuY3BBbHBoYUNoYW5uZWwpLHJjKDIpLERtKCJ2YWx1ZSIsdC5oZXhUZXh0KSxyYygxKSxEbSgibmdJZiIsImZvcmNlZCI9PT10LmNwQWxwaGFDaGFubmVsKSxyYyg0KSxEbSgibmdJZiIsImZvcmNlZCI9PT10LmNwQWxwaGFDaGFubmVsKX19ZnVuY3Rpb24gWDEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJpbnB1dCIsMzQpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25BbHBoYUlucHV0KG4pfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJyZyIsMSkoInZhbHVlIixudWxsPT10LmhzbGFUZXh0P251bGw6dC5oc2xhVGV4dC5hKX19ZnVuY3Rpb24gSzEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDQxKSxSbSgxLCJkaXYiLDMwKSxSbSgyLCJpbnB1dCIsMzEpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uVmFsdWVJbnB1dChuKX0pKSxBbSgpLFFwKDMsWDEsMSwyLCJpbnB1dCIsMzIpLEFtKCksUm0oNCwiZGl2IiwzMCksUm0oNSwiZGl2Iiksa3UoNiwiViIpLEFtKCksUm0oNywiZGl2Iiksa3UoOCwiQSIpLEFtKCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO3JjKDIpLERtKCJyZyIsMTAwKSgidmFsdWUiLG51bGw9PXQuaHNsYVRleHQ/bnVsbDp0LmhzbGFUZXh0LmwpLHJjKDEpLERtKCJuZ0lmIiwiZGlzYWJsZWQiIT09dC5jcEFscGhhQ2hhbm5lbCl9fWZ1bmN0aW9uIEoxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2Iiw0MiksUm0oMSwic3BhbiIsNDMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vbkZvcm1hdFRvZ2dsZSgtMSl9KSksQW0oKSxSbSgyLCJzcGFuIiw0MyksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLm9uRm9ybWF0VG9nZ2xlKDEpfSkpLEFtKCksQW0oKX19ZnVuY3Rpb24gUTEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJzcGFuIiw1MCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZShuKXtoaSh0KTtjb25zdCBvPVltKCkuJGltcGxpY2l0O3JldHVybiBZbSgzKS5vblJlbW92ZVByZXNldENvbG9yKG4sbyl9KSksQW0oKX0yJnQmJmZ1KFltKDQpLmNwUmVtb3ZlQ29sb3JCdXR0b25DbGFzcyl9ZnVuY3Rpb24gJDEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDQ4KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7Y29uc3Qgbj1oaSh0KS4kaW1wbGljaXQ7cmV0dXJuIFltKDMpLnNldENvbG9yRnJvbVN0cmluZyhuKX0pKSxRcCgxLFExLDEsMywic3BhbiIsNDkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMyk7ZHUoImJhY2tncm91bmQtY29sb3IiLHQpLHJjKDEpLERtKCJuZ0lmIixuLmNwQWRkQ29sb3JCdXR0b24pfX1mdW5jdGlvbiB0Myh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIpLFFwKDEsJDEsMiwzLCJkaXYiLDQ3KSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7ZnUodC5jcFByZXNldENvbG9yc0NsYXNzKSxyYygxKSxEbSgibmdGb3JPZiIsdC5jcFByZXNldENvbG9ycyl9fWZ1bmN0aW9uIGUzKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO2Z1KHQuY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzcykscmMoMSksU3UodC5jcFByZXNldEVtcHR5TWVzc2FnZSl9fWZ1bmN0aW9uIG4zKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiw0NCksVG0oMSwiaHIiKSxSbSgyLCJkaXYiLDQ1KSxrdSgzKSxBbSgpLFFwKDQsdDMsMiw0LCJkaXYiLDQ2KSxRcCg1LGUzLDIsNCwiZGl2Iiw0NiksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMyksU3UodC5jcFByZXNldExhYmVsKSxyYygxKSxEbSgibmdJZiIsbnVsbD09dC5jcFByZXNldENvbG9ycz9udWxsOnQuY3BQcmVzZXRDb2xvcnMubGVuZ3RoKSxyYygxKSxEbSgibmdJZiIsIShudWxsIT10LmNwUHJlc2V0Q29sb3JzJiZ0LmNwUHJlc2V0Q29sb3JzLmxlbmd0aCkmJnQuY3BBZGRDb2xvckJ1dHRvbil9fWZ1bmN0aW9uIG8zKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiw1MyksVm0oImNsaWNrIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25DYW5jZWxDb2xvcihuKX0pKSxrdSgxKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtmdSh0LmNwQ2FuY2VsQnV0dG9uQ2xhc3MpLHJjKDEpLFN1KHQuY3BDYW5jZWxCdXR0b25UZXh0KX19ZnVuY3Rpb24gaTModCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJidXR0b24iLDUzKSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5vbkFjY2VwdENvbG9yKG4pfSkpLGt1KDEpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO2Z1KHQuY3BPS0J1dHRvbkNsYXNzKSxyYygxKSxTdSh0LmNwT0tCdXR0b25UZXh0KX19ZnVuY3Rpb24gYTModCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDUxKSxRcCgxLG8zLDIsNCwiYnV0dG9uIiw1MiksUXAoMixpMywyLDQsImJ1dHRvbiIsNTIpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLERtKCJuZ0lmIix0LmNwQ2FuY2VsQnV0dG9uKSxyYygxKSxEbSgibmdJZiIsdC5jcE9LQnV0dG9uKX19dmFyIHIzOyEoZnVuY3Rpb24odCl7dFt0LkhFWD0wXT0iSEVYIix0W3QuUkdCQT0xXT0iUkdCQSIsdFt0LkhTTEE9Ml09IkhTTEEiLHRbdC5DTVlLPTNdPSJDTVlLIn0pKHIzfHwocjM9e30pKTtjbGFzcyBzM3tjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLnI9dCx0aGlzLmc9ZSx0aGlzLmI9bix0aGlzLmE9b319Y2xhc3MgbDN7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5oPXQsdGhpcy5zPWUsdGhpcy52PW4sdGhpcy5hPW99fWNsYXNzIGMze2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuaD10LHRoaXMucz1lLHRoaXMubD1uLHRoaXMuYT1vfX1jbGFzcyBkM3tjb25zdHJ1Y3Rvcih0LGUsbixvLGk9MSl7dGhpcy5jPXQsdGhpcy5tPWUsdGhpcy55PW4sdGhpcy5rPW8sdGhpcy5hPWl9fWNsYXNzIHAze2NvbnN0cnVjdG9yKCl7dGhpcy5uZXdWYWx1ZT1uZXcgTGh9aW5wdXRDaGFuZ2UodCl7Y29uc3QgZT10LnRhcmdldC52YWx1ZTtpZih2b2lkIDA9PT10aGlzLnJnKXRoaXMubmV3VmFsdWUuZW1pdChlKTtlbHNle2NvbnN0IHQ9cGFyc2VGbG9hdChlKTt0aGlzLm5ld1ZhbHVlLmVtaXQoe3Y6dCxyZzp0aGlzLnJnfSl9fX1wMy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cDMpfSxwMy7JtWRpcj1sbyh7dHlwZTpwMyxzZWxlY3RvcnM6W1siIiwidGV4dCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5pbnB1dENoYW5nZShlKX0pKX0saW5wdXRzOntyZzoicmciLHRleHQ6InRleHQifSxvdXRwdXRzOntuZXdWYWx1ZToibmV3VmFsdWUifX0pLHAzLnByb3BEZWNvcmF0b3JzPXtyZzpbe3R5cGU6eHl9XSx0ZXh0Olt7dHlwZTp4eX1dLG5ld1ZhbHVlOlt7dHlwZTpPeX1dLGlucHV0Q2hhbmdlOlt7dHlwZTp3eSxhcmdzOlsiaW5wdXQiLFsiJGV2ZW50Il1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocDMsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW3RleHRdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7bmV3VmFsdWU6W3t0eXBlOk95fV0saW5wdXRDaGFuZ2U6W3t0eXBlOnd5LGFyZ3M6WyJpbnB1dCIsWyIkZXZlbnQiXV19XSxyZzpbe3R5cGU6eHl9XSx0ZXh0Olt7dHlwZTp4eX1dfSk7Y2xhc3MgbTN7Y29uc3RydWN0b3IodCl7dGhpcy5lbFJlZj10LHRoaXMuZHJhZ0VuZD1uZXcgTGgsdGhpcy5kcmFnU3RhcnQ9bmV3IExoLHRoaXMubmV3VmFsdWU9bmV3IExoLHRoaXMubGlzdGVuZXJNb3ZlPXQ9PnRoaXMubW92ZSh0KSx0aGlzLmxpc3RlbmVyU3RvcD0oKT0+dGhpcy5zdG9wKCl9bW91c2VEb3duKHQpe3RoaXMuc3RhcnQodCl9dG91Y2hTdGFydCh0KXt0aGlzLnN0YXJ0KHQpfW1vdmUodCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2V0Q3Vyc29yKHQpfXN0YXJ0KHQpe3RoaXMuc2V0Q3Vyc29yKHQpLHQuc3RvcFByb3BhZ2F0aW9uKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5saXN0ZW5lclN0b3ApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLmxpc3RlbmVyU3RvcCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmxpc3RlbmVyTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLmxpc3RlbmVyTW92ZSksdGhpcy5kcmFnU3RhcnQuZW1pdCgpfXN0b3AoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmxpc3RlbmVyU3RvcCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMubGlzdGVuZXJTdG9wKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubGlzdGVuZXJNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMubGlzdGVuZXJNb3ZlKSx0aGlzLmRyYWdFbmQuZW1pdCgpfWdldFgodCl7Y29uc3QgZT10aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuKHZvaWQgMCE9PXQucGFnZVg/dC5wYWdlWDp0LnRvdWNoZXNbMF0ucGFnZVgpLWUubGVmdC13aW5kb3cucGFnZVhPZmZzZXR9Z2V0WSh0KXtjb25zdCBlPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4odm9pZCAwIT09dC5wYWdlWT90LnBhZ2VZOnQudG91Y2hlc1swXS5wYWdlWSktZS50b3Atd2luZG93LnBhZ2VZT2Zmc2V0fXNldEN1cnNvcih0KXtjb25zdCBlPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCxuPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQsbz1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuZ2V0WCh0KSxlKSksaT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuZ2V0WSh0KSxuKSk7dm9pZCAwIT09dGhpcy5yZ1gmJnZvaWQgMCE9PXRoaXMucmdZP3RoaXMubmV3VmFsdWUuZW1pdCh7czpvL2UsdjoxLWkvbixyZ1g6dGhpcy5yZ1gscmdZOnRoaXMucmdZfSk6dm9pZCAwPT09dGhpcy5yZ1gmJnZvaWQgMCE9PXRoaXMucmdZP3RoaXMubmV3VmFsdWUuZW1pdCh7djppL24scmdZOnRoaXMucmdZfSk6dm9pZCAwIT09dGhpcy5yZ1gmJnZvaWQgMD09PXRoaXMucmdZJiZ0aGlzLm5ld1ZhbHVlLmVtaXQoe3Y6by9lLHJnWDp0aGlzLnJnWH0pfX1tMy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bTMpKFNtKGhnKSl9LG0zLsm1ZGlyPWxvKHt0eXBlOm0zLHNlbGVjdG9yczpbWyIiLCJzbGlkZXIiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJtb3VzZWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm1vdXNlRG93bihlKX0pKSgidG91Y2hzdGFydCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4udG91Y2hTdGFydChlKX0pKX0saW5wdXRzOntyZ1g6InJnWCIscmdZOiJyZ1kiLHNsaWRlcjoic2xpZGVyIn0sb3V0cHV0czp7ZHJhZ0VuZDoiZHJhZ0VuZCIsZHJhZ1N0YXJ0OiJkcmFnU3RhcnQiLG5ld1ZhbHVlOiJuZXdWYWx1ZSJ9fSksbTMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ31dLG0zLnByb3BEZWNvcmF0b3JzPXtyZ1g6W3t0eXBlOnh5fV0scmdZOlt7dHlwZTp4eX1dLHNsaWRlcjpbe3R5cGU6eHl9XSxkcmFnRW5kOlt7dHlwZTpPeX1dLGRyYWdTdGFydDpbe3R5cGU6T3l9XSxuZXdWYWx1ZTpbe3R5cGU6T3l9XSxtb3VzZURvd246W3t0eXBlOnd5LGFyZ3M6WyJtb3VzZWRvd24iLFsiJGV2ZW50Il1dfV0sdG91Y2hTdGFydDpbe3R5cGU6d3ksYXJnczpbInRvdWNoc3RhcnQiLFsiJGV2ZW50Il1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobTMsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW3NsaWRlcl0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9XX0pLHtkcmFnRW5kOlt7dHlwZTpPeX1dLGRyYWdTdGFydDpbe3R5cGU6T3l9XSxuZXdWYWx1ZTpbe3R5cGU6T3l9XSxtb3VzZURvd246W3t0eXBlOnd5LGFyZ3M6WyJtb3VzZWRvd24iLFsiJGV2ZW50Il1dfV0sdG91Y2hTdGFydDpbe3R5cGU6d3ksYXJnczpbInRvdWNoc3RhcnQiLFsiJGV2ZW50Il1dfV0scmdYOlt7dHlwZTp4eX1dLHJnWTpbe3R5cGU6eHl9XSxzbGlkZXI6W3t0eXBlOnh5fV19KTtjbGFzcyB1M3tjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLmg9dCx0aGlzLnM9ZSx0aGlzLnY9bix0aGlzLmE9b319Y2xhc3MgZjN7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5oPXQsdGhpcy5zPWUsdGhpcy52PW4sdGhpcy5hPW99fWNsYXNzIGcze2NvbnN0cnVjdG9yKCl7dGhpcy5hY3RpdmU9bnVsbH1zZXRBY3RpdmUodCl7dGhpcy5hY3RpdmUmJnRoaXMuYWN0aXZlIT09dCYmImlubGluZSIhPT10aGlzLmFjdGl2ZS5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuYWN0aXZlLmNsb3NlRGlhbG9nKCksdGhpcy5hY3RpdmU9dH1oc3ZhMmhzbGEodCl7Y29uc3QgZT10Lmgsbj10LnMsbz10LnYsaT10LmE7aWYoMD09PW8pcmV0dXJuIG5ldyBjMyhlLDAsMCxpKTtpZigwPT09biYmMT09PW8pcmV0dXJuIG5ldyBjMyhlLDEsMSxpKTt7Y29uc3QgdD1vKigyLW4pLzI7cmV0dXJuIG5ldyBjMyhlLG8qbi8oMS1NYXRoLmFicygyKnQtMSkpLHQsaSl9fWhzbGEyaHN2YSh0KXtjb25zdCBlPU1hdGgubWluKHQuaCwxKSxuPU1hdGgubWluKHQucywxKSxvPU1hdGgubWluKHQubCwxKSxpPU1hdGgubWluKHQuYSwxKTtpZigwPT09bylyZXR1cm4gbmV3IGwzKGUsMCwwLGkpO3tjb25zdCB0PW8rbiooMS1NYXRoLmFicygyKm8tMSkpLzI7cmV0dXJuIG5ldyBsMyhlLDIqKHQtbykvdCx0LGkpfX1oc3ZhVG9SZ2JhKHQpe2xldCBlLG4sbztjb25zdCBpPXQuaCxhPXQucyxyPXQudixzPXQuYSxsPU1hdGguZmxvb3IoNippKSxjPTYqaS1sLGQ9ciooMS1hKSxwPXIqKDEtYyphKSxtPXIqKDEtKDEtYykqYSk7c3dpdGNoKGwlNil7Y2FzZSAwOmU9cixuPW0sbz1kO2JyZWFrO2Nhc2UgMTplPXAsbj1yLG89ZDticmVhaztjYXNlIDI6ZT1kLG49cixvPW07YnJlYWs7Y2FzZSAzOmU9ZCxuPXAsbz1yO2JyZWFrO2Nhc2UgNDplPW0sbj1kLG89cjticmVhaztjYXNlIDU6ZT1yLG49ZCxvPXA7YnJlYWs7ZGVmYXVsdDplPTAsbj0wLG89MH1yZXR1cm4gbmV3IHMzKGUsbixvLHMpfWNteWtUb1JnYih0KXtyZXR1cm4gbmV3IHMzKCgxLXQuYykqKDEtdC5rKSwoMS10Lm0pKigxLXQuayksKDEtdC55KSooMS10LmspLHQuYSl9cmdiYVRvQ215ayh0KXtjb25zdCBlPTEtTWF0aC5tYXgodC5yLHQuZyx0LmIpO3JldHVybiAxPT09ZT9uZXcgZDMoMCwwLDAsMSx0LmEpOm5ldyBkMygoMS10LnItZSkvKDEtZSksKDEtdC5nLWUpLygxLWUpLCgxLXQuYi1lKS8oMS1lKSxlLHQuYSl9cmdiYVRvSHN2YSh0KXtsZXQgZSxuO2NvbnN0IG89TWF0aC5taW4odC5yLDEpLGk9TWF0aC5taW4odC5nLDEpLGE9TWF0aC5taW4odC5iLDEpLHI9TWF0aC5taW4odC5hLDEpLHM9TWF0aC5tYXgobyxpLGEpLGw9TWF0aC5taW4obyxpLGEpLGM9cyxkPXMtbDtpZihuPTA9PT1zPzA6ZC9zLHM9PT1sKWU9MDtlbHNle3N3aXRjaChzKXtjYXNlIG86ZT0oaS1hKS9kKyhpPGE/NjowKTticmVhaztjYXNlIGk6ZT0oYS1vKS9kKzI7YnJlYWs7Y2FzZSBhOmU9KG8taSkvZCs0O2JyZWFrO2RlZmF1bHQ6ZT0wfWUvPTZ9cmV0dXJuIG5ldyBsMyhlLG4sYyxyKX1yZ2JhVG9IZXgodCxlKXtsZXQgbj0iIyIrKDE8PDI0fHQucjw8MTZ8dC5nPDw4fHQuYikudG9TdHJpbmcoMTYpLnN1YnN0cigxKTtyZXR1cm4gZSYmKG4rPSgyNTZ8TWF0aC5yb3VuZCgyNTUqdC5hKSkudG9TdHJpbmcoMTYpLnN1YnN0cigxKSksbn1ub3JtYWxpemVDTVlLKHQpe3JldHVybiBuZXcgZDModC5jLzEwMCx0Lm0vMTAwLHQueS8xMDAsdC5rLzEwMCx0LmEpfWRlbm9ybWFsaXplQ01ZSyh0KXtyZXR1cm4gbmV3IGQzKE1hdGguZmxvb3IoMTAwKnQuYyksTWF0aC5mbG9vcigxMDAqdC5tKSxNYXRoLmZsb29yKDEwMCp0LnkpLE1hdGguZmxvb3IoMTAwKnQuayksdC5hKX1kZW5vcm1hbGl6ZVJHQkEodCl7cmV0dXJuIG5ldyBzMyhNYXRoLnJvdW5kKDI1NSp0LnIpLE1hdGgucm91bmQoMjU1KnQuZyksTWF0aC5yb3VuZCgyNTUqdC5iKSx0LmEpfXN0cmluZ1RvSHN2YSh0PSIiLGU9ITEpe2xldCBuPW51bGw7dD0odHx8IiIpLnRvTG93ZXJDYXNlKCk7Y29uc3Qgbz1be3JlOi8ocmdiKWE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqJT8sXHMqKFxkezEsM30pXHMqJT8oPzosXHMqKFxkKyg/OlwuXGQrKT8pXHMqKT9cKS8scGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBzMyhwYXJzZUludCh0WzJdLDEwKS8yNTUscGFyc2VJbnQodFszXSwxMCkvMjU1LHBhcnNlSW50KHRbNF0sMTApLzI1NSxpc05hTihwYXJzZUZsb2F0KHRbNV0pKT8xOnBhcnNlRmxvYXQodFs1XSkpfX0se3JlOi8oaHNsKWE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pJVxzKixccyooXGR7MSwzfSklXHMqKD86LFxzKihcZCsoPzpcLlxkKyk/KVxzKik/XCkvLHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgYzMocGFyc2VJbnQodFsyXSwxMCkvMzYwLHBhcnNlSW50KHRbM10sMTApLzEwMCxwYXJzZUludCh0WzRdLDEwKS8xMDAsaXNOYU4ocGFyc2VGbG9hdCh0WzVdKSk/MTpwYXJzZUZsb2F0KHRbNV0pKX19XTtvLnB1c2goZT97cmU6LyMoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSkoW2EtZkEtRjAtOV17Mn0pPyQvLHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgczMocGFyc2VJbnQodFsxXSwxNikvMjU1LHBhcnNlSW50KHRbMl0sMTYpLzI1NSxwYXJzZUludCh0WzNdLDE2KS8yNTUscGFyc2VJbnQodFs0XXx8IkZGIiwxNikvMjU1KX19OntyZTovIyhbYS1mQS1GMC05XXsyfSkoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KSQvLHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgczMocGFyc2VJbnQodFsxXSwxNikvMjU1LHBhcnNlSW50KHRbMl0sMTYpLzI1NSxwYXJzZUludCh0WzNdLDE2KS8yNTUsMSl9fSksby5wdXNoKHtyZTovIyhbYS1mQS1GMC05XSkoW2EtZkEtRjAtOV0pKFthLWZBLUYwLTldKSQvLHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgczMocGFyc2VJbnQodFsxXSt0WzFdLDE2KS8yNTUscGFyc2VJbnQodFsyXSt0WzJdLDE2KS8yNTUscGFyc2VJbnQodFszXSt0WzNdLDE2KS8yNTUsMSl9fSk7Zm9yKGNvbnN0IGUgaW4gbylpZihvLmhhc093blByb3BlcnR5KGUpKXtjb25zdCBpPW9bZV0sYT1pLnJlLmV4ZWModCkscj1hJiZpLnBhcnNlKGEpO2lmKHIpcmV0dXJuIHIgaW5zdGFuY2VvZiBzMz9uPXRoaXMucmdiYVRvSHN2YShyKTpyIGluc3RhbmNlb2YgYzMmJihuPXRoaXMuaHNsYTJoc3ZhKHIpKSxufXJldHVybiBufW91dHB1dEZvcm1hdCh0LGUsbil7c3dpdGNoKCJhdXRvIj09PWUmJihlPXQuYTwxPyJyZ2JhIjoiaGV4IiksZSl7Y2FzZSJoc2xhIjpjb25zdCBlPXRoaXMuaHN2YTJoc2xhKHQpLG89bmV3IGMzKE1hdGgucm91bmQoMzYwKmUuaCksTWF0aC5yb3VuZCgxMDAqZS5zKSxNYXRoLnJvdW5kKDEwMCplLmwpLE1hdGgucm91bmQoMTAwKmUuYSkvMTAwKTtyZXR1cm4gdC5hPDF8fCJhbHdheXMiPT09bj8iaHNsYSgiK28uaCsiLCIrby5zKyIlLCIrby5sKyIlLCIrby5hKyIpIjoiaHNsKCIrby5oKyIsIitvLnMrIiUsIitvLmwrIiUpIjtjYXNlInJnYmEiOmNvbnN0IGk9dGhpcy5kZW5vcm1hbGl6ZVJHQkEodGhpcy5oc3ZhVG9SZ2JhKHQpKTtyZXR1cm4gdC5hPDF8fCJhbHdheXMiPT09bj8icmdiYSgiK2kucisiLCIraS5nKyIsIitpLmIrIiwiK01hdGgucm91bmQoMTAwKmkuYSkvMTAwKyIpIjoicmdiKCIraS5yKyIsIitpLmcrIiwiK2kuYisiKSI7ZGVmYXVsdDpjb25zdCBhPSJhbHdheXMiPT09bnx8ImZvcmNlZCI9PT1uO3JldHVybiB0aGlzLnJnYmFUb0hleCh0aGlzLmRlbm9ybWFsaXplUkdCQSh0aGlzLmhzdmFUb1JnYmEodCkpLGEpfX19ZzMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGczKX0sZzMuybVwcm92PU1uKHt0b2tlbjpnMyxmYWN0b3J5OmczLsm1ZmFjfSksZzMuY3RvclBhcmFtZXRlcnM9KCk9PltdLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZzMsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSxudWxsKTtjbGFzcyBoM3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5lbFJlZj10LHRoaXMuY2RSZWY9ZSx0aGlzLnNlcnZpY2U9bix0aGlzLmlzSUUxMD0hMSx0aGlzLmRpYWxvZ0Fycm93U2l6ZT0xMCx0aGlzLmRpYWxvZ0Fycm93T2Zmc2V0PTE1LHRoaXMuZGlhbG9nSW5wdXRGaWVsZHM9W3IzLkhFWCxyMy5SR0JBLHIzLkhTTEEscjMuQ01ZS10sdGhpcy51c2VSb290Vmlld0NvbnRhaW5lcj0hMX1oYW5kbGVFc2ModCl7dGhpcy5zaG93JiYicG9wdXAiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMub25DYW5jZWxDb2xvcih0KX1oYW5kbGVFbnRlcih0KXt0aGlzLnNob3cmJiJwb3B1cCI9PT10aGlzLmNwRGlhbG9nRGlzcGxheSYmdGhpcy5vbkFjY2VwdENvbG9yKHQpfW5nT25Jbml0KCl7dGhpcy5zbGlkZXI9bmV3IHUzKDAsMCwwLDApLHRoaXMuc2xpZGVyRGltTWF4PW5ldyBmMyh0aGlzLmh1ZVNsaWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofHwxNDAsdGhpcy5jcFdpZHRoLDEzMCx0aGlzLmFscGhhU2xpZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGh8fDE0MCksdGhpcy5mb3JtYXQ9dGhpcy5jcENteWtFbmFibGVkP3IzLkNNWUs6InJnYmEiPT09dGhpcy5jcE91dHB1dEZvcm1hdD9yMy5SR0JBOiJoc2xhIj09PXRoaXMuY3BPdXRwdXRGb3JtYXQ/cjMuSFNMQTpyMy5IRVgsdGhpcy5saXN0ZW5lck1vdXNlRG93bj10PT57dGhpcy5vbk1vdXNlRG93bih0KX0sdGhpcy5saXN0ZW5lclJlc2l6ZT0oKT0+e3RoaXMub25SZXNpemUoKX0sdGhpcy5vcGVuRGlhbG9nKHRoaXMuaW5pdGlhbENvbG9yLCExKX1uZ09uRGVzdHJveSgpe3RoaXMuY2xvc2VEaWFsb2coKX1uZ0FmdGVyVmlld0luaXQoKXsyMzA9PT10aGlzLmNwV2lkdGgmJiJpbmxpbmUiIT09dGhpcy5jcERpYWxvZ0Rpc3BsYXl8fCh0aGlzLnNsaWRlckRpbU1heD1uZXcgZjModGhpcy5odWVTbGlkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aHx8MTQwLHRoaXMuY3BXaWR0aCwxMzAsdGhpcy5hbHBoYVNsaWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofHwxNDApLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoITEpLHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpKX1vcGVuRGlhbG9nKHQsZT0hMCl7dGhpcy5zZXJ2aWNlLnNldEFjdGl2ZSh0aGlzKSx0aGlzLndpZHRofHwodGhpcy5jcFdpZHRoPXRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSx0aGlzLmhlaWdodHx8KHRoaXMuaGVpZ2h0PTMyMCksdGhpcy5zZXRJbml0aWFsQ29sb3IodCksdGhpcy5zZXRDb2xvckZyb21TdHJpbmcodCxlKSx0aGlzLm9wZW5Db2xvclBpY2tlcigpfWNsb3NlRGlhbG9nKCl7dGhpcy5jbG9zZUNvbG9yUGlja2VyKCl9c2V0dXBEaWFsb2codCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoLGIseSxfLEMsTSx2LHgsTyxQLHcsayxTLEQsRSxSLEEsVCxOLHope3RoaXMuc2V0SW5pdGlhbENvbG9yKG4pLHRoaXMuc2V0Q29sb3JNb2RlKHMpLHRoaXMuaXNJRTEwPTEwPT09KGZ1bmN0aW9uIEkoKXtsZXQgdD0iIjsidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmKHQ9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTtjb25zdCBlPXQuaW5kZXhPZigibXNpZSAiKTtyZXR1cm4gZT4wJiZwYXJzZUludCh0LnN1YnN0cmluZyhlKzUsdC5pbmRleE9mKCIuIixlKSksMTApfSkoKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlPXQsdGhpcy5kaXJlY3RpdmVFbGVtZW50UmVmPWUsdGhpcy5jcERpc2FibGVJbnB1dD1wLHRoaXMuY3BDbXlrRW5hYmxlZD1sLHRoaXMuY3BBbHBoYUNoYW5uZWw9Yyx0aGlzLmNwT3V0cHV0Rm9ybWF0PWQsdGhpcy5jcERpYWxvZ0Rpc3BsYXk9YSx0aGlzLmNwSWdub3JlZEVsZW1lbnRzPW0sdGhpcy5jcFNhdmVDbGlja091dHNpZGU9dSx0aGlzLmNwQ2xvc2VDbGlja091dHNpZGU9Zix0aGlzLnVzZVJvb3RWaWV3Q29udGFpbmVyPWcsdGhpcy53aWR0aD10aGlzLmNwV2lkdGg9cGFyc2VJbnQobywxMCksdGhpcy5oZWlnaHQ9dGhpcy5jcEhlaWdodD1wYXJzZUludChpLDEwKSx0aGlzLmNwUG9zaXRpb249aCx0aGlzLmNwUG9zaXRpb25PZmZzZXQ9cGFyc2VJbnQoYiwxMCksdGhpcy5jcE9LQnV0dG9uPVAsdGhpcy5jcE9LQnV0dG9uVGV4dD1rLHRoaXMuY3BPS0J1dHRvbkNsYXNzPXcsdGhpcy5jcENhbmNlbEJ1dHRvbj1TLHRoaXMuY3BDYW5jZWxCdXR0b25UZXh0PUUsdGhpcy5jcENhbmNlbEJ1dHRvbkNsYXNzPUQsdGhpcy5mYWxsYmFja0NvbG9yPXJ8fCIjZmZmIix0aGlzLnNldFByZXNldENvbmZpZyhfLEMpLHRoaXMuY3BQcmVzZXRDb2xvcnNDbGFzcz1NLHRoaXMuY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGg9dix0aGlzLmNwUHJlc2V0RW1wdHlNZXNzYWdlPXgsdGhpcy5jcFByZXNldEVtcHR5TWVzc2FnZUNsYXNzPU8sdGhpcy5jcEFkZENvbG9yQnV0dG9uPVIsdGhpcy5jcEFkZENvbG9yQnV0dG9uVGV4dD1ULHRoaXMuY3BBZGRDb2xvckJ1dHRvbkNsYXNzPUEsdGhpcy5jcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3M9Tix0aGlzLmNwVHJpZ2dlckVsZW1lbnQ9eix5fHwodGhpcy5kaWFsb2dBcnJvd09mZnNldD0wKSwiaW5saW5lIj09PWEmJih0aGlzLmRpYWxvZ0Fycm93U2l6ZT0wLHRoaXMuZGlhbG9nQXJyb3dPZmZzZXQ9MCksImhleCI9PT1kJiYiYWx3YXlzIiE9PWMmJiJmb3JjZWQiIT09YyYmKHRoaXMuY3BBbHBoYUNoYW5uZWw9ImRpc2FibGVkIil9c2V0Q29sb3JNb2RlKHQpe3N3aXRjaCh0LnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKSl7Y2FzZSIxIjpjYXNlIkMiOmNhc2UiQ09MT1IiOnRoaXMuY3BDb2xvck1vZGU9MTticmVhaztjYXNlIjIiOmNhc2UiRyI6Y2FzZSJHUkFZU0NBTEUiOnRoaXMuY3BDb2xvck1vZGU9MjticmVhaztjYXNlIjMiOmNhc2UiUCI6Y2FzZSJQUkVTRVRTIjp0aGlzLmNwQ29sb3JNb2RlPTM7YnJlYWs7ZGVmYXVsdDp0aGlzLmNwQ29sb3JNb2RlPTF9fXNldEluaXRpYWxDb2xvcih0KXt0aGlzLmluaXRpYWxDb2xvcj10fXNldFByZXNldENvbmZpZyh0LGUpe3RoaXMuY3BQcmVzZXRMYWJlbD10LHRoaXMuY3BQcmVzZXRDb2xvcnM9ZX1zZXRDb2xvckZyb21TdHJpbmcodCxlPSEwLG49ITApe2xldCBvOyJhbHdheXMiPT09dGhpcy5jcEFscGhhQ2hhbm5lbHx8ImZvcmNlZCI9PT10aGlzLmNwQWxwaGFDaGFubmVsPyhvPXRoaXMuc2VydmljZS5zdHJpbmdUb0hzdmEodCwhMCksb3x8dGhpcy5oc3ZhfHwobz10aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHQsITEpKSk6bz10aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHQsITEpLG98fHRoaXMuaHN2YXx8KG89dGhpcy5zZXJ2aWNlLnN0cmluZ1RvSHN2YSh0aGlzLmZhbGxiYWNrQ29sb3IsITEpKSxvJiYodGhpcy5oc3ZhPW8sdGhpcy5zbGlkZXJIPXRoaXMuaHN2YS5oLCJoZXgiPT09dGhpcy5jcE91dHB1dEZvcm1hdCYmImRpc2FibGVkIj09PXRoaXMuY3BBbHBoYUNoYW5uZWwmJih0aGlzLmhzdmEuYT0xKSx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKGUsbikpfW9uUmVzaXplKCl7ImZpeGVkIj09PXRoaXMucG9zaXRpb24/dGhpcy5zZXREaWFsb2dQb3NpdGlvbigpOiJpbmxpbmUiIT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuY2xvc2VDb2xvclBpY2tlcigpfW9uRHJhZ0VuZCh0KXt0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckRyYWdFbmQoe3NsaWRlcjp0LGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkRyYWdTdGFydCh0KXt0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckRyYWdTdGFydCh7c2xpZGVyOnQsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uTW91c2VEb3duKHQpeyF0aGlzLnNob3d8fHRoaXMuaXNJRTEwfHwicG9wdXAiIT09dGhpcy5jcERpYWxvZ0Rpc3BsYXl8fHQudGFyZ2V0PT09dGhpcy5kaXJlY3RpdmVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR8fHRoaXMuaXNEZXNjZW5kYW50KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCx0LnRhcmdldCl8fHRoaXMuaXNEZXNjZW5kYW50KHRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LHQudGFyZ2V0KXx8MCE9PXRoaXMuY3BJZ25vcmVkRWxlbWVudHMuZmlsdGVyKChlPT5lPT09dC50YXJnZXQpKS5sZW5ndGh8fCh0aGlzLmNwU2F2ZUNsaWNrT3V0c2lkZT90aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yU2VsZWN0ZWQodGhpcy5vdXRwdXRDb2xvcik6KHRoaXMuaHN2YT1udWxsLHRoaXMuc2V0Q29sb3JGcm9tU3RyaW5nKHRoaXMuaW5pdGlhbENvbG9yLCExKSx0aGlzLmNwQ215a0VuYWJsZWQmJnRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY215a0NoYW5nZWQodGhpcy5jbXlrQ29sb3IpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY29sb3JDaGFuZ2VkKHRoaXMuaW5pdGlhbENvbG9yKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2FuY2VsZWQoKSksdGhpcy5jcENsb3NlQ2xpY2tPdXRzaWRlJiZ0aGlzLmNsb3NlQ29sb3JQaWNrZXIoKSl9b25BY2NlcHRDb2xvcih0KXt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3V0cHV0Q29sb3ImJnRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY29sb3JTZWxlY3RlZCh0aGlzLm91dHB1dENvbG9yKSwicG9wdXAiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuY2xvc2VDb2xvclBpY2tlcigpfW9uQ2FuY2VsQ29sb3IodCl7dGhpcy5oc3ZhPW51bGwsdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2FuY2VsZWQoKSx0aGlzLnNldENvbG9yRnJvbVN0cmluZyh0aGlzLmluaXRpYWxDb2xvciwhMCksInBvcHVwIj09PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiYodGhpcy5jcENteWtFbmFibGVkJiZ0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNteWtDaGFuZ2VkKHRoaXMuY215a0NvbG9yKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2hhbmdlZCh0aGlzLmluaXRpYWxDb2xvciwhMCksdGhpcy5jbG9zZUNvbG9yUGlja2VyKCkpfW9uRm9ybWF0VG9nZ2xlKHQpe2NvbnN0IGU9dGhpcy5kaWFsb2dJbnB1dEZpZWxkcy5sZW5ndGgtKHRoaXMuY3BDbXlrRW5hYmxlZD8wOjEpLG49KCh0aGlzLmRpYWxvZ0lucHV0RmllbGRzLmluZGV4T2YodGhpcy5mb3JtYXQpK3QpJWUrZSklZTt0aGlzLmZvcm1hdD10aGlzLmRpYWxvZ0lucHV0RmllbGRzW25dfW9uQ29sb3JDaGFuZ2UodCl7dGhpcy5oc3ZhLnM9dC5zL3QucmdYLHRoaXMuaHN2YS52PXQudi90LnJnWSx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5zbGlkZXJDaGFuZ2VkKHtzbGlkZXI6ImxpZ2h0bmVzcyIsdmFsdWU6dGhpcy5oc3ZhLnYsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc2xpZGVyQ2hhbmdlZCh7c2xpZGVyOiJzYXR1cmF0aW9uIix2YWx1ZTp0aGlzLmhzdmEucyxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25IdWVDaGFuZ2UodCl7dGhpcy5oc3ZhLmg9dC52L3QucmdYLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5zbGlkZXJDaGFuZ2VkKHtzbGlkZXI6Imh1ZSIsdmFsdWU6dGhpcy5oc3ZhLmgsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uVmFsdWVDaGFuZ2UodCl7dGhpcy5oc3ZhLnY9dC52L3QucmdYLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckNoYW5nZWQoe3NsaWRlcjoidmFsdWUiLHZhbHVlOnRoaXMuaHN2YS52LGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkFscGhhQ2hhbmdlKHQpe3RoaXMuaHN2YS5hPXQudi90LnJnWCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5zbGlkZXJDaGFuZ2VkKHtzbGlkZXI6ImFscGhhIix2YWx1ZTp0aGlzLmhzdmEuYSxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25IZXhJbnB1dCh0KXtpZihudWxsPT09dCl0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCk7ZWxzZXt0JiYiIyIhPT10WzBdJiYodD0iIyIrdCk7bGV0IGU9L14jKFthLWYwLTldezN9fFthLWYwLTldezZ9KSQvZ2k7ImFsd2F5cyI9PT10aGlzLmNwQWxwaGFDaGFubmVsJiYoZT0vXiMoW2EtZjAtOV17M318W2EtZjAtOV17Nn18W2EtZjAtOV17OH0pJC9naSk7Y29uc3Qgbj1lLnRlc3QodCk7biYmKHQubGVuZ3RoPDUmJih0PSIjIit0LnN1YnN0cmluZygxKS5zcGxpdCgiIikubWFwKCh0PT50K3QpKS5qb2luKCIiKSksImZvcmNlZCI9PT10aGlzLmNwQWxwaGFDaGFubmVsJiYodCs9TWF0aC5yb3VuZCgyNTUqdGhpcy5oc3ZhLmEpLnRvU3RyaW5nKDE2KSksdGhpcy5zZXRDb2xvckZyb21TdHJpbmcodCwhMCwhMSkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoiaGV4Iix2YWxpZDpuLHZhbHVlOnQsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfX1vblJlZElucHV0KHQpe2NvbnN0IGU9dGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKSxuPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztuJiYoZS5yPXQudi90LnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UucmdiYVRvSHN2YShlKSx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6InJlZCIsdmFsaWQ6bix2YWx1ZTplLnIsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQmx1ZUlucHV0KHQpe2NvbnN0IGU9dGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKSxuPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztuJiYoZS5iPXQudi90LnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UucmdiYVRvSHN2YShlKSx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImJsdWUiLHZhbGlkOm4sdmFsdWU6ZS5iLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkdyZWVuSW5wdXQodCl7Y29uc3QgZT10aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpLG49IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO24mJihlLmc9dC52L3QucmcsdGhpcy5oc3ZhPXRoaXMuc2VydmljZS5yZ2JhVG9Ic3ZhKGUpLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoiZ3JlZW4iLHZhbGlkOm4sdmFsdWU6ZS5nLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkh1ZUlucHV0KHQpe2NvbnN0IGU9IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO2UmJih0aGlzLmhzdmEuaD10LnYvdC5yZyx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6Imh1ZSIsdmFsaWQ6ZSx2YWx1ZTp0aGlzLmhzdmEuaCxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25WYWx1ZUlucHV0KHQpe2NvbnN0IGU9IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO2UmJih0aGlzLmhzdmEudj10LnYvdC5yZyx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoidmFsdWUiLHZhbGlkOmUsdmFsdWU6dGhpcy5oc3ZhLnYsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQWxwaGFJbnB1dCh0KXtjb25zdCBlPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztlJiYodGhpcy5oc3ZhLmE9dC52L3QucmcsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImFscGhhIix2YWxpZDplLHZhbHVlOnRoaXMuaHN2YS5hLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkxpZ2h0bmVzc0lucHV0KHQpe2NvbnN0IGU9dGhpcy5zZXJ2aWNlLmhzdmEyaHNsYSh0aGlzLmhzdmEpLG49IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO24mJihlLmw9dC52L3QucmcsdGhpcy5oc3ZhPXRoaXMuc2VydmljZS5oc2xhMmhzdmEoZSksdGhpcy5zbGlkZXJIPXRoaXMuaHN2YS5oLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJsaWdodG5lc3MiLHZhbGlkOm4sdmFsdWU6ZS5sLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vblNhdHVyYXRpb25JbnB1dCh0KXtjb25zdCBlPXRoaXMuc2VydmljZS5oc3ZhMmhzbGEodGhpcy5oc3ZhKSxuPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztuJiYoZS5zPXQudi90LnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UuaHNsYTJoc3ZhKGUpLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoic2F0dXJhdGlvbiIsdmFsaWQ6bix2YWx1ZTplLnMsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQ3lhbklucHV0KHQpeyFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZyYmKHRoaXMuY215ay5jPXQudix0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCExLCEwLCEwKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJjeWFuIix2YWxpZDohMCx2YWx1ZTp0aGlzLmNteWsuYyxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25NYWdlbnRhSW5wdXQodCl7IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnJiYodGhpcy5jbXlrLm09dC52LHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoITEsITAsITApKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6Im1hZ2VudGEiLHZhbGlkOiEwLHZhbHVlOnRoaXMuY215ay5tLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vblllbGxvd0lucHV0KHQpeyFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZyYmKHRoaXMuY215ay55PXQudix0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCExLCEwLCEwKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJ5ZWxsb3ciLHZhbGlkOiEwLHZhbHVlOnRoaXMuY215ay55LGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkJsYWNrSW5wdXQodCl7IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnJiYodGhpcy5jbXlrLms9dC52LHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoITEsITAsITApKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImJsYWNrIix2YWxpZDohMCx2YWx1ZTp0aGlzLmNteWsuayxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25BZGRQcmVzZXRDb2xvcih0LGUpe3Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jcFByZXNldENvbG9ycy5maWx0ZXIoKHQ9PnQ9PT1lKSkubGVuZ3RofHwodGhpcy5jcFByZXNldENvbG9ycz10aGlzLmNwUHJlc2V0Q29sb3JzLmNvbmNhdChlKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnByZXNldENvbG9yc0NoYW5nZWQodGhpcy5jcFByZXNldENvbG9ycykpfW9uUmVtb3ZlUHJlc2V0Q29sb3IodCxlKXt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY3BQcmVzZXRDb2xvcnM9dGhpcy5jcFByZXNldENvbG9ycy5maWx0ZXIoKHQ9PnQhPT1lKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5wcmVzZXRDb2xvcnNDaGFuZ2VkKHRoaXMuY3BQcmVzZXRDb2xvcnMpfW9wZW5Db2xvclBpY2tlcigpe3RoaXMuc2hvd3x8KHRoaXMuc2hvdz0hMCx0aGlzLmhpZGRlbj0hMCxzZXRUaW1lb3V0KCgoKT0+e3RoaXMuaGlkZGVuPSExLHRoaXMuc2V0RGlhbG9nUG9zaXRpb24oKSx0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKX0pLDApLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc3RhdGVDaGFuZ2VkKCEwKSx0aGlzLmlzSUUxMHx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5saXN0ZW5lck1vdXNlRG93biksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5saXN0ZW5lck1vdXNlRG93bikpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMubGlzdGVuZXJSZXNpemUpKX1jbG9zZUNvbG9yUGlja2VyKCl7dGhpcy5zaG93JiYodGhpcy5zaG93PSExLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc3RhdGVDaGFuZ2VkKCExKSx0aGlzLmlzSUUxMHx8KGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5saXN0ZW5lck1vdXNlRG93biksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5saXN0ZW5lck1vdXNlRG93bikpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMubGlzdGVuZXJSZXNpemUpLHRoaXMuY2RSZWYuZGVzdHJveWVkfHx0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKSl9dXBkYXRlQ29sb3JQaWNrZXIodD0hMCxlPSEwLG49ITEpe2lmKHRoaXMuc2xpZGVyRGltTWF4KXtsZXQgbyxpLGE7Mj09PXRoaXMuY3BDb2xvck1vZGUmJih0aGlzLmhzdmEucz0wKTtjb25zdCByPXRoaXMub3V0cHV0Q29sb3I7aWYoaT10aGlzLnNlcnZpY2UuaHN2YTJoc2xhKHRoaXMuaHN2YSksdGhpcy5jcENteWtFbmFibGVkPyhuPyhhPXRoaXMuc2VydmljZS5jbXlrVG9SZ2IodGhpcy5zZXJ2aWNlLm5vcm1hbGl6ZUNNWUsodGhpcy5jbXlrKSksdGhpcy5oc3ZhPXRoaXMuc2VydmljZS5yZ2JhVG9Ic3ZhKGEpKTooYT10aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpLHRoaXMuY215az10aGlzLnNlcnZpY2UuZGVub3JtYWxpemVDTVlLKHRoaXMuc2VydmljZS5yZ2JhVG9DbXlrKGEpKSksYT10aGlzLnNlcnZpY2UuZGVub3JtYWxpemVSR0JBKGEpLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCk6YT10aGlzLnNlcnZpY2UuZGVub3JtYWxpemVSR0JBKHRoaXMuc2VydmljZS5oc3ZhVG9SZ2JhKHRoaXMuaHN2YSkpLG89dGhpcy5zZXJ2aWNlLmRlbm9ybWFsaXplUkdCQSh0aGlzLnNlcnZpY2UuaHN2YVRvUmdiYShuZXcgbDModGhpcy5zbGlkZXJIfHx0aGlzLmhzdmEuaCwxLDEsMSkpKSxlJiYodGhpcy5oc2xhVGV4dD1uZXcgYzMoTWF0aC5yb3VuZCgzNjAqaS5oKSxNYXRoLnJvdW5kKDEwMCppLnMpLE1hdGgucm91bmQoMTAwKmkubCksTWF0aC5yb3VuZCgxMDAqaS5hKS8xMDApLHRoaXMucmdiYVRleHQ9bmV3IHMzKGEucixhLmcsYS5iLE1hdGgucm91bmQoMTAwKmEuYSkvMTAwKSx0aGlzLmNwQ215a0VuYWJsZWQmJih0aGlzLmNteWtUZXh0PW5ldyBkMyh0aGlzLmNteWsuYyx0aGlzLmNteWsubSx0aGlzLmNteWsueSx0aGlzLmNteWsuayxNYXRoLnJvdW5kKDEwMCp0aGlzLmNteWsuYSkvMTAwKSksdGhpcy5oZXhUZXh0PXRoaXMuc2VydmljZS5yZ2JhVG9IZXgoYSwiYWx3YXlzIj09PXRoaXMuY3BBbHBoYUNoYW5uZWwpLHRoaXMuaGV4QWxwaGE9dGhpcy5yZ2JhVGV4dC5hKSwiYXV0byI9PT10aGlzLmNwT3V0cHV0Rm9ybWF0JiZ0aGlzLmZvcm1hdCE9PXIzLlJHQkEmJnRoaXMuZm9ybWF0IT09cjMuQ01ZSyYmdGhpcy5oc3ZhLmE8MSYmKHRoaXMuZm9ybWF0PXRoaXMuaHN2YS5hPDE/cjMuUkdCQTpyMy5IRVgpLHRoaXMuaHVlU2xpZGVyQ29sb3I9InJnYigiK28ucisiLCIrby5nKyIsIitvLmIrIikiLHRoaXMuYWxwaGFTbGlkZXJDb2xvcj0icmdiKCIrYS5yKyIsIithLmcrIiwiK2EuYisiKSIsdGhpcy5vdXRwdXRDb2xvcj10aGlzLnNlcnZpY2Uub3V0cHV0Rm9ybWF0KHRoaXMuaHN2YSx0aGlzLmNwT3V0cHV0Rm9ybWF0LHRoaXMuY3BBbHBoYUNoYW5uZWwpLHRoaXMuc2VsZWN0ZWRDb2xvcj10aGlzLnNlcnZpY2Uub3V0cHV0Rm9ybWF0KHRoaXMuaHN2YSwicmdiYSIsbnVsbCksdGhpcy5mb3JtYXQhPT1yMy5DTVlLKXRoaXMuY215a0NvbG9yPSIiO2Vsc2UgaWYoImFsd2F5cyI9PT10aGlzLmNwQWxwaGFDaGFubmVsfHwiZW5hYmxlZCI9PT10aGlzLmNwQWxwaGFDaGFubmVsfHwiZm9yY2VkIj09PXRoaXMuY3BBbHBoYUNoYW5uZWwpe2NvbnN0IHQ9TWF0aC5yb3VuZCgxMDAqdGhpcy5jbXlrLmEpLzEwMDt0aGlzLmNteWtDb2xvcj1gY215a2EoJHt0aGlzLmNteWsuY30sJHt0aGlzLmNteWsubX0sJHt0aGlzLmNteWsueX0sJHt0aGlzLmNteWsua30sJHt0fSlgfWVsc2UgdGhpcy5jbXlrQ29sb3I9YGNteWsoJHt0aGlzLmNteWsuY30sJHt0aGlzLmNteWsubX0sJHt0aGlzLmNteWsueX0sJHt0aGlzLmNteWsua30pYDt0aGlzLnNsaWRlcj1uZXcgdTMoKHRoaXMuc2xpZGVySHx8dGhpcy5oc3ZhLmgpKnRoaXMuc2xpZGVyRGltTWF4LmgtOCx0aGlzLmhzdmEucyp0aGlzLnNsaWRlckRpbU1heC5zLTgsKDEtdGhpcy5oc3ZhLnYpKnRoaXMuc2xpZGVyRGltTWF4LnYtOCx0aGlzLmhzdmEuYSp0aGlzLnNsaWRlckRpbU1heC5hLTgpLHQmJnIhPT10aGlzLm91dHB1dENvbG9yJiYodGhpcy5jcENteWtFbmFibGVkJiZ0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNteWtDaGFuZ2VkKHRoaXMuY215a0NvbG9yKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2hhbmdlZCh0aGlzLm91dHB1dENvbG9yKSl9fXNldERpYWxvZ1Bvc2l0aW9uKCl7aWYoImlubGluZSI9PT10aGlzLmNwRGlhbG9nRGlzcGxheSl0aGlzLnBvc2l0aW9uPSJyZWxhdGl2ZSI7ZWxzZXtsZXQgdCxlPSJzdGF0aWMiLG49IiIsbz1udWxsLGk9bnVsbCxhPXRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7Y29uc3Qgcj10aGlzLmRpYWxvZ0VsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7Zm9yKDtudWxsIT09YSYmIkhUTUwiIT09YS50YWdOYW1lOyl7aWYodD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhKSxlPXQuZ2V0UHJvcGVydHlWYWx1ZSgicG9zaXRpb24iKSxuPXQuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIiksInN0YXRpYyIhPT1lJiZudWxsPT09byYmKG89YSksbiYmIm5vbmUiIT09biYmbnVsbD09PWkmJihpPWEpLCJmaXhlZCI9PT1lKXtvPWk7YnJlYWt9YT1hLnBhcmVudE5vZGV9Y29uc3Qgcz10aGlzLmNyZWF0ZURpYWxvZ0JveCh0aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwiZml4ZWQiIT09ZSk7aWYodGhpcy51c2VSb290Vmlld0NvbnRhaW5lcnx8ImZpeGVkIj09PWUmJighb3x8byBpbnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudCkpdGhpcy50b3A9cy50b3AsdGhpcy5sZWZ0PXMubGVmdDtlbHNle251bGw9PT1vJiYobz1hKTtjb25zdCB0PXRoaXMuY3JlYXRlRGlhbG9nQm94KG8sImZpeGVkIiE9PWUpO3RoaXMudG9wPXMudG9wLXQudG9wLHRoaXMubGVmdD1zLmxlZnQtdC5sZWZ0fSJmaXhlZCI9PT1lJiYodGhpcy5wb3NpdGlvbj0iZml4ZWQiKTtsZXQgbD10aGlzLmNwUG9zaXRpb247ImF1dG8iPT09dGhpcy5jcFBvc2l0aW9uJiYobD0oZnVuY3Rpb24gYyh0LGUpe2xldCBuPSJyaWdodCIsbz0iYm90dG9tIjtjb25zdHtoZWlnaHQ6aSx3aWR0aDphfT10LHt0b3A6cixsZWZ0OnN9PWUsbD1yK2UuaGVpZ2h0LGM9cytlLndpZHRoLGQ9ci1pPDAscD1sK2k+KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCksbT1zLWE8MCx1PWMrYT4od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCk7cmV0dXJuIHAmJihvPSJ0b3AiKSxkJiYobz0iYm90dG9tIiksbSYmKG49InJpZ2h0IiksdSYmKG49ImxlZnQiKSxkJiZwJiZtJiZ1P1sibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIl0ucmVkdWNlKCgoZSxuKT0+dFtlXT50W25dP2U6bikpOm0mJnU/ZD8iYm90dG9tIjpwfHxyPmw/InRvcCI6ImJvdHRvbSI6ZCYmcD9tPyJyaWdodCI6dXx8cz5jPyJsZWZ0IjoicmlnaHQiOmAke299LSR7bn1gfSkodGhpcy5kaWFsb2dFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5jcFRyaWdnZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpKSwidG9wIj09PWw/KHRoaXMuYXJyb3dUb3A9ci0xLHRoaXMudG9wLT1yK3RoaXMuZGlhbG9nQXJyb3dTaXplLHRoaXMubGVmdCs9dGhpcy5jcFBvc2l0aW9uT2Zmc2V0LzEwMCpzLndpZHRoLXRoaXMuZGlhbG9nQXJyb3dPZmZzZXQpOiJib3R0b20iPT09bD8odGhpcy50b3ArPXMuaGVpZ2h0K3RoaXMuZGlhbG9nQXJyb3dTaXplLHRoaXMubGVmdCs9dGhpcy5jcFBvc2l0aW9uT2Zmc2V0LzEwMCpzLndpZHRoLXRoaXMuZGlhbG9nQXJyb3dPZmZzZXQpOiJ0b3AtbGVmdCI9PT1sfHwibGVmdC10b3AiPT09bD8odGhpcy50b3AtPXItcy5oZWlnaHQrcy5oZWlnaHQqdGhpcy5jcFBvc2l0aW9uT2Zmc2V0LzEwMCx0aGlzLmxlZnQtPXRoaXMuY3BXaWR0aCt0aGlzLmRpYWxvZ0Fycm93U2l6ZS0yLXRoaXMuZGlhbG9nQXJyb3dPZmZzZXQpOiJ0b3AtcmlnaHQiPT09bHx8InJpZ2h0LXRvcCI9PT1sPyh0aGlzLnRvcC09ci1zLmhlaWdodCtzLmhlaWdodCp0aGlzLmNwUG9zaXRpb25PZmZzZXQvMTAwLHRoaXMubGVmdCs9cy53aWR0aCt0aGlzLmRpYWxvZ0Fycm93U2l6ZS0yLXRoaXMuZGlhbG9nQXJyb3dPZmZzZXQpOiJsZWZ0Ij09PWx8fCJib3R0b20tbGVmdCI9PT1sfHwibGVmdC1ib3R0b20iPT09bD8odGhpcy50b3ArPXMuaGVpZ2h0KnRoaXMuY3BQb3NpdGlvbk9mZnNldC8xMDAtdGhpcy5kaWFsb2dBcnJvd09mZnNldCx0aGlzLmxlZnQtPXRoaXMuY3BXaWR0aCt0aGlzLmRpYWxvZ0Fycm93U2l6ZS0yKToodGhpcy50b3ArPXMuaGVpZ2h0KnRoaXMuY3BQb3NpdGlvbk9mZnNldC8xMDAtdGhpcy5kaWFsb2dBcnJvd09mZnNldCx0aGlzLmxlZnQrPXMud2lkdGgrdGhpcy5kaWFsb2dBcnJvd1NpemUtMiksdGhpcy5jcFVzZVBvc2l0aW9uPWx9fWlzRGVzY2VuZGFudCh0LGUpe2xldCBuPWUucGFyZW50Tm9kZTtmb3IoO251bGwhPT1uOyl7aWYobj09PXQpcmV0dXJuITA7bj1uLnBhcmVudE5vZGV9cmV0dXJuITF9Y3JlYXRlRGlhbG9nQm94KHQsZSl7cmV0dXJue3RvcDp0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCsoZT93aW5kb3cucGFnZVlPZmZzZXQ6MCksbGVmdDp0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQrKGU/d2luZG93LnBhZ2VYT2Zmc2V0OjApLHdpZHRoOnQub2Zmc2V0V2lkdGgsaGVpZ2h0OnQub2Zmc2V0SGVpZ2h0fX19aDMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGgzKShTbShoZyksU20oVWcpLFNtKGczKSl9LGgzLsm1Y21wPXRvKHt0eXBlOmgzLHNlbGVjdG9yczpbWyJjb2xvci1waWNrZXIiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChFMSw3KSxRaChSMSw3KSxRaChBMSw3KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5kaWFsb2dFbGVtZW50PXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLmh1ZVNsaWRlcj10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5hbHBoYVNsaWRlcj10LmZpcnN0KX19LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgia2V5dXAuZXNjIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVFc2MoZSl9KSwhMSxpbCkoImtleXVwLmVudGVyIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVFbnRlcihlKX0pLCExLGlsKX0sZGVjbHM6MjgsdmFyczo0Nyxjb25zdHM6W1sxLCJjb2xvci1waWNrZXIiLDMsImNsaWNrIl0sWyJkaWFsb2dQb3B1cCIsIiJdLFszLCJjbGFzcyIsInRvcCIsNCwibmdJZiJdLFsiY2xhc3MiLCJzYXR1cmF0aW9uLWxpZ2h0bmVzcyIsMywic2xpZGVyIiwicmdYIiwicmdZIiwiYmFja2dyb3VuZC1jb2xvciIsIm5ld1ZhbHVlIiwiZHJhZ1N0YXJ0IiwiZHJhZ0VuZCIsNCwibmdJZiJdLFsxLCJodWUtYWxwaGEiLCJib3giXSxbMSwibGVmdCJdLFsxLCJzZWxlY3RlZC1jb2xvci1iYWNrZ3JvdW5kIl0sWzEsInNlbGVjdGVkLWNvbG9yIl0sWyJ0eXBlIiwiYnV0dG9uIiwzLCJjbGFzcyIsImRpc2FibGVkIiwiY2xpY2siLDQsIm5nSWYiXSxbMSwicmlnaHQiXSxbInN0eWxlIiwiaGVpZ2h0OiAxNnB4OyIsNCwibmdJZiJdLFsxLCJodWUiLDMsInNsaWRlciIsInJnWCIsIm5ld1ZhbHVlIiwiZHJhZ1N0YXJ0IiwiZHJhZ0VuZCJdLFsiaHVlU2xpZGVyIiwiIl0sWzEsImN1cnNvciJdLFsxLCJ2YWx1ZSIsMywic2xpZGVyIiwicmdYIiwibmV3VmFsdWUiLCJkcmFnU3RhcnQiLCJkcmFnRW5kIl0sWyJ2YWx1ZVNsaWRlciIsIiJdLFsxLCJhbHBoYSIsMywic2xpZGVyIiwicmdYIiwibmV3VmFsdWUiLCJkcmFnU3RhcnQiLCJkcmFnRW5kIl0sWyJhbHBoYVNsaWRlciIsIiJdLFsiY2xhc3MiLCJjbXlrLXRleHQiLDMsImRpc3BsYXkiLDQsIm5nSWYiXSxbImNsYXNzIiwiaHNsYS10ZXh0IiwzLCJkaXNwbGF5Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsInJnYmEtdGV4dCIsMywiZGlzcGxheSIsNCwibmdJZiJdLFsiY2xhc3MiLCJoZXgtdGV4dCIsMywiaGV4LWFscGhhIiwiZGlzcGxheSIsNCwibmdJZiJdLFsiY2xhc3MiLCJ2YWx1ZS10ZXh0Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsInR5cGUtcG9saWN5Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsInByZXNldC1hcmVhIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImJ1dHRvbi1hcmVhIiw0LCJuZ0lmIl0sWzEsInNhdHVyYXRpb24tbGlnaHRuZXNzIiwzLCJzbGlkZXIiLCJyZ1giLCJyZ1kiLCJuZXdWYWx1ZSIsImRyYWdTdGFydCIsImRyYWdFbmQiXSxbInR5cGUiLCJidXR0b24iLDMsImRpc2FibGVkIiwiY2xpY2siXSxbMiwiaGVpZ2h0IiwiMTZweCJdLFsxLCJjbXlrLXRleHQiXSxbMSwiYm94Il0sWyJ0eXBlIiwibnVtYmVyIiwicGF0dGVybiIsIlswLTldKiIsIm1pbiIsIjAiLCJtYXgiLCIxMDAiLDMsInRleHQiLCJyZyIsInZhbHVlIiwia2V5dXAuZW50ZXIiLCJuZXdWYWx1ZSJdLFsidHlwZSIsIm51bWJlciIsInBhdHRlcm4iLCJbMC05XSsoW1xcLixdWzAtOV17MSwyfSk/IiwibWluIiwiMCIsIm1heCIsIjEiLCJzdGVwIiwiMC4xIiwzLCJ0ZXh0IiwicmciLCJ2YWx1ZSIsImtleXVwLmVudGVyIiwibmV3VmFsdWUiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsidHlwZSIsIm51bWJlciIsInBhdHRlcm4iLCJbMC05XSsoW1xcLixdWzAtOV17MSwyfSk/IiwibWluIiwiMCIsIm1heCIsIjEiLCJzdGVwIiwiMC4xIiwzLCJ0ZXh0IiwicmciLCJ2YWx1ZSIsImtleXVwLmVudGVyIiwibmV3VmFsdWUiXSxbMSwiaHNsYS10ZXh0Il0sWyJ0eXBlIiwibnVtYmVyIiwicGF0dGVybiIsIlswLTldKiIsIm1pbiIsIjAiLCJtYXgiLCIzNjAiLDMsInRleHQiLCJyZyIsInZhbHVlIiwia2V5dXAuZW50ZXIiLCJuZXdWYWx1ZSJdLFsxLCJyZ2JhLXRleHQiXSxbInR5cGUiLCJudW1iZXIiLCJwYXR0ZXJuIiwiWzAtOV0qIiwibWluIiwiMCIsIm1heCIsIjI1NSIsMywidGV4dCIsInJnIiwidmFsdWUiLCJrZXl1cC5lbnRlciIsIm5ld1ZhbHVlIl0sWzEsImhleC10ZXh0Il0sWzMsInRleHQiLCJ2YWx1ZSIsImJsdXIiLCJrZXl1cC5lbnRlciIsIm5ld1ZhbHVlIl0sWzEsInZhbHVlLXRleHQiXSxbMSwidHlwZS1wb2xpY3kiXSxbMSwidHlwZS1wb2xpY3ktYXJyb3ciLDMsImNsaWNrIl0sWzEsInByZXNldC1hcmVhIl0sWzEsInByZXNldC1sYWJlbCJdLFszLCJjbGFzcyIsNCwibmdJZiJdLFsiY2xhc3MiLCJwcmVzZXQtY29sb3IiLDMsImJhY2tncm91bmRDb2xvciIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwicHJlc2V0LWNvbG9yIiwzLCJjbGljayJdLFszLCJjbGFzcyIsImNsaWNrIiw0LCJuZ0lmIl0sWzMsImNsaWNrIl0sWzEsImJ1dHRvbi1hcmVhIl0sWyJ0eXBlIiwiYnV0dG9uIiwzLCJjbGFzcyIsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwLDEpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCl9KSksUXAoMixUMSwxLDUsImRpdiIsMiksUXAoMyxOMSwyLDgsImRpdiIsMyksUm0oNCwiZGl2Iiw0KSxSbSg1LCJkaXYiLDUpLFRtKDYsImRpdiIsNiksVG0oNywiZGl2Iiw3KSxRcCg4LHoxLDIsNSwiYnV0dG9uIiw4KSxBbSgpLFJtKDksImRpdiIsOSksUXAoMTAsSTEsMSwwLCJkaXYiLDEwKSxSbSgxMSwiZGl2IiwxMSwxMiksVm0oIm5ld1ZhbHVlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkh1ZUNoYW5nZShlKX0pKSgiZHJhZ1N0YXJ0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRHJhZ1N0YXJ0KCJodWUiKX0pKSgiZHJhZ0VuZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkRyYWdFbmQoImh1ZSIpfSkpLFRtKDEzLCJkaXYiLDEzKSxBbSgpLFJtKDE0LCJkaXYiLDE0LDE1KSxWbSgibmV3VmFsdWUiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uVmFsdWVDaGFuZ2UoZSl9KSkoImRyYWdTdGFydCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkRyYWdTdGFydCgidmFsdWUiKX0pKSgiZHJhZ0VuZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkRyYWdFbmQoInZhbHVlIil9KSksVG0oMTYsImRpdiIsMTMpLEFtKCksUm0oMTcsImRpdiIsMTYsMTcpLFZtKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25BbHBoYUNoYW5nZShlKX0pKSgiZHJhZ1N0YXJ0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRHJhZ1N0YXJ0KCJhbHBoYSIpfSkpKCJkcmFnRW5kIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRHJhZ0VuZCgiYWxwaGEiKX0pKSxUbSgxOSwiZGl2IiwxMyksQW0oKSxBbSgpLEFtKCksUXAoMjAsTDEsMTcsMTIsImRpdiIsMTgpLFFwKDIxLGoxLDE0LDEwLCJkaXYiLDE5KSxRcCgyMixXMSwxNCwxMCwiZGl2IiwyMCksUXAoMjMsWjEsOCw3LCJkaXYiLDIxKSxRcCgyNCxLMSw5LDMsImRpdiIsMjIpLFFwKDI1LEoxLDMsMCwiZGl2IiwyMyksUXAoMjYsbjMsNiwzLCJkaXYiLDI0KSxRcCgyNyxhMywzLDIsImRpdiIsMjUpLEFtKCkpLDImZSYmKGR1KCJkaXNwbGF5IixuLnNob3c/ImJsb2NrIjoibm9uZSIpKCJ2aXNpYmlsaXR5IixuLmhpZGRlbj8iaGlkZGVuIjoidmlzaWJsZSIpKCJ0b3AiLG4udG9wLCJweCIpKCJsZWZ0IixuLmxlZnQsInB4IikoInBvc2l0aW9uIixuLnBvc2l0aW9uKSgiaGVpZ2h0IixuLmNwSGVpZ2h0LCJweCIpKCJ3aWR0aCIsbi5jcFdpZHRoLCJweCIpLHB1KCJvcGVuIixuLnNob3cpLHJjKDIpLERtKCJuZ0lmIiwicG9wdXAiPT1uLmNwRGlhbG9nRGlzcGxheSkscmMoMSksRG0oIm5nSWYiLDE9PT0obi5jcENvbG9yTW9kZXx8MSkpLHJjKDQpLGR1KCJiYWNrZ3JvdW5kLWNvbG9yIixuLnNlbGVjdGVkQ29sb3IpLHJjKDEpLERtKCJuZ0lmIixuLmNwQWRkQ29sb3JCdXR0b24pLHJjKDIpLERtKCJuZ0lmIiwiZGlzYWJsZWQiPT09bi5jcEFscGhhQ2hhbm5lbCkscmMoMSksZHUoImRpc3BsYXkiLDE9PT0obi5jcENvbG9yTW9kZXx8MSk/ImJsb2NrIjoibm9uZSIpLERtKCJyZ1giLDEpLHJjKDIpLGR1KCJsZWZ0IixudWxsPT1uLnNsaWRlcj9udWxsOm4uc2xpZGVyLmgsInB4IikscmMoMSksZHUoImRpc3BsYXkiLDI9PT0obi5jcENvbG9yTW9kZXx8MSk/ImJsb2NrIjoibm9uZSIpLERtKCJyZ1giLDEpLHJjKDIpLGR1KCJyaWdodCIsbnVsbD09bi5zbGlkZXI/bnVsbDpuLnNsaWRlci52LCJweCIpLHJjKDEpLGR1KCJkaXNwbGF5IiwiZGlzYWJsZWQiPT09bi5jcEFscGhhQ2hhbm5lbD8ibm9uZSI6ImJsb2NrIikoImJhY2tncm91bmQtY29sb3IiLG4uYWxwaGFTbGlkZXJDb2xvciksRG0oInJnWCIsMSkscmMoMiksZHUoImxlZnQiLG51bGw9PW4uc2xpZGVyP251bGw6bi5zbGlkZXIuYSwicHgiKSxyYygxKSxEbSgibmdJZiIsIW4uY3BEaXNhYmxlSW5wdXQmJjE9PT0obi5jcENvbG9yTW9kZXx8MSkpLHJjKDEpLERtKCJuZ0lmIiwhbi5jcERpc2FibGVJbnB1dCYmMT09PShuLmNwQ29sb3JNb2RlfHwxKSkscmMoMSksRG0oIm5nSWYiLCFuLmNwRGlzYWJsZUlucHV0JiYxPT09KG4uY3BDb2xvck1vZGV8fDEpKSxyYygxKSxEbSgibmdJZiIsIW4uY3BEaXNhYmxlSW5wdXQmJjE9PT0obi5jcENvbG9yTW9kZXx8MSkpLHJjKDEpLERtKCJuZ0lmIiwhbi5jcERpc2FibGVJbnB1dCYmMj09PShuLmNwQ29sb3JNb2RlfHwxKSkscmMoMSksRG0oIm5nSWYiLCFuLmNwRGlzYWJsZUlucHV0JiYxPT09KG4uY3BDb2xvck1vZGV8fDEpKSxyYygxKSxEbSgibmdJZiIsKG51bGw9PW4uY3BQcmVzZXRDb2xvcnM/bnVsbDpuLmNwUHJlc2V0Q29sb3JzLmxlbmd0aCl8fG4uY3BBZGRDb2xvckJ1dHRvbikscmMoMSksRG0oIm5nSWYiLG4uY3BPS0J1dHRvbnx8bi5jcENhbmNlbEJ1dHRvbikpfSxkaXJlY3RpdmVzOltkTSxtMyxwMyxsTV0sc3R5bGVzOlsnLmNvbG9yLXBpY2tlcnstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICM3Nzc7Y3Vyc29yOmRlZmF1bHQ7aGVpZ2h0OmF1dG87cG9zaXRpb246YWJzb2x1dGU7dXNlci1zZWxlY3Q6bm9uZTt3aWR0aDoyMzBweDt6LWluZGV4OjEwMDB9LmNvbG9yLXBpY2tlciAqe2JveC1zaXppbmc6Ym9yZGVyLWJveDtmb250LXNpemU6MTFweDttYXJnaW46MH0uY29sb3ItcGlja2VyIGlucHV0e2NvbG9yOiMwMDA7Zm9udC1zaXplOjEzcHg7aGVpZ2h0OjI2cHg7bWluLXdpZHRoOjA7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MH0uY29sb3ItcGlja2VyIGlucHV0Oi1tb3otc3VibWl0LWludmFsaWQsLmNvbG9yLXBpY2tlciBpbnB1dDotbW96LXVpLWludmFsaWQsLmNvbG9yLXBpY2tlciBpbnB1dDppbnZhbGlke2JveC1zaGFkb3c6bm9uZX0uY29sb3ItcGlja2VyIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLC5jb2xvci1waWNrZXIgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjB9LmNvbG9yLXBpY2tlciAuYXJyb3d7Ym9yZGVyLXN0eWxlOnNvbGlkO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjA7ei1pbmRleDo5OTk5OTl9LmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctdG9we2JvcmRlci1jb2xvcjojNzc3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O2JvcmRlci13aWR0aDoxMHB4IDVweDtsZWZ0OjhweH0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1ib3R0b217Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM3Nzc7Ym9yZGVyLXdpZHRoOjEwcHggNXB4O2xlZnQ6OHB4O3RvcDotMjBweH0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1sZWZ0LXRvcCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy10b3AtbGVmdHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzc3Nztib3JkZXItd2lkdGg6NXB4IDEwcHg7Ym90dG9tOjhweDtyaWdodDotMjFweH0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1yaWdodC10b3AsLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctdG9wLXJpZ2h0e2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjNzc3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O2JvcmRlci13aWR0aDo1cHggMTBweDtib3R0b206OHB4O2xlZnQ6LTIwcHh9LmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctYm90dG9tLWxlZnQsLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctbGVmdCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1sZWZ0LWJvdHRvbXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzc3Nztib3JkZXItd2lkdGg6NXB4IDEwcHg7cmlnaHQ6LTIxcHg7dG9wOjhweH0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1ib3R0b20tcmlnaHQsLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctcmlnaHQsLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctcmlnaHQtYm90dG9te2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjNzc3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O2JvcmRlci13aWR0aDo1cHggMTBweDtsZWZ0Oi0yMHB4O3RvcDo4cHh9LmNvbG9yLXBpY2tlciAuY3Vyc29ye2JvcmRlcjoycHggc29saWQgIzIyMjtib3JkZXItcmFkaXVzOjUwJTtjdXJzb3I6ZGVmYXVsdDtoZWlnaHQ6MTZweDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxNnB4fS5jb2xvci1waWNrZXIgLmJveHtkaXNwbGF5OmZsZXg7cGFkZGluZzo0cHggOHB4fS5jb2xvci1waWNrZXIgLmxlZnR7cGFkZGluZzoxNnB4IDhweDtwb3NpdGlvbjpyZWxhdGl2ZX0uY29sb3ItcGlja2VyIC5yaWdodHtmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MTJweCA4cHh9LmNvbG9yLXBpY2tlciAuYnV0dG9uLWFyZWF7cGFkZGluZzowIDE2cHggMTZweDt0ZXh0LWFsaWduOnJpZ2h0fS5jb2xvci1waWNrZXIgLmJ1dHRvbi1hcmVhIGJ1dHRvbnttYXJnaW4tbGVmdDo4cHh9LmNvbG9yLXBpY2tlciAucHJlc2V0LWFyZWF7cGFkZGluZzo0cHggMTVweH0uY29sb3ItcGlja2VyIC5wcmVzZXQtYXJlYSAucHJlc2V0LWxhYmVse2NvbG9yOiM1NTU7Zm9udC1zaXplOjExcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NHB4O3RleHQtYWxpZ246bGVmdDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLnByZXNldC1hcmVhIC5wcmVzZXQtY29sb3J7Ym9yZGVyOjFweCBzb2xpZCAjYTlhOWE5O2JvcmRlci1yYWRpdXM6MjUlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxOHB4O21hcmdpbjo0cHggNnB4IDhweDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxOHB4fS5jb2xvci1waWNrZXIgLnByZXNldC1hcmVhIC5wcmVzZXQtZW1wdHktbWVzc2FnZXtmb250LXN0eWxlOml0YWxpYzttYXJnaW4tYm90dG9tOjhweDttYXJnaW4tdG9wOjRweDttaW4taGVpZ2h0OjE4cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmNvbG9yLXBpY2tlciAuaGV4LXRleHR7Zm9udC1zaXplOjExcHg7cGFkZGluZzo0cHggOHB4O3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAuaGV4LXRleHQgLmJveHtwYWRkaW5nOjAgMjRweCA4cHggOHB4fS5jb2xvci1waWNrZXIgLmhleC10ZXh0IC5ib3ggZGl2e2NsZWFyOmxlZnQ7Y29sb3I6IzU1NTtmbGV4OjEgMSBhdXRvO2Zsb2F0OmxlZnQ7dGV4dC1hbGlnbjpjZW50ZXJ9LmNvbG9yLXBpY2tlciAuaGV4LXRleHQgLmJveCBpbnB1dHtib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7ZmxleDoxIDEgYXV0bztwYWRkaW5nOjFweH0uY29sb3ItcGlja2VyIC5oZXgtYWxwaGEgLmJveCBkaXY6Zmlyc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAuaGV4LWFscGhhIC5ib3ggaW5wdXQ6Zmlyc3QtY2hpbGR7ZmxleC1ncm93OjM7bWFyZ2luLXJpZ2h0OjhweH0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0LC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCwuY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0e2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6NHB4IDhweDt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94LC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94LC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCAuYm94e3BhZGRpbmc6MCAyNHB4IDhweCA4cHh9LmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94e3BhZGRpbmc6MCA4cHggOHB4fS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94IGRpdiwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQgLmJveCBkaXYsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggZGl2LC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHQgLmJveCBkaXZ7Y29sb3I6IzU1NTtmbGV4OjEgMSBhdXRvO21hcmdpbi1yaWdodDo4cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94IGRpdjpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94IGlucHV0LC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94IGlucHV0LC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCAuYm94IGlucHV0LC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHQgLmJveCBpbnB1dHtib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7ZmxleDoxO2Zsb2F0OmxlZnQ7bWFyZ2luOjAgOHB4IDAgMDtwYWRkaW5nOjFweH0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQgLmJveCBpbnB1dDpsYXN0LWNoaWxkLC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94IGlucHV0Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggaW5wdXQ6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0IC5ib3ggaW5wdXQ6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MH0uY29sb3ItcGlja2VyIC5odWUtYWxwaGF7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1ib3R0b206M3B4fS5jb2xvci1waWNrZXIgLmh1ZXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFKWUFBQUFRQ0FZQUFBRDA2SVluQUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDRBSVdEd2tVRldiQ0NBQUFBRnhKUkVGVWFON3Qwa0VLZzBBUUFNRTJ4ODMvbjJxdTVxQ2dEMWlEaENvWWRwbmJRQzliYlkxcVZPL2p2YzZrM2FkOTFzNy83RjEvY3NnUHJ1anVRMTdCRFlTRnNCQVd3Z0poSVN5RUJjSkNXQWdMaElXd0VCWUlpMmY3QXIvMVRDZ0ZIMlg5QUFBQUFFbEZUa1N1UW1DQyIpO2RpcmVjdGlvbjpsdHJ9LmNvbG9yLXBpY2tlciAuaHVlLC5jb2xvci1waWNrZXIgLnZhbHVle2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjE2cHg7bWFyZ2luLWJvdHRvbToxNnB4O3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAudmFsdWV7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSllBQUFBUUNBWUFBQUQwNklZbkFBQUNUa2xFUVZSNDJ1M1NZVWNyQUJoQTRVMlNrbVJKTW1XU0prbEtKaVdaWnBLVUpKc2tLVW1hVEZJbUtaT1V6TXlTcEdSbWxpUk5KaWxKU3BLU0pFdG1TcElwbVdtU2RPNzM2LzZEK3g3T1AzZ1VDb1dDdjFjcWxTUWxKWkdjbkV4S1NncXBxYW1rcGFXUm5wNU9Sa1lHbVptWnFGUXFzckt5eU03T0ppY25oOXpjWE5ScU5YbDVlZVRuNTZQUmFDZ29LS0N3c0pDaW9pSzBXaTNGeGNXVWxKUlFXbHBLV1ZrWjVlWGxWRlJVVUZsWmlVNm5vNnFxaXVycWFtcHFhcWl0cmFXdXJnNjlYazk5ZlQwR2d3R2owVWhEUXdPTmpZMDBOVFhSM054TVMwc0xyYTJ0dExXMTBkN2Vqc2xrd213MjA5SFJRV2RuSjExZFhYUjNkOVBUMDBOdmJ5OTlmWDMwOS9jek1EREE0T0FnRm91Rm9hRWhyRllydzhQRGpJeU1NRG82eXRqWUdEYWJqZkh4Y1NZbUpwaWNuR1JxYWdxNzNjNzA5RFF6TXpQTXpzNHlOemZIL1B3OERvY0RwOU9KeStYQzdYYXpzTERBNHVJaVMwdExMQzh2czdLeXd1cnFLbXRyYTNnOEhyeGVMejZmRDcvZnovcjZPaHNiRzJ4dWJySzF0Y1gyOWphQlFJQ2RuUjJDd1NDN3U3dnM3ZTJ4djcvUHdjRUJoNGVISEIwZGNYeDh6TW5KQ2FlbnA1eWRuWEYrZnM3RnhRV1hsNWRjWFYxeGZYM056YzBOdDdlMzNOM2RFUXFGdUwrLzUrSGhnWEE0VENRUzRmSHhrYWVuSjU2Zm4zbDVlZUgxOVpWb05NcmIyeHZ2Nys5OGZId1FpOFdJeCtOOGZuNlNTQ1Q0K3ZyaSsvdWJuNThmZm45LytWY0tnU1d3QkpiQUVsZ0NTMkFKTElFbHNBU1d3QkpZQWt0Z0NTeUJKYkFFbHNBU1dBSkxZQWtzZ1NXd0JKYkFFbGdDUzJBSkxJRWxzUDQvV0g4QW1KNVo2akhTNGg4QUFBQUFTVVZPUks1Q1lJST0iKTtkaXJlY3Rpb246cnRsfS5jb2xvci1waWNrZXIgLmFscGhhe2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUpZQUFBQVFDQVlBQUFEMDZJWW5BQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVINEFJV0R3WVFsWk1hM2dBQUFXVkpSRUZVYU43dG1FR082akFRUkNzT0FySGdCcHlBSllHamNHb2N4QW00QTJJSHBtb1dFMGVCSCtlem1GbE52VTA2c2hKM1c2VkVlbFdNVVFBSUlGOWY2cVpwaW1zQTFMWXRTMnVGNTEvdTI3WVZBRlpWUlVrRW9HSGRQVi9zSWNiSUVJSWtVZEkvOVhhN25leXY2MStTV0ZVVkFWQ1NjdDAwVFduMmZ2NnUzK0VjZmQzdFh6eS8wK25FVXUrU1Bqby9rcXpybWlRcFNjTjZ2OThYZXdmQTgvbE1raUxKMld4R1NVb3BjVDZmTTZVME5YOS9mcmZiamV2MVd0ZnJsWmZMaFlmRFFRSEcvQUlPbG5Hd2pJTmxIQ3hqSEN6allKbS9USldkQ3dxdUpYc2VGRnpHd0ROTmVpS01PSlRPOHhRZERRYWVCMjkrSzllZmVMYUJvOUo3dmR2dEpqMVJqRkZqZml2N3F2OTV0angvN2xlU1FnaDkzZTFmZk1lSXA2TytZUWpoby9ONzkxdDFYVk9TU0k3Ti8vSys0L0dveFdMQngrUEI1L09wNVhMSisvM09sSkpXcXhVM204M292djVpR2Y4S2pZTmxIQ3hqSEN6allCa0h5NWdmNWd1c3ZRVTdVMzdqVEFBQUFBQkpSVTVFcmtKZ2dnPT0iKTtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO2RpcmVjdGlvbjpsdHI7aGVpZ2h0OjE2cHg7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC50eXBlLXBvbGljeXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCSUFBQUFnQ0FZQUFBQWZmQ2p4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQUFsd1NGbHpBQUFDZXdBQUFuc0IwMUNPM0FBQUFCbDBSVmgwVTI5bWRIZGhjbVVBZDNkM0xtbHVhM05qWVhCbExtOXlaNXZ1UEJvQUFBSUFTVVJCVkVpSjdaWTlheFJSRklhZnN4TVN0ckxRSnBBZ3BCRmhpK0M5dzFZU28wMEk2UlovZzl2WnBCZi9RT3I0R3lSZ2tTS05TckFhZHNacVFHd0NrdUFXeVJaSnN5U3d2aFo3Ti92aHpyZ2JMSDNMZDg1OTdqbHp6NTB6Sm9reXhYSDhEcURWYXIwcWk2djhCYkl0cVNHcEVjZnhkbG1zRldYa3ZYOEFmQVZXZzNVS1BFblQ5R0t1ak16c0FGZ1pzVmFDTjFWVFFkNzdYVW5yZ0Uxa3YrNjkzNTI2OFdScHpybkhadllSV0M3WXZDM3BSWlpsM3dvenF0VnFpeUg5SWdqQXNwa2QxR3ExeFVKUXRWcmRCOVpLSUFPdGhkZy9RYzY1TFVrN3dOSU1vQ1ZKTzg2NXJZRmhrcWpYNi9kN3ZWNEdQSndCTXFvZlVSUzVKRWs2RllCZXIvZWVZYi9NbzlXd0ZuUE92UWJlQXZmdUFBSzRCTjRzQUp0QUcvZ0pJRWxtTnVpSnliYTNFR05tWmlQZVp1RVZtVmVsbC9ZLzZOK0N6RG4zQVhoRU9PbzdIdi8zQmVBejhJelFrTVBuSmJ1UHgxd0MreVlKNy8wbllJUDVTLzBGSEtkcCtyd0NFRVhSUy9yZjVIbDFHdGIyTTBpU3BDT3BDWnpQQVRtWDFFeVNwSE1MQXNpeTdNak1Eb0hyR1NEWFpuYVlaZG5Sd0JoN0o5MXV0d21jekFBNkNiRzNHZ1BsZVg0anFVSC9hMUNrdHFSR251YzNoU0NBTUIzMmdLc3BrQ3RnYjNLQ1FNbWtqZVA0V05KVGhyTk5admFsMVdwdFRJc3Y3SnRRNHRtSWRSYThxU29FcFdsNllXWk5vQU4wekt4Wk5QZWhwTFNCWnYydCtRMENKOWxMbkFSUUxBQUFBQUJKUlU1RXJrSmdnZz09Iik7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTo4cHggMTZweDtoZWlnaHQ6MjRweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMnB4O3RvcDoyMThweDt3aWR0aDoxNnB4fS5jb2xvci1waWNrZXIgLnR5cGUtcG9saWN5IC50eXBlLXBvbGljeS1hcnJvd3tkaXNwbGF5OmJsb2NrO2hlaWdodDo1MCU7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC5zZWxlY3RlZC1jb2xvcntib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjQwcHg7bGVmdDo4cHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjE2cHg7d2lkdGg6NDBweH0uY29sb3ItcGlja2VyIC5zZWxlY3RlZC1jb2xvci1iYWNrZ3JvdW5ke2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNnQUFBQW9DQVlBQUFDTS9yaHRBQUFBaDBsRVFWUllSKzJXMFFsQU1RZ0Q2MHpkZndPZHFhOFRtSS93UU1yNUswSTViWkxJekxPYTJudDM3VlZWYmQrZER4NW9iZ0NDM0tCTHdKMmZmNFBuVmlka2YrdWNJaHc4MEhRYUNMbzNETUgzQ1JLM2lGc21BV1ZsNmhQTkR3dDhFdk5FNXErWXVFWGNNZ2tvblZNNlNkeUNvRXZBblo4djFIang4MTdNaWxteFNVQjVyZExKRHljWmdVQVpVY2gvQUFBQUFFbEZUa1N1UW1DQyIpO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDo0MHB4O3dpZHRoOjQwcHh9LmNvbG9yLXBpY2tlciAuc2F0dXJhdGlvbi1saWdodG5lc3N7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBT1lBQUFDQ0NBWUFBQUJTRDdUM0FBQUFCbUpMUjBRQS93RC9BUCtndmFlVEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFBQjNSSlRVVUg0QUlXRHdrc1BXUjZsZ0FBSUFCSlJFRlVlTnJ0blZ1VDQ3Z1JyQUhOK1AvL09yLzYxWTV3T05aN21aMXUzWEFlTE1qSlpHWlZnZEtzZmM1eFIzUzBSSUlVVytDSHpDcGMyTWNZbzdYR3YzZXg3VWlaZDU3cmp5enp2K3YrMzNYL1IvKzNyL2Y3dlIzODZZK1R2S05jZi93ZGhUTFBjdjlxVTJ3WmQ3NHV0aDB0MTgyMWprSVpMUGNzSS82bldhNFh2dXRxdVUwWjg1bW54ODBTL1p6Z3BuTG5PdEhOdDcvb2Z4MVRLWGNTTnpOLzdxYk1RM2p1N3JOUW1NWVlkLzRzMmo5YWErUCtnR2FNY1pyYjFNL3RkcnZmNy9kMnY5OVA5L3Q5M08vM2NidmR4dTEyRzlmcmRWd3VsM0UrbjhjLy8vblArMisvL1hiNjZhZWZ4bC8vK3RmeDV6Ly8yWUs1QWwycmd2ZjRVc2JwZEdyQjUyYkF2QXJYcHV6am1pcUFWU0d6NWVEbUdZWHpoYkFabUNybm16ZGRwVVUrOFkxZEFPWWVYQ3REVXdWd1Y3WUNHSDZ1QW15TWNaOWw1dmtVYUJQR01VWjcvSjV3Lzc5Mi9mdnY5WHE5MzI2M2RyL2ZUeFBFQ2VNRThuSzVqTS9Qei9IVFR6L2R2MzM3ZHZybGwxL0dQLzd4ai9HM3YvMXQvT1V2ZndrVnN3b25namRPcDlQekgzVTNEM3ptV0duWlZYbjRqQ3FzN3dDMkJLUDQvOHRBemtac29XeDZYcnFlSFp5bXZwNEFCQ0JKaFRRd0tmRFQ4Z3pyWkNJcWk1QWhpQUNqQmZFQjJyUDgvWDYzTU03ZjYvVjZ2OS92N1hhN2JZQzgzVzdqY3Jsc1ZISXE1ZmZ2MzArLy9mYmIrT1dYWDhaUFAvMDAvdjczdjQrZmYvNzVKU3ZiZXUrYkwyV01NYUZiQWxwQk5NODVRWCtjdDZxb1Nxa1BBd3VRbEJWS3FHTkZTVU9BQTNCbXU3Z0M1aE5PZDE1blN3dkFPVVc3QzRnaVVDVjhTZ241TDloTkZJcVRzcDBHeEkweXNpb3lqQWprWS90R0pWRXB6K2Z6K09XWFgrN2Z2MzgvL2Y3NzcrUGJ0Mi9qMTE5L0hULy8vUFA0OWRkZng4ZkhSd3JtVGpWNzc5RVh1MnB4Mnhoand0ZEpaUWNBV1FJUExQSVNzTUphU3dpRDhneklLcndTeUFURTVqNW5BYlI1YzFkQlV3QmxzRVdXMGg2THFpWXNxRlBBUXhDeVJaM3dPU0FSeG1sWE1YNWs2NHBRZnZ2MjdmNzUrZGsrUGo1T0h4OGY0L3YzNytQYnQyL2p0OTkrRzkrK2ZSc2ZIeC9qY3JtVUZMTzMxZ1lEV2JseFJJcy9UcWZUN291c3hKc0F4WEEyR2M3VEE5WGRnZmRvSGJGc2o3NlgyKzFXQXJnSTFhZ2VHd0EzcXVwcW9Ic21jYkk2RnU5M3F1Z2dGYTlkN0xlRHRnS2ZBRkhCSitORUJ5SWtjSjVLZXJ2ZFRtaGhHY2dKSlNaNXZuLy9maitmeisxOFBwOCtQei9INStmbm1HRCsvdnZ2NC92MzcrUGo0Mk44Zm42TzIrMVdzN0pqalA2d3JhTUk1RTRSWjh4MnZWNVRTd2txdW90VjcvZDdUejZIRldzRC9xTmNkdzBDUTNxLzMyMWM2ODZUd0RWSWRidXk3M3pObGRoU0hiOEkya2xaem5tK0luQlM0VTZuMDMwMmFCRnNMaEhEQUtKVkpWZ2xmSTlqaHZ1NTNXNTNzTEFOWU54QWlEQTZNQ2VVSHg4ZjkrdjEyaTZYUzd0Y0xxY1pXNTdQNXllWTgvZno4M09jeitmbnNTbVlVeWtuV0VHODVXQnN0OXN0elNMeU1kZnI5UWkwOGlZMTVVWjBMbERHTGhSM281eksyajdPUFVURDBFK25VM3RrN1hiLzE2TkZiaGxvQU11WTF6akxVT08zQktlSURlK1o4czMvSjRnRm80VE01alBtdVJnMjhmb1VLS1ZTd28xNlRnQTVucHl3Y1dMSGdZbC9QejgvNzMvNjA1L2FiNy85MW02M1c3dGNMaWUwc1pqNG1hbzVnVHlmejg4RTBmMStqOEVjWXp3VFBFRzJjcWp5ZkhORjBNOGZ1cUVpYU9WblJ6WlpRTmg1ZndReUhnL0hER2ZKbzg5UTF6Yi9xdXU1WEM2NzczSTJYS2ZUcWQvdjkrZDN3dXFXdmEvWVRkVWRFVjNmaEl2L1ZpeXBzNllFM3gzcjQzSzViSlFTNjZ6YXhWR0ZzdmQrLy9qNGFGKy9mbTNmdjM5dnQ5dXRmZjM2dGYzKysrL3RkcnVkdm4zN1p1TkxCYWFDTWdVekMrclpSaUZvd3hVdUpJOFlNcWNDcDlPcHE1dmFnYVlVNmxHSkExWFFxZWpjaHc2Q2owR3c1bllCckd3MDFBMk8yMDZuMDRCR291Tk55VGZwL0Z3RWxoVWV5Nm5YcklLdzdRUVdkZHh1TjJsZEw1Zkw4MzlnU1BGOGFodS9KdkJPNDhDUFN1cU1mOFZwOS9QNTNMNTgrZEx1OTNzN244L3RmcjgvMzkvdjkvYjUrVGtoUEozUDU2bVE0MzYvaisvZnYrL2lTZ2J6ZXIwK0FaeC81Kzg4YnY2T01kYTZTNXo2a2QyMWZZQzlkeHY3Y0lKSjJkOUFPUzMwZlBNenlIaVRNOEI0REY2WFVsWUhwNEtRVzNXKzF0NzdNTkIxdkdIeFdxN1hhN3ZmNzgreTUvTjVBK0gxZXQyOXh1UDVkYll0eWFSdTRBa3NiUHE2OTM2ZmpSelhSeEJiUHIvYitiMTgrZktsalRIYUJCQmZuOC9uMC8xK0gxKytmQm5uOHptMHNCOGZINXU0Y3I1R3VCaE1WazBFRW45UnNjdGdWaE0raXhsSnRNQTIzUjhCNnl5c0FzdEJPZ0ZYSUtLQ01JZ1RvTXFORXUyZllNSDd6dGM3MzJkUUtrQ2oxeXRBWnRZMEt4OHBJcjhHR0orQVQzVisySGlyaGwrK2ZCbVh5Mld6NzN3K2IxN1A4cCtmbjgvdFV3R1ZsZVZrVHlVYjY4RGtmYXlXWTR6eE5SaWhVNEVwTEpQWlZySyt1N0o0L21nZktxZUxXOVgyUkVXbEl0TDFkaXluYkREYjMralhnWWpRcW4wcnJ4V2MrTmtJTFA3Rjd4SWJNdng3dlY1M3g0MHhubGJXSkYxMlpTYWcvTjBwVzZ0K1p6bU9NekhqYWpLd0Rmb25kNzh6WVRkZnExOHVwOTd6cjJxOHYzSWlvQnByUnRCbDBFWjlvZzVXQlJHT2RPSGpJalhGN1VvdEZiZ09Xblh6SUp5ell2akc1SVlnc21NT3hIa3o4T3NNU3JWTldlcTVUOERhT2NiRXYxT2Q1cmJzOWFPN1l2TWV0NjNFa0YrK2ZNRXhxK01SbDQvTDViTFpOLytleitmblo2S2F6dU1xWFNRVk81c3BKWGZsSEFJemVzL3hKc2Vja1JKaURNb2c5ZDZWZlJycVhNcjZLcFZWMjdqUndKYWNHb3ZPQU0xek1kUU1ud0sxQXViSzYza2RDQ2h2STFDN2cwejluZi9EK1h6ZTJWajhIN0d4NFA5ZHVRbHNZQ3JxeU44WHFHM0htLzEwT2ozancvbitjcmxzdHVNK2pQbW14VDJkVHVQejgzUHp0MnBuMVhzRUhYL2JuUGFWcVZtaDB4d090MG82WExMQUhlUFVVMjAzd0hmY3JzcEN3bVYzVHJ5QjVzME1zZWVnOTd4L0J3ekNqQmxiQitwUkFQbGEwQlZRdVQ2VjZRSGRCbGozZDBLRzE0N2IrRHF4UWVVeW1ETzQzVzRkUWFyK1RJandtQWQwejgvaDY1dmYwL3lMdjNQYjVYTHBydS95ZERvOXM3RVQwSStQajZkS0s5VlVFSWVLV1FXUEFPcko4TEtkNHZFK3Q5MVkzZTdVRmxXYXRnMlZ3Sm5iK0hQbXR2bS9zZks1OS9PYVdGM3gvZVAxVVBIdkE1RERZRHBZWGZiMGRydjFWMkRrQmt4dHcvdEVXVlZsWFdkQzlwRllzNS9qZmg5ZFMvMTZ2VzdzNmxURytUZnFzeFNKSHhrWFhxL1hkcjFldTRMc2ZENlAzdnNUM043N0RrTCt6UG01alNkS0w0elIzQXhRZDZySGtMa1lsU293c3JxN3puenU2d1N3ZHNNSk9YbUE1ZkJjanh0Z01HQllIbHI1em9raHRzTUNUZ1hMUU9XNFhDNmRFeUVNcHJMOG1BUXpYUmdkdWl4Mnlaem9yeGtZc0RuM2hCMVZlTUxHc1hzVnRnbDJwVzhTM3N2azB2dzdSNGhOYUh2djRjQUNsNUhGendJSDBLYzZ6dTRYakRQUi9qcEFWeFd6TzFYazJERGIzdlRjeGVHVTFpV1pIa21JRFd6aVdLdmlyQ0o0RHJhdnM2SUovR0c2Y1RxV2RYRHkrZkFyUURWVmtMcWtWakFvWklJVGRtbUlxWHdxYTk1TjMrTUdZb1pRZFJWTk81M1kxeFJraE8xNnZZN2V1NTA3Q2E5bEpuYkdweE9lbVFoU3cvQVFzbW1wNXpVOUJpVThHNnd2WDc2TTYvVTZQajQrZG8wQno0Q3BnaWtuVFVlRHF3bEtCbWczdTRPVmpyWjFBK3JBY2dhZWpXcTZlSkN2Q1lGRE9OU3dPZ0hYNEVRUnc4bHhiekRPZEVLNmdaM0hrMWIrOGcybzFKRnRLWHl2L2ZFZFRYdVdqV1hkQVppQnA2QURlRHJDRmlpbTdCNlpGbmVlSTdHdm0vUE1rVURYNjdXN3hJOGIwRDcvdjhkQTlxZk41b2FDZjc0V1pqSDBtZjFjbWZZMVkwSlVGbVZyVFd1OHV6a05jTHRFajd1NUZYQlRrZkM2R09BNXE4WU14TzhLVnZGNnNBVkdkY3JVYnNLT0RjUUtrTE1PTWRtbHh1bTY0MllyUG0yNkFsaFpXMVlCMVIrcnJHc3dFOFRhWUFXZVVNeGRmK1dqd1N2WjJFZjN5dE95Zm41K1BwVlBBYXFPbjQzTXROQnF2bWpqeGJqTTRsWmpaWTRncU5NSTVrdGFXL3NZS053Uys5bEZRekdpaG1NQ0tQYTcrWjBWNkViMEdSbW9idHBYOEpsald1NUZNTE41amE2aEc5a3dRZ1pxZjUrMU5INVV4emtGUmVDZFdoSjhYZGxHVWt4TzdIUmxZUm00bVZPNDNXN3RlcjEyVFBKRXcvcm1FTjNMNVNLSElXWmc5bXorcFVvS09ZcTViSlRKZFgyZ21lMVVjeE1aUUZhRVFJbEhjdDMyTStZMUJ6R2tHdXpmaXlBTjl6K3VncGxaMXN5bUNyRENZWWtHeERUcEk5UnpCeTBySHllRFVDMW5XYWVVYUQ5bjR4a055WU1CRFp0elozQisrZkpsWTIxWEZET2NBUkpsYWJPeWlTM3VDcExJOWpyWmpDRGthVnZjQ0Nqd29nbktTaFdkelhaV2xaTXZWVGdEOExwcWxDTHJxZ2JjQitxWXdyZ0tZcFQwY2NDcWJLeUNWYWxrRWFibi9GeW5vZ0NyUEtmcWY1MXhKN3NHQjJaWGNabXhvU096dGp4MzAwRFppN2EwLzJBSVIwVWxCYWc5U3VEdzZLY0F6bGFCN3ZIWnZXcGpLOTBkeXJxNmJLeURVWlFiUjBCMDViaUxRa0hJY1NVbWdJSytTd3VxZ0hDbm9pbzJSUVUxeWorQm5CeTlwcGhWS0xHeUM3WnpGSzFweFdLK0U4SWhWQ1dMTi91THRuVVU0YXlvWUxvYUFOejhGZHRhU3ZZNHBWMEJFVzJsczYxY3pxbGxCS3BUeUtnTUFocloxY2RjMVJST3RQbXZXTmtkY0taN1pLeGFXamlQTEpNcHA3T1pLeEErcnFHL29KTGp4ZjBwbkpscUxvRFpvM2d5VTBtS0d5czJ0YUtlY2ovZDFDK3JKU3BsQnFsVHlBcWdSK0Q4S2pLbG1STDJndFVjQWRDdHNMK2lqQ05UMW9xcXFrSDJPSEViRzVzREZuVWc1QWEreUxvdTJWVTFwdGoxUzJaUXF2MU9SWk45SVd6UmZnYVJCeEtvQkU4VVd5cWxKRnRySWMwQXhOalNqZWQ5OUNUWS9YRGZTekN6NU0wSVpvVkVzV25QRk5Uc2w4b29WQzFUemJHZ3FGWk5EU2dWd0tLKzFzR0RNS3F4WkNXR1ZNRHlzaUVyMWpWU1FKVVl3ajVpSE9sVGhkSHQ0NFNRZzlDTitubDhEOTBOTUlnQWRncjQ2SnFSaVI5STh2UmRGdmJyMTdtL3l4VU1Lak5MTWlWVUFEd3UyQ1dHaGhpK0Y1NVRXTTlNOWNvZ3ptczFkbk00dU9GL0xBRVlXZGNxbk03eUZteXEzSWZ3bU9ST2Q3WTFpRld0T2pvWThUbzQxbVRWNUl5c2dGRnVSenNiV0ZHYk5JSUpDRHYxZE9vNGxaRzdqV0J3UkZ0VlRLdVd5ZUNCeUpLT2FuOG9aM2VwOVhkZE5sMHREdWF5d0x6OWNYUFllREFBMFNwa0JPOXNiVmNUT1ZXbGRQdjR1eXpFa3p4SHRqdm9uSG9Ta0ZFV05vbzFkOERoY1FwdXRkMnBwTm9uNEJ6b0FpSjFoQkZRZzBkVnRkYkdISERRV3VzaG1ORVF1a0xNMlFPMUcyWThiZ1RYcUZoY0JKajdFalBnY1B0czhVUzhxUHBQQi9kWHpuT2g1WjQzOHR6SDVlYzZRZ3JPS3JSUmZLbXlzQm1VREIrUGhZYWJNbFZQRVIrR0NTSVRUenI3YW0ydEFySDNiZ2NFelBKbStjcjVqSjRObkhORkRWckZYY0k1TGU5azVKbncrYmVkYlYrRmZSelpJSGFPT2FPc0xZMC83VUdzNThEanJHd0tNSU1GSUd6T0VXMS9qR3NkQXRDTjZoRUFJNGhCZTlZWGVSUk9CU1ZQQVZQQXF2SU01Yng1aFZLV0FNUDZ6QlJ5M2llc2NyaWRWZEZCaW5CeFhEbkcyR1JZMlhiQ3ZwMWxodkd0TzlCeHU1aDkwOFhRdTQybG5TQXJNRmRpek1pbTh1d1JDeFBHbm5PUzhsd3BuYk9pRHFUQWpzclJOL1Bjb0FTY0NiYUFDcVZNNDB5bG5qalRCcytid1dsQUcyMy9VS2Jka2l3S1dJUVBHeldhY3pwb1NseFBFajgyMmNOV2twUzdGeXpzRHJxcGZncEczamFodzJ2Z2JhU1FBeHVMV1pZdDdKenlOZThKb1pwTkFjdkRGT2R3MHdxWVQ5QUsxclp6L0RkYlNsTFBwMHJ5SXhnUUpsSzlBWmxFcTdJT1hwb2hnOVBJaHJDbmc4OEpzT3hpVjRaV0FZZmc0c2lreC84a3kyWjlsODYydXF3cmZzY0lIOCt1Z1RtVkd5aWRkZVZZVWdFTW40R1p6ZzE0RXdJc2g5c3gyY0tLaVdYUmV1T0U1Z3pHT1FnZGxSS1ZWZGxldnFiMjc5WHEwUW5zdHMyVkRhQk8wY29lenNydVd0SEFwdTZzS0c0SUJoTjBhR1Uya0xyTUtHUlROM0htYkNEd0tWMTR6dmtNRURHNFFmWlZzcFZsYU5VMm1oYzVURVozTjFoL3pxVGhldUxwVzA1WldUR1ZqYjNkYm5ObXhLWkJuTjhKcWlkYVZMS0FPeUFSTkxTK01CNTRaMitWYXFvTUxLcm9WQmxuZ2VmblRQQWNvSE5XQ1N2bGZBOENJMEhFbUJOQm5CbFh5TXJ6VTdBN1dWbTk0UFBxUTJnbXFLeCtXREdzbnZpbG1jU09CSnFPSzFuWXlBSXp1QXllc3EzVWRTSzNLZldjWUtEOTVIbWZZT1UzcXNlcjJDdFlFVUErRnBmcWROdmdQQlpVQmhEckdPTlJWbFFzaDhyTGNhVUN5a0hHME9PVXdUbExCcnNoNXNvRU1HZXppMUU0SFJWdDFpY3A1d1pFRlhkaWJDa0c4WTh2WDc1c2JPNEUwaW9tOXoraGpTaU9meTNEaHBYSXRwVmhFK1VHUWR2b1dqdENobXJHSGY0WUF6S2dCTm5HdHVKeEZDZUdkaFVBZlFMTEs4a0JZQVA2Z3ZGSlphak1HM1hreWN5OEt1QzBxNEV5eW13dHdkeGR2Mk0wbUlCdEswTEtuZjY0MGowMEF1cTRnVWtkV0dsaHMyMnFKYzZkWkNzTDE5b3hubFRKRzRTWVZSSUdwRDhUUEZCdU02T0VsYlMxcGxkaWQ0bUdBeU42Wkl1cGJDNWJYSk45ZmRwYlRoU3hMVWFJOElHMVhJWUJ4VzNUanM2S1Fvc0tjeGZ4Y1FtZG53UkdNMTBHbkZjQ3kyWFl1bkxNeUFrZGdrNG1lUGljenNMeWd0aGNCdXQ2Z29PcVM3WVZGWEFETGphb3NCNnM2b2ZjWldBWlNJUllxU1VraXpZd3R0WWFiM3ZVT1E5dzJIUnhJSWc4V3dSVmVFNjh4aTRVdEwzelJwaHhwbHp3dVpyY3FZQ3ExSTNqUEk1ZG5KSXlnRW9oTWJQcVZKU3pyd3p4QkpUczV6TitSZVVTZ3hpa1BRVkYzSlZCZU5ReGJIRU5yRU1OdkVkRlpWVjlsSDkrT1JHRXNOWlFweVROYzRDM0FHN1hGNG5nenErRHJPMnpidWFhT1hnZGFGY2RrRW90b1NGQlZYMnFKMEM4T1daZUc0S0dscGdoQTBYZlRPUENxVjJxcXdRMjZRV2ZGMlBNTGhJMncxbFZBYTJhUHNZZDB6YTI1TVFSd2djWk42dVFEQ2krWnhpRDRYRU0ya1p4T1Q0MUZuWm5hUmxjcFpvdXpsUnFxZGJRVldvcFFvU0I1OFJWNTBsQk5ySGkvQXdYUzVMcndEVmxwWTNGYzNCeWlZR2M1MlRyaXN0NmtPWGR3SW5BUXRKcHA1UWNoeWFxdVlPVjdTdStmeFZNYVYzZGMwUkUyUzZtVVkwZ0x0MnBNY1lxcktJUTl3MmwxZ3BRVU10UVljbW1idDVEVE54ZGhuVUNqUXF0Yks5U1VTenZyQzBtbWhoRTFlMkZTMitveHlweS9aQVN1dGttdGp4M3ZjQkMyNFBYNjVuYnFrQkNSaGZqUzlrSVlQbmVlOGNNYWdWT2hJLzNUMWZBbWR0QVdac0Nzd1RKQ2tRVk5hMHFXS1NLUE9wSEFVaEQ5RHJiVmN5b1lrd3FodmgxN3ZZQWF5WExReUtHWWR4bFVERnA0OTRyQlhSallnTzE3RERZZXROSVVqL2V6cDZTMGxubHBFd3NXbUpNa093c0tYZVpLRUFqSUhuMEVRSklTYVJCY082VU1JTno3cC9iRWpqbnc0ZnQreG1EdmtzeFg0RzJySXJpczdxYWVLd0FGTVAyT2k3bjRjcml1Wnd0cFNVd3BmTHhTbk9SU3JJcXVzYzVaRmFYeXNxUldqaVoyRHlBV0VJTDM1dFZTb1FFbEZBQ2pPZUdHU0U3QUhFUWdkby9MU3ZDT2dHQnZreHNtRGJ2bFMzRnA1dmhhQjJUQUdxUktyS0tNcmhMVnBhR3pFVmpaME9ReERoYUNUQStReVJSMWQxNWFRenJKbnRMM1JpYnNpcGpHNmpsZ0w0eXFiUzBzTllnMWU4NHZoYkJWckVsSzY0Q1VjV1lYRGZLeGhwSXV4aVZKWlV4c2JNeS91UkJLVE5SUTRrUTNMZFJZTFMwckpqUlBsVFBxWTZnZEpzRURjK2FRWEFuK0hnc05VQ2JSdUYwT2owenduQTdiV0RrYmhPNUVuczAwcWVRaFMxbGFCTWw1TS9jQWF4c0xGOHJLeXFsK1RmN0VMTEVHdS9peGlpbWRDdm8wVGpmcGpLd2FnZ2VuNGVoNXY3TG9rTEtiTHV5dkhoY1pHOGRoR3JFRHg3SGc5M1pwcEpGN3FCcU8zaVZ2ZVhFRFFOSW56ZW9lOFlxNmVQYVpCWjJKdmlNM1cyVUFHb3Rla1JDQUdxNEVrRjFYM0RPblIxMXlSc0JMMXRSYTBQVmNaaU5GWFoyYzM0RnNrdm9tSW5RUTZsenBKb1piSnhrNDNOd0tKRkJxdUpTc3JCeUh5ZHhLT25UeFFBU0JtUzNqK0pNbnNIU2xhM0VjNks5VldvSlZuOXpmandPTTdocVlBQXFKUXdFMmEzbkE0OEoyUUdlZ1JrcFpOaXZTWSt5czNFa0tkNG9KSXdzdklIbDNjV2dMdDVrNE5INk9tdExXZHB1ck9rd0VNdXBZYzdlTXREUmhPY0kydWk1SmhWSXpYekx5dG8vR0FQdVpveW84d2tvZHVWZ0pnbEN0N09oR2JnSUQ0TXE0c2krNjN6VVMxRnVGRlhGbHF5YWoyZW1IbExNY0JxWXUwRk11UjI4QmJCN2xPeFJNU2lDUVhGaENLdXdraForcFlEaUdTZ2JzS0tWOE1pU1JzdUhTSVdNOXJrbFJpSWxaWnVxWGpzUUs4b29ZSk1ncTNKS1dWa2hIYmhzVnhGVXp0aE9XUGtZaWpjYng1NElLc1NkVCt1THIzY3JHS3lvWWdGaUdSOWlCazRrZmxvVVgrSklsUVJRcWFibXBnbmhxdHBRcGI2UlZRMVdINURuclM0aEVvR1pxYWVyUTJkaEZiejhYZVB4U2htRGJvNzBlSVNqb29yTzJ2SzhTSlhJNFNVbUVVNHpXS0R6VUR0V1RZdzd4WGxiU1RFajRGUmc3ektuS29HUkFMdjBHczlUZ2MxQnBDeXdHWlJRQXRxVnoyeHJCY0FNekVwZlp3RlNhMkc1VzBRQkZqU01hcFdBRUZhM0hjR043Q3hEekVDeUlrSjk3cXdycVdOVFdWbzg3NlBQc2pQa2oyd3Zncm9NNWxMWktNRVRLVnFsL0N2bldWRmlGYS9TekpVUXdrb1pzcjY3WTZ2bFNSVjMvMnRtTlRPWTN2bmF4WXdNdW9QS3FkelIxdzdJcUh5bWxQeGFBVGhmVTdLbzJaWFlqNEFZSkhMK2tOZEt3UlFZRVNUUmE1ZnNVWi9yVkMxVE1UeVdWeVlvcU50dXphSHNNeXYydHZvYXJ4ZGZxd1lnVTFheEZvL2NucWwxRkdzcUsrdUFST1Y4Qlg0R1U4V2NaVEFUaTJxN1FjeWkwTzBWK0doV0JNTlJVa244SDFTc1dWRTVCeTNHaTBFQ3FVZUpvQmZBdERhNGFta2RYRzM3QUdQNUdnZWI4NHA3VWF6cG9LUnpkRnplUThIa29IR3hwckt5L0hwbTV0MTJwNDdKNnhUWURFejd1SU5FWFN1eFlYdkZza1lBYyt5U3hIOXNmNWZ0S3pVNklid1ZCY1VHZzVlNUZNQ0VYU0VyWlIwd0dheVYxOXdvTTlndVBqVHFKZFZUcVI0dUU0bkpuTGxkV1ZrRUNDWkxkMlZMRit4dGFtZXg3SXBpcmlTRFVwdnJwbjlscndHTUNIeXBwTUgrcHM2TElMc3VGR1VqMVhFT1hpcWJxU0hQVUtuQ2xwV1Y2OGtxdFVSVk5EWTRUTmFvY3lrb1llVFU1bmdHRVFhL1MxRG5uRTRBZVhNY0tqSFBBbUZWakNCRU5hZXlMVk5IZnIzcHg4eFVzdEo5NGhJcGZINEhLRS9lRGFBcks2bFN5VlZGYmR0MWd4VElWazNwcHBWbEZYaTRwRWhWQlRPYnF1b2hVODVNTFhuMWlhaHZVa0hKalNDTWMwMXRMRnZlVlZCeDBEb2RNNmpmdEN1N0RPdEl6WXhyYzBxcDFKR1AyYXlZRnoyR2I2SHZNck84Y25HdFY2R2ptM3VJbVNmRDJHcFdLNnVvd2JaR014RktRQ28xcE9NdGNNWEZwUnN0K2hYR29Bb21GM3NTVEJHZ1RnbGJCS1d3c1EzdFpxYVlTcDBaMUNpbVJEV0ZjQ0pVUFlKMDBCSTVGa0tZTm9pZnVReG1OODhTV1ZYV0xNYVVxcXFnQzBCbVFKUjZzazN1OU5DZjZqWUxYeEFmcXNZRWdWTEFoUlkyQXRndGZsWk5GbUZ5aHhkckxrQWRXbGs0RDg4TTJpeEh5ZXBJZGhNSHJHL2lSMVpHdHEwTUdwYkRiUlBZT1hlU1kxTTZOeTRac3R2R1NrdEsrWGJGUEFUajJEMzcxc2FQRXNBTVhoWHJzWjBrbS9YU3RraGhNeUJmc2E2dVhGWmUyVkNlK1lNcjErR0tnd3JReU5ZcTFWUnJCK0VpekFvdzZOc2ROS2N5VkVrWWVNNzN5czZxNGtBSHA2QmlGa2xUa0lyVkM1b1lWN3V6d09HQ3o0VUowU3RxMmxXTUp5NHd0YitSZXRMNnRaRmljbkptQnc1VWpDdlhYTVpWSlgyTVFrYmYrWE41RVdkNzhWejgvSkVzTVpUQmlLTnpzbTFpbkxSVVE3NEg0TmlkYXFJNjhqNXNBRmd4Y1J2ZUM3aWVMSlhmUVl4alpaMkNzaVdGZXdaWEptQklsWjF0ZHRyWDRoU3VhdGVLc28vUlpPdE9LVzJubXExb1R6ZUs2ZFJXQVd1Mk5SVmI0aHEwU1htMUd2dHVnSHJicjVJWHFtU2t0ZzVDdURFMk1TbFB3c1k1a05FMldwM0FxaVpiV1ZMQXhpQkYrMmlCWmJ1Tmo2TUI2cnNNTEM3Rnlhc2FZRHlvN0trb1B5RXR3M3BFTVhmUHZ4QUppMmpBUVFnanJ6MHJMSVpTV1psSW9OaHdkNXhLNEFSOW1ZTmpXQWFMcm51SW1KZUJWTjl6Qk9ST2JWdmJyK21UVGZGU0VKTFNSbkhvN2hFSm9JaThNRnFqeG12Z21GNVVSWno0ekxGZ1paOEN0dTJYN2dnVmNjS205Z1Z4SXNPSHF4WGdOTUtuRldaWW5mMWRCbk9oYXlYcTE3UXdGbFdXMDllTkt5VkpGbVhxYU9OR0E1YUNlZ01iSjNVVWtHWTFpYzNuS1dnanE4cWZWWUdRRzFnUnQ2cnM2MmE2SGlxcVVPcWRlc0s1Tm1YNG5Hb2ZKb2lFMWQwZEY5bFZWa3ZUMS9rRUVhYUNvWU93RnBjVmNvTE0rNzY2OVB4QzlyV3FrdEgwc1dVWWxkMFZDcHVCWi9zdFZSY0dneTlXWDIrVTFRdGhpOVN6QXFTeHpac3krT2lGekJZbnlTR1Y2R2t1NDRyRDhCQ09aQlYzQnZENStBS1JITndNRXNCNkV6SG5KcGtUQWVpVWxFR2tjRUNlQjZHRFpUcDVZRUpUbHZkcmtueFlqVGxsTWtmTnRYd0RqTTd1VmpLNUpYVVVuNDNycnFwSzJqeXRheEhXME01RzhEQzhydEhNWXM3S1NnZHVWUU1HVFlGcUZ2VlM2cmtEM3NESjQ2YWZkWUZ3b3ExMUFPS0NCTGh2d29VZ2M4SUdBTnljUjZrblpyZEpQZHN1eG55amZkM0ZvdlRsUk1kRWR0T2w1Q01WNUVIc1hRQmlzN1RPd3ZJRFphR2oyVm5wYmg3Y3BLNjNWd1lFTUx3cWJqenlsNjk5c2F3RkZrRjF5cWpVVTMxSGZDNnNXMVpGVkZ1WFZYVmd6OWtlRWF3MHlzMWxXZm0rYXpRQVFTV0EraEtZVmZzWmpQbmNBY1VCOW9JYXl5L1VaWFJOY2tER2ppNzdHc1didkJvNnRQcldQcU95VmtCVXErSU5lcXB6TmRZcy91MGlmaDVxbXBxSVcrMzNKVlNVY3dZNzBLTDRVOWxZZFU2bGp0U2xzN2xtZmk5ZzNZemVRZlZrYUdGYVYzT0RDbmFEMk44d3NFREZrbEUzUnpNM1pnaGRZa1dIc3N6cTcwRkllY25La1ZrdDhlek16UnE5YmtHdUtvalJMQlZTb2QzWTF5UHFLZ1lXN0pSUVRQVnl5NXhJWUxqT2d4Z1Q1MlJLSlVZMWRPcklpUmQ0ZnV0UXgvQTVBY1NtRWp6MHZGV3JrTHp2YldBdTlIT1diR2d4RmsxVk5UcG5CS2s2VGd3aXNJL0hjeFlYUDF1QVdPNzJVTEZsQlRxK2FTdTJWVFVzNmhyeE0yQ0YraEVvcjFWSUE5Wm1GVWFhYjFsU1NnWnNWczRzeHpIbFZMb0pIcjlINERoT05Ua0kxWEMwL3dpWTJOb1dBRzVSbG5IRm5xNm9MY2NwUWRkTXVKL08xN0pWQTVPSExpMEJxQ3p0cTdZMSsrdWNDZDk4cUxJOE1JSEJWL2NLanhRVG1lM2hGQlMzTXlDcW5Ec3V5bTJvODBIanZGRlR0clVSbU5hR0pzbVZhaEltalRzVVhLdFFaVEFWczdNdnY4LytmelVyWkFYY0xKNk00a29lNlhQMGI2U21XV05EenlVcFE4YmwrTHRXeDR0dXFaMzZjUllWM3l1VnhQTnd2SWlxaVFDU211N3NyZ1R6UjZua3locENhclh3RnkxdkdkNWlQMmNZMDZsRnI1TmpoaGcxWTYrTkIyOGZ0Yks4M3M4cmY3a0xKYkt3REZQYkxnMjVhMEFkWkpFaXFyNXBoaXhLTURsUlV0Y3NzcTFocmlMcUdvSCt6ZU5nVm05T2VtanNFVFY4SmRGME5IbmtJRnhXWTFPQjRZcnA3cnRXSjdOZ0FBQVBYa2xFUVZRM29OczVucGx5VmY4dTJGb0x1MUpySHZlYVpXUWpxQWtzaHRGYTJnenNTRzNacGtidmczSGFmRjlzbFBQbGxkakZsSzgwR3lzbThNcjRNUGhuZU5XRU5QR2pBSXBtaWxUUEFUZFRSVFhsQ0JZSFlBUXVQd0EzNnhJcFd0R040cTNZMk1oaUdzVXB1U1NubEVKUkQ4UG9yQzdDRllWdytGNTFxVGhnYWJ4c1R4V3pDR1kwWlNzYjNsZnFBeTBPUE5qTnk4eGlRUUtzSFlGUTJIQlpWdlZiQnVxM20xb1dLYWpxYW9uc002dVpVcjZDalhXTlowbDVFM2gzalVSbWE2a1AzTUpJaXkxTG0ra2FoUXE0MU4yaVpqYTVzanRsTFlOWkhackg2cVVHbTR2TWJEcDZSdzJDRm12dXlGa3JCY0N5TXRGcUJhRUNtc0hvSzlCWjJMQS9sSmNScVNhRHFuYVdiclpkR2F6M0RMZ0l2QmxuNHdvR3p0YnlKR3FzbHd4a2hoSHJUalRZRlhDdE9vS1M4dUxkb2ZWZEFiT3lsR1U2bmxZcFhXWnRzNG5YQnE2V3hKaXRNTm9rSFVKbmJuSnBsUW0rYUdwWTJhNUdNVjJRRDFoUnViQlBGS2R1bWY1T0hrTEh6MEY5bHVFNWtqQmpSYTBuRkU1Q1VHcUh3MzJNbWpaNnhrZ0lOVm5TbloxVlpTdEsycUtsUmFMbFFnSzd1VHE3SkZYSndNKzNTT0VLeWhaTkkrdEowSTVxTVl5OWsycUpEN2RWV2RxS1hhMENLTlIwQ2NqZytCMklZdTJmY0JaSlprTUZnTTExcjBYOTJ3aWxnaEZHZ3pWbmV4bHFCN3hMOW1TMjlTaVlVVlkyblhPWmpOQlJzeURzUVBSV1c1aHJaNFhjZEM0SFZXUmJqZ0pyNHNGb2ZLNVN6alE3cmhJMVVlYmRQZEViajZzcUl2VFpRWjV2YTA4ckFCc0FXMFV4ZVd5dEFrN0EyS0o5WnB4ekNpb0IyNFhGdFlBZVhZeHI2YW5TcWhMZ3BwRXFXYkd3THVuVGdyVitJaldsTDI5bGphQWw0RVFNR3NFcnA0YXBlWmlxdXdSWExYQXFPQ2VydTMybW15ZGM2b1dUU1dwRkFHZHplVEI4UlRIVk1FdGxNOTBDYmJRQ1loUGpxM2VnWXIxRkdkWUlRaml1REdaNXpaL0F6b2JLR095THh0aTZjNFJ3dHYyYW55V2xMSUNubExoeEpSWHQ2QTVlYkRCV0ZOT05ieFdaMmQwMm1udTRTOVlFQ3BlcHBWMXpTV1JCV3hIWXpWSXYxQ1hTb3V3cXFYM2pCQkJEWmRZUWJwVFFXNFpRbFM4cjVrSDRzdVNSbWcyKyszSk4xMHgxUGFBbUVrbXRZbEVkZUdwSkVNNmtPdUNxQ1IyMm9TdWpqNUlWMkhkVDB6ajVwckxLVGpYRkFQamRRbHlxN3hJQnhBUVA1eU1jekc0VnhBS3cwbjZpbFoyUUJjZTJwTHVsa3V4eHFub0l6RmZncXlxamlsOVMxVk53QnJGbWV5ZW9wczh5T2paVXliWmRmUzhDdWFUSUp1bXpzNXRPRGFOdExwRkRRL1BjSkd3ZUxobWVMMW5CMEtxaVVEU2NzaVVWRDg5RGkzSHRyS3RTVUx3M1JMaXlnWkQrN3NGOEpUT2JnWXNyR3ZETlVGUkdsMWl5MExsMVlrVWMyYUpZTW9nOTIwSThxVzZZRENnMU1xazBKSEpGS1hrYmdiUnJlSStxcFlOT1pIclZjRFViYTdwanNwaFNKTnRLNnVwZ1JOQVZvT1MwbXVnQmVONGJJWmdIaHVQWi9zMUVOYVg2S3NWcitZTnJoMU5iN2lwUjBQRTV6Yk5SZWdDYnJIUlV3NllmMDdkTEJKbDFmOEtCOWFzMlYxbk5xQXNsNjJMQkJoZWh3YWxlcmtIbUIxSkZJRVpLU0V1c2RsNUpRajFuSmxIWFNDRjM0MmdKOUNZR3JYZWxrbkpJWHFWUDhzRCtxdHBsQ1IzWEgycWZLcTB5Z01wK0tuVmtLeE5sWjhtMllrSWxWTWlDblhVd2w3cXpuQktTdlF6M20zUHQ2b1FiWE81YjVGaXhDaC9mSHhVUVcvQUVjSzZ6Q05xS1FuTDlzeXdxbUt1d3ZxU1l6VC9hUFZOTnBWeWh2UlcyMWFxY2lDc2pkV3ZCd0lMVXZoNVZ5Q3piV29DMXBKako2ODBDV3NsK3VkS0I2VDVSd0cxbWxvaG5scGJnNDdpejVVOWhhMEZHdG1STEZZQnRPOTl5OTdBcDB6K1pEVEFvZzZrU0xac01IZy9JRmtrZ3A2Q3B2VTJVMGNZVlNkbm1randCZE9tWGJ4VFdOV3p1SWJpcE1pb1Z4RWNrWkVvYWhTT2l5Mk0zSzBqY0MxTGhWRHdhcUcwWnZrY1dxQ25yRzRHSXh5a3JxbGJXZHc2TFF5QmFaUjhIbUxSSWhRV3NIc3dENDJaWFZMTmtmOWwrRmxXMEhWUTJsd0ZzQy9aMUZkemxRUjBLYVBmbytGZGZ1Ky9kd1ZSSUN1MUNHUjdBRUlpQWhjK0FaVUYwa09CYVB4bVVxZzRpNjR2UW5VNG5GRFlKOU56KzFmVlh2ZUg5cW1yK2tQSUx4OG9LY1JWL0JGYnhiRTBKTVQwa1NENHc2TC9sTlk4b2NzcWFnVmRVM0EzTWp4aHhjR3VxenNQSDRpcnBhb3cxcTZPeXJWanZwOU5wYzU5RTkxTGxkYm9ZVnpKV2RpbVdmQVcyU05FS2NEYVgyRm1CTExBL3VLeGxtaGg2MTNJczFVUlFBcGJLZnR0d3hMMDJxNk9ueDVwUXhTYlBvakFnK3Y1aEFuTjZMSFZSRFhJc3ZLdFJqaVMwcUpVeVpUQVhWYkFLODJFbEZKV2FRZFZvcVVDMVVudDdCVmFUUXVkTTZTdXFleGpRSk40KzBpY2F4di91dGJLdjgzRVRiVDhIOGdqY09LeE9KbWJVYTZPT1ZYaHQzZEZZNnJIdjlYb056RkxjZUVBMW84K3BLbTBMQUhQSFoycllLakZxMGhmWkZpeHNxSEpnRDNlRDVuK1Uwa2IxbUZqWGtuMmx2TVNTT3NORS9DZElBS0YwU3l0cTZ1ck9IVU41Z3dnNEdab3NnYm1nZ001dWNyYTJxclMySWcxY2JpQkJjeFl6Z3pVRE5MQ3ZMOEdiWlhOcDZPUnkzTG1TK0trODN6UklBSzZBMWlvS2EySTlOYXBJdWlVRmRmQzk3NjZQRlpVdHFVcjZLYldrK3paVTFhL1pySVhFenRyalRPZno3aHdLemlDZVhJYXJhSHRiWklNeisycEdnYXpDbXc0cVdBRnZFZGhvZFlwMFhxMHBWN0cxWVdZV2JPNHFoR3E0MitaOEJZdHJMV3ZsdU5QcFpBZWFGRlMxdnViUGdiZ3hzcWNwbkFhc3pCb3ZLYUZvRFE4Qkd0amZVT2w0TkFHMm5tUVYwNGZlSmd1bXZYMmZzclFFV1pnaEwwSm5WZFlrbjNET1pJZVJOODZScVBXQ21zdkdWcUVNUm53eFFBeHdTOEVNWW8zSXptWTIrQkNjTHA0TUtpdXl1aEltYW1sYlpGY05vTmw3dHArUkhkMThaalFJUkt5WGRGUmhOOTgvaHlLcXdYV05vN08xd2lhWG9ITjEwOFJFWlpXRXE2Z3JuSWZqemVnOGpkUmYxWEVMNGtrWGE1YkJqS3hvS2FsakJqZUhsVnhRNEdheWNwVzRsRE9BS3RuVHhIQXRPZnpPdFp3SEFNN3NxVlhrVjZ5dTZrYXAxbkhrWEtxV0YvNFhIcWplbk5LcUJqcFIzbDFjaDNFamcxK0VzZ2RRaHNkRzBCNEZNOXNXQVZXcHVBeWl3VFBsZVp4dDlWeVpWUzJxWGZSZVdxVEFpbHByOUFwb1dUanh5bWl0N053VjRKVHJpWnlPQTlCMGs3SEZmVUxvdXJtS1lIVm5SUXZxR0w1SE1IZHFGY1IycVdwbWNLNmVUd3gyZGlwV3J2aURpbHIrZktXcTNPV1JXZEhLd0E0ZXU4d2pjaGJlUnpGaWxxampaTjN1ZkNwZmtKMC9zY1ZwbllrNkwwUEk3N2x4ZFdDWjg3V2lXbTdCL0FHcXVRU251akdLc0I4Q0ptaUpxOHExcEtJVld5cU9pVEs2NnIxOEJOOHI3NC9BRTcxZmRDM3lQUzJNeGRPcG5FMXRsVnhEOUptVk9vZ2dOK3I0UGpBWFZGUGEzRWc1alZKR0ZWVUdOb2xIMjBHVnJVQjdCT3lTV3E2V3FZUWRXUjkycGNGTVlNd2NrYlNnQ0tDcUQ2N0RpaVd1MWc4TVFDOUJ5ZmNGcVcxTCtqTDcxNHFOQ3V6bm9TeHQwZGEyZ3RXTjFHOEYwQkswTk4wbnVpbWVsVUY5ZElkQWZqTzQ0VVQzQ2pRTG9VZUxISkZUTzNnbXBSdUlJT3Z3QlFDYnFOZW8zcXRaOWlGNnhWSzEzR1JsbzR6cWltcStDR2RUaVIxdVJZOG9xZ0UwMmhaQmE3OWtaWFBNcXV4UkhLbGEyc2FaV040bVJxWlVqMHZMQ0toa2pLbnFPUUhOdVNaVkpvS3ZBcVMxd3BFcXV2V0RDMUIyeXB3ckNQc1JNRVBWVE9ETUxKTUR2NnFlS1h3aTJKWVY1U3E0cUt5dmdHc0hDTGl1ajJqUjU5VjhnTXFTSjJGSlpSWEVIVlJIajNzRlByY3Q2T3BxbFcxR3BhdFFkdDBHdndmTTZuNjNJbnNHVkZoSkdhQnFncXFJVjZJc1hsbFpneVNQcTRSM2JudDN3aTVjditjTjJ5cVFMVzFUOTVLWVZzV1d0S2s0Y0I5VzUzV1FRZmxRWVI2V2w0SGFKWmp2VkUwRDV5dnErUktnWkNzNXFkQkVQNXNEOTRjQXZRTGxTZ05hU01BdEh4ODhCdU5RNDF6ZEZzWDMwektiY3MwTUxEL2loa3BRemwwd2lUcUtMVGZiS21DbXlZSUNuSzBJYmFpZUM0Q0c5aVN5TFE3Y0lNR1F3YXU2VEtvcTYwQXBsM1dONDBMWnBjYTFDS0tLOVZReXlJRW44dzBGOEY2Q0wyaDhvM2l4R3dDN3M3RVd6Q09xbWNBcFl4WUQ0anNBelZTMHNsMnQ5OHBBN3ZyS29waENWU29uYllwZ0g2bXZTbjI0cFRCVjRzZHRWM0J0TXE1azgyeStJQUR2VUowdUFsa0NWVHhJYVBtK1VOdS9xa1Y0RjFUekhYQ0dyWElBcUl0Qkt5cHFLOTlWdEFPVnM2NE80T2JYN3BITFZDcFlIY1Jtd3ZMUjdUdllBS0JCTjU4TEdWekR1RnoraFFiV2duY1F5Q1pBaytWYnNQU291ZjkzMjYxaVpnbWZDcHdSYkF2cW1TcXJpVTJQd2hqYW9PeVlxdEllZ1ZYVmlUc215dGE2Ykd5U3BZM2d5UnJwSXlBZWFXRER4dHBzWHdLeWFsTURLTlA3WUJYTXFFc2tVc2kydUM4Rk5BUHhBS1RWZlQxbzZWek0wRTBqRisxcldjVXVIdmR5Zzd2Z29GcGxYOEhwdkhwTUNPTVJVUEh6WmtJbnNxbEZLTlgvRUlPNTJFMFN4U3pPd29iMlZtUkxXNUQxWElVMHJiZ00xQXpXZ3lDN2ZlOEc3eFVBSy90YUVCYXQ3bHVxdHlQN0Vtc2FKUU9qNUYrbXJuWmZDdVlDZkJVQVd3U2h5ZDZwTVkvdkFIRzFVcU9ZcGJJL2d5NVQwQ01LbStVTzNnRnVDODVkZ2ZEVmVndVBEZklUcklCTHNMcmNnZGgzQ0ZnRlpqYUtKNEl2M0Y4QU5FcXZ1eFIxdFZLT2dMb0NhMWp4Ym9CQWtqNnY3ai9pY0ZiQTdmNHJmUm5RRExSVmlHMTNpMHZxQlFyWVZxQmJBRFpUMFpwaUhvU3p2UXBvcEtJRlMzc0UxSGZCV2xIWGQwSDdMbkFycXZvdWdNdGxqSEJnWm5oM0Vvei9CS2pMTUw0WjJBcTAraEVKcjlqYVZVQmJ2TnpDSVVpcm9DN0FXbW1GdzRvNUFLM010QjVWeXBaTVNGZ3MwNUp5R1Z3bHdCcXNFR0FBYTJaVTFDalVleFhHc0U0cktyaWlsQnZGek9LS28zQXVBcm9FNlFGUVUzdThZcE5Yd1M1aysxVFp0NVVyd291TjRLaVVFdytrM1pXRHAxUlhITlJxWGIyMVRzMzk5NDV5WlNnM1ZuWkZOUTlDRjNYZVp5cjVEZ0JYS2l3Q01hMk14ZVREWVhnUDFGc2Y5UU5LWmMwazgxUkprM3I2RVEzckNtQlZ5TEw3NUVqWjFwSVZESG9GdGlPQUhvQjBCZFRWeWxxQnNLS0tTK0FlQlhKVkxZK0NYQVN1R3ZPL0F1cTdHdUVqRGZHS2cxb0thMXovZG1taTlJOVNVR05obDBBdGZ1bEhBYXdvWXJuU2ttTlhBVnVHRWhyRVZYdlVGK0E1Q3QyUHFOT2pEZXR5bmE0Q21lVW9sbWVYTE40QXE3QzVTajEwUTd5amdsK3Q2Q054U1JIbUk1WCtDcHdyZVlCM1FmZHFuYTRxMjFLZEJ1YzRHb1pzbjQ5Wk9PaVZpbndIcUs5V3pqdmdld2VFaDJBVTUrdnR4WjlDZDlXcWtoNDlWMThFNW9qNnZWeW4wUlN0QXlHSU81ZWRYUktkNUIwVkdWWHEyeXIzeFlwKzVVdCtDNFFKNFAxTjMzOXBRTWpSZWpqNHZiL0RjcjZyUWMzTy8wcmptdFpwZVlDQmlDSGZDZW1SYk5oYksvcE5VUGMzd2ZLeTVmMkQ3T2xMMy91UGh2ZS9vVTRUMEY4ZitWTk0ydnlvaXYwaksrS0hRZmRIcSswYm5jejRvejczLytZNkxiS3cxby81QjdlT2YxUmwvMGR1OUI5dG4vOWJ2cmYvait2MGg2dHRuMnRwL3IvNDgxOXk0L3p2NTM5MXV2enpmd0RpZno2cGhUMU1QZ0FBQUFCSlJVNUVya0pnZ2c9PSIpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7ZGlyZWN0aW9uOmx0cjtoZWlnaHQ6MTMwcHg7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLmNwLWFkZC1jb2xvci1idXR0b24tY2xhc3N7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZTttYXJnaW46M3B4IC0zcHg7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlfS5jb2xvci1waWNrZXIgLmNwLWFkZC1jb2xvci1idXR0b24tY2xhc3M6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY29sb3ItcGlja2VyIC5jcC1hZGQtY29sb3ItYnV0dG9uLWNsYXNzOmRpc2FibGVke2NvbG9yOiM5OTk7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jb2xvci1waWNrZXIgLmNwLWFkZC1jb2xvci1idXR0b24tY2xhc3M6ZGlzYWJsZWQ6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmNvbG9yLXBpY2tlciAuY3AtcmVtb3ZlLWNvbG9yLWJ1dHRvbi1jbGFzc3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czo1MCU7Ym94LXNoYWRvdzoxcHggMXB4IDVweCAjMzMzO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwcHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTVweDt0ZXh0LWFsaWduOmNlbnRlcjt0b3A6LTVweDt3aWR0aDoxMHB4fS5jb2xvci1waWNrZXIgLmNwLXJlbW92ZS1jb2xvci1idXR0b24tY2xhc3M6YmVmb3Jle2JvdHRvbTozLjVweDtjb250ZW50OiJ4IjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTBweDtwb3NpdGlvbjpyZWxhdGl2ZX0nXSxlbmNhcHN1bGF0aW9uOjJ9KSxoMy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6ZzN9XSxoMy5wcm9wRGVjb3JhdG9ycz17ZGlhbG9nRWxlbWVudDpbe3R5cGU6WmEsYXJnczpbImRpYWxvZ1BvcHVwIix7c3RhdGljOiEwfV19XSxodWVTbGlkZXI6W3t0eXBlOlphLGFyZ3M6WyJodWVTbGlkZXIiLHtzdGF0aWM6ITB9XX1dLGFscGhhU2xpZGVyOlt7dHlwZTpaYSxhcmdzOlsiYWxwaGFTbGlkZXIiLHtzdGF0aWM6ITB9XX1dLGhhbmRsZUVzYzpbe3R5cGU6d3ksYXJnczpbImRvY3VtZW50OmtleXVwLmVzYyIsWyIkZXZlbnQiXV19XSxoYW5kbGVFbnRlcjpbe3R5cGU6d3ksYXJnczpbImRvY3VtZW50OmtleXVwLmVudGVyIixbIiRldmVudCJdXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGgzLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImNvbG9yLXBpY2tlciIsdGVtcGxhdGU6JzxkaXYgI2RpYWxvZ1BvcHVwIGNsYXNzPSJjb2xvci1waWNrZXIiIFtjbGFzcy5vcGVuXT0ic2hvdyIgW3N0eWxlLmRpc3BsYXldPSIhc2hvdyA/IFwnbm9uZVwnIDogXCdibG9ja1wnIiBbc3R5bGUudmlzaWJpbGl0eV09ImhpZGRlbiA/IFwnaGlkZGVuXCcgOiBcJ3Zpc2libGVcJyIgW3N0eWxlLnRvcC5weF09InRvcCIgW3N0eWxlLmxlZnQucHhdPSJsZWZ0IiBbc3R5bGUucG9zaXRpb25dPSJwb3NpdGlvbiIgW3N0eWxlLmhlaWdodC5weF09ImNwSGVpZ2h0IiBbc3R5bGUud2lkdGgucHhdPSJjcFdpZHRoIiAoY2xpY2spPSIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkiPlxuICA8ZGl2ICpuZ0lmPSJjcERpYWxvZ0Rpc3BsYXk9PVwncG9wdXBcJyIgY2xhc3M9ImFycm93IGFycm93LXt7Y3BVc2VQb3NpdGlvbn19IiBbc3R5bGUudG9wLnB4XT0iYXJyb3dUb3AiPjwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9IihjcENvbG9yTW9kZSB8fMKgMSkgPT09IDEiIGNsYXNzPSJzYXR1cmF0aW9uLWxpZ2h0bmVzcyIgW3NsaWRlcl0gW3JnWF09IjEiIFtyZ1ldPSIxIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09Imh1ZVNsaWRlckNvbG9yIiAobmV3VmFsdWUpPSJvbkNvbG9yQ2hhbmdlKCRldmVudCkiIChkcmFnU3RhcnQpPSJvbkRyYWdTdGFydChcJ3NhdHVyYXRpb24tbGlnaHRuZXNzXCcpIiAoZHJhZ0VuZCk9Im9uRHJhZ0VuZChcJ3NhdHVyYXRpb24tbGlnaHRuZXNzXCcpIj5cbiAgICA8ZGl2IGNsYXNzPSJjdXJzb3IiIFtzdHlsZS50b3AucHhdPSJzbGlkZXI/LnYiIFtzdHlsZS5sZWZ0LnB4XT0ic2xpZGVyPy5zIj48L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz0iaHVlLWFscGhhIGJveCI+XG4gICAgPGRpdiBjbGFzcz0ibGVmdCI+XG4gICAgICA8ZGl2IGNsYXNzPSJzZWxlY3RlZC1jb2xvci1iYWNrZ3JvdW5kIj48L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0ZWQtY29sb3IiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT0ic2VsZWN0ZWRDb2xvciI+PC9kaXY+XG5cbiAgICAgIDxidXR0b24gKm5nSWY9ImNwQWRkQ29sb3JCdXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Int7Y3BBZGRDb2xvckJ1dHRvbkNsYXNzfX0iIFtkaXNhYmxlZF09ImNwUHJlc2V0Q29sb3JzICYmIGNwUHJlc2V0Q29sb3JzLmxlbmd0aCA+PSBjcE1heFByZXNldENvbG9yc0xlbmd0aCIgKGNsaWNrKT0ib25BZGRQcmVzZXRDb2xvcigkZXZlbnQsIHNlbGVjdGVkQ29sb3IpIj5cbiAgICAgICAge3tjcEFkZENvbG9yQnV0dG9uVGV4dH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9InJpZ2h0Ij5cbiAgICAgIDxkaXYgKm5nSWY9ImNwQWxwaGFDaGFubmVsPT09XCdkaXNhYmxlZFwnIiBzdHlsZT0iaGVpZ2h0OiAxNnB4OyI+PC9kaXY+XG5cbiAgICAgIDxkaXYgI2h1ZVNsaWRlciBjbGFzcz0iaHVlIiBbc2xpZGVyXSBbcmdYXT0iMSIgW3N0eWxlLmRpc3BsYXldPSIoY3BDb2xvck1vZGUgfHzCoDEpID09PSAxID8gXCdibG9ja1wnIDogXCdub25lXCciIChuZXdWYWx1ZSk9Im9uSHVlQ2hhbmdlKCRldmVudCkiIChkcmFnU3RhcnQpPSJvbkRyYWdTdGFydChcJ2h1ZVwnKSIgKGRyYWdFbmQpPSJvbkRyYWdFbmQoXCdodWVcJykiPlxuICAgICAgICA8ZGl2IGNsYXNzPSJjdXJzb3IiIFtzdHlsZS5sZWZ0LnB4XT0ic2xpZGVyPy5oIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICN2YWx1ZVNsaWRlciBjbGFzcz0idmFsdWUiIFtzbGlkZXJdIFtyZ1hdPSIxIiBbc3R5bGUuZGlzcGxheV09IihjcENvbG9yTW9kZSB8fMKgMSkgPT09IDIgPyBcJ2Jsb2NrXCc6IFwnbm9uZVwnIiAobmV3VmFsdWUpPSJvblZhbHVlQ2hhbmdlKCRldmVudCkiIChkcmFnU3RhcnQpPSJvbkRyYWdTdGFydChcJ3ZhbHVlXCcpIiAoZHJhZ0VuZCk9Im9uRHJhZ0VuZChcJ3ZhbHVlXCcpIj5cbiAgICAgICAgPGRpdiBjbGFzcz0iY3Vyc29yIiBbc3R5bGUucmlnaHQucHhdPSJzbGlkZXI/LnYiPjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgI2FscGhhU2xpZGVyIGNsYXNzPSJhbHBoYSIgW3NsaWRlcl0gW3JnWF09IjEiIFtzdHlsZS5kaXNwbGF5XT0iY3BBbHBoYUNoYW5uZWwgPT09IFwnZGlzYWJsZWRcJyA/IFwnbm9uZVwnIDogXCdibG9ja1wnIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09ImFscGhhU2xpZGVyQ29sb3IiIChuZXdWYWx1ZSk9Im9uQWxwaGFDaGFuZ2UoJGV2ZW50KSIgKGRyYWdTdGFydCk9Im9uRHJhZ1N0YXJ0KFwnYWxwaGFcJykiIChkcmFnRW5kKT0ib25EcmFnRW5kKFwnYWxwaGFcJykiPlxuICAgICAgICA8ZGl2IGNsYXNzPSJjdXJzb3IiIFtzdHlsZS5sZWZ0LnB4XT0ic2xpZGVyPy5hIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPSIhY3BEaXNhYmxlSW5wdXQgJiYgKGNwQ29sb3JNb2RlIHx8wqAxKSA9PT0gMSIgY2xhc3M9ImNteWstdGV4dCIgW3N0eWxlLmRpc3BsYXldPSJmb3JtYXQgIT09IDMgPyBcJ25vbmVcJyA6IFwnYmxvY2tcJyI+XG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjEwMCIgW3RleHRdIFtyZ109IjEwMCIgW3ZhbHVlXT0iY215a1RleHQ/LmMiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25DeWFuSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjEwMCIgW3RleHRdIFtyZ109IjEwMCIgW3ZhbHVlXT0iY215a1RleHQ/Lm0iIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25NYWdlbnRhSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjEwMCIgW3RleHRdIFtyZ109IjEwMCIgW3ZhbHVlXT0iY215a1RleHQ/LnkiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25ZZWxsb3dJbnB1dCgkZXZlbnQpIiAvPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMTAwIiBbdGV4dF0gW3JnXT0iMTAwIiBbdmFsdWVdPSJjbXlrVGV4dD8uayIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkJsYWNrSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCAqbmdJZj0iY3BBbHBoYUNoYW5uZWwhPT1cJ2Rpc2FibGVkXCciIHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0rKFtcXC4sXVswLTldezEsMn0pPyIgbWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMSIgW3RleHRdIFtyZ109IjEiIFt2YWx1ZV09ImNteWtUZXh0Py5hIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uQWxwaGFJbnB1dCgkZXZlbnQpIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgIDxkaXYgY2xhc3M9ImJveCI+XG4gICAgICA8ZGl2PkM8L2Rpdj48ZGl2Pk08L2Rpdj48ZGl2Plk8L2Rpdj48ZGl2Pks8L2Rpdj48ZGl2ICpuZ0lmPSJjcEFscGhhQ2hhbm5lbCE9PVwnZGlzYWJsZWRcJyIgPkE8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj0iIWNwRGlzYWJsZUlucHV0ICYmIChjcENvbG9yTW9kZSB8fMKgMSkgPT09IDEgIiBjbGFzcz0iaHNsYS10ZXh0IiBbc3R5bGUuZGlzcGxheV09ImZvcm1hdCAhPT0gMiA/IFwnbm9uZVwnIDogXCdibG9ja1wnIj5cbiAgICA8ZGl2IGNsYXNzPSJib3giPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMzYwIiBbdGV4dF0gW3JnXT0iMzYwIiBbdmFsdWVdPSJoc2xhVGV4dD8uaCIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkh1ZUlucHV0KCRldmVudCkiIC8+XG4gICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSoiIG1pbj0iMCIgbWF4PSIxMDAiIFt0ZXh0XSBbcmddPSIxMDAiIFt2YWx1ZV09ImhzbGFUZXh0Py5zIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uU2F0dXJhdGlvbklucHV0KCRldmVudCkiIC8+XG4gICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSoiIG1pbj0iMCIgbWF4PSIxMDAiIFt0ZXh0XSBbcmddPSIxMDAiIFt2YWx1ZV09ImhzbGFUZXh0Py5sIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uTGlnaHRuZXNzSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCAqbmdJZj0iY3BBbHBoYUNoYW5uZWwhPT1cJ2Rpc2FibGVkXCciIHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0rKFtcXC4sXVswLTldezEsMn0pPyIgbWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMSIgW3RleHRdIFtyZ109IjEiIFt2YWx1ZV09ImhzbGFUZXh0Py5hIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uQWxwaGFJbnB1dCgkZXZlbnQpIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxkaXY+SDwvZGl2PjxkaXY+UzwvZGl2PjxkaXY+TDwvZGl2PjxkaXYgKm5nSWY9ImNwQWxwaGFDaGFubmVsIT09XCdkaXNhYmxlZFwnIj5BPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9IiFjcERpc2FibGVJbnB1dCAmJiAoY3BDb2xvck1vZGUgfHzCoDEpID09PSAxICIgW3N0eWxlLmRpc3BsYXldPSJmb3JtYXQgIT09IDEgPyBcJ25vbmVcJyA6IFwnYmxvY2tcJyIgY2xhc3M9InJnYmEtdGV4dCI+XG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjI1NSIgW3RleHRdIFtyZ109IjI1NSIgW3ZhbHVlXT0icmdiYVRleHQ/LnIiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25SZWRJbnB1dCgkZXZlbnQpIiAvPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMjU1IiBbdGV4dF0gW3JnXT0iMjU1IiBbdmFsdWVdPSJyZ2JhVGV4dD8uZyIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkdyZWVuSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjI1NSIgW3RleHRdIFtyZ109IjI1NSIgW3ZhbHVlXT0icmdiYVRleHQ/LmIiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25CbHVlSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCAqbmdJZj0iY3BBbHBoYUNoYW5uZWwhPT1cJ2Rpc2FibGVkXCciIHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0rKFtcXC4sXVswLTldezEsMn0pPyIgbWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMSIgW3RleHRdIFtyZ109IjEiIFt2YWx1ZV09InJnYmFUZXh0Py5hIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uQWxwaGFJbnB1dCgkZXZlbnQpIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxkaXY+UjwvZGl2PjxkaXY+RzwvZGl2PjxkaXY+QjwvZGl2PjxkaXYgKm5nSWY9ImNwQWxwaGFDaGFubmVsIT09XCdkaXNhYmxlZFwnIiA+QTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPSIhY3BEaXNhYmxlSW5wdXQgJiYgKGNwQ29sb3JNb2RlIHx8wqAxKSA9PT0gMSIgY2xhc3M9ImhleC10ZXh0IiBbY2xhc3MuaGV4LWFscGhhXT0iY3BBbHBoYUNoYW5uZWw9PT1cJ2ZvcmNlZFwnIlxuICAgIFtzdHlsZS5kaXNwbGF5XT0iZm9ybWF0ICE9PSAwID8gXCdub25lXCcgOiBcJ2Jsb2NrXCciPlxuICAgIDxkaXYgY2xhc3M9ImJveCI+XG4gICAgICA8aW5wdXQgW3RleHRdIFt2YWx1ZV09ImhleFRleHQiIChibHVyKT0ib25IZXhJbnB1dChudWxsKSIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkhleElucHV0KCRldmVudCkiLz5cbiAgICAgIDxpbnB1dCAqbmdJZj0iY3BBbHBoYUNoYW5uZWw9PT1cJ2ZvcmNlZFwnIiB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKyhbXFwuLF1bMC05XXsxLDJ9KT8iIG1pbj0iMCIgbWF4PSIxIiBzdGVwPSIwLjEiIFt0ZXh0XSBbcmddPSIxIiBbdmFsdWVdPSJoZXhBbHBoYSIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkFscGhhSW5wdXQoJGV2ZW50KSIvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxkaXY+SGV4PC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPSJjcEFscGhhQ2hhbm5lbD09PVwnZm9yY2VkXCciPkE8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj0iIWNwRGlzYWJsZUlucHV0ICYmIChjcENvbG9yTW9kZSB8fMKgMSkgPT09IDIiIGNsYXNzPSJ2YWx1ZS10ZXh0Ij5cbiAgICA8ZGl2IGNsYXNzPSJib3giPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMTAwIiBbdGV4dF0gW3JnXT0iMTAwIiBbdmFsdWVdPSJoc2xhVGV4dD8ubCIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvblZhbHVlSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCAqbmdJZj0iY3BBbHBoYUNoYW5uZWwhPT1cJ2Rpc2FibGVkXCciIHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0rKFtcXC4sXVswLTldezEsMn0pPyIgbWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMSIgIFt0ZXh0XSBbcmddPSIxIiBbdmFsdWVdPSJoc2xhVGV4dD8uYSIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkFscGhhSW5wdXQoJGV2ZW50KSIgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9ImJveCI+XG4gICAgICA8ZGl2PlY8L2Rpdj48ZGl2PkE8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj0iIWNwRGlzYWJsZUlucHV0ICYmIChjcENvbG9yTW9kZSB8fMKgMSkgPT09IDEiIGNsYXNzPSJ0eXBlLXBvbGljeSI+XG4gICAgPHNwYW4gY2xhc3M9InR5cGUtcG9saWN5LWFycm93IiAoY2xpY2spPSJvbkZvcm1hdFRvZ2dsZSgtMSkiPjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz0idHlwZS1wb2xpY3ktYXJyb3ciIChjbGljayk9Im9uRm9ybWF0VG9nZ2xlKDEpIj48L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9ImNwUHJlc2V0Q29sb3JzPy5sZW5ndGggfHwgY3BBZGRDb2xvckJ1dHRvbiIgY2xhc3M9InByZXNldC1hcmVhIj5cbiAgICA8aHI+XG5cbiAgICA8ZGl2IGNsYXNzPSJwcmVzZXQtbGFiZWwiPnt7Y3BQcmVzZXRMYWJlbH19PC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPSJjcFByZXNldENvbG9ycz8ubGVuZ3RoIiBjbGFzcz0ie3tjcFByZXNldENvbG9yc0NsYXNzfX0iPlxuICAgICAgPGRpdiAqbmdGb3I9ImxldCBjb2xvciBvZiBjcFByZXNldENvbG9ycyIgY2xhc3M9InByZXNldC1jb2xvciIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09ImNvbG9yIiAoY2xpY2spPSJzZXRDb2xvckZyb21TdHJpbmcoY29sb3IpIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9ImNwQWRkQ29sb3JCdXR0b24iIGNsYXNzPSJ7e2NwUmVtb3ZlQ29sb3JCdXR0b25DbGFzc319IiAoY2xpY2spPSJvblJlbW92ZVByZXNldENvbG9yKCRldmVudCwgY29sb3IpIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9IiFjcFByZXNldENvbG9ycz8ubGVuZ3RoICYmIGNwQWRkQ29sb3JCdXR0b24iIGNsYXNzPSJ7e2NwUHJlc2V0RW1wdHlNZXNzYWdlQ2xhc3N9fSI+e3tjcFByZXNldEVtcHR5TWVzc2FnZX19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9ImNwT0tCdXR0b24gfHwgY3BDYW5jZWxCdXR0b24iIGNsYXNzPSJidXR0b24tYXJlYSI+XG4gICAgPGJ1dHRvbiAqbmdJZj0iY3BDYW5jZWxCdXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Int7Y3BDYW5jZWxCdXR0b25DbGFzc319IiAoY2xpY2spPSJvbkNhbmNlbENvbG9yKCRldmVudCkiPnt7Y3BDYW5jZWxCdXR0b25UZXh0fX08L2J1dHRvbj5cblxuICAgIDxidXR0b24gKm5nSWY9ImNwT0tCdXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Int7Y3BPS0J1dHRvbkNsYXNzfX0iIChjbGljayk9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSI+e3tjcE9LQnV0dG9uVGV4dH19PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4nLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxzdHlsZXM6WycuY29sb3ItcGlja2Vyey1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgIzc3NztjdXJzb3I6ZGVmYXVsdDtoZWlnaHQ6YXV0bztwb3NpdGlvbjphYnNvbHV0ZTt1c2VyLXNlbGVjdDpub25lO3dpZHRoOjIzMHB4O3otaW5kZXg6MTAwMH0uY29sb3ItcGlja2VyICp7Ym94LXNpemluZzpib3JkZXItYm94O2ZvbnQtc2l6ZToxMXB4O21hcmdpbjowfS5jb2xvci1waWNrZXIgaW5wdXR7Y29sb3I6IzAwMDtmb250LXNpemU6MTNweDtoZWlnaHQ6MjZweDttaW4td2lkdGg6MDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDowfS5jb2xvci1waWNrZXIgaW5wdXQ6LW1vei1zdWJtaXQtaW52YWxpZCwuY29sb3ItcGlja2VyIGlucHV0Oi1tb3otdWktaW52YWxpZCwuY29sb3ItcGlja2VyIGlucHV0OmludmFsaWR7Ym94LXNoYWRvdzpub25lfS5jb2xvci1waWNrZXIgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sLmNvbG9yLXBpY2tlciBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0uY29sb3ItcGlja2VyIC5hcnJvd3tib3JkZXItc3R5bGU6c29saWQ7aGVpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDt6LWluZGV4Ojk5OTk5OX0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy10b3B7Ym9yZGVyLWNvbG9yOiM3NzcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOjEwcHggNXB4O2xlZnQ6OHB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWJvdHRvbXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzc3Nztib3JkZXItd2lkdGg6MTBweCA1cHg7bGVmdDo4cHg7dG9wOi0yMHB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWxlZnQtdG9wLC5jb2xvci1waWNrZXIgLmFycm93LmFycm93LXRvcC1sZWZ0e2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNzc3O2JvcmRlci13aWR0aDo1cHggMTBweDtib3R0b206OHB4O3JpZ2h0Oi0yMXB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LXJpZ2h0LXRvcCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy10b3AtcmlnaHR7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICM3NzcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOjVweCAxMHB4O2JvdHRvbTo4cHg7bGVmdDotMjBweH0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1ib3R0b20tbGVmdCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1sZWZ0LC5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWxlZnQtYm90dG9te2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNzc3O2JvcmRlci13aWR0aDo1cHggMTBweDtyaWdodDotMjFweDt0b3A6OHB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWJvdHRvbS1yaWdodCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1yaWdodCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1yaWdodC1ib3R0b217Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICM3NzcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOjVweCAxMHB4O2xlZnQ6LTIwcHg7dG9wOjhweH0uY29sb3ItcGlja2VyIC5jdXJzb3J7Ym9yZGVyOjJweCBzb2xpZCAjMjIyO2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpkZWZhdWx0O2hlaWdodDoxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjE2cHh9LmNvbG9yLXBpY2tlciAuYm94e2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjRweCA4cHh9LmNvbG9yLXBpY2tlciAubGVmdHtwYWRkaW5nOjE2cHggOHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5jb2xvci1waWNrZXIgLnJpZ2h0e2ZsZXg6MSAxIGF1dG87cGFkZGluZzoxMnB4IDhweH0uY29sb3ItcGlja2VyIC5idXR0b24tYXJlYXtwYWRkaW5nOjAgMTZweCAxNnB4O3RleHQtYWxpZ246cmlnaHR9LmNvbG9yLXBpY2tlciAuYnV0dG9uLWFyZWEgYnV0dG9ue21hcmdpbi1sZWZ0OjhweH0uY29sb3ItcGlja2VyIC5wcmVzZXQtYXJlYXtwYWRkaW5nOjRweCAxNXB4fS5jb2xvci1waWNrZXIgLnByZXNldC1hcmVhIC5wcmVzZXQtbGFiZWx7Y29sb3I6IzU1NTtmb250LXNpemU6MTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAucHJlc2V0LWFyZWEgLnByZXNldC1jb2xvcntib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7Ym9yZGVyLXJhZGl1czoyNSU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjE4cHg7bWFyZ2luOjRweCA2cHggOHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjE4cHh9LmNvbG9yLXBpY2tlciAucHJlc2V0LWFyZWEgLnByZXNldC1lbXB0eS1tZXNzYWdle2ZvbnQtc3R5bGU6aXRhbGljO21hcmdpbi1ib3R0b206OHB4O21hcmdpbi10b3A6NHB4O21pbi1oZWlnaHQ6MThweDt0ZXh0LWFsaWduOmNlbnRlcn0uY29sb3ItcGlja2VyIC5oZXgtdGV4dHtmb250LXNpemU6MTFweDtwYWRkaW5nOjRweCA4cHg7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC5oZXgtdGV4dCAuYm94e3BhZGRpbmc6MCAyNHB4IDhweCA4cHh9LmNvbG9yLXBpY2tlciAuaGV4LXRleHQgLmJveCBkaXZ7Y2xlYXI6bGVmdDtjb2xvcjojNTU1O2ZsZXg6MSAxIGF1dG87ZmxvYXQ6bGVmdDt0ZXh0LWFsaWduOmNlbnRlcn0uY29sb3ItcGlja2VyIC5oZXgtdGV4dCAuYm94IGlucHV0e2JvcmRlcjoxcHggc29saWQgI2E5YTlhOTtmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MXB4fS5jb2xvci1waWNrZXIgLmhleC1hbHBoYSAuYm94IGRpdjpmaXJzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5oZXgtYWxwaGEgLmJveCBpbnB1dDpmaXJzdC1jaGlsZHtmbGV4LWdyb3c6MzttYXJnaW4tcmlnaHQ6OHB4fS5jb2xvci1waWNrZXIgLmNteWstdGV4dCwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0LC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHR7Zm9udC1zaXplOjExcHg7cGFkZGluZzo0cHggOHB4O3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3gsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3gsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3h7cGFkZGluZzowIDI0cHggOHB4IDhweH0uY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0IC5ib3h7cGFkZGluZzowIDhweCA4cHh9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3ggZGl2LC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94IGRpdiwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQgLmJveCBkaXYsLmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94IGRpdntjb2xvcjojNTU1O2ZsZXg6MSAxIGF1dG87bWFyZ2luLXJpZ2h0OjhweDt0ZXh0LWFsaWduOmNlbnRlcn0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQgLmJveCBkaXY6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQgLmJveCBkaXY6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQgLmJveCBkaXY6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjB9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3ggaW5wdXQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3ggaW5wdXQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggaW5wdXQsLmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94IGlucHV0e2JvcmRlcjoxcHggc29saWQgI2E5YTlhOTtmbGV4OjE7ZmxvYXQ6bGVmdDttYXJnaW46MCA4cHggMCAwO3BhZGRpbmc6MXB4fS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94IGlucHV0Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3ggaW5wdXQ6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQgLmJveCBpbnB1dDpsYXN0LWNoaWxkLC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHQgLmJveCBpbnB1dDpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5jb2xvci1waWNrZXIgLmh1ZS1hbHBoYXthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbTozcHh9LmNvbG9yLXBpY2tlciAuaHVle2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUpZQUFBQVFDQVlBQUFEMDZJWW5BQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVINEFJV0R3a1VGV2JDQ0FBQUFGeEpSRUZVYU43dDBrRUtnMEFRQU1FMng4My9uMnF1NXFDZ0QxaURoQ29ZZHBuYlFDOWJiWTFxVk8vanZjNmszYWQ5MXM3LzdGMS9jc2dQcnVqdVExN0JEWVNGc0JBV3dnSmhJU3lFQmNKQ1dBZ0xoSVd3RUJZSWkyZjdBci8xVENnRkgyWDlBQUFBQUVsRlRrU3VRbUNDIik7ZGlyZWN0aW9uOmx0cn0uY29sb3ItcGlja2VyIC5odWUsLmNvbG9yLXBpY2tlciAudmFsdWV7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MTZweDttYXJnaW4tYm90dG9tOjE2cHg7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC52YWx1ZXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFKWUFBQUFRQ0FZQUFBRDA2SVluQUFBQ1RrbEVRVlI0MnUzU1lVY3JBQmhBNFUyU2ttUkpNbVdTSmtsS0ppV1pacEtVSkpza0tVbWFURkltS1pPVXpNeVNwR1JtbGlSTkppbEpTcEtTSkV0bVNwSXBtV21TZE83MzYvNkQreDdPUDNnVUNvV0N2MWNxbFNRbEpaR2NuRXhLU2dxcHFhbWtwYVdSbnA1T1JrWUdtWm1acUZRcXNyS3l5TTdPSmljbmg5emNYTlJxTlhsNWVlVG41NlBSYUNnb0tLQ3dzSkNpb2lLMFdpM0Z4Y1dVbEpSUVdscEtXVmtaNWVYbFZGUlVVRmxaaVU2bm82cXFpdXJxYW1wcWFxaXRyYVd1cmc2OVhrOTlmVDBHZ3dHajBVaERRd09OalkwME5UWFIzTnhNUzBzTHJhMnR0TFcxMGQ3ZWpzbGt3bXcyMDlIUlFXZG5KMTFkWFhSM2Q5UFQwME52Ynk5OWZYMzA5L2N6TUREQTRPQWdGb3VGb2FFaHJGWXJ3OFBEakl5TU1EbzZ5dGpZR0RhYmpmSHhjU1ltSnBpY25HUnFhZ3E3M2M3MDlEUXpNelBNenM0eU56ZkgvUHc4RG9jRHA5T0p5K1hDN1hhenNMREE0dUlpUzB0TExDOHZzN0t5d3VycUttdHJhM2c4SHJ4ZUx6NmZENy9mei9yNk9oc2JHMnh1YnJLMXRjWDI5amFCUUlDZG5SMkN3U0M3dTd2czdlMnh2Ny9Qd2NFQmg0ZUhIQjBkY1h4OHpNbkpDYWVucDV5ZG5YRitmczdGeFFXWGw1ZGNYVjF4ZlgzTnpjME50N2UzM04zZEVRcUZ1TCsvNStIaGdYQTRUQ1FTNGZIeGthZW5KNTZmbjNsNWVlSDE5WlZvTk1yYjJ4dnY3Kzk4Zkh3UWk4V0l4K044Zm42U1NDVDQrdnJpKy91Ym41OGZmbjkvK1ZjS2dTV3dCSmJBRWxnQ1MyQUpMSUVsc0FTV3dCSllBa3RnQ1N5QkpiQUVsc0FTV0FKTFlBa3NnU1d3QkpiQUVsZ0NTMkFKTElFbHNQNC9XSDhBbUo1WjZqSFM0aDhBQUFBQVNVVk9SSzVDWUlJPSIpO2RpcmVjdGlvbjpydGx9LmNvbG9yLXBpY2tlciAuYWxwaGF7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSllBQUFBUUNBWUFBQUQwNklZbkFBQUFCbUpMUjBRQS93RC9BUCtndmFlVEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFBQjNSSlRVVUg0QUlXRHdZUWxaTWEzZ0FBQVdWSlJFRlVhTjd0bUVHTzZqQVFSQ3NPQXJIZ0JweUFKWUdqY0dvY3hBbTRBMklIcG1vV0UwZUJIK2V6bUZsTnZVMDZzaEozVzZWRWVsV01VUUFJSUY5ZjZxWnBpbXNBMUxZdFMydUY1MS91MjdZVkFGWlZSVWtFb0dIZFBWL3NJY2JJRUlJa1VkSS85WGE3bmV5djYxK1NXRlVWQVZDU2N0MDBUV24yZnY2dTMrRWNmZDN0WHp5LzArbkVVdStTUGpvL2txenJtaVFwU2NONnY5OFhld2ZBOC9sTWtpTEoyV3hHU1VvcGNUNmZNNlUwTlg5L2ZyZmJqZXYxV3RmcmxaZkxoWWZEUVFIRy9BSU9sbkd3aklObEhDeGpIQ3pqWUptL1RKV2RDd3F1SlhzZUZGekd3RE5OZWlLTU9KVE84eFFkRFFhZUIyOStLOWVmZUxhQm85Sjd2ZHZ0SmoxUmpGRmpmaXY3cXY5NXRqeC83bGVTUWdoOTNlMWZmTWVJcDZPK1lRamhvL043OTF0MVhWT1NTSTdOLy9LKzQvR294V0xCeCtQQjUvT3A1WExKKy8zT2xKSldxeFUzbTgzb3Z2NWlHZjhLallObEhDeGpIQ3pqWUJrSHk1Z2Y1Z3VzdlFVN1UzN2pUQUFBQUFCSlJVNUVya0pnZ2c9PSIpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7ZGlyZWN0aW9uOmx0cjtoZWlnaHQ6MTZweDt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLnR5cGUtcG9saWN5e2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJJQUFBQWdDQVlBQUFBZmZDanhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUNld0FBQW5zQjAxQ08zQUFBQUJsMFJWaDBVMjltZEhkaGNtVUFkM2QzTG1sdWEzTmpZWEJsTG05eVo1dnVQQm9BQUFJQVNVUkJWRWlKN1pZOWF4UlJGSWFmc3hNU3RyTFFKcEFncEJGaGkrQzl3MVlTbzAwSTZSWi9nOXZacEJmL1FPcjRHeVJna1NLTlNyQWFkc1pxUUd3Q2t1QVd5UlpKc3lTd3ZoWjdOL3ZoenJnYkxIM0xkODU5N2pseno1MHpKb2t5eFhIOERxRFZhcjBxaTZ2OEJiSXRxU0dwRWNmeGRsbXNGV1hrdlg4QWZBVldnM1VLUEVuVDlHS3VqTXpzQUZnWnNWYUNOMVZUUWQ3N1hVbnJnRTFrdis2OTM1MjY4V1JwenJuSFp2WVJXQzdZdkMzcFJaWmwzd296cXRWcWl5SDlJZ2pBc3BrZDFHcTF4VUpRdFZyZEI5WktJQU90aGRnL1FjNjVMVWs3d05JTW9DVkpPODY1cllGaGtxalg2L2Q3dlY0R1BKd0JNcW9mVVJTNUpFazZGWUJlci9lZVliL01vOVd3Rm5QT3ZRYmVBdmZ1QUFLNEJONHNBSnRBRy9nSklFbG1OdWlKeWJhM0VHTm1aaVBlWnVFVm1WZWxsL1kvNk4rQ3pEbjNBWGhFT09vN0h2LzNCZUF6OEl6UWtNUG5KYnVQeDF3Qyt5WUo3LzBuWUlQNVMvMEZIS2RwK3J3Q0VFWFJTL3JmNUhsMUd0YjJNMGlTcENPcENaelBBVG1YMUV5U3BITUxBc2l5N01qTURvSHJHU0RYWm5hWVpkblJ3Qmg3SjkxdXR3bWN6QUE2Q2JHM0dnUGxlWDRqcVVIL2ExQ2t0cVJHbnVjM2hTQ0FNQjMyZ0tzcGtDdGdiM0tDUU1ta2plUDRXTkpUaHJOTlp2YWwxV3B0VElzdjdKdFE0dG1JZFJhOHFTb0VwV2w2WVdaTm9BTjB6S3haTlBlaHBMU0JadjJ0K1EwQ0o5bExuQVJRTEFBQUFBQkpSVTVFcmtKZ2dnPT0iKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjhweCAxNnB4O2hlaWdodDoyNHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEycHg7dG9wOjIxOHB4O3dpZHRoOjE2cHh9LmNvbG9yLXBpY2tlciAudHlwZS1wb2xpY3kgLnR5cGUtcG9saWN5LWFycm93e2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjUwJTt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLnNlbGVjdGVkLWNvbG9ye2JvcmRlcjoxcHggc29saWQgI2E5YTlhOTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6NDBweDtsZWZ0OjhweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTZweDt3aWR0aDo0MHB4fS5jb2xvci1waWNrZXIgLnNlbGVjdGVkLWNvbG9yLWJhY2tncm91bmR7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ2dBQUFBb0NBWUFBQUNNL3JodEFBQUFoMGxFUVZSWVIrMlcwUWxBTVFnRDYwemRmd09kcWE4VG1JL3dRTXI1SzBJNWJaTEl6TE9hMm50MzdWVlZiZCtkRHg1b2JnQ0MzS0JMd0oyZmY0UG5WaWRrZit1Y0lodzgwSFFhQ0xvM0RNSDNDUkszaUZzbUFXVmw2aFBORHd0OEV2TkU1cStZdUVYY01na29uVk02U2R5Q29FdkFuWjh2MUhqeDgxN01pbG14U1VCNXJkTEpEeWNaZ1VBWlVjaC9BQUFBQUVsRlRrU3VRbUNDIik7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweH0uY29sb3ItcGlja2VyIC5zYXR1cmF0aW9uLWxpZ2h0bmVzc3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFPWUFBQUNDQ0FZQUFBQlNEN1QzQUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDRBSVdEd2tzUFdSNmxnQUFJQUJKUkVGVWVOcnRuVnVUNDdnUnJBSE4rUC8vT3IvNjFZNXdPTlo3bVoxdTNYQWVMTWpKWkdaVmdkS3NmYzV4UjNTMFJJSVVXK0NIekNwYzJNY1lvN1hHdjNleDdVaVpkNTdyanl6enYrdiszM1gvUi8rM3IvZjd2UjM4NlkrVHZLTmNmL3dkaFRMUGN2OXFVMndaZDc0dXRoMHQxODIxamtJWkxQY3NJLzZuV2E0WHZ1dHF1VTBaODVtbng4MFMvWnpncG5Mbk90SE50Ny9vZngxVEtYY1NOek4vN3FiTVEzanU3ck5RbU1ZWWQvNHMyajlhYStQK2dHYU1jWnJiMU0vdGRydmY3L2Qydjk5UDkvdDkzTy8zY2J2ZHh1MTJHOWZyZFZ3dWwzRStuOGMvLy9uUCsyKy8vWGI2NmFlZnhsLy8rdGZ4NXovLzJZSzVBbDJyZ3ZmNFVzYnBkR3JCNTJiQXZBclhwdXpqbWlxQVZTR3o1ZURtR1lYemhiQVptQ3JubXpkZHBVVSs4WTFkQU9ZZVhDdERVd1Z3VjdZQ0dINnVBbXlNY1o5bDV2a1VhQlBHTVVaNy9KNXcvNzkyL2Z2djlYcTkzMjYzZHIvZlR4UEVDZU1FOG5LNWpNL1B6L0hUVHovZHYzMzdkdnJsbDEvR1AvN3hqL0czdi8xdC9PVXZmd2tWc3dvbmdqZE9wOVB6SDNVM0Qzem1XR25aVlhuNGpDcXM3d0MyQktQNC84dEF6a1pzb1d4NlhycWVIWnltdnA0QUJDQkpoVFF3S2ZEVDhnenJaQ0lxaTVBaGlBQ2pCZkVCMnJQOC9YNjNNTTdmNi9WNnY5L3Y3WGE3YllDODNXN2pjcmxzVkhJcTVmZnYzMCsvL2ZiYitPV1hYOFpQUC8wMC92NzN2NCtmZi83NUpTdmJldStiTDJXTU1hRmJBbHBCTk04NVFYK2N0NnFvU3FrUEF3dVFsQlZLcUdORlNVT0FBM0JtdTdnQzVoTk9kMTVuU3d2QU9VVzdDNGdpVUNWOFNnbjVMOWhORklxVHNwMEd4STB5c2lveWpBamtZL3RHSlZFcHorZnorT1dYWCs3ZnYzOC8vZjc3NytQYnQyL2oxMTkvSFQvLy9QUDQ5ZGRmeDhmSFJ3cm1UalY3NzlFWHUycHgyeGhqd3RkSlpRY0FXUUlQTFBJU3NNSmFTd2lEOGd6SUtyd1N5QVRFNWo1bkFiUjVjMWRCVXdCbHNFV1cwaDZMcWlZc3FGUEFReEN5Ulozd09TQVJ4bWxYTVg1azY0cFFmdnYyN2Y3NStkaytQajVPSHg4ZjQvdjM3K1BidDIvanQ5OStHOSsrZlJzZkh4L2pjcm1VRkxPMzFnWURXYmx4UklzL1RxZlQ3b3VzeEpzQXhYQTJHYzdUQTlYZGdmZG9IYkZzajc2WDIrMVdBcmdJMWFnZUd3QTNxdXBxb0hzbWNiSTZGdTkzcXVnZ0ZhOWQ3TGVEdGdLZkFGSEJKK05FQnlJa2NKNUtlcnZkVG1oaEdjZ0pKU1o1dm4vL2ZqK2Z6KzE4UHA4K1B6L0g1K2ZubUdEKy92dnY0L3YzNytQajQyTjhmbjZPMisxV3M3SmpqUDZ3cmFNSTVFNFJaOHgydlY1VFN3a3F1b3RWNy9kN1R6NkhGV3NEL3FOY2R3MENRM3EvMzIxYzY4NlR3RFZJZGJ1eTczek5sZGhTSGI4STJrbFp6bm0rSW5CUzRVNm4wMzAyYUJGc0xoSERBS0pWSlZnbGZJOWpodnU1M1c1M3NMQU5ZTnhBaURBNk1DZVVIeDhmOSt2MTJpNlhTN3RjTHFjWlc1N1A1eWVZOC9mejgzT2N6K2Zuc1NtWVV5a25XRUc4NVdCc3Q5c3R6U0x5TWRmcjlRaTA4aVkxNVVaMExsREdMaFIzbzV6SzJqN09QVVREMEUrblUzdGs3WGIvMTZORmJobG9BTXVZMXpqTFVPTzNCS2VJRGUrWjhzMy9KNGdGbzRUTTVqUG11UmcyOGZvVUtLVlN3bzE2VGdBNW5weXdjV0xIZ1lsL1B6OC83My82MDUvYWI3LzkxbTYzVzd0Y0xpZTBzWmo0bWFvNWdUeWZ6ODhFMGYxK2o4RWNZendUUEVHMmNxanlmSE5GME04ZnVxRWlhT1ZuUnpaWlFOaDVmd1F5SGcvSERHZkpvODlRMXpiL3F1dTVYQzY3NzNJMlhLZlRxZC92OStkM3d1cVd2YS9ZVGRVZEVWM2ZoSXYvVml5cHM2WUUzeDNyNDNLNWJKUVM2NnpheFZHRnN2ZCsvL2o0YUYrL2ZtM2Z2Mzl2dDl1dGZmMzZ0ZjMrKysvdGRydWR2bjM3WnVOTEJhYUNNZ1V6QytyWlJpRm93eFV1Skk4WU1xY0NwOU9wcTV2YWdhWVU2bEdKQTFYUXFlamNodzZDajBHdzVuWUJyR3cwMUEyTzIwNm4wNEJHb3VOTnlUZnAvRndFbGhVZXk2blhySUt3N1FRV2RkeHVOMmxkTDVmTDgzOWdTUEY4YWh1L0p2Qk80OENQU3VxTWY4VnA5L1A1M0w1OCtkTHU5M3M3bjgvdGZyOC8zOS92OS9iNStUa2hQSjNQNTZtUTQzNi9qKy9mdisvaVNnYnplcjArQVp4LzUrODhidjZPTWRhNlM1ejZrZDIxZllDOWR4djdjSUpKMmQ5QU9TMzBmUE16eUhpVE04QjRERjZYVWxZSHA0S1FXM1crMXQ3N01OQjF2R0h4V3E3WGE3dmY3OCt5NS9ONUErSDFldDI5eHVQNWRiWXR5YVJ1NEFrc2JQcTY5MzZmalJ6WFJ4QmJQci9iK2IxOCtmS2xqVEhhQkJCZm44L24wLzErSDErK2ZCbm44em0wc0I4Zkg1dTRjcjVHdUJoTVZrMEVFbjlSc2N0Z1ZoTStpeGxKdE1BMjNSOEI2eXlzQXN0Qk9nRlhJS0tDTUlnVG9NcU5FdTJmWU1IN3p0YzczMmRRS2tDajF5dEFadFkwS3g4cElyOEdHSitBVDNWKzJIaXJobCsrZkJtWHkyV3o3M3crYjE3UDhwK2ZuOC90VXdHVmxlVmtUeVViNjhEa2ZheVdZNHp4TlJpaFU0RXBMSlBaVnJLK3U3SjQvbWdmS3FlTFc5WDJSRVdsSXRMMWRpeW5iRERiMytqWGdZalFxbjBycnhXYytOa0lMUDdGN3hJYk12eDd2VjUzeDQweG5sYldKRjEyWlNhZy9OMHBXNnQrWnptT016SGphakt3RGZvbmQ3OHpZVGRmcTE4dXA5N3pyMnE4djNJaW9CcHJSdEJsMEVaOW9nNVdCUkdPZE9IaklqWEY3VW90RmJnT1duWHpJSnl6WXZqRzVJWWdzbU1PeEhrejhPc01TclZOV2VxNVQ4RGFPY2JFdjFPZDVyYnM5YU83WXZNZXQ2M0VrRisrZk1FeHErTVJsNC9MNWJMWk4vK2V6K2ZuWjZLYXp1TXFYU1FWTzVzcEpYZmxIQUl6ZXMveEpzZWNrUkppRE1vZzlkNlZmUnJxWE1yNktwVlYyN2pSd0phY0dvdk9BTTF6TWRRTW53SzFBdWJLNjNrZENDaHZJMUM3ZzB6OW5mL0QrWHplMlZqOEg3R3g0UDlkdVFsc1lDcnF5TjhYcUczSG0vMTBPajNqdy9uK2NybHN0dU0ralBtbXhUMmRUdVB6ODNQenQycG4xWHNFSFgvYm5QYVZxVm1oMHh3T3QwbzZYTExBSGVQVVUyMDN3SGZjcnNwQ3dtVjNUcnlCNXMwTXNlZWc5N3gvQnd6Q2pCbGJCK3BSQVBsYTBCVlF1VDZWNlFIZEJsajNkMEtHMTQ3YitEcXhRZVV5bURPNDNXNGRRYXIrVElqd21BZDB6OC9oNjV2ZjAveUx2M1BiNVhMcHJ1L3lkRG85czdFVDBJK1BqNmRLSzlWVUVJZUtXUVdQQU9ySjhMS2Q0dkUrdDkxWTNlN1VGbFdhdGcyVndKbmIrSFBtdHZtL3NmSzU5L09hV0YzeC9lUDFVUEh2QTVERFlEcFlYZmIwZHJ2MVYyRGtCa3h0dy90RVdWVmxYV2RDOXBGWXM1L2pmaDlkUy8xNnZXN3M2bFRHK1RmcXN4U0pIeGtYWHEvWGRyMWV1NExzZkQ2UDN2c1QzTjc3RGtMK3pQbTVqU2RLTDR6UjNBeFFkNnJIa0xrWWxTb3dzcnE3em56dTZ3U3dkc01KT1htQTVmQmNqeHRnTUdCWUhscjV6b2todHNNQ1RnWExRT1c0WEM2ZEV5RU1wckw4bUFRelhSZ2R1aXgyeVp6b3J4a1lzRG4zaEIxVmVNTEdzWHNWdGdsMnBXOFMzc3ZrMHZ3N1I0aE5hSHZ2NGNBQ2w1SEZ6d0lIMEtjNnp1NFhqRFBSL2pwQVZ4V3pPMVhrMkREYjN2VGN4ZUdVMWlXWkhrbUlEV3ppV0t2aXJDSjREcmF2czZJSi9HRzZjVHFXZFhEeStmQXJRRFZWa0xxa1ZqQW9aSUlUZG1tSXFYd3FhOTVOMytNR1lvWlFkUlZOTzUzWTF4UmtoTzE2dlk3ZXU1MDdDYTlsSm5iR3B4T2VtUWhTdy9BUXNtbXA1elU5QmlVOEc2d3ZYNzZNNi9VNlBqNCtkbzBCejRDcGdpa25UVWVEcXdsS0JtZzN1NE9WanJaMUErckFjZ2FlaldxNmVKQ3ZDWUZET05Td09nSFg0RVFSdzhseGJ6RE9kRUs2Z1ozSGsxYis4ZzJvMUpGdEtYeXYvZkVkVFh1V2pXWGRBWmlCcDZBRGVEckNGaWltN0I2WkZuZWVJN0d2bS9QTWtVRFg2N1c3eEk4YjBENy92OGRBOXFmTjVvYUNmNzRXWmpIMG1mMWNtZlkxWTBKVUZtVnJUV3U4dXprTmNMdEVqN3U1RlhCVGtmQzZHT0E1cThZTXhPOEtWdkY2c0FWR2RjclVic0tPRGNRS2tMTU9NZG1seHVtNjQyWXJQbTI2QWxoWlcxWUIxUityckdzd0U4VGFZQVdlVU14ZGYrV2p3U3ZaMkVmM3l0T3lmbjUrUHBWUEFhcU9uNDNNdE5CcXZtamp4YmpNNGxaalpZNGdxTk1JNWt0YVcvc1lLTndTKzlsRlF6R2lobU1DS1BhNytaMFY2RWIwR1Jtb2J0cFg4SmxqV3U1Rk1MTjVqYTZoRzlrd1FnWnFmNSsxTkg1VXh6a0ZSZUNkV2hKOFhkbEdVa3hPN0hSbFlSbTRtVk80M1c3dGVyMTJUUEpFdy9ybUVOM0w1U0tISVdaZzlteitwVW9LT1lxNWJKVEpkWDJnbWUxVWN4TVpRRmFFUUlsSGN0MzJNK1kxQnpHa0d1emZpeUFOOXordWdwbFoxc3ltQ3JEQ1lZa0d4RFRwSTlSekJ5MHJIeWVEVUMxbldhZVVhRDluNHhrTnlZTUJEWnR6WjNCKytmSmxZMjFYRkRPY0FSSmxhYk95aVMzdUNwTEk5anJaakNEa2FWdmNDQ2p3b2duS1NoV2R6WFpXbFpNdlZUZ0Q4THBxbENMcnFnYmNCK3FZd3JnS1lwVDBjY0NxYkt5Q1ZhbGtFYWJuL0Z5bm9nQ3JQS2ZxZjUxeEo3c0dCMlpYY1pteG9TT3p0angzMDBEWmk3YTAvMkFJUjBVbEJhZzlTdUR3NktjQXpsYUI3dkhadldwaks5MGR5cnE2Ykt5RFVaUWJSMEIwNWJpTFFrSEljU1VtZ0lLK1N3dXFnSENub2lvMlJRVTF5aitCbkJ5OXBwaFZLTEd5QzdaekZLMXB4V0srRThJaFZDV0xOL3VMdG5VVTRheW9ZTG9hQU56OEZkdGFTdlk0cFYwQkVXMmxzNjFjenFsbEJLcFR5S2dNQWhyWjFjZGMxUlJPdFBtdldOa2RjS1o3Wkt4YVdqaVBMSk1wcDdPWkt4QStycUcvb0pManhmMHBuSmxxTG9EWm8zZ3lVMG1LR3lzMnRhS2Vjai9kMUMrckpTcGxCcWxUeUFxZ1IrRDhLaktsbVJMMmd0VWNBZEN0c0wraWpDTlQxb3FxcWtIMk9IRWJHNXNERm5VZzVBYSt5TG91MlZVMXB0ajFTMlpRcXYxT1JaTjlJV3pSZmdhUkJ4S29CRThVV3lxbEpGdHJJYzBBeE5qU2plZDk5Q1RZL1hEZlN6Q3o1TTBJWm9WRXNXblBGTlRzbDhvb1ZDMVR6YkdncUZaTkRTZ1Z3S0srMXNHRE1LcXhaQ1dHVk1EeXNpRXIxalZTUUpVWXdqNWlIT2xUaGRIdDQ0U1FnOUNOK25sOEQ5ME5NSWdBZGdyNDZKcVJpUjlJOHZSZEZ2YnIxN20veXhVTUtqTkxNaVZVQUR3dTJDV0doaGkrRjU1VFdNOU05Y29nem1zMWRuTTR1T0YvTEFFWVdkY3FuTTd5Rm15cTNJZndtT1JPZDdZMWlGV3RPam9ZOFRvNDFtVFY1SXlzZ0ZGdVJ6c2JXRkdiTklJSkNEdjFkT280bFpHN2pXQndSRnRWVEt1V3llQ0J5SktPYW44b1ozZXA5WGRkTmwwdER1YXl3THo5Y1hQWWVEQUEwU3BrQk85c2JWY1RPVldsZFB2NHV5ekVrenhIdGp2b25Ib1NrRkVXTm9vMWQ4RGhjUXB1dGQycHBOb240QnpvQWlKMWhCRlFnMGRWdGRiR0hIRFFXdXNobU5FUXVrTE0yUU8xRzJZOGJnVFhxRmhjQkpqN0VqUGdjUHRzOFVTOHFQcFBCL2RYem5PaDVaNDM4dHpINWVjNlFnck9LclJSZktteXNCbVVEQitQaFlhYk1sVlBFUitHQ1NJVFR6cjdhbTJ0QXJIM2JnY0V6UEptK2NyNWpKNE5uSE5GRFZyRlhjSTVMZTlrNUpudytiZWRiVitGZlJ6WklIYU9PYU9zTFkwLzdVR3M1OERqckd3S01JTUZJR3pPRVcxL2pHc2RBdENONmhFQUk0aEJlOVlYZVJST0JTVlBBVlBBcXZJTTVieDVoVktXQU1QNnpCUnkzaWVzY3JpZFZkRkJpbkJ4WERuRzJHUlkyWGJDdnAxbGh2R3RPOUJ4dTVoOTA4WFF1NDJsblNBck1GZGl6TWltOHV3UkN4UEdubk9TOGx3cG5iT2lEcVRBanNyUk4vUGNvQVNjQ2JhQUNxVk00MHlsbmpqVEJzK2J3V2xBRzIzL1VLYmRraXdLV0lRUEd6V2FjenBvU2x4UEVqODIyY05Xa3BTN0Z5enNEcnFwZmdwRzNqYWh3MnZnYmFTUUF4dUxXWll0N0p6eU5lOEpvWnBOQWN2REZPZHcwd3FZVDlBSzFyWnovRGRiU2xMUHAwcnlJeGdRSmxLOUFabEVxN0lPWHBvaGc5UElockNuZzg4SnNPeGlWNFpXQVlmZzRzaWt4LzhreTJaOWw4NjJ1cXdyZnNjSUg4K3VnVG1WR3lpZGRlVllVZ0VNbjRHWnpnMTRFd0lzaDlzeDJjS0tpV1hSZXVPRTVnekdPUWdkbFJLVlZkbGV2cWIyNzlYcTBRbnN0czJWRGFCTzBjb2V6c3J1V3RIQXB1NnNLRzRJQmhOMGFHVTJrTHJNS0dSVE4zSG1iQ0R3S1YxNHp2a01FREc0UWZaVnNwVmxhTlUybWhjNVRFWjNOMWgvenFUaGV1THBXMDVaV1RHVmpiM2Ribk5teEtaQm5OOEpxaWRhVkxLQU95QVJOTFMrTUI1NFoyK1ZhcW9NTEtyb1ZCbG5nZWZuVFBBY29ITldDU3ZsZkE4Q0kwSEVtQk5CbkJsWHlNcnpVN0E3V1ZtOTRQUHFRMmdtcUt4K1dER3NudmlsbWNTT0JKcU9LMW5ZeUFJenVBeWVzcTNVZFNLM0tmV2NZS0Q5NUhtZllPVTNxc2VyMkN0WUVVQStGcGZxZE52Z1BCWlVCaERyR09OUlZsUXNoOHJMY2FVQ3lrSEcwT09Vd1RsTEJyc2g1c29FTUdlemkxRTRIUlZ0MWljcDV3WkVGWGRpYkNrRzhZOHZYNzVzYk80RTBpb205eitoalNpT2Z5M0RocFhJdHBWaEUrVUdRZHZvV2p0Q2htckdIZjRZQXpLZ0JObkd0dUp4RkNlR2RoVUFmUUxMSzhrQllBUDZndkZKWmFqTUczWGt5Y3k4S3VDMHE0RXl5bXd0d2R4ZHYyTTBtSUJ0SzBMS25mNjQwajAwQXVxNGdVa2RXR2xoczIycUpjNmRaQ3NMMTlveG5sVEpHNFNZVlJJR3BEOFRQRkJ1TTZPRWxiUzFwbGRpZDRtR0F5TjZaSXVwYkM1YlhKTjlmZHBiVGhTeExVYUk4SUcxWElZQnhXM1RqczZLUW9zS2N4ZnhjUW1kbndSR00xMEduRmNDeTJYWXVuTE15QWtkZ2s0bWVQaWN6c0x5Z3RoY0J1dDZnb09xUzdZVkZYQURMamFvc0I2czZvZmNaV0FaU0lSWXFTVWtpell3dHRZYWIzdlVPUTl3MkhSeElJZzhXd1JWZUU2OHhpNFV0TDN6UnBoeHBsend1WnJjcVlDcTFJM2pQSTVkbkpJeWdFb2hNYlBxVkpTenJ3enhCSlRzNXpOK1JlVVNneGlrUFFWRjNKVkJlTlF4YkhFTnJFTU52RWRGWlZWOWxIOStPUkdFc05aUXB5VE5jNEMzQUc3WEY0bmd6cStEck8yemJ1YWFPWGdkYUZjZGtFb3RvU0ZCVlgycUowQzhPV1plRzRLR2xwZ2hBMFhmVE9QQ3FWMnFxd1EyNlFXZkYyUE1MaEkydzFsVkFhMmFQc1lkMHphMjVNUVJ3Z2NaTjZ1UURDaStaeGlENFhFTTJrWnhPVDQxRm5abmFSbGNwWm91emxScXFkYlFWV29wUW9TQjU4UlY1MGxCTnJIaS9Bd1hTNUxyd0RWbHBZM0ZjM0J5aVlHYzUyVHJpc3Q2a09YZHdJbkFRdEpwcDVRY2h5YXF1WU9WN1N1K2Z4Vk1hVjNkYzBSRTJTNm1VWTBnTHQycE1jWXFyS0lROXcybDFncFFVTXRRWWNtbWJ0NURUTnhkaG5VQ2pRcXRiSzlTVVN6dnJDMG1taGhFMWUyRlMyK294eXB5L1pBU3V0a210angzdmNCQzI0UFg2NW5icWtCQ1JoZmpTOWtJWVBuZWU4Y01hZ1ZPaEkvM1QxZkFtZHRBV1pzQ3N3VEpDa1FWTmEwcVdLU0tQT3BIQVVoRDlEcmJWY3lvWWt3cWh2aDE3dllBYXlYTFF5S0dZZHhsVURGcDQ5NHJCWFJqWWdPMTdERFlldE5JVWovZXpwNlMwbG5scEV3c1dtSk1rT3dzS1hlWktFQWpJSG4wRVFKSVNhUkJjTzZVTUlOejdwL2JFampudzRmdCt4bUR2a3N4WDRHMnJJcmlzN3FhZUt3QUZNUDJPaTduNGNyaXVad3RwU1V3cGZMeFNuT1JTcklxdXNjNVpGYVh5c3FSV2ppWjJEeUFXRUlMMzV0VlNvUUVsRkFDak9lR0dTRTdBSEVRZ2RvL0xTdkNPZ0dCdmt4c21EYnZsUzNGcDV2aGFCMlRBR3FSS3JLS01yaExWcGFHekVWalowT1F4RGhhQ1RBK1F5UlIxZDE1YVF6ckpudEwzUmlic2lwakc2amxnTDR5cWJTMHNOWWcxZTg0dmhiQlZyRWxLNjRDVWNXWVhEZkt4aHBJdXhpVkpaVXhzYk15L3VSQktUTlJRNGtRM0xkUllMUzBySmpSUGxUUHFZNmdkSnNFRGMrYVFYQW4rSGdzTlVDYlJ1RjBPajB6d25BN2JXRGtiaE81RW5zMDBxZVFoUzFsYUJNbDVNL2NBYXhzTEY4ckt5cWwrVGY3RUxMRUd1L2l4aWltZEN2bzBUamZwakt3YWdnZW40ZWg1djdMb2tMS2JMdXl2SGhjWkc4ZGhHckVEeDdIZzkzWnBwSkY3cUJxTzNpVnZlWEVEUU5Jbnplb2U4WXE2ZVBhWkJaMkp2aU0zVzJVQUdvdGVrUkNBR3E0RWtGMVgzRE9uUjExeVJzQkwxdFJhMFBWY1ppTkZYWjJjMzRGc2t2b21JblFRNmx6cEpvWmJKeGs0M053S0pGQnF1SlNzckJ5SHlkeEtPblR4UUFTQm1TM2orSk1uc0hTbGEzRWM2SzlWV29KVm45emZqd09NN2hxWUFBcUpRd0UyYTNuQTQ4SjJRR2VnUmtwWk5pdlNZK3lzM0VrS2Q0b0pJd3N2SUhsM2NXZ0x0NWs0Tkg2T210TFdkcHVyT2t3RU11cFljN2VNdERSaE9jSTJ1aTVKaFZJelh6THl0by9HQVB1Wm95bzh3a29kdVZnSmdsQ3Q3T2hHYmdJRDRNcTRzaSs2M3pVUzFGdUZGWEZscXlhajJlbUhsTE1jQnFZdTBGTXVSMjhCYkI3bE94Uk1TaUNRWEZoQ0t1d2toWitwWURpR1NnYnNLS1Y4TWlTUnN1SFNJV005cmtsUmlJbFpadXFYanNRSzhvb1lKTWdxM0pLV1ZraEhiaHNWeEZVenRoT1dQa1lpamNieDU0SUtzU2RUK3VMcjNjckdLeW9ZZ0ZpR1I5aUJrNGtmbG9VWCtKSWxRUlFxYWJtcGduaHF0cFFwYjZSVlExV0g1RG5yUzRoRW9HWnFhZXJRMmRoRmJ6OFhlUHhTaG1EYm83MGVJU2pvb3JPMnZLOFNKWEk0U1VtRVU0eldLRHpVRHRXVFl3N3hYbGJTVEVqNEZSZzd6S25Lb0dSQUx2MEdzOVRnYzFCcEN5d0daUlFBdHFWejJ4ckJjQU16RXBmWndGU2EyRzVXMFFCRmpTTWFwV0FFRmEzSGNHTjdDeER6RUN5SWtKOTdxd3JxV05UV1ZvODc2UFBzalBrajJ3dmdyb001bExaS01FVEtWcWwvQ3ZuV1ZGaUZhL1N6SlVRd2tvWnNyNjdZNnZsU1JWMy8ydG1OVE9ZM3ZuYXhZd011b1BLcWR6UjF3N0lxSHltbFB4YUFUaGZVN0tvMlpYWWo0QVlKSEwra05kS3dSUVlFU1RSYTVmc1VaL3JWQzFUTVR5V1Z5WW9xTnR1emFIc015djJ0dm9hcnhkZnF3WWdVMWF4Rm8vY25xbDFGR3NxSyt1QVJPVjhCWDRHVThXY1pUQVRpMnE3UWN5aTBPMFYrR2hXQk1OUlVrbjhIMVNzV1ZFNUJ5M0dpMEVDcVVlSm9CZkF0RGE0YW1rZFhHMzdBR1A1R2dlYjg0cDdVYXpwb0tSemRGemVROEhrb0hHeHByS3kvSHBtNXQxMnA0N0o2eFRZREV6N3VJTkVYU3V4WVh2RnNrWUFjK3lTeEg5c2Y1ZnRLelU2SWJ3VkJjVUdnNWU1Rk1DRVhTRXJaUjB3R2F5VjE5d29NOWd1UGpUcUpkVlRxUjR1RTRuSm5MbGRXVmtFQ0NaTGQyVkxGK3h0YW1leDdJcGlyaVNEVXB2cnBuOWxyd0dNQ0h5cHBNSCtwczZMSUxzdUZHVWoxWEVPWGlxYnFTSFBVS25DbHBXVjY4a3F0VVJWTkRZNFROYW9jeWtvWWVUVTVuZ0dFUWEvUzFEbm5FNEFlWE1jS2pIUEFtRlZqQ0JFTmFleUxWTkhmcjNweDh4VXN0Sjk0aElwZkg0SEtFL2VEYUFySzZsU3lWVkZiZHQxZ3hUSVZrM3BwcFZsRlhpNHBFaFZCVE9icXVvaFU4NU1MWG4xaWFodlVrSEpqU0NNYzAxdExGdmVWVkJ4MERvZE02amZ0Q3U3RE90SXpZeHJjMHFwMUpHUDJheVlGejJHYjZIdk1yTzhjbkd0VjZHam0zdUltU2ZEMkdwV0s2dW93YlpHTXhGS1FDbzFwT010Y01YRnBSc3QraFhHb0FvbUYzc1NUQkdnVGdsYkJLV3dzUTN0WnFhWVNwMFoxQ2ltUkRXRmNDSlVQWUowMEJJNUZrS1lOb2lmdVF4bU44OFNXVlhXTE1hVXFxcWdDMEJtUUpSNnNrM3U5TkNmNmpZTFh4QWZxc1lFZ1ZMQWhSWTJBdGd0ZmxaTkZtRnloeGRyTGtBZFdsazREODhNMml4SHllcElkaE1IckcvaVIxWkd0cTBNR3BiRGJSUFlPWGVTWTFNNk55NFpzdHZHU2t0SytYYkZQQVRqMkQzNzFzYVBFc0FNWGhYcnNaMGttL1hTdGtoaE15QmZzYTZ1WEZaZTJWQ2UrWU1yMStHS2d3clF5TllxMVZSckIrRWl6QW93Nk5zZE5LY3lWRWtZZU03M3lzNnE0a0FIcDZCaUZrbFRrSXJWQzVvWVY3dXp3T0dDejRVSjBTdHEybFdNSnk0d3RiK1JldEw2dFpGaWNuSm1CdzVVakN2WFhNWlZKWDJNUWtiZitYTjVFV2Q3OFZ6OC9KRXNNWlRCaUtOenNtMWluTFJVUTc0SDROaWRhcUk2OGo1c0FGZ3hjUnZlQzdpZUxKWGZRWXhqWloyQ3NpV0Zld1pYSm1CSWxaMXRkdHJYNGhTdWF0ZUtzby9SWk90T0tXMm5tcTFvVHplSzZkUldBV3UyTlJWYjRocTBTWG0xR3Z0dWdIcmJyNUlYcW1Ta3RnNUN1REUyTVNsUHdzWTVrTkUyV3AzQXFpWmJXVkxBeGlCRisyaUJaYnVOajZNQjZyc01MQzdGeWFzYVlEeW83S2tvUHlFdHczcEVNWGZQdnhBSmkyakFRUWdqcnowckxJWlNXWmxJb05od2Q1eEs0QVI5bVlOaldBYUxybnVJbUplQlZOOXpCT1JPYlZ2YnIrbVRUZkZTRUpMU1JuSG83aEVKb0lpOE1GcWp4bXZnbUY1VVJaejR6TEZnWlo4Q3R1Mlg3Z2dWY2NLbTlnVnhJc09IcXhYZ05NS25GV1pZbmYxZEJuT2hheVhxMTdRd0ZsV1cwOWVOS3lWSkZtWHFhT05HQTVhQ2VnTWJKM1VVa0dZMWljM25LV2dqcThxZlZZR1FHMWdSdDZyczYyYTZIaXFxVU9xZGVzSzVObVg0bkdvZkpvaUUxZDBkRjlsVlZrdlQxL2tFRWFhQ29ZT3dGcGNWY29MTSs3NjY5UHhDOXJXcWt0SDBzV1VZbGQwVkNwdUJaL3N0VlJjR2d5OVdYMitVMVF0aGk5U3pBcVN4elpzeStPaUZ6QllueVNHVjZHa3U0NHJEOEJDT1pCVjNCdkQ1K0FLUkhOd01Fc0I2RXpIbkpwa1RBZWlVbEVHa2NFQ2VCNkdEWlRwNVlFSlRsdmRya254WWpUbGxNa2ZOdFh3RGpNN3VWaks1SlhVVW40M3JycXBLMmp5dGF4SFcwTTVHOERDOHJ0SE1ZczdLU2dkdVZRTUdUWUZxRnZWUzZya0Qzc0RKNDZhZmRZRndvcTExQU9LQ0JMaHZ3b1VnYzhJR0FOeWNSNmtuWnJkSlBkc3V4bnlqZmQzRm92VGxSTWRFZHRPbDVDTVY1RUhzWFFCaXM3VE93dklEWmFHajJWbnBiaDdjcEs2M1Z3WUVNTHdxYmp6eWw2OTlzYXdGRmtGMXlxalVVMzFIZkM2c1cxWkZWRnVYVlhWZ3o5a2VFYXcweXMxbFdmbSthelFBUVNXQStoS1lWZnNaalBuY0FjVUI5b0lheXkvVVpYUk5ja0RHamk3N0dzV2J2Qm82dFByV1BxT3lWa0JVcStJTmVxcHpOZFlzL3UwaWZoNXFtcHFJVyszM0pWU1Vjd1k3MEtMNFU5bFlkVTZsanRTbHM3bG1maTlnM1l6ZVFmVmthR0ZhVjNPRENuYUQyTjh3c0VERmtsRTNSek0zWmdoZFlrV0hzc3pxNzBGSWVjbktrVmt0OGV6TXpScTlia0d1S29qUkxCVlNvZDNZMXlQcUtnWVc3SlJRVFBWeXk1eElZTGpPZ3hnVDUyUktKVVkxZE9ySWlSZDRmdXRReC9BNUFjU21FanowdkZXcmtMenZiV0F1OUhPV2JHZ3hGazFWTlRwbkJLazZUZ3dpc0kvSGN4WVhQMXVBV083MlVMRmxCVHErYVN1MlZUVXM2aHJ4TTJDRitoRW9yMVZJQTlabUZVYWFiMWxTU2dac1ZzNHN4ekhsVkxvSkhyOUg0RGhPTlRrSTFYQzAvd2lZMk5vV0FHNVJsbkhGbnE2b0xjY3BRZGRNdUovTzE3SlZBNU9ITGkwQnFDenRxN1kxKyt1Y0NkOThxTEk4TUlIQlYvY0tqeFFUbWUzaEZCUzNNeUNxbkRzdXltMm84MEhqdkZGVHRyVVJtTmFHSnNtVmFoSW1qVHNVWEt0UVpUQVZzN012djgvK2Z6VXJaQVhjTEo2TTRrb2U2WFAwYjZTbVdXTkR6eVVwUThibCtMdFd4NHR1cVozNmNSWVYzeXVWeFBOd3ZJaXFpUUNTbXU3c3JnVHpSNm5reWhwQ2FyWHdGeTF2R2Q1aVAyY1kwNmxGcjVOamhoZzFZNitOQjI4ZnRiSzgzczhyZjdrTEpiS3dERlBiTGcyNWEwQWRaSkVpcXI1cGhpeEtNRGxSVXRjc3NxMWhyaUxxR29IK3plTmdWbTlPZW1qc0VUVjhKZEYwTkhua0lGeFdZMU9CNFlycDdydFdKN05nQUFBUFhrbEVRVlEzb05zNW5wbHlWZjh1MkZvTHUxSnJIdmVhWldRanFBa3NodEZhMmd6c1NHM1pwa2J2ZzNIYWZGOXNsUFBsbGRqRmxLODBHeXNtOE1yNE1QaG5lTldFTlBHakFJcG1pbFRQQVRkVFJUWGxDQllIWUFRdVB3QTM2eElwV3RHTjRxM1kyTWhpR3NVcHVTU25sRUpSRDhQb3JDN0NGWVZ3K0Y1MXFUaGdhYnhzVHhXekNHWTBaU3NiM2xmcUF5ME9QTmpOeTh4aVFRS3NIWUZRMkhCWlZ2VmJCdXEzbTFvV0thanFhb25zTTZ1WlVyNkNqWFdOWjBsNUUzaDNqVVJtYTZrUDNNSklpeTFMbStrYWhRcTQxTjJpWmphNXNqdGxMWU5aSFpySDZxVUdtNHZNYkRwNlJ3MkNGbXZ1eUZrckJjQ3lNdEZxQmFFQ21zSG9LOUJaMkxBL2xKY1JxU2FEcW5hV2JyWmRHYXozRExnSXZCbG40d29HenRieUpHcXNsd3hraGhIclRqVFlGWEN0T29LUzh1TGRvZlZkQWJPeWxHVTZubFlwWFdadHM0blhCcTZXeEppdE1Ob2tIVUpuYm5KcGxRbSthR3BZMmE1R01WMlFEMWhSdWJCUEZLZHVtZjVPSGtMSHowRjlsdUU1a2pCalJhMG5GRTVDVUdxSHczMk1talo2eGtnSU5WblNuWjFWWlN0SzJxS2xSYUxsUWdLN3VUcTdKRlhKd00rM1NPRUt5aFpOSSt0SjBJNXFNWXk5azJxSkQ3ZFZXZHFLWGEwQ0tOUjBDY2pnK0IySVl1MmZjQlpKWmtNRmdNMTFyMFg5MndpbGdoRkdnelZuZXhscUI3eEw5bVMyOVNpWVVWWTJuWE9aak5CUnN5RHNRUFJXVzVoclo0WGNkQzRIVldSYmpnSnI0c0ZvZks1U3pqUTdyaEkxVWViZFBkRWJqNnNxSXZUWlFaNXZhMDhyQUJzQVcwVXhlV3l0QWs3QTJLSjlacHh6Q2lvQjI0WEZ0WUFlWFl4cjZhblNxaExncHBFcVdiR3dMdW5UZ3JWK0lqV2xMMjlsamFBbDRFUU1Hc0VycDRhcGVaaXF1d1JYTFhBcU9DZXJ1MzJtbXlkYzZvV1RTV3BGQUdkemVUQjhSVEhWTUV0bE05MENiYlFDWWhQanEzZWdZcjFGR2RZSVFqaXVER1o1elovQXpvYktHT3lMeHRpNmM0Und0djJhbnlXbExJQ25sTGh4SlJYdDZBNWViREJXRk5PTmJ4V1oyZDAybW51NFM5WUVDcGVwcFYxelNXUkJXeEhZelZJdjFDWFNvdXdxcVgzakJCQkRaZFlRYnBUUVc0WlFsUzhyNWtINHN1U1JtZzIrKzNKTjEweDFQYUFtRWttdFlsRWRlR3BKRU02a091Q3FDUjIyb1N1amo1SVYySGRUMHpqNXByTEtUalhGQVBqZFFseXE3eElCeEFRUDV5TWN6RzRWeEFLdzBuNmlsWjJRQmNlMnBMdWxrdXh4cW5vSXpGZmdxeXFqaWw5UzFWTndCckZtZXllb3BzOHlPalpVeWJaZGZTOEN1YVRJSnVtenM1dE9EYU50THBGRFEvUGNKR3dlTGhtZUwxbkIwS3FpVURTY3NpVVZEODlEaTNIdHJLdFNVTHczUkxpeWdaRCs3c0Y4SlRPYmdZc3JHdkROVUZSR2wxaXkwTGwxWWtVYzJhSllNb2c5MjBJOHFXNllEQ2cxTXFrMEpISkZLWGtiZ2JScmVJK3FwWU5PWkhyVmNEVWJhN3Bqc3BoU0pOdEs2dXBnUk5BVm9PUzBtdWdCZU40YklaZ0hodVBaL3MxRU5hWDZLc1ZyK1lOcmgxTmI3aXBSMFBFNXpiTlJlZ0NickhSVXc2WWYwN2RMQkpsMWY4S0I5YXMyVjFuTnFBc2w2MkxCQmhlaHdhbGVya0htQjFKRklFWktTRXVzZGw1SlFqMW5KbEhYU0NGMzQyZ0o5Q1lHclhlbGtuSklYcVZQOHNEK3F0cGxDUjNYSDJxZktxMHlnTXArS25Wa0t4TmxaOG0yWWtJbFZNaUNuWFV3bDdxem5CS1N2UXozbTNQdDZvUWJYTzViNUZpeENoL2ZIeFVRVy9BRWNLNnpDTnFLUW5MOXN5d3FtS3V3dnFTWXpUL2FQVk5OcFZ5aHZSVzIxYXFjaUNzamRXdkJ3SUxVdmg1VnlDemJXb0MxcEpqSjY4MENXc2wrdWRLQjZUNVJ3RzFtbG9obmxwYmc0N2l6NVU5aGEwRkd0bVJMRllCdE85OXk5N0FwMHorWkRUQW9nNmtTTFpzTUhnL0lGa2tncDZDcHZVMlUwY1lWU2RubWtqd0JkT21YYnhUV05XenVJYmlwTWlvVnhFY2taRW9haFNPaXkyTTNLMGpjQzFMaFZEd2FxRzBadmtjV3FDbnJHNEdJeHlrcnFsYldkdzZMUXlCYVpSOEhtTFJJaFFXc0hzd0Q0MlpYVkxOa2Y5bCtGbFcwSFZRMmx3RnNDL1oxRmR6bFFSMEthUGZvK0ZkZnUrL2R3VlJJQ3UxQ0dSN0FFSWlBaGMrQVpVRjBrT0JhUHhtVXFnNGk2NHZRblU0bkZEWUo5TnorMWZWWHZlSDlxbXIra1BJTHg4b0tjUlYvQkZieGJFMEpNVDBrU0Q0dzZML2xOWThvY3NxYWdWZFUzQTNNanhoeGNHdXF6c1BINGlycGFvdzFxNk95clZqdnA5TnBjNTlFOTFMbGRib1lWekpXZGltV2ZBVzJTTkVLY0RhWDJGbUJMTEEvdUt4bG1oaDYxM0lzMVVSUUFwYktmdHR3eEwwMnE2T254NXBReFNiUG9qQWcrdjVoQW5ONkxIVlJEWElzdkt0UmppUzBxSlV5WlRBWFZiQUs4MkVsRkpXYVFkVm9xVUMxVW50N0JWYVRRdWRNNlN1cWV4alFKTjQrMGljYXh2L3V0Ykt2ODNFVGJUOEg4Z2pjT0t4T0ptYlVhNk9PVlhodDNkRlk2ckh2OVhvTnpGTGNlRUExbzgrcEttMExBSFBIWjJyWUtqRnEwaGZaRml4c3FISmdEM2VENW4rVTBrYjFtRmpYa24ybHZNU1NPc05FL0NkSUFLRjBTeXRxNnVyT0hVTjVnd2c0R1pvc2dibWdnTTV1Y3JhMnFyUzJJZzFjYmlCQmN4WXpnelVETkxDdkw4R2JaWE5wNk9SeTNMbVMrS2s4M3pSSUFLNkExaW9LYTJJOU5hcEl1aVVGZGZDOTc2NlBGWlV0cVVyNktiV2srelpVMWEvWnJJWEV6dHJqVE9mejdod0t6aUNlWElhcmFIdGJaSU16KzJwR2dhekNtdzRxV0FGdkVkaG9kWXAwWHEwcFY3RzFZV1lXYk80cWhHcTQyK1o4Qll0ckxXdmx1TlBwWkFlYUZGUzF2dWJQZ2JneHNxY3BuQWFzekJvdkthRm9EUThCR3RqZlVPbDROQUcybm1RVjA0ZmVKZ3VtdlgyZnNyUUVXWmdoTDBKblZkWWtuM0RPWkllUk44NlJxUFdDbXN2R1ZxRU1Sbnd4UUF4d1M4RU1ZbzNJem1ZMitCQ2NMcDRNS2l1eXVoSW1hbWxiWkZjTm9ObDd0cCtSSGQxOFpqUUlSS3lYZEZSaE45OC9oeUtxd1hXTm83TzF3aWFYb0hOMTA4UkVaWldFcTZncm5JZmp6ZWc4amRSZjFYRUw0a2tYYTViQmpLeG9LYWxqQmplSGxWeFE0R2F5Y3BXNGxET0FLdG5UeEhBdE9mek90WndIQU03c3FWWGtWNnl1NmthcDFuSGtYS3FXRi80WEhxamVuTktxQmpwUjNsMWNoM0VqZzErRXNnZFFoc2RHMEI0Rk05c1dBVldwdUF5aXdUUGxlWnh0OVZ5WlZTMnFYZlJlV3FUQWlscHI5QXBvV1RqeHltaXQ3TndWNEpUcmlaeU9BOUIwazdIRmZVTG91cm1LWUhWblJRdnFHTDVITUhkcUZjUjJxV3BtY0s2ZVR3eDJkaXBXcnZpRGlscitmS1dxM09XUldkSEt3QTRldTh3amNoYmVSekZpbHFqalpOM3VmQ3Bma0owL3NjVnBuWWs2TDBQSTc3bHhkV0NaODdXaVdtN0IvQUdxdVFTbnVqR0tzQjhDSm1pSnE4cTFwS0lWV3lxT2lUSzY2cjE4Qk44cjc0L0FFNzFmZEMzeVBTMk14ZE9wbkUxdGxWeEQ5Sm1WT29nZ04rcjRQakFYVkZQYTNFZzVqVkpHRlZVR05vbEgyMEdWclVCN0JPeVNXcTZXcVlRZFdSOTJwY0ZNWU13Y2tiU2dDS0NxRDY3RGlpV3UxZzhNUUM5QnlmY0ZxVzFMK2pMNzE0cU5DdXpub1N4dDBkYTJndFdOMUc4RjBCSzBOTjBudWltZWxVRjlkSWRBZmpPNDRVVDNDalFMb1VlTEhKRlRPM2dtcFJ1SUlPdndCUUNicU5lbzNxdFo5aUY2eFZLMTNHUmxvNHpxaW1xK0NHZFRpUjF1Ulk4b3FnRTAyaFpCYTc5a1pYUE1xdXhSSEtsYTJzYVpXTjRtUnFaVWowdkxDS2hraktucU9RSE51U1pWSm9LdkFxUzF3cEVxdXZXREMxQjJ5cHdyQ1BzUk1FUFZUT0RNTEpNRHY2cWVLWHdpMkpZVjVTcTRxS3l2Z0dzSENMaXVqMmpSNTlWOGdNcVNKMkZKWlJYRUhWUkhqM3NGUHJjdDZPcHFsVzFHcGF0UWR0MEd2d2ZNNm42M0luc0dWRmhKR2FCcWdxcUlWNklzWGxsWmd5U1BxNFIzYm50M3dpNWN2K2NOMnlxUUxXMVQ5NUtZVnNXV3RLazRjQjlXNTNXUVFmbFFZUjZXbDRIYUpaanZWRTBENXl2cStSS2daQ3M1cWRCRVA1c0Q5NGNBdlFMbFNnTmFTTUF0SHg4OEJ1TlE0MXpkRnNYMzB6S2JjczBNTEQvaWhrcFF6bDB3aVRxS0xUZmJLbUNteVlJQ25LMEliYWllQzRDRzlpU3lMUTdjSU1HUXdhdTZUS29xNjBBcGwzV040MExacGNhMUNLS0s5VlF5eUlFbjh3MEY4RjZDTDJoOG8zaXhHd0M3czdFV3pDT3FtY0FwWXhZRDRqc0F6VlMwc2wydDk4cEE3dnJLb3BoQ1ZTb25iWXBnSDZtdlNuMjRwVEJWNHNkdFYzQnRNcTVrODJ5K0lBRHZVSjB1QWxrQ1ZUeElhUG0rVU51L3FrVjRGMVR6SFhDR3JYSUFxSXRCS3lwcUs5OVZ0QU9WczY0TzRPYlg3cEhMVkNwWUhjUm13dkxSN1R2WUFLQkJONThMR1Z6RHVGeitoUWJXZ25jUXlDWkFrK1Zic1BTb3VmOTMyNjFpWmdtZkNwd1JiQXZxbVNxcmlVMlB3aGphb095WXF0SWVnVlhWaVRzbXl0YTZiR3lTcFkzZ3lScnBJeUFlYVdERHh0cHNYd0t5YWxNREtOUDdZQlhNcUVza1VzaTJ1QzhGTkFQeEFLVFZmVDFvNlZ6TTBFMGpGKzFyV2NVdUh2ZHlnN3Znb0ZwbFg4SHB2SHBNQ09NUlVQSHpaa0luc3FsRktOWC9FSU81MkUwU3hTek93b2IyVm1STFc1RDFYSVUwcmJnTTFBeldneUM3ZmU4Rzd4VUFLL3RhRUJhdDdsdXF0eVA3RW1zYUpRT2o1Rittcm5aZkN1WUNmQlVBV3dTaHlkNnBNWS92QUhHMVVxT1lwYkkvZ3k1VDBDTUttK1VPM2dGdUM4NWRnZkRWZWd1UERmSVRySUJMc0xyY2dkaDNDRmdGWmphS0o0SXYzRjhBTkVxdnV4UjF0VktPZ0xvQ2Exanhib0JBa2o2djdqL2ljRmJBN2Y0cmZSblFETFJWaUcxM2kwdnFCUXJZVnFCYkFEWlQwWnBpSG9TenZRcG9wS0lGUzNzRTFIZkJXbEhYZDBIN0xuQXJxdm91Z010bGpIQmdabmgzRW96L0JLakxNTDRaMkFxMCtoRUpyOWphVlVCYnZOekNJVWlyb0M3QVdtbUZ3NG81QUszTXRCNVZ5cFpNU0ZnczA1SnlHVndsd0Jxc0VHQUFhMlpVMUNqVWV4WEdzRTRyS3JpaWxCdkZ6T0tLbzNBdUFyb0U2UUZRVTN1OFlwTlh3UzVrKzFUWnQ1VXJ3b3VONEtpVUV3K2szWldEcDFSWEhOUnFYYjIxVHMzOTk0NXlaU2czVm5aRk5ROUNGM1hlWnlyNURnQlhLaXdDTWEyTXhlVERZWGdQMUZzZjlRTktaYzBrODFSSmszcjZFUTNyQ21CVnlMTDc1RWpaMXBJVkRIb0Z0aU9BSG9CMEJkVFZ5bHFCc0tLS1MrQWVCWEpWTFkrQ1hBU3VHdk8vQXVxN0d1RWpEZkdLZzFvS2Exei9kbW1pOUk5U1VHTmhsMEF0ZnVsSEFhd29Zcm5Ta21OWEFWdUdFaHJFVlh2VUYrQTVDdDJQcU5PakRldHluYTRDbWVVb2xtZVhMTjRBcTdDNVNqMTBRN3lqZ2wrdDZDTnhTUkhtSTVYK0Nwd3JlWUIzUWZkcW5hNHEyMUtkQnVjNEdvWnNuNDlaT09pVmlud0hxSzlXemp2Z2V3ZUVoMkFVNSt2dHhaOUNkOVdxa2g0OVYxOEU1b2o2dlZ5bjBSU3RBeUdJTzVlZFhSS2Q1QjBWR1ZYcTJ5cjN4WXArNVV0K0M0UUo0UDFOMzM5cFFNalJlamo0dmIvRGNyNnJRYzNPLzByam10WnBlWUNCaUNIZkNlbVJiTmhiSy9wTlVQYzN3Zkt5NWYyRDdPbEwzL3VQaHZlL29VNFQwRjhmK1ZOTTJ2eW9pdjBqSytLSFFmZEhxKzBibmN6NG96NzMvK1k2TGJLdzFvLzVCN2VPZjFSbC8wZHU5Qjl0bi85YnZyZi9qK3YwaDZ0dG4ydHAvci80ODE5eTQvenY1MzkxdXZ6emZ3RGlmejZwaFQxTVBnQUFBQUJKUlU1RXJrSmdnZz09Iik7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtkaXJlY3Rpb246bHRyO2hlaWdodDoxMzBweDt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAuY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzc3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lO21hcmdpbjozcHggLTNweDtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGV9LmNvbG9yLXBpY2tlciAuY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzczpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5jb2xvci1waWNrZXIgLmNwLWFkZC1jb2xvci1idXR0b24tY2xhc3M6ZGlzYWJsZWR7Y29sb3I6Izk5OTtjdXJzb3I6bm90LWFsbG93ZWR9LmNvbG9yLXBpY2tlciAuY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzczpkaXNhYmxlZDpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZX0uY29sb3ItcGlja2VyIC5jcC1yZW1vdmUtY29sb3ItYnV0dG9uLWNsYXNze2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTtib3gtc2hhZG93OjFweCAxcHggNXB4ICMzMzM7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotNXB4O3RleHQtYWxpZ246Y2VudGVyO3RvcDotNXB4O3dpZHRoOjEwcHh9LmNvbG9yLXBpY2tlciAuY3AtcmVtb3ZlLWNvbG9yLWJ1dHRvbi1jbGFzczpiZWZvcmV7Ym90dG9tOjMuNXB4O2NvbnRlbnQ6IngiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxMHB4O3Bvc2l0aW9uOnJlbGF0aXZlfSddfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTpnM31dfSkse2hhbmRsZUVzYzpbe3R5cGU6d3ksYXJnczpbImRvY3VtZW50OmtleXVwLmVzYyIsWyIkZXZlbnQiXV19XSxoYW5kbGVFbnRlcjpbe3R5cGU6d3ksYXJnczpbImRvY3VtZW50OmtleXVwLmVudGVyIixbIiRldmVudCJdXX1dLGRpYWxvZ0VsZW1lbnQ6W3t0eXBlOlphLGFyZ3M6WyJkaWFsb2dQb3B1cCIse3N0YXRpYzohMH1dfV0saHVlU2xpZGVyOlt7dHlwZTpaYSxhcmdzOlsiaHVlU2xpZGVyIix7c3RhdGljOiEwfV19XSxhbHBoYVNsaWRlcjpbe3R5cGU6WmEsYXJnczpbImFscGhhU2xpZGVyIix7c3RhdGljOiEwfV19XX0pO2NsYXNzIGIze2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhKXt0aGlzLmluamVjdG9yPXQsdGhpcy5jZnI9ZSx0aGlzLmFwcFJlZj1uLHRoaXMudmNSZWY9byx0aGlzLmVsUmVmPWksdGhpcy5fc2VydmljZT1hLHRoaXMuZGlhbG9nQ3JlYXRlZD0hMSx0aGlzLmlnbm9yZUNoYW5nZXM9ITEsdGhpcy52aWV3QXR0YWNoZWRUb0FwcFJlZj0hMSx0aGlzLmNwV2lkdGg9IjIzMHB4Iix0aGlzLmNwSGVpZ2h0PSJhdXRvIix0aGlzLmNwVG9nZ2xlPSExLHRoaXMuY3BEaXNhYmxlZD0hMSx0aGlzLmNwSWdub3JlZEVsZW1lbnRzPVtdLHRoaXMuY3BGYWxsYmFja0NvbG9yPSIiLHRoaXMuY3BDb2xvck1vZGU9ImNvbG9yIix0aGlzLmNwQ215a0VuYWJsZWQ9ITEsdGhpcy5jcE91dHB1dEZvcm1hdD0iYXV0byIsdGhpcy5jcEFscGhhQ2hhbm5lbD0iZW5hYmxlZCIsdGhpcy5jcERpc2FibGVJbnB1dD0hMSx0aGlzLmNwRGlhbG9nRGlzcGxheT0icG9wdXAiLHRoaXMuY3BTYXZlQ2xpY2tPdXRzaWRlPSEwLHRoaXMuY3BDbG9zZUNsaWNrT3V0c2lkZT0hMCx0aGlzLmNwVXNlUm9vdFZpZXdDb250YWluZXI9ITEsdGhpcy5jcFBvc2l0aW9uPSJhdXRvIix0aGlzLmNwUG9zaXRpb25PZmZzZXQ9IjAlIix0aGlzLmNwUG9zaXRpb25SZWxhdGl2ZVRvQXJyb3c9ITEsdGhpcy5jcE9LQnV0dG9uPSExLHRoaXMuY3BPS0J1dHRvblRleHQ9Ik9LIix0aGlzLmNwT0tCdXR0b25DbGFzcz0iY3Atb2stYnV0dG9uLWNsYXNzIix0aGlzLmNwQ2FuY2VsQnV0dG9uPSExLHRoaXMuY3BDYW5jZWxCdXR0b25UZXh0PSJDYW5jZWwiLHRoaXMuY3BDYW5jZWxCdXR0b25DbGFzcz0iY3AtY2FuY2VsLWJ1dHRvbi1jbGFzcyIsdGhpcy5jcFByZXNldExhYmVsPSJQcmVzZXQgY29sb3JzIix0aGlzLmNwUHJlc2V0Q29sb3JzQ2xhc3M9ImNwLXByZXNldC1jb2xvcnMtY2xhc3MiLHRoaXMuY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGg9Nix0aGlzLmNwUHJlc2V0RW1wdHlNZXNzYWdlPSJObyBjb2xvcnMgYWRkZWQiLHRoaXMuY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzcz0icHJlc2V0LWVtcHR5LW1lc3NhZ2UiLHRoaXMuY3BBZGRDb2xvckJ1dHRvbj0hMSx0aGlzLmNwQWRkQ29sb3JCdXR0b25UZXh0PSJBZGQgY29sb3IiLHRoaXMuY3BBZGRDb2xvckJ1dHRvbkNsYXNzPSJjcC1hZGQtY29sb3ItYnV0dG9uLWNsYXNzIix0aGlzLmNwUmVtb3ZlQ29sb3JCdXR0b25DbGFzcz0iY3AtcmVtb3ZlLWNvbG9yLWJ1dHRvbi1jbGFzcyIsdGhpcy5jcElucHV0Q2hhbmdlPW5ldyBMaCghMCksdGhpcy5jcFRvZ2dsZUNoYW5nZT1uZXcgTGgoITApLHRoaXMuY3BTbGlkZXJDaGFuZ2U9bmV3IExoKCEwKSx0aGlzLmNwU2xpZGVyRHJhZ0VuZD1uZXcgTGgoITApLHRoaXMuY3BTbGlkZXJEcmFnU3RhcnQ9bmV3IExoKCEwKSx0aGlzLmNvbG9yUGlja2VyT3Blbj1uZXcgTGgoITApLHRoaXMuY29sb3JQaWNrZXJDbG9zZT1uZXcgTGgoITApLHRoaXMuY29sb3JQaWNrZXJDYW5jZWw9bmV3IExoKCEwKSx0aGlzLmNvbG9yUGlja2VyU2VsZWN0PW5ldyBMaCghMCksdGhpcy5jb2xvclBpY2tlckNoYW5nZT1uZXcgTGgoITEpLHRoaXMuY3BDbXlrQ29sb3JDaGFuZ2U9bmV3IExoKCEwKSx0aGlzLmNwUHJlc2V0Q29sb3JzQ2hhbmdlPW5ldyBMaCghMCl9aGFuZGxlQ2xpY2soKXt0aGlzLmlucHV0Rm9jdXMoKX1oYW5kbGVGb2N1cygpe3RoaXMuaW5wdXRGb2N1cygpfWhhbmRsZUlucHV0KHQpe3RoaXMuaW5wdXRDaGFuZ2UodCl9bmdPbkRlc3Ryb3koKXtudWxsIT10aGlzLmNtcFJlZiYmKHRoaXMudmlld0F0dGFjaGVkVG9BcHBSZWYmJnRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5jbXBSZWYuaG9zdFZpZXcpLHRoaXMuY21wUmVmLmRlc3Ryb3koKSx0aGlzLmNtcFJlZj1udWxsLHRoaXMuZGlhbG9nPW51bGwpfW5nT25DaGFuZ2VzKHQpe3QuY3BUb2dnbGUmJiF0aGlzLmNwRGlzYWJsZWQmJih0LmNwVG9nZ2xlLmN1cnJlbnRWYWx1ZT90aGlzLm9wZW5EaWFsb2coKTp0LmNwVG9nZ2xlLmN1cnJlbnRWYWx1ZXx8dGhpcy5jbG9zZURpYWxvZygpKSx0LmNvbG9yUGlja2VyJiYodGhpcy5kaWFsb2cmJiF0aGlzLmlnbm9yZUNoYW5nZXMmJigiaW5saW5lIj09PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiZ0aGlzLmRpYWxvZy5zZXRJbml0aWFsQ29sb3IodC5jb2xvclBpY2tlci5jdXJyZW50VmFsdWUpLHRoaXMuZGlhbG9nLnNldENvbG9yRnJvbVN0cmluZyh0LmNvbG9yUGlja2VyLmN1cnJlbnRWYWx1ZSwhMSksdGhpcy5jcFVzZVJvb3RWaWV3Q29udGFpbmVyJiYiaW5saW5lIiE9PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiZ0aGlzLmNtcFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCkpLHRoaXMuaWdub3JlQ2hhbmdlcz0hMSksKHQuY3BQcmVzZXRMYWJlbHx8dC5jcFByZXNldENvbG9ycykmJnRoaXMuZGlhbG9nJiZ0aGlzLmRpYWxvZy5zZXRQcmVzZXRDb25maWcodGhpcy5jcFByZXNldExhYmVsLHRoaXMuY3BQcmVzZXRDb2xvcnMpfW9wZW5EaWFsb2coKXtpZih0aGlzLmRpYWxvZ0NyZWF0ZWQpdGhpcy5kaWFsb2cmJnRoaXMuZGlhbG9nLm9wZW5EaWFsb2codGhpcy5jb2xvclBpY2tlcik7ZWxzZXtsZXQgdD10aGlzLnZjUmVmO2lmKHRoaXMuZGlhbG9nQ3JlYXRlZD0hMCx0aGlzLnZpZXdBdHRhY2hlZFRvQXBwUmVmPSExLHRoaXMuY3BVc2VSb290Vmlld0NvbnRhaW5lciYmImlubGluZSIhPT10aGlzLmNwRGlhbG9nRGlzcGxheSl7Y29uc3QgZT10aGlzLmluamVjdG9yLmdldCh0aGlzLmFwcFJlZi5jb21wb25lbnRUeXBlc1swXSxycC5OVUxMKTtlIT09cnAuTlVMTD8odD1lLnZjUmVmfHxlLnZpZXdDb250YWluZXJSZWZ8fHRoaXMudmNSZWYsdD09PXRoaXMudmNSZWYmJmNvbnNvbGUud2FybigiWW91IGFyZSB1c2luZyBjcFVzZVJvb3RWaWV3Q29udGFpbmVyLCBidXQgdGhlIHJvb3QgY29tcG9uZW50IGlzIG5vdCBleHBvc2luZyB2aWV3Q29udGFpbmVyUmVmIVBsZWFzZSBleHBvc2UgaXQgYnkgYWRkaW5nICdwdWJsaWMgdmNSZWY6IFZpZXdDb250YWluZXJSZWYnIHRvIHRoZSBjb25zdHJ1Y3Rvci4iKSk6dGhpcy52aWV3QXR0YWNoZWRUb0FwcFJlZj0hMH1jb25zdCBlPXRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGgzKTtpZih0aGlzLnZpZXdBdHRhY2hlZFRvQXBwUmVmKXRoaXMuY21wUmVmPWUuY3JlYXRlKHRoaXMuaW5qZWN0b3IpLHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jbXBSZWYuaG9zdFZpZXcpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5jbXBSZWYuaG9zdFZpZXcucm9vdE5vZGVzWzBdKTtlbHNle2NvbnN0IG49d20uZnJvbVJlc29sdmVkUHJvdmlkZXJzKFtdLHQucGFyZW50SW5qZWN0b3IpO3RoaXMuY21wUmVmPXQuY3JlYXRlQ29tcG9uZW50KGUsMCxuLFtdKX10aGlzLmNtcFJlZi5pbnN0YW5jZS5zZXR1cERpYWxvZyh0aGlzLHRoaXMuZWxSZWYsdGhpcy5jb2xvclBpY2tlcix0aGlzLmNwV2lkdGgsdGhpcy5jcEhlaWdodCx0aGlzLmNwRGlhbG9nRGlzcGxheSx0aGlzLmNwRmFsbGJhY2tDb2xvcix0aGlzLmNwQ29sb3JNb2RlLHRoaXMuY3BDbXlrRW5hYmxlZCx0aGlzLmNwQWxwaGFDaGFubmVsLHRoaXMuY3BPdXRwdXRGb3JtYXQsdGhpcy5jcERpc2FibGVJbnB1dCx0aGlzLmNwSWdub3JlZEVsZW1lbnRzLHRoaXMuY3BTYXZlQ2xpY2tPdXRzaWRlLHRoaXMuY3BDbG9zZUNsaWNrT3V0c2lkZSx0aGlzLmNwVXNlUm9vdFZpZXdDb250YWluZXIsdGhpcy5jcFBvc2l0aW9uLHRoaXMuY3BQb3NpdGlvbk9mZnNldCx0aGlzLmNwUG9zaXRpb25SZWxhdGl2ZVRvQXJyb3csdGhpcy5jcFByZXNldExhYmVsLHRoaXMuY3BQcmVzZXRDb2xvcnMsdGhpcy5jcFByZXNldENvbG9yc0NsYXNzLHRoaXMuY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGgsdGhpcy5jcFByZXNldEVtcHR5TWVzc2FnZSx0aGlzLmNwUHJlc2V0RW1wdHlNZXNzYWdlQ2xhc3MsdGhpcy5jcE9LQnV0dG9uLHRoaXMuY3BPS0J1dHRvbkNsYXNzLHRoaXMuY3BPS0J1dHRvblRleHQsdGhpcy5jcENhbmNlbEJ1dHRvbix0aGlzLmNwQ2FuY2VsQnV0dG9uQ2xhc3MsdGhpcy5jcENhbmNlbEJ1dHRvblRleHQsdGhpcy5jcEFkZENvbG9yQnV0dG9uLHRoaXMuY3BBZGRDb2xvckJ1dHRvbkNsYXNzLHRoaXMuY3BBZGRDb2xvckJ1dHRvblRleHQsdGhpcy5jcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3MsdGhpcy5lbFJlZiksdGhpcy5kaWFsb2c9dGhpcy5jbXBSZWYuaW5zdGFuY2UsdGhpcy52Y1JlZiE9PXQmJnRoaXMuY21wUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKX19Y2xvc2VEaWFsb2coKXt0aGlzLmRpYWxvZyYmInBvcHVwIj09PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiZ0aGlzLmRpYWxvZy5jbG9zZURpYWxvZygpfWNteWtDaGFuZ2VkKHQpe3RoaXMuY3BDbXlrQ29sb3JDaGFuZ2UuZW1pdCh0KX1zdGF0ZUNoYW5nZWQodCl7dGhpcy5jcFRvZ2dsZUNoYW5nZS5lbWl0KHQpLHQ/dGhpcy5jb2xvclBpY2tlck9wZW4uZW1pdCh0aGlzLmNvbG9yUGlja2VyKTp0aGlzLmNvbG9yUGlja2VyQ2xvc2UuZW1pdCh0aGlzLmNvbG9yUGlja2VyKX1jb2xvckNoYW5nZWQodCxlPSEwKXt0aGlzLmlnbm9yZUNoYW5nZXM9ZSx0aGlzLmNvbG9yUGlja2VyQ2hhbmdlLmVtaXQodCl9Y29sb3JTZWxlY3RlZCh0KXt0aGlzLmNvbG9yUGlja2VyU2VsZWN0LmVtaXQodCl9Y29sb3JDYW5jZWxlZCgpe3RoaXMuY29sb3JQaWNrZXJDYW5jZWwuZW1pdCgpfWlucHV0Rm9jdXMoKXtjb25zdCB0PXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxlPXRoaXMuY3BJZ25vcmVkRWxlbWVudHMuZmlsdGVyKChlPT5lPT09dCkpO3RoaXMuY3BEaXNhYmxlZHx8ZS5sZW5ndGh8fCgidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiZ0PT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD90aGlzLm9wZW5EaWFsb2coKTp0aGlzLmRpYWxvZyYmdGhpcy5kaWFsb2cuc2hvdz90aGlzLmNsb3NlRGlhbG9nKCk6dGhpcy5vcGVuRGlhbG9nKCkpfWlucHV0Q2hhbmdlKHQpe3RoaXMuZGlhbG9nP3RoaXMuZGlhbG9nLnNldENvbG9yRnJvbVN0cmluZyh0LnRhcmdldC52YWx1ZSwhMCk6KHRoaXMuY29sb3JQaWNrZXI9dC50YXJnZXQudmFsdWUsdGhpcy5jb2xvclBpY2tlckNoYW5nZS5lbWl0KHRoaXMuY29sb3JQaWNrZXIpKX1pbnB1dENoYW5nZWQodCl7dGhpcy5jcElucHV0Q2hhbmdlLmVtaXQodCl9c2xpZGVyQ2hhbmdlZCh0KXt0aGlzLmNwU2xpZGVyQ2hhbmdlLmVtaXQodCl9c2xpZGVyRHJhZ0VuZCh0KXt0aGlzLmNwU2xpZGVyRHJhZ0VuZC5lbWl0KHQpfXNsaWRlckRyYWdTdGFydCh0KXt0aGlzLmNwU2xpZGVyRHJhZ1N0YXJ0LmVtaXQodCl9cHJlc2V0Q29sb3JzQ2hhbmdlZCh0KXt0aGlzLmNwUHJlc2V0Q29sb3JzQ2hhbmdlLmVtaXQodCl9fWIzLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxiMykoU20ocnApLFNtKHVnKSxTbShPXyksU20oZWgpLFNtKGhnKSxTbShnMykpfSxiMy7JtWRpcj1sbyh7dHlwZTpiMyxzZWxlY3RvcnM6W1siIiwiY29sb3JQaWNrZXIiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5oYW5kbGVDbGljaygpfSkpKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5oYW5kbGVGb2N1cygpfSkpKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uaGFuZGxlSW5wdXQoZSl9KSl9LGlucHV0czp7Y3BXaWR0aDoiY3BXaWR0aCIsY3BIZWlnaHQ6ImNwSGVpZ2h0IixjcFRvZ2dsZToiY3BUb2dnbGUiLGNwRGlzYWJsZWQ6ImNwRGlzYWJsZWQiLGNwSWdub3JlZEVsZW1lbnRzOiJjcElnbm9yZWRFbGVtZW50cyIsY3BGYWxsYmFja0NvbG9yOiJjcEZhbGxiYWNrQ29sb3IiLGNwQ29sb3JNb2RlOiJjcENvbG9yTW9kZSIsY3BDbXlrRW5hYmxlZDoiY3BDbXlrRW5hYmxlZCIsY3BPdXRwdXRGb3JtYXQ6ImNwT3V0cHV0Rm9ybWF0IixjcEFscGhhQ2hhbm5lbDoiY3BBbHBoYUNoYW5uZWwiLGNwRGlzYWJsZUlucHV0OiJjcERpc2FibGVJbnB1dCIsY3BEaWFsb2dEaXNwbGF5OiJjcERpYWxvZ0Rpc3BsYXkiLGNwU2F2ZUNsaWNrT3V0c2lkZToiY3BTYXZlQ2xpY2tPdXRzaWRlIixjcENsb3NlQ2xpY2tPdXRzaWRlOiJjcENsb3NlQ2xpY2tPdXRzaWRlIixjcFVzZVJvb3RWaWV3Q29udGFpbmVyOiJjcFVzZVJvb3RWaWV3Q29udGFpbmVyIixjcFBvc2l0aW9uOiJjcFBvc2l0aW9uIixjcFBvc2l0aW9uT2Zmc2V0OiJjcFBvc2l0aW9uT2Zmc2V0IixjcFBvc2l0aW9uUmVsYXRpdmVUb0Fycm93OiJjcFBvc2l0aW9uUmVsYXRpdmVUb0Fycm93IixjcE9LQnV0dG9uOiJjcE9LQnV0dG9uIixjcE9LQnV0dG9uVGV4dDoiY3BPS0J1dHRvblRleHQiLGNwT0tCdXR0b25DbGFzczoiY3BPS0J1dHRvbkNsYXNzIixjcENhbmNlbEJ1dHRvbjoiY3BDYW5jZWxCdXR0b24iLGNwQ2FuY2VsQnV0dG9uVGV4dDoiY3BDYW5jZWxCdXR0b25UZXh0IixjcENhbmNlbEJ1dHRvbkNsYXNzOiJjcENhbmNlbEJ1dHRvbkNsYXNzIixjcFByZXNldExhYmVsOiJjcFByZXNldExhYmVsIixjcFByZXNldENvbG9yc0NsYXNzOiJjcFByZXNldENvbG9yc0NsYXNzIixjcE1heFByZXNldENvbG9yc0xlbmd0aDoiY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGgiLGNwUHJlc2V0RW1wdHlNZXNzYWdlOiJjcFByZXNldEVtcHR5TWVzc2FnZSIsY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzczoiY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzcyIsY3BBZGRDb2xvckJ1dHRvbjoiY3BBZGRDb2xvckJ1dHRvbiIsY3BBZGRDb2xvckJ1dHRvblRleHQ6ImNwQWRkQ29sb3JCdXR0b25UZXh0IixjcEFkZENvbG9yQnV0dG9uQ2xhc3M6ImNwQWRkQ29sb3JCdXR0b25DbGFzcyIsY3BSZW1vdmVDb2xvckJ1dHRvbkNsYXNzOiJjcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3MiLGNvbG9yUGlja2VyOiJjb2xvclBpY2tlciIsY3BQcmVzZXRDb2xvcnM6ImNwUHJlc2V0Q29sb3JzIn0sb3V0cHV0czp7Y3BJbnB1dENoYW5nZToiY3BJbnB1dENoYW5nZSIsY3BUb2dnbGVDaGFuZ2U6ImNwVG9nZ2xlQ2hhbmdlIixjcFNsaWRlckNoYW5nZToiY3BTbGlkZXJDaGFuZ2UiLGNwU2xpZGVyRHJhZ0VuZDoiY3BTbGlkZXJEcmFnRW5kIixjcFNsaWRlckRyYWdTdGFydDoiY3BTbGlkZXJEcmFnU3RhcnQiLGNvbG9yUGlja2VyT3BlbjoiY29sb3JQaWNrZXJPcGVuIixjb2xvclBpY2tlckNsb3NlOiJjb2xvclBpY2tlckNsb3NlIixjb2xvclBpY2tlckNhbmNlbDoiY29sb3JQaWNrZXJDYW5jZWwiLGNvbG9yUGlja2VyU2VsZWN0OiJjb2xvclBpY2tlclNlbGVjdCIsY29sb3JQaWNrZXJDaGFuZ2U6ImNvbG9yUGlja2VyQ2hhbmdlIixjcENteWtDb2xvckNoYW5nZToiY3BDbXlrQ29sb3JDaGFuZ2UiLGNwUHJlc2V0Q29sb3JzQ2hhbmdlOiJjcFByZXNldENvbG9yc0NoYW5nZSJ9LGV4cG9ydEFzOlsibmd4Q29sb3JQaWNrZXIiXSxmZWF0dXJlczpbQm9dfSksYjMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpycH0se3R5cGU6dWd9LHt0eXBlOk9ffSx7dHlwZTplaH0se3R5cGU6aGd9LHt0eXBlOmczfV0sYjMucHJvcERlY29yYXRvcnM9e2NvbG9yUGlja2VyOlt7dHlwZTp4eX1dLGNwV2lkdGg6W3t0eXBlOnh5fV0sY3BIZWlnaHQ6W3t0eXBlOnh5fV0sY3BUb2dnbGU6W3t0eXBlOnh5fV0sY3BEaXNhYmxlZDpbe3R5cGU6eHl9XSxjcElnbm9yZWRFbGVtZW50czpbe3R5cGU6eHl9XSxjcEZhbGxiYWNrQ29sb3I6W3t0eXBlOnh5fV0sY3BDb2xvck1vZGU6W3t0eXBlOnh5fV0sY3BDbXlrRW5hYmxlZDpbe3R5cGU6eHl9XSxjcE91dHB1dEZvcm1hdDpbe3R5cGU6eHl9XSxjcEFscGhhQ2hhbm5lbDpbe3R5cGU6eHl9XSxjcERpc2FibGVJbnB1dDpbe3R5cGU6eHl9XSxjcERpYWxvZ0Rpc3BsYXk6W3t0eXBlOnh5fV0sY3BTYXZlQ2xpY2tPdXRzaWRlOlt7dHlwZTp4eX1dLGNwQ2xvc2VDbGlja091dHNpZGU6W3t0eXBlOnh5fV0sY3BVc2VSb290Vmlld0NvbnRhaW5lcjpbe3R5cGU6eHl9XSxjcFBvc2l0aW9uOlt7dHlwZTp4eX1dLGNwUG9zaXRpb25PZmZzZXQ6W3t0eXBlOnh5fV0sY3BQb3NpdGlvblJlbGF0aXZlVG9BcnJvdzpbe3R5cGU6eHl9XSxjcE9LQnV0dG9uOlt7dHlwZTp4eX1dLGNwT0tCdXR0b25UZXh0Olt7dHlwZTp4eX1dLGNwT0tCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcENhbmNlbEJ1dHRvbjpbe3R5cGU6eHl9XSxjcENhbmNlbEJ1dHRvblRleHQ6W3t0eXBlOnh5fV0sY3BDYW5jZWxCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcFByZXNldExhYmVsOlt7dHlwZTp4eX1dLGNwUHJlc2V0Q29sb3JzOlt7dHlwZTp4eX1dLGNwUHJlc2V0Q29sb3JzQ2xhc3M6W3t0eXBlOnh5fV0sY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGg6W3t0eXBlOnh5fV0sY3BQcmVzZXRFbXB0eU1lc3NhZ2U6W3t0eXBlOnh5fV0sY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzczpbe3R5cGU6eHl9XSxjcEFkZENvbG9yQnV0dG9uOlt7dHlwZTp4eX1dLGNwQWRkQ29sb3JCdXR0b25UZXh0Olt7dHlwZTp4eX1dLGNwQWRkQ29sb3JCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3M6W3t0eXBlOnh5fV0sY3BJbnB1dENoYW5nZTpbe3R5cGU6T3l9XSxjcFRvZ2dsZUNoYW5nZTpbe3R5cGU6T3l9XSxjcFNsaWRlckNoYW5nZTpbe3R5cGU6T3l9XSxjcFNsaWRlckRyYWdFbmQ6W3t0eXBlOk95fV0sY3BTbGlkZXJEcmFnU3RhcnQ6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJPcGVuOlt7dHlwZTpPeX1dLGNvbG9yUGlja2VyQ2xvc2U6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJDYW5jZWw6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJTZWxlY3Q6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJDaGFuZ2U6W3t0eXBlOk95fV0sY3BDbXlrQ29sb3JDaGFuZ2U6W3t0eXBlOk95fV0sY3BQcmVzZXRDb2xvcnNDaGFuZ2U6W3t0eXBlOk95fV0saGFuZGxlQ2xpY2s6W3t0eXBlOnd5LGFyZ3M6WyJjbGljayJdfV0saGFuZGxlRm9jdXM6W3t0eXBlOnd5LGFyZ3M6WyJmb2N1cyJdfV0saGFuZGxlSW5wdXQ6W3t0eXBlOnd5LGFyZ3M6WyJpbnB1dCIsWyIkZXZlbnQiXV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChiMyxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY29sb3JQaWNrZXJdIixleHBvcnRBczoibmd4Q29sb3JQaWNrZXIifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6cnB9LHt0eXBlOnVnfSx7dHlwZTpPX30se3R5cGU6ZWh9LHt0eXBlOmhnfSx7dHlwZTpnM31dfSkse2NwV2lkdGg6W3t0eXBlOnh5fV0sY3BIZWlnaHQ6W3t0eXBlOnh5fV0sY3BUb2dnbGU6W3t0eXBlOnh5fV0sY3BEaXNhYmxlZDpbe3R5cGU6eHl9XSxjcElnbm9yZWRFbGVtZW50czpbe3R5cGU6eHl9XSxjcEZhbGxiYWNrQ29sb3I6W3t0eXBlOnh5fV0sY3BDb2xvck1vZGU6W3t0eXBlOnh5fV0sY3BDbXlrRW5hYmxlZDpbe3R5cGU6eHl9XSxjcE91dHB1dEZvcm1hdDpbe3R5cGU6eHl9XSxjcEFscGhhQ2hhbm5lbDpbe3R5cGU6eHl9XSxjcERpc2FibGVJbnB1dDpbe3R5cGU6eHl9XSxjcERpYWxvZ0Rpc3BsYXk6W3t0eXBlOnh5fV0sY3BTYXZlQ2xpY2tPdXRzaWRlOlt7dHlwZTp4eX1dLGNwQ2xvc2VDbGlja091dHNpZGU6W3t0eXBlOnh5fV0sY3BVc2VSb290Vmlld0NvbnRhaW5lcjpbe3R5cGU6eHl9XSxjcFBvc2l0aW9uOlt7dHlwZTp4eX1dLGNwUG9zaXRpb25PZmZzZXQ6W3t0eXBlOnh5fV0sY3BQb3NpdGlvblJlbGF0aXZlVG9BcnJvdzpbe3R5cGU6eHl9XSxjcE9LQnV0dG9uOlt7dHlwZTp4eX1dLGNwT0tCdXR0b25UZXh0Olt7dHlwZTp4eX1dLGNwT0tCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcENhbmNlbEJ1dHRvbjpbe3R5cGU6eHl9XSxjcENhbmNlbEJ1dHRvblRleHQ6W3t0eXBlOnh5fV0sY3BDYW5jZWxCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcFByZXNldExhYmVsOlt7dHlwZTp4eX1dLGNwUHJlc2V0Q29sb3JzQ2xhc3M6W3t0eXBlOnh5fV0sY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGg6W3t0eXBlOnh5fV0sY3BQcmVzZXRFbXB0eU1lc3NhZ2U6W3t0eXBlOnh5fV0sY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzczpbe3R5cGU6eHl9XSxjcEFkZENvbG9yQnV0dG9uOlt7dHlwZTp4eX1dLGNwQWRkQ29sb3JCdXR0b25UZXh0Olt7dHlwZTp4eX1dLGNwQWRkQ29sb3JCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3M6W3t0eXBlOnh5fV0sY3BJbnB1dENoYW5nZTpbe3R5cGU6T3l9XSxjcFRvZ2dsZUNoYW5nZTpbe3R5cGU6T3l9XSxjcFNsaWRlckNoYW5nZTpbe3R5cGU6T3l9XSxjcFNsaWRlckRyYWdFbmQ6W3t0eXBlOk95fV0sY3BTbGlkZXJEcmFnU3RhcnQ6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJPcGVuOlt7dHlwZTpPeX1dLGNvbG9yUGlja2VyQ2xvc2U6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJDYW5jZWw6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJTZWxlY3Q6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJDaGFuZ2U6W3t0eXBlOk95fV0sY3BDbXlrQ29sb3JDaGFuZ2U6W3t0eXBlOk95fV0sY3BQcmVzZXRDb2xvcnNDaGFuZ2U6W3t0eXBlOk95fV0saGFuZGxlQ2xpY2s6W3t0eXBlOnd5LGFyZ3M6WyJjbGljayJdfV0saGFuZGxlRm9jdXM6W3t0eXBlOnd5LGFyZ3M6WyJmb2N1cyJdfV0saGFuZGxlSW5wdXQ6W3t0eXBlOnd5LGFyZ3M6WyJpbnB1dCIsWyIkZXZlbnQiXV19XSxjb2xvclBpY2tlcjpbe3R5cGU6eHl9XSxjcFByZXNldENvbG9yczpbe3R5cGU6eHl9XX0pO2NsYXNzIHkze315My7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eTMpfSx5My7JtW1vZD1hbyh7dHlwZTp5M30pLHkzLsm1aW5qPXZuKHtwcm92aWRlcnM6W2czXSxpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeTMsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltXTV0sZXhwb3J0czpbYjNdLHByb3ZpZGVyczpbZzNdLGRlY2xhcmF0aW9uczpbaDMsYjMscDMsbTNdLGVudHJ5Q29tcG9uZW50czpbaDNdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oeTMse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltoMyxiMyxwMyxtM119LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bV01dfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW2IzXX19KTtjb25zdCBfMz1bImZpbHRlciJdO2Z1bmN0aW9uIEMzKHQsZSl7MSZ0JiZJbSgwKX1mdW5jdGlvbiBNMyh0LGUpezEmdCYmSW0oMCl9Y29uc3QgdjM9ZnVuY3Rpb24odCl7cmV0dXJue2l0ZW06dH19O2Z1bmN0aW9uIHgzKHQsZSl7aWYoMSZ0JiYoTm0oMCksUXAoMSxNMywxLDAsIm5nLWNvbnRhaW5lciIsMTIpLHptKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtZbSgpO2NvbnN0IG49JHAoMTQpO3JjKDEpLERtKCJuZ1RlbXBsYXRlT3V0bGV0IixuKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLE1oKDIsdjMsdCkpfX1mdW5jdGlvbiBPMyh0LGUpezEmdCYmKFJtKDAsImRpdiIsMTMpLFRtKDEsIm1hdC1zcGlubmVyIiwxNCksQW0oKSl9ZnVuY3Rpb24gUDModCxlKXsxJnQmJihSbSgwLCJkaXYiLDE1KSxrdSgxLCJObyBSdW5zIiksQW0oKSl9ZnVuY3Rpb24gdzModCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDE1KSxSbSgxLCJzcGFuIiksa3UoMiwnTm8gcnVucyBtYXRjaCAiJyksUm0oMywiY29kZSIpLGt1KDQpLEFtKCksa3UoNSwnIicpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoNCksU3UodC5yZWdleEZpbHRlcil9fWNvbnN0IGszPWZ1bmN0aW9uKCl7cmV0dXJuWzUsMTAsMjBdfTtmdW5jdGlvbiBTMyh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsIm1hdC1wYWdpbmF0b3IiLDE2KSxWbSgicGFnZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25QYWdpbmF0aW9uQ2hhbmdlLmVtaXQobil9KSksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtEbSgicGFnZVNpemVPcHRpb25zIixDaCg0LGszKSkoInBhZ2VJbmRleCIsdC5wYWdpbmF0aW9uT3B0aW9uLnBhZ2VJbmRleCkoInBhZ2VTaXplIix0LnBhZ2luYXRpb25PcHRpb24ucGFnZVNpemUpKCJsZW5ndGgiLHQuZmlsdGVyZWRJdGVtc0xlbmd0aCl9fWZ1bmN0aW9uIEQzKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwibWF0LWNoZWNrYm94IiwyNiksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oMykuaGFuZGxlUGFnZVRvZ2dsZSgpfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDMpO0RtKCJjaGVja2VkIix0LmFsbFBhZ2VJdGVtc1NlbGVjdGVkKCkpKCJpbmRldGVybWluYXRlIiwhdC5hbGxQYWdlSXRlbXNTZWxlY3RlZCgpJiZ0LnNvbWVQYWdlSXRlbXNTZWxlY3RlZCgpKX19Y29uc3QgRTM9ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6dH19O2Z1bmN0aW9uIFIzKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMjcpLGt1KDEsIkV4cGVyaW1lbnQiKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMyk7RG0oIm1hdC1zb3J0LWhlYWRlciIsTWgoMSxFMyx0LlNvcnRUeXBlLkVYUEVSSU1FTlRfTkFNRSkpfX1mdW5jdGlvbiBBMyh0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDI3KSxrdSgxLCJSdW4iKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMyk7RG0oIm1hdC1zb3J0LWhlYWRlciIsTWgoMSxFMyx0LlNvcnRUeXBlLlJVTl9OQU1FKSl9fWZ1bmN0aW9uIFQzKHQsZSl7MSZ0JiZUbSgwLCJydW5zLWdyb3VwLW1lbnUtYnV0dG9uIiwyOSksMiZ0JiZEbSgiZXhwZXJpbWVudElkcyIsWW0oNCkuZXhwZXJpbWVudElkcyl9ZnVuY3Rpb24gTjModCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiksUXAoMSxUMywxLDEsInJ1bnMtZ3JvdXAtbWVudS1idXR0b24iLDI4KSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMyk7cmMoMSksRG0oIm5nSWYiLHQuc2hvd0dyb3VwQ29udHJvbCl9fWNvbnN0IHozPWZ1bmN0aW9uKHQpe3JldHVyblsiY29sdW1uIix0XX07ZnVuY3Rpb24gSTModCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiwyMSksTm0oMSwyMiksUXAoMixEMywxLDIsIm1hdC1jaGVja2JveCIsMjMpLFFwKDMsUjMsMiwzLCJzcGFuIiwyNCksUXAoNCxBMywyLDMsInNwYW4iLDI0KSxRcCg1LE4zLDIsMSwic3BhbiIsMjUpLHptKCksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7RG0oIm5nQ2xhc3MiLE1oKDYsejMsInRiLWNvbHVtbi0iK3QpKSxyYygxKSxEbSgibmdTd2l0Y2giLHQpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLG4uUnVuc1RhYmxlQ29sdW1uLkNIRUNLQk9YKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5FWFBFUklNRU5UX05BTUUpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLG4uUnVuc1RhYmxlQ29sdW1uLlJVTl9OQU1FKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5SVU5fQ09MT1IpfX1mdW5jdGlvbiBIMyh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO05tKDApLFJtKDEsImRpdiIsMzgpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCl9KSksUm0oMiwidGItcmFuZ2UtaW5wdXQiLDM5KSxWbSgidmFsdWUiLChmdW5jdGlvbiBlKG4pe2hpKHQpO2NvbnN0IG89WW0oMikuJGltcGxpY2l0O3JldHVybiBZbSgyKS5oYW5kbGVIcGFyYW1JbnRlcnZhbENoYW5nZWQobyxuKX0pKSxBbSgpLEFtKCksem0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oMikuJGltcGxpY2l0O3JjKDIpLERtKCJtaW4iLHQuZmlsdGVyLm1pblZhbHVlKSgibWF4Iix0LmZpbHRlci5tYXhWYWx1ZSkoImxvd2VyVmFsdWUiLHQuZmlsdGVyLmZpbHRlckxvd2VyVmFsdWUpKCJ1cHBlclZhbHVlIix0LmZpbHRlci5maWx0ZXJVcHBlclZhbHVlKX19ZnVuY3Rpb24gRjModCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDQxKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpfSkpLFJtKDEsIm1hdC1jaGVja2JveCIsMzcpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7Y29uc3Qgbj1oaSh0KS4kaW1wbGljaXQsbz1ZbSgzKS4kaW1wbGljaXQ7cmV0dXJuIFltKDIpLmhhbmRsZUhwYXJhbURpc2NyZXRlQ2hhbmdlZChvLG4pfSkpLFJtKDIsInNwYW4iKSxrdSgzKSxBbSgpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgzKS4kaW1wbGljaXQ7cmMoMSksRG0oImNoZWNrZWQiLG4uZmlsdGVyLmZpbHRlclZhbHVlcy5pbmNsdWRlcyh0KSkscmMoMiksU3UodCl9fWZ1bmN0aW9uIEwzKHQsZSl7aWYoMSZ0JiYoTm0oMCksUXAoMSxGMyw0LDIsImRpdiIsNDApLHptKCkpLDImdCl7Y29uc3QgdD1ZbSgyKS4kaW1wbGljaXQ7cmMoMSksRG0oIm5nRm9yT2YiLHQuZmlsdGVyLnBvc3NpYmxlVmFsdWVzKX19ZnVuY3Rpb24gQjModCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtObSgwKSxSbSgxLCJidXR0b24iLDMzKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpfSkpLFRtKDIsIm1hdC1pY29uIiwzNCksQW0oKSxSbSgzLCJtYXQtbWVudSIsbnVsbCwzNSksUm0oNSwiZGl2IiwzNiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSxSbSg2LCJtYXQtY2hlY2tib3giLDM3KSxWbSgiY2hhbmdlIiwoZnVuY3Rpb24gZSgpe2hpKHQpO2NvbnN0IG49WW0oKS4kaW1wbGljaXQ7cmV0dXJuIFltKDIpLmhhbmRsZUhwYXJhbUluY2x1ZGVVbmRlZmluZWRUb2dnbGVkKG4pfSkpLFJtKDcsInNwYW4iKSxrdSg4LCIoc2hvdyBlbXB0eSB2YWx1ZSkiKSxBbSgpLEFtKCksQW0oKSxRcCg5LEgzLDMsNCwibmctY29udGFpbmVyIiwzMiksUXAoMTAsTDMsMiwxLCJuZy1jb250YWluZXIiLDMyKSxBbSgpLHptKCl9aWYoMiZ0KXtjb25zdCB0PSRwKDQpLGU9WW0oKS4kaW1wbGljaXQsbj1ZbSgyKTtyYygxKSxEbSgibWF0TWVudVRyaWdnZXJGb3IiLHQpLGpwKCJhcmlhLWxhYmVsIiwiRmlsdGVyIGhwYXJhbSAiKyhlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKSxyYyg1KSxEbSgiY2hlY2tlZCIsZS5maWx0ZXIuaW5jbHVkZVVuZGVmaW5lZCkscmMoMyksRG0oIm5nSWYiLGUuZmlsdGVyLnR5cGU9PT1uLkRvbWFpblR5cGUuSU5URVJWQUwpLHJjKDEpLERtKCJuZ0lmIixlLmZpbHRlci50eXBlPT09bi5Eb21haW5UeXBlLkRJU0NSRVRFKX19Y29uc3QgVjM9ZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZTp0LG5hbWU6ZX19O2Z1bmN0aW9uIGozKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMzApLFJtKDEsInNwYW4iLDMxKSxrdSgyKSxBbSgpLFFwKDMsQjMsMTEsNSwibmctY29udGFpbmVyIiwzMiksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7RG0oIm1hdC1zb3J0LWhlYWRlciIsdmgoMyxWMyxuLlNvcnRUeXBlLkhQQVJBTSx0Lm5hbWUpKSxyYygyKSxTdSh0LmRpc3BsYXlOYW1lfHx0Lm5hbWUpLHJjKDEpLERtKCJuZ0lmIix0LmZpbHRlcil9fWZ1bmN0aW9uIFUzKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Tm0oMCksUm0oMSwiYnV0dG9uIiwzMyksVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSxUbSgyLCJtYXQtaWNvbiIsMzQpLEFtKCksUm0oMywibWF0LW1lbnUiLG51bGwsMzUpLFJtKDUsImRpdiIsMzYpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCl9KSksUm0oNiwibWF0LWNoZWNrYm94IiwzNyksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIGUoKXtoaSh0KTtjb25zdCBuPVltKCkuJGltcGxpY2l0O3JldHVybiBZbSgyKS5oYW5kbGVNZXRyaWNJbmNsdWRlVW5kZWZpbmVkQ2hhbmdlZChuKX0pKSxSbSg3LCJzcGFuIiksa3UoOCwiKHNob3cgZW1wdHkgdmFsdWUpIiksQW0oKSxBbSgpLEFtKCksUm0oOSwiZGl2IiwzOCksVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSxSbSgxMCwidGItcmFuZ2UtaW5wdXQiLDM5KSxWbSgidmFsdWUiLChmdW5jdGlvbiBlKG4pe2hpKHQpO2NvbnN0IG89WW0oKS4kaW1wbGljaXQ7cmV0dXJuIFltKDIpLmhhbmRsZU1ldHJpY0ZpbHRlckNoYW5nZWQobyxuKX0pKSxBbSgpLEFtKCksQW0oKSx6bSgpfWlmKDImdCl7Y29uc3QgdD0kcCg0KSxlPVltKCkuJGltcGxpY2l0O3JjKDEpLERtKCJtYXRNZW51VHJpZ2dlckZvciIsdCksanAoImFyaWEtbGFiZWwiLCJGaWx0ZXIgbWV0cmljICIrKGUuZGlzcGxheU5hbWV8fGUudGFnKSkscmMoNSksRG0oImNoZWNrZWQiLGUuZmlsdGVyLmluY2x1ZGVVbmRlZmluZWQpLHJjKDQpLERtKCJtaW4iLGUuZmlsdGVyLm1pblZhbHVlKSgibWF4IixlLmZpbHRlci5tYXhWYWx1ZSkoImxvd2VyVmFsdWUiLGUuZmlsdGVyLmZpbHRlckxvd2VyVmFsdWUpKCJ1cHBlclZhbHVlIixlLmZpbHRlci5maWx0ZXJVcHBlclZhbHVlKX19Y29uc3QgRzM9ZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZTp0LHRhZzplfX07ZnVuY3Rpb24gVzModCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiwzMCksUm0oMSwic3BhbiIsMzEpLGt1KDIpLEFtKCksUXAoMyxVMywxMSw3LCJuZy1jb250YWluZXIiLDMyKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgyKTtEbSgibWF0LXNvcnQtaGVhZGVyIix2aCgzLEczLG4uU29ydFR5cGUuTUVUUklDLHQudGFnKSkscmMoMiksU3UodC5kaXNwbGF5TmFtZXx8dC50YWcpLHJjKDEpLERtKCJuZ0lmIix0LmZpbHRlcil9fWZ1bmN0aW9uIFkzKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwxNyksUm0oMSwiZGl2IiwxOCksVm0oIm1hdFNvcnRDaGFuZ2UiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLmhhbmRsZVNvcnRDaGFuZ2Uobil9KSksUXAoMixJMyw2LDgsInNwYW4iLDE5KSxRcCgzLGozLDQsNiwic3BhbiIsMjApLFFwKDQsVzMsNCw2LCJzcGFuIiwyMCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLERtKCJtYXRTb3J0QWN0aXZlIix0LnNvcnRPcHRpb24uY29sdW1uKSxyYygxKSxEbSgibmdGb3JPZiIsdC5jb2x1bW5zKSxyYygxKSxEbSgibmdGb3JPZiIsdC5ocGFyYW1Db2x1bW5zKSgibmdGb3JUcmFja0J5Iix0LnRyYWNrQnlIcGFyYW1Db2x1bW4pLHJjKDEpLERtKCJuZ0Zvck9mIix0Lm1ldHJpY0NvbHVtbnMpKCJuZ0ZvclRyYWNrQnkiLHQudHJhY2tCeU1ldHJpY0NvbHVtbil9fWZ1bmN0aW9uIHEzKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwic3BhbiIpLFJtKDEsIm1hdC1jaGVja2JveCIsMzcpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7aGkodCk7Y29uc3Qgbj1ZbSgyKS5pdGVtO3JldHVybiBZbSgpLm9uU2VsZWN0aW9uVG9nZ2xlLmVtaXQobil9KSksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKS5pdGVtO3JjKDEpLERtKCJjaGVja2VkIix0LnNlbGVjdGVkKX19ZnVuY3Rpb24gWjModCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiwzMSksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpLml0ZW07anAoInRpdGxlIix0LmV4cGVyaW1lbnROYW1lKSxyYygxKSxTdSh0LmV4cGVyaW1lbnRBbGlhcyl9fWZ1bmN0aW9uIFgzKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMzEpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKS5pdGVtO3JjKDEpLFN1KHQucnVuLm5hbWUpfX1jb25zdCBLMz1mdW5jdGlvbih0KXtyZXR1cm57InJ1bi1jb2xvci1zd2F0Y2giOiEwLCJuby1jb2xvciI6dH19O2Z1bmN0aW9uIEozKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwic3BhbiIpLFJtKDEsImJ1dHRvbiIsNDcpLFZtKCJjb2xvclBpY2tlckNoYW5nZSIsKGZ1bmN0aW9uIGUobil7aGkodCk7Y29uc3Qgbz1ZbSgyKS5pdGVtO3JldHVybiBZbSgpLm9uUnVuQ29sb3JDaGFuZ2UuZW1pdCh7cnVuSWQ6by5ydW4uaWQsbmV3Q29sb3I6bn0pfSkpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oMikuaXRlbTtyYygxKSxkdSgiYmFja2dyb3VuZCIsdC5ydW5Db2xvciksRG0oIm5nQ2xhc3MiLE1oKDgsSzMsIXQucnVuQ29sb3IpKSgiY29sb3JQaWNrZXIiLHQucnVuQ29sb3IpKCJjcERpYWxvZ0Rpc3BsYXkiLCJwb3B1cCIpKCJjcFBvc2l0aW9uT2Zmc2V0IiwtMjApKCJjcFVzZVJvb3RWaWV3Q29udGFpbmVyIiwhMCkoImNwT3V0cHV0Rm9ybWF0IiwiaGV4Iil9fWZ1bmN0aW9uIFEzKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsNDUpLE5tKDEsMjIpLFFwKDIscTMsMiwxLCJzcGFuIiwyNSksUXAoMyxaMywyLDIsInNwYW4iLDQ2KSxRcCg0LFgzLDIsMSwic3BhbiIsNDYpLFFwKDUsSjMsMiwxMCwic3BhbiIsMjUpLHptKCksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7RG0oIm5nQ2xhc3MiLE1oKDYsejMsInRiLWNvbHVtbi0iK3QpKSxyYygxKSxEbSgibmdTd2l0Y2giLHQpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLG4uUnVuc1RhYmxlQ29sdW1uLkNIRUNLQk9YKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5FWFBFUklNRU5UX05BTUUpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLG4uUnVuc1RhYmxlQ29sdW1uLlJVTl9OQU1FKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5SVU5fQ09MT1IpfX1mdW5jdGlvbiAkMyh0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDQ4KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgpLml0ZW07cmMoMSksU3Uobi5ocGFyYW1zLmdldCh0Lm5hbWUpKX19ZnVuY3Rpb24gdDIodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiw0OCksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oKS5pdGVtO3JjKDEpLFN1KG4ubWV0cmljcy5nZXQodC50YWcpKX19ZnVuY3Rpb24gZTIodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDQyKSxRcCgxLFEzLDYsOCwic3BhbiIsNDMpLFFwKDIsJDMsMiwxLCJzcGFuIiw0NCksUXAoMyx0MiwyLDEsInNwYW4iLDQ0KSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS5pdGVtLG49WW0oKTtqcCgiZGF0YS1pZCIsdC5ydW4uaWQpLHJjKDEpLERtKCJuZ0Zvck9mIixuLmNvbHVtbnMpLHJjKDEpLERtKCJuZ0Zvck9mIixuLmhwYXJhbUNvbHVtbnMpLHJjKDEpLERtKCJuZ0Zvck9mIixuLm1ldHJpY0NvbHVtbnMpfX1jbGFzcyBuMiBleHRlbmRzIFpRe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLml0ZW1zUGVyUGFnZUxhYmVsPSJTaG93IHJ1bnM6In19bjIuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKG4yKSkpKG58fG4yKX19KSgpLG4yLsm1cHJvdj1Nbih7dG9rZW46bjIsZmFjdG9yeTpuMi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobjIsW3t0eXBlOmltfV0sbnVsbCxudWxsKTtjbGFzcyBvMntjb25zdHJ1Y3Rvcigpe3RoaXMuZGF0YVNvdXJjZT1uZXcgUzAsdGhpcy5Eb21haW5UeXBlPVpSLHRoaXMuUnVuc1RhYmxlQ29sdW1uPXZRLHRoaXMuU29ydFR5cGU9JFQsdGhpcy5vblJlZ2V4RmlsdGVyQ2hhbmdlPW5ldyBMaCx0aGlzLm9uU2VsZWN0aW9uVG9nZ2xlPW5ldyBMaCx0aGlzLm9uUGFnZVNlbGVjdGlvblRvZ2dsZT1uZXcgTGgsdGhpcy5vblBhZ2luYXRpb25DaGFuZ2U9bmV3IExoLHRoaXMub25Tb3J0Q2hhbmdlPW5ldyBMaCx0aGlzLm9uUnVuQ29sb3JDaGFuZ2U9bmV3IExoLHRoaXMub25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQ9bmV3IExoLHRoaXMub25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQ9bmV3IExoLHRoaXMub25NZXRyaWNGaWx0ZXJDaGFuZ2VkPW5ldyBMaH1uZ09uQ2hhbmdlcygpe3RoaXMuZGF0YVNvdXJjZS5kYXRhPXRoaXMucGFnZUl0ZW1zfWdldEhwYXJhbUNvbHVtbklkKHQpe3JldHVybmBoOiR7dC5uYW1lfWB9Z2V0TWV0cmljQ29sdW1uSWQodCl7cmV0dXJuYG06JHt0LnRhZ31gfWdldENvbHVtbklkcygpe3JldHVyblsuLi50aGlzLmNvbHVtbnMsLi4udGhpcy5ocGFyYW1Db2x1bW5zLm1hcCh0aGlzLmdldEhwYXJhbUNvbHVtbklkKSwuLi50aGlzLm1ldHJpY0NvbHVtbnMubWFwKHRoaXMuZ2V0TWV0cmljQ29sdW1uSWQpXX1hbGxQYWdlSXRlbXNTZWxlY3RlZCgpe3JldHVybiBCb29sZWFuKHRoaXMucGFnZUl0ZW1zLmxlbmd0aCkmJnRoaXMucGFnZUl0ZW1zLmV2ZXJ5KCh0PT50LnNlbGVjdGVkKSl9c29tZVBhZ2VJdGVtc1NlbGVjdGVkKCl7cmV0dXJuIHRoaXMucGFnZUl0ZW1zLnNvbWUoKHQ9PnQuc2VsZWN0ZWQpKX1oYW5kbGVQYWdlVG9nZ2xlKCl7dGhpcy5vblBhZ2VTZWxlY3Rpb25Ub2dnbGUuZW1pdCh7aXRlbXM6dGhpcy5wYWdlSXRlbXN9KX1oYW5kbGVTb3J0Q2hhbmdlKHQpe2xldCBlO3N3aXRjaCh0LmRpcmVjdGlvbil7Y2FzZSJhc2MiOmU9Rk4uQVNDO2JyZWFrO2Nhc2UiZGVzYyI6ZT1GTi5ERVNDO2JyZWFrO2RlZmF1bHQ6ZT1GTi5VTlNFVH10aGlzLm9uU29ydENoYW5nZS5lbWl0KHtrZXk6dC5hY3RpdmUsZGlyZWN0aW9uOmV9KX1vbkZpbHRlcktleVVwKHQpe3RoaXMub25SZWdleEZpbHRlckNoYW5nZS5lbWl0KHQudGFyZ2V0LnZhbHVlKX10YWJsZVRyYWNrQnkodCxlKXtyZXR1cm4gZS5ydW4uaWR9aGFuZGxlSHBhcmFtSW5jbHVkZVVuZGVmaW5lZFRvZ2dsZWQodCl7Y29uc3R7bmFtZTplLGZpbHRlcjpufT10O2lmKCFuKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhcmlhbnQgZXJyb3I6IHJlcXVpcmUgZmlsdGVyIHRvIGV4aXN0IGZvciBpdCB0byBjaGFuZ2UiKTtuLnR5cGU9PT1aUi5ESVNDUkVURT90aGlzLm9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkLmVtaXQoe2hwYXJhbU5hbWU6ZSxpbmNsdWRlVW5kZWZpbmVkOiFuLmluY2x1ZGVVbmRlZmluZWQsZmlsdGVyVmFsdWVzOm4uZmlsdGVyVmFsdWVzfSk6dGhpcy5vbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZC5lbWl0KHtuYW1lOmUsaW5jbHVkZVVuZGVmaW5lZDohbi5pbmNsdWRlVW5kZWZpbmVkLGZpbHRlckxvd2VyVmFsdWU6bi5maWx0ZXJMb3dlclZhbHVlLGZpbHRlclVwcGVyVmFsdWU6bi5maWx0ZXJVcHBlclZhbHVlfSl9aGFuZGxlSHBhcmFtSW50ZXJ2YWxDaGFuZ2VkKHQsZSl7Y29uc3R7bmFtZTpuLGZpbHRlcjpvfT10O2lmKCFvKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhcmlhbnQgZXJyb3I6IHJlcXVpcmUgZmlsdGVyIHRvIGV4aXN0IGZvciBpdCB0byBjaGFuZ2UiKTt0aGlzLm9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkLmVtaXQoe25hbWU6bixpbmNsdWRlVW5kZWZpbmVkOm8uaW5jbHVkZVVuZGVmaW5lZCxmaWx0ZXJMb3dlclZhbHVlOmUubG93ZXJWYWx1ZSxmaWx0ZXJVcHBlclZhbHVlOmUudXBwZXJWYWx1ZX0pfWhhbmRsZUhwYXJhbURpc2NyZXRlQ2hhbmdlZCh0LGUpe2NvbnN0e25hbWU6bixmaWx0ZXI6b309dDtpZighbyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YXJpYW50IGVycm9yOiByZXF1aXJlIGZpbHRlciB0byBleGlzdCBmb3IgaXQgdG8gY2hhbmdlIik7aWYoby50eXBlIT09WlIuRElTQ1JFVEUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFyaWFudCBlcnJvcjogZXhwZWN0ZWQgZGlzY3JldGUgZG9tYWluIGZvciAke259YCk7Y29uc3QgaT1uZXcgU2V0KFsuLi5vLmZpbHRlclZhbHVlc10pO2kuaGFzKGUpP2kuZGVsZXRlKGUpOmkuYWRkKGUpLHRoaXMub25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQuZW1pdCh7aHBhcmFtTmFtZTpuLGluY2x1ZGVVbmRlZmluZWQ6by5pbmNsdWRlVW5kZWZpbmVkLGZpbHRlclZhbHVlczpbLi4uaV19KX1oYW5kbGVNZXRyaWNJbmNsdWRlVW5kZWZpbmVkQ2hhbmdlZCh0KXtpZighdC5maWx0ZXIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFyaWFudCBlcnJvcjogcmVxdWlyZSBmaWx0ZXIgdG8gZXhpc3QgZm9yIGl0IHRvIGNoYW5nZSIpO3RoaXMub25NZXRyaWNGaWx0ZXJDaGFuZ2VkLmVtaXQoe25hbWU6dC50YWcsaW5jbHVkZVVuZGVmaW5lZDohdC5maWx0ZXIuaW5jbHVkZVVuZGVmaW5lZCxmaWx0ZXJMb3dlclZhbHVlOnQuZmlsdGVyLmZpbHRlckxvd2VyVmFsdWUsZmlsdGVyVXBwZXJWYWx1ZTp0LmZpbHRlci5maWx0ZXJVcHBlclZhbHVlfSl9aGFuZGxlTWV0cmljRmlsdGVyQ2hhbmdlZCh0LGUpe2lmKCF0LmZpbHRlcil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YXJpYW50IGVycm9yOiByZXF1aXJlIGZpbHRlciB0byBleGlzdCBmb3IgaXQgdG8gY2hhbmdlIik7dGhpcy5vbk1ldHJpY0ZpbHRlckNoYW5nZWQuZW1pdCh7bmFtZTp0LnRhZyxpbmNsdWRlVW5kZWZpbmVkOnQuZmlsdGVyLmluY2x1ZGVVbmRlZmluZWQsZmlsdGVyTG93ZXJWYWx1ZTplLmxvd2VyVmFsdWUsZmlsdGVyVXBwZXJWYWx1ZTplLnVwcGVyVmFsdWV9KX10cmFja0J5SHBhcmFtQ29sdW1uKHQpe3JldHVybiB0Lm5hbWV9dHJhY2tCeU1ldHJpY0NvbHVtbih0KXtyZXR1cm4gdC50YWd9fW8yLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxvMil9LG8yLsm1Y21wPXRvKHt0eXBlOm8yLHNlbGVjdG9yczpbWyJydW5zLXRhYmxlLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKF8zLDcsaGcpLFFoKHQkLDcpLFFoKGEkLDcpKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLmZpbHRlcj10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5wYWdpbmF0b3I9dC5maXJzdCksSmgodD10YigpKSYmKG4uc29ydD10LmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJmbGV4LWxheW91dCIsbi51c2VGbGV4aWJsZUxheW91dCl9LGlucHV0czp7ZXhwZXJpbWVudElkczoiZXhwZXJpbWVudElkcyIsc2hvd0V4cGVyaW1lbnROYW1lOiJzaG93RXhwZXJpbWVudE5hbWUiLGNvbHVtbnM6ImNvbHVtbnMiLGhwYXJhbUNvbHVtbnM6ImhwYXJhbUNvbHVtbnMiLG1ldHJpY0NvbHVtbnM6Im1ldHJpY0NvbHVtbnMiLGFsbEl0ZW1zTGVuZ3RoOiJhbGxJdGVtc0xlbmd0aCIsZmlsdGVyZWRJdGVtc0xlbmd0aDoiZmlsdGVyZWRJdGVtc0xlbmd0aCIsdXNlRmxleGlibGVMYXlvdXQ6InVzZUZsZXhpYmxlTGF5b3V0Iix1c2VQYWdpbmF0aW9uOiJ1c2VQYWdpbmF0aW9uIixzaG93R3JvdXBDb250cm9sOiJzaG93R3JvdXBDb250cm9sIixwYWdlSXRlbXM6InBhZ2VJdGVtcyIsbG9hZGluZzoibG9hZGluZyIsbnVtU2VsZWN0ZWRJdGVtczoibnVtU2VsZWN0ZWRJdGVtcyIsc29ydE9wdGlvbjoic29ydE9wdGlvbiIscGFnaW5hdGlvbk9wdGlvbjoicGFnaW5hdGlvbk9wdGlvbiIscmVnZXhGaWx0ZXI6InJlZ2V4RmlsdGVyIn0sb3V0cHV0czp7b25SZWdleEZpbHRlckNoYW5nZToib25SZWdleEZpbHRlckNoYW5nZSIsb25TZWxlY3Rpb25Ub2dnbGU6Im9uU2VsZWN0aW9uVG9nZ2xlIixvblBhZ2VTZWxlY3Rpb25Ub2dnbGU6Im9uUGFnZVNlbGVjdGlvblRvZ2dsZSIsb25QYWdpbmF0aW9uQ2hhbmdlOiJvblBhZ2luYXRpb25DaGFuZ2UiLG9uU29ydENoYW5nZToib25Tb3J0Q2hhbmdlIixvblJ1bkNvbG9yQ2hhbmdlOiJvblJ1bkNvbG9yQ2hhbmdlIixvbkhwYXJhbURpc2NyZXRlRmlsdGVyQ2hhbmdlZDoib25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQiLG9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkOiJvbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZCIsb25NZXRyaWNGaWx0ZXJDaGFuZ2VkOiJvbk1ldHJpY0ZpbHRlckNoYW5nZWQifSxmZWF0dXJlczpbcGcoW3twcm92aWRlOlpRLHVzZUNsYXNzOm4yfV0pLEJvXSxkZWNsczoxNSx2YXJzOjcsY29uc3RzOltbMSwiZmlsdGVyLXJvdyJdLFsicGxhY2Vob2xkZXIiLCJGaWx0ZXIgcnVucyAocmVnZXgpIiwxLCJydW4tZmlsdGVyIiwzLCJrZXl1cCJdLFsxLCJ0YWJsZS1jb250YWluZXIiXSxbInJvbGUiLCJ0YWJsZSJdLFs0LCJuZ1RlbXBsYXRlT3V0bGV0Il0sWyJyb2xlIiwicm93Z3JvdXAiLDEsInJvd3MiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWyJjbGFzcyIsImxvYWRpbmciLDQsIm5nSWYiXSxbImNsYXNzIiwibm8tcnVucyIsNCwibmdJZiJdLFsic2hvd0ZpcnN0TGFzdEJ1dHRvbnMiLCIiLDMsInBhZ2VTaXplT3B0aW9ucyIsInBhZ2VJbmRleCIsInBhZ2VTaXplIiwibGVuZ3RoIiwicGFnZSIsNCwibmdJZiJdLFsiaGVhZGVyIiwiIl0sWyJyb3ciLCIiXSxbNCwibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il0sWzEsImxvYWRpbmciXSxbIm1vZGUiLCJpbmRldGVybWluYXRlIiwiZGlhbWV0ZXIiLCIyOCJdLFsxLCJuby1ydW5zIl0sWyJzaG93Rmlyc3RMYXN0QnV0dG9ucyIsIiIsMywicGFnZVNpemVPcHRpb25zIiwicGFnZUluZGV4IiwicGFnZVNpemUiLCJsZW5ndGgiLCJwYWdlIl0sWyJyb2xlIiwicm93Z3JvdXAiLDEsImhlYWRlciJdLFsibWF0U29ydCIsIiIsInJvbGUiLCJyb3ciLDMsIm1hdFNvcnRBY3RpdmUiLCJtYXRTb3J0Q2hhbmdlIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLCJjbGFzcyIsImNvbHVtbiIsMywibWF0LXNvcnQtaGVhZGVyIiw0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLDMsIm5nQ2xhc3MiXSxbMywibmdTd2l0Y2giXSxbMywiY2hlY2tlZCIsImluZGV0ZXJtaW5hdGUiLCJjaGFuZ2UiLDQsIm5nU3dpdGNoQ2FzZSJdLFszLCJtYXQtc29ydC1oZWFkZXIiLDQsIm5nU3dpdGNoQ2FzZSJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbMywiY2hlY2tlZCIsImluZGV0ZXJtaW5hdGUiLCJjaGFuZ2UiXSxbMywibWF0LXNvcnQtaGVhZGVyIl0sWzMsImV4cGVyaW1lbnRJZHMiLDQsIm5nSWYiXSxbMywiZXhwZXJpbWVudElkcyJdLFsicm9sZSIsImNvbHVtbmhlYWRlciIsMSwiY29sdW1uIiwzLCJtYXQtc29ydC1oZWFkZXIiXSxbMSwibmFtZSJdLFs0LCJuZ0lmIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIiwiY2xpY2siXSxbInN2Z0ljb24iLCJmaWx0ZXJfYWx0XzI0cHgiXSxbImZpbHRlck1lbnUiLCJtYXRNZW51Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtY2hlY2tib3giLCJkaXNhYmxlUmlwcGxlIiwiIiwxLCJmaWx0ZXItbWVudS1jaGVja2JveC1yb3ciLDMsImNsaWNrIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbImRpc2FibGVSaXBwbGUiLCIiLCJtYXQtbWVudS1pdGVtIiwiIiwxLCJyYW5nZS1pbnB1dC1jb250YWluZXIiLDMsImNsaWNrIl0sWzMsIm1pbiIsIm1heCIsImxvd2VyVmFsdWUiLCJ1cHBlclZhbHVlIiwidmFsdWUiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJjbGFzcyIsImZpbHRlci1tZW51LWNoZWNrYm94LXJvdyIsInJvbGUiLCJtZW51aXRlbWNoZWNrYm94IiwzLCJjbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtY2hlY2tib3giLDEsImZpbHRlci1tZW51LWNoZWNrYm94LXJvdyIsMywiY2xpY2siXSxbInJvbGUiLCJyb3ciXSxbInJvbGUiLCJjZWxsIiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInJvbGUiLCJjZWxsIiwiY2xhc3MiLCJjb2x1bW4iLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsicm9sZSIsImNlbGwiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwibmFtZSIsNCwibmdTd2l0Y2hDYXNlIl0sWzMsIm5nQ2xhc3MiLCJjb2xvclBpY2tlciIsImNwRGlhbG9nRGlzcGxheSIsImNwUG9zaXRpb25PZmZzZXQiLCJjcFVzZVJvb3RWaWV3Q29udGFpbmVyIiwiY3BPdXRwdXRGb3JtYXQiLCJjb2xvclBpY2tlckNoYW5nZSJdLFsicm9sZSIsImNlbGwiLDEsImNvbHVtbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJ0Yi1maWx0ZXItaW5wdXQiLDEpLFZtKCJrZXl1cCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25GaWx0ZXJLZXlVcChlKX0pKSxBbSgpLEFtKCksUm0oMiwiZGl2IiwyKSxSbSgzLCJkaXYiLDMpLFFwKDQsQzMsMSwwLCJuZy1jb250YWluZXIiLDQpLFJtKDUsImRpdiIsNSksUXAoNix4MywyLDQsIm5nLWNvbnRhaW5lciIsNiksQW0oKSxBbSgpLFFwKDcsTzMsMiwwLCJkaXYiLDcpLFFwKDgsUDMsMiwwLCJkaXYiLDgpLFFwKDksdzMsNiwxLCJkaXYiLDgpLEFtKCksUXAoMTAsUzMsMSw1LCJtYXQtcGFnaW5hdG9yIiw5KSxRcCgxMSxZMyw1LDYsIm5nLXRlbXBsYXRlIixudWxsLDEwLGliKSxRcCgxMyxlMiw0LDQsIm5nLXRlbXBsYXRlIixudWxsLDExLGliKSksMiZlKXtjb25zdCB0PSRwKDEyKTtyYyg0KSxEbSgibmdUZW1wbGF0ZU91dGxldCIsdCkscmMoMiksRG0oIm5nRm9yT2YiLG4ucGFnZUl0ZW1zKSgibmdGb3JUcmFja0J5IixuLnRhYmxlVHJhY2tCeSkscmMoMSksRG0oIm5nSWYiLG4ubG9hZGluZykscmMoMSksRG0oIm5nSWYiLCFuLmxvYWRpbmcmJjA9PT1uLmFsbEl0ZW1zTGVuZ3RoKSxyYygxKSxEbSgibmdJZiIsIW4ubG9hZGluZyYmbi5hbGxJdGVtc0xlbmd0aD4wJiYwPT09bi5maWx0ZXJlZEl0ZW1zTGVuZ3RoKSxyYygxKSxEbSgibmdJZiIsbi51c2VQYWdpbmF0aW9uKX19LGRpcmVjdGl2ZXM6W3EwLE1NLGxNLGRNLG8xLHQkLGEkLGFNLGZNLGdNLE9ZLG0kLHcxLFhILGVZLERXLEtXLFdXLEQxLGIzXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1zaXplOjEzcHg7b3ZlcmZsb3c6aGlkZGVufS5maWx0ZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4Om5vbmV9LnRhYmxlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Y29udGFpbjpsYXlvdXQgcGFpbnQ7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6YXV0bzt3aWxsLWNoYW5nZTp0cmFuc2Zvcm0sc2Nyb2xsLXBvc2l0aW9ufS5mbGV4LWxheW91dFtfbmdob3N0LSVDT01QJV0gICAubmFtZVtfbmdjb250ZW50LSVDT01QJV17d29yZC1icmVhazpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0uZmxleC1sYXlvdXRbX25naG9zdC0lQ09NUCVdICAgbWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgI2ViZWJlYjtwYWRkaW5nLWJvdHRvbToxMnB4fWJvZHkuZGFyay1tb2RlICAgLmZsZXgtbGF5b3V0W19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICM1NTV9W3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OnRhYmxlO3dpZHRoOjEwMCV9W3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcH1bcm9sZT10YWJsZV1bX25nY29udGVudC0lQ09NUCVdICAgLmhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICBbcm9sZT1jb2x1bW5oZWFkZXJdW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBbcm9sZT10YWJsZV1bX25nY29udGVudC0lQ09NUCVdICAgLmhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICBbcm9sZT1jb2x1bW5oZWFkZXJdW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgW3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgW3JvbGU9Y29sdW1uaGVhZGVyXVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfVtyb2xlPXRhYmxlXVtfbmdjb250ZW50LSVDT01QJV0gICBbcm9sZT1yb3ddW19uZ2NvbnRlbnQtJUNPTVAlXXtjb250YWluOnN0cmljdDtkaXNwbGF5OnRhYmxlLXJvdztoZWlnaHQ6NDNweH1bcm9sZT10YWJsZV1bX25nY29udGVudC0lQ09NUCVdICAgW3JvbGU9cm93XVtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6dGFibGUtY2VsbDtwYWRkaW5nOjVweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgW3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtyb2xlPXJvd11bX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIFtyb2xlPXRhYmxlXVtfbmdjb250ZW50LSVDT01QJV0gICBbcm9sZT1yb3ddW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9W3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtyb2xlPXJvd11bX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbltfbmdjb250ZW50LSVDT01QJV06Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0OjI0cHh9W3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtyb2xlPXJvd11bX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbltfbmdjb250ZW50LSVDT01QJV06bGFzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0OjI0cHh9W3JvbGU9cm93Z3JvdXBdW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OnRhYmxlLXJvdy1ncm91cH1bcm9sZT1yb3dncm91cF0uaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OnRhYmxlLWhlYWRlci1ncm91cH0ubG9hZGluZ1tfbmdjb250ZW50LSVDT01QJV0sIC5uby1ydW5zW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyOjA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDI0cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmxvYWRpbmdbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAubG9hZGluZ1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAubm8tcnVuc1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5uby1ydW5zW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fS5sb2FkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5zZWxlY3QtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxMnB4O3BhZGRpbmctdG9wOjEycHh9LnNlbGVjdC1hbGwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0sIC5zZWxlY3QtYWxsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS42O3RleHQtYWxpZ246bGVmdH0uc2VsZWN0LWFsbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmc6MCA0cHh9LmZpbHRlci1yb3dbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMTZweCAwIDIxcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmZpbHRlci1yb3dbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZmlsdGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0uZmlsdGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICB0Yi1maWx0ZXItaW5wdXRbX25nY29udGVudC0lQ09NUCVde2ZsZXgtZ3JvdzoxfS50Yi1jb2x1bW4tY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVdLCAudGItY29sdW1uLXJ1bl9jb2xvcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MjBweH0udGItY29sdW1uLXJ1bl9jb2xvcltfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9LnJ1bi1jb2xvci1zd2F0Y2hbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yYWRpdXM6MTAwJTtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtvdXRsaW5lOm5vbmV9LnJ1bi1jb2xvci1zd2F0Y2gubm8tY29sb3JbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjojYzZjYWQxO2JvcmRlci13aWR0aDoycHh9LnJhbmdlLWlucHV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OmF1dG99W19uZ2hvc3QtJUNPTVAlXSAgICAgbWF0LXBhZ2luYXRvciBtYXQtZm9ybS1maWVsZHttYXJnaW46MH0uZmlsdGVyLW1lbnUtY2hlY2tib3gtcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV0gICAgIGxhYmVse2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTthbGlnbi1pdGVtczpjZW50ZXJ9LmZpbHRlci1tZW51LWNoZWNrYm94LXJvd1tfbmdjb250ZW50LSVDT01QJV0gICBtYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVdICAgICBsYWJlbCAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcnttYXJnaW4tbGVmdDowfS5maWx0ZXItbWVudS1jaGVja2JveC1yb3dbX25nY29udGVudC0lQ09NUCVdICAgbWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgbGFiZWwgLm1hdC1jaGVja2JveC1sYWJlbHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc31ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBtYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvMixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJydW5zLXRhYmxlLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6InJ1bnNfdGFibGVfY29tcG9uZW50Lm5nLmh0bWwiLGhvc3Q6eyJbY2xhc3MuZmxleC1sYXlvdXRdIjoidXNlRmxleGlibGVMYXlvdXQifSxzdHlsZVVybHM6WyJydW5zX3RhYmxlX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHByb3ZpZGVyczpbe3Byb3ZpZGU6WlEsdXNlQ2xhc3M6bjJ9XX1dfV0sbnVsbCx7ZXhwZXJpbWVudElkczpbe3R5cGU6eHl9XSxzaG93RXhwZXJpbWVudE5hbWU6W3t0eXBlOnh5fV0sY29sdW1uczpbe3R5cGU6eHl9XSxocGFyYW1Db2x1bW5zOlt7dHlwZTp4eX1dLG1ldHJpY0NvbHVtbnM6W3t0eXBlOnh5fV0sYWxsSXRlbXNMZW5ndGg6W3t0eXBlOnh5fV0sZmlsdGVyZWRJdGVtc0xlbmd0aDpbe3R5cGU6eHl9XSx1c2VGbGV4aWJsZUxheW91dDpbe3R5cGU6eHl9XSx1c2VQYWdpbmF0aW9uOlt7dHlwZTp4eX1dLHNob3dHcm91cENvbnRyb2w6W3t0eXBlOnh5fV0scGFnZUl0ZW1zOlt7dHlwZTp4eX1dLGxvYWRpbmc6W3t0eXBlOnh5fV0sbnVtU2VsZWN0ZWRJdGVtczpbe3R5cGU6eHl9XSxzb3J0T3B0aW9uOlt7dHlwZTp4eX1dLHBhZ2luYXRpb25PcHRpb246W3t0eXBlOnh5fV0scmVnZXhGaWx0ZXI6W3t0eXBlOnh5fV0sb25SZWdleEZpbHRlckNoYW5nZTpbe3R5cGU6T3l9XSxvblNlbGVjdGlvblRvZ2dsZTpbe3R5cGU6T3l9XSxvblBhZ2VTZWxlY3Rpb25Ub2dnbGU6W3t0eXBlOk95fV0sb25QYWdpbmF0aW9uQ2hhbmdlOlt7dHlwZTpPeX1dLG9uU29ydENoYW5nZTpbe3R5cGU6T3l9XSxvblJ1bkNvbG9yQ2hhbmdlOlt7dHlwZTpPeX1dLG9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkOlt7dHlwZTpPeX1dLG9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkOlt7dHlwZTpPeX1dLG9uTWV0cmljRmlsdGVyQ2hhbmdlZDpbe3R5cGU6T3l9XSxmaWx0ZXI6W3t0eXBlOlphLGFyZ3M6WyJmaWx0ZXIiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0scGFnaW5hdG9yOlt7dHlwZTpaYSxhcmdzOlt0JCx7c3RhdGljOiEwfV19XSxzb3J0Olt7dHlwZTpaYSxhcmdzOlthJCx7c3RhdGljOiEwfV19XX0pO2NvbnN0IGkyPVp3KHBOLCh0PT50LnN0YXRlPT09eUUuTE9BRElORykpO2Z1bmN0aW9uIGEyKHQsZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSAkVC5FWFBFUklNRU5UX05BTUU6cmV0dXJuW3QuZXhwZXJpbWVudEFsaWFzLHQucnVuLm5hbWUsdC5ydW4uaWRdO2Nhc2UgJFQuUlVOX05BTUU6cmV0dXJuW3QucnVuLm5hbWUsdC5leHBlcmltZW50QWxpYXMsdC5ydW4uaWRdO2Nhc2UgJFQuSFBBUkFNOnJldHVyblt0LmhwYXJhbXMuZ2V0KGUubmFtZSksdC5ydW4ubmFtZSx0LmV4cGVyaW1lbnRBbGlhcyx0LnJ1bi5pZF07Y2FzZSAkVC5NRVRSSUM6cmV0dXJuW3QubWV0cmljcy5nZXQoZS50YWcpLHQucnVuLm5hbWUsdC5leHBlcmltZW50QWxpYXMsdC5ydW4uaWRdO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBOb3QgeWV0IGltcGxlbWVudGVkOiAke2V9YCl9fWZ1bmN0aW9uIHIyKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/dC5pbmNsdWRlVW5kZWZpbmVkOnQudHlwZT09PVpSLkRJU0NSRVRFP3QuZmlsdGVyVmFsdWVzLmluY2x1ZGVzKGUpOnQudHlwZT09PVpSLklOVEVSVkFMJiZ0LmZpbHRlckxvd2VyVmFsdWU8PWUmJmU8PXQuZmlsdGVyVXBwZXJWYWx1ZX1jbGFzcyBzMntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5sb2FkaW5nJD1udWxsLHRoaXMuaHBhcmFtQ29sdW1ucyQ9RXQoW10pLHRoaXMubWV0cmljQ29sdW1ucyQ9RXQoW10pLHRoaXMudXNlRmxleGlibGVMYXlvdXQ9ITEsdGhpcy51c2VQYWdpbmF0aW9uPSExLHRoaXMuY29sdW1ucz1bdlEuUlVOX05BTUVdLHRoaXMuc2hvd0hwYXJhbXNBbmRNZXRyaWNzPSExLHRoaXMuc29ydE9wdGlvbiQ9dGhpcy5zdG9yZS5zZWxlY3QoeU4pLHRoaXMucGFnaW5hdGlvbk9wdGlvbiQ9dGhpcy5zdG9yZS5zZWxlY3QoYk4pLHRoaXMucmVnZXhGaWx0ZXIkPXRoaXMuc3RvcmUuc2VsZWN0KGdOKSx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEl9aXNFeHBlcmltZW50TmFtZVZpc2libGUoKXtyZXR1cm4gdGhpcy5jb2x1bW5zLnNvbWUoKHQ9PnQ9PT12US5FWFBFUklNRU5UX05BTUUpKX1uZ09uSW5pdCgpe2NvbnN0IHQ9V3QodGhpcy5leHBlcmltZW50SWRzLm1hcCgodD0+dGhpcy5nZXRSdW5UYWJsZUl0ZW1zRm9yRXhwZXJpbWVudCh0KSkpKS5waXBlKEl0KCh0PT5bXS5jb25jYXQoLi4udCkpKSk7dGhpcy5hbGxVbnNvcnRlZFJ1blRhYmxlSXRlbXMkPXQucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLEFlKDEpKSx0aGlzLmFsbEl0ZW1zTGVuZ3RoJD10aGlzLmFsbFVuc29ydGVkUnVuVGFibGVJdGVtcyQucGlwZShJdCgodD0+dC5sZW5ndGgpKSk7Y29uc3QgZT10aGlzLmdldEZpbHRlcmVkSXRlbXMkKHRoaXMuYWxsVW5zb3J0ZWRSdW5UYWJsZUl0ZW1zJCkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLEFlKDEpKTt0aGlzLmZpbHRlcmVkSXRlbXNMZW5ndGgkPWUucGlwZShJdCgodD0+dC5sZW5ndGgpKSksdGhpcy5wYWdlSXRlbXMkPXRoaXMuc29ydGVkQW5kU2xpY2VkSXRlbXMkKGUpLHRoaXMubnVtU2VsZWN0ZWRJdGVtcyQ9dGhpcy5hbGxVbnNvcnRlZFJ1blRhYmxlSXRlbXMkLnBpcGUoSXQoKHQ9PnQucmVkdWNlKCgodCxlKT0+dCtOdW1iZXIoZS5zZWxlY3RlZCkpLDApKSkpO2NvbnN0IG49dGhpcy5leHBlcmltZW50SWRzLm1hcCgodD0+dGhpcy5zdG9yZS5zZWxlY3QoaTIse2V4cGVyaW1lbnRJZDp0fSkpKTtpZih0aGlzLmxvYWRpbmckPVd0KG4pLnBpcGUoSXQoKHQ9PnQuc29tZSgodD0+dCkpKSkpLHRoaXMuc2hvd0hwYXJhbXNBbmRNZXRyaWNzKXtjb25zdCB0PXRoaXMuc3RvcmUuc2VsZWN0KFNRLHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkc30pO3RoaXMuaHBhcmFtQ29sdW1ucyQ9V3QoW3RoaXMuc3RvcmUuc2VsZWN0KFBRLHRoaXMuZXhwZXJpbWVudElkcyksdF0pLnBpcGUoSXQoKChbdCx7aHBhcmFtczplfV0pPT5lLm1hcCgoKHtuYW1lOmUsZGlzcGxheU5hbWU6bn0pPT57Y29uc3Qgbz10LmdldChlKTtpZighbyl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YXJpYW50IGVycm9yOiBhIGZpbHRlciBmb3IgJHtlfSBtdXN0IGV4aXN0IHdoZW4gdGhlIGhwYXJhbSBleGlzdHNgKTtyZXR1cm57ZGlzcGxheU5hbWU6bixuYW1lOmUsZmlsdGVyOm99fSkpKSkpLHRoaXMubWV0cmljQ29sdW1ucyQ9V3QoW3RoaXMuc3RvcmUuc2VsZWN0KGtRLHRoaXMuZXhwZXJpbWVudElkcyksdF0pLnBpcGUoSXQoKChbdCx7bWV0cmljczplfV0pPT5lLm1hcCgoKHt0YWc6ZSxkaXNwbGF5TmFtZTpufSk9Pntjb25zdCBvPXQuZ2V0KGUpO2lmKCFvKXRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhcmlhbnQgZXJyb3I6IGEgZmlsdGVyIGZvciAke2V9IG11c3QgZXhpc3Qgd2hlbiB0aGUgbWV0cmljIGV4aXN0c2ApO3JldHVybntkaXNwbGF5TmFtZTpuLHRhZzplLGZpbHRlcjpvfX0pKSkpKX10aGlzLmNvbHVtbnMuaW5jbHVkZXModlEuQ0hFQ0tCT1gpJiZ0aGlzLnN0b3JlLnNlbGVjdChOUykucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLHplKCgoKT0+dC5waXBlKGNlKCh0PT50Lmxlbmd0aD41MDApKSxiZSgxKSkpKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2gobHooe2xvY2FsaXplZE1lc3NhZ2U6IlRoZSBudW1iZXIgb2YgcnVucyBleGNlZWRzIDUwMC4gTmV3IHJ1bnMgYXJlIHVuc2VsZWN0ZWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIn0pKX0pKSx0aGlzLnNob3dHcm91cENvbnRyb2wkPXRoaXMuc3RvcmUuc2VsZWN0KGVFKS5waXBlKEl0KCh0PT50JiZ0aGlzLmNvbHVtbnMuaW5jbHVkZXModlEuUlVOX0NPTE9SKSkpKSx0aGlzLnN0b3JlLmRpc3BhdGNoKFVSKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkc30pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9Z2V0RmlsdGVyZWRJdGVtcyQodCl7cmV0dXJuIFd0KFt0LHRoaXMuc3RvcmUuc2VsZWN0KGdOKV0pLnBpcGUoSXQoKChbdCxlXSk9PntpZighZSlyZXR1cm4gdDtjb25zdCBuPXRoaXMuY29sdW1ucy5pbmNsdWRlcyh2US5FWFBFUklNRU5UX05BTUUpO3JldHVybiB0LmZpbHRlcigodD0+VE4oe3J1bk5hbWU6dC5ydW4ubmFtZSxleHBlcmltZW50QWxpYXM6dC5leHBlcmltZW50QWxpYXMsZXhwZXJpbWVudE5hbWU6dC5leHBlcmltZW50TmFtZX0sZSxuKSkpfSkpLHplKCh0PT50aGlzLnNob3dIcGFyYW1zQW5kTWV0cmljcz9XdCh0aGlzLnN0b3JlLnNlbGVjdChQUSx0aGlzLmV4cGVyaW1lbnRJZHMpLHRoaXMuc3RvcmUuc2VsZWN0KGtRLHRoaXMuZXhwZXJpbWVudElkcykpLnBpcGUoSXQoKChbZSxuXSk9PnQuZmlsdGVyKCgoe2hwYXJhbXM6dCxtZXRyaWNzOm99KT0+Wy4uLmUuZW50cmllcygpXS5ldmVyeSgoKFtlLG5dKT0+cjIobix0LmdldChlKSkpKSYmWy4uLm4uZW50cmllcygpXS5ldmVyeSgoKFt0LGVdKT0+cjIoZSxvLmdldCh0KSkpKSkpKSkpOkV0KHQpKSkpfXNvcnRlZEFuZFNsaWNlZEl0ZW1zJCh0KXtjb25zdCBlPVd0KFt0LHRoaXMuc3RvcmUuc2VsZWN0KHlOKV0pLnBpcGUoSXQoKChbdCxlXSk9PihmdW5jdGlvbiBuKHQsZSl7Y29uc3Qgbj1lLmtleSxvPVsuLi50XTtyZXR1cm4gbnVsbD09PW58fGUuZGlyZWN0aW9uPT09Rk4uVU5TRVR8fG8uc29ydCgoKHQsbyk9Pntjb25zdCBpPWEyKHQsbiksYT1hMihvLG4pO2lmKGkubGVuZ3RoIT09YS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBJbnZhcmlhbnQgZXJyb3I6IGEgZ2l2ZW4gc29ydCBzaG91bGQgcmVzdWx0IGluIHNhbWUgbnVtYmVyIG9mIGl0ZW1zOiAke2V9YCk7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0IG49aVt0XSxvPWFbdF07aWYobiE9PW8pe2lmKHZvaWQgMD09PW58fHZvaWQgMD09PW8pcmV0dXJuIHZvaWQgMD09PW8/LTE6MTtpZih0eXBlb2YgbiE9dHlwZW9mIG8pdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY29tcGFyZSB2YWx1ZXMgb2YgZGlmZmVyZW50IHR5cGVzOiAke3R5cGVvZiBufSB2cy4gJHt0eXBlb2Ygb31gKTtyZXR1cm4gbjxvPT0oZS5kaXJlY3Rpb249PT1GTi5BU0MpPy0xOjF9fXJldHVybiAwfSkpLG99KSh0LGUpKSkpO3JldHVybiBXdChbZSx0aGlzLnN0b3JlLnNlbGVjdChiTildKS5waXBlKEl0KCgoW3QsZV0pPT57aWYoIXRoaXMudXNlUGFnaW5hdGlvbilyZXR1cm4gdC5zbGljZSgpO2NvbnN0e3BhZ2VTaXplOm4scGFnZUluZGV4Om99PWU7cmV0dXJuIHQuc2xpY2UobypuLChvKzEpKm4pfSkpLE5lKFtdKSl9Z2V0UnVuVGFibGVJdGVtc0ZvckV4cGVyaW1lbnQodCl7cmV0dXJuIFd0KFt0aGlzLnN0b3JlLnNlbGVjdChsTix7ZXhwZXJpbWVudElkOnR9KSx0aGlzLnN0b3JlLnNlbGVjdCh1QSx7ZXhwZXJpbWVudElkOnR9KSx0aGlzLnN0b3JlLnNlbGVjdChOTiksdGhpcy5zdG9yZS5zZWxlY3Qoek4pLHRoaXMuc3RvcmUuc2VsZWN0KHpTKV0pLnBpcGUoSXQoKChbZSxuLG8saSxhXSk9PmUubWFwKChlPT57Y29uc3Qgcj1uZXcgTWFwOyhlLmhwYXJhbXN8fFtdKS5mb3JFYWNoKCh0PT57ci5zZXQodC5uYW1lLHQudmFsdWUpfSkpO2NvbnN0IHM9bmV3IE1hcDtyZXR1cm4oZS5tZXRyaWNzfHxbXSkuZm9yRWFjaCgodD0+e3Muc2V0KHQudGFnLHQudmFsdWUpfSkpLHtydW46ZSxleHBlcmltZW50TmFtZToobnVsbD09bj92b2lkIDA6bi5uYW1lKXx8IiIsZXhwZXJpbWVudEFsaWFzOmFbdF0sc2VsZWN0ZWQ6Qm9vbGVhbihvJiZvLmdldChlLmlkKSkscnVuQ29sb3I6aVtlLmlkXSxocGFyYW1zOnIsbWV0cmljczpzfX0pKSkpKX1vblJ1blNlbGVjdGlvblRvZ2dsZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKEhSKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxydW5JZDp0LnJ1bi5pZH0pKX1vblBhZ2VTZWxlY3Rpb25Ub2dnbGUodCl7Y29uc3R7aXRlbXM6ZX09dCxuPWUubWFwKCgoe3J1bjp0fSk9PnQuaWQpKTt0aGlzLnN0b3JlLmRpc3BhdGNoKEZSKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxydW5JZHM6bn0pKX1vblBhZ2luYXRpb25DaGFuZ2UodCl7aWYoIXRoaXMudXNlUGFnaW5hdGlvbil0aHJvdyBuZXcgRXJyb3IoIlBhZ2luYXRpb24gZXZlbnRzIGNhbm5vdCBiZSBkaXNwYXRjaGVkIHdoZW4gcGFnaW5hdGlvbiBpcyBkaXNhYmxlZCIpO2NvbnN0e3BhZ2VJbmRleDplLHBhZ2VTaXplOm59PXQ7dGhpcy5zdG9yZS5kaXNwYXRjaChMUih7cGFnZUluZGV4OmUscGFnZVNpemU6bn0pKX1vblNvcnRDaGFuZ2UodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChCUih0KSl9b25SZWdleEZpbHRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKFZSKHtyZWdleFN0cmluZzp0fSkpfW9uUnVuQ29sb3JDaGFuZ2Uoe3J1bklkOnQsbmV3Q29sb3I6ZX0pe3RoaXMuc3RvcmUuZGlzcGF0Y2goalIoe3J1bklkOnQsbmV3Q29sb3I6ZX0pKX1vbkhwYXJhbURpc2NyZXRlRmlsdGVyQ2hhbmdlZCh0KXtjb25zdHtocGFyYW1OYW1lOmUsZmlsdGVyVmFsdWVzOm4saW5jbHVkZVVuZGVmaW5lZDpvfT10O3RoaXMuc3RvcmUuZGlzcGF0Y2goS1Ioe2V4cGVyaW1lbnRJZHM6dGhpcy5leHBlcmltZW50SWRzLGhwYXJhbU5hbWU6ZSxmaWx0ZXJWYWx1ZXM6bixpbmNsdWRlVW5kZWZpbmVkOm99KSl9b25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQodCl7Y29uc3R7bmFtZTplLGZpbHRlckxvd2VyVmFsdWU6bixmaWx0ZXJVcHBlclZhbHVlOm8saW5jbHVkZVVuZGVmaW5lZDppfT10O3RoaXMuc3RvcmUuZGlzcGF0Y2goSlIoe2V4cGVyaW1lbnRJZHM6dGhpcy5leHBlcmltZW50SWRzLGhwYXJhbU5hbWU6ZSxmaWx0ZXJMb3dlclZhbHVlOm4sZmlsdGVyVXBwZXJWYWx1ZTpvLGluY2x1ZGVVbmRlZmluZWQ6aX0pKX1vbk1ldHJpY0ZpbHRlckNoYW5nZWQodCl7Y29uc3R7bmFtZTplLGluY2x1ZGVVbmRlZmluZWQ6bixmaWx0ZXJMb3dlclZhbHVlOm8sZmlsdGVyVXBwZXJWYWx1ZTppfT10O3RoaXMuc3RvcmUuZGlzcGF0Y2goUVIoe2V4cGVyaW1lbnRJZHM6dGhpcy5leHBlcmltZW50SWRzLG1ldHJpY1RhZzplLGluY2x1ZGVVbmRlZmluZWQ6bixmaWx0ZXJMb3dlclZhbHVlOm8sZmlsdGVyVXBwZXJWYWx1ZTppfSkpfX1zMi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8czIpKFNtKEl3KSl9LHMyLsm1Y21wPXRvKHt0eXBlOnMyLHNlbGVjdG9yczpbWyJydW5zLXRhYmxlIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJmbGV4LWxheW91dCIsbi51c2VGbGV4aWJsZUxheW91dCl9LGlucHV0czp7dXNlRmxleGlibGVMYXlvdXQ6InVzZUZsZXhpYmxlTGF5b3V0Iix1c2VQYWdpbmF0aW9uOiJ1c2VQYWdpbmF0aW9uIixjb2x1bW5zOiJjb2x1bW5zIixleHBlcmltZW50SWRzOiJleHBlcmltZW50SWRzIixzaG93SHBhcmFtc0FuZE1ldHJpY3M6InNob3dIcGFyYW1zQW5kTWV0cmljcyJ9LGRlY2xzOjEyLHZhcnM6MzgsY29uc3RzOltbMywiZXhwZXJpbWVudElkcyIsInVzZUZsZXhpYmxlTGF5b3V0IiwibnVtU2VsZWN0ZWRJdGVtcyIsImNvbHVtbnMiLCJocGFyYW1Db2x1bW5zIiwibWV0cmljQ29sdW1ucyIsInNob3dFeHBlcmltZW50TmFtZSIsInBhZ2VJdGVtcyIsImZpbHRlcmVkSXRlbXNMZW5ndGgiLCJhbGxJdGVtc0xlbmd0aCIsImxvYWRpbmciLCJwYWdpbmF0aW9uT3B0aW9uIiwicmVnZXhGaWx0ZXIiLCJzaG93R3JvdXBDb250cm9sIiwic29ydE9wdGlvbiIsInVzZVBhZ2luYXRpb24iLCJvblNlbGVjdGlvblRvZ2dsZSIsIm9uUGFnZVNlbGVjdGlvblRvZ2dsZSIsIm9uUGFnaW5hdGlvbkNoYW5nZSIsIm9uUmVnZXhGaWx0ZXJDaGFuZ2UiLCJvblNvcnRDaGFuZ2UiLCJvblJ1bkNvbG9yQ2hhbmdlIiwib25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQiLCJvbkhwYXJhbURpc2NyZXRlRmlsdGVyQ2hhbmdlZCIsIm9uTWV0cmljRmlsdGVyQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwicnVucy10YWJsZS1jb21wb25lbnQiLDApLFZtKCJvblNlbGVjdGlvblRvZ2dsZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25SdW5TZWxlY3Rpb25Ub2dnbGUoZSl9KSkoIm9uUGFnZVNlbGVjdGlvblRvZ2dsZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25QYWdlU2VsZWN0aW9uVG9nZ2xlKGUpfSkpKCJvblBhZ2luYXRpb25DaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUGFnaW5hdGlvbkNoYW5nZShlKX0pKSgib25SZWdleEZpbHRlckNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25SZWdleEZpbHRlckNoYW5nZShlKX0pKSgib25Tb3J0Q2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblNvcnRDaGFuZ2UoZSl9KSkoIm9uUnVuQ29sb3JDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUnVuQ29sb3JDaGFuZ2UoZSl9KSkoIm9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZChlKX0pKSgib25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkKGUpfSkpKCJvbk1ldHJpY0ZpbHRlckNoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uTWV0cmljRmlsdGVyQ2hhbmdlZChlKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBaCg0LCJhc3luYyIpLEFoKDUsImFzeW5jIiksQWgoNiwiYXN5bmMiKSxBaCg3LCJhc3luYyIpLEFoKDgsImFzeW5jIiksQWgoOSwiYXN5bmMiKSxBaCgxMCwiYXN5bmMiKSxBaCgxMSwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJleHBlcmltZW50SWRzIixuLmV4cGVyaW1lbnRJZHMpKCJ1c2VGbGV4aWJsZUxheW91dCIsbi51c2VGbGV4aWJsZUxheW91dCkoIm51bVNlbGVjdGVkSXRlbXMiLFRoKDEsMTYsbi5udW1TZWxlY3RlZEl0ZW1zJCkpKCJjb2x1bW5zIixuLmNvbHVtbnMpKCJocGFyYW1Db2x1bW5zIixUaCgyLDE4LG4uaHBhcmFtQ29sdW1ucyQpKSgibWV0cmljQ29sdW1ucyIsVGgoMywyMCxuLm1ldHJpY0NvbHVtbnMkKSkoInNob3dFeHBlcmltZW50TmFtZSIsbi5pc0V4cGVyaW1lbnROYW1lVmlzaWJsZSgpKSgicGFnZUl0ZW1zIixUaCg0LDIyLG4ucGFnZUl0ZW1zJCkpKCJmaWx0ZXJlZEl0ZW1zTGVuZ3RoIixUaCg1LDI0LG4uZmlsdGVyZWRJdGVtc0xlbmd0aCQpKSgiYWxsSXRlbXNMZW5ndGgiLFRoKDYsMjYsbi5hbGxJdGVtc0xlbmd0aCQpKSgibG9hZGluZyIsVGgoNywyOCxuLmxvYWRpbmckKSkoInBhZ2luYXRpb25PcHRpb24iLFRoKDgsMzAsbi5wYWdpbmF0aW9uT3B0aW9uJCkpKCJyZWdleEZpbHRlciIsVGgoOSwzMixuLnJlZ2V4RmlsdGVyJCkpKCJzaG93R3JvdXBDb250cm9sIixUaCgxMCwzNCxuLnNob3dHcm91cENvbnRyb2wkKSkoInNvcnRPcHRpb24iLFRoKDExLDM2LG4uc29ydE9wdGlvbiQpKSgidXNlUGFnaW5hdGlvbiIsbi51c2VQYWdpbmF0aW9uKX0sZGlyZWN0aXZlczpbbzJdLHBpcGVzOlt3TV0sc3R5bGVzOlsiLmZsZXgtbGF5b3V0W19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG5cbiAgICAgIC5mbGV4LWxheW91dFtfbmdob3N0LSVDT01QJV0gICAgPiBydW5zLXRhYmxlLWNvbXBvbmVudFtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoczIsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoicnVucy10YWJsZSIsdGVtcGxhdGU6J1xuICAgIDxydW5zLXRhYmxlLWNvbXBvbmVudFxuICAgICAgW2V4cGVyaW1lbnRJZHNdPSJleHBlcmltZW50SWRzIlxuICAgICAgW3VzZUZsZXhpYmxlTGF5b3V0XT0idXNlRmxleGlibGVMYXlvdXQiXG4gICAgICBbbnVtU2VsZWN0ZWRJdGVtc109Im51bVNlbGVjdGVkSXRlbXMkIHwgYXN5bmMiXG4gICAgICBbY29sdW1uc109ImNvbHVtbnMiXG4gICAgICBbaHBhcmFtQ29sdW1uc109ImhwYXJhbUNvbHVtbnMkIHwgYXN5bmMiXG4gICAgICBbbWV0cmljQ29sdW1uc109Im1ldHJpY0NvbHVtbnMkIHwgYXN5bmMiXG4gICAgICBbc2hvd0V4cGVyaW1lbnROYW1lXT0iaXNFeHBlcmltZW50TmFtZVZpc2libGUoKSJcbiAgICAgIFtwYWdlSXRlbXNdPSJwYWdlSXRlbXMkIHwgYXN5bmMiXG4gICAgICBbZmlsdGVyZWRJdGVtc0xlbmd0aF09ImZpbHRlcmVkSXRlbXNMZW5ndGgkIHwgYXN5bmMiXG4gICAgICBbYWxsSXRlbXNMZW5ndGhdPSJhbGxJdGVtc0xlbmd0aCQgfCBhc3luYyJcbiAgICAgIFtsb2FkaW5nXT0ibG9hZGluZyQgfCBhc3luYyJcbiAgICAgIFtwYWdpbmF0aW9uT3B0aW9uXT0icGFnaW5hdGlvbk9wdGlvbiQgfCBhc3luYyJcbiAgICAgIFtyZWdleEZpbHRlcl09InJlZ2V4RmlsdGVyJCB8IGFzeW5jIlxuICAgICAgW3Nob3dHcm91cENvbnRyb2xdPSJzaG93R3JvdXBDb250cm9sJCB8IGFzeW5jIlxuICAgICAgW3NvcnRPcHRpb25dPSJzb3J0T3B0aW9uJCB8IGFzeW5jIlxuICAgICAgW3VzZVBhZ2luYXRpb25dPSJ1c2VQYWdpbmF0aW9uIlxuICAgICAgKG9uU2VsZWN0aW9uVG9nZ2xlKT0ib25SdW5TZWxlY3Rpb25Ub2dnbGUoJGV2ZW50KSJcbiAgICAgIChvblBhZ2VTZWxlY3Rpb25Ub2dnbGUpPSJvblBhZ2VTZWxlY3Rpb25Ub2dnbGUoJGV2ZW50KSJcbiAgICAgIChvblBhZ2luYXRpb25DaGFuZ2UpPSJvblBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KSJcbiAgICAgIChvblJlZ2V4RmlsdGVyQ2hhbmdlKT0ib25SZWdleEZpbHRlckNoYW5nZSgkZXZlbnQpIlxuICAgICAgKG9uU29ydENoYW5nZSk9Im9uU29ydENoYW5nZSgkZXZlbnQpIlxuICAgICAgKG9uUnVuQ29sb3JDaGFuZ2UpPSJvblJ1bkNvbG9yQ2hhbmdlKCRldmVudCkiXG4gICAgICAob25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQpPSJvbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZCgkZXZlbnQpIlxuICAgICAgKG9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkKT0ib25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQoJGV2ZW50KSJcbiAgICAgIChvbk1ldHJpY0ZpbHRlckNoYW5nZWQpPSJvbk1ldHJpY0ZpbHRlckNoYW5nZWQoJGV2ZW50KSJcbiAgICA+PC9ydW5zLXRhYmxlLWNvbXBvbmVudD5cbiAgJyxob3N0OnsiW2NsYXNzLmZsZXgtbGF5b3V0XSI6InVzZUZsZXhpYmxlTGF5b3V0In0sc3R5bGVzOlsiXG4gICAgICA6aG9zdC5mbGV4LWxheW91dCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LmZsZXgtbGF5b3V0ID4gcnVucy10YWJsZS1jb21wb25lbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLHt1c2VGbGV4aWJsZUxheW91dDpbe3R5cGU6eHl9XSx1c2VQYWdpbmF0aW9uOlt7dHlwZTp4eX1dLGNvbHVtbnM6W3t0eXBlOnh5fV0sZXhwZXJpbWVudElkczpbe3R5cGU6eHl9XSxzaG93SHBhcmFtc0FuZE1ldHJpY3M6W3t0eXBlOnh5fV19KTtjbGFzcyBsMnt9bDIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGwyKX0sbDIuybVjbXA9dG8oe3R5cGU6bDIsc2VsZWN0b3JzOltbInJ1bnMtc2VsZWN0b3ItY29tcG9uZW50Il1dLGlucHV0czp7ZXhwZXJpbWVudElkczoiZXhwZXJpbWVudElkcyIsc2hvd0hwYXJhbXNBbmRNZXRyaWNzOiJzaG93SHBhcmFtc0FuZE1ldHJpY3MiLGNvbHVtbnM6ImNvbHVtbnMifSxkZWNsczoxLHZhcnM6NCxjb25zdHM6W1szLCJ1c2VGbGV4aWJsZUxheW91dCIsImNvbHVtbnMiLCJleHBlcmltZW50SWRzIiwic2hvd0hwYXJhbXNBbmRNZXRyaWNzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlRtKDAsInJ1bnMtdGFibGUiLDApLDImZSYmRG0oInVzZUZsZXhpYmxlTGF5b3V0IiwhMCkoImNvbHVtbnMiLG4uY29sdW1ucykoImV4cGVyaW1lbnRJZHMiLG4uZXhwZXJpbWVudElkcykoInNob3dIcGFyYW1zQW5kTWV0cmljcyIsbi5zaG93SHBhcmFtc0FuZE1ldHJpY3MpfSxkaXJlY3RpdmVzOltzMl0sc3R5bGVzOlsicnVucy10YWJsZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGwyLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InJ1bnMtc2VsZWN0b3ItY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPHJ1bnMtdGFibGVcbiAgICAgIFt1c2VGbGV4aWJsZUxheW91dF09InRydWUiXG4gICAgICBbY29sdW1uc109ImNvbHVtbnMiXG4gICAgICBbZXhwZXJpbWVudElkc109ImV4cGVyaW1lbnRJZHMiXG4gICAgICBbc2hvd0hwYXJhbXNBbmRNZXRyaWNzXT0ic2hvd0hwYXJhbXNBbmRNZXRyaWNzIlxuICAgID48L3J1bnMtdGFibGU+XG4gICcsc3R5bGVzOlsiXG4gICAgICBydW5zLXRhYmxlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse2V4cGVyaW1lbnRJZHM6W3t0eXBlOnh5fV0sc2hvd0hwYXJhbXNBbmRNZXRyaWNzOlt7dHlwZTp4eX1dLGNvbHVtbnM6W3t0eXBlOnh5fV19KTtjbGFzcyBjMntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5leHBlcmltZW50SWRzJD10aGlzLnN0b3JlLnNlbGVjdChUUykucGlwZShJdCgodD0+bnVsbCE9dD90OltdKSkpLHRoaXMuY29sdW1ucyQ9dGhpcy5zdG9yZS5zZWxlY3QoVFMpLnBpcGUoSXQoKHQ9Plt2US5DSEVDS0JPWCx2US5SVU5fTkFNRSx0JiZ0Lmxlbmd0aD4xP3ZRLkVYUEVSSU1FTlRfTkFNRTpudWxsLHZRLlJVTl9DT0xPUl0uZmlsdGVyKCh0PT5udWxsIT09dCkpKSkpfX1jMi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YzIpKFNtKEl3KSl9LGMyLsm1Y21wPXRvKHt0eXBlOmMyLHNlbGVjdG9yczpbWyJydW5zLXNlbGVjdG9yIl1dLGlucHV0czp7c2hvd0hwYXJhbXNBbmRNZXRyaWNzOiJzaG93SHBhcmFtc0FuZE1ldHJpY3MifSxkZWNsczozLHZhcnM6Nyxjb25zdHM6W1szLCJleHBlcmltZW50SWRzIiwiY29sdW1ucyIsInNob3dIcGFyYW1zQW5kTWV0cmljcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwicnVucy1zZWxlY3Rvci1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSksMiZlJiZEbSgiZXhwZXJpbWVudElkcyIsVGgoMSwzLG4uZXhwZXJpbWVudElkcyQpKSgiY29sdW1ucyIsVGgoMiw1LG4uY29sdW1ucyQpKSgic2hvd0hwYXJhbXNBbmRNZXRyaWNzIixuLnNob3dIcGFyYW1zQW5kTWV0cmljcyl9LGRpcmVjdGl2ZXM6W2wyXSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYzIsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoicnVucy1zZWxlY3RvciIsdGVtcGxhdGU6J1xuICAgIDxydW5zLXNlbGVjdG9yLWNvbXBvbmVudFxuICAgICAgW2V4cGVyaW1lbnRJZHNdPSJleHBlcmltZW50SWRzJCB8IGFzeW5jIlxuICAgICAgW2NvbHVtbnNdPSJjb2x1bW5zJCB8IGFzeW5jIlxuICAgICAgW3Nob3dIcGFyYW1zQW5kTWV0cmljc109InNob3dIcGFyYW1zQW5kTWV0cmljcyJcbiAgICA+PC9ydW5zLXNlbGVjdG9yLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLHtzaG93SHBhcmFtc0FuZE1ldHJpY3M6W3t0eXBlOnh5fV19KTtjb25zdCBkMj1uZXcgV2Vha01hcDtjbGFzcyBwMntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMucm9vdD10LHRoaXMuYnVmZmVyPWUsdGhpcy5kZXN0cm95ZWRUYXJnZXRzPW5ldyBXZWFrU2V0fWluaXRpYWxpemUodCl7dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcnx8KHRoaXMuaW50ZXJzZWN0aW9uQ2FsbGJhY2s9dCx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLm9uQ2FyZEludGVyc2VjdGlvbi5iaW5kKHRoaXMpLHt0aHJlc2hvbGQ6MCxyb290OnRoaXMucm9vdCxyb290TWFyZ2luOnRoaXMuYnVmZmVyfSkpfWFkZCh0KXt0aGlzLmVuc3VyZUluaXRpYWxpemVkKCkmJnRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0KX13aWxsRGVzdHJveSh0KXt0aGlzLmVuc3VyZUluaXRpYWxpemVkKCkmJnRoaXMuZGVzdHJveWVkVGFyZ2V0cy5hZGQodCl9ZW5zdXJlSW5pdGlhbGl6ZWQoKXtpZighdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcil0aHJvdyBuZXcgRXJyb3IoIkNhcmRPYnNlcnZlciBtdXN0IGJlIGluaXRpYWxpemVkIGJlZm9yZSB1c2UiKTtyZXR1cm4hMH1vbkNhcmRJbnRlcnNlY3Rpb24odCl7dC5zb3J0KCgodCxlKT0+dC50aW1lLWUudGltZSkpO2NvbnN0IGU9bmV3IFNldCxuPW5ldyBTZXQ7Zm9yKGNvbnN0e2lzSW50ZXJzZWN0aW5nOm8sdGFyZ2V0Oml9b2YgdClvPyhlLmFkZChpKSxuLmRlbGV0ZShpKSk6KGUuZGVsZXRlKGkpLG4uYWRkKGkpKSx0aGlzLmRlc3Ryb3llZFRhcmdldHMuaGFzKGkpJiYhbyYmKHRoaXMuZGVzdHJveWVkVGFyZ2V0cy5kZWxldGUoaSksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci51bm9ic2VydmUoaSkpO3RoaXMuaW50ZXJzZWN0aW9uQ2FsbGJhY2soZSxuKX1vbkNhcmRJbnRlcnNlY3Rpb25Gb3JUZXN0KHQpe3RoaXMub25DYXJkSW50ZXJzZWN0aW9uKHQpfX1jbGFzcyBtMntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuaG9zdD10LHRoaXMuc3RvcmU9ZX1vbkNhcmRJbnRlcnNlY3Rpb24odCxlKXtjb25zdCBuPVsuLi50XS5tYXAoKHQ9Pntjb25zdCBlPWQyLmdldCh0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkEgQ2FyZE9ic2VydmVyIGVsZW1lbnQgbXVzdCBoYXZlIGFuIGFzc29jaWF0ZWQgZWxlbWVudCBpZCBhbmQgY2FyZCBpZC4iKTtyZXR1cm57ZWxlbWVudElkOmUuZWxlbWVudElkLGNhcmRJZDplLmNhcmRJZH19KSksbz1bLi4uZV0ubWFwKCh0PT57Y29uc3QgZT1kMi5nZXQodCk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJBIENhcmRPYnNlcnZlciBlbGVtZW50IG11c3QgaGF2ZSBhbiBhc3NvY2lhdGVkIGVsZW1lbnQgaWQgYW5kIGNhcmQgaWQuIik7cmV0dXJue2VsZW1lbnRJZDplLmVsZW1lbnRJZCxjYXJkSWQ6ZS5jYXJkSWR9fSkpO3RoaXMuc3RvcmUuZGlzcGF0Y2goJEUoe2VudGVyZWRDYXJkczpuLGV4aXRlZENhcmRzOm99KSl9bmdPbkluaXQoKXtjb25zdCB0PXRoaXMuaG9zdC5uYXRpdmVFbGVtZW50O2QyLnNldCh0LHtlbGVtZW50SWQ6KGhRKyssU3ltYm9sKGhRKSksY2FyZElkOnRoaXMuY2FyZElkfSksdGhpcy5jYXJkT2JzZXJ2ZXJ8fCh0aGlzLmNhcmRPYnNlcnZlcj1uZXcgcDIpLHRoaXMuY2FyZE9ic2VydmVyLmluaXRpYWxpemUodGhpcy5vbkNhcmRJbnRlcnNlY3Rpb24uYmluZCh0aGlzKSksdGhpcy5jYXJkT2JzZXJ2ZXIuYWRkKHQpfW5nT25EZXN0cm95KCl7dGhpcy5jYXJkT2JzZXJ2ZXImJnRoaXMuY2FyZE9ic2VydmVyLndpbGxEZXN0cm95KHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50KX1ob3N0Rm9yVGVzdCgpe3JldHVybiB0aGlzLmhvc3R9fW0yLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxtMikoU20oaGcpLFNtKEl3KSl9LG0yLsm1ZGlyPWxvKHt0eXBlOm0yLHNlbGVjdG9yczpbWyIiLCJjYXJkTGF6eUxvYWRlciIsIiJdXSxpbnB1dHM6e2NhcmRJZDpbImNhcmRMYXp5TG9hZGVyIiwiY2FyZElkIl0sY2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobTIsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2NhcmRMYXp5TG9hZGVyXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6SXd9XX0pLHtjYXJkSWQ6W3t0eXBlOnh5LGFyZ3M6WyJjYXJkTGF6eUxvYWRlciJdfV0sY2FyZE9ic2VydmVyOlt7dHlwZTp4eX1dfSk7Y29uc3QgdTI9Ii9zY2FsYXJfc3VtbWFyeSI7ZnVuY3Rpb24gZjIodCxlKXtsZXQgbj10O3JldHVybiBlJiZ0LnN0YXJ0c1dpdGgoZSsiLyIpJiYobj10LnNsaWNlKGUubGVuZ3RoKzEpKSxuLmVuZHNXaXRoKHUyKSYmKG49bi5zbGljZSgwLC11Mi5sZW5ndGgpKSxufHx0fWZ1bmN0aW9uIGcyKHQsZSl7bGV0IG49MCxvPTA7Zm9yKDs7KXtpZihuPT09dC5sZW5ndGgpcmV0dXJuIG89PT1lLmxlbmd0aD8wOi0xO2lmKG89PT1lLmxlbmd0aClyZXR1cm4gMTtpZihiMih0W25dKSYmYjIoZVtvXSkpe2NvbnN0IGk9bixhPW87bj1oMih0LG4rMSksbz1oMihlLG8rMSk7Y29uc3Qgcj1OdW1iZXIodC5zbGljZShpLG4pKSxzPU51bWJlcihlLnNsaWNlKGEsbykpO2lmKHI8cylyZXR1cm4tMTtpZihyPnMpcmV0dXJuIDF9ZWxzZXtpZih5Mih0W25dKSl7aWYoIXkyKGVbb10pKXJldHVybi0xfWVsc2V7aWYoeTIoZVtvXSkpcmV0dXJuIDE7aWYodFtuXTxlW29dKXJldHVybi0xO2lmKHRbbl0+ZVtvXSlyZXR1cm4gMX1uKyssbysrfX19ZnVuY3Rpb24gaDIodCxlKXtsZXQgbjshKGZ1bmN0aW9uKHQpe3RbdC5OQVRVUkFMPTBdPSJOQVRVUkFMIix0W3QuUkVBTD0xXT0iUkVBTCIsdFt0LkVYUE9ORU5UX1NJR049Ml09IkVYUE9ORU5UX1NJR04iLHRbdC5FWFBPTkVOVD0zXT0iRVhQT05FTlQifSkobnx8KG49e30pKTtsZXQgbz1uLk5BVFVSQUwsaT1lO2Zvcig7aTx0Lmxlbmd0aDtpKyspaWYobz09PW4uTkFUVVJBTCl7aWYoIi4iPT09dFtpXSlvPW4uUkVBTDtlbHNlIGlmKCJlIj09PXRbaV18fCJFIj09PXRbaV0pbz1uLkVYUE9ORU5UX1NJR047ZWxzZSBpZighYjIodFtpXSkpYnJlYWt9ZWxzZSBpZihvPT09bi5SRUFMKXtpZigiZSI9PT10W2ldfHwiRSI9PT10W2ldKW89bi5FWFBPTkVOVF9TSUdOO2Vsc2UgaWYoIWIyKHRbaV0pKWJyZWFrfWVsc2UgaWYobz09PW4uRVhQT05FTlRfU0lHTil7aWYoIWIyKHRbaV0pJiYiKyIhPT10W2ldJiYiLSIhPT10W2ldKWJyZWFrO289bi5FWFBPTkVOVH1lbHNlIGlmKG89PT1uLkVYUE9ORU5UJiYhYjIodFtpXSkpYnJlYWs7cmV0dXJuIGl9ZnVuY3Rpb24gYjIodCl7cmV0dXJuIjAiPD10JiZ0PD0iOSJ9ZnVuY3Rpb24geTIodCl7cmV0dXJuIi8iPT09dHx8YjIodCl9ZnVuY3Rpb24gXzIodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiw3KX1mdW5jdGlvbiBDMih0LGUpe2lmKDEmdCYmKFJtKDAsIm1hdC1vcHRpb24iLDgpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtEbSgidmFsdWUiLHQpLGpwKCJ0aXRsZSIsdCkscmMoMSksU3UodCl9fWZ1bmN0aW9uIE0yKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiw5KSxSbSgxLCJlbSIpLGt1KDIpLEFoKDMsIm51bWJlciIpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMiksRHUoImFuZCAiLFRoKDMsMSx0LmNvbXBsZXRpb25zLmxlbmd0aC0yNSksIiBtb3JlIHRhZ3MgbWF0Y2hlZCIpfX1jbGFzcyB2Mntjb25zdHJ1Y3Rvcigpe3RoaXMub25SZWdleEZpbHRlclZhbHVlQ2hhbmdlPW5ldyBMaH1vbkNvbXBsZXRpb25BY2NlcHRlZCh0KXt0aGlzLm9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KChmdW5jdGlvbiBlKHQpe3JldHVybiB0LnJlcGxhY2UoQkwsIlxcJCYiKX0pKHQpKX19djIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHYyKX0sdjIuybVjbXA9dG8oe3R5cGU6djIsc2VsZWN0b3JzOltbIm1ldHJpY3MtdGFnLWZpbHRlci1jb21wb25lbnQiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoInZhbGlkIixuLmlzUmVnZXhGaWx0ZXJWYWxpZCl9LGlucHV0czp7cmVnZXhGaWx0ZXJWYWx1ZToicmVnZXhGaWx0ZXJWYWx1ZSIsaXNSZWdleEZpbHRlclZhbGlkOiJpc1JlZ2V4RmlsdGVyVmFsaWQiLGNvbXBsZXRpb25zOiJjb21wbGV0aW9ucyJ9LG91dHB1dHM6e29uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZToib25SZWdleEZpbHRlclZhbHVlQ2hhbmdlIn0sZGVjbHM6Nyx2YXJzOjUsY29uc3RzOltbMSwidGFnLWZpbHRlciJdLFsicGxhY2Vob2xkZXIiLCJGaWx0ZXIgdGFncyAocmVnZXgpIiwzLCJ2YWx1ZSIsIm1hdEF1dG9jb21wbGV0ZSIsImlucHV0Il0sWyJzdmdJY29uIiwiZXJyb3JfMjRweCIsImNsYXNzIiwiZXJyb3ItaWNvbiIsInRpdGxlIiwiSW52YWxpZCByZWdleCBmaWx0ZXIuIFRoZSByZXN1bHQgbWF5IGJlIHN0YWxlLiIsNCwibmdJZiJdLFsxLCJ0YWctb3B0aW9ucyIsMywib3B0aW9uU2VsZWN0ZWQiXSxbImZpbHRlck1hdGNoZXMiLCJtYXRBdXRvY29tcGxldGUiXSxbImNsYXNzIiwib3B0aW9uIiwzLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsImFuZC1tb3JlIiw0LCJuZ0lmIl0sWyJzdmdJY29uIiwiZXJyb3JfMjRweCIsInRpdGxlIiwiSW52YWxpZCByZWdleCBmaWx0ZXIuIFRoZSByZXN1bHQgbWF5IGJlIHN0YWxlLiIsMSwiZXJyb3ItaWNvbiJdLFsxLCJvcHRpb24iLDMsInZhbHVlIl0sWzEsImFuZC1tb3JlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsInRiLWZpbHRlci1pbnB1dCIsMSksVm0oImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChlLnRhcmdldC52YWx1ZSl9KSksQW0oKSxRcCgyLF8yLDEsMCwibWF0LWljb24iLDIpLEFtKCksUm0oMywibWF0LWF1dG9jb21wbGV0ZSIsMyw0KSxWbSgib3B0aW9uU2VsZWN0ZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uQ29tcGxldGlvbkFjY2VwdGVkKGUub3B0aW9uLnZhbHVlKX0pKSxRcCg1LEMyLDIsMywibWF0LW9wdGlvbiIsNSksUXAoNixNMiw0LDMsImRpdiIsNiksQW0oKSksMiZlKXtjb25zdCB0PSRwKDQpO3JjKDEpLERtKCJ2YWx1ZSIsbi5yZWdleEZpbHRlclZhbHVlKSgibWF0QXV0b2NvbXBsZXRlIix0KSxyYygxKSxEbSgibmdJZiIsIW4uaXNSZWdleEZpbHRlclZhbGlkKSxyYygzKSxEbSgibmdGb3JPZiIsbnVsbD09bi5jb21wbGV0aW9ucz9udWxsOm4uY29tcGxldGlvbnMuc2xpY2UoMCwyNSkpLHJjKDEpLERtKCJuZ0lmIiwobnVsbD09bi5jb21wbGV0aW9ucz9udWxsOm4uY29tcGxldGlvbnMubGVuZ3RoKT4yNSl9fSxkaXJlY3RpdmVzOltxMCxkTSxIMCxsTSxEVyxCSF0scGlwZXM6W0ZNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0udGFnLWZpbHRlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfXRiLWZpbHRlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjF9W19uZ2hvc3QtJUNPTVAlXXtjb2xvcjojMjEyMTIxfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXXtjb2xvcjojZmZmfVtfbmdob3N0LSVDT01QJV06bm90KC52YWxpZCl7Y29sb3I6I2M2MjgyOH1bX25naG9zdC0lQ09NUCVdOm5vdCgudmFsaWQpICAgLmVycm9yLWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNjNjI4Mjg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0gIC50YWctb3B0aW9ucyAub3B0aW9uLCAgIC50YWctb3B0aW9ucyAuYW5kLW1vcmV7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDozO2Rpc3BsYXk6LXdlYmtpdC1ib3g7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS40O3BhZGRpbmc6OHB4IDE2cHh9ICAudGFnLW9wdGlvbnMgLmFuZC1tb3Jle2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgICAudGFnLW9wdGlvbnMgLmFuZC1tb3JlLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAgIC50YWctb3B0aW9ucyAuYW5kLW1vcmV7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHYyLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtdGFnLWZpbHRlci1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJmaWx0ZXJfaW5wdXRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbImZpbHRlcl9pbnB1dF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cmVnZXhGaWx0ZXJWYWx1ZTpbe3R5cGU6eHl9XSxpc1JlZ2V4RmlsdGVyVmFsaWQ6W3t0eXBlOlB5LGFyZ3M6WyJjbGFzcy52YWxpZCJdfSx7dHlwZTp4eX1dLGNvbXBsZXRpb25zOlt7dHlwZTp4eX1dLG9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZTpbe3R5cGU6T3l9XX0pO2NsYXNzIHgye2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnRhZ0ZpbHRlciQ9dGhpcy5zdG9yZS5zZWxlY3QoQlQpLHRoaXMuaXNUYWdGaWx0ZXJSZWdleFZhbGlkJD10aGlzLnRhZ0ZpbHRlciQucGlwZShJdCgodD0+e3RyeXtyZXR1cm4gbmV3IFJlZ0V4cCh0KSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KSkpLHRoaXMuY29tcGxldGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KE1UKS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KHFUKSksSXQoKChbdCxlXSk9PnQuZmlsdGVyKCgoe3BsdWdpbjp0fSk9PiFlLnNpemV8fGUuaGFzKHQpKSkubWFwKCgoe3RhZzp0fSk9PnQpKSkpLEl0KCh0PT5bLi4ubmV3IFNldCh0KV0pKSxJdCgodD0+dC5zb3J0KGcyKSkpLGZlKHRoaXMuc3RvcmUuc2VsZWN0KEJUKSksSXQoKChbdCxlXSk9Pnt0cnl7cmV0dXJuW3QsbmV3IFJlZ0V4cChlLCJpIildfWNhdGNoKGUpe3JldHVyblt0LG51bGxdfX0pKSxjZSgoKFssdF0pPT5udWxsIT09dCkpLEl0KCgoW3QsZV0pPT50LmZpbHRlcigodD0+ZS50ZXN0KHQpKSkpKSl9b25UYWdGaWx0ZXJDaGFuZ2UodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChlUih7dGFnRmlsdGVyOnR9KSl9fXgyLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4MikoU20oSXcpKX0seDIuybVjbXA9dG8oe3R5cGU6eDIsc2VsZWN0b3JzOltbIm1ldHJpY3MtdGFnLWZpbHRlciJdXSxkZWNsczo0LHZhcnM6OSxjb25zdHM6W1szLCJyZWdleEZpbHRlclZhbHVlIiwiaXNSZWdleEZpbHRlclZhbGlkIiwiY29tcGxldGlvbnMiLCJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsIm1ldHJpY3MtdGFnLWZpbHRlci1jb21wb25lbnQiLDApLFZtKCJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uVGFnRmlsdGVyQ2hhbmdlKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFtKCkpLDImZSYmRG0oInJlZ2V4RmlsdGVyVmFsdWUiLFRoKDEsMyxuLnRhZ0ZpbHRlciQpKSgiaXNSZWdleEZpbHRlclZhbGlkIixUaCgyLDUsbi5pc1RhZ0ZpbHRlclJlZ2V4VmFsaWQkKSkoImNvbXBsZXRpb25zIixUaCgzLDcsbi5jb21wbGV0aW9ucyQpKX0sZGlyZWN0aXZlczpbdjJdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh4Mixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLXRhZy1maWx0ZXIiLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy10YWctZmlsdGVyLWNvbXBvbmVudFxuICAgICAgW3JlZ2V4RmlsdGVyVmFsdWVdPSJ0YWdGaWx0ZXIkIHwgYXN5bmMiXG4gICAgICBbaXNSZWdleEZpbHRlclZhbGlkXT0iaXNUYWdGaWx0ZXJSZWdleFZhbGlkJCB8IGFzeW5jIlxuICAgICAgW2NvbXBsZXRpb25zXT0iY29tcGxldGlvbnMkIHwgYXN5bmMiXG4gICAgICAob25SZWdleEZpbHRlclZhbHVlQ2hhbmdlKT0ib25UYWdGaWx0ZXJDaGFuZ2UoJGV2ZW50KSJcbiAgICA+PC9tZXRyaWNzLXRhZy1maWx0ZXItY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y29uc3QgTzI9WyJidXR0b24iXSxQMj1uZXcgR2EoIk1BVF9CVVRUT05fVE9HR0xFX0RFRkFVTFRfT1BUSU9OUyIpLHcyPW5ldyBHYSgiTWF0QnV0dG9uVG9nZ2xlR3JvdXAiKSxrMj17cHJvdmlkZTpJVix1c2VFeGlzdGluZzpxZSgoKCk9PkUyKSksbXVsdGk6ITB9O2xldCBTMj0wO2NsYXNzIEQye2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zb3VyY2U9dCx0aGlzLnZhbHVlPWV9fWNsYXNzIEUye2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fY2hhbmdlRGV0ZWN0b3I9dCx0aGlzLl92ZXJ0aWNhbD0hMSx0aGlzLl9tdWx0aXBsZT0hMSx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuPSgpPT57fSx0aGlzLl9vblRvdWNoZWQ9KCk9Pnt9LHRoaXMuX25hbWU9Im1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLSIrUzIrKyx0aGlzLnZhbHVlQ2hhbmdlPW5ldyBMaCx0aGlzLmNoYW5nZT1uZXcgTGgsdGhpcy5hcHBlYXJhbmNlPWUmJmUuYXBwZWFyYW5jZT9lLmFwcGVhcmFuY2U6InN0YW5kYXJkIn1nZXQgbmFtZSgpe3JldHVybiB0aGlzLl9uYW1lfXNldCBuYW1lKHQpe3RoaXMuX25hbWU9dCx0aGlzLl9idXR0b25Ub2dnbGVzJiZ0aGlzLl9idXR0b25Ub2dnbGVzLmZvckVhY2goKHQ9Pnt0Lm5hbWU9dGhpcy5fbmFtZSx0Ll9tYXJrRm9yQ2hlY2soKX0pKX1nZXQgdmVydGljYWwoKXtyZXR1cm4gdGhpcy5fdmVydGljYWx9c2V0IHZlcnRpY2FsKHQpe3RoaXMuX3ZlcnRpY2FsPXl6KHQpfWdldCB2YWx1ZSgpe2NvbnN0IHQ9dGhpcy5fc2VsZWN0aW9uTW9kZWw/dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQ6W107cmV0dXJuIHRoaXMubXVsdGlwbGU/dC5tYXAoKHQ9PnQudmFsdWUpKTp0WzBdP3RbMF0udmFsdWU6dm9pZCAwfXNldCB2YWx1ZSh0KXt0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKHQpLHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKX1nZXQgc2VsZWN0ZWQoKXtjb25zdCB0PXRoaXMuX3NlbGVjdGlvbk1vZGVsP3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkOltdO3JldHVybiB0aGlzLm11bHRpcGxlP3Q6dFswXXx8bnVsbH1nZXQgbXVsdGlwbGUoKXtyZXR1cm4gdGhpcy5fbXVsdGlwbGV9c2V0IG11bHRpcGxlKHQpe3RoaXMuX211bHRpcGxlPXl6KHQpfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9eXoodCksdGhpcy5fYnV0dG9uVG9nZ2xlcyYmdGhpcy5fYnV0dG9uVG9nZ2xlcy5mb3JFYWNoKCh0PT50Ll9tYXJrRm9yQ2hlY2soKSkpfW5nT25Jbml0KCl7dGhpcy5fc2VsZWN0aW9uTW9kZWw9bmV3IG9GKHRoaXMubXVsdGlwbGUsdm9pZCAwLCExKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoLi4udGhpcy5fYnV0dG9uVG9nZ2xlcy5maWx0ZXIoKHQ9PnQuY2hlY2tlZCkpKX13cml0ZVZhbHVlKHQpe3RoaXMudmFsdWU9dCx0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKX1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm49dH1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLl9vblRvdWNoZWQ9dH1zZXREaXNhYmxlZFN0YXRlKHQpe3RoaXMuZGlzYWJsZWQ9dH1fZW1pdENoYW5nZUV2ZW50KCl7Y29uc3QgdD10aGlzLnNlbGVjdGVkLGU9QXJyYXkuaXNBcnJheSh0KT90W3QubGVuZ3RoLTFdOnQsbj1uZXcgRDIoZSx0aGlzLnZhbHVlKTt0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKG4udmFsdWUpLHRoaXMuY2hhbmdlLmVtaXQobil9X3N5bmNCdXR0b25Ub2dnbGUodCxlLG49ITEsbz0hMSl7dGhpcy5tdWx0aXBsZXx8IXRoaXMuc2VsZWN0ZWR8fHQuY2hlY2tlZHx8KHRoaXMuc2VsZWN0ZWQuY2hlY2tlZD0hMSksdGhpcy5fc2VsZWN0aW9uTW9kZWw/ZT90aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QodCk6dGhpcy5fc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3QodCk6bz0hMCxvP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT50aGlzLl91cGRhdGVNb2RlbFZhbHVlKG4pKSk6dGhpcy5fdXBkYXRlTW9kZWxWYWx1ZShuKX1faXNTZWxlY3RlZCh0KXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uTW9kZWwmJnRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQodCl9X2lzUHJlY2hlY2tlZCh0KXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmF3VmFsdWUmJih0aGlzLm11bHRpcGxlJiZBcnJheS5pc0FycmF5KHRoaXMuX3Jhd1ZhbHVlKT90aGlzLl9yYXdWYWx1ZS5zb21lKChlPT5udWxsIT10LnZhbHVlJiZlPT09dC52YWx1ZSkpOnQudmFsdWU9PT10aGlzLl9yYXdWYWx1ZSl9X3NldFNlbGVjdGlvbkJ5VmFsdWUodCl7aWYodGhpcy5fcmF3VmFsdWU9dCx0aGlzLl9idXR0b25Ub2dnbGVzKWlmKHRoaXMubXVsdGlwbGUmJnQpe2lmKCFBcnJheS5pc0FycmF5KHQpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoIlZhbHVlIG11c3QgYmUgYW4gYXJyYXkgaW4gbXVsdGlwbGUtc2VsZWN0aW9uIG1vZGUuIik7dGhpcy5fY2xlYXJTZWxlY3Rpb24oKSx0LmZvckVhY2goKHQ9PnRoaXMuX3NlbGVjdFZhbHVlKHQpKSl9ZWxzZSB0aGlzLl9jbGVhclNlbGVjdGlvbigpLHRoaXMuX3NlbGVjdFZhbHVlKHQpfV9jbGVhclNlbGVjdGlvbigpe3RoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCksdGhpcy5fYnV0dG9uVG9nZ2xlcy5mb3JFYWNoKCh0PT50LmNoZWNrZWQ9ITEpKX1fc2VsZWN0VmFsdWUodCl7Y29uc3QgZT10aGlzLl9idXR0b25Ub2dnbGVzLmZpbmQoKGU9Pm51bGwhPWUudmFsdWUmJmUudmFsdWU9PT10KSk7ZSYmKGUuY2hlY2tlZD0hMCx0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoZSkpfV91cGRhdGVNb2RlbFZhbHVlKHQpe3QmJnRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpLHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKX19RTIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEUyKShTbShVZyksU20oUDIsOCkpfSxFMi7JtWRpcj1sbyh7dHlwZTpFMixzZWxlY3RvcnM6W1sibWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYkaChvLEEyLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX2J1dHRvblRvZ2dsZXM9dCl9fSxob3N0QXR0cnM6WyJyb2xlIiwiZ3JvdXAiLDEsIm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIl0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmKGpwKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkKSxwdSgibWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwiLG4udmVydGljYWwpKCJtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIiwic3RhbmRhcmQiPT09bi5hcHBlYXJhbmNlKSl9LGlucHV0czp7YXBwZWFyYW5jZToiYXBwZWFyYW5jZSIsbmFtZToibmFtZSIsdmVydGljYWw6InZlcnRpY2FsIix2YWx1ZToidmFsdWUiLG11bHRpcGxlOiJtdWx0aXBsZSIsZGlzYWJsZWQ6ImRpc2FibGVkIn0sb3V0cHV0czp7dmFsdWVDaGFuZ2U6InZhbHVlQ2hhbmdlIixjaGFuZ2U6ImNoYW5nZSJ9LGV4cG9ydEFzOlsibWF0QnV0dG9uVG9nZ2xlR3JvdXAiXSxmZWF0dXJlczpbcGcoW2syLHtwcm92aWRlOncyLHVzZUV4aXN0aW5nOkUyfV0pXX0pLEUyLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUDJdfV19XSxFMi5wcm9wRGVjb3JhdG9ycz17X2J1dHRvblRvZ2dsZXM6W3t0eXBlOllhLGFyZ3M6W3FlKCgoKT0+QTIpKSx7ZGVzY2VuZGFudHM6ITB9XX1dLGFwcGVhcmFuY2U6W3t0eXBlOnh5fV0sbmFtZTpbe3R5cGU6eHl9XSx2ZXJ0aWNhbDpbe3R5cGU6eHl9XSx2YWx1ZTpbe3R5cGU6eHl9XSx2YWx1ZUNoYW5nZTpbe3R5cGU6T3l9XSxtdWx0aXBsZTpbe3R5cGU6eHl9XSxkaXNhYmxlZDpbe3R5cGU6eHl9XSxjaGFuZ2U6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRTIsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAiLHByb3ZpZGVyczpbazIse3Byb3ZpZGU6dzIsdXNlRXhpc3Rpbmc6RTJ9XSxob3N0Ontyb2xlOiJncm91cCIsY2xhc3M6Im1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIiwiW2F0dHIuYXJpYS1kaXNhYmxlZF0iOiJkaXNhYmxlZCIsIltjbGFzcy5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbF0iOiJ2ZXJ0aWNhbCIsIltjbGFzcy5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkXSI6J2FwcGVhcmFuY2UgPT09ICJzdGFuZGFyZCInfSxleHBvcnRBczoibWF0QnV0dG9uVG9nZ2xlR3JvdXAifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUDJdfV19XX0pLHt2YWx1ZUNoYW5nZTpbe3R5cGU6T3l9XSxjaGFuZ2U6W3t0eXBlOk95fV0sYXBwZWFyYW5jZTpbe3R5cGU6eHl9XSxuYW1lOlt7dHlwZTp4eX1dLHZlcnRpY2FsOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLG11bHRpcGxlOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dLF9idXR0b25Ub2dnbGVzOlt7dHlwZTpZYSxhcmdzOltxZSgoKCk9PkEyKSkse2Rlc2NlbmRhbnRzOiEwfV19XX0pO2NvbnN0IFIyPVFJKGNsYXNze30pO2NsYXNzIEEyIGV4dGVuZHMgUjJ7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe3N1cGVyKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9lbGVtZW50UmVmPW4sdGhpcy5fZm9jdXNNb25pdG9yPW8sdGhpcy5faXNTaW5nbGVTZWxlY3Rvcj0hMSx0aGlzLl9jaGVja2VkPSExLHRoaXMuYXJpYUxhYmVsbGVkYnk9bnVsbCx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLmNoYW5nZT1uZXcgTGg7Y29uc3Qgcj1OdW1iZXIoaSk7dGhpcy50YWJJbmRleD1yfHwwPT09cj9yOm51bGwsdGhpcy5idXR0b25Ub2dnbGVHcm91cD10LHRoaXMuYXBwZWFyYW5jZT1hJiZhLmFwcGVhcmFuY2U/YS5hcHBlYXJhbmNlOiJzdGFuZGFyZCJ9Z2V0IGJ1dHRvbklkKCl7cmV0dXJuYCR7dGhpcy5pZH0tYnV0dG9uYH1nZXQgYXBwZWFyYW5jZSgpe3JldHVybiB0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwP3RoaXMuYnV0dG9uVG9nZ2xlR3JvdXAuYXBwZWFyYW5jZTp0aGlzLl9hcHBlYXJhbmNlfXNldCBhcHBlYXJhbmNlKHQpe3RoaXMuX2FwcGVhcmFuY2U9dH1nZXQgY2hlY2tlZCgpe3JldHVybiB0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwP3RoaXMuYnV0dG9uVG9nZ2xlR3JvdXAuX2lzU2VsZWN0ZWQodGhpcyk6dGhpcy5fY2hlY2tlZH1zZXQgY2hlY2tlZCh0KXtjb25zdCBlPXl6KHQpO2UhPT10aGlzLl9jaGVja2VkJiYodGhpcy5fY2hlY2tlZD1lLHRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAmJnRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAuX3N5bmNCdXR0b25Ub2dnbGUodGhpcyx0aGlzLl9jaGVja2VkKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfHx0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwJiZ0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwLmRpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD15eih0KX1uZ09uSW5pdCgpe2NvbnN0IHQ9dGhpcy5idXR0b25Ub2dnbGVHcm91cDt0aGlzLl9pc1NpbmdsZVNlbGVjdG9yPXQmJiF0Lm11bHRpcGxlLHRoaXMuaWQ9dGhpcy5pZHx8Im1hdC1idXR0b24tdG9nZ2xlLSIrUzIrKyx0aGlzLl9pc1NpbmdsZVNlbGVjdG9yJiYodGhpcy5uYW1lPXQubmFtZSksdCYmKHQuX2lzUHJlY2hlY2tlZCh0aGlzKT90aGlzLmNoZWNrZWQ9ITA6dC5faXNTZWxlY3RlZCh0aGlzKSE9PXRoaXMuX2NoZWNrZWQmJnQuX3N5bmNCdXR0b25Ub2dnbGUodGhpcyx0aGlzLl9jaGVja2VkKSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwhMCl9bmdPbkRlc3Ryb3koKXtjb25zdCB0PXRoaXMuYnV0dG9uVG9nZ2xlR3JvdXA7dGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpLHQmJnQuX2lzU2VsZWN0ZWQodGhpcykmJnQuX3N5bmNCdXR0b25Ub2dnbGUodGhpcywhMSwhMSwhMCl9Zm9jdXModCl7dGhpcy5fYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKHQpfV9vbkJ1dHRvbkNsaWNrKCl7Y29uc3QgdD0hIXRoaXMuX2lzU2luZ2xlU2VsZWN0b3J8fCF0aGlzLl9jaGVja2VkO3QhPT10aGlzLl9jaGVja2VkJiYodGhpcy5fY2hlY2tlZD10LHRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAmJih0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwLl9zeW5jQnV0dG9uVG9nZ2xlKHRoaXMsdGhpcy5fY2hlY2tlZCwhMCksdGhpcy5idXR0b25Ub2dnbGVHcm91cC5fb25Ub3VjaGVkKCkpKSx0aGlzLmNoYW5nZS5lbWl0KG5ldyBEMih0aGlzLHRoaXMudmFsdWUpKX1fbWFya0ZvckNoZWNrKCl7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9fUEyLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBMikoU20odzIsOCksU20oVWcpLFNtKGhnKSxTbShTSSksTmEoInRhYmluZGV4IiksU20oUDIsOCkpfSxBMi7JtWNtcD10byh7dHlwZTpBMixzZWxlY3RvcnM6W1sibWF0LWJ1dHRvbi10b2dnbGUiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKE8yLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX2J1dHRvbkVsZW1lbnQ9dC5maXJzdCl9fSxob3N0QXR0cnM6WyJyb2xlIiwicHJlc2VudGF0aW9uIiwxLCJtYXQtYnV0dG9uLXRvZ2dsZSJdLGhvc3RWYXJzOjEyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiZm9jdXMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uZm9jdXMoKX0pKSwyJmUmJihqcCgiYXJpYS1sYWJlbCIsbnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbnVsbCkoImlkIixuLmlkKSgibmFtZSIsbnVsbCkscHUoIm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUiLCFuLmJ1dHRvblRvZ2dsZUdyb3VwKSgibWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCIsbi5jaGVja2VkKSgibWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJtYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIiwic3RhbmRhcmQiPT09bi5hcHBlYXJhbmNlKSl9LGlucHV0czp7ZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdLHRhYkluZGV4OiJ0YWJJbmRleCIsYXBwZWFyYW5jZToiYXBwZWFyYW5jZSIsY2hlY2tlZDoiY2hlY2tlZCIsZGlzYWJsZWQ6ImRpc2FibGVkIixpZDoiaWQiLG5hbWU6Im5hbWUiLGFyaWFMYWJlbDpbImFyaWEtbGFiZWwiLCJhcmlhTGFiZWwiXSx2YWx1ZToidmFsdWUifSxvdXRwdXRzOntjaGFuZ2U6ImNoYW5nZSJ9LGV4cG9ydEFzOlsibWF0QnV0dG9uVG9nZ2xlIl0sZmVhdHVyZXM6W3hwXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIl0sZGVjbHM6Nix2YXJzOjksY29uc3RzOltbInR5cGUiLCJidXR0b24iLDEsIm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiIsIm1hdC1mb2N1cy1pbmRpY2F0b3IiLDMsImlkIiwiZGlzYWJsZWQiLCJjbGljayJdLFsiYnV0dG9uIiwiIl0sWzEsIm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQiXSxbMSwibWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSJdLFsibWF0UmlwcGxlIiwiIiwxLCJtYXQtYnV0dG9uLXRvZ2dsZS1yaXBwbGUiLDMsIm1hdFJpcHBsZVRyaWdnZXIiLCJtYXRSaXBwbGVEaXNhYmxlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoWm0oKSxSbSgwLCJidXR0b24iLDAsMSksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbkJ1dHRvbkNsaWNrKCl9KSksUm0oMiwic3BhbiIsMiksWG0oMyksQW0oKSxBbSgpLFRtKDQsInNwYW4iLDMpLFRtKDUsInNwYW4iLDQpKSwyJmUpe2NvbnN0IHQ9JHAoMSk7RG0oImlkIixuLmJ1dHRvbklkKSgiZGlzYWJsZWQiLG4uZGlzYWJsZWR8fG51bGwpLGpwKCJ0YWJpbmRleCIsbi5kaXNhYmxlZD8tMTpuLnRhYkluZGV4KSgiYXJpYS1wcmVzc2VkIixuLmNoZWNrZWQpKCJuYW1lIixuLm5hbWV8fG51bGwpKCJhcmlhLWxhYmVsIixuLmFyaWFMYWJlbCkoImFyaWEtbGFiZWxsZWRieSIsbi5hcmlhTGFiZWxsZWRieSkscmMoNSksRG0oIm1hdFJpcHBsZVRyaWdnZXIiLHQpKCJtYXRSaXBwbGVEaXNhYmxlZCIsbi5kaXNhYmxlUmlwcGxlfHxuLmRpc2FibGVkKX19LGRpcmVjdGl2ZXM6W2tIXSxzdHlsZXM6WyIubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSwubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjJweDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cHtvdXRsaW5lOnNvbGlkIDFweH0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJke2JvcmRlci1yYWRpdXM6NHB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJke291dGxpbmU6MH0ubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWx7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudHtkaXNwbGF5OmJsb2NrfS5tYXQtYnV0dG9uLXRvZ2dsZXt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtaWNvbiBzdmd7dmVydGljYWwtYWxpZ246dG9wfS5tYXQtYnV0dG9uLXRvZ2dsZS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouNX0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZDpub3QoLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkKTpob3ZlciAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4wNH0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkKSAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjV9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZDpub3QoLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkKTpob3ZlciAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtkaXNwbGF5Om5vbmV9fS5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50ey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50e3BhZGRpbmc6MCAxMnB4fS5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50Pip7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZX0ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtib3JkZXItYm90dG9tOnNvbGlkIDM2cHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi41O2hlaWdodDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtib3JkZXItYm90dG9tOnNvbGlkIDUwMHB4fS5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWJ1dHRvbi10b2dnbGUtcmlwcGxle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbntib3JkZXI6MDtiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6aW5oZXJpdDtwYWRkaW5nOjA7bWFyZ2luOjA7Zm9udDppbmhlcml0O291dGxpbmU6bm9uZTt3aWR0aDoxMDAlO2N1cnNvcjpwb2ludGVyfS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCAubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9ue2N1cnNvcjpkZWZhdWx0fS5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxBMi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkUyLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt3Ml19XX0se3R5cGU6VWd9LHt0eXBlOmhnfSx7dHlwZTpTSX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUDJdfV19XSxBMi5wcm9wRGVjb3JhdG9ycz17YXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLF9idXR0b25FbGVtZW50Olt7dHlwZTpaYSxhcmdzOlsiYnV0dG9uIl19XSxpZDpbe3R5cGU6eHl9XSxuYW1lOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLHRhYkluZGV4Olt7dHlwZTp4eX1dLGFwcGVhcmFuY2U6W3t0eXBlOnh5fV0sY2hlY2tlZDpbe3R5cGU6eHl9XSxkaXNhYmxlZDpbe3R5cGU6eHl9XSxjaGFuZ2U6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQTIsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWJ1dHRvbi10b2dnbGUiLHRlbXBsYXRlOic8YnV0dG9uICNidXR0b24gY2xhc3M9Im1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiBtYXQtZm9jdXMtaW5kaWNhdG9yIlxuICAgICAgICB0eXBlPSJidXR0b24iXG4gICAgICAgIFtpZF09ImJ1dHRvbklkIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09ImRpc2FibGVkID8gLTEgOiB0YWJJbmRleCJcbiAgICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT0iY2hlY2tlZCJcbiAgICAgICAgW2Rpc2FibGVkXT0iZGlzYWJsZWQgfHwgbnVsbCJcbiAgICAgICAgW2F0dHIubmFtZV09Im5hbWUgfHwgbnVsbCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09ImFyaWFMYWJlbCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT0iYXJpYUxhYmVsbGVkYnkiXG4gICAgICAgIChjbGljayk9Il9vbkJ1dHRvbkNsaWNrKCkiPlxuICA8c3BhbiBjbGFzcz0ibWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3NwYW4+XG48L2J1dHRvbj5cblxuPHNwYW4gY2xhc3M9Im1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkiPjwvc3Bhbj5cbjxzcGFuIGNsYXNzPSJtYXQtYnV0dG9uLXRvZ2dsZS1yaXBwbGUiIG1hdFJpcHBsZVxuICAgICBbbWF0UmlwcGxlVHJpZ2dlcl09ImJ1dHRvbiJcbiAgICAgW21hdFJpcHBsZURpc2FibGVkXT0idGhpcy5kaXNhYmxlUmlwcGxlIHx8IHRoaXMuZGlzYWJsZWQiPlxuPC9zcGFuPlxuJyxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsZXhwb3J0QXM6Im1hdEJ1dHRvblRvZ2dsZSIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxpbnB1dHM6WyJkaXNhYmxlUmlwcGxlIl0saG9zdDp7IltjbGFzcy5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lXSI6IiFidXR0b25Ub2dnbGVHcm91cCIsIltjbGFzcy5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkXSI6ImNoZWNrZWQiLCJbY2xhc3MubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbY2xhc3MubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZF0iOidhcHBlYXJhbmNlID09PSAic3RhbmRhcmQiJyxjbGFzczoibWF0LWJ1dHRvbi10b2dnbGUiLCJbYXR0ci5hcmlhLWxhYmVsXSI6Im51bGwiLCJbYXR0ci5hcmlhLWxhYmVsbGVkYnldIjoibnVsbCIsIlthdHRyLmlkXSI6ImlkIiwiW2F0dHIubmFtZV0iOiJudWxsIiwiKGZvY3VzKSI6ImZvY3VzKCkiLHJvbGU6InByZXNlbnRhdGlvbiJ9LHN0eWxlczpbIi5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6MnB4Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3Vwe291dGxpbmU6c29saWQgMXB4fS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmR7Ym9yZGVyLXJhZGl1czo0cHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmR7b3V0bGluZTowfS5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50e2Rpc3BsYXk6YmxvY2t9Lm1hdC1idXR0b24tdG9nZ2xle3doaXRlLXNwYWNlOm5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1pY29uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjp0b3B9Lm1hdC1idXR0b24tdG9nZ2xlLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi41fS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpOmhvdmVyIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjA0fS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCkgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouNX1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpOmhvdmVyIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2Rpc3BsYXk6bm9uZX19Lm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7cGFkZGluZzowIDEycHh9Lm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQ+Knt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7Ym9yZGVyLXJhZGl1czppbmhlcml0O3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlfS5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2JvcmRlci1ib3R0b206c29saWQgMzZweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjU7aGVpZ2h0OjB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2JvcmRlci1ib3R0b206c29saWQgNTAwcHh9Lm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1yaXBwbGV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9ue2JvcmRlcjowO2JhY2tncm91bmQ6bm9uZTtjb2xvcjppbmhlcml0O3BhZGRpbmc6MDttYXJnaW46MDtmb250OmluaGVyaXQ7b3V0bGluZTpub25lO3dpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXJ9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIC5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b257Y3Vyc29yOmRlZmF1bHR9Lm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RTIsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3cyXX1dfSx7dHlwZTpVZ30se3R5cGU6aGd9LHt0eXBlOlNJfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltQMl19XX1dfSkse2FyaWFMYWJlbGxlZGJ5Olt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbGxlZGJ5Il19XSxjaGFuZ2U6W3t0eXBlOk95fV0sdGFiSW5kZXg6W3t0eXBlOnh5fV0sYXBwZWFyYW5jZTpbe3R5cGU6eHl9XSxjaGVja2VkOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dLGlkOlt7dHlwZTp4eX1dLG5hbWU6W3t0eXBlOnh5fV0sYXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sX2J1dHRvbkVsZW1lbnQ6W3t0eXBlOlphLGFyZ3M6WyJidXR0b24iXX1dLHZhbHVlOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBUMnt9ZnVuY3Rpb24gTjIodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiwyKSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxTdSh0LmZpcnN0VGV4dFBhcnQoKSl9fVQyLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUMil9LFQyLsm1bW9kPWFvKHt0eXBlOlQyfSksVDIuybVpbmo9dm4oe2ltcG9ydHM6W1tYSSxTSF0sWEldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChUMixbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1hJLFNIXSxleHBvcnRzOltYSSxFMixBMl0sZGVjbGFyYXRpb25zOltFMixBMl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhUMix7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW0UyLEEyXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltYSSxTSF19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bWEksRTIsQTJdfX0pO2NsYXNzIHoye3BhcnNlVmFsdWUoKXtjb25zdCB0PXRoaXMudmFsdWUubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4tMT09PXQ/e2ZpcnN0OiIiLHNlY29uZDp0aGlzLnZhbHVlfTp7Zmlyc3Q6dGhpcy52YWx1ZS5zbGljZSgwLHQpLHNlY29uZDp0aGlzLnZhbHVlLnNsaWNlKHQpfX1maXJzdFRleHRQYXJ0KCl7cmV0dXJuIHRoaXMucGFyc2VWYWx1ZSgpLmZpcnN0fXNlY29uZFRleHRQYXJ0KCl7cmV0dXJuIHRoaXMucGFyc2VWYWx1ZSgpLnNlY29uZH19ZnVuY3Rpb24gSTIodCxlLG4pe3JldHVybiBlfHxuP1tuLGU/ZS5uYW1lOiIuLi4iXS5maWx0ZXIoQm9vbGVhbikuam9pbigiLyIpOnR9ZnVuY3Rpb24gSDIodCxlLG4pe3ZhciBvLGksYSxyO3JldHVybiB0LnN0YXJ0LnN0ZXA8PWUmJnQuZW5kJiZuPD10LmVuZC5zdGVwfHxlPD10LnN0YXJ0LnN0ZXAmJnQuc3RhcnQuc3RlcDw9bnx8dC5lbmQmJmU8PShudWxsPT09KG89dC5lbmQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnN0ZXApJiYobnVsbD09PShpPXQuZW5kKXx8dm9pZCAwPT09aT92b2lkIDA6aS5zdGVwKTw9bj97c3RhcnRTdGVwOnQuc3RhcnQuc3RlcCxlbmRTdGVwOm51bGwhPT0ocj1udWxsPT09KGE9dC5lbmQpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLnN0ZXApJiZ2b2lkIDAhPT1yP3I6bnVsbCxjbGlwcGVkOiExfTpuPD10LnN0YXJ0LnN0ZXA/e3N0YXJ0U3RlcDpuLGVuZFN0ZXA6bnVsbCxjbGlwcGVkOiEwfTp7c3RhcnRTdGVwOmUsZW5kU3RlcDpudWxsLGNsaXBwZWQ6ITB9fXoyLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx6Mil9LHoyLsm1Y21wPXRvKHt0eXBlOnoyLHNlbGVjdG9yczpbWyJ0Yi10cnVuY2F0ZWQtcGF0aCJdXSxpbnB1dHM6e3ZhbHVlOiJ2YWx1ZSJ9LGRlY2xzOjMsdmFyczoyLGNvbnN0czpbWyJjbGFzcyIsImZpcnN0LXRleHQtcGFydCIsNCwibmdJZiJdLFsxLCJzZWNvbmQtdGV4dC1wYXJ0Il0sWzEsImZpcnN0LXRleHQtcGFydCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUXAoMCxOMiwyLDEsInNwYW4iLDApLFJtKDEsInNwYW4iLDEpLGt1KDIpLEFtKCkpLDImZSYmKERtKCJuZ0lmIixuLmZpcnN0VGV4dFBhcnQoKS5sZW5ndGg+MCkscmMoMiksU3Uobi5zZWNvbmRUZXh0UGFydCgpKSl9LGRpcmVjdGl2ZXM6W2RNXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWZsZXg7d2hpdGUtc3BhY2U6bm93cmFwfS5maXJzdC10ZXh0LXBhcnRbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxIDRjaDttYXgtd2lkdGg6bWF4LWNvbnRlbnR9LmZpcnN0LXRleHQtcGFydFtfbmdjb250ZW50LSVDT01QJV0sIC5zZWNvbmQtdGV4dC1wYXJ0W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30iXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoejIsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGItdHJ1bmNhdGVkLXBhdGgiLHRlbXBsYXRlOidcbiAgICA8c3BhbiAqbmdJZj0iZmlyc3RUZXh0UGFydCgpLmxlbmd0aCA+IDAiIGNsYXNzPSJmaXJzdC10ZXh0LXBhcnQiPnt7XG4gICAgICBmaXJzdFRleHRQYXJ0KClcbiAgICB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz0ic2Vjb25kLXRleHQtcGFydCI+e3sgc2Vjb25kVGV4dFBhcnQoKSB9fTwvc3Bhbj5cbiAgJyxzdHlsZVVybHM6WyJ0cnVuY2F0ZWRfcGF0aF9jb21wb25lbnQuY3NzIl19XX1dLG51bGwse3ZhbHVlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgRjJ7fUYyLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGMil9LEYyLsm1Y21wPXRvKHt0eXBlOkYyLHNlbGVjdG9yczpbWyJjYXJkLXJ1bi1uYW1lLWNvbXBvbmVudCJdXSxpbnB1dHM6e25hbWU6Im5hbWUifSxkZWNsczoxLHZhcnM6MSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZrdSgwKSwyJmUmJlN1KG4ubmFtZSl9LHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEYyLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImNhcmQtcnVuLW5hbWUtY29tcG9uZW50Iix0ZW1wbGF0ZToie3sgbmFtZSB9fSIsc3R5bGVVcmxzOlsicnVuX25hbWVfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse25hbWU6W3t0eXBlOnh5fV19KTtjbGFzcyBMMntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXR9bmdPbkluaXQoKXt0aGlzLm5hbWUkPVd0KFt0aGlzLnN0b3JlLnNlbGVjdChzTix7cnVuSWQ6dGhpcy5ydW5JZH0pLHRoaXMuc3RvcmUuc2VsZWN0KHJOLHtydW5JZDp0aGlzLnJ1bklkfSksdGhpcy5zdG9yZS5zZWxlY3QoelMpXSkucGlwZShJdCgoKFt0LGUsbl0pPT5JMih0aGlzLnJ1bklkLHQsZT9uW2VdOm51bGwpKSkpfX1mdW5jdGlvbiBCMih0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDE3KSxrdSgxKSxBaCgyLCJudW1iZXIiKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEdSgiU3RlcCAiLFRoKDIsMSx0LnN0ZXBWYWx1ZXNbdC5zdGVwSW5kZXhdKSwiIil9fWZ1bmN0aW9uIFYyKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTgpLGt1KDEpLEFoKDIsIm51bWJlciIpLEFoKDMsIm51bWJlciIpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLEV1KCJTYW1wbGUgIixUaCgyLDIsdC5zYW1wbGUrMSksIi8iLFRoKDMsNCx0Lm51bVNhbXBsZSksIiIpfX1mdW5jdGlvbiBqMih0LGUpezEmdCYmVG0oMCwibWF0LXNwaW5uZXIiLDE5KX1MMi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TDIpKFNtKEl3KSl9LEwyLsm1Y21wPXRvKHt0eXBlOkwyLHNlbGVjdG9yczpbWyJjYXJkLXJ1bi1uYW1lIl1dLGlucHV0czp7cnVuSWQ6InJ1bklkIn0sZGVjbHM6Myx2YXJzOjYsY29uc3RzOltbMywibmFtZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwiY2FyZC1ydW4tbmFtZS1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSksMiZlJiYoRG0oIm5hbWUiLFRoKDEsMixuLm5hbWUkKSksanAoInRpdGxlIixUaCgyLDQsbi5uYW1lJCkpKX0sZGlyZWN0aXZlczpbRjJdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMMixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJjYXJkLXJ1bi1uYW1lIix0ZW1wbGF0ZTonXG4gICAgPGNhcmQtcnVuLW5hbWUtY29tcG9uZW50XG4gICAgICBbbmFtZV09Im5hbWUkIHwgYXN5bmMiXG4gICAgICBbYXR0ci50aXRsZV09Im5hbWUkIHwgYXN5bmMiXG4gICAgPjwvY2FyZC1ydW4tbmFtZS1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7cnVuSWQ6W3t0eXBlOnh5fV19KTtjb25zdCBVMj1mdW5jdGlvbih0KXtyZXR1cm57ZmlsdGVyOnR9fTtmdW5jdGlvbiBHMih0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO05tKDApLFJtKDEsImRpdiIsMjApLFJtKDIsIm1hdC1zbGlkZXIiLDIxKSxWbSgiaW5wdXQiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uU2xpZGVySW5wdXQobil9KSksQW0oKSxBbSgpLFJtKDMsImRpdiIsMjIpLFRtKDQsImltZyIsMjMpLEFtKCksem0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtyYygyKSxEbSgiZGlzYWJsZWQiLHQuc3RlcFZhbHVlcy5sZW5ndGg8PTEpKCJtaW4iLDApKCJtYXgiLHQuc3RlcFZhbHVlcy5sZW5ndGgtMSkoInN0ZXAiLDEpKCJ0aWNrSW50ZXJ2YWwiLDEpKCJ2YWx1ZSIsdC5zdGVwSW5kZXgpLHJjKDIpLEptKCJhbHQiLCJJbWFnZSBhdCBzdGVwICIsdC5zdGVwVmFsdWVzW3Quc3RlcEluZGV4XSwiIiksS20oInNyYyIsdC5pbWFnZVVybCxUcyksRG0oIm5nU3R5bGUiLE1oKDksVTIsdC5jc3NGaWx0ZXIoKSkpfX1mdW5jdGlvbiBXMih0LGUpezEmdCYmKFJtKDAsImRpdiIsMjUpLGt1KDEsIiBEYXRhIGZhaWxlZCB0byBsb2FkLiAiKSxBbSgpKX1mdW5jdGlvbiBZMih0LGUpe2lmKDEmdCYmUXAoMCxXMiwyLDAsImRpdiIsMjQpLDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJuZ0lmIix0LmxvYWRTdGF0ZT09PXQuRGF0YUxvYWRTdGF0ZS5GQUlMRUQpfX1jb25zdCBxMj1mdW5jdGlvbih0KXtyZXR1cm57YmFja2dyb3VuZENvbG9yOnR9fTtjbGFzcyBaMntjb25zdHJ1Y3Rvcigpe3RoaXMuRGF0YUxvYWRTdGF0ZT15RSx0aGlzLm9uQWN0dWFsU2l6ZVRvZ2dsZT1uZXcgTGgsdGhpcy5zdGVwSW5kZXhDaGFuZ2U9bmV3IExoLHRoaXMub25QaW5DbGlja2VkPW5ldyBMaH1jc3NGaWx0ZXIoKXtyZXR1cm5gY29udHJhc3QoJHt0aGlzLmNvbnRyYXN0SW5NaWxsaS8xMH0lKSBicmlnaHRuZXNzKCR7dGhpcy5icmlnaHRuZXNzSW5NaWxsaS8xZTN9KWB9b25TbGlkZXJJbnB1dCh0KXt0aGlzLnN0ZXBJbmRleENoYW5nZS5lbWl0KHQudmFsdWUpfX1aMi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WjIpfSxaMi7JtWNtcD10byh7dHlwZTpaMixzZWxlY3RvcnM6W1siaW1hZ2UtY2FyZC1jb21wb25lbnQiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoImFjdHVhbC1zaXplIixuLnNob3dBY3R1YWxTaXplKX0saW5wdXRzOntsb2FkU3RhdGU6ImxvYWRTdGF0ZSIsdGl0bGU6InRpdGxlIix0YWc6InRhZyIscnVuSWQ6InJ1bklkIixzYW1wbGU6InNhbXBsZSIsbnVtU2FtcGxlOiJudW1TYW1wbGUiLGltYWdlVXJsOiJpbWFnZVVybCIsc3RlcEluZGV4OiJzdGVwSW5kZXgiLHN0ZXBWYWx1ZXM6InN0ZXBWYWx1ZXMiLGJyaWdodG5lc3NJbk1pbGxpOiJicmlnaHRuZXNzSW5NaWxsaSIsY29udHJhc3RJbk1pbGxpOiJjb250cmFzdEluTWlsbGkiLHNob3dBY3R1YWxTaXplOiJzaG93QWN0dWFsU2l6ZSIscnVuQ29sb3JTY2FsZToicnVuQ29sb3JTY2FsZSIsYWxsb3dUb2dnbGVBY3R1YWxTaXplOiJhbGxvd1RvZ2dsZUFjdHVhbFNpemUiLGlzUGlubmVkOiJpc1Bpbm5lZCJ9LG91dHB1dHM6e29uQWN0dWFsU2l6ZVRvZ2dsZToib25BY3R1YWxTaXplVG9nZ2xlIixzdGVwSW5kZXhDaGFuZ2U6InN0ZXBJbmRleENoYW5nZSIsb25QaW5DbGlja2VkOiJvblBpbkNsaWNrZWQifSxkZWNsczoxOSx2YXJzOjE0LGNvbnN0czpmdW5jdGlvbigpe2xldCB0LGU7cmV0dXJuIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIlBpbiBjYXJkIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0byBwaW4gYSBjYXJkLuKQn2U2NjVkYzcxMmJkNWYxOGQ0ZGZhM2EyOWUxMjVkNTY1Y2M1MWUyZjbikJ83Mjg0NjA2NDI2MjM0Mzc1MzQ0OlBpbiBjYXJkYCxlPSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJUb2dnbGUgYWN0dWFsIGltYWdlIHNpemUiKTokbG9jYWxpemVgOkEgYnV0dG9uIG9uIGFuIGltYWdlIGNhcmQgdGhhdCB0b2dnbGVzIGFjdHVhbCBpbWFnZSBzaXplLuKQnzNjYTA1ZWYzYTZlM2EzNzA2NWY1ZTBmNjljNWQ1YTIxNzhkOTA3OTHikJ83NjM1MTAxOTM2NjY0Nzg5MTQwOlRvZ2dsZSBhY3R1YWwgaW1hZ2Ugc2l6ZWAsW1sxLCJoZWFkaW5nIl0sWzEsImxpbmUiXSxbMSwidGFnIiwzLCJ0aXRsZSIsInZhbHVlIl0sWzEsImNvbnRyb2xzIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LDEsInBpbi1idXR0b24iLDMsImNsaWNrIl0sWzMsInN2Z0ljb24iXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGUsInRpdGxlIiwiVG9nZ2xlIGFjdHVhbCBpbWFnZSBzaXplIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzdmdJY29uIiwiaW1hZ2Vfc2VhcmNoXzI0cHgiXSxbMSwicnVuIl0sWzEsImRvdCIsMywibmdTdHlsZSJdLFsxLCJydW4tdGV4dCIsMywicnVuSWQiXSxbMSwibWV0YWRhdGEiXSxbImNsYXNzIiwic3RlcCIsNCwibmdJZiJdLFsiY2xhc3MiLCJzYW1wbGUiLDQsIm5nSWYiXSxbImNsYXNzIiwibG9hZGluZyIsImRpYW1ldGVyIiwiMTgiLDQsIm5nSWYiXSxbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub0ltYWdlRGF0YSIsIiJdLFsxLCJzdGVwIl0sWzEsInNhbXBsZSJdLFsiZGlhbWV0ZXIiLCIxOCIsMSwibG9hZGluZyJdLFsxLCJzbGlkZXItcm93Il0sWyJjb2xvciIsInByaW1hcnkiLDEsInN0ZXAtc2xpZGVyIiwzLCJkaXNhYmxlZCIsIm1pbiIsIm1heCIsInN0ZXAiLCJ0aWNrSW50ZXJ2YWwiLCJ2YWx1ZSIsImlucHV0Il0sWzEsImltZy1jb250YWluZXIiXSxbMywiYWx0Iiwic3JjIiwibmdTdHlsZSJdLFsiY2xhc3MiLCJlbXB0eS1tZXNzYWdlIiw0LCJuZ0lmIl0sWzEsImVtcHR5LW1lc3NhZ2UiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsImRpdiIsMSksVG0oMiwidGItdHJ1bmNhdGVkLXBhdGgiLDIpLFJtKDMsInNwYW4iLDMpLFJtKDQsImJ1dHRvbiIsNCksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGluQ2xpY2tlZC5lbWl0KCFuLmlzUGlubmVkKX0pKSxUbSg1LCJtYXQtaWNvbiIsNSksQW0oKSxSbSg2LCJidXR0b24iLDYpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkFjdHVhbFNpemVUb2dnbGUuZW1pdCgpfSkpLFRtKDcsIm1hdC1pY29uIiw3KSxBbSgpLEFtKCksQW0oKSxSbSg4LCJkaXYiLDEpLFJtKDksInNwYW4iLDgpLFRtKDEwLCJzcGFuIiw5KSxUbSgxMSwiY2FyZC1ydW4tbmFtZSIsMTApLEFtKCksUm0oMTIsImRpdiIsMTEpLFFwKDEzLEIyLDMsMywic3BhbiIsMTIpLFFwKDE0LFYyLDQsNiwic3BhbiIsMTMpLFFwKDE1LGoyLDEsMCwibWF0LXNwaW5uZXIiLDE0KSxBbSgpLEFtKCksQW0oKSxRcCgxNixHMiw1LDExLCJuZy1jb250YWluZXIiLDE1KSxRcCgxNyxZMiwxLDEsIm5nLXRlbXBsYXRlIixudWxsLDE2LGliKSksMiZlKXtjb25zdCB0PSRwKDE4KTtyYygyKSxLbSgidGl0bGUiLG4udGFnKSxLbSgidmFsdWUiLG4udGl0bGUpLHJjKDIpLGpwKCJ0aXRsZSIsbi5pc1Bpbm5lZD8iVW5waW4gY2FyZCI6IlBpbiBjYXJkIikscmMoMSksRG0oInN2Z0ljb24iLG4uaXNQaW5uZWQ/ImtlZXBfMjRweCI6ImtlZXBfb3V0bGluZV8yNHB4IikscmMoMSksRG0oImRpc2FibGVkIiwhbi5hbGxvd1RvZ2dsZUFjdHVhbFNpemUpLHJjKDQpLERtKCJuZ1N0eWxlIixNaCgxMixxMixuLnJ1bkNvbG9yU2NhbGUobi5ydW5JZCkpKSxyYygxKSxEbSgicnVuSWQiLG4ucnVuSWQpLHJjKDIpLERtKCJuZ0lmIixudWxsIT09bi5zdGVwSW5kZXgmJm4uc3RlcEluZGV4PG4uc3RlcFZhbHVlcy5sZW5ndGgpLHJjKDEpLERtKCJuZ0lmIixuLm51bVNhbXBsZT4xKSxyYygxKSxEbSgibmdJZiIsbi5sb2FkU3RhdGU9PT1uLkRhdGFMb2FkU3RhdGUuTE9BRElORykscmMoMSksRG0oIm5nSWYiLG51bGwhPT1uLnN0ZXBJbmRleCYmbi5zdGVwSW5kZXg8bi5zdGVwVmFsdWVzLmxlbmd0aCkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W3oyLFhILERXLENNLEwyLGRNLG8xLFJYXSxwaXBlczpbRk1dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6YXV0bztwYWRkaW5nOjE2cHg7cGFkZGluZy10b3A6NHB4fS5hY3R1YWwtc2l6ZVtfbmdob3N0LSVDT01QJV17aGVpZ2h0OmF1dG99LmhlYWRpbmdbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXNpemU6MTRweDttYXJnaW4tYm90dG9tOjRweDtwb3NpdGlvbjpyZWxhdGl2ZX0ubGluZVtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIG1heC1jb250ZW50fS5tZXRhZGF0YVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo1cHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21heC13aWR0aDoxNzVweDt0ZXh0LWFsaWduOmVuZH0udGFnW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW59LnBpbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxOHB4fS5ydW5bX25nY29udGVudC0lQ09NUCVde2FsaWduLXNlbGY6YmFzZWxpbmU7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXB9LnJ1bltfbmdjb250ZW50LSVDT01QJV0gICAuZG90W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4Om5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTNweDtoZWlnaHQ6MTNweDtib3JkZXItcmFkaXVzOjUwJTttYXJnaW4tcmlnaHQ6NHB4fS5ydW5bX25nY29udGVudC0lQ09NUCVdICAgLnJ1bi10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczttYXgtd2lkdGg6MTIwcHh9LnJ1bltfbmdjb250ZW50LSVDT01QJV0sIC5zYW1wbGVbX25nY29udGVudC0lQ09NUCVdLCAuc3RlcFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTtmb250LXNpemU6MTNweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAucnVuW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnJ1bltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnNhbXBsZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zYW1wbGVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zdGVwW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnN0ZXBbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTt3aGl0ZS1zcGFjZTpub3dyYXA7anVzdGlmeS1zZWxmOmZsZXgtZW5kO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXJpZ2h0Oi0xMnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmltZy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxIDA7b3ZlcmZsb3cteTphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlfS5pbWctY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGltZ1tfbmdjb250ZW50LSVDT01QJV17aW1hZ2UtcmVuZGVyaW5nOi1tb3otY3Jpc3AtZWRnZXM7aW1hZ2UtcmVuZGVyaW5nOnBpeGVsYXRlZH0uYWN0dWFsLXNpemVbX25naG9zdC0lQ09NUCVdICAgLmltZy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmF1dG87ZmxleDpub25lfVtfbmdob3N0LSVDT01QJV06bm90KC5hY3R1YWwtc2l6ZSkgICBpbWdbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO21heC1oZWlnaHQ6MTAwJTttYXgtd2lkdGg6MTAwJTt3aWR0aDphdXRvO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbn0uc2xpZGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MjRweH0uc3RlcC1zbGlkZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MX1bX25naG9zdC0lQ09NUCVdICAgICAubWF0LXNsaWRlci1taW4tdmFsdWUgLm1hdC1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5lbXB0eS1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjFlbTtmb250LXNpemU6MTNweH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWjIsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiaW1hZ2UtY2FyZC1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJpbWFnZV9jYXJkX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyJpbWFnZV9jYXJkX2NvbXBvbmVudC5jc3MiXSxob3N0OnsiW2NsYXNzLmFjdHVhbC1zaXplXSI6InNob3dBY3R1YWxTaXplIn0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7bG9hZFN0YXRlOlt7dHlwZTp4eX1dLHRpdGxlOlt7dHlwZTp4eX1dLHRhZzpbe3R5cGU6eHl9XSxydW5JZDpbe3R5cGU6eHl9XSxzYW1wbGU6W3t0eXBlOnh5fV0sbnVtU2FtcGxlOlt7dHlwZTp4eX1dLGltYWdlVXJsOlt7dHlwZTp4eX1dLHN0ZXBJbmRleDpbe3R5cGU6eHl9XSxzdGVwVmFsdWVzOlt7dHlwZTp4eX1dLGJyaWdodG5lc3NJbk1pbGxpOlt7dHlwZTp4eX1dLGNvbnRyYXN0SW5NaWxsaTpbe3R5cGU6eHl9XSxzaG93QWN0dWFsU2l6ZTpbe3R5cGU6eHl9XSxydW5Db2xvclNjYWxlOlt7dHlwZTp4eX1dLGFsbG93VG9nZ2xlQWN0dWFsU2l6ZTpbe3R5cGU6eHl9XSxpc1Bpbm5lZDpbe3R5cGU6eHl9XSxvbkFjdHVhbFNpemVUb2dnbGU6W3t0eXBlOk95fV0sc3RlcEluZGV4Q2hhbmdlOlt7dHlwZTpPeX1dLG9uUGluQ2xpY2tlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIFgye2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zdG9yZT10LHRoaXMuZGF0YVNvdXJjZT1lLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZD1uZXcgTGgsdGhpcy5waW5TdGF0ZUNoYW5nZWQ9bmV3IExoLHRoaXMuYnJpZ2h0bmVzc0luTWlsbGkkPXRoaXMuc3RvcmUuc2VsZWN0KEhUKSx0aGlzLmNvbnRyYXN0SW5NaWxsaSQ9dGhpcy5zdG9yZS5zZWxlY3QoRlQpLHRoaXMuYWN0dWFsU2l6ZUdsb2JhbFNldHRpbmckPXRoaXMuc3RvcmUuc2VsZWN0KExUKSx0aGlzLnNob3dBY3R1YWxTaXplPSExLHRoaXMuYWN0dWFsU2l6ZVVpVG9nZ2xlZD0hMSx0aGlzLmFjdHVhbFNpemVVaVRvZ2dsZVN1YmplY3Q9bmV3IEYodGhpcy5hY3R1YWxTaXplVWlUb2dnbGVkKSx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEl9b25TdGVwSW5kZXhDaGFuZ2VkKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2godFIoe2NhcmRJZDp0aGlzLmNhcmRJZCxzdGVwSW5kZXg6dH0pKX1pc0ltYWdlQ2FyZE1ldGFkYXRhKHQpe2NvbnN0e3BsdWdpbjplfT10O3JldHVybiBlPT09aEEuSU1BR0VTfW9uQWN0dWFsU2l6ZVRvZ2dsZSgpe3RoaXMuYWN0dWFsU2l6ZVVpVG9nZ2xlZD0hdGhpcy5hY3R1YWxTaXplVWlUb2dnbGVkLHRoaXMuYWN0dWFsU2l6ZVVpVG9nZ2xlU3ViamVjdC5uZXh0KHRoaXMuYWN0dWFsU2l6ZVVpVG9nZ2xlZCl9bmdPbkluaXQoKXtXdChbdGhpcy5hY3R1YWxTaXplR2xvYmFsU2V0dGluZyQsdGhpcy5hY3R1YWxTaXplVWlUb2dnbGVTdWJqZWN0XSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLEZlKCgoW3QsZV0pPT57dGhpcy5zaG93QWN0dWFsU2l6ZT10fHxlLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZC5lbWl0KHRoaXMuc2hvd0FjdHVhbFNpemUpfSkpKS5zdWJzY3JpYmUoKCgpPT57fSkpO2NvbnN0IHQ9dGhpcy5zdG9yZS5zZWxlY3QoeVQsdGhpcy5jYXJkSWQpLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSxjZSgodD0+ISF0JiZ0aGlzLmlzSW1hZ2VDYXJkTWV0YWRhdGEodCkpKSxJdCgodD0+dCkpLEFlKDEpKSxlPVd0KFt0LHRoaXMuc3RvcmUuc2VsZWN0KGhULHRoaXMuY2FyZElkKV0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSxJdCgoKFt0LGVdKT0+e2NvbnN0IG49dC5ydW5JZDtyZXR1cm4gZSYmZS5oYXNPd25Qcm9wZXJ0eShuKT9lW25dOltdfSkpLE1lKCgodCxlKT0+dC5sZW5ndGg9PT1lLmxlbmd0aCYmMD09PXQubGVuZ3RofHx0PT09ZSkpLEFlKDEpKTt0aGlzLnN0ZXBJbmRleCQ9dGhpcy5zdG9yZS5zZWxlY3QodlQsdGhpcy5jYXJkSWQpLHRoaXMubG9hZFN0YXRlJD10aGlzLnN0b3JlLnNlbGVjdChnVCx0aGlzLmNhcmRJZCk7Y29uc3Qgbj1XdChbZSx0aGlzLnN0ZXBJbmRleCRdKS5waXBlKEl0KCgoW3QsZV0pPT5udWxsIT09ZSYmdFtlXT90W2VdOm51bGwpKSk7dGhpcy50YWckPXQucGlwZShJdCgodD0+dC50YWcpKSksdGhpcy50aXRsZSQ9dGhpcy50YWckLnBpcGUoSXQoKHQ9PmYyKHQsdGhpcy5ncm91cE5hbWUpKSkpLHRoaXMucnVuSWQkPXQucGlwZShJdCgodD0+dC5ydW5JZCkpKSx0aGlzLnNhbXBsZSQ9dC5waXBlKEl0KCh0PT50LnNhbXBsZSkpKSx0aGlzLm51bVNhbXBsZSQ9dC5waXBlKEl0KCh0PT50Lm51bVNhbXBsZSkpKSx0aGlzLmltYWdlVXJsJD1uLnBpcGUoSXQoKHQ9PnQ/dGhpcy5kYXRhU291cmNlLmltYWdlVXJsKHQuaW1hZ2VJZCk6bnVsbCkpKSx0aGlzLnN0ZXBWYWx1ZXMkPWUucGlwZShJdCgodD0+dC5tYXAoKHQ9PnQuc3RlcCkpKSkpLHRoaXMuaXNQaW5uZWQkPXRoaXMuc3RvcmUuc2VsZWN0KHdULHRoaXMuY2FyZElkKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9fXZhciBLMixKMixRMjtmdW5jdGlvbiAkMih0LGUpezEmdCYmKFJtKDAsInNwYW4iKSxrdSgxLCJzY2FsYXIiKSxBbSgpKX1mdW5jdGlvbiB0NSh0LGUpezEmdCYmKFJtKDAsInNwYW4iKSxrdSgxLCJoaXN0b2dyYW0iKSxBbSgpKX1mdW5jdGlvbiBlNSh0LGUpezEmdCYmKFJtKDAsInNwYW4iKSxrdSgxLCJ1bmtub3duIiksQW0oKSl9ZnVuY3Rpb24gbjUodCxlKXtpZigxJnQmJihObSgwLDEzKSxRcCgxLCQyLDIsMCwic3BhbiIsMTQpLFFwKDIsdDUsMiwwLCJzcGFuIiwxNCksUXAoMyxlNSwyLDAsInNwYW4iLDE1KSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7RG0oIm5nU3dpdGNoIix0LmNhcmRNZXRhZGF0YS5wbHVnaW4pLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLHQuUGx1Z2luVHlwZS5TQ0FMQVJTKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIix0LlBsdWdpblR5cGUuSElTVE9HUkFNUyl9fWZ1bmN0aW9uIG81KHQsZSl7MSZ0JiZJbSgwKX1mdW5jdGlvbiBpNSh0LGUpe2lmKDEmdCYmKFJtKDAsIm9wdGlvbiIsMTYpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtEbSgidmFsdWUiLHQuaWQpLHJjKDEpLFN1KHQubmFtZSl9fWZ1bmN0aW9uIGE1KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Tm0oMCksUm0oMSwiaDIiKSxRcCgyLG41LDQsMywibmctdGVtcGxhdGUiLG51bGwsMixpYiksUm0oNCwic3BhbiIpLGt1KDUsIkRvd25sb2FkwqAiKSxBbSgpLFFwKDYsbzUsMSwwLCJuZy1jb250YWluZXIiLDMpLFJtKDcsInNwYW4iKSxrdSg4LCLCoGRhdGEgZm9ywqAiKSxBbSgpLFJtKDksImNvZGUiLDQpLGt1KDEwKSxBbSgpLEFtKCksUm0oMTEsIm1hdC1kaWFsb2ctY29udGVudCIpLFJtKDEyLCJtYXQtZm9ybS1maWVsZCIsNSksUm0oMTMsIm1hdC1sYWJlbCIpLGt1KDE0LCJTZWxlY3QgYSBydW4gdG8gZG93bmxvYWQgYSBkYXRhIGZvciBhIHNlcmllcyIpLEFtKCksUm0oMTUsInNlbGVjdCIsNiksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkucnVuU2VsZWN0ZWQuZW1pdChuLnRhcmdldC52YWx1ZSl9KSksUm0oMTYsIm9wdGlvbiIsNyksa3UoMTcsIi0iKSxBbSgpLFFwKDE4LGk1LDIsMiwib3B0aW9uIiw4KSxBbSgpLEFtKCksUm0oMTksImRpdiIsOSksUm0oMjAsInNwYW4iKSxrdSgyMSwiRG93bmxvYWQgYXPigKYiKSxBbSgpLGt1KDIyLCLCoCIpLFJtKDIzLCJhIiwxMCksa3UoMjQsIkpTT04iKSxBbSgpLFJtKDI1LCJhIiwxMCksa3UoMjYsIkNTViIpLEFtKCksQW0oKSxBbSgpLFJtKDI3LCJtYXQtZGlhbG9nLWFjdGlvbnMiLDExKSxSbSgyOCwiYnV0dG9uIiwxMiksa3UoMjksIkNsb3NlIiksQW0oKSxBbSgpLHptKCl9aWYoMiZ0KXtjb25zdCB0PSRwKDMpLGU9WW0oKTtyYyg2KSxEbSgibmdUZW1wbGF0ZU91dGxldCIsdCkscmMoMyksRG0oInRpdGxlIixlLmNhcmRNZXRhZGF0YS50YWcpLHJjKDEpLFN1KGUuY2FyZE1ldGFkYXRhLnRhZykscmMoNSksRG0oInZhbHVlIixlLnNlbGVjdGVkUnVuSWR8fCIiKSxyYygxKSxEbSgidmFsdWUiLCIiKSxyYygyKSxEbSgibmdGb3JPZiIsZS5ydW5zKSxyYyg1KSxEbSgiZGlzYWJsZWQiLCFlLmRvd25sb2FkVXJsSnNvbikoImRvd25sb2FkIixlLmdldERvd25sb2FkTmFtZSgianNvbiIpKSxqcCgiaHJlZiIsZS5kb3dubG9hZFVybEpzb24sVHMpLHJjKDIpLERtKCJkaXNhYmxlZCIsIWUuZG93bmxvYWRVcmxDc3YpKCJkb3dubG9hZCIsZS5nZXREb3dubG9hZE5hbWUoImNzdiIpKSxqcCgiaHJlZiIsZS5kb3dubG9hZFVybENzdixUcyl9fWZ1bmN0aW9uIHI1KHQsZSl7MSZ0JiZrdSgwLCJMb2FkaW5nLi4uIil9WDIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFgyKShTbShJdyksU20oUEEpKX0sWDIuybVjbXA9dG8oe3R5cGU6WDIsc2VsZWN0b3JzOltbImltYWdlLWNhcmQiXV0saW5wdXRzOntjYXJkSWQ6ImNhcmRJZCIsZ3JvdXBOYW1lOiJncm91cE5hbWUiLHJ1bkNvbG9yU2NhbGU6InJ1bkNvbG9yU2NhbGUifSxvdXRwdXRzOntmdWxsV2lkdGhDaGFuZ2VkOiJmdWxsV2lkdGhDaGFuZ2VkIixwaW5TdGF0ZUNoYW5nZWQ6InBpblN0YXRlQ2hhbmdlZCJ9LGRlY2xzOjE0LHZhcnM6NDEsY29uc3RzOltbMywibG9hZFN0YXRlIiwidGl0bGUiLCJ0YWciLCJydW5JZCIsInNhbXBsZSIsIm51bVNhbXBsZSIsImltYWdlVXJsIiwic3RlcEluZGV4Iiwic3RlcFZhbHVlcyIsImJyaWdodG5lc3NJbk1pbGxpIiwiY29udHJhc3RJbk1pbGxpIiwicnVuQ29sb3JTY2FsZSIsInNob3dBY3R1YWxTaXplIiwiYWxsb3dUb2dnbGVBY3R1YWxTaXplIiwiaXNQaW5uZWQiLCJzdGVwSW5kZXhDaGFuZ2UiLCJvbkFjdHVhbFNpemVUb2dnbGUiLCJvblBpbkNsaWNrZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImltYWdlLWNhcmQtY29tcG9uZW50IiwwKSxWbSgic3RlcEluZGV4Q2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblN0ZXBJbmRleENoYW5nZWQoZSl9KSkoIm9uQWN0dWFsU2l6ZVRvZ2dsZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkFjdHVhbFNpemVUb2dnbGUoKX0pKSgib25QaW5DbGlja2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5waW5TdGF0ZUNoYW5nZWQuZW1pdChlKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBaCg0LCJhc3luYyIpLEFoKDUsImFzeW5jIiksQWgoNiwiYXN5bmMiKSxBaCg3LCJhc3luYyIpLEFoKDgsImFzeW5jIiksQWgoOSwiYXN5bmMiKSxBaCgxMCwiYXN5bmMiKSxBaCgxMSwiYXN5bmMiKSxBaCgxMiwiYXN5bmMiKSxBaCgxMywiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJsb2FkU3RhdGUiLFRoKDEsMTUsbi5sb2FkU3RhdGUkKSkoInRpdGxlIixUaCgyLDE3LG4udGl0bGUkKSkoInRhZyIsVGgoMywxOSxuLnRhZyQpKSgicnVuSWQiLFRoKDQsMjEsbi5ydW5JZCQpKSgic2FtcGxlIixUaCg1LDIzLG4uc2FtcGxlJCkpKCJudW1TYW1wbGUiLFRoKDYsMjUsbi5udW1TYW1wbGUkKSkoImltYWdlVXJsIixUaCg3LDI3LG4uaW1hZ2VVcmwkKSkoInN0ZXBJbmRleCIsVGgoOCwyOSxuLnN0ZXBJbmRleCQpKSgic3RlcFZhbHVlcyIsVGgoOSwzMSxuLnN0ZXBWYWx1ZXMkKSkoImJyaWdodG5lc3NJbk1pbGxpIixUaCgxMCwzMyxuLmJyaWdodG5lc3NJbk1pbGxpJCkpKCJjb250cmFzdEluTWlsbGkiLFRoKDExLDM1LG4uY29udHJhc3RJbk1pbGxpJCkpKCJydW5Db2xvclNjYWxlIixuLnJ1bkNvbG9yU2NhbGUpKCJzaG93QWN0dWFsU2l6ZSIsbi5zaG93QWN0dWFsU2l6ZSkoImFsbG93VG9nZ2xlQWN0dWFsU2l6ZSIsITE9PT1UaCgxMiwzNyxuLmFjdHVhbFNpemVHbG9iYWxTZXR0aW5nJCkpKCJpc1Bpbm5lZCIsVGgoMTMsMzksbi5pc1Bpbm5lZCQpKX0sZGlyZWN0aXZlczpbWjJdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYMixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJpbWFnZS1jYXJkIix0ZW1wbGF0ZTonXG4gICAgPGltYWdlLWNhcmQtY29tcG9uZW50XG4gICAgICBbbG9hZFN0YXRlXT0ibG9hZFN0YXRlJCB8IGFzeW5jIlxuICAgICAgW3RpdGxlXT0idGl0bGUkIHwgYXN5bmMiXG4gICAgICBbdGFnXT0idGFnJCB8IGFzeW5jIlxuICAgICAgW3J1bklkXT0icnVuSWQkIHwgYXN5bmMiXG4gICAgICBbc2FtcGxlXT0ic2FtcGxlJCB8IGFzeW5jIlxuICAgICAgW251bVNhbXBsZV09Im51bVNhbXBsZSQgfCBhc3luYyJcbiAgICAgIFtpbWFnZVVybF09ImltYWdlVXJsJCB8IGFzeW5jIlxuICAgICAgW3N0ZXBJbmRleF09InN0ZXBJbmRleCQgfCBhc3luYyJcbiAgICAgIFtzdGVwVmFsdWVzXT0ic3RlcFZhbHVlcyQgfCBhc3luYyJcbiAgICAgIChzdGVwSW5kZXhDaGFuZ2UpPSJvblN0ZXBJbmRleENoYW5nZWQoJGV2ZW50KSJcbiAgICAgIFticmlnaHRuZXNzSW5NaWxsaV09ImJyaWdodG5lc3NJbk1pbGxpJCB8IGFzeW5jIlxuICAgICAgW2NvbnRyYXN0SW5NaWxsaV09ImNvbnRyYXN0SW5NaWxsaSQgfCBhc3luYyJcbiAgICAgIFtydW5Db2xvclNjYWxlXT0icnVuQ29sb3JTY2FsZSJcbiAgICAgIFtzaG93QWN0dWFsU2l6ZV09InNob3dBY3R1YWxTaXplIlxuICAgICAgW2FsbG93VG9nZ2xlQWN0dWFsU2l6ZV09IihhY3R1YWxTaXplR2xvYmFsU2V0dGluZyQgfCBhc3luYykgPT09IGZhbHNlIlxuICAgICAgW2lzUGlubmVkXT0iaXNQaW5uZWQkIHwgYXN5bmMiXG4gICAgICAob25BY3R1YWxTaXplVG9nZ2xlKT0ib25BY3R1YWxTaXplVG9nZ2xlKCkiXG4gICAgICAob25QaW5DbGlja2VkKT0icGluU3RhdGVDaGFuZ2VkLmVtaXQoJGV2ZW50KSJcbiAgICA+PC9pbWFnZS1jYXJkLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9LHt0eXBlOlBBfV19KSx7Y2FyZElkOlt7dHlwZTp4eX1dLGdyb3VwTmFtZTpbe3R5cGU6eHl9XSxydW5Db2xvclNjYWxlOlt7dHlwZTp4eX1dLGZ1bGxXaWR0aENoYW5nZWQ6W3t0eXBlOk95fV0scGluU3RhdGVDaGFuZ2VkOlt7dHlwZTpPeX1dfSksKGZ1bmN0aW9uKHQpe3RbdC5TVkc9MF09IlNWRyIsdFt0LldFQkdMPTFdPSJXRUJHTCJ9KShLMnx8KEsyPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5MSU5FQVI9MF09IkxJTkVBUiIsdFt0LkxPRzEwPTFdPSJMT0cxMCIsdFt0LlRJTUU9Ml09IlRJTUUifSkoSjJ8fChKMj17fSkpO2NsYXNzIHM1e2NvbnN0cnVjdG9yKCl7dGhpcy5ydW5TZWxlY3RlZD1uZXcgTGgsdGhpcy5QbHVnaW5UeXBlPWhBfWdldERvd25sb2FkTmFtZSh0KXtjb25zdCBlPXRoaXMucnVucy5maW5kKCh0PT50LmlkPT09dGhpcy5zZWxlY3RlZFJ1bklkKSk7cmV0dXJuIGU/YCR7ZS5uYW1lfS4ke3R9YDoiIn19czUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHM1KX0sczUuybVjbXA9dG8oe3R5cGU6czUsc2VsZWN0b3JzOltbImRhdGFfZG93bmxvYWRfZGlhbG9nX2NvbXBvbmVudCJdXSxpbnB1dHM6e2NhcmRNZXRhZGF0YToiY2FyZE1ldGFkYXRhIixydW5zOiJydW5zIixzZWxlY3RlZFJ1bklkOiJzZWxlY3RlZFJ1bklkIixkb3dubG9hZFVybENzdjoiZG93bmxvYWRVcmxDc3YiLGRvd25sb2FkVXJsSnNvbjoiZG93bmxvYWRVcmxKc29uIn0sb3V0cHV0czp7cnVuU2VsZWN0ZWQ6InJ1blNlbGVjdGVkIn0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub0NhcmRNZXRhZGF0YSIsIiJdLFsiZGF0YU5hbWUiLCIiXSxbNCwibmdUZW1wbGF0ZU91dGxldCJdLFsxLCJ0YWctbmFtZSIsMywidGl0bGUiXSxbImFwcGVhcmFuY2UiLCJmaWxsIiwxLCJydW4tc2VsZWN0b3IiXSxbIm1hdE5hdGl2ZUNvbnRyb2wiLCIiLCJuYW1lIiwicnVuIiwiY2RrRm9jdXNJbml0aWFsIiwiIiwicmVxdWlyZWQiLCIiLDMsInZhbHVlIiwiY2hhbmdlIl0sWyJzZWxlY3RlZCIsIiIsMywidmFsdWUiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJkb3dubG9hZC1jb250cm9scyJdLFsibWF0LXN0cm9rZWQtYnV0dG9uIiwiIiwzLCJkaXNhYmxlZCIsImRvd25sb2FkIl0sWyJhbGlnbiIsImVuZCJdLFsibWF0LWJ1dHRvbiIsIiIsIm1hdC1kaWFsb2ctY2xvc2UiLCIiXSxbMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzQsIk5nU3dpdGNoRGVmYXVsdCJdLFszLCJ2YWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUXAoMCxhNSwzMCwxMiwibmctY29udGFpbmVyIiwwKSxRcCgxLHI1LDEsMCwibmctdGVtcGxhdGUiLG51bGwsMSxpYikpLDImZSl7Y29uc3QgdD0kcCgyKTtEbSgibmdJZiIsbi5jYXJkTWV0YWRhdGEpKCJuZ0lmRWxzZSIsdCl9fSxkaXJlY3RpdmVzOltkTSxNTSxzVyxBVix2VixMWSxJVSxCVSxsTSxLSCxsVyxYSCxhVyxmTSxnTV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9aDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxLjI1ZW07b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfS5ydW4tc2VsZWN0b3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTouOWVtO3dpZHRoOjEwMCV9LmRvd25sb2FkLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6LjllbX0uZG93bmxvYWQtY29udHJvbHNbX25nY29udGVudC0lQ09NUCVdICAgYVtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjNweCAxMHB4IDNweCAwfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChzNSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJkYXRhX2Rvd25sb2FkX2RpYWxvZ19jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJkYXRhX2Rvd25sb2FkX2RpYWxvZ19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiZGF0YV9kb3dubG9hZF9kaWFsb2dfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse2NhcmRNZXRhZGF0YTpbe3R5cGU6eHl9XSxydW5zOlt7dHlwZTp4eX1dLHNlbGVjdGVkUnVuSWQ6W3t0eXBlOnh5fV0sZG93bmxvYWRVcmxDc3Y6W3t0eXBlOnh5fV0sZG93bmxvYWRVcmxKc29uOlt7dHlwZTp4eX1dLHJ1blNlbGVjdGVkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgbDV7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuc2VsZWN0ZWRSdW5JZCQ9bmV3IEYobnVsbCksdGhpcy5jYXJkTWV0YWRhdGEkPXQuc2VsZWN0KHlULG4uY2FyZElkKS5waXBlKGNlKCh0PT5Cb29sZWFuKHQpKSkpLHRoaXMuZG93bmxvYWRVcmxDc3YkPVd0KFt0LnNlbGVjdCh5VCxuLmNhcmRJZCksdGhpcy5zZWxlY3RlZFJ1bklkJF0pLnBpcGUoSXQoKChbdCxuXSk9PnQmJm4/ZS5kb3dubG9hZFVybCh0LnBsdWdpbix0LnRhZyxuLCJjc3YiKTpudWxsKSksTmUobnVsbCkpLHRoaXMuZG93bmxvYWRVcmxKc29uJD1XdChbdC5zZWxlY3QoeVQsbi5jYXJkSWQpLHRoaXMuc2VsZWN0ZWRSdW5JZCRdKS5waXBlKEl0KCgoW3Qsbl0pPT50JiZuP2UuZG93bmxvYWRVcmwodC5wbHVnaW4sdC50YWcsbiwianNvbiIpOm51bGwpKSxOZShudWxsKSksdGhpcy5ydW5zJD1XdChbdC5zZWxlY3QoZE4pLHQuc2VsZWN0KGhULG4uY2FyZElkKV0pLnBpcGUoSXQoKChbdCxlXSk9PmU/T2JqZWN0LmtleXMoZSkubWFwKChlPT50LmdldChlKSkpLmZpbHRlcihCb29sZWFuKTpbXSkpKX19ZnVuY3Rpb24gYzUodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gZDUodCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIGM1KHQoZSksbil9fSkodCkpLHtsZWZ0OmZ1bmN0aW9uKGUsbixvLGkpe2ZvcihudWxsPT1vJiYobz0wKSxudWxsPT1pJiYoaT1lLmxlbmd0aCk7bzxpOyl7dmFyIGE9bytpPj4+MTt0KGVbYV0sbik8MD9vPWErMTppPWF9cmV0dXJuIG99LHJpZ2h0OmZ1bmN0aW9uKGUsbixvLGkpe2ZvcihudWxsPT1vJiYobz0wKSxudWxsPT1pJiYoaT1lLmxlbmd0aCk7bzxpOyl7dmFyIGE9bytpPj4+MTt0KGVbYV0sbik+MD9pPWE6bz1hKzF9cmV0dXJuIG99fX1sNS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bDUpKFNtKEl3KSxTbShQQSksU20oSkcpKX0sbDUuybVjbXA9dG8oe3R5cGU6bDUsc2VsZWN0b3JzOltbImRhdGFfZG93bmxvYWRfZGlhbG9nIl1dLGRlY2xzOjYsdmFyczoxNSxjb25zdHM6W1szLCJjYXJkTWV0YWRhdGEiLCJydW5zIiwic2VsZWN0ZWRSdW5JZCIsImRvd25sb2FkVXJsQ3N2IiwiZG93bmxvYWRVcmxKc29uIiwicnVuU2VsZWN0ZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRhdGFfZG93bmxvYWRfZGlhbG9nX2NvbXBvbmVudCIsMCksVm0oInJ1blNlbGVjdGVkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5zZWxlY3RlZFJ1bklkJC5uZXh0KGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQWgoNSwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJjYXJkTWV0YWRhdGEiLFRoKDEsNSxuLmNhcmRNZXRhZGF0YSQpKSgicnVucyIsVGgoMiw3LG4ucnVucyQpKSgic2VsZWN0ZWRSdW5JZCIsVGgoMyw5LG4uc2VsZWN0ZWRSdW5JZCQpKSgiZG93bmxvYWRVcmxDc3YiLFRoKDQsMTEsbi5kb3dubG9hZFVybENzdiQpKSgiZG93bmxvYWRVcmxKc29uIixUaCg1LDEzLG4uZG93bmxvYWRVcmxKc29uJCkpfSxkaXJlY3RpdmVzOltzNV0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGw1LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImRhdGFfZG93bmxvYWRfZGlhbG9nIix0ZW1wbGF0ZTonPGRhdGFfZG93bmxvYWRfZGlhbG9nX2NvbXBvbmVudFxuICAgIFtjYXJkTWV0YWRhdGFdPSJjYXJkTWV0YWRhdGEkIHwgYXN5bmMiXG4gICAgW3J1bnNdPSJydW5zJCB8IGFzeW5jIlxuICAgIFtzZWxlY3RlZFJ1bklkXT0ic2VsZWN0ZWRSdW5JZCQgfCBhc3luYyJcbiAgICBbZG93bmxvYWRVcmxDc3ZdPSJkb3dubG9hZFVybENzdiQgfCBhc3luYyJcbiAgICBbZG93bmxvYWRVcmxKc29uXT0iZG93bmxvYWRVcmxKc29uJCB8IGFzeW5jIlxuICAgIChydW5TZWxlY3RlZCk9InNlbGVjdGVkUnVuSWQkLm5leHQoJGV2ZW50KSJcbiAgPjwvZGF0YV9kb3dubG9hZF9kaWFsb2dfY29tcG9uZW50PicsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fSx7dHlwZTpQQX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0pHXX1dfV19KSxudWxsKSwoZnVuY3Rpb24odCl7dFt0Lk9SSUdJTkFMPTBdPSJPUklHSU5BTCIsdFt0LkRFUklWRUQ9MV09IkRFUklWRUQifSkoUTJ8fChRMj17fSkpO3ZhciBwNT1kNShjNSkucmlnaHQ7ZnVuY3Rpb24gbTUodCxlKXt2YXIgbixvLGksYT10Lmxlbmd0aCxyPS0xO2lmKG51bGw9PWUpe2Zvcig7KytyPGE7KWlmKG51bGwhPShuPXRbcl0pJiZuPj1uKWZvcihvPWk9bjsrK3I8YTspbnVsbCE9KG49dFtyXSkmJihvPm4mJihvPW4pLGk8biYmKGk9bikpfWVsc2UgZm9yKDsrK3I8YTspaWYobnVsbCE9KG49ZSh0W3JdLHIsdCkpJiZuPj1uKWZvcihvPWk9bjsrK3I8YTspbnVsbCE9KG49ZSh0W3JdLHIsdCkpJiYobz5uJiYobz1uKSxpPG4mJihpPW4pKTtyZXR1cm5bbyxpXX12YXIgdTU9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIGY1KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBnNSh0KXtyZXR1cm4gdH1mdW5jdGlvbiBoNSh0LGUsbil7dD0rdCxlPStlLG49KGk9YXJndW1lbnRzLmxlbmd0aCk8Mj8oZT10LHQ9MCwxKTppPDM/MTorbjtmb3IodmFyIG89LTEsaT0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChlLXQpL24pKSxhPW5ldyBBcnJheShpKTsrK288aTspYVtvXT10K28qbjtyZXR1cm4gYX12YXIgYjU9TWF0aC5zcXJ0KDUwKSx5NT1NYXRoLnNxcnQoMTApLF81PU1hdGguc3FydCgyKTtmdW5jdGlvbiBDNSh0LGUsbil7dmFyIG8saSxhLHIscz0tMTtpZihuPStuLCh0PSt0KT09KGU9K2UpJiZuPjApcmV0dXJuW3RdO2lmKChvPWU8dCkmJihpPXQsdD1lLGU9aSksMD09PShyPU01KHQsZSxuKSl8fCFpc0Zpbml0ZShyKSlyZXR1cm5bXTtpZihyPjApZm9yKHQ9TWF0aC5jZWlsKHQvciksZT1NYXRoLmZsb29yKGUvciksYT1uZXcgQXJyYXkoaT1NYXRoLmNlaWwoZS10KzEpKTsrK3M8aTspYVtzXT0odCtzKSpyO2Vsc2UgZm9yKHQ9TWF0aC5mbG9vcih0KnIpLGU9TWF0aC5jZWlsKGUqciksYT1uZXcgQXJyYXkoaT1NYXRoLmNlaWwodC1lKzEpKTsrK3M8aTspYVtzXT0odC1zKS9yO3JldHVybiBvJiZhLnJldmVyc2UoKSxhfWZ1bmN0aW9uIE01KHQsZSxuKXt2YXIgbz0oZS10KS9NYXRoLm1heCgwLG4pLGk9TWF0aC5mbG9vcihNYXRoLmxvZyhvKS9NYXRoLkxOMTApLGE9by9NYXRoLnBvdygxMCxpKTtyZXR1cm4gaT49MD8oYT49YjU/MTA6YT49eTU/NTphPj1fNT8yOjEpKk1hdGgucG93KDEwLGkpOi1NYXRoLnBvdygxMCwtaSkvKGE+PWI1PzEwOmE+PXk1PzU6YT49XzU/MjoxKX1mdW5jdGlvbiB2NSh0LGUsbil7dmFyIG89TWF0aC5hYnMoZS10KS9NYXRoLm1heCgwLG4pLGk9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhvKS9NYXRoLkxOMTApKSxhPW8vaTtyZXR1cm4gYT49YjU/aSo9MTA6YT49eTU/aSo9NTphPj1fNSYmKGkqPTIpLGU8dD8taTppfWZ1bmN0aW9uIHg1KHQpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5sb2codC5sZW5ndGgpL01hdGguTE4yKSsxfWZ1bmN0aW9uIE81KCl7dmFyIHQ9ZzUsZT1tNSxuPXg1O2Z1bmN0aW9uIG8obyl7dmFyIGksYSxyPW8ubGVuZ3RoLHM9bmV3IEFycmF5KHIpO2ZvcihpPTA7aTxyOysraSlzW2ldPXQob1tpXSxpLG8pO3ZhciBsPWUocyksYz1sWzBdLGQ9bFsxXSxwPW4ocyxjLGQpO0FycmF5LmlzQXJyYXkocCl8fChwPXY1KGMsZCxwKSxwPWg1KE1hdGguY2VpbChjL3ApKnAsZCxwKSk7Zm9yKHZhciBtPXAubGVuZ3RoO3BbMF08PWM7KXAuc2hpZnQoKSwtLW07Zm9yKDtwW20tMV0+ZDspcC5wb3AoKSwtLW07dmFyIHUsZj1uZXcgQXJyYXkobSsxKTtmb3IoaT0wO2k8PW07KytpKSh1PWZbaV09W10pLngwPWk+MD9wW2ktMV06Yyx1LngxPWk8bT9wW2ldOmQ7Zm9yKGk9MDtpPHI7KytpKWM8PShhPXNbaV0pJiZhPD1kJiZmW3A1KHAsYSwwLG0pXS5wdXNoKG9baV0pO3JldHVybiBmfXJldHVybiBvLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6ZjUoZSksbyk6dH0sby5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpmNShbdFswXSx0WzFdXSksbyk6ZX0sby50aHJlc2hvbGRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6QXJyYXkuaXNBcnJheSh0KT9mNSh1NS5jYWxsKHQpKTpmNSh0KSxvKTpufSxvfXZhciBQNT1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gdzUodCl7cmV0dXJuIHR9dmFyIGs1PTFlLTY7ZnVuY3Rpb24gUzUodCl7cmV0dXJuInRyYW5zbGF0ZSgiKyh0Ky41KSsiLDApIn1mdW5jdGlvbiBENSh0KXtyZXR1cm4idHJhbnNsYXRlKDAsIisodCsuNSkrIikifWZ1bmN0aW9uIEU1KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4rdChlKX19ZnVuY3Rpb24gUjUodCl7dmFyIGU9TWF0aC5tYXgoMCx0LmJhbmR3aWR0aCgpLTEpLzI7cmV0dXJuIHQucm91bmQoKSYmKGU9TWF0aC5yb3VuZChlKSksZnVuY3Rpb24obil7cmV0dXJuK3QobikrZX19ZnVuY3Rpb24gQTUoKXtyZXR1cm4hdGhpcy5fX2F4aXN9ZnVuY3Rpb24gVDUodCxlKXt2YXIgbj1bXSxvPW51bGwsaT1udWxsLGE9NixyPTYscz0zLGw9MT09PXR8fDQ9PT10Py0xOjEsYz00PT09dHx8Mj09PXQ/IngiOiJ5IixkPTE9PT10fHwzPT09dD9TNTpENTtmdW5jdGlvbiBwKHApe3ZhciBtPW51bGw9PW8/ZS50aWNrcz9lLnRpY2tzLmFwcGx5KGUsbik6ZS5kb21haW4oKTpvLHU9bnVsbD09aT9lLnRpY2tGb3JtYXQ/ZS50aWNrRm9ybWF0LmFwcGx5KGUsbik6dzU6aSxmPU1hdGgubWF4KGEsMCkrcyxnPWUucmFuZ2UoKSxoPStnWzBdKy41LGI9K2dbZy5sZW5ndGgtMV0rLjUseT0oZS5iYW5kd2lkdGg/UjU6RTUpKGUuY29weSgpKSxfPXAuc2VsZWN0aW9uP3Auc2VsZWN0aW9uKCk6cCxDPV8uc2VsZWN0QWxsKCIuZG9tYWluIikuZGF0YShbbnVsbF0pLE09Xy5zZWxlY3RBbGwoIi50aWNrIikuZGF0YShtLGUpLm9yZGVyKCksdj1NLmV4aXQoKSx4PU0uZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInRpY2siKSxPPU0uc2VsZWN0KCJsaW5lIiksUD1NLnNlbGVjdCgidGV4dCIpO0M9Qy5tZXJnZShDLmVudGVyKCkuaW5zZXJ0KCJwYXRoIiwiLnRpY2siKS5hdHRyKCJjbGFzcyIsImRvbWFpbiIpLmF0dHIoInN0cm9rZSIsImN1cnJlbnRDb2xvciIpKSxNPU0ubWVyZ2UoeCksTz1PLm1lcmdlKHguYXBwZW5kKCJsaW5lIikuYXR0cigic3Ryb2tlIiwiY3VycmVudENvbG9yIikuYXR0cihjKyIyIixsKmEpKSxQPVAubWVyZ2UoeC5hcHBlbmQoInRleHQiKS5hdHRyKCJmaWxsIiwiY3VycmVudENvbG9yIikuYXR0cihjLGwqZikuYXR0cigiZHkiLDE9PT10PyIwZW0iOjM9PT10PyIwLjcxZW0iOiIwLjMyZW0iKSkscCE9PV8mJihDPUMudHJhbnNpdGlvbihwKSxNPU0udHJhbnNpdGlvbihwKSxPPU8udHJhbnNpdGlvbihwKSxQPVAudHJhbnNpdGlvbihwKSx2PXYudHJhbnNpdGlvbihwKS5hdHRyKCJvcGFjaXR5IixrNSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9eSh0KSk/ZCh0KTp0aGlzLmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIil9KSkseC5hdHRyKCJvcGFjaXR5IixrNSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5wYXJlbnROb2RlLl9fYXhpcztyZXR1cm4gZChlJiZpc0Zpbml0ZShlPWUodCkpP2U6eSh0KSl9KSkpLHYucmVtb3ZlKCksQy5hdHRyKCJkIiw0PT09dHx8Mj09dD9yPyJNIitsKnIrIiwiK2grIkgwLjVWIitiKyJIIitsKnI6Ik0wLjUsIitoKyJWIitiOnI/Ik0iK2grIiwiK2wqcisiVjAuNUgiK2IrIlYiK2wqcjoiTSIraCsiLDAuNUgiK2IpLE0uYXR0cigib3BhY2l0eSIsMSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIGQoeSh0KSl9KSksTy5hdHRyKGMrIjIiLGwqYSksUC5hdHRyKGMsbCpmKS50ZXh0KHUpLF8uZmlsdGVyKEE1KS5hdHRyKCJmaWxsIiwibm9uZSIpLmF0dHIoImZvbnQtc2l6ZSIsMTApLmF0dHIoImZvbnQtZmFtaWx5Iiwic2Fucy1zZXJpZiIpLmF0dHIoInRleHQtYW5jaG9yIiwyPT09dD8ic3RhcnQiOjQ9PT10PyJlbmQiOiJtaWRkbGUiKSxfLmVhY2goKGZ1bmN0aW9uKCl7dGhpcy5fX2F4aXM9eX0pKX1yZXR1cm4gcC5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LHApOmV9LHAudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gbj1QNS5jYWxsKGFyZ3VtZW50cykscH0scC50aWNrQXJndW1lbnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/W106UDUuY2FsbCh0KSxwKTpuLnNsaWNlKCl9LHAudGlja1ZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT10P251bGw6UDUuY2FsbCh0KSxwKTpvJiZvLnNsaWNlKCl9LHAudGlja0Zvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LHApOml9LHAudGlja1NpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9cj0rdCxwKTphfSxwLnRpY2tTaXplSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3QscCk6YX0scC50aWNrU2l6ZU91dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LHApOnJ9LHAudGlja1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9K3QscCk6c30scH1mdW5jdGlvbiBONSh0KXtyZXR1cm4gVDUoMix0KX1mdW5jdGlvbiB6NSh0KXtyZXR1cm4gVDUoMyx0KX12YXIgSTU9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gSDUoKXtmb3IodmFyIHQsZT0wLG49YXJndW1lbnRzLmxlbmd0aCxvPXt9O2U8bjsrK2Upe2lmKCEodD1hcmd1bWVudHNbZV0rIiIpfHx0IGluIG98fC9bXHMuXS8udGVzdCh0KSl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgdHlwZTogIit0KTtvW3RdPVtdfXJldHVybiBuZXcgRjUobyl9ZnVuY3Rpb24gRjUodCl7dGhpcy5fPXR9ZnVuY3Rpb24gTDUodCxlKXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgbj0iIixvPXQuaW5kZXhPZigiLiIpO2lmKG8+PTAmJihuPXQuc2xpY2UobysxKSx0PXQuc2xpY2UoMCxvKSksdCYmIWUuaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOm59fSkpfWZ1bmN0aW9uIEI1KHQsZSl7Zm9yKHZhciBuLG89MCxpPXQubGVuZ3RoO288aTsrK28paWYoKG49dFtvXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24gVjUodCxlLG4pe2Zvcih2YXIgbz0wLGk9dC5sZW5ndGg7bzxpOysrbylpZih0W29dLm5hbWU9PT1lKXt0W29dPUk1LHQ9dC5zbGljZSgwLG8pLmNvbmNhdCh0LnNsaWNlKG8rMSkpO2JyZWFrfXJldHVybiBudWxsIT1uJiZ0LnB1c2goe25hbWU6ZSx2YWx1ZTpufSksdH1GNS5wcm90b3R5cGU9SDUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpGNSxvbjpmdW5jdGlvbih0LGUpe3ZhciBuLG89dGhpcy5fLGk9TDUodCsiIixvKSxhPS0xLHI9aS5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK2E8cjspaWYobj0odD1pW2FdKS50eXBlKW9bbl09VjUob1tuXSx0Lm5hbWUsZSk7ZWxzZSBpZihudWxsPT1lKWZvcihuIGluIG8pb1tuXT1WNShvW25dLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrYTxyOylpZigobj0odD1pW2FdKS50eXBlKSYmKG49QjUob1tuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcgRjUodCl9LGNhbGw6ZnVuY3Rpb24odCxlKXtpZigobj1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBuLG8saT1uZXcgQXJyYXkobiksYT0wO2E8bjsrK2EpaVthXT1hcmd1bWVudHNbYSsyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2ZvcihhPTAsbj0obz10aGlzLl9bdF0pLmxlbmd0aDthPG47KythKW9bYV0udmFsdWUuYXBwbHkoZSxpKX0sYXBwbHk6ZnVuY3Rpb24odCxlLG4pe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKHZhciBvPXRoaXMuX1t0XSxpPTAsYT1vLmxlbmd0aDtpPGE7KytpKW9baV0udmFsdWUuYXBwbHkoZSxuKX19O3ZhciBqNT0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsVTU9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOmo1LHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn07ZnVuY3Rpb24gRzUodCl7dmFyIGU9dCs9IiIsbj1lLmluZGV4T2YoIjoiKTtyZXR1cm4gbj49MCYmInhtbG5zIiE9PShlPXQuc2xpY2UoMCxuKSkmJih0PXQuc2xpY2UobisxKSksVTUuaGFzT3duUHJvcGVydHkoZSk/e3NwYWNlOlU1W2VdLGxvY2FsOnR9OnR9ZnVuY3Rpb24gVzUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50LG49dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIG49PT1qNSYmZS5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09ajU/ZS5jcmVhdGVFbGVtZW50KHQpOmUuY3JlYXRlRWxlbWVudE5TKG4sdCl9fWZ1bmN0aW9uIFk1KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIHE1KHQpe3ZhciBlPUc1KHQpO3JldHVybihlLmxvY2FsP1k1Olc1KShlKX1mdW5jdGlvbiBaNSgpe31mdW5jdGlvbiBYNSh0KXtyZXR1cm4gbnVsbD09dD9aNTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IodCl9fWZ1bmN0aW9uIEs1KCl7cmV0dXJuW119ZnVuY3Rpb24gSjUodCl7cmV0dXJuIG51bGw9PXQ/SzU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKHQpfX1mdW5jdGlvbiBRNSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKHQpfX1mdW5jdGlvbiAkNSh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiB0NCh0LGUpe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189ZX1mdW5jdGlvbiBlNCh0LGUsbixvLGksYSl7Zm9yKHZhciByLHM9MCxsPWUubGVuZ3RoLGM9YS5sZW5ndGg7czxjOysrcykocj1lW3NdKT8oci5fX2RhdGFfXz1hW3NdLG9bc109cik6bltzXT1uZXcgdDQodCxhW3NdKTtmb3IoO3M8bDsrK3MpKHI9ZVtzXSkmJihpW3NdPXIpfWZ1bmN0aW9uIG40KHQsZSxuLG8saSxhLHIpe3ZhciBzLGwsYyxkPXt9LHA9ZS5sZW5ndGgsbT1hLmxlbmd0aCx1PW5ldyBBcnJheShwKTtmb3Iocz0wO3M8cDsrK3MpKGw9ZVtzXSkmJih1W3NdPWM9IiQiK3IuY2FsbChsLGwuX19kYXRhX18scyxlKSxjIGluIGQ/aVtzXT1sOmRbY109bCk7Zm9yKHM9MDtzPG07KytzKShsPWRbYz0iJCIrci5jYWxsKHQsYVtzXSxzLGEpXSk/KG9bc109bCxsLl9fZGF0YV9fPWFbc10sZFtjXT1udWxsKTpuW3NdPW5ldyB0NCh0LGFbc10pO2ZvcihzPTA7czxwOysrcykobD1lW3NdKSYmZFt1W3NdXT09PWwmJihpW3NdPWwpfWZ1bmN0aW9uIG80KHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIGk0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiBhNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIHI0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19ZnVuY3Rpb24gczQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlKX19ZnVuY3Rpb24gbDQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpOnRoaXMuc2V0QXR0cmlidXRlKHQsbil9fWZ1bmN0aW9uIGM0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsbil9fWZ1bmN0aW9uIGQ0KHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBwNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBtNCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUsbil9fWZ1bmN0aW9uIHU0KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1vP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LG8sbil9fWZ1bmN0aW9uIGY0KHQsZSl7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShlKXx8ZDQodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUoZSl9ZnVuY3Rpb24gZzQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19fWZ1bmN0aW9uIGg0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1lfX1mdW5jdGlvbiBiNCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/ZGVsZXRlIHRoaXNbdF06dGhpc1t0XT1ufX1mdW5jdGlvbiB5NCh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVuY3Rpb24gXzQodCl7cmV0dXJuIHQuY2xhc3NMaXN0fHxuZXcgQzQodCl9ZnVuY3Rpb24gQzQodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPXk0KHQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9ZnVuY3Rpb24gTTQodCxlKXtmb3IodmFyIG49XzQodCksbz0tMSxpPWUubGVuZ3RoOysrbzxpOyluLmFkZChlW29dKX1mdW5jdGlvbiB2NCh0LGUpe2Zvcih2YXIgbj1fNCh0KSxvPS0xLGk9ZS5sZW5ndGg7KytvPGk7KW4ucmVtb3ZlKGVbb10pfWZ1bmN0aW9uIHg0KHQpe3JldHVybiBmdW5jdGlvbigpe000KHRoaXMsdCl9fWZ1bmN0aW9uIE80KHQpe3JldHVybiBmdW5jdGlvbigpe3Y0KHRoaXMsdCl9fWZ1bmN0aW9uIFA0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7KGUuYXBwbHkodGhpcyxhcmd1bWVudHMpP000OnY0KSh0aGlzLHQpfX1mdW5jdGlvbiB3NCgpe3RoaXMudGV4dENvbnRlbnQ9IiJ9ZnVuY3Rpb24gazQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX1mdW5jdGlvbiBTNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gRDQoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBFNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX1mdW5jdGlvbiBSNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIEE0KCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIFQ0KCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gTjQoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiB6NCgpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIEk0KCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITEpLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH1mdW5jdGlvbiBINCgpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCEwKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9dDQucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp0NCxhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LGUpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSxDNC5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt0aGlzLl9uYW1lcy5pbmRleE9mKHQpPDAmJih0aGlzLl9uYW1lcy5wdXNoKHQpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9uYW1lcy5pbmRleE9mKHQpO2U+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UoZSwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciBGND17fSxMND1udWxsO2Z1bmN0aW9uIEI0KHQsZSxuKXtyZXR1cm4gdD1WNCh0LGUsbiksZnVuY3Rpb24oZSl7dmFyIG49ZS5yZWxhdGVkVGFyZ2V0O24mJihuPT09dGhpc3x8OCZuLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMpKXx8dC5jYWxsKHRoaXMsZSl9fWZ1bmN0aW9uIFY0KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24obyl7dmFyIGk9TDQ7TDQ9bzt0cnl7dC5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxlLG4pfWZpbmFsbHl7TDQ9aX19fWZ1bmN0aW9uIGo0KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihlPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOmV9fSkpfWZ1bmN0aW9uIFU0KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMuX19vbjtpZihlKXtmb3IodmFyIG4sbz0wLGk9LTEsYT1lLmxlbmd0aDtvPGE7KytvKW49ZVtvXSx0LnR5cGUmJm4udHlwZSE9PXQudHlwZXx8bi5uYW1lIT09dC5uYW1lP2VbKytpXT1uOnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLnR5cGUsbi5saXN0ZW5lcixuLmNhcHR1cmUpOysraT9lLmxlbmd0aD1pOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBHNCh0LGUsbil7dmFyIG89RjQuaGFzT3duUHJvcGVydHkodC50eXBlKT9CNDpWNDtyZXR1cm4gZnVuY3Rpb24oaSxhLHIpe3ZhciBzLGw9dGhpcy5fX29uLGM9byhlLGEscik7aWYobClmb3IodmFyIGQ9MCxwPWwubGVuZ3RoO2Q8cDsrK2QpaWYoKHM9bFtkXSkudHlwZT09PXQudHlwZSYmcy5uYW1lPT09dC5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXIscy5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXI9YyxzLmNhcHR1cmU9biksdm9pZChzLnZhbHVlPWUpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcih0LnR5cGUsYyxuKSxzPXt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSx2YWx1ZTplLGxpc3RlbmVyOmMsY2FwdHVyZTpufSxsP2wucHVzaChzKTp0aGlzLl9fb249W3NdfX1mdW5jdGlvbiBXNCh0LGUsbil7dmFyIG89ZDQodCksaT1vLkN1c3RvbUV2ZW50OyJmdW5jdGlvbiI9PXR5cGVvZiBpP2k9bmV3IGkoZSxuKTooaT1vLmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLG4/KGkuaW5pdEV2ZW50KGUsbi5idWJibGVzLG4uY2FuY2VsYWJsZSksaS5kZXRhaWw9bi5kZXRhaWwpOmkuaW5pdEV2ZW50KGUsITEsITEpKSx0LmRpc3BhdGNoRXZlbnQoaSl9ZnVuY3Rpb24gWTQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gVzQodGhpcyx0LGUpfX1mdW5jdGlvbiBxNCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBXNCh0aGlzLHQsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChGND17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7dmFyIFo0PVtudWxsXTtmdW5jdGlvbiBYNCh0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBLNCgpe3JldHVybiBuZXcgWDQoW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSxaNCl9ZnVuY3Rpb24gSjQodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P25ldyBYNChbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCldXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IFg0KFtbdF1dLFo0KX1mdW5jdGlvbiBRNCgpe2Zvcih2YXIgdCxlPUw0O3Q9ZS5zb3VyY2VFdmVudDspZT10O3JldHVybiBlfWZ1bmN0aW9uICQ0KHQsZSl7dmFyIG49dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIG89bi5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBvLng9ZS5jbGllbnRYLG8ueT1lLmNsaWVudFksWyhvPW8ubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxvLnldfXZhciBpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW2UuY2xpZW50WC1pLmxlZnQtdC5jbGllbnRMZWZ0LGUuY2xpZW50WS1pLnRvcC10LmNsaWVudFRvcF19ZnVuY3Rpb24gdDYodCl7dmFyIGU9UTQoKTtyZXR1cm4gZS5jaGFuZ2VkVG91Y2hlcyYmKGU9ZS5jaGFuZ2VkVG91Y2hlc1swXSksJDQodCxlKX1mdW5jdGlvbiBlNigpe0w0LnByZXZlbnREZWZhdWx0KCksTDQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gbjYodCl7dmFyIGU9dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1KNCh0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLGU2LCEwKTsib25zZWxlY3RzdGFydCJpbiBlP24ub24oInNlbGVjdHN0YXJ0LmRyYWciLGU2LCEwKTooZS5fX25vc2VsZWN0PWUuc3R5bGUuTW96VXNlclNlbGVjdCxlLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiKX1mdW5jdGlvbiBvNih0LGUpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG89SjQodCkub24oImRyYWdzdGFydC5kcmFnIixudWxsKTtlJiYoby5vbigiY2xpY2suZHJhZyIsZTYsITApLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7by5vbigiY2xpY2suZHJhZyIsbnVsbCl9KSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gbj9vLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKToobi5zdHlsZS5Nb3pVc2VyU2VsZWN0PW4uX19ub3NlbGVjdCxkZWxldGUgbi5fX25vc2VsZWN0KX1mdW5jdGlvbiBpNih0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gYTYodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIG8gaW4gZSluW29dPWVbb107cmV0dXJuIG59ZnVuY3Rpb24gcjYoKXt9WDQucHJvdG90eXBlPUs0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6WDQsc2VsZWN0OmZ1bmN0aW9uIHM2KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1YNSh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLG89bmV3IEFycmF5KG4pLGk9MDtpPG47KytpKWZvcih2YXIgYSxyLHM9ZVtpXSxsPXMubGVuZ3RoLGM9b1tpXT1uZXcgQXJyYXkobCksZD0wO2Q8bDsrK2QpKGE9c1tkXSkmJihyPXQuY2FsbChhLGEuX19kYXRhX18sZCxzKSkmJigiX19kYXRhX18iaW4gYSYmKHIuX19kYXRhX189YS5fX2RhdGFfXyksY1tkXT1yKTtyZXR1cm4gbmV3IFg0KG8sdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBsNih0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9SjUodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxvPVtdLGk9W10sYT0wO2E8bjsrK2EpZm9yKHZhciByLHM9ZVthXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKShyPXNbY10pJiYoby5wdXNoKHQuY2FsbChyLHIuX19kYXRhX18sYyxzKSksaS5wdXNoKHIpKTtyZXR1cm4gbmV3IFg0KG8saSl9LGZpbHRlcjpmdW5jdGlvbiBjNih0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9UTUodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxvPW5ldyBBcnJheShuKSxpPTA7aTxuOysraSlmb3IodmFyIGEscj1lW2ldLHM9ci5sZW5ndGgsbD1vW2ldPVtdLGM9MDtjPHM7KytjKShhPXJbY10pJiZ0LmNhbGwoYSxhLl9fZGF0YV9fLGMscikmJmwucHVzaChhKTtyZXR1cm4gbmV3IFg0KG8sdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gZDYodCxlKXtpZighdClyZXR1cm4gZj1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGQ9LTEsdGhpcy5lYWNoKChmdW5jdGlvbih0KXtmWysrZF09dH0pKSxmO3ZhciBuPWU/bjQ6ZTQsbz10aGlzLl9wYXJlbnRzLGk9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gYSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciByPWkubGVuZ3RoLHM9bmV3IEFycmF5KHIpLGw9bmV3IEFycmF5KHIpLGM9bmV3IEFycmF5KHIpLGQ9MDtkPHI7KytkKXt2YXIgcD1vW2RdLG09aVtkXSx1PW0ubGVuZ3RoLGY9dC5jYWxsKHAscCYmcC5fX2RhdGFfXyxkLG8pLGc9Zi5sZW5ndGgsaD1sW2RdPW5ldyBBcnJheShnKSxiPXNbZF09bmV3IEFycmF5KGcpO24ocCxtLGgsYixjW2RdPW5ldyBBcnJheSh1KSxmLGUpO2Zvcih2YXIgeSxfLEM9MCxNPTA7QzxnOysrQylpZih5PWhbQ10pe2ZvcihDPj1NJiYoTT1DKzEpOyEoXz1iW01dKSYmKytNPGc7KTt5Ll9uZXh0PV98fG51bGx9fXJldHVybihzPW5ldyBYNChzLG8pKS5fZW50ZXI9bCxzLl9leGl0PWMsc30sZW50ZXI6ZnVuY3Rpb24gcDYoKXtyZXR1cm4gbmV3IFg0KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKCQ1KSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbiBtNigpe3JldHVybiBuZXcgWDQodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcCgkNSksdGhpcy5fcGFyZW50cyl9LGpvaW46ZnVuY3Rpb24gdTYodCxlLG4pe3ZhciBvPXRoaXMuZW50ZXIoKSxpPXRoaXMsYT10aGlzLmV4aXQoKTtyZXR1cm4gbz0iZnVuY3Rpb24iPT10eXBlb2YgdD90KG8pOm8uYXBwZW5kKHQrIiIpLG51bGwhPWUmJihpPWUoaSkpLG51bGw9PW4/YS5yZW1vdmUoKTpuKGEpLG8mJmk/by5tZXJnZShpKS5vcmRlcigpOml9LG1lcmdlOmZ1bmN0aW9uIGY2KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsbz1lLmxlbmd0aCxpPU1hdGgubWluKG8sbi5sZW5ndGgpLGE9bmV3IEFycmF5KG8pLHI9MDtyPGk7KytyKWZvcih2YXIgcyxsPWVbcl0sYz1uW3JdLGQ9bC5sZW5ndGgscD1hW3JdPW5ldyBBcnJheShkKSxtPTA7bTxkOysrbSkocz1sW21dfHxjW21dKSYmKHBbbV09cyk7Zm9yKDtyPG87KytyKWFbcl09ZVtyXTtyZXR1cm4gbmV3IFg0KGEsdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uIGc2KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPS0xLG49dC5sZW5ndGg7KytlPG47KWZvcih2YXIgbyxpPXRbZV0sYT1pLmxlbmd0aC0xLHI9aVthXTstLWE+PTA7KShvPWlbYV0pJiYociYmNF5vLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpJiZyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG8scikscj1vKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbiBoNih0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIGUmJm4/dChlLl9fZGF0YV9fLG4uX19kYXRhX18pOiFlLSFufXR8fCh0PW80KTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLG89bi5sZW5ndGgsaT1uZXcgQXJyYXkobyksYT0wO2E8bzsrK2Epe2Zvcih2YXIgcixzPW5bYV0sbD1zLmxlbmd0aCxjPWlbYV09bmV3IEFycmF5KGwpLGQ9MDtkPGw7KytkKShyPXNbZF0pJiYoY1tkXT1yKTtjLnNvcnQoZSl9cmV0dXJuIG5ldyBYNChpLHRoaXMuX3BhcmVudHMpLm9yZGVyKCl9LGNhbGw6ZnVuY3Rpb24gYjYoKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIHk2KCl7dmFyIHQ9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxlPS0xO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7dFsrK2VdPXRoaXN9KSksdH0sbm9kZTpmdW5jdGlvbiBfNigpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT0wLG49dC5sZW5ndGg7ZTxuOysrZSlmb3IodmFyIG89dFtlXSxpPTAsYT1vLmxlbmd0aDtpPGE7KytpKXt2YXIgcj1vW2ldO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24gQzYoKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9LGVtcHR5OmZ1bmN0aW9uIE02KCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uIHY2KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj0wLG89ZS5sZW5ndGg7bjxvOysrbilmb3IodmFyIGksYT1lW25dLHI9MCxzPWEubGVuZ3RoO3I8czsrK3IpKGk9YVtyXSkmJnQuY2FsbChpLGkuX19kYXRhX18scixhKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbiB4Nih0LGUpe3ZhciBuPUc1KHQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIG89dGhpcy5ub2RlKCk7cmV0dXJuIG4ubG9jYWw/by5nZXRBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwpOm8uZ2V0QXR0cmlidXRlKG4pfXJldHVybiB0aGlzLmVhY2goKG51bGw9PWU/bi5sb2NhbD9hNDppNDoiZnVuY3Rpb24iPT10eXBlb2YgZT9uLmxvY2FsP2M0Omw0Om4ubG9jYWw/czQ6cjQpKG4sZSkpfSxzdHlsZTpmdW5jdGlvbiBPNih0LGUsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/cDQ6ImZ1bmN0aW9uIj09dHlwZW9mIGU/dTQ6bTQpKHQsZSxudWxsPT1uPyIiOm4pKTpmNCh0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24gUDYodCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9nNDoiZnVuY3Rpb24iPT10eXBlb2YgZT9iNDpoNCkodCxlKSk6dGhpcy5ub2RlKClbdF19LGNsYXNzZWQ6ZnVuY3Rpb24gdzYodCxlKXt2YXIgbj15NCh0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgbz1fNCh0aGlzLm5vZGUoKSksaT0tMSxhPW4ubGVuZ3RoOysraTxhOylpZighby5jb250YWlucyhuW2ldKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgZT9QNDplP3g0Ok80KShuLGUpKX0sdGV4dDpmdW5jdGlvbiBrNih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD93NDooImZ1bmN0aW9uIj09dHlwZW9mIHQ/UzQ6azQpKHQpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0saHRtbDpmdW5jdGlvbiBTNih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9ENDooImZ1bmN0aW9uIj09dHlwZW9mIHQ/UjQ6RTQpKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIEQ2KCl7cmV0dXJuIHRoaXMuZWFjaChBNCl9LGxvd2VyOmZ1bmN0aW9uIEU2KCl7cmV0dXJuIHRoaXMuZWFjaChUNCl9LGFwcGVuZDpmdW5jdGlvbiBSNih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnE1KHQpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KSl9LGluc2VydDpmdW5jdGlvbiBBNih0LGUpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cTUodCksbz1udWxsPT1lP040OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6WDUoZSk7cmV0dXJuIHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KSl9LHJlbW92ZTpmdW5jdGlvbiBUNigpe3JldHVybiB0aGlzLmVhY2goejQpfSxjbG9uZTpmdW5jdGlvbiBONih0KXtyZXR1cm4gdGhpcy5zZWxlY3QodD9INDpJNCl9LGRhdHVtOmZ1bmN0aW9uIHo2KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIix0KTp0aGlzLm5vZGUoKS5fX2RhdGFfX30sb246ZnVuY3Rpb24gSTYodCxlLG4pe3ZhciBvLGksYT1qNCh0KyIiKSxyPWEubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHM9ZT9HNDpVNCxudWxsPT1uJiYobj0hMSksbz0wO288cjsrK28pdGhpcy5lYWNoKHMoYVtvXSxlLG4pKTtyZXR1cm4gdGhpc312YXIgcz10aGlzLm5vZGUoKS5fX29uO2lmKHMpZm9yKHZhciBsLGM9MCxkPXMubGVuZ3RoO2M8ZDsrK2MpZm9yKG89MCxsPXNbY107bzxyOysrbylpZigoaT1hW29dKS50eXBlPT09bC50eXBlJiZpLm5hbWU9PT1sLm5hbWUpcmV0dXJuIGwudmFsdWV9LGRpc3BhdGNoOmZ1bmN0aW9uIEg2KHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/cTQ6WTQpKHQsZSkpfX07dmFyIEY2PS43LEw2PTEvRjYsQjY9IlxccyooWystXT9cXGQrKVxccyoiLFY2PSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLGo2PSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixVNj0vXiMoWzAtOWEtZl17Myw4fSkkLyxHNj1uZXcgUmVnRXhwKCJecmdiXFwoIitbQjYsQjYsQjZdKyJcXCkkIiksVzY9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW2o2LGo2LGo2XSsiXFwpJCIpLFk2PW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbQjYsQjYsQjYsVjZdKyJcXCkkIikscTY9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tqNixqNixqNixWNl0rIlxcKSQiKSxaNj1uZXcgUmVnRXhwKCJeaHNsXFwoIitbVjYsajYsajZdKyJcXCkkIiksWDY9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tWNixqNixqNixWNl0rIlxcKSQiKSxLNj17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBKNigpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIFE2KCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gJDYodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9VTYuZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj90NyhlKTozPT09bj9uZXcgaTcoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP2U3KGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP2U3KGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9RzYuZXhlYyh0KSk/bmV3IGk3KGVbMV0sZVsyXSxlWzNdLDEpOihlPVc2LmV4ZWModCkpP25ldyBpNygyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1ZNi5leGVjKHQpKT9lNyhlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1xNi5leGVjKHQpKT9lNygyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1aNi5leGVjKHQpKT9sNyhlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVg2LmV4ZWModCkpP2w3KGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6SzYuaGFzT3duUHJvcGVydHkodCk/dDcoSzZbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyBpNyhOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIHQ3KHQpe3JldHVybiBuZXcgaTcodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIGU3KHQsZSxuLG8pe3JldHVybiBvPD0wJiYodD1lPW49TmFOKSxuZXcgaTcodCxlLG4sbyl9ZnVuY3Rpb24gbjcodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiByNnx8KHQ9JDYodCkpLHQ/bmV3IGk3KCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyBpN31mdW5jdGlvbiBvNyh0LGUsbixvKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/bjcodCk6bmV3IGk3KHQsZSxuLG51bGw9PW8/MTpvKX1mdW5jdGlvbiBpNyh0LGUsbixvKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K299ZnVuY3Rpb24gYTcoKXtyZXR1cm4iIyIrczcodGhpcy5yKStzNyh0aGlzLmcpK3M3KHRoaXMuYil9ZnVuY3Rpb24gcjcoKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBzNyh0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIGw3KHQsZSxuLG8pe3JldHVybiBvPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgcDcodCxlLG4sbyl9ZnVuY3Rpb24gYzcodCl7aWYodCBpbnN0YW5jZW9mIHA3KXJldHVybiBuZXcgcDcodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgcjZ8fCh0PSQ2KHQpKSwhdClyZXR1cm4gbmV3IHA3O2lmKHQgaW5zdGFuY2VvZiBwNylyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsbz10LmIvMjU1LGk9TWF0aC5taW4oZSxuLG8pLGE9TWF0aC5tYXgoZSxuLG8pLHI9TmFOLHM9YS1pLGw9KGEraSkvMjtyZXR1cm4gcz8ocj1lPT09YT8obi1vKS9zKzYqKG48byk6bj09PWE/KG8tZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P2EraToyLWEtaSxyKj02MCk6cz1sPjAmJmw8MT8wOnIsbmV3IHA3KHIscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gZDcodCxlLG4sbyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2M3KHQpOm5ldyBwNyh0LGUsbixudWxsPT1vPzE6byl9ZnVuY3Rpb24gcDcodCxlLG4sbyl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStvfWZ1bmN0aW9uIG03KHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1pNihyNiwkNix7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpKNixmb3JtYXRIZXg6SjYsZm9ybWF0SHNsOmZ1bmN0aW9uIHU3KCl7cmV0dXJuIGM3KHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6UTYsdG9TdHJpbmc6UTZ9KSxpNihpNyxvNyxhNihyNix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9MNjpNYXRoLnBvdyhMNix0KSxuZXcgaTcodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/RjY6TWF0aC5wb3coRjYsdCksbmV3IGk3KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6YTcsZm9ybWF0SGV4OmE3LGZvcm1hdFJnYjpyNyx0b1N0cmluZzpyN30pKSxpNihwNyxkNyxhNihyNix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9MNjpNYXRoLnBvdyhMNix0KSxuZXcgcDcodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9GNjpNYXRoLnBvdyhGNix0KSxuZXcgcDcodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsbz1uKyhuPC41P246MS1uKSplLGk9MipuLW87cmV0dXJuIG5ldyBpNyhtNyh0Pj0yNDA/dC0yNDA6dCsxMjAsaSxvKSxtNyh0LGksbyksbTcodDwxMjA/dCsyNDA6dC0xMjAsaSxvKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgZjc9TWF0aC5QSS8xODAsZzc9MTgwL01hdGguUEksaDc9Ljk2NDIyLGI3PS44MjUyMSx5Nz00LzI5LF83PTYvMjksQzc9MypfNypfNztmdW5jdGlvbiBNNyh0KXtpZih0IGluc3RhbmNlb2YgdjcpcmV0dXJuIG5ldyB2Nyh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBENylyZXR1cm4gRTcodCk7dCBpbnN0YW5jZW9mIGk3fHwodD1uNyh0KSk7dmFyIGUsbixvPXc3KHQuciksaT13Nyh0LmcpLGE9dzcodC5iKSxyPXg3KCguMjIyNTA0NSpvKy43MTY4Nzg2KmkrLjA2MDYxNjkqYSkvMSk7cmV0dXJuIG89PT1pJiZpPT09YT9lPW49cjooZT14NygoLjQzNjA3NDcqbysuMzg1MDY0OSppKy4xNDMwODA0KmEpL2g3KSxuPXg3KCguMDEzOTMyMipvKy4wOTcxMDQ1KmkrLjcxNDE3MzMqYSkvYjcpKSxuZXcgdjcoMTE2KnItMTYsNTAwKihlLXIpLDIwMCooci1uKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIHY3KHQsZSxuLG8pe3RoaXMubD0rdCx0aGlzLmE9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0rb31mdW5jdGlvbiB4Nyh0KXtyZXR1cm4gdD4uMDA4ODU2NDUxNjc5MDM1NjMxP01hdGgucG93KHQsMS8zKTp0L0M3K3k3fWZ1bmN0aW9uIE83KHQpe3JldHVybiB0Pl83P3QqdCp0OkM3Kih0LXk3KX1mdW5jdGlvbiBQNyh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIHc3KHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIGs3KHQpe2lmKHQgaW5zdGFuY2VvZiBENylyZXR1cm4gbmV3IEQ3KHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIHY3fHwodD1NNyh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IEQ3KE5hTiwwPHQubCYmdC5sPDEwMD8wOk5hTix0LmwsdC5vcGFjaXR5KTt2YXIgZT1NYXRoLmF0YW4yKHQuYix0LmEpKmc3O3JldHVybiBuZXcgRDcoZTwwP2UrMzYwOmUsTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gUzcodCxlLG4sbyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2s3KHQpOm5ldyBENyh0LGUsbixudWxsPT1vPzE6byl9ZnVuY3Rpb24gRDcodCxlLG4sbyl7dGhpcy5oPSt0LHRoaXMuYz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStvfWZ1bmN0aW9uIEU3KHQpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyB2Nyh0LmwsMCwwLHQub3BhY2l0eSk7dmFyIGU9dC5oKmY3O3JldHVybiBuZXcgdjcodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX1mdW5jdGlvbiBSNyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gQTcodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQrbiplfX1mdW5jdGlvbiBUNyh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9BNyh0LG4+MTgwfHxuPC0xODA/bi0zNjAqTWF0aC5yb3VuZChuLzM2MCk6bik6UjcoaXNOYU4odCk/ZTp0KX1mdW5jdGlvbiBONyh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9BNyh0LG4pOlI3KGlzTmFOKHQpP2U6dCl9aTYodjcsKGZ1bmN0aW9uIHo3KHQsZSxuLG8pe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9NNyh0KTpuZXcgdjcodCxlLG4sbnVsbD09bz8xOm8pfSksYTYocjYse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdjcodGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB2Nyh0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmwrMTYpLzExNixlPWlzTmFOKHRoaXMuYSk/dDp0K3RoaXMuYS81MDAsbj1pc05hTih0aGlzLmIpP3Q6dC10aGlzLmIvMjAwO3JldHVybiBuZXcgaTcoUDcoMy4xMzM4NTYxKihlPWg3Kk83KGUpKS0xLjYxNjg2NjcqKHQ9MSpPNyh0KSktLjQ5MDYxNDYqKG49YjcqTzcobikpKSxQNygtLjk3ODc2ODQqZSsxLjkxNjE0MTUqdCsuMDMzNDU0Km4pLFA3KC4wNzE5NDUzKmUtLjIyODk5MTQqdCsxLjQwNTI0MjcqbiksdGhpcy5vcGFjaXR5KX19KSksaTYoRDcsUzcsYTYocjYse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRDcodGhpcy5oLHRoaXMuYyx0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBENyh0aGlzLmgsdGhpcy5jLHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiBFNyh0aGlzKS5yZ2IoKX19KSk7dmFyIEk3PShmdW5jdGlvbiB0KGUpe3ZhciBuPShmdW5jdGlvbiBvKHQpe3JldHVybiAxPT0odD0rdCk/Tjc6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbi1lPyhmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gdD1NYXRoLnBvdyh0LG4pLGU9TWF0aC5wb3coZSxuKS10LG49MS9uLGZ1bmN0aW9uKG8pe3JldHVybiBNYXRoLnBvdyh0K28qZSxuKX19KShlLG4sdCk6UjcoaXNOYU4oZSk/bjplKX19KShlKTtmdW5jdGlvbiBpKHQsZSl7dmFyIG89bigodD1vNyh0KSkuciwoZT1vNyhlKSkuciksaT1uKHQuZyxlLmcpLGE9bih0LmIsZS5iKSxyPU43KHQub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5yPW8oZSksdC5nPWkoZSksdC5iPWEoZSksdC5vcGFjaXR5PXIoZSksdCsiIn19cmV0dXJuIGkuZ2FtbWE9dCxpfSkoMSksSDc9KGZ1bmN0aW9uIEw3KHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbixvLGk9ZS5sZW5ndGgsYT1uZXcgQXJyYXkoaSkscj1uZXcgQXJyYXkoaSkscz1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPGk7KytuKW89bzcoZVtuXSksYVtuXT1vLnJ8fDAscltuXT1vLmd8fDAsc1tuXT1vLmJ8fDA7cmV0dXJuIGE9dChhKSxyPXQocikscz10KHMpLG8ub3BhY2l0eT0xLGZ1bmN0aW9uKHQpe3JldHVybiBvLnI9YSh0KSxvLmc9cih0KSxvLmI9cyh0KSxvKyIifX19KSgoZnVuY3Rpb24gRjcodCl7dmFyIGU9dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIG89bjw9MD9uPTA6bj49MT8obj0xLGUtMSk6TWF0aC5mbG9vcihuKmUpLGk9dFtvXSxhPXRbbysxXTtyZXR1cm4oZnVuY3Rpb24gcih0LGUsbixvLGkpe3ZhciBhPXQqdCxyPWEqdDtyZXR1cm4oKDEtMyp0KzMqYS1yKSplKyg0LTYqYSszKnIpKm4rKDErMyp0KzMqYS0zKnIpKm8rcippKS82fSkoKG4tby9lKSplLG8+MD90W28tMV06MippLWEsaSxhLG88ZS0xP3RbbysyXToyKmEtaSl9fSkpO2Z1bmN0aW9uIEI3KHQsZSl7ZXx8KGU9W10pO3ZhciBuLG89dD9NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk6MCxpPWUuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24oYSl7Zm9yKG49MDtuPG87KytuKWlbbl09dFtuXSooMS1hKStlW25dKmE7cmV0dXJuIGl9fWZ1bmN0aW9uIFY3KHQsZSl7dmFyIG4sbz1lP2UubGVuZ3RoOjAsaT10P01hdGgubWluKG8sdC5sZW5ndGgpOjAsYT1uZXcgQXJyYXkoaSkscj1uZXcgQXJyYXkobyk7Zm9yKG49MDtuPGk7KytuKWFbbl09WjcodFtuXSxlW25dKTtmb3IoO248bzsrK24pcltuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3Iobj0wO248aTsrK24pcltuXT1hW25dKHQpO3JldHVybiByfX1mdW5jdGlvbiBqNyh0LGUpe3ZhciBuPW5ldyBEYXRlO3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24obyl7cmV0dXJuIG4uc2V0VGltZSh0KigxLW8pK2Uqbyksbn19ZnVuY3Rpb24gVTcodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiB0KigxLW4pK2Uqbn19ZnVuY3Rpb24gRzcodCxlKXt2YXIgbixvPXt9LGk9e307Zm9yKG4gaW4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e30pLG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fChlPXt9KSxlKW4gaW4gdD9vW25dPVo3KHRbbl0sZVtuXSk6aVtuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3IobiBpbiBvKWlbbl09b1tuXSh0KTtyZXR1cm4gaX19dmFyIFc3PS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyxZNz1uZXcgUmVnRXhwKFc3LnNvdXJjZSwiZyIpO2Z1bmN0aW9uIHE3KHQsZSl7dmFyIG4sbyxpLGE9VzcubGFzdEluZGV4PVk3Lmxhc3RJbmRleD0wLHI9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsobj1XNy5leGVjKHQpKSYmKG89WTcuZXhlYyhlKSk7KShpPW8uaW5kZXgpPmEmJihpPWUuc2xpY2UoYSxpKSxzW3JdP3Nbcl0rPWk6c1srK3JdPWkpLChuPW5bMF0pPT09KG89b1swXSk/c1tyXT9zW3JdKz1vOnNbKytyXT1vOihzWysrcl09bnVsbCxsLnB1c2goe2k6cix4OlU3KG4sbyl9KSksYT1ZNy5sYXN0SW5kZXg7cmV0dXJuIGE8ZS5sZW5ndGgmJihpPWUuc2xpY2UoYSksc1tyXT9zW3JdKz1pOnNbKytyXT1pKSxzLmxlbmd0aDwyP2xbMF0/KGZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpKyIifX0pKGxbMF0ueCk6KGZ1bmN0aW9uIGQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkoZSk6KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBuLG89MDtvPGU7KytvKXNbKG49bFtvXSkuaV09bi54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24gWjcodCxlKXt2YXIgbixvPXR5cGVvZiBlO3JldHVybiBudWxsPT1lfHwiYm9vbGVhbiI9PT1vP1I3KGUpOigibnVtYmVyIj09PW8/VTc6InN0cmluZyI9PT1vPyhuPSQ2KGUpKT8oZT1uLEk3KTpxNzplIGluc3RhbmNlb2YgJDY/STc6ZSBpbnN0YW5jZW9mIERhdGU/ajc6KGZ1bmN0aW9uIGkodCl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgRGF0YVZpZXcpfSkoZSk/Qjc6QXJyYXkuaXNBcnJheShlKT9WNzoiZnVuY3Rpb24iIT10eXBlb2YgZS52YWx1ZU9mJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZ3x8aXNOYU4oZSk/Rzc6VTcpKHQsZSl9ZnVuY3Rpb24gWDcodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKHQqKDEtbikrZSpuKX19dmFyIEs3LEo3LFE3LCQ3LHQ4PTE4MC9NYXRoLlBJLGU4PXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIG44KHQsZSxuLG8saSxhKXt2YXIgcixzLGw7cmV0dXJuKHI9TWF0aC5zcXJ0KHQqdCtlKmUpKSYmKHQvPXIsZS89ciksKGw9dCpuK2UqbykmJihuLT10Kmwsby09ZSpsKSwocz1NYXRoLnNxcnQobipuK28qbykpJiYobi89cyxvLz1zLGwvPXMpLHQqbzxlKm4mJih0PS10LGU9LWUsbD0tbCxyPS1yKSx7dHJhbnNsYXRlWDppLHRyYW5zbGF0ZVk6YSxyb3RhdGU6TWF0aC5hdGFuMihlLHQpKnQ4LHNrZXdYOk1hdGguYXRhbihsKSp0OCxzY2FsZVg6cixzY2FsZVk6c319ZnVuY3Rpb24gbzgodCxlLG4sbyl7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKGEscil7dmFyIHM9W10sbD1bXTtyZXR1cm4gYT10KGEpLHI9dChyKSwoZnVuY3Rpb24gYyh0LG8saSxhLHIscyl7aWYodCE9PWl8fG8hPT1hKXt2YXIgbD1yLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsZSxudWxsLG4pO3MucHVzaCh7aTpsLTQseDpVNyh0LGkpfSx7aTpsLTIseDpVNyhvLGEpfSl9ZWxzZShpfHxhKSYmci5wdXNoKCJ0cmFuc2xhdGUoIitpK2UrYStuKX0pKGEudHJhbnNsYXRlWCxhLnRyYW5zbGF0ZVksci50cmFuc2xhdGVYLHIudHJhbnNsYXRlWSxzLGwpLChmdW5jdGlvbiBkKHQsZSxuLGEpe3QhPT1lPyh0LWU+MTgwP2UrPTM2MDplLXQ+MTgwJiYodCs9MzYwKSxhLnB1c2goe2k6bi5wdXNoKGkobikrInJvdGF0ZSgiLG51bGwsbyktMix4OlU3KHQsZSl9KSk6ZSYmbi5wdXNoKGkobikrInJvdGF0ZSgiK2Urbyl9KShhLnJvdGF0ZSxyLnJvdGF0ZSxzLGwpLChmdW5jdGlvbiBwKHQsZSxuLGEpe3QhPT1lP2EucHVzaCh7aTpuLnB1c2goaShuKSsic2tld1goIixudWxsLG8pLTIseDpVNyh0LGUpfSk6ZSYmbi5wdXNoKGkobikrInNrZXdYKCIrZStvKX0pKGEuc2tld1gsci5za2V3WCxzLGwpLChmdW5jdGlvbiBtKHQsZSxuLG8sYSxyKXtpZih0IT09bnx8ZSE9PW8pe3ZhciBzPWEucHVzaChpKGEpKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTtyLnB1c2goe2k6cy00LHg6VTcodCxuKX0se2k6cy0yLHg6VTcoZSxvKX0pfWVsc2UgMT09PW4mJjE9PT1vfHxhLnB1c2goaShhKSsic2NhbGUoIituKyIsIitvKyIpIil9KShhLnNjYWxlWCxhLnNjYWxlWSxyLnNjYWxlWCxyLnNjYWxlWSxzLGwpLGE9cj1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPS0xLG89bC5sZW5ndGg7KytuPG87KXNbKGU9bFtuXSkuaV09ZS54KHQpO3JldHVybiBzLmpvaW4oIiIpfX19dmFyIGk4LGE4LHI4PW84KChmdW5jdGlvbiBzOCh0KXtyZXR1cm4ibm9uZSI9PT10P2U4OihLN3x8KEs3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLEo3PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxRNz1kb2N1bWVudC5kZWZhdWx0VmlldyksSzcuc3R5bGUudHJhbnNmb3JtPXQsdD1RNy5nZXRDb21wdXRlZFN0eWxlKEo3LmFwcGVuZENoaWxkKEs3KSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxKNy5yZW1vdmVDaGlsZChLNyksbjgoKyh0PXQuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSlbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0pLCJweCwgIiwicHgpIiwiZGVnKSIpLGw4PW84KChmdW5jdGlvbiBjOCh0KXtyZXR1cm4gbnVsbD09dD9lODooJDd8fCgkNz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSwkNy5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9JDcudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/bjgoKHQ9dC5tYXRyaXgpLmEsdC5iLHQuYyx0LmQsdC5lLHQuZik6ZTgpfSksIiwgIiwiKSIsIikiKSxkOD0oZnVuY3Rpb24gcDgodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIG89dCgoZT1kNyhlKSkuaCwobj1kNyhuKSkuaCksaT1ONyhlLnMsbi5zKSxhPU43KGUubCxuLmwpLHI9TjcoZS5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmg9byh0KSxlLnM9aSh0KSxlLmw9YSh0KSxlLm9wYWNpdHk9cih0KSxlKyIifX19KShUNyksbTg9KGZ1bmN0aW9uIHU4KHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBvPXQoKGU9UzcoZSkpLmgsKG49UzcobikpLmgpLGk9TjcoZS5jLG4uYyksYT1ONyhlLmwsbi5sKSxyPU43KGUub3BhY2l0eSxuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5oPW8odCksZS5jPWkodCksZS5sPWEodCksZS5vcGFjaXR5PXIodCksZSsiIn19fSkoVDcpLGY4PTAsZzg9MCxoOD0wLGI4PTAseTg9MCxfOD0wLEM4PSJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLE04PSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIHY4KCl7cmV0dXJuIHk4fHwoTTgoeDgpLHk4PUM4Lm5vdygpK184KX1mdW5jdGlvbiB4OCgpe3k4PTB9ZnVuY3Rpb24gTzgoKXt0aGlzLl9jYWxsPXRoaXMuX3RpbWU9dGhpcy5fbmV4dD1udWxsfWZ1bmN0aW9uIFA4KHQsZSxuKXt2YXIgbz1uZXcgTzg7cmV0dXJuIG8ucmVzdGFydCh0LGUsbiksb31mdW5jdGlvbiB3OCgpe3k4PShiOD1DOC5ub3coKSkrXzgsZjg9Zzg9MDt0cnl7IShmdW5jdGlvbiB0KCl7djgoKSwrK2Y4O2Zvcih2YXIgdCxlPWk4O2U7KSh0PXk4LWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS1mOH0pKCl9ZmluYWxseXtmOD0wLChmdW5jdGlvbiBlKCl7Zm9yKHZhciB0LGUsbj1pOCxvPTEvMDtuOyluLl9jYWxsPyhvPm4uX3RpbWUmJihvPW4uX3RpbWUpLHQ9bixuPW4uX25leHQpOihlPW4uX25leHQsbi5fbmV4dD1udWxsLG49dD90Ll9uZXh0PWU6aTg9ZSk7YTg9dCxTOChvKX0pKCkseTg9MH19ZnVuY3Rpb24gazgoKXt2YXIgdD1DOC5ub3coKSxlPXQtYjg7ZT4xZTMmJihfOC09ZSxiOD10KX1mdW5jdGlvbiBTOCh0KXtmOHx8KGc4JiYoZzg9Y2xlYXJUaW1lb3V0KGc4KSksdC15OD4yND8odDwxLzAmJihnOD1zZXRUaW1lb3V0KHc4LHQtQzgubm93KCktXzgpKSxoOCYmKGg4PWNsZWFySW50ZXJ2YWwoaDgpKSk6KGg4fHwoYjg9Qzgubm93KCksaDg9c2V0SW50ZXJ2YWwoazgsMWUzKSksZjg9MSxNOCh3OCkpKX1mdW5jdGlvbiBEOCh0LGUsbil7dmFyIG89bmV3IE84O3JldHVybiBvLnJlc3RhcnQoKGZ1bmN0aW9uKG4pe28uc3RvcCgpLHQobitlKX0pLGU9bnVsbD09ZT8wOitlLG4pLG99TzgucHJvdG90eXBlPVA4LnByb3RvdHlwZT17Y29uc3RydWN0b3I6TzgscmVzdGFydDpmdW5jdGlvbih0LGUsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtuPShudWxsPT1uP3Y4KCk6K24pKyhudWxsPT1lPzA6K2UpLHRoaXMuX25leHR8fGE4PT09dGhpc3x8KGE4P2E4Ll9uZXh0PXRoaXM6aTg9dGhpcyxhOD10aGlzKSx0aGlzLl9jYWxsPXQsdGhpcy5fdGltZT1uLFM4KCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLFM4KCkpfX07dmFyIEU4PUg1KCJzdGFydCIsImVuZCIsImNhbmNlbCIsImludGVycnVwdCIpLFI4PVtdO2Z1bmN0aW9uIEE4KHQsZSxuLG8saSxhKXt2YXIgcj10Ll9fdHJhbnNpdGlvbjtpZihyKXtpZihuIGluIHIpcmV0dXJufWVsc2UgdC5fX3RyYW5zaXRpb249e307IShmdW5jdGlvbiBzKHQsZSxuKXt2YXIgbyxpPXQuX190cmFuc2l0aW9uO2Z1bmN0aW9uIGEobCl7dmFyIGMsZCxwLG07aWYoMSE9PW4uc3RhdGUpcmV0dXJuIHMoKTtmb3IoYyBpbiBpKWlmKChtPWlbY10pLm5hbWU9PT1uLm5hbWUpe2lmKDM9PT1tLnN0YXRlKXJldHVybiBEOChhKTs0PT09bS5zdGF0ZT8obS5zdGF0ZT02LG0udGltZXIuc3RvcCgpLG0ub24uY2FsbCgiaW50ZXJydXB0Iix0LHQuX19kYXRhX18sbS5pbmRleCxtLmdyb3VwKSxkZWxldGUgaVtjXSk6K2M8ZSYmKG0uc3RhdGU9NixtLnRpbWVyLnN0b3AoKSxtLm9uLmNhbGwoImNhbmNlbCIsdCx0Ll9fZGF0YV9fLG0uaW5kZXgsbS5ncm91cCksZGVsZXRlIGlbY10pfWlmKEQ4KChmdW5jdGlvbigpezM9PT1uLnN0YXRlJiYobi5zdGF0ZT00LG4udGltZXIucmVzdGFydChyLG4uZGVsYXksbi50aW1lKSxyKGwpKX0pKSxuLnN0YXRlPTIsbi5vbi5jYWxsKCJzdGFydCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksMj09PW4uc3RhdGUpe2ZvcihuLnN0YXRlPTMsbz1uZXcgQXJyYXkocD1uLnR3ZWVuLmxlbmd0aCksYz0wLGQ9LTE7YzxwOysrYykobT1uLnR3ZWVuW2NdLnZhbHVlLmNhbGwodCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCkpJiYob1srK2RdPW0pO28ubGVuZ3RoPWQrMX19ZnVuY3Rpb24gcihlKXtmb3IodmFyIGk9ZTxuLmR1cmF0aW9uP24uZWFzZS5jYWxsKG51bGwsZS9uLmR1cmF0aW9uKToobi50aW1lci5yZXN0YXJ0KHMpLG4uc3RhdGU9NSwxKSxhPS0xLHI9by5sZW5ndGg7KythPHI7KW9bYV0uY2FsbCh0LGkpOzU9PT1uLnN0YXRlJiYobi5vbi5jYWxsKCJlbmQiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLHMoKSl9ZnVuY3Rpb24gcygpe2Zvcih2YXIgbyBpbiBuLnN0YXRlPTYsbi50aW1lci5zdG9wKCksZGVsZXRlIGlbZV0saSlyZXR1cm47ZGVsZXRlIHQuX190cmFuc2l0aW9ufWlbZV09bixuLnRpbWVyPVA4KChmdW5jdGlvbiBsKHQpe24uc3RhdGU9MSxuLnRpbWVyLnJlc3RhcnQoYSxuLmRlbGF5LG4udGltZSksbi5kZWxheTw9dCYmYSh0LW4uZGVsYXkpfSksMCxuLnRpbWUpfSkodCxuLHtuYW1lOmUsaW5kZXg6byxncm91cDppLG9uOkU4LHR3ZWVuOlI4LHRpbWU6YS50aW1lLGRlbGF5OmEuZGVsYXksZHVyYXRpb246YS5kdXJhdGlvbixlYXNlOmEuZWFzZSx0aW1lcjpudWxsLHN0YXRlOjB9KX1mdW5jdGlvbiBUOCh0LGUpe3ZhciBuPXo4KHQsZSk7aWYobi5zdGF0ZT4wKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgc2NoZWR1bGVkIik7cmV0dXJuIG59ZnVuY3Rpb24gTjgodCxlKXt2YXIgbj16OCh0LGUpO2lmKG4uc3RhdGU+Myl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHJ1bm5pbmciKTtyZXR1cm4gbn1mdW5jdGlvbiB6OCh0LGUpe3ZhciBuPXQuX190cmFuc2l0aW9uO2lmKCFufHwhKG49bltlXSkpdGhyb3cgbmV3IEVycm9yKCJ0cmFuc2l0aW9uIG5vdCBmb3VuZCIpO3JldHVybiBufWZ1bmN0aW9uIEk4KHQsZSl7dmFyIG4sbyxpLGE9dC5fX3RyYW5zaXRpb24scj0hMDtpZihhKXtmb3IoaSBpbiBlPW51bGw9PWU/bnVsbDplKyIiLGEpKG49YVtpXSkubmFtZT09PWU/KG89bi5zdGF0ZT4yJiZuLnN0YXRlPDUsbi5zdGF0ZT02LG4udGltZXIuc3RvcCgpLG4ub24uY2FsbChvPyJpbnRlcnJ1cHQiOiJjYW5jZWwiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLGRlbGV0ZSBhW2ldKTpyPSExO3ImJmRlbGV0ZSB0Ll9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gSDgodCxlKXt2YXIgbixvO3JldHVybiBmdW5jdGlvbigpe3ZhciBpPU44KHRoaXMsdCksYT1pLnR3ZWVuO2lmKGEhPT1uKWZvcih2YXIgcj0wLHM9KG89bj1hKS5sZW5ndGg7cjxzOysrcilpZihvW3JdLm5hbWU9PT1lKXsobz1vLnNsaWNlKCkpLnNwbGljZShyLDEpO2JyZWFrfWkudHdlZW49b319ZnVuY3Rpb24gRjgodCxlLG4pe3ZhciBvLGk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPU44KHRoaXMsdCkscj1hLnR3ZWVuO2lmKHIhPT1vKXtpPShvPXIpLnNsaWNlKCk7Zm9yKHZhciBzPXtuYW1lOmUsdmFsdWU6bn0sbD0wLGM9aS5sZW5ndGg7bDxjOysrbClpZihpW2xdLm5hbWU9PT1lKXtpW2xdPXM7YnJlYWt9bD09PWMmJmkucHVzaChzKX1hLnR3ZWVuPWl9fWZ1bmN0aW9uIEw4KHQsZSxuKXt2YXIgbz10Ll9pZDtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbigpe3ZhciB0PU44KHRoaXMsbyk7KHQudmFsdWV8fCh0LnZhbHVlPXt9KSlbZV09bi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSksZnVuY3Rpb24odCl7cmV0dXJuIHo4KHQsbykudmFsdWVbZV19fWZ1bmN0aW9uIEI4KHQsZSl7dmFyIG47cmV0dXJuKCJudW1iZXIiPT10eXBlb2YgZT9VNzplIGluc3RhbmNlb2YgJDY/STc6KG49JDYoZSkpPyhlPW4sSTcpOnE3KSh0LGUpfWZ1bmN0aW9uIFY4KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiBqOCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIFU4KHQsZSxuKXt2YXIgbyxpLGE9bisiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10aGlzLmdldEF0dHJpYnV0ZSh0KTtyZXR1cm4gcj09PWE/bnVsbDpyPT09bz9pOmk9ZShvPXIsbil9fWZ1bmN0aW9uIEc4KHQsZSxuKXt2YXIgbyxpLGE9bisiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk7cmV0dXJuIHI9PT1hP251bGw6cj09PW8/aTppPWUobz1yLG4pfX1mdW5jdGlvbiBXOCh0LGUsbil7dmFyIG8saSxhO3JldHVybiBmdW5jdGlvbigpe3ZhciByLHMsbD1uKHRoaXMpO2lmKG51bGwhPWwpcmV0dXJuKHI9dGhpcy5nZXRBdHRyaWJ1dGUodCkpPT09KHM9bCsiIik/bnVsbDpyPT09byYmcz09PWk/YTooaT1zLGE9ZShvPXIsbCkpO3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiBZOCh0LGUsbil7dmFyIG8saSxhO3JldHVybiBmdW5jdGlvbigpe3ZhciByLHMsbD1uKHRoaXMpO2lmKG51bGwhPWwpcmV0dXJuKHI9dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpKT09PShzPWwrIiIpP251bGw6cj09PW8mJnM9PT1pP2E6KGk9cyxhPWUobz1yLGwpKTt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIHE4KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RoaXMuc2V0QXR0cmlidXRlKHQsZS5jYWxsKHRoaXMsbikpfX1mdW5jdGlvbiBaOCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlLmNhbGwodGhpcyxuKSl9fWZ1bmN0aW9uIFg4KHQsZSl7dmFyIG4sbztmdW5jdGlvbiBpKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGkhPT1vJiYobj0obz1pKSYmWjgodCxpKSksbn1yZXR1cm4gaS5fdmFsdWU9ZSxpfWZ1bmN0aW9uIEs4KHQsZSl7dmFyIG4sbztmdW5jdGlvbiBpKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGkhPT1vJiYobj0obz1pKSYmcTgodCxpKSksbn1yZXR1cm4gaS5fdmFsdWU9ZSxpfWZ1bmN0aW9uIEo4KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7VDgodGhpcyx0KS5kZWxheT0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIFE4KHQsZSl7cmV0dXJuIGU9K2UsZnVuY3Rpb24oKXtUOCh0aGlzLHQpLmRlbGF5PWV9fWZ1bmN0aW9uICQ4KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7TjgodGhpcyx0KS5kdXJhdGlvbj0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIHQ5KHQsZSl7cmV0dXJuIGU9K2UsZnVuY3Rpb24oKXtOOCh0aGlzLHQpLmR1cmF0aW9uPWV9fWZ1bmN0aW9uIGU5KHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe044KHRoaXMsdCkuZWFzZT1lfX1mdW5jdGlvbiBuOSh0LGUsbil7dmFyIG8saSxhPShmdW5jdGlvbiByKHQpe3JldHVybih0KyIiKS50cmltKCkuc3BsaXQoL158XHMrLykuZXZlcnkoKGZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhPZigiLiIpO3JldHVybiBlPj0wJiYodD10LnNsaWNlKDAsZSkpLCF0fHwic3RhcnQiPT09dH0pKX0pKGUpP1Q4Ok44O3JldHVybiBmdW5jdGlvbigpe3ZhciByPWEodGhpcyx0KSxzPXIub247cyE9PW8mJihpPShvPXMpLmNvcHkoKSkub24oZSxuKSxyLm9uPWl9fXZhciBvOT1LNC5wcm90b3R5cGUuY29uc3RydWN0b3I7ZnVuY3Rpb24gaTkodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19ZnVuY3Rpb24gYTkodCxlLG4pe3JldHVybiBmdW5jdGlvbihvKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsZS5jYWxsKHRoaXMsbyksbil9fWZ1bmN0aW9uIHI5KHQsZSxuKXt2YXIgbyxpO2Z1bmN0aW9uIGEoKXt2YXIgYT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYSE9PWkmJihvPShpPWEpJiZhOSh0LGEsbikpLG99cmV0dXJuIGEuX3ZhbHVlPWUsYX1mdW5jdGlvbiBzOSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dGhpcy50ZXh0Q29udGVudD10LmNhbGwodGhpcyxlKX19ZnVuY3Rpb24gbDkodCl7dmFyIGUsbjtmdW5jdGlvbiBvKCl7dmFyIG89dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG8hPT1uJiYoZT0obj1vKSYmczkobykpLGV9cmV0dXJuIG8uX3ZhbHVlPXQsb312YXIgYzk9MDtmdW5jdGlvbiBkOSh0LGUsbixvKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWUsdGhpcy5fbmFtZT1uLHRoaXMuX2lkPW99ZnVuY3Rpb24gcDkoKXtyZXR1cm4rK2M5fXZhciBtOT1LNC5wcm90b3R5cGU7ZDkucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpkOSxzZWxlY3Q6ZnVuY3Rpb24gdTkodCl7dmFyIGU9dGhpcy5fbmFtZSxuPXRoaXMuX2lkOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1YNSh0KSk7Zm9yKHZhciBvPXRoaXMuX2dyb3VwcyxpPW8ubGVuZ3RoLGE9bmV3IEFycmF5KGkpLHI9MDtyPGk7KytyKWZvcih2YXIgcyxsLGM9b1tyXSxkPWMubGVuZ3RoLHA9YVtyXT1uZXcgQXJyYXkoZCksbT0wO208ZDsrK20pKHM9Y1ttXSkmJihsPXQuY2FsbChzLHMuX19kYXRhX18sbSxjKSkmJigiX19kYXRhX18iaW4gcyYmKGwuX19kYXRhX189cy5fX2RhdGFfXykscFttXT1sLEE4KHBbbV0sZSxuLG0scCx6OChzLG4pKSk7cmV0dXJuIG5ldyBkOShhLHRoaXMuX3BhcmVudHMsZSxuKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIGY5KHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9SjUodCkpO2Zvcih2YXIgbz10aGlzLl9ncm91cHMsaT1vLmxlbmd0aCxhPVtdLHI9W10scz0wO3M8aTsrK3MpZm9yKHZhciBsLGM9b1tzXSxkPWMubGVuZ3RoLHA9MDtwPGQ7KytwKWlmKGw9Y1twXSl7Zm9yKHZhciBtLHU9dC5jYWxsKGwsbC5fX2RhdGFfXyxwLGMpLGY9ejgobCxuKSxnPTAsaD11Lmxlbmd0aDtnPGg7KytnKShtPXVbZ10pJiZBOChtLGUsbixnLHUsZik7YS5wdXNoKHUpLHIucHVzaChsKX1yZXR1cm4gbmV3IGQ5KGEscixlLG4pfSxmaWx0ZXI6ZnVuY3Rpb24gZzkodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVE1KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsbz1uZXcgQXJyYXkobiksaT0wO2k8bjsrK2kpZm9yKHZhciBhLHI9ZVtpXSxzPXIubGVuZ3RoLGw9b1tpXT1bXSxjPTA7YzxzOysrYykoYT1yW2NdKSYmdC5jYWxsKGEsYS5fX2RhdGFfXyxjLHIpJiZsLnB1c2goYSk7cmV0dXJuIG5ldyBkOShvLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LG1lcmdlOmZ1bmN0aW9uIGg5KHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsbz1lLmxlbmd0aCxpPU1hdGgubWluKG8sbi5sZW5ndGgpLGE9bmV3IEFycmF5KG8pLHI9MDtyPGk7KytyKWZvcih2YXIgcyxsPWVbcl0sYz1uW3JdLGQ9bC5sZW5ndGgscD1hW3JdPW5ldyBBcnJheShkKSxtPTA7bTxkOysrbSkocz1sW21dfHxjW21dKSYmKHBbbV09cyk7Zm9yKDtyPG87KytyKWFbcl09ZVtyXTtyZXR1cm4gbmV3IGQ5KGEsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uIGI5KCl7cmV0dXJuIG5ldyBvOSh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24geTkoKXtmb3IodmFyIHQ9dGhpcy5fbmFtZSxlPXRoaXMuX2lkLG49cDkoKSxvPXRoaXMuX2dyb3VwcyxpPW8ubGVuZ3RoLGE9MDthPGk7KythKWZvcih2YXIgcixzPW9bYV0sbD1zLmxlbmd0aCxjPTA7YzxsOysrYylpZihyPXNbY10pe3ZhciBkPXo4KHIsZSk7QTgocix0LG4sYyxzLHt0aW1lOmQudGltZStkLmRlbGF5K2QuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjpkLmR1cmF0aW9uLGVhc2U6ZC5lYXNlfSl9cmV0dXJuIG5ldyBkOShvLHRoaXMuX3BhcmVudHMsdCxuKX0sY2FsbDptOS5jYWxsLG5vZGVzOm05Lm5vZGVzLG5vZGU6bTkubm9kZSxzaXplOm05LnNpemUsZW1wdHk6bTkuZW1wdHksZWFjaDptOS5lYWNoLG9uOmZ1bmN0aW9uIF85KHQsZSl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj96OCh0aGlzLm5vZGUoKSxuKS5vbi5vbih0KTp0aGlzLmVhY2gobjkobix0LGUpKX0sYXR0cjpmdW5jdGlvbiBDOSh0LGUpe3ZhciBuPUc1KHQpLG89InRyYW5zZm9ybSI9PT1uP2w4OkI4O3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LCJmdW5jdGlvbiI9PXR5cGVvZiBlPyhuLmxvY2FsP1k4Olc4KShuLG8sTDgodGhpcywiYXR0ci4iK3QsZSkpOm51bGw9PWU/KG4ubG9jYWw/ajg6VjgpKG4pOihuLmxvY2FsP0c4OlU4KShuLG8sZSkpfSxhdHRyVHdlZW46ZnVuY3Rpb24gTTkodCxlKXt2YXIgbj0iYXR0ci4iK3Q7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihuPXRoaXMudHdlZW4obikpJiZuLl92YWx1ZTtpZihudWxsPT1lKXJldHVybiB0aGlzLnR3ZWVuKG4sbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3ZhciBvPUc1KHQpO3JldHVybiB0aGlzLnR3ZWVuKG4sKG8ubG9jYWw/WDg6SzgpKG8sZSkpfSxzdHlsZTpmdW5jdGlvbiB2OSh0LGUsbil7dmFyIG89InRyYW5zZm9ybSI9PSh0Kz0iIik/cjg6Qjg7cmV0dXJuIG51bGw9PWU/dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIGkodCxlKXt2YXIgbixvLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9ZjQodGhpcyx0KSxyPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLGY0KHRoaXMsdCkpO3JldHVybiBhPT09cj9udWxsOmE9PT1uJiZyPT09bz9pOmk9ZShuPWEsbz1yKX19KSh0LG8pKS5vbigiZW5kLnN0eWxlLiIrdCxpOSh0KSk6ImZ1bmN0aW9uIj09dHlwZW9mIGU/dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHIodCxlLG4pe3ZhciBvLGksYTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1mNCh0aGlzLHQpLHM9bih0aGlzKSxsPXMrIiI7cmV0dXJuIG51bGw9PXMmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLGw9cz1mNCh0aGlzLHQpKSxyPT09bD9udWxsOnI9PT1vJiZsPT09aT9hOihpPWwsYT1lKG89cixzKSl9fSkodCxvLEw4KHRoaXMsInN0eWxlLiIrdCxlKSkpLmVhY2goKGZ1bmN0aW9uIGEodCxlKXt2YXIgbixvLGksYSxyPSJzdHlsZS4iK2Uscz0iZW5kLiIrcjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD1OOCh0aGlzLHQpLGM9bC5vbixkPW51bGw9PWwudmFsdWVbcl0/YXx8KGE9aTkoZSkpOnZvaWQgMDtjPT09biYmaT09PWR8fChvPShuPWMpLmNvcHkoKSkub24ocyxpPWQpLGwub249b319KSh0aGlzLl9pZCx0KSk6dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBvLGksYT1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciByPWY0KHRoaXMsdCk7cmV0dXJuIHI9PT1hP251bGw6cj09PW8/aTppPWUobz1yLG4pfX0pKHQsbyxlKSxuKS5vbigiZW5kLnN0eWxlLiIrdCxudWxsKX0sc3R5bGVUd2VlbjpmdW5jdGlvbiB4OSh0LGUsbil7dmFyIG89InN0eWxlLiIrKHQrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKG89dGhpcy50d2VlbihvKSkmJm8uX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4obyxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4obyxyOSh0LGUsbnVsbD09bj8iIjpuKSl9LHRleHQ6ZnVuY3Rpb24gTzkodCl7cmV0dXJuIHRoaXMudHdlZW4oInRleHQiLCJmdW5jdGlvbiI9PXR5cGVvZiB0PyhmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQodGhpcyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9fSkoTDgodGhpcywidGV4dCIsdCkpOihmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KShudWxsPT10PyIiOnQrIiIpKX0sdGV4dFR3ZWVuOmZ1bmN0aW9uIFA5KHQpe3ZhciBlPSJ0ZXh0IjtpZihhcmd1bWVudHMubGVuZ3RoPDEpcmV0dXJuKGU9dGhpcy50d2VlbihlKSkmJmUuX3ZhbHVlO2lmKG51bGw9PXQpcmV0dXJuIHRoaXMudHdlZW4oZSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oZSxsOSh0KSl9LHJlbW92ZTpmdW5jdGlvbiB3OSgpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtuIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19KSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiBrOSh0LGUpe3ZhciBuPXRoaXMuX2lkO2lmKHQrPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBvLGk9ejgodGhpcy5ub2RlKCksbikudHdlZW4sYT0wLHI9aS5sZW5ndGg7YTxyOysrYSlpZigobz1pW2FdKS5uYW1lPT09dClyZXR1cm4gby52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP0g4OkY4KShuLHQsZSkpfSxkZWxheTpmdW5jdGlvbiBTOSh0KXt2YXIgZT10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiB0P0o4OlE4KShlLHQpKTp6OCh0aGlzLm5vZGUoKSxlKS5kZWxheX0sZHVyYXRpb246ZnVuY3Rpb24gRDkodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD8kODp0OSkoZSx0KSk6ejgodGhpcy5ub2RlKCksZSkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24gRTkodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKGU5KGUsdCkpOno4KHRoaXMubm9kZSgpLGUpLmVhc2V9LGVuZDpmdW5jdGlvbiBSOSgpe3ZhciB0LGUsbj10aGlzLG89bi5faWQsaT1uLnNpemUoKTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGEscil7dmFyIHM9e3ZhbHVlOnJ9LGw9e3ZhbHVlOmZ1bmN0aW9uKCl7MD09LS1pJiZhKCl9fTtuLmVhY2goKGZ1bmN0aW9uKCl7dmFyIG49TjgodGhpcyxvKSxpPW4ub247aSE9PXQmJigoZT0odD1pKS5jb3B5KCkpLl8uY2FuY2VsLnB1c2gocyksZS5fLmludGVycnVwdC5wdXNoKHMpLGUuXy5lbmQucHVzaChsKSksbi5vbj1lfSkpfSkpfX07dmFyIEE5PXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpmdW5jdGlvbiBUOSh0KXtyZXR1cm4oKHQqPTIpPD0xP3QqdCp0Oih0LT0yKSp0KnQrMikvMn19O2Z1bmN0aW9uIE45KHQsZSl7Zm9yKHZhciBuOyEobj10Ll9fdHJhbnNpdGlvbil8fCEobj1uW2VdKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIEE5LnRpbWU9djgoKSxBOTtyZXR1cm4gbn1mdW5jdGlvbiB6OSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gSTkodCxlLG4pe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPWUsdGhpcy5zZWxlY3Rpb249bn1mdW5jdGlvbiBIOSgpe0w0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIEY5KCl7TDQucHJldmVudERlZmF1bHQoKSxMNC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1LNC5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0aW9uIEw5KHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7STgodGhpcyx0KX0pKX0sSzQucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24gQjkodCl7dmFyIGUsbjt0IGluc3RhbmNlb2YgZDk/KGU9dC5faWQsdD10Ll9uYW1lKTooZT1wOSgpLChuPUE5KS50aW1lPXY4KCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBvPXRoaXMuX2dyb3VwcyxpPW8ubGVuZ3RoLGE9MDthPGk7KythKWZvcih2YXIgcixzPW9bYV0sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykocj1zW2NdKSYmQTgocix0LGUsYyxzLG58fE45KHIsZSkpO3JldHVybiBuZXcgZDkobyx0aGlzLl9wYXJlbnRzLHQsZSl9O3ZhciBWOT17bmFtZToiZHJhZyJ9LGo5PXtuYW1lOiJzcGFjZSJ9LFU5PXtuYW1lOiJoYW5kbGUifSxHOT17bmFtZToiY2VudGVyIn07ZnVuY3Rpb24gVzkodCl7cmV0dXJuWyt0WzBdLCt0WzFdXX1mdW5jdGlvbiBZOSh0KXtyZXR1cm5bVzkodFswXSksVzkodFsxXSldfWZ1bmN0aW9uIHE5KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4oZnVuY3Rpb24gbih0LGUsbyl7YXJndW1lbnRzLmxlbmd0aDwzJiYobz1lLGU9UTQoKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciBpLGE9MCxyPWU/ZS5sZW5ndGg6MDthPHI7KythKWlmKChpPWVbYV0pLmlkZW50aWZpZXI9PT1vKXJldHVybiAkNCh0LGkpO3JldHVybiBudWxsfSkoZSxMNC50b3VjaGVzLHQpfX12YXIgWjk9e25hbWU6IngiLGhhbmRsZXM6WyJ3IiwiZSJdLm1hcChldHQpLGlucHV0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/bnVsbDpbWyt0WzBdLGVbMF1bMV1dLFsrdFsxXSxlWzFdWzFdXV19LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdCYmW3RbMF1bMF0sdFsxXVswXV19fSxYOT17bmFtZToieSIsaGFuZGxlczpbIm4iLCJzIl0ubWFwKGV0dCksaW5wdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD9udWxsOltbZVswXVswXSwrdFswXV0sW2VbMV1bMF0sK3RbMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVsxXSx0WzFdWzFdXX19LEs5PXtvdmVybGF5OiJjcm9zc2hhaXIiLHNlbGVjdGlvbjoibW92ZSIsbjoibnMtcmVzaXplIixlOiJldy1yZXNpemUiLHM6Im5zLXJlc2l6ZSIsdzoiZXctcmVzaXplIixudzoibndzZS1yZXNpemUiLG5lOiJuZXN3LXJlc2l6ZSIsc2U6Im53c2UtcmVzaXplIixzdzoibmVzdy1yZXNpemUifSxKOT17ZToidyIsdzoiZSIsbnc6Im5lIixuZToibnciLHNlOiJzdyIsc3c6InNlIn0sUTk9e246InMiLHM6Im4iLG53OiJzdyIsbmU6InNlIixzZToibmUiLHN3OiJudyJ9LCQ5PXtvdmVybGF5OjEsc2VsZWN0aW9uOjEsbjpudWxsLGU6MSxzOm51bGwsdzotMSxudzotMSxuZToxLHNlOjEsc3c6LTF9LHR0dD17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46LTEsZTpudWxsLHM6MSx3Om51bGwsbnc6LTEsbmU6LTEsc2U6MSxzdzoxfTtmdW5jdGlvbiBldHQodCl7cmV0dXJue3R5cGU6dH19ZnVuY3Rpb24gbnR0KCl7cmV0dXJuIUw0LmN0cmxLZXkmJiFMNC5idXR0b259ZnVuY3Rpb24gb3R0KCl7dmFyIHQ9dGhpcy5vd25lclNWR0VsZW1lbnR8fHRoaXM7cmV0dXJuIHQuaGFzQXR0cmlidXRlKCJ2aWV3Qm94Iik/W1sodD10LnZpZXdCb3guYmFzZVZhbCkueCx0LnldLFt0LngrdC53aWR0aCx0LnkrdC5oZWlnaHRdXTpbWzAsMF0sW3Qud2lkdGguYmFzZVZhbC52YWx1ZSx0LmhlaWdodC5iYXNlVmFsLnZhbHVlXV19ZnVuY3Rpb24gaXR0KCl7cmV0dXJuIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50c3x8Im9udG91Y2hzdGFydCJpbiB0aGlzfWZ1bmN0aW9uIGF0dCh0KXtmb3IoOyF0Ll9fYnJ1c2g7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gdC5fX2JydXNofWZ1bmN0aW9uIHJ0dCh0KXtyZXR1cm4gdFswXVswXT09PXRbMV1bMF18fHRbMF1bMV09PT10WzFdWzFdfXZhciBzdHQ9TWF0aC5QSSxsdHQ9MipzdHQsY3R0PTFlLTYsZHR0PWx0dC1jdHQ7ZnVuY3Rpb24gcHR0KCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gbXR0KCl7cmV0dXJuIG5ldyBwdHR9cHR0LnByb3RvdHlwZT1tdHQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpwdHQsbW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJMIisodGhpcy5feDE9K3QpKyIsIisodGhpcy5feTE9K2UpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLG8pe3RoaXMuXys9IlEiKyArdCsiLCIrICtlKyIsIisodGhpcy5feDE9K24pKyIsIisodGhpcy5feTE9K28pfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLG8saSxhKXt0aGlzLl8rPSJDIisgK3QrIiwiKyArZSsiLCIrICtuKyIsIisgK28rIiwiKyh0aGlzLl94MT0raSkrIiwiKyh0aGlzLl95MT0rYSl9LGFyY1RvOmZ1bmN0aW9uKHQsZSxuLG8saSl7dmFyIGE9dGhpcy5feDEscj10aGlzLl95MSxzPShuPStuKS0odD0rdCksbD0obz0rbyktKGU9K2UpLGM9YS10LGQ9ci1lLHA9YypjK2QqZDtpZigoaT0raSk8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIitpKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSk7ZWxzZSBpZihwPmN0dClpZihNYXRoLmFicyhkKnMtbCpjKT5jdHQmJmkpe3ZhciBtPW4tYSx1PW8tcixmPXMqcytsKmwsZz1tKm0rdSp1LGg9TWF0aC5zcXJ0KGYpLGI9TWF0aC5zcXJ0KHApLHk9aSpNYXRoLnRhbigoc3R0LU1hdGguYWNvcygoZitwLWcpLygyKmgqYikpKS8yKSxfPXkvYixDPXkvaDtNYXRoLmFicyhfLTEpPmN0dCYmKHRoaXMuXys9IkwiKyh0K18qYykrIiwiKyhlK18qZCkpLHRoaXMuXys9IkEiK2krIiwiK2krIiwwLDAsIisgKyhkKm0+Yyp1KSsiLCIrKHRoaXMuX3gxPXQrQypzKSsiLCIrKHRoaXMuX3kxPWUrQypsKX1lbHNlIHRoaXMuXys9IkwiKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPWUpfSxhcmM6ZnVuY3Rpb24odCxlLG4sbyxpLGEpe3Q9K3QsZT0rZSxhPSEhYTt2YXIgcj0obj0rbikqTWF0aC5jb3Mobykscz1uKk1hdGguc2luKG8pLGw9dCtyLGM9ZStzLGQ9MV5hLHA9YT9vLWk6aS1vO2lmKG48MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIituKTtudWxsPT09dGhpcy5feDE/dGhpcy5fKz0iTSIrbCsiLCIrYzooTWF0aC5hYnModGhpcy5feDEtbCk+Y3R0fHxNYXRoLmFicyh0aGlzLl95MS1jKT5jdHQpJiYodGhpcy5fKz0iTCIrbCsiLCIrYyksbiYmKHA8MCYmKHA9cCVsdHQrbHR0KSxwPmR0dD90aGlzLl8rPSJBIituKyIsIituKyIsMCwxLCIrZCsiLCIrKHQtcikrIiwiKyhlLXMpKyJBIituKyIsIituKyIsMCwxLCIrZCsiLCIrKHRoaXMuX3gxPWwpKyIsIisodGhpcy5feTE9Yyk6cD5jdHQmJih0aGlzLl8rPSJBIituKyIsIituKyIsMCwiKyArKHA+PXN0dCkrIiwiK2QrIiwiKyh0aGlzLl94MT10K24qTWF0aC5jb3MoaSkpKyIsIisodGhpcy5feTE9ZStuKk1hdGguc2luKGkpKSkpfSxyZWN0OmZ1bmN0aW9uKHQsZSxuLG8pe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rZSkrImgiKyArbisidiIrICtvKyJoIistbisiWiJ9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX319O3ZhciB1dHQ9IiQiO2Z1bmN0aW9uIGZ0dCgpe31mdW5jdGlvbiBndHQodCxlKXt2YXIgbj1uZXcgZnR0O2lmKHQgaW5zdGFuY2VvZiBmdHQpdC5lYWNoKChmdW5jdGlvbih0LGUpe24uc2V0KGUsdCl9KSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgbyxpPS0xLGE9dC5sZW5ndGg7aWYobnVsbD09ZSlmb3IoOysraTxhOyluLnNldChpLHRbaV0pO2Vsc2UgZm9yKDsrK2k8YTspbi5zZXQoZShvPXRbaV0saSx0KSxvKX1lbHNlIGlmKHQpZm9yKHZhciByIGluIHQpbi5zZXQocix0W3JdKTtyZXR1cm4gbn1mdW5jdGlvbiBodHQoKXt9ZnR0LnByb3RvdHlwZT1ndHQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpmdHQsaGFzOmZ1bmN0aW9uKHQpe3JldHVybiB1dHQrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbdXR0K3RdfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpc1t1dHQrdF09ZSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dXR0K3Q7cmV0dXJuIGUgaW4gdGhpcyYmZGVsZXRlIHRoaXNbZV19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PXV0dCYmZGVsZXRlIHRoaXNbdF19LGtleXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09dXR0JiZ0LnB1c2goZS5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT11dHQmJnQucHVzaCh0aGlzW2VdKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT11dHQmJnQucHVzaCh7a2V5OmUuc2xpY2UoMSksdmFsdWU6dGhpc1tlXX0pO3JldHVybiB0fSxzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9MDtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09dXR0JiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYodFswXT09PXV0dClyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09dXR0JiZ0KHRoaXNbZV0sZS5zbGljZSgxKSx0aGlzKX19O3ZhciBidHQ9Z3R0LnByb3RvdHlwZTtmdW5jdGlvbiB5dHQodCxlKXtpZigobj0odD1lP3QudG9FeHBvbmVudGlhbChlLTEpOnQudG9FeHBvbmVudGlhbCgpKS5pbmRleE9mKCJlIikpPDApcmV0dXJuIG51bGw7dmFyIG4sbz10LnNsaWNlKDAsbik7cmV0dXJuW28ubGVuZ3RoPjE/b1swXStvLnNsaWNlKDIpOm8sK3Quc2xpY2UobisxKV19ZnVuY3Rpb24gX3R0KHQpe3JldHVybih0PXl0dChNYXRoLmFicyh0KSkpP3RbMV06TmFOfWh0dC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmh0dCxoYXM6YnR0LmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbdXR0Kyh0Kz0iIildPXQsdGhpc30scmVtb3ZlOmJ0dC5yZW1vdmUsY2xlYXI6YnR0LmNsZWFyLHZhbHVlczpidHQua2V5cyxzaXplOmJ0dC5zaXplLGVtcHR5OmJ0dC5lbXB0eSxlYWNoOmJ0dC5lYWNofTt2YXIgQ3R0LE10dD0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiB2dHQodCl7aWYoIShlPU10dC5leGVjKHQpKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZm9ybWF0OiAiK3QpO3ZhciBlO3JldHVybiBuZXcgeHR0KHtmaWxsOmVbMV0sYWxpZ246ZVsyXSxzaWduOmVbM10sc3ltYm9sOmVbNF0semVybzplWzVdLHdpZHRoOmVbNl0sY29tbWE6ZVs3XSxwcmVjaXNpb246ZVs4XSYmZVs4XS5zbGljZSgxKSx0cmltOmVbOV0sdHlwZTplWzEwXX0pfWZ1bmN0aW9uIHh0dCh0KXt0aGlzLmZpbGw9dm9pZCAwPT09dC5maWxsPyIgIjp0LmZpbGwrIiIsdGhpcy5hbGlnbj12b2lkIDA9PT10LmFsaWduPyI+Ijp0LmFsaWduKyIiLHRoaXMuc2lnbj12b2lkIDA9PT10LnNpZ24/Ii0iOnQuc2lnbisiIix0aGlzLnN5bWJvbD12b2lkIDA9PT10LnN5bWJvbD8iIjp0LnN5bWJvbCsiIix0aGlzLnplcm89ISF0Lnplcm8sdGhpcy53aWR0aD12b2lkIDA9PT10LndpZHRoP3ZvaWQgMDordC53aWR0aCx0aGlzLmNvbW1hPSEhdC5jb21tYSx0aGlzLnByZWNpc2lvbj12b2lkIDA9PT10LnByZWNpc2lvbj92b2lkIDA6K3QucHJlY2lzaW9uLHRoaXMudHJpbT0hIXQudHJpbSx0aGlzLnR5cGU9dm9pZCAwPT09dC50eXBlPyIiOnQudHlwZSsiIn1mdW5jdGlvbiBPdHQodCxlKXt2YXIgbj15dHQodCxlKTtpZighbilyZXR1cm4gdCsiIjt2YXIgbz1uWzBdLGk9blsxXTtyZXR1cm4gaTwwPyIwLiIrbmV3IEFycmF5KC1pKS5qb2luKCIwIikrbzpvLmxlbmd0aD5pKzE/by5zbGljZSgwLGkrMSkrIi4iK28uc2xpY2UoaSsxKTpvK25ldyBBcnJheShpLW8ubGVuZ3RoKzIpLmpvaW4oIjAiKX12dHQucHJvdG90eXBlPXh0dC5wcm90b3R5cGUseHR0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz8iMCI6IiIpKyh2b2lkIDA9PT10aGlzLndpZHRoPyIiOk1hdGgubWF4KDEsMHx0aGlzLndpZHRoKSkrKHRoaXMuY29tbWE/IiwiOiIiKSsodm9pZCAwPT09dGhpcy5wcmVjaXNpb24/IiI6Ii4iK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpKyh0aGlzLnRyaW0/In4iOiIiKSt0aGlzLnR5cGV9O3ZhciBQdHQ9eyIlIjpmdW5jdGlvbih0LGUpe3JldHVybigxMDAqdCkudG9GaXhlZChlKX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygyKX0sYzpmdW5jdGlvbih0KXtyZXR1cm4gdCsiIn0sZDpmdW5jdGlvbiB3dHQodCl7cmV0dXJuIE1hdGguYWJzKHQ9TWF0aC5yb3VuZCh0KSk+PTFlMjE/dC50b0xvY2FsZVN0cmluZygiZW4iKS5yZXBsYWNlKC8sL2csIiIpOnQudG9TdHJpbmcoMTApfSxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9FeHBvbmVudGlhbChlKX0sZjpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRml4ZWQoZSl9LGc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b1ByZWNpc2lvbihlKX0sbzpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZyg4KX0scDpmdW5jdGlvbih0LGUpe3JldHVybiBPdHQoMTAwKnQsZSl9LHI6T3R0LHM6ZnVuY3Rpb24ga3R0KHQsZSl7dmFyIG49eXR0KHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIG89blswXSxpPW5bMV0sYT1pLShDdHQ9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoaS8zKSkpKSsxLHI9by5sZW5ndGg7cmV0dXJuIGE9PT1yP286YT5yP28rbmV3IEFycmF5KGEtcisxKS5qb2luKCIwIik6YT4wP28uc2xpY2UoMCxhKSsiLiIrby5zbGljZShhKToiMC4iK25ldyBBcnJheSgxLWEpLmpvaW4oIjAiKSt5dHQodCxNYXRoLm1heCgwLGUrYS0xKSlbMF19LFg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9LHg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpfX07ZnVuY3Rpb24gU3R0KHQpe3JldHVybiB0fXZhciBEdHQsRXR0LFJ0dCxBdHQ9QXJyYXkucHJvdG90eXBlLm1hcCxUdHQ9WyJ5IiwieiIsImEiLCJmIiwicCIsIm4iLCLCtSIsIm0iLCIiLCJrIiwiTSIsIkciLCJUIiwiUCIsIkUiLCJaIiwiWSJdO2Z1bmN0aW9uIE50dCh0LGUpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOnRoaXMucmFuZ2UodCk7YnJlYWs7ZGVmYXVsdDp0aGlzLnJhbmdlKGUpLmRvbWFpbih0KX1yZXR1cm4gdGhpc30hKGZ1bmN0aW9uIHp0dCh0KXtEdHQ9KGZ1bmN0aW9uIGUodCl7dmFyIGU9dm9pZCAwPT09dC5ncm91cGluZ3x8dm9pZCAwPT09dC50aG91c2FuZHM/U3R0OihmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4sbyl7Zm9yKHZhciBpPW4ubGVuZ3RoLGE9W10scj0wLHM9dFswXSxsPTA7aT4wJiZzPjAmJihsK3MrMT5vJiYocz1NYXRoLm1heCgxLG8tbCkpLGEucHVzaChuLnN1YnN0cmluZyhpLT1zLGkrcykpLCEoKGwrPXMrMSk+bykpOylzPXRbcj0ocisxKSV0Lmxlbmd0aF07cmV0dXJuIGEucmV2ZXJzZSgpLmpvaW4oZSl9fSkoQXR0LmNhbGwodC5ncm91cGluZyxOdW1iZXIpLHQudGhvdXNhbmRzKyIiKSxvPXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVswXSsiIixpPXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVsxXSsiIixhPXZvaWQgMD09PXQuZGVjaW1hbD8iLiI6dC5kZWNpbWFsKyIiLHI9dm9pZCAwPT09dC5udW1lcmFscz9TdHQ6KGZ1bmN0aW9uIHModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1swLTldL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0WytlXX0pKX19KShBdHQuY2FsbCh0Lm51bWVyYWxzLFN0cmluZykpLGw9dm9pZCAwPT09dC5wZXJjZW50PyIlIjp0LnBlcmNlbnQrIiIsYz12b2lkIDA9PT10Lm1pbnVzPyItIjp0Lm1pbnVzKyIiLGQ9dm9pZCAwPT09dC5uYW4/Ik5hTiI6dC5uYW4rIiI7ZnVuY3Rpb24gcCh0KXt2YXIgbj0odD12dHQodCkpLmZpbGwscz10LmFsaWduLHA9dC5zaWduLG09dC5zeW1ib2wsdT10Lnplcm8sZj10LndpZHRoLGc9dC5jb21tYSxoPXQucHJlY2lzaW9uLGI9dC50cmltLHk9dC50eXBlOyJuIj09PXk/KGc9ITAseT0iZyIpOlB0dFt5XXx8KHZvaWQgMD09PWgmJihoPTEyKSxiPSEwLHk9ImciKSwodXx8IjAiPT09biYmIj0iPT09cykmJih1PSEwLG49IjAiLHM9Ij0iKTt2YXIgXz0iJCI9PT1tP286IiMiPT09bSYmL1tib3hYXS8udGVzdCh5KT8iMCIreS50b0xvd2VyQ2FzZSgpOiIiLEM9IiQiPT09bT9pOi9bJXBdLy50ZXN0KHkpP2w6IiIsTT1QdHRbeV0sdj0vW2RlZmdwcnMlXS8udGVzdCh5KTtmdW5jdGlvbiB4KHQpe3ZhciBvLGksbCxtPV8seD1DO2lmKCJjIj09PXkpeD1NKHQpK3gsdD0iIjtlbHNle3ZhciBPPSh0PSt0KTwwfHwxL3Q8MDtpZih0PWlzTmFOKHQpP2Q6TShNYXRoLmFicyh0KSxoKSxiJiYodD0oZnVuY3Rpb24gUCh0KXt0OmZvcih2YXIgZSxuPXQubGVuZ3RoLG89MSxpPS0xO288bjsrK28pc3dpdGNoKHRbb10pe2Nhc2UiLiI6aT1lPW87YnJlYWs7Y2FzZSIwIjowPT09aSYmKGk9byksZT1vO2JyZWFrO2RlZmF1bHQ6aWYoISt0W29dKWJyZWFrIHQ7aT4wJiYoaT0wKX1yZXR1cm4gaT4wP3Quc2xpY2UoMCxpKSt0LnNsaWNlKGUrMSk6dH0pKHQpKSxPJiYwPT0rdCYmIisiIT09cCYmKE89ITEpLG09KE8/IigiPT09cD9wOmM6Ii0iPT09cHx8IigiPT09cD8iIjpwKSttLHg9KCJzIj09PXk/VHR0WzgrQ3R0LzNdOiIiKSt4KyhPJiYiKCI9PT1wPyIpIjoiIiksdilmb3Iobz0tMSxpPXQubGVuZ3RoOysrbzxpOylpZig0OD4obD10LmNoYXJDb2RlQXQobykpfHxsPjU3KXt4PSg0Nj09PWw/YSt0LnNsaWNlKG8rMSk6dC5zbGljZShvKSkreCx0PXQuc2xpY2UoMCxvKTticmVha319ZyYmIXUmJih0PWUodCwxLzApKTt2YXIgdz1tLmxlbmd0aCt0Lmxlbmd0aCt4Lmxlbmd0aCxrPXc8Zj9uZXcgQXJyYXkoZi13KzEpLmpvaW4obik6IiI7c3dpdGNoKGcmJnUmJih0PWUoayt0LGsubGVuZ3RoP2YteC5sZW5ndGg6MS8wKSxrPSIiKSxzKXtjYXNlIjwiOnQ9bSt0K3grazticmVhaztjYXNlIj0iOnQ9bStrK3QreDticmVhaztjYXNlIl4iOnQ9ay5zbGljZSgwLHc9ay5sZW5ndGg+PjEpK20rdCt4K2suc2xpY2Uodyk7YnJlYWs7ZGVmYXVsdDp0PWsrbSt0K3h9cmV0dXJuIHIodCl9cmV0dXJuIGg9dm9pZCAwPT09aD82Oi9bZ3Byc10vLnRlc3QoeSk/TWF0aC5tYXgoMSxNYXRoLm1pbigyMSxoKSk6TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxoKSkseC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0KyIifSx4fXJldHVybntmb3JtYXQ6cCxmb3JtYXRQcmVmaXg6ZnVuY3Rpb24gbSh0LGUpe3ZhciBuPXAoKCh0PXZ0dCh0KSkudHlwZT0iZiIsdCkpLG89MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoX3R0KGUpLzMpKSksaT1NYXRoLnBvdygxMCwtbyksYT1UdHRbOCtvLzNdO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbihpKnQpK2F9fX19KSh0KSxFdHQ9RHR0LmZvcm1hdCxSdHQ9RHR0LmZvcm1hdFByZWZpeH0pKHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXSxtaW51czoiLSJ9KTt2YXIgSXR0PUFycmF5LnByb3RvdHlwZSxIdHQ9SXR0Lm1hcCxGdHQ9SXR0LnNsaWNlLEx0dD17bmFtZToiaW1wbGljaXQifTtmdW5jdGlvbiBCdHQoKXt2YXIgdD1ndHQoKSxlPVtdLG49W10sbz1MdHQ7ZnVuY3Rpb24gaShpKXt2YXIgYT1pKyIiLHI9dC5nZXQoYSk7aWYoIXIpe2lmKG8hPT1MdHQpcmV0dXJuIG87dC5zZXQoYSxyPWUucHVzaChpKSl9cmV0dXJuIG5bKHItMSklbi5sZW5ndGhdfXJldHVybiBpLmRvbWFpbj1mdW5jdGlvbihuKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZS5zbGljZSgpO2U9W10sdD1ndHQoKTtmb3IodmFyIG8sYSxyPS0xLHM9bi5sZW5ndGg7KytyPHM7KXQuaGFzKGE9KG89bltyXSkrIiIpfHx0LnNldChhLGUucHVzaChvKSk7cmV0dXJuIGl9LGkucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49RnR0LmNhbGwodCksaSk6bi5zbGljZSgpfSxpLnVua25vd249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCxpKTpvfSxpLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQnR0KGUsbikudW5rbm93bihvKX0sTnR0LmFwcGx5KGksYXJndW1lbnRzKSxpfWZ1bmN0aW9uIFZ0dCgpe3ZhciB0LGUsbj1CdHQoKS51bmtub3duKHZvaWQgMCksbz1uLmRvbWFpbixpPW4ucmFuZ2UsYT1bMCwxXSxyPSExLHM9MCxsPTAsYz0uNTtmdW5jdGlvbiBkKCl7dmFyIG49bygpLmxlbmd0aCxkPWFbMV08YVswXSxwPWFbZC0wXSxtPWFbMS1kXTt0PShtLXApL01hdGgubWF4KDEsbi1zKzIqbCksciYmKHQ9TWF0aC5mbG9vcih0KSkscCs9KG0tcC10KihuLXMpKSpjLGU9dCooMS1zKSxyJiYocD1NYXRoLnJvdW5kKHApLGU9TWF0aC5yb3VuZChlKSk7dmFyIHU9aDUobikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcCt0KmV9KSk7cmV0dXJuIGkoZD91LnJldmVyc2UoKTp1KX1yZXR1cm4gZGVsZXRlIG4udW5rbm93bixuLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obyh0KSxkKCkpOm8oKX0sbi5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1bK3RbMF0sK3RbMV1dLGQoKSk6YS5zbGljZSgpfSxuLnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGE9Wyt0WzBdLCt0WzFdXSxyPSEwLGQoKX0sbi5iYW5kd2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sbi5zdGVwPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LG4ucm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ISF0LGQoKSk6cn0sbi5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPU1hdGgubWluKDEsbD0rdCksZCgpKTpzfSxuLnBhZGRpbmdJbm5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1NYXRoLm1pbigxLHQpLGQoKSk6c30sbi5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9K3QsZCgpKTpsfSxuLmFsaWduPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksZCgpKTpjfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gVnR0KG8oKSxhKS5yb3VuZChyKS5wYWRkaW5nSW5uZXIocykucGFkZGluZ091dGVyKGwpLmFsaWduKGMpfSxOdHQuYXBwbHkoZCgpLGFyZ3VtZW50cyl9ZnVuY3Rpb24ganR0KHQpe3ZhciBlPXQuY29weTtyZXR1cm4gdC5wYWRkaW5nPXQucGFkZGluZ091dGVyLGRlbGV0ZSB0LnBhZGRpbmdJbm5lcixkZWxldGUgdC5wYWRkaW5nT3V0ZXIsdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGp0dChlKCkpfSx0fWZ1bmN0aW9uIFV0dCgpe3JldHVybiBqdHQoVnR0LmFwcGx5KG51bGwsYXJndW1lbnRzKS5wYWRkaW5nSW5uZXIoMSkpfWZ1bmN0aW9uIEd0dCh0KXtyZXR1cm4rdH12YXIgV3R0PVswLDFdO2Z1bmN0aW9uIFl0dCh0KXtyZXR1cm4gdH1mdW5jdGlvbiBxdHQodCxlKXtyZXR1cm4oZS09dD0rdCk/ZnVuY3Rpb24obil7cmV0dXJuKG4tdCkvZX06KGZ1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkoaXNOYU4oZSk/TmFOOi41KX1mdW5jdGlvbiBadHQodCl7dmFyIGUsbj10WzBdLG89dFt0Lmxlbmd0aC0xXTtyZXR1cm4gbj5vJiYoZT1uLG49byxvPWUpLGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heChuLE1hdGgubWluKG8sdCkpfX1mdW5jdGlvbiBYdHQodCxlLG4pe3ZhciBvPXRbMF0saT10WzFdLGE9ZVswXSxyPWVbMV07cmV0dXJuIGk8bz8obz1xdHQoaSxvKSxhPW4ocixhKSk6KG89cXR0KG8saSksYT1uKGEscikpLGZ1bmN0aW9uKHQpe3JldHVybiBhKG8odCkpfX1mdW5jdGlvbiBLdHQodCxlLG4pe3ZhciBvPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKS0xLGk9bmV3IEFycmF5KG8pLGE9bmV3IEFycmF5KG8pLHI9LTE7Zm9yKHRbb108dFswXSYmKHQ9dC5zbGljZSgpLnJldmVyc2UoKSxlPWUuc2xpY2UoKS5yZXZlcnNlKCkpOysrcjxvOylpW3JdPXF0dCh0W3JdLHRbcisxXSksYVtyXT1uKGVbcl0sZVtyKzFdKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49cDUodCxlLDEsbyktMTtyZXR1cm4gYVtuXShpW25dKGUpKX19ZnVuY3Rpb24gSnR0KHQsZSl7cmV0dXJuIGUuZG9tYWluKHQuZG9tYWluKCkpLnJhbmdlKHQucmFuZ2UoKSkuaW50ZXJwb2xhdGUodC5pbnRlcnBvbGF0ZSgpKS5jbGFtcCh0LmNsYW1wKCkpLnVua25vd24odC51bmtub3duKCkpfWZ1bmN0aW9uIFF0dCgpe3ZhciB0LGUsbixvLGksYSxyPVd0dCxzPVd0dCxsPVo3LGM9WXR0O2Z1bmN0aW9uIGQoKXtyZXR1cm4gbz1NYXRoLm1pbihyLmxlbmd0aCxzLmxlbmd0aCk+Mj9LdHQ6WHR0LGk9YT1udWxsLHB9ZnVuY3Rpb24gcChlKXtyZXR1cm4gaXNOYU4oZT0rZSk/bjooaXx8KGk9byhyLm1hcCh0KSxzLGwpKSkodChjKGUpKSl9cmV0dXJuIHAuaW52ZXJ0PWZ1bmN0aW9uKG4pe3JldHVybiBjKGUoKGF8fChhPW8ocyxyLm1hcCh0KSxVNykpKShuKSkpfSxwLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1IdHQuY2FsbCh0LEd0dCksYz09PVl0dHx8KGM9WnR0KHIpKSxkKCkpOnIuc2xpY2UoKX0scC5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1GdHQuY2FsbCh0KSxkKCkpOnMuc2xpY2UoKX0scC5yYW5nZVJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBzPUZ0dC5jYWxsKHQpLGw9WDcsZCgpfSxwLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQ/WnR0KHIpOll0dCxwKTpjIT09WXR0fSxwLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPXQsZCgpKTpsfSxwLnVua25vd249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxwKTpufSxmdW5jdGlvbihuLG8pe3JldHVybiB0PW4sZT1vLGQoKX19ZnVuY3Rpb24gJHR0KHQsZSl7cmV0dXJuIFF0dCgpKHQsZSl9ZnVuY3Rpb24gdGV0KHQpe3ZhciBlPXQuZG9tYWluO3JldHVybiB0LnRpY2tzPWZ1bmN0aW9uKHQpe3ZhciBuPWUoKTtyZXR1cm4gQzUoblswXSxuW24ubGVuZ3RoLTFdLG51bGw9PXQ/MTA6dCl9LHQudGlja0Zvcm1hdD1mdW5jdGlvbih0LG4pe3ZhciBvPWUoKTtyZXR1cm4oZnVuY3Rpb24gaSh0LGUsbixvKXt2YXIgaSxhPXY1KHQsZSxuKTtzd2l0Y2goKG89dnR0KG51bGw9PW8/IixmIjpvKSkudHlwZSl7Y2FzZSJzIjp2YXIgcj1NYXRoLm1heChNYXRoLmFicyh0KSxNYXRoLmFicyhlKSk7cmV0dXJuIG51bGwhPW8ucHJlY2lzaW9ufHxpc05hTihpPShmdW5jdGlvbiBzKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsMypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoX3R0KGUpLzMpKSktX3R0KE1hdGguYWJzKHQpKSl9KShhLHIpKXx8KG8ucHJlY2lzaW9uPWkpLFJ0dChvLHIpO2Nhc2UiIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlInIiOm51bGwhPW8ucHJlY2lzaW9ufHxpc05hTihpPShmdW5jdGlvbiBsKHQsZSl7cmV0dXJuIHQ9TWF0aC5hYnModCksZT1NYXRoLmFicyhlKS10LE1hdGgubWF4KDAsX3R0KGUpLV90dCh0KSkrMX0pKGEsTWF0aC5tYXgoTWF0aC5hYnModCksTWF0aC5hYnMoZSkpKSl8fChvLnByZWNpc2lvbj1pLSgiZSI9PT1vLnR5cGUpKTticmVhaztjYXNlImYiOmNhc2UiJSI6bnVsbCE9by5wcmVjaXNpb258fGlzTmFOKGk9KGZ1bmN0aW9uIGModCl7cmV0dXJuIE1hdGgubWF4KDAsLV90dChNYXRoLmFicyh0KSkpfSkoYSkpfHwoby5wcmVjaXNpb249aS0yKigiJSI9PT1vLnR5cGUpKX1yZXR1cm4gRXR0KG8pfSkob1swXSxvW28ubGVuZ3RoLTFdLG51bGw9PXQ/MTA6dCxuKX0sdC5uaWNlPWZ1bmN0aW9uKG4pe251bGw9PW4mJihuPTEwKTt2YXIgbyxpPWUoKSxhPTAscj1pLmxlbmd0aC0xLHM9aVthXSxsPWlbcl07cmV0dXJuIGw8cyYmKG89cyxzPWwsbD1vLG89YSxhPXIscj1vKSwobz1NNShzLGwsbikpPjA/bz1NNShzPU1hdGguZmxvb3Iocy9vKSpvLGw9TWF0aC5jZWlsKGwvbykqbyxuKTpvPDAmJihvPU01KHM9TWF0aC5jZWlsKHMqbykvbyxsPU1hdGguZmxvb3IobCpvKS9vLG4pKSxvPjA/KGlbYV09TWF0aC5mbG9vcihzL28pKm8saVtyXT1NYXRoLmNlaWwobC9vKSpvLGUoaSkpOm88MCYmKGlbYV09TWF0aC5jZWlsKHMqbykvbyxpW3JdPU1hdGguZmxvb3IobCpvKS9vLGUoaSkpLHR9LHR9ZnVuY3Rpb24gZWV0KCl7dmFyIHQ9JHR0KFl0dCxZdHQpO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gSnR0KHQsZWV0KCkpfSxOdHQuYXBwbHkodCxhcmd1bWVudHMpLHRldCh0KX1mdW5jdGlvbiBuZXQodCxlKXt2YXIgbixvPTAsaT0odD10LnNsaWNlKCkpLmxlbmd0aC0xLGE9dFtvXSxyPXRbaV07cmV0dXJuIHI8YSYmKG49byxvPWksaT1uLG49YSxhPXIscj1uKSx0W29dPWUuZmxvb3IoYSksdFtpXT1lLmNlaWwociksdH1mdW5jdGlvbiBvZXQodCl7cmV0dXJuIE1hdGgubG9nKHQpfWZ1bmN0aW9uIGlldCh0KXtyZXR1cm4gTWF0aC5leHAodCl9ZnVuY3Rpb24gYWV0KHQpe3JldHVybi1NYXRoLmxvZygtdCl9ZnVuY3Rpb24gcmV0KHQpe3JldHVybi1NYXRoLmV4cCgtdCl9ZnVuY3Rpb24gc2V0KHQpe3JldHVybiBpc0Zpbml0ZSh0KT8rKCIxZSIrdCk6dDwwPzA6dH1mdW5jdGlvbiBjZXQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybi10KC1lKX19ZnVuY3Rpb24gZGV0KHQpe3ZhciBlLG4sbz10KG9ldCxpZXQpLGk9by5kb21haW4sYT0xMDtmdW5jdGlvbiByKCl7cmV0dXJuIGU9KGZ1bmN0aW9uIHIodCl7cmV0dXJuIHQ9PT1NYXRoLkU/TWF0aC5sb2c6MTA9PT10JiZNYXRoLmxvZzEwfHwyPT09dCYmTWF0aC5sb2cyfHwodD1NYXRoLmxvZyh0KSxmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkvdH0pfSkoYSksbj0oZnVuY3Rpb24gcyh0KXtyZXR1cm4gMTA9PT10P3NldDp0PT09TWF0aC5FP01hdGguZXhwOmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnBvdyh0LGUpfX0pKGEpLGkoKVswXTwwPyhlPWNldChlKSxuPWNldChuKSx0KGFldCxyZXQpKTp0KG9ldCxpZXQpLG99cmV0dXJuIG8uYmFzZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxyKCkpOmF9LG8uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpKHQpLHIoKSk6aSgpfSxvLnRpY2tzPWZ1bmN0aW9uKHQpe3ZhciBvLHI9aSgpLHM9clswXSxsPXJbci5sZW5ndGgtMV07KG89bDxzKSYmKG09cyxzPWwsbD1tKTt2YXIgYyxkLHAsbT1lKHMpLHU9ZShsKSxmPW51bGw9PXQ/MTA6K3QsZz1bXTtpZighKGElMSkmJnUtbTxmKXtpZihtPU1hdGgucm91bmQobSktMSx1PU1hdGgucm91bmQodSkrMSxzPjApe2Zvcig7bTx1OysrbSlmb3IoZD0xLGM9bihtKTtkPGE7KytkKWlmKCEoKHA9YypkKTxzKSl7aWYocD5sKWJyZWFrO2cucHVzaChwKX19ZWxzZSBmb3IoO208dTsrK20pZm9yKGQ9YS0xLGM9bihtKTtkPj0xOy0tZClpZighKChwPWMqZCk8cykpe2lmKHA+bClicmVhaztnLnB1c2gocCl9fWVsc2UgZz1DNShtLHUsTWF0aC5taW4odS1tLGYpKS5tYXAobik7cmV0dXJuIG8/Zy5yZXZlcnNlKCk6Z30sby50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsaSl7aWYobnVsbD09aSYmKGk9MTA9PT1hPyIuMGUiOiIsIiksImZ1bmN0aW9uIiE9dHlwZW9mIGkmJihpPUV0dChpKSksdD09PTEvMClyZXR1cm4gaTtudWxsPT10JiYodD0xMCk7dmFyIHI9TWF0aC5tYXgoMSxhKnQvby50aWNrcygpLmxlbmd0aCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBvPXQvbihNYXRoLnJvdW5kKGUodCkpKTtyZXR1cm4gbyphPGEtLjUmJihvKj1hKSxvPD1yP2kodCk6IiJ9fSxvLm5pY2U9ZnVuY3Rpb24oKXtyZXR1cm4gaShuZXQoaSgpLHtmbG9vcjpmdW5jdGlvbih0KXtyZXR1cm4gbihNYXRoLmZsb29yKGUodCkpKX0sY2VpbDpmdW5jdGlvbih0KXtyZXR1cm4gbihNYXRoLmNlaWwoZSh0KSkpfX0pKX0sb31mdW5jdGlvbiBwZXQoKXt2YXIgdD1kZXQoUXR0KCkpLmRvbWFpbihbMSwxMF0pO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gSnR0KHQscGV0KCkpLmJhc2UodC5iYXNlKCkpfSxOdHQuYXBwbHkodCxhcmd1bWVudHMpLHR9dmFyIG1ldD1uZXcgRGF0ZSx1ZXQ9bmV3IERhdGU7ZnVuY3Rpb24gZmV0KHQsZSxuLG8pe2Z1bmN0aW9uIGkoZSl7cmV0dXJuIHQoZT0wPT09YXJndW1lbnRzLmxlbmd0aD9uZXcgRGF0ZTpuZXcgRGF0ZSgrZSkpLGV9cmV0dXJuIGkuZmxvb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZT1uZXcgRGF0ZSgrZSkpLGV9LGkuY2VpbD1mdW5jdGlvbihuKXtyZXR1cm4gdChuPW5ldyBEYXRlKG4tMSkpLGUobiwxKSx0KG4pLG59LGkucm91bmQ9ZnVuY3Rpb24odCl7dmFyIGU9aSh0KSxuPWkuY2VpbCh0KTtyZXR1cm4gdC1lPG4tdD9lOm59LGkub2Zmc2V0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodD1uZXcgRGF0ZSgrdCksbnVsbD09bj8xOk1hdGguZmxvb3IobikpLHR9LGkucmFuZ2U9ZnVuY3Rpb24obixvLGEpe3ZhciByLHM9W107aWYobj1pLmNlaWwobiksYT1udWxsPT1hPzE6TWF0aC5mbG9vcihhKSwhKG48byYmYT4wKSlyZXR1cm4gcztkb3tzLnB1c2gocj1uZXcgRGF0ZSgrbikpLGUobixhKSx0KG4pfXdoaWxlKHI8biYmbjxvKTtyZXR1cm4gc30saS5maWx0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGZldCgoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsbyl7aWYodD49dClpZihvPDApZm9yKDsrK288PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLW8+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoaS5jb3VudD1mdW5jdGlvbihlLG8pe3JldHVybiBtZXQuc2V0VGltZSgrZSksdWV0LnNldFRpbWUoK28pLHQobWV0KSx0KHVldCksTWF0aC5mbG9vcihuKG1ldCx1ZXQpKX0saS5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP2kuZmlsdGVyKG8/ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY291bnQoMCxlKSV0PT0wfSk6aTpudWxsfSksaX12YXIgZ2V0PWZldCgoZnVuY3Rpb24oKXt9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS10fSkpO2dldC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP2ZldCgoZnVuY3Rpb24oZSl7ZS5zZXRUaW1lKE1hdGguZmxvb3IoZS90KSp0KX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0VGltZSgrZStuKnQpfSksKGZ1bmN0aW9uKGUsbil7cmV0dXJuKG4tZSkvdH0pKTpnZXQ6bnVsbH07dmFyIGhldD1nZXQsYmV0PTFlMyx5ZXQ9NmU0LF9ldD0zNmU1LENldD04NjRlNSxNZXQ9NjA0OGU1LHZldD1mZXQoKGZ1bmN0aW9uKHQpe3Quc2V0VGltZSh0LXQuZ2V0TWlsbGlzZWNvbmRzKCkpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqYmV0KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL2JldH0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENTZWNvbmRzKCl9KSkseGV0PWZldCgoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKS10LmdldFNlY29uZHMoKSpiZXQpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqeWV0KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL3lldH0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNaW51dGVzKCl9KSksT2V0PWZldCgoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKS10LmdldFNlY29uZHMoKSpiZXQtdC5nZXRNaW51dGVzKCkqeWV0KX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKl9ldCl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9fZXR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pKSxQZXQ9ZmV0KChmdW5jdGlvbih0KXt0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdC0oZS5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqeWV0KS9DZXR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpLTF9KSk7ZnVuY3Rpb24gd2V0KHQpe3JldHVybiBmZXQoKGZ1bmN0aW9uKGUpe2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs3LXQpJTcpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnlldCkvTWV0fSkpfXZhciBrZXQ9d2V0KDApLERldD13ZXQoMSk7d2V0KDIpLHdldCgzKTt2YXIgRWV0PXdldCg0KTt3ZXQoNSksd2V0KDYpO3ZhciBSZXQ9ZmV0KChmdW5jdGlvbih0KXt0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0TW9udGgodC5nZXRNb250aCgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0TW9udGgoKS10LmdldE1vbnRoKCkrMTIqKGUuZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCkpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSksQWV0PWZldCgoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KSk7QWV0LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/ZmV0KChmdW5jdGlvbihlKXtlLnNldEZ1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRGdWxsWWVhcigpL3QpKnQpLGUuc2V0TW9udGgoMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgVGV0PUFldCxOZXQ9ZmV0KChmdW5jdGlvbih0KXt0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvQ2V0fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSkpO2Z1bmN0aW9uIHpldCh0KXtyZXR1cm4gZmV0KChmdW5jdGlvbihlKXtlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCktKGUuZ2V0VVRDRGF5KCkrNy10KSU3KSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9NZXR9KSl9dmFyIElldD16ZXQoMCksSGV0PXpldCgxKTt6ZXQoMiksemV0KDMpO3ZhciBGZXQ9emV0KDQpO3pldCg1KSx6ZXQoNik7dmFyIExldD1mZXQoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpfSkpO0xldC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP2ZldCgoZnVuY3Rpb24oZSl7ZS5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0VVRDRnVsbFllYXIoKS90KSp0KSxlLnNldFVUQ01vbnRoKDAsMSksZS5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0VVRDRnVsbFllYXIoZS5nZXRVVENGdWxsWWVhcigpK24qdCl9KSk6bnVsbH07dmFyIEJldD1MZXQ7ZnVuY3Rpb24gVmV0KHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIGU9bmV3IERhdGUoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpO3JldHVybiBlLnNldEZ1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUodC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKX1mdW5jdGlvbiBqZXQodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZShEYXRlLlVUQygtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpO3JldHVybiBlLnNldFVUQ0Z1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSl9ZnVuY3Rpb24gVWV0KHQsZSxuKXtyZXR1cm57eTp0LG06ZSxkOm4sSDowLE06MCxTOjAsTDowfX12YXIgR2V0LFdldCxZZXQ9eyItIjoiIixfOiIgIiwwOiIwIn0scWV0PS9eXHMqXGQrLyxaZXQ9L14lLyxYZXQ9L1tcXF4kKis/fFtcXSgpLnt9XS9nO2Z1bmN0aW9uIEtldCh0LGUsbil7dmFyIG89dDwwPyItIjoiIixpPShvPy10OnQpKyIiLGE9aS5sZW5ndGg7cmV0dXJuIG8rKGE8bj9uZXcgQXJyYXkobi1hKzEpLmpvaW4oZSkraTppKX1mdW5jdGlvbiBKZXQodCl7cmV0dXJuIHQucmVwbGFjZShYZXQsIlxcJCYiKX1mdW5jdGlvbiBRZXQodCl7cmV0dXJuIG5ldyBSZWdFeHAoIl4oPzoiK3QubWFwKEpldCkuam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uICRldCh0KXtmb3IodmFyIGU9e30sbj0tMSxvPXQubGVuZ3RoOysrbjxvOyllW3Rbbl0udG9Mb3dlckNhc2UoKV09bjtyZXR1cm4gZX1mdW5jdGlvbiB0bnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzEpKTtyZXR1cm4gbz8odC53PStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGVudCh0LGUsbil7dmFyIG89cWV0LmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBvPyh0LnU9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbm50KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIG8/KHQuVT0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBvbnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC5WPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGludCh0LGUsbil7dmFyIG89cWV0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBvPyh0Llc9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYW50KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4sbis0KSk7cmV0dXJuIG8/KHQueT0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBybnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC55PStvWzBdKygrb1swXT42OD8xOTAwOjJlMyksbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gc250KHQsZSxuKXt2YXIgbz0vXihaKXwoWystXVxkXGQpKD86Oj8oXGRcZCkpPy8uZXhlYyhlLnNsaWNlKG4sbis2KSk7cmV0dXJuIG8/KHQuWj1vWzFdPzA6LShvWzJdKyhvWzNdfHwiMDAiKSksbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbG50KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIG8/KHQucT0zKm9bMF0tMyxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBjbnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC5tPW9bMF0tMSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBkbnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC5kPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHBudCh0LGUsbil7dmFyIG89cWV0LmV4ZWMoZS5zbGljZShuLG4rMykpO3JldHVybiBvPyh0Lm09MCx0LmQ9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbW50KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIG8/KHQuSD0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB1bnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC5NPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGZudCh0LGUsbil7dmFyIG89cWV0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBvPyh0LlM9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZ250KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4sbiszKSk7cmV0dXJuIG8/KHQuTD0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBobnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gbz8odC5MPU1hdGguZmxvb3Iob1swXS8xZTMpLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGJudCh0LGUsbil7dmFyIG89WmV0LmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBvP24rb1swXS5sZW5ndGg6LTF9ZnVuY3Rpb24geW50KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gbz8odC5RPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIF9udCh0LGUsbil7dmFyIG89cWV0LmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIG8/KHQucz0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBDbnQodCxlKXtyZXR1cm4gS2V0KHQuZ2V0RGF0ZSgpLGUsMil9ZnVuY3Rpb24gTW50KHQsZSl7cmV0dXJuIEtldCh0LmdldEhvdXJzKCksZSwyKX1mdW5jdGlvbiB2bnQodCxlKXtyZXR1cm4gS2V0KHQuZ2V0SG91cnMoKSUxMnx8MTIsZSwyKX1mdW5jdGlvbiB4bnQodCxlKXtyZXR1cm4gS2V0KDErUGV0LmNvdW50KFRldCh0KSx0KSxlLDMpfWZ1bmN0aW9uIE9udCh0LGUpe3JldHVybiBLZXQodC5nZXRNaWxsaXNlY29uZHMoKSxlLDMpfWZ1bmN0aW9uIFBudCh0LGUpe3JldHVybiBPbnQodCxlKSsiMDAwIn1mdW5jdGlvbiB3bnQodCxlKXtyZXR1cm4gS2V0KHQuZ2V0TW9udGgoKSsxLGUsMil9ZnVuY3Rpb24ga250KHQsZSl7cmV0dXJuIEtldCh0LmdldE1pbnV0ZXMoKSxlLDIpfWZ1bmN0aW9uIFNudCh0LGUpe3JldHVybiBLZXQodC5nZXRTZWNvbmRzKCksZSwyKX1mdW5jdGlvbiBEbnQodCl7dmFyIGU9dC5nZXREYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIEVudCh0LGUpe3JldHVybiBLZXQoa2V0LmNvdW50KFRldCh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gUm50KHQpe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIGU+PTR8fDA9PT1lP0VldCh0KTpFZXQuY2VpbCh0KX1mdW5jdGlvbiBBbnQodCxlKXtyZXR1cm4gdD1SbnQodCksS2V0KEVldC5jb3VudChUZXQodCksdCkrKDQ9PT1UZXQodCkuZ2V0RGF5KCkpLGUsMil9ZnVuY3Rpb24gVG50KHQpe3JldHVybiB0LmdldERheSgpfWZ1bmN0aW9uIE5udCh0LGUpe3JldHVybiBLZXQoRGV0LmNvdW50KFRldCh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gem50KHQsZSl7cmV0dXJuIEtldCh0LmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gSW50KHQsZSl7cmV0dXJuIEtldCgodD1SbnQodCkpLmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gSG50KHQsZSl7cmV0dXJuIEtldCh0LmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gRm50KHQsZSl7dmFyIG49dC5nZXREYXkoKTtyZXR1cm4gS2V0KCh0PW4+PTR8fDA9PT1uP0VldCh0KTpFZXQuY2VpbCh0KSkuZ2V0RnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiBMbnQodCl7dmFyIGU9dC5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihlPjA/Ii0iOihlKj0tMSwiKyIpKStLZXQoZS82MHwwLCIwIiwyKStLZXQoZSU2MCwiMCIsMil9ZnVuY3Rpb24gQm50KHQsZSl7cmV0dXJuIEtldCh0LmdldFVUQ0RhdGUoKSxlLDIpfWZ1bmN0aW9uIFZudCh0LGUpe3JldHVybiBLZXQodC5nZXRVVENIb3VycygpLGUsMil9ZnVuY3Rpb24gam50KHQsZSl7cmV0dXJuIEtldCh0LmdldFVUQ0hvdXJzKCklMTJ8fDEyLGUsMil9ZnVuY3Rpb24gVW50KHQsZSl7cmV0dXJuIEtldCgxK05ldC5jb3VudChCZXQodCksdCksZSwzKX1mdW5jdGlvbiBHbnQodCxlKXtyZXR1cm4gS2V0KHQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksZSwzKX1mdW5jdGlvbiBXbnQodCxlKXtyZXR1cm4gR250KHQsZSkrIjAwMCJ9ZnVuY3Rpb24gWW50KHQsZSl7cmV0dXJuIEtldCh0LmdldFVUQ01vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIHFudCh0LGUpe3JldHVybiBLZXQodC5nZXRVVENNaW51dGVzKCksZSwyKX1mdW5jdGlvbiBabnQodCxlKXtyZXR1cm4gS2V0KHQuZ2V0VVRDU2Vjb25kcygpLGUsMil9ZnVuY3Rpb24gWG50KHQpe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIDA9PT1lPzc6ZX1mdW5jdGlvbiBLbnQodCxlKXtyZXR1cm4gS2V0KElldC5jb3VudChCZXQodCktMSx0KSxlLDIpfWZ1bmN0aW9uIEpudCh0KXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiBlPj00fHwwPT09ZT9GZXQodCk6RmV0LmNlaWwodCl9ZnVuY3Rpb24gUW50KHQsZSl7cmV0dXJuIHQ9Sm50KHQpLEtldChGZXQuY291bnQoQmV0KHQpLHQpKyg0PT09QmV0KHQpLmdldFVUQ0RheSgpKSxlLDIpfWZ1bmN0aW9uICRudCh0KXtyZXR1cm4gdC5nZXRVVENEYXkoKX1mdW5jdGlvbiB0b3QodCxlKXtyZXR1cm4gS2V0KEhldC5jb3VudChCZXQodCktMSx0KSxlLDIpfWZ1bmN0aW9uIGVvdCh0LGUpe3JldHVybiBLZXQodC5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIG5vdCh0LGUpe3JldHVybiBLZXQoKHQ9Sm50KHQpKS5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIG9vdCh0LGUpe3JldHVybiBLZXQodC5nZXRVVENGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIGlvdCh0LGUpe3ZhciBuPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIEtldCgodD1uPj00fHwwPT09bj9GZXQodCk6RmV0LmNlaWwodCkpLmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gYW90KCl7cmV0dXJuIiswMDAwIn1mdW5jdGlvbiByb3QoKXtyZXR1cm4iJSJ9ZnVuY3Rpb24gc290KHQpe3JldHVybit0fWZ1bmN0aW9uIGxvdCh0KXtyZXR1cm4gTWF0aC5mbG9vcigrdC8xZTMpfSEoZnVuY3Rpb24gY290KHQpe0dldD0oZnVuY3Rpb24gZSh0KXt2YXIgZT10LmRhdGVUaW1lLG49dC5kYXRlLG89dC50aW1lLGk9dC5wZXJpb2RzLGE9dC5kYXlzLHI9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsYz1RZXQoaSksZD0kZXQoaSkscD1RZXQoYSksbT0kZXQoYSksdT1RZXQociksZj0kZXQociksZz1RZXQocyksaD0kZXQocyksYj1RZXQobCkseT0kZXQobCksXz17YTpmdW5jdGlvbiBDKHQpe3JldHVybiByW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uIE0odCl7cmV0dXJuIGFbdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24gdih0KXtyZXR1cm4gbFt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uIHgodCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6Q250LGU6Q250LGY6UG50LGc6SW50LEc6Rm50LEg6TW50LEk6dm50LGo6eG50LEw6T250LG06d250LE06a250LHA6ZnVuY3Rpb24gTyh0KXtyZXR1cm4gaVsrKHQuZ2V0SG91cnMoKT49MTIpXX0scTpmdW5jdGlvbiBQKHQpe3JldHVybiAxK35+KHQuZ2V0TW9udGgoKS8zKX0sUTpzb3Qsczpsb3QsUzpTbnQsdTpEbnQsVTpFbnQsVjpBbnQsdzpUbnQsVzpObnQseDpudWxsLFg6bnVsbCx5OnpudCxZOkhudCxaOkxudCwiJSI6cm90fSx3PXthOmZ1bmN0aW9uIGsodCl7cmV0dXJuIHJbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24gUyh0KXtyZXR1cm4gYVt0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbiBEKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24gRSh0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDpCbnQsZTpCbnQsZjpXbnQsZzpub3QsRzppb3QsSDpWbnQsSTpqbnQsajpVbnQsTDpHbnQsbTpZbnQsTTpxbnQscDpmdW5jdGlvbiBSKHQpe3JldHVybiBpWysodC5nZXRVVENIb3VycygpPj0xMildfSxxOmZ1bmN0aW9uIEEodCl7cmV0dXJuIDErfn4odC5nZXRVVENNb250aCgpLzMpfSxROnNvdCxzOmxvdCxTOlpudCx1OlhudCxVOktudCxWOlFudCx3OiRudCxXOnRvdCx4Om51bGwsWDpudWxsLHk6ZW90LFk6b290LFo6YW90LCIlIjpyb3R9LFQ9e2E6ZnVuY3Rpb24gTih0LGUsbil7dmFyIG89dS5leGVjKGUuc2xpY2UobikpO3JldHVybiBvPyh0Lnc9ZltvWzBdLnRvTG93ZXJDYXNlKCldLG4rb1swXS5sZW5ndGgpOi0xfSxBOmZ1bmN0aW9uIHoodCxlLG4pe3ZhciBvPXAuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gbz8odC53PW1bb1swXS50b0xvd2VyQ2FzZSgpXSxuK29bMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbiBJKHQsZSxuKXt2YXIgbz1iLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIG8/KHQubT15W29bMF0udG9Mb3dlckNhc2UoKV0sbitvWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24gSCh0LGUsbil7dmFyIG89Zy5leGVjKGUuc2xpY2UobikpO3JldHVybiBvPyh0Lm09aFtvWzBdLnRvTG93ZXJDYXNlKCldLG4rb1swXS5sZW5ndGgpOi0xfSxjOmZ1bmN0aW9uIEYodCxuLG8pe3JldHVybiBHKHQsZSxuLG8pfSxkOmRudCxlOmRudCxmOmhudCxnOnJudCxHOmFudCxIOm1udCxJOm1udCxqOnBudCxMOmdudCxtOmNudCxNOnVudCxwOmZ1bmN0aW9uIEwodCxlLG4pe3ZhciBvPWMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gbz8odC5wPWRbb1swXS50b0xvd2VyQ2FzZSgpXSxuK29bMF0ubGVuZ3RoKTotMX0scTpsbnQsUTp5bnQsczpfbnQsUzpmbnQsdTplbnQsVTpubnQsVjpvbnQsdzp0bnQsVzppbnQseDpmdW5jdGlvbiBCKHQsZSxvKXtyZXR1cm4gRyh0LG4sZSxvKX0sWDpmdW5jdGlvbiBWKHQsZSxuKXtyZXR1cm4gRyh0LG8sZSxuKX0seTpybnQsWTphbnQsWjpzbnQsIiUiOmJudH07ZnVuY3Rpb24gaih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgbyxpLGEscj1bXSxzPS0xLGw9MCxjPXQubGVuZ3RoO2ZvcihuIGluc3RhbmNlb2YgRGF0ZXx8KG49bmV3IERhdGUoK24pKTsrK3M8YzspMzc9PT10LmNoYXJDb2RlQXQocykmJihyLnB1c2godC5zbGljZShsLHMpKSxudWxsIT0oaT1ZZXRbbz10LmNoYXJBdCgrK3MpXSk/bz10LmNoYXJBdCgrK3MpOmk9ImUiPT09bz8iICI6IjAiLChhPWVbb10pJiYobz1hKG4saSkpLHIucHVzaChvKSxsPXMrMSk7cmV0dXJuIHIucHVzaCh0LnNsaWNlKGwscykpLHIuam9pbigiIil9fWZ1bmN0aW9uIFUodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIG8saSxhPVVldCgxOTAwLHZvaWQgMCwxKTtpZihHKGEsdCxuKz0iIiwwKSE9bi5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gYSlyZXR1cm4gbmV3IERhdGUoYS5RKTtpZigicyJpbiBhKXJldHVybiBuZXcgRGF0ZSgxZTMqYS5zKygiTCJpbiBhP2EuTDowKSk7aWYoZSYmISgiWiJpbiBhKSYmKGEuWj0wKSwicCJpbiBhJiYoYS5IPWEuSCUxMisxMiphLnApLHZvaWQgMD09PWEubSYmKGEubT0icSJpbiBhP2EucTowKSwiViJpbiBhKXtpZihhLlY8MXx8YS5WPjUzKXJldHVybiBudWxsOyJ3ImluIGF8fChhLnc9MSksIloiaW4gYT8oaT0obz1qZXQoVWV0KGEueSwwLDEpKSkuZ2V0VVRDRGF5KCksbz1pPjR8fDA9PT1pP0hldC5jZWlsKG8pOkhldChvKSxvPU5ldC5vZmZzZXQobyw3KihhLlYtMSkpLGEueT1vLmdldFVUQ0Z1bGxZZWFyKCksYS5tPW8uZ2V0VVRDTW9udGgoKSxhLmQ9by5nZXRVVENEYXRlKCkrKGEudys2KSU3KTooaT0obz1WZXQoVWV0KGEueSwwLDEpKSkuZ2V0RGF5KCksbz1pPjR8fDA9PT1pP0RldC5jZWlsKG8pOkRldChvKSxvPVBldC5vZmZzZXQobyw3KihhLlYtMSkpLGEueT1vLmdldEZ1bGxZZWFyKCksYS5tPW8uZ2V0TW9udGgoKSxhLmQ9by5nZXREYXRlKCkrKGEudys2KSU3KX1lbHNlKCJXImluIGF8fCJVImluIGEpJiYoInciaW4gYXx8KGEudz0idSJpbiBhP2EudSU3OiJXImluIGE/MTowKSxpPSJaImluIGE/amV0KFVldChhLnksMCwxKSkuZ2V0VVRDRGF5KCk6VmV0KFVldChhLnksMCwxKSkuZ2V0RGF5KCksYS5tPTAsYS5kPSJXImluIGE/KGEudys2KSU3KzcqYS5XLShpKzUpJTc6YS53KzcqYS5VLShpKzYpJTcpO3JldHVybiJaImluIGE/KGEuSCs9YS5aLzEwMHwwLGEuTSs9YS5aJTEwMCxqZXQoYSkpOlZldChhKX19ZnVuY3Rpb24gRyh0LGUsbixvKXtmb3IodmFyIGksYSxyPTAscz1lLmxlbmd0aCxsPW4ubGVuZ3RoO3I8czspe2lmKG8+PWwpcmV0dXJuLTE7aWYoMzc9PT0oaT1lLmNoYXJDb2RlQXQocisrKSkpe2lmKGk9ZS5jaGFyQXQocisrKSwhKGE9VFtpIGluIFlldD9lLmNoYXJBdChyKyspOmldKXx8KG89YSh0LG4sbykpPDApcmV0dXJuLTF9ZWxzZSBpZihpIT1uLmNoYXJDb2RlQXQobysrKSlyZXR1cm4tMX1yZXR1cm4gb31yZXR1cm4gXy54PWoobixfKSxfLlg9aihvLF8pLF8uYz1qKGUsXyksdy54PWoobix3KSx3Llg9aihvLHcpLHcuYz1qKGUsdykse2Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLF8pO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPVUodCs9IiIsITEpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y0Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLHcpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y1BhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPVUodCs9IiIsITApO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9fX0pKHQpLFdldD1HZXQuZm9ybWF0fSkoe2RhdGVUaW1lOiIleCwgJVgiLGRhdGU6IiUtbS8lLWQvJVkiLHRpbWU6IiUtSTolTTolUyAlcCIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KTt2YXIgZG90PTMxNTM2ZTY7ZnVuY3Rpb24gcG90KHQpe3JldHVybiBuZXcgRGF0ZSh0KX1mdW5jdGlvbiBtb3QodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlPyt0OituZXcgRGF0ZSgrdCl9ZnVuY3Rpb24gdW90KHQsZSxuLG8saSxhLHIscyxsKXt2YXIgYz0kdHQoWXR0LFl0dCksZD1jLmludmVydCxwPWMuZG9tYWluLG09bCgiLiVMIiksdT1sKCI6JVMiKSxmPWwoIiVJOiVNIiksZz1sKCIlSSAlcCIpLGg9bCgiJWEgJWQiKSxiPWwoIiViICVkIikseT1sKCIlQiIpLF89bCgiJVkiKSxDPVtbciwxLDFlM10sW3IsNSw1ZTNdLFtyLDE1LDE1ZTNdLFtyLDMwLDNlNF0sW2EsMSw2ZTRdLFthLDUsM2U1XSxbYSwxNSw5ZTVdLFthLDMwLDE4ZTVdLFtpLDEsMzZlNV0sW2ksMywxMDhlNV0sW2ksNiwyMTZlNV0sW2ksMTIsNDMyZTVdLFtvLDEsODY0ZTVdLFtvLDIsMTcyOGU1XSxbbiwxLDYwNDhlNV0sW2UsMSwyNTkyZTZdLFtlLDMsNzc3NmU2XSxbdCwxLGRvdF1dO2Z1bmN0aW9uIE0ocyl7cmV0dXJuKHIocyk8cz9tOmEocyk8cz91Omkocyk8cz9mOm8ocyk8cz9nOmUocyk8cz9uKHMpPHM/aDpiOnQocyk8cz95Ol8pKHMpfWZ1bmN0aW9uIHYoZSxuLG8saSl7aWYobnVsbD09ZSYmKGU9MTApLCJudW1iZXIiPT10eXBlb2YgZSl7dmFyIGE9TWF0aC5hYnMoby1uKS9lLHI9ZDUoKGZ1bmN0aW9uKHQpe3JldHVybiB0WzJdfSkpLnJpZ2h0KEMsYSk7cj09PUMubGVuZ3RoPyhpPXY1KG4vZG90LG8vZG90LGUpLGU9dCk6cj8oaT0ocj1DW2EvQ1tyLTFdWzJdPENbcl1bMl0vYT9yLTE6cl0pWzFdLGU9clswXSk6KGk9TWF0aC5tYXgodjUobixvLGUpLDEpLGU9cyl9cmV0dXJuIG51bGw9PWk/ZTplLmV2ZXJ5KGkpfXJldHVybiBjLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IERhdGUoZCh0KSl9LGMuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3AoSHR0LmNhbGwodCxtb3QpKTpwKCkubWFwKHBvdCl9LGMudGlja3M9ZnVuY3Rpb24odCxlKXt2YXIgbixvPXAoKSxpPW9bMF0sYT1vW28ubGVuZ3RoLTFdLHI9YTxpO3JldHVybiByJiYobj1pLGk9YSxhPW4pLG49KG49dih0LGksYSxlKSk/bi5yYW5nZShpLGErMSk6W10scj9uLnJldmVyc2UoKTpufSxjLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09ZT9NOmwoZSl9LGMubmljZT1mdW5jdGlvbih0LGUpe3ZhciBuPXAoKTtyZXR1cm4odD12KHQsblswXSxuW24ubGVuZ3RoLTFdLGUpKT9wKG5ldChuLHQpKTpjfSxjLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gSnR0KGMsdW90KHQsZSxuLG8saSxhLHIscyxsKSl9LGN9ZnVuY3Rpb24gZm90KCl7cmV0dXJuIE50dC5hcHBseSh1b3QoVGV0LFJldCxrZXQsUGV0LE9ldCx4ZXQsdmV0LGhldCxXZXQpLmRvbWFpbihbbmV3IERhdGUoMmUzLDAsMSksbmV3IERhdGUoMmUzLDAsMildKSxhcmd1bWVudHMpfWZ1bmN0aW9uIGdvdCh0KXtmb3IodmFyIGU9dC5sZW5ndGgvNnwwLG49bmV3IEFycmF5KGUpLG89MDtvPGU7KW5bb109IiMiK3Quc2xpY2UoNipvLDYqKytvKTtyZXR1cm4gbn1mdW5jdGlvbiBob3QodCl7cmV0dXJuIEg3KHRbdC5sZW5ndGgtMV0pfXZhciBib3Q9aG90KG5ldyBBcnJheSgzKS5jb25jYXQoImRlZWJmNzllY2FlMTMxODJiZCIsImVmZjNmZmJkZDdlNzZiYWVkNjIxNzFiNSIsImVmZjNmZmJkZDdlNzZiYWVkNjMxODJiZDA4NTE5YyIsImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjMxODJiZDA4NTE5YyIsImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NCIsImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NCIsImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NTE5YzA4MzA2YiIpLm1hcChnb3QpKSx5b3Q9aG90KG5ldyBBcnJheSgzKS5jb25jYXQoImYwZjBmMGJkYmRiZDYzNjM2MyIsImY3ZjdmN2NjY2NjYzk2OTY5NjUyNTI1MiIsImY3ZjdmN2NjY2NjYzk2OTY5NjYzNjM2MzI1MjUyNSIsImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjYzNjM2MzI1MjUyNSIsImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNSIsImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNSIsImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNTAwMDAwMCIpLm1hcChnb3QpKSxfb3Q9aG90KG5ldyBBcnJheSgzKS5jb25jYXQoImZlZTBkMmZjOTI3MmRlMmQyNiIsImZlZTVkOWZjYWU5MWZiNmE0YWNiMTgxZCIsImZlZTVkOWZjYWU5MWZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZGE1MGYxNTY3MDAwZCIpLm1hcChnb3QpKTtmdW5jdGlvbiBDb3QodCl7cmV0dXJuIGZ1bmN0aW9uIGUoKXtyZXR1cm4gdH19ZnVuY3Rpb24gTW90KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiB2b3QodCl7cmV0dXJuIG5ldyBNb3QodCl9ZnVuY3Rpb24geG90KHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIE9vdCh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBQb3QoKXt2YXIgdD14b3QsZT1Pb3Qsbj1Db3QoITApLG89bnVsbCxpPXZvdCxhPW51bGw7ZnVuY3Rpb24gcihyKXt2YXIgcyxsLGMsZD1yLmxlbmd0aCxwPSExO2ZvcihudWxsPT1vJiYoYT1pKGM9bXR0KCkpKSxzPTA7czw9ZDsrK3MpIShzPGQmJm4obD1yW3NdLHMscikpPT09cCYmKChwPSFwKT9hLmxpbmVTdGFydCgpOmEubGluZUVuZCgpKSxwJiZhLnBvaW50KCt0KGwscyxyKSwrZShsLHMscikpO2lmKGMpcmV0dXJuIGE9bnVsbCxjKyIifHxudWxsfXJldHVybiByLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpDb3QoK2UpLHIpOnR9LHIueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkNvdCgrdCkscik6ZX0sci5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Q290KCEhdCkscik6bn0sci5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LG51bGwhPW8mJihhPWkobykpLHIpOml9LHIuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9vPWE9bnVsbDphPWkobz10KSxyKTpvfSxyfWZ1bmN0aW9uIHdvdCh0LGUsbil7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHQuX3gxK3QuX2sqKHQuX3gyLXQuX3gwKSx0Ll95MSt0Ll9rKih0Ll95Mi10Ll95MCksdC5feDIrdC5fayoodC5feDEtZSksdC5feTIrdC5fayoodC5feTEtbiksdC5feDIsdC5feTIpfWZ1bmN0aW9uIGtvdCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLWUpLzZ9ZnVuY3Rpb24gU290KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9TW90LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpfX19LGtvdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6d290KHRoaXMsdGhpcy5feDEsdGhpcy5feTEpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94MT10LHRoaXMuX3kxPWU7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7ZGVmYXVsdDp3b3QodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19LFNvdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mil9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe2lmKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7dmFyIG49dGhpcy5feDItdCxvPXRoaXMuX3kyLWU7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhuKm4rbypvLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OiEoZnVuY3Rpb24gaSh0LGUsbil7dmFyIG89dC5feDEsaT10Ll95MSxhPXQuX3gyLHI9dC5feTI7aWYodC5fbDAxX2E+MWUtMTIpe3ZhciBzPTIqdC5fbDAxXzJhKzMqdC5fbDAxX2EqdC5fbDEyX2ErdC5fbDEyXzJhLGw9Myp0Ll9sMDFfYSoodC5fbDAxX2ErdC5fbDEyX2EpO289KG8qcy10Ll94MCp0Ll9sMTJfMmErdC5feDIqdC5fbDAxXzJhKS9sLGk9KGkqcy10Ll95MCp0Ll9sMTJfMmErdC5feTIqdC5fbDAxXzJhKS9sfWlmKHQuX2wyM19hPjFlLTEyKXt2YXIgYz0yKnQuX2wyM18yYSszKnQuX2wyM19hKnQuX2wxMl9hK3QuX2wxMl8yYSxkPTMqdC5fbDIzX2EqKHQuX2wyM19hK3QuX2wxMl9hKTthPShhKmMrdC5feDEqdC5fbDIzXzJhLWUqdC5fbDEyXzJhKS9kLHI9KHIqYyt0Ll95MSp0Ll9sMjNfMmEtbip0Ll9sMTJfMmEpL2R9dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG8saSxhLHIsdC5feDIsdC5feTIpfSkodGhpcyx0LGUpfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgRG90PShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGU/bmV3IFNvdCh0LGUpOm5ldyBrb3QodCwwKX1yZXR1cm4gbi5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSguNSk7Y29uc3QgRW90PTFlNCxSb3Q9LjAwMSxBb3Q9RXR0KCIuMn5lIiksVG90PUV0dCgiLjR+ciIpLE5vdD1FdHQoIix+Iik7ZnVuY3Rpb24gem90KHQpe2lmKDA9PT10KXJldHVybiIwIjtjb25zdCBlPU1hdGguYWJzKHQpO3JldHVybiBlPj1Fb3R8fGU8Um90P0FvdCh0KTpUb3QodCl9Y29uc3QgSW90PXtmb3JtYXRUaWNrOnpvdCxmb3JtYXRTaG9ydDp6b3QsZm9ybWF0UmVhZGFibGUodCl7Y29uc3QgZT1NYXRoLmFicyh0KTtyZXR1cm4gZT49RW90fHxlPFJvdD9Bb3QodCk6Tm90KHQpfSxmb3JtYXRMb25nOk5vdH0sSG90PW5ldyBJbnRsLk51bWJlckZvcm1hdCh2b2lkIDAse21heGltdW1GcmFjdGlvbkRpZ2l0czozfSk7ZnVuY3Rpb24gRm90KHQpe3JldHVybiBIb3QuZm9ybWF0KHQpfWNvbnN0IExvdD17Zm9ybWF0VGljazpGb3QsZm9ybWF0U2hvcnQ6Rm90LGZvcm1hdFJlYWRhYmxlOkZvdCxmb3JtYXRMb25nOkZvdH0sQm90PUV0dCgiMC4zfnMiKSxWb3Q9RXR0KCIsLjN+ZiIpO2Z1bmN0aW9uIGpvdCh0KXtjb25zdCBlPU1hdGguYWJzKHQpO3JldHVybiBlPj1Fb3R8fGU8Um90P0JvdCh0KTpWb3QodCl9Y29uc3QgVW90PXtmb3JtYXRUaWNrOmpvdCxmb3JtYXRTaG9ydDpqb3QsZm9ybWF0UmVhZGFibGU6am90LGZvcm1hdExvbmc6am90fSxHb3Q9MzZlNSxXb3Q9ODY0ZTUsWW90PTMxNTM2ZTYscW90PUV0dCgiLjR+Iik7ZnVuY3Rpb24gWm90KHQpe2lmKDA9PT10KXJldHVybiIwIjtsZXQgZT1NYXRoLnNpZ24odCk+MD8iIjoiLSI7Y29uc3Qgbj1NYXRoLmFicyh0KTtyZXR1cm4gZSs9bjwxZTM/YCR7cW90KG4pfSBtc2A6bjw2ZTQ/YCR7cW90KG4vMWUzKX0gc2VjYDpuPEdvdD9gJHtxb3Qobi82ZTQpfSBtaW5gOm48V290P2Ake3FvdChuL0dvdCl9IGhyYDpuPFlvdD9gJHtxb3Qobi9Xb3QpfSBkYXlgOmAke3FvdChuL1lvdCl9IHlyYCxlfWNvbnN0IFhvdD17Zm9ybWF0VGljazpab3QsZm9ybWF0U2hvcnQ6Wm90LGZvcm1hdFJlYWRhYmxlOlpvdCxmb3JtYXRMb25nOlpvdH0sS290PWZvdCgpLnRpY2tGb3JtYXQoKTtsZXQgSm90O2NvbnN0IFFvdD17Zm9ybWF0VGljazp0PT5Lb3QobmV3IERhdGUodCkpLGZvcm1hdFNob3J0OnQ9Pm5ldyBEYXRlKHQpLnRvTG9jYWxlU3RyaW5nKEpvdCx7eWVhcjoibnVtZXJpYyIsbW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIn0pLGZvcm1hdFJlYWRhYmxlOnQ9Pm5ldyBEYXRlKHQpLnRvTG9jYWxlU3RyaW5nKEpvdCx7eWVhcjoibnVtZXJpYyIsbW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIix0aW1lWm9uZU5hbWU6InNob3J0In0pLGZvcm1hdExvbmc6dD0+bmV3IERhdGUodCkudG9Mb2NhbGVTdHJpbmcoSm90LHt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsdGltZVpvbmVOYW1lOiJzaG9ydCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9O2Z1bmN0aW9uICRvdCh0KXtzd2l0Y2godCl7Y2FzZSBKMi5MSU5FQVI6cmV0dXJuIG5ldyB0aXQ7Y2FzZSBKMi5MT0cxMDpyZXR1cm4gbmV3IGVpdDtjYXNlIEoyLlRJTUU6cmV0dXJuIG5ldyBuaXQ7ZGVmYXVsdDp0aHJvdyBuZXcgUmFuZ2VFcnJvcihgU2NhbGVUeXBlICR7dH0gbm90IHN1cHBvcnRlZC5gKX19Y2xhc3MgdGl0e2NvbnN0cnVjdG9yKCl7dGhpcy5kZWZhdWx0Rm9ybWF0dGVyPUlvdH10cmFuc2Zvcm0odCxlLG4pe2NvbnN0W28saV09dCxhPWktbyxbcixzXT1lO3JldHVybiAwPT09YT9yOihzLXIpL2EqKG4tbykrcn1mb3J3YXJkKHQsZSxuKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0odCxlLG4pfXJldmVyc2UodCxlLG4pe3JldHVybiB0aGlzLnRyYW5zZm9ybShlLHQsbil9bmljZURvbWFpbih0KXtsZXRbZSxuXT10O2lmKG48ZSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW5wdXQ6IG1pbiBpcyBsYXJnZXIgdGhhbiBtYXgiKTtpZihuPT09ZSlyZXR1cm4gMD09PWU/Wy0xLDFdOmU8MD9bMiplLDBdOlswLDIqZV07Y29uc3Qgbz1lZXQoKSxpPS4wNSoobi1lK051bWJlci5FUFNJTE9OKSxbYSxyXT1vLmRvbWFpbihbZS1pLG4raV0pLm5pY2UoKS5kb21haW4oKTtyZXR1cm5bYSxyXX10aWNrcyh0LGUpe3JldHVybiBlZXQoKS5kb21haW4odCkudGlja3MoZSl9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCl9fWNsYXNzIGVpdHtjb25zdHJ1Y3Rvcigpe3RoaXMuZGVmYXVsdEZvcm1hdHRlcj1Jb3R9dHJhbnNmb3JtKHQpe3JldHVybiBNYXRoLmxvZzEwKHQ+MD90Ok51bWJlci5NSU5fVkFMVUUpfXVudHJhbnNmb3JtKHQpe3JldHVybiBNYXRoLmV4cCh0L01hdGguTE9HMTBFKX1mb3J3YXJkKHQsZSxuKXtpZihuPD0wKXJldHVybiBlWzBdO2NvbnN0W28saV09dCxbYSxyXT1lLHM9dGhpcy50cmFuc2Zvcm0obyksbD10aGlzLnRyYW5zZm9ybShpKS1zLGM9ci1hO3JldHVybiBuPXRoaXMudHJhbnNmb3JtKG4pLGMvKGwrTnVtYmVyLkVQU0lMT04pKihuLXMpK2F9cmV2ZXJzZSh0LGUsbil7Y29uc3RbbyxpXT10LFthLHJdPWUscz10aGlzLnRyYW5zZm9ybShvKSxsPXRoaXMudHJhbnNmb3JtKGkpO3JldHVybiB0aGlzLnVudHJhbnNmb3JtKChsLXMpLyhyLWErTnVtYmVyLkVQU0lMT04pKihuLWEpK3MpfW5pY2VEb21haW4odCl7Y29uc3RbZSxuXT10O2lmKGU+bil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW5wdXQ6IG1pbiBpcyBsYXJnZXIgdGhhbiBtYXgiKTtjb25zdCBvPU1hdGgubWF4KGUsTnVtYmVyLk1JTl9WQUxVRSksaT1NYXRoLm1heChuLE51bWJlci5NSU5fVkFMVUUpO3JldHVybiBuPD0wP1tOdW1iZXIuTUlOX1ZBTFVFLDFdOltNYXRoLm1heChOdW1iZXIuTUlOX1ZBTFVFLC41Km8pLDIqaV19dGlja3ModCxlKXtjb25zdCBuPXRbMF08PTA/TnVtYmVyLk1JTl9WQUxVRTp0WzBdLG89dFsxXTw9MD9OdW1iZXIuTUlOX1ZBTFVFOnRbMV0saT1wZXQoKS5kb21haW4oW24sb10pLnRpY2tzKGUpO3JldHVybiBpLmxlbmd0aD9pOnR9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCkmJnQ+MH19Y2xhc3Mgbml0e2NvbnN0cnVjdG9yKCl7dGhpcy5zY2FsZT1mb3QoKSx0aGlzLmRlZmF1bHRGb3JtYXR0ZXI9UW90fWZvcndhcmQodCxlLG4pe3JldHVybiB0aGlzLnNjYWxlLmRvbWFpbih0KS5yYW5nZShlKShuKX1yZXZlcnNlKHQsZSxuKXtyZXR1cm4gdGhpcy5zY2FsZS5kb21haW4odCkucmFuZ2UoZSkuaW52ZXJ0KG4pLmdldFRpbWUoKX1uaWNlRG9tYWluKHQpe2NvbnN0W2Usbl09dGhpcy5zY2FsZS5kb21haW4odCkubmljZSgpLmRvbWFpbigpO3JldHVybltlLmdldFRpbWUoKSxuLmdldFRpbWUoKV19dGlja3ModCxlKXtyZXR1cm4gdGhpcy5zY2FsZS5kb21haW4odCkudGlja3MoZSkubWFwKCh0PT50LmdldFRpbWUoKSkpfWlzU2FmZU51bWJlcih0KXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpfX1jb25zdCBvaXQ9Qm9vbGVhbihzZWxmLmhhc093blByb3BlcnR5KCJkb2N1bWVudCIpJiZkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCJ3ZWJnbDIiKSk7ZnVuY3Rpb24gaWl0KCl7cmV0dXJuIHNlbGYuaGFzT3duUHJvcGVydHkoIk9mZnNjcmVlbkNhbnZhcyIpfWZ1bmN0aW9uIGFpdCh0LGUpe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXSE9PWVbbl0pcmV0dXJuITE7cmV0dXJuITB9Y2xhc3Mgcml0e2NvbnN0cnVjdG9yKCl7dGhpcy54U2NhbGU9JG90KEoyLkxJTkVBUiksdGhpcy55U2NhbGU9JG90KEoyLkxJTkVBUiksdGhpcy5kb21Db250YWluZXJSZWN0PXt4OjAsd2lkdGg6MSx5OjAsaGVpZ2h0OjF9LHRoaXMubGFzdFVwZGF0ZWQ9MCx0aGlzLmN1cnJlbnRWaWV3Qm94UmVjdD17eDowLHdpZHRoOjEseTowLGhlaWdodDoxfX1nZXRVcGRhdGVJZGVudGlmaWVyKCl7cmV0dXJuIHRoaXMubGFzdFVwZGF0ZWR9dXBkYXRlSWRlbnRpZmllcigpe3RoaXMubGFzdFVwZGF0ZWQrK31pc1lBeGlzUG9pbnRlZERvd24oKXtyZXR1cm4hMH1zZXRYU2NhbGUodCl7dGhpcy54U2NhbGU9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1zZXRZU2NhbGUodCl7dGhpcy55U2NhbGU9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1nZXRDdXJyZW50Vmlld0JveFJlY3QoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld0JveFJlY3R9c2V0Vmlld0JveFJlY3QodCl7dGhpcy5jdXJyZW50Vmlld0JveFJlY3Q9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1zZXREb21Db250YWluZXJSZWN0KHQpe3RoaXMuZG9tQ29udGFpbmVyUmVjdD10LHRoaXMudXBkYXRlSWRlbnRpZmllcigpfXRyYW5zZm9ybURhdGFUb1VpQ29vcmQodCxlKXtjb25zdCBuPXQsbz0oZnVuY3Rpb24gaSh0KXtyZXR1cm57eDpbdC54LHQueCt0LndpZHRoXSx5Olt0LnksdC55K3QuaGVpZ2h0XX19KSh0aGlzLmN1cnJlbnRWaWV3Qm94UmVjdCk7cmV0dXJuW3RoaXMueFNjYWxlLmZvcndhcmQoby54LFtuLngsbi54K24ud2lkdGhdLGVbMF0pLHRoaXMueVNjYWxlLmZvcndhcmQoby55LHRoaXMuaXNZQXhpc1BvaW50ZWREb3duKCk/W24ueStuLmhlaWdodCxuLnldOltuLnksbi55K24uaGVpZ2h0XSxlWzFdKV19fWZ1bmN0aW9uIHNpdCh0LGUsbixvKXtjb25zdHtjb2xvcjppLHZpc2libGU6YSxvcGFjaXR5OnJ9PW87bGV0IHM9dDtpZihzKXtpZighYSlyZXR1cm4gcy5zdHlsZS5kaXNwbGF5PSJub25lIixzfWVsc2V7aWYoIWEpcmV0dXJuIG51bGw7cz1lKCl9cmV0dXJuIHM9bihzKSxzLnN0eWxlLmRpc3BsYXk9IiIscy5zdHlsZS5zdHJva2U9aSxzLnN0eWxlLm9wYWNpdHk9U3RyaW5nKG51bGwhPXI/cjoxKSxzfWNsYXNzIGxpdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN2Zz10fWZsdXNoKCl7fW9uUmVzaXplKHQpe31kZXN0cm95T2JqZWN0KHQpe3RoaXMuc3ZnLnJlbW92ZUNoaWxkKHQuZG9tKX1zZXRVc2VEYXJrTW9kZSh0KXt9Y3JlYXRlUGF0aERTdHJpbmcodCl7aWYoIXQubGVuZ3RoKXJldHVybiIiO2NvbnN0IGU9bmV3IEFycmF5KHQubGVuZ3RoLzIpO2VbMF09YE0ke3RbMF19LCR7dFsxXX1gO2ZvcihsZXQgbj0xO248dC5sZW5ndGgvMjtuKyspZVtuXT1gTCR7dFsyKm5dfSwke3RbMipuKzFdfWA7cmV0dXJuIGUuam9pbigiIil9Y3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHQsZSxuKXtjb25zdCBvPXNpdChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7dC5zdHlsZS5maWxsPSJub25lIjtjb25zdCBuPXRoaXMuY3JlYXRlUGF0aERTdHJpbmcoZSk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCJkIixuKSx0aGlzLnN2Zy5hcHBlbmRDaGlsZCh0KSx0fSksKG49PntpZighKG51bGw9PXQ/dm9pZCAwOnQuZGF0YSl8fCFhaXQoZSxudWxsPT10P3ZvaWQgMDp0LmRhdGEpKXtjb25zdCB0PXRoaXMuY3JlYXRlUGF0aERTdHJpbmcoZSk7bi5zZXRBdHRyaWJ1dGUoImQiLHQpfXJldHVybiBufSksbik7cmV0dXJuIG51bGw9PT1vP251bGw6KG8uc3R5bGUuc3Ryb2tlV2lkdGg9U3RyaW5nKG4ud2lkdGgpLHtkb206byxkYXRhOmV9KX1jcmVhdGVPclVwZGF0ZVRyaWFuZ2xlT2JqZWN0KHQsZSxuKXtjb25zdHtzaXplOm8sY29sb3I6aX09bixhPW8qTWF0aC5zcXJ0KDMpLzIscj1uZXcgRmxvYXQzMkFycmF5KFtlLngtby8yLGUueSthLzMsZS54K28vMixlLnkrYS8zLGUueCxlLnktMiphLzNdKSxzPXNpdChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7dC5jbGFzc0xpc3QuYWRkKCJ0cmlhbmdsZSIpLHQuc3R5bGUuZmlsbD0ibm9uZSI7Y29uc3QgZT10aGlzLmNyZWF0ZVBhdGhEU3RyaW5nKHIpO3JldHVybiB0LnNldEF0dHJpYnV0ZSgiZCIsZSsiWiIpLHRoaXMuc3ZnLmFwcGVuZENoaWxkKHQpLHR9KSwodD0+e2NvbnN0IGU9dGhpcy5jcmVhdGVQYXRoRFN0cmluZyhyKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoImQiLGUrIloiKSx0fSksbik7cmV0dXJuIG51bGw9PT1zP251bGw6KHMuc3R5bGUuZmlsbD1pLHtkb206cyxkYXRhOnJ9KX1jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0LGUsbil7Y29uc3R7Y29sb3I6byxyYWRpdXM6aX09bixhPXNpdChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJjaXJjbGUiKTtyZXR1cm4gdC5zdHlsZS5maWxsPW8sdC5zZXRBdHRyaWJ1dGUoImN4IixTdHJpbmcoZS54KSksdC5zZXRBdHRyaWJ1dGUoImN5IixTdHJpbmcoZS55KSksdC5zZXRBdHRyaWJ1dGUoInIiLFN0cmluZyhpKSksdGhpcy5zdmcuYXBwZW5kQ2hpbGQodCksdH0pLCh0PT4odC5zdHlsZS5maWxsPW8sdC5zZXRBdHRyaWJ1dGUoImN4IixTdHJpbmcoZS54KSksdC5zZXRBdHRyaWJ1dGUoImN5IixTdHJpbmcoZS55KSksdC5zZXRBdHRyaWJ1dGUoInIiLFN0cmluZyhpKSksdCkpLG4pO3JldHVybiBudWxsPT09YT9udWxsOntkb206YSxkYXRhOmV9fWNyZWF0ZU9yVXBkYXRlVHJhcGV6b2lkT2JqZWN0KHQsZSxuLG8pe2lmKGUueSE9PW4ueSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5wdXQgZXJyb3I6IHN0YXJ0LnkgIT0gZW5kLnkuIik7Y29uc3R7YWx0aXR1ZGU6aSxjb2xvcjphfT1vLHI9Mi9NYXRoLnNxcnQoMykqaSxzPW5ldyBGbG9hdDMyQXJyYXkoW2UueC1yLzIsZS55K2kvMixlLngsZS55LWkvMixuLngsbi55LWkvMixuLngrci8yLG4ueStpLzJdKSxsPXNpdChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7dC5jbGFzc0xpc3QuYWRkKCJ0cmFwZXpvaWQiKSx0LnN0eWxlLmZpbGw9Im5vbmUiO2NvbnN0IGU9dGhpcy5jcmVhdGVQYXRoRFN0cmluZyhzKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoImQiLGUrIloiKSx0aGlzLnN2Zy5hcHBlbmRDaGlsZCh0KSx0fSksKHQ9Pntjb25zdCBlPXRoaXMuY3JlYXRlUGF0aERTdHJpbmcocyk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCJkIixlKyJaIiksdH0pLG8pO3JldHVybiBudWxsPT09bD9udWxsOihsLnN0eWxlLmZpbGw9YSx7ZG9tOmwsZGF0YTpzfSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgMjAxMC0yMDIxIFRocmVlLmpzIEF1dGhvcnMKICAgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKICAgICAqL2NvbnN0IGNpdD0xMDAsZGl0PTMwMSxwaXQ9MzAyLG1pdD0zMDYsdWl0PTFlMyxmaXQ9MTAwMSxnaXQ9MTAwMixoaXQ9MTAwMyxiaXQ9MTAwNix5aXQ9MTAwOCxfaXQ9MTAwOSxDaXQ9MTAxMixNaXQ9MTAxNCx2aXQ9MTAxNSx4aXQ9MTAxNixPaXQ9MTAyMCxQaXQ9MTAyMix3aXQ9MTAyMyxraXQ9MTAyNixTaXQ9MTAyNyxEaXQ9MjMwMCxFaXQ9MjMwMSxSaXQ9MjMwMixBaXQ9MjQwMCxUaXQ9MjQwMSxOaXQ9MjQwMix6aXQ9M2UzLElpdD0zMDAxLEhpdD0zMDA3LEZpdD0zMDAyLExpdD03NjgwLEJpdD0zNTA0NCxWaXQ9MzUwNDgsaml0PSIzMDAgZXMiO2NsYXNzIFVpdHthZGRFdmVudExpc3RlbmVyKHQsZSl7dm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzJiYodGhpcy5fbGlzdGVuZXJzPXt9KTtjb25zdCBuPXRoaXMuX2xpc3RlbmVyczt2b2lkIDA9PT1uW3RdJiYoblt0XT1bXSksLTE9PT1uW3RdLmluZGV4T2YoZSkmJm5bdF0ucHVzaChlKX1oYXNFdmVudExpc3RlbmVyKHQsZSl7aWYodm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzKXJldHVybiExO2NvbnN0IG49dGhpcy5fbGlzdGVuZXJzO3JldHVybiB2b2lkIDAhPT1uW3RdJiYtMSE9PW5bdF0uaW5kZXhPZihlKX1yZW1vdmVFdmVudExpc3RlbmVyKHQsZSl7aWYodm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzKXJldHVybjtjb25zdCBuPXRoaXMuX2xpc3RlbmVyc1t0XTtpZih2b2lkIDAhPT1uKXtjb25zdCB0PW4uaW5kZXhPZihlKTstMSE9PXQmJm4uc3BsaWNlKHQsMSl9fWRpc3BhdGNoRXZlbnQodCl7aWYodm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzKXJldHVybjtjb25zdCBlPXRoaXMuX2xpc3RlbmVyc1t0LnR5cGVdO2lmKHZvaWQgMCE9PWUpe3QudGFyZ2V0PXRoaXM7Y29uc3Qgbj1lLnNsaWNlKDApO2ZvcihsZXQgZT0wLG89bi5sZW5ndGg7ZTxvO2UrKyluW2VdLmNhbGwodGhpcyx0KTt0LnRhcmdldD1udWxsfX19Y29uc3QgR2l0PVtdO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKylHaXRbdF09KHQ8MTY/IjAiOiIiKSt0LnRvU3RyaW5nKDE2KTtjb25zdCBXaXQ9TWF0aC5QSS8xODAsWWl0PTE4MC9NYXRoLlBJO2Z1bmN0aW9uIHFpdCgpe2NvbnN0IHQ9NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDAsZT00Mjk0OTY3Mjk1Kk1hdGgucmFuZG9tKCl8MCxuPTQyOTQ5NjcyOTUqTWF0aC5yYW5kb20oKXwwLG89NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDA7cmV0dXJuKEdpdFsyNTUmdF0rR2l0W3Q+PjgmMjU1XStHaXRbdD4+MTYmMjU1XStHaXRbdD4+MjQmMjU1XSsiLSIrR2l0WzI1NSZlXStHaXRbZT4+OCYyNTVdKyItIitHaXRbZT4+MTYmMTV8NjRdK0dpdFtlPj4yNCYyNTVdKyItIitHaXRbNjMmbnwxMjhdK0dpdFtuPj44JjI1NV0rIi0iK0dpdFtuPj4xNiYyNTVdK0dpdFtuPj4yNCYyNTVdK0dpdFsyNTUmb10rR2l0W28+PjgmMjU1XStHaXRbbz4+MTYmMjU1XStHaXRbbz4+MjQmMjU1XSkudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBaaXQodCxlLG4pe3JldHVybiBNYXRoLm1heChlLE1hdGgubWluKG4sdCkpfWZ1bmN0aW9uIFhpdCh0LGUsbil7cmV0dXJuKDEtbikqdCtuKmV9ZnVuY3Rpb24gS2l0KHQpe3JldHVybiAwPT0odCZ0LTEpJiYwIT09dH1mdW5jdGlvbiBKaXQodCl7cmV0dXJuIE1hdGgucG93KDIsTWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMikpfWNsYXNzIFFpdHtjb25zdHJ1Y3Rvcih0PTAsZT0wKXt0aGlzLng9dCx0aGlzLnk9ZX1nZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy54fXNldCB3aWR0aCh0KXt0aGlzLng9dH1nZXQgaGVpZ2h0KCl7cmV0dXJuIHRoaXMueX1zZXQgaGVpZ2h0KHQpe3RoaXMueT10fXNldCh0LGUpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9ZSx0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PXQsdGhpc31zZXRYKHQpe3JldHVybiB0aGlzLng9dCx0aGlzfXNldFkodCl7cmV0dXJuIHRoaXMueT10LHRoaXN9c2V0Q29tcG9uZW50KHQsZSl7c3dpdGNoKHQpe2Nhc2UgMDp0aGlzLng9ZTticmVhaztjYXNlIDE6dGhpcy55PWU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX1yZXR1cm4gdGhpc31nZXRDb21wb25lbnQodCl7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdGhpcy54O2Nhc2UgMTpyZXR1cm4gdGhpcy55O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMueCx0aGlzLnkpfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzfWFkZCh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5hZGQoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5hZGRWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmFkZFZlY3RvcnModCxlKSk6KHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXMpfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kz10LHRoaXMueSs9dCx0aGlzfWFkZFZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCtlLngsdGhpcy55PXQueStlLnksdGhpc31hZGRTY2FsZWRWZWN0b3IodCxlKXtyZXR1cm4gdGhpcy54Kz10LngqZSx0aGlzLnkrPXQueSplLHRoaXN9c3ViKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuc3ViVmVjdG9ycyh0LGUpKToodGhpcy54LT10LngsdGhpcy55LT10LnksdGhpcyl9c3ViU2NhbGFyKHQpe3JldHVybiB0aGlzLngtPXQsdGhpcy55LT10LHRoaXN9c3ViVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54LWUueCx0aGlzLnk9dC55LWUueSx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLngqPXQueCx0aGlzLnkqPXQueSx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLngqPXQsdGhpcy55Kj10LHRoaXN9ZGl2aWRlKHQpe3JldHVybiB0aGlzLngvPXQueCx0aGlzLnkvPXQueSx0aGlzfWRpdmlkZVNjYWxhcih0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVNjYWxhcigxL3QpfWFwcGx5TWF0cml4Myh0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxvPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1vWzBdKmUrb1szXSpuK29bNl0sdGhpcy55PW9bMV0qZStvWzRdKm4rb1s3XSx0aGlzfW1pbih0KXtyZXR1cm4gdGhpcy54PU1hdGgubWluKHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1pbih0aGlzLnksdC55KSx0aGlzfW1heCh0KXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1heCh0aGlzLnksdC55KSx0aGlzfWNsYW1wKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LngsTWF0aC5taW4oZS54LHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LnksTWF0aC5taW4oZS55LHRoaXMueSkpLHRoaXN9Y2xhbXBTY2FsYXIodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueSkpLHRoaXN9Y2xhbXBMZW5ndGgodCxlKXtjb25zdCBuPXRoaXMubGVuZ3RoKCk7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKG58fDEpLm11bHRpcGx5U2NhbGFyKE1hdGgubWF4KHQsTWF0aC5taW4oZSxuKSkpfWZsb29yKCl7cmV0dXJuIHRoaXMueD1NYXRoLmZsb29yKHRoaXMueCksdGhpcy55PU1hdGguZmxvb3IodGhpcy55KSx0aGlzfWNlaWwoKXtyZXR1cm4gdGhpcy54PU1hdGguY2VpbCh0aGlzLngpLHRoaXMueT1NYXRoLmNlaWwodGhpcy55KSx0aGlzfXJvdW5kKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJvdW5kKHRoaXMueCksdGhpcy55PU1hdGgucm91bmQodGhpcy55KSx0aGlzfXJvdW5kVG9aZXJvKCl7cmV0dXJuIHRoaXMueD10aGlzLng8MD9NYXRoLmNlaWwodGhpcy54KTpNYXRoLmZsb29yKHRoaXMueCksdGhpcy55PXRoaXMueTwwP01hdGguY2VpbCh0aGlzLnkpOk1hdGguZmxvb3IodGhpcy55KSx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLng9LXRoaXMueCx0aGlzLnk9LXRoaXMueSx0aGlzfWRvdCh0KXtyZXR1cm4gdGhpcy54KnQueCt0aGlzLnkqdC55fWNyb3NzKHQpe3JldHVybiB0aGlzLngqdC55LXRoaXMueSp0Lnh9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55fWxlbmd0aCgpe3JldHVybiBNYXRoLnNxcnQodGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55KX1tYW5oYXR0YW5MZW5ndGgoKXtyZXR1cm4gTWF0aC5hYnModGhpcy54KStNYXRoLmFicyh0aGlzLnkpfW5vcm1hbGl6ZSgpe3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcih0aGlzLmxlbmd0aCgpfHwxKX1hbmdsZSgpe3JldHVybiBNYXRoLmF0YW4yKC10aGlzLnksLXRoaXMueCkrTWF0aC5QSX1kaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLnNxcnQodGhpcy5kaXN0YW5jZVRvU3F1YXJlZCh0KSl9ZGlzdGFuY2VUb1NxdWFyZWQodCl7Y29uc3QgZT10aGlzLngtdC54LG49dGhpcy55LXQueTtyZXR1cm4gZSplK24qbn1tYW5oYXR0YW5EaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLmFicyh0aGlzLngtdC54KStNYXRoLmFicyh0aGlzLnktdC55KX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LGUpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSplLHRoaXMueSs9KHQueS10aGlzLnkpKmUsdGhpc31sZXJwVmVjdG9ycyh0LGUsbil7cmV0dXJuIHRoaXMueD10LngrKGUueC10LngpKm4sdGhpcy55PXQueSsoZS55LXQueSkqbix0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnl9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy54PXRbZV0sdGhpcy55PXRbZSsxXSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMueCx0W2UrMV09dGhpcy55LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil7cmV0dXJuIHZvaWQgMCE9PW4mJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgoZSksdGhpcy55PXQuZ2V0WShlKSx0aGlzfXJvdGF0ZUFyb3VuZCh0LGUpe2NvbnN0IG49TWF0aC5jb3MoZSksbz1NYXRoLnNpbihlKSxpPXRoaXMueC10LngsYT10aGlzLnktdC55O3JldHVybiB0aGlzLng9aSpuLWEqbyt0LngsdGhpcy55PWkqbythKm4rdC55LHRoaXN9cmFuZG9tKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJhbmRvbSgpLHRoaXMueT1NYXRoLnJhbmRvbSgpLHRoaXN9fVFpdC5wcm90b3R5cGUuaXNWZWN0b3IyPSEwO2NsYXNzICRpdHtjb25zdHJ1Y3Rvcigpe3RoaXMuZWxlbWVudHM9WzEsMCwwLDAsMSwwLDAsMCwxXSxhcmd1bWVudHMubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDM6IHRoZSBjb25zdHJ1Y3RvciBubyBsb25nZXIgcmVhZHMgYXJndW1lbnRzLiB1c2UgLnNldCgpIGluc3RlYWQuIil9c2V0KHQsZSxuLG8saSxhLHIscyxsKXtjb25zdCBjPXRoaXMuZWxlbWVudHM7cmV0dXJuIGNbMF09dCxjWzFdPW8sY1syXT1yLGNbM109ZSxjWzRdPWksY1s1XT1zLGNbNl09bixjWzddPWEsY1s4XT1sLHRoaXN9aWRlbnRpdHkoKXtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwxLDAsMCwwLDEpLHRoaXN9Y29weSh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzO3JldHVybiBlWzBdPW5bMF0sZVsxXT1uWzFdLGVbMl09blsyXSxlWzNdPW5bM10sZVs0XT1uWzRdLGVbNV09bls1XSxlWzZdPW5bNl0sZVs3XT1uWzddLGVbOF09bls4XSx0aGlzfWV4dHJhY3RCYXNpcyh0LGUsbil7cmV0dXJuIHQuc2V0RnJvbU1hdHJpeDNDb2x1bW4odGhpcywwKSxlLnNldEZyb21NYXRyaXgzQ29sdW1uKHRoaXMsMSksbi5zZXRGcm9tTWF0cml4M0NvbHVtbih0aGlzLDIpLHRoaXN9c2V0RnJvbU1hdHJpeDQodCl7Y29uc3QgZT10LmVsZW1lbnRzO3JldHVybiB0aGlzLnNldChlWzBdLGVbNF0sZVs4XSxlWzFdLGVbNV0sZVs5XSxlWzJdLGVbNl0sZVsxMF0pLHRoaXN9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0aGlzLHQpfXByZW11bHRpcGx5KHQpe3JldHVybiB0aGlzLm11bHRpcGx5TWF0cmljZXModCx0aGlzKX1tdWx0aXBseU1hdHJpY2VzKHQsZSl7Y29uc3Qgbj10LmVsZW1lbnRzLG89ZS5lbGVtZW50cyxpPXRoaXMuZWxlbWVudHMsYT1uWzBdLHI9blszXSxzPW5bNl0sbD1uWzFdLGM9bls0XSxkPW5bN10scD1uWzJdLG09bls1XSx1PW5bOF0sZj1vWzBdLGc9b1szXSxoPW9bNl0sYj1vWzFdLHk9b1s0XSxfPW9bN10sQz1vWzJdLE09b1s1XSx2PW9bOF07cmV0dXJuIGlbMF09YSpmK3IqYitzKkMsaVszXT1hKmcrcip5K3MqTSxpWzZdPWEqaCtyKl8rcyp2LGlbMV09bCpmK2MqYitkKkMsaVs0XT1sKmcrYyp5K2QqTSxpWzddPWwqaCtjKl8rZCp2LGlbMl09cCpmK20qYit1KkMsaVs1XT1wKmcrbSp5K3UqTSxpWzhdPXAqaCttKl8rdSp2LHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzO3JldHVybiBlWzBdKj10LGVbM10qPXQsZVs2XSo9dCxlWzFdKj10LGVbNF0qPXQsZVs3XSo9dCxlWzJdKj10LGVbNV0qPXQsZVs4XSo9dCx0aGlzfWRldGVybWluYW50KCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxuPXRbMV0sbz10WzJdLGk9dFszXSxhPXRbNF0scj10WzVdLHM9dFs2XSxsPXRbN10sYz10WzhdO3JldHVybiBlKmEqYy1lKnIqbC1uKmkqYytuKnIqcytvKmkqbC1vKmEqc31pbnZlcnQoKXtjb25zdCB0PXRoaXMuZWxlbWVudHMsZT10WzBdLG49dFsxXSxvPXRbMl0saT10WzNdLGE9dFs0XSxyPXRbNV0scz10WzZdLGw9dFs3XSxjPXRbOF0sZD1jKmEtcipsLHA9cipzLWMqaSxtPWwqaS1hKnMsdT1lKmQrbipwK28qbTtpZigwPT09dSlyZXR1cm4gdGhpcy5zZXQoMCwwLDAsMCwwLDAsMCwwLDApO2NvbnN0IGY9MS91O3JldHVybiB0WzBdPWQqZix0WzFdPShvKmwtYypuKSpmLHRbMl09KHIqbi1vKmEpKmYsdFszXT1wKmYsdFs0XT0oYyplLW8qcykqZix0WzVdPShvKmktciplKSpmLHRbNl09bSpmLHRbN109KG4qcy1sKmUpKmYsdFs4XT0oYSplLW4qaSkqZix0aGlzfXRyYW5zcG9zZSgpe2xldCB0O2NvbnN0IGU9dGhpcy5lbGVtZW50cztyZXR1cm4gdD1lWzFdLGVbMV09ZVszXSxlWzNdPXQsdD1lWzJdLGVbMl09ZVs2XSxlWzZdPXQsdD1lWzVdLGVbNV09ZVs3XSxlWzddPXQsdGhpc31nZXROb3JtYWxNYXRyaXgodCl7cmV0dXJuIHRoaXMuc2V0RnJvbU1hdHJpeDQodCkuaW52ZXJ0KCkudHJhbnNwb3NlKCl9dHJhbnNwb3NlSW50b0FycmF5KHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cztyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVszXSx0WzJdPWVbNl0sdFszXT1lWzFdLHRbNF09ZVs0XSx0WzVdPWVbN10sdFs2XT1lWzJdLHRbN109ZVs1XSx0WzhdPWVbOF0sdGhpc31zZXRVdlRyYW5zZm9ybSh0LGUsbixvLGksYSxyKXtjb25zdCBzPU1hdGguY29zKGkpLGw9TWF0aC5zaW4oaSk7cmV0dXJuIHRoaXMuc2V0KG4qcyxuKmwsLW4qKHMqYStsKnIpK2ErdCwtbypsLG8qcywtbyooLWwqYStzKnIpK3IrZSwwLDAsMSksdGhpc31zY2FsZSh0LGUpe2NvbnN0IG49dGhpcy5lbGVtZW50cztyZXR1cm4gblswXSo9dCxuWzNdKj10LG5bNl0qPXQsblsxXSo9ZSxuWzRdKj1lLG5bN10qPWUsdGhpc31yb3RhdGUodCl7Y29uc3QgZT1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpLG89dGhpcy5lbGVtZW50cyxpPW9bMF0sYT1vWzNdLHI9b1s2XSxzPW9bMV0sbD1vWzRdLGM9b1s3XTtyZXR1cm4gb1swXT1lKmkrbipzLG9bM109ZSphK24qbCxvWzZdPWUqcituKmMsb1sxXT0tbippK2UqcyxvWzRdPS1uKmErZSpsLG9bN109LW4qcitlKmMsdGhpc310cmFuc2xhdGUodCxlKXtjb25zdCBuPXRoaXMuZWxlbWVudHM7cmV0dXJuIG5bMF0rPXQqblsyXSxuWzNdKz10Km5bNV0sbls2XSs9dCpuWzhdLG5bMV0rPWUqblsyXSxuWzRdKz1lKm5bNV0sbls3XSs9ZSpuWzhdLHRoaXN9ZXF1YWxzKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7Zm9yKGxldCB0PTA7dDw5O3QrKylpZihlW3RdIT09blt0XSlyZXR1cm4hMTtyZXR1cm4hMH1mcm9tQXJyYXkodCxlPTApe2ZvcihsZXQgbj0wO248OTtuKyspdGhpcy5lbGVtZW50c1tuXT10W24rZV07cmV0dXJuIHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7Y29uc3Qgbj10aGlzLmVsZW1lbnRzO3JldHVybiB0W2VdPW5bMF0sdFtlKzFdPW5bMV0sdFtlKzJdPW5bMl0sdFtlKzNdPW5bM10sdFtlKzRdPW5bNF0sdFtlKzVdPW5bNV0sdFtlKzZdPW5bNl0sdFtlKzddPW5bN10sdFtlKzhdPW5bOF0sdH1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuZnJvbUFycmF5KHRoaXMuZWxlbWVudHMpfX1sZXQgdGF0OyRpdC5wcm90b3R5cGUuaXNNYXRyaXgzPSEwO2NsYXNzIGVhdHtzdGF0aWMgZ2V0RGF0YVVSTCh0KXtpZigvXmRhdGE6L2kudGVzdCh0LnNyYykpcmV0dXJuIHQuc3JjO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQpcmV0dXJuIHQuc3JjO2xldCBlO2lmKHQgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudCllPXQ7ZWxzZXt2b2lkIDA9PT10YXQmJih0YXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiY2FudmFzIikpLHRhdC53aWR0aD10LndpZHRoLHRhdC5oZWlnaHQ9dC5oZWlnaHQ7Y29uc3Qgbj10YXQuZ2V0Q29udGV4dCgiMmQiKTt0IGluc3RhbmNlb2YgSW1hZ2VEYXRhP24ucHV0SW1hZ2VEYXRhKHQsMCwwKTpuLmRyYXdJbWFnZSh0LDAsMCx0LndpZHRoLHQuaGVpZ2h0KSxlPXRhdH1yZXR1cm4gZS53aWR0aD4yMDQ4fHxlLmhlaWdodD4yMDQ4Pyhjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlVXRpbHMuZ2V0RGF0YVVSTDogSW1hZ2UgY29udmVydGVkIHRvIGpwZyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyIsdCksZS50b0RhdGFVUkwoImltYWdlL2pwZWciLC42KSk6ZS50b0RhdGFVUkwoImltYWdlL3BuZyIpfX1sZXQgbmF0PTA7Y2xhc3Mgb2F0IGV4dGVuZHMgVWl0e2NvbnN0cnVjdG9yKHQ9b2F0LkRFRkFVTFRfSU1BR0UsZT1vYXQuREVGQVVMVF9NQVBQSU5HLG49MTAwMSxvPTEwMDEsaT0xMDA2LGE9MTAwOCxyPTEwMjMscz0xMDA5LGw9MSxjPTNlMyl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTpuYXQrK30pLHRoaXMudXVpZD1xaXQoKSx0aGlzLm5hbWU9IiIsdGhpcy5pbWFnZT10LHRoaXMubWlwbWFwcz1bXSx0aGlzLm1hcHBpbmc9ZSx0aGlzLndyYXBTPW4sdGhpcy53cmFwVD1vLHRoaXMubWFnRmlsdGVyPWksdGhpcy5taW5GaWx0ZXI9YSx0aGlzLmFuaXNvdHJvcHk9bCx0aGlzLmZvcm1hdD1yLHRoaXMuaW50ZXJuYWxGb3JtYXQ9bnVsbCx0aGlzLnR5cGU9cyx0aGlzLm9mZnNldD1uZXcgUWl0KDAsMCksdGhpcy5yZXBlYXQ9bmV3IFFpdCgxLDEpLHRoaXMuY2VudGVyPW5ldyBRaXQoMCwwKSx0aGlzLnJvdGF0aW9uPTAsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSEwLHRoaXMubWF0cml4PW5ldyAkaXQsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITAsdGhpcy5wcmVtdWx0aXBseUFscGhhPSExLHRoaXMuZmxpcFk9ITAsdGhpcy51bnBhY2tBbGlnbm1lbnQ9NCx0aGlzLmVuY29kaW5nPWMsdGhpcy52ZXJzaW9uPTAsdGhpcy5vblVwZGF0ZT1udWxsLHRoaXMuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSExfXVwZGF0ZU1hdHJpeCgpe3RoaXMubWF0cml4LnNldFV2VHJhbnNmb3JtKHRoaXMub2Zmc2V0LngsdGhpcy5vZmZzZXQueSx0aGlzLnJlcGVhdC54LHRoaXMucmVwZWF0LnksdGhpcy5yb3RhdGlvbix0aGlzLmNlbnRlci54LHRoaXMuY2VudGVyLnkpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMubmFtZT10Lm5hbWUsdGhpcy5pbWFnZT10LmltYWdlLHRoaXMubWlwbWFwcz10Lm1pcG1hcHMuc2xpY2UoMCksdGhpcy5tYXBwaW5nPXQubWFwcGluZyx0aGlzLndyYXBTPXQud3JhcFMsdGhpcy53cmFwVD10LndyYXBULHRoaXMubWFnRmlsdGVyPXQubWFnRmlsdGVyLHRoaXMubWluRmlsdGVyPXQubWluRmlsdGVyLHRoaXMuYW5pc290cm9weT10LmFuaXNvdHJvcHksdGhpcy5mb3JtYXQ9dC5mb3JtYXQsdGhpcy5pbnRlcm5hbEZvcm1hdD10LmludGVybmFsRm9ybWF0LHRoaXMudHlwZT10LnR5cGUsdGhpcy5vZmZzZXQuY29weSh0Lm9mZnNldCksdGhpcy5yZXBlYXQuY29weSh0LnJlcGVhdCksdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5yb3RhdGlvbj10LnJvdGF0aW9uLHRoaXMubWF0cml4QXV0b1VwZGF0ZT10Lm1hdHJpeEF1dG9VcGRhdGUsdGhpcy5tYXRyaXguY29weSh0Lm1hdHJpeCksdGhpcy5nZW5lcmF0ZU1pcG1hcHM9dC5nZW5lcmF0ZU1pcG1hcHMsdGhpcy5wcmVtdWx0aXBseUFscGhhPXQucHJlbXVsdGlwbHlBbHBoYSx0aGlzLmZsaXBZPXQuZmxpcFksdGhpcy51bnBhY2tBbGlnbm1lbnQ9dC51bnBhY2tBbGlnbm1lbnQsdGhpcy5lbmNvZGluZz10LmVuY29kaW5nLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9dm9pZCAwPT09dHx8InN0cmluZyI9PXR5cGVvZiB0O2lmKCFlJiZ2b2lkIDAhPT10LnRleHR1cmVzW3RoaXMudXVpZF0pcmV0dXJuIHQudGV4dHVyZXNbdGhpcy51dWlkXTtjb25zdCBuPXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiVGV4dHVyZSIsZ2VuZXJhdG9yOiJUZXh0dXJlLnRvSlNPTiJ9LHV1aWQ6dGhpcy51dWlkLG5hbWU6dGhpcy5uYW1lLG1hcHBpbmc6dGhpcy5tYXBwaW5nLHJlcGVhdDpbdGhpcy5yZXBlYXQueCx0aGlzLnJlcGVhdC55XSxvZmZzZXQ6W3RoaXMub2Zmc2V0LngsdGhpcy5vZmZzZXQueV0sY2VudGVyOlt0aGlzLmNlbnRlci54LHRoaXMuY2VudGVyLnldLHJvdGF0aW9uOnRoaXMucm90YXRpb24sd3JhcDpbdGhpcy53cmFwUyx0aGlzLndyYXBUXSxmb3JtYXQ6dGhpcy5mb3JtYXQsdHlwZTp0aGlzLnR5cGUsZW5jb2Rpbmc6dGhpcy5lbmNvZGluZyxtaW5GaWx0ZXI6dGhpcy5taW5GaWx0ZXIsbWFnRmlsdGVyOnRoaXMubWFnRmlsdGVyLGFuaXNvdHJvcHk6dGhpcy5hbmlzb3Ryb3B5LGZsaXBZOnRoaXMuZmxpcFkscHJlbXVsdGlwbHlBbHBoYTp0aGlzLnByZW11bHRpcGx5QWxwaGEsdW5wYWNrQWxpZ25tZW50OnRoaXMudW5wYWNrQWxpZ25tZW50fTtpZih2b2lkIDAhPT10aGlzLmltYWdlKXtjb25zdCBvPXRoaXMuaW1hZ2U7aWYodm9pZCAwPT09by51dWlkJiYoby51dWlkPXFpdCgpKSwhZSYmdm9pZCAwPT09dC5pbWFnZXNbby51dWlkXSl7bGV0IGU7aWYoQXJyYXkuaXNBcnJheShvKSl7ZT1bXTtmb3IobGV0IHQ9MCxuPW8ubGVuZ3RoO3Q8bjt0KyspZS5wdXNoKGlhdChvW3RdLmlzRGF0YVRleHR1cmU/b1t0XS5pbWFnZTpvW3RdKSl9ZWxzZSBlPWlhdChvKTt0LmltYWdlc1tvLnV1aWRdPXt1dWlkOm8udXVpZCx1cmw6ZX19bi5pbWFnZT1vLnV1aWR9cmV0dXJuIGV8fCh0LnRleHR1cmVzW3RoaXMudXVpZF09biksbn1kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfXRyYW5zZm9ybVV2KHQpe2lmKDMwMCE9PXRoaXMubWFwcGluZylyZXR1cm4gdDtpZih0LmFwcGx5TWF0cml4Myh0aGlzLm1hdHJpeCksdC54PDB8fHQueD4xKXN3aXRjaCh0aGlzLndyYXBTKXtjYXNlIHVpdDp0Lng9dC54LU1hdGguZmxvb3IodC54KTticmVhaztjYXNlIGZpdDp0Lng9dC54PDA/MDoxO2JyZWFrO2Nhc2UgZ2l0OnQueD0xPT09TWF0aC5hYnMoTWF0aC5mbG9vcih0LngpJTIpP01hdGguY2VpbCh0LngpLXQueDp0LngtTWF0aC5mbG9vcih0LngpfWlmKHQueTwwfHx0Lnk+MSlzd2l0Y2godGhpcy53cmFwVCl7Y2FzZSB1aXQ6dC55PXQueS1NYXRoLmZsb29yKHQueSk7YnJlYWs7Y2FzZSBmaXQ6dC55PXQueTwwPzA6MTticmVhaztjYXNlIGdpdDp0Lnk9MT09PU1hdGguYWJzKE1hdGguZmxvb3IodC55KSUyKT9NYXRoLmNlaWwodC55KS10Lnk6dC55LU1hdGguZmxvb3IodC55KX1yZXR1cm4gdGhpcy5mbGlwWSYmKHQueT0xLXQueSksdH1zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK319ZnVuY3Rpb24gaWF0KHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTEltYWdlRWxlbWVudCYmdCBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnR8fCJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBJbWFnZUJpdG1hcCYmdCBpbnN0YW5jZW9mIEltYWdlQml0bWFwP2VhdC5nZXREYXRhVVJMKHQpOnQuZGF0YT97ZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LmRhdGEpLHdpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVpZ2h0LHR5cGU6dC5kYXRhLmNvbnN0cnVjdG9yLm5hbWV9Oihjb25zb2xlLndhcm4oIlRIUkVFLlRleHR1cmU6IFVuYWJsZSB0byBzZXJpYWxpemUgVGV4dHVyZS4iKSx7fSl9b2F0LkRFRkFVTFRfSU1BR0U9dm9pZCAwLG9hdC5ERUZBVUxUX01BUFBJTkc9MzAwLG9hdC5wcm90b3R5cGUuaXNUZXh0dXJlPSEwO2NsYXNzIGFhdHtjb25zdHJ1Y3Rvcih0PTAsZT0wLG49MCxvPTEpe3RoaXMueD10LHRoaXMueT1lLHRoaXMuej1uLHRoaXMudz1vfWdldCB3aWR0aCgpe3JldHVybiB0aGlzLnp9c2V0IHdpZHRoKHQpe3RoaXMuej10fWdldCBoZWlnaHQoKXtyZXR1cm4gdGhpcy53fXNldCBoZWlnaHQodCl7dGhpcy53PXR9c2V0KHQsZSxuLG8pe3JldHVybiB0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9bix0aGlzLnc9byx0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PXQsdGhpcy56PXQsdGhpcy53PXQsdGhpc31zZXRYKHQpe3JldHVybiB0aGlzLng9dCx0aGlzfXNldFkodCl7cmV0dXJuIHRoaXMueT10LHRoaXN9c2V0Wih0KXtyZXR1cm4gdGhpcy56PXQsdGhpc31zZXRXKHQpe3JldHVybiB0aGlzLnc9dCx0aGlzfXNldENvbXBvbmVudCh0LGUpe3N3aXRjaCh0KXtjYXNlIDA6dGhpcy54PWU7YnJlYWs7Y2FzZSAxOnRoaXMueT1lO2JyZWFrO2Nhc2UgMjp0aGlzLno9ZTticmVhaztjYXNlIDM6dGhpcy53PWU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX1yZXR1cm4gdGhpc31nZXRDb21wb25lbnQodCl7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdGhpcy54O2Nhc2UgMTpyZXR1cm4gdGhpcy55O2Nhc2UgMjpyZXR1cm4gdGhpcy56O2Nhc2UgMzpyZXR1cm4gdGhpcy53O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMueCx0aGlzLnksdGhpcy56LHRoaXMudyl9Y29weSh0KXtyZXR1cm4gdGhpcy54PXQueCx0aGlzLnk9dC55LHRoaXMuej10LnosdGhpcy53PXZvaWQgMCE9PXQudz90Lnc6MSx0aGlzfWFkZCh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5hZGQoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5hZGRWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmFkZFZlY3RvcnModCxlKSk6KHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXMueis9dC56LHRoaXMudys9dC53LHRoaXMpfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kz10LHRoaXMueSs9dCx0aGlzLnorPXQsdGhpcy53Kz10LHRoaXN9YWRkVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54K2UueCx0aGlzLnk9dC55K2UueSx0aGlzLno9dC56K2Uueix0aGlzLnc9dC53K2Uudyx0aGlzfWFkZFNjYWxlZFZlY3Rvcih0LGUpe3JldHVybiB0aGlzLngrPXQueCplLHRoaXMueSs9dC55KmUsdGhpcy56Kz10LnoqZSx0aGlzLncrPXQudyplLHRoaXN9c3ViKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuc3ViVmVjdG9ycyh0LGUpKToodGhpcy54LT10LngsdGhpcy55LT10LnksdGhpcy56LT10LnosdGhpcy53LT10LncsdGhpcyl9c3ViU2NhbGFyKHQpe3JldHVybiB0aGlzLngtPXQsdGhpcy55LT10LHRoaXMuei09dCx0aGlzLnctPXQsdGhpc31zdWJWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngtZS54LHRoaXMueT10LnktZS55LHRoaXMuej10LnotZS56LHRoaXMudz10LnctZS53LHRoaXN9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMueCo9dC54LHRoaXMueSo9dC55LHRoaXMueio9dC56LHRoaXMudyo9dC53LHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7cmV0dXJuIHRoaXMueCo9dCx0aGlzLnkqPXQsdGhpcy56Kj10LHRoaXMudyo9dCx0aGlzfWFwcGx5TWF0cml4NCh0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxvPXRoaXMueixpPXRoaXMudyxhPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1hWzBdKmUrYVs0XSpuK2FbOF0qbythWzEyXSppLHRoaXMueT1hWzFdKmUrYVs1XSpuK2FbOV0qbythWzEzXSppLHRoaXMuej1hWzJdKmUrYVs2XSpuK2FbMTBdKm8rYVsxNF0qaSx0aGlzLnc9YVszXSplK2FbN10qbithWzExXSpvK2FbMTVdKmksdGhpc31kaXZpZGVTY2FsYXIodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlTY2FsYXIoMS90KX1zZXRBeGlzQW5nbGVGcm9tUXVhdGVybmlvbih0KXt0aGlzLnc9MipNYXRoLmFjb3ModC53KTtjb25zdCBlPU1hdGguc3FydCgxLXQudyp0LncpO3JldHVybiBlPDFlLTQ/KHRoaXMueD0xLHRoaXMueT0wLHRoaXMuej0wKToodGhpcy54PXQueC9lLHRoaXMueT10LnkvZSx0aGlzLno9dC56L2UpLHRoaXN9c2V0QXhpc0FuZ2xlRnJvbVJvdGF0aW9uTWF0cml4KHQpe2xldCBlLG4sbyxpO2NvbnN0IGE9LjAxLHI9LjEscz10LmVsZW1lbnRzLGw9c1swXSxjPXNbNF0sZD1zWzhdLHA9c1sxXSxtPXNbNV0sdT1zWzldLGY9c1syXSxnPXNbNl0saD1zWzEwXTtpZihNYXRoLmFicyhjLXApPGEmJk1hdGguYWJzKGQtZik8YSYmTWF0aC5hYnModS1nKTxhKXtpZihNYXRoLmFicyhjK3ApPHImJk1hdGguYWJzKGQrZik8ciYmTWF0aC5hYnModStnKTxyJiZNYXRoLmFicyhsK20raC0zKTxyKXJldHVybiB0aGlzLnNldCgxLDAsMCwwKSx0aGlzO2U9TWF0aC5QSTtjb25zdCB0PShsKzEpLzIscz0obSsxKS8yLGI9KGgrMSkvMix5PShjK3ApLzQsXz0oZCtmKS80LEM9KHUrZykvNDtyZXR1cm4gdD5zJiZ0PmI/dDxhPyhuPTAsbz0uNzA3MTA2NzgxLGk9LjcwNzEwNjc4MSk6KG49TWF0aC5zcXJ0KHQpLG89eS9uLGk9Xy9uKTpzPmI/czxhPyhuPS43MDcxMDY3ODEsbz0wLGk9LjcwNzEwNjc4MSk6KG89TWF0aC5zcXJ0KHMpLG49eS9vLGk9Qy9vKTpiPGE/KG49LjcwNzEwNjc4MSxvPS43MDcxMDY3ODEsaT0wKTooaT1NYXRoLnNxcnQoYiksbj1fL2ksbz1DL2kpLHRoaXMuc2V0KG4sbyxpLGUpLHRoaXN9bGV0IGI9TWF0aC5zcXJ0KChnLXUpKihnLXUpKyhkLWYpKihkLWYpKyhwLWMpKihwLWMpKTtyZXR1cm4gTWF0aC5hYnMoYik8LjAwMSYmKGI9MSksdGhpcy54PShnLXUpL2IsdGhpcy55PShkLWYpL2IsdGhpcy56PShwLWMpL2IsdGhpcy53PU1hdGguYWNvcygobCttK2gtMSkvMiksdGhpc31taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpcy56PU1hdGgubWluKHRoaXMueix0LnopLHRoaXMudz1NYXRoLm1pbih0aGlzLncsdC53KSx0aGlzfW1heCh0KXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1heCh0aGlzLnksdC55KSx0aGlzLno9TWF0aC5tYXgodGhpcy56LHQueiksdGhpcy53PU1hdGgubWF4KHRoaXMudyx0LncpLHRoaXN9Y2xhbXAodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQueCxNYXRoLm1pbihlLngsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQueSxNYXRoLm1pbihlLnksdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQueixNYXRoLm1pbihlLnosdGhpcy56KSksdGhpcy53PU1hdGgubWF4KHQudyxNYXRoLm1pbihlLncsdGhpcy53KSksdGhpc31jbGFtcFNjYWxhcih0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnopKSx0aGlzLnc9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMudykpLHRoaXN9Y2xhbXBMZW5ndGgodCxlKXtjb25zdCBuPXRoaXMubGVuZ3RoKCk7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKG58fDEpLm11bHRpcGx5U2NhbGFyKE1hdGgubWF4KHQsTWF0aC5taW4oZSxuKSkpfWZsb29yKCl7cmV0dXJuIHRoaXMueD1NYXRoLmZsb29yKHRoaXMueCksdGhpcy55PU1hdGguZmxvb3IodGhpcy55KSx0aGlzLno9TWF0aC5mbG9vcih0aGlzLnopLHRoaXMudz1NYXRoLmZsb29yKHRoaXMudyksdGhpc31jZWlsKCl7cmV0dXJuIHRoaXMueD1NYXRoLmNlaWwodGhpcy54KSx0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSksdGhpcy56PU1hdGguY2VpbCh0aGlzLnopLHRoaXMudz1NYXRoLmNlaWwodGhpcy53KSx0aGlzfXJvdW5kKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJvdW5kKHRoaXMueCksdGhpcy55PU1hdGgucm91bmQodGhpcy55KSx0aGlzLno9TWF0aC5yb3VuZCh0aGlzLnopLHRoaXMudz1NYXRoLnJvdW5kKHRoaXMudyksdGhpc31yb3VuZFRvWmVybygpe3JldHVybiB0aGlzLng9dGhpcy54PDA/TWF0aC5jZWlsKHRoaXMueCk6TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT10aGlzLnk8MD9NYXRoLmNlaWwodGhpcy55KTpNYXRoLmZsb29yKHRoaXMueSksdGhpcy56PXRoaXMuejwwP01hdGguY2VpbCh0aGlzLnopOk1hdGguZmxvb3IodGhpcy56KSx0aGlzLnc9dGhpcy53PDA/TWF0aC5jZWlsKHRoaXMudyk6TWF0aC5mbG9vcih0aGlzLncpLHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMueD0tdGhpcy54LHRoaXMueT0tdGhpcy55LHRoaXMuej0tdGhpcy56LHRoaXMudz0tdGhpcy53LHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLngqdC54K3RoaXMueSp0LnkrdGhpcy56KnQueit0aGlzLncqdC53fWxlbmd0aFNxKCl7cmV0dXJuIHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSt0aGlzLnoqdGhpcy56K3RoaXMudyp0aGlzLnd9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMueit0aGlzLncqdGhpcy53KX1tYW5oYXR0YW5MZW5ndGgoKXtyZXR1cm4gTWF0aC5hYnModGhpcy54KStNYXRoLmFicyh0aGlzLnkpK01hdGguYWJzKHRoaXMueikrTWF0aC5hYnModGhpcy53KX1ub3JtYWxpemUoKXtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIodGhpcy5sZW5ndGgoKXx8MSl9c2V0TGVuZ3RoKHQpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHQpfWxlcnAodCxlKXtyZXR1cm4gdGhpcy54Kz0odC54LXRoaXMueCkqZSx0aGlzLnkrPSh0LnktdGhpcy55KSplLHRoaXMueis9KHQuei10aGlzLnopKmUsdGhpcy53Kz0odC53LXRoaXMudykqZSx0aGlzfWxlcnBWZWN0b3JzKHQsZSxuKXtyZXR1cm4gdGhpcy54PXQueCsoZS54LXQueCkqbix0aGlzLnk9dC55KyhlLnktdC55KSpuLHRoaXMuej10LnorKGUuei10LnopKm4sdGhpcy53PXQudysoZS53LXQudykqbix0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnkmJnQuej09PXRoaXMueiYmdC53PT09dGhpcy53fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMueD10W2VdLHRoaXMueT10W2UrMV0sdGhpcy56PXRbZSsyXSx0aGlzLnc9dFtlKzNdLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy54LHRbZSsxXT10aGlzLnksdFtlKzJdPXRoaXMueix0W2UrM109dGhpcy53LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil7cmV0dXJuIHZvaWQgMCE9PW4mJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgoZSksdGhpcy55PXQuZ2V0WShlKSx0aGlzLno9dC5nZXRaKGUpLHRoaXMudz10LmdldFcoZSksdGhpc31yYW5kb20oKXtyZXR1cm4gdGhpcy54PU1hdGgucmFuZG9tKCksdGhpcy55PU1hdGgucmFuZG9tKCksdGhpcy56PU1hdGgucmFuZG9tKCksdGhpcy53PU1hdGgucmFuZG9tKCksdGhpc319YWF0LnByb3RvdHlwZS5pc1ZlY3RvcjQ9ITA7Y2xhc3MgcmF0IGV4dGVuZHMgVWl0e2NvbnN0cnVjdG9yKHQsZSxuPXt9KXtzdXBlcigpLHRoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMuZGVwdGg9MSx0aGlzLnNjaXNzb3I9bmV3IGFhdCgwLDAsdCxlKSx0aGlzLnNjaXNzb3JUZXN0PSExLHRoaXMudmlld3BvcnQ9bmV3IGFhdCgwLDAsdCxlKSx0aGlzLnRleHR1cmU9bmV3IG9hdCh2b2lkIDAsbi5tYXBwaW5nLG4ud3JhcFMsbi53cmFwVCxuLm1hZ0ZpbHRlcixuLm1pbkZpbHRlcixuLmZvcm1hdCxuLnR5cGUsbi5hbmlzb3Ryb3B5LG4uZW5jb2RpbmcpLHRoaXMudGV4dHVyZS5pc1JlbmRlclRhcmdldFRleHR1cmU9ITAsdGhpcy50ZXh0dXJlLmltYWdlPXt3aWR0aDp0LGhlaWdodDplLGRlcHRoOjF9LHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9dm9pZCAwIT09bi5nZW5lcmF0ZU1pcG1hcHMmJm4uZ2VuZXJhdGVNaXBtYXBzLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9dm9pZCAwIT09bi5taW5GaWx0ZXI/bi5taW5GaWx0ZXI6Yml0LHRoaXMuZGVwdGhCdWZmZXI9dm9pZCAwPT09bi5kZXB0aEJ1ZmZlcnx8bi5kZXB0aEJ1ZmZlcix0aGlzLnN0ZW5jaWxCdWZmZXI9dm9pZCAwIT09bi5zdGVuY2lsQnVmZmVyJiZuLnN0ZW5jaWxCdWZmZXIsdGhpcy5kZXB0aFRleHR1cmU9dm9pZCAwIT09bi5kZXB0aFRleHR1cmU/bi5kZXB0aFRleHR1cmU6bnVsbH1zZXRUZXh0dXJlKHQpe3QuaW1hZ2U9e3dpZHRoOnRoaXMud2lkdGgsaGVpZ2h0OnRoaXMuaGVpZ2h0LGRlcHRoOnRoaXMuZGVwdGh9LHRoaXMudGV4dHVyZT10fXNldFNpemUodCxlLG49MSl7dGhpcy53aWR0aD09PXQmJnRoaXMuaGVpZ2h0PT09ZSYmdGhpcy5kZXB0aD09PW58fCh0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLmRlcHRoPW4sdGhpcy50ZXh0dXJlLmltYWdlLndpZHRoPXQsdGhpcy50ZXh0dXJlLmltYWdlLmhlaWdodD1lLHRoaXMudGV4dHVyZS5pbWFnZS5kZXB0aD1uLHRoaXMuZGlzcG9zZSgpKSx0aGlzLnZpZXdwb3J0LnNldCgwLDAsdCxlKSx0aGlzLnNjaXNzb3Iuc2V0KDAsMCx0LGUpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzLmRlcHRoPXQuZGVwdGgsdGhpcy52aWV3cG9ydC5jb3B5KHQudmlld3BvcnQpLHRoaXMudGV4dHVyZT10LnRleHR1cmUuY2xvbmUoKSx0aGlzLnRleHR1cmUuaW1hZ2U9ey4uLnRoaXMudGV4dHVyZS5pbWFnZX0sdGhpcy5kZXB0aEJ1ZmZlcj10LmRlcHRoQnVmZmVyLHRoaXMuc3RlbmNpbEJ1ZmZlcj10LnN0ZW5jaWxCdWZmZXIsdGhpcy5kZXB0aFRleHR1cmU9dC5kZXB0aFRleHR1cmUsdGhpc31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfX1yYXQucHJvdG90eXBlLmlzV2ViR0xSZW5kZXJUYXJnZXQ9ITAsY2xhc3MgZXh0ZW5kcyByYXR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSk7Y29uc3Qgbz10aGlzLnRleHR1cmU7dGhpcy50ZXh0dXJlPVtdO2ZvcihsZXQgdD0wO3Q8bjt0KyspdGhpcy50ZXh0dXJlW3RdPW8uY2xvbmUoKX1zZXRTaXplKHQsZSxuPTEpe2lmKHRoaXMud2lkdGghPT10fHx0aGlzLmhlaWdodCE9PWV8fHRoaXMuZGVwdGghPT1uKXt0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLmRlcHRoPW47Zm9yKGxldCBvPTAsaT10aGlzLnRleHR1cmUubGVuZ3RoO288aTtvKyspdGhpcy50ZXh0dXJlW29dLmltYWdlLndpZHRoPXQsdGhpcy50ZXh0dXJlW29dLmltYWdlLmhlaWdodD1lLHRoaXMudGV4dHVyZVtvXS5pbWFnZS5kZXB0aD1uO3RoaXMuZGlzcG9zZSgpfXJldHVybiB0aGlzLnZpZXdwb3J0LnNldCgwLDAsdCxlKSx0aGlzLnNjaXNzb3Iuc2V0KDAsMCx0LGUpLHRoaXN9Y29weSh0KXt0aGlzLmRpc3Bvc2UoKSx0aGlzLndpZHRoPXQud2lkdGgsdGhpcy5oZWlnaHQ9dC5oZWlnaHQsdGhpcy5kZXB0aD10LmRlcHRoLHRoaXMudmlld3BvcnQuc2V0KDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSx0aGlzLnNjaXNzb3Iuc2V0KDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSx0aGlzLmRlcHRoQnVmZmVyPXQuZGVwdGhCdWZmZXIsdGhpcy5zdGVuY2lsQnVmZmVyPXQuc3RlbmNpbEJ1ZmZlcix0aGlzLmRlcHRoVGV4dHVyZT10LmRlcHRoVGV4dHVyZSx0aGlzLnRleHR1cmUubGVuZ3RoPTA7Zm9yKGxldCBlPTAsbj10LnRleHR1cmUubGVuZ3RoO2U8bjtlKyspdGhpcy50ZXh0dXJlW2VdPXQudGV4dHVyZVtlXS5jbG9uZSgpO3JldHVybiB0aGlzfX0ucHJvdG90eXBlLmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHM9ITA7Y2xhc3Mgc2F0IGV4dGVuZHMgcmF0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUsbiksdGhpcy5zYW1wbGVzPTR9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weS5jYWxsKHRoaXMsdCksdGhpcy5zYW1wbGVzPXQuc2FtcGxlcyx0aGlzfX1zYXQucHJvdG90eXBlLmlzV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldD0hMDtjbGFzcyBsYXR7Y29uc3RydWN0b3IodD0wLGU9MCxuPTAsbz0xKXt0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3o9bix0aGlzLl93PW99c3RhdGljIHNsZXJwKHQsZSxuLG8pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IFN0YXRpYyAuc2xlcnAoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgcW0uc2xlcnBRdWF0ZXJuaW9ucyggcWEsIHFiLCB0ICkgaW5zdGVhZC4iKSxuLnNsZXJwUXVhdGVybmlvbnModCxlLG8pfXN0YXRpYyBzbGVycEZsYXQodCxlLG4sbyxpLGEscil7bGV0IHM9bltvKzBdLGw9bltvKzFdLGM9bltvKzJdLGQ9bltvKzNdO2NvbnN0IHA9aVthKzBdLG09aVthKzFdLHU9aVthKzJdLGY9aVthKzNdO2lmKDA9PT1yKXJldHVybiB0W2UrMF09cyx0W2UrMV09bCx0W2UrMl09Yyx2b2lkKHRbZSszXT1kKTtpZigxPT09cilyZXR1cm4gdFtlKzBdPXAsdFtlKzFdPW0sdFtlKzJdPXUsdm9pZCh0W2UrM109Zik7aWYoZCE9PWZ8fHMhPT1wfHxsIT09bXx8YyE9PXUpe2xldCB0PTEtcjtjb25zdCBlPXMqcCtsKm0rYyp1K2QqZixuPWU+PTA/MTotMSxvPTEtZSplO2lmKG8+TnVtYmVyLkVQU0lMT04pe2NvbnN0IGk9TWF0aC5zcXJ0KG8pLGE9TWF0aC5hdGFuMihpLGUqbik7dD1NYXRoLnNpbih0KmEpL2kscj1NYXRoLnNpbihyKmEpL2l9Y29uc3QgaT1yKm47aWYocz1zKnQrcCppLGw9bCp0K20qaSxjPWMqdCt1KmksZD1kKnQrZippLHQ9PT0xLXIpe2NvbnN0IHQ9MS9NYXRoLnNxcnQocypzK2wqbCtjKmMrZCpkKTtzKj10LGwqPXQsYyo9dCxkKj10fX10W2VdPXMsdFtlKzFdPWwsdFtlKzJdPWMsdFtlKzNdPWR9c3RhdGljIG11bHRpcGx5UXVhdGVybmlvbnNGbGF0KHQsZSxuLG8saSxhKXtjb25zdCByPW5bb10scz1uW28rMV0sbD1uW28rMl0sYz1uW28rM10sZD1pW2FdLHA9aVthKzFdLG09aVthKzJdLHU9aVthKzNdO3JldHVybiB0W2VdPXIqdStjKmQrcyptLWwqcCx0W2UrMV09cyp1K2MqcCtsKmQtciptLHRbZSsyXT1sKnUrYyptK3IqcC1zKmQsdFtlKzNdPWMqdS1yKmQtcypwLWwqbSx0fWdldCB4KCl7cmV0dXJuIHRoaXMuX3h9c2V0IHgodCl7dGhpcy5feD10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeSgpe3JldHVybiB0aGlzLl95fXNldCB5KHQpe3RoaXMuX3k9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHooKXtyZXR1cm4gdGhpcy5fen1zZXQgeih0KXt0aGlzLl96PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB3KCl7cmV0dXJuIHRoaXMuX3d9c2V0IHcodCl7dGhpcy5fdz10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1zZXQodCxlLG4sbyl7cmV0dXJuIHRoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1uLHRoaXMuX3c9byx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLl94LHRoaXMuX3ksdGhpcy5feix0aGlzLl93KX1jb3B5KHQpe3JldHVybiB0aGlzLl94PXQueCx0aGlzLl95PXQueSx0aGlzLl96PXQueix0aGlzLl93PXQudyx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tRXVsZXIodCxlKXtpZighdHx8IXQuaXNFdWxlcil0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLlF1YXRlcm5pb246IC5zZXRGcm9tRXVsZXIoKSBub3cgZXhwZWN0cyBhbiBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLiIpO2NvbnN0IG49dC5feCxvPXQuX3ksaT10Ll96LGE9dC5fb3JkZXIscj1NYXRoLmNvcyxzPU1hdGguc2luLGw9cihuLzIpLGM9cihvLzIpLGQ9cihpLzIpLHA9cyhuLzIpLG09cyhvLzIpLHU9cyhpLzIpO3N3aXRjaChhKXtjYXNlIlhZWiI6dGhpcy5feD1wKmMqZCtsKm0qdSx0aGlzLl95PWwqbSpkLXAqYyp1LHRoaXMuX3o9bCpjKnUrcCptKmQsdGhpcy5fdz1sKmMqZC1wKm0qdTticmVhaztjYXNlIllYWiI6dGhpcy5feD1wKmMqZCtsKm0qdSx0aGlzLl95PWwqbSpkLXAqYyp1LHRoaXMuX3o9bCpjKnUtcCptKmQsdGhpcy5fdz1sKmMqZCtwKm0qdTticmVhaztjYXNlIlpYWSI6dGhpcy5feD1wKmMqZC1sKm0qdSx0aGlzLl95PWwqbSpkK3AqYyp1LHRoaXMuX3o9bCpjKnUrcCptKmQsdGhpcy5fdz1sKmMqZC1wKm0qdTticmVhaztjYXNlIlpZWCI6dGhpcy5feD1wKmMqZC1sKm0qdSx0aGlzLl95PWwqbSpkK3AqYyp1LHRoaXMuX3o9bCpjKnUtcCptKmQsdGhpcy5fdz1sKmMqZCtwKm0qdTticmVhaztjYXNlIllaWCI6dGhpcy5feD1wKmMqZCtsKm0qdSx0aGlzLl95PWwqbSpkK3AqYyp1LHRoaXMuX3o9bCpjKnUtcCptKmQsdGhpcy5fdz1sKmMqZC1wKm0qdTticmVhaztjYXNlIlhaWSI6dGhpcy5feD1wKmMqZC1sKm0qdSx0aGlzLl95PWwqbSpkLXAqYyp1LHRoaXMuX3o9bCpjKnUrcCptKmQsdGhpcy5fdz1sKmMqZCtwKm0qdTticmVhaztkZWZhdWx0OmNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLnNldEZyb21FdWxlcigpIGVuY291bnRlcmVkIGFuIHVua25vd24gb3JkZXI6ICIrYSl9cmV0dXJuITEhPT1lJiZ0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tQXhpc0FuZ2xlKHQsZSl7Y29uc3Qgbj1lLzIsbz1NYXRoLnNpbihuKTtyZXR1cm4gdGhpcy5feD10Lngqbyx0aGlzLl95PXQueSpvLHRoaXMuX3o9dC56Km8sdGhpcy5fdz1NYXRoLmNvcyhuKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUm90YXRpb25NYXRyaXgodCl7Y29uc3QgZT10LmVsZW1lbnRzLG49ZVswXSxvPWVbNF0saT1lWzhdLGE9ZVsxXSxyPWVbNV0scz1lWzldLGw9ZVsyXSxjPWVbNl0sZD1lWzEwXSxwPW4rcitkO2lmKHA+MCl7Y29uc3QgdD0uNS9NYXRoLnNxcnQocCsxKTt0aGlzLl93PS4yNS90LHRoaXMuX3g9KGMtcykqdCx0aGlzLl95PShpLWwpKnQsdGhpcy5fej0oYS1vKSp0fWVsc2UgaWYobj5yJiZuPmQpe2NvbnN0IHQ9MipNYXRoLnNxcnQoMStuLXItZCk7dGhpcy5fdz0oYy1zKS90LHRoaXMuX3g9LjI1KnQsdGhpcy5feT0obythKS90LHRoaXMuX3o9KGkrbCkvdH1lbHNlIGlmKHI+ZCl7Y29uc3QgdD0yKk1hdGguc3FydCgxK3Itbi1kKTt0aGlzLl93PShpLWwpL3QsdGhpcy5feD0obythKS90LHRoaXMuX3k9LjI1KnQsdGhpcy5fej0ocytjKS90fWVsc2V7Y29uc3QgdD0yKk1hdGguc3FydCgxK2Qtbi1yKTt0aGlzLl93PShhLW8pL3QsdGhpcy5feD0oaStsKS90LHRoaXMuX3k9KHMrYykvdCx0aGlzLl96PS4yNSp0fXJldHVybiB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tVW5pdFZlY3RvcnModCxlKXtsZXQgbj10LmRvdChlKSsxO3JldHVybiBuPE51bWJlci5FUFNJTE9OPyhuPTAsTWF0aC5hYnModC54KT5NYXRoLmFicyh0LnopPyh0aGlzLl94PS10LnksdGhpcy5feT10LngsdGhpcy5fej0wLHRoaXMuX3c9bik6KHRoaXMuX3g9MCx0aGlzLl95PS10LnosdGhpcy5fej10LnksdGhpcy5fdz1uKSk6KHRoaXMuX3g9dC55KmUuei10LnoqZS55LHRoaXMuX3k9dC56KmUueC10LngqZS56LHRoaXMuX3o9dC54KmUueS10LnkqZS54LHRoaXMuX3c9biksdGhpcy5ub3JtYWxpemUoKX1hbmdsZVRvKHQpe3JldHVybiAyKk1hdGguYWNvcyhNYXRoLmFicyhaaXQodGhpcy5kb3QodCksLTEsMSkpKX1yb3RhdGVUb3dhcmRzKHQsZSl7Y29uc3Qgbj10aGlzLmFuZ2xlVG8odCk7aWYoMD09PW4pcmV0dXJuIHRoaXM7Y29uc3Qgbz1NYXRoLm1pbigxLGUvbik7cmV0dXJuIHRoaXMuc2xlcnAodCxvKSx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDAsMCwwLDEpfWludmVydCgpe3JldHVybiB0aGlzLmNvbmp1Z2F0ZSgpfWNvbmp1Z2F0ZSgpe3JldHVybiB0aGlzLl94Kj0tMSx0aGlzLl95Kj0tMSx0aGlzLl96Kj0tMSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31kb3QodCl7cmV0dXJuIHRoaXMuX3gqdC5feCt0aGlzLl95KnQuX3krdGhpcy5feip0Ll96K3RoaXMuX3cqdC5fd31sZW5ndGhTcSgpe3JldHVybiB0aGlzLl94KnRoaXMuX3grdGhpcy5feSp0aGlzLl95K3RoaXMuX3oqdGhpcy5feit0aGlzLl93KnRoaXMuX3d9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLl94KnRoaXMuX3grdGhpcy5feSp0aGlzLl95K3RoaXMuX3oqdGhpcy5feit0aGlzLl93KnRoaXMuX3cpfW5vcm1hbGl6ZSgpe2xldCB0PXRoaXMubGVuZ3RoKCk7cmV0dXJuIDA9PT10Pyh0aGlzLl94PTAsdGhpcy5feT0wLHRoaXMuX3o9MCx0aGlzLl93PTEpOih0PTEvdCx0aGlzLl94PXRoaXMuX3gqdCx0aGlzLl95PXRoaXMuX3kqdCx0aGlzLl96PXRoaXMuX3oqdCx0aGlzLl93PXRoaXMuX3cqdCksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9bXVsdGlwbHkodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAubXVsdGlwbHkoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5tdWx0aXBseVF1YXRlcm5pb25zKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLm11bHRpcGx5UXVhdGVybmlvbnModCxlKSk6dGhpcy5tdWx0aXBseVF1YXRlcm5pb25zKHRoaXMsdCl9cHJlbXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyh0LHRoaXMpfW11bHRpcGx5UXVhdGVybmlvbnModCxlKXtjb25zdCBuPXQuX3gsbz10Ll95LGk9dC5feixhPXQuX3cscj1lLl94LHM9ZS5feSxsPWUuX3osYz1lLl93O3JldHVybiB0aGlzLl94PW4qYythKnIrbypsLWkqcyx0aGlzLl95PW8qYythKnMraSpyLW4qbCx0aGlzLl96PWkqYythKmwrbipzLW8qcix0aGlzLl93PWEqYy1uKnItbypzLWkqbCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zbGVycCh0LGUpe2lmKDA9PT1lKXJldHVybiB0aGlzO2lmKDE9PT1lKXJldHVybiB0aGlzLmNvcHkodCk7Y29uc3Qgbj10aGlzLl94LG89dGhpcy5feSxpPXRoaXMuX3osYT10aGlzLl93O2xldCByPWEqdC5fdytuKnQuX3grbyp0Ll95K2kqdC5fejtpZihyPDA/KHRoaXMuX3c9LXQuX3csdGhpcy5feD0tdC5feCx0aGlzLl95PS10Ll95LHRoaXMuX3o9LXQuX3oscj0tcik6dGhpcy5jb3B5KHQpLHI+PTEpcmV0dXJuIHRoaXMuX3c9YSx0aGlzLl94PW4sdGhpcy5feT1vLHRoaXMuX3o9aSx0aGlzO2NvbnN0IHM9MS1yKnI7aWYoczw9TnVtYmVyLkVQU0lMT04pe2NvbnN0IHQ9MS1lO3JldHVybiB0aGlzLl93PXQqYStlKnRoaXMuX3csdGhpcy5feD10Km4rZSp0aGlzLl94LHRoaXMuX3k9dCpvK2UqdGhpcy5feSx0aGlzLl96PXQqaStlKnRoaXMuX3osdGhpcy5ub3JtYWxpemUoKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31jb25zdCBsPU1hdGguc3FydChzKSxjPU1hdGguYXRhbjIobCxyKSxkPU1hdGguc2luKCgxLWUpKmMpL2wscD1NYXRoLnNpbihlKmMpL2w7cmV0dXJuIHRoaXMuX3c9YSpkK3RoaXMuX3cqcCx0aGlzLl94PW4qZCt0aGlzLl94KnAsdGhpcy5feT1vKmQrdGhpcy5feSpwLHRoaXMuX3o9aSpkK3RoaXMuX3oqcCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zbGVycFF1YXRlcm5pb25zKHQsZSxuKXt0aGlzLmNvcHkodCkuc2xlcnAoZSxuKX1lcXVhbHModCl7cmV0dXJuIHQuX3g9PT10aGlzLl94JiZ0Ll95PT09dGhpcy5feSYmdC5fej09PXRoaXMuX3omJnQuX3c9PT10aGlzLl93fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMuX3g9dFtlXSx0aGlzLl95PXRbZSsxXSx0aGlzLl96PXRbZSsyXSx0aGlzLl93PXRbZSszXSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLl94LHRbZSsxXT10aGlzLl95LHRbZSsyXT10aGlzLl96LHRbZSszXT10aGlzLl93LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpe3JldHVybiB0aGlzLl94PXQuZ2V0WChlKSx0aGlzLl95PXQuZ2V0WShlKSx0aGlzLl96PXQuZ2V0WihlKSx0aGlzLl93PXQuZ2V0VyhlKSx0aGlzfV9vbkNoYW5nZSh0KXtyZXR1cm4gdGhpcy5fb25DaGFuZ2VDYWxsYmFjaz10LHRoaXN9X29uQ2hhbmdlQ2FsbGJhY2soKXt9fWxhdC5wcm90b3R5cGUuaXNRdWF0ZXJuaW9uPSEwO2NsYXNzIGNhdHtjb25zdHJ1Y3Rvcih0PTAsZT0wLG49MCl7dGhpcy54PXQsdGhpcy55PWUsdGhpcy56PW59c2V0KHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49dGhpcy56KSx0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9bix0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PXQsdGhpcy56PXQsdGhpc31zZXRYKHQpe3JldHVybiB0aGlzLng9dCx0aGlzfXNldFkodCl7cmV0dXJuIHRoaXMueT10LHRoaXN9c2V0Wih0KXtyZXR1cm4gdGhpcy56PXQsdGhpc31zZXRDb21wb25lbnQodCxlKXtzd2l0Y2godCl7Y2FzZSAwOnRoaXMueD1lO2JyZWFrO2Nhc2UgMTp0aGlzLnk9ZTticmVhaztjYXNlIDI6dGhpcy56PWU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX1yZXR1cm4gdGhpc31nZXRDb21wb25lbnQodCl7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdGhpcy54O2Nhc2UgMTpyZXR1cm4gdGhpcy55O2Nhc2UgMjpyZXR1cm4gdGhpcy56O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMueCx0aGlzLnksdGhpcy56KX1jb3B5KHQpe3JldHVybiB0aGlzLng9dC54LHRoaXMueT10LnksdGhpcy56PXQueix0aGlzfWFkZCh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5hZGQoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5hZGRWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmFkZFZlY3RvcnModCxlKSk6KHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXMueis9dC56LHRoaXMpfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kz10LHRoaXMueSs9dCx0aGlzLnorPXQsdGhpc31hZGRWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngrZS54LHRoaXMueT10LnkrZS55LHRoaXMuej10LnorZS56LHRoaXN9YWRkU2NhbGVkVmVjdG9yKHQsZSl7cmV0dXJuIHRoaXMueCs9dC54KmUsdGhpcy55Kz10LnkqZSx0aGlzLnorPXQueiplLHRoaXN9c3ViKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuc3ViVmVjdG9ycyh0LGUpKToodGhpcy54LT10LngsdGhpcy55LT10LnksdGhpcy56LT10LnosdGhpcyl9c3ViU2NhbGFyKHQpe3JldHVybiB0aGlzLngtPXQsdGhpcy55LT10LHRoaXMuei09dCx0aGlzfXN1YlZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueC1lLngsdGhpcy55PXQueS1lLnksdGhpcy56PXQuei1lLnosdGhpc31tdWx0aXBseSh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5tdWx0aXBseSgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLm11bHRpcGx5VmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5tdWx0aXBseVZlY3RvcnModCxlKSk6KHRoaXMueCo9dC54LHRoaXMueSo9dC55LHRoaXMueio9dC56LHRoaXMpfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLngqPXQsdGhpcy55Kj10LHRoaXMueio9dCx0aGlzfW11bHRpcGx5VmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54KmUueCx0aGlzLnk9dC55KmUueSx0aGlzLno9dC56KmUueix0aGlzfWFwcGx5RXVsZXIodCl7cmV0dXJuIHQmJnQuaXNFdWxlcnx8Y29uc29sZS5lcnJvcigiVEhSRUUuVmVjdG9yMzogLmFwcGx5RXVsZXIoKSBub3cgZXhwZWN0cyBhbiBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLiIpLHRoaXMuYXBwbHlRdWF0ZXJuaW9uKHBhdC5zZXRGcm9tRXVsZXIodCkpfWFwcGx5QXhpc0FuZ2xlKHQsZSl7cmV0dXJuIHRoaXMuYXBwbHlRdWF0ZXJuaW9uKHBhdC5zZXRGcm9tQXhpc0FuZ2xlKHQsZSkpfWFwcGx5TWF0cml4Myh0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxvPXRoaXMueixpPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1pWzBdKmUraVszXSpuK2lbNl0qbyx0aGlzLnk9aVsxXSplK2lbNF0qbitpWzddKm8sdGhpcy56PWlbMl0qZStpWzVdKm4raVs4XSpvLHRoaXN9YXBwbHlOb3JtYWxNYXRyaXgodCl7cmV0dXJuIHRoaXMuYXBwbHlNYXRyaXgzKHQpLm5vcm1hbGl6ZSgpfWFwcGx5TWF0cml4NCh0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxvPXRoaXMueixpPXQuZWxlbWVudHMsYT0xLyhpWzNdKmUraVs3XSpuK2lbMTFdKm8raVsxNV0pO3JldHVybiB0aGlzLng9KGlbMF0qZStpWzRdKm4raVs4XSpvK2lbMTJdKSphLHRoaXMueT0oaVsxXSplK2lbNV0qbitpWzldKm8raVsxM10pKmEsdGhpcy56PShpWzJdKmUraVs2XSpuK2lbMTBdKm8raVsxNF0pKmEsdGhpc31hcHBseVF1YXRlcm5pb24odCl7Y29uc3QgZT10aGlzLngsbj10aGlzLnksbz10aGlzLnosaT10LngsYT10Lnkscj10Lnoscz10LncsbD1zKmUrYSpvLXIqbixjPXMqbityKmUtaSpvLGQ9cypvK2kqbi1hKmUscD0taSplLWEqbi1yKm87cmV0dXJuIHRoaXMueD1sKnMrcCotaStjKi1yLWQqLWEsdGhpcy55PWMqcytwKi1hK2QqLWktbCotcix0aGlzLno9ZCpzK3AqLXIrbCotYS1jKi1pLHRoaXN9cHJvamVjdCh0KXtyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZEludmVyc2UpLmFwcGx5TWF0cml4NCh0LnByb2plY3Rpb25NYXRyaXgpfXVucHJvamVjdCh0KXtyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDQodC5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZSkuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpfXRyYW5zZm9ybURpcmVjdGlvbih0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxvPXRoaXMueixpPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1pWzBdKmUraVs0XSpuK2lbOF0qbyx0aGlzLnk9aVsxXSplK2lbNV0qbitpWzldKm8sdGhpcy56PWlbMl0qZStpWzZdKm4raVsxMF0qbyx0aGlzLm5vcm1hbGl6ZSgpfWRpdmlkZSh0KXtyZXR1cm4gdGhpcy54Lz10LngsdGhpcy55Lz10LnksdGhpcy56Lz10LnosdGhpc31kaXZpZGVTY2FsYXIodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlTY2FsYXIoMS90KX1taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpcy56PU1hdGgubWluKHRoaXMueix0LnopLHRoaXN9bWF4KHQpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodGhpcy54LHQueCksdGhpcy55PU1hdGgubWF4KHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1heCh0aGlzLnosdC56KSx0aGlzfWNsYW1wKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LngsTWF0aC5taW4oZS54LHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LnksTWF0aC5taW4oZS55LHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LnosTWF0aC5taW4oZS56LHRoaXMueikpLHRoaXN9Y2xhbXBTY2FsYXIodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy56KSksdGhpc31jbGFtcExlbmd0aCh0LGUpe2NvbnN0IG49dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIobnx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihlLG4pKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej1NYXRoLmZsb29yKHRoaXMueiksdGhpc31jZWlsKCl7cmV0dXJuIHRoaXMueD1NYXRoLmNlaWwodGhpcy54KSx0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSksdGhpcy56PU1hdGguY2VpbCh0aGlzLnopLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXMuej1NYXRoLnJvdW5kKHRoaXMueiksdGhpc31yb3VuZFRvWmVybygpe3JldHVybiB0aGlzLng9dGhpcy54PDA/TWF0aC5jZWlsKHRoaXMueCk6TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT10aGlzLnk8MD9NYXRoLmNlaWwodGhpcy55KTpNYXRoLmZsb29yKHRoaXMueSksdGhpcy56PXRoaXMuejwwP01hdGguY2VpbCh0aGlzLnopOk1hdGguZmxvb3IodGhpcy56KSx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLng9LXRoaXMueCx0aGlzLnk9LXRoaXMueSx0aGlzLno9LXRoaXMueix0aGlzfWRvdCh0KXtyZXR1cm4gdGhpcy54KnQueCt0aGlzLnkqdC55K3RoaXMueip0Lnp9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnp9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMueil9bWFuaGF0dGFuTGVuZ3RoKCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueCkrTWF0aC5hYnModGhpcy55KStNYXRoLmFicyh0aGlzLnopfW5vcm1hbGl6ZSgpe3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcih0aGlzLmxlbmd0aCgpfHwxKX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LGUpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSplLHRoaXMueSs9KHQueS10aGlzLnkpKmUsdGhpcy56Kz0odC56LXRoaXMueikqZSx0aGlzfWxlcnBWZWN0b3JzKHQsZSxuKXtyZXR1cm4gdGhpcy54PXQueCsoZS54LXQueCkqbix0aGlzLnk9dC55KyhlLnktdC55KSpuLHRoaXMuej10LnorKGUuei10LnopKm4sdGhpc31jcm9zcyh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5jcm9zcygpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmNyb3NzVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5jcm9zc1ZlY3RvcnModCxlKSk6dGhpcy5jcm9zc1ZlY3RvcnModGhpcyx0KX1jcm9zc1ZlY3RvcnModCxlKXtjb25zdCBuPXQueCxvPXQueSxpPXQueixhPWUueCxyPWUueSxzPWUuejtyZXR1cm4gdGhpcy54PW8qcy1pKnIsdGhpcy55PWkqYS1uKnMsdGhpcy56PW4qci1vKmEsdGhpc31wcm9qZWN0T25WZWN0b3IodCl7Y29uc3QgZT10Lmxlbmd0aFNxKCk7aWYoMD09PWUpcmV0dXJuIHRoaXMuc2V0KDAsMCwwKTtjb25zdCBuPXQuZG90KHRoaXMpL2U7cmV0dXJuIHRoaXMuY29weSh0KS5tdWx0aXBseVNjYWxhcihuKX1wcm9qZWN0T25QbGFuZSh0KXtyZXR1cm4gZGF0LmNvcHkodGhpcykucHJvamVjdE9uVmVjdG9yKHQpLHRoaXMuc3ViKGRhdCl9cmVmbGVjdCh0KXtyZXR1cm4gdGhpcy5zdWIoZGF0LmNvcHkodCkubXVsdGlwbHlTY2FsYXIoMip0aGlzLmRvdCh0KSkpfWFuZ2xlVG8odCl7Y29uc3QgZT1NYXRoLnNxcnQodGhpcy5sZW5ndGhTcSgpKnQubGVuZ3RoU3EoKSk7aWYoMD09PWUpcmV0dXJuIE1hdGguUEkvMjtjb25zdCBuPXRoaXMuZG90KHQpL2U7cmV0dXJuIE1hdGguYWNvcyhaaXQobiwtMSwxKSl9ZGlzdGFuY2VUbyh0KXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuZGlzdGFuY2VUb1NxdWFyZWQodCkpfWRpc3RhbmNlVG9TcXVhcmVkKHQpe2NvbnN0IGU9dGhpcy54LXQueCxuPXRoaXMueS10Lnksbz10aGlzLnotdC56O3JldHVybiBlKmUrbipuK28qb31tYW5oYXR0YW5EaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLmFicyh0aGlzLngtdC54KStNYXRoLmFicyh0aGlzLnktdC55KStNYXRoLmFicyh0aGlzLnotdC56KX1zZXRGcm9tU3BoZXJpY2FsKHQpe3JldHVybiB0aGlzLnNldEZyb21TcGhlcmljYWxDb29yZHModC5yYWRpdXMsdC5waGksdC50aGV0YSl9c2V0RnJvbVNwaGVyaWNhbENvb3Jkcyh0LGUsbil7Y29uc3Qgbz1NYXRoLnNpbihlKSp0O3JldHVybiB0aGlzLng9bypNYXRoLnNpbihuKSx0aGlzLnk9TWF0aC5jb3MoZSkqdCx0aGlzLno9bypNYXRoLmNvcyhuKSx0aGlzfXNldEZyb21DeWxpbmRyaWNhbCh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tQ3lsaW5kcmljYWxDb29yZHModC5yYWRpdXMsdC50aGV0YSx0LnkpfXNldEZyb21DeWxpbmRyaWNhbENvb3Jkcyh0LGUsbil7cmV0dXJuIHRoaXMueD10Kk1hdGguc2luKGUpLHRoaXMueT1uLHRoaXMuej10Kk1hdGguY29zKGUpLHRoaXN9c2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQpe2NvbnN0IGU9dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PWVbMTJdLHRoaXMueT1lWzEzXSx0aGlzLno9ZVsxNF0sdGhpc31zZXRGcm9tTWF0cml4U2NhbGUodCl7Y29uc3QgZT10aGlzLnNldEZyb21NYXRyaXhDb2x1bW4odCwwKS5sZW5ndGgoKSxuPXRoaXMuc2V0RnJvbU1hdHJpeENvbHVtbih0LDEpLmxlbmd0aCgpLG89dGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMikubGVuZ3RoKCk7cmV0dXJuIHRoaXMueD1lLHRoaXMueT1uLHRoaXMuej1vLHRoaXN9c2V0RnJvbU1hdHJpeENvbHVtbih0LGUpe3JldHVybiB0aGlzLmZyb21BcnJheSh0LmVsZW1lbnRzLDQqZSl9c2V0RnJvbU1hdHJpeDNDb2x1bW4odCxlKXtyZXR1cm4gdGhpcy5mcm9tQXJyYXkodC5lbGVtZW50cywzKmUpfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnkmJnQuej09PXRoaXMuen1mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLng9dFtlXSx0aGlzLnk9dFtlKzFdLHRoaXMuej10W2UrMl0sdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLngsdFtlKzFdPXRoaXMueSx0W2UrMl09dGhpcy56LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil7cmV0dXJuIHZvaWQgMCE9PW4mJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgoZSksdGhpcy55PXQuZ2V0WShlKSx0aGlzLno9dC5nZXRaKGUpLHRoaXN9cmFuZG9tKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJhbmRvbSgpLHRoaXMueT1NYXRoLnJhbmRvbSgpLHRoaXMuej1NYXRoLnJhbmRvbSgpLHRoaXN9fWNhdC5wcm90b3R5cGUuaXNWZWN0b3IzPSEwO2NvbnN0IGRhdD1uZXcgY2F0LHBhdD1uZXcgbGF0O2NsYXNzIG1hdHtjb25zdHJ1Y3Rvcih0PW5ldyBjYXQoMS8wLDEvMCwxLzApLGU9bmV3IGNhdCgtMS8wLC0xLzAsLTEvMCkpe3RoaXMubWluPXQsdGhpcy5tYXg9ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5taW4uY29weSh0KSx0aGlzLm1heC5jb3B5KGUpLHRoaXN9c2V0RnJvbUFycmF5KHQpe2xldCBlPTEvMCxuPTEvMCxvPTEvMCxpPS0xLzAsYT0tMS8wLHI9LTEvMDtmb3IobGV0IHM9MCxsPXQubGVuZ3RoO3M8bDtzKz0zKXtjb25zdCBsPXRbc10sYz10W3MrMV0sZD10W3MrMl07bDxlJiYoZT1sKSxjPG4mJihuPWMpLGQ8byYmKG89ZCksbD5pJiYoaT1sKSxjPmEmJihhPWMpLGQ+ciYmKHI9ZCl9cmV0dXJuIHRoaXMubWluLnNldChlLG4sbyksdGhpcy5tYXguc2V0KGksYSxyKSx0aGlzfXNldEZyb21CdWZmZXJBdHRyaWJ1dGUodCl7bGV0IGU9MS8wLG49MS8wLG89MS8wLGk9LTEvMCxhPS0xLzAscj0tMS8wO2ZvcihsZXQgcz0wLGw9dC5jb3VudDtzPGw7cysrKXtjb25zdCBsPXQuZ2V0WChzKSxjPXQuZ2V0WShzKSxkPXQuZ2V0WihzKTtsPGUmJihlPWwpLGM8biYmKG49YyksZDxvJiYobz1kKSxsPmkmJihpPWwpLGM+YSYmKGE9YyksZD5yJiYocj1kKX1yZXR1cm4gdGhpcy5taW4uc2V0KGUsbixvKSx0aGlzLm1heC5zZXQoaSxhLHIpLHRoaXN9c2V0RnJvbVBvaW50cyh0KXt0aGlzLm1ha2VFbXB0eSgpO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl0aGlzLmV4cGFuZEJ5UG9pbnQodFtlXSk7cmV0dXJuIHRoaXN9c2V0RnJvbUNlbnRlckFuZFNpemUodCxlKXtjb25zdCBuPWZhdC5jb3B5KGUpLm11bHRpcGx5U2NhbGFyKC41KTtyZXR1cm4gdGhpcy5taW4uY29weSh0KS5zdWIobiksdGhpcy5tYXguY29weSh0KS5hZGQobiksdGhpc31zZXRGcm9tT2JqZWN0KHQpe3JldHVybiB0aGlzLm1ha2VFbXB0eSgpLHRoaXMuZXhwYW5kQnlPYmplY3QodCl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy5taW4uY29weSh0Lm1pbiksdGhpcy5tYXguY29weSh0Lm1heCksdGhpc31tYWtlRW1wdHkoKXtyZXR1cm4gdGhpcy5taW4ueD10aGlzLm1pbi55PXRoaXMubWluLno9MS8wLHRoaXMubWF4Lng9dGhpcy5tYXgueT10aGlzLm1heC56PS0xLzAsdGhpc31pc0VtcHR5KCl7cmV0dXJuIHRoaXMubWF4Lng8dGhpcy5taW4ueHx8dGhpcy5tYXgueTx0aGlzLm1pbi55fHx0aGlzLm1heC56PHRoaXMubWluLnp9Z2V0Q2VudGVyKHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90LnNldCgwLDAsMCk6dC5hZGRWZWN0b3JzKHRoaXMubWluLHRoaXMubWF4KS5tdWx0aXBseVNjYWxhciguNSl9Z2V0U2l6ZSh0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dC5zZXQoMCwwLDApOnQuc3ViVmVjdG9ycyh0aGlzLm1heCx0aGlzLm1pbil9ZXhwYW5kQnlQb2ludCh0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQpLHRoaXMubWF4Lm1heCh0KSx0aGlzfWV4cGFuZEJ5VmVjdG9yKHQpe3JldHVybiB0aGlzLm1pbi5zdWIodCksdGhpcy5tYXguYWRkKHQpLHRoaXN9ZXhwYW5kQnlTY2FsYXIodCl7cmV0dXJuIHRoaXMubWluLmFkZFNjYWxhcigtdCksdGhpcy5tYXguYWRkU2NhbGFyKHQpLHRoaXN9ZXhwYW5kQnlPYmplY3QodCl7dC51cGRhdGVXb3JsZE1hdHJpeCghMSwhMSk7Y29uc3QgZT10Lmdlb21ldHJ5O3ZvaWQgMCE9PWUmJihudWxsPT09ZS5ib3VuZGluZ0JveCYmZS5jb21wdXRlQm91bmRpbmdCb3goKSxnYXQuY29weShlLmJvdW5kaW5nQm94KSxnYXQuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpLHRoaXMudW5pb24oZ2F0KSk7Y29uc3Qgbj10LmNoaWxkcmVuO2ZvcihsZXQgdD0wLGU9bi5sZW5ndGg7dDxlO3QrKyl0aGlzLmV4cGFuZEJ5T2JqZWN0KG5bdF0pO3JldHVybiB0aGlzfWNvbnRhaW5zUG9pbnQodCl7cmV0dXJuISh0Lng8dGhpcy5taW4ueHx8dC54PnRoaXMubWF4Lnh8fHQueTx0aGlzLm1pbi55fHx0Lnk+dGhpcy5tYXgueXx8dC56PHRoaXMubWluLnp8fHQuej50aGlzLm1heC56KX1jb250YWluc0JveCh0KXtyZXR1cm4gdGhpcy5taW4ueDw9dC5taW4ueCYmdC5tYXgueDw9dGhpcy5tYXgueCYmdGhpcy5taW4ueTw9dC5taW4ueSYmdC5tYXgueTw9dGhpcy5tYXgueSYmdGhpcy5taW4uejw9dC5taW4ueiYmdC5tYXguejw9dGhpcy5tYXguen1nZXRQYXJhbWV0ZXIodCxlKXtyZXR1cm4gZS5zZXQoKHQueC10aGlzLm1pbi54KS8odGhpcy5tYXgueC10aGlzLm1pbi54KSwodC55LXRoaXMubWluLnkpLyh0aGlzLm1heC55LXRoaXMubWluLnkpLCh0LnotdGhpcy5taW4ueikvKHRoaXMubWF4LnotdGhpcy5taW4ueikpfWludGVyc2VjdHNCb3godCl7cmV0dXJuISh0Lm1heC54PHRoaXMubWluLnh8fHQubWluLng+dGhpcy5tYXgueHx8dC5tYXgueTx0aGlzLm1pbi55fHx0Lm1pbi55PnRoaXMubWF4Lnl8fHQubWF4Lno8dGhpcy5taW4uenx8dC5taW4uej50aGlzLm1heC56KX1pbnRlcnNlY3RzU3BoZXJlKHQpe3JldHVybiB0aGlzLmNsYW1wUG9pbnQodC5jZW50ZXIsZmF0KSxmYXQuZGlzdGFuY2VUb1NxdWFyZWQodC5jZW50ZXIpPD10LnJhZGl1cyp0LnJhZGl1c31pbnRlcnNlY3RzUGxhbmUodCl7bGV0IGUsbjtyZXR1cm4gdC5ub3JtYWwueD4wPyhlPXQubm9ybWFsLngqdGhpcy5taW4ueCxuPXQubm9ybWFsLngqdGhpcy5tYXgueCk6KGU9dC5ub3JtYWwueCp0aGlzLm1heC54LG49dC5ub3JtYWwueCp0aGlzLm1pbi54KSx0Lm5vcm1hbC55PjA/KGUrPXQubm9ybWFsLnkqdGhpcy5taW4ueSxuKz10Lm5vcm1hbC55KnRoaXMubWF4LnkpOihlKz10Lm5vcm1hbC55KnRoaXMubWF4Lnksbis9dC5ub3JtYWwueSp0aGlzLm1pbi55KSx0Lm5vcm1hbC56PjA/KGUrPXQubm9ybWFsLnoqdGhpcy5taW4ueixuKz10Lm5vcm1hbC56KnRoaXMubWF4LnopOihlKz10Lm5vcm1hbC56KnRoaXMubWF4Lnosbis9dC5ub3JtYWwueip0aGlzLm1pbi56KSxlPD0tdC5jb25zdGFudCYmbj49LXQuY29uc3RhbnR9aW50ZXJzZWN0c1RyaWFuZ2xlKHQpe2lmKHRoaXMuaXNFbXB0eSgpKXJldHVybiExO3RoaXMuZ2V0Q2VudGVyKHZhdCkseGF0LnN1YlZlY3RvcnModGhpcy5tYXgsdmF0KSxoYXQuc3ViVmVjdG9ycyh0LmEsdmF0KSxiYXQuc3ViVmVjdG9ycyh0LmIsdmF0KSx5YXQuc3ViVmVjdG9ycyh0LmMsdmF0KSxfYXQuc3ViVmVjdG9ycyhiYXQsaGF0KSxDYXQuc3ViVmVjdG9ycyh5YXQsYmF0KSxNYXQuc3ViVmVjdG9ycyhoYXQseWF0KTtsZXQgZT1bMCwtX2F0LnosX2F0LnksMCwtQ2F0LnosQ2F0LnksMCwtTWF0LnosTWF0LnksX2F0LnosMCwtX2F0LngsQ2F0LnosMCwtQ2F0LngsTWF0LnosMCwtTWF0LngsLV9hdC55LF9hdC54LDAsLUNhdC55LENhdC54LDAsLU1hdC55LE1hdC54LDBdO3JldHVybiEhd2F0KGUsaGF0LGJhdCx5YXQseGF0KSYmKGU9WzEsMCwwLDAsMSwwLDAsMCwxXSwhIXdhdChlLGhhdCxiYXQseWF0LHhhdCkmJihPYXQuY3Jvc3NWZWN0b3JzKF9hdCxDYXQpLGU9W09hdC54LE9hdC55LE9hdC56XSx3YXQoZSxoYXQsYmF0LHlhdCx4YXQpKSl9Y2xhbXBQb2ludCh0LGUpe3JldHVybiBlLmNvcHkodCkuY2xhbXAodGhpcy5taW4sdGhpcy5tYXgpfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gZmF0LmNvcHkodCkuY2xhbXAodGhpcy5taW4sdGhpcy5tYXgpLnN1Yih0KS5sZW5ndGgoKX1nZXRCb3VuZGluZ1NwaGVyZSh0KXtyZXR1cm4gdGhpcy5nZXRDZW50ZXIodC5jZW50ZXIpLHQucmFkaXVzPS41KnRoaXMuZ2V0U2l6ZShmYXQpLmxlbmd0aCgpLHR9aW50ZXJzZWN0KHQpe3JldHVybiB0aGlzLm1pbi5tYXgodC5taW4pLHRoaXMubWF4Lm1pbih0Lm1heCksdGhpcy5pc0VtcHR5KCkmJnRoaXMubWFrZUVtcHR5KCksdGhpc311bmlvbih0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQubWluKSx0aGlzLm1heC5tYXgodC5tYXgpLHRoaXN9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKXx8KHVhdFswXS5zZXQodGhpcy5taW4ueCx0aGlzLm1pbi55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSx1YXRbMV0uc2V0KHRoaXMubWluLngsdGhpcy5taW4ueSx0aGlzLm1heC56KS5hcHBseU1hdHJpeDQodCksdWF0WzJdLnNldCh0aGlzLm1pbi54LHRoaXMubWF4LnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLHVhdFszXS5zZXQodGhpcy5taW4ueCx0aGlzLm1heC55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSx1YXRbNF0uc2V0KHRoaXMubWF4LngsdGhpcy5taW4ueSx0aGlzLm1pbi56KS5hcHBseU1hdHJpeDQodCksdWF0WzVdLnNldCh0aGlzLm1heC54LHRoaXMubWluLnksdGhpcy5tYXgueikuYXBwbHlNYXRyaXg0KHQpLHVhdFs2XS5zZXQodGhpcy5tYXgueCx0aGlzLm1heC55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSx1YXRbN10uc2V0KHRoaXMubWF4LngsdGhpcy5tYXgueSx0aGlzLm1heC56KS5hcHBseU1hdHJpeDQodCksdGhpcy5zZXRGcm9tUG9pbnRzKHVhdCkpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLm1pbi5hZGQodCksdGhpcy5tYXguYWRkKHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm1pbi5lcXVhbHModGhpcy5taW4pJiZ0Lm1heC5lcXVhbHModGhpcy5tYXgpfX1tYXQucHJvdG90eXBlLmlzQm94Mz0hMDtjb25zdCB1YXQ9W25ldyBjYXQsbmV3IGNhdCxuZXcgY2F0LG5ldyBjYXQsbmV3IGNhdCxuZXcgY2F0LG5ldyBjYXQsbmV3IGNhdF0sZmF0PW5ldyBjYXQsZ2F0PW5ldyBtYXQsaGF0PW5ldyBjYXQsYmF0PW5ldyBjYXQseWF0PW5ldyBjYXQsX2F0PW5ldyBjYXQsQ2F0PW5ldyBjYXQsTWF0PW5ldyBjYXQsdmF0PW5ldyBjYXQseGF0PW5ldyBjYXQsT2F0PW5ldyBjYXQsUGF0PW5ldyBjYXQ7ZnVuY3Rpb24gd2F0KHQsZSxuLG8saSl7Zm9yKGxldCBhPTAscj10Lmxlbmd0aC0zO2E8PXI7YSs9Myl7UGF0LmZyb21BcnJheSh0LGEpO2NvbnN0IHI9aS54Kk1hdGguYWJzKFBhdC54KStpLnkqTWF0aC5hYnMoUGF0LnkpK2kueipNYXRoLmFicyhQYXQueikscz1lLmRvdChQYXQpLGw9bi5kb3QoUGF0KSxjPW8uZG90KFBhdCk7aWYoTWF0aC5tYXgoLU1hdGgubWF4KHMsbCxjKSxNYXRoLm1pbihzLGwsYykpPnIpcmV0dXJuITF9cmV0dXJuITB9Y29uc3Qga2F0PW5ldyBtYXQsU2F0PW5ldyBjYXQsRGF0PW5ldyBjYXQsRWF0PW5ldyBjYXQ7Y2xhc3MgUmF0e2NvbnN0cnVjdG9yKHQ9bmV3IGNhdCxlPS0xKXt0aGlzLmNlbnRlcj10LHRoaXMucmFkaXVzPWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMuY2VudGVyLmNvcHkodCksdGhpcy5yYWRpdXM9ZSx0aGlzfXNldEZyb21Qb2ludHModCxlKXtjb25zdCBuPXRoaXMuY2VudGVyO3ZvaWQgMCE9PWU/bi5jb3B5KGUpOmthdC5zZXRGcm9tUG9pbnRzKHQpLmdldENlbnRlcihuKTtsZXQgbz0wO2ZvcihsZXQgZT0wLGk9dC5sZW5ndGg7ZTxpO2UrKylvPU1hdGgubWF4KG8sbi5kaXN0YW5jZVRvU3F1YXJlZCh0W2VdKSk7cmV0dXJuIHRoaXMucmFkaXVzPU1hdGguc3FydChvKSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMuY2VudGVyLmNvcHkodC5jZW50ZXIpLHRoaXMucmFkaXVzPXQucmFkaXVzLHRoaXN9aXNFbXB0eSgpe3JldHVybiB0aGlzLnJhZGl1czwwfW1ha2VFbXB0eSgpe3JldHVybiB0aGlzLmNlbnRlci5zZXQoMCwwLDApLHRoaXMucmFkaXVzPS0xLHRoaXN9Y29udGFpbnNQb2ludCh0KXtyZXR1cm4gdC5kaXN0YW5jZVRvU3F1YXJlZCh0aGlzLmNlbnRlcik8PXRoaXMucmFkaXVzKnRoaXMucmFkaXVzfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gdC5kaXN0YW5jZVRvKHRoaXMuY2VudGVyKS10aGlzLnJhZGl1c31pbnRlcnNlY3RzU3BoZXJlKHQpe2NvbnN0IGU9dGhpcy5yYWRpdXMrdC5yYWRpdXM7cmV0dXJuIHQuY2VudGVyLmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuY2VudGVyKTw9ZSplfWludGVyc2VjdHNCb3godCl7cmV0dXJuIHQuaW50ZXJzZWN0c1NwaGVyZSh0aGlzKX1pbnRlcnNlY3RzUGxhbmUodCl7cmV0dXJuIE1hdGguYWJzKHQuZGlzdGFuY2VUb1BvaW50KHRoaXMuY2VudGVyKSk8PXRoaXMucmFkaXVzfWNsYW1wUG9pbnQodCxlKXtjb25zdCBuPXRoaXMuY2VudGVyLmRpc3RhbmNlVG9TcXVhcmVkKHQpO3JldHVybiBlLmNvcHkodCksbj50aGlzLnJhZGl1cyp0aGlzLnJhZGl1cyYmKGUuc3ViKHRoaXMuY2VudGVyKS5ub3JtYWxpemUoKSxlLm11bHRpcGx5U2NhbGFyKHRoaXMucmFkaXVzKS5hZGQodGhpcy5jZW50ZXIpKSxlfWdldEJvdW5kaW5nQm94KHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT8odC5tYWtlRW1wdHkoKSx0KToodC5zZXQodGhpcy5jZW50ZXIsdGhpcy5jZW50ZXIpLHQuZXhwYW5kQnlTY2FsYXIodGhpcy5yYWRpdXMpLHQpfWFwcGx5TWF0cml4NCh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuYXBwbHlNYXRyaXg0KHQpLHRoaXMucmFkaXVzPXRoaXMucmFkaXVzKnQuZ2V0TWF4U2NhbGVPbkF4aXMoKSx0aGlzfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuYWRkKHQpLHRoaXN9ZXhwYW5kQnlQb2ludCh0KXtFYXQuc3ViVmVjdG9ycyh0LHRoaXMuY2VudGVyKTtjb25zdCBlPUVhdC5sZW5ndGhTcSgpO2lmKGU+dGhpcy5yYWRpdXMqdGhpcy5yYWRpdXMpe2NvbnN0IHQ9TWF0aC5zcXJ0KGUpLG49LjUqKHQtdGhpcy5yYWRpdXMpO3RoaXMuY2VudGVyLmFkZChFYXQubXVsdGlwbHlTY2FsYXIobi90KSksdGhpcy5yYWRpdXMrPW59cmV0dXJuIHRoaXN9dW5pb24odCl7cmV0dXJuIERhdC5zdWJWZWN0b3JzKHQuY2VudGVyLHRoaXMuY2VudGVyKS5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0LnJhZGl1cyksdGhpcy5leHBhbmRCeVBvaW50KFNhdC5jb3B5KHQuY2VudGVyKS5hZGQoRGF0KSksdGhpcy5leHBhbmRCeVBvaW50KFNhdC5jb3B5KHQuY2VudGVyKS5zdWIoRGF0KSksdGhpc31lcXVhbHModCl7cmV0dXJuIHQuY2VudGVyLmVxdWFscyh0aGlzLmNlbnRlcikmJnQucmFkaXVzPT09dGhpcy5yYWRpdXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9fWNvbnN0IEFhdD1uZXcgY2F0LFRhdD1uZXcgY2F0LE5hdD1uZXcgY2F0LHphdD1uZXcgY2F0LElhdD1uZXcgY2F0LEhhdD1uZXcgY2F0LEZhdD1uZXcgY2F0O2NsYXNzIExhdHtjb25zdHJ1Y3Rvcih0PW5ldyBjYXQsZT1uZXcgY2F0KDAsMCwtMSkpe3RoaXMub3JpZ2luPXQsdGhpcy5kaXJlY3Rpb249ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5vcmlnaW4uY29weSh0KSx0aGlzLmRpcmVjdGlvbi5jb3B5KGUpLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5vcmlnaW4uY29weSh0Lm9yaWdpbiksdGhpcy5kaXJlY3Rpb24uY29weSh0LmRpcmVjdGlvbiksdGhpc31hdCh0LGUpe3JldHVybiBlLmNvcHkodGhpcy5kaXJlY3Rpb24pLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLm9yaWdpbil9bG9va0F0KHQpe3JldHVybiB0aGlzLmRpcmVjdGlvbi5jb3B5KHQpLnN1Yih0aGlzLm9yaWdpbikubm9ybWFsaXplKCksdGhpc31yZWNhc3QodCl7cmV0dXJuIHRoaXMub3JpZ2luLmNvcHkodGhpcy5hdCh0LEFhdCkpLHRoaXN9Y2xvc2VzdFBvaW50VG9Qb2ludCh0LGUpe2Uuc3ViVmVjdG9ycyh0LHRoaXMub3JpZ2luKTtjb25zdCBuPWUuZG90KHRoaXMuZGlyZWN0aW9uKTtyZXR1cm4gbjwwP2UuY29weSh0aGlzLm9yaWdpbik6ZS5jb3B5KHRoaXMuZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcihuKS5hZGQodGhpcy5vcmlnaW4pfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuZGlzdGFuY2VTcVRvUG9pbnQodCkpfWRpc3RhbmNlU3FUb1BvaW50KHQpe2NvbnN0IGU9QWF0LnN1YlZlY3RvcnModCx0aGlzLm9yaWdpbikuZG90KHRoaXMuZGlyZWN0aW9uKTtyZXR1cm4gZTwwP3RoaXMub3JpZ2luLmRpc3RhbmNlVG9TcXVhcmVkKHQpOihBYXQuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIoZSkuYWRkKHRoaXMub3JpZ2luKSxBYXQuZGlzdGFuY2VUb1NxdWFyZWQodCkpfWRpc3RhbmNlU3FUb1NlZ21lbnQodCxlLG4sbyl7VGF0LmNvcHkodCkuYWRkKGUpLm11bHRpcGx5U2NhbGFyKC41KSxOYXQuY29weShlKS5zdWIodCkubm9ybWFsaXplKCksemF0LmNvcHkodGhpcy5vcmlnaW4pLnN1YihUYXQpO2NvbnN0IGk9LjUqdC5kaXN0YW5jZVRvKGUpLGE9LXRoaXMuZGlyZWN0aW9uLmRvdChOYXQpLHI9emF0LmRvdCh0aGlzLmRpcmVjdGlvbikscz0temF0LmRvdChOYXQpLGw9emF0Lmxlbmd0aFNxKCksYz1NYXRoLmFicygxLWEqYSk7bGV0IGQscCxtLHU7aWYoYz4wKWlmKGQ9YSpzLXIscD1hKnItcyx1PWkqYyxkPj0wKWlmKHA+PS11KWlmKHA8PXUpe2NvbnN0IHQ9MS9jO2QqPXQscCo9dCxtPWQqKGQrYSpwKzIqcikrcCooYSpkK3ArMipzKStsfWVsc2UgcD1pLGQ9TWF0aC5tYXgoMCwtKGEqcCtyKSksbT0tZCpkK3AqKHArMipzKStsO2Vsc2UgcD0taSxkPU1hdGgubWF4KDAsLShhKnArcikpLG09LWQqZCtwKihwKzIqcykrbDtlbHNlIHA8PS11PyhkPU1hdGgubWF4KDAsLSgtYSppK3IpKSxwPWQ+MD8taTpNYXRoLm1pbihNYXRoLm1heCgtaSwtcyksaSksbT0tZCpkK3AqKHArMipzKStsKTpwPD11PyhkPTAscD1NYXRoLm1pbihNYXRoLm1heCgtaSwtcyksaSksbT1wKihwKzIqcykrbCk6KGQ9TWF0aC5tYXgoMCwtKGEqaStyKSkscD1kPjA/aTpNYXRoLm1pbihNYXRoLm1heCgtaSwtcyksaSksbT0tZCpkK3AqKHArMipzKStsKTtlbHNlIHA9YT4wPy1pOmksZD1NYXRoLm1heCgwLC0oYSpwK3IpKSxtPS1kKmQrcCoocCsyKnMpK2w7cmV0dXJuIG4mJm4uY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIoZCkuYWRkKHRoaXMub3JpZ2luKSxvJiZvLmNvcHkoTmF0KS5tdWx0aXBseVNjYWxhcihwKS5hZGQoVGF0KSxtfWludGVyc2VjdFNwaGVyZSh0LGUpe0FhdC5zdWJWZWN0b3JzKHQuY2VudGVyLHRoaXMub3JpZ2luKTtjb25zdCBuPUFhdC5kb3QodGhpcy5kaXJlY3Rpb24pLG89QWF0LmRvdChBYXQpLW4qbixpPXQucmFkaXVzKnQucmFkaXVzO2lmKG8+aSlyZXR1cm4gbnVsbDtjb25zdCBhPU1hdGguc3FydChpLW8pLHI9bi1hLHM9bithO3JldHVybiByPDAmJnM8MD9udWxsOnRoaXMuYXQocjwwP3M6cixlKX1pbnRlcnNlY3RzU3BoZXJlKHQpe3JldHVybiB0aGlzLmRpc3RhbmNlU3FUb1BvaW50KHQuY2VudGVyKTw9dC5yYWRpdXMqdC5yYWRpdXN9ZGlzdGFuY2VUb1BsYW5lKHQpe2NvbnN0IGU9dC5ub3JtYWwuZG90KHRoaXMuZGlyZWN0aW9uKTtpZigwPT09ZSlyZXR1cm4gMD09PXQuZGlzdGFuY2VUb1BvaW50KHRoaXMub3JpZ2luKT8wOm51bGw7Y29uc3Qgbj0tKHRoaXMub3JpZ2luLmRvdCh0Lm5vcm1hbCkrdC5jb25zdGFudCkvZTtyZXR1cm4gbj49MD9uOm51bGx9aW50ZXJzZWN0UGxhbmUodCxlKXtjb25zdCBuPXRoaXMuZGlzdGFuY2VUb1BsYW5lKHQpO3JldHVybiBudWxsPT09bj9udWxsOnRoaXMuYXQobixlKX1pbnRlcnNlY3RzUGxhbmUodCl7Y29uc3QgZT10LmRpc3RhbmNlVG9Qb2ludCh0aGlzLm9yaWdpbik7cmV0dXJuIDA9PT1lfHx0Lm5vcm1hbC5kb3QodGhpcy5kaXJlY3Rpb24pKmU8MH1pbnRlcnNlY3RCb3godCxlKXtsZXQgbixvLGksYSxyLHM7Y29uc3QgbD0xL3RoaXMuZGlyZWN0aW9uLngsYz0xL3RoaXMuZGlyZWN0aW9uLnksZD0xL3RoaXMuZGlyZWN0aW9uLnoscD10aGlzLm9yaWdpbjtyZXR1cm4gbD49MD8obj0odC5taW4ueC1wLngpKmwsbz0odC5tYXgueC1wLngpKmwpOihuPSh0Lm1heC54LXAueCkqbCxvPSh0Lm1pbi54LXAueCkqbCksYz49MD8oaT0odC5taW4ueS1wLnkpKmMsYT0odC5tYXgueS1wLnkpKmMpOihpPSh0Lm1heC55LXAueSkqYyxhPSh0Lm1pbi55LXAueSkqYyksbj5hfHxpPm8/bnVsbDooKGk+bnx8biE9bikmJihuPWkpLChhPG98fG8hPW8pJiYobz1hKSxkPj0wPyhyPSh0Lm1pbi56LXAueikqZCxzPSh0Lm1heC56LXAueikqZCk6KHI9KHQubWF4LnotcC56KSpkLHM9KHQubWluLnotcC56KSpkKSxuPnN8fHI+bz9udWxsOigocj5ufHxuIT1uKSYmKG49ciksKHM8b3x8byE9bykmJihvPXMpLG88MD9udWxsOnRoaXMuYXQobj49MD9uOm8sZSkpKX1pbnRlcnNlY3RzQm94KHQpe3JldHVybiBudWxsIT09dGhpcy5pbnRlcnNlY3RCb3godCxBYXQpfWludGVyc2VjdFRyaWFuZ2xlKHQsZSxuLG8saSl7SWF0LnN1YlZlY3RvcnMoZSx0KSxIYXQuc3ViVmVjdG9ycyhuLHQpLEZhdC5jcm9zc1ZlY3RvcnMoSWF0LEhhdCk7bGV0IGEscj10aGlzLmRpcmVjdGlvbi5kb3QoRmF0KTtpZihyPjApe2lmKG8pcmV0dXJuIG51bGw7YT0xfWVsc2V7aWYoIShyPDApKXJldHVybiBudWxsO2E9LTEscj0tcn16YXQuc3ViVmVjdG9ycyh0aGlzLm9yaWdpbix0KTtjb25zdCBzPWEqdGhpcy5kaXJlY3Rpb24uZG90KEhhdC5jcm9zc1ZlY3RvcnMoemF0LEhhdCkpO2lmKHM8MClyZXR1cm4gbnVsbDtjb25zdCBsPWEqdGhpcy5kaXJlY3Rpb24uZG90KElhdC5jcm9zcyh6YXQpKTtpZihsPDApcmV0dXJuIG51bGw7aWYocytsPnIpcmV0dXJuIG51bGw7Y29uc3QgYz0tYSp6YXQuZG90KEZhdCk7cmV0dXJuIGM8MD9udWxsOnRoaXMuYXQoYy9yLGkpfWFwcGx5TWF0cml4NCh0KXtyZXR1cm4gdGhpcy5vcmlnaW4uYXBwbHlNYXRyaXg0KHQpLHRoaXMuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5vcmlnaW4uZXF1YWxzKHRoaXMub3JpZ2luKSYmdC5kaXJlY3Rpb24uZXF1YWxzKHRoaXMuZGlyZWN0aW9uKX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19Y2xhc3MgQmF0e2NvbnN0cnVjdG9yKCl7dGhpcy5lbGVtZW50cz1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV0sYXJndW1lbnRzLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiB0aGUgY29uc3RydWN0b3Igbm8gbG9uZ2VyIHJlYWRzIGFyZ3VtZW50cy4gdXNlIC5zZXQoKSBpbnN0ZWFkLiIpfXNldCh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnKXtjb25zdCBoPXRoaXMuZWxlbWVudHM7cmV0dXJuIGhbMF09dCxoWzRdPWUsaFs4XT1uLGhbMTJdPW8saFsxXT1pLGhbNV09YSxoWzldPXIsaFsxM109cyxoWzJdPWwsaFs2XT1jLGhbMTBdPWQsaFsxNF09cCxoWzNdPW0saFs3XT11LGhbMTFdPWYsaFsxNV09Zyx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDEpLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IEJhdCkuZnJvbUFycmF5KHRoaXMuZWxlbWVudHMpfWNvcHkodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztyZXR1cm4gZVswXT1uWzBdLGVbMV09blsxXSxlWzJdPW5bMl0sZVszXT1uWzNdLGVbNF09bls0XSxlWzVdPW5bNV0sZVs2XT1uWzZdLGVbN109bls3XSxlWzhdPW5bOF0sZVs5XT1uWzldLGVbMTBdPW5bMTBdLGVbMTFdPW5bMTFdLGVbMTJdPW5bMTJdLGVbMTNdPW5bMTNdLGVbMTRdPW5bMTRdLGVbMTVdPW5bMTVdLHRoaXN9Y29weVBvc2l0aW9uKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7cmV0dXJuIGVbMTJdPW5bMTJdLGVbMTNdPW5bMTNdLGVbMTRdPW5bMTRdLHRoaXN9c2V0RnJvbU1hdHJpeDModCl7Y29uc3QgZT10LmVsZW1lbnRzO3JldHVybiB0aGlzLnNldChlWzBdLGVbM10sZVs2XSwwLGVbMV0sZVs0XSxlWzddLDAsZVsyXSxlWzVdLGVbOF0sMCwwLDAsMCwxKSx0aGlzfWV4dHJhY3RCYXNpcyh0LGUsbil7cmV0dXJuIHQuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDApLGUuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDEpLG4uc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDIpLHRoaXN9bWFrZUJhc2lzKHQsZSxuKXtyZXR1cm4gdGhpcy5zZXQodC54LGUueCxuLngsMCx0LnksZS55LG4ueSwwLHQueixlLnosbi56LDAsMCwwLDAsMSksdGhpc31leHRyYWN0Um90YXRpb24odCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cyxvPTEvVmF0LnNldEZyb21NYXRyaXhDb2x1bW4odCwwKS5sZW5ndGgoKSxpPTEvVmF0LnNldEZyb21NYXRyaXhDb2x1bW4odCwxKS5sZW5ndGgoKSxhPTEvVmF0LnNldEZyb21NYXRyaXhDb2x1bW4odCwyKS5sZW5ndGgoKTtyZXR1cm4gZVswXT1uWzBdKm8sZVsxXT1uWzFdKm8sZVsyXT1uWzJdKm8sZVszXT0wLGVbNF09bls0XSppLGVbNV09bls1XSppLGVbNl09bls2XSppLGVbN109MCxlWzhdPW5bOF0qYSxlWzldPW5bOV0qYSxlWzEwXT1uWzEwXSphLGVbMTFdPTAsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTAsZVsxNV09MSx0aGlzfW1ha2VSb3RhdGlvbkZyb21FdWxlcih0KXt0JiZ0LmlzRXVsZXJ8fGNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5tYWtlUm90YXRpb25Gcm9tRXVsZXIoKSBub3cgZXhwZWN0cyBhIEV1bGVyIHJvdGF0aW9uIHJhdGhlciB0aGFuIGEgVmVjdG9yMyBhbmQgb3JkZXIuIik7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC54LG89dC55LGk9dC56LGE9TWF0aC5jb3Mobikscj1NYXRoLnNpbihuKSxzPU1hdGguY29zKG8pLGw9TWF0aC5zaW4obyksYz1NYXRoLmNvcyhpKSxkPU1hdGguc2luKGkpO2lmKCJYWVoiPT09dC5vcmRlcil7Y29uc3QgdD1hKmMsbj1hKmQsbz1yKmMsaT1yKmQ7ZVswXT1zKmMsZVs0XT0tcypkLGVbOF09bCxlWzFdPW4rbypsLGVbNV09dC1pKmwsZVs5XT0tcipzLGVbMl09aS10KmwsZVs2XT1vK24qbCxlWzEwXT1hKnN9ZWxzZSBpZigiWVhaIj09PXQub3JkZXIpe2NvbnN0IHQ9cypjLG49cypkLG89bCpjLGk9bCpkO2VbMF09dCtpKnIsZVs0XT1vKnItbixlWzhdPWEqbCxlWzFdPWEqZCxlWzVdPWEqYyxlWzldPS1yLGVbMl09bipyLW8sZVs2XT1pK3QqcixlWzEwXT1hKnN9ZWxzZSBpZigiWlhZIj09PXQub3JkZXIpe2NvbnN0IHQ9cypjLG49cypkLG89bCpjLGk9bCpkO2VbMF09dC1pKnIsZVs0XT0tYSpkLGVbOF09bytuKnIsZVsxXT1uK28qcixlWzVdPWEqYyxlWzldPWktdCpyLGVbMl09LWEqbCxlWzZdPXIsZVsxMF09YSpzfWVsc2UgaWYoIlpZWCI9PT10Lm9yZGVyKXtjb25zdCB0PWEqYyxuPWEqZCxvPXIqYyxpPXIqZDtlWzBdPXMqYyxlWzRdPW8qbC1uLGVbOF09dCpsK2ksZVsxXT1zKmQsZVs1XT1pKmwrdCxlWzldPW4qbC1vLGVbMl09LWwsZVs2XT1yKnMsZVsxMF09YSpzfWVsc2UgaWYoIllaWCI9PT10Lm9yZGVyKXtjb25zdCB0PWEqcyxuPWEqbCxvPXIqcyxpPXIqbDtlWzBdPXMqYyxlWzRdPWktdCpkLGVbOF09bypkK24sZVsxXT1kLGVbNV09YSpjLGVbOV09LXIqYyxlWzJdPS1sKmMsZVs2XT1uKmQrbyxlWzEwXT10LWkqZH1lbHNlIGlmKCJYWlkiPT09dC5vcmRlcil7Y29uc3QgdD1hKnMsbj1hKmwsbz1yKnMsaT1yKmw7ZVswXT1zKmMsZVs0XT0tZCxlWzhdPWwqYyxlWzFdPXQqZCtpLGVbNV09YSpjLGVbOV09bipkLW8sZVsyXT1vKmQtbixlWzZdPXIqYyxlWzEwXT1pKmQrdH1yZXR1cm4gZVszXT0wLGVbN109MCxlWzExXT0wLGVbMTJdPTAsZVsxM109MCxlWzE0XT0wLGVbMTVdPTEsdGhpc31tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy5jb21wb3NlKFVhdCx0LEdhdCl9bG9va0F0KHQsZSxuKXtjb25zdCBvPXRoaXMuZWxlbWVudHM7cmV0dXJuIHFhdC5zdWJWZWN0b3JzKHQsZSksMD09PXFhdC5sZW5ndGhTcSgpJiYocWF0Lno9MSkscWF0Lm5vcm1hbGl6ZSgpLFdhdC5jcm9zc1ZlY3RvcnMobixxYXQpLDA9PT1XYXQubGVuZ3RoU3EoKSYmKDE9PT1NYXRoLmFicyhuLnopP3FhdC54Kz0xZS00OnFhdC56Kz0xZS00LHFhdC5ub3JtYWxpemUoKSxXYXQuY3Jvc3NWZWN0b3JzKG4scWF0KSksV2F0Lm5vcm1hbGl6ZSgpLFlhdC5jcm9zc1ZlY3RvcnMocWF0LFdhdCksb1swXT1XYXQueCxvWzRdPVlhdC54LG9bOF09cWF0Lngsb1sxXT1XYXQueSxvWzVdPVlhdC55LG9bOV09cWF0Lnksb1syXT1XYXQueixvWzZdPVlhdC56LG9bMTBdPXFhdC56LHRoaXN9bXVsdGlwbHkodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHkoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5tdWx0aXBseU1hdHJpY2VzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLm11bHRpcGx5TWF0cmljZXModCxlKSk6dGhpcy5tdWx0aXBseU1hdHJpY2VzKHRoaXMsdCl9cHJlbXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0LHRoaXMpfW11bHRpcGx5TWF0cmljZXModCxlKXtjb25zdCBuPXQuZWxlbWVudHMsbz1lLmVsZW1lbnRzLGk9dGhpcy5lbGVtZW50cyxhPW5bMF0scj1uWzRdLHM9bls4XSxsPW5bMTJdLGM9blsxXSxkPW5bNV0scD1uWzldLG09blsxM10sdT1uWzJdLGY9bls2XSxnPW5bMTBdLGg9blsxNF0sYj1uWzNdLHk9bls3XSxfPW5bMTFdLEM9blsxNV0sTT1vWzBdLHY9b1s0XSx4PW9bOF0sTz1vWzEyXSxQPW9bMV0sdz1vWzVdLGs9b1s5XSxTPW9bMTNdLEQ9b1syXSxFPW9bNl0sUj1vWzEwXSxBPW9bMTRdLFQ9b1szXSxOPW9bN10sej1vWzExXSxJPW9bMTVdO3JldHVybiBpWzBdPWEqTStyKlArcypEK2wqVCxpWzRdPWEqdityKncrcypFK2wqTixpWzhdPWEqeCtyKmsrcypSK2wqeixpWzEyXT1hKk8rcipTK3MqQStsKkksaVsxXT1jKk0rZCpQK3AqRCttKlQsaVs1XT1jKnYrZCp3K3AqRSttKk4saVs5XT1jKngrZCprK3AqUittKnosaVsxM109YypPK2QqUytwKkErbSpJLGlbMl09dSpNK2YqUCtnKkQraCpULGlbNl09dSp2K2YqdytnKkUraCpOLGlbMTBdPXUqeCtmKmsrZypSK2gqeixpWzE0XT11Kk8rZipTK2cqQStoKkksaVszXT1iKk0reSpQK18qRCtDKlQsaVs3XT1iKnYreSp3K18qRStDKk4saVsxMV09Yip4K3kqaytfKlIrQyp6LGlbMTVdPWIqTyt5KlMrXypBK0MqSSx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cztyZXR1cm4gZVswXSo9dCxlWzRdKj10LGVbOF0qPXQsZVsxMl0qPXQsZVsxXSo9dCxlWzVdKj10LGVbOV0qPXQsZVsxM10qPXQsZVsyXSo9dCxlWzZdKj10LGVbMTBdKj10LGVbMTRdKj10LGVbM10qPXQsZVs3XSo9dCxlWzExXSo9dCxlWzE1XSo9dCx0aGlzfWRldGVybWluYW50KCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxuPXRbNF0sbz10WzhdLGk9dFsxMl0sYT10WzFdLHI9dFs1XSxzPXRbOV0sbD10WzEzXSxjPXRbMl0sZD10WzZdLHA9dFsxMF0sbT10WzE0XTtyZXR1cm4gdFszXSooK2kqcypkLW8qbCpkLWkqcipwK24qbCpwK28qciptLW4qcyptKSt0WzddKigrZSpzKm0tZSpsKnAraSphKnAtbyphKm0rbypsKmMtaSpzKmMpK3RbMTFdKigrZSpsKmQtZSpyKm0taSphKmQrbiphKm0raSpyKmMtbipsKmMpK3RbMTVdKigtbypyKmMtZSpzKmQrZSpyKnArbyphKmQtbiphKnArbipzKmMpfXRyYW5zcG9zZSgpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cztsZXQgZTtyZXR1cm4gZT10WzFdLHRbMV09dFs0XSx0WzRdPWUsZT10WzJdLHRbMl09dFs4XSx0WzhdPWUsZT10WzZdLHRbNl09dFs5XSx0WzldPWUsZT10WzNdLHRbM109dFsxMl0sdFsxMl09ZSxlPXRbN10sdFs3XT10WzEzXSx0WzEzXT1lLGU9dFsxMV0sdFsxMV09dFsxNF0sdFsxNF09ZSx0aGlzfXNldFBvc2l0aW9uKHQsZSxuKXtjb25zdCBvPXRoaXMuZWxlbWVudHM7cmV0dXJuIHQuaXNWZWN0b3IzPyhvWzEyXT10Lngsb1sxM109dC55LG9bMTRdPXQueik6KG9bMTJdPXQsb1sxM109ZSxvWzE0XT1uKSx0aGlzfWludmVydCgpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cyxlPXRbMF0sbj10WzFdLG89dFsyXSxpPXRbM10sYT10WzRdLHI9dFs1XSxzPXRbNl0sbD10WzddLGM9dFs4XSxkPXRbOV0scD10WzEwXSxtPXRbMTFdLHU9dFsxMl0sZj10WzEzXSxnPXRbMTRdLGg9dFsxNV0sYj1kKmcqbC1mKnAqbCtmKnMqbS1yKmcqbS1kKnMqaCtyKnAqaCx5PXUqcCpsLWMqZypsLXUqcyptK2EqZyptK2MqcypoLWEqcCpoLF89YypmKmwtdSpkKmwrdSpyKm0tYSpmKm0tYypyKmgrYSpkKmgsQz11KmQqcy1jKmYqcy11KnIqcCthKmYqcCtjKnIqZy1hKmQqZyxNPWUqYituKnkrbypfK2kqQztpZigwPT09TSlyZXR1cm4gdGhpcy5zZXQoMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCk7Y29uc3Qgdj0xL007cmV0dXJuIHRbMF09Yip2LHRbMV09KGYqcCppLWQqZyppLWYqbyptK24qZyptK2QqbypoLW4qcCpoKSp2LHRbMl09KHIqZyppLWYqcyppK2YqbypsLW4qZypsLXIqbypoK24qcypoKSp2LHRbM109KGQqcyppLXIqcCppLWQqbypsK24qcCpsK3IqbyptLW4qcyptKSp2LHRbNF09eSp2LHRbNV09KGMqZyppLXUqcCppK3UqbyptLWUqZyptLWMqbypoK2UqcCpoKSp2LHRbNl09KHUqcyppLWEqZyppLXUqbypsK2UqZypsK2EqbypoLWUqcypoKSp2LHRbN109KGEqcCppLWMqcyppK2MqbypsLWUqcCpsLWEqbyptK2UqcyptKSp2LHRbOF09Xyp2LHRbOV09KHUqZCppLWMqZippLXUqbiptK2UqZiptK2MqbipoLWUqZCpoKSp2LHRbMTBdPShhKmYqaS11KnIqaSt1Km4qbC1lKmYqbC1hKm4qaCtlKnIqaCkqdix0WzExXT0oYypyKmktYSpkKmktYypuKmwrZSpkKmwrYSpuKm0tZSpyKm0pKnYsdFsxMl09Qyp2LHRbMTNdPShjKmYqby11KmQqbyt1Km4qcC1lKmYqcC1jKm4qZytlKmQqZykqdix0WzE0XT0odSpyKm8tYSpmKm8tdSpuKnMrZSpmKnMrYSpuKmctZSpyKmcpKnYsdFsxNV09KGEqZCpvLWMqcipvK2MqbipzLWUqZCpzLWEqbipwK2UqcipwKSp2LHRoaXN9c2NhbGUodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC54LG89dC55LGk9dC56O3JldHVybiBlWzBdKj1uLGVbNF0qPW8sZVs4XSo9aSxlWzFdKj1uLGVbNV0qPW8sZVs5XSo9aSxlWzJdKj1uLGVbNl0qPW8sZVsxMF0qPWksZVszXSo9bixlWzddKj1vLGVbMTFdKj1pLHRoaXN9Z2V0TWF4U2NhbGVPbkF4aXMoKXtjb25zdCB0PXRoaXMuZWxlbWVudHM7cmV0dXJuIE1hdGguc3FydChNYXRoLm1heCh0WzBdKnRbMF0rdFsxXSp0WzFdK3RbMl0qdFsyXSx0WzRdKnRbNF0rdFs1XSp0WzVdK3RbNl0qdFs2XSx0WzhdKnRbOF0rdFs5XSp0WzldK3RbMTBdKnRbMTBdKSl9bWFrZVRyYW5zbGF0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsdCwwLDEsMCxlLDAsMCwxLG4sMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25YKHQpe2NvbnN0IGU9TWF0aC5jb3ModCksbj1NYXRoLnNpbih0KTtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwwLGUsLW4sMCwwLG4sZSwwLDAsMCwwLDEpLHRoaXN9bWFrZVJvdGF0aW9uWSh0KXtjb25zdCBlPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCk7cmV0dXJuIHRoaXMuc2V0KGUsMCxuLDAsMCwxLDAsMCwtbiwwLGUsMCwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvbloodCl7Y29uc3QgZT1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpO3JldHVybiB0aGlzLnNldChlLC1uLDAsMCxuLGUsMCwwLDAsMCwxLDAsMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25BeGlzKHQsZSl7Y29uc3Qgbj1NYXRoLmNvcyhlKSxvPU1hdGguc2luKGUpLGk9MS1uLGE9dC54LHI9dC55LHM9dC56LGw9aSphLGM9aSpyO3JldHVybiB0aGlzLnNldChsKmErbixsKnItbypzLGwqcytvKnIsMCxsKnIrbypzLGMqcituLGMqcy1vKmEsMCxsKnMtbypyLGMqcytvKmEsaSpzKnMrbiwwLDAsMCwwLDEpLHRoaXN9bWFrZVNjYWxlKHQsZSxuKXtyZXR1cm4gdGhpcy5zZXQodCwwLDAsMCwwLGUsMCwwLDAsMCxuLDAsMCwwLDAsMSksdGhpc31tYWtlU2hlYXIodCxlLG4sbyxpLGEpe3JldHVybiB0aGlzLnNldCgxLG4saSwwLHQsMSxhLDAsZSxvLDEsMCwwLDAsMCwxKSx0aGlzfWNvbXBvc2UodCxlLG4pe2NvbnN0IG89dGhpcy5lbGVtZW50cyxpPWUuX3gsYT1lLl95LHI9ZS5feixzPWUuX3csbD1pK2ksYz1hK2EsZD1yK3IscD1pKmwsbT1pKmMsdT1pKmQsZj1hKmMsZz1hKmQsaD1yKmQsYj1zKmwseT1zKmMsXz1zKmQsQz1uLngsTT1uLnksdj1uLno7cmV0dXJuIG9bMF09KDEtKGYraCkpKkMsb1sxXT0obStfKSpDLG9bMl09KHUteSkqQyxvWzNdPTAsb1s0XT0obS1fKSpNLG9bNV09KDEtKHAraCkpKk0sb1s2XT0oZytiKSpNLG9bN109MCxvWzhdPSh1K3kpKnYsb1s5XT0oZy1iKSp2LG9bMTBdPSgxLShwK2YpKSp2LG9bMTFdPTAsb1sxMl09dC54LG9bMTNdPXQueSxvWzE0XT10Lnosb1sxNV09MSx0aGlzfWRlY29tcG9zZSh0LGUsbil7Y29uc3Qgbz10aGlzLmVsZW1lbnRzO2xldCBpPVZhdC5zZXQob1swXSxvWzFdLG9bMl0pLmxlbmd0aCgpO2NvbnN0IGE9VmF0LnNldChvWzRdLG9bNV0sb1s2XSkubGVuZ3RoKCkscj1WYXQuc2V0KG9bOF0sb1s5XSxvWzEwXSkubGVuZ3RoKCk7dGhpcy5kZXRlcm1pbmFudCgpPDAmJihpPS1pKSx0Lng9b1sxMl0sdC55PW9bMTNdLHQuej1vWzE0XSxqYXQuY29weSh0aGlzKTtjb25zdCBzPTEvaSxsPTEvYSxjPTEvcjtyZXR1cm4gamF0LmVsZW1lbnRzWzBdKj1zLGphdC5lbGVtZW50c1sxXSo9cyxqYXQuZWxlbWVudHNbMl0qPXMsamF0LmVsZW1lbnRzWzRdKj1sLGphdC5lbGVtZW50c1s1XSo9bCxqYXQuZWxlbWVudHNbNl0qPWwsamF0LmVsZW1lbnRzWzhdKj1jLGphdC5lbGVtZW50c1s5XSo9YyxqYXQuZWxlbWVudHNbMTBdKj1jLGUuc2V0RnJvbVJvdGF0aW9uTWF0cml4KGphdCksbi54PWksbi55PWEsbi56PXIsdGhpc31tYWtlUGVyc3BlY3RpdmUodCxlLG4sbyxpLGEpe3ZvaWQgMD09PWEmJmNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm1ha2VQZXJzcGVjdGl2ZSgpIGhhcyBiZWVuIHJlZGVmaW5lZCBhbmQgaGFzIGEgbmV3IHNpZ25hdHVyZS4gUGxlYXNlIGNoZWNrIHRoZSBkb2NzLiIpO2NvbnN0IHI9dGhpcy5lbGVtZW50cyxzPTIqaS8obi1vKSxsPShlK3QpLyhlLXQpLGM9KG4rbykvKG4tbyksZD0tKGEraSkvKGEtaSkscD0tMiphKmkvKGEtaSk7cmV0dXJuIHJbMF09MippLyhlLXQpLHJbNF09MCxyWzhdPWwsclsxMl09MCxyWzFdPTAscls1XT1zLHJbOV09YyxyWzEzXT0wLHJbMl09MCxyWzZdPTAsclsxMF09ZCxyWzE0XT1wLHJbM109MCxyWzddPTAsclsxMV09LTEsclsxNV09MCx0aGlzfW1ha2VPcnRob2dyYXBoaWModCxlLG4sbyxpLGEpe2NvbnN0IHI9dGhpcy5lbGVtZW50cyxzPTEvKGUtdCksbD0xLyhuLW8pLGM9MS8oYS1pKSxkPShlK3QpKnMscD0obitvKSpsLG09KGEraSkqYztyZXR1cm4gclswXT0yKnMscls0XT0wLHJbOF09MCxyWzEyXT0tZCxyWzFdPTAscls1XT0yKmwscls5XT0wLHJbMTNdPS1wLHJbMl09MCxyWzZdPTAsclsxMF09LTIqYyxyWzE0XT0tbSxyWzNdPTAscls3XT0wLHJbMTFdPTAsclsxNV09MSx0aGlzfWVxdWFscyh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzO2ZvcihsZXQgdD0wO3Q8MTY7dCsrKWlmKGVbdF0hPT1uW3RdKXJldHVybiExO3JldHVybiEwfWZyb21BcnJheSh0LGU9MCl7Zm9yKGxldCBuPTA7bjwxNjtuKyspdGhpcy5lbGVtZW50c1tuXT10W24rZV07cmV0dXJuIHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7Y29uc3Qgbj10aGlzLmVsZW1lbnRzO3JldHVybiB0W2VdPW5bMF0sdFtlKzFdPW5bMV0sdFtlKzJdPW5bMl0sdFtlKzNdPW5bM10sdFtlKzRdPW5bNF0sdFtlKzVdPW5bNV0sdFtlKzZdPW5bNl0sdFtlKzddPW5bN10sdFtlKzhdPW5bOF0sdFtlKzldPW5bOV0sdFtlKzEwXT1uWzEwXSx0W2UrMTFdPW5bMTFdLHRbZSsxMl09blsxMl0sdFtlKzEzXT1uWzEzXSx0W2UrMTRdPW5bMTRdLHRbZSsxNV09blsxNV0sdH19QmF0LnByb3RvdHlwZS5pc01hdHJpeDQ9ITA7Y29uc3QgVmF0PW5ldyBjYXQsamF0PW5ldyBCYXQsVWF0PW5ldyBjYXQoMCwwLDApLEdhdD1uZXcgY2F0KDEsMSwxKSxXYXQ9bmV3IGNhdCxZYXQ9bmV3IGNhdCxxYXQ9bmV3IGNhdCxaYXQ9bmV3IEJhdCxYYXQ9bmV3IGxhdDtjbGFzcyBLYXR7Y29uc3RydWN0b3IodD0wLGU9MCxuPTAsbz1LYXQuRGVmYXVsdE9yZGVyKXt0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3o9bix0aGlzLl9vcmRlcj1vfWdldCB4KCl7cmV0dXJuIHRoaXMuX3h9c2V0IHgodCl7dGhpcy5feD10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeSgpe3JldHVybiB0aGlzLl95fXNldCB5KHQpe3RoaXMuX3k9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHooKXtyZXR1cm4gdGhpcy5fen1zZXQgeih0KXt0aGlzLl96PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCBvcmRlcigpe3JldHVybiB0aGlzLl9vcmRlcn1zZXQgb3JkZXIodCl7dGhpcy5fb3JkZXI9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9c2V0KHQsZSxuLG89dGhpcy5fb3JkZXIpe3JldHVybiB0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3o9bix0aGlzLl9vcmRlcj1vLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuX3gsdGhpcy5feSx0aGlzLl96LHRoaXMuX29yZGVyKX1jb3B5KHQpe3JldHVybiB0aGlzLl94PXQuX3gsdGhpcy5feT10Ll95LHRoaXMuX3o9dC5feix0aGlzLl9vcmRlcj10Ll9vcmRlcix0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUm90YXRpb25NYXRyaXgodCxlPXRoaXMuX29yZGVyLG49ITApe2NvbnN0IG89dC5lbGVtZW50cyxpPW9bMF0sYT1vWzRdLHI9b1s4XSxzPW9bMV0sbD1vWzVdLGM9b1s5XSxkPW9bMl0scD1vWzZdLG09b1sxMF07c3dpdGNoKGUpe2Nhc2UiWFlaIjp0aGlzLl95PU1hdGguYXNpbihaaXQociwtMSwxKSksTWF0aC5hYnMocik8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMigtYyxtKSx0aGlzLl96PU1hdGguYXRhbjIoLWEsaSkpOih0aGlzLl94PU1hdGguYXRhbjIocCxsKSx0aGlzLl96PTApO2JyZWFrO2Nhc2UiWVhaIjp0aGlzLl94PU1hdGguYXNpbigtWml0KGMsLTEsMSkpLE1hdGguYWJzKGMpPC45OTk5OTk5Pyh0aGlzLl95PU1hdGguYXRhbjIocixtKSx0aGlzLl96PU1hdGguYXRhbjIocyxsKSk6KHRoaXMuX3k9TWF0aC5hdGFuMigtZCxpKSx0aGlzLl96PTApO2JyZWFrO2Nhc2UiWlhZIjp0aGlzLl94PU1hdGguYXNpbihaaXQocCwtMSwxKSksTWF0aC5hYnMocCk8Ljk5OTk5OTk/KHRoaXMuX3k9TWF0aC5hdGFuMigtZCxtKSx0aGlzLl96PU1hdGguYXRhbjIoLWEsbCkpOih0aGlzLl95PTAsdGhpcy5fej1NYXRoLmF0YW4yKHMsaSkpO2JyZWFrO2Nhc2UiWllYIjp0aGlzLl95PU1hdGguYXNpbigtWml0KGQsLTEsMSkpLE1hdGguYWJzKGQpPC45OTk5OTk5Pyh0aGlzLl94PU1hdGguYXRhbjIocCxtKSx0aGlzLl96PU1hdGguYXRhbjIocyxpKSk6KHRoaXMuX3g9MCx0aGlzLl96PU1hdGguYXRhbjIoLWEsbCkpO2JyZWFrO2Nhc2UiWVpYIjp0aGlzLl96PU1hdGguYXNpbihaaXQocywtMSwxKSksTWF0aC5hYnMocyk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMigtYyxsKSx0aGlzLl95PU1hdGguYXRhbjIoLWQsaSkpOih0aGlzLl94PTAsdGhpcy5feT1NYXRoLmF0YW4yKHIsbSkpO2JyZWFrO2Nhc2UiWFpZIjp0aGlzLl96PU1hdGguYXNpbigtWml0KGEsLTEsMSkpLE1hdGguYWJzKGEpPC45OTk5OTk5Pyh0aGlzLl94PU1hdGguYXRhbjIocCxsKSx0aGlzLl95PU1hdGguYXRhbjIocixpKSk6KHRoaXMuX3g9TWF0aC5hdGFuMigtYyxtKSx0aGlzLl95PTApO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5FdWxlcjogLnNldEZyb21Sb3RhdGlvbk1hdHJpeCgpIGVuY291bnRlcmVkIGFuIHVua25vd24gb3JkZXI6ICIrZSl9cmV0dXJuIHRoaXMuX29yZGVyPWUsITA9PT1uJiZ0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUXVhdGVybmlvbih0LGUsbil7cmV0dXJuIFphdC5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KSx0aGlzLnNldEZyb21Sb3RhdGlvbk1hdHJpeChaYXQsZSxuKX1zZXRGcm9tVmVjdG9yMyh0LGU9dGhpcy5fb3JkZXIpe3JldHVybiB0aGlzLnNldCh0LngsdC55LHQueixlKX1yZW9yZGVyKHQpe3JldHVybiBYYXQuc2V0RnJvbUV1bGVyKHRoaXMpLHRoaXMuc2V0RnJvbVF1YXRlcm5pb24oWGF0LHQpfWVxdWFscyh0KXtyZXR1cm4gdC5feD09PXRoaXMuX3gmJnQuX3k9PT10aGlzLl95JiZ0Ll96PT09dGhpcy5feiYmdC5fb3JkZXI9PT10aGlzLl9vcmRlcn1mcm9tQXJyYXkodCl7cmV0dXJuIHRoaXMuX3g9dFswXSx0aGlzLl95PXRbMV0sdGhpcy5fej10WzJdLHZvaWQgMCE9PXRbM10mJih0aGlzLl9vcmRlcj10WzNdKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLl94LHRbZSsxXT10aGlzLl95LHRbZSsyXT10aGlzLl96LHRbZSszXT10aGlzLl9vcmRlcix0fXRvVmVjdG9yMyh0KXtyZXR1cm4gdD90LnNldCh0aGlzLl94LHRoaXMuX3ksdGhpcy5feik6bmV3IGNhdCh0aGlzLl94LHRoaXMuX3ksdGhpcy5feil9X29uQ2hhbmdlKHQpe3JldHVybiB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrPXQsdGhpc31fb25DaGFuZ2VDYWxsYmFjaygpe319S2F0LnByb3RvdHlwZS5pc0V1bGVyPSEwLEthdC5EZWZhdWx0T3JkZXI9IlhZWiIsS2F0LlJvdGF0aW9uT3JkZXJzPVsiWFlaIiwiWVpYIiwiWlhZIiwiWFpZIiwiWVhaIiwiWllYIl07Y2xhc3MgSmF0e2NvbnN0cnVjdG9yKCl7dGhpcy5tYXNrPTF9c2V0KHQpe3RoaXMubWFzaz0xPDx0fDB9ZW5hYmxlKHQpe3RoaXMubWFza3w9MTw8dHwwfWVuYWJsZUFsbCgpe3RoaXMubWFzaz0tMX10b2dnbGUodCl7dGhpcy5tYXNrXj0xPDx0fDB9ZGlzYWJsZSh0KXt0aGlzLm1hc2smPX4oMTw8dHwwKX1kaXNhYmxlQWxsKCl7dGhpcy5tYXNrPTB9dGVzdCh0KXtyZXR1cm4gMCE9KHRoaXMubWFzayZ0Lm1hc2spfX1sZXQgUWF0PTA7Y29uc3QgJGF0PW5ldyBjYXQsdHJ0PW5ldyBsYXQsZXJ0PW5ldyBCYXQsbnJ0PW5ldyBjYXQsb3J0PW5ldyBjYXQsaXJ0PW5ldyBjYXQsYXJ0PW5ldyBsYXQscnJ0PW5ldyBjYXQoMSwwLDApLHNydD1uZXcgY2F0KDAsMSwwKSxscnQ9bmV3IGNhdCgwLDAsMSksY3J0PXt0eXBlOiJhZGRlZCJ9LGRydD17dHlwZToicmVtb3ZlZCJ9O2NsYXNzIHBydCBleHRlbmRzIFVpdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6UWF0Kyt9KSx0aGlzLnV1aWQ9cWl0KCksdGhpcy5uYW1lPSIiLHRoaXMudHlwZT0iT2JqZWN0M0QiLHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbj1bXSx0aGlzLnVwPXBydC5EZWZhdWx0VXAuY2xvbmUoKTtjb25zdCB0PW5ldyBjYXQsZT1uZXcgS2F0LG49bmV3IGxhdCxvPW5ldyBjYXQoMSwxLDEpO2UuX29uQ2hhbmdlKChmdW5jdGlvbiBpKCl7bi5zZXRGcm9tRXVsZXIoZSwhMSl9KSksbi5fb25DaGFuZ2UoKGZ1bmN0aW9uIGEoKXtlLnNldEZyb21RdWF0ZXJuaW9uKG4sdm9pZCAwLCExKX0pKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLHtwb3NpdGlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6dH0scm90YXRpb246e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOmV9LHF1YXRlcm5pb246e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm59LHNjYWxlOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpvfSxtb2RlbFZpZXdNYXRyaXg6e3ZhbHVlOm5ldyBCYXR9LG5vcm1hbE1hdHJpeDp7dmFsdWU6bmV3ICRpdH19KSx0aGlzLm1hdHJpeD1uZXcgQmF0LHRoaXMubWF0cml4V29ybGQ9bmV3IEJhdCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9cHJ0LkRlZmF1bHRNYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMSx0aGlzLmxheWVycz1uZXcgSmF0LHRoaXMudmlzaWJsZT0hMCx0aGlzLmNhc3RTaGFkb3c9ITEsdGhpcy5yZWNlaXZlU2hhZG93PSExLHRoaXMuZnJ1c3R1bUN1bGxlZD0hMCx0aGlzLnJlbmRlck9yZGVyPTAsdGhpcy5hbmltYXRpb25zPVtdLHRoaXMudXNlckRhdGE9e319b25CZWZvcmVSZW5kZXIoKXt9b25BZnRlclJlbmRlcigpe31hcHBseU1hdHJpeDQodCl7dGhpcy5tYXRyaXhBdXRvVXBkYXRlJiZ0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMubWF0cml4LnByZW11bHRpcGx5KHQpLHRoaXMubWF0cml4LmRlY29tcG9zZSh0aGlzLnBvc2l0aW9uLHRoaXMucXVhdGVybmlvbix0aGlzLnNjYWxlKX1hcHBseVF1YXRlcm5pb24odCl7cmV0dXJuIHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseSh0KSx0aGlzfXNldFJvdGF0aW9uRnJvbUF4aXNBbmdsZSh0LGUpe3RoaXMucXVhdGVybmlvbi5zZXRGcm9tQXhpc0FuZ2xlKHQsZSl9c2V0Um90YXRpb25Gcm9tRXVsZXIodCl7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21FdWxlcih0LCEwKX1zZXRSb3RhdGlvbkZyb21NYXRyaXgodCl7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21Sb3RhdGlvbk1hdHJpeCh0KX1zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpe3RoaXMucXVhdGVybmlvbi5jb3B5KHQpfXJvdGF0ZU9uQXhpcyh0LGUpe3JldHVybiB0cnQuc2V0RnJvbUF4aXNBbmdsZSh0LGUpLHRoaXMucXVhdGVybmlvbi5tdWx0aXBseSh0cnQpLHRoaXN9cm90YXRlT25Xb3JsZEF4aXModCxlKXtyZXR1cm4gdHJ0LnNldEZyb21BeGlzQW5nbGUodCxlKSx0aGlzLnF1YXRlcm5pb24ucHJlbXVsdGlwbHkodHJ0KSx0aGlzfXJvdGF0ZVgodCl7cmV0dXJuIHRoaXMucm90YXRlT25BeGlzKHJydCx0KX1yb3RhdGVZKHQpe3JldHVybiB0aGlzLnJvdGF0ZU9uQXhpcyhzcnQsdCl9cm90YXRlWih0KXtyZXR1cm4gdGhpcy5yb3RhdGVPbkF4aXMobHJ0LHQpfXRyYW5zbGF0ZU9uQXhpcyh0LGUpe3JldHVybiAkYXQuY29weSh0KS5hcHBseVF1YXRlcm5pb24odGhpcy5xdWF0ZXJuaW9uKSx0aGlzLnBvc2l0aW9uLmFkZCgkYXQubXVsdGlwbHlTY2FsYXIoZSkpLHRoaXN9dHJhbnNsYXRlWCh0KXtyZXR1cm4gdGhpcy50cmFuc2xhdGVPbkF4aXMocnJ0LHQpfXRyYW5zbGF0ZVkodCl7cmV0dXJuIHRoaXMudHJhbnNsYXRlT25BeGlzKHNydCx0KX10cmFuc2xhdGVaKHQpe3JldHVybiB0aGlzLnRyYW5zbGF0ZU9uQXhpcyhscnQsdCl9bG9jYWxUb1dvcmxkKHQpe3JldHVybiB0LmFwcGx5TWF0cml4NCh0aGlzLm1hdHJpeFdvcmxkKX13b3JsZFRvTG9jYWwodCl7cmV0dXJuIHQuYXBwbHlNYXRyaXg0KGVydC5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpKX1sb29rQXQodCxlLG4pe3QuaXNWZWN0b3IzP25ydC5jb3B5KHQpOm5ydC5zZXQodCxlLG4pO2NvbnN0IG89dGhpcy5wYXJlbnQ7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksb3J0LnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLm1hdHJpeFdvcmxkKSx0aGlzLmlzQ2FtZXJhfHx0aGlzLmlzTGlnaHQ/ZXJ0Lmxvb2tBdChvcnQsbnJ0LHRoaXMudXApOmVydC5sb29rQXQobnJ0LG9ydCx0aGlzLnVwKSx0aGlzLnF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KGVydCksbyYmKGVydC5leHRyYWN0Um90YXRpb24oby5tYXRyaXhXb3JsZCksdHJ0LnNldEZyb21Sb3RhdGlvbk1hdHJpeChlcnQpLHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseSh0cnQuaW52ZXJ0KCkpKX1hZGQodCl7aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtmb3IobGV0IHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXRoaXMuYWRkKGFyZ3VtZW50c1t0XSk7cmV0dXJuIHRoaXN9cmV0dXJuIHQ9PT10aGlzPyhjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3QzRC5hZGQ6IG9iamVjdCBjYW4ndCBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIGl0c2VsZi4iLHQpLHRoaXMpOih0JiZ0LmlzT2JqZWN0M0Q/KG51bGwhPT10LnBhcmVudCYmdC5wYXJlbnQucmVtb3ZlKHQpLHQucGFyZW50PXRoaXMsdGhpcy5jaGlsZHJlbi5wdXNoKHQpLHQuZGlzcGF0Y2hFdmVudChjcnQpKTpjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3QzRC5hZGQ6IG9iamVjdCBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuT2JqZWN0M0QuIix0KSx0aGlzKX1yZW1vdmUodCl7aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtmb3IobGV0IHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXRoaXMucmVtb3ZlKGFyZ3VtZW50c1t0XSk7cmV0dXJuIHRoaXN9Y29uc3QgZT10aGlzLmNoaWxkcmVuLmluZGV4T2YodCk7cmV0dXJuLTEhPT1lJiYodC5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuLnNwbGljZShlLDEpLHQuZGlzcGF0Y2hFdmVudChkcnQpKSx0aGlzfXJlbW92ZUZyb21QYXJlbnQoKXtjb25zdCB0PXRoaXMucGFyZW50O3JldHVybiBudWxsIT09dCYmdC5yZW1vdmUodGhpcyksdGhpc31jbGVhcigpe2ZvcihsZXQgdD0wO3Q8dGhpcy5jaGlsZHJlbi5sZW5ndGg7dCsrKXtjb25zdCBlPXRoaXMuY2hpbGRyZW5bdF07ZS5wYXJlbnQ9bnVsbCxlLmRpc3BhdGNoRXZlbnQoZHJ0KX1yZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGg9MCx0aGlzfWF0dGFjaCh0KXtyZXR1cm4gdGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksZXJ0LmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCksbnVsbCE9PXQucGFyZW50JiYodC5wYXJlbnQudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLGVydC5tdWx0aXBseSh0LnBhcmVudC5tYXRyaXhXb3JsZCkpLHQuYXBwbHlNYXRyaXg0KGVydCksdGhpcy5hZGQodCksdC51cGRhdGVXb3JsZE1hdHJpeCghMSwhMCksdGhpc31nZXRPYmplY3RCeUlkKHQpe3JldHVybiB0aGlzLmdldE9iamVjdEJ5UHJvcGVydHkoImlkIix0KX1nZXRPYmplY3RCeU5hbWUodCl7cmV0dXJuIHRoaXMuZ2V0T2JqZWN0QnlQcm9wZXJ0eSgibmFtZSIsdCl9Z2V0T2JqZWN0QnlQcm9wZXJ0eSh0LGUpe2lmKHRoaXNbdF09PT1lKXJldHVybiB0aGlzO2ZvcihsZXQgbj0wLG89dGhpcy5jaGlsZHJlbi5sZW5ndGg7bjxvO24rKyl7Y29uc3Qgbz10aGlzLmNoaWxkcmVuW25dLmdldE9iamVjdEJ5UHJvcGVydHkodCxlKTtpZih2b2lkIDAhPT1vKXJldHVybiBvfX1nZXRXb3JsZFBvc2l0aW9uKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0LnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLm1hdHJpeFdvcmxkKX1nZXRXb3JsZFF1YXRlcm5pb24odCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4V29ybGQuZGVjb21wb3NlKG9ydCx0LGlydCksdH1nZXRXb3JsZFNjYWxlKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0aGlzLm1hdHJpeFdvcmxkLmRlY29tcG9zZShvcnQsYXJ0LHQpLHR9Z2V0V29ybGREaXJlY3Rpb24odCl7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSk7Y29uc3QgZT10aGlzLm1hdHJpeFdvcmxkLmVsZW1lbnRzO3JldHVybiB0LnNldChlWzhdLGVbOV0sZVsxMF0pLm5vcm1hbGl6ZSgpfXJheWNhc3QoKXt9dHJhdmVyc2UodCl7dCh0aGlzKTtjb25zdCBlPXRoaXMuY2hpbGRyZW47Zm9yKGxldCBuPTAsbz1lLmxlbmd0aDtuPG87bisrKWVbbl0udHJhdmVyc2UodCl9dHJhdmVyc2VWaXNpYmxlKHQpe2lmKCExPT09dGhpcy52aXNpYmxlKXJldHVybjt0KHRoaXMpO2NvbnN0IGU9dGhpcy5jaGlsZHJlbjtmb3IobGV0IG49MCxvPWUubGVuZ3RoO248bztuKyspZVtuXS50cmF2ZXJzZVZpc2libGUodCl9dHJhdmVyc2VBbmNlc3RvcnModCl7Y29uc3QgZT10aGlzLnBhcmVudDtudWxsIT09ZSYmKHQoZSksZS50cmF2ZXJzZUFuY2VzdG9ycyh0KSl9dXBkYXRlTWF0cml4KCl7dGhpcy5tYXRyaXguY29tcG9zZSh0aGlzLnBvc2l0aW9uLHRoaXMucXVhdGVybmlvbix0aGlzLnNjYWxlKSx0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9dXBkYXRlTWF0cml4V29ybGQodCl7dGhpcy5tYXRyaXhBdXRvVXBkYXRlJiZ0aGlzLnVwZGF0ZU1hdHJpeCgpLCh0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGV8fHQpJiYobnVsbD09PXRoaXMucGFyZW50P3RoaXMubWF0cml4V29ybGQuY29weSh0aGlzLm1hdHJpeCk6dGhpcy5tYXRyaXhXb3JsZC5tdWx0aXBseU1hdHJpY2VzKHRoaXMucGFyZW50Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4KSx0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITEsdD0hMCk7Y29uc3QgZT10aGlzLmNoaWxkcmVuO2ZvcihsZXQgbj0wLG89ZS5sZW5ndGg7bjxvO24rKyllW25dLnVwZGF0ZU1hdHJpeFdvcmxkKHQpfXVwZGF0ZVdvcmxkTWF0cml4KHQsZSl7Y29uc3Qgbj10aGlzLnBhcmVudDtpZighMD09PXQmJm51bGwhPT1uJiZuLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksbnVsbD09PXRoaXMucGFyZW50P3RoaXMubWF0cml4V29ybGQuY29weSh0aGlzLm1hdHJpeCk6dGhpcy5tYXRyaXhXb3JsZC5tdWx0aXBseU1hdHJpY2VzKHRoaXMucGFyZW50Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4KSwhMD09PWUpe2NvbnN0IHQ9dGhpcy5jaGlsZHJlbjtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspdFtlXS51cGRhdGVXb3JsZE1hdHJpeCghMSwhMCl9fXRvSlNPTih0KXtjb25zdCBlPXZvaWQgMD09PXR8fCJzdHJpbmciPT10eXBlb2YgdCxuPXt9O2UmJih0PXtnZW9tZXRyaWVzOnt9LG1hdGVyaWFsczp7fSx0ZXh0dXJlczp7fSxpbWFnZXM6e30sc2hhcGVzOnt9LHNrZWxldG9uczp7fSxhbmltYXRpb25zOnt9fSxuLm1ldGFkYXRhPXt2ZXJzaW9uOjQuNSx0eXBlOiJPYmplY3QiLGdlbmVyYXRvcjoiT2JqZWN0M0QudG9KU09OIn0pO2NvbnN0IG89e307ZnVuY3Rpb24gaShlLG4pe3JldHVybiB2b2lkIDA9PT1lW24udXVpZF0mJihlW24udXVpZF09bi50b0pTT04odCkpLG4udXVpZH1pZihvLnV1aWQ9dGhpcy51dWlkLG8udHlwZT10aGlzLnR5cGUsIiIhPT10aGlzLm5hbWUmJihvLm5hbWU9dGhpcy5uYW1lKSwhMD09PXRoaXMuY2FzdFNoYWRvdyYmKG8uY2FzdFNoYWRvdz0hMCksITA9PT10aGlzLnJlY2VpdmVTaGFkb3cmJihvLnJlY2VpdmVTaGFkb3c9ITApLCExPT09dGhpcy52aXNpYmxlJiYoby52aXNpYmxlPSExKSwhMT09PXRoaXMuZnJ1c3R1bUN1bGxlZCYmKG8uZnJ1c3R1bUN1bGxlZD0hMSksMCE9PXRoaXMucmVuZGVyT3JkZXImJihvLnJlbmRlck9yZGVyPXRoaXMucmVuZGVyT3JkZXIpLCJ7fSIhPT1KU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJEYXRhKSYmKG8udXNlckRhdGE9dGhpcy51c2VyRGF0YSksby5sYXllcnM9dGhpcy5sYXllcnMubWFzayxvLm1hdHJpeD10aGlzLm1hdHJpeC50b0FycmF5KCksITE9PT10aGlzLm1hdHJpeEF1dG9VcGRhdGUmJihvLm1hdHJpeEF1dG9VcGRhdGU9ITEpLHRoaXMuaXNJbnN0YW5jZWRNZXNoJiYoby50eXBlPSJJbnN0YW5jZWRNZXNoIixvLmNvdW50PXRoaXMuY291bnQsby5pbnN0YW5jZU1hdHJpeD10aGlzLmluc3RhbmNlTWF0cml4LnRvSlNPTigpLG51bGwhPT10aGlzLmluc3RhbmNlQ29sb3ImJihvLmluc3RhbmNlQ29sb3I9dGhpcy5pbnN0YW5jZUNvbG9yLnRvSlNPTigpKSksdGhpcy5pc1NjZW5lKXRoaXMuYmFja2dyb3VuZCYmKHRoaXMuYmFja2dyb3VuZC5pc0NvbG9yP28uYmFja2dyb3VuZD10aGlzLmJhY2tncm91bmQudG9KU09OKCk6dGhpcy5iYWNrZ3JvdW5kLmlzVGV4dHVyZSYmKG8uYmFja2dyb3VuZD10aGlzLmJhY2tncm91bmQudG9KU09OKHQpLnV1aWQpKSx0aGlzLmVudmlyb25tZW50JiZ0aGlzLmVudmlyb25tZW50LmlzVGV4dHVyZSYmKG8uZW52aXJvbm1lbnQ9dGhpcy5lbnZpcm9ubWVudC50b0pTT04odCkudXVpZCk7ZWxzZSBpZih0aGlzLmlzTWVzaHx8dGhpcy5pc0xpbmV8fHRoaXMuaXNQb2ludHMpe28uZ2VvbWV0cnk9aSh0Lmdlb21ldHJpZXMsdGhpcy5nZW9tZXRyeSk7Y29uc3QgZT10aGlzLmdlb21ldHJ5LnBhcmFtZXRlcnM7aWYodm9pZCAwIT09ZSYmdm9pZCAwIT09ZS5zaGFwZXMpe2NvbnN0IG49ZS5zaGFwZXM7aWYoQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IGU9MCxvPW4ubGVuZ3RoO2U8bztlKyspaSh0LnNoYXBlcyxuW2VdKTtlbHNlIGkodC5zaGFwZXMsbil9fWlmKHRoaXMuaXNTa2lubmVkTWVzaCYmKG8uYmluZE1vZGU9dGhpcy5iaW5kTW9kZSxvLmJpbmRNYXRyaXg9dGhpcy5iaW5kTWF0cml4LnRvQXJyYXkoKSx2b2lkIDAhPT10aGlzLnNrZWxldG9uJiYoaSh0LnNrZWxldG9ucyx0aGlzLnNrZWxldG9uKSxvLnNrZWxldG9uPXRoaXMuc2tlbGV0b24udXVpZCkpLHZvaWQgMCE9PXRoaXMubWF0ZXJpYWwpaWYoQXJyYXkuaXNBcnJheSh0aGlzLm1hdGVyaWFsKSl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxvPXRoaXMubWF0ZXJpYWwubGVuZ3RoO248bztuKyspZS5wdXNoKGkodC5tYXRlcmlhbHMsdGhpcy5tYXRlcmlhbFtuXSkpO28ubWF0ZXJpYWw9ZX1lbHNlIG8ubWF0ZXJpYWw9aSh0Lm1hdGVyaWFscyx0aGlzLm1hdGVyaWFsKTtpZih0aGlzLmNoaWxkcmVuLmxlbmd0aD4wKXtvLmNoaWxkcmVuPVtdO2ZvcihsZXQgZT0wO2U8dGhpcy5jaGlsZHJlbi5sZW5ndGg7ZSsrKW8uY2hpbGRyZW4ucHVzaCh0aGlzLmNoaWxkcmVuW2VdLnRvSlNPTih0KS5vYmplY3QpfWlmKHRoaXMuYW5pbWF0aW9ucy5sZW5ndGg+MCl7by5hbmltYXRpb25zPVtdO2ZvcihsZXQgZT0wO2U8dGhpcy5hbmltYXRpb25zLmxlbmd0aDtlKyspby5hbmltYXRpb25zLnB1c2goaSh0LmFuaW1hdGlvbnMsdGhpcy5hbmltYXRpb25zW2VdKSl9aWYoZSl7Y29uc3QgZT1hKHQuZ2VvbWV0cmllcyksbz1hKHQubWF0ZXJpYWxzKSxpPWEodC50ZXh0dXJlcykscj1hKHQuaW1hZ2VzKSxzPWEodC5zaGFwZXMpLGw9YSh0LnNrZWxldG9ucyksYz1hKHQuYW5pbWF0aW9ucyk7ZS5sZW5ndGg+MCYmKG4uZ2VvbWV0cmllcz1lKSxvLmxlbmd0aD4wJiYobi5tYXRlcmlhbHM9byksaS5sZW5ndGg+MCYmKG4udGV4dHVyZXM9aSksci5sZW5ndGg+MCYmKG4uaW1hZ2VzPXIpLHMubGVuZ3RoPjAmJihuLnNoYXBlcz1zKSxsLmxlbmd0aD4wJiYobi5za2VsZXRvbnM9bCksYy5sZW5ndGg+MCYmKG4uYW5pbWF0aW9ucz1jKX1yZXR1cm4gbi5vYmplY3Q9byxuO2Z1bmN0aW9uIGEodCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgbiBpbiB0KXtjb25zdCBvPXRbbl07ZGVsZXRlIG8ubWV0YWRhdGEsZS5wdXNoKG8pfXJldHVybiBlfX1jbG9uZSh0KXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyx0KX1jb3B5KHQsZT0hMCl7aWYodGhpcy5uYW1lPXQubmFtZSx0aGlzLnVwLmNvcHkodC51cCksdGhpcy5wb3NpdGlvbi5jb3B5KHQucG9zaXRpb24pLHRoaXMucm90YXRpb24ub3JkZXI9dC5yb3RhdGlvbi5vcmRlcix0aGlzLnF1YXRlcm5pb24uY29weSh0LnF1YXRlcm5pb24pLHRoaXMuc2NhbGUuY29weSh0LnNjYWxlKSx0aGlzLm1hdHJpeC5jb3B5KHQubWF0cml4KSx0aGlzLm1hdHJpeFdvcmxkLmNvcHkodC5tYXRyaXhXb3JsZCksdGhpcy5tYXRyaXhBdXRvVXBkYXRlPXQubWF0cml4QXV0b1VwZGF0ZSx0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9dC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlLHRoaXMubGF5ZXJzLm1hc2s9dC5sYXllcnMubWFzayx0aGlzLnZpc2libGU9dC52aXNpYmxlLHRoaXMuY2FzdFNoYWRvdz10LmNhc3RTaGFkb3csdGhpcy5yZWNlaXZlU2hhZG93PXQucmVjZWl2ZVNoYWRvdyx0aGlzLmZydXN0dW1DdWxsZWQ9dC5mcnVzdHVtQ3VsbGVkLHRoaXMucmVuZGVyT3JkZXI9dC5yZW5kZXJPcmRlcix0aGlzLnVzZXJEYXRhPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodC51c2VyRGF0YSkpLCEwPT09ZSlmb3IobGV0IGU9MDtlPHQuY2hpbGRyZW4ubGVuZ3RoO2UrKyl0aGlzLmFkZCh0LmNoaWxkcmVuW2VdLmNsb25lKCkpO3JldHVybiB0aGlzfX1wcnQuRGVmYXVsdFVwPW5ldyBjYXQoMCwxLDApLHBydC5EZWZhdWx0TWF0cml4QXV0b1VwZGF0ZT0hMCxwcnQucHJvdG90eXBlLmlzT2JqZWN0M0Q9ITA7Y29uc3QgbXJ0PW5ldyBjYXQsdXJ0PW5ldyBjYXQsZnJ0PW5ldyBjYXQsZ3J0PW5ldyBjYXQsaHJ0PW5ldyBjYXQsYnJ0PW5ldyBjYXQseXJ0PW5ldyBjYXQsX3J0PW5ldyBjYXQsQ3J0PW5ldyBjYXQsTXJ0PW5ldyBjYXQ7Y2xhc3MgdnJ0e2NvbnN0cnVjdG9yKHQ9bmV3IGNhdCxlPW5ldyBjYXQsbj1uZXcgY2F0KXt0aGlzLmE9dCx0aGlzLmI9ZSx0aGlzLmM9bn1zdGF0aWMgZ2V0Tm9ybWFsKHQsZSxuLG8pe28uc3ViVmVjdG9ycyhuLGUpLG1ydC5zdWJWZWN0b3JzKHQsZSksby5jcm9zcyhtcnQpO2NvbnN0IGk9by5sZW5ndGhTcSgpO3JldHVybiBpPjA/by5tdWx0aXBseVNjYWxhcigxL01hdGguc3FydChpKSk6by5zZXQoMCwwLDApfXN0YXRpYyBnZXRCYXJ5Y29vcmQodCxlLG4sbyxpKXttcnQuc3ViVmVjdG9ycyhvLGUpLHVydC5zdWJWZWN0b3JzKG4sZSksZnJ0LnN1YlZlY3RvcnModCxlKTtjb25zdCBhPW1ydC5kb3QobXJ0KSxyPW1ydC5kb3QodXJ0KSxzPW1ydC5kb3QoZnJ0KSxsPXVydC5kb3QodXJ0KSxjPXVydC5kb3QoZnJ0KSxkPWEqbC1yKnI7aWYoMD09PWQpcmV0dXJuIGkuc2V0KC0yLC0xLC0xKTtjb25zdCBwPTEvZCxtPShsKnMtcipjKSpwLHU9KGEqYy1yKnMpKnA7cmV0dXJuIGkuc2V0KDEtbS11LHUsbSl9c3RhdGljIGNvbnRhaW5zUG9pbnQodCxlLG4sbyl7cmV0dXJuIHRoaXMuZ2V0QmFyeWNvb3JkKHQsZSxuLG8sZ3J0KSxncnQueD49MCYmZ3J0Lnk+PTAmJmdydC54K2dydC55PD0xfXN0YXRpYyBnZXRVVih0LGUsbixvLGksYSxyLHMpe3JldHVybiB0aGlzLmdldEJhcnljb29yZCh0LGUsbixvLGdydCkscy5zZXQoMCwwKSxzLmFkZFNjYWxlZFZlY3RvcihpLGdydC54KSxzLmFkZFNjYWxlZFZlY3RvcihhLGdydC55KSxzLmFkZFNjYWxlZFZlY3RvcihyLGdydC56KSxzfXN0YXRpYyBpc0Zyb250RmFjaW5nKHQsZSxuLG8pe3JldHVybiBtcnQuc3ViVmVjdG9ycyhuLGUpLHVydC5zdWJWZWN0b3JzKHQsZSksbXJ0LmNyb3NzKHVydCkuZG90KG8pPDB9c2V0KHQsZSxuKXtyZXR1cm4gdGhpcy5hLmNvcHkodCksdGhpcy5iLmNvcHkoZSksdGhpcy5jLmNvcHkobiksdGhpc31zZXRGcm9tUG9pbnRzQW5kSW5kaWNlcyh0LGUsbixvKXtyZXR1cm4gdGhpcy5hLmNvcHkodFtlXSksdGhpcy5iLmNvcHkodFtuXSksdGhpcy5jLmNvcHkodFtvXSksdGhpc31jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLmEuY29weSh0LmEpLHRoaXMuYi5jb3B5KHQuYiksdGhpcy5jLmNvcHkodC5jKSx0aGlzfWdldEFyZWEoKXtyZXR1cm4gbXJ0LnN1YlZlY3RvcnModGhpcy5jLHRoaXMuYiksdXJ0LnN1YlZlY3RvcnModGhpcy5hLHRoaXMuYiksLjUqbXJ0LmNyb3NzKHVydCkubGVuZ3RoKCl9Z2V0TWlkcG9pbnQodCl7cmV0dXJuIHQuYWRkVmVjdG9ycyh0aGlzLmEsdGhpcy5iKS5hZGQodGhpcy5jKS5tdWx0aXBseVNjYWxhcigxLzMpfWdldE5vcm1hbCh0KXtyZXR1cm4gdnJ0LmdldE5vcm1hbCh0aGlzLmEsdGhpcy5iLHRoaXMuYyx0KX1nZXRQbGFuZSh0KXtyZXR1cm4gdC5zZXRGcm9tQ29wbGFuYXJQb2ludHModGhpcy5hLHRoaXMuYix0aGlzLmMpfWdldEJhcnljb29yZCh0LGUpe3JldHVybiB2cnQuZ2V0QmFyeWNvb3JkKHQsdGhpcy5hLHRoaXMuYix0aGlzLmMsZSl9Z2V0VVYodCxlLG4sbyxpKXtyZXR1cm4gdnJ0LmdldFVWKHQsdGhpcy5hLHRoaXMuYix0aGlzLmMsZSxuLG8saSl9Y29udGFpbnNQb2ludCh0KXtyZXR1cm4gdnJ0LmNvbnRhaW5zUG9pbnQodCx0aGlzLmEsdGhpcy5iLHRoaXMuYyl9aXNGcm9udEZhY2luZyh0KXtyZXR1cm4gdnJ0LmlzRnJvbnRGYWNpbmcodGhpcy5hLHRoaXMuYix0aGlzLmMsdCl9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzVHJpYW5nbGUodGhpcyl9Y2xvc2VzdFBvaW50VG9Qb2ludCh0LGUpe2NvbnN0IG49dGhpcy5hLG89dGhpcy5iLGk9dGhpcy5jO2xldCBhLHI7aHJ0LnN1YlZlY3RvcnMobyxuKSxicnQuc3ViVmVjdG9ycyhpLG4pLF9ydC5zdWJWZWN0b3JzKHQsbik7Y29uc3Qgcz1ocnQuZG90KF9ydCksbD1icnQuZG90KF9ydCk7aWYoczw9MCYmbDw9MClyZXR1cm4gZS5jb3B5KG4pO0NydC5zdWJWZWN0b3JzKHQsbyk7Y29uc3QgYz1ocnQuZG90KENydCksZD1icnQuZG90KENydCk7aWYoYz49MCYmZDw9YylyZXR1cm4gZS5jb3B5KG8pO2NvbnN0IHA9cypkLWMqbDtpZihwPD0wJiZzPj0wJiZjPD0wKXJldHVybiBhPXMvKHMtYyksZS5jb3B5KG4pLmFkZFNjYWxlZFZlY3RvcihocnQsYSk7TXJ0LnN1YlZlY3RvcnModCxpKTtjb25zdCBtPWhydC5kb3QoTXJ0KSx1PWJydC5kb3QoTXJ0KTtpZih1Pj0wJiZtPD11KXJldHVybiBlLmNvcHkoaSk7Y29uc3QgZj1tKmwtcyp1O2lmKGY8PTAmJmw+PTAmJnU8PTApcmV0dXJuIHI9bC8obC11KSxlLmNvcHkobikuYWRkU2NhbGVkVmVjdG9yKGJydCxyKTtjb25zdCBnPWMqdS1tKmQ7aWYoZzw9MCYmZC1jPj0wJiZtLXU+PTApcmV0dXJuIHlydC5zdWJWZWN0b3JzKGksbykscj0oZC1jKS8oZC1jKyhtLXUpKSxlLmNvcHkobykuYWRkU2NhbGVkVmVjdG9yKHlydCxyKTtjb25zdCBoPTEvKGcrZitwKTtyZXR1cm4gYT1mKmgscj1wKmgsZS5jb3B5KG4pLmFkZFNjYWxlZFZlY3RvcihocnQsYSkuYWRkU2NhbGVkVmVjdG9yKGJydCxyKX1lcXVhbHModCl7cmV0dXJuIHQuYS5lcXVhbHModGhpcy5hKSYmdC5iLmVxdWFscyh0aGlzLmIpJiZ0LmMuZXF1YWxzKHRoaXMuYyl9fWxldCB4cnQ9MDtjbGFzcyBPcnQgZXh0ZW5kcyBVaXR7Y29uc3RydWN0b3IoKXtzdXBlcigpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJpZCIse3ZhbHVlOnhydCsrfSksdGhpcy51dWlkPXFpdCgpLHRoaXMubmFtZT0iIix0aGlzLnR5cGU9Ik1hdGVyaWFsIix0aGlzLmZvZz0hMCx0aGlzLmJsZW5kaW5nPTEsdGhpcy5zaWRlPTAsdGhpcy52ZXJ0ZXhDb2xvcnM9ITEsdGhpcy5vcGFjaXR5PTEsdGhpcy50cmFuc3BhcmVudD0hMSx0aGlzLmJsZW5kU3JjPTIwNCx0aGlzLmJsZW5kRHN0PTIwNSx0aGlzLmJsZW5kRXF1YXRpb249Y2l0LHRoaXMuYmxlbmRTcmNBbHBoYT1udWxsLHRoaXMuYmxlbmREc3RBbHBoYT1udWxsLHRoaXMuYmxlbmRFcXVhdGlvbkFscGhhPW51bGwsdGhpcy5kZXB0aEZ1bmM9Myx0aGlzLmRlcHRoVGVzdD0hMCx0aGlzLmRlcHRoV3JpdGU9ITAsdGhpcy5zdGVuY2lsV3JpdGVNYXNrPTI1NSx0aGlzLnN0ZW5jaWxGdW5jPTUxOSx0aGlzLnN0ZW5jaWxSZWY9MCx0aGlzLnN0ZW5jaWxGdW5jTWFzaz0yNTUsdGhpcy5zdGVuY2lsRmFpbD1MaXQsdGhpcy5zdGVuY2lsWkZhaWw9TGl0LHRoaXMuc3RlbmNpbFpQYXNzPUxpdCx0aGlzLnN0ZW5jaWxXcml0ZT0hMSx0aGlzLmNsaXBwaW5nUGxhbmVzPW51bGwsdGhpcy5jbGlwSW50ZXJzZWN0aW9uPSExLHRoaXMuY2xpcFNoYWRvd3M9ITEsdGhpcy5zaGFkb3dTaWRlPW51bGwsdGhpcy5jb2xvcldyaXRlPSEwLHRoaXMucHJlY2lzaW9uPW51bGwsdGhpcy5wb2x5Z29uT2Zmc2V0PSExLHRoaXMucG9seWdvbk9mZnNldEZhY3Rvcj0wLHRoaXMucG9seWdvbk9mZnNldFVuaXRzPTAsdGhpcy5kaXRoZXJpbmc9ITEsdGhpcy5hbHBoYVRlc3Q9MCx0aGlzLmFscGhhVG9Db3ZlcmFnZT0hMSx0aGlzLnByZW11bHRpcGxpZWRBbHBoYT0hMSx0aGlzLnZpc2libGU9ITAsdGhpcy50b25lTWFwcGVkPSEwLHRoaXMudXNlckRhdGE9e30sdGhpcy52ZXJzaW9uPTB9b25CdWlsZCgpe31vbkJlZm9yZUNvbXBpbGUoKXt9Y3VzdG9tUHJvZ3JhbUNhY2hlS2V5KCl7cmV0dXJuIHRoaXMub25CZWZvcmVDb21waWxlLnRvU3RyaW5nKCl9c2V0VmFsdWVzKHQpe2lmKHZvaWQgMCE9PXQpZm9yKGNvbnN0IGUgaW4gdCl7Y29uc3Qgbj10W2VdO2lmKHZvaWQgMD09PW4pe2NvbnNvbGUud2FybigiVEhSRUUuTWF0ZXJpYWw6ICciK2UrIicgcGFyYW1ldGVyIGlzIHVuZGVmaW5lZC4iKTtjb250aW51ZX1pZigic2hhZGluZyI9PT1lKXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKSx0aGlzLmZsYXRTaGFkaW5nPTE9PT1uO2NvbnRpbnVlfWNvbnN0IG89dGhpc1tlXTt2b2lkIDAhPT1vP28mJm8uaXNDb2xvcj9vLnNldChuKTpvJiZvLmlzVmVjdG9yMyYmbiYmbi5pc1ZlY3RvcjM/by5jb3B5KG4pOnRoaXNbZV09bjpjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6ICciK2UrIicgaXMgbm90IGEgcHJvcGVydHkgb2YgdGhpcyBtYXRlcmlhbC4iKX19dG9KU09OKHQpe2NvbnN0IGU9dm9pZCAwPT09dHx8InN0cmluZyI9PXR5cGVvZiB0O2UmJih0PXt0ZXh0dXJlczp7fSxpbWFnZXM6e319KTtjb25zdCBuPXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiTWF0ZXJpYWwiLGdlbmVyYXRvcjoiTWF0ZXJpYWwudG9KU09OIn19O2Z1bmN0aW9uIG8odCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgbiBpbiB0KXtjb25zdCBvPXRbbl07ZGVsZXRlIG8ubWV0YWRhdGEsZS5wdXNoKG8pfXJldHVybiBlfWlmKG4udXVpZD10aGlzLnV1aWQsbi50eXBlPXRoaXMudHlwZSwiIiE9PXRoaXMubmFtZSYmKG4ubmFtZT10aGlzLm5hbWUpLHRoaXMuY29sb3ImJnRoaXMuY29sb3IuaXNDb2xvciYmKG4uY29sb3I9dGhpcy5jb2xvci5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5yb3VnaG5lc3MmJihuLnJvdWdobmVzcz10aGlzLnJvdWdobmVzcyksdm9pZCAwIT09dGhpcy5tZXRhbG5lc3MmJihuLm1ldGFsbmVzcz10aGlzLm1ldGFsbmVzcyksdGhpcy5zaGVlbiYmdGhpcy5zaGVlbi5pc0NvbG9yJiYobi5zaGVlbj10aGlzLnNoZWVuLmdldEhleCgpKSx0aGlzLmVtaXNzaXZlJiZ0aGlzLmVtaXNzaXZlLmlzQ29sb3ImJihuLmVtaXNzaXZlPXRoaXMuZW1pc3NpdmUuZ2V0SGV4KCkpLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHkmJjEhPT10aGlzLmVtaXNzaXZlSW50ZW5zaXR5JiYobi5lbWlzc2l2ZUludGVuc2l0eT10aGlzLmVtaXNzaXZlSW50ZW5zaXR5KSx0aGlzLnNwZWN1bGFyJiZ0aGlzLnNwZWN1bGFyLmlzQ29sb3ImJihuLnNwZWN1bGFyPXRoaXMuc3BlY3VsYXIuZ2V0SGV4KCkpLHZvaWQgMCE9PXRoaXMuc3BlY3VsYXJJbnRlbnNpdHkmJihuLnNwZWN1bGFySW50ZW5zaXR5PXRoaXMuc3BlY3VsYXJJbnRlbnNpdHkpLHRoaXMuc3BlY3VsYXJUaW50JiZ0aGlzLnNwZWN1bGFyVGludC5pc0NvbG9yJiYobi5zcGVjdWxhclRpbnQ9dGhpcy5zcGVjdWxhclRpbnQuZ2V0SGV4KCkpLHZvaWQgMCE9PXRoaXMuc2hpbmluZXNzJiYobi5zaGluaW5lc3M9dGhpcy5zaGluaW5lc3MpLHZvaWQgMCE9PXRoaXMuY2xlYXJjb2F0JiYobi5jbGVhcmNvYXQ9dGhpcy5jbGVhcmNvYXQpLHZvaWQgMCE9PXRoaXMuY2xlYXJjb2F0Um91Z2huZXNzJiYobi5jbGVhcmNvYXRSb3VnaG5lc3M9dGhpcy5jbGVhcmNvYXRSb3VnaG5lc3MpLHRoaXMuY2xlYXJjb2F0TWFwJiZ0aGlzLmNsZWFyY29hdE1hcC5pc1RleHR1cmUmJihuLmNsZWFyY29hdE1hcD10aGlzLmNsZWFyY29hdE1hcC50b0pTT04odCkudXVpZCksdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXAmJnRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwLmlzVGV4dHVyZSYmKG4uY2xlYXJjb2F0Um91Z2huZXNzTWFwPXRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmNsZWFyY29hdE5vcm1hbE1hcCYmdGhpcy5jbGVhcmNvYXROb3JtYWxNYXAuaXNUZXh0dXJlJiYobi5jbGVhcmNvYXROb3JtYWxNYXA9dGhpcy5jbGVhcmNvYXROb3JtYWxNYXAudG9KU09OKHQpLnV1aWQsbi5jbGVhcmNvYXROb3JtYWxTY2FsZT10aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlLnRvQXJyYXkoKSksdGhpcy5tYXAmJnRoaXMubWFwLmlzVGV4dHVyZSYmKG4ubWFwPXRoaXMubWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLm1hdGNhcCYmdGhpcy5tYXRjYXAuaXNUZXh0dXJlJiYobi5tYXRjYXA9dGhpcy5tYXRjYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuYWxwaGFNYXAmJnRoaXMuYWxwaGFNYXAuaXNUZXh0dXJlJiYobi5hbHBoYU1hcD10aGlzLmFscGhhTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmxpZ2h0TWFwJiZ0aGlzLmxpZ2h0TWFwLmlzVGV4dHVyZSYmKG4ubGlnaHRNYXA9dGhpcy5saWdodE1hcC50b0pTT04odCkudXVpZCxuLmxpZ2h0TWFwSW50ZW5zaXR5PXRoaXMubGlnaHRNYXBJbnRlbnNpdHkpLHRoaXMuYW9NYXAmJnRoaXMuYW9NYXAuaXNUZXh0dXJlJiYobi5hb01hcD10aGlzLmFvTWFwLnRvSlNPTih0KS51dWlkLG4uYW9NYXBJbnRlbnNpdHk9dGhpcy5hb01hcEludGVuc2l0eSksdGhpcy5idW1wTWFwJiZ0aGlzLmJ1bXBNYXAuaXNUZXh0dXJlJiYobi5idW1wTWFwPXRoaXMuYnVtcE1hcC50b0pTT04odCkudXVpZCxuLmJ1bXBTY2FsZT10aGlzLmJ1bXBTY2FsZSksdGhpcy5ub3JtYWxNYXAmJnRoaXMubm9ybWFsTWFwLmlzVGV4dHVyZSYmKG4ubm9ybWFsTWFwPXRoaXMubm9ybWFsTWFwLnRvSlNPTih0KS51dWlkLG4ubm9ybWFsTWFwVHlwZT10aGlzLm5vcm1hbE1hcFR5cGUsbi5ub3JtYWxTY2FsZT10aGlzLm5vcm1hbFNjYWxlLnRvQXJyYXkoKSksdGhpcy5kaXNwbGFjZW1lbnRNYXAmJnRoaXMuZGlzcGxhY2VtZW50TWFwLmlzVGV4dHVyZSYmKG4uZGlzcGxhY2VtZW50TWFwPXRoaXMuZGlzcGxhY2VtZW50TWFwLnRvSlNPTih0KS51dWlkLG4uZGlzcGxhY2VtZW50U2NhbGU9dGhpcy5kaXNwbGFjZW1lbnRTY2FsZSxuLmRpc3BsYWNlbWVudEJpYXM9dGhpcy5kaXNwbGFjZW1lbnRCaWFzKSx0aGlzLnJvdWdobmVzc01hcCYmdGhpcy5yb3VnaG5lc3NNYXAuaXNUZXh0dXJlJiYobi5yb3VnaG5lc3NNYXA9dGhpcy5yb3VnaG5lc3NNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMubWV0YWxuZXNzTWFwJiZ0aGlzLm1ldGFsbmVzc01hcC5pc1RleHR1cmUmJihuLm1ldGFsbmVzc01hcD10aGlzLm1ldGFsbmVzc01hcC50b0pTT04odCkudXVpZCksdGhpcy5lbWlzc2l2ZU1hcCYmdGhpcy5lbWlzc2l2ZU1hcC5pc1RleHR1cmUmJihuLmVtaXNzaXZlTWFwPXRoaXMuZW1pc3NpdmVNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuc3BlY3VsYXJNYXAmJnRoaXMuc3BlY3VsYXJNYXAuaXNUZXh0dXJlJiYobi5zcGVjdWxhck1hcD10aGlzLnNwZWN1bGFyTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5TWFwJiZ0aGlzLnNwZWN1bGFySW50ZW5zaXR5TWFwLmlzVGV4dHVyZSYmKG4uc3BlY3VsYXJJbnRlbnNpdHlNYXA9dGhpcy5zcGVjdWxhckludGVuc2l0eU1hcC50b0pTT04odCkudXVpZCksdGhpcy5zcGVjdWxhclRpbnRNYXAmJnRoaXMuc3BlY3VsYXJUaW50TWFwLmlzVGV4dHVyZSYmKG4uc3BlY3VsYXJUaW50TWFwPXRoaXMuc3BlY3VsYXJUaW50TWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmVudk1hcCYmdGhpcy5lbnZNYXAuaXNUZXh0dXJlJiYobi5lbnZNYXA9dGhpcy5lbnZNYXAudG9KU09OKHQpLnV1aWQsdm9pZCAwIT09dGhpcy5jb21iaW5lJiYobi5jb21iaW5lPXRoaXMuY29tYmluZSkpLHZvaWQgMCE9PXRoaXMuZW52TWFwSW50ZW5zaXR5JiYobi5lbnZNYXBJbnRlbnNpdHk9dGhpcy5lbnZNYXBJbnRlbnNpdHkpLHZvaWQgMCE9PXRoaXMucmVmbGVjdGl2aXR5JiYobi5yZWZsZWN0aXZpdHk9dGhpcy5yZWZsZWN0aXZpdHkpLHZvaWQgMCE9PXRoaXMucmVmcmFjdGlvblJhdGlvJiYobi5yZWZyYWN0aW9uUmF0aW89dGhpcy5yZWZyYWN0aW9uUmF0aW8pLHRoaXMuZ3JhZGllbnRNYXAmJnRoaXMuZ3JhZGllbnRNYXAuaXNUZXh0dXJlJiYobi5ncmFkaWVudE1hcD10aGlzLmdyYWRpZW50TWFwLnRvSlNPTih0KS51dWlkKSx2b2lkIDAhPT10aGlzLnRyYW5zbWlzc2lvbiYmKG4udHJhbnNtaXNzaW9uPXRoaXMudHJhbnNtaXNzaW9uKSx0aGlzLnRyYW5zbWlzc2lvbk1hcCYmdGhpcy50cmFuc21pc3Npb25NYXAuaXNUZXh0dXJlJiYobi50cmFuc21pc3Npb25NYXA9dGhpcy50cmFuc21pc3Npb25NYXAudG9KU09OKHQpLnV1aWQpLHZvaWQgMCE9PXRoaXMudGhpY2tuZXNzJiYobi50aGlja25lc3M9dGhpcy50aGlja25lc3MpLHRoaXMudGhpY2tuZXNzTWFwJiZ0aGlzLnRoaWNrbmVzc01hcC5pc1RleHR1cmUmJihuLnRoaWNrbmVzc01hcD10aGlzLnRoaWNrbmVzc01hcC50b0pTT04odCkudXVpZCksdm9pZCAwIT09dGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlJiYobi5hdHRlbnVhdGlvbkRpc3RhbmNlPXRoaXMuYXR0ZW51YXRpb25EaXN0YW5jZSksdm9pZCAwIT09dGhpcy5hdHRlbnVhdGlvblRpbnQmJihuLmF0dGVudWF0aW9uVGludD10aGlzLmF0dGVudWF0aW9uVGludC5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5zaXplJiYobi5zaXplPXRoaXMuc2l6ZSksbnVsbCE9PXRoaXMuc2hhZG93U2lkZSYmKG4uc2hhZG93U2lkZT10aGlzLnNoYWRvd1NpZGUpLHZvaWQgMCE9PXRoaXMuc2l6ZUF0dGVudWF0aW9uJiYobi5zaXplQXR0ZW51YXRpb249dGhpcy5zaXplQXR0ZW51YXRpb24pLDEhPT10aGlzLmJsZW5kaW5nJiYobi5ibGVuZGluZz10aGlzLmJsZW5kaW5nKSwwIT09dGhpcy5zaWRlJiYobi5zaWRlPXRoaXMuc2lkZSksdGhpcy52ZXJ0ZXhDb2xvcnMmJihuLnZlcnRleENvbG9ycz0hMCksdGhpcy5vcGFjaXR5PDEmJihuLm9wYWNpdHk9dGhpcy5vcGFjaXR5KSwhMD09PXRoaXMudHJhbnNwYXJlbnQmJihuLnRyYW5zcGFyZW50PXRoaXMudHJhbnNwYXJlbnQpLG4uZGVwdGhGdW5jPXRoaXMuZGVwdGhGdW5jLG4uZGVwdGhUZXN0PXRoaXMuZGVwdGhUZXN0LG4uZGVwdGhXcml0ZT10aGlzLmRlcHRoV3JpdGUsbi5jb2xvcldyaXRlPXRoaXMuY29sb3JXcml0ZSxuLnN0ZW5jaWxXcml0ZT10aGlzLnN0ZW5jaWxXcml0ZSxuLnN0ZW5jaWxXcml0ZU1hc2s9dGhpcy5zdGVuY2lsV3JpdGVNYXNrLG4uc3RlbmNpbEZ1bmM9dGhpcy5zdGVuY2lsRnVuYyxuLnN0ZW5jaWxSZWY9dGhpcy5zdGVuY2lsUmVmLG4uc3RlbmNpbEZ1bmNNYXNrPXRoaXMuc3RlbmNpbEZ1bmNNYXNrLG4uc3RlbmNpbEZhaWw9dGhpcy5zdGVuY2lsRmFpbCxuLnN0ZW5jaWxaRmFpbD10aGlzLnN0ZW5jaWxaRmFpbCxuLnN0ZW5jaWxaUGFzcz10aGlzLnN0ZW5jaWxaUGFzcyx0aGlzLnJvdGF0aW9uJiYwIT09dGhpcy5yb3RhdGlvbiYmKG4ucm90YXRpb249dGhpcy5yb3RhdGlvbiksITA9PT10aGlzLnBvbHlnb25PZmZzZXQmJihuLnBvbHlnb25PZmZzZXQ9ITApLDAhPT10aGlzLnBvbHlnb25PZmZzZXRGYWN0b3ImJihuLnBvbHlnb25PZmZzZXRGYWN0b3I9dGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yKSwwIT09dGhpcy5wb2x5Z29uT2Zmc2V0VW5pdHMmJihuLnBvbHlnb25PZmZzZXRVbml0cz10aGlzLnBvbHlnb25PZmZzZXRVbml0cyksdGhpcy5saW5ld2lkdGgmJjEhPT10aGlzLmxpbmV3aWR0aCYmKG4ubGluZXdpZHRoPXRoaXMubGluZXdpZHRoKSx2b2lkIDAhPT10aGlzLmRhc2hTaXplJiYobi5kYXNoU2l6ZT10aGlzLmRhc2hTaXplKSx2b2lkIDAhPT10aGlzLmdhcFNpemUmJihuLmdhcFNpemU9dGhpcy5nYXBTaXplKSx2b2lkIDAhPT10aGlzLnNjYWxlJiYobi5zY2FsZT10aGlzLnNjYWxlKSwhMD09PXRoaXMuZGl0aGVyaW5nJiYobi5kaXRoZXJpbmc9ITApLHRoaXMuYWxwaGFUZXN0PjAmJihuLmFscGhhVGVzdD10aGlzLmFscGhhVGVzdCksITA9PT10aGlzLmFscGhhVG9Db3ZlcmFnZSYmKG4uYWxwaGFUb0NvdmVyYWdlPXRoaXMuYWxwaGFUb0NvdmVyYWdlKSwhMD09PXRoaXMucHJlbXVsdGlwbGllZEFscGhhJiYobi5wcmVtdWx0aXBsaWVkQWxwaGE9dGhpcy5wcmVtdWx0aXBsaWVkQWxwaGEpLCEwPT09dGhpcy53aXJlZnJhbWUmJihuLndpcmVmcmFtZT10aGlzLndpcmVmcmFtZSksdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg+MSYmKG4ud2lyZWZyYW1lTGluZXdpZHRoPXRoaXMud2lyZWZyYW1lTGluZXdpZHRoKSwicm91bmQiIT09dGhpcy53aXJlZnJhbWVMaW5lY2FwJiYobi53aXJlZnJhbWVMaW5lY2FwPXRoaXMud2lyZWZyYW1lTGluZWNhcCksInJvdW5kIiE9PXRoaXMud2lyZWZyYW1lTGluZWpvaW4mJihuLndpcmVmcmFtZUxpbmVqb2luPXRoaXMud2lyZWZyYW1lTGluZWpvaW4pLCEwPT09dGhpcy5mbGF0U2hhZGluZyYmKG4uZmxhdFNoYWRpbmc9dGhpcy5mbGF0U2hhZGluZyksITE9PT10aGlzLnZpc2libGUmJihuLnZpc2libGU9ITEpLCExPT09dGhpcy50b25lTWFwcGVkJiYobi50b25lTWFwcGVkPSExKSwie30iIT09SlNPTi5zdHJpbmdpZnkodGhpcy51c2VyRGF0YSkmJihuLnVzZXJEYXRhPXRoaXMudXNlckRhdGEpLGUpe2NvbnN0IGU9byh0LnRleHR1cmVzKSxpPW8odC5pbWFnZXMpO2UubGVuZ3RoPjAmJihuLnRleHR1cmVzPWUpLGkubGVuZ3RoPjAmJihuLmltYWdlcz1pKX1yZXR1cm4gbn1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3RoaXMubmFtZT10Lm5hbWUsdGhpcy5mb2c9dC5mb2csdGhpcy5ibGVuZGluZz10LmJsZW5kaW5nLHRoaXMuc2lkZT10LnNpZGUsdGhpcy52ZXJ0ZXhDb2xvcnM9dC52ZXJ0ZXhDb2xvcnMsdGhpcy5vcGFjaXR5PXQub3BhY2l0eSx0aGlzLnRyYW5zcGFyZW50PXQudHJhbnNwYXJlbnQsdGhpcy5ibGVuZFNyYz10LmJsZW5kU3JjLHRoaXMuYmxlbmREc3Q9dC5ibGVuZERzdCx0aGlzLmJsZW5kRXF1YXRpb249dC5ibGVuZEVxdWF0aW9uLHRoaXMuYmxlbmRTcmNBbHBoYT10LmJsZW5kU3JjQWxwaGEsdGhpcy5ibGVuZERzdEFscGhhPXQuYmxlbmREc3RBbHBoYSx0aGlzLmJsZW5kRXF1YXRpb25BbHBoYT10LmJsZW5kRXF1YXRpb25BbHBoYSx0aGlzLmRlcHRoRnVuYz10LmRlcHRoRnVuYyx0aGlzLmRlcHRoVGVzdD10LmRlcHRoVGVzdCx0aGlzLmRlcHRoV3JpdGU9dC5kZXB0aFdyaXRlLHRoaXMuc3RlbmNpbFdyaXRlTWFzaz10LnN0ZW5jaWxXcml0ZU1hc2ssdGhpcy5zdGVuY2lsRnVuYz10LnN0ZW5jaWxGdW5jLHRoaXMuc3RlbmNpbFJlZj10LnN0ZW5jaWxSZWYsdGhpcy5zdGVuY2lsRnVuY01hc2s9dC5zdGVuY2lsRnVuY01hc2ssdGhpcy5zdGVuY2lsRmFpbD10LnN0ZW5jaWxGYWlsLHRoaXMuc3RlbmNpbFpGYWlsPXQuc3RlbmNpbFpGYWlsLHRoaXMuc3RlbmNpbFpQYXNzPXQuc3RlbmNpbFpQYXNzLHRoaXMuc3RlbmNpbFdyaXRlPXQuc3RlbmNpbFdyaXRlO2NvbnN0IGU9dC5jbGlwcGluZ1BsYW5lcztsZXQgbj1udWxsO2lmKG51bGwhPT1lKXtjb25zdCB0PWUubGVuZ3RoO249bmV3IEFycmF5KHQpO2ZvcihsZXQgbz0wO28hPT10OysrbyluW29dPWVbb10uY2xvbmUoKX1yZXR1cm4gdGhpcy5jbGlwcGluZ1BsYW5lcz1uLHRoaXMuY2xpcEludGVyc2VjdGlvbj10LmNsaXBJbnRlcnNlY3Rpb24sdGhpcy5jbGlwU2hhZG93cz10LmNsaXBTaGFkb3dzLHRoaXMuc2hhZG93U2lkZT10LnNoYWRvd1NpZGUsdGhpcy5jb2xvcldyaXRlPXQuY29sb3JXcml0ZSx0aGlzLnByZWNpc2lvbj10LnByZWNpc2lvbix0aGlzLnBvbHlnb25PZmZzZXQ9dC5wb2x5Z29uT2Zmc2V0LHRoaXMucG9seWdvbk9mZnNldEZhY3Rvcj10LnBvbHlnb25PZmZzZXRGYWN0b3IsdGhpcy5wb2x5Z29uT2Zmc2V0VW5pdHM9dC5wb2x5Z29uT2Zmc2V0VW5pdHMsdGhpcy5kaXRoZXJpbmc9dC5kaXRoZXJpbmcsdGhpcy5hbHBoYVRlc3Q9dC5hbHBoYVRlc3QsdGhpcy5hbHBoYVRvQ292ZXJhZ2U9dC5hbHBoYVRvQ292ZXJhZ2UsdGhpcy5wcmVtdWx0aXBsaWVkQWxwaGE9dC5wcmVtdWx0aXBsaWVkQWxwaGEsdGhpcy52aXNpYmxlPXQudmlzaWJsZSx0aGlzLnRvbmVNYXBwZWQ9dC50b25lTWFwcGVkLHRoaXMudXNlckRhdGE9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0LnVzZXJEYXRhKSksdGhpc31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfXNldCBuZWVkc1VwZGF0ZSh0KXshMD09PXQmJnRoaXMudmVyc2lvbisrfX1PcnQucHJvdG90eXBlLmlzTWF0ZXJpYWw9ITA7Y29uc3QgUHJ0PXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9LHdydD17aDowLHM6MCxsOjB9LGtydD17aDowLHM6MCxsOjB9O2Z1bmN0aW9uIFNydCh0LGUsbil7cmV0dXJuIG48MCYmKG4rPTEpLG4+MSYmKG4tPTEpLG48MS82P3QrNiooZS10KSpuOm48LjU/ZTpuPDIvMz90KzYqKGUtdCkqKDIvMy1uKTp0fWZ1bmN0aW9uIERydCh0KXtyZXR1cm4gdDwuMDQwNDU/LjA3NzM5OTM4MDgqdDpNYXRoLnBvdyguOTQ3ODY3Mjk4Nip0Ky4wNTIxMzI3MDE0LDIuNCl9ZnVuY3Rpb24gRXJ0KHQpe3JldHVybiB0PC4wMDMxMzA4PzEyLjkyKnQ6MS4wNTUqTWF0aC5wb3codCwuNDE2NjYpLS4wNTV9Y2xhc3MgUnJ0e2NvbnN0cnVjdG9yKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09ZSYmdm9pZCAwPT09bj90aGlzLnNldCh0KTp0aGlzLnNldFJHQih0LGUsbil9c2V0KHQpe3JldHVybiB0JiZ0LmlzQ29sb3I/dGhpcy5jb3B5KHQpOiJudW1iZXIiPT10eXBlb2YgdD90aGlzLnNldEhleCh0KToic3RyaW5nIj09dHlwZW9mIHQmJnRoaXMuc2V0U3R5bGUodCksdGhpc31zZXRTY2FsYXIodCl7cmV0dXJuIHRoaXMucj10LHRoaXMuZz10LHRoaXMuYj10LHRoaXN9c2V0SGV4KHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksdGhpcy5yPSh0Pj4xNiYyNTUpLzI1NSx0aGlzLmc9KHQ+PjgmMjU1KS8yNTUsdGhpcy5iPSgyNTUmdCkvMjU1LHRoaXN9c2V0UkdCKHQsZSxuKXtyZXR1cm4gdGhpcy5yPXQsdGhpcy5nPWUsdGhpcy5iPW4sdGhpc31zZXRIU0wodCxlLG4pe2lmKHQ9KGZ1bmN0aW9uIG8odCxlKXtyZXR1cm4odCVlK2UpJWV9KSh0LDEpLGU9Wml0KGUsMCwxKSxuPVppdChuLDAsMSksMD09PWUpdGhpcy5yPXRoaXMuZz10aGlzLmI9bjtlbHNle2NvbnN0IG89bjw9LjU/biooMStlKTpuK2UtbiplLGk9MipuLW87dGhpcy5yPVNydChpLG8sdCsxLzMpLHRoaXMuZz1TcnQoaSxvLHQpLHRoaXMuYj1TcnQoaSxvLHQtMS8zKX1yZXR1cm4gdGhpc31zZXRTdHlsZSh0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMCE9PWUmJnBhcnNlRmxvYXQoZSk8MSYmY29uc29sZS53YXJuKCJUSFJFRS5Db2xvcjogQWxwaGEgY29tcG9uZW50IG9mICIrdCsiIHdpbGwgYmUgaWdub3JlZC4iKX1sZXQgbjtpZihuPS9eKCg/OnJnYnxoc2wpYT8pXCgoW15cKV0qKVwpLy5leGVjKHQpKXtsZXQgdDtjb25zdCBvPW5bMl07c3dpdGNoKG5bMV0pe2Nhc2UicmdiIjpjYXNlInJnYmEiOmlmKHQ9L15ccyooXGQrKVxzKixccyooXGQrKVxzKixccyooXGQrKVxzKig/OixccyooXGQqXC4/XGQrKVxzKik/JC8uZXhlYyhvKSlyZXR1cm4gdGhpcy5yPU1hdGgubWluKDI1NSxwYXJzZUludCh0WzFdLDEwKSkvMjU1LHRoaXMuZz1NYXRoLm1pbigyNTUscGFyc2VJbnQodFsyXSwxMCkpLzI1NSx0aGlzLmI9TWF0aC5taW4oMjU1LHBhcnNlSW50KHRbM10sMTApKS8yNTUsZSh0WzRdKSx0aGlzO2lmKHQ9L15ccyooXGQrKVwlXHMqLFxzKihcZCspXCVccyosXHMqKFxkKylcJVxzKig/OixccyooXGQqXC4/XGQrKVxzKik/JC8uZXhlYyhvKSlyZXR1cm4gdGhpcy5yPU1hdGgubWluKDEwMCxwYXJzZUludCh0WzFdLDEwKSkvMTAwLHRoaXMuZz1NYXRoLm1pbigxMDAscGFyc2VJbnQodFsyXSwxMCkpLzEwMCx0aGlzLmI9TWF0aC5taW4oMTAwLHBhcnNlSW50KHRbM10sMTApKS8xMDAsZSh0WzRdKSx0aGlzO2JyZWFrO2Nhc2UiaHNsIjpjYXNlImhzbGEiOmlmKHQ9L15ccyooXGQqXC4/XGQrKVxzKixccyooXGQrKVwlXHMqLFxzKihcZCspXCVccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMobykpe2NvbnN0IG49cGFyc2VGbG9hdCh0WzFdKS8zNjAsbz1wYXJzZUludCh0WzJdLDEwKS8xMDAsaT1wYXJzZUludCh0WzNdLDEwKS8xMDA7cmV0dXJuIGUodFs0XSksdGhpcy5zZXRIU0wobixvLGkpfX19ZWxzZSBpZihuPS9eXCMoW0EtRmEtZlxkXSspJC8uZXhlYyh0KSl7Y29uc3QgdD1uWzFdLGU9dC5sZW5ndGg7aWYoMz09PWUpcmV0dXJuIHRoaXMucj1wYXJzZUludCh0LmNoYXJBdCgwKSt0LmNoYXJBdCgwKSwxNikvMjU1LHRoaXMuZz1wYXJzZUludCh0LmNoYXJBdCgxKSt0LmNoYXJBdCgxKSwxNikvMjU1LHRoaXMuYj1wYXJzZUludCh0LmNoYXJBdCgyKSt0LmNoYXJBdCgyKSwxNikvMjU1LHRoaXM7aWYoNj09PWUpcmV0dXJuIHRoaXMucj1wYXJzZUludCh0LmNoYXJBdCgwKSt0LmNoYXJBdCgxKSwxNikvMjU1LHRoaXMuZz1wYXJzZUludCh0LmNoYXJBdCgyKSt0LmNoYXJBdCgzKSwxNikvMjU1LHRoaXMuYj1wYXJzZUludCh0LmNoYXJBdCg0KSt0LmNoYXJBdCg1KSwxNikvMjU1LHRoaXN9cmV0dXJuIHQmJnQubGVuZ3RoPjA/dGhpcy5zZXRDb2xvck5hbWUodCk6dGhpc31zZXRDb2xvck5hbWUodCl7Y29uc3QgZT1QcnRbdC50b0xvd2VyQ2FzZSgpXTtyZXR1cm4gdm9pZCAwIT09ZT90aGlzLnNldEhleChlKTpjb25zb2xlLndhcm4oIlRIUkVFLkNvbG9yOiBVbmtub3duIGNvbG9yICIrdCksdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLnIsdGhpcy5nLHRoaXMuYil9Y29weSh0KXtyZXR1cm4gdGhpcy5yPXQucix0aGlzLmc9dC5nLHRoaXMuYj10LmIsdGhpc31jb3B5R2FtbWFUb0xpbmVhcih0LGU9Mil7cmV0dXJuIHRoaXMucj1NYXRoLnBvdyh0LnIsZSksdGhpcy5nPU1hdGgucG93KHQuZyxlKSx0aGlzLmI9TWF0aC5wb3codC5iLGUpLHRoaXN9Y29weUxpbmVhclRvR2FtbWEodCxlPTIpe2NvbnN0IG49ZT4wPzEvZToxO3JldHVybiB0aGlzLnI9TWF0aC5wb3codC5yLG4pLHRoaXMuZz1NYXRoLnBvdyh0LmcsbiksdGhpcy5iPU1hdGgucG93KHQuYixuKSx0aGlzfWNvbnZlcnRHYW1tYVRvTGluZWFyKHQpe3JldHVybiB0aGlzLmNvcHlHYW1tYVRvTGluZWFyKHRoaXMsdCksdGhpc31jb252ZXJ0TGluZWFyVG9HYW1tYSh0KXtyZXR1cm4gdGhpcy5jb3B5TGluZWFyVG9HYW1tYSh0aGlzLHQpLHRoaXN9Y29weVNSR0JUb0xpbmVhcih0KXtyZXR1cm4gdGhpcy5yPURydCh0LnIpLHRoaXMuZz1EcnQodC5nKSx0aGlzLmI9RHJ0KHQuYiksdGhpc31jb3B5TGluZWFyVG9TUkdCKHQpe3JldHVybiB0aGlzLnI9RXJ0KHQuciksdGhpcy5nPUVydCh0LmcpLHRoaXMuYj1FcnQodC5iKSx0aGlzfWNvbnZlcnRTUkdCVG9MaW5lYXIoKXtyZXR1cm4gdGhpcy5jb3B5U1JHQlRvTGluZWFyKHRoaXMpLHRoaXN9Y29udmVydExpbmVhclRvU1JHQigpe3JldHVybiB0aGlzLmNvcHlMaW5lYXJUb1NSR0IodGhpcyksdGhpc31nZXRIZXgoKXtyZXR1cm4gMjU1KnRoaXMucjw8MTZeMjU1KnRoaXMuZzw8OF4yNTUqdGhpcy5iPDwwfWdldEhleFN0cmluZygpe3JldHVybigiMDAwMDAwIit0aGlzLmdldEhleCgpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpfWdldEhTTCh0KXtjb25zdCBlPXRoaXMucixuPXRoaXMuZyxvPXRoaXMuYixpPU1hdGgubWF4KGUsbixvKSxhPU1hdGgubWluKGUsbixvKTtsZXQgcixzO2NvbnN0IGw9KGEraSkvMjtpZihhPT09aSlyPTAscz0wO2Vsc2V7Y29uc3QgdD1pLWE7c3dpdGNoKHM9bDw9LjU/dC8oaSthKTp0LygyLWktYSksaSl7Y2FzZSBlOnI9KG4tbykvdCsobjxvPzY6MCk7YnJlYWs7Y2FzZSBuOnI9KG8tZSkvdCsyO2JyZWFrO2Nhc2UgbzpyPShlLW4pL3QrNH1yLz02fXJldHVybiB0Lmg9cix0LnM9cyx0Lmw9bCx0fWdldFN0eWxlKCl7cmV0dXJuInJnYigiKygyNTUqdGhpcy5yfDApKyIsIisoMjU1KnRoaXMuZ3wwKSsiLCIrKDI1NSp0aGlzLmJ8MCkrIikifW9mZnNldEhTTCh0LGUsbil7cmV0dXJuIHRoaXMuZ2V0SFNMKHdydCksd3J0LmgrPXQsd3J0LnMrPWUsd3J0LmwrPW4sdGhpcy5zZXRIU0wod3J0Lmgsd3J0LnMsd3J0LmwpLHRoaXN9YWRkKHQpe3JldHVybiB0aGlzLnIrPXQucix0aGlzLmcrPXQuZyx0aGlzLmIrPXQuYix0aGlzfWFkZENvbG9ycyh0LGUpe3JldHVybiB0aGlzLnI9dC5yK2Uucix0aGlzLmc9dC5nK2UuZyx0aGlzLmI9dC5iK2UuYix0aGlzfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy5yKz10LHRoaXMuZys9dCx0aGlzLmIrPXQsdGhpc31zdWIodCl7cmV0dXJuIHRoaXMucj1NYXRoLm1heCgwLHRoaXMuci10LnIpLHRoaXMuZz1NYXRoLm1heCgwLHRoaXMuZy10LmcpLHRoaXMuYj1NYXRoLm1heCgwLHRoaXMuYi10LmIpLHRoaXN9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMucio9dC5yLHRoaXMuZyo9dC5nLHRoaXMuYio9dC5iLHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7cmV0dXJuIHRoaXMucio9dCx0aGlzLmcqPXQsdGhpcy5iKj10LHRoaXN9bGVycCh0LGUpe3JldHVybiB0aGlzLnIrPSh0LnItdGhpcy5yKSplLHRoaXMuZys9KHQuZy10aGlzLmcpKmUsdGhpcy5iKz0odC5iLXRoaXMuYikqZSx0aGlzfWxlcnBDb2xvcnModCxlLG4pe3JldHVybiB0aGlzLnI9dC5yKyhlLnItdC5yKSpuLHRoaXMuZz10LmcrKGUuZy10LmcpKm4sdGhpcy5iPXQuYisoZS5iLXQuYikqbix0aGlzfWxlcnBIU0wodCxlKXt0aGlzLmdldEhTTCh3cnQpLHQuZ2V0SFNMKGtydCk7Y29uc3Qgbj1YaXQod3J0Lmgsa3J0LmgsZSksbz1YaXQod3J0LnMsa3J0LnMsZSksaT1YaXQod3J0Lmwsa3J0LmwsZSk7cmV0dXJuIHRoaXMuc2V0SFNMKG4sbyxpKSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5yPT09dGhpcy5yJiZ0Lmc9PT10aGlzLmcmJnQuYj09PXRoaXMuYn1mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLnI9dFtlXSx0aGlzLmc9dFtlKzFdLHRoaXMuYj10W2UrMl0sdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLnIsdFtlKzFdPXRoaXMuZyx0W2UrMl09dGhpcy5iLHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpe3JldHVybiB0aGlzLnI9dC5nZXRYKGUpLHRoaXMuZz10LmdldFkoZSksdGhpcy5iPXQuZ2V0WihlKSwhMD09PXQubm9ybWFsaXplZCYmKHRoaXMuci89MjU1LHRoaXMuZy89MjU1LHRoaXMuYi89MjU1KSx0aGlzfXRvSlNPTigpe3JldHVybiB0aGlzLmdldEhleCgpfX1ScnQuTkFNRVM9UHJ0LFJydC5wcm90b3R5cGUuaXNDb2xvcj0hMCxScnQucHJvdG90eXBlLnI9MSxScnQucHJvdG90eXBlLmc9MSxScnQucHJvdG90eXBlLmI9MTtjbGFzcyBBcnQgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hCYXNpY01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBScnQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuc3BlY3VsYXJNYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5lbnZNYXA9bnVsbCx0aGlzLmNvbWJpbmU9MCx0aGlzLnJlZmxlY3Rpdml0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hcD10Lm1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5zcGVjdWxhck1hcD10LnNwZWN1bGFyTWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmVudk1hcD10LmVudk1hcCx0aGlzLmNvbWJpbmU9dC5jb21iaW5lLHRoaXMucmVmbGVjdGl2aXR5PXQucmVmbGVjdGl2aXR5LHRoaXMucmVmcmFjdGlvblJhdGlvPXQucmVmcmFjdGlvblJhdGlvLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXMud2lyZWZyYW1lTGluZWNhcD10LndpcmVmcmFtZUxpbmVjYXAsdGhpcy53aXJlZnJhbWVMaW5lam9pbj10LndpcmVmcmFtZUxpbmVqb2luLHRoaXN9fUFydC5wcm90b3R5cGUuaXNNZXNoQmFzaWNNYXRlcmlhbD0hMDtjb25zdCBUcnQ9bmV3IGNhdCxOcnQ9bmV3IFFpdDtjbGFzcyB6cnR7Y29uc3RydWN0b3IodCxlLG4pe2lmKEFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiBhcnJheSBzaG91bGQgYmUgYSBUeXBlZCBBcnJheS4iKTt0aGlzLm5hbWU9IiIsdGhpcy5hcnJheT10LHRoaXMuaXRlbVNpemU9ZSx0aGlzLmNvdW50PXZvaWQgMCE9PXQ/dC5sZW5ndGgvZTowLHRoaXMubm9ybWFsaXplZD0hMD09PW4sdGhpcy51c2FnZT1CaXQsdGhpcy51cGRhdGVSYW5nZT17b2Zmc2V0OjAsY291bnQ6LTF9LHRoaXMudmVyc2lvbj0wfW9uVXBsb2FkQ2FsbGJhY2soKXt9c2V0IG5lZWRzVXBkYXRlKHQpeyEwPT09dCYmdGhpcy52ZXJzaW9uKyt9c2V0VXNhZ2UodCl7cmV0dXJuIHRoaXMudXNhZ2U9dCx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMubmFtZT10Lm5hbWUsdGhpcy5hcnJheT1uZXcgdC5hcnJheS5jb25zdHJ1Y3Rvcih0LmFycmF5KSx0aGlzLml0ZW1TaXplPXQuaXRlbVNpemUsdGhpcy5jb3VudD10LmNvdW50LHRoaXMubm9ybWFsaXplZD10Lm5vcm1hbGl6ZWQsdGhpcy51c2FnZT10LnVzYWdlLHRoaXN9Y29weUF0KHQsZSxuKXt0Kj10aGlzLml0ZW1TaXplLG4qPWUuaXRlbVNpemU7Zm9yKGxldCBvPTAsaT10aGlzLml0ZW1TaXplO288aTtvKyspdGhpcy5hcnJheVt0K29dPWUuYXJyYXlbbitvXTtyZXR1cm4gdGhpc31jb3B5QXJyYXkodCl7cmV0dXJuIHRoaXMuYXJyYXkuc2V0KHQpLHRoaXN9Y29weUNvbG9yc0FycmF5KHQpe2NvbnN0IGU9dGhpcy5hcnJheTtsZXQgbj0wO2ZvcihsZXQgbz0wLGk9dC5sZW5ndGg7bzxpO28rKyl7bGV0IGk9dFtvXTt2b2lkIDA9PT1pJiYoY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGUuY29weUNvbG9yc0FycmF5KCk6IGNvbG9yIGlzIHVuZGVmaW5lZCIsbyksaT1uZXcgUnJ0KSxlW24rK109aS5yLGVbbisrXT1pLmcsZVtuKytdPWkuYn1yZXR1cm4gdGhpc31jb3B5VmVjdG9yMnNBcnJheSh0KXtjb25zdCBlPXRoaXMuYXJyYXk7bGV0IG49MDtmb3IobGV0IG89MCxpPXQubGVuZ3RoO288aTtvKyspe2xldCBpPXRbb107dm9pZCAwPT09aSYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3Iyc0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLG8pLGk9bmV3IFFpdCksZVtuKytdPWkueCxlW24rK109aS55fXJldHVybiB0aGlzfWNvcHlWZWN0b3Izc0FycmF5KHQpe2NvbnN0IGU9dGhpcy5hcnJheTtsZXQgbj0wO2ZvcihsZXQgbz0wLGk9dC5sZW5ndGg7bzxpO28rKyl7bGV0IGk9dFtvXTt2b2lkIDA9PT1pJiYoY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGUuY29weVZlY3RvcjNzQXJyYXkoKTogdmVjdG9yIGlzIHVuZGVmaW5lZCIsbyksaT1uZXcgY2F0KSxlW24rK109aS54LGVbbisrXT1pLnksZVtuKytdPWkuen1yZXR1cm4gdGhpc31jb3B5VmVjdG9yNHNBcnJheSh0KXtjb25zdCBlPXRoaXMuYXJyYXk7bGV0IG49MDtmb3IobGV0IG89MCxpPXQubGVuZ3RoO288aTtvKyspe2xldCBpPXRbb107dm9pZCAwPT09aSYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3I0c0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLG8pLGk9bmV3IGFhdCksZVtuKytdPWkueCxlW24rK109aS55LGVbbisrXT1pLnosZVtuKytdPWkud31yZXR1cm4gdGhpc31hcHBseU1hdHJpeDModCl7aWYoMj09PXRoaXMuaXRlbVNpemUpZm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspTnJ0LmZyb21CdWZmZXJBdHRyaWJ1dGUodGhpcyxlKSxOcnQuYXBwbHlNYXRyaXgzKHQpLHRoaXMuc2V0WFkoZSxOcnQueCxOcnQueSk7ZWxzZSBpZigzPT09dGhpcy5pdGVtU2l6ZSlmb3IobGV0IGU9MCxuPXRoaXMuY291bnQ7ZTxuO2UrKylUcnQuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0aGlzLGUpLFRydC5hcHBseU1hdHJpeDModCksdGhpcy5zZXRYWVooZSxUcnQueCxUcnQueSxUcnQueik7cmV0dXJuIHRoaXN9YXBwbHlNYXRyaXg0KHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKVRydC54PXRoaXMuZ2V0WChlKSxUcnQueT10aGlzLmdldFkoZSksVHJ0Lno9dGhpcy5nZXRaKGUpLFRydC5hcHBseU1hdHJpeDQodCksdGhpcy5zZXRYWVooZSxUcnQueCxUcnQueSxUcnQueik7cmV0dXJuIHRoaXN9YXBwbHlOb3JtYWxNYXRyaXgodCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspVHJ0Lng9dGhpcy5nZXRYKGUpLFRydC55PXRoaXMuZ2V0WShlKSxUcnQuej10aGlzLmdldFooZSksVHJ0LmFwcGx5Tm9ybWFsTWF0cml4KHQpLHRoaXMuc2V0WFlaKGUsVHJ0LngsVHJ0LnksVHJ0LnopO3JldHVybiB0aGlzfXRyYW5zZm9ybURpcmVjdGlvbih0KXtmb3IobGV0IGU9MCxuPXRoaXMuY291bnQ7ZTxuO2UrKylUcnQueD10aGlzLmdldFgoZSksVHJ0Lnk9dGhpcy5nZXRZKGUpLFRydC56PXRoaXMuZ2V0WihlKSxUcnQudHJhbnNmb3JtRGlyZWN0aW9uKHQpLHRoaXMuc2V0WFlaKGUsVHJ0LngsVHJ0LnksVHJ0LnopO3JldHVybiB0aGlzfXNldCh0LGU9MCl7cmV0dXJuIHRoaXMuYXJyYXkuc2V0KHQsZSksdGhpc31nZXRYKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZV19c2V0WCh0LGUpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZV09ZSx0aGlzfWdldFkodCl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzFdfXNldFkodCxlKXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrMV09ZSx0aGlzfWdldFoodCl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzJdfXNldFoodCxlKXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrMl09ZSx0aGlzfWdldFcodCl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzNdfXNldFcodCxlKXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrM109ZSx0aGlzfXNldFhZKHQsZSxuKXtyZXR1cm4gdGhpcy5hcnJheVswKyh0Kj10aGlzLml0ZW1TaXplKV09ZSx0aGlzLmFycmF5W3QrMV09bix0aGlzfXNldFhZWih0LGUsbixvKXtyZXR1cm4gdGhpcy5hcnJheVswKyh0Kj10aGlzLml0ZW1TaXplKV09ZSx0aGlzLmFycmF5W3QrMV09bix0aGlzLmFycmF5W3QrMl09byx0aGlzfXNldFhZWlcodCxlLG4sbyxpKXtyZXR1cm4gdGhpcy5hcnJheVswKyh0Kj10aGlzLml0ZW1TaXplKV09ZSx0aGlzLmFycmF5W3QrMV09bix0aGlzLmFycmF5W3QrMl09byx0aGlzLmFycmF5W3QrM109aSx0aGlzfW9uVXBsb2FkKHQpe3JldHVybiB0aGlzLm9uVXBsb2FkQ2FsbGJhY2s9dCx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuYXJyYXksdGhpcy5pdGVtU2l6ZSkuY29weSh0aGlzKX10b0pTT04oKXtjb25zdCB0PXtpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuYXJyYXkpLG5vcm1hbGl6ZWQ6dGhpcy5ub3JtYWxpemVkfTtyZXR1cm4iIiE9PXRoaXMubmFtZSYmKHQubmFtZT10aGlzLm5hbWUpLHRoaXMudXNhZ2UhPT1CaXQmJih0LnVzYWdlPXRoaXMudXNhZ2UpLDA9PT10aGlzLnVwZGF0ZVJhbmdlLm9mZnNldCYmLTE9PT10aGlzLnVwZGF0ZVJhbmdlLmNvdW50fHwodC51cGRhdGVSYW5nZT10aGlzLnVwZGF0ZVJhbmdlKSx0fX16cnQucHJvdG90eXBlLmlzQnVmZmVyQXR0cmlidXRlPSEwO2NsYXNzIElydCBleHRlbmRzIHpydHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IFVpbnQxNkFycmF5KHQpLGUsbil9fWNsYXNzIEhydCBleHRlbmRzIHpydHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IFVpbnQzMkFycmF5KHQpLGUsbil9fShjbGFzcyBleHRlbmRzIHpydHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IFVpbnQxNkFycmF5KHQpLGUsbil9fSkucHJvdG90eXBlLmlzRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyBGcnQgZXh0ZW5kcyB6cnR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBGbG9hdDMyQXJyYXkodCksZSxuKX19ZnVuY3Rpb24gTHJ0KHQpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4tMS8wO2xldCBlPXRbMF07Zm9yKGxldCBuPTEsbz10Lmxlbmd0aDtuPG87KytuKXRbbl0+ZSYmKGU9dFtuXSk7cmV0dXJuIGV9bGV0IEJydD0wO2NvbnN0IFZydD1uZXcgQmF0LGpydD1uZXcgcHJ0LFVydD1uZXcgY2F0LEdydD1uZXcgbWF0LFdydD1uZXcgbWF0LFlydD1uZXcgY2F0O2NsYXNzIHFydCBleHRlbmRzIFVpdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6QnJ0Kyt9KSx0aGlzLnV1aWQ9cWl0KCksdGhpcy5uYW1lPSIiLHRoaXMudHlwZT0iQnVmZmVyR2VvbWV0cnkiLHRoaXMuaW5kZXg9bnVsbCx0aGlzLmF0dHJpYnV0ZXM9e30sdGhpcy5tb3JwaEF0dHJpYnV0ZXM9e30sdGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZT0hMSx0aGlzLmdyb3Vwcz1bXSx0aGlzLmJvdW5kaW5nQm94PW51bGwsdGhpcy5ib3VuZGluZ1NwaGVyZT1udWxsLHRoaXMuZHJhd1JhbmdlPXtzdGFydDowLGNvdW50OjEvMH0sdGhpcy51c2VyRGF0YT17fX1nZXRJbmRleCgpe3JldHVybiB0aGlzLmluZGV4fXNldEluZGV4KHQpe3JldHVybiB0aGlzLmluZGV4PUFycmF5LmlzQXJyYXkodCk/bmV3KExydCh0KT42NTUzNT9IcnQ6SXJ0KSh0LDEpOnQsdGhpc31nZXRBdHRyaWJ1dGUodCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc1t0XX1zZXRBdHRyaWJ1dGUodCxlKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW3RdPWUsdGhpc31kZWxldGVBdHRyaWJ1dGUodCl7cmV0dXJuIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbdF0sdGhpc31oYXNBdHRyaWJ1dGUodCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuYXR0cmlidXRlc1t0XX1hZGRHcm91cCh0LGUsbj0wKXt0aGlzLmdyb3Vwcy5wdXNoKHtzdGFydDp0LGNvdW50OmUsbWF0ZXJpYWxJbmRleDpufSl9Y2xlYXJHcm91cHMoKXt0aGlzLmdyb3Vwcz1bXX1zZXREcmF3UmFuZ2UodCxlKXt0aGlzLmRyYXdSYW5nZS5zdGFydD10LHRoaXMuZHJhd1JhbmdlLmNvdW50PWV9YXBwbHlNYXRyaXg0KHQpe2NvbnN0IGU9dGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uO3ZvaWQgMCE9PWUmJihlLmFwcGx5TWF0cml4NCh0KSxlLm5lZWRzVXBkYXRlPSEwKTtjb25zdCBuPXRoaXMuYXR0cmlidXRlcy5ub3JtYWw7aWYodm9pZCAwIT09bil7Y29uc3QgZT0obmV3ICRpdCkuZ2V0Tm9ybWFsTWF0cml4KHQpO24uYXBwbHlOb3JtYWxNYXRyaXgoZSksbi5uZWVkc1VwZGF0ZT0hMH1jb25zdCBvPXRoaXMuYXR0cmlidXRlcy50YW5nZW50O3JldHVybiB2b2lkIDAhPT1vJiYoby50cmFuc2Zvcm1EaXJlY3Rpb24odCksby5uZWVkc1VwZGF0ZT0hMCksbnVsbCE9PXRoaXMuYm91bmRpbmdCb3gmJnRoaXMuY29tcHV0ZUJvdW5kaW5nQm94KCksbnVsbCE9PXRoaXMuYm91bmRpbmdTcGhlcmUmJnRoaXMuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCksdGhpc31hcHBseVF1YXRlcm5pb24odCl7cmV0dXJuIFZydC5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KSx0aGlzLmFwcGx5TWF0cml4NChWcnQpLHRoaXN9cm90YXRlWCh0KXtyZXR1cm4gVnJ0Lm1ha2VSb3RhdGlvblgodCksdGhpcy5hcHBseU1hdHJpeDQoVnJ0KSx0aGlzfXJvdGF0ZVkodCl7cmV0dXJuIFZydC5tYWtlUm90YXRpb25ZKHQpLHRoaXMuYXBwbHlNYXRyaXg0KFZydCksdGhpc31yb3RhdGVaKHQpe3JldHVybiBWcnQubWFrZVJvdGF0aW9uWih0KSx0aGlzLmFwcGx5TWF0cml4NChWcnQpLHRoaXN9dHJhbnNsYXRlKHQsZSxuKXtyZXR1cm4gVnJ0Lm1ha2VUcmFuc2xhdGlvbih0LGUsbiksdGhpcy5hcHBseU1hdHJpeDQoVnJ0KSx0aGlzfXNjYWxlKHQsZSxuKXtyZXR1cm4gVnJ0Lm1ha2VTY2FsZSh0LGUsbiksdGhpcy5hcHBseU1hdHJpeDQoVnJ0KSx0aGlzfWxvb2tBdCh0KXtyZXR1cm4ganJ0Lmxvb2tBdCh0KSxqcnQudXBkYXRlTWF0cml4KCksdGhpcy5hcHBseU1hdHJpeDQoanJ0Lm1hdHJpeCksdGhpc31jZW50ZXIoKXtyZXR1cm4gdGhpcy5jb21wdXRlQm91bmRpbmdCb3goKSx0aGlzLmJvdW5kaW5nQm94LmdldENlbnRlcihVcnQpLm5lZ2F0ZSgpLHRoaXMudHJhbnNsYXRlKFVydC54LFVydC55LFVydC56KSx0aGlzfXNldEZyb21Qb2ludHModCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxvPXQubGVuZ3RoO248bztuKyspe2NvbnN0IG89dFtuXTtlLnB1c2goby54LG8ueSxvLnp8fDApfXJldHVybiB0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBGcnQoZSwzKSksdGhpc31jb21wdXRlQm91bmRpbmdCb3goKXtudWxsPT09dGhpcy5ib3VuZGluZ0JveCYmKHRoaXMuYm91bmRpbmdCb3g9bmV3IG1hdCk7Y29uc3QgdD10aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24sZT10aGlzLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbjtpZih0JiZ0LmlzR0xCdWZmZXJBdHRyaWJ1dGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpOiBHTEJ1ZmZlckF0dHJpYnV0ZSByZXF1aXJlcyBhIG1hbnVhbCBib3VuZGluZyBib3guIEFsdGVybmF0aXZlbHkgc2V0ICJtZXNoLmZydXN0dW1DdWxsZWQiIHRvICJmYWxzZSIuJyx0aGlzKSx2b2lkIHRoaXMuYm91bmRpbmdCb3guc2V0KG5ldyBjYXQoLTEvMCwtMS8wLC0xLzApLG5ldyBjYXQoMS8wLDEvMCwxLzApKTtpZih2b2lkIDAhPT10KXtpZih0aGlzLmJvdW5kaW5nQm94LnNldEZyb21CdWZmZXJBdHRyaWJ1dGUodCksZSlmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3Q8bjt0KyspR3J0LnNldEZyb21CdWZmZXJBdHRyaWJ1dGUoZVt0XSksdGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZT8oWXJ0LmFkZFZlY3RvcnModGhpcy5ib3VuZGluZ0JveC5taW4sR3J0Lm1pbiksdGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KFlydCksWXJ0LmFkZFZlY3RvcnModGhpcy5ib3VuZGluZ0JveC5tYXgsR3J0Lm1heCksdGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KFlydCkpOih0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQoR3J0Lm1pbiksdGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KEdydC5tYXgpKX1lbHNlIHRoaXMuYm91bmRpbmdCb3gubWFrZUVtcHR5KCk7KGlzTmFOKHRoaXMuYm91bmRpbmdCb3gubWluLngpfHxpc05hTih0aGlzLmJvdW5kaW5nQm94Lm1pbi55KXx8aXNOYU4odGhpcy5ib3VuZGluZ0JveC5taW4ueikpJiZjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTogQ29tcHV0ZWQgbWluL21heCBoYXZlIE5hTiB2YWx1ZXMuIFRoZSAicG9zaXRpb24iIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicsdGhpcyl9Y29tcHV0ZUJvdW5kaW5nU3BoZXJlKCl7bnVsbD09PXRoaXMuYm91bmRpbmdTcGhlcmUmJih0aGlzLmJvdW5kaW5nU3BoZXJlPW5ldyBSYXQpO2NvbnN0IHQ9dGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLGU9dGhpcy5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb247aWYodCYmdC5pc0dMQnVmZmVyQXR0cmlidXRlKXJldHVybiBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogR0xCdWZmZXJBdHRyaWJ1dGUgcmVxdWlyZXMgYSBtYW51YWwgYm91bmRpbmcgc3BoZXJlLiBBbHRlcm5hdGl2ZWx5IHNldCAibWVzaC5mcnVzdHVtQ3VsbGVkIiB0byAiZmFsc2UiLicsdGhpcyksdm9pZCB0aGlzLmJvdW5kaW5nU3BoZXJlLnNldChuZXcgY2F0LDEvMCk7aWYodCl7Y29uc3Qgbj10aGlzLmJvdW5kaW5nU3BoZXJlLmNlbnRlcjtpZihHcnQuc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KSxlKWZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKylXcnQuc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZShlW3RdKSx0aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPyhZcnQuYWRkVmVjdG9ycyhHcnQubWluLFdydC5taW4pLEdydC5leHBhbmRCeVBvaW50KFlydCksWXJ0LmFkZFZlY3RvcnMoR3J0Lm1heCxXcnQubWF4KSxHcnQuZXhwYW5kQnlQb2ludChZcnQpKTooR3J0LmV4cGFuZEJ5UG9pbnQoV3J0Lm1pbiksR3J0LmV4cGFuZEJ5UG9pbnQoV3J0Lm1heCkpO0dydC5nZXRDZW50ZXIobik7bGV0IG89MDtmb3IobGV0IGU9MCxpPXQuY291bnQ7ZTxpO2UrKylZcnQuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpLG89TWF0aC5tYXgobyxuLmRpc3RhbmNlVG9TcXVhcmVkKFlydCkpO2lmKGUpZm9yKGxldCBpPTAsYT1lLmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPWVbaV0scj10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlO2ZvcihsZXQgZT0wLGk9YS5jb3VudDtlPGk7ZSsrKVlydC5mcm9tQnVmZmVyQXR0cmlidXRlKGEsZSksciYmKFVydC5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSksWXJ0LmFkZChVcnQpKSxvPU1hdGgubWF4KG8sbi5kaXN0YW5jZVRvU3F1YXJlZChZcnQpKX10aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cz1NYXRoLnNxcnQobyksaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpJiZjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICJwb3NpdGlvbiIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJyx0aGlzKX19Y29tcHV0ZUZhY2VOb3JtYWxzKCl7fWNvbXB1dGVUYW5nZW50cygpe2NvbnN0IHQ9dGhpcy5pbmRleCxlPXRoaXMuYXR0cmlidXRlcztpZihudWxsPT09dHx8dm9pZCAwPT09ZS5wb3NpdGlvbnx8dm9pZCAwPT09ZS5ub3JtYWx8fHZvaWQgMD09PWUudXYpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5jb21wdXRlVGFuZ2VudHMoKSBmYWlsZWQuIE1pc3NpbmcgcmVxdWlyZWQgYXR0cmlidXRlcyAoaW5kZXgsIHBvc2l0aW9uLCBub3JtYWwgb3IgdXYpIik7Y29uc3Qgbj10LmFycmF5LG89ZS5wb3NpdGlvbi5hcnJheSxpPWUubm9ybWFsLmFycmF5LGE9ZS51di5hcnJheSxyPW8ubGVuZ3RoLzM7dm9pZCAwPT09ZS50YW5nZW50JiZ0aGlzLnNldEF0dHJpYnV0ZSgidGFuZ2VudCIsbmV3IHpydChuZXcgRmxvYXQzMkFycmF5KDQqciksNCkpO2NvbnN0IHM9ZS50YW5nZW50LmFycmF5LGw9W10sYz1bXTtmb3IobGV0IHQ9MDt0PHI7dCsrKWxbdF09bmV3IGNhdCxjW3RdPW5ldyBjYXQ7Y29uc3QgZD1uZXcgY2F0LHA9bmV3IGNhdCxtPW5ldyBjYXQsdT1uZXcgUWl0LGY9bmV3IFFpdCxnPW5ldyBRaXQsaD1uZXcgY2F0LGI9bmV3IGNhdDtmdW5jdGlvbiB5KHQsZSxuKXtkLmZyb21BcnJheShvLDMqdCkscC5mcm9tQXJyYXkobywzKmUpLG0uZnJvbUFycmF5KG8sMypuKSx1LmZyb21BcnJheShhLDIqdCksZi5mcm9tQXJyYXkoYSwyKmUpLGcuZnJvbUFycmF5KGEsMipuKSxwLnN1YihkKSxtLnN1YihkKSxmLnN1Yih1KSxnLnN1Yih1KTtjb25zdCBpPTEvKGYueCpnLnktZy54KmYueSk7aXNGaW5pdGUoaSkmJihoLmNvcHkocCkubXVsdGlwbHlTY2FsYXIoZy55KS5hZGRTY2FsZWRWZWN0b3IobSwtZi55KS5tdWx0aXBseVNjYWxhcihpKSxiLmNvcHkobSkubXVsdGlwbHlTY2FsYXIoZi54KS5hZGRTY2FsZWRWZWN0b3IocCwtZy54KS5tdWx0aXBseVNjYWxhcihpKSxsW3RdLmFkZChoKSxsW2VdLmFkZChoKSxsW25dLmFkZChoKSxjW3RdLmFkZChiKSxjW2VdLmFkZChiKSxjW25dLmFkZChiKSl9bGV0IF89dGhpcy5ncm91cHM7MD09PV8ubGVuZ3RoJiYoXz1be3N0YXJ0OjAsY291bnQ6bi5sZW5ndGh9XSk7Zm9yKGxldCB0PTAsZT1fLmxlbmd0aDt0PGU7Kyt0KXtjb25zdCBlPV9bdF0sbz1lLnN0YXJ0O2ZvcihsZXQgdD1vLGk9bytlLmNvdW50O3Q8aTt0Kz0zKXkoblt0KzBdLG5bdCsxXSxuW3QrMl0pfWNvbnN0IEM9bmV3IGNhdCxNPW5ldyBjYXQsdj1uZXcgY2F0LHg9bmV3IGNhdDtmdW5jdGlvbiBPKHQpe3YuZnJvbUFycmF5KGksMyp0KSx4LmNvcHkodik7Y29uc3QgZT1sW3RdO0MuY29weShlKSxDLnN1Yih2Lm11bHRpcGx5U2NhbGFyKHYuZG90KGUpKSkubm9ybWFsaXplKCksTS5jcm9zc1ZlY3RvcnMoeCxlKTtjb25zdCBuPU0uZG90KGNbdF0pPDA/LTE6MTtzWzQqdF09Qy54LHNbNCp0KzFdPUMueSxzWzQqdCsyXT1DLnosc1s0KnQrM109bn1mb3IobGV0IHQ9MCxlPV8ubGVuZ3RoO3Q8ZTsrK3Qpe2NvbnN0IGU9X1t0XSxvPWUuc3RhcnQ7Zm9yKGxldCB0PW8saT1vK2UuY291bnQ7dDxpO3QrPTMpTyhuW3QrMF0pLE8oblt0KzFdKSxPKG5bdCsyXSl9fWNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCl7Y29uc3QgdD10aGlzLmluZGV4LGU9dGhpcy5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIik7aWYodm9pZCAwIT09ZSl7bGV0IG49dGhpcy5nZXRBdHRyaWJ1dGUoIm5vcm1hbCIpO2lmKHZvaWQgMD09PW4pbj1uZXcgenJ0KG5ldyBGbG9hdDMyQXJyYXkoMyplLmNvdW50KSwzKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuKTtlbHNlIGZvcihsZXQgdD0wLGU9bi5jb3VudDt0PGU7dCsrKW4uc2V0WFlaKHQsMCwwLDApO2NvbnN0IG89bmV3IGNhdCxpPW5ldyBjYXQsYT1uZXcgY2F0LHI9bmV3IGNhdCxzPW5ldyBjYXQsbD1uZXcgY2F0LGM9bmV3IGNhdCxkPW5ldyBjYXQ7aWYodClmb3IobGV0IHA9MCxtPXQuY291bnQ7cDxtO3ArPTMpe2NvbnN0IG09dC5nZXRYKHArMCksdT10LmdldFgocCsxKSxmPXQuZ2V0WChwKzIpO28uZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLG0pLGkuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHUpLGEuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLGYpLGMuc3ViVmVjdG9ycyhhLGkpLGQuc3ViVmVjdG9ycyhvLGkpLGMuY3Jvc3MoZCksci5mcm9tQnVmZmVyQXR0cmlidXRlKG4sbSkscy5mcm9tQnVmZmVyQXR0cmlidXRlKG4sdSksbC5mcm9tQnVmZmVyQXR0cmlidXRlKG4sZiksci5hZGQoYykscy5hZGQoYyksbC5hZGQoYyksbi5zZXRYWVoobSxyLngsci55LHIueiksbi5zZXRYWVoodSxzLngscy55LHMueiksbi5zZXRYWVooZixsLngsbC55LGwueil9ZWxzZSBmb3IobGV0IHQ9MCxyPWUuY291bnQ7dDxyO3QrPTMpby5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCswKSxpLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx0KzEpLGEuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQrMiksYy5zdWJWZWN0b3JzKGEsaSksZC5zdWJWZWN0b3JzKG8saSksYy5jcm9zcyhkKSxuLnNldFhZWih0KzAsYy54LGMueSxjLnopLG4uc2V0WFlaKHQrMSxjLngsYy55LGMueiksbi5zZXRYWVoodCsyLGMueCxjLnksYy56KTt0aGlzLm5vcm1hbGl6ZU5vcm1hbHMoKSxuLm5lZWRzVXBkYXRlPSEwfX1tZXJnZSh0LGUpe2lmKCF0fHwhdC5pc0J1ZmZlckdlb21ldHJ5KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckdlb21ldHJ5Lm1lcmdlKCk6IGdlb21ldHJ5IG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeS4iLHQpO3ZvaWQgMD09PWUmJihlPTAsY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS5tZXJnZSgpOiBPdmVyd3JpdGluZyBvcmlnaW5hbCBnZW9tZXRyeSwgc3RhcnRpbmcgYXQgb2Zmc2V0PTAuIFVzZSBCdWZmZXJHZW9tZXRyeVV0aWxzLm1lcmdlQnVmZmVyR2VvbWV0cmllcygpIGZvciBsb3NzbGVzcyBtZXJnZS4iKSk7Y29uc3Qgbj10aGlzLmF0dHJpYnV0ZXM7Zm9yKGNvbnN0IG8gaW4gbil7aWYodm9pZCAwPT09dC5hdHRyaWJ1dGVzW29dKWNvbnRpbnVlO2NvbnN0IGk9bltvXS5hcnJheSxhPXQuYXR0cmlidXRlc1tvXSxyPWEuYXJyYXkscz1hLml0ZW1TaXplKmUsbD1NYXRoLm1pbihyLmxlbmd0aCxpLmxlbmd0aC1zKTtmb3IobGV0IHQ9MCxlPXM7dDxsO3QrKyxlKyspaVtlXT1yW3RdfXJldHVybiB0aGlzfW5vcm1hbGl6ZU5vcm1hbHMoKXtjb25zdCB0PXRoaXMuYXR0cmlidXRlcy5ub3JtYWw7Zm9yKGxldCBlPTAsbj10LmNvdW50O2U8bjtlKyspWXJ0LmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlKSxZcnQubm9ybWFsaXplKCksdC5zZXRYWVooZSxZcnQueCxZcnQueSxZcnQueil9dG9Ob25JbmRleGVkKCl7ZnVuY3Rpb24gdCh0LGUpe2NvbnN0IG49dC5hcnJheSxvPXQuaXRlbVNpemUsaT10Lm5vcm1hbGl6ZWQsYT1uZXcgbi5jb25zdHJ1Y3RvcihlLmxlbmd0aCpvKTtsZXQgcj0wLHM9MDtmb3IobGV0IGk9MCxsPWUubGVuZ3RoO2k8bDtpKyspe3I9dC5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlP2VbaV0qdC5kYXRhLnN0cmlkZSt0Lm9mZnNldDplW2ldKm87Zm9yKGxldCB0PTA7dDxvO3QrKylhW3MrK109bltyKytdfXJldHVybiBuZXcgenJ0KGEsbyxpKX1pZihudWxsPT09dGhpcy5pbmRleClyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS50b05vbkluZGV4ZWQoKTogQnVmZmVyR2VvbWV0cnkgaXMgYWxyZWFkeSBub24taW5kZXhlZC4iKSx0aGlzO2NvbnN0IGU9bmV3IHFydCxuPXRoaXMuaW5kZXguYXJyYXksbz10aGlzLmF0dHJpYnV0ZXM7Zm9yKGNvbnN0IGkgaW4gbyl7Y29uc3QgYT10KG9baV0sbik7ZS5zZXRBdHRyaWJ1dGUoaSxhKX1jb25zdCBpPXRoaXMubW9ycGhBdHRyaWJ1dGVzO2Zvcihjb25zdCBvIGluIGkpe2NvbnN0IGE9W10scj1pW29dO2ZvcihsZXQgZT0wLG89ci5sZW5ndGg7ZTxvO2UrKyl7Y29uc3Qgbz10KHJbZV0sbik7YS5wdXNoKG8pfWUubW9ycGhBdHRyaWJ1dGVzW29dPWF9ZS5tb3JwaFRhcmdldHNSZWxhdGl2ZT10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlO2NvbnN0IGE9dGhpcy5ncm91cHM7Zm9yKGxldCB0PTAsbj1hLmxlbmd0aDt0PG47dCsrKXtjb25zdCBuPWFbdF07ZS5hZGRHcm91cChuLnN0YXJ0LG4uY291bnQsbi5tYXRlcmlhbEluZGV4KX1yZXR1cm4gZX10b0pTT04oKXtjb25zdCB0PXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiQnVmZmVyR2VvbWV0cnkiLGdlbmVyYXRvcjoiQnVmZmVyR2VvbWV0cnkudG9KU09OIn19O2lmKHQudXVpZD10aGlzLnV1aWQsdC50eXBlPXRoaXMudHlwZSwiIiE9PXRoaXMubmFtZSYmKHQubmFtZT10aGlzLm5hbWUpLE9iamVjdC5rZXlzKHRoaXMudXNlckRhdGEpLmxlbmd0aD4wJiYodC51c2VyRGF0YT10aGlzLnVzZXJEYXRhKSx2b2lkIDAhPT10aGlzLnBhcmFtZXRlcnMpe2NvbnN0IGU9dGhpcy5wYXJhbWV0ZXJzO2Zvcihjb25zdCBuIGluIGUpdm9pZCAwIT09ZVtuXSYmKHRbbl09ZVtuXSk7cmV0dXJuIHR9dC5kYXRhPXthdHRyaWJ1dGVzOnt9fTtjb25zdCBlPXRoaXMuaW5kZXg7bnVsbCE9PWUmJih0LmRhdGEuaW5kZXg9e3R5cGU6ZS5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUuYXJyYXkpfSk7Y29uc3Qgbj10aGlzLmF0dHJpYnV0ZXM7Zm9yKGNvbnN0IGUgaW4gbil0LmRhdGEuYXR0cmlidXRlc1tlXT1uW2VdLnRvSlNPTih0LmRhdGEpO2NvbnN0IG89e307bGV0IGk9ITE7Zm9yKGNvbnN0IGUgaW4gdGhpcy5tb3JwaEF0dHJpYnV0ZXMpe2NvbnN0IG49dGhpcy5tb3JwaEF0dHJpYnV0ZXNbZV0sYT1bXTtmb3IobGV0IGU9MCxvPW4ubGVuZ3RoO2U8bztlKyspYS5wdXNoKG5bZV0udG9KU09OKHQuZGF0YSkpO2EubGVuZ3RoPjAmJihvW2VdPWEsaT0hMCl9aSYmKHQuZGF0YS5tb3JwaEF0dHJpYnV0ZXM9byx0LmRhdGEubW9ycGhUYXJnZXRzUmVsYXRpdmU9dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZSk7Y29uc3QgYT10aGlzLmdyb3VwczthLmxlbmd0aD4wJiYodC5kYXRhLmdyb3Vwcz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGEpKSk7Y29uc3Qgcj10aGlzLmJvdW5kaW5nU3BoZXJlO3JldHVybiBudWxsIT09ciYmKHQuZGF0YS5ib3VuZGluZ1NwaGVyZT17Y2VudGVyOnIuY2VudGVyLnRvQXJyYXkoKSxyYWRpdXM6ci5yYWRpdXN9KSx0fWNsb25lKCl7cmV0dXJuKG5ldyBxcnQpLmNvcHkodGhpcyl9Y29weSh0KXt0aGlzLmluZGV4PW51bGwsdGhpcy5hdHRyaWJ1dGVzPXt9LHRoaXMubW9ycGhBdHRyaWJ1dGVzPXt9LHRoaXMuZ3JvdXBzPVtdLHRoaXMuYm91bmRpbmdCb3g9bnVsbCx0aGlzLmJvdW5kaW5nU3BoZXJlPW51bGw7Y29uc3QgZT17fTt0aGlzLm5hbWU9dC5uYW1lO2NvbnN0IG49dC5pbmRleDtudWxsIT09biYmdGhpcy5zZXRJbmRleChuLmNsb25lKGUpKTtjb25zdCBvPXQuYXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiBvKXRoaXMuc2V0QXR0cmlidXRlKHQsb1t0XS5jbG9uZShlKSk7Y29uc3QgaT10Lm1vcnBoQXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiBpKXtjb25zdCBuPVtdLG89aVt0XTtmb3IobGV0IHQ9MCxpPW8ubGVuZ3RoO3Q8aTt0Kyspbi5wdXNoKG9bdF0uY2xvbmUoZSkpO3RoaXMubW9ycGhBdHRyaWJ1dGVzW3RdPW59dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZT10Lm1vcnBoVGFyZ2V0c1JlbGF0aXZlO2NvbnN0IGE9dC5ncm91cHM7Zm9yKGxldCB0PTAsZT1hLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWFbdF07dGhpcy5hZGRHcm91cChlLnN0YXJ0LGUuY291bnQsZS5tYXRlcmlhbEluZGV4KX1jb25zdCByPXQuYm91bmRpbmdCb3g7bnVsbCE9PXImJih0aGlzLmJvdW5kaW5nQm94PXIuY2xvbmUoKSk7Y29uc3Qgcz10LmJvdW5kaW5nU3BoZXJlO3JldHVybiBudWxsIT09cyYmKHRoaXMuYm91bmRpbmdTcGhlcmU9cy5jbG9uZSgpKSx0aGlzLmRyYXdSYW5nZS5zdGFydD10LmRyYXdSYW5nZS5zdGFydCx0aGlzLmRyYXdSYW5nZS5jb3VudD10LmRyYXdSYW5nZS5jb3VudCx0aGlzLnVzZXJEYXRhPXQudXNlckRhdGEsdGhpc31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfX1xcnQucHJvdG90eXBlLmlzQnVmZmVyR2VvbWV0cnk9ITA7Y29uc3QgWnJ0PW5ldyBCYXQsWHJ0PW5ldyBMYXQsS3J0PW5ldyBSYXQsSnJ0PW5ldyBjYXQsUXJ0PW5ldyBjYXQsJHJ0PW5ldyBjYXQsdHN0PW5ldyBjYXQsZXN0PW5ldyBjYXQsbnN0PW5ldyBjYXQsb3N0PW5ldyBjYXQsaXN0PW5ldyBjYXQsYXN0PW5ldyBjYXQscnN0PW5ldyBRaXQsc3N0PW5ldyBRaXQsbHN0PW5ldyBRaXQsY3N0PW5ldyBjYXQsZHN0PW5ldyBjYXQ7Y2xhc3MgcHN0IGV4dGVuZHMgcHJ0e2NvbnN0cnVjdG9yKHQ9bmV3IHFydCxlPW5ldyBBcnQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoIix0aGlzLmdlb21ldHJ5PXQsdGhpcy5tYXRlcmlhbD1lLHRoaXMudXBkYXRlTW9ycGhUYXJnZXRzKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx2b2lkIDAhPT10Lm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyYmKHRoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPXQubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnNsaWNlKCkpLHZvaWQgMCE9PXQubW9ycGhUYXJnZXREaWN0aW9uYXJ5JiYodGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9T2JqZWN0LmFzc2lnbih7fSx0Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeSkpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpc311cGRhdGVNb3JwaFRhcmdldHMoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBlPXQubW9ycGhBdHRyaWJ1dGVzLG49T2JqZWN0LmtleXMoZSk7aWYobi5sZW5ndGg+MCl7Y29uc3QgdD1lW25bMF1dO2lmKHZvaWQgMCE9PXQpe3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPVtdLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5PXt9O2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdLm5hbWV8fFN0cmluZyhlKTt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcy5wdXNoKDApLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5W25dPWV9fX19ZWxzZXtjb25zdCBlPXQubW9ycGhUYXJnZXRzO3ZvaWQgMCE9PWUmJmUubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2gudXBkYXRlTW9ycGhUYXJnZXRzKCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX19cmF5Y2FzdCh0LGUpe2NvbnN0IG49dGhpcy5nZW9tZXRyeSxvPXRoaXMubWF0ZXJpYWwsaT10aGlzLm1hdHJpeFdvcmxkO2lmKHZvaWQgMD09PW8pcmV0dXJuO2lmKG51bGw9PT1uLmJvdW5kaW5nU3BoZXJlJiZuLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLEtydC5jb3B5KG4uYm91bmRpbmdTcGhlcmUpLEtydC5hcHBseU1hdHJpeDQoaSksITE9PT10LnJheS5pbnRlcnNlY3RzU3BoZXJlKEtydCkpcmV0dXJuO2lmKFpydC5jb3B5KGkpLmludmVydCgpLFhydC5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQoWnJ0KSxudWxsIT09bi5ib3VuZGluZ0JveCYmITE9PT1YcnQuaW50ZXJzZWN0c0JveChuLmJvdW5kaW5nQm94KSlyZXR1cm47bGV0IGE7aWYobi5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBpPW4uaW5kZXgscj1uLmF0dHJpYnV0ZXMucG9zaXRpb24scz1uLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbixsPW4ubW9ycGhUYXJnZXRzUmVsYXRpdmUsYz1uLmF0dHJpYnV0ZXMudXYsZD1uLmF0dHJpYnV0ZXMudXYyLHA9bi5ncm91cHMsbT1uLmRyYXdSYW5nZTtpZihudWxsIT09aSlpZihBcnJheS5pc0FycmF5KG8pKWZvcihsZXQgbj0wLHU9cC5sZW5ndGg7bjx1O24rKyl7Y29uc3QgdT1wW25dLGY9b1t1Lm1hdGVyaWFsSW5kZXhdO2ZvcihsZXQgbj1NYXRoLm1heCh1LnN0YXJ0LG0uc3RhcnQpLG89TWF0aC5taW4odS5zdGFydCt1LmNvdW50LG0uc3RhcnQrbS5jb3VudCk7bjxvO24rPTMpe2NvbnN0IG89aS5nZXRYKG4pLHA9aS5nZXRYKG4rMSksbT1pLmdldFgobisyKTthPW1zdCh0aGlzLGYsdCxYcnQscixzLGwsYyxkLG8scCxtKSxhJiYoYS5mYWNlSW5kZXg9TWF0aC5mbG9vcihuLzMpLGEuZmFjZS5tYXRlcmlhbEluZGV4PXUubWF0ZXJpYWxJbmRleCxlLnB1c2goYSkpfX1lbHNlIGZvcihsZXQgbj1NYXRoLm1heCgwLG0uc3RhcnQpLHA9TWF0aC5taW4oaS5jb3VudCxtLnN0YXJ0K20uY291bnQpO248cDtuKz0zKXtjb25zdCBwPWkuZ2V0WChuKSxtPWkuZ2V0WChuKzEpLHU9aS5nZXRYKG4rMik7YT1tc3QodGhpcyxvLHQsWHJ0LHIscyxsLGMsZCxwLG0sdSksYSYmKGEuZmFjZUluZGV4PU1hdGguZmxvb3Iobi8zKSxlLnB1c2goYSkpfWVsc2UgaWYodm9pZCAwIT09cilpZihBcnJheS5pc0FycmF5KG8pKWZvcihsZXQgbj0wLGk9cC5sZW5ndGg7bjxpO24rKyl7Y29uc3QgaT1wW25dLHU9b1tpLm1hdGVyaWFsSW5kZXhdO2ZvcihsZXQgbj1NYXRoLm1heChpLnN0YXJ0LG0uc3RhcnQpLG89TWF0aC5taW4oaS5zdGFydCtpLmNvdW50LG0uc3RhcnQrbS5jb3VudCk7bjxvO24rPTMpYT1tc3QodGhpcyx1LHQsWHJ0LHIscyxsLGMsZCxuLG4rMSxuKzIpLGEmJihhLmZhY2VJbmRleD1NYXRoLmZsb29yKG4vMyksYS5mYWNlLm1hdGVyaWFsSW5kZXg9aS5tYXRlcmlhbEluZGV4LGUucHVzaChhKSl9ZWxzZSBmb3IobGV0IG49TWF0aC5tYXgoMCxtLnN0YXJ0KSxpPU1hdGgubWluKHIuY291bnQsbS5zdGFydCttLmNvdW50KTtuPGk7bis9MylhPW1zdCh0aGlzLG8sdCxYcnQscixzLGwsYyxkLG4sbisxLG4rMiksYSYmKGEuZmFjZUluZGV4PU1hdGguZmxvb3Iobi8zKSxlLnB1c2goYSkpfWVsc2Ugbi5pc0dlb21ldHJ5JiZjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoLnJheWNhc3QoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX1mdW5jdGlvbiBtc3QodCxlLG4sbyxpLGEscixzLGwsYyxkLHApe0pydC5mcm9tQnVmZmVyQXR0cmlidXRlKGksYyksUXJ0LmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxkKSwkcnQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShpLHApO2NvbnN0IG09dC5tb3JwaFRhcmdldEluZmx1ZW5jZXM7aWYoYSYmbSl7b3N0LnNldCgwLDAsMCksaXN0LnNldCgwLDAsMCksYXN0LnNldCgwLDAsMCk7Zm9yKGxldCB0PTAsZT1hLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPW1bdF0sbj1hW3RdOzAhPT1lJiYodHN0LmZyb21CdWZmZXJBdHRyaWJ1dGUobixjKSxlc3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShuLGQpLG5zdC5mcm9tQnVmZmVyQXR0cmlidXRlKG4scCkscj8ob3N0LmFkZFNjYWxlZFZlY3Rvcih0c3QsZSksaXN0LmFkZFNjYWxlZFZlY3Rvcihlc3QsZSksYXN0LmFkZFNjYWxlZFZlY3Rvcihuc3QsZSkpOihvc3QuYWRkU2NhbGVkVmVjdG9yKHRzdC5zdWIoSnJ0KSxlKSxpc3QuYWRkU2NhbGVkVmVjdG9yKGVzdC5zdWIoUXJ0KSxlKSxhc3QuYWRkU2NhbGVkVmVjdG9yKG5zdC5zdWIoJHJ0KSxlKSkpfUpydC5hZGQob3N0KSxRcnQuYWRkKGlzdCksJHJ0LmFkZChhc3QpfXQuaXNTa2lubmVkTWVzaCYmKHQuYm9uZVRyYW5zZm9ybShjLEpydCksdC5ib25lVHJhbnNmb3JtKGQsUXJ0KSx0LmJvbmVUcmFuc2Zvcm0ocCwkcnQpKTtjb25zdCB1PShmdW5jdGlvbiBmKHQsZSxuLG8saSxhLHIscyl7bGV0IGw7aWYobD0xPT09ZS5zaWRlP28uaW50ZXJzZWN0VHJpYW5nbGUocixhLGksITAscyk6by5pbnRlcnNlY3RUcmlhbmdsZShpLGEsciwyIT09ZS5zaWRlLHMpLG51bGw9PT1sKXJldHVybiBudWxsO2RzdC5jb3B5KHMpLGRzdC5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCk7Y29uc3QgYz1uLnJheS5vcmlnaW4uZGlzdGFuY2VUbyhkc3QpO3JldHVybiBjPG4ubmVhcnx8Yz5uLmZhcj9udWxsOntkaXN0YW5jZTpjLHBvaW50OmRzdC5jbG9uZSgpLG9iamVjdDp0fX0pKHQsZSxuLG8sSnJ0LFFydCwkcnQsY3N0KTtpZih1KXtzJiYocnN0LmZyb21CdWZmZXJBdHRyaWJ1dGUocyxjKSxzc3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShzLGQpLGxzdC5mcm9tQnVmZmVyQXR0cmlidXRlKHMscCksdS51dj12cnQuZ2V0VVYoY3N0LEpydCxRcnQsJHJ0LHJzdCxzc3QsbHN0LG5ldyBRaXQpKSxsJiYocnN0LmZyb21CdWZmZXJBdHRyaWJ1dGUobCxjKSxzc3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShsLGQpLGxzdC5mcm9tQnVmZmVyQXR0cmlidXRlKGwscCksdS51djI9dnJ0LmdldFVWKGNzdCxKcnQsUXJ0LCRydCxyc3Qsc3N0LGxzdCxuZXcgUWl0KSk7Y29uc3QgdD17YTpjLGI6ZCxjOnAsbm9ybWFsOm5ldyBjYXQsbWF0ZXJpYWxJbmRleDowfTt2cnQuZ2V0Tm9ybWFsKEpydCxRcnQsJHJ0LHQubm9ybWFsKSx1LmZhY2U9dH1yZXR1cm4gdX1wc3QucHJvdG90eXBlLmlzTWVzaD0hMDtjbGFzcyB1c3QgZXh0ZW5kcyBxcnR7Y29uc3RydWN0b3IodD0xLGU9MSxuPTEsbz0xLGk9MSxhPTEpe3N1cGVyKCksdGhpcy50eXBlPSJCb3hHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXt3aWR0aDp0LGhlaWdodDplLGRlcHRoOm4sd2lkdGhTZWdtZW50czpvLGhlaWdodFNlZ21lbnRzOmksZGVwdGhTZWdtZW50czphfTtjb25zdCByPXRoaXM7bz1NYXRoLmZsb29yKG8pLGk9TWF0aC5mbG9vcihpKSxhPU1hdGguZmxvb3IoYSk7Y29uc3Qgcz1bXSxsPVtdLGM9W10sZD1bXTtsZXQgcD0wLG09MDtmdW5jdGlvbiB1KHQsZSxuLG8saSxhLHUsZixnLGgsYil7Y29uc3QgeT1hL2csXz11L2gsQz1hLzIsTT11LzIsdj1mLzIseD1nKzEsTz1oKzE7bGV0IFA9MCx3PTA7Y29uc3Qgaz1uZXcgY2F0O2ZvcihsZXQgYT0wO2E8TzthKyspe2NvbnN0IHI9YSpfLU07Zm9yKGxldCBzPTA7czx4O3MrKylrW3RdPShzKnktQykqbyxrW2VdPXIqaSxrW25dPXYsbC5wdXNoKGsueCxrLnksay56KSxrW3RdPTAsa1tlXT0wLGtbbl09Zj4wPzE6LTEsYy5wdXNoKGsueCxrLnksay56KSxkLnB1c2gocy9nKSxkLnB1c2goMS1hL2gpLFArPTF9Zm9yKGxldCB0PTA7dDxoO3QrKylmb3IobGV0IGU9MDtlPGc7ZSsrKXtjb25zdCBuPXArZSt4Kih0KzEpLG89cCsoZSsxKSt4Kih0KzEpLGk9cCsoZSsxKSt4KnQ7cy5wdXNoKHArZSt4KnQsbixpKSxzLnB1c2gobixvLGkpLHcrPTZ9ci5hZGRHcm91cChtLHcsYiksbSs9dyxwKz1QfXUoInoiLCJ5IiwieCIsLTEsLTEsbixlLHQsYSxpLDApLHUoInoiLCJ5IiwieCIsMSwtMSxuLGUsLXQsYSxpLDEpLHUoIngiLCJ6IiwieSIsMSwxLHQsbixlLG8sYSwyKSx1KCJ4IiwieiIsInkiLDEsLTEsdCxuLC1lLG8sYSwzKSx1KCJ4IiwieSIsInoiLDEsLTEsdCxlLG4sbyxpLDQpLHUoIngiLCJ5IiwieiIsLTEsLTEsdCxlLC1uLG8saSw1KSx0aGlzLnNldEluZGV4KHMpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IEZydChsLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgRnJ0KGMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IEZydChkLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyB1c3QodC53aWR0aCx0LmhlaWdodCx0LmRlcHRoLHQud2lkdGhTZWdtZW50cyx0LmhlaWdodFNlZ21lbnRzLHQuZGVwdGhTZWdtZW50cyl9fWZ1bmN0aW9uIGZzdCh0KXtjb25zdCBlPXt9O2Zvcihjb25zdCBuIGluIHQpe2Vbbl09e307Zm9yKGNvbnN0IG8gaW4gdFtuXSl7Y29uc3QgaT10W25dW29dO2Vbbl1bb109aSYmKGkuaXNDb2xvcnx8aS5pc01hdHJpeDN8fGkuaXNNYXRyaXg0fHxpLmlzVmVjdG9yMnx8aS5pc1ZlY3RvcjN8fGkuaXNWZWN0b3I0fHxpLmlzVGV4dHVyZXx8aS5pc1F1YXRlcm5pb24pP2kuY2xvbmUoKTpBcnJheS5pc0FycmF5KGkpP2kuc2xpY2UoKTppfX1yZXR1cm4gZX1mdW5jdGlvbiBnc3QodCl7Y29uc3QgZT17fTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7Y29uc3Qgbz1mc3QodFtuXSk7Zm9yKGNvbnN0IHQgaW4gbyllW3RdPW9bdF19cmV0dXJuIGV9Y29uc3QgaHN0PXtjbG9uZTpmc3QsbWVyZ2U6Z3N0fTtjbGFzcyBic3QgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYWRlck1hdGVyaWFsIix0aGlzLmRlZmluZXM9e30sdGhpcy51bmlmb3Jtcz17fSx0aGlzLnZlcnRleFNoYWRlcj0idm9pZCBtYWluKCkge1xuXHRnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7XG59Iix0aGlzLmZyYWdtZW50U2hhZGVyPSJ2b2lkIG1haW4oKSB7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIDEuMCwgMC4wLCAwLjAsIDEuMCApO1xufSIsdGhpcy5saW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMubGlnaHRzPSExLHRoaXMuY2xpcHBpbmc9ITEsdGhpcy5leHRlbnNpb25zPXtkZXJpdmF0aXZlczohMSxmcmFnRGVwdGg6ITEsZHJhd0J1ZmZlcnM6ITEsc2hhZGVyVGV4dHVyZUxPRDohMX0sdGhpcy5kZWZhdWx0QXR0cmlidXRlVmFsdWVzPXtjb2xvcjpbMSwxLDFdLHV2OlswLDBdLHV2MjpbMCwwXX0sdGhpcy5pbmRleDBBdHRyaWJ1dGVOYW1lPXZvaWQgMCx0aGlzLnVuaWZvcm1zTmVlZFVwZGF0ZT0hMSx0aGlzLmdsc2xWZXJzaW9uPW51bGwsdm9pZCAwIT09dCYmKHZvaWQgMCE9PXQuYXR0cmlidXRlcyYmY29uc29sZS5lcnJvcigiVEhSRUUuU2hhZGVyTWF0ZXJpYWw6IGF0dHJpYnV0ZXMgc2hvdWxkIG5vdyBiZSBkZWZpbmVkIGluIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIiksdGhpcy5zZXRWYWx1ZXModCkpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5mcmFnbWVudFNoYWRlcj10LmZyYWdtZW50U2hhZGVyLHRoaXMudmVydGV4U2hhZGVyPXQudmVydGV4U2hhZGVyLHRoaXMudW5pZm9ybXM9ZnN0KHQudW5pZm9ybXMpLHRoaXMuZGVmaW5lcz1PYmplY3QuYXNzaWduKHt9LHQuZGVmaW5lcyksdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy5saWdodHM9dC5saWdodHMsdGhpcy5jbGlwcGluZz10LmNsaXBwaW5nLHRoaXMuZXh0ZW5zaW9ucz1PYmplY3QuYXNzaWduKHt9LHQuZXh0ZW5zaW9ucyksdGhpcy5nbHNsVmVyc2lvbj10Lmdsc2xWZXJzaW9uLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO2UuZ2xzbFZlcnNpb249dGhpcy5nbHNsVmVyc2lvbixlLnVuaWZvcm1zPXt9O2Zvcihjb25zdCBuIGluIHRoaXMudW5pZm9ybXMpe2NvbnN0IG89dGhpcy51bmlmb3Jtc1tuXS52YWx1ZTtlLnVuaWZvcm1zW25dPW8mJm8uaXNUZXh0dXJlP3t0eXBlOiJ0Iix2YWx1ZTpvLnRvSlNPTih0KS51dWlkfTpvJiZvLmlzQ29sb3I/e3R5cGU6ImMiLHZhbHVlOm8uZ2V0SGV4KCl9Om8mJm8uaXNWZWN0b3IyP3t0eXBlOiJ2MiIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNWZWN0b3IzP3t0eXBlOiJ2MyIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNWZWN0b3I0P3t0eXBlOiJ2NCIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNNYXRyaXgzP3t0eXBlOiJtMyIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNNYXRyaXg0P3t0eXBlOiJtNCIsdmFsdWU6by50b0FycmF5KCl9Ont2YWx1ZTpvfX1PYmplY3Qua2V5cyh0aGlzLmRlZmluZXMpLmxlbmd0aD4wJiYoZS5kZWZpbmVzPXRoaXMuZGVmaW5lcyksZS52ZXJ0ZXhTaGFkZXI9dGhpcy52ZXJ0ZXhTaGFkZXIsZS5mcmFnbWVudFNoYWRlcj10aGlzLmZyYWdtZW50U2hhZGVyO2NvbnN0IG49e307Zm9yKGNvbnN0IHQgaW4gdGhpcy5leHRlbnNpb25zKSEwPT09dGhpcy5leHRlbnNpb25zW3RdJiYoblt0XT0hMCk7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmxlbmd0aD4wJiYoZS5leHRlbnNpb25zPW4pLGV9fWJzdC5wcm90b3R5cGUuaXNTaGFkZXJNYXRlcmlhbD0hMDtjbGFzcyB5c3QgZXh0ZW5kcyBwcnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iQ2FtZXJhIix0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZT1uZXcgQmF0LHRoaXMucHJvamVjdGlvbk1hdHJpeD1uZXcgQmF0LHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2U9bmV3IEJhdH1jb3B5KHQsZSl7cmV0dXJuIHN1cGVyLmNvcHkodCxlKSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHQubWF0cml4V29ybGRJbnZlcnNlKSx0aGlzLnByb2plY3Rpb25NYXRyaXguY29weSh0LnByb2plY3Rpb25NYXRyaXgpLHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2UuY29weSh0LnByb2plY3Rpb25NYXRyaXhJbnZlcnNlKSx0aGlzfWdldFdvcmxkRGlyZWN0aW9uKHQpe3RoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpO2NvbnN0IGU9dGhpcy5tYXRyaXhXb3JsZC5lbGVtZW50cztyZXR1cm4gdC5zZXQoLWVbOF0sLWVbOV0sLWVbMTBdKS5ub3JtYWxpemUoKX11cGRhdGVNYXRyaXhXb3JsZCh0KXtzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpfXVwZGF0ZVdvcmxkTWF0cml4KHQsZSl7c3VwZXIudXBkYXRlV29ybGRNYXRyaXgodCxlKSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX15c3QucHJvdG90eXBlLmlzQ2FtZXJhPSEwO2NsYXNzIF9zdCBleHRlbmRzIHlzdHtjb25zdHJ1Y3Rvcih0PTUwLGU9MSxuPS4xLG89MmUzKXtzdXBlcigpLHRoaXMudHlwZT0iUGVyc3BlY3RpdmVDYW1lcmEiLHRoaXMuZm92PXQsdGhpcy56b29tPTEsdGhpcy5uZWFyPW4sdGhpcy5mYXI9byx0aGlzLmZvY3VzPTEwLHRoaXMuYXNwZWN0PWUsdGhpcy52aWV3PW51bGwsdGhpcy5maWxtR2F1Z2U9MzUsdGhpcy5maWxtT2Zmc2V0PTAsdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksdGhpcy5mb3Y9dC5mb3YsdGhpcy56b29tPXQuem9vbSx0aGlzLm5lYXI9dC5uZWFyLHRoaXMuZmFyPXQuZmFyLHRoaXMuZm9jdXM9dC5mb2N1cyx0aGlzLmFzcGVjdD10LmFzcGVjdCx0aGlzLnZpZXc9bnVsbD09PXQudmlldz9udWxsOk9iamVjdC5hc3NpZ24oe30sdC52aWV3KSx0aGlzLmZpbG1HYXVnZT10LmZpbG1HYXVnZSx0aGlzLmZpbG1PZmZzZXQ9dC5maWxtT2Zmc2V0LHRoaXN9c2V0Rm9jYWxMZW5ndGgodCl7Y29uc3QgZT0uNSp0aGlzLmdldEZpbG1IZWlnaHQoKS90O3RoaXMuZm92PTIqWWl0Kk1hdGguYXRhbihlKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1nZXRGb2NhbExlbmd0aCgpe2NvbnN0IHQ9TWF0aC50YW4oLjUqV2l0KnRoaXMuZm92KTtyZXR1cm4uNSp0aGlzLmdldEZpbG1IZWlnaHQoKS90fWdldEVmZmVjdGl2ZUZPVigpe3JldHVybiAyKllpdCpNYXRoLmF0YW4oTWF0aC50YW4oLjUqV2l0KnRoaXMuZm92KS90aGlzLnpvb20pfWdldEZpbG1XaWR0aCgpe3JldHVybiB0aGlzLmZpbG1HYXVnZSpNYXRoLm1pbih0aGlzLmFzcGVjdCwxKX1nZXRGaWxtSGVpZ2h0KCl7cmV0dXJuIHRoaXMuZmlsbUdhdWdlL01hdGgubWF4KHRoaXMuYXNwZWN0LDEpfXNldFZpZXdPZmZzZXQodCxlLG4sbyxpLGEpe3RoaXMuYXNwZWN0PXQvZSxudWxsPT09dGhpcy52aWV3JiYodGhpcy52aWV3PXtlbmFibGVkOiEwLGZ1bGxXaWR0aDoxLGZ1bGxIZWlnaHQ6MSxvZmZzZXRYOjAsb2Zmc2V0WTowLHdpZHRoOjEsaGVpZ2h0OjF9KSx0aGlzLnZpZXcuZW5hYmxlZD0hMCx0aGlzLnZpZXcuZnVsbFdpZHRoPXQsdGhpcy52aWV3LmZ1bGxIZWlnaHQ9ZSx0aGlzLnZpZXcub2Zmc2V0WD1uLHRoaXMudmlldy5vZmZzZXRZPW8sdGhpcy52aWV3LndpZHRoPWksdGhpcy52aWV3LmhlaWdodD1hLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWNsZWFyVmlld09mZnNldCgpe251bGwhPT10aGlzLnZpZXcmJih0aGlzLnZpZXcuZW5hYmxlZD0hMSksdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9dXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpe2NvbnN0IHQ9dGhpcy5uZWFyO2xldCBlPXQqTWF0aC50YW4oLjUqV2l0KnRoaXMuZm92KS90aGlzLnpvb20sbj0yKmUsbz10aGlzLmFzcGVjdCpuLGk9LS41Km87Y29uc3QgYT10aGlzLnZpZXc7aWYobnVsbCE9PXRoaXMudmlldyYmdGhpcy52aWV3LmVuYWJsZWQpe2NvbnN0IHQ9YS5mdWxsV2lkdGgscj1hLmZ1bGxIZWlnaHQ7aSs9YS5vZmZzZXRYKm8vdCxlLT1hLm9mZnNldFkqbi9yLG8qPWEud2lkdGgvdCxuKj1hLmhlaWdodC9yfWNvbnN0IHI9dGhpcy5maWxtT2Zmc2V0OzAhPT1yJiYoaSs9dCpyL3RoaXMuZ2V0RmlsbVdpZHRoKCkpLHRoaXMucHJvamVjdGlvbk1hdHJpeC5tYWtlUGVyc3BlY3RpdmUoaSxpK28sZSxlLW4sdCx0aGlzLmZhciksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMucHJvamVjdGlvbk1hdHJpeCkuaW52ZXJ0KCl9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC5mb3Y9dGhpcy5mb3YsZS5vYmplY3Quem9vbT10aGlzLnpvb20sZS5vYmplY3QubmVhcj10aGlzLm5lYXIsZS5vYmplY3QuZmFyPXRoaXMuZmFyLGUub2JqZWN0LmZvY3VzPXRoaXMuZm9jdXMsZS5vYmplY3QuYXNwZWN0PXRoaXMuYXNwZWN0LG51bGwhPT10aGlzLnZpZXcmJihlLm9iamVjdC52aWV3PU9iamVjdC5hc3NpZ24oe30sdGhpcy52aWV3KSksZS5vYmplY3QuZmlsbUdhdWdlPXRoaXMuZmlsbUdhdWdlLGUub2JqZWN0LmZpbG1PZmZzZXQ9dGhpcy5maWxtT2Zmc2V0LGV9fV9zdC5wcm90b3R5cGUuaXNQZXJzcGVjdGl2ZUNhbWVyYT0hMDtjb25zdCBDc3Q9OTA7Y2xhc3MgTXN0IGV4dGVuZHMgcHJ0e2NvbnN0cnVjdG9yKHQsZSxuKXtpZihzdXBlcigpLHRoaXMudHlwZT0iQ3ViZUNhbWVyYSIsITAhPT1uLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkN1YmVDYW1lcmE6IFRoZSBjb25zdHJ1Y3RvciBub3cgZXhwZWN0cyBhbiBpbnN0YW5jZSBvZiBXZWJHTEN1YmVSZW5kZXJUYXJnZXQgYXMgdGhpcmQgcGFyYW1ldGVyLiIpO3RoaXMucmVuZGVyVGFyZ2V0PW47Y29uc3Qgbz1uZXcgX3N0KENzdCwxLHQsZSk7by5sYXllcnM9dGhpcy5sYXllcnMsby51cC5zZXQoMCwtMSwwKSxvLmxvb2tBdChuZXcgY2F0KDEsMCwwKSksdGhpcy5hZGQobyk7Y29uc3QgaT1uZXcgX3N0KENzdCwxLHQsZSk7aS5sYXllcnM9dGhpcy5sYXllcnMsaS51cC5zZXQoMCwtMSwwKSxpLmxvb2tBdChuZXcgY2F0KC0xLDAsMCkpLHRoaXMuYWRkKGkpO2NvbnN0IGE9bmV3IF9zdChDc3QsMSx0LGUpO2EubGF5ZXJzPXRoaXMubGF5ZXJzLGEudXAuc2V0KDAsMCwxKSxhLmxvb2tBdChuZXcgY2F0KDAsMSwwKSksdGhpcy5hZGQoYSk7Y29uc3Qgcj1uZXcgX3N0KENzdCwxLHQsZSk7ci5sYXllcnM9dGhpcy5sYXllcnMsci51cC5zZXQoMCwwLC0xKSxyLmxvb2tBdChuZXcgY2F0KDAsLTEsMCkpLHRoaXMuYWRkKHIpO2NvbnN0IHM9bmV3IF9zdChDc3QsMSx0LGUpO3MubGF5ZXJzPXRoaXMubGF5ZXJzLHMudXAuc2V0KDAsLTEsMCkscy5sb29rQXQobmV3IGNhdCgwLDAsMSkpLHRoaXMuYWRkKHMpO2NvbnN0IGw9bmV3IF9zdChDc3QsMSx0LGUpO2wubGF5ZXJzPXRoaXMubGF5ZXJzLGwudXAuc2V0KDAsLTEsMCksbC5sb29rQXQobmV3IGNhdCgwLDAsLTEpKSx0aGlzLmFkZChsKX11cGRhdGUodCxlKXtudWxsPT09dGhpcy5wYXJlbnQmJnRoaXMudXBkYXRlTWF0cml4V29ybGQoKTtjb25zdCBuPXRoaXMucmVuZGVyVGFyZ2V0LFtvLGksYSxyLHMsbF09dGhpcy5jaGlsZHJlbixjPXQueHIuZW5hYmxlZCxkPXQuZ2V0UmVuZGVyVGFyZ2V0KCk7dC54ci5lbmFibGVkPSExO2NvbnN0IHA9bi50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcztuLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPSExLHQuc2V0UmVuZGVyVGFyZ2V0KG4sMCksdC5yZW5kZXIoZSxvKSx0LnNldFJlbmRlclRhcmdldChuLDEpLHQucmVuZGVyKGUsaSksdC5zZXRSZW5kZXJUYXJnZXQobiwyKSx0LnJlbmRlcihlLGEpLHQuc2V0UmVuZGVyVGFyZ2V0KG4sMyksdC5yZW5kZXIoZSxyKSx0LnNldFJlbmRlclRhcmdldChuLDQpLHQucmVuZGVyKGUscyksbi50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz1wLHQuc2V0UmVuZGVyVGFyZ2V0KG4sNSksdC5yZW5kZXIoZSxsKSx0LnNldFJlbmRlclRhcmdldChkKSx0LnhyLmVuYWJsZWQ9Y319Y2xhc3MgdnN0IGV4dGVuZHMgb2F0e2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMpe3N1cGVyKHQ9dm9pZCAwIT09dD90OltdLGU9dm9pZCAwIT09ZT9lOmRpdCxuLG8saSxhLHI9dm9pZCAwIT09cj9yOlBpdCxzLGwsYyksdGhpcy5mbGlwWT0hMX1nZXQgaW1hZ2VzKCl7cmV0dXJuIHRoaXMuaW1hZ2V9c2V0IGltYWdlcyh0KXt0aGlzLmltYWdlPXR9fXZzdC5wcm90b3R5cGUuaXNDdWJlVGV4dHVyZT0hMDtjbGFzcyB4c3QgZXh0ZW5kcyByYXR7Y29uc3RydWN0b3IodCxlLG4pe051bWJlci5pc0ludGVnZXIoZSkmJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMQ3ViZVJlbmRlclRhcmdldDogY29uc3RydWN0b3Igc2lnbmF0dXJlIGlzIG5vdyBXZWJHTEN1YmVSZW5kZXJUYXJnZXQoIHNpemUsIG9wdGlvbnMgKSIpLGU9biksc3VwZXIodCx0LGUpLHRoaXMudGV4dHVyZT1uZXcgdnN0KHZvaWQgMCwoZT1lfHx7fSkubWFwcGluZyxlLndyYXBTLGUud3JhcFQsZS5tYWdGaWx0ZXIsZS5taW5GaWx0ZXIsZS5mb3JtYXQsZS50eXBlLGUuYW5pc290cm9weSxlLmVuY29kaW5nKSx0aGlzLnRleHR1cmUuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSEwLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9dm9pZCAwIT09ZS5nZW5lcmF0ZU1pcG1hcHMmJmUuZ2VuZXJhdGVNaXBtYXBzLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9dm9pZCAwIT09ZS5taW5GaWx0ZXI/ZS5taW5GaWx0ZXI6Yml0LHRoaXMudGV4dHVyZS5fbmVlZHNGbGlwRW52TWFwPSExfWZyb21FcXVpcmVjdGFuZ3VsYXJUZXh0dXJlKHQsZSl7dGhpcy50ZXh0dXJlLnR5cGU9ZS50eXBlLHRoaXMudGV4dHVyZS5mb3JtYXQ9d2l0LHRoaXMudGV4dHVyZS5lbmNvZGluZz1lLmVuY29kaW5nLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ZS5nZW5lcmF0ZU1pcG1hcHMsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj1lLm1pbkZpbHRlcix0aGlzLnRleHR1cmUubWFnRmlsdGVyPWUubWFnRmlsdGVyO2NvbnN0IG49bmV3IHVzdCg1LDUsNSksbz1uZXcgYnN0KHtuYW1lOiJDdWJlbWFwRnJvbUVxdWlyZWN0Iix1bmlmb3Jtczpmc3Qoe3RFcXVpcmVjdDp7dmFsdWU6bnVsbH19KSx2ZXJ0ZXhTaGFkZXI6IlxuXG5cdFx0XHRcdHZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG5cblx0XHRcdFx0dmVjMyB0cmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblxuXHRcdFx0XHRcdHJldHVybiBub3JtYWxpemUoICggbWF0cml4ICogdmVjNCggZGlyLCAwLjAgKSApLnh5eiApO1xuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0XHR2V29ybGREaXJlY3Rpb24gPSB0cmFuc2Zvcm1EaXJlY3Rpb24oIHBvc2l0aW9uLCBtb2RlbE1hdHJpeCApO1xuXG5cdFx0XHRcdFx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0XHRcdFx0XHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cblx0XHRcdFx0fVxuXHRcdFx0IixmcmFnbWVudFNoYWRlcjoiXG5cblx0XHRcdFx0dW5pZm9ybSBzYW1wbGVyMkQgdEVxdWlyZWN0O1xuXG5cdFx0XHRcdHZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG5cblx0XHRcdFx0I2luY2x1ZGUgPGNvbW1vbj5cblxuXHRcdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0XHR2ZWMzIGRpcmVjdGlvbiA9IG5vcm1hbGl6ZSggdldvcmxkRGlyZWN0aW9uICk7XG5cblx0XHRcdFx0XHR2ZWMyIHNhbXBsZVVWID0gZXF1aXJlY3RVdiggZGlyZWN0aW9uICk7XG5cblx0XHRcdFx0XHRnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQoIHRFcXVpcmVjdCwgc2FtcGxlVVYgKTtcblxuXHRcdFx0XHR9XG5cdFx0XHQiLHNpZGU6MSxibGVuZGluZzowfSk7by51bmlmb3Jtcy50RXF1aXJlY3QudmFsdWU9ZTtjb25zdCBpPW5ldyBwc3QobixvKSxhPWUubWluRmlsdGVyO3JldHVybiBlLm1pbkZpbHRlcj09PXlpdCYmKGUubWluRmlsdGVyPWJpdCksbmV3IE1zdCgxLDEwLHRoaXMpLnVwZGF0ZSh0LGkpLGUubWluRmlsdGVyPWEsaS5nZW9tZXRyeS5kaXNwb3NlKCksaS5tYXRlcmlhbC5kaXNwb3NlKCksdGhpc31jbGVhcih0LGUsbixvKXtjb25zdCBpPXQuZ2V0UmVuZGVyVGFyZ2V0KCk7Zm9yKGxldCBpPTA7aTw2O2krKyl0LnNldFJlbmRlclRhcmdldCh0aGlzLGkpLHQuY2xlYXIoZSxuLG8pO3Quc2V0UmVuZGVyVGFyZ2V0KGkpfX14c3QucHJvdG90eXBlLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0PSEwO2NvbnN0IE9zdD1uZXcgY2F0LFBzdD1uZXcgY2F0LHdzdD1uZXcgJGl0O2NsYXNzIGtzdHtjb25zdHJ1Y3Rvcih0PW5ldyBjYXQoMSwwLDApLGU9MCl7dGhpcy5ub3JtYWw9dCx0aGlzLmNvbnN0YW50PWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodCksdGhpcy5jb25zdGFudD1lLHRoaXN9c2V0Q29tcG9uZW50cyh0LGUsbixvKXtyZXR1cm4gdGhpcy5ub3JtYWwuc2V0KHQsZSxuKSx0aGlzLmNvbnN0YW50PW8sdGhpc31zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCh0LGUpe3JldHVybiB0aGlzLm5vcm1hbC5jb3B5KHQpLHRoaXMuY29uc3RhbnQ9LWUuZG90KHRoaXMubm9ybWFsKSx0aGlzfXNldEZyb21Db3BsYW5hclBvaW50cyh0LGUsbil7Y29uc3Qgbz1Pc3Quc3ViVmVjdG9ycyhuLGUpLmNyb3NzKFBzdC5zdWJWZWN0b3JzKHQsZSkpLm5vcm1hbGl6ZSgpO3JldHVybiB0aGlzLnNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KG8sdCksdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm5vcm1hbC5jb3B5KHQubm9ybWFsKSx0aGlzLmNvbnN0YW50PXQuY29uc3RhbnQsdGhpc31ub3JtYWxpemUoKXtjb25zdCB0PTEvdGhpcy5ub3JtYWwubGVuZ3RoKCk7cmV0dXJuIHRoaXMubm9ybWFsLm11bHRpcGx5U2NhbGFyKHQpLHRoaXMuY29uc3RhbnQqPXQsdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy5jb25zdGFudCo9LTEsdGhpcy5ub3JtYWwubmVnYXRlKCksdGhpc31kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIHRoaXMubm9ybWFsLmRvdCh0KSt0aGlzLmNvbnN0YW50fWRpc3RhbmNlVG9TcGhlcmUodCl7cmV0dXJuIHRoaXMuZGlzdGFuY2VUb1BvaW50KHQuY2VudGVyKS10LnJhZGl1c31wcm9qZWN0UG9pbnQodCxlKXtyZXR1cm4gZS5jb3B5KHRoaXMubm9ybWFsKS5tdWx0aXBseVNjYWxhcigtdGhpcy5kaXN0YW5jZVRvUG9pbnQodCkpLmFkZCh0KX1pbnRlcnNlY3RMaW5lKHQsZSl7Y29uc3Qgbj10LmRlbHRhKE9zdCksbz10aGlzLm5vcm1hbC5kb3Qobik7aWYoMD09PW8pcmV0dXJuIDA9PT10aGlzLmRpc3RhbmNlVG9Qb2ludCh0LnN0YXJ0KT9lLmNvcHkodC5zdGFydCk6bnVsbDtjb25zdCBpPS0odC5zdGFydC5kb3QodGhpcy5ub3JtYWwpK3RoaXMuY29uc3RhbnQpL287cmV0dXJuIGk8MHx8aT4xP251bGw6ZS5jb3B5KG4pLm11bHRpcGx5U2NhbGFyKGkpLmFkZCh0LnN0YXJ0KX1pbnRlcnNlY3RzTGluZSh0KXtjb25zdCBlPXRoaXMuZGlzdGFuY2VUb1BvaW50KHQuc3RhcnQpLG49dGhpcy5kaXN0YW5jZVRvUG9pbnQodC5lbmQpO3JldHVybiBlPDAmJm4+MHx8bjwwJiZlPjB9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzUGxhbmUodGhpcyl9aW50ZXJzZWN0c1NwaGVyZSh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzUGxhbmUodGhpcyl9Y29wbGFuYXJQb2ludCh0KXtyZXR1cm4gdC5jb3B5KHRoaXMubm9ybWFsKS5tdWx0aXBseVNjYWxhcigtdGhpcy5jb25zdGFudCl9YXBwbHlNYXRyaXg0KHQsZSl7Y29uc3Qgbj1lfHx3c3QuZ2V0Tm9ybWFsTWF0cml4KHQpLG89dGhpcy5jb3BsYW5hclBvaW50KE9zdCkuYXBwbHlNYXRyaXg0KHQpLGk9dGhpcy5ub3JtYWwuYXBwbHlNYXRyaXgzKG4pLm5vcm1hbGl6ZSgpO3JldHVybiB0aGlzLmNvbnN0YW50PS1vLmRvdChpKSx0aGlzfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5jb25zdGFudC09dC5kb3QodGhpcy5ub3JtYWwpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm5vcm1hbC5lcXVhbHModGhpcy5ub3JtYWwpJiZ0LmNvbnN0YW50PT09dGhpcy5jb25zdGFudH1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19a3N0LnByb3RvdHlwZS5pc1BsYW5lPSEwO2NvbnN0IFNzdD1uZXcgUmF0LERzdD1uZXcgY2F0O2NsYXNzIEVzdHtjb25zdHJ1Y3Rvcih0PW5ldyBrc3QsZT1uZXcga3N0LG49bmV3IGtzdCxvPW5ldyBrc3QsaT1uZXcga3N0LGE9bmV3IGtzdCl7dGhpcy5wbGFuZXM9W3QsZSxuLG8saSxhXX1zZXQodCxlLG4sbyxpLGEpe2NvbnN0IHI9dGhpcy5wbGFuZXM7cmV0dXJuIHJbMF0uY29weSh0KSxyWzFdLmNvcHkoZSksclsyXS5jb3B5KG4pLHJbM10uY29weShvKSxyWzRdLmNvcHkoaSkscls1XS5jb3B5KGEpLHRoaXN9Y29weSh0KXtjb25zdCBlPXRoaXMucGxhbmVzO2ZvcihsZXQgbj0wO248NjtuKyspZVtuXS5jb3B5KHQucGxhbmVzW25dKTtyZXR1cm4gdGhpc31zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCh0KXtjb25zdCBlPXRoaXMucGxhbmVzLG49dC5lbGVtZW50cyxvPW5bMF0saT1uWzFdLGE9blsyXSxyPW5bM10scz1uWzRdLGw9bls1XSxjPW5bNl0sZD1uWzddLHA9bls4XSxtPW5bOV0sdT1uWzEwXSxmPW5bMTFdLGc9blsxMl0saD1uWzEzXSxiPW5bMTRdLHk9blsxNV07cmV0dXJuIGVbMF0uc2V0Q29tcG9uZW50cyhyLW8sZC1zLGYtcCx5LWcpLm5vcm1hbGl6ZSgpLGVbMV0uc2V0Q29tcG9uZW50cyhyK28sZCtzLGYrcCx5K2cpLm5vcm1hbGl6ZSgpLGVbMl0uc2V0Q29tcG9uZW50cyhyK2ksZCtsLGYrbSx5K2gpLm5vcm1hbGl6ZSgpLGVbM10uc2V0Q29tcG9uZW50cyhyLWksZC1sLGYtbSx5LWgpLm5vcm1hbGl6ZSgpLGVbNF0uc2V0Q29tcG9uZW50cyhyLWEsZC1jLGYtdSx5LWIpLm5vcm1hbGl6ZSgpLGVbNV0uc2V0Q29tcG9uZW50cyhyK2EsZCtjLGYrdSx5K2IpLm5vcm1hbGl6ZSgpLHRoaXN9aW50ZXJzZWN0c09iamVjdCh0KXtjb25zdCBlPXQuZ2VvbWV0cnk7cmV0dXJuIG51bGw9PT1lLmJvdW5kaW5nU3BoZXJlJiZlLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLFNzdC5jb3B5KGUuYm91bmRpbmdTcGhlcmUpLmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkKSx0aGlzLmludGVyc2VjdHNTcGhlcmUoU3N0KX1pbnRlcnNlY3RzU3ByaXRlKHQpe3JldHVybiBTc3QuY2VudGVyLnNldCgwLDAsMCksU3N0LnJhZGl1cz0uNzA3MTA2NzgxMTg2NTQ3NixTc3QuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZShTc3QpfWludGVyc2VjdHNTcGhlcmUodCl7Y29uc3QgZT10aGlzLnBsYW5lcyxuPXQuY2VudGVyLG89LXQucmFkaXVzO2ZvcihsZXQgdD0wO3Q8Njt0KyspaWYoZVt0XS5kaXN0YW5jZVRvUG9pbnQobik8bylyZXR1cm4hMTtyZXR1cm4hMH1pbnRlcnNlY3RzQm94KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXM7Zm9yKGxldCBuPTA7bjw2O24rKyl7Y29uc3Qgbz1lW25dO2lmKERzdC54PW8ubm9ybWFsLng+MD90Lm1heC54OnQubWluLngsRHN0Lnk9by5ub3JtYWwueT4wP3QubWF4Lnk6dC5taW4ueSxEc3Quej1vLm5vcm1hbC56PjA/dC5tYXguejp0Lm1pbi56LG8uZGlzdGFuY2VUb1BvaW50KERzdCk8MClyZXR1cm4hMX1yZXR1cm4hMH1jb250YWluc1BvaW50KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXM7Zm9yKGxldCBuPTA7bjw2O24rKylpZihlW25dLmRpc3RhbmNlVG9Qb2ludCh0KTwwKXJldHVybiExO3JldHVybiEwfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX1mdW5jdGlvbiBSc3QoKXtsZXQgdD1udWxsLGU9ITEsbj1udWxsLG89bnVsbDtmdW5jdGlvbiBpKGUsYSl7bihlLGEpLG89dC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaSl9cmV0dXJue3N0YXJ0OmZ1bmN0aW9uKCl7ITAhPT1lJiZudWxsIT09biYmKG89dC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaSksZT0hMCl9LHN0b3A6ZnVuY3Rpb24oKXt0LmNhbmNlbEFuaW1hdGlvbkZyYW1lKG8pLGU9ITF9LHNldEFuaW1hdGlvbkxvb3A6ZnVuY3Rpb24odCl7bj10fSxzZXRDb250ZXh0OmZ1bmN0aW9uKGUpe3Q9ZX19fWZ1bmN0aW9uIEFzdCh0LGUpe2NvbnN0IG49ZS5pc1dlYkdMMixvPW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlJiYodD10LmRhdGEpLG8uZ2V0KHQpfSxyZW1vdmU6ZnVuY3Rpb24gYShlKXtlLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUmJihlPWUuZGF0YSk7Y29uc3Qgbj1vLmdldChlKTtuJiYodC5kZWxldGVCdWZmZXIobi5idWZmZXIpLG8uZGVsZXRlKGUpKX0sdXBkYXRlOmZ1bmN0aW9uIHIoZSxpKXtpZihlLmlzR0xCdWZmZXJBdHRyaWJ1dGUpe2NvbnN0IHQ9by5nZXQoZSk7cmV0dXJuIHZvaWQoKCF0fHx0LnZlcnNpb248ZS52ZXJzaW9uKSYmby5zZXQoZSx7YnVmZmVyOmUuYnVmZmVyLHR5cGU6ZS50eXBlLGJ5dGVzUGVyRWxlbWVudDplLmVsZW1lbnRTaXplLHZlcnNpb246ZS52ZXJzaW9ufSkpfWUuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSYmKGU9ZS5kYXRhKTtjb25zdCBhPW8uZ2V0KGUpO3ZvaWQgMD09PWE/by5zZXQoZSwoZnVuY3Rpb24gcihlLG8pe2NvbnN0IGk9ZS5hcnJheSxhPWUudXNhZ2Uscj10LmNyZWF0ZUJ1ZmZlcigpO3QuYmluZEJ1ZmZlcihvLHIpLHQuYnVmZmVyRGF0YShvLGksYSksZS5vblVwbG9hZENhbGxiYWNrKCk7bGV0IHM9NTEyNjtyZXR1cm4gaSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheT9zPTUxMjY6aSBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheT9jb25zb2xlLndhcm4oIlRIUkVFLldlYkdMQXR0cmlidXRlczogVW5zdXBwb3J0ZWQgZGF0YSBidWZmZXIgZm9ybWF0OiBGbG9hdDY0QXJyYXkuIik6aSBpbnN0YW5jZW9mIFVpbnQxNkFycmF5P2UuaXNGbG9hdDE2QnVmZmVyQXR0cmlidXRlP24/cz01MTMxOmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xBdHRyaWJ1dGVzOiBVc2FnZSBvZiBGbG9hdDE2QnVmZmVyQXR0cmlidXRlIHJlcXVpcmVzIFdlYkdMMi4iKTpzPTUxMjM6aSBpbnN0YW5jZW9mIEludDE2QXJyYXk/cz01MTIyOmkgaW5zdGFuY2VvZiBVaW50MzJBcnJheT9zPTUxMjU6aSBpbnN0YW5jZW9mIEludDMyQXJyYXk/cz01MTI0OmkgaW5zdGFuY2VvZiBJbnQ4QXJyYXk/cz01MTIwOihpIGluc3RhbmNlb2YgVWludDhBcnJheXx8aSBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5KSYmKHM9NTEyMSkse2J1ZmZlcjpyLHR5cGU6cyxieXRlc1BlckVsZW1lbnQ6aS5CWVRFU19QRVJfRUxFTUVOVCx2ZXJzaW9uOmUudmVyc2lvbn19KShlLGkpKTphLnZlcnNpb248ZS52ZXJzaW9uJiYoKGZ1bmN0aW9uIHMoZSxvLGkpe2NvbnN0IGE9by5hcnJheSxyPW8udXBkYXRlUmFuZ2U7dC5iaW5kQnVmZmVyKGksZSksLTE9PT1yLmNvdW50P3QuYnVmZmVyU3ViRGF0YShpLDAsYSk6KG4/dC5idWZmZXJTdWJEYXRhKGksci5vZmZzZXQqYS5CWVRFU19QRVJfRUxFTUVOVCxhLHIub2Zmc2V0LHIuY291bnQpOnQuYnVmZmVyU3ViRGF0YShpLHIub2Zmc2V0KmEuQllURVNfUEVSX0VMRU1FTlQsYS5zdWJhcnJheShyLm9mZnNldCxyLm9mZnNldCtyLmNvdW50KSksci5jb3VudD0tMSl9KShhLmJ1ZmZlcixlLGkpLGEudmVyc2lvbj1lLnZlcnNpb24pfX19Y2xhc3MgVHN0IGV4dGVuZHMgcXJ0e2NvbnN0cnVjdG9yKHQ9MSxlPTEsbj0xLG89MSl7c3VwZXIoKSx0aGlzLnR5cGU9IlBsYW5lR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17d2lkdGg6dCxoZWlnaHQ6ZSx3aWR0aFNlZ21lbnRzOm4saGVpZ2h0U2VnbWVudHM6b307Y29uc3QgaT10LzIsYT1lLzIscj1NYXRoLmZsb29yKG4pLHM9TWF0aC5mbG9vcihvKSxsPXIrMSxjPXMrMSxkPXQvcixwPWUvcyxtPVtdLHU9W10sZj1bXSxnPVtdO2ZvcihsZXQgdD0wO3Q8Yzt0Kyspe2NvbnN0IGU9dCpwLWE7Zm9yKGxldCBuPTA7bjxsO24rKyl1LnB1c2gobipkLWksLWUsMCksZi5wdXNoKDAsMCwxKSxnLnB1c2gobi9yKSxnLnB1c2goMS10L3MpfWZvcihsZXQgdD0wO3Q8czt0KyspZm9yKGxldCBlPTA7ZTxyO2UrKyl7Y29uc3Qgbj1lK2wqKHQrMSksbz1lKzErbCoodCsxKSxpPWUrMStsKnQ7bS5wdXNoKGUrbCp0LG4saSksbS5wdXNoKG4sbyxpKX10aGlzLnNldEluZGV4KG0pLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IEZydCh1LDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgRnJ0KGYsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IEZydChnLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBUc3QodC53aWR0aCx0LmhlaWdodCx0LndpZHRoU2VnbWVudHMsdC5oZWlnaHRTZWdtZW50cyl9fWNvbnN0IE5zdD17YWxwaGFtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQUxQSEFNQVBcblx0ZGlmZnVzZUNvbG9yLmEgKj0gdGV4dHVyZTJEKCBhbHBoYU1hcCwgdlV2ICkuZztcbiNlbmRpZiIsYWxwaGFtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9BTFBIQU1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBhbHBoYU1hcDtcbiNlbmRpZiIsYWxwaGF0ZXN0X2ZyYWdtZW50OiIjaWZkZWYgQUxQSEFURVNUXG5cdGlmICggZGlmZnVzZUNvbG9yLmEgPCBBTFBIQVRFU1QgKSBkaXNjYXJkO1xuI2VuZGlmIixhb21hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9BT01BUFxuXHRmbG9hdCBhbWJpZW50T2NjbHVzaW9uID0gKCB0ZXh0dXJlMkQoIGFvTWFwLCB2VXYyICkuciAtIDEuMCApICogYW9NYXBJbnRlbnNpdHkgKyAxLjA7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSAqPSBhbWJpZW50T2NjbHVzaW9uO1xuXHQjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApICYmIGRlZmluZWQoIFNUQU5EQVJEIClcblx0XHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZ2VvbWV0cnkudmlld0RpciApICk7XG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3RTcGVjdWxhciAqPSBjb21wdXRlU3BlY3VsYXJPY2NsdXNpb24oIGRvdE5WLCBhbWJpZW50T2NjbHVzaW9uLCBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcyApO1xuXHQjZW5kaWZcbiNlbmRpZiIsYW9tYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9BT01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBhb01hcDtcblx0dW5pZm9ybSBmbG9hdCBhb01hcEludGVuc2l0eTtcbiNlbmRpZiIsYmVnaW5fdmVydGV4OiJ2ZWMzIHRyYW5zZm9ybWVkID0gdmVjMyggcG9zaXRpb24gKTsiLGJlZ2lubm9ybWFsX3ZlcnRleDoidmVjMyBvYmplY3ROb3JtYWwgPSB2ZWMzKCBub3JtYWwgKTtcbiNpZmRlZiBVU0VfVEFOR0VOVFxuXHR2ZWMzIG9iamVjdFRhbmdlbnQgPSB2ZWMzKCB0YW5nZW50Lnh5eiApO1xuI2VuZGlmIixic2RmczoidmVjMiBpbnRlZ3JhdGVTcGVjdWxhckJSREYoIGNvbnN0IGluIGZsb2F0IGRvdE5WLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGNvbnN0IHZlYzQgYzAgPSB2ZWM0KCAtIDEsIC0gMC4wMjc1LCAtIDAuNTcyLCAwLjAyMiApO1xuXHRjb25zdCB2ZWM0IGMxID0gdmVjNCggMSwgMC4wNDI1LCAxLjA0LCAtIDAuMDQgKTtcblx0dmVjNCByID0gcm91Z2huZXNzICogYzAgKyBjMTtcblx0ZmxvYXQgYTAwNCA9IG1pbiggci54ICogci54LCBleHAyKCAtIDkuMjggKiBkb3ROViApICkgKiByLnggKyByLnk7XG5cdHJldHVybiB2ZWMyKCAtMS4wNCwgMS4wNCApICogYTAwNCArIHIuenc7XG59XG5mbG9hdCBwdW5jdHVhbExpZ2h0SW50ZW5zaXR5VG9JcnJhZGlhbmNlRmFjdG9yKCBjb25zdCBpbiBmbG9hdCBsaWdodERpc3RhbmNlLCBjb25zdCBpbiBmbG9hdCBjdXRvZmZEaXN0YW5jZSwgY29uc3QgaW4gZmxvYXQgZGVjYXlFeHBvbmVudCApIHtcbiNpZiBkZWZpbmVkICggUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUUyApXG5cdGZsb2F0IGRpc3RhbmNlRmFsbG9mZiA9IDEuMCAvIG1heCggcG93KCBsaWdodERpc3RhbmNlLCBkZWNheUV4cG9uZW50ICksIDAuMDEgKTtcblx0aWYoIGN1dG9mZkRpc3RhbmNlID4gMC4wICkge1xuXHRcdGRpc3RhbmNlRmFsbG9mZiAqPSBwb3cyKCBzYXR1cmF0ZSggMS4wIC0gcG93NCggbGlnaHREaXN0YW5jZSAvIGN1dG9mZkRpc3RhbmNlICkgKSApO1xuXHR9XG5cdHJldHVybiBkaXN0YW5jZUZhbGxvZmY7XG4jZWxzZVxuXHRpZiggY3V0b2ZmRGlzdGFuY2UgPiAwLjAgJiYgZGVjYXlFeHBvbmVudCA+IDAuMCApIHtcblx0XHRyZXR1cm4gcG93KCBzYXR1cmF0ZSggLWxpZ2h0RGlzdGFuY2UgLyBjdXRvZmZEaXN0YW5jZSArIDEuMCApLCBkZWNheUV4cG9uZW50ICk7XG5cdH1cblx0cmV0dXJuIDEuMDtcbiNlbmRpZlxufVxudmVjMyBCUkRGX0RpZmZ1c2VfTGFtYmVydCggY29uc3QgaW4gdmVjMyBkaWZmdXNlQ29sb3IgKSB7XG5cdHJldHVybiBSRUNJUFJPQ0FMX1BJICogZGlmZnVzZUNvbG9yO1xufVxudmVjMyBGX1NjaGxpY2soIGNvbnN0IGluIHZlYzMgZjAsIGNvbnN0IGluIHZlYzMgZjkwLCBjb25zdCBpbiBmbG9hdCBkb3RWSCApIHtcblx0ZmxvYXQgZnJlc25lbCA9IGV4cDIoICggLTUuNTU0NzMgKiBkb3RWSCAtIDYuOTgzMTYgKSAqIGRvdFZIICk7XG5cdHJldHVybiAoIGY5MCAtIGYwICkgKiBmcmVzbmVsICsgZjA7XG59XG52ZWMzIEZfU2NobGlja19Sb3VnaG5lc3NEZXBlbmRlbnQoIGNvbnN0IGluIHZlYzMgRjAsIGNvbnN0IGluIGZsb2F0IGRvdE5WLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGZsb2F0IGZyZXNuZWwgPSBleHAyKCAoIC01LjU1NDczICogZG90TlYgLSA2Ljk4MzE2ICkgKiBkb3ROViApO1xuXHR2ZWMzIEZyID0gbWF4KCB2ZWMzKCAxLjAgLSByb3VnaG5lc3MgKSwgRjAgKSAtIEYwO1xuXHRyZXR1cm4gRnIgKiBmcmVzbmVsICsgRjA7XG59XG5mbG9hdCBHX0dHWF9TbWl0aCggY29uc3QgaW4gZmxvYXQgYWxwaGEsIGNvbnN0IGluIGZsb2F0IGRvdE5MLCBjb25zdCBpbiBmbG9hdCBkb3ROViApIHtcblx0ZmxvYXQgYTIgPSBwb3cyKCBhbHBoYSApO1xuXHRmbG9hdCBnbCA9IGRvdE5MICsgc3FydCggYTIgKyAoIDEuMCAtIGEyICkgKiBwb3cyKCBkb3ROTCApICk7XG5cdGZsb2F0IGd2ID0gZG90TlYgKyBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5WICkgKTtcblx0cmV0dXJuIDEuMCAvICggZ2wgKiBndiApO1xufVxuZmxvYXQgR19HR1hfU21pdGhDb3JyZWxhdGVkKCBjb25zdCBpbiBmbG9hdCBhbHBoYSwgY29uc3QgaW4gZmxvYXQgZG90TkwsIGNvbnN0IGluIGZsb2F0IGRvdE5WICkge1xuXHRmbG9hdCBhMiA9IHBvdzIoIGFscGhhICk7XG5cdGZsb2F0IGd2ID0gZG90TkwgKiBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5WICkgKTtcblx0ZmxvYXQgZ2wgPSBkb3ROViAqIHNxcnQoIGEyICsgKCAxLjAgLSBhMiApICogcG93MiggZG90TkwgKSApO1xuXHRyZXR1cm4gMC41IC8gbWF4KCBndiArIGdsLCBFUFNJTE9OICk7XG59XG5mbG9hdCBEX0dHWCggY29uc3QgaW4gZmxvYXQgYWxwaGEsIGNvbnN0IGluIGZsb2F0IGRvdE5IICkge1xuXHRmbG9hdCBhMiA9IHBvdzIoIGFscGhhICk7XG5cdGZsb2F0IGRlbm9tID0gcG93MiggZG90TkggKSAqICggYTIgLSAxLjAgKSArIDEuMDtcblx0cmV0dXJuIFJFQ0lQUk9DQUxfUEkgKiBhMiAvIHBvdzIoIGRlbm9tICk7XG59XG52ZWMzIEJSREZfU3BlY3VsYXJfR0dYKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGluY2lkZW50TGlnaHQsIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIHZlYzMgZjAsIGNvbnN0IGluIHZlYzMgZjkwLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGZsb2F0IGFscGhhID0gcG93Miggcm91Z2huZXNzICk7XG5cdHZlYzMgaGFsZkRpciA9IG5vcm1hbGl6ZSggaW5jaWRlbnRMaWdodC5kaXJlY3Rpb24gKyB2aWV3RGlyICk7XG5cdGZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCBpbmNpZGVudExpZ2h0LmRpcmVjdGlvbiApICk7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCB2aWV3RGlyICkgKTtcblx0ZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIGhhbGZEaXIgKSApO1xuXHRmbG9hdCBkb3RMSCA9IHNhdHVyYXRlKCBkb3QoIGluY2lkZW50TGlnaHQuZGlyZWN0aW9uLCBoYWxmRGlyICkgKTtcblx0dmVjMyBGID0gRl9TY2hsaWNrKCBmMCwgZjkwLCBkb3RMSCApO1xuXHRmbG9hdCBHID0gR19HR1hfU21pdGhDb3JyZWxhdGVkKCBhbHBoYSwgZG90TkwsIGRvdE5WICk7XG5cdGZsb2F0IEQgPSBEX0dHWCggYWxwaGEsIGRvdE5IICk7XG5cdHJldHVybiBGICogKCBHICogRCApO1xufVxudmVjMiBMVENfVXYoIGNvbnN0IGluIHZlYzMgTiwgY29uc3QgaW4gdmVjMyBWLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGNvbnN0IGZsb2F0IExVVF9TSVpFID0gNjQuMDtcblx0Y29uc3QgZmxvYXQgTFVUX1NDQUxFID0gKCBMVVRfU0laRSAtIDEuMCApIC8gTFVUX1NJWkU7XG5cdGNvbnN0IGZsb2F0IExVVF9CSUFTID0gMC41IC8gTFVUX1NJWkU7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggTiwgViApICk7XG5cdHZlYzIgdXYgPSB2ZWMyKCByb3VnaG5lc3MsIHNxcnQoIDEuMCAtIGRvdE5WICkgKTtcblx0dXYgPSB1diAqIExVVF9TQ0FMRSArIExVVF9CSUFTO1xuXHRyZXR1cm4gdXY7XG59XG5mbG9hdCBMVENfQ2xpcHBlZFNwaGVyZUZvcm1GYWN0b3IoIGNvbnN0IGluIHZlYzMgZiApIHtcblx0ZmxvYXQgbCA9IGxlbmd0aCggZiApO1xuXHRyZXR1cm4gbWF4KCAoIGwgKiBsICsgZi56ICkgLyAoIGwgKyAxLjAgKSwgMC4wICk7XG59XG52ZWMzIExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29uc3QgaW4gdmVjMyB2MSwgY29uc3QgaW4gdmVjMyB2MiApIHtcblx0ZmxvYXQgeCA9IGRvdCggdjEsIHYyICk7XG5cdGZsb2F0IHkgPSBhYnMoIHggKTtcblx0ZmxvYXQgYSA9IDAuODU0Mzk4NSArICggMC40OTY1MTU1ICsgMC4wMTQ1MjA2ICogeSApICogeTtcblx0ZmxvYXQgYiA9IDMuNDE3NTk0MCArICggNC4xNjE2NzI0ICsgeSApICogeTtcblx0ZmxvYXQgdiA9IGEgLyBiO1xuXHRmbG9hdCB0aGV0YV9zaW50aGV0YSA9ICggeCA+IDAuMCApID8gdiA6IDAuNSAqIGludmVyc2VzcXJ0KCBtYXgoIDEuMCAtIHggKiB4LCAxZS03ICkgKSAtIHY7XG5cdHJldHVybiBjcm9zcyggdjEsIHYyICkgKiB0aGV0YV9zaW50aGV0YTtcbn1cbnZlYzMgTFRDX0V2YWx1YXRlKCBjb25zdCBpbiB2ZWMzIE4sIGNvbnN0IGluIHZlYzMgViwgY29uc3QgaW4gdmVjMyBQLCBjb25zdCBpbiBtYXQzIG1JbnYsIGNvbnN0IGluIHZlYzMgcmVjdENvb3Jkc1sgNCBdICkge1xuXHR2ZWMzIHYxID0gcmVjdENvb3Jkc1sgMSBdIC0gcmVjdENvb3Jkc1sgMCBdO1xuXHR2ZWMzIHYyID0gcmVjdENvb3Jkc1sgMyBdIC0gcmVjdENvb3Jkc1sgMCBdO1xuXHR2ZWMzIGxpZ2h0Tm9ybWFsID0gY3Jvc3MoIHYxLCB2MiApO1xuXHRpZiggZG90KCBsaWdodE5vcm1hbCwgUCAtIHJlY3RDb29yZHNbIDAgXSApIDwgMC4wICkgcmV0dXJuIHZlYzMoIDAuMCApO1xuXHR2ZWMzIFQxLCBUMjtcblx0VDEgPSBub3JtYWxpemUoIFYgLSBOICogZG90KCBWLCBOICkgKTtcblx0VDIgPSAtIGNyb3NzKCBOLCBUMSApO1xuXHRtYXQzIG1hdCA9IG1JbnYgKiB0cmFuc3Bvc2VNYXQzKCBtYXQzKCBUMSwgVDIsIE4gKSApO1xuXHR2ZWMzIGNvb3Jkc1sgNCBdO1xuXHRjb29yZHNbIDAgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMCBdIC0gUCApO1xuXHRjb29yZHNbIDEgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMSBdIC0gUCApO1xuXHRjb29yZHNbIDIgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMiBdIC0gUCApO1xuXHRjb29yZHNbIDMgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMyBdIC0gUCApO1xuXHRjb29yZHNbIDAgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAwIF0gKTtcblx0Y29vcmRzWyAxIF0gPSBub3JtYWxpemUoIGNvb3Jkc1sgMSBdICk7XG5cdGNvb3Jkc1sgMiBdID0gbm9ybWFsaXplKCBjb29yZHNbIDIgXSApO1xuXHRjb29yZHNbIDMgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAzIF0gKTtcblx0dmVjMyB2ZWN0b3JGb3JtRmFjdG9yID0gdmVjMyggMC4wICk7XG5cdHZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDAgXSwgY29vcmRzWyAxIF0gKTtcblx0dmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMSBdLCBjb29yZHNbIDIgXSApO1xuXHR2ZWN0b3JGb3JtRmFjdG9yICs9IExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29vcmRzWyAyIF0sIGNvb3Jkc1sgMyBdICk7XG5cdHZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDMgXSwgY29vcmRzWyAwIF0gKTtcblx0ZmxvYXQgcmVzdWx0ID0gTFRDX0NsaXBwZWRTcGhlcmVGb3JtRmFjdG9yKCB2ZWN0b3JGb3JtRmFjdG9yICk7XG5cdHJldHVybiB2ZWMzKCByZXN1bHQgKTtcbn1cbnZlYzMgQlJERl9TcGVjdWxhcl9HR1hfRW52aXJvbm1lbnQoIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIHZlYzMgc3BlY3VsYXJDb2xvciwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkge1xuXHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgdmlld0RpciApICk7XG5cdHZlYzIgYnJkZiA9IGludGVncmF0ZVNwZWN1bGFyQlJERiggZG90TlYsIHJvdWdobmVzcyApO1xuXHRyZXR1cm4gc3BlY3VsYXJDb2xvciAqIGJyZGYueCArIGJyZGYueTtcbn1cbnZvaWQgQlJERl9TcGVjdWxhcl9NdWx0aXNjYXR0ZXJpbmdfRW52aXJvbm1lbnQoIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIHZlYzMgc3BlY3VsYXJDb2xvciwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBpbm91dCB2ZWMzIHNpbmdsZVNjYXR0ZXIsIGlub3V0IHZlYzMgbXVsdGlTY2F0dGVyICkge1xuXHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZ2VvbWV0cnkudmlld0RpciApICk7XG5cdHZlYzMgRiA9IEZfU2NobGlja19Sb3VnaG5lc3NEZXBlbmRlbnQoIHNwZWN1bGFyQ29sb3IsIGRvdE5WLCByb3VnaG5lc3MgKTtcblx0dmVjMiBicmRmID0gaW50ZWdyYXRlU3BlY3VsYXJCUkRGKCBkb3ROViwgcm91Z2huZXNzICk7XG5cdHZlYzMgRnNzRXNzID0gRiAqIGJyZGYueCArIGJyZGYueTtcblx0ZmxvYXQgRXNzID0gYnJkZi54ICsgYnJkZi55O1xuXHRmbG9hdCBFbXMgPSAxLjAgLSBFc3M7XG5cdHZlYzMgRmF2ZyA9IHNwZWN1bGFyQ29sb3IgKyAoIDEuMCAtIHNwZWN1bGFyQ29sb3IgKSAqIDAuMDQ3NjE5O1x0dmVjMyBGbXMgPSBGc3NFc3MgKiBGYXZnIC8gKCAxLjAgLSBFbXMgKiBGYXZnICk7XG5cdHNpbmdsZVNjYXR0ZXIgKz0gRnNzRXNzO1xuXHRtdWx0aVNjYXR0ZXIgKz0gRm1zICogRW1zO1xufVxuZmxvYXQgR19CbGlublBob25nX0ltcGxpY2l0KCApIHtcblx0cmV0dXJuIDAuMjU7XG59XG5mbG9hdCBEX0JsaW5uUGhvbmcoIGNvbnN0IGluIGZsb2F0IHNoaW5pbmVzcywgY29uc3QgaW4gZmxvYXQgZG90TkggKSB7XG5cdHJldHVybiBSRUNJUFJPQ0FMX1BJICogKCBzaGluaW5lc3MgKiAwLjUgKyAxLjAgKSAqIHBvdyggZG90TkgsIHNoaW5pbmVzcyApO1xufVxudmVjMyBCUkRGX1NwZWN1bGFyX0JsaW5uUGhvbmcoIGNvbnN0IGluIEluY2lkZW50TGlnaHQgaW5jaWRlbnRMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gdmVjMyBzcGVjdWxhckNvbG9yLCBjb25zdCBpbiBmbG9hdCBzaGluaW5lc3MgKSB7XG5cdHZlYzMgaGFsZkRpciA9IG5vcm1hbGl6ZSggaW5jaWRlbnRMaWdodC5kaXJlY3Rpb24gKyBnZW9tZXRyeS52aWV3RGlyICk7XG5cdGZsb2F0IGRvdE5IID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBoYWxmRGlyICkgKTtcblx0ZmxvYXQgZG90TEggPSBzYXR1cmF0ZSggZG90KCBpbmNpZGVudExpZ2h0LmRpcmVjdGlvbiwgaGFsZkRpciApICk7XG5cdHZlYzMgRiA9IEZfU2NobGljayggc3BlY3VsYXJDb2xvciwgdmVjMyggMS4wICksIGRvdExIICk7XG5cdGZsb2F0IEcgPSBHX0JsaW5uUGhvbmdfSW1wbGljaXQoICk7XG5cdGZsb2F0IEQgPSBEX0JsaW5uUGhvbmcoIHNoaW5pbmVzcywgZG90TkggKTtcblx0cmV0dXJuIEYgKiAoIEcgKiBEICk7XG59XG5mbG9hdCBHR1hSb3VnaG5lc3NUb0JsaW5uRXhwb25lbnQoIGNvbnN0IGluIGZsb2F0IGdneFJvdWdobmVzcyApIHtcblx0cmV0dXJuICggMi4wIC8gcG93MiggZ2d4Um91Z2huZXNzICsgMC4wMDAxICkgLSAyLjAgKTtcbn1cbmZsb2F0IEJsaW5uRXhwb25lbnRUb0dHWFJvdWdobmVzcyggY29uc3QgaW4gZmxvYXQgYmxpbm5FeHBvbmVudCApIHtcblx0cmV0dXJuIHNxcnQoIDIuMCAvICggYmxpbm5FeHBvbmVudCArIDIuMCApICk7XG59XG4jaWYgZGVmaW5lZCggVVNFX1NIRUVOIClcbmZsb2F0IERfQ2hhcmxpZShmbG9hdCByb3VnaG5lc3MsIGZsb2F0IE5vSCkge1xuXHRmbG9hdCBpbnZBbHBoYSA9IDEuMCAvIHJvdWdobmVzcztcblx0ZmxvYXQgY29zMmggPSBOb0ggKiBOb0g7XG5cdGZsb2F0IHNpbjJoID0gbWF4KDEuMCAtIGNvczJoLCAwLjAwNzgxMjUpO1x0cmV0dXJuICgyLjAgKyBpbnZBbHBoYSkgKiBwb3coc2luMmgsIGludkFscGhhICogMC41KSAvICgyLjAgKiBQSSk7XG59XG5mbG9hdCBWX05ldWJlbHQoZmxvYXQgTm9WLCBmbG9hdCBOb0wpIHtcblx0cmV0dXJuIHNhdHVyYXRlKDEuMCAvICg0LjAgKiAoTm9MICsgTm9WIC0gTm9MICogTm9WKSkpO1xufVxudmVjMyBCUkRGX1NwZWN1bGFyX1NoZWVuKCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIHZlYzMgTCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgdmVjMyBzcGVjdWxhckNvbG9yICkge1xuXHR2ZWMzIE4gPSBnZW9tZXRyeS5ub3JtYWw7XG5cdHZlYzMgViA9IGdlb21ldHJ5LnZpZXdEaXI7XG5cdHZlYzMgSCA9IG5vcm1hbGl6ZSggViArIEwgKTtcblx0ZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBOLCBIICkgKTtcblx0cmV0dXJuIHNwZWN1bGFyQ29sb3IgKiBEX0NoYXJsaWUoIHJvdWdobmVzcywgZG90TkggKSAqIFZfTmV1YmVsdCggZG90KE4sIFYpLCBkb3QoTiwgTCkgKTtcbn1cbiNlbmRpZiIsYnVtcG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0JVTVBNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgYnVtcE1hcDtcblx0dW5pZm9ybSBmbG9hdCBidW1wU2NhbGU7XG5cdHZlYzIgZEhkeHlfZndkKCkge1xuXHRcdHZlYzIgZFNUZHggPSBkRmR4KCB2VXYgKTtcblx0XHR2ZWMyIGRTVGR5ID0gZEZkeSggdlV2ICk7XG5cdFx0ZmxvYXQgSGxsID0gYnVtcFNjYWxlICogdGV4dHVyZTJEKCBidW1wTWFwLCB2VXYgKS54O1xuXHRcdGZsb2F0IGRCeCA9IGJ1bXBTY2FsZSAqIHRleHR1cmUyRCggYnVtcE1hcCwgdlV2ICsgZFNUZHggKS54IC0gSGxsO1xuXHRcdGZsb2F0IGRCeSA9IGJ1bXBTY2FsZSAqIHRleHR1cmUyRCggYnVtcE1hcCwgdlV2ICsgZFNUZHkgKS54IC0gSGxsO1xuXHRcdHJldHVybiB2ZWMyKCBkQngsIGRCeSApO1xuXHR9XG5cdHZlYzMgcGVydHVyYk5vcm1hbEFyYiggdmVjMyBzdXJmX3BvcywgdmVjMyBzdXJmX25vcm0sIHZlYzIgZEhkeHksIGZsb2F0IGZhY2VEaXJlY3Rpb24gKSB7XG5cdFx0dmVjMyB2U2lnbWFYID0gdmVjMyggZEZkeCggc3VyZl9wb3MueCApLCBkRmR4KCBzdXJmX3Bvcy55ICksIGRGZHgoIHN1cmZfcG9zLnogKSApO1xuXHRcdHZlYzMgdlNpZ21hWSA9IHZlYzMoIGRGZHkoIHN1cmZfcG9zLnggKSwgZEZkeSggc3VyZl9wb3MueSApLCBkRmR5KCBzdXJmX3Bvcy56ICkgKTtcblx0XHR2ZWMzIHZOID0gc3VyZl9ub3JtO1xuXHRcdHZlYzMgUjEgPSBjcm9zcyggdlNpZ21hWSwgdk4gKTtcblx0XHR2ZWMzIFIyID0gY3Jvc3MoIHZOLCB2U2lnbWFYICk7XG5cdFx0ZmxvYXQgZkRldCA9IGRvdCggdlNpZ21hWCwgUjEgKSAqIGZhY2VEaXJlY3Rpb247XG5cdFx0dmVjMyB2R3JhZCA9IHNpZ24oIGZEZXQgKSAqICggZEhkeHkueCAqIFIxICsgZEhkeHkueSAqIFIyICk7XG5cdFx0cmV0dXJuIG5vcm1hbGl6ZSggYWJzKCBmRGV0ICkgKiBzdXJmX25vcm0gLSB2R3JhZCApO1xuXHR9XG4jZW5kaWYiLGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudDoiI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwXG5cdHZlYzQgcGxhbmU7XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgVU5JT05fQ0xJUFBJTkdfUExBTkVTOyBpICsrICkge1xuXHRcdHBsYW5lID0gY2xpcHBpbmdQbGFuZXNbIGkgXTtcblx0XHRpZiAoIGRvdCggdkNsaXBQb3NpdGlvbiwgcGxhbmUueHl6ICkgPiBwbGFuZS53ICkgZGlzY2FyZDtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjaWYgVU5JT05fQ0xJUFBJTkdfUExBTkVTIDwgTlVNX0NMSVBQSU5HX1BMQU5FU1xuXHRcdGJvb2wgY2xpcHBlZCA9IHRydWU7XG5cdFx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRcdGZvciAoIGludCBpID0gVU5JT05fQ0xJUFBJTkdfUExBTkVTOyBpIDwgTlVNX0NMSVBQSU5HX1BMQU5FUzsgaSArKyApIHtcblx0XHRcdHBsYW5lID0gY2xpcHBpbmdQbGFuZXNbIGkgXTtcblx0XHRcdGNsaXBwZWQgPSAoIGRvdCggdkNsaXBQb3NpdGlvbiwgcGxhbmUueHl6ICkgPiBwbGFuZS53ICkgJiYgY2xpcHBlZDtcblx0XHR9XG5cdFx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0XHRpZiAoIGNsaXBwZWQgKSBkaXNjYXJkO1xuXHQjZW5kaWZcbiNlbmRpZiIsY2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ6IiNpZiBOVU1fQ0xJUFBJTkdfUExBTkVTID4gMFxuXHR2YXJ5aW5nIHZlYzMgdkNsaXBQb3NpdGlvbjtcblx0dW5pZm9ybSB2ZWM0IGNsaXBwaW5nUGxhbmVzWyBOVU1fQ0xJUFBJTkdfUExBTkVTIF07XG4jZW5kaWYiLGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleDoiI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwXG5cdHZhcnlpbmcgdmVjMyB2Q2xpcFBvc2l0aW9uO1xuI2VuZGlmIixjbGlwcGluZ19wbGFuZXNfdmVydGV4OiIjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDBcblx0dkNsaXBQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7XG4jZW5kaWYiLGNvbG9yX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0ZGlmZnVzZUNvbG9yICo9IHZDb2xvcjtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApXG5cdGRpZmZ1c2VDb2xvci5yZ2IgKj0gdkNvbG9yO1xuI2VuZGlmIixjb2xvcl9wYXJzX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0dmFyeWluZyB2ZWM0IHZDb2xvcjtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApXG5cdHZhcnlpbmcgdmVjMyB2Q29sb3I7XG4jZW5kaWYiLGNvbG9yX3BhcnNfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0dmFyeWluZyB2ZWM0IHZDb2xvcjtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApIHx8IGRlZmluZWQoIFVTRV9JTlNUQU5DSU5HX0NPTE9SIClcblx0dmFyeWluZyB2ZWMzIHZDb2xvcjtcbiNlbmRpZiIsY29sb3JfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0dkNvbG9yID0gdmVjNCggMS4wICk7XG4jZWxpZiBkZWZpbmVkKCBVU0VfQ09MT1IgKSB8fCBkZWZpbmVkKCBVU0VfSU5TVEFOQ0lOR19DT0xPUiApXG5cdHZDb2xvciA9IHZlYzMoIDEuMCApO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0NPTE9SXG5cdHZDb2xvciAqPSBjb2xvcjtcbiNlbmRpZlxuI2lmZGVmIFVTRV9JTlNUQU5DSU5HX0NPTE9SXG5cdHZDb2xvci54eXogKj0gaW5zdGFuY2VDb2xvci54eXo7XG4jZW5kaWYiLGNvbW1vbjoiI2RlZmluZSBQSSAzLjE0MTU5MjY1MzU4OTc5M1xuI2RlZmluZSBQSTIgNi4yODMxODUzMDcxNzk1ODZcbiNkZWZpbmUgUElfSEFMRiAxLjU3MDc5NjMyNjc5NDg5NjZcbiNkZWZpbmUgUkVDSVBST0NBTF9QSSAwLjMxODMwOTg4NjE4Mzc5MDdcbiNkZWZpbmUgUkVDSVBST0NBTF9QSTIgMC4xNTkxNTQ5NDMwOTE4OTUzNVxuI2RlZmluZSBFUFNJTE9OIDFlLTZcbiNpZm5kZWYgc2F0dXJhdGVcbiNkZWZpbmUgc2F0dXJhdGUoYSkgY2xhbXAoIGEsIDAuMCwgMS4wIClcbiNlbmRpZlxuI2RlZmluZSB3aGl0ZUNvbXBsZW1lbnQoYSkgKCAxLjAgLSBzYXR1cmF0ZSggYSApIClcbmZsb2F0IHBvdzIoIGNvbnN0IGluIGZsb2F0IHggKSB7IHJldHVybiB4Kng7IH1cbmZsb2F0IHBvdzMoIGNvbnN0IGluIGZsb2F0IHggKSB7IHJldHVybiB4KngqeDsgfVxuZmxvYXQgcG93NCggY29uc3QgaW4gZmxvYXQgeCApIHsgZmxvYXQgeDIgPSB4Kng7IHJldHVybiB4Mip4MjsgfVxuZmxvYXQgYXZlcmFnZSggY29uc3QgaW4gdmVjMyBjb2xvciApIHsgcmV0dXJuIGRvdCggY29sb3IsIHZlYzMoIDAuMzMzMyApICk7IH1cbmhpZ2hwIGZsb2F0IHJhbmQoIGNvbnN0IGluIHZlYzIgdXYgKSB7XG5cdGNvbnN0IGhpZ2hwIGZsb2F0IGEgPSAxMi45ODk4LCBiID0gNzguMjMzLCBjID0gNDM3NTguNTQ1Mztcblx0aGlnaHAgZmxvYXQgZHQgPSBkb3QoIHV2Lnh5LCB2ZWMyKCBhLGIgKSApLCBzbiA9IG1vZCggZHQsIFBJICk7XG5cdHJldHVybiBmcmFjdChzaW4oc24pICogYyk7XG59XG4jaWZkZWYgSElHSF9QUkVDSVNJT05cblx0ZmxvYXQgcHJlY2lzaW9uU2FmZUxlbmd0aCggdmVjMyB2ICkgeyByZXR1cm4gbGVuZ3RoKCB2ICk7IH1cbiNlbHNlXG5cdGZsb2F0IG1heDMoIHZlYzMgdiApIHsgcmV0dXJuIG1heCggbWF4KCB2LngsIHYueSApLCB2LnogKTsgfVxuXHRmbG9hdCBwcmVjaXNpb25TYWZlTGVuZ3RoKCB2ZWMzIHYgKSB7XG5cdFx0ZmxvYXQgbWF4Q29tcG9uZW50ID0gbWF4MyggYWJzKCB2ICkgKTtcblx0XHRyZXR1cm4gbGVuZ3RoKCB2IC8gbWF4Q29tcG9uZW50ICkgKiBtYXhDb21wb25lbnQ7XG5cdH1cbiNlbmRpZlxuc3RydWN0IEluY2lkZW50TGlnaHQge1xuXHR2ZWMzIGNvbG9yO1xuXHR2ZWMzIGRpcmVjdGlvbjtcblx0Ym9vbCB2aXNpYmxlO1xufTtcbnN0cnVjdCBSZWZsZWN0ZWRMaWdodCB7XG5cdHZlYzMgZGlyZWN0RGlmZnVzZTtcblx0dmVjMyBkaXJlY3RTcGVjdWxhcjtcblx0dmVjMyBpbmRpcmVjdERpZmZ1c2U7XG5cdHZlYzMgaW5kaXJlY3RTcGVjdWxhcjtcbn07XG5zdHJ1Y3QgR2VvbWV0cmljQ29udGV4dCB7XG5cdHZlYzMgcG9zaXRpb247XG5cdHZlYzMgbm9ybWFsO1xuXHR2ZWMzIHZpZXdEaXI7XG4jaWZkZWYgQ0xFQVJDT0FUXG5cdHZlYzMgY2xlYXJjb2F0Tm9ybWFsO1xuI2VuZGlmXG59O1xudmVjMyB0cmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggKCBtYXRyaXggKiB2ZWM0KCBkaXIsIDAuMCApICkueHl6ICk7XG59XG52ZWMzIGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggKCB2ZWM0KCBkaXIsIDAuMCApICogbWF0cml4ICkueHl6ICk7XG59XG52ZWMzIHByb2plY3RPblBsYW5lKGluIHZlYzMgcG9pbnQsIGluIHZlYzMgcG9pbnRPblBsYW5lLCBpbiB2ZWMzIHBsYW5lTm9ybWFsICkge1xuXHRmbG9hdCBkaXN0YW5jZSA9IGRvdCggcGxhbmVOb3JtYWwsIHBvaW50IC0gcG9pbnRPblBsYW5lICk7XG5cdHJldHVybiAtIGRpc3RhbmNlICogcGxhbmVOb3JtYWwgKyBwb2ludDtcbn1cbmZsb2F0IHNpZGVPZlBsYW5lKCBpbiB2ZWMzIHBvaW50LCBpbiB2ZWMzIHBvaW50T25QbGFuZSwgaW4gdmVjMyBwbGFuZU5vcm1hbCApIHtcblx0cmV0dXJuIHNpZ24oIGRvdCggcG9pbnQgLSBwb2ludE9uUGxhbmUsIHBsYW5lTm9ybWFsICkgKTtcbn1cbnZlYzMgbGluZVBsYW5lSW50ZXJzZWN0KCBpbiB2ZWMzIHBvaW50T25MaW5lLCBpbiB2ZWMzIGxpbmVEaXJlY3Rpb24sIGluIHZlYzMgcG9pbnRPblBsYW5lLCBpbiB2ZWMzIHBsYW5lTm9ybWFsICkge1xuXHRyZXR1cm4gbGluZURpcmVjdGlvbiAqICggZG90KCBwbGFuZU5vcm1hbCwgcG9pbnRPblBsYW5lIC0gcG9pbnRPbkxpbmUgKSAvIGRvdCggcGxhbmVOb3JtYWwsIGxpbmVEaXJlY3Rpb24gKSApICsgcG9pbnRPbkxpbmU7XG59XG5tYXQzIHRyYW5zcG9zZU1hdDMoIGNvbnN0IGluIG1hdDMgbSApIHtcblx0bWF0MyB0bXA7XG5cdHRtcFsgMCBdID0gdmVjMyggbVsgMCBdLngsIG1bIDEgXS54LCBtWyAyIF0ueCApO1xuXHR0bXBbIDEgXSA9IHZlYzMoIG1bIDAgXS55LCBtWyAxIF0ueSwgbVsgMiBdLnkgKTtcblx0dG1wWyAyIF0gPSB2ZWMzKCBtWyAwIF0ueiwgbVsgMSBdLnosIG1bIDIgXS56ICk7XG5cdHJldHVybiB0bXA7XG59XG5mbG9hdCBsaW5lYXJUb1JlbGF0aXZlTHVtaW5hbmNlKCBjb25zdCBpbiB2ZWMzIGNvbG9yICkge1xuXHR2ZWMzIHdlaWdodHMgPSB2ZWMzKCAwLjIxMjYsIDAuNzE1MiwgMC4wNzIyICk7XG5cdHJldHVybiBkb3QoIHdlaWdodHMsIGNvbG9yLnJnYiApO1xufVxuYm9vbCBpc1BlcnNwZWN0aXZlTWF0cml4KCBtYXQ0IG0gKSB7XG5cdHJldHVybiBtWyAyIF1bIDMgXSA9PSAtIDEuMDtcbn1cbnZlYzIgZXF1aXJlY3RVdiggaW4gdmVjMyBkaXIgKSB7XG5cdGZsb2F0IHUgPSBhdGFuKCBkaXIueiwgZGlyLnggKSAqIFJFQ0lQUk9DQUxfUEkyICsgMC41O1xuXHRmbG9hdCB2ID0gYXNpbiggY2xhbXAoIGRpci55LCAtIDEuMCwgMS4wICkgKSAqIFJFQ0lQUk9DQUxfUEkgKyAwLjU7XG5cdHJldHVybiB2ZWMyKCB1LCB2ICk7XG59IixjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ6IiNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFX1VWXG5cdCNkZWZpbmUgY3ViZVVWX21heE1pcExldmVsIDguMFxuXHQjZGVmaW5lIGN1YmVVVl9taW5NaXBMZXZlbCA0LjBcblx0I2RlZmluZSBjdWJlVVZfbWF4VGlsZVNpemUgMjU2LjBcblx0I2RlZmluZSBjdWJlVVZfbWluVGlsZVNpemUgMTYuMFxuXHRmbG9hdCBnZXRGYWNlKCB2ZWMzIGRpcmVjdGlvbiApIHtcblx0XHR2ZWMzIGFic0RpcmVjdGlvbiA9IGFicyggZGlyZWN0aW9uICk7XG5cdFx0ZmxvYXQgZmFjZSA9IC0gMS4wO1xuXHRcdGlmICggYWJzRGlyZWN0aW9uLnggPiBhYnNEaXJlY3Rpb24ueiApIHtcblx0XHRcdGlmICggYWJzRGlyZWN0aW9uLnggPiBhYnNEaXJlY3Rpb24ueSApXG5cdFx0XHRcdGZhY2UgPSBkaXJlY3Rpb24ueCA+IDAuMCA/IDAuMCA6IDMuMDtcblx0XHRcdGVsc2Vcblx0XHRcdFx0ZmFjZSA9IGRpcmVjdGlvbi55ID4gMC4wID8gMS4wIDogNC4wO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIGFic0RpcmVjdGlvbi56ID4gYWJzRGlyZWN0aW9uLnkgKVxuXHRcdFx0XHRmYWNlID0gZGlyZWN0aW9uLnogPiAwLjAgPyAyLjAgOiA1LjA7XG5cdFx0XHRlbHNlXG5cdFx0XHRcdGZhY2UgPSBkaXJlY3Rpb24ueSA+IDAuMCA/IDEuMCA6IDQuMDtcblx0XHR9XG5cdFx0cmV0dXJuIGZhY2U7XG5cdH1cblx0dmVjMiBnZXRVViggdmVjMyBkaXJlY3Rpb24sIGZsb2F0IGZhY2UgKSB7XG5cdFx0dmVjMiB1djtcblx0XHRpZiAoIGZhY2UgPT0gMC4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCBkaXJlY3Rpb24ueiwgZGlyZWN0aW9uLnkgKSAvIGFicyggZGlyZWN0aW9uLnggKTtcblx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDEuMCApIHtcblx0XHRcdHV2ID0gdmVjMiggLSBkaXJlY3Rpb24ueCwgLSBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueiApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi56LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueCApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR1diA9IHZlYzIoIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueiApO1xuXHRcdH1cblx0XHRyZXR1cm4gMC41ICogKCB1diArIDEuMCApO1xuXHR9XG5cdHZlYzMgYmlsaW5lYXJDdWJlVVYoIHNhbXBsZXIyRCBlbnZNYXAsIHZlYzMgZGlyZWN0aW9uLCBmbG9hdCBtaXBJbnQgKSB7XG5cdFx0ZmxvYXQgZmFjZSA9IGdldEZhY2UoIGRpcmVjdGlvbiApO1xuXHRcdGZsb2F0IGZpbHRlckludCA9IG1heCggY3ViZVVWX21pbk1pcExldmVsIC0gbWlwSW50LCAwLjAgKTtcblx0XHRtaXBJbnQgPSBtYXgoIG1pcEludCwgY3ViZVVWX21pbk1pcExldmVsICk7XG5cdFx0ZmxvYXQgZmFjZVNpemUgPSBleHAyKCBtaXBJbnQgKTtcblx0XHRmbG9hdCB0ZXhlbFNpemUgPSAxLjAgLyAoIDMuMCAqIGN1YmVVVl9tYXhUaWxlU2l6ZSApO1xuXHRcdHZlYzIgdXYgPSBnZXRVViggZGlyZWN0aW9uLCBmYWNlICkgKiAoIGZhY2VTaXplIC0gMS4wICk7XG5cdFx0dmVjMiBmID0gZnJhY3QoIHV2ICk7XG5cdFx0dXYgKz0gMC41IC0gZjtcblx0XHRpZiAoIGZhY2UgPiAyLjAgKSB7XG5cdFx0XHR1di55ICs9IGZhY2VTaXplO1xuXHRcdFx0ZmFjZSAtPSAzLjA7XG5cdFx0fVxuXHRcdHV2LnggKz0gZmFjZSAqIGZhY2VTaXplO1xuXHRcdGlmICggbWlwSW50IDwgY3ViZVVWX21heE1pcExldmVsICkge1xuXHRcdFx0dXYueSArPSAyLjAgKiBjdWJlVVZfbWF4VGlsZVNpemU7XG5cdFx0fVxuXHRcdHV2LnkgKz0gZmlsdGVySW50ICogMi4wICogY3ViZVVWX21pblRpbGVTaXplO1xuXHRcdHV2LnggKz0gMy4wICogbWF4KCAwLjAsIGN1YmVVVl9tYXhUaWxlU2l6ZSAtIDIuMCAqIGZhY2VTaXplICk7XG5cdFx0dXYgKj0gdGV4ZWxTaXplO1xuXHRcdHZlYzMgdGwgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCB0ZXh0dXJlMkQoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHR1di54ICs9IHRleGVsU2l6ZTtcblx0XHR2ZWMzIHRyID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEKCBlbnZNYXAsIHV2ICkgKS5yZ2I7XG5cdFx0dXYueSArPSB0ZXhlbFNpemU7XG5cdFx0dmVjMyBiciA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCggZW52TWFwLCB1diApICkucmdiO1xuXHRcdHV2LnggLT0gdGV4ZWxTaXplO1xuXHRcdHZlYzMgYmwgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCB0ZXh0dXJlMkQoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHR2ZWMzIHRtID0gbWl4KCB0bCwgdHIsIGYueCApO1xuXHRcdHZlYzMgYm0gPSBtaXgoIGJsLCBiciwgZi54ICk7XG5cdFx0cmV0dXJuIG1peCggdG0sIGJtLCBmLnkgKTtcblx0fVxuXHQjZGVmaW5lIHIwIDEuMFxuXHQjZGVmaW5lIHYwIDAuMzM5XG5cdCNkZWZpbmUgbTAgLSAyLjBcblx0I2RlZmluZSByMSAwLjhcblx0I2RlZmluZSB2MSAwLjI3NlxuXHQjZGVmaW5lIG0xIC0gMS4wXG5cdCNkZWZpbmUgcjQgMC40XG5cdCNkZWZpbmUgdjQgMC4wNDZcblx0I2RlZmluZSBtNCAyLjBcblx0I2RlZmluZSByNSAwLjMwNVxuXHQjZGVmaW5lIHY1IDAuMDE2XG5cdCNkZWZpbmUgbTUgMy4wXG5cdCNkZWZpbmUgcjYgMC4yMVxuXHQjZGVmaW5lIHY2IDAuMDAzOFxuXHQjZGVmaW5lIG02IDQuMFxuXHRmbG9hdCByb3VnaG5lc3NUb01pcCggZmxvYXQgcm91Z2huZXNzICkge1xuXHRcdGZsb2F0IG1pcCA9IDAuMDtcblx0XHRpZiAoIHJvdWdobmVzcyA+PSByMSApIHtcblx0XHRcdG1pcCA9ICggcjAgLSByb3VnaG5lc3MgKSAqICggbTEgLSBtMCApIC8gKCByMCAtIHIxICkgKyBtMDtcblx0XHR9IGVsc2UgaWYgKCByb3VnaG5lc3MgPj0gcjQgKSB7XG5cdFx0XHRtaXAgPSAoIHIxIC0gcm91Z2huZXNzICkgKiAoIG00IC0gbTEgKSAvICggcjEgLSByNCApICsgbTE7XG5cdFx0fSBlbHNlIGlmICggcm91Z2huZXNzID49IHI1ICkge1xuXHRcdFx0bWlwID0gKCByNCAtIHJvdWdobmVzcyApICogKCBtNSAtIG00ICkgLyAoIHI0IC0gcjUgKSArIG00O1xuXHRcdH0gZWxzZSBpZiAoIHJvdWdobmVzcyA+PSByNiApIHtcblx0XHRcdG1pcCA9ICggcjUgLSByb3VnaG5lc3MgKSAqICggbTYgLSBtNSApIC8gKCByNSAtIHI2ICkgKyBtNTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWlwID0gLSAyLjAgKiBsb2cyKCAxLjE2ICogcm91Z2huZXNzICk7XHRcdH1cblx0XHRyZXR1cm4gbWlwO1xuXHR9XG5cdHZlYzQgdGV4dHVyZUN1YmVVViggc2FtcGxlcjJEIGVudk1hcCwgdmVjMyBzYW1wbGVEaXIsIGZsb2F0IHJvdWdobmVzcyApIHtcblx0XHRmbG9hdCBtaXAgPSBjbGFtcCggcm91Z2huZXNzVG9NaXAoIHJvdWdobmVzcyApLCBtMCwgY3ViZVVWX21heE1pcExldmVsICk7XG5cdFx0ZmxvYXQgbWlwRiA9IGZyYWN0KCBtaXAgKTtcblx0XHRmbG9hdCBtaXBJbnQgPSBmbG9vciggbWlwICk7XG5cdFx0dmVjMyBjb2xvcjAgPSBiaWxpbmVhckN1YmVVViggZW52TWFwLCBzYW1wbGVEaXIsIG1pcEludCApO1xuXHRcdGlmICggbWlwRiA9PSAwLjAgKSB7XG5cdFx0XHRyZXR1cm4gdmVjNCggY29sb3IwLCAxLjAgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dmVjMyBjb2xvcjEgPSBiaWxpbmVhckN1YmVVViggZW52TWFwLCBzYW1wbGVEaXIsIG1pcEludCArIDEuMCApO1xuXHRcdFx0cmV0dXJuIHZlYzQoIG1peCggY29sb3IwLCBjb2xvcjEsIG1pcEYgKSwgMS4wICk7XG5cdFx0fVxuXHR9XG4jZW5kaWYiLGRlZmF1bHRub3JtYWxfdmVydGV4OiJ2ZWMzIHRyYW5zZm9ybWVkTm9ybWFsID0gb2JqZWN0Tm9ybWFsO1xuI2lmZGVmIFVTRV9JTlNUQU5DSU5HXG5cdG1hdDMgbSA9IG1hdDMoIGluc3RhbmNlTWF0cml4ICk7XG5cdHRyYW5zZm9ybWVkTm9ybWFsIC89IHZlYzMoIGRvdCggbVsgMCBdLCBtWyAwIF0gKSwgZG90KCBtWyAxIF0sIG1bIDEgXSApLCBkb3QoIG1bIDIgXSwgbVsgMiBdICkgKTtcblx0dHJhbnNmb3JtZWROb3JtYWwgPSBtICogdHJhbnNmb3JtZWROb3JtYWw7XG4jZW5kaWZcbnRyYW5zZm9ybWVkTm9ybWFsID0gbm9ybWFsTWF0cml4ICogdHJhbnNmb3JtZWROb3JtYWw7XG4jaWZkZWYgRkxJUF9TSURFRFxuXHR0cmFuc2Zvcm1lZE5vcm1hbCA9IC0gdHJhbnNmb3JtZWROb3JtYWw7XG4jZW5kaWZcbiNpZmRlZiBVU0VfVEFOR0VOVFxuXHR2ZWMzIHRyYW5zZm9ybWVkVGFuZ2VudCA9ICggbW9kZWxWaWV3TWF0cml4ICogdmVjNCggb2JqZWN0VGFuZ2VudCwgMC4wICkgKS54eXo7XG5cdCNpZmRlZiBGTElQX1NJREVEXG5cdFx0dHJhbnNmb3JtZWRUYW5nZW50ID0gLSB0cmFuc2Zvcm1lZFRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmIixkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGRpc3BsYWNlbWVudE1hcDtcblx0dW5pZm9ybSBmbG9hdCBkaXNwbGFjZW1lbnRTY2FsZTtcblx0dW5pZm9ybSBmbG9hdCBkaXNwbGFjZW1lbnRCaWFzO1xuI2VuZGlmIixkaXNwbGFjZW1lbnRtYXBfdmVydGV4OiIjaWZkZWYgVVNFX0RJU1BMQUNFTUVOVE1BUFxuXHR0cmFuc2Zvcm1lZCArPSBub3JtYWxpemUoIG9iamVjdE5vcm1hbCApICogKCB0ZXh0dXJlMkQoIGRpc3BsYWNlbWVudE1hcCwgdlV2ICkueCAqIGRpc3BsYWNlbWVudFNjYWxlICsgZGlzcGxhY2VtZW50QmlhcyApO1xuI2VuZGlmIixlbWlzc2l2ZW1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9FTUlTU0lWRU1BUFxuXHR2ZWM0IGVtaXNzaXZlQ29sb3IgPSB0ZXh0dXJlMkQoIGVtaXNzaXZlTWFwLCB2VXYgKTtcblx0ZW1pc3NpdmVDb2xvci5yZ2IgPSBlbWlzc2l2ZU1hcFRleGVsVG9MaW5lYXIoIGVtaXNzaXZlQ29sb3IgKS5yZ2I7XG5cdHRvdGFsRW1pc3NpdmVSYWRpYW5jZSAqPSBlbWlzc2l2ZUNvbG9yLnJnYjtcbiNlbmRpZiIsZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9FTUlTU0lWRU1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBlbWlzc2l2ZU1hcDtcbiNlbmRpZiIsZW5jb2RpbmdzX2ZyYWdtZW50OiJnbF9GcmFnQ29sb3IgPSBsaW5lYXJUb091dHB1dFRleGVsKCBnbF9GcmFnQ29sb3IgKTsiLGVuY29kaW5nc19wYXJzX2ZyYWdtZW50OiJcbnZlYzQgTGluZWFyVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUgKSB7XG5cdHJldHVybiB2YWx1ZTtcbn1cbnZlYzQgR2FtbWFUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgZ2FtbWFGYWN0b3IgKSB7XG5cdHJldHVybiB2ZWM0KCBwb3coIHZhbHVlLnJnYiwgdmVjMyggZ2FtbWFGYWN0b3IgKSApLCB2YWx1ZS5hICk7XG59XG52ZWM0IExpbmVhclRvR2FtbWEoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IGdhbW1hRmFjdG9yICkge1xuXHRyZXR1cm4gdmVjNCggcG93KCB2YWx1ZS5yZ2IsIHZlYzMoIDEuMCAvIGdhbW1hRmFjdG9yICkgKSwgdmFsdWUuYSApO1xufVxudmVjNCBzUkdCVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUgKSB7XG5cdHJldHVybiB2ZWM0KCBtaXgoIHBvdyggdmFsdWUucmdiICogMC45NDc4NjcyOTg2ICsgdmVjMyggMC4wNTIxMzI3MDE0ICksIHZlYzMoIDIuNCApICksIHZhbHVlLnJnYiAqIDAuMDc3Mzk5MzgwOCwgdmVjMyggbGVzc1RoYW5FcXVhbCggdmFsdWUucmdiLCB2ZWMzKCAwLjA0MDQ1ICkgKSApICksIHZhbHVlLmEgKTtcbn1cbnZlYzQgTGluZWFyVG9zUkdCKCBpbiB2ZWM0IHZhbHVlICkge1xuXHRyZXR1cm4gdmVjNCggbWl4KCBwb3coIHZhbHVlLnJnYiwgdmVjMyggMC40MTY2NiApICkgKiAxLjA1NSAtIHZlYzMoIDAuMDU1ICksIHZhbHVlLnJnYiAqIDEyLjkyLCB2ZWMzKCBsZXNzVGhhbkVxdWFsKCB2YWx1ZS5yZ2IsIHZlYzMoIDAuMDAzMTMwOCApICkgKSApLCB2YWx1ZS5hICk7XG59XG52ZWM0IFJHQkVUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSApIHtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAqIGV4cDIoIHZhbHVlLmEgKiAyNTUuMCAtIDEyOC4wICksIDEuMCApO1xufVxudmVjNCBMaW5lYXJUb1JHQkUoIGluIHZlYzQgdmFsdWUgKSB7XG5cdGZsb2F0IG1heENvbXBvbmVudCA9IG1heCggbWF4KCB2YWx1ZS5yLCB2YWx1ZS5nICksIHZhbHVlLmIgKTtcblx0ZmxvYXQgZkV4cCA9IGNsYW1wKCBjZWlsKCBsb2cyKCBtYXhDb21wb25lbnQgKSApLCAtMTI4LjAsIDEyNy4wICk7XG5cdHJldHVybiB2ZWM0KCB2YWx1ZS5yZ2IgLyBleHAyKCBmRXhwICksICggZkV4cCArIDEyOC4wICkgLyAyNTUuMCApO1xufVxudmVjNCBSR0JNVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IG1heFJhbmdlICkge1xuXHRyZXR1cm4gdmVjNCggdmFsdWUucmdiICogdmFsdWUuYSAqIG1heFJhbmdlLCAxLjAgKTtcbn1cbnZlYzQgTGluZWFyVG9SR0JNKCBpbiB2ZWM0IHZhbHVlLCBpbiBmbG9hdCBtYXhSYW5nZSApIHtcblx0ZmxvYXQgbWF4UkdCID0gbWF4KCB2YWx1ZS5yLCBtYXgoIHZhbHVlLmcsIHZhbHVlLmIgKSApO1xuXHRmbG9hdCBNID0gY2xhbXAoIG1heFJHQiAvIG1heFJhbmdlLCAwLjAsIDEuMCApO1xuXHRNID0gY2VpbCggTSAqIDI1NS4wICkgLyAyNTUuMDtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAvICggTSAqIG1heFJhbmdlICksIE0gKTtcbn1cbnZlYzQgUkdCRFRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlLCBpbiBmbG9hdCBtYXhSYW5nZSApIHtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAqICggKCBtYXhSYW5nZSAvIDI1NS4wICkgLyB2YWx1ZS5hICksIDEuMCApO1xufVxudmVjNCBMaW5lYXJUb1JHQkQoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IG1heFJhbmdlICkge1xuXHRmbG9hdCBtYXhSR0IgPSBtYXgoIHZhbHVlLnIsIG1heCggdmFsdWUuZywgdmFsdWUuYiApICk7XG5cdGZsb2F0IEQgPSBtYXgoIG1heFJhbmdlIC8gbWF4UkdCLCAxLjAgKTtcblx0RCA9IGNsYW1wKCBmbG9vciggRCApIC8gMjU1LjAsIDAuMCwgMS4wICk7XG5cdHJldHVybiB2ZWM0KCB2YWx1ZS5yZ2IgKiAoIEQgKiAoIDI1NS4wIC8gbWF4UmFuZ2UgKSApLCBEICk7XG59XG5jb25zdCBtYXQzIGNMb2dMdXZNID0gbWF0MyggMC4yMjA5LCAwLjMzOTAsIDAuNDE4NCwgMC4xMTM4LCAwLjY3ODAsIDAuNzMxOSwgMC4wMTAyLCAwLjExMzAsIDAuMjk2OSApO1xudmVjNCBMaW5lYXJUb0xvZ0x1diggaW4gdmVjNCB2YWx1ZSApIHtcblx0dmVjMyBYcF9ZX1hZWnAgPSBjTG9nTHV2TSAqIHZhbHVlLnJnYjtcblx0WHBfWV9YWVpwID0gbWF4KCBYcF9ZX1hZWnAsIHZlYzMoIDFlLTYsIDFlLTYsIDFlLTYgKSApO1xuXHR2ZWM0IHZSZXN1bHQ7XG5cdHZSZXN1bHQueHkgPSBYcF9ZX1hZWnAueHkgLyBYcF9ZX1hZWnAuejtcblx0ZmxvYXQgTGUgPSAyLjAgKiBsb2cyKFhwX1lfWFlacC55KSArIDEyNy4wO1xuXHR2UmVzdWx0LncgPSBmcmFjdCggTGUgKTtcblx0dlJlc3VsdC56ID0gKCBMZSAtICggZmxvb3IoIHZSZXN1bHQudyAqIDI1NS4wICkgKSAvIDI1NS4wICkgLyAyNTUuMDtcblx0cmV0dXJuIHZSZXN1bHQ7XG59XG5jb25zdCBtYXQzIGNMb2dMdXZJbnZlcnNlTSA9IG1hdDMoIDYuMDAxNCwgLTIuNzAwOCwgLTEuNzk5NiwgLTEuMzMyMCwgMy4xMDI5LCAtNS43NzIxLCAwLjMwMDgsIC0xLjA4ODIsIDUuNjI2OCApO1xudmVjNCBMb2dMdXZUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSApIHtcblx0ZmxvYXQgTGUgPSB2YWx1ZS56ICogMjU1LjAgKyB2YWx1ZS53O1xuXHR2ZWMzIFhwX1lfWFlacDtcblx0WHBfWV9YWVpwLnkgPSBleHAyKCAoIExlIC0gMTI3LjAgKSAvIDIuMCApO1xuXHRYcF9ZX1hZWnAueiA9IFhwX1lfWFlacC55IC8gdmFsdWUueTtcblx0WHBfWV9YWVpwLnggPSB2YWx1ZS54ICogWHBfWV9YWVpwLno7XG5cdHZlYzMgdlJHQiA9IGNMb2dMdXZJbnZlcnNlTSAqIFhwX1lfWFlacC5yZ2I7XG5cdHJldHVybiB2ZWM0KCBtYXgoIHZSR0IsIDAuMCApLCAxLjAgKTtcbn0iLGVudm1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdHZlYzMgY2FtZXJhVG9GcmFnO1xuXHRcdGlmICggaXNPcnRob2dyYXBoaWMgKSB7XG5cdFx0XHRjYW1lcmFUb0ZyYWcgPSBub3JtYWxpemUoIHZlYzMoIC0gdmlld01hdHJpeFsgMCBdWyAyIF0sIC0gdmlld01hdHJpeFsgMSBdWyAyIF0sIC0gdmlld01hdHJpeFsgMiBdWyAyIF0gKSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjYW1lcmFUb0ZyYWcgPSBub3JtYWxpemUoIHZXb3JsZFBvc2l0aW9uIC0gY2FtZXJhUG9zaXRpb24gKTtcblx0XHR9XG5cdFx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIG5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRcdCNpZmRlZiBFTlZNQVBfTU9ERV9SRUZMRUNUSU9OXG5cdFx0XHR2ZWMzIHJlZmxlY3RWZWMgPSByZWZsZWN0KCBjYW1lcmFUb0ZyYWcsIHdvcmxkTm9ybWFsICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZnJhY3QoIGNhbWVyYVRvRnJhZywgd29ybGROb3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApO1xuXHRcdCNlbmRpZlxuXHQjZWxzZVxuXHRcdHZlYzMgcmVmbGVjdFZlYyA9IHZSZWZsZWN0O1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVk1BUF9UWVBFX0NVQkVcblx0XHR2ZWM0IGVudkNvbG9yID0gdGV4dHVyZUN1YmUoIGVudk1hcCwgdmVjMyggZmxpcEVudk1hcCAqIHJlZmxlY3RWZWMueCwgcmVmbGVjdFZlYy55eiApICk7XG5cdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKVxuXHRcdHZlYzQgZW52Q29sb3IgPSB0ZXh0dXJlQ3ViZVVWKCBlbnZNYXAsIHJlZmxlY3RWZWMsIDAuMCApO1xuXHQjZWxzZVxuXHRcdHZlYzQgZW52Q29sb3IgPSB2ZWM0KCAwLjAgKTtcblx0I2VuZGlmXG5cdCNpZm5kZWYgRU5WTUFQX1RZUEVfQ1VCRV9VVlxuXHRcdGVudkNvbG9yID0gZW52TWFwVGV4ZWxUb0xpbmVhciggZW52Q29sb3IgKTtcblx0I2VuZGlmXG5cdCNpZmRlZiBFTlZNQVBfQkxFTkRJTkdfTVVMVElQTFlcblx0XHRvdXRnb2luZ0xpZ2h0ID0gbWl4KCBvdXRnb2luZ0xpZ2h0LCBvdXRnb2luZ0xpZ2h0ICogZW52Q29sb3IueHl6LCBzcGVjdWxhclN0cmVuZ3RoICogcmVmbGVjdGl2aXR5ICk7XG5cdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9CTEVORElOR19NSVggKVxuXHRcdG91dGdvaW5nTGlnaHQgPSBtaXgoIG91dGdvaW5nTGlnaHQsIGVudkNvbG9yLnh5eiwgc3BlY3VsYXJTdHJlbmd0aCAqIHJlZmxlY3Rpdml0eSApO1xuXHQjZWxpZiBkZWZpbmVkKCBFTlZNQVBfQkxFTkRJTkdfQUREIClcblx0XHRvdXRnb2luZ0xpZ2h0ICs9IGVudkNvbG9yLnh5eiAqIHNwZWN1bGFyU3RyZW5ndGggKiByZWZsZWN0aXZpdHk7XG5cdCNlbmRpZlxuI2VuZGlmIixlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdHVuaWZvcm0gZmxvYXQgZW52TWFwSW50ZW5zaXR5O1xuXHR1bmlmb3JtIGZsb2F0IGZsaXBFbnZNYXA7XG5cdHVuaWZvcm0gaW50IG1heE1pcExldmVsO1xuXHQjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRVxuXHRcdHVuaWZvcm0gc2FtcGxlckN1YmUgZW52TWFwO1xuXHQjZWxzZVxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIGVudk1hcDtcblx0I2VuZGlmXG5cdFxuI2VuZGlmIixlbnZtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0dW5pZm9ybSBmbG9hdCByZWZsZWN0aXZpdHk7XG5cdCNpZiBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFVTRV9OT1JNQUxNQVAgKSB8fCBkZWZpbmVkKCBQSE9ORyApXG5cdFx0I2RlZmluZSBFTlZfV09STERQT1Ncblx0I2VuZGlmXG5cdCNpZmRlZiBFTlZfV09STERQT1Ncblx0XHR2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG5cdFx0dW5pZm9ybSBmbG9hdCByZWZyYWN0aW9uUmF0aW87XG5cdCNlbHNlXG5cdFx0dmFyeWluZyB2ZWMzIHZSZWZsZWN0O1xuXHQjZW5kaWZcbiNlbmRpZiIsZW52bWFwX3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX0VOVk1BUFxuXHQjaWYgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBVU0VfTk9STUFMTUFQICkgfHxkZWZpbmVkKCBQSE9ORyApXG5cdFx0I2RlZmluZSBFTlZfV09STERQT1Ncblx0I2VuZGlmXG5cdCNpZmRlZiBFTlZfV09STERQT1Ncblx0XHRcblx0XHR2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG5cdCNlbHNlXG5cdFx0dmFyeWluZyB2ZWMzIHZSZWZsZWN0O1xuXHRcdHVuaWZvcm0gZmxvYXQgcmVmcmFjdGlvblJhdGlvO1xuXHQjZW5kaWZcbiNlbmRpZiIsZW52bWFwX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQIClcblx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRlJBQ1RJT05cblx0XHR1bmlmb3JtIGZsb2F0IHJlZnJhY3Rpb25SYXRpbztcblx0I2VuZGlmXG5cdHZlYzMgZ2V0TGlnaHRQcm9iZUluZGlyZWN0SXJyYWRpYW5jZSggY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gaW50IG1heE1JUExldmVsICkge1xuXHRcdHZlYzMgd29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBnZW9tZXRyeS5ub3JtYWwsIHZpZXdNYXRyaXggKTtcblx0XHQjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRVxuXHRcdFx0dmVjMyBxdWVyeVZlYyA9IHZlYzMoIGZsaXBFbnZNYXAgKiB3b3JsZE5vcm1hbC54LCB3b3JsZE5vcm1hbC55eiApO1xuXHRcdFx0I2lmZGVmIFRFWFRVUkVfTE9EX0VYVFxuXHRcdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmVMb2RFWFQoIGVudk1hcCwgcXVlcnlWZWMsIGZsb2F0KCBtYXhNSVBMZXZlbCApICk7XG5cdFx0XHQjZWxzZVxuXHRcdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmUoIGVudk1hcCwgcXVlcnlWZWMsIGZsb2F0KCBtYXhNSVBMZXZlbCApICk7XG5cdFx0XHQjZW5kaWZcblx0XHRcdGVudk1hcENvbG9yLnJnYiA9IGVudk1hcFRleGVsVG9MaW5lYXIoIGVudk1hcENvbG9yICkucmdiO1xuXHRcdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKVxuXHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlVVYoIGVudk1hcCwgd29ybGROb3JtYWwsIDEuMCApO1xuXHRcdCNlbHNlXG5cdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdmVjNCggMC4wICk7XG5cdFx0I2VuZGlmXG5cdFx0cmV0dXJuIFBJICogZW52TWFwQ29sb3IucmdiICogZW52TWFwSW50ZW5zaXR5O1xuXHR9XG5cdGZsb2F0IGdldFNwZWN1bGFyTUlQTGV2ZWwoIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcywgY29uc3QgaW4gaW50IG1heE1JUExldmVsICkge1xuXHRcdGZsb2F0IG1heE1JUExldmVsU2NhbGFyID0gZmxvYXQoIG1heE1JUExldmVsICk7XG5cdFx0ZmxvYXQgc2lnbWEgPSBQSSAqIHJvdWdobmVzcyAqIHJvdWdobmVzcyAvICggMS4wICsgcm91Z2huZXNzICk7XG5cdFx0ZmxvYXQgZGVzaXJlZE1JUExldmVsID0gbWF4TUlQTGV2ZWxTY2FsYXIgKyBsb2cyKCBzaWdtYSApO1xuXHRcdHJldHVybiBjbGFtcCggZGVzaXJlZE1JUExldmVsLCAwLjAsIG1heE1JUExldmVsU2NhbGFyICk7XG5cdH1cblx0dmVjMyBnZXRMaWdodFByb2JlSW5kaXJlY3RSYWRpYW5jZSggY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiBpbnQgbWF4TUlQTGV2ZWwgKSB7XG5cdFx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRkxFQ1RJT05cblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZmxlY3QoIC12aWV3RGlyLCBub3JtYWwgKTtcblx0XHRcdHJlZmxlY3RWZWMgPSBub3JtYWxpemUoIG1peCggcmVmbGVjdFZlYywgbm9ybWFsLCByb3VnaG5lc3MgKiByb3VnaG5lc3MpICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZnJhY3QoIC12aWV3RGlyLCBub3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApO1xuXHRcdCNlbmRpZlxuXHRcdHJlZmxlY3RWZWMgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCByZWZsZWN0VmVjLCB2aWV3TWF0cml4ICk7XG5cdFx0ZmxvYXQgc3BlY3VsYXJNSVBMZXZlbCA9IGdldFNwZWN1bGFyTUlQTGV2ZWwoIHJvdWdobmVzcywgbWF4TUlQTGV2ZWwgKTtcblx0XHQjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRVxuXHRcdFx0dmVjMyBxdWVyeVJlZmxlY3RWZWMgPSB2ZWMzKCBmbGlwRW52TWFwICogcmVmbGVjdFZlYy54LCByZWZsZWN0VmVjLnl6ICk7XG5cdFx0XHQjaWZkZWYgVEVYVFVSRV9MT0RfRVhUXG5cdFx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZUxvZEVYVCggZW52TWFwLCBxdWVyeVJlZmxlY3RWZWMsIHNwZWN1bGFyTUlQTGV2ZWwgKTtcblx0XHRcdCNlbHNlXG5cdFx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZSggZW52TWFwLCBxdWVyeVJlZmxlY3RWZWMsIHNwZWN1bGFyTUlQTGV2ZWwgKTtcblx0XHRcdCNlbmRpZlxuXHRcdFx0ZW52TWFwQ29sb3IucmdiID0gZW52TWFwVGV4ZWxUb0xpbmVhciggZW52TWFwQ29sb3IgKS5yZ2I7XG5cdFx0I2VsaWYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApXG5cdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmVVViggZW52TWFwLCByZWZsZWN0VmVjLCByb3VnaG5lc3MgKTtcblx0XHQjZW5kaWZcblx0XHRyZXR1cm4gZW52TWFwQ29sb3IucmdiICogZW52TWFwSW50ZW5zaXR5O1xuXHR9XG4jZW5kaWYiLGVudm1hcF92ZXJ0ZXg6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdCNpZmRlZiBFTlZfV09STERQT1Ncblx0XHR2V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24ueHl6O1xuXHQjZWxzZVxuXHRcdHZlYzMgY2FtZXJhVG9WZXJ0ZXg7XG5cdFx0aWYgKCBpc09ydGhvZ3JhcGhpYyApIHtcblx0XHRcdGNhbWVyYVRvVmVydGV4ID0gbm9ybWFsaXplKCB2ZWMzKCAtIHZpZXdNYXRyaXhbIDAgXVsgMiBdLCAtIHZpZXdNYXRyaXhbIDEgXVsgMiBdLCAtIHZpZXdNYXRyaXhbIDIgXVsgMiBdICkgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y2FtZXJhVG9WZXJ0ZXggPSBub3JtYWxpemUoIHdvcmxkUG9zaXRpb24ueHl6IC0gY2FtZXJhUG9zaXRpb24gKTtcblx0XHR9XG5cdFx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIHRyYW5zZm9ybWVkTm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdFx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRkxFQ1RJT05cblx0XHRcdHZSZWZsZWN0ID0gcmVmbGVjdCggY2FtZXJhVG9WZXJ0ZXgsIHdvcmxkTm9ybWFsICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZSZWZsZWN0ID0gcmVmcmFjdCggY2FtZXJhVG9WZXJ0ZXgsIHdvcmxkTm9ybWFsLCByZWZyYWN0aW9uUmF0aW8gKTtcblx0XHQjZW5kaWZcblx0I2VuZGlmXG4jZW5kaWYiLGZvZ192ZXJ0ZXg6IiNpZmRlZiBVU0VfRk9HXG5cdGZvZ0RlcHRoID0gLSBtdlBvc2l0aW9uLno7XG4jZW5kaWYiLGZvZ19wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9GT0dcblx0dmFyeWluZyBmbG9hdCBmb2dEZXB0aDtcbiNlbmRpZiIsZm9nX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0ZPR1xuXHQjaWZkZWYgRk9HX0VYUDJcblx0XHRmbG9hdCBmb2dGYWN0b3IgPSAxLjAgLSBleHAoIC0gZm9nRGVuc2l0eSAqIGZvZ0RlbnNpdHkgKiBmb2dEZXB0aCAqIGZvZ0RlcHRoICk7XG5cdCNlbHNlXG5cdFx0ZmxvYXQgZm9nRmFjdG9yID0gc21vb3Roc3RlcCggZm9nTmVhciwgZm9nRmFyLCBmb2dEZXB0aCApO1xuXHQjZW5kaWZcblx0Z2xfRnJhZ0NvbG9yLnJnYiA9IG1peCggZ2xfRnJhZ0NvbG9yLnJnYiwgZm9nQ29sb3IsIGZvZ0ZhY3RvciApO1xuI2VuZGlmIixmb2dfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9GT0dcblx0dW5pZm9ybSB2ZWMzIGZvZ0NvbG9yO1xuXHR2YXJ5aW5nIGZsb2F0IGZvZ0RlcHRoO1xuXHQjaWZkZWYgRk9HX0VYUDJcblx0XHR1bmlmb3JtIGZsb2F0IGZvZ0RlbnNpdHk7XG5cdCNlbHNlXG5cdFx0dW5pZm9ybSBmbG9hdCBmb2dOZWFyO1xuXHRcdHVuaWZvcm0gZmxvYXQgZm9nRmFyO1xuXHQjZW5kaWZcbiNlbmRpZiIsZ3JhZGllbnRtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9HUkFESUVOVE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBncmFkaWVudE1hcDtcbiNlbmRpZlxudmVjMyBnZXRHcmFkaWVudElycmFkaWFuY2UoIHZlYzMgbm9ybWFsLCB2ZWMzIGxpZ2h0RGlyZWN0aW9uICkge1xuXHRmbG9hdCBkb3ROTCA9IGRvdCggbm9ybWFsLCBsaWdodERpcmVjdGlvbiApO1xuXHR2ZWMyIGNvb3JkID0gdmVjMiggZG90TkwgKiAwLjUgKyAwLjUsIDAuMCApO1xuXHQjaWZkZWYgVVNFX0dSQURJRU5UTUFQXG5cdFx0cmV0dXJuIHRleHR1cmUyRCggZ3JhZGllbnRNYXAsIGNvb3JkICkucmdiO1xuXHQjZWxzZVxuXHRcdHJldHVybiAoIGNvb3JkLnggPCAwLjcgKSA/IHZlYzMoIDAuNyApIDogdmVjMyggMS4wICk7XG5cdCNlbmRpZlxufSIsbGlnaHRtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTElHSFRNQVBcblx0dmVjNCBsaWdodE1hcFRleGVsPSB0ZXh0dXJlMkQoIGxpZ2h0TWFwLCB2VXYyICk7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBQSSAqIGxpZ2h0TWFwVGV4ZWxUb0xpbmVhciggbGlnaHRNYXBUZXhlbCApLnJnYiAqIGxpZ2h0TWFwSW50ZW5zaXR5O1xuI2VuZGlmIixsaWdodG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0xJR0hUTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGxpZ2h0TWFwO1xuXHR1bmlmb3JtIGZsb2F0IGxpZ2h0TWFwSW50ZW5zaXR5O1xuI2VuZGlmIixsaWdodHNfbGFtYmVydF92ZXJ0ZXg6InZlYzMgZGlmZnVzZSA9IHZlYzMoIDEuMCApO1xuR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeTtcbmdlb21ldHJ5LnBvc2l0aW9uID0gbXZQb3NpdGlvbi54eXo7XG5nZW9tZXRyeS5ub3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG5nZW9tZXRyeS52aWV3RGlyID0gKCBpc09ydGhvZ3JhcGhpYyApID8gdmVjMyggMCwgMCwgMSApIDogbm9ybWFsaXplKCAtbXZQb3NpdGlvbi54eXogKTtcbkdlb21ldHJpY0NvbnRleHQgYmFja0dlb21ldHJ5O1xuYmFja0dlb21ldHJ5LnBvc2l0aW9uID0gZ2VvbWV0cnkucG9zaXRpb247XG5iYWNrR2VvbWV0cnkubm9ybWFsID0gLWdlb21ldHJ5Lm5vcm1hbDtcbmJhY2tHZW9tZXRyeS52aWV3RGlyID0gZ2VvbWV0cnkudmlld0RpcjtcbnZMaWdodEZyb250ID0gdmVjMyggMC4wICk7XG52SW5kaXJlY3RGcm9udCA9IHZlYzMoIDAuMCApO1xuI2lmZGVmIERPVUJMRV9TSURFRFxuXHR2TGlnaHRCYWNrID0gdmVjMyggMC4wICk7XG5cdHZJbmRpcmVjdEJhY2sgPSB2ZWMzKCAwLjAgKTtcbiNlbmRpZlxuSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodDtcbmZsb2F0IGRvdE5MO1xudmVjMyBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG52SW5kaXJlY3RGcm9udCArPSBnZXRBbWJpZW50TGlnaHRJcnJhZGlhbmNlKCBhbWJpZW50TGlnaHRDb2xvciApO1xudkluZGlyZWN0RnJvbnQgKz0gZ2V0TGlnaHRQcm9iZUlycmFkaWFuY2UoIGxpZ2h0UHJvYmUsIGdlb21ldHJ5ICk7XG4jaWZkZWYgRE9VQkxFX1NJREVEXG5cdHZJbmRpcmVjdEJhY2sgKz0gZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggYW1iaWVudExpZ2h0Q29sb3IgKTtcblx0dkluZGlyZWN0QmFjayArPSBnZXRMaWdodFByb2JlSXJyYWRpYW5jZSggbGlnaHRQcm9iZSwgYmFja0dlb21ldHJ5ICk7XG4jZW5kaWZcbiNpZiBOVU1fUE9JTlRfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0Z2V0UG9pbnREaXJlY3RMaWdodElycmFkaWFuY2UoIHBvaW50TGlnaHRzWyBpIF0sIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdGRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZSA9IFBJICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdFx0dkxpZ2h0RnJvbnQgKz0gc2F0dXJhdGUoIGRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdFx0dkxpZ2h0QmFjayArPSBzYXR1cmF0ZSggLWRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2VuZGlmXG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmIE5VTV9TUE9UX0xJR0hUUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0Z2V0U3BvdERpcmVjdExpZ2h0SXJyYWRpYW5jZSggc3BvdExpZ2h0c1sgaSBdLCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHRkb3ROTCA9IGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKTtcblx0XHRkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2UgPSBQSSAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHRcdHZMaWdodEZyb250ICs9IHNhdHVyYXRlKCBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHZMaWdodEJhY2sgKz0gc2F0dXJhdGUoIC1kb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNlbmRpZlxuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiBOVU1fRElSX0xJR0hUUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUUzsgaSArKyApIHtcblx0XHRnZXREaXJlY3Rpb25hbERpcmVjdExpZ2h0SXJyYWRpYW5jZSggZGlyZWN0aW9uYWxMaWdodHNbIGkgXSwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0ZG90TkwgPSBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICk7XG5cdFx0ZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlID0gUEkgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0XHR2TGlnaHRGcm9udCArPSBzYXR1cmF0ZSggZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0XHR2TGlnaHRCYWNrICs9IHNhdHVyYXRlKCAtZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjZW5kaWZcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgTlVNX0hFTUlfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9IRU1JX0xJR0hUUzsgaSArKyApIHtcblx0XHR2SW5kaXJlY3RGcm9udCArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGdlb21ldHJ5ICk7XG5cdFx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdFx0dkluZGlyZWN0QmFjayArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGJhY2tHZW9tZXRyeSApO1xuXHRcdCNlbmRpZlxuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWYiLGxpZ2h0c19wYXJzX2JlZ2luOiJ1bmlmb3JtIGJvb2wgcmVjZWl2ZVNoYWRvdztcbnVuaWZvcm0gdmVjMyBhbWJpZW50TGlnaHRDb2xvcjtcbnVuaWZvcm0gdmVjMyBsaWdodFByb2JlWyA5IF07XG52ZWMzIHNoR2V0SXJyYWRpYW5jZUF0KCBpbiB2ZWMzIG5vcm1hbCwgaW4gdmVjMyBzaENvZWZmaWNpZW50c1sgOSBdICkge1xuXHRmbG9hdCB4ID0gbm9ybWFsLngsIHkgPSBub3JtYWwueSwgeiA9IG5vcm1hbC56O1xuXHR2ZWMzIHJlc3VsdCA9IHNoQ29lZmZpY2llbnRzWyAwIF0gKiAwLjg4NjIyNztcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyAxIF0gKiAyLjAgKiAwLjUxMTY2NCAqIHk7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgMiBdICogMi4wICogMC41MTE2NjQgKiB6O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDMgXSAqIDIuMCAqIDAuNTExNjY0ICogeDtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA0IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHggKiB5O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDUgXSAqIDIuMCAqIDAuNDI5MDQzICogeSAqIHo7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgNiBdICogKCAwLjc0MzEyNSAqIHogKiB6IC0gMC4yNDc3MDggKTtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA3IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHggKiB6O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDggXSAqIDAuNDI5MDQzICogKCB4ICogeCAtIHkgKiB5ICk7XG5cdHJldHVybiByZXN1bHQ7XG59XG52ZWMzIGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIGxpZ2h0UHJvYmVbIDkgXSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSApIHtcblx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIGdlb21ldHJ5Lm5vcm1hbCwgdmlld01hdHJpeCApO1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBzaEdldElycmFkaWFuY2VBdCggd29ybGROb3JtYWwsIGxpZ2h0UHJvYmUgKTtcblx0cmV0dXJuIGlycmFkaWFuY2U7XG59XG52ZWMzIGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIHZlYzMgYW1iaWVudExpZ2h0Q29sb3IgKSB7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGFtYmllbnRMaWdodENvbG9yO1xuXHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRpcnJhZGlhbmNlICo9IFBJO1xuXHQjZW5kaWZcblx0cmV0dXJuIGlycmFkaWFuY2U7XG59XG4jaWYgTlVNX0RJUl9MSUdIVFMgPiAwXG5cdHN0cnVjdCBEaXJlY3Rpb25hbExpZ2h0IHtcblx0XHR2ZWMzIGRpcmVjdGlvbjtcblx0XHR2ZWMzIGNvbG9yO1xuXHR9O1xuXHR1bmlmb3JtIERpcmVjdGlvbmFsTGlnaHQgZGlyZWN0aW9uYWxMaWdodHNbIE5VTV9ESVJfTElHSFRTIF07XG5cdHZvaWQgZ2V0RGlyZWN0aW9uYWxEaXJlY3RMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIERpcmVjdGlvbmFsTGlnaHQgZGlyZWN0aW9uYWxMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgb3V0IEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQgKSB7XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgPSBkaXJlY3Rpb25hbExpZ2h0LmNvbG9yO1xuXHRcdGRpcmVjdExpZ2h0LmRpcmVjdGlvbiA9IGRpcmVjdGlvbmFsTGlnaHQuZGlyZWN0aW9uO1xuXHRcdGRpcmVjdExpZ2h0LnZpc2libGUgPSB0cnVlO1xuXHR9XG4jZW5kaWZcbiNpZiBOVU1fUE9JTlRfTElHSFRTID4gMFxuXHRzdHJ1Y3QgUG9pbnRMaWdodCB7XG5cdFx0dmVjMyBwb3NpdGlvbjtcblx0XHR2ZWMzIGNvbG9yO1xuXHRcdGZsb2F0IGRpc3RhbmNlO1xuXHRcdGZsb2F0IGRlY2F5O1xuXHR9O1xuXHR1bmlmb3JtIFBvaW50TGlnaHQgcG9pbnRMaWdodHNbIE5VTV9QT0lOVF9MSUdIVFMgXTtcblx0dm9pZCBnZXRQb2ludERpcmVjdExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gUG9pbnRMaWdodCBwb2ludExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBvdXQgSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCApIHtcblx0XHR2ZWMzIGxWZWN0b3IgPSBwb2ludExpZ2h0LnBvc2l0aW9uIC0gZ2VvbWV0cnkucG9zaXRpb247XG5cdFx0ZGlyZWN0TGlnaHQuZGlyZWN0aW9uID0gbm9ybWFsaXplKCBsVmVjdG9yICk7XG5cdFx0ZmxvYXQgbGlnaHREaXN0YW5jZSA9IGxlbmd0aCggbFZlY3RvciApO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yID0gcG9pbnRMaWdodC5jb2xvcjtcblx0XHRkaXJlY3RMaWdodC5jb2xvciAqPSBwdW5jdHVhbExpZ2h0SW50ZW5zaXR5VG9JcnJhZGlhbmNlRmFjdG9yKCBsaWdodERpc3RhbmNlLCBwb2ludExpZ2h0LmRpc3RhbmNlLCBwb2ludExpZ2h0LmRlY2F5ICk7XG5cdFx0ZGlyZWN0TGlnaHQudmlzaWJsZSA9ICggZGlyZWN0TGlnaHQuY29sb3IgIT0gdmVjMyggMC4wICkgKTtcblx0fVxuI2VuZGlmXG4jaWYgTlVNX1NQT1RfTElHSFRTID4gMFxuXHRzdHJ1Y3QgU3BvdExpZ2h0IHtcblx0XHR2ZWMzIHBvc2l0aW9uO1xuXHRcdHZlYzMgZGlyZWN0aW9uO1xuXHRcdHZlYzMgY29sb3I7XG5cdFx0ZmxvYXQgZGlzdGFuY2U7XG5cdFx0ZmxvYXQgZGVjYXk7XG5cdFx0ZmxvYXQgY29uZUNvcztcblx0XHRmbG9hdCBwZW51bWJyYUNvcztcblx0fTtcblx0dW5pZm9ybSBTcG90TGlnaHQgc3BvdExpZ2h0c1sgTlVNX1NQT1RfTElHSFRTIF07XG5cdHZvaWQgZ2V0U3BvdERpcmVjdExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gU3BvdExpZ2h0IHNwb3RMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgb3V0IEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQgKSB7XG5cdFx0dmVjMyBsVmVjdG9yID0gc3BvdExpZ2h0LnBvc2l0aW9uIC0gZ2VvbWV0cnkucG9zaXRpb247XG5cdFx0ZGlyZWN0TGlnaHQuZGlyZWN0aW9uID0gbm9ybWFsaXplKCBsVmVjdG9yICk7XG5cdFx0ZmxvYXQgbGlnaHREaXN0YW5jZSA9IGxlbmd0aCggbFZlY3RvciApO1xuXHRcdGZsb2F0IGFuZ2xlQ29zID0gZG90KCBkaXJlY3RMaWdodC5kaXJlY3Rpb24sIHNwb3RMaWdodC5kaXJlY3Rpb24gKTtcblx0XHRpZiAoIGFuZ2xlQ29zID4gc3BvdExpZ2h0LmNvbmVDb3MgKSB7XG5cdFx0XHRmbG9hdCBzcG90RWZmZWN0ID0gc21vb3Roc3RlcCggc3BvdExpZ2h0LmNvbmVDb3MsIHNwb3RMaWdodC5wZW51bWJyYUNvcywgYW5nbGVDb3MgKTtcblx0XHRcdGRpcmVjdExpZ2h0LmNvbG9yID0gc3BvdExpZ2h0LmNvbG9yO1xuXHRcdFx0ZGlyZWN0TGlnaHQuY29sb3IgKj0gc3BvdEVmZmVjdCAqIHB1bmN0dWFsTGlnaHRJbnRlbnNpdHlUb0lycmFkaWFuY2VGYWN0b3IoIGxpZ2h0RGlzdGFuY2UsIHNwb3RMaWdodC5kaXN0YW5jZSwgc3BvdExpZ2h0LmRlY2F5ICk7XG5cdFx0XHRkaXJlY3RMaWdodC52aXNpYmxlID0gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGlyZWN0TGlnaHQuY29sb3IgPSB2ZWMzKCAwLjAgKTtcblx0XHRcdGRpcmVjdExpZ2h0LnZpc2libGUgPSBmYWxzZTtcblx0XHR9XG5cdH1cbiNlbmRpZlxuI2lmIE5VTV9SRUNUX0FSRUFfTElHSFRTID4gMFxuXHRzdHJ1Y3QgUmVjdEFyZWFMaWdodCB7XG5cdFx0dmVjMyBjb2xvcjtcblx0XHR2ZWMzIHBvc2l0aW9uO1xuXHRcdHZlYzMgaGFsZldpZHRoO1xuXHRcdHZlYzMgaGFsZkhlaWdodDtcblx0fTtcblx0dW5pZm9ybSBzYW1wbGVyMkQgbHRjXzE7XHR1bmlmb3JtIHNhbXBsZXIyRCBsdGNfMjtcblx0dW5pZm9ybSBSZWN0QXJlYUxpZ2h0IHJlY3RBcmVhTGlnaHRzWyBOVU1fUkVDVF9BUkVBX0xJR0hUUyBdO1xuI2VuZGlmXG4jaWYgTlVNX0hFTUlfTElHSFRTID4gMFxuXHRzdHJ1Y3QgSGVtaXNwaGVyZUxpZ2h0IHtcblx0XHR2ZWMzIGRpcmVjdGlvbjtcblx0XHR2ZWMzIHNreUNvbG9yO1xuXHRcdHZlYzMgZ3JvdW5kQ29sb3I7XG5cdH07XG5cdHVuaWZvcm0gSGVtaXNwaGVyZUxpZ2h0IGhlbWlzcGhlcmVMaWdodHNbIE5VTV9IRU1JX0xJR0hUUyBdO1xuXHR2ZWMzIGdldEhlbWlzcGhlcmVMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIEhlbWlzcGhlcmVMaWdodCBoZW1pTGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnkgKSB7XG5cdFx0ZmxvYXQgZG90TkwgPSBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgaGVtaUxpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGZsb2F0IGhlbWlEaWZmdXNlV2VpZ2h0ID0gMC41ICogZG90TkwgKyAwLjU7XG5cdFx0dmVjMyBpcnJhZGlhbmNlID0gbWl4KCBoZW1pTGlnaHQuZ3JvdW5kQ29sb3IsIGhlbWlMaWdodC5za3lDb2xvciwgaGVtaURpZmZ1c2VXZWlnaHQgKTtcblx0XHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRcdGlycmFkaWFuY2UgKj0gUEk7XG5cdFx0I2VuZGlmXG5cdFx0cmV0dXJuIGlycmFkaWFuY2U7XG5cdH1cbiNlbmRpZiIsbGlnaHRzX3Rvb25fZnJhZ21lbnQ6IlRvb25NYXRlcmlhbCBtYXRlcmlhbDtcbm1hdGVyaWFsLmRpZmZ1c2VDb2xvciA9IGRpZmZ1c2VDb2xvci5yZ2I7IixsaWdodHNfdG9vbl9wYXJzX2ZyYWdtZW50OiJ2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbnN0cnVjdCBUb29uTWF0ZXJpYWwge1xuXHR2ZWMzIGRpZmZ1c2VDb2xvcjtcbn07XG52b2lkIFJFX0RpcmVjdF9Ub29uKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBUb29uTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBnZXRHcmFkaWVudElycmFkaWFuY2UoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0aXJyYWRpYW5jZSAqPSBQSTtcblx0I2VuZGlmXG5cdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcbn1cbnZvaWQgUkVfSW5kaXJlY3REaWZmdXNlX1Rvb24oIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gVG9vbk1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X1Rvb25cbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9Ub29uXG4jZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsIClcdCgwKSIsbGlnaHRzX3Bob25nX2ZyYWdtZW50OiJCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWw7XG5tYXRlcmlhbC5kaWZmdXNlQ29sb3IgPSBkaWZmdXNlQ29sb3IucmdiO1xubWF0ZXJpYWwuc3BlY3VsYXJDb2xvciA9IHNwZWN1bGFyO1xubWF0ZXJpYWwuc3BlY3VsYXJTaGluaW5lc3MgPSBzaGluaW5lc3M7XG5tYXRlcmlhbC5zcGVjdWxhclN0cmVuZ3RoID0gc3BlY3VsYXJTdHJlbmd0aDsiLGxpZ2h0c19waG9uZ19wYXJzX2ZyYWdtZW50OiJ2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbnN0cnVjdCBCbGlublBob25nTWF0ZXJpYWwge1xuXHR2ZWMzIGRpZmZ1c2VDb2xvcjtcblx0dmVjMyBzcGVjdWxhckNvbG9yO1xuXHRmbG9hdCBzcGVjdWxhclNoaW5pbmVzcztcblx0ZmxvYXQgc3BlY3VsYXJTdHJlbmd0aDtcbn07XG52b2lkIFJFX0RpcmVjdF9CbGlublBob25nKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRmbG9hdCBkb3ROTCA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKTtcblx0dmVjMyBpcnJhZGlhbmNlID0gZG90TkwgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0aXJyYWRpYW5jZSAqPSBQSTtcblx0I2VuZGlmXG5cdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gaXJyYWRpYW5jZSAqIEJSREZfU3BlY3VsYXJfQmxpbm5QaG9uZyggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhclNoaW5pbmVzcyApICogbWF0ZXJpYWwuc3BlY3VsYXJTdHJlbmd0aDtcbn1cbnZvaWQgUkVfSW5kaXJlY3REaWZmdXNlX0JsaW5uUGhvbmcoIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gQmxpbm5QaG9uZ01hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X0JsaW5uUGhvbmdcbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9CbGlublBob25nXG4jZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsIClcdCgwKSIsbGlnaHRzX3BoeXNpY2FsX2ZyYWdtZW50OiJQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsO1xubWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYiAqICggMS4wIC0gbWV0YWxuZXNzRmFjdG9yICk7XG52ZWMzIGR4eSA9IG1heCggYWJzKCBkRmR4KCBnZW9tZXRyeU5vcm1hbCApICksIGFicyggZEZkeSggZ2VvbWV0cnlOb3JtYWwgKSApICk7XG5mbG9hdCBnZW9tZXRyeVJvdWdobmVzcyA9IG1heCggbWF4KCBkeHkueCwgZHh5LnkgKSwgZHh5LnogKTtcbm1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzID0gbWF4KCByb3VnaG5lc3NGYWN0b3IsIDAuMDUyNSApO21hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzICs9IGdlb21ldHJ5Um91Z2huZXNzO1xubWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MgPSBtaW4oIG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzLCAxLjAgKTtcbiNpZmRlZiBSRUZMRUNUSVZJVFlcblx0I2lmZGVmIFNQRUNVTEFSXG5cdFx0dmVjMyBzcGVjdWxhckludGVuc2l0eUZhY3RvciA9IHZlYzMoIHNwZWN1bGFySW50ZW5zaXR5ICk7XG5cdFx0dmVjMyBzcGVjdWxhclRpbnRGYWN0b3IgPSBzcGVjdWxhclRpbnQ7XG5cdFx0I2lmZGVmIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUFxuXHRcdFx0c3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgKj0gdGV4dHVyZTJEKCBzcGVjdWxhckludGVuc2l0eU1hcCwgdlV2ICkuYTtcblx0XHQjZW5kaWZcblx0XHQjaWZkZWYgVVNFX1NQRUNVTEFSVElOVE1BUFxuXHRcdFx0c3BlY3VsYXJUaW50RmFjdG9yICo9IHNwZWN1bGFyVGludE1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCggc3BlY3VsYXJUaW50TWFwLCB2VXYgKSApLnJnYjtcblx0XHQjZW5kaWZcblx0XHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yRjkwID0gbWl4KCBzcGVjdWxhckludGVuc2l0eUZhY3RvciwgdmVjMyggMS4wICksIG1ldGFsbmVzc0ZhY3RvciApO1xuXHQjZWxzZVxuXHRcdHZlYzMgc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgPSB2ZWMzKCAxLjAgKTtcblx0XHR2ZWMzIHNwZWN1bGFyVGludEZhY3RvciA9IHZlYzMoIDEuMCApO1xuXHRcdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3JGOTAgPSB2ZWMzKCAxLjAgKTtcblx0I2VuZGlmXG5cdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgPSBtaXgoIG1pbiggdmVjMyggTUFYSU1VTV9TUEVDVUxBUl9DT0VGRklDSUVOVCAqIHBvdzIoIHJlZmxlY3Rpdml0eSApICkgKiBzcGVjdWxhclRpbnRGYWN0b3IsIHZlYzMoIDEuMCApICkgKiBzcGVjdWxhckludGVuc2l0eUZhY3RvciwgZGlmZnVzZUNvbG9yLnJnYiwgbWV0YWxuZXNzRmFjdG9yICk7XG4jZWxzZVxuXHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yID0gbWl4KCB2ZWMzKCBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UICksIGRpZmZ1c2VDb2xvci5yZ2IsIG1ldGFsbmVzc0ZhY3RvciApO1xuXHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yRjkwID0gdmVjMyggMS4wICk7XG4jZW5kaWZcbiNpZmRlZiBDTEVBUkNPQVRcblx0bWF0ZXJpYWwuY2xlYXJjb2F0ID0gY2xlYXJjb2F0O1xuXHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgPSBjbGVhcmNvYXRSb3VnaG5lc3M7XG5cdCNpZmRlZiBVU0VfQ0xFQVJDT0FUTUFQXG5cdFx0bWF0ZXJpYWwuY2xlYXJjb2F0ICo9IHRleHR1cmUyRCggY2xlYXJjb2F0TWFwLCB2VXYgKS54O1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9DTEVBUkNPQVRfUk9VR0hORVNTTUFQXG5cdFx0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzICo9IHRleHR1cmUyRCggY2xlYXJjb2F0Um91Z2huZXNzTWFwLCB2VXYgKS55O1xuXHQjZW5kaWZcblx0bWF0ZXJpYWwuY2xlYXJjb2F0ID0gc2F0dXJhdGUoIG1hdGVyaWFsLmNsZWFyY29hdCApO1x0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzID0gbWF4KCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIDAuMDUyNSApO1xuXHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKz0gZ2VvbWV0cnlSb3VnaG5lc3M7XG5cdG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyA9IG1pbiggbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzLCAxLjAgKTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9TSEVFTlxuXHRtYXRlcmlhbC5zaGVlbkNvbG9yID0gc2hlZW47XG4jZW5kaWYiLGxpZ2h0c19waHlzaWNhbF9wYXJzX2ZyYWdtZW50OiJzdHJ1Y3QgUGh5c2ljYWxNYXRlcmlhbCB7XG5cdHZlYzMgZGlmZnVzZUNvbG9yO1xuXHRmbG9hdCBzcGVjdWxhclJvdWdobmVzcztcblx0dmVjMyBzcGVjdWxhckNvbG9yO1xuXHR2ZWMzIHNwZWN1bGFyQ29sb3JGOTA7XG4jaWZkZWYgQ0xFQVJDT0FUXG5cdGZsb2F0IGNsZWFyY29hdDtcblx0ZmxvYXQgY2xlYXJjb2F0Um91Z2huZXNzO1xuI2VuZGlmXG4jaWZkZWYgVVNFX1NIRUVOXG5cdHZlYzMgc2hlZW5Db2xvcjtcbiNlbmRpZlxufTtcbiNkZWZpbmUgTUFYSU1VTV9TUEVDVUxBUl9DT0VGRklDSUVOVCAwLjE2XG4jZGVmaW5lIERFRkFVTFRfU1BFQ1VMQVJfQ09FRkZJQ0lFTlQgMC4wNFxuZmxvYXQgY2xlYXJjb2F0REhSQXBwcm94KCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIGZsb2F0IGRvdE5MICkge1xuXHRyZXR1cm4gREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCArICggMS4wIC0gREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCApICogKCBwb3coIDEuMCAtIGRvdE5MLCA1LjAgKSAqIHBvdyggMS4wIC0gcm91Z2huZXNzLCAyLjAgKSApO1xufVxuI2lmIE5VTV9SRUNUX0FSRUFfTElHSFRTID4gMFxuXHR2b2lkIFJFX0RpcmVjdF9SZWN0QXJlYV9QaHlzaWNhbCggY29uc3QgaW4gUmVjdEFyZWFMaWdodCByZWN0QXJlYUxpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0XHR2ZWMzIG5vcm1hbCA9IGdlb21ldHJ5Lm5vcm1hbDtcblx0XHR2ZWMzIHZpZXdEaXIgPSBnZW9tZXRyeS52aWV3RGlyO1xuXHRcdHZlYzMgcG9zaXRpb24gPSBnZW9tZXRyeS5wb3NpdGlvbjtcblx0XHR2ZWMzIGxpZ2h0UG9zID0gcmVjdEFyZWFMaWdodC5wb3NpdGlvbjtcblx0XHR2ZWMzIGhhbGZXaWR0aCA9IHJlY3RBcmVhTGlnaHQuaGFsZldpZHRoO1xuXHRcdHZlYzMgaGFsZkhlaWdodCA9IHJlY3RBcmVhTGlnaHQuaGFsZkhlaWdodDtcblx0XHR2ZWMzIGxpZ2h0Q29sb3IgPSByZWN0QXJlYUxpZ2h0LmNvbG9yO1xuXHRcdGZsb2F0IHJvdWdobmVzcyA9IG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzO1xuXHRcdHZlYzMgcmVjdENvb3Jkc1sgNCBdO1xuXHRcdHJlY3RDb29yZHNbIDAgXSA9IGxpZ2h0UG9zICsgaGFsZldpZHRoIC0gaGFsZkhlaWdodDtcdFx0cmVjdENvb3Jkc1sgMSBdID0gbGlnaHRQb3MgLSBoYWxmV2lkdGggLSBoYWxmSGVpZ2h0O1xuXHRcdHJlY3RDb29yZHNbIDIgXSA9IGxpZ2h0UG9zIC0gaGFsZldpZHRoICsgaGFsZkhlaWdodDtcblx0XHRyZWN0Q29vcmRzWyAzIF0gPSBsaWdodFBvcyArIGhhbGZXaWR0aCArIGhhbGZIZWlnaHQ7XG5cdFx0dmVjMiB1diA9IExUQ19Vdiggbm9ybWFsLCB2aWV3RGlyLCByb3VnaG5lc3MgKTtcblx0XHR2ZWM0IHQxID0gdGV4dHVyZTJEKCBsdGNfMSwgdXYgKTtcblx0XHR2ZWM0IHQyID0gdGV4dHVyZTJEKCBsdGNfMiwgdXYgKTtcblx0XHRtYXQzIG1JbnYgPSBtYXQzKFxuXHRcdFx0dmVjMyggdDEueCwgMCwgdDEueSApLFxuXHRcdFx0dmVjMyggICAgMCwgMSwgICAgMCApLFxuXHRcdFx0dmVjMyggdDEueiwgMCwgdDEudyApXG5cdFx0KTtcblx0XHR2ZWMzIGZyZXNuZWwgPSAoIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgKiB0Mi54ICsgKCB2ZWMzKCAxLjAgKSAtIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgKSAqIHQyLnkgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBsaWdodENvbG9yICogZnJlc25lbCAqIExUQ19FdmFsdWF0ZSggbm9ybWFsLCB2aWV3RGlyLCBwb3NpdGlvbiwgbUludiwgcmVjdENvb3JkcyApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gbGlnaHRDb2xvciAqIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciAqIExUQ19FdmFsdWF0ZSggbm9ybWFsLCB2aWV3RGlyLCBwb3NpdGlvbiwgbWF0MyggMS4wICksIHJlY3RDb29yZHMgKTtcblx0fVxuI2VuZGlmXG52b2lkIFJFX0RpcmVjdF9QaHlzaWNhbCggY29uc3QgaW4gSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdGZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSApO1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBkb3ROTCAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRpcnJhZGlhbmNlICo9IFBJO1xuXHQjZW5kaWZcblx0I2lmZGVmIENMRUFSQ09BVFxuXHRcdGZsb2F0IGNjRG90TkwgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApICk7XG5cdFx0dmVjMyBjY0lycmFkaWFuY2UgPSBjY0RvdE5MICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdFx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0XHRjY0lycmFkaWFuY2UgKj0gUEk7XG5cdFx0I2VuZGlmXG5cdFx0ZmxvYXQgY2xlYXJjb2F0REhSID0gbWF0ZXJpYWwuY2xlYXJjb2F0ICogY2xlYXJjb2F0REhSQXBwcm94KCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIGNjRG90TkwgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBjY0lycmFkaWFuY2UgKiBtYXRlcmlhbC5jbGVhcmNvYXQgKiBCUkRGX1NwZWN1bGFyX0dHWCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgdmVjMyggREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCApLCB2ZWMzKCAxLjAgKSwgbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzICk7XG5cdCNlbHNlXG5cdFx0ZmxvYXQgY2xlYXJjb2F0REhSID0gMC4wO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9TSEVFTlxuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9ICggMS4wIC0gY2xlYXJjb2F0REhSICkgKiBpcnJhZGlhbmNlICogQlJERl9TcGVjdWxhcl9TaGVlbihcblx0XHRcdG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzLFxuXHRcdFx0ZGlyZWN0TGlnaHQuZGlyZWN0aW9uLFxuXHRcdFx0Z2VvbWV0cnksXG5cdFx0XHRtYXRlcmlhbC5zaGVlbkNvbG9yXG5cdFx0KTtcblx0I2Vsc2Vcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSAoIDEuMCAtIGNsZWFyY29hdERIUiApICogaXJyYWRpYW5jZSAqIEJSREZfU3BlY3VsYXJfR0dYKCBkaXJlY3RMaWdodCwgZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkubm9ybWFsLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yRjkwLCBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcyk7XG5cdCNlbmRpZlxuXHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICs9ICggMS4wIC0gY2xlYXJjb2F0REhSICkgKiBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxudm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfUGh5c2ljYWwoIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxudm9pZCBSRV9JbmRpcmVjdFNwZWN1bGFyX1BoeXNpY2FsKCBjb25zdCBpbiB2ZWMzIHJhZGlhbmNlLCBjb25zdCBpbiB2ZWMzIGlycmFkaWFuY2UsIGNvbnN0IGluIHZlYzMgY2xlYXJjb2F0UmFkaWFuY2UsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0KSB7XG5cdCNpZmRlZiBDTEVBUkNPQVRcblx0XHRmbG9hdCBjY0RvdE5WID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyICkgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICs9IGNsZWFyY29hdFJhZGlhbmNlICogbWF0ZXJpYWwuY2xlYXJjb2F0ICogQlJERl9TcGVjdWxhcl9HR1hfRW52aXJvbm1lbnQoIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgdmVjMyggREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCApLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKTtcblx0XHRmbG9hdCBjY0RvdE5MID0gY2NEb3ROVjtcblx0XHRmbG9hdCBjbGVhcmNvYXRESFIgPSBtYXRlcmlhbC5jbGVhcmNvYXQgKiBjbGVhcmNvYXRESFJBcHByb3goIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgY2NEb3ROTCApO1xuXHQjZWxzZVxuXHRcdGZsb2F0IGNsZWFyY29hdERIUiA9IDAuMDtcblx0I2VuZGlmXG5cdGZsb2F0IGNsZWFyY29hdEludiA9IDEuMCAtIGNsZWFyY29hdERIUjtcblx0dmVjMyBzaW5nbGVTY2F0dGVyaW5nID0gdmVjMyggMC4wICk7XG5cdHZlYzMgbXVsdGlTY2F0dGVyaW5nID0gdmVjMyggMC4wICk7XG5cdHZlYzMgY29zaW5lV2VpZ2h0ZWRJcnJhZGlhbmNlID0gaXJyYWRpYW5jZSAqIFJFQ0lQUk9DQUxfUEk7XG5cdEJSREZfU3BlY3VsYXJfTXVsdGlzY2F0dGVyaW5nX0Vudmlyb25tZW50KCBnZW9tZXRyeSwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MsIHNpbmdsZVNjYXR0ZXJpbmcsIG11bHRpU2NhdHRlcmluZyApO1xuXHR2ZWMzIGRpZmZ1c2UgPSBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKiAoIDEuMCAtICggc2luZ2xlU2NhdHRlcmluZyArIG11bHRpU2NhdHRlcmluZyApICk7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKz0gY2xlYXJjb2F0SW52ICogcmFkaWFuY2UgKiBzaW5nbGVTY2F0dGVyaW5nO1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICs9IG11bHRpU2NhdHRlcmluZyAqIGNvc2luZVdlaWdodGVkSXJyYWRpYW5jZTtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGRpZmZ1c2UgKiBjb3NpbmVXZWlnaHRlZElycmFkaWFuY2U7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X1BoeXNpY2FsXG4jZGVmaW5lIFJFX0RpcmVjdF9SZWN0QXJlYVx0XHRSRV9EaXJlY3RfUmVjdEFyZWFfUGh5c2ljYWxcbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9QaHlzaWNhbFxuI2RlZmluZSBSRV9JbmRpcmVjdFNwZWN1bGFyXHRcdFJFX0luZGlyZWN0U3BlY3VsYXJfUGh5c2ljYWxcbmZsb2F0IGNvbXB1dGVTcGVjdWxhck9jY2x1c2lvbiggY29uc3QgaW4gZmxvYXQgZG90TlYsIGNvbnN0IGluIGZsb2F0IGFtYmllbnRPY2NsdXNpb24sIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0cmV0dXJuIHNhdHVyYXRlKCBwb3coIGRvdE5WICsgYW1iaWVudE9jY2x1c2lvbiwgZXhwMiggLSAxNi4wICogcm91Z2huZXNzIC0gMS4wICkgKSAtIDEuMCArIGFtYmllbnRPY2NsdXNpb24gKTtcbn0iLGxpZ2h0c19mcmFnbWVudF9iZWdpbjoiXG5HZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5O1xuZ2VvbWV0cnkucG9zaXRpb24gPSAtIHZWaWV3UG9zaXRpb247XG5nZW9tZXRyeS5ub3JtYWwgPSBub3JtYWw7XG5nZW9tZXRyeS52aWV3RGlyID0gKCBpc09ydGhvZ3JhcGhpYyApID8gdmVjMyggMCwgMCwgMSApIDogbm9ybWFsaXplKCB2Vmlld1Bvc2l0aW9uICk7XG4jaWZkZWYgQ0xFQVJDT0FUXG5cdGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCA9IGNsZWFyY29hdE5vcm1hbDtcbiNlbmRpZlxuSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodDtcbiNpZiAoIE5VTV9QT0lOVF9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0IClcblx0UG9pbnRMaWdodCBwb2ludExpZ2h0O1xuXHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHRTaGFkb3c7XG5cdCNlbmRpZlxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0cG9pbnRMaWdodCA9IHBvaW50TGlnaHRzWyBpIF07XG5cdFx0Z2V0UG9pbnREaXJlY3RMaWdodElycmFkaWFuY2UoIHBvaW50TGlnaHQsIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgKCBVTlJPTExFRF9MT09QX0lOREVYIDwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgKVxuXHRcdHBvaW50TGlnaHRTaGFkb3cgPSBwb2ludExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yICo9IGFsbCggYnZlYzIoIGRpcmVjdExpZ2h0LnZpc2libGUsIHJlY2VpdmVTaGFkb3cgKSApID8gZ2V0UG9pbnRTaGFkb3coIHBvaW50U2hhZG93TWFwWyBpIF0sIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93TWFwU2l6ZSwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd1JhZGl1cywgdlBvaW50U2hhZG93Q29vcmRbIGkgXSwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dDYW1lcmFOZWFyLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd0NhbWVyYUZhciApIDogMS4wO1xuXHRcdCNlbmRpZlxuXHRcdFJFX0RpcmVjdCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgKCBOVU1fU1BPVF9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0IClcblx0U3BvdExpZ2h0IHNwb3RMaWdodDtcblx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHRTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0U2hhZG93O1xuXHQjZW5kaWZcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0c3BvdExpZ2h0ID0gc3BvdExpZ2h0c1sgaSBdO1xuXHRcdGdldFNwb3REaXJlY3RMaWdodElycmFkaWFuY2UoIHNwb3RMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIClcblx0XHRzcG90TGlnaHRTaGFkb3cgPSBzcG90TGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgKj0gYWxsKCBidmVjMiggZGlyZWN0TGlnaHQudmlzaWJsZSwgcmVjZWl2ZVNoYWRvdyApICkgPyBnZXRTaGFkb3coIHNwb3RTaGFkb3dNYXBbIGkgXSwgc3BvdExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIHNwb3RMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBzcG90TGlnaHRTaGFkb3cuc2hhZG93UmFkaXVzLCB2U3BvdFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcblx0XHQjZW5kaWZcblx0XHRSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmICggTlVNX0RJUl9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0IClcblx0RGlyZWN0aW9uYWxMaWdodCBkaXJlY3Rpb25hbExpZ2h0O1xuXHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0U2hhZG93O1xuXHQjZW5kaWZcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUUzsgaSArKyApIHtcblx0XHRkaXJlY3Rpb25hbExpZ2h0ID0gZGlyZWN0aW9uYWxMaWdodHNbIGkgXTtcblx0XHRnZXREaXJlY3Rpb25hbERpcmVjdExpZ2h0SXJyYWRpYW5jZSggZGlyZWN0aW9uYWxMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fRElSX0xJR0hUX1NIQURPV1MgKVxuXHRcdGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cgPSBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yICo9IGFsbCggYnZlYzIoIGRpcmVjdExpZ2h0LnZpc2libGUsIHJlY2VpdmVTaGFkb3cgKSApID8gZ2V0U2hhZG93KCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgaSBdLCBkaXJlY3Rpb25hbExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cuc2hhZG93QmlhcywgZGlyZWN0aW9uYWxMaWdodFNoYWRvdy5zaGFkb3dSYWRpdXMsIHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcblx0XHQjZW5kaWZcblx0XHRSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmICggTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0X1JlY3RBcmVhIClcblx0UmVjdEFyZWFMaWdodCByZWN0QXJlYUxpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9SRUNUX0FSRUFfTElHSFRTOyBpICsrICkge1xuXHRcdHJlY3RBcmVhTGlnaHQgPSByZWN0QXJlYUxpZ2h0c1sgaSBdO1xuXHRcdFJFX0RpcmVjdF9SZWN0QXJlYSggcmVjdEFyZWFMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdERpZmZ1c2UgKVxuXHR2ZWMzIGlibElycmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTtcblx0dmVjMyBpcnJhZGlhbmNlID0gZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggYW1iaWVudExpZ2h0Q29sb3IgKTtcblx0aXJyYWRpYW5jZSArPSBnZXRMaWdodFByb2JlSXJyYWRpYW5jZSggbGlnaHRQcm9iZSwgZ2VvbWV0cnkgKTtcblx0I2lmICggTlVNX0hFTUlfTElHSFRTID4gMCApXG5cdFx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRcdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9IRU1JX0xJR0hUUzsgaSArKyApIHtcblx0XHRcdGlycmFkaWFuY2UgKz0gZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggaGVtaXNwaGVyZUxpZ2h0c1sgaSBdLCBnZW9tZXRyeSApO1xuXHRcdH1cblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0U3BlY3VsYXIgKVxuXHR2ZWMzIHJhZGlhbmNlID0gdmVjMyggMC4wICk7XG5cdHZlYzMgY2xlYXJjb2F0UmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTtcbiNlbmRpZiIsbGlnaHRzX2ZyYWdtZW50X21hcHM6IiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdERpZmZ1c2UgKVxuXHQjaWZkZWYgVVNFX0xJR0hUTUFQXG5cdFx0dmVjNCBsaWdodE1hcFRleGVsPSB0ZXh0dXJlMkQoIGxpZ2h0TWFwLCB2VXYyICk7XG5cdFx0dmVjMyBsaWdodE1hcElycmFkaWFuY2UgPSBsaWdodE1hcFRleGVsVG9MaW5lYXIoIGxpZ2h0TWFwVGV4ZWwgKS5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTtcblx0XHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRcdGxpZ2h0TWFwSXJyYWRpYW5jZSAqPSBQSTtcblx0XHQjZW5kaWZcblx0XHRpcnJhZGlhbmNlICs9IGxpZ2h0TWFwSXJyYWRpYW5jZTtcblx0I2VuZGlmXG5cdCNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgJiYgZGVmaW5lZCggU1RBTkRBUkQgKSAmJiBkZWZpbmVkKCBFTlZNQVBfVFlQRV9DVUJFX1VWIClcblx0XHRpYmxJcnJhZGlhbmNlICs9IGdldExpZ2h0UHJvYmVJbmRpcmVjdElycmFkaWFuY2UoIGdlb21ldHJ5LCBtYXhNaXBMZXZlbCApO1xuXHQjZW5kaWZcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSAmJiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyIClcblx0cmFkaWFuY2UgKz0gZ2V0TGlnaHRQcm9iZUluZGlyZWN0UmFkaWFuY2UoIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5Lm5vcm1hbCwgbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MsIG1heE1pcExldmVsICk7XG5cdCNpZmRlZiBDTEVBUkNPQVRcblx0XHRjbGVhcmNvYXRSYWRpYW5jZSArPSBnZXRMaWdodFByb2JlSW5kaXJlY3RSYWRpYW5jZSggZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIG1heE1pcExldmVsICk7XG5cdCNlbmRpZlxuI2VuZGlmIixsaWdodHNfZnJhZ21lbnRfZW5kOiIjaWYgZGVmaW5lZCggUkVfSW5kaXJlY3REaWZmdXNlIClcblx0UkVfSW5kaXJlY3REaWZmdXNlKCBpcnJhZGlhbmNlLCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG4jZW5kaWZcbiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyIClcblx0UkVfSW5kaXJlY3RTcGVjdWxhciggcmFkaWFuY2UsIGlibElycmFkaWFuY2UsIGNsZWFyY29hdFJhZGlhbmNlLCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG4jZW5kaWYiLGxvZ2RlcHRoYnVmX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGICkgJiYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGX0VYVCApXG5cdGdsX0ZyYWdEZXB0aEVYVCA9IHZJc1BlcnNwZWN0aXZlID09IDAuMCA/IGdsX0ZyYWdDb29yZC56IDogbG9nMiggdkZyYWdEZXB0aCApICogbG9nRGVwdGhCdWZGQyAqIDAuNTtcbiNlbmRpZiIsbG9nZGVwdGhidWZfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRiApICYmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRl9FWFQgKVxuXHR1bmlmb3JtIGZsb2F0IGxvZ0RlcHRoQnVmRkM7XG5cdHZhcnlpbmcgZmxvYXQgdkZyYWdEZXB0aDtcblx0dmFyeWluZyBmbG9hdCB2SXNQZXJzcGVjdGl2ZTtcbiNlbmRpZiIsbG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfTE9HREVQVEhCVUZcblx0I2lmZGVmIFVTRV9MT0dERVBUSEJVRl9FWFRcblx0XHR2YXJ5aW5nIGZsb2F0IHZGcmFnRGVwdGg7XG5cdFx0dmFyeWluZyBmbG9hdCB2SXNQZXJzcGVjdGl2ZTtcblx0I2Vsc2Vcblx0XHR1bmlmb3JtIGZsb2F0IGxvZ0RlcHRoQnVmRkM7XG5cdCNlbmRpZlxuI2VuZGlmIixsb2dkZXB0aGJ1Zl92ZXJ0ZXg6IiNpZmRlZiBVU0VfTE9HREVQVEhCVUZcblx0I2lmZGVmIFVTRV9MT0dERVBUSEJVRl9FWFRcblx0XHR2RnJhZ0RlcHRoID0gMS4wICsgZ2xfUG9zaXRpb24udztcblx0XHR2SXNQZXJzcGVjdGl2ZSA9IGZsb2F0KCBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICkgKTtcblx0I2Vsc2Vcblx0XHRpZiAoIGlzUGVyc3BlY3RpdmVNYXRyaXgoIHByb2plY3Rpb25NYXRyaXggKSApIHtcblx0XHRcdGdsX1Bvc2l0aW9uLnogPSBsb2cyKCBtYXgoIEVQU0lMT04sIGdsX1Bvc2l0aW9uLncgKyAxLjAgKSApICogbG9nRGVwdGhCdWZGQyAtIDEuMDtcblx0XHRcdGdsX1Bvc2l0aW9uLnogKj0gZ2xfUG9zaXRpb24udztcblx0XHR9XG5cdCNlbmRpZlxuI2VuZGlmIixtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTUFQXG5cdHZlYzQgdGV4ZWxDb2xvciA9IHRleHR1cmUyRCggbWFwLCB2VXYgKTtcblx0dGV4ZWxDb2xvciA9IG1hcFRleGVsVG9MaW5lYXIoIHRleGVsQ29sb3IgKTtcblx0ZGlmZnVzZUNvbG9yICo9IHRleGVsQ29sb3I7XG4jZW5kaWYiLG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBtYXA7XG4jZW5kaWYiLG1hcF9wYXJ0aWNsZV9mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9NQVAgKSB8fCBkZWZpbmVkKCBVU0VfQUxQSEFNQVAgKVxuXHR2ZWMyIHV2ID0gKCB1dlRyYW5zZm9ybSAqIHZlYzMoIGdsX1BvaW50Q29vcmQueCwgMS4wIC0gZ2xfUG9pbnRDb29yZC55LCAxICkgKS54eTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9NQVBcblx0dmVjNCBtYXBUZXhlbCA9IHRleHR1cmUyRCggbWFwLCB1diApO1xuXHRkaWZmdXNlQ29sb3IgKj0gbWFwVGV4ZWxUb0xpbmVhciggbWFwVGV4ZWwgKTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9BTFBIQU1BUFxuXHRkaWZmdXNlQ29sb3IuYSAqPSB0ZXh0dXJlMkQoIGFscGhhTWFwLCB1diApLmc7XG4jZW5kaWYiLG1hcF9wYXJ0aWNsZV9wYXJzX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX01BUCApIHx8IGRlZmluZWQoIFVTRV9BTFBIQU1BUCApXG5cdHVuaWZvcm0gbWF0MyB1dlRyYW5zZm9ybTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9NQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbWFwO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0FMUEhBTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGFscGhhTWFwO1xuI2VuZGlmIixtZXRhbG5lc3NtYXBfZnJhZ21lbnQ6ImZsb2F0IG1ldGFsbmVzc0ZhY3RvciA9IG1ldGFsbmVzcztcbiNpZmRlZiBVU0VfTUVUQUxORVNTTUFQXG5cdHZlYzQgdGV4ZWxNZXRhbG5lc3MgPSB0ZXh0dXJlMkQoIG1ldGFsbmVzc01hcCwgdlV2ICk7XG5cdG1ldGFsbmVzc0ZhY3RvciAqPSB0ZXhlbE1ldGFsbmVzcy5iO1xuI2VuZGlmIixtZXRhbG5lc3NtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9NRVRBTE5FU1NNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbWV0YWxuZXNzTWFwO1xuI2VuZGlmIixtb3JwaG5vcm1hbF92ZXJ0ZXg6IiNpZmRlZiBVU0VfTU9SUEhOT1JNQUxTXG5cdG9iamVjdE5vcm1hbCAqPSBtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2U7XG5cdG9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDAgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDAgXTtcblx0b2JqZWN0Tm9ybWFsICs9IG1vcnBoTm9ybWFsMSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMSBdO1xuXHRvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwyICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAyIF07XG5cdG9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDMgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDMgXTtcbiNlbmRpZiIsbW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfTU9SUEhUQVJHRVRTXG5cdHVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlO1xuXHQjaWZuZGVmIFVTRV9NT1JQSE5PUk1BTFNcblx0XHR1bmlmb3JtIGZsb2F0IG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgOCBdO1xuXHQjZWxzZVxuXHRcdHVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA0IF07XG5cdCNlbmRpZlxuI2VuZGlmIixtb3JwaHRhcmdldF92ZXJ0ZXg6IiNpZmRlZiBVU0VfTU9SUEhUQVJHRVRTXG5cdHRyYW5zZm9ybWVkICo9IG1vcnBoVGFyZ2V0QmFzZUluZmx1ZW5jZTtcblx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQwICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAwIF07XG5cdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMSBdO1xuXHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDIgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDIgXTtcblx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQzICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAzIF07XG5cdCNpZm5kZWYgVVNFX01PUlBITk9STUFMU1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NCAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNCBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNSBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NiAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNiBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NyAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNyBdO1xuXHQjZW5kaWZcbiNlbmRpZiIsbm9ybWFsX2ZyYWdtZW50X2JlZ2luOiJmbG9hdCBmYWNlRGlyZWN0aW9uID0gZ2xfRnJvbnRGYWNpbmcgPyAxLjAgOiAtIDEuMDtcbiNpZmRlZiBGTEFUX1NIQURFRFxuXHR2ZWMzIGZkeCA9IHZlYzMoIGRGZHgoIHZWaWV3UG9zaXRpb24ueCApLCBkRmR4KCB2Vmlld1Bvc2l0aW9uLnkgKSwgZEZkeCggdlZpZXdQb3NpdGlvbi56ICkgKTtcblx0dmVjMyBmZHkgPSB2ZWMzKCBkRmR5KCB2Vmlld1Bvc2l0aW9uLnggKSwgZEZkeSggdlZpZXdQb3NpdGlvbi55ICksIGRGZHkoIHZWaWV3UG9zaXRpb24ueiApICk7XG5cdHZlYzMgbm9ybWFsID0gbm9ybWFsaXplKCBjcm9zcyggZmR4LCBmZHkgKSApO1xuI2Vsc2Vcblx0dmVjMyBub3JtYWwgPSBub3JtYWxpemUoIHZOb3JtYWwgKTtcblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdG5vcm1hbCA9IG5vcm1hbCAqIGZhY2VEaXJlY3Rpb247XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2ZWMzIHRhbmdlbnQgPSBub3JtYWxpemUoIHZUYW5nZW50ICk7XG5cdFx0dmVjMyBiaXRhbmdlbnQgPSBub3JtYWxpemUoIHZCaXRhbmdlbnQgKTtcblx0XHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0XHR0YW5nZW50ID0gdGFuZ2VudCAqIGZhY2VEaXJlY3Rpb247XG5cdFx0XHRiaXRhbmdlbnQgPSBiaXRhbmdlbnQgKiBmYWNlRGlyZWN0aW9uO1xuXHRcdCNlbmRpZlxuXHRcdCNpZiBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQICkgfHwgZGVmaW5lZCggVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAgKVxuXHRcdFx0bWF0MyB2VEJOID0gbWF0MyggdGFuZ2VudCwgYml0YW5nZW50LCBub3JtYWwgKTtcblx0XHQjZW5kaWZcblx0I2VuZGlmXG4jZW5kaWZcbnZlYzMgZ2VvbWV0cnlOb3JtYWwgPSBub3JtYWw7Iixub3JtYWxfZnJhZ21lbnRfbWFwczoiI2lmZGVmIE9CSkVDVFNQQUNFX05PUk1BTE1BUFxuXHRub3JtYWwgPSB0ZXh0dXJlMkQoIG5vcm1hbE1hcCwgdlV2ICkueHl6ICogMi4wIC0gMS4wO1xuXHQjaWZkZWYgRkxJUF9TSURFRFxuXHRcdG5vcm1hbCA9IC0gbm9ybWFsO1xuXHQjZW5kaWZcblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdG5vcm1hbCA9IG5vcm1hbCAqIGZhY2VEaXJlY3Rpb247XG5cdCNlbmRpZlxuXHRub3JtYWwgPSBub3JtYWxpemUoIG5vcm1hbE1hdHJpeCAqIG5vcm1hbCApO1xuI2VsaWYgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApXG5cdHZlYzMgbWFwTiA9IHRleHR1cmUyRCggbm9ybWFsTWFwLCB2VXYgKS54eXogKiAyLjAgLSAxLjA7XG5cdG1hcE4ueHkgKj0gbm9ybWFsU2NhbGU7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdG5vcm1hbCA9IG5vcm1hbGl6ZSggdlRCTiAqIG1hcE4gKTtcblx0I2Vsc2Vcblx0XHRub3JtYWwgPSBwZXJ0dXJiTm9ybWFsMkFyYiggLXZWaWV3UG9zaXRpb24sIG5vcm1hbCwgbWFwTiwgZmFjZURpcmVjdGlvbiApO1xuXHQjZW5kaWZcbiNlbGlmIGRlZmluZWQoIFVTRV9CVU1QTUFQIClcblx0bm9ybWFsID0gcGVydHVyYk5vcm1hbEFyYiggLXZWaWV3UG9zaXRpb24sIG5vcm1hbCwgZEhkeHlfZndkKCksIGZhY2VEaXJlY3Rpb24gKTtcbiNlbmRpZiIsbm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTk9STUFMTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIG5vcm1hbE1hcDtcblx0dW5pZm9ybSB2ZWMyIG5vcm1hbFNjYWxlO1xuI2VuZGlmXG4jaWZkZWYgT0JKRUNUU1BBQ0VfTk9STUFMTUFQXG5cdHVuaWZvcm0gbWF0MyBub3JtYWxNYXRyaXg7XG4jZW5kaWZcbiNpZiAhIGRlZmluZWQgKCBVU0VfVEFOR0VOVCApICYmICggZGVmaW5lZCAoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKSB8fCBkZWZpbmVkICggVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAgKSApXG5cdHZlYzMgcGVydHVyYk5vcm1hbDJBcmIoIHZlYzMgZXllX3BvcywgdmVjMyBzdXJmX25vcm0sIHZlYzMgbWFwTiwgZmxvYXQgZmFjZURpcmVjdGlvbiApIHtcblx0XHR2ZWMzIHEwID0gdmVjMyggZEZkeCggZXllX3Bvcy54ICksIGRGZHgoIGV5ZV9wb3MueSApLCBkRmR4KCBleWVfcG9zLnogKSApO1xuXHRcdHZlYzMgcTEgPSB2ZWMzKCBkRmR5KCBleWVfcG9zLnggKSwgZEZkeSggZXllX3Bvcy55ICksIGRGZHkoIGV5ZV9wb3MueiApICk7XG5cdFx0dmVjMiBzdDAgPSBkRmR4KCB2VXYuc3QgKTtcblx0XHR2ZWMyIHN0MSA9IGRGZHkoIHZVdi5zdCApO1xuXHRcdHZlYzMgTiA9IHN1cmZfbm9ybTtcblx0XHR2ZWMzIHExcGVycCA9IGNyb3NzKCBxMSwgTiApO1xuXHRcdHZlYzMgcTBwZXJwID0gY3Jvc3MoIE4sIHEwICk7XG5cdFx0dmVjMyBUID0gcTFwZXJwICogc3QwLnggKyBxMHBlcnAgKiBzdDEueDtcblx0XHR2ZWMzIEIgPSBxMXBlcnAgKiBzdDAueSArIHEwcGVycCAqIHN0MS55O1xuXHRcdGZsb2F0IGRldCA9IG1heCggZG90KCBULCBUICksIGRvdCggQiwgQiApICk7XG5cdFx0ZmxvYXQgc2NhbGUgPSAoIGRldCA9PSAwLjAgKSA/IDAuMCA6IGZhY2VEaXJlY3Rpb24gKiBpbnZlcnNlc3FydCggZGV0ICk7XG5cdFx0cmV0dXJuIG5vcm1hbGl6ZSggVCAqICggbWFwTi54ICogc2NhbGUgKSArIEIgKiAoIG1hcE4ueSAqIHNjYWxlICkgKyBOICogbWFwTi56ICk7XG5cdH1cbiNlbmRpZiIsY2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9iZWdpbjoiI2lmZGVmIENMRUFSQ09BVFxuXHR2ZWMzIGNsZWFyY29hdE5vcm1hbCA9IGdlb21ldHJ5Tm9ybWFsO1xuI2VuZGlmIixjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X21hcHM6IiNpZmRlZiBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUFxuXHR2ZWMzIGNsZWFyY29hdE1hcE4gPSB0ZXh0dXJlMkQoIGNsZWFyY29hdE5vcm1hbE1hcCwgdlV2ICkueHl6ICogMi4wIC0gMS4wO1xuXHRjbGVhcmNvYXRNYXBOLnh5ICo9IGNsZWFyY29hdE5vcm1hbFNjYWxlO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHRjbGVhcmNvYXROb3JtYWwgPSBub3JtYWxpemUoIHZUQk4gKiBjbGVhcmNvYXRNYXBOICk7XG5cdCNlbHNlXG5cdFx0Y2xlYXJjb2F0Tm9ybWFsID0gcGVydHVyYk5vcm1hbDJBcmIoIC0gdlZpZXdQb3NpdGlvbiwgY2xlYXJjb2F0Tm9ybWFsLCBjbGVhcmNvYXRNYXBOLCBmYWNlRGlyZWN0aW9uICk7XG5cdCNlbmRpZlxuI2VuZGlmIixjbGVhcmNvYXRfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9DTEVBUkNPQVRNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0TWFwO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0Um91Z2huZXNzTWFwO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0Tm9ybWFsTWFwO1xuXHR1bmlmb3JtIHZlYzIgY2xlYXJjb2F0Tm9ybWFsU2NhbGU7XG4jZW5kaWYiLHBhY2tpbmc6InZlYzMgcGFja05vcm1hbFRvUkdCKCBjb25zdCBpbiB2ZWMzIG5vcm1hbCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggbm9ybWFsICkgKiAwLjUgKyAwLjU7XG59XG52ZWMzIHVucGFja1JHQlRvTm9ybWFsKCBjb25zdCBpbiB2ZWMzIHJnYiApIHtcblx0cmV0dXJuIDIuMCAqIHJnYi54eXogLSAxLjA7XG59XG5jb25zdCBmbG9hdCBQYWNrVXBzY2FsZSA9IDI1Ni4gLyAyNTUuO2NvbnN0IGZsb2F0IFVucGFja0Rvd25zY2FsZSA9IDI1NS4gLyAyNTYuO1xuY29uc3QgdmVjMyBQYWNrRmFjdG9ycyA9IHZlYzMoIDI1Ni4gKiAyNTYuICogMjU2LiwgMjU2LiAqIDI1Ni4sIDI1Ni4gKTtcbmNvbnN0IHZlYzQgVW5wYWNrRmFjdG9ycyA9IFVucGFja0Rvd25zY2FsZSAvIHZlYzQoIFBhY2tGYWN0b3JzLCAxLiApO1xuY29uc3QgZmxvYXQgU2hpZnRSaWdodDggPSAxLiAvIDI1Ni47XG52ZWM0IHBhY2tEZXB0aFRvUkdCQSggY29uc3QgaW4gZmxvYXQgdiApIHtcblx0dmVjNCByID0gdmVjNCggZnJhY3QoIHYgKiBQYWNrRmFjdG9ycyApLCB2ICk7XG5cdHIueXp3IC09IHIueHl6ICogU2hpZnRSaWdodDg7XHRyZXR1cm4gciAqIFBhY2tVcHNjYWxlO1xufVxuZmxvYXQgdW5wYWNrUkdCQVRvRGVwdGgoIGNvbnN0IGluIHZlYzQgdiApIHtcblx0cmV0dXJuIGRvdCggdiwgVW5wYWNrRmFjdG9ycyApO1xufVxudmVjNCBwYWNrMkhhbGZUb1JHQkEoIHZlYzIgdiApIHtcblx0dmVjNCByID0gdmVjNCggdi54LCBmcmFjdCggdi54ICogMjU1LjAgKSwgdi55LCBmcmFjdCggdi55ICogMjU1LjAgKSk7XG5cdHJldHVybiB2ZWM0KCByLnggLSByLnkgLyAyNTUuMCwgci55LCByLnogLSByLncgLyAyNTUuMCwgci53KTtcbn1cbnZlYzIgdW5wYWNrUkdCQVRvMkhhbGYoIHZlYzQgdiApIHtcblx0cmV0dXJuIHZlYzIoIHYueCArICggdi55IC8gMjU1LjAgKSwgdi56ICsgKCB2LncgLyAyNTUuMCApICk7XG59XG5mbG9hdCB2aWV3WlRvT3J0aG9ncmFwaGljRGVwdGgoIGNvbnN0IGluIGZsb2F0IHZpZXdaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7XG5cdHJldHVybiAoIHZpZXdaICsgbmVhciApIC8gKCBuZWFyIC0gZmFyICk7XG59XG5mbG9hdCBvcnRob2dyYXBoaWNEZXB0aFRvVmlld1ooIGNvbnN0IGluIGZsb2F0IGxpbmVhckNsaXBaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7XG5cdHJldHVybiBsaW5lYXJDbGlwWiAqICggbmVhciAtIGZhciApIC0gbmVhcjtcbn1cbmZsb2F0IHZpZXdaVG9QZXJzcGVjdGl2ZURlcHRoKCBjb25zdCBpbiBmbG9hdCB2aWV3WiwgY29uc3QgaW4gZmxvYXQgbmVhciwgY29uc3QgaW4gZmxvYXQgZmFyICkge1xuXHRyZXR1cm4gKCggbmVhciArIHZpZXdaICkgKiBmYXIgKSAvICgoIGZhciAtIG5lYXIgKSAqIHZpZXdaICk7XG59XG5mbG9hdCBwZXJzcGVjdGl2ZURlcHRoVG9WaWV3WiggY29uc3QgaW4gZmxvYXQgaW52Q2xpcFosIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHtcblx0cmV0dXJuICggbmVhciAqIGZhciApIC8gKCAoIGZhciAtIG5lYXIgKSAqIGludkNsaXBaIC0gZmFyICk7XG59IixwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50OiIjaWZkZWYgUFJFTVVMVElQTElFRF9BTFBIQVxuXHRnbF9GcmFnQ29sb3IucmdiICo9IGdsX0ZyYWdDb2xvci5hO1xuI2VuZGlmIixwcm9qZWN0X3ZlcnRleDoidmVjNCBtdlBvc2l0aW9uID0gdmVjNCggdHJhbnNmb3JtZWQsIDEuMCApO1xuI2lmZGVmIFVTRV9JTlNUQU5DSU5HXG5cdG12UG9zaXRpb24gPSBpbnN0YW5jZU1hdHJpeCAqIG12UG9zaXRpb247XG4jZW5kaWZcbm12UG9zaXRpb24gPSBtb2RlbFZpZXdNYXRyaXggKiBtdlBvc2l0aW9uO1xuZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjsiLGRpdGhlcmluZ19mcmFnbWVudDoiI2lmZGVmIERJVEhFUklOR1xuXHRnbF9GcmFnQ29sb3IucmdiID0gZGl0aGVyaW5nKCBnbF9GcmFnQ29sb3IucmdiICk7XG4jZW5kaWYiLGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50OiIjaWZkZWYgRElUSEVSSU5HXG5cdHZlYzMgZGl0aGVyaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRcdGZsb2F0IGdyaWRfcG9zaXRpb24gPSByYW5kKCBnbF9GcmFnQ29vcmQueHkgKTtcblx0XHR2ZWMzIGRpdGhlcl9zaGlmdF9SR0IgPSB2ZWMzKCAwLjI1IC8gMjU1LjAsIC0wLjI1IC8gMjU1LjAsIDAuMjUgLyAyNTUuMCApO1xuXHRcdGRpdGhlcl9zaGlmdF9SR0IgPSBtaXgoIDIuMCAqIGRpdGhlcl9zaGlmdF9SR0IsIC0yLjAgKiBkaXRoZXJfc2hpZnRfUkdCLCBncmlkX3Bvc2l0aW9uICk7XG5cdFx0cmV0dXJuIGNvbG9yICsgZGl0aGVyX3NoaWZ0X1JHQjtcblx0fVxuI2VuZGlmIixyb3VnaG5lc3NtYXBfZnJhZ21lbnQ6ImZsb2F0IHJvdWdobmVzc0ZhY3RvciA9IHJvdWdobmVzcztcbiNpZmRlZiBVU0VfUk9VR0hORVNTTUFQXG5cdHZlYzQgdGV4ZWxSb3VnaG5lc3MgPSB0ZXh0dXJlMkQoIHJvdWdobmVzc01hcCwgdlV2ICk7XG5cdHJvdWdobmVzc0ZhY3RvciAqPSB0ZXhlbFJvdWdobmVzcy5nO1xuI2VuZGlmIixyb3VnaG5lc3NtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9ST1VHSE5FU1NNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgcm91Z2huZXNzTWFwO1xuI2VuZGlmIixzaGFkb3dtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9TSEFET1dNQVBcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgRGlyZWN0aW9uYWxMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHR9O1xuXHRcdHVuaWZvcm0gRGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHQjaWYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBzcG90U2hhZG93TWFwWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZTcG90U2hhZG93Q29vcmRbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgU3BvdExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0U2hhZG93c1sgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHBvaW50U2hhZG93TWFwWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2UG9pbnRTaGFkb3dDb29yZFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgUG9pbnRMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHRcdGZsb2F0IHNoYWRvd0NhbWVyYU5lYXI7XG5cdFx0XHRmbG9hdCBzaGFkb3dDYW1lcmFGYXI7XG5cdFx0fTtcblx0XHR1bmlmb3JtIFBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodFNoYWRvd3NbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHRmbG9hdCB0ZXh0dXJlMkRDb21wYXJlKCBzYW1wbGVyMkQgZGVwdGhzLCB2ZWMyIHV2LCBmbG9hdCBjb21wYXJlICkge1xuXHRcdHJldHVybiBzdGVwKCBjb21wYXJlLCB1bnBhY2tSR0JBVG9EZXB0aCggdGV4dHVyZTJEKCBkZXB0aHMsIHV2ICkgKSApO1xuXHR9XG5cdHZlYzIgdGV4dHVyZTJERGlzdHJpYnV0aW9uKCBzYW1wbGVyMkQgc2hhZG93LCB2ZWMyIHV2ICkge1xuXHRcdHJldHVybiB1bnBhY2tSR0JBVG8ySGFsZiggdGV4dHVyZTJEKCBzaGFkb3csIHV2ICkgKTtcblx0fVxuXHRmbG9hdCBWU01TaGFkb3cgKHNhbXBsZXIyRCBzaGFkb3csIHZlYzIgdXYsIGZsb2F0IGNvbXBhcmUgKXtcblx0XHRmbG9hdCBvY2NsdXNpb24gPSAxLjA7XG5cdFx0dmVjMiBkaXN0cmlidXRpb24gPSB0ZXh0dXJlMkREaXN0cmlidXRpb24oIHNoYWRvdywgdXYgKTtcblx0XHRmbG9hdCBoYXJkX3NoYWRvdyA9IHN0ZXAoIGNvbXBhcmUgLCBkaXN0cmlidXRpb24ueCApO1xuXHRcdGlmIChoYXJkX3NoYWRvdyAhPSAxLjAgKSB7XG5cdFx0XHRmbG9hdCBkaXN0YW5jZSA9IGNvbXBhcmUgLSBkaXN0cmlidXRpb24ueCA7XG5cdFx0XHRmbG9hdCB2YXJpYW5jZSA9IG1heCggMC4wMDAwMCwgZGlzdHJpYnV0aW9uLnkgKiBkaXN0cmlidXRpb24ueSApO1xuXHRcdFx0ZmxvYXQgc29mdG5lc3NfcHJvYmFiaWxpdHkgPSB2YXJpYW5jZSAvICh2YXJpYW5jZSArIGRpc3RhbmNlICogZGlzdGFuY2UgKTtcdFx0XHRzb2Z0bmVzc19wcm9iYWJpbGl0eSA9IGNsYW1wKCAoIHNvZnRuZXNzX3Byb2JhYmlsaXR5IC0gMC4zICkgLyAoIDAuOTUgLSAwLjMgKSwgMC4wLCAxLjAgKTtcdFx0XHRvY2NsdXNpb24gPSBjbGFtcCggbWF4KCBoYXJkX3NoYWRvdywgc29mdG5lc3NfcHJvYmFiaWxpdHkgKSwgMC4wLCAxLjAgKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9jY2x1c2lvbjtcblx0fVxuXHRmbG9hdCBnZXRTaGFkb3coIHNhbXBsZXIyRCBzaGFkb3dNYXAsIHZlYzIgc2hhZG93TWFwU2l6ZSwgZmxvYXQgc2hhZG93QmlhcywgZmxvYXQgc2hhZG93UmFkaXVzLCB2ZWM0IHNoYWRvd0Nvb3JkICkge1xuXHRcdGZsb2F0IHNoYWRvdyA9IDEuMDtcblx0XHRzaGFkb3dDb29yZC54eXogLz0gc2hhZG93Q29vcmQudztcblx0XHRzaGFkb3dDb29yZC56ICs9IHNoYWRvd0JpYXM7XG5cdFx0YnZlYzQgaW5GcnVzdHVtVmVjID0gYnZlYzQgKCBzaGFkb3dDb29yZC54ID49IDAuMCwgc2hhZG93Q29vcmQueCA8PSAxLjAsIHNoYWRvd0Nvb3JkLnkgPj0gMC4wLCBzaGFkb3dDb29yZC55IDw9IDEuMCApO1xuXHRcdGJvb2wgaW5GcnVzdHVtID0gYWxsKCBpbkZydXN0dW1WZWMgKTtcblx0XHRidmVjMiBmcnVzdHVtVGVzdFZlYyA9IGJ2ZWMyKCBpbkZydXN0dW0sIHNoYWRvd0Nvb3JkLnogPD0gMS4wICk7XG5cdFx0Ym9vbCBmcnVzdHVtVGVzdCA9IGFsbCggZnJ1c3R1bVRlc3RWZWMgKTtcblx0XHRpZiAoIGZydXN0dW1UZXN0ICkge1xuXHRcdCNpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0YgKVxuXHRcdFx0dmVjMiB0ZXhlbFNpemUgPSB2ZWMyKCAxLjAgKSAvIHNoYWRvd01hcFNpemU7XG5cdFx0XHRmbG9hdCBkeDAgPSAtIHRleGVsU2l6ZS54ICogc2hhZG93UmFkaXVzO1xuXHRcdFx0ZmxvYXQgZHkwID0gLSB0ZXhlbFNpemUueSAqIHNoYWRvd1JhZGl1cztcblx0XHRcdGZsb2F0IGR4MSA9ICsgdGV4ZWxTaXplLnggKiBzaGFkb3dSYWRpdXM7XG5cdFx0XHRmbG9hdCBkeTEgPSArIHRleGVsU2l6ZS55ICogc2hhZG93UmFkaXVzO1xuXHRcdFx0ZmxvYXQgZHgyID0gZHgwIC8gMi4wO1xuXHRcdFx0ZmxvYXQgZHkyID0gZHkwIC8gMi4wO1xuXHRcdFx0ZmxvYXQgZHgzID0gZHgxIC8gMi4wO1xuXHRcdFx0ZmxvYXQgZHkzID0gZHkxIC8gMi4wO1xuXHRcdFx0c2hhZG93ID0gKFxuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgwLCBkeTAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkwICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDEsIGR5MCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgyLCBkeTIgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkyICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDMsIGR5MiApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgwLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MiwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDMsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgxLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MiwgZHkzICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCAwLjAsIGR5MyApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgzLCBkeTMgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MCwgZHkxICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCAwLjAsIGR5MSApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgxLCBkeTEgKSwgc2hhZG93Q29vcmQueiApXG5cdFx0XHQpICogKCAxLjAgLyAxNy4wICk7XG5cdFx0I2VsaWYgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfUENGX1NPRlQgKVxuXHRcdFx0dmVjMiB0ZXhlbFNpemUgPSB2ZWMyKCAxLjAgKSAvIHNoYWRvd01hcFNpemU7XG5cdFx0XHRmbG9hdCBkeCA9IHRleGVsU2l6ZS54O1xuXHRcdFx0ZmxvYXQgZHkgPSB0ZXhlbFNpemUueTtcblx0XHRcdHZlYzIgdXYgPSBzaGFkb3dDb29yZC54eTtcblx0XHRcdHZlYzIgZiA9IGZyYWN0KCB1diAqIHNoYWRvd01hcFNpemUgKyAwLjUgKTtcblx0XHRcdHV2IC09IGYgKiB0ZXhlbFNpemU7XG5cdFx0XHRzaGFkb3cgPSAoXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYsIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAwLjAsIGR5ICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB0ZXhlbFNpemUsIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHQgZi54ICkgK1xuXHRcdFx0XHRtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAtZHgsIGR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdCBmLnggKSArXG5cdFx0XHRcdG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDAuMCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAwLjAsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHQgZi55ICkgK1xuXHRcdFx0XHRtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdCBmLnkgKSArXG5cdFx0XHRcdG1peCggbWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCAtZHkgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHRcdCAgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCAtZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdFx0ICBmLnggKSxcblx0XHRcdFx0XHQgbWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdFx0ICB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHRcdCAgZi54ICksXG5cdFx0XHRcdFx0IGYueSApXG5cdFx0XHQpICogKCAxLjAgLyA5LjAgKTtcblx0XHQjZWxpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9WU00gKVxuXHRcdFx0c2hhZG93ID0gVlNNU2hhZG93KCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5LCBzaGFkb3dDb29yZC56ICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHNoYWRvdyA9IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHksIHNoYWRvd0Nvb3JkLnogKTtcblx0XHQjZW5kaWZcblx0XHR9XG5cdFx0cmV0dXJuIHNoYWRvdztcblx0fVxuXHR2ZWMyIGN1YmVUb1VWKCB2ZWMzIHYsIGZsb2F0IHRleGVsU2l6ZVkgKSB7XG5cdFx0dmVjMyBhYnNWID0gYWJzKCB2ICk7XG5cdFx0ZmxvYXQgc2NhbGVUb0N1YmUgPSAxLjAgLyBtYXgoIGFic1YueCwgbWF4KCBhYnNWLnksIGFic1YueiApICk7XG5cdFx0YWJzViAqPSBzY2FsZVRvQ3ViZTtcblx0XHR2ICo9IHNjYWxlVG9DdWJlICogKCAxLjAgLSAyLjAgKiB0ZXhlbFNpemVZICk7XG5cdFx0dmVjMiBwbGFuYXIgPSB2Lnh5O1xuXHRcdGZsb2F0IGFsbW9zdEFUZXhlbCA9IDEuNSAqIHRleGVsU2l6ZVk7XG5cdFx0ZmxvYXQgYWxtb3N0T25lID0gMS4wIC0gYWxtb3N0QVRleGVsO1xuXHRcdGlmICggYWJzVi56ID49IGFsbW9zdE9uZSApIHtcblx0XHRcdGlmICggdi56ID4gMC4wIClcblx0XHRcdFx0cGxhbmFyLnggPSA0LjAgLSB2Lng7XG5cdFx0fSBlbHNlIGlmICggYWJzVi54ID49IGFsbW9zdE9uZSApIHtcblx0XHRcdGZsb2F0IHNpZ25YID0gc2lnbiggdi54ICk7XG5cdFx0XHRwbGFuYXIueCA9IHYueiAqIHNpZ25YICsgMi4wICogc2lnblg7XG5cdFx0fSBlbHNlIGlmICggYWJzVi55ID49IGFsbW9zdE9uZSApIHtcblx0XHRcdGZsb2F0IHNpZ25ZID0gc2lnbiggdi55ICk7XG5cdFx0XHRwbGFuYXIueCA9IHYueCArIDIuMCAqIHNpZ25ZICsgMi4wO1xuXHRcdFx0cGxhbmFyLnkgPSB2LnogKiBzaWduWSAtIDIuMDtcblx0XHR9XG5cdFx0cmV0dXJuIHZlYzIoIDAuMTI1LCAwLjI1ICkgKiBwbGFuYXIgKyB2ZWMyKCAwLjM3NSwgMC43NSApO1xuXHR9XG5cdGZsb2F0IGdldFBvaW50U2hhZG93KCBzYW1wbGVyMkQgc2hhZG93TWFwLCB2ZWMyIHNoYWRvd01hcFNpemUsIGZsb2F0IHNoYWRvd0JpYXMsIGZsb2F0IHNoYWRvd1JhZGl1cywgdmVjNCBzaGFkb3dDb29yZCwgZmxvYXQgc2hhZG93Q2FtZXJhTmVhciwgZmxvYXQgc2hhZG93Q2FtZXJhRmFyICkge1xuXHRcdHZlYzIgdGV4ZWxTaXplID0gdmVjMiggMS4wICkgLyAoIHNoYWRvd01hcFNpemUgKiB2ZWMyKCA0LjAsIDIuMCApICk7XG5cdFx0dmVjMyBsaWdodFRvUG9zaXRpb24gPSBzaGFkb3dDb29yZC54eXo7XG5cdFx0ZmxvYXQgZHAgPSAoIGxlbmd0aCggbGlnaHRUb1Bvc2l0aW9uICkgLSBzaGFkb3dDYW1lcmFOZWFyICkgLyAoIHNoYWRvd0NhbWVyYUZhciAtIHNoYWRvd0NhbWVyYU5lYXIgKTtcdFx0ZHAgKz0gc2hhZG93Qmlhcztcblx0XHR2ZWMzIGJkM0QgPSBub3JtYWxpemUoIGxpZ2h0VG9Qb3NpdGlvbiApO1xuXHRcdCNpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0YgKSB8fCBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0ZfU09GVCApIHx8IGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1ZTTSApXG5cdFx0XHR2ZWMyIG9mZnNldCA9IHZlYzIoIC0gMSwgMSApICogc2hhZG93UmFkaXVzICogdGV4ZWxTaXplLnk7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh5eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXl5LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eXgsIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl5eCwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QsIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh4eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXh5LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eHgsIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl4eCwgdGV4ZWxTaXplLnkgKSwgZHAgKVxuXHRcdFx0KSAqICggMS4wIC8gOS4wICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHJldHVybiB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNELCB0ZXhlbFNpemUueSApLCBkcCApO1xuXHRcdCNlbmRpZlxuXHR9XG4jZW5kaWYiLHNoYWRvd21hcF9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9TSEFET1dNQVBcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIG1hdDQgZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXhbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IERpcmVjdGlvbmFsTGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0fTtcblx0XHR1bmlmb3JtIERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBtYXQ0IHNwb3RTaGFkb3dNYXRyaXhbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdlNwb3RTaGFkb3dDb29yZFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBTcG90TGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0fTtcblx0XHR1bmlmb3JtIFNwb3RMaWdodFNoYWRvdyBzcG90TGlnaHRTaGFkb3dzWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHQjaWYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBtYXQ0IHBvaW50U2hhZG93TWF0cml4WyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2UG9pbnRTaGFkb3dDb29yZFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgUG9pbnRMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHRcdGZsb2F0IHNoYWRvd0NhbWVyYU5lYXI7XG5cdFx0XHRmbG9hdCBzaGFkb3dDYW1lcmFGYXI7XG5cdFx0fTtcblx0XHR1bmlmb3JtIFBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodFNoYWRvd3NbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuI2VuZGlmIixzaGFkb3dtYXBfdmVydGV4OiIjaWZkZWYgVVNFX1NIQURPV01BUFxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMCB8fCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMCB8fCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR2ZWMzIHNoYWRvd1dvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggdHJhbnNmb3JtZWROb3JtYWwsIHZpZXdNYXRyaXggKTtcblx0XHR2ZWM0IHNoYWRvd1dvcmxkUG9zaXRpb247XG5cdCNlbmRpZlxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9ESVJfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRzaGFkb3dXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbiArIHZlYzQoIHNoYWRvd1dvcmxkTm9ybWFsICogZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIGkgXS5zaGFkb3dOb3JtYWxCaWFzLCAwICk7XG5cdFx0dkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIGkgXSA9IGRpcmVjdGlvbmFsU2hhZG93TWF0cml4WyBpIF0gKiBzaGFkb3dXb3JsZFBvc2l0aW9uO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjaWYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHNoYWRvd1dvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uICsgdmVjNCggc2hhZG93V29ybGROb3JtYWwgKiBzcG90TGlnaHRTaGFkb3dzWyBpIF0uc2hhZG93Tm9ybWFsQmlhcywgMCApO1xuXHRcdHZTcG90U2hhZG93Q29vcmRbIGkgXSA9IHNwb3RTaGFkb3dNYXRyaXhbIGkgXSAqIHNoYWRvd1dvcmxkUG9zaXRpb247XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRzaGFkb3dXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbiArIHZlYzQoIHNoYWRvd1dvcmxkTm9ybWFsICogcG9pbnRMaWdodFNoYWRvd3NbIGkgXS5zaGFkb3dOb3JtYWxCaWFzLCAwICk7XG5cdFx0dlBvaW50U2hhZG93Q29vcmRbIGkgXSA9IHBvaW50U2hhZG93TWF0cml4WyBpIF0gKiBzaGFkb3dXb3JsZFBvc2l0aW9uO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuI2VuZGlmIixzaGFkb3dtYXNrX3BhcnNfZnJhZ21lbnQ6ImZsb2F0IGdldFNoYWRvd01hc2soKSB7XG5cdGZsb2F0IHNoYWRvdyA9IDEuMDtcblx0I2lmZGVmIFVTRV9TSEFET1dNQVBcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9ESVJfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRkaXJlY3Rpb25hbExpZ2h0ID0gZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRzaGFkb3cgKj0gcmVjZWl2ZVNoYWRvdyA/IGdldFNoYWRvdyggZGlyZWN0aW9uYWxTaGFkb3dNYXBbIGkgXSwgZGlyZWN0aW9uYWxMaWdodC5zaGFkb3dNYXBTaXplLCBkaXJlY3Rpb25hbExpZ2h0LnNoYWRvd0JpYXMsIGRpcmVjdGlvbmFsTGlnaHQuc2hhZG93UmFkaXVzLCB2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgaSBdICkgOiAxLjA7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHRTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0c3BvdExpZ2h0ID0gc3BvdExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdHNoYWRvdyAqPSByZWNlaXZlU2hhZG93ID8gZ2V0U2hhZG93KCBzcG90U2hhZG93TWFwWyBpIF0sIHNwb3RMaWdodC5zaGFkb3dNYXBTaXplLCBzcG90TGlnaHQuc2hhZG93Qmlhcywgc3BvdExpZ2h0LnNoYWRvd1JhZGl1cywgdlNwb3RTaGFkb3dDb29yZFsgaSBdICkgOiAxLjA7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0UG9pbnRMaWdodFNoYWRvdyBwb2ludExpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHBvaW50TGlnaHQgPSBwb2ludExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdHNoYWRvdyAqPSByZWNlaXZlU2hhZG93ID8gZ2V0UG9pbnRTaGFkb3coIHBvaW50U2hhZG93TWFwWyBpIF0sIHBvaW50TGlnaHQuc2hhZG93TWFwU2l6ZSwgcG9pbnRMaWdodC5zaGFkb3dCaWFzLCBwb2ludExpZ2h0LnNoYWRvd1JhZGl1cywgdlBvaW50U2hhZG93Q29vcmRbIGkgXSwgcG9pbnRMaWdodC5zaGFkb3dDYW1lcmFOZWFyLCBwb2ludExpZ2h0LnNoYWRvd0NhbWVyYUZhciApIDogMS4wO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjZW5kaWZcblx0cmV0dXJuIHNoYWRvdztcbn0iLHNraW5iYXNlX3ZlcnRleDoiI2lmZGVmIFVTRV9TS0lOTklOR1xuXHRtYXQ0IGJvbmVNYXRYID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LnggKTtcblx0bWF0NCBib25lTWF0WSA9IGdldEJvbmVNYXRyaXgoIHNraW5JbmRleC55ICk7XG5cdG1hdDQgYm9uZU1hdFogPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgueiApO1xuXHRtYXQ0IGJvbmVNYXRXID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LncgKTtcbiNlbmRpZiIsc2tpbm5pbmdfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfU0tJTk5JTkdcblx0dW5pZm9ybSBtYXQ0IGJpbmRNYXRyaXg7XG5cdHVuaWZvcm0gbWF0NCBiaW5kTWF0cml4SW52ZXJzZTtcblx0I2lmZGVmIEJPTkVfVEVYVFVSRVxuXHRcdHVuaWZvcm0gaGlnaHAgc2FtcGxlcjJEIGJvbmVUZXh0dXJlO1xuXHRcdHVuaWZvcm0gaW50IGJvbmVUZXh0dXJlU2l6ZTtcblx0XHRtYXQ0IGdldEJvbmVNYXRyaXgoIGNvbnN0IGluIGZsb2F0IGkgKSB7XG5cdFx0XHRmbG9hdCBqID0gaSAqIDQuMDtcblx0XHRcdGZsb2F0IHggPSBtb2QoIGosIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKSApO1xuXHRcdFx0ZmxvYXQgeSA9IGZsb29yKCBqIC8gZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApICk7XG5cdFx0XHRmbG9hdCBkeCA9IDEuMCAvIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKTtcblx0XHRcdGZsb2F0IGR5ID0gMS4wIC8gZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApO1xuXHRcdFx0eSA9IGR5ICogKCB5ICsgMC41ICk7XG5cdFx0XHR2ZWM0IHYxID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAwLjUgKSwgeSApICk7XG5cdFx0XHR2ZWM0IHYyID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAxLjUgKSwgeSApICk7XG5cdFx0XHR2ZWM0IHYzID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAyLjUgKSwgeSApICk7XG5cdFx0XHR2ZWM0IHY0ID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAzLjUgKSwgeSApICk7XG5cdFx0XHRtYXQ0IGJvbmUgPSBtYXQ0KCB2MSwgdjIsIHYzLCB2NCApO1xuXHRcdFx0cmV0dXJuIGJvbmU7XG5cdFx0fVxuXHQjZWxzZVxuXHRcdHVuaWZvcm0gbWF0NCBib25lTWF0cmljZXNbIE1BWF9CT05FUyBdO1xuXHRcdG1hdDQgZ2V0Qm9uZU1hdHJpeCggY29uc3QgaW4gZmxvYXQgaSApIHtcblx0XHRcdG1hdDQgYm9uZSA9IGJvbmVNYXRyaWNlc1sgaW50KGkpIF07XG5cdFx0XHRyZXR1cm4gYm9uZTtcblx0XHR9XG5cdCNlbmRpZlxuI2VuZGlmIixza2lubmluZ192ZXJ0ZXg6IiNpZmRlZiBVU0VfU0tJTk5JTkdcblx0dmVjNCBza2luVmVydGV4ID0gYmluZE1hdHJpeCAqIHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTtcblx0dmVjNCBza2lubmVkID0gdmVjNCggMC4wICk7XG5cdHNraW5uZWQgKz0gYm9uZU1hdFggKiBza2luVmVydGV4ICogc2tpbldlaWdodC54O1xuXHRza2lubmVkICs9IGJvbmVNYXRZICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQueTtcblx0c2tpbm5lZCArPSBib25lTWF0WiAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lno7XG5cdHNraW5uZWQgKz0gYm9uZU1hdFcgKiBza2luVmVydGV4ICogc2tpbldlaWdodC53O1xuXHR0cmFuc2Zvcm1lZCA9ICggYmluZE1hdHJpeEludmVyc2UgKiBza2lubmVkICkueHl6O1xuI2VuZGlmIixza2lubm9ybWFsX3ZlcnRleDoiI2lmZGVmIFVTRV9TS0lOTklOR1xuXHRtYXQ0IHNraW5NYXRyaXggPSBtYXQ0KCAwLjAgKTtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LnggKiBib25lTWF0WDtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LnkgKiBib25lTWF0WTtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LnogKiBib25lTWF0Wjtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LncgKiBib25lTWF0Vztcblx0c2tpbk1hdHJpeCA9IGJpbmRNYXRyaXhJbnZlcnNlICogc2tpbk1hdHJpeCAqIGJpbmRNYXRyaXg7XG5cdG9iamVjdE5vcm1hbCA9IHZlYzQoIHNraW5NYXRyaXggKiB2ZWM0KCBvYmplY3ROb3JtYWwsIDAuMCApICkueHl6O1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHRvYmplY3RUYW5nZW50ID0gdmVjNCggc2tpbk1hdHJpeCAqIHZlYzQoIG9iamVjdFRhbmdlbnQsIDAuMCApICkueHl6O1xuXHQjZW5kaWZcbiNlbmRpZiIsc3BlY3VsYXJtYXBfZnJhZ21lbnQ6ImZsb2F0IHNwZWN1bGFyU3RyZW5ndGg7XG4jaWZkZWYgVVNFX1NQRUNVTEFSTUFQXG5cdHZlYzQgdGV4ZWxTcGVjdWxhciA9IHRleHR1cmUyRCggc3BlY3VsYXJNYXAsIHZVdiApO1xuXHRzcGVjdWxhclN0cmVuZ3RoID0gdGV4ZWxTcGVjdWxhci5yO1xuI2Vsc2Vcblx0c3BlY3VsYXJTdHJlbmd0aCA9IDEuMDtcbiNlbmRpZiIsc3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9TUEVDVUxBUk1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBzcGVjdWxhck1hcDtcbiNlbmRpZiIsdG9uZW1hcHBpbmdfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBUT05FX01BUFBJTkcgKVxuXHRnbF9GcmFnQ29sb3IucmdiID0gdG9uZU1hcHBpbmcoIGdsX0ZyYWdDb2xvci5yZ2IgKTtcbiNlbmRpZiIsdG9uZW1hcHBpbmdfcGFyc19mcmFnbWVudDoiI2lmbmRlZiBzYXR1cmF0ZVxuI2RlZmluZSBzYXR1cmF0ZShhKSBjbGFtcCggYSwgMC4wLCAxLjAgKVxuI2VuZGlmXG51bmlmb3JtIGZsb2F0IHRvbmVNYXBwaW5nRXhwb3N1cmU7XG52ZWMzIExpbmVhclRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRyZXR1cm4gdG9uZU1hcHBpbmdFeHBvc3VyZSAqIGNvbG9yO1xufVxudmVjMyBSZWluaGFyZFRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRjb2xvciAqPSB0b25lTWFwcGluZ0V4cG9zdXJlO1xuXHRyZXR1cm4gc2F0dXJhdGUoIGNvbG9yIC8gKCB2ZWMzKCAxLjAgKSArIGNvbG9yICkgKTtcbn1cbnZlYzMgT3B0aW1pemVkQ2luZW9uVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7XG5cdGNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmU7XG5cdGNvbG9yID0gbWF4KCB2ZWMzKCAwLjAgKSwgY29sb3IgLSAwLjAwNCApO1xuXHRyZXR1cm4gcG93KCAoIGNvbG9yICogKCA2LjIgKiBjb2xvciArIDAuNSApICkgLyAoIGNvbG9yICogKCA2LjIgKiBjb2xvciArIDEuNyApICsgMC4wNiApLCB2ZWMzKCAyLjIgKSApO1xufVxudmVjMyBSUlRBbmRPRFRGaXQoIHZlYzMgdiApIHtcblx0dmVjMyBhID0gdiAqICggdiArIDAuMDI0NTc4NiApIC0gMC4wMDAwOTA1Mzc7XG5cdHZlYzMgYiA9IHYgKiAoIDAuOTgzNzI5ICogdiArIDAuNDMyOTUxMCApICsgMC4yMzgwODE7XG5cdHJldHVybiBhIC8gYjtcbn1cbnZlYzMgQUNFU0ZpbG1pY1RvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRjb25zdCBtYXQzIEFDRVNJbnB1dE1hdCA9IG1hdDMoXG5cdFx0dmVjMyggMC41OTcxOSwgMC4wNzYwMCwgMC4wMjg0MCApLFx0XHR2ZWMzKCAwLjM1NDU4LCAwLjkwODM0LCAwLjEzMzgzICksXG5cdFx0dmVjMyggMC4wNDgyMywgMC4wMTU2NiwgMC44Mzc3NyApXG5cdCk7XG5cdGNvbnN0IG1hdDMgQUNFU091dHB1dE1hdCA9IG1hdDMoXG5cdFx0dmVjMyggIDEuNjA0NzUsIC0wLjEwMjA4LCAtMC4wMDMyNyApLFx0XHR2ZWMzKCAtMC41MzEwOCwgIDEuMTA4MTMsIC0wLjA3Mjc2ICksXG5cdFx0dmVjMyggLTAuMDczNjcsIC0wLjAwNjA1LCAgMS4wNzYwMiApXG5cdCk7XG5cdGNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmUgLyAwLjY7XG5cdGNvbG9yID0gQUNFU0lucHV0TWF0ICogY29sb3I7XG5cdGNvbG9yID0gUlJUQW5kT0RURml0KCBjb2xvciApO1xuXHRjb2xvciA9IEFDRVNPdXRwdXRNYXQgKiBjb2xvcjtcblx0cmV0dXJuIHNhdHVyYXRlKCBjb2xvciApO1xufVxudmVjMyBDdXN0b21Ub25lTWFwcGluZyggdmVjMyBjb2xvciApIHsgcmV0dXJuIGNvbG9yOyB9Iix0cmFuc21pc3Npb25fZnJhZ21lbnQ6IiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5cdGZsb2F0IHRyYW5zbWlzc2lvbkZhY3RvciA9IHRyYW5zbWlzc2lvbjtcblx0ZmxvYXQgdGhpY2tuZXNzRmFjdG9yID0gdGhpY2tuZXNzO1xuXHQjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTk1BUFxuXHRcdHRyYW5zbWlzc2lvbkZhY3RvciAqPSB0ZXh0dXJlMkQoIHRyYW5zbWlzc2lvbk1hcCwgdlV2ICkucjtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfVEhJQ0tORVNTTUFQXG5cdFx0dGhpY2tuZXNzRmFjdG9yICo9IHRleHR1cmUyRCggdGhpY2tuZXNzTWFwLCB2VXYgKS5nO1xuXHQjZW5kaWZcblx0dmVjMyBwb3MgPSB2V29ybGRQb3NpdGlvbi54eXogLyB2V29ybGRQb3NpdGlvbi53O1xuXHR2ZWMzIHYgPSBub3JtYWxpemUoIGNhbWVyYVBvc2l0aW9uIC0gcG9zICk7XG5cdHZlYzMgbiA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIG5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRmbG9hdCBpb3IgPSAoIDEuMCArIDAuNCAqIHJlZmxlY3Rpdml0eSApIC8gKCAxLjAgLSAwLjQgKiByZWZsZWN0aXZpdHkgKTtcblx0dmVjMyB0cmFuc21pc3Npb24gPSB0cmFuc21pc3Npb25GYWN0b3IgKiBnZXRJQkxWb2x1bWVSZWZyYWN0aW9uKFxuXHRcdG4sIHYsIHJvdWdobmVzc0ZhY3RvciwgbWF0ZXJpYWwuZGlmZnVzZUNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLFxuXHRcdHBvcywgbW9kZWxNYXRyaXgsIHZpZXdNYXRyaXgsIHByb2plY3Rpb25NYXRyaXgsIGlvciwgdGhpY2tuZXNzRmFjdG9yLFxuXHRcdGF0dGVudWF0aW9uVGludCwgYXR0ZW51YXRpb25EaXN0YW5jZSApO1xuXHR0b3RhbERpZmZ1c2UgPSBtaXgoIHRvdGFsRGlmZnVzZSwgdHJhbnNtaXNzaW9uLCB0cmFuc21pc3Npb25GYWN0b3IgKTtcbiNlbmRpZiIsdHJhbnNtaXNzaW9uX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5cdCNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OTUFQXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgdHJhbnNtaXNzaW9uTWFwO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9USElDS05FU1NNQVBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCB0aGlja25lc3NNYXA7XG5cdCNlbmRpZlxuXHR1bmlmb3JtIHZlYzIgdHJhbnNtaXNzaW9uU2FtcGxlclNpemU7XG5cdHVuaWZvcm0gc2FtcGxlcjJEIHRyYW5zbWlzc2lvblNhbXBsZXJNYXA7XG5cdHVuaWZvcm0gbWF0NCBtb2RlbE1hdHJpeDtcblx0dW5pZm9ybSBtYXQ0IHByb2plY3Rpb25NYXRyaXg7XG5cdHZhcnlpbmcgdmVjNCB2V29ybGRQb3NpdGlvbjtcblx0dmVjMyBnZXRWb2x1bWVUcmFuc21pc3Npb25SYXkodmVjMyBuLCB2ZWMzIHYsIGZsb2F0IHRoaWNrbmVzcywgZmxvYXQgaW9yLCBtYXQ0IG1vZGVsTWF0cml4KSB7XG5cdFx0dmVjMyByZWZyYWN0aW9uVmVjdG9yID0gcmVmcmFjdCgtdiwgbm9ybWFsaXplKG4pLCAxLjAgLyBpb3IpO1xuXHRcdHZlYzMgbW9kZWxTY2FsZTtcblx0XHRtb2RlbFNjYWxlLnggPSBsZW5ndGgodmVjMyhtb2RlbE1hdHJpeFswXS54eXopKTtcblx0XHRtb2RlbFNjYWxlLnkgPSBsZW5ndGgodmVjMyhtb2RlbE1hdHJpeFsxXS54eXopKTtcblx0XHRtb2RlbFNjYWxlLnogPSBsZW5ndGgodmVjMyhtb2RlbE1hdHJpeFsyXS54eXopKTtcblx0XHRyZXR1cm4gbm9ybWFsaXplKHJlZnJhY3Rpb25WZWN0b3IpICogdGhpY2tuZXNzICogbW9kZWxTY2FsZTtcblx0fVxuXHRmbG9hdCBhcHBseUlvclRvUm91Z2huZXNzKGZsb2F0IHJvdWdobmVzcywgZmxvYXQgaW9yKSB7XG5cdFx0cmV0dXJuIHJvdWdobmVzcyAqIGNsYW1wKGlvciAqIDIuMCAtIDIuMCwgMC4wLCAxLjApO1xuXHR9XG5cdHZlYzMgZ2V0VHJhbnNtaXNzaW9uU2FtcGxlKHZlYzIgZnJhZ0Nvb3JkLCBmbG9hdCByb3VnaG5lc3MsIGZsb2F0IGlvcikge1xuXHRcdGZsb2F0IGZyYW1lYnVmZmVyTG9kID0gbG9nMih0cmFuc21pc3Npb25TYW1wbGVyU2l6ZS54KSAqIGFwcGx5SW9yVG9Sb3VnaG5lc3Mocm91Z2huZXNzLCBpb3IpO1xuXHRcdHJldHVybiB0ZXh0dXJlMkRMb2RFWFQodHJhbnNtaXNzaW9uU2FtcGxlck1hcCwgZnJhZ0Nvb3JkLnh5LCBmcmFtZWJ1ZmZlckxvZCkucmdiO1xuXHR9XG5cdHZlYzMgYXBwbHlWb2x1bWVBdHRlbnVhdGlvbih2ZWMzIHJhZGlhbmNlLCBmbG9hdCB0cmFuc21pc3Npb25EaXN0YW5jZSwgdmVjMyBhdHRlbnVhdGlvbkNvbG9yLCBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlKSB7XG5cdFx0aWYgKGF0dGVudWF0aW9uRGlzdGFuY2UgPT0gMC4wKSB7XG5cdFx0XHRyZXR1cm4gcmFkaWFuY2U7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZlYzMgYXR0ZW51YXRpb25Db2VmZmljaWVudCA9IC1sb2coYXR0ZW51YXRpb25Db2xvcikgLyBhdHRlbnVhdGlvbkRpc3RhbmNlO1xuXHRcdFx0dmVjMyB0cmFuc21pdHRhbmNlID0gZXhwKC1hdHRlbnVhdGlvbkNvZWZmaWNpZW50ICogdHJhbnNtaXNzaW9uRGlzdGFuY2UpO1x0XHRcdHJldHVybiB0cmFuc21pdHRhbmNlICogcmFkaWFuY2U7XG5cdFx0fVxuXHR9XG5cdHZlYzMgZ2V0SUJMVm9sdW1lUmVmcmFjdGlvbih2ZWMzIG4sIHZlYzMgdiwgZmxvYXQgcGVyY2VwdHVhbFJvdWdobmVzcywgdmVjMyBiYXNlQ29sb3IsIHZlYzMgc3BlY3VsYXJDb2xvcixcblx0XHR2ZWMzIHBvc2l0aW9uLCBtYXQ0IG1vZGVsTWF0cml4LCBtYXQ0IHZpZXdNYXRyaXgsIG1hdDQgcHJvak1hdHJpeCwgZmxvYXQgaW9yLCBmbG9hdCB0aGlja25lc3MsXG5cdFx0dmVjMyBhdHRlbnVhdGlvbkNvbG9yLCBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlKSB7XG5cdFx0dmVjMyB0cmFuc21pc3Npb25SYXkgPSBnZXRWb2x1bWVUcmFuc21pc3Npb25SYXkobiwgdiwgdGhpY2tuZXNzLCBpb3IsIG1vZGVsTWF0cml4KTtcblx0XHR2ZWMzIHJlZnJhY3RlZFJheUV4aXQgPSBwb3NpdGlvbiArIHRyYW5zbWlzc2lvblJheTtcblx0XHR2ZWM0IG5kY1BvcyA9IHByb2pNYXRyaXggKiB2aWV3TWF0cml4ICogdmVjNChyZWZyYWN0ZWRSYXlFeGl0LCAxLjApO1xuXHRcdHZlYzIgcmVmcmFjdGlvbkNvb3JkcyA9IG5kY1Bvcy54eSAvIG5kY1Bvcy53O1xuXHRcdHJlZnJhY3Rpb25Db29yZHMgKz0gMS4wO1xuXHRcdHJlZnJhY3Rpb25Db29yZHMgLz0gMi4wO1xuXHRcdHZlYzMgdHJhbnNtaXR0ZWRMaWdodCA9IGdldFRyYW5zbWlzc2lvblNhbXBsZShyZWZyYWN0aW9uQ29vcmRzLCBwZXJjZXB0dWFsUm91Z2huZXNzLCBpb3IpO1xuXHRcdHZlYzMgYXR0ZW51YXRlZENvbG9yID0gYXBwbHlWb2x1bWVBdHRlbnVhdGlvbih0cmFuc21pdHRlZExpZ2h0LCBsZW5ndGgodHJhbnNtaXNzaW9uUmF5KSwgYXR0ZW51YXRpb25Db2xvciwgYXR0ZW51YXRpb25EaXN0YW5jZSk7XG5cdFx0cmV0dXJuICgxLjAgLSBzcGVjdWxhckNvbG9yKSAqIGF0dGVudWF0ZWRDb2xvciAqIGJhc2VDb2xvcjtcblx0fVxuI2VuZGlmIix1dl9wYXJzX2ZyYWdtZW50OiIjaWYgKCBkZWZpbmVkKCBVU0VfVVYgKSAmJiAhIGRlZmluZWQoIFVWU19WRVJURVhfT05MWSApIClcblx0dmFyeWluZyB2ZWMyIHZVdjtcbiNlbmRpZiIsdXZfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfVVZcblx0I2lmZGVmIFVWU19WRVJURVhfT05MWVxuXHRcdHZlYzIgdlV2O1xuXHQjZWxzZVxuXHRcdHZhcnlpbmcgdmVjMiB2VXY7XG5cdCNlbmRpZlxuXHR1bmlmb3JtIG1hdDMgdXZUcmFuc2Zvcm07XG4jZW5kaWYiLHV2X3ZlcnRleDoiI2lmZGVmIFVTRV9VVlxuXHR2VXYgPSAoIHV2VHJhbnNmb3JtICogdmVjMyggdXYsIDEgKSApLnh5O1xuI2VuZGlmIix1djJfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9MSUdIVE1BUCApIHx8IGRlZmluZWQoIFVTRV9BT01BUCApXG5cdHZhcnlpbmcgdmVjMiB2VXYyO1xuI2VuZGlmIix1djJfcGFyc192ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfTElHSFRNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQU9NQVAgKVxuXHRhdHRyaWJ1dGUgdmVjMiB1djI7XG5cdHZhcnlpbmcgdmVjMiB2VXYyO1xuXHR1bmlmb3JtIG1hdDMgdXYyVHJhbnNmb3JtO1xuI2VuZGlmIix1djJfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0xJR0hUTUFQICkgfHwgZGVmaW5lZCggVVNFX0FPTUFQIClcblx0dlV2MiA9ICggdXYyVHJhbnNmb3JtICogdmVjMyggdXYyLCAxICkgKS54eTtcbiNlbmRpZiIsd29ybGRwb3NfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApIHx8IGRlZmluZWQoIERJU1RBTkNFICkgfHwgZGVmaW5lZCAoIFVTRV9TSEFET1dNQVAgKSB8fCBkZWZpbmVkICggVVNFX1RSQU5TTUlTU0lPTiApXG5cdHZlYzQgd29ybGRQb3NpdGlvbiA9IHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTtcblx0I2lmZGVmIFVTRV9JTlNUQU5DSU5HXG5cdFx0d29ybGRQb3NpdGlvbiA9IGluc3RhbmNlTWF0cml4ICogd29ybGRQb3NpdGlvbjtcblx0I2VuZGlmXG5cdHdvcmxkUG9zaXRpb24gPSBtb2RlbE1hdHJpeCAqIHdvcmxkUG9zaXRpb247XG4jZW5kaWYiLGJhY2tncm91bmRfZnJhZzoidW5pZm9ybSBzYW1wbGVyMkQgdDJEO1xudmFyeWluZyB2ZWMyIHZVdjtcbnZvaWQgbWFpbigpIHtcblx0dmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRCggdDJELCB2VXYgKTtcblx0Z2xfRnJhZ0NvbG9yID0gbWFwVGV4ZWxUb0xpbmVhciggdGV4Q29sb3IgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufSIsYmFja2dyb3VuZF92ZXJ0OiJ2YXJ5aW5nIHZlYzIgdlV2O1xudW5pZm9ybSBtYXQzIHV2VHJhbnNmb3JtO1xudm9pZCBtYWluKCkge1xuXHR2VXYgPSAoIHV2VHJhbnNmb3JtICogdmVjMyggdXYsIDEgKSApLnh5O1xuXHRnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLnh5LCAxLjAsIDEuMCApO1xufSIsY3ViZV9mcmFnOiIjaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PlxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdHZlYzMgdlJlZmxlY3QgPSB2V29ybGREaXJlY3Rpb247XG5cdCNpbmNsdWRlIDxlbnZtYXBfZnJhZ21lbnQ+XG5cdGdsX0ZyYWdDb2xvciA9IGVudkNvbG9yO1xuXHRnbF9GcmFnQ29sb3IuYSAqPSBvcGFjaXR5O1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG59IixjdWJlX3ZlcnQ6InZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxudm9pZCBtYWluKCkge1xuXHR2V29ybGREaXJlY3Rpb24gPSB0cmFuc2Zvcm1EaXJlY3Rpb24oIHBvc2l0aW9uLCBtb2RlbE1hdHJpeCApO1xuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdGdsX1Bvc2l0aW9uLnogPSBnbF9Qb3NpdGlvbi53O1xufSIsZGVwdGhfZnJhZzoiI2lmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMFxuXHR1bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZhcnlpbmcgdmVjMiB2SGlnaFByZWNpc2lvblpXO1xudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIDEuMCApO1xuXHQjaWYgREVQVEhfUEFDS0lORyA9PSAzMjAwXG5cdFx0ZGlmZnVzZUNvbG9yLmEgPSBvcGFjaXR5O1xuXHQjZW5kaWZcblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdGZsb2F0IGZyYWdDb29yZFogPSAwLjUgKiB2SGlnaFByZWNpc2lvblpXWzBdIC8gdkhpZ2hQcmVjaXNpb25aV1sxXSArIDAuNTtcblx0I2lmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMFxuXHRcdGdsX0ZyYWdDb2xvciA9IHZlYzQoIHZlYzMoIDEuMCAtIGZyYWdDb29yZFogKSwgb3BhY2l0eSApO1xuXHQjZWxpZiBERVBUSF9QQUNLSU5HID09IDMyMDFcblx0XHRnbF9GcmFnQ29sb3IgPSBwYWNrRGVwdGhUb1JHQkEoIGZyYWdDb29yZFogKTtcblx0I2VuZGlmXG59IixkZXB0aF92ZXJ0OiIjaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52YXJ5aW5nIHZlYzIgdkhpZ2hQcmVjaXNpb25aVztcbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVBcblx0XHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZIaWdoUHJlY2lzaW9uWlcgPSBnbF9Qb3NpdGlvbi56dztcbn0iLGRpc3RhbmNlUkdCQV9mcmFnOiIjZGVmaW5lIERJU1RBTkNFXG51bmlmb3JtIHZlYzMgcmVmZXJlbmNlUG9zaXRpb247XG51bmlmb3JtIGZsb2F0IG5lYXJEaXN0YW5jZTtcbnVuaWZvcm0gZmxvYXQgZmFyRGlzdGFuY2U7XG52YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluICgpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCAxLjAgKTtcblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHRmbG9hdCBkaXN0ID0gbGVuZ3RoKCB2V29ybGRQb3NpdGlvbiAtIHJlZmVyZW5jZVBvc2l0aW9uICk7XG5cdGRpc3QgPSAoIGRpc3QgLSBuZWFyRGlzdGFuY2UgKSAvICggZmFyRGlzdGFuY2UgLSBuZWFyRGlzdGFuY2UgKTtcblx0ZGlzdCA9IHNhdHVyYXRlKCBkaXN0ICk7XG5cdGdsX0ZyYWdDb2xvciA9IHBhY2tEZXB0aFRvUkdCQSggZGlzdCApO1xufSIsZGlzdGFuY2VSR0JBX3ZlcnQ6IiNkZWZpbmUgRElTVEFOQ0VcbnZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVBcblx0XHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbi54eXo7XG59IixlcXVpcmVjdF9mcmFnOiJ1bmlmb3JtIHNhbXBsZXIyRCB0RXF1aXJlY3Q7XG52YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbnZvaWQgbWFpbigpIHtcblx0dmVjMyBkaXJlY3Rpb24gPSBub3JtYWxpemUoIHZXb3JsZERpcmVjdGlvbiApO1xuXHR2ZWMyIHNhbXBsZVVWID0gZXF1aXJlY3RVdiggZGlyZWN0aW9uICk7XG5cdHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQoIHRFcXVpcmVjdCwgc2FtcGxlVVYgKTtcblx0Z2xfRnJhZ0NvbG9yID0gbWFwVGV4ZWxUb0xpbmVhciggdGV4Q29sb3IgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufSIsZXF1aXJlY3RfdmVydDoidmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG52b2lkIG1haW4oKSB7XG5cdHZXb3JsZERpcmVjdGlvbiA9IHRyYW5zZm9ybURpcmVjdGlvbiggcG9zaXRpb24sIG1vZGVsTWF0cml4ICk7XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cbn0iLGxpbmVkYXNoZWRfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG51bmlmb3JtIGZsb2F0IGRhc2hTaXplO1xudW5pZm9ybSBmbG9hdCB0b3RhbFNpemU7XG52YXJ5aW5nIGZsb2F0IHZMaW5lRGlzdGFuY2U7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0aWYgKCBtb2QoIHZMaW5lRGlzdGFuY2UsIHRvdGFsU2l6ZSApID4gZGFzaFNpemUgKSB7XG5cdFx0ZGlzY2FyZDtcblx0fVxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTtcblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHRvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cbn0iLGxpbmVkYXNoZWRfdmVydDoidW5pZm9ybSBmbG9hdCBzY2FsZTtcbmF0dHJpYnV0ZSBmbG9hdCBsaW5lRGlzdGFuY2U7XG52YXJ5aW5nIGZsb2F0IHZMaW5lRGlzdGFuY2U7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdHZMaW5lRGlzdGFuY2UgPSBzY2FsZSAqIGxpbmVEaXN0YW5jZTtcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixtZXNoYmFzaWNfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxzcGVjdWxhcm1hcF9mcmFnbWVudD5cblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0I2lmZGVmIFVTRV9MSUdIVE1BUFxuXHRcblx0XHR2ZWM0IGxpZ2h0TWFwVGV4ZWw9IHRleHR1cmUyRCggbGlnaHRNYXAsIHZVdjIgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gbGlnaHRNYXBUZXhlbFRvTGluZWFyKCBsaWdodE1hcFRleGVsICkucmdiICogbGlnaHRNYXBJbnRlbnNpdHk7XG5cdCNlbHNlXG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IHZlYzMoIDEuMCApO1xuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKj0gZGlmZnVzZUNvbG9yLnJnYjtcblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlO1xuXHQjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PlxuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaGJhc2ljX3ZlcnQ6IiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8dXYyX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2lmIGRlZmluZWQgKCBVU0VfRU5WTUFQICkgfHwgZGVmaW5lZCAoIFVTRV9TS0lOTklORyApXG5cdFx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxlbnZtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2hsYW1iZXJ0X2ZyYWc6InVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSB2ZWMzIGVtaXNzaXZlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudmFyeWluZyB2ZWMzIHZMaWdodEZyb250O1xudmFyeWluZyB2ZWMzIHZJbmRpcmVjdEZyb250O1xuI2lmZGVmIERPVUJMRV9TSURFRFxuXHR2YXJ5aW5nIHZlYzMgdkxpZ2h0QmFjaztcblx0dmFyeWluZyB2ZWMzIHZJbmRpcmVjdEJhY2s7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hc2tfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzcGVjdWxhcm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8c3BlY3VsYXJtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD5cblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSAoIGdsX0Zyb250RmFjaW5nICkgPyB2SW5kaXJlY3RGcm9udCA6IHZJbmRpcmVjdEJhY2s7XG5cdCNlbHNlXG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IHZJbmRpcmVjdEZyb250O1xuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGxpZ2h0bWFwX2ZyYWdtZW50PlxuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKj0gQlJERl9EaWZmdXNlX0xhbWJlcnQoIGRpZmZ1c2VDb2xvci5yZ2IgKTtcblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgPSAoIGdsX0Zyb250RmFjaW5nICkgPyB2TGlnaHRGcm9udCA6IHZMaWdodEJhY2s7XG5cdCNlbHNlXG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSA9IHZMaWdodEZyb250O1xuXHQjZW5kaWZcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSAqPSBCUkRGX0RpZmZ1c2VfTGFtYmVydCggZGlmZnVzZUNvbG9yLnJnYiApICogZ2V0U2hhZG93TWFzaygpO1xuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdCNpbmNsdWRlIDxlbnZtYXBfZnJhZ21lbnQ+XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNobGFtYmVydF92ZXJ0OiIjZGVmaW5lIExBTUJFUlRcbnZhcnlpbmcgdmVjMyB2TGlnaHRGcm9udDtcbnZhcnlpbmcgdmVjMyB2SW5kaXJlY3RGcm9udDtcbiNpZmRlZiBET1VCTEVfU0lERURcblx0dmFyeWluZyB2ZWMzIHZMaWdodEJhY2s7XG5cdHZhcnlpbmcgdmVjMyB2SW5kaXJlY3RCYWNrO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsaWdodHNfbGFtYmVydF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2htYXRjYXBfZnJhZzoiI2RlZmluZSBNQVRDQVBcbnVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudW5pZm9ybSBzYW1wbGVyMkQgbWF0Y2FwO1xudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHR2ZWMzIHZpZXdEaXIgPSBub3JtYWxpemUoIHZWaWV3UG9zaXRpb24gKTtcblx0dmVjMyB4ID0gbm9ybWFsaXplKCB2ZWMzKCB2aWV3RGlyLnosIDAuMCwgLSB2aWV3RGlyLnggKSApO1xuXHR2ZWMzIHkgPSBjcm9zcyggdmlld0RpciwgeCApO1xuXHR2ZWMyIHV2ID0gdmVjMiggZG90KCB4LCBub3JtYWwgKSwgZG90KCB5LCBub3JtYWwgKSApICogMC40OTUgKyAwLjU7XG5cdCNpZmRlZiBVU0VfTUFUQ0FQXG5cdFx0dmVjNCBtYXRjYXBDb2xvciA9IHRleHR1cmUyRCggbWF0Y2FwLCB1diApO1xuXHRcdG1hdGNhcENvbG9yID0gbWF0Y2FwVGV4ZWxUb0xpbmVhciggbWF0Y2FwQ29sb3IgKTtcblx0I2Vsc2Vcblx0XHR2ZWM0IG1hdGNhcENvbG9yID0gdmVjNCggMS4wICk7XG5cdCNlbmRpZlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSBkaWZmdXNlQ29sb3IucmdiICogbWF0Y2FwQ29sb3IucmdiO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaG1hdGNhcF92ZXJ0OiIjZGVmaW5lIE1BVENBUFxudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2lmbmRlZiBGTEFUX1NIQURFRFxuXHRcdHZOb3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG5cdFx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0XHR2VGFuZ2VudCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWRUYW5nZW50ICk7XG5cdFx0XHR2Qml0YW5nZW50ID0gbm9ybWFsaXplKCBjcm9zcyggdk5vcm1hbCwgdlRhbmdlbnQgKSAqIHRhbmdlbnQudyApO1xuXHRcdCNlbmRpZlxuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcbn0iLG1lc2h0b29uX2ZyYWc6IiNkZWZpbmUgVE9PTlxudW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIHZlYzMgZW1pc3NpdmU7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Z3JhZGllbnRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxsaWdodHNfdG9vbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0dmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfdG9vbl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2VuZD5cblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaHRvb25fdmVydDoiI2RlZmluZSBUT09OXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaHBob25nX2ZyYWc6IiNkZWZpbmUgUEhPTkdcbnVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSB2ZWMzIGVtaXNzaXZlO1xudW5pZm9ybSB2ZWMzIHNwZWN1bGFyO1xudW5pZm9ybSBmbG9hdCBzaGluaW5lc3M7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxsaWdodHNfcGhvbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0dmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPHNwZWN1bGFybWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c19waG9uZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2VuZD5cblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xuXHQjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PlxuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaHBob25nX3ZlcnQ6IiNkZWZpbmUgUEhPTkdcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2hwaHlzaWNhbF9mcmFnOiIjZGVmaW5lIFNUQU5EQVJEXG4jaWZkZWYgUEhZU0lDQUxcblx0I2RlZmluZSBSRUZMRUNUSVZJVFlcblx0I2RlZmluZSBDTEVBUkNPQVRcblx0I2RlZmluZSBTUEVDVUxBUlxuI2VuZGlmXG51bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gdmVjMyBlbWlzc2l2ZTtcbnVuaWZvcm0gZmxvYXQgcm91Z2huZXNzO1xudW5pZm9ybSBmbG9hdCBtZXRhbG5lc3M7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaWZkZWYgVVNFX1RSQU5TTUlTU0lPTlxuXHR1bmlmb3JtIGZsb2F0IHRyYW5zbWlzc2lvbjtcblx0dW5pZm9ybSBmbG9hdCB0aGlja25lc3M7XG5cdHVuaWZvcm0gZmxvYXQgYXR0ZW51YXRpb25EaXN0YW5jZTtcblx0dW5pZm9ybSB2ZWMzIGF0dGVudWF0aW9uVGludDtcbiNlbmRpZlxuI2lmZGVmIFJFRkxFQ1RJVklUWVxuXHR1bmlmb3JtIGZsb2F0IHJlZmxlY3Rpdml0eTtcbiNlbmRpZlxuI2lmZGVmIFNQRUNVTEFSXG5cdHVuaWZvcm0gZmxvYXQgc3BlY3VsYXJJbnRlbnNpdHk7XG5cdHVuaWZvcm0gdmVjMyBzcGVjdWxhclRpbnQ7XG5cdCNpZmRlZiBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBzcGVjdWxhckludGVuc2l0eU1hcDtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfU1BFQ1VMQVJUSU5UTUFQXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgc3BlY3VsYXJUaW50TWFwO1xuXHQjZW5kaWZcbiNlbmRpZlxuI2lmZGVmIENMRUFSQ09BVFxuXHR1bmlmb3JtIGZsb2F0IGNsZWFyY29hdDtcblx0dW5pZm9ybSBmbG9hdCBjbGVhcmNvYXRSb3VnaG5lc3M7XG4jZW5kaWZcbiNpZmRlZiBVU0VfU0hFRU5cblx0dW5pZm9ybSB2ZWMzIHNoZWVuO1xuI2VuZGlmXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDx0cmFuc21pc3Npb25fcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9waHlzaWNhbF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPGxpZ2h0c19waHlzaWNhbF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGVhcmNvYXRfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxyb3VnaG5lc3NtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtZXRhbG5lc3NtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0dmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPHJvdWdobmVzc21hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1ldGFsbmVzc21hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8Y2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPGNsZWFyY29hdF9ub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX3BoeXNpY2FsX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfZW5kPlxuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgdG90YWxEaWZmdXNlID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZTtcblx0dmVjMyB0b3RhbFNwZWN1bGFyID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyO1xuXHQjaW5jbHVkZSA8dHJhbnNtaXNzaW9uX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB0b3RhbERpZmZ1c2UgKyB0b3RhbFNwZWN1bGFyICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaHBoeXNpY2FsX3ZlcnQ6IiNkZWZpbmUgU1RBTkRBUkRcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmFyeWluZyB2ZWMzIHZUYW5nZW50O1xuXHRcdHZhcnlpbmcgdmVjMyB2Qml0YW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZlxuI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0dmFyeWluZyB2ZWM0IHZXb3JsZFBvc2l0aW9uO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dlRhbmdlbnQgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkVGFuZ2VudCApO1xuXHRcdHZCaXRhbmdlbnQgPSBub3JtYWxpemUoIGNyb3NzKCB2Tm9ybWFsLCB2VGFuZ2VudCApICogdGFuZ2VudC53ICk7XG5cdCNlbmRpZlxuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxuI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0dldvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uO1xuI2VuZGlmXG59Iixub3JtYWxfZnJhZzoiI2RlZmluZSBOT1JNQUxcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpZiBkZWZpbmVkKCBGTEFUX1NIQURFRCApIHx8IGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApXG5cdHZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2VuZGlmXG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggcGFja05vcm1hbFRvUkdCKCBub3JtYWwgKSwgb3BhY2l0eSApO1xufSIsbm9ybWFsX3ZlcnQ6IiNkZWZpbmUgTk9STUFMXG4jaWYgZGVmaW5lZCggRkxBVF9TSEFERUQgKSB8fCBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKVxuXHR2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNlbmRpZlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmFyeWluZyB2ZWMzIHZUYW5nZW50O1xuXHRcdHZhcnlpbmcgdmVjMyB2Qml0YW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dlRhbmdlbnQgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkVGFuZ2VudCApO1xuXHRcdHZCaXRhbmdlbnQgPSBub3JtYWxpemUoIGNyb3NzKCB2Tm9ybWFsLCB2VGFuZ2VudCApICogdGFuZ2VudC53ICk7XG5cdCNlbmRpZlxuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuI2lmIGRlZmluZWQoIEZMQVRfU0hBREVEICkgfHwgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIClcblx0dlZpZXdQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7XG4jZW5kaWZcbn0iLHBvaW50c19mcmFnOiJ1bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFydGljbGVfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTtcblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9wYXJ0aWNsZV9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHRvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cbn0iLHBvaW50c192ZXJ0OiJ1bmlmb3JtIGZsb2F0IHNpemU7XG51bmlmb3JtIGZsb2F0IHNjYWxlO1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdGdsX1BvaW50U2l6ZSA9IHNpemU7XG5cdCNpZmRlZiBVU0VfU0laRUFUVEVOVUFUSU9OXG5cdFx0Ym9vbCBpc1BlcnNwZWN0aXZlID0gaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApO1xuXHRcdGlmICggaXNQZXJzcGVjdGl2ZSApIGdsX1BvaW50U2l6ZSAqPSAoIHNjYWxlIC8gLSBtdlBvc2l0aW9uLnogKTtcblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLHNoYWRvd19mcmFnOiJ1bmlmb3JtIHZlYzMgY29sb3I7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFza19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSAqICggMS4wIC0gZ2V0U2hhZG93TWFzaygpICkgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxufSIsc2hhZG93X3ZlcnQ6IiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsc3ByaXRlX2ZyYWc6InVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gdmVjMyggMC4wICk7XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0b3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2I7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cbn0iLHNwcml0ZV92ZXJ0OiJ1bmlmb3JtIGZsb2F0IHJvdGF0aW9uO1xudW5pZm9ybSB2ZWMyIGNlbnRlcjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0dmVjNCBtdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVjNCggMC4wLCAwLjAsIDAuMCwgMS4wICk7XG5cdHZlYzIgc2NhbGU7XG5cdHNjYWxlLnggPSBsZW5ndGgoIHZlYzMoIG1vZGVsTWF0cml4WyAwIF0ueCwgbW9kZWxNYXRyaXhbIDAgXS55LCBtb2RlbE1hdHJpeFsgMCBdLnogKSApO1xuXHRzY2FsZS55ID0gbGVuZ3RoKCB2ZWMzKCBtb2RlbE1hdHJpeFsgMSBdLngsIG1vZGVsTWF0cml4WyAxIF0ueSwgbW9kZWxNYXRyaXhbIDEgXS56ICkgKTtcblx0I2lmbmRlZiBVU0VfU0laRUFUVEVOVUFUSU9OXG5cdFx0Ym9vbCBpc1BlcnNwZWN0aXZlID0gaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApO1xuXHRcdGlmICggaXNQZXJzcGVjdGl2ZSApIHNjYWxlICo9IC0gbXZQb3NpdGlvbi56O1xuXHQjZW5kaWZcblx0dmVjMiBhbGlnbmVkUG9zaXRpb24gPSAoIHBvc2l0aW9uLnh5IC0gKCBjZW50ZXIgLSB2ZWMyKCAwLjUgKSApICkgKiBzY2FsZTtcblx0dmVjMiByb3RhdGVkUG9zaXRpb247XG5cdHJvdGF0ZWRQb3NpdGlvbi54ID0gY29zKCByb3RhdGlvbiApICogYWxpZ25lZFBvc2l0aW9uLnggLSBzaW4oIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueTtcblx0cm90YXRlZFBvc2l0aW9uLnkgPSBzaW4oIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueCArIGNvcyggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi55O1xuXHRtdlBvc2l0aW9uLnh5ICs9IHJvdGF0ZWRQb3NpdGlvbjtcblx0Z2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSJ9LHpzdD17Y29tbW9uOntkaWZmdXNlOnt2YWx1ZTpuZXcgUnJ0KDE2Nzc3MjE1KX0sb3BhY2l0eTp7dmFsdWU6MX0sbWFwOnt2YWx1ZTpudWxsfSx1dlRyYW5zZm9ybTp7dmFsdWU6bmV3ICRpdH0sdXYyVHJhbnNmb3JtOnt2YWx1ZTpuZXcgJGl0fSxhbHBoYU1hcDp7dmFsdWU6bnVsbH19LHNwZWN1bGFybWFwOntzcGVjdWxhck1hcDp7dmFsdWU6bnVsbH19LGVudm1hcDp7ZW52TWFwOnt2YWx1ZTpudWxsfSxmbGlwRW52TWFwOnt2YWx1ZTotMX0scmVmbGVjdGl2aXR5Ont2YWx1ZToxfSxyZWZyYWN0aW9uUmF0aW86e3ZhbHVlOi45OH0sbWF4TWlwTGV2ZWw6e3ZhbHVlOjB9fSxhb21hcDp7YW9NYXA6e3ZhbHVlOm51bGx9LGFvTWFwSW50ZW5zaXR5Ont2YWx1ZToxfX0sbGlnaHRtYXA6e2xpZ2h0TWFwOnt2YWx1ZTpudWxsfSxsaWdodE1hcEludGVuc2l0eTp7dmFsdWU6MX19LGVtaXNzaXZlbWFwOntlbWlzc2l2ZU1hcDp7dmFsdWU6bnVsbH19LGJ1bXBtYXA6e2J1bXBNYXA6e3ZhbHVlOm51bGx9LGJ1bXBTY2FsZTp7dmFsdWU6MX19LG5vcm1hbG1hcDp7bm9ybWFsTWFwOnt2YWx1ZTpudWxsfSxub3JtYWxTY2FsZTp7dmFsdWU6bmV3IFFpdCgxLDEpfX0sZGlzcGxhY2VtZW50bWFwOntkaXNwbGFjZW1lbnRNYXA6e3ZhbHVlOm51bGx9LGRpc3BsYWNlbWVudFNjYWxlOnt2YWx1ZToxfSxkaXNwbGFjZW1lbnRCaWFzOnt2YWx1ZTowfX0scm91Z2huZXNzbWFwOntyb3VnaG5lc3NNYXA6e3ZhbHVlOm51bGx9fSxtZXRhbG5lc3NtYXA6e21ldGFsbmVzc01hcDp7dmFsdWU6bnVsbH19LGdyYWRpZW50bWFwOntncmFkaWVudE1hcDp7dmFsdWU6bnVsbH19LGZvZzp7Zm9nRGVuc2l0eTp7dmFsdWU6MjVlLTV9LGZvZ05lYXI6e3ZhbHVlOjF9LGZvZ0Zhcjp7dmFsdWU6MmUzfSxmb2dDb2xvcjp7dmFsdWU6bmV3IFJydCgxNjc3NzIxNSl9fSxsaWdodHM6e2FtYmllbnRMaWdodENvbG9yOnt2YWx1ZTpbXX0sbGlnaHRQcm9iZTp7dmFsdWU6W119LGRpcmVjdGlvbmFsTGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntkaXJlY3Rpb246e30sY29sb3I6e319fSxkaXJlY3Rpb25hbExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9fX0sZGlyZWN0aW9uYWxTaGFkb3dNYXA6e3ZhbHVlOltdfSxkaXJlY3Rpb25hbFNoYWRvd01hdHJpeDp7dmFsdWU6W119LHNwb3RMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2NvbG9yOnt9LHBvc2l0aW9uOnt9LGRpcmVjdGlvbjp7fSxkaXN0YW5jZTp7fSxjb25lQ29zOnt9LHBlbnVtYnJhQ29zOnt9LGRlY2F5Ont9fX0sc3BvdExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9fX0sc3BvdFNoYWRvd01hcDp7dmFsdWU6W119LHNwb3RTaGFkb3dNYXRyaXg6e3ZhbHVlOltdfSxwb2ludExpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7Y29sb3I6e30scG9zaXRpb246e30sZGVjYXk6e30sZGlzdGFuY2U6e319fSxwb2ludExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9LHNoYWRvd0NhbWVyYU5lYXI6e30sc2hhZG93Q2FtZXJhRmFyOnt9fX0scG9pbnRTaGFkb3dNYXA6e3ZhbHVlOltdfSxwb2ludFNoYWRvd01hdHJpeDp7dmFsdWU6W119LGhlbWlzcGhlcmVMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2RpcmVjdGlvbjp7fSxza3lDb2xvcjp7fSxncm91bmRDb2xvcjp7fX19LHJlY3RBcmVhTGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntjb2xvcjp7fSxwb3NpdGlvbjp7fSx3aWR0aDp7fSxoZWlnaHQ6e319fSxsdGNfMTp7dmFsdWU6bnVsbH0sbHRjXzI6e3ZhbHVlOm51bGx9fSxwb2ludHM6e2RpZmZ1c2U6e3ZhbHVlOm5ldyBScnQoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxzaXplOnt2YWx1ZToxfSxzY2FsZTp7dmFsdWU6MX0sbWFwOnt2YWx1ZTpudWxsfSxhbHBoYU1hcDp7dmFsdWU6bnVsbH0sdXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyAkaXR9fSxzcHJpdGU6e2RpZmZ1c2U6e3ZhbHVlOm5ldyBScnQoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxjZW50ZXI6e3ZhbHVlOm5ldyBRaXQoLjUsLjUpfSxyb3RhdGlvbjp7dmFsdWU6MH0sbWFwOnt2YWx1ZTpudWxsfSxhbHBoYU1hcDp7dmFsdWU6bnVsbH0sdXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyAkaXR9fX0sSXN0PXtiYXNpYzp7dW5pZm9ybXM6Z3N0KFt6c3QuY29tbW9uLHpzdC5zcGVjdWxhcm1hcCx6c3QuZW52bWFwLHpzdC5hb21hcCx6c3QubGlnaHRtYXAsenN0LmZvZ10pLHZlcnRleFNoYWRlcjpOc3QubWVzaGJhc2ljX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0Lm1lc2hiYXNpY19mcmFnfSxsYW1iZXJ0Ont1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LnNwZWN1bGFybWFwLHpzdC5lbnZtYXAsenN0LmFvbWFwLHpzdC5saWdodG1hcCx6c3QuZW1pc3NpdmVtYXAsenN0LmZvZyx6c3QubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3IFJydCgwKX19XSksdmVydGV4U2hhZGVyOk5zdC5tZXNobGFtYmVydF92ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5tZXNobGFtYmVydF9mcmFnfSxwaG9uZzp7dW5pZm9ybXM6Z3N0KFt6c3QuY29tbW9uLHpzdC5zcGVjdWxhcm1hcCx6c3QuZW52bWFwLHpzdC5hb21hcCx6c3QubGlnaHRtYXAsenN0LmVtaXNzaXZlbWFwLHpzdC5idW1wbWFwLHpzdC5ub3JtYWxtYXAsenN0LmRpc3BsYWNlbWVudG1hcCx6c3QuZm9nLHpzdC5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgUnJ0KDApfSxzcGVjdWxhcjp7dmFsdWU6bmV3IFJydCgxMTE4NDgxKX0sc2hpbmluZXNzOnt2YWx1ZTozMH19XSksdmVydGV4U2hhZGVyOk5zdC5tZXNocGhvbmdfdmVydCxmcmFnbWVudFNoYWRlcjpOc3QubWVzaHBob25nX2ZyYWd9LHN0YW5kYXJkOnt1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LmVudm1hcCx6c3QuYW9tYXAsenN0LmxpZ2h0bWFwLHpzdC5lbWlzc2l2ZW1hcCx6c3QuYnVtcG1hcCx6c3Qubm9ybWFsbWFwLHpzdC5kaXNwbGFjZW1lbnRtYXAsenN0LnJvdWdobmVzc21hcCx6c3QubWV0YWxuZXNzbWFwLHpzdC5mb2csenN0LmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyBScnQoMCl9LHJvdWdobmVzczp7dmFsdWU6MX0sbWV0YWxuZXNzOnt2YWx1ZTowfSxlbnZNYXBJbnRlbnNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjpOc3QubWVzaHBoeXNpY2FsX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0Lm1lc2hwaHlzaWNhbF9mcmFnfSx0b29uOnt1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LmFvbWFwLHpzdC5saWdodG1hcCx6c3QuZW1pc3NpdmVtYXAsenN0LmJ1bXBtYXAsenN0Lm5vcm1hbG1hcCx6c3QuZGlzcGxhY2VtZW50bWFwLHpzdC5ncmFkaWVudG1hcCx6c3QuZm9nLHpzdC5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgUnJ0KDApfX1dKSx2ZXJ0ZXhTaGFkZXI6TnN0Lm1lc2h0b29uX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0Lm1lc2h0b29uX2ZyYWd9LG1hdGNhcDp7dW5pZm9ybXM6Z3N0KFt6c3QuY29tbW9uLHpzdC5idW1wbWFwLHpzdC5ub3JtYWxtYXAsenN0LmRpc3BsYWNlbWVudG1hcCx6c3QuZm9nLHttYXRjYXA6e3ZhbHVlOm51bGx9fV0pLHZlcnRleFNoYWRlcjpOc3QubWVzaG1hdGNhcF92ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5tZXNobWF0Y2FwX2ZyYWd9LHBvaW50czp7dW5pZm9ybXM6Z3N0KFt6c3QucG9pbnRzLHpzdC5mb2ddKSx2ZXJ0ZXhTaGFkZXI6TnN0LnBvaW50c192ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5wb2ludHNfZnJhZ30sZGFzaGVkOnt1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LmZvZyx7c2NhbGU6e3ZhbHVlOjF9LGRhc2hTaXplOnt2YWx1ZToxfSx0b3RhbFNpemU6e3ZhbHVlOjJ9fV0pLHZlcnRleFNoYWRlcjpOc3QubGluZWRhc2hlZF92ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5saW5lZGFzaGVkX2ZyYWd9LGRlcHRoOnt1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LmRpc3BsYWNlbWVudG1hcF0pLHZlcnRleFNoYWRlcjpOc3QuZGVwdGhfdmVydCxmcmFnbWVudFNoYWRlcjpOc3QuZGVwdGhfZnJhZ30sbm9ybWFsOnt1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LmJ1bXBtYXAsenN0Lm5vcm1hbG1hcCx6c3QuZGlzcGxhY2VtZW50bWFwLHtvcGFjaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6TnN0Lm5vcm1hbF92ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5ub3JtYWxfZnJhZ30sc3ByaXRlOnt1bmlmb3Jtczpnc3QoW3pzdC5zcHJpdGUsenN0LmZvZ10pLHZlcnRleFNoYWRlcjpOc3Quc3ByaXRlX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0LnNwcml0ZV9mcmFnfSxiYWNrZ3JvdW5kOnt1bmlmb3Jtczp7dXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyAkaXR9LHQyRDp7dmFsdWU6bnVsbH19LHZlcnRleFNoYWRlcjpOc3QuYmFja2dyb3VuZF92ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5iYWNrZ3JvdW5kX2ZyYWd9LGN1YmU6e3VuaWZvcm1zOmdzdChbenN0LmVudm1hcCx7b3BhY2l0eTp7dmFsdWU6MX19XSksdmVydGV4U2hhZGVyOk5zdC5jdWJlX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0LmN1YmVfZnJhZ30sZXF1aXJlY3Q6e3VuaWZvcm1zOnt0RXF1aXJlY3Q6e3ZhbHVlOm51bGx9fSx2ZXJ0ZXhTaGFkZXI6TnN0LmVxdWlyZWN0X3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0LmVxdWlyZWN0X2ZyYWd9LGRpc3RhbmNlUkdCQTp7dW5pZm9ybXM6Z3N0KFt6c3QuY29tbW9uLHpzdC5kaXNwbGFjZW1lbnRtYXAse3JlZmVyZW5jZVBvc2l0aW9uOnt2YWx1ZTpuZXcgY2F0fSxuZWFyRGlzdGFuY2U6e3ZhbHVlOjF9LGZhckRpc3RhbmNlOnt2YWx1ZToxZTN9fV0pLHZlcnRleFNoYWRlcjpOc3QuZGlzdGFuY2VSR0JBX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0LmRpc3RhbmNlUkdCQV9mcmFnfSxzaGFkb3c6e3VuaWZvcm1zOmdzdChbenN0LmxpZ2h0cyx6c3QuZm9nLHtjb2xvcjp7dmFsdWU6bmV3IFJydCgwKX0sb3BhY2l0eTp7dmFsdWU6MX19XSksdmVydGV4U2hhZGVyOk5zdC5zaGFkb3dfdmVydCxmcmFnbWVudFNoYWRlcjpOc3Quc2hhZG93X2ZyYWd9fTtmdW5jdGlvbiBIc3QodCxlLG4sbyxpKXtjb25zdCBhPW5ldyBScnQoMCk7bGV0IHIscyxsPTAsYz1udWxsLGQ9MCxwPW51bGw7ZnVuY3Rpb24gbSh0LGUpe24uYnVmZmVycy5jb2xvci5zZXRDbGVhcih0LnIsdC5nLHQuYixlLGkpfXJldHVybntnZXRDbGVhckNvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHNldENsZWFyQ29sb3I6ZnVuY3Rpb24odCxlPTEpe2Euc2V0KHQpLGw9ZSxtKGEsbCl9LGdldENsZWFyQWxwaGE6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sc2V0Q2xlYXJBbHBoYTpmdW5jdGlvbih0KXtsPXQsbShhLGwpfSxyZW5kZXI6ZnVuY3Rpb24gdShuLGkpe2xldCB1PSExLGY9ITA9PT1pLmlzU2NlbmU/aS5iYWNrZ3JvdW5kOm51bGw7ZiYmZi5pc1RleHR1cmUmJihmPWUuZ2V0KGYpKTtjb25zdCBnPXQueHIsaD1nLmdldFNlc3Npb24mJmcuZ2V0U2Vzc2lvbigpO2gmJiJhZGRpdGl2ZSI9PT1oLmVudmlyb25tZW50QmxlbmRNb2RlJiYoZj1udWxsKSxudWxsPT09Zj9tKGEsbCk6ZiYmZi5pc0NvbG9yJiYobShmLDEpLHU9ITApLCh0LmF1dG9DbGVhcnx8dSkmJnQuY2xlYXIodC5hdXRvQ2xlYXJDb2xvcix0LmF1dG9DbGVhckRlcHRoLHQuYXV0b0NsZWFyU3RlbmNpbCksZiYmKGYuaXNDdWJlVGV4dHVyZXx8Zi5tYXBwaW5nPT09bWl0KT8odm9pZCAwPT09cyYmKHM9bmV3IHBzdChuZXcgdXN0KDEsMSwxKSxuZXcgYnN0KHtuYW1lOiJCYWNrZ3JvdW5kQ3ViZU1hdGVyaWFsIix1bmlmb3Jtczpmc3QoSXN0LmN1YmUudW5pZm9ybXMpLHZlcnRleFNoYWRlcjpJc3QuY3ViZS52ZXJ0ZXhTaGFkZXIsZnJhZ21lbnRTaGFkZXI6SXN0LmN1YmUuZnJhZ21lbnRTaGFkZXIsc2lkZToxLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExLGZvZzohMX0pKSxzLmdlb21ldHJ5LmRlbGV0ZUF0dHJpYnV0ZSgibm9ybWFsIikscy5nZW9tZXRyeS5kZWxldGVBdHRyaWJ1dGUoInV2Iikscy5vbkJlZm9yZVJlbmRlcj1mdW5jdGlvbih0LGUsbil7dGhpcy5tYXRyaXhXb3JsZC5jb3B5UG9zaXRpb24obi5tYXRyaXhXb3JsZCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLm1hdGVyaWFsLCJlbnZNYXAiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51bmlmb3Jtcy5lbnZNYXAudmFsdWV9fSksby51cGRhdGUocykpLHMubWF0ZXJpYWwudW5pZm9ybXMuZW52TWFwLnZhbHVlPWYscy5tYXRlcmlhbC51bmlmb3Jtcy5mbGlwRW52TWFwLnZhbHVlPWYuaXNDdWJlVGV4dHVyZSYmITE9PT1mLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT8tMToxLGM9PT1mJiZkPT09Zi52ZXJzaW9uJiZwPT09dC50b25lTWFwcGluZ3x8KHMubWF0ZXJpYWwubmVlZHNVcGRhdGU9ITAsYz1mLGQ9Zi52ZXJzaW9uLHA9dC50b25lTWFwcGluZyksbi51bnNoaWZ0KHMscy5nZW9tZXRyeSxzLm1hdGVyaWFsLDAsMCxudWxsKSk6ZiYmZi5pc1RleHR1cmUmJih2b2lkIDA9PT1yJiYocj1uZXcgcHN0KG5ldyBUc3QoMiwyKSxuZXcgYnN0KHtuYW1lOiJCYWNrZ3JvdW5kTWF0ZXJpYWwiLHVuaWZvcm1zOmZzdChJc3QuYmFja2dyb3VuZC51bmlmb3JtcyksdmVydGV4U2hhZGVyOklzdC5iYWNrZ3JvdW5kLnZlcnRleFNoYWRlcixmcmFnbWVudFNoYWRlcjpJc3QuYmFja2dyb3VuZC5mcmFnbWVudFNoYWRlcixzaWRlOjAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITEsZm9nOiExfSkpLHIuZ2VvbWV0cnkuZGVsZXRlQXR0cmlidXRlKCJub3JtYWwiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoci5tYXRlcmlhbCwibWFwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5pZm9ybXMudDJELnZhbHVlfX0pLG8udXBkYXRlKHIpKSxyLm1hdGVyaWFsLnVuaWZvcm1zLnQyRC52YWx1ZT1mLCEwPT09Zi5tYXRyaXhBdXRvVXBkYXRlJiZmLnVwZGF0ZU1hdHJpeCgpLHIubWF0ZXJpYWwudW5pZm9ybXMudXZUcmFuc2Zvcm0udmFsdWUuY29weShmLm1hdHJpeCksYz09PWYmJmQ9PT1mLnZlcnNpb24mJnA9PT10LnRvbmVNYXBwaW5nfHwoci5tYXRlcmlhbC5uZWVkc1VwZGF0ZT0hMCxjPWYsZD1mLnZlcnNpb24scD10LnRvbmVNYXBwaW5nKSxuLnVuc2hpZnQocixyLmdlb21ldHJ5LHIubWF0ZXJpYWwsMCwwLG51bGwpKX19fWZ1bmN0aW9uIEZzdCh0LGUsbixvKXtjb25zdCBpPXQuZ2V0UGFyYW1ldGVyKDM0OTIxKSxhPW8uaXNXZWJHTDI/bnVsbDplLmdldCgiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSxyPW8uaXNXZWJHTDJ8fG51bGwhPT1hLHM9e30sbD1tKG51bGwpO2xldCBjPWw7ZnVuY3Rpb24gZChlKXtyZXR1cm4gby5pc1dlYkdMMj90LmJpbmRWZXJ0ZXhBcnJheShlKTphLmJpbmRWZXJ0ZXhBcnJheU9FUyhlKX1mdW5jdGlvbiBwKGUpe3JldHVybiBvLmlzV2ViR0wyP3QuZGVsZXRlVmVydGV4QXJyYXkoZSk6YS5kZWxldGVWZXJ0ZXhBcnJheU9FUyhlKX1mdW5jdGlvbiBtKHQpe2NvbnN0IGU9W10sbj1bXSxvPVtdO2ZvcihsZXQgdD0wO3Q8aTt0KyspZVt0XT0wLG5bdF09MCxvW3RdPTA7cmV0dXJue2dlb21ldHJ5Om51bGwscHJvZ3JhbTpudWxsLHdpcmVmcmFtZTohMSxuZXdBdHRyaWJ1dGVzOmUsZW5hYmxlZEF0dHJpYnV0ZXM6bixhdHRyaWJ1dGVEaXZpc29yczpvLG9iamVjdDp0LGF0dHJpYnV0ZXM6e30saW5kZXg6bnVsbH19ZnVuY3Rpb24gdSgpe2NvbnN0IHQ9Yy5uZXdBdHRyaWJ1dGVzO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl0W2VdPTB9ZnVuY3Rpb24gZih0KXtnKHQsMCl9ZnVuY3Rpb24gZyhuLGkpe2NvbnN0IGE9Yy5lbmFibGVkQXR0cmlidXRlcyxyPWMuYXR0cmlidXRlRGl2aXNvcnM7Yy5uZXdBdHRyaWJ1dGVzW25dPTEsMD09PWFbbl0mJih0LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG4pLGFbbl09MSkscltuXSE9PWkmJigoby5pc1dlYkdMMj90OmUuZ2V0KCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikpW28uaXNXZWJHTDI/InZlcnRleEF0dHJpYkRpdmlzb3IiOiJ2ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUiXShuLGkpLHJbbl09aSl9ZnVuY3Rpb24gaCgpe2NvbnN0IGU9Yy5uZXdBdHRyaWJ1dGVzLG49Yy5lbmFibGVkQXR0cmlidXRlcztmb3IobGV0IG89MCxpPW4ubGVuZ3RoO288aTtvKyspbltvXSE9PWVbb10mJih0LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShvKSxuW29dPTApfWZ1bmN0aW9uIGIoZSxuLGksYSxyLHMpeyEwIT09by5pc1dlYkdMMnx8NTEyNCE9PWkmJjUxMjUhPT1pP3QudmVydGV4QXR0cmliUG9pbnRlcihlLG4saSxhLHIscyk6dC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcihlLG4saSxyLHMpfWZ1bmN0aW9uIHkoKXtfKCksYyE9PWwmJihjPWwsZChjLm9iamVjdCkpfWZ1bmN0aW9uIF8oKXtsLmdlb21ldHJ5PW51bGwsbC5wcm9ncmFtPW51bGwsbC53aXJlZnJhbWU9ITF9cmV0dXJue3NldHVwOmZ1bmN0aW9uIEMoaSxsLHAseSxfKXtsZXQgQz0hMTtpZihyKXtjb25zdCBlPShmdW5jdGlvbiBNKGUsbixpKXtjb25zdCByPSEwPT09aS53aXJlZnJhbWU7bGV0IGw9c1tlLmlkXTt2b2lkIDA9PT1sJiYobD17fSxzW2UuaWRdPWwpO2xldCBjPWxbbi5pZF07dm9pZCAwPT09YyYmKGM9e30sbFtuLmlkXT1jKTtsZXQgZD1jW3JdO3JldHVybiB2b2lkIDA9PT1kJiYoZD1tKChmdW5jdGlvbiBwKCl7cmV0dXJuIG8uaXNXZWJHTDI/dC5jcmVhdGVWZXJ0ZXhBcnJheSgpOmEuY3JlYXRlVmVydGV4QXJyYXlPRVMoKX0pKCkpLGNbcl09ZCksZH0pKHkscCxsKTtjIT09ZSYmKGM9ZSxkKGMub2JqZWN0KSksQz0oZnVuY3Rpb24gdih0LGUpe2NvbnN0IG49Yy5hdHRyaWJ1dGVzLG89dC5hdHRyaWJ1dGVzO2xldCBpPTA7Zm9yKGNvbnN0IHQgaW4gbyl7Y29uc3QgZT1uW3RdLGE9b1t0XTtpZih2b2lkIDA9PT1lKXJldHVybiEwO2lmKGUuYXR0cmlidXRlIT09YSlyZXR1cm4hMDtpZihlLmRhdGEhPT1hLmRhdGEpcmV0dXJuITA7aSsrfXJldHVybiBjLmF0dHJpYnV0ZXNOdW0hPT1pfHxjLmluZGV4IT09ZX0pKHksXyksQyYmKGZ1bmN0aW9uIHgodCxlKXtjb25zdCBuPXt9LG89dC5hdHRyaWJ1dGVzO2xldCBpPTA7Zm9yKGNvbnN0IHQgaW4gbyl7Y29uc3QgZT1vW3RdLGE9e307YS5hdHRyaWJ1dGU9ZSxlLmRhdGEmJihhLmRhdGE9ZS5kYXRhKSxuW3RdPWEsaSsrfWMuYXR0cmlidXRlcz1uLGMuYXR0cmlidXRlc051bT1pLGMuaW5kZXg9ZX0pKHksXyl9ZWxzZXtjb25zdCB0PSEwPT09bC53aXJlZnJhbWU7Yy5nZW9tZXRyeT09PXkuaWQmJmMucHJvZ3JhbT09PXAuaWQmJmMud2lyZWZyYW1lPT09dHx8KGMuZ2VvbWV0cnk9eS5pZCxjLnByb2dyYW09cC5pZCxjLndpcmVmcmFtZT10LEM9ITApfSEwPT09aS5pc0luc3RhbmNlZE1lc2gmJihDPSEwKSxudWxsIT09XyYmbi51cGRhdGUoXywzNDk2MyksQyYmKChmdW5jdGlvbiBPKGksYSxyLHMpe2lmKCExPT09by5pc1dlYkdMMiYmKGkuaXNJbnN0YW5jZWRNZXNofHxzLmlzSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkpJiZudWxsPT09ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSlyZXR1cm47dSgpO2NvbnN0IGw9cy5hdHRyaWJ1dGVzLGM9ci5nZXRBdHRyaWJ1dGVzKCksZD1hLmRlZmF1bHRBdHRyaWJ1dGVWYWx1ZXM7Zm9yKGNvbnN0IGUgaW4gYyl7Y29uc3Qgbz1jW2VdO2lmKG8+PTApe2NvbnN0IGE9bFtlXTtpZih2b2lkIDAhPT1hKXtjb25zdCBlPWEubm9ybWFsaXplZCxpPWEuaXRlbVNpemUscj1uLmdldChhKTtpZih2b2lkIDA9PT1yKWNvbnRpbnVlO2NvbnN0IGw9ci5idWZmZXIsYz1yLnR5cGUsZD1yLmJ5dGVzUGVyRWxlbWVudDtpZihhLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUpe2NvbnN0IG49YS5kYXRhLHI9bi5zdHJpZGUscD1hLm9mZnNldDtuJiZuLmlzSW5zdGFuY2VkSW50ZXJsZWF2ZWRCdWZmZXI/KGcobyxuLm1lc2hQZXJBdHRyaWJ1dGUpLHZvaWQgMD09PXMuX21heEluc3RhbmNlQ291bnQmJihzLl9tYXhJbnN0YW5jZUNvdW50PW4ubWVzaFBlckF0dHJpYnV0ZSpuLmNvdW50KSk6ZihvKSx0LmJpbmRCdWZmZXIoMzQ5NjIsbCksYihvLGksYyxlLHIqZCxwKmQpfWVsc2UgYS5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT8oZyhvLGEubWVzaFBlckF0dHJpYnV0ZSksdm9pZCAwPT09cy5fbWF4SW5zdGFuY2VDb3VudCYmKHMuX21heEluc3RhbmNlQ291bnQ9YS5tZXNoUGVyQXR0cmlidXRlKmEuY291bnQpKTpmKG8pLHQuYmluZEJ1ZmZlcigzNDk2MixsKSxiKG8saSxjLGUsMCwwKX1lbHNlIGlmKCJpbnN0YW5jZU1hdHJpeCI9PT1lKXtjb25zdCBlPW4uZ2V0KGkuaW5zdGFuY2VNYXRyaXgpO2lmKHZvaWQgMD09PWUpY29udGludWU7Y29uc3QgYT1lLmJ1ZmZlcixyPWUudHlwZTtnKG8rMCwxKSxnKG8rMSwxKSxnKG8rMiwxKSxnKG8rMywxKSx0LmJpbmRCdWZmZXIoMzQ5NjIsYSksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG8rMCw0LHIsITEsNjQsMCksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG8rMSw0LHIsITEsNjQsMTYpLHQudmVydGV4QXR0cmliUG9pbnRlcihvKzIsNCxyLCExLDY0LDMyKSx0LnZlcnRleEF0dHJpYlBvaW50ZXIobyszLDQsciwhMSw2NCw0OCl9ZWxzZSBpZigiaW5zdGFuY2VDb2xvciI9PT1lKXtjb25zdCBlPW4uZ2V0KGkuaW5zdGFuY2VDb2xvcik7aWYodm9pZCAwPT09ZSljb250aW51ZTtjb25zdCBhPWUuYnVmZmVyLHI9ZS50eXBlO2cobywxKSx0LmJpbmRCdWZmZXIoMzQ5NjIsYSksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG8sMyxyLCExLDEyLDApfWVsc2UgaWYodm9pZCAwIT09ZCl7Y29uc3Qgbj1kW2VdO2lmKHZvaWQgMCE9PW4pc3dpdGNoKG4ubGVuZ3RoKXtjYXNlIDI6dC52ZXJ0ZXhBdHRyaWIyZnYobyxuKTticmVhaztjYXNlIDM6dC52ZXJ0ZXhBdHRyaWIzZnYobyxuKTticmVhaztjYXNlIDQ6dC52ZXJ0ZXhBdHRyaWI0ZnYobyxuKTticmVhaztkZWZhdWx0OnQudmVydGV4QXR0cmliMWZ2KG8sbil9fX19aCgpfSkoaSxsLHAseSksbnVsbCE9PV8mJnQuYmluZEJ1ZmZlcigzNDk2MyxuLmdldChfKS5idWZmZXIpKX0scmVzZXQ6eSxyZXNldERlZmF1bHRTdGF0ZTpfLGRpc3Bvc2U6ZnVuY3Rpb24gTSgpe3koKTtmb3IoY29uc3QgdCBpbiBzKXtjb25zdCBlPXNbdF07Zm9yKGNvbnN0IHQgaW4gZSl7Y29uc3Qgbj1lW3RdO2Zvcihjb25zdCB0IGluIG4pcChuW3RdLm9iamVjdCksZGVsZXRlIG5bdF07ZGVsZXRlIGVbdF19ZGVsZXRlIHNbdF19fSxyZWxlYXNlU3RhdGVzT2ZHZW9tZXRyeTpmdW5jdGlvbiB2KHQpe2lmKHZvaWQgMD09PXNbdC5pZF0pcmV0dXJuO2NvbnN0IGU9c1t0LmlkXTtmb3IoY29uc3QgdCBpbiBlKXtjb25zdCBuPWVbdF07Zm9yKGNvbnN0IHQgaW4gbilwKG5bdF0ub2JqZWN0KSxkZWxldGUgblt0XTtkZWxldGUgZVt0XX1kZWxldGUgc1t0LmlkXX0scmVsZWFzZVN0YXRlc09mUHJvZ3JhbTpmdW5jdGlvbiB4KHQpe2Zvcihjb25zdCBlIGluIHMpe2NvbnN0IG49c1tlXTtpZih2b2lkIDA9PT1uW3QuaWRdKWNvbnRpbnVlO2NvbnN0IG89blt0LmlkXTtmb3IoY29uc3QgdCBpbiBvKXAob1t0XS5vYmplY3QpLGRlbGV0ZSBvW3RdO2RlbGV0ZSBuW3QuaWRdfX0saW5pdEF0dHJpYnV0ZXM6dSxlbmFibGVBdHRyaWJ1dGU6ZixkaXNhYmxlVW51c2VkQXR0cmlidXRlczpofX1mdW5jdGlvbiBMc3QodCxlLG4sbyl7Y29uc3QgaT1vLmlzV2ViR0wyO2xldCBhO3RoaXMuc2V0TW9kZT1mdW5jdGlvbiByKHQpe2E9dH0sdGhpcy5yZW5kZXI9ZnVuY3Rpb24gcyhlLG8pe3QuZHJhd0FycmF5cyhhLGUsbyksbi51cGRhdGUobyxhLDEpfSx0aGlzLnJlbmRlckluc3RhbmNlcz1mdW5jdGlvbiBsKG8scixzKXtpZigwPT09cylyZXR1cm47bGV0IGwsYztpZihpKWw9dCxjPSJkcmF3QXJyYXlzSW5zdGFuY2VkIjtlbHNlIGlmKGw9ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSxjPSJkcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUiLG51bGw9PT1sKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMQnVmZmVyUmVuZGVyZXI6IHVzaW5nIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5IGJ1dCBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IGV4dGVuc2lvbiBBTkdMRV9pbnN0YW5jZWRfYXJyYXlzLiIpO2xbY10oYSxvLHIscyksbi51cGRhdGUocixhLHMpfX1mdW5jdGlvbiBCc3QodCxlLG4pe2xldCBvO2Z1bmN0aW9uIGkoZSl7aWYoImhpZ2hwIj09PWUpe2lmKHQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KDM1NjMzLDM2MzM4KS5wcmVjaXNpb24+MCYmdC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzIsMzYzMzgpLnByZWNpc2lvbj4wKXJldHVybiJoaWdocCI7ZT0ibWVkaXVtcCJ9cmV0dXJuIm1lZGl1bXAiPT09ZSYmdC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzMsMzYzMzcpLnByZWNpc2lvbj4wJiZ0LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMiwzNjMzNykucHJlY2lzaW9uPjA/Im1lZGl1bXAiOiJsb3dwIn1jb25zdCBhPSJ1bmRlZmluZWQiIT10eXBlb2YgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCYmdCBpbnN0YW5jZW9mIFdlYkdMMlJlbmRlcmluZ0NvbnRleHR8fCJ1bmRlZmluZWQiIT10eXBlb2YgV2ViR0wyQ29tcHV0ZVJlbmRlcmluZ0NvbnRleHQmJnQgaW5zdGFuY2VvZiBXZWJHTDJDb21wdXRlUmVuZGVyaW5nQ29udGV4dDtsZXQgcj12b2lkIDAhPT1uLnByZWNpc2lvbj9uLnByZWNpc2lvbjoiaGlnaHAiO2NvbnN0IHM9aShyKTtzIT09ciYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjoiLHIsIm5vdCBzdXBwb3J0ZWQsIHVzaW5nIixzLCJpbnN0ZWFkLiIpLHI9cyk7Y29uc3QgbD1hfHxlLmhhcygiV0VCR0xfZHJhd19idWZmZXJzIiksYz0hMD09PW4ubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcixkPXQuZ2V0UGFyYW1ldGVyKDM0OTMwKSxwPXQuZ2V0UGFyYW1ldGVyKDM1NjYwKSxtPXQuZ2V0UGFyYW1ldGVyKDMzNzkpLHU9dC5nZXRQYXJhbWV0ZXIoMzQwNzYpLGY9dC5nZXRQYXJhbWV0ZXIoMzQ5MjEpLGc9dC5nZXRQYXJhbWV0ZXIoMzYzNDcpLGg9dC5nZXRQYXJhbWV0ZXIoMzYzNDgpLGI9dC5nZXRQYXJhbWV0ZXIoMzYzNDkpLHk9cD4wLF89YXx8ZS5oYXMoIk9FU190ZXh0dXJlX2Zsb2F0Iik7cmV0dXJue2lzV2ViR0wyOmEsZHJhd0J1ZmZlcnM6bCxnZXRNYXhBbmlzb3Ryb3B5OmZ1bmN0aW9uIEMoKXtpZih2b2lkIDAhPT1vKXJldHVybiBvO2lmKCEwPT09ZS5oYXMoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKXtjb25zdCBuPWUuZ2V0KCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTtvPXQuZ2V0UGFyYW1ldGVyKG4uTUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUKX1lbHNlIG89MDtyZXR1cm4gb30sZ2V0TWF4UHJlY2lzaW9uOmkscHJlY2lzaW9uOnIsbG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcjpjLG1heFRleHR1cmVzOmQsbWF4VmVydGV4VGV4dHVyZXM6cCxtYXhUZXh0dXJlU2l6ZTptLG1heEN1YmVtYXBTaXplOnUsbWF4QXR0cmlidXRlczpmLG1heFZlcnRleFVuaWZvcm1zOmcsbWF4VmFyeWluZ3M6aCxtYXhGcmFnbWVudFVuaWZvcm1zOmIsdmVydGV4VGV4dHVyZXM6eSxmbG9hdEZyYWdtZW50VGV4dHVyZXM6XyxmbG9hdFZlcnRleFRleHR1cmVzOnkmJl8sbWF4U2FtcGxlczphP3QuZ2V0UGFyYW1ldGVyKDM2MTgzKTowfX1mdW5jdGlvbiBWc3QodCl7Y29uc3QgZT10aGlzO2xldCBuPW51bGwsbz0wLGk9ITEsYT0hMTtjb25zdCByPW5ldyBrc3Qscz1uZXcgJGl0LGw9e3ZhbHVlOm51bGwsbmVlZHNVcGRhdGU6ITF9O2Z1bmN0aW9uIGMoKXtsLnZhbHVlIT09biYmKGwudmFsdWU9bixsLm5lZWRzVXBkYXRlPW8+MCksZS5udW1QbGFuZXM9byxlLm51bUludGVyc2VjdGlvbj0wfWZ1bmN0aW9uIGQodCxuLG8saSl7Y29uc3QgYT1udWxsIT09dD90Lmxlbmd0aDowO2xldCBjPW51bGw7aWYoMCE9PWEpe2lmKGM9bC52YWx1ZSwhMCE9PWl8fG51bGw9PT1jKXtjb25zdCBlPW8rNCphLGk9bi5tYXRyaXhXb3JsZEludmVyc2U7cy5nZXROb3JtYWxNYXRyaXgoaSksKG51bGw9PT1jfHxjLmxlbmd0aDxlKSYmKGM9bmV3IEZsb2F0MzJBcnJheShlKSk7Zm9yKGxldCBlPTAsbj1vO2UhPT1hOysrZSxuKz00KXIuY29weSh0W2VdKS5hcHBseU1hdHJpeDQoaSxzKSxyLm5vcm1hbC50b0FycmF5KGMsbiksY1tuKzNdPXIuY29uc3RhbnR9bC52YWx1ZT1jLGwubmVlZHNVcGRhdGU9ITB9cmV0dXJuIGUubnVtUGxhbmVzPWEsZS5udW1JbnRlcnNlY3Rpb249MCxjfXRoaXMudW5pZm9ybT1sLHRoaXMubnVtUGxhbmVzPTAsdGhpcy5udW1JbnRlcnNlY3Rpb249MCx0aGlzLmluaXQ9ZnVuY3Rpb24odCxlLGEpe2NvbnN0IHI9MCE9PXQubGVuZ3RofHxlfHwwIT09b3x8aTtyZXR1cm4gaT1lLG49ZCh0LGEsMCksbz10Lmxlbmd0aCxyfSx0aGlzLmJlZ2luU2hhZG93cz1mdW5jdGlvbigpe2E9ITAsZChudWxsKX0sdGhpcy5lbmRTaGFkb3dzPWZ1bmN0aW9uKCl7YT0hMSxjKCl9LHRoaXMuc2V0U3RhdGU9ZnVuY3Rpb24oZSxyLHMpe2NvbnN0IHA9ZS5jbGlwcGluZ1BsYW5lcyxtPWUuY2xpcEludGVyc2VjdGlvbix1PWUuY2xpcFNoYWRvd3MsZj10LmdldChlKTtpZighaXx8bnVsbD09PXB8fDA9PT1wLmxlbmd0aHx8YSYmIXUpYT9kKG51bGwpOmMoKTtlbHNle2NvbnN0IHQ9YT8wOm8sZT00KnQ7bGV0IGk9Zi5jbGlwcGluZ1N0YXRlfHxudWxsO2wudmFsdWU9aSxpPWQocCxyLGUscyk7Zm9yKGxldCB0PTA7dCE9PWU7Kyt0KWlbdF09blt0XTtmLmNsaXBwaW5nU3RhdGU9aSx0aGlzLm51bUludGVyc2VjdGlvbj1tP3RoaXMubnVtUGxhbmVzOjAsdGhpcy5udW1QbGFuZXMrPXR9fX1mdW5jdGlvbiBqc3QodCl7bGV0IGU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gbih0LGUpe3JldHVybiAzMDM9PT1lP3QubWFwcGluZz1kaXQ6MzA0PT09ZSYmKHQubWFwcGluZz1waXQpLHR9ZnVuY3Rpb24gbyh0KXtjb25zdCBuPXQudGFyZ2V0O24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbyk7Y29uc3QgaT1lLmdldChuKTt2b2lkIDAhPT1pJiYoZS5kZWxldGUobiksaS5kaXNwb3NlKCkpfXJldHVybntnZXQ6ZnVuY3Rpb24gaShhKXtpZihhJiZhLmlzVGV4dHVyZSYmITE9PT1hLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZSl7Y29uc3QgaT1hLm1hcHBpbmc7aWYoMzAzPT09aXx8MzA0PT09aSl7aWYoZS5oYXMoYSkpcmV0dXJuIG4oZS5nZXQoYSkudGV4dHVyZSxhLm1hcHBpbmcpO3tjb25zdCBpPWEuaW1hZ2U7aWYoaSYmaS5oZWlnaHQ+MCl7Y29uc3Qgcj10LmdldFJlbmRlclRhcmdldCgpLHM9bmV3IHhzdChpLmhlaWdodC8yKTtyZXR1cm4gcy5mcm9tRXF1aXJlY3Rhbmd1bGFyVGV4dHVyZSh0LGEpLGUuc2V0KGEscyksdC5zZXRSZW5kZXJUYXJnZXQociksYS5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIixvKSxuKHMudGV4dHVyZSxhLm1hcHBpbmcpfXJldHVybiBudWxsfX19cmV0dXJuIGF9LGRpc3Bvc2U6ZnVuY3Rpb24gYSgpe2U9bmV3IFdlYWtNYXB9fX1Jc3QucGh5c2ljYWw9e3VuaWZvcm1zOmdzdChbSXN0LnN0YW5kYXJkLnVuaWZvcm1zLHtjbGVhcmNvYXQ6e3ZhbHVlOjB9LGNsZWFyY29hdE1hcDp7dmFsdWU6bnVsbH0sY2xlYXJjb2F0Um91Z2huZXNzOnt2YWx1ZTowfSxjbGVhcmNvYXRSb3VnaG5lc3NNYXA6e3ZhbHVlOm51bGx9LGNsZWFyY29hdE5vcm1hbFNjYWxlOnt2YWx1ZTpuZXcgUWl0KDEsMSl9LGNsZWFyY29hdE5vcm1hbE1hcDp7dmFsdWU6bnVsbH0sc2hlZW46e3ZhbHVlOm5ldyBScnQoMCl9LHRyYW5zbWlzc2lvbjp7dmFsdWU6MH0sdHJhbnNtaXNzaW9uTWFwOnt2YWx1ZTpudWxsfSx0cmFuc21pc3Npb25TYW1wbGVyU2l6ZTp7dmFsdWU6bmV3IFFpdH0sdHJhbnNtaXNzaW9uU2FtcGxlck1hcDp7dmFsdWU6bnVsbH0sdGhpY2tuZXNzOnt2YWx1ZTowfSx0aGlja25lc3NNYXA6e3ZhbHVlOm51bGx9LGF0dGVudWF0aW9uRGlzdGFuY2U6e3ZhbHVlOjB9LGF0dGVudWF0aW9uVGludDp7dmFsdWU6bmV3IFJydCgwKX0sc3BlY3VsYXJJbnRlbnNpdHk6e3ZhbHVlOjB9LHNwZWN1bGFySW50ZW5zaXR5TWFwOnt2YWx1ZTpudWxsfSxzcGVjdWxhclRpbnQ6e3ZhbHVlOm5ldyBScnQoMSwxLDEpfSxzcGVjdWxhclRpbnRNYXA6e3ZhbHVlOm51bGx9fV0pLHZlcnRleFNoYWRlcjpOc3QubWVzaHBoeXNpY2FsX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0Lm1lc2hwaHlzaWNhbF9mcmFnfTtjbGFzcyBVc3QgZXh0ZW5kcyB5c3R7Y29uc3RydWN0b3IodD0tMSxlPTEsbj0xLG89LTEsaT0uMSxhPTJlMyl7c3VwZXIoKSx0aGlzLnR5cGU9Ik9ydGhvZ3JhcGhpY0NhbWVyYSIsdGhpcy56b29tPTEsdGhpcy52aWV3PW51bGwsdGhpcy5sZWZ0PXQsdGhpcy5yaWdodD1lLHRoaXMudG9wPW4sdGhpcy5ib3R0b209byx0aGlzLm5lYXI9aSx0aGlzLmZhcj1hLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWNvcHkodCxlKXtyZXR1cm4gc3VwZXIuY29weSh0LGUpLHRoaXMubGVmdD10LmxlZnQsdGhpcy5yaWdodD10LnJpZ2h0LHRoaXMudG9wPXQudG9wLHRoaXMuYm90dG9tPXQuYm90dG9tLHRoaXMubmVhcj10Lm5lYXIsdGhpcy5mYXI9dC5mYXIsdGhpcy56b29tPXQuem9vbSx0aGlzLnZpZXc9bnVsbD09PXQudmlldz9udWxsOk9iamVjdC5hc3NpZ24oe30sdC52aWV3KSx0aGlzfXNldFZpZXdPZmZzZXQodCxlLG4sbyxpLGEpe251bGw9PT10aGlzLnZpZXcmJih0aGlzLnZpZXc9e2VuYWJsZWQ6ITAsZnVsbFdpZHRoOjEsZnVsbEhlaWdodDoxLG9mZnNldFg6MCxvZmZzZXRZOjAsd2lkdGg6MSxoZWlnaHQ6MX0pLHRoaXMudmlldy5lbmFibGVkPSEwLHRoaXMudmlldy5mdWxsV2lkdGg9dCx0aGlzLnZpZXcuZnVsbEhlaWdodD1lLHRoaXMudmlldy5vZmZzZXRYPW4sdGhpcy52aWV3Lm9mZnNldFk9byx0aGlzLnZpZXcud2lkdGg9aSx0aGlzLnZpZXcuaGVpZ2h0PWEsdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y2xlYXJWaWV3T2Zmc2V0KCl7bnVsbCE9PXRoaXMudmlldyYmKHRoaXMudmlldy5lbmFibGVkPSExKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX11cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl7Y29uc3QgdD0odGhpcy5yaWdodC10aGlzLmxlZnQpLygyKnRoaXMuem9vbSksZT0odGhpcy50b3AtdGhpcy5ib3R0b20pLygyKnRoaXMuem9vbSksbj0odGhpcy5yaWdodCt0aGlzLmxlZnQpLzIsbz0odGhpcy50b3ArdGhpcy5ib3R0b20pLzI7bGV0IGk9bi10LGE9bit0LHI9bytlLHM9by1lO2lmKG51bGwhPT10aGlzLnZpZXcmJnRoaXMudmlldy5lbmFibGVkKXtjb25zdCB0PSh0aGlzLnJpZ2h0LXRoaXMubGVmdCkvdGhpcy52aWV3LmZ1bGxXaWR0aC90aGlzLnpvb20sZT0odGhpcy50b3AtdGhpcy5ib3R0b20pL3RoaXMudmlldy5mdWxsSGVpZ2h0L3RoaXMuem9vbTtpKz10KnRoaXMudmlldy5vZmZzZXRYLGE9aSt0KnRoaXMudmlldy53aWR0aCxyLT1lKnRoaXMudmlldy5vZmZzZXRZLHM9ci1lKnRoaXMudmlldy5oZWlnaHR9dGhpcy5wcm9qZWN0aW9uTWF0cml4Lm1ha2VPcnRob2dyYXBoaWMoaSxhLHIscyx0aGlzLm5lYXIsdGhpcy5mYXIpLHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2UuY29weSh0aGlzLnByb2plY3Rpb25NYXRyaXgpLmludmVydCgpfXRvSlNPTih0KXtjb25zdCBlPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gZS5vYmplY3Quem9vbT10aGlzLnpvb20sZS5vYmplY3QubGVmdD10aGlzLmxlZnQsZS5vYmplY3QucmlnaHQ9dGhpcy5yaWdodCxlLm9iamVjdC50b3A9dGhpcy50b3AsZS5vYmplY3QuYm90dG9tPXRoaXMuYm90dG9tLGUub2JqZWN0Lm5lYXI9dGhpcy5uZWFyLGUub2JqZWN0LmZhcj10aGlzLmZhcixudWxsIT09dGhpcy52aWV3JiYoZS5vYmplY3Qudmlldz1PYmplY3QuYXNzaWduKHt9LHRoaXMudmlldykpLGV9fVVzdC5wcm90b3R5cGUuaXNPcnRob2dyYXBoaWNDYW1lcmE9ITA7Y2xhc3MgR3N0IGV4dGVuZHMgYnN0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMudHlwZT0iUmF3U2hhZGVyTWF0ZXJpYWwifX1Hc3QucHJvdG90eXBlLmlzUmF3U2hhZGVyTWF0ZXJpYWw9ITA7Y29uc3QgV3N0PU1hdGgucG93KDIsOCksWXN0PVsuMTI1LC4yMTUsLjM1LC40NDYsLjUyNiwuNTgyXSxxc3Q9NStZc3QubGVuZ3RoLFpzdD17W3ppdF06MCxbSWl0XToxLFtGaXRdOjIsMzAwNDozLDMwMDU6NCwzMDA2OjUsW0hpdF06Nn0sWHN0PW5ldyBBcnQoe3NpZGU6MSxkZXB0aFdyaXRlOiExLGRlcHRoVGVzdDohMX0pLEtzdD1uZXcgcHN0KG5ldyB1c3QsWHN0KSxKc3Q9bmV3IFVzdCx7X2xvZFBsYW5lczpRc3QsX3NpemVMb2RzOiRzdCxfc2lnbWFzOnRsdH09Y2x0KCksZWx0PW5ldyBScnQ7bGV0IG5sdD1udWxsO2NvbnN0IG9sdD0oMStNYXRoLnNxcnQoNSkpLzIsaWx0PTEvb2x0LGFsdD1bbmV3IGNhdCgxLDEsMSksbmV3IGNhdCgtMSwxLDEpLG5ldyBjYXQoMSwxLC0xKSxuZXcgY2F0KC0xLDEsLTEpLG5ldyBjYXQoMCxvbHQsaWx0KSxuZXcgY2F0KDAsb2x0LC1pbHQpLG5ldyBjYXQoaWx0LDAsb2x0KSxuZXcgY2F0KC1pbHQsMCxvbHQpLG5ldyBjYXQob2x0LGlsdCwwKSxuZXcgY2F0KC1vbHQsaWx0LDApXTtmdW5jdGlvbiBybHQodCl7Y29uc3QgZT1NYXRoLm1heCh0LnIsdC5nLHQuYiksbj1NYXRoLm1pbihNYXRoLm1heChNYXRoLmNlaWwoTWF0aC5sb2cyKGUpKSwtMTI4KSwxMjcpO3JldHVybiB0Lm11bHRpcGx5U2NhbGFyKE1hdGgucG93KDIsLW4pKSwobisxMjgpLzI1NX1jbGFzcyBzbHR7Y29uc3RydWN0b3IodCl7dGhpcy5fcmVuZGVyZXI9dCx0aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldD1udWxsLHRoaXMuX2JsdXJNYXRlcmlhbD0oZnVuY3Rpb24gZSh0KXtjb25zdCBlPW5ldyBGbG9hdDMyQXJyYXkodCksbj1uZXcgY2F0KDAsMSwwKTtyZXR1cm4gbmV3IEdzdCh7bmFtZToiU3BoZXJpY2FsR2F1c3NpYW5CbHVyIixkZWZpbmVzOntuOnR9LHVuaWZvcm1zOntlbnZNYXA6e3ZhbHVlOm51bGx9LHNhbXBsZXM6e3ZhbHVlOjF9LHdlaWdodHM6e3ZhbHVlOmV9LGxhdGl0dWRpbmFsOnt2YWx1ZTohMX0sZFRoZXRhOnt2YWx1ZTowfSxtaXBJbnQ6e3ZhbHVlOjB9LHBvbGVBeGlzOnt2YWx1ZTpufSxpbnB1dEVuY29kaW5nOnt2YWx1ZTpac3RbM2UzXX0sb3V0cHV0RW5jb2Rpbmc6e3ZhbHVlOlpzdFszZTNdfX0sdmVydGV4U2hhZGVyOiJcblxuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdGF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXHRcdGF0dHJpYnV0ZSB2ZWMyIHV2O1xuXHRcdGF0dHJpYnV0ZSBmbG9hdCBmYWNlSW5kZXg7XG5cblx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdC8vIFJIIGNvb3JkaW5hdGUgc3lzdGVtOyBQTVJFTSBmYWNlLWluZGV4aW5nIGNvbnZlbnRpb25cblx0XHR2ZWMzIGdldERpcmVjdGlvbiggdmVjMiB1diwgZmxvYXQgZmFjZSApIHtcblxuXHRcdFx0dXYgPSAyLjAgKiB1diAtIDEuMDtcblxuXHRcdFx0dmVjMyBkaXJlY3Rpb24gPSB2ZWMzKCB1diwgMS4wICk7XG5cblx0XHRcdGlmICggZmFjZSA9PSAwLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDsgLy8gKCAxLCB2LCB1ICkgcG9zIHhcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAxLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnh6eTtcblx0XHRcdFx0ZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLXUsIDEsIC12ICkgcG9zIHlcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uLnggKj0gLTEuMDsgLy8gKCAtdSwgdiwgMSApIHBvcyB6XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC0xLCB2LCAtdSApIG5lZyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eSAqPSAtMS4wOyAvLyAoIC11LCAtMSwgdiApIG5lZyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi56ICo9IC0xLjA7IC8vICggdSwgdiwgLTEgKSBuZWcgelxuXG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBkaXJlY3Rpb247XG5cblx0XHR9XG5cblx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdHZPdXRwdXREaXJlY3Rpb24gPSBnZXREaXJlY3Rpb24oIHV2LCBmYWNlSW5kZXggKTtcblx0XHRcdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApO1xuXG5cdFx0fVxuXHQiLGZyYWdtZW50U2hhZGVyOiJcblxuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7XG5cdFx0XHR1bmlmb3JtIGludCBzYW1wbGVzO1xuXHRcdFx0dW5pZm9ybSBmbG9hdCB3ZWlnaHRzWyBuIF07XG5cdFx0XHR1bmlmb3JtIGJvb2wgbGF0aXR1ZGluYWw7XG5cdFx0XHR1bmlmb3JtIGZsb2F0IGRUaGV0YTtcblx0XHRcdHVuaWZvcm0gZmxvYXQgbWlwSW50O1xuXHRcdFx0dW5pZm9ybSB2ZWMzIHBvbGVBeGlzO1xuXG5cdFx0XHRcblxuXHRcdHVuaWZvcm0gaW50IGlucHV0RW5jb2Rpbmc7XG5cdFx0dW5pZm9ybSBpbnQgb3V0cHV0RW5jb2Rpbmc7XG5cblx0XHQjaW5jbHVkZSA8ZW5jb2RpbmdzX3BhcnNfZnJhZ21lbnQ+XG5cblx0XHR2ZWM0IGlucHV0VGV4ZWxUb0xpbmVhciggdmVjNCB2YWx1ZSApIHtcblxuXHRcdFx0aWYgKCBpbnB1dEVuY29kaW5nID09IDAgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDEgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHNSR0JUb0xpbmVhciggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAyICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JFVG9MaW5lYXIoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMyApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCTVRvTGluZWFyKCB2YWx1ZSwgNy4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gNCApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCTVRvTGluZWFyKCB2YWx1ZSwgMTYuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDUgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQkRUb0xpbmVhciggdmFsdWUsIDI1Ni4wICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0cmV0dXJuIEdhbW1hVG9MaW5lYXIoIHZhbHVlLCAyLjIgKTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0dmVjNCBsaW5lYXJUb091dHB1dFRleGVsKCB2ZWM0IHZhbHVlICkge1xuXG5cdFx0XHRpZiAoIG91dHB1dEVuY29kaW5nID09IDAgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAxICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb3NSR0IoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDIgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCRSggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMyApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JNKCB2YWx1ZSwgNy4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCTSggdmFsdWUsIDE2LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gNSApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JEKCB2YWx1ZSwgMjU2LjAgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9HYW1tYSggdmFsdWUsIDIuMiApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHR2ZWM0IGVudk1hcFRleGVsVG9MaW5lYXIoIHZlYzQgY29sb3IgKSB7XG5cblx0XHRcdHJldHVybiBpbnB1dFRleGVsVG9MaW5lYXIoIGNvbG9yICk7XG5cblx0XHR9XG5cdFxuXG5cdFx0XHQjZGVmaW5lIEVOVk1BUF9UWVBFX0NVQkVfVVZcblx0XHRcdCNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG5cblx0XHRcdHZlYzMgZ2V0U2FtcGxlKCBmbG9hdCB0aGV0YSwgdmVjMyBheGlzICkge1xuXG5cdFx0XHRcdGZsb2F0IGNvc1RoZXRhID0gY29zKCB0aGV0YSApO1xuXHRcdFx0XHQvLyBSb2RyaWd1ZXMnIGF4aXMtYW5nbGUgcm90YXRpb25cblx0XHRcdFx0dmVjMyBzYW1wbGVEaXJlY3Rpb24gPSB2T3V0cHV0RGlyZWN0aW9uICogY29zVGhldGFcblx0XHRcdFx0XHQrIGNyb3NzKCBheGlzLCB2T3V0cHV0RGlyZWN0aW9uICkgKiBzaW4oIHRoZXRhIClcblx0XHRcdFx0XHQrIGF4aXMgKiBkb3QoIGF4aXMsIHZPdXRwdXREaXJlY3Rpb24gKSAqICggMS4wIC0gY29zVGhldGEgKTtcblxuXHRcdFx0XHRyZXR1cm4gYmlsaW5lYXJDdWJlVVYoIGVudk1hcCwgc2FtcGxlRGlyZWN0aW9uLCBtaXBJbnQgKTtcblxuXHRcdFx0fVxuXG5cdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0dmVjMyBheGlzID0gbGF0aXR1ZGluYWwgPyBwb2xlQXhpcyA6IGNyb3NzKCBwb2xlQXhpcywgdk91dHB1dERpcmVjdGlvbiApO1xuXG5cdFx0XHRcdGlmICggYWxsKCBlcXVhbCggYXhpcywgdmVjMyggMC4wICkgKSApICkge1xuXG5cdFx0XHRcdFx0YXhpcyA9IHZlYzMoIHZPdXRwdXREaXJlY3Rpb24ueiwgMC4wLCAtIHZPdXRwdXREaXJlY3Rpb24ueCApO1xuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHRheGlzID0gbm9ybWFsaXplKCBheGlzICk7XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggMC4wLCAwLjAsIDAuMCwgMS4wICk7XG5cdFx0XHRcdGdsX0ZyYWdDb2xvci5yZ2IgKz0gd2VpZ2h0c1sgMCBdICogZ2V0U2FtcGxlKCAwLjAsIGF4aXMgKTtcblxuXHRcdFx0XHRmb3IgKCBpbnQgaSA9IDE7IGkgPCBuOyBpKysgKSB7XG5cblx0XHRcdFx0XHRpZiAoIGkgPj0gc2FtcGxlcyApIHtcblxuXHRcdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRmbG9hdCB0aGV0YSA9IGRUaGV0YSAqIGZsb2F0KCBpICk7XG5cdFx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyBpIF0gKiBnZXRTYW1wbGUoIC0xLjAgKiB0aGV0YSwgYXhpcyApO1xuXHRcdFx0XHRcdGdsX0ZyYWdDb2xvci5yZ2IgKz0gd2VpZ2h0c1sgaSBdICogZ2V0U2FtcGxlKCB0aGV0YSwgYXhpcyApO1xuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSBsaW5lYXJUb091dHB1dFRleGVsKCBnbF9GcmFnQ29sb3IgKTtcblxuXHRcdFx0fVxuXHRcdCIsYmxlbmRpbmc6MCxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMX0pfSkoMjApLHRoaXMuX2VxdWlyZWN0U2hhZGVyPW51bGwsdGhpcy5fY3ViZW1hcFNoYWRlcj1udWxsLHRoaXMuX2NvbXBpbGVNYXRlcmlhbCh0aGlzLl9ibHVyTWF0ZXJpYWwpfWZyb21TY2VuZSh0LGU9MCxuPS4xLG89MTAwKXtubHQ9dGhpcy5fcmVuZGVyZXIuZ2V0UmVuZGVyVGFyZ2V0KCk7Y29uc3QgaT10aGlzLl9hbGxvY2F0ZVRhcmdldHMoKTtyZXR1cm4gdGhpcy5fc2NlbmVUb0N1YmVVVih0LG4sbyxpKSxlPjAmJnRoaXMuX2JsdXIoaSwwLDAsZSksdGhpcy5fYXBwbHlQTVJFTShpKSx0aGlzLl9jbGVhbnVwKGkpLGl9ZnJvbUVxdWlyZWN0YW5ndWxhcih0KXtyZXR1cm4gdGhpcy5fZnJvbVRleHR1cmUodCl9ZnJvbUN1YmVtYXAodCl7cmV0dXJuIHRoaXMuX2Zyb21UZXh0dXJlKHQpfWNvbXBpbGVDdWJlbWFwU2hhZGVyKCl7bnVsbD09PXRoaXMuX2N1YmVtYXBTaGFkZXImJih0aGlzLl9jdWJlbWFwU2hhZGVyPXVsdCgpLHRoaXMuX2NvbXBpbGVNYXRlcmlhbCh0aGlzLl9jdWJlbWFwU2hhZGVyKSl9Y29tcGlsZUVxdWlyZWN0YW5ndWxhclNoYWRlcigpe251bGw9PT10aGlzLl9lcXVpcmVjdFNoYWRlciYmKHRoaXMuX2VxdWlyZWN0U2hhZGVyPW1sdCgpLHRoaXMuX2NvbXBpbGVNYXRlcmlhbCh0aGlzLl9lcXVpcmVjdFNoYWRlcikpfWRpc3Bvc2UoKXt0aGlzLl9ibHVyTWF0ZXJpYWwuZGlzcG9zZSgpLG51bGwhPT10aGlzLl9jdWJlbWFwU2hhZGVyJiZ0aGlzLl9jdWJlbWFwU2hhZGVyLmRpc3Bvc2UoKSxudWxsIT09dGhpcy5fZXF1aXJlY3RTaGFkZXImJnRoaXMuX2VxdWlyZWN0U2hhZGVyLmRpc3Bvc2UoKTtmb3IobGV0IHQ9MDt0PFFzdC5sZW5ndGg7dCsrKVFzdFt0XS5kaXNwb3NlKCl9X2NsZWFudXAodCl7dGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQuZGlzcG9zZSgpLHRoaXMuX3JlbmRlcmVyLnNldFJlbmRlclRhcmdldChubHQpLHQuc2Npc3NvclRlc3Q9ITEscGx0KHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpfV9mcm9tVGV4dHVyZSh0KXtubHQ9dGhpcy5fcmVuZGVyZXIuZ2V0UmVuZGVyVGFyZ2V0KCk7Y29uc3QgZT10aGlzLl9hbGxvY2F0ZVRhcmdldHModCk7cmV0dXJuIHRoaXMuX3RleHR1cmVUb0N1YmVVVih0LGUpLHRoaXMuX2FwcGx5UE1SRU0oZSksdGhpcy5fY2xlYW51cChlKSxlfV9hbGxvY2F0ZVRhcmdldHModCl7Y29uc3QgZT17bWFnRmlsdGVyOmhpdCxtaW5GaWx0ZXI6aGl0LGdlbmVyYXRlTWlwbWFwczohMSx0eXBlOl9pdCxmb3JtYXQ6MTAyMyxlbmNvZGluZzpsbHQodCk/dC5lbmNvZGluZzpGaXQsZGVwdGhCdWZmZXI6ITF9LG49ZGx0KGUpO3JldHVybiBuLmRlcHRoQnVmZmVyPSF0LHRoaXMuX3BpbmdQb25nUmVuZGVyVGFyZ2V0PWRsdChlKSxufV9jb21waWxlTWF0ZXJpYWwodCl7Y29uc3QgZT1uZXcgcHN0KFFzdFswXSx0KTt0aGlzLl9yZW5kZXJlci5jb21waWxlKGUsSnN0KX1fc2NlbmVUb0N1YmVVVih0LGUsbixvKXtjb25zdCBpPW5ldyBfc3QoOTAsMSxlLG4pLGE9WzEsLTEsMSwxLDEsMV0scj1bMSwxLDEsLTEsLTEsLTFdLHM9dGhpcy5fcmVuZGVyZXIsbD1zLmF1dG9DbGVhcixjPXMub3V0cHV0RW5jb2RpbmcsZD1zLnRvbmVNYXBwaW5nO3MuZ2V0Q2xlYXJDb2xvcihlbHQpLHMudG9uZU1hcHBpbmc9MCxzLm91dHB1dEVuY29kaW5nPXppdCxzLmF1dG9DbGVhcj0hMTtsZXQgcD0hMTtjb25zdCBtPXQuYmFja2dyb3VuZDtpZihtKXtpZihtLmlzQ29sb3Ipe1hzdC5jb2xvci5jb3B5KG0pLmNvbnZlcnRTUkdCVG9MaW5lYXIoKSx0LmJhY2tncm91bmQ9bnVsbDtjb25zdCBlPXJsdChYc3QuY29sb3IpO1hzdC5vcGFjaXR5PWUscD0hMH19ZWxzZXtYc3QuY29sb3IuY29weShlbHQpLmNvbnZlcnRTUkdCVG9MaW5lYXIoKTtjb25zdCB0PXJsdChYc3QuY29sb3IpO1hzdC5vcGFjaXR5PXQscD0hMH1mb3IobGV0IGU9MDtlPDY7ZSsrKXtjb25zdCBuPWUlMzswPT1uPyhpLnVwLnNldCgwLGFbZV0sMCksaS5sb29rQXQocltlXSwwLDApKToxPT1uPyhpLnVwLnNldCgwLDAsYVtlXSksaS5sb29rQXQoMCxyW2VdLDApKTooaS51cC5zZXQoMCxhW2VdLDApLGkubG9va0F0KDAsMCxyW2VdKSkscGx0KG8sbipXc3QsZT4yP1dzdDowLFdzdCxXc3QpLHMuc2V0UmVuZGVyVGFyZ2V0KG8pLHAmJnMucmVuZGVyKEtzdCxpKSxzLnJlbmRlcih0LGkpfXMudG9uZU1hcHBpbmc9ZCxzLm91dHB1dEVuY29kaW5nPWMscy5hdXRvQ2xlYXI9bH1fdGV4dHVyZVRvQ3ViZVVWKHQsZSl7Y29uc3Qgbj10aGlzLl9yZW5kZXJlcjt0LmlzQ3ViZVRleHR1cmU/bnVsbD09dGhpcy5fY3ViZW1hcFNoYWRlciYmKHRoaXMuX2N1YmVtYXBTaGFkZXI9dWx0KCkpOm51bGw9PXRoaXMuX2VxdWlyZWN0U2hhZGVyJiYodGhpcy5fZXF1aXJlY3RTaGFkZXI9bWx0KCkpO2NvbnN0IG89dC5pc0N1YmVUZXh0dXJlP3RoaXMuX2N1YmVtYXBTaGFkZXI6dGhpcy5fZXF1aXJlY3RTaGFkZXIsaT1uZXcgcHN0KFFzdFswXSxvKSxhPW8udW5pZm9ybXM7YS5lbnZNYXAudmFsdWU9dCx0LmlzQ3ViZVRleHR1cmV8fGEudGV4ZWxTaXplLnZhbHVlLnNldCgxL3QuaW1hZ2Uud2lkdGgsMS90LmltYWdlLmhlaWdodCksYS5pbnB1dEVuY29kaW5nLnZhbHVlPVpzdFt0LmVuY29kaW5nXSxhLm91dHB1dEVuY29kaW5nLnZhbHVlPVpzdFtlLnRleHR1cmUuZW5jb2RpbmddLHBsdChlLDAsMCwzKldzdCwyKldzdCksbi5zZXRSZW5kZXJUYXJnZXQoZSksbi5yZW5kZXIoaSxKc3QpfV9hcHBseVBNUkVNKHQpe2NvbnN0IGU9dGhpcy5fcmVuZGVyZXIsbj1lLmF1dG9DbGVhcjtlLmF1dG9DbGVhcj0hMTtmb3IobGV0IGU9MTtlPHFzdDtlKyspe2NvbnN0IG49TWF0aC5zcXJ0KHRsdFtlXSp0bHRbZV0tdGx0W2UtMV0qdGx0W2UtMV0pO3RoaXMuX2JsdXIodCxlLTEsZSxuLGFsdFsoZS0xKSVhbHQubGVuZ3RoXSl9ZS5hdXRvQ2xlYXI9bn1fYmx1cih0LGUsbixvLGkpe2NvbnN0IGE9dGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ7dGhpcy5faGFsZkJsdXIodCxhLGUsbixvLCJsYXRpdHVkaW5hbCIsaSksdGhpcy5faGFsZkJsdXIoYSx0LG4sbixvLCJsb25naXR1ZGluYWwiLGkpfV9oYWxmQmx1cih0LGUsbixvLGksYSxyKXtjb25zdCBzPXRoaXMuX3JlbmRlcmVyLGw9dGhpcy5fYmx1ck1hdGVyaWFsOyJsYXRpdHVkaW5hbCIhPT1hJiYibG9uZ2l0dWRpbmFsIiE9PWEmJmNvbnNvbGUuZXJyb3IoImJsdXIgZGlyZWN0aW9uIG11c3QgYmUgZWl0aGVyIGxhdGl0dWRpbmFsIG9yIGxvbmdpdHVkaW5hbCEiKTtjb25zdCBjPW5ldyBwc3QoUXN0W29dLGwpLGQ9bC51bmlmb3JtcyxwPSRzdFtuXS0xLG09aXNGaW5pdGUoaSk/TWF0aC5QSS8oMipwKToyKk1hdGguUEkvMzksdT1pL20sZj1pc0Zpbml0ZShpKT8xK01hdGguZmxvb3IoMyp1KToyMDtmPjIwJiZjb25zb2xlLndhcm4oYHNpZ21hUmFkaWFucywgJHtpfSwgaXMgdG9vIGxhcmdlIGFuZCB3aWxsIGNsaXAsIGFzIGl0IHJlcXVlc3RlZCAke2Z9IHNhbXBsZXMgd2hlbiB0aGUgbWF4aW11bSBpcyBzZXQgdG8gMjBgKTtjb25zdCBnPVtdO2xldCBoPTA7Zm9yKGxldCB0PTA7dDwyMDsrK3Qpe2NvbnN0IGU9dC91LG49TWF0aC5leHAoLWUqZS8yKTtnLnB1c2gobiksMD09dD9oKz1uOnQ8ZiYmKGgrPTIqbil9Zm9yKGxldCB0PTA7dDxnLmxlbmd0aDt0KyspZ1t0XT1nW3RdL2g7ZC5lbnZNYXAudmFsdWU9dC50ZXh0dXJlLGQuc2FtcGxlcy52YWx1ZT1mLGQud2VpZ2h0cy52YWx1ZT1nLGQubGF0aXR1ZGluYWwudmFsdWU9ImxhdGl0dWRpbmFsIj09PWEsciYmKGQucG9sZUF4aXMudmFsdWU9ciksZC5kVGhldGEudmFsdWU9bSxkLm1pcEludC52YWx1ZT04LW4sZC5pbnB1dEVuY29kaW5nLnZhbHVlPVpzdFt0LnRleHR1cmUuZW5jb2RpbmddLGQub3V0cHV0RW5jb2RpbmcudmFsdWU9WnN0W3QudGV4dHVyZS5lbmNvZGluZ107Y29uc3QgYj0kc3Rbb107cGx0KGUsMypNYXRoLm1heCgwLFdzdC0yKmIpLCgwPT09bz8wOjIqV3N0KSsyKmIqKG8+ND9vLTgrNDowKSwzKmIsMipiKSxzLnNldFJlbmRlclRhcmdldChlKSxzLnJlbmRlcihjLEpzdCl9fWZ1bmN0aW9uIGxsdCh0KXtyZXR1cm4gdm9pZCAwIT09dCYmdC50eXBlPT09X2l0JiYodC5lbmNvZGluZz09PXppdHx8dC5lbmNvZGluZz09PUlpdHx8dC5lbmNvZGluZz09PUhpdCl9ZnVuY3Rpb24gY2x0KCl7Y29uc3QgdD1bXSxlPVtdLG49W107bGV0IG89ODtmb3IobGV0IGk9MDtpPHFzdDtpKyspe2NvbnN0IGE9TWF0aC5wb3coMixvKTtlLnB1c2goYSk7bGV0IHI9MS9hO2k+ND9yPVlzdFtpLTgrNC0xXTowPT1pJiYocj0wKSxuLnB1c2gocik7Y29uc3Qgcz0xLyhhLTEpLGw9LXMvMixjPTErcy8yLGQ9W2wsbCxjLGwsYyxjLGwsbCxjLGMsbCxjXSxwPTYsbT02LHU9MyxmPTIsZz0xLGg9bmV3IEZsb2F0MzJBcnJheSh1Km0qcCksYj1uZXcgRmxvYXQzMkFycmF5KGYqbSpwKSx5PW5ldyBGbG9hdDMyQXJyYXkoZyptKnApO2ZvcihsZXQgdD0wO3Q8cDt0Kyspe2NvbnN0IGU9dCUzKjIvMy0xLG49dD4yPzA6LTE7aC5zZXQoW2UsbiwwLGUrMi8zLG4sMCxlKzIvMyxuKzEsMCxlLG4sMCxlKzIvMyxuKzEsMCxlLG4rMSwwXSx1Km0qdCksYi5zZXQoZCxmKm0qdCkseS5zZXQoW3QsdCx0LHQsdCx0XSxnKm0qdCl9Y29uc3QgXz1uZXcgcXJ0O18uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IHpydChoLHUpKSxfLnNldEF0dHJpYnV0ZSgidXYiLG5ldyB6cnQoYixmKSksXy5zZXRBdHRyaWJ1dGUoImZhY2VJbmRleCIsbmV3IHpydCh5LGcpKSx0LnB1c2goXyksbz40JiZvLS19cmV0dXJue19sb2RQbGFuZXM6dCxfc2l6ZUxvZHM6ZSxfc2lnbWFzOm59fWZ1bmN0aW9uIGRsdCh0KXtjb25zdCBlPW5ldyByYXQoMypXc3QsMypXc3QsdCk7cmV0dXJuIGUudGV4dHVyZS5tYXBwaW5nPW1pdCxlLnRleHR1cmUubmFtZT0iUE1SRU0uY3ViZVV2IixlLnNjaXNzb3JUZXN0PSEwLGV9ZnVuY3Rpb24gcGx0KHQsZSxuLG8saSl7dC52aWV3cG9ydC5zZXQoZSxuLG8saSksdC5zY2lzc29yLnNldChlLG4sbyxpKX1mdW5jdGlvbiBtbHQoKXtjb25zdCB0PW5ldyBRaXQoMSwxKTtyZXR1cm4gbmV3IEdzdCh7bmFtZToiRXF1aXJlY3Rhbmd1bGFyVG9DdWJlVVYiLHVuaWZvcm1zOntlbnZNYXA6e3ZhbHVlOm51bGx9LHRleGVsU2l6ZTp7dmFsdWU6dH0saW5wdXRFbmNvZGluZzp7dmFsdWU6WnN0WzNlM119LG91dHB1dEVuY29kaW5nOnt2YWx1ZTpac3RbM2UzXX19LHZlcnRleFNoYWRlcjoiXG5cblx0XHRwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcblx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcblx0XHRhdHRyaWJ1dGUgdmVjMiB1djtcblx0XHRhdHRyaWJ1dGUgZmxvYXQgZmFjZUluZGV4O1xuXG5cdFx0dmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247XG5cblx0XHQvLyBSSCBjb29yZGluYXRlIHN5c3RlbTsgUE1SRU0gZmFjZS1pbmRleGluZyBjb252ZW50aW9uXG5cdFx0dmVjMyBnZXREaXJlY3Rpb24oIHZlYzIgdXYsIGZsb2F0IGZhY2UgKSB7XG5cblx0XHRcdHV2ID0gMi4wICogdXYgLSAxLjA7XG5cblx0XHRcdHZlYzMgZGlyZWN0aW9uID0gdmVjMyggdXYsIDEuMCApO1xuXG5cdFx0XHRpZiAoIGZhY2UgPT0gMC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7IC8vICggMSwgdiwgdSApIHBvcyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC11LCAxLCAtdiApIHBvcyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi54ICo9IC0xLjA7IC8vICggLXUsIHYsIDEgKSBwb3MgelxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDMuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24uenl4O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHogKj0gLTEuMDsgLy8gKCAtMSwgdiwgLXUgKSBuZWcgeFxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDQuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24ueHp5O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHkgKj0gLTEuMDsgLy8gKCAtdSwgLTEsIHYgKSBuZWcgeVxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDUuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24ueiAqPSAtMS4wOyAvLyAoIHUsIHYsIC0xICkgbmVnIHpcblxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZGlyZWN0aW9uO1xuXG5cdFx0fVxuXG5cdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHR2T3V0cHV0RGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uKCB1diwgZmFjZUluZGV4ICk7XG5cdFx0XHRnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtcblxuXHRcdH1cblx0IixmcmFnbWVudFNoYWRlcjoiXG5cblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgaW50O1xuXG5cdFx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdFx0dW5pZm9ybSBzYW1wbGVyMkQgZW52TWFwO1xuXHRcdFx0dW5pZm9ybSB2ZWMyIHRleGVsU2l6ZTtcblxuXHRcdFx0XG5cblx0XHR1bmlmb3JtIGludCBpbnB1dEVuY29kaW5nO1xuXHRcdHVuaWZvcm0gaW50IG91dHB1dEVuY29kaW5nO1xuXG5cdFx0I2luY2x1ZGUgPGVuY29kaW5nc19wYXJzX2ZyYWdtZW50PlxuXG5cdFx0dmVjNCBpbnB1dFRleGVsVG9MaW5lYXIoIHZlYzQgdmFsdWUgKSB7XG5cblx0XHRcdGlmICggaW5wdXRFbmNvZGluZyA9PSAwICkge1xuXG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAxICkge1xuXG5cdFx0XHRcdHJldHVybiBzUkdCVG9MaW5lYXIoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMiApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCRVRvTGluZWFyKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDMgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQk1Ub0xpbmVhciggdmFsdWUsIDcuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQk1Ub0xpbmVhciggdmFsdWUsIDE2LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSA1ICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JEVG9MaW5lYXIoIHZhbHVlLCAyNTYuMCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHJldHVybiBHYW1tYVRvTGluZWFyKCB2YWx1ZSwgMi4yICk7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdHZlYzQgbGluZWFyVG9PdXRwdXRUZXhlbCggdmVjNCB2YWx1ZSApIHtcblxuXHRcdFx0aWYgKCBvdXRwdXRFbmNvZGluZyA9PSAwICkge1xuXG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMSApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9zUkdCKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAyICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQkUoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDMgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCTSggdmFsdWUsIDcuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSA0ICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQk0oIHZhbHVlLCAxNi4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDUgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCRCggdmFsdWUsIDI1Ni4wICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvR2FtbWEoIHZhbHVlLCAyLjIgKTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0dmVjNCBlbnZNYXBUZXhlbFRvTGluZWFyKCB2ZWM0IGNvbG9yICkge1xuXG5cdFx0XHRyZXR1cm4gaW5wdXRUZXhlbFRvTGluZWFyKCBjb2xvciApO1xuXG5cdFx0fVxuXHRcblxuXHRcdFx0I2luY2x1ZGUgPGNvbW1vbj5cblxuXHRcdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApO1xuXG5cdFx0XHRcdHZlYzMgb3V0cHV0RGlyZWN0aW9uID0gbm9ybWFsaXplKCB2T3V0cHV0RGlyZWN0aW9uICk7XG5cdFx0XHRcdHZlYzIgdXYgPSBlcXVpcmVjdFV2KCBvdXRwdXREaXJlY3Rpb24gKTtcblxuXHRcdFx0XHR2ZWMyIGYgPSBmcmFjdCggdXYgLyB0ZXhlbFNpemUgLSAwLjUgKTtcblx0XHRcdFx0dXYgLT0gZiAqIHRleGVsU2l6ZTtcblx0XHRcdFx0dmVjMyB0bCA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHRcdFx0dXYueCArPSB0ZXhlbFNpemUueDtcblx0XHRcdFx0dmVjMyB0ciA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHRcdFx0dXYueSArPSB0ZXhlbFNpemUueTtcblx0XHRcdFx0dmVjMyBiciA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHRcdFx0dXYueCAtPSB0ZXhlbFNpemUueDtcblx0XHRcdFx0dmVjMyBibCA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblxuXHRcdFx0XHR2ZWMzIHRtID0gbWl4KCB0bCwgdHIsIGYueCApO1xuXHRcdFx0XHR2ZWMzIGJtID0gbWl4KCBibCwgYnIsIGYueCApO1xuXHRcdFx0XHRnbF9GcmFnQ29sb3IucmdiID0gbWl4KCB0bSwgYm0sIGYueSApO1xuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IGxpbmVhclRvT3V0cHV0VGV4ZWwoIGdsX0ZyYWdDb2xvciApO1xuXG5cdFx0XHR9XG5cdFx0IixibGVuZGluZzowLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExfSl9ZnVuY3Rpb24gdWx0KCl7cmV0dXJuIG5ldyBHc3Qoe25hbWU6IkN1YmVtYXBUb0N1YmVVViIsdW5pZm9ybXM6e2Vudk1hcDp7dmFsdWU6bnVsbH0saW5wdXRFbmNvZGluZzp7dmFsdWU6WnN0WzNlM119LG91dHB1dEVuY29kaW5nOnt2YWx1ZTpac3RbM2UzXX19LHZlcnRleFNoYWRlcjoiXG5cblx0XHRwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcblx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcblx0XHRhdHRyaWJ1dGUgdmVjMiB1djtcblx0XHRhdHRyaWJ1dGUgZmxvYXQgZmFjZUluZGV4O1xuXG5cdFx0dmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247XG5cblx0XHQvLyBSSCBjb29yZGluYXRlIHN5c3RlbTsgUE1SRU0gZmFjZS1pbmRleGluZyBjb252ZW50aW9uXG5cdFx0dmVjMyBnZXREaXJlY3Rpb24oIHZlYzIgdXYsIGZsb2F0IGZhY2UgKSB7XG5cblx0XHRcdHV2ID0gMi4wICogdXYgLSAxLjA7XG5cblx0XHRcdHZlYzMgZGlyZWN0aW9uID0gdmVjMyggdXYsIDEuMCApO1xuXG5cdFx0XHRpZiAoIGZhY2UgPT0gMC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7IC8vICggMSwgdiwgdSApIHBvcyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC11LCAxLCAtdiApIHBvcyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi54ICo9IC0xLjA7IC8vICggLXUsIHYsIDEgKSBwb3MgelxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDMuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24uenl4O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHogKj0gLTEuMDsgLy8gKCAtMSwgdiwgLXUgKSBuZWcgeFxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDQuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24ueHp5O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHkgKj0gLTEuMDsgLy8gKCAtdSwgLTEsIHYgKSBuZWcgeVxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDUuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24ueiAqPSAtMS4wOyAvLyAoIHUsIHYsIC0xICkgbmVnIHpcblxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZGlyZWN0aW9uO1xuXG5cdFx0fVxuXG5cdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHR2T3V0cHV0RGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uKCB1diwgZmFjZUluZGV4ICk7XG5cdFx0XHRnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtcblxuXHRcdH1cblx0IixmcmFnbWVudFNoYWRlcjoiXG5cblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgaW50O1xuXG5cdFx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdFx0dW5pZm9ybSBzYW1wbGVyQ3ViZSBlbnZNYXA7XG5cblx0XHRcdFxuXG5cdFx0dW5pZm9ybSBpbnQgaW5wdXRFbmNvZGluZztcblx0XHR1bmlmb3JtIGludCBvdXRwdXRFbmNvZGluZztcblxuXHRcdCNpbmNsdWRlIDxlbmNvZGluZ3NfcGFyc19mcmFnbWVudD5cblxuXHRcdHZlYzQgaW5wdXRUZXhlbFRvTGluZWFyKCB2ZWM0IHZhbHVlICkge1xuXG5cdFx0XHRpZiAoIGlucHV0RW5jb2RpbmcgPT0gMCApIHtcblxuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMSApIHtcblxuXHRcdFx0XHRyZXR1cm4gc1JHQlRvTGluZWFyKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDIgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQkVUb0xpbmVhciggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAzICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JNVG9MaW5lYXIoIHZhbHVlLCA3LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSA0ICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JNVG9MaW5lYXIoIHZhbHVlLCAxNi4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gNSApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCRFRvTGluZWFyKCB2YWx1ZSwgMjU2LjAgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRyZXR1cm4gR2FtbWFUb0xpbmVhciggdmFsdWUsIDIuMiApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHR2ZWM0IGxpbmVhclRvT3V0cHV0VGV4ZWwoIHZlYzQgdmFsdWUgKSB7XG5cblx0XHRcdGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMCApIHtcblxuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDEgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvc1JHQiggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMiApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JFKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAzICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQk0oIHZhbHVlLCA3LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gNCApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JNKCB2YWx1ZSwgMTYuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSA1ICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQkQoIHZhbHVlLCAyNTYuMCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb0dhbW1hKCB2YWx1ZSwgMi4yICk7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdHZlYzQgZW52TWFwVGV4ZWxUb0xpbmVhciggdmVjNCBjb2xvciApIHtcblxuXHRcdFx0cmV0dXJuIGlucHV0VGV4ZWxUb0xpbmVhciggY29sb3IgKTtcblxuXHRcdH1cblx0XG5cblx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCAwLjAsIDAuMCwgMC4wLCAxLjAgKTtcblx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmVDdWJlKCBlbnZNYXAsIHZlYzMoIC0gdk91dHB1dERpcmVjdGlvbi54LCB2T3V0cHV0RGlyZWN0aW9uLnl6ICkgKSApLnJnYjtcblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gbGluZWFyVG9PdXRwdXRUZXhlbCggZ2xfRnJhZ0NvbG9yICk7XG5cblx0XHRcdH1cblx0XHQiLGJsZW5kaW5nOjAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITF9KX1mdW5jdGlvbiBmbHQodCl7bGV0IGU9bmV3IFdlYWtNYXAsbj1udWxsO2Z1bmN0aW9uIG8odCl7Y29uc3Qgbj10LnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLG8pO2NvbnN0IGk9ZS5nZXQobik7dm9pZCAwIT09aSYmKGkuZGVsZXRlKG4pLGkuZGlzcG9zZSgpKX1yZXR1cm57Z2V0OmZ1bmN0aW9uIGkoYSl7aWYoYSYmYS5pc1RleHR1cmUmJiExPT09YS5pc1JlbmRlclRhcmdldFRleHR1cmUpe2NvbnN0IGk9YS5tYXBwaW5nLHI9MzAzPT09aXx8MzA0PT09aSxzPWk9PT1kaXR8fGk9PT1waXQ7aWYocnx8cyl7aWYoZS5oYXMoYSkpcmV0dXJuIGUuZ2V0KGEpLnRleHR1cmU7e2NvbnN0IGk9YS5pbWFnZTtpZihyJiZpJiZpLmhlaWdodD4wfHxzJiZpJiYoZnVuY3Rpb24gcih0KXtsZXQgZT0wO2ZvcihsZXQgbj0wO248NjtuKyspdm9pZCAwIT09dFtuXSYmZSsrO3JldHVybiA2PT09ZX0pKGkpKXtjb25zdCBpPXQuZ2V0UmVuZGVyVGFyZ2V0KCk7bnVsbD09PW4mJihuPW5ldyBzbHQodCkpO2NvbnN0IHM9cj9uLmZyb21FcXVpcmVjdGFuZ3VsYXIoYSk6bi5mcm9tQ3ViZW1hcChhKTtyZXR1cm4gZS5zZXQoYSxzKSx0LnNldFJlbmRlclRhcmdldChpKSxhLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLG8pLHMudGV4dHVyZX1yZXR1cm4gbnVsbH19fXJldHVybiBhfSxkaXNwb3NlOmZ1bmN0aW9uIGEoKXtlPW5ldyBXZWFrTWFwLG51bGwhPT1uJiYobi5kaXNwb3NlKCksbj1udWxsKX19fWZ1bmN0aW9uIGdsdCh0KXtjb25zdCBlPXt9O2Z1bmN0aW9uIG4obil7aWYodm9pZCAwIT09ZVtuXSlyZXR1cm4gZVtuXTtsZXQgbztzd2l0Y2gobil7Y2FzZSJXRUJHTF9kZXB0aF90ZXh0dXJlIjpvPXQuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9kZXB0aF90ZXh0dXJlIil8fHQuZ2V0RXh0ZW5zaW9uKCJNT1pfV0VCR0xfZGVwdGhfdGV4dHVyZSIpfHx0LmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2RlcHRoX3RleHR1cmUiKTticmVhaztjYXNlIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyI6bz10LmdldEV4dGVuc2lvbigiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJNT1pfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7YnJlYWs7Y2FzZSJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyI6bz10LmdldEV4dGVuc2lvbigiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKXx8dC5nZXRFeHRlbnNpb24oIk1PWl9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpfHx0LmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7YnJlYWs7Y2FzZSJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiOm89dC5nZXRFeHRlbnNpb24oIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpfHx0LmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpO2JyZWFrO2RlZmF1bHQ6bz10LmdldEV4dGVuc2lvbihuKX1yZXR1cm4gZVtuXT1vLG99cmV0dXJue2hhczpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9PW4odCl9LGluaXQ6ZnVuY3Rpb24odCl7dC5pc1dlYkdMMj9uKCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0Iik6KG4oIldFQkdMX2RlcHRoX3RleHR1cmUiKSxuKCJPRVNfdGV4dHVyZV9mbG9hdCIpLG4oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSxuKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpLG4oIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpLG4oIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKSxuKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpLG4oIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSksbigiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiksbigiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0Iil9LGdldDpmdW5jdGlvbih0KXtjb25zdCBlPW4odCk7cmV0dXJuIG51bGw9PT1lJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6ICIrdCsiIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkLiIpLGV9fX1mdW5jdGlvbiBobHQodCxlLG4sbyl7Y29uc3QgaT17fSxhPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHIodCl7Y29uc3Qgcz10LnRhcmdldDtudWxsIT09cy5pbmRleCYmZS5yZW1vdmUocy5pbmRleCk7Zm9yKGNvbnN0IHQgaW4gcy5hdHRyaWJ1dGVzKWUucmVtb3ZlKHMuYXR0cmlidXRlc1t0XSk7cy5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixyKSxkZWxldGUgaVtzLmlkXTtjb25zdCBsPWEuZ2V0KHMpO2wmJihlLnJlbW92ZShsKSxhLmRlbGV0ZShzKSksby5yZWxlYXNlU3RhdGVzT2ZHZW9tZXRyeShzKSwhMD09PXMuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSYmZGVsZXRlIHMuX21heEluc3RhbmNlQ291bnQsbi5tZW1vcnkuZ2VvbWV0cmllcy0tfWZ1bmN0aW9uIHModCl7Y29uc3Qgbj1bXSxvPXQuaW5kZXgsaT10LmF0dHJpYnV0ZXMucG9zaXRpb247bGV0IHI9MDtpZihudWxsIT09byl7Y29uc3QgdD1vLmFycmF5O3I9by52ZXJzaW9uO2ZvcihsZXQgZT0wLG89dC5sZW5ndGg7ZTxvO2UrPTMpe2NvbnN0IG89dFtlKzBdLGk9dFtlKzFdLGE9dFtlKzJdO24ucHVzaChvLGksaSxhLGEsbyl9fWVsc2V7cj1pLnZlcnNpb247Zm9yKGxldCB0PTAsZT1pLmFycmF5Lmxlbmd0aC8zLTE7dDxlO3QrPTMpe2NvbnN0IGU9dCswLG89dCsxLGk9dCsyO24ucHVzaChlLG8sbyxpLGksZSl9fWNvbnN0IHM9bmV3KExydChuKT42NTUzNT9IcnQ6SXJ0KShuLDEpO3MudmVyc2lvbj1yO2NvbnN0IGw9YS5nZXQodCk7bCYmZS5yZW1vdmUobCksYS5zZXQodCxzKX1yZXR1cm57Z2V0OmZ1bmN0aW9uIGwodCxlKXtyZXR1cm4hMD09PWlbZS5pZF18fChlLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHIpLGlbZS5pZF09ITAsbi5tZW1vcnkuZ2VvbWV0cmllcysrKSxlfSx1cGRhdGU6ZnVuY3Rpb24gYyh0KXtjb25zdCBuPXQuYXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiBuKWUudXBkYXRlKG5bdF0sMzQ5NjIpO2NvbnN0IG89dC5tb3JwaEF0dHJpYnV0ZXM7Zm9yKGNvbnN0IHQgaW4gbyl7Y29uc3Qgbj1vW3RdO2ZvcihsZXQgdD0wLG89bi5sZW5ndGg7dDxvO3QrKyllLnVwZGF0ZShuW3RdLDM0OTYyKX19LGdldFdpcmVmcmFtZUF0dHJpYnV0ZTpmdW5jdGlvbiBkKHQpe2NvbnN0IGU9YS5nZXQodCk7aWYoZSl7Y29uc3Qgbj10LmluZGV4O251bGwhPT1uJiZlLnZlcnNpb248bi52ZXJzaW9uJiZzKHQpfWVsc2Ugcyh0KTtyZXR1cm4gYS5nZXQodCl9fX1mdW5jdGlvbiBibHQodCxlLG4sbyl7Y29uc3QgaT1vLmlzV2ViR0wyO2xldCBhLHIsczt0aGlzLnNldE1vZGU9ZnVuY3Rpb24gbCh0KXthPXR9LHRoaXMuc2V0SW5kZXg9ZnVuY3Rpb24gYyh0KXtyPXQudHlwZSxzPXQuYnl0ZXNQZXJFbGVtZW50fSx0aGlzLnJlbmRlcj1mdW5jdGlvbiBkKGUsbyl7dC5kcmF3RWxlbWVudHMoYSxvLHIsZSpzKSxuLnVwZGF0ZShvLGEsMSl9LHRoaXMucmVuZGVySW5zdGFuY2VzPWZ1bmN0aW9uIHAobyxsLGMpe2lmKDA9PT1jKXJldHVybjtsZXQgZCxwO2lmKGkpZD10LHA9ImRyYXdFbGVtZW50c0luc3RhbmNlZCI7ZWxzZSBpZihkPWUuZ2V0KCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikscD0iZHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUiLG51bGw9PT1kKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMSW5kZXhlZEJ1ZmZlclJlbmRlcmVyOiB1c2luZyBUSFJFRS5JbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSBidXQgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydCBleHRlbnNpb24gQU5HTEVfaW5zdGFuY2VkX2FycmF5cy4iKTtkW3BdKGEsbCxyLG8qcyxjKSxuLnVwZGF0ZShsLGEsYyl9fWZ1bmN0aW9uIHlsdCh0KXtjb25zdCBlPXtmcmFtZTowLGNhbGxzOjAsdHJpYW5nbGVzOjAscG9pbnRzOjAsbGluZXM6MH07cmV0dXJue21lbW9yeTp7Z2VvbWV0cmllczowLHRleHR1cmVzOjB9LHJlbmRlcjplLHByb2dyYW1zOm51bGwsYXV0b1Jlc2V0OiEwLHJlc2V0OmZ1bmN0aW9uIG4oKXtlLmZyYW1lKyssZS5jYWxscz0wLGUudHJpYW5nbGVzPTAsZS5wb2ludHM9MCxlLmxpbmVzPTB9LHVwZGF0ZTpmdW5jdGlvbiBvKHQsbixpKXtzd2l0Y2goZS5jYWxscysrLG4pe2Nhc2UgNDplLnRyaWFuZ2xlcys9aSoodC8zKTticmVhaztjYXNlIDE6ZS5saW5lcys9aSoodC8yKTticmVhaztjYXNlIDM6ZS5saW5lcys9aSoodC0xKTticmVhaztjYXNlIDI6ZS5saW5lcys9aSp0O2JyZWFrO2Nhc2UgMDplLnBvaW50cys9aSp0O2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xJbmZvOiBVbmtub3duIGRyYXcgbW9kZToiLG4pfX19fWZ1bmN0aW9uIF9sdCh0LGUpe3JldHVybiB0WzBdLWVbMF19ZnVuY3Rpb24gQ2x0KHQsZSl7cmV0dXJuIE1hdGguYWJzKGVbMV0pLU1hdGguYWJzKHRbMV0pfWZ1bmN0aW9uIE1sdCh0KXtjb25zdCBlPXt9LG49bmV3IEZsb2F0MzJBcnJheSg4KSxvPVtdO2ZvcihsZXQgdD0wO3Q8ODt0Kyspb1t0XT1bdCwwXTtyZXR1cm57dXBkYXRlOmZ1bmN0aW9uIGkoYSxyLHMsbCl7Y29uc3QgYz1hLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyxkPXZvaWQgMD09PWM/MDpjLmxlbmd0aDtsZXQgcD1lW3IuaWRdO2lmKHZvaWQgMD09PXB8fHAubGVuZ3RoIT09ZCl7cD1bXTtmb3IobGV0IHQ9MDt0PGQ7dCsrKXBbdF09W3QsMF07ZVtyLmlkXT1wfWZvcihsZXQgdD0wO3Q8ZDt0Kyspe2NvbnN0IGU9cFt0XTtlWzBdPXQsZVsxXT1jW3RdfXAuc29ydChDbHQpO2ZvcihsZXQgdD0wO3Q8ODt0KyspdDxkJiZwW3RdWzFdPyhvW3RdWzBdPXBbdF1bMF0sb1t0XVsxXT1wW3RdWzFdKToob1t0XVswXT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUixvW3RdWzFdPTApO28uc29ydChfbHQpO2NvbnN0IG09ci5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sdT1yLm1vcnBoQXR0cmlidXRlcy5ub3JtYWw7bGV0IGY9MDtmb3IobGV0IHQ9MDt0PDg7dCsrKXtjb25zdCBlPW9bdF0saT1lWzBdLGE9ZVsxXTtpIT09TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVImJmE/KG0mJnIuZ2V0QXR0cmlidXRlKCJtb3JwaFRhcmdldCIrdCkhPT1tW2ldJiZyLnNldEF0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK3QsbVtpXSksdSYmci5nZXRBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0KSE9PXVbaV0mJnIuc2V0QXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrdCx1W2ldKSxuW3RdPWEsZis9YSk6KG0mJiEwPT09ci5oYXNBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0Iit0KSYmci5kZWxldGVBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0Iit0KSx1JiYhMD09PXIuaGFzQXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrdCkmJnIuZGVsZXRlQXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrdCksblt0XT0wKX1jb25zdCBnPXIubW9ycGhUYXJnZXRzUmVsYXRpdmU/MToxLWY7bC5nZXRVbmlmb3JtcygpLnNldFZhbHVlKHQsIm1vcnBoVGFyZ2V0QmFzZUluZmx1ZW5jZSIsZyksbC5nZXRVbmlmb3JtcygpLnNldFZhbHVlKHQsIm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyIsbil9fX1mdW5jdGlvbiB2bHQodCxlLG4sbyl7bGV0IGk9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYSh0KXtjb25zdCBlPXQudGFyZ2V0O2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsYSksbi5yZW1vdmUoZS5pbnN0YW5jZU1hdHJpeCksbnVsbCE9PWUuaW5zdGFuY2VDb2xvciYmbi5yZW1vdmUoZS5pbnN0YW5jZUNvbG9yKX1yZXR1cm57dXBkYXRlOmZ1bmN0aW9uIHIodCl7Y29uc3Qgcj1vLnJlbmRlci5mcmFtZSxzPWUuZ2V0KHQsdC5nZW9tZXRyeSk7cmV0dXJuIGkuZ2V0KHMpIT09ciYmKGUudXBkYXRlKHMpLGkuc2V0KHMscikpLHQuaXNJbnN0YW5jZWRNZXNoJiYoITE9PT10Lmhhc0V2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpJiZ0LmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpLG4udXBkYXRlKHQuaW5zdGFuY2VNYXRyaXgsMzQ5NjIpLG51bGwhPT10Lmluc3RhbmNlQ29sb3ImJm4udXBkYXRlKHQuaW5zdGFuY2VDb2xvciwzNDk2MikpLHN9LGRpc3Bvc2U6ZnVuY3Rpb24gcygpe2k9bmV3IFdlYWtNYXB9fX1jbGFzcyB4bHQgZXh0ZW5kcyBvYXR7Y29uc3RydWN0b3IodD1udWxsLGU9MSxuPTEsbz0xKXtzdXBlcihudWxsKSx0aGlzLmltYWdlPXtkYXRhOnQsd2lkdGg6ZSxoZWlnaHQ6bixkZXB0aDpvfSx0aGlzLm1hZ0ZpbHRlcj1oaXQsdGhpcy5taW5GaWx0ZXI9aGl0LHRoaXMud3JhcFI9Zml0LHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExLHRoaXMuZmxpcFk9ITEsdGhpcy51bnBhY2tBbGlnbm1lbnQ9MSx0aGlzLm5lZWRzVXBkYXRlPSEwfX14bHQucHJvdG90eXBlLmlzRGF0YVRleHR1cmUyREFycmF5PSEwO2NsYXNzIE9sdCBleHRlbmRzIG9hdHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxvPTEpe3N1cGVyKG51bGwpLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpuLGRlcHRoOm99LHRoaXMubWFnRmlsdGVyPWhpdCx0aGlzLm1pbkZpbHRlcj1oaXQsdGhpcy53cmFwUj1maXQsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fU9sdC5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZTNEPSEwO2NvbnN0IFBsdD1uZXcgb2F0LHdsdD1uZXcgeGx0LGtsdD1uZXcgT2x0LFNsdD1uZXcgdnN0LERsdD1bXSxFbHQ9W10sUmx0PW5ldyBGbG9hdDMyQXJyYXkoMTYpLEFsdD1uZXcgRmxvYXQzMkFycmF5KDkpLFRsdD1uZXcgRmxvYXQzMkFycmF5KDQpO2Z1bmN0aW9uIE5sdCh0LGUsbil7Y29uc3Qgbz10WzBdO2lmKG88PTB8fG8+MClyZXR1cm4gdDtjb25zdCBpPWUqbjtsZXQgYT1EbHRbaV07aWYodm9pZCAwPT09YSYmKGE9bmV3IEZsb2F0MzJBcnJheShpKSxEbHRbaV09YSksMCE9PWUpe28udG9BcnJheShhLDApO2ZvcihsZXQgbz0xLGk9MDtvIT09ZTsrK28paSs9bix0W29dLnRvQXJyYXkoYSxpKX1yZXR1cm4gYX1mdW5jdGlvbiB6bHQodCxlKXtpZih0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgbj0wLG89dC5sZW5ndGg7bjxvO24rKylpZih0W25dIT09ZVtuXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBJbHQodCxlKXtmb3IobGV0IG49MCxvPWUubGVuZ3RoO248bztuKyspdFtuXT1lW25dfWZ1bmN0aW9uIEhsdCh0LGUpe2xldCBuPUVsdFtlXTt2b2lkIDA9PT1uJiYobj1uZXcgSW50MzJBcnJheShlKSxFbHRbZV09bik7Zm9yKGxldCBvPTA7byE9PWU7KytvKW5bb109dC5hbGxvY2F0ZVRleHR1cmVVbml0KCk7cmV0dXJuIG59ZnVuY3Rpb24gRmx0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO25bMF0hPT1lJiYodC51bmlmb3JtMWYodGhpcy5hZGRyLGUpLG5bMF09ZSl9ZnVuY3Rpb24gTGx0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2lmKHZvaWQgMCE9PWUueCluWzBdPT09ZS54JiZuWzFdPT09ZS55fHwodC51bmlmb3JtMmYodGhpcy5hZGRyLGUueCxlLnkpLG5bMF09ZS54LG5bMV09ZS55KTtlbHNle2lmKHpsdChuLGUpKXJldHVybjt0LnVuaWZvcm0yZnYodGhpcy5hZGRyLGUpLElsdChuLGUpfX1mdW5jdGlvbiBCbHQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7aWYodm9pZCAwIT09ZS54KW5bMF09PT1lLngmJm5bMV09PT1lLnkmJm5bMl09PT1lLnp8fCh0LnVuaWZvcm0zZih0aGlzLmFkZHIsZS54LGUueSxlLnopLG5bMF09ZS54LG5bMV09ZS55LG5bMl09ZS56KTtlbHNlIGlmKHZvaWQgMCE9PWUuciluWzBdPT09ZS5yJiZuWzFdPT09ZS5nJiZuWzJdPT09ZS5ifHwodC51bmlmb3JtM2YodGhpcy5hZGRyLGUucixlLmcsZS5iKSxuWzBdPWUucixuWzFdPWUuZyxuWzJdPWUuYik7ZWxzZXtpZih6bHQobixlKSlyZXR1cm47dC51bmlmb3JtM2Z2KHRoaXMuYWRkcixlKSxJbHQobixlKX19ZnVuY3Rpb24gVmx0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2lmKHZvaWQgMCE9PWUueCluWzBdPT09ZS54JiZuWzFdPT09ZS55JiZuWzJdPT09ZS56JiZuWzNdPT09ZS53fHwodC51bmlmb3JtNGYodGhpcy5hZGRyLGUueCxlLnksZS56LGUudyksblswXT1lLngsblsxXT1lLnksblsyXT1lLnosblszXT1lLncpO2Vsc2V7aWYoemx0KG4sZSkpcmV0dXJuO3QudW5pZm9ybTRmdih0aGlzLmFkZHIsZSksSWx0KG4sZSl9fWZ1bmN0aW9uIGpsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZSxvPWUuZWxlbWVudHM7aWYodm9pZCAwPT09byl7aWYoemx0KG4sZSkpcmV0dXJuO3QudW5pZm9ybU1hdHJpeDJmdih0aGlzLmFkZHIsITEsZSksSWx0KG4sZSl9ZWxzZXtpZih6bHQobixvKSlyZXR1cm47VGx0LnNldChvKSx0LnVuaWZvcm1NYXRyaXgyZnYodGhpcy5hZGRyLCExLFRsdCksSWx0KG4sbyl9fWZ1bmN0aW9uIFVsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZSxvPWUuZWxlbWVudHM7aWYodm9pZCAwPT09byl7aWYoemx0KG4sZSkpcmV0dXJuO3QudW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEsZSksSWx0KG4sZSl9ZWxzZXtpZih6bHQobixvKSlyZXR1cm47QWx0LnNldChvKSx0LnVuaWZvcm1NYXRyaXgzZnYodGhpcy5hZGRyLCExLEFsdCksSWx0KG4sbyl9fWZ1bmN0aW9uIEdsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZSxvPWUuZWxlbWVudHM7aWYodm9pZCAwPT09byl7aWYoemx0KG4sZSkpcmV0dXJuO3QudW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEsZSksSWx0KG4sZSl9ZWxzZXtpZih6bHQobixvKSlyZXR1cm47Umx0LnNldChvKSx0LnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5hZGRyLCExLFJsdCksSWx0KG4sbyl9fWZ1bmN0aW9uIFdsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtuWzBdIT09ZSYmKHQudW5pZm9ybTFpKHRoaXMuYWRkcixlKSxuWzBdPWUpfWZ1bmN0aW9uIFlsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTt6bHQobixlKXx8KHQudW5pZm9ybTJpdih0aGlzLmFkZHIsZSksSWx0KG4sZSkpfWZ1bmN0aW9uIHFsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTt6bHQobixlKXx8KHQudW5pZm9ybTNpdih0aGlzLmFkZHIsZSksSWx0KG4sZSkpfWZ1bmN0aW9uIFpsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTt6bHQobixlKXx8KHQudW5pZm9ybTRpdih0aGlzLmFkZHIsZSksSWx0KG4sZSkpfWZ1bmN0aW9uIFhsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtuWzBdIT09ZSYmKHQudW5pZm9ybTF1aSh0aGlzLmFkZHIsZSksblswXT1lKX1mdW5jdGlvbiBLbHQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7emx0KG4sZSl8fCh0LnVuaWZvcm0ydWl2KHRoaXMuYWRkcixlKSxJbHQobixlKSl9ZnVuY3Rpb24gSmx0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO3psdChuLGUpfHwodC51bmlmb3JtM3Vpdih0aGlzLmFkZHIsZSksSWx0KG4sZSkpfWZ1bmN0aW9uIFFsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTt6bHQobixlKXx8KHQudW5pZm9ybTR1aXYodGhpcy5hZGRyLGUpLElsdChuLGUpKX1mdW5jdGlvbiAkbHQodCxlLG4pe2NvbnN0IG89dGhpcy5jYWNoZSxpPW4uYWxsb2NhdGVUZXh0dXJlVW5pdCgpO29bMF0hPT1pJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLGkpLG9bMF09aSksbi5zYWZlU2V0VGV4dHVyZTJEKGV8fFBsdCxpKX1mdW5jdGlvbiB0Y3QodCxlLG4pe2NvbnN0IG89dGhpcy5jYWNoZSxpPW4uYWxsb2NhdGVUZXh0dXJlVW5pdCgpO29bMF0hPT1pJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLGkpLG9bMF09aSksbi5zZXRUZXh0dXJlM0QoZXx8a2x0LGkpfWZ1bmN0aW9uIGVjdCh0LGUsbil7Y29uc3Qgbz10aGlzLmNhY2hlLGk9bi5hbGxvY2F0ZVRleHR1cmVVbml0KCk7b1swXSE9PWkmJih0LnVuaWZvcm0xaSh0aGlzLmFkZHIsaSksb1swXT1pKSxuLnNhZmVTZXRUZXh0dXJlQ3ViZShlfHxTbHQsaSl9ZnVuY3Rpb24gbmN0KHQsZSxuKXtjb25zdCBvPXRoaXMuY2FjaGUsaT1uLmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtvWzBdIT09aSYmKHQudW5pZm9ybTFpKHRoaXMuYWRkcixpKSxvWzBdPWkpLG4uc2V0VGV4dHVyZTJEQXJyYXkoZXx8d2x0LGkpfWZ1bmN0aW9uIG9jdCh0LGUpe3QudW5pZm9ybTFmdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gaWN0KHQsZSl7Y29uc3Qgbj1ObHQoZSx0aGlzLnNpemUsMik7dC51bmlmb3JtMmZ2KHRoaXMuYWRkcixuKX1mdW5jdGlvbiBhY3QodCxlKXtjb25zdCBuPU5sdChlLHRoaXMuc2l6ZSwzKTt0LnVuaWZvcm0zZnYodGhpcy5hZGRyLG4pfWZ1bmN0aW9uIHJjdCh0LGUpe2NvbnN0IG49Tmx0KGUsdGhpcy5zaXplLDQpO3QudW5pZm9ybTRmdih0aGlzLmFkZHIsbil9ZnVuY3Rpb24gc2N0KHQsZSl7Y29uc3Qgbj1ObHQoZSx0aGlzLnNpemUsNCk7dC51bmlmb3JtTWF0cml4MmZ2KHRoaXMuYWRkciwhMSxuKX1mdW5jdGlvbiBsY3QodCxlKXtjb25zdCBuPU5sdChlLHRoaXMuc2l6ZSw5KTt0LnVuaWZvcm1NYXRyaXgzZnYodGhpcy5hZGRyLCExLG4pfWZ1bmN0aW9uIGNjdCh0LGUpe2NvbnN0IG49Tmx0KGUsdGhpcy5zaXplLDE2KTt0LnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5hZGRyLCExLG4pfWZ1bmN0aW9uIGRjdCh0LGUpe3QudW5pZm9ybTFpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gcGN0KHQsZSl7dC51bmlmb3JtMml2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBtY3QodCxlKXt0LnVuaWZvcm0zaXYodGhpcy5hZGRyLGUpfWZ1bmN0aW9uIHVjdCh0LGUpe3QudW5pZm9ybTRpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gZmN0KHQsZSl7dC51bmlmb3JtMXVpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gZ2N0KHQsZSl7dC51bmlmb3JtMnVpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gaGN0KHQsZSl7dC51bmlmb3JtM3Vpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gYmN0KHQsZSl7dC51bmlmb3JtNHVpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24geWN0KHQsZSxuKXtjb25zdCBvPWUubGVuZ3RoLGk9SGx0KG4sbyk7dC51bmlmb3JtMWl2KHRoaXMuYWRkcixpKTtmb3IobGV0IHQ9MDt0IT09bzsrK3Qpbi5zYWZlU2V0VGV4dHVyZTJEKGVbdF18fFBsdCxpW3RdKX1mdW5jdGlvbiBfY3QodCxlLG4pe2NvbnN0IG89ZS5sZW5ndGgsaT1IbHQobixvKTt0LnVuaWZvcm0xaXYodGhpcy5hZGRyLGkpO2ZvcihsZXQgdD0wO3QhPT1vOysrdCluLnNhZmVTZXRUZXh0dXJlQ3ViZShlW3RdfHxTbHQsaVt0XSl9ZnVuY3Rpb24gQ2N0KHQsZSxuKXt0aGlzLmlkPXQsdGhpcy5hZGRyPW4sdGhpcy5jYWNoZT1bXSx0aGlzLnNldFZhbHVlPShmdW5jdGlvbiBvKHQpe3N3aXRjaCh0KXtjYXNlIDUxMjY6cmV0dXJuIEZsdDtjYXNlIDM1NjY0OnJldHVybiBMbHQ7Y2FzZSAzNTY2NTpyZXR1cm4gQmx0O2Nhc2UgMzU2NjY6cmV0dXJuIFZsdDtjYXNlIDM1Njc0OnJldHVybiBqbHQ7Y2FzZSAzNTY3NTpyZXR1cm4gVWx0O2Nhc2UgMzU2NzY6cmV0dXJuIEdsdDtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpyZXR1cm4gV2x0O2Nhc2UgMzU2Njc6Y2FzZSAzNTY3MTpyZXR1cm4gWWx0O2Nhc2UgMzU2Njg6Y2FzZSAzNTY3MjpyZXR1cm4gcWx0O2Nhc2UgMzU2Njk6Y2FzZSAzNTY3MzpyZXR1cm4gWmx0O2Nhc2UgNTEyNTpyZXR1cm4gWGx0O2Nhc2UgMzYyOTQ6cmV0dXJuIEtsdDtjYXNlIDM2Mjk1OnJldHVybiBKbHQ7Y2FzZSAzNjI5NjpyZXR1cm4gUWx0O2Nhc2UgMzU2Nzg6Y2FzZSAzNjE5ODpjYXNlIDM2Mjk4OmNhc2UgMzYzMDY6Y2FzZSAzNTY4MjpyZXR1cm4gJGx0O2Nhc2UgMzU2Nzk6Y2FzZSAzNjI5OTpjYXNlIDM2MzA3OnJldHVybiB0Y3Q7Y2FzZSAzNTY4MDpjYXNlIDM2MzAwOmNhc2UgMzYzMDg6Y2FzZSAzNjI5MzpyZXR1cm4gZWN0O2Nhc2UgMzYyODk6Y2FzZSAzNjMwMzpjYXNlIDM2MzExOmNhc2UgMzYyOTI6cmV0dXJuIG5jdH19KShlLnR5cGUpfWZ1bmN0aW9uIE1jdCh0LGUsbil7dGhpcy5pZD10LHRoaXMuYWRkcj1uLHRoaXMuY2FjaGU9W10sdGhpcy5zaXplPWUuc2l6ZSx0aGlzLnNldFZhbHVlPShmdW5jdGlvbiBvKHQpe3N3aXRjaCh0KXtjYXNlIDUxMjY6cmV0dXJuIG9jdDtjYXNlIDM1NjY0OnJldHVybiBpY3Q7Y2FzZSAzNTY2NTpyZXR1cm4gYWN0O2Nhc2UgMzU2NjY6cmV0dXJuIHJjdDtjYXNlIDM1Njc0OnJldHVybiBzY3Q7Y2FzZSAzNTY3NTpyZXR1cm4gbGN0O2Nhc2UgMzU2NzY6cmV0dXJuIGNjdDtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpyZXR1cm4gZGN0O2Nhc2UgMzU2Njc6Y2FzZSAzNTY3MTpyZXR1cm4gcGN0O2Nhc2UgMzU2Njg6Y2FzZSAzNTY3MjpyZXR1cm4gbWN0O2Nhc2UgMzU2Njk6Y2FzZSAzNTY3MzpyZXR1cm4gdWN0O2Nhc2UgNTEyNTpyZXR1cm4gZmN0O2Nhc2UgMzYyOTQ6cmV0dXJuIGdjdDtjYXNlIDM2Mjk1OnJldHVybiBoY3Q7Y2FzZSAzNjI5NjpyZXR1cm4gYmN0O2Nhc2UgMzU2Nzg6Y2FzZSAzNjE5ODpjYXNlIDM2Mjk4OmNhc2UgMzYzMDY6Y2FzZSAzNTY4MjpyZXR1cm4geWN0O2Nhc2UgMzU2ODA6Y2FzZSAzNjMwMDpjYXNlIDM2MzA4OmNhc2UgMzYyOTM6cmV0dXJuIF9jdH19KShlLnR5cGUpfWZ1bmN0aW9uIHZjdCh0KXt0aGlzLmlkPXQsdGhpcy5zZXE9W10sdGhpcy5tYXA9e319TWN0LnByb3RvdHlwZS51cGRhdGVDYWNoZT1mdW5jdGlvbih0KXtjb25zdCBlPXRoaXMuY2FjaGU7dCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSYmZS5sZW5ndGghPT10Lmxlbmd0aCYmKHRoaXMuY2FjaGU9bmV3IEZsb2F0MzJBcnJheSh0Lmxlbmd0aCkpLElsdChlLHQpfSx2Y3QucHJvdG90eXBlLnNldFZhbHVlPWZ1bmN0aW9uKHQsZSxuKXtjb25zdCBvPXRoaXMuc2VxO2ZvcihsZXQgaT0wLGE9by5sZW5ndGg7aSE9PWE7KytpKXtjb25zdCBhPW9baV07YS5zZXRWYWx1ZSh0LGVbYS5pZF0sbil9fTtjb25zdCB4Y3Q9LyhcdyspKFxdKT8oXFt8XC4pPy9nO2Z1bmN0aW9uIE9jdCh0LGUpe3Quc2VxLnB1c2goZSksdC5tYXBbZS5pZF09ZX1mdW5jdGlvbiBQY3QodCxlLG4pe2NvbnN0IG89dC5uYW1lLGk9by5sZW5ndGg7Zm9yKHhjdC5sYXN0SW5kZXg9MDs7KXtjb25zdCBhPXhjdC5leGVjKG8pLHI9eGN0Lmxhc3RJbmRleDtsZXQgcz1hWzFdO2NvbnN0IGw9YVszXTtpZigiXSI9PT1hWzJdJiYoc3w9MCksdm9pZCAwPT09bHx8IlsiPT09bCYmcisyPT09aSl7T2N0KG4sdm9pZCAwPT09bD9uZXcgQ2N0KHMsdCxlKTpuZXcgTWN0KHMsdCxlKSk7YnJlYWt9e2xldCB0PW4ubWFwW3NdO3ZvaWQgMD09PXQmJih0PW5ldyB2Y3QocyksT2N0KG4sdCkpLG49dH19fWZ1bmN0aW9uIHdjdCh0LGUpe3RoaXMuc2VxPVtdLHRoaXMubWFwPXt9O2NvbnN0IG49dC5nZXRQcm9ncmFtUGFyYW1ldGVyKGUsMzU3MTgpO2ZvcihsZXQgbz0wO288bjsrK28pe2NvbnN0IG49dC5nZXRBY3RpdmVVbmlmb3JtKGUsbyk7UGN0KG4sdC5nZXRVbmlmb3JtTG9jYXRpb24oZSxuLm5hbWUpLHRoaXMpfX1mdW5jdGlvbiBrY3QodCxlLG4pe2NvbnN0IG89dC5jcmVhdGVTaGFkZXIoZSk7cmV0dXJuIHQuc2hhZGVyU291cmNlKG8sbiksdC5jb21waWxlU2hhZGVyKG8pLG99d2N0LnByb3RvdHlwZS5zZXRWYWx1ZT1mdW5jdGlvbih0LGUsbixvKXtjb25zdCBpPXRoaXMubWFwW2VdO3ZvaWQgMCE9PWkmJmkuc2V0VmFsdWUodCxuLG8pfSx3Y3QucHJvdG90eXBlLnNldE9wdGlvbmFsPWZ1bmN0aW9uKHQsZSxuKXtjb25zdCBvPWVbbl07dm9pZCAwIT09byYmdGhpcy5zZXRWYWx1ZSh0LG4sbyl9LHdjdC51cGxvYWQ9ZnVuY3Rpb24odCxlLG4sbyl7Zm9yKGxldCBpPTAsYT1lLmxlbmd0aDtpIT09YTsrK2kpe2NvbnN0IGE9ZVtpXSxyPW5bYS5pZF07ITEhPT1yLm5lZWRzVXBkYXRlJiZhLnNldFZhbHVlKHQsci52YWx1ZSxvKX19LHdjdC5zZXFXaXRoVmFsdWU9ZnVuY3Rpb24odCxlKXtjb25zdCBuPVtdO2ZvcihsZXQgbz0wLGk9dC5sZW5ndGg7byE9PWk7KytvKXtjb25zdCBpPXRbb107aS5pZCBpbiBlJiZuLnB1c2goaSl9cmV0dXJuIG59O2xldCBTY3Q9MDtmdW5jdGlvbiBEY3QodCl7c3dpdGNoKHQpe2Nhc2Ugeml0OnJldHVyblsiTGluZWFyIiwiKCB2YWx1ZSApIl07Y2FzZSBJaXQ6cmV0dXJuWyJzUkdCIiwiKCB2YWx1ZSApIl07Y2FzZSBGaXQ6cmV0dXJuWyJSR0JFIiwiKCB2YWx1ZSApIl07Y2FzZSAzMDA0OnJldHVyblsiUkdCTSIsIiggdmFsdWUsIDcuMCApIl07Y2FzZSAzMDA1OnJldHVyblsiUkdCTSIsIiggdmFsdWUsIDE2LjAgKSJdO2Nhc2UgMzAwNjpyZXR1cm5bIlJHQkQiLCIoIHZhbHVlLCAyNTYuMCApIl07Y2FzZSBIaXQ6cmV0dXJuWyJHYW1tYSIsIiggdmFsdWUsIGZsb2F0KCBHQU1NQV9GQUNUT1IgKSApIl07Y2FzZSAzMDAzOnJldHVyblsiTG9nTHV2IiwiKCB2YWx1ZSApIl07ZGVmYXVsdDpyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW06IFVuc3VwcG9ydGVkIGVuY29kaW5nOiIsdCksWyJMaW5lYXIiLCIoIHZhbHVlICkiXX19ZnVuY3Rpb24gRWN0KHQsZSxuKXtjb25zdCBvPXQuZ2V0U2hhZGVyUGFyYW1ldGVyKGUsMzU3MTMpLGk9dC5nZXRTaGFkZXJJbmZvTG9nKGUpLnRyaW0oKTtyZXR1cm4gbyYmIiI9PT1pPyIiOiJUSFJFRS5XZWJHTFNoYWRlcjogZ2wuZ2V0U2hhZGVySW5mb0xvZygpICIrbisiXG4iK2krKGZ1bmN0aW9uIGEodCl7Y29uc3QgZT10LnNwbGl0KCJcbiIpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF09dCsxKyI6ICIrZVt0XTtyZXR1cm4gZS5qb2luKCJcbiIpfSkodC5nZXRTaGFkZXJTb3VyY2UoZSkpfWZ1bmN0aW9uIFJjdCh0LGUpe2NvbnN0IG49RGN0KGUpO3JldHVybiJ2ZWM0ICIrdCsiKCB2ZWM0IHZhbHVlICkgeyByZXR1cm4gIituWzBdKyJUb0xpbmVhciIrblsxXSsiOyB9In1mdW5jdGlvbiBBY3QodCxlKXtjb25zdCBuPURjdChlKTtyZXR1cm4idmVjNCAiK3QrIiggdmVjNCB2YWx1ZSApIHsgcmV0dXJuIExpbmVhclRvIituWzBdK25bMV0rIjsgfSJ9ZnVuY3Rpb24gVGN0KHQsZSl7bGV0IG47c3dpdGNoKGUpe2Nhc2UgMTpuPSJMaW5lYXIiO2JyZWFrO2Nhc2UgMjpuPSJSZWluaGFyZCI7YnJlYWs7Y2FzZSAzOm49Ik9wdGltaXplZENpbmVvbiI7YnJlYWs7Y2FzZSA0Om49IkFDRVNGaWxtaWMiO2JyZWFrO2Nhc2UgNTpuPSJDdXN0b20iO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW06IFVuc3VwcG9ydGVkIHRvbmVNYXBwaW5nOiIsZSksbj0iTGluZWFyIn1yZXR1cm4idmVjMyAiK3QrIiggdmVjMyBjb2xvciApIHsgcmV0dXJuICIrbisiVG9uZU1hcHBpbmcoIGNvbG9yICk7IH0ifWZ1bmN0aW9uIE5jdCh0KXtyZXR1cm4iIiE9PXR9ZnVuY3Rpb24gemN0KHQsZSl7cmV0dXJuIHQucmVwbGFjZSgvTlVNX0RJUl9MSUdIVFMvZyxlLm51bURpckxpZ2h0cykucmVwbGFjZSgvTlVNX1NQT1RfTElHSFRTL2csZS5udW1TcG90TGlnaHRzKS5yZXBsYWNlKC9OVU1fUkVDVF9BUkVBX0xJR0hUUy9nLGUubnVtUmVjdEFyZWFMaWdodHMpLnJlcGxhY2UoL05VTV9QT0lOVF9MSUdIVFMvZyxlLm51bVBvaW50TGlnaHRzKS5yZXBsYWNlKC9OVU1fSEVNSV9MSUdIVFMvZyxlLm51bUhlbWlMaWdodHMpLnJlcGxhY2UoL05VTV9ESVJfTElHSFRfU0hBRE9XUy9nLGUubnVtRGlyTGlnaHRTaGFkb3dzKS5yZXBsYWNlKC9OVU1fU1BPVF9MSUdIVF9TSEFET1dTL2csZS5udW1TcG90TGlnaHRTaGFkb3dzKS5yZXBsYWNlKC9OVU1fUE9JTlRfTElHSFRfU0hBRE9XUy9nLGUubnVtUG9pbnRMaWdodFNoYWRvd3MpfWZ1bmN0aW9uIEljdCh0LGUpe3JldHVybiB0LnJlcGxhY2UoL05VTV9DTElQUElOR19QTEFORVMvZyxlLm51bUNsaXBwaW5nUGxhbmVzKS5yZXBsYWNlKC9VTklPTl9DTElQUElOR19QTEFORVMvZyxlLm51bUNsaXBwaW5nUGxhbmVzLWUubnVtQ2xpcEludGVyc2VjdGlvbil9Y29uc3QgSGN0PS9eWyBcdF0qI2luY2x1ZGUgKzwoW1x3XGQuL10rKT4vZ207ZnVuY3Rpb24gRmN0KHQpe3JldHVybiB0LnJlcGxhY2UoSGN0LExjdCl9ZnVuY3Rpb24gTGN0KHQsZSl7Y29uc3Qgbj1Oc3RbZV07aWYodm9pZCAwPT09bil0aHJvdyBuZXcgRXJyb3IoIkNhbiBub3QgcmVzb2x2ZSAjaW5jbHVkZSA8IitlKyI+Iik7cmV0dXJuIEZjdChuKX1jb25zdCBCY3Q9LyNwcmFnbWEgdW5yb2xsX2xvb3BbXHNdKz9mb3IgXCggaW50IGkgXD0gKFxkKylcOyBpIDwgKFxkKylcOyBpIFwrXCsgXCkgXHsoW1xzXFNdKz8pKD89XH0pXH0vZyxWY3Q9LyNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRccytmb3JccypcKFxzKmludFxzK2lccyo9XHMqKFxkKylccyo7XHMqaVxzKjxccyooXGQrKVxzKjtccyppXHMqXCtcK1xzKlwpXHMqeyhbXHNcU10rPyl9XHMrI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQvZztmdW5jdGlvbiBqY3QodCl7cmV0dXJuIHQucmVwbGFjZShWY3QsR2N0KS5yZXBsYWNlKEJjdCxVY3QpfWZ1bmN0aW9uIFVjdCh0LGUsbixvKXtyZXR1cm4gY29uc29sZS53YXJuKCJXZWJHTFByb2dyYW06ICNwcmFnbWEgdW5yb2xsX2xvb3Agc2hhZGVyIHN5bnRheCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQgc3ludGF4IGluc3RlYWQuIiksR2N0KDAsZSxuLG8pfWZ1bmN0aW9uIEdjdCh0LGUsbixvKXtsZXQgaT0iIjtmb3IobGV0IHQ9cGFyc2VJbnQoZSk7dDxwYXJzZUludChuKTt0KyspaSs9by5yZXBsYWNlKC9cW1xzKmlccypcXS9nLCJbICIrdCsiIF0iKS5yZXBsYWNlKC9VTlJPTExFRF9MT09QX0lOREVYL2csdCk7cmV0dXJuIGl9ZnVuY3Rpb24gV2N0KHQpe2xldCBlPSJwcmVjaXNpb24gIit0LnByZWNpc2lvbisiIGZsb2F0O1xucHJlY2lzaW9uICIrdC5wcmVjaXNpb24rIiBpbnQ7IjtyZXR1cm4iaGlnaHAiPT09dC5wcmVjaXNpb24/ZSs9IlxuI2RlZmluZSBISUdIX1BSRUNJU0lPTiI6Im1lZGl1bXAiPT09dC5wcmVjaXNpb24/ZSs9IlxuI2RlZmluZSBNRURJVU1fUFJFQ0lTSU9OIjoibG93cCI9PT10LnByZWNpc2lvbiYmKGUrPSJcbiNkZWZpbmUgTE9XX1BSRUNJU0lPTiIpLGV9ZnVuY3Rpb24gWWN0KHQsZSxuLG8pe2NvbnN0IGk9dC5nZXRDb250ZXh0KCksYT1uLmRlZmluZXM7bGV0IHI9bi52ZXJ0ZXhTaGFkZXIscz1uLmZyYWdtZW50U2hhZGVyO2NvbnN0IGw9KGZ1bmN0aW9uIGModCl7bGV0IGU9IlNIQURPV01BUF9UWVBFX0JBU0lDIjtyZXR1cm4gMT09PXQuc2hhZG93TWFwVHlwZT9lPSJTSEFET1dNQVBfVFlQRV9QQ0YiOjI9PT10LnNoYWRvd01hcFR5cGU/ZT0iU0hBRE9XTUFQX1RZUEVfUENGX1NPRlQiOjM9PT10LnNoYWRvd01hcFR5cGUmJihlPSJTSEFET1dNQVBfVFlQRV9WU00iKSxlfSkobiksZD0oZnVuY3Rpb24gcCh0KXtsZXQgZT0iRU5WTUFQX1RZUEVfQ1VCRSI7aWYodC5lbnZNYXApc3dpdGNoKHQuZW52TWFwTW9kZSl7Y2FzZSBkaXQ6Y2FzZSBwaXQ6ZT0iRU5WTUFQX1RZUEVfQ1VCRSI7YnJlYWs7Y2FzZSBtaXQ6Y2FzZSAzMDc6ZT0iRU5WTUFQX1RZUEVfQ1VCRV9VViJ9cmV0dXJuIGV9KShuKSxtPShmdW5jdGlvbiB1KHQpe2xldCBlPSJFTlZNQVBfTU9ERV9SRUZMRUNUSU9OIjtpZih0LmVudk1hcClzd2l0Y2godC5lbnZNYXBNb2RlKXtjYXNlIHBpdDpjYXNlIDMwNzplPSJFTlZNQVBfTU9ERV9SRUZSQUNUSU9OIn1yZXR1cm4gZX0pKG4pLGY9KGZ1bmN0aW9uIGcodCl7bGV0IGU9IkVOVk1BUF9CTEVORElOR19OT05FIjtpZih0LmVudk1hcClzd2l0Y2godC5jb21iaW5lKXtjYXNlIDA6ZT0iRU5WTUFQX0JMRU5ESU5HX01VTFRJUExZIjticmVhaztjYXNlIDE6ZT0iRU5WTUFQX0JMRU5ESU5HX01JWCI7YnJlYWs7Y2FzZSAyOmU9IkVOVk1BUF9CTEVORElOR19BREQifXJldHVybiBlfSkobiksaD10LmdhbW1hRmFjdG9yPjA/dC5nYW1tYUZhY3RvcjoxLGI9bi5pc1dlYkdMMj8iIjooZnVuY3Rpb24geSh0KXtyZXR1cm5bdC5leHRlbnNpb25EZXJpdmF0aXZlc3x8dC5lbnZNYXBDdWJlVVZ8fHQuYnVtcE1hcHx8dC50YW5nZW50U3BhY2VOb3JtYWxNYXB8fHQuY2xlYXJjb2F0Tm9ybWFsTWFwfHx0LmZsYXRTaGFkaW5nfHwicGh5c2ljYWwiPT09dC5zaGFkZXJJRD8iI2V4dGVuc2lvbiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgOiBlbmFibGUiOiIiLCh0LmV4dGVuc2lvbkZyYWdEZXB0aHx8dC5sb2dhcml0aG1pY0RlcHRoQnVmZmVyKSYmdC5yZW5kZXJlckV4dGVuc2lvbkZyYWdEZXB0aD8iI2V4dGVuc2lvbiBHTF9FWFRfZnJhZ19kZXB0aCA6IGVuYWJsZSI6IiIsdC5leHRlbnNpb25EcmF3QnVmZmVycyYmdC5yZW5kZXJlckV4dGVuc2lvbkRyYXdCdWZmZXJzPyIjZXh0ZW5zaW9uIEdMX0VYVF9kcmF3X2J1ZmZlcnMgOiByZXF1aXJlIjoiIiwodC5leHRlbnNpb25TaGFkZXJUZXh0dXJlTE9EfHx0LmVudk1hcHx8dC50cmFuc21pc3Npb24+MCkmJnQucmVuZGVyZXJFeHRlbnNpb25TaGFkZXJUZXh0dXJlTG9kPyIjZXh0ZW5zaW9uIEdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QgOiBlbmFibGUiOiIiXS5maWx0ZXIoTmN0KS5qb2luKCJcbiIpfSkobiksXz0oZnVuY3Rpb24gQyh0KXtjb25zdCBlPVtdO2Zvcihjb25zdCBuIGluIHQpe2NvbnN0IG89dFtuXTshMSE9PW8mJmUucHVzaCgiI2RlZmluZSAiK24rIiAiK28pfXJldHVybiBlLmpvaW4oIlxuIil9KShhKSxNPWkuY3JlYXRlUHJvZ3JhbSgpO2xldCB2LHgsTz1uLmdsc2xWZXJzaW9uPyIjdmVyc2lvbiAiK24uZ2xzbFZlcnNpb24rIlxuIjoiIjtuLmlzUmF3U2hhZGVyTWF0ZXJpYWw/KHY9W19dLmZpbHRlcihOY3QpLmpvaW4oIlxuIiksdi5sZW5ndGg+MCYmKHYrPSJcbiIpLHg9W2IsX10uZmlsdGVyKE5jdCkuam9pbigiXG4iKSx4Lmxlbmd0aD4wJiYoeCs9IlxuIikpOih2PVtXY3QobiksIiNkZWZpbmUgU0hBREVSX05BTUUgIituLnNoYWRlck5hbWUsXyxuLmluc3RhbmNpbmc/IiNkZWZpbmUgVVNFX0lOU1RBTkNJTkciOiIiLG4uaW5zdGFuY2luZ0NvbG9yPyIjZGVmaW5lIFVTRV9JTlNUQU5DSU5HX0NPTE9SIjoiIixuLnN1cHBvcnRzVmVydGV4VGV4dHVyZXM/IiNkZWZpbmUgVkVSVEVYX1RFWFRVUkVTIjoiIiwiI2RlZmluZSBHQU1NQV9GQUNUT1IgIitoLCIjZGVmaW5lIE1BWF9CT05FUyAiK24ubWF4Qm9uZXMsbi51c2VGb2cmJm4uZm9nPyIjZGVmaW5lIFVTRV9GT0ciOiIiLG4udXNlRm9nJiZuLmZvZ0V4cDI/IiNkZWZpbmUgRk9HX0VYUDIiOiIiLG4ubWFwPyIjZGVmaW5lIFVTRV9NQVAiOiIiLG4uZW52TWFwPyIjZGVmaW5lIFVTRV9FTlZNQVAiOiIiLG4uZW52TWFwPyIjZGVmaW5lICIrbToiIixuLmxpZ2h0TWFwPyIjZGVmaW5lIFVTRV9MSUdIVE1BUCI6IiIsbi5hb01hcD8iI2RlZmluZSBVU0VfQU9NQVAiOiIiLG4uZW1pc3NpdmVNYXA/IiNkZWZpbmUgVVNFX0VNSVNTSVZFTUFQIjoiIixuLmJ1bXBNYXA/IiNkZWZpbmUgVVNFX0JVTVBNQVAiOiIiLG4ubm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9OT1JNQUxNQVAiOiIiLG4ubm9ybWFsTWFwJiZuLm9iamVjdFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIE9CSkVDVFNQQUNFX05PUk1BTE1BUCI6IiIsbi5ub3JtYWxNYXAmJm4udGFuZ2VudFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAiOiIiLG4uY2xlYXJjb2F0TWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRNQVAiOiIiLG4uY2xlYXJjb2F0Um91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfUk9VR0hORVNTTUFQIjoiIixuLmNsZWFyY29hdE5vcm1hbE1hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCI6IiIsbi5kaXNwbGFjZW1lbnRNYXAmJm4uc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcz8iI2RlZmluZSBVU0VfRElTUExBQ0VNRU5UTUFQIjoiIixuLnNwZWN1bGFyTWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUk1BUCI6IiIsbi5zcGVjdWxhckludGVuc2l0eU1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVAiOiIiLG4uc3BlY3VsYXJUaW50TWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUlRJTlRNQVAiOiIiLG4ucm91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9ST1VHSE5FU1NNQVAiOiIiLG4ubWV0YWxuZXNzTWFwPyIjZGVmaW5lIFVTRV9NRVRBTE5FU1NNQVAiOiIiLG4uYWxwaGFNYXA/IiNkZWZpbmUgVVNFX0FMUEhBTUFQIjoiIixuLnRyYW5zbWlzc2lvbj8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OIjoiIixuLnRyYW5zbWlzc2lvbk1hcD8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OTUFQIjoiIixuLnRoaWNrbmVzc01hcD8iI2RlZmluZSBVU0VfVEhJQ0tORVNTTUFQIjoiIixuLnZlcnRleFRhbmdlbnRzPyIjZGVmaW5lIFVTRV9UQU5HRU5UIjoiIixuLnZlcnRleENvbG9ycz8iI2RlZmluZSBVU0VfQ09MT1IiOiIiLG4udmVydGV4QWxwaGFzPyIjZGVmaW5lIFVTRV9DT0xPUl9BTFBIQSI6IiIsbi52ZXJ0ZXhVdnM/IiNkZWZpbmUgVVNFX1VWIjoiIixuLnV2c1ZlcnRleE9ubHk/IiNkZWZpbmUgVVZTX1ZFUlRFWF9PTkxZIjoiIixuLmZsYXRTaGFkaW5nPyIjZGVmaW5lIEZMQVRfU0hBREVEIjoiIixuLnNraW5uaW5nPyIjZGVmaW5lIFVTRV9TS0lOTklORyI6IiIsbi51c2VWZXJ0ZXhUZXh0dXJlPyIjZGVmaW5lIEJPTkVfVEVYVFVSRSI6IiIsbi5tb3JwaFRhcmdldHM/IiNkZWZpbmUgVVNFX01PUlBIVEFSR0VUUyI6IiIsbi5tb3JwaE5vcm1hbHMmJiExPT09bi5mbGF0U2hhZGluZz8iI2RlZmluZSBVU0VfTU9SUEhOT1JNQUxTIjoiIixuLmRvdWJsZVNpZGVkPyIjZGVmaW5lIERPVUJMRV9TSURFRCI6IiIsbi5mbGlwU2lkZWQ/IiNkZWZpbmUgRkxJUF9TSURFRCI6IiIsbi5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lIFVTRV9TSEFET1dNQVAiOiIiLG4uc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSAiK2w6IiIsbi5zaXplQXR0ZW51YXRpb24/IiNkZWZpbmUgVVNFX1NJWkVBVFRFTlVBVElPTiI6IiIsbi5sb2dhcml0aG1pY0RlcHRoQnVmZmVyPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRiI6IiIsbi5sb2dhcml0aG1pY0RlcHRoQnVmZmVyJiZuLnJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRl9FWFQiOiIiLCJ1bmlmb3JtIG1hdDQgbW9kZWxNYXRyaXg7IiwidW5pZm9ybSBtYXQ0IG1vZGVsVmlld01hdHJpeDsiLCJ1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsiLCJ1bmlmb3JtIG1hdDQgdmlld01hdHJpeDsiLCJ1bmlmb3JtIG1hdDMgbm9ybWFsTWF0cml4OyIsInVuaWZvcm0gdmVjMyBjYW1lcmFQb3NpdGlvbjsiLCJ1bmlmb3JtIGJvb2wgaXNPcnRob2dyYXBoaWM7IiwiI2lmZGVmIFVTRV9JTlNUQU5DSU5HIiwiXHRhdHRyaWJ1dGUgbWF0NCBpbnN0YW5jZU1hdHJpeDsiLCIjZW5kaWYiLCIjaWZkZWYgVVNFX0lOU1RBTkNJTkdfQ09MT1IiLCJcdGF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlQ29sb3I7IiwiI2VuZGlmIiwiYXR0cmlidXRlIHZlYzMgcG9zaXRpb247IiwiYXR0cmlidXRlIHZlYzMgbm9ybWFsOyIsImF0dHJpYnV0ZSB2ZWMyIHV2OyIsIiNpZmRlZiBVU0VfVEFOR0VOVCIsIlx0YXR0cmlidXRlIHZlYzQgdGFuZ2VudDsiLCIjZW5kaWYiLCIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBICkiLCJcdGF0dHJpYnV0ZSB2ZWM0IGNvbG9yOyIsIiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApIiwiXHRhdHRyaWJ1dGUgdmVjMyBjb2xvcjsiLCIjZW5kaWYiLCIjaWZkZWYgVVNFX01PUlBIVEFSR0VUUyIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQwOyIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQxOyIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQyOyIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQzOyIsIlx0I2lmZGVmIFVTRV9NT1JQSE5PUk1BTFMiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhOb3JtYWwwOyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDE7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMjsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhOb3JtYWwzOyIsIlx0I2Vsc2UiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQ0OyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDU7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NjsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQ3OyIsIlx0I2VuZGlmIiwiI2VuZGlmIiwiI2lmZGVmIFVTRV9TS0lOTklORyIsIlx0YXR0cmlidXRlIHZlYzQgc2tpbkluZGV4OyIsIlx0YXR0cmlidXRlIHZlYzQgc2tpbldlaWdodDsiLCIjZW5kaWYiLCJcbiJdLmZpbHRlcihOY3QpLmpvaW4oIlxuIikseD1bYixXY3QobiksIiNkZWZpbmUgU0hBREVSX05BTUUgIituLnNoYWRlck5hbWUsXyxuLmFscGhhVGVzdD8iI2RlZmluZSBBTFBIQVRFU1QgIituLmFscGhhVGVzdCsobi5hbHBoYVRlc3QlMT8iIjoiLjAiKToiIiwiI2RlZmluZSBHQU1NQV9GQUNUT1IgIitoLG4udXNlRm9nJiZuLmZvZz8iI2RlZmluZSBVU0VfRk9HIjoiIixuLnVzZUZvZyYmbi5mb2dFeHAyPyIjZGVmaW5lIEZPR19FWFAyIjoiIixuLm1hcD8iI2RlZmluZSBVU0VfTUFQIjoiIixuLm1hdGNhcD8iI2RlZmluZSBVU0VfTUFUQ0FQIjoiIixuLmVudk1hcD8iI2RlZmluZSBVU0VfRU5WTUFQIjoiIixuLmVudk1hcD8iI2RlZmluZSAiK2Q6IiIsbi5lbnZNYXA/IiNkZWZpbmUgIittOiIiLG4uZW52TWFwPyIjZGVmaW5lICIrZjoiIixuLmxpZ2h0TWFwPyIjZGVmaW5lIFVTRV9MSUdIVE1BUCI6IiIsbi5hb01hcD8iI2RlZmluZSBVU0VfQU9NQVAiOiIiLG4uZW1pc3NpdmVNYXA/IiNkZWZpbmUgVVNFX0VNSVNTSVZFTUFQIjoiIixuLmJ1bXBNYXA/IiNkZWZpbmUgVVNFX0JVTVBNQVAiOiIiLG4ubm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9OT1JNQUxNQVAiOiIiLG4ubm9ybWFsTWFwJiZuLm9iamVjdFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIE9CSkVDVFNQQUNFX05PUk1BTE1BUCI6IiIsbi5ub3JtYWxNYXAmJm4udGFuZ2VudFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAiOiIiLG4uY2xlYXJjb2F0TWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRNQVAiOiIiLG4uY2xlYXJjb2F0Um91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfUk9VR0hORVNTTUFQIjoiIixuLmNsZWFyY29hdE5vcm1hbE1hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCI6IiIsbi5zcGVjdWxhck1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJNQVAiOiIiLG4uc3BlY3VsYXJJbnRlbnNpdHlNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSSU5URU5TSVRZTUFQIjoiIixuLnNwZWN1bGFyVGludE1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJUSU5UTUFQIjoiIixuLnJvdWdobmVzc01hcD8iI2RlZmluZSBVU0VfUk9VR0hORVNTTUFQIjoiIixuLm1ldGFsbmVzc01hcD8iI2RlZmluZSBVU0VfTUVUQUxORVNTTUFQIjoiIixuLmFscGhhTWFwPyIjZGVmaW5lIFVTRV9BTFBIQU1BUCI6IiIsbi5zaGVlbj8iI2RlZmluZSBVU0VfU0hFRU4iOiIiLG4udHJhbnNtaXNzaW9uPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT04iOiIiLG4udHJhbnNtaXNzaW9uTWFwPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT05NQVAiOiIiLG4udGhpY2tuZXNzTWFwPyIjZGVmaW5lIFVTRV9USElDS05FU1NNQVAiOiIiLG4udmVydGV4VGFuZ2VudHM/IiNkZWZpbmUgVVNFX1RBTkdFTlQiOiIiLG4udmVydGV4Q29sb3JzfHxuLmluc3RhbmNpbmdDb2xvcj8iI2RlZmluZSBVU0VfQ09MT1IiOiIiLG4udmVydGV4QWxwaGFzPyIjZGVmaW5lIFVTRV9DT0xPUl9BTFBIQSI6IiIsbi52ZXJ0ZXhVdnM/IiNkZWZpbmUgVVNFX1VWIjoiIixuLnV2c1ZlcnRleE9ubHk/IiNkZWZpbmUgVVZTX1ZFUlRFWF9PTkxZIjoiIixuLmdyYWRpZW50TWFwPyIjZGVmaW5lIFVTRV9HUkFESUVOVE1BUCI6IiIsbi5mbGF0U2hhZGluZz8iI2RlZmluZSBGTEFUX1NIQURFRCI6IiIsbi5kb3VibGVTaWRlZD8iI2RlZmluZSBET1VCTEVfU0lERUQiOiIiLG4uZmxpcFNpZGVkPyIjZGVmaW5lIEZMSVBfU0lERUQiOiIiLG4uc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSBVU0VfU0hBRE9XTUFQIjoiIixuLnNoYWRvd01hcEVuYWJsZWQ/IiNkZWZpbmUgIitsOiIiLG4ucHJlbXVsdGlwbGllZEFscGhhPyIjZGVmaW5lIFBSRU1VTFRJUExJRURfQUxQSEEiOiIiLG4ucGh5c2ljYWxseUNvcnJlY3RMaWdodHM/IiNkZWZpbmUgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUUyI6IiIsbi5sb2dhcml0aG1pY0RlcHRoQnVmZmVyPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRiI6IiIsbi5sb2dhcml0aG1pY0RlcHRoQnVmZmVyJiZuLnJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRl9FWFQiOiIiLChuLmV4dGVuc2lvblNoYWRlclRleHR1cmVMT0R8fG4uZW52TWFwKSYmbi5yZW5kZXJlckV4dGVuc2lvblNoYWRlclRleHR1cmVMb2Q/IiNkZWZpbmUgVEVYVFVSRV9MT0RfRVhUIjoiIiwidW5pZm9ybSBtYXQ0IHZpZXdNYXRyaXg7IiwidW5pZm9ybSB2ZWMzIGNhbWVyYVBvc2l0aW9uOyIsInVuaWZvcm0gYm9vbCBpc09ydGhvZ3JhcGhpYzsiLDAhPT1uLnRvbmVNYXBwaW5nPyIjZGVmaW5lIFRPTkVfTUFQUElORyI6IiIsMCE9PW4udG9uZU1hcHBpbmc/TnN0LnRvbmVtYXBwaW5nX3BhcnNfZnJhZ21lbnQ6IiIsMCE9PW4udG9uZU1hcHBpbmc/VGN0KCJ0b25lTWFwcGluZyIsbi50b25lTWFwcGluZyk6IiIsbi5kaXRoZXJpbmc/IiNkZWZpbmUgRElUSEVSSU5HIjoiIixOc3QuZW5jb2RpbmdzX3BhcnNfZnJhZ21lbnQsbi5tYXA/UmN0KCJtYXBUZXhlbFRvTGluZWFyIixuLm1hcEVuY29kaW5nKToiIixuLm1hdGNhcD9SY3QoIm1hdGNhcFRleGVsVG9MaW5lYXIiLG4ubWF0Y2FwRW5jb2RpbmcpOiIiLG4uZW52TWFwP1JjdCgiZW52TWFwVGV4ZWxUb0xpbmVhciIsbi5lbnZNYXBFbmNvZGluZyk6IiIsbi5lbWlzc2l2ZU1hcD9SY3QoImVtaXNzaXZlTWFwVGV4ZWxUb0xpbmVhciIsbi5lbWlzc2l2ZU1hcEVuY29kaW5nKToiIixuLnNwZWN1bGFyVGludE1hcD9SY3QoInNwZWN1bGFyVGludE1hcFRleGVsVG9MaW5lYXIiLG4uc3BlY3VsYXJUaW50TWFwRW5jb2RpbmcpOiIiLG4ubGlnaHRNYXA/UmN0KCJsaWdodE1hcFRleGVsVG9MaW5lYXIiLG4ubGlnaHRNYXBFbmNvZGluZyk6IiIsQWN0KCJsaW5lYXJUb091dHB1dFRleGVsIixuLm91dHB1dEVuY29kaW5nKSxuLmRlcHRoUGFja2luZz8iI2RlZmluZSBERVBUSF9QQUNLSU5HICIrbi5kZXB0aFBhY2tpbmc6IiIsIlxuIl0uZmlsdGVyKE5jdCkuam9pbigiXG4iKSkscj1GY3Qocikscj16Y3QocixuKSxyPUljdChyLG4pLHM9RmN0KHMpLHM9emN0KHMsbikscz1JY3QocyxuKSxyPWpjdChyKSxzPWpjdChzKSxuLmlzV2ViR0wyJiYhMCE9PW4uaXNSYXdTaGFkZXJNYXRlcmlhbCYmKE89IiN2ZXJzaW9uIDMwMCBlc1xuIix2PVsiI2RlZmluZSBhdHRyaWJ1dGUgaW4iLCIjZGVmaW5lIHZhcnlpbmcgb3V0IiwiI2RlZmluZSB0ZXh0dXJlMkQgdGV4dHVyZSJdLmpvaW4oIlxuIikrIlxuIit2LHg9WyIjZGVmaW5lIHZhcnlpbmcgaW4iLG4uZ2xzbFZlcnNpb249PT1qaXQ/IiI6Im91dCBoaWdocCB2ZWM0IHBjX2ZyYWdDb2xvcjsiLG4uZ2xzbFZlcnNpb249PT1qaXQ/IiI6IiNkZWZpbmUgZ2xfRnJhZ0NvbG9yIHBjX2ZyYWdDb2xvciIsIiNkZWZpbmUgZ2xfRnJhZ0RlcHRoRVhUIGdsX0ZyYWdEZXB0aCIsIiNkZWZpbmUgdGV4dHVyZTJEIHRleHR1cmUiLCIjZGVmaW5lIHRleHR1cmVDdWJlIHRleHR1cmUiLCIjZGVmaW5lIHRleHR1cmUyRFByb2ogdGV4dHVyZVByb2oiLCIjZGVmaW5lIHRleHR1cmUyRExvZEVYVCB0ZXh0dXJlTG9kIiwiI2RlZmluZSB0ZXh0dXJlMkRQcm9qTG9kRVhUIHRleHR1cmVQcm9qTG9kIiwiI2RlZmluZSB0ZXh0dXJlQ3ViZUxvZEVYVCB0ZXh0dXJlTG9kIiwiI2RlZmluZSB0ZXh0dXJlMkRHcmFkRVhUIHRleHR1cmVHcmFkIiwiI2RlZmluZSB0ZXh0dXJlMkRQcm9qR3JhZEVYVCB0ZXh0dXJlUHJvakdyYWQiLCIjZGVmaW5lIHRleHR1cmVDdWJlR3JhZEVYVCB0ZXh0dXJlR3JhZCJdLmpvaW4oIlxuIikrIlxuIit4KTtjb25zdCBQPU8reCtzLHc9a2N0KGksMzU2MzMsTyt2K3IpLGs9a2N0KGksMzU2MzIsUCk7aWYoaS5hdHRhY2hTaGFkZXIoTSx3KSxpLmF0dGFjaFNoYWRlcihNLGspLHZvaWQgMCE9PW4uaW5kZXgwQXR0cmlidXRlTmFtZT9pLmJpbmRBdHRyaWJMb2NhdGlvbihNLDAsbi5pbmRleDBBdHRyaWJ1dGVOYW1lKTohMD09PW4ubW9ycGhUYXJnZXRzJiZpLmJpbmRBdHRyaWJMb2NhdGlvbihNLDAsInBvc2l0aW9uIiksaS5saW5rUHJvZ3JhbShNKSx0LmRlYnVnLmNoZWNrU2hhZGVyRXJyb3JzKXtjb25zdCB0PWkuZ2V0UHJvZ3JhbUluZm9Mb2coTSkudHJpbSgpLGU9aS5nZXRTaGFkZXJJbmZvTG9nKHcpLnRyaW0oKSxuPWkuZ2V0U2hhZGVySW5mb0xvZyhrKS50cmltKCk7bGV0IG89ITAsYT0hMDtpZighMT09PWkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihNLDM1NzE0KSl7bz0hMTtjb25zdCBlPUVjdChpLHcsInZlcnRleCIpLG49RWN0KGksaywiZnJhZ21lbnQiKTtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFByb2dyYW06IHNoYWRlciBlcnJvcjogIixpLmdldEVycm9yKCksIjM1NzE1IixpLmdldFByb2dyYW1QYXJhbWV0ZXIoTSwzNTcxNSksImdsLmdldFByb2dyYW1JbmZvTG9nIix0LGUsbil9ZWxzZSIiIT09dD9jb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbTogZ2wuZ2V0UHJvZ3JhbUluZm9Mb2coKSIsdCk6IiIhPT1lJiYiIiE9PW58fChhPSExKTthJiYodGhpcy5kaWFnbm9zdGljcz17cnVubmFibGU6byxwcm9ncmFtTG9nOnQsdmVydGV4U2hhZGVyOntsb2c6ZSxwcmVmaXg6dn0sZnJhZ21lbnRTaGFkZXI6e2xvZzpuLHByZWZpeDp4fX0pfWxldCBTLEQ7cmV0dXJuIGkuZGVsZXRlU2hhZGVyKHcpLGkuZGVsZXRlU2hhZGVyKGspLHRoaXMuZ2V0VW5pZm9ybXM9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09UyYmKFM9bmV3IHdjdChpLE0pKSxTfSx0aGlzLmdldEF0dHJpYnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09RCYmKEQ9KGZ1bmN0aW9uIHQoZSxuKXtjb25zdCBvPXt9LGk9ZS5nZXRQcm9ncmFtUGFyYW1ldGVyKG4sMzU3MjEpO2ZvcihsZXQgdD0wO3Q8aTt0Kyspe2NvbnN0IGk9ZS5nZXRBY3RpdmVBdHRyaWIobix0KS5uYW1lO29baV09ZS5nZXRBdHRyaWJMb2NhdGlvbihuLGkpfXJldHVybiBvfSkoaSxNKSksRH0sdGhpcy5kZXN0cm95PWZ1bmN0aW9uKCl7by5yZWxlYXNlU3RhdGVzT2ZQcm9ncmFtKHRoaXMpLGkuZGVsZXRlUHJvZ3JhbShNKSx0aGlzLnByb2dyYW09dm9pZCAwfSx0aGlzLm5hbWU9bi5zaGFkZXJOYW1lLHRoaXMuaWQ9U2N0KyssdGhpcy5jYWNoZUtleT1lLHRoaXMudXNlZFRpbWVzPTEsdGhpcy5wcm9ncmFtPU0sdGhpcy52ZXJ0ZXhTaGFkZXI9dyx0aGlzLmZyYWdtZW50U2hhZGVyPWssdGhpc31mdW5jdGlvbiBxY3QodCxlLG4sbyxpLGEscil7Y29uc3Qgcz1bXSxsPWkuaXNXZWJHTDIsYz1pLmxvZ2FyaXRobWljRGVwdGhCdWZmZXIsZD1pLmZsb2F0VmVydGV4VGV4dHVyZXMscD1pLm1heFZlcnRleFVuaWZvcm1zLG09aS52ZXJ0ZXhUZXh0dXJlcztsZXQgdT1pLnByZWNpc2lvbjtjb25zdCBmPXtNZXNoRGVwdGhNYXRlcmlhbDoiZGVwdGgiLE1lc2hEaXN0YW5jZU1hdGVyaWFsOiJkaXN0YW5jZVJHQkEiLE1lc2hOb3JtYWxNYXRlcmlhbDoibm9ybWFsIixNZXNoQmFzaWNNYXRlcmlhbDoiYmFzaWMiLE1lc2hMYW1iZXJ0TWF0ZXJpYWw6ImxhbWJlcnQiLE1lc2hQaG9uZ01hdGVyaWFsOiJwaG9uZyIsTWVzaFRvb25NYXRlcmlhbDoidG9vbiIsTWVzaFN0YW5kYXJkTWF0ZXJpYWw6InBoeXNpY2FsIixNZXNoUGh5c2ljYWxNYXRlcmlhbDoicGh5c2ljYWwiLE1lc2hNYXRjYXBNYXRlcmlhbDoibWF0Y2FwIixMaW5lQmFzaWNNYXRlcmlhbDoiYmFzaWMiLExpbmVEYXNoZWRNYXRlcmlhbDoiZGFzaGVkIixQb2ludHNNYXRlcmlhbDoicG9pbnRzIixTaGFkb3dNYXRlcmlhbDoic2hhZG93IixTcHJpdGVNYXRlcmlhbDoic3ByaXRlIn0sZz1bInByZWNpc2lvbiIsImlzV2ViR0wyIiwic3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcyIsIm91dHB1dEVuY29kaW5nIiwiaW5zdGFuY2luZyIsImluc3RhbmNpbmdDb2xvciIsIm1hcCIsIm1hcEVuY29kaW5nIiwibWF0Y2FwIiwibWF0Y2FwRW5jb2RpbmciLCJlbnZNYXAiLCJlbnZNYXBNb2RlIiwiZW52TWFwRW5jb2RpbmciLCJlbnZNYXBDdWJlVVYiLCJsaWdodE1hcCIsImxpZ2h0TWFwRW5jb2RpbmciLCJhb01hcCIsImVtaXNzaXZlTWFwIiwiZW1pc3NpdmVNYXBFbmNvZGluZyIsImJ1bXBNYXAiLCJub3JtYWxNYXAiLCJvYmplY3RTcGFjZU5vcm1hbE1hcCIsInRhbmdlbnRTcGFjZU5vcm1hbE1hcCIsImNsZWFyY29hdE1hcCIsImNsZWFyY29hdFJvdWdobmVzc01hcCIsImNsZWFyY29hdE5vcm1hbE1hcCIsImRpc3BsYWNlbWVudE1hcCIsInNwZWN1bGFyTWFwIiwic3BlY3VsYXJJbnRlbnNpdHlNYXAiLCJzcGVjdWxhclRpbnRNYXAiLCJzcGVjdWxhclRpbnRNYXBFbmNvZGluZyIsInJvdWdobmVzc01hcCIsIm1ldGFsbmVzc01hcCIsImdyYWRpZW50TWFwIiwiYWxwaGFNYXAiLCJjb21iaW5lIiwidmVydGV4Q29sb3JzIiwidmVydGV4QWxwaGFzIiwidmVydGV4VGFuZ2VudHMiLCJ2ZXJ0ZXhVdnMiLCJ1dnNWZXJ0ZXhPbmx5IiwiZm9nIiwidXNlRm9nIiwiZm9nRXhwMiIsImZsYXRTaGFkaW5nIiwic2l6ZUF0dGVudWF0aW9uIiwibG9nYXJpdGhtaWNEZXB0aEJ1ZmZlciIsInNraW5uaW5nIiwibWF4Qm9uZXMiLCJ1c2VWZXJ0ZXhUZXh0dXJlIiwibW9ycGhUYXJnZXRzIiwibW9ycGhOb3JtYWxzIiwicHJlbXVsdGlwbGllZEFscGhhIiwibnVtRGlyTGlnaHRzIiwibnVtUG9pbnRMaWdodHMiLCJudW1TcG90TGlnaHRzIiwibnVtSGVtaUxpZ2h0cyIsIm51bVJlY3RBcmVhTGlnaHRzIiwibnVtRGlyTGlnaHRTaGFkb3dzIiwibnVtUG9pbnRMaWdodFNoYWRvd3MiLCJudW1TcG90TGlnaHRTaGFkb3dzIiwic2hhZG93TWFwRW5hYmxlZCIsInNoYWRvd01hcFR5cGUiLCJ0b25lTWFwcGluZyIsInBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzIiwiYWxwaGFUZXN0IiwiZG91YmxlU2lkZWQiLCJmbGlwU2lkZWQiLCJudW1DbGlwcGluZ1BsYW5lcyIsIm51bUNsaXBJbnRlcnNlY3Rpb24iLCJkZXB0aFBhY2tpbmciLCJkaXRoZXJpbmciLCJzaGVlbiIsInRyYW5zbWlzc2lvbiIsInRyYW5zbWlzc2lvbk1hcCIsInRoaWNrbmVzc01hcCJdO2Z1bmN0aW9uIGgodCl7bGV0IGU7cmV0dXJuIHQmJnQuaXNUZXh0dXJlP2U9dC5lbmNvZGluZzp0JiZ0LmlzV2ViR0xSZW5kZXJUYXJnZXQ/KGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xQcm9ncmFtcy5nZXRUZXh0dXJlRW5jb2RpbmdGcm9tTWFwOiBkb24ndCB1c2UgcmVuZGVyIHRhcmdldHMgYXMgdGV4dHVyZXMuIFVzZSB0aGVpciAudGV4dHVyZSBwcm9wZXJ0eSBpbnN0ZWFkLiIpLGU9dC50ZXh0dXJlLmVuY29kaW5nKTplPXppdCxlfXJldHVybntnZXRQYXJhbWV0ZXJzOmZ1bmN0aW9uIGIoYSxzLGcseSxfKXtjb25zdCBDPXkuZm9nLE09KGEuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9uOmUpLmdldChhLmVudk1hcHx8KGEuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD95LmVudmlyb25tZW50Om51bGwpKSx2PWZbYS50eXBlXSx4PV8uaXNTa2lubmVkTWVzaD8oZnVuY3Rpb24gTyh0KXtjb25zdCBlPXQuc2tlbGV0b24uYm9uZXM7aWYoZClyZXR1cm4gMTAyNDt7Y29uc3QgdD1NYXRoLmZsb29yKChwLTIwKS80KSxuPU1hdGgubWluKHQsZS5sZW5ndGgpO3JldHVybiBuPGUubGVuZ3RoPyhjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFNrZWxldG9uIGhhcyAiK2UubGVuZ3RoKyIgYm9uZXMuIFRoaXMgR1BVIHN1cHBvcnRzICIrbisiLiIpLDApOm59fSkoXyk6MDtsZXQgUCx3O2lmKG51bGwhPT1hLnByZWNpc2lvbiYmKHU9aS5nZXRNYXhQcmVjaXNpb24oYS5wcmVjaXNpb24pLHUhPT1hLnByZWNpc2lvbiYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW0uZ2V0UGFyYW1ldGVyczoiLGEucHJlY2lzaW9uLCJub3Qgc3VwcG9ydGVkLCB1c2luZyIsdSwiaW5zdGVhZC4iKSksdil7Y29uc3QgdD1Jc3Rbdl07UD10LnZlcnRleFNoYWRlcix3PXQuZnJhZ21lbnRTaGFkZXJ9ZWxzZSBQPWEudmVydGV4U2hhZGVyLHc9YS5mcmFnbWVudFNoYWRlcjtjb25zdCBrPXQuZ2V0UmVuZGVyVGFyZ2V0KCk7cmV0dXJue2lzV2ViR0wyOmwsc2hhZGVySUQ6dixzaGFkZXJOYW1lOmEudHlwZSx2ZXJ0ZXhTaGFkZXI6UCxmcmFnbWVudFNoYWRlcjp3LGRlZmluZXM6YS5kZWZpbmVzLGlzUmF3U2hhZGVyTWF0ZXJpYWw6ITA9PT1hLmlzUmF3U2hhZGVyTWF0ZXJpYWwsZ2xzbFZlcnNpb246YS5nbHNsVmVyc2lvbixwcmVjaXNpb246dSxpbnN0YW5jaW5nOiEwPT09Xy5pc0luc3RhbmNlZE1lc2gsaW5zdGFuY2luZ0NvbG9yOiEwPT09Xy5pc0luc3RhbmNlZE1lc2gmJm51bGwhPT1fLmluc3RhbmNlQ29sb3Isc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlczptLG91dHB1dEVuY29kaW5nOm51bGwhPT1rP2goay50ZXh0dXJlKTp0Lm91dHB1dEVuY29kaW5nLG1hcDohIWEubWFwLG1hcEVuY29kaW5nOmgoYS5tYXApLG1hdGNhcDohIWEubWF0Y2FwLG1hdGNhcEVuY29kaW5nOmgoYS5tYXRjYXApLGVudk1hcDohIU0sZW52TWFwTW9kZTpNJiZNLm1hcHBpbmcsZW52TWFwRW5jb2Rpbmc6aChNKSxlbnZNYXBDdWJlVVY6ISFNJiYoTS5tYXBwaW5nPT09bWl0fHwzMDc9PT1NLm1hcHBpbmcpLGxpZ2h0TWFwOiEhYS5saWdodE1hcCxsaWdodE1hcEVuY29kaW5nOmgoYS5saWdodE1hcCksYW9NYXA6ISFhLmFvTWFwLGVtaXNzaXZlTWFwOiEhYS5lbWlzc2l2ZU1hcCxlbWlzc2l2ZU1hcEVuY29kaW5nOmgoYS5lbWlzc2l2ZU1hcCksYnVtcE1hcDohIWEuYnVtcE1hcCxub3JtYWxNYXA6ISFhLm5vcm1hbE1hcCxvYmplY3RTcGFjZU5vcm1hbE1hcDoxPT09YS5ub3JtYWxNYXBUeXBlLHRhbmdlbnRTcGFjZU5vcm1hbE1hcDowPT09YS5ub3JtYWxNYXBUeXBlLGNsZWFyY29hdE1hcDohIWEuY2xlYXJjb2F0TWFwLGNsZWFyY29hdFJvdWdobmVzc01hcDohIWEuY2xlYXJjb2F0Um91Z2huZXNzTWFwLGNsZWFyY29hdE5vcm1hbE1hcDohIWEuY2xlYXJjb2F0Tm9ybWFsTWFwLGRpc3BsYWNlbWVudE1hcDohIWEuZGlzcGxhY2VtZW50TWFwLHJvdWdobmVzc01hcDohIWEucm91Z2huZXNzTWFwLG1ldGFsbmVzc01hcDohIWEubWV0YWxuZXNzTWFwLHNwZWN1bGFyTWFwOiEhYS5zcGVjdWxhck1hcCxzcGVjdWxhckludGVuc2l0eU1hcDohIWEuc3BlY3VsYXJJbnRlbnNpdHlNYXAsc3BlY3VsYXJUaW50TWFwOiEhYS5zcGVjdWxhclRpbnRNYXAsc3BlY3VsYXJUaW50TWFwRW5jb2Rpbmc6aChhLnNwZWN1bGFyVGludE1hcCksYWxwaGFNYXA6ISFhLmFscGhhTWFwLGdyYWRpZW50TWFwOiEhYS5ncmFkaWVudE1hcCxzaGVlbjohIWEuc2hlZW4sdHJhbnNtaXNzaW9uOiEhYS50cmFuc21pc3Npb24sdHJhbnNtaXNzaW9uTWFwOiEhYS50cmFuc21pc3Npb25NYXAsdGhpY2tuZXNzTWFwOiEhYS50aGlja25lc3NNYXAsY29tYmluZTphLmNvbWJpbmUsdmVydGV4VGFuZ2VudHM6ISFhLm5vcm1hbE1hcCYmISFfLmdlb21ldHJ5JiYhIV8uZ2VvbWV0cnkuYXR0cmlidXRlcy50YW5nZW50LHZlcnRleENvbG9yczphLnZlcnRleENvbG9ycyx2ZXJ0ZXhBbHBoYXM6ITA9PT1hLnZlcnRleENvbG9ycyYmISFfLmdlb21ldHJ5JiYhIV8uZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvciYmND09PV8uZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvci5pdGVtU2l6ZSx2ZXJ0ZXhVdnM6ISEoYS5tYXB8fGEuYnVtcE1hcHx8YS5ub3JtYWxNYXB8fGEuc3BlY3VsYXJNYXB8fGEuYWxwaGFNYXB8fGEuZW1pc3NpdmVNYXB8fGEucm91Z2huZXNzTWFwfHxhLm1ldGFsbmVzc01hcHx8YS5jbGVhcmNvYXRNYXB8fGEuY2xlYXJjb2F0Um91Z2huZXNzTWFwfHxhLmNsZWFyY29hdE5vcm1hbE1hcHx8YS5kaXNwbGFjZW1lbnRNYXB8fGEudHJhbnNtaXNzaW9uTWFwfHxhLnRoaWNrbmVzc01hcHx8YS5zcGVjdWxhckludGVuc2l0eU1hcHx8YS5zcGVjdWxhclRpbnRNYXApLHV2c1ZlcnRleE9ubHk6IShhLm1hcHx8YS5idW1wTWFwfHxhLm5vcm1hbE1hcHx8YS5zcGVjdWxhck1hcHx8YS5hbHBoYU1hcHx8YS5lbWlzc2l2ZU1hcHx8YS5yb3VnaG5lc3NNYXB8fGEubWV0YWxuZXNzTWFwfHxhLmNsZWFyY29hdE5vcm1hbE1hcHx8YS50cmFuc21pc3Npb258fGEudHJhbnNtaXNzaW9uTWFwfHxhLnRoaWNrbmVzc01hcHx8YS5zcGVjdWxhckludGVuc2l0eU1hcHx8YS5zcGVjdWxhclRpbnRNYXB8fCFhLmRpc3BsYWNlbWVudE1hcCksZm9nOiEhQyx1c2VGb2c6YS5mb2csZm9nRXhwMjpDJiZDLmlzRm9nRXhwMixmbGF0U2hhZGluZzohIWEuZmxhdFNoYWRpbmcsc2l6ZUF0dGVudWF0aW9uOmEuc2l6ZUF0dGVudWF0aW9uLGxvZ2FyaXRobWljRGVwdGhCdWZmZXI6Yyxza2lubmluZzohMD09PV8uaXNTa2lubmVkTWVzaCYmeD4wLG1heEJvbmVzOngsdXNlVmVydGV4VGV4dHVyZTpkLG1vcnBoVGFyZ2V0czohIV8uZ2VvbWV0cnkmJiEhXy5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sbW9ycGhOb3JtYWxzOiEhXy5nZW9tZXRyeSYmISFfLmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5ub3JtYWwsbnVtRGlyTGlnaHRzOnMuZGlyZWN0aW9uYWwubGVuZ3RoLG51bVBvaW50TGlnaHRzOnMucG9pbnQubGVuZ3RoLG51bVNwb3RMaWdodHM6cy5zcG90Lmxlbmd0aCxudW1SZWN0QXJlYUxpZ2h0czpzLnJlY3RBcmVhLmxlbmd0aCxudW1IZW1pTGlnaHRzOnMuaGVtaS5sZW5ndGgsbnVtRGlyTGlnaHRTaGFkb3dzOnMuZGlyZWN0aW9uYWxTaGFkb3dNYXAubGVuZ3RoLG51bVBvaW50TGlnaHRTaGFkb3dzOnMucG9pbnRTaGFkb3dNYXAubGVuZ3RoLG51bVNwb3RMaWdodFNoYWRvd3M6cy5zcG90U2hhZG93TWFwLmxlbmd0aCxudW1DbGlwcGluZ1BsYW5lczpyLm51bVBsYW5lcyxudW1DbGlwSW50ZXJzZWN0aW9uOnIubnVtSW50ZXJzZWN0aW9uLGRpdGhlcmluZzphLmRpdGhlcmluZyxzaGFkb3dNYXBFbmFibGVkOnQuc2hhZG93TWFwLmVuYWJsZWQmJmcubGVuZ3RoPjAsc2hhZG93TWFwVHlwZTp0LnNoYWRvd01hcC50eXBlLHRvbmVNYXBwaW5nOmEudG9uZU1hcHBlZD90LnRvbmVNYXBwaW5nOjAscGh5c2ljYWxseUNvcnJlY3RMaWdodHM6dC5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cyxwcmVtdWx0aXBsaWVkQWxwaGE6YS5wcmVtdWx0aXBsaWVkQWxwaGEsYWxwaGFUZXN0OmEuYWxwaGFUZXN0LGRvdWJsZVNpZGVkOjI9PT1hLnNpZGUsZmxpcFNpZGVkOjE9PT1hLnNpZGUsZGVwdGhQYWNraW5nOnZvaWQgMCE9PWEuZGVwdGhQYWNraW5nJiZhLmRlcHRoUGFja2luZyxpbmRleDBBdHRyaWJ1dGVOYW1lOmEuaW5kZXgwQXR0cmlidXRlTmFtZSxleHRlbnNpb25EZXJpdmF0aXZlczphLmV4dGVuc2lvbnMmJmEuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcyxleHRlbnNpb25GcmFnRGVwdGg6YS5leHRlbnNpb25zJiZhLmV4dGVuc2lvbnMuZnJhZ0RlcHRoLGV4dGVuc2lvbkRyYXdCdWZmZXJzOmEuZXh0ZW5zaW9ucyYmYS5leHRlbnNpb25zLmRyYXdCdWZmZXJzLGV4dGVuc2lvblNoYWRlclRleHR1cmVMT0Q6YS5leHRlbnNpb25zJiZhLmV4dGVuc2lvbnMuc2hhZGVyVGV4dHVyZUxPRCxyZW5kZXJlckV4dGVuc2lvbkZyYWdEZXB0aDpsfHxvLmhhcygiRVhUX2ZyYWdfZGVwdGgiKSxyZW5kZXJlckV4dGVuc2lvbkRyYXdCdWZmZXJzOmx8fG8uaGFzKCJXRUJHTF9kcmF3X2J1ZmZlcnMiKSxyZW5kZXJlckV4dGVuc2lvblNoYWRlclRleHR1cmVMb2Q6bHx8by5oYXMoIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKSxjdXN0b21Qcm9ncmFtQ2FjaGVLZXk6YS5jdXN0b21Qcm9ncmFtQ2FjaGVLZXkoKX19LGdldFByb2dyYW1DYWNoZUtleTpmdW5jdGlvbiB5KGUpe2NvbnN0IG49W107aWYoZS5zaGFkZXJJRD9uLnB1c2goZS5zaGFkZXJJRCk6KG4ucHVzaChlLmZyYWdtZW50U2hhZGVyKSxuLnB1c2goZS52ZXJ0ZXhTaGFkZXIpKSx2b2lkIDAhPT1lLmRlZmluZXMpZm9yKGNvbnN0IHQgaW4gZS5kZWZpbmVzKW4ucHVzaCh0KSxuLnB1c2goZS5kZWZpbmVzW3RdKTtpZighMT09PWUuaXNSYXdTaGFkZXJNYXRlcmlhbCl7Zm9yKGxldCB0PTA7dDxnLmxlbmd0aDt0Kyspbi5wdXNoKGVbZ1t0XV0pO24ucHVzaCh0Lm91dHB1dEVuY29kaW5nKSxuLnB1c2godC5nYW1tYUZhY3Rvcil9cmV0dXJuIG4ucHVzaChlLmN1c3RvbVByb2dyYW1DYWNoZUtleSksbi5qb2luKCl9LGdldFVuaWZvcm1zOmZ1bmN0aW9uIF8odCl7Y29uc3QgZT1mW3QudHlwZV07bGV0IG47cmV0dXJuIG49ZT9oc3QuY2xvbmUoSXN0W2VdLnVuaWZvcm1zKTp0LnVuaWZvcm1zLG59LGFjcXVpcmVQcm9ncmFtOmZ1bmN0aW9uIEMoZSxuKXtsZXQgbztmb3IobGV0IHQ9MCxlPXMubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9c1t0XTtpZihlLmNhY2hlS2V5PT09bil7bz1lLCsrby51c2VkVGltZXM7YnJlYWt9fXJldHVybiB2b2lkIDA9PT1vJiYobz1uZXcgWWN0KHQsbixlLGEpLHMucHVzaChvKSksb30scmVsZWFzZVByb2dyYW06ZnVuY3Rpb24gTSh0KXtpZigwPT0tLXQudXNlZFRpbWVzKXtjb25zdCBlPXMuaW5kZXhPZih0KTtzW2VdPXNbcy5sZW5ndGgtMV0scy5wb3AoKSx0LmRlc3Ryb3koKX19LHByb2dyYW1zOnN9fWZ1bmN0aW9uIFpjdCgpe2xldCB0PW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24gZShuKXtsZXQgbz10LmdldChuKTtyZXR1cm4gdm9pZCAwPT09byYmKG89e30sdC5zZXQobixvKSksb30scmVtb3ZlOmZ1bmN0aW9uIG4oZSl7dC5kZWxldGUoZSl9LHVwZGF0ZTpmdW5jdGlvbiBvKGUsbixpKXt0LmdldChlKVtuXT1pfSxkaXNwb3NlOmZ1bmN0aW9uIGkoKXt0PW5ldyBXZWFrTWFwfX19ZnVuY3Rpb24gWGN0KHQsZSl7cmV0dXJuIHQuZ3JvdXBPcmRlciE9PWUuZ3JvdXBPcmRlcj90Lmdyb3VwT3JkZXItZS5ncm91cE9yZGVyOnQucmVuZGVyT3JkZXIhPT1lLnJlbmRlck9yZGVyP3QucmVuZGVyT3JkZXItZS5yZW5kZXJPcmRlcjp0LnByb2dyYW0hPT1lLnByb2dyYW0/dC5wcm9ncmFtLmlkLWUucHJvZ3JhbS5pZDp0Lm1hdGVyaWFsLmlkIT09ZS5tYXRlcmlhbC5pZD90Lm1hdGVyaWFsLmlkLWUubWF0ZXJpYWwuaWQ6dC56IT09ZS56P3Quei1lLno6dC5pZC1lLmlkfWZ1bmN0aW9uIEtjdCh0LGUpe3JldHVybiB0Lmdyb3VwT3JkZXIhPT1lLmdyb3VwT3JkZXI/dC5ncm91cE9yZGVyLWUuZ3JvdXBPcmRlcjp0LnJlbmRlck9yZGVyIT09ZS5yZW5kZXJPcmRlcj90LnJlbmRlck9yZGVyLWUucmVuZGVyT3JkZXI6dC56IT09ZS56P2Uuei10Lno6dC5pZC1lLmlkfWZ1bmN0aW9uIEpjdCh0KXtjb25zdCBlPVtdO2xldCBuPTA7Y29uc3Qgbz1bXSxpPVtdLGE9W10scj17aWQ6LTF9O2Z1bmN0aW9uIHMobyxpLGEscyxsLGMpe2xldCBkPWVbbl07Y29uc3QgcD10LmdldChhKTtyZXR1cm4gdm9pZCAwPT09ZD8oZD17aWQ6by5pZCxvYmplY3Q6byxnZW9tZXRyeTppLG1hdGVyaWFsOmEscHJvZ3JhbTpwLnByb2dyYW18fHIsZ3JvdXBPcmRlcjpzLHJlbmRlck9yZGVyOm8ucmVuZGVyT3JkZXIsejpsLGdyb3VwOmN9LGVbbl09ZCk6KGQuaWQ9by5pZCxkLm9iamVjdD1vLGQuZ2VvbWV0cnk9aSxkLm1hdGVyaWFsPWEsZC5wcm9ncmFtPXAucHJvZ3JhbXx8cixkLmdyb3VwT3JkZXI9cyxkLnJlbmRlck9yZGVyPW8ucmVuZGVyT3JkZXIsZC56PWwsZC5ncm91cD1jKSxuKyssZH1yZXR1cm57b3BhcXVlOm8sdHJhbnNtaXNzaXZlOmksdHJhbnNwYXJlbnQ6YSxpbml0OmZ1bmN0aW9uIGwoKXtuPTAsby5sZW5ndGg9MCxpLmxlbmd0aD0wLGEubGVuZ3RoPTB9LHB1c2g6ZnVuY3Rpb24gYyh0LGUsbixyLGwsZCl7Y29uc3QgcD1zKHQsZSxuLHIsbCxkKTtuLnRyYW5zbWlzc2lvbj4wP2kucHVzaChwKTohMD09PW4udHJhbnNwYXJlbnQ/YS5wdXNoKHApOm8ucHVzaChwKX0sdW5zaGlmdDpmdW5jdGlvbiBkKHQsZSxuLHIsbCxjKXtjb25zdCBkPXModCxlLG4scixsLGMpO24udHJhbnNtaXNzaW9uPjA/aS51bnNoaWZ0KGQpOiEwPT09bi50cmFuc3BhcmVudD9hLnVuc2hpZnQoZCk6by51bnNoaWZ0KGQpfSxmaW5pc2g6ZnVuY3Rpb24gcCgpe2ZvcihsZXQgdD1uLG89ZS5sZW5ndGg7dDxvO3QrKyl7Y29uc3Qgbj1lW3RdO2lmKG51bGw9PT1uLmlkKWJyZWFrO24uaWQ9bnVsbCxuLm9iamVjdD1udWxsLG4uZ2VvbWV0cnk9bnVsbCxuLm1hdGVyaWFsPW51bGwsbi5wcm9ncmFtPW51bGwsbi5ncm91cD1udWxsfX0sc29ydDpmdW5jdGlvbiBtKHQsZSl7by5sZW5ndGg+MSYmby5zb3J0KHR8fFhjdCksaS5sZW5ndGg+MSYmaS5zb3J0KGV8fEtjdCksYS5sZW5ndGg+MSYmYS5zb3J0KGV8fEtjdCl9fX1mdW5jdGlvbiBRY3QodCl7bGV0IGU9bmV3IFdlYWtNYXA7cmV0dXJue2dldDpmdW5jdGlvbiBuKG8saSl7bGV0IGE7cmV0dXJuITE9PT1lLmhhcyhvKT8oYT1uZXcgSmN0KHQpLGUuc2V0KG8sW2FdKSk6aT49ZS5nZXQobykubGVuZ3RoPyhhPW5ldyBKY3QodCksZS5nZXQobykucHVzaChhKSk6YT1lLmdldChvKVtpXSxhfSxkaXNwb3NlOmZ1bmN0aW9uIG8oKXtlPW5ldyBXZWFrTWFwfX19ZnVuY3Rpb24gJGN0KCl7Y29uc3QgdD17fTtyZXR1cm57Z2V0OmZ1bmN0aW9uKGUpe2lmKHZvaWQgMCE9PXRbZS5pZF0pcmV0dXJuIHRbZS5pZF07bGV0IG47c3dpdGNoKGUudHlwZSl7Y2FzZSJEaXJlY3Rpb25hbExpZ2h0IjpuPXtkaXJlY3Rpb246bmV3IGNhdCxjb2xvcjpuZXcgUnJ0fTticmVhaztjYXNlIlNwb3RMaWdodCI6bj17cG9zaXRpb246bmV3IGNhdCxkaXJlY3Rpb246bmV3IGNhdCxjb2xvcjpuZXcgUnJ0LGRpc3RhbmNlOjAsY29uZUNvczowLHBlbnVtYnJhQ29zOjAsZGVjYXk6MH07YnJlYWs7Y2FzZSJQb2ludExpZ2h0IjpuPXtwb3NpdGlvbjpuZXcgY2F0LGNvbG9yOm5ldyBScnQsZGlzdGFuY2U6MCxkZWNheTowfTticmVhaztjYXNlIkhlbWlzcGhlcmVMaWdodCI6bj17ZGlyZWN0aW9uOm5ldyBjYXQsc2t5Q29sb3I6bmV3IFJydCxncm91bmRDb2xvcjpuZXcgUnJ0fTticmVhaztjYXNlIlJlY3RBcmVhTGlnaHQiOm49e2NvbG9yOm5ldyBScnQscG9zaXRpb246bmV3IGNhdCxoYWxmV2lkdGg6bmV3IGNhdCxoYWxmSGVpZ2h0Om5ldyBjYXR9fXJldHVybiB0W2UuaWRdPW4sbn19fWxldCB0ZHQ9MDtmdW5jdGlvbiBlZHQodCxlKXtyZXR1cm4oZS5jYXN0U2hhZG93PzE6MCktKHQuY2FzdFNoYWRvdz8xOjApfWZ1bmN0aW9uIG5kdCh0LGUpe2NvbnN0IG49bmV3ICRjdCxvPShmdW5jdGlvbiBpKCl7Y29uc3QgdD17fTtyZXR1cm57Z2V0OmZ1bmN0aW9uKGUpe2lmKHZvaWQgMCE9PXRbZS5pZF0pcmV0dXJuIHRbZS5pZF07bGV0IG47c3dpdGNoKGUudHlwZSl7Y2FzZSJEaXJlY3Rpb25hbExpZ2h0IjpjYXNlIlNwb3RMaWdodCI6bj17c2hhZG93QmlhczowLHNoYWRvd05vcm1hbEJpYXM6MCxzaGFkb3dSYWRpdXM6MSxzaGFkb3dNYXBTaXplOm5ldyBRaXR9O2JyZWFrO2Nhc2UiUG9pbnRMaWdodCI6bj17c2hhZG93QmlhczowLHNoYWRvd05vcm1hbEJpYXM6MCxzaGFkb3dSYWRpdXM6MSxzaGFkb3dNYXBTaXplOm5ldyBRaXQsc2hhZG93Q2FtZXJhTmVhcjoxLHNoYWRvd0NhbWVyYUZhcjoxZTN9fXJldHVybiB0W2UuaWRdPW4sbn19fSkoKSxhPXt2ZXJzaW9uOjAsaGFzaDp7ZGlyZWN0aW9uYWxMZW5ndGg6LTEscG9pbnRMZW5ndGg6LTEsc3BvdExlbmd0aDotMSxyZWN0QXJlYUxlbmd0aDotMSxoZW1pTGVuZ3RoOi0xLG51bURpcmVjdGlvbmFsU2hhZG93czotMSxudW1Qb2ludFNoYWRvd3M6LTEsbnVtU3BvdFNoYWRvd3M6LTF9LGFtYmllbnQ6WzAsMCwwXSxwcm9iZTpbXSxkaXJlY3Rpb25hbDpbXSxkaXJlY3Rpb25hbFNoYWRvdzpbXSxkaXJlY3Rpb25hbFNoYWRvd01hcDpbXSxkaXJlY3Rpb25hbFNoYWRvd01hdHJpeDpbXSxzcG90OltdLHNwb3RTaGFkb3c6W10sc3BvdFNoYWRvd01hcDpbXSxzcG90U2hhZG93TWF0cml4OltdLHJlY3RBcmVhOltdLHJlY3RBcmVhTFRDMTpudWxsLHJlY3RBcmVhTFRDMjpudWxsLHBvaW50OltdLHBvaW50U2hhZG93OltdLHBvaW50U2hhZG93TWFwOltdLHBvaW50U2hhZG93TWF0cml4OltdLGhlbWk6W119O2ZvcihsZXQgdD0wO3Q8OTt0KyspYS5wcm9iZS5wdXNoKG5ldyBjYXQpO2NvbnN0IHI9bmV3IGNhdCxzPW5ldyBCYXQsbD1uZXcgQmF0O3JldHVybntzZXR1cDpmdW5jdGlvbiBjKGkpe2xldCByPTAscz0wLGw9MDtmb3IobGV0IHQ9MDt0PDk7dCsrKWEucHJvYmVbdF0uc2V0KDAsMCwwKTtsZXQgYz0wLGQ9MCxwPTAsbT0wLHU9MCxmPTAsZz0wLGg9MDtpLnNvcnQoZWR0KTtmb3IobGV0IHQ9MCxlPWkubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9aVt0XSxiPWUuY29sb3IseT1lLmludGVuc2l0eSxfPWUuZGlzdGFuY2UsQz1lLnNoYWRvdyYmZS5zaGFkb3cubWFwP2Uuc2hhZG93Lm1hcC50ZXh0dXJlOm51bGw7aWYoZS5pc0FtYmllbnRMaWdodClyKz1iLnIqeSxzKz1iLmcqeSxsKz1iLmIqeTtlbHNlIGlmKGUuaXNMaWdodFByb2JlKWZvcihsZXQgdD0wO3Q8OTt0KyspYS5wcm9iZVt0XS5hZGRTY2FsZWRWZWN0b3IoZS5zaC5jb2VmZmljaWVudHNbdF0seSk7ZWxzZSBpZihlLmlzRGlyZWN0aW9uYWxMaWdodCl7Y29uc3QgdD1uLmdldChlKTtpZih0LmNvbG9yLmNvcHkoZS5jb2xvcikubXVsdGlwbHlTY2FsYXIoZS5pbnRlbnNpdHkpLGUuY2FzdFNoYWRvdyl7Y29uc3QgdD1lLnNoYWRvdyxuPW8uZ2V0KGUpO24uc2hhZG93Qmlhcz10LmJpYXMsbi5zaGFkb3dOb3JtYWxCaWFzPXQubm9ybWFsQmlhcyxuLnNoYWRvd1JhZGl1cz10LnJhZGl1cyxuLnNoYWRvd01hcFNpemU9dC5tYXBTaXplLGEuZGlyZWN0aW9uYWxTaGFkb3dbY109bixhLmRpcmVjdGlvbmFsU2hhZG93TWFwW2NdPUMsYS5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeFtjXT1lLnNoYWRvdy5tYXRyaXgsZisrfWEuZGlyZWN0aW9uYWxbY109dCxjKyt9ZWxzZSBpZihlLmlzU3BvdExpZ2h0KXtjb25zdCB0PW4uZ2V0KGUpO2lmKHQucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGUubWF0cml4V29ybGQpLHQuY29sb3IuY29weShiKS5tdWx0aXBseVNjYWxhcih5KSx0LmRpc3RhbmNlPV8sdC5jb25lQ29zPU1hdGguY29zKGUuYW5nbGUpLHQucGVudW1icmFDb3M9TWF0aC5jb3MoZS5hbmdsZSooMS1lLnBlbnVtYnJhKSksdC5kZWNheT1lLmRlY2F5LGUuY2FzdFNoYWRvdyl7Y29uc3QgdD1lLnNoYWRvdyxuPW8uZ2V0KGUpO24uc2hhZG93Qmlhcz10LmJpYXMsbi5zaGFkb3dOb3JtYWxCaWFzPXQubm9ybWFsQmlhcyxuLnNoYWRvd1JhZGl1cz10LnJhZGl1cyxuLnNoYWRvd01hcFNpemU9dC5tYXBTaXplLGEuc3BvdFNoYWRvd1twXT1uLGEuc3BvdFNoYWRvd01hcFtwXT1DLGEuc3BvdFNoYWRvd01hdHJpeFtwXT1lLnNoYWRvdy5tYXRyaXgsaCsrfWEuc3BvdFtwXT10LHArK31lbHNlIGlmKGUuaXNSZWN0QXJlYUxpZ2h0KXtjb25zdCB0PW4uZ2V0KGUpO3QuY29sb3IuY29weShiKS5tdWx0aXBseVNjYWxhcih5KSx0LmhhbGZXaWR0aC5zZXQoLjUqZS53aWR0aCwwLDApLHQuaGFsZkhlaWdodC5zZXQoMCwuNSplLmhlaWdodCwwKSxhLnJlY3RBcmVhW21dPXQsbSsrfWVsc2UgaWYoZS5pc1BvaW50TGlnaHQpe2NvbnN0IHQ9bi5nZXQoZSk7aWYodC5jb2xvci5jb3B5KGUuY29sb3IpLm11bHRpcGx5U2NhbGFyKGUuaW50ZW5zaXR5KSx0LmRpc3RhbmNlPWUuZGlzdGFuY2UsdC5kZWNheT1lLmRlY2F5LGUuY2FzdFNoYWRvdyl7Y29uc3QgdD1lLnNoYWRvdyxuPW8uZ2V0KGUpO24uc2hhZG93Qmlhcz10LmJpYXMsbi5zaGFkb3dOb3JtYWxCaWFzPXQubm9ybWFsQmlhcyxuLnNoYWRvd1JhZGl1cz10LnJhZGl1cyxuLnNoYWRvd01hcFNpemU9dC5tYXBTaXplLG4uc2hhZG93Q2FtZXJhTmVhcj10LmNhbWVyYS5uZWFyLG4uc2hhZG93Q2FtZXJhRmFyPXQuY2FtZXJhLmZhcixhLnBvaW50U2hhZG93W2RdPW4sYS5wb2ludFNoYWRvd01hcFtkXT1DLGEucG9pbnRTaGFkb3dNYXRyaXhbZF09ZS5zaGFkb3cubWF0cml4LGcrK31hLnBvaW50W2RdPXQsZCsrfWVsc2UgaWYoZS5pc0hlbWlzcGhlcmVMaWdodCl7Y29uc3QgdD1uLmdldChlKTt0LnNreUNvbG9yLmNvcHkoZS5jb2xvcikubXVsdGlwbHlTY2FsYXIoeSksdC5ncm91bmRDb2xvci5jb3B5KGUuZ3JvdW5kQ29sb3IpLm11bHRpcGx5U2NhbGFyKHkpLGEuaGVtaVt1XT10LHUrK319bT4wJiYoZS5pc1dlYkdMMnx8ITA9PT10LmhhcygiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik/KGEucmVjdEFyZWFMVEMxPXpzdC5MVENfRkxPQVRfMSxhLnJlY3RBcmVhTFRDMj16c3QuTFRDX0ZMT0FUXzIpOiEwPT09dC5oYXMoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik/KGEucmVjdEFyZWFMVEMxPXpzdC5MVENfSEFMRl8xLGEucmVjdEFyZWFMVEMyPXpzdC5MVENfSEFMRl8yKTpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBVbmFibGUgdG8gdXNlIFJlY3RBcmVhTGlnaHQuIE1pc3NpbmcgV2ViR0wgZXh0ZW5zaW9ucy4iKSksYS5hbWJpZW50WzBdPXIsYS5hbWJpZW50WzFdPXMsYS5hbWJpZW50WzJdPWw7Y29uc3QgYj1hLmhhc2g7Yi5kaXJlY3Rpb25hbExlbmd0aD09PWMmJmIucG9pbnRMZW5ndGg9PT1kJiZiLnNwb3RMZW5ndGg9PT1wJiZiLnJlY3RBcmVhTGVuZ3RoPT09bSYmYi5oZW1pTGVuZ3RoPT09dSYmYi5udW1EaXJlY3Rpb25hbFNoYWRvd3M9PT1mJiZiLm51bVBvaW50U2hhZG93cz09PWcmJmIubnVtU3BvdFNoYWRvd3M9PT1ofHwoYS5kaXJlY3Rpb25hbC5sZW5ndGg9YyxhLnNwb3QubGVuZ3RoPXAsYS5yZWN0QXJlYS5sZW5ndGg9bSxhLnBvaW50Lmxlbmd0aD1kLGEuaGVtaS5sZW5ndGg9dSxhLmRpcmVjdGlvbmFsU2hhZG93Lmxlbmd0aD1mLGEuZGlyZWN0aW9uYWxTaGFkb3dNYXAubGVuZ3RoPWYsYS5wb2ludFNoYWRvdy5sZW5ndGg9ZyxhLnBvaW50U2hhZG93TWFwLmxlbmd0aD1nLGEuc3BvdFNoYWRvdy5sZW5ndGg9aCxhLnNwb3RTaGFkb3dNYXAubGVuZ3RoPWgsYS5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeC5sZW5ndGg9ZixhLnBvaW50U2hhZG93TWF0cml4Lmxlbmd0aD1nLGEuc3BvdFNoYWRvd01hdHJpeC5sZW5ndGg9aCxiLmRpcmVjdGlvbmFsTGVuZ3RoPWMsYi5wb2ludExlbmd0aD1kLGIuc3BvdExlbmd0aD1wLGIucmVjdEFyZWFMZW5ndGg9bSxiLmhlbWlMZW5ndGg9dSxiLm51bURpcmVjdGlvbmFsU2hhZG93cz1mLGIubnVtUG9pbnRTaGFkb3dzPWcsYi5udW1TcG90U2hhZG93cz1oLGEudmVyc2lvbj10ZHQrKyl9LHNldHVwVmlldzpmdW5jdGlvbiBkKHQsZSl7bGV0IG49MCxvPTAsaT0wLGM9MCxkPTA7Y29uc3QgcD1lLm1hdHJpeFdvcmxkSW52ZXJzZTtmb3IobGV0IGU9MCxtPXQubGVuZ3RoO2U8bTtlKyspe2NvbnN0IG09dFtlXTtpZihtLmlzRGlyZWN0aW9uYWxMaWdodCl7Y29uc3QgdD1hLmRpcmVjdGlvbmFsW25dO3QuZGlyZWN0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihtLm1hdHJpeFdvcmxkKSxyLnNldEZyb21NYXRyaXhQb3NpdGlvbihtLnRhcmdldC5tYXRyaXhXb3JsZCksdC5kaXJlY3Rpb24uc3ViKHIpLHQuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbihwKSxuKyt9ZWxzZSBpZihtLmlzU3BvdExpZ2h0KXtjb25zdCB0PWEuc3BvdFtpXTt0LnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihtLm1hdHJpeFdvcmxkKSx0LnBvc2l0aW9uLmFwcGx5TWF0cml4NChwKSx0LmRpcmVjdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24obS5tYXRyaXhXb3JsZCksci5zZXRGcm9tTWF0cml4UG9zaXRpb24obS50YXJnZXQubWF0cml4V29ybGQpLHQuZGlyZWN0aW9uLnN1YihyKSx0LmRpcmVjdGlvbi50cmFuc2Zvcm1EaXJlY3Rpb24ocCksaSsrfWVsc2UgaWYobS5pc1JlY3RBcmVhTGlnaHQpe2NvbnN0IHQ9YS5yZWN0QXJlYVtjXTt0LnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihtLm1hdHJpeFdvcmxkKSx0LnBvc2l0aW9uLmFwcGx5TWF0cml4NChwKSxsLmlkZW50aXR5KCkscy5jb3B5KG0ubWF0cml4V29ybGQpLHMucHJlbXVsdGlwbHkocCksbC5leHRyYWN0Um90YXRpb24ocyksdC5oYWxmV2lkdGguc2V0KC41Km0ud2lkdGgsMCwwKSx0LmhhbGZIZWlnaHQuc2V0KDAsLjUqbS5oZWlnaHQsMCksdC5oYWxmV2lkdGguYXBwbHlNYXRyaXg0KGwpLHQuaGFsZkhlaWdodC5hcHBseU1hdHJpeDQobCksYysrfWVsc2UgaWYobS5pc1BvaW50TGlnaHQpe2NvbnN0IHQ9YS5wb2ludFtvXTt0LnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihtLm1hdHJpeFdvcmxkKSx0LnBvc2l0aW9uLmFwcGx5TWF0cml4NChwKSxvKyt9ZWxzZSBpZihtLmlzSGVtaXNwaGVyZUxpZ2h0KXtjb25zdCB0PWEuaGVtaVtkXTt0LmRpcmVjdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24obS5tYXRyaXhXb3JsZCksdC5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKHApLHQuZGlyZWN0aW9uLm5vcm1hbGl6ZSgpLGQrK319fSxzdGF0ZTphfX1mdW5jdGlvbiBvZHQodCxlKXtjb25zdCBuPW5ldyBuZHQodCxlKSxvPVtdLGk9W107cmV0dXJue2luaXQ6ZnVuY3Rpb24gYSgpe28ubGVuZ3RoPTAsaS5sZW5ndGg9MH0sc3RhdGU6e2xpZ2h0c0FycmF5Om8sc2hhZG93c0FycmF5OmksbGlnaHRzOm59LHNldHVwTGlnaHRzOmZ1bmN0aW9uIHIoKXtuLnNldHVwKG8pfSxzZXR1cExpZ2h0c1ZpZXc6ZnVuY3Rpb24gcyh0KXtuLnNldHVwVmlldyhvLHQpfSxwdXNoTGlnaHQ6ZnVuY3Rpb24gbCh0KXtvLnB1c2godCl9LHB1c2hTaGFkb3c6ZnVuY3Rpb24gYyh0KXtpLnB1c2godCl9fX1mdW5jdGlvbiBpZHQodCxlKXtsZXQgbj1uZXcgV2Vha01hcDtyZXR1cm57Z2V0OmZ1bmN0aW9uIG8oaSxhPTApe2xldCByO3JldHVybiExPT09bi5oYXMoaSk/KHI9bmV3IG9kdCh0LGUpLG4uc2V0KGksW3JdKSk6YT49bi5nZXQoaSkubGVuZ3RoPyhyPW5ldyBvZHQodCxlKSxuLmdldChpKS5wdXNoKHIpKTpyPW4uZ2V0KGkpW2FdLHJ9LGRpc3Bvc2U6ZnVuY3Rpb24gaSgpe249bmV3IFdlYWtNYXB9fX1jbGFzcyBhZHQgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hEZXB0aE1hdGVyaWFsIix0aGlzLmRlcHRoUGFja2luZz0zMjAwLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy5mb2c9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRlcHRoUGFja2luZz10LmRlcHRoUGFja2luZyx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpc319YWR0LnByb3RvdHlwZS5pc01lc2hEZXB0aE1hdGVyaWFsPSEwO2NsYXNzIHJkdCBleHRlbmRzIE9ydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaERpc3RhbmNlTWF0ZXJpYWwiLHRoaXMucmVmZXJlbmNlUG9zaXRpb249bmV3IGNhdCx0aGlzLm5lYXJEaXN0YW5jZT0xLHRoaXMuZmFyRGlzdGFuY2U9MWUzLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuZm9nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5yZWZlcmVuY2VQb3NpdGlvbi5jb3B5KHQucmVmZXJlbmNlUG9zaXRpb24pLHRoaXMubmVhckRpc3RhbmNlPXQubmVhckRpc3RhbmNlLHRoaXMuZmFyRGlzdGFuY2U9dC5mYXJEaXN0YW5jZSx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpc319ZnVuY3Rpb24gc2R0KHQsZSxuKXtsZXQgbz1uZXcgRXN0O2NvbnN0IGk9bmV3IFFpdCxhPW5ldyBRaXQscj1uZXcgYWF0LHM9bmV3IGFkdCh7ZGVwdGhQYWNraW5nOjMyMDF9KSxsPW5ldyByZHQsYz17fSxkPW4ubWF4VGV4dHVyZVNpemUscD17MDoxLDE6MCwyOjJ9LG09bmV3IGJzdCh7ZGVmaW5lczp7U0FNUExFX1JBVEU6Mi84LEhBTEZfU0FNUExFX1JBVEU6MS84fSx1bmlmb3Jtczp7c2hhZG93X3Bhc3M6e3ZhbHVlOm51bGx9LHJlc29sdXRpb246e3ZhbHVlOm5ldyBRaXR9LHJhZGl1czp7dmFsdWU6NH19LHZlcnRleFNoYWRlcjoidm9pZCBtYWluKCkge1xuXHRnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtcbn0iLGZyYWdtZW50U2hhZGVyOiJ1bmlmb3JtIHNhbXBsZXIyRCBzaGFkb3dfcGFzcztcbnVuaWZvcm0gdmVjMiByZXNvbHV0aW9uO1xudW5pZm9ybSBmbG9hdCByYWRpdXM7XG4jaW5jbHVkZSA8cGFja2luZz5cbnZvaWQgbWFpbigpIHtcblx0ZmxvYXQgbWVhbiA9IDAuMDtcblx0ZmxvYXQgc3F1YXJlZF9tZWFuID0gMC4wO1xuXHRmbG9hdCBkZXB0aCA9IHVucGFja1JHQkFUb0RlcHRoKCB0ZXh0dXJlMkQoIHNoYWRvd19wYXNzLCAoIGdsX0ZyYWdDb29yZC54eSApIC8gcmVzb2x1dGlvbiApICk7XG5cdGZvciAoIGZsb2F0IGkgPSAtMS4wOyBpIDwgMS4wIDsgaSArPSBTQU1QTEVfUkFURSkge1xuXHRcdCNpZmRlZiBIT1JJWk9OVEFMX1BBU1Ncblx0XHRcdHZlYzIgZGlzdHJpYnV0aW9uID0gdW5wYWNrUkdCQVRvMkhhbGYoIHRleHR1cmUyRCggc2hhZG93X3Bhc3MsICggZ2xfRnJhZ0Nvb3JkLnh5ICsgdmVjMiggaSwgMC4wICkgKiByYWRpdXMgKSAvIHJlc29sdXRpb24gKSApO1xuXHRcdFx0bWVhbiArPSBkaXN0cmlidXRpb24ueDtcblx0XHRcdHNxdWFyZWRfbWVhbiArPSBkaXN0cmlidXRpb24ueSAqIGRpc3RyaWJ1dGlvbi55ICsgZGlzdHJpYnV0aW9uLnggKiBkaXN0cmlidXRpb24ueDtcblx0XHQjZWxzZVxuXHRcdFx0ZmxvYXQgZGVwdGggPSB1bnBhY2tSR0JBVG9EZXB0aCggdGV4dHVyZTJEKCBzaGFkb3dfcGFzcywgKCBnbF9GcmFnQ29vcmQueHkgKyB2ZWMyKCAwLjAsIGkgKSAqIHJhZGl1cyApIC8gcmVzb2x1dGlvbiApICk7XG5cdFx0XHRtZWFuICs9IGRlcHRoO1xuXHRcdFx0c3F1YXJlZF9tZWFuICs9IGRlcHRoICogZGVwdGg7XG5cdFx0I2VuZGlmXG5cdH1cblx0bWVhbiA9IG1lYW4gKiBIQUxGX1NBTVBMRV9SQVRFO1xuXHRzcXVhcmVkX21lYW4gPSBzcXVhcmVkX21lYW4gKiBIQUxGX1NBTVBMRV9SQVRFO1xuXHRmbG9hdCBzdGRfZGV2ID0gc3FydCggc3F1YXJlZF9tZWFuIC0gbWVhbiAqIG1lYW4gKTtcblx0Z2xfRnJhZ0NvbG9yID0gcGFjazJIYWxmVG9SR0JBKCB2ZWMyKCBtZWFuLCBzdGRfZGV2ICkgKTtcbn0ifSksdT1tLmNsb25lKCk7dS5kZWZpbmVzLkhPUklaT05UQUxfUEFTUz0xO2NvbnN0IGY9bmV3IHFydDtmLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyB6cnQobmV3IEZsb2F0MzJBcnJheShbLTEsLTEsLjUsMywtMSwuNSwtMSwzLC41XSksMykpO2NvbnN0IGc9bmV3IHBzdChmLG0pLGg9dGhpcztmdW5jdGlvbiBiKG4sbyl7Y29uc3QgaT1lLnVwZGF0ZShnKTttLnVuaWZvcm1zLnNoYWRvd19wYXNzLnZhbHVlPW4ubWFwLnRleHR1cmUsbS51bmlmb3Jtcy5yZXNvbHV0aW9uLnZhbHVlPW4ubWFwU2l6ZSxtLnVuaWZvcm1zLnJhZGl1cy52YWx1ZT1uLnJhZGl1cyx0LnNldFJlbmRlclRhcmdldChuLm1hcFBhc3MpLHQuY2xlYXIoKSx0LnJlbmRlckJ1ZmZlckRpcmVjdChvLG51bGwsaSxtLGcsbnVsbCksdS51bmlmb3Jtcy5zaGFkb3dfcGFzcy52YWx1ZT1uLm1hcFBhc3MudGV4dHVyZSx1LnVuaWZvcm1zLnJlc29sdXRpb24udmFsdWU9bi5tYXBTaXplLHUudW5pZm9ybXMucmFkaXVzLnZhbHVlPW4ucmFkaXVzLHQuc2V0UmVuZGVyVGFyZ2V0KG4ubWFwKSx0LmNsZWFyKCksdC5yZW5kZXJCdWZmZXJEaXJlY3QobyxudWxsLGksdSxnLG51bGwpfWZ1bmN0aW9uIHkoZSxuLG8saSxhLHIsZCl7bGV0IG09bnVsbDtjb25zdCB1PSEwPT09aS5pc1BvaW50TGlnaHQ/ZS5jdXN0b21EaXN0YW5jZU1hdGVyaWFsOmUuY3VzdG9tRGVwdGhNYXRlcmlhbDtpZihtPXZvaWQgMCE9PXU/dTohMD09PWkuaXNQb2ludExpZ2h0P2w6cyx0LmxvY2FsQ2xpcHBpbmdFbmFibGVkJiYhMD09PW8uY2xpcFNoYWRvd3MmJjAhPT1vLmNsaXBwaW5nUGxhbmVzLmxlbmd0aCl7Y29uc3QgdD1tLnV1aWQsZT1vLnV1aWQ7bGV0IG49Y1t0XTt2b2lkIDA9PT1uJiYobj17fSxjW3RdPW4pO2xldCBpPW5bZV07dm9pZCAwPT09aSYmKGk9bS5jbG9uZSgpLG5bZV09aSksbT1pfXJldHVybiBtLnZpc2libGU9by52aXNpYmxlLG0ud2lyZWZyYW1lPW8ud2lyZWZyYW1lLG0uc2lkZT0zPT09ZD9udWxsIT09by5zaGFkb3dTaWRlP28uc2hhZG93U2lkZTpvLnNpZGU6bnVsbCE9PW8uc2hhZG93U2lkZT9vLnNoYWRvd1NpZGU6cFtvLnNpZGVdLG0uY2xpcFNoYWRvd3M9by5jbGlwU2hhZG93cyxtLmNsaXBwaW5nUGxhbmVzPW8uY2xpcHBpbmdQbGFuZXMsbS5jbGlwSW50ZXJzZWN0aW9uPW8uY2xpcEludGVyc2VjdGlvbixtLndpcmVmcmFtZUxpbmV3aWR0aD1vLndpcmVmcmFtZUxpbmV3aWR0aCxtLmxpbmV3aWR0aD1vLmxpbmV3aWR0aCwhMD09PWkuaXNQb2ludExpZ2h0JiYhMD09PW0uaXNNZXNoRGlzdGFuY2VNYXRlcmlhbCYmKG0ucmVmZXJlbmNlUG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGkubWF0cml4V29ybGQpLG0ubmVhckRpc3RhbmNlPWEsbS5mYXJEaXN0YW5jZT1yKSxtfWZ1bmN0aW9uIF8obixpLGEscixzKXtpZighMT09PW4udmlzaWJsZSlyZXR1cm47aWYobi5sYXllcnMudGVzdChpLmxheWVycykmJihuLmlzTWVzaHx8bi5pc0xpbmV8fG4uaXNQb2ludHMpJiYobi5jYXN0U2hhZG93fHxuLnJlY2VpdmVTaGFkb3cmJjM9PT1zKSYmKCFuLmZydXN0dW1DdWxsZWR8fG8uaW50ZXJzZWN0c09iamVjdChuKSkpe24ubW9kZWxWaWV3TWF0cml4Lm11bHRpcGx5TWF0cmljZXMoYS5tYXRyaXhXb3JsZEludmVyc2Usbi5tYXRyaXhXb3JsZCk7Y29uc3Qgbz1lLnVwZGF0ZShuKSxpPW4ubWF0ZXJpYWw7aWYoQXJyYXkuaXNBcnJheShpKSl7Y29uc3QgZT1vLmdyb3Vwcztmb3IobGV0IGw9MCxjPWUubGVuZ3RoO2w8YztsKyspe2NvbnN0IGM9ZVtsXSxkPWlbYy5tYXRlcmlhbEluZGV4XTtpZihkJiZkLnZpc2libGUpe2NvbnN0IGU9eShuLDAsZCxyLGEubmVhcixhLmZhcixzKTt0LnJlbmRlckJ1ZmZlckRpcmVjdChhLG51bGwsbyxlLG4sYyl9fX1lbHNlIGlmKGkudmlzaWJsZSl7Y29uc3QgZT15KG4sMCxpLHIsYS5uZWFyLGEuZmFyLHMpO3QucmVuZGVyQnVmZmVyRGlyZWN0KGEsbnVsbCxvLGUsbixudWxsKX19Y29uc3QgbD1uLmNoaWxkcmVuO2ZvcihsZXQgdD0wLGU9bC5sZW5ndGg7dDxlO3QrKylfKGxbdF0saSxhLHIscyl9dGhpcy5lbmFibGVkPSExLHRoaXMuYXV0b1VwZGF0ZT0hMCx0aGlzLm5lZWRzVXBkYXRlPSExLHRoaXMudHlwZT0xLHRoaXMucmVuZGVyPWZ1bmN0aW9uKGUsbixzKXtpZighMT09PWguZW5hYmxlZClyZXR1cm47aWYoITE9PT1oLmF1dG9VcGRhdGUmJiExPT09aC5uZWVkc1VwZGF0ZSlyZXR1cm47aWYoMD09PWUubGVuZ3RoKXJldHVybjtjb25zdCBsPXQuZ2V0UmVuZGVyVGFyZ2V0KCksYz10LmdldEFjdGl2ZUN1YmVGYWNlKCkscD10LmdldEFjdGl2ZU1pcG1hcExldmVsKCksbT10LnN0YXRlO20uc2V0QmxlbmRpbmcoMCksbS5idWZmZXJzLmNvbG9yLnNldENsZWFyKDEsMSwxLDEpLG0uYnVmZmVycy5kZXB0aC5zZXRUZXN0KCEwKSxtLnNldFNjaXNzb3JUZXN0KCExKTtmb3IobGV0IGw9MCxjPWUubGVuZ3RoO2w8YztsKyspe2NvbnN0IGM9ZVtsXSxwPWMuc2hhZG93O2lmKHZvaWQgMD09PXApe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xTaGFkb3dNYXA6IixjLCJoYXMgbm8gc2hhZG93LiIpO2NvbnRpbnVlfWlmKCExPT09cC5hdXRvVXBkYXRlJiYhMT09PXAubmVlZHNVcGRhdGUpY29udGludWU7aS5jb3B5KHAubWFwU2l6ZSk7Y29uc3QgdT1wLmdldEZyYW1lRXh0ZW50cygpO2lmKGkubXVsdGlwbHkodSksYS5jb3B5KHAubWFwU2l6ZSksKGkueD5kfHxpLnk+ZCkmJihpLng+ZCYmKGEueD1NYXRoLmZsb29yKGQvdS54KSxpLng9YS54KnUueCxwLm1hcFNpemUueD1hLngpLGkueT5kJiYoYS55PU1hdGguZmxvb3IoZC91LnkpLGkueT1hLnkqdS55LHAubWFwU2l6ZS55PWEueSkpLG51bGw9PT1wLm1hcCYmIXAuaXNQb2ludExpZ2h0U2hhZG93JiYzPT09dGhpcy50eXBlKXtjb25zdCB0PXttaW5GaWx0ZXI6Yml0LG1hZ0ZpbHRlcjpiaXQsZm9ybWF0OndpdH07cC5tYXA9bmV3IHJhdChpLngsaS55LHQpLHAubWFwLnRleHR1cmUubmFtZT1jLm5hbWUrIi5zaGFkb3dNYXAiLHAubWFwUGFzcz1uZXcgcmF0KGkueCxpLnksdCkscC5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfW51bGw9PT1wLm1hcCYmKHAubWFwPW5ldyByYXQoaS54LGkueSx7bWluRmlsdGVyOmhpdCxtYWdGaWx0ZXI6aGl0LGZvcm1hdDp3aXR9KSxwLm1hcC50ZXh0dXJlLm5hbWU9Yy5uYW1lKyIuc2hhZG93TWFwIixwLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkpLHQuc2V0UmVuZGVyVGFyZ2V0KHAubWFwKSx0LmNsZWFyKCk7Y29uc3QgZj1wLmdldFZpZXdwb3J0Q291bnQoKTtmb3IobGV0IHQ9MDt0PGY7dCsrKXtjb25zdCBlPXAuZ2V0Vmlld3BvcnQodCk7ci5zZXQoYS54KmUueCxhLnkqZS55LGEueCplLnosYS55KmUudyksbS52aWV3cG9ydChyKSxwLnVwZGF0ZU1hdHJpY2VzKGMsdCksbz1wLmdldEZydXN0dW0oKSxfKG4scyxwLmNhbWVyYSxjLHRoaXMudHlwZSl9cC5pc1BvaW50TGlnaHRTaGFkb3d8fDMhPT10aGlzLnR5cGV8fGIocCxzKSxwLm5lZWRzVXBkYXRlPSExfWgubmVlZHNVcGRhdGU9ITEsdC5zZXRSZW5kZXJUYXJnZXQobCxjLHApfX1mdW5jdGlvbiBsZHQodCxlLG4pe2NvbnN0IG89bi5pc1dlYkdMMixpPW5ldyhmdW5jdGlvbiBhKCl7bGV0IGU9ITE7Y29uc3Qgbj1uZXcgYWF0O2xldCBvPW51bGw7Y29uc3QgaT1uZXcgYWF0KDAsMCwwLDApO3JldHVybntzZXRNYXNrOmZ1bmN0aW9uKG4pe289PT1ufHxlfHwodC5jb2xvck1hc2sobixuLG4sbiksbz1uKX0sc2V0TG9ja2VkOmZ1bmN0aW9uKHQpe2U9dH0sc2V0Q2xlYXI6ZnVuY3Rpb24oZSxvLGEscixzKXshMD09PXMmJihlKj1yLG8qPXIsYSo9ciksbi5zZXQoZSxvLGEsciksITE9PT1pLmVxdWFscyhuKSYmKHQuY2xlYXJDb2xvcihlLG8sYSxyKSxpLmNvcHkobikpfSxyZXNldDpmdW5jdGlvbigpe2U9ITEsbz1udWxsLGkuc2V0KC0xLDAsMCwwKX19fSkscj1uZXcoZnVuY3Rpb24gcygpe2xldCBlPSExLG49bnVsbCxvPW51bGwsaT1udWxsO3JldHVybntzZXRUZXN0OmZ1bmN0aW9uKHQpe3Q/QigyOTI5KTpWKDI5MjkpfSxzZXRNYXNrOmZ1bmN0aW9uKG8pe249PT1vfHxlfHwodC5kZXB0aE1hc2sobyksbj1vKX0sc2V0RnVuYzpmdW5jdGlvbihlKXtpZihvIT09ZSl7aWYoZSlzd2l0Y2goZSl7Y2FzZSAwOnQuZGVwdGhGdW5jKDUxMik7YnJlYWs7Y2FzZSAxOnQuZGVwdGhGdW5jKDUxOSk7YnJlYWs7Y2FzZSAyOnQuZGVwdGhGdW5jKDUxMyk7YnJlYWs7Y2FzZSAzOnQuZGVwdGhGdW5jKDUxNSk7YnJlYWs7Y2FzZSA0OnQuZGVwdGhGdW5jKDUxNCk7YnJlYWs7Y2FzZSA1OnQuZGVwdGhGdW5jKDUxOCk7YnJlYWs7Y2FzZSA2OnQuZGVwdGhGdW5jKDUxNik7YnJlYWs7Y2FzZSA3OnQuZGVwdGhGdW5jKDUxNyk7YnJlYWs7ZGVmYXVsdDp0LmRlcHRoRnVuYyg1MTUpfWVsc2UgdC5kZXB0aEZ1bmMoNTE1KTtvPWV9fSxzZXRMb2NrZWQ6ZnVuY3Rpb24odCl7ZT10fSxzZXRDbGVhcjpmdW5jdGlvbihlKXtpIT09ZSYmKHQuY2xlYXJEZXB0aChlKSxpPWUpfSxyZXNldDpmdW5jdGlvbigpe2U9ITEsbj1udWxsLG89bnVsbCxpPW51bGx9fX0pLGw9bmV3KGZ1bmN0aW9uIGMoKXtsZXQgZT0hMSxuPW51bGwsbz1udWxsLGk9bnVsbCxhPW51bGwscj1udWxsLHM9bnVsbCxsPW51bGwsYz1udWxsO3JldHVybntzZXRUZXN0OmZ1bmN0aW9uKHQpe2V8fCh0P0IoMjk2MCk6VigyOTYwKSl9LHNldE1hc2s6ZnVuY3Rpb24obyl7bj09PW98fGV8fCh0LnN0ZW5jaWxNYXNrKG8pLG49byl9LHNldEZ1bmM6ZnVuY3Rpb24oZSxuLHIpe289PT1lJiZpPT09biYmYT09PXJ8fCh0LnN0ZW5jaWxGdW5jKGUsbixyKSxvPWUsaT1uLGE9cil9LHNldE9wOmZ1bmN0aW9uKGUsbixvKXtyPT09ZSYmcz09PW4mJmw9PT1vfHwodC5zdGVuY2lsT3AoZSxuLG8pLHI9ZSxzPW4sbD1vKX0sc2V0TG9ja2VkOmZ1bmN0aW9uKHQpe2U9dH0sc2V0Q2xlYXI6ZnVuY3Rpb24oZSl7YyE9PWUmJih0LmNsZWFyU3RlbmNpbChlKSxjPWUpfSxyZXNldDpmdW5jdGlvbigpe2U9ITEsbj1udWxsLG89bnVsbCxpPW51bGwsYT1udWxsLHI9bnVsbCxzPW51bGwsbD1udWxsLGM9bnVsbH19fSk7bGV0IGQ9e30scD1udWxsLG09e30sdT1udWxsLGY9ITEsZz1udWxsLGg9bnVsbCxiPW51bGwseT1udWxsLF89bnVsbCxDPW51bGwsTT1udWxsLHY9ITEseD1udWxsLE89bnVsbCxQPW51bGwsdz1udWxsLGs9bnVsbDtjb25zdCBTPXQuZ2V0UGFyYW1ldGVyKDM1NjYxKTtsZXQgRD0hMSxFPTA7Y29uc3QgUj10LmdldFBhcmFtZXRlcig3OTM4KTstMSE9PVIuaW5kZXhPZigiV2ViR0wiKT8oRT1wYXJzZUZsb2F0KC9eV2ViR0wgKFxkKS8uZXhlYyhSKVsxXSksRD1FPj0xKTotMSE9PVIuaW5kZXhPZigiT3BlbkdMIEVTIikmJihFPXBhcnNlRmxvYXQoL15PcGVuR0wgRVMgKFxkKS8uZXhlYyhSKVsxXSksRD1FPj0yKTtsZXQgQT1udWxsLFQ9e307Y29uc3QgTj10LmdldFBhcmFtZXRlcigzMDg4KSx6PXQuZ2V0UGFyYW1ldGVyKDI5NzgpLEk9KG5ldyBhYXQpLmZyb21BcnJheShOKSxIPShuZXcgYWF0KS5mcm9tQXJyYXkoeik7ZnVuY3Rpb24gRihlLG4sbyl7Y29uc3QgaT1uZXcgVWludDhBcnJheSg0KSxhPXQuY3JlYXRlVGV4dHVyZSgpO3QuYmluZFRleHR1cmUoZSxhKSx0LnRleFBhcmFtZXRlcmkoZSwxMDI0MSw5NzI4KSx0LnRleFBhcmFtZXRlcmkoZSwxMDI0MCw5NzI4KTtmb3IobGV0IGU9MDtlPG87ZSsrKXQudGV4SW1hZ2UyRChuK2UsMCw2NDA4LDEsMSwwLDY0MDgsNTEyMSxpKTtyZXR1cm4gYX1jb25zdCBMPXt9O2Z1bmN0aW9uIEIoZSl7ITAhPT1kW2VdJiYodC5lbmFibGUoZSksZFtlXT0hMCl9ZnVuY3Rpb24gVihlKXshMSE9PWRbZV0mJih0LmRpc2FibGUoZSksZFtlXT0hMSl9TFszNTUzXT1GKDM1NTMsMzU1MywxKSxMWzM0MDY3XT1GKDM0MDY3LDM0MDY5LDYpLGkuc2V0Q2xlYXIoMCwwLDAsMSksci5zZXRDbGVhcigxKSxsLnNldENsZWFyKDApLEIoMjkyOSksci5zZXRGdW5jKDMpLFcoITEpLFkoMSksQigyODg0KSxHKDApO2NvbnN0IGo9e1tjaXRdOjMyNzc0LDEwMTozMjc3OCwxMDI6MzI3Nzl9O2lmKG8palsxMDNdPTMyNzc1LGpbMTA0XT0zMjc3NjtlbHNle2NvbnN0IHQ9ZS5nZXQoIkVYVF9ibGVuZF9taW5tYXgiKTtudWxsIT09dCYmKGpbMTAzXT10Lk1JTl9FWFQsalsxMDRdPXQuTUFYX0VYVCl9Y29uc3QgVT17MjAwOjAsMjAxOjEsMjAyOjc2OCwyMDQ6NzcwLDIxMDo3NzYsMjA4Ojc3NCwyMDY6NzcyLDIwMzo3NjksMjA1Ojc3MSwyMDk6Nzc1LDIwNzo3NzN9O2Z1bmN0aW9uIEcoZSxuLG8saSxhLHIscyxsKXtpZigwIT09ZSl7aWYoITE9PT1mJiYoQigzMDQyKSxmPSEwKSw1PT09ZSlhPWF8fG4scj1yfHxvLHM9c3x8aSxuPT09aCYmYT09PV98fCh0LmJsZW5kRXF1YXRpb25TZXBhcmF0ZShqW25dLGpbYV0pLGg9bixfPWEpLG89PT1iJiZpPT09eSYmcj09PUMmJnM9PT1NfHwodC5ibGVuZEZ1bmNTZXBhcmF0ZShVW29dLFVbaV0sVVtyXSxVW3NdKSxiPW8seT1pLEM9cixNPXMpLGc9ZSx2PW51bGw7ZWxzZSBpZihlIT09Z3x8bCE9PXYpe2lmKGg9PT1jaXQmJl89PT1jaXR8fCh0LmJsZW5kRXF1YXRpb24oMzI3NzQpLGg9Y2l0LF89Y2l0KSxsKXN3aXRjaChlKXtjYXNlIDE6dC5ibGVuZEZ1bmNTZXBhcmF0ZSgxLDc3MSwxLDc3MSk7YnJlYWs7Y2FzZSAyOnQuYmxlbmRGdW5jKDEsMSk7YnJlYWs7Y2FzZSAzOnQuYmxlbmRGdW5jU2VwYXJhdGUoMCwwLDc2OSw3NzEpO2JyZWFrO2Nhc2UgNDp0LmJsZW5kRnVuY1NlcGFyYXRlKDAsNzY4LDAsNzcwKTticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IEludmFsaWQgYmxlbmRpbmc6ICIsZSl9ZWxzZSBzd2l0Y2goZSl7Y2FzZSAxOnQuYmxlbmRGdW5jU2VwYXJhdGUoNzcwLDc3MSwxLDc3MSk7YnJlYWs7Y2FzZSAyOnQuYmxlbmRGdW5jKDc3MCwxKTticmVhaztjYXNlIDM6dC5ibGVuZEZ1bmMoMCw3NjkpO2JyZWFrO2Nhc2UgNDp0LmJsZW5kRnVuYygwLDc2OCk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiBJbnZhbGlkIGJsZW5kaW5nOiAiLGUpfWI9bnVsbCx5PW51bGwsQz1udWxsLE09bnVsbCxnPWUsdj1sfX1lbHNlITA9PT1mJiYoVigzMDQyKSxmPSExKX1mdW5jdGlvbiBXKGUpe3ghPT1lJiYodC5mcm9udEZhY2UoZT8yMzA0OjIzMDUpLHg9ZSl9ZnVuY3Rpb24gWShlKXswIT09ZT8oQigyODg0KSxlIT09TyYmdC5jdWxsRmFjZSgxPT09ZT8xMDI5OjI9PT1lPzEwMjg6MTAzMikpOlYoMjg4NCksTz1lfWZ1bmN0aW9uIHEoZSxuLG8pe2U/KEIoMzI4MjMpLHc9PT1uJiZrPT09b3x8KHQucG9seWdvbk9mZnNldChuLG8pLHc9bixrPW8pKTpWKDMyODIzKX1mdW5jdGlvbiBaKGUpe3ZvaWQgMD09PWUmJihlPTMzOTg0K1MtMSksQSE9PWUmJih0LmFjdGl2ZVRleHR1cmUoZSksQT1lKX1yZXR1cm57YnVmZmVyczp7Y29sb3I6aSxkZXB0aDpyLHN0ZW5jaWw6bH0sZW5hYmxlOkIsZGlzYWJsZTpWLGJpbmRGcmFtZWJ1ZmZlcjpmdW5jdGlvbiBYKGUsbil7cmV0dXJuIG51bGw9PT1uJiZudWxsIT09cCYmKG49cCksbVtlXSE9PW4mJih0LmJpbmRGcmFtZWJ1ZmZlcihlLG4pLG1bZV09bixvJiYoMzYwMDk9PT1lJiYobVszNjE2MF09biksMzYxNjA9PT1lJiYobVszNjAwOV09bikpLCEwKX0sYmluZFhSRnJhbWVidWZmZXI6ZnVuY3Rpb24gSyhlKXtlIT09cCYmKHQuYmluZEZyYW1lYnVmZmVyKDM2MTYwLGUpLHA9ZSl9LHVzZVByb2dyYW06ZnVuY3Rpb24gSihlKXtyZXR1cm4gdSE9PWUmJih0LnVzZVByb2dyYW0oZSksdT1lLCEwKX0sc2V0QmxlbmRpbmc6RyxzZXRNYXRlcmlhbDpmdW5jdGlvbiBRKHQsZSl7Mj09PXQuc2lkZT9WKDI4ODQpOkIoMjg4NCk7bGV0IG49MT09PXQuc2lkZTtlJiYobj0hbiksVyhuKSwxPT09dC5ibGVuZGluZyYmITE9PT10LnRyYW5zcGFyZW50P0coMCk6Ryh0LmJsZW5kaW5nLHQuYmxlbmRFcXVhdGlvbix0LmJsZW5kU3JjLHQuYmxlbmREc3QsdC5ibGVuZEVxdWF0aW9uQWxwaGEsdC5ibGVuZFNyY0FscGhhLHQuYmxlbmREc3RBbHBoYSx0LnByZW11bHRpcGxpZWRBbHBoYSksci5zZXRGdW5jKHQuZGVwdGhGdW5jKSxyLnNldFRlc3QodC5kZXB0aFRlc3QpLHIuc2V0TWFzayh0LmRlcHRoV3JpdGUpLGkuc2V0TWFzayh0LmNvbG9yV3JpdGUpO2NvbnN0IG89dC5zdGVuY2lsV3JpdGU7bC5zZXRUZXN0KG8pLG8mJihsLnNldE1hc2sodC5zdGVuY2lsV3JpdGVNYXNrKSxsLnNldEZ1bmModC5zdGVuY2lsRnVuYyx0LnN0ZW5jaWxSZWYsdC5zdGVuY2lsRnVuY01hc2spLGwuc2V0T3AodC5zdGVuY2lsRmFpbCx0LnN0ZW5jaWxaRmFpbCx0LnN0ZW5jaWxaUGFzcykpLHEodC5wb2x5Z29uT2Zmc2V0LHQucG9seWdvbk9mZnNldEZhY3Rvcix0LnBvbHlnb25PZmZzZXRVbml0cyksITA9PT10LmFscGhhVG9Db3ZlcmFnZT9CKDMyOTI2KTpWKDMyOTI2KX0sc2V0RmxpcFNpZGVkOlcsc2V0Q3VsbEZhY2U6WSxzZXRMaW5lV2lkdGg6ZnVuY3Rpb24gJChlKXtlIT09UCYmKEQmJnQubGluZVdpZHRoKGUpLFA9ZSl9LHNldFBvbHlnb25PZmZzZXQ6cSxzZXRTY2lzc29yVGVzdDpmdW5jdGlvbiB0dCh0KXt0P0IoMzA4OSk6VigzMDg5KX0sYWN0aXZlVGV4dHVyZTpaLGJpbmRUZXh0dXJlOmZ1bmN0aW9uIGV0KGUsbil7bnVsbD09PUEmJlooKTtsZXQgbz1UW0FdO3ZvaWQgMD09PW8mJihvPXt0eXBlOnZvaWQgMCx0ZXh0dXJlOnZvaWQgMH0sVFtBXT1vKSxvLnR5cGU9PT1lJiZvLnRleHR1cmU9PT1ufHwodC5iaW5kVGV4dHVyZShlLG58fExbZV0pLG8udHlwZT1lLG8udGV4dHVyZT1uKX0sdW5iaW5kVGV4dHVyZTpmdW5jdGlvbiBudCgpe2NvbnN0IGU9VFtBXTt2b2lkIDAhPT1lJiZ2b2lkIDAhPT1lLnR5cGUmJih0LmJpbmRUZXh0dXJlKGUudHlwZSxudWxsKSxlLnR5cGU9dm9pZCAwLGUudGV4dHVyZT12b2lkIDApfSxjb21wcmVzc2VkVGV4SW1hZ2UyRDpmdW5jdGlvbiBvdCgpe3RyeXt0LmNvbXByZXNzZWRUZXhJbWFnZTJELmFwcGx5KHQsYXJndW1lbnRzKX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsdCl9fSx0ZXhJbWFnZTJEOmZ1bmN0aW9uIGl0KCl7dHJ5e3QudGV4SW1hZ2UyRC5hcHBseSh0LGFyZ3VtZW50cyl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLHQpfX0sdGV4SW1hZ2UzRDpmdW5jdGlvbiBhdCgpe3RyeXt0LnRleEltYWdlM0QuYXBwbHkodCxhcmd1bWVudHMpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6Iix0KX19LHNjaXNzb3I6ZnVuY3Rpb24gcnQoZSl7ITE9PT1JLmVxdWFscyhlKSYmKHQuc2Npc3NvcihlLngsZS55LGUueixlLncpLEkuY29weShlKSl9LHZpZXdwb3J0OmZ1bmN0aW9uIHN0KGUpeyExPT09SC5lcXVhbHMoZSkmJih0LnZpZXdwb3J0KGUueCxlLnksZS56LGUudyksSC5jb3B5KGUpKX0scmVzZXQ6ZnVuY3Rpb24gbHQoKXt0LmRpc2FibGUoMzA0MiksdC5kaXNhYmxlKDI4ODQpLHQuZGlzYWJsZSgyOTI5KSx0LmRpc2FibGUoMzI4MjMpLHQuZGlzYWJsZSgzMDg5KSx0LmRpc2FibGUoMjk2MCksdC5kaXNhYmxlKDMyOTI2KSx0LmJsZW5kRXF1YXRpb24oMzI3NzQpLHQuYmxlbmRGdW5jKDEsMCksdC5ibGVuZEZ1bmNTZXBhcmF0ZSgxLDAsMSwwKSx0LmNvbG9yTWFzayghMCwhMCwhMCwhMCksdC5jbGVhckNvbG9yKDAsMCwwLDApLHQuZGVwdGhNYXNrKCEwKSx0LmRlcHRoRnVuYyg1MTMpLHQuY2xlYXJEZXB0aCgxKSx0LnN0ZW5jaWxNYXNrKDQyOTQ5NjcyOTUpLHQuc3RlbmNpbEZ1bmMoNTE5LDAsNDI5NDk2NzI5NSksdC5zdGVuY2lsT3AoNzY4MCw3NjgwLDc2ODApLHQuY2xlYXJTdGVuY2lsKDApLHQuY3VsbEZhY2UoMTAyOSksdC5mcm9udEZhY2UoMjMwNSksdC5wb2x5Z29uT2Zmc2V0KDAsMCksdC5hY3RpdmVUZXh0dXJlKDMzOTg0KSx0LmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxudWxsKSwhMD09PW8mJih0LmJpbmRGcmFtZWJ1ZmZlcigzNjAwOSxudWxsKSx0LmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxudWxsKSksdC51c2VQcm9ncmFtKG51bGwpLHQubGluZVdpZHRoKDEpLHQuc2Npc3NvcigwLDAsdC5jYW52YXMud2lkdGgsdC5jYW52YXMuaGVpZ2h0KSx0LnZpZXdwb3J0KDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLGQ9e30sQT1udWxsLFQ9e30scD1udWxsLG09e30sdT1udWxsLGY9ITEsZz1udWxsLGg9bnVsbCxiPW51bGwseT1udWxsLF89bnVsbCxDPW51bGwsTT1udWxsLHY9ITEseD1udWxsLE89bnVsbCxQPW51bGwsdz1udWxsLGs9bnVsbCxJLnNldCgwLDAsdC5jYW52YXMud2lkdGgsdC5jYW52YXMuaGVpZ2h0KSxILnNldCgwLDAsdC5jYW52YXMud2lkdGgsdC5jYW52YXMuaGVpZ2h0KSxpLnJlc2V0KCksci5yZXNldCgpLGwucmVzZXQoKX19fWZ1bmN0aW9uIGNkdCh0LGUsbixvLGksYSxyKXtjb25zdCBzPWkuaXNXZWJHTDIsbD1pLm1heFRleHR1cmVzLGM9aS5tYXhDdWJlbWFwU2l6ZSxkPWkubWF4VGV4dHVyZVNpemUscD1pLm1heFNhbXBsZXMsbT1uZXcgV2Vha01hcDtsZXQgdSxmPSExO3RyeXtmPSJ1bmRlZmluZWQiIT10eXBlb2YgT2Zmc2NyZWVuQ2FudmFzJiZudWxsIT09bmV3IE9mZnNjcmVlbkNhbnZhcygxLDEpLmdldENvbnRleHQoIjJkIil9Y2F0Y2godCl7fWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4gZj9uZXcgT2Zmc2NyZWVuQ2FudmFzKHQsZSk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiY2FudmFzIil9ZnVuY3Rpb24gaCh0LGUsbixvKXtsZXQgaT0xO2lmKCh0LndpZHRoPm98fHQuaGVpZ2h0Pm8pJiYoaT1vL01hdGgubWF4KHQud2lkdGgsdC5oZWlnaHQpKSxpPDF8fCEwPT09ZSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MSW1hZ2VFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCYmdCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEltYWdlQml0bWFwJiZ0IGluc3RhbmNlb2YgSW1hZ2VCaXRtYXApe2NvbnN0IG89ZT9KaXQ6TWF0aC5mbG9vcixhPW8oaSp0LndpZHRoKSxyPW8oaSp0LmhlaWdodCk7dm9pZCAwPT09dSYmKHU9ZyhhLHIpKTtjb25zdCBzPW4/ZyhhLHIpOnU7cmV0dXJuIHMud2lkdGg9YSxzLmhlaWdodD1yLHMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UodCwwLDAsYSxyKSxjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaGFzIGJlZW4gcmVzaXplZCBmcm9tICgiK3Qud2lkdGgrIngiK3QuaGVpZ2h0KyIpIHRvICgiK2ErIngiK3IrIikuIiksc31yZXR1cm4iZGF0YSJpbiB0JiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEltYWdlIGluIERhdGFUZXh0dXJlIGlzIHRvbyBiaWcgKCIrdC53aWR0aCsieCIrdC5oZWlnaHQrIikuIiksdH1yZXR1cm4gdH1mdW5jdGlvbiBiKHQpe3JldHVybiBLaXQodC53aWR0aCkmJktpdCh0LmhlaWdodCl9ZnVuY3Rpb24geSh0LGUpe3JldHVybiB0LmdlbmVyYXRlTWlwbWFwcyYmZSYmdC5taW5GaWx0ZXIhPT1oaXQmJnQubWluRmlsdGVyIT09Yml0fWZ1bmN0aW9uIF8oZSxuLGksYSxyPTEpe3QuZ2VuZXJhdGVNaXBtYXAoZSksby5nZXQobikuX19tYXhNaXBMZXZlbD1NYXRoLmxvZzIoTWF0aC5tYXgoaSxhLHIpKX1mdW5jdGlvbiBDKG4sbyxpKXtpZighMT09PXMpcmV0dXJuIG87aWYobnVsbCE9PW4pe2lmKHZvaWQgMCE9PXRbbl0pcmV0dXJuIHRbbl07Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBBdHRlbXB0IHRvIHVzZSBub24tZXhpc3RpbmcgV2ViR0wgaW50ZXJuYWwgZm9ybWF0ICciK24rIiciKX1sZXQgYT1vO3JldHVybiA2NDAzPT09byYmKDUxMjY9PT1pJiYoYT0zMzMyNiksNTEzMT09PWkmJihhPTMzMzI1KSw1MTIxPT09aSYmKGE9MzMzMjEpKSw2NDA3PT09byYmKDUxMjY9PT1pJiYoYT0zNDgzNyksNTEzMT09PWkmJihhPTM0ODQzKSw1MTIxPT09aSYmKGE9MzI4NDkpKSw2NDA4PT09byYmKDUxMjY9PT1pJiYoYT0zNDgzNiksNTEzMT09PWkmJihhPTM0ODQyKSw1MTIxPT09aSYmKGE9MzI4NTYpKSwzMzMyNSE9PWEmJjMzMzI2IT09YSYmMzQ4NDIhPT1hJiYzNDgzNiE9PWF8fGUuZ2V0KCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0IiksYX1mdW5jdGlvbiBNKHQpe3JldHVybiB0PT09aGl0fHwxMDA0PT09dHx8MTAwNT09PXQ/OTcyODo5NzI5fWZ1bmN0aW9uIHYoZSl7Y29uc3Qgbj1lLnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHYpLChmdW5jdGlvbiBpKGUpe2NvbnN0IG49by5nZXQoZSk7dm9pZCAwIT09bi5fX3dlYmdsSW5pdCYmKHQuZGVsZXRlVGV4dHVyZShuLl9fd2ViZ2xUZXh0dXJlKSxvLnJlbW92ZShlKSl9KShuKSxuLmlzVmlkZW9UZXh0dXJlJiZtLmRlbGV0ZShuKSxyLm1lbW9yeS50ZXh0dXJlcy0tfWZ1bmN0aW9uIHgoZSl7Y29uc3Qgbj1lLnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHgpLChmdW5jdGlvbiBpKGUpe2NvbnN0IG49ZS50ZXh0dXJlLGk9by5nZXQoZSksYT1vLmdldChuKTtpZihlKXtpZih2b2lkIDAhPT1hLl9fd2ViZ2xUZXh0dXJlJiYodC5kZWxldGVUZXh0dXJlKGEuX193ZWJnbFRleHR1cmUpLHIubWVtb3J5LnRleHR1cmVzLS0pLGUuZGVwdGhUZXh0dXJlJiZlLmRlcHRoVGV4dHVyZS5kaXNwb3NlKCksZS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldClmb3IobGV0IGU9MDtlPDY7ZSsrKXQuZGVsZXRlRnJhbWVidWZmZXIoaS5fX3dlYmdsRnJhbWVidWZmZXJbZV0pLGkuX193ZWJnbERlcHRoYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihpLl9fd2ViZ2xEZXB0aGJ1ZmZlcltlXSk7ZWxzZSB0LmRlbGV0ZUZyYW1lYnVmZmVyKGkuX193ZWJnbEZyYW1lYnVmZmVyKSxpLl9fd2ViZ2xEZXB0aGJ1ZmZlciYmdC5kZWxldGVSZW5kZXJidWZmZXIoaS5fX3dlYmdsRGVwdGhidWZmZXIpLGkuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyJiZ0LmRlbGV0ZUZyYW1lYnVmZmVyKGkuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKSxpLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciYmdC5kZWxldGVSZW5kZXJidWZmZXIoaS5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpLGkuX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihpLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcik7aWYoZS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzKWZvcihsZXQgZT0wLGk9bi5sZW5ndGg7ZTxpO2UrKyl7Y29uc3QgaT1vLmdldChuW2VdKTtpLl9fd2ViZ2xUZXh0dXJlJiYodC5kZWxldGVUZXh0dXJlKGkuX193ZWJnbFRleHR1cmUpLHIubWVtb3J5LnRleHR1cmVzLS0pLG8ucmVtb3ZlKG5bZV0pfW8ucmVtb3ZlKG4pLG8ucmVtb3ZlKGUpfX0pKG4pfWxldCBPPTA7ZnVuY3Rpb24gUCh0LGUpe2NvbnN0IGk9by5nZXQodCk7aWYodC5pc1ZpZGVvVGV4dHVyZSYmKGZ1bmN0aW9uIGEodCl7Y29uc3QgZT1yLnJlbmRlci5mcmFtZTttLmdldCh0KSE9PWUmJihtLnNldCh0LGUpLHQudXBkYXRlKCkpfSkodCksdC52ZXJzaW9uPjAmJmkuX192ZXJzaW9uIT09dC52ZXJzaW9uKXtjb25zdCBuPXQuaW1hZ2U7aWYodm9pZCAwPT09biljb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgbWFya2VkIGZvciB1cGRhdGUgYnV0IGltYWdlIGlzIHVuZGVmaW5lZCIpO2Vsc2V7aWYoITEhPT1uLmNvbXBsZXRlKXJldHVybiB2b2lkIFIoaSx0LGUpO2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBtYXJrZWQgZm9yIHVwZGF0ZSBidXQgaW1hZ2UgaXMgaW5jb21wbGV0ZSIpfX1uLmFjdGl2ZVRleHR1cmUoMzM5ODQrZSksbi5iaW5kVGV4dHVyZSgzNTUzLGkuX193ZWJnbFRleHR1cmUpfWZ1bmN0aW9uIHcoZSxpKXtjb25zdCByPW8uZ2V0KGUpO2UudmVyc2lvbj4wJiZyLl9fdmVyc2lvbiE9PWUudmVyc2lvbj8oZnVuY3Rpb24gbChlLG8saSl7aWYoNiE9PW8uaW1hZ2UubGVuZ3RoKXJldHVybjtFKGUsbyksbi5hY3RpdmVUZXh0dXJlKDMzOTg0K2kpLG4uYmluZFRleHR1cmUoMzQwNjcsZS5fX3dlYmdsVGV4dHVyZSksdC5waXhlbFN0b3JlaSgzNzQ0MCxvLmZsaXBZKSx0LnBpeGVsU3RvcmVpKDM3NDQxLG8ucHJlbXVsdGlwbHlBbHBoYSksdC5waXhlbFN0b3JlaSgzMzE3LG8udW5wYWNrQWxpZ25tZW50KSx0LnBpeGVsU3RvcmVpKDM3NDQzLDApO2NvbnN0IHI9byYmKG8uaXNDb21wcmVzc2VkVGV4dHVyZXx8by5pbWFnZVswXS5pc0NvbXByZXNzZWRUZXh0dXJlKSxsPW8uaW1hZ2VbMF0mJm8uaW1hZ2VbMF0uaXNEYXRhVGV4dHVyZSxkPVtdO2ZvcihsZXQgdD0wO3Q8Njt0KyspZFt0XT1yfHxsP2w/by5pbWFnZVt0XS5pbWFnZTpvLmltYWdlW3RdOmgoby5pbWFnZVt0XSwhMSwhMCxjKTtjb25zdCBwPWRbMF0sbT1iKHApfHxzLHU9YS5jb252ZXJ0KG8uZm9ybWF0KSxmPWEuY29udmVydChvLnR5cGUpLGc9QyhvLmludGVybmFsRm9ybWF0LHUsZik7bGV0IE07aWYoRCgzNDA2NyxvLG0pLHIpe2ZvcihsZXQgdD0wO3Q8Njt0Kyspe009ZFt0XS5taXBtYXBzO2ZvcihsZXQgZT0wO2U8TS5sZW5ndGg7ZSsrKXtjb25zdCBpPU1bZV07by5mb3JtYXQhPT13aXQmJm8uZm9ybWF0IT09UGl0P251bGwhPT11P24uY29tcHJlc3NlZFRleEltYWdlMkQoMzQwNjkrdCxlLGcsaS53aWR0aCxpLmhlaWdodCwwLGkuZGF0YSk6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBBdHRlbXB0IHRvIGxvYWQgdW5zdXBwb3J0ZWQgY29tcHJlc3NlZCB0ZXh0dXJlIGZvcm1hdCBpbiAuc2V0VGV4dHVyZUN1YmUoKSIpOm4udGV4SW1hZ2UyRCgzNDA2OSt0LGUsZyxpLndpZHRoLGkuaGVpZ2h0LDAsdSxmLGkuZGF0YSl9fWUuX19tYXhNaXBMZXZlbD1NLmxlbmd0aC0xfWVsc2V7TT1vLm1pcG1hcHM7Zm9yKGxldCB0PTA7dDw2O3QrKylpZihsKXtuLnRleEltYWdlMkQoMzQwNjkrdCwwLGcsZFt0XS53aWR0aCxkW3RdLmhlaWdodCwwLHUsZixkW3RdLmRhdGEpO2ZvcihsZXQgZT0wO2U8TS5sZW5ndGg7ZSsrKXtjb25zdCBvPU1bZV0uaW1hZ2VbdF0uaW1hZ2U7bi50ZXhJbWFnZTJEKDM0MDY5K3QsZSsxLGcsby53aWR0aCxvLmhlaWdodCwwLHUsZixvLmRhdGEpfX1lbHNle24udGV4SW1hZ2UyRCgzNDA2OSt0LDAsZyx1LGYsZFt0XSk7Zm9yKGxldCBlPTA7ZTxNLmxlbmd0aDtlKyspbi50ZXhJbWFnZTJEKDM0MDY5K3QsZSsxLGcsdSxmLE1bZV0uaW1hZ2VbdF0pfWUuX19tYXhNaXBMZXZlbD1NLmxlbmd0aH15KG8sbSkmJl8oMzQwNjcsbyxwLndpZHRoLHAuaGVpZ2h0KSxlLl9fdmVyc2lvbj1vLnZlcnNpb24sby5vblVwZGF0ZSYmby5vblVwZGF0ZShvKX0pKHIsZSxpKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K2kpLG4uYmluZFRleHR1cmUoMzQwNjcsci5fX3dlYmdsVGV4dHVyZSkpfWNvbnN0IGs9e1t1aXRdOjEwNDk3LFtmaXRdOjMzMDcxLFtnaXRdOjMzNjQ4fSxTPXtbaGl0XTo5NzI4LDEwMDQ6OTk4NCwxMDA1Ojk5ODYsW2JpdF06OTcyOSwxMDA3Ojk5ODUsW3lpdF06OTk4N307ZnVuY3Rpb24gRChuLGEscil7aWYocj8odC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDIsa1thLndyYXBTXSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsa1thLndyYXBUXSksMzI4NzkhPT1uJiYzNTg2NiE9PW58fHQudGV4UGFyYW1ldGVyaShuLDMyODgyLGtbYS53cmFwUl0pLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLFNbYS5tYWdGaWx0ZXJdKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSxTW2EubWluRmlsdGVyXSkpOih0LnRleFBhcmFtZXRlcmkobiwxMDI0MiwzMzA3MSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsMzMwNzEpLDMyODc5IT09biYmMzU4NjYhPT1ufHx0LnRleFBhcmFtZXRlcmkobiwzMjg4MiwzMzA3MSksYS53cmFwUz09PWZpdCYmYS53cmFwVD09PWZpdHx8Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIGlzIG5vdCBwb3dlciBvZiB0d28uIFRleHR1cmUud3JhcFMgYW5kIFRleHR1cmUud3JhcFQgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nLiIpLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLE0oYS5tYWdGaWx0ZXIpKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSxNKGEubWluRmlsdGVyKSksYS5taW5GaWx0ZXIhPT1oaXQmJmEubWluRmlsdGVyIT09Yml0JiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaXMgbm90IHBvd2VyIG9mIHR3by4gVGV4dHVyZS5taW5GaWx0ZXIgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5OZWFyZXN0RmlsdGVyIG9yIFRIUkVFLkxpbmVhckZpbHRlci4iKSksITA9PT1lLmhhcygiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpe2NvbnN0IHI9ZS5nZXQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO2lmKGEudHlwZT09PXZpdCYmITE9PT1lLmhhcygiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpcmV0dXJuO2lmKCExPT09cyYmYS50eXBlPT09eGl0JiYhMT09PWUuaGFzKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKXJldHVybjsoYS5hbmlzb3Ryb3B5PjF8fG8uZ2V0KGEpLl9fY3VycmVudEFuaXNvdHJvcHkpJiYodC50ZXhQYXJhbWV0ZXJmKG4sci5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCxNYXRoLm1pbihhLmFuaXNvdHJvcHksaS5nZXRNYXhBbmlzb3Ryb3B5KCkpKSxvLmdldChhKS5fX2N1cnJlbnRBbmlzb3Ryb3B5PWEuYW5pc290cm9weSl9fWZ1bmN0aW9uIEUoZSxuKXt2b2lkIDA9PT1lLl9fd2ViZ2xJbml0JiYoZS5fX3dlYmdsSW5pdD0hMCxuLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHYpLGUuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksci5tZW1vcnkudGV4dHVyZXMrKyl9ZnVuY3Rpb24gUihlLG8saSl7bGV0IHI9MzU1MztvLmlzRGF0YVRleHR1cmUyREFycmF5JiYocj0zNTg2Niksby5pc0RhdGFUZXh0dXJlM0QmJihyPTMyODc5KSxFKGUsbyksbi5hY3RpdmVUZXh0dXJlKDMzOTg0K2kpLG4uYmluZFRleHR1cmUocixlLl9fd2ViZ2xUZXh0dXJlKSx0LnBpeGVsU3RvcmVpKDM3NDQwLG8uZmxpcFkpLHQucGl4ZWxTdG9yZWkoMzc0NDEsby5wcmVtdWx0aXBseUFscGhhKSx0LnBpeGVsU3RvcmVpKDMzMTcsby51bnBhY2tBbGlnbm1lbnQpLHQucGl4ZWxTdG9yZWkoMzc0NDMsMCk7Y29uc3QgbD0oZnVuY3Rpb24gYyh0KXtyZXR1cm4hcyYmKHQud3JhcFMhPT1maXR8fHQud3JhcFQhPT1maXR8fHQubWluRmlsdGVyIT09aGl0JiZ0Lm1pbkZpbHRlciE9PWJpdCl9KShvKSYmITE9PT1iKG8uaW1hZ2UpLHA9aChvLmltYWdlLGwsITEsZCksbT1iKHApfHxzLHU9YS5jb252ZXJ0KG8uZm9ybWF0KTtsZXQgZixnPWEuY29udmVydChvLnR5cGUpLE09QyhvLmludGVybmFsRm9ybWF0LHUsZyk7RChyLG8sbSk7Y29uc3Qgdj1vLm1pcG1hcHM7aWYoby5pc0RlcHRoVGV4dHVyZSlNPTY0MDIscz9NPW8udHlwZT09PXZpdD8zNjAxMjpvLnR5cGU9PT1NaXQ/MzMxOTA6by50eXBlPT09T2l0PzM1MDU2OjMzMTg5Om8udHlwZT09PXZpdCYmY29uc29sZS5lcnJvcigiV2ViR0xSZW5kZXJlcjogRmxvYXRpbmcgcG9pbnQgZGVwdGggdGV4dHVyZSByZXF1aXJlcyBXZWJHTDIuIiksby5mb3JtYXQ9PT1raXQmJjY0MDI9PT1NJiZvLnR5cGUhPT1DaXQmJm8udHlwZSE9PU1pdCYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVXNlIFVuc2lnbmVkU2hvcnRUeXBlIG9yIFVuc2lnbmVkSW50VHlwZSBmb3IgRGVwdGhGb3JtYXQgRGVwdGhUZXh0dXJlLiIpLG8udHlwZT1DaXQsZz1hLmNvbnZlcnQoby50eXBlKSksby5mb3JtYXQ9PT1TaXQmJjY0MDI9PT1NJiYoTT0zNDA0MSxvLnR5cGUhPT1PaXQmJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFVzZSBVbnNpZ25lZEludDI0OFR5cGUgZm9yIERlcHRoU3RlbmNpbEZvcm1hdCBEZXB0aFRleHR1cmUuIiksby50eXBlPU9pdCxnPWEuY29udmVydChvLnR5cGUpKSksbi50ZXhJbWFnZTJEKDM1NTMsMCxNLHAud2lkdGgscC5oZWlnaHQsMCx1LGcsbnVsbCk7ZWxzZSBpZihvLmlzRGF0YVRleHR1cmUpaWYodi5sZW5ndGg+MCYmbSl7Zm9yKGxldCB0PTAsZT12Lmxlbmd0aDt0PGU7dCsrKWY9dlt0XSxuLnRleEltYWdlMkQoMzU1Myx0LE0sZi53aWR0aCxmLmhlaWdodCwwLHUsZyxmLmRhdGEpO28uZ2VuZXJhdGVNaXBtYXBzPSExLGUuX19tYXhNaXBMZXZlbD12Lmxlbmd0aC0xfWVsc2Ugbi50ZXhJbWFnZTJEKDM1NTMsMCxNLHAud2lkdGgscC5oZWlnaHQsMCx1LGcscC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKG8uaXNDb21wcmVzc2VkVGV4dHVyZSl7Zm9yKGxldCB0PTAsZT12Lmxlbmd0aDt0PGU7dCsrKWY9dlt0XSxvLmZvcm1hdCE9PXdpdCYmby5mb3JtYXQhPT1QaXQ/bnVsbCE9PXU/bi5jb21wcmVzc2VkVGV4SW1hZ2UyRCgzNTUzLHQsTSxmLndpZHRoLGYuaGVpZ2h0LDAsZi5kYXRhKTpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gbG9hZCB1bnN1cHBvcnRlZCBjb21wcmVzc2VkIHRleHR1cmUgZm9ybWF0IGluIC51cGxvYWRUZXh0dXJlKCkiKTpuLnRleEltYWdlMkQoMzU1Myx0LE0sZi53aWR0aCxmLmhlaWdodCwwLHUsZyxmLmRhdGEpO2UuX19tYXhNaXBMZXZlbD12Lmxlbmd0aC0xfWVsc2UgaWYoby5pc0RhdGFUZXh0dXJlMkRBcnJheSluLnRleEltYWdlM0QoMzU4NjYsMCxNLHAud2lkdGgscC5oZWlnaHQscC5kZXB0aCwwLHUsZyxwLmRhdGEpLGUuX19tYXhNaXBMZXZlbD0wO2Vsc2UgaWYoby5pc0RhdGFUZXh0dXJlM0Qpbi50ZXhJbWFnZTNEKDMyODc5LDAsTSxwLndpZHRoLHAuaGVpZ2h0LHAuZGVwdGgsMCx1LGcscC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKHYubGVuZ3RoPjAmJm0pe2ZvcihsZXQgdD0wLGU9di5sZW5ndGg7dDxlO3QrKylmPXZbdF0sbi50ZXhJbWFnZTJEKDM1NTMsdCxNLHUsZyxmKTtvLmdlbmVyYXRlTWlwbWFwcz0hMSxlLl9fbWF4TWlwTGV2ZWw9di5sZW5ndGgtMX1lbHNlIG4udGV4SW1hZ2UyRCgzNTUzLDAsTSx1LGcscCksZS5fX21heE1pcExldmVsPTA7eShvLG0pJiZfKHIsbyxwLndpZHRoLHAuaGVpZ2h0KSxlLl9fdmVyc2lvbj1vLnZlcnNpb24sby5vblVwZGF0ZSYmby5vblVwZGF0ZShvKX1mdW5jdGlvbiBBKGUsaSxyLHMsbCl7Y29uc3QgYz1hLmNvbnZlcnQoci5mb3JtYXQpLGQ9YS5jb252ZXJ0KHIudHlwZSkscD1DKHIuaW50ZXJuYWxGb3JtYXQsYyxkKTszMjg3OT09PWx8fDM1ODY2PT09bD9uLnRleEltYWdlM0QobCwwLHAsaS53aWR0aCxpLmhlaWdodCxpLmRlcHRoLDAsYyxkLG51bGwpOm4udGV4SW1hZ2UyRChsLDAscCxpLndpZHRoLGkuaGVpZ2h0LDAsYyxkLG51bGwpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLGUpLHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAscyxsLG8uZ2V0KHIpLl9fd2ViZ2xUZXh0dXJlLDApLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWZ1bmN0aW9uIFQoZSxuLG8pe2lmKHQuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxlKSxuLmRlcHRoQnVmZmVyJiYhbi5zdGVuY2lsQnVmZmVyKXtsZXQgaT0zMzE4OTtpZihvKXtjb25zdCBlPW4uZGVwdGhUZXh0dXJlO2UmJmUuaXNEZXB0aFRleHR1cmUmJihlLnR5cGU9PT12aXQ/aT0zNjAxMjplLnR5cGU9PT1NaXQmJihpPTMzMTkwKSk7Y29uc3Qgbz1OKG4pO3QucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLG8saSxuLndpZHRoLG4uaGVpZ2h0KX1lbHNlIHQucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxpLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzYwOTYsMzYxNjEsZSl9ZWxzZSBpZihuLmRlcHRoQnVmZmVyJiZuLnN0ZW5jaWxCdWZmZXIpe2lmKG8pe2NvbnN0IGU9TihuKTt0LnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSgzNjE2MSxlLDM1MDU2LG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLDM0MDQxLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzMzMDYsMzYxNjEsZSl9ZWxzZXtjb25zdCBlPSEwPT09bi5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzP24udGV4dHVyZVswXTpuLnRleHR1cmUsaT1hLmNvbnZlcnQoZS5mb3JtYXQpLHI9YS5jb252ZXJ0KGUudHlwZSkscz1DKGUuaW50ZXJuYWxGb3JtYXQsaSxyKTtpZihvKXtjb25zdCBlPU4obik7dC5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoMzYxNjEsZSxzLG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLHMsbi53aWR0aCxuLmhlaWdodCl9dC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpfWZ1bmN0aW9uIE4odCl7cmV0dXJuIHMmJnQuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0P01hdGgubWluKHAsdC5zYW1wbGVzKTowfWxldCB6PSExLEk9ITE7dGhpcy5hbGxvY2F0ZVRleHR1cmVVbml0PWZ1bmN0aW9uIEgoKXtjb25zdCB0PU87cmV0dXJuIHQ+PWwmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xUZXh0dXJlczogVHJ5aW5nIHRvIHVzZSAiK3QrIiB0ZXh0dXJlIHVuaXRzIHdoaWxlIHRoaXMgR1BVIHN1cHBvcnRzIG9ubHkgIitsKSxPKz0xLHR9LHRoaXMucmVzZXRUZXh0dXJlVW5pdHM9ZnVuY3Rpb24gRigpe089MH0sdGhpcy5zZXRUZXh0dXJlMkQ9UCx0aGlzLnNldFRleHR1cmUyREFycmF5PWZ1bmN0aW9uIEwodCxlKXtjb25zdCBpPW8uZ2V0KHQpO3QudmVyc2lvbj4wJiZpLl9fdmVyc2lvbiE9PXQudmVyc2lvbj9SKGksdCxlKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K2UpLG4uYmluZFRleHR1cmUoMzU4NjYsaS5fX3dlYmdsVGV4dHVyZSkpfSx0aGlzLnNldFRleHR1cmUzRD1mdW5jdGlvbiBCKHQsZSl7Y29uc3QgaT1vLmdldCh0KTt0LnZlcnNpb24+MCYmaS5fX3ZlcnNpb24hPT10LnZlcnNpb24/UihpLHQsZSk6KG4uYWN0aXZlVGV4dHVyZSgzMzk4NCtlKSxuLmJpbmRUZXh0dXJlKDMyODc5LGkuX193ZWJnbFRleHR1cmUpKX0sdGhpcy5zZXRUZXh0dXJlQ3ViZT13LHRoaXMuc2V0dXBSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24gVihlKXtjb25zdCBsPWUudGV4dHVyZSxjPW8uZ2V0KGUpLGQ9by5nZXQobCk7ZS5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIix4KSwhMCE9PWUuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyYmKGQuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksZC5fX3ZlcnNpb249bC52ZXJzaW9uLHIubWVtb3J5LnRleHR1cmVzKyspO2NvbnN0IHA9ITA9PT1lLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0LG09ITA9PT1lLmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMsdT0hMD09PWUuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0LGY9bC5pc0RhdGFUZXh0dXJlM0R8fGwuaXNEYXRhVGV4dHVyZTJEQXJyYXksZz1iKGUpfHxzO2lmKCFzfHxsLmZvcm1hdCE9PVBpdHx8bC50eXBlIT09dml0JiZsLnR5cGUhPT14aXR8fChsLmZvcm1hdD13aXQsY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBSZW5kZXJpbmcgdG8gdGV4dHVyZXMgd2l0aCBSR0IgZm9ybWF0IGlzIG5vdCBzdXBwb3J0ZWQuIFVzaW5nIFJHQkEgZm9ybWF0IGluc3RlYWQuIikpLHApe2MuX193ZWJnbEZyYW1lYnVmZmVyPVtdO2ZvcihsZXQgZT0wO2U8NjtlKyspYy5fX3dlYmdsRnJhbWVidWZmZXJbZV09dC5jcmVhdGVGcmFtZWJ1ZmZlcigpfWVsc2UgaWYoYy5fX3dlYmdsRnJhbWVidWZmZXI9dC5jcmVhdGVGcmFtZWJ1ZmZlcigpLG0paWYoaS5kcmF3QnVmZmVycyl7Y29uc3Qgbj1lLnRleHR1cmU7Zm9yKGxldCBlPTAsaT1uLmxlbmd0aDtlPGk7ZSsrKXtjb25zdCBpPW8uZ2V0KG5bZV0pO3ZvaWQgMD09PWkuX193ZWJnbFRleHR1cmUmJihpLl9fd2ViZ2xUZXh0dXJlPXQuY3JlYXRlVGV4dHVyZSgpLHIubWVtb3J5LnRleHR1cmVzKyspfX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMiBvciBXRUJHTF9kcmF3X2J1ZmZlcnMgZXh0ZW5zaW9uLiIpO2Vsc2UgaWYodSlpZihzKXtjLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcj10LmNyZWF0ZUZyYW1lYnVmZmVyKCksYy5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXI9dC5jcmVhdGVSZW5kZXJidWZmZXIoKSx0LmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsYy5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpO2NvbnN0IG89YS5jb252ZXJ0KGwuZm9ybWF0KSxpPWEuY29udmVydChsLnR5cGUpLHI9QyhsLmludGVybmFsRm9ybWF0LG8saSkscz1OKGUpO3QucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLHMscixlLndpZHRoLGUuaGVpZ2h0KSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxjLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlciksdC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigzNjE2MCwzNjA2NCwzNjE2MSxjLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciksdC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpLGUuZGVwdGhCdWZmZXImJihjLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLFQoYy5fX3dlYmdsRGVwdGhSZW5kZXJidWZmZXIsZSwhMCkpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIik7aWYocCl7bi5iaW5kVGV4dHVyZSgzNDA2NyxkLl9fd2ViZ2xUZXh0dXJlKSxEKDM0MDY3LGwsZyk7Zm9yKGxldCB0PTA7dDw2O3QrKylBKGMuX193ZWJnbEZyYW1lYnVmZmVyW3RdLGUsbCwzNjA2NCwzNDA2OSt0KTt5KGwsZykmJl8oMzQwNjcsbCxlLndpZHRoLGUuaGVpZ2h0KSxuLmJpbmRUZXh0dXJlKDM0MDY3LG51bGwpfWVsc2UgaWYobSl7Y29uc3QgdD1lLnRleHR1cmU7Zm9yKGxldCBpPTAsYT10Lmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPXRbaV0scj1vLmdldChhKTtuLmJpbmRUZXh0dXJlKDM1NTMsci5fX3dlYmdsVGV4dHVyZSksRCgzNTUzLGEsZyksQShjLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlLGEsMzYwNjQraSwzNTUzKSx5KGEsZykmJl8oMzU1MyxhLGUud2lkdGgsZS5oZWlnaHQpfW4uYmluZFRleHR1cmUoMzU1MyxudWxsKX1lbHNle2xldCB0PTM1NTM7ZiYmKHM/dD1sLmlzRGF0YVRleHR1cmUzRD8zMjg3OTozNTg2Njpjb25zb2xlLndhcm4oIlRIUkVFLkRhdGFUZXh0dXJlM0QgYW5kIFRIUkVFLkRhdGFUZXh0dXJlMkRBcnJheSBvbmx5IHN1cHBvcnRlZCB3aXRoIFdlYkdMMi4iKSksbi5iaW5kVGV4dHVyZSh0LGQuX193ZWJnbFRleHR1cmUpLEQodCxsLGcpLEEoYy5fX3dlYmdsRnJhbWVidWZmZXIsZSxsLDM2MDY0LHQpLHkobCxnKSYmXyh0LGwsZS53aWR0aCxlLmhlaWdodCxlLmRlcHRoKSxuLmJpbmRUZXh0dXJlKHQsbnVsbCl9ZS5kZXB0aEJ1ZmZlciYmKGZ1bmN0aW9uIGgoZSl7Y29uc3QgaT1vLmdldChlKSxhPSEwPT09ZS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldDtpZihlLmRlcHRoVGV4dHVyZSl7aWYoYSl0aHJvdyBuZXcgRXJyb3IoInRhcmdldC5kZXB0aFRleHR1cmUgbm90IHN1cHBvcnRlZCBpbiBDdWJlIHJlbmRlciB0YXJnZXRzIik7IShmdW5jdGlvbiByKGUsaSl7aWYoaSYmaS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldCl0aHJvdyBuZXcgRXJyb3IoIkRlcHRoIFRleHR1cmUgd2l0aCBjdWJlIHJlbmRlciB0YXJnZXRzIGlzIG5vdCBzdXBwb3J0ZWQiKTtpZihuLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxlKSwhaS5kZXB0aFRleHR1cmV8fCFpLmRlcHRoVGV4dHVyZS5pc0RlcHRoVGV4dHVyZSl0aHJvdyBuZXcgRXJyb3IoInJlbmRlclRhcmdldC5kZXB0aFRleHR1cmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBUSFJFRS5EZXB0aFRleHR1cmUiKTtvLmdldChpLmRlcHRoVGV4dHVyZSkuX193ZWJnbFRleHR1cmUmJmkuZGVwdGhUZXh0dXJlLmltYWdlLndpZHRoPT09aS53aWR0aCYmaS5kZXB0aFRleHR1cmUuaW1hZ2UuaGVpZ2h0PT09aS5oZWlnaHR8fChpLmRlcHRoVGV4dHVyZS5pbWFnZS53aWR0aD1pLndpZHRoLGkuZGVwdGhUZXh0dXJlLmltYWdlLmhlaWdodD1pLmhlaWdodCxpLmRlcHRoVGV4dHVyZS5uZWVkc1VwZGF0ZT0hMCksUChpLmRlcHRoVGV4dHVyZSwwKTtjb25zdCBhPW8uZ2V0KGkuZGVwdGhUZXh0dXJlKS5fX3dlYmdsVGV4dHVyZTtpZihpLmRlcHRoVGV4dHVyZS5mb3JtYXQ9PT1raXQpdC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLGEsMCk7ZWxzZXtpZihpLmRlcHRoVGV4dHVyZS5mb3JtYXQhPT1TaXQpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoVGV4dHVyZSBmb3JtYXQiKTt0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDMzMzA2LDM1NTMsYSwwKX19KShpLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlKX1lbHNlIGlmKGEpe2kuX193ZWJnbERlcHRoYnVmZmVyPVtdO2ZvcihsZXQgbz0wO288NjtvKyspbi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsaS5fX3dlYmdsRnJhbWVidWZmZXJbb10pLGkuX193ZWJnbERlcHRoYnVmZmVyW29dPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCksVChpLl9fd2ViZ2xEZXB0aGJ1ZmZlcltvXSxlLCExKX1lbHNlIG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLGkuX193ZWJnbEZyYW1lYnVmZmVyKSxpLl9fd2ViZ2xEZXB0aGJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLFQoaS5fX3dlYmdsRGVwdGhidWZmZXIsZSwhMSk7bi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9KShlKX0sdGhpcy51cGRhdGVSZW5kZXJUYXJnZXRNaXBtYXA9ZnVuY3Rpb24gaih0KXtjb25zdCBlPWIodCl8fHMsaT0hMD09PXQuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cz90LnRleHR1cmU6W3QudGV4dHVyZV07Zm9yKGxldCBhPTAscj1pLmxlbmd0aDthPHI7YSsrKXtjb25zdCByPWlbYV07aWYoeShyLGUpKXtjb25zdCBlPXQuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ/MzQwNjc6MzU1MyxpPW8uZ2V0KHIpLl9fd2ViZ2xUZXh0dXJlO24uYmluZFRleHR1cmUoZSxpKSxfKGUscix0LndpZHRoLHQuaGVpZ2h0KSxuLmJpbmRUZXh0dXJlKGUsbnVsbCl9fX0sdGhpcy51cGRhdGVNdWx0aXNhbXBsZVJlbmRlclRhcmdldD1mdW5jdGlvbiBVKGUpe2lmKGUuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KWlmKHMpe2NvbnN0IGk9ZS53aWR0aCxhPWUuaGVpZ2h0O2xldCByPTE2Mzg0O2UuZGVwdGhCdWZmZXImJihyfD0yNTYpLGUuc3RlbmNpbEJ1ZmZlciYmKHJ8PTEwMjQpO2NvbnN0IHM9by5nZXQoZSk7bi5iaW5kRnJhbWVidWZmZXIoMzYwMDgscy5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXIpLG4uYmluZEZyYW1lYnVmZmVyKDM2MDA5LHMuX193ZWJnbEZyYW1lYnVmZmVyKSx0LmJsaXRGcmFtZWJ1ZmZlcigwLDAsaSxhLDAsMCxpLGEsciw5NzI4KSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxudWxsKSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOSxzLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcil9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFdlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMi4iKX0sdGhpcy5zYWZlU2V0VGV4dHVyZTJEPWZ1bmN0aW9uIEcodCxlKXt0JiZ0LmlzV2ViR0xSZW5kZXJUYXJnZXQmJighMT09PXomJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMVGV4dHVyZXMuc2FmZVNldFRleHR1cmUyRDogZG9uJ3QgdXNlIHJlbmRlciB0YXJnZXRzIGFzIHRleHR1cmVzLiBVc2UgdGhlaXIgLnRleHR1cmUgcHJvcGVydHkgaW5zdGVhZC4iKSx6PSEwKSx0PXQudGV4dHVyZSksUCh0LGUpfSx0aGlzLnNhZmVTZXRUZXh0dXJlQ3ViZT1mdW5jdGlvbiBXKHQsZSl7dCYmdC5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldCYmKCExPT09SSYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xUZXh0dXJlcy5zYWZlU2V0VGV4dHVyZUN1YmU6IGRvbid0IHVzZSBjdWJlIHJlbmRlciB0YXJnZXRzIGFzIHRleHR1cmVzLiBVc2UgdGhlaXIgLnRleHR1cmUgcHJvcGVydHkgaW5zdGVhZC4iKSxJPSEwKSx0PXQudGV4dHVyZSksdyh0LGUpfX1mdW5jdGlvbiBkZHQodCxlLG4pe2NvbnN0IG89bi5pc1dlYkdMMjtyZXR1cm57Y29udmVydDpmdW5jdGlvbiBpKHQpe2xldCBuO2lmKHQ9PT1faXQpcmV0dXJuIDUxMjE7aWYoMTAxNz09PXQpcmV0dXJuIDMyODE5O2lmKDEwMTg9PT10KXJldHVybiAzMjgyMDtpZigxMDE5PT09dClyZXR1cm4gMzM2MzU7aWYoMTAxMD09PXQpcmV0dXJuIDUxMjA7aWYoMTAxMT09PXQpcmV0dXJuIDUxMjI7aWYodD09PUNpdClyZXR1cm4gNTEyMztpZigxMDEzPT09dClyZXR1cm4gNTEyNDtpZih0PT09TWl0KXJldHVybiA1MTI1O2lmKHQ9PT12aXQpcmV0dXJuIDUxMjY7aWYodD09PXhpdClyZXR1cm4gbz81MTMxOihuPWUuZ2V0KCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiksbnVsbCE9PW4/bi5IQUxGX0ZMT0FUX09FUzpudWxsKTtpZigxMDIxPT09dClyZXR1cm4gNjQwNjtpZih0PT09UGl0KXJldHVybiA2NDA3O2lmKHQ9PT13aXQpcmV0dXJuIDY0MDg7aWYoMTAyND09PXQpcmV0dXJuIDY0MDk7aWYoMTAyNT09PXQpcmV0dXJuIDY0MTA7aWYodD09PWtpdClyZXR1cm4gNjQwMjtpZih0PT09U2l0KXJldHVybiAzNDA0MTtpZigxMDI4PT09dClyZXR1cm4gNjQwMztpZigxMDI5PT09dClyZXR1cm4gMzYyNDQ7aWYoMTAzMD09PXQpcmV0dXJuIDMzMzE5O2lmKDEwMzE9PT10KXJldHVybiAzMzMyMDtpZigxMDMyPT09dClyZXR1cm4gMzYyNDg7aWYoMTAzMz09PXQpcmV0dXJuIDM2MjQ5O2lmKDMzNzc2PT09dHx8MzM3Nzc9PT10fHwzMzc3OD09PXR8fDMzNzc5PT09dCl7aWYobj1lLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKSxudWxsPT09bilyZXR1cm4gbnVsbDtpZigzMzc3Nj09PXQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVDtpZigzMzc3Nz09PXQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQ7aWYoMzM3Nzg9PT10KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDNfRVhUO2lmKDMzNzc5PT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQ1X0VYVH1pZigzNTg0MD09PXR8fDM1ODQxPT09dHx8MzU4NDI9PT10fHwzNTg0Mz09PXQpe2lmKG49ZS5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpLG51bGw9PT1uKXJldHVybiBudWxsO2lmKDM1ODQwPT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HO2lmKDM1ODQxPT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQl9QVlJUQ18yQlBQVjFfSU1HO2lmKDM1ODQyPT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRztpZigzNTg0Mz09PXQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUd9aWYoMzYxOTY9PT10KXJldHVybiBuPWUuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfZXRjMSIpLG51bGwhPT1uP24uQ09NUFJFU1NFRF9SR0JfRVRDMV9XRUJHTDpudWxsO2lmKCgzNzQ5Mj09PXR8fDM3NDk2PT09dCkmJihuPWUuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfZXRjIiksbnVsbCE9PW4pKXtpZigzNzQ5Mj09PXQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0I4X0VUQzI7aWYoMzc0OTY9PT10KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQThfRVRDMl9FQUN9cmV0dXJuIDM3ODA4PT09dHx8Mzc4MDk9PT10fHwzNzgxMD09PXR8fDM3ODExPT09dHx8Mzc4MTI9PT10fHwzNzgxMz09PXR8fDM3ODE0PT09dHx8Mzc4MTU9PT10fHwzNzgxNj09PXR8fDM3ODE3PT09dHx8Mzc4MTg9PT10fHwzNzgxOT09PXR8fDM3ODIwPT09dHx8Mzc4MjE9PT10fHwzNzg0MD09PXR8fDM3ODQxPT09dHx8Mzc4NDI9PT10fHwzNzg0Mz09PXR8fDM3ODQ0PT09dHx8Mzc4NDU9PT10fHwzNzg0Nj09PXR8fDM3ODQ3PT09dHx8Mzc4NDg9PT10fHwzNzg0OT09PXR8fDM3ODUwPT09dHx8Mzc4NTE9PT10fHwzNzg1Mj09PXR8fDM3ODUzPT09dD8obj1lLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2FzdGMiKSxudWxsIT09bj90Om51bGwpOjM2NDkyPT09dD8obj1lLmdldCgiRVhUX3RleHR1cmVfY29tcHJlc3Npb25fYnB0YyIpLG51bGwhPT1uP3Q6bnVsbCk6dD09PU9pdD9vPzM0MDQyOihuPWUuZ2V0KCJXRUJHTF9kZXB0aF90ZXh0dXJlIiksbnVsbCE9PW4/bi5VTlNJR05FRF9JTlRfMjRfOF9XRUJHTDpudWxsKTp2b2lkIDB9fX1yZHQucHJvdG90eXBlLmlzTWVzaERpc3RhbmNlTWF0ZXJpYWw9ITA7Y2xhc3MgcGR0IGV4dGVuZHMgX3N0e2NvbnN0cnVjdG9yKHQ9W10pe3N1cGVyKCksdGhpcy5jYW1lcmFzPXR9fXBkdC5wcm90b3R5cGUuaXNBcnJheUNhbWVyYT0hMDtjbGFzcyBtZHQgZXh0ZW5kcyBwcnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iR3JvdXAifX1tZHQucHJvdG90eXBlLmlzR3JvdXA9ITA7Y29uc3QgdWR0PXt0eXBlOiJtb3ZlIn07Y2xhc3MgZmR0e2NvbnN0cnVjdG9yKCl7dGhpcy5fdGFyZ2V0UmF5PW51bGwsdGhpcy5fZ3JpcD1udWxsLHRoaXMuX2hhbmQ9bnVsbH1nZXRIYW5kU3BhY2UoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2hhbmQmJih0aGlzLl9oYW5kPW5ldyBtZHQsdGhpcy5faGFuZC5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX2hhbmQudmlzaWJsZT0hMSx0aGlzLl9oYW5kLmpvaW50cz17fSx0aGlzLl9oYW5kLmlucHV0U3RhdGU9e3BpbmNoaW5nOiExfSksdGhpcy5faGFuZH1nZXRUYXJnZXRSYXlTcGFjZSgpe3JldHVybiBudWxsPT09dGhpcy5fdGFyZ2V0UmF5JiYodGhpcy5fdGFyZ2V0UmF5PW5ldyBtZHQsdGhpcy5fdGFyZ2V0UmF5Lm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5fdGFyZ2V0UmF5LnZpc2libGU9ITEsdGhpcy5fdGFyZ2V0UmF5Lmhhc0xpbmVhclZlbG9jaXR5PSExLHRoaXMuX3RhcmdldFJheS5saW5lYXJWZWxvY2l0eT1uZXcgY2F0LHRoaXMuX3RhcmdldFJheS5oYXNBbmd1bGFyVmVsb2NpdHk9ITEsdGhpcy5fdGFyZ2V0UmF5LmFuZ3VsYXJWZWxvY2l0eT1uZXcgY2F0KSx0aGlzLl90YXJnZXRSYXl9Z2V0R3JpcFNwYWNlKCl7cmV0dXJuIG51bGw9PT10aGlzLl9ncmlwJiYodGhpcy5fZ3JpcD1uZXcgbWR0LHRoaXMuX2dyaXAubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLl9ncmlwLnZpc2libGU9ITEsdGhpcy5fZ3JpcC5oYXNMaW5lYXJWZWxvY2l0eT0hMSx0aGlzLl9ncmlwLmxpbmVhclZlbG9jaXR5PW5ldyBjYXQsdGhpcy5fZ3JpcC5oYXNBbmd1bGFyVmVsb2NpdHk9ITEsdGhpcy5fZ3JpcC5hbmd1bGFyVmVsb2NpdHk9bmV3IGNhdCksdGhpcy5fZ3JpcH1kaXNwYXRjaEV2ZW50KHQpe3JldHVybiBudWxsIT09dGhpcy5fdGFyZ2V0UmF5JiZ0aGlzLl90YXJnZXRSYXkuZGlzcGF0Y2hFdmVudCh0KSxudWxsIT09dGhpcy5fZ3JpcCYmdGhpcy5fZ3JpcC5kaXNwYXRjaEV2ZW50KHQpLG51bGwhPT10aGlzLl9oYW5kJiZ0aGlzLl9oYW5kLmRpc3BhdGNoRXZlbnQodCksdGhpc31kaXNjb25uZWN0KHQpe3JldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc2Nvbm5lY3RlZCIsZGF0YTp0fSksbnVsbCE9PXRoaXMuX3RhcmdldFJheSYmKHRoaXMuX3RhcmdldFJheS52aXNpYmxlPSExKSxudWxsIT09dGhpcy5fZ3JpcCYmKHRoaXMuX2dyaXAudmlzaWJsZT0hMSksbnVsbCE9PXRoaXMuX2hhbmQmJih0aGlzLl9oYW5kLnZpc2libGU9ITEpLHRoaXN9dXBkYXRlKHQsZSxuKXtsZXQgbz1udWxsLGk9bnVsbCxhPW51bGw7Y29uc3Qgcj10aGlzLl90YXJnZXRSYXkscz10aGlzLl9ncmlwLGw9dGhpcy5faGFuZDtpZih0JiYidmlzaWJsZS1ibHVycmVkIiE9PWUuc2Vzc2lvbi52aXNpYmlsaXR5U3RhdGUpaWYobnVsbCE9PXImJihvPWUuZ2V0UG9zZSh0LnRhcmdldFJheVNwYWNlLG4pLG51bGwhPT1vJiYoci5tYXRyaXguZnJvbUFycmF5KG8udHJhbnNmb3JtLm1hdHJpeCksci5tYXRyaXguZGVjb21wb3NlKHIucG9zaXRpb24sci5yb3RhdGlvbixyLnNjYWxlKSxvLmxpbmVhclZlbG9jaXR5PyhyLmhhc0xpbmVhclZlbG9jaXR5PSEwLHIubGluZWFyVmVsb2NpdHkuY29weShvLmxpbmVhclZlbG9jaXR5KSk6ci5oYXNMaW5lYXJWZWxvY2l0eT0hMSxvLmFuZ3VsYXJWZWxvY2l0eT8oci5oYXNBbmd1bGFyVmVsb2NpdHk9ITAsci5hbmd1bGFyVmVsb2NpdHkuY29weShvLmFuZ3VsYXJWZWxvY2l0eSkpOnIuaGFzQW5ndWxhclZlbG9jaXR5PSExLHRoaXMuZGlzcGF0Y2hFdmVudCh1ZHQpKSksbCYmdC5oYW5kKXthPSEwO2Zvcihjb25zdCBvIG9mIHQuaGFuZC52YWx1ZXMoKSl7Y29uc3QgdD1lLmdldEpvaW50UG9zZShvLG4pO2lmKHZvaWQgMD09PWwuam9pbnRzW28uam9pbnROYW1lXSl7Y29uc3QgdD1uZXcgbWR0O3QubWF0cml4QXV0b1VwZGF0ZT0hMSx0LnZpc2libGU9ITEsbC5qb2ludHNbby5qb2ludE5hbWVdPXQsbC5hZGQodCl9Y29uc3QgaT1sLmpvaW50c1tvLmpvaW50TmFtZV07bnVsbCE9PXQmJihpLm1hdHJpeC5mcm9tQXJyYXkodC50cmFuc2Zvcm0ubWF0cml4KSxpLm1hdHJpeC5kZWNvbXBvc2UoaS5wb3NpdGlvbixpLnJvdGF0aW9uLGkuc2NhbGUpLGkuam9pbnRSYWRpdXM9dC5yYWRpdXMpLGkudmlzaWJsZT1udWxsIT09dH1jb25zdCBvPWwuam9pbnRzWyJpbmRleC1maW5nZXItdGlwIl0ucG9zaXRpb24uZGlzdGFuY2VUbyhsLmpvaW50c1sidGh1bWItdGlwIl0ucG9zaXRpb24pLGk9LjAyLHI9LjAwNTtsLmlucHV0U3RhdGUucGluY2hpbmcmJm8+aStyPyhsLmlucHV0U3RhdGUucGluY2hpbmc9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJwaW5jaGVuZCIsaGFuZGVkbmVzczp0LmhhbmRlZG5lc3MsdGFyZ2V0OnRoaXN9KSk6IWwuaW5wdXRTdGF0ZS5waW5jaGluZyYmbzw9aS1yJiYobC5pbnB1dFN0YXRlLnBpbmNoaW5nPSEwLHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToicGluY2hzdGFydCIsaGFuZGVkbmVzczp0LmhhbmRlZG5lc3MsdGFyZ2V0OnRoaXN9KSl9ZWxzZSBudWxsIT09cyYmdC5ncmlwU3BhY2UmJihpPWUuZ2V0UG9zZSh0LmdyaXBTcGFjZSxuKSxudWxsIT09aSYmKHMubWF0cml4LmZyb21BcnJheShpLnRyYW5zZm9ybS5tYXRyaXgpLHMubWF0cml4LmRlY29tcG9zZShzLnBvc2l0aW9uLHMucm90YXRpb24scy5zY2FsZSksaS5saW5lYXJWZWxvY2l0eT8ocy5oYXNMaW5lYXJWZWxvY2l0eT0hMCxzLmxpbmVhclZlbG9jaXR5LmNvcHkoaS5saW5lYXJWZWxvY2l0eSkpOnMuaGFzTGluZWFyVmVsb2NpdHk9ITEsaS5hbmd1bGFyVmVsb2NpdHk/KHMuaGFzQW5ndWxhclZlbG9jaXR5PSEwLHMuYW5ndWxhclZlbG9jaXR5LmNvcHkoaS5hbmd1bGFyVmVsb2NpdHkpKTpzLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSkpO3JldHVybiBudWxsIT09ciYmKHIudmlzaWJsZT1udWxsIT09byksbnVsbCE9PXMmJihzLnZpc2libGU9bnVsbCE9PWkpLG51bGwhPT1sJiYobC52aXNpYmxlPW51bGwhPT1hKSx0aGlzfX1jbGFzcyBnZHQgZXh0ZW5kcyBVaXR7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpO2NvbnN0IG49dGhpcyxvPXQuc3RhdGU7bGV0IGk9bnVsbCxhPTEscj1udWxsLHM9ImxvY2FsLWZsb29yIixsPW51bGwsYz1udWxsLGQ9bnVsbCxwPW51bGwsbT1udWxsO2NvbnN0IHU9W10sZj1uZXcgTWFwLGc9bmV3IF9zdDtnLmxheWVycy5lbmFibGUoMSksZy52aWV3cG9ydD1uZXcgYWF0O2NvbnN0IGg9bmV3IF9zdDtoLmxheWVycy5lbmFibGUoMiksaC52aWV3cG9ydD1uZXcgYWF0O2NvbnN0IGI9W2csaF0seT1uZXcgcGR0O3kubGF5ZXJzLmVuYWJsZSgxKSx5LmxheWVycy5lbmFibGUoMik7bGV0IF89bnVsbCxDPW51bGw7ZnVuY3Rpb24gTSh0KXtjb25zdCBlPWYuZ2V0KHQuaW5wdXRTb3VyY2UpO2UmJmUuZGlzcGF0Y2hFdmVudCh7dHlwZTp0LnR5cGUsZGF0YTp0LmlucHV0U291cmNlfSl9ZnVuY3Rpb24gdigpe2YuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LmRpc2Nvbm5lY3QoZSl9KSksZi5jbGVhcigpLF89bnVsbCxDPW51bGwsby5iaW5kWFJGcmFtZWJ1ZmZlcihudWxsKSx0LnNldFJlbmRlclRhcmdldCh0LmdldFJlbmRlclRhcmdldCgpKSxTLnN0b3AoKSxuLmlzUHJlc2VudGluZz0hMSxuLmRpc3BhdGNoRXZlbnQoe3R5cGU6InNlc3Npb25lbmQifSl9ZnVuY3Rpb24geCh0KXtjb25zdCBlPWkuaW5wdXRTb3VyY2VzO2ZvcihsZXQgdD0wO3Q8dS5sZW5ndGg7dCsrKWYuc2V0KGVbdF0sdVt0XSk7Zm9yKGxldCBlPTA7ZTx0LnJlbW92ZWQubGVuZ3RoO2UrKyl7Y29uc3Qgbj10LnJlbW92ZWRbZV0sbz1mLmdldChuKTtvJiYoby5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNjb25uZWN0ZWQiLGRhdGE6bn0pLGYuZGVsZXRlKG4pKX1mb3IobGV0IGU9MDtlPHQuYWRkZWQubGVuZ3RoO2UrKyl7Y29uc3Qgbj10LmFkZGVkW2VdLG89Zi5nZXQobik7byYmby5kaXNwYXRjaEV2ZW50KHt0eXBlOiJjb25uZWN0ZWQiLGRhdGE6bn0pfX10aGlzLmNhbWVyYUF1dG9VcGRhdGU9ITAsdGhpcy5lbmFibGVkPSExLHRoaXMuaXNQcmVzZW50aW5nPSExLHRoaXMuZ2V0Q29udHJvbGxlcj1mdW5jdGlvbih0KXtsZXQgZT11W3RdO3JldHVybiB2b2lkIDA9PT1lJiYoZT1uZXcgZmR0LHVbdF09ZSksZS5nZXRUYXJnZXRSYXlTcGFjZSgpfSx0aGlzLmdldENvbnRyb2xsZXJHcmlwPWZ1bmN0aW9uKHQpe2xldCBlPXVbdF07cmV0dXJuIHZvaWQgMD09PWUmJihlPW5ldyBmZHQsdVt0XT1lKSxlLmdldEdyaXBTcGFjZSgpfSx0aGlzLmdldEhhbmQ9ZnVuY3Rpb24odCl7bGV0IGU9dVt0XTtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9bmV3IGZkdCx1W3RdPWUpLGUuZ2V0SGFuZFNwYWNlKCl9LHRoaXMuc2V0RnJhbWVidWZmZXJTY2FsZUZhY3Rvcj1mdW5jdGlvbih0KXthPXQsITA9PT1uLmlzUHJlc2VudGluZyYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJYUk1hbmFnZXI6IENhbm5vdCBjaGFuZ2UgZnJhbWVidWZmZXIgc2NhbGUgd2hpbGUgcHJlc2VudGluZy4iKX0sdGhpcy5zZXRSZWZlcmVuY2VTcGFjZVR5cGU9ZnVuY3Rpb24odCl7cz10LCEwPT09bi5pc1ByZXNlbnRpbmcmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViWFJNYW5hZ2VyOiBDYW5ub3QgY2hhbmdlIHJlZmVyZW5jZSBzcGFjZSB0eXBlIHdoaWxlIHByZXNlbnRpbmcuIil9LHRoaXMuZ2V0UmVmZXJlbmNlU3BhY2U9ZnVuY3Rpb24oKXtyZXR1cm4gcn0sdGhpcy5nZXRTZXNzaW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGl9LHRoaXMuc2V0U2Vzc2lvbj1hc3luYyBmdW5jdGlvbih0KXtpZihpPXQsbnVsbCE9PWkpe2kuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0IixNKSxpLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdHN0YXJ0IixNKSxpLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVuZCIsTSksaS5hZGRFdmVudExpc3RlbmVyKCJzcXVlZXplIixNKSxpLmFkZEV2ZW50TGlzdGVuZXIoInNxdWVlemVzdGFydCIsTSksaS5hZGRFdmVudExpc3RlbmVyKCJzcXVlZXplZW5kIixNKSxpLmFkZEV2ZW50TGlzdGVuZXIoImVuZCIsdiksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dHNvdXJjZXNjaGFuZ2UiLHgpO2NvbnN0IHQ9ZS5nZXRDb250ZXh0QXR0cmlidXRlcygpO2lmKCEwIT09dC54ckNvbXBhdGlibGUmJmF3YWl0IGUubWFrZVhSQ29tcGF0aWJsZSgpLHZvaWQgMD09PWkucmVuZGVyU3RhdGUubGF5ZXJzKW09bmV3IFhSV2ViR0xMYXllcihpLGUse2FudGlhbGlhczp0LmFudGlhbGlhcyxhbHBoYTp0LmFscGhhLGRlcHRoOnQuZGVwdGgsc3RlbmNpbDp0LnN0ZW5jaWwsZnJhbWVidWZmZXJTY2FsZUZhY3RvcjphfSksaS51cGRhdGVSZW5kZXJTdGF0ZSh7YmFzZUxheWVyOm19KTtlbHNle2xldCBuPTA7aWYodC5hbnRpYWxpYXMpbT1uZXcgWFJXZWJHTExheWVyKGksZSx7YW50aWFsaWFzOiEwLGFscGhhOnQuYWxwaGEsZGVwdGg6dC5kZXB0aCxzdGVuY2lsOnQuc3RlbmNpbCxmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yOmF9KSxpLnVwZGF0ZVJlbmRlclN0YXRlKHtsYXllcnM6W21dfSk7ZWxzZXt0LmRlcHRoJiYobj10LnN0ZW5jaWw/MzQwNDE6NjQwMik7Y29uc3Qgbz17Y29sb3JGb3JtYXQ6dC5hbHBoYT82NDA4OjY0MDcsZGVwdGhGb3JtYXQ6bixzY2FsZUZhY3RvcjphfTtjPW5ldyBYUldlYkdMQmluZGluZyhpLGUpLHA9Yy5jcmVhdGVQcm9qZWN0aW9uTGF5ZXIobyksZD1lLmNyZWF0ZUZyYW1lYnVmZmVyKCksaS51cGRhdGVSZW5kZXJTdGF0ZSh7bGF5ZXJzOltwXX0pfX1yPWF3YWl0IGkucmVxdWVzdFJlZmVyZW5jZVNwYWNlKHMpLFMuc2V0Q29udGV4dChpKSxTLnN0YXJ0KCksbi5pc1ByZXNlbnRpbmc9ITAsbi5kaXNwYXRjaEV2ZW50KHt0eXBlOiJzZXNzaW9uc3RhcnQifSl9fTtjb25zdCBPPW5ldyBjYXQsUD1uZXcgY2F0O2Z1bmN0aW9uIHcodCxlKXtudWxsPT09ZT90Lm1hdHJpeFdvcmxkLmNvcHkodC5tYXRyaXgpOnQubWF0cml4V29ybGQubXVsdGlwbHlNYXRyaWNlcyhlLm1hdHJpeFdvcmxkLHQubWF0cml4KSx0Lm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHQubWF0cml4V29ybGQpLmludmVydCgpfXRoaXMudXBkYXRlQ2FtZXJhPWZ1bmN0aW9uKHQpe2lmKG51bGw9PT1pKXJldHVybjt5Lm5lYXI9aC5uZWFyPWcubmVhcj10Lm5lYXIseS5mYXI9aC5mYXI9Zy5mYXI9dC5mYXIsXz09PXkubmVhciYmQz09PXkuZmFyfHwoaS51cGRhdGVSZW5kZXJTdGF0ZSh7ZGVwdGhOZWFyOnkubmVhcixkZXB0aEZhcjp5LmZhcn0pLF89eS5uZWFyLEM9eS5mYXIpO2NvbnN0IGU9dC5wYXJlbnQsbj15LmNhbWVyYXM7dyh5LGUpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXcoblt0XSxlKTt5Lm1hdHJpeFdvcmxkLmRlY29tcG9zZSh5LnBvc2l0aW9uLHkucXVhdGVybmlvbix5LnNjYWxlKSx0LnBvc2l0aW9uLmNvcHkoeS5wb3NpdGlvbiksdC5xdWF0ZXJuaW9uLmNvcHkoeS5xdWF0ZXJuaW9uKSx0LnNjYWxlLmNvcHkoeS5zY2FsZSksdC5tYXRyaXguY29weSh5Lm1hdHJpeCksdC5tYXRyaXhXb3JsZC5jb3B5KHkubWF0cml4V29ybGQpO2NvbnN0IG89dC5jaGlsZHJlbjtmb3IobGV0IHQ9MCxlPW8ubGVuZ3RoO3Q8ZTt0Kyspb1t0XS51cGRhdGVNYXRyaXhXb3JsZCghMCk7Mj09PW4ubGVuZ3RoPyhmdW5jdGlvbiBhKHQsZSxuKXtPLnNldEZyb21NYXRyaXhQb3NpdGlvbihlLm1hdHJpeFdvcmxkKSxQLnNldEZyb21NYXRyaXhQb3NpdGlvbihuLm1hdHJpeFdvcmxkKTtjb25zdCBvPU8uZGlzdGFuY2VUbyhQKSxpPWUucHJvamVjdGlvbk1hdHJpeC5lbGVtZW50cyxhPW4ucHJvamVjdGlvbk1hdHJpeC5lbGVtZW50cyxyPWlbMTRdLyhpWzEwXS0xKSxzPWlbMTRdLyhpWzEwXSsxKSxsPShpWzldKzEpL2lbNV0sYz0oaVs5XS0xKS9pWzVdLGQ9KGlbOF0tMSkvaVswXSxwPShhWzhdKzEpL2FbMF0sbT1yKmQsdT1yKnAsZj1vLygtZCtwKSxnPWYqLWQ7ZS5tYXRyaXhXb3JsZC5kZWNvbXBvc2UodC5wb3NpdGlvbix0LnF1YXRlcm5pb24sdC5zY2FsZSksdC50cmFuc2xhdGVYKGcpLHQudHJhbnNsYXRlWihmKSx0Lm1hdHJpeFdvcmxkLmNvbXBvc2UodC5wb3NpdGlvbix0LnF1YXRlcm5pb24sdC5zY2FsZSksdC5tYXRyaXhXb3JsZEludmVyc2UuY29weSh0Lm1hdHJpeFdvcmxkKS5pbnZlcnQoKTtjb25zdCBoPXIrZixiPXMrZjt0LnByb2plY3Rpb25NYXRyaXgubWFrZVBlcnNwZWN0aXZlKG0tZyx1KyhvLWcpLGwqcy9iKmgsYypzL2IqaCxoLGIpfSkoeSxnLGgpOnkucHJvamVjdGlvbk1hdHJpeC5jb3B5KGcucHJvamVjdGlvbk1hdHJpeCl9LHRoaXMuZ2V0Q2FtZXJhPWZ1bmN0aW9uKCl7cmV0dXJuIHl9LHRoaXMuZ2V0Rm92ZWF0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1wP3AuZml4ZWRGb3ZlYXRpb246bnVsbCE9PW0/bS5maXhlZEZvdmVhdGlvbjp2b2lkIDB9LHRoaXMuc2V0Rm92ZWF0aW9uPWZ1bmN0aW9uKHQpe251bGwhPT1wJiYocC5maXhlZEZvdmVhdGlvbj10KSxudWxsIT09bSYmdm9pZCAwIT09bS5maXhlZEZvdmVhdGlvbiYmKG0uZml4ZWRGb3ZlYXRpb249dCl9O2xldCBrPW51bGw7Y29uc3QgUz1uZXcgUnN0O1Muc2V0QW5pbWF0aW9uTG9vcCgoZnVuY3Rpb24gRCh0LG4pe2lmKGw9bi5nZXRWaWV3ZXJQb3NlKHIpLG51bGwhPT1sKXtjb25zdCB0PWwudmlld3M7bnVsbCE9PW0mJm8uYmluZFhSRnJhbWVidWZmZXIobS5mcmFtZWJ1ZmZlcik7bGV0IG49ITE7dC5sZW5ndGghPT15LmNhbWVyYXMubGVuZ3RoJiYoeS5jYW1lcmFzLmxlbmd0aD0wLG49ITApO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXtjb25zdCBhPXRbaV07bGV0IHI9bnVsbDtpZihudWxsIT09bSlyPW0uZ2V0Vmlld3BvcnQoYSk7ZWxzZXtjb25zdCB0PWMuZ2V0Vmlld1N1YkltYWdlKHAsYSk7by5iaW5kWFJGcmFtZWJ1ZmZlcihkKSx2b2lkIDAhPT10LmRlcHRoU3RlbmNpbFRleHR1cmUmJmUuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwOTYsMzU1Myx0LmRlcHRoU3RlbmNpbFRleHR1cmUsMCksZS5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA2NCwzNTUzLHQuY29sb3JUZXh0dXJlLDApLHI9dC52aWV3cG9ydH1jb25zdCBzPWJbaV07cy5tYXRyaXguZnJvbUFycmF5KGEudHJhbnNmb3JtLm1hdHJpeCkscy5wcm9qZWN0aW9uTWF0cml4LmZyb21BcnJheShhLnByb2plY3Rpb25NYXRyaXgpLHMudmlld3BvcnQuc2V0KHIueCxyLnksci53aWR0aCxyLmhlaWdodCksMD09PWkmJnkubWF0cml4LmNvcHkocy5tYXRyaXgpLCEwPT09biYmeS5jYW1lcmFzLnB1c2gocyl9fWNvbnN0IGE9aS5pbnB1dFNvdXJjZXM7Zm9yKGxldCB0PTA7dDx1Lmxlbmd0aDt0KyspdVt0XS51cGRhdGUoYVt0XSxuLHIpO2smJmsodCxuKX0pKSx0aGlzLnNldEFuaW1hdGlvbkxvb3A9ZnVuY3Rpb24odCl7az10fSx0aGlzLmRpc3Bvc2U9ZnVuY3Rpb24oKXt9fX1mdW5jdGlvbiBoZHQodCl7ZnVuY3Rpb24gZShlLG4pe2Uub3BhY2l0eS52YWx1ZT1uLm9wYWNpdHksbi5jb2xvciYmZS5kaWZmdXNlLnZhbHVlLmNvcHkobi5jb2xvciksbi5lbWlzc2l2ZSYmZS5lbWlzc2l2ZS52YWx1ZS5jb3B5KG4uZW1pc3NpdmUpLm11bHRpcGx5U2NhbGFyKG4uZW1pc3NpdmVJbnRlbnNpdHkpLG4ubWFwJiYoZS5tYXAudmFsdWU9bi5tYXApLG4uYWxwaGFNYXAmJihlLmFscGhhTWFwLnZhbHVlPW4uYWxwaGFNYXApLG4uc3BlY3VsYXJNYXAmJihlLnNwZWN1bGFyTWFwLnZhbHVlPW4uc3BlY3VsYXJNYXApO2NvbnN0IG89dC5nZXQobikuZW52TWFwO2lmKG8pe2UuZW52TWFwLnZhbHVlPW8sZS5mbGlwRW52TWFwLnZhbHVlPW8uaXNDdWJlVGV4dHVyZSYmITE9PT1vLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT8tMToxLGUucmVmbGVjdGl2aXR5LnZhbHVlPW4ucmVmbGVjdGl2aXR5LGUucmVmcmFjdGlvblJhdGlvLnZhbHVlPW4ucmVmcmFjdGlvblJhdGlvO2NvbnN0IGk9dC5nZXQobykuX19tYXhNaXBMZXZlbDt2b2lkIDAhPT1pJiYoZS5tYXhNaXBMZXZlbC52YWx1ZT1pKX1sZXQgaSxhO24ubGlnaHRNYXAmJihlLmxpZ2h0TWFwLnZhbHVlPW4ubGlnaHRNYXAsZS5saWdodE1hcEludGVuc2l0eS52YWx1ZT1uLmxpZ2h0TWFwSW50ZW5zaXR5KSxuLmFvTWFwJiYoZS5hb01hcC52YWx1ZT1uLmFvTWFwLGUuYW9NYXBJbnRlbnNpdHkudmFsdWU9bi5hb01hcEludGVuc2l0eSksbi5tYXA/aT1uLm1hcDpuLnNwZWN1bGFyTWFwP2k9bi5zcGVjdWxhck1hcDpuLmRpc3BsYWNlbWVudE1hcD9pPW4uZGlzcGxhY2VtZW50TWFwOm4ubm9ybWFsTWFwP2k9bi5ub3JtYWxNYXA6bi5idW1wTWFwP2k9bi5idW1wTWFwOm4ucm91Z2huZXNzTWFwP2k9bi5yb3VnaG5lc3NNYXA6bi5tZXRhbG5lc3NNYXA/aT1uLm1ldGFsbmVzc01hcDpuLmFscGhhTWFwP2k9bi5hbHBoYU1hcDpuLmVtaXNzaXZlTWFwP2k9bi5lbWlzc2l2ZU1hcDpuLmNsZWFyY29hdE1hcD9pPW4uY2xlYXJjb2F0TWFwOm4uY2xlYXJjb2F0Tm9ybWFsTWFwP2k9bi5jbGVhcmNvYXROb3JtYWxNYXA6bi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/aT1uLmNsZWFyY29hdFJvdWdobmVzc01hcDpuLnNwZWN1bGFySW50ZW5zaXR5TWFwP2k9bi5zcGVjdWxhckludGVuc2l0eU1hcDpuLnNwZWN1bGFyVGludE1hcCYmKGk9bi5zcGVjdWxhclRpbnRNYXApLHZvaWQgMCE9PWkmJihpLmlzV2ViR0xSZW5kZXJUYXJnZXQmJihpPWkudGV4dHVyZSksITA9PT1pLm1hdHJpeEF1dG9VcGRhdGUmJmkudXBkYXRlTWF0cml4KCksZS51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KGkubWF0cml4KSksbi5hb01hcD9hPW4uYW9NYXA6bi5saWdodE1hcCYmKGE9bi5saWdodE1hcCksdm9pZCAwIT09YSYmKGEuaXNXZWJHTFJlbmRlclRhcmdldCYmKGE9YS50ZXh0dXJlKSwhMD09PWEubWF0cml4QXV0b1VwZGF0ZSYmYS51cGRhdGVNYXRyaXgoKSxlLnV2MlRyYW5zZm9ybS52YWx1ZS5jb3B5KGEubWF0cml4KSl9ZnVuY3Rpb24gbihlLG4pe2Uucm91Z2huZXNzLnZhbHVlPW4ucm91Z2huZXNzLGUubWV0YWxuZXNzLnZhbHVlPW4ubWV0YWxuZXNzLG4ucm91Z2huZXNzTWFwJiYoZS5yb3VnaG5lc3NNYXAudmFsdWU9bi5yb3VnaG5lc3NNYXApLG4ubWV0YWxuZXNzTWFwJiYoZS5tZXRhbG5lc3NNYXAudmFsdWU9bi5tZXRhbG5lc3NNYXApLG4uZW1pc3NpdmVNYXAmJihlLmVtaXNzaXZlTWFwLnZhbHVlPW4uZW1pc3NpdmVNYXApLG4uYnVtcE1hcCYmKGUuYnVtcE1hcC52YWx1ZT1uLmJ1bXBNYXAsZS5idW1wU2NhbGUudmFsdWU9bi5idW1wU2NhbGUsMT09PW4uc2lkZSYmKGUuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLG4ubm9ybWFsTWFwJiYoZS5ub3JtYWxNYXAudmFsdWU9bi5ub3JtYWxNYXAsZS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KG4ubm9ybWFsU2NhbGUpLDE9PT1uLnNpZGUmJmUubm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpLG4uZGlzcGxhY2VtZW50TWFwJiYoZS5kaXNwbGFjZW1lbnRNYXAudmFsdWU9bi5kaXNwbGFjZW1lbnRNYXAsZS5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1uLmRpc3BsYWNlbWVudFNjYWxlLGUuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1uLmRpc3BsYWNlbWVudEJpYXMpLHQuZ2V0KG4pLmVudk1hcCYmKGUuZW52TWFwSW50ZW5zaXR5LnZhbHVlPW4uZW52TWFwSW50ZW5zaXR5KX1yZXR1cm57cmVmcmVzaEZvZ1VuaWZvcm1zOmZ1bmN0aW9uIG8odCxlKXt0LmZvZ0NvbG9yLnZhbHVlLmNvcHkoZS5jb2xvciksZS5pc0ZvZz8odC5mb2dOZWFyLnZhbHVlPWUubmVhcix0LmZvZ0Zhci52YWx1ZT1lLmZhcik6ZS5pc0ZvZ0V4cDImJih0LmZvZ0RlbnNpdHkudmFsdWU9ZS5kZW5zaXR5KX0scmVmcmVzaE1hdGVyaWFsVW5pZm9ybXM6ZnVuY3Rpb24gaSh0LG8sYSxyLHMpe28uaXNNZXNoQmFzaWNNYXRlcmlhbD9lKHQsbyk6by5pc01lc2hMYW1iZXJ0TWF0ZXJpYWw/KGUodCxvKSwoZnVuY3Rpb24gbCh0LGUpe2UuZW1pc3NpdmVNYXAmJih0LmVtaXNzaXZlTWFwLnZhbHVlPWUuZW1pc3NpdmVNYXApfSkodCxvKSk6by5pc01lc2hUb29uTWF0ZXJpYWw/KGUodCxvKSwoZnVuY3Rpb24gYyh0LGUpe2UuZ3JhZGllbnRNYXAmJih0LmdyYWRpZW50TWFwLnZhbHVlPWUuZ3JhZGllbnRNYXApLGUuZW1pc3NpdmVNYXAmJih0LmVtaXNzaXZlTWFwLnZhbHVlPWUuZW1pc3NpdmVNYXApLGUuYnVtcE1hcCYmKHQuYnVtcE1hcC52YWx1ZT1lLmJ1bXBNYXAsdC5idW1wU2NhbGUudmFsdWU9ZS5idW1wU2NhbGUsMT09PWUuc2lkZSYmKHQuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLGUubm9ybWFsTWFwJiYodC5ub3JtYWxNYXAudmFsdWU9ZS5ub3JtYWxNYXAsdC5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KGUubm9ybWFsU2NhbGUpLDE9PT1lLnNpZGUmJnQubm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpLGUuZGlzcGxhY2VtZW50TWFwJiYodC5kaXNwbGFjZW1lbnRNYXAudmFsdWU9ZS5kaXNwbGFjZW1lbnRNYXAsdC5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1lLmRpc3BsYWNlbWVudFNjYWxlLHQuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1lLmRpc3BsYWNlbWVudEJpYXMpfSkodCxvKSk6by5pc01lc2hQaG9uZ01hdGVyaWFsPyhlKHQsbyksKGZ1bmN0aW9uIGQodCxlKXt0LnNwZWN1bGFyLnZhbHVlLmNvcHkoZS5zcGVjdWxhciksdC5zaGluaW5lc3MudmFsdWU9TWF0aC5tYXgoZS5zaGluaW5lc3MsMWUtNCksZS5lbWlzc2l2ZU1hcCYmKHQuZW1pc3NpdmVNYXAudmFsdWU9ZS5lbWlzc2l2ZU1hcCksZS5idW1wTWFwJiYodC5idW1wTWFwLnZhbHVlPWUuYnVtcE1hcCx0LmJ1bXBTY2FsZS52YWx1ZT1lLmJ1bXBTY2FsZSwxPT09ZS5zaWRlJiYodC5idW1wU2NhbGUudmFsdWUqPS0xKSksZS5ub3JtYWxNYXAmJih0Lm5vcm1hbE1hcC52YWx1ZT1lLm5vcm1hbE1hcCx0Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5ub3JtYWxTY2FsZSksMT09PWUuc2lkZSYmdC5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LG8pKTpvLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/KGUodCxvKSxvLmlzTWVzaFBoeXNpY2FsTWF0ZXJpYWw/KGZ1bmN0aW9uIHAodCxlLG8pe24odCxlKSx0LnJlZmxlY3Rpdml0eS52YWx1ZT1lLnJlZmxlY3Rpdml0eSx0LmNsZWFyY29hdC52YWx1ZT1lLmNsZWFyY29hdCx0LmNsZWFyY29hdFJvdWdobmVzcy52YWx1ZT1lLmNsZWFyY29hdFJvdWdobmVzcyxlLnNoZWVuJiZ0LnNoZWVuLnZhbHVlLmNvcHkoZS5zaGVlbiksZS5jbGVhcmNvYXRNYXAmJih0LmNsZWFyY29hdE1hcC52YWx1ZT1lLmNsZWFyY29hdE1hcCksZS5jbGVhcmNvYXRSb3VnaG5lc3NNYXAmJih0LmNsZWFyY29hdFJvdWdobmVzc01hcC52YWx1ZT1lLmNsZWFyY29hdFJvdWdobmVzc01hcCksZS5jbGVhcmNvYXROb3JtYWxNYXAmJih0LmNsZWFyY29hdE5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5jbGVhcmNvYXROb3JtYWxTY2FsZSksdC5jbGVhcmNvYXROb3JtYWxNYXAudmFsdWU9ZS5jbGVhcmNvYXROb3JtYWxNYXAsMT09PWUuc2lkZSYmdC5jbGVhcmNvYXROb3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksdC50cmFuc21pc3Npb24udmFsdWU9ZS50cmFuc21pc3Npb24sZS50cmFuc21pc3Npb25NYXAmJih0LnRyYW5zbWlzc2lvbk1hcC52YWx1ZT1lLnRyYW5zbWlzc2lvbk1hcCksZS50cmFuc21pc3Npb24+MCYmKHQudHJhbnNtaXNzaW9uU2FtcGxlck1hcC52YWx1ZT1vLnRleHR1cmUsdC50cmFuc21pc3Npb25TYW1wbGVyU2l6ZS52YWx1ZS5zZXQoby53aWR0aCxvLmhlaWdodCkpLHQudGhpY2tuZXNzLnZhbHVlPWUudGhpY2tuZXNzLGUudGhpY2tuZXNzTWFwJiYodC50aGlja25lc3NNYXAudmFsdWU9ZS50aGlja25lc3NNYXApLHQuYXR0ZW51YXRpb25EaXN0YW5jZS52YWx1ZT1lLmF0dGVudWF0aW9uRGlzdGFuY2UsdC5hdHRlbnVhdGlvblRpbnQudmFsdWUuY29weShlLmF0dGVudWF0aW9uVGludCksdC5zcGVjdWxhckludGVuc2l0eS52YWx1ZT1lLnNwZWN1bGFySW50ZW5zaXR5LHQuc3BlY3VsYXJUaW50LnZhbHVlLmNvcHkoZS5zcGVjdWxhclRpbnQpLGUuc3BlY3VsYXJJbnRlbnNpdHlNYXAmJih0LnNwZWN1bGFySW50ZW5zaXR5TWFwLnZhbHVlPWUuc3BlY3VsYXJJbnRlbnNpdHlNYXApLGUuc3BlY3VsYXJUaW50TWFwJiYodC5zcGVjdWxhclRpbnRNYXAudmFsdWU9ZS5zcGVjdWxhclRpbnRNYXApfSkodCxvLHMpOm4odCxvKSk6by5pc01lc2hNYXRjYXBNYXRlcmlhbD8oZSh0LG8pLChmdW5jdGlvbiBtKHQsZSl7ZS5tYXRjYXAmJih0Lm1hdGNhcC52YWx1ZT1lLm1hdGNhcCksZS5idW1wTWFwJiYodC5idW1wTWFwLnZhbHVlPWUuYnVtcE1hcCx0LmJ1bXBTY2FsZS52YWx1ZT1lLmJ1bXBTY2FsZSwxPT09ZS5zaWRlJiYodC5idW1wU2NhbGUudmFsdWUqPS0xKSksZS5ub3JtYWxNYXAmJih0Lm5vcm1hbE1hcC52YWx1ZT1lLm5vcm1hbE1hcCx0Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5ub3JtYWxTY2FsZSksMT09PWUuc2lkZSYmdC5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LG8pKTpvLmlzTWVzaERlcHRoTWF0ZXJpYWw/KGUodCxvKSwoZnVuY3Rpb24gdSh0LGUpe2UuZGlzcGxhY2VtZW50TWFwJiYodC5kaXNwbGFjZW1lbnRNYXAudmFsdWU9ZS5kaXNwbGFjZW1lbnRNYXAsdC5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1lLmRpc3BsYWNlbWVudFNjYWxlLHQuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1lLmRpc3BsYWNlbWVudEJpYXMpfSkodCxvKSk6by5pc01lc2hEaXN0YW5jZU1hdGVyaWFsPyhlKHQsbyksKGZ1bmN0aW9uIGYodCxlKXtlLmRpc3BsYWNlbWVudE1hcCYmKHQuZGlzcGxhY2VtZW50TWFwLnZhbHVlPWUuZGlzcGxhY2VtZW50TWFwLHQuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9ZS5kaXNwbGFjZW1lbnRTY2FsZSx0LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9ZS5kaXNwbGFjZW1lbnRCaWFzKSx0LnJlZmVyZW5jZVBvc2l0aW9uLnZhbHVlLmNvcHkoZS5yZWZlcmVuY2VQb3NpdGlvbiksdC5uZWFyRGlzdGFuY2UudmFsdWU9ZS5uZWFyRGlzdGFuY2UsdC5mYXJEaXN0YW5jZS52YWx1ZT1lLmZhckRpc3RhbmNlfSkodCxvKSk6by5pc01lc2hOb3JtYWxNYXRlcmlhbD8oZSh0LG8pLChmdW5jdGlvbiBnKHQsZSl7ZS5idW1wTWFwJiYodC5idW1wTWFwLnZhbHVlPWUuYnVtcE1hcCx0LmJ1bXBTY2FsZS52YWx1ZT1lLmJ1bXBTY2FsZSwxPT09ZS5zaWRlJiYodC5idW1wU2NhbGUudmFsdWUqPS0xKSksZS5ub3JtYWxNYXAmJih0Lm5vcm1hbE1hcC52YWx1ZT1lLm5vcm1hbE1hcCx0Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5ub3JtYWxTY2FsZSksMT09PWUuc2lkZSYmdC5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LG8pKTpvLmlzTGluZUJhc2ljTWF0ZXJpYWw/KChmdW5jdGlvbiBoKHQsZSl7dC5kaWZmdXNlLnZhbHVlLmNvcHkoZS5jb2xvciksdC5vcGFjaXR5LnZhbHVlPWUub3BhY2l0eX0pKHQsbyksby5pc0xpbmVEYXNoZWRNYXRlcmlhbCYmKGZ1bmN0aW9uIGIodCxlKXt0LmRhc2hTaXplLnZhbHVlPWUuZGFzaFNpemUsdC50b3RhbFNpemUudmFsdWU9ZS5kYXNoU2l6ZStlLmdhcFNpemUsdC5zY2FsZS52YWx1ZT1lLnNjYWxlfSkodCxvKSk6by5pc1BvaW50c01hdGVyaWFsPyhmdW5jdGlvbiB5KHQsZSxuLG8pe2xldCBpO3QuZGlmZnVzZS52YWx1ZS5jb3B5KGUuY29sb3IpLHQub3BhY2l0eS52YWx1ZT1lLm9wYWNpdHksdC5zaXplLnZhbHVlPWUuc2l6ZSpuLHQuc2NhbGUudmFsdWU9LjUqbyxlLm1hcCYmKHQubWFwLnZhbHVlPWUubWFwKSxlLmFscGhhTWFwJiYodC5hbHBoYU1hcC52YWx1ZT1lLmFscGhhTWFwKSxlLm1hcD9pPWUubWFwOmUuYWxwaGFNYXAmJihpPWUuYWxwaGFNYXApLHZvaWQgMCE9PWkmJighMD09PWkubWF0cml4QXV0b1VwZGF0ZSYmaS51cGRhdGVNYXRyaXgoKSx0LnV2VHJhbnNmb3JtLnZhbHVlLmNvcHkoaS5tYXRyaXgpKX0pKHQsbyxhLHIpOm8uaXNTcHJpdGVNYXRlcmlhbD8oZnVuY3Rpb24gXyh0LGUpe2xldCBuO3QuZGlmZnVzZS52YWx1ZS5jb3B5KGUuY29sb3IpLHQub3BhY2l0eS52YWx1ZT1lLm9wYWNpdHksdC5yb3RhdGlvbi52YWx1ZT1lLnJvdGF0aW9uLGUubWFwJiYodC5tYXAudmFsdWU9ZS5tYXApLGUuYWxwaGFNYXAmJih0LmFscGhhTWFwLnZhbHVlPWUuYWxwaGFNYXApLGUubWFwP249ZS5tYXA6ZS5hbHBoYU1hcCYmKG49ZS5hbHBoYU1hcCksdm9pZCAwIT09biYmKCEwPT09bi5tYXRyaXhBdXRvVXBkYXRlJiZuLnVwZGF0ZU1hdHJpeCgpLHQudXZUcmFuc2Zvcm0udmFsdWUuY29weShuLm1hdHJpeCkpfSkodCxvKTpvLmlzU2hhZG93TWF0ZXJpYWw/KHQuY29sb3IudmFsdWUuY29weShvLmNvbG9yKSx0Lm9wYWNpdHkudmFsdWU9by5vcGFjaXR5KTpvLmlzU2hhZGVyTWF0ZXJpYWwmJihvLnVuaWZvcm1zTmVlZFVwZGF0ZT0hMSl9fX1mdW5jdGlvbiBiZHQodD17fSl7Y29uc3QgZT12b2lkIDAhPT10LmNhbnZhcz90LmNhbnZhczooZnVuY3Rpb24gbigpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiY2FudmFzIik7cmV0dXJuIHQuc3R5bGUuZGlzcGxheT0iYmxvY2siLHR9KSgpLG89dm9pZCAwIT09dC5jb250ZXh0P3QuY29udGV4dDpudWxsLGk9dm9pZCAwIT09dC5hbHBoYSYmdC5hbHBoYSxhPXZvaWQgMD09PXQuZGVwdGh8fHQuZGVwdGgscj12b2lkIDA9PT10LnN0ZW5jaWx8fHQuc3RlbmNpbCxzPXZvaWQgMCE9PXQuYW50aWFsaWFzJiZ0LmFudGlhbGlhcyxsPXZvaWQgMD09PXQucHJlbXVsdGlwbGllZEFscGhhfHx0LnByZW11bHRpcGxpZWRBbHBoYSxjPXZvaWQgMCE9PXQucHJlc2VydmVEcmF3aW5nQnVmZmVyJiZ0LnByZXNlcnZlRHJhd2luZ0J1ZmZlcixkPXZvaWQgMCE9PXQucG93ZXJQcmVmZXJlbmNlP3QucG93ZXJQcmVmZXJlbmNlOiJkZWZhdWx0IixwPXZvaWQgMCE9PXQuZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdCYmdC5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0O2xldCBtPW51bGwsdT1udWxsO2NvbnN0IGY9W10sZz1bXTt0aGlzLmRvbUVsZW1lbnQ9ZSx0aGlzLmRlYnVnPXtjaGVja1NoYWRlckVycm9yczohMH0sdGhpcy5hdXRvQ2xlYXI9ITAsdGhpcy5hdXRvQ2xlYXJDb2xvcj0hMCx0aGlzLmF1dG9DbGVhckRlcHRoPSEwLHRoaXMuYXV0b0NsZWFyU3RlbmNpbD0hMCx0aGlzLnNvcnRPYmplY3RzPSEwLHRoaXMuY2xpcHBpbmdQbGFuZXM9W10sdGhpcy5sb2NhbENsaXBwaW5nRW5hYmxlZD0hMSx0aGlzLmdhbW1hRmFjdG9yPTIsdGhpcy5vdXRwdXRFbmNvZGluZz16aXQsdGhpcy5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cz0hMSx0aGlzLnRvbmVNYXBwaW5nPTAsdGhpcy50b25lTWFwcGluZ0V4cG9zdXJlPTE7Y29uc3QgaD10aGlzO2xldCBiPSExLHk9MCxfPTAsQz1udWxsLE09LTEsdj1udWxsO2NvbnN0IHg9bmV3IGFhdCxPPW5ldyBhYXQ7bGV0IFA9bnVsbCx3PWUud2lkdGgsaz1lLmhlaWdodCxTPTEsRD1udWxsLEU9bnVsbDtjb25zdCBSPW5ldyBhYXQoMCwwLHcsayksQT1uZXcgYWF0KDAsMCx3LGspO2xldCBUPSExO2NvbnN0IE49W10sej1uZXcgRXN0O2xldCBJPSExLEg9ITEsRj1udWxsO2NvbnN0IEw9bmV3IEJhdCxCPW5ldyBjYXQsVj17YmFja2dyb3VuZDpudWxsLGZvZzpudWxsLGVudmlyb25tZW50Om51bGwsb3ZlcnJpZGVNYXRlcmlhbDpudWxsLGlzU2NlbmU6ITB9O2Z1bmN0aW9uIGooKXtyZXR1cm4gbnVsbD09PUM/UzoxfWxldCBVLEcsVyxZLHEsWixYLEssSixRLCQsdHQsZXQsbnQsb3QsaXQsYXQscnQsc3QsbHQsY3QsZHQscHQsbXQ9bztmdW5jdGlvbiB1dCh0LG4pe2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKXtjb25zdCBpPWUuZ2V0Q29udGV4dCh0W29dLG4pO2lmKG51bGwhPT1pKXJldHVybiBpfXJldHVybiBudWxsfXRyeXtjb25zdCB0PXthbHBoYTppLGRlcHRoOmEsc3RlbmNpbDpyLGFudGlhbGlhczpzLHByZW11bHRpcGxpZWRBbHBoYTpsLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjpjLHBvd2VyUHJlZmVyZW5jZTpkLGZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ6cH07aWYoZS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixodCwhMSksZS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsYnQsITEpLG51bGw9PT1tdCl7Y29uc3QgZT1bIndlYmdsMiIsIndlYmdsIiwiZXhwZXJpbWVudGFsLXdlYmdsIl07aWYoITA9PT1oLmlzV2ViR0wxUmVuZGVyZXImJmUuc2hpZnQoKSxtdD11dChlLHQpLG51bGw9PT1tdCl0aHJvdyB1dChlKT9uZXcgRXJyb3IoIkVycm9yIGNyZWF0aW5nIFdlYkdMIGNvbnRleHQgd2l0aCB5b3VyIHNlbGVjdGVkIGF0dHJpYnV0ZXMuIik6bmV3IEVycm9yKCJFcnJvciBjcmVhdGluZyBXZWJHTCBjb250ZXh0LiIpfXZvaWQgMD09PW10LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCYmKG10LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdD1mdW5jdGlvbigpe3JldHVybntyYW5nZU1pbjoxLHJhbmdlTWF4OjEscHJlY2lzaW9uOjF9fSl9Y2F0Y2godCl7dGhyb3cgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlcjogIit0Lm1lc3NhZ2UpLHR9ZnVuY3Rpb24gZnQoKXtVPW5ldyBnbHQobXQpLEc9bmV3IEJzdChtdCxVLHQpLFUuaW5pdChHKSxkdD1uZXcgZGR0KG10LFUsRyksVz1uZXcgbGR0KG10LFUsRyksTlswXT0xMDI5LFk9bmV3IHlsdChtdCkscT1uZXcgWmN0LFo9bmV3IGNkdChtdCxVLFcscSxHLGR0LFkpLFg9bmV3IGpzdChoKSxLPW5ldyBmbHQoaCksSj1uZXcgQXN0KG10LEcpLHB0PW5ldyBGc3QobXQsVSxKLEcpLFE9bmV3IGhsdChtdCxKLFkscHQpLCQ9bmV3IHZsdChtdCxRLEosWSksc3Q9bmV3IE1sdChtdCksaXQ9bmV3IFZzdChxKSx0dD1uZXcgcWN0KGgsWCxLLFUsRyxwdCxpdCksZXQ9bmV3IGhkdChxKSxudD1uZXcgUWN0KHEpLG90PW5ldyBpZHQoVSxHKSxydD1uZXcgSHN0KGgsWCxXLCQsbCksYXQ9bmV3IHNkdChoLCQsRyksbHQ9bmV3IExzdChtdCxVLFksRyksY3Q9bmV3IGJsdChtdCxVLFksRyksWS5wcm9ncmFtcz10dC5wcm9ncmFtcyxoLmNhcGFiaWxpdGllcz1HLGguZXh0ZW5zaW9ucz1VLGgucHJvcGVydGllcz1xLGgucmVuZGVyTGlzdHM9bnQsaC5zaGFkb3dNYXA9YXQsaC5zdGF0ZT1XLGguaW5mbz1ZfWZ0KCk7Y29uc3QgZ3Q9bmV3IGdkdChoLG10KTtmdW5jdGlvbiBodCh0KXt0LnByZXZlbnREZWZhdWx0KCksY29uc29sZS5sb2coIlRIUkVFLldlYkdMUmVuZGVyZXI6IENvbnRleHQgTG9zdC4iKSxiPSEwfWZ1bmN0aW9uIGJ0KCl7Y29uc29sZS5sb2coIlRIUkVFLldlYkdMUmVuZGVyZXI6IENvbnRleHQgUmVzdG9yZWQuIiksYj0hMTtjb25zdCB0PVkuYXV0b1Jlc2V0LGU9YXQuZW5hYmxlZCxuPWF0LmF1dG9VcGRhdGUsbz1hdC5uZWVkc1VwZGF0ZSxpPWF0LnR5cGU7ZnQoKSxZLmF1dG9SZXNldD10LGF0LmVuYWJsZWQ9ZSxhdC5hdXRvVXBkYXRlPW4sYXQubmVlZHNVcGRhdGU9byxhdC50eXBlPWl9ZnVuY3Rpb24geXQodCl7Y29uc3QgZT10LnRhcmdldDtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHl0KSwoZnVuY3Rpb24gbih0KXsoZnVuY3Rpb24gZSh0KXtjb25zdCBlPXEuZ2V0KHQpLnByb2dyYW1zO3ZvaWQgMCE9PWUmJmUuZm9yRWFjaCgoZnVuY3Rpb24odCl7dHQucmVsZWFzZVByb2dyYW0odCl9KSl9KSh0KSxxLnJlbW92ZSh0KX0pKGUpfXRoaXMueHI9Z3QsdGhpcy5nZXRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIG10fSx0aGlzLmdldENvbnRleHRBdHRyaWJ1dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIG10LmdldENvbnRleHRBdHRyaWJ1dGVzKCl9LHRoaXMuZm9yY2VDb250ZXh0TG9zcz1mdW5jdGlvbigpe2NvbnN0IHQ9VS5nZXQoIldFQkdMX2xvc2VfY29udGV4dCIpO3QmJnQubG9zZUNvbnRleHQoKX0sdGhpcy5mb3JjZUNvbnRleHRSZXN0b3JlPWZ1bmN0aW9uKCl7Y29uc3QgdD1VLmdldCgiV0VCR0xfbG9zZV9jb250ZXh0Iik7dCYmdC5yZXN0b3JlQ29udGV4dCgpfSx0aGlzLmdldFBpeGVsUmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gU30sdGhpcy5zZXRQaXhlbFJhdGlvPWZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXQmJihTPXQsdGhpcy5zZXRTaXplKHcsaywhMSkpfSx0aGlzLmdldFNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2V0KHcsayl9LHRoaXMuc2V0U2l6ZT1mdW5jdGlvbih0LG4sbyl7Z3QuaXNQcmVzZW50aW5nP2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogQ2FuJ3QgY2hhbmdlIHNpemUgd2hpbGUgVlIgZGV2aWNlIGlzIHByZXNlbnRpbmcuIik6KHc9dCxrPW4sZS53aWR0aD1NYXRoLmZsb29yKHQqUyksZS5oZWlnaHQ9TWF0aC5mbG9vcihuKlMpLCExIT09byYmKGUuc3R5bGUud2lkdGg9dCsicHgiLGUuc3R5bGUuaGVpZ2h0PW4rInB4IiksdGhpcy5zZXRWaWV3cG9ydCgwLDAsdCxuKSl9LHRoaXMuZ2V0RHJhd2luZ0J1ZmZlclNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2V0KHcqUyxrKlMpLmZsb29yKCl9LHRoaXMuc2V0RHJhd2luZ0J1ZmZlclNpemU9ZnVuY3Rpb24odCxuLG8pe3c9dCxrPW4sUz1vLGUud2lkdGg9TWF0aC5mbG9vcih0Km8pLGUuaGVpZ2h0PU1hdGguZmxvb3IobipvKSx0aGlzLnNldFZpZXdwb3J0KDAsMCx0LG4pfSx0aGlzLmdldEN1cnJlbnRWaWV3cG9ydD1mdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KHgpfSx0aGlzLmdldFZpZXdwb3J0PWZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoUil9LHRoaXMuc2V0Vmlld3BvcnQ9ZnVuY3Rpb24odCxlLG4sbyl7dC5pc1ZlY3RvcjQ/Ui5zZXQodC54LHQueSx0LnosdC53KTpSLnNldCh0LGUsbixvKSxXLnZpZXdwb3J0KHguY29weShSKS5tdWx0aXBseVNjYWxhcihTKS5mbG9vcigpKX0sdGhpcy5nZXRTY2lzc29yPWZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoQSl9LHRoaXMuc2V0U2Npc3Nvcj1mdW5jdGlvbih0LGUsbixvKXt0LmlzVmVjdG9yND9BLnNldCh0LngsdC55LHQueix0LncpOkEuc2V0KHQsZSxuLG8pLFcuc2Npc3NvcihPLmNvcHkoQSkubXVsdGlwbHlTY2FsYXIoUykuZmxvb3IoKSl9LHRoaXMuZ2V0U2Npc3NvclRlc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gVH0sdGhpcy5zZXRTY2lzc29yVGVzdD1mdW5jdGlvbih0KXtXLnNldFNjaXNzb3JUZXN0KFQ9dCl9LHRoaXMuc2V0T3BhcXVlU29ydD1mdW5jdGlvbih0KXtEPXR9LHRoaXMuc2V0VHJhbnNwYXJlbnRTb3J0PWZ1bmN0aW9uKHQpe0U9dH0sdGhpcy5nZXRDbGVhckNvbG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkocnQuZ2V0Q2xlYXJDb2xvcigpKX0sdGhpcy5zZXRDbGVhckNvbG9yPWZ1bmN0aW9uKCl7cnQuc2V0Q2xlYXJDb2xvci5hcHBseShydCxhcmd1bWVudHMpfSx0aGlzLmdldENsZWFyQWxwaGE9ZnVuY3Rpb24oKXtyZXR1cm4gcnQuZ2V0Q2xlYXJBbHBoYSgpfSx0aGlzLnNldENsZWFyQWxwaGE9ZnVuY3Rpb24oKXtydC5zZXRDbGVhckFscGhhLmFwcGx5KHJ0LGFyZ3VtZW50cyl9LHRoaXMuY2xlYXI9ZnVuY3Rpb24odCxlLG4pe2xldCBvPTA7KHZvaWQgMD09PXR8fHQpJiYob3w9MTYzODQpLCh2b2lkIDA9PT1lfHxlKSYmKG98PTI1NiksKHZvaWQgMD09PW58fG4pJiYob3w9MTAyNCksbXQuY2xlYXIobyl9LHRoaXMuY2xlYXJDb2xvcj1mdW5jdGlvbigpe3RoaXMuY2xlYXIoITAsITEsITEpfSx0aGlzLmNsZWFyRGVwdGg9ZnVuY3Rpb24oKXt0aGlzLmNsZWFyKCExLCEwLCExKX0sdGhpcy5jbGVhclN0ZW5jaWw9ZnVuY3Rpb24oKXt0aGlzLmNsZWFyKCExLCExLCEwKX0sdGhpcy5kaXNwb3NlPWZ1bmN0aW9uKCl7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixodCwhMSksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsYnQsITEpLG50LmRpc3Bvc2UoKSxvdC5kaXNwb3NlKCkscS5kaXNwb3NlKCksWC5kaXNwb3NlKCksSy5kaXNwb3NlKCksJC5kaXNwb3NlKCkscHQuZGlzcG9zZSgpLGd0LmRpc3Bvc2UoKSxndC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZXNzaW9uc3RhcnQiLEN0KSxndC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZXNzaW9uZW5kIixNdCksRiYmKEYuZGlzcG9zZSgpLEY9bnVsbCksdnQuc3RvcCgpfSx0aGlzLnJlbmRlckJ1ZmZlckltbWVkaWF0ZT1mdW5jdGlvbih0LGUpe3B0LmluaXRBdHRyaWJ1dGVzKCk7Y29uc3Qgbj1xLmdldCh0KTt0Lmhhc1Bvc2l0aW9ucyYmIW4ucG9zaXRpb24mJihuLnBvc2l0aW9uPW10LmNyZWF0ZUJ1ZmZlcigpKSx0Lmhhc05vcm1hbHMmJiFuLm5vcm1hbCYmKG4ubm9ybWFsPW10LmNyZWF0ZUJ1ZmZlcigpKSx0Lmhhc1V2cyYmIW4udXYmJihuLnV2PW10LmNyZWF0ZUJ1ZmZlcigpKSx0Lmhhc0NvbG9ycyYmIW4uY29sb3ImJihuLmNvbG9yPW10LmNyZWF0ZUJ1ZmZlcigpKTtjb25zdCBvPWUuZ2V0QXR0cmlidXRlcygpO3QuaGFzUG9zaXRpb25zJiYobXQuYmluZEJ1ZmZlcigzNDk2MixuLnBvc2l0aW9uKSxtdC5idWZmZXJEYXRhKDM0OTYyLHQucG9zaXRpb25BcnJheSwzNTA0OCkscHQuZW5hYmxlQXR0cmlidXRlKG8ucG9zaXRpb24pLG10LnZlcnRleEF0dHJpYlBvaW50ZXIoby5wb3NpdGlvbiwzLDUxMjYsITEsMCwwKSksdC5oYXNOb3JtYWxzJiYobXQuYmluZEJ1ZmZlcigzNDk2MixuLm5vcm1hbCksbXQuYnVmZmVyRGF0YSgzNDk2Mix0Lm5vcm1hbEFycmF5LDM1MDQ4KSxwdC5lbmFibGVBdHRyaWJ1dGUoby5ub3JtYWwpLG10LnZlcnRleEF0dHJpYlBvaW50ZXIoby5ub3JtYWwsMyw1MTI2LCExLDAsMCkpLHQuaGFzVXZzJiYobXQuYmluZEJ1ZmZlcigzNDk2MixuLnV2KSxtdC5idWZmZXJEYXRhKDM0OTYyLHQudXZBcnJheSwzNTA0OCkscHQuZW5hYmxlQXR0cmlidXRlKG8udXYpLG10LnZlcnRleEF0dHJpYlBvaW50ZXIoby51diwyLDUxMjYsITEsMCwwKSksdC5oYXNDb2xvcnMmJihtdC5iaW5kQnVmZmVyKDM0OTYyLG4uY29sb3IpLG10LmJ1ZmZlckRhdGEoMzQ5NjIsdC5jb2xvckFycmF5LDM1MDQ4KSxwdC5lbmFibGVBdHRyaWJ1dGUoby5jb2xvciksbXQudmVydGV4QXR0cmliUG9pbnRlcihvLmNvbG9yLDMsNTEyNiwhMSwwLDApKSxwdC5kaXNhYmxlVW51c2VkQXR0cmlidXRlcygpLG10LmRyYXdBcnJheXMoNCwwLHQuY291bnQpLHQuY291bnQ9MH0sdGhpcy5yZW5kZXJCdWZmZXJEaXJlY3Q9ZnVuY3Rpb24odCxlLG4sbyxpLGEpe251bGw9PT1lJiYoZT1WKTtjb25zdCByPWkuaXNNZXNoJiZpLm1hdHJpeFdvcmxkLmRldGVybWluYW50KCk8MCxzPVN0KHQsZSxvLGkpO1cuc2V0TWF0ZXJpYWwobyxyKTtsZXQgbD1uLmluZGV4O2NvbnN0IGM9bi5hdHRyaWJ1dGVzLnBvc2l0aW9uO2lmKG51bGw9PT1sKXtpZih2b2lkIDA9PT1jfHwwPT09Yy5jb3VudClyZXR1cm59ZWxzZSBpZigwPT09bC5jb3VudClyZXR1cm47bGV0IGQscD0xOyEwPT09by53aXJlZnJhbWUmJihsPVEuZ2V0V2lyZWZyYW1lQXR0cmlidXRlKG4pLHA9Miksdm9pZCAwPT09bi5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24mJnZvaWQgMD09PW4ubW9ycGhBdHRyaWJ1dGVzLm5vcm1hbHx8c3QudXBkYXRlKGksbixvLHMpLHB0LnNldHVwKGksbyxzLG4sbCk7bGV0IG09bHQ7bnVsbCE9PWwmJihkPUouZ2V0KGwpLG09Y3QsbS5zZXRJbmRleChkKSk7Y29uc3QgdT1udWxsIT09bD9sLmNvdW50OmMuY291bnQsZj1uLmRyYXdSYW5nZS5zdGFydCpwLGc9bi5kcmF3UmFuZ2UuY291bnQqcCxoPW51bGwhPT1hP2Euc3RhcnQqcDowLGI9bnVsbCE9PWE/YS5jb3VudCpwOjEvMCx5PU1hdGgubWF4KGYsaCksXz1NYXRoLm1pbih1LGYrZyxoK2IpLTEsQz1NYXRoLm1heCgwLF8teSsxKTtpZigwIT09Qyl7aWYoaS5pc01lc2gpITA9PT1vLndpcmVmcmFtZT8oVy5zZXRMaW5lV2lkdGgoby53aXJlZnJhbWVMaW5ld2lkdGgqaigpKSxtLnNldE1vZGUoMSkpOm0uc2V0TW9kZSg0KTtlbHNlIGlmKGkuaXNMaW5lKXtsZXQgdD1vLmxpbmV3aWR0aDt2b2lkIDA9PT10JiYodD0xKSxXLnNldExpbmVXaWR0aCh0KmooKSksbS5zZXRNb2RlKGkuaXNMaW5lU2VnbWVudHM/MTppLmlzTGluZUxvb3A/MjozKX1lbHNlIGkuaXNQb2ludHM/bS5zZXRNb2RlKDApOmkuaXNTcHJpdGUmJm0uc2V0TW9kZSg0KTtpZihpLmlzSW5zdGFuY2VkTWVzaCltLnJlbmRlckluc3RhbmNlcyh5LEMsaS5jb3VudCk7ZWxzZSBpZihuLmlzSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkpe2NvbnN0IHQ9TWF0aC5taW4obi5pbnN0YW5jZUNvdW50LG4uX21heEluc3RhbmNlQ291bnQpO20ucmVuZGVySW5zdGFuY2VzKHksQyx0KX1lbHNlIG0ucmVuZGVyKHksQyl9fSx0aGlzLmNvbXBpbGU9ZnVuY3Rpb24odCxlKXt1PW90LmdldCh0KSx1LmluaXQoKSxnLnB1c2godSksdC50cmF2ZXJzZVZpc2libGUoKGZ1bmN0aW9uKHQpe3QuaXNMaWdodCYmdC5sYXllcnMudGVzdChlLmxheWVycykmJih1LnB1c2hMaWdodCh0KSx0LmNhc3RTaGFkb3cmJnUucHVzaFNoYWRvdyh0KSl9KSksdS5zZXR1cExpZ2h0cygpLHQudHJhdmVyc2UoKGZ1bmN0aW9uKGUpe2NvbnN0IG49ZS5tYXRlcmlhbDtpZihuKWlmKEFycmF5LmlzQXJyYXkobikpZm9yKGxldCBvPTA7bzxuLmxlbmd0aDtvKyspd3QobltvXSx0LGUpO2Vsc2Ugd3Qobix0LGUpfSkpLGcucG9wKCksdT1udWxsfTtsZXQgX3Q9bnVsbDtmdW5jdGlvbiBDdCgpe3Z0LnN0b3AoKX1mdW5jdGlvbiBNdCgpe3Z0LnN0YXJ0KCl9Y29uc3QgdnQ9bmV3IFJzdDtmdW5jdGlvbiB4dCh0LGUsbixvKXtpZighMT09PXQudmlzaWJsZSlyZXR1cm47aWYodC5sYXllcnMudGVzdChlLmxheWVycykpaWYodC5pc0dyb3VwKW49dC5yZW5kZXJPcmRlcjtlbHNlIGlmKHQuaXNMT0QpITA9PT10LmF1dG9VcGRhdGUmJnQudXBkYXRlKGUpO2Vsc2UgaWYodC5pc0xpZ2h0KXUucHVzaExpZ2h0KHQpLHQuY2FzdFNoYWRvdyYmdS5wdXNoU2hhZG93KHQpO2Vsc2UgaWYodC5pc1Nwcml0ZSl7aWYoIXQuZnJ1c3R1bUN1bGxlZHx8ei5pbnRlcnNlY3RzU3ByaXRlKHQpKXtvJiZCLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKS5hcHBseU1hdHJpeDQoTCk7Y29uc3QgZT0kLnVwZGF0ZSh0KSxpPXQubWF0ZXJpYWw7aS52aXNpYmxlJiZtLnB1c2godCxlLGksbixCLnosbnVsbCl9fWVsc2UgaWYodC5pc0ltbWVkaWF0ZVJlbmRlck9iamVjdClvJiZCLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKS5hcHBseU1hdHJpeDQoTCksbS5wdXNoKHQsbnVsbCx0Lm1hdGVyaWFsLG4sQi56LG51bGwpO2Vsc2UgaWYoKHQuaXNNZXNofHx0LmlzTGluZXx8dC5pc1BvaW50cykmJih0LmlzU2tpbm5lZE1lc2gmJnQuc2tlbGV0b24uZnJhbWUhPT1ZLnJlbmRlci5mcmFtZSYmKHQuc2tlbGV0b24udXBkYXRlKCksdC5za2VsZXRvbi5mcmFtZT1ZLnJlbmRlci5mcmFtZSksIXQuZnJ1c3R1bUN1bGxlZHx8ei5pbnRlcnNlY3RzT2JqZWN0KHQpKSl7byYmQi5zZXRGcm9tTWF0cml4UG9zaXRpb24odC5tYXRyaXhXb3JsZCkuYXBwbHlNYXRyaXg0KEwpO2NvbnN0IGU9JC51cGRhdGUodCksaT10Lm1hdGVyaWFsO2lmKEFycmF5LmlzQXJyYXkoaSkpe2NvbnN0IG89ZS5ncm91cHM7Zm9yKGxldCBhPTAscj1vLmxlbmd0aDthPHI7YSsrKXtjb25zdCByPW9bYV0scz1pW3IubWF0ZXJpYWxJbmRleF07cyYmcy52aXNpYmxlJiZtLnB1c2godCxlLHMsbixCLnoscil9fWVsc2UgaS52aXNpYmxlJiZtLnB1c2godCxlLGksbixCLnosbnVsbCl9Y29uc3QgaT10LmNoaWxkcmVuO2ZvcihsZXQgdD0wLGE9aS5sZW5ndGg7dDxhO3QrKyl4dChpW3RdLGUsbixvKX1mdW5jdGlvbiBPdCh0LGUsbil7Y29uc3Qgbz0hMD09PWUuaXNTY2VuZT9lLm92ZXJyaWRlTWF0ZXJpYWw6bnVsbDtpZihuLmlzQXJyYXlDYW1lcmEpe2NvbnN0IGk9bi5jYW1lcmFzO2ZvcihsZXQgbj0wLGE9aS5sZW5ndGg7bjxhO24rKyl7Y29uc3QgYT1pW25dO1cudmlld3BvcnQoeC5jb3B5KGEudmlld3BvcnQpKSx1LnNldHVwTGlnaHRzVmlldyhhKTtmb3IobGV0IG49MCxpPXQubGVuZ3RoO248aTtuKyspe2NvbnN0IGk9dFtuXSxyPWkub2JqZWN0LHM9aS5nZW9tZXRyeSxsPW51bGw9PT1vP2kubWF0ZXJpYWw6byxjPWkuZ3JvdXA7ci5sYXllcnMudGVzdChhLmxheWVycykmJlB0KHIsZSxhLHMsbCxjKX19fWVsc2UgZm9yKGxldCBpPTAsYT10Lmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPXRbaV07UHQoYS5vYmplY3QsZSxuLGEuZ2VvbWV0cnksbnVsbD09PW8/YS5tYXRlcmlhbDpvLGEuZ3JvdXApfX1mdW5jdGlvbiBQdCh0LGUsbixvLGksYSl7aWYodC5vbkJlZm9yZVJlbmRlcihoLGUsbixvLGksYSksdC5tb2RlbFZpZXdNYXRyaXgubXVsdGlwbHlNYXRyaWNlcyhuLm1hdHJpeFdvcmxkSW52ZXJzZSx0Lm1hdHJpeFdvcmxkKSx0Lm5vcm1hbE1hdHJpeC5nZXROb3JtYWxNYXRyaXgodC5tb2RlbFZpZXdNYXRyaXgpLHQuaXNJbW1lZGlhdGVSZW5kZXJPYmplY3Qpe2NvbnN0IG89U3QobixlLGksdCk7Vy5zZXRNYXRlcmlhbChpKSxwdC5yZXNldCgpLChmdW5jdGlvbiByKHQsZSl7dC5yZW5kZXIoKGZ1bmN0aW9uKHQpe2gucmVuZGVyQnVmZmVySW1tZWRpYXRlKHQsZSl9KSl9KSh0LG8pfWVsc2UhMD09PWkudHJhbnNwYXJlbnQmJjI9PT1pLnNpZGU/KGkuc2lkZT0xLGkubmVlZHNVcGRhdGU9ITAsaC5yZW5kZXJCdWZmZXJEaXJlY3QobixlLG8saSx0LGEpLGkuc2lkZT0wLGkubmVlZHNVcGRhdGU9ITAsaC5yZW5kZXJCdWZmZXJEaXJlY3QobixlLG8saSx0LGEpLGkuc2lkZT0yKTpoLnJlbmRlckJ1ZmZlckRpcmVjdChuLGUsbyxpLHQsYSk7dC5vbkFmdGVyUmVuZGVyKGgsZSxuLG8saSxhKX1mdW5jdGlvbiB3dCh0LGUsbil7ITAhPT1lLmlzU2NlbmUmJihlPVYpO2NvbnN0IG89cS5nZXQodCksaT11LnN0YXRlLmxpZ2h0cyxhPWkuc3RhdGUudmVyc2lvbixyPXR0LmdldFBhcmFtZXRlcnModCxpLnN0YXRlLHUuc3RhdGUuc2hhZG93c0FycmF5LGUsbikscz10dC5nZXRQcm9ncmFtQ2FjaGVLZXkocik7bGV0IGw9by5wcm9ncmFtcztvLmVudmlyb25tZW50PXQuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9lLmVudmlyb25tZW50Om51bGwsby5mb2c9ZS5mb2csby5lbnZNYXA9KHQuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9LOlgpLmdldCh0LmVudk1hcHx8by5lbnZpcm9ubWVudCksdm9pZCAwPT09bCYmKHQuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIseXQpLGw9bmV3IE1hcCxvLnByb2dyYW1zPWwpO2xldCBjPWwuZ2V0KHMpO2lmKHZvaWQgMCE9PWMpe2lmKG8uY3VycmVudFByb2dyYW09PT1jJiZvLmxpZ2h0c1N0YXRlVmVyc2lvbj09PWEpcmV0dXJuIGt0KHQsciksY31lbHNlIHIudW5pZm9ybXM9dHQuZ2V0VW5pZm9ybXModCksdC5vbkJ1aWxkKHIsaCksdC5vbkJlZm9yZUNvbXBpbGUocixoKSxjPXR0LmFjcXVpcmVQcm9ncmFtKHIscyksbC5zZXQocyxjKSxvLnVuaWZvcm1zPXIudW5pZm9ybXM7Y29uc3QgZD1vLnVuaWZvcm1zOyh0LmlzU2hhZGVyTWF0ZXJpYWx8fHQuaXNSYXdTaGFkZXJNYXRlcmlhbCkmJiEwIT09dC5jbGlwcGluZ3x8KGQuY2xpcHBpbmdQbGFuZXM9aXQudW5pZm9ybSksa3QodCxyKSxvLm5lZWRzTGlnaHRzPShmdW5jdGlvbiBwKHQpe3JldHVybiB0LmlzTWVzaExhbWJlcnRNYXRlcmlhbHx8dC5pc01lc2hUb29uTWF0ZXJpYWx8fHQuaXNNZXNoUGhvbmdNYXRlcmlhbHx8dC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHx0LmlzU2hhZG93TWF0ZXJpYWx8fHQuaXNTaGFkZXJNYXRlcmlhbCYmITA9PT10LmxpZ2h0c30pKHQpLG8ubGlnaHRzU3RhdGVWZXJzaW9uPWEsby5uZWVkc0xpZ2h0cyYmKGQuYW1iaWVudExpZ2h0Q29sb3IudmFsdWU9aS5zdGF0ZS5hbWJpZW50LGQubGlnaHRQcm9iZS52YWx1ZT1pLnN0YXRlLnByb2JlLGQuZGlyZWN0aW9uYWxMaWdodHMudmFsdWU9aS5zdGF0ZS5kaXJlY3Rpb25hbCxkLmRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzLnZhbHVlPWkuc3RhdGUuZGlyZWN0aW9uYWxTaGFkb3csZC5zcG90TGlnaHRzLnZhbHVlPWkuc3RhdGUuc3BvdCxkLnNwb3RMaWdodFNoYWRvd3MudmFsdWU9aS5zdGF0ZS5zcG90U2hhZG93LGQucmVjdEFyZWFMaWdodHMudmFsdWU9aS5zdGF0ZS5yZWN0QXJlYSxkLmx0Y18xLnZhbHVlPWkuc3RhdGUucmVjdEFyZWFMVEMxLGQubHRjXzIudmFsdWU9aS5zdGF0ZS5yZWN0QXJlYUxUQzIsZC5wb2ludExpZ2h0cy52YWx1ZT1pLnN0YXRlLnBvaW50LGQucG9pbnRMaWdodFNoYWRvd3MudmFsdWU9aS5zdGF0ZS5wb2ludFNoYWRvdyxkLmhlbWlzcGhlcmVMaWdodHMudmFsdWU9aS5zdGF0ZS5oZW1pLGQuZGlyZWN0aW9uYWxTaGFkb3dNYXAudmFsdWU9aS5zdGF0ZS5kaXJlY3Rpb25hbFNoYWRvd01hcCxkLmRpcmVjdGlvbmFsU2hhZG93TWF0cml4LnZhbHVlPWkuc3RhdGUuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXgsZC5zcG90U2hhZG93TWFwLnZhbHVlPWkuc3RhdGUuc3BvdFNoYWRvd01hcCxkLnNwb3RTaGFkb3dNYXRyaXgudmFsdWU9aS5zdGF0ZS5zcG90U2hhZG93TWF0cml4LGQucG9pbnRTaGFkb3dNYXAudmFsdWU9aS5zdGF0ZS5wb2ludFNoYWRvd01hcCxkLnBvaW50U2hhZG93TWF0cml4LnZhbHVlPWkuc3RhdGUucG9pbnRTaGFkb3dNYXRyaXgpO2NvbnN0IG09Yy5nZXRVbmlmb3JtcygpLGY9d2N0LnNlcVdpdGhWYWx1ZShtLnNlcSxkKTtyZXR1cm4gby5jdXJyZW50UHJvZ3JhbT1jLG8udW5pZm9ybXNMaXN0PWYsY31mdW5jdGlvbiBrdCh0LGUpe2NvbnN0IG49cS5nZXQodCk7bi5vdXRwdXRFbmNvZGluZz1lLm91dHB1dEVuY29kaW5nLG4uaW5zdGFuY2luZz1lLmluc3RhbmNpbmcsbi5za2lubmluZz1lLnNraW5uaW5nLG4ubW9ycGhUYXJnZXRzPWUubW9ycGhUYXJnZXRzLG4ubW9ycGhOb3JtYWxzPWUubW9ycGhOb3JtYWxzLG4ubnVtQ2xpcHBpbmdQbGFuZXM9ZS5udW1DbGlwcGluZ1BsYW5lcyxuLm51bUludGVyc2VjdGlvbj1lLm51bUNsaXBJbnRlcnNlY3Rpb24sbi52ZXJ0ZXhBbHBoYXM9ZS52ZXJ0ZXhBbHBoYXMsbi52ZXJ0ZXhUYW5nZW50cz1lLnZlcnRleFRhbmdlbnRzfWZ1bmN0aW9uIFN0KHQsZSxuLG8peyEwIT09ZS5pc1NjZW5lJiYoZT1WKSxaLnJlc2V0VGV4dHVyZVVuaXRzKCk7Y29uc3QgaT1lLmZvZyxhPW51bGw9PT1DP2gub3V0cHV0RW5jb2Rpbmc6Qy50ZXh0dXJlLmVuY29kaW5nLHI9KG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9LOlgpLmdldChuLmVudk1hcHx8KG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9lLmVudmlyb25tZW50Om51bGwpKSxzPSEwPT09bi52ZXJ0ZXhDb2xvcnMmJiEhby5nZW9tZXRyeSYmISFvLmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3ImJjQ9PT1vLmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3IuaXRlbVNpemUsbD0hIW8uZ2VvbWV0cnkmJiEhby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnRhbmdlbnQsYz0hIW8uZ2VvbWV0cnkmJiEhby5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sZD0hIW8uZ2VvbWV0cnkmJiEhby5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsLHA9cS5nZXQobiksbT11LnN0YXRlLmxpZ2h0czshMCE9PUl8fCEwIT09SCYmdD09PXZ8fGl0LnNldFN0YXRlKG4sdCx0PT09diYmbi5pZD09PU0pO2xldCBmPSExO24udmVyc2lvbj09PXAuX192ZXJzaW9uP3AubmVlZHNMaWdodHMmJnAubGlnaHRzU3RhdGVWZXJzaW9uIT09bS5zdGF0ZS52ZXJzaW9ufHxwLm91dHB1dEVuY29kaW5nIT09YXx8by5pc0luc3RhbmNlZE1lc2gmJiExPT09cC5pbnN0YW5jaW5nP2Y9ITA6by5pc0luc3RhbmNlZE1lc2h8fCEwIT09cC5pbnN0YW5jaW5nP28uaXNTa2lubmVkTWVzaCYmITE9PT1wLnNraW5uaW5nP2Y9ITA6by5pc1NraW5uZWRNZXNofHwhMCE9PXAuc2tpbm5pbmc/cC5lbnZNYXAhPT1yfHxuLmZvZyYmcC5mb2chPT1pP2Y9ITA6dm9pZCAwPT09cC5udW1DbGlwcGluZ1BsYW5lc3x8cC5udW1DbGlwcGluZ1BsYW5lcz09PWl0Lm51bVBsYW5lcyYmcC5udW1JbnRlcnNlY3Rpb249PT1pdC5udW1JbnRlcnNlY3Rpb24/KHAudmVydGV4QWxwaGFzIT09c3x8cC52ZXJ0ZXhUYW5nZW50cyE9PWx8fHAubW9ycGhUYXJnZXRzIT09Y3x8cC5tb3JwaE5vcm1hbHMhPT1kKSYmKGY9ITApOmY9ITA6Zj0hMDpmPSEwOihmPSEwLHAuX192ZXJzaW9uPW4udmVyc2lvbik7bGV0IGc9cC5jdXJyZW50UHJvZ3JhbTshMD09PWYmJihnPXd0KG4sZSxvKSk7bGV0IGI9ITEseT0hMSxfPSExO2NvbnN0IHg9Zy5nZXRVbmlmb3JtcygpLE89cC51bmlmb3JtcztpZihXLnVzZVByb2dyYW0oZy5wcm9ncmFtKSYmKGI9ITAseT0hMCxfPSEwKSxuLmlkIT09TSYmKE09bi5pZCx5PSEwKSxifHx2IT09dCl7aWYoeC5zZXRWYWx1ZShtdCwicHJvamVjdGlvbk1hdHJpeCIsdC5wcm9qZWN0aW9uTWF0cml4KSxHLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJnguc2V0VmFsdWUobXQsImxvZ0RlcHRoQnVmRkMiLDIvKE1hdGgubG9nKHQuZmFyKzEpL01hdGguTE4yKSksdiE9PXQmJih2PXQseT0hMCxfPSEwKSxuLmlzU2hhZGVyTWF0ZXJpYWx8fG4uaXNNZXNoUGhvbmdNYXRlcmlhbHx8bi5pc01lc2hUb29uTWF0ZXJpYWx8fG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbHx8bi5lbnZNYXApe2NvbnN0IGU9eC5tYXAuY2FtZXJhUG9zaXRpb247dm9pZCAwIT09ZSYmZS5zZXRWYWx1ZShtdCxCLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSl9KG4uaXNNZXNoUGhvbmdNYXRlcmlhbHx8bi5pc01lc2hUb29uTWF0ZXJpYWx8fG4uaXNNZXNoTGFtYmVydE1hdGVyaWFsfHxuLmlzTWVzaEJhc2ljTWF0ZXJpYWx8fG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbHx8bi5pc1NoYWRlck1hdGVyaWFsKSYmeC5zZXRWYWx1ZShtdCwiaXNPcnRob2dyYXBoaWMiLCEwPT09dC5pc09ydGhvZ3JhcGhpY0NhbWVyYSksKG4uaXNNZXNoUGhvbmdNYXRlcmlhbHx8bi5pc01lc2hUb29uTWF0ZXJpYWx8fG4uaXNNZXNoTGFtYmVydE1hdGVyaWFsfHxuLmlzTWVzaEJhc2ljTWF0ZXJpYWx8fG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbHx8bi5pc1NoYWRlck1hdGVyaWFsfHxuLmlzU2hhZG93TWF0ZXJpYWx8fG8uaXNTa2lubmVkTWVzaCkmJnguc2V0VmFsdWUobXQsInZpZXdNYXRyaXgiLHQubWF0cml4V29ybGRJbnZlcnNlKX1pZihvLmlzU2tpbm5lZE1lc2gpe3guc2V0T3B0aW9uYWwobXQsbywiYmluZE1hdHJpeCIpLHguc2V0T3B0aW9uYWwobXQsbywiYmluZE1hdHJpeEludmVyc2UiKTtjb25zdCB0PW8uc2tlbGV0b247dCYmKEcuZmxvYXRWZXJ0ZXhUZXh0dXJlcz8obnVsbD09PXQuYm9uZVRleHR1cmUmJnQuY29tcHV0ZUJvbmVUZXh0dXJlKCkseC5zZXRWYWx1ZShtdCwiYm9uZVRleHR1cmUiLHQuYm9uZVRleHR1cmUsWikseC5zZXRWYWx1ZShtdCwiYm9uZVRleHR1cmVTaXplIix0LmJvbmVUZXh0dXJlU2l6ZSkpOnguc2V0T3B0aW9uYWwobXQsdCwiYm9uZU1hdHJpY2VzIikpfXJldHVybih5fHxwLnJlY2VpdmVTaGFkb3chPT1vLnJlY2VpdmVTaGFkb3cpJiYocC5yZWNlaXZlU2hhZG93PW8ucmVjZWl2ZVNoYWRvdyx4LnNldFZhbHVlKG10LCJyZWNlaXZlU2hhZG93IixvLnJlY2VpdmVTaGFkb3cpKSx5JiYoeC5zZXRWYWx1ZShtdCwidG9uZU1hcHBpbmdFeHBvc3VyZSIsaC50b25lTWFwcGluZ0V4cG9zdXJlKSxwLm5lZWRzTGlnaHRzJiYoZnVuY3Rpb24gUCh0LGUpe3QuYW1iaWVudExpZ2h0Q29sb3IubmVlZHNVcGRhdGU9ZSx0LmxpZ2h0UHJvYmUubmVlZHNVcGRhdGU9ZSx0LmRpcmVjdGlvbmFsTGlnaHRzLm5lZWRzVXBkYXRlPWUsdC5kaXJlY3Rpb25hbExpZ2h0U2hhZG93cy5uZWVkc1VwZGF0ZT1lLHQucG9pbnRMaWdodHMubmVlZHNVcGRhdGU9ZSx0LnBvaW50TGlnaHRTaGFkb3dzLm5lZWRzVXBkYXRlPWUsdC5zcG90TGlnaHRzLm5lZWRzVXBkYXRlPWUsdC5zcG90TGlnaHRTaGFkb3dzLm5lZWRzVXBkYXRlPWUsdC5yZWN0QXJlYUxpZ2h0cy5uZWVkc1VwZGF0ZT1lLHQuaGVtaXNwaGVyZUxpZ2h0cy5uZWVkc1VwZGF0ZT1lfSkoTyxfKSxpJiZuLmZvZyYmZXQucmVmcmVzaEZvZ1VuaWZvcm1zKE8saSksZXQucmVmcmVzaE1hdGVyaWFsVW5pZm9ybXMoTyxuLFMsayxGKSx3Y3QudXBsb2FkKG10LHAudW5pZm9ybXNMaXN0LE8sWikpLG4uaXNTaGFkZXJNYXRlcmlhbCYmITA9PT1uLnVuaWZvcm1zTmVlZFVwZGF0ZSYmKHdjdC51cGxvYWQobXQscC51bmlmb3Jtc0xpc3QsTyxaKSxuLnVuaWZvcm1zTmVlZFVwZGF0ZT0hMSksbi5pc1Nwcml0ZU1hdGVyaWFsJiZ4LnNldFZhbHVlKG10LCJjZW50ZXIiLG8uY2VudGVyKSx4LnNldFZhbHVlKG10LCJtb2RlbFZpZXdNYXRyaXgiLG8ubW9kZWxWaWV3TWF0cml4KSx4LnNldFZhbHVlKG10LCJub3JtYWxNYXRyaXgiLG8ubm9ybWFsTWF0cml4KSx4LnNldFZhbHVlKG10LCJtb2RlbE1hdHJpeCIsby5tYXRyaXhXb3JsZCksZ312dC5zZXRBbmltYXRpb25Mb29wKChmdW5jdGlvbiBEdCh0KXtfdCYmX3QodCl9KSksInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZ0LnNldENvbnRleHQod2luZG93KSx0aGlzLnNldEFuaW1hdGlvbkxvb3A9ZnVuY3Rpb24odCl7X3Q9dCxndC5zZXRBbmltYXRpb25Mb29wKHQpLG51bGw9PT10P3Z0LnN0b3AoKTp2dC5zdGFydCgpfSxndC5hZGRFdmVudExpc3RlbmVyKCJzZXNzaW9uc3RhcnQiLEN0KSxndC5hZGRFdmVudExpc3RlbmVyKCJzZXNzaW9uZW5kIixNdCksdGhpcy5yZW5kZXI9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lJiYhMCE9PWUuaXNDYW1lcmEpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZW5kZXI6IGNhbWVyYSBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuQ2FtZXJhLiIpO2lmKCEwPT09YilyZXR1cm47ITA9PT10LmF1dG9VcGRhdGUmJnQudXBkYXRlTWF0cml4V29ybGQoKSxudWxsPT09ZS5wYXJlbnQmJmUudXBkYXRlTWF0cml4V29ybGQoKSwhMD09PWd0LmVuYWJsZWQmJiEwPT09Z3QuaXNQcmVzZW50aW5nJiYoITA9PT1ndC5jYW1lcmFBdXRvVXBkYXRlJiZndC51cGRhdGVDYW1lcmEoZSksZT1ndC5nZXRDYW1lcmEoKSksITA9PT10LmlzU2NlbmUmJnQub25CZWZvcmVSZW5kZXIoaCx0LGUsQyksdT1vdC5nZXQodCxnLmxlbmd0aCksdS5pbml0KCksZy5wdXNoKHUpLEwubXVsdGlwbHlNYXRyaWNlcyhlLnByb2plY3Rpb25NYXRyaXgsZS5tYXRyaXhXb3JsZEludmVyc2UpLHouc2V0RnJvbVByb2plY3Rpb25NYXRyaXgoTCksSD10aGlzLmxvY2FsQ2xpcHBpbmdFbmFibGVkLEk9aXQuaW5pdCh0aGlzLmNsaXBwaW5nUGxhbmVzLEgsZSksbT1udC5nZXQodCxmLmxlbmd0aCksbS5pbml0KCksZi5wdXNoKG0pLHh0KHQsZSwwLGguc29ydE9iamVjdHMpLG0uZmluaXNoKCksITA9PT1oLnNvcnRPYmplY3RzJiZtLnNvcnQoRCxFKSwhMD09PUkmJml0LmJlZ2luU2hhZG93cygpLGF0LnJlbmRlcih1LnN0YXRlLnNoYWRvd3NBcnJheSx0LGUpLHUuc2V0dXBMaWdodHMoKSx1LnNldHVwTGlnaHRzVmlldyhlKSwhMD09PUkmJml0LmVuZFNoYWRvd3MoKSwhMD09PXRoaXMuaW5mby5hdXRvUmVzZXQmJnRoaXMuaW5mby5yZXNldCgpLHJ0LnJlbmRlcihtLHQpO2NvbnN0IG49bS5vcGFxdWUsbz1tLnRyYW5zbWlzc2l2ZSxpPW0udHJhbnNwYXJlbnQ7bi5sZW5ndGg+MCYmT3Qobix0LGUpLG8ubGVuZ3RoPjAmJihmdW5jdGlvbiBhKHQsZSxuLG8pe251bGw9PT1GJiYoRj1uZXcoITA9PT1zJiYhMD09PUcuaXNXZWJHTDI/c2F0OnJhdCkoMTAyNCwxMDI0LHtnZW5lcmF0ZU1pcG1hcHM6ITAsdHlwZTpudWxsIT09ZHQuY29udmVydCh4aXQpP3hpdDpfaXQsbWluRmlsdGVyOnlpdCxtYWdGaWx0ZXI6aGl0LHdyYXBTOmZpdCx3cmFwVDpmaXR9KSk7Y29uc3QgaT1oLmdldFJlbmRlclRhcmdldCgpO2guc2V0UmVuZGVyVGFyZ2V0KEYpLGguY2xlYXIoKTtjb25zdCBhPWgudG9uZU1hcHBpbmc7aC50b25lTWFwcGluZz0wLE90KHQsbixvKSxoLnRvbmVNYXBwaW5nPWEsWi51cGRhdGVNdWx0aXNhbXBsZVJlbmRlclRhcmdldChGKSxaLnVwZGF0ZVJlbmRlclRhcmdldE1pcG1hcChGKSxoLnNldFJlbmRlclRhcmdldChpKSxPdChlLG4sbyl9KShuLG8sdCxlKSxpLmxlbmd0aD4wJiZPdChpLHQsZSksbnVsbCE9PUMmJihaLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KEMpLFoudXBkYXRlUmVuZGVyVGFyZ2V0TWlwbWFwKEMpKSwhMD09PXQuaXNTY2VuZSYmdC5vbkFmdGVyUmVuZGVyKGgsdCxlKSxXLmJ1ZmZlcnMuZGVwdGguc2V0VGVzdCghMCksVy5idWZmZXJzLmRlcHRoLnNldE1hc2soITApLFcuYnVmZmVycy5jb2xvci5zZXRNYXNrKCEwKSxXLnNldFBvbHlnb25PZmZzZXQoITEpLHB0LnJlc2V0RGVmYXVsdFN0YXRlKCksTT0tMSx2PW51bGwsZy5wb3AoKSx1PWcubGVuZ3RoPjA/Z1tnLmxlbmd0aC0xXTpudWxsLGYucG9wKCksbT1mLmxlbmd0aD4wP2ZbZi5sZW5ndGgtMV06bnVsbH0sdGhpcy5nZXRBY3RpdmVDdWJlRmFjZT1mdW5jdGlvbigpe3JldHVybiB5fSx0aGlzLmdldEFjdGl2ZU1pcG1hcExldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIF99LHRoaXMuZ2V0UmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIEN9LHRoaXMuc2V0UmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKHQsZT0wLG49MCl7Qz10LHk9ZSxfPW4sdCYmdm9pZCAwPT09cS5nZXQodCkuX193ZWJnbEZyYW1lYnVmZmVyJiZaLnNldHVwUmVuZGVyVGFyZ2V0KHQpO2xldCBvPW51bGwsaT0hMSxhPSExO2lmKHQpe2NvbnN0IG49dC50ZXh0dXJlOyhuLmlzRGF0YVRleHR1cmUzRHx8bi5pc0RhdGFUZXh0dXJlMkRBcnJheSkmJihhPSEwKTtjb25zdCByPXEuZ2V0KHQpLl9fd2ViZ2xGcmFtZWJ1ZmZlcjt0LmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0PyhvPXJbZV0saT0hMCk6bz10LmlzV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldD9xLmdldCh0KS5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXI6cix4LmNvcHkodC52aWV3cG9ydCksTy5jb3B5KHQuc2Npc3NvciksUD10LnNjaXNzb3JUZXN0fWVsc2UgeC5jb3B5KFIpLm11bHRpcGx5U2NhbGFyKFMpLmZsb29yKCksTy5jb3B5KEEpLm11bHRpcGx5U2NhbGFyKFMpLmZsb29yKCksUD1UO2lmKFcuYmluZEZyYW1lYnVmZmVyKDM2MTYwLG8pJiZHLmRyYXdCdWZmZXJzKXtsZXQgZT0hMTtpZih0KWlmKHQuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyl7Y29uc3Qgbj10LnRleHR1cmU7aWYoTi5sZW5ndGghPT1uLmxlbmd0aHx8MzYwNjQhPT1OWzBdKXtmb3IobGV0IHQ9MCxlPW4ubGVuZ3RoO3Q8ZTt0KyspTlt0XT0zNjA2NCt0O04ubGVuZ3RoPW4ubGVuZ3RoLGU9ITB9fWVsc2UgMT09PU4ubGVuZ3RoJiYzNjA2ND09PU5bMF18fChOWzBdPTM2MDY0LE4ubGVuZ3RoPTEsZT0hMCk7ZWxzZSAxPT09Ti5sZW5ndGgmJjEwMjk9PT1OWzBdfHwoTlswXT0xMDI5LE4ubGVuZ3RoPTEsZT0hMCk7ZSYmKEcuaXNXZWJHTDI/bXQuZHJhd0J1ZmZlcnMoTik6VS5nZXQoIldFQkdMX2RyYXdfYnVmZmVycyIpLmRyYXdCdWZmZXJzV0VCR0woTikpfWlmKFcudmlld3BvcnQoeCksVy5zY2lzc29yKE8pLFcuc2V0U2Npc3NvclRlc3QoUCksaSl7Y29uc3Qgbz1xLmdldCh0LnRleHR1cmUpO210LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDM2MDY0LDM0MDY5K2Usby5fX3dlYmdsVGV4dHVyZSxuKX1lbHNlIGlmKGEpe2NvbnN0IG89cS5nZXQodC50ZXh0dXJlKTttdC5mcmFtZWJ1ZmZlclRleHR1cmVMYXllcigzNjE2MCwzNjA2NCxvLl9fd2ViZ2xUZXh0dXJlLG58fDAsZXx8MCl9fSx0aGlzLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM9ZnVuY3Rpb24odCxlLG4sbyxpLGEscil7aWYoIXR8fCF0LmlzV2ViR0xSZW5kZXJUYXJnZXQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZW5kZXJUYXJnZXQgaXMgbm90IFRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0LiIpO2xldCBzPXEuZ2V0KHQpLl9fd2ViZ2xGcmFtZWJ1ZmZlcjtpZih0LmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0JiZ2b2lkIDAhPT1yJiYocz1zW3JdKSxzKXtXLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxzKTt0cnl7Y29uc3Qgcj10LnRleHR1cmUscz1yLmZvcm1hdCxsPXIudHlwZTtpZihzIT09d2l0JiZkdC5jb252ZXJ0KHMpIT09bXQuZ2V0UGFyYW1ldGVyKDM1NzM5KSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM6IHJlbmRlclRhcmdldCBpcyBub3QgaW4gUkdCQSBvciBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIGZvcm1hdC4iKTtjb25zdCBjPWw9PT14aXQmJihVLmhhcygiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0Iil8fEcuaXNXZWJHTDImJlUuaGFzKCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0IikpO2lmKCEobD09PV9pdHx8ZHQuY29udmVydChsKT09PW10LmdldFBhcmFtZXRlcigzNTczOCl8fGw9PT12aXQmJihHLmlzV2ViR0wyfHxVLmhhcygiT0VTX3RleHR1cmVfZmxvYXQiKXx8VS5oYXMoIldFQkdMX2NvbG9yX2J1ZmZlcl9mbG9hdCIpKXx8YykpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZW5kZXJUYXJnZXQgaXMgbm90IGluIFVuc2lnbmVkQnl0ZVR5cGUgb3IgaW1wbGVtZW50YXRpb24gZGVmaW5lZCB0eXBlLiIpOzM2MDUzPT09bXQuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cygzNjE2MCk/ZT49MCYmZTw9dC53aWR0aC1vJiZuPj0wJiZuPD10LmhlaWdodC1pJiZtdC5yZWFkUGl4ZWxzKGUsbixvLGksZHQuY29udmVydChzKSxkdC5jb252ZXJ0KGwpLGEpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVhZFJlbmRlclRhcmdldFBpeGVsczogcmVhZFBpeGVscyBmcm9tIHJlbmRlclRhcmdldCBmYWlsZWQuIEZyYW1lYnVmZmVyIG5vdCBjb21wbGV0ZS4iKX1maW5hbGx5e2NvbnN0IHQ9bnVsbCE9PUM/cS5nZXQoQykuX193ZWJnbEZyYW1lYnVmZmVyOm51bGw7Vy5iaW5kRnJhbWVidWZmZXIoMzYxNjAsdCl9fX0sdGhpcy5jb3B5RnJhbWVidWZmZXJUb1RleHR1cmU9ZnVuY3Rpb24odCxlLG49MCl7Y29uc3Qgbz1NYXRoLnBvdygyLC1uKSxpPU1hdGguZmxvb3IoZS5pbWFnZS53aWR0aCpvKSxhPU1hdGguZmxvb3IoZS5pbWFnZS5oZWlnaHQqbyk7bGV0IHI9ZHQuY29udmVydChlLmZvcm1hdCk7Ry5pc1dlYkdMMiYmKDY0MDc9PT1yJiYocj0zMjg0OSksNjQwOD09PXImJihyPTMyODU2KSksWi5zZXRUZXh0dXJlMkQoZSwwKSxtdC5jb3B5VGV4SW1hZ2UyRCgzNTUzLG4scix0LngsdC55LGksYSwwKSxXLnVuYmluZFRleHR1cmUoKX0sdGhpcy5jb3B5VGV4dHVyZVRvVGV4dHVyZT1mdW5jdGlvbih0LGUsbixvPTApe2NvbnN0IGk9ZS5pbWFnZS53aWR0aCxhPWUuaW1hZ2UuaGVpZ2h0LHI9ZHQuY29udmVydChuLmZvcm1hdCkscz1kdC5jb252ZXJ0KG4udHlwZSk7Wi5zZXRUZXh0dXJlMkQobiwwKSxtdC5waXhlbFN0b3JlaSgzNzQ0MCxuLmZsaXBZKSxtdC5waXhlbFN0b3JlaSgzNzQ0MSxuLnByZW11bHRpcGx5QWxwaGEpLG10LnBpeGVsU3RvcmVpKDMzMTcsbi51bnBhY2tBbGlnbm1lbnQpLGUuaXNEYXRhVGV4dHVyZT9tdC50ZXhTdWJJbWFnZTJEKDM1NTMsbyx0LngsdC55LGksYSxyLHMsZS5pbWFnZS5kYXRhKTplLmlzQ29tcHJlc3NlZFRleHR1cmU/bXQuY29tcHJlc3NlZFRleFN1YkltYWdlMkQoMzU1MyxvLHQueCx0LnksZS5taXBtYXBzWzBdLndpZHRoLGUubWlwbWFwc1swXS5oZWlnaHQscixlLm1pcG1hcHNbMF0uZGF0YSk6bXQudGV4U3ViSW1hZ2UyRCgzNTUzLG8sdC54LHQueSxyLHMsZS5pbWFnZSksMD09PW8mJm4uZ2VuZXJhdGVNaXBtYXBzJiZtdC5nZW5lcmF0ZU1pcG1hcCgzNTUzKSxXLnVuYmluZFRleHR1cmUoKX0sdGhpcy5jb3B5VGV4dHVyZVRvVGV4dHVyZTNEPWZ1bmN0aW9uKHQsZSxuLG8saT0wKXtpZihoLmlzV2ViR0wxUmVuZGVyZXIpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q6IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIik7Y29uc3QgYT10Lm1heC54LXQubWluLngrMSxyPXQubWF4LnktdC5taW4ueSsxLHM9dC5tYXguei10Lm1pbi56KzEsbD1kdC5jb252ZXJ0KG8uZm9ybWF0KSxjPWR0LmNvbnZlcnQoby50eXBlKTtsZXQgZDtpZihvLmlzRGF0YVRleHR1cmUzRClaLnNldFRleHR1cmUzRChvLDApLGQ9MzI4Nzk7ZWxzZXtpZighby5pc0RhdGFUZXh0dXJlMkRBcnJheSlyZXR1cm4gdm9pZCBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXIuY29weVRleHR1cmVUb1RleHR1cmUzRDogb25seSBzdXBwb3J0cyBUSFJFRS5EYXRhVGV4dHVyZTNEIGFuZCBUSFJFRS5EYXRhVGV4dHVyZTJEQXJyYXkuIik7Wi5zZXRUZXh0dXJlMkRBcnJheShvLDApLGQ9MzU4NjZ9bXQucGl4ZWxTdG9yZWkoMzc0NDAsby5mbGlwWSksbXQucGl4ZWxTdG9yZWkoMzc0NDEsby5wcmVtdWx0aXBseUFscGhhKSxtdC5waXhlbFN0b3JlaSgzMzE3LG8udW5wYWNrQWxpZ25tZW50KTtjb25zdCBwPW10LmdldFBhcmFtZXRlcigzMzE0KSxtPW10LmdldFBhcmFtZXRlcigzMjg3OCksdT1tdC5nZXRQYXJhbWV0ZXIoMzMxNiksZj1tdC5nZXRQYXJhbWV0ZXIoMzMxNSksZz1tdC5nZXRQYXJhbWV0ZXIoMzI4NzcpLGI9bi5pc0NvbXByZXNzZWRUZXh0dXJlP24ubWlwbWFwc1swXTpuLmltYWdlO210LnBpeGVsU3RvcmVpKDMzMTQsYi53aWR0aCksbXQucGl4ZWxTdG9yZWkoMzI4NzgsYi5oZWlnaHQpLG10LnBpeGVsU3RvcmVpKDMzMTYsdC5taW4ueCksbXQucGl4ZWxTdG9yZWkoMzMxNSx0Lm1pbi55KSxtdC5waXhlbFN0b3JlaSgzMjg3Nyx0Lm1pbi56KSxuLmlzRGF0YVRleHR1cmV8fG4uaXNEYXRhVGV4dHVyZTNEP210LnRleFN1YkltYWdlM0QoZCxpLGUueCxlLnksZS56LGEscixzLGwsYyxiLmRhdGEpOm4uaXNDb21wcmVzc2VkVGV4dHVyZT8oY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q6IHVudGVzdGVkIHN1cHBvcnQgZm9yIGNvbXByZXNzZWQgc3JjVGV4dHVyZS4iKSxtdC5jb21wcmVzc2VkVGV4U3ViSW1hZ2UzRChkLGksZS54LGUueSxlLnosYSxyLHMsbCxiLmRhdGEpKTptdC50ZXhTdWJJbWFnZTNEKGQsaSxlLngsZS55LGUueixhLHIscyxsLGMsYiksbXQucGl4ZWxTdG9yZWkoMzMxNCxwKSxtdC5waXhlbFN0b3JlaSgzMjg3OCxtKSxtdC5waXhlbFN0b3JlaSgzMzE2LHUpLG10LnBpeGVsU3RvcmVpKDMzMTUsZiksbXQucGl4ZWxTdG9yZWkoMzI4NzcsZyksMD09PWkmJm8uZ2VuZXJhdGVNaXBtYXBzJiZtdC5nZW5lcmF0ZU1pcG1hcChkKSxXLnVuYmluZFRleHR1cmUoKX0sdGhpcy5pbml0VGV4dHVyZT1mdW5jdGlvbih0KXtaLnNldFRleHR1cmUyRCh0LDApLFcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLnJlc2V0U3RhdGU9ZnVuY3Rpb24oKXt5PTAsXz0wLEM9bnVsbCxXLnJlc2V0KCkscHQucmVzZXQoKX0sInVuZGVmaW5lZCIhPXR5cGVvZiBfX1RIUkVFX0RFVlRPT0xTX18mJl9fVEhSRUVfREVWVE9PTFNfXy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib2JzZXJ2ZSIse2RldGFpbDp0aGlzfSkpfShjbGFzcyBleHRlbmRzIGJkdHt9KS5wcm90b3R5cGUuaXNXZWJHTDFSZW5kZXJlcj0hMDtjbGFzcyB5ZHQgZXh0ZW5kcyBwcnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iU2NlbmUiLHRoaXMuYmFja2dyb3VuZD1udWxsLHRoaXMuZW52aXJvbm1lbnQ9bnVsbCx0aGlzLmZvZz1udWxsLHRoaXMub3ZlcnJpZGVNYXRlcmlhbD1udWxsLHRoaXMuYXV0b1VwZGF0ZT0hMCwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJvYnNlcnZlIix7ZGV0YWlsOnRoaXN9KSl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksbnVsbCE9PXQuYmFja2dyb3VuZCYmKHRoaXMuYmFja2dyb3VuZD10LmJhY2tncm91bmQuY2xvbmUoKSksbnVsbCE9PXQuZW52aXJvbm1lbnQmJih0aGlzLmVudmlyb25tZW50PXQuZW52aXJvbm1lbnQuY2xvbmUoKSksbnVsbCE9PXQuZm9nJiYodGhpcy5mb2c9dC5mb2cuY2xvbmUoKSksbnVsbCE9PXQub3ZlcnJpZGVNYXRlcmlhbCYmKHRoaXMub3ZlcnJpZGVNYXRlcmlhbD10Lm92ZXJyaWRlTWF0ZXJpYWwuY2xvbmUoKSksdGhpcy5hdXRvVXBkYXRlPXQuYXV0b1VwZGF0ZSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBudWxsIT09dGhpcy5mb2cmJihlLm9iamVjdC5mb2c9dGhpcy5mb2cudG9KU09OKCkpLGV9fXlkdC5wcm90b3R5cGUuaXNTY2VuZT0hMDtjbGFzcyBfZHR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmFycmF5PXQsdGhpcy5zdHJpZGU9ZSx0aGlzLmNvdW50PXZvaWQgMCE9PXQ/dC5sZW5ndGgvZTowLHRoaXMudXNhZ2U9Qml0LHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MCx0aGlzLnV1aWQ9cWl0KCl9b25VcGxvYWRDYWxsYmFjaygpe31zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK31zZXRVc2FnZSh0KXtyZXR1cm4gdGhpcy51c2FnZT10LHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5hcnJheT1uZXcgdC5hcnJheS5jb25zdHJ1Y3Rvcih0LmFycmF5KSx0aGlzLmNvdW50PXQuY291bnQsdGhpcy5zdHJpZGU9dC5zdHJpZGUsdGhpcy51c2FnZT10LnVzYWdlLHRoaXN9Y29weUF0KHQsZSxuKXt0Kj10aGlzLnN0cmlkZSxuKj1lLnN0cmlkZTtmb3IobGV0IG89MCxpPXRoaXMuc3RyaWRlO288aTtvKyspdGhpcy5hcnJheVt0K29dPWUuYXJyYXlbbitvXTtyZXR1cm4gdGhpc31zZXQodCxlPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LGUpLHRoaXN9Y2xvbmUodCl7dm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1xaXQoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPXRoaXMuYXJyYXkuc2xpY2UoMCkuYnVmZmVyKTtjb25zdCBlPW5ldyB0aGlzLmFycmF5LmNvbnN0cnVjdG9yKHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXSksbj1uZXcgdGhpcy5jb25zdHJ1Y3RvcihlLHRoaXMuc3RyaWRlKTtyZXR1cm4gbi5zZXRVc2FnZSh0aGlzLnVzYWdlKSxufW9uVXBsb2FkKHQpe3JldHVybiB0aGlzLm9uVXBsb2FkQ2FsbGJhY2s9dCx0aGlzfXRvSlNPTih0KXtyZXR1cm4gdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1xaXQoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG5ldyBVaW50MzJBcnJheSh0aGlzLmFycmF5LmJ1ZmZlcikpKSx7dXVpZDp0aGlzLnV1aWQsYnVmZmVyOnRoaXMuYXJyYXkuYnVmZmVyLl91dWlkLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLHN0cmlkZTp0aGlzLnN0cmlkZX19fV9kdC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlcj0hMDtjb25zdCBDZHQ9bmV3IGNhdDtjbGFzcyBNZHR7Y29uc3RydWN0b3IodCxlLG4sbz0hMSl7dGhpcy5uYW1lPSIiLHRoaXMuZGF0YT10LHRoaXMuaXRlbVNpemU9ZSx0aGlzLm9mZnNldD1uLHRoaXMubm9ybWFsaXplZD0hMD09PW99Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuZGF0YS5jb3VudH1nZXQgYXJyYXkoKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5fXNldCBuZWVkc1VwZGF0ZSh0KXt0aGlzLmRhdGEubmVlZHNVcGRhdGU9dH1hcHBseU1hdHJpeDQodCl7Zm9yKGxldCBlPTAsbj10aGlzLmRhdGEuY291bnQ7ZTxuO2UrKylDZHQueD10aGlzLmdldFgoZSksQ2R0Lnk9dGhpcy5nZXRZKGUpLENkdC56PXRoaXMuZ2V0WihlKSxDZHQuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKGUsQ2R0LngsQ2R0LnksQ2R0LnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKUNkdC54PXRoaXMuZ2V0WChlKSxDZHQueT10aGlzLmdldFkoZSksQ2R0Lno9dGhpcy5nZXRaKGUpLENkdC5hcHBseU5vcm1hbE1hdHJpeCh0KSx0aGlzLnNldFhZWihlLENkdC54LENkdC55LENkdC56KTtyZXR1cm4gdGhpc310cmFuc2Zvcm1EaXJlY3Rpb24odCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspQ2R0Lng9dGhpcy5nZXRYKGUpLENkdC55PXRoaXMuZ2V0WShlKSxDZHQuej10aGlzLmdldFooZSksQ2R0LnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzLnNldFhZWihlLENkdC54LENkdC55LENkdC56KTtyZXR1cm4gdGhpc31zZXRYKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXRdPWUsdGhpc31zZXRZKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMV09ZSx0aGlzfXNldFoodCxlKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCsyXT1lLHRoaXN9c2V0Vyh0LGUpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzNdPWUsdGhpc31nZXRYKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0XX1nZXRZKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzFdfWdldFoodCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMl19Z2V0Vyh0KXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCszXX1zZXRYWSh0LGUsbil7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzfXNldFhZWih0LGUsbixvKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5Wyh0PXQqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCkrMF09ZSx0aGlzLmRhdGEuYXJyYXlbdCsxXT1uLHRoaXMuZGF0YS5hcnJheVt0KzJdPW8sdGhpc31zZXRYWVpXKHQsZSxuLG8saSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzLmRhdGEuYXJyYXlbdCsyXT1vLHRoaXMuZGF0YS5hcnJheVt0KzNdPWksdGhpc31jbG9uZSh0KXtpZih2b2lkIDA9PT10KXtjb25zb2xlLmxvZygiVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUuY2xvbmUoKTogQ2xvbmluZyBhbiBpbnRlcmxhdmVkIGJ1ZmZlciBhdHRyaWJ1dGUgd2lsbCBkZWludGVybGVhdmUgYnVmZmVyIGRhdGEuIik7Y29uc3QgdD1bXTtmb3IobGV0IGU9MDtlPHRoaXMuY291bnQ7ZSsrKXtjb25zdCBuPWUqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldDtmb3IobGV0IGU9MDtlPHRoaXMuaXRlbVNpemU7ZSsrKXQucHVzaCh0aGlzLmRhdGEuYXJyYXlbbitlXSl9cmV0dXJuIG5ldyB6cnQobmV3IHRoaXMuYXJyYXkuY29uc3RydWN0b3IodCksdGhpcy5pdGVtU2l6ZSx0aGlzLm5vcm1hbGl6ZWQpfXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLmNsb25lKHQpKSxuZXcgTWR0KHQuaW50ZXJsZWF2ZWRCdWZmZXJzW3RoaXMuZGF0YS51dWlkXSx0aGlzLml0ZW1TaXplLHRoaXMub2Zmc2V0LHRoaXMubm9ybWFsaXplZCl9dG9KU09OKHQpe2lmKHZvaWQgMD09PXQpe2NvbnNvbGUubG9nKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZS50b0pTT04oKTogU2VyaWFsaXppbmcgYW4gaW50ZXJsYXZlZCBidWZmZXIgYXR0cmlidXRlIHdpbGwgZGVpbnRlcmxlYXZlIGJ1ZmZlciBkYXRhLiIpO2NvbnN0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLmNvdW50O2UrKyl7Y29uc3Qgbj1lKnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQ7Zm9yKGxldCBlPTA7ZTx0aGlzLml0ZW1TaXplO2UrKyl0LnB1c2godGhpcy5kYXRhLmFycmF5W24rZV0pfXJldHVybntpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OnQsbm9ybWFsaXplZDp0aGlzLm5vcm1hbGl6ZWR9fXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLnRvSlNPTih0KSkse2lzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU6ITAsaXRlbVNpemU6dGhpcy5pdGVtU2l6ZSxkYXRhOnRoaXMuZGF0YS51dWlkLG9mZnNldDp0aGlzLm9mZnNldCxub3JtYWxpemVkOnRoaXMubm9ybWFsaXplZH19fU1kdC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyB2ZHQgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwcml0ZU1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBScnQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMucm90YXRpb249MCx0aGlzLnNpemVBdHRlbnVhdGlvbj0hMCx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLnJvdGF0aW9uPXQucm90YXRpb24sdGhpcy5zaXplQXR0ZW51YXRpb249dC5zaXplQXR0ZW51YXRpb24sdGhpc319bGV0IHhkdDt2ZHQucHJvdG90eXBlLmlzU3ByaXRlTWF0ZXJpYWw9ITA7Y29uc3QgT2R0PW5ldyBjYXQsUGR0PW5ldyBjYXQsd2R0PW5ldyBjYXQsa2R0PW5ldyBRaXQsU2R0PW5ldyBRaXQsRGR0PW5ldyBCYXQsRWR0PW5ldyBjYXQsUmR0PW5ldyBjYXQsQWR0PW5ldyBjYXQsVGR0PW5ldyBRaXQsTmR0PW5ldyBRaXQsemR0PW5ldyBRaXQ7ZnVuY3Rpb24gSWR0KHQsZSxuLG8saSxhKXtrZHQuc3ViVmVjdG9ycyh0LG4pLmFkZFNjYWxhciguNSkubXVsdGlwbHkobyksdm9pZCAwIT09aT8oU2R0Lng9YSprZHQueC1pKmtkdC55LFNkdC55PWkqa2R0LngrYSprZHQueSk6U2R0LmNvcHkoa2R0KSx0LmNvcHkoZSksdC54Kz1TZHQueCx0LnkrPVNkdC55LHQuYXBwbHlNYXRyaXg0KERkdCl9KGNsYXNzIGV4dGVuZHMgcHJ0e2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKCksdGhpcy50eXBlPSJTcHJpdGUiLHZvaWQgMD09PXhkdCl7eGR0PW5ldyBxcnQ7Y29uc3QgdD1uZXcgRmxvYXQzMkFycmF5KFstLjUsLS41LDAsMCwwLC41LC0uNSwwLDEsMCwuNSwuNSwwLDEsMSwtLjUsLjUsMCwwLDFdKSxlPW5ldyBfZHQodCw1KTt4ZHQuc2V0SW5kZXgoWzAsMSwyLDAsMiwzXSkseGR0LnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBNZHQoZSwzLDAsITEpKSx4ZHQuc2V0QXR0cmlidXRlKCJ1diIsbmV3IE1kdChlLDIsMywhMSkpfXRoaXMuZ2VvbWV0cnk9eGR0LHRoaXMubWF0ZXJpYWw9dm9pZCAwIT09dD90Om5ldyB2ZHQsdGhpcy5jZW50ZXI9bmV3IFFpdCguNSwuNSl9cmF5Y2FzdCh0LGUpe251bGw9PT10LmNhbWVyYSYmY29uc29sZS5lcnJvcignVEhSRUUuU3ByaXRlOiAiUmF5Y2FzdGVyLmNhbWVyYSIgbmVlZHMgdG8gYmUgc2V0IGluIG9yZGVyIHRvIHJheWNhc3QgYWdhaW5zdCBzcHJpdGVzLicpLFBkdC5zZXRGcm9tTWF0cml4U2NhbGUodGhpcy5tYXRyaXhXb3JsZCksRGR0LmNvcHkodC5jYW1lcmEubWF0cml4V29ybGQpLHRoaXMubW9kZWxWaWV3TWF0cml4Lm11bHRpcGx5TWF0cmljZXModC5jYW1lcmEubWF0cml4V29ybGRJbnZlcnNlLHRoaXMubWF0cml4V29ybGQpLHdkdC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tb2RlbFZpZXdNYXRyaXgpLHQuY2FtZXJhLmlzUGVyc3BlY3RpdmVDYW1lcmEmJiExPT09dGhpcy5tYXRlcmlhbC5zaXplQXR0ZW51YXRpb24mJlBkdC5tdWx0aXBseVNjYWxhcigtd2R0LnopO2NvbnN0IG49dGhpcy5tYXRlcmlhbC5yb3RhdGlvbjtsZXQgbyxpOzAhPT1uJiYoaT1NYXRoLmNvcyhuKSxvPU1hdGguc2luKG4pKTtjb25zdCBhPXRoaXMuY2VudGVyO0lkdChFZHQuc2V0KC0uNSwtLjUsMCksd2R0LGEsUGR0LG8saSksSWR0KFJkdC5zZXQoLjUsLS41LDApLHdkdCxhLFBkdCxvLGkpLElkdChBZHQuc2V0KC41LC41LDApLHdkdCxhLFBkdCxvLGkpLFRkdC5zZXQoMCwwKSxOZHQuc2V0KDEsMCksemR0LnNldCgxLDEpO2xldCByPXQucmF5LmludGVyc2VjdFRyaWFuZ2xlKEVkdCxSZHQsQWR0LCExLE9kdCk7aWYobnVsbD09PXImJihJZHQoUmR0LnNldCgtLjUsLjUsMCksd2R0LGEsUGR0LG8saSksTmR0LnNldCgwLDEpLHI9dC5yYXkuaW50ZXJzZWN0VHJpYW5nbGUoRWR0LEFkdCxSZHQsITEsT2R0KSxudWxsPT09cikpcmV0dXJuO2NvbnN0IHM9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8oT2R0KTtzPHQubmVhcnx8cz50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTpzLHBvaW50Ok9kdC5jbG9uZSgpLHV2OnZydC5nZXRVVihPZHQsRWR0LFJkdCxBZHQsVGR0LE5kdCx6ZHQsbmV3IFFpdCksZmFjZTpudWxsLG9iamVjdDp0aGlzfSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx2b2lkIDAhPT10LmNlbnRlciYmdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXN9fSkucHJvdG90eXBlLmlzU3ByaXRlPSEwO2NvbnN0IEhkdD1uZXcgY2F0LEZkdD1uZXcgYWF0LExkdD1uZXcgYWF0LEJkdD1uZXcgY2F0LFZkdD1uZXcgQmF0O2NsYXNzIGpkdCBleHRlbmRzIHBzdHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJTa2lubmVkTWVzaCIsdGhpcy5iaW5kTW9kZT0iYXR0YWNoZWQiLHRoaXMuYmluZE1hdHJpeD1uZXcgQmF0LHRoaXMuYmluZE1hdHJpeEludmVyc2U9bmV3IEJhdH1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuYmluZE1vZGU9dC5iaW5kTW9kZSx0aGlzLmJpbmRNYXRyaXguY29weSh0LmJpbmRNYXRyaXgpLHRoaXMuYmluZE1hdHJpeEludmVyc2UuY29weSh0LmJpbmRNYXRyaXhJbnZlcnNlKSx0aGlzLnNrZWxldG9uPXQuc2tlbGV0b24sdGhpc31iaW5kKHQsZSl7dGhpcy5za2VsZXRvbj10LHZvaWQgMD09PWUmJih0aGlzLnVwZGF0ZU1hdHJpeFdvcmxkKCEwKSx0aGlzLnNrZWxldG9uLmNhbGN1bGF0ZUludmVyc2VzKCksZT10aGlzLm1hdHJpeFdvcmxkKSx0aGlzLmJpbmRNYXRyaXguY29weShlKSx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkoZSkuaW52ZXJ0KCl9cG9zZSgpe3RoaXMuc2tlbGV0b24ucG9zZSgpfW5vcm1hbGl6ZVNraW5XZWlnaHRzKCl7Y29uc3QgdD1uZXcgYWF0LGU9dGhpcy5nZW9tZXRyeS5hdHRyaWJ1dGVzLnNraW5XZWlnaHQ7Zm9yKGxldCBuPTAsbz1lLmNvdW50O248bztuKyspe3QueD1lLmdldFgobiksdC55PWUuZ2V0WShuKSx0Lno9ZS5nZXRaKG4pLHQudz1lLmdldFcobik7Y29uc3Qgbz0xL3QubWFuaGF0dGFuTGVuZ3RoKCk7byE9PTEvMD90Lm11bHRpcGx5U2NhbGFyKG8pOnQuc2V0KDEsMCwwLDApLGUuc2V0WFlaVyhuLHQueCx0LnksdC56LHQudyl9fXVwZGF0ZU1hdHJpeFdvcmxkKHQpe3N1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpLCJhdHRhY2hlZCI9PT10aGlzLmJpbmRNb2RlP3RoaXMuYmluZE1hdHJpeEludmVyc2UuY29weSh0aGlzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKToiZGV0YWNoZWQiPT09dGhpcy5iaW5kTW9kZT90aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5iaW5kTWF0cml4KS5pbnZlcnQoKTpjb25zb2xlLndhcm4oIlRIUkVFLlNraW5uZWRNZXNoOiBVbnJlY29nbml6ZWQgYmluZE1vZGU6ICIrdGhpcy5iaW5kTW9kZSl9Ym9uZVRyYW5zZm9ybSh0LGUpe2NvbnN0IG49dGhpcy5za2VsZXRvbixvPXRoaXMuZ2VvbWV0cnk7RmR0LmZyb21CdWZmZXJBdHRyaWJ1dGUoby5hdHRyaWJ1dGVzLnNraW5JbmRleCx0KSxMZHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLmF0dHJpYnV0ZXMuc2tpbldlaWdodCx0KSxIZHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLmF0dHJpYnV0ZXMucG9zaXRpb24sdCkuYXBwbHlNYXRyaXg0KHRoaXMuYmluZE1hdHJpeCksZS5zZXQoMCwwLDApO2ZvcihsZXQgdD0wO3Q8NDt0Kyspe2NvbnN0IG89TGR0LmdldENvbXBvbmVudCh0KTtpZigwIT09byl7Y29uc3QgaT1GZHQuZ2V0Q29tcG9uZW50KHQpO1ZkdC5tdWx0aXBseU1hdHJpY2VzKG4uYm9uZXNbaV0ubWF0cml4V29ybGQsbi5ib25lSW52ZXJzZXNbaV0pLGUuYWRkU2NhbGVkVmVjdG9yKEJkdC5jb3B5KEhkdCkuYXBwbHlNYXRyaXg0KFZkdCksbyl9fXJldHVybiBlLmFwcGx5TWF0cml4NCh0aGlzLmJpbmRNYXRyaXhJbnZlcnNlKX19amR0LnByb3RvdHlwZS5pc1NraW5uZWRNZXNoPSEwLGNsYXNzIGV4dGVuZHMgcHJ0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9IkJvbmUifX0ucHJvdG90eXBlLmlzQm9uZT0hMCxjbGFzcyBleHRlbmRzIG9hdHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxvLGksYSxyLHMsbD0xMDAzLGM9MTAwMyxkLHApe3N1cGVyKG51bGwsYSxyLHMsbCxjLG8saSxkLHApLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpufSx0aGlzLm1hZ0ZpbHRlcj1sLHRoaXMubWluRmlsdGVyPWMsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fS5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZT0hMDtjb25zdCBVZHQ9bmV3IEJhdCxHZHQ9bmV3IEJhdCxXZHQ9W10sWWR0PW5ldyBwc3Q7KGNsYXNzIGV4dGVuZHMgcHN0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUpLHRoaXMuaW5zdGFuY2VNYXRyaXg9bmV3IHpydChuZXcgRmxvYXQzMkFycmF5KDE2Km4pLDE2KSx0aGlzLmluc3RhbmNlQ29sb3I9bnVsbCx0aGlzLmNvdW50PW4sdGhpcy5mcnVzdHVtQ3VsbGVkPSExfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5pbnN0YW5jZU1hdHJpeC5jb3B5KHQuaW5zdGFuY2VNYXRyaXgpLG51bGwhPT10Lmluc3RhbmNlQ29sb3ImJih0aGlzLmluc3RhbmNlQ29sb3I9dC5pbnN0YW5jZUNvbG9yLmNsb25lKCkpLHRoaXMuY291bnQ9dC5jb3VudCx0aGlzfWdldENvbG9yQXQodCxlKXtlLmZyb21BcnJheSh0aGlzLmluc3RhbmNlQ29sb3IuYXJyYXksMyp0KX1nZXRNYXRyaXhBdCh0LGUpe2UuZnJvbUFycmF5KHRoaXMuaW5zdGFuY2VNYXRyaXguYXJyYXksMTYqdCl9cmF5Y2FzdCh0LGUpe2NvbnN0IG49dGhpcy5tYXRyaXhXb3JsZCxvPXRoaXMuY291bnQ7aWYoWWR0Lmdlb21ldHJ5PXRoaXMuZ2VvbWV0cnksWWR0Lm1hdGVyaWFsPXRoaXMubWF0ZXJpYWwsdm9pZCAwIT09WWR0Lm1hdGVyaWFsKWZvcihsZXQgaT0wO2k8bztpKyspe3RoaXMuZ2V0TWF0cml4QXQoaSxVZHQpLEdkdC5tdWx0aXBseU1hdHJpY2VzKG4sVWR0KSxZZHQubWF0cml4V29ybGQ9R2R0LFlkdC5yYXljYXN0KHQsV2R0KTtmb3IobGV0IHQ9MCxuPVdkdC5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1XZHRbdF07bi5pbnN0YW5jZUlkPWksbi5vYmplY3Q9dGhpcyxlLnB1c2gobil9V2R0Lmxlbmd0aD0wfX1zZXRDb2xvckF0KHQsZSl7bnVsbD09PXRoaXMuaW5zdGFuY2VDb2xvciYmKHRoaXMuaW5zdGFuY2VDb2xvcj1uZXcgenJ0KG5ldyBGbG9hdDMyQXJyYXkoMyp0aGlzLmluc3RhbmNlTWF0cml4LmNvdW50KSwzKSksZS50b0FycmF5KHRoaXMuaW5zdGFuY2VDb2xvci5hcnJheSwzKnQpfXNldE1hdHJpeEF0KHQsZSl7ZS50b0FycmF5KHRoaXMuaW5zdGFuY2VNYXRyaXguYXJyYXksMTYqdCl9dXBkYXRlTW9ycGhUYXJnZXRzKCl7fWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9fSkucHJvdG90eXBlLmlzSW5zdGFuY2VkTWVzaD0hMDtjbGFzcyBxZHQgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmVCYXNpY01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBScnQoMTY3NzcyMTUpLHRoaXMubGluZXdpZHRoPTEsdGhpcy5saW5lY2FwPSJyb3VuZCIsdGhpcy5saW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubGluZXdpZHRoPXQubGluZXdpZHRoLHRoaXMubGluZWNhcD10LmxpbmVjYXAsdGhpcy5saW5lam9pbj10LmxpbmVqb2luLHRoaXN9fXFkdC5wcm90b3R5cGUuaXNMaW5lQmFzaWNNYXRlcmlhbD0hMDtjb25zdCBaZHQ9bmV3IGNhdCxYZHQ9bmV3IGNhdCxLZHQ9bmV3IEJhdCxKZHQ9bmV3IExhdCxRZHQ9bmV3IFJhdDtjbGFzcyAkZHQgZXh0ZW5kcyBwcnR7Y29uc3RydWN0b3IodD1uZXcgcXJ0LGU9bmV3IHFkdCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmUiLHRoaXMuZ2VvbWV0cnk9dCx0aGlzLm1hdGVyaWFsPWUsdGhpcy51cGRhdGVNb3JwaFRhcmdldHMoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpc31jb21wdXRlTGluZURpc3RhbmNlcygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpaWYobnVsbD09PXQuaW5kZXgpe2NvbnN0IGU9dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLG49WzBdO2ZvcihsZXQgdD0xLG89ZS5jb3VudDt0PG87dCsrKVpkdC5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdC0xKSxYZHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQpLG5bdF09blt0LTFdLG5bdF0rPVpkdC5kaXN0YW5jZVRvKFhkdCk7dC5zZXRBdHRyaWJ1dGUoImxpbmVEaXN0YW5jZSIsbmV3IEZydChuLDEpKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuTGluZS5jb21wdXRlTGluZURpc3RhbmNlcygpOiBDb21wdXRhdGlvbiBvbmx5IHBvc3NpYmxlIHdpdGggbm9uLWluZGV4ZWQgQnVmZmVyR2VvbWV0cnkuIik7ZWxzZSB0LmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpO3JldHVybiB0aGlzfXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMuZ2VvbWV0cnksbz10aGlzLm1hdHJpeFdvcmxkLGk9dC5wYXJhbXMuTGluZS50aHJlc2hvbGQsYT1uLmRyYXdSYW5nZTtpZihudWxsPT09bi5ib3VuZGluZ1NwaGVyZSYmbi5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxRZHQuY29weShuLmJvdW5kaW5nU3BoZXJlKSxRZHQuYXBwbHlNYXRyaXg0KG8pLFFkdC5yYWRpdXMrPWksITE9PT10LnJheS5pbnRlcnNlY3RzU3BoZXJlKFFkdCkpcmV0dXJuO0tkdC5jb3B5KG8pLmludmVydCgpLEpkdC5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQoS2R0KTtjb25zdCByPWkvKCh0aGlzLnNjYWxlLngrdGhpcy5zY2FsZS55K3RoaXMuc2NhbGUueikvMykscz1yKnIsbD1uZXcgY2F0LGM9bmV3IGNhdCxkPW5ldyBjYXQscD1uZXcgY2F0LG09dGhpcy5pc0xpbmVTZWdtZW50cz8yOjE7aWYobi5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBvPW4uaW5kZXgsaT1uLmF0dHJpYnV0ZXMucG9zaXRpb247aWYobnVsbCE9PW8pZm9yKGxldCBuPU1hdGgubWF4KDAsYS5zdGFydCkscj1NYXRoLm1pbihvLmNvdW50LGEuc3RhcnQrYS5jb3VudCktMTtuPHI7bis9bSl7Y29uc3QgYT1vLmdldFgobikscj1vLmdldFgobisxKTtpZihsLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxhKSxjLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxyKSxKZHQuZGlzdGFuY2VTcVRvU2VnbWVudChsLGMscCxkKT5zKWNvbnRpbnVlO3AuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpO2NvbnN0IG09dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8ocCk7bTx0Lm5lYXJ8fG0+dC5mYXJ8fGUucHVzaCh7ZGlzdGFuY2U6bSxwb2ludDpkLmNsb25lKCkuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpLGluZGV4Om4sZmFjZTpudWxsLGZhY2VJbmRleDpudWxsLG9iamVjdDp0aGlzfSl9ZWxzZSBmb3IobGV0IG49TWF0aC5tYXgoMCxhLnN0YXJ0KSxvPU1hdGgubWluKGkuY291bnQsYS5zdGFydCthLmNvdW50KS0xO248bztuKz1tKXtpZihsLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxuKSxjLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxuKzEpLEpkdC5kaXN0YW5jZVNxVG9TZWdtZW50KGwsYyxwLGQpPnMpY29udGludWU7cC5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCk7Y29uc3Qgbz10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhwKTtvPHQubmVhcnx8bz50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTpvLHBvaW50OmQuY2xvbmUoKS5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCksaW5kZXg6bixmYWNlOm51bGwsZmFjZUluZGV4Om51bGwsb2JqZWN0OnRoaXN9KX19ZWxzZSBuLmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9dXBkYXRlTW9ycGhUYXJnZXRzKCl7Y29uc3QgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSl7Y29uc3QgZT10Lm1vcnBoQXR0cmlidXRlcyxuPU9iamVjdC5rZXlzKGUpO2lmKG4ubGVuZ3RoPjApe2NvbnN0IHQ9ZVtuWzBdXTtpZih2b2lkIDAhPT10KXt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcz1bXSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT17fTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dFtlXS5uYW1lfHxTdHJpbmcoZSk7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXMucHVzaCgwKSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtuXT1lfX19fWVsc2V7Y29uc3QgZT10Lm1vcnBoVGFyZ2V0czt2b2lkIDAhPT1lJiZlLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5MaW5lLnVwZGF0ZU1vcnBoVGFyZ2V0cygpIGRvZXMgbm90IHN1cHBvcnQgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX19JGR0LnByb3RvdHlwZS5pc0xpbmU9ITA7Y29uc3QgdHB0PW5ldyBjYXQsZXB0PW5ldyBjYXQ7Y2xhc3MgbnB0IGV4dGVuZHMgJGR0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkxpbmVTZWdtZW50cyJ9Y29tcHV0ZUxpbmVEaXN0YW5jZXMoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KWlmKG51bGw9PT10LmluZGV4KXtjb25zdCBlPXQuYXR0cmlidXRlcy5wb3NpdGlvbixuPVtdO2ZvcihsZXQgdD0wLG89ZS5jb3VudDt0PG87dCs9Mil0cHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQpLGVwdC5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCsxKSxuW3RdPTA9PT10PzA6blt0LTFdLG5bdCsxXT1uW3RdK3RwdC5kaXN0YW5jZVRvKGVwdCk7dC5zZXRBdHRyaWJ1dGUoImxpbmVEaXN0YW5jZSIsbmV3IEZydChuLDEpKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuTGluZVNlZ21lbnRzLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCk6IENvbXB1dGF0aW9uIG9ubHkgcG9zc2libGUgd2l0aCBub24taW5kZXhlZCBCdWZmZXJHZW9tZXRyeS4iKTtlbHNlIHQuaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZVNlZ21lbnRzLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKTtyZXR1cm4gdGhpc319bnB0LnByb3RvdHlwZS5pc0xpbmVTZWdtZW50cz0hMCxjbGFzcyBleHRlbmRzICRkdHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJMaW5lTG9vcCJ9fS5wcm90b3R5cGUuaXNMaW5lTG9vcD0hMDtjbGFzcyBvcHQgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBvaW50c01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBScnQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuc2l6ZT0xLHRoaXMuc2l6ZUF0dGVudWF0aW9uPSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLnNpemU9dC5zaXplLHRoaXMuc2l6ZUF0dGVudWF0aW9uPXQuc2l6ZUF0dGVudWF0aW9uLHRoaXN9fW9wdC5wcm90b3R5cGUuaXNQb2ludHNNYXRlcmlhbD0hMDtjb25zdCBpcHQ9bmV3IEJhdCxhcHQ9bmV3IExhdCxycHQ9bmV3IFJhdCxzcHQ9bmV3IGNhdDtmdW5jdGlvbiBscHQodCxlLG4sbyxpLGEscil7Y29uc3Qgcz1hcHQuZGlzdGFuY2VTcVRvUG9pbnQodCk7aWYoczxuKXtjb25zdCBuPW5ldyBjYXQ7YXB0LmNsb3Nlc3RQb2ludFRvUG9pbnQodCxuKSxuLmFwcGx5TWF0cml4NChvKTtjb25zdCBsPWkucmF5Lm9yaWdpbi5kaXN0YW5jZVRvKG4pO2lmKGw8aS5uZWFyfHxsPmkuZmFyKXJldHVybjthLnB1c2goe2Rpc3RhbmNlOmwsZGlzdGFuY2VUb1JheTpNYXRoLnNxcnQocykscG9pbnQ6bixpbmRleDplLGZhY2U6bnVsbCxvYmplY3Q6cn0pfX0oY2xhc3MgZXh0ZW5kcyBwcnR7Y29uc3RydWN0b3IodD1uZXcgcXJ0LGU9bmV3IG9wdCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBvaW50cyIsdGhpcy5nZW9tZXRyeT10LHRoaXMubWF0ZXJpYWw9ZSx0aGlzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXMuZ2VvbWV0cnk9dC5nZW9tZXRyeSx0aGlzfXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMuZ2VvbWV0cnksbz10aGlzLm1hdHJpeFdvcmxkLGk9dC5wYXJhbXMuUG9pbnRzLnRocmVzaG9sZCxhPW4uZHJhd1JhbmdlO2lmKG51bGw9PT1uLmJvdW5kaW5nU3BoZXJlJiZuLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLHJwdC5jb3B5KG4uYm91bmRpbmdTcGhlcmUpLHJwdC5hcHBseU1hdHJpeDQobykscnB0LnJhZGl1cys9aSwhMT09PXQucmF5LmludGVyc2VjdHNTcGhlcmUocnB0KSlyZXR1cm47aXB0LmNvcHkobykuaW52ZXJ0KCksYXB0LmNvcHkodC5yYXkpLmFwcGx5TWF0cml4NChpcHQpO2NvbnN0IHI9aS8oKHRoaXMuc2NhbGUueCt0aGlzLnNjYWxlLnkrdGhpcy5zY2FsZS56KS8zKSxzPXIqcjtpZihuLmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IGk9bi5pbmRleCxyPW4uYXR0cmlidXRlcy5wb3NpdGlvbjtpZihudWxsIT09aSlmb3IobGV0IG49TWF0aC5tYXgoMCxhLnN0YXJ0KSxsPU1hdGgubWluKGkuY291bnQsYS5zdGFydCthLmNvdW50KTtuPGw7bisrKXtjb25zdCBhPWkuZ2V0WChuKTtzcHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLGEpLGxwdChzcHQsYSxzLG8sdCxlLHRoaXMpfWVsc2UgZm9yKGxldCBuPU1hdGgubWF4KDAsYS5zdGFydCksaT1NYXRoLm1pbihyLmNvdW50LGEuc3RhcnQrYS5jb3VudCk7bjxpO24rKylzcHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLG4pLGxwdChzcHQsbixzLG8sdCxlLHRoaXMpfWVsc2UgY29uc29sZS5lcnJvcigiVEhSRUUuUG9pbnRzLnJheWNhc3QoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IGU9dC5tb3JwaEF0dHJpYnV0ZXMsbj1PYmplY3Qua2V5cyhlKTtpZihuLmxlbmd0aD4wKXtjb25zdCB0PWVbblswXV07aWYodm9pZCAwIT09dCl7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9W10sdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9e307Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0ubmFtZXx8U3RyaW5nKGUpO3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnB1c2goMCksdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnlbbl09ZX19fX1lbHNle2NvbnN0IGU9dC5tb3JwaFRhcmdldHM7dm9pZCAwIT09ZSYmZS5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuUG9pbnRzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpIGRvZXMgbm90IHN1cHBvcnQgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX19KS5wcm90b3R5cGUuaXNQb2ludHM9ITAsY2xhc3MgZXh0ZW5kcyBvYXR7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwpe3N1cGVyKHQsZSxuLG8saSxhLHIscyxsKSx0aGlzLmZvcm1hdD12b2lkIDAhPT1yP3I6UGl0LHRoaXMubWluRmlsdGVyPXZvaWQgMCE9PWE/YTpiaXQsdGhpcy5tYWdGaWx0ZXI9dm9pZCAwIT09aT9pOmJpdCx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMTtjb25zdCBjPXRoaXM7InJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siaW4gdCYmdC5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChmdW5jdGlvbiBlKCl7Yy5uZWVkc1VwZGF0ZT0hMCx0LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soZSl9KSl9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5pbWFnZSkuY29weSh0aGlzKX11cGRhdGUoKXtjb25zdCB0PXRoaXMuaW1hZ2U7MD09InJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siaW4gdCYmdC5yZWFkeVN0YXRlPj10LkhBVkVfQ1VSUkVOVF9EQVRBJiYodGhpcy5uZWVkc1VwZGF0ZT0hMCl9fS5wcm90b3R5cGUuaXNWaWRlb1RleHR1cmU9ITAsY2xhc3MgZXh0ZW5kcyBvYXR7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwsYyxkLHApe3N1cGVyKG51bGwsYSxyLHMsbCxjLG8saSxkLHApLHRoaXMuaW1hZ2U9e3dpZHRoOmUsaGVpZ2h0Om59LHRoaXMubWlwbWFwcz10LHRoaXMuZmxpcFk9ITEsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITF9fS5wcm90b3R5cGUuaXNDb21wcmVzc2VkVGV4dHVyZT0hMCxjbGFzcyBleHRlbmRzIG9hdHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCl7c3VwZXIodCxlLG4sbyxpLGEscixzLGwpLHRoaXMubmVlZHNVcGRhdGU9ITB9fS5wcm90b3R5cGUuaXNDYW52YXNUZXh0dXJlPSEwLGNsYXNzIGV4dGVuZHMgb2F0e2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMpe2lmKChjPXZvaWQgMCE9PWM/YzpraXQpIT09a2l0JiZjIT09U2l0KXRocm93IG5ldyBFcnJvcigiRGVwdGhUZXh0dXJlIGZvcm1hdCBtdXN0IGJlIGVpdGhlciBUSFJFRS5EZXB0aEZvcm1hdCBvciBUSFJFRS5EZXB0aFN0ZW5jaWxGb3JtYXQiKTt2b2lkIDA9PT1uJiZjPT09a2l0JiYobj1DaXQpLHZvaWQgMD09PW4mJmM9PT1TaXQmJihuPU9pdCksc3VwZXIobnVsbCxvLGksYSxyLHMsYyxuLGwpLHRoaXMuaW1hZ2U9e3dpZHRoOnQsaGVpZ2h0OmV9LHRoaXMubWFnRmlsdGVyPXZvaWQgMCE9PXI/cjpoaXQsdGhpcy5taW5GaWx0ZXI9dm9pZCAwIT09cz9zOmhpdCx0aGlzLmZsaXBZPSExLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExfX0ucHJvdG90eXBlLmlzRGVwdGhUZXh0dXJlPSEwO2NsYXNzIGNwdCBleHRlbmRzIHFydHtjb25zdHJ1Y3Rvcih0PTEsZT04LG49MCxvPTIqTWF0aC5QSSl7c3VwZXIoKSx0aGlzLnR5cGU9IkNpcmNsZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LHNlZ21lbnRzOmUsdGhldGFTdGFydDpuLHRoZXRhTGVuZ3RoOm99LGU9TWF0aC5tYXgoMyxlKTtjb25zdCBpPVtdLGE9W10scj1bXSxzPVtdLGw9bmV3IGNhdCxjPW5ldyBRaXQ7YS5wdXNoKDAsMCwwKSxyLnB1c2goMCwwLDEpLHMucHVzaCguNSwuNSk7Zm9yKGxldCBpPTAsZD0zO2k8PWU7aSsrLGQrPTMpe2NvbnN0IHA9bitpL2UqbztsLng9dCpNYXRoLmNvcyhwKSxsLnk9dCpNYXRoLnNpbihwKSxhLnB1c2gobC54LGwueSxsLnopLHIucHVzaCgwLDAsMSksYy54PShhW2RdL3QrMSkvMixjLnk9KGFbZCsxXS90KzEpLzIscy5wdXNoKGMueCxjLnkpfWZvcihsZXQgdD0xO3Q8PWU7dCsrKWkucHVzaCh0LHQrMSwwKTt0aGlzLnNldEluZGV4KGkpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IEZydChhLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgRnJ0KHIsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IEZydChzLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBjcHQodC5yYWRpdXMsdC5zZWdtZW50cyx0LnRoZXRhU3RhcnQsdC50aGV0YUxlbmd0aCl9fW5ldyBjYXQsbmV3IGNhdCxuZXcgY2F0LG5ldyB2cnQ7Y2xhc3MgZHB0e2NvbnN0cnVjdG9yKCl7dGhpcy50eXBlPSJDdXJ2ZSIsdGhpcy5hcmNMZW5ndGhEaXZpc2lvbnM9MjAwfWdldFBvaW50KCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3VydmU6IC5nZXRQb2ludCgpIG5vdCBpbXBsZW1lbnRlZC4iKSxudWxsfWdldFBvaW50QXQodCxlKXtjb25zdCBuPXRoaXMuZ2V0VXRvVG1hcHBpbmcodCk7cmV0dXJuIHRoaXMuZ2V0UG9pbnQobixlKX1nZXRQb2ludHModD01KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248PXQ7bisrKWUucHVzaCh0aGlzLmdldFBvaW50KG4vdCkpO3JldHVybiBlfWdldFNwYWNlZFBvaW50cyh0PTUpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjw9dDtuKyspZS5wdXNoKHRoaXMuZ2V0UG9pbnRBdChuL3QpKTtyZXR1cm4gZX1nZXRMZW5ndGgoKXtjb25zdCB0PXRoaXMuZ2V0TGVuZ3RocygpO3JldHVybiB0W3QubGVuZ3RoLTFdfWdldExlbmd0aHModD10aGlzLmFyY0xlbmd0aERpdmlzaW9ucyl7aWYodGhpcy5jYWNoZUFyY0xlbmd0aHMmJnRoaXMuY2FjaGVBcmNMZW5ndGhzLmxlbmd0aD09PXQrMSYmIXRoaXMubmVlZHNVcGRhdGUpcmV0dXJuIHRoaXMuY2FjaGVBcmNMZW5ndGhzO3RoaXMubmVlZHNVcGRhdGU9ITE7Y29uc3QgZT1bXTtsZXQgbixvPXRoaXMuZ2V0UG9pbnQoMCksaT0wO2UucHVzaCgwKTtmb3IobGV0IGE9MTthPD10O2ErKyluPXRoaXMuZ2V0UG9pbnQoYS90KSxpKz1uLmRpc3RhbmNlVG8obyksZS5wdXNoKGkpLG89bjtyZXR1cm4gdGhpcy5jYWNoZUFyY0xlbmd0aHM9ZSxlfXVwZGF0ZUFyY0xlbmd0aHMoKXt0aGlzLm5lZWRzVXBkYXRlPSEwLHRoaXMuZ2V0TGVuZ3RocygpfWdldFV0b1RtYXBwaW5nKHQsZSl7Y29uc3Qgbj10aGlzLmdldExlbmd0aHMoKTtsZXQgbz0wO2NvbnN0IGk9bi5sZW5ndGg7bGV0IGE7YT1lfHx0Km5baS0xXTtsZXQgcixzPTAsbD1pLTE7Zm9yKDtzPD1sOylpZihvPU1hdGguZmxvb3IocysobC1zKS8yKSxyPW5bb10tYSxyPDApcz1vKzE7ZWxzZXtpZighKHI+MCkpe2w9bzticmVha31sPW8tMX1pZihvPWwsbltvXT09PWEpcmV0dXJuIG8vKGktMSk7Y29uc3QgYz1uW29dO3JldHVybihvKyhhLWMpLyhuW28rMV0tYykpLyhpLTEpfWdldFRhbmdlbnQodCxlKXtjb25zdCBuPTFlLTQ7bGV0IG89dC1uLGk9dCtuO288MCYmKG89MCksaT4xJiYoaT0xKTtjb25zdCBhPXRoaXMuZ2V0UG9pbnQobykscj10aGlzLmdldFBvaW50KGkpLHM9ZXx8KGEuaXNWZWN0b3IyP25ldyBRaXQ6bmV3IGNhdCk7cmV0dXJuIHMuY29weShyKS5zdWIoYSkubm9ybWFsaXplKCksc31nZXRUYW5nZW50QXQodCxlKXtjb25zdCBuPXRoaXMuZ2V0VXRvVG1hcHBpbmcodCk7cmV0dXJuIHRoaXMuZ2V0VGFuZ2VudChuLGUpfWNvbXB1dGVGcmVuZXRGcmFtZXModCxlKXtjb25zdCBuPW5ldyBjYXQsbz1bXSxpPVtdLGE9W10scj1uZXcgY2F0LHM9bmV3IEJhdDtmb3IobGV0IGU9MDtlPD10O2UrKylvW2VdPXRoaXMuZ2V0VGFuZ2VudEF0KGUvdCxuZXcgY2F0KSxvW2VdLm5vcm1hbGl6ZSgpO2lbMF09bmV3IGNhdCxhWzBdPW5ldyBjYXQ7bGV0IGw9TnVtYmVyLk1BWF9WQUxVRTtjb25zdCBjPU1hdGguYWJzKG9bMF0ueCksZD1NYXRoLmFicyhvWzBdLnkpLHA9TWF0aC5hYnMob1swXS56KTtjPD1sJiYobD1jLG4uc2V0KDEsMCwwKSksZDw9bCYmKGw9ZCxuLnNldCgwLDEsMCkpLHA8PWwmJm4uc2V0KDAsMCwxKSxyLmNyb3NzVmVjdG9ycyhvWzBdLG4pLm5vcm1hbGl6ZSgpLGlbMF0uY3Jvc3NWZWN0b3JzKG9bMF0sciksYVswXS5jcm9zc1ZlY3RvcnMob1swXSxpWzBdKTtmb3IobGV0IGU9MTtlPD10O2UrKyl7aWYoaVtlXT1pW2UtMV0uY2xvbmUoKSxhW2VdPWFbZS0xXS5jbG9uZSgpLHIuY3Jvc3NWZWN0b3JzKG9bZS0xXSxvW2VdKSxyLmxlbmd0aCgpPk51bWJlci5FUFNJTE9OKXtyLm5vcm1hbGl6ZSgpO2NvbnN0IHQ9TWF0aC5hY29zKFppdChvW2UtMV0uZG90KG9bZV0pLC0xLDEpKTtpW2VdLmFwcGx5TWF0cml4NChzLm1ha2VSb3RhdGlvbkF4aXMocix0KSl9YVtlXS5jcm9zc1ZlY3RvcnMob1tlXSxpW2VdKX1pZighMD09PWUpe2xldCBlPU1hdGguYWNvcyhaaXQoaVswXS5kb3QoaVt0XSksLTEsMSkpO2UvPXQsb1swXS5kb3Qoci5jcm9zc1ZlY3RvcnMoaVswXSxpW3RdKSk+MCYmKGU9LWUpO2ZvcihsZXQgbj0xO248PXQ7bisrKWlbbl0uYXBwbHlNYXRyaXg0KHMubWFrZVJvdGF0aW9uQXhpcyhvW25dLGUqbikpLGFbbl0uY3Jvc3NWZWN0b3JzKG9bbl0saVtuXSl9cmV0dXJue3RhbmdlbnRzOm8sbm9ybWFsczppLGJpbm9ybWFsczphfX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLmFyY0xlbmd0aERpdmlzaW9ucz10LmFyY0xlbmd0aERpdmlzaW9ucyx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJDdXJ2ZSIsZ2VuZXJhdG9yOiJDdXJ2ZS50b0pTT04ifX07cmV0dXJuIHQuYXJjTGVuZ3RoRGl2aXNpb25zPXRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zLHQudHlwZT10aGlzLnR5cGUsdH1mcm9tSlNPTih0KXtyZXR1cm4gdGhpcy5hcmNMZW5ndGhEaXZpc2lvbnM9dC5hcmNMZW5ndGhEaXZpc2lvbnMsdGhpc319Y2xhc3MgcHB0IGV4dGVuZHMgZHB0e2NvbnN0cnVjdG9yKHQ9MCxlPTAsbj0xLG89MSxpPTAsYT0yKk1hdGguUEkscj0hMSxzPTApe3N1cGVyKCksdGhpcy50eXBlPSJFbGxpcHNlQ3VydmUiLHRoaXMuYVg9dCx0aGlzLmFZPWUsdGhpcy54UmFkaXVzPW4sdGhpcy55UmFkaXVzPW8sdGhpcy5hU3RhcnRBbmdsZT1pLHRoaXMuYUVuZEFuZ2xlPWEsdGhpcy5hQ2xvY2t3aXNlPXIsdGhpcy5hUm90YXRpb249c31nZXRQb2ludCh0LGUpe2NvbnN0IG49ZXx8bmV3IFFpdCxvPTIqTWF0aC5QSTtsZXQgaT10aGlzLmFFbmRBbmdsZS10aGlzLmFTdGFydEFuZ2xlO2NvbnN0IGE9TWF0aC5hYnMoaSk8TnVtYmVyLkVQU0lMT047Zm9yKDtpPDA7KWkrPW87Zm9yKDtpPm87KWktPW87aTxOdW1iZXIuRVBTSUxPTiYmKGk9YT8wOm8pLCEwIT09dGhpcy5hQ2xvY2t3aXNlfHxhfHwoaT09PW8/aT0tbzppLT1vKTtjb25zdCByPXRoaXMuYVN0YXJ0QW5nbGUrdCppO2xldCBzPXRoaXMuYVgrdGhpcy54UmFkaXVzKk1hdGguY29zKHIpLGw9dGhpcy5hWSt0aGlzLnlSYWRpdXMqTWF0aC5zaW4ocik7aWYoMCE9PXRoaXMuYVJvdGF0aW9uKXtjb25zdCB0PU1hdGguY29zKHRoaXMuYVJvdGF0aW9uKSxlPU1hdGguc2luKHRoaXMuYVJvdGF0aW9uKSxuPXMtdGhpcy5hWCxvPWwtdGhpcy5hWTtzPW4qdC1vKmUrdGhpcy5hWCxsPW4qZStvKnQrdGhpcy5hWX1yZXR1cm4gbi5zZXQocyxsKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuYVg9dC5hWCx0aGlzLmFZPXQuYVksdGhpcy54UmFkaXVzPXQueFJhZGl1cyx0aGlzLnlSYWRpdXM9dC55UmFkaXVzLHRoaXMuYVN0YXJ0QW5nbGU9dC5hU3RhcnRBbmdsZSx0aGlzLmFFbmRBbmdsZT10LmFFbmRBbmdsZSx0aGlzLmFDbG9ja3dpc2U9dC5hQ2xvY2t3aXNlLHRoaXMuYVJvdGF0aW9uPXQuYVJvdGF0aW9uLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC5hWD10aGlzLmFYLHQuYVk9dGhpcy5hWSx0LnhSYWRpdXM9dGhpcy54UmFkaXVzLHQueVJhZGl1cz10aGlzLnlSYWRpdXMsdC5hU3RhcnRBbmdsZT10aGlzLmFTdGFydEFuZ2xlLHQuYUVuZEFuZ2xlPXRoaXMuYUVuZEFuZ2xlLHQuYUNsb2Nrd2lzZT10aGlzLmFDbG9ja3dpc2UsdC5hUm90YXRpb249dGhpcy5hUm90YXRpb24sdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy5hWD10LmFYLHRoaXMuYVk9dC5hWSx0aGlzLnhSYWRpdXM9dC54UmFkaXVzLHRoaXMueVJhZGl1cz10LnlSYWRpdXMsdGhpcy5hU3RhcnRBbmdsZT10LmFTdGFydEFuZ2xlLHRoaXMuYUVuZEFuZ2xlPXQuYUVuZEFuZ2xlLHRoaXMuYUNsb2Nrd2lzZT10LmFDbG9ja3dpc2UsdGhpcy5hUm90YXRpb249dC5hUm90YXRpb24sdGhpc319cHB0LnByb3RvdHlwZS5pc0VsbGlwc2VDdXJ2ZT0hMDtjbGFzcyBtcHQgZXh0ZW5kcyBwcHR7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe3N1cGVyKHQsZSxuLG4sbyxpLGEpLHRoaXMudHlwZT0iQXJjQ3VydmUifX1mdW5jdGlvbiB1cHQoKXtsZXQgdD0wLGU9MCxuPTAsbz0wO2Z1bmN0aW9uIGkoaSxhLHIscyl7dD1pLGU9cixuPS0zKmkrMyphLTIqci1zLG89MippLTIqYStyK3N9cmV0dXJue2luaXRDYXRtdWxsUm9tOmZ1bmN0aW9uKHQsZSxuLG8sYSl7aShlLG4sYSoobi10KSxhKihvLWUpKX0saW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tOmZ1bmN0aW9uKHQsZSxuLG8sYSxyLHMpe2xldCBsPShlLXQpL2EtKG4tdCkvKGErcikrKG4tZSkvcixjPShuLWUpL3ItKG8tZSkvKHIrcykrKG8tbikvcztsKj1yLGMqPXIsaShlLG4sbCxjKX0sY2FsYzpmdW5jdGlvbihpKXtjb25zdCBhPWkqaTtyZXR1cm4gdCtlKmkrbiphK28qKGEqaSl9fX1tcHQucHJvdG90eXBlLmlzQXJjQ3VydmU9ITA7Y29uc3QgZnB0PW5ldyBjYXQsZ3B0PW5ldyB1cHQsaHB0PW5ldyB1cHQsYnB0PW5ldyB1cHQ7Y2xhc3MgeXB0IGV4dGVuZHMgZHB0e2NvbnN0cnVjdG9yKHQ9W10sZT0hMSxuPSJjZW50cmlwZXRhbCIsbz0uNSl7c3VwZXIoKSx0aGlzLnR5cGU9IkNhdG11bGxSb21DdXJ2ZTMiLHRoaXMucG9pbnRzPXQsdGhpcy5jbG9zZWQ9ZSx0aGlzLmN1cnZlVHlwZT1uLHRoaXMudGVuc2lvbj1vfWdldFBvaW50KHQsZT1uZXcgY2F0KXtjb25zdCBuPWUsbz10aGlzLnBvaW50cyxpPW8ubGVuZ3RoLGE9KGktKHRoaXMuY2xvc2VkPzA6MSkpKnQ7bGV0IHIscyxsPU1hdGguZmxvb3IoYSksYz1hLWw7dGhpcy5jbG9zZWQ/bCs9bD4wPzA6KE1hdGguZmxvb3IoTWF0aC5hYnMobCkvaSkrMSkqaTowPT09YyYmbD09PWktMSYmKGw9aS0yLGM9MSksdGhpcy5jbG9zZWR8fGw+MD9yPW9bKGwtMSklaV06KGZwdC5zdWJWZWN0b3JzKG9bMF0sb1sxXSkuYWRkKG9bMF0pLHI9ZnB0KTtjb25zdCBkPW9bbCVpXSxwPW9bKGwrMSklaV07aWYodGhpcy5jbG9zZWR8fGwrMjxpP3M9b1sobCsyKSVpXTooZnB0LnN1YlZlY3RvcnMob1tpLTFdLG9baS0yXSkuYWRkKG9baS0xXSkscz1mcHQpLCJjZW50cmlwZXRhbCI9PT10aGlzLmN1cnZlVHlwZXx8ImNob3JkYWwiPT09dGhpcy5jdXJ2ZVR5cGUpe2NvbnN0IHQ9ImNob3JkYWwiPT09dGhpcy5jdXJ2ZVR5cGU/LjU6LjI1O2xldCBlPU1hdGgucG93KHIuZGlzdGFuY2VUb1NxdWFyZWQoZCksdCksbj1NYXRoLnBvdyhkLmRpc3RhbmNlVG9TcXVhcmVkKHApLHQpLG89TWF0aC5wb3cocC5kaXN0YW5jZVRvU3F1YXJlZChzKSx0KTtuPDFlLTQmJihuPTEpLGU8MWUtNCYmKGU9biksbzwxZS00JiYobz1uKSxncHQuaW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tKHIueCxkLngscC54LHMueCxlLG4sbyksaHB0LmluaXROb251bmlmb3JtQ2F0bXVsbFJvbShyLnksZC55LHAueSxzLnksZSxuLG8pLGJwdC5pbml0Tm9udW5pZm9ybUNhdG11bGxSb20oci56LGQueixwLnoscy56LGUsbixvKX1lbHNlImNhdG11bGxyb20iPT09dGhpcy5jdXJ2ZVR5cGUmJihncHQuaW5pdENhdG11bGxSb20oci54LGQueCxwLngscy54LHRoaXMudGVuc2lvbiksaHB0LmluaXRDYXRtdWxsUm9tKHIueSxkLnkscC55LHMueSx0aGlzLnRlbnNpb24pLGJwdC5pbml0Q2F0bXVsbFJvbShyLnosZC56LHAueixzLnosdGhpcy50ZW5zaW9uKSk7cmV0dXJuIG4uc2V0KGdwdC5jYWxjKGMpLGhwdC5jYWxjKGMpLGJwdC5jYWxjKGMpKSxufWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLnBvaW50cz1bXTtmb3IobGV0IGU9MCxuPXQucG9pbnRzLmxlbmd0aDtlPG47ZSsrKXRoaXMucG9pbnRzLnB1c2godC5wb2ludHNbZV0uY2xvbmUoKSk7cmV0dXJuIHRoaXMuY2xvc2VkPXQuY2xvc2VkLHRoaXMuY3VydmVUeXBlPXQuY3VydmVUeXBlLHRoaXMudGVuc2lvbj10LnRlbnNpb24sdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5wb2ludHMubGVuZ3RoO2U8bjtlKyspdC5wb2ludHMucHVzaCh0aGlzLnBvaW50c1tlXS50b0FycmF5KCkpO3JldHVybiB0LmNsb3NlZD10aGlzLmNsb3NlZCx0LmN1cnZlVHlwZT10aGlzLmN1cnZlVHlwZSx0LnRlbnNpb249dGhpcy50ZW5zaW9uLHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy5wb2ludHM9W107Zm9yKGxldCBlPTAsbj10LnBvaW50cy5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10LnBvaW50c1tlXTt0aGlzLnBvaW50cy5wdXNoKChuZXcgY2F0KS5mcm9tQXJyYXkobikpfXJldHVybiB0aGlzLmNsb3NlZD10LmNsb3NlZCx0aGlzLmN1cnZlVHlwZT10LmN1cnZlVHlwZSx0aGlzLnRlbnNpb249dC50ZW5zaW9uLHRoaXN9fWZ1bmN0aW9uIF9wdCh0LGUsbixvLGkpe2NvbnN0IGE9LjUqKG8tZSkscj0uNSooaS1uKSxzPXQqdDtyZXR1cm4oMipuLTIqbythK3IpKih0KnMpKygtMypuKzMqby0yKmEtcikqcythKnQrbn1mdW5jdGlvbiBDcHQodCxlLG4sbyl7cmV0dXJuKGZ1bmN0aW9uIGkodCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gbipuKmV9KSh0LGUpKyhmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIDIqKDEtdCkqdCplfSkodCxuKSsoZnVuY3Rpb24gcih0LGUpe3JldHVybiB0KnQqZX0pKHQsbyl9ZnVuY3Rpb24gTXB0KHQsZSxuLG8saSl7cmV0dXJuKGZ1bmN0aW9uIGEodCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gbipuKm4qZX0pKHQsZSkrKGZ1bmN0aW9uIHIodCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gMypuKm4qdCplfSkodCxuKSsoZnVuY3Rpb24gcyh0LGUpe3JldHVybiAzKigxLXQpKnQqdCplfSkodCxvKSsoZnVuY3Rpb24gbCh0LGUpe3JldHVybiB0KnQqdCplfSkodCxpKX15cHQucHJvdG90eXBlLmlzQ2F0bXVsbFJvbUN1cnZlMz0hMDtjbGFzcyB2cHQgZXh0ZW5kcyBkcHR7Y29uc3RydWN0b3IodD1uZXcgUWl0LGU9bmV3IFFpdCxuPW5ldyBRaXQsbz1uZXcgUWl0KXtzdXBlcigpLHRoaXMudHlwZT0iQ3ViaWNCZXppZXJDdXJ2ZSIsdGhpcy52MD10LHRoaXMudjE9ZSx0aGlzLnYyPW4sdGhpcy52Mz1vfWdldFBvaW50KHQsZT1uZXcgUWl0KXtjb25zdCBuPWUsbz10aGlzLnYwLGk9dGhpcy52MSxhPXRoaXMudjIscj10aGlzLnYzO3JldHVybiBuLnNldChNcHQodCxvLngsaS54LGEueCxyLngpLE1wdCh0LG8ueSxpLnksYS55LHIueSkpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzLnYzLmNvcHkodC52MyksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0LnYzPXRoaXMudjMudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXMudjMuZnJvbUFycmF5KHQudjMpLHRoaXN9fXZwdC5wcm90b3R5cGUuaXNDdWJpY0JlemllckN1cnZlPSEwO2NsYXNzIHhwdCBleHRlbmRzIGRwdHtjb25zdHJ1Y3Rvcih0PW5ldyBjYXQsZT1uZXcgY2F0LG49bmV3IGNhdCxvPW5ldyBjYXQpe3N1cGVyKCksdGhpcy50eXBlPSJDdWJpY0JlemllckN1cnZlMyIsdGhpcy52MD10LHRoaXMudjE9ZSx0aGlzLnYyPW4sdGhpcy52Mz1vfWdldFBvaW50KHQsZT1uZXcgY2F0KXtjb25zdCBuPWUsbz10aGlzLnYwLGk9dGhpcy52MSxhPXRoaXMudjIscj10aGlzLnYzO3JldHVybiBuLnNldChNcHQodCxvLngsaS54LGEueCxyLngpLE1wdCh0LG8ueSxpLnksYS55LHIueSksTXB0KHQsby56LGkueixhLnosci56KSksbn1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjAuY29weSh0LnYwKSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXMudjMuY29weSh0LnYzKSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHQudjM9dGhpcy52My50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MC5mcm9tQXJyYXkodC52MCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpcy52My5mcm9tQXJyYXkodC52MyksdGhpc319eHB0LnByb3RvdHlwZS5pc0N1YmljQmV6aWVyQ3VydmUzPSEwO2NsYXNzIE9wdCBleHRlbmRzIGRwdHtjb25zdHJ1Y3Rvcih0PW5ldyBRaXQsZT1uZXcgUWl0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUN1cnZlIix0aGlzLnYxPXQsdGhpcy52Mj1lfWdldFBvaW50KHQsZT1uZXcgUWl0KXtjb25zdCBuPWU7cmV0dXJuIDE9PT10P24uY29weSh0aGlzLnYyKToobi5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKSxuLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLnYxKSksbn1nZXRQb2ludEF0KHQsZSl7cmV0dXJuIHRoaXMuZ2V0UG9pbnQodCxlKX1nZXRUYW5nZW50KHQsZSl7Y29uc3Qgbj1lfHxuZXcgUWl0O3JldHVybiBuLmNvcHkodGhpcy52Mikuc3ViKHRoaXMudjEpLm5vcm1hbGl6ZSgpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fU9wdC5wcm90b3R5cGUuaXNMaW5lQ3VydmU9ITA7Y2xhc3MgUHB0IGV4dGVuZHMgZHB0e2NvbnN0cnVjdG9yKHQ9bmV3IFFpdCxlPW5ldyBRaXQsbj1uZXcgUWl0KXtzdXBlcigpLHRoaXMudHlwZT0iUXVhZHJhdGljQmV6aWVyQ3VydmUiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1ufWdldFBvaW50KHQsZT1uZXcgUWl0KXtjb25zdCBuPWUsbz10aGlzLnYwLGk9dGhpcy52MSxhPXRoaXMudjI7cmV0dXJuIG4uc2V0KENwdCh0LG8ueCxpLngsYS54KSxDcHQodCxvLnksaS55LGEueSkpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fVBwdC5wcm90b3R5cGUuaXNRdWFkcmF0aWNCZXppZXJDdXJ2ZT0hMDtjbGFzcyB3cHQgZXh0ZW5kcyBkcHR7Y29uc3RydWN0b3IodD1uZXcgY2F0LGU9bmV3IGNhdCxuPW5ldyBjYXQpe3N1cGVyKCksdGhpcy50eXBlPSJRdWFkcmF0aWNCZXppZXJDdXJ2ZTMiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1ufWdldFBvaW50KHQsZT1uZXcgY2F0KXtjb25zdCBuPWUsbz10aGlzLnYwLGk9dGhpcy52MSxhPXRoaXMudjI7cmV0dXJuIG4uc2V0KENwdCh0LG8ueCxpLngsYS54KSxDcHQodCxvLnksaS55LGEueSksQ3B0KHQsby56LGkueixhLnopKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYwLmZyb21BcnJheSh0LnYwKSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzfX13cHQucHJvdG90eXBlLmlzUXVhZHJhdGljQmV6aWVyQ3VydmUzPSEwO2NsYXNzIGtwdCBleHRlbmRzIGRwdHtjb25zdHJ1Y3Rvcih0PVtdKXtzdXBlcigpLHRoaXMudHlwZT0iU3BsaW5lQ3VydmUiLHRoaXMucG9pbnRzPXR9Z2V0UG9pbnQodCxlPW5ldyBRaXQpe2NvbnN0IG49ZSxvPXRoaXMucG9pbnRzLGk9KG8ubGVuZ3RoLTEpKnQsYT1NYXRoLmZsb29yKGkpLHI9aS1hLHM9b1swPT09YT9hOmEtMV0sbD1vW2FdLGM9b1thPm8ubGVuZ3RoLTI/by5sZW5ndGgtMTphKzFdLGQ9b1thPm8ubGVuZ3RoLTM/by5sZW5ndGgtMTphKzJdO3JldHVybiBuLnNldChfcHQocixzLngsbC54LGMueCxkLngpLF9wdChyLHMueSxsLnksYy55LGQueSkpLG59Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspdGhpcy5wb2ludHMucHVzaCh0LnBvaW50c1tlXS5jbG9uZSgpKTtyZXR1cm4gdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5wb2ludHMubGVuZ3RoO2U8bjtlKyspdC5wb2ludHMucHVzaCh0aGlzLnBvaW50c1tlXS50b0FycmF5KCkpO3JldHVybiB0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dC5wb2ludHNbZV07dGhpcy5wb2ludHMucHVzaCgobmV3IFFpdCkuZnJvbUFycmF5KG4pKX1yZXR1cm4gdGhpc319a3B0LnByb3RvdHlwZS5pc1NwbGluZUN1cnZlPSEwO3ZhciBTcHQ9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQXJjQ3VydmU6bXB0LENhdG11bGxSb21DdXJ2ZTM6eXB0LEN1YmljQmV6aWVyQ3VydmU6dnB0LEN1YmljQmV6aWVyQ3VydmUzOnhwdCxFbGxpcHNlQ3VydmU6cHB0LExpbmVDdXJ2ZTpPcHQsTGluZUN1cnZlMzpjbGFzcyBleHRlbmRzIGRwdHtjb25zdHJ1Y3Rvcih0PW5ldyBjYXQsZT1uZXcgY2F0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUN1cnZlMyIsdGhpcy5pc0xpbmVDdXJ2ZTM9ITAsdGhpcy52MT10LHRoaXMudjI9ZX1nZXRQb2ludCh0LGU9bmV3IGNhdCl7Y29uc3Qgbj1lO3JldHVybiAxPT09dD9uLmNvcHkodGhpcy52Mik6KG4uY29weSh0aGlzLnYyKS5zdWIodGhpcy52MSksbi5tdWx0aXBseVNjYWxhcih0KS5hZGQodGhpcy52MSkpLG59Z2V0UG9pbnRBdCh0LGUpe3JldHVybiB0aGlzLmdldFBvaW50KHQsZSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fSxRdWFkcmF0aWNCZXppZXJDdXJ2ZTpQcHQsUXVhZHJhdGljQmV6aWVyQ3VydmUzOndwdCxTcGxpbmVDdXJ2ZTprcHR9KTtmdW5jdGlvbiBEcHQodCxlLG4sbyxpKXtsZXQgYSxyO2lmKGk9PT0oZnVuY3Rpb24gcyh0LGUsbixvKXtsZXQgaT0wO2ZvcihsZXQgYT1lLHI9bi1vO2E8bjthKz1vKWkrPSh0W3JdLXRbYV0pKih0W2ErMV0rdFtyKzFdKSxyPWE7cmV0dXJuIGl9KSh0LGUsbixvKT4wKWZvcihhPWU7YTxuO2ErPW8pcj1LcHQoYSx0W2FdLHRbYSsxXSxyKTtlbHNlIGZvcihhPW4tbzthPj1lO2EtPW8pcj1LcHQoYSx0W2FdLHRbYSsxXSxyKTtyZXR1cm4gciYmR3B0KHIsci5uZXh0KSYmKEpwdChyKSxyPXIubmV4dCkscn1mdW5jdGlvbiBFcHQodCxlKXtpZighdClyZXR1cm4gdDtlfHwoZT10KTtsZXQgbixvPXQ7ZG97aWYobj0hMSxvLnN0ZWluZXJ8fCFHcHQobyxvLm5leHQpJiYwIT09VXB0KG8ucHJldixvLG8ubmV4dCkpbz1vLm5leHQ7ZWxzZXtpZihKcHQobyksbz1lPW8ucHJldixvPT09by5uZXh0KWJyZWFrO249ITB9fXdoaWxlKG58fG8hPT1lKTtyZXR1cm4gZX1mdW5jdGlvbiBScHQodCxlLG4sbyxpLGEscil7aWYoIXQpcmV0dXJuOyFyJiZhJiYoZnVuY3Rpb24gcyh0LGUsbixvKXtsZXQgaT10O2Rve251bGw9PT1pLnomJihpLno9THB0KGkueCxpLnksZSxuLG8pKSxpLnByZXZaPWkucHJldixpLm5leHRaPWkubmV4dCxpPWkubmV4dH13aGlsZShpIT09dCk7aS5wcmV2Wi5uZXh0Wj1udWxsLGkucHJldlo9bnVsbCwoZnVuY3Rpb24gYSh0KXtsZXQgZSxuLG8saSxhLHIscyxsLGM9MTtkb3tmb3Iobj10LHQ9bnVsbCxhPW51bGwscj0wO247KXtmb3IocisrLG89bixzPTAsZT0wO2U8YyYmKHMrKyxvPW8ubmV4dFosbyk7ZSsrKTtmb3IobD1jO3M+MHx8bD4wJiZvOykwIT09cyYmKDA9PT1sfHwhb3x8bi56PD1vLnopPyhpPW4sbj1uLm5leHRaLHMtLSk6KGk9byxvPW8ubmV4dFosbC0tKSxhP2EubmV4dFo9aTp0PWksaS5wcmV2Wj1hLGE9aTtuPW99YS5uZXh0Wj1udWxsLGMqPTJ9d2hpbGUocj4xKX0pKGkpfSkodCxvLGksYSk7bGV0IGwsYyxkPXQ7Zm9yKDt0LnByZXYhPT10Lm5leHQ7KWlmKGw9dC5wcmV2LGM9dC5uZXh0LGE/VHB0KHQsbyxpLGEpOkFwdCh0KSllLnB1c2gobC5pL24pLGUucHVzaCh0LmkvbiksZS5wdXNoKGMuaS9uKSxKcHQodCksdD1jLm5leHQsZD1jLm5leHQ7ZWxzZSBpZigodD1jKT09PWQpe3I/MT09PXI/UnB0KHQ9TnB0KEVwdCh0KSxlLG4pLGUsbixvLGksYSwyKToyPT09ciYmenB0KHQsZSxuLG8saSxhKTpScHQoRXB0KHQpLGUsbixvLGksYSwxKTticmVha319ZnVuY3Rpb24gQXB0KHQpe2NvbnN0IGU9dC5wcmV2LG49dCxvPXQubmV4dDtpZihVcHQoZSxuLG8pPj0wKXJldHVybiExO2xldCBpPXQubmV4dC5uZXh0O2Zvcig7aSE9PXQucHJldjspe2lmKFZwdChlLngsZS55LG4ueCxuLnksby54LG8ueSxpLngsaS55KSYmVXB0KGkucHJldixpLGkubmV4dCk+PTApcmV0dXJuITE7aT1pLm5leHR9cmV0dXJuITB9ZnVuY3Rpb24gVHB0KHQsZSxuLG8pe2NvbnN0IGk9dC5wcmV2LGE9dCxyPXQubmV4dDtpZihVcHQoaSxhLHIpPj0wKXJldHVybiExO2NvbnN0IHM9aS54PmEueD9pLng+ci54P2kueDpyLng6YS54PnIueD9hLng6ci54LGw9aS55PmEueT9pLnk+ci55P2kueTpyLnk6YS55PnIueT9hLnk6ci55LGM9THB0KGkueDxhLng/aS54PHIueD9pLng6ci54OmEueDxyLng/YS54OnIueCxpLnk8YS55P2kueTxyLnk/aS55OnIueTphLnk8ci55P2EueTpyLnksZSxuLG8pLGQ9THB0KHMsbCxlLG4sbyk7bGV0IHA9dC5wcmV2WixtPXQubmV4dFo7Zm9yKDtwJiZwLno+PWMmJm0mJm0uejw9ZDspe2lmKHAhPT10LnByZXYmJnAhPT10Lm5leHQmJlZwdChpLngsaS55LGEueCxhLnksci54LHIueSxwLngscC55KSYmVXB0KHAucHJldixwLHAubmV4dCk+PTApcmV0dXJuITE7aWYocD1wLnByZXZaLG0hPT10LnByZXYmJm0hPT10Lm5leHQmJlZwdChpLngsaS55LGEueCxhLnksci54LHIueSxtLngsbS55KSYmVXB0KG0ucHJldixtLG0ubmV4dCk+PTApcmV0dXJuITE7bT1tLm5leHRafWZvcig7cCYmcC56Pj1jOyl7aWYocCE9PXQucHJldiYmcCE9PXQubmV4dCYmVnB0KGkueCxpLnksYS54LGEueSxyLngsci55LHAueCxwLnkpJiZVcHQocC5wcmV2LHAscC5uZXh0KT49MClyZXR1cm4hMTtwPXAucHJldlp9Zm9yKDttJiZtLno8PWQ7KXtpZihtIT09dC5wcmV2JiZtIT09dC5uZXh0JiZWcHQoaS54LGkueSxhLngsYS55LHIueCxyLnksbS54LG0ueSkmJlVwdChtLnByZXYsbSxtLm5leHQpPj0wKXJldHVybiExO209bS5uZXh0Wn1yZXR1cm4hMH1mdW5jdGlvbiBOcHQodCxlLG4pe2xldCBvPXQ7ZG97Y29uc3QgaT1vLnByZXYsYT1vLm5leHQubmV4dDshR3B0KGksYSkmJldwdChpLG8sby5uZXh0LGEpJiZacHQoaSxhKSYmWnB0KGEsaSkmJihlLnB1c2goaS5pL24pLGUucHVzaChvLmkvbiksZS5wdXNoKGEuaS9uKSxKcHQobyksSnB0KG8ubmV4dCksbz10PWEpLG89by5uZXh0fXdoaWxlKG8hPT10KTtyZXR1cm4gRXB0KG8pfWZ1bmN0aW9uIHpwdCh0LGUsbixvLGksYSl7bGV0IHI9dDtkb3tsZXQgdD1yLm5leHQubmV4dDtmb3IoO3QhPT1yLnByZXY7KXtpZihyLmkhPT10LmkmJmpwdChyLHQpKXtsZXQgcz1YcHQocix0KTtyZXR1cm4gcj1FcHQocixyLm5leHQpLHM9RXB0KHMscy5uZXh0KSxScHQocixlLG4sbyxpLGEpLHZvaWQgUnB0KHMsZSxuLG8saSxhKX10PXQubmV4dH1yPXIubmV4dH13aGlsZShyIT09dCl9ZnVuY3Rpb24gSXB0KHQsZSl7cmV0dXJuIHQueC1lLnh9ZnVuY3Rpb24gSHB0KHQsZSl7aWYoZT0oZnVuY3Rpb24gbih0LGUpe2xldCBuPWU7Y29uc3Qgbz10LngsaT10Lnk7bGV0IGEscj0tMS8wO2Rve2lmKGk8PW4ueSYmaT49bi5uZXh0LnkmJm4ubmV4dC55IT09bi55KXtjb25zdCB0PW4ueCsoaS1uLnkpKihuLm5leHQueC1uLngpLyhuLm5leHQueS1uLnkpO2lmKHQ8PW8mJnQ+cil7aWYocj10LHQ9PT1vKXtpZihpPT09bi55KXJldHVybiBuO2lmKGk9PT1uLm5leHQueSlyZXR1cm4gbi5uZXh0fWE9bi54PG4ubmV4dC54P246bi5uZXh0fX1uPW4ubmV4dH13aGlsZShuIT09ZSk7aWYoIWEpcmV0dXJuIG51bGw7aWYobz09PXIpcmV0dXJuIGE7Y29uc3Qgcz1hLGw9YS54LGM9YS55O2xldCBkLHA9MS8wO249YTtkb3tvPj1uLngmJm4ueD49bCYmbyE9PW4ueCYmVnB0KGk8Yz9vOnIsaSxsLGMsaTxjP3I6byxpLG4ueCxuLnkpJiYoZD1NYXRoLmFicyhpLW4ueSkvKG8tbi54KSxacHQobix0KSYmKGQ8cHx8ZD09PXAmJihuLng+YS54fHxuLng9PT1hLngmJkZwdChhLG4pKSkmJihhPW4scD1kKSksbj1uLm5leHR9d2hpbGUobiE9PXMpO3JldHVybiBhfSkodCxlKSl7Y29uc3Qgbj1YcHQoZSx0KTtFcHQoZSxlLm5leHQpLEVwdChuLG4ubmV4dCl9fWZ1bmN0aW9uIEZwdCh0LGUpe3JldHVybiBVcHQodC5wcmV2LHQsZS5wcmV2KTwwJiZVcHQoZS5uZXh0LHQsdC5uZXh0KTwwfWZ1bmN0aW9uIExwdCh0LGUsbixvLGkpe3JldHVybih0PTE0MzE2NTU3NjUmKCh0PTg1ODk5MzQ1OSYoKHQ9MjUyNjQ1MTM1JigodD0xNjcxMTkzNSYoKHQ9MzI3NjcqKHQtbikqaSl8dDw8OCkpfHQ8PDQpKXx0PDwyKSl8dDw8MSkpfChlPTE0MzE2NTU3NjUmKChlPTg1ODk5MzQ1OSYoKGU9MjUyNjQ1MTM1JigoZT0xNjcxMTkzNSYoKGU9MzI3NjcqKGUtbykqaSl8ZTw8OCkpfGU8PDQpKXxlPDwyKSl8ZTw8MSkpPDwxfWZ1bmN0aW9uIEJwdCh0KXtsZXQgZT10LG49dDtkb3soZS54PG4ueHx8ZS54PT09bi54JiZlLnk8bi55KSYmKG49ZSksZT1lLm5leHR9d2hpbGUoZSE9PXQpO3JldHVybiBufWZ1bmN0aW9uIFZwdCh0LGUsbixvLGksYSxyLHMpe3JldHVybihpLXIpKihlLXMpLSh0LXIpKihhLXMpPj0wJiYodC1yKSooby1zKS0obi1yKSooZS1zKT49MCYmKG4tcikqKGEtcyktKGktcikqKG8tcyk+PTB9ZnVuY3Rpb24ganB0KHQsZSl7cmV0dXJuIHQubmV4dC5pIT09ZS5pJiZ0LnByZXYuaSE9PWUuaSYmIShmdW5jdGlvbiBuKHQsZSl7bGV0IG49dDtkb3tpZihuLmkhPT10LmkmJm4ubmV4dC5pIT09dC5pJiZuLmkhPT1lLmkmJm4ubmV4dC5pIT09ZS5pJiZXcHQobixuLm5leHQsdCxlKSlyZXR1cm4hMDtuPW4ubmV4dH13aGlsZShuIT09dCk7cmV0dXJuITF9KSh0LGUpJiYoWnB0KHQsZSkmJlpwdChlLHQpJiYoZnVuY3Rpb24gbyh0LGUpe2xldCBuPXQsbz0hMTtjb25zdCBpPSh0LngrZS54KS8yLGE9KHQueStlLnkpLzI7ZG97bi55PmEhPW4ubmV4dC55PmEmJm4ubmV4dC55IT09bi55JiZpPChuLm5leHQueC1uLngpKihhLW4ueSkvKG4ubmV4dC55LW4ueSkrbi54JiYobz0hbyksbj1uLm5leHR9d2hpbGUobiE9PXQpO3JldHVybiBvfSkodCxlKSYmKFVwdCh0LnByZXYsdCxlLnByZXYpfHxVcHQodCxlLnByZXYsZSkpfHxHcHQodCxlKSYmVXB0KHQucHJldix0LHQubmV4dCk+MCYmVXB0KGUucHJldixlLGUubmV4dCk+MCl9ZnVuY3Rpb24gVXB0KHQsZSxuKXtyZXR1cm4oZS55LXQueSkqKG4ueC1lLngpLShlLngtdC54KSoobi55LWUueSl9ZnVuY3Rpb24gR3B0KHQsZSl7cmV0dXJuIHQueD09PWUueCYmdC55PT09ZS55fWZ1bmN0aW9uIFdwdCh0LGUsbixvKXtjb25zdCBpPXFwdChVcHQodCxlLG4pKSxhPXFwdChVcHQodCxlLG8pKSxyPXFwdChVcHQobixvLHQpKSxzPXFwdChVcHQobixvLGUpKTtyZXR1cm4gaSE9PWEmJnIhPT1zfHwhKDAhPT1pfHwhWXB0KHQsbixlKSl8fCEoMCE9PWF8fCFZcHQodCxvLGUpKXx8ISgwIT09cnx8IVlwdChuLHQsbykpfHwhKDAhPT1zfHwhWXB0KG4sZSxvKSl9ZnVuY3Rpb24gWXB0KHQsZSxuKXtyZXR1cm4gZS54PD1NYXRoLm1heCh0Lngsbi54KSYmZS54Pj1NYXRoLm1pbih0Lngsbi54KSYmZS55PD1NYXRoLm1heCh0Lnksbi55KSYmZS55Pj1NYXRoLm1pbih0Lnksbi55KX1mdW5jdGlvbiBxcHQodCl7cmV0dXJuIHQ+MD8xOnQ8MD8tMTowfWZ1bmN0aW9uIFpwdCh0LGUpe3JldHVybiBVcHQodC5wcmV2LHQsdC5uZXh0KTwwP1VwdCh0LGUsdC5uZXh0KT49MCYmVXB0KHQsdC5wcmV2LGUpPj0wOlVwdCh0LGUsdC5wcmV2KTwwfHxVcHQodCx0Lm5leHQsZSk8MH1mdW5jdGlvbiBYcHQodCxlKXtjb25zdCBuPW5ldyBRcHQodC5pLHQueCx0LnkpLG89bmV3IFFwdChlLmksZS54LGUueSksaT10Lm5leHQsYT1lLnByZXY7cmV0dXJuIHQubmV4dD1lLGUucHJldj10LG4ubmV4dD1pLGkucHJldj1uLG8ubmV4dD1uLG4ucHJldj1vLGEubmV4dD1vLG8ucHJldj1hLG99ZnVuY3Rpb24gS3B0KHQsZSxuLG8pe2NvbnN0IGk9bmV3IFFwdCh0LGUsbik7cmV0dXJuIG8/KGkubmV4dD1vLm5leHQsaS5wcmV2PW8sby5uZXh0LnByZXY9aSxvLm5leHQ9aSk6KGkucHJldj1pLGkubmV4dD1pKSxpfWZ1bmN0aW9uIEpwdCh0KXt0Lm5leHQucHJldj10LnByZXYsdC5wcmV2Lm5leHQ9dC5uZXh0LHQucHJldlomJih0LnByZXZaLm5leHRaPXQubmV4dFopLHQubmV4dFomJih0Lm5leHRaLnByZXZaPXQucHJldlopfWZ1bmN0aW9uIFFwdCh0LGUsbil7dGhpcy5pPXQsdGhpcy54PWUsdGhpcy55PW4sdGhpcy5wcmV2PW51bGwsdGhpcy5uZXh0PW51bGwsdGhpcy56PW51bGwsdGhpcy5wcmV2Wj1udWxsLHRoaXMubmV4dFo9bnVsbCx0aGlzLnN0ZWluZXI9ITF9Y2xhc3MgJHB0e3N0YXRpYyBhcmVhKHQpe2NvbnN0IGU9dC5sZW5ndGg7bGV0IG49MDtmb3IobGV0IG89ZS0xLGk9MDtpPGU7bz1pKyspbis9dFtvXS54KnRbaV0ueS10W2ldLngqdFtvXS55O3JldHVybi41Km59c3RhdGljIGlzQ2xvY2tXaXNlKHQpe3JldHVybiAkcHQuYXJlYSh0KTwwfXN0YXRpYyB0cmlhbmd1bGF0ZVNoYXBlKHQsZSl7Y29uc3Qgbj1bXSxvPVtdLGk9W107dG10KHQpLGVtdChuLHQpO2xldCBhPXQubGVuZ3RoO2UuZm9yRWFjaCh0bXQpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW8ucHVzaChhKSxhKz1lW3RdLmxlbmd0aCxlbXQobixlW3RdKTtjb25zdCByPShmdW5jdGlvbih0LGUsbj0yKXtjb25zdCBvPWUmJmUubGVuZ3RoLGk9bz9lWzBdKm46dC5sZW5ndGg7bGV0IGE9RHB0KHQsMCxpLG4sITApO2NvbnN0IHI9W107aWYoIWF8fGEubmV4dD09PWEucHJldilyZXR1cm4gcjtsZXQgcyxsLGMsZCxwLG0sdTtpZihvJiYoYT0oZnVuY3Rpb24gZih0LGUsbixvKXtjb25zdCBpPVtdO2xldCBhLHIscyxsLGM7Zm9yKGE9MCxyPWUubGVuZ3RoO2E8cjthKyspcz1lW2FdKm8sbD1hPHItMT9lW2ErMV0qbzp0Lmxlbmd0aCxjPURwdCh0LHMsbCxvLCExKSxjPT09Yy5uZXh0JiYoYy5zdGVpbmVyPSEwKSxpLnB1c2goQnB0KGMpKTtmb3IoaS5zb3J0KElwdCksYT0wO2E8aS5sZW5ndGg7YSsrKUhwdChpW2FdLG4pLG49RXB0KG4sbi5uZXh0KTtyZXR1cm4gbn0pKHQsZSxhLG4pKSx0Lmxlbmd0aD44MCpuKXtzPWM9dFswXSxsPWQ9dFsxXTtmb3IobGV0IGU9bjtlPGk7ZSs9bilwPXRbZV0sbT10W2UrMV0scDxzJiYocz1wKSxtPGwmJihsPW0pLHA+YyYmKGM9cCksbT5kJiYoZD1tKTt1PU1hdGgubWF4KGMtcyxkLWwpLHU9MCE9PXU/MS91OjB9cmV0dXJuIFJwdChhLHIsbixzLGwsdSkscn0pKG4sbyk7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kz0zKWkucHVzaChyLnNsaWNlKHQsdCszKSk7cmV0dXJuIGl9fWZ1bmN0aW9uIHRtdCh0KXtjb25zdCBlPXQubGVuZ3RoO2U+MiYmdFtlLTFdLmVxdWFscyh0WzBdKSYmdC5wb3AoKX1mdW5jdGlvbiBlbXQodCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl0LnB1c2goZVtuXS54KSx0LnB1c2goZVtuXS55KX1jbGFzcyBubXQgZXh0ZW5kcyBxcnR7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMudHlwZT0iRXh0cnVkZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3NoYXBlczp0LG9wdGlvbnM6ZX0sdD1BcnJheS5pc0FycmF5KHQpP3Q6W3RdO2NvbnN0IG49dGhpcyxvPVtdLGk9W107Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKWEodFtlXSk7ZnVuY3Rpb24gYSh0KXtjb25zdCBhPVtdLHI9dm9pZCAwIT09ZS5jdXJ2ZVNlZ21lbnRzP2UuY3VydmVTZWdtZW50czoxMixzPXZvaWQgMCE9PWUuc3RlcHM/ZS5zdGVwczoxO2xldCBsPXZvaWQgMCE9PWUuZGVwdGg/ZS5kZXB0aDoxMDAsYz12b2lkIDA9PT1lLmJldmVsRW5hYmxlZHx8ZS5iZXZlbEVuYWJsZWQsZD12b2lkIDAhPT1lLmJldmVsVGhpY2tuZXNzP2UuYmV2ZWxUaGlja25lc3M6NixwPXZvaWQgMCE9PWUuYmV2ZWxTaXplP2UuYmV2ZWxTaXplOmQtMixtPXZvaWQgMCE9PWUuYmV2ZWxPZmZzZXQ/ZS5iZXZlbE9mZnNldDowLHU9dm9pZCAwIT09ZS5iZXZlbFNlZ21lbnRzP2UuYmV2ZWxTZWdtZW50czozO2NvbnN0IGY9ZS5leHRydWRlUGF0aCxnPXZvaWQgMCE9PWUuVVZHZW5lcmF0b3I/ZS5VVkdlbmVyYXRvcjpvbXQ7dm9pZCAwIT09ZS5hbW91bnQmJihjb25zb2xlLndhcm4oIlRIUkVFLkV4dHJ1ZGVCdWZmZXJHZW9tZXRyeTogYW1vdW50IGhhcyBiZWVuIHJlbmFtZWQgdG8gZGVwdGguIiksbD1lLmFtb3VudCk7bGV0IGgsYix5LF8sQyxNPSExO2YmJihoPWYuZ2V0U3BhY2VkUG9pbnRzKHMpLE09ITAsYz0hMSxiPWYuY29tcHV0ZUZyZW5ldEZyYW1lcyhzLCExKSx5PW5ldyBjYXQsXz1uZXcgY2F0LEM9bmV3IGNhdCksY3x8KHU9MCxkPTAscD0wLG09MCk7Y29uc3Qgdj10LmV4dHJhY3RQb2ludHMocik7bGV0IHg9di5zaGFwZTtjb25zdCBPPXYuaG9sZXM7aWYoISRwdC5pc0Nsb2NrV2lzZSh4KSl7eD14LnJldmVyc2UoKTtmb3IobGV0IHQ9MCxlPU8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9T1t0XTskcHQuaXNDbG9ja1dpc2UoZSkmJihPW3RdPWUucmV2ZXJzZSgpKX19Y29uc3QgUD0kcHQudHJpYW5ndWxhdGVTaGFwZSh4LE8pLHc9eDtmb3IobGV0IHQ9MCxlPU8ubGVuZ3RoO3Q8ZTt0KyspeD14LmNvbmNhdChPW3RdKTtmdW5jdGlvbiBrKHQsZSxuKXtyZXR1cm4gZXx8Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiB2ZWMgZG9lcyBub3QgZXhpc3QiKSxlLmNsb25lKCkubXVsdGlwbHlTY2FsYXIobikuYWRkKHQpfWNvbnN0IFM9eC5sZW5ndGgsRD1QLmxlbmd0aDtmdW5jdGlvbiBFKHQsZSxuKXtsZXQgbyxpLGE7Y29uc3Qgcj10LngtZS54LHM9dC55LWUueSxsPW4ueC10LngsYz1uLnktdC55LGQ9cipyK3MqcztpZihNYXRoLmFicyhyKmMtcypsKT5OdW1iZXIuRVBTSUxPTil7Y29uc3QgcD1NYXRoLnNxcnQoZCksbT1NYXRoLnNxcnQobCpsK2MqYyksdT1lLngtcy9wLGY9ZS55K3IvcCxnPSgobi54LWMvbS11KSpjLShuLnkrbC9tLWYpKmwpLyhyKmMtcypsKTtvPXUrcipnLXQueCxpPWYrcypnLXQueTtjb25zdCBoPW8qbytpKmk7aWYoaDw9MilyZXR1cm4gbmV3IFFpdChvLGkpO2E9TWF0aC5zcXJ0KGgvMil9ZWxzZXtsZXQgdD0hMTtyPk51bWJlci5FUFNJTE9OP2w+TnVtYmVyLkVQU0lMT04mJih0PSEwKTpyPC1OdW1iZXIuRVBTSUxPTj9sPC1OdW1iZXIuRVBTSUxPTiYmKHQ9ITApOk1hdGguc2lnbihzKT09PU1hdGguc2lnbihjKSYmKHQ9ITApLHQ/KG89LXMsaT1yLGE9TWF0aC5zcXJ0KGQpKToobz1yLGk9cyxhPU1hdGguc3FydChkLzIpKX1yZXR1cm4gbmV3IFFpdChvL2EsaS9hKX1jb25zdCBSPVtdO2ZvcihsZXQgdD0wLGU9dy5sZW5ndGgsbj1lLTEsbz10KzE7dDxlO3QrKyxuKyssbysrKW49PT1lJiYobj0wKSxvPT09ZSYmKG89MCksUlt0XT1FKHdbdF0sd1tuXSx3W29dKTtjb25zdCBBPVtdO2xldCBULE49Ui5jb25jYXQoKTtmb3IobGV0IHQ9MCxlPU8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9T1t0XTtUPVtdO2ZvcihsZXQgdD0wLG49ZS5sZW5ndGgsbz1uLTEsaT10KzE7dDxuO3QrKyxvKyssaSsrKW89PT1uJiYobz0wKSxpPT09biYmKGk9MCksVFt0XT1FKGVbdF0sZVtvXSxlW2ldKTtBLnB1c2goVCksTj1OLmNvbmNhdChUKX1mb3IobGV0IHQ9MDt0PHU7dCsrKXtjb25zdCBlPXQvdSxuPWQqTWF0aC5jb3MoZSpNYXRoLlBJLzIpLG89cCpNYXRoLnNpbihlKk1hdGguUEkvMikrbTtmb3IobGV0IHQ9MCxlPXcubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9ayh3W3RdLFJbdF0sbyk7SChlLngsZS55LC1uKX1mb3IobGV0IHQ9MCxlPU8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9T1t0XTtUPUFbdF07Zm9yKGxldCB0PTAsaT1lLmxlbmd0aDt0PGk7dCsrKXtjb25zdCBpPWsoZVt0XSxUW3RdLG8pO0goaS54LGkueSwtbil9fX1jb25zdCB6PXArbTtmb3IobGV0IHQ9MDt0PFM7dCsrKXtjb25zdCBlPWM/ayh4W3RdLE5bdF0seik6eFt0XTtNPyhfLmNvcHkoYi5ub3JtYWxzWzBdKS5tdWx0aXBseVNjYWxhcihlLngpLHkuY29weShiLmJpbm9ybWFsc1swXSkubXVsdGlwbHlTY2FsYXIoZS55KSxDLmNvcHkoaFswXSkuYWRkKF8pLmFkZCh5KSxIKEMueCxDLnksQy56KSk6SChlLngsZS55LDApfWZvcihsZXQgdD0xO3Q8PXM7dCsrKWZvcihsZXQgZT0wO2U8UztlKyspe2NvbnN0IG49Yz9rKHhbZV0sTltlXSx6KTp4W2VdO00/KF8uY29weShiLm5vcm1hbHNbdF0pLm11bHRpcGx5U2NhbGFyKG4ueCkseS5jb3B5KGIuYmlub3JtYWxzW3RdKS5tdWx0aXBseVNjYWxhcihuLnkpLEMuY29weShoW3RdKS5hZGQoXykuYWRkKHkpLEgoQy54LEMueSxDLnopKTpIKG4ueCxuLnksbC9zKnQpfWZvcihsZXQgdD11LTE7dD49MDt0LS0pe2NvbnN0IGU9dC91LG49ZCpNYXRoLmNvcyhlKk1hdGguUEkvMiksbz1wKk1hdGguc2luKGUqTWF0aC5QSS8yKSttO2ZvcihsZXQgdD0wLGU9dy5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1rKHdbdF0sUlt0XSxvKTtIKGUueCxlLnksbCtuKX1mb3IobGV0IHQ9MCxlPU8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9T1t0XTtUPUFbdF07Zm9yKGxldCB0PTAsaT1lLmxlbmd0aDt0PGk7dCsrKXtjb25zdCBpPWsoZVt0XSxUW3RdLG8pO00/SChpLngsaS55K2hbcy0xXS55LGhbcy0xXS54K24pOkgoaS54LGkueSxsK24pfX19ZnVuY3Rpb24gSSh0LGUpe2xldCBuPXQubGVuZ3RoO2Zvcig7LS1uPj0wOyl7Y29uc3Qgbz1uO2xldCBpPW4tMTtpPDAmJihpPXQubGVuZ3RoLTEpO2ZvcihsZXQgdD0wLG49cysyKnU7dDxuO3QrKyl7Y29uc3Qgbj1TKnQsYT1TKih0KzEpO0woZStvK24sZStpK24sZStpK2EsZStvK2EpfX19ZnVuY3Rpb24gSCh0LGUsbil7YS5wdXNoKHQpLGEucHVzaChlKSxhLnB1c2gobil9ZnVuY3Rpb24gRih0LGUsaSl7Qih0KSxCKGUpLEIoaSk7Y29uc3QgYT1vLmxlbmd0aC8zLHI9Zy5nZW5lcmF0ZVRvcFVWKG4sbyxhLTMsYS0yLGEtMSk7VihyWzBdKSxWKHJbMV0pLFYoclsyXSl9ZnVuY3Rpb24gTCh0LGUsaSxhKXtCKHQpLEIoZSksQihhKSxCKGUpLEIoaSksQihhKTtjb25zdCByPW8ubGVuZ3RoLzMscz1nLmdlbmVyYXRlU2lkZVdhbGxVVihuLG8sci02LHItMyxyLTIsci0xKTtWKHNbMF0pLFYoc1sxXSksVihzWzNdKSxWKHNbMV0pLFYoc1syXSksVihzWzNdKX1mdW5jdGlvbiBCKHQpe28ucHVzaChhWzMqdCswXSksby5wdXNoKGFbMyp0KzFdKSxvLnB1c2goYVszKnQrMl0pfWZ1bmN0aW9uIFYodCl7aS5wdXNoKHQueCksaS5wdXNoKHQueSl9IShmdW5jdGlvbiBqKCl7Y29uc3QgdD1vLmxlbmd0aC8zO2lmKGMpe2xldCB0PTAsZT1TKnQ7Zm9yKGxldCB0PTA7dDxEO3QrKyl7Y29uc3Qgbj1QW3RdO0YoblsyXStlLG5bMV0rZSxuWzBdK2UpfXQ9cysyKnUsZT1TKnQ7Zm9yKGxldCB0PTA7dDxEO3QrKyl7Y29uc3Qgbj1QW3RdO0YoblswXStlLG5bMV0rZSxuWzJdK2UpfX1lbHNle2ZvcihsZXQgdD0wO3Q8RDt0Kyspe2NvbnN0IGU9UFt0XTtGKGVbMl0sZVsxXSxlWzBdKX1mb3IobGV0IHQ9MDt0PEQ7dCsrKXtjb25zdCBlPVBbdF07RihlWzBdK1MqcyxlWzFdK1MqcyxlWzJdK1Mqcyl9fW4uYWRkR3JvdXAodCxvLmxlbmd0aC8zLXQsMCl9KSgpLChmdW5jdGlvbiBVKCl7Y29uc3QgdD1vLmxlbmd0aC8zO2xldCBlPTA7SSh3LGUpLGUrPXcubGVuZ3RoO2ZvcihsZXQgdD0wLG49Ty5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1PW3RdO0kobixlKSxlKz1uLmxlbmd0aH1uLmFkZEdyb3VwKHQsby5sZW5ndGgvMy10LDEpfSkoKX10aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBGcnQobywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgRnJ0KGksMikpLHRoaXMuY29tcHV0ZVZlcnRleE5vcm1hbHMoKX10b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybihmdW5jdGlvbiBlKHQsbixvKXtpZihvLnNoYXBlcz1bXSxBcnJheS5pc0FycmF5KHQpKWZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKylvLnNoYXBlcy5wdXNoKHRbZV0udXVpZCk7ZWxzZSBvLnNoYXBlcy5wdXNoKHQudXVpZCk7cmV0dXJuIHZvaWQgMCE9PW4uZXh0cnVkZVBhdGgmJihvLm9wdGlvbnMuZXh0cnVkZVBhdGg9bi5leHRydWRlUGF0aC50b0pTT04oKSksb30pKHRoaXMucGFyYW1ldGVycy5zaGFwZXMsdGhpcy5wYXJhbWV0ZXJzLm9wdGlvbnMsdCl9c3RhdGljIGZyb21KU09OKHQsZSl7Y29uc3Qgbj1bXTtmb3IobGV0IG89MCxpPXQuc2hhcGVzLmxlbmd0aDtvPGk7bysrKW4ucHVzaChlW3Quc2hhcGVzW29dXSk7Y29uc3Qgbz10Lm9wdGlvbnMuZXh0cnVkZVBhdGg7cmV0dXJuIHZvaWQgMCE9PW8mJih0Lm9wdGlvbnMuZXh0cnVkZVBhdGg9KG5ldyBTcHRbby50eXBlXSkuZnJvbUpTT04obykpLG5ldyBubXQobix0Lm9wdGlvbnMpfX1jb25zdCBvbXQ9e2dlbmVyYXRlVG9wVVY6ZnVuY3Rpb24odCxlLG4sbyxpKXtjb25zdCBhPWVbMypvXSxyPWVbMypvKzFdLHM9ZVszKmldLGw9ZVszKmkrMV07cmV0dXJuW25ldyBRaXQoZVszKm5dLGVbMypuKzFdKSxuZXcgUWl0KGEsciksbmV3IFFpdChzLGwpXX0sZ2VuZXJhdGVTaWRlV2FsbFVWOmZ1bmN0aW9uKHQsZSxuLG8saSxhKXtjb25zdCByPWVbMypuXSxzPWVbMypuKzFdLGw9ZVszKm4rMl0sYz1lWzMqb10sZD1lWzMqbysxXSxwPWVbMypvKzJdLG09ZVszKmldLHU9ZVszKmkrMV0sZj1lWzMqaSsyXSxnPWVbMyphXSxoPWVbMyphKzFdLGI9ZVszKmErMl07cmV0dXJuIE1hdGguYWJzKHMtZCk8TWF0aC5hYnMoci1jKT9bbmV3IFFpdChyLDEtbCksbmV3IFFpdChjLDEtcCksbmV3IFFpdChtLDEtZiksbmV3IFFpdChnLDEtYildOltuZXcgUWl0KHMsMS1sKSxuZXcgUWl0KGQsMS1wKSxuZXcgUWl0KHUsMS1mKSxuZXcgUWl0KGgsMS1iKV19fTtjbGFzcyBpbXQgZXh0ZW5kcyBxcnR7Y29uc3RydWN0b3IodCxlPTEyKXtzdXBlcigpLHRoaXMudHlwZT0iU2hhcGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtzaGFwZXM6dCxjdXJ2ZVNlZ21lbnRzOmV9O2NvbnN0IG49W10sbz1bXSxpPVtdLGE9W107bGV0IHI9MCxzPTA7aWYoITE9PT1BcnJheS5pc0FycmF5KHQpKWwodCk7ZWxzZSBmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylsKHRbZV0pLHRoaXMuYWRkR3JvdXAocixzLGUpLHIrPXMscz0wO2Z1bmN0aW9uIGwodCl7Y29uc3Qgcj1vLmxlbmd0aC8zLGw9dC5leHRyYWN0UG9pbnRzKGUpO2xldCBjPWwuc2hhcGU7Y29uc3QgZD1sLmhvbGVzOyExPT09JHB0LmlzQ2xvY2tXaXNlKGMpJiYoYz1jLnJldmVyc2UoKSk7Zm9yKGxldCB0PTAsZT1kLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWRbdF07ITA9PT0kcHQuaXNDbG9ja1dpc2UoZSkmJihkW3RdPWUucmV2ZXJzZSgpKX1jb25zdCBwPSRwdC50cmlhbmd1bGF0ZVNoYXBlKGMsZCk7Zm9yKGxldCB0PTAsZT1kLmxlbmd0aDt0PGU7dCsrKWM9Yy5jb25jYXQoZFt0XSk7Zm9yKGxldCB0PTAsZT1jLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWNbdF07by5wdXNoKGUueCxlLnksMCksaS5wdXNoKDAsMCwxKSxhLnB1c2goZS54LGUueSl9Zm9yKGxldCB0PTAsZT1wLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPXBbdF07bi5wdXNoKGVbMF0rcixlWzFdK3IsZVsyXStyKSxzKz0zfX10aGlzLnNldEluZGV4KG4pLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IEZydChvLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgRnJ0KGksMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IEZydChhLDIpKX10b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybihmdW5jdGlvbiBlKHQsbil7aWYobi5zaGFwZXM9W10sQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IGU9MCxvPXQubGVuZ3RoO2U8bztlKyspbi5zaGFwZXMucHVzaCh0W2VdLnV1aWQpO2Vsc2Ugbi5zaGFwZXMucHVzaCh0LnV1aWQpO3JldHVybiBufSkodGhpcy5wYXJhbWV0ZXJzLnNoYXBlcyx0KX1zdGF0aWMgZnJvbUpTT04odCxlKXtjb25zdCBuPVtdO2ZvcihsZXQgbz0wLGk9dC5zaGFwZXMubGVuZ3RoO288aTtvKyspbi5wdXNoKGVbdC5zaGFwZXNbb11dKTtyZXR1cm4gbmV3IGltdChuLHQuY3VydmVTZWdtZW50cyl9fShjbGFzcyBleHRlbmRzIE9ydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iU2hhZG93TWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IFJydCgwKSx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXN9fSkucHJvdG90eXBlLmlzU2hhZG93TWF0ZXJpYWw9ITA7Y2xhc3MgYW10IGV4dGVuZHMgT3J0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIn0sdGhpcy50eXBlPSJNZXNoU3RhbmRhcmRNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgUnJ0KDE2Nzc3MjE1KSx0aGlzLnJvdWdobmVzcz0xLHRoaXMubWV0YWxuZXNzPTAsdGhpcy5tYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZT1uZXcgUnJ0KDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT0wLHRoaXMubm9ybWFsU2NhbGU9bmV3IFFpdCgxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMucm91Z2huZXNzTWFwPW51bGwsdGhpcy5tZXRhbG5lc3NNYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5lbnZNYXA9bnVsbCx0aGlzLmVudk1hcEludGVuc2l0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIn0sdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMucm91Z2huZXNzPXQucm91Z2huZXNzLHRoaXMubWV0YWxuZXNzPXQubWV0YWxuZXNzLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMucm91Z2huZXNzTWFwPXQucm91Z2huZXNzTWFwLHRoaXMubWV0YWxuZXNzTWFwPXQubWV0YWxuZXNzTWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmVudk1hcD10LmVudk1hcCx0aGlzLmVudk1hcEludGVuc2l0eT10LmVudk1hcEludGVuc2l0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319YW10LnByb3RvdHlwZS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsPSEwLGNsYXNzIGV4dGVuZHMgYW10e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIixQSFlTSUNBTDoiIn0sdGhpcy50eXBlPSJNZXNoUGh5c2ljYWxNYXRlcmlhbCIsdGhpcy5jbGVhcmNvYXQ9MCx0aGlzLmNsZWFyY29hdE1hcD1udWxsLHRoaXMuY2xlYXJjb2F0Um91Z2huZXNzPTAsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9bnVsbCx0aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlPW5ldyBRaXQoMSwxKSx0aGlzLmNsZWFyY29hdE5vcm1hbE1hcD1udWxsLHRoaXMucmVmbGVjdGl2aXR5PS41LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJpb3IiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMSsuNCp0aGlzLnJlZmxlY3Rpdml0eSkvKDEtLjQqdGhpcy5yZWZsZWN0aXZpdHkpfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZWZsZWN0aXZpdHk9Wml0KDIuNSoodC0xKS8odCsxKSwwLDEpfX0pLHRoaXMuc2hlZW49bnVsbCx0aGlzLnRyYW5zbWlzc2lvbj0wLHRoaXMudHJhbnNtaXNzaW9uTWFwPW51bGwsdGhpcy50aGlja25lc3M9LjAxLHRoaXMudGhpY2tuZXNzTWFwPW51bGwsdGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlPTAsdGhpcy5hdHRlbnVhdGlvblRpbnQ9bmV3IFJydCgxLDEsMSksdGhpcy5zcGVjdWxhckludGVuc2l0eT0xLHRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXA9bnVsbCx0aGlzLnNwZWN1bGFyVGludD1uZXcgUnJ0KDEsMSwxKSx0aGlzLnNwZWN1bGFyVGludE1hcD1udWxsLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIixQSFlTSUNBTDoiIn0sdGhpcy5jbGVhcmNvYXQ9dC5jbGVhcmNvYXQsdGhpcy5jbGVhcmNvYXRNYXA9dC5jbGVhcmNvYXRNYXAsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3M9dC5jbGVhcmNvYXRSb3VnaG5lc3MsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9dC5jbGVhcmNvYXRSb3VnaG5lc3NNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxNYXA9dC5jbGVhcmNvYXROb3JtYWxNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxTY2FsZS5jb3B5KHQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUpLHRoaXMucmVmbGVjdGl2aXR5PXQucmVmbGVjdGl2aXR5LHRoaXMuc2hlZW49dC5zaGVlbj8odGhpcy5zaGVlbnx8bmV3IFJydCkuY29weSh0LnNoZWVuKTpudWxsLHRoaXMudHJhbnNtaXNzaW9uPXQudHJhbnNtaXNzaW9uLHRoaXMudHJhbnNtaXNzaW9uTWFwPXQudHJhbnNtaXNzaW9uTWFwLHRoaXMudGhpY2tuZXNzPXQudGhpY2tuZXNzLHRoaXMudGhpY2tuZXNzTWFwPXQudGhpY2tuZXNzTWFwLHRoaXMuYXR0ZW51YXRpb25EaXN0YW5jZT10LmF0dGVudWF0aW9uRGlzdGFuY2UsdGhpcy5hdHRlbnVhdGlvblRpbnQuY29weSh0LmF0dGVudWF0aW9uVGludCksdGhpcy5zcGVjdWxhckludGVuc2l0eT10LnNwZWN1bGFySW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXA9dC5zcGVjdWxhckludGVuc2l0eU1hcCx0aGlzLnNwZWN1bGFyVGludC5jb3B5KHQuc3BlY3VsYXJUaW50KSx0aGlzLnNwZWN1bGFyVGludE1hcD10LnNwZWN1bGFyVGludE1hcCx0aGlzfX0ucHJvdG90eXBlLmlzTWVzaFBoeXNpY2FsTWF0ZXJpYWw9ITAsY2xhc3MgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hQaG9uZ01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBScnQoMTY3NzcyMTUpLHRoaXMuc3BlY3VsYXI9bmV3IFJydCgxMTE4NDgxKSx0aGlzLnNoaW5pbmVzcz0zMCx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyBScnQoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPTAsdGhpcy5ub3JtYWxTY2FsZT1uZXcgUWl0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5zcGVjdWxhck1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuY29tYmluZT0wLHRoaXMucmVmbGVjdGl2aXR5PTEsdGhpcy5yZWZyYWN0aW9uUmF0aW89Ljk4LHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuZmxhdFNoYWRpbmc9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5zcGVjdWxhci5jb3B5KHQuc3BlY3VsYXIpLHRoaXMuc2hpbmluZXNzPXQuc2hpbmluZXNzLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319LnByb3RvdHlwZS5pc01lc2hQaG9uZ01hdGVyaWFsPSEwLGNsYXNzIGV4dGVuZHMgT3J0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtUT09OOiIifSx0aGlzLnR5cGU9Ik1lc2hUb29uTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IFJydCgxNjc3NzIxNSksdGhpcy5tYXA9bnVsbCx0aGlzLmdyYWRpZW50TWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3IFJydCgwKSx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZU1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9MCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBRaXQoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5ncmFkaWVudE1hcD10LmdyYWRpZW50TWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX0ucHJvdG90eXBlLmlzTWVzaFRvb25NYXRlcmlhbD0hMCxjbGFzcyBleHRlbmRzIE9ydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaE5vcm1hbE1hdGVyaWFsIix0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPTAsdGhpcy5ub3JtYWxTY2FsZT1uZXcgUWl0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLmZvZz0hMSx0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319LnByb3RvdHlwZS5pc01lc2hOb3JtYWxNYXRlcmlhbD0hMCxjbGFzcyBleHRlbmRzIE9ydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaExhbWJlcnRNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgUnJ0KDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyBScnQoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLnNwZWN1bGFyTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5jb21iaW5lPTAsdGhpcy5yZWZsZWN0aXZpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuZW1pc3NpdmUuY29weSh0LmVtaXNzaXZlKSx0aGlzLmVtaXNzaXZlTWFwPXQuZW1pc3NpdmVNYXAsdGhpcy5lbWlzc2l2ZUludGVuc2l0eT10LmVtaXNzaXZlSW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX0ucHJvdG90eXBlLmlzTWVzaExhbWJlcnRNYXRlcmlhbD0hMCxjbGFzcyBleHRlbmRzIE9ydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGVmaW5lcz17TUFUQ0FQOiIifSx0aGlzLnR5cGU9Ik1lc2hNYXRjYXBNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgUnJ0KDE2Nzc3MjE1KSx0aGlzLm1hdGNhcD1udWxsLHRoaXMubWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT0wLHRoaXMubm9ybWFsU2NhbGU9bmV3IFFpdCgxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtNQVRDQVA6IiJ9LHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hdGNhcD10Lm1hdGNhcCx0aGlzLm1hcD10Lm1hcCx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319LnByb3RvdHlwZS5pc01lc2hNYXRjYXBNYXRlcmlhbD0hMCxjbGFzcyBleHRlbmRzIHFkdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZURhc2hlZE1hdGVyaWFsIix0aGlzLnNjYWxlPTEsdGhpcy5kYXNoU2l6ZT0zLHRoaXMuZ2FwU2l6ZT0xLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5zY2FsZT10LnNjYWxlLHRoaXMuZGFzaFNpemU9dC5kYXNoU2l6ZSx0aGlzLmdhcFNpemU9dC5nYXBTaXplLHRoaXN9fS5wcm90b3R5cGUuaXNMaW5lRGFzaGVkTWF0ZXJpYWw9ITA7Y29uc3Qgcm10PXthcnJheVNsaWNlOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gcm10LmlzVHlwZWRBcnJheSh0KT9uZXcgdC5jb25zdHJ1Y3Rvcih0LnN1YmFycmF5KGUsdm9pZCAwIT09bj9uOnQubGVuZ3RoKSk6dC5zbGljZShlLG4pfSxjb252ZXJ0QXJyYXk6ZnVuY3Rpb24odCxlLG4pe3JldHVybiF0fHwhbiYmdC5jb25zdHJ1Y3Rvcj09PWU/dDoibnVtYmVyIj09dHlwZW9mIGUuQllURVNfUEVSX0VMRU1FTlQ/bmV3IGUodCk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCl9LGlzVHlwZWRBcnJheTpmdW5jdGlvbih0KXtyZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KHQpJiYhKHQgaW5zdGFuY2VvZiBEYXRhVmlldyl9LGdldEtleWZyYW1lT3JkZXI6ZnVuY3Rpb24odCl7Y29uc3QgZT10Lmxlbmd0aCxuPW5ldyBBcnJheShlKTtmb3IobGV0IHQ9MDt0IT09ZTsrK3Qpblt0XT10O3JldHVybiBuLnNvcnQoKGZ1bmN0aW9uIG8oZSxuKXtyZXR1cm4gdFtlXS10W25dfSkpLG59LHNvcnRlZEFycmF5OmZ1bmN0aW9uKHQsZSxuKXtjb25zdCBvPXQubGVuZ3RoLGk9bmV3IHQuY29uc3RydWN0b3Iobyk7Zm9yKGxldCBhPTAscj0wO3IhPT1vOysrYSl7Y29uc3Qgbz1uW2FdKmU7Zm9yKGxldCBuPTA7biE9PWU7KytuKWlbcisrXT10W28rbl19cmV0dXJuIGl9LGZsYXR0ZW5KU09OOmZ1bmN0aW9uKHQsZSxuLG8pe2xldCBpPTEsYT10WzBdO2Zvcig7dm9pZCAwIT09YSYmdm9pZCAwPT09YVtvXTspYT10W2krK107aWYodm9pZCAwPT09YSlyZXR1cm47bGV0IHI9YVtvXTtpZih2b2lkIDAhPT1yKWlmKEFycmF5LmlzQXJyYXkocikpZG97cj1hW29dLHZvaWQgMCE9PXImJihlLnB1c2goYS50aW1lKSxuLnB1c2guYXBwbHkobixyKSksYT10W2krK119d2hpbGUodm9pZCAwIT09YSk7ZWxzZSBpZih2b2lkIDAhPT1yLnRvQXJyYXkpZG97cj1hW29dLHZvaWQgMCE9PXImJihlLnB1c2goYS50aW1lKSxyLnRvQXJyYXkobixuLmxlbmd0aCkpLGE9dFtpKytdfXdoaWxlKHZvaWQgMCE9PWEpO2Vsc2UgZG97cj1hW29dLHZvaWQgMCE9PXImJihlLnB1c2goYS50aW1lKSxuLnB1c2gocikpLGE9dFtpKytdfXdoaWxlKHZvaWQgMCE9PWEpfSxzdWJjbGlwOmZ1bmN0aW9uKHQsZSxuLG8saT0zMCl7Y29uc3QgYT10LmNsb25lKCk7YS5uYW1lPWU7Y29uc3Qgcj1bXTtmb3IobGV0IHQ9MDt0PGEudHJhY2tzLmxlbmd0aDsrK3Qpe2NvbnN0IGU9YS50cmFja3NbdF0scz1lLmdldFZhbHVlU2l6ZSgpLGw9W10sYz1bXTtmb3IobGV0IHQ9MDt0PGUudGltZXMubGVuZ3RoOysrdCl7Y29uc3QgYT1lLnRpbWVzW3RdKmk7aWYoIShhPG58fGE+PW8pKXtsLnB1c2goZS50aW1lc1t0XSk7Zm9yKGxldCBuPTA7bjxzOysrbiljLnB1c2goZS52YWx1ZXNbdCpzK25dKX19MCE9PWwubGVuZ3RoJiYoZS50aW1lcz1ybXQuY29udmVydEFycmF5KGwsZS50aW1lcy5jb25zdHJ1Y3RvciksZS52YWx1ZXM9cm10LmNvbnZlcnRBcnJheShjLGUudmFsdWVzLmNvbnN0cnVjdG9yKSxyLnB1c2goZSkpfWEudHJhY2tzPXI7bGV0IHM9MS8wO2ZvcihsZXQgdD0wO3Q8YS50cmFja3MubGVuZ3RoOysrdClzPmEudHJhY2tzW3RdLnRpbWVzWzBdJiYocz1hLnRyYWNrc1t0XS50aW1lc1swXSk7Zm9yKGxldCB0PTA7dDxhLnRyYWNrcy5sZW5ndGg7Kyt0KWEudHJhY2tzW3RdLnNoaWZ0KC0xKnMpO3JldHVybiBhLnJlc2V0RHVyYXRpb24oKSxhfSxtYWtlQ2xpcEFkZGl0aXZlOmZ1bmN0aW9uKHQsZT0wLG49dCxvPTMwKXtvPD0wJiYobz0zMCk7Y29uc3QgaT1uLnRyYWNrcy5sZW5ndGgsYT1lL287Zm9yKGxldCBlPTA7ZTxpOysrZSl7Y29uc3Qgbz1uLnRyYWNrc1tlXSxpPW8uVmFsdWVUeXBlTmFtZTtpZigiYm9vbCI9PT1pfHwic3RyaW5nIj09PWkpY29udGludWU7Y29uc3Qgcj10LnRyYWNrcy5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5uYW1lPT09by5uYW1lJiZ0LlZhbHVlVHlwZU5hbWU9PT1pfSkpO2lmKHZvaWQgMD09PXIpY29udGludWU7bGV0IHM9MDtjb25zdCBsPW8uZ2V0VmFsdWVTaXplKCk7by5jcmVhdGVJbnRlcnBvbGFudC5pc0ludGVycG9sYW50RmFjdG9yeU1ldGhvZEdMVEZDdWJpY1NwbGluZSYmKHM9bC8zKTtsZXQgYz0wO2NvbnN0IGQ9ci5nZXRWYWx1ZVNpemUoKTtyLmNyZWF0ZUludGVycG9sYW50LmlzSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kR0xURkN1YmljU3BsaW5lJiYoYz1kLzMpO2NvbnN0IHA9by50aW1lcy5sZW5ndGgtMTtsZXQgbTtpZihhPD1vLnRpbWVzWzBdKW09cm10LmFycmF5U2xpY2Uoby52YWx1ZXMscyxsLXMpO2Vsc2UgaWYoYT49by50aW1lc1twXSl7Y29uc3QgdD1wKmwrczttPXJtdC5hcnJheVNsaWNlKG8udmFsdWVzLHQsdCtsLXMpfWVsc2V7Y29uc3QgdD1vLmNyZWF0ZUludGVycG9sYW50KCksZT1zLG49bC1zO3QuZXZhbHVhdGUoYSksbT1ybXQuYXJyYXlTbGljZSh0LnJlc3VsdEJ1ZmZlcixlLG4pfSJxdWF0ZXJuaW9uIj09PWkmJihuZXcgbGF0KS5mcm9tQXJyYXkobSkubm9ybWFsaXplKCkuY29uanVnYXRlKCkudG9BcnJheShtKTtjb25zdCB1PXIudGltZXMubGVuZ3RoO2ZvcihsZXQgdD0wO3Q8dTsrK3Qpe2NvbnN0IGU9dCpkK2M7aWYoInF1YXRlcm5pb24iPT09aSlsYXQubXVsdGlwbHlRdWF0ZXJuaW9uc0ZsYXQoci52YWx1ZXMsZSxtLDAsci52YWx1ZXMsZSk7ZWxzZXtjb25zdCB0PWQtMipjO2ZvcihsZXQgbj0wO248dDsrK24pci52YWx1ZXNbZStuXS09bVtuXX19fXJldHVybiB0LmJsZW5kTW9kZT0yNTAxLHR9fTtjbGFzcyBzbXR7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnM9dCx0aGlzLl9jYWNoZWRJbmRleD0wLHRoaXMucmVzdWx0QnVmZmVyPXZvaWQgMCE9PW8/bzpuZXcgZS5jb25zdHJ1Y3RvcihuKSx0aGlzLnNhbXBsZVZhbHVlcz1lLHRoaXMudmFsdWVTaXplPW4sdGhpcy5zZXR0aW5ncz1udWxsLHRoaXMuRGVmYXVsdFNldHRpbmdzXz17fX1ldmFsdWF0ZSh0KXtjb25zdCBlPXRoaXMucGFyYW1ldGVyUG9zaXRpb25zO2xldCBuPXRoaXMuX2NhY2hlZEluZGV4LG89ZVtuXSxpPWVbbi0xXTt0OntlOntsZXQgYTtuOntvOmlmKCEodDxvKSl7Zm9yKGxldCBhPW4rMjs7KXtpZih2b2lkIDA9PT1vKXtpZih0PGkpYnJlYWsgbztyZXR1cm4gbj1lLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1uLHRoaXMuYWZ0ZXJFbmRfKG4tMSx0LGkpfWlmKG49PT1hKWJyZWFrO2lmKGk9byxvPWVbKytuXSx0PG8pYnJlYWsgZX1hPWUubGVuZ3RoO2JyZWFrIG59aWYodD49aSlicmVhayB0O3tjb25zdCByPWVbMV07dDxyJiYobj0yLGk9cik7Zm9yKGxldCBhPW4tMjs7KXtpZih2b2lkIDA9PT1pKXJldHVybiB0aGlzLl9jYWNoZWRJbmRleD0wLHRoaXMuYmVmb3JlU3RhcnRfKDAsdCxvKTtpZihuPT09YSlicmVhaztpZihvPWksaT1lWy0tbi0xXSx0Pj1pKWJyZWFrIGV9YT1uLG49MH19Zm9yKDtuPGE7KXtjb25zdCBvPW4rYT4+PjE7dDxlW29dP2E9bzpuPW8rMX1pZihvPWVbbl0saT1lW24tMV0sdm9pZCAwPT09aSlyZXR1cm4gdGhpcy5fY2FjaGVkSW5kZXg9MCx0aGlzLmJlZm9yZVN0YXJ0XygwLHQsbyk7aWYodm9pZCAwPT09bylyZXR1cm4gbj1lLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1uLHRoaXMuYWZ0ZXJFbmRfKG4tMSxpLHQpfXRoaXMuX2NhY2hlZEluZGV4PW4sdGhpcy5pbnRlcnZhbENoYW5nZWRfKG4saSxvKX1yZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZV8obixpLHQsbyl9Z2V0U2V0dGluZ3NfKCl7cmV0dXJuIHRoaXMuc2V0dGluZ3N8fHRoaXMuRGVmYXVsdFNldHRpbmdzX31jb3B5U2FtcGxlVmFsdWVfKHQpe2NvbnN0IGU9dGhpcy5yZXN1bHRCdWZmZXIsbj10aGlzLnNhbXBsZVZhbHVlcyxvPXRoaXMudmFsdWVTaXplLGk9dCpvO2ZvcihsZXQgdD0wO3QhPT1vOysrdCllW3RdPW5baSt0XTtyZXR1cm4gZX1pbnRlcnBvbGF0ZV8oKXt0aHJvdyBuZXcgRXJyb3IoImNhbGwgdG8gYWJzdHJhY3QgbWV0aG9kIil9aW50ZXJ2YWxDaGFuZ2VkXygpe319c210LnByb3RvdHlwZS5iZWZvcmVTdGFydF89c210LnByb3RvdHlwZS5jb3B5U2FtcGxlVmFsdWVfLHNtdC5wcm90b3R5cGUuYWZ0ZXJFbmRfPXNtdC5wcm90b3R5cGUuY29weVNhbXBsZVZhbHVlXztjbGFzcyBsbXQgZXh0ZW5kcyBzbXR7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCxlLG4sbyksdGhpcy5fd2VpZ2h0UHJldj0tMCx0aGlzLl9vZmZzZXRQcmV2PS0wLHRoaXMuX3dlaWdodE5leHQ9LTAsdGhpcy5fb2Zmc2V0TmV4dD0tMCx0aGlzLkRlZmF1bHRTZXR0aW5nc189e2VuZGluZ1N0YXJ0OkFpdCxlbmRpbmdFbmQ6QWl0fX1pbnRlcnZhbENoYW5nZWRfKHQsZSxuKXtjb25zdCBvPXRoaXMucGFyYW1ldGVyUG9zaXRpb25zO2xldCBpPXQtMixhPXQrMSxyPW9baV0scz1vW2FdO2lmKHZvaWQgMD09PXIpc3dpdGNoKHRoaXMuZ2V0U2V0dGluZ3NfKCkuZW5kaW5nU3RhcnQpe2Nhc2UgVGl0Omk9dCxyPTIqZS1uO2JyZWFrO2Nhc2UgTml0Omk9by5sZW5ndGgtMixyPWUrb1tpXS1vW2krMV07YnJlYWs7ZGVmYXVsdDppPXQscj1ufWlmKHZvaWQgMD09PXMpc3dpdGNoKHRoaXMuZ2V0U2V0dGluZ3NfKCkuZW5kaW5nRW5kKXtjYXNlIFRpdDphPXQscz0yKm4tZTticmVhaztjYXNlIE5pdDphPTEscz1uK29bMV0tb1swXTticmVhaztkZWZhdWx0OmE9dC0xLHM9ZX1jb25zdCBsPS41KihuLWUpLGM9dGhpcy52YWx1ZVNpemU7dGhpcy5fd2VpZ2h0UHJldj1sLyhlLXIpLHRoaXMuX3dlaWdodE5leHQ9bC8ocy1uKSx0aGlzLl9vZmZzZXRQcmV2PWkqYyx0aGlzLl9vZmZzZXROZXh0PWEqY31pbnRlcnBvbGF0ZV8odCxlLG4sbyl7Y29uc3QgaT10aGlzLnJlc3VsdEJ1ZmZlcixhPXRoaXMuc2FtcGxlVmFsdWVzLHI9dGhpcy52YWx1ZVNpemUscz10KnIsbD1zLXIsYz10aGlzLl9vZmZzZXRQcmV2LGQ9dGhpcy5fb2Zmc2V0TmV4dCxwPXRoaXMuX3dlaWdodFByZXYsbT10aGlzLl93ZWlnaHROZXh0LHU9KG4tZSkvKG8tZSksZj11KnUsZz1mKnUsaD0tcCpnKzIqcCpmLXAqdSxiPSgxK3ApKmcrKC0xLjUtMipwKSpmKygtLjUrcCkqdSsxLHk9KC0xLW0pKmcrKDEuNSttKSpmKy41KnUsXz1tKmctbSpmO2ZvcihsZXQgdD0wO3QhPT1yOysrdClpW3RdPWgqYVtjK3RdK2IqYVtsK3RdK3kqYVtzK3RdK18qYVtkK3RdO3JldHVybiBpfX1jbGFzcyBjbXQgZXh0ZW5kcyBzbXR7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCxlLG4sbyl9aW50ZXJwb2xhdGVfKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5yZXN1bHRCdWZmZXIsYT10aGlzLnNhbXBsZVZhbHVlcyxyPXRoaXMudmFsdWVTaXplLHM9dCpyLGw9cy1yLGM9KG4tZSkvKG8tZSksZD0xLWM7Zm9yKGxldCB0PTA7dCE9PXI7Kyt0KWlbdF09YVtsK3RdKmQrYVtzK3RdKmM7cmV0dXJuIGl9fWNsYXNzIGRtdCBleHRlbmRzIHNtdHtjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0LGUsbixvKX1pbnRlcnBvbGF0ZV8odCl7cmV0dXJuIHRoaXMuY29weVNhbXBsZVZhbHVlXyh0LTEpfX1jbGFzcyBwbXR7Y29uc3RydWN0b3IodCxlLG4sbyl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IHRyYWNrIG5hbWUgaXMgdW5kZWZpbmVkIik7aWYodm9pZCAwPT09ZXx8MD09PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogbm8ga2V5ZnJhbWVzIGluIHRyYWNrIG5hbWVkICIrdCk7dGhpcy5uYW1lPXQsdGhpcy50aW1lcz1ybXQuY29udmVydEFycmF5KGUsdGhpcy5UaW1lQnVmZmVyVHlwZSksdGhpcy52YWx1ZXM9cm10LmNvbnZlcnRBcnJheShuLHRoaXMuVmFsdWVCdWZmZXJUeXBlKSx0aGlzLnNldEludGVycG9sYXRpb24ob3x8dGhpcy5EZWZhdWx0SW50ZXJwb2xhdGlvbil9c3RhdGljIHRvSlNPTih0KXtjb25zdCBlPXQuY29uc3RydWN0b3I7bGV0IG47aWYoZS50b0pTT04hPT10aGlzLnRvSlNPTiluPWUudG9KU09OKHQpO2Vsc2V7bj17bmFtZTp0Lm5hbWUsdGltZXM6cm10LmNvbnZlcnRBcnJheSh0LnRpbWVzLEFycmF5KSx2YWx1ZXM6cm10LmNvbnZlcnRBcnJheSh0LnZhbHVlcyxBcnJheSl9O2NvbnN0IGU9dC5nZXRJbnRlcnBvbGF0aW9uKCk7ZSE9PXQuRGVmYXVsdEludGVycG9sYXRpb24mJihuLmludGVycG9sYXRpb249ZSl9cmV0dXJuIG4udHlwZT10LlZhbHVlVHlwZU5hbWUsbn1JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZSh0KXtyZXR1cm4gbmV3IGRtdCh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9SW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyKHQpe3JldHVybiBuZXcgY210KHRoaXMudGltZXMsdGhpcy52YWx1ZXMsdGhpcy5nZXRWYWx1ZVNpemUoKSx0KX1JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGgodCl7cmV0dXJuIG5ldyBsbXQodGhpcy50aW1lcyx0aGlzLnZhbHVlcyx0aGlzLmdldFZhbHVlU2l6ZSgpLHQpfXNldEludGVycG9sYXRpb24odCl7bGV0IGU7c3dpdGNoKHQpe2Nhc2UgRGl0OmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTticmVhaztjYXNlIEVpdDplPXRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyO2JyZWFrO2Nhc2UgUml0OmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGh9aWYodm9pZCAwPT09ZSl7Y29uc3QgZT0idW5zdXBwb3J0ZWQgaW50ZXJwb2xhdGlvbiBmb3IgIit0aGlzLlZhbHVlVHlwZU5hbWUrIiBrZXlmcmFtZSB0cmFjayBuYW1lZCAiK3RoaXMubmFtZTtpZih2b2lkIDA9PT10aGlzLmNyZWF0ZUludGVycG9sYW50KXtpZih0PT09dGhpcy5EZWZhdWx0SW50ZXJwb2xhdGlvbil0aHJvdyBuZXcgRXJyb3IoZSk7dGhpcy5zZXRJbnRlcnBvbGF0aW9uKHRoaXMuRGVmYXVsdEludGVycG9sYXRpb24pfXJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLktleWZyYW1lVHJhY2s6IixlKSx0aGlzfXJldHVybiB0aGlzLmNyZWF0ZUludGVycG9sYW50PWUsdGhpc31nZXRJbnRlcnBvbGF0aW9uKCl7c3dpdGNoKHRoaXMuY3JlYXRlSW50ZXJwb2xhbnQpe2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTpyZXR1cm4gRGl0O2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI6cmV0dXJuIEVpdDtjYXNlIHRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoOnJldHVybiBSaXR9fWdldFZhbHVlU2l6ZSgpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGgvdGhpcy50aW1lcy5sZW5ndGh9c2hpZnQodCl7aWYoMCE9PXQpe2NvbnN0IGU9dGhpcy50aW1lcztmb3IobGV0IG49MCxvPWUubGVuZ3RoO24hPT1vOysrbillW25dKz10fXJldHVybiB0aGlzfXNjYWxlKHQpe2lmKDEhPT10KXtjb25zdCBlPXRoaXMudGltZXM7Zm9yKGxldCBuPTAsbz1lLmxlbmd0aDtuIT09bzsrK24pZVtuXSo9dH1yZXR1cm4gdGhpc310cmltKHQsZSl7Y29uc3Qgbj10aGlzLnRpbWVzLG89bi5sZW5ndGg7bGV0IGk9MCxhPW8tMTtmb3IoO2khPT1vJiZuW2ldPHQ7KSsraTtmb3IoOy0xIT09YSYmblthXT5lOyktLWE7aWYoKythLDAhPT1pfHxhIT09byl7aT49YSYmKGE9TWF0aC5tYXgoYSwxKSxpPWEtMSk7Y29uc3QgdD10aGlzLmdldFZhbHVlU2l6ZSgpO3RoaXMudGltZXM9cm10LmFycmF5U2xpY2UobixpLGEpLHRoaXMudmFsdWVzPXJtdC5hcnJheVNsaWNlKHRoaXMudmFsdWVzLGkqdCxhKnQpfXJldHVybiB0aGlzfXZhbGlkYXRlKCl7bGV0IHQ9ITA7Y29uc3QgZT10aGlzLmdldFZhbHVlU2l6ZSgpO2UtTWF0aC5mbG9vcihlKSE9MCYmKGNvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IEludmFsaWQgdmFsdWUgc2l6ZSBpbiB0cmFjay4iLHRoaXMpLHQ9ITEpO2NvbnN0IG49dGhpcy50aW1lcyxvPXRoaXMudmFsdWVzLGk9bi5sZW5ndGg7MD09PWkmJihjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBUcmFjayBpcyBlbXB0eS4iLHRoaXMpLHQ9ITEpO2xldCBhPW51bGw7Zm9yKGxldCBlPTA7ZSE9PWk7ZSsrKXtjb25zdCBvPW5bZV07aWYoIm51bWJlciI9PXR5cGVvZiBvJiZpc05hTihvKSl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVGltZSBpcyBub3QgYSB2YWxpZCBudW1iZXIuIix0aGlzLGUsbyksdD0hMTticmVha31pZihudWxsIT09YSYmYT5vKXtjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBPdXQgb2Ygb3JkZXIga2V5cy4iLHRoaXMsZSxvLGEpLHQ9ITE7YnJlYWt9YT1vfWlmKHZvaWQgMCE9PW8mJnJtdC5pc1R5cGVkQXJyYXkobykpZm9yKGxldCBlPTAsbj1vLmxlbmd0aDtlIT09bjsrK2Upe2NvbnN0IG49b1tlXTtpZihpc05hTihuKSl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVmFsdWUgaXMgbm90IGEgdmFsaWQgbnVtYmVyLiIsdGhpcyxlLG4pLHQ9ITE7YnJlYWt9fXJldHVybiB0fW9wdGltaXplKCl7Y29uc3QgdD1ybXQuYXJyYXlTbGljZSh0aGlzLnRpbWVzKSxlPXJtdC5hcnJheVNsaWNlKHRoaXMudmFsdWVzKSxuPXRoaXMuZ2V0VmFsdWVTaXplKCksbz10aGlzLmdldEludGVycG9sYXRpb24oKT09PVJpdCxpPXQubGVuZ3RoLTE7bGV0IGE9MTtmb3IobGV0IHI9MTtyPGk7KytyKXtsZXQgaT0hMTtjb25zdCBzPXRbcl07aWYocyE9PXRbcisxXSYmKDEhPT1yfHxzIT09dFswXSkpaWYobylpPSEwO2Vsc2V7Y29uc3QgdD1yKm4sbz10LW4sYT10K247Zm9yKGxldCByPTA7ciE9PW47KytyKXtjb25zdCBuPWVbdCtyXTtpZihuIT09ZVtvK3JdfHxuIT09ZVthK3JdKXtpPSEwO2JyZWFrfX19aWYoaSl7aWYociE9PWEpe3RbYV09dFtyXTtjb25zdCBvPXIqbixpPWEqbjtmb3IobGV0IHQ9MDt0IT09bjsrK3QpZVtpK3RdPWVbbyt0XX0rK2F9fWlmKGk+MCl7dFthXT10W2ldO2ZvcihsZXQgdD1pKm4sbz1hKm4scj0wO3IhPT1uOysrcillW28rcl09ZVt0K3JdOysrYX1yZXR1cm4gYSE9PXQubGVuZ3RoPyh0aGlzLnRpbWVzPXJtdC5hcnJheVNsaWNlKHQsMCxhKSx0aGlzLnZhbHVlcz1ybXQuYXJyYXlTbGljZShlLDAsYSpuKSk6KHRoaXMudGltZXM9dCx0aGlzLnZhbHVlcz1lKSx0aGlzfWNsb25lKCl7Y29uc3QgdD1ybXQuYXJyYXlTbGljZSh0aGlzLnRpbWVzLDApLGU9cm10LmFycmF5U2xpY2UodGhpcy52YWx1ZXMsMCksbj1uZXcoMCx0aGlzLmNvbnN0cnVjdG9yKSh0aGlzLm5hbWUsdCxlKTtyZXR1cm4gbi5jcmVhdGVJbnRlcnBvbGFudD10aGlzLmNyZWF0ZUludGVycG9sYW50LG59fXBtdC5wcm90b3R5cGUuVGltZUJ1ZmZlclR5cGU9RmxvYXQzMkFycmF5LHBtdC5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUZsb2F0MzJBcnJheSxwbXQucHJvdG90eXBlLkRlZmF1bHRJbnRlcnBvbGF0aW9uPUVpdDtjbGFzcyBtbXQgZXh0ZW5kcyBwbXR7fW1tdC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0iYm9vbCIsbW10LnByb3RvdHlwZS5WYWx1ZUJ1ZmZlclR5cGU9QXJyYXksbW10LnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1EaXQsbW10LnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI9dm9pZCAwLG1tdC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoPXZvaWQgMDtjbGFzcyB1bXQgZXh0ZW5kcyBwbXR7fXVtdC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0iY29sb3IiO2NsYXNzIGZtdCBleHRlbmRzIHBtdHt9Zm10LnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJudW1iZXIiO2NsYXNzIGdtdCBleHRlbmRzIHNtdHtjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0LGUsbixvKX1pbnRlcnBvbGF0ZV8odCxlLG4sbyl7Y29uc3QgaT10aGlzLnJlc3VsdEJ1ZmZlcixhPXRoaXMuc2FtcGxlVmFsdWVzLHI9dGhpcy52YWx1ZVNpemUscz0obi1lKS8oby1lKTtsZXQgbD10KnI7Zm9yKGxldCB0PWwrcjtsIT09dDtsKz00KWxhdC5zbGVycEZsYXQoaSwwLGEsbC1yLGEsbCxzKTtyZXR1cm4gaX19Y2xhc3MgaG10IGV4dGVuZHMgcG10e0ludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcih0KXtyZXR1cm4gbmV3IGdtdCh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9fWhtdC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0icXVhdGVybmlvbiIsaG10LnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1FaXQsaG10LnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGg9dm9pZCAwO2NsYXNzIGJtdCBleHRlbmRzIHBtdHt9Ym10LnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJzdHJpbmciLGJtdC5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUFycmF5LGJtdC5wcm90b3R5cGUuRGVmYXVsdEludGVycG9sYXRpb249RGl0LGJtdC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyPXZvaWQgMCxibXQucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aD12b2lkIDA7Y2xhc3MgeW10IGV4dGVuZHMgcG10e315bXQucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9InZlY3RvciI7Y2xhc3MgX210e2NvbnN0cnVjdG9yKHQsZT0tMSxuLG89MjUwMCl7dGhpcy5uYW1lPXQsdGhpcy50cmFja3M9bix0aGlzLmR1cmF0aW9uPWUsdGhpcy5ibGVuZE1vZGU9byx0aGlzLnV1aWQ9cWl0KCksdGhpcy5kdXJhdGlvbjwwJiZ0aGlzLnJlc2V0RHVyYXRpb24oKX1zdGF0aWMgcGFyc2UodCl7Y29uc3QgZT1bXSxuPXQudHJhY2tzLG89MS8odC5mcHN8fDEpO2ZvcihsZXQgdD0wLGk9bi5sZW5ndGg7dCE9PWk7Kyt0KWUucHVzaChDbXQoblt0XSkuc2NhbGUobykpO2NvbnN0IGk9bmV3IHRoaXModC5uYW1lLHQuZHVyYXRpb24sZSx0LmJsZW5kTW9kZSk7cmV0dXJuIGkudXVpZD10LnV1aWQsaX1zdGF0aWMgdG9KU09OKHQpe2NvbnN0IGU9W10sbj10LnRyYWNrcyxvPXtuYW1lOnQubmFtZSxkdXJhdGlvbjp0LmR1cmF0aW9uLHRyYWNrczplLHV1aWQ6dC51dWlkLGJsZW5kTW9kZTp0LmJsZW5kTW9kZX07Zm9yKGxldCB0PTAsbz1uLmxlbmd0aDt0IT09bzsrK3QpZS5wdXNoKHBtdC50b0pTT04oblt0XSkpO3JldHVybiBvfXN0YXRpYyBDcmVhdGVGcm9tTW9ycGhUYXJnZXRTZXF1ZW5jZSh0LGUsbixvKXtjb25zdCBpPWUubGVuZ3RoLGE9W107Zm9yKGxldCB0PTA7dDxpO3QrKyl7bGV0IHI9W10scz1bXTtyLnB1c2goKHQraS0xKSVpLHQsKHQrMSklaSkscy5wdXNoKDAsMSwwKTtjb25zdCBsPXJtdC5nZXRLZXlmcmFtZU9yZGVyKHIpO3I9cm10LnNvcnRlZEFycmF5KHIsMSxsKSxzPXJtdC5zb3J0ZWRBcnJheShzLDEsbCksb3x8MCE9PXJbMF18fChyLnB1c2goaSkscy5wdXNoKHNbMF0pKSxhLnB1c2gobmV3IGZtdCgiLm1vcnBoVGFyZ2V0SW5mbHVlbmNlc1siK2VbdF0ubmFtZSsiXSIscixzKS5zY2FsZSgxL24pKX1yZXR1cm4gbmV3IHRoaXModCwtMSxhKX1zdGF0aWMgZmluZEJ5TmFtZSh0LGUpe2xldCBuPXQ7aWYoIUFycmF5LmlzQXJyYXkodCkpe2NvbnN0IGU9dDtuPWUuZ2VvbWV0cnkmJmUuZ2VvbWV0cnkuYW5pbWF0aW9uc3x8ZS5hbmltYXRpb25zfWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKWlmKG5bdF0ubmFtZT09PWUpcmV0dXJuIG5bdF07cmV0dXJuIG51bGx9c3RhdGljIENyZWF0ZUNsaXBzRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2VzKHQsZSxuKXtjb25zdCBvPXt9LGk9L14oW1x3LV0qPykoW1xkXSspJC87Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0sYT1uLm5hbWUubWF0Y2goaSk7aWYoYSYmYS5sZW5ndGg+MSl7Y29uc3QgdD1hWzFdO2xldCBlPW9bdF07ZXx8KG9bdF09ZT1bXSksZS5wdXNoKG4pfX1jb25zdCBhPVtdO2Zvcihjb25zdCB0IGluIG8pYS5wdXNoKHRoaXMuQ3JlYXRlRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2UodCxvW3RdLGUsbikpO3JldHVybiBhfXN0YXRpYyBwYXJzZUFuaW1hdGlvbih0LGUpe2lmKCF0KXJldHVybiBjb25zb2xlLmVycm9yKCJUSFJFRS5BbmltYXRpb25DbGlwOiBObyBhbmltYXRpb24gaW4gSlNPTkxvYWRlciBkYXRhLiIpLG51bGw7Y29uc3Qgbj1mdW5jdGlvbih0LGUsbixvLGkpe2lmKDAhPT1uLmxlbmd0aCl7Y29uc3QgYT1bXSxyPVtdO3JtdC5mbGF0dGVuSlNPTihuLGEscixvKSwwIT09YS5sZW5ndGgmJmkucHVzaChuZXcgdChlLGEscikpfX0sbz1bXSxpPXQubmFtZXx8ImRlZmF1bHQiLGE9dC5mcHN8fDMwLHI9dC5ibGVuZE1vZGU7bGV0IHM9dC5sZW5ndGh8fC0xO2NvbnN0IGw9dC5oaWVyYXJjaHl8fFtdO2ZvcihsZXQgdD0wO3Q8bC5sZW5ndGg7dCsrKXtjb25zdCBpPWxbdF0ua2V5cztpZihpJiYwIT09aS5sZW5ndGgpaWYoaVswXS5tb3JwaFRhcmdldHMpe2NvbnN0IHQ9e307bGV0IGU7Zm9yKGU9MDtlPGkubGVuZ3RoO2UrKylpZihpW2VdLm1vcnBoVGFyZ2V0cylmb3IobGV0IG49MDtuPGlbZV0ubW9ycGhUYXJnZXRzLmxlbmd0aDtuKyspdFtpW2VdLm1vcnBoVGFyZ2V0c1tuXV09LTE7Zm9yKGNvbnN0IG4gaW4gdCl7Y29uc3QgdD1bXSxhPVtdO2ZvcihsZXQgbz0wO28hPT1pW2VdLm1vcnBoVGFyZ2V0cy5sZW5ndGg7KytvKXtjb25zdCBvPWlbZV07dC5wdXNoKG8udGltZSksYS5wdXNoKG8ubW9ycGhUYXJnZXQ9PT1uPzE6MCl9by5wdXNoKG5ldyBmbXQoIi5tb3JwaFRhcmdldEluZmx1ZW5jZVsiK24rIl0iLHQsYSkpfXM9dC5sZW5ndGgqKGF8fDEpfWVsc2V7Y29uc3QgYT0iLmJvbmVzWyIrZVt0XS5uYW1lKyJdIjtuKHltdCxhKyIucG9zaXRpb24iLGksInBvcyIsbyksbihobXQsYSsiLnF1YXRlcm5pb24iLGksInJvdCIsbyksbih5bXQsYSsiLnNjYWxlIixpLCJzY2wiLG8pfX1yZXR1cm4gMD09PW8ubGVuZ3RoP251bGw6bmV3IHRoaXMoaSxzLG8scil9cmVzZXREdXJhdGlvbigpe2xldCB0PTA7Zm9yKGxldCBlPTAsbj10aGlzLnRyYWNrcy5sZW5ndGg7ZSE9PW47KytlKXtjb25zdCBuPXRoaXMudHJhY2tzW2VdO3Q9TWF0aC5tYXgodCxuLnRpbWVzW24udGltZXMubGVuZ3RoLTFdKX1yZXR1cm4gdGhpcy5kdXJhdGlvbj10LHRoaXN9dHJpbSgpe2ZvcihsZXQgdD0wO3Q8dGhpcy50cmFja3MubGVuZ3RoO3QrKyl0aGlzLnRyYWNrc1t0XS50cmltKDAsdGhpcy5kdXJhdGlvbik7cmV0dXJuIHRoaXN9dmFsaWRhdGUoKXtsZXQgdD0hMDtmb3IobGV0IGU9MDtlPHRoaXMudHJhY2tzLmxlbmd0aDtlKyspdD10JiZ0aGlzLnRyYWNrc1tlXS52YWxpZGF0ZSgpO3JldHVybiB0fW9wdGltaXplKCl7Zm9yKGxldCB0PTA7dDx0aGlzLnRyYWNrcy5sZW5ndGg7dCsrKXRoaXMudHJhY2tzW3RdLm9wdGltaXplKCk7cmV0dXJuIHRoaXN9Y2xvbmUoKXtjb25zdCB0PVtdO2ZvcihsZXQgZT0wO2U8dGhpcy50cmFja3MubGVuZ3RoO2UrKyl0LnB1c2godGhpcy50cmFja3NbZV0uY2xvbmUoKSk7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMubmFtZSx0aGlzLmR1cmF0aW9uLHQsdGhpcy5ibGVuZE1vZGUpfXRvSlNPTigpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLnRvSlNPTih0aGlzKX19ZnVuY3Rpb24gQ210KHQpe2lmKHZvaWQgMD09PXQudHlwZSl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IHRyYWNrIHR5cGUgdW5kZWZpbmVkLCBjYW4gbm90IHBhcnNlIik7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtzd2l0Y2godC50b0xvd2VyQ2FzZSgpKXtjYXNlInNjYWxhciI6Y2FzZSJkb3VibGUiOmNhc2UiZmxvYXQiOmNhc2UibnVtYmVyIjpjYXNlImludGVnZXIiOnJldHVybiBmbXQ7Y2FzZSJ2ZWN0b3IiOmNhc2UidmVjdG9yMiI6Y2FzZSJ2ZWN0b3IzIjpjYXNlInZlY3RvcjQiOnJldHVybiB5bXQ7Y2FzZSJjb2xvciI6cmV0dXJuIHVtdDtjYXNlInF1YXRlcm5pb24iOnJldHVybiBobXQ7Y2FzZSJib29sIjpjYXNlImJvb2xlYW4iOnJldHVybiBtbXQ7Y2FzZSJzdHJpbmciOnJldHVybiBibXR9dGhyb3cgbmV3IEVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBVbnN1cHBvcnRlZCB0eXBlTmFtZTogIit0KX0pKHQudHlwZSk7aWYodm9pZCAwPT09dC50aW1lcyl7Y29uc3QgZT1bXSxuPVtdO3JtdC5mbGF0dGVuSlNPTih0LmtleXMsZSxuLCJ2YWx1ZSIpLHQudGltZXM9ZSx0LnZhbHVlcz1ufXJldHVybiB2b2lkIDAhPT1lLnBhcnNlP2UucGFyc2UodCk6bmV3IGUodC5uYW1lLHQudGltZXMsdC52YWx1ZXMsdC5pbnRlcnBvbGF0aW9uKX1jb25zdCBNbXQ9e2VuYWJsZWQ6ITEsZmlsZXM6e30sYWRkOmZ1bmN0aW9uKHQsZSl7ITEhPT10aGlzLmVuYWJsZWQmJih0aGlzLmZpbGVzW3RdPWUpfSxnZXQ6ZnVuY3Rpb24odCl7aWYoITEhPT10aGlzLmVuYWJsZWQpcmV0dXJuIHRoaXMuZmlsZXNbdF19LHJlbW92ZTpmdW5jdGlvbih0KXtkZWxldGUgdGhpcy5maWxlc1t0XX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmZpbGVzPXt9fX0sdm10PW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbil7Y29uc3Qgbz10aGlzO2xldCBpLGE9ITEscj0wLHM9MDtjb25zdCBsPVtdO3RoaXMub25TdGFydD12b2lkIDAsdGhpcy5vbkxvYWQ9dCx0aGlzLm9uUHJvZ3Jlc3M9ZSx0aGlzLm9uRXJyb3I9bix0aGlzLml0ZW1TdGFydD1mdW5jdGlvbih0KXtzKyssITE9PT1hJiZ2b2lkIDAhPT1vLm9uU3RhcnQmJm8ub25TdGFydCh0LHIscyksYT0hMH0sdGhpcy5pdGVtRW5kPWZ1bmN0aW9uKHQpe3IrKyx2b2lkIDAhPT1vLm9uUHJvZ3Jlc3MmJm8ub25Qcm9ncmVzcyh0LHIscykscj09PXMmJihhPSExLHZvaWQgMCE9PW8ub25Mb2FkJiZvLm9uTG9hZCgpKX0sdGhpcy5pdGVtRXJyb3I9ZnVuY3Rpb24odCl7dm9pZCAwIT09by5vbkVycm9yJiZvLm9uRXJyb3IodCl9LHRoaXMucmVzb2x2ZVVSTD1mdW5jdGlvbih0KXtyZXR1cm4gaT9pKHQpOnR9LHRoaXMuc2V0VVJMTW9kaWZpZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGk9dCx0aGlzfSx0aGlzLmFkZEhhbmRsZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbC5wdXNoKHQsZSksdGhpc30sdGhpcy5yZW1vdmVIYW5kbGVyPWZ1bmN0aW9uKHQpe2NvbnN0IGU9bC5pbmRleE9mKHQpO3JldHVybi0xIT09ZSYmbC5zcGxpY2UoZSwyKSx0aGlzfSx0aGlzLmdldEhhbmRsZXI9ZnVuY3Rpb24odCl7Zm9yKGxldCBlPTAsbj1sLmxlbmd0aDtlPG47ZSs9Mil7Y29uc3Qgbj1sW2VdLG89bFtlKzFdO2lmKG4uZ2xvYmFsJiYobi5sYXN0SW5kZXg9MCksbi50ZXN0KHQpKXJldHVybiBvfXJldHVybiBudWxsfX19O2NsYXNzIHhtdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLm1hbmFnZXI9dm9pZCAwIT09dD90OnZtdCx0aGlzLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHRoaXMud2l0aENyZWRlbnRpYWxzPSExLHRoaXMucGF0aD0iIix0aGlzLnJlc291cmNlUGF0aD0iIix0aGlzLnJlcXVlc3RIZWFkZXI9e319bG9hZCgpe31sb2FkQXN5bmModCxlKXtjb25zdCBuPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihvLGkpe24ubG9hZCh0LG8sZSxpKX0pKX1wYXJzZSgpe31zZXRDcm9zc09yaWdpbih0KXtyZXR1cm4gdGhpcy5jcm9zc09yaWdpbj10LHRoaXN9c2V0V2l0aENyZWRlbnRpYWxzKHQpe3JldHVybiB0aGlzLndpdGhDcmVkZW50aWFscz10LHRoaXN9c2V0UGF0aCh0KXtyZXR1cm4gdGhpcy5wYXRoPXQsdGhpc31zZXRSZXNvdXJjZVBhdGgodCl7cmV0dXJuIHRoaXMucmVzb3VyY2VQYXRoPXQsdGhpc31zZXRSZXF1ZXN0SGVhZGVyKHQpe3JldHVybiB0aGlzLnJlcXVlc3RIZWFkZXI9dCx0aGlzfX1jb25zdCBPbXQ9e307Y2xhc3MgUG10IGV4dGVuZHMgeG10e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4sbyl7dm9pZCAwPT09dCYmKHQ9IiIpLHZvaWQgMCE9PXRoaXMucGF0aCYmKHQ9dGhpcy5wYXRoK3QpLHQ9dGhpcy5tYW5hZ2VyLnJlc29sdmVVUkwodCk7Y29uc3QgaT10aGlzLGE9TW10LmdldCh0KTtpZih2b2lkIDAhPT1hKXJldHVybiBpLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZSYmZShhKSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pLDApLGE7aWYodm9pZCAwIT09T210W3RdKXJldHVybiB2b2lkIE9tdFt0XS5wdXNoKHtvbkxvYWQ6ZSxvblByb2dyZXNzOm4sb25FcnJvcjpvfSk7Y29uc3Qgcj10Lm1hdGNoKC9eZGF0YTooLio/KSg7YmFzZTY0KT8sKC4qKSQvKTtsZXQgcztpZihyKXtjb25zdCBuPXJbMV0sYT0hIXJbMl07bGV0IHM9clszXTtzPWRlY29kZVVSSUNvbXBvbmVudChzKSxhJiYocz1hdG9iKHMpKTt0cnl7bGV0IG87Y29uc3QgYT0odGhpcy5yZXNwb25zZVR5cGV8fCIiKS50b0xvd2VyQ2FzZSgpO3N3aXRjaChhKXtjYXNlImFycmF5YnVmZmVyIjpjYXNlImJsb2IiOmNvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkocy5sZW5ndGgpO2ZvcihsZXQgZT0wO2U8cy5sZW5ndGg7ZSsrKXRbZV09cy5jaGFyQ29kZUF0KGUpO289ImJsb2IiPT09YT9uZXcgQmxvYihbdC5idWZmZXJdLHt0eXBlOm59KTp0LmJ1ZmZlcjticmVhaztjYXNlImRvY3VtZW50Ijpjb25zdCBlPW5ldyBET01QYXJzZXI7bz1lLnBhcnNlRnJvbVN0cmluZyhzLG4pO2JyZWFrO2Nhc2UianNvbiI6bz1KU09OLnBhcnNlKHMpO2JyZWFrO2RlZmF1bHQ6bz1zfXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZSYmZShvKSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pLDApfWNhdGNoKGUpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7byYmbyhlKSxpLm1hbmFnZXIuaXRlbUVycm9yKHQpLGkubWFuYWdlci5pdGVtRW5kKHQpfSksMCl9fWVsc2V7T210W3RdPVtdLE9tdFt0XS5wdXNoKHtvbkxvYWQ6ZSxvblByb2dyZXNzOm4sb25FcnJvcjpvfSkscz1uZXcgWE1MSHR0cFJlcXVlc3Qscy5vcGVuKCJHRVQiLHQsITApLHMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKGZ1bmN0aW9uKGUpe2NvbnN0IG49dGhpcy5yZXNwb25zZSxvPU9tdFt0XTtpZihkZWxldGUgT210W3RdLDIwMD09PXRoaXMuc3RhdHVzfHwwPT09dGhpcy5zdGF0dXMpezA9PT10aGlzLnN0YXR1cyYmY29uc29sZS53YXJuKCJUSFJFRS5GaWxlTG9hZGVyOiBIVFRQIFN0YXR1cyAwIHJlY2VpdmVkLiIpLE1tdC5hZGQodCxuKTtmb3IobGV0IHQ9MCxlPW8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9b1t0XTtlLm9uTG9hZCYmZS5vbkxvYWQobil9aS5tYW5hZ2VyLml0ZW1FbmQodCl9ZWxzZXtmb3IobGV0IHQ9MCxuPW8ubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49b1t0XTtuLm9uRXJyb3ImJm4ub25FcnJvcihlKX1pLm1hbmFnZXIuaXRlbUVycm9yKHQpLGkubWFuYWdlci5pdGVtRW5kKHQpfX0pLCExKSxzLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIiwoZnVuY3Rpb24oZSl7Y29uc3Qgbj1PbXRbdF07Zm9yKGxldCB0PTAsbz1uLmxlbmd0aDt0PG87dCsrKXtjb25zdCBvPW5bdF07by5vblByb2dyZXNzJiZvLm9uUHJvZ3Jlc3MoZSl9fSksITEpLHMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLChmdW5jdGlvbihlKXtjb25zdCBuPU9tdFt0XTtkZWxldGUgT210W3RdO2ZvcihsZXQgdD0wLG89bi5sZW5ndGg7dDxvO3QrKyl7Y29uc3Qgbz1uW3RdO28ub25FcnJvciYmby5vbkVycm9yKGUpfWkubWFuYWdlci5pdGVtRXJyb3IodCksaS5tYW5hZ2VyLml0ZW1FbmQodCl9KSwhMSkscy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKGZ1bmN0aW9uKGUpe2NvbnN0IG49T210W3RdO2RlbGV0ZSBPbXRbdF07Zm9yKGxldCB0PTAsbz1uLmxlbmd0aDt0PG87dCsrKXtjb25zdCBvPW5bdF07by5vbkVycm9yJiZvLm9uRXJyb3IoZSl9aS5tYW5hZ2VyLml0ZW1FcnJvcih0KSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pLCExKSx2b2lkIDAhPT10aGlzLnJlc3BvbnNlVHlwZSYmKHMucmVzcG9uc2VUeXBlPXRoaXMucmVzcG9uc2VUeXBlKSx2b2lkIDAhPT10aGlzLndpdGhDcmVkZW50aWFscyYmKHMud2l0aENyZWRlbnRpYWxzPXRoaXMud2l0aENyZWRlbnRpYWxzKSxzLm92ZXJyaWRlTWltZVR5cGUmJnMub3ZlcnJpZGVNaW1lVHlwZSh2b2lkIDAhPT10aGlzLm1pbWVUeXBlP3RoaXMubWltZVR5cGU6InRleHQvcGxhaW4iKTtmb3IoY29uc3QgdCBpbiB0aGlzLnJlcXVlc3RIZWFkZXIpcy5zZXRSZXF1ZXN0SGVhZGVyKHQsdGhpcy5yZXF1ZXN0SGVhZGVyW3RdKTtzLnNlbmQobnVsbCl9cmV0dXJuIGkubWFuYWdlci5pdGVtU3RhcnQodCksc31zZXRSZXNwb25zZVR5cGUodCl7cmV0dXJuIHRoaXMucmVzcG9uc2VUeXBlPXQsdGhpc31zZXRNaW1lVHlwZSh0KXtyZXR1cm4gdGhpcy5taW1lVHlwZT10LHRoaXN9fWNsYXNzIHdtdCBleHRlbmRzIHhtdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLG8pe3ZvaWQgMCE9PXRoaXMucGF0aCYmKHQ9dGhpcy5wYXRoK3QpLHQ9dGhpcy5tYW5hZ2VyLnJlc29sdmVVUkwodCk7Y29uc3QgaT10aGlzLGE9TW10LmdldCh0KTtpZih2b2lkIDAhPT1hKXJldHVybiBpLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZSYmZShhKSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pLDApLGE7Y29uc3Qgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJpbWciKTtmdW5jdGlvbiBzKCl7ci5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixzLCExKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixsLCExKSxNbXQuYWRkKHQsdGhpcyksZSYmZSh0aGlzKSxpLm1hbmFnZXIuaXRlbUVuZCh0KX1mdW5jdGlvbiBsKGUpe3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIscywhMSksci5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsbCwhMSksbyYmbyhlKSxpLm1hbmFnZXIuaXRlbUVycm9yKHQpLGkubWFuYWdlci5pdGVtRW5kKHQpfXJldHVybiByLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLHMsITEpLHIuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGwsITEpLCJkYXRhOiIhPT10LnN1YnN0cigwLDUpJiZ2b2lkIDAhPT10aGlzLmNyb3NzT3JpZ2luJiYoci5jcm9zc09yaWdpbj10aGlzLmNyb3NzT3JpZ2luKSxpLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHIuc3JjPXQscn19Y2xhc3Mga210IGV4dGVuZHMgeG10e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4sbyl7Y29uc3QgaT1uZXcgdnN0LGE9bmV3IHdtdCh0aGlzLm1hbmFnZXIpO2Euc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbiksYS5zZXRQYXRoKHRoaXMucGF0aCk7bGV0IHI9MDtmdW5jdGlvbiBzKG4pe2EubG9hZCh0W25dLChmdW5jdGlvbih0KXtpLmltYWdlc1tuXT10LHIrKyw2PT09ciYmKGkubmVlZHNVcGRhdGU9ITAsZSYmZShpKSl9KSx2b2lkIDAsbyl9Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDsrK2UpcyhlKTtyZXR1cm4gaX19Y2xhc3MgU210IGV4dGVuZHMgeG10e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4sbyl7Y29uc3QgaT1uZXcgb2F0LGE9bmV3IHdtdCh0aGlzLm1hbmFnZXIpO3JldHVybiBhLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pLGEuc2V0UGF0aCh0aGlzLnBhdGgpLGEubG9hZCh0LChmdW5jdGlvbihuKXtpLmltYWdlPW47Y29uc3Qgbz10LnNlYXJjaCgvXC5qcGU/ZygkfFw/KS9pKT4wfHwwPT09dC5zZWFyY2goL15kYXRhXDppbWFnZVwvanBlZy8pO2kuZm9ybWF0PW8/UGl0OndpdCxpLm5lZWRzVXBkYXRlPSEwLHZvaWQgMCE9PWUmJmUoaSl9KSxuLG8pLGl9fWNsYXNzIERtdCBleHRlbmRzIGRwdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJDdXJ2ZVBhdGgiLHRoaXMuY3VydmVzPVtdLHRoaXMuYXV0b0Nsb3NlPSExfWFkZCh0KXt0aGlzLmN1cnZlcy5wdXNoKHQpfWNsb3NlUGF0aCgpe2NvbnN0IHQ9dGhpcy5jdXJ2ZXNbMF0uZ2V0UG9pbnQoMCksZT10aGlzLmN1cnZlc1t0aGlzLmN1cnZlcy5sZW5ndGgtMV0uZ2V0UG9pbnQoMSk7dC5lcXVhbHMoZSl8fHRoaXMuY3VydmVzLnB1c2gobmV3IE9wdChlLHQpKX1nZXRQb2ludCh0KXtjb25zdCBlPXQqdGhpcy5nZXRMZW5ndGgoKSxuPXRoaXMuZ2V0Q3VydmVMZW5ndGhzKCk7bGV0IG89MDtmb3IoO288bi5sZW5ndGg7KXtpZihuW29dPj1lKXtjb25zdCB0PW5bb10tZSxpPXRoaXMuY3VydmVzW29dLGE9aS5nZXRMZW5ndGgoKTtyZXR1cm4gaS5nZXRQb2ludEF0KDA9PT1hPzA6MS10L2EpfW8rK31yZXR1cm4gbnVsbH1nZXRMZW5ndGgoKXtjb25zdCB0PXRoaXMuZ2V0Q3VydmVMZW5ndGhzKCk7cmV0dXJuIHRbdC5sZW5ndGgtMV19dXBkYXRlQXJjTGVuZ3Rocygpe3RoaXMubmVlZHNVcGRhdGU9ITAsdGhpcy5jYWNoZUxlbmd0aHM9bnVsbCx0aGlzLmdldEN1cnZlTGVuZ3RocygpfWdldEN1cnZlTGVuZ3Rocygpe2lmKHRoaXMuY2FjaGVMZW5ndGhzJiZ0aGlzLmNhY2hlTGVuZ3Rocy5sZW5ndGg9PT10aGlzLmN1cnZlcy5sZW5ndGgpcmV0dXJuIHRoaXMuY2FjaGVMZW5ndGhzO2NvbnN0IHQ9W107bGV0IGU9MDtmb3IobGV0IG49MCxvPXRoaXMuY3VydmVzLmxlbmd0aDtuPG87bisrKWUrPXRoaXMuY3VydmVzW25dLmdldExlbmd0aCgpLHQucHVzaChlKTtyZXR1cm4gdGhpcy5jYWNoZUxlbmd0aHM9dCx0fWdldFNwYWNlZFBvaW50cyh0PTQwKXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248PXQ7bisrKWUucHVzaCh0aGlzLmdldFBvaW50KG4vdCkpO3JldHVybiB0aGlzLmF1dG9DbG9zZSYmZS5wdXNoKGVbMF0pLGV9Z2V0UG9pbnRzKHQ9MTIpe2NvbnN0IGU9W107bGV0IG47Zm9yKGxldCBvPTAsaT10aGlzLmN1cnZlcztvPGkubGVuZ3RoO28rKyl7Y29uc3QgYT1pW29dLHI9YS5nZXRQb2ludHMoYSYmYS5pc0VsbGlwc2VDdXJ2ZT8yKnQ6YSYmKGEuaXNMaW5lQ3VydmV8fGEuaXNMaW5lQ3VydmUzKT8xOmEmJmEuaXNTcGxpbmVDdXJ2ZT90KmEucG9pbnRzLmxlbmd0aDp0KTtmb3IobGV0IHQ9MDt0PHIubGVuZ3RoO3QrKyl7Y29uc3Qgbz1yW3RdO24mJm4uZXF1YWxzKG8pfHwoZS5wdXNoKG8pLG49byl9fXJldHVybiB0aGlzLmF1dG9DbG9zZSYmZS5sZW5ndGg+MSYmIWVbZS5sZW5ndGgtMV0uZXF1YWxzKGVbMF0pJiZlLnB1c2goZVswXSksZX1jb3B5KHQpe3N1cGVyLmNvcHkodCksdGhpcy5jdXJ2ZXM9W107Zm9yKGxldCBlPTAsbj10LmN1cnZlcy5sZW5ndGg7ZTxuO2UrKyl0aGlzLmN1cnZlcy5wdXNoKHQuY3VydmVzW2VdLmNsb25lKCkpO3JldHVybiB0aGlzLmF1dG9DbG9zZT10LmF1dG9DbG9zZSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7dC5hdXRvQ2xvc2U9dGhpcy5hdXRvQ2xvc2UsdC5jdXJ2ZXM9W107Zm9yKGxldCBlPTAsbj10aGlzLmN1cnZlcy5sZW5ndGg7ZTxuO2UrKyl0LmN1cnZlcy5wdXNoKHRoaXMuY3VydmVzW2VdLnRvSlNPTigpKTtyZXR1cm4gdH1mcm9tSlNPTih0KXtzdXBlci5mcm9tSlNPTih0KSx0aGlzLmF1dG9DbG9zZT10LmF1dG9DbG9zZSx0aGlzLmN1cnZlcz1bXTtmb3IobGV0IGU9MCxuPXQuY3VydmVzLmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXQuY3VydmVzW2VdO3RoaXMuY3VydmVzLnB1c2goKG5ldyBTcHRbbi50eXBlXSkuZnJvbUpTT04obikpfXJldHVybiB0aGlzfX1jbGFzcyBFbXQgZXh0ZW5kcyBEbXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBhdGgiLHRoaXMuY3VycmVudFBvaW50PW5ldyBRaXQsdCYmdGhpcy5zZXRGcm9tUG9pbnRzKHQpfXNldEZyb21Qb2ludHModCl7dGhpcy5tb3ZlVG8odFswXS54LHRbMF0ueSk7Zm9yKGxldCBlPTEsbj10Lmxlbmd0aDtlPG47ZSsrKXRoaXMubGluZVRvKHRbZV0ueCx0W2VdLnkpO3JldHVybiB0aGlzfW1vdmVUbyh0LGUpe3JldHVybiB0aGlzLmN1cnJlbnRQb2ludC5zZXQodCxlKSx0aGlzfWxpbmVUbyh0LGUpe2NvbnN0IG49bmV3IE9wdCh0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpLG5ldyBRaXQodCxlKSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2gobiksdGhpcy5jdXJyZW50UG9pbnQuc2V0KHQsZSksdGhpc31xdWFkcmF0aWNDdXJ2ZVRvKHQsZSxuLG8pe2NvbnN0IGk9bmV3IFBwdCh0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpLG5ldyBRaXQodCxlKSxuZXcgUWl0KG4sbykpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKGkpLHRoaXMuY3VycmVudFBvaW50LnNldChuLG8pLHRoaXN9YmV6aWVyQ3VydmVUbyh0LGUsbixvLGksYSl7Y29uc3Qgcj1uZXcgdnB0KHRoaXMuY3VycmVudFBvaW50LmNsb25lKCksbmV3IFFpdCh0LGUpLG5ldyBRaXQobixvKSxuZXcgUWl0KGksYSkpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKHIpLHRoaXMuY3VycmVudFBvaW50LnNldChpLGEpLHRoaXN9c3BsaW5lVGhydSh0KXtjb25zdCBlPVt0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpXS5jb25jYXQodCksbj1uZXcga3B0KGUpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKG4pLHRoaXMuY3VycmVudFBvaW50LmNvcHkodFt0Lmxlbmd0aC0xXSksdGhpc31hcmModCxlLG4sbyxpLGEpe3JldHVybiB0aGlzLmFic2FyYyh0K3RoaXMuY3VycmVudFBvaW50LngsZSt0aGlzLmN1cnJlbnRQb2ludC55LG4sbyxpLGEpLHRoaXN9YWJzYXJjKHQsZSxuLG8saSxhKXtyZXR1cm4gdGhpcy5hYnNlbGxpcHNlKHQsZSxuLG4sbyxpLGEpLHRoaXN9ZWxsaXBzZSh0LGUsbixvLGksYSxyLHMpe3JldHVybiB0aGlzLmFic2VsbGlwc2UodCt0aGlzLmN1cnJlbnRQb2ludC54LGUrdGhpcy5jdXJyZW50UG9pbnQueSxuLG8saSxhLHIscyksdGhpc31hYnNlbGxpcHNlKHQsZSxuLG8saSxhLHIscyl7Y29uc3QgbD1uZXcgcHB0KHQsZSxuLG8saSxhLHIscyk7aWYodGhpcy5jdXJ2ZXMubGVuZ3RoPjApe2NvbnN0IHQ9bC5nZXRQb2ludCgwKTt0LmVxdWFscyh0aGlzLmN1cnJlbnRQb2ludCl8fHRoaXMubGluZVRvKHQueCx0LnkpfXRoaXMuY3VydmVzLnB1c2gobCk7Y29uc3QgYz1sLmdldFBvaW50KDEpO3JldHVybiB0aGlzLmN1cnJlbnRQb2ludC5jb3B5KGMpLHRoaXN9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmN1cnJlbnRQb2ludC5jb3B5KHQuY3VycmVudFBvaW50KSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQuY3VycmVudFBvaW50PXRoaXMuY3VycmVudFBvaW50LnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLmN1cnJlbnRQb2ludC5mcm9tQXJyYXkodC5jdXJyZW50UG9pbnQpLHRoaXN9fWNsYXNzIFJtdCBleHRlbmRzIEVtdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLnV1aWQ9cWl0KCksdGhpcy50eXBlPSJTaGFwZSIsdGhpcy5ob2xlcz1bXX1nZXRQb2ludHNIb2xlcyh0KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wLG89dGhpcy5ob2xlcy5sZW5ndGg7bjxvO24rKyllW25dPXRoaXMuaG9sZXNbbl0uZ2V0UG9pbnRzKHQpO3JldHVybiBlfWV4dHJhY3RQb2ludHModCl7cmV0dXJue3NoYXBlOnRoaXMuZ2V0UG9pbnRzKHQpLGhvbGVzOnRoaXMuZ2V0UG9pbnRzSG9sZXModCl9fWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLmhvbGVzPVtdO2ZvcihsZXQgZT0wLG49dC5ob2xlcy5sZW5ndGg7ZTxuO2UrKyl0aGlzLmhvbGVzLnB1c2godC5ob2xlc1tlXS5jbG9uZSgpKTtyZXR1cm4gdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QudXVpZD10aGlzLnV1aWQsdC5ob2xlcz1bXTtmb3IobGV0IGU9MCxuPXRoaXMuaG9sZXMubGVuZ3RoO2U8bjtlKyspdC5ob2xlcy5wdXNoKHRoaXMuaG9sZXNbZV0udG9KU09OKCkpO3JldHVybiB0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMudXVpZD10LnV1aWQsdGhpcy5ob2xlcz1bXTtmb3IobGV0IGU9MCxuPXQuaG9sZXMubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dC5ob2xlc1tlXTt0aGlzLmhvbGVzLnB1c2goKG5ldyBFbXQpLmZyb21KU09OKG4pKX1yZXR1cm4gdGhpc319Y2xhc3MgQW10IGV4dGVuZHMgcHJ0e2NvbnN0cnVjdG9yKHQsZT0xKXtzdXBlcigpLHRoaXMudHlwZT0iTGlnaHQiLHRoaXMuY29sb3I9bmV3IFJydCh0KSx0aGlzLmludGVuc2l0eT1lfWRpc3Bvc2UoKXt9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5pbnRlbnNpdHk9dC5pbnRlbnNpdHksdGhpc310b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LmNvbG9yPXRoaXMuY29sb3IuZ2V0SGV4KCksZS5vYmplY3QuaW50ZW5zaXR5PXRoaXMuaW50ZW5zaXR5LHZvaWQgMCE9PXRoaXMuZ3JvdW5kQ29sb3ImJihlLm9iamVjdC5ncm91bmRDb2xvcj10aGlzLmdyb3VuZENvbG9yLmdldEhleCgpKSx2b2lkIDAhPT10aGlzLmRpc3RhbmNlJiYoZS5vYmplY3QuZGlzdGFuY2U9dGhpcy5kaXN0YW5jZSksdm9pZCAwIT09dGhpcy5hbmdsZSYmKGUub2JqZWN0LmFuZ2xlPXRoaXMuYW5nbGUpLHZvaWQgMCE9PXRoaXMuZGVjYXkmJihlLm9iamVjdC5kZWNheT10aGlzLmRlY2F5KSx2b2lkIDAhPT10aGlzLnBlbnVtYnJhJiYoZS5vYmplY3QucGVudW1icmE9dGhpcy5wZW51bWJyYSksdm9pZCAwIT09dGhpcy5zaGFkb3cmJihlLm9iamVjdC5zaGFkb3c9dGhpcy5zaGFkb3cudG9KU09OKCkpLGV9fUFtdC5wcm90b3R5cGUuaXNMaWdodD0hMCxjbGFzcyBleHRlbmRzIEFtdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxuKSx0aGlzLnR5cGU9IkhlbWlzcGhlcmVMaWdodCIsdGhpcy5wb3NpdGlvbi5jb3B5KHBydC5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy5ncm91bmRDb2xvcj1uZXcgUnJ0KGUpfWNvcHkodCl7cmV0dXJuIEFtdC5wcm90b3R5cGUuY29weS5jYWxsKHRoaXMsdCksdGhpcy5ncm91bmRDb2xvci5jb3B5KHQuZ3JvdW5kQ29sb3IpLHRoaXN9fS5wcm90b3R5cGUuaXNIZW1pc3BoZXJlTGlnaHQ9ITA7Y29uc3QgVG10PW5ldyBCYXQsTm10PW5ldyBjYXQsem10PW5ldyBjYXQ7Y2xhc3MgSW10e2NvbnN0cnVjdG9yKHQpe3RoaXMuY2FtZXJhPXQsdGhpcy5iaWFzPTAsdGhpcy5ub3JtYWxCaWFzPTAsdGhpcy5yYWRpdXM9MSx0aGlzLm1hcFNpemU9bmV3IFFpdCg1MTIsNTEyKSx0aGlzLm1hcD1udWxsLHRoaXMubWFwUGFzcz1udWxsLHRoaXMubWF0cml4PW5ldyBCYXQsdGhpcy5hdXRvVXBkYXRlPSEwLHRoaXMubmVlZHNVcGRhdGU9ITEsdGhpcy5fZnJ1c3R1bT1uZXcgRXN0LHRoaXMuX2ZyYW1lRXh0ZW50cz1uZXcgUWl0KDEsMSksdGhpcy5fdmlld3BvcnRDb3VudD0xLHRoaXMuX3ZpZXdwb3J0cz1bbmV3IGFhdCgwLDAsMSwxKV19Z2V0Vmlld3BvcnRDb3VudCgpe3JldHVybiB0aGlzLl92aWV3cG9ydENvdW50fWdldEZydXN0dW0oKXtyZXR1cm4gdGhpcy5fZnJ1c3R1bX11cGRhdGVNYXRyaWNlcyh0KXtjb25zdCBlPXRoaXMuY2FtZXJhLG49dGhpcy5tYXRyaXg7Tm10LnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSxlLnBvc2l0aW9uLmNvcHkoTm10KSx6bXQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQudGFyZ2V0Lm1hdHJpeFdvcmxkKSxlLmxvb2tBdCh6bXQpLGUudXBkYXRlTWF0cml4V29ybGQoKSxUbXQubXVsdGlwbHlNYXRyaWNlcyhlLnByb2plY3Rpb25NYXRyaXgsZS5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMuX2ZydXN0dW0uc2V0RnJvbVByb2plY3Rpb25NYXRyaXgoVG10KSxuLnNldCguNSwwLDAsLjUsMCwuNSwwLC41LDAsMCwuNSwuNSwwLDAsMCwxKSxuLm11bHRpcGx5KGUucHJvamVjdGlvbk1hdHJpeCksbi5tdWx0aXBseShlLm1hdHJpeFdvcmxkSW52ZXJzZSl9Z2V0Vmlld3BvcnQodCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0c1t0XX1nZXRGcmFtZUV4dGVudHMoKXtyZXR1cm4gdGhpcy5fZnJhbWVFeHRlbnRzfWRpc3Bvc2UoKXt0aGlzLm1hcCYmdGhpcy5tYXAuZGlzcG9zZSgpLHRoaXMubWFwUGFzcyYmdGhpcy5tYXBQYXNzLmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiB0aGlzLmNhbWVyYT10LmNhbWVyYS5jbG9uZSgpLHRoaXMuYmlhcz10LmJpYXMsdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpcy5tYXBTaXplLmNvcHkodC5tYXBTaXplKSx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfXRvSlNPTigpe2NvbnN0IHQ9e307cmV0dXJuIDAhPT10aGlzLmJpYXMmJih0LmJpYXM9dGhpcy5iaWFzKSwwIT09dGhpcy5ub3JtYWxCaWFzJiYodC5ub3JtYWxCaWFzPXRoaXMubm9ybWFsQmlhcyksMSE9PXRoaXMucmFkaXVzJiYodC5yYWRpdXM9dGhpcy5yYWRpdXMpLDUxMj09PXRoaXMubWFwU2l6ZS54JiY1MTI9PT10aGlzLm1hcFNpemUueXx8KHQubWFwU2l6ZT10aGlzLm1hcFNpemUudG9BcnJheSgpKSx0LmNhbWVyYT10aGlzLmNhbWVyYS50b0pTT04oITEpLm9iamVjdCxkZWxldGUgdC5jYW1lcmEubWF0cml4LHR9fWNsYXNzIEhtdCBleHRlbmRzIEltdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKG5ldyBfc3QoNTAsMSwuNSw1MDApKSx0aGlzLmZvY3VzPTF9dXBkYXRlTWF0cmljZXModCl7Y29uc3QgZT10aGlzLmNhbWVyYSxuPTIqWWl0KnQuYW5nbGUqdGhpcy5mb2N1cyxvPXRoaXMubWFwU2l6ZS53aWR0aC90aGlzLm1hcFNpemUuaGVpZ2h0LGk9dC5kaXN0YW5jZXx8ZS5mYXI7bj09PWUuZm92JiZvPT09ZS5hc3BlY3QmJmk9PT1lLmZhcnx8KGUuZm92PW4sZS5hc3BlY3Q9byxlLmZhcj1pLGUudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpKSxzdXBlci51cGRhdGVNYXRyaWNlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZm9jdXM9dC5mb2N1cyx0aGlzfX1IbXQucHJvdG90eXBlLmlzU3BvdExpZ2h0U2hhZG93PSEwLGNsYXNzIGV4dGVuZHMgQW10e2NvbnN0cnVjdG9yKHQsZSxuPTAsbz1NYXRoLlBJLzMsaT0wLGE9MSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IlNwb3RMaWdodCIsdGhpcy5wb3NpdGlvbi5jb3B5KHBydC5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy50YXJnZXQ9bmV3IHBydCx0aGlzLmRpc3RhbmNlPW4sdGhpcy5hbmdsZT1vLHRoaXMucGVudW1icmE9aSx0aGlzLmRlY2F5PWEsdGhpcy5zaGFkb3c9bmV3IEhtdH1nZXQgcG93ZXIoKXtyZXR1cm4gdGhpcy5pbnRlbnNpdHkqTWF0aC5QSX1zZXQgcG93ZXIodCl7dGhpcy5pbnRlbnNpdHk9dC9NYXRoLlBJfWRpc3Bvc2UoKXt0aGlzLnNoYWRvdy5kaXNwb3NlKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRpc3RhbmNlPXQuZGlzdGFuY2UsdGhpcy5hbmdsZT10LmFuZ2xlLHRoaXMucGVudW1icmE9dC5wZW51bWJyYSx0aGlzLmRlY2F5PXQuZGVjYXksdGhpcy50YXJnZXQ9dC50YXJnZXQuY2xvbmUoKSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fS5wcm90b3R5cGUuaXNTcG90TGlnaHQ9ITA7Y29uc3QgRm10PW5ldyBCYXQsTG10PW5ldyBjYXQsQm10PW5ldyBjYXQ7Y2xhc3MgVm10IGV4dGVuZHMgSW10e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IF9zdCg5MCwxLC41LDUwMCkpLHRoaXMuX2ZyYW1lRXh0ZW50cz1uZXcgUWl0KDQsMiksdGhpcy5fdmlld3BvcnRDb3VudD02LHRoaXMuX3ZpZXdwb3J0cz1bbmV3IGFhdCgyLDEsMSwxKSxuZXcgYWF0KDAsMSwxLDEpLG5ldyBhYXQoMywxLDEsMSksbmV3IGFhdCgxLDEsMSwxKSxuZXcgYWF0KDMsMCwxLDEpLG5ldyBhYXQoMSwwLDEsMSldLHRoaXMuX2N1YmVEaXJlY3Rpb25zPVtuZXcgY2F0KDEsMCwwKSxuZXcgY2F0KC0xLDAsMCksbmV3IGNhdCgwLDAsMSksbmV3IGNhdCgwLDAsLTEpLG5ldyBjYXQoMCwxLDApLG5ldyBjYXQoMCwtMSwwKV0sdGhpcy5fY3ViZVVwcz1bbmV3IGNhdCgwLDEsMCksbmV3IGNhdCgwLDEsMCksbmV3IGNhdCgwLDEsMCksbmV3IGNhdCgwLDEsMCksbmV3IGNhdCgwLDAsMSksbmV3IGNhdCgwLDAsLTEpXX11cGRhdGVNYXRyaWNlcyh0LGU9MCl7Y29uc3Qgbj10aGlzLmNhbWVyYSxvPXRoaXMubWF0cml4LGk9dC5kaXN0YW5jZXx8bi5mYXI7aSE9PW4uZmFyJiYobi5mYXI9aSxuLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSksTG10LnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSxuLnBvc2l0aW9uLmNvcHkoTG10KSxCbXQuY29weShuLnBvc2l0aW9uKSxCbXQuYWRkKHRoaXMuX2N1YmVEaXJlY3Rpb25zW2VdKSxuLnVwLmNvcHkodGhpcy5fY3ViZVVwc1tlXSksbi5sb29rQXQoQm10KSxuLnVwZGF0ZU1hdHJpeFdvcmxkKCksby5tYWtlVHJhbnNsYXRpb24oLUxtdC54LC1MbXQueSwtTG10LnopLEZtdC5tdWx0aXBseU1hdHJpY2VzKG4ucHJvamVjdGlvbk1hdHJpeCxuLm1hdHJpeFdvcmxkSW52ZXJzZSksdGhpcy5fZnJ1c3R1bS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChGbXQpfX1WbXQucHJvdG90eXBlLmlzUG9pbnRMaWdodFNoYWRvdz0hMCxjbGFzcyBleHRlbmRzIEFtdHtjb25zdHJ1Y3Rvcih0LGUsbj0wLG89MSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IlBvaW50TGlnaHQiLHRoaXMuZGlzdGFuY2U9bix0aGlzLmRlY2F5PW8sdGhpcy5zaGFkb3c9bmV3IFZtdH1nZXQgcG93ZXIoKXtyZXR1cm4gNCp0aGlzLmludGVuc2l0eSpNYXRoLlBJfXNldCBwb3dlcih0KXt0aGlzLmludGVuc2l0eT10Lyg0Kk1hdGguUEkpfWRpc3Bvc2UoKXt0aGlzLnNoYWRvdy5kaXNwb3NlKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRpc3RhbmNlPXQuZGlzdGFuY2UsdGhpcy5kZWNheT10LmRlY2F5LHRoaXMuc2hhZG93PXQuc2hhZG93LmNsb25lKCksdGhpc319LnByb3RvdHlwZS5pc1BvaW50TGlnaHQ9ITA7Y2xhc3Mgam10IGV4dGVuZHMgSW10e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IFVzdCgtNSw1LDUsLTUsLjUsNTAwKSl9fWptdC5wcm90b3R5cGUuaXNEaXJlY3Rpb25hbExpZ2h0U2hhZG93PSEwLGNsYXNzIGV4dGVuZHMgQW10e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkRpcmVjdGlvbmFsTGlnaHQiLHRoaXMucG9zaXRpb24uY29weShwcnQuRGVmYXVsdFVwKSx0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMudGFyZ2V0PW5ldyBwcnQsdGhpcy5zaGFkb3c9bmV3IGptdH1kaXNwb3NlKCl7dGhpcy5zaGFkb3cuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy50YXJnZXQ9dC50YXJnZXQuY2xvbmUoKSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fS5wcm90b3R5cGUuaXNEaXJlY3Rpb25hbExpZ2h0PSEwLGNsYXNzIGV4dGVuZHMgQW10e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkFtYmllbnRMaWdodCJ9fS5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHQ9ITAsY2xhc3MgZXh0ZW5kcyBBbXR7Y29uc3RydWN0b3IodCxlLG49MTAsbz0xMCl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IlJlY3RBcmVhTGlnaHQiLHRoaXMud2lkdGg9bix0aGlzLmhlaWdodD1vfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy53aWR0aD10LndpZHRoLHRoaXMuaGVpZ2h0PXQuaGVpZ2h0LHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC53aWR0aD10aGlzLndpZHRoLGUub2JqZWN0LmhlaWdodD10aGlzLmhlaWdodCxlfX0ucHJvdG90eXBlLmlzUmVjdEFyZWFMaWdodD0hMDtjbGFzcyBVbXR7Y29uc3RydWN0b3IoKXt0aGlzLmNvZWZmaWNpZW50cz1bXTtmb3IobGV0IHQ9MDt0PDk7dCsrKXRoaXMuY29lZmZpY2llbnRzLnB1c2gobmV3IGNhdCl9c2V0KHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspdGhpcy5jb2VmZmljaWVudHNbZV0uY29weSh0W2VdKTtyZXR1cm4gdGhpc316ZXJvKCl7Zm9yKGxldCB0PTA7dDw5O3QrKyl0aGlzLmNvZWZmaWNpZW50c1t0XS5zZXQoMCwwLDApO3JldHVybiB0aGlzfWdldEF0KHQsZSl7Y29uc3Qgbj10Lngsbz10LnksaT10LnosYT10aGlzLmNvZWZmaWNpZW50cztyZXR1cm4gZS5jb3B5KGFbMF0pLm11bHRpcGx5U2NhbGFyKC4yODIwOTUpLGUuYWRkU2NhbGVkVmVjdG9yKGFbMV0sLjQ4ODYwMypvKSxlLmFkZFNjYWxlZFZlY3RvcihhWzJdLC40ODg2MDMqaSksZS5hZGRTY2FsZWRWZWN0b3IoYVszXSwuNDg4NjAzKm4pLGUuYWRkU2NhbGVkVmVjdG9yKGFbNF0sbipvKjEuMDkyNTQ4KSxlLmFkZFNjYWxlZFZlY3RvcihhWzVdLG8qaSoxLjA5MjU0OCksZS5hZGRTY2FsZWRWZWN0b3IoYVs2XSwuMzE1MzkyKigzKmkqaS0xKSksZS5hZGRTY2FsZWRWZWN0b3IoYVs3XSxuKmkqMS4wOTI1NDgpLGUuYWRkU2NhbGVkVmVjdG9yKGFbOF0sLjU0NjI3NCoobipuLW8qbykpLGV9Z2V0SXJyYWRpYW5jZUF0KHQsZSl7Y29uc3Qgbj10Lngsbz10LnksaT10LnosYT10aGlzLmNvZWZmaWNpZW50cztyZXR1cm4gZS5jb3B5KGFbMF0pLm11bHRpcGx5U2NhbGFyKC44ODYyMjcpLGUuYWRkU2NhbGVkVmVjdG9yKGFbMV0sMS4wMjMzMjgqbyksZS5hZGRTY2FsZWRWZWN0b3IoYVsyXSwxLjAyMzMyOCppKSxlLmFkZFNjYWxlZFZlY3RvcihhWzNdLDEuMDIzMzI4Km4pLGUuYWRkU2NhbGVkVmVjdG9yKGFbNF0sLjg1ODA4NipuKm8pLGUuYWRkU2NhbGVkVmVjdG9yKGFbNV0sLjg1ODA4NipvKmkpLGUuYWRkU2NhbGVkVmVjdG9yKGFbNl0sLjc0MzEyNSppKmktLjI0NzcwOCksZS5hZGRTY2FsZWRWZWN0b3IoYVs3XSwuODU4MDg2Km4qaSksZS5hZGRTY2FsZWRWZWN0b3IoYVs4XSwuNDI5MDQzKihuKm4tbypvKSksZX1hZGQodCl7Zm9yKGxldCBlPTA7ZTw5O2UrKyl0aGlzLmNvZWZmaWNpZW50c1tlXS5hZGQodC5jb2VmZmljaWVudHNbZV0pO3JldHVybiB0aGlzfWFkZFNjYWxlZFNIKHQsZSl7Zm9yKGxldCBuPTA7bjw5O24rKyl0aGlzLmNvZWZmaWNpZW50c1tuXS5hZGRTY2FsZWRWZWN0b3IodC5jb2VmZmljaWVudHNbbl0sZSk7cmV0dXJuIHRoaXN9c2NhbGUodCl7Zm9yKGxldCBlPTA7ZTw5O2UrKyl0aGlzLmNvZWZmaWNpZW50c1tlXS5tdWx0aXBseVNjYWxhcih0KTtyZXR1cm4gdGhpc31sZXJwKHQsZSl7Zm9yKGxldCBuPTA7bjw5O24rKyl0aGlzLmNvZWZmaWNpZW50c1tuXS5sZXJwKHQuY29lZmZpY2llbnRzW25dLGUpO3JldHVybiB0aGlzfWVxdWFscyh0KXtmb3IobGV0IGU9MDtlPDk7ZSsrKWlmKCF0aGlzLmNvZWZmaWNpZW50c1tlXS5lcXVhbHModC5jb2VmZmljaWVudHNbZV0pKXJldHVybiExO3JldHVybiEwfWNvcHkodCl7cmV0dXJuIHRoaXMuc2V0KHQuY29lZmZpY2llbnRzKX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1mcm9tQXJyYXkodCxlPTApe2NvbnN0IG49dGhpcy5jb2VmZmljaWVudHM7Zm9yKGxldCBvPTA7bzw5O28rKyluW29dLmZyb21BcnJheSh0LGUrMypvKTtyZXR1cm4gdGhpc310b0FycmF5KHQ9W10sZT0wKXtjb25zdCBuPXRoaXMuY29lZmZpY2llbnRzO2ZvcihsZXQgbz0wO288OTtvKyspbltvXS50b0FycmF5KHQsZSszKm8pO3JldHVybiB0fXN0YXRpYyBnZXRCYXNpc0F0KHQsZSl7Y29uc3Qgbj10Lngsbz10LnksaT10Lno7ZVswXT0uMjgyMDk1LGVbMV09LjQ4ODYwMypvLGVbMl09LjQ4ODYwMyppLGVbM109LjQ4ODYwMypuLGVbNF09MS4wOTI1NDgqbipvLGVbNV09MS4wOTI1NDgqbyppLGVbNl09LjMxNTM5MiooMyppKmktMSksZVs3XT0xLjA5MjU0OCpuKmksZVs4XT0uNTQ2Mjc0KihuKm4tbypvKX19VW10LnByb3RvdHlwZS5pc1NwaGVyaWNhbEhhcm1vbmljczM9ITA7Y2xhc3MgR210IGV4dGVuZHMgQW10e2NvbnN0cnVjdG9yKHQ9bmV3IFVtdCxlPTEpe3N1cGVyKHZvaWQgMCxlKSx0aGlzLnNoPXR9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnNoLmNvcHkodC5zaCksdGhpc31mcm9tSlNPTih0KXtyZXR1cm4gdGhpcy5pbnRlbnNpdHk9dC5pbnRlbnNpdHksdGhpcy5zaC5mcm9tQXJyYXkodC5zaCksdGhpc310b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LnNoPXRoaXMuc2gudG9BcnJheSgpLGV9fWxldCBXbXQ7R210LnByb3RvdHlwZS5pc0xpZ2h0UHJvYmU9ITAsY2xhc3MgZXh0ZW5kcyBxcnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkiLHRoaXMuaW5zdGFuY2VDb3VudD0xLzB9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmluc3RhbmNlQ291bnQ9dC5pbnN0YW5jZUNvdW50LHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04odGhpcyk7cmV0dXJuIHQuaW5zdGFuY2VDb3VudD10aGlzLmluc3RhbmNlQ291bnQsdC5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5PSEwLHR9fS5wcm90b3R5cGUuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeT0hMCxjbGFzcyBleHRlbmRzIHpydHtjb25zdHJ1Y3Rvcih0LGUsbixvPTEpeyJudW1iZXIiPT10eXBlb2YgbiYmKG89bixuPSExLGNvbnNvbGUuZXJyb3IoIlRIUkVFLkluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZTogVGhlIGNvbnN0cnVjdG9yIG5vdyBleHBlY3RzIG5vcm1hbGl6ZWQgYXMgdGhlIHRoaXJkIGFyZ3VtZW50LiIpKSxzdXBlcih0LGUsbiksdGhpcy5tZXNoUGVyQXR0cmlidXRlPW99Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9dC5tZXNoUGVyQXR0cmlidXRlLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC5tZXNoUGVyQXR0cmlidXRlPXRoaXMubWVzaFBlckF0dHJpYnV0ZSx0LmlzSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlPSEwLHR9fS5wcm90b3R5cGUuaXNJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU9ITAsY2xhc3MgZXh0ZW5kcyB4bXR7Y29uc3RydWN0b3IodCl7c3VwZXIodCksInVuZGVmaW5lZCI9PXR5cGVvZiBjcmVhdGVJbWFnZUJpdG1hcCYmY29uc29sZS53YXJuKCJUSFJFRS5JbWFnZUJpdG1hcExvYWRlcjogY3JlYXRlSW1hZ2VCaXRtYXAoKSBub3Qgc3VwcG9ydGVkLiIpLCJ1bmRlZmluZWQiPT10eXBlb2YgZmV0Y2gmJmNvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VCaXRtYXBMb2FkZXI6IGZldGNoKCkgbm90IHN1cHBvcnRlZC4iKSx0aGlzLm9wdGlvbnM9e3ByZW11bHRpcGx5QWxwaGE6Im5vbmUifX1zZXRPcHRpb25zKHQpe3JldHVybiB0aGlzLm9wdGlvbnM9dCx0aGlzfWxvYWQodCxlLG4sbyl7dm9pZCAwPT09dCYmKHQ9IiIpLHZvaWQgMCE9PXRoaXMucGF0aCYmKHQ9dGhpcy5wYXRoK3QpLHQ9dGhpcy5tYW5hZ2VyLnJlc29sdmVVUkwodCk7Y29uc3QgaT10aGlzLGE9TW10LmdldCh0KTtpZih2b2lkIDAhPT1hKXJldHVybiBpLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZSYmZShhKSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pLDApLGE7Y29uc3Qgcj17fTtyLmNyZWRlbnRpYWxzPSJhbm9ueW1vdXMiPT09dGhpcy5jcm9zc09yaWdpbj8ic2FtZS1vcmlnaW4iOiJpbmNsdWRlIixyLmhlYWRlcnM9dGhpcy5yZXF1ZXN0SGVhZGVyLGZldGNoKHQscikudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuYmxvYigpfSkpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiBjcmVhdGVJbWFnZUJpdG1hcCh0LE9iamVjdC5hc3NpZ24oaS5vcHRpb25zLHtjb2xvclNwYWNlQ29udmVyc2lvbjoibm9uZSJ9KSl9KSkudGhlbigoZnVuY3Rpb24obil7TW10LmFkZCh0LG4pLGUmJmUobiksaS5tYW5hZ2VyLml0ZW1FbmQodCl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe28mJm8oZSksaS5tYW5hZ2VyLml0ZW1FcnJvcih0KSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pKSxpLm1hbmFnZXIuaXRlbVN0YXJ0KHQpfX0ucHJvdG90eXBlLmlzSW1hZ2VCaXRtYXBMb2FkZXI9ITA7Y2xhc3MgWW10IGV4dGVuZHMgeG10e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4sbyl7Y29uc3QgaT10aGlzLGE9bmV3IFBtdCh0aGlzLm1hbmFnZXIpO2Euc2V0UmVzcG9uc2VUeXBlKCJhcnJheWJ1ZmZlciIpLGEuc2V0UGF0aCh0aGlzLnBhdGgpLGEuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLGEuc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKSxhLmxvYWQodCwoZnVuY3Rpb24obil7dHJ5e2NvbnN0IHQ9bi5zbGljZSgwKTsodm9pZCAwPT09V210JiYoV210PW5ldyh3aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSksV210KS5kZWNvZGVBdWRpb0RhdGEodCwoZnVuY3Rpb24odCl7ZSh0KX0pKX1jYXRjaChlKXtvP28oZSk6Y29uc29sZS5lcnJvcihlKSxpLm1hbmFnZXIuaXRlbUVycm9yKHQpfX0pLG4sbyl9fShjbGFzcyBleHRlbmRzIEdtdHtjb25zdHJ1Y3Rvcih0LGUsbj0xKXtzdXBlcih2b2lkIDAsbik7Y29uc3Qgbz0obmV3IFJydCkuc2V0KHQpLGk9KG5ldyBScnQpLnNldChlKSxhPW5ldyBjYXQoby5yLG8uZyxvLmIpLHI9bmV3IGNhdChpLnIsaS5nLGkuYikscz1NYXRoLnNxcnQoTWF0aC5QSSksbD1zKk1hdGguc3FydCguNzUpO3RoaXMuc2guY29lZmZpY2llbnRzWzBdLmNvcHkoYSkuYWRkKHIpLm11bHRpcGx5U2NhbGFyKHMpLHRoaXMuc2guY29lZmZpY2llbnRzWzFdLmNvcHkoYSkuc3ViKHIpLm11bHRpcGx5U2NhbGFyKGwpfX0pLnByb3RvdHlwZS5pc0hlbWlzcGhlcmVMaWdodFByb2JlPSEwLGNsYXNzIGV4dGVuZHMgR210e2NvbnN0cnVjdG9yKHQsZT0xKXtzdXBlcih2b2lkIDAsZSk7Y29uc3Qgbj0obmV3IFJydCkuc2V0KHQpO3RoaXMuc2guY29lZmZpY2llbnRzWzBdLnNldChuLnIsbi5nLG4uYikubXVsdGlwbHlTY2FsYXIoMipNYXRoLnNxcnQoTWF0aC5QSSkpfX0ucHJvdG90eXBlLmlzQW1iaWVudExpZ2h0UHJvYmU9ITA7Y2xhc3MgcW10e2NvbnN0cnVjdG9yKHQsZSxuKXtsZXQgbyxpLGE7c3dpdGNoKHRoaXMuYmluZGluZz10LHRoaXMudmFsdWVTaXplPW4sZSl7Y2FzZSJxdWF0ZXJuaW9uIjpvPXRoaXMuX3NsZXJwLGk9dGhpcy5fc2xlcnBBZGRpdGl2ZSxhPXRoaXMuX3NldEFkZGl0aXZlSWRlbnRpdHlRdWF0ZXJuaW9uLHRoaXMuYnVmZmVyPW5ldyBGbG9hdDY0QXJyYXkoNipuKSx0aGlzLl93b3JrSW5kZXg9NTticmVhaztjYXNlInN0cmluZyI6Y2FzZSJib29sIjpvPXRoaXMuX3NlbGVjdCxpPXRoaXMuX3NlbGVjdCxhPXRoaXMuX3NldEFkZGl0aXZlSWRlbnRpdHlPdGhlcix0aGlzLmJ1ZmZlcj1uZXcgQXJyYXkoNSpuKTticmVhaztkZWZhdWx0Om89dGhpcy5fbGVycCxpPXRoaXMuX2xlcnBBZGRpdGl2ZSxhPXRoaXMuX3NldEFkZGl0aXZlSWRlbnRpdHlOdW1lcmljLHRoaXMuYnVmZmVyPW5ldyBGbG9hdDY0QXJyYXkoNSpuKX10aGlzLl9taXhCdWZmZXJSZWdpb249byx0aGlzLl9taXhCdWZmZXJSZWdpb25BZGRpdGl2ZT1pLHRoaXMuX3NldElkZW50aXR5PWEsdGhpcy5fb3JpZ0luZGV4PTMsdGhpcy5fYWRkSW5kZXg9NCx0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9MCx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT0wLHRoaXMudXNlQ291bnQ9MCx0aGlzLnJlZmVyZW5jZUNvdW50PTB9YWNjdW11bGF0ZSh0LGUpe2NvbnN0IG49dGhpcy5idWZmZXIsbz10aGlzLnZhbHVlU2l6ZSxpPXQqbytvO2xldCBhPXRoaXMuY3VtdWxhdGl2ZVdlaWdodDtpZigwPT09YSl7Zm9yKGxldCB0PTA7dCE9PW87Kyt0KW5baSt0XT1uW3RdO2E9ZX1lbHNlIGErPWUsdGhpcy5fbWl4QnVmZmVyUmVnaW9uKG4saSwwLGUvYSxvKTt0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9YX1hY2N1bXVsYXRlQWRkaXRpdmUodCl7Y29uc3QgZT10aGlzLmJ1ZmZlcixuPXRoaXMudmFsdWVTaXplLG89bip0aGlzLl9hZGRJbmRleDswPT09dGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmUmJnRoaXMuX3NldElkZW50aXR5KCksdGhpcy5fbWl4QnVmZmVyUmVnaW9uQWRkaXRpdmUoZSxvLDAsdCxuKSx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZSs9dH1hcHBseSh0KXtjb25zdCBlPXRoaXMudmFsdWVTaXplLG49dGhpcy5idWZmZXIsbz10KmUrZSxpPXRoaXMuY3VtdWxhdGl2ZVdlaWdodCxhPXRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlLHI9dGhpcy5iaW5kaW5nO3RoaXMuY3VtdWxhdGl2ZVdlaWdodD0wLHRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlPTAsaTwxJiZ0aGlzLl9taXhCdWZmZXJSZWdpb24obixvLGUqdGhpcy5fb3JpZ0luZGV4LDEtaSxlKSxhPjAmJnRoaXMuX21peEJ1ZmZlclJlZ2lvbkFkZGl0aXZlKG4sbyx0aGlzLl9hZGRJbmRleCplLDEsZSk7Zm9yKGxldCB0PWUsaT1lK2U7dCE9PWk7Kyt0KWlmKG5bdF0hPT1uW3QrZV0pe3Iuc2V0VmFsdWUobixvKTticmVha319c2F2ZU9yaWdpbmFsU3RhdGUoKXtjb25zdCB0PXRoaXMuYnVmZmVyLGU9dGhpcy52YWx1ZVNpemUsbj1lKnRoaXMuX29yaWdJbmRleDt0aGlzLmJpbmRpbmcuZ2V0VmFsdWUodCxuKTtmb3IobGV0IG89ZSxpPW47byE9PWk7KytvKXRbb109dFtuK28lZV07dGhpcy5fc2V0SWRlbnRpdHkoKSx0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9MCx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT0wfXJlc3RvcmVPcmlnaW5hbFN0YXRlKCl7dGhpcy5iaW5kaW5nLnNldFZhbHVlKHRoaXMuYnVmZmVyLDMqdGhpcy52YWx1ZVNpemUpfV9zZXRBZGRpdGl2ZUlkZW50aXR5TnVtZXJpYygpe2NvbnN0IHQ9dGhpcy5fYWRkSW5kZXgqdGhpcy52YWx1ZVNpemUsZT10K3RoaXMudmFsdWVTaXplO2ZvcihsZXQgbj10O248ZTtuKyspdGhpcy5idWZmZXJbbl09MH1fc2V0QWRkaXRpdmVJZGVudGl0eVF1YXRlcm5pb24oKXt0aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5TnVtZXJpYygpLHRoaXMuYnVmZmVyW3RoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplKzNdPTF9X3NldEFkZGl0aXZlSWRlbnRpdHlPdGhlcigpe2NvbnN0IHQ9dGhpcy5fb3JpZ0luZGV4KnRoaXMudmFsdWVTaXplLGU9dGhpcy5fYWRkSW5kZXgqdGhpcy52YWx1ZVNpemU7Zm9yKGxldCBuPTA7bjx0aGlzLnZhbHVlU2l6ZTtuKyspdGhpcy5idWZmZXJbZStuXT10aGlzLmJ1ZmZlclt0K25dfV9zZWxlY3QodCxlLG4sbyxpKXtpZihvPj0uNSlmb3IobGV0IG89MDtvIT09aTsrK28pdFtlK29dPXRbbitvXX1fc2xlcnAodCxlLG4sbyl7bGF0LnNsZXJwRmxhdCh0LGUsdCxlLHQsbixvKX1fc2xlcnBBZGRpdGl2ZSh0LGUsbixvLGkpe2NvbnN0IGE9dGhpcy5fd29ya0luZGV4Kmk7bGF0Lm11bHRpcGx5UXVhdGVybmlvbnNGbGF0KHQsYSx0LGUsdCxuKSxsYXQuc2xlcnBGbGF0KHQsZSx0LGUsdCxhLG8pfV9sZXJwKHQsZSxuLG8saSl7Y29uc3QgYT0xLW87Zm9yKGxldCByPTA7ciE9PWk7KytyKXtjb25zdCBpPWUrcjt0W2ldPXRbaV0qYSt0W24rcl0qb319X2xlcnBBZGRpdGl2ZSh0LGUsbixvLGkpe2ZvcihsZXQgYT0wO2EhPT1pOysrYSl7Y29uc3QgaT1lK2E7dFtpXT10W2ldK3RbbithXSpvfX19Y29uc3QgWm10PW5ldyBSZWdFeHAoIltcXFtcXF1cXC46XFwvXSIsImciKSxYbXQ9IlteXFxbXFxdXFwuOlxcL10iLEttdD0iW14iKyJcXFtcXF1cXC46XFwvIi5yZXBsYWNlKCJcXC4iLCIiKSsiXSIsSm10PS8oKD86V0MrW1wvOl0pKikvLnNvdXJjZS5yZXBsYWNlKCJXQyIsWG10KSxRbXQ9LyhXQ09EKyk/Ly5zb3VyY2UucmVwbGFjZSgiV0NPRCIsS210KSwkbXQ9Lyg/OlwuKFdDKykoPzpcWyguKylcXSk/KT8vLnNvdXJjZS5yZXBsYWNlKCJXQyIsWG10KSx0dXQ9L1wuKFdDKykoPzpcWyguKylcXSk/Ly5zb3VyY2UucmVwbGFjZSgiV0MiLFhtdCksZXV0PW5ldyBSZWdFeHAoIl4iK0ptdCtRbXQrJG10K3R1dCsiJCIpLG51dD1bIm1hdGVyaWFsIiwibWF0ZXJpYWxzIiwiYm9uZXMiXTtjbGFzcyBvdXR7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMucGF0aD1lLHRoaXMucGFyc2VkUGF0aD1ufHxvdXQucGFyc2VUcmFja05hbWUoZSksdGhpcy5ub2RlPW91dC5maW5kTm9kZSh0LHRoaXMucGFyc2VkUGF0aC5ub2RlTmFtZSl8fHQsdGhpcy5yb290Tm9kZT10LHRoaXMuZ2V0VmFsdWU9dGhpcy5fZ2V0VmFsdWVfdW5ib3VuZCx0aGlzLnNldFZhbHVlPXRoaXMuX3NldFZhbHVlX3VuYm91bmR9c3RhdGljIGNyZWF0ZSh0LGUsbil7cmV0dXJuIHQmJnQuaXNBbmltYXRpb25PYmplY3RHcm91cD9uZXcgb3V0LkNvbXBvc2l0ZSh0LGUsbik6bmV3IG91dCh0LGUsbil9c3RhdGljIHNhbml0aXplTm9kZU5hbWUodCl7cmV0dXJuIHQucmVwbGFjZSgvXHMvZywiXyIpLnJlcGxhY2UoWm10LCIiKX1zdGF0aWMgcGFyc2VUcmFja05hbWUodCl7Y29uc3QgZT1ldXQuZXhlYyh0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIlByb3BlcnR5QmluZGluZzogQ2Fubm90IHBhcnNlIHRyYWNrTmFtZTogIit0KTtjb25zdCBuPXtub2RlTmFtZTplWzJdLG9iamVjdE5hbWU6ZVszXSxvYmplY3RJbmRleDplWzRdLHByb3BlcnR5TmFtZTplWzVdLHByb3BlcnR5SW5kZXg6ZVs2XX0sbz1uLm5vZGVOYW1lJiZuLm5vZGVOYW1lLmxhc3RJbmRleE9mKCIuIik7aWYodm9pZCAwIT09byYmLTEhPT1vKXtjb25zdCB0PW4ubm9kZU5hbWUuc3Vic3RyaW5nKG8rMSk7LTEhPT1udXQuaW5kZXhPZih0KSYmKG4ubm9kZU5hbWU9bi5ub2RlTmFtZS5zdWJzdHJpbmcoMCxvKSxuLm9iamVjdE5hbWU9dCl9aWYobnVsbD09PW4ucHJvcGVydHlOYW1lfHwwPT09bi5wcm9wZXJ0eU5hbWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiUHJvcGVydHlCaW5kaW5nOiBjYW4gbm90IHBhcnNlIHByb3BlcnR5TmFtZSBmcm9tIHRyYWNrTmFtZTogIit0KTtyZXR1cm4gbn1zdGF0aWMgZmluZE5vZGUodCxlKXtpZighZXx8IiI9PT1lfHwiLiI9PT1lfHwtMT09PWV8fGU9PT10Lm5hbWV8fGU9PT10LnV1aWQpcmV0dXJuIHQ7aWYodC5za2VsZXRvbil7Y29uc3Qgbj10LnNrZWxldG9uLmdldEJvbmVCeU5hbWUoZSk7aWYodm9pZCAwIT09bilyZXR1cm4gbn1pZih0LmNoaWxkcmVuKXtjb25zdCBuPWZ1bmN0aW9uKHQpe2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKXtjb25zdCBpPXRbb107aWYoaS5uYW1lPT09ZXx8aS51dWlkPT09ZSlyZXR1cm4gaTtjb25zdCBhPW4oaS5jaGlsZHJlbik7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sbz1uKHQuY2hpbGRyZW4pO2lmKG8pcmV0dXJuIG99cmV0dXJuIG51bGx9X2dldFZhbHVlX3VuYXZhaWxhYmxlKCl7fV9zZXRWYWx1ZV91bmF2YWlsYWJsZSgpe31fZ2V0VmFsdWVfZGlyZWN0KHQsZSl7dFtlXT10aGlzLm5vZGVbdGhpcy5wcm9wZXJ0eU5hbWVdfV9nZXRWYWx1ZV9hcnJheSh0LGUpe2NvbnN0IG49dGhpcy5yZXNvbHZlZFByb3BlcnR5O2ZvcihsZXQgbz0wLGk9bi5sZW5ndGg7byE9PWk7KytvKXRbZSsrXT1uW29dfV9nZXRWYWx1ZV9hcnJheUVsZW1lbnQodCxlKXt0W2VdPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eVt0aGlzLnByb3BlcnR5SW5kZXhdfV9nZXRWYWx1ZV90b0FycmF5KHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LnRvQXJyYXkodCxlKX1fc2V0VmFsdWVfZGlyZWN0KHQsZSl7dGhpcy50YXJnZXRPYmplY3RbdGhpcy5wcm9wZXJ0eU5hbWVdPXRbZV19X3NldFZhbHVlX2RpcmVjdF9zZXROZWVkc1VwZGF0ZSh0LGUpe3RoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9kaXJlY3Rfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZSh0LGUpe3RoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2FycmF5KHQsZSl7Y29uc3Qgbj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBvPTAsaT1uLmxlbmd0aDtvIT09aTsrK28pbltvXT10W2UrK119X3NldFZhbHVlX2FycmF5X3NldE5lZWRzVXBkYXRlKHQsZSl7Y29uc3Qgbj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBvPTAsaT1uLmxlbmd0aDtvIT09aTsrK28pbltvXT10W2UrK107dGhpcy50YXJnZXRPYmplY3QubmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2FycmF5X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxlKXtjb25zdCBuPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eTtmb3IobGV0IG89MCxpPW4ubGVuZ3RoO28hPT1pOysrbyluW29dPXRbZSsrXTt0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheUVsZW1lbnQodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XT10W2VdfV9zZXRWYWx1ZV9hcnJheUVsZW1lbnRfc2V0TmVlZHNVcGRhdGUodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheUVsZW1lbnRfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eVt0aGlzLnByb3BlcnR5SW5kZXhdPXRbZV0sdGhpcy50YXJnZXRPYmplY3QubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfZnJvbUFycmF5KHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LmZyb21BcnJheSh0LGUpfV9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TmVlZHNVcGRhdGUodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHkuZnJvbUFycmF5KHQsZSksdGhpcy50YXJnZXRPYmplY3QubmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2Zyb21BcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlKHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LmZyb21BcnJheSh0LGUpLHRoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X2dldFZhbHVlX3VuYm91bmQodCxlKXt0aGlzLmJpbmQoKSx0aGlzLmdldFZhbHVlKHQsZSl9X3NldFZhbHVlX3VuYm91bmQodCxlKXt0aGlzLmJpbmQoKSx0aGlzLnNldFZhbHVlKHQsZSl9YmluZCgpe2xldCB0PXRoaXMubm9kZTtjb25zdCBlPXRoaXMucGFyc2VkUGF0aCxuPWUub2JqZWN0TmFtZSxvPWUucHJvcGVydHlOYW1lO2xldCBpPWUucHJvcGVydHlJbmRleDtpZih0fHwodD1vdXQuZmluZE5vZGUodGhpcy5yb290Tm9kZSxlLm5vZGVOYW1lKXx8dGhpcy5yb290Tm9kZSx0aGlzLm5vZGU9dCksdGhpcy5nZXRWYWx1ZT10aGlzLl9nZXRWYWx1ZV91bmF2YWlsYWJsZSx0aGlzLnNldFZhbHVlPXRoaXMuX3NldFZhbHVlX3VuYXZhaWxhYmxlLCF0KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogVHJ5aW5nIHRvIHVwZGF0ZSBub2RlIGZvciB0cmFjazogIit0aGlzLnBhdGgrIiBidXQgaXQgd2Fzbid0IGZvdW5kLiIpO2lmKG4pe2xldCBvPWUub2JqZWN0SW5kZXg7c3dpdGNoKG4pe2Nhc2UibWF0ZXJpYWxzIjppZighdC5tYXRlcmlhbClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtYXRlcmlhbCBhcyBub2RlIGRvZXMgbm90IGhhdmUgYSBtYXRlcmlhbC4iLHRoaXMpO2lmKCF0Lm1hdGVyaWFsLm1hdGVyaWFscylyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtYXRlcmlhbC5tYXRlcmlhbHMgYXMgbm9kZS5tYXRlcmlhbCBkb2VzIG5vdCBoYXZlIGEgbWF0ZXJpYWxzIGFycmF5LiIsdGhpcyk7dD10Lm1hdGVyaWFsLm1hdGVyaWFsczticmVhaztjYXNlImJvbmVzIjppZighdC5za2VsZXRvbilyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBib25lcyBhcyBub2RlIGRvZXMgbm90IGhhdmUgYSBza2VsZXRvbi4iLHRoaXMpO3Q9dC5za2VsZXRvbi5ib25lcztmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpZih0W2VdLm5hbWU9PT1vKXtvPWU7YnJlYWt9YnJlYWs7ZGVmYXVsdDppZih2b2lkIDA9PT10W25dKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG9iamVjdE5hbWUgb2Ygbm9kZSB1bmRlZmluZWQuIix0aGlzKTt0PXRbbl19aWYodm9pZCAwIT09byl7aWYodm9pZCAwPT09dFtvXSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IFRyeWluZyB0byBiaW5kIHRvIG9iamVjdEluZGV4IG9mIG9iamVjdE5hbWUsIGJ1dCBpcyB1bmRlZmluZWQuIix0aGlzLHQpO3Q9dFtvXX19Y29uc3QgYT10W29dO2lmKHZvaWQgMD09PWEpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBUcnlpbmcgdG8gdXBkYXRlIHByb3BlcnR5IGZvciB0cmFjazogIitlLm5vZGVOYW1lKyIuIitvKyIgYnV0IGl0IHdhc24ndCBmb3VuZC4iLHQpO2xldCByPXRoaXMuVmVyc2lvbmluZy5Ob25lO3RoaXMudGFyZ2V0T2JqZWN0PXQsdm9pZCAwIT09dC5uZWVkc1VwZGF0ZT9yPXRoaXMuVmVyc2lvbmluZy5OZWVkc1VwZGF0ZTp2b2lkIDAhPT10Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGUmJihyPXRoaXMuVmVyc2lvbmluZy5NYXRyaXhXb3JsZE5lZWRzVXBkYXRlKTtsZXQgcz10aGlzLkJpbmRpbmdUeXBlLkRpcmVjdDtpZih2b2lkIDAhPT1pKXtpZigibW9ycGhUYXJnZXRJbmZsdWVuY2VzIj09PW8pe2lmKCF0Lmdlb21ldHJ5KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG1vcnBoVGFyZ2V0SW5mbHVlbmNlcyBiZWNhdXNlIG5vZGUgZG9lcyBub3QgaGF2ZSBhIGdlb21ldHJ5LiIsdGhpcyk7aWYoIXQuZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtb3JwaFRhcmdldEluZmx1ZW5jZXMgb24gVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIsdGhpcyk7aWYoIXQuZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG1vcnBoVGFyZ2V0SW5mbHVlbmNlcyBiZWNhdXNlIG5vZGUgZG9lcyBub3QgaGF2ZSBhIGdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy4iLHRoaXMpO3ZvaWQgMCE9PXQubW9ycGhUYXJnZXREaWN0aW9uYXJ5W2ldJiYoaT10Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtpXSl9cz10aGlzLkJpbmRpbmdUeXBlLkFycmF5RWxlbWVudCx0aGlzLnJlc29sdmVkUHJvcGVydHk9YSx0aGlzLnByb3BlcnR5SW5kZXg9aX1lbHNlIHZvaWQgMCE9PWEuZnJvbUFycmF5JiZ2b2lkIDAhPT1hLnRvQXJyYXk/KHM9dGhpcy5CaW5kaW5nVHlwZS5IYXNGcm9tVG9BcnJheSx0aGlzLnJlc29sdmVkUHJvcGVydHk9YSk6QXJyYXkuaXNBcnJheShhKT8ocz10aGlzLkJpbmRpbmdUeXBlLkVudGlyZUFycmF5LHRoaXMucmVzb2x2ZWRQcm9wZXJ0eT1hKTp0aGlzLnByb3BlcnR5TmFtZT1vO3RoaXMuZ2V0VmFsdWU9dGhpcy5HZXR0ZXJCeUJpbmRpbmdUeXBlW3NdLHRoaXMuc2V0VmFsdWU9dGhpcy5TZXR0ZXJCeUJpbmRpbmdUeXBlQW5kVmVyc2lvbmluZ1tzXVtyXX11bmJpbmQoKXt0aGlzLm5vZGU9bnVsbCx0aGlzLmdldFZhbHVlPXRoaXMuX2dldFZhbHVlX3VuYm91bmQsdGhpcy5zZXRWYWx1ZT10aGlzLl9zZXRWYWx1ZV91bmJvdW5kfX1vdXQuQ29tcG9zaXRlPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxuKXtjb25zdCBvPW58fG91dC5wYXJzZVRyYWNrTmFtZShlKTt0aGlzLl90YXJnZXRHcm91cD10LHRoaXMuX2JpbmRpbmdzPXQuc3Vic2NyaWJlXyhlLG8pfWdldFZhbHVlKHQsZSl7dGhpcy5iaW5kKCk7Y29uc3Qgbj10aGlzLl9iaW5kaW5nc1t0aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c19dO3ZvaWQgMCE9PW4mJm4uZ2V0VmFsdWUodCxlKX1zZXRWYWx1ZSh0LGUpe2NvbnN0IG49dGhpcy5fYmluZGluZ3M7Zm9yKGxldCBvPXRoaXMuX3RhcmdldEdyb3VwLm5DYWNoZWRPYmplY3RzXyxpPW4ubGVuZ3RoO28hPT1pOysrbyluW29dLnNldFZhbHVlKHQsZSl9YmluZCgpe2NvbnN0IHQ9dGhpcy5fYmluZGluZ3M7Zm9yKGxldCBlPXRoaXMuX3RhcmdldEdyb3VwLm5DYWNoZWRPYmplY3RzXyxuPXQubGVuZ3RoO2UhPT1uOysrZSl0W2VdLmJpbmQoKX11bmJpbmQoKXtjb25zdCB0PXRoaXMuX2JpbmRpbmdzO2ZvcihsZXQgZT10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18sbj10Lmxlbmd0aDtlIT09bjsrK2UpdFtlXS51bmJpbmQoKX19LG91dC5wcm90b3R5cGUuQmluZGluZ1R5cGU9e0RpcmVjdDowLEVudGlyZUFycmF5OjEsQXJyYXlFbGVtZW50OjIsSGFzRnJvbVRvQXJyYXk6M30sb3V0LnByb3RvdHlwZS5WZXJzaW9uaW5nPXtOb25lOjAsTmVlZHNVcGRhdGU6MSxNYXRyaXhXb3JsZE5lZWRzVXBkYXRlOjJ9LG91dC5wcm90b3R5cGUuR2V0dGVyQnlCaW5kaW5nVHlwZT1bb3V0LnByb3RvdHlwZS5fZ2V0VmFsdWVfZGlyZWN0LG91dC5wcm90b3R5cGUuX2dldFZhbHVlX2FycmF5LG91dC5wcm90b3R5cGUuX2dldFZhbHVlX2FycmF5RWxlbWVudCxvdXQucHJvdG90eXBlLl9nZXRWYWx1ZV90b0FycmF5XSxvdXQucHJvdG90eXBlLlNldHRlckJ5QmluZGluZ1R5cGVBbmRWZXJzaW9uaW5nPVtbb3V0LnByb3RvdHlwZS5fc2V0VmFsdWVfZGlyZWN0LG91dC5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdF9zZXROZWVkc1VwZGF0ZSxvdXQucHJvdG90eXBlLl9zZXRWYWx1ZV9kaXJlY3Rfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZV0sW291dC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5LG91dC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5X3NldE5lZWRzVXBkYXRlLG91dC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdLFtvdXQucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheUVsZW1lbnQsb3V0LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE5lZWRzVXBkYXRlLG91dC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5RWxlbWVudF9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXSxbb3V0LnByb3RvdHlwZS5fc2V0VmFsdWVfZnJvbUFycmF5LG91dC5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheV9zZXROZWVkc1VwZGF0ZSxvdXQucHJvdG90eXBlLl9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZV1dO2NsYXNzIGl1dHtjb25zdHJ1Y3Rvcih0LGUsbj1udWxsLG89ZS5ibGVuZE1vZGUpe3RoaXMuX21peGVyPXQsdGhpcy5fY2xpcD1lLHRoaXMuX2xvY2FsUm9vdD1uLHRoaXMuYmxlbmRNb2RlPW87Y29uc3QgaT1lLnRyYWNrcyxhPWkubGVuZ3RoLHI9bmV3IEFycmF5KGEpLHM9e2VuZGluZ1N0YXJ0OkFpdCxlbmRpbmdFbmQ6QWl0fTtmb3IobGV0IHQ9MDt0IT09YTsrK3Qpe2NvbnN0IGU9aVt0XS5jcmVhdGVJbnRlcnBvbGFudChudWxsKTtyW3RdPWUsZS5zZXR0aW5ncz1zfXRoaXMuX2ludGVycG9sYW50U2V0dGluZ3M9cyx0aGlzLl9pbnRlcnBvbGFudHM9cix0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzPW5ldyBBcnJheShhKSx0aGlzLl9jYWNoZUluZGV4PW51bGwsdGhpcy5fYnlDbGlwQ2FjaGVJbmRleD1udWxsLHRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50PW51bGwsdGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ9bnVsbCx0aGlzLmxvb3A9MjIwMSx0aGlzLl9sb29wQ291bnQ9LTEsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy50aW1lPTAsdGhpcy50aW1lU2NhbGU9MSx0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9MSx0aGlzLndlaWdodD0xLHRoaXMuX2VmZmVjdGl2ZVdlaWdodD0xLHRoaXMucmVwZXRpdGlvbnM9MS8wLHRoaXMucGF1c2VkPSExLHRoaXMuZW5hYmxlZD0hMCx0aGlzLmNsYW1wV2hlbkZpbmlzaGVkPSExLHRoaXMuemVyb1Nsb3BlQXRTdGFydD0hMCx0aGlzLnplcm9TbG9wZUF0RW5kPSEwfXBsYXkoKXtyZXR1cm4gdGhpcy5fbWl4ZXIuX2FjdGl2YXRlQWN0aW9uKHRoaXMpLHRoaXN9c3RvcCgpe3JldHVybiB0aGlzLl9taXhlci5fZGVhY3RpdmF0ZUFjdGlvbih0aGlzKSx0aGlzLnJlc2V0KCl9cmVzZXQoKXtyZXR1cm4gdGhpcy5wYXVzZWQ9ITEsdGhpcy5lbmFibGVkPSEwLHRoaXMudGltZT0wLHRoaXMuX2xvb3BDb3VudD0tMSx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLnN0b3BGYWRpbmcoKS5zdG9wV2FycGluZygpfWlzUnVubmluZygpe3JldHVybiB0aGlzLmVuYWJsZWQmJiF0aGlzLnBhdXNlZCYmMCE9PXRoaXMudGltZVNjYWxlJiZudWxsPT09dGhpcy5fc3RhcnRUaW1lJiZ0aGlzLl9taXhlci5faXNBY3RpdmVBY3Rpb24odGhpcyl9aXNTY2hlZHVsZWQoKXtyZXR1cm4gdGhpcy5fbWl4ZXIuX2lzQWN0aXZlQWN0aW9uKHRoaXMpfXN0YXJ0QXQodCl7cmV0dXJuIHRoaXMuX3N0YXJ0VGltZT10LHRoaXN9c2V0TG9vcCh0LGUpe3JldHVybiB0aGlzLmxvb3A9dCx0aGlzLnJlcGV0aXRpb25zPWUsdGhpc31zZXRFZmZlY3RpdmVXZWlnaHQodCl7cmV0dXJuIHRoaXMud2VpZ2h0PXQsdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PXRoaXMuZW5hYmxlZD90OjAsdGhpcy5zdG9wRmFkaW5nKCl9Z2V0RWZmZWN0aXZlV2VpZ2h0KCl7cmV0dXJuIHRoaXMuX2VmZmVjdGl2ZVdlaWdodH1mYWRlSW4odCl7cmV0dXJuIHRoaXMuX3NjaGVkdWxlRmFkaW5nKHQsMCwxKX1mYWRlT3V0KHQpe3JldHVybiB0aGlzLl9zY2hlZHVsZUZhZGluZyh0LDEsMCl9Y3Jvc3NGYWRlRnJvbSh0LGUsbil7aWYodC5mYWRlT3V0KGUpLHRoaXMuZmFkZUluKGUpLG4pe2NvbnN0IG49dGhpcy5fY2xpcC5kdXJhdGlvbixvPXQuX2NsaXAuZHVyYXRpb24saT1uL287dC53YXJwKDEsby9uLGUpLHRoaXMud2FycChpLDEsZSl9cmV0dXJuIHRoaXN9Y3Jvc3NGYWRlVG8odCxlLG4pe3JldHVybiB0LmNyb3NzRmFkZUZyb20odGhpcyxlLG4pfXN0b3BGYWRpbmcoKXtjb25zdCB0PXRoaXMuX3dlaWdodEludGVycG9sYW50O3JldHVybiBudWxsIT09dCYmKHRoaXMuX3dlaWdodEludGVycG9sYW50PW51bGwsdGhpcy5fbWl4ZXIuX3Rha2VCYWNrQ29udHJvbEludGVycG9sYW50KHQpKSx0aGlzfXNldEVmZmVjdGl2ZVRpbWVTY2FsZSh0KXtyZXR1cm4gdGhpcy50aW1lU2NhbGU9dCx0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9dGhpcy5wYXVzZWQ/MDp0LHRoaXMuc3RvcFdhcnBpbmcoKX1nZXRFZmZlY3RpdmVUaW1lU2NhbGUoKXtyZXR1cm4gdGhpcy5fZWZmZWN0aXZlVGltZVNjYWxlfXNldER1cmF0aW9uKHQpe3JldHVybiB0aGlzLnRpbWVTY2FsZT10aGlzLl9jbGlwLmR1cmF0aW9uL3QsdGhpcy5zdG9wV2FycGluZygpfXN5bmNXaXRoKHQpe3JldHVybiB0aGlzLnRpbWU9dC50aW1lLHRoaXMudGltZVNjYWxlPXQudGltZVNjYWxlLHRoaXMuc3RvcFdhcnBpbmcoKX1oYWx0KHQpe3JldHVybiB0aGlzLndhcnAodGhpcy5fZWZmZWN0aXZlVGltZVNjYWxlLDAsdCl9d2FycCh0LGUsbil7Y29uc3Qgbz10aGlzLl9taXhlcixpPW8udGltZSxhPXRoaXMudGltZVNjYWxlO2xldCByPXRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50O251bGw9PT1yJiYocj1vLl9sZW5kQ29udHJvbEludGVycG9sYW50KCksdGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9cik7Y29uc3Qgcz1yLnBhcmFtZXRlclBvc2l0aW9ucyxsPXIuc2FtcGxlVmFsdWVzO3JldHVybiBzWzBdPWksc1sxXT1pK24sbFswXT10L2EsbFsxXT1lL2EsdGhpc31zdG9wV2FycGluZygpe2NvbnN0IHQ9dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7cmV0dXJuIG51bGwhPT10JiYodGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl9taXhlci5fdGFrZUJhY2tDb250cm9sSW50ZXJwb2xhbnQodCkpLHRoaXN9Z2V0TWl4ZXIoKXtyZXR1cm4gdGhpcy5fbWl4ZXJ9Z2V0Q2xpcCgpe3JldHVybiB0aGlzLl9jbGlwfWdldFJvb3QoKXtyZXR1cm4gdGhpcy5fbG9jYWxSb290fHx0aGlzLl9taXhlci5fcm9vdH1fdXBkYXRlKHQsZSxuLG8pe2lmKCF0aGlzLmVuYWJsZWQpcmV0dXJuIHZvaWQgdGhpcy5fdXBkYXRlV2VpZ2h0KHQpO2NvbnN0IGk9dGhpcy5fc3RhcnRUaW1lO2lmKG51bGwhPT1pKXtjb25zdCBvPSh0LWkpKm47aWYobzwwfHwwPT09bilyZXR1cm47dGhpcy5fc3RhcnRUaW1lPW51bGwsZT1uKm99ZSo9dGhpcy5fdXBkYXRlVGltZVNjYWxlKHQpO2NvbnN0IGE9dGhpcy5fdXBkYXRlVGltZShlKSxyPXRoaXMuX3VwZGF0ZVdlaWdodCh0KTtpZihyPjApe2NvbnN0IHQ9dGhpcy5faW50ZXJwb2xhbnRzLGU9dGhpcy5fcHJvcGVydHlCaW5kaW5ncztzd2l0Y2godGhpcy5ibGVuZE1vZGUpe2Nhc2UgMjUwMTpmb3IobGV0IG49MCxvPXQubGVuZ3RoO24hPT1vOysrbil0W25dLmV2YWx1YXRlKGEpLGVbbl0uYWNjdW11bGF0ZUFkZGl0aXZlKHIpO2JyZWFrO2Nhc2UgMjUwMDpkZWZhdWx0OmZvcihsZXQgbj0wLGk9dC5sZW5ndGg7biE9PWk7KytuKXRbbl0uZXZhbHVhdGUoYSksZVtuXS5hY2N1bXVsYXRlKG8scil9fX1fdXBkYXRlV2VpZ2h0KHQpe2xldCBlPTA7aWYodGhpcy5lbmFibGVkKXtlPXRoaXMud2VpZ2h0O2NvbnN0IG49dGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ7aWYobnVsbCE9PW4pe2NvbnN0IG89bi5ldmFsdWF0ZSh0KVswXTtlKj1vLHQ+bi5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BGYWRpbmcoKSwwPT09byYmKHRoaXMuZW5hYmxlZD0hMSkpfX1yZXR1cm4gdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PWUsZX1fdXBkYXRlVGltZVNjYWxlKHQpe2xldCBlPTA7aWYoIXRoaXMucGF1c2VkKXtlPXRoaXMudGltZVNjYWxlO2NvbnN0IG49dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7bnVsbCE9PW4mJihlKj1uLmV2YWx1YXRlKHQpWzBdLHQ+bi5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BXYXJwaW5nKCksMD09PWU/dGhpcy5wYXVzZWQ9ITA6dGhpcy50aW1lU2NhbGU9ZSkpfXJldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9ZSxlfV91cGRhdGVUaW1lKHQpe2NvbnN0IGU9dGhpcy5fY2xpcC5kdXJhdGlvbixuPXRoaXMubG9vcDtsZXQgbz10aGlzLnRpbWUrdCxpPXRoaXMuX2xvb3BDb3VudDtjb25zdCBhPTIyMDI9PT1uO2lmKDA9PT10KXJldHVybi0xPT09aT9vOmEmJjE9PSgxJmkpP2UtbzpvO2lmKDIyMDA9PT1uKXstMT09PWkmJih0aGlzLl9sb29wQ291bnQ9MCx0aGlzLl9zZXRFbmRpbmdzKCEwLCEwLCExKSk7dDp7aWYobz49ZSlvPWU7ZWxzZXtpZighKG88MCkpe3RoaXMudGltZT1vO2JyZWFrIHR9bz0wfXRoaXMuY2xhbXBXaGVuRmluaXNoZWQ/dGhpcy5wYXVzZWQ9ITA6dGhpcy5lbmFibGVkPSExLHRoaXMudGltZT1vLHRoaXMuX21peGVyLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImZpbmlzaGVkIixhY3Rpb246dGhpcyxkaXJlY3Rpb246dDwwPy0xOjF9KX19ZWxzZXtpZigtMT09PWkmJih0Pj0wPyhpPTAsdGhpcy5fc2V0RW5kaW5ncyghMCwwPT09dGhpcy5yZXBldGl0aW9ucyxhKSk6dGhpcy5fc2V0RW5kaW5ncygwPT09dGhpcy5yZXBldGl0aW9ucywhMCxhKSksbz49ZXx8bzwwKXtjb25zdCBuPU1hdGguZmxvb3Ioby9lKTtvLT1lKm4saSs9TWF0aC5hYnMobik7Y29uc3Qgcj10aGlzLnJlcGV0aXRpb25zLWk7aWYocjw9MCl0aGlzLmNsYW1wV2hlbkZpbmlzaGVkP3RoaXMucGF1c2VkPSEwOnRoaXMuZW5hYmxlZD0hMSxvPXQ+MD9lOjAsdGhpcy50aW1lPW8sdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToiZmluaXNoZWQiLGFjdGlvbjp0aGlzLGRpcmVjdGlvbjp0PjA/MTotMX0pO2Vsc2V7aWYoMT09PXIpe2NvbnN0IGU9dDwwO3RoaXMuX3NldEVuZGluZ3MoZSwhZSxhKX1lbHNlIHRoaXMuX3NldEVuZGluZ3MoITEsITEsYSk7dGhpcy5fbG9vcENvdW50PWksdGhpcy50aW1lPW8sdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToibG9vcCIsYWN0aW9uOnRoaXMsbG9vcERlbHRhOm59KX19ZWxzZSB0aGlzLnRpbWU9bztpZihhJiYxPT0oMSZpKSlyZXR1cm4gZS1vfXJldHVybiBvfV9zZXRFbmRpbmdzKHQsZSxuKXtjb25zdCBvPXRoaXMuX2ludGVycG9sYW50U2V0dGluZ3M7bj8oby5lbmRpbmdTdGFydD1UaXQsby5lbmRpbmdFbmQ9VGl0KTooby5lbmRpbmdTdGFydD10P3RoaXMuemVyb1Nsb3BlQXRTdGFydD9UaXQ6QWl0Ok5pdCxvLmVuZGluZ0VuZD1lP3RoaXMuemVyb1Nsb3BlQXRFbmQ/VGl0OkFpdDpOaXQpfV9zY2hlZHVsZUZhZGluZyh0LGUsbil7Y29uc3Qgbz10aGlzLl9taXhlcixpPW8udGltZTtsZXQgYT10aGlzLl93ZWlnaHRJbnRlcnBvbGFudDtudWxsPT09YSYmKGE9by5fbGVuZENvbnRyb2xJbnRlcnBvbGFudCgpLHRoaXMuX3dlaWdodEludGVycG9sYW50PWEpO2NvbnN0IHI9YS5wYXJhbWV0ZXJQb3NpdGlvbnMscz1hLnNhbXBsZVZhbHVlcztyZXR1cm4gclswXT1pLHNbMF09ZSxyWzFdPWkrdCxzWzFdPW4sdGhpc319KGNsYXNzIGV4dGVuZHMgVWl0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fcm9vdD10LHRoaXMuX2luaXRNZW1vcnlNYW5hZ2VyKCksdGhpcy5fYWNjdUluZGV4PTAsdGhpcy50aW1lPTAsdGhpcy50aW1lU2NhbGU9MX1fYmluZEFjdGlvbih0LGUpe2NvbnN0IG49dC5fbG9jYWxSb290fHx0aGlzLl9yb290LG89dC5fY2xpcC50cmFja3MsaT1vLmxlbmd0aCxhPXQuX3Byb3BlcnR5QmluZGluZ3Mscj10Ll9pbnRlcnBvbGFudHMscz1uLnV1aWQsbD10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWU7bGV0IGM9bFtzXTt2b2lkIDA9PT1jJiYoYz17fSxsW3NdPWMpO2ZvcihsZXQgdD0wO3QhPT1pOysrdCl7Y29uc3QgaT1vW3RdLGw9aS5uYW1lO2xldCBkPWNbbF07aWYodm9pZCAwIT09ZClhW3RdPWQ7ZWxzZXtpZihkPWFbdF0sdm9pZCAwIT09ZCl7bnVsbD09PWQuX2NhY2hlSW5kZXgmJigrK2QucmVmZXJlbmNlQ291bnQsdGhpcy5fYWRkSW5hY3RpdmVCaW5kaW5nKGQscyxsKSk7Y29udGludWV9ZD1uZXcgcW10KG91dC5jcmVhdGUobixsLGUmJmUuX3Byb3BlcnR5QmluZGluZ3NbdF0uYmluZGluZy5wYXJzZWRQYXRoKSxpLlZhbHVlVHlwZU5hbWUsaS5nZXRWYWx1ZVNpemUoKSksKytkLnJlZmVyZW5jZUNvdW50LHRoaXMuX2FkZEluYWN0aXZlQmluZGluZyhkLHMsbCksYVt0XT1kfXJbdF0ucmVzdWx0QnVmZmVyPWQuYnVmZmVyfX1fYWN0aXZhdGVBY3Rpb24odCl7aWYoIXRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtpZihudWxsPT09dC5fY2FjaGVJbmRleCl7Y29uc3QgZT0odC5fbG9jYWxSb290fHx0aGlzLl9yb290KS51dWlkLG49dC5fY2xpcC51dWlkLG89dGhpcy5fYWN0aW9uc0J5Q2xpcFtuXTt0aGlzLl9iaW5kQWN0aW9uKHQsbyYmby5rbm93bkFjdGlvbnNbMF0pLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKHQsbixlKX1jb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT1uLnVzZUNvdW50KysmJih0aGlzLl9sZW5kQmluZGluZyhuKSxuLnNhdmVPcmlnaW5hbFN0YXRlKCkpfXRoaXMuX2xlbmRBY3Rpb24odCl9fV9kZWFjdGl2YXRlQWN0aW9uKHQpe2lmKHRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtjb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT0tLW4udXNlQ291bnQmJihuLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fdGFrZUJhY2tCaW5kaW5nKG4pKX10aGlzLl90YWtlQmFja0FjdGlvbih0KX19X2luaXRNZW1vcnlNYW5hZ2VyKCl7dGhpcy5fYWN0aW9ucz1bXSx0aGlzLl9uQWN0aXZlQWN0aW9ucz0wLHRoaXMuX2FjdGlvbnNCeUNsaXA9e30sdGhpcy5fYmluZGluZ3M9W10sdGhpcy5fbkFjdGl2ZUJpbmRpbmdzPTAsdGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lPXt9LHRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHM9W10sdGhpcy5fbkFjdGl2ZUNvbnRyb2xJbnRlcnBvbGFudHM9MDtjb25zdCB0PXRoaXM7dGhpcy5zdGF0cz17YWN0aW9uczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2FjdGlvbnMubGVuZ3RofSxnZXQgaW5Vc2UoKXtyZXR1cm4gdC5fbkFjdGl2ZUFjdGlvbnN9fSxiaW5kaW5nczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2JpbmRpbmdzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVCaW5kaW5nc319LGNvbnRyb2xJbnRlcnBvbGFudHM6e2dldCB0b3RhbCgpe3JldHVybiB0Ll9jb250cm9sSW50ZXJwb2xhbnRzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVDb250cm9sSW50ZXJwb2xhbnRzfX19fV9pc0FjdGl2ZUFjdGlvbih0KXtjb25zdCBlPXQuX2NhY2hlSW5kZXg7cmV0dXJuIG51bGwhPT1lJiZlPHRoaXMuX25BY3RpdmVBY3Rpb25zfV9hZGRJbmFjdGl2ZUFjdGlvbih0LGUsbil7Y29uc3Qgbz10aGlzLl9hY3Rpb25zLGk9dGhpcy5fYWN0aW9uc0J5Q2xpcDtsZXQgYT1pW2VdO2lmKHZvaWQgMD09PWEpYT17a25vd25BY3Rpb25zOlt0XSxhY3Rpb25CeVJvb3Q6e319LHQuX2J5Q2xpcENhY2hlSW5kZXg9MCxpW2VdPWE7ZWxzZXtjb25zdCBlPWEua25vd25BY3Rpb25zO3QuX2J5Q2xpcENhY2hlSW5kZXg9ZS5sZW5ndGgsZS5wdXNoKHQpfXQuX2NhY2hlSW5kZXg9by5sZW5ndGgsby5wdXNoKHQpLGEuYWN0aW9uQnlSb290W25dPXR9X3JlbW92ZUluYWN0aXZlQWN0aW9uKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPWVbZS5sZW5ndGgtMV0sbz10Ll9jYWNoZUluZGV4O24uX2NhY2hlSW5kZXg9byxlW29dPW4sZS5wb3AoKSx0Ll9jYWNoZUluZGV4PW51bGw7Y29uc3QgaT10Ll9jbGlwLnV1aWQsYT10aGlzLl9hY3Rpb25zQnlDbGlwLHI9YVtpXSxzPXIua25vd25BY3Rpb25zLGw9c1tzLmxlbmd0aC0xXSxjPXQuX2J5Q2xpcENhY2hlSW5kZXg7bC5fYnlDbGlwQ2FjaGVJbmRleD1jLHNbY109bCxzLnBvcCgpLHQuX2J5Q2xpcENhY2hlSW5kZXg9bnVsbCxkZWxldGUgci5hY3Rpb25CeVJvb3RbKHQuX2xvY2FsUm9vdHx8dGhpcy5fcm9vdCkudXVpZF0sMD09PXMubGVuZ3RoJiZkZWxldGUgYVtpXSx0aGlzLl9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpfV9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpe2NvbnN0IGU9dC5fcHJvcGVydHlCaW5kaW5ncztmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3QhPT1uOysrdCl7Y29uc3Qgbj1lW3RdOzA9PS0tbi5yZWZlcmVuY2VDb3VudCYmdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKG4pfX1fbGVuZEFjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LG89dGhpcy5fbkFjdGl2ZUFjdGlvbnMrKyxpPWVbb107dC5fY2FjaGVJbmRleD1vLGVbb109dCxpLl9jYWNoZUluZGV4PW4sZVtuXT1pfV90YWtlQmFja0FjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LG89LS10aGlzLl9uQWN0aXZlQWN0aW9ucyxpPWVbb107dC5fY2FjaGVJbmRleD1vLGVbb109dCxpLl9jYWNoZUluZGV4PW4sZVtuXT1pfV9hZGRJbmFjdGl2ZUJpbmRpbmcodCxlLG4pe2NvbnN0IG89dGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lLGk9dGhpcy5fYmluZGluZ3M7bGV0IGE9b1tlXTt2b2lkIDA9PT1hJiYoYT17fSxvW2VdPWEpLGFbbl09dCx0Ll9jYWNoZUluZGV4PWkubGVuZ3RoLGkucHVzaCh0KX1fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKHQpe2NvbnN0IGU9dGhpcy5fYmluZGluZ3Msbj10LmJpbmRpbmcsbz1uLnJvb3ROb2RlLnV1aWQsaT1uLnBhdGgsYT10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWUscj1hW29dLHM9ZVtlLmxlbmd0aC0xXSxsPXQuX2NhY2hlSW5kZXg7cy5fY2FjaGVJbmRleD1sLGVbbF09cyxlLnBvcCgpLGRlbGV0ZSByW2ldLDA9PT1PYmplY3Qua2V5cyhyKS5sZW5ndGgmJmRlbGV0ZSBhW29dfV9sZW5kQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxvPXRoaXMuX25BY3RpdmVCaW5kaW5ncysrLGk9ZVtvXTt0Ll9jYWNoZUluZGV4PW8sZVtvXT10LGkuX2NhY2hlSW5kZXg9bixlW25dPWl9X3Rha2VCYWNrQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxvPS0tdGhpcy5fbkFjdGl2ZUJpbmRpbmdzLGk9ZVtvXTt0Ll9jYWNoZUluZGV4PW8sZVtvXT10LGkuX2NhY2hlSW5kZXg9bixlW25dPWl9X2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKXtjb25zdCB0PXRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHMsZT10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cysrO2xldCBuPXRbZV07cmV0dXJuIHZvaWQgMD09PW4mJihuPW5ldyBjbXQobmV3IEZsb2F0MzJBcnJheSgyKSxuZXcgRmxvYXQzMkFycmF5KDIpLDEsdGhpcy5fY29udHJvbEludGVycG9sYW50c1Jlc3VsdEJ1ZmZlciksbi5fX2NhY2hlSW5kZXg9ZSx0W2VdPW4pLG59X3Rha2VCYWNrQ29udHJvbEludGVycG9sYW50KHQpe2NvbnN0IGU9dGhpcy5fY29udHJvbEludGVycG9sYW50cyxuPXQuX19jYWNoZUluZGV4LG89LS10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cyxpPWVbb107dC5fX2NhY2hlSW5kZXg9byxlW29dPXQsaS5fX2NhY2hlSW5kZXg9bixlW25dPWl9Y2xpcEFjdGlvbih0LGUsbil7Y29uc3Qgbz1lfHx0aGlzLl9yb290LGk9by51dWlkO2xldCBhPSJzdHJpbmciPT10eXBlb2YgdD9fbXQuZmluZEJ5TmFtZShvLHQpOnQ7Y29uc3Qgcj1udWxsIT09YT9hLnV1aWQ6dCxzPXRoaXMuX2FjdGlvbnNCeUNsaXBbcl07bGV0IGw9bnVsbDtpZih2b2lkIDA9PT1uJiYobj1udWxsIT09YT9hLmJsZW5kTW9kZToyNTAwKSx2b2lkIDAhPT1zKXtjb25zdCB0PXMuYWN0aW9uQnlSb290W2ldO2lmKHZvaWQgMCE9PXQmJnQuYmxlbmRNb2RlPT09bilyZXR1cm4gdDtsPXMua25vd25BY3Rpb25zWzBdLG51bGw9PT1hJiYoYT1sLl9jbGlwKX1pZihudWxsPT09YSlyZXR1cm4gbnVsbDtjb25zdCBjPW5ldyBpdXQodGhpcyxhLGUsbik7cmV0dXJuIHRoaXMuX2JpbmRBY3Rpb24oYyxsKSx0aGlzLl9hZGRJbmFjdGl2ZUFjdGlvbihjLHIsaSksY31leGlzdGluZ0FjdGlvbih0LGUpe2NvbnN0IG49ZXx8dGhpcy5fcm9vdCxvPW4udXVpZCxpPSJzdHJpbmciPT10eXBlb2YgdD9fbXQuZmluZEJ5TmFtZShuLHQpOnQsYT10aGlzLl9hY3Rpb25zQnlDbGlwW2k/aS51dWlkOnRdO3JldHVybiB2b2lkIDAhPT1hJiZhLmFjdGlvbkJ5Um9vdFtvXXx8bnVsbH1zdG9wQWxsQWN0aW9uKCl7Y29uc3QgdD10aGlzLl9hY3Rpb25zO2ZvcihsZXQgZT10aGlzLl9uQWN0aXZlQWN0aW9ucy0xO2U+PTA7LS1lKXRbZV0uc3RvcCgpO3JldHVybiB0aGlzfXVwZGF0ZSh0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10aGlzLl9uQWN0aXZlQWN0aW9ucyxvPXRoaXMudGltZSs9dCo9dGhpcy50aW1lU2NhbGUsaT1NYXRoLnNpZ24odCksYT10aGlzLl9hY2N1SW5kZXhePTE7Zm9yKGxldCByPTA7ciE9PW47KytyKWVbcl0uX3VwZGF0ZShvLHQsaSxhKTtjb25zdCByPXRoaXMuX2JpbmRpbmdzLHM9dGhpcy5fbkFjdGl2ZUJpbmRpbmdzO2ZvcihsZXQgdD0wO3QhPT1zOysrdClyW3RdLmFwcGx5KGEpO3JldHVybiB0aGlzfXNldFRpbWUodCl7dGhpcy50aW1lPTA7Zm9yKGxldCB0PTA7dDx0aGlzLl9hY3Rpb25zLmxlbmd0aDt0KyspdGhpcy5fYWN0aW9uc1t0XS50aW1lPTA7cmV0dXJuIHRoaXMudXBkYXRlKHQpfWdldFJvb3QoKXtyZXR1cm4gdGhpcy5fcm9vdH11bmNhY2hlQ2xpcCh0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10LnV1aWQsbz10aGlzLl9hY3Rpb25zQnlDbGlwLGk9b1tuXTtpZih2b2lkIDAhPT1pKXtjb25zdCB0PWkua25vd25BY3Rpb25zO2ZvcihsZXQgbj0wLG89dC5sZW5ndGg7biE9PW87KytuKXtjb25zdCBvPXRbbl07dGhpcy5fZGVhY3RpdmF0ZUFjdGlvbihvKTtjb25zdCBpPW8uX2NhY2hlSW5kZXgsYT1lW2UubGVuZ3RoLTFdO28uX2NhY2hlSW5kZXg9bnVsbCxvLl9ieUNsaXBDYWNoZUluZGV4PW51bGwsYS5fY2FjaGVJbmRleD1pLGVbaV09YSxlLnBvcCgpLHRoaXMuX3JlbW92ZUluYWN0aXZlQmluZGluZ3NGb3JBY3Rpb24obyl9ZGVsZXRlIG9bbl19fXVuY2FjaGVSb290KHQpe2NvbnN0IGU9dC51dWlkLG49dGhpcy5fYWN0aW9uc0J5Q2xpcDtmb3IoY29uc3QgdCBpbiBuKXtjb25zdCBvPW5bdF0uYWN0aW9uQnlSb290W2VdO3ZvaWQgMCE9PW8mJih0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKG8pLHRoaXMuX3JlbW92ZUluYWN0aXZlQWN0aW9uKG8pKX1jb25zdCBvPXRoaXMuX2JpbmRpbmdzQnlSb290QW5kTmFtZVtlXTtpZih2b2lkIDAhPT1vKWZvcihjb25zdCB0IGluIG8pe2NvbnN0IGU9b1t0XTtlLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKGUpfX11bmNhY2hlQWN0aW9uKHQsZSl7Y29uc3Qgbj10aGlzLmV4aXN0aW5nQWN0aW9uKHQsZSk7bnVsbCE9PW4mJih0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKG4pLHRoaXMuX3JlbW92ZUluYWN0aXZlQWN0aW9uKG4pKX19KS5wcm90b3R5cGUuX2NvbnRyb2xJbnRlcnBvbGFudHNSZXN1bHRCdWZmZXI9bmV3IEZsb2F0MzJBcnJheSgxKSxjbGFzcyBleHRlbmRzIF9kdHtjb25zdHJ1Y3Rvcih0LGUsbj0xKXtzdXBlcih0LGUpLHRoaXMubWVzaFBlckF0dHJpYnV0ZT1ufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tZXNoUGVyQXR0cmlidXRlPXQubWVzaFBlckF0dHJpYnV0ZSx0aGlzfWNsb25lKHQpe2NvbnN0IGU9c3VwZXIuY2xvbmUodCk7cmV0dXJuIGUubWVzaFBlckF0dHJpYnV0ZT10aGlzLm1lc2hQZXJBdHRyaWJ1dGUsZX10b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMCxlLm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLGV9fS5wcm90b3R5cGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMCxjbGFzcyBleHRlbmRzIHBydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMubWF0ZXJpYWw9dCx0aGlzLnJlbmRlcj1mdW5jdGlvbigpe30sdGhpcy5oYXNQb3NpdGlvbnM9ITEsdGhpcy5oYXNOb3JtYWxzPSExLHRoaXMuaGFzQ29sb3JzPSExLHRoaXMuaGFzVXZzPSExLHRoaXMucG9zaXRpb25BcnJheT1udWxsLHRoaXMubm9ybWFsQXJyYXk9bnVsbCx0aGlzLmNvbG9yQXJyYXk9bnVsbCx0aGlzLnV2QXJyYXk9bnVsbCx0aGlzLmNvdW50PTB9fS5wcm90b3R5cGUuaXNJbW1lZGlhdGVSZW5kZXJPYmplY3Q9ITA7Y29uc3QgYXV0PW5ldyBjYXQscnV0PW5ldyBCYXQsc3V0PW5ldyBCYXQ7ZnVuY3Rpb24gbHV0KHQpe2NvbnN0IGU9W107dCYmdC5pc0JvbmUmJmUucHVzaCh0KTtmb3IobGV0IG49MDtuPHQuY2hpbGRyZW4ubGVuZ3RoO24rKyllLnB1c2guYXBwbHkoZSxsdXQodC5jaGlsZHJlbltuXSkpO3JldHVybiBlfWNvbnN0IGN1dD1uZXcgRmxvYXQzMkFycmF5KDEpO2Z1bmN0aW9uIGR1dCh0LGUsbil7aWYoMT09PW4pcmV0dXJuIG5ldyBScnQoZSk7Y29uc3Qgbz1kNyhlKTtpZighbyl0aHJvdyBuZXcgRXJyb3IoYGQzIGZhaWxlZCB0byByZWNvZ25pemUgdGhlIGNvbG9yOiAke2V9YCk7cmV0dXJuIG5ldyBScnQoZDgobyx0KSgxLW4pKX12YXIgcHV0LG11dCx1dXQsZnV0O2Z1bmN0aW9uIGd1dCh0LGUpe2NvbnN0IG49ZS5sZW5ndGgvMjtsZXQgbz10LmF0dHJpYnV0ZXMucG9zaXRpb247byYmby5jb3VudD09PTMqbnx8KG89bmV3IHpydChuZXcgRmxvYXQzMkFycmF5KDMqbiksMyksdC5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixvKSk7Y29uc3QgaT1vLmFycmF5O2ZvcihsZXQgdD0wO3Q8bjt0KyspaVszKnRdPWVbMip0XSxpWzMqdCsxXT1lWzIqdCsxXTtvLm5lZWRzVXBkYXRlPSEwLHQuc2V0RHJhd1JhbmdlKDAsMypuKSx0LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpfWZ1bmN0aW9uIGh1dCh0LGUsbil7Y29uc3Qgbz1NYXRoLm1heChlLmxlbmd0aC8yLTEsMCksaT0yKm8qMyxhPTMqaTtsZXQgcj10LmF0dHJpYnV0ZXMucG9zaXRpb247ciYmci5jb3VudD09PWl8fChyPW5ldyB6cnQobmV3IEZsb2F0MzJBcnJheShhKSwzKSx0LnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLHIpKTtjb25zdCBzPXIuYXJyYXk7Zm9yKGxldCB0PTA7dDxvO3QrKyl7Y29uc3RbbyxpLGEscl09W2VbMip0XSxlWzIqdCsxXSxlWzIqdCsyXSxlWzIqdCszXV0sbD1uZXcgUWl0KG8saSksYz1uZXcgUWl0KGEsciksZD1uZXcgUWl0KGEtbyxyLWkpLHA9bmV3IFFpdCgtZC55LGQueCkuc2V0TGVuZ3RoKG4vMiksbT1sLmNsb25lKCkuYWRkKHApLHU9bC5jbG9uZSgpLnN1YihwKSxmPWMuY2xvbmUoKS5hZGQocCksZz1jLmNsb25lKCkuc3ViKHApLGg9W20ueCxtLnksMCx1LngsdS55LDAsZi54LGYueSwwLGYueCxmLnksMCx1LngsdS55LDAsZy54LGcueSwwXTtzLnNldChoLHQqaC5sZW5ndGgpfXIubmVlZHNVcGRhdGU9ITAsdC5zZXREcmF3UmFuZ2UoMCxhKSx0LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpfWZ1bmN0aW9uIGJ1dCh0LGUsbixvKXtjb25zdHt2aXNpYmxlOmksY29sb3I6YSxvcGFjaXR5OnJ9PW87aWYoQXJyYXkuaXNBcnJheShlLm1hdGVyaWFsKSl0aHJvdyBuZXcgRXJyb3IoIkludmFyaWFudCBlcnJvcjogb25seSBleHBlY3Qgb25lIG1hdGVyaWFsIG9uIGFuIG9iamVjdCIpO2NvbnN0IHM9ZS5tYXRlcmlhbDtpZihzLnZpc2libGUhPT1pJiYocy52aXNpYmxlPWkscy5uZWVkc1VwZGF0ZT0hMCksIWkpcmV0dXJuITE7Y29uc3QgbD1kdXQodCxhLG51bGwhPXI/cjoxKSxjPW4oZS5nZW9tZXRyeSk7cmV0dXJuIGUuZ2VvbWV0cnkhPT1jJiYoZS5nZW9tZXRyeT1jKSxzLmNvbG9yLmVxdWFscyhsKXx8KHMuY29sb3Iuc2V0KGwpLHMubmVlZHNVcGRhdGU9ITApLCEwfW5ldyBJbnQzMkFycmF5KGN1dC5idWZmZXIpLGRwdC5jcmVhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS5sb2coIlRIUkVFLkN1cnZlLmNyZWF0ZSgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQiKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGRwdC5wcm90b3R5cGUpLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQsdC5wcm90b3R5cGUuZ2V0UG9pbnQ9ZSx0fSxFbXQucHJvdG90eXBlLmZyb21Qb2ludHM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUGF0aDogLmZyb21Qb2ludHMoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tUG9pbnRzKCkuIiksdGhpcy5zZXRGcm9tUG9pbnRzKHQpfSxjbGFzcyBleHRlbmRzIG5wdHtjb25zdHJ1Y3Rvcih0PTEwLGU9MTAsbj00NDczOTI0LG89ODk0Nzg0OCl7bj1uZXcgUnJ0KG4pLG89bmV3IFJydChvKTtjb25zdCBpPWUvMixhPXQvZSxyPXQvMixzPVtdLGw9W107Zm9yKGxldCB0PTAsYz0wLGQ9LXI7dDw9ZTt0KyssZCs9YSl7cy5wdXNoKC1yLDAsZCxyLDAsZCkscy5wdXNoKGQsMCwtcixkLDAscik7Y29uc3QgZT10PT09aT9uOm87ZS50b0FycmF5KGwsYyksYys9MyxlLnRvQXJyYXkobCxjKSxjKz0zLGUudG9BcnJheShsLGMpLGMrPTMsZS50b0FycmF5KGwsYyksYys9M31jb25zdCBjPW5ldyBxcnQ7Yy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgRnJ0KHMsMykpLGMuc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IEZydChsLDMpKSxzdXBlcihjLG5ldyBxZHQoe3ZlcnRleENvbG9yczohMCx0b25lTWFwcGVkOiExfSkpLHRoaXMudHlwZT0iR3JpZEhlbHBlciJ9fS5wcm90b3R5cGUuc2V0Q29sb3JzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuR3JpZEhlbHBlcjogc2V0Q29sb3JzKCkgaGFzIGJlZW4gZGVwcmVjYXRlZCwgcGFzcyB0aGVtIGluIHRoZSBjb25zdHJ1Y3RvciBpbnN0ZWFkLiIpfSxjbGFzcyBleHRlbmRzIG5wdHtjb25zdHJ1Y3Rvcih0KXtjb25zdCBlPWx1dCh0KSxuPW5ldyBxcnQsbz1bXSxpPVtdLGE9bmV3IFJydCgwLDAsMSkscj1uZXcgUnJ0KDAsMSwwKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdO24ucGFyZW50JiZuLnBhcmVudC5pc0JvbmUmJihvLnB1c2goMCwwLDApLG8ucHVzaCgwLDAsMCksaS5wdXNoKGEucixhLmcsYS5iKSxpLnB1c2goci5yLHIuZyxyLmIpKX1uLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBGcnQobywzKSksbi5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgRnJ0KGksMykpLHN1cGVyKG4sbmV3IHFkdCh7dmVydGV4Q29sb3JzOiEwLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExLHRvbmVNYXBwZWQ6ITEsdHJhbnNwYXJlbnQ6ITB9KSksdGhpcy50eXBlPSJTa2VsZXRvbkhlbHBlciIsdGhpcy5pc1NrZWxldG9uSGVscGVyPSEwLHRoaXMucm9vdD10LHRoaXMuYm9uZXM9ZSx0aGlzLm1hdHJpeD10Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4QXV0b1VwZGF0ZT0hMX11cGRhdGVNYXRyaXhXb3JsZCh0KXtjb25zdCBlPXRoaXMuYm9uZXMsbj10aGlzLmdlb21ldHJ5LG89bi5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIik7c3V0LmNvcHkodGhpcy5yb290Lm1hdHJpeFdvcmxkKS5pbnZlcnQoKTtmb3IobGV0IHQ9MCxuPTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IGk9ZVt0XTtpLnBhcmVudCYmaS5wYXJlbnQuaXNCb25lJiYocnV0Lm11bHRpcGx5TWF0cmljZXMoc3V0LGkubWF0cml4V29ybGQpLGF1dC5zZXRGcm9tTWF0cml4UG9zaXRpb24ocnV0KSxvLnNldFhZWihuLGF1dC54LGF1dC55LGF1dC56KSxydXQubXVsdGlwbHlNYXRyaWNlcyhzdXQsaS5wYXJlbnQubWF0cml4V29ybGQpLGF1dC5zZXRGcm9tTWF0cml4UG9zaXRpb24ocnV0KSxvLnNldFhZWihuKzEsYXV0LngsYXV0LnksYXV0LnopLG4rPTIpfW4uZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpLm5lZWRzVXBkYXRlPSEwLHN1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpfX0ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNrZWxldG9uSGVscGVyOiB1cGRhdGUoKSBubyBsb25nZXIgbmVlZHMgdG8gYmUgY2FsbGVkLiIpfSx4bXQucHJvdG90eXBlLmV4dHJhY3RVcmxCYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkxvYWRlcjogLmV4dHJhY3RVcmxCYXNlKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkxvYWRlclV0aWxzLmV4dHJhY3RVcmxCYXNlKCkgaW5zdGVhZC4iKSxjbGFzc3tzdGF0aWMgZGVjb2RlVGV4dCh0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFRleHREZWNvZGVyKXJldHVybihuZXcgVGV4dERlY29kZXIpLmRlY29kZSh0KTtsZXQgZT0iIjtmb3IobGV0IG49MCxvPXQubGVuZ3RoO248bztuKyspZSs9U3RyaW5nLmZyb21DaGFyQ29kZSh0W25dKTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoZSkpfWNhdGNoKHQpe3JldHVybiBlfX1zdGF0aWMgZXh0cmFjdFVybEJhc2UodCl7Y29uc3QgZT10Lmxhc3RJbmRleE9mKCIvIik7cmV0dXJuLTE9PT1lPyIuLyI6dC5zdWJzdHIoMCxlKzEpfX0uZXh0cmFjdFVybEJhc2UodCl9LHhtdC5IYW5kbGVycz17YWRkOmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTG9hZGVyOiBIYW5kbGVycy5hZGQoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgTG9hZGluZ01hbmFnZXIuYWRkSGFuZGxlcigpIGluc3RlYWQuIil9LGdldDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkxvYWRlcjogSGFuZGxlcnMuZ2V0KCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIExvYWRpbmdNYW5hZ2VyLmdldEhhbmRsZXIoKSBpbnN0ZWFkLiIpfX0sbWF0LnByb3RvdHlwZS5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmNlbnRlcigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldENlbnRlcigpLiIpLHRoaXMuZ2V0Q2VudGVyKHQpfSxtYXQucHJvdG90eXBlLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmVtcHR5KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaXNFbXB0eSgpLiIpLHRoaXMuaXNFbXB0eSgpfSxtYXQucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5pc0ludGVyc2VjdGlvbkJveCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNCb3goKS4iKSx0aGlzLmludGVyc2VjdHNCb3godCl9LG1hdC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25TcGhlcmU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmlzSW50ZXJzZWN0aW9uU3BoZXJlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c1NwaGVyZSgpLiIpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZSh0KX0sbWF0LnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5zaXplKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0U2l6ZSgpLiIpLHRoaXMuZ2V0U2l6ZSh0KX0sUmF0LnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNwaGVyZTogLmVtcHR5KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaXNFbXB0eSgpLiIpLHRoaXMuaXNFbXB0eSgpfSxFc3QucHJvdG90eXBlLnNldEZyb21NYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuRnJ1c3R1bTogLnNldEZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCgpLiIpLHRoaXMuc2V0RnJvbVByb2plY3Rpb25NYXRyaXgodCl9LCRpdC5wcm90b3R5cGUuZmxhdHRlblRvQXJyYXlPZmZzZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAuZmxhdHRlblRvQXJyYXlPZmZzZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnRvQXJyYXkoKSBpbnN0ZWFkLiIpLHRoaXMudG9BcnJheSh0LGUpfSwkaXQucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDMoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDModGhpcyl9LCRpdC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXgzOiAubXVsdGlwbHlWZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSwkaXQucHJvdG90eXBlLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYXR0cmlidXRlLmFwcGx5TWF0cml4MyggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4Myh0aGlzKX0sJGl0LnByb3RvdHlwZS5hcHBseVRvVmVjdG9yM0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4MzogLmFwcGx5VG9WZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSwkaXQucHJvdG90eXBlLmdldEludmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLmdldEludmVyc2UoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbWF0cml4SW52LmNvcHkoIG1hdHJpeCApLmludmVydCgpOyBpbnN0ZWFkLiIpLHRoaXMuY29weSh0KS5pbnZlcnQoKX0sQmF0LnByb3RvdHlwZS5leHRyYWN0UG9zaXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmV4dHJhY3RQb3NpdGlvbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmNvcHlQb3NpdGlvbigpLiIpLHRoaXMuY29weVBvc2l0aW9uKHQpfSxCYXQucHJvdG90eXBlLmZsYXR0ZW5Ub0FycmF5T2Zmc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmZsYXR0ZW5Ub0FycmF5T2Zmc2V0KCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC50b0FycmF5KCkgaW5zdGVhZC4iKSx0aGlzLnRvQXJyYXkodCxlKX0sQmF0LnByb3RvdHlwZS5nZXRQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5nZXRQb3NpdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBWZWN0b3IzLnNldEZyb21NYXRyaXhQb3NpdGlvbiggbWF0cml4ICkgaW5zdGVhZC4iKSwobmV3IGNhdCkuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDMpfSxCYXQucHJvdG90eXBlLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb249ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbigpLiIpLHRoaXMubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCl9LEJhdC5wcm90b3R5cGUubXVsdGlwbHlUb0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlUb0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sQmF0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm11bHRpcGx5VmVjdG9yMygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB2ZWN0b3IuYXBwbHlNYXRyaXg0KCBtYXRyaXggKSBpbnN0ZWFkLiIpLHQuYXBwbHlNYXRyaXg0KHRoaXMpfSxCYXQucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yND1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3I0KCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDQodGhpcyl9LEJhdC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxCYXQucHJvdG90eXBlLnJvdGF0ZUF4aXM9ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlQXhpcygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBWZWN0b3IzLnRyYW5zZm9ybURpcmVjdGlvbiggbWF0cml4ICkgaW5zdGVhZC4iKSx0LnRyYW5zZm9ybURpcmVjdGlvbih0aGlzKX0sQmF0LnByb3RvdHlwZS5jcm9zc1ZlY3Rvcj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuY3Jvc3NWZWN0b3IoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4NCggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4NCh0aGlzKX0sQmF0LnByb3RvdHlwZS50cmFuc2xhdGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sQmF0LnByb3RvdHlwZS5yb3RhdGVYPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLnJvdGF0ZVgoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxCYXQucHJvdG90eXBlLnJvdGF0ZVk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlWSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LEJhdC5wcm90b3R5cGUucm90YXRlWj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVaKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sQmF0LnByb3RvdHlwZS5yb3RhdGVCeUF4aXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlQnlBeGlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sQmF0LnByb3RvdHlwZS5hcHBseVRvQnVmZmVyQXR0cmlidXRlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5hcHBseVRvQnVmZmVyQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIGF0dHJpYnV0ZS5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDQodGhpcyl9LEJhdC5wcm90b3R5cGUuYXBwbHlUb1ZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5hcHBseVRvVmVjdG9yM0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sQmF0LnByb3RvdHlwZS5tYWtlRnJ1c3R1bT1mdW5jdGlvbih0LGUsbixvLGksYSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm1ha2VGcnVzdHVtKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5tYWtlUGVyc3BlY3RpdmUoIGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSwgbmVhciwgZmFyICkgaW5zdGVhZC4iKSx0aGlzLm1ha2VQZXJzcGVjdGl2ZSh0LGUsbyxuLGksYSl9LEJhdC5wcm90b3R5cGUuZ2V0SW52ZXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZ2V0SW52ZXJzZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBtYXRyaXhJbnYuY29weSggbWF0cml4ICkuaW52ZXJ0KCk7IGluc3RlYWQuIiksdGhpcy5jb3B5KHQpLmludmVydCgpfSxrc3QucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uTGluZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QbGFuZTogLmlzSW50ZXJzZWN0aW9uTGluZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNMaW5lKCkuIiksdGhpcy5pbnRlcnNlY3RzTGluZSh0KX0sbGF0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLm11bHRpcGx5VmVjdG9yMygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBpcyBub3cgdmVjdG9yLmFwcGx5UXVhdGVybmlvbiggcXVhdGVybmlvbiApIGluc3RlYWQuIiksdC5hcHBseVF1YXRlcm5pb24odGhpcyl9LGxhdC5wcm90b3R5cGUuaW52ZXJzZT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IC5pbnZlcnNlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byBpbnZlcnQoKS4iKSx0aGlzLmludmVydCgpfSxMYXQucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uQm94KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0JveCgpLiIpLHRoaXMuaW50ZXJzZWN0c0JveCh0KX0sTGF0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblBsYW5lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uUGxhbmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzUGxhbmUoKS4iKSx0aGlzLmludGVyc2VjdHNQbGFuZSh0KX0sTGF0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblNwaGVyZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5SYXk6IC5pc0ludGVyc2VjdGlvblNwaGVyZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNTcGhlcmUoKS4iKSx0aGlzLmludGVyc2VjdHNTcGhlcmUodCl9LHZydC5wcm90b3R5cGUuYXJlYT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYXJlYSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEFyZWEoKS4iKSx0aGlzLmdldEFyZWEoKX0sdnJ0LnByb3RvdHlwZS5iYXJ5Y29vcmRGcm9tUG9pbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLmJhcnljb29yZEZyb21Qb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEJhcnljb29yZCgpLiIpLHRoaXMuZ2V0QmFyeWNvb3JkKHQsZSl9LHZydC5wcm90b3R5cGUubWlkcG9pbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5taWRwb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE1pZHBvaW50KCkuIiksdGhpcy5nZXRNaWRwb2ludCh0KX0sdnJ0LnByb3RvdHlwZW5vcm1hbD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm5vcm1hbCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE5vcm1hbCgpLiIpLHRoaXMuZ2V0Tm9ybWFsKHQpfSx2cnQucHJvdG90eXBlLnBsYW5lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAucGxhbmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRQbGFuZSgpLiIpLHRoaXMuZ2V0UGxhbmUodCl9LHZydC5iYXJ5Y29vcmRGcm9tUG9pbnQ9ZnVuY3Rpb24odCxlLG4sbyxpKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLmJhcnljb29yZEZyb21Qb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEJhcnljb29yZCgpLiIpLHZydC5nZXRCYXJ5Y29vcmQodCxlLG4sbyxpKX0sdnJ0Lm5vcm1hbD1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm5vcm1hbCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE5vcm1hbCgpLiIpLHZydC5nZXROb3JtYWwodCxlLG4sbyl9LFJtdC5wcm90b3R5cGUuZXh0cmFjdEFsbFBvaW50cz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFwZTogLmV4dHJhY3RBbGxQb2ludHMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLmV4dHJhY3RQb2ludHMoKSBpbnN0ZWFkLiIpLHRoaXMuZXh0cmFjdFBvaW50cyh0KX0sUm10LnByb3RvdHlwZS5leHRydWRlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNoYXBlOiAuZXh0cnVkZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBFeHRydWRlR2VvbWV0cnkoKSBpbnN0ZWFkLiIpLG5ldyBubXQodGhpcyx0KX0sUm10LnByb3RvdHlwZS5tYWtlR2VvbWV0cnk9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhcGU6IC5tYWtlR2VvbWV0cnkoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgU2hhcGVHZW9tZXRyeSgpIGluc3RlYWQuIiksbmV3IGltdCh0aGlzLHQpfSxRaXQucHJvdG90eXBlLmZyb21BdHRyaWJ1dGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5mcm9tQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil9LFFpdC5wcm90b3R5cGUuZGlzdGFuY2VUb01hbmhhdHRhbj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAuZGlzdGFuY2VUb01hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkRpc3RhbmNlVG8oKS4iKSx0aGlzLm1hbmhhdHRhbkRpc3RhbmNlVG8odCl9LFFpdC5wcm90b3R5cGUubGVuZ3RoTWFuaGF0dGFuPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLmxlbmd0aE1hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkxlbmd0aCgpLiIpLHRoaXMubWFuaGF0dGFuTGVuZ3RoKCl9LGNhdC5wcm90b3R5cGUuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXg9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXgoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXVsZXIuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgaW5zdGVhZC4iKX0sY2F0LnByb3RvdHlwZS5zZXRFdWxlckZyb21RdWF0ZXJuaW9uPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuVmVjdG9yMzogLnNldEV1bGVyRnJvbVF1YXRlcm5pb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXVsZXIuc2V0RnJvbVF1YXRlcm5pb24oKSBpbnN0ZWFkLiIpfSxjYXQucHJvdG90eXBlLmdldFBvc2l0aW9uRnJvbU1hdHJpeD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuZ2V0UG9zaXRpb25Gcm9tTWF0cml4KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCkuIiksdGhpcy5zZXRGcm9tTWF0cml4UG9zaXRpb24odCl9LGNhdC5wcm90b3R5cGUuZ2V0U2NhbGVGcm9tTWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRTY2FsZUZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4U2NhbGUoKS4iKSx0aGlzLnNldEZyb21NYXRyaXhTY2FsZSh0KX0sY2F0LnByb3RvdHlwZS5nZXRDb2x1bW5Gcm9tTWF0cml4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmdldENvbHVtbkZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4Q29sdW1uKCkuIiksdGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKGUsdCl9LGNhdC5wcm90b3R5cGUuYXBwbHlQcm9qZWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5hcHBseVByb2plY3Rpb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLmFwcGx5TWF0cml4NCggbSApIGluc3RlYWQuIiksdGhpcy5hcHBseU1hdHJpeDQodCl9LGNhdC5wcm90b3R5cGUuZnJvbUF0dHJpYnV0ZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmZyb21BdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKX0sY2F0LnByb3RvdHlwZS5kaXN0YW5jZVRvTWFuaGF0dGFuPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5kaXN0YW5jZVRvTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuRGlzdGFuY2VUbygpLiIpLHRoaXMubWFuaGF0dGFuRGlzdGFuY2VUbyh0KX0sY2F0LnByb3RvdHlwZS5sZW5ndGhNYW5oYXR0YW49ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAubGVuZ3RoTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuTGVuZ3RoKCkuIiksdGhpcy5tYW5oYXR0YW5MZW5ndGgoKX0sYWF0LnByb3RvdHlwZS5mcm9tQXR0cmlidXRlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiAuZnJvbUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLG4pfSxhYXQucHJvdG90eXBlLmxlbmd0aE1hbmhhdHRhbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5sZW5ndGhNYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5MZW5ndGgoKS4iKSx0aGlzLm1hbmhhdHRhbkxlbmd0aCgpfSxwcnQucHJvdG90eXBlLmdldENoaWxkQnlOYW1lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAuZ2V0Q2hpbGRCeU5hbWUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRPYmplY3RCeU5hbWUoKS4iKSx0aGlzLmdldE9iamVjdEJ5TmFtZSh0KX0scHJ0LnByb3RvdHlwZS5yZW5kZXJEZXB0aD1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5yZW5kZXJEZXB0aCBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnJlbmRlck9yZGVyLCBpbnN0ZWFkLiIpfSxwcnQucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC50cmFuc2xhdGVPbkF4aXMoIGF4aXMsIGRpc3RhbmNlICkgaW5zdGVhZC4iKSx0aGlzLnRyYW5zbGF0ZU9uQXhpcyhlLHQpfSxwcnQucHJvdG90eXBlLmdldFdvcmxkUm90YXRpb249ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3QzRDogLmdldFdvcmxkUm90YXRpb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuT2JqZWN0M0QuZ2V0V29ybGRRdWF0ZXJuaW9uKCB0YXJnZXQgKSBpbnN0ZWFkLiIpfSxwcnQucHJvdG90eXBlLmFwcGx5TWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAuYXBwbHlNYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5hcHBseU1hdHJpeDQoKS4iKSx0aGlzLmFwcGx5TWF0cml4NCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocHJ0LnByb3RvdHlwZSx7ZXVsZXJPcmRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcn0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcj10fX0sdXNlUXVhdGVybmlvbjp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX19fSkscHN0LnByb3RvdHlwZS5zZXREcmF3TW9kZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2g6IC5zZXREcmF3TW9kZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIFRyYW5zZm9ybSB5b3VyIGdlb21ldHJ5IHZpYSBCdWZmZXJHZW9tZXRyeVV0aWxzLnRvVHJpYW5nbGVzRHJhd01vZGUoKSBpZiBuZWNlc3NhcnkuIil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHBzdC5wcm90b3R5cGUse2RyYXdNb2RlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLmRyYXdNb2RlIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIiksMH0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLmRyYXdNb2RlIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIFRyYW5zZm9ybSB5b3VyIGdlb21ldHJ5IHZpYSBCdWZmZXJHZW9tZXRyeVV0aWxzLnRvVHJpYW5nbGVzRHJhd01vZGUoKSBpZiBuZWNlc3NhcnkuIil9fX0pLGpkdC5wcm90b3R5cGUuaW5pdEJvbmVzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2tpbm5lZE1lc2g6IGluaXRCb25lcygpIGhhcyBiZWVuIHJlbW92ZWQuIil9LF9zdC5wcm90b3R5cGUuc2V0TGVucz1mdW5jdGlvbih0LGUpe2NvbnNvbGUud2FybigiVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEuc2V0TGVucyBpcyBkZXByZWNhdGVkLiBVc2UgLnNldEZvY2FsTGVuZ3RoIGFuZCAuZmlsbUdhdWdlIGZvciBhIHBob3RvZ3JhcGhpYyBzZXR1cC4iKSx2b2lkIDAhPT1lJiYodGhpcy5maWxtR2F1Z2U9ZSksdGhpcy5zZXRGb2NhbExlbmd0aCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQW10LnByb3RvdHlwZSx7b25seVNoYWRvdzp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLm9ubHlTaGFkb3cgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHNoYWRvd0NhbWVyYUZvdjp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFGb3YgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmZvdi4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuZm92PXR9fSxzaGFkb3dDYW1lcmFMZWZ0OntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYUxlZnQgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmxlZnQuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmxlZnQ9dH19LHNoYWRvd0NhbWVyYVJpZ2h0OntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVJpZ2h0IGlzIG5vdyAuc2hhZG93LmNhbWVyYS5yaWdodC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEucmlnaHQ9dH19LHNoYWRvd0NhbWVyYVRvcDp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFUb3AgaXMgbm93IC5zaGFkb3cuY2FtZXJhLnRvcC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEudG9wPXR9fSxzaGFkb3dDYW1lcmFCb3R0b206e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhQm90dG9tIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5ib3R0b20uIiksdGhpcy5zaGFkb3cuY2FtZXJhLmJvdHRvbT10fX0sc2hhZG93Q2FtZXJhTmVhcjp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFOZWFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5uZWFyLiIpLHRoaXMuc2hhZG93LmNhbWVyYS5uZWFyPXR9fSxzaGFkb3dDYW1lcmFGYXI6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhRmFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5mYXIuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmZhcj10fX0sc2hhZG93Q2FtZXJhVmlzaWJsZTp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVZpc2libGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5DYW1lcmFIZWxwZXIoIGxpZ2h0LnNoYWRvdy5jYW1lcmEgKSBpbnN0ZWFkLiIpfX0sc2hhZG93Qmlhczp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dCaWFzIGlzIG5vdyAuc2hhZG93LmJpYXMuIiksdGhpcy5zaGFkb3cuYmlhcz10fX0sc2hhZG93RGFya25lc3M6e3NldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dEYXJrbmVzcyBoYXMgYmVlbiByZW1vdmVkLiIpfX0sc2hhZG93TWFwV2lkdGg6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwV2lkdGggaXMgbm93IC5zaGFkb3cubWFwU2l6ZS53aWR0aC4iKSx0aGlzLnNoYWRvdy5tYXBTaXplLndpZHRoPXR9fSxzaGFkb3dNYXBIZWlnaHQ6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwSGVpZ2h0IGlzIG5vdyAuc2hhZG93Lm1hcFNpemUuaGVpZ2h0LiIpLHRoaXMuc2hhZG93Lm1hcFNpemUuaGVpZ2h0PXR9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHpydC5wcm90b3R5cGUse2xlbmd0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAubGVuZ3RoIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuY291bnQgaW5zdGVhZC4iKSx0aGlzLmFycmF5Lmxlbmd0aH19LGR5bmFtaWM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLmR5bmFtaWMgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC51c2FnZSBpbnN0ZWFkLiIpLHRoaXMudXNhZ2U9PT1WaXR9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuZHluYW1pYyBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnVzYWdlIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZShWaXQpfX19KSx6cnQucHJvdG90eXBlLnNldER5bmFtaWM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuc2V0RHluYW1pYygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuc2V0VXNhZ2UoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoITA9PT10P1ZpdDpCaXQpLHRoaXN9LHpydC5wcm90b3R5cGUuY29weUluZGljZXNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLmNvcHlJbmRpY2VzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSx6cnQucHJvdG90eXBlLnNldEFycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuc2V0QXJyYXkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEJ1ZmZlckdlb21ldHJ5IC5zZXRBdHRyaWJ1dGUgdG8gcmVwbGFjZS9yZXNpemUgYXR0cmlidXRlIGJ1ZmZlcnMiKX0scXJ0LnByb3RvdHlwZS5hZGRJbmRleD1mdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkSW5kZXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRJbmRleCgpLiIpLHRoaXMuc2V0SW5kZXgodCl9LHFydC5wcm90b3R5cGUuYWRkQXR0cmlidXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGRBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRBdHRyaWJ1dGUoKS4iKSxlJiZlLmlzQnVmZmVyQXR0cmlidXRlfHxlJiZlLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU/ImluZGV4Ij09PXQ/KGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnkuYWRkQXR0cmlidXRlOiBVc2UgLnNldEluZGV4KCkgZm9yIGluZGV4IGF0dHJpYnV0ZS4iKSx0aGlzLnNldEluZGV4KGUpLHRoaXMpOnRoaXMuc2V0QXR0cmlidXRlKHQsZSk6KGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGRBdHRyaWJ1dGUoKSBub3cgZXhwZWN0cyAoIG5hbWUsIGF0dHJpYnV0ZSApLiIpLHRoaXMuc2V0QXR0cmlidXRlKHQsbmV3IHpydChhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdKSkpfSxxcnQucHJvdG90eXBlLmFkZERyYXdDYWxsPWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDAhPT1uJiZjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkRHJhd0NhbGwoKSBubyBsb25nZXIgc3VwcG9ydHMgaW5kZXhPZmZzZXQuIiksY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZERyYXdDYWxsKCkgaXMgbm93IC5hZGRHcm91cCgpLiIpLHRoaXMuYWRkR3JvdXAodCxlKX0scXJ0LnByb3RvdHlwZS5jbGVhckRyYXdDYWxscz1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5jbGVhckRyYXdDYWxscygpIGlzIG5vdyAuY2xlYXJHcm91cHMoKS4iKSx0aGlzLmNsZWFyR3JvdXBzKCl9LHFydC5wcm90b3R5cGUuY29tcHV0ZU9mZnNldHM9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuY29tcHV0ZU9mZnNldHMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxxcnQucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLnJlbW92ZUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmRlbGV0ZUF0dHJpYnV0ZSgpLiIpLHRoaXMuZGVsZXRlQXR0cmlidXRlKHQpfSxxcnQucHJvdG90eXBlLmFwcGx5TWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYXBwbHlNYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5hcHBseU1hdHJpeDQoKS4iKSx0aGlzLmFwcGx5TWF0cml4NCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocXJ0LnByb3RvdHlwZSx7ZHJhd2NhbGxzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5kcmF3Y2FsbHMgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ3JvdXBzLiIpLHRoaXMuZ3JvdXBzfX0sb2Zmc2V0czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5vZmZzZXRzIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdyb3Vwcy4iKSx0aGlzLmdyb3Vwc319fSksX2R0LnByb3RvdHlwZS5zZXREeW5hbWljPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkludGVybGVhdmVkQnVmZmVyOiAuc2V0RHluYW1pYygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuc2V0VXNhZ2UoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoITA9PT10P1ZpdDpCaXQpLHRoaXN9LF9kdC5wcm90b3R5cGUuc2V0QXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlcjogLnNldEFycmF5IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBCdWZmZXJHZW9tZXRyeSAuc2V0QXR0cmlidXRlIHRvIHJlcGxhY2UvcmVzaXplIGF0dHJpYnV0ZSBidWZmZXJzIil9LG5tdC5wcm90b3R5cGUuZ2V0QXJyYXlzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuZ2V0QXJyYXlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sbm10LnByb3RvdHlwZS5hZGRTaGFwZUxpc3Q9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5hZGRTaGFwZUxpc3QoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxubXQucHJvdG90eXBlLmFkZFNoYXBlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuYWRkU2hhcGUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSx5ZHQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5TY2VuZTogLmRpc3Bvc2UoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhPcnQucHJvdG90eXBlLHt3cmFwQXJvdW5kOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfX0sb3ZlcmRyYXc6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTWF0ZXJpYWw6IC5vdmVyZHJhdyBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAub3ZlcmRyYXcgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHdyYXBSR0I6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcFJHQiBoYXMgYmVlbiByZW1vdmVkLiIpLG5ldyBScnR9fSxzaGFkaW5nOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc2hhZGluZyBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdGhlIGJvb2xlYW4gLmZsYXRTaGFkaW5nIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKSx0aGlzLmZsYXRTaGFkaW5nPTE9PT10fX0sc3RlbmNpbE1hc2s6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zdGVuY2lsTWFzayBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnN0ZW5jaWxGdW5jTWFzayBpbnN0ZWFkLiIpLHRoaXMuc3RlbmNpbEZ1bmNNYXNrfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc3RlbmNpbE1hc2sgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5zdGVuY2lsRnVuY01hc2sgaW5zdGVhZC4iKSx0aGlzLnN0ZW5jaWxGdW5jTWFzaz10fX0sdmVydGV4VGFuZ2VudHM6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGJzdC5wcm90b3R5cGUse2Rlcml2YXRpdmVzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFkZXJNYXRlcmlhbDogLmRlcml2YXRpdmVzIGhhcyBiZWVuIG1vdmVkIHRvIC5leHRlbnNpb25zLmRlcml2YXRpdmVzLiIpLHRoaXMuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlc30sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuIFNoYWRlck1hdGVyaWFsOiAuZGVyaXZhdGl2ZXMgaGFzIGJlZW4gbW92ZWQgdG8gLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMuIiksdGhpcy5leHRlbnNpb25zLmRlcml2YXRpdmVzPXR9fX0pLGJkdC5wcm90b3R5cGUuY2xlYXJUYXJnZXQ9ZnVuY3Rpb24odCxlLG4sbyl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuY2xlYXJUYXJnZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnNldFJlbmRlclRhcmdldCgpIGFuZCAuY2xlYXIoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0UmVuZGVyVGFyZ2V0KHQpLHRoaXMuY2xlYXIoZSxuLG8pfSxiZHQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYW5pbWF0ZSgpIGlzIG5vdyAuc2V0QW5pbWF0aW9uTG9vcCgpLiIpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcCh0KX0sYmR0LnByb3RvdHlwZS5nZXRDdXJyZW50UmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdldEN1cnJlbnRSZW5kZXJUYXJnZXQoKSBpcyBub3cgLmdldFJlbmRlclRhcmdldCgpLiIpLHRoaXMuZ2V0UmVuZGVyVGFyZ2V0KCl9LGJkdC5wcm90b3R5cGUuZ2V0TWF4QW5pc290cm9weT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRNYXhBbmlzb3Ryb3B5KCkgaXMgbm93IC5jYXBhYmlsaXRpZXMuZ2V0TWF4QW5pc290cm9weSgpLiIpLHRoaXMuY2FwYWJpbGl0aWVzLmdldE1heEFuaXNvdHJvcHkoKX0sYmR0LnByb3RvdHlwZS5nZXRQcmVjaXNpb249ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0UHJlY2lzaW9uKCkgaXMgbm93IC5jYXBhYmlsaXRpZXMucHJlY2lzaW9uLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnByZWNpc2lvbn0sYmR0LnByb3RvdHlwZS5yZXNldEdMU3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAucmVzZXRHTFN0YXRlKCkgaXMgbm93IC5zdGF0ZS5yZXNldCgpLiIpLHRoaXMuc3RhdGUucmVzZXQoKX0sYmR0LnByb3RvdHlwZS5zdXBwb3J0c0Zsb2F0VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2Zsb2F0JyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU190ZXh0dXJlX2Zsb2F0Iil9LGJkdC5wcm90b3R5cGUuc3VwcG9ydHNIYWxmRmxvYXRUZXh0dXJlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0hhbGZGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2hhbGZfZmxvYXQnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpfSxiZHQucHJvdG90eXBlLnN1cHBvcnRzU3RhbmRhcmREZXJpdmF0aXZlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c1N0YW5kYXJkRGVyaXZhdGl2ZXMoKSBpcyBub3cgLmV4dGVuc2lvbnMuZ2V0KCAnT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpfSxiZHQucHJvdG90eXBlLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIil9LGJkdC5wcm90b3R5cGUuc3VwcG9ydHNDb21wcmVzc2VkVGV4dHVyZVBWUlRDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVQVlJUQygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIil9LGJkdC5wcm90b3R5cGUuc3VwcG9ydHNCbGVuZE1pbk1heD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0JsZW5kTWluTWF4KCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0VYVF9ibGVuZF9taW5tYXgnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiRVhUX2JsZW5kX21pbm1heCIpfSxiZHQucHJvdG90eXBlLnN1cHBvcnRzVmVydGV4VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcygpIGlzIG5vdyAuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzfSxiZHQucHJvdG90eXBlLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0FOR0xFX2luc3RhbmNlZF9hcnJheXMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpfSxiZHQucHJvdG90eXBlLmVuYWJsZVNjaXNzb3JUZXN0PWZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmVuYWJsZVNjaXNzb3JUZXN0KCkgaXMgbm93IC5zZXRTY2lzc29yVGVzdCgpLiIpLHRoaXMuc2V0U2Npc3NvclRlc3QodCl9LGJkdC5wcm90b3R5cGUuaW5pdE1hdGVyaWFsPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuaW5pdE1hdGVyaWFsKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sYmR0LnByb3RvdHlwZS5hZGRQcmVQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQcmVQbHVnaW4oKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxiZHQucHJvdG90eXBlLmFkZFBvc3RQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQb3N0UGx1Z2luKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sYmR0LnByb3RvdHlwZS51cGRhdGVTaGFkb3dNYXA9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC51cGRhdGVTaGFkb3dNYXAoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxiZHQucHJvdG90eXBlLnNldEZhY2VDdWxsaW5nPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0RmFjZUN1bGxpbmcoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxiZHQucHJvdG90eXBlLmFsbG9jVGV4dHVyZVVuaXQ9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hbGxvY1RleHR1cmVVbml0KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sYmR0LnByb3RvdHlwZS5zZXRUZXh0dXJlPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LGJkdC5wcm90b3R5cGUuc2V0VGV4dHVyZTJEPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZTJEKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sYmR0LnByb3RvdHlwZS5zZXRUZXh0dXJlQ3ViZT1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNldFRleHR1cmVDdWJlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sYmR0LnByb3RvdHlwZS5nZXRBY3RpdmVNaXBNYXBMZXZlbD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRBY3RpdmVNaXBNYXBMZXZlbCgpIGlzIG5vdyAuZ2V0QWN0aXZlTWlwbWFwTGV2ZWwoKS4iKSx0aGlzLmdldEFjdGl2ZU1pcG1hcExldmVsKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGJkdC5wcm90b3R5cGUse3NoYWRvd01hcEVuYWJsZWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC5lbmFibGVkfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwRW5hYmxlZCBpcyBub3cgLnNoYWRvd01hcC5lbmFibGVkLiIpLHRoaXMuc2hhZG93TWFwLmVuYWJsZWQ9dH19LHNoYWRvd01hcFR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC50eXBlfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwVHlwZSBpcyBub3cgLnNoYWRvd01hcC50eXBlLiIpLHRoaXMuc2hhZG93TWFwLnR5cGU9dH19LHNoYWRvd01hcEN1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0sY29udGV4dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmNvbnRleHQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5nZXRDb250ZXh0KCkgaW5zdGVhZC4iKSx0aGlzLmdldENvbnRleHQoKX19LHZyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudnIgaGFzIGJlZW4gcmVuYW1lZCB0byAueHIiKSx0aGlzLnhyfX0sZ2FtbWFJbnB1dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hSW5wdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IHRoZSBlbmNvZGluZyBmb3IgdGV4dHVyZXMgdmlhIFRleHR1cmUuZW5jb2RpbmcgaW5zdGVhZC4iKSwhMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFJbnB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgdGhlIGVuY29kaW5nIGZvciB0ZXh0dXJlcyB2aWEgVGV4dHVyZS5lbmNvZGluZyBpbnN0ZWFkLiIpfX0sZ2FtbWFPdXRwdXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYU91dHB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgV2ViR0xSZW5kZXJlci5vdXRwdXRFbmNvZGluZyBpbnN0ZWFkLiIpLCExfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFPdXRwdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IFdlYkdMUmVuZGVyZXIub3V0cHV0RW5jb2RpbmcgaW5zdGVhZC4iKSx0aGlzLm91dHB1dEVuY29kaW5nPSEwPT09dD9JaXQ6eml0fX0sdG9uZU1hcHBpbmdXaGl0ZVBvaW50OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIiksMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHNkdC5wcm90b3R5cGUse2N1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAuY3VsbEZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLmN1bGxGYWNlIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9fSxyZW5kZXJSZXZlcnNlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJSZXZlcnNlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLnJlbmRlclJldmVyc2VTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0scmVuZGVyU2luZ2xlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJTaW5nbGVTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAucmVuZGVyU2luZ2xlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX19fSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocmF0LnByb3RvdHlwZSx7d3JhcFM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFMgaXMgbm93IC50ZXh0dXJlLndyYXBTLiIpLHRoaXMudGV4dHVyZS53cmFwU30sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwUyBpcyBub3cgLnRleHR1cmUud3JhcFMuIiksdGhpcy50ZXh0dXJlLndyYXBTPXR9fSx3cmFwVDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwVCBpcyBub3cgLnRleHR1cmUud3JhcFQuIiksdGhpcy50ZXh0dXJlLndyYXBUfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLndyYXBUIGlzIG5vdyAudGV4dHVyZS53cmFwVC4iKSx0aGlzLnRleHR1cmUud3JhcFQ9dH19LG1hZ0ZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5tYWdGaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1hZ0ZpbHRlci4iKSx0aGlzLnRleHR1cmUubWFnRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1hZ0ZpbHRlciBpcyBub3cgLnRleHR1cmUubWFnRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5tYWdGaWx0ZXI9dH19LG1pbkZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5taW5GaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1pbkZpbHRlci4iKSx0aGlzLnRleHR1cmUubWluRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1pbkZpbHRlciBpcyBub3cgLnRleHR1cmUubWluRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9dH19LGFuaXNvdHJvcHk6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuYW5pc290cm9weSBpcyBub3cgLnRleHR1cmUuYW5pc290cm9weS4iKSx0aGlzLnRleHR1cmUuYW5pc290cm9weX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5hbmlzb3Ryb3B5IGlzIG5vdyAudGV4dHVyZS5hbmlzb3Ryb3B5LiIpLHRoaXMudGV4dHVyZS5hbmlzb3Ryb3B5PXR9fSxvZmZzZXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAub2Zmc2V0IGlzIG5vdyAudGV4dHVyZS5vZmZzZXQuIiksdGhpcy50ZXh0dXJlLm9mZnNldH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5vZmZzZXQgaXMgbm93IC50ZXh0dXJlLm9mZnNldC4iKSx0aGlzLnRleHR1cmUub2Zmc2V0PXR9fSxyZXBlYXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAucmVwZWF0IGlzIG5vdyAudGV4dHVyZS5yZXBlYXQuIiksdGhpcy50ZXh0dXJlLnJlcGVhdH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5yZXBlYXQgaXMgbm93IC50ZXh0dXJlLnJlcGVhdC4iKSx0aGlzLnRleHR1cmUucmVwZWF0PXR9fSxmb3JtYXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZm9ybWF0IGlzIG5vdyAudGV4dHVyZS5mb3JtYXQuIiksdGhpcy50ZXh0dXJlLmZvcm1hdH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5mb3JtYXQgaXMgbm93IC50ZXh0dXJlLmZvcm1hdC4iKSx0aGlzLnRleHR1cmUuZm9ybWF0PXR9fSx0eXBlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnR5cGUgaXMgbm93IC50ZXh0dXJlLnR5cGUuIiksdGhpcy50ZXh0dXJlLnR5cGV9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAudHlwZSBpcyBub3cgLnRleHR1cmUudHlwZS4iKSx0aGlzLnRleHR1cmUudHlwZT10fX0sZ2VuZXJhdGVNaXBtYXBzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmdlbmVyYXRlTWlwbWFwcyBpcyBub3cgLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzLiIpLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHN9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZ2VuZXJhdGVNaXBtYXBzIGlzIG5vdyAudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMuIiksdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz10fX19KSxjbGFzcyBleHRlbmRzIHBydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iQXVkaW8iLHRoaXMubGlzdGVuZXI9dCx0aGlzLmNvbnRleHQ9dC5jb250ZXh0LHRoaXMuZ2Fpbj10aGlzLmNvbnRleHQuY3JlYXRlR2FpbigpLHRoaXMuZ2Fpbi5jb25uZWN0KHQuZ2V0SW5wdXQoKSksdGhpcy5hdXRvcGxheT0hMSx0aGlzLmJ1ZmZlcj1udWxsLHRoaXMuZGV0dW5lPTAsdGhpcy5sb29wPSExLHRoaXMubG9vcFN0YXJ0PTAsdGhpcy5sb29wRW5kPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmR1cmF0aW9uPXZvaWQgMCx0aGlzLnBsYXliYWNrUmF0ZT0xLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSEwLHRoaXMuc291cmNlPW51bGwsdGhpcy5zb3VyY2VUeXBlPSJlbXB0eSIsdGhpcy5fc3RhcnRlZEF0PTAsdGhpcy5fcHJvZ3Jlc3M9MCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5maWx0ZXJzPVtdfWdldE91dHB1dCgpe3JldHVybiB0aGlzLmdhaW59c2V0Tm9kZVNvdXJjZSh0KXtyZXR1cm4gdGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9ITEsdGhpcy5zb3VyY2VUeXBlPSJhdWRpb05vZGUiLHRoaXMuc291cmNlPXQsdGhpcy5jb25uZWN0KCksdGhpc31zZXRNZWRpYUVsZW1lbnRTb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFOb2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlKHQpLHRoaXMuY29ubmVjdCgpLHRoaXN9c2V0TWVkaWFTdHJlYW1Tb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFTdHJlYW1Ob2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UodCksdGhpcy5jb25uZWN0KCksdGhpc31zZXRCdWZmZXIodCl7cmV0dXJuIHRoaXMuYnVmZmVyPXQsdGhpcy5zb3VyY2VUeXBlPSJidWZmZXIiLHRoaXMuYXV0b3BsYXkmJnRoaXMucGxheSgpLHRoaXN9cGxheSh0PTApe2lmKCEwPT09dGhpcy5pc1BsYXlpbmcpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogQXVkaW8gaXMgYWxyZWFkeSBwbGF5aW5nLiIpO2lmKCExPT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKTt0aGlzLl9zdGFydGVkQXQ9dGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lK3Q7Y29uc3QgZT10aGlzLmNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7cmV0dXJuIGUuYnVmZmVyPXRoaXMuYnVmZmVyLGUubG9vcD10aGlzLmxvb3AsZS5sb29wU3RhcnQ9dGhpcy5sb29wU3RhcnQsZS5sb29wRW5kPXRoaXMubG9vcEVuZCxlLm9uZW5kZWQ9dGhpcy5vbkVuZGVkLmJpbmQodGhpcyksZS5zdGFydCh0aGlzLl9zdGFydGVkQXQsdGhpcy5fcHJvZ3Jlc3MrdGhpcy5vZmZzZXQsdGhpcy5kdXJhdGlvbiksdGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zb3VyY2U9ZSx0aGlzLnNldERldHVuZSh0aGlzLmRldHVuZSksdGhpcy5zZXRQbGF5YmFja1JhdGUodGhpcy5wbGF5YmFja1JhdGUpLHRoaXMuY29ubmVjdCgpfXBhdXNlKCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4hMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5fcHJvZ3Jlc3MrPU1hdGgubWF4KHRoaXMuY29udGV4dC5jdXJyZW50VGltZS10aGlzLl9zdGFydGVkQXQsMCkqdGhpcy5wbGF5YmFja1JhdGUsITA9PT10aGlzLmxvb3AmJih0aGlzLl9wcm9ncmVzcz10aGlzLl9wcm9ncmVzcyUodGhpcy5kdXJhdGlvbnx8dGhpcy5idWZmZXIuZHVyYXRpb24pKSx0aGlzLnNvdXJjZS5zdG9wKCksdGhpcy5zb3VyY2Uub25lbmRlZD1udWxsLHRoaXMuaXNQbGF5aW5nPSExKSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9c3RvcCgpe2lmKCExIT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHRoaXMuX3Byb2dyZXNzPTAsdGhpcy5zb3VyY2Uuc3RvcCgpLHRoaXMuc291cmNlLm9uZW5kZWQ9bnVsbCx0aGlzLmlzUGxheWluZz0hMSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9Y29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmNvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5jb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSEwLHRoaXN9ZGlzY29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmRpc2Nvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5kaXNjb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSExLHRoaXN9Z2V0RmlsdGVycygpe3JldHVybiB0aGlzLmZpbHRlcnN9c2V0RmlsdGVycyh0KXtyZXR1cm4gdHx8KHQ9W10pLCEwPT09dGhpcy5fY29ubmVjdGVkPyh0aGlzLmRpc2Nvbm5lY3QoKSx0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXMuY29ubmVjdCgpKTp0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXN9c2V0RGV0dW5lKHQpe2lmKHRoaXMuZGV0dW5lPXQsdm9pZCAwIT09dGhpcy5zb3VyY2UuZGV0dW5lKXJldHVybiEwPT09dGhpcy5pc1BsYXlpbmcmJnRoaXMuc291cmNlLmRldHVuZS5zZXRUYXJnZXRBdFRpbWUodGhpcy5kZXR1bmUsdGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lLC4wMSksdGhpc31nZXREZXR1bmUoKXtyZXR1cm4gdGhpcy5kZXR1bmV9Z2V0RmlsdGVyKCl7cmV0dXJuIHRoaXMuZ2V0RmlsdGVycygpWzBdfXNldEZpbHRlcih0KXtyZXR1cm4gdGhpcy5zZXRGaWx0ZXJzKHQ/W3RdOltdKX1zZXRQbGF5YmFja1JhdGUodCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGU9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiZ0aGlzLnNvdXJjZS5wbGF5YmFja1JhdGUuc2V0VGFyZ2V0QXRUaW1lKHRoaXMucGxheWJhY2tSYXRlLHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1nZXRQbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGV9b25FbmRlZCgpe3RoaXMuaXNQbGF5aW5nPSExfWdldExvb3AoKXtyZXR1cm4hMT09PXRoaXMuaGFzUGxheWJhY2tDb250cm9sPyhjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpLCExKTp0aGlzLmxvb3B9c2V0TG9vcCh0KXtpZighMSE9PXRoaXMuaGFzUGxheWJhY2tDb250cm9sKXJldHVybiB0aGlzLmxvb3A9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5zb3VyY2UubG9vcD10aGlzLmxvb3ApLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1zZXRMb29wU3RhcnQodCl7cmV0dXJuIHRoaXMubG9vcFN0YXJ0PXQsdGhpc31zZXRMb29wRW5kKHQpe3JldHVybiB0aGlzLmxvb3BFbmQ9dCx0aGlzfWdldFZvbHVtZSgpe3JldHVybiB0aGlzLmdhaW4uZ2Fpbi52YWx1ZX1zZXRWb2x1bWUodCl7cmV0dXJuIHRoaXMuZ2Fpbi5nYWluLnNldFRhcmdldEF0VGltZSh0LHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXN9fS5wcm90b3R5cGUubG9hZD1mdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiAubG9hZCBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuQXVkaW9Mb2FkZXIgaW5zdGVhZC4iKTtjb25zdCBlPXRoaXM7cmV0dXJuKG5ldyBZbXQpLmxvYWQodCwoZnVuY3Rpb24odCl7ZS5zZXRCdWZmZXIodCl9KSksdGhpc30sTXN0LnByb3RvdHlwZS51cGRhdGVDdWJlTWFwPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3ViZUNhbWVyYTogLnVwZGF0ZUN1YmVNYXAoKSBpcyBub3cgLnVwZGF0ZSgpLiIpLHRoaXMudXBkYXRlKHQsZSl9LE1zdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3ViZUNhbWVyYTogLmNsZWFyKCkgaXMgbm93IC5yZW5kZXJUYXJnZXQuY2xlYXIoKS4iKSx0aGlzLnJlbmRlclRhcmdldC5jbGVhcih0LGUsbixvKX0sZWF0LmNyb3NzT3JpZ2luPXZvaWQgMCxlYXQubG9hZFRleHR1cmU9ZnVuY3Rpb24odCxlLG4sbyl7Y29uc29sZS53YXJuKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRUZXh0dXJlIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBUSFJFRS5UZXh0dXJlTG9hZGVyKCkgaW5zdGVhZC4iKTtjb25zdCBpPW5ldyBTbXQ7aS5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKTtjb25zdCBhPWkubG9hZCh0LG4sdm9pZCAwLG8pO3JldHVybiBlJiYoYS5tYXBwaW5nPWUpLGF9LGVhdC5sb2FkVGV4dHVyZUN1YmU9ZnVuY3Rpb24odCxlLG4sbyl7Y29uc29sZS53YXJuKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRUZXh0dXJlQ3ViZSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuQ3ViZVRleHR1cmVMb2FkZXIoKSBpbnN0ZWFkLiIpO2NvbnN0IGk9bmV3IGttdDtpLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pO2NvbnN0IGE9aS5sb2FkKHQsbix2b2lkIDAsbyk7cmV0dXJuIGUmJihhLm1hcHBpbmc9ZSksYX0sZWF0LmxvYWRDb21wcmVzc2VkVGV4dHVyZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkltYWdlVXRpbHMubG9hZENvbXByZXNzZWRUZXh0dXJlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5ERFNMb2FkZXIgaW5zdGVhZC4iKX0sZWF0LmxvYWRDb21wcmVzc2VkVGV4dHVyZUN1YmU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRDb21wcmVzc2VkVGV4dHVyZUN1YmUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFRIUkVFLkREU0xvYWRlciBpbnN0ZWFkLiIpfSwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZWdpc3RlciIse2RldGFpbDp7cmV2aXNpb246IjEzMSJ9fSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93Ll9fVEhSRUVfXz9jb25zb2xlLndhcm4oIldBUk5JTkc6IE11bHRpcGxlIGluc3RhbmNlcyBvZiBUaHJlZS5qcyBiZWluZyBpbXBvcnRlZC4iKTp3aW5kb3cuX19USFJFRV9fPSIxMzEiKSwoZnVuY3Rpb24odCl7dFt0LkNJUkNMRT0wXT0iQ0lSQ0xFIix0W3QuTElORT0xXT0iTElORSIsdFt0LlRSSUFOR0xFPTJdPSJUUklBTkdMRSIsdFt0LlRSQVBFWk9JRD0zXT0iVFJBUEVaT0lEIn0pKHB1dHx8KHB1dD17fSkpO2NsYXNzIHl1dHtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLmNvb3JkaW5hdG9yPWUsdGhpcy5zY2VuZT1uZXcgeWR0LHRoaXMuYmFja2dyb3VuZENvbG9yPSIjZmZmIixpaXQoKSYmdCBpbnN0YW5jZW9mIE9mZnNjcmVlbkNhbnZhcyYmKHQuc3R5bGU9dC5zdHlsZXx8e30pLG8mJnQuYWRkRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIsbyksdGhpcy5yZW5kZXJlcj1uZXcgYmR0KHtjYW52YXM6dCxjb250ZXh0OnQuZ2V0Q29udGV4dCgid2ViZ2wyIix7YW50aWFsaWFzOiEwLHByZWNpc2lvbjoiaGlnaHAiLGFscGhhOiEwfSl9KSx0aGlzLnJlbmRlcmVyLnNldFBpeGVsUmF0aW8obil9b25SZXNpemUodCl7dGhpcy5yZW5kZXJlci5zZXRTaXplKHQud2lkdGgsdC5oZWlnaHQpfWRlc3Ryb3lPYmplY3QodCl7Y29uc3QgZT10Lm9iajNkO2lmKHRoaXMuc2NlbmUucmVtb3ZlKGUpLGUgaW5zdGFuY2VvZiBwc3Qpe2UuZ2VvbWV0cnkuZGlzcG9zZSgpO2NvbnN0IHQ9QXJyYXkuaXNBcnJheShlLm1hdGVyaWFsKT9lLm1hdGVyaWFsOltlLm1hdGVyaWFsXTtmb3IoY29uc3QgZSBvZiB0KWUuZGlzcG9zZSgpfX1zZXRVc2VEYXJrTW9kZSh0KXt0aGlzLmJhY2tncm91bmRDb2xvcj10PyIjMzAzMDMwIjoiI2ZmZiJ9Y3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHQsZSxuKXt2YXIgbztpZighdCYmIW4udmlzaWJsZSlyZXR1cm4gbnVsbDtjb25zdHt2aXNpYmxlOmksd2lkdGg6YX09bjtpZighdCl7Y29uc3QgdD1kdXQodGhpcy5iYWNrZ3JvdW5kQ29sb3Isbi5jb2xvcixudWxsIT09KG89bi5vcGFjaXR5KSYmdm9pZCAwIT09bz9vOjEpLHI9bmV3IHFydCxzPW5ldyBxZHQoe2NvbG9yOnR9KSxsPW5ldyBwc3QocixzKTtyZXR1cm4gcy52aXNpYmxlPWksaHV0KHIsZSxhKSx0aGlzLnNjZW5lLmFkZChsKSx7dHlwZTpwdXQuTElORSxkYXRhOmUsb2JqM2Q6bCx3aWR0aDphfX1jb25zdHtkYXRhOnIsb2JqM2Q6cyx3aWR0aDpsfT10O3JldHVybiBidXQodGhpcy5iYWNrZ3JvdW5kQ29sb3IscywodD0+KGE9PT1sJiZyJiZhaXQocixlKXx8aHV0KHQsZSxhKSx0KSksbik/e3R5cGU6cHV0LkxJTkUsZGF0YTplLG9iajNkOnMsd2lkdGg6YX06dH1jcmVhdGVNZXNoKHQsZSl7aWYoIWUudmlzaWJsZSlyZXR1cm4gbnVsbDtjb25zdHt2aXNpYmxlOm4sY29sb3I6byxvcGFjaXR5Oml9PWUsYT1kdXQodGhpcy5iYWNrZ3JvdW5kQ29sb3IsbyxudWxsIT1pP2k6MSkscj1uZXcgQXJ0KHtjb2xvcjphLHZpc2libGU6bn0pO3JldHVybiBuZXcgcHN0KHQscil9Y3JlYXRlT3JVcGRhdGVUcmlhbmdsZU9iamVjdCh0LGUsbil7Y29uc3R7c2l6ZTpvfT1uLGk9bypNYXRoLnNxcnQoMykvMixhPW5ldyBGbG9hdDMyQXJyYXkoW2UueC1vLzIsZS55LWkvMyxlLngrby8yLGUueS1pLzMsZS54LGUueSsyKmkvM10pO2lmKCF0KXtjb25zdCB0PW5ldyBxcnQ7Z3V0KHQsYSk7Y29uc3Qgbz10aGlzLmNyZWF0ZU1lc2godCxuKTtyZXR1cm4gbnVsbD09PW8/bnVsbDoodGhpcy5zY2VuZS5hZGQobykse3R5cGU6cHV0LlRSSUFOR0xFLGRhdGE6ZSxvYmozZDpvfSl9cmV0dXJuIGJ1dCh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLCh0PT4oZ3V0KHQsYSksdCkpLG4pP3t0eXBlOnB1dC5UUklBTkdMRSxkYXRhOmUsb2JqM2Q6dC5vYmozZH06dH1jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0LGUsbil7Y29uc3R7cmFkaXVzOm99PW4saT1uZXcgY3B0KG4ucmFkaXVzKTtpZighdCl7Y29uc3QgdD10aGlzLmNyZWF0ZU1lc2goaSxuKTtyZXR1cm4gbnVsbD09PXQ/bnVsbDoodC5wb3NpdGlvbi5zZXQoZS54LGUueSwwKSx0aGlzLnNjZW5lLmFkZCh0KSx7dHlwZTpwdXQuQ0lSQ0xFLGRhdGE6e2xvYzplLHJhZGl1czpvfSxvYmozZDp0fSl9cmV0dXJuIGJ1dCh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLCgoKT0+aSksbik/KHQub2JqM2QucG9zaXRpb24uc2V0KGUueCxlLnksMCkse3R5cGU6cHV0LkNJUkNMRSxkYXRhOntsb2M6ZSxyYWRpdXM6b30sb2JqM2Q6dC5vYmozZH0pOnR9Y3JlYXRlT3JVcGRhdGVUcmFwZXpvaWRPYmplY3QodCxlLG4sbyl7aWYoZS55IT09bi55KXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnB1dCBlcnJvcjogc3RhcnQueSAhPSBlbmQueS4iKTtjb25zdHthbHRpdHVkZTppfT1vLGE9Mi9NYXRoLnNxcnQoMykqaSxyPW5ldyBSbXQoW25ldyBRaXQoZS54LWEvMixlLnktaS8yKSxuZXcgUWl0KGUueCxlLnkraS8yKSxuZXcgUWl0KG4ueCxuLnkraS8yKSxuZXcgUWl0KG4ueCthLzIsbi55LWkvMildKTtyLmF1dG9DbG9zZT0hMDtjb25zdCBzPW5ldyBpbXQocik7aWYoIXQpe2NvbnN0IHQ9dGhpcy5jcmVhdGVNZXNoKHMsbyk7cmV0dXJuIG51bGw9PT10P251bGw6KHRoaXMuc2NlbmUuYWRkKHQpLHt0eXBlOnB1dC5UUkFQRVpPSUQsZGF0YTpbZSxuXSxvYmozZDp0fSl9cmV0dXJuIGJ1dCh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLCgoKT0+cyksbyk/e3R5cGU6cHV0LlRSQVBFWk9JRCxkYXRhOltlLG5dLG9iajNkOnQub2JqM2R9OnR9Zmx1c2goKXt0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnNjZW5lLHRoaXMuY29vcmRpbmF0b3IuZ2V0Q2FtZXJhKCkpfX1jbGFzcyBfdXR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlbmRlckNhY2hlPXQsdGhpcy5yZW5kZXJlcj1lfXNldExpbmUodCxlLG4pe2NvbnN0IG89dGhpcy5yZW5kZXJlci5jcmVhdGVPclVwZGF0ZUxpbmVPYmplY3QodGhpcy5yZW5kZXJDYWNoZS5nZXRGcm9tUHJldmlvdXNGcmFtZSh0KSxlLG4pO28mJnRoaXMucmVuZGVyQ2FjaGUuc2V0VG9DdXJyZW50RnJhbWUodCxvKX1zZXRUcmlhbmdsZSh0LGUsbil7Y29uc3Qgbz10aGlzLnJlbmRlcmVyLmNyZWF0ZU9yVXBkYXRlVHJpYW5nbGVPYmplY3QodGhpcy5yZW5kZXJDYWNoZS5nZXRGcm9tUHJldmlvdXNGcmFtZSh0KSxlLG4pO28mJnRoaXMucmVuZGVyQ2FjaGUuc2V0VG9DdXJyZW50RnJhbWUodCxvKX1zZXRDaXJjbGUodCxlLG4pe2NvbnN0IG89dGhpcy5yZW5kZXJlci5jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0aGlzLnJlbmRlckNhY2hlLmdldEZyb21QcmV2aW91c0ZyYW1lKHQpLGUsbik7byYmdGhpcy5yZW5kZXJDYWNoZS5zZXRUb0N1cnJlbnRGcmFtZSh0LG8pfXNldFRyYXBlem9pZCh0LGUsbixvKXtjb25zdCBpPXRoaXMucmVuZGVyZXIuY3JlYXRlT3JVcGRhdGVUcmFwZXpvaWRPYmplY3QodGhpcy5yZW5kZXJDYWNoZS5nZXRGcm9tUHJldmlvdXNGcmFtZSh0KSxlLG4sbyk7aSYmdGhpcy5yZW5kZXJDYWNoZS5zZXRUb0N1cnJlbnRGcmFtZSh0LGkpfX1jbGFzcyBDdXR7Y29uc3RydWN0b3IoKXt0aGlzLnByZXZGcmFtZUNhY2hlPW5ldyBNYXAsdGhpcy5jdXJyRnJhbWVDYWNoZT1uZXcgTWFwfWdldEZyb21QcmV2aW91c0ZyYW1lKHQpe2NvbnN0IGU9dGhpcy5wcmV2RnJhbWVDYWNoZS5nZXQodCk7cmV0dXJuIG51bGwhPWU/ZTpudWxsfXNldFRvQ3VycmVudEZyYW1lKHQsZSl7dGhpcy5jdXJyRnJhbWVDYWNoZS5zZXQodCxlKX1maW5hbGl6ZUZyYW1lQW5kR2V0UmVtb3ZlZCgpe2NvbnN0IHQ9W107Zm9yKGNvbnN0W2Usbl1vZiB0aGlzLnByZXZGcmFtZUNhY2hlLmVudHJpZXMoKSl0aGlzLmN1cnJGcmFtZUNhY2hlLmhhcyhlKXx8dC5wdXNoKG4pO3JldHVybiB0aGlzLnByZXZGcmFtZUNhY2hlPXRoaXMuY3VyckZyYW1lQ2FjaGUsdGhpcy5jdXJyRnJhbWVDYWNoZT1uZXcgTWFwLHR9fSEoZnVuY3Rpb24odCl7dFt0Lk5VTUJFUj0wXT0iTlVNQkVSIix0W3QuTkFOPTFdPSJOQU4ifSkobXV0fHwobXV0PXt9KSk7Y2xhc3MgTXV0IGV4dGVuZHMgY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5yYXdTZXJpZXNEYXRhPVtdLHRoaXMuc2VyaWVzPVtdLHRoaXMucGFpbnREaXJ0eT0hMCx0aGlzLnJlbmRlckNhY2hlPW5ldyBDdXQsdGhpcy5jb29yZGluYXRlSWRlbnRpZmllcj1udWxsLHRoaXMubGF5b3V0PXt4OjAsd2lkdGg6MSx5OjAsaGVpZ2h0OjF9LHRoaXMuZ2V0TWV0YWRhdGFNYXBJbXBsPXQuZ2V0TWV0YWRhdGFNYXAsdGhpcy5jb29yZGluYXRvcj10LmNvb3JkaW5hdG9yLHRoaXMucmVuZGVyZXI9dC5yZW5kZXJlcix0aGlzLnBhaW50QnJ1c2g9bmV3IF91dCh0aGlzLnJlbmRlckNhY2hlLHRoaXMucmVuZGVyZXIpfXNldExheW91dFJlY3QodCl7dGhpcy5sYXlvdXQueD09PXQueCYmdGhpcy5sYXlvdXQud2lkdGg9PT10LndpZHRoJiZ0aGlzLmxheW91dC55PT09dC55JiZ0aGlzLmxheW91dC5oZWlnaHQ9PT10LmhlaWdodHx8KHRoaXMucGFpbnREaXJ0eT0hMCksdGhpcy5sYXlvdXQ9dH1nZXRMYXlvdXRSZWN0KCl7cmV0dXJuIHRoaXMubGF5b3V0fWdldE1ldGFkYXRhTWFwKCl7cmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFNYXBJbXBsKCl9bWFya0FzUGFpbnREaXJ0eSgpe3RoaXMucGFpbnREaXJ0eT0hMH1yZW5kZXIoKXtpZih0aGlzLnRyYW5zZm9ybUNvb3JkaW5hdGVzSWZTdGFsZSgpLHRoaXMucGFpbnREaXJ0eSl7dGhpcy5yZWRyYXcoKTtmb3IoY29uc3QgdCBvZiB0aGlzLnJlbmRlckNhY2hlLmZpbmFsaXplRnJhbWVBbmRHZXRSZW1vdmVkKCkpdGhpcy5yZW5kZXJlci5kZXN0cm95T2JqZWN0KHQpO3RoaXMucGFpbnREaXJ0eT0hMX19aXNDb29yZGluYXRlVXBkYXRlZCgpe3JldHVybiB0aGlzLmNvb3JkaW5hdG9yLmdldFVwZGF0ZUlkZW50aWZpZXIoKSE9PXRoaXMuY29vcmRpbmF0ZUlkZW50aWZpZXJ9Y2xlYXJDb29yZGluYXRlSWRlbnRpZmllcigpe3RoaXMuY29vcmRpbmF0ZUlkZW50aWZpZXI9bnVsbH1zZXREYXRhKHQpe3RoaXMuY2xlYXJDb29yZGluYXRlSWRlbnRpZmllcigpLHRoaXMucmF3U2VyaWVzRGF0YT10fXRyYW5zZm9ybUNvb3JkaW5hdGVzSWZTdGFsZSgpe2lmKCF0aGlzLmlzQ29vcmRpbmF0ZVVwZGF0ZWQoKSlyZXR1cm47Y29uc3QgdD10aGlzLmdldExheW91dFJlY3QoKTt0aGlzLnNlcmllcz1uZXcgQXJyYXkodGhpcy5yYXdTZXJpZXNEYXRhLmxlbmd0aCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJhd1Nlcmllc0RhdGEubGVuZ3RoO2UrKyl7Y29uc3Qgbj10aGlzLnJhd1Nlcmllc0RhdGFbZV07dGhpcy5zZXJpZXNbZV09e2lkOm4uaWQscG9seWxpbmU6bmV3IEZsb2F0MzJBcnJheSgyKm4ucG9pbnRzLmxlbmd0aCl9O2ZvcihsZXQgbz0wO288bi5wb2ludHMubGVuZ3RoO28rKyl7Y29uc3RbaSxhXT10aGlzLmNvb3JkaW5hdG9yLnRyYW5zZm9ybURhdGFUb1VpQ29vcmQodCxbbi5wb2ludHNbb10ueCxuLnBvaW50c1tvXS55XSk7dGhpcy5zZXJpZXNbZV0ucG9seWxpbmVbMipvXT1pLHRoaXMuc2VyaWVzW2VdLnBvbHlsaW5lWzIqbysxXT1hfX10aGlzLmNvb3JkaW5hdGVJZGVudGlmaWVyPXRoaXMuY29vcmRpbmF0b3IuZ2V0VXBkYXRlSWRlbnRpZmllcigpLHRoaXMubWFya0FzUGFpbnREaXJ0eSgpfX17cmVjb3JkUGFydGl0aW9uKHQsZSxuKXtyZXR1cm4gdD97dHlwZTptdXQuTlVNQkVSLHBvbHlsaW5lOmV9Ont0eXBlOm11dC5OQU4scG9seWxpbmU6ZS5tYXAoKCh0LGUpPT5pc05hTih0KT9lJTI9PTA/bi54Om4ueTp0KSl9fXBhcnRpdGlvblBvbHlsaW5lKHQpe2NvbnN0IGU9W107bGV0IG49MCxvPSExO2NvbnN0IGk9dGhpcy5jb29yZGluYXRvci50cmFuc2Zvcm1EYXRhVG9VaUNvb3JkKHRoaXMuZ2V0TGF5b3V0UmVjdCgpLFswLDBdKSxhPXt4OmlbMF0seTppWzFdfTtsZXQgcj1udWxsO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSs9Mil7Y29uc3QgYT10W2ldLHM9dFtpKzFdLGw9aXNOYU4oYSl8fGlzTmFOKHMpO2whPT1vJiZuIT09aSYmKGUucHVzaCh0aGlzLnJlY29yZFBhcnRpdGlvbighbyx0LnNsaWNlKG4saSksbnVsbD09PXI/e3g6YSx5OnN9OnIpKSxuPWkpLGx8fChyPXt4OmEseTpzfSksbz1sfXJldHVybiBuIT09dC5sZW5ndGgtMSYmZS5wdXNoKHRoaXMucmVjb3JkUGFydGl0aW9uKCFvLHQuc2xpY2Uobix0Lmxlbmd0aCksbnVsbCE9cj9yOmEpKSxlfXJlZHJhdygpe3ZhciB0LGUsbjtmb3IoY29uc3QgbyBvZiB0aGlzLnNlcmllcyl7Y29uc3QgaT10aGlzLmdldE1ldGFkYXRhTWFwKClbby5pZF07aWYoIWkpY29udGludWU7aWYoby5wb2x5bGluZS5sZW5ndGglMiE9MCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBoYXZlIG9kZCBsZW5ndGgtZWQgcG9seWxpbmU6ICR7by5wb2x5bGluZS5sZW5ndGh9YCk7Y29uc3QgYT10aGlzLnBhcnRpdGlvblBvbHlsaW5lKG8ucG9seWxpbmUpO2Zvcihjb25zdFtyLHt0eXBlOnMscG9seWxpbmU6bH1db2YgYS5lbnRyaWVzKCkpaWYocz09PW11dC5OVU1CRVIpMj09PWwubGVuZ3RoP3RoaXMucGFpbnRCcnVzaC5zZXRDaXJjbGUoSlNPTi5zdHJpbmdpZnkoWyJjaXJjbGUiLG8uaWQscl0pLHt4OmxbMF0seTpsWzFdfSx7Y29sb3I6aS5jb2xvcix2aXNpYmxlOmkudmlzaWJsZSxvcGFjaXR5Om51bGwhPT0odD1pLm9wYWNpdHkpJiZ2b2lkIDAhPT10P3Q6MSxyYWRpdXM6NH0pOnRoaXMucGFpbnRCcnVzaC5zZXRMaW5lKEpTT04uc3RyaW5naWZ5KFsibGluZSIsby5pZCxyXSksbCx7Y29sb3I6aS5jb2xvcix2aXNpYmxlOmkudmlzaWJsZSxvcGFjaXR5Om51bGwhPT0oZT1pLm9wYWNpdHkpJiZ2b2lkIDAhPT1lP2U6MSx3aWR0aDoyfSk7ZWxzZSBpZighaS5hdXgpZm9yKGxldCB0PTA7dDxsLmxlbmd0aDt0Kz0yKXRoaXMucGFpbnRCcnVzaC5zZXRUcmlhbmdsZShKU09OLnN0cmluZ2lmeShbIk5hTiIsby5pZCxsW3RdLGxbdCsxXV0pLHt4OmxbdF0seTpsW3QrMV19LHtjb2xvcjppLmNvbG9yLHZpc2libGU6aS52aXNpYmxlLG9wYWNpdHk6bnVsbCE9PShuPWkub3BhY2l0eSkmJnZvaWQgMCE9PW4/bjoxLHNpemU6MTJ9KX19fWNsYXNzIHZ1dCBleHRlbmRzIHJpdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jYW1lcmE9bmV3IFVzdCgwLDFlMywxZTMsMCwwLDEwMCl9aXNZQXhpc1BvaW50ZWREb3duKCl7cmV0dXJuITF9c2V0RG9tQ29udGFpbmVyUmVjdCh0KXtzdXBlci5zZXREb21Db250YWluZXJSZWN0KHQpLHRoaXMuY2FtZXJhLmxlZnQ9dC54LHRoaXMuY2FtZXJhLnJpZ2h0PXQueCt0LndpZHRoLHRoaXMuY2FtZXJhLnRvcD10LnkrdC5oZWlnaHQsdGhpcy5jYW1lcmEuYm90dG9tPXQueSx0aGlzLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Z2V0Q2FtZXJhKCl7cmV0dXJuIHRoaXMuY2FtZXJhfX1jbGFzcyB4dXR7Y29uc3RydWN0b3IodCl7c3dpdGNoKHRoaXMubWV0YWRhdGFNYXA9e30sdGhpcy5zaG91bGRSZXBhaW50PSExLHRoaXMuY2FsbGJhY2tzPXQuY2FsbGJhY2tzLHQudHlwZSl7Y2FzZSBLMi5TVkc6dGhpcy5jb29yZGluYXRvcj1uZXcgcml0LHRoaXMucmVuZGVyZXI9bmV3IGxpdCh0LmNvbnRhaW5lcik7YnJlYWs7Y2FzZSBLMi5XRUJHTDp7Y29uc3QgZT1uZXcgdnV0O3RoaXMuY29vcmRpbmF0b3I9ZSx0aGlzLnJlbmRlcmVyPW5ldyB5dXQodC5jb250YWluZXIsZSx0LmRldmljZVBpeGVsUmF0aW8sdC5jYWxsYmFja3Mub25Db250ZXh0TG9zdCk7YnJlYWt9fXRoaXMucmVuZGVyZXIuc2V0VXNlRGFya01vZGUodC51c2VEYXJrTW9kZSksdGhpcy5zZXJpZXNMaW5lVmlldz1uZXcgTXV0KHtyZW5kZXJlcjp0aGlzLnJlbmRlcmVyLGNvb3JkaW5hdG9yOnRoaXMuY29vcmRpbmF0b3IsZ2V0TWV0YWRhdGFNYXA6KCk9PnRoaXMubWV0YWRhdGFNYXB9KSx0aGlzLnJlc2l6ZSh0LmRvbURpbWVuc2lvbil9ZGlzcG9zZSgpe31zZXRYU2NhbGVUeXBlKHQpe3RoaXMuY29vcmRpbmF0b3Iuc2V0WFNjYWxlKCRvdCh0KSksdGhpcy5zY2hlZHVsZVJlcGFpbnQoKX1zZXRZU2NhbGVUeXBlKHQpe3RoaXMuY29vcmRpbmF0b3Iuc2V0WVNjYWxlKCRvdCh0KSksdGhpcy5zY2hlZHVsZVJlcGFpbnQoKX1yZXNpemUodCl7dGhpcy5jb29yZGluYXRvci5zZXREb21Db250YWluZXJSZWN0KE9iamVjdC5hc3NpZ24oe3g6MCx5OjB9LHQpKSx0aGlzLnJlbmRlcmVyLm9uUmVzaXplKE9iamVjdC5hc3NpZ24oe3g6MCx5OjB9LHQpKSx0aGlzLnNlcmllc0xpbmVWaWV3LnNldExheW91dFJlY3QoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt4OjAseTowfSkpLHRoaXMuc2NoZWR1bGVSZXBhaW50KCl9c2V0TWV0YWRhdGEodCl7bGV0IGU9ITE7T2JqZWN0LmVudHJpZXModCkuZm9yRWFjaCgoKFt0LG5dKT0+e2NvbnN0IG89dGhpcy5tZXRhZGF0YU1hcFt0XTtvJiZuLmNvbG9yPT09by5jb2xvciYmbi52aXNpYmxlPT09by52aXNpYmxlJiZuLm9wYWNpdHk9PT1vLm9wYWNpdHl8fChlPSEwKSx0aGlzLm1ldGFkYXRhTWFwW3RdPW59KSksZSYmdGhpcy5zZXJpZXNMaW5lVmlldy5tYXJrQXNQYWludERpcnR5KCksdGhpcy5zY2hlZHVsZVJlcGFpbnQoKX1zZXRWaWV3Qm94KHQpe3RoaXMuY29vcmRpbmF0b3Iuc2V0Vmlld0JveFJlY3Qoe3g6dC54WzBdLHdpZHRoOnQueFsxXS10LnhbMF0seTp0LnlbMF0saGVpZ2h0OnQueVsxXS10LnlbMF19KSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNldERhdGEodCl7dGhpcy5zZXJpZXNMaW5lVmlldy5zZXREYXRhKHQpLHRoaXMuc2NoZWR1bGVSZXBhaW50KCl9c2V0VXNlRGFya01vZGUodCl7dGhpcy5yZW5kZXJlci5zZXRVc2VEYXJrTW9kZSh0KSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNjaGVkdWxlUmVwYWludCgpe3RoaXMuc2hvdWxkUmVwYWludHx8KHRoaXMuc2hvdWxkUmVwYWludD0hMCxzZWxmLnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLnJlcGFpbnQoKSx0aGlzLnNob3VsZFJlcGFpbnQ9ITF9KSkpfXJlcGFpbnQoKXt0aGlzLnNlcmllc0xpbmVWaWV3LnJlbmRlcigpLHRoaXMucmVuZGVyZXIuZmx1c2goKSx0aGlzLmNhbGxiYWNrcy5vbkRyYXdFbmQoKX19ZnVuY3Rpb24gT3V0KHQpe2lmKHQuaW5jbHVkZXMoIi8iKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiV29ya2VyIGZhY3Rvcnkgb25seSBhbGxvd3MgZmlsZSBuYW1lIGFuZCBubyByZXNvdXJjZSBwYXRoLiIpO3JldHVybiBuZXcgV29ya2VyKHQpfSEoZnVuY3Rpb24odCl7dFt0LlNFUklFU19EQVRBX1VQREFURUQ9MF09IlNFUklFU19EQVRBX1VQREFURUQiLHRbdC5TRVJJRVNfTUVUQURBVEFfQ0hBTkdFRD0xXT0iU0VSSUVTX01FVEFEQVRBX0NIQU5HRUQiLHRbdC5TQ0FMRV9VUERBVEVEPTJdPSJTQ0FMRV9VUERBVEVEIix0W3QuVklFV19CT1hfVVBEQVRFRD0zXT0iVklFV19CT1hfVVBEQVRFRCIsdFt0LklOSVQ9NF09IklOSVQiLHRbdC5ET01fUkVTSVpFRD01XT0iRE9NX1JFU0laRUQiLHRbdC5EQVJLX01PREVfVVBEQVRFRD02XT0iREFSS19NT0RFX1VQREFURUQifSkodXV0fHwodXV0PXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5PTl9SRURSQVdfRU5EPTBdPSJPTl9SRURSQVdfRU5EIix0W3QuT05fQ09OVEVYVF9MT1NUPTFdPSJPTl9DT05URVhUX0xPU1QifSkoZnV0fHwoZnV0PXt9KSk7Y2xhc3MgUHV0e2NvbnN0cnVjdG9yKHQpe2lmKHRoaXMuY2FsbGJhY2tzPXQuY2FsbGJhY2tzLHQudHlwZSE9PUsyLldFQkdMKXRocm93IG5ldyBSYW5nZUVycm9yKGBDYW5ub3QgdXNlIG5vbiBXRUJHTCByZW5kZXJlciBmb3IgdGhlIG9mZnNjcmVlbiBsaW5lIGNoYXJ0LiBSZWNlaXZlZCAke0syW3QudHlwZV19IGApO2NvbnN0IGU9bmV3IE1lc3NhZ2VDaGFubmVsO2UucG9ydDEub25tZXNzYWdlPXQ9Pnt0aGlzLm9uTWVzc2FnZUZyb21Xb3JrZXIodC5kYXRhKX0sdGhpcy50eE1lc3NhZ2VQb3J0PWUucG9ydDE7Y29uc3Qgbj10LmNvbnRhaW5lci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpO3RoaXMud29ya2VySW5zdGFuY2U9UHV0LndvcmtlclBvb2wuZ2V0TmV4dCgpO2NvbnN0IG89e3R5cGU6dXV0LklOSVQsY2FudmFzOm4sZGV2aWNlUGl4ZWxSYXRpbzp3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyxkaW06dC5kb21EaW1lbnNpb24scmVuZGVyZXJUeXBlOnQudHlwZSx1c2VEYXJrTW9kZTp0LnVzZURhcmtNb2RlfTt0aGlzLndvcmtlckluc3RhbmNlLnBvc3RNZXNzYWdlKG8sW24sZS5wb3J0Ml0pfWRpc3Bvc2UoKXt0aGlzLndvcmtlckluc3RhbmNlLmZyZWUoKSx0aGlzLnR4TWVzc2FnZVBvcnQuY2xvc2UoKX1zZXRYU2NhbGVUeXBlKHQpe3RoaXMuc2VuZE1lc3NhZ2Uoe3R5cGU6dXV0LlNDQUxFX1VQREFURUQsYXhpczoieCIsc2NhbGVUeXBlOnR9KX1zZXRZU2NhbGVUeXBlKHQpe3RoaXMuc2VuZE1lc3NhZ2Uoe3R5cGU6dXV0LlNDQUxFX1VQREFURUQsYXhpczoieSIsc2NhbGVUeXBlOnR9KX1yZXNpemUodCl7dGhpcy5zZW5kTWVzc2FnZSh7dHlwZTp1dXQuRE9NX1JFU0laRUQsZGltOnR9KX1zZXRNZXRhZGF0YSh0KXt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOnV1dC5TRVJJRVNfTUVUQURBVEFfQ0hBTkdFRCxtZXRhZGF0YTp0fSl9c2V0Vmlld0JveCh0KXt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOnV1dC5WSUVXX0JPWF9VUERBVEVELGV4dGVudDp0fSl9c2V0RGF0YSh0KXtjb25zdCBlPShmdW5jdGlvbiBuKHQpe2NvbnN0IGU9dC5yZWR1Y2UoKCh0LGUpPT50K2UucG9pbnRzLmxlbmd0aCksMCk7bGV0IG49MDtjb25zdCBvPW5ldyBGbG9hdDY0QXJyYXkoMiplKSxpPVtdO2Zvcihjb25zdCBlIG9mIHQpe2kucHVzaCh7aWQ6ZS5pZCxsZW5ndGg6ZS5wb2ludHMubGVuZ3RofSk7Zm9yKGxldCB0PTA7dDxlLnBvaW50cy5sZW5ndGg7dCsrKW9bbisrXT1lLnBvaW50c1t0XS54LG9bbisrXT1lLnBvaW50c1t0XS55fXJldHVybntpZHNBbmRMZW5ndGhzOmksZmxhdHRlbmVkU2VyaWVzOm8uYnVmZmVyfX0pKHQpO3RoaXMuc2VuZE1lc3NhZ2Uoe3R5cGU6dXV0LlNFUklFU19EQVRBX1VQREFURUQsY29tcGFjdERhdGFTZXJpZXM6ZX0sW2UuZmxhdHRlbmVkU2VyaWVzXSl9c2V0VXNlRGFya01vZGUodCl7dGhpcy5zZW5kTWVzc2FnZSh7dHlwZTp1dXQuREFSS19NT0RFX1VQREFURUQsdXNlRGFya01vZGU6dH0pfXNlbmRNZXNzYWdlKHQsZSl7ZT90aGlzLnR4TWVzc2FnZVBvcnQucG9zdE1lc3NhZ2UodCxlKTp0aGlzLnR4TWVzc2FnZVBvcnQucG9zdE1lc3NhZ2UodCl9b25NZXNzYWdlRnJvbVdvcmtlcih0KXtzd2l0Y2godC50eXBlKXtjYXNlIGZ1dC5PTl9SRURSQVdfRU5EOnRoaXMuY2FsbGJhY2tzLm9uRHJhd0VuZCgpO2JyZWFrO2Nhc2UgZnV0Lk9OX0NPTlRFWFRfTE9TVDp0aGlzLmNhbGxiYWNrcy5vbkNvbnRleHRMb3N0KCl9fX1mdW5jdGlvbiB3dXQodCxlKXtyZXR1cm4ieCI9PT1lP1swLHQud2lkdGhdOlt0LmhlaWdodCwwXX1mdW5jdGlvbiBrdXQodCxlKXtjb25zdCBuPU1hdGguZmxvb3IodC81MCk7cmV0dXJuIE1hdGgubWluKG4sZSl9ZnVuY3Rpb24gU3V0KHQsZSl7aWYoMSZ0JiYocWkoKSxUbSgwLCJsaW5lIiwyKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oKTtwdSgiemVybyIsMD09PXQpLGpwKCJ4MSIsbi5nZXREb21YKHQpKSgieDIiLG4uZ2V0RG9tWCh0KSkoInkyIixuLmRvbURpbS5oZWlnaHQpfX1mdW5jdGlvbiBEdXQodCxlKXtpZigxJnQmJihxaSgpLFRtKDAsImxpbmUiLDMpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgpO3B1KCJ6ZXJvIiwwPT09dCksanAoInkxIixuLmdldERvbVkodCkpKCJ4MiIsbi5kb21EaW0ud2lkdGgpKCJ5MiIsbi5nZXREb21ZKHQpKX19UHV0LndvcmtlclBvb2w9bmV3IGNsYXNze2NvbnN0cnVjdG9yKHQsZT0xMCxuPU91dCl7dGhpcy53b3JrZXJSZXNvdXJjZVBhdGg9dCx0aGlzLm1heFBvb2xTaXplPWUsdGhpcy53b3JrZXJGYWN0b3J5PW4sdGhpcy53b3JrZXJzPVtdfWdldE5leHQoKXtsZXQgdDtpZih0aGlzLndvcmtlcnMuZXZlcnkoKCh7YWN0aXZlQ291bnQ6dH0pPT50PjApKSYmdGhpcy53b3JrZXJzLmxlbmd0aDx0aGlzLm1heFBvb2xTaXplKXtjb25zdCBlPXRoaXMud29ya2VyRmFjdG9yeSh0aGlzLndvcmtlclJlc291cmNlUGF0aCk7dD17YWN0aXZlQ291bnQ6MCxwb3N0TWVzc2FnZToodCxuKT0+e2UucG9zdE1lc3NhZ2UodCxuKX0sZnJlZTooKT0+e3QuYWN0aXZlQ291bnQ9TWF0aC5tYXgodC5hY3RpdmVDb3VudC0xLDApfX0sdGhpcy53b3JrZXJzLnB1c2godCl9ZWxzZXtjb25zdCBlPXRoaXMud29ya2Vycy5tYXAoKCh7YWN0aXZlQ291bnQ6dH0pPT50KSksbj1lLmluZGV4T2YoTWF0aC5taW4oLi4uZSkpO3Q9dGhpcy53b3JrZXJzW25dfXJldHVybiB0LmFjdGl2ZUNvdW50KyssdH19KCJjaGFydF93b3JrZXIuanM/X2ZpbGVfaGFzaD0yNTMzODA2NSIpO2NsYXNzIEV1dHtnZXREb21YKHQpe3JldHVybiB0aGlzLnhTY2FsZS5mb3J3YXJkKHRoaXMudmlld0V4dGVudC54LHd1dCh0aGlzLmRvbURpbSwieCIpLHQpfWdldERvbVkodCl7cmV0dXJuIHRoaXMueVNjYWxlLmZvcndhcmQodGhpcy52aWV3RXh0ZW50Lnksd3V0KHRoaXMuZG9tRGltLCJ5IiksdCl9Z2V0WFRpY2tzKCl7cmV0dXJuIHRoaXMueFNjYWxlLnRpY2tzKHRoaXMudmlld0V4dGVudC54LGt1dCh0aGlzLmRvbURpbS53aWR0aCx0aGlzLnhHcmlkQ291bnQpKX1nZXRZVGlja3MoKXtyZXR1cm4gdGhpcy55U2NhbGUudGlja3ModGhpcy52aWV3RXh0ZW50Lnksa3V0KHRoaXMuZG9tRGltLmhlaWdodCx0aGlzLnlHcmlkQ291bnQpKX19ZnVuY3Rpb24gUnV0KHQsZSxuLG8saSxhKXtsZXQgcjtzd2l0Y2godC5kZWx0YU1vZGUpe2Nhc2UgV2hlZWxFdmVudC5ET01fREVMVEFfUElYRUw6cj0xO2JyZWFrO2Nhc2UgV2hlZWxFdmVudC5ET01fREVMVEFfTElORTpyPTg7YnJlYWs7Y2FzZSBXaGVlbEV2ZW50LkRPTV9ERUxUQV9QQUdFOnI9MjA7YnJlYWs7ZGVmYXVsdDpyPTEsY29uc29sZS53YXJuKGBVbmtub3duIFdoZWVsRXZlbnQgZGVsdGFNb2RlOiAke3QuZGVsdGFNb2RlfS5gKX1jb25zdCBzPXQuZGVsdGFZKnIsbD1zPDA/TWF0aC5tYXgocypvLC0uOTUpOnMqbyx7d2lkdGg6YyxoZWlnaHQ6ZH09bixwPVtpLnJldmVyc2UoZS54LFswLGNdLC10Lm9mZnNldFgqbCksaS5yZXZlcnNlKGUueCxbMCxjXSxjKyhjLXQub2Zmc2V0WCkqbCldLG09W2EucmV2ZXJzZShlLnksW2QsMF0sLXQub2Zmc2V0WSpsKSxhLnJldmVyc2UoZS55LFtkLDBdLGQrKGQtdC5vZmZzZXRZKSpsKV07cmV0dXJue3g6cFsxXTxwWzBdP1twWzFdLHBbMF1dOnAseTptWzFdPG1bMF0/W21bMV0sbVswXV06bX19RXV0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxFdXQpfSxFdXQuybVjbXA9dG8oe3R5cGU6RXV0LHNlbGVjdG9yczpbWyJsaW5lLWNoYXJ0LWdyaWQtdmlldyJdXSxpbnB1dHM6e3ZpZXdFeHRlbnQ6InZpZXdFeHRlbnQiLHhTY2FsZToieFNjYWxlIix4R3JpZENvdW50OiJ4R3JpZENvdW50Iix5U2NhbGU6InlTY2FsZSIseUdyaWRDb3VudDoieUdyaWRDb3VudCIsZG9tRGltOiJkb21EaW0ifSxkZWNsczozLHZhcnM6Mixjb25zdHM6W1sieTEiLCIwIiwzLCJ6ZXJvIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbIngxIiwiMCIsMywiemVybyIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJ5MSIsIjAiXSxbIngxIiwiMCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYocWkoKSxSbSgwLCJzdmciKSxRcCgxLFN1dCwxLDUsImxpbmUiLDApLFFwKDIsRHV0LDEsNSwibGluZSIsMSksQW0oKSksMiZlJiYocmMoMSksRG0oIm5nRm9yT2YiLG4uZ2V0WFRpY2tzKCkpLHJjKDEpLERtKCJuZ0Zvck9mIixuLmdldFlUaWNrcygpKSl9LGRpcmVjdGl2ZXM6W2xNXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgc3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGxpbmVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgc3Ryb2tlOiAjY2NjO1xuICAgICAgICBzdHJva2Utd2lkdGg6IDFweDtcbiAgICAgIH1cblxuICAgICAgLnplcm9bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgc3Ryb2tlOiAjYWFhO1xuICAgICAgICBzdHJva2Utd2lkdGg6IDEuNXB4O1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChFdXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibGluZS1jaGFydC1ncmlkLXZpZXciLHRlbXBsYXRlOic8c3ZnPlxuICAgIDxsaW5lXG4gICAgICAqbmdGb3I9ImxldCB0aWNrIG9mIGdldFhUaWNrcygpIlxuICAgICAgW2NsYXNzLnplcm9dPSJ0aWNrID09PSAwIlxuICAgICAgW2F0dHIueDFdPSJnZXREb21YKHRpY2spIlxuICAgICAgeTE9IjAiXG4gICAgICBbYXR0ci54Ml09ImdldERvbVgodGljaykiXG4gICAgICBbYXR0ci55Ml09ImRvbURpbS5oZWlnaHQiXG4gICAgPjwvbGluZT5cbiAgICA8bGluZVxuICAgICAgKm5nRm9yPSJsZXQgdGljayBvZiBnZXRZVGlja3MoKSJcbiAgICAgIFtjbGFzcy56ZXJvXT0idGljayA9PT0gMCJcbiAgICAgIHgxPSIwIlxuICAgICAgW2F0dHIueTFdPSJnZXREb21ZKHRpY2spIlxuICAgICAgW2F0dHIueDJdPSJkb21EaW0ud2lkdGgiXG4gICAgICBbYXR0ci55Ml09ImdldERvbVkodGljaykiXG4gICAgPjwvbGluZT5cbiAgPC9zdmc+JyxzdHlsZXM6WyJcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgbGluZSB7XG4gICAgICAgIHN0cm9rZTogI2NjYztcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gICAgICB9XG5cbiAgICAgIC56ZXJvIHtcbiAgICAgICAgc3Ryb2tlOiAjYWFhO1xuICAgICAgICBzdHJva2Utd2lkdGg6IDEuNXB4O1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse3ZpZXdFeHRlbnQ6W3t0eXBlOnh5fV0seFNjYWxlOlt7dHlwZTp4eX1dLHhHcmlkQ291bnQ6W3t0eXBlOnh5fV0seVNjYWxlOlt7dHlwZTp4eX1dLHlHcmlkQ291bnQ6W3t0eXBlOnh5fV0sZG9tRGltOlt7dHlwZTp4eX1dfSk7Y29uc3QgQXV0PVsiZG90cyJdO2Z1bmN0aW9uIFR1dCh0LGUpe2lmKDEmdCYmKHFpKCksVG0oMCwiY2lyY2xlIiwxMikpLDImdCl7Y29uc3QgdD1ZbSgpLiRpbXBsaWNpdCxlPVltKDIpO2pwKCJjeCIsZS5nZXREb21YKHQucG9pbnQueCkpKCJjeSIsZS5nZXREb21ZKHQucG9pbnQueSkpKCJmaWxsIix0Lm1ldGFkYXRhLmNvbG9yKX19ZnVuY3Rpb24gTnV0KHQsZSl7aWYoMSZ0JiYocWkoKSxObSgwKSxRcCgxLFR1dCwxLDMsImNpcmNsZSIsMTEpLHptKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPVltKDIpO3JjKDEpLERtKCJuZ0lmIixuLnNob3VsZFJlbmRlclRvb2x0aXBQb2ludCh0LnBvaW50KSl9fWZ1bmN0aW9uIHp1dCh0LGUpe2lmKDEmdCYmKHFpKCksTm0oMCksUXAoMSxOdXQsMiwxLCJuZy1jb250YWluZXIiLDEwKSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEbSgibmdGb3JPZiIsdC5jdXJzb3JlZERhdGEpKCJuZ0ZvclRyYWNrQnkiLHQudHJhY2tCeVNlcmllc05hbWUpfX1mdW5jdGlvbiBJdXQodCxlKXtpZigxJnQmJihxaSgpLFRtKDAsInJlY3QiLDEzKSksMiZ0KXtjb25zdCB0PVltKCk7anAoIngiLHQuem9vbUJveEluVWlDb29yZGluYXRlLngpKCJ3aWR0aCIsdC56b29tQm94SW5VaUNvb3JkaW5hdGUud2lkdGgpKCJ5Iix0Lnpvb21Cb3hJblVpQ29vcmRpbmF0ZS55KSgiaGVpZ2h0Iix0Lnpvb21Cb3hJblVpQ29vcmRpbmF0ZS5oZWlnaHQpfX1jb25zdCBIdXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm57ZGF0YTp0LGN1cnNvckxvY2F0aW9uSW5EYXRhQ29vcmQ6ZX19O2Z1bmN0aW9uIEZ1dCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTQpLEltKDEsMTUpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpLGU9JHAoMTEpO3JjKDEpLERtKCJuZ1RlbXBsYXRlT3V0bGV0Iix0LnRvb2x0aXBUZW1wbGF0ZT90LnRvb2x0aXBUZW1wbGF0ZTplKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLHZoKDIsSHV0LHQuY3Vyc29yZWREYXRhLHQuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZCkpfX1mdW5jdGlvbiBMdXQodCxlKXtpZigxJnQmJihObSgwKSxSbSgxLCJ0ciIsMTcpLFJtKDIsInRkIiwxOCksVG0oMywic3BhbiIpLEFtKCksUm0oNCwidGQiLDE5KSxrdSg1KSxBbSgpLFJtKDYsInRkIiksa3UoNyksQW0oKSxSbSg4LCJ0ZCIpLGt1KDkpLEFtKCksQW0oKSx6bSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7cmMoMyksZHUoImJhY2tncm91bmQtY29sb3IiLHQubWV0YWRhdGEuY29sb3IpLHJjKDIpLFN1KHQubWV0YWRhdGEuZGlzcGxheU5hbWUpLHJjKDIpLFN1KHQucG9pbnQueSkscmMoMiksU3UodC5wb2ludC54KX19ZnVuY3Rpb24gQnV0KHQsZSl7aWYoMSZ0JiYoUm0oMCwidGFibGUiKSxSbSgxLCJ0aGVhZCIpLFJtKDIsInRyIiksVG0oMywidGgiLDE2KSxSbSg0LCJ0aCIpLGt1KDUsIk5hbWUiKSxBbSgpLFJtKDYsInRoIiksa3UoNywiWSIpLEFtKCksUm0oOCwidGgiKSxrdSg5LCJYIiksQW0oKSxBbSgpLEFtKCksUm0oMTAsInRib2R5IiksUXAoMTEsTHV0LDEwLDUsIm5nLWNvbnRhaW5lciIsMTApLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PWUuZGF0YSxuPVltKCk7cmMoMTEpLERtKCJuZ0Zvck9mIix0KSgibmdGb3JUcmFja0J5IixuLnRyYWNrQnlTZXJpZXNOYW1lKX19dmFyIFZ1dDtmdW5jdGlvbiBqdXQodCl7cmV0dXJuIHQuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCl9IShmdW5jdGlvbih0KXt0W3QuTk9ORT0wXT0iTk9ORSIsdFt0LkRSQUdfWk9PTUlORz0xXT0iRFJBR19aT09NSU5HIix0W3QuU0NST0xMX1pPT01JTkc9Ml09IlNDUk9MTF9aT09NSU5HIix0W3QuUEFOTklORz0zXT0iUEFOTklORyJ9KShWdXR8fChWdXQ9e30pKTtjbGFzcyBVdXR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmNoYW5nZURldGVjdG9yPXQsdGhpcy5zY3JvbGxTdHJhdGVneT1lLHRoaXMub25WaWV3RXh0ZW50Q2hhbmdlPW5ldyBMaCx0aGlzLm9uVmlld0V4dGVudFJlc2V0PW5ldyBMaCx0aGlzLkludGVyYWN0aW9uU3RhdGU9VnV0LHRoaXMuc3RhdGU9VnV0Lk5PTkUsdGhpcy5zcGVjaWFsS2V5UHJlc3NlZD0hMSx0aGlzLnpvb21Cb3hJblVpQ29vcmRpbmF0ZT17eDowLHdpZHRoOjAsaGVpZ2h0OjAseTowfSx0aGlzLnRvb2x0aXBQb3NpdGlvbnM9W3tvZmZzZXRZOjUsb3JpZ2luWDoic3RhcnQiLG92ZXJsYXlYOiJzdGFydCIsb3JpZ2luWToiYm90dG9tIixvdmVybGF5WToidG9wIn0se29mZnNldFk6NSxvcmlnaW5YOiJlbmQiLG92ZXJsYXlYOiJlbmQiLG9yaWdpblk6ImJvdHRvbSIsb3ZlcmxheVk6InRvcCJ9LHtvZmZzZXRZOi0xNSxvcmlnaW5YOiJzdGFydCIsb3ZlcmxheVg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJib3R0b20ifSx7b2Zmc2V0WTotMTUsb3JpZ2luWDoiZW5kIixvdmVybGF5WDoiZW5kIixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJib3R0b20ifSx7b2Zmc2V0WDo1LG9yaWdpblg6ImVuZCIsb3ZlcmxheVg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJ0b3AifSx7b2Zmc2V0WDotNSxvcmlnaW5YOiJzdGFydCIsb3ZlcmxheVg6ImVuZCIsb3JpZ2luWToidG9wIixvdmVybGF5WToidG9wIn1dLHRoaXMuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZD1udWxsLHRoaXMuY3Vyc29yZWREYXRhPVtdLHRoaXMudG9vbHRpcERpc3BsYXlBdHRhY2hlZD0hMSx0aGlzLnNob3dab29tSW5zdHJ1Y3Rpb249ITEsdGhpcy5kcmFnU3RhcnRDb29yZD1udWxsLHRoaXMuaXNDdXJzb3JJbnNpZGU9ITEsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBJfW5nQWZ0ZXJWaWV3SW5pdCgpe29lKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJkYmxjbGljayIse3Bhc3NpdmU6ITB9KS5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLm9uVmlld0V4dGVudFJlc2V0LmVtaXQoKSx0aGlzLnN0YXRlPVZ1dC5OT05FLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9KSksb2Uod2luZG93LCJrZXlkb3duIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10aGlzLnNob3VsZFBhbih0KTtlIT09dGhpcy5zcGVjaWFsS2V5UHJlc3NlZCYmKHRoaXMuc3BlY2lhbEtleVByZXNzZWQ9ZSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpKX0pKSxvZSh3aW5kb3csImtleXVwIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10aGlzLnNob3VsZFBhbih0KTtlIT09dGhpcy5zcGVjaWFsS2V5UHJlc3NlZCYmKHRoaXMuc3BlY2lhbEtleVByZXNzZWQ9ZSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpKX0pKSxvZSh0aGlzLmRvdHNDb250YWluZXIubmF0aXZlRWxlbWVudCwibW91c2Vkb3duIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10aGlzLnN0YXRlLG49dGhpcy5zaG91bGRQYW4odCk/VnV0LlBBTk5JTkc6VnV0LkRSQUdfWk9PTUlORztlPT09VnV0Lk5PTkUmJm49PT1WdXQuRFJBR19aT09NSU5HJiYodGhpcy5kcmFnU3RhcnRDb29yZD17eDp0Lm9mZnNldFgseTp0Lm9mZnNldFl9LHRoaXMuem9vbUJveEluVWlDb29yZGluYXRlPXt4OnQub2Zmc2V0WCx3aWR0aDowLHk6dC5vZmZzZXRZLGhlaWdodDowfSksZSE9PW4mJih0aGlzLnN0YXRlPW4sdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKSl9KSksb2UodGhpcy5kb3RzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIm1vdXNldXAiLHtwYXNzaXZlOiEwfSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHQ9Pntjb25zdCBlPSh0LmJ1dHRvbnMmZ1EuTEVGVCk9PT1nUS5MRUZUO3RoaXMuZHJhZ1N0YXJ0Q29vcmQ9bnVsbDtjb25zdCBuPXRoaXMuem9vbUJveEluVWlDb29yZGluYXRlO2lmKCFlJiZ0aGlzLnN0YXRlPT09VnV0LkRSQUdfWk9PTUlORyYmbi53aWR0aD4wJiZuLmhlaWdodD4wKXtjb25zdCB0PXRoaXMuZ2V0RGF0YVgobi54KSxlPXRoaXMuZ2V0RGF0YVgobi54K24ud2lkdGgpLG89dGhpcy5nZXREYXRhWShuLnkrbi5oZWlnaHQpLGk9dGhpcy5nZXREYXRhWShuLnkpO3RoaXMub25WaWV3RXh0ZW50Q2hhbmdlLmVtaXQoe2RhdGFFeHRlbnQ6e3g6W3QsZV0seTpbbyxpXX19KX10aGlzLnN0YXRlIT09VnV0Lk5PTkUmJih0aGlzLnN0YXRlPVZ1dC5OT05FLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCkpfSkpLG9lKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJtb3VzZWVudGVyIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5pc0N1cnNvckluc2lkZT0hMCx0aGlzLnVwZGF0ZVRvb2x0aXAodCksdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKX0pKSxvZSh0aGlzLmRvdHNDb250YWluZXIubmF0aXZlRWxlbWVudCwibW91c2VsZWF2ZSIse3Bhc3NpdmU6ITB9KS5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgodD0+e3RoaXMuZHJhZ1N0YXJ0Q29vcmQ9bnVsbCx0aGlzLmlzQ3Vyc29ySW5zaWRlPSExLHRoaXMudXBkYXRlVG9vbHRpcCh0KSx0aGlzLnN0YXRlPVZ1dC5OT05FLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9KSksb2UodGhpcy5kb3RzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIm1vdXNlbW92ZSIse3Bhc3NpdmU6ITB9KS5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgodD0+e3N3aXRjaCh0aGlzLnN0YXRlKXtjYXNlIFZ1dC5TQ1JPTExfWk9PTUlORzp0aGlzLnN0YXRlPVZ1dC5OT05FLHRoaXMudXBkYXRlVG9vbHRpcCh0KSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO2JyZWFrO2Nhc2UgVnV0Lk5PTkU6dGhpcy51cGRhdGVUb29sdGlwKHQpLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7YnJlYWs7Y2FzZSBWdXQuUEFOTklORzp7Y29uc3QgZT0tdC5tb3ZlbWVudFgsbj0tdC5tb3ZlbWVudFkse3dpZHRoOm8saGVpZ2h0Oml9PXRoaXMuZG9tRGltLGE9dGhpcy5nZXREYXRhWChlKSxyPXRoaXMuZ2V0RGF0YVgobytlKSxzPXRoaXMuZ2V0RGF0YVkoaStuKSxsPXRoaXMuZ2V0RGF0YVkobik7dGhpcy5vblZpZXdFeHRlbnRDaGFuZ2UuZW1pdCh7ZGF0YUV4dGVudDp7eDpbYSxyXSx5OltzLGxdfX0pO2JyZWFrfWNhc2UgVnV0LkRSQUdfWk9PTUlORzp7aWYoIXRoaXMuZHJhZ1N0YXJ0Q29vcmQpYnJlYWs7Y29uc3QgZT1bdGhpcy5kcmFnU3RhcnRDb29yZC54LHQub2Zmc2V0WF0sbj1bdGhpcy5kcmFnU3RhcnRDb29yZC55LHQub2Zmc2V0WV07dGhpcy56b29tQm94SW5VaUNvb3JkaW5hdGU9e3g6TWF0aC5taW4oLi4uZSksd2lkdGg6TWF0aC5tYXgoLi4uZSktTWF0aC5taW4oLi4uZSkseTpNYXRoLm1pbiguLi5uKSxoZWlnaHQ6TWF0aC5tYXgoLi4ubiktTWF0aC5taW4oLi4ubil9fXRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9fSkpLG9lKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJ3aGVlbCIse3Bhc3NpdmU6ITF9KS5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSksemUoKHQ9Pntjb25zdCBlPSF0LmN0cmxLZXkmJiF0LnNoaWZ0S2V5JiZ0LmFsdEtleTtyZXR1cm4gdGhpcy5zaG93Wm9vbUluc3RydWN0aW9uPSFlLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCksZT8odC5wcmV2ZW50RGVmYXVsdCgpLEV0KHQpKTphZSgzZTMpLnBpcGUoRmUoKCgpPT57dGhpcy5zaG93Wm9vbUluc3RydWN0aW9uPSExLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9KSksSXQoKCgpPT5udWxsKSkpfSkpLGNlKCh0PT5Cb29sZWFuKHQpKSkpLnN1YnNjcmliZSgodD0+e3RoaXMub25WaWV3RXh0ZW50Q2hhbmdlLmVtaXQoe2RhdGFFeHRlbnQ6UnV0KHQsdGhpcy52aWV3RXh0ZW50LHRoaXMuZG9tRGltLC4wMSx0aGlzLnhTY2FsZSx0aGlzLnlTY2FsZSl9KSx0aGlzLnN0YXRlIT09VnV0LlNDUk9MTF9aT09NSU5HJiYodGhpcy5zdGF0ZT1WdXQuU0NST0xMX1pPT01JTkcsdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKSl9KSl9bmdPbkNoYW5nZXMoKXt0aGlzLnVwZGF0ZUN1cnNvcmVkRGF0YUFuZFRvb2x0aXBWaXNpYmlsaXR5KCl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfXNob3VsZFBhbih0KXtjb25zdCBlPXQuc2hpZnRLZXl8fHQuYWx0S2V5O2lmKHQgaW5zdGFuY2VvZiBLZXlib2FyZEV2ZW50KXJldHVybiBlO2NvbnN0IG49KHQuYnV0dG9ucyZnUS5MRUZUKT09PWdRLkxFRlQsbz0odC5idXR0b25zJmdRLk1JRERMRSk9PT1nUS5NSURETEU7cmV0dXJuISghbiYmIW8pJiYobyYmIW58fGUpfXRyYWNrQnlTZXJpZXNOYW1lKHQsZSl7cmV0dXJuIGUuaWR9Z2V0RG9tWCh0KXtyZXR1cm4gdGhpcy54U2NhbGUuZm9yd2FyZCh0aGlzLnZpZXdFeHRlbnQueCx3dXQodGhpcy5kb21EaW0sIngiKSx0KX1nZXREYXRhWCh0KXtyZXR1cm4gdGhpcy54U2NhbGUucmV2ZXJzZSh0aGlzLnZpZXdFeHRlbnQueCx3dXQodGhpcy5kb21EaW0sIngiKSx0KX1nZXREb21ZKHQpe3JldHVybiB0aGlzLnlTY2FsZS5mb3J3YXJkKHRoaXMudmlld0V4dGVudC55LHd1dCh0aGlzLmRvbURpbSwieSIpLHQpfWdldERhdGFZKHQpe3JldHVybiB0aGlzLnlTY2FsZS5yZXZlcnNlKHRoaXMudmlld0V4dGVudC55LHd1dCh0aGlzLmRvbURpbSwieSIpLHQpfXNob3VsZFJlbmRlclRvb2x0aXBQb2ludCh0KXtyZXR1cm4gbnVsbCE9PXQmJiFpc05hTih0LngpJiYhaXNOYU4odC55KX11cGRhdGVUb29sdGlwKHQpe3RoaXMuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZD17eDp0aGlzLmdldERhdGFYKHQub2Zmc2V0WCkseTp0aGlzLmdldERhdGFZKHQub2Zmc2V0WSl9LHRoaXMudXBkYXRlQ3Vyc29yZWREYXRhQW5kVG9vbHRpcFZpc2liaWxpdHkoKX1vblRvb2x0aXBEaXNwbGF5RGV0YWNoZWQoKXt0aGlzLnRvb2x0aXBEaXNwbGF5QXR0YWNoZWQ9ITF9dXBkYXRlQ3Vyc29yZWREYXRhQW5kVG9vbHRpcFZpc2liaWxpdHkoKXtjb25zdCB0PXRoaXMuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZDtpZihudWxsPT09dClyZXR1cm4gdGhpcy5jdXJzb3JlZERhdGE9W10sdm9pZCh0aGlzLnRvb2x0aXBEaXNwbGF5QXR0YWNoZWQ9ITEpO3RoaXMuY3Vyc29yZWREYXRhPXRoaXMuaXNDdXJzb3JJbnNpZGU/dGhpcy5zZXJpZXNEYXRhLm1hcCgodD0+KHtzZXJpZXNEYXR1bTp0LG1ldGFkYXRhOnRoaXMuc2VyaWVzTWV0YWRhdGFNYXBbdC5pZF19KSkpLmZpbHRlcigoKHttZXRhZGF0YTp0fSk9PnQmJnQudmlzaWJsZSYmIUJvb2xlYW4odC5hdXgpKSkubWFwKCgoe3Nlcmllc0RhdHVtOmUsbWV0YWRhdGE6bn0pPT57Y29uc3Qgbz0oZnVuY3Rpb24gaSh0LGUpe2NvbnN0IG49TWF0aC5taW4ocDUodC5tYXAoKCh7eDp0fSk9PnQpKSxlKSx0Lmxlbmd0aC0xKSxvPU1hdGgubWF4KDAsbi0xKTtyZXR1cm4gTWF0aC5hYnModFtvXS54LWUpLU1hdGguYWJzKHRbbl0ueC1lKTw9MD9vOm59KShlLnBvaW50cyx0LngpO3JldHVybntpZDplLmlkLGNsb3Nlc3RQb2ludEluZGV4Om8scG9pbnQ6ZS5wb2ludHNbb10sbWV0YWRhdGE6bn19KSkuZmlsdGVyKCh0PT50KSk6W10sdGhpcy50b29sdGlwRGlzcGxheUF0dGFjaGVkPUJvb2xlYW4odGhpcy5jdXJzb3JlZERhdGEubGVuZ3RoKX19ZnVuY3Rpb24gR3V0KHQsZSxuLG8pe3JldHVybnttYWpvcjpbXSxtaW5vcjp0LnRpY2tzKG8sbikubWFwKCh0PT4oe3ZhbHVlOnQsdGlja0Zvcm1hdHRlZFN0cmluZzplLmZvcm1hdFRpY2sodCl9KSkpfX1VdXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFV1dCkoU20oVWcpLFNtKExGKSl9LFV1dC7JtWNtcD10byh7dHlwZTpVdXQsc2VsZWN0b3JzOltbImxpbmUtY2hhcnQtaW50ZXJhY3RpdmUtdmlldyJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKEF1dCw3LGhnKSxRaChnTCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5kb3RzQ29udGFpbmVyPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLm92ZXJsYXk9dC5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgic2hvdy16b29tLWluc3RydWN0aW9uIixuLnNob3dab29tSW5zdHJ1Y3Rpb24pfSxpbnB1dHM6e3Nlcmllc0RhdGE6InNlcmllc0RhdGEiLHNlcmllc01ldGFkYXRhTWFwOiJzZXJpZXNNZXRhZGF0YU1hcCIsdmlld0V4dGVudDoidmlld0V4dGVudCIseFNjYWxlOiJ4U2NhbGUiLHlTY2FsZToieVNjYWxlIixkb21EaW06ImRvbURpbSIsdG9vbHRpcE9yaWdpbkVsOiJ0b29sdGlwT3JpZ2luRWwiLHRvb2x0aXBUZW1wbGF0ZToidG9vbHRpcFRlbXBsYXRlIn0sb3V0cHV0czp7b25WaWV3RXh0ZW50Q2hhbmdlOiJvblZpZXdFeHRlbnRDaGFuZ2UiLG9uVmlld0V4dGVudFJlc2V0OiJvblZpZXdFeHRlbnRSZXNldCJ9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6TEYsdXNlRmFjdG9yeTpqdXQsZGVwczpbcExdfV0pLEJvXSxkZWNsczoxMix2YXJzOjE1LGNvbnN0czpbWzEsImRvdHMiXSxbImRvdHMiLCIiXSxbNCwibmdJZiJdLFsiY2xhc3MiLCJ6b29tLWJveCIsNCwibmdJZiJdLFsxLCJ6b29tLWluc3RydWN0aW9uIl0sWzEsImluc3RydWN0aW9uLWNvbnRlbnQiXSxbImNka092ZXJsYXlPcmlnaW4iLCIiLDEsInRvb2x0aXAtb3JpZ2luIl0sWyJ0b29sdGlwT3JpZ2luIiwiY2RrT3ZlcmxheU9yaWdpbiJdLFsiY2RrQ29ubmVjdGVkT3ZlcmxheSIsIiIsMywiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiIsImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIiwiY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9ucyIsImNka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneSIsImNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb24iLCJjZGtDb25uZWN0ZWRPdmVybGF5RmxleGlibGVEaW1lbnNpb25zIiwiY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW4iLCJkZXRhY2giXSxbImRlZmF1bHRUb29sdGlwIiwiIl0sWzQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsiciIsIjQiLDQsIm5nSWYiXSxbInIiLCI0Il0sWzEsInpvb20tYm94Il0sWzEsInRvb2x0aXAtY29udGFpbmVyIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdLFsxLCJjaXJjbGUtaGVhZGVyIl0sWzEsInRvb2x0aXAtcm93Il0sWzEsInRvb2x0aXAtcm93LWNpcmNsZSJdLFsxLCJuYW1lIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihxaSgpLFJtKDAsInN2ZyIsMCwxKSxRcCgyLHp1dCwyLDIsIm5nLWNvbnRhaW5lciIsMiksUXAoMyxJdXQsMSw0LCJyZWN0IiwzKSxBbSgpLFppKCksUm0oNCwiZGl2Iiw0KSxSbSg1LCJzcGFuIiw1KSxrdSg2LCJBbHQgKyBTY3JvbGwgdG8gWm9vbSIpLEFtKCksQW0oKSxUbSg3LCJkaXYiLDYsNyksUXAoOSxGdXQsMiw1LCJuZy10ZW1wbGF0ZSIsOCksVm0oImRldGFjaCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvb2x0aXBEaXNwbGF5RGV0YWNoZWQoKX0pKSxRcCgxMCxCdXQsMTIsMiwibmctdGVtcGxhdGUiLG51bGwsOSxpYikpLDImZSYmKHB1KCJwYW5uYWJsZSIsbi5zcGVjaWFsS2V5UHJlc3NlZCkoImRyYWdnYWJsZSIsbi5zdGF0ZT09PW4uSW50ZXJhY3Rpb25TdGF0ZS5OT05FfHxuLnN0YXRlPT09bi5JbnRlcmFjdGlvblN0YXRlLkRSQUdfWk9PTUlORykoInBhbm5pbmciLG4uc3RhdGU9PT1uLkludGVyYWN0aW9uU3RhdGUuUEFOTklORykscmMoMiksRG0oIm5nSWYiLG4uc3RhdGU9PT1uLkludGVyYWN0aW9uU3RhdGUuTk9ORSkscmMoMSksRG0oIm5nSWYiLG4uc3RhdGU9PT1uLkludGVyYWN0aW9uU3RhdGUuRFJBR19aT09NSU5HKSxyYyg2KSxEbSgiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiIsbi50b29sdGlwT3JpZ2luRWwpKCJjZGtDb25uZWN0ZWRPdmVybGF5T3BlbiIsbi50b29sdGlwRGlzcGxheUF0dGFjaGVkJiZuLnN0YXRlPT09bi5JbnRlcmFjdGlvblN0YXRlLk5PTkUpKCJjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zIixuLnRvb2x0aXBQb3NpdGlvbnMpKCJjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3kiLG4uc2Nyb2xsU3RyYXRlZ3kpKCJjZGtDb25uZWN0ZWRPdmVybGF5TG9ja1Bvc2l0aW9uIiwhMSkoImNka0Nvbm5lY3RlZE92ZXJsYXlGbGV4aWJsZURpbWVuc2lvbnMiLCEwKSgiY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW4iLCEwKSl9LGRpcmVjdGl2ZXM6W2RNLGZMLGdMLGxNLE1NXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt1c2VyLXNlbGVjdDpub25lfS5kb3RzW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5kb3RzLmRyYWdnYWJsZVtfbmdjb250ZW50LSVDT01QJV17Y3Vyc29yOmNyb3NzaGFpcn0uZG90cy5wYW5uYWJsZVtfbmdjb250ZW50LSVDT01QJV17Y3Vyc29yOmdyYWJ9LmRvdHMucGFubmluZ1tfbmdjb250ZW50LSVDT01QJV17Y3Vyc29yOmdyYWJiaW5nfS50b29sdGlwLXJvdy1jaXJjbGVbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2hlaWdodDoxMnB4O3dpZHRoOjEycHh9LnRvb2x0aXAtcm93LWNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0gPiBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjYpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMHB4O3dpZHRoOjEwcHh9LnRvb2x0aXAtb3JpZ2luW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0udG9vbHRpcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuODUpO2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiNmZmY7Y29udGFpbjpwYWludCBzdHlsZSBsYXlvdXQ7Zm9udC1zaXplOi45ZW07b3ZlcmZsb3c6YXV0bztwYWRkaW5nOjVweDtwb2ludGVyLWV2ZW50czpub25lO3dpZHRoOjEwMCV9dGhbX25nY29udGVudC0lQ09NUCVdLCB0ZFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggNXB4O3RleHQtYWxpZ246bGVmdH10aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmctYm90dG9tOjVweH0uem9vbS1ib3hbX25nY29udGVudC0lQ09NUCVde2ZpbGwtb3BhY2l0eTouMDM7ZmlsbDojMDAwO3N0cm9rZTojY2NjfS56b29tLWluc3RydWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bGVmdDowO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjEwcHg7dHJhbnNpdGlvbjpvcGFjaXR5IC41czt6LWluZGV4OjF9Lmluc3RydWN0aW9uLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNik7Ym9yZGVyLXJhZGl1czo1cHg7Y29sb3I6I2ZmZjtwYWRkaW5nOjVweCAxMHB4O3VzZXItc2VsZWN0Om5vbmV9LnNob3ctem9vbS1pbnN0cnVjdGlvbltfbmdob3N0LSVDT01QJV0gICAuem9vbS1pbnN0cnVjdGlvbltfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVdXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibGluZS1jaGFydC1pbnRlcmFjdGl2ZS12aWV3Iix0ZW1wbGF0ZVVybDoiLi9saW5lX2NoYXJ0X2ludGVyYWN0aXZlX3ZpZXcubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9saW5lX2NoYXJ0X2ludGVyYWN0aXZlX3ZpZXcuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxwcm92aWRlcnM6W3twcm92aWRlOkxGLHVzZUZhY3Rvcnk6anV0LGRlcHM6W3BMXX1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWd9LHt0eXBlOkxGfV19KSx7ZG90c0NvbnRhaW5lcjpbe3R5cGU6WmEsYXJnczpbImRvdHMiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0sb3ZlcmxheTpbe3R5cGU6WmEsYXJnczpbZ0xdfV0sc2VyaWVzRGF0YTpbe3R5cGU6eHl9XSxzZXJpZXNNZXRhZGF0YU1hcDpbe3R5cGU6eHl9XSx2aWV3RXh0ZW50Olt7dHlwZTp4eX1dLHhTY2FsZTpbe3R5cGU6eHl9XSx5U2NhbGU6W3t0eXBlOnh5fV0sZG9tRGltOlt7dHlwZTp4eX1dLHRvb2x0aXBPcmlnaW5FbDpbe3R5cGU6eHl9XSx0b29sdGlwVGVtcGxhdGU6W3t0eXBlOnh5fV0sb25WaWV3RXh0ZW50Q2hhbmdlOlt7dHlwZTpPeX1dLG9uVmlld0V4dGVudFJlc2V0Olt7dHlwZTpPeX1dLHNob3dab29tSW5zdHJ1Y3Rpb246W3t0eXBlOlB5LGFyZ3M6WyJjbGFzcy5zaG93LXpvb20taW5zdHJ1Y3Rpb24iXX1dfSk7Y29uc3QgV3V0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7ZnVuY3Rpb24gWXV0KHQsZSl7aWYoMSZ0JiYocWkoKSxSbSgwLCJnIiwxNyksUm0oMSwidGV4dCIpLGt1KDIpLEFtKCksUm0oMywidGl0bGUiKSxrdSg0KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPVltKCk7cmMoMSksZHUoImZvbnQiLG4uYXhpc0ZvbnQpLGpwKCJ4IixuLnRleHRYUG9zaXRpb24odC52YWx1ZSkpKCJ5IixuLnRleHRZUG9zaXRpb24odC52YWx1ZSkpLHJjKDEpLER1KCIgIix0LnRpY2tGb3JtYXR0ZWRTdHJpbmcsIiAiKSxyYygyKSxTdShuLmdldEZvcm1hdHRlcigpLmZvcm1hdExvbmcodC52YWx1ZSkpfX1mdW5jdGlvbiBxdXQodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiwyMCksUm0oMSwic3BhbiIpLGt1KDIpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49ZS5pbmRleCxvPWUubGFzdCxpPVltKDIpO2R1KCJsZWZ0IixpLmdldE1ham9yWFBvc2l0aW9uKHQpLCJweCIpKCJ3aWR0aCIsaS5nZXRNYWpvcldpZHRoU3RyaW5nKHQsbyxpLm1ham9yVGlja3NbbisxXSkpKCJib3R0b20iLGkuZ2V0TWFqb3JZUG9zaXRpb24odCksInB4IikoImhlaWdodCIsaS5nZXRNYWpvckhlaWdodFN0cmluZyh0LG8saS5tYWpvclRpY2tzW24rMV0pKSgiZm9udCIsaS5heGlzRm9udCkscHUoIm1ham9yLWxhYmVsIiwhMCkoImxhc3QiLG8pLERtKCJ0aXRsZSIsaS5nZXRGb3JtYXR0ZXIoKS5mb3JtYXRMb25nKHQuc3RhcnQpKSxyYygyKSxTdSh0LnRpY2tGb3JtYXR0ZWRTdHJpbmcpfX1mdW5jdGlvbiBadXQodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDE4KSxRcCgxLHF1dCwzLDE2LCJzcGFuIiwxOSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRG0oIm5nRm9yT2YiLHQubWFqb3JUaWNrcykoIm5nRm9yVHJhY2tCeSIsdC50cmFja0J5TWFqb3JUaWNrKX19Y2xhc3MgWHV0e2NvbnN0cnVjdG9yKCl7dGhpcy5vblZpZXdFeHRlbnRDaGFuZ2U9bmV3IExoLHRoaXMuZWRpdE1lbnVPcGVuZWQ9ITEsdGhpcy5tYWpvclRpY2tzPVtdLHRoaXMubWlub3JUaWNrcz1bXX1uZ09uQ2hhbmdlcygpe2xldCB0PW51bGw7Y29uc3QgZT1rdXQoIngiPT09dGhpcy5heGlzP3RoaXMuZG9tRGltLndpZHRoOnRoaXMuZG9tRGltLmhlaWdodCx0aGlzLmdyaWRDb3VudCk7dD10aGlzLnNjYWxlIGluc3RhbmNlb2YgdGl0PyhmdW5jdGlvbiBuKHQsZSxvLGkpe2NvbnN0W2Escl09aSxzPU1hdGguYWJzKHItYSk7aWYocz4uMDAxKXJldHVybiBHdXQodCxlLG8saSk7Y29uc3QgbD10LnRpY2tzKFthLHJdLG8pLGM9dC50aWNrcyhbYSxyXSwyKSxkPVtdO2xldCBwPShmdW5jdGlvbiBtKHQpe2NvbnN0IGU9dC50b0V4cG9uZW50aWFsKCkuc3BsaXQoImUtIiwyKTtyZXR1cm4gMj09PWUubGVuZ3RoP051bWJlcihlWzFdKS0xOjB9KShzKTtzPDEmJmMuZXZlcnkoKHQ9Pntjb25zdCBlPU1hdGguYWJzKHQpO3JldHVybiBlPj0wJiZlPDF9KSkmJihwKz0xKTtjb25zdCB1PW5ldyBNYXA7Zm9yKGNvbnN0IHQgb2YgYyl7Y29uc3RbbixvPSIiXT1TdHJpbmcodCkuc3BsaXQoIi4iLDIpLGk9TnVtYmVyKG4rIi4iK28uc2xpY2UoMCxwKSk7dS5zZXQoaSx7c3RhcnQ6aSx0aWNrRm9ybWF0dGVkU3RyaW5nOjA9PT1pPyLigJQiOmUuZm9ybWF0UmVhZGFibGUoaSl9KX1jb25zdCBmPTEwKk1hdGgucG93KDEwLC1wKTtmb3IoY29uc3QgdCBvZiBsKWZvcihjb25zdCBuIG9mWy4uLnUua2V5cygpXS5yZXZlcnNlKCkpe2NvbnN0IG89dC1uO2lmKG8+PTAmJm88Zil7aWYoMD09PW4pZC5wdXNoKHt2YWx1ZTp0LHRpY2tGb3JtYXR0ZWRTdHJpbmc6ZS5mb3JtYXRUaWNrKHQpfSk7ZWxzZXtjb25zdCBlPVN0cmluZyh0KS5zbGljZShTdHJpbmcobikubGVuZ3RoKTtkLnB1c2goe3ZhbHVlOnQsdGlja0Zvcm1hdHRlZFN0cmluZzpg4oCmJHtlfHwiMCJ9YH0pfWJyZWFrfX1yZXR1cm57bWFqb3I6QXJyYXkuZnJvbSh1LnZhbHVlcygpKSxtaW5vcjpkfX0pKHRoaXMuc2NhbGUsdGhpcy5nZXRGb3JtYXR0ZXIoKSxlLHRoaXMuYXhpc0V4dGVudCk6dGhpcy5zY2FsZSBpbnN0YW5jZW9mIG5pdD8oZnVuY3Rpb24gbyh0LGUsbixpKXtjb25zdFthLHJdPWk7bGV0IHM9dC50aWNrcyhpLDIpO2lmKHItYT49ODY0ZTV8fHMubGVuZ3RoPjIpcmV0dXJuIEd1dCh0LGUsbixpKTtjb25zdCBsPXQudGlja3MoaSxuKTtyZXR1cm57bWFqb3I6cy5tYXAoKHQ9Pih7c3RhcnQ6dCx0aWNrRm9ybWF0dGVkU3RyaW5nOmUuZm9ybWF0U2hvcnQodCl9KSkpLG1pbm9yOmwubWFwKCh0PT4oe3ZhbHVlOnQsdGlja0Zvcm1hdHRlZFN0cmluZzplLmZvcm1hdFRpY2sodCl9KSkpfX0pKHRoaXMuc2NhbGUsdGhpcy5nZXRGb3JtYXR0ZXIoKSxlLHRoaXMuYXhpc0V4dGVudCk6R3V0KHRoaXMuc2NhbGUsdGhpcy5nZXRGb3JtYXR0ZXIoKSxlLHRoaXMuYXhpc0V4dGVudCksdGhpcy5tYWpvclRpY2tzPXQubWFqb3IsdGhpcy5taW5vclRpY2tzPShmdW5jdGlvbiBpKHQsZSxuLG8sYT01KXtpZighdC5sZW5ndGh8fCFXdXQpcmV0dXJuIHQ7Y29uc3Qgcj0ieCI9PT1uPzE6LTE7bGV0IHM9bnVsbDtyZXR1cm4gdC5maWx0ZXIoKHQ9Pntjb25zdCBpPWUodCk7V3V0LmZvbnQ9bztjb25zdCBsPVd1dC5tZWFzdXJlVGV4dCh0LnRpY2tGb3JtYXR0ZWRTdHJpbmcpLGM9IngiPT09bj9sLndpZHRoOmwuYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQtbC5hY3R1YWxCb3VuZGluZ0JveERlc2NlbnQ7cmV0dXJuIG51bGw9PT1zPyEoaStyKmM8MHx8KHM9aStyKmMsMCkpOiEocioocytyKmEtaSk+MHx8KHM9aStyKmMsMCkpfSkpfSkodC5taW5vciwodD0+dGhpcy5nZXREb21Qb3ModC52YWx1ZSkpLHRoaXMuYXhpcywiMTFweCBSb2JvdG8sIHNhbnMtc2VyaWYiKX1nZXRGb3JtYXR0ZXIoKXt2YXIgdDtyZXR1cm4gbnVsbCE9PSh0PXRoaXMuY3VzdG9tRm9ybWF0dGVyKSYmdm9pZCAwIT09dD90OnRoaXMuc2NhbGUuZGVmYXVsdEZvcm1hdHRlcn10cmFja0J5TWlub3JUaWNrKHQpe3JldHVybiB0LnZhbHVlfXRyYWNrQnlNYWpvclRpY2sodCl7cmV0dXJuIHQuc3RhcnR9Z2V0RG9tUG9zKHQpe3JldHVybiB0aGlzLnNjYWxlLmZvcndhcmQodGhpcy5heGlzRXh0ZW50LHd1dCh0aGlzLmRvbURpbSx0aGlzLmF4aXMpLHQpfXRleHRYUG9zaXRpb24odCl7cmV0dXJuIngiPT09dGhpcy5heGlzP1N0cmluZyh0aGlzLmdldERvbVBvcyh0KSk6IjEwMCUifXRleHRZUG9zaXRpb24odCl7cmV0dXJuIngiPT09dGhpcy5heGlzPyIiOlN0cmluZyh0aGlzLmdldERvbVBvcyh0KSl9Z2V0TWFqb3JYUG9zaXRpb24odCl7cmV0dXJuInkiPT09dGhpcy5heGlzPzA6TWF0aC5taW4odGhpcy5kb21EaW0ud2lkdGgsTWF0aC5tYXgoMCx0aGlzLmdldERvbVBvcyh0LnN0YXJ0KSkpfWdldE1ham9yV2lkdGhTdHJpbmcodCxlLG4pe3JldHVybiJ5Ij09PXRoaXMuYXhpcz8iIjooZXx8IW4/dGhpcy5kb21EaW0ud2lkdGg6dGhpcy5nZXRNYWpvclhQb3NpdGlvbihuKSktdGhpcy5nZXRNYWpvclhQb3NpdGlvbih0KSsicHgifWdldE1ham9yWVBvc2l0aW9uKHQpe3JldHVybiJ4Ij09PXRoaXMuYXhpcz8wOnRoaXMuZG9tRGltLmhlaWdodC1NYXRoLm1pbih0aGlzLmRvbURpbS5oZWlnaHQsTWF0aC5tYXgoMCx0aGlzLmdldERvbVBvcyh0LnN0YXJ0KSkpfWdldE1ham9ySGVpZ2h0U3RyaW5nKHQsZSxuKXtyZXR1cm4ieCI9PT10aGlzLmF4aXM/IiI6KGV8fCFuP3RoaXMuZG9tRGltLmhlaWdodDp0aGlzLmdldE1ham9yWVBvc2l0aW9uKG4pKS10aGlzLmdldE1ham9yWVBvc2l0aW9uKHQpKyJweCJ9a2V5ZG93blByZXZlbnRDbG9zZSh0KXsiRXNjYXBlIiE9PXQua2V5JiZ0LnN0b3BQcm9wYWdhdGlvbigpfWV4dGVudENoYW5nZWQodCxlKXtsZXQgbj1OdW1iZXIodCksbz1OdW1iZXIoZSk7aWYobzxuKXtjb25zdCB0PW47bj1vLG89dH1OdW1iZXIuaXNGaW5pdGUobikmJk51bWJlci5pc0Zpbml0ZShvKSYmdGhpcy5vblZpZXdFeHRlbnRDaGFuZ2UuZW1pdChbbixvXSl9b25BeGlzVXBkYXRlTWVudU9wZW4odCxlLG4pe3QudmFsdWU9U3RyaW5nKG5bMF0pLGUudmFsdWU9U3RyaW5nKG5bMV0pLHQuZm9jdXMoKX1zZXRFZGl0TWVudU9wZW5lZCh0KXt0aGlzLmVkaXRNZW51T3BlbmVkPXR9fVh1dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WHV0KX0sWHV0Lsm1Y21wPXRvKHt0eXBlOlh1dCxzZWxlY3RvcnM6W1sibGluZS1jaGFydC1heGlzIl1dLGlucHV0czp7YXhpc0V4dGVudDoiYXhpc0V4dGVudCIsYXhpczoiYXhpcyIsc2NhbGU6InNjYWxlIixncmlkQ291bnQ6ImdyaWRDb3VudCIsZG9tRGltOiJkb21EaW0iLGN1c3RvbUZvcm1hdHRlcjoiY3VzdG9tRm9ybWF0dGVyIn0sb3V0cHV0czp7b25WaWV3RXh0ZW50Q2hhbmdlOiJvblZpZXdFeHRlbnRDaGFuZ2UifSxmZWF0dXJlczpbQm9dLGRlY2xzOjI2LHZhcnM6MTMsY29uc3RzOltbMSwibGluZSJdLFsxLCJtaW5vciJdLFsxLCJ0aWNrcyJdLFsiY2xhc3MiLCJtaW5vci10aWNrLWxhYmVsIiw0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInRpdGxlIiwiQ2xpY2sgdG8gbWFudWFsbHkgc2V0IG1pbiAmIG1heCB2YWx1ZXMiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIiwibWVudU9wZW5lZCIsIm1lbnVDbG9zZWQiXSxbIm1hdE1lbnVUcmlnZ2VyIiwibWF0TWVudVRyaWdnZXIiXSxbInN2Z0ljb24iLCJlZGl0XzI0cHgiXSxbImNsYXNzIiwibWFqb3IgdGlja3MiLDQsIm5nSWYiXSxbInhQb3NpdGlvbiIsImJlZm9yZSIsMywieVBvc2l0aW9uIl0sWyJtYW51YWxDb250cm9sIiwibWF0TWVudSJdLFsxLCJleHRlbnQtZWRpdC1pbnB1dCIsMywiY2xpY2siLCJrZXlkb3duIl0sWyJ0eXBlIiwibnVtYmVyIiwzLCJ2YWx1ZSJdLFsibWluSW5wdXQiLCIiXSxbIm1heElucHV0IiwiIl0sWzEsImV4dGVudC1lZGl0LWNvbnRyb2wiLDMsImtleWRvd24iXSxbIm1hdC1yYWlzZWQtYnV0dG9uIiwiIiwiY29sb3IiLCJwcmltYXJ5IiwxLCJleHRlbnQtZWRpdC1jaGFuZ2UiLDMsImNsaWNrIl0sWyJtYXQtc3Ryb2tlZC1idXR0b24iLCIiLDEsImV4dGVudC1lZGl0LWNhbmNlbCIsMywiY2xpY2siXSxbMSwibWlub3ItdGljay1sYWJlbCJdLFsxLCJtYWpvciIsInRpY2tzIl0sWzMsIm1ham9yLWxhYmVsIiwibGFzdCIsImxlZnQiLCJ3aWR0aCIsImJvdHRvbSIsImhlaWdodCIsImZvbnQiLCJ0aXRsZSIsNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWzMsInRpdGxlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiKSxUbSgxLCJkaXYiLDApLFJtKDIsImRpdiIsMSkscWkoKSxSbSgzLCJzdmciLDIpLFFwKDQsWXV0LDUsNiwiZyIsMyksQW0oKSxaaSgpLFJtKDUsImJ1dHRvbiIsNCw1KSxWbSgibWVudU9wZW5lZCIsKGZ1bmN0aW9uIGUoKXtoaSh0KTtjb25zdCBvPSRwKDE1KSxpPSRwKDIwKTtyZXR1cm4gbi5vbkF4aXNVcGRhdGVNZW51T3BlbihvLGksbi5heGlzRXh0ZW50KSxuLnNldEVkaXRNZW51T3BlbmVkKCEwKX0pKSgibWVudUNsb3NlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5zZXRFZGl0TWVudU9wZW5lZCghMSl9KSksVG0oNywibWF0LWljb24iLDYpLEFtKCksQW0oKSxRcCg4LFp1dCwyLDIsImRpdiIsNyksQW0oKSxSbSg5LCJtYXQtbWVudSIsOCw5KSxSbSgxMSwiZGl2IiwxMCksVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ua2V5ZG93blByZXZlbnRDbG9zZShlKX0pKSxSbSgxMiwibGFiZWwiKSxrdSgxMywibWluIiksQW0oKSxUbSgxNCwiaW5wdXQiLDExLDEyKSxBbSgpLFJtKDE2LCJkaXYiLDEwKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpfSkpKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5rZXlkb3duUHJldmVudENsb3NlKGUpfSkpLFJtKDE3LCJsYWJlbCIpLGt1KDE4LCJtYXgiKSxBbSgpLFRtKDE5LCJpbnB1dCIsMTEsMTMpLEFtKCksUm0oMjEsImRpdiIsMTQpLFZtKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5rZXlkb3duUHJldmVudENsb3NlKGUpfSkpLFJtKDIyLCJidXR0b24iLDE1KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7aGkodCk7Y29uc3Qgbz0kcCgxNSksaT0kcCgyMCksYT0kcCg2KTtyZXR1cm4gbi5leHRlbnRDaGFuZ2VkKG8udmFsdWUsaS52YWx1ZSksYS5jbG9zZU1lbnUoKX0pKSxrdSgyMywiIENoYW5nZSAiKSxBbSgpLFJtKDI0LCJidXR0b24iLDE2KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLCRwKDYpLmNsb3NlTWVudSgpfSkpLGt1KDI1LCIgQ2FuY2VsICIpLEFtKCksQW0oKSxBbSgpfWlmKDImZSl7Y29uc3QgdD0kcCgxMCk7ZnUobi5heGlzKyItYXhpcyBheGlzIikscmMoNCksRG0oIm5nRm9yT2YiLG4ubWlub3JUaWNrcykoIm5nRm9yVHJhY2tCeSIsbi50cmFja0J5TWlub3JUaWNrKSxyYygxKSxwdSgiZXh0ZW50LWVkaXQtYnV0dG9uIiwhMCkoImV4dGVudC1lZGl0LW1lbnUtb3BlbmVkIixuLmVkaXRNZW51T3BlbmVkKSxEbSgibWF0TWVudVRyaWdnZXJGb3IiLHQpLHJjKDMpLERtKCJuZ0lmIixuLm1ham9yVGlja3MubGVuZ3RoKSxyYygxKSxEbSgieVBvc2l0aW9uIiwieSI9PT1uLmF4aXM/ImFib3ZlIjoiYmVsb3ciKSxyYyg1KSxEbSgidmFsdWUiLG4uYXhpc0V4dGVudFswXSkscmMoNSksRG0oInZhbHVlIixuLmF4aXNFeHRlbnRbMV0pfX0sZGlyZWN0aXZlczpbbE0sWEgsZVksRFcsZE0sS1ddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17Y29udGFpbjpzdHJpY3Q7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbn0ubWFqb3ItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmaWxsOmN1cnJlbnRDb2xvcjtmb250LXNpemU6MTFweDt1c2VyLXNlbGVjdDpub25lfS5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ubWFqb3JbX25nY29udGVudC0lQ09NUCVdLCAubWlub3JbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAwO292ZXJmbG93OmhpZGRlbn0ubGluZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojYWFhO2ZsZXg6MCAwIDFweDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH0udGlja3NbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV17ZmxleC1kaXJlY3Rpb246Y29sdW1ufS54LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLmxpbmVbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1ib3R0b206M3B4fS54LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgdGV4dFtfbmdjb250ZW50LSVDT01QJV17ZG9taW5hbnQtYmFzZWxpbmU6dGV4dC1iZWZvcmUtZWRnZTt0ZXh0LWFuY2hvcjptaWRkbGV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAudGlja3NbX25nY29udGVudC0lQ09NUCVdey13ZWJraXQtbWFzay1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwMDAwIDAlLCAjMDAwIDEwJSwgIzAwMCA5MCUsICMwMDAwIDEwMCUpO21hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDAwMCAwJSwgIzAwMCAxMCUsICMwMDAgOTAlLCAjMDAwMCAxMDAlKX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDo1cHh9LnktYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkb21pbmFudC1iYXNlbGluZTpjZW50cmFsO3RleHQtYW5jaG9yOmVuZH0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aWNrc1tfbmdjb250ZW50LSVDT01QJV17LXdlYmtpdC1tYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwMDAwIDAlLCAjMDAwIDEwJSwgIzAwMCA5MCUsICMwMDAwIDEwMCUpO21hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzAwMDAgMCUsICMwMDAgMTAlLCAjMDAwIDkwJSwgIzAwMDAgMTAwJSl9LmV4dGVudC1lZGl0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZWVlO2Rpc3BsYXk6bm9uZTtmb250LXNpemU6MDtoZWlnaHQ6MjRweDtsaW5lLWhlaWdodDoyNHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjVweDt0b3A6NXB4O3dpZHRoOjI0cHh9LmV4dGVudC1lZGl0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICBtYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjE2cHg7d2lkdGg6MTZweDtsaW5lLWhlaWdodDoxNnB4fS5leHRlbnQtZWRpdC1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2NvbHVtbi1nYXA6NXB4O2Rpc3BsYXk6Z3JpZDtmb250LXNpemU6MTJweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MzBweCBtaW5tYXgoYXV0bywgMTAwcHgpO2hlaWdodDozMHB4O21hcmdpbjoxMHB4IDIwcHh9LmV4dGVudC1lZGl0LWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2NvbG9yOmluaGVyaXR9LmV4dGVudC1lZGl0LWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21hcmdpbjoxMHB4IDIwcHh9LmV4dGVudC1lZGl0LWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDoxLjQ7bWFyZ2luLWxlZnQ6NXB4O3BhZGRpbmc6MCAxMHB4fS5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlciAgIC5leHRlbnQtZWRpdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAuZXh0ZW50LWVkaXQtbWVudS1vcGVuZWRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5pdGlhbH0ubWFqb3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtjb250YWluOnN0cmljdH0ubWFqb3JbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7d2hpdGUtc3BhY2U6bm93cmFwfS5tYWpvcltfbmdjb250ZW50LSVDT01QJV0gICAubWFqb3ItbGFiZWxbX25nY29udGVudC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV17bWF4LXdpZHRoOjEwMCV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAubWFqb3ItbGFiZWxbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjOWU5ZTllO3BhZGRpbmc6MCA1cHh9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAubWFqb3ItbGFiZWwubGFzdFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOWU5ZTllfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOWU5ZTllO2hlaWdodDoxMDAlO3BhZGRpbmc6NXB4IDA7d2lkdGg6MTAwJX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYWpvci1sYWJlbC5sYXN0W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjOWU5ZTllfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSA+IHNwYW5bX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWHV0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImxpbmUtY2hhcnQtYXhpcyIsdGVtcGxhdGVVcmw6ImxpbmVfY2hhcnRfYXhpc192aWV3Lm5nLmh0bWwiLHN0eWxlVXJsczpbImxpbmVfY2hhcnRfYXhpc192aWV3LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse2F4aXNFeHRlbnQ6W3t0eXBlOnh5fV0sYXhpczpbe3R5cGU6eHl9XSxzY2FsZTpbe3R5cGU6eHl9XSxncmlkQ291bnQ6W3t0eXBlOnh5fV0sZG9tRGltOlt7dHlwZTp4eX1dLGN1c3RvbUZvcm1hdHRlcjpbe3R5cGU6eHl9XSxvblZpZXdFeHRlbnRDaGFuZ2U6W3t0eXBlOk95fV19KTtjb25zdCBLdXQ9WyJzZXJpZXNWaWV3Il0sSnV0PVsieEF4aXMiXSxRdXQ9WyJ5QXhpcyJdLCR1dD1bImNoYXJ0RWwiXTtmdW5jdGlvbiB0ZnQodCxlKXtpZigxJnQmJlRtKDAsImxpbmUtY2hhcnQtZ3JpZC12aWV3IiwxNSksMiZ0KXtjb25zdCB0PVltKCk7RG0oInZpZXdFeHRlbnQiLHQudmlld0JveCkoInhTY2FsZSIsdC54U2NhbGUpKCJ5U2NhbGUiLHQueVNjYWxlKSgieEdyaWRDb3VudCIsdC5YX0dSSURfQ09VTlQpKCJ5R3JpZENvdW50Iix0LllfR1JJRF9DT1VOVCkoImRvbURpbSIsdC5kb21EaW1lbnNpb25zLm1haW4pfX1mdW5jdGlvbiBlZnQodCxlKXsxJnQmJihxaSgpLFRtKDAsInN2ZyIsbnVsbCwxNikpfWZ1bmN0aW9uIG5mdCh0LGUpezEmdCYmVG0oMCwiY2FudmFzIixudWxsLDE2KX1mdW5jdGlvbiBvZnQodCxlKXtpZigxJnQmJihObSgwKSxRcCgxLGVmdCwyLDAsInN2ZyIsNSksUXAoMixuZnQsMiwwLCJjYW52YXMiLDUpLHptKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLERtKCJuZ0lmIix0LmdldFJlbmRlcmVyVHlwZSgpPT09dC5SZW5kZXJlclR5cGUuU1ZHKSxyYygxKSxEbSgibmdJZiIsdC5nZXRSZW5kZXJlclR5cGUoKT09PXQuUmVuZGVyZXJUeXBlLldFQkdMKX19ZnVuY3Rpb24gaWZ0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwibGluZS1jaGFydC1pbnRlcmFjdGl2ZS12aWV3IiwxNyksVm0oIm9uVmlld0V4dGVudENoYW5nZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25WaWV3Qm94Q2hhbmdlZChuKX0pKSgib25WaWV3RXh0ZW50UmVzZXQiLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkudmlld0JveFJlc2V0KCl9KSksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKSxlPSRwKDEpO0RtKCJzZXJpZXNEYXRhIix0LnNlcmllc0RhdGEpKCJzZXJpZXNNZXRhZGF0YU1hcCIsdC5zZXJpZXNNZXRhZGF0YU1hcCkoInZpZXdFeHRlbnQiLHQudmlld0JveCkoInhTY2FsZSIsdC54U2NhbGUpKCJ5U2NhbGUiLHQueVNjYWxlKSgidG9vbHRpcE9yaWdpbkVsIixlKSgiZG9tRGltIix0LmRvbURpbWVuc2lvbnMubWFpbikoInRvb2x0aXBUZW1wbGF0ZSIsdC50b29sdGlwVGVtcGxhdGUpfX1jb25zdCBhZnQ9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJue3hTY2FsZTp0LHlTY2FsZTplLGRvbURpbWVuc2lvbjpuLHZpZXdFeHRlbnQ6b319O2Z1bmN0aW9uIHJmdCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTgpLEltKDEsMTkpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLERtKCJuZ1RlbXBsYXRlT3V0bGV0Iix0LmN1c3RvbVZpc1RlbXBsYXRlKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLE9oKDIsYWZ0LHQueFNjYWxlLHQueVNjYWxlLHQuZG9tRGltZW5zaW9ucy5tYWluLHQudmlld0JveCkpfX1mdW5jdGlvbiBzZnQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJsaW5lLWNoYXJ0LWF4aXMiLDIwKSxWbSgib25WaWV3RXh0ZW50Q2hhbmdlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vblZpZXdCb3hDaGFuZ2VkRnJvbUF4aXMobiwieSIpfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7RG0oImF4aXNFeHRlbnQiLHQudmlld0JveC55KSgiY3VzdG9tRm9ybWF0dGVyIix0LmN1c3RvbVlGb3JtYXR0ZXIpKCJkb21EaW0iLHQuZG9tRGltZW5zaW9ucy55QXhpcykoImdyaWRDb3VudCIsdC5ZX0dSSURfQ09VTlQpKCJzY2FsZSIsdC55U2NhbGUpfX1mdW5jdGlvbiBsZnQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJsaW5lLWNoYXJ0LWF4aXMiLDIxKSxWbSgib25WaWV3RXh0ZW50Q2hhbmdlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vblZpZXdCb3hDaGFuZ2VkRnJvbUF4aXMobiwieCIpfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7RG0oImF4aXNFeHRlbnQiLHQudmlld0JveC54KSgiY3VzdG9tRm9ybWF0dGVyIix0LmN1c3RvbVhGb3JtYXR0ZXIpKCJkb21EaW0iLHQuZG9tRGltZW5zaW9ucy54QXhpcykoImdyaWRDb3VudCIsdC5YX0dSSURfQ09VTlQpKCJzY2FsZSIsdC54U2NhbGUpfX1jb25zdCBjZnQ9ZnVuY3Rpb24odCxlLG4sbyxpKXtyZXR1cm57eFNjYWxlOnQseVNjYWxlOmUsZG9tRGltZW5zaW9uOm4sdmlld0V4dGVudDpvLGZvcm1hdHRlcjppfX07ZnVuY3Rpb24gZGZ0KHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwxOCksSW0oMSwxOSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRG0oIm5nVGVtcGxhdGVPdXRsZXQiLHQuY3VzdG9tWEF4aXNUZW1wbGF0ZSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixQaCgyLGNmdCx0LnhTY2FsZSx0LnlTY2FsZSx0LmRvbURpbWVuc2lvbnMueEF4aXMsdC52aWV3Qm94LHQuY3VzdG9tWEZvcm1hdHRlcnx8dC54U2NhbGUuZGVmYXVsdEZvcm1hdHRlcikpfX1mdW5jdGlvbiBwZnQodCxlKXsxJnQmJihSbSgwLCJkaXYiLDIyKSxUbSgxLCJzcGFuIiwyMyksQW0oKSl9Y29uc3QgbWZ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJue2NvbnRhaW5lcjohMCwiZGFyay1tb2RlIjp0LCJsaW5lLW9ubHktbW9kZSI6ZX19LHVmdD17eDpbMCwxXSx5OlswLDFdfTtjbGFzcyBmZnR7Y29uc3RydWN0b3IodCl7dGhpcy5jaGFuZ2VEZXRlY3Rvcj10LHRoaXMuUmVuZGVyZXJUeXBlPUsyLHRoaXMudXNlRGFya01vZGU9ITEsdGhpcy5wcmVmZXJyZWRSZW5kZXJlclR5cGU9SzIuV0VCR0wsdGhpcy54U2NhbGVUeXBlPUoyLkxJTkVBUix0aGlzLnlTY2FsZVR5cGU9SjIuTElORUFSLHRoaXMubGluZU9ubHk9ITEsdGhpcy5vblZpZXdCb3hPdmVycmlkZGVuPW5ldyBCKDEpLHRoaXMuaWdub3JlWU91dGxpZXJzPSExLHRoaXMuWV9HUklEX0NPVU5UPTYsdGhpcy5YX0dSSURfQ09VTlQ9MTAsdGhpcy54U2NhbGU9JG90KHRoaXMueFNjYWxlVHlwZSksdGhpcy55U2NhbGU9JG90KHRoaXMueFNjYWxlVHlwZSksdGhpcy52aWV3Qm94PXVmdCx0aGlzLmRvbURpbWVuc2lvbnM9e21haW46e3dpZHRoOjAsaGVpZ2h0OjB9LHhBeGlzOnt3aWR0aDowLGhlaWdodDowfSx5QXhpczp7d2lkdGg6MCxoZWlnaHQ6MH19LHRoaXMuc2hvd0NoYXJ0UmVuZGVyZXJFbGVtZW50PSEwLHRoaXMubGluZUNoYXJ0PW51bGwsdGhpcy5pc0RhdGFVcGRhdGVkPSExLHRoaXMuaXNNZXRhZGF0YVVwZGF0ZWQ9ITEsdGhpcy5pc0ZpeGVkVmlld0JveFVwZGF0ZWQ9ITEsdGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuPSExLHRoaXMudXNlRGFya01vZGVVcGRhdGVkPSExLHRoaXMuaXNWaWV3Qm94Q2hhbmdlZD0hMCx0aGlzLnNjYWxlVXBkYXRlZD0hMCx0aGlzLmlzUmVuZGVyaW5nQ29udGV4dExvc3Q9ITF9bmdPbkluaXQoKXt0aGlzLm9uVmlld0JveE92ZXJyaWRkZW4ubmV4dCh0aGlzLmlzVmlld0JveE92ZXJyaWRkZW4pfW5nT25DaGFuZ2VzKHQpe3QueFNjYWxlVHlwZSYmKHRoaXMueFNjYWxlPSRvdCh0aGlzLnhTY2FsZVR5cGUpLHRoaXMuc2NhbGVVcGRhdGVkPSEwKSx0LnlTY2FsZVR5cGUmJih0aGlzLnlTY2FsZT0kb3QodGhpcy55U2NhbGVUeXBlKSx0aGlzLnNjYWxlVXBkYXRlZD0hMCksdC5zZXJpZXNEYXRhJiYodGhpcy5pc0RhdGFVcGRhdGVkPSEwKSx0LmZpeGVkVmlld0JveCYmKHRoaXMuaXNGaXhlZFZpZXdCb3hVcGRhdGVkPSEwKSx0LnNlcmllc01ldGFkYXRhTWFwJiYodGhpcy5pc01ldGFkYXRhVXBkYXRlZD0hMCksdC51c2VEYXJrTW9kZSYmKHRoaXMudXNlRGFya01vZGVVcGRhdGVkPSEwKSx0aGlzLnNjYWxlVXBkYXRlZCYmdGhpcy5zZXRJc1ZpZXdCb3hPdmVycmlkZGVuKCExKSx0aGlzLmlzVmlld0JveENoYW5nZWQ9dGhpcy5pc1ZpZXdCb3hDaGFuZ2VkfHx0aGlzLnNjYWxlVXBkYXRlZHx8IXRoaXMuaXNWaWV3Qm94T3ZlcnJpZGRlbiYmdGhpcy5zaG91bGRVcGRhdGVEZWZhdWx0Vmlld0JveCh0KSx0aGlzLnVwZGF0ZUxpbmVDaGFydCgpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuaW5pdGlhbGl6ZUNoYXJ0KCksdGhpcy51cGRhdGVMaW5lQ2hhcnQoKSx0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKX1yZWNvdmVyUmVuZGVyZXJJZk5lZWRlZCgpe3RoaXMuaXNSZW5kZXJpbmdDb250ZXh0TG9zdCYmIXRoaXMuZGlzYWJsZVVwZGF0ZSYmKHRoaXMuc2hvd0NoYXJ0UmVuZGVyZXJFbGVtZW50PSExLHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuc2hvd0NoYXJ0UmVuZGVyZXJFbGVtZW50PSEwLHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuaW5pdGlhbGl6ZUNoYXJ0KCksdGhpcy5zY2FsZVVwZGF0ZWQ9ITAsdGhpcy5pc01ldGFkYXRhVXBkYXRlZD0hMCx0aGlzLmlzRGF0YVVwZGF0ZWQ9ITAsdGhpcy51c2VEYXJrTW9kZVVwZGF0ZWQ9ITAsdGhpcy5pc0ZpeGVkVmlld0JveFVwZGF0ZWQ9ITAsdGhpcy5pc1ZpZXdCb3hDaGFuZ2VkPSEwLHRoaXMuaXNSZW5kZXJpbmdDb250ZXh0TG9zdD0hMSl9b25WaWV3UmVzaXplKCl7dGhpcy5saW5lQ2hhcnQmJih0aGlzLnJlYWRBbmRVcGRhdGVEb21EaW1lbnNpb25zKCksdGhpcy5saW5lQ2hhcnQucmVzaXplKHRoaXMuZG9tRGltZW5zaW9ucy5tYWluKSx0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKSl9c2hvdWxkVXBkYXRlRGVmYXVsdFZpZXdCb3godCl7aWYodC54U2NhbGVUeXBlfHx0LnlTY2FsZVR5cGV8fHQuaWdub3JlWU91dGxpZXJzKXJldHVybiEwO2lmKHQuc2VyaWVzRGF0YSlyZXR1cm4hMDtjb25zdCBlPXQuc2VyaWVzTWV0YWRhdGFNYXA7aWYoZSl7Y29uc3QgdD1lLnByZXZpb3VzVmFsdWU7aWYoT2JqZWN0LmtleXModGhpcy5zZXJpZXNNZXRhZGF0YU1hcCkubGVuZ3RoIT09T2JqZWN0LmtleXMobnVsbCE9dD90Ont9KS5sZW5ndGgpcmV0dXJuITA7Zm9yKGNvbnN0W2Usbl1vZiBPYmplY3QuZW50cmllcyh0aGlzLnNlcmllc01ldGFkYXRhTWFwKSl7Y29uc3Qgbz10JiZ0W2VdO2lmKCFvfHxuLnZpc2libGUhPT1vLnZpc2libGUpcmV0dXJuITB9fXJldHVybiExfW9uQ29udGV4dExvc3QoKXt0aGlzLmlzUmVuZGVyaW5nQ29udGV4dExvc3Q9ITAsdGhpcy5saW5lQ2hhcnQmJih0aGlzLmxpbmVDaGFydC5kaXNwb3NlKCksdGhpcy5saW5lQ2hhcnQ9bnVsbCl9dHJpZ2dlckNvbnRleHRMb3N0Rm9yVGVzdCgpe3RoaXMub25Db250ZXh0TG9zdCgpfWdldExpbmVDaGFydEZvclRlc3QoKXtyZXR1cm4gdGhpcy5saW5lQ2hhcnR9aW5pdGlhbGl6ZUNoYXJ0KCl7dGhpcy5saW5lQ2hhcnQmJnRoaXMubGluZUNoYXJ0LmRpc3Bvc2UoKTtjb25zdCB0PXRoaXMuZ2V0UmVuZGVyZXJUeXBlKCksZT17b25EcmF3RW5kOigpPT57fSxvbkNvbnRleHRMb3N0OnRoaXMub25Db250ZXh0TG9zdC5iaW5kKHRoaXMpfTtsZXQgbj1udWxsO3N3aXRjaCh0aGlzLnJlYWRBbmRVcGRhdGVEb21EaW1lbnNpb25zKCksdCl7Y2FzZSBLMi5TVkc6bj17dHlwZTpLMi5TVkcsY29udGFpbmVyOnRoaXMuY2hhcnRFbC5uYXRpdmVFbGVtZW50LGNhbGxiYWNrczplLGRvbURpbWVuc2lvbjp0aGlzLmRvbURpbWVuc2lvbnMubWFpbix1c2VEYXJrTW9kZTp0aGlzLnVzZURhcmtNb2RlfTticmVhaztjYXNlIEsyLldFQkdMOm49e3R5cGU6SzIuV0VCR0wsY29udGFpbmVyOnRoaXMuY2hhcnRFbC5uYXRpdmVFbGVtZW50LGRldmljZVBpeGVsUmF0aW86d2luZG93LmRldmljZVBpeGVsUmF0aW8sY2FsbGJhY2tzOmUsZG9tRGltZW5zaW9uOnRoaXMuZG9tRGltZW5zaW9ucy5tYWluLHVzZURhcmtNb2RlOnRoaXMudXNlRGFya01vZGV9O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGA8bGluZS1jaGFydD4gZG9lcyBub3QgeWV0IHN1cHBvcnQgcmVuZGVyZXJUeXBlOiAke3R9YCl9Y29uc3Qgbz10IT09SzIuU1ZHJiZpaXQoKTt0aGlzLmxpbmVDaGFydD1uZXcobz9QdXQ6eHV0KShuKX1uZ09uRGVzdHJveSgpe3RoaXMubGluZUNoYXJ0JiZ0aGlzLmxpbmVDaGFydC5kaXNwb3NlKCl9Z2V0UmVuZGVyZXJUeXBlKCl7cmV0dXJuKGZ1bmN0aW9uIHQoZSl7c3dpdGNoKGUpe2Nhc2UgSzIuU1ZHOnJldHVybiBLMi5TVkc7Y2FzZSBLMi5XRUJHTDpyZXR1cm4oZnVuY3Rpb24gdCgpe3JldHVybiBvaXR9KSgpP0syLldFQkdMOksyLlNWRztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5rbm93biByZW5kZXJlclR5cGU6ICR7ZX1gKX19KSh0aGlzLnByZWZlcnJlZFJlbmRlcmVyVHlwZSl9cmVhZEFuZFVwZGF0ZURvbURpbWVuc2lvbnMoKXt0aGlzLmRvbURpbWVuc2lvbnM9e21haW46e3dpZHRoOnRoaXMuc2VyaWVzVmlldy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoLGhlaWdodDp0aGlzLnNlcmllc1ZpZXcubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHR9LHhBeGlzOnt3aWR0aDp0aGlzLnhBeGlzLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgsaGVpZ2h0OnRoaXMueEF4aXMubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHR9LHlBeGlzOnt3aWR0aDp0aGlzLnlBeGlzLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgsaGVpZ2h0OnRoaXMueUF4aXMubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHR9fX11cGRhdGVMaW5lQ2hhcnQoKXt2YXIgdCxlO2lmKHRoaXMucmVjb3ZlclJlbmRlcmVySWZOZWVkZWQoKSx0aGlzLmxpbmVDaGFydCYmIXRoaXMuZGlzYWJsZVVwZGF0ZSl7aWYodGhpcy5zY2FsZVVwZGF0ZWQmJih0aGlzLnNjYWxlVXBkYXRlZD0hMSx0aGlzLmxpbmVDaGFydC5zZXRYU2NhbGVUeXBlKHRoaXMueFNjYWxlVHlwZSksdGhpcy5saW5lQ2hhcnQuc2V0WVNjYWxlVHlwZSh0aGlzLnlTY2FsZVR5cGUpKSx0aGlzLmlzTWV0YWRhdGFVcGRhdGVkJiYodGhpcy5pc01ldGFkYXRhVXBkYXRlZD0hMSx0aGlzLmxpbmVDaGFydC5zZXRNZXRhZGF0YSh0aGlzLnNlcmllc01ldGFkYXRhTWFwKSksdGhpcy5pc0RhdGFVcGRhdGVkJiYodGhpcy5pc0RhdGFVcGRhdGVkPSExLHRoaXMubGluZUNoYXJ0LnNldERhdGEodGhpcy5zZXJpZXNEYXRhKSksdGhpcy51c2VEYXJrTW9kZVVwZGF0ZWQmJih0aGlzLnVzZURhcmtNb2RlVXBkYXRlZD0hMSx0aGlzLmxpbmVDaGFydC5zZXRVc2VEYXJrTW9kZSh0aGlzLnVzZURhcmtNb2RlKSksIXRoaXMuaXNWaWV3Qm94T3ZlcnJpZGRlbiYmdGhpcy5maXhlZFZpZXdCb3gpdGhpcy52aWV3Qm94PXRoaXMuZml4ZWRWaWV3Qm94O2Vsc2UgaWYoIXRoaXMuaXNWaWV3Qm94T3ZlcnJpZGRlbiYmdGhpcy5pc1ZpZXdCb3hDaGFuZ2VkKXtjb25zdCBuPShmdW5jdGlvbiBvKHQsZSxuLGksYSl7bGV0IHI9bnVsbCxzPW51bGwsbD1bXTtmb3IoY29uc3R7aWQ6bixwb2ludHM6b31vZiB0KXtjb25zdCB0PWVbbl07aWYodCYmIXQuYXV4JiZ0LnZpc2libGUpZm9yKGxldCB0PTA7dDxvLmxlbmd0aDt0Kyspe2NvbnN0e3g6ZSx5Om59PW9bdF07aShlKSYmKHI9bnVsbD09PXJ8fGU8cj9lOnIscz1udWxsPT09c3x8ZT5zP2U6cyksYShuKSYmbC5wdXNoKG4pfX1sLnNvcnQoYzUpO2xldCBjPWxbMF0sZD1sW2wubGVuZ3RoLTFdO3JldHVybiBuJiZsLmxlbmd0aD4yJiYoYz1sW01hdGguY2VpbCguMDUqKGwubGVuZ3RoLTEpKV0sZD1sW01hdGguZmxvb3IoLjk1KihsLmxlbmd0aC0xKSldKSx7eDpudWxsIT09ciYmbnVsbCE9PXM/W3Isc106dm9pZCAwLHk6dm9pZCAwIT09YyYmdm9pZCAwIT09ZD9bYyxkXTp2b2lkIDB9fSkodGhpcy5zZXJpZXNEYXRhLHRoaXMuc2VyaWVzTWV0YWRhdGFNYXAsdGhpcy5pZ25vcmVZT3V0bGllcnMsdGhpcy54U2NhbGUuaXNTYWZlTnVtYmVyLHRoaXMueVNjYWxlLmlzU2FmZU51bWJlcik7dGhpcy52aWV3Qm94PXt4OnRoaXMueFNjYWxlLm5pY2VEb21haW4obnVsbCE9PSh0PW4ueCkmJnZvaWQgMCE9PXQ/dDp1ZnQueCkseTp0aGlzLnlTY2FsZS5uaWNlRG9tYWluKG51bGwhPT0oZT1uLnkpJiZ2b2lkIDAhPT1lP2U6dWZ0LnkpfX0odGhpcy5pc0ZpeGVkVmlld0JveFVwZGF0ZWR8fHRoaXMuaXNWaWV3Qm94Q2hhbmdlZCkmJih0aGlzLmlzRml4ZWRWaWV3Qm94VXBkYXRlZD0hMSx0aGlzLmlzVmlld0JveENoYW5nZWQ9ITEsdGhpcy5saW5lQ2hhcnQuc2V0Vmlld0JveCh0aGlzLnZpZXdCb3gpKX19b25WaWV3Qm94Q2hhbmdlZCh7ZGF0YUV4dGVudDp0fSl7dGhpcy5zZXRJc1ZpZXdCb3hPdmVycmlkZGVuKCEwKSx0aGlzLmlzVmlld0JveENoYW5nZWQ9ITAsdGhpcy52aWV3Qm94PXQsdGhpcy51cGRhdGVMaW5lQ2hhcnQoKX12aWV3Qm94UmVzZXQoKXt0aGlzLnNldElzVmlld0JveE92ZXJyaWRkZW4oITEpLHRoaXMuaXNWaWV3Qm94Q2hhbmdlZD0hMCx0aGlzLnVwZGF0ZUxpbmVDaGFydCgpfXNldElzVmlld0JveE92ZXJyaWRkZW4odCl7Y29uc3QgZT10aGlzLmlzVmlld0JveE92ZXJyaWRkZW47dGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuPXQsZSE9PXQmJnRoaXMub25WaWV3Qm94T3ZlcnJpZGRlbi5uZXh0KHQpfWdldElzVmlld0JveE92ZXJyaWRkZW4oKXtyZXR1cm4gdGhpcy5vblZpZXdCb3hPdmVycmlkZGVufW9uVmlld0JveENoYW5nZWRGcm9tQXhpcyh0LGUpe2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMudmlld0JveCkse1tlXTp0fSk7dGhpcy5vblZpZXdCb3hDaGFuZ2VkKHtkYXRhRXh0ZW50Om59KX19ZmZ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmZnQpKFNtKFVnKSl9LGZmdC7JtWNtcD10byh7dHlwZTpmZnQsc2VsZWN0b3JzOltbImxpbmUtY2hhcnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChLdXQsNyxoZyksUWgoSnV0LDcsaGcpLFFoKFF1dCw3LGhnKSxRaCgkdXQsNSxoZykpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uc2VyaWVzVmlldz10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi54QXhpcz10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi55QXhpcz10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5jaGFydEVsPXQuZmlyc3QpfX0saW5wdXRzOntjdXN0b21WaXNUZW1wbGF0ZToiY3VzdG9tVmlzVGVtcGxhdGUiLGN1c3RvbVhBeGlzVGVtcGxhdGU6ImN1c3RvbVhBeGlzVGVtcGxhdGUiLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSIscHJlZmVycmVkUmVuZGVyZXJUeXBlOiJwcmVmZXJyZWRSZW5kZXJlclR5cGUiLHNlcmllc0RhdGE6InNlcmllc0RhdGEiLGZpeGVkVmlld0JveDoiZml4ZWRWaWV3Qm94IixzZXJpZXNNZXRhZGF0YU1hcDoic2VyaWVzTWV0YWRhdGFNYXAiLHhTY2FsZVR5cGU6InhTY2FsZVR5cGUiLHlTY2FsZVR5cGU6InlTY2FsZVR5cGUiLGN1c3RvbVhGb3JtYXR0ZXI6ImN1c3RvbVhGb3JtYXR0ZXIiLGN1c3RvbVlGb3JtYXR0ZXI6ImN1c3RvbVlGb3JtYXR0ZXIiLHRvb2x0aXBUZW1wbGF0ZToidG9vbHRpcFRlbXBsYXRlIixsaW5lT25seToibGluZU9ubHkiLGRpc2FibGVVcGRhdGU6ImRpc2FibGVVcGRhdGUiLGlnbm9yZVlPdXRsaWVyczoiaWdub3JlWU91dGxpZXJzIn0sZmVhdHVyZXM6W0JvXSxkZWNsczoxNix2YXJzOjEzLGNvbnN0czpbWyJkZXRlY3RSZXNpemUiLCIiLCJjZGtPdmVybGF5T3JpZ2luIiwiIiwzLCJuZ0NsYXNzIiwicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLCJvblJlc2l6ZSJdLFsib3ZlcmxheVRhcmdldCIsImNka092ZXJsYXlPcmlnaW4iXSxbMSwic2VyaWVzLXZpZXciXSxbInNlcmllc1ZpZXciLCIiXSxbMywidmlld0V4dGVudCIsInhTY2FsZSIsInlTY2FsZSIsInhHcmlkQ291bnQiLCJ5R3JpZENvdW50IiwiZG9tRGltIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMywic2VyaWVzRGF0YSIsInNlcmllc01ldGFkYXRhTWFwIiwidmlld0V4dGVudCIsInhTY2FsZSIsInlTY2FsZSIsInRvb2x0aXBPcmlnaW5FbCIsImRvbURpbSIsInRvb2x0aXBUZW1wbGF0ZSIsIm9uVmlld0V4dGVudENoYW5nZSIsIm9uVmlld0V4dGVudFJlc2V0Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImN1c3RvbS12aXMiLDQsIm5nSWYiXSxbMSwieS1heGlzIl0sWyJ5QXhpcyIsIiJdLFsiYXhpcyIsInkiLDMsImF4aXNFeHRlbnQiLCJjdXN0b21Gb3JtYXR0ZXIiLCJkb21EaW0iLCJncmlkQ291bnQiLCJzY2FsZSIsIm9uVmlld0V4dGVudENoYW5nZSIsNCwibmdJZiJdLFsxLCJ4LWF4aXMiXSxbInhBeGlzIiwiIl0sWyJheGlzIiwieCIsMywiYXhpc0V4dGVudCIsImN1c3RvbUZvcm1hdHRlciIsImRvbURpbSIsImdyaWRDb3VudCIsInNjYWxlIiwib25WaWV3RXh0ZW50Q2hhbmdlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRvdCIsNCwibmdJZiJdLFszLCJ2aWV3RXh0ZW50IiwieFNjYWxlIiwieVNjYWxlIiwieEdyaWRDb3VudCIsInlHcmlkQ291bnQiLCJkb21EaW0iXSxbImNoYXJ0RWwiLCIiXSxbMywic2VyaWVzRGF0YSIsInNlcmllc01ldGFkYXRhTWFwIiwidmlld0V4dGVudCIsInhTY2FsZSIsInlTY2FsZSIsInRvb2x0aXBPcmlnaW5FbCIsImRvbURpbSIsInRvb2x0aXBUZW1wbGF0ZSIsIm9uVmlld0V4dGVudENoYW5nZSIsIm9uVmlld0V4dGVudFJlc2V0Il0sWzEsImN1c3RvbS12aXMiXSxbMywibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il0sWyJheGlzIiwieSIsMywiYXhpc0V4dGVudCIsImN1c3RvbUZvcm1hdHRlciIsImRvbURpbSIsImdyaWRDb3VudCIsInNjYWxlIiwib25WaWV3RXh0ZW50Q2hhbmdlIl0sWyJheGlzIiwieCIsMywiYXhpc0V4dGVudCIsImN1c3RvbUZvcm1hdHRlciIsImRvbURpbSIsImdyaWRDb3VudCIsInNjYWxlIiwib25WaWV3RXh0ZW50Q2hhbmdlIl0sWzEsImRvdCJdLFsxLCJyZWN0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDAsMSksVm0oIm9uUmVzaXplIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVmlld1Jlc2l6ZSgpfSkpLFJtKDIsImRpdiIsMiwzKSxRcCg0LHRmdCwxLDYsImxpbmUtY2hhcnQtZ3JpZC12aWV3Iiw0KSxRcCg1LG9mdCwzLDIsIm5nLWNvbnRhaW5lciIsNSksUXAoNixpZnQsMSw4LCJsaW5lLWNoYXJ0LWludGVyYWN0aXZlLXZpZXciLDYpLFFwKDcscmZ0LDIsNywiZGl2Iiw3KSxBbSgpLFJtKDgsImRpdiIsOCw5KSxRcCgxMCxzZnQsMSw1LCJsaW5lLWNoYXJ0LWF4aXMiLDEwKSxBbSgpLFJtKDExLCJkaXYiLDExLDEyKSxRcCgxMyxsZnQsMSw1LCJsaW5lLWNoYXJ0LWF4aXMiLDEzKSxRcCgxNCxkZnQsMiw4LCJkaXYiLDcpLEFtKCksUXAoMTUscGZ0LDIsMCwiZGl2IiwxNCksQW0oKSksMiZlJiYoRG0oIm5nQ2xhc3MiLHZoKDEwLG1mdCxuLnVzZURhcmtNb2RlLG4ubGluZU9ubHkpKSgicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLDApLHJjKDQpLERtKCJuZ0lmIiwhbi5saW5lT25seSkscmMoMSksRG0oIm5nSWYiLG4uc2hvd0NoYXJ0UmVuZGVyZXJFbGVtZW50KSxyYygxKSxEbSgibmdJZiIsIW4ubGluZU9ubHkpLHJjKDEpLERtKCJuZ0lmIixuLmN1c3RvbVZpc1RlbXBsYXRlKSxyYygzKSxEbSgibmdJZiIsIW4ubGluZU9ubHkpLHJjKDMpLERtKCJuZ0lmIiwhbi5saW5lT25seSkscmMoMSksRG0oIm5nSWYiLG4uY3VzdG9tWEF4aXNUZW1wbGF0ZSkscmMoMSksRG0oIm5nSWYiLCFuLmxpbmVPbmx5KSl9LGRpcmVjdGl2ZXM6W29KLGZMLGFNLGRNLEV1dCxVdXQsTU0sWHV0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2NvbnRhaW46c3RyaWN0O2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6aW5oZXJpdDtkaXNwbGF5OmdyaWQ7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCU7Z3JpZC10ZW1wbGF0ZS1hcmVhczoieWF4aXMgc2VyaWVzIiAiZG90IHhheGlzIjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6NTBweCAxZnI7Z3JpZC1hdXRvLXJvd3M6MWZyIDMwcHh9LmNvbnRhaW5lci5kYXJrLW1vZGVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmZmZ9LmNvbnRhaW5lci5saW5lLW9ubHktbW9kZVtfbmdjb250ZW50LSVDT01QJV17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjAgMWZyO2dyaWQtYXV0by1yb3dzOjFmciAwfS5zZXJpZXMtdmlld1tfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOnNlcmllcztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59LnNlcmllcy12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jdXN0b20tdmlzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNlcmllcy12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNhbnZhc1tfbmdjb250ZW50LSVDT01QJV0sIC5zZXJpZXMtdmlld1tfbmdjb250ZW50LSVDT01QJV0gICBzdmdbX25nY29udGVudC0lQ09NUCVdLCAuc2VyaWVzLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgbGluZS1jaGFydC1ncmlkLXZpZXdbX25nY29udGVudC0lQ09NUCVdLCAuc2VyaWVzLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgbGluZS1jaGFydC1pbnRlcmFjdGl2ZS12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0uc2VyaWVzLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgLmN1c3RvbS12aXNbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAuY3VzdG9tLXZpc1tfbmdjb250ZW50LSVDT01QJV0sIC55LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLmN1c3RvbS12aXNbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTstd2Via2l0LW1hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDAwMCAwJSwgIzAwMCAxMCUsICMwMDAgOTAlLCAjMDAwMCAxMDAlKTttYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwMDAgMCUsICMwMDAgMTAlLCAjMDAwIDkwJSwgIzAwMDAgMTAwJSl9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICBsaW5lLWNoYXJ0LWF4aXNbX25nY29udGVudC0lQ09NUCVdLCAueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmUtY2hhcnQtYXhpc1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOnhheGlzO3Bvc2l0aW9uOnJlbGF0aXZlfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVde2dyaWQtYXJlYTp5YXhpc30uZG90W19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2Rpc3BsYXk6ZmxleDtncmlkLWFyZWE6ZG90O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZG90W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MXB4O3dpZHRoOjFweDtiYWNrZ3JvdW5kLWNvbG9yOiNhYWF9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGZmdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJsaW5lLWNoYXJ0Iix0ZW1wbGF0ZVVybDoibGluZV9jaGFydF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsibGluZV9jaGFydF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlVnfV19KSx7c2VyaWVzVmlldzpbe3R5cGU6WmEsYXJnczpbInNlcmllc1ZpZXciLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0seEF4aXM6W3t0eXBlOlphLGFyZ3M6WyJ4QXhpcyIse3N0YXRpYzohMCxyZWFkOmhnfV19XSx5QXhpczpbe3R5cGU6WmEsYXJnczpbInlBeGlzIix7c3RhdGljOiEwLHJlYWQ6aGd9XX1dLGNoYXJ0RWw6W3t0eXBlOlphLGFyZ3M6WyJjaGFydEVsIix7c3RhdGljOiExLHJlYWQ6aGd9XX1dLGN1c3RvbVZpc1RlbXBsYXRlOlt7dHlwZTp4eX1dLGN1c3RvbVhBeGlzVGVtcGxhdGU6W3t0eXBlOnh5fV0sdXNlRGFya01vZGU6W3t0eXBlOnh5fV0scHJlZmVycmVkUmVuZGVyZXJUeXBlOlt7dHlwZTp4eX1dLHNlcmllc0RhdGE6W3t0eXBlOnh5fV0sZml4ZWRWaWV3Qm94Olt7dHlwZTp4eX1dLHNlcmllc01ldGFkYXRhTWFwOlt7dHlwZTp4eX1dLHhTY2FsZVR5cGU6W3t0eXBlOnh5fV0seVNjYWxlVHlwZTpbe3R5cGU6eHl9XSxjdXN0b21YRm9ybWF0dGVyOlt7dHlwZTp4eX1dLGN1c3RvbVlGb3JtYXR0ZXI6W3t0eXBlOnh5fV0sdG9vbHRpcFRlbXBsYXRlOlt7dHlwZTp4eX1dLGxpbmVPbmx5Olt7dHlwZTp4eX1dLGRpc2FibGVVcGRhdGU6W3t0eXBlOnh5fV0saWdub3JlWU91dGxpZXJzOlt7dHlwZTp4eX1dfSk7Y2xhc3MgZ2Z0e31nZnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGdmdCl9LGdmdC7JtWNtcD10byh7dHlwZTpnZnQsc2VsZWN0b3JzOltbInZpcy1zZWxlY3RlZC10aW1lLWNsaXBwZWQiXV0saW5wdXRzOntzZWxlY3RlZFRpbWU6InNlbGVjdGVkVGltZSJ9LGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJzdmdJY29uIiwiaW5mb19vdXRsaW5lXzI0cHgiLCJ0aXRsZSIsIkxpbmtlZCBzdGVwIGlzIG5vdCBmb3VuZCBpbiB0aGlzIHZpc3VhbGl6YXRpb24uIFdlIGhpZ2hsaWdodGVkIHRoZSBjbG9zZXN0IHN0ZXAgZm9yIHlvdS4iXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmVG0oMCwibWF0LWljb24iLDApfSxkaXJlY3RpdmVzOltEV10sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtjb2xvcjojZDMyZjJmO2hlaWdodDoxZW07bGluZS1oZWlnaHQ6MDt3aWR0aDoxZW19Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVde2NvbG9yOiNkMzJmMmZ9W19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnZnQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZCIsdGVtcGxhdGU6J1xuICAgIDxtYXQtaWNvblxuICAgICAgc3ZnSWNvbj0iaW5mb19vdXRsaW5lXzI0cHgiXG4gICAgICB0aXRsZT0iTGlua2VkIHN0ZXAgaXMgbm90IGZvdW5kIGluIHRoaXMgdmlzdWFsaXphdGlvbi4gV2UgaGlnaGxpZ2h0ZWQgdGhlIGNsb3Nlc3Qgc3RlcCBmb3IgeW91LiJcbiAgICA+PC9tYXQtaWNvbj5cbiAgJyxzdHlsZVVybHM6WyJ2aXNfc2VsZWN0ZWRfdGltZV9jbGlwcGVkX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtzZWxlY3RlZFRpbWU6W3t0eXBlOnh5fV19KTtjbGFzcyBoZnR7fWZ1bmN0aW9uIGJmdCh0LGUpezEmdCYmVG0oMCwidmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZCIpfWZ1bmN0aW9uIHlmdCh0LGUpezEmdCYmVG0oMCwibWF0LXNwaW5uZXIiLDIzKX1mdW5jdGlvbiBfZnQodCxlKXsxJnQmJihSbSgwLCJ0aCIpLGt1KDEsIlNtb290aGVkIiksQW0oKSl9ZnVuY3Rpb24gQ2Z0KHQsZSl7aWYoMSZ0JiYoUm0oMCwidGQiKSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKS4kaW1wbGljaXQsZT1ZbSgyKTtyYygxKSxEdSgiICIsZS52YWx1ZUZvcm1hdHRlci5mb3JtYXRTaG9ydCh0LnBvaW50LnkpLCIgIil9fWZ1bmN0aW9uIE1mdCh0LGUpe2lmKDEmdCYmKE5tKDApLFJtKDEsInRyIiwyNyksUm0oMiwidGQiLDI4KSxUbSgzLCJzcGFuIiksQW0oKSxSbSg0LCJ0ZCIsMSksa3UoNSksQW0oKSxRcCg2LENmdCwyLDEsInRkIiwzKSxSbSg3LCJ0ZCIpLGt1KDgpLEFtKCksUm0oOSwidGQiKSxrdSgxMCksQW0oKSxSbSgxMSwidGQiKSxrdSgxMiksQWgoMTMsImRhdGUiKSxBbSgpLFJtKDE0LCJ0ZCIpLGt1KDE1KSxBbSgpLEFtKCksem0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7cmMoMSkscHUoImNsb3Nlc3QiLHQubWV0YWRhdGEuY2xvc2VzdCkscmMoMiksZHUoImJhY2tncm91bmQtY29sb3IiLHQubWV0YWRhdGEuY29sb3IpLHJjKDIpLFN1KHQubWV0YWRhdGEuZGlzcGxheU5hbWUpLHJjKDEpLERtKCJuZ0lmIixuLnNtb290aGluZ0VuYWJsZWQpLHJjKDIpLFN1KG4udmFsdWVGb3JtYXR0ZXIuZm9ybWF0U2hvcnQodC5wb2ludC52YWx1ZSkpLHJjKDIpLFN1KG4uc3RlcEZvcm1hdHRlci5mb3JtYXRTaG9ydCh0LnBvaW50LnN0ZXApKSxyYygyKSxTdShOaCgxMywxMCx0LnBvaW50LndhbGxUaW1lLCJzaG9ydCIpKSxyYygzKSxEdSgiICIsbi5yZWxhdGl2ZVhGb3JtYXR0ZXIuZm9ybWF0UmVhZGFibGUodC5wb2ludC5yZWxhdGl2ZVRpbWVJbk1zKSwiICIpfX1mdW5jdGlvbiB2ZnQodCxlKXtpZigxJnQmJihSbSgwLCJ0YWJsZSIsMjQpLFJtKDEsInRoZWFkIiksUm0oMiwidHIiKSxUbSgzLCJ0aCIsMjUpLFJtKDQsInRoIiksa3UoNSwiUnVuIiksQW0oKSxRcCg2LF9mdCwyLDAsInRoIiwzKSxSbSg3LCJ0aCIpLGt1KDgsIlZhbHVlIiksQW0oKSxSbSg5LCJ0aCIpLGt1KDEwLCJTdGVwIiksQW0oKSxSbSgxMSwidGgiKSxrdSgxMiwiVGltZSIpLEFtKCksUm0oMTMsInRoIiksa3UoMTQsIlJlbGF0aXZlIiksQW0oKSxBbSgpLEFtKCksUm0oMTUsInRib2R5IiksUXAoMTYsTWZ0LDE2LDEzLCJuZy1jb250YWluZXIiLDI2KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1lLmRhdGEsbj1lLmN1cnNvckxvY2F0aW9uSW5EYXRhQ29vcmQsbz1ZbSgpO3JjKDYpLERtKCJuZ0lmIixvLnNtb290aGluZ0VuYWJsZWQpLHJjKDEwKSxEbSgibmdGb3JPZiIsby5nZXRDdXJzb3JBd2FyZVRvb2x0aXBEYXRhKHQsbikpKCJuZ0ZvclRyYWNrQnkiLG8udHJhY2tCeVRvb2x0aXBEYXR1bSl9fWhmdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aGZ0KX0saGZ0Lsm1Y21wPXRvKHt0eXBlOmhmdCxzZWxlY3RvcnM6W1sibGlua2VkLXRpbWUtZm9iIl1dLGlucHV0czp7c3RlcDoic3RlcCJ9LGRlY2xzOjMsdmFyczozLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJzcGFuIiksa3UoMSksQWgoMiwibnVtYmVyIiksQW0oKSksMiZlJiYocmMoMSksU3UoVGgoMiwxLG4uc3RlcCkpKX0scGlwZXM6W0ZNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrfXNwYW5bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2UwZTBlMDtib3JkZXItcmFkaXVzOjI1cHg7Y29sb3I6aW5oZXJpdDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTFweDtwYWRkaW5nOjJweCA1cHh9c3Bhbltfbmdjb250ZW50LSVDT01QJV06aG92ZXIsIHNwYW5bX25nY29udGVudC0lQ09NUCVdOmFjdGl2ZXtib3JkZXItY29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojNjE2MTYxO2JvcmRlci1jb2xvcjojOGU5OGEzfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIHNwYW5bX25nY29udGVudC0lQ09NUCVdOmhvdmVyLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlciwgYm9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV06YWN0aXZlLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXTphY3RpdmV7Ym9yZGVyLWNvbG9yOiNlZWV9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGhmdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJsaW5rZWQtdGltZS1mb2IiLHRlbXBsYXRlOiI8c3Bhbj57eyBzdGVwIHwgbnVtYmVyIH19PC9zcGFuPiIsc3R5bGVVcmxzOlsibGlua2VkX3RpbWVfZm9iX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtzdGVwOlt7dHlwZTp4eX1dfSk7Y29uc3QgeGZ0PWZ1bmN0aW9uKHQpe3JldHVyblswLHRdfSxPZnQ9ZnVuY3Rpb24oKXtyZXR1cm57Im91dC1vZi1zZWxlY3RlZC10aW1lIjohMCxlbmQ6ITAscmFuZ2U6ITB9fTtmdW5jdGlvbiBQZnQodCxlKXtpZigxJnQmJlRtKDAsImRpdiIsMjkpLDImdCl7Y29uc3QgdD1ZbSgyKSxlPXQudmlld0V4dGVudCxuPXQuZG9tRGltZW5zaW9uLG89dC54U2NhbGUsaT1ZbSgpO2R1KCJsZWZ0IixvLmZvcndhcmQoZS54LE1oKDMseGZ0LG4ud2lkdGgpLGkuc2VsZWN0ZWRUaW1lLmVuZFN0ZXApKyJweCIpLERtKCJuZ0NsYXNzIixDaCg1LE9mdCkpfX1jb25zdCB3ZnQ9ZnVuY3Rpb24odCl7cmV0dXJuW3QsMF19LGtmdD1mdW5jdGlvbih0KXtyZXR1cm57Im91dC1vZi1zZWxlY3RlZC10aW1lIjohMCxzdGFydDohMCxyYW5nZTp0fX07ZnVuY3Rpb24gU2Z0KHQsZSl7aWYoMSZ0JiYoTm0oMCksVG0oMSwiZGl2IiwyOSksUXAoMixQZnQsMSw2LCJkaXYiLDMwKSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oKSxlPXQudmlld0V4dGVudCxuPXQuZG9tRGltZW5zaW9uLG89dC54U2NhbGUsaT1ZbSgpO3JjKDEpLGR1KCJyaWdodCIsby5mb3J3YXJkKGUueCxNaCg0LHdmdCxuLndpZHRoKSxpLnNlbGVjdGVkVGltZS5zdGFydFN0ZXApKyJweCIpLERtKCJuZ0NsYXNzIixNaCg2LGtmdCwhIWkuc2VsZWN0ZWRUaW1lLmVuZFN0ZXApKSxyYygxKSxEbSgibmdJZiIsaS5zZWxlY3RlZFRpbWUuZW5kU3RlcCl9fWZ1bmN0aW9uIERmdCh0LGUpezEmdCYmUXAoMCxTZnQsMyw4LCJuZy1jb250YWluZXIiLDMpLDImdCYmRG0oIm5nSWYiLFltKCkuc2VsZWN0ZWRUaW1lKX1mdW5jdGlvbiBFZnQodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDMxKSxUbSgxLCJsaW5rZWQtdGltZS1mb2IiLDMyKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMiksZT10LnZpZXdFeHRlbnQsbj10LmRvbURpbWVuc2lvbixvPXQueFNjYWxlLGk9WW0oKTtkdSgidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrby5mb3J3YXJkKGUueCxNaCgzLHhmdCxuLndpZHRoKSxpLnNlbGVjdGVkVGltZS5lbmRTdGVwKSsicHgsIDApIikscmMoMSksRG0oInN0ZXAiLGkuc2VsZWN0ZWRUaW1lLmVuZFN0ZXApfX1mdW5jdGlvbiBSZnQodCxlKXtpZigxJnQmJihObSgwKSxSbSgxLCJkaXYiLDMxKSxUbSgyLCJsaW5rZWQtdGltZS1mb2IiLDMyKSxBbSgpLFFwKDMsRWZ0LDIsNSwiZGl2IiwzMyksem0oKSksMiZ0KXtjb25zdCB0PVltKCksZT10LnZpZXdFeHRlbnQsbj10LmRvbURpbWVuc2lvbixvPXQueFNjYWxlLGk9WW0oKTtyYygxKSxkdSgidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrby5mb3J3YXJkKGUueCxNaCg0LHhmdCxuLndpZHRoKSxpLnNlbGVjdGVkVGltZS5zdGFydFN0ZXApKyJweCwgMCkiKSxyYygxKSxEbSgic3RlcCIsaS5zZWxlY3RlZFRpbWUuc3RhcnRTdGVwKSxyYygxKSxEbSgibmdJZiIsaS5zZWxlY3RlZFRpbWUuZW5kU3RlcCl9fWZ1bmN0aW9uIEFmdCh0LGUpezEmdCYmUXAoMCxSZnQsNCw2LCJuZy1jb250YWluZXIiLDMpLDImdCYmRG0oIm5nSWYiLFltKCkuc2VsZWN0ZWRUaW1lKX1jbGFzcyBUZnR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlZj10LHRoaXMuZGlhbG9nPWUsdGhpcy5EYXRhTG9hZFN0YXRlPXlFLHRoaXMuUmVuZGVyZXJUeXBlPUsyLHRoaXMuU2NhbGVUeXBlPUoyLHRoaXMub25GdWxsU2l6ZVRvZ2dsZT1uZXcgTGgsdGhpcy5vblBpbkNsaWNrZWQ9bmV3IExoLHRoaXMueVNjYWxlVHlwZT1KMi5MSU5FQVIsdGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuPSExLHRoaXMucmVsYXRpdmVYRm9ybWF0dGVyPVhvdCx0aGlzLnZhbHVlRm9ybWF0dGVyPUlvdCx0aGlzLnN0ZXBGb3JtYXR0ZXI9TG90fXRvZ2dsZVlTY2FsZVR5cGUoKXt0aGlzLnlTY2FsZVR5cGU9dGhpcy55U2NhbGVUeXBlPT09SjIuTElORUFSP0oyLkxPRzEwOkoyLkxJTkVBUn1yZXNldERvbWFpbigpe3RoaXMubGluZUNoYXJ0JiZ0aGlzLmxpbmVDaGFydC52aWV3Qm94UmVzZXQoKX10cmFja0J5VG9vbHRpcERhdHVtKHQsZSl7cmV0dXJuIGUuaWR9Z2V0Q3VzdG9tWEZvcm1hdHRlcigpe3N3aXRjaCh0aGlzLnhBeGlzVHlwZSl7Y2FzZSB5QS5SRUxBVElWRTpyZXR1cm4gWG90O2Nhc2UgeUEuU1RFUDpyZXR1cm4gVW90O2Nhc2UgeUEuV0FMTF9USU1FOmRlZmF1bHQ6cmV0dXJufX1nZXRDdXJzb3JBd2FyZVRvb2x0aXBEYXRhKHQsZSl7Y29uc3Qgbj10Lm1hcCgodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHttZXRhZGF0YTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5tZXRhZGF0YSkse2Nsb3Nlc3Q6ITEsZGlzdFNxVG9DdXJzb3I6TWF0aC5oeXBvdCh0LnBvaW50LngtZS54LHQucG9pbnQueS1lLnkpfSl9KSkpO2xldCBvPTEvMCxpPTA7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspbz5uW3RdLm1ldGFkYXRhLmRpc3RTcVRvQ3Vyc29yJiYobz1uW3RdLm1ldGFkYXRhLmRpc3RTcVRvQ3Vyc29yLGk9dCk7c3dpdGNoKG4ubGVuZ3RoJiYobltpXS5tZXRhZGF0YS5jbG9zZXN0PSEwKSx0aGlzLnRvb2x0aXBTb3J0KXtjYXNlIGJBLkRFRkFVTFQ6cmV0dXJuIG47Y2FzZSBiQS5BU0NFTkRJTkc6cmV0dXJuIG4uc29ydCgoKHQsZSk9PnQucG9pbnQueS1lLnBvaW50LnkpKTtjYXNlIGJBLkRFU0NFTkRJTkc6cmV0dXJuIG4uc29ydCgoKHQsZSk9PmUucG9pbnQueS10LnBvaW50LnkpKTtjYXNlIGJBLk5FQVJFU1Q6cmV0dXJuIG4uc29ydCgoKHQsZSk9PnQubWV0YWRhdGEuZGlzdFNxVG9DdXJzb3ItZS5tZXRhZGF0YS5kaXN0U3FUb0N1cnNvcikpfX1vcGVuRGF0YURvd25sb2FkRGlhbG9nKCl7dGhpcy5kaWFsb2cub3Blbih0aGlzLkRhdGFEb3dubG9hZENvbXBvbmVudCx7ZGF0YTp7Y2FyZElkOnRoaXMuY2FyZElkfX0pfX1UZnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRmdCkoU20oaGcpLFNtKG9XKSl9LFRmdC7JtWNtcD10byh7dHlwZTpUZnQsc2VsZWN0b3JzOltbInNjYWxhci1jYXJkLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoZmZ0LDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4ubGluZUNoYXJ0PXQuZmlyc3QpfX0saW5wdXRzOntjYXJkSWQ6ImNhcmRJZCIsY2hhcnRNZXRhZGF0YU1hcDoiY2hhcnRNZXRhZGF0YU1hcCIsRGF0YURvd25sb2FkQ29tcG9uZW50OiJEYXRhRG93bmxvYWRDb21wb25lbnQiLGRhdGFTZXJpZXM6ImRhdGFTZXJpZXMiLGlnbm9yZU91dGxpZXJzOiJpZ25vcmVPdXRsaWVycyIsaXNDYXJkVmlzaWJsZToiaXNDYXJkVmlzaWJsZSIsaXNQaW5uZWQ6ImlzUGlubmVkIixsb2FkU3RhdGU6ImxvYWRTdGF0ZSIsc2hvd0Z1bGxTaXplOiJzaG93RnVsbFNpemUiLHNtb290aGluZ0VuYWJsZWQ6InNtb290aGluZ0VuYWJsZWQiLHRhZzoidGFnIix0aXRsZToidGl0bGUiLHRvb2x0aXBTb3J0OiJ0b29sdGlwU29ydCIseEF4aXNUeXBlOiJ4QXhpc1R5cGUiLHhTY2FsZVR5cGU6InhTY2FsZVR5cGUiLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSIsc2VsZWN0ZWRUaW1lOiJzZWxlY3RlZFRpbWUifSxvdXRwdXRzOntvbkZ1bGxTaXplVG9nZ2xlOiJvbkZ1bGxTaXplVG9nZ2xlIixvblBpbkNsaWNrZWQ6Im9uUGluQ2xpY2tlZCJ9LGRlY2xzOjM0LHZhcnM6MjYsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZSxuLG8saTtyZXR1cm4gdD0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiRml0IGxpbmUgY2hhcnQgZG9tYWlucyB0byBkYXRhIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0aGF0IHJlc2V0cyBsaW5lIGNoYXJ0IGRvbWFpbiB0byB0aGUgZGF0YeKQn2U2OGE1NTI5NDFhYjQyN2E5OWU3NDM3ZTA4NDQzZjMwYWM3MWNjZDbikJ8zODMwNjQ2NTIxMDU4MjY4NTU4OkZpdCBsaW5lIGNoYXJ0IGRvbWFpbnMgdG8gZGF0YWAsZT0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiUGluIGNhcmQiKTokbG9jYWxpemVgOkEgYnV0dG9uIHRvIHBpbiBhIGNhcmQu4pCfZTY2NWRjNzEyYmQ1ZjE4ZDRkZmEzYTI5ZTEyNWQ1NjVjYzUxZTJmNuKQnzcyODQ2MDY0MjYyMzQzNzUzNDQ6UGluIGNhcmRgLG49InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIlRvZ2dsZSBmdWxsIHNpemUgbW9kZSIpOiRsb2NhbGl6ZWA6QSBidXR0b24gb24gbGluZSBjaGFydCB0aGF0IHRvZ2dsZXMgZnVsbCBzaXplIG1vZGUu4pCfZmM4Zjc2N2QwYjlmOTMwMTg3YTFiYWUzNDQ3N2FkMjg3MzZlY2UzM+KQnzkxNTcyMTU2MzYzODkyNjU5NzpUb2dnbGUgZnVsbCBzaXplIG1vZGVgLG89InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIk1vcmUgbGluZSBjaGFydCBvcHRpb25zIik6JGxvY2FsaXplYDpBbiBvdmVyZmxvdyBtZW51IGJ1dHRvbiB0aGF0IG9wZW5zIG1vcmUgbGluZSBjaGFydCBvcHRpb25z4pCfYjI2MGZhYjk0NmEzMDc3Y2UyMGZkMjhlMzM2OTc5ZjU4NjcyMGU4ZOKQnzg3ODA1Mzc0MDIxMDMzNjQzNTpNb3JlIGxpbmUgY2hhcnQgb3B0aW9uc2AsaT0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiVG9nZ2xlIFktYXhpcyBsb2cgc2NhbGUgb24gbGluZSBjaGFydCIpOiRsb2NhbGl6ZWA6QSBidXR0b24gdGhhdCB0b2dnbGVzIGxvZyBzY2FsZSBvbiB5LWF4aXMgb24gYSBsaW5lIGNoYXJ04pCfZmU5MWY5NmFiOWIzYmFjYTVhNDg5MTNmMmIwZmFlODQ0ODNkOTNlM+KQnzMzNzQ2NDU2MjA2Mzg4ODM5MjY6VG9nZ2xlIFktYXhpcyBsb2cgc2NhbGUgb24gbGluZSBjaGFydGAsW1sxLCJoZWFkaW5nIl0sWzEsIm5hbWUiXSxbMSwidGFnIiwzLCJ0aXRsZSIsInZhbHVlIl0sWzQsIm5nSWYiXSxbMSwiY29udHJvbHMiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywiZGlzYWJsZWQiLCJ0aXRsZSIsImNsaWNrIl0sWyJzdmdJY29uIiwic2V0dGluZ3Nfb3ZlcnNjYW5fMjRweCJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwxLCJwaW4tYnV0dG9uIiwzLCJjbGljayJdLFszLCJzdmdJY29uIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixuLCJ0aXRsZSIsIlRvZ2dsZSBmdWxsIHNpemUgbW9kZSIsMywiY2xpY2siXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLG8sInRpdGxlIiwiTW9yZSBsaW5lIGNoYXJ0IG9wdGlvbnMiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIl0sWyJzdmdJY29uIiwibW9yZV92ZXJ0XzI0cHgiXSxbIm1lbnUiLCJtYXRNZW51Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwiYXJpYS1sYWJlbCIsaSwzLCJjbGljayJdLFsic3ZnSWNvbiIsImxpbmVfd2VpZ2h0XzI0cHgiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJhcmlhLWxhYmVsIiwiT3BlbiBkaWFsb2cgdG8gZG93bmxvYWQgZGF0YSIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJnZXRfYXBwXzI0cHgiXSxbMSwiY2hhcnQtY29udGFpbmVyIl0sWyJkaWFtZXRlciIsIjE4Iiw0LCJuZ0lmIl0sWzMsImRpc2FibGVVcGRhdGUiLCJwcmVmZXJyZWRSZW5kZXJlclR5cGUiLCJzZXJpZXNEYXRhIiwic2VyaWVzTWV0YWRhdGFNYXAiLCJ4U2NhbGVUeXBlIiwieVNjYWxlVHlwZSIsImN1c3RvbVhGb3JtYXR0ZXIiLCJpZ25vcmVZT3V0bGllcnMiLCJ0b29sdGlwVGVtcGxhdGUiLCJ1c2VEYXJrTW9kZSIsImN1c3RvbVZpc1RlbXBsYXRlIiwiY3VzdG9tWEF4aXNUZW1wbGF0ZSIsIm9uVmlld0JveE92ZXJyaWRkZW4iXSxbInRvb2x0aXAiLCIiXSxbImxpbmVDaGFydEN1c3RvbVZpcyIsIiJdLFsibGluZUNoYXJ0Q3VzdG9tWEF4aXNWaXMiLCIiXSxbImRpYW1ldGVyIiwiMTgiXSxbMSwidG9vbHRpcCJdLFsxLCJjaXJjbGUtaGVhZGVyIl0sWzQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsxLCJ0b29sdGlwLXJvdyJdLFsxLCJ0b29sdGlwLXJvdy1jaXJjbGUiXSxbMywibmdDbGFzcyJdLFszLCJuZ0NsYXNzIiwibGVmdCIsNCwibmdJZiJdLFsxLCJsaW5rZWQtdGltZS1mb2ItY29udGFpbmVyIl0sWzEsInNlbGVjdGVkLXRpbWUtZm9iIiwzLCJzdGVwIl0sWyJjbGFzcyIsImxpbmtlZC10aW1lLWZvYi1jb250YWluZXIiLDMsInRyYW5zZm9ybSIsNCwibmdJZiJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFJtKDAsImRpdiIsMCksUm0oMSwic3BhbiIsMSksVG0oMiwidGItdHJ1bmNhdGVkLXBhdGgiLDIpLFFwKDMsYmZ0LDEsMCwidmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZCIsMyksQW0oKSxSbSg0LCJzcGFuIiw0KSxSbSg1LCJidXR0b24iLDUpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5yZXNldERvbWFpbigpfSkpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxUbSg4LCJtYXQtaWNvbiIsNiksQW0oKSxSbSg5LCJidXR0b24iLDcpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblBpbkNsaWNrZWQuZW1pdCghbi5pc1Bpbm5lZCl9KSksVG0oMTAsIm1hdC1pY29uIiw4KSxBbSgpLFJtKDExLCJidXR0b24iLDkpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkZ1bGxTaXplVG9nZ2xlLmVtaXQoKX0pKSxUbSgxMiwibWF0LWljb24iLDgpLEFtKCksUm0oMTMsImJ1dHRvbiIsMTApLFRtKDE0LCJtYXQtaWNvbiIsMTEpLEFtKCksUm0oMTUsIm1hdC1tZW51IixudWxsLDEyKSxSbSgxNywiYnV0dG9uIiwxMyksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnRvZ2dsZVlTY2FsZVR5cGUoKX0pKSxUbSgxOCwibWF0LWljb24iLDE0KSxSbSgxOSwic3BhbiIpLGt1KDIwLCJUb2dnbGUgWS1heGlzIGxvZyBzY2FsZSIpLEFtKCksQW0oKSxSbSgyMSwiYnV0dG9uIiwxNSksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9wZW5EYXRhRG93bmxvYWREaWFsb2coKX0pKSxUbSgyMiwibWF0LWljb24iLDE2KSxSbSgyMywic3BhbiIpLGt1KDI0LCJEb3dubG9hZCBkYXRhIiksQW0oKSxBbSgpLEFtKCksQW0oKSxBbSgpLFJtKDI1LCJkaXYiLDE3KSxRcCgyNix5ZnQsMSwwLCJtYXQtc3Bpbm5lciIsMTgpLFJtKDI3LCJsaW5lLWNoYXJ0IiwxOSksVm0oIm9uVmlld0JveE92ZXJyaWRkZW4iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmlzVmlld0JveE92ZXJyaWRkZW49ZX0pKSxBbSgpLFFwKDI4LHZmdCwxNywzLCJuZy10ZW1wbGF0ZSIsbnVsbCwyMCxpYiksQW0oKSxRcCgzMCxEZnQsMSwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwyMSxpYiksUXAoMzIsQWZ0LDEsMSwibmctdGVtcGxhdGUiLG51bGwsMjIsaWIpKSwyJmUpe2NvbnN0IHQ9JHAoMTYpLGU9JHAoMjkpLG89JHAoMzEpLGk9JHAoMzMpO3JjKDIpLEttKCJ0aXRsZSIsbi50YWcpLEttKCJ2YWx1ZSIsbi50aXRsZSkscmMoMSksRG0oIm5nSWYiLG4uc2VsZWN0ZWRUaW1lJiZuLnNlbGVjdGVkVGltZS5jbGlwcGVkKSxyYygyKSxEbSgiZGlzYWJsZWQiLCFuLmxpbmVDaGFydHx8IVRoKDYsMjIsbi5saW5lQ2hhcnQuZ2V0SXNWaWV3Qm94T3ZlcnJpZGRlbigpKSkoInRpdGxlIixuLmxpbmVDaGFydCYmVGgoNywyNCxuLmxpbmVDaGFydC5nZXRJc1ZpZXdCb3hPdmVycmlkZGVuKCkpPyJMaW5lIGNoYXJ0IGlzIGFscmVhZHkgZml0dGVkIHRvIGRhdGEuIFdoZW4gZGF0YSB1cGRhdGVzLCB0aGUgbGluZSBjaGFydCB3aWxsIGF1dG8gZml0IHRvIGl0cyBkb21haW4uIjoiRml0IGxpbmUgY2hhcnQgZG9tYWlucyB0byBkYXRhIikscmMoNCksanAoInRpdGxlIixuLmlzUGlubmVkPyJVbnBpbiBjYXJkIjoiUGluIGNhcmQiKSxyYygxKSxEbSgic3ZnSWNvbiIsbi5pc1Bpbm5lZD8ia2VlcF8yNHB4Ijoia2VlcF9vdXRsaW5lXzI0cHgiKSxyYygyKSxEbSgic3ZnSWNvbiIsbi5zaG93RnVsbFNpemU/ImZ1bGxzY3JlZW5fZXhpdF8yNHB4IjoiZnVsbHNjcmVlbl8yNHB4IikscmMoMSksRG0oIm1hdE1lbnVUcmlnZ2VyRm9yIix0KSxyYygxMyksRG0oIm5nSWYiLG4ubG9hZFN0YXRlPT09bi5EYXRhTG9hZFN0YXRlLkxPQURJTkcpLHJjKDEpLERtKCJkaXNhYmxlVXBkYXRlIiwhbi5pc0NhcmRWaXNpYmxlKSgicHJlZmVycmVkUmVuZGVyZXJUeXBlIixuLlJlbmRlcmVyVHlwZS5XRUJHTCkoInNlcmllc0RhdGEiLG4uZGF0YVNlcmllcykoInNlcmllc01ldGFkYXRhTWFwIixuLmNoYXJ0TWV0YWRhdGFNYXApKCJ4U2NhbGVUeXBlIixuLnhTY2FsZVR5cGUpKCJ5U2NhbGVUeXBlIixuLnlTY2FsZVR5cGUpKCJjdXN0b21YRm9ybWF0dGVyIixuLmdldEN1c3RvbVhGb3JtYXR0ZXIoKSkoImlnbm9yZVlPdXRsaWVycyIsbi5pZ25vcmVPdXRsaWVycykoInRvb2x0aXBUZW1wbGF0ZSIsZSkoInVzZURhcmtNb2RlIixuLnVzZURhcmtNb2RlKSgiY3VzdG9tVmlzVGVtcGxhdGUiLG8pKCJjdXN0b21YQXhpc1RlbXBsYXRlIixpKX19LGRpcmVjdGl2ZXM6W3oyLGRNLFhILERXLGVZLEtXLFdXLGZmdCxnZnQsbzEsbE0sYU0saGZ0XSxwaXBlczpbd00sUk1dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6YXV0bztwYWRkaW5nOjE2cHg7cGFkZGluZy10b3A6NHB4fS5oZWFkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxNHB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbi1ib3R0b206NHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5oZWFkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpncmlkO2dhcDo1cHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOmF1dG8gYXV0b30uaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV0gICB2aXMtc2VsZWN0ZWQtdGltZS1jbGlwcGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MS4yZW07bGluZS1oZWlnaHQ6MH0udGFnW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW59LnBpbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxOHB4fS5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleC1zaHJpbms6MDttYXJnaW4tcmlnaHQ6LTEycHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uY2hhcnQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjF9LmNoYXJ0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICBtYXQtc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTFweDt0b3A6MTFweH0uY2hhcnQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmUtY2hhcnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCV9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1zcGFjaW5nOjRweDtmb250LXNpemU6MTNweH0udG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpsZWZ0fS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLXJvd1tfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwfS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLXJvdy1jaXJjbGVbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2hlaWdodDoxMnB4O3dpZHRoOjEycHh9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtcm93LWNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0gPiBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMHB4O3dpZHRoOjEwcHh9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLmNsb3Nlc3RbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtcm93LWNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0gPiBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6I2ZmZjtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmfS5vdXQtb2Ytc2VsZWN0ZWQtdGltZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjAgZGFzaGVkIGN1cnJlbnRDb2xvcjtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZX0ub3V0LW9mLXNlbGVjdGVkLXRpbWUuc3RhcnRbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yaWdodC13aWR0aDoycHg7bWFyZ2luLWxlZnQ6LTFweH0ub3V0LW9mLXNlbGVjdGVkLXRpbWUuc3RhcnQucmFuZ2VbX25nY29udGVudC0lQ09NUCVde2xlZnQ6MH0ub3V0LW9mLXNlbGVjdGVkLXRpbWUuZW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdC13aWR0aDoycHg7bWFyZ2luLXJpZ2h0Oi0xcHg7cmlnaHQ6MH0ub3V0LW9mLXNlbGVjdGVkLXRpbWUucmFuZ2VbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm91dC1vZi1zZWxlY3RlZC10aW1lLnJhbmdlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm91dC1vZi1zZWxlY3RlZC10aW1lLnJhbmdlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjQpfS5saW5rZWQtdGltZS1mb2ItY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jaztsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9bGlua2VkLXRpbWUtZm9iW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVGZ0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InNjYWxhci1jYXJkLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6InNjYWxhcl9jYXJkX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyJzY2FsYXJfY2FyZF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpvV31dfSkse2NhcmRJZDpbe3R5cGU6eHl9XSxjaGFydE1ldGFkYXRhTWFwOlt7dHlwZTp4eX1dLERhdGFEb3dubG9hZENvbXBvbmVudDpbe3R5cGU6eHl9XSxkYXRhU2VyaWVzOlt7dHlwZTp4eX1dLGlnbm9yZU91dGxpZXJzOlt7dHlwZTp4eX1dLGlzQ2FyZFZpc2libGU6W3t0eXBlOnh5fV0saXNQaW5uZWQ6W3t0eXBlOnh5fV0sbG9hZFN0YXRlOlt7dHlwZTp4eX1dLHNob3dGdWxsU2l6ZTpbe3R5cGU6eHl9XSxzbW9vdGhpbmdFbmFibGVkOlt7dHlwZTp4eX1dLHRhZzpbe3R5cGU6eHl9XSx0aXRsZTpbe3R5cGU6eHl9XSx0b29sdGlwU29ydDpbe3R5cGU6eHl9XSx4QXhpc1R5cGU6W3t0eXBlOnh5fV0seFNjYWxlVHlwZTpbe3R5cGU6eHl9XSx1c2VEYXJrTW9kZTpbe3R5cGU6eHl9XSxzZWxlY3RlZFRpbWU6W3t0eXBlOnh5fV0sb25GdWxsU2l6ZVRvZ2dsZTpbe3R5cGU6T3l9XSxvblBpbkNsaWNrZWQ6W3t0eXBlOk95fV0sbGluZUNoYXJ0Olt7dHlwZTpaYSxhcmdzOltmZnRdfV19KTtjbGFzcyBOZnR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlZj10LHRoaXMuY2RrU2Nyb2xsYWJsZT1lLHRoaXMub25WaXNpYmlsaXR5Q2hhbmdlPW5ldyBMaCx0aGlzLm5nVW5zdWJzY3JpYmUkPW5ldyBJLHRoaXMub25FdmVudCQ9bmV3IEl9bmdPbkluaXQoKXtjb25zdCB0PW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigodD0+e3RoaXMub25FdmVudCQubmV4dCh0KX0pLHtyb290OnRoaXMuY2RrU2Nyb2xsYWJsZT90aGlzLmNka1Njcm9sbGFibGUuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQ6bnVsbCxyb290TWFyZ2luOnRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJNYXJnaW59KTt0Lm9ic2VydmUodGhpcy5yZWYubmF0aXZlRWxlbWVudCksdGhpcy5uZ1Vuc3Vic2NyaWJlJC5zdWJzY3JpYmUoKCgpPT57dC51bm9ic2VydmUodGhpcy5yZWYubmF0aXZlRWxlbWVudCl9KSksdGhpcy5vbkV2ZW50JC5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKHQ9Pntjb25zdCBlPXQuc2xpY2UoLTEpWzBdO3RoaXMub25WaXNpYmlsaXR5Q2hhbmdlLmVtaXQoe3Zpc2libGU6ZS5pc0ludGVyc2VjdGluZ30pfSkpfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlJC5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpfXdhaXRGb3JFdmVudEZvclRlc3RPbmx5KCl7cmV0dXJuIG5ldyBQcm9taXNlKCh0PT50aGlzLm9uRXZlbnQkLnBpcGUoYmUoMSkpLnN1YnNjcmliZSgoKCk9Pnt0KCl9KSkpKX19ZnVuY3Rpb24gemZ0KHQsZSl7cmV0dXJuIHQubGVuZ3RoPT09ZS5sZW5ndGgmJnQuZXZlcnkoKCh0LG4pPT57Y29uc3Qgbz1lW25dLGk9dC5wb2ludHMsYT1vLnBvaW50cztyZXR1cm4gdC5ydW5JZD09PW8ucnVuSWQmJmkubGVuZ3RoPT09YS5sZW5ndGgmJmkuZXZlcnkoKCh0LGUpPT57Y29uc3Qgbj1hW2VdO3JldHVybiB0Lng9PT1uLngmJnQueT09PW4ueX0pKX0pKX1OZnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE5mdCkoU20oaGcpLFNtKG1GLDgpKX0sTmZ0Lsm1ZGlyPWxvKHt0eXBlOk5mdCxzZWxlY3RvcnM6W1siIiwib2JzZXJ2ZUludGVyc2VjdGlvbiIsIiJdXSxpbnB1dHM6e2ludGVyc2VjdGlvbk9ic2VydmVyTWFyZ2luOiJpbnRlcnNlY3Rpb25PYnNlcnZlck1hcmdpbiJ9LG91dHB1dHM6e29uVmlzaWJpbGl0eUNoYW5nZToib25WaXNpYmlsaXR5Q2hhbmdlIn19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE5mdCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbb2JzZXJ2ZUludGVyc2VjdGlvbl0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOm1GLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19XX0pLHtpbnRlcnNlY3Rpb25PYnNlcnZlck1hcmdpbjpbe3R5cGU6eHl9XSxvblZpc2liaWxpdHlDaGFuZ2U6W3t0eXBlOk95fV19KTtjbGFzcyBJZnR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuRGF0YURvd25sb2FkQ29tcG9uZW50PWw1LHRoaXMuZnVsbFdpZHRoQ2hhbmdlZD1uZXcgTGgsdGhpcy5mdWxsSGVpZ2h0Q2hhbmdlZD1uZXcgTGgsdGhpcy5waW5TdGF0ZUNoYW5nZWQ9bmV3IExoLHRoaXMuaXNWaXNpYmxlPSExLHRoaXMudXNlRGFya01vZGUkPXRoaXMuc3RvcmUuc2VsZWN0KEpEKSx0aGlzLmlnbm9yZU91dGxpZXJzJD10aGlzLnN0b3JlLnNlbGVjdChBVCksdGhpcy50b29sdGlwU29ydCQ9dGhpcy5zdG9yZS5zZWxlY3QoUlQpLHRoaXMueEF4aXNUeXBlJD10aGlzLnN0b3JlLnNlbGVjdChUVCksdGhpcy54U2NhbGVUeXBlJD10aGlzLnN0b3JlLnNlbGVjdChUVCkucGlwZShJdCgodD0+e3N3aXRjaCh0KXtjYXNlIHlBLlNURVA6Y2FzZSB5QS5SRUxBVElWRTpyZXR1cm4gSjIuTElORUFSO2Nhc2UgeUEuV0FMTF9USU1FOnJldHVybiBKMi5USU1FO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHhBeGlzVHlwZSBmb3IgbGluZSBjaGFydC4gJHt0fWApfX0pKSksdGhpcy5zY2FsYXJTbW9vdGhpbmckPXRoaXMuc3RvcmUuc2VsZWN0KHpUKSx0aGlzLnNtb290aGluZ0VuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KHpUKS5waXBlKEl0KCh0PT50PjApKSksdGhpcy5zaG93RnVsbFNpemU9ITEsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBJfW9uVmlzaWJpbGl0eUNoYW5nZSh7dmlzaWJsZTp0fSl7dGhpcy5pc1Zpc2libGU9dH1pc1NjYWxhckNhcmRNZXRhZGF0YSh0KXtjb25zdHtwbHVnaW46ZX09dDtyZXR1cm4gZT09PWhBLlNDQUxBUlN9b25GdWxsU2l6ZVRvZ2dsZSgpe3RoaXMuc2hvd0Z1bGxTaXplPSF0aGlzLnNob3dGdWxsU2l6ZSx0aGlzLmZ1bGxXaWR0aENoYW5nZWQuZW1pdCh0aGlzLnNob3dGdWxsU2l6ZSksdGhpcy5mdWxsSGVpZ2h0Q2hhbmdlZC5lbWl0KHRoaXMuc2hvd0Z1bGxTaXplKX1uZ09uSW5pdCgpe2NvbnN0IHQ9dGhpcy5zdG9yZS5zZWxlY3QoeVQsdGhpcy5jYXJkSWQpLnBpcGUoY2UoKHQ9PiEhdCYmdGhpcy5pc1NjYWxhckNhcmRNZXRhZGF0YSh0KSkpLEl0KCh0PT50KSkpO2Z1bmN0aW9uIGUodCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFsic21vb3RoZWQiLHRdKX1jb25zdCBuPXRoaXMuc3RvcmUuc2VsZWN0KGhULHRoaXMuY2FyZElkKS5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSksY2UoKHQ9PkJvb2xlYW4odCkpKSxJdCgodD0+dCkpLEFlKDEpKS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KFRUKSksSXQoKChbdCxlXSk9Pk9iamVjdC5rZXlzKHQpLm1hcCgobj0+KHtydW5JZDpuLHBvaW50czp0aGlzLnN0ZXBTZXJpZXNUb0xpbmVTZXJpZXModFtuXSxlKX0pKSkpKSxNZSh6ZnQpKS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KElUKSksSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSxJdCgoKFt0LGVdKT0+ZT8oZnVuY3Rpb24gbih0KXt2YXIgZTtjb25zdCBuPVtdO2Zvcihjb25zdCBvIG9mIHQpe2NvbnN0IHQ9W107bGV0IGk9TnVtYmVyLmlzRmluaXRlKG51bGw9PT0oZT1vLnBvaW50c1swXSl8fHZvaWQgMD09PWU/dm9pZCAwOmUueCk/by5wb2ludHNbMF0ueDotMS8wLGE9W107Zm9yKGNvbnN0IGUgb2Ygby5wb2ludHMpTnVtYmVyLmlzRmluaXRlKGUueCk/KGUueDxpJiYodC5wdXNoKHtzZXJpZXNJZDpKU09OLnN0cmluZ2lmeShbby5ydW5JZCx0Lmxlbmd0aF0pLHJ1bklkOm8ucnVuSWQscG9pbnRzOmF9KSxhPVtdKSxhLnB1c2goZSksaT1lLngpOmEucHVzaChlKTt0LnB1c2goe3Nlcmllc0lkOkpTT04uc3RyaW5naWZ5KFtvLnJ1bklkLHQubGVuZ3RoXSkscnVuSWQ6by5ydW5JZCxwb2ludHM6YX0pO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKW4ucHVzaChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdFtlXSkse3BhcnRpdGlvbkluZGV4OmUscGFydGl0aW9uU2l6ZTp0Lmxlbmd0aH0pKX1yZXR1cm4gbn0pKHQpOnQubWFwKCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3Nlcmllc0lkOnQucnVuSWQscGFydGl0aW9uSW5kZXg6MCxwYXJ0aXRpb25TaXplOjF9KSkpKSksSXQoKHQ9PnQubWFwKCh0PT57dmFyIGU7Y29uc3Qgbj1udWxsPT09KGU9dC5wb2ludHNbMF0pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLndhbGxUaW1lO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BvaW50czp0LnBvaW50cy5tYXAoKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cmVsYXRpdmVUaW1lSW5Nczp0LndhbGxUaW1lLW59KSkpfSl9KSkpKSxmZSh0aGlzLnN0b3JlLnNlbGVjdChUVCkpLEl0KCgoW3QsZV0pPT50Lm1hcCgodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwb2ludHM6dC5wb2ludHMubWFwKCh0PT57bGV0IG47c3dpdGNoKGUpe2Nhc2UgeUEuUkVMQVRJVkU6bj10LnJlbGF0aXZlVGltZUluTXM7YnJlYWs7Y2FzZSB5QS5XQUxMX1RJTUU6bj10LndhbGxUaW1lO2JyZWFrO2Nhc2UgeUEuU1RFUDpkZWZhdWx0Om49dC5zdGVwfXJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3g6bn0pfSkpfSkpKSkpLEFlKDEpKTt0aGlzLmRhdGFTZXJpZXMkPW4ucGlwZShmZSh0aGlzLnN0b3JlLnNlbGVjdCh6VCkpLHplKCgoW3Qsbl0pPT57Y29uc3Qgbz10Lm1hcCgoKHtzZXJpZXNJZDp0LHBvaW50czplfSk9Pih7aWQ6dCxwb2ludHM6ZX0pKSk7cmV0dXJuIG48PTA/RXQobyk6Q3QoKGZ1bmN0aW9uIGkodCxlKXt2YXIgbjtyZXR1cm4gZ0EodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtOdW1iZXIuaXNGaW5pdGUoZSl8fChlPTApLGU9TWF0aC5tYXgoMCxNYXRoLm1pbihlLDEpKTtjb25zdCBvPVtdO2Zvcihjb25zdCBpIG9mIHQpe2NvbnN0IHQ9bnVsbD09PShuPWkucG9pbnRzWzBdKXx8dm9pZCAwPT09bj92b2lkIDA6bi55O2lmKGkucG9pbnRzLmV2ZXJ5KChlPT5lLnk9PXQpKSl7by5wdXNoKGkpO2NvbnRpbnVlfWxldCBhPWkucG9pbnRzLmxlbmd0aD4wPzA6TmFOLHI9MDtjb25zdCBzPWkucG9pbnRzLm1hcCgodD0+e2NvbnN0IG49dC55O2lmKE51bWJlci5pc0Zpbml0ZShuKSl7YT1hKmUrKDEtZSkqbixyKys7Y29uc3Qgbz0xPT09ZT8xOjEtTWF0aC5wb3coZSxyKTtyZXR1cm57eDp0LngseTphL299fXJldHVybnt4OnQueCx5Om59fSkpO28ucHVzaCh7aWQ6aS5pZCxwb2ludHM6c30pfXJldHVybiBvfSkpfSkobyxuKSkucGlwZShJdCgodD0+e2NvbnN0IG49by5tYXAoKChuLG8pPT4oe2lkOmUobi5pZCkscG9pbnRzOnRbb10ucG9pbnRzLm1hcCgoKHt5OnR9LGUpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbi5wb2ludHNbZV0pLHt5OnR9KSkpfSkpKTtyZXR1cm5bLi4ubywuLi5uXX0pKSl9KSksTmUoW10pKSx0aGlzLnNlbGVjdGVkVGltZSQ9V3QoW24sdGhpcy5zdG9yZS5zZWxlY3QoWVQpLHRoaXMuc3RvcmUuc2VsZWN0KFRUKV0pLnBpcGUoSXQoKChbdCxlLG5dKT0+e2lmKG4hPT15QS5TVEVQfHwhZSlyZXR1cm4gbnVsbDtsZXQgbz0xLzAsaT0tMS8wO2Zvcihjb25zdHtwb2ludHM6ZX1vZiB0KWZvcihjb25zdCB0IG9mIGUpbz1vPnQueD90Lng6byxpPWk8dC54P3QueDppO3JldHVybiBIMihlLG8saSl9KSkpLHRoaXMuY2hhcnRNZXRhZGF0YU1hcCQ9bi5waXBlKHplKCh0PT5XdCh0Lm1hcCgodD0+dGhpcy5nZXRSdW5EaXNwbGF5TmFtZSh0LnJ1bklkKS5waXBlKEl0KChlPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2Rpc3BsYXlOYW1lOmV9KSkpKSkpKSkpLGZlKHRoaXMuc3RvcmUuc2VsZWN0KE5OKSx0aGlzLnN0b3JlLnNlbGVjdCh6TiksdGhpcy5zdG9yZS5zZWxlY3QoelQpKSxnZSgwKSxJdCgoKFt0LG4sbyxpXSk9Pnt2YXIgYTtjb25zdCByPXt9LHM9aT4wO2Zvcihjb25zdCBlIG9mIHQpe2NvbnN0e3Nlcmllc0lkOnQscnVuSWQ6aSxkaXNwbGF5TmFtZTpzLHBhcnRpdGlvbkluZGV4OmwscGFydGl0aW9uU2l6ZTpjfT1lO3JbdF09e3R5cGU6UTIuT1JJR0lOQUwsaWQ6dCxkaXNwbGF5TmFtZTpjPjE/YCR7c306ICR7bH1gOnMsdmlzaWJsZTpCb29sZWFuKG4mJm4uZ2V0KGkpKSxjb2xvcjpudWxsIT09KGE9b1tpXSkmJnZvaWQgMCE9PWE/YToiI2ZmZiIsYXV4OiExLG9wYWNpdHk6MX19aWYoIXMpcmV0dXJuIHI7Zm9yKGNvbnN0W3Qsbl1vZiBPYmplY3QuZW50cmllcyhyKSl7Y29uc3Qgbz1lKHQpO3Jbb109T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDpvLHR5cGU6UTIuREVSSVZFRCxhdXg6ITEsb3JpZ2luYWxTZXJpZXNJZDp0fSksbi5hdXg9ITAsbi5vcGFjaXR5PS4yNX1yZXR1cm4gcn0pKSxOZSh7fSkpLHRoaXMubG9hZFN0YXRlJD10aGlzLnN0b3JlLnNlbGVjdChnVCx0aGlzLmNhcmRJZCksdGhpcy50YWckPXQucGlwZShJdCgodD0+dC50YWcpKSksdGhpcy50aXRsZSQ9dGhpcy50YWckLnBpcGUoSXQoKHQ9PmYyKHQsdGhpcy5ncm91cE5hbWUpKSkpLHRoaXMuaXNQaW5uZWQkPXRoaXMuc3RvcmUuc2VsZWN0KHdULHRoaXMuY2FyZElkKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9Z2V0UnVuRGlzcGxheU5hbWUodCl7cmV0dXJuIFd0KFt0aGlzLnN0b3JlLnNlbGVjdChyTix7cnVuSWQ6dH0pLHRoaXMuc3RvcmUuc2VsZWN0KHpTKSx0aGlzLnN0b3JlLnNlbGVjdChzTix7cnVuSWQ6dH0pXSkucGlwZShJdCgoKFtlLG4sb10pPT5JMih0LG8sZT9uW2VdOm51bGwpKSkpfXN0ZXBTZXJpZXNUb0xpbmVTZXJpZXModCxlKXtjb25zdCBuPWU9PT15QS5TVEVQO3JldHVybiB0Lm1hcCgodD0+e2NvbnN0IGU9MWUzKnQud2FsbFRpbWU7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7eDpuP3Quc3RlcDplLHk6dC52YWx1ZSx3YWxsVGltZTplLHJlbGF0aXZlVGltZUluTXM6MH0pfSkpfX1mdW5jdGlvbiBIZnQodCxlLG4pe2NvbnN0IG89W10se2xlZnQ6aSxyaWdodDphfT1lLHI9KGEtaSkvbjtsZXQgcz0wLGw9MDtmb3IobGV0IGU9MDtlPG47ZSsrKXtjb25zdCBhPWkrZSpyLGM9YStyLGQ9ZT09PW4tMTtsZXQgcD1sO2ZvcihsPTA7czx0Lmxlbmd0aDspe2NvbnN0IGU9dFtzXSxuPUZmdChlLGEsYywhZCk7aWYocCs9bi5jdXJyLGwrPW4ubmV4dCxlLngrZS5keD5jKWJyZWFrO3MrK31vLnB1c2goe3g6YSxkeDpyLHk6cH0pfXJldHVybiBvfWZ1bmN0aW9uIEZmdCh0LGUsbixvKXtjb25zdCBpPXQueCxhPXQueCt0LmR4O2lmKGk+bnx8YTxlKXJldHVybntjdXJyOjAsbmV4dDowfTtpZigwPT09dC5keClyZXR1cm4gbyYmYT09PW4/e2N1cnI6LjUqdC55LG5leHQ6LjUqdC55fTp7Y3Vycjp0LnksbmV4dDowfTtjb25zdCByPU1hdGgubWluKGEsbiktTWF0aC5tYXgoaSxlKTtyZXR1cm57Y3Vycjp0Lnkqci90LmR4LG5leHQ6MH19SWZ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJZnQpKFNtKEl3KSl9LElmdC7JtWNtcD10byh7dHlwZTpJZnQsc2VsZWN0b3JzOltbInNjYWxhci1jYXJkIl1dLGlucHV0czp7RGF0YURvd25sb2FkQ29tcG9uZW50OiJEYXRhRG93bmxvYWRDb21wb25lbnQiLGNhcmRJZDoiY2FyZElkIixncm91cE5hbWU6Imdyb3VwTmFtZSJ9LG91dHB1dHM6e2Z1bGxXaWR0aENoYW5nZWQ6ImZ1bGxXaWR0aENoYW5nZWQiLGZ1bGxIZWlnaHRDaGFuZ2VkOiJmdWxsSGVpZ2h0Q2hhbmdlZCIscGluU3RhdGVDaGFuZ2VkOiJwaW5TdGF0ZUNoYW5nZWQifSxkZWNsczoxNCx2YXJzOjQzLGNvbnN0czpbWyJvYnNlcnZlSW50ZXJzZWN0aW9uIiwiIiwzLCJjYXJkSWQiLCJjaGFydE1ldGFkYXRhTWFwIiwiRGF0YURvd25sb2FkQ29tcG9uZW50IiwiZGF0YVNlcmllcyIsImlnbm9yZU91dGxpZXJzIiwiaXNDYXJkVmlzaWJsZSIsImlzUGlubmVkIiwibG9hZFN0YXRlIiwic2hvd0Z1bGxTaXplIiwic21vb3RoaW5nRW5hYmxlZCIsInRhZyIsInRpdGxlIiwidG9vbHRpcFNvcnQiLCJ4QXhpc1R5cGUiLCJ4U2NhbGVUeXBlIiwidXNlRGFya01vZGUiLCJzZWxlY3RlZFRpbWUiLCJvbkZ1bGxTaXplVG9nZ2xlIiwib25QaW5DbGlja2VkIiwib25WaXNpYmlsaXR5Q2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJzY2FsYXItY2FyZC1jb21wb25lbnQiLDApLFZtKCJvbkZ1bGxTaXplVG9nZ2xlIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRnVsbFNpemVUb2dnbGUoKX0pKSgib25QaW5DbGlja2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5waW5TdGF0ZUNoYW5nZWQuZW1pdChlKX0pKSgib25WaXNpYmlsaXR5Q2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblZpc2liaWxpdHlDaGFuZ2UoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxBaCg4LCJhc3luYyIpLEFoKDksImFzeW5jIiksQWgoMTAsImFzeW5jIiksQWgoMTEsImFzeW5jIiksQWgoMTIsImFzeW5jIiksQWgoMTMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgiY2FyZElkIixuLmNhcmRJZCkoImNoYXJ0TWV0YWRhdGFNYXAiLFRoKDEsMTcsbi5jaGFydE1ldGFkYXRhTWFwJCkpKCJEYXRhRG93bmxvYWRDb21wb25lbnQiLG4uRGF0YURvd25sb2FkQ29tcG9uZW50KSgiZGF0YVNlcmllcyIsVGgoMiwxOSxuLmRhdGFTZXJpZXMkKSkoImlnbm9yZU91dGxpZXJzIixUaCgzLDIxLG4uaWdub3JlT3V0bGllcnMkKSkoImlzQ2FyZFZpc2libGUiLG4uaXNWaXNpYmxlKSgiaXNQaW5uZWQiLFRoKDQsMjMsbi5pc1Bpbm5lZCQpKSgibG9hZFN0YXRlIixUaCg1LDI1LG4ubG9hZFN0YXRlJCkpKCJzaG93RnVsbFNpemUiLG4uc2hvd0Z1bGxTaXplKSgic21vb3RoaW5nRW5hYmxlZCIsVGgoNiwyNyxuLnNtb290aGluZ0VuYWJsZWQkKSkoInRhZyIsVGgoNywyOSxuLnRhZyQpKSgidGl0bGUiLFRoKDgsMzEsbi50aXRsZSQpKSgidG9vbHRpcFNvcnQiLFRoKDksMzMsbi50b29sdGlwU29ydCQpKSgieEF4aXNUeXBlIixUaCgxMCwzNSxuLnhBeGlzVHlwZSQpKSgieFNjYWxlVHlwZSIsVGgoMTEsMzcsbi54U2NhbGVUeXBlJCkpKCJ1c2VEYXJrTW9kZSIsVGgoMTIsMzksbi51c2VEYXJrTW9kZSQpKSgic2VsZWN0ZWRUaW1lIixUaCgxMyw0MSxuLnNlbGVjdGVkVGltZSQpKX0sZGlyZWN0aXZlczpbVGZ0LE5mdF0scGlwZXM6W3dNXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSWZ0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InNjYWxhci1jYXJkIix0ZW1wbGF0ZTonXG4gICAgPHNjYWxhci1jYXJkLWNvbXBvbmVudFxuICAgICAgW2NhcmRJZF09ImNhcmRJZCJcbiAgICAgIFtjaGFydE1ldGFkYXRhTWFwXT0iY2hhcnRNZXRhZGF0YU1hcCQgfCBhc3luYyJcbiAgICAgIFtEYXRhRG93bmxvYWRDb21wb25lbnRdPSJEYXRhRG93bmxvYWRDb21wb25lbnQiXG4gICAgICBbZGF0YVNlcmllc109ImRhdGFTZXJpZXMkIHwgYXN5bmMiXG4gICAgICBbaWdub3JlT3V0bGllcnNdPSJpZ25vcmVPdXRsaWVycyQgfCBhc3luYyJcbiAgICAgIFtpc0NhcmRWaXNpYmxlXT0iaXNWaXNpYmxlIlxuICAgICAgW2lzUGlubmVkXT0iaXNQaW5uZWQkIHwgYXN5bmMiXG4gICAgICBbbG9hZFN0YXRlXT0ibG9hZFN0YXRlJCB8IGFzeW5jIlxuICAgICAgW3Nob3dGdWxsU2l6ZV09InNob3dGdWxsU2l6ZSJcbiAgICAgIFtzbW9vdGhpbmdFbmFibGVkXT0ic21vb3RoaW5nRW5hYmxlZCQgfCBhc3luYyJcbiAgICAgIFt0YWddPSJ0YWckIHwgYXN5bmMiXG4gICAgICBbdGl0bGVdPSJ0aXRsZSQgfCBhc3luYyJcbiAgICAgIFt0b29sdGlwU29ydF09InRvb2x0aXBTb3J0JCB8IGFzeW5jIlxuICAgICAgW3hBeGlzVHlwZV09InhBeGlzVHlwZSQgfCBhc3luYyJcbiAgICAgIFt4U2NhbGVUeXBlXT0ieFNjYWxlVHlwZSQgfCBhc3luYyJcbiAgICAgIFt1c2VEYXJrTW9kZV09InVzZURhcmtNb2RlJCB8IGFzeW5jIlxuICAgICAgW3NlbGVjdGVkVGltZV09InNlbGVjdGVkVGltZSQgfCBhc3luYyJcbiAgICAgIChvbkZ1bGxTaXplVG9nZ2xlKT0ib25GdWxsU2l6ZVRvZ2dsZSgpIlxuICAgICAgKG9uUGluQ2xpY2tlZCk9InBpblN0YXRlQ2hhbmdlZC5lbWl0KCRldmVudCkiXG4gICAgICBvYnNlcnZlSW50ZXJzZWN0aW9uXG4gICAgICAob25WaXNpYmlsaXR5Q2hhbmdlKT0ib25WaXNpYmlsaXR5Q2hhbmdlKCRldmVudCkiXG4gICAgPjwvc2NhbGFyLWNhcmQtY29tcG9uZW50PlxuICAnLHN0eWxlczpbIlxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSkse0RhdGFEb3dubG9hZENvbXBvbmVudDpbe3R5cGU6eHl9XSxjYXJkSWQ6W3t0eXBlOnh5fV0sZ3JvdXBOYW1lOlt7dHlwZTp4eX1dLGZ1bGxXaWR0aENoYW5nZWQ6W3t0eXBlOk95fV0sZnVsbEhlaWdodENoYW5nZWQ6W3t0eXBlOk95fV0scGluU3RhdGVDaGFuZ2VkOlt7dHlwZTpPeX1dfSk7Y29uc3QgTGZ0PVsibWFpbiJdLEJmdD1bInhBeGlzIl0sVmZ0PVsieUF4aXMiXSxqZnQ9WyJjb250ZW50Il0sVWZ0PVsiaGlzdG9ncmFtcyJdO2Z1bmN0aW9uIEdmdCh0LGUpe2lmKDEmdCYmKHFpKCksUm0oMCwiZyIpLFJtKDEsInRleHQiKSxrdSgyKSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO2R1KCJ0cmFuc2Zvcm0iLHQuZ2V0Q3NzVHJhbnNsYXRlUHgodC50b29sdGlwRGF0YS54QXhpcy5wb3NpdGlvbiw5KSkscmMoMiksU3UodC50b29sdGlwRGF0YS54QXhpcy5sYWJlbCl9fWZ1bmN0aW9uIFdmdCh0LGUpe2lmKDEmdCYmKHFpKCksUm0oMCwiZyIpLFJtKDEsInRleHQiKSxrdSgyKSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO2R1KCJ0cmFuc2Zvcm0iLHQuZ2V0R3JvdXBUcmFuc2Zvcm0odC50b29sdGlwRGF0YS5jbG9zZXN0RGF0dW0pKSxyYygxKSxqcCgieSIsdC50b29sdGlwRGF0YS55QXhpcy5wb3NpdGlvbikscmMoMSksRHUoIiAiLHQudG9vbHRpcERhdGEueUF4aXMubGFiZWwsIiAiKX19ZnVuY3Rpb24gWWZ0KHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwxNiksVG0oMSwibGlua2VkLXRpbWUtZm9iIiwxNyksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO2R1KCJ0cmFuc2Zvcm0iLHQuZ2V0Q3NzVHJhbnNsYXRlUHgoMCx0LnNjYWxlcy50ZW1wb3JhbFNjYWxlKHQubGlua2VkVGltZS5lbmRTdGVwKSkpLHJjKDEpLERtKCJzdGVwIix0LmxpbmtlZFRpbWUuZW5kU3RlcCl9fWZ1bmN0aW9uIHFmdCh0LGUpe2lmKDEmdCYmKHFpKCksWmkoKSxObSgwKSxSbSgxLCJkaXYiLDE2KSxUbSgyLCJsaW5rZWQtdGltZS1mb2IiLDE3KSxBbSgpLFFwKDMsWWZ0LDIsMywiZGl2IiwxOCksem0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksZHUoInRyYW5zZm9ybSIsdC5nZXRDc3NUcmFuc2xhdGVQeCgwLHQuc2NhbGVzLnRlbXBvcmFsU2NhbGUodC5saW5rZWRUaW1lLnN0YXJ0U3RlcCkpKSxyYygxKSxEbSgic3RlcCIsdC5saW5rZWRUaW1lLnN0YXJ0U3RlcCkscmMoMSksRG0oIm5nSWYiLHQubGlua2VkVGltZS5lbmRTdGVwKX19ZnVuY3Rpb24gWmZ0KHQsZSl7aWYoMSZ0JiYocWkoKSxSbSgwLCJnIiksVG0oMSwibGluZSIsMTkpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtkdSgidHJhbnNmb3JtIixZbSgpLmdldENzc1RyYW5zbGF0ZVB4KDAsdCkpfX1mdW5jdGlvbiBYZnQodCxlKXsxJnQmJihxaSgpLFRtKDAsImxpbmUiLDIyKSl9ZnVuY3Rpb24gS2Z0KHQsZSl7aWYoMSZ0JiYocWkoKSxUbSgwLCJjaXJjbGUiLDIzKSksMiZ0KXtjb25zdCB0PVltKCkuJGltcGxpY2l0LGU9WW0oKTtkdSgidHJhbnNmb3JtIixlLmdldENzc1RyYW5zbGF0ZVB4KGUuZ2V0VWlDb29yZEZyb21CaW5Gb3JDb250ZW50KGUuZ2V0Q2xvc2VzdEJpbkZyb21CaW5Db29yZGluYXRlKHQsZS50b29sdGlwRGF0YS54UG9zaXRpb25JbkJpbkNvb3JkKSkueCxlLmdldFVpQ29vcmRGcm9tQmluRm9yQ29udGVudChlLmdldENsb3Nlc3RCaW5Gcm9tQmluQ29vcmRpbmF0ZSh0LGUudG9vbHRpcERhdGEueFBvc2l0aW9uSW5CaW5Db29yZCkpLnkpKX19ZnVuY3Rpb24gSmZ0KHQsZSl7aWYoMSZ0JiYocWkoKSxSbSgwLCJnIiksUXAoMSxYZnQsMSwwLCJsaW5lIiwyMCksVG0oMiwicGF0aCIpLFFwKDMsS2Z0LDEsMiwiY2lyY2xlIiwyMSksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oKTtkdSgidHJhbnNmb3JtIixuLmdldEdyb3VwVHJhbnNmb3JtKHQpKSgiY29sb3IiLG4uZ2V0SGlzdG9ncmFtRmlsbCh0KSkscHUoImhpc3RvZ3JhbSIsITApKCJuby1jb2xvciIsIW4uaXNEYXR1bUluTGlua2VkVGltZVJhbmdlKHQpKSxyYygxKSxEbSgibmdJZiIsbi5tb2RlPT09bi5IaXN0b2dyYW1Nb2RlLk9GRlNFVCkscmMoMSksanAoImQiLG4uZ2V0SGlzdG9ncmFtUGF0aCh0KSkscmMoMSksRG0oIm5nSWYiLG4udG9vbHRpcERhdGEpfX1mdW5jdGlvbiBRZnQodCxlKXtpZigxJnQmJihxaSgpLFRtKDAsImNpcmNsZSIsMjMpKSwyJnQpe2NvbnN0IHQ9WW0oMik7anAoImN4Iix0LmdldFVpQ29vcmRGcm9tQmluRm9yQ29udGVudCh0LnRvb2x0aXBEYXRhLmNsb3Nlc3RCaW4pLngpKCJjeSIsdC5nZXRVaUNvb3JkRnJvbUJpbkZvckNvbnRlbnQodC50b29sdGlwRGF0YS5jbG9zZXN0QmluKS55KX19ZnVuY3Rpb24gJGZ0KHQsZSl7aWYoMSZ0JiYocWkoKSxSbSgwLCJnIiw0KSxSbSgxLCJnIiksVG0oMiwicGF0aCIpLFFwKDMsUWZ0LDEsMiwiY2lyY2xlIiwyNCksQW0oKSxSbSg0LCJnIiwyNSksUm0oNSwidGV4dCIsMjYpLGt1KDYpLEFtKCksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxkdSgidHJhbnNmb3JtIix0LmdldEdyb3VwVHJhbnNmb3JtKHQudG9vbHRpcERhdGEuY2xvc2VzdERhdHVtKSkscmMoMSksanAoImQiLHQuZ2V0SGlzdG9ncmFtUGF0aCh0LnRvb2x0aXBEYXRhLmNsb3Nlc3REYXR1bSkpLHJjKDEpLERtKCJuZ0lmIix0LnRvb2x0aXBEYXRhLmNsb3Nlc3RCaW4pLHJjKDEpLGR1KCJ0cmFuc2Zvcm0iLHQuZ2V0Q3NzVHJhbnNsYXRlUHgodC50b29sdGlwRGF0YS52YWx1ZS5wb3NpdGlvbi54LHQudG9vbHRpcERhdGEudmFsdWUucG9zaXRpb24ueSkpLHJjKDIpLFN1KHQudG9vbHRpcERhdGEudmFsdWUubGFiZWwpfX1jbGFzcyB0Z3R7Y29uc3RydWN0b3IodCl7dGhpcy5jaGFuZ2VEZXRlY3Rvcj10LHRoaXMubW9kZT1wRS5PRkZTRVQsdGhpcy50aW1lUHJvcGVydHk9ZEUuU1RFUCx0aGlzLmxpbmtlZFRpbWU9bnVsbCx0aGlzLkhpc3RvZ3JhbU1vZGU9cEUsdGhpcy5UaW1lUHJvcGVydHk9ZEUsdGhpcy50b29sdGlwRGF0YT1udWxsLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgSSx0aGlzLmxheW91dD17aGlzdG9ncmFtSGVpZ2h0OjAsY29udGVudENsaWVudFJlY3Q6e2hlaWdodDowLHdpZHRoOjB9fSx0aGlzLnNjYWxlcz1udWxsLHRoaXMuZm9ybWF0dGVycz17YmluTnVtYmVyOkV0dCgiLjN+cyIpLGNvdW50OkV0dCgiLjNuIiksd2FsbFRpbWU6V2V0KCIlbS8lZCAlWCIpLHN0ZXA6RXR0KCIuMGYiKSxyZWxhdGl2ZTp0PT5FdHQoIi4xciIpKHQvMzZlNSkrImgifSx0aGlzLmRvbVZpc2libGU9ITF9bmdPbkNoYW5nZXMoKXt0aGlzLnVwZGF0ZUNoYXJ0SWZWaXNpYmxlKCl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfW5nQWZ0ZXJWaWV3SW5pdCgpe29lKHRoaXMubWFpbi5uYXRpdmVFbGVtZW50LCJtb3VzZW1vdmUiLHtwYXNzaXZlOiEwfSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHQ9PnRoaXMub25Nb3VzZU1vdmUodCkpKX1nZXRDc3NUcmFuc2xhdGVQeCh0LGUpe3JldHVybmB0cmFuc2xhdGUoJHt0fXB4LCAke2V9cHgpYH1nZXRDbG9zZXN0QmluRnJvbUJpbkNvb3JkaW5hdGUodCxlKXtpZighdC5iaW5zLmxlbmd0aClyZXR1cm57eDowLGR4OjAseTowfTtjb25zdCBuPXQuYmluc1swXSxvPXQuYmlucy5zbGljZSgtMSlbMF07cmV0dXJuIGU8bi54P246ZT49by54K28uZHg/bzp0LmJpbnMuZmluZCgodD0+dC54PD1lJiZlPHQueCt0LmR4KSl9Z2V0VWlDb29yZEZyb21CaW5Gb3JDb250ZW50KHQpe3JldHVybiB0aGlzLnNjYWxlcz97eDp0aGlzLnNjYWxlcy5iaW5TY2FsZShvZ3QodCkpLHk6dGhpcy5zY2FsZXMuY291bnRTY2FsZSh0LnkpfTp7eDowLHk6MH19Z2V0SGlzdG9ncmFtUGF0aCh0KXtpZighdGhpcy5zY2FsZXN8fCF0LmJpbnMubGVuZ3RoKXJldHVybiIiO2NvbnN0IGU9dGhpcy5zY2FsZXMuYmluU2NhbGUsbj10aGlzLnNjYWxlcy5jb3VudFNjYWxlLG89dC5iaW5zWzBdLGk9dC5iaW5zLnNsaWNlKC0xKVswXSxhPVtgTSR7ZShvZ3QobykpfSwke24oMCl9YF07Zm9yKGNvbnN0IG8gb2YgdC5iaW5zKWEucHVzaChgTCR7ZShvZ3QobykpfSwke24oby55KX1gKTtyZXR1cm4gYS5wdXNoKGBMJHtlKG9ndChpKSl9LCR7bigwKX1gKSxhLmpvaW4oIiIpfXRyYWNrQnlXYWxsVGltZSh0KXtyZXR1cm4gdC53YWxsVGltZX1nZXRHcm91cFRyYW5zZm9ybSh0KXtyZXR1cm4gdGhpcy5zY2FsZXMmJnRoaXMubW9kZSE9PXBFLk9WRVJMQVk/dGhpcy5nZXRDc3NUcmFuc2xhdGVQeCgwLHRoaXMuc2NhbGVzLnRlbXBvcmFsU2NhbGUodGhpcy5nZXRUaW1lVmFsdWUodCkpKToiIn1pc0xpbmtlZFRpbWVFbmFibGVkKHQpe3JldHVybiBCb29sZWFuKHRoaXMubW9kZT09PXBFLk9GRlNFVCYmdGhpcy50aW1lUHJvcGVydHk9PT1kRS5TVEVQJiZ0aGlzLnNjYWxlcyYmdCl9aXNEYXR1bUluTGlua2VkVGltZVJhbmdlKHQpe3JldHVybiF0aGlzLmlzTGlua2VkVGltZUVuYWJsZWQodGhpcy5saW5rZWRUaW1lKXx8KG51bGw9PT10aGlzLmxpbmtlZFRpbWUuZW5kU3RlcD90aGlzLmxpbmtlZFRpbWUuc3RhcnRTdGVwPT09dC5zdGVwOnRoaXMubGlua2VkVGltZS5zdGFydFN0ZXA8PXQuc3RlcCYmdGhpcy5saW5rZWRUaW1lLmVuZFN0ZXA+PXQuc3RlcCl9Z2V0SGlzdG9ncmFtRmlsbCh0KXtyZXR1cm4gdGhpcy5zY2FsZXM/dGhpcy5zY2FsZXMuZDNDb2xvclNjYWxlKHRoaXMuZ2V0VGltZVZhbHVlKHQpKToiIn1nZXRHcmlkVGlja1lMb2NzKCl7aWYoIXRoaXMuc2NhbGVzfHx0aGlzLm1vZGU9PT1wRS5PRkZTRVQpcmV0dXJuW107Y29uc3QgdD10aGlzLnNjYWxlcy5jb3VudFNjYWxlO3JldHVybiB0LnRpY2tzKCkubWFwKChlPT50KGUpKSl9b25SZXNpemUoKXt0aGlzLnVwZGF0ZUNsaWVudFJlY3RzKCksdGhpcy51cGRhdGVDaGFydElmVmlzaWJsZSgpfW9uVmlzaWJpbGl0eUNoYW5nZSh7dmlzaWJsZTp0fSl7dGhpcy5kb21WaXNpYmxlPXQsdCYmKHRoaXMudXBkYXRlQ2xpZW50UmVjdHMoKSx0aGlzLnVwZGF0ZUNoYXJ0SWZWaXNpYmxlKCkpfWdldFRpbWVWYWx1ZSh0KXtzd2l0Y2godGhpcy50aW1lUHJvcGVydHkpe2Nhc2UgZEUuV0FMTF9USU1FOnJldHVybiB0LndhbGxUaW1lO2Nhc2UgZEUuU1RFUDpyZXR1cm4gdC5zdGVwO2Nhc2UgZEUuUkVMQVRJVkU6cmV0dXJuIHQud2FsbFRpbWUtdGhpcy5kYXRhWzBdLndhbGxUaW1lfX11cGRhdGVDbGllbnRSZWN0cygpe3RoaXMuY29udGVudCYmKHRoaXMubGF5b3V0LmNvbnRlbnRDbGllbnRSZWN0PXRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMubGF5b3V0Lmhpc3RvZ3JhbUhlaWdodD10aGlzLmxheW91dC5jb250ZW50Q2xpZW50UmVjdC5oZWlnaHQvMi41KX11cGRhdGVDaGFydElmVmlzaWJsZSgpe3RoaXMuZG9tVmlzaWJsZSYmKHRoaXMuc2NhbGVzPXRoaXMuY29tcHV0ZVNjYWxlcyh0aGlzLmRhdGEpLHRoaXMucmVuZGVyWEF4aXMoKSx0aGlzLnJlbmRlcllBeGlzKCksdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCkpfWNvbXB1dGVTY2FsZXModCl7Y29uc3R7d2lkdGg6ZSxoZWlnaHQ6bn09dGhpcy5sYXlvdXQuY29udGVudENsaWVudFJlY3Qse21pbjpvLG1heDppfT1uZ3QodCwodD0+KGZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gdC5yZWR1Y2UoKCh0LGUpPT5NYXRoLm1pbih0LG4oZSkpKSwxLzApfSkodC5iaW5zLCh0PT50LngpKSksKHQ9PmVndCh0LmJpbnMsKCh7eDp0LGR4OmV9KT0+dCtlKSkpKSxhPWVndCh0LCh0PT5lZ3QodC5iaW5zLCgoe3k6dH0pPT50KSkpKSxyPWVldCgpLmRvbWFpbihbbyxpXSkubmljZSgpLHM9dGhpcy5tb2RlIT09cEUuT1ZFUkxBWSYmdGhpcy50aW1lUHJvcGVydHk9PWRFLldBTExfVElNRT9mb3QoKTplZXQoKSxsPXQubWFwKCh0PT50aGlzLmdldFRpbWVWYWx1ZSh0KSkpLHttaW46YyxtYXg6ZH09bmd0KGwsKHQ9PnQpKSxwPVtjLGRdO3MuZG9tYWluKHApO2NvbnN0IG09ZWV0KCk7bS5kb21haW4oWzAsYV0pO2NvbnN0IHU9UzcodGhpcy5jb2xvcnx8IiMwMDAiKSxmPWVldCgpO3JldHVybiBmLmRvbWFpbihwKSxyLnJhbmdlKFswLGVdKSxmLnJhbmdlKFt1LmJyaWdodGVyKCksdS5kYXJrZXIoKV0pLGYuaW50ZXJwb2xhdGUobTgpLHRoaXMubW9kZT09PXBFLk9WRVJMQVk/KHMucmFuZ2UoW24sbl0pLG0ucmFuZ2UoW24sMF0pKToocy5yYW5nZShbbi0odGhpcy5tb2RlPT09cEUuT0ZGU0VUP24tdGhpcy5sYXlvdXQuaGlzdG9ncmFtSGVpZ2h0OjApLG5dKSxtLnJhbmdlKFswLC10aGlzLmxheW91dC5oaXN0b2dyYW1IZWlnaHRdKSkse2JpblNjYWxlOnIsZDNDb2xvclNjYWxlOmYsY291bnRTY2FsZTptLHRlbXBvcmFsU2NhbGU6c319cmVuZGVyWEF4aXMoKXtpZighdGhpcy5zY2FsZXMpcmV0dXJuO2NvbnN0e3dpZHRoOnR9PXRoaXMubGF5b3V0LmNvbnRlbnRDbGllbnRSZWN0LGU9ejUodGhpcy5zY2FsZXMuYmluU2NhbGUpLnRpY2tzKE1hdGgubWF4KDIsdC8yMCkpO2UudGlja0Zvcm1hdCh0aGlzLmZvcm1hdHRlcnMuYmluTnVtYmVyKSxlKEo0KHRoaXMueEF4aXMubmF0aXZlRWxlbWVudCkpfWdldFlBeGlzRm9ybWF0dGVyKCl7aWYodGhpcy5tb2RlPT09cEUuT1ZFUkxBWSlyZXR1cm4gdGhpcy5mb3JtYXR0ZXJzLmNvdW50O3N3aXRjaCh0aGlzLnRpbWVQcm9wZXJ0eSl7Y2FzZSBkRS5XQUxMX1RJTUU6cmV0dXJuIHRoaXMuZm9ybWF0dGVycy53YWxsVGltZTtjYXNlIGRFLlNURVA6cmV0dXJuIHRoaXMuZm9ybWF0dGVycy5zdGVwO2Nhc2UgZEUuUkVMQVRJVkU6cmV0dXJuIHRoaXMuZm9ybWF0dGVycy5yZWxhdGl2ZTtkZWZhdWx0OnRocm93IFJhbmdlRXJyb3IoYFkgYXhpcyBmb3JtYXR0ZXIgZm9yICR7dGhpcy50aW1lUHJvcGVydHl9IG11c3QgYmUgaW1wbGVtZW50ZWRgKX19cmVuZGVyWUF4aXMoKXtpZighdGhpcy5zY2FsZXMpcmV0dXJuO2NvbnN0IHQ9dGhpcy5tb2RlPT09cEUuT1ZFUkxBWT90aGlzLnNjYWxlcy5jb3VudFNjYWxlOnRoaXMuc2NhbGVzLnRlbXBvcmFsU2NhbGUse2hlaWdodDplfT10aGlzLmxheW91dC5jb250ZW50Q2xpZW50UmVjdCxuPU41KHQpLnRpY2tzKE1hdGgubWF4KDIsZS8xNSkpO24udGlja0Zvcm1hdCh0aGlzLmdldFlBeGlzRm9ybWF0dGVyKCkpLG4oSjQodGhpcy55QXhpcy5uYXRpdmVFbGVtZW50KSl9ZmluZENsb3Nlc3REYXR1bUluZGV4KHQpe2xldCBlPXQudGFyZ2V0LG49ZTtmb3IoO2UmJmUhPT10aGlzLmhpc3RvZ3JhbXMubmF0aXZlRWxlbWVudDspbj1lLGU9ZS5wYXJlbnRFbGVtZW50O3JldHVybiBlP0FycmF5LmZyb20oZS5jaGlsZHJlbikuaW5kZXhPZihuKTotMX1vbk1vdXNlTW92ZUZvclRlc3RPbmx5KHQpe3JldHVybiB0aGlzLm9uTW91c2VNb3ZlKHQpfW9uTW91c2VNb3ZlKHQpe2lmKCF0aGlzLnNjYWxlcylyZXR1cm47Y29uc3QgZT10Lm9mZnNldFgsbj10Lm9mZnNldFksbz10aGlzLmZpbmRDbG9zZXN0RGF0dW1JbmRleCh0KTtpZihvPDApcmV0dXJuO2NvbnN0IGk9dGhpcy5zY2FsZXMuYmluU2NhbGUuaW52ZXJ0KGUpLGE9dGhpcy5kYXRhW29dLHI9dGhpcy5nZXRDbG9zZXN0QmluRnJvbUJpbkNvb3JkaW5hdGUoYSxpKTt0aGlzLnRvb2x0aXBEYXRhPXt2YWx1ZTp7cG9zaXRpb246e3g6ZSx5Om59LGxhYmVsOnRoaXMubW9kZT09PXBFLk9GRlNFVD90aGlzLmZvcm1hdHRlcnMuY291bnQoci55KTpgU3RlcDogJHt0aGlzLmZvcm1hdHRlcnMuc3RlcChhLnN0ZXApfWB9LHhBeGlzOntwb3NpdGlvbjp0aGlzLmdldFVpQ29vcmRGcm9tQmluRm9yQ29udGVudChyKS54LGxhYmVsOnRoaXMuZm9ybWF0dGVycy5iaW5OdW1iZXIob2d0KHIpKX0seUF4aXM6e3Bvc2l0aW9uOnRoaXMuc2NhbGVzLmNvdW50U2NhbGUodGhpcy5tb2RlPT09cEUuT0ZGU0VUPzA6ci55KSxsYWJlbDp0aGlzLm1vZGU9PT1wRS5PRkZTRVQ/dGhpcy5nZXRZQXhpc0Zvcm1hdHRlcigpKHRoaXMuZ2V0VGltZVZhbHVlKGEpKTp0aGlzLmZvcm1hdHRlcnMuYmluTnVtYmVyKHIueSl9LHhQb3NpdGlvbkluQmluQ29vcmQ6aSxjbG9zZXN0RGF0dW06YSxjbG9zZXN0QmluOnJ9LHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpfX1mdW5jdGlvbiBlZ3QodCxlKXtyZXR1cm4gdC5yZWR1Y2UoKCh0LG4pPT5NYXRoLm1heCh0LGUobikpKSwtMS8wKX1mdW5jdGlvbiBuZ3QodCxlLG4pe258fChuPWUpO2xldCBvPTEvMCxpPS0xLzA7Zm9yKGNvbnN0IGEgb2YgdClvPU1hdGgubWluKG8sZShhKSksaT1NYXRoLm1heChpLG4oYSkpO3JldHVybnttaW46byxtYXg6aX19ZnVuY3Rpb24gb2d0KHQpe3JldHVybiB0LngrLjUqdC5keH1mdW5jdGlvbiBpZ3QodCxlKXsxJnQmJlRtKDAsInZpcy1zZWxlY3RlZC10aW1lLWNsaXBwZWQiKX1mdW5jdGlvbiBhZ3QodCxlKXsxJnQmJihSbSgwLCJzcGFuIiwxNCksVG0oMSwibWF0LXNwaW5uZXIiLDE1KSxBbSgpKX10Z3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHRndCkoU20oVWcpKX0sdGd0Lsm1Y21wPXRvKHt0eXBlOnRndCxzZWxlY3RvcnM6W1sidGItaGlzdG9ncmFtIl1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUWgoTGZ0LDUpLFFoKEJmdCw1KSxRaChWZnQsNSksUWgoamZ0LDUpLFFoKFVmdCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5tYWluPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLnhBeGlzPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLnlBeGlzPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLmNvbnRlbnQ9dC5maXJzdCksSmgodD10YigpKSYmKG4uaGlzdG9ncmFtcz10LmZpcnN0KX19LGlucHV0czp7bW9kZToibW9kZSIsdGltZVByb3BlcnR5OiJ0aW1lUHJvcGVydHkiLGNvbG9yOiJjb2xvciIsZGF0YToiZGF0YSIsbGlua2VkVGltZToibGlua2VkVGltZSJ9LGZlYXR1cmVzOltCb10sZGVjbHM6MjIsdmFyczoxNyxjb25zdHM6W1siZGV0ZWN0UmVzaXplIiwiIiwib2JzZXJ2ZUludGVyc2VjdGlvbiIsIiIsMywib25SZXNpemUiLCJvblZpc2liaWxpdHlDaGFuZ2UiXSxbIm1haW4iLCIiXSxbMSwiYXhpcyIsIngtYXhpcyJdLFsieEF4aXMiLCIiXSxbMSwidG9vbHRpcCJdLFszLCJ0cmFuc2Zvcm0iLDQsIm5nSWYiXSxbMSwiYXhpcyIsInktYXhpcyJdLFsieUF4aXMiLCIiXSxbNCwibmdJZiJdLFsxLCJjb250ZW50Il0sWyJjb250ZW50IiwiIl0sWzEsImdyaWQiXSxbMywidHJhbnNmb3JtIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImhpc3RvZ3JhbXMiLCIiXSxbMywidHJhbnNmb3JtIiwiaGlzdG9ncmFtIiwibm8tY29sb3IiLCJjb2xvciIsNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWyJjbGFzcyIsInRvb2x0aXAiLDQsIm5nSWYiXSxbMSwibGlua2VkLXRpbWUiXSxbMSwibGlua2VkLXRpbWUtZm9iIiwzLCJzdGVwIl0sWyJjbGFzcyIsImxpbmtlZC10aW1lIiwzLCJ0cmFuc2Zvcm0iLDQsIm5nSWYiXSxbIngyIiwiMTAwJSIsMSwidGljayJdLFsiY2xhc3MiLCJiYXNlbGluZSIsIngyIiwiMTAwJSIsNCwibmdJZiJdLFsiciIsIjIiLDMsInRyYW5zZm9ybSIsNCwibmdJZiJdLFsieDIiLCIxMDAlIiwxLCJiYXNlbGluZSJdLFsiciIsIjIiXSxbInIiLCIyIiw0LCJuZ0lmIl0sWzEsInZhbHVlLWxhYmVsIl0sWyJ4IiwiMyIsInkiLCItMyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwLDEpLFZtKCJvblJlc2l6ZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlc2l6ZSgpfSkpKCJvblZpc2liaWxpdHlDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uVmlzaWJpbGl0eUNoYW5nZShlKX0pKSxxaSgpLFJtKDIsInN2ZyIsMiksVG0oMywiZyIsbnVsbCwzKSxSbSg1LCJnIiw0KSxRcCg2LEdmdCwzLDMsImciLDUpLEFtKCksQW0oKSxaaSgpLFJtKDcsImRpdiIsNikscWkoKSxSbSg4LCJzdmciKSxUbSg5LCJnIixudWxsLDcpLFJtKDExLCJnIiw0KSxRcCgxMixXZnQsMyw0LCJnIiw1KSxBbSgpLEFtKCksUXAoMTMscWZ0LDQsNCwibmctY29udGFpbmVyIiw4KSxBbSgpLFJtKDE0LCJzdmciLDksMTApLFJtKDE2LCJnIiwxMSksUXAoMTcsWmZ0LDIsMiwiZyIsMTIpLEFtKCksUm0oMTgsImciLG51bGwsMTMpLFFwKDIwLEpmdCw0LDExLCJnIiwxNCksQW0oKSxRcCgyMSwkZnQsNyw3LCJnIiwxNSksQW0oKSxBbSgpKSwyJmUmJihmdSgibWFpbiAiK24ubW9kZSsiICIrbi50aW1lUHJvcGVydHkpLHJjKDYpLERtKCJuZ0lmIixuLnRvb2x0aXBEYXRhKSxyYyg1KSxkdSgidHJhbnNmb3JtIixuLmdldENzc1RyYW5zbGF0ZVB4KDksMCkpLHJjKDEpLERtKCJuZ0lmIixuLnRvb2x0aXBEYXRhKSxyYygxKSxEbSgibmdJZiIsbi5pc0xpbmtlZFRpbWVFbmFibGVkKG4ubGlua2VkVGltZSkpLHJjKDQpLERtKCJuZ0Zvck9mIixuLmdldEdyaWRUaWNrWUxvY3MoKSkscmMoMSkscHUoImhpc3RvZ3JhbXMiLCEwKSgibGlua2VkLXRpbWUtZW5hYmxlZCIsbi5saW5rZWRUaW1lKSgibGlua2VkLXRpbWUtc2luZ2xlLXN0ZXAiLG4ubGlua2VkVGltZSYmIW4ubGlua2VkVGltZS5lbmRTdGVwKSxyYygyKSxEbSgibmdGb3JPZiIsbi5kYXRhKSgibmdGb3JUcmFja0J5IixuLnRyYWNrQnlXYWxsVGltZSkscmMoMSksRG0oIm5nSWYiLG4udG9vbHRpcERhdGEpKX0sZGlyZWN0aXZlczpbb0osTmZ0LGRNLGxNLGhmdF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXSwgLm1haW5bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9W19uZ2hvc3QtJUNPTVAlXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzoxMHB4fS5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1hcmVhczoiY29udGVudCB5LWF4aXMiICJ4LWF4aXMgLiI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciA1MHB4O2dyaWQtdGVtcGxhdGUtcm93czoxZnIgMzBweH0ubWFpbi53YWxsX3RpbWVbX25nY29udGVudC0lQ09NUCVde2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgNzVweH0udG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0sIC5iYXNlbGluZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzAwMH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5iYXNlbGluZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5iYXNlbGluZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2ZmZn0ubGlua2VkLXRpbWUtZm9iW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRleHRbX25nY29udGVudC0lQ09NUCVdLCAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxMHB4fS5saW5rZWQtdGltZS1mb2JbX25nY29udGVudC0lQ09NUCVdICAgdGV4dFtfbmdjb250ZW50LSVDT01QJV0sIC5saW5rZWQtdGltZS1mb2JbX25nY29udGVudC0lQ09NUCVdICAgY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgdGV4dFtfbmdjb250ZW50LSVDT01QJV0sIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNpcmNsZVtfbmdjb250ZW50LSVDT01QJV17ZmlsbDpjdXJyZW50Q29sb3J9LmxpbmtlZC10aW1lLWZvYltfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2RvbWluYW50LWJhc2VsaW5lOmlkZW9ncmFwaGljO3RleHQtYW5jaG9yOnN0YXJ0fS5saW5rZWQtdGltZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7bGVmdDo5cHg7dG9wOjA7aGVpZ2h0OjEwMCU7cmlnaHQ6MH0ubGlua2VkLXRpbWVbX25nY29udGVudC0lQ09NUCVdICAgLmxpbmtlZC10aW1lLWZvYltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgIHtjb2xvcjojNjE2MTYxO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAge2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmRvbWFpbiwgLmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgICAudGljayB0ZXh0e2Rpc3BsYXk6bm9uZX0uYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrOm50aC1jaGlsZCgybisxKSB0ZXh0e2Rpc3BsYXk6aW5pdGlhbH1zdmdbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7cG9pbnRlci1ldmVudHM6dmlzaWJsZVBhaW50ZWR9c3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmVbX25nY29udGVudC0lQ09NUCVdLCBzdmdbX25nY29udGVudC0lQ09NUCVdICAgY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXSwgc3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lfXN2Z1tfbmdjb250ZW50LSVDT01QJV0gICBnW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWxsLWNoYW5nZTp0cmFuc2Zvcm19LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOngtYXhpc30ueC1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtkb21pbmFudC1iYXNlbGluZTpoYW5naW5nO3RleHQtYW5jaG9yOm1pZGRsZX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLWFyZWE6eS1heGlzOy13ZWJraXQtbWFzay1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDAwMCAwJSwgIzAwMCAxMCUsICMwMDAgOTAlLCAjMDAwMCAxMDAlKTttYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwMDAwIDAlLCAjMDAwIDEwJSwgIzAwMCA5MCUsICMwMDAwIDEwMCUpfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2RvbWluYW50LWJhc2VsaW5lOm1pZGRsZTt0ZXh0LWFuY2hvcjpzdGFydH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAudGlja1tfbmdjb250ZW50LSVDT01QJV0sIC5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLnRpY2sgbGluZXtzdHJva2U6I2RkZH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAudGlja1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2U6IzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrIGxpbmUsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLnRpY2sgbGluZXtzdHJva2U6IzU1NX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOmNvbnRlbnR9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLnRpY2tbX25nY29udGVudC0lQ09NUCVde3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWRhc2hhcnJheToyfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0sIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBhdGhbX25nY29udGVudC0lQ09NUCVde2ZpbGw6Y3VycmVudENvbG9yO3N0cm9rZS1vcGFjaXR5Oi42O3N0cm9rZS13aWR0aDoxcHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuNikpO3N0cm9rZTojZmZmO3dpbGwtY2hhbmdlOnRyYW5zZm9ybX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuYmFzZWxpbmVbX25nY29udGVudC0lQ09NUCVde3N0cm9rZS1vcGFjaXR5Oi4xO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlOmN1cnJlbnRDb2xvcjt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBhdGhbX25nY29udGVudC0lQ09NUCVde3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlOmN1cnJlbnRDb2xvcjtmaWxsOnRyYW5zcGFyZW50fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uby1jb2xvcltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyMjEsMjIxLDIyMSwuNCkgIWltcG9ydGFudH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAubm8tY29sb3JbX25nY29udGVudC0lQ09NUCVdICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlLW9wYWNpdHk6LjJ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLm5vLWNvbG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLm5vLWNvbG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDUxLDUxLDUxLC40KSAhaW1wb3J0YW50fS5vZmZzZXRbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmhpc3RvZ3JhbXNbX25nY29udGVudC0lQ09NUCVdICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlOiNmZmZ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9mZnNldFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuaGlzdG9ncmFtc1tfbmdjb250ZW50LSVDT01QJV0gICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9mZnNldFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuaGlzdG9ncmFtc1tfbmdjb250ZW50LSVDT01QJV0gICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2U6IzU1NX0ub2Zmc2V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oaXN0b2dyYW1zLmxpbmtlZC10aW1lLXNpbmdsZS1zdGVwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtfbmdjb250ZW50LSVDT01QJV06bm90KC5uby1jb2xvcikgICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2U6IzAwMH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub2Zmc2V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oaXN0b2dyYW1zLmxpbmtlZC10aW1lLXNpbmdsZS1zdGVwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtfbmdjb250ZW50LSVDT01QJV06bm90KC5uby1jb2xvcikgICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9mZnNldFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuaGlzdG9ncmFtcy5saW5rZWQtdGltZS1zaW5nbGUtc3RlcFtfbmdjb250ZW50LSVDT01QJV0gICBbX25nY29udGVudC0lQ09NUCVdOm5vdCgubm8tY29sb3IpICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlOiNmZmZ9Lm92ZXJsYXlbX25nY29udGVudC0lQ09NUCVdICAgLngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrIGxpbmV7ZGlzcGxheTpub25lfS5vdmVybGF5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBhdGhbX25nY29udGVudC0lQ09NUCVde2ZpbGwtb3BhY2l0eTowO3N0cm9rZTpjdXJyZW50Q29sb3J9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdLCAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBjaXJjbGVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0ubWFpbltfbmdjb250ZW50LSVDT01QJV06aG92ZXIgICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBjaXJjbGVbX25nY29udGVudC0lQ09NUCVdLCAubWFpbltfbmdjb250ZW50LSVDT01QJV06aG92ZXIgICAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9ja30nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodGd0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRiLWhpc3RvZ3JhbSIsdGVtcGxhdGVVcmw6Imhpc3RvZ3JhbV9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiaGlzdG9ncmFtX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWd9XX0pLHttYWluOlt7dHlwZTpaYSxhcmdzOlsibWFpbiJdfV0seEF4aXM6W3t0eXBlOlphLGFyZ3M6WyJ4QXhpcyJdfV0seUF4aXM6W3t0eXBlOlphLGFyZ3M6WyJ5QXhpcyJdfV0sY29udGVudDpbe3R5cGU6WmEsYXJnczpbImNvbnRlbnQiXX1dLGhpc3RvZ3JhbXM6W3t0eXBlOlphLGFyZ3M6WyJoaXN0b2dyYW1zIl19XSxtb2RlOlt7dHlwZTp4eX1dLHRpbWVQcm9wZXJ0eTpbe3R5cGU6eHl9XSxjb2xvcjpbe3R5cGU6eHl9XSxkYXRhOlt7dHlwZTp4eX1dLGxpbmtlZFRpbWU6W3t0eXBlOnh5fV19KTtjb25zdCByZ3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm57c3RhcnRTdGVwOnQsZW5kU3RlcDplfX07ZnVuY3Rpb24gc2d0KHQsZSl7aWYoMSZ0JiZUbSgwLCJ0Yi1oaXN0b2dyYW0iLDE2KSwyJnQpe2NvbnN0IHQ9WW0oKTtEbSgiZGF0YSIsdC5kYXRhKSgibW9kZSIsdC5tb2RlKSgidGltZVByb3BlcnR5Iix0LnRpbWVQcm9wZXJ0eSh0LnhBeGlzVHlwZSkpKCJjb2xvciIsdC5ydW5Db2xvclNjYWxlKHQucnVuSWQpKSgibGlua2VkVGltZSIsdC5zZWxlY3RlZFRpbWU/dmgoNSxyZ3QsdC5zZWxlY3RlZFRpbWUuc3RhcnRTdGVwLHQuc2VsZWN0ZWRUaW1lLmVuZFN0ZXApOm51bGwpfX1mdW5jdGlvbiBsZ3QodCxlKXsxJnQmJihSbSgwLCJkaXYiLDE4KSxrdSgxLCIgRGF0YSBmYWlsZWQgdG8gbG9hZC4gIiksQW0oKSl9ZnVuY3Rpb24gY2d0KHQsZSl7aWYoMSZ0JiZRcCgwLGxndCwyLDAsImRpdiIsMTcpLDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJuZ0lmIix0LmxvYWRTdGF0ZT09PXQuRGF0YUxvYWRTdGF0ZS5GQUlMRUQpfX1jb25zdCBkZ3Q9ZnVuY3Rpb24odCl7cmV0dXJue2JhY2tncm91bmRDb2xvcjp0fX07Y2xhc3MgcGd0e2NvbnN0cnVjdG9yKCl7dGhpcy5EYXRhTG9hZFN0YXRlPXlFLHRoaXMub25GdWxsU2l6ZVRvZ2dsZT1uZXcgTGgsdGhpcy5vblBpbkNsaWNrZWQ9bmV3IExofXRpbWVQcm9wZXJ0eSh0KXtzd2l0Y2godCl7Y2FzZSB5QS5TVEVQOnJldHVybiBkRS5TVEVQO2Nhc2UgeUEuV0FMTF9USU1FOnJldHVybiBkRS5XQUxMX1RJTUU7Y2FzZSB5QS5SRUxBVElWRTpyZXR1cm4gZEUuUkVMQVRJVkU7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgeEF4aXNUeXBlIGZvciBoaXN0b2dyYW0gdGltZSBwcm9wZXJ0eS4iKX19fXBndC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cGd0KX0scGd0Lsm1Y21wPXRvKHt0eXBlOnBndCxzZWxlY3RvcnM6W1siaGlzdG9ncmFtLWNhcmQtY29tcG9uZW50Il1dLGlucHV0czp7bG9hZFN0YXRlOiJsb2FkU3RhdGUiLHRpdGxlOiJ0aXRsZSIsdGFnOiJ0YWciLHJ1bklkOiJydW5JZCIsZGF0YToiZGF0YSIsbW9kZToibW9kZSIseEF4aXNUeXBlOiJ4QXhpc1R5cGUiLHJ1bkNvbG9yU2NhbGU6InJ1bkNvbG9yU2NhbGUiLHNob3dGdWxsU2l6ZToic2hvd0Z1bGxTaXplIixpc1Bpbm5lZDoiaXNQaW5uZWQiLHNlbGVjdGVkVGltZToic2VsZWN0ZWRUaW1lIn0sb3V0cHV0czp7b25GdWxsU2l6ZVRvZ2dsZToib25GdWxsU2l6ZVRvZ2dsZSIsb25QaW5DbGlja2VkOiJvblBpbkNsaWNrZWQifSxkZWNsczoxNix2YXJzOjEzLGNvbnN0czpmdW5jdGlvbigpe2xldCB0LGU7cmV0dXJuIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIlBpbiBjYXJkIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0byBwaW4gYSBjYXJkLuKQn2U2NjVkYzcxMmJkNWYxOGQ0ZGZhM2EyOWUxMjVkNTY1Y2M1MWUyZjbikJ83Mjg0NjA2NDI2MjM0Mzc1MzQ0OlBpbiBjYXJkYCxlPSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJUb2dnbGUgZnVsbCBzaXplIG1vZGUiKTokbG9jYWxpemVgOkEgYnV0dG9uIG9uIGEgaGlzdG9ncmFtIGNhcmQgdGhhdCB0b2dnbGVzIGZ1bGwgc2l6ZSBtb2RlLuKQn2ZjOGY3NjdkMGI5ZjkzMDE4N2ExYmFlMzQ0NzdhZDI4NzM2ZWNlMzPikJ85MTU3MjE1NjM2Mzg5MjY1OTc6VG9nZ2xlIGZ1bGwgc2l6ZSBtb2RlYCxbWzEsImhlYWRpbmciXSxbMSwidGFnIl0sWzMsInRpdGxlIiwidmFsdWUiXSxbNCwibmdJZiJdLFsxLCJydW4iXSxbMSwiZG90IiwzLCJuZ1N0eWxlIl0sWzEsInJ1bi10ZXh0IiwzLCJydW5JZCJdLFsxLCJjb250cm9scyJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwxLCJwaW4tYnV0dG9uIiwzLCJjbGljayJdLFszLCJzdmdJY29uIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixlLCJ0aXRsZSIsIlRvZ2dsZSBmdWxsIHNpemUgbW9kZSIsMywiY2xpY2siXSxbImNsYXNzIiwic3Bpbm5lciIsNCwibmdJZiJdLFszLCJkYXRhIiwibW9kZSIsInRpbWVQcm9wZXJ0eSIsImNvbG9yIiwibGlua2VkVGltZSIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub0RhdGEiLCIiXSxbMSwic3Bpbm5lciJdLFsiZGlhbWV0ZXIiLCIxOCJdLFszLCJkYXRhIiwibW9kZSIsInRpbWVQcm9wZXJ0eSIsImNvbG9yIiwibGlua2VkVGltZSJdLFsiY2xhc3MiLCJlbXB0eS1tZXNzYWdlIiw0LCJuZ0lmIl0sWzEsImVtcHR5LW1lc3NhZ2UiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsImRpdiIsMSksVG0oMiwidGItdHJ1bmNhdGVkLXBhdGgiLDIpLFFwKDMsaWd0LDEsMCwidmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZCIsMyksQW0oKSxSbSg0LCJkaXYiLDQpLFRtKDUsInNwYW4iLDUpLFRtKDYsImNhcmQtcnVuLW5hbWUiLDYpLEFtKCksUm0oNywic3BhbiIsNyksUm0oOCwiYnV0dG9uIiw4KSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25QaW5DbGlja2VkLmVtaXQoIW4uaXNQaW5uZWQpfSkpLFRtKDksIm1hdC1pY29uIiw5KSxBbSgpLFJtKDEwLCJidXR0b24iLDEwKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25GdWxsU2l6ZVRvZ2dsZS5lbWl0KCl9KSksVG0oMTEsIm1hdC1pY29uIiw5KSxBbSgpLEFtKCksUXAoMTIsYWd0LDIsMCwic3BhbiIsMTEpLEFtKCksUXAoMTMsc2d0LDEsOCwidGItaGlzdG9ncmFtIiwxMiksUXAoMTQsY2d0LDEsMSwibmctdGVtcGxhdGUiLG51bGwsMTMsaWIpKSwyJmUpe2NvbnN0IHQ9JHAoMTUpO3JjKDIpLERtKCJ0aXRsZSIsbi50YWcpKCJ2YWx1ZSIsbi50aXRsZSkscmMoMSksRG0oIm5nSWYiLG4uc2VsZWN0ZWRUaW1lJiZuLnNlbGVjdGVkVGltZS5jbGlwcGVkKSxyYygyKSxEbSgibmdTdHlsZSIsTWgoMTEsZGd0LG4ucnVuQ29sb3JTY2FsZShuLnJ1bklkKSkpLHJjKDEpLERtKCJydW5JZCIsbi5ydW5JZCkscmMoMiksanAoInRpdGxlIixuLmlzUGlubmVkPyJVbnBpbiBjYXJkIjoiUGluIGNhcmQiKSxyYygxKSxEbSgic3ZnSWNvbiIsbi5pc1Bpbm5lZD8ia2VlcF8yNHB4Ijoia2VlcF9vdXRsaW5lXzI0cHgiKSxyYygyKSxEbSgic3ZnSWNvbiIsbi5zaG93RnVsbFNpemU/ImZ1bGxzY3JlZW5fZXhpdF8yNHB4IjoiZnVsbHNjcmVlbl8yNHB4IikscmMoMSksRG0oIm5nSWYiLG4ubG9hZFN0YXRlPT09bi5EYXRhTG9hZFN0YXRlLkxPQURJTkcpLHJjKDEpLERtKCJuZ0lmIixuLmRhdGEmJm4uZGF0YS5sZW5ndGgpKCJuZ0lmRWxzZSIsdCl9fSxkaXJlY3RpdmVzOlt6MixkTSxDTSxMMixYSCxEVyxnZnQsbzEsdGd0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG87cGFkZGluZzoxNnB4O3BhZGRpbmctdG9wOjRweH0uaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWFyZWFzOiJ0YWcgY29udHJvbHMiICJydW4gc3Bpbm5lciI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciBhdXRvO2ZvbnQtc2l6ZToxNHB4O21hcmdpbi1ib3R0b206NHB4fS50YWdbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7Z2FwOjVweDtncmlkLWFyZWE6dGFnO292ZXJmbG93OmhpZGRlbn0udGFnW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHZpcy1zZWxlY3RlZC10aW1lLWNsaXBwZWRbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjB9LnBpbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxOHB4fS5ydW5bX25nY29udGVudC0lQ09NUCVde2dyaWQtYXJlYTpydW47ZGlzcGxheTpmbGV4O3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6MTNweH0ucnVuW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kb3RbX25nY29udGVudC0lQ09NUCVde2ZsZXg6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxM3B4O2hlaWdodDoxM3B4O2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbi1yaWdodDo0cHh9LnJ1bltfbmdjb250ZW50LSVDT01QJV0gICAucnVuLXRleHRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO21heC13aWR0aDoxMjBweH0uY29udHJvbHNbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7d2hpdGUtc3BhY2U6bm93cmFwO2dyaWQtYXJlYTpjb250cm9scztqdXN0aWZ5LXNlbGY6ZmxleC1lbmQ7ZmxleC1zaHJpbms6MDttYXJnaW4tcmlnaHQ6LTEycHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2dyaWQtYXJlYTpzcGlubmVyO2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmV9bWF0LXNwaW5uZXJbX25nY29udGVudC0lQ09NUCVde3RvcDowO3JpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGV9dGItaGlzdG9ncmFtW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWdyb3c6MTtvdmVyZmxvdzpoaWRkZW59LmVtcHR5LW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MWVtO2ZvbnQtc2l6ZToxM3B4fSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwZ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiaGlzdG9ncmFtLWNhcmQtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiaGlzdG9ncmFtX2NhcmRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbImhpc3RvZ3JhbV9jYXJkX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtsb2FkU3RhdGU6W3t0eXBlOnh5fV0sdGl0bGU6W3t0eXBlOnh5fV0sdGFnOlt7dHlwZTp4eX1dLHJ1bklkOlt7dHlwZTp4eX1dLGRhdGE6W3t0eXBlOnh5fV0sbW9kZTpbe3R5cGU6eHl9XSx4QXhpc1R5cGU6W3t0eXBlOnh5fV0scnVuQ29sb3JTY2FsZTpbe3R5cGU6eHl9XSxzaG93RnVsbFNpemU6W3t0eXBlOnh5fV0saXNQaW5uZWQ6W3t0eXBlOnh5fV0sc2VsZWN0ZWRUaW1lOlt7dHlwZTp4eX1dLG9uRnVsbFNpemVUb2dnbGU6W3t0eXBlOk95fV0sb25QaW5DbGlja2VkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgbWd0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmZ1bGxXaWR0aENoYW5nZWQ9bmV3IExoLHRoaXMuZnVsbEhlaWdodENoYW5nZWQ9bmV3IExoLHRoaXMucGluU3RhdGVDaGFuZ2VkPW5ldyBMaCx0aGlzLm1vZGUkPXRoaXMuc3RvcmUuc2VsZWN0KE5UKSx0aGlzLnhBeGlzVHlwZSQ9dGhpcy5zdG9yZS5zZWxlY3QoVFQpLHRoaXMuc2hvd0Z1bGxTaXplPSExfWlzSGlzdG9ncmFtQ2FyZE1ldGFkYXRhKHQpe2NvbnN0e3BsdWdpbjplfT10O3JldHVybiBlPT09aEEuSElTVE9HUkFNU31vbkZ1bGxTaXplVG9nZ2xlKCl7dGhpcy5zaG93RnVsbFNpemU9IXRoaXMuc2hvd0Z1bGxTaXplLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZC5lbWl0KHRoaXMuc2hvd0Z1bGxTaXplKSx0aGlzLmZ1bGxIZWlnaHRDaGFuZ2VkLmVtaXQodGhpcy5zaG93RnVsbFNpemUpfW5nT25Jbml0KCl7Y29uc3QgdD10aGlzLnN0b3JlLnNlbGVjdCh5VCx0aGlzLmNhcmRJZCkucGlwZShjZSgodD0+ISF0JiZ0aGlzLmlzSGlzdG9ncmFtQ2FyZE1ldGFkYXRhKHQpKSksSXQoKHQ9PnQpKSksZT1XdChbdCx0aGlzLnN0b3JlLnNlbGVjdChoVCx0aGlzLmNhcmRJZCldKTt0aGlzLmRhdGEkPWUucGlwZShJdCgoKFt0LGVdKT0+e2NvbnN0IG49dC5ydW5JZDtyZXR1cm4gZSYmZS5oYXNPd25Qcm9wZXJ0eShuKT8oZnVuY3Rpb24gbyh0LGU9MzApe2lmKCF0Lmxlbmd0aHx8ZTwxKXJldHVybltdO2NvbnN0IG49KGZ1bmN0aW9uIG8odCl7bGV0IGU9bnVsbCxuPW51bGw7Zm9yKGNvbnN0e2JpbnM6b31vZiB0KXtpZighby5sZW5ndGgpY29udGludWU7Y29uc3QgdD1vW28ubGVuZ3RoLTFdLGk9b1swXS54LGE9dC54K3QuZHg7KG51bGw9PT1lfHxpPGUpJiYoZT1pKSwobnVsbD09PW58fGE+bikmJihuPWEpfXJldHVybiBudWxsPT09ZXx8bnVsbD09PW4/bnVsbDp7bGVmdDplLHJpZ2h0Om59fSkodCk7cmV0dXJuIG4mJm4ubGVmdD09PW4ucmlnaHQmJihuLnJpZ2h0PTEuMSpuLnJpZ2h0KzEsbi5sZWZ0PW4ubGVmdC8xLjEtMSksdC5tYXAoKHQ9Pih7c3RlcDp0LnN0ZXAsd2FsbFRpbWU6dC53YWxsVGltZSxiaW5zOm4/SGZ0KHQuYmlucyxuLGUpOltdfSkpKX0pKGVbbl0ubWFwKCh0PT57Y29uc3R7d2FsbFRpbWU6ZSxzdGVwOm59PXQ7cmV0dXJue3dhbGxUaW1lOmUsc3RlcDpuLGJpbnM6dC5iaW5zLm1hcCgodD0+KHt4OnQubWluLGR4OnQubWF4LXQubWluLHk6dC5jb3VudH0pKSl9fSkpKTpbXX0pKSksdGhpcy5zZWxlY3RlZFRpbWUkPXRoaXMuc3RvcmUuc2VsZWN0KFlUKS5waXBlKGZlKHRoaXMuZGF0YSQpLEl0KCgoW3QsZV0pPT57aWYoIXQpcmV0dXJuIG51bGw7bGV0IG49MS8wLG89LTEvMDtmb3IoY29uc3QgdCBvZiBlKW49TWF0aC5taW4odC5zdGVwLG4pLG89TWF0aC5tYXgodC5zdGVwLG8pO3JldHVybiBIMih0LG4sbyl9KSkpLHRoaXMubG9hZFN0YXRlJD10aGlzLnN0b3JlLnNlbGVjdChnVCx0aGlzLmNhcmRJZCksdGhpcy50YWckPXQucGlwZShJdCgodD0+dC50YWcpKSksdGhpcy50aXRsZSQ9dGhpcy50YWckLnBpcGUoSXQoKHQ9PmYyKHQsdGhpcy5ncm91cE5hbWUpKSkpLHRoaXMucnVuSWQkPXQucGlwZShJdCgodD0+dC5ydW5JZCkpKSx0aGlzLmlzUGlubmVkJD10aGlzLnN0b3JlLnNlbGVjdCh3VCx0aGlzLmNhcmRJZCl9fWZ1bmN0aW9uIHVndCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImltYWdlLWNhcmQiLDYpLFZtKCJmdWxsV2lkdGhDaGFuZ2VkIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25GdWxsV2lkdGhDaGFuZ2VkKG4pfSkpKCJwaW5TdGF0ZUNoYW5nZWQiLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKDIpLm9uUGluU3RhdGVDaGFuZ2VkKCl9KSksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oMik7RG0oImNhcmRJZCIsdC5jYXJkSWQpKCJncm91cE5hbWUiLHQuZ3JvdXBOYW1lKSgicnVuQ29sb3JTY2FsZSIsdC5ydW5Db2xvclNjYWxlKX19ZnVuY3Rpb24gZmd0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwic2NhbGFyLWNhcmQiLDcpLFZtKCJmdWxsV2lkdGhDaGFuZ2VkIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25GdWxsV2lkdGhDaGFuZ2VkKG4pfSkpKCJmdWxsSGVpZ2h0Q2hhbmdlZCIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uRnVsbEhlaWdodENoYW5nZWQobil9KSkoInBpblN0YXRlQ2hhbmdlZCIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oMikub25QaW5TdGF0ZUNoYW5nZWQoKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgiY2FyZElkIix0LmNhcmRJZCkoImdyb3VwTmFtZSIsdC5ncm91cE5hbWUpfX1mdW5jdGlvbiBnZ3QodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJoaXN0b2dyYW0tY2FyZCIsOCksVm0oImZ1bGxXaWR0aENoYW5nZWQiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5vbkZ1bGxXaWR0aENoYW5nZWQobil9KSkoImZ1bGxIZWlnaHRDaGFuZ2VkIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25GdWxsSGVpZ2h0Q2hhbmdlZChuKX0pKSgicGluU3RhdGVDaGFuZ2VkIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgyKS5vblBpblN0YXRlQ2hhbmdlZCgpfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJjYXJkSWQiLHQuY2FyZElkKSgiZ3JvdXBOYW1lIix0Lmdyb3VwTmFtZSkoInJ1bkNvbG9yU2NhbGUiLHQucnVuQ29sb3JTY2FsZSl9fWZ1bmN0aW9uIGhndCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygxKSxEdSgiUGxhY2Vob2xkZXIgZXJyb3IgZm9yOiAiLHQuY2FyZElkLCIiKX19ZnVuY3Rpb24gYmd0KHQsZSl7aWYoMSZ0JiYoTm0oMCwxKSxRcCgxLHVndCwxLDMsImltYWdlLWNhcmQiLDIpLFFwKDIsZmd0LDEsMiwic2NhbGFyLWNhcmQiLDMpLFFwKDMsZ2d0LDEsMywiaGlzdG9ncmFtLWNhcmQiLDQpLFFwKDQsaGd0LDIsMSwiZGl2Iiw1KSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtEbSgibmdTd2l0Y2giLHQucGx1Z2luVHlwZSkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5UeXBlLklNQUdFUykscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5UeXBlLlNDQUxBUlMpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLHQuUGx1Z2luVHlwZS5ISVNUT0dSQU1TKX19bWd0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxtZ3QpKFNtKEl3KSl9LG1ndC7JtWNtcD10byh7dHlwZTptZ3Qsc2VsZWN0b3JzOltbImhpc3RvZ3JhbS1jYXJkIl1dLGlucHV0czp7Y2FyZElkOiJjYXJkSWQiLGdyb3VwTmFtZToiZ3JvdXBOYW1lIixydW5Db2xvclNjYWxlOiJydW5Db2xvclNjYWxlIn0sb3V0cHV0czp7ZnVsbFdpZHRoQ2hhbmdlZDoiZnVsbFdpZHRoQ2hhbmdlZCIsZnVsbEhlaWdodENoYW5nZWQ6ImZ1bGxIZWlnaHRDaGFuZ2VkIixwaW5TdGF0ZUNoYW5nZWQ6InBpblN0YXRlQ2hhbmdlZCJ9LGRlY2xzOjEwLHZhcnM6MjksY29uc3RzOltbMywibG9hZFN0YXRlIiwidGl0bGUiLCJ0YWciLCJydW5JZCIsImRhdGEiLCJtb2RlIiwieEF4aXNUeXBlIiwicnVuQ29sb3JTY2FsZSIsInNob3dGdWxsU2l6ZSIsImlzUGlubmVkIiwic2VsZWN0ZWRUaW1lIiwib25GdWxsU2l6ZVRvZ2dsZSIsIm9uUGluQ2xpY2tlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiaGlzdG9ncmFtLWNhcmQtY29tcG9uZW50IiwwKSxWbSgib25GdWxsU2l6ZVRvZ2dsZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkZ1bGxTaXplVG9nZ2xlKCl9KSkoIm9uUGluQ2xpY2tlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ucGluU3RhdGVDaGFuZ2VkLmVtaXQoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxBaCg4LCJhc3luYyIpLEFoKDksImFzeW5jIiksQW0oKSksMiZlJiZEbSgibG9hZFN0YXRlIixUaCgxLDExLG4ubG9hZFN0YXRlJCkpKCJ0aXRsZSIsVGgoMiwxMyxuLnRpdGxlJCkpKCJ0YWciLFRoKDMsMTUsbi50YWckKSkoInJ1bklkIixUaCg0LDE3LG4ucnVuSWQkKSkoImRhdGEiLFRoKDUsMTksbi5kYXRhJCkpKCJtb2RlIixUaCg2LDIxLG4ubW9kZSQpKSgieEF4aXNUeXBlIixUaCg3LDIzLG4ueEF4aXNUeXBlJCkpKCJydW5Db2xvclNjYWxlIixuLnJ1bkNvbG9yU2NhbGUpKCJzaG93RnVsbFNpemUiLG4uc2hvd0Z1bGxTaXplKSgiaXNQaW5uZWQiLFRoKDgsMjUsbi5pc1Bpbm5lZCQpKSgic2VsZWN0ZWRUaW1lIixUaCg5LDI3LG4uc2VsZWN0ZWRUaW1lJCkpfSxkaXJlY3RpdmVzOltwZ3RdLHBpcGVzOlt3TV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG1ndCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJoaXN0b2dyYW0tY2FyZCIsdGVtcGxhdGU6J1xuICAgIDxoaXN0b2dyYW0tY2FyZC1jb21wb25lbnRcbiAgICAgIFtsb2FkU3RhdGVdPSJsb2FkU3RhdGUkIHwgYXN5bmMiXG4gICAgICBbdGl0bGVdPSJ0aXRsZSQgfCBhc3luYyJcbiAgICAgIFt0YWddPSJ0YWckIHwgYXN5bmMiXG4gICAgICBbcnVuSWRdPSJydW5JZCQgfCBhc3luYyJcbiAgICAgIFtkYXRhXT0iZGF0YSQgfCBhc3luYyJcbiAgICAgIFttb2RlXT0ibW9kZSQgfCBhc3luYyJcbiAgICAgIFt4QXhpc1R5cGVdPSJ4QXhpc1R5cGUkIHwgYXN5bmMiXG4gICAgICBbcnVuQ29sb3JTY2FsZV09InJ1bkNvbG9yU2NhbGUiXG4gICAgICBbc2hvd0Z1bGxTaXplXT0ic2hvd0Z1bGxTaXplIlxuICAgICAgW2lzUGlubmVkXT0iaXNQaW5uZWQkIHwgYXN5bmMiXG4gICAgICBbc2VsZWN0ZWRUaW1lXT0ic2VsZWN0ZWRUaW1lJCB8IGFzeW5jIlxuICAgICAgKG9uRnVsbFNpemVUb2dnbGUpPSJvbkZ1bGxTaXplVG9nZ2xlKCkiXG4gICAgICAob25QaW5DbGlja2VkKT0icGluU3RhdGVDaGFuZ2VkLmVtaXQoJGV2ZW50KSJcbiAgICA+PC9oaXN0b2dyYW0tY2FyZC1jb21wb25lbnQ+XG4gICcsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7Y2FyZElkOlt7dHlwZTp4eX1dLGdyb3VwTmFtZTpbe3R5cGU6eHl9XSxydW5Db2xvclNjYWxlOlt7dHlwZTp4eX1dLGZ1bGxXaWR0aENoYW5nZWQ6W3t0eXBlOk95fV0sZnVsbEhlaWdodENoYW5nZWQ6W3t0eXBlOk95fV0scGluU3RhdGVDaGFuZ2VkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgeWd0e2NvbnN0cnVjdG9yKCl7dGhpcy5QbHVnaW5UeXBlPWhBLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZD1uZXcgTGgsdGhpcy5mdWxsSGVpZ2h0Q2hhbmdlZD1uZXcgTGgsdGhpcy5waW5TdGF0ZUNoYW5nZWQ9bmV3IExofW9uRnVsbFdpZHRoQ2hhbmdlZCh0KXt0aGlzLmZ1bGxXaWR0aENoYW5nZWQuZW1pdCh0KX1vbkZ1bGxIZWlnaHRDaGFuZ2VkKHQpe3RoaXMuZnVsbEhlaWdodENoYW5nZWQuZW1pdCh0KX1vblBpblN0YXRlQ2hhbmdlZCgpe3RoaXMucGluU3RhdGVDaGFuZ2VkLmVtaXQoKX19eWd0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5Z3QpfSx5Z3QuybVjbXA9dG8oe3R5cGU6eWd0LHNlbGVjdG9yczpbWyJjYXJkLXZpZXctY29tcG9uZW50Il1dLGlucHV0czp7aXNFdmVyVmlzaWJsZToiaXNFdmVyVmlzaWJsZSIsY2FyZElkOiJjYXJkSWQiLGdyb3VwTmFtZToiZ3JvdXBOYW1lIixwbHVnaW5UeXBlOiJwbHVnaW5UeXBlIixydW5Db2xvclNjYWxlOiJydW5Db2xvclNjYWxlIn0sb3V0cHV0czp7ZnVsbFdpZHRoQ2hhbmdlZDoiZnVsbFdpZHRoQ2hhbmdlZCIsZnVsbEhlaWdodENoYW5nZWQ6ImZ1bGxIZWlnaHRDaGFuZ2VkIixwaW5TdGF0ZUNoYW5nZWQ6InBpblN0YXRlQ2hhbmdlZCJ9LGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWzMsIm5nU3dpdGNoIiw0LCJuZ0lmIl0sWzMsIm5nU3dpdGNoIl0sWzMsImNhcmRJZCIsImdyb3VwTmFtZSIsInJ1bkNvbG9yU2NhbGUiLCJmdWxsV2lkdGhDaGFuZ2VkIiwicGluU3RhdGVDaGFuZ2VkIiw0LCJuZ1N3aXRjaENhc2UiXSxbMywiY2FyZElkIiwiZ3JvdXBOYW1lIiwiZnVsbFdpZHRoQ2hhbmdlZCIsImZ1bGxIZWlnaHRDaGFuZ2VkIiwicGluU3RhdGVDaGFuZ2VkIiw0LCJuZ1N3aXRjaENhc2UiXSxbMywiY2FyZElkIiwiZ3JvdXBOYW1lIiwicnVuQ29sb3JTY2FsZSIsImZ1bGxXaWR0aENoYW5nZWQiLCJmdWxsSGVpZ2h0Q2hhbmdlZCIsInBpblN0YXRlQ2hhbmdlZCIsNCwibmdTd2l0Y2hDYXNlIl0sWzQsIm5nU3dpdGNoRGVmYXVsdCJdLFszLCJjYXJkSWQiLCJncm91cE5hbWUiLCJydW5Db2xvclNjYWxlIiwiZnVsbFdpZHRoQ2hhbmdlZCIsInBpblN0YXRlQ2hhbmdlZCJdLFszLCJjYXJkSWQiLCJncm91cE5hbWUiLCJmdWxsV2lkdGhDaGFuZ2VkIiwiZnVsbEhlaWdodENoYW5nZWQiLCJwaW5TdGF0ZUNoYW5nZWQiXSxbMywiY2FyZElkIiwiZ3JvdXBOYW1lIiwicnVuQ29sb3JTY2FsZSIsImZ1bGxXaWR0aENoYW5nZWQiLCJmdWxsSGVpZ2h0Q2hhbmdlZCIsInBpblN0YXRlQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZRcCgwLGJndCw1LDQsIm5nLWNvbnRhaW5lciIsMCksMiZlJiZEbSgibmdJZiIsbi5pc0V2ZXJWaXNpYmxlKX0sZGlyZWN0aXZlczpbZE0sZk0sZ00saE0sWDIsSWZ0LG1ndF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh5Z3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiY2FyZC12aWV3LWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6ImNhcmRfdmlld19jb21wb25lbnQubmcuaHRtbCIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7aXNFdmVyVmlzaWJsZTpbe3R5cGU6eHl9XSxjYXJkSWQ6W3t0eXBlOnh5fV0sZ3JvdXBOYW1lOlt7dHlwZTp4eX1dLHBsdWdpblR5cGU6W3t0eXBlOnh5fV0scnVuQ29sb3JTY2FsZTpbe3R5cGU6eHl9XSxmdWxsV2lkdGhDaGFuZ2VkOlt7dHlwZTpPeX1dLGZ1bGxIZWlnaHRDaGFuZ2VkOlt7dHlwZTpPeX1dLHBpblN0YXRlQ2hhbmdlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIF9ndHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5pc0V2ZXJWaXNpYmxlPSExLHRoaXMuc2hvd0Z1bGxXaWR0aD0hMSx0aGlzLnNob3dGdWxsSGVpZ2h0PSExLHRoaXMucnVuQ29sb3JTY2FsZSQ9dGhpcy5zdG9yZS5zZWxlY3Qoek4pLnBpcGUoQmUoMzUwLHZvaWQgMCx7bGVhZGluZzohMCx0cmFpbGluZzohMH0pLEl0KCh0PT5lPT50Lmhhc093blByb3BlcnR5KGUpP3RbZV06IiNmZmYiKSkpfW9uVmlzaWJpbGl0eUNoYW5nZSh7dmlzaWJsZTp0fSl7dGhpcy5pc0V2ZXJWaXNpYmxlPXRoaXMuaXNFdmVyVmlzaWJsZXx8dH1vbkZ1bGxXaWR0aENoYW5nZWQodCl7dGhpcy5zaG93RnVsbFdpZHRoPXR9b25GdWxsSGVpZ2h0Q2hhbmdlZCh0KXt0aGlzLnNob3dGdWxsSGVpZ2h0PXR9b25QaW5TdGF0ZUNoYW5nZWQoKXt0aGlzLnN0b3JlLnNlbGVjdCh3VCx0aGlzLmNhcmRJZCkucGlwZShiZSgxKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChTVCkpKS5zdWJzY3JpYmUoKChbdCxlXSk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKG9SKHtjYXJkSWQ6dGhpcy5jYXJkSWQsY2FuQ3JlYXRlTmV3UGluczplLHdhc1Bpbm5lZDp0fSkpfSkpfX1mdW5jdGlvbiBDZ3QodCxlKXsxJnQmJkltKDApfWZ1bmN0aW9uIE1ndCh0LGUpe2lmKDEmdCYmVG0oMCwiY2FyZC12aWV3Iiw0KSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgpO0RtKCJjYXJkSWQiLHQuY2FyZElkKSgiZ3JvdXBOYW1lIixuLmdyb3VwTmFtZSkoInBsdWdpblR5cGUiLHQucGx1Z2luKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcikoImNhcmRMYXp5TG9hZGVyIix0LmNhcmRJZCl9fWZ1bmN0aW9uIHZndCh0LGUpezEmdCYmSW0oMCl9ZnVuY3Rpb24geGd0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwxMyksVm0oImNsaWNrIiwoZnVuY3Rpb24gZShuKXtoaSh0KTtjb25zdCBvPVltKDMpO3JldHVybiBvLmhhbmRsZVBhZ2VDaGFuZ2Uoby5wYWdlSW5kZXgtMSxuLnRhcmdldCl9KSksa3UoMSwiIFByZXZpb3VzICIpLEFtKCl9MiZ0JiZEbSgiZGlzYWJsZWQiLDA9PT1ZbSgzKS5wYWdlSW5kZXgpfWZ1bmN0aW9uIE9ndCh0LGUpezEmdCYmVG0oMCwibWF0LWljb24iLDE3KX1mdW5jdGlvbiBQZ3QodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiwxOCl9ZnVuY3Rpb24gd2d0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwxNCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgzKS5ncm91cEV4cGFuc2lvblRvZ2dsZWQuZW1pdCgpfSkpLFFwKDEsT2d0LDEsMCwibWF0LWljb24iLDE1KSxRcCgyLFBndCwxLDAsIm5nLXRlbXBsYXRlIixudWxsLDE2LGliKSxBbSgpfWlmKDImdCl7Y29uc3QgdD0kcCgzKSxlPVltKDMpO3JjKDEpLERtKCJuZ0lmIixlLmlzR3JvdXBFeHBhbmRlZCkoIm5nSWZFbHNlIix0KX19ZnVuY3Rpb24ga2d0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwic3BhbiIsMjEpLFJtKDEsImlucHV0IiwyMiksVm0oImlucHV0IiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oNCkub25QYWdpbmF0aW9uSW5wdXRDaGFuZ2Uobil9KSkoImNoYW5nZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDQpLm9uUGFnaW5hdGlvbklucHV0Q2hhbmdlKG4pfSkpLEFtKCksa3UoMiksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oNCk7cmMoMSksRG0oInZhbHVlIix0LnBhZ2VJbmRleCsxKSgibWF4Iix0Lm51bVBhZ2VzKSxyYygxKSxEdSgiIG9mICIsdC5udW1QYWdlcywiIil9fWZ1bmN0aW9uIFNndCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsInNwYW4iKSxRcCgxLGtndCwzLDMsInNwYW4iLDE5KSxSbSgyLCJidXR0b24iLDIwKSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKG4pe2hpKHQpO2NvbnN0IG89WW0oMyk7cmV0dXJuIG8uaGFuZGxlUGFnZUNoYW5nZShvLnBhZ2VJbmRleCsxLG4udGFyZ2V0KX0pKSxrdSgzLCIgTmV4dCAiKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpLmlzQm90dG9tQ29udHJvbCxlPVltKCk7cmMoMSksRG0oIm5nSWYiLGUuc2hvd1BhZ2luYXRpb25JbnB1dCh0KSkscmMoMSksRG0oImRpc2FibGVkIixlLnBhZ2VJbmRleCsxPj1lLm51bVBhZ2VzKX19ZnVuY3Rpb24gRGd0KHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiw2KSxSbSgxLCJzcGFuIiw3KSxRcCgyLHhndCwyLDEsImJ1dHRvbiIsOCksQW0oKSxSbSgzLCJzcGFuIiw5KSxRcCg0LHdndCw0LDIsImJ1dHRvbiIsMTApLEFtKCksUm0oNSwic3BhbiIsMTEpLFFwKDYsU2d0LDQsMiwic3BhbiIsMTIpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKCkuaXNCb3R0b21Db250cm9sLGU9WW0oKTtyYygyKSxEbSgibmdJZiIsZS5zaG93UGFnaW5hdGlvbkNvbnRyb2xzKSxyYygyKSxEbSgibmdJZiIsZS5zaG93RXhwYW5kKHQpKSxyYygyKSxEbSgibmdJZiIsZS5zaG93UGFnaW5hdGlvbkNvbnRyb2xzKX19ZnVuY3Rpb24gRWd0KHQsZSl7aWYoMSZ0JiZRcCgwLERndCw3LDMsImRpdiIsNSksMiZ0KXtjb25zdCB0PWUuaXNCb3R0b21Db250cm9sLG49WW0oKTtEbSgibmdJZiIsbi5zaG93UGFnaW5hdGlvbkNvbnRyb2xzfHxuLnNob3dFeHBhbmQodCkpfX1fZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fF9ndCkoU20oSXcpKX0sX2d0Lsm1Y21wPXRvKHt0eXBlOl9ndCxzZWxlY3RvcnM6W1siY2FyZC12aWV3Il1dLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJmdWxsLXdpZHRoIixuLnNob3dGdWxsV2lkdGgpKCJmdWxsLWhlaWdodCIsbi5zaG93RnVsbEhlaWdodCl9LGlucHV0czp7Y2FyZElkOiJjYXJkSWQiLGdyb3VwTmFtZToiZ3JvdXBOYW1lIixwbHVnaW5UeXBlOiJwbHVnaW5UeXBlIn0sZGVjbHM6Mix2YXJzOjcsY29uc3RzOltbIm9ic2VydmVJbnRlcnNlY3Rpb24iLCIiLCJpbnRlcnNlY3Rpb25PYnNlcnZlck1hcmdpbiIsIjIwMHB4IDIwMHB4IDIwMHB4IDIwMHB4IiwzLCJpc0V2ZXJWaXNpYmxlIiwiY2FyZElkIiwiZ3JvdXBOYW1lIiwicGx1Z2luVHlwZSIsInJ1bkNvbG9yU2NhbGUiLCJmdWxsV2lkdGhDaGFuZ2VkIiwiZnVsbEhlaWdodENoYW5nZWQiLCJwaW5TdGF0ZUNoYW5nZWQiLCJvblZpc2liaWxpdHlDaGFuZ2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImNhcmQtdmlldy1jb21wb25lbnQiLDApLFZtKCJmdWxsV2lkdGhDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkZ1bGxXaWR0aENoYW5nZWQoZSl9KSkoImZ1bGxIZWlnaHRDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkZ1bGxIZWlnaHRDaGFuZ2VkKGUpfSkpKCJwaW5TdGF0ZUNoYW5nZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25QaW5TdGF0ZUNoYW5nZWQoKX0pKSgib25WaXNpYmlsaXR5Q2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblZpc2liaWxpdHlDaGFuZ2UoZSl9KSksQWgoMSwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJpc0V2ZXJWaXNpYmxlIixuLmlzRXZlclZpc2libGUpKCJjYXJkSWQiLG4uY2FyZElkKSgiZ3JvdXBOYW1lIixuLmdyb3VwTmFtZSkoInBsdWdpblR5cGUiLG4ucGx1Z2luVHlwZSkoInJ1bkNvbG9yU2NhbGUiLFRoKDEsNSxuLnJ1bkNvbG9yU2NhbGUkKSl9LGRpcmVjdGl2ZXM6W3lndCxOZnRdLHBpcGVzOlt3TV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoX2d0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImNhcmQtdmlldyIsdGVtcGxhdGU6J1xuICAgIDxjYXJkLXZpZXctY29tcG9uZW50XG4gICAgICBbaXNFdmVyVmlzaWJsZV09ImlzRXZlclZpc2libGUiXG4gICAgICBbY2FyZElkXT0iY2FyZElkIlxuICAgICAgW2dyb3VwTmFtZV09Imdyb3VwTmFtZSJcbiAgICAgIFtwbHVnaW5UeXBlXT0icGx1Z2luVHlwZSJcbiAgICAgIFtydW5Db2xvclNjYWxlXT0icnVuQ29sb3JTY2FsZSQgfCBhc3luYyJcbiAgICAgIChmdWxsV2lkdGhDaGFuZ2VkKT0ib25GdWxsV2lkdGhDaGFuZ2VkKCRldmVudCkiXG4gICAgICAoZnVsbEhlaWdodENoYW5nZWQpPSJvbkZ1bGxIZWlnaHRDaGFuZ2VkKCRldmVudCkiXG4gICAgICAocGluU3RhdGVDaGFuZ2VkKT0ib25QaW5TdGF0ZUNoYW5nZWQoKSJcbiAgICAgIG9ic2VydmVJbnRlcnNlY3Rpb25cbiAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyTWFyZ2luPSIyMDBweCAyMDBweCAyMDBweCAyMDBweCJcbiAgICAgIChvblZpc2liaWxpdHlDaGFuZ2UpPSJvblZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KSJcbiAgICA+XG4gICAgPC9jYXJkLXZpZXctY29tcG9uZW50PlxuICAnLHN0eWxlVXJsczpbImNhcmRfdmlld19jb250YWluZXIuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7Y2FyZElkOlt7dHlwZTp4eX1dLGdyb3VwTmFtZTpbe3R5cGU6eHl9XSxwbHVnaW5UeXBlOlt7dHlwZTp4eX1dLHNob3dGdWxsV2lkdGg6W3t0eXBlOlB5LGFyZ3M6WyJjbGFzcy5mdWxsLXdpZHRoIl19XSxzaG93RnVsbEhlaWdodDpbe3R5cGU6UHksYXJnczpbImNsYXNzLmZ1bGwtaGVpZ2h0Il19XX0pO2NvbnN0IFJndD1mdW5jdGlvbigpe3JldHVybntpc0JvdHRvbUNvbnRyb2w6ITF9fSxBZ3Q9ZnVuY3Rpb24oKXtyZXR1cm57aXNCb3R0b21Db250cm9sOiEwfX07Y2xhc3MgVGd0e2NvbnN0cnVjdG9yKHQpe3RoaXMuY2RrU2Nyb2xsYWJsZT10LHRoaXMuUGx1Z2luVHlwZT1oQSx0aGlzLnBhZ2VJbmRleENoYW5nZWQ9bmV3IExoLHRoaXMuZ3JvdXBFeHBhbnNpb25Ub2dnbGVkPW5ldyBMaH1zaG93RXhwYW5kKHQpe3JldHVybiEhdCYmdGhpcy5pc0dyb3VwRXhwYW5kYWJsZX1zaG93UGFnaW5hdGlvbklucHV0KHQpe3JldHVybiB0fWhhbmRsZVBhZ2VDaGFuZ2UodCxlKXtjb25zdCBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO3NldFRpbWVvdXQoKCgpPT57dGhpcy5zY3JvbGxUb0tlZXBUYXJnZXRQb3NpdGlvbihlLG4pfSksMCksdGhpcy5wYWdlSW5kZXhDaGFuZ2VkLmVtaXQodCl9c2Nyb2xsVG9LZWVwVGFyZ2V0UG9zaXRpb24odCxlKXt2YXIgbjtjb25zdCBvPW51bGw9PT0obj10aGlzLmNka1Njcm9sbGFibGUpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50O28mJm8uc2Nyb2xsVG8oMCx0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcC1lK28uc2Nyb2xsVG9wKX10cmFja0J5Q2FyZHModCxlKXtyZXR1cm4gZS5jYXJkSWR9b25QYWdpbmF0aW9uSW5wdXRDaGFuZ2UodCl7Y29uc3QgZT10LnRhcmdldDtpZigiaW5wdXQiPT09dC50eXBlJiYiIj09PWUudmFsdWUpcmV0dXJuO2NvbnN0IG49TnVtYmVyKGUudmFsdWUpLTEsbz1NYXRoLm1pbihNYXRoLm1heCgwLG4pLHRoaXMubnVtUGFnZXMtMSk7ZS52YWx1ZSE9PVN0cmluZyhvKzEpJiYoZS52YWx1ZT1TdHJpbmcobysxKSksdGhpcy5oYW5kbGVQYWdlQ2hhbmdlKG8sZSl9fVRndC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VGd0KShTbShtRiw4KSl9LFRndC7JtWNtcD10byh7dHlwZTpUZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtY2FyZC1ncmlkLWNvbXBvbmVudCJdXSxpbnB1dHM6e2lzR3JvdXBFeHBhbmRhYmxlOiJpc0dyb3VwRXhwYW5kYWJsZSIsaXNHcm91cEV4cGFuZGVkOiJpc0dyb3VwRXhwYW5kZWQiLGdyb3VwTmFtZToiZ3JvdXBOYW1lIixwYWdlSW5kZXg6InBhZ2VJbmRleCIsbnVtUGFnZXM6Im51bVBhZ2VzIixjYXJkSWRzV2l0aE1ldGFkYXRhOiJjYXJkSWRzV2l0aE1ldGFkYXRhIixjYXJkT2JzZXJ2ZXI6ImNhcmRPYnNlcnZlciIsc2hvd1BhZ2luYXRpb25Db250cm9sczoic2hvd1BhZ2luYXRpb25Db250cm9scyJ9LG91dHB1dHM6e3BhZ2VJbmRleENoYW5nZWQ6InBhZ2VJbmRleENoYW5nZWQiLGdyb3VwRXhwYW5zaW9uVG9nZ2xlZDoiZ3JvdXBFeHBhbnNpb25Ub2dnbGVkIn0sZGVjbHM6Nix2YXJzOjgsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZSxuO3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJQcmV2aW91cyBwYWdlIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0aGF0IHNldHMgYSBncm91cCB0byB0aGUgcHJldmlvdXMgcGFnZS7ikJ81NzVlNzgyZmQyN2YyZWU3MGEwMzRhNzc1ZWZlOWFkMTYyNDcyMjUw4pCfMzYyOTk2MDU0NDg3NTM2MDA0NjpQcmV2aW91cyBwYWdlYCxlPSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJFeHBhbmQgZ3JvdXAiKTokbG9jYWxpemVgOkEgYnV0dG9uIHRoYXQgYWxsb3dzIHVzZXIgdG8gZXhwYW5kIGEgdGFnIGdyb3VwLuKQn2ZmYWExMTQ3MWI4NzhhNmRmZmUyZTY4YzZmMzcwNjRhOWUwNzQ4NTPikJ81Mzg2MDU0MzI1Mjc0Nzc5MjU4OkV4cGFuZCBncm91cGAsbj0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiTmV4dCBwYWdlIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0aGF0IHNldHMgYSBncm91cCB0byB0aGUgbmV4dCBwYWdlLuKQn2NlM2NlZmIxY2QwMDk5YWE1MDAzZGRhMTZlYzllYjIxZmQ4YmE3ODnikJ8zMzM3MzAxNjk0MjEwMjg3NTk1Ok5leHQgcGFnZWAsW1s0LCJuZ1RlbXBsYXRlT3V0bGV0IiwibmdUZW1wbGF0ZU91dGxldENvbnRleHQiXSxbMSwiY2FyZC1ncmlkIl0sWzMsImNhcmRJZCIsImdyb3VwTmFtZSIsInBsdWdpblR5cGUiLCJjYXJkT2JzZXJ2ZXIiLCJjYXJkTGF6eUxvYWRlciIsNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWyJncm91cENvbnRyb2xzIiwiIl0sWzMsImNhcmRJZCIsImdyb3VwTmFtZSIsInBsdWdpblR5cGUiLCJjYXJkT2JzZXJ2ZXIiLCJjYXJkTGF6eUxvYWRlciJdLFsiY2xhc3MiLCJncm91cC1jb250cm9scyIsNCwibmdJZiJdLFsxLCJncm91cC1jb250cm9scyJdLFsxLCJwcmV2LWNvbnRhaW5lciJdLFsiY2xhc3MiLCJwcmV2IHBhZ2luYXRpb24tYnV0dG9uIiwibWF0LWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywiZGlzYWJsZWQiLCJjbGljayIsNCwibmdJZiJdLFsxLCJleHBhbmQtY29udGFpbmVyIl0sWyJjbGFzcyIsImV4cGFuZC1ncm91cC1idXR0b24iLCJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixlLDMsImNsaWNrIiw0LCJuZ0lmIl0sWzEsImlucHV0LWFuZC1uZXh0LWNvbnRhaW5lciJdLFs0LCJuZ0lmIl0sWyJtYXQtYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwxLCJwcmV2IiwicGFnaW5hdGlvbi1idXR0b24iLDMsImRpc2FibGVkIiwiY2xpY2siXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGUsMSwiZXhwYW5kLWdyb3VwLWJ1dHRvbiIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJleHBhbmRfbGVzc18yNHB4Iiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImV4cGFuZE1vcmUiLCIiXSxbInN2Z0ljb24iLCJleHBhbmRfbGVzc18yNHB4Il0sWyJzdmdJY29uIiwiZXhwYW5kX21vcmVfMjRweCJdLFsiY2xhc3MiLCJwYWdpbmF0aW9uLWlucHV0Iiw0LCJuZ0lmIl0sWyJtYXQtYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsbiwxLCJuZXh0IiwicGFnaW5hdGlvbi1idXR0b24iLDMsImRpc2FibGVkIiwiY2xpY2siXSxbMSwicGFnaW5hdGlvbi1pbnB1dCJdLFsidHlwZSIsIm51bWJlciIsIm1pbiIsIjEiLDMsInZhbHVlIiwibWF4IiwiaW5wdXQiLCJjaGFuZ2UiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRcCgwLENndCwxLDAsIm5nLWNvbnRhaW5lciIsMCksUm0oMSwiZGl2IiwxKSxRcCgyLE1ndCwxLDUsImNhcmQtdmlldyIsMiksQW0oKSxRcCgzLHZndCwxLDAsIm5nLWNvbnRhaW5lciIsMCksUXAoNCxFZ3QsMSwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwzLGliKSksMiZlKXtjb25zdCB0PSRwKDUpO0RtKCJuZ1RlbXBsYXRlT3V0bGV0Iix0KSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLENoKDYsUmd0KSkscmMoMiksRG0oIm5nRm9yT2YiLG4uY2FyZElkc1dpdGhNZXRhZGF0YSkoIm5nRm9yVHJhY2tCeSIsbi50cmFja0J5Q2FyZHMpLHJjKDEpLERtKCJuZ1RlbXBsYXRlT3V0bGV0Iix0KSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLENoKDcsQWd0KSl9fSxkaXJlY3RpdmVzOltNTSxsTSxfZ3QsbTIsZE0sWEgsRFddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17Y29udGFpbjpjb250ZW50fS5jYXJkLWdyaWRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDMzNXB4LCBhdXRvKSk7Z2FwOjE2cHg7cGFkZGluZzoxNnB4fWNhcmQtdmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250YWluOnN0cmljdDtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjMyMHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIGNhcmQtdmlld1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIGNhcmQtdmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjNTU1fWNhcmQtdmlldy5mdWxsLXdpZHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtjb250YWluOmxheW91dCBwYWludDtncmlkLWNvbHVtbi1zdGFydDoxO2dyaWQtY29sdW1uLWVuZDotMX1jYXJkLXZpZXcuZnVsbC1oZWlnaHRbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6NDgwcHh9Lmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2Rpc3BsYXk6Z3JpZDthbGlnbi1pdGVtczpjZW50ZXI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnIgMWZyO2dhcDoxNnB4O3BhZGRpbmc6MCAxNnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Lmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXTpmaXJzdC1vZi10eXBle3BhZGRpbmctdG9wOjE2cHh9Lmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXTpsYXN0LW9mLXR5cGV7cGFkZGluZy1ib3R0b206MTZweH0ucHJldi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2p1c3RpZnktc2VsZjpmbGV4LXN0YXJ0fS5leHBhbmQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtqdXN0aWZ5LXNlbGY6Y2VudGVyfS5pbnB1dC1hbmQtbmV4dC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2p1c3RpZnktc2VsZjpmbGV4LWVuZH0ucGFnaW5hdGlvbi1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjE2cHh9LnBhZ2luYXRpb24taW5wdXRbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBzb2xpZCBjdXJyZW50Q29sb3I7Y29sb3I6aW5oZXJpdDtmb250OmluaGVyaXR9LmV4cGFuZC1ncm91cC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAucGFnaW5hdGlvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5leHBhbmQtZ3JvdXAtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmV4cGFuZC1ncm91cC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5wYWdpbmF0aW9uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5wYWdpbmF0aW9uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmV4cGFuZC1ncm91cC1idXR0b25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVkLCAucGFnaW5hdGlvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVke2NvbG9yOiM3NTc1NzV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmV4cGFuZC1ncm91cC1idXR0b25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVkLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZXhwYW5kLWdyb3VwLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV06ZGlzYWJsZWR7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAucGFnaW5hdGlvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVkLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAucGFnaW5hdGlvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVke2NvbG9yOiM2MTYxNjF9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFRndCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLWNhcmQtZ3JpZC1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL2NhcmRfZ3JpZF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9jYXJkX2dyaWRfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTptRixkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV19KSx7aXNHcm91cEV4cGFuZGFibGU6W3t0eXBlOnh5fV0saXNHcm91cEV4cGFuZGVkOlt7dHlwZTp4eX1dLGdyb3VwTmFtZTpbe3R5cGU6eHl9XSxwYWdlSW5kZXg6W3t0eXBlOnh5fV0sbnVtUGFnZXM6W3t0eXBlOnh5fV0sY2FyZElkc1dpdGhNZXRhZGF0YTpbe3R5cGU6eHl9XSxjYXJkT2JzZXJ2ZXI6W3t0eXBlOnh5fV0sc2hvd1BhZ2luYXRpb25Db250cm9sczpbe3R5cGU6eHl9XSxwYWdlSW5kZXhDaGFuZ2VkOlt7dHlwZTpPeX1dLGdyb3VwRXhwYW5zaW9uVG9nZ2xlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIE5ndHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5ncm91cE5hbWU9bnVsbCx0aGlzLmdyb3VwTmFtZSQ9bmV3IEYobnVsbCksdGhpcy5wYWdlSW5kZXgkPW5ldyBGKDApLHRoaXMuaXRlbXMkPW5ldyBGKFtdKSx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEksdGhpcy5udW1QYWdlcyQ9V3QoW3RoaXMuaXRlbXMkLHRoaXMuc3RvcmUuc2VsZWN0KFJOKV0pLnBpcGUoSXQoKChbdCxlXSk9Pk1hdGguY2VpbCh0Lmxlbmd0aC9lKSkpKSx0aGlzLmlzR3JvdXBFeHBhbmRlZCQ9dGhpcy5ncm91cE5hbWUkLnBpcGUoemUoKHQ9Pm51bGwhPT10P3RoaXMuc3RvcmUuc2VsZWN0KFZULHQpOkV0KCEwKSkpKSx0aGlzLnNob3dQYWdpbmF0aW9uQ29udHJvbHMkPVd0KFt0aGlzLm51bVBhZ2VzJCx0aGlzLnN0b3JlLnNlbGVjdChSTiksdGhpcy5pc0dyb3VwRXhwYW5kZWQkXSkucGlwZShJdCgoKFt0LGUsbl0pPT4hKHQ8PTEpJiYoZTw9M3x8bikpKSksdGhpcy5pc0dyb3VwRXhwYW5kYWJsZSQ9V3QoW3RoaXMuaXRlbXMkLHRoaXMuc3RvcmUuc2VsZWN0KFJOKV0pLnBpcGUoSXQoKChbdCxlXSk9PiEobnVsbD09PXRoaXMuZ3JvdXBOYW1lfHxlPD0zfHx0Lmxlbmd0aDw9MykpKSksdGhpcy5ub3JtYWxpemVkUGFnZUluZGV4JD1XdChbdGhpcy5wYWdlSW5kZXgkLHRoaXMubnVtUGFnZXMkXSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLEZlKCgoW3QsZV0pPT57MCE9PWUmJih0Pj1lP3RoaXMucGFnZUluZGV4JC5uZXh0KGUtMSk6dDwwJiZ0aGlzLnBhZ2VJbmRleCQubmV4dCgwKSl9KSksSXQoKChbdCxlXSk9Pk1hdGgubWluKE1hdGgubWF4KHQsMCksZS0xKSkpLEFlKDEpKSx0aGlzLnBhZ2VkSXRlbXMkPVd0KFt0aGlzLml0ZW1zJCx0aGlzLnN0b3JlLnNlbGVjdChSTiksdGhpcy5ub3JtYWxpemVkUGFnZUluZGV4JCx0aGlzLmlzR3JvdXBFeHBhbmRlZCRdKS5waXBlKEl0KCgoW3QsZSxuLG9dKT0+e2NvbnN0IGk9ZSpuLGE9ZSpuK01hdGgubWluKG8/ZTozLGUpO3JldHVybiB0LnNsaWNlKGksYSl9KSkpfW5nT25DaGFuZ2VzKHQpe3QuY2FyZElkc1dpdGhNZXRhZGF0YSYmdGhpcy5pdGVtcyQubmV4dCh0aGlzLmNhcmRJZHNXaXRoTWV0YWRhdGEpLHQuZ3JvdXBOYW1lJiZ0aGlzLmdyb3VwTmFtZSQubmV4dCh0aGlzLmdyb3VwTmFtZSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfW9uUGFnZUluZGV4Q2hhbmdlZCh0KXt0aGlzLnBhZ2VJbmRleCQubmV4dCh0KX1vbkdyb3VwRXhwYW5zaW9uVG9nZ2xlZCgpe2lmKG51bGw9PT10aGlzLmdyb3VwTmFtZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YXJpYW50IGVycm9yOiBleHBhbnNpb24gY2Fubm90IGJlIHRvZ2dsZWQgd2hlbiBncm91cE5hbWUgaXMgbnVsbCIpO3RoaXMuc3RvcmUuZGlzcGF0Y2goblIoe3RhZ0dyb3VwOnRoaXMuZ3JvdXBOYW1lfSkpfX1mdW5jdGlvbiB6Z3QodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiw4KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEdSgiIix0LmNhcmRJZHNXaXRoTWV0YWRhdGEubGVuZ3RoLCIgY2FyZHMiKX19ZnVuY3Rpb24gSWd0KHQsZSl7MSZ0JiYoUm0oMCwic3BhbiIsOSksa3UoMSwiTmV3IGNhcmQgcGlubmVkIiksQW0oKSksMiZ0JiZqcCgiZGF0YS1pZCIsZS4kaW1wbGljaXQpfWZ1bmN0aW9uIEhndCh0LGUpe2lmKDEmdCYmVG0oMCwibWV0cmljcy1jYXJkLWdyaWQiLDEwKSwyJnQpe2NvbnN0IHQ9WW0oKTtEbSgiY2FyZElkc1dpdGhNZXRhZGF0YSIsdC5jYXJkSWRzV2l0aE1ldGFkYXRhKSgiY2FyZE9ic2VydmVyIix0LmNhcmRPYnNlcnZlcil9fWZ1bmN0aW9uIEZndCh0LGUpezEmdCYmKFJtKDAsImRpdiIsMTEpLGt1KDEsIlBpbiBjYXJkcyBmb3IgYSBxdWljayB2aWV3IGFuZCBjb21wYXJpc29uIiksQW0oKSl9Tmd0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxOZ3QpKFNtKEl3KSl9LE5ndC7JtWNtcD10byh7dHlwZTpOZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtY2FyZC1ncmlkIl1dLGlucHV0czp7Z3JvdXBOYW1lOiJncm91cE5hbWUiLGNhcmRJZHNXaXRoTWV0YWRhdGE6ImNhcmRJZHNXaXRoTWV0YWRhdGEiLGNhcmRPYnNlcnZlcjoiY2FyZE9ic2VydmVyIn0sZmVhdHVyZXM6W0JvXSxkZWNsczo3LHZhcnM6MjAsY29uc3RzOltbMywiaXNHcm91cEV4cGFuZGFibGUiLCJpc0dyb3VwRXhwYW5kZWQiLCJncm91cE5hbWUiLCJwYWdlSW5kZXgiLCJudW1QYWdlcyIsInNob3dQYWdpbmF0aW9uQ29udHJvbHMiLCJjYXJkSWRzV2l0aE1ldGFkYXRhIiwiY2FyZE9ic2VydmVyIiwicGFnZUluZGV4Q2hhbmdlZCIsImdyb3VwRXhwYW5zaW9uVG9nZ2xlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWV0cmljcy1jYXJkLWdyaWQtY29tcG9uZW50IiwwKSxWbSgicGFnZUluZGV4Q2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25QYWdlSW5kZXhDaGFuZ2VkKGUpfSkpKCJncm91cEV4cGFuc2lvblRvZ2dsZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Hcm91cEV4cGFuc2lvblRvZ2dsZWQoKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBaCg0LCJhc3luYyIpLEFoKDUsImFzeW5jIiksQWgoNiwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJpc0dyb3VwRXhwYW5kYWJsZSIsVGgoMSw4LG4uaXNHcm91cEV4cGFuZGFibGUkKSkoImlzR3JvdXBFeHBhbmRlZCIsVGgoMiwxMCxuLmlzR3JvdXBFeHBhbmRlZCQpKSgiZ3JvdXBOYW1lIixuLmdyb3VwTmFtZSkoInBhZ2VJbmRleCIsVGgoMywxMixuLm5vcm1hbGl6ZWRQYWdlSW5kZXgkKSkoIm51bVBhZ2VzIixUaCg0LDE0LG4ubnVtUGFnZXMkKSkoInNob3dQYWdpbmF0aW9uQ29udHJvbHMiLFRoKDUsMTYsbi5zaG93UGFnaW5hdGlvbkNvbnRyb2xzJCkpKCJjYXJkSWRzV2l0aE1ldGFkYXRhIixUaCg2LDE4LG4ucGFnZWRJdGVtcyQpKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcil9LGRpcmVjdGl2ZXM6W1RndF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE5ndCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLWNhcmQtZ3JpZCIsdGVtcGxhdGU6J1xuICAgIDxtZXRyaWNzLWNhcmQtZ3JpZC1jb21wb25lbnRcbiAgICAgIFtpc0dyb3VwRXhwYW5kYWJsZV09ImlzR3JvdXBFeHBhbmRhYmxlJCB8IGFzeW5jIlxuICAgICAgW2lzR3JvdXBFeHBhbmRlZF09ImlzR3JvdXBFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFtncm91cE5hbWVdPSJncm91cE5hbWUiXG4gICAgICBbcGFnZUluZGV4XT0ibm9ybWFsaXplZFBhZ2VJbmRleCQgfCBhc3luYyJcbiAgICAgIFtudW1QYWdlc109Im51bVBhZ2VzJCB8IGFzeW5jIlxuICAgICAgW3Nob3dQYWdpbmF0aW9uQ29udHJvbHNdPSJzaG93UGFnaW5hdGlvbkNvbnRyb2xzJCB8IGFzeW5jIlxuICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJwYWdlZEl0ZW1zJCB8IGFzeW5jIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICAgIChwYWdlSW5kZXhDaGFuZ2VkKT0ib25QYWdlSW5kZXhDaGFuZ2VkKCRldmVudCkiXG4gICAgICAoZ3JvdXBFeHBhbnNpb25Ub2dnbGVkKT0ib25Hcm91cEV4cGFuc2lvblRvZ2dsZWQoKSJcbiAgICA+XG4gICAgPC9tZXRyaWNzLWNhcmQtZ3JpZC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7Z3JvdXBOYW1lOlt7dHlwZTp4eX1dLGNhcmRJZHNXaXRoTWV0YWRhdGE6W3t0eXBlOnh5fV0sY2FyZE9ic2VydmVyOlt7dHlwZTp4eX1dfSk7Y2xhc3MgTGd0e31MZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExndCl9LExndC7JtWNtcD10byh7dHlwZTpMZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtcGlubmVkLXZpZXctY29tcG9uZW50Il1dLGlucHV0czp7Y2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIiLGNhcmRJZHNXaXRoTWV0YWRhdGE6ImNhcmRJZHNXaXRoTWV0YWRhdGEiLG5ld0NhcmRQaW5uZWRJZHM6Im5ld0NhcmRQaW5uZWRJZHMifSxkZWNsczoxMCx2YXJzOjQsY29uc3RzOltbMSwiZ3JvdXAtdG9vbGJhciJdLFsic3ZnSWNvbiIsImtlZXBfMjRweCJdLFsxLCJncm91cC10ZXh0Il0sWyJhcmlhLXJvbGUiLCJoZWFkaW5nIiwiYXJpYS1sZXZlbCIsIjMiLDEsImdyb3VwLXRpdGxlIl0sWyJjbGFzcyIsImdyb3VwLWNhcmQtY291bnQiLDQsIm5nSWYiXSxbImNsYXNzIiwibmV3LWNhcmQtcGlubmVkIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywiY2FyZElkc1dpdGhNZXRhZGF0YSIsImNhcmRPYnNlcnZlciIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJlbXB0eVBpbm5lZFZpZXciLCIiXSxbMSwiZ3JvdXAtY2FyZC1jb3VudCJdLFsxLCJuZXctY2FyZC1waW5uZWQiXSxbMywiY2FyZElkc1dpdGhNZXRhZGF0YSIsImNhcmRPYnNlcnZlciJdLFsxLCJlbXB0eS1tZXNzYWdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFRtKDEsIm1hdC1pY29uIiwxKSxSbSgyLCJzcGFuIiwyKSxSbSgzLCJzcGFuIiwzKSxrdSg0LCJQaW5uZWQiKSxBbSgpLFFwKDUsemd0LDIsMSwic3BhbiIsNCksUXAoNixJZ3QsMiwxLCJzcGFuIiw1KSxBbSgpLEFtKCksUXAoNyxIZ3QsMSwyLCJtZXRyaWNzLWNhcmQtZ3JpZCIsNiksUXAoOCxGZ3QsMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw3LGliKSksMiZlKXtjb25zdCB0PSRwKDkpO3JjKDUpLERtKCJuZ0lmIixuLmNhcmRJZHNXaXRoTWV0YWRhdGEubGVuZ3RoPjEpLHJjKDEpLERtKCJuZ0Zvck9mIixuLm5ld0NhcmRQaW5uZWRJZHMpLHJjKDEpLERtKCJuZ0lmIixuLmNhcmRJZHNXaXRoTWV0YWRhdGEubGVuZ3RoKSgibmdJZkVsc2UiLHQpfX0sZGlyZWN0aXZlczpbRFcsZE0sbE0sTmd0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTpmbGV4O2ZsZXg6bm9uZTtoZWlnaHQ6NDJweDttYXJnaW4tYm90dG9tOi0xcHg7cGFkZGluZzowIDE2cHg7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MTtib3gtc2hhZG93OjBweCAycHggNHB4IDBweCByZ2JhKDAsMCwwLC4xNSl9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym94LXNoYWRvdzowcHggMnB4IDRweCAwcHggcmdiYSgyNTUsMjU1LDI1NSwuMTUpfW1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZsZXg6bm9uZTttYXJnaW4tcmlnaHQ6NXB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5ncm91cC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6YmFzZWxpbmU7Z2FwOjZweH0uZ3JvdXAtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0uZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmVtcHR5LW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7Zm9udC1zaXplOjEzcHg7Zm9udC1zdHlsZTppdGFsaWM7cGFkZGluZzoxNnB4O3RleHQtYWxpZ246Y2VudGVyfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5lbXB0eS1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmVtcHR5LW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5uZXctY2FyZC1waW5uZWRbX25nY29udGVudC0lQ09NUCVde2FuaW1hdGlvbjpwaW5uZWQtdmlldy1mYWRlLW91dCAzcyBsaW5lYXI7YmFja2dyb3VuZDojZjQ0MzM2O2JvcmRlci1yYWRpdXM6NXB4O2NvbG9yOiNmZmY7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEzcHg7b3BhY2l0eTowO3BhZGRpbmc6M3B4IDVweH1Aa2V5ZnJhbWVzIHBpbm5lZC12aWV3LWZhZGUtb3V0e2Zyb217b3BhY2l0eToxfTY2JXtvcGFjaXR5Oi45OX10b3tvcGFjaXR5OjB9fSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMZ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1waW5uZWQtdmlldy1jb21wb25lbnQiLHRlbXBsYXRlOidcbiAgICA8ZGl2IGNsYXNzPSJncm91cC10b29sYmFyIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPSJrZWVwXzI0cHgiPjwvbWF0LWljb24+XG4gICAgICA8c3BhbiBjbGFzcz0iZ3JvdXAtdGV4dCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJncm91cC10aXRsZSIgYXJpYS1yb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIzIlxuICAgICAgICAgID5QaW5uZWQ8L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3BhbiAqbmdJZj0iY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGggPiAxIiBjbGFzcz0iZ3JvdXAtY2FyZC1jb3VudCJcbiAgICAgICAgICA+e3sgY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGggfX0gY2FyZHM8L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0Zvcj0ibGV0IGlkIG9mIG5ld0NhcmRQaW5uZWRJZHMiXG4gICAgICAgICAgW2F0dHIuZGF0YS1pZF09ImlkIlxuICAgICAgICAgIGNsYXNzPSJuZXctY2FyZC1waW5uZWQiXG4gICAgICAgICAgPk5ldyBjYXJkIHBpbm5lZDwvc3BhblxuICAgICAgICA+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPG1ldHJpY3MtY2FyZC1ncmlkXG4gICAgICAqbmdJZj0iY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGg7IGVsc2UgZW1wdHlQaW5uZWRWaWV3IlxuICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJjYXJkSWRzV2l0aE1ldGFkYXRhIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICA+PC9tZXRyaWNzLWNhcmQtZ3JpZD5cbiAgICA8bmctdGVtcGxhdGUgI2VtcHR5UGlubmVkVmlldz5cbiAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LW1lc3NhZ2UiPlBpbiBjYXJkcyBmb3IgYSBxdWljayB2aWV3IGFuZCBjb21wYXJpc29uPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgJyxzdHlsZVVybHM6WyJwaW5uZWRfdmlld19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7Y2FyZE9ic2VydmVyOlt7dHlwZTp4eX1dLGNhcmRJZHNXaXRoTWV0YWRhdGE6W3t0eXBlOnh5fV0sbmV3Q2FyZFBpbm5lZElkczpbe3R5cGU6eHl9XX0pO2NsYXNzIEJndHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5jYXJkSWRzV2l0aE1ldGFkYXRhJD10aGlzLnN0b3JlLnNlbGVjdChQVCkucGlwZShOZShbXSkpLHRoaXMubmV3Q2FyZFBpbm5lZElkcyQ9dGhpcy5zdG9yZS5zZWxlY3QoUFQpLnBpcGUoVGUoMSksSXQoKHQ9PnQubWFwKCh0PT50LmNhcmRJZCkpKSksRGUoKSxJdCgoKFt0LGVdKT0+e2NvbnN0IG49bmV3IFNldCh0KSxvPW5ldyBTZXQoZSk7Zm9yKGNvbnN0IHQgb2YgbylpZighbi5oYXModCkpcmV0dXJuIERhdGUubm93KCk7cmV0dXJuIG51bGx9KSksTmUobnVsbCksRGUoKSxJdCgoKFt0LGVdKT0+bnVsbD09PXQmJm51bGw9PT1lP251bGw6bnVsbD09PWU/W3RdOltlXSkpLGNlKCh0PT5udWxsIT09dCkpLEl0KCh0PT5bdFswXV0pKSl9fUJndC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Qmd0KShTbShJdykpfSxCZ3QuybVjbXA9dG8oe3R5cGU6Qmd0LHNlbGVjdG9yczpbWyJtZXRyaWNzLXBpbm5lZC12aWV3Il1dLGlucHV0czp7Y2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifSxkZWNsczozLHZhcnM6Nyxjb25zdHM6W1szLCJjYXJkSWRzV2l0aE1ldGFkYXRhIiwibmV3Q2FyZFBpbm5lZElkcyIsImNhcmRPYnNlcnZlciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwibWV0cmljcy1waW5uZWQtdmlldy1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSksMiZlJiZEbSgiY2FyZElkc1dpdGhNZXRhZGF0YSIsVGgoMSwzLG4uY2FyZElkc1dpdGhNZXRhZGF0YSQpKSgibmV3Q2FyZFBpbm5lZElkcyIsVGgoMiw1LG4ubmV3Q2FyZFBpbm5lZElkcyQpKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcil9LGRpcmVjdGl2ZXM6W0xndF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJndCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLXBpbm5lZC12aWV3Iix0ZW1wbGF0ZTonXG4gICAgPG1ldHJpY3MtcGlubmVkLXZpZXctY29tcG9uZW50XG4gICAgICBbY2FyZElkc1dpdGhNZXRhZGF0YV09ImNhcmRJZHNXaXRoTWV0YWRhdGEkIHwgYXN5bmMiXG4gICAgICBbbmV3Q2FyZFBpbm5lZElkc109Im5ld0NhcmRQaW5uZWRJZHMkIHwgYXN5bmMiXG4gICAgICBbY2FyZE9ic2VydmVyXT0iY2FyZE9ic2VydmVyIlxuICAgID48L21ldHJpY3MtcGlubmVkLXZpZXctY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSkse2NhcmRPYnNlcnZlcjpbe3R5cGU6eHl9XX0pO2NvbnN0IFZndD1adyhNVCxOTiwoKHQsZSk9PnQuZmlsdGVyKCh0PT4heEEodC5wbHVnaW4pfHxCb29sZWFuKGUmJmUuZ2V0KHQucnVuSWQpKSkpKSksamd0PVp3KFZndCwodD0+dC5zb3J0KCgodCxlKT0+ZzIodC50YWcsZS50YWcpKSkpKTtmdW5jdGlvbiBVZ3QodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiw2KSxrdSgxKSxBaCgyLCJudW1iZXIiKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKS4kaW1wbGljaXQ7cmMoMSksRHUoIiIsVGgoMiwxLHQuaXRlbXMubGVuZ3RoKSwiIGNhcmRzIil9fWZ1bmN0aW9uIEdndCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMSksUm0oMSwiZGl2IiwyKSxSbSgyLCJzcGFuIiksUm0oMywic3BhbiIsMyksa3UoNCksQW0oKSxRcCg1LFVndCwzLDMsInNwYW4iLDQpLEFtKCksQW0oKSxUbSg2LCJtZXRyaWNzLWNhcmQtZ3JpZCIsNSksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oKTtyYygzKSxLbSgidGl0bGUiLHQuZ3JvdXBOYW1lKSxyYygxKSxTdSh0Lmdyb3VwTmFtZSkscmMoMSksRG0oIm5nSWYiLHQuaXRlbXMubGVuZ3RoPjEpLHJjKDEpLERtKCJjYXJkSWRzV2l0aE1ldGFkYXRhIix0Lml0ZW1zKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcikoImdyb3VwTmFtZSIsdC5ncm91cE5hbWUpfX1jbGFzcyBXZ3R7Y29uc3RydWN0b3IoKXt0aGlzLlBsdWdpblR5cGU9aEF9dHJhY2tCeUdyb3VwKHQsZSl7cmV0dXJuIGUuZ3JvdXBOYW1lfX1XZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFdndCl9LFdndC7JtWNtcD10byh7dHlwZTpXZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtY2FyZC1ncm91cHMtY29tcG9uZW50Il1dLGlucHV0czp7Y2FyZEdyb3VwczoiY2FyZEdyb3VwcyIsY2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifSxkZWNsczoxLHZhcnM6Mixjb25zdHM6W1siY2xhc3MiLCJjYXJkLWdyb3VwIiw0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbMSwiY2FyZC1ncm91cCJdLFsxLCJncm91cC10b29sYmFyIl0sWyJhcmlhLXJvbGUiLCJoZWFkaW5nIiwiYXJpYS1sZXZlbCIsIjMiLDEsImdyb3VwLXRpdGxlIiwzLCJ0aXRsZSJdLFsiY2xhc3MiLCJncm91cC1jYXJkLWNvdW50Iiw0LCJuZ0lmIl0sWzMsImNhcmRJZHNXaXRoTWV0YWRhdGEiLCJjYXJkT2JzZXJ2ZXIiLCJncm91cE5hbWUiXSxbMSwiZ3JvdXAtY2FyZC1jb3VudCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZRcCgwLEdndCw3LDYsImRpdiIsMCksMiZlJiZEbSgibmdGb3JPZiIsbi5jYXJkR3JvdXBzKSgibmdGb3JUcmFja0J5IixuLnRyYWNrQnlHcm91cCl9LGRpcmVjdGl2ZXM6W2xNLGRNLE5ndF0scGlwZXM6W0ZNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTpmbGV4O2ZsZXg6bm9uZTtoZWlnaHQ6NDJweDttYXJnaW4tYm90dG9tOi0xcHg7cGFkZGluZzowIDE2cHg7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MTtib3gtc2hhZG93OjBweCAycHggNHB4IDBweCByZ2JhKDAsMCwwLC4xNSl9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym94LXNoYWRvdzowcHggMnB4IDRweCAwcHggcmdiYSgyNTUsMjU1LDI1NSwuMTUpfVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgI2ViZWJlYjt0b3A6LTFweH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgIzU1NX0uY2FyZC1ncm91cFtfbmdjb250ZW50LSVDT01QJV06Zmlyc3Qtb2YtdHlwZSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOm5vbmV9Lmdyb3VwLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojNjE2MTYxO21hcmdpbi1sZWZ0OjZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jYXJkLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoV2d0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtY2FyZC1ncm91cHMtY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPGRpdlxuICAgICAgKm5nRm9yPSJsZXQgZ3JvdXAgb2YgY2FyZEdyb3VwczsgdHJhY2tCeTogdHJhY2tCeUdyb3VwIlxuICAgICAgY2xhc3M9ImNhcmQtZ3JvdXAiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz0iZ3JvdXAtdG9vbGJhciI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz0iZ3JvdXAtdGl0bGUiXG4gICAgICAgICAgICBhcmlhLXJvbGU9ImhlYWRpbmciXG4gICAgICAgICAgICBhcmlhLWxldmVsPSIzIlxuICAgICAgICAgICAgdGl0bGU9Int7IGdyb3VwLmdyb3VwTmFtZSB9fSJcbiAgICAgICAgICAgID57eyBncm91cC5ncm91cE5hbWUgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9Imdyb3VwLml0ZW1zLmxlbmd0aCA+IDEiIGNsYXNzPSJncm91cC1jYXJkLWNvdW50IlxuICAgICAgICAgICAgPnt7IGdyb3VwLml0ZW1zLmxlbmd0aCB8IG51bWJlciB9fSBjYXJkczwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8bWV0cmljcy1jYXJkLWdyaWRcbiAgICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJncm91cC5pdGVtcyJcbiAgICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICAgICAgW2dyb3VwTmFtZV09Imdyb3VwLmdyb3VwTmFtZSJcbiAgICAgID48L21ldHJpY3MtY2FyZC1ncmlkPlxuICAgIDwvZGl2PlxuICAnLHN0eWxlVXJsczpbImNhcmRfZ3JvdXBzX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtjYXJkR3JvdXBzOlt7dHlwZTp4eX1dLGNhcmRPYnNlcnZlcjpbe3R5cGU6eHl9XX0pO2NsYXNzIFlndHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5jYXJkR3JvdXBzJD10aGlzLnN0b3JlLnNlbGVjdChqZ3QpLnBpcGUoZmUodGhpcy5zdG9yZS5zZWxlY3QocVQpKSxJdCgoKFt0LGVdKT0+ZS5zaXplP3QuZmlsdGVyKCh0PT5lLmhhcyh0LnBsdWdpbikpKTp0KSksSXQoKHQ9PihmdW5jdGlvbiBlKHQpe2NvbnN0IGU9bmV3IE1hcCxuPXQuc2xpY2UoKS5zb3J0KCgodCxlKT0+ZzIodC50YWcsZS50YWcpKSk7Zm9yKGNvbnN0IHQgb2Ygbil7Y29uc3Qgbj10LnRhZy5zcGxpdCgiLyIsMSlbMF07ZS5oYXMobil8fGUuc2V0KG4se2dyb3VwTmFtZTpuLGl0ZW1zOltdfSksZS5nZXQobikuaXRlbXMucHVzaCh0KX1yZXR1cm5bLi4uZS52YWx1ZXMoKV19KSh0KSkpKX19ZnVuY3Rpb24gcWd0KHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLER1KCIgYW5kICIsdC5nZXRQbHVnaW5UeXBlRmlsdGVyU3RyaW5nKHQucGx1Z2luVHlwZXMpLCIgdmlzdWFsaXphdGlvbiBmaWx0ZXIiKX19WWd0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxZZ3QpKFNtKEl3KSl9LFlndC7JtWNtcD10byh7dHlwZTpZZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtY2FyZC1ncm91cHMiXV0saW5wdXRzOntjYXJkT2JzZXJ2ZXI6ImNhcmRPYnNlcnZlciJ9LGRlY2xzOjIsdmFyczo0LGNvbnN0czpbWzMsImNhcmRHcm91cHMiLCJjYXJkT2JzZXJ2ZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsIm1ldHJpY3MtY2FyZC1ncm91cHMtY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpKSwyJmUmJkRtKCJjYXJkR3JvdXBzIixUaCgxLDIsbi5jYXJkR3JvdXBzJCkpKCJjYXJkT2JzZXJ2ZXIiLG4uY2FyZE9ic2VydmVyKX0sZGlyZWN0aXZlczpbV2d0XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWWd0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtY2FyZC1ncm91cHMiLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy1jYXJkLWdyb3Vwcy1jb21wb25lbnRcbiAgICAgIFtjYXJkR3JvdXBzXT0iY2FyZEdyb3VwcyQgfCBhc3luYyJcbiAgICAgIFtjYXJkT2JzZXJ2ZXJdPSJjYXJkT2JzZXJ2ZXIiXG4gICAgPjwvbWV0cmljcy1jYXJkLWdyb3Vwcy1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7Y2FyZE9ic2VydmVyOlt7dHlwZTp4eX1dfSk7Y2xhc3MgWmd0e2NvbnN0cnVjdG9yKCl7dGhpcy5QbHVnaW5UeXBlPWhBLHRoaXMubGlzdEZvcm1hdHRlcj1uZXcgSW50bC5MaXN0Rm9ybWF0KHZvaWQgMCx7c3R5bGU6ImxvbmciLHR5cGU6ImRpc2p1bmN0aW9uIn0pfWdldFBsdWdpblR5cGVGaWx0ZXJTdHJpbmcodCl7Y29uc3QgZT1bLi4udF0ubWFwKCh0PT57c3dpdGNoKHQpe2Nhc2UgaEEuU0NBTEFSUzpyZXR1cm4ic2NhbGFyIjtjYXNlIGhBLklNQUdFUzpyZXR1cm4iaW1hZ2UiO2Nhc2UgaEEuSElTVE9HUkFNUzpyZXR1cm4iaGlzdG9ncmFtIjtkZWZhdWx0OnRocm93IG5ldyBSYW5nZUVycm9yKGBQbGVhc2UgaW1wbGVtZW50IGh1bWFuIHJlYWRhYmxlIG5hbWUgZm9yIHBsdWdpbiB0eXBlOiAke3R9YCl9fSkpO3JldHVybiB0aGlzLmxpc3RGb3JtYXR0ZXIuZm9ybWF0KGUpfX1aZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFpndCl9LFpndC7JtWNtcD10byh7dHlwZTpaZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtZW1wdHktdGFnLW1hdGNoLWNvbXBvbmVudCJdXSxpbnB1dHM6e3BsdWdpblR5cGVzOiJwbHVnaW5UeXBlcyIsdGFnRmlsdGVyUmVnZXg6InRhZ0ZpbHRlclJlZ2V4Iix0YWdDb3VudHM6InRhZ0NvdW50cyJ9LGRlY2xzOjYsdmFyczo1LGNvbnN0czpbWzQsIm5nSWYiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKGt1KDAsIk5vIG1hdGNoZXMgZm9yIHRhZyBmaWx0ZXIgIiksUm0oMSwiY29kZSIpLGt1KDIpLEFtKCksUXAoMyxxZ3QsMiwxLCJzcGFuIiwwKSxrdSg0KSxBaCg1LCJudW1iZXIiKSksMiZlJiYocmMoMiksRHUoIi8iLG4udGFnRmlsdGVyUmVnZXgsIi8iKSxyYygxKSxEbSgibmdJZiIsbi5wbHVnaW5UeXBlcy5zaXplKSxyYygxKSxEdSgiIG91dCBvZiAiLFRoKDUsMyxuLnRhZ0NvdW50cyksIiB0YWdzLiIpKX0sZGlyZWN0aXZlczpbZE1dLHBpcGVzOltGTV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChaZ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1lbXB0eS10YWctbWF0Y2gtY29tcG9uZW50Iix0ZW1wbGF0ZTonTm8gbWF0Y2hlcyBmb3IgdGFnIGZpbHRlciA8Y29kZT4ve3sgdGFnRmlsdGVyUmVnZXggfX0vPC9jb2RlXG4gICAgPjxzcGFuICpuZ0lmPSJwbHVnaW5UeXBlcy5zaXplIj5cbiAgICAgIGFuZCB7eyBnZXRQbHVnaW5UeXBlRmlsdGVyU3RyaW5nKHBsdWdpblR5cGVzKSB9fSB2aXN1YWxpemF0aW9uXG4gICAgICBmaWx0ZXI8L3NwYW5cbiAgICA+XG4gICAgb3V0IG9mIHt7IHRhZ0NvdW50cyB8IG51bWJlciB9fSB0YWdzLicsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cGx1Z2luVHlwZXM6W3t0eXBlOnh5fV0sdGFnRmlsdGVyUmVnZXg6W3t0eXBlOnh5fV0sdGFnQ291bnRzOlt7dHlwZTp4eX1dfSk7Y2xhc3MgWGd0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnBsdWdpblR5cGVzJD10aGlzLnN0b3JlLnNlbGVjdChxVCksdGhpcy50YWdGaWx0ZXJSZWdleCQ9dGhpcy5zdG9yZS5zZWxlY3QoQlQpLHRoaXMudGFnQ291bnRzJD10aGlzLnN0b3JlLnNlbGVjdChqZ3QpLnBpcGUoSXQoKHQ9Pm5ldyBTZXQodC5tYXAoKCh7dGFnOnR9KT0+dCkpKS5zaXplKSkpfX1mdW5jdGlvbiBLZ3QodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiw2KSxrdSgxKSxBaCgyLCJudW1iZXIiKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEdSgiIixUaCgyLDEsdC5jYXJkSWRzV2l0aE1ldGFkYXRhLmxlbmd0aCksIiBjYXJkcyIpfX1mdW5jdGlvbiBKZ3QodCxlKXsxJnQmJlRtKDAsIm1ldHJpY3MtZW1wdHktdGFnLW1hdGNoIiw3KX1YZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhndCkoU20oSXcpKX0sWGd0Lsm1Y21wPXRvKHt0eXBlOlhndCxzZWxlY3RvcnM6W1sibWV0cmljcy1lbXB0eS10YWctbWF0Y2giXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywicGx1Z2luVHlwZXMiLCJ0YWdGaWx0ZXJSZWdleCIsInRhZ0NvdW50cyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwibWV0cmljcy1lbXB0eS10YWctbWF0Y2gtY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSksMiZlJiZEbSgicGx1Z2luVHlwZXMiLFRoKDEsMyxuLnBsdWdpblR5cGVzJCkpKCJ0YWdGaWx0ZXJSZWdleCIsVGgoMiw1LG4udGFnRmlsdGVyUmVnZXgkKSkoInRhZ0NvdW50cyIsVGgoMyw3LG4udGFnQ291bnRzJCkpfSxkaXJlY3RpdmVzOltaZ3RdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYZ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1lbXB0eS10YWctbWF0Y2giLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy1lbXB0eS10YWctbWF0Y2gtY29tcG9uZW50XG4gICAgICBbcGx1Z2luVHlwZXNdPSJwbHVnaW5UeXBlcyQgfCBhc3luYyJcbiAgICAgIFt0YWdGaWx0ZXJSZWdleF09InRhZ0ZpbHRlclJlZ2V4JCB8IGFzeW5jIlxuICAgICAgW3RhZ0NvdW50c109InRhZ0NvdW50cyQgfCBhc3luYyJcbiAgICA+PC9tZXRyaWNzLWVtcHR5LXRhZy1tYXRjaC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjbGFzcyBRZ3R7fVFndC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UWd0KX0sUWd0Lsm1Y21wPXRvKHt0eXBlOlFndCxzZWxlY3RvcnM6W1sibWV0cmljcy1maWx0ZXJlZC12aWV3LWNvbXBvbmVudCJdXSxpbnB1dHM6e2lzRW1wdHlNYXRjaDoiaXNFbXB0eU1hdGNoIixjYXJkT2JzZXJ2ZXI6ImNhcmRPYnNlcnZlciIsY2FyZElkc1dpdGhNZXRhZGF0YToiY2FyZElkc1dpdGhNZXRhZGF0YSJ9LGRlY2xzOjcsdmFyczo0LGNvbnN0czpbWzEsImdyb3VwLXRvb2xiYXIiXSxbMSwiZ3JvdXAtdGV4dCJdLFsiYXJpYS1yb2xlIiwiaGVhZGluZyIsImFyaWEtbGV2ZWwiLCIzIiwxLCJncm91cC10aXRsZSJdLFsiY2xhc3MiLCJncm91cC1jYXJkLWNvdW50Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIndhcm4iLDQsIm5nSWYiXSxbMywiY2FyZElkc1dpdGhNZXRhZGF0YSIsImNhcmRPYnNlcnZlciJdLFsxLCJncm91cC1jYXJkLWNvdW50Il0sWzEsIndhcm4iXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksUm0oMSwic3BhbiIsMSksUm0oMiwic3BhbiIsMiksa3UoMywiVGFncyBtYXRjaGluZyBmaWx0ZXIiKSxBbSgpLFFwKDQsS2d0LDMsMywic3BhbiIsMyksQW0oKSxBbSgpLFFwKDUsSmd0LDEsMCwibWV0cmljcy1lbXB0eS10YWctbWF0Y2giLDQpLFRtKDYsIm1ldHJpY3MtY2FyZC1ncmlkIiw1KSksMiZlJiYocmMoNCksRG0oIm5nSWYiLG4uY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGg+MSkscmMoMSksRG0oIm5nSWYiLG4uaXNFbXB0eU1hdGNoKSxyYygxKSxEbSgiY2FyZElkc1dpdGhNZXRhZGF0YSIsbi5jYXJkSWRzV2l0aE1ldGFkYXRhKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcikpfSxkaXJlY3RpdmVzOltkTSxOZ3QsWGd0XSxwaXBlczpbRk1dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7ZmxleDpub25lO2hlaWdodDo0MnB4O21hcmdpbi1ib3R0b206LTFweDtwYWRkaW5nOjAgMTZweDtwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRleDoxO2JveC1zaGFkb3c6MHB4IDJweCA0cHggMHB4IHJnYmEoMCwwLDAsLjE1KX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjBweCAycHggNHB4IDBweCByZ2JhKDI1NSwyNTUsMjU1LC4xNSl9Lmdyb3VwLXRleHRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpiYXNlbGluZX0uZ3JvdXAtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0uZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2MTYxNjE7bWFyZ2luLWxlZnQ6NnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jYXJkLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfW1ldHJpY3MtZW1wdHktdGFnLW1hdGNoW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtc3R5bGU6aXRhbGljO3BhZGRpbmc6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIG1ldHJpY3MtZW1wdHktdGFnLW1hdGNoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWV0cmljcy1lbXB0eS10YWctbWF0Y2hbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChRZ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1maWx0ZXJlZC12aWV3LWNvbXBvbmVudCIsdGVtcGxhdGU6J1xuICAgIDxkaXYgY2xhc3M9Imdyb3VwLXRvb2xiYXIiPlxuICAgICAgPHNwYW4gY2xhc3M9Imdyb3VwLXRleHQiPlxuICAgICAgICA8c3BhbiBjbGFzcz0iZ3JvdXAtdGl0bGUiIGFyaWEtcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMyJcbiAgICAgICAgICA+VGFncyBtYXRjaGluZyBmaWx0ZXI8L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3BhbiAqbmdJZj0iY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGggPiAxIiBjbGFzcz0iZ3JvdXAtY2FyZC1jb3VudCJcbiAgICAgICAgICA+e3sgY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGggfCBudW1iZXIgfX0gY2FyZHM8L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxtZXRyaWNzLWVtcHR5LXRhZy1tYXRjaFxuICAgICAgKm5nSWY9ImlzRW1wdHlNYXRjaCJcbiAgICAgIGNsYXNzPSJ3YXJuIlxuICAgID48L21ldHJpY3MtZW1wdHktdGFnLW1hdGNoPlxuICAgIDxtZXRyaWNzLWNhcmQtZ3JpZFxuICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJjYXJkSWRzV2l0aE1ldGFkYXRhIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICA+PC9tZXRyaWNzLWNhcmQtZ3JpZD5cbiAgJyxzdHlsZVVybHM6WyJmaWx0ZXJlZF92aWV3X2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtpc0VtcHR5TWF0Y2g6W3t0eXBlOnh5fV0sY2FyZE9ic2VydmVyOlt7dHlwZTp4eX1dLGNhcmRJZHNXaXRoTWV0YWRhdGE6W3t0eXBlOnh5fV19KTtjbGFzcyAkZ3R7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuY2FyZElkc1dpdGhNZXRhZGF0YSQ9dGhpcy5zdG9yZS5zZWxlY3Qoamd0KS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KHFUKSksSXQoKChbdCxlXSk9PmUuc2l6ZT90LmZpbHRlcigodD0+ZS5oYXModC5wbHVnaW4pKSk6dCkpLGZlKHRoaXMuc3RvcmUuc2VsZWN0KEJUKSksZ2UoMjAwKSxJdCgoKFt0LGVdKT0+e3RyeXtyZXR1cm57Y2FyZExpc3Q6dCxyZWdleDpuZXcgUmVnRXhwKGUsImkiKX19Y2F0Y2goZSl7cmV0dXJue2NhcmRMaXN0OnQscmVnZXg6bnVsbH19fSkpLGNlKCgoe3JlZ2V4OnR9KT0+bnVsbCE9PXQpKSxJdCgoKHtjYXJkTGlzdDp0LHJlZ2V4OmV9KT0+dC5maWx0ZXIoKCh7dGFnOnR9KT0+ZS50ZXN0KHQpKSkpKSxNZSgoKHQsZSk9PnQubGVuZ3RoPT09ZS5sZW5ndGgmJnQuZXZlcnkoKCh0LG4pPT50LmNhcmRJZD09PWVbbl0uY2FyZElkKSkpKSxFZSgpLE5lKFtdKSksdGhpcy5pc0VtcHR5TWF0Y2gkPXRoaXMuY2FyZElkc1dpdGhNZXRhZGF0YSQucGlwZShmZSh0aGlzLnN0b3JlLnNlbGVjdChqZ3QpKSxJdCgoKFt0LGVdKT0+Qm9vbGVhbihlLmxlbmd0aCkmJjA9PT10Lmxlbmd0aCkpKX19ZnVuY3Rpb24gdGh0KHQsZSl7aWYoMSZ0JiYoUm0oMCwibWF0LW9wdGlvbiIsMiksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0O0RtKCJ2YWx1ZSIsdC52YWx1ZSkoImRpc2FibGVkIix0LmRpc2FibGVkKSxyYygxKSxEdSgiICIsdC5kaXNwbGF5VGV4dCwiICIpfX0kZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fCRndCkoU20oSXcpKX0sJGd0Lsm1Y21wPXRvKHt0eXBlOiRndCxzZWxlY3RvcnM6W1sibWV0cmljcy1maWx0ZXJlZC12aWV3Il1dLGlucHV0czp7Y2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifSxkZWNsczozLHZhcnM6Nyxjb25zdHM6W1szLCJpc0VtcHR5TWF0Y2giLCJjYXJkSWRzV2l0aE1ldGFkYXRhIiwiY2FyZE9ic2VydmVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJtZXRyaWNzLWZpbHRlcmVkLXZpZXctY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIikpLDImZSYmRG0oImlzRW1wdHlNYXRjaCIsVGgoMSwzLG4uaXNFbXB0eU1hdGNoJCkpKCJjYXJkSWRzV2l0aE1ldGFkYXRhIixUaCgyLDUsbi5jYXJkSWRzV2l0aE1ldGFkYXRhJCkpKCJjYXJkT2JzZXJ2ZXIiLG4uY2FyZE9ic2VydmVyKX0sZGlyZWN0aXZlczpbUWd0XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoJGd0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtZmlsdGVyZWQtdmlldyIsdGVtcGxhdGU6J1xuICAgIDxtZXRyaWNzLWZpbHRlcmVkLXZpZXctY29tcG9uZW50XG4gICAgICBbaXNFbXB0eU1hdGNoXT0iaXNFbXB0eU1hdGNoJCB8IGFzeW5jIlxuICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJjYXJkSWRzV2l0aE1ldGFkYXRhJCB8IGFzeW5jIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICA+PC9tZXRyaWNzLWZpbHRlcmVkLXZpZXctY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSkse2NhcmRPYnNlcnZlcjpbe3R5cGU6eHl9XX0pO2NsYXNzIGVodHtjb25zdHJ1Y3Rvcigpe3RoaXMudmFsdWU9IiIsdGhpcy5vcHRpb25zPVtdLHRoaXMuc2VsZWN0aW9uQ2hhbmdlPW5ldyBMaH19ZnVuY3Rpb24gbmh0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwibWF0LXNsaWRlciIsMjYpLFZtKCJpbnB1dCIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uU3RlcFN0YXJ0Q2hhbmdlZChuLnZhbHVlKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgiZGlzYWJsZWQiLCF0LnNlbGVjdFRpbWVFbmFibGVkKSgibWluIix0LnN0ZXBNaW5NYXgubWluKSgibWF4Iix0LnN0ZXBNaW5NYXgubWF4KSgic3RlcCIsMSkoInZhbHVlIixudWxsPT10LnNlbGVjdGVkVGltZT9udWxsOnQuc2VsZWN0ZWRUaW1lLnN0YXJ0LnN0ZXApKCJ0aHVtYkxhYmVsIiwhMCl9fWZ1bmN0aW9uIG9odCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsInRiLXJhbmdlLWlucHV0IiwyNyksVm0oInZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25TdGVwUmFuZ2VDaGFuZ2VkKG4pfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJtaW4iLHQuc3RlcE1pbk1heC5taW4pKCJtYXgiLHQuc3RlcE1pbk1heC5tYXgpKCJsb3dlclZhbHVlIixudWxsPT10LnNlbGVjdGVkVGltZT9udWxsOnQuc2VsZWN0ZWRUaW1lLnN0YXJ0LnN0ZXApKCJ1cHBlclZhbHVlIixudWxsPT10LnNlbGVjdGVkVGltZXx8bnVsbD09dC5zZWxlY3RlZFRpbWUuZW5kP251bGw6dC5zZWxlY3RlZFRpbWUuZW5kLnN0ZXApLGpwKCJkaXNhYmxlZCIsIXQuc2VsZWN0VGltZUVuYWJsZWQpfX1mdW5jdGlvbiBpaHQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDIxKSxSbSgxLCJsYWJlbCIpLGt1KDIsIkxpbmsgdmlzdWFsaXphdGlvbiBieSBzdGVwIiksQW0oKSxSbSgzLCJkaXYiLDIyKSxSbSg0LCJkaXYiKSxSbSg1LCJtYXQtY2hlY2tib3giLDE1KSxWbSgiY2hhbmdlIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLnNlbGVjdFRpbWVFbmFibGVUb2dnbGVkLmVtaXQoKX0pKSxrdSg2LCJFbmFibGVkIiksQW0oKSxBbSgpLFJtKDcsImRpdiIpLFJtKDgsIm1hdC1jaGVja2JveCIsMTUpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkudXNlUmFuZ2VTZWxlY3RUaW1lVG9nZ2xlZC5lbWl0KCl9KSksa3UoOSwiVXNlIHJhbmdlIiksQW0oKSxBbSgpLFJtKDEwLCJkaXYiLDIzKSxRcCgxMSxuaHQsMSw2LCJtYXQtc2xpZGVyIiwyNCksUXAoMTIsb2h0LDEsNSwibmctdGVtcGxhdGUiLG51bGwsMjUsaWIpLEFtKCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD0kcCgxMyksZT1ZbSgpO3JjKDUpLERtKCJjaGVja2VkIixlLnNlbGVjdFRpbWVFbmFibGVkKSxyYygzKSxEbSgiY2hlY2tlZCIsZS51c2VSYW5nZVNlbGVjdFRpbWUpLHJjKDMpLERtKCJuZ0lmIiwhZS51c2VSYW5nZVNlbGVjdFRpbWUpKCJuZ0lmRWxzZSIsdCl9fWZ1bmN0aW9uIGFodCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsInNlY3Rpb24iLDI4KSxSbSgxLCJoMyIsMSksa3UoMiwiSW1hZ2VzIiksQW0oKSxSbSgzLCJkaXYiLDI5KSxSbSg0LCJkaXYiLDMwKSxrdSg1LCJCcmlnaHRuZXNzIiksQW0oKSxSbSg2LCJkaXYiLDkpLFJtKDcsIm1hdC1zbGlkZXIiLDMxKSxWbSgiaW5wdXQiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLmltYWdlQnJpZ2h0bmVzc1NsaWRlckNoYW5nZWQkLmVtaXQobi52YWx1ZSl9KSksQW0oKSxSbSg4LCJidXR0b24iLDMyKSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkuaW1hZ2VCcmlnaHRuZXNzUmVzZXQuZW1pdCgpfSkpLFRtKDksIm1hdC1pY29uIiwzMyksQW0oKSxBbSgpLEFtKCksUm0oMTAsImRpdiIsMzQpLFJtKDExLCJkaXYiLDM1KSxrdSgxMiwiQ29udHJhc3QiKSxBbSgpLFJtKDEzLCJkaXYiLDkpLFJtKDE0LCJtYXQtc2xpZGVyIiwzNiksVm0oImlucHV0IiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5pbWFnZUNvbnRyYXN0U2xpZGVyQ2hhbmdlZCQuZW1pdChuLnZhbHVlKX0pKSxBbSgpLFJtKDE1LCJidXR0b24iLDM3KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkuaW1hZ2VDb250cmFzdFJlc2V0LmVtaXQoKX0pKSxUbSgxNiwibWF0LWljb24iLDMzKSxBbSgpLEFtKCksQW0oKSxSbSgxNywiZGl2IiwzOCksUm0oMTgsIm1hdC1jaGVja2JveCIsMTUpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLmltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkLmVtaXQobi5jaGVja2VkKX0pKSxrdSgxOSwiU2hvdyBhY3R1YWwgaW1hZ2Ugc2l6ZSIpLEFtKCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO3JjKDcpLERtKCJtYXgiLDJlMykoIm1pbiIsMCkoInN0ZXAiLDEwKSgidmFsdWUiLHQuaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaSkoInRodW1iTGFiZWwiLCEwKSgiZGlzcGxheVdpdGgiLHQuZm9ybWF0TWlsbGlUb1plcm90aCkscmMoNyksRG0oIm1heCIsNWUzKSgibWluIiwwKSgic3RlcCIsMTApKCJ2YWx1ZSIsdC5pbWFnZUNvbnRyYXN0SW5NaWxsaSkoInRodW1iTGFiZWwiLCEwKSgiZGlzcGxheVdpdGgiLHQuZm9ybWF0TWlsbGlUb1plcm90aCkscmMoNCksRG0oImNoZWNrZWQiLHQuaW1hZ2VTaG93QWN0dWFsU2l6ZSl9fWVodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZWh0KX0sZWh0Lsm1Y21wPXRvKHt0eXBlOmVodCxzZWxlY3RvcnM6W1sidGItZHJvcGRvd24iXV0saW5wdXRzOnt2YWx1ZToidmFsdWUiLG9wdGlvbnM6Im9wdGlvbnMifSxvdXRwdXRzOntzZWxlY3Rpb25DaGFuZ2U6InNlbGVjdGlvbkNoYW5nZSJ9LGRlY2xzOjIsdmFyczoyLGNvbnN0czpbWzMsInZhbHVlIiwic2VsZWN0aW9uQ2hhbmdlIl0sWzMsInZhbHVlIiwiZGlzYWJsZWQiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJ2YWx1ZSIsImRpc2FibGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtYXQtc2VsZWN0IiwwKSxWbSgic2VsZWN0aW9uQ2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5zZWxlY3Rpb25DaGFuZ2UuZW1pdChlLnZhbHVlKX0pKSxRcCgxLHRodCwyLDMsIm1hdC1vcHRpb24iLDEpLEFtKCkpLDImZSYmKERtKCJ2YWx1ZSIsbi52YWx1ZSkscmMoMSksRG0oIm5nRm9yT2YiLG4ub3B0aW9ucykpfSxkaXJlY3RpdmVzOltBRyxsTSxCSF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9bWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjOGU5OGEzO2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjZweH1tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1c3tvdXRsaW5lLWNvbG9yOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtvdXRsaW5lLXN0eWxlOmF1dG99ICAubWF0LXNlbGVjdC1wYW5lbHttYXgtd2lkdGg6NzB2d30gIG1hdC1vcHRpb24ubWF0LW9wdGlvbntoZWlnaHQ6YXV0b30gIC5tYXQtb3B0aW9uLXRleHR7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtYnJlYWs6YnJlYWstYWxsfSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChlaHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGItZHJvcGRvd24iLHRlbXBsYXRlOidcbiAgICA8bWF0LXNlbGVjdFxuICAgICAgW3ZhbHVlXT0idmFsdWUiXG4gICAgICAoc2VsZWN0aW9uQ2hhbmdlKT0ic2VsZWN0aW9uQ2hhbmdlLmVtaXQoJGV2ZW50LnZhbHVlKSJcbiAgICA+XG4gICAgICA8bWF0LW9wdGlvblxuICAgICAgICAqbmdGb3I9ImxldCBvcHRpb24gb2Ygb3B0aW9ucyJcbiAgICAgICAgW3ZhbHVlXT0ib3B0aW9uLnZhbHVlIlxuICAgICAgICBbZGlzYWJsZWRdPSJvcHRpb24uZGlzYWJsZWQiXG4gICAgICA+XG4gICAgICAgIHt7IG9wdGlvbi5kaXNwbGF5VGV4dCB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgJyxzdHlsZVVybHM6WyJkcm9wZG93bl9jb21wb25lbnQuY3NzIl19XX1dLG51bGwse3ZhbHVlOlt7dHlwZTp4eX1dLG9wdGlvbnM6W3t0eXBlOnh5fV0sc2VsZWN0aW9uQ2hhbmdlOlt7dHlwZTpPeX1dfSk7Y2xhc3Mgcmh0e2NvbnN0cnVjdG9yKHQpe3RoaXMubG9jYWxlPXQsdGhpcy5zZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZD1uZXcgTGgsdGhpcy51c2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkPW5ldyBMaCx0aGlzLnNlbGVjdFRpbWVDaGFuZ2VkPW5ldyBMaCx0aGlzLlRvb2x0aXBTb3J0RHJvcGRvd25PcHRpb25zPVt7dmFsdWU6YkEuREVGQVVMVCxkaXNwbGF5VGV4dDoiRGVmYXVsdCJ9LHt2YWx1ZTpiQS5BU0NFTkRJTkcsZGlzcGxheVRleHQ6IkFzY2VuZGluZyJ9LHt2YWx1ZTpiQS5ERVNDRU5ESU5HLGRpc3BsYXlUZXh0OiJEZXNjZW5kaW5nIn0se3ZhbHVlOmJBLk5FQVJFU1QsZGlzcGxheVRleHQ6Ik5lYXJlc3QifV0sdGhpcy50b29sdGlwU29ydENoYW5nZWQ9bmV3IExoLHRoaXMuaWdub3JlT3V0bGllcnNDaGFuZ2VkPW5ldyBMaCx0aGlzLlhBeGlzVHlwZT15QSx0aGlzLlhBeGlzVHlwZURyb3Bkb3duT3B0aW9ucz1be3ZhbHVlOnlBLlNURVAsZGlzcGxheVRleHQ6IlN0ZXAifSx7dmFsdWU6eUEuUkVMQVRJVkUsZGlzcGxheVRleHQ6IlJlbGF0aXZlIn0se3ZhbHVlOnlBLldBTExfVElNRSxkaXNwbGF5VGV4dDoiV2FsbCJ9XSx0aGlzLnhBeGlzVHlwZUNoYW5nZWQ9bmV3IExoLHRoaXMuSGlzdG9ncmFtTW9kZURyb3Bkb3duT3B0aW9ucz1be3ZhbHVlOnBFLk9GRlNFVCxkaXNwbGF5VGV4dDoiT2Zmc2V0In0se3ZhbHVlOnBFLk9WRVJMQVksZGlzcGxheVRleHQ6Ik92ZXJsYXkifV0sdGhpcy5oaXN0b2dyYW1Nb2RlQ2hhbmdlZD1uZXcgTGgsdGhpcy5NQVhfU01PT1RISU5HX1ZBTFVFPS45OTksdGhpcy5NQVhfU01PT1RISU5HX1NMSURFUl9WQUxVRT0uOTksdGhpcy5zY2FsYXJTbW9vdGhpbmdDb250cm9sQ2hhbmdlZCQ9bmV3IExoLHRoaXMuc2NhbGFyU21vb3RoaW5nQ2hhbmdlZD10aGlzLnNjYWxhclNtb290aGluZ0NvbnRyb2xDaGFuZ2VkJC5waXBlKGRlKDI1MCkpLHRoaXMuc2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQ9bmV3IExoLHRoaXMuaW1hZ2VCcmlnaHRuZXNzU2xpZGVyQ2hhbmdlZCQ9bmV3IExoLHRoaXMuaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQ9dGhpcy5pbWFnZUJyaWdodG5lc3NTbGlkZXJDaGFuZ2VkJC5waXBlKGRlKDI1MCkpLHRoaXMuaW1hZ2VCcmlnaHRuZXNzUmVzZXQ9bmV3IExoLHRoaXMuaW1hZ2VDb250cmFzdFNsaWRlckNoYW5nZWQkPW5ldyBMaCx0aGlzLmltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZD10aGlzLmltYWdlQ29udHJhc3RTbGlkZXJDaGFuZ2VkJC5waXBlKGRlKDI1MCkpLHRoaXMuaW1hZ2VDb250cmFzdFJlc2V0PW5ldyBMaCx0aGlzLmltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkPW5ldyBMaH1vblNjYWxhclNtb290aGluZ0lucHV0KHQpe2NvbnN0IGU9dC50YXJnZXQ7aWYoIWUudmFsdWUpcmV0dXJuO2NvbnN0IG49TWF0aC5taW4oTWF0aC5tYXgoMCxwYXJzZUZsb2F0KGUudmFsdWUpKSwuOTk5KTtuIT09cGFyc2VGbG9hdChlLnZhbHVlKSYmKGUudmFsdWU9U3RyaW5nKG4pKSx0aGlzLnNjYWxhclNtb290aGluZ0NvbnRyb2xDaGFuZ2VkJC5lbWl0KG4pfWZvcm1hdE1pbGxpVG9aZXJvdGgodCl7cmV0dXJuIFFDKHQvMWUzLHRoaXMubG9jYWxlfHwiZW4tVVMiLCIxLjAtMiIpfW9uU3RlcFN0YXJ0Q2hhbmdlZCh0KXt0aGlzLnNlbGVjdFRpbWVDaGFuZ2VkLmVtaXQoe3N0YXJ0OntzdGVwOnR9LGVuZDpudWxsfSl9b25TdGVwUmFuZ2VDaGFuZ2VkKHtsb3dlclZhbHVlOnQsdXBwZXJWYWx1ZTplfSl7dGhpcy5zZWxlY3RUaW1lQ2hhbmdlZC5lbWl0KHtzdGFydDp7c3RlcDp0fSxlbmQ6e3N0ZXA6ZX19KX19cmh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxyaHQpKFNtKFd5KSl9LHJodC7JtWNtcD10byh7dHlwZTpyaHQsc2VsZWN0b3JzOltbIm1ldHJpY3MtZGFzaGJvYXJkLXNldHRpbmdzLWNvbXBvbmVudCJdXSxpbnB1dHM6e2lzTGlua2VkVGltZUZlYXR1cmVFbmFibGVkOiJpc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCIsc2VsZWN0VGltZUVuYWJsZWQ6InNlbGVjdFRpbWVFbmFibGVkIix1c2VSYW5nZVNlbGVjdFRpbWU6InVzZVJhbmdlU2VsZWN0VGltZSIsc2VsZWN0ZWRUaW1lOiJzZWxlY3RlZFRpbWUiLHN0ZXBNaW5NYXg6InN0ZXBNaW5NYXgiLGlzSW1hZ2VTdXBwb3J0RW5hYmxlZDoiaXNJbWFnZVN1cHBvcnRFbmFibGVkIix0b29sdGlwU29ydDoidG9vbHRpcFNvcnQiLGlnbm9yZU91dGxpZXJzOiJpZ25vcmVPdXRsaWVycyIseEF4aXNUeXBlOiJ4QXhpc1R5cGUiLGhpc3RvZ3JhbU1vZGU6Imhpc3RvZ3JhbU1vZGUiLHNjYWxhclNtb290aGluZzoic2NhbGFyU21vb3RoaW5nIixzY2FsYXJQYXJ0aXRpb25YOiJzY2FsYXJQYXJ0aXRpb25YIixpbWFnZUJyaWdodG5lc3NJbk1pbGxpOiJpbWFnZUJyaWdodG5lc3NJbk1pbGxpIixpbWFnZUNvbnRyYXN0SW5NaWxsaToiaW1hZ2VDb250cmFzdEluTWlsbGkiLGltYWdlU2hvd0FjdHVhbFNpemU6ImltYWdlU2hvd0FjdHVhbFNpemUifSxvdXRwdXRzOntzZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZDoic2VsZWN0VGltZUVuYWJsZVRvZ2dsZWQiLHVzZVJhbmdlU2VsZWN0VGltZVRvZ2dsZWQ6InVzZVJhbmdlU2VsZWN0VGltZVRvZ2dsZWQiLHNlbGVjdFRpbWVDaGFuZ2VkOiJzZWxlY3RUaW1lQ2hhbmdlZCIsdG9vbHRpcFNvcnRDaGFuZ2VkOiJ0b29sdGlwU29ydENoYW5nZWQiLGlnbm9yZU91dGxpZXJzQ2hhbmdlZDoiaWdub3JlT3V0bGllcnNDaGFuZ2VkIix4QXhpc1R5cGVDaGFuZ2VkOiJ4QXhpc1R5cGVDaGFuZ2VkIixoaXN0b2dyYW1Nb2RlQ2hhbmdlZDoiaGlzdG9ncmFtTW9kZUNoYW5nZWQiLHNjYWxhclNtb290aGluZ0NoYW5nZWQ6InNjYWxhclNtb290aGluZ0NoYW5nZWQiLHNjYWxhclBhcnRpdGlvblhUb2dnbGVkOiJzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCIsaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQ6ImltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkIixpbWFnZUJyaWdodG5lc3NSZXNldDoiaW1hZ2VCcmlnaHRuZXNzUmVzZXQiLGltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZDoiaW1hZ2VDb250cmFzdEluTWlsbGlDaGFuZ2VkIixpbWFnZUNvbnRyYXN0UmVzZXQ6ImltYWdlQ29udHJhc3RSZXNldCIsaW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQ6ImltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkIn0sZGVjbHM6MzYsdmFyczoxNyxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdCxlO3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJSZXNldCBicmlnaHRuZXNzIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0byByZXNldCB0aGUgaW1hZ2UgYnJpZ2h0bmVzcyBzZXR0aW5n4pCfYzQ4MmIzYTQ3ZWEwOTc1ZmE4YmUwMWFmYjNmYmVjOWI3NjYyOGJkN+KQnzExODkxNjE4NTcyNDAzNzgzOTU6UmVzZXQgYnJpZ2h0bmVzc2AsZT0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiUmVzZXQgY29udHJhc3QiKTokbG9jYWxpemVgOkEgYnV0dG9uIHRvIHJlc2V0IHRoZSBpbWFnZSBjb250cmFzdCBzZXR0aW5n4pCfZWQ3MTJhOGI5MjcwNDFiZTE1MjUyYjI5ZWI1MjFlYmIxMzc0YmFkOOKQnzUzNzA3MDMzNDI5MjM2MTE5NTU6UmVzZXQgY29udHJhc3RgLFtbMSwiZ2VuZXJhbCJdLFsxLCJzZWN0aW9uLXRpdGxlIl0sWzEsImNvbnRyb2wtcm93IiwieC1heGlzLXR5cGUiXSxbImlkIiwieC1heGlzLXR5cGUtbGFiZWwiLDEsImNvbnRyb2wtbmFtZSJdLFszLCJ2YWx1ZSIsIm9wdGlvbnMiLCJzZWxlY3Rpb25DaGFuZ2UiXSxbImNsYXNzIiwiY29udHJvbC1yb3cgbGlua2VkLXRpbWUiLDQsIm5nSWYiXSxbMSwic2NhbGFycyJdLFsxLCJjb250cm9sLXJvdyIsInNjYWxhcnMtc21vb3RoaW5nIl0sWyJpZCIsInNjYWxhcnMtc21vb3RoaW5nLWxhYmVsIiwxLCJjb250cm9sLW5hbWUiXSxbMSwic2xpZGVyLXJvdyJdLFsiYXJpYS1sYWJlbGxlZGJ5Iiwic2NhbGFycy1zbW9vdGhpbmctbGFiZWwiLCJjb2xvciIsInByaW1hcnkiLDMsIm1heCIsIm1pbiIsInN0ZXAiLCJ2YWx1ZSIsInRodW1iTGFiZWwiLCJpbnB1dCJdLFsiYXJpYS1sYWJlbGxlZGJ5Iiwic2NhbGFycy1zbW9vdGhpbmctbGFiZWwiLCJ0eXBlIiwibnVtYmVyIiwibWluIiwiMCIsInN0ZXAiLCIwLjAwMSIsMSwic2xpZGVyLWlucHV0IiwzLCJtYXgiLCJ2YWx1ZSIsImlucHV0Il0sWzEsImNvbnRyb2wtcm93IiwidG9vbHRpcC1zb3J0Il0sWzEsImNvbnRyb2wtbmFtZSJdLFsxLCJjb250cm9sLXJvdyIsInNjYWxhcnMtaWdub3JlLW91dGxpZXJzIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbMSwiY29udHJvbC1yb3ciLCJzY2FsYXJzLXBhcnRpdGlvbi14Il0sWyJzdmdJY29uIiwiaGVscF9vdXRsaW5lXzI0cHgiLCJ0aXRsZSIsIk5vbi1tb25vdG9uaWMgc3RlcHMgY2FuIG9jY3VyIHdoZW4gcmV1c2luZyBhIGxvZ2RpciB3aXRoIG11bHRpcGxlIHN1bW1hcnkgd3JpdGVycyBhbmQgb3ZlcmxhcHBpbmcgc3RlcHMuIExpbmUgY2hhcnRzLCB3aXRob3V0IHRoaXMgb3B0aW9uIGVuYWJsZWQsIGNhbiBhcHBlYXIgemlnIHphZ2dlZC4gVGhpcyBpcyBjb21tb24gd2hlbiByZXN0YXJ0aW5nIGZyb20gYSBjaGVja3BvaW50LlxuXG5XaGVuIGVuYWJsZWQsIGEgbm9uLW1vbm90b25pYyB0aW1lIHNlcmllcyBjb21wb3NlZCBvZiBOIG1vbm90b25pYyBwaWVjZXMgd2lsbCBiZSBzaG93biBhcyBOIG1vbm90b25pYyBsaW5lcy4iLDEsImluZm8iXSxbMSwiSGlzdG9ncmFtcyJdLFsxLCJjb250cm9sLXJvdyIsImhpc3RvZ3JhbS1tb2RlIl0sWyJjbGFzcyIsImltYWdlIiw0LCJuZ0lmIl0sWzEsImNvbnRyb2wtcm93IiwibGlua2VkLXRpbWUiXSxbMSwiY29udHJvbHMiXSxbMSwic3RlcC1zZWxlY3RvciJdLFsiY29sb3IiLCJwcmltYXJ5IiwzLCJkaXNhYmxlZCIsIm1pbiIsIm1heCIsInN0ZXAiLCJ2YWx1ZSIsInRodW1iTGFiZWwiLCJpbnB1dCIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJyYW5nZSIsIiJdLFsiY29sb3IiLCJwcmltYXJ5IiwzLCJkaXNhYmxlZCIsIm1pbiIsIm1heCIsInN0ZXAiLCJ2YWx1ZSIsInRodW1iTGFiZWwiLCJpbnB1dCJdLFszLCJtaW4iLCJtYXgiLCJsb3dlclZhbHVlIiwidXBwZXJWYWx1ZSIsInZhbHVlIl0sWzEsImltYWdlIl0sWzEsImNvbnRyb2wtcm93IiwiaW1hZ2UtYnJpZ2h0bmVzcyJdLFsiaWQiLCJpbWFnZS1icmlnaHRuZXNzLWxhYmVsIiwxLCJjb250cm9sLW5hbWUiXSxbImFyaWEtbGFiZWxsZWRieSIsImltYWdlLWJyaWdodG5lc3MtbGFiZWwiLCJjb2xvciIsInByaW1hcnkiLDMsIm1heCIsIm1pbiIsInN0ZXAiLCJ2YWx1ZSIsInRodW1iTGFiZWwiLCJkaXNwbGF5V2l0aCIsImlucHV0Il0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LCJ0aXRsZSIsIlJlc2V0IGJyaWdodG5lc3MiLDEsInJlc2V0LWJ1dHRvbiIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJzZXR0aW5nc19iYWNrdXBfcmVzdG9yZV8yNHB4Il0sWzEsImNvbnRyb2wtcm93IiwiaW1hZ2UtY29udHJhc3QiXSxbImlkIiwiaW1hZ2UtY29uc3RyYXN0LWxhYmVsIiwxLCJjb250cm9sLW5hbWUiXSxbImFyaWEtbGFiZWxsZWRieSIsImltYWdlLWNvbnN0cmFzdC1sYWJlbCIsImNvbG9yIiwicHJpbWFyeSIsMywibWF4IiwibWluIiwic3RlcCIsInZhbHVlIiwidGh1bWJMYWJlbCIsImRpc3BsYXlXaXRoIiwiaW5wdXQiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGUsInRpdGxlIiwiUmVzZXQgY29udHJhc3QiLDEsInJlc2V0LWJ1dHRvbiIsMywiY2xpY2siXSxbMSwiY29udHJvbC1yb3ciLCJpbWFnZS1zaG93LWFjdHVhbC1zaXplIl1dfSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwic2VjdGlvbiIsMCksUm0oMSwiaDMiLDEpLGt1KDIsIkdlbmVyYWwiKSxBbSgpLFJtKDMsImRpdiIsMiksUm0oNCwiZGl2IiwzKSxrdSg1LCJIb3Jpem9udGFsIEF4aXMiKSxBbSgpLFJtKDYsInRiLWRyb3Bkb3duIiw0KSxWbSgic2VsZWN0aW9uQ2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi54QXhpc1R5cGVDaGFuZ2VkLmVtaXQoZSl9KSksQW0oKSxBbSgpLFFwKDcsaWh0LDE0LDQsImRpdiIsNSksQW0oKSxSbSg4LCJzZWN0aW9uIiw2KSxSbSg5LCJoMyIsMSksa3UoMTAsIlNjYWxhcnMiKSxBbSgpLFJtKDExLCJkaXYiLDcpLFJtKDEyLCJkaXYiLDgpLGt1KDEzLCJTbW9vdGhpbmciKSxBbSgpLFJtKDE0LCJkaXYiLDkpLFJtKDE1LCJtYXQtc2xpZGVyIiwxMCksVm0oImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5zY2FsYXJTbW9vdGhpbmdDb250cm9sQ2hhbmdlZCQuZW1pdChlLnZhbHVlKX0pKSxBbSgpLFJtKDE2LCJpbnB1dCIsMTEpLFZtKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TY2FsYXJTbW9vdGhpbmdJbnB1dChlKX0pKSxBbSgpLEFtKCksQW0oKSxSbSgxNywiZGl2IiwxMiksUm0oMTgsImRpdiIsMTMpLGt1KDE5LCJUb29sdGlwIHNvcnRpbmcgbWV0aG9kIiksQW0oKSxSbSgyMCwidGItZHJvcGRvd24iLDQpLFZtKCJzZWxlY3Rpb25DaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLnRvb2x0aXBTb3J0Q2hhbmdlZC5lbWl0KGUpfSkpLEFtKCksQW0oKSxSbSgyMSwiZGl2IiwxNCksUm0oMjIsIm1hdC1jaGVja2JveCIsMTUpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmlnbm9yZU91dGxpZXJzQ2hhbmdlZC5lbWl0KGUuY2hlY2tlZCl9KSksa3UoMjMsIklnbm9yZSBvdXRsaWVycyBpbiBjaGFydCBzY2FsaW5nIiksQW0oKSxBbSgpLFJtKDI0LCJkaXYiLDE2KSxSbSgyNSwibWF0LWNoZWNrYm94IiwxNSksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5zY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZC5lbWl0KCl9KSksa3UoMjYsIlBhcnRpdGlvbiBub24tbW9ub3RvbmljIFggYXhpcyIpLEFtKCksVG0oMjcsIm1hdC1pY29uIiwxNyksQW0oKSxBbSgpLFJtKDI4LCJzZWN0aW9uIiwxOCksUm0oMjksImgzIiwxKSxrdSgzMCwiSGlzdG9ncmFtcyIpLEFtKCksUm0oMzEsImRpdiIsMTkpLFJtKDMyLCJkaXYiLDEzKSxrdSgzMywiTW9kZSIpLEFtKCksUm0oMzQsInRiLWRyb3Bkb3duIiw0KSxWbSgic2VsZWN0aW9uQ2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oaXN0b2dyYW1Nb2RlQ2hhbmdlZC5lbWl0KGUpfSkpLEFtKCksQW0oKSxBbSgpLFFwKDM1LGFodCwyMCwxMywic2VjdGlvbiIsMjApKSwyJmUmJihyYyg2KSxEbSgidmFsdWUiLG4ueEF4aXNUeXBlKSgib3B0aW9ucyIsbi5YQXhpc1R5cGVEcm9wZG93bk9wdGlvbnMpLHJjKDEpLERtKCJuZ0lmIixuLmlzTGlua2VkVGltZUZlYXR1cmVFbmFibGVkJiZuLnhBeGlzVHlwZT09bi5YQXhpc1R5cGUuU1RFUCkscmMoOCksRG0oIm1heCIsbi5NQVhfU01PT1RISU5HX1NMSURFUl9WQUxVRSkoIm1pbiIsMCkoInN0ZXAiLC4wMSkoInZhbHVlIixuLnNjYWxhclNtb290aGluZykoInRodW1iTGFiZWwiLCEwKSxyYygxKSxEbSgibWF4IixuLk1BWF9TTU9PVEhJTkdfVkFMVUUpKCJ2YWx1ZSIsbi5zY2FsYXJTbW9vdGhpbmcpLHJjKDQpLERtKCJ2YWx1ZSIsbi50b29sdGlwU29ydCkoIm9wdGlvbnMiLG4uVG9vbHRpcFNvcnREcm9wZG93bk9wdGlvbnMpLHJjKDIpLERtKCJjaGVja2VkIixuLmlnbm9yZU91dGxpZXJzKSxyYygzKSxEbSgiY2hlY2tlZCIsbi5zY2FsYXJQYXJ0aXRpb25YKSxyYyg5KSxEbSgidmFsdWUiLG4uaGlzdG9ncmFtTW9kZSkoIm9wdGlvbnMiLG4uSGlzdG9ncmFtTW9kZURyb3Bkb3duT3B0aW9ucykscmMoMSksRG0oIm5nSWYiLG4uaXNJbWFnZVN1cHBvcnRFbmFibGVkKSl9LGRpcmVjdGl2ZXM6W2VodCxkTSxSWCxPWSxEVyxEMSxYSF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZvbnQtc2l6ZToxMnB4fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO3BhZGRpbmc6MTZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBzZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0uc2VjdGlvbi10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzIxMjEyMTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0Om5vcm1hbDttYXJnaW46MCAwIDEycHggMH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuc2VjdGlvbi10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zZWN0aW9uLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmZmfXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRyb2wtcm93W19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MTJweH0uY29udHJvbC1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tYm90dG9tOjhweH0uc2xpZGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MjhweH0uc2xpZGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICAucmVzZXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDo2cHh9LnNsaWRlci1yb3dbX25nY29udGVudC0lQ09NUCVdICAgLnNsaWRlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O2JvcmRlcjoxcHggc29saWQgIzhlOThhMztib3JkZXItcmFkaXVzOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJpdDtoZWlnaHQ6MTAwJTttYXJnaW4tbGVmdDoxMnB4O3BhZGRpbmc6MCA0cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnNsaWRlci1yb3dbX25nY29udGVudC0lQ09NUCVdICAgLnNsaWRlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zbGlkZXItaW5wdXRbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjojNDI1MDY2fS5zY2FsYXJzLXNtb290aGluZ1tfbmdjb250ZW50LSVDT01QJV0gICAuc2xpZGVyLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4Om5vbmU7d2lkdGg6NWVtfS5zY2FsYXJzLXBhcnRpdGlvbi14W19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS5zY2FsYXJzLXBhcnRpdGlvbi14W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTVweDttYXJnaW4tbGVmdDo1cHg7d2lkdGg6MTVweH1tYXQtc2xpZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4OjE7bWFyZ2luLWxlZnQ6LThweDttYXJnaW4tcmlnaHQ6LThweH10Yi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9ja30ubGlua2VkLXRpbWVbX25nY29udGVudC0lQ09NUCVdICAgLnN0ZXAtc2VsZWN0b3JbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MCAxMHB4fS5saW5rZWQtdGltZVtfbmdjb250ZW50LSVDT01QJV0gICBtYXQtc2xpZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmxpbmtlZC10aW1lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRiLXJhbmdlLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5saW5rZWQtdGltZVtfbmdjb250ZW50LSVDT01QJV0gICAuY29udHJvbHNbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6NXB4fSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChyaHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3MtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoic2V0dGluZ3Nfdmlld19jb21wb25lbnQubmcuaHRtbCIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxzdHlsZVVybHM6WyJzZXR0aW5nc192aWV3X2NvbXBvbmVudC5jc3MiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX1dfSkse2lzTGlua2VkVGltZUZlYXR1cmVFbmFibGVkOlt7dHlwZTp4eX1dLHNlbGVjdFRpbWVFbmFibGVkOlt7dHlwZTp4eX1dLHVzZVJhbmdlU2VsZWN0VGltZTpbe3R5cGU6eHl9XSxzZWxlY3RlZFRpbWU6W3t0eXBlOnh5fV0sc3RlcE1pbk1heDpbe3R5cGU6eHl9XSxzZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZDpbe3R5cGU6T3l9XSx1c2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkOlt7dHlwZTpPeX1dLHNlbGVjdFRpbWVDaGFuZ2VkOlt7dHlwZTpPeX1dLGlzSW1hZ2VTdXBwb3J0RW5hYmxlZDpbe3R5cGU6eHl9XSx0b29sdGlwU29ydDpbe3R5cGU6eHl9XSx0b29sdGlwU29ydENoYW5nZWQ6W3t0eXBlOk95fV0saWdub3JlT3V0bGllcnM6W3t0eXBlOnh5fV0saWdub3JlT3V0bGllcnNDaGFuZ2VkOlt7dHlwZTpPeX1dLHhBeGlzVHlwZTpbe3R5cGU6eHl9XSx4QXhpc1R5cGVDaGFuZ2VkOlt7dHlwZTpPeX1dLGhpc3RvZ3JhbU1vZGU6W3t0eXBlOnh5fV0saGlzdG9ncmFtTW9kZUNoYW5nZWQ6W3t0eXBlOk95fV0sc2NhbGFyU21vb3RoaW5nOlt7dHlwZTp4eX1dLHNjYWxhclNtb290aGluZ0NoYW5nZWQ6W3t0eXBlOk95fV0sc2NhbGFyUGFydGl0aW9uWDpbe3R5cGU6eHl9XSxzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZDpbe3R5cGU6T3l9XSxpbWFnZUJyaWdodG5lc3NJbk1pbGxpOlt7dHlwZTp4eX1dLGltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkOlt7dHlwZTpPeX1dLGltYWdlQnJpZ2h0bmVzc1Jlc2V0Olt7dHlwZTpPeX1dLGltYWdlQ29udHJhc3RJbk1pbGxpOlt7dHlwZTp4eX1dLGltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZDpbe3R5cGU6T3l9XSxpbWFnZUNvbnRyYXN0UmVzZXQ6W3t0eXBlOk95fV0saW1hZ2VTaG93QWN0dWFsU2l6ZTpbe3R5cGU6eHl9XSxpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIHNodHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5pc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoaUUpLHRoaXMuc2VsZWN0VGltZUVuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KGpUKSx0aGlzLnVzZVJhbmdlU2VsZWN0VGltZSQ9dGhpcy5zdG9yZS5zZWxlY3QoVVQpLHRoaXMuc2VsZWN0ZWRUaW1lJD10aGlzLnN0b3JlLnNlbGVjdChXVCksdGhpcy5zdGVwTWluTWF4JD10aGlzLnN0b3JlLnNlbGVjdChHVCksdGhpcy5pc0ltYWdlU3VwcG9ydEVuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KHFEKS5waXBlKGNlKEJvb2xlYW4pLGJlKDEpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KG9FKSksSXQoKChbLHRdKT0+dCkpKSx0aGlzLnRvb2x0aXBTb3J0JD10aGlzLnN0b3JlLnNlbGVjdChSVCksdGhpcy5pZ25vcmVPdXRsaWVycyQ9dGhpcy5zdG9yZS5zZWxlY3QoQVQpLHRoaXMueEF4aXNUeXBlJD10aGlzLnN0b3JlLnNlbGVjdChUVCksdGhpcy5oaXN0b2dyYW1Nb2RlJD10aGlzLnN0b3JlLnNlbGVjdChOVCksdGhpcy5zY2FsYXJTbW9vdGhpbmckPXRoaXMuc3RvcmUuc2VsZWN0KHpUKSx0aGlzLnNjYWxhclBhcnRpdGlvblgkPXRoaXMuc3RvcmUuc2VsZWN0KElUKSx0aGlzLmltYWdlQnJpZ2h0bmVzc0luTWlsbGkkPXRoaXMuc3RvcmUuc2VsZWN0KEhUKSx0aGlzLmltYWdlQ29udHJhc3RJbk1pbGxpJD10aGlzLnN0b3JlLnNlbGVjdChGVCksdGhpcy5pbWFnZVNob3dBY3R1YWxTaXplJD10aGlzLnN0b3JlLnNlbGVjdChMVCl9b25Ub29sdGlwU29ydENoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChMRSh7c29ydDp0fSkpfW9uSWdub3JlT3V0bGllcnNDaGFuZ2VkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChCRSgpKX1vblhBeGlzVHlwZUNoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChWRSh7eEF4aXNUeXBlOnR9KSl9b25IaXN0b2dyYW1Nb2RlQ2hhbmdlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKFhFKHtoaXN0b2dyYW1Nb2RlOnR9KSl9b25TY2FsYXJTbW9vdGhpbmdDaGFuZ2VkKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goakUoe3Ntb290aGluZzp0fSkpfW9uU2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFVFKCkpfW9uSW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChHRSh7YnJpZ2h0bmVzc0luTWlsbGk6dH0pKX1vbkltYWdlQnJpZ2h0bmVzc1Jlc2V0KCl7dGhpcy5zdG9yZS5kaXNwYXRjaChZRSgpKX1vbkltYWdlQ29udHJhc3RSZXNldCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2gocUUoKSl9b25JbWFnZUNvbnRyYXN0SW5NaWxsaUNoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChXRSh7Y29udHJhc3RJbk1pbGxpOnR9KSl9b25JbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goWkUoKSl9b25TZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2gobFIoKSl9b25Vc2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChjUigpKX1vblNlbGVjdFRpbWVDaGFuZ2VkKHQpe3ZhciBlO3RoaXMuc3RvcmUuZGlzcGF0Y2goclIoe3N0YXJ0U3RlcDp0LnN0YXJ0LnN0ZXAsZW5kU3RlcDpudWxsPT09KGU9dC5lbmQpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnN0ZXB9KSl9fXNodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8c2h0KShTbShJdykpfSxzaHQuybVjbXA9dG8oe3R5cGU6c2h0LHNlbGVjdG9yczpbWyJtZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncyJdXSxkZWNsczoxNix2YXJzOjQ1LGNvbnN0czpbWzMsImlzSW1hZ2VTdXBwb3J0RW5hYmxlZCIsInRvb2x0aXBTb3J0IiwiaWdub3JlT3V0bGllcnMiLCJ4QXhpc1R5cGUiLCJoaXN0b2dyYW1Nb2RlIiwic2NhbGFyU21vb3RoaW5nIiwic2NhbGFyUGFydGl0aW9uWCIsImltYWdlQnJpZ2h0bmVzc0luTWlsbGkiLCJpbWFnZUNvbnRyYXN0SW5NaWxsaSIsImltYWdlU2hvd0FjdHVhbFNpemUiLCJpc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCIsInNlbGVjdFRpbWVFbmFibGVkIiwic2VsZWN0ZWRUaW1lIiwidXNlUmFuZ2VTZWxlY3RUaW1lIiwic3RlcE1pbk1heCIsInRvb2x0aXBTb3J0Q2hhbmdlZCIsImlnbm9yZU91dGxpZXJzQ2hhbmdlZCIsInhBeGlzVHlwZUNoYW5nZWQiLCJoaXN0b2dyYW1Nb2RlQ2hhbmdlZCIsInNjYWxhclNtb290aGluZ0NoYW5nZWQiLCJzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCIsImltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkIiwiaW1hZ2VCcmlnaHRuZXNzUmVzZXQiLCJpbWFnZUNvbnRyYXN0SW5NaWxsaUNoYW5nZWQiLCJpbWFnZUNvbnRyYXN0UmVzZXQiLCJpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCIsInNlbGVjdFRpbWVFbmFibGVUb2dnbGVkIiwidXNlUmFuZ2VTZWxlY3RUaW1lVG9nZ2xlZCIsInNlbGVjdFRpbWVDaGFuZ2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncy1jb21wb25lbnQiLDApLFZtKCJ0b29sdGlwU29ydENoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uVG9vbHRpcFNvcnRDaGFuZ2VkKGUpfSkpKCJpZ25vcmVPdXRsaWVyc0NoYW5nZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25JZ25vcmVPdXRsaWVyc0NoYW5nZWQoKX0pKSgieEF4aXNUeXBlQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25YQXhpc1R5cGVDaGFuZ2VkKGUpfSkpKCJoaXN0b2dyYW1Nb2RlQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25IaXN0b2dyYW1Nb2RlQ2hhbmdlZChlKX0pKSgic2NhbGFyU21vb3RoaW5nQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TY2FsYXJTbW9vdGhpbmdDaGFuZ2VkKGUpfSkpKCJzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblNjYWxhclBhcnRpdGlvblhUb2dnbGVkKCl9KSkoImltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkKGUpfSkpKCJpbWFnZUJyaWdodG5lc3NSZXNldCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkltYWdlQnJpZ2h0bmVzc1Jlc2V0KCl9KSkoImltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25JbWFnZUNvbnRyYXN0SW5NaWxsaUNoYW5nZWQoZSl9KSkoImltYWdlQ29udHJhc3RSZXNldCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkltYWdlQ29udHJhc3RSZXNldCgpfSkpKCJpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkKCl9KSkoInNlbGVjdFRpbWVFbmFibGVUb2dnbGVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uU2VsZWN0VGltZUVuYWJsZVRvZ2dsZWQoKX0pKSgidXNlUmFuZ2VTZWxlY3RUaW1lVG9nZ2xlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblVzZVJhbmdlU2VsZWN0VGltZVRvZ2dsZWQoKX0pKSgic2VsZWN0VGltZUNoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uU2VsZWN0VGltZUNoYW5nZWQoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxBaCg4LCJhc3luYyIpLEFoKDksImFzeW5jIiksQWgoMTAsImFzeW5jIiksQWgoMTEsImFzeW5jIiksQWgoMTIsImFzeW5jIiksQWgoMTMsImFzeW5jIiksQWgoMTQsImFzeW5jIiksQWgoMTUsImFzeW5jIiksQW0oKSksMiZlJiZEbSgiaXNJbWFnZVN1cHBvcnRFbmFibGVkIixUaCgxLDE1LG4uaXNJbWFnZVN1cHBvcnRFbmFibGVkJCkpKCJ0b29sdGlwU29ydCIsVGgoMiwxNyxuLnRvb2x0aXBTb3J0JCkpKCJpZ25vcmVPdXRsaWVycyIsVGgoMywxOSxuLmlnbm9yZU91dGxpZXJzJCkpKCJ4QXhpc1R5cGUiLFRoKDQsMjEsbi54QXhpc1R5cGUkKSkoImhpc3RvZ3JhbU1vZGUiLFRoKDUsMjMsbi5oaXN0b2dyYW1Nb2RlJCkpKCJzY2FsYXJTbW9vdGhpbmciLFRoKDYsMjUsbi5zY2FsYXJTbW9vdGhpbmckKSkoInNjYWxhclBhcnRpdGlvblgiLFRoKDcsMjcsbi5zY2FsYXJQYXJ0aXRpb25YJCkpKCJpbWFnZUJyaWdodG5lc3NJbk1pbGxpIixUaCg4LDI5LG4uaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaSQpKSgiaW1hZ2VDb250cmFzdEluTWlsbGkiLFRoKDksMzEsbi5pbWFnZUNvbnRyYXN0SW5NaWxsaSQpKSgiaW1hZ2VTaG93QWN0dWFsU2l6ZSIsVGgoMTAsMzMsbi5pbWFnZVNob3dBY3R1YWxTaXplJCkpKCJpc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCIsVGgoMTEsMzUsbi5pc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCQpKSgic2VsZWN0VGltZUVuYWJsZWQiLFRoKDEyLDM3LG4uc2VsZWN0VGltZUVuYWJsZWQkKSkoInNlbGVjdGVkVGltZSIsVGgoMTMsMzksbi5zZWxlY3RlZFRpbWUkKSkoInVzZVJhbmdlU2VsZWN0VGltZSIsVGgoMTQsNDEsbi51c2VSYW5nZVNlbGVjdFRpbWUkKSkoInN0ZXBNaW5NYXgiLFRoKDE1LDQzLG4uc3RlcE1pbk1heCQpKX0sZGlyZWN0aXZlczpbcmh0XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoc2h0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtZGFzaGJvYXJkLXNldHRpbmdzIix0ZW1wbGF0ZTonXG4gICAgPG1ldHJpY3MtZGFzaGJvYXJkLXNldHRpbmdzLWNvbXBvbmVudFxuICAgICAgW2lzSW1hZ2VTdXBwb3J0RW5hYmxlZF09ImlzSW1hZ2VTdXBwb3J0RW5hYmxlZCQgfCBhc3luYyJcbiAgICAgIFt0b29sdGlwU29ydF09InRvb2x0aXBTb3J0JCB8IGFzeW5jIlxuICAgICAgKHRvb2x0aXBTb3J0Q2hhbmdlZCk9Im9uVG9vbHRpcFNvcnRDaGFuZ2VkKCRldmVudCkiXG4gICAgICBbaWdub3JlT3V0bGllcnNdPSJpZ25vcmVPdXRsaWVycyQgfCBhc3luYyJcbiAgICAgIChpZ25vcmVPdXRsaWVyc0NoYW5nZWQpPSJvbklnbm9yZU91dGxpZXJzQ2hhbmdlZCgpIlxuICAgICAgW3hBeGlzVHlwZV09InhBeGlzVHlwZSQgfCBhc3luYyJcbiAgICAgICh4QXhpc1R5cGVDaGFuZ2VkKT0ib25YQXhpc1R5cGVDaGFuZ2VkKCRldmVudCkiXG4gICAgICBbaGlzdG9ncmFtTW9kZV09Imhpc3RvZ3JhbU1vZGUkIHwgYXN5bmMiXG4gICAgICAoaGlzdG9ncmFtTW9kZUNoYW5nZWQpPSJvbkhpc3RvZ3JhbU1vZGVDaGFuZ2VkKCRldmVudCkiXG4gICAgICBbc2NhbGFyU21vb3RoaW5nXT0ic2NhbGFyU21vb3RoaW5nJCB8IGFzeW5jIlxuICAgICAgKHNjYWxhclNtb290aGluZ0NoYW5nZWQpPSJvblNjYWxhclNtb290aGluZ0NoYW5nZWQoJGV2ZW50KSJcbiAgICAgIFtzY2FsYXJQYXJ0aXRpb25YXT0ic2NhbGFyUGFydGl0aW9uWCQgfCBhc3luYyJcbiAgICAgIChzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCk9Im9uU2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQoKSJcbiAgICAgIFtpbWFnZUJyaWdodG5lc3NJbk1pbGxpXT0iaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaSQgfCBhc3luYyJcbiAgICAgIChpbWFnZUJyaWdodG5lc3NJbk1pbGxpQ2hhbmdlZCk9Im9uSW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQoJGV2ZW50KSJcbiAgICAgIChpbWFnZUJyaWdodG5lc3NSZXNldCk9Im9uSW1hZ2VCcmlnaHRuZXNzUmVzZXQoKSJcbiAgICAgIFtpbWFnZUNvbnRyYXN0SW5NaWxsaV09ImltYWdlQ29udHJhc3RJbk1pbGxpJCB8IGFzeW5jIlxuICAgICAgKGltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZCk9Im9uSW1hZ2VDb250cmFzdEluTWlsbGlDaGFuZ2VkKCRldmVudCkiXG4gICAgICAoaW1hZ2VDb250cmFzdFJlc2V0KT0ib25JbWFnZUNvbnRyYXN0UmVzZXQoKSJcbiAgICAgIFtpbWFnZVNob3dBY3R1YWxTaXplXT0iaW1hZ2VTaG93QWN0dWFsU2l6ZSQgfCBhc3luYyJcbiAgICAgIChpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCk9Im9uSW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQoKSJcbiAgICAgIFtpc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZF09ImlzTGlua2VkVGltZUZlYXR1cmVFbmFibGVkJCB8IGFzeW5jIlxuICAgICAgW3NlbGVjdFRpbWVFbmFibGVkXT0ic2VsZWN0VGltZUVuYWJsZWQkIHwgYXN5bmMiXG4gICAgICBbc2VsZWN0ZWRUaW1lXT0ic2VsZWN0ZWRUaW1lJCB8IGFzeW5jIlxuICAgICAgW3VzZVJhbmdlU2VsZWN0VGltZV09InVzZVJhbmdlU2VsZWN0VGltZSQgfCBhc3luYyJcbiAgICAgIFtzdGVwTWluTWF4XT0ic3RlcE1pbk1heCQgfCBhc3luYyJcbiAgICAgIChzZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZCk9Im9uU2VsZWN0VGltZUVuYWJsZVRvZ2dsZWQoKSJcbiAgICAgICh1c2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkKT0ib25Vc2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkKCkiXG4gICAgICAoc2VsZWN0VGltZUNoYW5nZWQpPSJvblNlbGVjdFRpbWVDaGFuZ2VkKCRldmVudCkiXG4gICAgPlxuICAgIDwvbWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3MtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgbGh0e31mdW5jdGlvbiBjaHQodCxlKXsxJnQmJlRtKDAsIm1ldHJpY3MtZmlsdGVyZWQtdmlldyIsOSksMiZ0JiZEbSgiY2FyZE9ic2VydmVyIixZbSgpLmNhcmRPYnNlcnZlcil9ZnVuY3Rpb24gZGh0KHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwxMiksVG0oMSwibWF0LXNwaW5uZXIiLDEzKSxBbSgpKX1mdW5jdGlvbiBwaHQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDE0KSxSbSgxLCJkaXYiLDE1KSxSbSgyLCJoMiIsMTYpLGt1KDMsIlNldHRpbmdzIiksQW0oKSxSbSg0LCJidXR0b24iLDE3KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkub25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZC5lbWl0KCl9KSksVG0oNSwibWF0LWljb24iLDE4KSxBbSgpLEFtKCksVG0oNiwibWV0cmljcy1kYXNoYm9hcmQtcmlnaHQtcGFuZSIpLEFtKCl9fWxodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bGh0KX0sbGh0Lsm1Y21wPXRvKHt0eXBlOmxodCxzZWxlY3RvcnM6W1sibWV0cmljcy1kYXNoYm9hcmQtcmlnaHQtcGFuZSJdXSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZUbSgwLCJtZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncyIpfSxkaXJlY3RpdmVzOltzaHRdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobGh0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtZGFzaGJvYXJkLXJpZ2h0LXBhbmUiLHRlbXBsYXRlOiI8bWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3M+PC9tZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncz4iLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwsbnVsbCk7Y29uc3QgbWh0PWZ1bmN0aW9uKHQpe3JldHVybntjaGVja2VkOnQsInNldHRpbmdzLWJ1dHRvbiI6ITB9fTtjbGFzcyB1aHR7Y29uc3RydWN0b3IodCl7dGhpcy5ob3N0PXQsdGhpcy5vblNldHRpbmdzQnV0dG9uQ2xpY2tlZD1uZXcgTGgsdGhpcy5vbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkPW5ldyBMaCx0aGlzLm9uUGx1Z2luVHlwZVRvZ2dsZWQ9bmV3IExoLHRoaXMub25QbHVnaW5UeXBlQWxsVG9nZ2xlZD1uZXcgTGgsdGhpcy5QbHVnaW5UeXBlPWhBLHRoaXMuY2FyZE9ic2VydmVyPW5ldyBwMih0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwiNjAwcHggMHB4IDYwMHB4IDBweCIpfX11aHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHVodCkoU20oaGcpKX0sdWh0Lsm1Y21wPXRvKHt0eXBlOnVodCxzZWxlY3RvcnM6W1sibWV0cmljcy1tYWluLXZpZXctY29tcG9uZW50Il1dLGlucHV0czp7c2hvd0ZpbHRlcmVkVmlldzoic2hvd0ZpbHRlcmVkVmlldyIsaXNTaWRlcGFuZU9wZW46ImlzU2lkZXBhbmVPcGVuIixmaWx0ZXJlZFBsdWdpblR5cGVzOiJmaWx0ZXJlZFBsdWdpblR5cGVzIixpbml0aWFsVGFnc0xvYWRpbmc6ImluaXRpYWxUYWdzTG9hZGluZyJ9LG91dHB1dHM6e29uU2V0dGluZ3NCdXR0b25DbGlja2VkOiJvblNldHRpbmdzQnV0dG9uQ2xpY2tlZCIsb25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZDoib25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZCIsb25QbHVnaW5UeXBlVG9nZ2xlZDoib25QbHVnaW5UeXBlVG9nZ2xlZCIsb25QbHVnaW5UeXBlQWxsVG9nZ2xlZDoib25QbHVnaW5UeXBlQWxsVG9nZ2xlZCJ9LGRlY2xzOjIyLHZhcnM6MjEsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZTtyZXR1cm4gdD0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiVG9nZ2xlIHNldHRpbmdzIHNpZGUgcGFuZSIpOiRsb2NhbGl6ZWA6TGFiZWwgb24gYSB0b29sYmFyIGJ1dHRvbiB0byB0b2dnbGUgdGhlIHNldHRpbmdzIHNpZGUgcGFuZS7ikJ9kMzUxNmRiNmJiZTY4NjBhNTViZWFiNjZlNDk2OWRhYzYyNWI4ZDcy4pCfNzY1OTI4NTQ0NTU4MDgzODkyNTpUb2dnbGUgc2V0dGluZ3Mgc2lkZSBwYW5lYCxlPSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJDbG9zZSBzaWRlIHBhbmUiKTokbG9jYWxpemVgOkxhYmVsIG9uIGEgYnV0dG9uIHRvIGNsb3NlIHRoZSBzZXR0aW5ncyBzaWRlIHBhbmUu4pCfMDQ1MjFkYzBiNmE2NWNmNWMzODI5NDRjOWE4YjRiODQ0YTNlOTU5OOKQnzgxNTY3NjY5OTc3NDcxNjU4NzE6Q2xvc2Ugc2lkZSBwYW5lYCxbWzEsInRvb2xiYXIiXSxbIm11bHRpcGxlIiwiIiwiYXBwZWFyYW5jZSIsInN0YW5kYXJkIiwxLCJmaWx0ZXItdmlldyJdLFszLCJjaGVja2VkIiwiY2xpY2siXSxbMSwicmlnaHQtaXRlbXMiXSxbIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywibmdDbGFzcyIsImNsaWNrIl0sWyJzdmdJY29uIiwic2V0dGluZ3NfMjRweCJdLFsxLCJzcGxpdC1jb250ZW50Il0sWyJjZGtTY3JvbGxhYmxlIiwiIl0sWzMsImNhcmRPYnNlcnZlciIsNCwibmdJZiJdLFszLCJjYXJkT2JzZXJ2ZXIiXSxbImNsYXNzIiwibG9hZGluZy1jb250YWluZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwic2lkZWJhciIsNCwibmdJZiJdLFsxLCJsb2FkaW5nLWNvbnRhaW5lciJdLFsiZGlhbWV0ZXIiLCIzNiJdLFsxLCJzaWRlYmFyIl0sWzEsImhlYWRlciJdLFsxLCJ0aXRsZSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNsb3NlXzI0cHgiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDApLFRtKDEsIm1ldHJpY3MtdGFnLWZpbHRlciIpLFJtKDIsIm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIiwxKSxSbSgzLCJtYXQtYnV0dG9uLXRvZ2dsZSIsMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGx1Z2luVHlwZUFsbFRvZ2dsZWQuZW1pdCgpfSkpLGt1KDQsIiBBbGwgIiksQW0oKSxSbSg1LCJtYXQtYnV0dG9uLXRvZ2dsZSIsMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGx1Z2luVHlwZVRvZ2dsZWQuZW1pdChuLlBsdWdpblR5cGUuU0NBTEFSUyl9KSksa3UoNiwiIFNjYWxhcnMgIiksQW0oKSxSbSg3LCJtYXQtYnV0dG9uLXRvZ2dsZSIsMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGx1Z2luVHlwZVRvZ2dsZWQuZW1pdChuLlBsdWdpblR5cGUuSU1BR0VTKX0pKSxrdSg4LCIgSW1hZ2UgIiksQW0oKSxSbSg5LCJtYXQtYnV0dG9uLXRvZ2dsZSIsMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGx1Z2luVHlwZVRvZ2dsZWQuZW1pdChuLlBsdWdpblR5cGUuSElTVE9HUkFNUyl9KSksa3UoMTAsIiBIaXN0b2dyYW0gIiksQW0oKSxBbSgpLFJtKDExLCJkaXYiLDMpLFJtKDEyLCJidXR0b24iLDQpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblNldHRpbmdzQnV0dG9uQ2xpY2tlZC5lbWl0KCl9KSksVG0oMTMsIm1hdC1pY29uIiw1KSxrdSgxNCwiIFNldHRpbmdzICIpLEFtKCksQW0oKSxBbSgpLFJtKDE1LCJkaXYiLDYpLFJtKDE2LCJkaXYiLDcpLFFwKDE3LGNodCwxLDEsIm1ldHJpY3MtZmlsdGVyZWQtdmlldyIsOCksVG0oMTgsIm1ldHJpY3MtcGlubmVkLXZpZXciLDkpLFFwKDE5LGRodCwyLDAsImRpdiIsMTApLFRtKDIwLCJtZXRyaWNzLWNhcmQtZ3JvdXBzIiw5KSxBbSgpLFFwKDIxLHBodCw3LDAsImRpdiIsMTEpLEFtKCkpLDImZSYmKHJjKDMpLERtKCJjaGVja2VkIiwwPT09bi5maWx0ZXJlZFBsdWdpblR5cGVzLnNpemUpLHJjKDIpLERtKCJjaGVja2VkIixuLmZpbHRlcmVkUGx1Z2luVHlwZXMuaGFzKG4uUGx1Z2luVHlwZS5TQ0FMQVJTKSkscmMoMiksRG0oImNoZWNrZWQiLG4uZmlsdGVyZWRQbHVnaW5UeXBlcy5oYXMobi5QbHVnaW5UeXBlLklNQUdFUykpLHJjKDIpLERtKCJjaGVja2VkIixuLmZpbHRlcmVkUGx1Z2luVHlwZXMuaGFzKG4uUGx1Z2luVHlwZS5ISVNUT0dSQU1TKSkscmMoMyksRG0oIm5nQ2xhc3MiLE1oKDE5LG1odCxuLmlzU2lkZXBhbmVPcGVuKSksanAoImFyaWEtcHJlc3NlZCIsbi5pc1NpZGVwYW5lT3BlbikscmMoNCkscHUoIm1haW4iLCEwKSgiZmlsdGVyLXZpZXciLG4uc2hvd0ZpbHRlcmVkVmlldykscmMoMSksRG0oIm5nSWYiLG4uc2hvd0ZpbHRlcmVkVmlldykscmMoMSksZHUoImRpc3BsYXkiLG4uc2hvd0ZpbHRlcmVkVmlldz8ibm9uZSI6IiIpLERtKCJjYXJkT2JzZXJ2ZXIiLG4uY2FyZE9ic2VydmVyKSxyYygxKSxEbSgibmdJZiIsbi5pbml0aWFsVGFnc0xvYWRpbmcpLHJjKDEpLGR1KCJkaXNwbGF5IixuLnNob3dGaWx0ZXJlZFZpZXc/Im5vbmUiOiIiKSxEbSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcikscmMoMSksRG0oIm5nSWYiLG4uaXNTaWRlcGFuZU9wZW4pKX0sZGlyZWN0aXZlczpbeDIsRTIsQTIsWEgsYU0sRFcsbUYsZE0sQmd0LFlndCwkZ3QsbzEsbGh0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LnRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZmxleDpub25lO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDE2cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0udG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBtZXRyaWNzLXRhZy1maWx0ZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxIDEwMHB4fS50b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yaWdodC1pdGVtc1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlYmViZWI7bWFyZ2luLWxlZnQ6MTZweDtwYWRkaW5nLWxlZnQ6MTZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICAucmlnaHQtaXRlbXNbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICAucmlnaHQtaXRlbXNbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjNTU1fS5maWx0ZXItdmlld1tfbmdjb250ZW50LSVDT01QJV17ZmxleDpub25lO21hcmdpbi1yaWdodDo1cHh9LmZpbHRlci12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MjVweDtmb250LXNpemU6MTJweH0uZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgbWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVdICAgICAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudHtsaW5lLWhlaWdodDoyNXB4fS5zcGxpdC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7b3ZlcmZsb3cteTphdXRvO2ZsZXg6MX0ubWFpbltfbmdjb250ZW50LSVDT01QJV0sIC5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtjb250YWluOnN0cmljdDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87d2lsbC1jaGFuZ2U6dHJhbnNmb3JtLHNjcm9sbC1wb3NpdGlvbn0ubWFpbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjVmNmY3O2ZsZXg6MSAxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm1haW5bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAubWFpbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojM2EzYTNhfS5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1ldHJpY3MtZmlsdGVyZWQtdmlld1tfbmdjb250ZW50LSVDT01QJV0sIC5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1ldHJpY3MtcGlubmVkLXZpZXdbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWJ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm1haW5bX25nY29udGVudC0lQ09NUCVdICAgbWV0cmljcy1maWx0ZXJlZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm1haW5bX25nY29udGVudC0lQ09NUCVdICAgbWV0cmljcy1maWx0ZXJlZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1ldHJpY3MtcGlubmVkLXZpZXdbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAubWFpbltfbmdjb250ZW50LSVDT01QJV0gICBtZXRyaWNzLXBpbm5lZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fS5tYWluLmZpbHRlci12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW59Lm1haW4uZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgbWV0cmljcy1maWx0ZXJlZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtjb250YWluOmNvbnRlbnQ7b3ZlcmZsb3c6YXV0bzt3aWxsLWNoYW5nZTp0cmFuc2Zvcm0sc2Nyb2xsLXBvc2l0aW9ufS5sb2FkaW5nLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbjoyMHB4IDB9LnNpZGViYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZWJlYmViO2ZsZXg6MCAwIDI1MHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnNpZGViYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjNTU1fS5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtoZWlnaHQ6NDJweDtwYWRkaW5nOjAgMTZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0gICAuaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnNpZGViYXJbX25nY29udGVudC0lQ09NUCVdICAgLmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0uc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0gICAuaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0Om5vcm1hbDttYXJnaW46MH1bX25naG9zdC0lQ09NUCVdICAgLnNldHRpbmdzLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTtkaXNwbGF5OmlubGluZS1mbGV4fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zZXR0aW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfVtfbmdob3N0LSVDT01QJV0gICAuc2V0dGluZ3MtYnV0dG9uLmNoZWNrZWRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2UwZTBlMDtib3JkZXItY29sb3I6I2UwZTBlMH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2V0dGluZ3MtYnV0dG9uLmNoZWNrZWRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzIxMjEyMX1bX25naG9zdC0lQ09NUCVdICAgLnNldHRpbmdzLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAgIC5tYXQtYnV0dG9uLXdyYXBwZXJ7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9W19uZ2hvc3QtJUNPTVAlXSAgIC5zZXR0aW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDo0cHh9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHVodCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLW1haW4tdmlldy1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJtYWluX3ZpZXdfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIm1haW5fdmlld19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfV19KSx7c2hvd0ZpbHRlcmVkVmlldzpbe3R5cGU6eHl9XSxpc1NpZGVwYW5lT3Blbjpbe3R5cGU6eHl9XSxmaWx0ZXJlZFBsdWdpblR5cGVzOlt7dHlwZTp4eX1dLGluaXRpYWxUYWdzTG9hZGluZzpbe3R5cGU6eHl9XSxvblNldHRpbmdzQnV0dG9uQ2xpY2tlZDpbe3R5cGU6T3l9XSxvbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkOlt7dHlwZTpPeX1dLG9uUGx1Z2luVHlwZVRvZ2dsZWQ6W3t0eXBlOk95fV0sb25QbHVnaW5UeXBlQWxsVG9nZ2xlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIGZodHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5pc1NpZGVwYW5lT3BlbiQ9dGhpcy5zdG9yZS5zZWxlY3QoWFQpLHRoaXMuaW5pdGlhbFRhZ3NMb2FkaW5nJD10aGlzLnN0b3JlLnNlbGVjdCh1VCkucGlwZShIZSgodD0+bnVsbD09PXQubGFzdExvYWRlZFRpbWVJbk1zKSwhMCksSXQoKHQ9PnQuc3RhdGU9PT15RS5MT0FESU5HJiZudWxsPT09dC5sYXN0TG9hZGVkVGltZUluTXMpKSksdGhpcy5zaG93RmlsdGVyZWRWaWV3JD10aGlzLnN0b3JlLnNlbGVjdChCVCkucGlwZShJdCgodD0+dC5sZW5ndGg+MCkpKSx0aGlzLmZpbHRlcmVkUGx1Z2luVHlwZXMkPXRoaXMuc3RvcmUuc2VsZWN0KHFUKX1vblNldHRpbmdzQnV0dG9uQ2xpY2tlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goekUoKSl9b25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goTkUoKSl9b25QbHVnaW5WaXNpYmlsaXR5VG9nZ2xlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKGlSKHtwbHVnaW46dH0pKX1vblNob3dBbGxQbHVnaW5zKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChhUigpKX19Zmh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmaHQpKFNtKEl3KSl9LGZodC7JtWNtcD10byh7dHlwZTpmaHQsc2VsZWN0b3JzOltbIm1ldHJpY3MtbWFpbi12aWV3Il1dLGRlY2xzOjUsdmFyczoxMixjb25zdHM6W1szLCJzaG93RmlsdGVyZWRWaWV3IiwiaXNTaWRlcGFuZU9wZW4iLCJpbml0aWFsVGFnc0xvYWRpbmciLCJmaWx0ZXJlZFBsdWdpblR5cGVzIiwib25TZXR0aW5nc0J1dHRvbkNsaWNrZWQiLCJvbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkIiwib25QbHVnaW5UeXBlVG9nZ2xlZCIsIm9uUGx1Z2luVHlwZUFsbFRvZ2dsZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsIm1ldHJpY3MtbWFpbi12aWV3LWNvbXBvbmVudCIsMCksVm0oIm9uU2V0dGluZ3NCdXR0b25DbGlja2VkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uU2V0dGluZ3NCdXR0b25DbGlja2VkKCl9KSkoIm9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZCgpfSkpKCJvblBsdWdpblR5cGVUb2dnbGVkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblBsdWdpblZpc2liaWxpdHlUb2dnbGVkKGUpfSkpKCJvblBsdWdpblR5cGVBbGxUb2dnbGVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uU2hvd0FsbFBsdWdpbnMoKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBaCg0LCJhc3luYyIpLEFtKCkpLDImZSYmRG0oInNob3dGaWx0ZXJlZFZpZXciLFRoKDEsNCxuLnNob3dGaWx0ZXJlZFZpZXckKSkoImlzU2lkZXBhbmVPcGVuIixUaCgyLDYsbi5pc1NpZGVwYW5lT3BlbiQpKSgiaW5pdGlhbFRhZ3NMb2FkaW5nIixUaCgzLDgsbi5pbml0aWFsVGFnc0xvYWRpbmckKSkoImZpbHRlcmVkUGx1Z2luVHlwZXMiLFRoKDQsMTAsbi5maWx0ZXJlZFBsdWdpblR5cGVzJCkpfSxkaXJlY3RpdmVzOlt1aHRdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChmaHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1tYWluLXZpZXciLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy1tYWluLXZpZXctY29tcG9uZW50XG4gICAgICBbc2hvd0ZpbHRlcmVkVmlld109InNob3dGaWx0ZXJlZFZpZXckIHwgYXN5bmMiXG4gICAgICBbaXNTaWRlcGFuZU9wZW5dPSJpc1NpZGVwYW5lT3BlbiQgfCBhc3luYyJcbiAgICAgIFtpbml0aWFsVGFnc0xvYWRpbmddPSJpbml0aWFsVGFnc0xvYWRpbmckIHwgYXN5bmMiXG4gICAgICBbZmlsdGVyZWRQbHVnaW5UeXBlc109ImZpbHRlcmVkUGx1Z2luVHlwZXMkIHwgYXN5bmMiXG4gICAgICAob25TZXR0aW5nc0J1dHRvbkNsaWNrZWQpPSJvblNldHRpbmdzQnV0dG9uQ2xpY2tlZCgpIlxuICAgICAgKG9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQpPSJvbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkKCkiXG4gICAgICAob25QbHVnaW5UeXBlVG9nZ2xlZCk9Im9uUGx1Z2luVmlzaWJpbGl0eVRvZ2dsZWQoJGV2ZW50KSJcbiAgICAgIChvblBsdWdpblR5cGVBbGxUb2dnbGVkKT0ib25TaG93QWxsUGx1Z2lucygpIlxuICAgID48L21ldHJpY3MtbWFpbi12aWV3LWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IGdodD1uZXcgR2EoIltNZXRyaWNzXSBNRVRSSUNTX1Byb21vIE1lc3NhZ2UgQ29tcG9uZW50Iik7ZnVuY3Rpb24gaGh0KHQsZSl7MSZ0JiYoTm0oMCksWG0oMSksem0oKSl9Y2xhc3MgYmh0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy52aWV3Q29udGFpbmVyUmVmPXQsdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9ZX1uZ09uSW5pdCgpe2lmKHRoaXMuY3VzdG9taXphYmxlQ29tcG9uZW50KXtjb25zdCB0PXRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuY3VzdG9taXphYmxlQ29tcG9uZW50LmNvbnN0cnVjdG9yKTt0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHQpfX19Ymh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxiaHQpKFNtKGVoKSxTbSh1ZykpfSxiaHQuybVjbXA9dG8oe3R5cGU6Ymh0LHNlbGVjdG9yczpbWyJ0Yi1jdXN0b21pemF0aW9uIl1dLGlucHV0czp7Y3VzdG9taXphYmxlQ29tcG9uZW50OiJjdXN0b21pemFibGVDb21wb25lbnQifSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIl0sZGVjbHM6MSx2YXJzOjEsY29uc3RzOltbNCwibmdJZiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoWm0oKSxRcCgwLGhodCwyLDAsIm5nLWNvbnRhaW5lciIsMCkpLDImZSYmRG0oIm5nSWYiLCFuLmN1c3RvbWl6YWJsZUNvbXBvbmVudCl9LGRpcmVjdGl2ZXM6W2RNXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGJodCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Yi1jdXN0b21pemF0aW9uIix0ZW1wbGF0ZTonXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj0iIWN1c3RvbWl6YWJsZUNvbXBvbmVudCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTplaH0se3R5cGU6dWd9XX0pLHtjdXN0b21pemFibGVDb21wb25lbnQ6W3t0eXBlOnh5fV19KTtjbGFzcyB5aHR7Y29uc3RydWN0b3IodCl7dGhpcy5jdXN0b21Qcm9tb01lc3NhZ2U9dCx0aGlzLm9uRGlzbWlzcz1uZXcgTGgsdGhpcy5vbkdvVG9TY2FsYXJzPW5ldyBMaH19eWh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5aHQpKFNtKGdodCw4KSl9LHlodC7JtWNtcD10byh7dHlwZTp5aHQsc2VsZWN0b3JzOltbIm1ldHJpY3MtcHJvbW8tbm90aWNlLWNvbXBvbmVudCJdXSxvdXRwdXRzOntvbkRpc21pc3M6Im9uRGlzbWlzcyIsb25Hb1RvU2NhbGFyczoib25Hb1RvU2NhbGFycyJ9LGRlY2xzOjcsdmFyczoxLGNvbnN0czpbWzEsIm1lc3NhZ2UiLDMsImN1c3RvbWl6YWJsZUNvbXBvbmVudCJdLFsxLCJnby10by1zY2FsYXJzIiwzLCJjbGljayJdLFsxLCJkaXNtaXNzIiwzLCJjbGljayJdLFsiaW5saW5lIiwiIiwic3ZnSWNvbiIsImNsb3NlXzI0cHgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsInRiLWN1c3RvbWl6YXRpb24iLDApLGt1KDEsIiBXZWxjb21lIHRvIG5ldyBkZWZhdWx0IGV4cGVyaWVuY2Ugb2YgVGVuc29yQm9hcmQuIFRpbWUgU2VyaWVzIGxldHMgeW91IHZpZXcgYWxsIHZpc3VhbGl6YXRpb25zIGF0IG9uY2UsIHB1dCB0aGVtIHNpZGUtYnktc2lkZSB3aXRoIHBpbnMsIGFuZCBjdXN0b21pemUgY29sb3JzLiBTY2FsYXJzIGFuZCBvdGhlciBwbHVnaW5zIGFyZSBzdGlsbCBhdmFpbGFibGUuICIpLFJtKDIsImJ1dHRvbiIsMSksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uR29Ub1NjYWxhcnMuZW1pdCgpfSkpLGt1KDMsIiBHbyB0byBTY2FsYXJzIHBsdWdpbiIpLEFtKCksa3UoNCwiLlxuIiksQW0oKSxSbSg1LCJidXR0b24iLDIpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkRpc21pc3MuZW1pdCgpfSkpLFRtKDYsIm1hdC1pY29uIiwzKSxBbSgpKSwyJmUmJkRtKCJjdXN0b21pemFibGVDb21wb25lbnQiLG4uY3VzdG9tUHJvbW9NZXNzYWdlKX0sZGlyZWN0aXZlczpbYmh0LERXXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmb250LXNpemU6MTRweDtnYXA6NXB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2xpbmUtaGVpZ2h0OjIwcHg7cGFkZGluZzo1cHggMTBweH1idXR0b25bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7Y29sb3I6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjtmb250OmluaGVyaXQ7cGFkZGluZzowfWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX10Yi1jdXN0b21pemF0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzE5NzZkMn0uZGlzbWlzc1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24tc2VsZjpiYXNlbGluZTtmbGV4Om5vbmU7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeWh0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtcHJvbW8tbm90aWNlLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Im1ldHJpY3NfcHJvbW9fbm90aWNlX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyJtZXRyaWNzX3Byb21vX25vdGljZV9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlFhLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltnaHRdfV19XX0pLHtvbkRpc21pc3M6W3t0eXBlOk95fV0sb25Hb1RvU2NhbGFyczpbe3R5cGU6T3l9XX0pO2NsYXNzIF9odHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXR9b25EaXNtaXNzKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChkUigpKX1vbkdvVG9TY2FsYXJzKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChwUigpKX19ZnVuY3Rpb24gQ2h0KHQsZSl7MSZ0JiZUbSgwLCJtZXRyaWNzLXByb21vLW5vdGljZSIsMyl9X2h0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfaHQpKFNtKEl3KSl9LF9odC7JtWNtcD10byh7dHlwZTpfaHQsc2VsZWN0b3JzOltbIm1ldHJpY3MtcHJvbW8tbm90aWNlIl1dLGRlY2xzOjEsdmFyczowLGNvbnN0czpbWzMsIm9uRGlzbWlzcyIsIm9uR29Ub1NjYWxhcnMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsIm1ldHJpY3MtcHJvbW8tbm90aWNlLWNvbXBvbmVudCIsMCksVm0oIm9uRGlzbWlzcyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkRpc21pc3MoKX0pKSgib25Hb1RvU2NhbGFycyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkdvVG9TY2FsYXJzKCl9KSksQW0oKSl9LGRpcmVjdGl2ZXM6W3lodF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChfaHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1wcm9tby1ub3RpY2UiLHRlbXBsYXRlOic8bWV0cmljcy1wcm9tby1ub3RpY2UtY29tcG9uZW50XG4gICAgKG9uRGlzbWlzcyk9Im9uRGlzbWlzcygpIlxuICAgIChvbkdvVG9TY2FsYXJzKT0ib25Hb1RvU2NhbGFycygpIlxuICA+PC9tZXRyaWNzLXByb21vLW5vdGljZS1jb21wb25lbnQ+JyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIE1odHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5pc0J1dHRlckJhckVuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KGFFKS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KFpUKSksSXQoKChbdCxlXSk9PnQmJmUpKSl9fU1odC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TWh0KShTbShJdykpfSxNaHQuybVjbXA9dG8oe3R5cGU6TWh0LHNlbGVjdG9yczpbWyJtZXRyaWNzLWRhc2hib2FyZCJdXSxkZWNsczo1LHZhcnM6Myxjb25zdHM6W1siY2xhc3MiLCJub3RpY2UiLDQsIm5nSWYiXSxbInNpZGViYXIiLCIiXSxbIm1haW4iLCIiXSxbMSwibm90aWNlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihRcCgwLENodCwxLDAsIm1ldHJpY3MtcHJvbW8tbm90aWNlIiwwKSxBaCgxLCJhc3luYyIpLFJtKDIsInRiLWRhc2hib2FyZC1sYXlvdXQiKSxUbSgzLCJydW5zLXNlbGVjdG9yIiwxKSxUbSg0LCJtZXRyaWNzLW1haW4tdmlldyIsMiksQW0oKSksMiZlJiZEbSgibmdJZiIsVGgoMSwxLG4uaXNCdXR0ZXJCYXJFbmFibGVkJCkpfSxkaXJlY3RpdmVzOltkTSxNUSxjMixmaHQsX2h0XSxwaXBlczpbd01dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDtvdmVyZmxvdzpoaWRkZW59Lm5vdGljZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNDUsMTU3LC44NSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ZmZWIzYjtjb2xvcjojMjEyMTIxO2Rpc3BsYXk6YmxvY2s7ZmxleDowIDB9dGItZGFzaGJvYXJkLWxheW91dFtfbmdjb250ZW50LSVDT01QJV17ZmxleDoxIDE7b3ZlcmZsb3c6aGlkZGVufW5hdltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yaWdodDoxcHggc29saWQgI2ViZWJlYjtmbGV4Om5vbmU7d2lkdGg6MzQwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgbmF2W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbmF2W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzA7Ym9yZGVyLXJpZ2h0LWNvbG9yOiM1NTV9bWV0cmljcy1tYWluLXZpZXdbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChNaHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1kYXNoYm9hcmQiLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy1wcm9tby1ub3RpY2VcbiAgICAgICpuZ0lmPSJpc0J1dHRlckJhckVuYWJsZWQkIHwgYXN5bmMiXG4gICAgICBjbGFzcz0ibm90aWNlIlxuICAgID48L21ldHJpY3MtcHJvbW8tbm90aWNlPlxuICAgIDx0Yi1kYXNoYm9hcmQtbGF5b3V0PlxuICAgICAgPHJ1bnMtc2VsZWN0b3Igc2lkZWJhcj48L3J1bnMtc2VsZWN0b3I+XG4gICAgICA8bWV0cmljcy1tYWluLXZpZXcgbWFpbj48L21ldHJpY3MtbWFpbi12aWV3PlxuICAgIDwvdGItZGFzaGJvYXJkLWxheW91dD5cbiAgJyxzdHlsZVVybHM6WyJtZXRyaWNzX2NvbnRhaW5lci5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIHZodHt9dmh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx2aHQpfSx2aHQuybVtb2Q9YW8oe3R5cGU6dmh0fSksdmh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sRVcsSkhdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodmh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltNUV0sZXhwb3J0czpbTVFdLGltcG9ydHM6W1dNLEVXLEpIXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHZodCx7ZGVjbGFyYXRpb25zOltNUV0saW1wb3J0czpbV00sRVcsSkhdLGV4cG9ydHM6W01RXX0pO2NsYXNzIHhodHt9eGh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4aHQpfSx4aHQuybVtb2Q9YW8oe3R5cGU6eGh0fSkseGh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeGh0LFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV01dLGRlY2xhcmF0aW9uczpbYmh0XSxleHBvcnRzOltiaHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oeGh0LHtkZWNsYXJhdGlvbnM6W2JodF0saW1wb3J0czpbV01dLGV4cG9ydHM6W2JodF19KTtjbGFzcyBPaHR7fU9odC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8T2h0KX0sT2h0Lsm1bW9kPWFvKHt0eXBlOk9odH0pLE9odC7JtWluaj12bih7aW1wb3J0czpbW1dNLFkwLEVXXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE9odCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbcTBdLGV4cG9ydHM6W3EwXSxpbXBvcnRzOltXTSxZMCxFV119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhPaHQse2RlY2xhcmF0aW9uczpbcTBdLGltcG9ydHM6W1dNLFkwLEVXXSxleHBvcnRzOltxMF19KTtjbGFzcyBQaHR7fVBodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UGh0KX0sUGh0Lsm1bW9kPWFvKHt0eXBlOlBodH0pLFBodC7JtWluaj12bih7aW1wb3J0czpbW1dNXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFBodCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1dNXSxleHBvcnRzOltEMV0sZGVjbGFyYXRpb25zOltEMV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhQaHQse2RlY2xhcmF0aW9uczpbRDFdLGltcG9ydHM6W1dNXSxleHBvcnRzOltEMV19KTtjbGFzcyB3aHR7fXdodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8d2h0KX0sd2h0Lsm1bW9kPWFvKHt0eXBlOndodH0pLHdodC7JtWluaj12bih7aW1wb3J0czpbW3kzLFdNLE9odCxUVixKSCxTWSxkVyxCWSxFVyxvWSxlJCxpMSx1JCx3MCxQaHQsSkxdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgod2h0LFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbeTMsV00sT2h0LFRWLEpILFNZLGRXLEJZLEVXLG9ZLGUkLGkxLHUkLHcwLFBodCxKTF0sZXhwb3J0czpbczJdLGVudHJ5Q29tcG9uZW50czpbaDFdLGRlY2xhcmF0aW9uczpbZzEsaDEsUDEsdzEsbzIsczJdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8od2h0LHtkZWNsYXJhdGlvbnM6W2cxLGgxLFAxLHcxLG8yLHMyXSxpbXBvcnRzOlt5MyxXTSxPaHQsVFYsSkgsU1ksZFcsQlksRVcsb1ksZSQsaTEsdSQsdzAsUGh0LEpMXSxleHBvcnRzOltzMl19KTtjbGFzcyBraHR7fWtodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8a2h0KX0sa2h0Lsm1bW9kPWFvKHt0eXBlOmtodH0pLGtodC7JtWluaj12bih7aW1wb3J0czpbW1dNLHdodF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChraHQsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltXTSx3aHRdLGV4cG9ydHM6W2MyXSxkZWNsYXJhdGlvbnM6W2wyLGMyXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKGtodCx7ZGVjbGFyYXRpb25zOltsMixjMl0saW1wb3J0czpbV00sd2h0XSxleHBvcnRzOltjMl19KTtjbGFzcyBTaHR7fVNodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U2h0KX0sU2h0Lsm1bW9kPWFvKHt0eXBlOlNodH0pLFNodC7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChTaHQsW3t0eXBlOkF5LGFyZ3M6W3tleHBvcnRzOltOZnRdLGRlY2xhcmF0aW9uczpbTmZ0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFNodCx7ZGVjbGFyYXRpb25zOltOZnRdLGV4cG9ydHM6W05mdF19KTtjbGFzcyBEaHR7fURodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RGh0KX0sRGh0Lsm1bW9kPWFvKHt0eXBlOkRodH0pLERodC7JtWluaj12bih7aW1wb3J0czpbW1dNXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKERodCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbaGZ0XSxleHBvcnRzOltoZnRdLGltcG9ydHM6W1dNXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKERodCx7ZGVjbGFyYXRpb25zOltoZnRdLGltcG9ydHM6W1dNXSxleHBvcnRzOltoZnRdfSk7Y2xhc3MgRWh0e31FaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEVodCl9LEVodC7JtW1vZD1hbyh7dHlwZTpFaHR9KSxFaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxWSixTaHQsRGh0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEVodCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbdGd0XSxleHBvcnRzOlt0Z3RdLGltcG9ydHM6W1dNLFZKLFNodCxEaHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oRWh0LHtkZWNsYXJhdGlvbnM6W3RndF0saW1wb3J0czpbV00sVkosU2h0LERodF0sZXhwb3J0czpbdGd0XX0pO2NsYXNzIFJodHt9Umh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxSaHQpfSxSaHQuybVtb2Q9YW8oe3R5cGU6Umh0fSksUmh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUmh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOlt6Ml0sZXhwb3J0czpbejJdLGltcG9ydHM6W1dNXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFJodCx7ZGVjbGFyYXRpb25zOlt6Ml0saW1wb3J0czpbV01dLGV4cG9ydHM6W3oyXX0pO2NsYXNzIEFodHt9QWh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBaHQpfSxBaHQuybVtb2Q9YW8oe3R5cGU6QWh0fSksQWh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQWh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltMMixGMl0sZXhwb3J0czpbTDJdLGltcG9ydHM6W1dNXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEFodCx7ZGVjbGFyYXRpb25zOltMMixGMl0saW1wb3J0czpbV01dLGV4cG9ydHM6W0wyXX0pO2NsYXNzIFRodHt9VGh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUaHQpfSxUaHQuybVtb2Q9YW8oe3R5cGU6VGh0fSksVGh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sRVddXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVGh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltnZnRdLGV4cG9ydHM6W2dmdF0saW1wb3J0czpbV00sRVddfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVGh0LHtkZWNsYXJhdGlvbnM6W2dmdF0saW1wb3J0czpbV00sRVddLGV4cG9ydHM6W2dmdF19KTtjbGFzcyBOaHR7fU5odC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Tmh0KX0sTmh0Lsm1bW9kPWFvKHt0eXBlOk5odH0pLE5odC7JtWluaj12bih7aW1wb3J0czpbW1dNLEVodCxKSCxFVyxpMSxBaHQsUmh0LFRodF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W21ndCxwZ3RdLGV4cG9ydHM6W21ndF0saW1wb3J0czpbV00sRWh0LEpILEVXLGkxLEFodCxSaHQsVGh0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKE5odCx7ZGVjbGFyYXRpb25zOlttZ3QscGd0XSxpbXBvcnRzOltXTSxFaHQsSkgsRVcsaTEsQWh0LFJodCxUaHRdLGV4cG9ydHM6W21ndF19KTtjbGFzcyB6aHR7fXpodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8emh0KX0semh0Lsm1bW9kPWFvKHt0eXBlOnpodH0pLHpodC7JtWluaj12bih7aW1wb3J0czpbW1dNLEpILEVXLGkxLHpYLEFodCxSaHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoemh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltYMixaMl0sZXhwb3J0czpbWDJdLGltcG9ydHM6W1dNLEpILEVXLGkxLHpYLEFodCxSaHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oemh0LHtkZWNsYXJhdGlvbnM6W1gyLFoyXSxpbXBvcnRzOltXTSxKSCxFVyxpMSx6WCxBaHQsUmh0XSxleHBvcnRzOltYMl19KTtjbGFzcyBJaHR7fUlodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SWh0KX0sSWh0Lsm1bW9kPWFvKHt0eXBlOklodH0pLElodC7JtWluaj12bih7aW1wb3J0czpbW1dNLHlMLEpILEVXLEJZLG9ZXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElodCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbWHV0LFV1dCxFdXRdLGV4cG9ydHM6W1h1dCxVdXQsRXV0XSxpbXBvcnRzOltXTSx5TCxKSCxFVyxCWSxvWV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhJaHQse2RlY2xhcmF0aW9uczpbWHV0LFV1dCxFdXRdLGltcG9ydHM6W1dNLHlMLEpILEVXLEJZLG9ZXSxleHBvcnRzOltYdXQsVXV0LEV1dF19KTtjbGFzcyBIaHR7fUhodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SGh0KX0sSGh0Lsm1bW9kPWFvKHt0eXBlOkhodH0pLEhodC7JtWluaj12bih7aW1wb3J0czpbW1dNLHlMLElodCxWSl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChIaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2ZmdF0sZXhwb3J0czpbZmZ0XSxpbXBvcnRzOltXTSx5TCxJaHQsVkpdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oSGh0LHtkZWNsYXJhdGlvbnM6W2ZmdF0saW1wb3J0czpbV00seUwsSWh0LFZKXSxleHBvcnRzOltmZnRdfSk7Y2xhc3MgRmh0e31GaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEZodCl9LEZodC7JtW1vZD1hbyh7dHlwZTpGaHR9KSxGaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjRyxKSCxkVyxCWSxURyxlVF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChGaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2w1LHM1XSxleHBvcnRzOltsNV0saW1wb3J0czpbV00sY0csSkgsZFcsQlksVEcsZVRdLGVudHJ5Q29tcG9uZW50czpbbDVdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oRmh0LHtkZWNsYXJhdGlvbnM6W2w1LHM1XSxpbXBvcnRzOltXTSxjRyxKSCxkVyxCWSxURyxlVF0sZXhwb3J0czpbbDVdfSk7Y2xhc3MgTGh0e31MaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExodCl9LExodC7JtW1vZD1hbyh7dHlwZTpMaHR9KSxMaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxGaHQsU2h0LEhodCxEaHQsSkgsRVcsb1ksaTEsVkosUmh0LFRodF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0lmdCxUZnRdLGV4cG9ydHM6W0lmdF0saW1wb3J0czpbV00sRmh0LFNodCxIaHQsRGh0LEpILEVXLG9ZLGkxLFZKLFJodCxUaHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oTGh0LHtkZWNsYXJhdGlvbnM6W0lmdCxUZnRdLGltcG9ydHM6W1dNLEZodCxTaHQsSGh0LERodCxKSCxFVyxvWSxpMSxWSixSaHQsVGh0XSxleHBvcnRzOltJZnRdfSk7Y2xhc3MgQmh0e31CaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJodCl9LEJodC7JtW1vZD1hbyh7dHlwZTpCaHR9KSxCaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSx6aHQsTGh0LE5odCxTaHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQmh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOlttMix5Z3QsX2d0XSxleHBvcnRzOlttMixfZ3RdLGltcG9ydHM6W1dNLHpodCxMaHQsTmh0LFNodF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhCaHQse2RlY2xhcmF0aW9uczpbbTIseWd0LF9ndF0saW1wb3J0czpbV00semh0LExodCxOaHQsU2h0XSxleHBvcnRzOlttMixfZ3RdfSk7Y2xhc3MgVmh0e31WaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZodCl9LFZodC7JtW1vZD1hbyh7dHlwZTpWaHR9KSxWaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxUR11dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2VodF0sZXhwb3J0czpbZWh0XSxpbXBvcnRzOltXTSxUR119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhWaHQse2RlY2xhcmF0aW9uczpbZWh0XSxpbXBvcnRzOltXTSxUR10sZXhwb3J0czpbZWh0XX0pO2NsYXNzIGpodHt9amh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxqaHQpfSxqaHQuybVtb2Q9YW8oe3R5cGU6amh0fSksamh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sVmh0LEpILFQyLFNZLEVXLFRHLHpYLHRULFBodF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChqaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2xodCxyaHQsc2h0XSxleHBvcnRzOltsaHRdLGltcG9ydHM6W1dNLFZodCxKSCxUMixTWSxFVyxURyx6WCx0VCxQaHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oamh0LHtkZWNsYXJhdGlvbnM6W2xodCxyaHQsc2h0XSxpbXBvcnRzOltXTSxWaHQsSkgsVDIsU1ksRVcsVEcselgsdFQsUGh0XSxleHBvcnRzOltsaHRdfSk7Y2xhc3MgVWh0e31VaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVodCl9LFVodC7JtW1vZD1hbyh7dHlwZTpVaHR9KSxVaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tCaHQsV00sT2h0LFkwLEpILFQyLEVXLEJZLGkxLGpodCxfRl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1RndCxOZ3QsV2d0LFlndCxaZ3QsWGd0LFFndCwkZ3QsdWh0LGZodCx2Mix4MixMZ3QsQmd0XSxleHBvcnRzOltmaHRdLGltcG9ydHM6W0JodCxXTSxPaHQsWTAsSkgsVDIsRVcsQlksaTEsamh0LF9GXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFVodCx7ZGVjbGFyYXRpb25zOltUZ3QsTmd0LFdndCxZZ3QsWmd0LFhndCxRZ3QsJGd0LHVodCxmaHQsdjIseDIsTGd0LEJndF0saW1wb3J0czpbQmh0LFdNLE9odCxZMCxKSCxUMixFVyxCWSxpMSxqaHQsX0ZdLGV4cG9ydHM6W2ZodF19KTtjbGFzcyBHaHR7fWZ1bmN0aW9uIFdodCgpe3JldHVyblt7YWN0aW9uQ3JlYXRvcjpvUixhbGVydEZyb21BY3Rpb246dD0+e2NvbnN0e3dhc1Bpbm5lZDplLGNhbkNyZWF0ZU5ld1BpbnM6bn09dDtyZXR1cm4gZXx8bj9udWxsOntsb2NhbGl6ZWRNZXNzYWdlOiJNYXggcGluIGxpbWl0IGV4Y2VlZGVkLiBSZW1vdmUgZXhpc3RpbmcgcGlucyBiZWZvcmUgYWRkaW5nIG1vcmUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9pc3N1ZXMvNDI0MiJ9fX1dfWZ1bmN0aW9uIFlodCgpe3JldHVybiBadyh6VCwodD0+KHtzY2FsYXJTbW9vdGhpbmc6dH0pKSl9ZnVuY3Rpb24gcWh0KCl7cmV0dXJuIFp3KEFULCh0PT4oe2lnbm9yZU91dGxpZXJzOnR9KSkpfWZ1bmN0aW9uIFpodCgpe3JldHVybiBadyhSVCwodD0+KHt0b29sdGlwU29ydFN0cmluZzpTdHJpbmcodCl9KSkpfWZ1bmN0aW9uIFhodCgpe3JldHVybiBadyhaVCwodD0+KHt0aW1lU2VyaWVzUHJvbW90aW9uRGlzbWlzc2VkOiF0fSkpKX1mdW5jdGlvbiBLaHQoKXtyZXR1cm4gWncoWFQsKHQ9Pih7dGltZVNlcmllc1NldHRpbmdzUGFuZU9wZW5lZDp0fSkpKX1HaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEdodCl9LEdodC7JtW1vZD1hbyh7dHlwZTpHaHR9KSxHaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSx4aHQsdmh0LFVodCxFVyxqaHQsa2h0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEdodCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbTWh0LHlodCxfaHRdLGV4cG9ydHM6W01odF0saW1wb3J0czpbV00seGh0LHZodCxVaHQsRVcsamh0LGtodF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhHaHQse2RlY2xhcmF0aW9uczpbTWh0LHlodCxfaHRdLGltcG9ydHM6W1dNLHhodCx2aHQsVWh0LEVXLGpodCxraHRdLGV4cG9ydHM6W01odF19KTtjbGFzcyBKaHR7fUpodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Smh0KX0sSmh0Lsm1bW9kPWFvKHt0eXBlOkpodH0pLEpodC7JtWluaj12bih7cHJvdmlkZXJzOlt7cHJvdmlkZTptUSx1c2VGYWN0b3J5OmZRLGRlcHM6W3VRXX0se3Byb3ZpZGU6dVEsdXNlVmFsdWU6cFR9XSxpbXBvcnRzOltbV00sQlMsRVIsd3EuZm9yUGx1Z2luKF9BLE1odCksZVQsR2h0LGRrLmZvckZlYXR1cmUoZFQsclEsbVEpLFdrLmZvckZlYXR1cmUoW3BRXSksQVIucmVnaXN0ZXJBbGVydEFjdGlvbnMoV2h0KSxxUy5kZWZpbmVHbG9iYWxTZXR0aW5nKFlodCkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhxaHQpLHFTLmRlZmluZUdsb2JhbFNldHRpbmcoWmh0KSxxUy5kZWZpbmVHbG9iYWxTZXR0aW5nKFhodCkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhLaHQpXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEpodCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1dNLEJTLEVSLHdxLmZvclBsdWdpbihfQSxNaHQpLGVULEdodCxkay5mb3JGZWF0dXJlKGRULHJRLG1RKSxXay5mb3JGZWF0dXJlKFtwUV0pLEFSLnJlZ2lzdGVyQWxlcnRBY3Rpb25zKFdodCkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhZaHQpLHFTLmRlZmluZUdsb2JhbFNldHRpbmcocWh0KSxxUy5kZWZpbmVHbG9iYWxTZXR0aW5nKFpodCkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhYaHQpLHFTLmRlZmluZUdsb2JhbFNldHRpbmcoS2h0KV0scHJvdmlkZXJzOlt7cHJvdmlkZTptUSx1c2VGYWN0b3J5OmZRLGRlcHM6W3VRXX0se3Byb3ZpZGU6dVEsdXNlVmFsdWU6cFR9XSxlbnRyeUNvbXBvbmVudHM6W01odF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhKaHQse2ltcG9ydHM6W1dNLEJTLEVSLHdxLGVULEdodCxjayxHayxBUixxUyxxUyxxUyxxUyxxU119KTtjb25zdCBRaHQ9Im5wbWkiO3ZhciAkaHQsdGJ0LGVidCxuYnQ7IShmdW5jdGlvbih0KXt0W3QuQU5EPTBdPSJBTkQifSkoJGh0fHwoJGh0PXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5NRVRSSUM9MF09Ik1FVFJJQyIsdFt0Lk9QRVJBVE9SPTFdPSJPUEVSQVRPUiJ9KSh0YnR8fCh0YnQ9e30pKSwoZnVuY3Rpb24odCl7dFt0LkRFRkFVTFQ9MF09IkRFRkFVTFQiLHRbdC5FTUJFRERJTkdTPTFdPSJFTUJFRERJTkdTIn0pKGVidHx8KGVidD17fSkpLChmdW5jdGlvbih0KXt0W3QuREVTQ0VORElORz0wXT0iREVTQ0VORElORyIsdFt0LkFTQ0VORE5HPTFdPSJBU0NFTkRORyIsdFt0LlNJTUlMQVI9Ml09IlNJTUlMQVIiLHRbdC5ESVNTSU1JTEFSPTNdPSJESVNTSU1JTEFSIn0pKG5idHx8KG5idD17fSkpO2NsYXNzIG9idHt9b2J0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxvYnQpfSxvYnQuybVjbXA9dG8oe3R5cGU6b2J0LHNlbGVjdG9yczpbWyJucG1pLWluYWN0aXZlLXZpZXciXV0sZGVjbHM6Nix2YXJzOjAsY29uc3RzOltbMSwiY29udGFpbmVyIl0sWzEsInRpdGxlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiKSxSbSgxLCJkaXYiLDApLFJtKDIsImRpdiIsMSksa3UoMywiblBNSSBpcyBpbmFjdGl2ZSBiZWNhdXNlIG5vIGRhdGEgaXMgYXZhaWxhYmxlLiIpLEFtKCksUm0oNCwiZGl2Iiksa3UoNSwiIFRvIHVzZSB0aGUgblBNSSwgY2FsY3VsYXRlIG5QTUkgdmFsdWVzLCBhbmQgbG9nIHRoZW0gdXNpbmcgdGhlIHN1bW1hcnkgd3JpdGVyLiAiKSxBbSgpLEFtKCksQW0oKSl9LHN0eWxlczpbIi5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LWZhbWlseTogUm9ib3RvO1xuICBmb250LXNpemU6IDE1cHg7XG4gIHBhZGRpbmc6IDUwcHg7XG59XG5cbi50aXRsZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXNpemU6IDEzNSU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xufSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvYnQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1pbmFjdGl2ZS12aWV3Iix0ZW1wbGF0ZVVybDoiLi9pbmFjdGl2ZV9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9pbmFjdGl2ZV9jb21wb25lbnQuY3NzIl19XX1dLG51bGwsbnVsbCk7Y29uc3QgaWJ0PUt3KFFodCksYWJ0PVp3KGlidCwodD0+dC5wbHVnaW5EYXRhTG9hZGVkLnN0YXRlKSkscmJ0PVp3KGlidCwodD0+dC5hbm5vdGF0aW9uRGF0YSkpLHNidD1adyhpYnQsKHQ9PnQucnVuVG9NZXRyaWNzKSksbGJ0PVp3KGlidCwodD0+dC5lbWJlZGRpbmdEYXRhU2V0KSksY2J0PVp3KGlidCwodD0+dC5zZWxlY3RlZEFubm90YXRpb25zKSksZGJ0PVp3KGlidCwodD0+dC5mbGFnZ2VkQW5ub3RhdGlvbnMpKSxwYnQ9WncoaWJ0LCh0PT50LmhpZGRlbkFubm90YXRpb25zKSksbWJ0PVp3KGlidCwodD0+dC5hbm5vdGF0aW9uc1JlZ2V4KSksdWJ0PVp3KGlidCwodD0+dC5tZXRyaWNzUmVnZXgpKSxmYnQ9WncoaWJ0LCh0PT50Lm1ldHJpY0FyaXRobWV0aWMpKSxnYnQ9WncoaWJ0LCh0PT50Lm1ldHJpY0ZpbHRlcnMpKSxoYnQ9WncoaWJ0LCh0PT50LnNvcnQpKSxiYnQ9WncoaWJ0LCh0PT50LnBjRXhwYW5kZWQpKSx5YnQ9WncoaWJ0LCh0PT50LmFubm90YXRpb25zRXhwYW5kZWQpKSxfYnQ9WncoaWJ0LCh0PT50LnNpZGViYXJFeHBhbmRlZCkpLENidD1adyhpYnQsKHQ9PnQuc2hvd0NvdW50cykpLE1idD1adyhpYnQsKHQ9PnQuc2hvd0hpZGRlbkFubm90YXRpb25zKSksdmJ0PVp3KGlidCwodD0+dC52aWV3QWN0aXZlKSkseGJ0PVp3KGlidCwodD0+dC5zaWRlYmFyV2lkdGgpKSxPYnQ9WncoaWJ0LCh0PT50LmVtYmVkZGluZ3NNZXRyaWMpKSxQYnQ9WncoaWJ0LCh0PT50LmVtYmVkZGluZ3NTaWRlYmFyV2lkdGgpKSx3YnQ9WncoaWJ0LCh0PT50LmVtYmVkZGluZ3NTaWRlYmFyRXhwYW5kZWQpKSxrYnQ9SlAoIltOUE1JXSBuUE1JIExvYWRlZCIpLFNidD1KUCgiW05QTUldIG5QTUkgUGx1Z2luIERhdGEgUmVxdWVzdGVkIiksRGJ0PUpQKCJbTlBNSV0gblBNSSBQbHVnaW4gRGF0YSBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxFYnQ9SlAoIltOUE1JXSBuUE1JIFBsdWdpbiBEYXRhIFJlcXVlc3QgRmFpbGVkIiksUmJ0PUpQKCJbTlBNSV0gQWRkaW5nL1JlbW92aW5nIEFubm90YXRpb25zIHRvL2Zyb20gU2VsZWN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxBYnQ9SlAoIltOUE1JXSBBbm5vdGF0aW9ucyBTZXQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxUYnQ9SlAoIltOUE1JXSBDbGVhcmluZyB0aGUgQW5ub3RhdGlvbiBTZWxlY3Rpb24iKSxOYnQ9SlAoIltOUE1JXSBBZGRpbmcvUmVtb3ZpbmcgQW5ub3RhdGlvbnMgdG8vZnJvbSBGbGFnZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksemJ0PUpQKCJbTlBNSV0gQWRkaW5nL1JlbW92aW5nIEFubm90YXRpb25zIHRvL2Zyb20gSGlkZGVuIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksSWJ0PUpQKCJbTlBNSV0gQW5ub3RhdGlvbnMgUmVnZXggQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEhidD1KUCgiW05QTUldIE1ldHJpY3MgUmVnZXggQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEZidD1KUCgiW05QTUldIE1ldHJpYyBGaWx0ZXIgQWRkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxMYnQ9SlAoIltOUE1JXSBNZXRyaWMgRmlsdGVyIFJlbW92ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxCYnQ9SlAoIltOUE1JXSBNZXRyaWMgRmlsdGVyIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxWYnQ9SlAoIltOUE1JXSBBbm5vdGF0aW9uIFNvcnQgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGpidD1KUCgiW05QTUldIFNpbWlsYXJpdHkgU29ydCBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksVWJ0PUpQKCJbTlBNSV0gVG9nZ2xlIFBDIEV4cGFuZGVkIiksR2J0PUpQKCJbTlBNSV0gVG9nZ2xlIEFubm90YXRpb25zIEV4cGFuZGVkIiksV2J0PUpQKCJbTlBNSV0gVG9nZ2xlIFNpZGViYXIgRXhwYW5kZWQiKSxZYnQ9SlAoIltOUE1JXSBTaG93IENvdW50cyBUb2dnbGVkIikscWJ0PUpQKCJbTlBNSV0gU2hvdyBIaWRkZW4gQW5ub3RhdGlvbnMgVG9nZ2xlZCIpLFpidD1KUCgiW05QTUldIEVtYmVkZGluZ3MgVmlldyBUb2dnbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksWGJ0PUpQKCJbTlBNSV0gU2lkZWJhciBXaWR0aCBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksS2J0PUpQKCJbTlBNSV0gRW1iZWRkaW5ncyBTaWRlYmFyIFdpZHRoIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxKYnQ9SlAoIltOUE1JXSBUb2dnbGUgRW1iZWRkaW5ncyBTaWRlYmFyIEV4cGFuZGVkIiksUWJ0PUpQKCJbTlBNSV0gQ2hhbmdlIEVtYmVkZGluZyBEYXRhU2V0Iix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSk7ZnVuY3Rpb24gJGJ0KHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoImNvdW50QCIpfWZ1bmN0aW9uIHR5dCh0KXtyZXR1cm4gdC5zdGFydHNXaXRoKCJuUE1JQCIpfHx0LnN0YXJ0c1dpdGgoIm5QTUlfZGlmZkAiKX1mdW5jdGlvbiBleXQodCl7cmV0dXJuIHQuc3RhcnRzV2l0aCgiblBNSUAiKX1mdW5jdGlvbiBueXQodCl7cmV0dXJuIHQuc3BsaXQoIkAiLDIpWzFdfWNvbnN0IG95dD15ayh7cGx1Z2luRGF0YUxvYWRlZDp7c3RhdGU6eUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0sYW5ub3RhdGlvbkRhdGE6e30scnVuVG9NZXRyaWNzOnt9LHNlbGVjdGVkQW5ub3RhdGlvbnM6W10sZmxhZ2dlZEFubm90YXRpb25zOltdLGhpZGRlbkFubm90YXRpb25zOltdLGFubm90YXRpb25zUmVnZXg6IiIsbWV0cmljc1JlZ2V4OiIiLG1ldHJpY0FyaXRobWV0aWM6W10sbWV0cmljRmlsdGVyczp7fSxzb3J0OnttZXRyaWM6IiIsb3JkZXI6bmJ0LkRFU0NFTkRJTkd9LHBjRXhwYW5kZWQ6ITAsYW5ub3RhdGlvbnNFeHBhbmRlZDohMCxzaWRlYmFyRXhwYW5kZWQ6ITAsc2hvd0NvdW50czohMCxzaG93SGlkZGVuQW5ub3RhdGlvbnM6ITEsc2lkZWJhcldpZHRoOjMwMCx2aWV3QWN0aXZlOmVidC5ERUZBVUxULGVtYmVkZGluZ3NNZXRyaWM6IiIsZW1iZWRkaW5nc1NpZGViYXJXaWR0aDo1MDAsZW1iZWRkaW5nc1NpZGViYXJFeHBhbmRlZDohMH0sYmsoU2J0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BsdWdpbkRhdGFMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucGx1Z2luRGF0YUxvYWRlZCkse3N0YXRlOnlFLkxPQURJTkd9KX0pKSksYmsoRWJ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BsdWdpbkRhdGFMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucGx1Z2luRGF0YUxvYWRlZCkse3N0YXRlOnlFLkZBSUxFRH0pfSkpKSxiayhEYnQsKCh0LHthbm5vdGF0aW9uRGF0YTplLG1ldHJpY3M6bixlbWJlZGRpbmdEYXRhU2V0Om99KT0+e2NvbnN0IGk9e307Zm9yKGNvbnN0IHQgaW4gbil7aVt0XT1bXTtmb3IoY29uc3QgZSBvZiBuW3RdKXR5dChlKSYmaVt0XS5wdXNoKGUpfXJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3J1blRvTWV0cmljczppLGFubm90YXRpb25EYXRhOmUsZW1iZWRkaW5nRGF0YVNldDpvLHBsdWdpbkRhdGFMb2FkZWQ6e3N0YXRlOnlFLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6RGF0ZS5ub3coKX19KX0pKSxiayhSYnQsKCh0LHthbm5vdGF0aW9uczplfSk9Pntjb25zdCBuPW5ldyBTZXQoWy4uLnQuc2VsZWN0ZWRBbm5vdGF0aW9ucywuLi5lXSk7aWYobi5zaXplPT09dC5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aClmb3IoY29uc3QgdCBvZiBlKW4uZGVsZXRlKHQpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NlbGVjdGVkQW5ub3RhdGlvbnM6Wy4uLm5dfSl9KSksYmsoQWJ0LCgodCx7YW5ub3RhdGlvbnM6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NlbGVjdGVkQW5ub3RhdGlvbnM6ZX0pKSksYmsoVGJ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NlbGVjdGVkQW5ub3RhdGlvbnM6W119KSkpLGJrKE5idCwoKHQse2Fubm90YXRpb25zOmV9KT0+e2NvbnN0IG49bmV3IFNldChbLi4udC5mbGFnZ2VkQW5ub3RhdGlvbnMsLi4uZV0pO2lmKG4uc2l6ZT09PXQuZmxhZ2dlZEFubm90YXRpb25zLmxlbmd0aClmb3IoY29uc3QgdCBvZiBlKW4uZGVsZXRlKHQpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2ZsYWdnZWRBbm5vdGF0aW9uczpbLi4ubl0sc2VsZWN0ZWRBbm5vdGF0aW9uczpbXX0pfSkpLGJrKHpidCwoKHQse2Fubm90YXRpb25zOmV9KT0+e2NvbnN0IG49bmV3IFNldChbLi4udC5oaWRkZW5Bbm5vdGF0aW9ucywuLi5lXSk7aWYobi5zaXplPT09dC5oaWRkZW5Bbm5vdGF0aW9ucy5sZW5ndGgpZm9yKGNvbnN0IHQgb2YgZSluLmRlbGV0ZSh0KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtoaWRkZW5Bbm5vdGF0aW9uczpbLi4ubl0sc2VsZWN0ZWRBbm5vdGF0aW9uczpbXX0pfSkpLGJrKElidCwoKHQse3JlZ2V4OmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHthbm5vdGF0aW9uc1JlZ2V4OmV9KSkpLGJrKEhidCwoKHQse3JlZ2V4OmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHttZXRyaWNzUmVnZXg6ZX0pKSksYmsoRmJ0LCgodCx7bWV0cmljOmV9KT0+e2lmKHQubWV0cmljRmlsdGVyc1tlXSlyZXR1cm4gdDtjb25zdCBuPVtdO3JldHVybiAwIT09dC5tZXRyaWNBcml0aG1ldGljLmxlbmd0aCYmbi5wdXNoKHtraW5kOnRidC5PUEVSQVRPUixvcGVyYXRvcjokaHQuQU5EfSksbi5wdXNoKHtraW5kOnRidC5NRVRSSUMsbWV0cmljOmV9KSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse21ldHJpY0FyaXRobWV0aWM6Wy4uLnQubWV0cmljQXJpdGhtZXRpYywuLi5uXSxtZXRyaWNGaWx0ZXJzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0Lm1ldHJpY0ZpbHRlcnMpLHtbZV06e21heDoxLG1pbjotMSxpbmNsdWRlTmFOOiExfX0pLHNvcnQ6e21ldHJpYzplLG9yZGVyOm5idC5ERVNDRU5ESU5HfX0pfSkpLGJrKExidCwoKHQse21ldHJpYzplfSk9PntpZighdC5tZXRyaWNGaWx0ZXJzW2VdKXJldHVybiB0O2xldCBuPTAsbz0wLGk9Mjtjb25zdCBhPWZBKHQubWV0cmljRmlsdGVycyxbInN5bWJvbCI9PXR5cGVvZiBlP2U6ZSsiIl0pO2Zvcihjb25zdCBvIGluIHQubWV0cmljQXJpdGhtZXRpYyl7Y29uc3QgaT10Lm1ldHJpY0FyaXRobWV0aWNbb107aS5raW5kPT09dGJ0Lk1FVFJJQyYmaS5tZXRyaWM9PT1lJiYobj1wYXJzZUludChvKSl9cmV0dXJuIDAhPT1uJiYobz1uLTEsaT1uKzEpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bWV0cmljQXJpdGhtZXRpYzpbLi4udC5tZXRyaWNBcml0aG1ldGljLnNsaWNlKDAsbyksLi4udC5tZXRyaWNBcml0aG1ldGljLnNsaWNlKGkpXSxtZXRyaWNGaWx0ZXJzOmF9KX0pKSxiayhCYnQsKCh0LHttZXRyaWM6ZSxtYXg6bixtaW46byxpbmNsdWRlTmFOOml9KT0+dC5tZXRyaWNGaWx0ZXJzW2VdP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bWV0cmljRmlsdGVyczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5tZXRyaWNGaWx0ZXJzKSx7W2VdOnttYXg6bixtaW46byxpbmNsdWRlTmFOOml9fSl9KTp0KSksYmsoVmJ0LCgodCx7bWV0cmljOmV9KT0+e2NvbnN0IG49e21ldHJpYzplLG9yZGVyOm5idC5ERVNDRU5ESU5HfTtyZXR1cm4gdC5zb3J0Lm1ldHJpYz09PWUmJnQuc29ydC5vcmRlcj09PW5idC5ERVNDRU5ESU5HJiYobi5vcmRlcj1uYnQuQVNDRU5ETkcpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c29ydDpufSl9KSksYmsoamJ0LCgodCx7YW5ub3RhdGlvbjplfSk9Pntjb25zdCBuPXttZXRyaWM6ZSxvcmRlcjpuYnQuU0lNSUxBUn07cmV0dXJuIHQuc29ydC5tZXRyaWM9PT1lJiZ0LnNvcnQub3JkZXI9PT1uYnQuU0lNSUxBUiYmKG4ub3JkZXI9bmJ0LkRJU1NJTUlMQVIpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c29ydDpufSl9KSksYmsoVWJ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BjRXhwYW5kZWQ6IXQucGNFeHBhbmRlZH0pKSksYmsoR2J0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2Fubm90YXRpb25zRXhwYW5kZWQ6IXQuYW5ub3RhdGlvbnNFeHBhbmRlZH0pKSksYmsoV2J0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NpZGViYXJFeHBhbmRlZDohdC5zaWRlYmFyRXhwYW5kZWR9KSkpLGJrKFlidCwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzaG93Q291bnRzOiF0LnNob3dDb3VudHN9KSkpLGJrKHFidCwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzaG93SGlkZGVuQW5ub3RhdGlvbnM6IXQuc2hvd0hpZGRlbkFubm90YXRpb25zfSkpKSxiayhaYnQsKCh0LHttZXRyaWM6ZX0pPT57bGV0IG49ZWJ0LkVNQkVERElOR1Msbz1lO3JldHVybiBlPT09dC5lbWJlZGRpbmdzTWV0cmljJiYobj1lYnQuREVGQVVMVCxvPSIiKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3ZpZXdBY3RpdmU6bixlbWJlZGRpbmdzTWV0cmljOm99KX0pKSxiayhYYnQsKCh0LHtzaWRlYmFyV2lkdGg6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NpZGViYXJXaWR0aDplfSkpKSxiayhLYnQsKCh0LHtzaWRlYmFyV2lkdGg6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2VtYmVkZGluZ3NTaWRlYmFyV2lkdGg6ZX0pKSksYmsoSmJ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2VtYmVkZGluZ3NTaWRlYmFyRXhwYW5kZWQ6IXQuZW1iZWRkaW5nc1NpZGViYXJFeHBhbmRlZH0pKSksYmsoUWJ0LCgodCx7ZGF0YVNldDplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZW1iZWRkaW5nRGF0YVNldDplfSkpKSk7ZnVuY3Rpb24gaXl0KHQsZSl7cmV0dXJuIG95dCh0LGUpfWZ1bmN0aW9uIGF5dCh0LGUpezEmdCYmVG0oMCwibWF0LWljb24iLDcpfWZ1bmN0aW9uIHJ5dCh0LGUpe2lmKDEmdCYmKFJtKDAsIm1hdC1vcHRpb24iLDgpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtEbSgidmFsdWUiLHQpLHJjKDEpLFN1KHQpfX1jbGFzcyBzeXR7Y29uc3RydWN0b3IoKXt0aGlzLm9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZT1uZXcgTGgsdGhpcy5vbkFkZEZpbHRlcj1uZXcgTGh9b25PcHRpb25TZWxlY3RlZCh0LGUpe3RoaXMub25BZGRGaWx0ZXIuZW1pdCh0Lm9wdGlvbi52YWx1ZSksZS52YWx1ZT0iIn19c3l0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxzeXQpfSxzeXQuybVjbXA9dG8oe3R5cGU6c3l0LHNlbGVjdG9yczpbWyJtZXRyaWMtc2VhcmNoLWNvbXBvbmVudCJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgidmFsaWQiLG4uaXNSZWdleEZpbHRlclZhbGlkKX0saW5wdXRzOntjb21wbGV0aW9uczoiY29tcGxldGlvbnMiLHJlZ2V4RmlsdGVyVmFsdWU6InJlZ2V4RmlsdGVyVmFsdWUiLGlzUmVnZXhGaWx0ZXJWYWxpZDoiaXNSZWdleEZpbHRlclZhbGlkIn0sb3V0cHV0czp7b25SZWdleEZpbHRlclZhbHVlQ2hhbmdlOiJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLG9uQWRkRmlsdGVyOiJvbkFkZEZpbHRlciJ9LGRlY2xzOjcsdmFyczo0LGNvbnN0czpbWyJzdmdJY29uIiwic2VhcmNoXzI0cHgiXSxbIm1hdElucHV0IiwiIiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwicGxhY2Vob2xkZXIiLCJBZGQgTWV0cmljIEZpbHRlciIsMywidmFsdWUiLCJtYXRBdXRvY29tcGxldGUiLCJpbnB1dCJdLFsibWF0SW5wdXQiLCIiXSxbInN2Z0ljb24iLCJlcnJvcl8yNHB4IiwiY2xhc3MiLCJlcnJvci1pY29uIiwibWF0VG9vbHRpcCIsIkludmFsaWQgcmVnZXggZmlsdGVyLiBUaGUgcmVzdWx0IG1heSBiZSBzdGFsZS4iLDQsIm5nSWYiXSxbImF1dG9BY3RpdmVGaXJzdE9wdGlvbiIsIiIsMywib3B0aW9uU2VsZWN0ZWQiXSxbImZpbHRlck1hdGNoZXMiLCJtYXRBdXRvY29tcGxldGUiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsic3ZnSWNvbiIsImVycm9yXzI0cHgiLCJtYXRUb29sdGlwIiwiSW52YWxpZCByZWdleCBmaWx0ZXIuIFRoZSByZXN1bHQgbWF5IGJlIHN0YWxlLiIsMSwiZXJyb3ItaWNvbiJdLFszLCJ2YWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlKXtjb25zdCB0PUhtKCk7VG0oMCwibWF0LWljb24iLDApLFJtKDEsImlucHV0IiwxLDIpLFZtKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25SZWdleEZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoZS50YXJnZXQudmFsdWUpfSkpLEFtKCksUXAoMyxheXQsMSwwLCJtYXQtaWNvbiIsMyksUm0oNCwibWF0LWF1dG9jb21wbGV0ZSIsNCw1KSxWbSgib3B0aW9uU2VsZWN0ZWQiLChmdW5jdGlvbiBlKG8pe2hpKHQpO2NvbnN0IGk9JHAoMik7cmV0dXJuIG4ub25PcHRpb25TZWxlY3RlZChvLGkpfSkpLFFwKDYscnl0LDIsMiwibWF0LW9wdGlvbiIsNiksQW0oKX1pZigyJmUpe2NvbnN0IHQ9JHAoNSk7cmMoMSksRG0oInZhbHVlIixuLnJlZ2V4RmlsdGVyVmFsdWUpKCJtYXRBdXRvY29tcGxldGUiLHQpLHJjKDIpLERtKCJuZ0lmIiwhbi5pc1JlZ2V4RmlsdGVyVmFsaWQpLHJjKDMpLERtKCJuZ0Zvck9mIixuLmNvbXBsZXRpb25zKX19LGRpcmVjdGl2ZXM6W0RXLExZLFcwLGRNLEgwLGxNLEJIXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17ZmxleDpub25lO21hcmdpbi1yaWdodDo1cHh9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cGFkZGluZzowIDEwcHg7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOi45ZW19W19uZ2hvc3QtJUNPTVAlXTpub3QoLnZhbGlkKXtjb2xvcjojYzYyODI4fVtfbmdob3N0LSVDT01QJV06bm90KC52YWxpZCkgICBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17Y2FyZXQtY29sb3I6Y3VycmVudENvbG9yfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChzeXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljLXNlYXJjaC1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL21ldHJpY19zZWFyY2hfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vbWV0cmljX3NlYXJjaF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7Y29tcGxldGlvbnM6W3t0eXBlOnh5fV0scmVnZXhGaWx0ZXJWYWx1ZTpbe3R5cGU6eHl9XSxpc1JlZ2V4RmlsdGVyVmFsaWQ6W3t0eXBlOlB5LGFyZ3M6WyJjbGFzcy52YWxpZCJdfSx7dHlwZTp4eX1dLG9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZTpbe3R5cGU6T3l9XSxvbkFkZEZpbHRlcjpbe3R5cGU6T3l9XX0pO2NsYXNzIGx5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5tZXRyaWNzUmVnZXgkPXRoaXMuc3RvcmUuc2VsZWN0KHVidCksdGhpcy5hY3RpdmVSdW5zJD10aGlzLnN0b3JlLnBpcGUoRncoTk4pKS5waXBlKEl0KCh0PT50P0FycmF5LmZyb20odC5lbnRyaWVzKCkpLmZpbHRlcigodD0+dFsxXSkpLm1hcCgodD0+dFswXSkpOltdKSkpLHRoaXMubWV0cmljc0ZvckFjdGl2ZVJ1bnMkPVd0KHRoaXMuYWN0aXZlUnVucyQsdGhpcy5zdG9yZS5zZWxlY3Qoc2J0KSkucGlwZShJdCgoKFt0LGVdKT0+e2NvbnN0IG49bmV3IFNldDtmb3IoY29uc3QgbyBvZiB0KWlmKGVbb10pZm9yKGNvbnN0IHQgb2YgZVtvXSluLmFkZCh0KTtyZXR1cm5bLi4ubl19KSkpLHRoaXMuaXNNZXRyaWNzRmlsdGVyVmFsaWQkPXRoaXMubWV0cmljc1JlZ2V4JC5waXBlKEl0KCh0PT57dHJ5e3JldHVybiBCb29sZWFuKG5ldyBSZWdFeHAodCkpfWNhdGNoKHQpe3JldHVybiExfX0pKSksdGhpcy5tZXRyaWNGaWx0ZXJLZXlzJD10aGlzLnN0b3JlLnBpcGUoRncoZ2J0KSkucGlwZShJdCgodD0+T2JqZWN0LmtleXModCkpKSksdGhpcy5jb21wbGV0aW9ucyQ9V3QodGhpcy5tZXRyaWNzRm9yQWN0aXZlUnVucyQsdGhpcy5tZXRyaWNzUmVnZXgkLHRoaXMubWV0cmljRmlsdGVyS2V5cyQpLnBpcGUoSXQoKChbdCxlLG5dKT0+e2NvbnN0IG89dC5maWx0ZXIoKHQ9PiFuLmluY2x1ZGVzKHQpKSk7dHJ5e2NvbnN0IHQ9bmV3IFJlZ0V4cChlLCJpIik7cmV0dXJuIG8uZmlsdGVyKChlPT50LnRlc3QoZSkpKS5zb3J0KCl9Y2F0Y2godCl7cmV0dXJuW119fSkpKX1vbkZpbHRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKEhidCh7cmVnZXg6dH0pKX1vbkFkZEZpbHRlcih0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKEZidCh7bWV0cmljOnR9KSksdGhpcy5zdG9yZS5kaXNwYXRjaChIYnQoe3JlZ2V4OiIifSkpfX1mdW5jdGlvbiBjeXQodCxlLG4pe2NvbnN0IG89W1tlLC4uLm5dXTtpZighbi5sZW5ndGh8fCF0Lmxlbmd0aClyZXR1cm4iZGF0YTp0ZXh0L2NzdjtjaGFyc2V0PXV0Zi04LCIrby5tYXAoKHQ9PnQuam9pbigiLCIpKSkuam9pbigiXG4iKTtjb25zdCBpPW4ubWFwKCh0PT5ueXQodCkpKTtmb3IoY29uc3RbbixhXW9mIHQpe2NvbnN0IHQ9YS5maWx0ZXIoKHQ9PnQucnVuPT09ZSkpO2lmKHQubGVuZ3RoKXtjb25zdCBlPVtuXTtmb3IoY29uc3QgbiBvZiBpKXtjb25zdCBvPXQuZmluZCgodD0+dC5tZXRyaWM9PT1uKSk7ZS5wdXNoKHZvaWQgMD09PW8/Im51bGwiOmAke28ublBNSVZhbHVlfWApfW8ucHVzaChlKX19cmV0dXJuImRhdGE6dGV4dC9jc3Y7Y2hhcnNldD11dGYtOCwiK28ubWFwKCh0PT50LmpvaW4oIiwiKSkpLmpvaW4oIlxuIil9bHl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxseXQpKFNtKEl3KSl9LGx5dC7JtWNtcD10byh7dHlwZTpseXQsc2VsZWN0b3JzOltbIm5wbWktbWV0cmljLXNlYXJjaCJdXSxkZWNsczo0LHZhcnM6OSxjb25zdHM6W1szLCJyZWdleEZpbHRlclZhbHVlIiwiY29tcGxldGlvbnMiLCJpc1JlZ2V4RmlsdGVyVmFsaWQiLCJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLCJvbkFkZEZpbHRlciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWV0cmljLXNlYXJjaC1jb21wb25lbnQiLDApLFZtKCJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uRmlsdGVyQ2hhbmdlKGUpfSkpKCJvbkFkZEZpbHRlciIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25BZGRGaWx0ZXIoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgicmVnZXhGaWx0ZXJWYWx1ZSIsVGgoMSwzLG4ubWV0cmljc1JlZ2V4JCkpKCJjb21wbGV0aW9ucyIsVGgoMiw1LG4uY29tcGxldGlvbnMkKSkoImlzUmVnZXhGaWx0ZXJWYWxpZCIsVGgoMyw3LG4uaXNNZXRyaWNzRmlsdGVyVmFsaWQkKSl9LGRpcmVjdGl2ZXM6W3N5dF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGx5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLW1ldHJpYy1zZWFyY2giLHRlbXBsYXRlOidcbiAgICA8bWV0cmljLXNlYXJjaC1jb21wb25lbnRcbiAgICAgIFtyZWdleEZpbHRlclZhbHVlXT0ibWV0cmljc1JlZ2V4JCB8IGFzeW5jIlxuICAgICAgW2NvbXBsZXRpb25zXT0iY29tcGxldGlvbnMkIHwgYXN5bmMiXG4gICAgICBbaXNSZWdleEZpbHRlclZhbGlkXT0iaXNNZXRyaWNzRmlsdGVyVmFsaWQkIHwgYXN5bmMiXG4gICAgICAob25SZWdleEZpbHRlclZhbHVlQ2hhbmdlKT0ib25GaWx0ZXJDaGFuZ2UoJGV2ZW50KSJcbiAgICAgIChvbkFkZEZpbHRlcik9Im9uQWRkRmlsdGVyKCRldmVudCkiXG4gICAgPjwvbWV0cmljLXNlYXJjaC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjb25zdCBkeXQ9ZnVuY3Rpb24odCl7cmV0dXJueyJhY3RpdmUtYnV0dG9uIjp0fX07Y2xhc3MgcHl0e2Rvd25sb2FkUmVzdWx0cygpe2Zvcihjb25zdCB0IG9mIHRoaXMucnVucyl7Y29uc3QgZT1jeXQodGhpcy5mbGFnZ2VkRGF0YSx0LHRoaXMubWV0cmljcyksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7bi5zZXRBdHRyaWJ1dGUoImhyZWYiLGUpLG4uc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsYHJlcG9ydF8ke3R9LmNzdmApLG4uY2xpY2soKX19fXB5dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cHl0KX0scHl0Lsm1Y21wPXRvKHt0eXBlOnB5dCxzZWxlY3RvcnM6W1sicmVzdWx0cy1kb3dubG9hZC1jb21wb25lbnQiXV0saW5wdXRzOntudW1GbGFnZ2VkQW5ub3RhdGlvbnM6Im51bUZsYWdnZWRBbm5vdGF0aW9ucyIscnVuczoicnVucyIsZmxhZ2dlZERhdGE6ImZsYWdnZWREYXRhIixtZXRyaWNzOiJtZXRyaWNzIn0sZGVjbHM6NCx2YXJzOjUsY29uc3RzOltbIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiIsInRpdGxlIiwiRXhwb3J0IENTViByZXBvcnRzIG9mIGFsbCBmbGFnZ2VkIGFubm90YXRpb25zLiBXaWxsIGdlbmVyYXRlIG9uZSBDU1YgcGVyIGFjdGl2ZSBydW4uIiwzLCJkaXNhYmxlZCIsIm5nQ2xhc3MiLCJjbGljayJdLFsxLCJidXR0b24tY29udGVudHMiXSxbInN2Z0ljb24iLCJnZXRfYXBwXzI0cHgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImJ1dHRvbiIsMCksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmRvd25sb2FkUmVzdWx0cygpfSkpLFJtKDEsInNwYW4iLDEpLFRtKDIsIm1hdC1pY29uIiwyKSxrdSgzKSxBbSgpLEFtKCkpLDImZSYmKERtKCJkaXNhYmxlZCIsMD09PW4ubnVtRmxhZ2dlZEFubm90YXRpb25zKSgibmdDbGFzcyIsTWgoMyxkeXQsbi5udW1GbGFnZ2VkQW5ub3RhdGlvbnM+MCkpLHJjKDMpLER1KCIgRmxhZ2dlZCBSb3dzICgiLG4ubnVtRmxhZ2dlZEFubm90YXRpb25zLCIpICIpKX0sZGlyZWN0aXZlczpbWEgsYU0sRFddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5hY3RpdmUtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2NvbG9yOiNmZmZ9LmJ1dHRvbi1jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9bWF0LWljb25bX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDo2cHh9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHB5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJyZXN1bHRzLWRvd25sb2FkLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vcmVzdWx0c19kb3dubG9hZF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9yZXN1bHRzX2Rvd25sb2FkX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtudW1GbGFnZ2VkQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0scnVuczpbe3R5cGU6eHl9XSxmbGFnZ2VkRGF0YTpbe3R5cGU6eHl9XSxtZXRyaWNzOlt7dHlwZTp4eX1dfSk7Y2xhc3MgbXl0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmZsYWdnZWRBbm5vdGF0aW9ucyQ9dGhpcy5zdG9yZS5zZWxlY3QoZGJ0KSx0aGlzLm51bUZsYWdnZWRBbm5vdGF0aW9ucyQ9dGhpcy5mbGFnZ2VkQW5ub3RhdGlvbnMkLnBpcGUoSXQoKHQ9PnQubGVuZ3RoKSkpLHRoaXMuYWN0aXZlUnVucyQ9dGhpcy5zdG9yZS5zZWxlY3QoTk4pLnBpcGUoSXQoKHQ9PnQ/QXJyYXkuZnJvbSh0LmVudHJpZXMoKSkuZmlsdGVyKCh0PT50WzFdKSkubWFwKCh0PT50WzBdKSk6W10pKSksdGhpcy5mbGFnZ2VkRGF0YSQ9V3QoW3RoaXMuc3RvcmUuc2VsZWN0KHJidCksdGhpcy5mbGFnZ2VkQW5ub3RhdGlvbnMkXSkucGlwZShJdCgoKFt0LGVdKT0+e2NvbnN0IG49bmV3IFNldChlKTtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkuZmlsdGVyKCh0PT5uLmhhcyh0WzBdKSkpfSkpKSx0aGlzLm1ldHJpY3MkPVd0KFt0aGlzLnN0b3JlLnNlbGVjdChzYnQpLHRoaXMuYWN0aXZlUnVucyQsdGhpcy5zdG9yZS5zZWxlY3QoZ2J0KV0pLnBpcGUoSXQoKChbdCxlLG5dKT0+e2xldCBvPU9iamVjdC5rZXlzKG4pO2Zvcihjb25zdCBuIG9mIGUpdFtuXSYmKG89by5jb25jYXQodFtuXS5maWx0ZXIoKHQ9PmV5dCh0KSkpKSk7cmV0dXJuIG89Wy4uLm5ldyBTZXQobyldLG99KSkpfX1teXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG15dCkoU20oSXcpKX0sbXl0Lsm1Y21wPXRvKHt0eXBlOm15dCxzZWxlY3RvcnM6W1sibnBtaS1yZXN1bHRzLWRvd25sb2FkIl1dLGRlY2xzOjUsdmFyczoxMixjb25zdHM6W1szLCJudW1GbGFnZ2VkQW5ub3RhdGlvbnMiLCJydW5zIiwiZmxhZ2dlZERhdGEiLCJtZXRyaWNzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJyZXN1bHRzLWRvd25sb2FkLWNvbXBvbmVudCIsMCksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSksMiZlJiZEbSgibnVtRmxhZ2dlZEFubm90YXRpb25zIixUaCgxLDQsbi5udW1GbGFnZ2VkQW5ub3RhdGlvbnMkKSkoInJ1bnMiLFRoKDIsNixuLmFjdGl2ZVJ1bnMkKSkoImZsYWdnZWREYXRhIixUaCgzLDgsbi5mbGFnZ2VkRGF0YSQpKSgibWV0cmljcyIsVGgoNCwxMCxuLm1ldHJpY3MkKSl9LGRpcmVjdGl2ZXM6W3B5dF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG15dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLXJlc3VsdHMtZG93bmxvYWQiLHRlbXBsYXRlOidcbiAgICA8cmVzdWx0cy1kb3dubG9hZC1jb21wb25lbnRcbiAgICAgIFtudW1GbGFnZ2VkQW5ub3RhdGlvbnNdPSJudW1GbGFnZ2VkQW5ub3RhdGlvbnMkIHwgYXN5bmMiXG4gICAgICBbcnVuc109ImFjdGl2ZVJ1bnMkIHwgYXN5bmMiXG4gICAgICBbZmxhZ2dlZERhdGFdPSJmbGFnZ2VkRGF0YSQgfCBhc3luYyJcbiAgICAgIFttZXRyaWNzXT0ibWV0cmljcyQgfCBhc3luYyJcbiAgICA+PC9yZXN1bHRzLWRvd25sb2FkLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IHV5dD1uZXcgR2EoIk1hdENoaXBSZW1vdmUiKSxmeXQ9bmV3IEdhKCJNYXRDaGlwQXZhdGFyIiksZ3l0PW5ldyBHYSgiTWF0Q2hpcFRyYWlsaW5nSWNvbiIpLGh5dD0kSShKSShRSShjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSksInByaW1hcnkiKSwtMSk7Y2xhc3MgYnl0e31ieXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGJ5dCl9LGJ5dC7JtWRpcj1sbyh7dHlwZTpieXQsc2VsZWN0b3JzOltbIm1hdC1jaGlwLWF2YXRhciJdLFsiIiwibWF0Q2hpcEF2YXRhciIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1jaGlwLWF2YXRhciJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6Znl0LHVzZUV4aXN0aW5nOmJ5dH1dKV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGJ5dCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJtYXQtY2hpcC1hdmF0YXIsIFttYXRDaGlwQXZhdGFyXSIsaG9zdDp7Y2xhc3M6Im1hdC1jaGlwLWF2YXRhciJ9LHByb3ZpZGVyczpbe3Byb3ZpZGU6Znl0LHVzZUV4aXN0aW5nOmJ5dH1dfV19XSxudWxsLG51bGwpO2NsYXNzIHl5dHt9eXl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5eXQpfSx5eXQuybVkaXI9bG8oe3R5cGU6eXl0LHNlbGVjdG9yczpbWyJtYXQtY2hpcC10cmFpbGluZy1pY29uIl0sWyIiLCJtYXRDaGlwVHJhaWxpbmdJY29uIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LWNoaXAtdHJhaWxpbmctaWNvbiJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6Z3l0LHVzZUV4aXN0aW5nOnl5dH1dKV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHl5dCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJtYXQtY2hpcC10cmFpbGluZy1pY29uLCBbbWF0Q2hpcFRyYWlsaW5nSWNvbl0iLGhvc3Q6e2NsYXNzOiJtYXQtY2hpcC10cmFpbGluZy1pY29uIn0scHJvdmlkZXJzOlt7cHJvdmlkZTpneXQsdXNlRXhpc3Rpbmc6eXl0fV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgX3l0IGV4dGVuZHMgaHl0e2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyl7c3VwZXIodCksdGhpcy5fbmdab25lPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9aSx0aGlzLl9oYXNGb2N1cz0hMSx0aGlzLmNoaXBMaXN0U2VsZWN0YWJsZT0hMCx0aGlzLl9jaGlwTGlzdE11bHRpcGxlPSExLHRoaXMuX2NoaXBMaXN0RGlzYWJsZWQ9ITEsdGhpcy5fc2VsZWN0ZWQ9ITEsdGhpcy5fc2VsZWN0YWJsZT0hMCx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl9yZW1vdmFibGU9ITAsdGhpcy5fb25Gb2N1cz1uZXcgSSx0aGlzLl9vbkJsdXI9bmV3IEksdGhpcy5zZWxlY3Rpb25DaGFuZ2U9bmV3IExoLHRoaXMuZGVzdHJveWVkPW5ldyBMaCx0aGlzLnJlbW92ZWQ9bmV3IExoLHRoaXMuX2FkZEhvc3RDbGFzc05hbWUoKSx0aGlzLl9jaGlwUmlwcGxlVGFyZ2V0PWEuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fY2hpcFJpcHBsZVRhcmdldC5jbGFzc0xpc3QuYWRkKCJtYXQtY2hpcC1yaXBwbGUiKSx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY2hpcFJpcHBsZVRhcmdldCksdGhpcy5fY2hpcFJpcHBsZT1uZXcgUEgodGhpcyxlLHRoaXMuX2NoaXBSaXBwbGVUYXJnZXQsbiksdGhpcy5fY2hpcFJpcHBsZS5zZXR1cFRyaWdnZXJFdmVudHModCksdGhpcy5yaXBwbGVDb25maWc9b3x8e30sdGhpcy5fYW5pbWF0aW9uc0Rpc2FibGVkPSJOb29wQW5pbWF0aW9ucyI9PT1yLHRoaXMudGFiSW5kZXg9bnVsbCE9cyYmcGFyc2VJbnQocyl8fC0xfWdldCByaXBwbGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHx0aGlzLmRpc2FibGVSaXBwbGV8fHRoaXMuX2FuaW1hdGlvbnNEaXNhYmxlZHx8ISF0aGlzLnJpcHBsZUNvbmZpZy5kaXNhYmxlZH1nZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWR9c2V0IHNlbGVjdGVkKHQpe2NvbnN0IGU9eXoodCk7ZSE9PXRoaXMuX3NlbGVjdGVkJiYodGhpcy5fc2VsZWN0ZWQ9ZSx0aGlzLl9kaXNwYXRjaFNlbGVjdGlvbkNoYW5nZSgpKX1nZXQgdmFsdWUoKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fdmFsdWU/dGhpcy5fdmFsdWU6dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50fXNldCB2YWx1ZSh0KXt0aGlzLl92YWx1ZT10fWdldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGFibGUmJnRoaXMuY2hpcExpc3RTZWxlY3RhYmxlfXNldCBzZWxlY3RhYmxlKHQpe3RoaXMuX3NlbGVjdGFibGU9eXoodCl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2NoaXBMaXN0RGlzYWJsZWR8fHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD15eih0KX1nZXQgcmVtb3ZhYmxlKCl7cmV0dXJuIHRoaXMuX3JlbW92YWJsZX1zZXQgcmVtb3ZhYmxlKHQpe3RoaXMuX3JlbW92YWJsZT15eih0KX1nZXQgYXJpYVNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuc2VsZWN0YWJsZSYmKHRoaXMuX2NoaXBMaXN0TXVsdGlwbGV8fHRoaXMuc2VsZWN0ZWQpP3RoaXMuc2VsZWN0ZWQudG9TdHJpbmcoKTpudWxsfV9hZGRIb3N0Q2xhc3NOYW1lKCl7Y29uc3QgdD0ibWF0LWJhc2ljLWNoaXAiLGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2UuaGFzQXR0cmlidXRlKHQpfHxlLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PXQ/ZS5jbGFzc0xpc3QuYWRkKHQpOmUuY2xhc3NMaXN0LmFkZCgibWF0LXN0YW5kYXJkLWNoaXAiKX1uZ09uRGVzdHJveSgpe3RoaXMuZGVzdHJveWVkLmVtaXQoe2NoaXA6dGhpc30pLHRoaXMuX2NoaXBSaXBwbGUuX3JlbW92ZVRyaWdnZXJFdmVudHMoKX1zZWxlY3QoKXt0aGlzLl9zZWxlY3RlZHx8KHRoaXMuX3NlbGVjdGVkPSEwLHRoaXMuX2Rpc3BhdGNoU2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWRlc2VsZWN0KCl7dGhpcy5fc2VsZWN0ZWQmJih0aGlzLl9zZWxlY3RlZD0hMSx0aGlzLl9kaXNwYXRjaFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1zZWxlY3RWaWFJbnRlcmFjdGlvbigpe3RoaXMuX3NlbGVjdGVkfHwodGhpcy5fc2VsZWN0ZWQ9ITAsdGhpcy5fZGlzcGF0Y2hTZWxlY3Rpb25DaGFuZ2UoITApLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX10b2dnbGVTZWxlY3RlZCh0PSExKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5fZGlzcGF0Y2hTZWxlY3Rpb25DaGFuZ2UodCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5zZWxlY3RlZH1mb2N1cygpe3RoaXMuX2hhc0ZvY3VzfHwodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCksdGhpcy5fb25Gb2N1cy5uZXh0KHtjaGlwOnRoaXN9KSksdGhpcy5faGFzRm9jdXM9ITB9cmVtb3ZlKCl7dGhpcy5yZW1vdmFibGUmJnRoaXMucmVtb3ZlZC5lbWl0KHtjaGlwOnRoaXN9KX1faGFuZGxlQ2xpY2sodCl7dGhpcy5kaXNhYmxlZD90LnByZXZlbnREZWZhdWx0KCk6dC5zdG9wUHJvcGFnYXRpb24oKX1faGFuZGxlS2V5ZG93bih0KXtpZighdGhpcy5kaXNhYmxlZClzd2l0Y2godC5rZXlDb2RlKXtjYXNlIDQ2OmNhc2UgODp0aGlzLnJlbW92ZSgpLHQucHJldmVudERlZmF1bHQoKTticmVhaztjYXNlIGZ6OnRoaXMuc2VsZWN0YWJsZSYmdGhpcy50b2dnbGVTZWxlY3RlZCghMCksdC5wcmV2ZW50RGVmYXVsdCgpfX1fYmx1cigpe3RoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fbmdab25lLnJ1bigoKCk9Pnt0aGlzLl9oYXNGb2N1cz0hMSx0aGlzLl9vbkJsdXIubmV4dCh7Y2hpcDp0aGlzfSl9KSl9KSl9X2Rpc3BhdGNoU2VsZWN0aW9uQ2hhbmdlKHQ9ITEpe3RoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoe3NvdXJjZTp0aGlzLGlzVXNlcklucHV0OnQsc2VsZWN0ZWQ6dGhpcy5fc2VsZWN0ZWR9KX19X3l0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfeXQpKFNtKGhnKSxTbShhXyksU20od3opLFNtKHdILDgpLFNtKFVnKSxTbShaXyksU20oVlAsOCksTmEoInRhYmluZGV4IikpfSxfeXQuybVkaXI9bG8oe3R5cGU6X3l0LHNlbGVjdG9yczpbWyJtYXQtYmFzaWMtY2hpcCJdLFsiIiwibWF0LWJhc2ljLWNoaXAiLCIiXSxbIm1hdC1jaGlwIl0sWyIiLCJtYXQtY2hpcCIsIiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJigkaChvLGZ5dCw1KSwkaChvLGd5dCw1KSwkaChvLHV5dCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5hdmF0YXI9dC5maXJzdCksSmgodD10YigpKSYmKG4udHJhaWxpbmdJY29uPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLnJlbW92ZUljb249dC5maXJzdCl9fSxob3N0QXR0cnM6WyJyb2xlIiwib3B0aW9uIiwxLCJtYXQtY2hpcCIsIm1hdC1mb2N1cy1pbmRpY2F0b3IiXSxob3N0VmFyczoxNCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlQ2xpY2soZSl9KSkoImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVLZXlkb3duKGUpfSkpKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5mb2N1cygpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9ibHVyKCl9KSksMiZlJiYoanAoInRhYmluZGV4IixuLmRpc2FibGVkP251bGw6bi50YWJJbmRleCkoImRpc2FibGVkIixuLmRpc2FibGVkfHxudWxsKSgiYXJpYS1kaXNhYmxlZCIsbi5kaXNhYmxlZC50b1N0cmluZygpKSgiYXJpYS1zZWxlY3RlZCIsbi5hcmlhU2VsZWN0ZWQpLHB1KCJtYXQtY2hpcC1zZWxlY3RlZCIsbi5zZWxlY3RlZCkoIm1hdC1jaGlwLXdpdGgtYXZhdGFyIixuLmF2YXRhcikoIm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbiIsbi50cmFpbGluZ0ljb258fG4ucmVtb3ZlSWNvbikoIm1hdC1jaGlwLWRpc2FibGVkIixuLmRpc2FibGVkKSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLG4uX2FuaW1hdGlvbnNEaXNhYmxlZCkpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsdGFiSW5kZXg6InRhYkluZGV4IixzZWxlY3RlZDoic2VsZWN0ZWQiLHZhbHVlOiJ2YWx1ZSIsc2VsZWN0YWJsZToic2VsZWN0YWJsZSIsZGlzYWJsZWQ6ImRpc2FibGVkIixyZW1vdmFibGU6InJlbW92YWJsZSJ9LG91dHB1dHM6e3NlbGVjdGlvbkNoYW5nZToic2VsZWN0aW9uQ2hhbmdlIixkZXN0cm95ZWQ6ImRlc3Ryb3llZCIscmVtb3ZlZDoicmVtb3ZlZCJ9LGV4cG9ydEFzOlsibWF0Q2hpcCJdLGZlYXR1cmVzOlt4cF19KSxfeXQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3dIXX1dfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX1dLF95dC5wcm9wRGVjb3JhdG9ycz17YXZhdGFyOlt7dHlwZTpxYSxhcmdzOltmeXRdfV0sdHJhaWxpbmdJY29uOlt7dHlwZTpxYSxhcmdzOltneXRdfV0scmVtb3ZlSWNvbjpbe3R5cGU6cWEsYXJnczpbdXl0XX1dLHNlbGVjdGVkOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLHNlbGVjdGFibGU6W3t0eXBlOnh5fV0sZGlzYWJsZWQ6W3t0eXBlOnh5fV0scmVtb3ZhYmxlOlt7dHlwZTp4eX1dLHNlbGVjdGlvbkNoYW5nZTpbe3R5cGU6T3l9XSxkZXN0cm95ZWQ6W3t0eXBlOk95fV0scmVtb3ZlZDpbe3R5cGU6T3l9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChfeXQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWJhc2ljLWNoaXAsIFttYXQtYmFzaWMtY2hpcF0sIG1hdC1jaGlwLCBbbWF0LWNoaXBdIixpbnB1dHM6WyJjb2xvciIsImRpc2FibGVSaXBwbGUiLCJ0YWJJbmRleCJdLGV4cG9ydEFzOiJtYXRDaGlwIixob3N0OntjbGFzczoibWF0LWNoaXAgbWF0LWZvY3VzLWluZGljYXRvciIsIlthdHRyLnRhYmluZGV4XSI6ImRpc2FibGVkID8gbnVsbCA6IHRhYkluZGV4Iixyb2xlOiJvcHRpb24iLCJbY2xhc3MubWF0LWNoaXAtc2VsZWN0ZWRdIjoic2VsZWN0ZWQiLCJbY2xhc3MubWF0LWNoaXAtd2l0aC1hdmF0YXJdIjoiYXZhdGFyIiwiW2NsYXNzLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbl0iOiJ0cmFpbGluZ0ljb24gfHwgcmVtb3ZlSWNvbiIsIltjbGFzcy5tYXQtY2hpcC1kaXNhYmxlZF0iOiJkaXNhYmxlZCIsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOiJfYW5pbWF0aW9uc0Rpc2FibGVkIiwiW2F0dHIuZGlzYWJsZWRdIjoiZGlzYWJsZWQgfHwgbnVsbCIsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiZGlzYWJsZWQudG9TdHJpbmcoKSIsIlthdHRyLmFyaWEtc2VsZWN0ZWRdIjoiYXJpYVNlbGVjdGVkIiwiKGNsaWNrKSI6Il9oYW5kbGVDbGljaygkZXZlbnQpIiwiKGtleWRvd24pIjoiX2hhbmRsZUtleWRvd24oJGV2ZW50KSIsIihmb2N1cykiOiJmb2N1cygpIiwiKGJsdXIpIjoiX2JsdXIoKSJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt3SF19XX0se3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19XX0pLHtzZWxlY3Rpb25DaGFuZ2U6W3t0eXBlOk95fV0sZGVzdHJveWVkOlt7dHlwZTpPeX1dLHJlbW92ZWQ6W3t0eXBlOk95fV0sc2VsZWN0ZWQ6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV0sc2VsZWN0YWJsZTpbe3R5cGU6eHl9XSxkaXNhYmxlZDpbe3R5cGU6eHl9XSxyZW1vdmFibGU6W3t0eXBlOnh5fV0sYXZhdGFyOlt7dHlwZTpxYSxhcmdzOltmeXRdfV0sdHJhaWxpbmdJY29uOlt7dHlwZTpxYSxhcmdzOltneXRdfV0scmVtb3ZlSWNvbjpbe3R5cGU6cWEsYXJnczpbdXl0XX1dfSk7Y2xhc3MgQ3l0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fcGFyZW50Q2hpcD10LCJCVVRUT04iPT09ZS5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lJiZlLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ0eXBlIiwiYnV0dG9uIil9X2hhbmRsZUNsaWNrKHQpe2NvbnN0IGU9dGhpcy5fcGFyZW50Q2hpcDtlLnJlbW92YWJsZSYmIWUuZGlzYWJsZWQmJmUucmVtb3ZlKCksdC5zdG9wUHJvcGFnYXRpb24oKX19Q3l0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDeXQpKFNtKF95dCksU20oaGcpKX0sQ3l0Lsm1ZGlyPWxvKHt0eXBlOkN5dCxzZWxlY3RvcnM6W1siIiwibWF0Q2hpcFJlbW92ZSIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1jaGlwLXJlbW92ZSIsIm1hdC1jaGlwLXRyYWlsaW5nLWljb24iXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlQ2xpY2soZSl9KSl9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6dXl0LHVzZUV4aXN0aW5nOkN5dH1dKV19KSxDeXQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpfeXR9LHt0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChDeXQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdENoaXBSZW1vdmVdIixob3N0OntjbGFzczoibWF0LWNoaXAtcmVtb3ZlIG1hdC1jaGlwLXRyYWlsaW5nLWljb24iLCIoY2xpY2spIjoiX2hhbmRsZUNsaWNrKCRldmVudCkifSxwcm92aWRlcnM6W3twcm92aWRlOnV5dCx1c2VFeGlzdGluZzpDeXR9XX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOl95dH0se3R5cGU6aGd9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgTXl0PW5ldyBHYSgibWF0LWNoaXBzLWRlZmF1bHQtb3B0aW9ucyIpLHZ5dD10SChjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI9dCx0aGlzLl9wYXJlbnRGb3JtPWUsdGhpcy5fcGFyZW50Rm9ybUdyb3VwPW4sdGhpcy5uZ0NvbnRyb2w9b319KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IHh5dD0wO2NsYXNzIE95dHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc291cmNlPXQsdGhpcy52YWx1ZT1lfX1jbGFzcyBQeXQgZXh0ZW5kcyB2eXR7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscil7c3VwZXIoYSxvLGksciksdGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fZGlyPW4sdGhpcy5jb250cm9sVHlwZT0ibWF0LWNoaXAtbGlzdCIsdGhpcy5fbGFzdERlc3Ryb3llZENoaXBJbmRleD1udWxsLHRoaXMuX2Rlc3Ryb3llZD1uZXcgSSx0aGlzLl91aWQ9Im1hdC1jaGlwLWxpc3QtIit4eXQrKyx0aGlzLl90YWJJbmRleD0wLHRoaXMuX3VzZXJUYWJJbmRleD1udWxsLHRoaXMuX29uVG91Y2hlZD0oKT0+e30sdGhpcy5fb25DaGFuZ2U9KCk9Pnt9LHRoaXMuX211bHRpcGxlPSExLHRoaXMuX2NvbXBhcmVXaXRoPSh0LGUpPT50PT09ZSx0aGlzLl9yZXF1aXJlZD0hMSx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLmFyaWFPcmllbnRhdGlvbj0iaG9yaXpvbnRhbCIsdGhpcy5fc2VsZWN0YWJsZT0hMCx0aGlzLmNoYW5nZT1uZXcgTGgsdGhpcy52YWx1ZUNoYW5nZT1uZXcgTGgsdGhpcy5uZ0NvbnRyb2wmJih0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yPXRoaXMpfWdldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLm11bHRpcGxlP3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkOnRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkWzBdfWdldCByb2xlKCl7cmV0dXJuIHRoaXMuZW1wdHk/bnVsbDoibGlzdGJveCJ9Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuX211bHRpcGxlfXNldCBtdWx0aXBsZSh0KXt0aGlzLl9tdWx0aXBsZT15eih0KSx0aGlzLl9zeW5jQ2hpcHNTdGF0ZSgpfWdldCBjb21wYXJlV2l0aCgpe3JldHVybiB0aGlzLl9jb21wYXJlV2l0aH1zZXQgY29tcGFyZVdpdGgodCl7dGhpcy5fY29tcGFyZVdpdGg9dCx0aGlzLl9zZWxlY3Rpb25Nb2RlbCYmdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLl92YWx1ZX1zZXQgdmFsdWUodCl7dGhpcy53cml0ZVZhbHVlKHQpLHRoaXMuX3ZhbHVlPXR9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2NoaXBJbnB1dD90aGlzLl9jaGlwSW5wdXQuaWQ6dGhpcy5fdWlkfWdldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLl9yZXF1aXJlZH1zZXQgcmVxdWlyZWQodCl7dGhpcy5fcmVxdWlyZWQ9eXoodCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfWdldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLl9jaGlwSW5wdXQ/dGhpcy5fY2hpcElucHV0LnBsYWNlaG9sZGVyOnRoaXMuX3BsYWNlaG9sZGVyfXNldCBwbGFjZWhvbGRlcih0KXt0aGlzLl9wbGFjZWhvbGRlcj10LHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1nZXQgZm9jdXNlZCgpe3JldHVybiB0aGlzLl9jaGlwSW5wdXQmJnRoaXMuX2NoaXBJbnB1dC5mb2N1c2VkfHx0aGlzLl9oYXNGb2N1c2VkQ2hpcCgpfWdldCBlbXB0eSgpe3JldHVybighdGhpcy5fY2hpcElucHV0fHx0aGlzLl9jaGlwSW5wdXQuZW1wdHkpJiYoIXRoaXMuY2hpcHN8fDA9PT10aGlzLmNoaXBzLmxlbmd0aCl9Z2V0IHNob3VsZExhYmVsRmxvYXQoKXtyZXR1cm4hdGhpcy5lbXB0eXx8dGhpcy5mb2N1c2VkfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLm5nQ29udHJvbD8hIXRoaXMubmdDb250cm9sLmRpc2FibGVkOnRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD15eih0KSx0aGlzLl9zeW5jQ2hpcHNTdGF0ZSgpfWdldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGFibGV9c2V0IHNlbGVjdGFibGUodCl7dGhpcy5fc2VsZWN0YWJsZT15eih0KSx0aGlzLmNoaXBzJiZ0aGlzLmNoaXBzLmZvckVhY2goKHQ9PnQuY2hpcExpc3RTZWxlY3RhYmxlPXRoaXMuX3NlbGVjdGFibGUpKX1zZXQgdGFiSW5kZXgodCl7dGhpcy5fdXNlclRhYkluZGV4PXQsdGhpcy5fdGFiSW5kZXg9dH1nZXQgY2hpcFNlbGVjdGlvbkNoYW5nZXMoKXtyZXR1cm4gcmUoLi4udGhpcy5jaGlwcy5tYXAoKHQ9PnQuc2VsZWN0aW9uQ2hhbmdlKSkpfWdldCBjaGlwRm9jdXNDaGFuZ2VzKCl7cmV0dXJuIHJlKC4uLnRoaXMuY2hpcHMubWFwKCh0PT50Ll9vbkZvY3VzKSkpfWdldCBjaGlwQmx1ckNoYW5nZXMoKXtyZXR1cm4gcmUoLi4udGhpcy5jaGlwcy5tYXAoKHQ9PnQuX29uQmx1cikpKX1nZXQgY2hpcFJlbW92ZUNoYW5nZXMoKXtyZXR1cm4gcmUoLi4udGhpcy5jaGlwcy5tYXAoKHQ9PnQuZGVzdHJveWVkKSkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2tleU1hbmFnZXI9bmV3IGVJKHRoaXMuY2hpcHMpLndpdGhXcmFwKCkud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oKS53aXRoSG9tZUFuZEVuZCgpLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5fZGlyP3RoaXMuX2Rpci52YWx1ZToibHRyIiksdGhpcy5fZGlyJiZ0aGlzLl9kaXIuY2hhbmdlLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCh0PT50aGlzLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odCkpKSx0aGlzLl9rZXlNYW5hZ2VyLnRhYk91dC5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9hbGxvd0ZvY3VzRXNjYXBlKCl9KSksdGhpcy5jaGlwcy5jaGFuZ2VzLnBpcGUoTmUobnVsbCksSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuZGlzYWJsZWQmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57dGhpcy5fc3luY0NoaXBzU3RhdGUoKX0pKSx0aGlzLl9yZXNldENoaXBzKCksdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpLHRoaXMuX3VwZGF0ZVRhYkluZGV4KCksdGhpcy5fdXBkYXRlRm9jdXNGb3JEZXN0cm95ZWRDaGlwcygpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pKX1uZ09uSW5pdCgpe3RoaXMuX3NlbGVjdGlvbk1vZGVsPW5ldyBvRih0aGlzLm11bHRpcGxlLHZvaWQgMCwhMSksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfW5nRG9DaGVjaygpe3RoaXMubmdDb250cm9sJiYodGhpcy51cGRhdGVFcnJvclN0YXRlKCksdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQhPT10aGlzLl9kaXNhYmxlZCYmKHRoaXMuZGlzYWJsZWQ9ISF0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCkpfW5nT25EZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkLm5leHQoKSx0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKSx0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuX2Ryb3BTdWJzY3JpcHRpb25zKCl9cmVnaXN0ZXJJbnB1dCh0KXt0aGlzLl9jaGlwSW5wdXQ9dCx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLW1hdC1jaGlwLWlucHV0Iix0LmlkKX1zZXREZXNjcmliZWRCeUlkcyh0KXt0aGlzLl9hcmlhRGVzY3JpYmVkYnk9dC5qb2luKCIgIil9d3JpdGVWYWx1ZSh0KXt0aGlzLmNoaXBzJiZ0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKHQsITEpfXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLl9vblRvdWNoZWQ9dH1zZXREaXNhYmxlZFN0YXRlKHQpe3RoaXMuZGlzYWJsZWQ9dCx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9b25Db250YWluZXJDbGljayh0KXt0aGlzLl9vcmlnaW5hdGVzRnJvbUNoaXAodCl8fHRoaXMuZm9jdXMoKX1mb2N1cyh0KXt0aGlzLmRpc2FibGVkfHx0aGlzLl9jaGlwSW5wdXQmJnRoaXMuX2NoaXBJbnB1dC5mb2N1c2VkfHwodGhpcy5jaGlwcy5sZW5ndGg+MD8odGhpcy5fa2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpOih0aGlzLl9mb2N1c0lucHV0KHQpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSkpfV9mb2N1c0lucHV0KHQpe3RoaXMuX2NoaXBJbnB1dCYmdGhpcy5fY2hpcElucHV0LmZvY3VzKHQpfV9rZXlkb3duKHQpe2NvbnN0IGU9dC50YXJnZXQ7ZSYmZS5jbGFzc0xpc3QuY29udGFpbnMoIm1hdC1jaGlwIikmJih0aGlzLl9rZXlNYW5hZ2VyLm9uS2V5ZG93bih0KSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpfV91cGRhdGVUYWJJbmRleCgpe3RoaXMuX3RhYkluZGV4PXRoaXMuX3VzZXJUYWJJbmRleHx8KDA9PT10aGlzLmNoaXBzLmxlbmd0aD8tMTowKX1fdXBkYXRlRm9jdXNGb3JEZXN0cm95ZWRDaGlwcygpe2lmKG51bGwhPXRoaXMuX2xhc3REZXN0cm95ZWRDaGlwSW5kZXgpaWYodGhpcy5jaGlwcy5sZW5ndGgpe2NvbnN0IHQ9TWF0aC5taW4odGhpcy5fbGFzdERlc3Ryb3llZENoaXBJbmRleCx0aGlzLmNoaXBzLmxlbmd0aC0xKTt0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odCl9ZWxzZSB0aGlzLmZvY3VzKCk7dGhpcy5fbGFzdERlc3Ryb3llZENoaXBJbmRleD1udWxsfV9pc1ZhbGlkSW5kZXgodCl7cmV0dXJuIHQ+PTAmJnQ8dGhpcy5jaGlwcy5sZW5ndGh9X3NldFNlbGVjdGlvbkJ5VmFsdWUodCxlPSEwKXtpZih0aGlzLl9jbGVhclNlbGVjdGlvbigpLHRoaXMuY2hpcHMuZm9yRWFjaCgodD0+dC5kZXNlbGVjdCgpKSksQXJyYXkuaXNBcnJheSh0KSl0LmZvckVhY2goKHQ9PnRoaXMuX3NlbGVjdFZhbHVlKHQsZSkpKSx0aGlzLl9zb3J0VmFsdWVzKCk7ZWxzZXtjb25zdCBuPXRoaXMuX3NlbGVjdFZhbHVlKHQsZSk7biYmZSYmdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKG4pfX1fc2VsZWN0VmFsdWUodCxlPSEwKXtjb25zdCBuPXRoaXMuY2hpcHMuZmluZCgoZT0+bnVsbCE9ZS52YWx1ZSYmdGhpcy5fY29tcGFyZVdpdGgoZS52YWx1ZSx0KSkpO3JldHVybiBuJiYoZT9uLnNlbGVjdFZpYUludGVyYWN0aW9uKCk6bi5zZWxlY3QoKSx0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QobikpLG59X2luaXRpYWxpemVTZWxlY3Rpb24oKXtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+eyh0aGlzLm5nQ29udHJvbHx8dGhpcy5fdmFsdWUpJiYodGhpcy5fc2V0U2VsZWN0aW9uQnlWYWx1ZSh0aGlzLm5nQ29udHJvbD90aGlzLm5nQ29udHJvbC52YWx1ZTp0aGlzLl92YWx1ZSwhMSksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX0pKX1fY2xlYXJTZWxlY3Rpb24odCl7dGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKSx0aGlzLmNoaXBzLmZvckVhY2goKGU9PntlIT09dCYmZS5kZXNlbGVjdCgpfSkpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1fc29ydFZhbHVlcygpe3RoaXMuX211bHRpcGxlJiYodGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKSx0aGlzLmNoaXBzLmZvckVhY2goKHQ9Pnt0LnNlbGVjdGVkJiZ0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QodCl9KSksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX1fcHJvcGFnYXRlQ2hhbmdlcyh0KXtsZXQgZT1udWxsO2U9QXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkKT90aGlzLnNlbGVjdGVkLm1hcCgodD0+dC52YWx1ZSkpOnRoaXMuc2VsZWN0ZWQ/dGhpcy5zZWxlY3RlZC52YWx1ZTp0LHRoaXMuX3ZhbHVlPWUsdGhpcy5jaGFuZ2UuZW1pdChuZXcgT3l0KHRoaXMsZSkpLHRoaXMudmFsdWVDaGFuZ2UuZW1pdChlKSx0aGlzLl9vbkNoYW5nZShlKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1fYmx1cigpe3RoaXMuX2hhc0ZvY3VzZWRDaGlwKCl8fHRoaXMuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSgtMSksdGhpcy5kaXNhYmxlZHx8KHRoaXMuX2NoaXBJbnB1dD9zZXRUaW1lb3V0KCgoKT0+e3RoaXMuZm9jdXNlZHx8dGhpcy5fbWFya0FzVG91Y2hlZCgpfSkpOnRoaXMuX21hcmtBc1RvdWNoZWQoKSl9X21hcmtBc1RvdWNoZWQoKXt0aGlzLl9vblRvdWNoZWQoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9X2FsbG93Rm9jdXNFc2NhcGUoKXstMSE9PXRoaXMuX3RhYkluZGV4JiYodGhpcy5fdGFiSW5kZXg9LTEsc2V0VGltZW91dCgoKCk9Pnt0aGlzLl90YWJJbmRleD10aGlzLl91c2VyVGFiSW5kZXh8fDAsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSkpfV9yZXNldENoaXBzKCl7dGhpcy5fZHJvcFN1YnNjcmlwdGlvbnMoKSx0aGlzLl9saXN0ZW5Ub0NoaXBzRm9jdXMoKSx0aGlzLl9saXN0ZW5Ub0NoaXBzU2VsZWN0aW9uKCksdGhpcy5fbGlzdGVuVG9DaGlwc1JlbW92ZWQoKX1fZHJvcFN1YnNjcmlwdGlvbnMoKXt0aGlzLl9jaGlwRm9jdXNTdWJzY3JpcHRpb24mJih0aGlzLl9jaGlwRm9jdXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9jaGlwRm9jdXNTdWJzY3JpcHRpb249bnVsbCksdGhpcy5fY2hpcEJsdXJTdWJzY3JpcHRpb24mJih0aGlzLl9jaGlwQmx1clN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2NoaXBCbHVyU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMuX2NoaXBTZWxlY3Rpb25TdWJzY3JpcHRpb24mJih0aGlzLl9jaGlwU2VsZWN0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fY2hpcFNlbGVjdGlvblN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLl9jaGlwUmVtb3ZlU3Vic2NyaXB0aW9uJiYodGhpcy5fY2hpcFJlbW92ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2NoaXBSZW1vdmVTdWJzY3JpcHRpb249bnVsbCl9X2xpc3RlblRvQ2hpcHNTZWxlY3Rpb24oKXt0aGlzLl9jaGlwU2VsZWN0aW9uU3Vic2NyaXB0aW9uPXRoaXMuY2hpcFNlbGVjdGlvbkNoYW5nZXMuc3Vic2NyaWJlKCh0PT57dC5zb3VyY2Uuc2VsZWN0ZWQ/dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0KHQuc291cmNlKTp0aGlzLl9zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdCh0LnNvdXJjZSksdGhpcy5tdWx0aXBsZXx8dGhpcy5jaGlwcy5mb3JFYWNoKCh0PT57IXRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQodCkmJnQuc2VsZWN0ZWQmJnQuZGVzZWxlY3QoKX0pKSx0LmlzVXNlcklucHV0JiZ0aGlzLl9wcm9wYWdhdGVDaGFuZ2VzKCl9KSl9X2xpc3RlblRvQ2hpcHNGb2N1cygpe3RoaXMuX2NoaXBGb2N1c1N1YnNjcmlwdGlvbj10aGlzLmNoaXBGb2N1c0NoYW5nZXMuc3Vic2NyaWJlKCh0PT57bGV0IGU9dGhpcy5jaGlwcy50b0FycmF5KCkuaW5kZXhPZih0LmNoaXApO3RoaXMuX2lzVmFsaWRJbmRleChlKSYmdGhpcy5fa2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKGUpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pKSx0aGlzLl9jaGlwQmx1clN1YnNjcmlwdGlvbj10aGlzLmNoaXBCbHVyQ2hhbmdlcy5zdWJzY3JpYmUoKCgpPT57dGhpcy5fYmx1cigpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pKX1fbGlzdGVuVG9DaGlwc1JlbW92ZWQoKXt0aGlzLl9jaGlwUmVtb3ZlU3Vic2NyaXB0aW9uPXRoaXMuY2hpcFJlbW92ZUNoYW5nZXMuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10LmNoaXAsbj10aGlzLmNoaXBzLnRvQXJyYXkoKS5pbmRleE9mKHQuY2hpcCk7dGhpcy5faXNWYWxpZEluZGV4KG4pJiZlLl9oYXNGb2N1cyYmKHRoaXMuX2xhc3REZXN0cm95ZWRDaGlwSW5kZXg9bil9KSl9X29yaWdpbmF0ZXNGcm9tQ2hpcCh0KXtsZXQgZT10LnRhcmdldDtmb3IoO2UmJmUhPT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7KXtpZihlLmNsYXNzTGlzdC5jb250YWlucygibWF0LWNoaXAiKSlyZXR1cm4hMDtlPWUucGFyZW50RWxlbWVudH1yZXR1cm4hMX1faGFzRm9jdXNlZENoaXAoKXtyZXR1cm4gdGhpcy5jaGlwcyYmdGhpcy5jaGlwcy5zb21lKCh0PT50Ll9oYXNGb2N1cykpfV9zeW5jQ2hpcHNTdGF0ZSgpe3RoaXMuY2hpcHMmJnRoaXMuY2hpcHMuZm9yRWFjaCgodD0+e3QuX2NoaXBMaXN0RGlzYWJsZWQ9dGhpcy5fZGlzYWJsZWQsdC5fY2hpcExpc3RNdWx0aXBsZT10aGlzLm11bHRpcGxlfSkpfX1QeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFB5dCkoU20oaGcpLFNtKFVnKSxTbShISSw4KSxTbShpVSw4KSxTbShQVSw4KSxTbShiSCksU20oTWosMTApKX0sUHl0Lsm1Y21wPXRvKHt0eXBlOlB5dCxzZWxlY3RvcnM6W1sibWF0LWNoaXAtbGlzdCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJiRoKG8sX3l0LDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uY2hpcHM9dCl9fSxob3N0QXR0cnM6WzEsIm1hdC1jaGlwLWxpc3QiXSxob3N0VmFyczoxNSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImZvY3VzIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmZvY3VzKCl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2JsdXIoKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2tleWRvd24oZSl9KSksMiZlJiYoVHUoImlkIixuLl91aWQpLGpwKCJ0YWJpbmRleCIsbi5kaXNhYmxlZD9udWxsOm4uX3RhYkluZGV4KSgiYXJpYS1kZXNjcmliZWRieSIsbi5fYXJpYURlc2NyaWJlZGJ5fHxudWxsKSgiYXJpYS1yZXF1aXJlZCIsbi5yb2xlP24ucmVxdWlyZWQ6bnVsbCkoImFyaWEtZGlzYWJsZWQiLG4uZGlzYWJsZWQudG9TdHJpbmcoKSkoImFyaWEtaW52YWxpZCIsbi5lcnJvclN0YXRlKSgiYXJpYS1tdWx0aXNlbGVjdGFibGUiLG4ubXVsdGlwbGUpKCJyb2xlIixuLnJvbGUpKCJhcmlhLW9yaWVudGF0aW9uIixuLmFyaWFPcmllbnRhdGlvbikscHUoIm1hdC1jaGlwLWxpc3QtZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJtYXQtY2hpcC1saXN0LWludmFsaWQiLG4uZXJyb3JTdGF0ZSkoIm1hdC1jaGlwLWxpc3QtcmVxdWlyZWQiLG4ucmVxdWlyZWQpKX0saW5wdXRzOnthcmlhT3JpZW50YXRpb246WyJhcmlhLW9yaWVudGF0aW9uIiwiYXJpYU9yaWVudGF0aW9uIl0sbXVsdGlwbGU6Im11bHRpcGxlIixjb21wYXJlV2l0aDoiY29tcGFyZVdpdGgiLHZhbHVlOiJ2YWx1ZSIscmVxdWlyZWQ6InJlcXVpcmVkIixwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIiLGRpc2FibGVkOiJkaXNhYmxlZCIsc2VsZWN0YWJsZToic2VsZWN0YWJsZSIsdGFiSW5kZXg6InRhYkluZGV4IixlcnJvclN0YXRlTWF0Y2hlcjoiZXJyb3JTdGF0ZU1hdGNoZXIifSxvdXRwdXRzOntjaGFuZ2U6ImNoYW5nZSIsdmFsdWVDaGFuZ2U6InZhbHVlQ2hhbmdlIn0sZXhwb3J0QXM6WyJtYXRDaGlwTGlzdCJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6YlYsdXNlRXhpc3Rpbmc6UHl0fV0pLHhwXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIl0sZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbMSwibWF0LWNoaXAtbGlzdC13cmFwcGVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFJtKDAsImRpdiIsMCksWG0oMSksQW0oKSl9LHN0eWxlczpbJy5tYXQtY2hpcHtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO2JvcmRlcjpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5tYXQtc3RhbmRhcmQtY2hpcHt0cmFuc2l0aW9uOmJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtkaXNwbGF5OmlubGluZS1mbGV4O3BhZGRpbmc6N3B4IDEycHg7Ym9yZGVyLXJhZGl1czoxNnB4O2FsaWduLWl0ZW1zOmNlbnRlcjtjdXJzb3I6ZGVmYXVsdDttaW4taGVpZ2h0OjMycHg7aGVpZ2h0OjFweH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXN0YW5kYXJkLWNoaXB7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29ue3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHh9Lm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlcnt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOmluaGVyaXQ7b3BhY2l0eTowO2NvbnRlbnQ6IiI7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5tYXQtc3RhbmRhcmQtY2hpcDpob3Zlcjo6YWZ0ZXJ7b3BhY2l0eTouMTJ9Lm1hdC1zdGFuZGFyZC1jaGlwOmZvY3Vze291dGxpbmU6bm9uZX0ubWF0LXN0YW5kYXJkLWNoaXA6Zm9jdXM6OmFmdGVye29wYWNpdHk6LjE2fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zdGFuZGFyZC1jaGlwe291dGxpbmU6c29saWQgMXB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zdGFuZGFyZC1jaGlwOmZvY3Vze291dGxpbmU6ZG90dGVkIDJweH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQ6OmFmdGVye29wYWNpdHk6MH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQgLm1hdC1jaGlwLXJlbW92ZSwubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQgLm1hdC1jaGlwLXRyYWlsaW5nLWljb257Y3Vyc29yOmRlZmF1bHR9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi5tYXQtY2hpcC13aXRoLWF2YXRhciwubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC1hdmF0YXJ7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowfS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb24ubWF0LWNoaXAtd2l0aC1hdmF0YXJ7cGFkZGluZy1yaWdodDo4cHg7cGFkZGluZy1sZWZ0OjB9W2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb24ubWF0LWNoaXAtd2l0aC1hdmF0YXJ7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjB9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbntwYWRkaW5nLXRvcDo3cHg7cGFkZGluZy1ib3R0b206N3B4O3BhZGRpbmctcmlnaHQ6OHB4O3BhZGRpbmctbGVmdDoxMnB4fVtkaXI9cnRsXSAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC10cmFpbGluZy1pY29ue3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDoxMnB4fS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjEycHh9W2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjEycHh9Lm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1hdmF0YXJ7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0OjRweH1bZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1hdmF0YXJ7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDo0cHh9Lm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUsLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29ue3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Y3Vyc29yOnBvaW50ZXJ9Lm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUsLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29ue21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH1bZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUsW2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0OjB9Lm1hdC1jaGlwLXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtvdmVyZmxvdzpoaWRkZW59Lm1hdC1jaGlwLWxpc3Qtd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46LTRweH0ubWF0LWNoaXAtbGlzdC13cmFwcGVyIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50LC5tYXQtY2hpcC1saXN0LXdyYXBwZXIgLm1hdC1zdGFuZGFyZC1jaGlwe21hcmdpbjo0cHh9Lm1hdC1jaGlwLWxpc3Qtc3RhY2tlZCAubWF0LWNoaXAtbGlzdC13cmFwcGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5tYXQtY2hpcC1saXN0LXN0YWNrZWQgLm1hdC1jaGlwLWxpc3Qtd3JhcHBlciAubWF0LXN0YW5kYXJkLWNoaXB7d2lkdGg6MTAwJX0ubWF0LWNoaXAtYXZhdGFye2JvcmRlci1yYWRpdXM6NTAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW47b2JqZWN0LWZpdDpjb3Zlcn1pbnB1dC5tYXQtY2hpcC1pbnB1dHt3aWR0aDoxNTBweDttYXJnaW46NHB4O2ZsZXg6MSAwIDE1MHB4fVxuJ10sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksUHl0LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTppVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpQVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpiSH0se3R5cGU6TWosZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfV19XSxQeXQucHJvcERlY29yYXRvcnM9e2Vycm9yU3RhdGVNYXRjaGVyOlt7dHlwZTp4eX1dLG11bHRpcGxlOlt7dHlwZTp4eX1dLGNvbXBhcmVXaXRoOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLHJlcXVpcmVkOlt7dHlwZTp4eX1dLHBsYWNlaG9sZGVyOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dLGFyaWFPcmllbnRhdGlvbjpbe3R5cGU6eHksYXJnczpbImFyaWEtb3JpZW50YXRpb24iXX1dLHNlbGVjdGFibGU6W3t0eXBlOnh5fV0sdGFiSW5kZXg6W3t0eXBlOnh5fV0sY2hhbmdlOlt7dHlwZTpPeX1dLHZhbHVlQ2hhbmdlOlt7dHlwZTpPeX1dLGNoaXBzOlt7dHlwZTpZYSxhcmdzOltfeXQse2Rlc2NlbmRhbnRzOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChQeXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWNoaXAtbGlzdCIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9Im1hdC1jaGlwLWxpc3Qtd3JhcHBlciI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PicsZXhwb3J0QXM6Im1hdENoaXBMaXN0Iixob3N0OnsiW2F0dHIudGFiaW5kZXhdIjoiZGlzYWJsZWQgPyBudWxsIDogX3RhYkluZGV4IiwiW2F0dHIuYXJpYS1kZXNjcmliZWRieV0iOiJfYXJpYURlc2NyaWJlZGJ5IHx8IG51bGwiLCJbYXR0ci5hcmlhLXJlcXVpcmVkXSI6InJvbGUgPyByZXF1aXJlZCA6IG51bGwiLCJbYXR0ci5hcmlhLWRpc2FibGVkXSI6ImRpc2FibGVkLnRvU3RyaW5nKCkiLCJbYXR0ci5hcmlhLWludmFsaWRdIjoiZXJyb3JTdGF0ZSIsIlthdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXSI6Im11bHRpcGxlIiwiW2F0dHIucm9sZV0iOiJyb2xlIiwiW2NsYXNzLm1hdC1jaGlwLWxpc3QtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbY2xhc3MubWF0LWNoaXAtbGlzdC1pbnZhbGlkXSI6ImVycm9yU3RhdGUiLCJbY2xhc3MubWF0LWNoaXAtbGlzdC1yZXF1aXJlZF0iOiJyZXF1aXJlZCIsIlthdHRyLmFyaWEtb3JpZW50YXRpb25dIjoiYXJpYU9yaWVudGF0aW9uIixjbGFzczoibWF0LWNoaXAtbGlzdCIsIihmb2N1cykiOiJmb2N1cygpIiwiKGJsdXIpIjoiX2JsdXIoKSIsIihrZXlkb3duKSI6Il9rZXlkb3duKCRldmVudCkiLCJbaWRdIjoiX3VpZCJ9LHByb3ZpZGVyczpbe3Byb3ZpZGU6YlYsdXNlRXhpc3Rpbmc6UHl0fV0sZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsc3R5bGVzOlsnLm1hdC1jaGlwe3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7Ym9yZGVyOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9Lm1hdC1zdGFuZGFyZC1jaGlwe3RyYW5zaXRpb246Ym94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO2Rpc3BsYXk6aW5saW5lLWZsZXg7cGFkZGluZzo3cHggMTJweDtib3JkZXItcmFkaXVzOjE2cHg7YWxpZ24taXRlbXM6Y2VudGVyO2N1cnNvcjpkZWZhdWx0O21pbi1oZWlnaHQ6MzJweDtoZWlnaHQ6MXB4fS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtc3RhbmRhcmQtY2hpcHt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb257d2lkdGg6MThweDtoZWlnaHQ6MThweH0ubWF0LXN0YW5kYXJkLWNoaXA6OmFmdGVye3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtvcGFjaXR5OjA7Y29udGVudDoiIjtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAyMDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Lm1hdC1zdGFuZGFyZC1jaGlwOmhvdmVyOjphZnRlcntvcGFjaXR5Oi4xMn0ubWF0LXN0YW5kYXJkLWNoaXA6Zm9jdXN7b3V0bGluZTpub25lfS5tYXQtc3RhbmRhcmQtY2hpcDpmb2N1czo6YWZ0ZXJ7b3BhY2l0eTouMTZ9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXN0YW5kYXJkLWNoaXB7b3V0bGluZTpzb2xpZCAxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXN0YW5kYXJkLWNoaXA6Zm9jdXN7b3V0bGluZTpkb3R0ZWQgMnB4fS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZDo6YWZ0ZXJ7b3BhY2l0eTowfS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZCAubWF0LWNoaXAtcmVtb3ZlLC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbntjdXJzb3I6ZGVmYXVsdH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC10cmFpbGluZy1pY29uLm1hdC1jaGlwLXdpdGgtYXZhdGFyLC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjB9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLXJpZ2h0OjhweDtwYWRkaW5nLWxlZnQ6MH1bZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6MH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC10cmFpbGluZy1pY29ue3BhZGRpbmctdG9wOjdweDtwYWRkaW5nLWJvdHRvbTo3cHg7cGFkZGluZy1yaWdodDo4cHg7cGFkZGluZy1sZWZ0OjEycHh9W2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb257cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjEycHh9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtYXZhdGFye3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MTJweH1bZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtYXZhdGFye3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MTJweH0ubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLWF2YXRhcnt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLWxlZnQ6NHB4fVtkaXI9cnRsXSAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLWF2YXRhcnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjRweH0ubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZSwubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb257d2lkdGg6MThweDtoZWlnaHQ6MThweDtjdXJzb3I6cG9pbnRlcn0ubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZSwubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb257bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfVtkaXI9cnRsXSAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZSxbZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29ue21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLWxlZnQ6MH0ubWF0LWNoaXAtcmlwcGxle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czppbmhlcml0O292ZXJmbG93OmhpZGRlbn0ubWF0LWNoaXAtbGlzdC13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC13cmFwOndyYXA7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjotNHB4fS5tYXQtY2hpcC1saXN0LXdyYXBwZXIgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQsLm1hdC1jaGlwLWxpc3Qtd3JhcHBlciAubWF0LXN0YW5kYXJkLWNoaXB7bWFyZ2luOjRweH0ubWF0LWNoaXAtbGlzdC1zdGFja2VkIC5tYXQtY2hpcC1saXN0LXdyYXBwZXJ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lm1hdC1jaGlwLWxpc3Qtc3RhY2tlZCAubWF0LWNoaXAtbGlzdC13cmFwcGVyIC5tYXQtc3RhbmRhcmQtY2hpcHt3aWR0aDoxMDAlfS5tYXQtY2hpcC1hdmF0YXJ7Ym9yZGVyLXJhZGl1czo1MCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjtvYmplY3QtZml0OmNvdmVyfWlucHV0Lm1hdC1jaGlwLWlucHV0e3dpZHRoOjE1MHB4O21hcmdpbjo0cHg7ZmxleDoxIDAgMTUwcHh9XG4nXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6aVUsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6UFUsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6Ykh9LHt0eXBlOk1qLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn1dfV19KSx7YXJpYU9yaWVudGF0aW9uOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1vcmllbnRhdGlvbiJdfV0sY2hhbmdlOlt7dHlwZTpPeX1dLHZhbHVlQ2hhbmdlOlt7dHlwZTpPeX1dLG11bHRpcGxlOlt7dHlwZTp4eX1dLGNvbXBhcmVXaXRoOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLHJlcXVpcmVkOlt7dHlwZTp4eX1dLHBsYWNlaG9sZGVyOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dLHNlbGVjdGFibGU6W3t0eXBlOnh5fV0sdGFiSW5kZXg6W3t0eXBlOnh5fV0sZXJyb3JTdGF0ZU1hdGNoZXI6W3t0eXBlOnh5fV0sY2hpcHM6W3t0eXBlOllhLGFyZ3M6W195dCx7ZGVzY2VuZGFudHM6ITB9XX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgd3l0PTA7Y2xhc3Mga3l0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2RlZmF1bHRPcHRpb25zPWUsdGhpcy5mb2N1c2VkPSExLHRoaXMuX2FkZE9uQmx1cj0hMSx0aGlzLnNlcGFyYXRvcktleUNvZGVzPXRoaXMuX2RlZmF1bHRPcHRpb25zLnNlcGFyYXRvcktleUNvZGVzLHRoaXMuY2hpcEVuZD1uZXcgTGgsdGhpcy5wbGFjZWhvbGRlcj0iIix0aGlzLmlkPSJtYXQtY2hpcC1saXN0LWlucHV0LSIrd3l0KyssdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5pbnB1dEVsZW1lbnQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50fXNldCBjaGlwTGlzdCh0KXt0JiYodGhpcy5fY2hpcExpc3Q9dCx0aGlzLl9jaGlwTGlzdC5yZWdpc3RlcklucHV0KHRoaXMpKX1nZXQgYWRkT25CbHVyKCl7cmV0dXJuIHRoaXMuX2FkZE9uQmx1cn1zZXQgYWRkT25CbHVyKHQpe3RoaXMuX2FkZE9uQmx1cj15eih0KX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR8fHRoaXMuX2NoaXBMaXN0JiZ0aGlzLl9jaGlwTGlzdC5kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9eXoodCl9Z2V0IGVtcHR5KCl7cmV0dXJuIXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlfW5nT25DaGFuZ2VzKCl7dGhpcy5fY2hpcExpc3Quc3RhdGVDaGFuZ2VzLm5leHQoKX1uZ09uRGVzdHJveSgpe3RoaXMuY2hpcEVuZC5jb21wbGV0ZSgpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZT10aGlzLmVtcHR5fV9rZXlkb3duKHQpe2lmKHQpe2lmKDkhPT10LmtleUNvZGV8fGJ6KHQsInNoaWZ0S2V5Iil8fHRoaXMuX2NoaXBMaXN0Ll9hbGxvd0ZvY3VzRXNjYXBlKCksOD09PXQua2V5Q29kZSYmdGhpcy5fZm9jdXNMYXN0Q2hpcE9uQmFja3NwYWNlKXJldHVybiB0aGlzLl9jaGlwTGlzdC5fa2V5TWFuYWdlci5zZXRMYXN0SXRlbUFjdGl2ZSgpLHZvaWQgdC5wcmV2ZW50RGVmYXVsdCgpO3RoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZT0hMX10aGlzLl9lbWl0Q2hpcEVuZCh0KX1fa2V5dXAodCl7IXRoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZSYmOD09PXQua2V5Q29kZSYmdGhpcy5lbXB0eSYmKHRoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZT0hMCx0LnByZXZlbnREZWZhdWx0KCkpfV9ibHVyKCl7dGhpcy5hZGRPbkJsdXImJnRoaXMuX2VtaXRDaGlwRW5kKCksdGhpcy5mb2N1c2VkPSExLHRoaXMuX2NoaXBMaXN0LmZvY3VzZWR8fHRoaXMuX2NoaXBMaXN0Ll9ibHVyKCksdGhpcy5fY2hpcExpc3Quc3RhdGVDaGFuZ2VzLm5leHQoKX1fZm9jdXMoKXt0aGlzLmZvY3VzZWQ9ITAsdGhpcy5fZm9jdXNMYXN0Q2hpcE9uQmFja3NwYWNlPXRoaXMuZW1wdHksdGhpcy5fY2hpcExpc3Quc3RhdGVDaGFuZ2VzLm5leHQoKX1fZW1pdENoaXBFbmQodCl7IXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlJiZ0JiZ0aGlzLl9jaGlwTGlzdC5fa2V5ZG93bih0KSx0JiYhdGhpcy5faXNTZXBhcmF0b3JLZXkodCl8fCh0aGlzLmNoaXBFbmQuZW1pdCh7aW5wdXQ6dGhpcy5pbnB1dEVsZW1lbnQsdmFsdWU6dGhpcy5pbnB1dEVsZW1lbnQudmFsdWUsY2hpcElucHV0OnRoaXN9KSxudWxsPT10fHx0LnByZXZlbnREZWZhdWx0KCkpfV9vbklucHV0KCl7dGhpcy5fY2hpcExpc3Quc3RhdGVDaGFuZ2VzLm5leHQoKX1mb2N1cyh0KXt0aGlzLmlucHV0RWxlbWVudC5mb2N1cyh0KX1jbGVhcigpe3RoaXMuaW5wdXRFbGVtZW50LnZhbHVlPSIiLHRoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZT0hMH1faXNTZXBhcmF0b3JLZXkodCl7cmV0dXJuIWJ6KHQpJiZuZXcgU2V0KHRoaXMuc2VwYXJhdG9yS2V5Q29kZXMpLmhhcyh0LmtleUNvZGUpfX1reXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGt5dCkoU20oaGcpLFNtKE15dCkpfSxreXQuybVkaXI9bG8oe3R5cGU6a3l0LHNlbGVjdG9yczpbWyJpbnB1dCIsIm1hdENoaXBJbnB1dEZvciIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1jaGlwLWlucHV0IiwibWF0LWlucHV0LWVsZW1lbnQiXSxob3N0VmFyczo1LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2tleWRvd24oZSl9KSkoImtleXVwIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5fa2V5dXAoZSl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2JsdXIoKX0pKSgiZm9jdXMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2ZvY3VzKCl9KSkoImlucHV0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbklucHV0KCl9KSksMiZlJiYoVHUoImlkIixuLmlkKSxqcCgiZGlzYWJsZWQiLG4uZGlzYWJsZWR8fG51bGwpKCJwbGFjZWhvbGRlciIsbi5wbGFjZWhvbGRlcnx8bnVsbCkoImFyaWEtaW52YWxpZCIsbi5fY2hpcExpc3QmJm4uX2NoaXBMaXN0Lm5nQ29udHJvbD9uLl9jaGlwTGlzdC5uZ0NvbnRyb2wuaW52YWxpZDpudWxsKSgiYXJpYS1yZXF1aXJlZCIsbi5fY2hpcExpc3QmJm4uX2NoaXBMaXN0LnJlcXVpcmVkfHxudWxsKSl9LGlucHV0czp7c2VwYXJhdG9yS2V5Q29kZXM6WyJtYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2RlcyIsInNlcGFyYXRvcktleUNvZGVzIl0scGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIixpZDoiaWQiLGNoaXBMaXN0OlsibWF0Q2hpcElucHV0Rm9yIiwiY2hpcExpc3QiXSxhZGRPbkJsdXI6WyJtYXRDaGlwSW5wdXRBZGRPbkJsdXIiLCJhZGRPbkJsdXIiXSxkaXNhYmxlZDoiZGlzYWJsZWQifSxvdXRwdXRzOntjaGlwRW5kOiJtYXRDaGlwSW5wdXRUb2tlbkVuZCJ9LGV4cG9ydEFzOlsibWF0Q2hpcElucHV0IiwibWF0Q2hpcElucHV0Rm9yIl0sZmVhdHVyZXM6W0JvXX0pLGt5dC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbTXl0XX1dfV0sa3l0LnByb3BEZWNvcmF0b3JzPXtjaGlwTGlzdDpbe3R5cGU6eHksYXJnczpbIm1hdENoaXBJbnB1dEZvciJdfV0sYWRkT25CbHVyOlt7dHlwZTp4eSxhcmdzOlsibWF0Q2hpcElucHV0QWRkT25CbHVyIl19XSxzZXBhcmF0b3JLZXlDb2Rlczpbe3R5cGU6eHksYXJnczpbIm1hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzIl19XSxjaGlwRW5kOlt7dHlwZTpPeSxhcmdzOlsibWF0Q2hpcElucHV0VG9rZW5FbmQiXX1dLHBsYWNlaG9sZGVyOlt7dHlwZTp4eX1dLGlkOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGt5dCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJpbnB1dFttYXRDaGlwSW5wdXRGb3JdIixleHBvcnRBczoibWF0Q2hpcElucHV0LCBtYXRDaGlwSW5wdXRGb3IiLGhvc3Q6e2NsYXNzOiJtYXQtY2hpcC1pbnB1dCBtYXQtaW5wdXQtZWxlbWVudCIsIihrZXlkb3duKSI6Il9rZXlkb3duKCRldmVudCkiLCIoa2V5dXApIjoiX2tleXVwKCRldmVudCkiLCIoYmx1cikiOiJfYmx1cigpIiwiKGZvY3VzKSI6Il9mb2N1cygpIiwiKGlucHV0KSI6Il9vbklucHV0KCkiLCJbaWRdIjoiaWQiLCJbYXR0ci5kaXNhYmxlZF0iOiJkaXNhYmxlZCB8fCBudWxsIiwiW2F0dHIucGxhY2Vob2xkZXJdIjoicGxhY2Vob2xkZXIgfHwgbnVsbCIsIlthdHRyLmFyaWEtaW52YWxpZF0iOiJfY2hpcExpc3QgJiYgX2NoaXBMaXN0Lm5nQ29udHJvbCA/IF9jaGlwTGlzdC5uZ0NvbnRyb2wuaW52YWxpZCA6IG51bGwiLCJbYXR0ci5hcmlhLXJlcXVpcmVkXSI6Il9jaGlwTGlzdCAmJiBfY2hpcExpc3QucmVxdWlyZWQgfHwgbnVsbCJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltNeXRdfV19XX0pLHtzZXBhcmF0b3JLZXlDb2Rlczpbe3R5cGU6eHksYXJnczpbIm1hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzIl19XSxjaGlwRW5kOlt7dHlwZTpPeSxhcmdzOlsibWF0Q2hpcElucHV0VG9rZW5FbmQiXX1dLHBsYWNlaG9sZGVyOlt7dHlwZTp4eX1dLGlkOlt7dHlwZTp4eX1dLGNoaXBMaXN0Olt7dHlwZTp4eSxhcmdzOlsibWF0Q2hpcElucHV0Rm9yIl19XSxhZGRPbkJsdXI6W3t0eXBlOnh5LGFyZ3M6WyJtYXRDaGlwSW5wdXRBZGRPbkJsdXIiXX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBTeXQ9W1B5dCxfeXQsa3l0LEN5dCxieXQseXl0XSxEeXQ9e3NlcGFyYXRvcktleUNvZGVzOlttel19O2NsYXNzIEV5dHt9RXl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxFeXQpfSxFeXQuybVtb2Q9YW8oe3R5cGU6RXl0fSksRXl0Lsm1aW5qPXZuKHtwcm92aWRlcnM6W2JILHtwcm92aWRlOk15dCx1c2VWYWx1ZTpEeXR9XSxpbXBvcnRzOltbWEldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRXl0LFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbWEldLGV4cG9ydHM6U3l0LGRlY2xhcmF0aW9uczpTeXQscHJvdmlkZXJzOltiSCx7cHJvdmlkZTpNeXQsdXNlVmFsdWU6RHl0fV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhFeXQse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltQeXQsX3l0LGt5dCxDeXQsYnl0LHl5dF19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bWEldfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1B5dCxfeXQsa3l0LEN5dCxieXQseXl0XX19KTtjb25zdCBSeXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm57ImVtYmVkZGluZy1zZWxlY3RlZCI6dCwiZW1iZWRkaW5nLXVuc2VsZWN0ZWQiOmV9fTtmdW5jdGlvbiBBeXQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJtYXQtaWNvbiIsNSksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe2hpKHQpO2NvbnN0IG49WW0oKTtyZXR1cm4gbi5vblNlbGVjdC5lbWl0KG4ubWV0cmljKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJuZ0NsYXNzIix2aCgxLFJ5dCx0LmVtYmVkZGluZ3NNZXRyaWM9PT10Lm1ldHJpYyx0LmVtYmVkZGluZ3NNZXRyaWMhPT10Lm1ldHJpYykpfX1jb25zdCBUeXQ9ZnVuY3Rpb24odCl7cmV0dXJue3dpZHRoOnR9fSxOeXQ9ZnVuY3Rpb24odCl7cmV0dXJueyJ2YWx1ZS1pbnZhbGlkIjp0fX07Y2xhc3Mgenl0e2NvbnN0cnVjdG9yKCl7dGhpcy5vblJlbW92ZT1uZXcgTGgsdGhpcy5vblNlbGVjdD1uZXcgTGgsdGhpcy5vbkZpbHRlckNoYW5nZT1uZXcgTGgsdGhpcy5mb2N1c01pbj0hMSx0aGlzLmZvY3VzTWF4PSExLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgSX1uZ09uSW5pdCgpe3RoaXMubWluRm9ybUNvbnRyb2w9bmV3ICRqKHRoaXMuZmlsdGVyVmFsdWVzLm1pbixbcVYucmVxdWlyZWQscVYubWluKC0xKSxxVi5tYXgoMSksdGhpcy5taW5WYWx1ZVZhbGlkYXRvci5iaW5kKHRoaXMpXSksdGhpcy5tYXhGb3JtQ29udHJvbD1uZXcgJGoodGhpcy5maWx0ZXJWYWx1ZXMubWF4LFtxVi5yZXF1aXJlZCxxVi5taW4oLTEpLHFWLm1heCgxKSx0aGlzLm1heFZhbHVlVmFsaWRhdG9yLmJpbmQodGhpcyldKSx0aGlzLm1pbkZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLm1pbkZvcm1Db250cm9sLnZhbGlkJiZ0aGlzLm1heEZvcm1Db250cm9sLnZhbGlkJiZ0aGlzLm9uRmlsdGVyQ2hhbmdlLmVtaXQoe21pbjpwYXJzZUZsb2F0KHRoaXMubWluRm9ybUNvbnRyb2wudmFsdWUpLG1heDpwYXJzZUZsb2F0KHRoaXMubWF4Rm9ybUNvbnRyb2wudmFsdWUpfSl9KSksdGhpcy5tYXhGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5taW5Gb3JtQ29udHJvbC52YWxpZCYmdGhpcy5tYXhGb3JtQ29udHJvbC52YWxpZCYmdGhpcy5vbkZpbHRlckNoYW5nZS5lbWl0KHttaW46cGFyc2VGbG9hdCh0aGlzLm1pbkZvcm1Db250cm9sLnZhbHVlKSxtYXg6cGFyc2VGbG9hdCh0aGlzLm1heEZvcm1Db250cm9sLnZhbHVlKX0pfSkpfW5nT25DaGFuZ2VzKHQpe3RoaXMubWluRm9ybUNvbnRyb2wmJnRoaXMubWF4Rm9ybUNvbnRyb2wmJih0aGlzLm1pbkZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuZmlsdGVyVmFsdWVzLm1pbix7ZW1pdEV2ZW50OiExfSksdGhpcy5tYXhGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZpbHRlclZhbHVlcy5tYXgse2VtaXRFdmVudDohMX0pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9bWluVmFsdWVWYWxpZGF0b3IodCl7cmV0dXJuIHRoaXMubWF4Rm9ybUNvbnRyb2wmJiJOYU4iIT09dC52YWx1ZT9pc05hTihwYXJzZUZsb2F0KHQudmFsdWUpKT97dmFsdWU6InRoZSBzdHJpbmcgeW91IGVudGVyZWQgaXMgbmVpdGhlciBOYU4gbm9yIGEgbnVtYmVyIn06cGFyc2VGbG9hdCh0LnZhbHVlKT5wYXJzZUZsb2F0KHRoaXMubWF4Rm9ybUNvbnRyb2wudmFsdWUpP3t2YWx1ZToidGhlIG51bWJlciB5b3UgZW50ZXJlZCBpcyBsYXJnZXIgdGhhbiB0aGUgbWF4IHZhbHVlIn06bnVsbDpudWxsfW1heFZhbHVlVmFsaWRhdG9yKHQpe3JldHVybiB0aGlzLm1pbkZvcm1Db250cm9sPyJOYU4iPT09dGhpcy5taW5Gb3JtQ29udHJvbC52YWx1ZSYmIk5hTiI9PT10LnZhbHVlP251bGw6aXNOYU4ocGFyc2VGbG9hdCh0LnZhbHVlKSk/e3ZhbHVlOiJ0aGUgc3RyaW5nIHlvdSBlbnRlcmVkIGlzIG5laXRoZXIgTmFOIG5vciBhIG51bWJlciJ9OnQudmFsdWU8dGhpcy5taW5Gb3JtQ29udHJvbC52YWx1ZT97dmFsdWU6InRoZSBudW1iZXIgeW91IGVudGVyZWQgaXMgc21hbGxlciB0aGFuIHRoZSBtaW4gdmFsdWUifTpudWxsOm51bGx9Z2V0RXJyb3JEZXNjcmlwdGlvbih0KXtpZih0KXtjb25zdCBlPU9iamVjdC5rZXlzKHQpWzBdO3JldHVybiJyZXF1aXJlZCI9PT1lPyJ5b3UgZGlkIG5vdCBlbnRlciBhbnl0aGluZyI6Im1pbiI9PT1lPyJ0aGUgbnVtYmVyIG11c3QgYmUgYXQgbGVhc3QgLTEuMCI6Im1heCI9PT1lPyJ0aGUgbnVtYmVyIGlzIGJpZ2dlciB0aGFuIDEuMCI6dFtlXX1yZXR1cm4iIn19enl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx6eXQpfSx6eXQuybVjbXA9dG8oe3R5cGU6enl0LHNlbGVjdG9yczpbWyJtZXRyaWMtYXJpdGhtZXRpYy1lbGVtZW50LWNvbXBvbmVudCJdXSxpbnB1dHM6e21ldHJpYzoibWV0cmljIixmaWx0ZXJWYWx1ZXM6ImZpbHRlclZhbHVlcyIsaGFzRW1iZWRkaW5nc0RhdGE6Imhhc0VtYmVkZGluZ3NEYXRhIixlbWJlZGRpbmdzTWV0cmljOiJlbWJlZGRpbmdzTWV0cmljIn0sb3V0cHV0czp7b25SZW1vdmU6Im9uUmVtb3ZlIixvblNlbGVjdDoib25TZWxlY3QiLG9uRmlsdGVyQ2hhbmdlOiJvbkZpbHRlckNoYW5nZSJ9LGZlYXR1cmVzOltCb10sZGVjbHM6MTAsdmFyczoyMixjb25zdHM6W1sxLCJmaWx0ZXItY2hpcCIsMywicmVtb3ZlZCJdLFsiY2xhc3MiLCJlbWJlZGRpbmdzLWJ1dHRvbiIsInN2Z0ljb24iLCJncm91cF93b3JrXzI0cHgiLDMsIm5nQ2xhc3MiLCJjbGljayIsNCwibmdJZiJdLFsxLCJtZXRyaWMtYXJpdGhtZXRpYy1lbGVtZW50LXJhbmdlIiwzLCJrZXlkb3duIl0sWyJtYXRJbnB1dCIsIiIsMSwiaW5wdXQtZmllbGQiLDMsInZhbHVlIiwibWF0VG9vbHRpcCIsIm1hdFRvb2x0aXBEaXNhYmxlZCIsIm5nU3R5bGUiLCJuZ0NsYXNzIiwiZm9ybUNvbnRyb2wiLCJmb2N1cyIsImZvY3Vzb3V0Il0sWyJtYXRDaGlwUmVtb3ZlIiwiIiwic3ZnSWNvbiIsImNhbmNlbF8yNHB4Il0sWyJzdmdJY29uIiwiZ3JvdXBfd29ya18yNHB4IiwxLCJlbWJlZGRpbmdzLWJ1dHRvbiIsMywibmdDbGFzcyIsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtYXQtY2hpcCIsMCksVm0oInJlbW92ZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZW1vdmUuZW1pdChuLm1ldHJpYyl9KSksUXAoMSxBeXQsMSw0LCJtYXQtaWNvbiIsMSksa3UoMiksUm0oMywiZGl2IiwyKSxWbSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCl9KSksa3UoNCwiIFsgIiksUm0oNSwiaW5wdXQiLDMpLFZtKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5mb2N1c01pbj0hMH0pKSgiZm9jdXNvdXQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uZm9jdXNNaW49ITF9KSksQW0oKSxrdSg2LCIgOyAiKSxSbSg3LCJpbnB1dCIsMyksVm0oImZvY3VzIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmZvY3VzTWF4PSEwfSkpKCJmb2N1c291dCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5mb2N1c01heD0hMX0pKSxBbSgpLGt1KDgsIiBdICIpLEFtKCksVG0oOSwibWF0LWljb24iLDQpLEFtKCkpLDImZSYmKHJjKDEpLERtKCJuZ0lmIixuLmhhc0VtYmVkZGluZ3NEYXRhKSxyYygxKSxEdSgiICIsbi5tZXRyaWMsIiAiKSxyYygzKSxEbSgidmFsdWUiLG4uZmlsdGVyVmFsdWVzLm1pbikoIm1hdFRvb2x0aXAiLG4uZ2V0RXJyb3JEZXNjcmlwdGlvbihuLm1pbkZvcm1Db250cm9sLmVycm9ycykpKCJtYXRUb29sdGlwRGlzYWJsZWQiLCFuLm1pbkZvcm1Db250cm9sLmludmFsaWQpKCJuZ1N0eWxlIixNaCgxNCxUeXQsbi5mb2N1c01pbj8iMTAwcHgiOm4ubWluRm9ybUNvbnRyb2wudmFsdWUudG9TdHJpbmcoKS5sZW5ndGgrImNoIikpKCJuZ0NsYXNzIixNaCgxNixOeXQsIW4ubWluRm9ybUNvbnRyb2wudmFsaWQpKSgiZm9ybUNvbnRyb2wiLG4ubWluRm9ybUNvbnRyb2wpLHJjKDIpLERtKCJ2YWx1ZSIsbi5maWx0ZXJWYWx1ZXMubWF4KSgibWF0VG9vbHRpcCIsbi5nZXRFcnJvckRlc2NyaXB0aW9uKG4ubWF4Rm9ybUNvbnRyb2wuZXJyb3JzKSkoIm1hdFRvb2x0aXBEaXNhYmxlZCIsIW4ubWF4Rm9ybUNvbnRyb2wuaW52YWxpZCkoIm5nU3R5bGUiLE1oKDE4LFR5dCxuLmZvY3VzTWF4PyIxMDBweCI6bi5tYXhGb3JtQ29udHJvbC52YWx1ZS50b1N0cmluZygpLmxlbmd0aCsiY2giKSkoIm5nQ2xhc3MiLE1oKDIwLE55dCwhbi5tYXhGb3JtQ29udHJvbC52YWxpZCkpKCJmb3JtQ29udHJvbCIsbi5tYXhGb3JtQ29udHJvbCkpfSxkaXJlY3RpdmVzOltfeXQsZE0sVlYsRlEsQ00sYU0seGoseFUsRFcsQ3l0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmlsdGVyLWNoaXBbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7bWFyZ2luLWxlZnQ6NXB4fS5tZXRyaWMtYXJpdGhtZXRpYy1lbGVtZW50LXJhbmdlW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2ZvbnQtc2l6ZTouOGVtO2hlaWdodDozMHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bGluZS1oZWlnaHQ6MzBweDtwYWRkaW5nOjAgNXB4O21hcmdpbi1sZWZ0OjVweH0uaW5wdXQtZmllbGRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxLjFlbTt0cmFuc2l0aW9uOndpZHRoIDFzfS5pbnB1dC1maWVsZFtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xMik7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lfS52YWx1ZS1pbnZhbGlkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZjQ0MzM2fS5lbWJlZGRpbmctc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmNTdjMDA7b3BhY2l0eToxfS5lbWJlZGRpbmctdW5zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNH0uZW1iZWRkaW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7bWFyZ2luLXJpZ2h0OjhweDtjdXJzb3I6cG9pbnRlcn0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoenl0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpYy1hcml0aG1ldGljLWVsZW1lbnQtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9tZXRyaWNfYXJpdGhtZXRpY19lbGVtZW50X2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL21ldHJpY19hcml0aG1ldGljX2VsZW1lbnRfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse21ldHJpYzpbe3R5cGU6eHl9XSxmaWx0ZXJWYWx1ZXM6W3t0eXBlOnh5fV0saGFzRW1iZWRkaW5nc0RhdGE6W3t0eXBlOnh5fV0sZW1iZWRkaW5nc01ldHJpYzpbe3R5cGU6eHl9XSxvblJlbW92ZTpbe3R5cGU6T3l9XSxvblNlbGVjdDpbe3R5cGU6T3l9XSxvbkZpbHRlckNoYW5nZTpbe3R5cGU6T3l9XX0pO2NsYXNzIEl5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5maWx0ZXJWYWx1ZXMkPXRoaXMuc3RvcmUucGlwZShGdyhnYnQpKS5waXBlKEl0KCh0PT57Y29uc3QgZT10W3RoaXMubWV0cmljXTtyZXR1cm4gZT97bWluOmUuaW5jbHVkZU5hTj8iTmFOIjp0aGlzLnJvdW5kVG9UaHJlZURlY2ltYWxQb2ludHMoZS5taW4pLG1heDplLm1heDxlLm1pbj8iTmFOIjp0aGlzLnJvdW5kVG9UaHJlZURlY2ltYWxQb2ludHMoZS5tYXgpfTp7bWluOi0xLG1heDoxfX0pKSksdGhpcy5oYXNFbWJlZGRpbmdzRGF0YSQ9dGhpcy5zdG9yZS5waXBlKEZ3KGxidCkpLnBpcGUoSXQoKHQ9PnZvaWQgMCE9PXQpKSksdGhpcy5lbWJlZGRpbmdzTWV0cmljJD10aGlzLnN0b3JlLnBpcGUoRncoT2J0KSl9cmVtb3ZlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goTGJ0KHttZXRyaWM6dH0pKX1zZWxlY3QodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChaYnQoe21ldHJpYzp0fSkpfWZpbHRlckNoYW5nZSh0KXtjb25zdCBlPWlzTmFOKHQubWluKT8tMTp0Lm1pbixuPWlzTmFOKHQubWF4KT8tMjp0Lm1heCxvPWlzTmFOKHQubWluKTt0aGlzLnN0b3JlLmRpc3BhdGNoKEJidCh7bWV0cmljOnRoaXMubWV0cmljLG1heDpuLG1pbjplLGluY2x1ZGVOYU46b30pKX1yb3VuZFRvVGhyZWVEZWNpbWFsUG9pbnRzKHQpe3JldHVybiBNYXRoLnJvdW5kKDFlMyoodCtOdW1iZXIuRVBTSUxPTikpLzFlM319SXl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJeXQpKFNtKEl3KSl9LEl5dC7JtWNtcD10byh7dHlwZTpJeXQsc2VsZWN0b3JzOltbIm5wbWktbWV0cmljLWFyaXRobWV0aWMtZWxlbWVudCJdXSxpbnB1dHM6e21ldHJpYzoibWV0cmljIn0sZGVjbHM6NCx2YXJzOjEwLGNvbnN0czpbWzMsIm1ldHJpYyIsImZpbHRlclZhbHVlcyIsImhhc0VtYmVkZGluZ3NEYXRhIiwiZW1iZWRkaW5nc01ldHJpYyIsIm9uUmVtb3ZlIiwib25TZWxlY3QiLCJvbkZpbHRlckNoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWV0cmljLWFyaXRobWV0aWMtZWxlbWVudC1jb21wb25lbnQiLDApLFZtKCJvblJlbW92ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ucmVtb3ZlKGUpfSkpKCJvblNlbGVjdCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uc2VsZWN0KGUpfSkpKCJvbkZpbHRlckNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uZmlsdGVyQ2hhbmdlKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFtKCkpLDImZSYmRG0oIm1ldHJpYyIsbi5tZXRyaWMpKCJmaWx0ZXJWYWx1ZXMiLFRoKDEsNCxuLmZpbHRlclZhbHVlcyQpKSgiaGFzRW1iZWRkaW5nc0RhdGEiLFRoKDIsNixuLmhhc0VtYmVkZGluZ3NEYXRhJCkpKCJlbWJlZGRpbmdzTWV0cmljIixUaCgzLDgsbi5lbWJlZGRpbmdzTWV0cmljJCkpfSxkaXJlY3RpdmVzOlt6eXRdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChJeXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1tZXRyaWMtYXJpdGhtZXRpYy1lbGVtZW50Iix0ZW1wbGF0ZTonXG4gICAgPG1ldHJpYy1hcml0aG1ldGljLWVsZW1lbnQtY29tcG9uZW50XG4gICAgICBbbWV0cmljXT0ibWV0cmljIlxuICAgICAgW2ZpbHRlclZhbHVlc109ImZpbHRlclZhbHVlcyQgfCBhc3luYyJcbiAgICAgIFtoYXNFbWJlZGRpbmdzRGF0YV09Imhhc0VtYmVkZGluZ3NEYXRhJCB8IGFzeW5jIlxuICAgICAgW2VtYmVkZGluZ3NNZXRyaWNdPSJlbWJlZGRpbmdzTWV0cmljJCB8IGFzeW5jIlxuICAgICAgKG9uUmVtb3ZlKT0icmVtb3ZlKCRldmVudCkiXG4gICAgICAob25TZWxlY3QpPSJzZWxlY3QoJGV2ZW50KSJcbiAgICAgIChvbkZpbHRlckNoYW5nZSk9ImZpbHRlckNoYW5nZSgkZXZlbnQpIlxuICAgID48L21ldHJpYy1hcml0aG1ldGljLWVsZW1lbnQtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSkse21ldHJpYzpbe3R5cGU6eHl9XX0pO2NsYXNzIEh5dHtjb25zdHJ1Y3Rvcigpe3RoaXMuT3BlcmF0b3I9JGh0fX1mdW5jdGlvbiBGeXQodCxlKXsxJnQmJlRtKDAsIm5wbWktbWV0cmljLWFyaXRobWV0aWMtZWxlbWVudCIsNCksMiZ0JiZEbSgibWV0cmljIixZbSgpLiRpbXBsaWNpdC5tZXRyaWMpfWZ1bmN0aW9uIEx5dCh0LGUpezEmdCYmVG0oMCwibnBtaS1tZXRyaWMtYXJpdGhtZXRpYy1vcGVyYXRvciIsNSksMiZ0JiZEbSgib3BlcmF0b3IiLFltKCkuJGltcGxpY2l0Lm9wZXJhdG9yKX1mdW5jdGlvbiBCeXQodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiKSxRcCgxLEZ5dCwxLDEsIm5wbWktbWV0cmljLWFyaXRobWV0aWMtZWxlbWVudCIsMiksUXAoMixMeXQsMSwxLCJucG1pLW1ldHJpYy1hcml0aG1ldGljLW9wZXJhdG9yIiwzKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgpO3JjKDEpLERtKCJuZ0lmIix0LmtpbmQ9PT1uLkFyaXRobWV0aWNLaW5kLk1FVFJJQykscmMoMSksRG0oIm5nSWYiLHQua2luZD09PW4uQXJpdGhtZXRpY0tpbmQuT1BFUkFUT1IpfX1IeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEh5dCl9LEh5dC7JtWNtcD10byh7dHlwZTpIeXQsc2VsZWN0b3JzOltbIm5wbWktbWV0cmljLWFyaXRobWV0aWMtb3BlcmF0b3IiXV0saW5wdXRzOntvcGVyYXRvcjoib3BlcmF0b3IifSxkZWNsczoyLHZhcnM6MSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWF0LWNoaXAiKSxrdSgxKSxBbSgpKSwyJmUmJihyYygxKSxEdSgiICIsbi5vcGVyYXRvcj09PW4uT3BlcmF0b3IuQU5EPyImIjoiIiwiICIpKX0sZGlyZWN0aXZlczpbX3l0XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEh5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLW1ldHJpYy1hcml0aG1ldGljLW9wZXJhdG9yIix0ZW1wbGF0ZToiXG4gICAgPG1hdC1jaGlwPlxuICAgICAge3sgb3BlcmF0b3IgPT09IE9wZXJhdG9yLkFORCA/ICcmJyA6ICcnIH19XG4gICAgPC9tYXQtY2hpcD5cbiAgIixjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtvcGVyYXRvcjpbe3R5cGU6eHl9XX0pO2NsYXNzIFZ5dHtjb25zdHJ1Y3Rvcigpe3RoaXMuQXJpdGhtZXRpY0tpbmQ9dGJ0fX1WeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZ5dCl9LFZ5dC7JtWNtcD10byh7dHlwZTpWeXQsc2VsZWN0b3JzOltbIm1ldHJpYy1hcml0aG1ldGljLWNvbXBvbmVudCJdXSxpbnB1dHM6e21ldHJpY0FyaXRobWV0aWM6Im1ldHJpY0FyaXRobWV0aWMifSxkZWNsczoyLHZhcnM6Mixjb25zdHM6W1szLCJzZWxlY3RhYmxlIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJtZXRyaWMiLDQsIm5nSWYiXSxbMywib3BlcmF0b3IiLDQsIm5nSWYiXSxbMywibWV0cmljIl0sWzMsIm9wZXJhdG9yIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtYXQtY2hpcC1saXN0IiwwKSxRcCgxLEJ5dCwzLDIsImRpdiIsMSksQW0oKSksMiZlJiYoRG0oInNlbGVjdGFibGUiLCExKSxyYygxKSxEbSgibmdGb3JPZiIsbi5tZXRyaWNBcml0aG1ldGljKSl9LGRpcmVjdGl2ZXM6W1B5dCxsTSxkTSxJeXQsSHl0XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWeXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljLWFyaXRobWV0aWMtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9tZXRyaWNfYXJpdGhtZXRpY19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9tZXRyaWNfYXJpdGhtZXRpY19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7bWV0cmljQXJpdGhtZXRpYzpbe3R5cGU6eHl9XX0pO2NsYXNzIGp5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5tZXRyaWNBcml0aG1ldGljJD10aGlzLnN0b3JlLnBpcGUoRncoZmJ0KSl9fWp5dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8anl0KShTbShJdykpfSxqeXQuybVjbXA9dG8oe3R5cGU6anl0LHNlbGVjdG9yczpbWyJucG1pLW1ldHJpYy1hcml0aG1ldGljIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsIm1ldHJpY0FyaXRobWV0aWMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsIm1ldHJpYy1hcml0aG1ldGljLWNvbXBvbmVudCIsMCksQWgoMSwiYXN5bmMiKSksMiZlJiZEbSgibWV0cmljQXJpdGhtZXRpYyIsVGgoMSwxLG4ubWV0cmljQXJpdGhtZXRpYyQpKX0sZGlyZWN0aXZlczpbVnl0XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoanl0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktbWV0cmljLWFyaXRobWV0aWMiLHRlbXBsYXRlOidcbiAgICA8bWV0cmljLWFyaXRobWV0aWMtY29tcG9uZW50XG4gICAgICBbbWV0cmljQXJpdGhtZXRpY109Im1ldHJpY0FyaXRobWV0aWMkIHwgYXN5bmMiXG4gICAgPjwvbWV0cmljLWFyaXRobWV0aWMtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgVXl0e31mdW5jdGlvbiBHeXQodCxlLG4pe2lmKG4pcmV0dXJuIHQ7Y29uc3Qgbz1PYmplY3QuYXNzaWduKHt9LHQpO3JldHVybiBlLmZvckVhY2goKHQ9PmRlbGV0ZSBvW3RdKSksb31VeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFV5dCl9LFV5dC7JtWNtcD10byh7dHlwZTpVeXQsc2VsZWN0b3JzOltbIm5wbWktZGF0YS1zZWxlY3Rpb24iXV0sZGVjbHM6NCx2YXJzOjAsY29uc3RzOltbMSwiZGF0YS1zZWxlY3Rpb24iXSxbMSwibWV0cmljcy1zZWxlY3RvciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxUbSgxLCJucG1pLW1ldHJpYy1zZWFyY2giLDEpLFRtKDIsIm5wbWktcmVzdWx0cy1kb3dubG9hZCIpLEFtKCksVG0oMywibnBtaS1tZXRyaWMtYXJpdGhtZXRpYyIpKX0sZGlyZWN0aXZlczpbbHl0LG15dCxqeXRdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO3BhZGRpbmc6MTBweCAyMHB4fS5kYXRhLXNlbGVjdGlvbltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubWV0cmljcy1zZWxlY3Rvcltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxIDF9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFV5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLWRhdGEtc2VsZWN0aW9uIix0ZW1wbGF0ZVVybDoiLi9kYXRhX3NlbGVjdGlvbl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9kYXRhX3NlbGVjdGlvbl9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCxudWxsKTtjb25zdCBXeXQ9WyJjaGFydCJdO2NsYXNzIFl5dHtjb25zdHJ1Y3Rvcigpe3RoaXMub25SZW1vdmU9bmV3IExoLHRoaXMub25VcGRhdGVGaWx0ZXI9bmV3IExoLHRoaXMuaGVpZ2h0PTMwMCx0aGlzLmNoYXJ0V2lkdGg9MCx0aGlzLmNoYXJ0SGVpZ2h0PTAsdGhpcy5kcmF3SGVpZ2h0PTAsdGhpcy5kcmF3V2lkdGg9MCx0aGlzLm1hcmdpbj17dG9wOjIwLHJpZ2h0OjEwLGJvdHRvbToyMCxsZWZ0OjEwfSx0aGlzLmRyYXdNYXJnaW49e3RvcDowLHJpZ2h0OjAsYm90dG9tOjIwLGxlZnQ6MjB9LHRoaXMuYnJ1c2g9KGZ1bmN0aW9uIHQoKXtyZXR1cm4oZnVuY3Rpb24gdChlKXt2YXIgbixvPW90dCxpPW50dCxhPWl0dCxyPSEwLHM9SDUoInN0YXJ0IiwiYnJ1c2giLCJlbmQiKSxsPTY7ZnVuY3Rpb24gYyh0KXt2YXIgbj10LnByb3BlcnR5KCJfX2JydXNoIixoKS5zZWxlY3RBbGwoIi5vdmVybGF5IikuZGF0YShbZXR0KCJvdmVybGF5IildKTtuLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJvdmVybGF5IikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5hdHRyKCJjdXJzb3IiLEs5Lm92ZXJsYXkpLm1lcmdlKG4pLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9YXR0KHRoaXMpLmV4dGVudDtKNCh0aGlzKS5hdHRyKCJ4Iix0WzBdWzBdKS5hdHRyKCJ5Iix0WzBdWzFdKS5hdHRyKCJ3aWR0aCIsdFsxXVswXS10WzBdWzBdKS5hdHRyKCJoZWlnaHQiLHRbMV1bMV0tdFswXVsxXSl9KSksdC5zZWxlY3RBbGwoIi5zZWxlY3Rpb24iKS5kYXRhKFtldHQoInNlbGVjdGlvbiIpXSkuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsInNlbGVjdGlvbiIpLmF0dHIoImN1cnNvciIsSzkuc2VsZWN0aW9uKS5hdHRyKCJmaWxsIiwiIzc3NyIpLmF0dHIoImZpbGwtb3BhY2l0eSIsLjMpLmF0dHIoInN0cm9rZSIsIiNmZmYiKS5hdHRyKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIik7dmFyIG89dC5zZWxlY3RBbGwoIi5oYW5kbGUiKS5kYXRhKGUuaGFuZGxlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pKTtvLmV4aXQoKS5yZW1vdmUoKSxvLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLChmdW5jdGlvbih0KXtyZXR1cm4iaGFuZGxlIGhhbmRsZS0tIit0LnR5cGV9KSkuYXR0cigiY3Vyc29yIiwoZnVuY3Rpb24odCl7cmV0dXJuIEs5W3QudHlwZV19KSksdC5lYWNoKGQpLmF0dHIoImZpbGwiLCJub25lIikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5vbigibW91c2Vkb3duLmJydXNoIix1KS5maWx0ZXIoYSkub24oInRvdWNoc3RhcnQuYnJ1c2giLHUpLm9uKCJ0b3VjaG1vdmUuYnJ1c2giLGYpLm9uKCJ0b3VjaGVuZC5icnVzaCB0b3VjaGNhbmNlbC5icnVzaCIsZykuc3R5bGUoInRvdWNoLWFjdGlvbiIsIm5vbmUiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpfWZ1bmN0aW9uIGQoKXt2YXIgdD1KNCh0aGlzKSxlPWF0dCh0aGlzKS5zZWxlY3Rpb247ZT8odC5zZWxlY3RBbGwoIi5zZWxlY3Rpb24iKS5zdHlsZSgiZGlzcGxheSIsbnVsbCkuYXR0cigieCIsZVswXVswXSkuYXR0cigieSIsZVswXVsxXSkuYXR0cigid2lkdGgiLGVbMV1bMF0tZVswXVswXSkuYXR0cigiaGVpZ2h0IixlWzFdWzFdLWVbMF1bMV0pLHQuc2VsZWN0QWxsKCIuaGFuZGxlIikuc3R5bGUoImRpc3BsYXkiLG51bGwpLmF0dHIoIngiLChmdW5jdGlvbih0KXtyZXR1cm4iZSI9PT10LnR5cGVbdC50eXBlLmxlbmd0aC0xXT9lWzFdWzBdLWwvMjplWzBdWzBdLWwvMn0pKS5hdHRyKCJ5IiwoZnVuY3Rpb24odCl7cmV0dXJuInMiPT09dC50eXBlWzBdP2VbMV1bMV0tbC8yOmVbMF1bMV0tbC8yfSkpLmF0dHIoIndpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIm4iPT09dC50eXBlfHwicyI9PT10LnR5cGU/ZVsxXVswXS1lWzBdWzBdK2w6bH0pKS5hdHRyKCJoZWlnaHQiLChmdW5jdGlvbih0KXtyZXR1cm4iZSI9PT10LnR5cGV8fCJ3Ij09PXQudHlwZT9lWzFdWzFdLWVbMF1bMV0rbDpsfSkpKTp0LnNlbGVjdEFsbCgiLnNlbGVjdGlvbiwuaGFuZGxlIikuc3R5bGUoImRpc3BsYXkiLCJub25lIikuYXR0cigieCIsbnVsbCkuYXR0cigieSIsbnVsbCkuYXR0cigid2lkdGgiLG51bGwpLmF0dHIoImhlaWdodCIsbnVsbCl9ZnVuY3Rpb24gcCh0LGUsbil7dmFyIG89dC5fX2JydXNoLmVtaXR0ZXI7cmV0dXJuIW98fG4mJm8uY2xlYW4/bmV3IG0odCxlLG4pOm99ZnVuY3Rpb24gbSh0LGUsbil7dGhpcy50aGF0PXQsdGhpcy5hcmdzPWUsdGhpcy5zdGF0ZT10Ll9fYnJ1c2gsdGhpcy5hY3RpdmU9MCx0aGlzLmNsZWFuPW59ZnVuY3Rpb24gdSgpe2lmKCghbnx8TDQudG91Y2hlcykmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdCxvLGEscyxsLGMsbSx1LGYsZyxoLGI9dGhpcyx5PUw0LnRhcmdldC5fX2RhdGFfXy50eXBlLF89InNlbGVjdGlvbiI9PT0ociYmTDQubWV0YUtleT95PSJvdmVybGF5Ijp5KT9WOTpyJiZMNC5hbHRLZXk/Rzk6VTksQz1lPT09WDk/bnVsbDokOVt5XSxNPWU9PT1aOT9udWxsOnR0dFt5XSx2PWF0dChiKSx4PXYuZXh0ZW50LE89di5zZWxlY3Rpb24sUD14WzBdWzBdLHc9eFswXVsxXSxrPXhbMV1bMF0sUz14WzFdWzFdLEQ9MCxFPTAsUj1DJiZNJiZyJiZMNC5zaGlmdEtleSxBPUw0LnRvdWNoZXM/cTkoTDQuY2hhbmdlZFRvdWNoZXNbMF0uaWRlbnRpZmllcik6dDYsVD1BKGIpLE49VCx6PXAoYixhcmd1bWVudHMsITApLmJlZm9yZXN0YXJ0KCk7Im92ZXJsYXkiPT09eT8oTyYmKGY9ITApLHYuc2VsZWN0aW9uPU89W1t0PWU9PT1YOT9QOlRbMF0sYT1lPT09Wjk/dzpUWzFdXSxbbD1lPT09WDk/azp0LG09ZT09PVo5P1M6YV1dKToodD1PWzBdWzBdLGE9T1swXVsxXSxsPU9bMV1bMF0sbT1PWzFdWzFdKSxvPXQscz1hLGM9bCx1PW07dmFyIEk9SjQoYikuYXR0cigicG9pbnRlci1ldmVudHMiLCJub25lIiksSD1JLnNlbGVjdEFsbCgiLm92ZXJsYXkiKS5hdHRyKCJjdXJzb3IiLEs5W3ldKTtpZihMNC50b3VjaGVzKXoubW92ZWQ9TCx6LmVuZGVkPVY7ZWxzZXt2YXIgRj1KNChMNC52aWV3KS5vbigibW91c2Vtb3ZlLmJydXNoIixMLCEwKS5vbigibW91c2V1cC5icnVzaCIsViwhMCk7ciYmRi5vbigia2V5ZG93bi5icnVzaCIsaiwhMCkub24oImtleXVwLmJydXNoIixVLCEwKSxuNihMNC52aWV3KX1IOSgpLEk4KGIpLGQuY2FsbChiKSx6LnN0YXJ0KCl9ZnVuY3Rpb24gTCgpe3ZhciB0PUEoYik7IVJ8fGd8fGh8fChNYXRoLmFicyh0WzBdLU5bMF0pPk1hdGguYWJzKHRbMV0tTlsxXSk/aD0hMDpnPSEwKSxOPXQsZj0hMCxGOSgpLEIoKX1mdW5jdGlvbiBCKCl7dmFyIGU7c3dpdGNoKEQ9TlswXS1UWzBdLEU9TlsxXS1UWzFdLF8pe2Nhc2Ugajk6Y2FzZSBWOTpDJiYoRD1NYXRoLm1heChQLXQsTWF0aC5taW4oay1sLEQpKSxvPXQrRCxjPWwrRCksTSYmKEU9TWF0aC5tYXgody1hLE1hdGgubWluKFMtbSxFKSkscz1hK0UsdT1tK0UpO2JyZWFrO2Nhc2UgVTk6QzwwPyhEPU1hdGgubWF4KFAtdCxNYXRoLm1pbihrLXQsRCkpLG89dCtELGM9bCk6Qz4wJiYoRD1NYXRoLm1heChQLWwsTWF0aC5taW4oay1sLEQpKSxvPXQsYz1sK0QpLE08MD8oRT1NYXRoLm1heCh3LWEsTWF0aC5taW4oUy1hLEUpKSxzPWErRSx1PW0pOk0+MCYmKEU9TWF0aC5tYXgody1tLE1hdGgubWluKFMtbSxFKSkscz1hLHU9bStFKTticmVhaztjYXNlIEc5OkMmJihvPU1hdGgubWF4KFAsTWF0aC5taW4oayx0LUQqQykpLGM9TWF0aC5tYXgoUCxNYXRoLm1pbihrLGwrRCpDKSkpLE0mJihzPU1hdGgubWF4KHcsTWF0aC5taW4oUyxhLUUqTSkpLHU9TWF0aC5tYXgodyxNYXRoLm1pbihTLG0rRSpNKSkpfWM8byYmKEMqPS0xLGU9dCx0PWwsbD1lLGU9byxvPWMsYz1lLHkgaW4gSjkmJkguYXR0cigiY3Vyc29yIixLOVt5PUo5W3ldXSkpLHU8cyYmKE0qPS0xLGU9YSxhPW0sbT1lLGU9cyxzPXUsdT1lLHkgaW4gUTkmJkguYXR0cigiY3Vyc29yIixLOVt5PVE5W3ldXSkpLHYuc2VsZWN0aW9uJiYoTz12LnNlbGVjdGlvbiksZyYmKG89T1swXVswXSxjPU9bMV1bMF0pLGgmJihzPU9bMF1bMV0sdT1PWzFdWzFdKSxPWzBdWzBdPT09byYmT1swXVsxXT09PXMmJk9bMV1bMF09PT1jJiZPWzFdWzFdPT09dXx8KHYuc2VsZWN0aW9uPVtbbyxzXSxbYyx1XV0sZC5jYWxsKGIpLHouYnJ1c2goKSl9ZnVuY3Rpb24gVigpe2lmKEg5KCksTDQudG91Y2hlcyl7aWYoTDQudG91Y2hlcy5sZW5ndGgpcmV0dXJuO24mJmNsZWFyVGltZW91dChuKSxuPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7bj1udWxsfSksNTAwKX1lbHNlIG82KEw0LnZpZXcsZiksRi5vbigia2V5ZG93bi5icnVzaCBrZXl1cC5icnVzaCBtb3VzZW1vdmUuYnJ1c2ggbW91c2V1cC5icnVzaCIsbnVsbCk7SS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLEguYXR0cigiY3Vyc29yIixLOS5vdmVybGF5KSx2LnNlbGVjdGlvbiYmKE89di5zZWxlY3Rpb24pLHJ0dChPKSYmKHYuc2VsZWN0aW9uPW51bGwsZC5jYWxsKGIpKSx6LmVuZCgpfWZ1bmN0aW9uIGooKXtzd2l0Y2goTDQua2V5Q29kZSl7Y2FzZSAxNjpSPUMmJk07YnJlYWs7Y2FzZSAxODpfPT09VTkmJihDJiYobD1jLUQqQyx0PW8rRCpDKSxNJiYobT11LUUqTSxhPXMrRSpNKSxfPUc5LEIoKSk7YnJlYWs7Y2FzZSAzMjpfIT09VTkmJl8hPT1HOXx8KEM8MD9sPWMtRDpDPjAmJih0PW8tRCksTTwwP209dS1FOk0+MCYmKGE9cy1FKSxfPWo5LEguYXR0cigiY3Vyc29yIixLOS5zZWxlY3Rpb24pLEIoKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59RjkoKX1mdW5jdGlvbiBVKCl7c3dpdGNoKEw0LmtleUNvZGUpe2Nhc2UgMTY6UiYmKGc9aD1SPSExLEIoKSk7YnJlYWs7Y2FzZSAxODpfPT09RzkmJihDPDA/bD1jOkM+MCYmKHQ9byksTTwwP209dTpNPjAmJihhPXMpLF89VTksQigpKTticmVhaztjYXNlIDMyOl89PT1qOSYmKEw0LmFsdEtleT8oQyYmKGw9Yy1EKkMsdD1vK0QqQyksTSYmKG09dS1FKk0sYT1zK0UqTSksXz1HOSk6KEM8MD9sPWM6Qz4wJiYodD1vKSxNPDA/bT11Ok0+MCYmKGE9cyksXz1VOSksSC5hdHRyKCJjdXJzb3IiLEs5W3ldKSxCKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufUY5KCl9fWZ1bmN0aW9uIGYoKXtwKHRoaXMsYXJndW1lbnRzKS5tb3ZlZCgpfWZ1bmN0aW9uIGcoKXtwKHRoaXMsYXJndW1lbnRzKS5lbmRlZCgpfWZ1bmN0aW9uIGgoKXt2YXIgdD10aGlzLl9fYnJ1c2h8fHtzZWxlY3Rpb246bnVsbH07cmV0dXJuIHQuZXh0ZW50PVk5KG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKSx0LmRpbT1lLHR9cmV0dXJuIGMubW92ZT1mdW5jdGlvbih0LG4pe3Quc2VsZWN0aW9uP3Qub24oInN0YXJ0LmJydXNoIiwoZnVuY3Rpb24oKXtwKHRoaXMsYXJndW1lbnRzKS5iZWZvcmVzdGFydCgpLnN0YXJ0KCl9KSkub24oImludGVycnVwdC5icnVzaCBlbmQuYnJ1c2giLChmdW5jdGlvbigpe3AodGhpcyxhcmd1bWVudHMpLmVuZCgpfSkpLnR3ZWVuKCJicnVzaCIsKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxvPXQuX19icnVzaCxpPXAodCxhcmd1bWVudHMpLGE9by5zZWxlY3Rpb24scj1lLmlucHV0KCJmdW5jdGlvbiI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOm4sby5leHRlbnQpLHM9WjcoYSxyKTtmdW5jdGlvbiBsKGUpe28uc2VsZWN0aW9uPTE9PT1lJiZudWxsPT09cj9udWxsOnMoZSksZC5jYWxsKHQpLGkuYnJ1c2goKX1yZXR1cm4gbnVsbCE9PWEmJm51bGwhPT1yP2w6bCgxKX0pKTp0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxvPWFyZ3VtZW50cyxpPXQuX19icnVzaCxhPWUuaW5wdXQoImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseSh0LG8pOm4saS5leHRlbnQpLHI9cCh0LG8pLmJlZm9yZXN0YXJ0KCk7STgodCksaS5zZWxlY3Rpb249bnVsbD09PWE/bnVsbDphLGQuY2FsbCh0KSxyLnN0YXJ0KCkuYnJ1c2goKS5lbmQoKX0pKX0sYy5jbGVhcj1mdW5jdGlvbih0KXtjLm1vdmUodCxudWxsKX0sbS5wcm90b3R5cGU9e2JlZm9yZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLnN0YXRlLmVtaXR0ZXI9dGhpcyx0aGlzLnN0YXJ0aW5nPSEwKSx0aGlzfSxzdGFydDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0aW5nPyh0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdCgic3RhcnQiKSk6dGhpcy5lbWl0KCJicnVzaCIpLHRoaXN9LGJydXNoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1pdCgiYnJ1c2giKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXshKGZ1bmN0aW9uIG4odCxlLG8saSl7dmFyIGE9TDQ7dC5zb3VyY2VFdmVudD1MNCxMND10O3RyeXtlLmFwcGx5KG8saSl9ZmluYWxseXtMND1hfX0pKG5ldyBJOShjLHQsZS5vdXRwdXQodGhpcy5zdGF0ZS5zZWxlY3Rpb24pKSxzLmFwcGx5LHMsW3QsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sYy5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp6OShZOSh0KSksYyk6b30sYy5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp6OSghIXQpLGMpOml9LGMudG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ejkoISF0KSxjKTphfSxjLmhhbmRsZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9K3QsYyk6bH0sYy5rZXlNb2RpZmllcnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ISF0LGMpOnJ9LGMub249ZnVuY3Rpb24oKXt2YXIgdD1zLm9uLmFwcGx5KHMsYXJndW1lbnRzKTtyZXR1cm4gdD09PXM/Yzp0fSxjfSkoWDkpfSkoKSx0aGlzLm1heEJpblNpemU9MCx0aGlzLmFyZWE9KGZ1bmN0aW9uIGUoKXt2YXIgdD14b3QsZT1udWxsLG49Q290KDApLG89T290LGk9Q290KCEwKSxhPW51bGwscj12b3Qscz1udWxsO2Z1bmN0aW9uIGwobCl7dmFyIGMsZCxwLG0sdSxmPWwubGVuZ3RoLGc9ITEsaD1uZXcgQXJyYXkoZiksYj1uZXcgQXJyYXkoZik7Zm9yKG51bGw9PWEmJihzPXIodT1tdHQoKSkpLGM9MDtjPD1mOysrYyl7aWYoIShjPGYmJmkobT1sW2NdLGMsbCkpPT09ZylpZihnPSFnKWQ9YyxzLmFyZWFTdGFydCgpLHMubGluZVN0YXJ0KCk7ZWxzZXtmb3Iocy5saW5lRW5kKCkscy5saW5lU3RhcnQoKSxwPWMtMTtwPj1kOy0tcClzLnBvaW50KGhbcF0sYltwXSk7cy5saW5lRW5kKCkscy5hcmVhRW5kKCl9ZyYmKGhbY109K3QobSxjLGwpLGJbY109K24obSxjLGwpLHMucG9pbnQoZT8rZShtLGMsbCk6aFtjXSxvPytvKG0sYyxsKTpiW2NdKSl9aWYodSlyZXR1cm4gcz1udWxsLHUrIiJ8fG51bGx9ZnVuY3Rpb24gYygpe3JldHVybiBQb3QoKS5kZWZpbmVkKGkpLmN1cnZlKHIpLmNvbnRleHQoYSl9cmV0dXJuIGwueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOkNvdCgrbiksZT1udWxsLGwpOnR9LGwueDA9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpDb3QoK2UpLGwpOnR9LGwueDE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bnVsbD09dD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Q290KCt0KSxsKTplfSxsLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpDb3QoK3QpLG89bnVsbCxsKTpufSxsLnkwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Q290KCt0KSxsKTpufSxsLnkxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OkNvdCgrdCksbCk6b30sbC5saW5lWDA9bC5saW5lWTA9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngodCkueShuKX0sbC5saW5lWTE9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngodCkueShvKX0sbC5saW5lWDE9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngoZSkueShuKX0sbC5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Q290KCEhdCksbCk6aX0sbC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG51bGwhPWEmJihzPXIoYSkpLGwpOnJ9LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9hPXM9bnVsbDpzPXIoYT10KSxsKTphfSxsfSkoKS54MChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54U2NhbGVOdW0oLXQubGVuZ3RoKX0uYmluZCh0aGlzKSkueDEoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueFNjYWxlTnVtKHQubGVuZ3RoKX0uYmluZCh0aGlzKSkueShmdW5jdGlvbih0KXtyZXR1cm4gdC54MD09PS0xLzA/dGhpcy5jaGFydEhlaWdodC10aGlzLmRyYXdNYXJnaW4udG9wOnRoaXMueVNjYWxlKCh0LngxK3QueDApLzIpfS5iaW5kKHRoaXMpKS5jdXJ2ZShEb3QpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMudXBkYXRlRGltZW5zaW9ucygpLHRoaXMuc3ZnPUo0KHRoaXMuY2hhcnRDb250YWluZXIubmF0aXZlRWxlbWVudCkuc2VsZWN0KCJzdmciKSx0aGlzLm1haW5Db250YWluZXI9dGhpcy5zdmcuYXBwZW5kKCJnIikuYXR0cigidHJhbnNmb3JtIixgdHJhbnNsYXRlKCR7dGhpcy5tYXJnaW4ubGVmdH0sICR7dGhpcy5tYXJnaW4udG9wfSlgKSx0aGlzLmRyYXdDb250YWluZXI9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke3RoaXMuZHJhd01hcmdpbi5sZWZ0fSwgJHt0aGlzLmRyYXdNYXJnaW4udG9wfSlgKSx0aGlzLmRvdHNHcm91cD10aGlzLmRyYXdDb250YWluZXIuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJkb3RzR3JvdXAiKSx0aGlzLnlBeGlzR3JvdXA9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiYXhpcyBheGlzLS15IiksdGhpcy54QXhpc0dyb3VwPXRoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImF4aXMgYXhpcy0teCIpLHRoaXMubWlzY0dyb3VwPXRoaXMuZHJhd0NvbnRhaW5lci5hcHBlbmQoImciKSx0aGlzLnhTY2FsZT1WdHQoKS5wYWRkaW5nKC4wNSksdGhpcy54QXhpcz16NSh0aGlzLnhTY2FsZSksdGhpcy55U2NhbGU9ZWV0KCkucmFuZ2UoW3RoaXMuZHJhd0hlaWdodCwwXSksdGhpcy55QXhpcz0oZnVuY3Rpb24gdChlKXtyZXR1cm4gVDUoNCxlKX0pKHRoaXMueVNjYWxlKSx0aGlzLnhTY2FsZU51bT1lZXQoKSx0aGlzLmluaXRpYWxpemVCcnVzaCgpLHRoaXMuZHJhd01pc2MoKSx0aGlzLnJlZHJhdygpfW5nT25DaGFuZ2VzKHQpe3RoaXMuc3ZnJiZ0aGlzLnJlZHJhdygpfXJlZHJhdygpe3RoaXMudXBkYXRlRGltZW5zaW9ucygpLHRoaXMuc2V0TWF4QmluU2l6ZSgpLHRoaXMudXBkYXRlQXhlcygpLHRoaXMuZHJhdygpfXVwZGF0ZURpbWVuc2lvbnMoKXt0aGlzLmNoYXJ0V2lkdGg9dGhpcy53aWR0aC10aGlzLm1hcmdpbi5sZWZ0LXRoaXMubWFyZ2luLnJpZ2h0LHRoaXMuZHJhd1dpZHRoPXRoaXMuY2hhcnRXaWR0aC10aGlzLmRyYXdNYXJnaW4ubGVmdC10aGlzLmRyYXdNYXJnaW4ucmlnaHQsdGhpcy5jaGFydEhlaWdodD10aGlzLmhlaWdodC10aGlzLm1hcmdpbi50b3AtdGhpcy5tYXJnaW4uYm90dG9tLHRoaXMuZHJhd0hlaWdodD10aGlzLmNoYXJ0SGVpZ2h0LXRoaXMuZHJhd01hcmdpbi50b3AtdGhpcy5kcmF3TWFyZ2luLmJvdHRvbX1zZXRNYXhCaW5TaXplKCl7T2JqZWN0LnZhbHVlcyh0aGlzLmNoYXJ0RGF0YS52aW9saW5EYXRhKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10Lm1hcCgodD0+dC5sZW5ndGgpKSxuPU1hdGgubWF4KC4uLmUpO3RoaXMubWF4QmluU2l6ZT1NYXRoLm1heChuLHRoaXMubWF4QmluU2l6ZSl9KSl9dXBkYXRlQXhlcygpe3RoaXMueFNjYWxlLnJhbmdlKFswLHRoaXMuZHJhd1dpZHRoXSkuZG9tYWluKE9iamVjdC5rZXlzKHRoaXMuY2hhcnREYXRhLnZpb2xpbkRhdGEpKSx0aGlzLnlTY2FsZS5kb21haW4oW3RoaXMuY2hhcnREYXRhLmV4dHJlbWVzLm1pbix0aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5tYXhdKSx0aGlzLnhTY2FsZU51bS5yYW5nZShbMCx0aGlzLnhTY2FsZS5iYW5kd2lkdGgoKV0pLmRvbWFpbihbLXRoaXMubWF4QmluU2l6ZSx0aGlzLm1heEJpblNpemVdKX1pbml0aWFsaXplQnJ1c2goKXt0aGlzLmJydXNoLm9uKCJlbmQiLHRoaXMuYnJ1c2hNb3ZlZC5iaW5kKHRoaXMpKX1kcmF3KCl7dGhpcy5kcmF3QXhlcygpLHRoaXMuZHJhd1Bsb3QoKSx0aGlzLnJlZnJlc2hNaXNjKCksdGhpcy5yZWZyZXNoQnJ1c2goKX1kcmF3QXhlcygpe3RoaXMueUF4aXNHcm91cC5hdHRyKCJ0cmFuc2Zvcm0iLGB0cmFuc2xhdGUoJHt0aGlzLmRyYXdNYXJnaW4ubGVmdH0sXG4gICAgICAke3RoaXMuZHJhd01hcmdpbi50b3B9KWApLmNhbGwodGhpcy55QXhpcyksdGhpcy54QXhpc0dyb3VwLmF0dHIoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke3RoaXMuZHJhd01hcmdpbi5sZWZ0fSxcbiAgICAgICR7dGhpcy5kcmF3TWFyZ2luLnRvcCt0aGlzLmNoYXJ0SGVpZ2h0fSlgKS5jYWxsKHRoaXMueEF4aXMpfWRyYXdQbG90KCl7Y29uc3QgdD10aGlzLmRvdHNHcm91cC5zZWxlY3RBbGwoIi52aW9saW4tcGxvdCIpLmRhdGEoT2JqZWN0LmVudHJpZXModGhpcy5jaGFydERhdGEudmlvbGluRGF0YSkpO3QuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInZpb2xpbi1wbG90Iikuc3R5bGUoInN0cm9rZSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29sb3JTY2FsZSh0WzBdKX0uYmluZCh0aGlzKSkuc3R5bGUoImZpbGwiLGZ1bmN0aW9uKHQpe3JldHVybmAke3RoaXMuY29sb3JTY2FsZSh0WzBdKX0zM2B9LmJpbmQodGhpcykpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuYHRyYW5zbGF0ZSgke3RoaXMueFNjYWxlKHRbMF0pfSwgMClgfS5iaW5kKHRoaXMpKS5kYXR1bSgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMV19KSkuYXR0cigiZCIsdGhpcy5hcmVhKSx0LmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuYHRyYW5zbGF0ZSgke3RoaXMueFNjYWxlKHRbMF0pfSwgMClgfS5iaW5kKHRoaXMpKS5kYXR1bSgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMV19KSkuYXR0cigiZCIsdGhpcy5hcmVhKSx0LmV4aXQoKS5yZW1vdmUoKX1kcmF3TWlzYygpe3RoaXMuemVyb0xpbmU9dGhpcy5taXNjR3JvdXAuYXBwZW5kKCJsaW5lIikuc3R5bGUoInN0cm9rZSIsImJsYWNrIikuYXR0cigieDEiLDApLmF0dHIoInkxIix0aGlzLnlTY2FsZSgwKSkuYXR0cigieDIiLHRoaXMuZHJhd1dpZHRoKS5hdHRyKCJ5MiIsdGhpcy55U2NhbGUoMCkpLHRoaXMubmFuVGV4dD10aGlzLm1pc2NHcm91cC5hcHBlbmQoInRleHQiKS5zdHlsZSgiZmlsbCIsImJsYWNrIikudGV4dCgiTmFOIikuYXR0cigiZm9udC1zaXplIiwiMTBweCIpLmF0dHIoInRleHQtYW5jaG9yIiwiZW5kIikuYXR0cigiYWxpZ25tZW50LWJhc2VsaW5lIiwibWlkZGxlIikuYXR0cigieCIsLTUpLmF0dHIoInkiLHRoaXMuY2hhcnRIZWlnaHQtdGhpcy5kcmF3TWFyZ2luLnRvcCksdGhpcy5uYW5MaW5lPXRoaXMubWlzY0dyb3VwLmFwcGVuZCgibGluZSIpLnN0eWxlKCJzdHJva2UiLCJncmV5Iikuc3R5bGUoInN0cm9rZS1kYXNoYXJyYXkiLCIzLCAzIikuYXR0cigieDEiLDApLmF0dHIoInkxIix0aGlzLmNoYXJ0SGVpZ2h0LXRoaXMuZHJhd01hcmdpbi50b3ApLmF0dHIoIngyIix0aGlzLmRyYXdXaWR0aCkuYXR0cigieTIiLHRoaXMuY2hhcnRIZWlnaHQtdGhpcy5kcmF3TWFyZ2luLnRvcCl9cmVmcmVzaE1pc2MoKXt0aGlzLnplcm9MaW5lLmF0dHIoInkxIix0aGlzLnlTY2FsZSgwKSkuYXR0cigieDIiLHRoaXMuZHJhd1dpZHRoKS5hdHRyKCJ5MiIsdGhpcy55U2NhbGUoMCkpLHRoaXMubmFuVGV4dC5hdHRyKCJ5Iix0aGlzLmNoYXJ0SGVpZ2h0LXRoaXMuZHJhd01hcmdpbi50b3ApLHRoaXMubmFuTGluZS5hdHRyKCJ5MSIsdGhpcy5kcmF3SGVpZ2h0K3RoaXMuZHJhd01hcmdpbi50b3ApLmF0dHIoIngyIix0aGlzLmRyYXdXaWR0aCkuYXR0cigieTIiLHRoaXMuZHJhd0hlaWdodCt0aGlzLmRyYXdNYXJnaW4udG9wKX1yZWZyZXNoQnJ1c2goKXt0aGlzLmJydXNoLmV4dGVudChbWzAsMF0sW3RoaXMuZHJhd1dpZHRoLHRoaXMuZHJhd0hlaWdodCt0aGlzLm1hcmdpbi50b3BdXSk7Y29uc3QgdD1bMCx0aGlzLmRyYXdIZWlnaHQrdGhpcy5tYXJnaW4udG9wXTtpZih0aGlzLmZpbHRlci5tYXg8dGhpcy5maWx0ZXIubWluKXRbMF09dGhpcy5maWx0ZXIuaW5jbHVkZU5hTj90aGlzLnlTY2FsZSh0aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5taW4pOnRbMV07ZWxzZXtpZighdGhpcy5maWx0ZXIuaW5jbHVkZU5hTil7Y29uc3QgZT1NYXRoLm1heCh0aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5taW4sdGhpcy5maWx0ZXIubWluKTt0WzFdPXRoaXMueVNjYWxlKGUpfWNvbnN0IGU9TWF0aC5taW4odGhpcy5jaGFydERhdGEuZXh0cmVtZXMubWF4LHRoaXMuZmlsdGVyLm1heCk7dFswXT10aGlzLnlTY2FsZShlKX10aGlzLmRyYXdDb250YWluZXIuY2FsbCh0aGlzLmJydXNoKS5jYWxsKHRoaXMuYnJ1c2gubW92ZSx0KX1icnVzaE1vdmVkKCl7aWYoIUw0KXJldHVybjtpZighTDQuc291cmNlRXZlbnQpcmV0dXJuO2NvbnN0IHQ9TDQuc2VsZWN0aW9uO2lmKHQpe2xldCBlPSExLG49LTIsbz10aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5taW47dFswXTw9dGhpcy5kcmF3SGVpZ2h0K3RoaXMubWFyZ2luLnRvcCYmdFsxXT49dGhpcy5kcmF3SGVpZ2h0JiYoZT0hMCksdFswXTx0aGlzLmRyYXdIZWlnaHQmJihuPXRoaXMueVNjYWxlLmludmVydCh0WzBdKSksdFsxXTx0aGlzLmRyYXdIZWlnaHQmJihvPXRoaXMueVNjYWxlLmludmVydCh0WzFdKSksdGhpcy5vblVwZGF0ZUZpbHRlci5lbWl0KHttYXg6bixtaW46byxpbmNsdWRlTmFOOmV9KX1lbHNlIHRoaXMub25VcGRhdGVGaWx0ZXIuZW1pdCh7bWF4OjEsbWluOi0xLGluY2x1ZGVOYU46ITB9KX19WXl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxZeXQpfSxZeXQuybVjbXA9dG8oe3R5cGU6WXl0LHNlbGVjdG9yczpbWyJ2aW9saW4tZmlsdGVyLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoV3l0LDcsaGcpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uY2hhcnRDb250YWluZXI9dC5maXJzdCl9fSxpbnB1dHM6e21ldHJpY05hbWU6Im1ldHJpY05hbWUiLGZpbHRlcjoiZmlsdGVyIixjaGFydERhdGE6ImNoYXJ0RGF0YSIsd2lkdGg6IndpZHRoIixjb2xvclNjYWxlOiJjb2xvclNjYWxlIn0sb3V0cHV0czp7b25SZW1vdmU6Im9uUmVtb3ZlIixvblVwZGF0ZUZpbHRlcjoib25VcGRhdGVGaWx0ZXIifSxmZWF0dXJlczpbQm9dLGRlY2xzOjksdmFyczoxLGNvbnN0czpmdW5jdGlvbigpe2xldCB0O3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJSZW1vdmUgRmlsdGVyIik6JGxvY2FsaXplYDpMYWJlbCBmb3IgYSBidXR0b24gdGhhdCByZW1vdmVzIGEgbWV0cmljIGZpbHRlci7ikJ9hNmJmYWQ1OGJiMzYzZDVjODkxZDBhNTQ3NGIxZDc3ZWY5MGEzNGRh4pCfODQ1NDk2MTc5Nzc2MjkwNzYyNDpSZW1vdmUgRmlsdGVyYCxbWzEsImNoYXJ0LWNvbnRhaW5lciJdLFsidGl0bGUiLCJTaG93cyB0aGUgblBNSSB2YWx1ZSBkaXN0cmlidXRpb24gcGVyIHJ1bi4gUmFuZ2VzIG9mIHNlbGVjdGVkIHZhbHVlcyBjYW4gYmUgbWFuaXB1bGF0ZWQgYnkgbW9kaWZ5aW5nIHRoZSBncmV5IGJveC4iLDEsImNoYXJ0LWhlYWQiXSxbMSwiY2hhcnQtaGVhZGluZyJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNsZWFyXzI0cHgiXSxbMSwiY2hhcnQiXSxbImNoYXJ0IiwiIl0sWzEsImRyYXctYXJlYSJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksUm0oMSwiZGl2IiwxKSxSbSgyLCJkaXYiLDIpLGt1KDMpLEFtKCksUm0oNCwiYnV0dG9uIiwzKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZW1vdmUuZW1pdCgpfSkpLFRtKDUsIm1hdC1pY29uIiw0KSxBbSgpLEFtKCksUm0oNiwiZGl2Iiw1LDYpLHFpKCksVG0oOCwic3ZnIiw3KSxBbSgpLEFtKCkpLDImZSYmKHJjKDMpLFN1KG4ubWV0cmljTmFtZSkpfSxkaXJlY3RpdmVzOltYSCxEV10sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LmNoYXJ0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRkZW59LmNoYXJ0W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MzAwcHg7d2lkdGg6MTAwJX0uY2hhcnQtaGVhZFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uY2hhcnQtaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy10b3A6MTBweH0uZHJhdy1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5zdHJva2VkLWxpbmVbX25nY29udGVudC0lQ09NUCVde3N0cm9rZTpyZ2JhKDAsMCwwLC4xMik7c3Ryb2tlLWRhc2hhcnJheTozIDN9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFl5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ2aW9saW4tZmlsdGVyLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vdmlvbGluX2ZpbHRlcl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi92aW9saW5fZmlsdGVyX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHttZXRyaWNOYW1lOlt7dHlwZTp4eX1dLGZpbHRlcjpbe3R5cGU6eHl9XSxjaGFydERhdGE6W3t0eXBlOnh5fV0sd2lkdGg6W3t0eXBlOnh5fV0sY29sb3JTY2FsZTpbe3R5cGU6eHl9XSxvblJlbW92ZTpbe3R5cGU6T3l9XSxvblVwZGF0ZUZpbHRlcjpbe3R5cGU6T3l9XSxjaGFydENvbnRhaW5lcjpbe3R5cGU6WmEsYXJnczpbImNoYXJ0Iix7c3RhdGljOiEwLHJlYWQ6aGd9XX1dfSk7Y2xhc3MgcXl0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmFjdGl2ZVJ1bnMkPXRoaXMuc3RvcmUucGlwZShGdyhOTikpLnBpcGUoSXQoKHQ9PnQ/QXJyYXkuZnJvbSh0LmVudHJpZXMoKSkuZmlsdGVyKCh0PT50WzFdKSkubWFwKCh0PT50WzBdKSk6W10pKSksdGhpcy52aXNpYmxlQW5ub3RhdGlvbnMkPVd0KFt0aGlzLnN0b3JlLnNlbGVjdChyYnQpLHRoaXMuc3RvcmUuc2VsZWN0KHBidCksdGhpcy5zdG9yZS5zZWxlY3QoTWJ0KV0pLnBpcGUoSXQoKChbdCxlLG5dKT0+R3l0KHQsZSxuKSkpKSx0aGlzLmNoYXJ0V2lkdGgkPXRoaXMuc3RvcmUucGlwZShGdyh4YnQpKS5waXBlKEl0KCh0PT5NYXRoLm1heCgxNTAsdCkpKSksdGhpcy5ydW5Db2xvclNjYWxlJD10aGlzLnN0b3JlLnNlbGVjdCh6TikucGlwZShJdCgodD0+ZT0+e2lmKCF0Lmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcihgW0NvbG9yIHNjYWxlXSB1bmtub3duIHJ1bklkOiAke2V9LmApO3JldHVybiB0W2VdfSkpKX1uZ09uSW5pdCgpe3RoaXMuY2hhcnREYXRhJD1XdChbdGhpcy52aXNpYmxlQW5ub3RhdGlvbnMkLHRoaXMuYWN0aXZlUnVucyRdKS5waXBlKEl0KCgoW3QsZV0pPT4oZnVuY3Rpb24gbih0LGUsbyl7Y29uc3QgaT17fSxhPXt9LHI9bmV3IFNldChlKSxzPW55dChvKSxsPXttYXg6LTEsbWluOjF9O09iamVjdC52YWx1ZXModCkuZm9yRWFjaCgodD0+e3QuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5ydW47aWYoci5oYXMoZSkmJnQubWV0cmljPT09cylpZihudWxsPT09dC5uUE1JVmFsdWUpYVtlXT9hW2VdLnB1c2gobnVsbCk6YVtlXT1bbnVsbF07ZWxzZXtjb25zdCBuPXQublBNSVZhbHVlO2wubWF4PWwubWF4PG4/bjpsLm1heCxsLm1pbj1sLm1pbj5uP246bC5taW4saVt0LnJ1bl0/aVtlXS5wdXNoKG4pOmlbZV09W25dfX0pKX0pKTtjb25zdCBjPXt9LGQ9TzUoKS5kb21haW4oW2wubWluLGwubWF4XSkudmFsdWUoKHQ9PnQpKSxwPU81KCkuZG9tYWluKFstMS8wLDEvMF0pLnRocmVzaG9sZHMoMCkudmFsdWUoKHQ9PnQpKTtmb3IoY29uc3QgdCBvZiByKWlmKGNbdF09ZChpW3RdKSxhW3RdKXtjb25zdCBlPXAoYVt0XSk7Y1t0XS51bnNoaWZ0KGVbMF0pfXJldHVybnt2aW9saW5EYXRhOmMsZXh0cmVtZXM6bH19KSh0LGUsdGhpcy5tZXRyaWNOYW1lKSkpKX1yZW1vdmVNZXRyaWMoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKExidCh7bWV0cmljOnRoaXMubWV0cmljTmFtZX0pKX11cGRhdGVGaWx0ZXIodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChCYnQoT2JqZWN0LmFzc2lnbih7bWV0cmljOnRoaXMubWV0cmljTmFtZX0sdCkpKX19ZnVuY3Rpb24gWnl0KHQsZSl7aWYoMSZ0JiZUbSgwLCJucG1pLXZpb2xpbi1maWx0ZXIiLDgpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtEbSgibWV0cmljTmFtZSIsdFswXSkoImZpbHRlciIsdFsxXSl9fWZ1bmN0aW9uIFh5dCh0LGUpezEmdCYmKFJtKDAsImRpdiIsOSksUm0oMSwic3BhbiIsMTApLGt1KDIsIiBZb3UgY2FuIGFkZCBtb3JlIGZpbHRlcnMgYXQgdGhlIHRvcC4gIiksQW0oKSxBbSgpKX1xeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHF5dCkoU20oSXcpKX0scXl0Lsm1Y21wPXRvKHt0eXBlOnF5dCxzZWxlY3RvcnM6W1sibnBtaS12aW9saW4tZmlsdGVyIl1dLGlucHV0czp7bWV0cmljTmFtZToibWV0cmljTmFtZSIsZmlsdGVyOiJmaWx0ZXIifSxkZWNsczo0LHZhcnM6MTEsY29uc3RzOltbMywibWV0cmljTmFtZSIsImZpbHRlciIsImNoYXJ0RGF0YSIsIndpZHRoIiwiY29sb3JTY2FsZSIsIm9uUmVtb3ZlIiwib25VcGRhdGVGaWx0ZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsInZpb2xpbi1maWx0ZXItY29tcG9uZW50IiwwKSxWbSgib25SZW1vdmUiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ucmVtb3ZlTWV0cmljKCl9KSkoIm9uVXBkYXRlRmlsdGVyIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi51cGRhdGVGaWx0ZXIoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgibWV0cmljTmFtZSIsbi5tZXRyaWNOYW1lKSgiZmlsdGVyIixuLmZpbHRlcikoImNoYXJ0RGF0YSIsVGgoMSw1LG4uY2hhcnREYXRhJCkpKCJ3aWR0aCIsVGgoMiw3LG4uY2hhcnRXaWR0aCQpKSgiY29sb3JTY2FsZSIsVGgoMyw5LG4ucnVuQ29sb3JTY2FsZSQpKX0sZGlyZWN0aXZlczpbWXl0XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocXl0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktdmlvbGluLWZpbHRlciIsdGVtcGxhdGU6J1xuICAgIDx2aW9saW4tZmlsdGVyLWNvbXBvbmVudFxuICAgICAgW21ldHJpY05hbWVdPSJtZXRyaWNOYW1lIlxuICAgICAgW2ZpbHRlcl09ImZpbHRlciJcbiAgICAgIFtjaGFydERhdGFdPSJjaGFydERhdGEkIHwgYXN5bmMiXG4gICAgICBbd2lkdGhdPSJjaGFydFdpZHRoJCB8IGFzeW5jIlxuICAgICAgW2NvbG9yU2NhbGVdPSJydW5Db2xvclNjYWxlJCB8IGFzeW5jIlxuICAgICAgKG9uUmVtb3ZlKT0icmVtb3ZlTWV0cmljKCkiXG4gICAgICAob25VcGRhdGVGaWx0ZXIpPSJ1cGRhdGVGaWx0ZXIoJGV2ZW50KSJcbiAgICA+PC92aW9saW4tZmlsdGVyLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLHttZXRyaWNOYW1lOlt7dHlwZTp4eX1dLGZpbHRlcjpbe3R5cGU6eHl9XX0pO2NsYXNzIEt5dHtjb25zdHJ1Y3Rvcigpe3RoaXMudG9nZ2xlU2lkZWJhckV4cGFuZGVkPW5ldyBMaH19S3l0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxLeXQpfSxLeXQuybVjbXA9dG8oe3R5cGU6S3l0LHNlbGVjdG9yczpbWyJ2aW9saW4tZmlsdGVycy1jb21wb25lbnQiXV0saW5wdXRzOntzaWRlYmFyRXhwYW5kZWQ6InNpZGViYXJFeHBhbmRlZCIsbWV0cmljRmlsdGVyczoibWV0cmljRmlsdGVycyJ9LG91dHB1dHM6e3RvZ2dsZVNpZGViYXJFeHBhbmRlZDoidG9nZ2xlU2lkZWJhckV4cGFuZGVkIn0sZGVjbHM6OSx2YXJzOjIsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIkV4cGFuZC9IaWRlIFNpZGViYXIiKTokbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IGV4cGFuZHMvaGlkZXMgdGhlIHNpZGViYXIu4pCfNDhjMjk5MDNjZTg4MWFiNjEwODhmOGQ0OWQ4MjcyMDM3MTZhYWVkNOKQnzQ2NTg2MDI5OTE5NzAyNjAyMTU6RXhwYW5kL0hpZGUgU2lkZWJhcmAsW1sxLCJmaWx0ZXJzLXRvb2xiYXIiXSxbMSwiZmlsdGVycy10aXRsZSJdLFsxLCJzaWRlLXRvZ2dsZSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNoZXZyb25fbGVmdF8yNHB4Il0sWzEsImZpbHRlcnMiXSxbMywibWV0cmljTmFtZSIsImZpbHRlciIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsImZpbHRlcnMtaGludCIsNCwibmdJZiJdLFszLCJtZXRyaWNOYW1lIiwiZmlsdGVyIl0sWzEsImZpbHRlcnMtaGludCJdLFsxLCJmaWx0ZXJzLWhpbnQtdGV4dCJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksUm0oMSwiaDMiLDEpLGt1KDIsIkFjdGl2ZSBGaWx0ZXJzIiksQW0oKSxSbSgzLCJkaXYiLDIpLFJtKDQsImJ1dHRvbiIsMyksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnRvZ2dsZVNpZGViYXJFeHBhbmRlZC5lbWl0KCl9KSksVG0oNSwibWF0LWljb24iLDQpLEFtKCksQW0oKSxBbSgpLFJtKDYsImRpdiIsNSksUXAoNyxaeXQsMSwyLCJucG1pLXZpb2xpbi1maWx0ZXIiLDYpLEFtKCksUXAoOCxYeXQsMywwLCJkaXYiLDcpKSwyJmUmJihyYyg3KSxEbSgibmdGb3JPZiIsbi5tZXRyaWNGaWx0ZXJzKSxyYygxKSxEbSgibmdJZiIsMD09PW4ubWV0cmljRmlsdGVycy5sZW5ndGgpKX0sZGlyZWN0aXZlczpbWEgsRFcsbE0sZE0scXl0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LmZpbHRlcnMtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2hlaWdodDo0MnB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MCAxMHB4fS5maWx0ZXJzLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LnNpZGUtdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4O2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjMwcHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDozMHB4fS5maWx0ZXJzW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdy15OmF1dG99LmZpbHRlcnMtaGludFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDJweDtwYWRkaW5nOjAgMTZweH0uZmlsdGVycy1oaW50LXRleHRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoS3l0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InZpb2xpbi1maWx0ZXJzLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vdmlvbGluX2ZpbHRlcnNfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vdmlvbGluX2ZpbHRlcnNfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse3NpZGViYXJFeHBhbmRlZDpbe3R5cGU6eHl9XSxtZXRyaWNGaWx0ZXJzOlt7dHlwZTp4eX1dLHRvZ2dsZVNpZGViYXJFeHBhbmRlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIEp5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5zaWRlYmFyRXhwYW5kZWQkPXRoaXMuc3RvcmUuc2VsZWN0KF9idCksdGhpcy5tZXRyaWNGaWx0ZXJzJD10aGlzLnN0b3JlLnNlbGVjdChnYnQpLnBpcGUoSXQoKHQ9Pk9iamVjdC5lbnRyaWVzKHQpKSkpfW9uVG9nZ2xlU2lkZWJhckV4cGFuZGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChXYnQoKSl9fWZ1bmN0aW9uIFF5dCh0LGUsbil7cmV0dXJuIHQubGVuZ3RoIT1lLmxlbmd0aD9uOmUubWFwKCgoZSxuKT0+ZS10W25dKSkubWFwKCh0PT5NYXRoLnBvdyh0LDIpKSkucmVkdWNlKCgodCxlKT0+dCtlKSwwKX1KeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEp5dCkoU20oSXcpKX0sSnl0Lsm1Y21wPXRvKHt0eXBlOkp5dCxzZWxlY3RvcnM6W1sibnBtaS12aW9saW4tZmlsdGVycyJdXSxkZWNsczozLHZhcnM6Nixjb25zdHM6W1szLCJzaWRlYmFyRXhwYW5kZWQiLCJtZXRyaWNGaWx0ZXJzIiwidG9nZ2xlU2lkZWJhckV4cGFuZGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJ2aW9saW4tZmlsdGVycy1jb21wb25lbnQiLDApLFZtKCJ0b2dnbGVTaWRlYmFyRXhwYW5kZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub2dnbGVTaWRlYmFyRXhwYW5kZWQoKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQW0oKSksMiZlJiZEbSgic2lkZWJhckV4cGFuZGVkIixUaCgxLDIsbi5zaWRlYmFyRXhwYW5kZWQkKSkoIm1ldHJpY0ZpbHRlcnMiLFRoKDIsNCxuLm1ldHJpY0ZpbHRlcnMkKSl9LGRpcmVjdGl2ZXM6W0t5dF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEp5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLXZpb2xpbi1maWx0ZXJzIix0ZW1wbGF0ZTonXG4gICAgPHZpb2xpbi1maWx0ZXJzLWNvbXBvbmVudFxuICAgICAgW3NpZGViYXJFeHBhbmRlZF09InNpZGViYXJFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFttZXRyaWNGaWx0ZXJzXT0ibWV0cmljRmlsdGVycyQgfCBhc3luYyJcbiAgICAgICh0b2dnbGVTaWRlYmFyRXhwYW5kZWQpPSJvblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpIlxuICAgID48L3Zpb2xpbi1maWx0ZXJzLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0ICR5dD1bInRodW1iQ29udGFpbmVyIl0sdF90PVsidG9nZ2xlQmFyIl0sZV90PVsiaW5wdXQiXSxuX3Q9ZnVuY3Rpb24odCl7cmV0dXJue2VudGVyRHVyYXRpb246dH19LG9fdD1uZXcgR2EoIm1hdC1zbGlkZS10b2dnbGUtZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+KHtkaXNhYmxlVG9nZ2xlVmFsdWU6ITF9KX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IGlfdD0wO2NvbnN0IGFfdD17cHJvdmlkZTpJVix1c2VFeGlzdGluZzpxZSgoKCk9PmxfdCkpLG11bHRpOiEwfTtjbGFzcyByX3R7Y29uc3RydWN0b3IodCxlKXt0aGlzLnNvdXJjZT10LHRoaXMuY2hlY2tlZD1lfX1jb25zdCBzX3Q9JEkoSkkoUUkoS0koY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZWxlbWVudFJlZj10fX0pKSkpO2NsYXNzIGxfdCBleHRlbmRzIHNfdHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSl7c3VwZXIodCksdGhpcy5fZm9jdXNNb25pdG9yPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9bix0aGlzLmRlZmF1bHRzPWksdGhpcy5fb25DaGFuZ2U9dD0+e30sdGhpcy5fb25Ub3VjaGVkPSgpPT57fSx0aGlzLl91bmlxdWVJZD0ibWF0LXNsaWRlLXRvZ2dsZS0iKyArK2lfdCx0aGlzLl9yZXF1aXJlZD0hMSx0aGlzLl9jaGVja2VkPSExLHRoaXMubmFtZT1udWxsLHRoaXMuaWQ9dGhpcy5fdW5pcXVlSWQsdGhpcy5sYWJlbFBvc2l0aW9uPSJhZnRlciIsdGhpcy5hcmlhTGFiZWw9bnVsbCx0aGlzLmFyaWFMYWJlbGxlZGJ5PW51bGwsdGhpcy5jaGFuZ2U9bmV3IExoLHRoaXMudG9nZ2xlQ2hhbmdlPW5ldyBMaCx0aGlzLnRhYkluZGV4PXBhcnNlSW50KG8pfHwwLHRoaXMuY29sb3I9dGhpcy5kZWZhdWx0Q29sb3I9aS5jb2xvcnx8ImFjY2VudCIsdGhpcy5fbm9vcEFuaW1hdGlvbnM9Ik5vb3BBbmltYXRpb25zIj09PWF9Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuX3JlcXVpcmVkfXNldCByZXF1aXJlZCh0KXt0aGlzLl9yZXF1aXJlZD15eih0KX1nZXQgY2hlY2tlZCgpe3JldHVybiB0aGlzLl9jaGVja2VkfXNldCBjaGVja2VkKHQpe3RoaXMuX2NoZWNrZWQ9eXoodCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9Z2V0IGlucHV0SWQoKXtyZXR1cm5gJHt0aGlzLmlkfHx0aGlzLl91bmlxdWVJZH0taW5wdXRgfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsITApLnN1YnNjcmliZSgodD0+eyJrZXlib2FyZCI9PT10fHwicHJvZ3JhbSI9PT10P3RoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk6dHx8UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9PnRoaXMuX29uVG91Y2hlZCgpKSl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZil9X29uQ2hhbmdlRXZlbnQodCl7dC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnRvZ2dsZUNoYW5nZS5lbWl0KCksdGhpcy5kZWZhdWx0cy5kaXNhYmxlVG9nZ2xlVmFsdWU/dGhpcy5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZD10aGlzLmNoZWNrZWQ6KHRoaXMuY2hlY2tlZD10aGlzLl9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGVja2VkLHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpKX1fb25JbnB1dENsaWNrKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9d3JpdGVWYWx1ZSh0KXt0aGlzLmNoZWNrZWQ9ISF0fXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLl9vblRvdWNoZWQ9dH1zZXREaXNhYmxlZFN0YXRlKHQpe3RoaXMuZGlzYWJsZWQ9dCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1mb2N1cyh0LGUpe2U/dGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2lucHV0RWxlbWVudCxlLHQpOnRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKHQpfXRvZ2dsZSgpe3RoaXMuY2hlY2tlZD0hdGhpcy5jaGVja2VkLHRoaXMuX29uQ2hhbmdlKHRoaXMuY2hlY2tlZCl9X2VtaXRDaGFuZ2VFdmVudCgpe3RoaXMuX29uQ2hhbmdlKHRoaXMuY2hlY2tlZCksdGhpcy5jaGFuZ2UuZW1pdChuZXcgcl90KHRoaXMsdGhpcy5jaGVja2VkKSl9X29uTGFiZWxUZXh0Q2hhbmdlKCl7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpfX1sX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxfdCkoU20oaGcpLFNtKFNJKSxTbShVZyksTmEoInRhYmluZGV4IiksU20ob190KSxTbShWUCw4KSl9LGxfdC7JtWNtcD10byh7dHlwZTpsX3Qsc2VsZWN0b3JzOltbIm1hdC1zbGlkZS10b2dnbGUiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaCgkeXQsNSksUWgodF90LDUpLFFoKGVfdCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5fdGh1bWJFbD10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5fdGh1bWJCYXJFbD10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5faW5wdXRFbGVtZW50PXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtc2xpZGUtdG9nZ2xlIl0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJihUdSgiaWQiLG4uaWQpLGpwKCJ0YWJpbmRleCIsbi5kaXNhYmxlZD9udWxsOi0xKSgiYXJpYS1sYWJlbCIsbnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbnVsbCkscHUoIm1hdC1jaGVja2VkIixuLmNoZWNrZWQpKCJtYXQtZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJtYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLWJlZm9yZSIsImJlZm9yZSI9PW4ubGFiZWxQb3NpdGlvbikoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIixuLl9ub29wQW5pbWF0aW9ucykpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsY29sb3I6ImNvbG9yIix0YWJJbmRleDoidGFiSW5kZXgiLG5hbWU6Im5hbWUiLGlkOiJpZCIsbGFiZWxQb3NpdGlvbjoibGFiZWxQb3NpdGlvbiIsYXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLGFyaWFMYWJlbGxlZGJ5OlsiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYUxhYmVsbGVkYnkiXSxyZXF1aXJlZDoicmVxdWlyZWQiLGNoZWNrZWQ6ImNoZWNrZWQiLGFyaWFEZXNjcmliZWRieTpbImFyaWEtZGVzY3JpYmVkYnkiLCJhcmlhRGVzY3JpYmVkYnkiXX0sb3V0cHV0czp7Y2hhbmdlOiJjaGFuZ2UiLHRvZ2dsZUNoYW5nZToidG9nZ2xlQ2hhbmdlIn0sZXhwb3J0QXM6WyJtYXRTbGlkZVRvZ2dsZSJdLGZlYXR1cmVzOltwZyhbYV90XSkseHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczoxNix2YXJzOjIwLGNvbnN0czpbWzEsIm1hdC1zbGlkZS10b2dnbGUtbGFiZWwiXSxbImxhYmVsIiwiIl0sWzEsIm1hdC1zbGlkZS10b2dnbGUtYmFyIl0sWyJ0b2dnbGVCYXIiLCIiXSxbInR5cGUiLCJjaGVja2JveCIsInJvbGUiLCJzd2l0Y2giLDEsIm1hdC1zbGlkZS10b2dnbGUtaW5wdXQiLCJjZGstdmlzdWFsbHktaGlkZGVuIiwzLCJpZCIsInJlcXVpcmVkIiwidGFiSW5kZXgiLCJjaGVja2VkIiwiZGlzYWJsZWQiLCJjaGFuZ2UiLCJjbGljayJdLFsiaW5wdXQiLCIiXSxbMSwibWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXIiXSxbInRodW1iQ29udGFpbmVyIiwiIl0sWzEsIm1hdC1zbGlkZS10b2dnbGUtdGh1bWIiXSxbIm1hdC1yaXBwbGUiLCIiLDEsIm1hdC1zbGlkZS10b2dnbGUtcmlwcGxlIiwibWF0LWZvY3VzLWluZGljYXRvciIsMywibWF0UmlwcGxlVHJpZ2dlciIsIm1hdFJpcHBsZURpc2FibGVkIiwibWF0UmlwcGxlQ2VudGVyZWQiLCJtYXRSaXBwbGVSYWRpdXMiLCJtYXRSaXBwbGVBbmltYXRpb24iXSxbMSwibWF0LXJpcHBsZS1lbGVtZW50IiwibWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZSJdLFsxLCJtYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnQiLDMsImNka09ic2VydmVDb250ZW50Il0sWyJsYWJlbENvbnRlbnQiLCIiXSxbMiwiZGlzcGxheSIsIm5vbmUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFptKCksUm0oMCwibGFiZWwiLDAsMSksUm0oMiwiZGl2IiwyLDMpLFJtKDQsImlucHV0Iiw0LDUpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9vbkNoYW5nZUV2ZW50KGUpfSkpKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uSW5wdXRDbGljayhlKX0pKSxBbSgpLFJtKDYsImRpdiIsNiw3KSxUbSg4LCJkaXYiLDgpLFJtKDksImRpdiIsOSksVG0oMTAsImRpdiIsMTApLEFtKCksQW0oKSxBbSgpLFJtKDExLCJzcGFuIiwxMSwxMiksVm0oImNka09ic2VydmVDb250ZW50IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbkxhYmVsVGV4dENoYW5nZSgpfSkpLFJtKDEzLCJzcGFuIiwxMyksa3UoMTQsIsKgIiksQW0oKSxYbSgxNSksQW0oKSxBbSgpKSwyJmUpe2NvbnN0IHQ9JHAoMSksZT0kcCgxMik7anAoImZvciIsbi5pbnB1dElkKSxyYygyKSxwdSgibWF0LXNsaWRlLXRvZ2dsZS1iYXItbm8tc2lkZS1tYXJnaW4iLCFlLnRleHRDb250ZW50fHwhZS50ZXh0Q29udGVudC50cmltKCkpLHJjKDIpLERtKCJpZCIsbi5pbnB1dElkKSgicmVxdWlyZWQiLG4ucmVxdWlyZWQpKCJ0YWJJbmRleCIsbi50YWJJbmRleCkoImNoZWNrZWQiLG4uY2hlY2tlZCkoImRpc2FibGVkIixuLmRpc2FibGVkKSxqcCgibmFtZSIsbi5uYW1lKSgiYXJpYS1jaGVja2VkIixuLmNoZWNrZWQudG9TdHJpbmcoKSkoImFyaWEtbGFiZWwiLG4uYXJpYUxhYmVsKSgiYXJpYS1sYWJlbGxlZGJ5IixuLmFyaWFMYWJlbGxlZGJ5KSgiYXJpYS1kZXNjcmliZWRieSIsbi5hcmlhRGVzY3JpYmVkYnkpLHJjKDUpLERtKCJtYXRSaXBwbGVUcmlnZ2VyIix0KSgibWF0UmlwcGxlRGlzYWJsZWQiLG4uZGlzYWJsZVJpcHBsZXx8bi5kaXNhYmxlZCkoIm1hdFJpcHBsZUNlbnRlcmVkIiwhMCkoIm1hdFJpcHBsZVJhZGl1cyIsMjApKCJtYXRSaXBwbGVBbmltYXRpb24iLE1oKDE4LG5fdCxuLl9ub29wQW5pbWF0aW9ucz8wOjE1MCkpfX0sZGlyZWN0aXZlczpba0gsanpdLHN0eWxlczpbIi5tYXQtc2xpZGUtdG9nZ2xle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoyNHB4O21heC13aWR0aDoxMDAlO2xpbmUtaGVpZ2h0OjI0cHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxNnB4LCAwLCAwKX1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTZweCwgMCwgMCl9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWRpc2FibGVke29wYWNpdHk6LjM4fS5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbCwubWF0LXNsaWRlLXRvZ2dsZS5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye2N1cnNvcjpkZWZhdWx0fS5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleDoxO2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXJ9Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudHt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1zbGlkZS10b2dnbGUtbGFiZWwtYmVmb3JlIC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVse29yZGVyOjF9Lm1hdC1zbGlkZS10b2dnbGUtbGFiZWwtYmVmb3JlIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntvcmRlcjoyfVtkaXI9cnRsXSAubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtYmFyLC5tYXQtc2xpZGUtdG9nZ2xlLWJhcnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0OjB9W2Rpcj1ydGxdIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciwubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtYmFye21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH0ubWF0LXNsaWRlLXRvZ2dsZS1iYXItbm8tc2lkZS1tYXJnaW57bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0ubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7dG9wOi0zcHg7bGVmdDowO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2l0aW9uOmFsbCA4MG1zIGxpbmVhcjt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye3RyYW5zaXRpb246bm9uZX1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye2xlZnQ6YXV0bztyaWdodDowfS5tYXQtc2xpZGUtdG9nZ2xlLXRodW1ie2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7Ym9yZGVyLXJhZGl1czo1MCV9Lm1hdC1zbGlkZS10b2dnbGUtYmFye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjM2cHg7aGVpZ2h0OjE0cHg7ZmxleC1zaHJpbms6MDtib3JkZXItcmFkaXVzOjhweH0ubWF0LXNsaWRlLXRvZ2dsZS1pbnB1dHtib3R0b206MDtsZWZ0OjEwcHh9W2Rpcj1ydGxdIC5tYXQtc2xpZGUtdG9nZ2xlLWlucHV0e2xlZnQ6YXV0bztyaWdodDoxMHB4fS5tYXQtc2xpZGUtdG9nZ2xlLWJhciwubWF0LXNsaWRlLXRvZ2dsZS10aHVtYnt0cmFuc2l0aW9uOmFsbCA4MG1zIGxpbmVhcjt0cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQtY29sb3I7dHJhbnNpdGlvbi1kZWxheTo1MG1zfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIsLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1ie3RyYW5zaXRpb246bm9uZX0ubWF0LXNsaWRlLXRvZ2dsZSAubWF0LXNsaWRlLXRvZ2dsZS1yaXBwbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoNTAlIC0gMjBweCk7bGVmdDpjYWxjKDUwJSAtIDIwcHgpO2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1zbGlkZS10b2dnbGUgLm1hdC1zbGlkZS10b2dnbGUtcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxlKXtvcGFjaXR5Oi4xMn0ubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RyYW5zZm9ybTpub25lfS5tYXQtc2xpZGUtdG9nZ2xlLWJhcjpob3ZlciAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5Oi4wNH0ubWF0LXNsaWRlLXRvZ2dsZTpub3QoLm1hdC1kaXNhYmxlZCkuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGV7b3BhY2l0eTouMTJ9Lm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1zbGlkZS10b2dnbGUubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcjpob3ZlciAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5OjB9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LXNsaWRlLXRvZ2dsZS1iYXI6aG92ZXIgLm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGV7ZGlzcGxheTpub25lfX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JvcmRlcjoxcHggc29saWR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlLXRvZ2dsZS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7b3V0bGluZToycHggZG90dGVkO291dGxpbmUtb2Zmc2V0OjVweH1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGxfdC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpTSX0se3R5cGU6VWd9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpqYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbb190XX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sbF90LnByb3BEZWNvcmF0b3JzPXtfdGh1bWJFbDpbe3R5cGU6WmEsYXJnczpbInRodW1iQ29udGFpbmVyIl19XSxfdGh1bWJCYXJFbDpbe3R5cGU6WmEsYXJnczpbInRvZ2dsZUJhciJdfV0sbmFtZTpbe3R5cGU6eHl9XSxpZDpbe3R5cGU6eHl9XSxsYWJlbFBvc2l0aW9uOlt7dHlwZTp4eX1dLGFyaWFMYWJlbDpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWwiXX1dLGFyaWFMYWJlbGxlZGJ5Olt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbGxlZGJ5Il19XSxhcmlhRGVzY3JpYmVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSxyZXF1aXJlZDpbe3R5cGU6eHl9XSxjaGVja2VkOlt7dHlwZTp4eX1dLGNoYW5nZTpbe3R5cGU6T3l9XSx0b2dnbGVDaGFuZ2U6W3t0eXBlOk95fV0sX2lucHV0RWxlbWVudDpbe3R5cGU6WmEsYXJnczpbImlucHV0Il19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXNsaWRlLXRvZ2dsZSIsZXhwb3J0QXM6Im1hdFNsaWRlVG9nZ2xlIixob3N0OntjbGFzczoibWF0LXNsaWRlLXRvZ2dsZSIsIltpZF0iOiJpZCIsIlthdHRyLnRhYmluZGV4XSI6ImRpc2FibGVkID8gbnVsbCA6IC0xIiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJudWxsIiwiW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSI6Im51bGwiLCJbY2xhc3MubWF0LWNoZWNrZWRdIjoiY2hlY2tlZCIsIltjbGFzcy5tYXQtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbY2xhc3MubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmVdIjonbGFiZWxQb3NpdGlvbiA9PSAiYmVmb3JlIicsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOiJfbm9vcEFuaW1hdGlvbnMifSx0ZW1wbGF0ZTonPGxhYmVsIFthdHRyLmZvcl09ImlucHV0SWQiIGNsYXNzPSJtYXQtc2xpZGUtdG9nZ2xlLWxhYmVsIiAjbGFiZWw+XG4gIDxkaXYgI3RvZ2dsZUJhciBjbGFzcz0ibWF0LXNsaWRlLXRvZ2dsZS1iYXIiXG4gICAgICAgW2NsYXNzLm1hdC1zbGlkZS10b2dnbGUtYmFyLW5vLXNpZGUtbWFyZ2luXT0iIWxhYmVsQ29udGVudC50ZXh0Q29udGVudCB8fCAhbGFiZWxDb250ZW50LnRleHRDb250ZW50LnRyaW0oKSI+XG5cbiAgICA8aW5wdXQgI2lucHV0IGNsYXNzPSJtYXQtc2xpZGUtdG9nZ2xlLWlucHV0IGNkay12aXN1YWxseS1oaWRkZW4iIHR5cGU9ImNoZWNrYm94IlxuICAgICAgICAgICByb2xlPSJzd2l0Y2giXG4gICAgICAgICAgIFtpZF09ImlucHV0SWQiXG4gICAgICAgICAgIFtyZXF1aXJlZF09InJlcXVpcmVkIlxuICAgICAgICAgICBbdGFiSW5kZXhdPSJ0YWJJbmRleCJcbiAgICAgICAgICAgW2NoZWNrZWRdPSJjaGVja2VkIlxuICAgICAgICAgICBbZGlzYWJsZWRdPSJkaXNhYmxlZCJcbiAgICAgICAgICAgW2F0dHIubmFtZV09Im5hbWUiXG4gICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09ImNoZWNrZWQudG9TdHJpbmcoKSJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09ImFyaWFMYWJlbCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT0iYXJpYUxhYmVsbGVkYnkiXG4gICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPSJhcmlhRGVzY3JpYmVkYnkiXG4gICAgICAgICAgIChjaGFuZ2UpPSJfb25DaGFuZ2VFdmVudCgkZXZlbnQpIlxuICAgICAgICAgICAoY2xpY2spPSJfb25JbnB1dENsaWNrKCRldmVudCkiPlxuXG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXIiICN0aHVtYkNvbnRhaW5lcj5cbiAgICAgIDxkaXYgY2xhc3M9Im1hdC1zbGlkZS10b2dnbGUtdGh1bWIiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlLXRvZ2dsZS1yaXBwbGUgbWF0LWZvY3VzLWluZGljYXRvciIgbWF0LXJpcHBsZVxuICAgICAgICAgICBbbWF0UmlwcGxlVHJpZ2dlcl09ImxhYmVsIlxuICAgICAgICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJkaXNhYmxlUmlwcGxlIHx8IGRpc2FibGVkIlxuICAgICAgICAgICBbbWF0UmlwcGxlQ2VudGVyZWRdPSJ0cnVlIlxuICAgICAgICAgICBbbWF0UmlwcGxlUmFkaXVzXT0iMjAiXG4gICAgICAgICAgIFttYXRSaXBwbGVBbmltYXRpb25dPSJ7ZW50ZXJEdXJhdGlvbjogX25vb3BBbmltYXRpb25zID8gMCA6IDE1MH0iPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9Im1hdC1yaXBwbGUtZWxlbWVudCBtYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxlIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG4gIDxzcGFuIGNsYXNzPSJtYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnQiICNsYWJlbENvbnRlbnQgKGNka09ic2VydmVDb250ZW50KT0iX29uTGFiZWxUZXh0Q2hhbmdlKCkiPlxuICAgIFx4M2MhLS0gQWRkIGFuIGludmlzaWJsZSBzcGFuIHNvIEpBV1MgY2FuIHJlYWQgdGhlIGxhYmVsIC0tXHgzZVxuICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmUiPiZuYnNwOzwvc3Bhbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvc3Bhbj5cbjwvbGFiZWw+XG4nLHByb3ZpZGVyczpbYV90XSxpbnB1dHM6WyJkaXNhYmxlZCIsImRpc2FibGVSaXBwbGUiLCJjb2xvciIsInRhYkluZGV4Il0sZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsc3R5bGVzOlsiLm1hdC1zbGlkZS10b2dnbGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjI0cHg7bWF4LXdpZHRoOjEwMCU7bGluZS1oZWlnaHQ6MjRweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDE2cHgsIDAsIDApfVtkaXI9cnRsXSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xNnB4LCAwLCAwKX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtZGlzYWJsZWR7b3BhY2l0eTouMzh9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1zbGlkZS10b2dnbGUtbGFiZWx7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2Rpc3BsYXk6ZmxleDtmbGV4OjE7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcn0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50e3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtbGFiZWx7b3JkZXI6MX0ubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtYmFye29yZGVyOjJ9W2Rpcj1ydGxdIC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLWJlZm9yZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIsLm1hdC1zbGlkZS10b2dnbGUtYmFye21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLWxlZnQ6MH1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUtYmFyLC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLWJlZm9yZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfS5tYXQtc2xpZGUtdG9nZ2xlLWJhci1uby1zaWRlLW1hcmdpbnttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfS5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDt0b3A6LTNweDtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YWxsIDgwbXMgbGluZWFyO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7dHJhbnNpdGlvbjpub25lfVtkaXI9cnRsXSAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7bGVmdDphdXRvO3JpZ2h0OjB9Lm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtib3JkZXItcmFkaXVzOjUwJX0ubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzZweDtoZWlnaHQ6MTRweDtmbGV4LXNocmluazowO2JvcmRlci1yYWRpdXM6OHB4fS5tYXQtc2xpZGUtdG9nZ2xlLWlucHV0e2JvdHRvbTowO2xlZnQ6MTBweH1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUtaW5wdXR7bGVmdDphdXRvO3JpZ2h0OjEwcHh9Lm1hdC1zbGlkZS10b2dnbGUtYmFyLC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1ie3RyYW5zaXRpb246YWxsIDgwbXMgbGluZWFyO3RyYW5zaXRpb24tcHJvcGVydHk6YmFja2dyb3VuZC1jb2xvcjt0cmFuc2l0aW9uLWRlbGF5OjUwbXN9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciwuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7dHJhbnNpdGlvbjpub25lfS5tYXQtc2xpZGUtdG9nZ2xlIC5tYXQtc2xpZGUtdG9nZ2xlLXJpcHBsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYyg1MCUgLSAyMHB4KTtsZWZ0OmNhbGMoNTAlIC0gMjBweCk7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LXNsaWRlLXRvZ2dsZSAubWF0LXNsaWRlLXRvZ2dsZS1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGUpe29wYWNpdHk6LjEyfS5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxle3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dHJhbnNmb3JtOm5vbmV9Lm1hdC1zbGlkZS10b2dnbGUtYmFyOmhvdmVyIC5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6LjA0fS5tYXQtc2xpZGUtdG9nZ2xlOm5vdCgubWF0LWRpc2FibGVkKS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5Oi4xMn0ubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LXNsaWRlLXRvZ2dsZS5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyOmhvdmVyIC5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6MH1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtc2xpZGUtdG9nZ2xlLWJhcjpob3ZlciAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtkaXNwbGF5Om5vbmV9fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7Ym9yZGVyOjFweCBzb2xpZH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGUtdG9nZ2xlLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntvdXRsaW5lOjJweCBkb3R0ZWQ7b3V0bGluZS1vZmZzZXQ6NXB4fVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6U0l9LHt0eXBlOlVnfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W29fdF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse25hbWU6W3t0eXBlOnh5fV0saWQ6W3t0eXBlOnh5fV0sbGFiZWxQb3NpdGlvbjpbe3R5cGU6eHl9XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0sY2hhbmdlOlt7dHlwZTpPeX1dLHRvZ2dsZUNoYW5nZTpbe3R5cGU6T3l9XSxyZXF1aXJlZDpbe3R5cGU6eHl9XSxjaGVja2VkOlt7dHlwZTp4eX1dLF90aHVtYkVsOlt7dHlwZTpaYSxhcmdzOlsidGh1bWJDb250YWluZXIiXX1dLF90aHVtYkJhckVsOlt7dHlwZTpaYSxhcmdzOlsidG9nZ2xlQmFyIl19XSxhcmlhRGVzY3JpYmVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSxfaW5wdXRFbGVtZW50Olt7dHlwZTpaYSxhcmdzOlsiaW5wdXQiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBjX3Q9e3Byb3ZpZGU6R1YsdXNlRXhpc3Rpbmc6cWUoKCgpPT5kX3QpKSxtdWx0aTohMH07Y2xhc3MgZF90IGV4dGVuZHMgS1V7fWRfdC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoZF90KSkpKG58fGRfdCl9fSkoKSxkX3QuybVkaXI9bG8oe3R5cGU6ZF90LHNlbGVjdG9yczpbWyJtYXQtc2xpZGUtdG9nZ2xlIiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIm1hdC1zbGlkZS10b2dnbGUiLCJyZXF1aXJlZCIsIiIsImZvcm1Db250cm9sIiwiIl0sWyJtYXQtc2xpZGUtdG9nZ2xlIiwicmVxdWlyZWQiLCIiLCJuZ01vZGVsIiwiIl1dLGZlYXR1cmVzOltwZyhbY190XSkseHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkX3QsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXNsaWRlLXRvZ2dsZVtyZXF1aXJlZF1bZm9ybUNvbnRyb2xOYW1lXSxcbiAgICAgICAgICAgICBtYXQtc2xpZGUtdG9nZ2xlW3JlcXVpcmVkXVtmb3JtQ29udHJvbF0sIG1hdC1zbGlkZS10b2dnbGVbcmVxdWlyZWRdW25nTW9kZWxdIixwcm92aWRlcnM6W2NfdF19XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBwX3R7fXBfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cF90KX0scF90Lsm1bW9kPWFvKHt0eXBlOnBfdH0pLHBfdC7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwX3QsW3t0eXBlOkF5LGFyZ3M6W3tleHBvcnRzOltkX3RdLGRlY2xhcmF0aW9uczpbZF90XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHBfdCx7ZGVjbGFyYXRpb25zOltkX3RdLGV4cG9ydHM6W2RfdF19KTtjbGFzcyBtX3R7fWZ1bmN0aW9uIHVfdCh0LGUpezEmdCYmVG0oMCwibWF0LWljb24iLDMpfW1fdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bV90KX0sbV90Lsm1bW9kPWFvKHt0eXBlOm1fdH0pLG1fdC7JtWluaj12bih7aW1wb3J0czpbW3BfdCxTSCxYSSxVel0scF90LFhJXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobV90LFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbcF90LFNILFhJLFV6XSxleHBvcnRzOltwX3QsbF90LFhJXSxkZWNsYXJhdGlvbnM6W2xfdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhtX3Qse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltsX3RdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3BfdCxTSCxYSSxVel19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bcF90LGxfdCxYSV19fSk7Y2xhc3MgZl90e2NvbnN0cnVjdG9yKCl7dGhpcy5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2U9bmV3IExofX1mX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGZfdCl9LGZfdC7JtWNtcD10byh7dHlwZTpmX3Qsc2VsZWN0b3JzOltbIm5wbWktYW5ub3RhdGlvbnMtc2VhcmNoLWNvbXBvbmVudCJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgidmFsaWQiLG4uaXNSZWdleEZpbHRlclZhbGlkKX0saW5wdXRzOntyZWdleEZpbHRlclZhbHVlOiJyZWdleEZpbHRlclZhbHVlIixpc1JlZ2V4RmlsdGVyVmFsaWQ6ImlzUmVnZXhGaWx0ZXJWYWxpZCJ9LG91dHB1dHM6e29uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZToib25SZWdleEZpbHRlclZhbHVlQ2hhbmdlIn0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbInN2Z0ljb24iLCJzZWFyY2hfMjRweCJdLFsiYXV0b2NvbXBsZXRlIiwib2ZmIiwicGxhY2Vob2xkZXIiLCJGaWx0ZXIgQW5ub3RhdGlvbnMiLDMsInZhbHVlIiwiaW5wdXQiXSxbInN2Z0ljb24iLCJlcnJvcl8yNHB4IiwiY2xhc3MiLCJlcnJvci1pY29uIiwibWF0VG9vbHRpcCIsIkludmFsaWQgcmVnZXggZmlsdGVyLiBUaGUgcmVzdWx0IG1heSBiZSBzdGFsZS4iLDQsIm5nSWYiXSxbInN2Z0ljb24iLCJlcnJvcl8yNHB4IiwibWF0VG9vbHRpcCIsIkludmFsaWQgcmVnZXggZmlsdGVyLiBUaGUgcmVzdWx0IG1heSBiZSBzdGFsZS4iLDEsImVycm9yLWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsIm1hdC1pY29uIiwwKSxSbSgxLCJpbnB1dCIsMSksVm0oImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChlLnRhcmdldC52YWx1ZSl9KSksQW0oKSxRcCgyLHVfdCwxLDAsIm1hdC1pY29uIiwyKSksMiZlJiYocmMoMSksRG0oInZhbHVlIixuLnJlZ2V4RmlsdGVyVmFsdWUpLHJjKDEpLERtKCJuZ0lmIiwhbi5pc1JlZ2V4RmlsdGVyVmFsaWQpKX0sZGlyZWN0aXZlczpbRFcsZE1dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV06bm90KC52YWxpZCl7Y29sb3I6I2M2MjgyOH1bX25naG9zdC0lQ09NUCVdOm5vdCgudmFsaWQpICAgaW5wdXRbX25nY29udGVudC0lQ09NUCVde2NhcmV0LWNvbG9yOmN1cnJlbnRDb2xvcn1bX25naG9zdC0lQ09NUCVdOm5vdCgudmFsaWQpICAgLmVycm9yLWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNjNjI4Mjg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZl90LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktYW5ub3RhdGlvbnMtc2VhcmNoLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vYW5ub3RhdGlvbnNfc2VhcmNoX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2Fubm90YXRpb25zX3NlYXJjaF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cmVnZXhGaWx0ZXJWYWx1ZTpbe3R5cGU6eHl9XSxvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2U6W3t0eXBlOk95fV0saXNSZWdleEZpbHRlclZhbGlkOlt7dHlwZTpQeSxhcmdzOlsiY2xhc3MudmFsaWQiXX0se3R5cGU6eHl9XX0pO2NsYXNzIGdfdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hbm5vdGF0aW9uc0ZpbHRlciQ9dGhpcy5zdG9yZS5zZWxlY3QobWJ0KSx0aGlzLmlzQW5ub3RhdGlvbnNGaWx0ZXJWYWxpZCQ9dGhpcy5hbm5vdGF0aW9uc0ZpbHRlciQucGlwZShJdCgodD0+e3RyeXtyZXR1cm4gbmV3IFJlZ0V4cCh0KSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KSkpfWZpbHRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKElidCh7cmVnZXg6dH0pKX19ZnVuY3Rpb24gaF90KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Tm0oMCksUm0oMSwiYnV0dG9uIiw1KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7aGkodCk7Y29uc3Qgbj1ZbSgpO3JldHVybiBuLm9uRmxhZ0Fubm90YXRpb25zLmVtaXQobi5zZWxlY3RlZEFubm90YXRpb25zKX0pKSxUbSgyLCJtYXQtaWNvbiIsNiksQW0oKSxSbSgzLCJidXR0b24iLDcpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtoaSh0KTtjb25zdCBuPVltKCk7cmV0dXJuIG4ub25IaWRlQW5ub3RhdGlvbnMuZW1pdChuLnNlbGVjdGVkQW5ub3RhdGlvbnMpfSkpLFRtKDQsIm1hdC1pY29uIiw4KSxBbSgpLHptKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRG0oImRpc2FibGVkIiwwPT09dC5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aCkscmMoMiksRG0oImRpc2FibGVkIiwwPT09dC5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aCl9fWZ1bmN0aW9uIGJfdCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO05tKDApLFJtKDEsIm1hdC1zbGlkZS10b2dnbGUiLDkpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkub25Ub2dnbGVTaG93Q291bnRzLmVtaXQoKX0pKSxrdSgyLCIgU2FtcGxlIENvdW50ICIpLEFtKCksUm0oMywibWF0LXNsaWRlLXRvZ2dsZSIsMTApLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkub25Ub2dnbGVTaG93SGlkZGVuLmVtaXQoKX0pKSxrdSg0LCIgU2hvdyBIaWRkZW4gIiksQW0oKSxUbSg1LCJucG1pLWFubm90YXRpb25zLXNlYXJjaCIpLHptKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRG0oImNoZWNrZWQiLHQuc2hvd0NvdW50cykscmMoMiksRG0oImNoZWNrZWQiLHQuc2hvd0hpZGRlbil9fWdfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Z190KShTbShJdykpfSxnX3QuybVjbXA9dG8oe3R5cGU6Z190LHNlbGVjdG9yczpbWyJucG1pLWFubm90YXRpb25zLXNlYXJjaCJdXSxkZWNsczozLHZhcnM6Nixjb25zdHM6W1szLCJyZWdleEZpbHRlclZhbHVlIiwiaXNSZWdleEZpbHRlclZhbGlkIiwib25SZWdleEZpbHRlclZhbHVlQ2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJucG1pLWFubm90YXRpb25zLXNlYXJjaC1jb21wb25lbnQiLDApLFZtKCJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmZpbHRlckNoYW5nZShlKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQW0oKSksMiZlJiZEbSgicmVnZXhGaWx0ZXJWYWx1ZSIsVGgoMSwyLG4uYW5ub3RhdGlvbnNGaWx0ZXIkKSkoImlzUmVnZXhGaWx0ZXJWYWxpZCIsVGgoMiw0LG4uaXNBbm5vdGF0aW9uc0ZpbHRlclZhbGlkJCkpfSxkaXJlY3RpdmVzOltmX3RdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1hbm5vdGF0aW9ucy1zZWFyY2giLHRlbXBsYXRlOidcbiAgICA8bnBtaS1hbm5vdGF0aW9ucy1zZWFyY2gtY29tcG9uZW50XG4gICAgICBbcmVnZXhGaWx0ZXJWYWx1ZV09ImFubm90YXRpb25zRmlsdGVyJCB8IGFzeW5jIlxuICAgICAgW2lzUmVnZXhGaWx0ZXJWYWxpZF09ImlzQW5ub3RhdGlvbnNGaWx0ZXJWYWxpZCQgfCBhc3luYyJcbiAgICAgIChvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UpPSJmaWx0ZXJDaGFuZ2UoJGV2ZW50KSJcbiAgICA+PC9ucG1pLWFubm90YXRpb25zLXNlYXJjaC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjbGFzcyB5X3R7Y29uc3RydWN0b3IoKXt0aGlzLm9uRmxhZ0Fubm90YXRpb25zPW5ldyBMaCx0aGlzLm9uSGlkZUFubm90YXRpb25zPW5ldyBMaCx0aGlzLm9uVG9nZ2xlRXhwYW5kZWQ9bmV3IExoLHRoaXMub25Ub2dnbGVTaG93Q291bnRzPW5ldyBMaCx0aGlzLm9uVG9nZ2xlU2hvd0hpZGRlbj1uZXcgTGh9fXlfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eV90KX0seV90Lsm1Y21wPXRvKHt0eXBlOnlfdCxzZWxlY3RvcnM6W1sibnBtaS1hbm5vdGF0aW9ucy1saXN0LXRvb2xiYXItY29tcG9uZW50Il1dLGlucHV0czp7bnVtQW5ub3RhdGlvbnM6Im51bUFubm90YXRpb25zIixleHBhbmRlZDoiZXhwYW5kZWQiLHNlbGVjdGVkQW5ub3RhdGlvbnM6InNlbGVjdGVkQW5ub3RhdGlvbnMiLGFubm90YXRpb25zRXhwYW5kZWQ6ImFubm90YXRpb25zRXhwYW5kZWQiLHNob3dDb3VudHM6InNob3dDb3VudHMiLHNob3dIaWRkZW46InNob3dIaWRkZW4ifSxvdXRwdXRzOntvbkZsYWdBbm5vdGF0aW9uczoib25GbGFnQW5ub3RhdGlvbnMiLG9uSGlkZUFubm90YXRpb25zOiJvbkhpZGVBbm5vdGF0aW9ucyIsb25Ub2dnbGVFeHBhbmRlZDoib25Ub2dnbGVFeHBhbmRlZCIsb25Ub2dnbGVTaG93Q291bnRzOiJvblRvZ2dsZVNob3dDb3VudHMiLG9uVG9nZ2xlU2hvd0hpZGRlbjoib25Ub2dnbGVTaG93SGlkZGVuIn0sZGVjbHM6Nyx2YXJzOjQsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZSxuO3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJIaWRlcy9TaG93cyB0aGUgQW5ub3RhdGlvbnMgTGlzdCIpOiRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgaGlkZXMvc2hvd3MgdGhlIGFubm90YXRpb25zIGxpc3Qu4pCfYjM2MDNiYTMzZTUzMDhkZDhjNWU4MDVlNTA4YjJmNzIzM2RmODlkNOKQnzczMzYzNzQ0MTMwNTYzNDI0OTI6SGlkZXMvU2hvd3MgdGhlIEFubm90YXRpb25zIExpc3RgLGU9InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIkZsYWcgU2VsZWN0ZWQgQW5ub3RhdGlvbnMiKTokbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IGZsYWdzIHNlbGVjdGVkIGFubm90YXRpb25zLuKQnzU2OTJhZDg4MzEwMzhhOTBjNTg2M2ExZTlhZGY5NzQ4Y2FjM2NhZDjikJ8yMjQ0MDk5ODkxMzEzMzM2NTk1OkZsYWcgU2VsZWN0ZWQgQW5ub3RhdGlvbnNgLG49InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIkhpZGUgU2VsZWN0ZWQgQW5ub3RhdGlvbnMiKTokbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IGhpZGVzIHNlbGVjdGVkIGFubm90YXRpb25zLuKQnzAzNDJjZGIzMzU4ZmE4ZTNmYTI3MjIwYTgyNThhNzI4NzQzMGI3MGbikJ81NDYyODMyMzkxMDkyMDg3NDg1OkhpZGUgU2VsZWN0ZWQgQW5ub3RhdGlvbnNgLFtbMSwiYW5ub3RhdGlvbnMtdGl0bGUtY29udGFpbmVyIl0sWzEsImFubm90YXRpb25zLXRpdGxlIl0sWzQsIm5nSWYiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMSwiZXhwYW5kLWJ1dHRvbiIsMywiY2xpY2siXSxbMywic3ZnSWNvbiJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwidGl0bGUiLCJGbGFnZ2luZyBhbm5vdGF0aW9ucyBhZGRzIHRoZW0gdG8geW91ciBpbnZlc3RpZ2F0aW9uIHJlc3VsdHMsIHdoaWNoIGNhbiBsYXRlciBiZSBleHBvcnRlZC4iLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInN2Z0ljb24iLCJmbGFnXzI0cHgiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLG4sInRpdGxlIiwiUmVtb3Zpbmcgbm9uLWNyaXRpY2FsIGFubm90YXRpb25zIHVuY2x1dHRlcnMgdGhlIHZpZXcuIFJlbW92ZWQgYW5ub3RhdGlvbnMgYXJlIHJlbW92ZWQgZnJvbSBhbGwgdmlzdWFsaXphdGlvbnMuIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzdmdJY29uIiwidmlzaWJpbGl0eV9vZmZfMjRweCJdLFsidGl0bGUiLCJIaWRlcyBhbmQgc2hvd3MgdGhlIHNhbXBsZSBjb3VudCB3aGVyZSBhcHBsaWNhYmxlIChob3cgbWFueSBzYW1wbGVzIGJlbG9uZyB0byBhIGNhdGVnb3J5KS4iLDEsInNob3ctdG9nZ2xlIiwzLCJjaGVja2VkIiwiY2hhbmdlIl0sWyJ0aXRsZSIsIkhpZGVzIGFuZCBzaG93cyBoaWRkZW4gYW5ub3RhdGlvbnMgaW4gYWxsIHZpc3VhbGl6YXRpb25zLiIsMSwic2hvdy10b2dnbGUiLDMsImNoZWNrZWQiLCJjaGFuZ2UiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsImgzIiwxKSxrdSgyKSxBbSgpLFFwKDMsaF90LDUsMiwibmctY29udGFpbmVyIiwyKSxBbSgpLFFwKDQsYl90LDYsMiwibmctY29udGFpbmVyIiwyKSxSbSg1LCJidXR0b24iLDMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvZ2dsZUV4cGFuZGVkLmVtaXQoKX0pKSxUbSg2LCJtYXQtaWNvbiIsNCksQW0oKSksMiZlJiYocmMoMiksRHUoIkFubm90YXRpb25zICgiLG4ubnVtQW5ub3RhdGlvbnMsIikiKSxyYygxKSxEbSgibmdJZiIsbi5leHBhbmRlZCkscmMoMSksRG0oIm5nSWYiLG4uZXhwYW5kZWQpLHJjKDIpLERtKCJzdmdJY29uIixuLmV4cGFuZGVkPyJleHBhbmRfbGVzc18yNHB4IjoiZXhwYW5kX21vcmVfMjRweCIpKX0sZGlyZWN0aXZlczpbZE0sWEgsRFcsbF90LGdfdF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7cGFkZGluZzowIDE2cHg7d2lkdGg6MTAwJX0uYW5ub3RhdGlvbnMtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lO2ZvbnQtc2l6ZTouOWVtO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nLXJpZ2h0OjEwcHh9LmFubm90YXRpb25zLXRpdGxlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwO2ZsZXg6MSAxO2hlaWdodDo0MnB4fS5zaG93LXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOi45ZW07bWFyZ2luLXJpZ2h0Oi44ZW19J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHlfdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLWFubm90YXRpb25zLWxpc3QtdG9vbGJhci1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL2Fubm90YXRpb25zX2xpc3RfdG9vbGJhcl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9hbm5vdGF0aW9uc19saXN0X3Rvb2xiYXJfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse251bUFubm90YXRpb25zOlt7dHlwZTp4eX1dLGV4cGFuZGVkOlt7dHlwZTp4eX1dLHNlbGVjdGVkQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0sYW5ub3RhdGlvbnNFeHBhbmRlZDpbe3R5cGU6eHl9XSxzaG93Q291bnRzOlt7dHlwZTp4eX1dLHNob3dIaWRkZW46W3t0eXBlOnh5fV0sb25GbGFnQW5ub3RhdGlvbnM6W3t0eXBlOk95fV0sb25IaWRlQW5ub3RhdGlvbnM6W3t0eXBlOk95fV0sb25Ub2dnbGVFeHBhbmRlZDpbe3R5cGU6T3l9XSxvblRvZ2dsZVNob3dDb3VudHM6W3t0eXBlOk95fV0sb25Ub2dnbGVTaG93SGlkZGVuOlt7dHlwZTpPeX1dfSk7Y2xhc3MgX190e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnNlbGVjdGVkQW5ub3RhdGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KGNidCksdGhpcy5hbm5vdGF0aW9uc0V4cGFuZGVkJD10aGlzLnN0b3JlLnNlbGVjdCh5YnQpLHRoaXMuc2hvd0NvdW50cyQ9dGhpcy5zdG9yZS5zZWxlY3QoQ2J0KSx0aGlzLnNob3dIaWRkZW4kPXRoaXMuc3RvcmUuc2VsZWN0KE1idCksdGhpcy5hbm5vdGF0aW9uc0ZpbHRlciQ9dGhpcy5zdG9yZS5zZWxlY3QobWJ0KSx0aGlzLmlzQW5ub3RhdGlvbnNGaWx0ZXJWYWxpZCQ9dGhpcy5hbm5vdGF0aW9uc0ZpbHRlciQucGlwZShJdCgodD0+e3RyeXtyZXR1cm4gQm9vbGVhbihuZXcgUmVnRXhwKHQpKX1jYXRjaCh0KXtyZXR1cm4hMX19KSkpfWZpbHRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKElidCh7cmVnZXg6dH0pKX1mbGFnQW5ub3RhdGlvbnModCl7dGhpcy5zdG9yZS5kaXNwYXRjaChOYnQoe2Fubm90YXRpb25zOnR9KSl9aGlkZUFubm90YXRpb25zKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goemJ0KHthbm5vdGF0aW9uczp0fSkpfXRvZ2dsZUV4cGFuZGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChHYnQoKSl9dG9nZ2xlU2hvd0NvdW50cygpe3RoaXMuc3RvcmUuZGlzcGF0Y2goWWJ0KCkpfXRvZ2dsZVNob3dIaWRkZW4oKXt0aGlzLnN0b3JlLmRpc3BhdGNoKHFidCgpKX19X190Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfX3QpKFNtKEl3KSl9LF9fdC7JtWNtcD10byh7dHlwZTpfX3Qsc2VsZWN0b3JzOltbIm5wbWktYW5ub3RhdGlvbnMtbGlzdC10b29sYmFyIl1dLGlucHV0czp7bnVtQW5ub3RhdGlvbnM6Im51bUFubm90YXRpb25zIixleHBhbmRlZDoiZXhwYW5kZWQifSxkZWNsczo1LHZhcnM6MTQsY29uc3RzOltbMywibnVtQW5ub3RhdGlvbnMiLCJleHBhbmRlZCIsInNlbGVjdGVkQW5ub3RhdGlvbnMiLCJhbm5vdGF0aW9uc0V4cGFuZGVkIiwic2hvd0NvdW50cyIsInNob3dIaWRkZW4iLCJvbkZsYWdBbm5vdGF0aW9ucyIsIm9uSGlkZUFubm90YXRpb25zIiwib25Ub2dnbGVFeHBhbmRlZCIsIm9uVG9nZ2xlU2hvd0NvdW50cyIsIm9uVG9nZ2xlU2hvd0hpZGRlbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibnBtaS1hbm5vdGF0aW9ucy1saXN0LXRvb2xiYXItY29tcG9uZW50IiwwKSxWbSgib25GbGFnQW5ub3RhdGlvbnMiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmZsYWdBbm5vdGF0aW9ucyhlKX0pKSgib25IaWRlQW5ub3RhdGlvbnMiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmhpZGVBbm5vdGF0aW9ucyhlKX0pKSgib25Ub2dnbGVFeHBhbmRlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi50b2dnbGVFeHBhbmRlZCgpfSkpKCJvblRvZ2dsZVNob3dDb3VudHMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4udG9nZ2xlU2hvd0NvdW50cygpfSkpKCJvblRvZ2dsZVNob3dIaWRkZW4iLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4udG9nZ2xlU2hvd0hpZGRlbigpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQW0oKSksMiZlJiZEbSgibnVtQW5ub3RhdGlvbnMiLG4ubnVtQW5ub3RhdGlvbnMpKCJleHBhbmRlZCIsbi5leHBhbmRlZCkoInNlbGVjdGVkQW5ub3RhdGlvbnMiLFRoKDEsNixuLnNlbGVjdGVkQW5ub3RhdGlvbnMkKSkoImFubm90YXRpb25zRXhwYW5kZWQiLFRoKDIsOCxuLmFubm90YXRpb25zRXhwYW5kZWQkKSkoInNob3dDb3VudHMiLFRoKDMsMTAsbi5zaG93Q291bnRzJCkpKCJzaG93SGlkZGVuIixUaCg0LDEyLG4uc2hvd0hpZGRlbiQpKX0sZGlyZWN0aXZlczpbeV90XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoX190LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktYW5ub3RhdGlvbnMtbGlzdC10b29sYmFyIix0ZW1wbGF0ZTonXG4gICAgPG5wbWktYW5ub3RhdGlvbnMtbGlzdC10b29sYmFyLWNvbXBvbmVudFxuICAgICAgW251bUFubm90YXRpb25zXT0ibnVtQW5ub3RhdGlvbnMiXG4gICAgICBbZXhwYW5kZWRdPSJleHBhbmRlZCJcbiAgICAgIFtzZWxlY3RlZEFubm90YXRpb25zXT0ic2VsZWN0ZWRBbm5vdGF0aW9ucyQgfCBhc3luYyJcbiAgICAgIFthbm5vdGF0aW9uc0V4cGFuZGVkXT0iYW5ub3RhdGlvbnNFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFtzaG93Q291bnRzXT0ic2hvd0NvdW50cyQgfCBhc3luYyJcbiAgICAgIFtzaG93SGlkZGVuXT0ic2hvd0hpZGRlbiQgfCBhc3luYyJcbiAgICAgIChvbkZsYWdBbm5vdGF0aW9ucyk9ImZsYWdBbm5vdGF0aW9ucygkZXZlbnQpIlxuICAgICAgKG9uSGlkZUFubm90YXRpb25zKT0iaGlkZUFubm90YXRpb25zKCRldmVudCkiXG4gICAgICAob25Ub2dnbGVFeHBhbmRlZCk9InRvZ2dsZUV4cGFuZGVkKCkiXG4gICAgICAob25Ub2dnbGVTaG93Q291bnRzKT0idG9nZ2xlU2hvd0NvdW50cygpIlxuICAgICAgKG9uVG9nZ2xlU2hvd0hpZGRlbik9InRvZ2dsZVNob3dIaWRkZW4oKSJcbiAgICA+PC9ucG1pLWFubm90YXRpb25zLWxpc3QtdG9vbGJhci1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7bnVtQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0sZXhwYW5kZWQ6W3t0eXBlOnh5fV19KTtjb25zdCBDX3Q9WyJnbHlwaCJdO2NsYXNzIE1fdHtuZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN2Zz1KNCh0aGlzLmdseXBoU1ZHLm5hdGl2ZUVsZW1lbnQpLHRoaXMubWFpbkNvbnRhaW5lcj10aGlzLnN2Zy5hcHBlbmQoImciKSx0aGlzLmRyYXcoKX1kcmF3KCl7ImNpcmNsZSI9PXRoaXMuc2hhcGU/dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiY2lyY2xlIikuYXR0cigiZmlsbCIsdGhpcy5jb2xvcikuYXR0cigic3Ryb2tlIiwiYmxhY2siKS5hdHRyKCJjeCIsNSkuYXR0cigiY3kiLDUpLmF0dHIoInIiLDUpOiJiYXIiPT10aGlzLnNoYXBlP3RoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoInJlY3QiKS5hdHRyKCJmaWxsIix0aGlzLmNvbG9yKS5hdHRyKCJ4IiwwKS5hdHRyKCJ5IiwwKS5hdHRyKCJ3aWR0aCIsMTApLmF0dHIoImhlaWdodCIsMTApOiJydW5JbmRpY2F0b3IiPT10aGlzLnNoYXBlJiZ0aGlzLm1haW5Db250YWluZXIuYXBwZW5kKCJnIikuYXBwZW5kKCJwYXRoIikuYXR0cigiZmlsbCIsdGhpcy5jb2xvcikuYXR0cigic3Ryb2tlIiwiYmxhY2siKS5hdHRyKCJkIiwiTSAyIDAgTCAxMCAwIEwgNyA1IEwgMTAgMTAgTCAyIDEwIFoiKX19TV90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxNX3QpfSxNX3QuybVjbXA9dG8oe3R5cGU6TV90LHNlbGVjdG9yczpbWyJucG1pLWxlZ2VuZC1lbGVtZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChDX3QsNyxoZyksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5nbHlwaFNWRz10LmZpcnN0KX19LGlucHV0czp7dGV4dDoidGV4dCIsY29sb3I6ImNvbG9yIixzaGFwZToic2hhcGUifSxkZWNsczo0LHZhcnM6MSxjb25zdHM6W1sxLCJnbHlwaCJdLFsiZ2x5cGgiLCIiXSxbMSwibGVnZW5kLWVsZW1lbnQtdGl0bGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHFpKCksVG0oMCwic3ZnIiwwLDEpLFppKCksUm0oMiwiZGl2IiwyKSxrdSgzKSxBbSgpKSwyJmUmJihyYygzKSxTdShuLnRleHQpKX0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3BhZGRpbmctcmlnaHQ6MTBweH0ubGVnZW5kLWVsZW1lbnQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTouOGVtO3BhZGRpbmctbGVmdDo1cHh9LmdseXBoW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMHB4O2hlaWdodDoxMHB4fSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChNX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1sZWdlbmQtZWxlbWVudCIsdGVtcGxhdGVVcmw6Ii4vbGVnZW5kX2VsZW1lbnRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vbGVnZW5kX2VsZW1lbnRfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse3RleHQ6W3t0eXBlOnh5fV0sY29sb3I6W3t0eXBlOnh5fV0sc2hhcGU6W3t0eXBlOnh5fV0sZ2x5cGhTVkc6W3t0eXBlOlphLGFyZ3M6WyJnbHlwaCIse3N0YXRpYzohMCxyZWFkOmhnfV19XX0pO2NsYXNzIHZfdHt9ZnVuY3Rpb24geF90KHQsZSl7aWYoMSZ0JiZUbSgwLCJtYXQtaWNvbiIsOCksMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJzdmdJY29uIix0LnNvcnQub3JkZXI9PT10LlNvcnRPcmRlci5ERVNDRU5ESU5HPyJhcnJvd19kb3dud2FyZF8yNHB4IjoiYXJyb3dfdXB3YXJkXzI0cHgiKSgibmdDbGFzcyIsdC5zb3J0Lm9yZGVyPT09dC5Tb3J0T3JkZXIuREVTQ0VORElORz8iZG93bi1pY29uIjoidXAtaWNvbiIpfX1mdW5jdGlvbiBPX3QodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDQpLFJtKDEsImRpdiIsNSksUm0oMiwiZGl2Iiw2KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7Y29uc3Qgbj1oaSh0KS4kaW1wbGljaXQ7cmV0dXJuIFltKCkub25DaGFuZ2VTb3J0LmVtaXQobil9KSksa3UoMyksUXAoNCx4X3QsMSwyLCJtYXQtaWNvbiIsNyksQW0oKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oKTtyYygzKSxEdSgiICIsbi5zdHJpcE1ldHJpYyh0KSwiICIpLHJjKDEpLERtKCJuZ0lmIix0PT09bi5zb3J0Lm1ldHJpYyl9fXZfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dl90KX0sdl90Lsm1Y21wPXRvKHt0eXBlOnZfdCxzZWxlY3RvcnM6W1sibnBtaS1hbm5vdGF0aW9ucy1saXN0LWxlZ2VuZCJdXSxkZWNsczo0LHZhcnM6MCxjb25zdHM6W1sidGV4dCIsInJ1biBpbmRpY2F0b3IiLCJjb2xvciIsInJnYigwLDAsMCkiLCJzaGFwZSIsInJ1bkluZGljYXRvciJdLFsidGV4dCIsInBvc2l0aXZlIGNvcnJlbGF0aW9uIiwiY29sb3IiLCJyZ2IoMTA5LCAxNzQsIDIxMykiLCJzaGFwZSIsImJhciJdLFsidGV4dCIsIm5lZ2F0aXZlIGNvcnJlbGF0aW9uIiwiY29sb3IiLCJyZ2IoMjQ5LCAxMDUsIDc2KSIsInNoYXBlIiwiYmFyIl0sWyJ0ZXh0Iiwic2FtcGxlIGNvdW50IiwiY29sb3IiLCJyZ2IoMTUxLCAxNTEsIDE1MSkiLCJzaGFwZSIsImNpcmNsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwibnBtaS1sZWdlbmQtZWxlbWVudCIsMCksVG0oMSwibnBtaS1sZWdlbmQtZWxlbWVudCIsMSksVG0oMiwibnBtaS1sZWdlbmQtZWxlbWVudCIsMiksVG0oMywibnBtaS1sZWdlbmQtZWxlbWVudCIsMykpfSxkaXJlY3RpdmVzOltNX3RdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O3BhZGRpbmc6MCAxNnB4fSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh2X3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1hbm5vdGF0aW9ucy1saXN0LWxlZ2VuZCIsdGVtcGxhdGVVcmw6Ii4vbGVnZW5kX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2xlZ2VuZF9jb21wb25lbnQuY3NzIl19XX1dLG51bGwsbnVsbCk7Y2xhc3MgUF90e2NvbnN0cnVjdG9yKCl7dGhpcy5vbkNoYW5nZVNvcnQ9bmV3IExoLHRoaXMub25BbGxBbm5vdGF0aW9uc1RvZ2dsZWQ9bmV3IExoLHRoaXMuU29ydE9yZGVyPW5idH1zdHJpcE1ldHJpYyh0KXtyZXR1cm4gbnl0KHQpfX1QX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFBfdCl9LFBfdC7JtWNtcD10byh7dHlwZTpQX3Qsc2VsZWN0b3JzOltbIm5wbWktYW5ub3RhdGlvbnMtbGlzdC1oZWFkZXItY29tcG9uZW50Il1dLGlucHV0czp7bnVtQW5ub3RhdGlvbnM6Im51bUFubm90YXRpb25zIixzZWxlY3RlZEFubm90YXRpb25zOiJzZWxlY3RlZEFubm90YXRpb25zIixhY3RpdmVNZXRyaWNzOiJhY3RpdmVNZXRyaWNzIixzb3J0OiJzb3J0In0sb3V0cHV0czp7b25DaGFuZ2VTb3J0OiJvbkNoYW5nZVNvcnQiLG9uQWxsQW5ub3RhdGlvbnNUb2dnbGVkOiJvbkFsbEFubm90YXRpb25zVG9nZ2xlZCJ9LGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWzEsInRvZ2dsZS1hbGwtY29udGFpbmVyIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbMSwiYW5ub3RhdGlvbnMtaGVhZGVyLWNvbnRhaW5lcnMiXSxbImNsYXNzIiwiaGVhZGVyLWNvbHVtbiIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImhlYWRlci1jb2x1bW4iXSxbMSwiaGVhZGVyLWNvbnRhaW5lciJdLFsidGFiaW5kZXgiLCIwIiwicm9sZSIsImJ1dHRvbiIsInRpdGxlIiwiQ2hhbmdlIHRoZSBzb3J0IGJ5IGNsaWNraW5nIGFueSBvZiB0aGUgbWV0cmljcy4iLDEsImhlYWRlci1jbGlja2FibGUiLDMsImNsaWNrIl0sWyJjbGFzcyIsInNvcnQtaWNvbiIsMywic3ZnSWNvbiIsIm5nQ2xhc3MiLDQsIm5nSWYiXSxbMSwic29ydC1pY29uIiwzLCJzdmdJY29uIiwibmdDbGFzcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJtYXQtY2hlY2tib3giLDEpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uQWxsQW5ub3RhdGlvbnNUb2dnbGVkLmVtaXQoZS5jaGVja2VkKX0pKSxBbSgpLEFtKCksUm0oMiwiZGl2IiwyKSxRcCgzLE9fdCw1LDIsImRpdiIsMyksQW0oKSksMiZlJiYocmMoMSksRG0oImNoZWNrZWQiLG4uc2VsZWN0ZWRBbm5vdGF0aW9ucy5sZW5ndGg9PT1uLm51bUFubm90YXRpb25zKSxyYygyKSxEbSgibmdGb3JPZiIsbi5hY3RpdmVNZXRyaWNzKSl9LGRpcmVjdGl2ZXM6W09ZLGxNLGRNLERXLGFNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2hlaWdodDoyOHB4O2FsaWduLWl0ZW1zOmZsZXgtZW5kO21hcmdpbi10b3A6OHB4fS5hbm5vdGF0aW9ucy1oZWFkZXItY29udGFpbmVyc1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZTouOWVtO2ZvbnQtd2VpZ2h0OjUwMDtmbGV4LWdyb3c6MX0uaGVhZGVyLWNvbHVtbltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxIDF9LmhlYWRlci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oZWFkZXItY2xpY2thYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7b3V0bGluZTpub25lfS50b2dnbGUtYWxsLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWxlZnQ6MTBweDt3aWR0aDo5MHB4fS5zb3J0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxNnB4fSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChQX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1hbm5vdGF0aW9ucy1saXN0LWhlYWRlci1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL2hlYWRlcl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9oZWFkZXJfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse251bUFubm90YXRpb25zOlt7dHlwZTp4eX1dLHNlbGVjdGVkQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0sYWN0aXZlTWV0cmljczpbe3R5cGU6eHl9XSxzb3J0Olt7dHlwZTp4eX1dLG9uQ2hhbmdlU29ydDpbe3R5cGU6T3l9XSxvbkFsbEFubm90YXRpb25zVG9nZ2xlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIHdfdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5zZWxlY3RlZEFubm90YXRpb25zJD10aGlzLnN0b3JlLnNlbGVjdChjYnQpLHRoaXMuYW5ub3RhdGlvblNvcnQkPXRoaXMuc3RvcmUuc2VsZWN0KGhidCl9Y2hhbmdlU29ydCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKFZidCh7bWV0cmljOnR9KSl9YWxsQW5ub3RhdGlvbnNUb2dnbGVkKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goQWJ0KHQ/e2Fubm90YXRpb25zOk9iamVjdC5rZXlzKHRoaXMuYW5ub3RhdGlvbnMpfTp7YW5ub3RhdGlvbnM6W119KSl9fXdfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8d190KShTbShJdykpfSx3X3QuybVjbXA9dG8oe3R5cGU6d190LHNlbGVjdG9yczpbWyJucG1pLWFubm90YXRpb25zLWxpc3QtaGVhZGVyIl1dLGlucHV0czp7bnVtQW5ub3RhdGlvbnM6Im51bUFubm90YXRpb25zIixhbm5vdGF0aW9uczoiYW5ub3RhdGlvbnMiLGFjdGl2ZU1ldHJpY3M6ImFjdGl2ZU1ldHJpY3MifSxkZWNsczozLHZhcnM6OCxjb25zdHM6W1szLCJudW1Bbm5vdGF0aW9ucyIsInNlbGVjdGVkQW5ub3RhdGlvbnMiLCJzb3J0IiwiYWN0aXZlTWV0cmljcyIsIm9uQ2hhbmdlU29ydCIsIm9uQWxsQW5ub3RhdGlvbnNUb2dnbGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJucG1pLWFubm90YXRpb25zLWxpc3QtaGVhZGVyLWNvbXBvbmVudCIsMCksVm0oIm9uQ2hhbmdlU29ydCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uY2hhbmdlU29ydChlKX0pKSgib25BbGxBbm5vdGF0aW9uc1RvZ2dsZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmFsbEFubm90YXRpb25zVG9nZ2xlZChlKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQW0oKSksMiZlJiZEbSgibnVtQW5ub3RhdGlvbnMiLG4ubnVtQW5ub3RhdGlvbnMpKCJzZWxlY3RlZEFubm90YXRpb25zIixUaCgxLDQsbi5zZWxlY3RlZEFubm90YXRpb25zJCkpKCJzb3J0IixUaCgyLDYsbi5hbm5vdGF0aW9uU29ydCQpKSgiYWN0aXZlTWV0cmljcyIsbi5hY3RpdmVNZXRyaWNzKX0sZGlyZWN0aXZlczpbUF90XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgod190LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktYW5ub3RhdGlvbnMtbGlzdC1oZWFkZXIiLHRlbXBsYXRlOidcbiAgICA8bnBtaS1hbm5vdGF0aW9ucy1saXN0LWhlYWRlci1jb21wb25lbnRcbiAgICAgIFtudW1Bbm5vdGF0aW9uc109Im51bUFubm90YXRpb25zIlxuICAgICAgW3NlbGVjdGVkQW5ub3RhdGlvbnNdPSJzZWxlY3RlZEFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW3NvcnRdPSJhbm5vdGF0aW9uU29ydCQgfCBhc3luYyJcbiAgICAgIFthY3RpdmVNZXRyaWNzXT0iYWN0aXZlTWV0cmljcyJcbiAgICAgIChvbkNoYW5nZVNvcnQpPSJjaGFuZ2VTb3J0KCRldmVudCkiXG4gICAgICAob25BbGxBbm5vdGF0aW9uc1RvZ2dsZWQpPSJhbGxBbm5vdGF0aW9uc1RvZ2dsZWQoJGV2ZW50KSJcbiAgICA+PC9ucG1pLWFubm90YXRpb25zLWxpc3QtaGVhZGVyLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLHtudW1Bbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxhbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxhY3RpdmVNZXRyaWNzOlt7dHlwZTp4eX1dfSk7Y29uc3Qga190PVsiY2hhcnQiXSxTX3Q9WyJoaW50Q2xpcCJdO2Z1bmN0aW9uIERfdCh0LGUpezEmdCYmVG0oMCwibWF0LWljb24iLDEyKX1mdW5jdGlvbiBFX3QodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiwxMyl9ZnVuY3Rpb24gUl90KHQsZSl7aWYoMSZ0JiZUbSgwLCJtYXQtaWNvbiIsMTQpLDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJzdmdJY29uIix0LnNvcnQub3JkZXI9PT10LlNvcnRPcmRlci5TSU1JTEFSPyJhcnJvd19kb3dud2FyZF8yNHB4IjoiYXJyb3dfdXB3YXJkXzI0cHgiKSgibmdDbGFzcyIsdC5zb3J0Lm9yZGVyPT09dC5Tb3J0T3JkZXIuU0lNSUxBUj8iZG93bi1pY29uIjoidXAtaWNvbiIpfX1jbGFzcyBBX3R7Y29uc3RydWN0b3IoKXt0aGlzLnNlbGVjdGVkPSExLHRoaXMub25TaG93U2ltaWxhckFubm90YXRpb25zPW5ldyBMaCx0aGlzLlNvcnRPcmRlcj1uYnQsdGhpcy53aWR0aD0xMCx0aGlzLmNoYXJ0V2lkdGg9MTAsdGhpcy5jaGFydEhlaWdodD0xMCx0aGlzLm1heERvdFJhZGl1cz0xMCx0aGlzLmNvdW50RG90T2Zmc2V0PTcwLHRoaXMuY291bnRUZXh0UGFkZGluZz0yLHRoaXMubWFyZ2luPXt0b3A6MCxyaWdodDowLGJvdHRvbTowLGxlZnQ6MTAwfSx0aGlzLnN0cm9rZUNvbG9yPSIjZmZmIix0aGlzLnRleHRDbGFzcz0iZGVmYXVsdC10ZXh0Iix0aGlzLnJ1bnM9W119b25SZXNpemUodCl7dGhpcy5yZWRyYXcoKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN2Zz1KNCh0aGlzLmFubm90YXRpb25Db250YWluZXIubmF0aXZlRWxlbWVudCkuc2VsZWN0KCJzdmciKSx0aGlzLnhTY2FsZT1VdHQoKS5wYWRkaW5nKDApLHRoaXMueVNjYWxlPVV0dCgpLnBhZGRpbmcoMCksdGhpcy5zaXplU2NhbGU9ZWV0KCkuZG9tYWluKFswLDFdKSx0aGlzLmNvdW50U2l6ZVNjYWxlPWVldCgpLnJhbmdlKFsyLHRoaXMubWF4RG90UmFkaXVzXSksdGhpcy5tYWluQ29udGFpbmVyPXRoaXMuc3ZnLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke3RoaXMubWFyZ2luLmxlZnR9LCAke3RoaXMubWFyZ2luLnRvcH0pYCksdGhpcy5iYXJzR3JvdXA9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLHRoaXMuY291bnREb3RzR3JvdXA9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLHRoaXMudGV4dHNHcm91cD10aGlzLm1haW5Db250YWluZXIuYXBwZW5kKCJnIiksdGhpcy5jb3VudFRleHRzR3JvdXA9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLHRoaXMucnVuSGludEdyb3VwPXRoaXMuc3ZnLmFwcGVuZCgiZyIpLHRoaXMucmVkcmF3KCl9bmdPbkNoYW5nZXModCl7dGhpcy5zdmcmJnRoaXMucmVkcmF3KCl9cmVkcmF3KCl7dGhpcy5zZWxlY3RlZD10aGlzLnNlbGVjdGVkQW5ub3RhdGlvbnMuaW5jbHVkZXModGhpcy5hbm5vdGF0aW9uKSx0aGlzLnVwZGF0ZURpbWVuc2lvbnMoKSx0aGlzLnNldFRleHRDbGFzcygpLHRoaXMudXBkYXRlQXhlcygpLHRoaXMuZHJhdygpfXVwZGF0ZURpbWVuc2lvbnMoKXtjb25zdCB0PW5ldyBTZXQ7dGhpcy5kYXRhLmZvckVhY2goKGU9Pnt0LmFkZChlLnJ1bil9KSksdGhpcy5ydW5zPVsuLi50XSx0aGlzLnN2Zy5zdHlsZSgiaGVpZ2h0Iix0aGlzLm51bUFjdGl2ZVJ1bnMqdGhpcy5ydW5IZWlnaHQrInB4IiksdGhpcy5jaGFydEhlaWdodD10aGlzLnJ1bnMubGVuZ3RoKnRoaXMucnVuSGVpZ2h0LXRoaXMubWFyZ2luLnRvcC10aGlzLm1hcmdpbi5ib3R0b20sdGhpcy53aWR0aD10aGlzLmFubm90YXRpb25Db250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aHx8MTAsdGhpcy5jaGFydFdpZHRoPXRoaXMud2lkdGgtdGhpcy5tYXJnaW4ubGVmdC10aGlzLm1hcmdpbi5yaWdodH1zZXRUZXh0Q2xhc3MoKXt0aGlzLnRleHRDbGFzcz0iZGVmYXVsdC10ZXh0Iix0aGlzLmZsYWdnZWRBbm5vdGF0aW9ucy5pbmNsdWRlcyh0aGlzLmFubm90YXRpb24pP3RoaXMudGV4dENsYXNzPSJmbGFnLXRleHQiOnRoaXMuaGlkZGVuQW5ub3RhdGlvbnMuaW5jbHVkZXModGhpcy5hbm5vdGF0aW9uKSYmKHRoaXMudGV4dENsYXNzPSJoaWRkZW4tdGV4dCIpfXVwZGF0ZUF4ZXMoKXt0aGlzLnhTY2FsZS5yYW5nZVJvdW5kKFswLHRoaXMuY2hhcnRXaWR0aC10aGlzLmNoYXJ0V2lkdGgvdGhpcy5hY3RpdmVNZXRyaWNzLmxlbmd0aF0pLmRvbWFpbih0aGlzLmFjdGl2ZU1ldHJpY3MubWFwKCh0PT5ueXQodCkpKSksdGhpcy55U2NhbGUucmFuZ2VSb3VuZChbMCx0aGlzLmNoYXJ0SGVpZ2h0LXRoaXMucnVuSGVpZ2h0XSkuZG9tYWluKHRoaXMucnVucyksdGhpcy5zaXplU2NhbGUucmFuZ2UoWzAsdGhpcy5jaGFydFdpZHRoL3RoaXMuYWN0aXZlTWV0cmljcy5sZW5ndGhdKSx0aGlzLmNvdW50U2l6ZVNjYWxlLmRvbWFpbihbMCx0aGlzLm1heENvdW50XSl9ZHJhdygpe3RoaXMuZHJhd1J1bkluZGljYXRvcnMoKSx0aGlzLmRyYXdSdW5IaW50VGV4dHMoKSx0aGlzLmRyYXdCYXJzKCksdGhpcy5kcmF3VGV4dHMoKSx0aGlzLnNob3dDb3VudHM/KHRoaXMuZHJhd0NvdW50RG90cygpLHRoaXMuZHJhd0NvdW50VGV4dHMoKSk6KHRoaXMuY291bnREb3RzR3JvdXAuc2VsZWN0QWxsKCIuY291bnQtZG90IikucmVtb3ZlKCksdGhpcy5jb3VudFRleHRzR3JvdXAuc2VsZWN0QWxsKCIuY291bnQtYmFja2dyb3VuZC10ZXh0IikucmVtb3ZlKCksdGhpcy5jb3VudFRleHRzR3JvdXAuc2VsZWN0QWxsKCIuY291bnQtdGV4dCIpLnJlbW92ZSgpKX1kcmF3UnVuSW5kaWNhdG9ycygpe0o0KHRoaXMuY2xpcFBhdGhFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLnNlbGVjdCgicmVjdCIpLmF0dHIoIndpZHRoIix0aGlzLm1hcmdpbi5sZWZ0LTMwKS5hdHRyKCJoZWlnaHQiLHRoaXMuY2hhcnRIZWlnaHQpO2NvbnN0IHQ9dGhpcy5ydW5IaW50R3JvdXAuc2VsZWN0QWxsKCIuaGludCIpLmRhdGEodGhpcy5ydW5zKSxlPXQuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImhpbnQiKTtlLmFwcGVuZCgicGF0aCIpLmF0dHIoImQiLCJNIDAgMCBMIDE1IDAgTCAxMCAxMCBMIDE1IDIwIEwgMCAyMCBaIiksZS5tZXJnZSh0KS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3JldHVybmB0cmFuc2xhdGUoMTAsICR7dGhpcy55U2NhbGUodCkrNX0pYH0uYmluZCh0aGlzKSkuYXR0cigiZmlsbCIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29sb3JTY2FsZSh0KX0uYmluZCh0aGlzKSksdC5leGl0KCkucmVtb3ZlKCl9ZHJhd1J1bkhpbnRUZXh0cygpe2NvbnN0IHQ9dGhpcy5ydW5IaW50R3JvdXAuc2VsZWN0QWxsKCIuaGludC10ZXh0IikuZGF0YSh0aGlzLnJ1bnMpO3QuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5hdHRyKCJ4IiwyNSkuYXR0cigiZm9udC1zaXplIiwiMTBweCIpLmF0dHIoImFsaWdubWVudC1iYXNlbGluZSIsIm1pZGRsZSIpLmF0dHIoImNsaXAtcGF0aCIsInVybCgjaGludC1jbGlwKSIpLm1lcmdlKHQpLmF0dHIoInkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnlTY2FsZSh0KSsxNX0uYmluZCh0aGlzKSkuYXR0cigiY2xhc3MiLGBoaW50LXRleHQgJHt0aGlzLnRleHRDbGFzc31gKS50ZXh0KCh0PT57dmFyIGU7cmV0dXJuKG51bGw9PT0oZT10aGlzLnJ1bklkVG9SdW5zLmdldCh0KSl8fHZvaWQgMD09PWU/dm9pZCAwOmUubmFtZSl8fCIifSkpLHQuZXhpdCgpLnJlbW92ZSgpfWRyYXdCYXJzKCl7Y29uc3QgdD10aGlzLmJhcnNHcm91cC5zZWxlY3RBbGwoIi5iYXIiKS5kYXRhKHRoaXMuZGF0YSk7dC5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiYmFyIikuYXR0cigiaGVpZ2h0IiwyMCkubWVyZ2UodCkuYXR0cigiZmlsbCIsKHQ9Pm51bGw9PT10Lm5QTUlWYWx1ZT8iIjp0Lm5QTUlWYWx1ZT49MD9ib3QodC5uUE1JVmFsdWUpOl9vdCgtMSp0Lm5QTUlWYWx1ZSkpKS5hdHRyKCJ4IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54U2NhbGUodC5tZXRyaWMpfS5iaW5kKHRoaXMpKS5hdHRyKCJ5IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy55U2NhbGUodC5ydW4pKzV9LmJpbmQodGhpcykpLmF0dHIoIndpZHRoIixmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09PXQublBNSVZhbHVlPzA6dGhpcy5zaXplU2NhbGUoTWF0aC5hYnModC5uUE1JVmFsdWUpKX0uYmluZCh0aGlzKSksdC5leGl0KCkucmVtb3ZlKCl9ZHJhd0NvdW50RG90cygpe2NvbnN0IHQ9dGhpcy5jb3VudERvdHNHcm91cC5zZWxlY3RBbGwoIi5jb3VudC1kb3QiKS5kYXRhKHRoaXMuZGF0YSk7dC5lbnRlcigpLmFwcGVuZCgiY2lyY2xlIikuYXR0cigiY2xhc3MiLCJjb3VudC1kb3QiKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLm1lcmdlKHQpLmF0dHIoImZpbGwiLGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dC5jb3VudFZhbHVlPyIiOnlvdCh0LmNvdW50VmFsdWUvdGhpcy5tYXhDb3VudCl9LmJpbmQodGhpcykpLmF0dHIoImN4IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54U2NhbGUodC5tZXRyaWMpK3RoaXMuY291bnREb3RPZmZzZXR9LmJpbmQodGhpcykpLmF0dHIoImN5IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy55U2NhbGUodC5ydW4pK3RoaXMucnVuSGVpZ2h0LzJ9LmJpbmQodGhpcykpLmF0dHIoInIiLGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dC5jb3VudFZhbHVlPzA6dGhpcy5jb3VudFNpemVTY2FsZSh0LmNvdW50VmFsdWUpfS5iaW5kKHRoaXMpKSx0LmV4aXQoKS5yZW1vdmUoKX1kcmF3VGV4dHMoKXtjb25zdCB0PXRoaXMudGV4dHNHcm91cC5zZWxlY3RBbGwoIi5ucG1pLWJhY2tncm91bmQtdGV4dCIpLmRhdGEodGhpcy5kYXRhKTt0LmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuYXR0cigiY2xhc3MiLCJucG1pLWJhY2tncm91bmQtdGV4dCIpLmF0dHIoInN0cm9rZS13aWR0aCIsMykuYXR0cigic3Ryb2tlLWxpbmVqb2luIiwicm91bmQiKS5hdHRyKCJzdHJva2UiLHRoaXMuc3Ryb2tlQ29sb3IpLmF0dHIoImZvbnQtc2l6ZSIsIjEzcHgiKS5hdHRyKCJhbGlnbm1lbnQtYmFzZWxpbmUiLCJtaWRkbGUiKS5tZXJnZSh0KS5hdHRyKCJ4IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54U2NhbGUodC5tZXRyaWMpKzV9LmJpbmQodGhpcykpLmF0dHIoInkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnlTY2FsZSh0LnJ1bikrdGhpcy5ydW5IZWlnaHQvMn0uYmluZCh0aGlzKSkudGV4dCgodD0+bnVsbD09PXQublBNSVZhbHVlPyJudWxsIjpNYXRoLnJvdW5kKDFlMyoodC5uUE1JVmFsdWUrTnVtYmVyLkVQU0lMT04pKS8xZTMpKSx0LmV4aXQoKS5yZW1vdmUoKTtjb25zdCBlPXRoaXMudGV4dHNHcm91cC5zZWxlY3RBbGwoIi5ucG1pLXRleHQiKS5kYXRhKHRoaXMuZGF0YSk7ZS5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIiwibnBtaS10ZXh0IikuYXR0cigiZm9udC1zaXplIiwiMTNweCIpLmF0dHIoImFsaWdubWVudC1iYXNlbGluZSIsIm1pZGRsZSIpLm1lcmdlKGUpLmF0dHIoIngiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnhTY2FsZSh0Lm1ldHJpYykrNX0uYmluZCh0aGlzKSkuYXR0cigieSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueVNjYWxlKHQucnVuKSt0aGlzLnJ1bkhlaWdodC8yfS5iaW5kKHRoaXMpKS50ZXh0KCh0PT5udWxsPT09dC5uUE1JVmFsdWU/Im51bGwiOk1hdGgucm91bmQoMWUzKih0Lm5QTUlWYWx1ZStOdW1iZXIuRVBTSUxPTikpLzFlMykpLGUuZXhpdCgpLnJlbW92ZSgpfWRyYXdDb3VudFRleHRzKCl7Y29uc3QgdD10aGlzLmNvdW50VGV4dHNHcm91cC5zZWxlY3RBbGwoIi5jb3VudC1iYWNrZ3JvdW5kLXRleHQiKS5kYXRhKHRoaXMuZGF0YSk7dC5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIiwiY291bnQtYmFja2dyb3VuZC10ZXh0IikuYXR0cigic3Ryb2tlLXdpZHRoIiwzKS5hdHRyKCJzdHJva2UtbGluZWpvaW4iLCJyb3VuZCIpLmF0dHIoInN0cm9rZSIsdGhpcy5zdHJva2VDb2xvcikuYXR0cigiZm9udC1zaXplIiwiMTBweCIpLmF0dHIoImFsaWdubWVudC1iYXNlbGluZSIsIm1pZGRsZSIpLm1lcmdlKHQpLmF0dHIoIngiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnhTY2FsZSh0Lm1ldHJpYykrdGhpcy5jb3VudERvdE9mZnNldCt0aGlzLmNvdW50VGV4dFBhZGRpbmcrdGhpcy5tYXhEb3RSYWRpdXN9LmJpbmQodGhpcykpLmF0dHIoInkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnlTY2FsZSh0LnJ1bikrdGhpcy5ydW5IZWlnaHQvMn0uYmluZCh0aGlzKSkudGV4dCgodD0+bnVsbD09PXQuY291bnRWYWx1ZT8iIjpJbnRsLk51bWJlckZvcm1hdCgpLmZvcm1hdCh0LmNvdW50VmFsdWUpKSksdC5leGl0KCkucmVtb3ZlKCk7Y29uc3QgZT10aGlzLmNvdW50VGV4dHNHcm91cC5zZWxlY3RBbGwoIi5jb3VudC10ZXh0IikuZGF0YSh0aGlzLmRhdGEpO2UuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5hdHRyKCJjbGFzcyIsImNvdW50LXRleHQiKS5hdHRyKCJmb250LXNpemUiLCIxMHB4IikuYXR0cigiYWxpZ25tZW50LWJhc2VsaW5lIiwibWlkZGxlIikubWVyZ2UoZSkuYXR0cigieCIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueFNjYWxlKHQubWV0cmljKSt0aGlzLmNvdW50RG90T2Zmc2V0K3RoaXMuY291bnRUZXh0UGFkZGluZyt0aGlzLm1heERvdFJhZGl1c30uYmluZCh0aGlzKSkuYXR0cigieSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueVNjYWxlKHQucnVuKSt0aGlzLnJ1bkhlaWdodC8yfS5iaW5kKHRoaXMpKS50ZXh0KCh0PT5udWxsPT09dC5jb3VudFZhbHVlPyIiOkludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0KHQuY291bnRWYWx1ZSkpKSxlLmV4aXQoKS5yZW1vdmUoKX1zaW1pbGFyaXR5U29ydCh0KXt0aGlzLmhhc0VtYmVkZGluZyYmKHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vblNob3dTaW1pbGFyQW5ub3RhdGlvbnMuZW1pdCgpKX19QV90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBX3QpfSxBX3QuybVjbXA9dG8oe3R5cGU6QV90LHNlbGVjdG9yczpbWyJhbm5vdGF0aW9uLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKGtfdCw3LGhnKSxRaChTX3QsNyxoZykpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uYW5ub3RhdGlvbkNvbnRhaW5lcj10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5jbGlwUGF0aEVsZW1lbnQ9dC5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgicmVzaXplIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVzaXplKCl9KSwhMSxvbCksMiZlJiZwdSgic2VsZWN0ZWQtcm93IixuLnNlbGVjdGVkKX0saW5wdXRzOntkYXRhOiJkYXRhIixtYXhDb3VudDoibWF4Q291bnQiLHNlbGVjdGVkQW5ub3RhdGlvbnM6InNlbGVjdGVkQW5ub3RhdGlvbnMiLGZsYWdnZWRBbm5vdGF0aW9uczoiZmxhZ2dlZEFubm90YXRpb25zIixoaWRkZW5Bbm5vdGF0aW9uczoiaGlkZGVuQW5ub3RhdGlvbnMiLGFjdGl2ZU1ldHJpY3M6ImFjdGl2ZU1ldHJpY3MiLG51bUFjdGl2ZVJ1bnM6Im51bUFjdGl2ZVJ1bnMiLHNob3dDb3VudHM6InNob3dDb3VudHMiLGFubm90YXRpb246ImFubm90YXRpb24iLHJ1bkhlaWdodDoicnVuSGVpZ2h0IixoYXNFbWJlZGRpbmc6Imhhc0VtYmVkZGluZyIsc29ydDoic29ydCIsc2lkZWJhcldpZHRoOiJzaWRlYmFyV2lkdGgiLGNvbG9yU2NhbGU6ImNvbG9yU2NhbGUiLHJ1bklkVG9SdW5zOiJydW5JZFRvUnVucyJ9LG91dHB1dHM6e29uU2hvd1NpbWlsYXJBbm5vdGF0aW9uczoib25TaG93U2ltaWxhckFubm90YXRpb25zIn0sZmVhdHVyZXM6W0JvXSxkZWNsczoxNCx2YXJzOjEwLGNvbnN0czpbWzEsImFubm90YXRpb24tdGl0bGUiXSxbMSwiYW5ub3RhdGlvbi1jaGVja2JveCIsMywiY2hlY2tlZCIsImNsaWNrIl0sWzEsImFubm90YXRpb24tYnV0dG9uIiwzLCJuZ0NsYXNzIiwiY2xpY2siXSxbImNsYXNzIiwiZmxhZ2dlZC1pY29uIiwic3ZnSWNvbiIsImZsYWdfMjRweCIsNCwibmdJZiJdLFsiY2xhc3MiLCJoaWRkZW4taWNvbiIsInN2Z0ljb24iLCJ2aXNpYmlsaXR5X29mZl8yNHB4Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImFubm90YXRpb24taWNvbiIsMywic3ZnSWNvbiIsIm5nQ2xhc3MiLDQsIm5nSWYiXSxbMSwiY2hhcnQtZGl2Il0sWyJjaGFydCIsIiJdLFsxLCJjaGFydC1zdmciXSxbImlkIiwiaGludC1jbGlwIl0sWyJoaW50Q2xpcCIsIiJdLFsieCIsIjAiLCJ5IiwiMCJdLFsic3ZnSWNvbiIsImZsYWdfMjRweCIsMSwiZmxhZ2dlZC1pY29uIl0sWyJzdmdJY29uIiwidmlzaWJpbGl0eV9vZmZfMjRweCIsMSwiaGlkZGVuLWljb24iXSxbMSwiYW5ub3RhdGlvbi1pY29uIiwzLCJzdmdJY29uIiwibmdDbGFzcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJtYXQtY2hlY2tib3giLDEpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUucHJldmVudERlZmF1bHQoKX0pKSxBbSgpLFJtKDIsImJ1dHRvbiIsMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5zaW1pbGFyaXR5U29ydChlKX0pKSxrdSgzKSxBbSgpLFFwKDQsRF90LDEsMCwibWF0LWljb24iLDMpLFFwKDUsRV90LDEsMCwibWF0LWljb24iLDQpLFFwKDYsUl90LDEsMiwibWF0LWljb24iLDUpLEFtKCksUm0oNywiZGl2Iiw2LDcpLHFpKCksUm0oOSwic3ZnIiw4KSxSbSgxMCwiZGVmcyIpLFJtKDExLCJjbGlwUGF0aCIsOSwxMCksVG0oMTMsInJlY3QiLDExKSxBbSgpLEFtKCksQW0oKSxBbSgpKSwyJmUmJihwdSgiZmxhZ2dlZC1hbm5vdGF0aW9uIixuLmZsYWdnZWRBbm5vdGF0aW9ucy5pbmNsdWRlcyhuLmFubm90YXRpb24pKSgiaGlkZGVuLWFubm90YXRpb24iLG4uaGlkZGVuQW5ub3RhdGlvbnMuaW5jbHVkZXMobi5hbm5vdGF0aW9uKSYmIW4uZmxhZ2dlZEFubm90YXRpb25zLmluY2x1ZGVzKG4uYW5ub3RhdGlvbikpLHJjKDEpLERtKCJjaGVja2VkIixuLnNlbGVjdGVkQW5ub3RhdGlvbnMuaW5jbHVkZXMobi5hbm5vdGF0aW9uKSkscmMoMSksRG0oIm5nQ2xhc3MiLG4uaGFzRW1iZWRkaW5nPyJjbGlja2FibGUtYW5ub3RhdGlvbiI6IiIpLHJjKDEpLER1KCIgIixuLmFubm90YXRpb24sIiAiKSxyYygxKSxEbSgibmdJZiIsbi5mbGFnZ2VkQW5ub3RhdGlvbnMuaW5jbHVkZXMobi5hbm5vdGF0aW9uKSkscmMoMSksRG0oIm5nSWYiLG4uaGlkZGVuQW5ub3RhdGlvbnMuaW5jbHVkZXMobi5hbm5vdGF0aW9uKSkscmMoMSksRG0oIm5nSWYiLG4uYW5ub3RhdGlvbj09PW4uc29ydC5tZXRyaWMpKX0sZGlyZWN0aXZlczpbT1ksYU0sZE0sRFddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudHtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50e2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnR7Zm9udC1zaXplOjI0cHh9Lm1hdC1oMSwubWF0LWhlYWRsaW5lLC5tYXQtdHlwb2dyYXBoeSBoMXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMiwubWF0LXRpdGxlLC5tYXQtdHlwb2dyYXBoeSBoMntmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMywubWF0LXN1YmhlYWRpbmctMiwubWF0LXR5cG9ncmFwaHkgaDN7Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDQsLm1hdC1zdWJoZWFkaW5nLTEsLm1hdC10eXBvZ3JhcGh5IGg0e2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1LC5tYXQtdHlwb2dyYXBoeSBoNXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNiwubWF0LXR5cG9ncmFwaHkgaDZ7Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmcsLm1hdC1ib2R5LTJ7Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5LC5tYXQtYm9keS0xLC5tYXQtdHlwb2dyYXBoeXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHkgcCwubWF0LWJvZHktMSBwLC5tYXQtdHlwb2dyYXBoeSBwe21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsLC5tYXQtY2FwdGlvbntmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNCwubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTR7Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zLC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktM3tmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yLC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMntmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMSwubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTF7Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcntmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbiwubWF0LXJhaXNlZC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbiwubWF0LXN0cm9rZWQtYnV0dG9uLC5tYXQtZmxhdC1idXR0b24sLm1hdC1mYWIsLm1hdC1taW5pLWZhYntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJke2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGV7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxle2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZSwubWF0LWNhcmQtY29udGVudHtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVse2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwe2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sLm1hdC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb257Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbHtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsLC5tYXQtZm9vdGVyLWNlbGx7Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5e2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCwubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b257Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoe2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50e2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZHtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcntwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb257Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uLC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbntoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcnt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWx7dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC13cmFwcGVye3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcnttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtbGFiZWx7dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlciwubWF0LWdyaWQtdGlsZS1mb290ZXJ7Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZSwubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLC5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnR7bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvciwubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b257Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2Vye2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnR7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWwsLm1hdC1zdGVwcGVyLWhvcml6b250YWx7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcntmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9ye2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXB7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLWxpbmt7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXIsLm1hdC10b29sYmFyIGgxLC5tYXQtdG9vbGJhciBoMiwubWF0LXRvb2xiYXIgaDMsLm1hdC10b29sYmFyIGg0LC5tYXQtdG9vbGJhciBoNSwubWF0LXRvb2xiYXIgaDZ7Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwe2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0e2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb257Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVte2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb257Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVte2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb257Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtc3ViaGVhZGVye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb257Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWx7Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbntsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGUsLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGU6bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWR7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50e3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1yaXBwbGUtZWxlbWVudHtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW57Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyLC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcntwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJ7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXI6ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcntkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5le3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9we2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCwuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3h7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja3twb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5ne3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3h7cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7LyohKi99QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7LyohKi99LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9ye3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcntwb3NpdGlvbjpyZWxhdGl2ZX06aG9zdHtwYWRkaW5nLXRvcDo1cHh9LmFubm90YXRpb24tdGl0bGV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmb250LXNpemU6MTNweDtoZWlnaHQ6MjBweDtwYWRkaW5nOjAgMTBweDt1c2VyLXNlbGVjdDpub25lfS5zZWxlY3RlZC1yb3d7YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwO2Rpc3BsYXk6YmxvY2t9LmZsYWdnZWQtYW5ub3RhdGlvbntjb2xvcjojZjU3YzAwfS5oaWRkZW4tYW5ub3RhdGlvbntjb2xvcjojNzU3NTc1fS5hbm5vdGF0aW9uLWNoZWNrYm94e3BhZGRpbmctcmlnaHQ6NXB4fS5mbGFnZ2VkLWljb257dHJhbnNmb3JtOnNjYWxlKDAuNil9LmhpZGRlbi1pY29ue3RyYW5zZm9ybTpzY2FsZSgwLjYpfS5hbm5vdGF0aW9uLWljb257dHJhbnNmb3JtOnNjYWxlKDAuNil9LmNoYXJ0LWRpdntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmVifS5jaGFydC1zdmd7d2lkdGg6MTAwJTt1c2VyLXNlbGVjdDpub25lfS5kZWZhdWx0LXRleHR7ZmlsbDojMDAwfS5mbGFnLXRleHR7ZmlsbDojZjU3YzAwfS5oaWRkZW4tdGV4dHtmaWxsOiM3NTc1NzV9LmNsaWNrYWJsZS1hbm5vdGF0aW9ue2N1cnNvcjpwb2ludGVyfWJ1dHRvbnthbGw6dW5zZXR9XG4nXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEFfdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJhbm5vdGF0aW9uLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vYW5ub3RhdGlvbl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9hbm5vdGF0aW9uX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLGVuY2Fwc3VsYXRpb246SG4uTm9uZX1dfV0sbnVsbCx7ZGF0YTpbe3R5cGU6eHl9XSxtYXhDb3VudDpbe3R5cGU6eHl9XSxzZWxlY3RlZEFubm90YXRpb25zOlt7dHlwZTp4eX1dLGZsYWdnZWRBbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxoaWRkZW5Bbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxhY3RpdmVNZXRyaWNzOlt7dHlwZTp4eX1dLG51bUFjdGl2ZVJ1bnM6W3t0eXBlOnh5fV0sc2hvd0NvdW50czpbe3R5cGU6eHl9XSxhbm5vdGF0aW9uOlt7dHlwZTp4eX1dLHJ1bkhlaWdodDpbe3R5cGU6eHl9XSxoYXNFbWJlZGRpbmc6W3t0eXBlOnh5fV0sc29ydDpbe3R5cGU6eHl9XSxzaWRlYmFyV2lkdGg6W3t0eXBlOnh5fV0sY29sb3JTY2FsZTpbe3R5cGU6eHl9XSxydW5JZFRvUnVuczpbe3R5cGU6eHl9XSxhbm5vdGF0aW9uQ29udGFpbmVyOlt7dHlwZTpaYSxhcmdzOlsiY2hhcnQiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0sY2xpcFBhdGhFbGVtZW50Olt7dHlwZTpaYSxhcmdzOlsiaGludENsaXAiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0sc2VsZWN0ZWQ6W3t0eXBlOlB5LGFyZ3M6WyJjbGFzcy5zZWxlY3RlZC1yb3ciXX1dLG9uUmVzaXplOlt7dHlwZTp3eSxhcmdzOlsid2luZG93OnJlc2l6ZSJdfV0sb25TaG93U2ltaWxhckFubm90YXRpb25zOlt7dHlwZTpPeX1dfSk7Y2xhc3MgVF90e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnNvcnQkPXRoaXMuc3RvcmUuc2VsZWN0KGhidCksdGhpcy5mbGFnZ2VkQW5ub3RhdGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KGRidCksdGhpcy5oaWRkZW5Bbm5vdGF0aW9ucyQ9dGhpcy5zdG9yZS5zZWxlY3QocGJ0KSx0aGlzLnNlbGVjdGVkQW5ub3RhdGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KGNidCksdGhpcy5zaG93Q291bnRzJD10aGlzLnN0b3JlLnNlbGVjdChDYnQpLHRoaXMuc2lkZWJhcldpZHRoJD10aGlzLnN0b3JlLnNlbGVjdCh4YnQpLHRoaXMucnVuQ29sb3JTY2FsZSQ9dGhpcy5zdG9yZS5zZWxlY3Qoek4pLnBpcGUoSXQoKHQ9PmU9PntpZighdC5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRXJyb3IoYFtDb2xvciBzY2FsZV0gdW5rbm93biBydW5JZDogJHtlfS5gKTtyZXR1cm4gdFtlXX0pKSksdGhpcy5ydW5JZFRvUnVucyQ9dGhpcy5zdG9yZS5zZWxlY3QoZE4pfXNob3dTaW1pbGFyQW5ub3RhdGlvbnMoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKGpidCh7YW5ub3RhdGlvbjp0aGlzLmFubm90YXRpb259KSl9fWZ1bmN0aW9uIE5fdCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsIm5wbWktYW5ub3RhdGlvbiIsNSksVm0oImNsaWNrIiwoZnVuY3Rpb24gZShuKXtjb25zdCBvPWhpKHQpLiRpbXBsaWNpdDtyZXR1cm4gWW0oMikucm93Q2xpY2tlZChuLG8pfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7RG0oImRhdGEiLG4uYW5ub3RhdGlvbnNbdF0pKCJhY3RpdmVNZXRyaWNzIixuLmFjdGl2ZU1ldHJpY3MpKCJudW1BY3RpdmVSdW5zIixuLm51bUFjdGl2ZVJ1bnMpKCJtYXhDb3VudCIsbi5tYXhDb3VudCkoImFubm90YXRpb24iLHQpKCJydW5IZWlnaHQiLG4ucnVuSGVpZ2h0KSgiaGFzRW1iZWRkaW5nIixuLmVtYmVkZGluZ0RhdGEmJnZvaWQgMCE9PW4uZW1iZWRkaW5nRGF0YVt0XSl9fWZ1bmN0aW9uIHpfdCh0LGUpe2lmKDEmdCYmKE5tKDApLFRtKDEsIm5wbWktYW5ub3RhdGlvbnMtbGlzdC1sZWdlbmQiKSxUbSgyLCJucG1pLWFubm90YXRpb25zLWxpc3QtaGVhZGVyIiwyKSxSbSgzLCJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQiLDMpLFFwKDQsTl90LDEsNywibnBtaS1hbm5vdGF0aW9uIiw0KSxBbSgpLHptKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDIpLERtKCJhbm5vdGF0aW9ucyIsdC5hbm5vdGF0aW9ucykoIm51bUFubm90YXRpb25zIix0Lm51bUFubm90YXRpb25zKSgiYWN0aXZlTWV0cmljcyIsdC5hY3RpdmVNZXRyaWNzKSxyYygxKSxLbSgiaXRlbVNpemUiLHQubnVtQWN0aXZlUnVucyp0LnJ1bkhlaWdodCsyNSkscmMoMSksRG0oImNka1ZpcnR1YWxGb3JPZiIsdC5zb3J0ZWRBbm5vdGF0aW9ucyl9fVRfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VF90KShTbShJdykpfSxUX3QuybVjbXA9dG8oe3R5cGU6VF90LHNlbGVjdG9yczpbWyJucG1pLWFubm90YXRpb24iXV0saW5wdXRzOntkYXRhOiJkYXRhIixtYXhDb3VudDoibWF4Q291bnQiLGFjdGl2ZU1ldHJpY3M6ImFjdGl2ZU1ldHJpY3MiLG51bUFjdGl2ZVJ1bnM6Im51bUFjdGl2ZVJ1bnMiLGFubm90YXRpb246ImFubm90YXRpb24iLHJ1bkhlaWdodDoicnVuSGVpZ2h0IixoYXNFbWJlZGRpbmc6Imhhc0VtYmVkZGluZyJ9LGRlY2xzOjksdmFyczozMSxjb25zdHM6W1szLCJkYXRhIiwibWF4Q291bnQiLCJhY3RpdmVNZXRyaWNzIiwibnVtQWN0aXZlUnVucyIsImFubm90YXRpb24iLCJydW5IZWlnaHQiLCJoYXNFbWJlZGRpbmciLCJzb3J0Iiwic2VsZWN0ZWRBbm5vdGF0aW9ucyIsImZsYWdnZWRBbm5vdGF0aW9ucyIsImhpZGRlbkFubm90YXRpb25zIiwic2hvd0NvdW50cyIsInNpZGViYXJXaWR0aCIsImNvbG9yU2NhbGUiLCJydW5JZFRvUnVucyIsIm9uU2hvd1NpbWlsYXJBbm5vdGF0aW9ucyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiYW5ub3RhdGlvbi1jb21wb25lbnQiLDApLFZtKCJvblNob3dTaW1pbGFyQW5ub3RhdGlvbnMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uc2hvd1NpbWlsYXJBbm5vdGF0aW9ucygpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQWgoNSwiYXN5bmMiKSxBaCg2LCJhc3luYyIpLEFoKDcsImFzeW5jIiksQWgoOCwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJkYXRhIixuLmRhdGEpKCJtYXhDb3VudCIsbi5tYXhDb3VudCkoImFjdGl2ZU1ldHJpY3MiLG4uYWN0aXZlTWV0cmljcykoIm51bUFjdGl2ZVJ1bnMiLG4ubnVtQWN0aXZlUnVucykoImFubm90YXRpb24iLG4uYW5ub3RhdGlvbikoInJ1bkhlaWdodCIsbi5ydW5IZWlnaHQpKCJoYXNFbWJlZGRpbmciLG4uaGFzRW1iZWRkaW5nKSgic29ydCIsVGgoMSwxNSxuLnNvcnQkKSkoInNlbGVjdGVkQW5ub3RhdGlvbnMiLFRoKDIsMTcsbi5zZWxlY3RlZEFubm90YXRpb25zJCkpKCJmbGFnZ2VkQW5ub3RhdGlvbnMiLFRoKDMsMTksbi5mbGFnZ2VkQW5ub3RhdGlvbnMkKSkoImhpZGRlbkFubm90YXRpb25zIixUaCg0LDIxLG4uaGlkZGVuQW5ub3RhdGlvbnMkKSkoInNob3dDb3VudHMiLFRoKDUsMjMsbi5zaG93Q291bnRzJCkpKCJzaWRlYmFyV2lkdGgiLFRoKDYsMjUsbi5zaWRlYmFyV2lkdGgkKSkoImNvbG9yU2NhbGUiLFRoKDcsMjcsbi5ydW5Db2xvclNjYWxlJCkpKCJydW5JZFRvUnVucyIsVGgoOCwyOSxuLnJ1bklkVG9SdW5zJCkpfSxkaXJlY3RpdmVzOltBX3RdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChUX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1hbm5vdGF0aW9uIix0ZW1wbGF0ZTonXG4gICAgPGFubm90YXRpb24tY29tcG9uZW50XG4gICAgICBbZGF0YV09ImRhdGEiXG4gICAgICBbbWF4Q291bnRdPSJtYXhDb3VudCJcbiAgICAgIFthY3RpdmVNZXRyaWNzXT0iYWN0aXZlTWV0cmljcyJcbiAgICAgIFtudW1BY3RpdmVSdW5zXT0ibnVtQWN0aXZlUnVucyJcbiAgICAgIFthbm5vdGF0aW9uXT0iYW5ub3RhdGlvbiJcbiAgICAgIFtydW5IZWlnaHRdPSJydW5IZWlnaHQiXG4gICAgICBbaGFzRW1iZWRkaW5nXT0iaGFzRW1iZWRkaW5nIlxuICAgICAgW3NvcnRdPSJzb3J0JCB8IGFzeW5jIlxuICAgICAgW3NlbGVjdGVkQW5ub3RhdGlvbnNdPSJzZWxlY3RlZEFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW2ZsYWdnZWRBbm5vdGF0aW9uc109ImZsYWdnZWRBbm5vdGF0aW9ucyQgfCBhc3luYyJcbiAgICAgIFtoaWRkZW5Bbm5vdGF0aW9uc109ImhpZGRlbkFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW3Nob3dDb3VudHNdPSJzaG93Q291bnRzJCB8IGFzeW5jIlxuICAgICAgW3NpZGViYXJXaWR0aF09InNpZGViYXJXaWR0aCQgfCBhc3luYyJcbiAgICAgIFtjb2xvclNjYWxlXT0icnVuQ29sb3JTY2FsZSQgfCBhc3luYyJcbiAgICAgIFtydW5JZFRvUnVuc109InJ1bklkVG9SdW5zJCB8IGFzeW5jIlxuICAgICAgKG9uU2hvd1NpbWlsYXJBbm5vdGF0aW9ucyk9InNob3dTaW1pbGFyQW5ub3RhdGlvbnMoKSJcbiAgICA+PC9hbm5vdGF0aW9uLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLHtkYXRhOlt7dHlwZTp4eX1dLG1heENvdW50Olt7dHlwZTp4eX1dLGFjdGl2ZU1ldHJpY3M6W3t0eXBlOnh5fV0sbnVtQWN0aXZlUnVuczpbe3R5cGU6eHl9XSxhbm5vdGF0aW9uOlt7dHlwZTp4eX1dLHJ1bkhlaWdodDpbe3R5cGU6eHl9XSxoYXNFbWJlZGRpbmc6W3t0eXBlOnh5fV19KTtjbGFzcyBJX3R7Y29uc3RydWN0b3IoKXt0aGlzLm9uUm93Q2xpY2s9bmV3IExoLHRoaXMucnVuSGVpZ2h0PTMwfXJvd0NsaWNrZWQodCxlKXtpZih0LnNoaWZ0S2V5KXtsZXQgdD10aGlzLnNvcnRlZEFubm90YXRpb25zLmluZGV4T2YoZSk7aWYoMD09PXRoaXMuc2VsZWN0ZWRBbm5vdGF0aW9ucy5sZW5ndGgpdGhpcy5vblJvd0NsaWNrLmVtaXQodGhpcy5zb3J0ZWRBbm5vdGF0aW9ucy5zbGljZSgwLHQrMSkpO2Vsc2V7Y29uc3QgZT10aGlzLnNvcnRlZEFubm90YXRpb25zLmluZGV4T2YodGhpcy5zZWxlY3RlZEFubm90YXRpb25zW3RoaXMuc2VsZWN0ZWRBbm5vdGF0aW9ucy5sZW5ndGgtMV0pO3RoaXMub25Sb3dDbGljay5lbWl0KGU8dD90aGlzLnNvcnRlZEFubm90YXRpb25zLnNsaWNlKGUsdCsxKTp0aGlzLnNvcnRlZEFubm90YXRpb25zLnNsaWNlKHQsZSsxKSl9fWVsc2UgdGhpcy5vblJvd0NsaWNrLmVtaXQoW2VdKX19SV90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJX3QpfSxJX3QuybVjbXA9dG8oe3R5cGU6SV90LHNlbGVjdG9yczpbWyJhbm5vdGF0aW9ucy1saXN0LWNvbXBvbmVudCJdXSxpbnB1dHM6e2Fubm90YXRpb25zOiJhbm5vdGF0aW9ucyIsZW1iZWRkaW5nRGF0YToiZW1iZWRkaW5nRGF0YSIsYW5ub3RhdGlvbnNFeHBhbmRlZDoiYW5ub3RhdGlvbnNFeHBhbmRlZCIsbnVtQW5ub3RhdGlvbnM6Im51bUFubm90YXRpb25zIixhbm5vdGF0aW9uU29ydDoiYW5ub3RhdGlvblNvcnQiLGFjdGl2ZU1ldHJpY3M6ImFjdGl2ZU1ldHJpY3MiLG51bUFjdGl2ZVJ1bnM6Im51bUFjdGl2ZVJ1bnMiLHNvcnRlZEFubm90YXRpb25zOiJzb3J0ZWRBbm5vdGF0aW9ucyIsc2VsZWN0ZWRBbm5vdGF0aW9uczoic2VsZWN0ZWRBbm5vdGF0aW9ucyIsbWF4Q291bnQ6Im1heENvdW50In0sb3V0cHV0czp7b25Sb3dDbGljazoib25Sb3dDbGljayJ9LGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsIm51bUFubm90YXRpb25zIiwiZXhwYW5kZWQiXSxbNCwibmdJZiJdLFszLCJhbm5vdGF0aW9ucyIsIm51bUFubm90YXRpb25zIiwiYWN0aXZlTWV0cmljcyJdLFsibWluQnVmZmVyUHgiLCIzMDAiLCJtYXhCdWZmZXJQeCIsIjYwMCIsMSwiYW5ub3RhdGlvbi1yb3dzIiwzLCJpdGVtU2l6ZSJdLFszLCJkYXRhIiwiYWN0aXZlTWV0cmljcyIsIm51bUFjdGl2ZVJ1bnMiLCJtYXhDb3VudCIsImFubm90YXRpb24iLCJydW5IZWlnaHQiLCJoYXNFbWJlZGRpbmciLCJjbGljayIsNCwiY2RrVmlydHVhbEZvciIsImNka1ZpcnR1YWxGb3JPZiJdLFszLCJkYXRhIiwiYWN0aXZlTWV0cmljcyIsIm51bUFjdGl2ZVJ1bnMiLCJtYXhDb3VudCIsImFubm90YXRpb24iLCJydW5IZWlnaHQiLCJoYXNFbWJlZGRpbmciLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwibnBtaS1hbm5vdGF0aW9ucy1saXN0LXRvb2xiYXIiLDApLFFwKDEsel90LDUsNSwibmctY29udGFpbmVyIiwxKSksMiZlJiYoRG0oIm51bUFubm90YXRpb25zIixuLm51bUFubm90YXRpb25zKSgiZXhwYW5kZWQiLG4uYW5ub3RhdGlvbnNFeHBhbmRlZCkscmMoMSksRG0oIm5nSWYiLG4uYW5ub3RhdGlvbnNFeHBhbmRlZCkpfSxkaXJlY3RpdmVzOltfX3QsZE0sdl90LHdfdCxnRixkRixiRixUX3RdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDpjYWxjKDEwMCUgLSAycHgpO3dpZHRoOmNhbGMoMTAwJSAtIDJweCl9LmFubm90YXRpb24tcm93c1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4OjEgMTtvdmVyZmxvdy15OmF1dG99J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElfdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJhbm5vdGF0aW9ucy1saXN0LWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vYW5ub3RhdGlvbnNfbGlzdF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9hbm5vdGF0aW9uc19saXN0X2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHthbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxlbWJlZGRpbmdEYXRhOlt7dHlwZTp4eX1dLGFubm90YXRpb25zRXhwYW5kZWQ6W3t0eXBlOnh5fV0sbnVtQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0sYW5ub3RhdGlvblNvcnQ6W3t0eXBlOnh5fV0sYWN0aXZlTWV0cmljczpbe3R5cGU6eHl9XSxudW1BY3RpdmVSdW5zOlt7dHlwZTp4eX1dLHNvcnRlZEFubm90YXRpb25zOlt7dHlwZTp4eX1dLHNlbGVjdGVkQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0sbWF4Q291bnQ6W3t0eXBlOnh5fV0sb25Sb3dDbGljazpbe3R5cGU6T3l9XX0pO2NsYXNzIEhfdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hbm5vdGF0aW9uc0V4cGFuZGVkJD10aGlzLnN0b3JlLnBpcGUoRncoeWJ0KSksdGhpcy5hY3RpdmVSdW5zJD10aGlzLnN0b3JlLnBpcGUoRncoTk4pKS5waXBlKEl0KCh0PT50P0FycmF5LmZyb20odC5lbnRyaWVzKCkpLmZpbHRlcigodD0+dFsxXSkpLm1hcCgodD0+dFswXSkpOltdKSkpLHRoaXMuZW1iZWRkaW5nRGF0YSQ9dGhpcy5zdG9yZS5waXBlKEZ3KGxidCkpLHRoaXMubnVtQWN0aXZlUnVucyQ9dGhpcy5hY3RpdmVSdW5zJC5waXBlKEl0KCh0PT50Lmxlbmd0aCkpKSx0aGlzLmFjdGl2ZU1ldHJpY3MkPVd0KFt0aGlzLnN0b3JlLnNlbGVjdChzYnQpLHRoaXMuYWN0aXZlUnVucyQsdGhpcy5zdG9yZS5zZWxlY3QoZ2J0KV0pLnBpcGUoSXQoKChbdCxlLG5dKT0+e2xldCBvPVtdO2Zvcihjb25zdCBuIG9mIGUpdFtuXSYmKG89by5jb25jYXQodFtuXS5maWx0ZXIoKHQ9PmV5dCh0KSkpKSk7cmV0dXJuIG89Wy4uLm5ldyBTZXQoWy4uLk9iamVjdC5rZXlzKG4pLC4uLm9dKV0sb30pKSksdGhpcy52aXNpYmxlQW5ub3RhdGlvbnMkPVd0KFt0aGlzLnN0b3JlLnNlbGVjdChyYnQpLHRoaXMuc3RvcmUuc2VsZWN0KHBidCksdGhpcy5zdG9yZS5zZWxlY3QoTWJ0KV0pLnBpcGUoSXQoKChbdCxlLG5dKT0+R3l0KHQsZSxuKSkpKSx0aGlzLmZpbHRlcmVkQW5ub3RhdGlvbnMkPVd0KFt0aGlzLnZpc2libGVBbm5vdGF0aW9ucyQsdGhpcy5zdG9yZS5zZWxlY3QoZmJ0KSx0aGlzLnN0b3JlLnNlbGVjdChnYnQpLHRoaXMuYWN0aXZlUnVucyQsdGhpcy5hY3RpdmVNZXRyaWNzJCx0aGlzLnN0b3JlLnNlbGVjdChtYnQpXSkucGlwZShJdCgoKFt0LGUsbixvLGksYV0pPT4oZnVuY3Rpb24gcih0LGUsbixvLGksYSl7Y29uc3Qgcj17fSxzPW5ldyBTZXQoZSksbD1uZXcgU2V0KGkubWFwKCh0PT5ueXQodCkpKSksYz1uZXcgUmVnRXhwKGEsImkiKTtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkuZm9yRWFjaCgodD0+e2lmKCFjLnRlc3QodFswXSkpcmV0dXJuO2xldCBlPXRbMV07ZT1lLmZpbHRlcigodD0+cy5oYXModC5ydW4pJiZsLmhhcyh0Lm1ldHJpYykpKSwoZnVuY3Rpb24gaSh0LGUsbil7cmV0dXJuIHQuZXZlcnkoKHQ9PntpZih0LmtpbmQ9PT10YnQuT1BFUkFUT1IpcmV0dXJuITA7Y29uc3Qgbz1lW3QubWV0cmljXTtyZXR1cm4gdm9pZCAwPT09b3x8bi5zb21lKChlPT5lLm1ldHJpYz09PW55dCh0Lm1ldHJpYykmJihudWxsPT09ZS5uUE1JVmFsdWU/by5pbmNsdWRlTmFOOmUublBNSVZhbHVlPD1vLm1heCYmZS5uUE1JVmFsdWU+PW8ubWluKSkpfSkpfSkobixvLGUpJiYwIT09ZS5sZW5ndGgmJihyW3RbMF1dPWUpfSkpLHJ9KSh0LG8sZSxuLGksYSkpKSkucGlwZShFZSgpKSx0aGlzLm51bUFubm90YXRpb25zJD10aGlzLmZpbHRlcmVkQW5ub3RhdGlvbnMkLnBpcGUoSXQoKHQ9Pk9iamVjdC5rZXlzKHQpLmxlbmd0aCkpKSx0aGlzLnNvcnRlZEFubm90YXRpb25zJD1XdChbdGhpcy5maWx0ZXJlZEFubm90YXRpb25zJCx0aGlzLnN0b3JlLnBpcGUoRncoaGJ0KSksdGhpcy5lbWJlZGRpbmdEYXRhJF0pLnBpcGUoSXQoKChbdCxlLG5dKT0+KGZ1bmN0aW9uIG8odCxlLG4pe2NvbnN0IG89T2JqZWN0LmtleXModCksaT1lLm9yZGVyPT09bmJ0LkRJU1NJTUlMQVJ8fGUub3JkZXI9PT1uYnQuU0lNSUxBUjtyZXR1cm4iIj09PWUubWV0cmljfHwodm9pZCAwPT09bnx8dm9pZCAwPT09bi5wb2ludHNbZS5tZXRyaWNdKSYmaT9vOihmdW5jdGlvbiBzKHQsZSxuKXtyZXR1cm4gdC5zb3J0KG4/KHQsbik9PmVbdF0tZVtuXToodCxuKT0+ZVtuXS1lW3RdKX0pKG8saT8oZnVuY3Rpb24gYSh0LGUsbil7Y29uc3Qgbz17fTtsZXQgaT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksYT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7bi5vcmRlcj09PW5idC5TSU1JTEFSJiYoaT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksYT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO2Zvcihjb25zdCByIG9mIHQpb1tyXT1yPT09bi5tZXRyaWM/aTp2b2lkIDA9PT1lLnBvaW50c1tyXT9hOmUucG9pbnRzW3JdLnZlY3Rvcj9ReXQoZS5wb2ludHNbbi5tZXRyaWNdLnZlY3RvcixlLnBvaW50c1tyXS52ZWN0b3IsYSk6YTtyZXR1cm4gb30pKG8sbixlKTooZnVuY3Rpb24gcih0LGUsbil7Y29uc3Qgbz1ueXQobi5tZXRyaWMpLGk9e307aWYobi5vcmRlcj09PW5idC5ERVNDRU5ESU5HKWZvcihjb25zdCBuIG9mIHQpaVtuXT1NYXRoLm1heCguLi5lW25dLmZpbHRlcigodD0+dC5tZXRyaWM9PT1vKSkubWFwKCh0PT5udWxsPT09dC5uUE1JVmFsdWU/LTEvMDp0Lm5QTUlWYWx1ZSkpKTtlbHNlIGZvcihjb25zdCBuIG9mIHQpaVtuXT1NYXRoLm1pbiguLi5lW25dLmZpbHRlcigodD0+dC5tZXRyaWM9PT1vKSkubWFwKCh0PT5udWxsPT09dC5uUE1JVmFsdWU/MS8wOnQublBNSVZhbHVlKSkpO3JldHVybiBpfSkobyx0LGUpLGUub3JkZXI9PT1uYnQuQVNDRU5ETkd8fGUub3JkZXI9PT1uYnQuU0lNSUxBUil9KSh0LGUsbikpKSksdGhpcy5zZWxlY3RlZEFubm90YXRpb25zJD10aGlzLnN0b3JlLnBpcGUoRncoY2J0KSksdGhpcy5tYXhDb3VudCQ9dGhpcy5maWx0ZXJlZEFubm90YXRpb25zJC5waXBlKEl0KCh0PT57bGV0IGU9MDtyZXR1cm4gT2JqZWN0LnZhbHVlcyh0KS5mb3JFYWNoKCh0PT57dC5mb3JFYWNoKCh0PT57dC5jb3VudFZhbHVlJiYoZT1NYXRoLm1heChlLHQuY291bnRWYWx1ZSkpfSkpfSkpLGV9KSkpfXJvd0NsaWNrZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChSYnQoe2Fubm90YXRpb25zOnR9KSl9fUhfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SF90KShTbShJdykpfSxIX3QuybVjbXA9dG8oe3R5cGU6SF90LHNlbGVjdG9yczpbWyJucG1pLWFubm90YXRpb25zLWxpc3QiXV0sZGVjbHM6MTAsdmFyczoyNyxjb25zdHM6W1szLCJhbm5vdGF0aW9ucyIsImVtYmVkZGluZ0RhdGEiLCJhbm5vdGF0aW9uc0V4cGFuZGVkIiwibnVtQW5ub3RhdGlvbnMiLCJhY3RpdmVNZXRyaWNzIiwibnVtQWN0aXZlUnVucyIsInNvcnRlZEFubm90YXRpb25zIiwic2VsZWN0ZWRBbm5vdGF0aW9ucyIsIm1heENvdW50Iiwib25Sb3dDbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiYW5ub3RhdGlvbnMtbGlzdC1jb21wb25lbnQiLDApLFZtKCJvblJvd0NsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5yb3dDbGlja2VkKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQWgoNSwiYXN5bmMiKSxBaCg2LCJhc3luYyIpLEFoKDcsImFzeW5jIiksQWgoOCwiYXN5bmMiKSxBaCg5LCJhc3luYyIpLEFtKCkpLDImZSYmRG0oImFubm90YXRpb25zIixUaCgxLDksbi5maWx0ZXJlZEFubm90YXRpb25zJCkpKCJlbWJlZGRpbmdEYXRhIixUaCgyLDExLG4uZW1iZWRkaW5nRGF0YSQpKSgiYW5ub3RhdGlvbnNFeHBhbmRlZCIsVGgoMywxMyxuLmFubm90YXRpb25zRXhwYW5kZWQkKSkoIm51bUFubm90YXRpb25zIixUaCg0LDE1LG4ubnVtQW5ub3RhdGlvbnMkKSkoImFjdGl2ZU1ldHJpY3MiLFRoKDUsMTcsbi5hY3RpdmVNZXRyaWNzJCkpKCJudW1BY3RpdmVSdW5zIixUaCg2LDE5LG4ubnVtQWN0aXZlUnVucyQpKSgic29ydGVkQW5ub3RhdGlvbnMiLFRoKDcsMjEsbi5zb3J0ZWRBbm5vdGF0aW9ucyQpKSgic2VsZWN0ZWRBbm5vdGF0aW9ucyIsVGgoOCwyMyxuLnNlbGVjdGVkQW5ub3RhdGlvbnMkKSkoIm1heENvdW50IixUaCg5LDI1LG4ubWF4Q291bnQkKSl9LGRpcmVjdGl2ZXM6W0lfdF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEhfdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLWFubm90YXRpb25zLWxpc3QiLHRlbXBsYXRlOidcbiAgICA8YW5ub3RhdGlvbnMtbGlzdC1jb21wb25lbnRcbiAgICAgIFthbm5vdGF0aW9uc109ImZpbHRlcmVkQW5ub3RhdGlvbnMkIHwgYXN5bmMiXG4gICAgICBbZW1iZWRkaW5nRGF0YV09ImVtYmVkZGluZ0RhdGEkIHwgYXN5bmMiXG4gICAgICBbYW5ub3RhdGlvbnNFeHBhbmRlZF09ImFubm90YXRpb25zRXhwYW5kZWQkIHwgYXN5bmMiXG4gICAgICBbbnVtQW5ub3RhdGlvbnNdPSJudW1Bbm5vdGF0aW9ucyQgfCBhc3luYyJcbiAgICAgIFthY3RpdmVNZXRyaWNzXT0iYWN0aXZlTWV0cmljcyQgfCBhc3luYyJcbiAgICAgIFtudW1BY3RpdmVSdW5zXT0ibnVtQWN0aXZlUnVucyQgfCBhc3luYyJcbiAgICAgIFtzb3J0ZWRBbm5vdGF0aW9uc109InNvcnRlZEFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW3NlbGVjdGVkQW5ub3RhdGlvbnNdPSJzZWxlY3RlZEFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW21heENvdW50XT0ibWF4Q291bnQkIHwgYXN5bmMiXG4gICAgICAob25Sb3dDbGljayk9InJvd0NsaWNrZWQoJGV2ZW50KSJcbiAgICA+PC9hbm5vdGF0aW9ucy1saXN0LWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IEZfdD1bImNoYXJ0Il07Y2xhc3MgTF90e2NvbnN0cnVjdG9yKCl7dGhpcy53aWR0aD0wLHRoaXMuY2hhcnRXaWR0aD0wLHRoaXMuaGVpZ2h0PTMwMCx0aGlzLm1hcmdpbj17dG9wOjIwLHJpZ2h0OjQwLGJvdHRvbToyMCxsZWZ0OjQwfSx0aGlzLmNoYXJ0SGVpZ2h0PXRoaXMuaGVpZ2h0LXRoaXMubWFyZ2luLnRvcC10aGlzLm1hcmdpbi5ib3R0b219b25SZXNpemUodCl7dGhpcy5yZWRyYXcoKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN2Zz1KNCh0aGlzLnN2Z0VsZW1lbnQubmF0aXZlRWxlbWVudCksdGhpcy5tYWluQ29udGFpbmVyPXRoaXMuc3ZnLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke3RoaXMubWFyZ2luLmxlZnR9LCAke3RoaXMubWFyZ2luLnRvcH0pYCksdGhpcy5jb29yZGluYXRlc0dyb3VwPXRoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoImciKSx0aGlzLmxhYmVsc0dyb3VwPXRoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoImciKSx0aGlzLmF4aXNHcm91cD10aGlzLm1haW5Db250YWluZXIuYXBwZW5kKCJnIiksdGhpcy54U2NhbGU9VXR0KCkucGFkZGluZyguMSksdGhpcy55U2NhbGU9ZWV0KCkucmFuZ2UoW3RoaXMuY2hhcnRIZWlnaHQsMF0pLHRoaXMueUF4aXM9TjUodGhpcy55U2NhbGUpLHRoaXMucmVkcmF3KCl9bmdPbkNoYW5nZXModCl7dGhpcy5zdmcmJnRoaXMucmVkcmF3KCl9cmVkcmF3KCl7dGhpcy51cGRhdGVEaW1lbnNpb25zKCksdGhpcy51cGRhdGVBeGVzKCksdGhpcy5kcmF3KCl9dXBkYXRlRGltZW5zaW9ucygpe3RoaXMud2lkdGg9dGhpcy5zdmdFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGh8fDEwLHRoaXMuY2hhcnRXaWR0aD10aGlzLndpZHRoLXRoaXMubWFyZ2luLmxlZnQtdGhpcy5tYXJnaW4ucmlnaHR9dXBkYXRlQXhlcygpe3RoaXMueFNjYWxlLnJhbmdlUm91bmQoWzAsdGhpcy5jaGFydFdpZHRoXSkuZG9tYWluKHRoaXMuYWN0aXZlTWV0cmljcyksdGhpcy55U2NhbGUuZG9tYWluKFt0aGlzLmNvb3JkaW5hdGVEYXRhLmV4dHJlbWVzLm1pbix0aGlzLmNvb3JkaW5hdGVEYXRhLmV4dHJlbWVzLm1heF0pfWRyYXcoKXt0aGlzLmRyYXdBeGVzKCksdGhpcy5kcmF3QXhpc0xhYmVscygpLHRoaXMuZHJhd0Nvb3JkaW5hdGVzKCksdGhpcy5kcmF3TGFiZWxzKCl9ZHJhd0F4ZXMoKXtjb25zdCB0PXRoaXMuYXhpc0dyb3VwLnNlbGVjdEFsbCgiLmF4aXMteSIpLmRhdGEodGhpcy5hY3RpdmVNZXRyaWNzKTt0LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJheGlzLXkiKS5tZXJnZSh0KS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3JldHVybmB0cmFuc2xhdGUoJHt0aGlzLnhTY2FsZSh0KX0sIDApYH0uYmluZCh0aGlzKSkuY2FsbCh0aGlzLnlBeGlzKSx0LmV4aXQoKS5yZW1vdmUoKX1kcmF3QXhpc0xhYmVscygpe2NvbnN0IHQ9dGhpcy5heGlzR3JvdXAuc2VsZWN0QWxsKCIuYXhpcy1iZy10ZXh0IikuZGF0YSh0aGlzLmFjdGl2ZU1ldHJpY3MpO3QuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5hdHRyKCJjbGFzcyIsImF4aXMtYmctdGV4dCIpLmF0dHIoImZvbnQtc2l6ZSIsIjEzcHgiKS5hdHRyKCJzdHJva2Utd2lkdGgiLDIpLmF0dHIoInN0cm9rZS1saW5lam9pbiIsInJvdW5kIikuYXR0cigic3Ryb2tlIiwid2hpdGUiKS5tZXJnZSh0KS50ZXh0KCh0PT50KSkuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXtyZXR1cm5gdHJhbnNsYXRlKCR7dGhpcy54U2NhbGUodCktNX0sICR7dGhpcy55U2NhbGUodGhpcy5jb29yZGluYXRlRGF0YS5leHRyZW1lcy5taW4pfSkgcm90YXRlKC05MClgfS5iaW5kKHRoaXMpKSx0LmV4aXQoKS5yZW1vdmUoKTtjb25zdCBlPXRoaXMuYXhpc0dyb3VwLnNlbGVjdEFsbCgiLmF4aXMtdGV4dCIpLmRhdGEodGhpcy5hY3RpdmVNZXRyaWNzKTtlLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZm9udC1zaXplIiwiMTNweCIpLmF0dHIoImNsYXNzIiwiYXhpcy10ZXh0IikubWVyZ2UoZSkudGV4dCgodD0+dCkpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuYHRyYW5zbGF0ZSgke3RoaXMueFNjYWxlKHQpLTV9LCAke3RoaXMueVNjYWxlKHRoaXMuY29vcmRpbmF0ZURhdGEuZXh0cmVtZXMubWluKX0pIHJvdGF0ZSgtOTApYH0uYmluZCh0aGlzKSksZS5leGl0KCkucmVtb3ZlKCl9ZHJhd0Nvb3JkaW5hdGVzKCl7Y29uc3QgdD10aGlzLmNvb3JkaW5hdGVzR3JvdXAuc2VsZWN0QWxsKCIuY29vcmQiKS5kYXRhKHRoaXMuY29vcmRpbmF0ZURhdGEuY29vcmRpbmF0ZXMpO3QuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsImNvb3JkIikuYXR0cigiZmlsbCIsIm5vbmUiKS5tZXJnZSh0KS5hdHRyKCJkIix0aGlzLnBhdGguYmluZCh0aGlzKSkuYXR0cigic3Ryb2tlIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jb2xvclNjYWxlKHQucnVuSWQpfS5iaW5kKHRoaXMpKSx0LmV4aXQoKS5yZW1vdmUoKTtjb25zdCBlPXRoaXMuY29vcmRpbmF0ZXNHcm91cC5zZWxlY3RBbGwoIi5oaWRkZW5Db29yZCIpLmRhdGEodGhpcy5jb29yZGluYXRlRGF0YS5jb29yZGluYXRlcyk7ZS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiaGlkZGVuQ29vcmQiKS5hdHRyKCJzdHJva2Utd2lkdGgiLCIxMHB4IikuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJzdHJva2UiLCJyZ2JhKDAsIDAsIDAsIDAuMCkiKS5vbigibW91c2VvdmVyIix0aGlzLmhhbmRsZUNvb3JkaW5hdGVNb3VzZU92ZXIuYmluZCh0aGlzKSkub24oIm1vdXNlb3V0Iix0aGlzLmhhbmRsZUNvb3JkaW5hdGVNb3VzZU91dC5iaW5kKHRoaXMpKS5tZXJnZShlKS5hdHRyKCJkIix0aGlzLnBhdGguYmluZCh0aGlzKSksZS5leGl0KCkucmVtb3ZlKCl9cGF0aCh0KXtyZXR1cm4gdC52YWx1ZXMuc29ydCgoKHQsZSk9PnRoaXMuYWN0aXZlTWV0cmljcy5pbmRleE9mKHQubWV0cmljKS10aGlzLmFjdGl2ZU1ldHJpY3MuaW5kZXhPZihlLm1ldHJpYykpKSxQb3QoKSh0LnZhbHVlcy5tYXAoZnVuY3Rpb24odCl7bGV0IGU9dGhpcy55U2NhbGUodC5uUE1JVmFsdWUpO3JldHVyblt0aGlzLnhTY2FsZSh0Lm1ldHJpYyksZV19LmJpbmQodGhpcykpKX1oYW5kbGVDb29yZGluYXRlTW91c2VPdmVyKHQsZSl7dGhpcy5sYWJlbHNHcm91cC5zZWxlY3RBbGwoIi5jb29yZGluYXRlLWxhYmVsIikuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4hKGUuYW5ub3RhdGlvbj09PXQuYW5ub3RhdGlvbil9KSkuc3R5bGUoIm9wYWNpdHkiLC4xKSx0aGlzLmNvb3JkaW5hdGVzR3JvdXAuc2VsZWN0QWxsKCIuY29vcmQiKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiEoZS5hbm5vdGF0aW9uPT09dC5hbm5vdGF0aW9uKX0pKS5zdHlsZSgib3BhY2l0eSIsLjEpfWhhbmRsZUNvb3JkaW5hdGVNb3VzZU91dCgpe3RoaXMubGFiZWxzR3JvdXAuc2VsZWN0QWxsKCIuY29vcmRpbmF0ZS1sYWJlbCIpLnN0eWxlKCJvcGFjaXR5IiwxKSx0aGlzLmNvb3JkaW5hdGVzR3JvdXAuc2VsZWN0QWxsKCIuY29vcmQiKS5zdHlsZSgib3BhY2l0eSIsMSl9ZHJhd0xhYmVscygpe2NvbnN0IHQ9MzAvdGhpcy54U2NhbGUuc3RlcCgpLGU9dGhpcy5jb29yZGluYXRlRGF0YS5jb29yZGluYXRlcy5sZW5ndGg8MzA/dGhpcy5jb29yZGluYXRlRGF0YS5jb29yZGluYXRlczpbXSxuPXRoaXMubGFiZWxzR3JvdXAuc2VsZWN0QWxsKCIuY29vcmRpbmF0ZS1sYWJlbCIpLmRhdGEoZSk7bi5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIiwiY29vcmRpbmF0ZS1sYWJlbCIpLmF0dHIoImZvbnQtc2l6ZSIsIjEwcHgiKS5tZXJnZShuKS50ZXh0KChmdW5jdGlvbih0KXtyZXR1cm4gdC5hbm5vdGF0aW9ufSkpLmF0dHIoIngiLHRoaXMueFNjYWxlKHRoaXMuYWN0aXZlTWV0cmljc1swXSkrMzApLmF0dHIoInkiLGZ1bmN0aW9uKGUpe2NvbnN0IG49dGhpcy55U2NhbGUoZS52YWx1ZXNbMF0ublBNSVZhbHVlP2UudmFsdWVzWzBdLm5QTUlWYWx1ZTowKSxvPXRoaXMueVNjYWxlKGUudmFsdWVzWzFdLm5QTUlWYWx1ZT9lLnZhbHVlc1sxXS5uUE1JVmFsdWU6MCk7cmV0dXJuKDEtdCkqbit0Km99LmJpbmQodGhpcykpLG4uZXhpdCgpLnJlbW92ZSgpfX1MX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExfdCl9LExfdC7JtWNtcD10byh7dHlwZTpMX3Qsc2VsZWN0b3JzOltbInBhcmFsbGVsLWNvb3JkaW5hdGVzLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoRl90LDcsaGcpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uc3ZnRWxlbWVudD10LmZpcnN0KX19LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgicmVzaXplIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlc2l6ZShlKX0pLCExLG9sKX0saW5wdXRzOnthY3RpdmVNZXRyaWNzOiJhY3RpdmVNZXRyaWNzIixjb29yZGluYXRlRGF0YToiY29vcmRpbmF0ZURhdGEiLHNpZGViYXJXaWR0aDoic2lkZWJhcldpZHRoIixjb2xvclNjYWxlOiJjb2xvclNjYWxlIn0sZmVhdHVyZXM6W0JvXSxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1sxLCJwYy1jaGFydCJdLFsiY2hhcnQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHFpKCksVG0oMCwic3ZnIiwwLDEpKX0sc3R5bGVzOlsiLnBjLWNoYXJ0W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MzAwcHg7d2lkdGg6MTAwJX0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTF90LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InBhcmFsbGVsLWNvb3JkaW5hdGVzLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vcGFyYWxsZWxfY29vcmRpbmF0ZXNfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vcGFyYWxsZWxfY29vcmRpbmF0ZXNfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse2FjdGl2ZU1ldHJpY3M6W3t0eXBlOnh5fV0sY29vcmRpbmF0ZURhdGE6W3t0eXBlOnh5fV0sc2lkZWJhcldpZHRoOlt7dHlwZTp4eX1dLGNvbG9yU2NhbGU6W3t0eXBlOnh5fV0sc3ZnRWxlbWVudDpbe3R5cGU6WmEsYXJnczpbImNoYXJ0Iix7c3RhdGljOiEwLHJlYWQ6aGd9XX1dLG9uUmVzaXplOlt7dHlwZTp3eSxhcmdzOlsid2luZG93OnJlc2l6ZSIsWyIkZXZlbnQiXV19XX0pO2NsYXNzIEJfdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hY3RpdmVSdW5zJD10aGlzLnN0b3JlLnBpcGUoRncoTk4pKS5waXBlKEl0KCh0PT50P0FycmF5LmZyb20odC5lbnRyaWVzKCkpLmZpbHRlcigodD0+dFsxXSkpLm1hcCgodD0+dFswXSkpOltdKSkpLHRoaXMuYWN0aXZlTWV0cmljcyQ9V3QodGhpcy5zdG9yZS5zZWxlY3Qoc2J0KSx0aGlzLmFjdGl2ZVJ1bnMkLHRoaXMuc3RvcmUuc2VsZWN0KGdidCkpLnBpcGUoSXQoKChbdCxlLG5dKT0+e2xldCBvPVtdO2Zvcihjb25zdCBuIG9mIGUpdFtuXSYmKG89by5jb25jYXQodFtuXS5maWx0ZXIoKHQ9PmV5dCh0KSkpKSk7cmV0dXJuIG89Wy4uLm5ldyBTZXQoWy4uLk9iamVjdC5rZXlzKG4pLC4uLm9dKV0sby5tYXAoKHQ9Pm55dCh0KSkpfSkpKSx0aGlzLmNvb3JkaW5hdGVEYXRhJD1XdChbdGhpcy5zdG9yZS5zZWxlY3QocmJ0KSx0aGlzLnN0b3JlLnNlbGVjdChjYnQpLHRoaXMuYWN0aXZlUnVucyQsdGhpcy5hY3RpdmVNZXRyaWNzJF0pLnBpcGUoSXQoKChbdCxlLG4sb10pPT4oZnVuY3Rpb24gaSh0LGUsbixvKXtjb25zdCBpPVtdLGE9e21heDotMSxtaW46MX0scj1uZXcgU2V0KG4pLHM9bmV3IFNldChvKTtyZXR1cm4gMD09PXIuc2l6ZXx8MD09PXMuc2l6ZXx8MD09PU9iamVjdC5rZXlzKHQpLmxlbmd0aD97Y29vcmRpbmF0ZXM6W10sZXh0cmVtZXM6e21pbjotMSxtYXg6MX19OihlLmZvckVhY2goKGU9Pntjb25zdCBuPXt9O3RbZV0uZm9yRWFjaCgodD0+e3IuaGFzKHQucnVuKSYmcy5oYXModC5tZXRyaWMpJiYoblt0LnJ1bl0/blt0LnJ1bl0ucHVzaCh0KTpuW3QucnVuXT1bdF0sbnVsbCE9PXQublBNSVZhbHVlPyhhLm1heD1NYXRoLm1heChhLm1heCx0Lm5QTUlWYWx1ZSksYS5taW49TWF0aC5taW4oYS5taW4sdC5uUE1JVmFsdWUpKTooYS5tYXg9TWF0aC5tYXgoYS5tYXgsMCksYS5taW49TWF0aC5taW4oYS5taW4sMCkpKX0pKTtmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhuKSlpLnB1c2goe2Fubm90YXRpb246ZSxydW5JZDp0LHZhbHVlczpuW3RdfSl9KSksYS5tYXg8YS5taW4mJihhLm1heD0xLGEubWluPS0xKSx7Y29vcmRpbmF0ZXM6aSxleHRyZW1lczphfSl9KSh0LGUsbixvKSkpKSx0aGlzLnNpZGViYXJXaWR0aCQ9dGhpcy5zdG9yZS5zZWxlY3QoeGJ0KSx0aGlzLnJ1bkNvbG9yU2NhbGUkPXRoaXMuc3RvcmUuc2VsZWN0KHpOKS5waXBlKEl0KCh0PT5lPT57aWYoIXQuaGFzT3duUHJvcGVydHkoZSkpdGhyb3cgbmV3IEVycm9yKGBbQ29sb3Igc2NhbGVdIHVua25vd24gcnVuSWQ6ICR7ZX0uYCk7cmV0dXJuIHRbZV19KSkpfX1mdW5jdGlvbiBWX3QodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiw5KX1mdW5jdGlvbiBqX3QodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiwxMCl9ZnVuY3Rpb24gVV90KHQsZSl7MSZ0JiZUbSgwLCJucG1pLXBhcmFsbGVsLWNvb3JkaW5hdGVzIil9Ql90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCX3QpKFNtKEl3KSl9LEJfdC7JtWNtcD10byh7dHlwZTpCX3Qsc2VsZWN0b3JzOltbIm5wbWktcGFyYWxsZWwtY29vcmRpbmF0ZXMiXV0sZGVjbHM6NSx2YXJzOjEyLGNvbnN0czpbWzMsImFjdGl2ZU1ldHJpY3MiLCJjb29yZGluYXRlRGF0YSIsInNpZGViYXJXaWR0aCIsImNvbG9yU2NhbGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsInBhcmFsbGVsLWNvb3JkaW5hdGVzLWNvbXBvbmVudCIsMCksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSksMiZlJiZEbSgiYWN0aXZlTWV0cmljcyIsVGgoMSw0LG4uYWN0aXZlTWV0cmljcyQpKSgiY29vcmRpbmF0ZURhdGEiLFRoKDIsNixuLmNvb3JkaW5hdGVEYXRhJCkpKCJzaWRlYmFyV2lkdGgiLFRoKDMsOCxuLnNpZGViYXJXaWR0aCQpKSgiY29sb3JTY2FsZSIsVGgoNCwxMCxuLnJ1bkNvbG9yU2NhbGUkKSl9LGRpcmVjdGl2ZXM6W0xfdF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJfdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLXBhcmFsbGVsLWNvb3JkaW5hdGVzIix0ZW1wbGF0ZTonXG4gICAgPHBhcmFsbGVsLWNvb3JkaW5hdGVzLWNvbXBvbmVudFxuICAgICAgW2FjdGl2ZU1ldHJpY3NdPSJhY3RpdmVNZXRyaWNzJCB8IGFzeW5jIlxuICAgICAgW2Nvb3JkaW5hdGVEYXRhXT0iY29vcmRpbmF0ZURhdGEkIHwgYXN5bmMiXG4gICAgICBbc2lkZWJhcldpZHRoXT0ic2lkZWJhcldpZHRoJCB8IGFzeW5jIlxuICAgICAgW2NvbG9yU2NhbGVdPSJydW5Db2xvclNjYWxlJCB8IGFzeW5jIlxuICAgID48L3BhcmFsbGVsLWNvb3JkaW5hdGVzLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIEdfdHtjb25zdHJ1Y3Rvcigpe3RoaXMub25DbGVhclNlbGVjdGVkQW5ub3RhdGlvbnM9bmV3IExoLHRoaXMub25Ub2dnbGVFeHBhbmRlZD1uZXcgTGh9fUdfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8R190KX0sR190Lsm1Y21wPXRvKHt0eXBlOkdfdCxzZWxlY3RvcnM6W1sic2VsZWN0ZWQtYW5ub3RhdGlvbnMtY29tcG9uZW50Il1dLGlucHV0czp7cGNFeHBhbmRlZDoicGNFeHBhbmRlZCIsc2VsZWN0ZWRBbm5vdGF0aW9uczoic2VsZWN0ZWRBbm5vdGF0aW9ucyJ9LG91dHB1dHM6e29uQ2xlYXJTZWxlY3RlZEFubm90YXRpb25zOiJvbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucyIsb25Ub2dnbGVFeHBhbmRlZDoib25Ub2dnbGVFeHBhbmRlZCJ9LGRlY2xzOjExLHZhcnM6NCxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdCxlO3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJDbGVhciBBbm5vdGF0aW9uIFNlbGVjdGlvbiIpOiRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgY2xlYXJzIHRoZSBhbm5vdGF0aW9uIHNlbGVjdGlvbi7ikJ8yYjUyMjg5ZjJjNGI3ZjViMTgyZWQyM2M5MTU0NzIyZWNkNDZhMmQ04pCfMjQ5NDY2MDUyMDM0MTMwODgzMDpDbGVhciBBbm5vdGF0aW9uIFNlbGVjdGlvbmAsZT0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiRXhwYW5kL0hpZGUgU2VsZWN0ZWQgQW5ub3RhdGlvbnMiKTokbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IGV4cGFuZHMgb3IgaGlkZXMgc2VsZWN0ZWQgYW5ub3RhdGlvbnMu4pCfOGY0YWQzMDVjMTllMzY1NWYzMTg5ZTNlMjY0ZTgzZmI3NmY3YmI5NeKQnzU2NzA3OTc3ODQwNzA5NTIwOTU6RXhwYW5kL0hpZGUgU2VsZWN0ZWQgQW5ub3RhdGlvbnNgLFtbMSwicGMtY29udGFpbmVyIl0sWzEsInBjLXRvb2xiYXIiXSxbMSwicGMtdGl0bGUiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsInRpdGxlIiwiRGVzZWxlY3RzIGFsbCBzZWxlY3RlZCBhbm5vdGF0aW9ucy4iLDEsImNsZWFyLWJ1dHRvbiIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsic3ZnSWNvbiIsImNsZWFyXzI0cHgiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGUsMSwiZXhwYW5kLWJ1dHRvbiIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJleHBhbmRfbGVzc18yNHB4IiwiY2xhc3MiLCJleHBhbmQtbGVzcy1pY29uIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vdEV4cGFuZGVkIiwiIl0sWzQsIm5nSWYiXSxbInN2Z0ljb24iLCJleHBhbmRfbGVzc18yNHB4IiwxLCJleHBhbmQtbGVzcy1pY29uIl0sWyJzdmdJY29uIiwiZXhwYW5kX21vcmVfMjRweCIsMSwiZXhwYW5kLWljb24iXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsImRpdiIsMSksUm0oMiwiaDMiLDIpLGt1KDMsIlNlbGVjdGVkIEFubm90YXRpb25zIiksQW0oKSxSbSg0LCJidXR0b24iLDMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucy5lbWl0KCl9KSksVG0oNSwibWF0LWljb24iLDQpLEFtKCksUm0oNiwiYnV0dG9uIiw1KSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub2dnbGVFeHBhbmRlZC5lbWl0KCl9KSksUXAoNyxWX3QsMSwwLCJtYXQtaWNvbiIsNiksUXAoOCxqX3QsMSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw3LGliKSxBbSgpLEFtKCksUXAoMTAsVV90LDEsMCwibnBtaS1wYXJhbGxlbC1jb29yZGluYXRlcyIsOCksQW0oKSksMiZlKXtjb25zdCB0PSRwKDkpO3JjKDQpLERtKCJkaXNhYmxlZCIsMD09PW4uc2VsZWN0ZWRBbm5vdGF0aW9ucy5sZW5ndGgpLHJjKDMpLERtKCJuZ0lmIixuLnBjRXhwYW5kZWQpKCJuZ0lmRWxzZSIsdCkscmMoMyksRG0oIm5nSWYiLG4ucGNFeHBhbmRlZCl9fSxkaXJlY3RpdmVzOltYSCxEVyxkTSxCX3RdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5wYy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlYmViZWJ9LnBjLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDJweDtwYWRkaW5nOjAgMTZweH0ucGMtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtkaXNwbGF5OmlubGluZTtmbGV4OjEgMX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoR190LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InNlbGVjdGVkLWFubm90YXRpb25zLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vc2VsZWN0ZWRfYW5ub3RhdGlvbnNfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vc2VsZWN0ZWRfYW5ub3RhdGlvbnNfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse3BjRXhwYW5kZWQ6W3t0eXBlOnh5fV0sc2VsZWN0ZWRBbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxvbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9uczpbe3R5cGU6T3l9XSxvblRvZ2dsZUV4cGFuZGVkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgV190e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnBjRXhwYW5kZWQkPXRoaXMuc3RvcmUucGlwZShGdyhiYnQpKSx0aGlzLnNlbGVjdGVkQW5ub3RhdGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KGNidCl9Y2xlYXJTZWxlY3RlZEFubm90YXRpb25zKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChUYnQoKSl9dG9nZ2xlRXhwYW5kZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFVidCgpKX19ZnVuY3Rpb24gWV90KHQsZSl7MSZ0JiYoUm0oMCwiZGl2Iiw2KSxSbSgxLCJkaXYiLDcpLFRtKDIsIm5wbWktdmlvbGluLWZpbHRlcnMiLDgpLFJtKDMsImRpdiIsOSksVG0oNCwicnVucy1zZWxlY3RvciIpLEFtKCksQW0oKSxBbSgpKSwyJnQmJmR1KCJ3aWR0aCIsWW0oKS5zaWRlYmFyV2lkdGgsInB4Iil9ZnVuY3Rpb24gcV90KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwxMCksVm0oIm1vdXNlZG93biIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5yZXNpemVHcmFiYmVkLmVtaXQoKX0pKSxBbSgpfX1mdW5jdGlvbiBaX3QodCxlKXsxJnQmJihSbSgwLCJkaXYiLDExKSxUbSgxLCJucG1pLWFubm90YXRpb25zLWxpc3QiLDEyKSxUbSgyLCJucG1pLXNlbGVjdGVkLWFubm90YXRpb25zIiksQW0oKSl9ZnVuY3Rpb24gWF90KHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwxMyksa3UoMSwiWW91IG5lZWQgdG8gc2VsZWN0IGF0IGxlYXN0IG9uZSBydW4uIiksQW0oKSl9ZnVuY3Rpb24gS190KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwxNCksUm0oMSwiYnV0dG9uIiwxNSksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLnRvZ2dsZVNpZGViYXJFeHBhbmRlZC5lbWl0KCl9KSksVG0oMiwibWF0LWljb24iLDE2KSxBbSgpLEFtKCl9fVdfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8V190KShTbShJdykpfSxXX3QuybVjbXA9dG8oe3R5cGU6V190LHNlbGVjdG9yczpbWyJucG1pLXNlbGVjdGVkLWFubm90YXRpb25zIl1dLGRlY2xzOjMsdmFyczo2LGNvbnN0czpbWzMsInBjRXhwYW5kZWQiLCJzZWxlY3RlZEFubm90YXRpb25zIiwib25DbGVhclNlbGVjdGVkQW5ub3RhdGlvbnMiLCJvblRvZ2dsZUV4cGFuZGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJzZWxlY3RlZC1hbm5vdGF0aW9ucy1jb21wb25lbnQiLDApLFZtKCJvbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5jbGVhclNlbGVjdGVkQW5ub3RhdGlvbnMoKX0pKSgib25Ub2dnbGVFeHBhbmRlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi50b2dnbGVFeHBhbmRlZCgpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJwY0V4cGFuZGVkIixUaCgxLDIsbi5wY0V4cGFuZGVkJCkpKCJzZWxlY3RlZEFubm90YXRpb25zIixUaCgyLDQsbi5zZWxlY3RlZEFubm90YXRpb25zJCkpfSxkaXJlY3RpdmVzOltHX3RdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1zZWxlY3RlZC1hbm5vdGF0aW9ucyIsdGVtcGxhdGU6J1xuICAgIDxzZWxlY3RlZC1hbm5vdGF0aW9ucy1jb21wb25lbnRcbiAgICAgIFtwY0V4cGFuZGVkXT0icGNFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFtzZWxlY3RlZEFubm90YXRpb25zXT0ic2VsZWN0ZWRBbm5vdGF0aW9ucyQgfCBhc3luYyJcbiAgICAgIChvbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucyk9ImNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucygpIlxuICAgICAgKG9uVG9nZ2xlRXhwYW5kZWQpPSJ0b2dnbGVFeHBhbmRlZCgpIlxuICAgID48L3NlbGVjdGVkLWFubm90YXRpb25zLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIEpfdHtjb25zdHJ1Y3Rvcigpe3RoaXMudG9nZ2xlU2lkZWJhckV4cGFuZGVkPW5ldyBMaCx0aGlzLnJlc2l6ZVRyaWdnZXJlZD1uZXcgTGgsdGhpcy5yZXNpemVHcmFiYmVkPW5ldyBMaCx0aGlzLnJlc2l6ZVJlbGVhc2VkPW5ldyBMaH19Sl90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxKX3QpfSxKX3QuybVjbXA9dG8oe3R5cGU6Sl90LHNlbGVjdG9yczpbWyJtYWluLWNvbXBvbmVudCJdXSxpbnB1dHM6e3J1bkFjdGl2ZToicnVuQWN0aXZlIixzaWRlYmFyRXhwYW5kZWQ6InNpZGViYXJFeHBhbmRlZCIsc2lkZWJhcldpZHRoOiJzaWRlYmFyV2lkdGgifSxvdXRwdXRzOnt0b2dnbGVTaWRlYmFyRXhwYW5kZWQ6InRvZ2dsZVNpZGViYXJFeHBhbmRlZCIscmVzaXplVHJpZ2dlcmVkOiJyZXNpemVUcmlnZ2VyZWQiLHJlc2l6ZUdyYWJiZWQ6InJlc2l6ZUdyYWJiZWQiLHJlc2l6ZVJlbGVhc2VkOiJyZXNpemVSZWxlYXNlZCJ9LGRlY2xzOjgsdmFyczo1LGNvbnN0czpmdW5jdGlvbigpe2xldCB0O3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJUb2dnbGUgU2lkZWJhciIpOiRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgdG9nZ2xlcyB0aGUgc2lkZWJhci7ikJ9mNjNiNTc5MzJkMTc5Y2NhNjJhYzlmY2FlNjNkZDdmNWU2ZmEzODlm4pCfNDQ4NTAwOTM0NzQ0NDcwNDg3ODpUb2dnbGUgU2lkZWJhcmAsW1sxLCJjb250ZW50IiwzLCJtb3VzZXVwIiwibW91c2Vtb3ZlIl0sWyJjbGFzcyIsInNpZGViYXItY29udGFpbmVyIiwzLCJ3aWR0aCIsNCwibmdJZiJdLFsiY2xhc3MiLCJncmFiYmVyIiwzLCJtb3VzZWRvd24iLDQsIm5nSWYiXSxbImNsYXNzIiwiYW5hbHlzaXMtY29udGFpbmVyIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vUnVuIiwiIl0sWyJjbGFzcyIsInNpZGUtdG9nZ2xlIiw0LCJuZ0lmIl0sWzEsInNpZGViYXItY29udGFpbmVyIl0sWzEsInNpZGViYXItY29udGVudHMiXSxbMSwidmlvbGluLWZpbHRlcnMiXSxbMSwicnVuLXNlbGVjdG9yIl0sWzEsImdyYWJiZXIiLDMsIm1vdXNlZG93biJdLFsxLCJhbmFseXNpcy1jb250YWluZXIiXSxbMSwiYW5ub3RhdGlvbnMtbGlzdCJdLFsxLCJub1J1biJdLFsxLCJzaWRlLXRvZ2dsZSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNoZXZyb25fcmlnaHRfMjRweCJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFRtKDAsIm5wbWktZGF0YS1zZWxlY3Rpb24iKSxSbSgxLCJkaXYiLDApLFZtKCJtb3VzZXVwIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnJlc2l6ZVJlbGVhc2VkLmVtaXQoKX0pKSgibW91c2Vtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5yZXNpemVUcmlnZ2VyZWQuZW1pdChlKX0pKSxRcCgyLFlfdCw1LDIsImRpdiIsMSksUXAoMyxxX3QsMSwwLCJkaXYiLDIpLFFwKDQsWl90LDMsMCwiZGl2IiwzKSxRcCg1LFhfdCwyLDAsIm5nLXRlbXBsYXRlIixudWxsLDQsaWIpLEFtKCksUXAoNyxLX3QsMywwLCJkaXYiLDUpKSwyJmUpe2NvbnN0IHQ9JHAoNik7cmMoMiksRG0oIm5nSWYiLG4uc2lkZWJhckV4cGFuZGVkKSxyYygxKSxEbSgibmdJZiIsbi5zaWRlYmFyRXhwYW5kZWQpLHJjKDEpLERtKCJuZ0lmIiwhMD09PW4ucnVuQWN0aXZlKSgibmdJZkVsc2UiLHQpLHJjKDMpLERtKCJuZ0lmIiwhbi5zaWRlYmFyRXhwYW5kZWQpfX0sZGlyZWN0aXZlczpbVXl0LGRNLEp5dCxjMixIX3QsV190LFhILERXXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4OjE7bWluLWhlaWdodDowcHg7d2lkdGg6MTAwJX0uc2lkZWJhci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0uc2lkZWJhci1jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MTUwcHh9LmFuYWx5c2lzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTtmbGV4OjEgMX0ucnVuLXNlbGVjdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXttYXgtaGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0udmlvbGluLWZpbHRlcnNbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6MHB4O3dpZHRoOjEwMCV9LnNpZGUtdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDozMHB4O2hlaWdodDozMHB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTBweDtib3R0b206MTBweDtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7Ym9yZGVyLXJhZGl1czozcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5ncmFiYmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtjb250ZW50OiIiO2N1cnNvcjpldy1yZXNpemU7aGVpZ2h0OjEwMCU7d2lkdGg6M3B4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0uYW5ub3RhdGlvbnMtbGlzdFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTttaW4taGVpZ2h0OjBweDtmbGV4OjEgMX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSl90LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1haW4tY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9tYWluX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL21haW5fY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse3J1bkFjdGl2ZTpbe3R5cGU6eHl9XSxzaWRlYmFyRXhwYW5kZWQ6W3t0eXBlOnh5fV0sc2lkZWJhcldpZHRoOlt7dHlwZTp4eX1dLHRvZ2dsZVNpZGViYXJFeHBhbmRlZDpbe3R5cGU6T3l9XSxyZXNpemVUcmlnZ2VyZWQ6W3t0eXBlOk95fV0scmVzaXplR3JhYmJlZDpbe3R5cGU6T3l9XSxyZXNpemVSZWxlYXNlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIFFfdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5ydW5BY3RpdmUkPXRoaXMuc3RvcmUucGlwZShGdyhOTikpLnBpcGUoSXQoKHQ9PiEhdCYmWy4uLnQudmFsdWVzKCldLmluY2x1ZGVzKCEwKSkpKSx0aGlzLnNpZGViYXJFeHBhbmRlZCQ9dGhpcy5zdG9yZS5waXBlKEZ3KF9idCkpLHRoaXMuc2lkZWJhcldpZHRoJD10aGlzLnN0b3JlLnBpcGUoRncoeGJ0KSksdGhpcy5yZXNpemluZz0hMX1vblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goV2J0KCkpfW9uUmVzaXplVHJpZ2dlcmVkKHQpe3RoaXMucmVzaXppbmcmJnRoaXMuc3RvcmUuZGlzcGF0Y2goWGJ0KHtzaWRlYmFyV2lkdGg6dC5jbGllbnRYfSkpfW9uUmVzaXplR3JhYmJlZCgpe3RoaXMucmVzaXppbmc9ITB9b25SZXNpemVSZWxlYXNlZCgpe3RoaXMucmVzaXppbmc9ITF9fWZ1bmN0aW9uICRfdCh0LGUpezEmdCYmKFJtKDAsImRpdiIsNiksUm0oMSwiZGl2Iiw3KSxSbSgyLCJkaXYiLDgpLFRtKDMsInJ1bnMtc2VsZWN0b3IiKSxBbSgpLEFtKCksQW0oKSksMiZ0JiZkdSgid2lkdGgiLFltKCkuc2lkZWJhcldpZHRoLCJweCIpfWZ1bmN0aW9uIHRDdCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsOSksVm0oIm1vdXNlZG93biIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5yZXNpemVHcmFiYmVkLmVtaXQoKX0pKSxBbSgpfX1mdW5jdGlvbiBlQ3QodCxlKXsxJnQmJihSbSgwLCJkaXYiLDEwKSxUbSgxLCJucG1pLWFubm90YXRpb25zLWxpc3QiLDExKSxUbSgyLCJucG1pLXNlbGVjdGVkLWFubm90YXRpb25zIiksQW0oKSl9ZnVuY3Rpb24gbkN0KHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwxMiksa3UoMSwiWW91IG5lZWQgdG8gc2VsZWN0IGF0IGxlYXN0IG9uZSBydW4uIiksQW0oKSl9ZnVuY3Rpb24gb0N0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwxMyksUm0oMSwiYnV0dG9uIiwxNCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLnRvZ2dsZVNpZGViYXJFeHBhbmRlZC5lbWl0KCl9KSksVG0oMiwibWF0LWljb24iLDE1KSxBbSgpLEFtKCl9fVFfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UV90KShTbShJdykpfSxRX3QuybVjbXA9dG8oe3R5cGU6UV90LHNlbGVjdG9yczpbWyJucG1pLW1haW4iXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywicnVuQWN0aXZlIiwic2lkZWJhckV4cGFuZGVkIiwic2lkZWJhcldpZHRoIiwidG9nZ2xlU2lkZWJhckV4cGFuZGVkIiwicmVzaXplVHJpZ2dlcmVkIiwicmVzaXplR3JhYmJlZCIsInJlc2l6ZVJlbGVhc2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtYWluLWNvbXBvbmVudCIsMCksVm0oInRvZ2dsZVNpZGViYXJFeHBhbmRlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpfSkpKCJyZXNpemVUcmlnZ2VyZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUmVzaXplVHJpZ2dlcmVkKGUpfSkpKCJyZXNpemVHcmFiYmVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVzaXplR3JhYmJlZCgpfSkpKCJyZXNpemVSZWxlYXNlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlc2l6ZVJlbGVhc2VkKCl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgicnVuQWN0aXZlIixUaCgxLDMsbi5ydW5BY3RpdmUkKSkoInNpZGViYXJFeHBhbmRlZCIsVGgoMiw1LG4uc2lkZWJhckV4cGFuZGVkJCkpKCJzaWRlYmFyV2lkdGgiLFRoKDMsNyxuLnNpZGViYXJXaWR0aCQpKX0sZGlyZWN0aXZlczpbSl90XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUV90LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktbWFpbiIsdGVtcGxhdGU6J1xuICAgIDxtYWluLWNvbXBvbmVudFxuICAgICAgW3J1bkFjdGl2ZV09InJ1bkFjdGl2ZSQgfCBhc3luYyJcbiAgICAgIFtzaWRlYmFyRXhwYW5kZWRdPSJzaWRlYmFyRXhwYW5kZWQkIHwgYXN5bmMiXG4gICAgICBbc2lkZWJhcldpZHRoXT0ic2lkZWJhcldpZHRoJCB8IGFzeW5jIlxuICAgICAgKHRvZ2dsZVNpZGViYXJFeHBhbmRlZCk9Im9uVG9nZ2xlU2lkZWJhckV4cGFuZGVkKCkiXG4gICAgICAocmVzaXplVHJpZ2dlcmVkKT0ib25SZXNpemVUcmlnZ2VyZWQoJGV2ZW50KSJcbiAgICAgIChyZXNpemVHcmFiYmVkKT0ib25SZXNpemVHcmFiYmVkKCkiXG4gICAgICAocmVzaXplUmVsZWFzZWQpPSJvblJlc2l6ZVJlbGVhc2VkKCkiXG4gICAgPjwvbWFpbi1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjbGFzcyBpQ3R7Y29uc3RydWN0b3IoKXt0aGlzLnRvZ2dsZVNpZGViYXJFeHBhbmRlZD1uZXcgTGgsdGhpcy5yZXNpemVUcmlnZ2VyZWQ9bmV3IExoLHRoaXMucmVzaXplR3JhYmJlZD1uZXcgTGgsdGhpcy5yZXNpemVSZWxlYXNlZD1uZXcgTGh9fWlDdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aUN0KX0saUN0Lsm1Y21wPXRvKHt0eXBlOmlDdCxzZWxlY3RvcnM6W1siZW1iZWRkaW5ncy1jb21wb25lbnQiXV0saW5wdXRzOntydW5BY3RpdmU6InJ1bkFjdGl2ZSIsc2lkZWJhckV4cGFuZGVkOiJzaWRlYmFyRXhwYW5kZWQiLHNpZGViYXJXaWR0aDoic2lkZWJhcldpZHRoIn0sb3V0cHV0czp7dG9nZ2xlU2lkZWJhckV4cGFuZGVkOiJ0b2dnbGVTaWRlYmFyRXhwYW5kZWQiLHJlc2l6ZVRyaWdnZXJlZDoicmVzaXplVHJpZ2dlcmVkIixyZXNpemVHcmFiYmVkOiJyZXNpemVHcmFiYmVkIixyZXNpemVSZWxlYXNlZDoicmVzaXplUmVsZWFzZWQifSxkZWNsczo4LHZhcnM6NSxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gdD0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiVG9nZ2xlIFNpZGViYXIiKTokbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IHRvZ2dsZXMgdGhlIHNpZGViYXIu4pCfZjYzYjU3OTMyZDE3OWNjYTYyYWM5ZmNhZTYzZGQ3ZjVlNmZhMzg5ZuKQnzQ0ODUwMDkzNDc0NDQ3MDQ4Nzg6VG9nZ2xlIFNpZGViYXJgLFtbMSwiY29udGVudCIsMywibW91c2V1cCIsIm1vdXNlbW92ZSJdLFsiY2xhc3MiLCJzaWRlYmFyLWNvbnRhaW5lciIsMywid2lkdGgiLDQsIm5nSWYiXSxbImNsYXNzIiwiZ3JhYmJlciIsMywibW91c2Vkb3duIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImFuYWx5c2lzLWNvbnRhaW5lciIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub1J1biIsIiJdLFsiY2xhc3MiLCJzaWRlLXRvZ2dsZSIsNCwibmdJZiJdLFsxLCJzaWRlYmFyLWNvbnRhaW5lciJdLFsxLCJzaWRlYmFyLWNvbnRlbnRzIl0sWzEsInJ1bi1zZWxlY3RvciJdLFsxLCJncmFiYmVyIiwzLCJtb3VzZWRvd24iXSxbMSwiYW5hbHlzaXMtY29udGFpbmVyIl0sWzEsImFubm90YXRpb25zLWxpc3QiXSxbMSwibm9SdW4iXSxbMSwic2lkZS10b2dnbGUiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywiY2xpY2siXSxbInN2Z0ljb24iLCJjaGV2cm9uX3JpZ2h0XzI0cHgiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihUbSgwLCJucG1pLWRhdGEtc2VsZWN0aW9uIiksUm0oMSwiZGl2IiwwKSxWbSgibW91c2V1cCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5yZXNpemVSZWxlYXNlZC5lbWl0KCl9KSkoIm1vdXNlbW92ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ucmVzaXplVHJpZ2dlcmVkLmVtaXQoZSl9KSksUXAoMiwkX3QsNCwyLCJkaXYiLDEpLFFwKDMsdEN0LDEsMCwiZGl2IiwyKSxRcCg0LGVDdCwzLDAsImRpdiIsMyksUXAoNSxuQ3QsMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LGliKSxBbSgpLFFwKDcsb0N0LDMsMCwiZGl2Iiw1KSksMiZlKXtjb25zdCB0PSRwKDYpO3JjKDIpLERtKCJuZ0lmIixuLnNpZGViYXJFeHBhbmRlZCkscmMoMSksRG0oIm5nSWYiLG4uc2lkZWJhckV4cGFuZGVkKSxyYygxKSxEbSgibmdJZiIsITA9PT1uLnJ1bkFjdGl2ZSkoIm5nSWZFbHNlIix0KSxyYygzKSxEbSgibmdJZiIsIW4uc2lkZWJhckV4cGFuZGVkKX19LGRpcmVjdGl2ZXM6W1V5dCxkTSxjMixIX3QsV190LFhILERXXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4OjE7bWluLWhlaWdodDowcHg7d2lkdGg6MTAwJX0uc2lkZWJhci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0uc2lkZWJhci1jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MTUwcHh9LmFuYWx5c2lzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTtmbGV4OjEgMX0ucnVuLXNlbGVjdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXttYXgtaGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uc2lkZS10b2dnbGVbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMHB4O2JvdHRvbToxMHB4O2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjtib3JkZXItcmFkaXVzOjNweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmdyYWJiZXJbX25nY29udGVudC0lQ09NUCVde2NvbnRlbnQ6IiI7Y3Vyc29yOmV3LXJlc2l6ZTtoZWlnaHQ6MTAwJTt3aWR0aDozcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5hbm5vdGF0aW9ucy1saXN0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO21pbi1oZWlnaHQ6MHB4O2ZsZXg6MSAxfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChpQ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiZW1iZWRkaW5ncy1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL2VtYmVkZGluZ3NfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vZW1iZWRkaW5nc19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cnVuQWN0aXZlOlt7dHlwZTp4eX1dLHNpZGViYXJFeHBhbmRlZDpbe3R5cGU6eHl9XSxzaWRlYmFyV2lkdGg6W3t0eXBlOnh5fV0sdG9nZ2xlU2lkZWJhckV4cGFuZGVkOlt7dHlwZTpPeX1dLHJlc2l6ZVRyaWdnZXJlZDpbe3R5cGU6T3l9XSxyZXNpemVHcmFiYmVkOlt7dHlwZTpPeX1dLHJlc2l6ZVJlbGVhc2VkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgYUN0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnJ1bkFjdGl2ZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KE5OKSkucGlwZShJdCgodD0+ISF0JiZbLi4udC52YWx1ZXMoKV0uaW5jbHVkZXMoITApKSkpLHRoaXMuc2lkZWJhckV4cGFuZGVkJD10aGlzLnN0b3JlLnBpcGUoRncod2J0KSksdGhpcy5zaWRlYmFyV2lkdGgkPXRoaXMuc3RvcmUucGlwZShGdyhQYnQpKSx0aGlzLnJlc2l6aW5nPSExfW9uVG9nZ2xlU2lkZWJhckV4cGFuZGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChKYnQoKSl9b25SZXNpemVUcmlnZ2VyZWQodCl7dGhpcy5yZXNpemluZyYmdGhpcy5zdG9yZS5kaXNwYXRjaChLYnQoe3NpZGViYXJXaWR0aDp0LmNsaWVudFh9KSl9b25SZXNpemVHcmFiYmVkKCl7dGhpcy5yZXNpemluZz0hMH1vblJlc2l6ZVJlbGVhc2VkKCl7dGhpcy5yZXNpemluZz0hMX19ZnVuY3Rpb24gckN0KHQsZSl7MSZ0JiZUbSgwLCJucG1pLWluYWN0aXZlLXZpZXciKX1mdW5jdGlvbiBzQ3QodCxlKXsxJnQmJlRtKDAsIm5wbWktbWFpbiIpfWZ1bmN0aW9uIGxDdCh0LGUpezEmdCYmVG0oMCwibnBtaS1lbWJlZGRpbmdzIil9ZnVuY3Rpb24gY0N0KHQsZSl7aWYoMSZ0JiYoUXAoMCxzQ3QsMSwwLCJucG1pLW1haW4iLDMpLFFwKDEsbEN0LDEsMCwibnBtaS1lbWJlZGRpbmdzIiwzKSksMiZ0KXtjb25zdCB0PVltKCk7RG0oIm5nSWYiLHQuYWN0aXZlVmlldz09PXQuVmlld0FjdGl2ZS5ERUZBVUxUKSxyYygxKSxEbSgibmdJZiIsdC5hY3RpdmVWaWV3PT09dC5WaWV3QWN0aXZlLkVNQkVERElOR1MpfX1hQ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGFDdCkoU20oSXcpKX0sYUN0Lsm1Y21wPXRvKHt0eXBlOmFDdCxzZWxlY3RvcnM6W1sibnBtaS1lbWJlZGRpbmdzIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsInJ1bkFjdGl2ZSIsInNpZGViYXJFeHBhbmRlZCIsInNpZGViYXJXaWR0aCIsInRvZ2dsZVNpZGViYXJFeHBhbmRlZCIsInJlc2l6ZVRyaWdnZXJlZCIsInJlc2l6ZUdyYWJiZWQiLCJyZXNpemVSZWxlYXNlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZW1iZWRkaW5ncy1jb21wb25lbnQiLDApLFZtKCJ0b2dnbGVTaWRlYmFyRXhwYW5kZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub2dnbGVTaWRlYmFyRXhwYW5kZWQoKX0pKSgicmVzaXplVHJpZ2dlcmVkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlc2l6ZVRyaWdnZXJlZChlKX0pKSgicmVzaXplR3JhYmJlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlc2l6ZUdyYWJiZWQoKX0pKSgicmVzaXplUmVsZWFzZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZXNpemVSZWxlYXNlZCgpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFtKCkpLDImZSYmRG0oInJ1bkFjdGl2ZSIsVGgoMSwzLG4ucnVuQWN0aXZlJCkpKCJzaWRlYmFyRXhwYW5kZWQiLFRoKDIsNSxuLnNpZGViYXJFeHBhbmRlZCQpKSgic2lkZWJhcldpZHRoIixUaCgzLDcsbi5zaWRlYmFyV2lkdGgkKSl9LGRpcmVjdGl2ZXM6W2lDdF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGFDdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLWVtYmVkZGluZ3MiLHRlbXBsYXRlOidcbiAgICA8ZW1iZWRkaW5ncy1jb21wb25lbnRcbiAgICAgIFtydW5BY3RpdmVdPSJydW5BY3RpdmUkIHwgYXN5bmMiXG4gICAgICBbc2lkZWJhckV4cGFuZGVkXT0ic2lkZWJhckV4cGFuZGVkJCB8IGFzeW5jIlxuICAgICAgW3NpZGViYXJXaWR0aF09InNpZGViYXJXaWR0aCQgfCBhc3luYyJcbiAgICAgICh0b2dnbGVTaWRlYmFyRXhwYW5kZWQpPSJvblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpIlxuICAgICAgKHJlc2l6ZVRyaWdnZXJlZCk9Im9uUmVzaXplVHJpZ2dlcmVkKCRldmVudCkiXG4gICAgICAocmVzaXplR3JhYmJlZCk9Im9uUmVzaXplR3JhYmJlZCgpIlxuICAgICAgKHJlc2l6ZVJlbGVhc2VkKT0ib25SZXNpemVSZWxlYXNlZCgpIlxuICAgID48L2VtYmVkZGluZ3MtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgZEN0e2NvbnN0cnVjdG9yKCl7dGhpcy5WaWV3QWN0aXZlPWVidH19ZEN0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkQ3QpfSxkQ3QuybVjbXA9dG8oe3R5cGU6ZEN0LHNlbGVjdG9yczpbWyJucG1pLWNvbXBvbmVudCJdXSxpbnB1dHM6e3J1bnM6InJ1bnMiLGFjdGl2ZVZpZXc6ImFjdGl2ZVZpZXcifSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1sxLCJucG1pLWNvbnRhaW5lciJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImRhdGFBdmFpbGFibGUiLCIiXSxbNCwibmdJZiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUm0oMCwiZGl2IiwwKSxRcCgxLHJDdCwxLDAsIm5wbWktaW5hY3RpdmUtdmlldyIsMSksUXAoMixjQ3QsMiwyLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLGliKSxBbSgpKSwyJmUpe2NvbnN0IHQ9JHAoMyk7cmMoMSksRG0oIm5nSWYiLDA9PT1uLnJ1bnMuc2l6ZSkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W2RNLG9idCxRX3QsYUN0XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJX0ubnBtaS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkQ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL25wbWlfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vbnBtaV9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cnVuczpbe3R5cGU6eHl9XSxhY3RpdmVWaWV3Olt7dHlwZTp4eX1dfSk7Y2xhc3MgcEN0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnJ1bnMkPXRoaXMuc3RvcmUucGlwZShGdyhOTikpLHRoaXMuYWN0aXZlVmlldyQ9dGhpcy5zdG9yZS5waXBlKEZ3KHZidCkpfW5nT25Jbml0KCl7dGhpcy5zdG9yZS5kaXNwYXRjaChrYnQoKSl9fXBDdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cEN0KShTbShJdykpfSxwQ3QuybVjbXA9dG8oe3R5cGU6cEN0LHNlbGVjdG9yczpbWyJucG1pIl1dLGRlY2xzOjMsdmFyczo2LGNvbnN0czpbWzMsInJ1bnMiLCJhY3RpdmVWaWV3Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJucG1pLWNvbXBvbmVudCIsMCksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpKSwyJmUmJkRtKCJydW5zIixUaCgxLDIsbi5ydW5zJCkpKCJhY3RpdmVWaWV3IixUaCgyLDQsbi5hY3RpdmVWaWV3JCkpfSxkaXJlY3RpdmVzOltkQ3RdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwQ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaSIsdGVtcGxhdGU6J1xuICAgIDxucG1pLWNvbXBvbmVudFxuICAgICAgW3J1bnNdPSJydW5zJCB8IGFzeW5jIlxuICAgICAgW2FjdGl2ZVZpZXddPSJhY3RpdmVWaWV3JCB8IGFzeW5jIlxuICAgID48L25wbWktY29tcG9uZW50PlxuICAnfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO3ZhciBtQ3Q9e30sdUN0PXt9LGZDdD17fSxnQ3Q9e30saEN0PVF2JiZRdi5fX3ZhbHVlc3x8ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdLG49MDtyZXR1cm4gZT9lLmNhbGwodCk6e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCYmbj49dC5sZW5ndGgmJih0PXZvaWQgMCkse3ZhbHVlOnQmJnRbbisrXSxkb25lOiF0fX19fTtmdW5jdGlvbiBiQ3QodCxlKXtyZXR1cm4gTWF0aC5mbG9vcihlKCkqdCl9ZnVuY3Rpb24geUN0KHQpe2Zvcih2YXIgZT1bXSxuPTA7bjx0O24rKyllLnB1c2godm9pZCAwKTtyZXR1cm4gZX1mdW5jdGlvbiBfQ3QodCxlKXtyZXR1cm4geUN0KHQpLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gZX0pKX1mdW5jdGlvbiBDQ3QodCl7cmV0dXJuIF9DdCh0LDApfWZ1bmN0aW9uIE1DdCh0KXtyZXR1cm4gdC5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZ0N0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxnQ3QudGF1UmFuZEludD1iQ3QsZ0N0LnRhdVJhbmQ9ZnVuY3Rpb24gdkN0KHQpe3JldHVybiB0KCl9LGdDdC5ub3JtPWZ1bmN0aW9uIHhDdCh0KXt2YXIgZSxuLG89MDt0cnl7Zm9yKHZhciBpPWhDdCh0KSxhPWkubmV4dCgpOyFhLmRvbmU7YT1pLm5leHQoKSlvKz1NYXRoLnBvdyhhLnZhbHVlLDIpfWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1yZXR1cm4gTWF0aC5zcXJ0KG8pfSxnQ3QuZW1wdHk9eUN0LGdDdC5yYW5nZT1mdW5jdGlvbiBPQ3QodCl7cmV0dXJuIHlDdCh0KS5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSl9LGdDdC5maWxsZWQ9X0N0LGdDdC56ZXJvcz1DQ3QsZ0N0Lm9uZXM9ZnVuY3Rpb24gUEN0KHQpe3JldHVybiBfQ3QodCwxKX0sZ0N0LmxpbmVhcj1mdW5jdGlvbiB3Q3QodCxlLG4pe3JldHVybiB5Q3QobikubWFwKChmdW5jdGlvbihvLGkpe3JldHVybiB0K2kqKChlLXQpLyhuLTEpKX0pKX0sZ0N0LnN1bT1NQ3QsZ0N0Lm1lYW49ZnVuY3Rpb24ga0N0KHQpe3JldHVybiBNQ3QodCkvdC5sZW5ndGh9LGdDdC5tYXg9ZnVuY3Rpb24gU0N0KHQpe2Zvcih2YXIgZT0wLG49MDtuPHQubGVuZ3RoO24rKyllPXRbbl0+ZT90W25dOmU7cmV0dXJuIGV9LGdDdC5tYXgyZD1mdW5jdGlvbiBEQ3QodCl7Zm9yKHZhciBlPTAsbj0wO248dC5sZW5ndGg7bisrKWZvcih2YXIgbz0wO288dFtuXS5sZW5ndGg7bysrKWU9dFtuXVtvXT5lP3Rbbl1bb106ZTtyZXR1cm4gZX0sZ0N0LnJlamVjdGlvblNhbXBsZT1mdW5jdGlvbiBFQ3QodCxlLG4pe2Zvcih2YXIgbz1DQ3QodCksaT0wO2k8dDtpKyspZm9yKHZhciBhPSEwO2E7KXtmb3IodmFyIHI9YkN0KGUsbikscz0hMSxsPTA7bDxpO2wrKylpZihyPT09b1tsXSl7cz0hMDticmVha31zfHwoYT0hMSksb1tpXT1yfXJldHVybiBvfSxnQ3QucmVzaGFwZTJkPWZ1bmN0aW9uIFJDdCh0LGUsbil7dmFyIG89W10saT0wO2lmKHQubGVuZ3RoIT09ZSpuKXRocm93IG5ldyBFcnJvcigiQXJyYXkgZGltZW5zaW9ucyBtdXN0IG1hdGNoIGlucHV0IGxlbmd0aC4iKTtmb3IodmFyIGE9MDthPGU7YSsrKXtmb3IodmFyIHI9W10scz0wO3M8bjtzKyspci5wdXNoKHRbaV0pLGkrPTE7by5wdXNoKHIpfXJldHVybiBvfTt2YXIgQUN0PVF2JiZRdi5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZihudWxsIT10KWZvcih2YXIgbiBpbiB0KU9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlLmRlZmF1bHQ9dCxlfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZkN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgVEN0PUFDdChnQ3QpO2Z1bmN0aW9uIE5DdCh0LGUpe3ZhciBuPWZ1bmN0aW9uKG4pe3JldHVybiBUQ3QuZW1wdHkodCkubWFwKChmdW5jdGlvbigpe3JldHVybiBUQ3QuZmlsbGVkKGUsbil9KSl9LG89W107cmV0dXJuIG8ucHVzaChuKC0xKSksby5wdXNoKG4oMS8wKSksby5wdXNoKG4oMCkpLG99ZnVuY3Rpb24gekN0KHQsZSxuLG8saSl7ZT1NYXRoLmZsb29yKGUpO3ZhciBhPXRbMF1bZV07aWYobj49dFsxXVtlXVswXSlyZXR1cm4gMDtmb3IodmFyIHI9MDtyPGEubGVuZ3RoO3IrKylpZihvPT09YVtyXSlyZXR1cm4gMDtyZXR1cm4gSUN0KHQsZSxuLG8saSl9ZnVuY3Rpb24gSUN0KHQsZSxuLG8saSl7dmFyIGE9dFswXVtlXSxyPXRbMV1bZV0scz10WzJdW2VdO2lmKG4+PXJbMF0pcmV0dXJuIDA7clswXT1uLGFbMF09byxzWzBdPWk7Zm9yKHZhciBsPTAsYz0wOzspe3ZhciBkPTIqbCsxLHA9ZCsxLG09dFswXVswXS5sZW5ndGg7aWYoZD49bSlicmVhaztpZihwPj1tKXtpZighKHJbZF0+bikpYnJlYWs7Yz1kfWVsc2UgaWYocltkXT49cltwXSl7aWYoIShuPHJbZF0pKWJyZWFrO2M9ZH1lbHNle2lmKCEobjxyW3BdKSlicmVhaztjPXB9cltsXT1yW2NdLGFbbF09YVtjXSxzW2xdPXNbY10sbD1jfXJldHVybiByW2xdPW4sYVtsXT1vLHNbbF09aSwxfWZ1bmN0aW9uIEhDdCh0LGUsbixvKXtmb3IoOzIqbysxPG47KXt2YXIgaT0yKm8rMSxhPWkrMSxyPW87aWYodFtyXTx0W2ldJiYocj1pKSxhPG4mJnRbcl08dFthXSYmKHI9YSkscj09PW8pYnJlYWs7dmFyIHM9dFtvXTt0W29dPXRbcl0sdFtyXT1zO3ZhciBsPWVbb107ZVtvXT1lW3JdLGVbcl09bCxvPXJ9fWZDdC5tYWtlSGVhcD1OQ3QsZkN0LnJlamVjdGlvblNhbXBsZT1mdW5jdGlvbiBGQ3QodCxlLG4pe2Zvcih2YXIgbz1UQ3QuemVyb3ModCksaT0wO2k8dDtpKyspe2Zvcih2YXIgYT0hMCxyPTA7YTspe3I9VEN0LnRhdVJhbmRJbnQoZSxuKTtmb3IodmFyIHM9ITEsbD0wO2w8aTtsKyspaWYocj09PW9bbF0pe3M9ITA7YnJlYWt9c3x8KGE9ITEpfW9baV09cn1yZXR1cm4gb30sZkN0LmhlYXBQdXNoPXpDdCxmQ3QudW5jaGVja2VkSGVhcFB1c2g9SUN0LGZDdC5idWlsZENhbmRpZGF0ZXM9ZnVuY3Rpb24gTEN0KHQsZSxuLG8saSl7Zm9yKHZhciBhPU5DdChlLG8pLHI9MDtyPGU7cisrKWZvcih2YXIgcz0wO3M8bjtzKyspaWYoISh0WzBdW3JdW3NdPDApKXt2YXIgbD10WzBdW3JdW3NdLGM9dFsyXVtyXVtzXSxkPVRDdC50YXVSYW5kKGkpO3pDdChhLHIsZCxsLGMpLHpDdChhLGwsZCxyLGMpLHRbMl1bcl1bc109MH1yZXR1cm4gYX0sZkN0LmRlaGVhcFNvcnQ9ZnVuY3Rpb24gQkN0KHQpe2Zvcih2YXIgZT10WzBdLG49dFsxXSxvPTA7bzxlLmxlbmd0aDtvKyspZm9yKHZhciBpPWVbb10sYT1uW29dLHI9MDtyPGkubGVuZ3RoLTE7cisrKXt2YXIgcz1pLmxlbmd0aC1yLTEsbD1hLmxlbmd0aC1yLTEsYz1pWzBdO2lbMF09aVtzXSxpW3NdPWM7dmFyIGQ9YVswXTthWzBdPWFbbF0sYVtsXT1kLEhDdChhLGksbCwwKX1yZXR1cm57aW5kaWNlczplLHdlaWdodHM6bn19LGZDdC5zbWFsbGVzdEZsYWdnZWQ9ZnVuY3Rpb24gVkN0KHQsZSl7Zm9yKHZhciBuPXRbMF1bZV0sbz10WzFdW2VdLGk9dFsyXVtlXSxhPTEvMCxyPS0xLHM9MDtzPm4ubGVuZ3RoO3MrKykxPT09aVtzXSYmb1tzXTxhJiYoYT1vW3NdLHI9cyk7cmV0dXJuIHI+PTA/KGlbcl09MCxNYXRoLmZsb29yKG5bcl0pKTotMX07dmFyIGpDdCxVQ3Q9e30sR0N0PVF2JiZRdi5fX3JlYWR8fGZ1bmN0aW9uKHQsZSl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFuKXJldHVybiB0O3ZhciBvLGksYT1uLmNhbGwodCkscj1bXTt0cnl7Zm9yKDsodm9pZCAwPT09ZXx8ZS0tID4wKSYmIShvPWEubmV4dCgpKS5kb25lOylyLnB1c2goby52YWx1ZSl9Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49YS5yZXR1cm4pJiZuLmNhbGwoYSl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiByfSxXQ3Q9UXYmJlF2Ll9fdmFsdWVzfHxmdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl0sbj0wO3JldHVybiBlP2UuY2FsbCh0KTp7bmV4dDpmdW5jdGlvbigpe3JldHVybiB0JiZuPj10Lmxlbmd0aCYmKHQ9dm9pZCAwKSx7dmFsdWU6dCYmdFtuKytdLGRvbmU6IXR9fX19LFlDdD1RdiYmUXYuX19pbXBvcnRTdGFyfHxmdW5jdGlvbih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYobnVsbCE9dClmb3IodmFyIG4gaW4gdClPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKTtyZXR1cm4gZS5kZWZhdWx0PXQsZX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFVDdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHFDdD1ZQ3QoZ0N0KSxaQ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixvKXtpZih0aGlzLmVudHJpZXM9bmV3IE1hcCx0aGlzLm5Sb3dzPTAsdGhpcy5uQ29scz0wLHQubGVuZ3RoIT09ZS5sZW5ndGh8fHQubGVuZ3RoIT09bi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJyb3dzLCBjb2xzIGFuZCB2YWx1ZXMgYXJyYXlzIG11c3QgYWxsIGhhdmUgdGhlIHNhbWUgbGVuZ3RoIik7dGhpcy5uUm93cz1vWzBdLHRoaXMubkNvbHM9b1sxXTtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIGE9dFtpXSxyPWVbaV07dGhpcy5jaGVja0RpbXMoYSxyKTt2YXIgcz10aGlzLm1ha2VLZXkoYSxyKTt0aGlzLmVudHJpZXMuc2V0KHMse3ZhbHVlOm5baV0scm93OmEsY29sOnJ9KX19cmV0dXJuIHQucHJvdG90eXBlLm1ha2VLZXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCsiOiIrZX0sdC5wcm90b3R5cGUuY2hlY2tEaW1zPWZ1bmN0aW9uKHQsZSl7aWYoISh0PHRoaXMublJvd3MmJmU8dGhpcy5uQ29scykpdGhyb3cgbmV3IEVycm9yKCJyb3cgYW5kL29yIGNvbCBzcGVjaWZpZWQgb3V0c2lkZSBvZiBtYXRyaXggZGltZW5zaW9ucyIpfSx0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlLG4pe3RoaXMuY2hlY2tEaW1zKHQsZSk7dmFyIG89dGhpcy5tYWtlS2V5KHQsZSk7dGhpcy5lbnRyaWVzLmhhcyhvKT90aGlzLmVudHJpZXMuZ2V0KG8pLnZhbHVlPW46dGhpcy5lbnRyaWVzLnNldChvLHt2YWx1ZTpuLHJvdzp0LGNvbDplfSl9LHQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUsbil7dm9pZCAwPT09biYmKG49MCksdGhpcy5jaGVja0RpbXModCxlKTt2YXIgbz10aGlzLm1ha2VLZXkodCxlKTtyZXR1cm4gdGhpcy5lbnRyaWVzLmhhcyhvKT90aGlzLmVudHJpZXMuZ2V0KG8pLnZhbHVlOm59LHQucHJvdG90eXBlLmdldEFsbD1mdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD0hMCk7dmFyIGU9W107cmV0dXJuIHRoaXMuZW50cmllcy5mb3JFYWNoKChmdW5jdGlvbih0KXtlLnB1c2godCl9KSksdCYmZS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LnJvdz09PWUucm93P3QuY29sLWUuY29sOnQucm93LWUucm93fSkpLGV9LHQucHJvdG90eXBlLmdldERpbXM9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5uUm93cyx0aGlzLm5Db2xzXX0sdC5wcm90b3R5cGUuZ2V0Um93cz1mdW5jdGlvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuZW50cmllcywoZnVuY3Rpb24odCl7cmV0dXJuIEdDdCh0LDIpWzFdLnJvd30pKX0sdC5wcm90b3R5cGUuZ2V0Q29scz1mdW5jdGlvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuZW50cmllcywoZnVuY3Rpb24odCl7cmV0dXJuIEdDdCh0LDIpWzFdLmNvbH0pKX0sdC5wcm90b3R5cGUuZ2V0VmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5lbnRyaWVzLChmdW5jdGlvbih0KXtyZXR1cm4gR0N0KHQsMilbMV0udmFsdWV9KSl9LHQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCl7dGhpcy5lbnRyaWVzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUudmFsdWUsZS5yb3csZS5jb2wpfSkpfSx0LnByb3RvdHlwZS5tYXA9ZnVuY3Rpb24oZSl7dmFyIG49W107dGhpcy5lbnRyaWVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe24ucHVzaChlKHQudmFsdWUsdC5yb3csdC5jb2wpKX0pKTt2YXIgbz1bdGhpcy5uUm93cyx0aGlzLm5Db2xzXTtyZXR1cm4gbmV3IHQodGhpcy5nZXRSb3dzKCksdGhpcy5nZXRDb2xzKCksbixvKX0sdC5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1xQ3QuZW1wdHkodGhpcy5uUm93cykubWFwKChmdW5jdGlvbigpe3JldHVybiBxQ3QuemVyb3ModC5uQ29scyl9KSk7cmV0dXJuIHRoaXMuZW50cmllcy5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3Qucm93XVt0LmNvbF09dC52YWx1ZX0pKSxlfSx0fSkoKTtVQ3QuU3BhcnNlTWF0cml4PVpDdCxVQ3QudHJhbnNwb3NlPWZ1bmN0aW9uIFhDdCh0KXt2YXIgZT1bXSxuPVtdLG89W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCxpLGEpe2UucHVzaChpKSxuLnB1c2goYSksby5wdXNoKHQpfSkpLG5ldyBaQ3QobixlLG8sW3QubkNvbHMsdC5uUm93c10pfSxVQ3QuaWRlbnRpdHk9ZnVuY3Rpb24gS0N0KHQpe2Zvcih2YXIgZT1HQ3QodCwxKVswXSxuPW5ldyBaQ3QoW10sW10sW10sdCksbz0wO288ZTtvKyspbi5zZXQobyxvLDEpO3JldHVybiBufSxVQ3QucGFpcndpc2VNdWx0aXBseT1mdW5jdGlvbiBKQ3QodCxlKXtyZXR1cm4gYU10KHQsZSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCplfSkpfSxVQ3QuYWRkPWZ1bmN0aW9uIFFDdCh0LGUpe3JldHVybiBhTXQodCxlLChmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9KSl9LFVDdC5zdWJ0cmFjdD1mdW5jdGlvbiAkQ3QodCxlKXtyZXR1cm4gYU10KHQsZSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpfSxVQ3QubWF4aW11bT1mdW5jdGlvbiB0TXQodCxlKXtyZXR1cm4gYU10KHQsZSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdD5lP3Q6ZX0pKX0sVUN0Lm11bHRpcGx5U2NhbGFyPWZ1bmN0aW9uIGVNdCh0LGUpe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQqZX0pKX0sVUN0LmVsaW1pbmF0ZVplcm9zPWZ1bmN0aW9uIG5NdCh0KXtmb3IodmFyIGU9bmV3IFNldCxuPXQuZ2V0VmFsdWVzKCksbz10LmdldFJvd3MoKSxpPXQuZ2V0Q29scygpLGE9MDthPG4ubGVuZ3RoO2ErKykwPT09blthXSYmZS5hZGQoYSk7dmFyIHI9ZnVuY3Rpb24odCxuKXtyZXR1cm4hZS5oYXMobil9LHM9bi5maWx0ZXIociksbD1vLmZpbHRlcihyKSxjPWkuZmlsdGVyKHIpO3JldHVybiBuZXcgWkN0KGwsYyxzLHQuZ2V0RGltcygpKX0sVUN0Lm5vcm1hbGl6ZT1mdW5jdGlvbiBvTXQodCxlKXt2YXIgbixvO3ZvaWQgMD09PWUmJihlPSJsMiIpO3ZhciBpPWlNdFtlXSxhPW5ldyBNYXA7dC5mb3JFYWNoKChmdW5jdGlvbih0LGUsbil7dmFyIG89YS5nZXQoZSl8fFtdO28ucHVzaChuKSxhLnNldChlLG8pfSkpO3ZhciByPW5ldyBaQ3QoW10sW10sW10sdC5nZXREaW1zKCkpLHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPWEuZ2V0KGUpLnNvcnQoKSxvPW4ubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gdC5nZXQoZSxuKX0pKSxzPWkobyksbD0wO2w8cy5sZW5ndGg7bCsrKXIuc2V0KGUsbltsXSxzW2xdKX07dHJ5e2Zvcih2YXIgbD1XQ3QoYS5rZXlzKCkpLGM9bC5uZXh0KCk7IWMuZG9uZTtjPWwubmV4dCgpKXMoYy52YWx1ZSl9Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7YyYmIWMuZG9uZSYmKG89bC5yZXR1cm4pJiZvLmNhbGwobCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiByfTt2YXIgaU10PSgoakN0PXt9KS5tYXg9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPS0xLzAsbj0wO248dC5sZW5ndGg7bisrKWU9dFtuXT5lP3Rbbl06ZTtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0L2V9KSl9LGpDdC5sMT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTA7bjx0Lmxlbmd0aDtuKyspZSs9dFtuXTtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0L2V9KSl9LGpDdC5sMj1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTA7bjx0Lmxlbmd0aDtuKyspZSs9TWF0aC5wb3codFtuXSwyKTtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3codCwyKS9lKX0pKX0sakN0KTtmdW5jdGlvbiBhTXQodCxlLG4pe2Zvcih2YXIgbz1uZXcgU2V0LGk9W10sYT1bXSxyPVtdLHM9ZnVuY3Rpb24obyxzKXtpLnB1c2gobyksYS5wdXNoKHMpO3ZhciBsPW4odC5nZXQobyxzKSxlLmdldChvLHMpKTtyLnB1c2gobCl9LGw9dC5nZXRWYWx1ZXMoKSxjPXQuZ2V0Um93cygpLGQ9dC5nZXRDb2xzKCkscD0wO3A8bC5sZW5ndGg7cCsrKW8uYWRkKChnPWNbcF0pKyI6IisoaD1kW3BdKSkscyhnLGgpO3ZhciBtPWUuZ2V0VmFsdWVzKCksdT1lLmdldFJvd3MoKSxmPWUuZ2V0Q29scygpO2ZvcihwPTA7cDxtLmxlbmd0aDtwKyspe3ZhciBnLGg7by5oYXMoKGc9dVtwXSkrIjoiKyhoPWZbcF0pKXx8cyhnLGgpfXJldHVybiBuZXcgWkN0KGksYSxyLFt0Lm5Sb3dzLHQubkNvbHNdKX1VQ3QuZ2V0Q1NSPWZ1bmN0aW9uIHJNdCh0KXt2YXIgZT1bXTt0LmZvckVhY2goKGZ1bmN0aW9uKHQsbixvKXtlLnB1c2goe3ZhbHVlOnQscm93Om4sY29sOm99KX0pKSxlLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQucm93PT09ZS5yb3c/dC5jb2wtZS5jb2w6dC5yb3ctZS5yb3d9KSk7Zm9yKHZhciBuPVtdLG89W10saT1bXSxhPS0xLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIHM9ZVtyXSxsPXMucm93LGM9cy5jb2wsZD1zLnZhbHVlO2whPT1hJiYoYT1sLGkucHVzaChyKSksbi5wdXNoKGMpLG8ucHVzaChkKX1yZXR1cm57aW5kaWNlczpuLHZhbHVlczpvLGluZHB0cjppfX07dmFyIHNNdD17fSxsTXQ9e30sY010PVF2JiZRdi5fX3JlYWR8fGZ1bmN0aW9uKHQsZSl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFuKXJldHVybiB0O3ZhciBvLGksYT1uLmNhbGwodCkscj1bXTt0cnl7Zm9yKDsodm9pZCAwPT09ZXx8ZS0tID4wKSYmIShvPWEubmV4dCgpKS5kb25lOylyLnB1c2goby52YWx1ZSl9Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49YS5yZXR1cm4pJiZuLmNhbGwoYSl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiByfSxkTXQ9UXYmJlF2Ll9fc3ByZWFkfHxmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0PXQuY29uY2F0KGNNdChhcmd1bWVudHNbZV0pKTtyZXR1cm4gdH0scE10PVF2JiZRdi5fX3ZhbHVlc3x8ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdLG49MDtyZXR1cm4gZT9lLmNhbGwodCk6e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCYmbj49dC5sZW5ndGgmJih0PXZvaWQgMCkse3ZhbHVlOnQmJnRbbisrXSxkb25lOiF0fX19fSxtTXQ9UXYmJlF2Ll9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24odCl7aWYodCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPXt9O2lmKG51bGwhPXQpZm9yKHZhciBuIGluIHQpT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGUuZGVmYXVsdD10LGV9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShsTXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB1TXQsZk10PW1NdChnQ3QpO2Z1bmN0aW9uIGdNdCh0LGUsbixvLGkpe2lmKHZvaWQgMD09PW4mJihuPTMwKSxlLmxlbmd0aD5uKXt2YXIgYT0oZnVuY3Rpb24gcih0LGUsbil7Zm9yKHZhciBvPXRbMF0ubGVuZ3RoLGk9Zk10LnRhdVJhbmRJbnQoZS5sZW5ndGgsbiksYT1mTXQudGF1UmFuZEludChlLmxlbmd0aCxuKSxyPWVbaV0scz1lW2E9KGErPWk9PT1hPzE6MCklZS5sZW5ndGhdLGw9MCxjPWZNdC56ZXJvcyhvKSxkPTA7ZDxjLmxlbmd0aDtkKyspY1tkXT10W3JdW2RdLXRbc11bZF0sbC09Y1tkXSoodFtyXVtkXSt0W3NdW2RdKS8yO3ZhciBwPTAsbT0wLHU9Zk10Lnplcm9zKGUubGVuZ3RoKTtmb3IoZD0wO2Q8ZS5sZW5ndGg7ZCsrKXtmb3IodmFyIGY9bCxnPTA7ZzxvO2crKylmKz1jW2ddKnRbZVtkXV1bZ107MD09PWY/KHVbZF09Zk10LnRhdVJhbmRJbnQoMixuKSwwPT09dVtkXT9wKz0xOm0rPTEpOmY+MD8odVtkXT0wLHArPTEpOih1W2RdPTEsbSs9MSl9dmFyIGg9Zk10Lnplcm9zKHApLGI9Zk10Lnplcm9zKG0pO2ZvcihwPTAsbT0wLGQ9MDtkPHUubGVuZ3RoO2QrKykwPT09dVtkXT8oaFtwXT1lW2RdLHArPTEpOihiW21dPWVbZF0sbSs9MSk7cmV0dXJue2luZGljZXNMZWZ0OmgsaW5kaWNlc1JpZ2h0OmIsaHlwZXJwbGFuZTpjLG9mZnNldDpsfX0pKHQsZSxpKSxzPWEuaW5kaWNlc1JpZ2h0LGw9YS5oeXBlcnBsYW5lLGM9YS5vZmZzZXQ7cmV0dXJue2xlZnRDaGlsZDpnTXQodCxhLmluZGljZXNMZWZ0LG4sbysxLGkpLHJpZ2h0Q2hpbGQ6Z010KHQscyxuLG8rMSxpKSxpc0xlYWY6ITEsaHlwZXJwbGFuZTpsLG9mZnNldDpjfX1yZXR1cm57aW5kaWNlczplLGlzTGVhZjohMH19ZnVuY3Rpb24gaE10KHQsZSxuLG8saSxhLHIpe3ZhciBzO2lmKHQuaXNMZWFmKXJldHVybiBvW2FdWzBdPS1yLChzPWlbcl0pLnNwbGljZS5hcHBseShzLGRNdChbMCx0LmluZGljZXMubGVuZ3RoXSx0LmluZGljZXMpKSx7bm9kZU51bTphLGxlYWZOdW06cis9MX07ZVthXT10Lmh5cGVycGxhbmUsblthXT10Lm9mZnNldCxvW2FdWzBdPWErMTt2YXIgbD1hLGM9aE10KHQubGVmdENoaWxkLGUsbixvLGksYSsxLHIpO3JldHVybiByPWMubGVhZk51bSxvW2xdWzFdPShhPWMubm9kZU51bSkrMSx7bm9kZU51bTooYz1oTXQodC5yaWdodENoaWxkLGUsbixvLGksYSsxLHIpKS5ub2RlTnVtLGxlYWZOdW06Yy5sZWFmTnVtfX1mdW5jdGlvbiBiTXQodCl7cmV0dXJuIHQuaXNMZWFmPzE6MStiTXQodC5sZWZ0Q2hpbGQpK2JNdCh0LnJpZ2h0Q2hpbGQpfWZ1bmN0aW9uIHlNdCh0KXtyZXR1cm4gdC5pc0xlYWY/MTp5TXQodC5sZWZ0Q2hpbGQpK3lNdCh0LnJpZ2h0Q2hpbGQpfWZ1bmN0aW9uIF9NdCh0LGUsbixvKXtmb3IodmFyIGk9ZSxhPTA7YTxuLmxlbmd0aDthKyspaSs9dFthXSpuW2FdO3JldHVybiAwPT09aT9mTXQudGF1UmFuZEludCgyLG8pOmk+MD8wOjF9bE10LkZsYXRUcmVlPXVNdD1mdW5jdGlvbiB1TXQodCxlLG4sbyl7dGhpcy5oeXBlcnBsYW5lcz10LHRoaXMub2Zmc2V0cz1lLHRoaXMuY2hpbGRyZW49bix0aGlzLmluZGljZXM9b30sbE10Lm1ha2VGb3Jlc3Q9ZnVuY3Rpb24gQ010KHQsZSxuLG8pe3ZhciBpPU1hdGgubWF4KDEwLGUpO3JldHVybiBmTXQucmFuZ2UobikubWFwKChmdW5jdGlvbihlLG4pe3JldHVybihmdW5jdGlvbiBhKHQsZSxuLG8pe3JldHVybiB2b2lkIDA9PT1lJiYoZT0zMCksZ010KHQsZk10LnJhbmdlKHQubGVuZ3RoKSxlLG4sbyl9KSh0LGksbixvKX0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybihmdW5jdGlvbiBlKHQsbil7dmFyIG89Yk10KHQpLGk9eU10KHQpLGE9Zk10LnJhbmdlKG8pLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gZk10Lnplcm9zKHQuaHlwZXJwbGFuZT90Lmh5cGVycGxhbmUubGVuZ3RoOjApfSkpLHI9Zk10Lnplcm9zKG8pLHM9Zk10LnJhbmdlKG8pLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm5bLTEsLTFdfSkpLGw9Zk10LnJhbmdlKGkpLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gZk10LnJhbmdlKG4pLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4tMX0pKX0pKTtyZXR1cm4gaE10KHQsYSxyLHMsbCwwLDApLG5ldyB1TXQoYSxyLHMsbCl9KSh0LGkpfSkpfSxsTXQubWFrZUxlYWZBcnJheT1mdW5jdGlvbiBNTXQodCl7dmFyIGUsbjtpZih0Lmxlbmd0aD4wKXt2YXIgbz1bXTt0cnl7Zm9yKHZhciBpPXBNdCh0KSxhPWkubmV4dCgpOyFhLmRvbmU7YT1pLm5leHQoKSlvLnB1c2guYXBwbHkobyxkTXQoYS52YWx1ZS5pbmRpY2VzKSl9Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7YSYmIWEuZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fXJldHVybiBvfXJldHVybltbLTFdXX0sbE10LnNlYXJjaEZsYXRUcmVlPWZ1bmN0aW9uIHZNdCh0LGUsbil7Zm9yKHZhciBvPTA7ZS5jaGlsZHJlbltvXVswXT4wOylvPTA9PT1fTXQoZS5oeXBlcnBsYW5lc1tvXSxlLm9mZnNldHNbb10sdCxuKT9lLmNoaWxkcmVuW29dWzBdOmUuY2hpbGRyZW5bb11bMV07cmV0dXJuIGUuaW5kaWNlc1stMSplLmNoaWxkcmVuW29dWzBdXX07dmFyIHhNdD1RdiYmUXYuX192YWx1ZXN8fGZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXSxuPTA7cmV0dXJuIGU/ZS5jYWxsKHQpOntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJm4+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W24rK10sZG9uZTohdH19fX0sT010PVF2JiZRdi5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZihudWxsIT10KWZvcih2YXIgbiBpbiB0KU9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlLmRlZmF1bHQ9dCxlfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoc010LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgUE10PU9NdChmQ3QpLHdNdD1PTXQoVUN0KSxrTXQ9T010KGxNdCksU010PU9NdChnQ3QpO3NNdC5tYWtlTk5EZXNjZW50PWZ1bmN0aW9uIERNdCh0LGUpe3JldHVybiBmdW5jdGlvbiBuKG8saSxhLHIscyxsLGMsZCl7dm9pZCAwPT09ciYmKHI9MTApLHZvaWQgMD09PXMmJihzPTUwKSx2b2lkIDA9PT1sJiYobD0uMDAxKSx2b2lkIDA9PT1jJiYoYz0uNSksdm9pZCAwPT09ZCYmKGQ9ITApO2Zvcih2YXIgcD1vLmxlbmd0aCxtPVBNdC5tYWtlSGVhcChvLmxlbmd0aCxhKSx1PTA7dTxvLmxlbmd0aDt1KyspZm9yKHZhciBmPVBNdC5yZWplY3Rpb25TYW1wbGUoYSxvLmxlbmd0aCxlKSxnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPXQob1t1XSxvW2ZbZ11dKTtQTXQuaGVhcFB1c2gobSx1LGgsZltnXSwxKSxQTXQuaGVhcFB1c2gobSxmW2ddLGgsdSwxKX1pZihkKWZvcih2YXIgYj0wO2I8aS5sZW5ndGg7YisrKWZvcih1PTA7dTxpW2JdLmxlbmd0aCYmIShpW2JdW3VdPDApO3UrKylmb3IoZz11KzE7ZzxpW2JdLmxlbmd0aCYmIShpW2JdW2ddPDApO2crKyloPXQob1tpW2JdW3VdXSxvW2lbYl1bZ11dKSxQTXQuaGVhcFB1c2gobSxpW2JdW3VdLGgsaVtiXVtnXSwxKSxQTXQuaGVhcFB1c2gobSxpW2JdW2ddLGgsaVtiXVt1XSwxKTtmb3IoYj0wO2I8cjtiKyspe3ZhciB5PVBNdC5idWlsZENhbmRpZGF0ZXMobSxwLGEscyxlKSxfPTA7Zm9yKHU9MDt1PHA7dSsrKWZvcihnPTA7ZzxzO2crKyl7dmFyIEM9TWF0aC5mbG9vcih5WzBdW3VdW2ddKTtpZighKEM8MHx8U010LnRhdVJhbmQoZSk8YykpZm9yKHZhciBNPTA7TTxzO00rKyl7dmFyIHY9TWF0aC5mbG9vcih5WzBdW3VdW01dKTt2PDB8fCF5WzJdW3VdW2ddJiYheVsyXVt1XVtNXXx8KGg9dChvW0NdLG9bdl0pLF8rPVBNdC5oZWFwUHVzaChtLEMsaCx2LDEpLF8rPVBNdC5oZWFwUHVzaChtLHYsaCxDLDEpKX19aWYoXzw9bCphKm8ubGVuZ3RoKWJyZWFrfXJldHVybiBQTXQuZGVoZWFwU29ydChtKX19LHNNdC5tYWtlSW5pdGlhbGl6YXRpb25zPWZ1bmN0aW9uIEVNdCh0KXtyZXR1cm57aW5pdEZyb21SYW5kb206ZnVuY3Rpb24gZShuLG8saSxhLHIpe2Zvcih2YXIgcz0wO3M8aS5sZW5ndGg7cysrKWZvcih2YXIgbD1TTXQucmVqZWN0aW9uU2FtcGxlKG4sby5sZW5ndGgsciksYz0wO2M8bC5sZW5ndGg7YysrKWlmKCEobFtjXTwwKSl7dmFyIGQ9dChvW2xbY11dLGlbc10pO1BNdC5oZWFwUHVzaChhLHMsZCxsW2NdLDEpfX0saW5pdEZyb21UcmVlOmZ1bmN0aW9uIG4oZSxvLGksYSxyKXtmb3IodmFyIHM9MDtzPGkubGVuZ3RoO3MrKylmb3IodmFyIGw9a010LnNlYXJjaEZsYXRUcmVlKGlbc10sZSxyKSxjPTA7YzxsLmxlbmd0aDtjKyspe2lmKGxbY108MClyZXR1cm47dmFyIGQ9dChvW2xbY11dLGlbc10pO1BNdC5oZWFwUHVzaChhLHMsZCxsW2NdLDEpfX19fSxzTXQubWFrZUluaXRpYWxpemVkTk5TZWFyY2g9ZnVuY3Rpb24gUk10KHQpe3JldHVybiBmdW5jdGlvbiBlKG4sbyxpLGEpe2Zvcih2YXIgcixzLGw9d010LmdldENTUihvKSxjPWwuaW5kaWNlcyxkPWwuaW5kcHRyLHA9MDtwPGEubGVuZ3RoO3ArKylmb3IodmFyIG09bmV3IFNldChpWzBdW3BdKTs7KXt2YXIgdT1QTXQuc21hbGxlc3RGbGFnZ2VkKGkscCk7aWYoLTE9PT11KWJyZWFrO3ZhciBmPWMuc2xpY2UoZFt1XSxkW3UrMV0pO3RyeXtmb3IodmFyIGc9eE10KGYpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgYj1oLnZhbHVlO2lmKGIhPT11JiYtMSE9PWImJiFtLmhhcyhiKSl7dmFyIHk9dChuW2JdLGFbcF0pO1BNdC51bmNoZWNrZWRIZWFwUHVzaChpLHAseSxiLDEpLG0uYWRkKGIpfX19Y2F0Y2godCl7cj17ZXJyb3I6dH19ZmluYWxseXt0cnl7aCYmIWguZG9uZSYmKHM9Zy5yZXR1cm4pJiZzLmNhbGwoZyl9ZmluYWxseXtpZihyKXRocm93IHIuZXJyb3J9fX1yZXR1cm4gaX19LHNNdC5pbml0aWFsaXplU2VhcmNoPWZ1bmN0aW9uIEFNdCh0LGUsbixvLGksYSxyKXt2YXIgcyxsLGM9UE10Lm1ha2VIZWFwKG4ubGVuZ3RoLG8pO2lmKGkobyxlLG4sYyxyKSx0KXRyeXtmb3IodmFyIGQ9eE10KHQpLHA9ZC5uZXh0KCk7IXAuZG9uZTtwPWQubmV4dCgpKWEocC52YWx1ZSxlLG4sYyxyKX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtwJiYhcC5kb25lJiYobD1kLnJldHVybikmJmwuY2FsbChkKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19cmV0dXJuIGN9O2NvbnN0IFRNdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIE5NdCh0KXtyZXR1cm4gVE10LmNhbGwodCkuZW5kc1dpdGgoIkFycmF5XSIpfWZ1bmN0aW9uIHpNdCh0LGUsbil7bGV0IG89MDtjb25zdCBpPW4oZSk7Zm9yKGxldCBlPTA7ZTx0LngubGVuZ3RoO2UrKylvKz1NYXRoLmFicyh0LnlbZV0taSh0LnhbZV0pKTtyZXR1cm4gb31jb25zdCBJTXQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBITXQodCl7cmV0dXJuIElNdC5jYWxsKHQpLmVuZHNXaXRoKCJBcnJheV0iKX1mdW5jdGlvbiBGTXQodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2lmKCFITXQodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW5wdXQgbXVzdCBiZSBhbiBhcnJheSIpO2lmKDA9PT10Lmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnB1dCBtdXN0IG5vdCBiZSBlbXB0eSIpO3ZhciBuPWUuZnJvbUluZGV4LG89dm9pZCAwPT09bj8wOm4saT1lLnRvSW5kZXgsYT12b2lkIDA9PT1pP3QubGVuZ3RoOmk7aWYobzwwfHxvPj10Lmxlbmd0aHx8IU51bWJlci5pc0ludGVnZXIobykpdGhyb3cgbmV3IEVycm9yKCJmcm9tSW5kZXggbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgc21hbGxlciB0aGFuIGxlbmd0aCIpO2lmKGE8PW98fGE+dC5sZW5ndGh8fCFOdW1iZXIuaXNJbnRlZ2VyKGEpKXRocm93IG5ldyBFcnJvcigidG9JbmRleCBtdXN0IGJlIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIGZyb21JbmRleCBhbmQgYXQgbW9zdCBlcXVhbCB0byBsZW5ndGgiKTtmb3IodmFyIHI9dFtvXSxzPW8rMTtzPGE7cysrKXRbc10+ciYmKHI9dFtzXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gTE10KHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZighSE10KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImlucHV0IG11c3QgYmUgYW4gYXJyYXkiKTtpZigwPT09dC5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW5wdXQgbXVzdCBub3QgYmUgZW1wdHkiKTt2YXIgbj1lLmZyb21JbmRleCxvPXZvaWQgMD09PW4/MDpuLGk9ZS50b0luZGV4LGE9dm9pZCAwPT09aT90Lmxlbmd0aDppO2lmKG88MHx8bz49dC5sZW5ndGh8fCFOdW1iZXIuaXNJbnRlZ2VyKG8pKXRocm93IG5ldyBFcnJvcigiZnJvbUluZGV4IG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHNtYWxsZXIgdGhhbiBsZW5ndGgiKTtpZihhPD1vfHxhPnQubGVuZ3RofHwhTnVtYmVyLmlzSW50ZWdlcihhKSl0aHJvdyBuZXcgRXJyb3IoInRvSW5kZXggbXVzdCBiZSBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBmcm9tSW5kZXggYW5kIGF0IG1vc3QgZXF1YWwgdG8gbGVuZ3RoIik7Zm9yKHZhciByPXRbb10scz1vKzE7czxhO3MrKyl0W3NdPHImJihyPXRbc10pO3JldHVybiByfWZ1bmN0aW9uIEJNdCh0KXt2YXIgZSxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZighSE10KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImlucHV0IG11c3QgYmUgYW4gYXJyYXkiKTtpZigwPT09dC5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW5wdXQgbXVzdCBub3QgYmUgZW1wdHkiKTtpZih2b2lkIDAhPT1uLm91dHB1dCl7aWYoIUhNdChuLm91dHB1dCkpdGhyb3cgbmV3IFR5cGVFcnJvcigib3V0cHV0IG9wdGlvbiBtdXN0IGJlIGFuIGFycmF5IGlmIHNwZWNpZmllZCIpO2U9bi5vdXRwdXR9ZWxzZSBlPW5ldyBBcnJheSh0Lmxlbmd0aCk7dmFyIG89TE10KHQpLGk9Rk10KHQpO2lmKG89PT1pKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW5pbXVtIGFuZCBtYXhpbXVtIGlucHV0IHZhbHVlcyBhcmUgZXF1YWwuIENhbm5vdCByZXNjYWxlIGEgY29uc3RhbnQgYXJyYXkiKTt2YXIgYT1uLm1pbixyPXZvaWQgMD09PWE/bi5hdXRvTWluTWF4P286MDphLHM9bi5tYXgsbD12b2lkIDA9PT1zP24uYXV0b01pbk1heD9pOjE6cztpZihyPj1sKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gb3B0aW9uIG11c3QgYmUgc21hbGxlciB0aGFuIG1heCBvcHRpb24iKTtmb3IodmFyIGM9KGwtcikvKGktbyksZD0wO2Q8dC5sZW5ndGg7ZCsrKWVbZF09KHRbZF0tbykqYytyO3JldHVybiBlfWNvbnN0IFZNdD0iICIucmVwZWF0KDIpLGpNdD0iICIucmVwZWF0KDQpO2Z1bmN0aW9uIFVNdCh0LGU9e30pe2NvbnN0e21heFJvd3M6bj0xNSxtYXhDb2x1bW5zOm89MTAsbWF4TnVtU2l6ZTppPTh9PWU7cmV0dXJuYCR7dC5jb25zdHJ1Y3Rvci5uYW1lfSB7XG4ke1ZNdH1bXG4ke2pNdH0keyhmdW5jdGlvbiBhKHQsZSxuLG8pe2NvbnN0e3Jvd3M6aSxjb2x1bW5zOmF9PXQscj1NYXRoLm1pbihpLGUpLHM9TWF0aC5taW4oYSxuKSxsPVtdO2ZvcihsZXQgZT0wO2U8cjtlKyspe2xldCBuPVtdO2ZvcihsZXQgaT0wO2k8cztpKyspbi5wdXNoKEdNdCh0LmdldChlLGkpLG8pKTtsLnB1c2goYCR7bi5qb2luKCIgIil9YCl9cmV0dXJuIHMhPT1hJiYobFtsLmxlbmd0aC0xXSs9YCAuLi4gJHthLW59IG1vcmUgY29sdW1uc2ApLHIhPT1pJiZsLnB1c2goYC4uLiAke2ktZX0gbW9yZSByb3dzYCksbC5qb2luKGBcbiR7ak10fWApfSkodCxuLG8saSl9XG4ke1ZNdH1dXG4ke1ZNdH1yb3dzOiAke3Qucm93c31cbiR7Vk10fWNvbHVtbnM6ICR7dC5jb2x1bW5zfVxufWB9ZnVuY3Rpb24gR010KHQsZSl7Y29uc3Qgbj1TdHJpbmcodCk7aWYobi5sZW5ndGg8PWUpcmV0dXJuIG4ucGFkRW5kKGUsIiAiKTtjb25zdCBvPXQudG9QcmVjaXNpb24oZS0yKTtpZihvLmxlbmd0aDw9ZSlyZXR1cm4gbztjb25zdCBpPXQudG9FeHBvbmVudGlhbChlLTIpLGE9aS5pbmRleE9mKCJlIikscj1pLnNsaWNlKGEpO3JldHVybiBpLnNsaWNlKDAsZS1yLmxlbmd0aCkrcn1mdW5jdGlvbiBXTXQodCxlLG4pe2lmKGU8MHx8ZT4obj90LnJvd3M6dC5yb3dzLTEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJSb3cgaW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gWU10KHQsZSxuKXtpZihlPDB8fGU+KG4/dC5jb2x1bW5zOnQuY29sdW1ucy0xKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ29sdW1uIGluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIHFNdCh0LGUpe2lmKGUudG8xREFycmF5JiYoZT1lLnRvMURBcnJheSgpKSxlLmxlbmd0aCE9PXQuY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidmVjdG9yIHNpemUgbXVzdCBiZSB0aGUgc2FtZSBhcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMiKTtyZXR1cm4gZX1mdW5jdGlvbiBaTXQodCxlKXtpZihlLnRvMURBcnJheSYmKGU9ZS50bzFEQXJyYXkoKSksZS5sZW5ndGghPT10LnJvd3MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInZlY3RvciBzaXplIG11c3QgYmUgdGhlIHNhbWUgYXMgdGhlIG51bWJlciBvZiByb3dzIik7cmV0dXJuIGV9ZnVuY3Rpb24gWE10KHQsZSl7aWYoIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoInVuZXhwZWN0ZWQgdHlwZSBmb3Igcm93IGluZGljZXMiKTtpZihlLnNvbWUoKGU9PmU8MHx8ZT49dC5yb3dzKSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInJvdyBpbmRpY2VzIGFyZSBvdXQgb2YgcmFuZ2UiKTtyZXR1cm4gQXJyYXkuaXNBcnJheShlKXx8KGU9QXJyYXkuZnJvbShlKSksZX1mdW5jdGlvbiBLTXQodCxlKXtpZigib2JqZWN0IiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigidW5leHBlY3RlZCB0eXBlIGZvciBjb2x1bW4gaW5kaWNlcyIpO2lmKGUuc29tZSgoZT0+ZTwwfHxlPj10LmNvbHVtbnMpKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiY29sdW1uIGluZGljZXMgYXJlIG91dCBvZiByYW5nZSIpO3JldHVybiBBcnJheS5pc0FycmF5KGUpfHwoZT1BcnJheS5mcm9tKGUpKSxlfWZ1bmN0aW9uIEpNdCh0LGUsbixvLGkpe2lmKDUhPT1hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJleHBlY3RlZCA0IGFyZ3VtZW50cyIpO2lmKCRNdCgic3RhcnRSb3ciLGUpLCRNdCgiZW5kUm93IixuKSwkTXQoInN0YXJ0Q29sdW1uIixvKSwkTXQoImVuZENvbHVtbiIsaSksZT5ufHxvPml8fGU8MHx8ZT49dC5yb3dzfHxuPDB8fG4+PXQucm93c3x8bzwwfHxvPj10LmNvbHVtbnN8fGk8MHx8aT49dC5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJTdWJtYXRyaXggaW5kaWNlcyBhcmUgb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gUU10KHQsZT0wKXtsZXQgbj1bXTtmb3IobGV0IG89MDtvPHQ7bysrKW4ucHVzaChlKTtyZXR1cm4gbn1mdW5jdGlvbiAkTXQodCxlKXtpZigibnVtYmVyIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0fSBtdXN0IGJlIGEgbnVtYmVyYCl9ZnVuY3Rpb24gdHZ0KHQpe2lmKHQuaXNFbXB0eSgpKXRocm93IG5ldyBFcnJvcigiRW1wdHkgbWF0cml4IGhhcyBubyBlbGVtZW50cyB0byBpbmRleCIpfWNsYXNzIGV2dHtzdGF0aWMgZnJvbTFEQXJyYXkodCxlLG4pe2lmKHQqZSE9PW4ubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJkYXRhIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCBnaXZlbiBkaW1lbnNpb25zIik7bGV0IG89bmV3IGl2dCh0LGUpO2ZvcihsZXQgaT0wO2k8dDtpKyspZm9yKGxldCB0PTA7dDxlO3QrKylvLnNldChpLHQsbltpKmUrdF0pO3JldHVybiBvfXN0YXRpYyByb3dWZWN0b3IodCl7bGV0IGU9bmV3IGl2dCgxLHQubGVuZ3RoKTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyllLnNldCgwLG4sdFtuXSk7cmV0dXJuIGV9c3RhdGljIGNvbHVtblZlY3Rvcih0KXtsZXQgZT1uZXcgaXZ0KHQubGVuZ3RoLDEpO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWUuc2V0KG4sMCx0W25dKTtyZXR1cm4gZX1zdGF0aWMgemVyb3ModCxlKXtyZXR1cm4gbmV3IGl2dCh0LGUpfXN0YXRpYyBvbmVzKHQsZSl7cmV0dXJuIG5ldyBpdnQodCxlKS5maWxsKDEpfXN0YXRpYyByYW5kKHQsZSxuPXt9KXtpZigib2JqZWN0IiE9dHlwZW9mIG4pdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIpO2NvbnN0e3JhbmRvbTpvPU1hdGgucmFuZG9tfT1uO2xldCBpPW5ldyBpdnQodCxlKTtmb3IobGV0IG49MDtuPHQ7bisrKWZvcihsZXQgdD0wO3Q8ZTt0KyspaS5zZXQobix0LG8oKSk7cmV0dXJuIGl9c3RhdGljIHJhbmRJbnQodCxlLG49e30pe2lmKCJvYmplY3QiIT10eXBlb2Ygbil0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Y29uc3R7bWluOm89MCxtYXg6aT0xZTMscmFuZG9tOmE9TWF0aC5yYW5kb219PW47aWYoIU51bWJlci5pc0ludGVnZXIobykpdGhyb3cgbmV3IFR5cGVFcnJvcigibWluIG11c3QgYmUgYW4gaW50ZWdlciIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGkpKXRocm93IG5ldyBUeXBlRXJyb3IoIm1heCBtdXN0IGJlIGFuIGludGVnZXIiKTtpZihvPj1pKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Iik7bGV0IHI9aS1vLHM9bmV3IGl2dCh0LGUpO2ZvcihsZXQgbj0wO248dDtuKyspZm9yKGxldCB0PTA7dDxlO3QrKyl7bGV0IGU9bytNYXRoLnJvdW5kKGEoKSpyKTtzLnNldChuLHQsZSl9cmV0dXJuIHN9c3RhdGljIGV5ZSh0LGUsbil7dm9pZCAwPT09ZSYmKGU9dCksdm9pZCAwPT09biYmKG49MSk7bGV0IG89TWF0aC5taW4odCxlKSxpPXRoaXMuemVyb3ModCxlKTtmb3IobGV0IHQ9MDt0PG87dCsrKWkuc2V0KHQsdCxuKTtyZXR1cm4gaX1zdGF0aWMgZGlhZyh0LGUsbil7bGV0IG89dC5sZW5ndGg7dm9pZCAwPT09ZSYmKGU9byksdm9pZCAwPT09biYmKG49ZSk7bGV0IGk9TWF0aC5taW4obyxlLG4pLGE9dGhpcy56ZXJvcyhlLG4pO2ZvcihsZXQgZT0wO2U8aTtlKyspYS5zZXQoZSxlLHRbZV0pO3JldHVybiBhfXN0YXRpYyBtaW4odCxlKXt0PXRoaXMuY2hlY2tNYXRyaXgodCksZT10aGlzLmNoZWNrTWF0cml4KGUpO2xldCBuPXQucm93cyxvPXQuY29sdW1ucyxpPW5ldyBpdnQobixvKTtmb3IobGV0IGE9MDthPG47YSsrKWZvcihsZXQgbj0wO248bztuKyspaS5zZXQoYSxuLE1hdGgubWluKHQuZ2V0KGEsbiksZS5nZXQoYSxuKSkpO3JldHVybiBpfXN0YXRpYyBtYXgodCxlKXt0PXRoaXMuY2hlY2tNYXRyaXgodCksZT10aGlzLmNoZWNrTWF0cml4KGUpO2xldCBuPXQucm93cyxvPXQuY29sdW1ucyxpPW5ldyB0aGlzKG4sbyk7Zm9yKGxldCBhPTA7YTxuO2ErKylmb3IobGV0IG49MDtuPG87bisrKWkuc2V0KGEsbixNYXRoLm1heCh0LmdldChhLG4pLGUuZ2V0KGEsbikpKTtyZXR1cm4gaX1zdGF0aWMgY2hlY2tNYXRyaXgodCl7cmV0dXJuIGV2dC5pc01hdHJpeCh0KT90Om5ldyBpdnQodCl9c3RhdGljIGlzTWF0cml4KHQpe3JldHVybiBudWxsIT10JiYiTWF0cml4Ij09PXQua2xhc3N9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5yb3dzKnRoaXMuY29sdW1uc31hcHBseSh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXQuY2FsbCh0aGlzLGUsbik7cmV0dXJuIHRoaXN9dG8xREFycmF5KCl7bGV0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0LnB1c2godGhpcy5nZXQoZSxuKSk7cmV0dXJuIHR9dG8yREFycmF5KCl7bGV0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKXt0LnB1c2goW10pO2ZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0W2VdLnB1c2godGhpcy5nZXQoZSxuKSl9cmV0dXJuIHR9dG9KU09OKCl7cmV0dXJuIHRoaXMudG8yREFycmF5KCl9aXNSb3dWZWN0b3IoKXtyZXR1cm4gMT09PXRoaXMucm93c31pc0NvbHVtblZlY3Rvcigpe3JldHVybiAxPT09dGhpcy5jb2x1bW5zfWlzVmVjdG9yKCl7cmV0dXJuIDE9PT10aGlzLnJvd3N8fDE9PT10aGlzLmNvbHVtbnN9aXNTcXVhcmUoKXtyZXR1cm4gdGhpcy5yb3dzPT09dGhpcy5jb2x1bW5zfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMucm93c3x8MD09PXRoaXMuY29sdW1uc31pc1N5bW1ldHJpYygpe2lmKHRoaXMuaXNTcXVhcmUoKSl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8PXQ7ZSsrKWlmKHRoaXMuZ2V0KHQsZSkhPT10aGlzLmdldChlLHQpKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWlzRWNoZWxvbkZvcm0oKXtsZXQgdD0wLGU9MCxuPS0xLG89ITAsaT0hMTtmb3IoO3Q8dGhpcy5yb3dzJiZvOyl7Zm9yKGU9MCxpPSExO2U8dGhpcy5jb2x1bW5zJiYhMT09PWk7KTA9PT10aGlzLmdldCh0LGUpP2UrKzoxPT09dGhpcy5nZXQodCxlKSYmZT5uPyhpPSEwLG49ZSk6KG89ITEsaT0hMCk7dCsrfXJldHVybiBvfWlzUmVkdWNlZEVjaGVsb25Gb3JtKCl7bGV0IHQ9MCxlPTAsbj0tMSxvPSEwLGk9ITE7Zm9yKDt0PHRoaXMucm93cyYmbzspe2ZvcihlPTAsaT0hMTtlPHRoaXMuY29sdW1ucyYmITE9PT1pOykwPT09dGhpcy5nZXQodCxlKT9lKys6MT09PXRoaXMuZ2V0KHQsZSkmJmU+bj8oaT0hMCxuPWUpOihvPSExLGk9ITApO2ZvcihsZXQgbj1lKzE7bjx0aGlzLnJvd3M7bisrKTAhPT10aGlzLmdldCh0LG4pJiYobz0hMSk7dCsrfXJldHVybiBvfWVjaGVsb25Gb3JtKCl7bGV0IHQ9dGhpcy5jbG9uZSgpLGU9MCxuPTA7Zm9yKDtlPHQucm93cyYmbjx0LmNvbHVtbnM7KXtsZXQgbz1lO2ZvcihsZXQgaT1lO2k8dC5yb3dzO2krKyl0LmdldChpLG4pPnQuZ2V0KG8sbikmJihvPWkpO2lmKDA9PT10LmdldChvLG4pKW4rKztlbHNle3Quc3dhcFJvd3MoZSxvKTtsZXQgaT10LmdldChlLG4pO2ZvcihsZXQgbz1uO288dC5jb2x1bW5zO28rKyl0LnNldChlLG8sdC5nZXQoZSxvKS9pKTtmb3IobGV0IG89ZSsxO288dC5yb3dzO28rKyl7bGV0IGk9dC5nZXQobyxuKS90LmdldChlLG4pO3Quc2V0KG8sbiwwKTtmb3IobGV0IGE9bisxO2E8dC5jb2x1bW5zO2ErKyl0LnNldChvLGEsdC5nZXQobyxhKS10LmdldChlLGEpKmkpfWUrKyxuKyt9fXJldHVybiB0fXJlZHVjZWRFY2hlbG9uRm9ybSgpe2xldCB0PXRoaXMuZWNoZWxvbkZvcm0oKSxlPXQuY29sdW1ucyxuPXQucm93cyxvPW4tMTtmb3IoO28+PTA7KWlmKDA9PT10Lm1heFJvdyhvKSlvLS07ZWxzZXtsZXQgaT0wLGE9ITE7Zm9yKDtpPG4mJiExPT09YTspMT09PXQuZ2V0KG8saSk/YT0hMDppKys7Zm9yKGxldCBuPTA7bjxvO24rKyl7bGV0IGE9dC5nZXQobixpKTtmb3IobGV0IHI9aTtyPGU7cisrKXtsZXQgZT10LmdldChuLHIpLWEqdC5nZXQobyxyKTt0LnNldChuLHIsZSl9fW8tLX1yZXR1cm4gdH1zZXQoKXt0aHJvdyBuZXcgRXJyb3IoInNldCBtZXRob2QgaXMgdW5pbXBsZW1lbnRlZCIpfWdldCgpe3Rocm93IG5ldyBFcnJvcigiZ2V0IG1ldGhvZCBpcyB1bmltcGxlbWVudGVkIil9cmVwZWF0KHQ9e30pe2lmKCJvYmplY3QiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Y29uc3R7cm93czplPTEsY29sdW1uczpuPTF9PXQ7aWYoIU51bWJlci5pc0ludGVnZXIoZSl8fGU8PTApdGhyb3cgbmV3IFR5cGVFcnJvcigicm93cyBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKG4pfHxuPD0wKXRocm93IG5ldyBUeXBlRXJyb3IoImNvbHVtbnMgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIiKTtsZXQgbz1uZXcgaXZ0KHRoaXMucm93cyplLHRoaXMuY29sdW1ucypuKTtmb3IobGV0IHQ9MDt0PGU7dCsrKWZvcihsZXQgZT0wO2U8bjtlKyspby5zZXRTdWJNYXRyaXgodGhpcyx0aGlzLnJvd3MqdCx0aGlzLmNvbHVtbnMqZSk7cmV0dXJuIG99ZmlsbCh0KXtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0KTtyZXR1cm4gdGhpc31uZWcoKXtyZXR1cm4gdGhpcy5tdWxTKC0xKX1nZXRSb3codCl7V010KHRoaXMsdCk7bGV0IGU9W107Zm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKWUucHVzaCh0aGlzLmdldCh0LG4pKTtyZXR1cm4gZX1nZXRSb3dWZWN0b3IodCl7cmV0dXJuIGl2dC5yb3dWZWN0b3IodGhpcy5nZXRSb3codCkpfXNldFJvdyh0LGUpe1dNdCh0aGlzLHQpLGU9cU10KHRoaXMsZSk7Zm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbixlW25dKTtyZXR1cm4gdGhpc31zd2FwUm93cyh0LGUpe1dNdCh0aGlzLHQpLFdNdCh0aGlzLGUpO2ZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl7bGV0IG89dGhpcy5nZXQodCxuKTt0aGlzLnNldCh0LG4sdGhpcy5nZXQoZSxuKSksdGhpcy5zZXQoZSxuLG8pfXJldHVybiB0aGlzfWdldENvbHVtbih0KXtZTXQodGhpcyx0KTtsZXQgZT1bXTtmb3IobGV0IG49MDtuPHRoaXMucm93cztuKyspZS5wdXNoKHRoaXMuZ2V0KG4sdCkpO3JldHVybiBlfWdldENvbHVtblZlY3Rvcih0KXtyZXR1cm4gaXZ0LmNvbHVtblZlY3Rvcih0aGlzLmdldENvbHVtbih0KSl9c2V0Q29sdW1uKHQsZSl7WU10KHRoaXMsdCksZT1aTXQodGhpcyxlKTtmb3IobGV0IG49MDtuPHRoaXMucm93cztuKyspdGhpcy5zZXQobix0LGVbbl0pO3JldHVybiB0aGlzfXN3YXBDb2x1bW5zKHQsZSl7WU10KHRoaXMsdCksWU10KHRoaXMsZSk7Zm9yKGxldCBuPTA7bjx0aGlzLnJvd3M7bisrKXtsZXQgbz10aGlzLmdldChuLHQpO3RoaXMuc2V0KG4sdCx0aGlzLmdldChuLGUpKSx0aGlzLnNldChuLGUsbyl9cmV0dXJuIHRoaXN9YWRkUm93VmVjdG9yKHQpe3Q9cU10KHRoaXMsdCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldChlLG4sdGhpcy5nZXQoZSxuKSt0W25dKTtyZXR1cm4gdGhpc31zdWJSb3dWZWN0b3IodCl7dD1xTXQodGhpcyx0KTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0aGlzLmdldChlLG4pLXRbbl0pO3JldHVybiB0aGlzfW11bFJvd1ZlY3Rvcih0KXt0PXFNdCh0aGlzLHQpO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQoZSxuLHRoaXMuZ2V0KGUsbikqdFtuXSk7cmV0dXJuIHRoaXN9ZGl2Um93VmVjdG9yKHQpe3Q9cU10KHRoaXMsdCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldChlLG4sdGhpcy5nZXQoZSxuKS90W25dKTtyZXR1cm4gdGhpc31hZGRDb2x1bW5WZWN0b3IodCl7dD1aTXQodGhpcyx0KTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0aGlzLmdldChlLG4pK3RbZV0pO3JldHVybiB0aGlzfXN1YkNvbHVtblZlY3Rvcih0KXt0PVpNdCh0aGlzLHQpO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQoZSxuLHRoaXMuZ2V0KGUsbiktdFtlXSk7cmV0dXJuIHRoaXN9bXVsQ29sdW1uVmVjdG9yKHQpe3Q9Wk10KHRoaXMsdCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldChlLG4sdGhpcy5nZXQoZSxuKSp0W2VdKTtyZXR1cm4gdGhpc31kaXZDb2x1bW5WZWN0b3IodCl7dD1aTXQodGhpcyx0KTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0aGlzLmdldChlLG4pL3RbZV0pO3JldHVybiB0aGlzfW11bFJvdyh0LGUpe1dNdCh0aGlzLHQpO2ZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldCh0LG4sdGhpcy5nZXQodCxuKSplKTtyZXR1cm4gdGhpc31tdWxDb2x1bW4odCxlKXtZTXQodGhpcyx0KTtmb3IobGV0IG49MDtuPHRoaXMucm93cztuKyspdGhpcy5zZXQobix0LHRoaXMuZ2V0KG4sdCkqZSk7cmV0dXJuIHRoaXN9bWF4KCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIE5hTjtsZXQgdD10aGlzLmdldCgwLDApO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5nZXQoZSxuKT50JiYodD10aGlzLmdldChlLG4pKTtyZXR1cm4gdH1tYXhJbmRleCgpe3R2dCh0aGlzKTtsZXQgdD10aGlzLmdldCgwLDApLGU9WzAsMF07Zm9yKGxldCBuPTA7bjx0aGlzLnJvd3M7bisrKWZvcihsZXQgbz0wO288dGhpcy5jb2x1bW5zO28rKyl0aGlzLmdldChuLG8pPnQmJih0PXRoaXMuZ2V0KG4sbyksZVswXT1uLGVbMV09byk7cmV0dXJuIGV9bWluKCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIE5hTjtsZXQgdD10aGlzLmdldCgwLDApO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5nZXQoZSxuKTx0JiYodD10aGlzLmdldChlLG4pKTtyZXR1cm4gdH1taW5JbmRleCgpe3R2dCh0aGlzKTtsZXQgdD10aGlzLmdldCgwLDApLGU9WzAsMF07Zm9yKGxldCBuPTA7bjx0aGlzLnJvd3M7bisrKWZvcihsZXQgbz0wO288dGhpcy5jb2x1bW5zO28rKyl0aGlzLmdldChuLG8pPHQmJih0PXRoaXMuZ2V0KG4sbyksZVswXT1uLGVbMV09byk7cmV0dXJuIGV9bWF4Um93KHQpe2lmKFdNdCh0aGlzLHQpLHRoaXMuaXNFbXB0eSgpKXJldHVybiBOYU47bGV0IGU9dGhpcy5nZXQodCwwKTtmb3IobGV0IG49MTtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5nZXQodCxuKT5lJiYoZT10aGlzLmdldCh0LG4pKTtyZXR1cm4gZX1tYXhSb3dJbmRleCh0KXtXTXQodGhpcyx0KSx0dnQodGhpcyk7bGV0IGU9dGhpcy5nZXQodCwwKSxuPVt0LDBdO2ZvcihsZXQgbz0xO288dGhpcy5jb2x1bW5zO28rKyl0aGlzLmdldCh0LG8pPmUmJihlPXRoaXMuZ2V0KHQsbyksblsxXT1vKTtyZXR1cm4gbn1taW5Sb3codCl7aWYoV010KHRoaXMsdCksdGhpcy5pc0VtcHR5KCkpcmV0dXJuIE5hTjtsZXQgZT10aGlzLmdldCh0LDApO2ZvcihsZXQgbj0xO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLmdldCh0LG4pPGUmJihlPXRoaXMuZ2V0KHQsbikpO3JldHVybiBlfW1pblJvd0luZGV4KHQpe1dNdCh0aGlzLHQpLHR2dCh0aGlzKTtsZXQgZT10aGlzLmdldCh0LDApLG49W3QsMF07Zm9yKGxldCBvPTE7bzx0aGlzLmNvbHVtbnM7bysrKXRoaXMuZ2V0KHQsbyk8ZSYmKGU9dGhpcy5nZXQodCxvKSxuWzFdPW8pO3JldHVybiBufW1heENvbHVtbih0KXtpZihZTXQodGhpcyx0KSx0aGlzLmlzRW1wdHkoKSlyZXR1cm4gTmFOO2xldCBlPXRoaXMuZ2V0KDAsdCk7Zm9yKGxldCBuPTE7bjx0aGlzLnJvd3M7bisrKXRoaXMuZ2V0KG4sdCk+ZSYmKGU9dGhpcy5nZXQobix0KSk7cmV0dXJuIGV9bWF4Q29sdW1uSW5kZXgodCl7WU10KHRoaXMsdCksdHZ0KHRoaXMpO2xldCBlPXRoaXMuZ2V0KDAsdCksbj1bMCx0XTtmb3IobGV0IG89MTtvPHRoaXMucm93cztvKyspdGhpcy5nZXQobyx0KT5lJiYoZT10aGlzLmdldChvLHQpLG5bMF09byk7cmV0dXJuIG59bWluQ29sdW1uKHQpe2lmKFlNdCh0aGlzLHQpLHRoaXMuaXNFbXB0eSgpKXJldHVybiBOYU47bGV0IGU9dGhpcy5nZXQoMCx0KTtmb3IobGV0IG49MTtuPHRoaXMucm93cztuKyspdGhpcy5nZXQobix0KTxlJiYoZT10aGlzLmdldChuLHQpKTtyZXR1cm4gZX1taW5Db2x1bW5JbmRleCh0KXtZTXQodGhpcyx0KSx0dnQodGhpcyk7bGV0IGU9dGhpcy5nZXQoMCx0KSxuPVswLHRdO2ZvcihsZXQgbz0xO288dGhpcy5yb3dzO28rKyl0aGlzLmdldChvLHQpPGUmJihlPXRoaXMuZ2V0KG8sdCksblswXT1vKTtyZXR1cm4gbn1kaWFnKCl7bGV0IHQ9TWF0aC5taW4odGhpcy5yb3dzLHRoaXMuY29sdW1ucyksZT1bXTtmb3IobGV0IG49MDtuPHQ7bisrKWUucHVzaCh0aGlzLmdldChuLG4pKTtyZXR1cm4gZX1ub3JtKHQ9ImZyb2Jlbml1cyIpe2xldCBlPTA7aWYoIm1heCI9PT10KXJldHVybiB0aGlzLm1heCgpO2lmKCJmcm9iZW5pdXMiPT09dCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyllKz10aGlzLmdldCh0LG4pKnRoaXMuZ2V0KHQsbik7cmV0dXJuIE1hdGguc3FydChlKX10aHJvdyBuZXcgUmFuZ2VFcnJvcihgdW5rbm93biBub3JtIHR5cGU6ICR7dH1gKX1jdW11bGF0aXZlU3VtKCl7bGV0IHQ9MDtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXQrPXRoaXMuZ2V0KGUsbiksdGhpcy5zZXQoZSxuLHQpO3JldHVybiB0aGlzfWRvdCh0KXtldnQuaXNNYXRyaXgodCkmJih0PXQudG8xREFycmF5KCkpO2xldCBlPXRoaXMudG8xREFycmF5KCk7aWYoZS5sZW5ndGghPT10Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidmVjdG9ycyBkbyBub3QgaGF2ZSB0aGUgc2FtZSBzaXplIik7bGV0IG49MDtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyluKz1lW29dKnRbb107cmV0dXJuIG59bW11bCh0KXt0PWl2dC5jaGVja01hdHJpeCh0KTtsZXQgZT10aGlzLnJvd3Msbj10aGlzLmNvbHVtbnMsbz10LmNvbHVtbnMsaT1uZXcgaXZ0KGUsbyksYT1uZXcgRmxvYXQ2NEFycmF5KG4pO2ZvcihsZXQgcj0wO3I8bztyKyspe2ZvcihsZXQgZT0wO2U8bjtlKyspYVtlXT10LmdldChlLHIpO2ZvcihsZXQgdD0wO3Q8ZTt0Kyspe2xldCBlPTA7Zm9yKGxldCBvPTA7bzxuO28rKyllKz10aGlzLmdldCh0LG8pKmFbb107aS5zZXQodCxyLGUpfX1yZXR1cm4gaX1zdHJhc3NlbjJ4Mih0KXt0PWl2dC5jaGVja01hdHJpeCh0KTtsZXQgZT1uZXcgaXZ0KDIsMik7Y29uc3Qgbj10aGlzLmdldCgwLDApLG89dC5nZXQoMCwwKSxpPXRoaXMuZ2V0KDAsMSksYT10LmdldCgwLDEpLHI9dGhpcy5nZXQoMSwwKSxzPXQuZ2V0KDEsMCksbD10aGlzLmdldCgxLDEpLGM9dC5nZXQoMSwxKSxkPShuK2wpKihvK2MpLHA9KHIrbCkqbyxtPW4qKGEtYyksdT1sKihzLW8pLGY9KG4raSkqYyxnPW0rZixoPXArdSxiPWQtcCttKyhyLW4pKihvK2EpO3JldHVybiBlLnNldCgwLDAsZCt1LWYrKGktbCkqKHMrYykpLGUuc2V0KDAsMSxnKSxlLnNldCgxLDAsaCksZS5zZXQoMSwxLGIpLGV9c3RyYXNzZW4zeDModCl7dD1pdnQuY2hlY2tNYXRyaXgodCk7bGV0IGU9bmV3IGl2dCgzLDMpO2NvbnN0IG49dGhpcy5nZXQoMCwwKSxvPXRoaXMuZ2V0KDAsMSksaT10aGlzLmdldCgwLDIpLGE9dGhpcy5nZXQoMSwwKSxyPXRoaXMuZ2V0KDEsMSkscz10aGlzLmdldCgxLDIpLGw9dGhpcy5nZXQoMiwwKSxjPXRoaXMuZ2V0KDIsMSksZD10aGlzLmdldCgyLDIpLHA9dC5nZXQoMCwwKSxtPXQuZ2V0KDAsMSksdT10LmdldCgwLDIpLGY9dC5nZXQoMSwwKSxnPXQuZ2V0KDEsMSksaD10LmdldCgxLDIpLGI9dC5nZXQoMiwwKSx5PXQuZ2V0KDIsMSksXz10LmdldCgyLDIpLEM9KG4tYSkqKC1tK2cpLE09KC1uK2ErcikqKHAtbStnKSx2PShhK3IpKigtcCttKSx4PW4qcCxPPSgtbitsK2MpKihwLXUraCksUD0oLW4rbCkqKHUtaCksdz0obCtjKSooLXArdSksaz0oLWkrYytkKSooZytiLXkpLFM9KGktZCkqKGcteSksRD1pKmIsRT0oYytkKSooLWIreSksUj0oLWkrcitzKSooaCtiLV8pLEE9KGktcykqKGgtXyksVD0ocitzKSooLWIrXyksTj0obitvK2ktYS1yLWMtZCkqZytNK3YreCtrK0QrRSx6PXgrTyt3KyhuK28raS1yLXMtbC1jKSpoK0QrUitULEk9QytyKigtcCttK2YtZy1oLWIrXykrTSt4K0QrUitBLEg9QytNK3YreCtzKnksRj1EK1IrQStUK2EqdSxMPXgrTytQK2MqKC1wK3UrZi1nLWgtYit5KStrK1MrRCxCPWsrUytEK0UrbCptLFY9eCtPK1ArdytkKl87cmV0dXJuIGUuc2V0KDAsMCx4K0QrbypmKSxlLnNldCgwLDEsTiksZS5zZXQoMCwyLHopLGUuc2V0KDEsMCxJKSxlLnNldCgxLDEsSCksZS5zZXQoMSwyLEYpLGUuc2V0KDIsMCxMKSxlLnNldCgyLDEsQiksZS5zZXQoMiwyLFYpLGV9bW11bFN0cmFzc2VuKHQpe3Q9aXZ0LmNoZWNrTWF0cml4KHQpO2xldCBlPXRoaXMuY2xvbmUoKSxuPWUucm93cyxvPWUuY29sdW1ucyxpPXQucm93cyxhPXQuY29sdW1ucztmdW5jdGlvbiByKHQsZSxuKXtpZih0LnJvd3M9PT1lJiZ0LmNvbHVtbnM9PT1uKXJldHVybiB0O3tsZXQgbz1ldnQuemVyb3MoZSxuKTtyZXR1cm4gbz1vLnNldFN1Yk1hdHJpeCh0LDAsMCksb319byE9PWkmJmNvbnNvbGUud2FybihgTXVsdGlwbHlpbmcgJHtufSB4ICR7b30gYW5kICR7aX0geCAke2F9IG1hdHJpeDogZGltZW5zaW9ucyBkbyBub3QgbWF0Y2guYCk7bGV0IHM9TWF0aC5tYXgobixpKSxsPU1hdGgubWF4KG8sYSk7cmV0dXJuIGU9cihlLHMsbCksKGZ1bmN0aW9uIHQoZSxuLG8saSl7aWYobzw9NTEyfHxpPD01MTIpcmV0dXJuIGUubW11bChuKTtvJTI9PTEmJmklMj09MT8oZT1yKGUsbysxLGkrMSksbj1yKG4sbysxLGkrMSkpOm8lMj09MT8oZT1yKGUsbysxLGkpLG49cihuLG8rMSxpKSk6aSUyPT0xJiYoZT1yKGUsbyxpKzEpLG49cihuLG8saSsxKSk7bGV0IGE9cGFyc2VJbnQoZS5yb3dzLzIsMTApLHM9cGFyc2VJbnQoZS5jb2x1bW5zLzIsMTApLGw9ZS5zdWJNYXRyaXgoMCxhLTEsMCxzLTEpLGM9bi5zdWJNYXRyaXgoMCxhLTEsMCxzLTEpLGQ9ZS5zdWJNYXRyaXgoMCxhLTEscyxlLmNvbHVtbnMtMSkscD1uLnN1Yk1hdHJpeCgwLGEtMSxzLG4uY29sdW1ucy0xKSxtPWUuc3ViTWF0cml4KGEsZS5yb3dzLTEsMCxzLTEpLHU9bi5zdWJNYXRyaXgoYSxuLnJvd3MtMSwwLHMtMSksZj1lLnN1Yk1hdHJpeChhLGUucm93cy0xLHMsZS5jb2x1bW5zLTEpLGc9bi5zdWJNYXRyaXgoYSxuLnJvd3MtMSxzLG4uY29sdW1ucy0xKSxoPXQoZXZ0LmFkZChsLGYpLGV2dC5hZGQoYyxnKSxhLHMpLGI9dChldnQuYWRkKG0sZiksYyxhLHMpLHk9dChsLGV2dC5zdWIocCxnKSxhLHMpLF89dChmLGV2dC5zdWIodSxjKSxhLHMpLEM9dChldnQuYWRkKGwsZCksZyxhLHMpLE09dChldnQuc3ViKG0sbCksZXZ0LmFkZChjLHApLGEscyksdj10KGV2dC5zdWIoZCxmKSxldnQuYWRkKHUsZyksYSxzKSx4PWV2dC5hZGQoaCxfKTt4LnN1YihDKSx4LmFkZCh2KTtsZXQgTz1ldnQuYWRkKHksQyksUD1ldnQuYWRkKGIsXyksdz1ldnQuc3ViKGgsYik7dy5hZGQoeSksdy5hZGQoTSk7bGV0IGs9ZXZ0Lnplcm9zKDIqeC5yb3dzLDIqeC5jb2x1bW5zKTtyZXR1cm4gaz1rLnNldFN1Yk1hdHJpeCh4LDAsMCksaz1rLnNldFN1Yk1hdHJpeChPLHgucm93cywwKSxrPWsuc2V0U3ViTWF0cml4KFAsMCx4LmNvbHVtbnMpLGs9ay5zZXRTdWJNYXRyaXgodyx4LnJvd3MseC5jb2x1bW5zKSxrLnN1Yk1hdHJpeCgwLG8tMSwwLGktMSl9KShlLHQ9cih0LHMsbCkscyxsKX1zY2FsZVJvd3ModD17fSl7aWYoIm9iamVjdCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtjb25zdHttaW46ZT0wLG1heDpuPTF9PXQ7aWYoIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJtaW4gbXVzdCBiZSBhIG51bWJlciIpO2lmKCFOdW1iZXIuaXNGaW5pdGUobikpdGhyb3cgbmV3IFR5cGVFcnJvcigibWF4IG11c3QgYmUgYSBudW1iZXIiKTtpZihlPj1uKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Iik7bGV0IG89bmV3IGl2dCh0aGlzLnJvd3MsdGhpcy5jb2x1bW5zKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0Kyspe2NvbnN0IGk9dGhpcy5nZXRSb3codCk7aS5sZW5ndGg+MCYmQk10KGkse21pbjplLG1heDpuLG91dHB1dDppfSksby5zZXRSb3codCxpKX1yZXR1cm4gb31zY2FsZUNvbHVtbnModD17fSl7aWYoIm9iamVjdCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtjb25zdHttaW46ZT0wLG1heDpuPTF9PXQ7aWYoIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJtaW4gbXVzdCBiZSBhIG51bWJlciIpO2lmKCFOdW1iZXIuaXNGaW5pdGUobikpdGhyb3cgbmV3IFR5cGVFcnJvcigibWF4IG11c3QgYmUgYSBudW1iZXIiKTtpZihlPj1uKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Iik7bGV0IG89bmV3IGl2dCh0aGlzLnJvd3MsdGhpcy5jb2x1bW5zKTtmb3IobGV0IHQ9MDt0PHRoaXMuY29sdW1uczt0Kyspe2NvbnN0IGk9dGhpcy5nZXRDb2x1bW4odCk7aS5sZW5ndGgmJkJNdChpLHttaW46ZSxtYXg6bixvdXRwdXQ6aX0pLG8uc2V0Q29sdW1uKHQsaSl9cmV0dXJuIG99ZmxpcFJvd3MoKXtjb25zdCB0PU1hdGguY2VpbCh0aGlzLmNvbHVtbnMvMik7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dDtuKyspe2xldCB0PXRoaXMuZ2V0KGUsbiksbz10aGlzLmdldChlLHRoaXMuY29sdW1ucy0xLW4pO3RoaXMuc2V0KGUsbixvKSx0aGlzLnNldChlLHRoaXMuY29sdW1ucy0xLW4sdCl9cmV0dXJuIHRoaXN9ZmxpcENvbHVtbnMoKXtjb25zdCB0PU1hdGguY2VpbCh0aGlzLnJvd3MvMik7Zm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKWZvcihsZXQgbj0wO248dDtuKyspe2xldCB0PXRoaXMuZ2V0KG4sZSksbz10aGlzLmdldCh0aGlzLnJvd3MtMS1uLGUpO3RoaXMuc2V0KG4sZSxvKSx0aGlzLnNldCh0aGlzLnJvd3MtMS1uLGUsdCl9cmV0dXJuIHRoaXN9a3JvbmVja2VyUHJvZHVjdCh0KXt0PWl2dC5jaGVja01hdHJpeCh0KTtsZXQgZT10aGlzLnJvd3Msbj10aGlzLmNvbHVtbnMsbz10LnJvd3MsaT10LmNvbHVtbnMsYT1uZXcgaXZ0KGUqbyxuKmkpO2ZvcihsZXQgcj0wO3I8ZTtyKyspZm9yKGxldCBlPTA7ZTxuO2UrKylmb3IobGV0IG49MDtuPG87bisrKWZvcihsZXQgcz0wO3M8aTtzKyspYS5zZXQobypyK24saSplK3MsdGhpcy5nZXQocixlKSp0LmdldChuLHMpKTtyZXR1cm4gYX1rcm9uZWNrZXJTdW0odCl7aWYodD1pdnQuY2hlY2tNYXRyaXgodCksIXRoaXMuaXNTcXVhcmUoKXx8IXQuaXNTcXVhcmUoKSl0aHJvdyBuZXcgRXJyb3IoIktyb25lY2tlciBTdW0gbmVlZHMgdHdvIFNxdWFyZSBNYXRyaWNlcyIpO2xldCBlPXRoaXMucm93cyxuPXQucm93cyxvPXRoaXMua3JvbmVja2VyUHJvZHVjdChpdnQuZXllKG4sbikpLGk9aXZ0LmV5ZShlLGUpLmtyb25lY2tlclByb2R1Y3QodCk7cmV0dXJuIG8uYWRkKGkpfXRyYW5zcG9zZSgpe2xldCB0PW5ldyBpdnQodGhpcy5jb2x1bW5zLHRoaXMucm93cyk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0LnNldChuLGUsdGhpcy5nZXQoZSxuKSk7cmV0dXJuIHR9c29ydFJvd3ModD1udnQpe2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKyl0aGlzLnNldFJvdyhlLHRoaXMuZ2V0Um93KGUpLnNvcnQodCkpO3JldHVybiB0aGlzfXNvcnRDb2x1bW5zKHQ9bnZ0KXtmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXRDb2x1bW4oZSx0aGlzLmdldENvbHVtbihlKS5zb3J0KHQpKTtyZXR1cm4gdGhpc31zdWJNYXRyaXgodCxlLG4sbyl7Sk10KHRoaXMsdCxlLG4sbyk7bGV0IGk9bmV3IGl2dChlLXQrMSxvLW4rMSk7Zm9yKGxldCBhPXQ7YTw9ZTthKyspZm9yKGxldCBlPW47ZTw9bztlKyspaS5zZXQoYS10LGUtbix0aGlzLmdldChhLGUpKTtyZXR1cm4gaX1zdWJNYXRyaXhSb3codCxlLG4pe2lmKHZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PW4mJihuPXRoaXMuY29sdW1ucy0xKSxlPm58fGU8MHx8ZT49dGhpcy5jb2x1bW5zfHxuPDB8fG4+PXRoaXMuY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXJndW1lbnQgb3V0IG9mIHJhbmdlIik7bGV0IG89bmV3IGl2dCh0Lmxlbmd0aCxuLWUrMSk7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspZm9yKGxldCBhPWU7YTw9bjthKyspe2lmKHRbaV08MHx8dFtpXT49dGhpcy5yb3dzKXRocm93IG5ldyBSYW5nZUVycm9yKGBSb3cgaW5kZXggb3V0IG9mIHJhbmdlOiAke3RbaV19YCk7by5zZXQoaSxhLWUsdGhpcy5nZXQodFtpXSxhKSl9cmV0dXJuIG99c3ViTWF0cml4Q29sdW1uKHQsZSxuKXtpZih2b2lkIDA9PT1lJiYoZT0wKSx2b2lkIDA9PT1uJiYobj10aGlzLnJvd3MtMSksZT5ufHxlPDB8fGU+PXRoaXMucm93c3x8bjwwfHxuPj10aGlzLnJvd3MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkFyZ3VtZW50IG91dCBvZiByYW5nZSIpO2xldCBvPW5ldyBpdnQobi1lKzEsdC5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKWZvcihsZXQgYT1lO2E8PW47YSsrKXtpZih0W2ldPDB8fHRbaV0+PXRoaXMuY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgQ29sdW1uIGluZGV4IG91dCBvZiByYW5nZTogJHt0W2ldfWApO28uc2V0KGEtZSxpLHRoaXMuZ2V0KGEsdFtpXSkpfXJldHVybiBvfXNldFN1Yk1hdHJpeCh0LGUsbil7aWYoKHQ9aXZ0LmNoZWNrTWF0cml4KHQpKS5pc0VtcHR5KCkpcmV0dXJuIHRoaXM7Sk10KHRoaXMsZSxlK3Qucm93cy0xLG4sbit0LmNvbHVtbnMtMSk7Zm9yKGxldCBvPTA7bzx0LnJvd3M7bysrKWZvcihsZXQgaT0wO2k8dC5jb2x1bW5zO2krKyl0aGlzLnNldChlK28sbitpLHQuZ2V0KG8saSkpO3JldHVybiB0aGlzfXNlbGVjdGlvbih0LGUpe2xldCBuPShmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm57cm93OlhNdCh0LGUpLGNvbHVtbjpLTXQodCxuKX19KSh0aGlzLHQsZSksaT1uZXcgaXZ0KHQubGVuZ3RoLGUubGVuZ3RoKTtmb3IobGV0IHQ9MDt0PG4ucm93Lmxlbmd0aDt0Kyspe2xldCBlPW4ucm93W3RdO2ZvcihsZXQgbz0wO288bi5jb2x1bW4ubGVuZ3RoO28rKylpLnNldCh0LG8sdGhpcy5nZXQoZSxuLmNvbHVtbltvXSkpfXJldHVybiBpfXRyYWNlKCl7bGV0IHQ9TWF0aC5taW4odGhpcy5yb3dzLHRoaXMuY29sdW1ucyksZT0wO2ZvcihsZXQgbj0wO248dDtuKyspZSs9dGhpcy5nZXQobixuKTtyZXR1cm4gZX1jbG9uZSgpe2xldCB0PW5ldyBpdnQodGhpcy5yb3dzLHRoaXMuY29sdW1ucyk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0LnNldChlLG4sdGhpcy5nZXQoZSxuKSk7cmV0dXJuIHR9c3VtKHQpe3N3aXRjaCh0KXtjYXNlInJvdyI6cmV0dXJuKGZ1bmN0aW9uIGUodCl7bGV0IGU9UU10KHQucm93cyk7Zm9yKGxldCBuPTA7bjx0LnJvd3M7KytuKWZvcihsZXQgbz0wO288dC5jb2x1bW5zOysrbyllW25dKz10LmdldChuLG8pO3JldHVybiBlfSkodGhpcyk7Y2FzZSJjb2x1bW4iOnJldHVybihmdW5jdGlvbiBuKHQpe2xldCBlPVFNdCh0LmNvbHVtbnMpO2ZvcihsZXQgbj0wO248dC5yb3dzOysrbilmb3IobGV0IG89MDtvPHQuY29sdW1uczsrK28pZVtvXSs9dC5nZXQobixvKTtyZXR1cm4gZX0pKHRoaXMpO2Nhc2Ugdm9pZCAwOnJldHVybihmdW5jdGlvbiBvKHQpe2xldCBlPTA7Zm9yKGxldCBuPTA7bjx0LnJvd3M7bisrKWZvcihsZXQgbz0wO288dC5jb2x1bW5zO28rKyllKz10LmdldChuLG8pO3JldHVybiBlfSkodGhpcyk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgb3B0aW9uOiAke3R9YCl9fXByb2R1Y3QodCl7c3dpdGNoKHQpe2Nhc2Uicm93IjpyZXR1cm4oZnVuY3Rpb24gZSh0KXtsZXQgZT1RTXQodC5yb3dzLDEpO2ZvcihsZXQgbj0wO248dC5yb3dzOysrbilmb3IobGV0IG89MDtvPHQuY29sdW1uczsrK28pZVtuXSo9dC5nZXQobixvKTtyZXR1cm4gZX0pKHRoaXMpO2Nhc2UiY29sdW1uIjpyZXR1cm4oZnVuY3Rpb24gbih0KXtsZXQgZT1RTXQodC5jb2x1bW5zLDEpO2ZvcihsZXQgbj0wO248dC5yb3dzOysrbilmb3IobGV0IG89MDtvPHQuY29sdW1uczsrK28pZVtvXSo9dC5nZXQobixvKTtyZXR1cm4gZX0pKHRoaXMpO2Nhc2Ugdm9pZCAwOnJldHVybihmdW5jdGlvbiBvKHQpe2xldCBlPTE7Zm9yKGxldCBuPTA7bjx0LnJvd3M7bisrKWZvcihsZXQgbz0wO288dC5jb2x1bW5zO28rKyllKj10LmdldChuLG8pO3JldHVybiBlfSkodGhpcyk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgb3B0aW9uOiAke3R9YCl9fW1lYW4odCl7Y29uc3QgZT10aGlzLnN1bSh0KTtzd2l0Y2godCl7Y2FzZSJyb3ciOmZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKyllW3RdLz10aGlzLmNvbHVtbnM7cmV0dXJuIGU7Y2FzZSJjb2x1bW4iOmZvcihsZXQgdD0wO3Q8dGhpcy5jb2x1bW5zO3QrKyllW3RdLz10aGlzLnJvd3M7cmV0dXJuIGU7Y2FzZSB2b2lkIDA6cmV0dXJuIGUvdGhpcy5zaXplO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9wdGlvbjogJHt0fWApfX12YXJpYW5jZSh0LGU9e30pe2lmKCJvYmplY3QiPT10eXBlb2YgdCYmKGU9dCx0PXZvaWQgMCksIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtjb25zdHt1bmJpYXNlZDpuPSEwLG1lYW46bz10aGlzLm1lYW4odCl9PWU7aWYoImJvb2xlYW4iIT10eXBlb2Ygbil0aHJvdyBuZXcgVHlwZUVycm9yKCJ1bmJpYXNlZCBtdXN0IGJlIGEgYm9vbGVhbiIpO3N3aXRjaCh0KXtjYXNlInJvdyI6aWYoIUFycmF5LmlzQXJyYXkobykpdGhyb3cgbmV3IFR5cGVFcnJvcigibWVhbiBtdXN0IGJlIGFuIGFycmF5Iik7cmV0dXJuKGZ1bmN0aW9uIGUodCxuLG8pe2NvbnN0IGk9dC5yb3dzLGE9dC5jb2x1bW5zLHI9W107Zm9yKGxldCBlPTA7ZTxpO2UrKyl7bGV0IGk9MCxzPTAsbD0wO2ZvcihsZXQgbj0wO248YTtuKyspbD10LmdldChlLG4pLW9bZV0saSs9bCxzKz1sKmw7ci5wdXNoKG4/KHMtaSppL2EpLyhhLTEpOihzLWkqaS9hKS9hKX1yZXR1cm4gcn0pKHRoaXMsbixvKTtjYXNlImNvbHVtbiI6aWYoIUFycmF5LmlzQXJyYXkobykpdGhyb3cgbmV3IFR5cGVFcnJvcigibWVhbiBtdXN0IGJlIGFuIGFycmF5Iik7cmV0dXJuKGZ1bmN0aW9uIGkodCxlLG4pe2NvbnN0IG89dC5yb3dzLGk9dC5jb2x1bW5zLGE9W107Zm9yKGxldCByPTA7cjxpO3IrKyl7bGV0IGk9MCxzPTAsbD0wO2ZvcihsZXQgZT0wO2U8bztlKyspbD10LmdldChlLHIpLW5bcl0saSs9bCxzKz1sKmw7YS5wdXNoKGU/KHMtaSppL28pLyhvLTEpOihzLWkqaS9vKS9vKX1yZXR1cm4gYX0pKHRoaXMsbixvKTtjYXNlIHZvaWQgMDppZigibnVtYmVyIiE9dHlwZW9mIG8pdGhyb3cgbmV3IFR5cGVFcnJvcigibWVhbiBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuKGZ1bmN0aW9uIGEodCxlLG4pe2NvbnN0IG89dC5yb3dzLGk9dC5jb2x1bW5zLGE9byppO2xldCByPTAscz0wLGw9MDtmb3IobGV0IGU9MDtlPG87ZSsrKWZvcihsZXQgbz0wO288aTtvKyspbD10LmdldChlLG8pLW4scis9bCxzKz1sKmw7cmV0dXJuIGU/KHMtcipyL2EpLyhhLTEpOihzLXIqci9hKS9hfSkodGhpcyxuLG8pO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9wdGlvbjogJHt0fWApfX1zdGFuZGFyZERldmlhdGlvbih0LGUpeyJvYmplY3QiPT10eXBlb2YgdCYmKGU9dCx0PXZvaWQgMCk7Y29uc3Qgbj10aGlzLnZhcmlhbmNlKHQsZSk7aWYodm9pZCAwPT09dClyZXR1cm4gTWF0aC5zcXJ0KG4pO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKW5bdF09TWF0aC5zcXJ0KG5bdF0pO3JldHVybiBufWNlbnRlcih0LGU9e30pe2lmKCJvYmplY3QiPT10eXBlb2YgdCYmKGU9dCx0PXZvaWQgMCksIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtjb25zdHtjZW50ZXI6bj10aGlzLm1lYW4odCl9PWU7c3dpdGNoKHQpe2Nhc2Uicm93IjppZighQXJyYXkuaXNBcnJheShuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJjZW50ZXIgbXVzdCBiZSBhbiBhcnJheSIpO3JldHVybihmdW5jdGlvbiBlKHQsbil7Zm9yKGxldCBlPTA7ZTx0LnJvd3M7ZSsrKWZvcihsZXQgbz0wO288dC5jb2x1bW5zO28rKyl0LnNldChlLG8sdC5nZXQoZSxvKS1uW2VdKX0pKHRoaXMsbiksdGhpcztjYXNlImNvbHVtbiI6aWYoIUFycmF5LmlzQXJyYXkobikpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2VudGVyIG11c3QgYmUgYW4gYXJyYXkiKTtyZXR1cm4oZnVuY3Rpb24gbyh0LGUpe2ZvcihsZXQgbj0wO248dC5yb3dzO24rKylmb3IobGV0IG89MDtvPHQuY29sdW1ucztvKyspdC5zZXQobixvLHQuZ2V0KG4sbyktZVtvXSl9KSh0aGlzLG4pLHRoaXM7Y2FzZSB2b2lkIDA6aWYoIm51bWJlciIhPXR5cGVvZiBuKXRocm93IG5ldyBUeXBlRXJyb3IoImNlbnRlciBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuKGZ1bmN0aW9uIGkodCxlKXtmb3IobGV0IG49MDtuPHQucm93cztuKyspZm9yKGxldCBvPTA7bzx0LmNvbHVtbnM7bysrKXQuc2V0KG4sbyx0LmdldChuLG8pLWUpfSkodGhpcyxuKSx0aGlzO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9wdGlvbjogJHt0fWApfX1zY2FsZSh0LGU9e30pe2lmKCJvYmplY3QiPT10eXBlb2YgdCYmKGU9dCx0PXZvaWQgMCksIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtsZXQgbj1lLnNjYWxlO3N3aXRjaCh0KXtjYXNlInJvdyI6aWYodm9pZCAwPT09biluPShmdW5jdGlvbiBlKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjx0LnJvd3M7bisrKXtsZXQgbz0wO2ZvcihsZXQgZT0wO2U8dC5jb2x1bW5zO2UrKylvKz1NYXRoLnBvdyh0LmdldChuLGUpLDIpLyh0LmNvbHVtbnMtMSk7ZS5wdXNoKE1hdGguc3FydChvKSl9cmV0dXJuIGV9KSh0aGlzKTtlbHNlIGlmKCFBcnJheS5pc0FycmF5KG4pKXRocm93IG5ldyBUeXBlRXJyb3IoInNjYWxlIG11c3QgYmUgYW4gYXJyYXkiKTtyZXR1cm4oZnVuY3Rpb24gbyh0LGUpe2ZvcihsZXQgbj0wO248dC5yb3dzO24rKylmb3IobGV0IG89MDtvPHQuY29sdW1ucztvKyspdC5zZXQobixvLHQuZ2V0KG4sbykvZVtuXSl9KSh0aGlzLG4pLHRoaXM7Y2FzZSJjb2x1bW4iOmlmKHZvaWQgMD09PW4pbj0oZnVuY3Rpb24gaSh0KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248dC5jb2x1bW5zO24rKyl7bGV0IG89MDtmb3IobGV0IGU9MDtlPHQucm93cztlKyspbys9TWF0aC5wb3codC5nZXQoZSxuKSwyKS8odC5yb3dzLTEpO2UucHVzaChNYXRoLnNxcnQobykpfXJldHVybiBlfSkodGhpcyk7ZWxzZSBpZighQXJyYXkuaXNBcnJheShuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJzY2FsZSBtdXN0IGJlIGFuIGFycmF5Iik7cmV0dXJuKGZ1bmN0aW9uIGEodCxlKXtmb3IobGV0IG49MDtuPHQucm93cztuKyspZm9yKGxldCBvPTA7bzx0LmNvbHVtbnM7bysrKXQuc2V0KG4sbyx0LmdldChuLG8pL2Vbb10pfSkodGhpcyxuKSx0aGlzO2Nhc2Ugdm9pZCAwOmlmKHZvaWQgMD09PW4pbj0oZnVuY3Rpb24gcih0KXtjb25zdCBlPXQuc2l6ZS0xO2xldCBuPTA7Zm9yKGxldCBvPTA7bzx0LmNvbHVtbnM7bysrKWZvcihsZXQgaT0wO2k8dC5yb3dzO2krKyluKz1NYXRoLnBvdyh0LmdldChpLG8pLDIpL2U7cmV0dXJuIE1hdGguc3FydChuKX0pKHRoaXMpO2Vsc2UgaWYoIm51bWJlciIhPXR5cGVvZiBuKXRocm93IG5ldyBUeXBlRXJyb3IoInNjYWxlIG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4oZnVuY3Rpb24gcyh0LGUpe2ZvcihsZXQgbj0wO248dC5yb3dzO24rKylmb3IobGV0IG89MDtvPHQuY29sdW1ucztvKyspdC5zZXQobixvLHQuZ2V0KG4sbykvZSl9KSh0aGlzLG4pLHRoaXM7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgb3B0aW9uOiAke3R9YCl9fXRvU3RyaW5nKHQpe3JldHVybiBVTXQodGhpcyx0KX19ZnVuY3Rpb24gbnZ0KHQsZSl7cmV0dXJuIHQtZX1ldnQucHJvdG90eXBlLmtsYXNzPSJNYXRyaXgiLCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiYoZXZ0LnByb3RvdHlwZVtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpXT1mdW5jdGlvbiBvdnQoKXtyZXR1cm4gVU10KHRoaXMpfSksZXZ0LnJhbmRvbT1ldnQucmFuZCxldnQucmFuZG9tSW50PWV2dC5yYW5kSW50LGV2dC5kaWFnb25hbD1ldnQuZGlhZyxldnQucHJvdG90eXBlLmRpYWdvbmFsPWV2dC5wcm90b3R5cGUuZGlhZyxldnQuaWRlbnRpdHk9ZXZ0LmV5ZSxldnQucHJvdG90eXBlLm5lZ2F0ZT1ldnQucHJvdG90eXBlLm5lZyxldnQucHJvdG90eXBlLnRlbnNvclByb2R1Y3Q9ZXZ0LnByb3RvdHlwZS5rcm9uZWNrZXJQcm9kdWN0O2NsYXNzIGl2dCBleHRlbmRzIGV2dHtjb25zdHJ1Y3Rvcih0LGUpe2lmKHN1cGVyKCksaXZ0LmlzTWF0cml4KHQpKXJldHVybiB0LmNsb25lKCk7aWYoTnVtYmVyLmlzSW50ZWdlcih0KSYmdD49MCl7aWYodGhpcy5kYXRhPVtdLCEoTnVtYmVyLmlzSW50ZWdlcihlKSYmZT49MCkpdGhyb3cgbmV3IFR5cGVFcnJvcigibkNvbHVtbnMgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIiKTtmb3IobGV0IG49MDtuPHQ7bisrKXRoaXMuZGF0YS5wdXNoKG5ldyBGbG9hdDY0QXJyYXkoZSkpfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBvciBhbiBhcnJheSIpO3tjb25zdCBuPXQ7aWYoIm51bWJlciIhPXR5cGVvZihlPSh0PW4ubGVuZ3RoKT9uWzBdLmxlbmd0aDowKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEYXRhIG11c3QgYmUgYSAyRCBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50Iik7dGhpcy5kYXRhPVtdO2ZvcihsZXQgbz0wO288dDtvKyspe2lmKG5bb10ubGVuZ3RoIT09ZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5jb25zaXN0ZW50IGFycmF5IGRpbWVuc2lvbnMiKTt0aGlzLmRhdGEucHVzaChGbG9hdDY0QXJyYXkuZnJvbShuW29dKSl9fX10aGlzLnJvd3M9dCx0aGlzLmNvbHVtbnM9ZX1zZXQodCxlLG4pe3JldHVybiB0aGlzLmRhdGFbdF1bZV09bix0aGlzfWdldCh0LGUpe3JldHVybiB0aGlzLmRhdGFbdF1bZV19cmVtb3ZlUm93KHQpe3JldHVybiBXTXQodGhpcyx0KSx0aGlzLmRhdGEuc3BsaWNlKHQsMSksdGhpcy5yb3dzLT0xLHRoaXN9YWRkUm93KHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXQsdD10aGlzLnJvd3MpLFdNdCh0aGlzLHQsITApLGU9RmxvYXQ2NEFycmF5LmZyb20ocU10KHRoaXMsZSkpLHRoaXMuZGF0YS5zcGxpY2UodCwwLGUpLHRoaXMucm93cys9MSx0aGlzfXJlbW92ZUNvbHVtbih0KXtZTXQodGhpcyx0KTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspe2NvbnN0IG49bmV3IEZsb2F0NjRBcnJheSh0aGlzLmNvbHVtbnMtMSk7Zm9yKGxldCBvPTA7bzx0O28rKyluW29dPXRoaXMuZGF0YVtlXVtvXTtmb3IobGV0IG89dCsxO288dGhpcy5jb2x1bW5zO28rKyluW28tMV09dGhpcy5kYXRhW2VdW29dO3RoaXMuZGF0YVtlXT1ufXJldHVybiB0aGlzLmNvbHVtbnMtPTEsdGhpc31hZGRDb2x1bW4odCxlKXt2b2lkIDA9PT1lJiYoZT10LHQ9dGhpcy5jb2x1bW5zKSxZTXQodGhpcyx0LCEwKSxlPVpNdCh0aGlzLGUpO2ZvcihsZXQgbj0wO248dGhpcy5yb3dzO24rKyl7Y29uc3Qgbz1uZXcgRmxvYXQ2NEFycmF5KHRoaXMuY29sdW1ucysxKTtsZXQgaT0wO2Zvcig7aTx0O2krKylvW2ldPXRoaXMuZGF0YVtuXVtpXTtmb3Iob1tpKytdPWVbbl07aTx0aGlzLmNvbHVtbnMrMTtpKyspb1tpXT10aGlzLmRhdGFbbl1baS0xXTt0aGlzLmRhdGFbbl09b31yZXR1cm4gdGhpcy5jb2x1bW5zKz0xLHRoaXN9fSEoZnVuY3Rpb24gYXZ0KHQsZSl7dC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuYWRkUyhlKTp0aGlzLmFkZE0oZSl9LHQucHJvdG90eXBlLmFkZFM9ZnVuY3Rpb24gdChlKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbix0aGlzLmdldCh0LG4pK2UpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5hZGRNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpK24uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0LmFkZD1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLmFkZChvKX0sdC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuc3ViUyhlKTp0aGlzLnN1Yk0oZSl9LHQucHJvdG90eXBlLnN1YlM9ZnVuY3Rpb24gdChlKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbix0aGlzLmdldCh0LG4pLWUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5zdWJNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpLW4uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0LnN1Yj1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLnN1YihvKX0sdC5wcm90b3R5cGUuc3VidHJhY3Q9dC5wcm90b3R5cGUuc3ViLHQucHJvdG90eXBlLnN1YnRyYWN0Uz10LnByb3RvdHlwZS5zdWJTLHQucHJvdG90eXBlLnN1YnRyYWN0TT10LnByb3RvdHlwZS5zdWJNLHQuc3VidHJhY3Q9dC5zdWIsdC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMubXVsUyhlKTp0aGlzLm11bE0oZSl9LHQucHJvdG90eXBlLm11bFM9ZnVuY3Rpb24gdChlKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbix0aGlzLmdldCh0LG4pKmUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5tdWxNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpKm4uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0Lm11bD1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLm11bChvKX0sdC5wcm90b3R5cGUubXVsdGlwbHk9dC5wcm90b3R5cGUubXVsLHQucHJvdG90eXBlLm11bHRpcGx5Uz10LnByb3RvdHlwZS5tdWxTLHQucHJvdG90eXBlLm11bHRpcGx5TT10LnByb3RvdHlwZS5tdWxNLHQubXVsdGlwbHk9dC5tdWwsdC5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uIHQoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuZGl2UyhlKTp0aGlzLmRpdk0oZSl9LHQucHJvdG90eXBlLmRpdlM9ZnVuY3Rpb24gdChlKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbix0aGlzLmdldCh0LG4pL2UpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5kaXZNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpL24uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0LmRpdj1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLmRpdihvKX0sdC5wcm90b3R5cGUuZGl2aWRlPXQucHJvdG90eXBlLmRpdix0LnByb3RvdHlwZS5kaXZpZGVTPXQucHJvdG90eXBlLmRpdlMsdC5wcm90b3R5cGUuZGl2aWRlTT10LnByb3RvdHlwZS5kaXZNLHQuZGl2aWRlPXQuZGl2LHQucHJvdG90eXBlLm1vZD1mdW5jdGlvbiB0KGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZT90aGlzLm1vZFMoZSk6dGhpcy5tb2RNKGUpfSx0LnByb3RvdHlwZS5tb2RTPWZ1bmN0aW9uIHQoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldCh0LG4sdGhpcy5nZXQodCxuKSVlKTtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUubW9kTT1mdW5jdGlvbiB0KG4pe2lmKG49ZS5jaGVja01hdHJpeChuKSx0aGlzLnJvd3MhPT1uLnJvd3N8fHRoaXMuY29sdW1ucyE9PW4uY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTWF0cmljZXMgZGltZW5zaW9ucyBtdXN0IGJlIGVxdWFsIik7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsdGhpcy5nZXQodCxlKSVuLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC5tb2Q9ZnVuY3Rpb24gdChuLG8pe3JldHVybiBuZXcgZShuKS5tb2Qobyl9LHQucHJvdG90eXBlLm1vZHVsdXM9dC5wcm90b3R5cGUubW9kLHQucHJvdG90eXBlLm1vZHVsdXNTPXQucHJvdG90eXBlLm1vZFMsdC5wcm90b3R5cGUubW9kdWx1c009dC5wcm90b3R5cGUubW9kTSx0Lm1vZHVsdXM9dC5tb2QsdC5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuYW5kUyhlKTp0aGlzLmFuZE0oZSl9LHQucHJvdG90eXBlLmFuZFM9ZnVuY3Rpb24gdChlKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbix0aGlzLmdldCh0LG4pJmUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5hbmRNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpJm4uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0LmFuZD1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLmFuZChvKX0sdC5wcm90b3R5cGUub3I9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5vclMoZSk6dGhpcy5vck0oZSl9LHQucHJvdG90eXBlLm9yUz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbil8ZSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLm9yTT1mdW5jdGlvbiB0KG4pe2lmKG49ZS5jaGVja01hdHJpeChuKSx0aGlzLnJvd3MhPT1uLnJvd3N8fHRoaXMuY29sdW1ucyE9PW4uY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTWF0cmljZXMgZGltZW5zaW9ucyBtdXN0IGJlIGVxdWFsIik7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsdGhpcy5nZXQodCxlKXxuLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC5vcj1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLm9yKG8pfSx0LnByb3RvdHlwZS54b3I9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy54b3JTKGUpOnRoaXMueG9yTShlKX0sdC5wcm90b3R5cGUueG9yUz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbileZSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLnhvck09ZnVuY3Rpb24gdChuKXtpZihuPWUuY2hlY2tNYXRyaXgobiksdGhpcy5yb3dzIT09bi5yb3dzfHx0aGlzLmNvbHVtbnMhPT1uLmNvbHVtbnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk1hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCIpO2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLHRoaXMuZ2V0KHQsZSlebi5nZXQodCxlKSk7cmV0dXJuIHRoaXN9LHQueG9yPWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikueG9yKG8pfSx0LnByb3RvdHlwZS5sZWZ0U2hpZnQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5sZWZ0U2hpZnRTKGUpOnRoaXMubGVmdFNoaWZ0TShlKX0sdC5wcm90b3R5cGUubGVmdFNoaWZ0Uz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbik8PGUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5sZWZ0U2hpZnRNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpPDxuLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC5sZWZ0U2hpZnQ9ZnVuY3Rpb24gdChuLG8pe3JldHVybiBuZXcgZShuKS5sZWZ0U2hpZnQobyl9LHQucHJvdG90eXBlLnNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0UyhlKTp0aGlzLnNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnRNKGUpfSx0LnByb3RvdHlwZS5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0Uz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbik+PmUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0TT1mdW5jdGlvbiB0KG4pe2lmKG49ZS5jaGVja01hdHJpeChuKSx0aGlzLnJvd3MhPT1uLnJvd3N8fHRoaXMuY29sdW1ucyE9PW4uY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTWF0cmljZXMgZGltZW5zaW9ucyBtdXN0IGJlIGVxdWFsIik7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsdGhpcy5nZXQodCxlKT4+bi5nZXQodCxlKSk7cmV0dXJuIHRoaXN9LHQuc2lnblByb3BhZ2F0aW5nUmlnaHRTaGlmdD1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLnNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnQobyl9LHQucHJvdG90eXBlLnJpZ2h0U2hpZnQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5yaWdodFNoaWZ0UyhlKTp0aGlzLnJpZ2h0U2hpZnRNKGUpfSx0LnByb3RvdHlwZS5yaWdodFNoaWZ0Uz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbik+Pj5lKTtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUucmlnaHRTaGlmdE09ZnVuY3Rpb24gdChuKXtpZihuPWUuY2hlY2tNYXRyaXgobiksdGhpcy5yb3dzIT09bi5yb3dzfHx0aGlzLmNvbHVtbnMhPT1uLmNvbHVtbnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk1hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCIpO2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLHRoaXMuZ2V0KHQsZSk+Pj5uLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC5yaWdodFNoaWZ0PWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikucmlnaHRTaGlmdChvKX0sdC5wcm90b3R5cGUuemVyb0ZpbGxSaWdodFNoaWZ0PXQucHJvdG90eXBlLnJpZ2h0U2hpZnQsdC5wcm90b3R5cGUuemVyb0ZpbGxSaWdodFNoaWZ0Uz10LnByb3RvdHlwZS5yaWdodFNoaWZ0Uyx0LnByb3RvdHlwZS56ZXJvRmlsbFJpZ2h0U2hpZnRNPXQucHJvdG90eXBlLnJpZ2h0U2hpZnRNLHQuemVyb0ZpbGxSaWdodFNoaWZ0PXQucmlnaHRTaGlmdCx0LnByb3RvdHlwZS5ub3Q9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLH50aGlzLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC5ub3Q9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikubm90KCl9LHQucHJvdG90eXBlLmFicz1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5hYnModGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmFicz1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5hYnMoKX0sdC5wcm90b3R5cGUuYWNvcz1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5hY29zKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5hY29zPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmFjb3MoKX0sdC5wcm90b3R5cGUuYWNvc2g9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguYWNvc2godGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmFjb3NoPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmFjb3NoKCl9LHQucHJvdG90eXBlLmFzaW49ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguYXNpbih0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuYXNpbj1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5hc2luKCl9LHQucHJvdG90eXBlLmFzaW5oPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmFzaW5oKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5hc2luaD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5hc2luaCgpfSx0LnByb3RvdHlwZS5hdGFuPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmF0YW4odGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmF0YW49ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuYXRhbigpfSx0LnByb3RvdHlwZS5hdGFuaD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5hdGFuaCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuYXRhbmg9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuYXRhbmgoKX0sdC5wcm90b3R5cGUuY2JydD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5jYnJ0KHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5jYnJ0PWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmNicnQoKX0sdC5wcm90b3R5cGUuY2VpbD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5jZWlsKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5jZWlsPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmNlaWwoKX0sdC5wcm90b3R5cGUuY2x6MzI9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguY2x6MzIodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmNsejMyPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmNsejMyKCl9LHQucHJvdG90eXBlLmNvcz1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5jb3ModGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmNvcz1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5jb3MoKX0sdC5wcm90b3R5cGUuY29zaD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5jb3NoKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5jb3NoPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmNvc2goKX0sdC5wcm90b3R5cGUuZXhwPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmV4cCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuZXhwPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmV4cCgpfSx0LnByb3RvdHlwZS5leHBtMT1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5leHBtMSh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuZXhwbTE9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuZXhwbTEoKX0sdC5wcm90b3R5cGUuZmxvb3I9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguZmxvb3IodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmZsb29yPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmZsb29yKCl9LHQucHJvdG90eXBlLmZyb3VuZD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5mcm91bmQodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmZyb3VuZD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5mcm91bmQoKX0sdC5wcm90b3R5cGUubG9nPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmxvZyh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQubG9nPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmxvZygpfSx0LnByb3RvdHlwZS5sb2cxcD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5sb2cxcCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQubG9nMXA9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikubG9nMXAoKX0sdC5wcm90b3R5cGUubG9nMTA9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGgubG9nMTAodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmxvZzEwPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmxvZzEwKCl9LHQucHJvdG90eXBlLmxvZzI9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGgubG9nMih0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQubG9nMj1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5sb2cyKCl9LHQucHJvdG90eXBlLnJvdW5kPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLnJvdW5kKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5yb3VuZD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5yb3VuZCgpfSx0LnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLnNpZ24odGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LnNpZ249ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuc2lnbigpfSx0LnByb3RvdHlwZS5zaW49ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguc2luKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5zaW49ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuc2luKCl9LHQucHJvdG90eXBlLnNpbmg9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguc2luaCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuc2luaD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5zaW5oKCl9LHQucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguc3FydCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuc3FydD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5zcXJ0KCl9LHQucHJvdG90eXBlLnRhbj1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC50YW4odGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LnRhbj1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS50YW4oKX0sdC5wcm90b3R5cGUudGFuaD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC50YW5oKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC50YW5oPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLnRhbmgoKX0sdC5wcm90b3R5cGUudHJ1bmM9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGgudHJ1bmModGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LnRydW5jPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLnRydW5jKCl9LHQucG93PWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikucG93KG8pfSx0LnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5wb3dTKGUpOnRoaXMucG93TShlKX0sdC5wcm90b3R5cGUucG93Uz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLE1hdGgucG93KHRoaXMuZ2V0KHQsbiksZSkpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5wb3dNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLnBvdyh0aGlzLmdldCh0LGUpLG4uZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc319KShldnQsaXZ0KTtjbGFzcyBydnQgZXh0ZW5kcyBldnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRhdGE9dCx0aGlzLnJvd3M9dC5sZW5ndGgsdGhpcy5jb2x1bW5zPXRbMF0ubGVuZ3RofXNldCh0LGUsbil7cmV0dXJuIHRoaXMuZGF0YVt0XVtlXT1uLHRoaXN9Z2V0KHQsZSl7cmV0dXJuIHRoaXMuZGF0YVt0XVtlXX19Y2xhc3Mgc3Z0e2NvbnN0cnVjdG9yKHQpe2xldCBlLG4sbyxpLGEscixzLGwsYyxkPSh0PXJ2dC5jaGVja01hdHJpeCh0KSkuY2xvbmUoKSxwPWQucm93cyxtPWQuY29sdW1ucyx1PW5ldyBGbG9hdDY0QXJyYXkocCksZj0xO2ZvcihlPTA7ZTxwO2UrKyl1W2VdPWU7Zm9yKGw9bmV3IEZsb2F0NjRBcnJheShwKSxuPTA7bjxtO24rKyl7Zm9yKGU9MDtlPHA7ZSsrKWxbZV09ZC5nZXQoZSxuKTtmb3IoZT0wO2U8cDtlKyspe2ZvcihjPU1hdGgubWluKGUsbiksYT0wLG89MDtvPGM7bysrKWErPWQuZ2V0KGUsbykqbFtvXTtsW2VdLT1hLGQuc2V0KGUsbixsW2VdKX1mb3IoaT1uLGU9bisxO2U8cDtlKyspTWF0aC5hYnMobFtlXSk+TWF0aC5hYnMobFtpXSkmJihpPWUpO2lmKGkhPT1uKXtmb3Iobz0wO288bTtvKyspcj1kLmdldChpLG8pLGQuc2V0KGksbyxkLmdldChuLG8pKSxkLnNldChuLG8scik7cz11W2ldLHVbaV09dVtuXSx1W25dPXMsZj0tZn1pZihuPHAmJjAhPT1kLmdldChuLG4pKWZvcihlPW4rMTtlPHA7ZSsrKWQuc2V0KGUsbixkLmdldChlLG4pL2QuZ2V0KG4sbikpfXRoaXMuTFU9ZCx0aGlzLnBpdm90VmVjdG9yPXUsdGhpcy5waXZvdFNpZ249Zn1pc1Npbmd1bGFyKCl7bGV0IHQ9dGhpcy5MVSxlPXQuY29sdW1ucztmb3IobGV0IG49MDtuPGU7bisrKWlmKDA9PT10LmdldChuLG4pKXJldHVybiEwO3JldHVybiExfXNvbHZlKHQpe3Q9aXZ0LmNoZWNrTWF0cml4KHQpO2xldCBlPXRoaXMuTFU7aWYoZS5yb3dzIT09dC5yb3dzKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBtYXRyaXggZGltZW5zaW9ucyIpO2lmKHRoaXMuaXNTaW5ndWxhcigpKXRocm93IG5ldyBFcnJvcigiTFUgbWF0cml4IGlzIHNpbmd1bGFyIik7bGV0IG4sbyxpLGE9dC5jb2x1bW5zLHI9dC5zdWJNYXRyaXhSb3codGhpcy5waXZvdFZlY3RvciwwLGEtMSkscz1lLmNvbHVtbnM7Zm9yKGk9MDtpPHM7aSsrKWZvcihuPWkrMTtuPHM7bisrKWZvcihvPTA7bzxhO28rKylyLnNldChuLG8sci5nZXQobixvKS1yLmdldChpLG8pKmUuZ2V0KG4saSkpO2ZvcihpPXMtMTtpPj0wO2ktLSl7Zm9yKG89MDtvPGE7bysrKXIuc2V0KGksbyxyLmdldChpLG8pL2UuZ2V0KGksaSkpO2ZvcihuPTA7bjxpO24rKylmb3Iobz0wO288YTtvKyspci5zZXQobixvLHIuZ2V0KG4sbyktci5nZXQoaSxvKSplLmdldChuLGkpKX1yZXR1cm4gcn1nZXQgZGV0ZXJtaW5hbnQoKXtsZXQgdD10aGlzLkxVO2lmKCF0LmlzU3F1YXJlKCkpdGhyb3cgbmV3IEVycm9yKCJNYXRyaXggbXVzdCBiZSBzcXVhcmUiKTtsZXQgZT10aGlzLnBpdm90U2lnbixuPXQuY29sdW1ucztmb3IobGV0IG89MDtvPG47bysrKWUqPXQuZ2V0KG8sbyk7cmV0dXJuIGV9Z2V0IGxvd2VyVHJpYW5ndWxhck1hdHJpeCgpe2xldCB0PXRoaXMuTFUsZT10LnJvd3Msbj10LmNvbHVtbnMsbz1uZXcgaXZ0KGUsbik7Zm9yKGxldCBpPTA7aTxlO2krKylmb3IobGV0IGU9MDtlPG47ZSsrKW8uc2V0KGksZSxpPmU/dC5nZXQoaSxlKTppPT09ZT8xOjApO3JldHVybiBvfWdldCB1cHBlclRyaWFuZ3VsYXJNYXRyaXgoKXtsZXQgdD10aGlzLkxVLGU9dC5yb3dzLG49dC5jb2x1bW5zLG89bmV3IGl2dChlLG4pO2ZvcihsZXQgaT0wO2k8ZTtpKyspZm9yKGxldCBlPTA7ZTxuO2UrKylvLnNldChpLGUsaTw9ZT90LmdldChpLGUpOjApO3JldHVybiBvfWdldCBwaXZvdFBlcm11dGF0aW9uVmVjdG9yKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5waXZvdFZlY3Rvcil9fWZ1bmN0aW9uIGx2dCh0LGUpe2xldCBuPTA7cmV0dXJuIE1hdGguYWJzKHQpPk1hdGguYWJzKGUpPyhuPWUvdCxNYXRoLmFicyh0KSpNYXRoLnNxcnQoMStuKm4pKTowIT09ZT8obj10L2UsTWF0aC5hYnMoZSkqTWF0aC5zcXJ0KDErbipuKSk6MH1jbGFzcyBjdnR7Y29uc3RydWN0b3IodCl7bGV0IGUsbixvLGksYT0odD1ydnQuY2hlY2tNYXRyaXgodCkpLmNsb25lKCkscj10LnJvd3Mscz10LmNvbHVtbnMsbD1uZXcgRmxvYXQ2NEFycmF5KHMpO2ZvcihvPTA7bzxzO28rKyl7bGV0IHQ9MDtmb3IoZT1vO2U8cjtlKyspdD1sdnQodCxhLmdldChlLG8pKTtpZigwIT09dCl7Zm9yKGEuZ2V0KG8sbyk8MCYmKHQ9LXQpLGU9bztlPHI7ZSsrKWEuc2V0KGUsbyxhLmdldChlLG8pL3QpO2ZvcihhLnNldChvLG8sYS5nZXQobyxvKSsxKSxuPW8rMTtuPHM7bisrKXtmb3IoaT0wLGU9bztlPHI7ZSsrKWkrPWEuZ2V0KGUsbykqYS5nZXQoZSxuKTtmb3IoaT0taS9hLmdldChvLG8pLGU9bztlPHI7ZSsrKWEuc2V0KGUsbixhLmdldChlLG4pK2kqYS5nZXQoZSxvKSl9fWxbb109LXR9dGhpcy5RUj1hLHRoaXMuUmRpYWc9bH1zb2x2ZSh0KXt0PWl2dC5jaGVja01hdHJpeCh0KTtsZXQgZT10aGlzLlFSLG49ZS5yb3dzO2lmKHQucm93cyE9PW4pdGhyb3cgbmV3IEVycm9yKCJNYXRyaXggcm93IGRpbWVuc2lvbnMgbXVzdCBhZ3JlZSIpO2lmKCF0aGlzLmlzRnVsbFJhbmsoKSl0aHJvdyBuZXcgRXJyb3IoIk1hdHJpeCBpcyByYW5rIGRlZmljaWVudCIpO2xldCBvLGksYSxyLHM9dC5jb2x1bW5zLGw9dC5jbG9uZSgpLGM9ZS5jb2x1bW5zO2ZvcihhPTA7YTxjO2ErKylmb3IoaT0wO2k8cztpKyspe2ZvcihyPTAsbz1hO288bjtvKyspcis9ZS5nZXQobyxhKSpsLmdldChvLGkpO2ZvcihyPS1yL2UuZ2V0KGEsYSksbz1hO288bjtvKyspbC5zZXQobyxpLGwuZ2V0KG8saSkrciplLmdldChvLGEpKX1mb3IoYT1jLTE7YT49MDthLS0pe2ZvcihpPTA7aTxzO2krKylsLnNldChhLGksbC5nZXQoYSxpKS90aGlzLlJkaWFnW2FdKTtmb3Iobz0wO288YTtvKyspZm9yKGk9MDtpPHM7aSsrKWwuc2V0KG8saSxsLmdldChvLGkpLWwuZ2V0KGEsaSkqZS5nZXQobyxhKSl9cmV0dXJuIGwuc3ViTWF0cml4KDAsYy0xLDAscy0xKX1pc0Z1bGxSYW5rKCl7bGV0IHQ9dGhpcy5RUi5jb2x1bW5zO2ZvcihsZXQgZT0wO2U8dDtlKyspaWYoMD09PXRoaXMuUmRpYWdbZV0pcmV0dXJuITE7cmV0dXJuITB9Z2V0IHVwcGVyVHJpYW5ndWxhck1hdHJpeCgpe2xldCB0LGUsbj10aGlzLlFSLG89bi5jb2x1bW5zLGk9bmV3IGl2dChvLG8pO2Zvcih0PTA7dDxvO3QrKylmb3IoZT0wO2U8bztlKyspaS5zZXQodCxlLHQ8ZT9uLmdldCh0LGUpOnQ9PT1lP3RoaXMuUmRpYWdbdF06MCk7cmV0dXJuIGl9Z2V0IG9ydGhvZ29uYWxNYXRyaXgoKXtsZXQgdCxlLG4sbyxpPXRoaXMuUVIsYT1pLnJvd3Mscj1pLmNvbHVtbnMscz1uZXcgaXZ0KGEscik7Zm9yKG49ci0xO24+PTA7bi0tKXtmb3IodD0wO3Q8YTt0Kyspcy5zZXQodCxuLDApO2ZvcihzLnNldChuLG4sMSksZT1uO2U8cjtlKyspaWYoMCE9PWkuZ2V0KG4sbikpe2ZvcihvPTAsdD1uO3Q8YTt0Kyspbys9aS5nZXQodCxuKSpzLmdldCh0LGUpO2ZvcihvPS1vL2kuZ2V0KG4sbiksdD1uO3Q8YTt0Kyspcy5zZXQodCxlLHMuZ2V0KHQsZSkrbyppLmdldCh0LG4pKX19cmV0dXJuIHN9fWNsYXNzIGR2dHtjb25zdHJ1Y3Rvcih0LGU9e30pe2lmKCh0PXJ2dC5jaGVja01hdHJpeCh0KSkuaXNFbXB0eSgpKXRocm93IG5ldyBFcnJvcigiTWF0cml4IG11c3QgYmUgbm9uLWVtcHR5Iik7bGV0IG49dC5yb3dzLG89dC5jb2x1bW5zO2NvbnN0e2NvbXB1dGVMZWZ0U2luZ3VsYXJWZWN0b3JzOmk9ITAsY29tcHV0ZVJpZ2h0U2luZ3VsYXJWZWN0b3JzOmE9ITAsYXV0b1RyYW5zcG9zZTpyPSExfT1lO2xldCBzLGw9Qm9vbGVhbihpKSxjPUJvb2xlYW4oYSksZD0hMTtpZihuPG8paWYocil7cz10LnRyYW5zcG9zZSgpLG49cy5yb3dzLG89cy5jb2x1bW5zLGQ9ITA7bGV0IGU9bDtsPWMsYz1lfWVsc2Ugcz10LmNsb25lKCksY29uc29sZS53YXJuKCJDb21wdXRpbmcgU1ZEIG9uIGEgbWF0cml4IHdpdGggbW9yZSBjb2x1bW5zIHRoYW4gcm93cy4gQ29uc2lkZXIgZW5hYmxpbmcgYXV0b1RyYW5zcG9zZSIpO2Vsc2Ugcz10LmNsb25lKCk7bGV0IHA9TWF0aC5taW4obixvKSxtPU1hdGgubWluKG4rMSxvKSx1PW5ldyBGbG9hdDY0QXJyYXkobSksZj1uZXcgaXZ0KG4scCksZz1uZXcgaXZ0KG8sbyksaD1uZXcgRmxvYXQ2NEFycmF5KG8pLGI9bmV3IEZsb2F0NjRBcnJheShuKSx5PW5ldyBGbG9hdDY0QXJyYXkobSk7Zm9yKGxldCB0PTA7dDxtO3QrKyl5W3RdPXQ7bGV0IF89TWF0aC5taW4obi0xLG8pLEM9TWF0aC5tYXgoMCxNYXRoLm1pbihvLTIsbikpLE09TWF0aC5tYXgoXyxDKTtmb3IobGV0IHQ9MDt0PE07dCsrKXtpZih0PF8pe3VbdF09MDtmb3IobGV0IGU9dDtlPG47ZSsrKXVbdF09bHZ0KHVbdF0scy5nZXQoZSx0KSk7aWYoMCE9PXVbdF0pe3MuZ2V0KHQsdCk8MCYmKHVbdF09LXVbdF0pO2ZvcihsZXQgZT10O2U8bjtlKyspcy5zZXQoZSx0LHMuZ2V0KGUsdCkvdVt0XSk7cy5zZXQodCx0LHMuZ2V0KHQsdCkrMSl9dVt0XT0tdVt0XX1mb3IobGV0IGU9dCsxO2U8bztlKyspe2lmKHQ8XyYmMCE9PXVbdF0pe2xldCBvPTA7Zm9yKGxldCBpPXQ7aTxuO2krKylvKz1zLmdldChpLHQpKnMuZ2V0KGksZSk7bz0tby9zLmdldCh0LHQpO2ZvcihsZXQgaT10O2k8bjtpKyspcy5zZXQoaSxlLHMuZ2V0KGksZSkrbypzLmdldChpLHQpKX1oW2VdPXMuZ2V0KHQsZSl9aWYobCYmdDxfKWZvcihsZXQgZT10O2U8bjtlKyspZi5zZXQoZSx0LHMuZ2V0KGUsdCkpO2lmKHQ8Qyl7aFt0XT0wO2ZvcihsZXQgZT10KzE7ZTxvO2UrKyloW3RdPWx2dChoW3RdLGhbZV0pO2lmKDAhPT1oW3RdKXtoW3QrMV08MCYmKGhbdF09MC1oW3RdKTtmb3IobGV0IGU9dCsxO2U8bztlKyspaFtlXS89aFt0XTtoW3QrMV0rPTF9aWYoaFt0XT0taFt0XSx0KzE8biYmMCE9PWhbdF0pe2ZvcihsZXQgZT10KzE7ZTxuO2UrKyliW2VdPTA7Zm9yKGxldCBlPXQrMTtlPG47ZSsrKWZvcihsZXQgbj10KzE7bjxvO24rKyliW2VdKz1oW25dKnMuZ2V0KGUsbik7Zm9yKGxldCBlPXQrMTtlPG87ZSsrKXtsZXQgbz0taFtlXS9oW3QrMV07Zm9yKGxldCBpPXQrMTtpPG47aSsrKXMuc2V0KGksZSxzLmdldChpLGUpK28qYltpXSl9fWlmKGMpZm9yKGxldCBlPXQrMTtlPG87ZSsrKWcuc2V0KGUsdCxoW2VdKX19bGV0IHY9TWF0aC5taW4obyxuKzEpO2lmKF88byYmKHVbX109cy5nZXQoXyxfKSksbjx2JiYodVt2LTFdPTApLEMrMTx2JiYoaFtDXT1zLmdldChDLHYtMSkpLGhbdi0xXT0wLGwpe2ZvcihsZXQgdD1fO3Q8cDt0Kyspe2ZvcihsZXQgZT0wO2U8bjtlKyspZi5zZXQoZSx0LDApO2Yuc2V0KHQsdCwxKX1mb3IobGV0IHQ9Xy0xO3Q+PTA7dC0tKWlmKDAhPT11W3RdKXtmb3IobGV0IGU9dCsxO2U8cDtlKyspe2xldCBvPTA7Zm9yKGxldCBpPXQ7aTxuO2krKylvKz1mLmdldChpLHQpKmYuZ2V0KGksZSk7bz0tby9mLmdldCh0LHQpO2ZvcihsZXQgaT10O2k8bjtpKyspZi5zZXQoaSxlLGYuZ2V0KGksZSkrbypmLmdldChpLHQpKX1mb3IobGV0IGU9dDtlPG47ZSsrKWYuc2V0KGUsdCwtZi5nZXQoZSx0KSk7Zi5zZXQodCx0LDErZi5nZXQodCx0KSk7Zm9yKGxldCBlPTA7ZTx0LTE7ZSsrKWYuc2V0KGUsdCwwKX1lbHNle2ZvcihsZXQgZT0wO2U8bjtlKyspZi5zZXQoZSx0LDApO2Yuc2V0KHQsdCwxKX19aWYoYylmb3IobGV0IHQ9by0xO3Q+PTA7dC0tKXtpZih0PEMmJjAhPT1oW3RdKWZvcihsZXQgZT10KzE7ZTxvO2UrKyl7bGV0IG49MDtmb3IobGV0IGk9dCsxO2k8bztpKyspbis9Zy5nZXQoaSx0KSpnLmdldChpLGUpO249LW4vZy5nZXQodCsxLHQpO2ZvcihsZXQgaT10KzE7aTxvO2krKylnLnNldChpLGUsZy5nZXQoaSxlKStuKmcuZ2V0KGksdCkpfWZvcihsZXQgZT0wO2U8bztlKyspZy5zZXQoZSx0LDApO2cuc2V0KHQsdCwxKX1sZXQgeD12LTEsTz1OdW1iZXIuRVBTSUxPTjtmb3IoO3Y+MDspe2xldCB0LGU7Zm9yKHQ9di0yO3Q+PS0xJiYtMSE9PXQ7dC0tKXtjb25zdCBlPU51bWJlci5NSU5fVkFMVUUrTypNYXRoLmFicyh1W3RdK01hdGguYWJzKHVbdCsxXSkpO2lmKE1hdGguYWJzKGhbdF0pPD1lfHxOdW1iZXIuaXNOYU4oaFt0XSkpe2hbdF09MDticmVha319aWYodD09PXYtMillPTQ7ZWxzZXtsZXQgbjtmb3Iobj12LTE7bj49dCYmbiE9PXQ7bi0tKXtsZXQgZT0obiE9PXY/TWF0aC5hYnMoaFtuXSk6MCkrKG4hPT10KzE/TWF0aC5hYnMoaFtuLTFdKTowKTtpZihNYXRoLmFicyh1W25dKTw9TyplKXt1W25dPTA7YnJlYWt9fW49PT10P2U9MzpuPT09di0xP2U9MTooZT0yLHQ9bil9c3dpdGNoKHQrKyxlKXtjYXNlIDE6e2xldCBlPWhbdi0yXTtoW3YtMl09MDtmb3IobGV0IG49di0yO24+PXQ7bi0tKXtsZXQgaT1sdnQodVtuXSxlKSxhPXVbbl0vaSxyPWUvaTtpZih1W25dPWksbiE9PXQmJihlPS1yKmhbbi0xXSxoW24tMV09YSpoW24tMV0pLGMpZm9yKGxldCB0PTA7dDxvO3QrKylpPWEqZy5nZXQodCxuKStyKmcuZ2V0KHQsdi0xKSxnLnNldCh0LHYtMSwtcipnLmdldCh0LG4pK2EqZy5nZXQodCx2LTEpKSxnLnNldCh0LG4saSl9YnJlYWt9Y2FzZSAyOntsZXQgZT1oW3QtMV07aFt0LTFdPTA7Zm9yKGxldCBvPXQ7bzx2O28rKyl7bGV0IGk9bHZ0KHVbb10sZSksYT11W29dL2kscj1lL2k7aWYodVtvXT1pLGU9LXIqaFtvXSxoW29dPWEqaFtvXSxsKWZvcihsZXQgZT0wO2U8bjtlKyspaT1hKmYuZ2V0KGUsbykrcipmLmdldChlLHQtMSksZi5zZXQoZSx0LTEsLXIqZi5nZXQoZSxvKSthKmYuZ2V0KGUsdC0xKSksZi5zZXQoZSxvLGkpfWJyZWFrfWNhc2UgMzp7Y29uc3QgZT1NYXRoLm1heChNYXRoLmFicyh1W3YtMV0pLE1hdGguYWJzKHVbdi0yXSksTWF0aC5hYnMoaFt2LTJdKSxNYXRoLmFicyh1W3RdKSxNYXRoLmFicyhoW3RdKSksaT11W3YtMV0vZSxhPXVbdi0yXS9lLHI9aFt2LTJdL2Uscz11W3RdL2UsZD1oW3RdL2UscD0oKGEraSkqKGEtaSkrcipyKS8yLG09aSpyKihpKnIpO2xldCBiPTA7MD09PXAmJjA9PT1tfHwoYj1wPDA/MC1NYXRoLnNxcnQocCpwK20pOk1hdGguc3FydChwKnArbSksYj1tLyhwK2IpKTtsZXQgeT0ocytpKSoocy1pKStiLF89cypkO2ZvcihsZXQgZT10O2U8di0xO2UrKyl7bGV0IGk9bHZ0KHksXyk7MD09PWkmJihpPU51bWJlci5NSU5fVkFMVUUpO2xldCBhPXkvaSxyPV8vaTtpZihlIT09dCYmKGhbZS0xXT1pKSx5PWEqdVtlXStyKmhbZV0saFtlXT1hKmhbZV0tcip1W2VdLF89cip1W2UrMV0sdVtlKzFdPWEqdVtlKzFdLGMpZm9yKGxldCB0PTA7dDxvO3QrKylpPWEqZy5nZXQodCxlKStyKmcuZ2V0KHQsZSsxKSxnLnNldCh0LGUrMSwtcipnLmdldCh0LGUpK2EqZy5nZXQodCxlKzEpKSxnLnNldCh0LGUsaSk7aWYoaT1sdnQoeSxfKSwwPT09aSYmKGk9TnVtYmVyLk1JTl9WQUxVRSksYT15L2kscj1fL2ksdVtlXT1pLHk9YSpoW2VdK3IqdVtlKzFdLHVbZSsxXT0tcipoW2VdK2EqdVtlKzFdLF89cipoW2UrMV0saFtlKzFdPWEqaFtlKzFdLGwmJmU8bi0xKWZvcihsZXQgdD0wO3Q8bjt0KyspaT1hKmYuZ2V0KHQsZSkrcipmLmdldCh0LGUrMSksZi5zZXQodCxlKzEsLXIqZi5nZXQodCxlKSthKmYuZ2V0KHQsZSsxKSksZi5zZXQodCxlLGkpfWhbdi0yXT15O2JyZWFrfWNhc2UgNDppZih1W3RdPD0wJiYodVt0XT11W3RdPDA/LXVbdF06MCxjKSlmb3IobGV0IGU9MDtlPD14O2UrKylnLnNldChlLHQsLWcuZ2V0KGUsdCkpO2Zvcig7dDx4JiYhKHVbdF0+PXVbdCsxXSk7KXtsZXQgZT11W3RdO2lmKHVbdF09dVt0KzFdLHVbdCsxXT1lLGMmJnQ8by0xKWZvcihsZXQgbj0wO248bztuKyspZT1nLmdldChuLHQrMSksZy5zZXQobix0KzEsZy5nZXQobix0KSksZy5zZXQobix0LGUpO2lmKGwmJnQ8bi0xKWZvcihsZXQgbz0wO288bjtvKyspZT1mLmdldChvLHQrMSksZi5zZXQobyx0KzEsZi5nZXQobyx0KSksZi5zZXQobyx0LGUpO3QrK312LS19fWlmKGQpe2xldCB0PWc7Zz1mLGY9dH10aGlzLm09bix0aGlzLm49byx0aGlzLnM9dSx0aGlzLlU9Zix0aGlzLlY9Z31zb2x2ZSh0KXtsZXQgZT10LG49dGhpcy50aHJlc2hvbGQsbz10aGlzLnMubGVuZ3RoLGk9aXZ0Lnplcm9zKG8sbyk7Zm9yKGxldCB0PTA7dDxvO3QrKylNYXRoLmFicyh0aGlzLnNbdF0pPD1uP2kuc2V0KHQsdCwwKTppLnNldCh0LHQsMS90aGlzLnNbdF0pO2xldCBhPXRoaXMuVSxyPXRoaXMucmlnaHRTaW5ndWxhclZlY3RvcnMscz1yLm1tdWwoaSksbD1yLnJvd3MsYz1hLnJvd3MsZD1pdnQuemVyb3MobCxjKTtmb3IobGV0IHQ9MDt0PGw7dCsrKWZvcihsZXQgZT0wO2U8YztlKyspe2xldCBuPTA7Zm9yKGxldCBpPTA7aTxvO2krKyluKz1zLmdldCh0LGkpKmEuZ2V0KGUsaSk7ZC5zZXQodCxlLG4pfXJldHVybiBkLm1tdWwoZSl9c29sdmVGb3JEaWFnb25hbCh0KXtyZXR1cm4gdGhpcy5zb2x2ZShpdnQuZGlhZyh0KSl9aW52ZXJzZSgpe2xldCB0PXRoaXMuVixlPXRoaXMudGhyZXNob2xkLG49dC5yb3dzLG89dC5jb2x1bW5zLGk9bmV3IGl2dChuLHRoaXMucy5sZW5ndGgpO2ZvcihsZXQgYT0wO2E8bjthKyspZm9yKGxldCBuPTA7bjxvO24rKylNYXRoLmFicyh0aGlzLnNbbl0pPmUmJmkuc2V0KGEsbix0LmdldChhLG4pL3RoaXMuc1tuXSk7bGV0IGE9dGhpcy5VLHI9YS5yb3dzLHM9YS5jb2x1bW5zLGw9bmV3IGl2dChuLHIpO2ZvcihsZXQgdD0wO3Q8bjt0KyspZm9yKGxldCBlPTA7ZTxyO2UrKyl7bGV0IG49MDtmb3IobGV0IG89MDtvPHM7bysrKW4rPWkuZ2V0KHQsbykqYS5nZXQoZSxvKTtsLnNldCh0LGUsbil9cmV0dXJuIGx9Z2V0IGNvbmRpdGlvbigpe3JldHVybiB0aGlzLnNbMF0vdGhpcy5zW01hdGgubWluKHRoaXMubSx0aGlzLm4pLTFdfWdldCBub3JtMigpe3JldHVybiB0aGlzLnNbMF19Z2V0IHJhbmsoKXtsZXQgdD1NYXRoLm1heCh0aGlzLm0sdGhpcy5uKSp0aGlzLnNbMF0qTnVtYmVyLkVQU0lMT04sZT0wLG49dGhpcy5zO2ZvcihsZXQgbz0wLGk9bi5sZW5ndGg7bzxpO28rKyluW29dPnQmJmUrKztyZXR1cm4gZX1nZXQgZGlhZ29uYWwoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnMpfWdldCB0aHJlc2hvbGQoKXtyZXR1cm4gTnVtYmVyLkVQU0lMT04vMipNYXRoLm1heCh0aGlzLm0sdGhpcy5uKSp0aGlzLnNbMF19Z2V0IGxlZnRTaW5ndWxhclZlY3RvcnMoKXtyZXR1cm4gdGhpcy5VfWdldCByaWdodFNpbmd1bGFyVmVjdG9ycygpe3JldHVybiB0aGlzLlZ9Z2V0IGRpYWdvbmFsTWF0cml4KCl7cmV0dXJuIGl2dC5kaWFnKHRoaXMucyl9fWZ1bmN0aW9uIHB2dCh0LGUsbixvLGkpe2xldCBhPWl2dC5leWUoZS5sZW5ndGgsZS5sZW5ndGgsbipvKm8pO2NvbnN0IHI9aShlKTtsZXQgcz1uZXcgRmxvYXQ2NEFycmF5KHQueC5sZW5ndGgpO2ZvcihsZXQgZT0wO2U8dC54Lmxlbmd0aDtlKyspc1tlXT1yKHQueFtlXSk7bGV0IGw9KGZ1bmN0aW9uIGModCxlLG4sbyxpKXtjb25zdCBhPW4ubGVuZ3RoLHI9dC54Lmxlbmd0aDtsZXQgcz1uZXcgQXJyYXkoYSk7Zm9yKGxldCBsPTA7bDxhO2wrKyl7c1tsXT1uZXcgQXJyYXkocik7bGV0IGE9bi5zbGljZSgpO2FbbF0rPW87bGV0IGM9aShhKTtmb3IobGV0IG49MDtuPHI7bisrKXNbbF1bbl09ZVtuXS1jKHQueFtuXSl9cmV0dXJuIG5ldyBpdnQocyl9KSh0LHMsZSxvLGkpLGQ9KGZ1bmN0aW9uIHAodCxlKXtjb25zdCBuPXQueC5sZW5ndGg7bGV0IG89bmV3IEFycmF5KG4pO2ZvcihsZXQgaT0wO2k8bjtpKyspb1tpXT1bdC55W2ldLWVbaV1dO3JldHVybiBuZXcgaXZ0KG8pfSkodCxzKSxtPShmdW5jdGlvbiB1KHQsZT0hMSl7cmV0dXJuIHQ9cnZ0LmNoZWNrTWF0cml4KHQpLGU/bmV3IGR2dCh0KS5pbnZlcnNlKCk6KGZ1bmN0aW9uIG4odCxlLG89ITEpe3JldHVybiB0PXJ2dC5jaGVja01hdHJpeCh0KSxlPXJ2dC5jaGVja01hdHJpeChlKSxvP25ldyBkdnQodCkuc29sdmUoZSk6dC5pc1NxdWFyZSgpP25ldyBzdnQodCkuc29sdmUoZSk6bmV3IGN2dCh0KS5zb2x2ZShlKX0pKHQsaXZ0LmV5ZSh0LnJvd3MpKX0pKGEuYWRkKGwubW11bChsLnRyYW5zcG9zZSgpKSkpO3JldHVybihlPShlPW5ldyBpdnQoW2VdKSkuc3ViKG0ubW11bChsKS5tbXVsKGQpLm11bChvKS50cmFuc3Bvc2UoKSkpLnRvMURBcnJheSgpfXZhciBtdnQ9JHYoT2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsZGVmYXVsdDpmdW5jdGlvbiB1dnQodCxlLG49e30pe2xldHttYXhJdGVyYXRpb25zOm89MTAwLGdyYWRpZW50RGlmZmVyZW5jZTppPS4xLGRhbXBpbmc6YT0wLGVycm9yVG9sZXJhbmNlOnI9LjAxLG1pblZhbHVlczpzLG1heFZhbHVlczpsLGluaXRpYWxWYWx1ZXM6Y309bjtpZihhPD0wKXRocm93IG5ldyBFcnJvcigiVGhlIGRhbXBpbmcgb3B0aW9uIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTtpZighdC54fHwhdC55KXRocm93IG5ldyBFcnJvcigiVGhlIGRhdGEgcGFyYW1ldGVyIG11c3QgaGF2ZSB4IGFuZCB5IGVsZW1lbnRzIik7aWYoIU5NdCh0LngpfHx0LngubGVuZ3RoPDJ8fCFOTXQodC55KXx8dC55Lmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcigiVGhlIGRhdGEgcGFyYW1ldGVyIGVsZW1lbnRzIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBtb3JlIHRoYW4gMiBwb2ludHMiKTtpZih0LngubGVuZ3RoIT09dC55Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBkYXRhIHBhcmFtZXRlciBlbGVtZW50cyBtdXN0IGhhdmUgdGhlIHNhbWUgc2l6ZSIpO2xldCBkPWN8fG5ldyBBcnJheShlLmxlbmd0aCkuZmlsbCgxKSxwPWQubGVuZ3RoO2lmKGw9bHx8bmV3IEFycmF5KHApLmZpbGwoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLHM9c3x8bmV3IEFycmF5KHApLmZpbGwoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpLGwubGVuZ3RoIT09cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJtaW5WYWx1ZXMgYW5kIG1heFZhbHVlcyBtdXN0IGJlIHRoZSBzYW1lIHNpemUiKTtpZighTk10KGQpKXRocm93IG5ldyBFcnJvcigiaW5pdGlhbFZhbHVlcyBtdXN0IGJlIGFuIGFycmF5Iik7bGV0IG0sdT16TXQodCxkLGUpLGY9dTw9cjtmb3IobT0wO208byYmIWY7bSsrKXtkPXB2dCh0LGQsYSxpLGUpO2ZvcihsZXQgdD0wO3Q8cDt0KyspZFt0XT1NYXRoLm1pbihNYXRoLm1heChzW3RdLGRbdF0pLGxbdF0pO2lmKHU9ek10KHQsZCxlKSxpc05hTih1KSlicmVhaztmPXU8PXJ9cmV0dXJue3BhcmFtZXRlclZhbHVlczpkLHBhcmFtZXRlckVycm9yOnUsaXRlcmF0aW9uczptfX19KSksZnZ0PVF2JiZRdi5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihpLGEpe2Z1bmN0aW9uIHIodCl7dHJ5e2woby5uZXh0KHQpKX1jYXRjaCh0KXthKHQpfX1mdW5jdGlvbiBzKHQpe3RyeXtsKG8udGhyb3codCkpfWNhdGNoKHQpe2EodCl9fWZ1bmN0aW9uIGwodCl7dC5kb25lP2kodC52YWx1ZSk6bmV3IG4oKGZ1bmN0aW9uKGUpe2UodC52YWx1ZSl9KSkudGhlbihyLHMpfWwoKG89by5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pKX0sZ3Z0PVF2JiZRdi5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24odCxlKXt2YXIgbixvLGksYSxyPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmlbMF0pdGhyb3cgaVsxXTtyZXR1cm4gaVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBhPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksYTtmdW5jdGlvbiBzKGEpe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4oZnVuY3Rpb24gbChhKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3I7KXRyeXtpZihuPTEsbyYmKGk9MiZhWzBdP28ucmV0dXJuOmFbMF0/by50aHJvd3x8KChpPW8ucmV0dXJuKSYmaS5jYWxsKG8pLDApOm8ubmV4dCkmJiEoaT1pLmNhbGwobyxhWzFdKSkuZG9uZSlyZXR1cm4gaTtzd2l0Y2gobz0wLGkmJihhPVsyJmFbMF0saS52YWx1ZV0pLGFbMF0pe2Nhc2UgMDpjYXNlIDE6aT1hO2JyZWFrO2Nhc2UgNDpyZXR1cm4gci5sYWJlbCsrLHt2YWx1ZTphWzFdLGRvbmU6ITF9O2Nhc2UgNTpyLmxhYmVsKyssbz1hWzFdLGE9WzBdO2NvbnRpbnVlO2Nhc2UgNzphPXIub3BzLnBvcCgpLHIudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGk9KGk9ci50cnlzKS5sZW5ndGg+MCYmaVtpLmxlbmd0aC0xXSl8fDYhPT1hWzBdJiYyIT09YVswXSkpe3I9MDtjb250aW51ZX1pZigzPT09YVswXSYmKCFpfHxhWzFdPmlbMF0mJmFbMV08aVszXSkpe3IubGFiZWw9YVsxXTticmVha31pZig2PT09YVswXSYmci5sYWJlbDxpWzFdKXtyLmxhYmVsPWlbMV0saT1hO2JyZWFrfWlmKGkmJnIubGFiZWw8aVsyXSl7ci5sYWJlbD1pWzJdLHIub3BzLnB1c2goYSk7YnJlYWt9aVsyXSYmci5vcHMucG9wKCksci50cnlzLnBvcCgpO2NvbnRpbnVlfWE9ZS5jYWxsKHQscil9Y2F0Y2godCl7YT1bNix0XSxvPTB9ZmluYWxseXtuPWk9MH1pZig1JmFbMF0pdGhyb3cgYVsxXTtyZXR1cm57dmFsdWU6YVswXT9hWzFdOnZvaWQgMCxkb25lOiEwfX0pKFthLHNdKX19fSxodnQ9UXYmJlF2Ll9fcmVhZHx8ZnVuY3Rpb24odCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIHQ7dmFyIG8saSxhPW4uY2FsbCh0KSxyPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1lfHxlLS0gPjApJiYhKG89YS5uZXh0KCkpLmRvbmU7KXIucHVzaChvLnZhbHVlKX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtvJiYhby5kb25lJiYobj1hLnJldHVybikmJm4uY2FsbChhKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIHJ9LGJ2dD1RdiYmUXYuX19zcHJlYWR8fGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQ9dC5jb25jYXQoaHZ0KGFyZ3VtZW50c1tlXSkpO3JldHVybiB0fSx5dnQ9UXYmJlF2Ll9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24odCl7aWYodCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPXt9O2lmKG51bGwhPXQpZm9yKHZhciBuIGluIHQpT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGUuZGVmYXVsdD10LGV9LF92dD1RdiYmUXYuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh1Q3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBDdnQ9eXZ0KGZDdCksTXZ0PXl2dChVQ3QpLHZ2dD15dnQoc010KSx4dnQ9eXZ0KGxNdCksT3Z0PXl2dChnQ3QpLFB2dD1fdnQobXZ0KSx3dnQ9MWUtNSxrdnQ9LjAwMSxTdnQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2b2lkIDA9PT10JiYodD17fSk7dmFyIGU9dGhpczt0aGlzLmxlYXJuaW5nUmF0ZT0xLHRoaXMubG9jYWxDb25uZWN0aXZpdHk9MSx0aGlzLm1pbkRpc3Q9LjEsdGhpcy5uQ29tcG9uZW50cz0yLHRoaXMubkVwb2Nocz0wLHRoaXMubk5laWdoYm9ycz0xNSx0aGlzLm5lZ2F0aXZlU2FtcGxlUmF0ZT01LHRoaXMucmFuZG9tPU1hdGgucmFuZG9tLHRoaXMucmVwdWxzaW9uU3RyZW5ndGg9MSx0aGlzLnNldE9wTWl4UmF0aW89MSx0aGlzLnNwcmVhZD0xLHRoaXMudHJhbnNmb3JtUXVldWVTaXplPTQsdGhpcy50YXJnZXRNZXRyaWM9ImNhdGVnb3JpY2FsIix0aGlzLnRhcmdldFdlaWdodD0uNSx0aGlzLnRhcmdldE5OZWlnaGJvcnM9dGhpcy5uTmVpZ2hib3JzLHRoaXMuZGlzdGFuY2VGbj1EdnQsdGhpcy5pc0luaXRpYWxpemVkPSExLHRoaXMucnBGb3Jlc3Q9W10sdGhpcy5lbWJlZGRpbmc9W10sdGhpcy5vcHRpbWl6YXRpb25TdGF0ZT1uZXcgUnZ0O3ZhciBuPWZ1bmN0aW9uKG4pe3ZvaWQgMCE9PXRbbl0mJihlW25dPXRbbl0pfTtuKCJkaXN0YW5jZUZuIiksbigibGVhcm5pbmdSYXRlIiksbigibG9jYWxDb25uZWN0aXZpdHkiKSxuKCJtaW5EaXN0IiksbigibkNvbXBvbmVudHMiKSxuKCJuRXBvY2hzIiksbigibk5laWdoYm9ycyIpLG4oIm5lZ2F0aXZlU2FtcGxlUmF0ZSIpLG4oInJhbmRvbSIpLG4oInJlcHVsc2lvblN0cmVuZ3RoIiksbigic2V0T3BNaXhSYXRpbyIpLG4oInNwcmVhZCIpLG4oInRyYW5zZm9ybVF1ZXVlU2l6ZSIpfXJldHVybiB0LnByb3RvdHlwZS5maXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUZpdCh0KSx0aGlzLm9wdGltaXplTGF5b3V0KCksdGhpcy5lbWJlZGRpbmd9LHQucHJvdG90eXBlLmZpdEFzeW5jPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPWZ1bmN0aW9uKCl7cmV0dXJuITB9KSxmdnQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3JldHVybiBndnQodGhpcywoZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pbml0aWFsaXplRml0KHQpLFs0LHRoaXMub3B0aW1pemVMYXlvdXRBc3luYyhlKV07Y2FzZSAxOnJldHVybiBuLnNlbnQoKSxbMix0aGlzLmVtYmVkZGluZ119fSkpfSkpfSx0LnByb3RvdHlwZS5zZXRTdXBlcnZpc2VkUHJvamVjdGlvbj1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KSx0aGlzLlk9dCx0aGlzLnRhcmdldE1ldHJpYz1lLnRhcmdldE1ldHJpY3x8dGhpcy50YXJnZXRNZXRyaWMsdGhpcy50YXJnZXRXZWlnaHQ9ZS50YXJnZXRXZWlnaHR8fHRoaXMudGFyZ2V0V2VpZ2h0LHRoaXMudGFyZ2V0Tk5laWdoYm9ycz1lLnRhcmdldE5OZWlnaGJvcnN8fHRoaXMudGFyZ2V0Tk5laWdoYm9yc30sdC5wcm90b3R5cGUuc2V0UHJlY29tcHV0ZWRLTk49ZnVuY3Rpb24odCxlKXt0aGlzLmtubkluZGljZXM9dCx0aGlzLmtubkRpc3RhbmNlcz1lfSx0LnByb3RvdHlwZS5pbml0aWFsaXplRml0PWZ1bmN0aW9uKHQpe2lmKHQubGVuZ3RoPD10aGlzLm5OZWlnaGJvcnMpdGhyb3cgbmV3IEVycm9yKCJOb3QgZW5vdWdoIGRhdGEgcG9pbnRzICgiK3QubGVuZ3RoKyIpIHRvIGNyZWF0ZSBuTmVpZ2hib3JzOiAiK3RoaXMubk5laWdoYm9ycysiLiAgQWRkIG1vcmUgZGF0YSBwb2ludHMgb3IgYWRqdXN0IHRoZSBjb25maWd1cmF0aW9uLiIpO2lmKHRoaXMuWD09PXQmJnRoaXMuaXNJbml0aWFsaXplZClyZXR1cm4gdGhpcy5nZXRORXBvY2hzKCk7aWYodGhpcy5YPXQsIXRoaXMua25uSW5kaWNlcyYmIXRoaXMua25uRGlzdGFuY2VzKXt2YXIgZT10aGlzLm5lYXJlc3ROZWlnaGJvcnModCk7dGhpcy5rbm5JbmRpY2VzPWUua25uSW5kaWNlcyx0aGlzLmtubkRpc3RhbmNlcz1lLmtubkRpc3RhbmNlc310aGlzLmdyYXBoPXRoaXMuZnV6enlTaW1wbGljaWFsU2V0KHQsdGhpcy5uTmVpZ2hib3JzLHRoaXMuc2V0T3BNaXhSYXRpbyksdGhpcy5tYWtlU2VhcmNoRm5zKCksdGhpcy5zZWFyY2hHcmFwaD10aGlzLm1ha2VTZWFyY2hHcmFwaCh0KSx0aGlzLnByb2Nlc3NHcmFwaEZvclN1cGVydmlzZWRQcm9qZWN0aW9uKCk7dmFyIG49dGhpcy5pbml0aWFsaXplU2ltcGxpY2lhbFNldEVtYmVkZGluZygpLG89bi50YWlsLGk9bi5lcG9jaHNQZXJTYW1wbGU7cmV0dXJuIHRoaXMub3B0aW1pemF0aW9uU3RhdGUuaGVhZD1uLmhlYWQsdGhpcy5vcHRpbWl6YXRpb25TdGF0ZS50YWlsPW8sdGhpcy5vcHRpbWl6YXRpb25TdGF0ZS5lcG9jaHNQZXJTYW1wbGU9aSx0aGlzLmluaXRpYWxpemVPcHRpbWl6YXRpb24oKSx0aGlzLnByZXBhcmVGb3JPcHRpbWl6YXRpb25Mb29wKCksdGhpcy5pc0luaXRpYWxpemVkPSEwLHRoaXMuZ2V0TkVwb2NocygpfSx0LnByb3RvdHlwZS5tYWtlU2VhcmNoRm5zPWZ1bmN0aW9uKCl7dmFyIHQ9dnZ0Lm1ha2VJbml0aWFsaXphdGlvbnModGhpcy5kaXN0YW5jZUZuKSxlPXQuaW5pdEZyb21SYW5kb207dGhpcy5pbml0RnJvbVRyZWU9dC5pbml0RnJvbVRyZWUsdGhpcy5pbml0RnJvbVJhbmRvbT1lLHRoaXMuc2VhcmNoPXZ2dC5tYWtlSW5pdGlhbGl6ZWROTlNlYXJjaCh0aGlzLmRpc3RhbmNlRm4pfSx0LnByb3RvdHlwZS5tYWtlU2VhcmNoR3JhcGg9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMua25uSW5kaWNlcyxuPXRoaXMua25uRGlzdGFuY2VzLG89bmV3IE12dC5TcGFyc2VNYXRyaXgoW10sW10sW10sW3QubGVuZ3RoLHQubGVuZ3RoXSksaT0wO2k8ZS5sZW5ndGg7aSsrKWZvcih2YXIgYT1lW2ldLHI9bltpXSxzPTA7czxhLmxlbmd0aDtzKyspe3ZhciBsPXJbc107bD4wJiZvLnNldChpLGFbc10sbCl9dmFyIGM9TXZ0LnRyYW5zcG9zZShvKTtyZXR1cm4gTXZ0Lm1heGltdW0obyxjKX0sdC5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLlg7aWYodm9pZCAwPT09bnx8MD09PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiTm8gZGF0YSBoYXMgYmVlbiBmaXQuIik7dmFyIG89TWF0aC5mbG9vcih0aGlzLm5OZWlnaGJvcnMqdGhpcy50cmFuc2Zvcm1RdWV1ZVNpemUpO289TWF0aC5taW4obi5sZW5ndGgsbyk7dmFyIGk9dnZ0LmluaXRpYWxpemVTZWFyY2godGhpcy5ycEZvcmVzdCxuLHQsbyx0aGlzLmluaXRGcm9tUmFuZG9tLHRoaXMuaW5pdEZyb21UcmVlLHRoaXMucmFuZG9tKSxhPXRoaXMuc2VhcmNoKG4sdGhpcy5zZWFyY2hHcmFwaCxpLHQpLHI9Q3Z0LmRlaGVhcFNvcnQoYSkscz1yLmluZGljZXMsbD1yLndlaWdodHM7cz1zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoMCxlLm5OZWlnaGJvcnMpfSkpLGw9bC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNsaWNlKDAsZS5uTmVpZ2hib3JzKX0pKTt2YXIgYz1NYXRoLm1heCgwLHRoaXMubG9jYWxDb25uZWN0aXZpdHktMSksZD10aGlzLnNtb290aEtOTkRpc3RhbmNlKGwsdGhpcy5uTmVpZ2hib3JzLGMpLHA9dGhpcy5jb21wdXRlTWVtYmVyc2hpcFN0cmVuZ3RocyhzLGwsZC5zaWdtYXMsZC5yaG9zKSxtPW5ldyBNdnQuU3BhcnNlTWF0cml4KHAucm93cyxwLmNvbHMscC52YWxzLFt0Lmxlbmd0aCxuLmxlbmd0aF0pLHU9TXZ0Lm5vcm1hbGl6ZShtLCJsMSIpLGY9TXZ0LmdldENTUih1KSxnPXQubGVuZ3RoLGg9SHZ0KE92dC5yZXNoYXBlMmQoZi5pbmRpY2VzLGcsdGhpcy5uTmVpZ2hib3JzKSxPdnQucmVzaGFwZTJkKGYudmFsdWVzLGcsdGhpcy5uTmVpZ2hib3JzKSx0aGlzLmVtYmVkZGluZyksYj10aGlzLm5FcG9jaHM/dGhpcy5uRXBvY2hzLzM6bS5uUm93czw9MWU0PzEwMDozMCx5PW0uZ2V0VmFsdWVzKCkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBlPnQ/ZTp0fSksMCk7bT1tLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQ8eS9iPzA6dH0pKSxtPU12dC5lbGltaW5hdGVaZXJvcyhtKTt2YXIgXz10aGlzLm1ha2VFcG9jaHNQZXJTYW1wbGUobS5nZXRWYWx1ZXMoKSxiKSxDPW0uZ2V0Um93cygpLE09bS5nZXRDb2xzKCk7cmV0dXJuIHRoaXMuYXNzaWduT3B0aW1pemF0aW9uU3RhdGVQYXJhbWV0ZXJzKHtoZWFkRW1iZWRkaW5nOmgsdGFpbEVtYmVkZGluZzp0aGlzLmVtYmVkZGluZyxoZWFkOkMsdGFpbDpNLGN1cnJlbnRFcG9jaDowLG5FcG9jaHM6YixuVmVydGljZXM6bS5nZXREaW1zKClbMV0sZXBvY2hzUGVyU2FtcGxlOl99KSx0aGlzLnByZXBhcmVGb3JPcHRpbWl6YXRpb25Mb29wKCksdGhpcy5vcHRpbWl6ZUxheW91dCgpfSx0LnByb3RvdHlwZS5wcm9jZXNzR3JhcGhGb3JTdXBlcnZpc2VkUHJvamVjdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuWTtpZih0KXtpZih0Lmxlbmd0aCE9PXRoaXMuWC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJMZW5ndGggb2YgWCBhbmQgeSBtdXN0IGJlIGVxdWFsIik7ImNhdGVnb3JpY2FsIj09PXRoaXMudGFyZ2V0TWV0cmljJiYodGhpcy5ncmFwaD10aGlzLmNhdGVnb3JpY2FsU2ltcGxpY2lhbFNldEludGVyc2VjdGlvbih0aGlzLmdyYXBoLHQsdGhpcy50YXJnZXRXZWlnaHQ8MT8xLygxLXRoaXMudGFyZ2V0V2VpZ2h0KSoyLjU6MWUxMikpfX0sdC5wcm90b3R5cGUuc3RlcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW1pemF0aW9uU3RhdGUuY3VycmVudEVwb2NoO3JldHVybiB0PHRoaXMuZ2V0TkVwb2NocygpJiZ0aGlzLm9wdGltaXplTGF5b3V0U3RlcCh0KSx0aGlzLm9wdGltaXphdGlvblN0YXRlLmN1cnJlbnRFcG9jaH0sdC5wcm90b3R5cGUuZ2V0RW1iZWRkaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1iZWRkaW5nfSx0LnByb3RvdHlwZS5uZWFyZXN0TmVpZ2hib3JzPWZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcy5uTmVpZ2hib3JzLG89dnZ0Lm1ha2VOTkRlc2NlbnQodGhpcy5kaXN0YW5jZUZuLHRoaXMucmFuZG9tKSxpPTUrTWF0aC5mbG9vciguNT09KGU9TWF0aC5wb3codC5sZW5ndGgsLjUpLzIwKT8wOk1hdGgucm91bmQoZSkpLGE9TWF0aC5tYXgoNSxNYXRoLmZsb29yKE1hdGgucm91bmQoKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmxvZyh0KS9NYXRoLmxvZygyKX0pKHQubGVuZ3RoKSkpKTt0aGlzLnJwRm9yZXN0PXh2dC5tYWtlRm9yZXN0KHQsbixpLHRoaXMucmFuZG9tKTt2YXIgcj1vKHQseHZ0Lm1ha2VMZWFmQXJyYXkodGhpcy5ycEZvcmVzdCksbixhKTtyZXR1cm57a25uSW5kaWNlczpyLmluZGljZXMsa25uRGlzdGFuY2VzOnIud2VpZ2h0c319LHQucHJvdG90eXBlLmZ1enp5U2ltcGxpY2lhbFNldD1mdW5jdGlvbih0LGUsbil7dm9pZCAwPT09biYmKG49MSk7dmFyIG89dGhpcyxpPW8ua25uSW5kaWNlcyxhPXZvaWQgMD09PWk/W106aSxyPW8ua25uRGlzdGFuY2VzLHM9dm9pZCAwPT09cj9bXTpyLGw9dGhpcy5zbW9vdGhLTk5EaXN0YW5jZShzLGUsby5sb2NhbENvbm5lY3Rpdml0eSksYz10aGlzLmNvbXB1dGVNZW1iZXJzaGlwU3RyZW5ndGhzKGEscyxsLnNpZ21hcyxsLnJob3MpLGQ9bmV3IE12dC5TcGFyc2VNYXRyaXgoYy5yb3dzLGMuY29scyxjLnZhbHMsW3QubGVuZ3RoLHQubGVuZ3RoXSkscD1NdnQudHJhbnNwb3NlKGQpLG09TXZ0LnBhaXJ3aXNlTXVsdGlwbHkoZCxwKSx1PU12dC5zdWJ0cmFjdChNdnQuYWRkKGQscCksbSksZj1NdnQubXVsdGlwbHlTY2FsYXIodSxuKSxnPU12dC5tdWx0aXBseVNjYWxhcihtLDEtbik7cmV0dXJuIE12dC5hZGQoZixnKX0sdC5wcm90b3R5cGUuY2F0ZWdvcmljYWxTaW1wbGljaWFsU2V0SW50ZXJzZWN0aW9uPWZ1bmN0aW9uKHQsZSxuLG8pe3ZvaWQgMD09PW8mJihvPTEpO3ZhciBpPXp2dCh0LGUsbyxuKTtyZXR1cm4gSXZ0KGk9TXZ0LmVsaW1pbmF0ZVplcm9zKGkpKX0sdC5wcm90b3R5cGUuc21vb3RoS05ORGlzdGFuY2U9ZnVuY3Rpb24odCxlLG4sbyxpKXt2b2lkIDA9PT1uJiYobj0xKSx2b2lkIDA9PT1vJiYobz02NCksdm9pZCAwPT09aSYmKGk9MSk7Zm9yKHZhciBhPU1hdGgubG9nKGUpL01hdGgubG9nKDIpKmkscj1PdnQuemVyb3ModC5sZW5ndGgpLHM9T3Z0Lnplcm9zKHQubGVuZ3RoKSxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciBjPTAsZD0xLzAscD0xLG09dFtsXSx1PW0uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdD4wfSkpO2lmKHUubGVuZ3RoPj1uKXt2YXIgZj1NYXRoLmZsb29yKG4pLGc9bi1mO2Y+MD8ocltsXT11W2YtMV0sZz53dnQmJihyW2xdKz1nKih1W2ZdLXVbZi0xXSkpKTpyW2xdPWcqdVswXX1lbHNlIHUubGVuZ3RoPjAmJihyW2xdPU92dC5tYXgodSkpO2Zvcih2YXIgaD0wO2g8bztoKyspe2Zvcih2YXIgYj0wLHk9MTt5PHRbbF0ubGVuZ3RoO3krKyl7dmFyIF89dFtsXVt5XS1yW2xdO2IrPV8+MD9NYXRoLmV4cCgtXy9wKToxfWlmKE1hdGguYWJzKGItYSk8d3Z0KWJyZWFrO2I+YT9wPShjKyhkPXApKS8yOihjPXAsZD09PTEvMD9wKj0yOnA9KGMrZCkvMil9aWYoc1tsXT1wLHJbbF0+MCl7dmFyIEM9T3Z0Lm1lYW4obSk7c1tsXTxrdnQqQyYmKHNbbF09a3Z0KkMpfWVsc2V7dmFyIE09T3Z0Lm1lYW4odC5tYXAoT3Z0Lm1lYW4pKTtzW2xdPGt2dCpNJiYoc1tsXT1rdnQqTSl9fXJldHVybntzaWdtYXM6cyxyaG9zOnJ9fSx0LnByb3RvdHlwZS5jb21wdXRlTWVtYmVyc2hpcFN0cmVuZ3Rocz1mdW5jdGlvbih0LGUsbixvKXtmb3IodmFyIGk9dC5sZW5ndGgsYT10WzBdLmxlbmd0aCxyPU92dC56ZXJvcyhpKmEpLHM9T3Z0Lnplcm9zKGkqYSksbD1PdnQuemVyb3MoaSphKSxjPTA7YzxpO2MrKylmb3IodmFyIGQ9MDtkPGE7ZCsrKXt2YXIgcD0wOy0xIT09dFtjXVtkXSYmKHA9dFtjXVtkXT09PWM/MDplW2NdW2RdLW9bY108PTA/MTpNYXRoLmV4cCgtKGVbY11bZF0tb1tjXSkvbltjXSkscltjKmErZF09YyxzW2MqYStkXT10W2NdW2RdLGxbYyphK2RdPXApfXJldHVybntyb3dzOnIsY29sczpzLHZhbHM6bH19LHQucHJvdG90eXBlLmluaXRpYWxpemVTaW1wbGljaWFsU2V0RW1iZWRkaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT10aGlzLmdldE5FcG9jaHMoKSxuPXRoaXMubkNvbXBvbmVudHMsbz10aGlzLmdyYXBoLmdldFZhbHVlcygpLGk9MCxhPTA7YTxvLmxlbmd0aDthKyspaTxvW2FdJiYoaT1vW2FdKTt2YXIgcj10aGlzLmdyYXBoLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQ8aS9lPzA6dH0pKTt0aGlzLmVtYmVkZGluZz1PdnQuemVyb3Moci5uUm93cykubWFwKChmdW5jdGlvbigpe3JldHVybiBPdnQuemVyb3MobikubWFwKChmdW5jdGlvbigpe3JldHVybiAyMCpPdnQudGF1UmFuZCh0LnJhbmRvbSktMTB9KSl9KSk7dmFyIHM9W10sbD1bXSxjPVtdLGQ9ci5nZXRBbGwoKTtmb3IoYT0wO2E8ZC5sZW5ndGg7YSsrKXt2YXIgcD1kW2FdO3AudmFsdWUmJihzLnB1c2gocC52YWx1ZSksYy5wdXNoKHAucm93KSxsLnB1c2gocC5jb2wpKX1yZXR1cm57aGVhZDpsLHRhaWw6YyxlcG9jaHNQZXJTYW1wbGU6dGhpcy5tYWtlRXBvY2hzUGVyU2FtcGxlKHMsZSl9fSx0LnByb3RvdHlwZS5tYWtlRXBvY2hzUGVyU2FtcGxlPWZ1bmN0aW9uKHQsZSl7dmFyIG49T3Z0LmZpbGxlZCh0Lmxlbmd0aCwtMSksbz1PdnQubWF4KHQpLGk9dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0L28qZX0pKTtyZXR1cm4gaS5mb3JFYWNoKChmdW5jdGlvbih0LG8pe3Q+MCYmKG5bb109ZS9pW29dKX0pKSxufSx0LnByb3RvdHlwZS5hc3NpZ25PcHRpbWl6YXRpb25TdGF0ZVBhcmFtZXRlcnM9ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLm9wdGltaXphdGlvblN0YXRlLHQpfSx0LnByb3RvdHlwZS5wcmVwYXJlRm9yT3B0aW1pemF0aW9uTG9vcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10LnJlcHVsc2lvblN0cmVuZ3RoLG49dC5sZWFybmluZ1JhdGUsbz10Lm5lZ2F0aXZlU2FtcGxlUmF0ZSxpPXRoaXMub3B0aW1pemF0aW9uU3RhdGUsYT1pLmVwb2Noc1BlclNhbXBsZSxyPWkuaGVhZEVtYmVkZGluZyxzPXJbMF0ubGVuZ3RoLGw9ci5sZW5ndGg9PT1pLnRhaWxFbWJlZGRpbmcubGVuZ3RoLGM9YS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0L299KSksZD1idnQoYykscD1idnQoYSk7dGhpcy5hc3NpZ25PcHRpbWl6YXRpb25TdGF0ZVBhcmFtZXRlcnMoe2Vwb2NoT2ZOZXh0U2FtcGxlOnAsZXBvY2hPZk5leHROZWdhdGl2ZVNhbXBsZTpkLGVwb2Noc1Blck5lZ2F0aXZlU2FtcGxlOmMsbW92ZU90aGVyOmwsaW5pdGlhbEFscGhhOm4sYWxwaGE6bixnYW1tYTplLGRpbTpzfSl9LHQucHJvdG90eXBlLmluaXRpYWxpemVPcHRpbWl6YXRpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVtYmVkZGluZyxlPXRoaXMuZW1iZWRkaW5nLG49dGhpcy5vcHRpbWl6YXRpb25TdGF0ZSxvPW4uaGVhZCxpPW4udGFpbCxhPW4uZXBvY2hzUGVyU2FtcGxlLHI9dGhpcy5nZXRORXBvY2hzKCkscz10aGlzLmdyYXBoLm5Db2xzLGw9TnZ0KHRoaXMuc3ByZWFkLHRoaXMubWluRGlzdCk7dGhpcy5hc3NpZ25PcHRpbWl6YXRpb25TdGF0ZVBhcmFtZXRlcnMoe2hlYWRFbWJlZGRpbmc6dCx0YWlsRW1iZWRkaW5nOmUsaGVhZDpvLHRhaWw6aSxlcG9jaHNQZXJTYW1wbGU6YSxhOmwuYSxiOmwuYixuRXBvY2hzOnIsblZlcnRpY2VzOnN9KX0sdC5wcm90b3R5cGUub3B0aW1pemVMYXlvdXRTdGVwPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLm9wdGltaXphdGlvblN0YXRlLG49ZS5oZWFkLG89ZS50YWlsLGk9ZS5oZWFkRW1iZWRkaW5nLGE9ZS50YWlsRW1iZWRkaW5nLHI9ZS5lcG9jaHNQZXJTYW1wbGUscz1lLmVwb2NoT2ZOZXh0U2FtcGxlLGw9ZS5lcG9jaE9mTmV4dE5lZ2F0aXZlU2FtcGxlLGM9ZS5lcG9jaHNQZXJOZWdhdGl2ZVNhbXBsZSxkPWUubW92ZU90aGVyLHA9ZS5pbml0aWFsQWxwaGEsbT1lLmFscGhhLHU9ZS5nYW1tYSxmPWUuYSxnPWUuYixoPWUuZGltLGI9ZS5uRXBvY2hzLHk9ZS5uVmVydGljZXMsXz0wO188ci5sZW5ndGg7XysrKWlmKCEoc1tfXT50KSl7dmFyIEM9bltfXSxNPWlbQ10sdj1hW29bX11dLHg9VHZ0KE0sdiksTz0wO3g+MCYmKE89LTIqZipnKk1hdGgucG93KHgsZy0xKSxPLz1mKk1hdGgucG93KHgsZykrMSk7Zm9yKHZhciBQPTA7UDxoO1ArKyl7dmFyIHc9QXZ0KE8qKE1bUF0tdltQXSksNCk7TVtQXSs9dyptLGQmJih2W1BdKz0tdyptKX1zW19dKz1yW19dO2Zvcih2YXIgaz1NYXRoLmZsb29yKCh0LWxbX10pL2NbX10pLFM9MDtTPGs7UysrKXt2YXIgRD1PdnQudGF1UmFuZEludCh5LHRoaXMucmFuZG9tKSxFPWFbRF0sUj1UdnQoTSxFKSxBPTA7aWYoUj4wKUE9Mip1KmcsQS89KC4wMDErUikqKGYqTWF0aC5wb3coUixnKSsxKTtlbHNlIGlmKEM9PT1EKWNvbnRpbnVlO2ZvcihQPTA7UDxoO1ArKyl3PTQsQT4wJiYodz1BdnQoQSooTVtQXS1FW1BdKSw0KSksTVtQXSs9dyptfWxbX10rPWsqY1tfXX1yZXR1cm4gZS5hbHBoYT1wKigxLXQvYiksZS5jdXJyZW50RXBvY2grPTEsaX0sdC5wcm90b3R5cGUub3B0aW1pemVMYXlvdXRBc3luYz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB2b2lkIDA9PT10JiYodD1mdW5jdGlvbigpe3JldHVybiEwfSksbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4sbyl7dmFyIGk9ZnVuY3Rpb24oKXtyZXR1cm4gZnZ0KGUsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZSxhLHIscyxsO3JldHVybiBndnQodGhpcywoZnVuY3Rpb24oYyl7dHJ5e2lmKGE9KGU9dGhpcy5vcHRpbWl6YXRpb25TdGF0ZSkubkVwb2Nocyx0aGlzLmVtYmVkZGluZz10aGlzLm9wdGltaXplTGF5b3V0U3RlcChlLmN1cnJlbnRFcG9jaCkscz0hMT09PXQocj10aGlzLm9wdGltaXphdGlvblN0YXRlLmN1cnJlbnRFcG9jaCksbD1yPT09YSxzfHxsKXJldHVyblsyLG4obCldO3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGkoKX0pLDApfWNhdGNoKHQpe28odCl9cmV0dXJuWzJdfSkpfSkpfTtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBpKCl9KSwwKX0pKX0sdC5wcm90b3R5cGUub3B0aW1pemVMYXlvdXQ9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0pO2Zvcih2YXIgZT0hMSxuPVtdOyFlOyl7dmFyIG89dGhpcy5vcHRpbWl6YXRpb25TdGF0ZSxpPW8ubkVwb2NocztuPXRoaXMub3B0aW1pemVMYXlvdXRTdGVwKG8uY3VycmVudEVwb2NoKTt2YXIgYT10aGlzLm9wdGltaXphdGlvblN0YXRlLmN1cnJlbnRFcG9jaCxyPSExPT09dChhKTtlPWE9PT1pfHxyfXJldHVybiBufSx0LnByb3RvdHlwZS5nZXRORXBvY2hzPWZ1bmN0aW9uKCl7aWYodGhpcy5uRXBvY2hzPjApcmV0dXJuIHRoaXMubkVwb2Noczt2YXIgdD10aGlzLmdyYXBoLm5Sb3dzO3JldHVybiB0PD0yNTAwPzUwMDp0PD01ZTM/NDAwOnQ8PTc1MDA/MzAwOjIwMH0sdH0pKCk7ZnVuY3Rpb24gRHZ0KHQsZSl7Zm9yKHZhciBuPTAsbz0wO288dC5sZW5ndGg7bysrKW4rPU1hdGgucG93KHRbb10tZVtvXSwyKTtyZXR1cm4gTWF0aC5zcXJ0KG4pfXVDdC5VTUFQPVN2dCx1Q3QuZXVjbGlkZWFuPUR2dCx1Q3QuY29zaW5lPWZ1bmN0aW9uIEV2dCh0LGUpe2Zvcih2YXIgbj0wLG89MCxpPTAsYT0wO2E8dC5sZW5ndGg7YSsrKW4rPXRbYV0qZVthXSxvKz1NYXRoLnBvdyh0W2FdLDIpLGkrPU1hdGgucG93KGVbYV0sMik7cmV0dXJuIDA9PT1vJiYwPT09aT8wOjA9PT1vfHwwPT09aT8xOjEtbi9NYXRoLnNxcnQobyppKX07dmFyIFJ2dD1mdW5jdGlvbiBSdnQoKXt0aGlzLmN1cnJlbnRFcG9jaD0wLHRoaXMuaGVhZEVtYmVkZGluZz1bXSx0aGlzLnRhaWxFbWJlZGRpbmc9W10sdGhpcy5oZWFkPVtdLHRoaXMudGFpbD1bXSx0aGlzLmVwb2Noc1BlclNhbXBsZT1bXSx0aGlzLmVwb2NoT2ZOZXh0U2FtcGxlPVtdLHRoaXMuZXBvY2hPZk5leHROZWdhdGl2ZVNhbXBsZT1bXSx0aGlzLmVwb2Noc1Blck5lZ2F0aXZlU2FtcGxlPVtdLHRoaXMubW92ZU90aGVyPSEwLHRoaXMuaW5pdGlhbEFscGhhPTEsdGhpcy5hbHBoYT0xLHRoaXMuZ2FtbWE9MSx0aGlzLmE9MS41NzY5NDM0NjAzMTEzMDc3LHRoaXMuYj0uODk1MDYwODc3OTEwOTczMyx0aGlzLmRpbT0yLHRoaXMubkVwb2Nocz01MDAsdGhpcy5uVmVydGljZXM9MH07ZnVuY3Rpb24gQXZ0KHQsZSl7cmV0dXJuIHQ+ZT9lOnQ8LWU/LWU6dH1mdW5jdGlvbiBUdnQodCxlKXtmb3IodmFyIG49MCxvPTA7bzx0Lmxlbmd0aDtvKyspbis9TWF0aC5wb3codFtvXS1lW29dLDIpO3JldHVybiBufWZ1bmN0aW9uIE52dCh0LGUpe3ZhciBuPU92dC5saW5lYXIoMCwzKnQsMzAwKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0PGU/MTp0fSkpLG89T3Z0Lnplcm9zKG4ubGVuZ3RoKS5tYXAoKGZ1bmN0aW9uKG8saSl7cmV0dXJuIG5baV0+PWU/TWF0aC5leHAoLShuW2ldLWUpL3QpOm99KSksaT1QdnQuZGVmYXVsdCh7eDpuLHk6b30sKGZ1bmN0aW9uKHQpe3ZhciBlPWh2dCh0LDIpLG49ZVswXSxvPWVbMV07cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiAxLygxK24qTWF0aC5wb3codCwyKm8pKX19KSx7ZGFtcGluZzoxLjUsaW5pdGlhbFZhbHVlczpbLjUsLjVdLGdyYWRpZW50RGlmZmVyZW5jZTouMSxtYXhJdGVyYXRpb25zOjEwMCxlcnJvclRvbGVyYW5jZTouMDF9KS5wYXJhbWV0ZXJWYWx1ZXMsYT1odnQoaSwyKTtyZXR1cm57YTphWzBdLGI6YVsxXX19ZnVuY3Rpb24genZ0KHQsZSxuLG8pe3JldHVybiB2b2lkIDA9PT1uJiYobj0xKSx2b2lkIDA9PT1vJiYobz01KSx0Lm1hcCgoZnVuY3Rpb24odCxpLGEpe3JldHVybi0xPT09ZVtpXXx8LTE9PT1lW2FdP3QqTWF0aC5leHAoLW4pOmVbaV0hPT1lW2FdP3QqTWF0aC5leHAoLW8pOnR9KSl9ZnVuY3Rpb24gSXZ0KHQpe3Q9TXZ0Lm5vcm1hbGl6ZSh0LCJtYXgiKTt2YXIgZT1NdnQudHJhbnNwb3NlKHQpLG49TXZ0LnBhaXJ3aXNlTXVsdGlwbHkoZSx0KTtyZXR1cm4gdD1NdnQuYWRkKHQsTXZ0LnN1YnRyYWN0KGUsbikpLE12dC5lbGltaW5hdGVaZXJvcyh0KX1mdW5jdGlvbiBIdnQodCxlLG4pe2Zvcih2YXIgbz1PdnQuemVyb3ModC5sZW5ndGgpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE92dC56ZXJvcyhuWzBdLmxlbmd0aCl9KSksaT0wO2k8dC5sZW5ndGg7aSsrKWZvcih2YXIgYT0wO2E8dFswXS5sZW5ndGg7YSsrKWZvcih2YXIgcj0wO3I8blswXS5sZW5ndGg7cisrKW9baV1bcl0rPWVbaV1bYV0qblt0W2ldW2FdXVtyXTtyZXR1cm4gb31mdW5jdGlvbiBGdnQodCl7bGV0IGUsbixvPXQubGVuZ3RoO2Zvcig7bzspbj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqby0tKSxlPXRbb10sdFtvXT10W25dLHRbbl09ZTtyZXR1cm4gdH1mdW5jdGlvbiBMdnQodCxlKXtyZXR1cm5gJHtlfS8ke3R9YH11Q3QuZmluZEFCUGFyYW1zPU52dCx1Q3QuZmFzdEludGVyc2VjdGlvbj16dnQsdUN0LnJlc2V0TG9jYWxDb25uZWN0aXZpdHk9SXZ0LHVDdC5pbml0VHJhbnNmb3JtPUh2dCxPYmplY3QuZGVmaW5lUHJvcGVydHkobUN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxtQ3QuVU1BUD11Q3QuVU1BUDtjbGFzcyBCdnR7Y29uc3RydWN0b3IodCl7dGhpcy5odHRwPXQsdGhpcy5odHRwUGF0aFByZWZpeD0iZGF0YS9wbHVnaW4vbnBtaSJ9ZmV0Y2hEYXRhKHQpe3JldHVybiAkdCh0aGlzLmZldGNoQW5ub3RhdGlvbnModCksdGhpcy5mZXRjaE1ldHJpY3ModCksdGhpcy5mZXRjaFZhbHVlcyh0KSx0aGlzLmZldGNoRW1iZWRkaW5ncyh0KSkucGlwZShJdCgoKFt0LGUsbixvXSk9Pntjb25zdCBpPXt9LGE9e307bGV0IHIscz0wO2Zvcihjb25zdCByIG9mIE9iamVjdC5rZXlzKHQpKWZvcihjb25zdCBsIGluIHRbcl0pe2NvbnN0IGM9dFtyXVtsXTtPYmplY3Qua2V5cyhvKS5sZW5ndGgmJiFhW2NdJiZvW3JdW2xdJiZvW3JdW2xdLnNvbWUoKHQ9PjAhPT10KSkmJihhW2NdPXt2ZWN0b3I6b1tyXVtsXSxpbmRleDpzLG5hbWU6Y30scys9MSk7Y29uc3QgZD1uZXcgTWFwO2Zvcihjb25zdCB0IGluIGVbcl0pe2NvbnN0IG89ZVtyXVt0XSxpPW55dChvKTtsZXQgYT1kLmdldChpKTthfHwoYT17blBNSVZhbHVlOm51bGwsY291bnRWYWx1ZTpudWxsLGFubm90YXRpb246YyxtZXRyaWM6aSxydW46cn0sZC5zZXQoaSxhKSksJGJ0KG8pP2EuY291bnRWYWx1ZT1uW3JdW2xdW3RdOnR5dChvKSYmKGEublBNSVZhbHVlPW5bcl1bbF1bdF0pfWlbY109Wy4uLmlbY10/aVtjXTpbXSwuLi5kLnZhbHVlcygpXX1yZXR1cm4gT2JqZWN0LmtleXMoYSkubGVuZ3RoJiYocj0oZnVuY3Rpb24gbCh0KXtjb25zdCBlPU9iamVjdC5rZXlzKHQpO3JldHVybntwb2ludHM6dCxwb2ludEtleXM6ZSxzaHVmZmxlZERhdGFJbmRpY2VzOkZ2dCgobj1lLmxlbmd0aCxbLi4ubmV3IEFycmF5KG4pXS5tYXAoKCh0LGUpPT5lKSkpKSxoYXNVbWFwUnVuOiExfTt2YXIgbn0pKGEpKSx7YW5ub3RhdGlvbkRhdGE6aSxtZXRyaWNzOmUsZW1iZWRkaW5nRGF0YVNldDpyfX0pKSxwZSgodD0+dCBpbnN0YW5jZW9mIHhEJiY0MDA8PXQuc3RhdHVzJiZ0LnN0YXR1czw1MDA/RXQoe2Fubm90YXRpb25EYXRhOnt9LG1ldHJpY3M6e30sZW1iZWRkaW5nRGF0YVNldDp2b2lkIDB9KTpSdCh0KSkpKX1mZXRjaEFubm90YXRpb25zKHQpe3JldHVybiAkdCh0Lm1hcCgodD0+dGhpcy5odHRwLmdldChgL2V4cGVyaW1lbnQvJHt0fS8ke3RoaXMuaHR0cFBhdGhQcmVmaXh9L2Fubm90YXRpb25zYCkucGlwZShJdCgoZT0+KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHQpLm1hcCgoKFt0LG5dKT0+W0x2dCh0LGUpLG5dKSkpfSkoZSx0KSkpKSkpKS5waXBlKEl0KCh0PT57bGV0IGU9e307Zm9yKGNvbnN0IG4gb2YgdCllPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSxuKTtyZXR1cm4gZX0pKSl9ZmV0Y2hNZXRyaWNzKHQpe3JldHVybiAkdCh0Lm1hcCgodD0+dGhpcy5odHRwLmdldChgL2V4cGVyaW1lbnQvJHt0fS8ke3RoaXMuaHR0cFBhdGhQcmVmaXh9L21ldHJpY3NgKS5waXBlKEl0KChlPT4oZnVuY3Rpb24gbih0LGUpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModCkubWFwKCgoW3Qsbl0pPT5bTHZ0KHQsZSksbl0pKSl9KShlLHQpKSkpKSkpLnBpcGUoSXQoKHQ9PntsZXQgZT17fTtmb3IoY29uc3QgbiBvZiB0KWU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLG4pO3JldHVybiBlfSkpKX1mZXRjaFZhbHVlcyh0KXtyZXR1cm4gJHQodC5tYXAoKHQ9PnRoaXMuaHR0cC5nZXQoYC9leHBlcmltZW50LyR7dH0vJHt0aGlzLmh0dHBQYXRoUHJlZml4fS92YWx1ZXNgKS5waXBlKEl0KChlPT4oZnVuY3Rpb24gbih0LGUpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModCkubWFwKCgoW3Qsbl0pPT5bTHZ0KHQsZSksbl0pKSl9KShlLHQpKSkpKSkpLnBpcGUoSXQoKHQ9PntsZXQgZT17fTtmb3IoY29uc3QgbiBvZiB0KWU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLG4pO3JldHVybiBlfSkpKX1mZXRjaEVtYmVkZGluZ3ModCl7cmV0dXJuICR0KHQubWFwKCh0PT50aGlzLmh0dHAuZ2V0KGAvZXhwZXJpbWVudC8ke3R9LyR7dGhpcy5odHRwUGF0aFByZWZpeH0vZW1iZWRkaW5nc2ApLnBpcGUoSXQoKGU9PihmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0KS5tYXAoKChbdCxuXSk9PltMdnQodCxlKSxuXSkpKX0pKGUsdCkpKSkpKSkucGlwZShJdCgodD0+e2xldCBlPXt9O2Zvcihjb25zdCBuIG9mIHQpZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSksbik7cmV0dXJuIGV9KSkpfX1CdnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJ2dCkodnIobEUpKX0sQnZ0Lsm1cHJvdj1Nbih7dG9rZW46QnZ0LGZhY3Rvcnk6QnZ0Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCdnQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmxFfV19KSxudWxsKTtjbGFzcyBWdnR7fVZ2dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VnZ0KX0sVnZ0Lsm1bW9kPWFvKHt0eXBlOlZ2dH0pLFZ2dC7JtWluaj12bih7cHJvdmlkZXJzOltCdnRdLGltcG9ydHM6W1tjRV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWdnQsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltjRV0scHJvdmlkZXJzOltCdnRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVnZ0LHtpbXBvcnRzOltjRV19KTtjbGFzcyBqdnR7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5kYXRhU291cmNlPW4sdGhpcy5sb2FkRGF0YSQ9TWsoKCgpPT5yZSh0aGlzLmxvYWRQbHVnaW5EYXRhKCkpLnBpcGUoSXQoKCgpPT4oe30pKSkpKSx7ZGlzcGF0Y2g6ITF9KX1sb2FkUGx1Z2luRGF0YSgpe3JldHVybiB0aGlzLmFjdGlvbnMkLnBpcGUoRGsoa2J0KSxWZSh0aGlzLnN0b3JlLnNlbGVjdChhYnQpLHRoaXMuc3RvcmUuc2VsZWN0KFRTKSksY2UoKChbLHQsZV0pPT50IT09eUUuTE9BRElORyYmbnVsbCE9PWUpKSxGZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goU2J0KCkpKSksWnQoKChbLCx0XSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaERhdGEodCkucGlwZShGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goRGJ0KHQpKX0pKSxJdCgoKCk9Pnt9KSkscGUoKCgpPT4odGhpcy5zdG9yZS5kaXNwYXRjaChFYnQoKSkscnQpKSkpKSkpfX1qdnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGp2dCkodnIoU2spLHZyKEl3KSx2cihCdnQpKX0sanZ0Lsm1cHJvdj1Nbih7dG9rZW46anZ0LGZhY3Rvcnk6anZ0Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChqdnQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlNrfSx7dHlwZTpJd30se3R5cGU6QnZ0fV19KSxudWxsKTtjbGFzcyBVdnR7fVV2dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VXZ0KX0sVXZ0Lsm1bW9kPWFvKHt0eXBlOlV2dH0pLFV2dC7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W29idF0sZXhwb3J0czpbb2J0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFV2dCx7ZGVjbGFyYXRpb25zOltvYnRdLGV4cG9ydHM6W29idF19KTtjbGFzcyBHdnR7fUd2dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8R3Z0KX0sR3Z0Lsm1bW9kPWFvKHt0eXBlOkd2dH0pLEd2dC7JtWluaj12bih7aW1wb3J0czpbW1dNLEVXLEJZLFkwXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEd2dCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbc3l0LGx5dF0saW1wb3J0czpbV00sRVcsQlksWTBdLGV4cG9ydHM6W2x5dF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhHdnQse2RlY2xhcmF0aW9uczpbc3l0LGx5dF0saW1wb3J0czpbV00sRVcsQlksWTBdLGV4cG9ydHM6W2x5dF19KTtjbGFzcyBXdnR7fVd2dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8V3Z0KX0sV3Z0Lsm1bW9kPWFvKHt0eXBlOld2dH0pLFd2dC7JtWluaj12bih7aW1wb3J0czpbW1dNLGNHLGRHLEVXLEV5dCxWUV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3p5dCxJeXRdLGltcG9ydHM6W1dNLGNHLGRHLEVXLEV5dCxWUV0sZXhwb3J0czpbSXl0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFd2dCx7ZGVjbGFyYXRpb25zOlt6eXQsSXl0XSxpbXBvcnRzOltXTSxjRyxkRyxFVyxFeXQsVlFdLGV4cG9ydHM6W0l5dF19KTtjbGFzcyBZdnR7fVl2dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WXZ0KX0sWXZ0Lsm1bW9kPWFvKHt0eXBlOll2dH0pLFl2dC7JtWluaj12bih7aW1wb3J0czpbW1dNLEV5dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChZdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0h5dF0saW1wb3J0czpbV00sRXl0XSxleHBvcnRzOltIeXRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oWXZ0LHtkZWNsYXJhdGlvbnM6W0h5dF0saW1wb3J0czpbV00sRXl0XSxleHBvcnRzOltIeXRdfSk7Y2xhc3MgcXZ0e31xdnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHF2dCl9LHF2dC7JtW1vZD1hbyh7dHlwZTpxdnR9KSxxdnQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxFeXQsV3Z0LFl2dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChxdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1Z5dCxqeXRdLGltcG9ydHM6W1dNLEV5dCxXdnQsWXZ0XSxleHBvcnRzOltqeXRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8ocXZ0LHtkZWNsYXJhdGlvbnM6W1Z5dCxqeXRdLGltcG9ydHM6W1dNLEV5dCxXdnQsWXZ0XSxleHBvcnRzOltqeXRdfSk7Y2xhc3MgWnZ0e31adnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFp2dCl9LFp2dC7JtW1vZD1hbyh7dHlwZTpadnR9KSxadnQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxFVyxKSF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChadnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3B5dCxteXRdLGltcG9ydHM6W1dNLEVXLEpIXSxleHBvcnRzOltteXRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oWnZ0LHtkZWNsYXJhdGlvbnM6W3B5dCxteXRdLGltcG9ydHM6W1dNLEVXLEpIXSxleHBvcnRzOltteXRdfSk7Y2xhc3MgWHZ0e31YdnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFh2dCl9LFh2dC7JtW1vZD1hbyh7dHlwZTpYdnR9KSxYdnQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxHdnQscXZ0LFp2dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1V5dF0saW1wb3J0czpbV00sR3Z0LHF2dCxadnRdLGV4cG9ydHM6W1V5dF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhYdnQse2RlY2xhcmF0aW9uczpbVXl0XSxpbXBvcnRzOltXTSxHdnQscXZ0LFp2dF0sZXhwb3J0czpbVXl0XX0pO2NsYXNzIEt2dHt9S3Z0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxLdnQpfSxLdnQuybVtb2Q9YW8oe3R5cGU6S3Z0fSksS3Z0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sY0csSkgsRVddXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoS3Z0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltZeXQscXl0XSxpbXBvcnRzOltXTSxjRyxKSCxFV10sZXhwb3J0czpbcXl0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEt2dCx7ZGVjbGFyYXRpb25zOltZeXQscXl0XSxpbXBvcnRzOltXTSxjRyxKSCxFV10sZXhwb3J0czpbcXl0XX0pO2NsYXNzIEp2dHt9SnZ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxKdnQpfSxKdnQuybVtb2Q9YW8oe3R5cGU6SnZ0fSksSnZ0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sY0csRVcsSkgsS3Z0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEp2dCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbS3l0LEp5dF0saW1wb3J0czpbV00sY0csRVcsSkgsS3Z0XSxleHBvcnRzOltKeXRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oSnZ0LHtkZWNsYXJhdGlvbnM6W0t5dCxKeXRdLGltcG9ydHM6W1dNLGNHLEVXLEpILEt2dF0sZXhwb3J0czpbSnl0XX0pO2NsYXNzIFF2dHt9UXZ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxRdnQpfSxRdnQuybVtb2Q9YW8oe3R5cGU6UXZ0fSksUXZ0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sY0csRVcsQlldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUXZ0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltmX3QsZ190XSxpbXBvcnRzOltXTSxjRyxFVyxCWV0sZXhwb3J0czpbZ190XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFF2dCx7ZGVjbGFyYXRpb25zOltmX3QsZ190XSxpbXBvcnRzOltXTSxjRyxFVyxCWV0sZXhwb3J0czpbZ190XX0pO2NsYXNzICR2dHt9JHZ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHwkdnQpfSwkdnQuybVtb2Q9YW8oe3R5cGU6JHZ0fSksJHZ0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sY0csRVcsSkgsbV90LFF2dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCgkdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3lfdCxfX3RdLGltcG9ydHM6W1dNLGNHLEVXLEpILG1fdCxRdnRdLGV4cG9ydHM6W19fdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybygkdnQse2RlY2xhcmF0aW9uczpbeV90LF9fdF0saW1wb3J0czpbV00sY0csRVcsSkgsbV90LFF2dF0sZXhwb3J0czpbX190XX0pO2NsYXNzIHR4dHt9dHh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0eHQpfSx0eHQuybVtb2Q9YW8oe3R5cGU6dHh0fSksdHh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sY0csU1ksRVddXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodHh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltQX3Qsd190XSxpbXBvcnRzOltXTSxjRyxTWSxFV10sZXhwb3J0czpbd190XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHR4dCx7ZGVjbGFyYXRpb25zOltQX3Qsd190XSxpbXBvcnRzOltXTSxjRyxTWSxFV10sZXhwb3J0czpbd190XX0pO2NsYXNzIGV4dHt9ZXh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxleHQpfSxleHQuybVtb2Q9YW8oe3R5cGU6ZXh0fSksZXh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZXh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltNX3RdLGltcG9ydHM6W1dNXSxleHBvcnRzOltNX3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZXh0LHtkZWNsYXJhdGlvbnM6W01fdF0saW1wb3J0czpbV01dLGV4cG9ydHM6W01fdF19KTtjbGFzcyBueHR7fW54dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bnh0KX0sbnh0Lsm1bW9kPWFvKHt0eXBlOm54dH0pLG54dC7JtWluaj12bih7aW1wb3J0czpbW2V4dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChueHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3ZfdF0saW1wb3J0czpbZXh0XSxleHBvcnRzOlt2X3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8obnh0LHtkZWNsYXJhdGlvbnM6W3ZfdF0saW1wb3J0czpbZXh0XSxleHBvcnRzOlt2X3RdfSk7Y2xhc3Mgb3h0e31veHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG94dCl9LG94dC7JtW1vZD1hbyh7dHlwZTpveHR9KSxveHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjRyxTWSxFVyxKSF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChveHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1RfdCxBX3RdLGltcG9ydHM6W1dNLGNHLFNZLEVXLEpIXSxleHBvcnRzOltUX3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8ob3h0LHtkZWNsYXJhdGlvbnM6W1RfdCxBX3RdLGltcG9ydHM6W1dNLGNHLFNZLEVXLEpIXSxleHBvcnRzOltUX3RdfSk7Y2xhc3MgaXh0e31peHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGl4dCl9LGl4dC7JtW1vZD1hbyh7dHlwZTppeHR9KSxpeHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSwkdnQsdHh0LG54dCxfRixveHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoaXh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltJX3QsSF90XSxpbXBvcnRzOltXTSwkdnQsdHh0LG54dCxfRixveHRdLGV4cG9ydHM6W0hfdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhpeHQse2RlY2xhcmF0aW9uczpbSV90LEhfdF0saW1wb3J0czpbV00sJHZ0LHR4dCxueHQsX0Ysb3h0XSxleHBvcnRzOltIX3RdfSk7Y2xhc3MgYXh0e31heHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGF4dCl9LGF4dC7JtW1vZD1hbyh7dHlwZTpheHR9KSxheHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChheHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0xfdCxCX3RdLGltcG9ydHM6W1dNXSxleHBvcnRzOltCX3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oYXh0LHtkZWNsYXJhdGlvbnM6W0xfdCxCX3RdLGltcG9ydHM6W1dNXSxleHBvcnRzOltCX3RdfSk7Y2xhc3Mgcnh0e31yeHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHJ4dCl9LHJ4dC7JtW1vZD1hbyh7dHlwZTpyeHR9KSxyeHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxFVyxKSCxheHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocnh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltHX3QsV190XSxpbXBvcnRzOltXTSxFVyxKSCxheHRdLGV4cG9ydHM6W1dfdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhyeHQse2RlY2xhcmF0aW9uczpbR190LFdfdF0saW1wb3J0czpbV00sRVcsSkgsYXh0XSxleHBvcnRzOltXX3RdfSk7Y2xhc3Mgc3h0e31zeHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHN4dCl9LHN4dC7JtW1vZD1hbyh7dHlwZTpzeHR9KSxzeHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjRyxTWSxFVyxraHQsWHZ0LEpILEp2dCxpeHQscnh0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHN4dCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbSl90LFFfdF0saW1wb3J0czpbV00sY0csU1ksRVcsa2h0LFh2dCxKSCxKdnQsaXh0LHJ4dF0sZXhwb3J0czpbUV90XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHN4dCx7ZGVjbGFyYXRpb25zOltKX3QsUV90XSxpbXBvcnRzOltXTSxjRyxTWSxFVyxraHQsWHZ0LEpILEp2dCxpeHQscnh0XSxleHBvcnRzOltRX3RdfSk7Y2xhc3MgbHh0e31seHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGx4dCl9LGx4dC7JtW1vZD1hbyh7dHlwZTpseHR9KSxseHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjRyxTWSxFVyxraHQsWHZ0LEpILGl4dCxyeHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobHh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltpQ3QsYUN0XSxpbXBvcnRzOltXTSxjRyxTWSxFVyxraHQsWHZ0LEpILGl4dCxyeHRdLGV4cG9ydHM6W2FDdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhseHQse2RlY2xhcmF0aW9uczpbaUN0LGFDdF0saW1wb3J0czpbV00sY0csU1ksRVcsa2h0LFh2dCxKSCxpeHQscnh0XSxleHBvcnRzOlthQ3RdfSk7Y2xhc3MgY3h0e31jeHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGN4dCl9LGN4dC7JtW1vZD1hbyh7dHlwZTpjeHR9KSxjeHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxVdnQsc3h0LGx4dCxWdnQsZGsuZm9yRmVhdHVyZShRaHQsaXl0KSxXay5mb3JGZWF0dXJlKFtqdnRdKSx3cS5mb3JQbHVnaW4oIm5wbWkiLHBDdCldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoY3h0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltkQ3QscEN0XSxpbXBvcnRzOltXTSxVdnQsc3h0LGx4dCxWdnQsZGsuZm9yRmVhdHVyZShRaHQsaXl0KSxXay5mb3JGZWF0dXJlKFtqdnRdKSx3cS5mb3JQbHVnaW4oIm5wbWkiLHBDdCldLGV4cG9ydHM6W3BDdF0sZW50cnlDb21wb25lbnRzOltwQ3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oY3h0LHtkZWNsYXJhdGlvbnM6W2RDdCxwQ3RdLGltcG9ydHM6W1dNLFV2dCxzeHQsbHh0LFZ2dCxjayxHayx3cV0sZXhwb3J0czpbcEN0XX0pO2NsYXNzIGR4dHt9ZHh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkeHQpfSxkeHQuybVjbXA9dG8oe3R5cGU6ZHh0LHNlbGVjdG9yczpbWyJ0ZXh0LWRhc2hib2FyZCJdXSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZrdSgwLCIgVGhpcyBpcyB0aGUgdGV4dCBkYXNoYm9hcmQgIil9LGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZHh0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRleHQtZGFzaGJvYXJkIix0ZW1wbGF0ZToiIFRoaXMgaXMgdGhlIHRleHQgZGFzaGJvYXJkICIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCxudWxsKTtjbGFzcyBweHR7fXB4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cHh0KX0scHh0Lsm1bW9kPWFvKHt0eXBlOnB4dH0pLHB4dC7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChweHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2R4dF0sZXhwb3J0czpbZHh0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHB4dCx7ZGVjbGFyYXRpb25zOltkeHRdLGV4cG9ydHM6W2R4dF19KTtjbGFzcyBteHR7fW14dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bXh0KX0sbXh0Lsm1cHJvdj1Nbih7dG9rZW46bXh0LGZhY3Rvcnk6bXh0Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChteHQsW3t0eXBlOmltfV0sbnVsbCxudWxsKTtjbGFzcyB1eHR7Y29uc3RydWN0b3IodCl7dGhpcy5odHRwPXQsdGhpcy5odHRwUGF0aFByZWZpeD0iZGF0YS9wbHVnaW4vdGV4dF92MiJ9ZmV0Y2hSdW5Ub1RhZygpe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi90YWdzIikucGlwZShJdCgodD0+e2NvbnN0IGU9bmV3IE1hcDtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkuZm9yRWFjaCgoKFt0LG5dKT0+e2Uuc2V0KHQsbil9KSksZX0pKSl9ZmV0Y2hUZXh0RGF0YSh0LGUpe2NvbnN0IG49bmV3IFVSTFNlYXJjaFBhcmFtcyh7cnVuOnQsdGFnOmV9KTtyZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4K2AvdGV4dD8ke24udG9TdHJpbmcoKX1gKS5waXBlKEl0KCh0PT50Lm1hcCgodD0+KHtvcmlnaW5hbFNoYXBlOnQub3JpZ2luYWxfc2hhcGUsc3RlcDp0LnN0ZXAsc3RyaW5nQXJyYXk6dC5zdHJpbmdfYXJyYXksd2FsbFRpbWVJbk1zOjFlMyp0LndhbGxfdGltZSx0cnVuY2F0ZWQ6dC50cnVuY2F0ZWR9KSkpKSkpfX11eHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHV4dCkodnIobEUpKX0sdXh0Lsm1cHJvdj1Nbih7dG9rZW46dXh0LGZhY3Rvcnk6dXh0Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh1eHQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmxFfV19KSxudWxsKTtjbGFzcyBmeHR7fWZ4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Znh0KX0sZnh0Lsm1bW9kPWFvKHt0eXBlOmZ4dH0pLGZ4dC7JtWluaj12bih7cHJvdmlkZXJzOlt1eHQse3Byb3ZpZGU6bXh0LHVzZUV4aXN0aW5nOnV4dH1dLGltcG9ydHM6W1tjRV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChmeHQsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltjRV0scHJvdmlkZXJzOlt1eHQse3Byb3ZpZGU6bXh0LHVzZUV4aXN0aW5nOnV4dH1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZnh0LHtpbXBvcnRzOltjRV19KTtjb25zdCBneHQ9SlAoIltUZXh0XSBUZXh0IFBsdWdpbiBMb2FkZWQiKSxoeHQ9SlAoIltUZXh0XSBSdW5zIFRvIFRhZyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxieHQ9SlAoIltUZXh0XSBUYWcgR3JvdXAgVmlzaWJpbGl0eSBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSkseXh0PUpQKCJbVGV4dF0gVGV4dCBEYXRhIExvYWRlZCBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxfeHQ9InRleHQiLEN4dD1LdyhfeHQpO1p3KEN4dCwodD0+dC5ydW5Ub1RhZ3MpKTtjb25zdCBNeHQ9WncoQ3h0LCh0PT57Y29uc3QgZT1uZXcgU2V0LG49bmV3IFNldDtmb3IoY29uc3QgbyBvZiB0LnZpc2libGVSdW5UYWdzLnZhbHVlcygpKWZvcihjb25zdCB0IG9mIG8pe2NvbnN0IG89SlNPTi5zdHJpbmdpZnkodCk7ZS5oYXMobyl8fChlLmFkZChvKSxuLmFkZCh0KSl9cmV0dXJuWy4uLm5dfSkpLHZ4dD1adyhDeHQsKCh0LGUpPT57Y29uc3Qgbj10LmRhdGEuZ2V0KGUucnVuKTtyZXR1cm4gbiYmbi5nZXQoZS50YWcpfHxudWxsfSkpO2NsYXNzIHh4dHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5hY3Rpb25zJD10LHRoaXMuc3RvcmU9ZSx0aGlzLmRhdGFTb3VyY2U9bix0aGlzLmxvYWRSdW5Ub1RhZ3MkPU1rKCgoKT0+dGhpcy5hY3Rpb25zJC5waXBlKERrKGd4dCksemUoKCgpPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hSdW5Ub1RhZygpLnBpcGUoRmUoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKGh4dCh7cnVuVG9UYWdzOnR9KSl9KSksSXQoKCgpPT57fSkpKSkpKSkse2Rpc3BhdGNoOiExfSksdGhpcy5sb2FkRGF0YSQ9TWsoKCgpPT5yZSh0aGlzLmFjdGlvbnMkLnBpcGUoRGsoYnh0KSx6ZSgoKHt2aXNpYmxlVGV4dENhcmRzOnR9KT0+JHQodC5tYXAoKCh7cnVuOnQsdGFnOmV9KT0+dGhpcy5zdG9yZS5zZWxlY3Qodnh0LHtydW46dCx0YWc6ZX0pLnBpcGUoKGZ1bmN0aW9uIG4odCxlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPj0yO3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gby5waXBlKHQ/Y2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQoZSxuLG8pfSkpOncsU2UoMSksbj9oZShlKTp4ZSgoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHp0fSkpKX19KSgpLEl0KChuPT4oe3J1bjp0LHRhZzplLHRleHREYXRhOm59KSkpKSkpKS5waXBlKEl0KCh0PT50LmZpbHRlcigoKHt0ZXh0RGF0YTp0fSk9Pm51bGw9PT10KSkubWFwKCgoe3J1bjp0LHRhZzplfSk9Pih7cnVuOnQsdGFnOmV9KSkpKSkpKSkpLHRoaXMuYWN0aW9ucyQucGlwZShEayh2RSx4RSksVmUodGhpcy5zdG9yZS5zZWxlY3QoTXh0KSksSXQoKChbLHRdKT0+dCkpKSkucGlwZShadCgodD0+JHQodC5tYXAoKHQ9PnRoaXMuZmV0Y2hUZXh0RGF0YSh0KSkpKSkpKSkse2Rpc3BhdGNoOiExfSl9ZmV0Y2hUZXh0RGF0YSh0KXtjb25zdHtydW46ZSx0YWc6bn09dDtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoVGV4dERhdGEoZSxuKS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaCh5eHQoe3J1bjplLHRhZzpuLHN0ZXBEYXRhOnR9KSl9KSksSXQoKCgpPT57fSkpKX19eHh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4eHQpKHZyKFNrKSx2cihJdyksdnIobXh0KSl9LHh4dC7JtXByb3Y9TW4oe3Rva2VuOnh4dCxmYWN0b3J5Onh4dC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeHh0LFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTa30se3R5cGU6SXd9LHt0eXBlOm14dH1dfSksbnVsbCk7Y29uc3QgT3h0PXlrKHtydW5Ub1RhZ3M6bmV3IE1hcChbWyJydW4xIixbImEvYiIsImEvYyJdXSxbInJ1bjIiLFsiYS9iIiwiYS9kIl1dLFsicnVuMyIsWyJjIiwiYS9iIl1dXSksZGF0YTpuZXcgTWFwKFtbInJ1bjEiLG5ldyBNYXAoW1siYS9iIixbe29yaWdpbmFsU2hhcGU6WzNdLHN0ZXA6MCxzdHJpbmdBcnJheTpbWyJmb28iLCJiYXIiLCJiYXoiXV0sd2FsbFRpbWVJbk1zOjE1Nzc4NjU2ZTUsdHJ1bmNhdGVkOiExfSx7b3JpZ2luYWxTaGFwZTpbM10sc3RlcDoxLHN0cmluZ0FycmF5OltbImZvbyIsImJheiJdXSx3YWxsVGltZUluTXM6MTU3Nzg2NTYwMWUzLHRydW5jYXRlZDohMX1dXSxbImEvYyIsW3tvcmlnaW5hbFNoYXBlOlszXSxzdGVwOjAsc3RyaW5nQXJyYXk6W1siV2UgY29uZHVjdGVkIGFuIGV4cGVyaW1lbnQgYW5kIGZvdW5kIHRoZSBmb2xsb3dpbmcgZGF0YTpcblxuUG91bmRzIG9mIGNob2NvbGF0ZSB8IEhhcHBpbmVzc1xuLS0tfC0tLVxuMCB8IDFcbjEgfCA0XG4yIHwgOVxuMyB8IDE2XG40IHwgMjVcbjUgfCAzNlxuNiB8IDQ5XG43IHwgNjRcbjggfCA4MVxuOSB8IDEwMFxuMTAgfCAxMjEiXV0sd2FsbFRpbWVJbk1zOjE1Nzc4NjU2ZTUsdHJ1bmNhdGVkOiExfSx7b3JpZ2luYWxTaGFwZTpbM10sc3RlcDoxLHN0cmluZ0FycmF5OltbIsOXIiwiKiowKioiLCIqKjEqKiIsIioqMioqIiwiKiozKioiLCIqKjQqKiIsIioqNSoqIl0sWyIqKjAqKiIsIjAiLCIwIiwiMCIsIjAiLCIwIiwiMCJdLFsiKioxKioiLCIwIiwiMSIsIjIiLCIzIiwiNCIsIjUiXSxbIioqMioqIiwiMCIsIjIiLCI0IiwiNiIsIjgiLCIxMCJdLFsiKiozKioiLCIwIiwiMyIsIjYiLCI5IiwiMTIiLCIxNSJdLFsiKio0KioiLCIwIiwiNCIsIjgiLCIxMiIsIjE2IiwiMjAiXSxbIioqNSoqIiwiMCIsIjUiLCIxMCIsIjE1IiwiMjAiLCIyNSJdXSx3YWxsVGltZUluTXM6MTU3Nzg2NTYwMWUzLHRydW5jYXRlZDohMX1dXV0pXV0pLHZpc2libGVSdW5UYWdzOm5ldyBNYXB9KTtmdW5jdGlvbiBQeHQodCxlKXtyZXR1cm4gT3h0KHQsZSl9Y2xhc3Mgd3h0e313eHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHd4dCl9LHd4dC7JtW1vZD1hbyh7dHlwZTp3eHR9KSx3eHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxweHQsd3EuZm9yUGx1Z2luKCJ0ZXh0X3YyIixkeHQpLGZ4dCxkay5mb3JGZWF0dXJlKF94dCxQeHQpLFdrLmZvckZlYXR1cmUoW3h4dF0pXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHd4dCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1dNLHB4dCx3cS5mb3JQbHVnaW4oInRleHRfdjIiLGR4dCksZnh0LGRrLmZvckZlYXR1cmUoX3h0LFB4dCksV2suZm9yRmVhdHVyZShbeHh0XSldLGVudHJ5Q29tcG9uZW50czpbZHh0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHd4dCx7aW1wb3J0czpbV00scHh0LHdxLGZ4dCxjayxHa119KTtjbGFzcyBreHR7fXZhciBTeHQ7a3h0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxreHQpfSxreHQuybVtb2Q9YW8oe3R5cGU6a3h0fSksa3h0Lsm1aW5qPXZuKHtpbXBvcnRzOltbS0osSmh0LGN4dCx3eHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoa3h0LFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbS0osSmh0LGN4dCx3eHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oa3h0LHtpbXBvcnRzOltLSixKaHQsY3h0LHd4dF19KSwoZnVuY3Rpb24odCl7dC5DVVNUT01fRUxFTUVOVD0iQ1VTVE9NX0VMRU1FTlQiLHQuSUZSQU1FPSJJRlJBTUUiLHQuTkdfQ09NUE9ORU5UPSJOR19DT01QT05FTlQiLHQuTk9ORT0iTk9ORSJ9KShTeHR8fChTeHQ9e30pKTtjb25zdCBEeHQ9WyJwbHVnaW5Db250YWluZXIiXSxFeHQ9WyJuZ1BsdWdpbkNvbnRhaW5lciJdO2Z1bmN0aW9uIFJ4dCh0LGUpezEmdCYmSW0oMCl9ZnVuY3Rpb24gQXh0KHQsZSl7aWYoMSZ0JiYoTm0oMCksUXAoMSxSeHQsMSwwLCJuZy1jb250YWluZXIiLDkpLHptKCkpLDImdCl7Y29uc3QgdD1ZbSgyKSxlPSRwKDYpO3JjKDEpLERtKCJuZ1RlbXBsYXRlT3V0bGV0Iix0LmVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGU/dC5lbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlOmUpfX1mdW5jdGlvbiBUeHQodCxlKXsxJnQmJkltKDApfWZ1bmN0aW9uIE54dCh0LGUpe2lmKDEmdCYmKE5tKDApLFFwKDEsVHh0LDEsMCwibmctY29udGFpbmVyIiw5KSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oMiksZT0kcCg2KTtyYygxKSxEbSgibmdUZW1wbGF0ZU91dGxldCIsdC5lbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGU/dC5lbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGU6ZSl9fWZ1bmN0aW9uIHp4dCh0LGUpe2lmKDEmdCYmKE5tKDApLFJtKDEsImgzIiwxMCksa3UoMiwiIFRoZXJl4oCZcyBubyBkYXNoYm9hcmQgYnkgdGhlIG5hbWUgb2Yg4oCcIiksUm0oMywiY29kZSIpLGt1KDQpLEFtKCksa3UoNSwi4oCdLiAiKSxBbSgpLFJtKDYsInAiKSxrdSg3LCJZb3UgY2FuIHNlbGVjdCBhIGRhc2hib2FyZCBmcm9tIHRoZSBsaXN0IGFib3ZlLiIpLEFtKCksUm0oOCwicCIpLEltKDksMTEpLEFtKCksem0oKSksMiZ0KXtjb25zdCB0PVltKDIpLGU9JHAoOCk7cmMoNCksU3UodC5hY3RpdmVQbHVnaW5JZCkscmMoNSksRG0oIm5nVGVtcGxhdGVPdXRsZXQiLGUpfX1mdW5jdGlvbiBJeHQodCxlKXtpZigxJnQmJihObSgwKSxSbSgxLCJoMyIsMTIpLGt1KDIsIiBObyBkYXNoYm9hcmRzIGFyZSBhY3RpdmUgZm9yIHRoZSBjdXJyZW50IGRhdGEgc2V0LiAiKSxBbSgpLFJtKDMsInAiKSxrdSg0LCJQcm9iYWJsZSBjYXVzZXM6IiksQW0oKSxSbSg1LCJ1bCIpLFJtKDYsImxpIiksa3UoNywiWW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuIiksQW0oKSxSbSg4LCJsaSIpLGt1KDksIlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLiIpLEFtKCksQW0oKSxrdSgxMCwiIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZSAiKSxSbSgxMSwiYSIsMTMpLGt1KDEyLCJSRUFETUUiKSxBbSgpLGt1KDEzLCIgYW5kIHBlcmhhcHMgdGhlICIpLFJtKDE0LCJhIiwxNCksa3UoMTUsIlRlbnNvckJvYXJkIHR1dG9yaWFsIiksQW0oKSxrdSgxNiwiLiAiKSxSbSgxNywicCIpLGt1KDE4LCIgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUgIiksUm0oMTksImEiLDE1KSxrdSgyMCwidGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtcyIpLEFtKCksa3UoMjEsIiBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4gIiksQW0oKSxSbSgyMiwicCIpLEltKDIzLDExKSxBbSgpLHptKCkpLDImdCl7WW0oMik7Y29uc3QgdD0kcCg4KTtyYygyMyksRG0oIm5nVGVtcGxhdGVPdXRsZXQiLHQpfX1mdW5jdGlvbiBIeHQodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDYpLFJtKDEsImRpdiIsNyksUXAoMixBeHQsMiwxLCJuZy1jb250YWluZXIiLDgpLFFwKDMsTnh0LDIsMSwibmctY29udGFpbmVyIiw4KSxRcCg0LHp4dCwxMCwyLCJuZy1jb250YWluZXIiLDgpLFFwKDUsSXh0LDI0LDEsIm5nLWNvbnRhaW5lciIsOCksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtEbSgibmdTd2l0Y2giLHQucGx1Z2luTG9hZFN0YXRlKSxyYygyKSxEbSgibmdTd2l0Y2hDYXNlIix0LlBsdWdpbkxvYWRTdGF0ZS5FTlZJUk9OTUVOVF9GQUlMVVJFX05PVF9GT1VORCkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5Mb2FkU3RhdGUuRU5WSVJPTk1FTlRfRkFJTFVSRV9VTktOT1dOKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIix0LlBsdWdpbkxvYWRTdGF0ZS5VTktOT1dOX1BMVUdJTl9JRCkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5Mb2FkU3RhdGUuTk9fRU5BQkxFRF9QTFVHSU5TKX19ZnVuY3Rpb24gRnh0KHQsZSl7aWYoMSZ0JiYoUm0oMCwiaDMiLDE2KSxrdSgxLCJEYXRhIGNvdWxkIG5vdCBiZSBsb2FkZWQuIiksQW0oKSxSbSgyLCJwIiksa3UoMywiVGhlIFRlbnNvckJvYXJkIHNlcnZlciBtYXkgYmUgZG93biBvciBpbmFjY2Vzc2libGUuIiksQW0oKSxSbSg0LCJwIiksSW0oNSwxMSksQW0oKSksMiZ0KXtZbSgpO2NvbnN0IHQ9JHAoOCk7cmMoNSksRG0oIm5nVGVtcGxhdGVPdXRsZXQiLHQpfX1mdW5jdGlvbiBMeHQodCxlKXtpZigxJnQmJihSbSgwLCJwIiwxOSksUm0oMSwiaSIpLGt1KDIsIkxvZyBkaXJlY3Rvcnk6ICIpLFJtKDMsInNwYW4iKSxrdSg0KSxBbSgpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO3JjKDQpLFN1KHQuZGF0YUxvY2F0aW9uKX19ZnVuY3Rpb24gQnh0KHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTcpLGt1KDEpLEFoKDIsImRhdGUiKSxBbSgpLFFwKDMsTHh0LDUsMSwicCIsMTgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEdSgiTGFzdCByZWxvYWQ6ICIsTmgoMiwyLHQubGFzdFVwZGF0ZWQsIm1lZGl1bSIpLCIiKSxyYygyKSxEbSgibmdJZiIsdC5kYXRhTG9jYXRpb24pfX1jb25zdCBWeHQ9ZnVuY3Rpb24odCl7cmV0dXJue3BsdWdpbnM6ITAsImlzLWZpcnN0LXBhcnR5LXBsdWdpbiI6dH19O3ZhciBqeHQ7IShmdW5jdGlvbih0KXt0W3QuRU5WSVJPTk1FTlRfRkFJTFVSRV9OT1RfRk9VTkQ9MF09IkVOVklST05NRU5UX0ZBSUxVUkVfTk9UX0ZPVU5EIix0W3QuRU5WSVJPTk1FTlRfRkFJTFVSRV9VTktOT1dOPTFdPSJFTlZJUk9OTUVOVF9GQUlMVVJFX1VOS05PV04iLHRbdC5OT19FTkFCTEVEX1BMVUdJTlM9Ml09Ik5PX0VOQUJMRURfUExVR0lOUyIsdFt0LlVOS05PV05fUExVR0lOX0lEPTNdPSJVTktOT1dOX1BMVUdJTl9JRCIsdFt0LkxPQURFRD00XT0iTE9BREVEIix0W3QuTE9BRElORz01XT0iTE9BRElORyJ9KShqeHR8fChqeHQ9e30pKTtjbGFzcyBVeHR7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPXQsdGhpcy5wbHVnaW5SZWdpc3RyeT1lLHRoaXMucGx1Z2luQXBpSG9zdD1uLHRoaXMuUGx1Z2luTG9hZFN0YXRlPWp4dCx0aGlzLkxvYWRpbmdNZWNoYW5pc21UeXBlPVN4dCx0aGlzLnBsdWdpbkluc3RhbmNlcz1uZXcgTWFwfW5nT25DaGFuZ2VzKHQpe3ZhciBlO2lmKCF0aGlzLmlzRmVhdHVyZUZsYWdzTG9hZGVkfHwhdGhpcy5hY3RpdmVLbm93blBsdWdpbnx8dGhpcy5zZXR0aW5nc0xvYWRTdGF0ZT09PXlFLk5PVF9MT0FERUR8fHRoaXMuc2V0dGluZ3NMb2FkU3RhdGU9PT15RS5MT0FESU5HKXJldHVybjtjb25zdCBuPUJvb2xlYW4odGhpcy5hY3RpdmVLbm93blBsdWdpbiYmIXRoaXMucGx1Z2luSW5zdGFuY2VzLmhhcyh0aGlzLmFjdGl2ZUtub3duUGx1Z2luLmlkKSk7aWYodC5hY3RpdmVLbm93blBsdWdpbnx8dC5pc0ZlYXR1cmVGbGFnc0xvYWRlZHx8dC5zZXR0aW5nc0xvYWRTdGF0ZSl7Y29uc3Qgbz1udWxsPT09KGU9dC5hY3RpdmVLbm93blBsdWdpbil8fHZvaWQgMD09PWU/dm9pZCAwOmUucHJldmlvdXNWYWx1ZTtpZihvJiZvLmlkIT09dGhpcy5hY3RpdmVLbm93blBsdWdpbi5pZCYmdGhpcy5oaWRlUGx1Z2luKG8pLG4pe2NvbnN0IHQ9dGhpcy5jcmVhdGVQbHVnaW4odGhpcy5hY3RpdmVLbm93blBsdWdpbik7dCYmdGhpcy5wbHVnaW5JbnN0YW5jZXMuc2V0KHRoaXMuYWN0aXZlS25vd25QbHVnaW4uaWQsdCl9ZWxzZSB0aGlzLnNob3dQbHVnaW4odGhpcy5hY3RpdmVLbm93blBsdWdpbil9KG58fHQubGFzdFVwZGF0ZWQpJiZ0aGlzLnJlbG9hZCh0aGlzLmFjdGl2ZUtub3duUGx1Z2luLG4pfWhpZGVQbHVnaW4odCl7aWYoIXRoaXMucGx1Z2luSW5zdGFuY2VzLmhhcyh0LmlkKSlyZXR1cm47Y29uc3QgZT10aGlzLnBsdWdpbkluc3RhbmNlcy5nZXQodC5pZCk7T2JqZWN0LmFzc2lnbihlLnN0eWxlLHttYXhIZWlnaHQ6MCxvdmVyZmxvdzoiaGlkZGVuIix2aXNpYmlsaXR5OiJoaWRkZW4iLHBvc2l0aW9uOiJhYnNvbHV0ZSJ9KX1zaG93UGx1Z2luKHQpe2lmKCF0aGlzLnBsdWdpbkluc3RhbmNlcy5oYXModC5pZCkpcmV0dXJuO2NvbnN0IGU9dGhpcy5wbHVnaW5JbnN0YW5jZXMuZ2V0KHQuaWQpO09iamVjdC5hc3NpZ24oZS5zdHlsZSx7bWF4SGVpZ2h0Om51bGwsb3ZlcmZsb3c6bnVsbCx2aXNpYmlsaXR5Om51bGwscG9zaXRpb246bnVsbH0pfWNyZWF0ZVBsdWdpbih0KXtsZXQgZT1udWxsO3N3aXRjaCh0LmxvYWRpbmdfbWVjaGFuaXNtLnR5cGUpe2Nhc2UgU3h0LkNVU1RPTV9FTEVNRU5UOmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0LmxvYWRpbmdfbWVjaGFuaXNtLmVsZW1lbnRfbmFtZSksZS5yZWxvYWRPblJlYWR5PSExLGUuZmVhdHVyZUZsYWdzPXRoaXMuZmVhdHVyZUZsYWdzLHRoaXMucGx1Z2luc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGUpO2JyZWFrO2Nhc2UgU3h0LklGUkFNRTppZighdGhpcy5wbHVnaW5BcGlIb3N0KXRocm93IEVycm9yKGBJRlJBTUUtYmFzZWQgcGx1Z2lucyBub3Qgc3VwcG9ydGVkOiAke3QuaWR9YCk7ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxlLnNldEF0dHJpYnV0ZSgic3JjIixgZGF0YS9wbHVnaW5fZW50cnkuaHRtbD9uYW1lPSR7dC5pZH1gKSx0aGlzLnBsdWdpbkFwaUhvc3QucmVnaXN0ZXJQbHVnaW5JZnJhbWUoZSx0LmlkKSx0aGlzLnBsdWdpbnNDb250YWluZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChlKTticmVhaztjYXNlIFN4dC5OR19DT01QT05FTlQ6Y29uc3Qgbj10aGlzLnBsdWdpblJlZ2lzdHJ5LmdldENvbXBvbmVudCh0LmlkKTtpZihuKXtjb25zdCB0PXRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KG4pO2U9dGhpcy5uZ1BsdWdpbkNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodCkubG9jYXRpb24ubmF0aXZlRWxlbWVudH1lbHNlIGNvbnNvbGUuZXJyb3IoYE5vIHJlZ2lzdGVyZWQgQW5ndWxhciBjb21wb25lbnQgZm9yIHBsdWdpbjogJHt0LmlkfWApO2JyZWFrO2Nhc2UgU3h0Lk5PTkU6YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJVbmV4cGVjdGVkIHBsdWdpbiIpfXJldHVybiBlfXJlbG9hZCh0LGUpe2lmKCFlJiZ0LmRpc2FibGVfcmVsb2FkKXJldHVybjtjb25zdCBuPXRoaXMucGx1Z2luSW5zdGFuY2VzLmdldCh0LmlkKTtuJiZuLnJlbG9hZCYmbi5yZWxvYWQoKX19VXh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxVeHQpKFNtKHVnKSxTbSh3cSksU20oc3osOCkpfSxVeHQuybVjbXA9dG8oe3R5cGU6VXh0LHNlbGVjdG9yczpbWyJwbHVnaW5zLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKER4dCw3LGhnKSxRaChFeHQsNyxlaCkpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4ucGx1Z2luc0NvbnRhaW5lcj10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5uZ1BsdWdpbkNvbnRhaW5lcj10LmZpcnN0KX19LGlucHV0czp7YWN0aXZlUGx1Z2luSWQ6ImFjdGl2ZVBsdWdpbklkIixhY3RpdmVLbm93blBsdWdpbjoiYWN0aXZlS25vd25QbHVnaW4iLHBsdWdpbkxvYWRTdGF0ZToicGx1Z2luTG9hZFN0YXRlIixkYXRhTG9jYXRpb246ImRhdGFMb2NhdGlvbiIsaXNGZWF0dXJlRmxhZ3NMb2FkZWQ6ImlzRmVhdHVyZUZsYWdzTG9hZGVkIixzZXR0aW5nc0xvYWRTdGF0ZToic2V0dGluZ3NMb2FkU3RhdGUiLGZlYXR1cmVGbGFnczoiZmVhdHVyZUZsYWdzIixsYXN0VXBkYXRlZDoibGFzdFVwZGF0ZWQiLGVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGU6ImVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGUiLGVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZToiZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlIn0sZmVhdHVyZXM6W0JvXSxkZWNsczo5LHZhcnM6NCxjb25zdHM6W1szLCJuZ0NsYXNzIl0sWyJwbHVnaW5Db250YWluZXIiLCIiXSxbIm5nUGx1Z2luQ29udGFpbmVyIiwiIl0sWyJjbGFzcyIsIndhcm5pbmciLDMsIm5nU3dpdGNoIiw0LCJuZ0lmIl0sWyJlbnZpcm9ubWVudEZhaWx1cmVEZWZhdWx0VGVtcGxhdGUiLCIiXSxbImRhdGVBbmREYXRhTG9jYXRpb24iLCIiXSxbMSwid2FybmluZyIsMywibmdTd2l0Y2giXSxbMSwid2FybmluZy1tZXNzYWdlIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFs0LCJuZ1RlbXBsYXRlT3V0bGV0Il0sWzEsInVua25vd24tcGx1Z2luIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiXSxbMSwibm8tYWN0aXZlLXBsdWdpbiJdLFsiaHJlZiIsImh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCJdLFsiaHJlZiIsImh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiXSxbImhyZWYiLCJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIl0sWzEsImVudmlyb25tZW50LW5vdC1sb2FkZWQiXSxbMSwibGFzdC1yZWxvYWQtdGltZSJdLFsiY2xhc3MiLCJkYXRhLWxvY2F0aW9uIiw0LCJuZ0lmIl0sWzEsImRhdGEtbG9jYXRpb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCwxKSxJbSgyLG51bGwsMiksQW0oKSxRcCg0LEh4dCw2LDUsImRpdiIsMyksUXAoNSxGeHQsNiwxLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LGliKSxRcCg3LEJ4dCw0LDUsIm5nLXRlbXBsYXRlIixudWxsLDUsaWIpKSwyJmUmJihEbSgibmdDbGFzcyIsTWgoMixWeHQsKG51bGw9PW4uYWN0aXZlS25vd25QbHVnaW4/bnVsbDpuLmFjdGl2ZUtub3duUGx1Z2luLmxvYWRpbmdfbWVjaGFuaXNtLnR5cGUpIT09bi5Mb2FkaW5nTWVjaGFuaXNtVHlwZS5JRlJBTUUpKSxyYyg0KSxEbSgibmdJZiIsbi5wbHVnaW5Mb2FkU3RhdGUhPT1uLlBsdWdpbkxvYWRTdGF0ZS5MT0FERUQmJm4ucGx1Z2luTG9hZFN0YXRlIT09bi5QbHVnaW5Mb2FkU3RhdGUuTE9BRElORykpfSxkaXJlY3RpdmVzOlthTSxkTSxmTSxnTSxNTV0scGlwZXM6W1JNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMjEyMTIxO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmV9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnBsdWdpbnMuaXMtZmlyc3QtcGFydHktcGx1Z2luW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzA7Y29sb3I6I2ZmZn0ucGx1Z2luc1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmV9Lndhcm5pbmdbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6I2ZmZjtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAud2FybmluZ1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC53YXJuaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiMzMDMwMzB9Lndhcm5pbmctbWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzIxMjEyMTttYXJnaW46ODBweCBhdXRvIDA7bWF4LXdpZHRoOjU0MHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC53YXJuaW5nLW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAud2FybmluZy1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmZmfS5sYXN0LXJlbG9hZC10aW1lW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXN0eWxlOml0YWxpY30ucGx1Z2luc1tfbmdjb250ZW50LSVDT01QJV0gICAgIGlmcmFtZXtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFV4dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJwbHVnaW5zLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vcGx1Z2luc19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsicGx1Z2luc19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnVnfSx7dHlwZTp3cX0se3R5cGU6c3osZGVjb3JhdG9yczpbe3R5cGU6U3J9XX1dfSkse3BsdWdpbnNDb250YWluZXI6W3t0eXBlOlphLGFyZ3M6WyJwbHVnaW5Db250YWluZXIiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0sbmdQbHVnaW5Db250YWluZXI6W3t0eXBlOlphLGFyZ3M6WyJuZ1BsdWdpbkNvbnRhaW5lciIse3N0YXRpYzohMCxyZWFkOmVofV19XSxhY3RpdmVQbHVnaW5JZDpbe3R5cGU6eHl9XSxhY3RpdmVLbm93blBsdWdpbjpbe3R5cGU6eHl9XSxwbHVnaW5Mb2FkU3RhdGU6W3t0eXBlOnh5fV0sZGF0YUxvY2F0aW9uOlt7dHlwZTp4eX1dLGlzRmVhdHVyZUZsYWdzTG9hZGVkOlt7dHlwZTp4eX1dLHNldHRpbmdzTG9hZFN0YXRlOlt7dHlwZTp4eX1dLGZlYXR1cmVGbGFnczpbe3R5cGU6eHl9XSxsYXN0VXBkYXRlZDpbe3R5cGU6eHl9XSxlbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlOlt7dHlwZTp4eX1dLGVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZTpbe3R5cGU6eHl9XX0pO2NvbnN0IEd4dD1adyh2UixNUiwoKHQsZSk9PmUmJnRbZV0/T2JqZWN0LmFzc2lnbih7aWQ6ZX0sdFtlXSk6bnVsbCkpO2NsYXNzIFd4dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hY3RpdmVLbm93blBsdWdpbiQ9dGhpcy5zdG9yZS5zZWxlY3QoR3h0KSx0aGlzLmFjdGl2ZVBsdWdpbklkJD10aGlzLnN0b3JlLnNlbGVjdChNUiksdGhpcy5wbHVnaW5Mb2FkU3RhdGUkPVd0KHRoaXMuYWN0aXZlS25vd25QbHVnaW4kLHRoaXMuYWN0aXZlUGx1Z2luSWQkLHRoaXMuc3RvcmUuc2VsZWN0KGJSKSkucGlwZShJdCgoKFt0LGUsbl0pPT5udWxsIT09bi5mYWlsdXJlQ29kZT9uLmZhaWx1cmVDb2RlPT09bUUuTk9UX0ZPVU5EP2p4dC5FTlZJUk9OTUVOVF9GQUlMVVJFX05PVF9GT1VORDpqeHQuRU5WSVJPTk1FTlRfRkFJTFVSRV9VTktOT1dOOm51bGwhPT10P2p4dC5MT0FERUQ6bnVsbD09PW4ubGFzdExvYWRlZFRpbWVJbk1zJiZuLnN0YXRlPT09eUUuTE9BRElORz9qeHQuTE9BRElORzplP2p4dC5VTktOT1dOX1BMVUdJTl9JRDpqeHQuTk9fRU5BQkxFRF9QTFVHSU5TKSkpLHRoaXMubGFzdExvYWRlZFRpbWVJbk1zJD10aGlzLnN0b3JlLnNlbGVjdChDUiksdGhpcy5kYXRhTG9jYXRpb24kPXRoaXMuc3RvcmUuc2VsZWN0KHhSKS5waXBlKEl0KCh0PT50LmRhdGFfbG9jYXRpb24pKSksdGhpcy5pc0ZlYXR1cmVGbGFnc0xvYWRlZCQ9dGhpcy5zdG9yZS5zZWxlY3QocUQpLHRoaXMuZmVhdHVyZUZsYWdzJD10aGlzLnN0b3JlLnNlbGVjdChaRCksdGhpcy5zZXR0aW5nc0xvYWRTdGF0ZSQ9dGhpcy5zdG9yZS5zZWxlY3QoU04pfX1XeHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFd4dCkoU20oSXcpKX0sV3h0Lsm1Y21wPXRvKHt0eXBlOld4dCxzZWxlY3RvcnM6W1sicGx1Z2lucyJdXSxpbnB1dHM6e2Vudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGU6ImVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGUiLGVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZToiZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlIn0sZGVjbHM6OSx2YXJzOjI2LGNvbnN0czpbWzMsImFjdGl2ZUtub3duUGx1Z2luIiwiYWN0aXZlUGx1Z2luSWQiLCJkYXRhTG9jYXRpb24iLCJsYXN0VXBkYXRlZCIsInBsdWdpbkxvYWRTdGF0ZSIsImlzRmVhdHVyZUZsYWdzTG9hZGVkIiwic2V0dGluZ3NMb2FkU3RhdGUiLCJmZWF0dXJlRmxhZ3MiLCJlbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlIiwiZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJwbHVnaW5zLWNvbXBvbmVudCIsMCksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxBaCg4LCJhc3luYyIpKSwyJmUmJkRtKCJhY3RpdmVLbm93blBsdWdpbiIsVGgoMSwxMCxuLmFjdGl2ZUtub3duUGx1Z2luJCkpKCJhY3RpdmVQbHVnaW5JZCIsVGgoMiwxMixuLmFjdGl2ZVBsdWdpbklkJCkpKCJkYXRhTG9jYXRpb24iLFRoKDMsMTQsbi5kYXRhTG9jYXRpb24kKSkoImxhc3RVcGRhdGVkIixUaCg0LDE2LG4ubGFzdExvYWRlZFRpbWVJbk1zJCkpKCJwbHVnaW5Mb2FkU3RhdGUiLFRoKDUsMTgsbi5wbHVnaW5Mb2FkU3RhdGUkKSkoImlzRmVhdHVyZUZsYWdzTG9hZGVkIixUaCg2LDIwLG4uaXNGZWF0dXJlRmxhZ3NMb2FkZWQkKSkoInNldHRpbmdzTG9hZFN0YXRlIixUaCg3LDIyLG4uc2V0dGluZ3NMb2FkU3RhdGUkKSkoImZlYXR1cmVGbGFncyIsVGgoOCwyNCxuLmZlYXR1cmVGbGFncyQpKSgiZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZSIsbi5lbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlKSgiZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlIixuLmVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZSl9LHN0eWxlczpbInBsdWdpbnMtY29tcG9uZW50W19uZ2NvbnRlbnQtJUNPTVAlXSB7IGhlaWdodDogMTAwJTsgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXeHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoicGx1Z2lucyIsdGVtcGxhdGU6J1xuICAgIDxwbHVnaW5zLWNvbXBvbmVudFxuICAgICAgW2FjdGl2ZUtub3duUGx1Z2luXT0iYWN0aXZlS25vd25QbHVnaW4kIHwgYXN5bmMiXG4gICAgICBbYWN0aXZlUGx1Z2luSWRdPSJhY3RpdmVQbHVnaW5JZCQgfCBhc3luYyJcbiAgICAgIFtkYXRhTG9jYXRpb25dPSJkYXRhTG9jYXRpb24kIHwgYXN5bmMiXG4gICAgICBbbGFzdFVwZGF0ZWRdPSJsYXN0TG9hZGVkVGltZUluTXMkIHwgYXN5bmMiXG4gICAgICBbcGx1Z2luTG9hZFN0YXRlXT0icGx1Z2luTG9hZFN0YXRlJCB8IGFzeW5jIlxuICAgICAgW2lzRmVhdHVyZUZsYWdzTG9hZGVkXT0iaXNGZWF0dXJlRmxhZ3NMb2FkZWQkIHwgYXN5bmMiXG4gICAgICBbc2V0dGluZ3NMb2FkU3RhdGVdPSJzZXR0aW5nc0xvYWRTdGF0ZSQgfCBhc3luYyJcbiAgICAgIFtmZWF0dXJlRmxhZ3NdPSJmZWF0dXJlRmxhZ3MkIHwgYXN5bmMiXG4gICAgICBbZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZV09ImVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGUiXG4gICAgICBbZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlXT0iZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlIlxuICAgID48L3BsdWdpbnMtY29tcG9uZW50PlxuICAnLHN0eWxlczpbInBsdWdpbnMtY29tcG9uZW50IHsgaGVpZ2h0OiAxMDAlOyB9Il0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7ZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZTpbe3R5cGU6eHl9XSxlbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGU6W3t0eXBlOnh5fV19KTtjbGFzcyBZeHR7fVl4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WXh0KX0sWXh0Lsm1bW9kPWFvKHt0eXBlOll4dH0pLFl4dC7JtWluaj12bih7aW1wb3J0czpbW0VSLFdNLHdxXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFl4dCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbV3h0LFV4dF0sZXhwb3J0czpbV3h0XSxpbXBvcnRzOltFUixXTSx3cV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhZeHQse2RlY2xhcmF0aW9uczpbV3h0LFV4dF0saW1wb3J0czpbRVIsV00sd3FdLGV4cG9ydHM6W1d4dF19KSxlbyhXeHQsW1V4dF0sW3dNXSk7Y2xhc3MgcXh0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zdG9yZT10LHRoaXMuZG9jdW1lbnQ9ZSx0aGlzLm9uVmlzaWJpbGl0eUNoYW5nZT10aGlzLm9uVmlzaWJpbGl0eUNoYW5nZUltcGwuYmluZCh0aGlzKSx0aGlzLnJlbG9hZEVuYWJsZWQkPXRoaXMuc3RvcmUucGlwZShGdyhETikpLHRoaXMucmVsb2FkUGVyaW9kSW5NcyQ9dGhpcy5zdG9yZS5waXBlKEZ3KEVOKSksdGhpcy5yZWxvYWRUaW1lcklkPW51bGwsdGhpcy5taXNzZWRBdXRvUmVsb2FkPSExfW5nT25Jbml0KCl7dGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLm9uVmlzaWJpbGl0eUNoYW5nZSksV3QodGhpcy5yZWxvYWRFbmFibGVkJC5waXBlKE1lKCkpLHRoaXMucmVsb2FkUGVyaW9kSW5NcyQucGlwZShNZSgpKSkuc3Vic2NyaWJlKCgoW3QsZV0pPT57dGhpcy5jYW5jZWxMb2FkKCksdCYmdGhpcy5sb2FkKGUpfSkpfW9uVmlzaWJpbGl0eUNoYW5nZUltcGwoKXsidmlzaWJsZSI9PT10aGlzLmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSYmdGhpcy5taXNzZWRBdXRvUmVsb2FkJiYodGhpcy5taXNzZWRBdXRvUmVsb2FkPSExLHRoaXMuc3RvcmUuZGlzcGF0Y2goeEUoKSkpfWxvYWQodCl7dGhpcy5yZWxvYWRUaW1lcklkPXNldFRpbWVvdXQoKCgpPT57InZpc2libGUiPT09dGhpcy5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU/dGhpcy5zdG9yZS5kaXNwYXRjaCh4RSgpKTp0aGlzLm1pc3NlZEF1dG9SZWxvYWQ9ITAsdGhpcy5sb2FkKHQpfSksdCl9Y2FuY2VsTG9hZCgpe251bGwhPT10aGlzLnJlbG9hZFRpbWVySWQmJmNsZWFyVGltZW91dCh0aGlzLnJlbG9hZFRpbWVySWQpLHRoaXMucmVsb2FkVGltZXJJZD1udWxsfW5nT25EZXN0cm95KCl7dGhpcy5jYW5jZWxMb2FkKCksdGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLm9uVmlzaWJpbGl0eUNoYW5nZSl9fXF4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cXh0KShTbShJdyksU20oWl8pKX0scXh0Lsm1Y21wPXRvKHt0eXBlOnF4dCxzZWxlY3RvcnM6W1sicmVsb2FkZXIiXV0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChxeHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoicmVsb2FkZXIiLHRlbXBsYXRlOiIiLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd30se3R5cGU6RG9jdW1lbnQsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpO2NsYXNzIFp4dHt9Wnh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxaeHQpfSxaeHQuybVjbXA9dG8oe3R5cGU6Wnh0LHNlbGVjdG9yczpbWyJ0ZW5zb3Jib2FyZC13cmFwcGVyLWNvbXBvbmVudCJdXSxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1sxLCJwbHVnaW5zIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJwbHVnaW5zIiwwKSxUbSgxLCJyZWxvYWRlciIpKX0sZGlyZWN0aXZlczpbV3h0LHF4dF0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnBsdWdpbnNbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZmxleDogMSAxO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChaeHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGVuc29yYm9hcmQtd3JhcHBlci1jb21wb25lbnQiLHRlbXBsYXRlOidcbiAgICA8cGx1Z2lucyBjbGFzcz0icGx1Z2lucyI+PC9wbHVnaW5zPlxuICAgIDxyZWxvYWRlcj48L3JlbG9hZGVyPlxuICAnLHN0eWxlczpbIlxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5wbHVnaW5zIHtcbiAgICAgICAgZmxleDogMSAxO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwsbnVsbCk7Y2xhc3MgWHh0e31YeHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFh4dCl9LFh4dC7JtXByb3Y9TW4oe3Rva2VuOlh4dCxmYWN0b3J5Olh4dC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWHh0LFt7dHlwZTppbX1dLG51bGwsbnVsbCk7Y29uc3QgS3h0PSJzbW9vdGhpbmciLEp4dD0icnVuQ29sb3JHcm91cCIsUXh0PSJ0YWdGaWx0ZXIiLCR4dD0icmVnZXg6IjtsZXQgdE90PWNsYXNzIGV4dGVuZHMgWHh0e2dldE1ldHJpY3NQaW5uZWRDYXJkcyh0KXtyZXR1cm4gV3QoW3Quc2VsZWN0KFBUKSx0LnNlbGVjdChrVCldKS5waXBlKEl0KCgoW3QsZV0pPT57aWYoIXQubGVuZ3RoJiYhZS5sZW5ndGgpcmV0dXJuW107Y29uc3Qgbj1bLi4udC5tYXAoKCh7cGx1Z2luOnQsdGFnOmUsc2FtcGxlOm4scnVuSWQ6b30pPT57Y29uc3QgaT17cGx1Z2luOnQsdGFnOmV9O3JldHVybiB4QSh0KSYmKGkucnVuSWQ9byksTUEodCkmJihpLnNhbXBsZT1uKSxpfSkpLC4uLmVdO3JldHVyblt7a2V5OiJwaW5uZWRDYXJkcyIsdmFsdWU6SlNPTi5zdHJpbmdpZnkobil9XX0pKSl9Z2V0RmVhdHVyZUZsYWdTdGF0ZXModCl7cmV0dXJuIFd0KFt0LnNlbGVjdCgkRCksdC5zZWxlY3QoWEQpXSkucGlwZShJdCgoKFt0LGVdKT0+e2NvbnN0IG49dC5tYXAoKHQ9Pih7a2V5Ok5BLHZhbHVlOnR9KSkpO3JldHVybiJib29sZWFuIj09dHlwZW9mIGUuZW5hYmxlZENvbG9yR3JvdXAmJm4ucHVzaCh7a2V5OklBLHZhbHVlOlN0cmluZyhlLmVuYWJsZWRDb2xvckdyb3VwKX0pLCJib29sZWFuIj09dHlwZW9mIGUuZW5hYmxlZENvbG9yR3JvdXBCeVJlZ2V4JiZuLnB1c2goe2tleTpIQSx2YWx1ZTpTdHJpbmcoZS5lbmFibGVkQ29sb3JHcm91cEJ5UmVnZXgpfSksbn0pKSl9c2VyaWFsaXplU3RhdGVUb1F1ZXJ5UGFyYW1zKHQpe3JldHVybiBXdChbdGhpcy5nZXRNZXRyaWNzUGlubmVkQ2FyZHModCksdC5zZWxlY3QoQlQpLnBpcGUoSXQoKHQ9PnQ/W3trZXk6UXh0LHZhbHVlOnR9XTpbXSkpKSx0aGlzLmdldEZlYXR1cmVGbGFnU3RhdGVzKHQpLHQuc2VsZWN0KEVUKS5waXBlKEl0KCh0PT5OdW1iZXIuaXNGaW5pdGUodC5zY2FsYXJTbW9vdGhpbmcpP1t7a2V5Okt4dCx2YWx1ZTpTdHJpbmcodC5zY2FsYXJTbW9vdGhpbmcpfV06W10pKSksdC5zZWxlY3QodU4pLnBpcGUoSXQoKHQ9PntpZighdClyZXR1cm5bXTtsZXQgZTtzd2l0Y2godC5rZXkpe2Nhc2UgdE4uRVhQRVJJTUVOVDplPSJleHBlcmltZW50IjticmVhaztjYXNlIHROLlJVTjplPSJydW4iO2JyZWFrO2Nhc2UgdE4uUkVHRVg6ZT1gcmVnZXg6JHt0LnJlZ2V4U3RyaW5nfWA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgUmFuZ2VFcnJvcigiU2VyaWFsaXphdGlvbiBub3QgaW1wbGVtZW50ZWQiKX1yZXR1cm5be2tleTpKeHQsdmFsdWU6ZX1dfSkpKV0pLnBpcGUoSXQoKHQ9PnQuZmxhdCgpKSkpfWRlc2VyaWFsaXplUXVlcnlQYXJhbXModCl7bGV0IGU9bnVsbCxuPW51bGwsbz1udWxsLGk9bnVsbDtmb3IoY29uc3R7a2V5OmEsdmFsdWU6cn1vZiB0KXN3aXRjaChhKXtjYXNlInBpbm5lZENhcmRzIjplPWVPdChyKTticmVhaztjYXNlIEt4dDpuPU51bWJlcihyKTticmVhaztjYXNlIEp4dDpzd2l0Y2gocil7Y2FzZSJleHBlcmltZW50IjppPXtrZXk6dE4uRVhQRVJJTUVOVH07YnJlYWs7Y2FzZSJydW4iOmk9e2tleTp0Ti5SVU59fWlmKHIuc3RhcnRzV2l0aCgkeHQpKXtjb25zdCB0PXIuc2xpY2UoJHh0Lmxlbmd0aCk7aT17a2V5OnROLlJFR0VYLHJlZ2V4U3RyaW5nOnR9fWJyZWFrO2Nhc2UgUXh0Om89cn1yZXR1cm57bWV0cmljczp7cGlubmVkQ2FyZHM6ZXx8W10sc21vb3RoaW5nOm4sdGFnRmlsdGVyOm99LHJ1bnM6e2dyb3VwQnk6aX19fX07ZnVuY3Rpb24gZU90KHQpe2xldCBlO3RyeXtlPUpTT04ucGFyc2UodCl9Y2F0Y2godCl7cmV0dXJuIG51bGx9aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIG51bGw7Y29uc3Qgbj1bXTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPSJzdHJpbmciPT10eXBlb2YgdC5ydW5JZCxpPSJudW1iZXIiPT10eXBlb2YgdC5zYW1wbGUsYT0ic3RyaW5nIj09dHlwZW9mIHQudGFnLHI9ZXx8dm9pZCAwPT09dC5ydW5JZCxzPWl8fHZvaWQgMD09PXQuc2FtcGxlO2lmKCEoInN0cmluZyI9PXR5cGVvZiB0LnBsdWdpbiYmYSYmciYmcykpY29udGludWU7aWYoKG89dC5wbHVnaW4pIT09aEEuU0NBTEFSUyYmbyE9PWhBLkhJU1RPR1JBTVMmJm8hPT1oQS5JTUFHRVMpY29udGludWU7aWYoIXQudGFnKWNvbnRpbnVlO2lmKHhBKHQucGx1Z2luKSl7aWYoIXQucnVuSWQpY29udGludWV9ZWxzZSBpZih0LnJ1bklkKWNvbnRpbnVlO2lmKGkpe2lmKCFNQSh0LnBsdWdpbikpY29udGludWU7aWYoIU51bWJlci5pc0ludGVnZXIodC5zYW1wbGUpfHx0LnNhbXBsZTwwKWNvbnRpbnVlfWNvbnN0IGw9e3BsdWdpbjp0LnBsdWdpbix0YWc6dC50YWd9O2UmJihsLnJ1bklkPXQucnVuSWQpLGkmJihsLnNhbXBsZT10LnNhbXBsZSksbi5wdXNoKGwpfXZhciBvO3JldHVybiBufWZ1bmN0aW9uIG5PdCgpe3JldHVyblt7cm91dGVLaW5kOlprLkVYUEVSSU1FTlQscGF0aDoiLyIsbmdDb21wb25lbnQ6Wnh0LGRlZmF1bHRSb3V0ZTohMCxkZWVwTGlua1Byb3ZpZGVyOm5ldyB0T3R9XX1mdW5jdGlvbiBvT3QodCl7cmV0dXJuKGUsbik9Pntjb25zdCBvPXQoZSxuKTtyZXR1cm4gY29uc29sZS5ncm91cENvbGxhcHNlZChuLnR5cGUpLGNvbnNvbGUubG9nKCJwcmV2IHN0YXRlIixlKSxjb25zb2xlLmxvZygiYWN0aW9uIixuKSxjb25zb2xlLmxvZygibmV4dCBzdGF0ZSIsbyksY29uc29sZS5ncm91cEVuZCgpLG99fWZ1bmN0aW9uIGlPdCgpe3JldHVybiB5XygpP29PdDp0PT4oZSxuKT0+dChlLG4pfXRPdD0oZnVuY3Rpb24gYU90KHQsZSxuLG8pe3ZhciBpLGE9YXJndW1lbnRzLmxlbmd0aCxyPWE8Mz9lOm51bGw9PT1vP289T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLG4pOm87aWYoIm9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYiZnVuY3Rpb24iPT10eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSlyPVJlZmxlY3QuZGVjb3JhdGUodCxlLG4sbyk7ZWxzZSBmb3IodmFyIHM9dC5sZW5ndGgtMTtzPj0wO3MtLSkoaT10W3NdKSYmKHI9KGE8Mz9pKHIpOmE+Mz9pKGUsbixyKTppKGUsbikpfHxyKTtyZXR1cm4gYT4zJiZyJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHIpLHJ9KShbaW0oKV0sdE90KTtjb25zdCByT3Q9bmV3IEdhKCJSb290IHJlZHVjZXJzIHRva2VuIix7ZmFjdG9yeTooKT0+KHt9KX0pO2NsYXNzIHNPdHt9c090Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxzT3QpfSxzT3QuybVtb2Q9YW8oe3R5cGU6c090fSksc090Lsm1aW5qPXZuKHtwcm92aWRlcnM6W3twcm92aWRlOmJ3LHVzZUZhY3Rvcnk6aU90LG11bHRpOiEwfV0saW1wb3J0czpbW2RrLmZvclJvb3Qock90LHtydW50aW1lQ2hlY2tzOntzdHJpY3RTdGF0ZUltbXV0YWJpbGl0eTohMCxzdHJpY3RBY3Rpb25JbW11dGFiaWxpdHk6ITAsc3RyaWN0QWN0aW9uU2VyaWFsaXphYmlsaXR5OiExLHN0cmljdFN0YXRlU2VyaWFsaXphYmlsaXR5OiExfX0pLFdrLmZvclJvb3QoW10pXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHNPdCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W2RrLmZvclJvb3Qock90LHtydW50aW1lQ2hlY2tzOntzdHJpY3RTdGF0ZUltbXV0YWJpbGl0eTohMCxzdHJpY3RBY3Rpb25JbW11dGFiaWxpdHk6ITAsc3RyaWN0QWN0aW9uU2VyaWFsaXphYmlsaXR5OiExLHN0cmljdFN0YXRlU2VyaWFsaXphYmlsaXR5OiExfX0pLFdrLmZvclJvb3QoW10pXSxwcm92aWRlcnM6W3twcm92aWRlOmJ3LHVzZUZhY3Rvcnk6aU90LG11bHRpOiEwfV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhzT3Qse2ltcG9ydHM6W2xrLFVrXX0pO2NsYXNzIGxPdHt9bE90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsT3QpfSxsT3QuybVtb2Q9YW8oe3R5cGU6bE90fSksbE90Lsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGxPdCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbcXh0XSxleHBvcnRzOltxeHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8obE90LHtkZWNsYXJhdGlvbnM6W3F4dF0sZXhwb3J0czpbcXh0XX0pO2NsYXNzIGNPdHt9Y090Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjT3QpfSxjT3QuybVtb2Q9YW8oe3R5cGU6Y090fSksY090Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sWXh0LGxPdF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChjT3QsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1p4dF0saW1wb3J0czpbV00sWXh0LGxPdF0sZXhwb3J0czpbWnh0XSxlbnRyeUNvbXBvbmVudHM6W1p4dF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhjT3Qse2RlY2xhcmF0aW9uczpbWnh0XSxpbXBvcnRzOltXTSxZeHQsbE90XSxleHBvcnRzOltaeHRdfSk7Y2xhc3MgZE90e31kT3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGRPdCl9LGRPdC7JtW1vZD1hbyh7dHlwZTpkT3QsYm9vdHN0cmFwOlthcV19KSxkT3QuybVpbmo9dm4oe2ltcG9ydHM6W1t0VCxVdixaUCxCUyxzcSxQUy5yZWdpc3RlclJvdXRlcyhuT3QpLEpMLEtMLGxxLGNPdCxFUixncSxkcSx2cSxhQSx4cSxwcSxyRCxzeixZeHQsS04sQ3Esc090LGt4dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkT3QsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2FxXSxpbXBvcnRzOlt0VCxVdixaUCxCUyxzcSxQUy5yZWdpc3RlclJvdXRlcyhuT3QpLEpMLEtMLGxxLGNPdCxFUixncSxkcSx2cSxhQSx4cSxwcSxyRCxzeixZeHQsS04sQ3Esc090LGt4dF0sYm9vdHN0cmFwOlthcV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhkT3Qse2RlY2xhcmF0aW9uczpbYXFdLGltcG9ydHM6W3RULFV2LFpQLEJTLHNxLFBTLEpMLEtMLGxxLGNPdCxFUixncSxkcSx2cSxhQSx4cSxwcSxyRCxzeixZeHQsS04sQ3Esc090LGt4dF19KSwibG9hZGluZyIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP0Z2KCkuYm9vdHN0cmFwTW9kdWxlKGRPdCk6d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCgoKT0+e0Z2KCkuYm9vdHN0cmFwTW9kdWxlKGRPdCl9KSksKGZ1bmN0aW9uIHBPdCgpe2lmKGJfKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGVuYWJsZSBwcm9kIG1vZGUgYWZ0ZXIgcGxhdGZvcm0gc2V0dXAuIik7KHZvaWQgMD09PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJihqbi5uZ0Rldk1vZGU9ITEpLGhfPSExfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKCl9KSgpOwo=", + "headers": [ + [ + "content-type", + "application/javascript; charset=utf-8" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + } + } + }, + "id": "PW2NAam_7irv", + "outputId": "38b8995a-c139-441c-e393-56c11f214655" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Reusing TensorBoard on port 6006 (pid 639), started 0:12:12 ago. (Use '!kill 639' to kill it.)" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "\n (async () => {\n const url = new URL(await google.colab.kernel.proxyPort(6006, {'cache': true}));\n url.searchParams.set('tensorboardColab', 'true');\n const iframe = document.createElement('iframe');\n iframe.src = url;\n iframe.setAttribute('width', '100%');\n iframe.setAttribute('height', '800');\n iframe.setAttribute('frameborder', 0);\n document.body.appendChild(iframe);\n })();\n ", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# load tensorboard in colab\n", + "%load_ext tensorboard\n", + "\n", + "# see curves in tensorboard\n", + "%tensorboard --logdir ./tutorial_exps" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MfQ-yspZLuuI" + }, + "source": [ + "## Test the Trained Detector\n", + "\n", + "After finetuning the detector, let's visualize the prediction results!" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 854 + }, + "id": "_MuZurfGLq0p", + "outputId": "5df4dc5f-5b90-46c3-9aeb-a4d0ac13564a" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/content/mmdetection/mmdet/datasets/utils.py:69: UserWarning: \"ImageToTensor\" pipeline is replaced by \"DefaultFormatBundle\" for batch inference. It is recommended to manually replace it in the test data pipeline in your config file.\n", + " 'data pipeline in your config file.', UserWarning)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "img = mmcv.imread('balloon/train/7178882742_f090f3ce56_k.jpg')\n", + "\n", + "model.cfg = cfg\n", + "result = inference_detector(model, img)\n", + "show_result_pyplot(model, img, result)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6rzruCwFgPXm" + }, + "source": [ + "## What to Do Next?\n", + "\n", + "So far, we have learnt how to test and train Mask R-CNN. To further explore the segmentation task, you could do several other things as shown below:\n", + "\n", + "- Try cascade methods, e.g., [Cascade Mask R-CNN](https://github.com/open-mmlab/mmdetection/tree/master/configs/cascade_rcnn) and [HTC](https://github.com/open-mmlab/mmdetection/tree/master/configs/htc) in [MMDetection model zoo](https://github.com/open-mmlab/mmdetection/blob/master/docs/en/model_zoo.md). They are powerful detectors that are ranked high in many benchmarks, e.g., COCO dataset.\n", + "- Try single-stage methods, e.g., [K-Net](https://github.com/ZwwWayne/K-Net) and [Dense-RepPoints](https://github.com/justimyhxu/Dense-RepPoints). These two algorithms are based on MMDetection. Box-free instance segmentation is a new trend in the instance segmentation community.\n", + "- Try semantic segmentation. Semantic segmentation is also a popular task with wide applications. You can explore [MMSegmentation](https://github.com/open-mmlab/mmsegmentation/); we also provide a [colab tutorial](https://github.com/open-mmlab/mmsegmentation/blob/master/demo/MMSegmentation_Tutorial.ipynb) for semantic segmentation using MMSegmentation.\n" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "collapsed_sections": [], + "name": "tutorial_03_image_segmentation_final.ipynb", + "provenance": [], + "toc_visible": true + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/demo/MMDet_Tutorial.ipynb b/demo/MMDet_Tutorial.ipynb index 4b8604a878b..71b562f7edc 100644 --- a/demo/MMDet_Tutorial.ipynb +++ b/demo/MMDet_Tutorial.ipynb @@ -1,1656 +1,2066 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "tJxJHruNLb7Y" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aGYwt_UjIrqp" - }, - "source": [ - "# MMDetection Tutorial\n", - "\n", - "Welcome to MMDetection! This is the official colab tutorial for using MMDetection. In this tutorial, you will learn\n", - "- Perform inference with a MMDet detector.\n", - "- Train a new detector with a new dataset.\n", - "\n", - "Let's start!\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "aGYwt_UjIrqp" + }, + "source": [ + "# Object Detection\n", + "\n", + "In this tutorial, you will learn:\n", + "- the basic structure of Faster R-CNN.\n", + "- to perform inference with a MMDetection detector.\n", + "- to train a new detector with a new dataset.\n", + "\n", + "Let's start!\n" + ] }, - "id": "Wi4LPmsR66sy", - "outputId": "8eb8aadf-1c70-42dd-9105-1a3dad85c504" - }, - "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "nvcc: NVIDIA (R) Cuda compiler driver\n", - "Copyright (c) 2005-2019 NVIDIA Corporation\n", - "Built on Sun_Jul_28_19:07:16_PDT_2019\n", - "Cuda compilation tools, release 10.1, V10.1.243\n", - "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n", - "Copyright (C) 2017 Free Software Foundation, Inc.\n", - "This is free software; see the source for copying conditions. There is NO\n", - "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", - "\n" - ] - } - ], - "source": [ - "# Check nvcc version\n", - "!nvcc -V\n", - "# Check GCC version\n", - "!gcc --version" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" + "cell_type": "markdown", + "metadata": { + "id": "tJxJHruNLb7Y" + }, + "source": [ + "## Install MMDetection" + ] }, - "id": "gkGnB9WyHSXB", - "outputId": "f1360573-c24a-4a8f-98cd-cc654c1d7d05" - }, - "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n", - "Collecting torch==1.5.1+cu101\n", - "\u001b[?25l Downloading https://download.pytorch.org/whl/cu101/torch-1.5.1%2Bcu101-cp36-cp36m-linux_x86_64.whl (704.4MB)\n", - "\u001b[K |████████████████████████████████| 704.4MB 26kB/s \n", - "\u001b[?25hCollecting torchvision==0.6.1+cu101\n", - "\u001b[?25l Downloading https://download.pytorch.org/whl/cu101/torchvision-0.6.1%2Bcu101-cp36-cp36m-linux_x86_64.whl (6.6MB)\n", - "\u001b[K |████████████████████████████████| 6.6MB 60.4MB/s \n", - "\u001b[?25hRequirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.6/dist-packages (from torch==1.5.1+cu101) (1.19.5)\n", - "Requirement already satisfied, skipping upgrade: future in /usr/local/lib/python3.6/dist-packages (from torch==1.5.1+cu101) (0.16.0)\n", - "Requirement already satisfied, skipping upgrade: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision==0.6.1+cu101) (7.0.0)\n", - "Installing collected packages: torch, torchvision\n", - " Found existing installation: torch 1.7.0+cu101\n", - " Uninstalling torch-1.7.0+cu101:\n", - " Successfully uninstalled torch-1.7.0+cu101\n", - " Found existing installation: torchvision 0.8.1+cu101\n", - " Uninstalling torchvision-0.8.1+cu101:\n", - " Successfully uninstalled torchvision-0.8.1+cu101\n", - "Successfully installed torch-1.5.1+cu101 torchvision-0.6.1+cu101\n", - "Collecting mmcv-full\n", - "\u001b[?25l Downloading https://files.pythonhosted.org/packages/30/f6/763845494c67ec6469992c8196c2458bdc12ff9c749de14d20a000da765d/mmcv-full-1.2.6.tar.gz (226kB)\n", - "\u001b[K |████████████████████████████████| 235kB 15.8MB/s \n", - "\u001b[?25hCollecting addict\n", - " Downloading https://files.pythonhosted.org/packages/6a/00/b08f23b7d7e1e14ce01419a467b583edbb93c6cdb8654e54a9cc579cd61f/addict-2.4.0-py3-none-any.whl\n", - "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from mmcv-full) (1.19.5)\n", - "Requirement already satisfied: Pillow in /usr/local/lib/python3.6/dist-packages (from mmcv-full) (7.0.0)\n", - "Requirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from mmcv-full) (3.13)\n", - "Collecting yapf\n", - "\u001b[?25l Downloading https://files.pythonhosted.org/packages/c1/5d/d84677fe852bc5e091739acda444a9b6700ffc6b11a21b00dd244c8caef0/yapf-0.30.0-py2.py3-none-any.whl (190kB)\n", - "\u001b[K |████████████████████████████████| 194kB 53.0MB/s \n", - "\u001b[?25hBuilding wheels for collected packages: mmcv-full\n", - " Building wheel for mmcv-full (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for mmcv-full: filename=mmcv_full-1.2.6-cp36-cp36m-linux_x86_64.whl size=20243694 sha256=8742a849334b62e8e3f7b695fd546b033111501586a94fe5612aab54f7edebfa\n", - " Stored in directory: /root/.cache/pip/wheels/40/39/64/7c5ab43621826eb41d31f1df14a8acabf74d879fdf33dc9d79\n", - "Successfully built mmcv-full\n", - "Installing collected packages: addict, yapf, mmcv-full\n", - "Successfully installed addict-2.4.0 mmcv-full-1.2.6 yapf-0.30.0\n", - "Cloning into 'mmdetection'...\n", - "remote: Enumerating objects: 50, done.\u001b[K\n", - "remote: Counting objects: 100% (50/50), done.\u001b[K\n", - "remote: Compressing objects: 100% (49/49), done.\u001b[K\n", - "remote: Total 15882 (delta 7), reused 5 (delta 1), pack-reused 15832\u001b[K\n", - "Receiving objects: 100% (15882/15882), 16.93 MiB | 33.41 MiB/s, done.\n", - "Resolving deltas: 100% (10915/10915), done.\n", - "/content/mmdetection\n", - "Obtaining file:///content/mmdetection\n", - "Requirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (from mmdet==2.9.0) (3.2.2)\n", - "Collecting mmpycocotools\n", - " Downloading https://files.pythonhosted.org/packages/99/51/1bc1d79f296347eeb2d1a2e0606885ab1e4682833bf275fd39c189952e26/mmpycocotools-12.0.3.tar.gz\n", - "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from mmdet==2.9.0) (1.19.5)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from mmdet==2.9.0) (1.15.0)\n", - "Collecting terminaltables\n", - " Downloading https://files.pythonhosted.org/packages/9b/c4/4a21174f32f8a7e1104798c445dacdc1d4df86f2f26722767034e4de4bff/terminaltables-3.1.0.tar.gz\n", - "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmdet==2.9.0) (2.8.1)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmdet==2.9.0) (2.4.7)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmdet==2.9.0) (1.3.1)\n", - "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmdet==2.9.0) (0.10.0)\n", - "Requirement already satisfied: setuptools>=18.0 in /usr/local/lib/python3.6/dist-packages (from mmpycocotools->mmdet==2.9.0) (53.0.0)\n", - "Requirement already satisfied: cython>=0.27.3 in /usr/local/lib/python3.6/dist-packages (from mmpycocotools->mmdet==2.9.0) (0.29.21)\n", - "Building wheels for collected packages: mmpycocotools, terminaltables\n", - " Building wheel for mmpycocotools (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for mmpycocotools: filename=mmpycocotools-12.0.3-cp36-cp36m-linux_x86_64.whl size=265912 sha256=1e5525c4339f76072ed09fecd12765fe7544e94745b91fb76fca95658e3dea7b\n", - " Stored in directory: /root/.cache/pip/wheels/a2/b0/8d/3307912785a42bc80f673946fac676d5c596eee537af7a599c\n", - " Building wheel for terminaltables (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for terminaltables: filename=terminaltables-3.1.0-cp36-none-any.whl size=15358 sha256=93fdde0610537c38e16b17f6df08bbc2be3c1b19e266b5d4e5fd7aef039bb218\n", - " Stored in directory: /root/.cache/pip/wheels/30/6b/50/6c75775b681fb36cdfac7f19799888ef9d8813aff9e379663e\n", - "Successfully built mmpycocotools terminaltables\n", - "Installing collected packages: mmpycocotools, terminaltables, mmdet\n", - " Running setup.py develop for mmdet\n", - "Successfully installed mmdet mmpycocotools-12.0.3 terminaltables-3.1.0\n", - "Requirement already satisfied: Pillow==7.0.0 in /usr/local/lib/python3.6/dist-packages (7.0.0)\n" - ] - } - ], - "source": [ - "# install dependencies: (use cu101 because colab has CUDA 10.1)\n", - "!pip install -U torch==1.5.1+cu101 torchvision==0.6.1+cu101 -f https://download.pytorch.org/whl/torch_stable.html\n", - "\n", - "# install mmcv-full thus we could use CUDA operators\n", - "!pip install mmcv-full\n", - "\n", - "# Install mmdetection\n", - "!rm -rf mmdetection\n", - "!git clone https://github.com/open-mmlab/mmdetection.git\n", - "%cd mmdetection\n", - "\n", - "!pip install -e .\n", - "\n", - "# install Pillow 7.0.0 back in order to avoid bug in colab\n", - "!pip install Pillow==7.0.0" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Wi4LPmsR66sy", + "outputId": "a5005e9d-afb9-4d06-d51c-2c3fa19687b8" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "nvcc: NVIDIA (R) Cuda compiler driver\n", + "Copyright (c) 2005-2020 NVIDIA Corporation\n", + "Built on Mon_Oct_12_20:09:46_PDT_2020\n", + "Cuda compilation tools, release 11.1, V11.1.105\n", + "Build cuda_11.1.TC455_06.29190527_0\n", + "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n", + "Copyright (C) 2017 Free Software Foundation, Inc.\n", + "This is free software; see the source for copying conditions. There is NO\n", + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", + "\n" + ] + } + ], + "source": [ + "# Check nvcc version\n", + "!nvcc -V\n", + "# Check GCC version\n", + "!gcc --version" + ] }, - "id": "6hD0mmMixT0p", - "outputId": "5316598c-233a-4140-db12-64d3a0df216b" - }, - "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "1.5.1+cu101 True\n", - "2.9.0\n", - "10.1\n", - "GCC 7.5\n" - ] - } - ], - "source": [ - "# Check Pytorch installation\n", - "import torch, torchvision\n", - "print(torch.__version__, torch.cuda.is_available())\n", - "\n", - "# Check MMDetection installation\n", - "import mmdet\n", - "print(mmdet.__version__)\n", - "\n", - "# Check mmcv installation\n", - "from mmcv.ops import get_compiling_cuda_version, get_compiler_version\n", - "print(get_compiling_cuda_version())\n", - "print(get_compiler_version())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gi9zw03oM4CH" - }, - "source": [ - "## Perform inference with a MMDet detector\n", - "MMDetection already provides high level APIs to do inference and training." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "gkGnB9WyHSXB", + "outputId": "6af7be0b-a75f-4e52-b54b-8d92212f7722" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n", + "Collecting torch==1.9.0+cu111\n", + " Downloading https://download.pytorch.org/whl/cu111/torch-1.9.0%2Bcu111-cp37-cp37m-linux_x86_64.whl (2041.3 MB)\n", + "\u001b[K |█████████████ | 834.1 MB 1.5 MB/s eta 0:13:16tcmalloc: large alloc 1147494400 bytes == 0x55a4587ba000 @ 0x7f26db5db615 0x55a41edd03bc 0x55a41eeb118a 0x55a41edd31cd 0x55a41eec5b3d 0x55a41ee47458 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee472c0 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41eec6986 0x55a41ee43350 0x55a41eec6986 0x55a41ee43350 0x55a41eec6986 0x55a41ee43350 0x55a41edd4f19 0x55a41ee18a79 0x55a41edd3b32 0x55a41ee471dd 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee42eae 0x55a41edd49da 0x55a41ee43108 0x55a41ee4202f\n", + "\u001b[K |████████████████▌ | 1055.7 MB 1.4 MB/s eta 0:11:52tcmalloc: large alloc 1434370048 bytes == 0x55a49ce10000 @ 0x7f26db5db615 0x55a41edd03bc 0x55a41eeb118a 0x55a41edd31cd 0x55a41eec5b3d 0x55a41ee47458 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee472c0 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41eec6986 0x55a41ee43350 0x55a41eec6986 0x55a41ee43350 0x55a41eec6986 0x55a41ee43350 0x55a41edd4f19 0x55a41ee18a79 0x55a41edd3b32 0x55a41ee471dd 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee42eae 0x55a41edd49da 0x55a41ee43108 0x55a41ee4202f\n", + "\u001b[K |█████████████████████ | 1336.2 MB 1.3 MB/s eta 0:09:01tcmalloc: large alloc 1792966656 bytes == 0x55a421c42000 @ 0x7f26db5db615 0x55a41edd03bc 0x55a41eeb118a 0x55a41edd31cd 0x55a41eec5b3d 0x55a41ee47458 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee472c0 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41eec6986 0x55a41ee43350 0x55a41eec6986 0x55a41ee43350 0x55a41eec6986 0x55a41ee43350 0x55a41edd4f19 0x55a41ee18a79 0x55a41edd3b32 0x55a41ee471dd 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee42eae 0x55a41edd49da 0x55a41ee43108 0x55a41ee4202f\n", + "\u001b[K |██████████████████████████▌ | 1691.1 MB 1.3 MB/s eta 0:04:36tcmalloc: large alloc 2241208320 bytes == 0x55a48ca2a000 @ 0x7f26db5db615 0x55a41edd03bc 0x55a41eeb118a 0x55a41edd31cd 0x55a41eec5b3d 0x55a41ee47458 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee472c0 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41eec6986 0x55a41ee43350 0x55a41eec6986 0x55a41ee43350 0x55a41eec6986 0x55a41ee43350 0x55a41edd4f19 0x55a41ee18a79 0x55a41edd3b32 0x55a41ee471dd 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee42eae 0x55a41edd49da 0x55a41ee43108 0x55a41ee4202f\n", + "\u001b[K |████████████████████████████████| 2041.3 MB 1.1 MB/s eta 0:00:01tcmalloc: large alloc 2041348096 bytes == 0x55a51238c000 @ 0x7f26db5da1e7 0x55a41ee065d7 0x55a41edd03bc 0x55a41eeb118a 0x55a41edd31cd 0x55a41eec5b3d 0x55a41ee47458 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43108 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43108 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43108 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43108 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43108 0x55a41edd49da 0x55a41ee43108 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41ee4202f\n", + "tcmalloc: large alloc 2551685120 bytes == 0x55a600300000 @ 0x7f26db5db615 0x55a41edd03bc 0x55a41eeb118a 0x55a41edd31cd 0x55a41eec5b3d 0x55a41ee47458 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43108 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43108 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43108 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43108 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43108 0x55a41edd49da 0x55a41ee43108 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41ee4202f 0x55a41edd4aba 0x55a41ee43cd4 0x55a41ee4202f 0x55a41edd5151\n", + "\u001b[K |████████████████████████████████| 2041.3 MB 7.2 kB/s \n", + "\u001b[?25hCollecting torchvision==0.10.0+cu111\n", + " Downloading https://download.pytorch.org/whl/cu111/torchvision-0.10.0%2Bcu111-cp37-cp37m-linux_x86_64.whl (23.2 MB)\n", + "\u001b[K |████████████████████████████████| 23.2 MB 13.8 MB/s \n", + "\u001b[?25hRequirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from torch==1.9.0+cu111) (3.10.0.2)\n", + "Requirement already satisfied: pillow>=5.3.0 in /usr/local/lib/python3.7/dist-packages (from torchvision==0.10.0+cu111) (7.1.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from torchvision==0.10.0+cu111) (1.19.5)\n", + "Installing collected packages: torch, torchvision\n", + " Attempting uninstall: torch\n", + " Found existing installation: torch 1.10.0+cu111\n", + " Uninstalling torch-1.10.0+cu111:\n", + " Successfully uninstalled torch-1.10.0+cu111\n", + " Attempting uninstall: torchvision\n", + " Found existing installation: torchvision 0.11.1+cu111\n", + " Uninstalling torchvision-0.11.1+cu111:\n", + " Successfully uninstalled torchvision-0.11.1+cu111\n", + "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", + "torchtext 0.11.0 requires torch==1.10.0, but you have torch 1.9.0+cu111 which is incompatible.\n", + "torchaudio 0.10.0+cu111 requires torch==1.10.0, but you have torch 1.9.0+cu111 which is incompatible.\u001b[0m\n", + "Successfully installed torch-1.9.0+cu111 torchvision-0.10.0+cu111\n", + "Looking in links: https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html\n", + "Collecting mmcv-full\n", + " Downloading https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/mmcv_full-1.4.4-cp37-cp37m-manylinux1_x86_64.whl (67.3 MB)\n", + "\u001b[K |████████████████████████████████| 67.3 MB 1.3 MB/s \n", + "\u001b[?25hRequirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (21.3)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (1.19.5)\n", + "Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (3.13)\n", + "Collecting addict\n", + " Downloading addict-2.4.0-py3-none-any.whl (3.8 kB)\n", + "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (4.1.2.30)\n", + "Collecting yapf\n", + " Downloading yapf-0.32.0-py2.py3-none-any.whl (190 kB)\n", + "\u001b[K |████████████████████████████████| 190 kB 5.1 MB/s \n", + "\u001b[?25hRequirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (7.1.2)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging->mmcv-full) (3.0.7)\n", + "Installing collected packages: yapf, addict, mmcv-full\n", + "Successfully installed addict-2.4.0 mmcv-full-1.4.4 yapf-0.32.0\n", + "Cloning into 'mmdetection'...\n", + "remote: Enumerating objects: 22983, done.\u001b[K\n", + "remote: Counting objects: 100% (25/25), done.\u001b[K\n", + "remote: Compressing objects: 100% (23/23), done.\u001b[K\n", + "remote: Total 22983 (delta 4), reused 17 (delta 2), pack-reused 22958\u001b[K\n", + "Receiving objects: 100% (22983/22983), 25.79 MiB | 34.48 MiB/s, done.\n", + "Resolving deltas: 100% (16102/16102), done.\n", + "/content/mmdetection\n", + "Obtaining file:///content/mmdetection\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (3.2.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (1.19.5)\n", + "Requirement already satisfied: pycocotools in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (2.0.4)\n", + "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (1.15.0)\n", + "Collecting terminaltables\n", + " Downloading terminaltables-3.1.10-py2.py3-none-any.whl (15 kB)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (1.3.2)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (3.0.7)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (0.11.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (2.8.2)\n", + "Installing collected packages: terminaltables, mmdet\n", + " Running setup.py develop for mmdet\n", + "Successfully installed mmdet-2.21.0 terminaltables-3.1.10\n" + ] + } + ], + "source": [ + "# install dependencies: (use cu111 because colab has CUDA 11.1)\n", + "!pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html\n", + "\n", + "# install mmcv-full thus we could use CUDA operators\n", + "!pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html\n", + "\n", + "# Install mmdetection\n", + "!rm -rf mmdetection\n", + "!git clone https://github.com/open-mmlab/mmdetection.git\n", + "%cd mmdetection\n", + "\n", + "!pip install -e ." + ] }, - "id": "j4doHX4exvS1", - "outputId": "688ef595-5742-4210-90d0-b841044a7892" - }, - "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2021-02-20 03:03:09-- https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth\n", - "Resolving download.openmmlab.com (download.openmmlab.com)... 47.252.96.35\n", - "Connecting to download.openmmlab.com (download.openmmlab.com)|47.252.96.35|:80... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 177867103 (170M) [application/octet-stream]\n", - "Saving to: ‘checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth’\n", - "\n", - "checkpoints/mask_rc 100%[===================>] 169.63M 8.44MB/s in 21s \n", - "\n", - "2021-02-20 03:03:32 (8.19 MB/s) - ‘checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth’ saved [177867103/177867103]\n", - "\n" - ] - } - ], - "source": [ - "!mkdir checkpoints\n", - "!wget -c https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth \\\n", - " -O checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "id": "8M5KUnX7Np3h" - }, - "outputs": [], - "source": [ - "from mmdet.apis import inference_detector, init_detector, show_result_pyplot\n", - "\n", - "# Choose to use a config and initialize the detector\n", - "config = 'configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco.py'\n", - "# Setup a checkpoint file to load\n", - "checkpoint = 'checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth'\n", - "# initialize the detector\n", - "model = init_detector(config, checkpoint, device='cuda:0')" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "_YeUiqAoCaoV", + "outputId": "7f894255-c0a0-4ca7-9083-2cf0e2c0646e" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'CUDA available': True,\n", + " 'CUDA_HOME': '/usr/local/cuda',\n", + " 'GCC': 'gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0',\n", + " 'GPU 0': 'Tesla T4',\n", + " 'MMCV': '1.4.4',\n", + " 'MMCV CUDA Compiler': '11.1',\n", + " 'MMCV Compiler': 'GCC 7.3',\n", + " 'NVCC': 'Build cuda_11.1.TC455_06.29190527_0',\n", + " 'OpenCV': '4.1.2',\n", + " 'PyTorch': '1.9.0+cu111',\n", + " 'PyTorch compiling details': 'PyTorch built with:\\n - GCC 7.3\\n - C++ Version: 201402\\n - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications\\n - Intel(R) MKL-DNN v2.1.2 (Git Hash 98be7e8afa711dc9b66c8ff3504129cb82013cdb)\\n - OpenMP 201511 (a.k.a. OpenMP 4.5)\\n - NNPACK is enabled\\n - CPU capability usage: AVX2\\n - CUDA Runtime 11.1\\n - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86\\n - CuDNN 8.0.5\\n - Magma 2.5.2\\n - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.1, CUDNN_VERSION=8.0.5, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.9.0, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, \\n',\n", + " 'Python': '3.7.12 (default, Jan 15 2022, 18:48:18) [GCC 7.5.0]',\n", + " 'TorchVision': '0.10.0+cu111',\n", + " 'sys.platform': 'linux'}" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from mmcv import collect_env\n", + "collect_env()" + ] }, - "id": "Wi6DRpsQPEmV", - "outputId": "8ea1de7e-d20f-44cf-9967-24578d51ff16" - }, - "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "/content/mmdetection/mmdet/datasets/utils.py:66: UserWarning: \"ImageToTensor\" pipeline is replaced by \"DefaultFormatBundle\" for batch inference. It is recommended to manually replace it in the test data pipeline in your config file.\n", - " 'data pipeline in your config file.', UserWarning)\n" - ] - } - ], - "source": [ - "# Use the detector to do inference\n", - "img = 'demo/demo.jpg'\n", - "result = inference_detector(model, img)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 576 + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "6hD0mmMixT0p", + "outputId": "ac4aaaeb-6b18-4500-c95c-6f781cda76fc" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.9.0+cu111 True\n", + "2.21.0\n", + "11.1\n", + "GCC 7.3\n" + ] + } + ], + "source": [ + "# Check Pytorch installation\n", + "import torch, torchvision\n", + "print(torch.__version__, torch.cuda.is_available())\n", + "\n", + "# Check MMDetection installation\n", + "import mmdet\n", + "print(mmdet.__version__)\n", + "\n", + "# Check mmcv installation\n", + "from mmcv.ops import get_compiling_cuda_version, get_compiler_version\n", + "print(get_compiling_cuda_version())\n", + "print(get_compiler_version())" + ] }, - "id": "UsJU5D-QPX8L", - "outputId": "04df7cef-6393-4147-da43-ab89f3b29a56" - }, - "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "/content/mmdetection/mmdet/apis/inference.py:205: UserWarning: \"block\" will be deprecated in v2.9.0,Please use \"wait_time\"\n", - " warnings.warn('\"block\" will be deprecated in v2.9.0,'\n", - "/content/mmdetection/mmdet/apis/inference.py:207: UserWarning: \"fig_size\" are deprecated and takes no effect.\n", - " warnings.warn('\"fig_size\" are deprecated and takes no effect.')\n", - "/content/mmdetection/mmdet/core/visualization/image.py:75: UserWarning: \"font_scale\" will be deprecated in v2.9.0,Please use \"font_size\"\n", - " warnings.warn('\"font_scale\" will be deprecated in v2.9.0,'\n" - ] + "cell_type": "markdown", + "metadata": { + "id": "gi9zw03oM4CH" + }, + "source": [ + "## Perform Inference with An MMDet detector\n", + "\n" + ] }, { - "data": { - "image/png": "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", - "text/plain": [ - "
" + "cell_type": "markdown", + "metadata": { + "id": "s99mDGBG1S1z" + }, + "source": [ + "### A two-stage detector\n", + "\n", + "In this tutorial, we use Faster R-CNN, a simple two-stage detector as an example.\n", + "\n", + "The high-level architecture of Faster R-CNN is shown in the following picture. More details can be found in the [paper](https://arxiv.org/abs/1506.01497).\n", + "\n", + "![faster rcnn](https://pic1.zhimg.com/80/v2-c0172be282021a1029f7b72b51079ffe_1440w.jpg)\n", + "\n", + "![mmdet](https://pic2.zhimg.com/v2-e49ebcf931b5cf424ed311338f9ff35d_b.jpg)\n", + "\n", + "Briefly, it uses a convolutional neural network (CNN) as backbone to extract features from an image. Then, it uses a region proposal network (RPN) to predict proposals, i.e., potential objects. After that, it uses a feature extractor to crop features for the region of interests (RoI), and uses a RoI Head to perform classification and bounding box prediction.\n", + "\n" ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "# Let's plot the result\n", - "show_result_pyplot(model, img, result, score_thr=0.3)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7GrWIJywLV-V" - }, - "source": [ - "## Train a detector on customized dataset\n", - "\n", - "To train a new detector, there are usually three things to do:\n", - "1. Support a new dataset\n", - "2. Modify the config\n", - "3. Train a new detector\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "E73y5Lru-wBx" - }, - "source": [ - "### Support a new dataset\n", - "\n", - "There are three ways to support a new dataset in MMDetection: \n", - " 1. reorganize the dataset into COCO format.\n", - " 2. reorganize the dataset into a middle format.\n", - " 3. implement a new dataset.\n", - "\n", - "Usually we recommend to use the first two methods which are usually easier than the third.\n", - "\n", - "In this tutorial, we gives an example that converting the data into the format of existing datasets like COCO, VOC, etc. Other methods and more advanced usages can be found in the [doc](https://mmdetection.readthedocs.io/en/latest/tutorials/customize_dataset.html).\n", - "\n", - "Firstly, let's download a tiny dataset obtained from [KITTI](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d). We select the first 75 images and their annotations from the 3D object detection dataset (it is the same dataset as the 2D object detection dataset but has 3D annotations). We convert the original images from PNG to JPEG format with 80% quality to reduce the size of dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" }, - "id": "rHnw5Q_nARXq", - "outputId": "a61e0685-6441-4ff2-994a-15da68e507fe" - }, - "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2021-02-20 03:04:04-- https://download.openmmlab.com/mmdetection/data/kitti_tiny.zip\n", - "Resolving download.openmmlab.com (download.openmmlab.com)... 47.252.96.35\n", - "Connecting to download.openmmlab.com (download.openmmlab.com)|47.252.96.35|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 6918271 (6.6M) [application/zip]\n", - "Saving to: ‘kitti_tiny.zip’\n", - "\n", - "kitti_tiny.zip 100%[===================>] 6.60M 8.44MB/s in 0.8s \n", - "\n", - "2021-02-20 03:04:06 (8.44 MB/s) - ‘kitti_tiny.zip’ saved [6918271/6918271]\n", - "\n" - ] - } - ], - "source": [ - "# download, decompress the data\n", - "!wget https://download.openmmlab.com/mmdetection/data/kitti_tiny.zip\n", - "!unzip kitti_tiny.zip > /dev/null" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "j4doHX4exvS1", + "outputId": "b42719be-cb70-47a1-867a-56649a794c44" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-02-08 11:29:13-- https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco_20210526_095054-1f77628b.pth\n", + "Resolving download.openmmlab.com (download.openmmlab.com)... 47.252.96.28\n", + "Connecting to download.openmmlab.com (download.openmmlab.com)|47.252.96.28|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 167291982 (160M) [application/octet-stream]\n", + "Saving to: ‘checkpoints/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco_20210526_095054-1f77628b.pth’\n", + "\n", + "checkpoints/faster_ 100%[===================>] 159.54M 7.92MB/s in 22s \n", + "\n", + "2022-02-08 11:29:37 (7.28 MB/s) - ‘checkpoints/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco_20210526_095054-1f77628b.pth’ saved [167291982/167291982]\n", + "\n" + ] + } + ], + "source": [ + "# We download the pre-trained checkpoints for inference and finetuning.\n", + "!mkdir checkpoints\n", + "!wget -c https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco_20210526_095054-1f77628b.pth \\\n", + " -O checkpoints/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco_20210526_095054-1f77628b.pth" + ] }, - "id": "Wuwxw1oZRtVZ", - "outputId": "7f88e82a-0825-4c9e-e584-bd43589feeaf" - }, - "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading package lists...\n", - "Building dependency tree...\n", - "Reading state information...\n", - "The following NEW packages will be installed:\n", - " tree\n", - "0 upgraded, 1 newly installed, 0 to remove and 10 not upgraded.\n", - "Need to get 40.7 kB of archives.\n", - "After this operation, 105 kB of additional disk space will be used.\n", - "Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 tree amd64 1.7.0-5 [40.7 kB]\n", - "Fetched 40.7 kB in 0s (165 kB/s)\n", - "Selecting previously unselected package tree.\n", - "(Reading database ... 146442 files and directories currently installed.)\n", - "Preparing to unpack .../tree_1.7.0-5_amd64.deb ...\n", - "Unpacking tree (1.7.0-5) ...\n", - "Setting up tree (1.7.0-5) ...\n", - "Processing triggers for man-db (2.8.3-2ubuntu0.1) ...\n", - "kitti_tiny\n", - "├── training\n", - "│   ├── image_2\n", - "│   │   ├── 000000.jpeg\n", - "│   │   ├── 000001.jpeg\n", - "│   │   ├── 000002.jpeg\n", - "│   │   ├── 000003.jpeg\n", - "│   │   ├── 000004.jpeg\n", - "│   │   ├── 000005.jpeg\n", - "│   │   ├── 000006.jpeg\n", - "│   │   ├── 000007.jpeg\n", - "│   │   ├── 000008.jpeg\n", - "│   │   ├── 000009.jpeg\n", - "│   │   ├── 000010.jpeg\n", - "│   │   ├── 000011.jpeg\n", - "│   │   ├── 000012.jpeg\n", - "│   │   ├── 000013.jpeg\n", - "│   │   ├── 000014.jpeg\n", - "│   │   ├── 000015.jpeg\n", - "│   │   ├── 000016.jpeg\n", - "│   │   ├── 000017.jpeg\n", - "│   │   ├── 000018.jpeg\n", - "│   │   ├── 000019.jpeg\n", - "│   │   ├── 000020.jpeg\n", - "│   │   ├── 000021.jpeg\n", - "│   │   ├── 000022.jpeg\n", - "│   │   ├── 000023.jpeg\n", - "│   │   ├── 000024.jpeg\n", - "│   │   ├── 000025.jpeg\n", - "│   │   ├── 000026.jpeg\n", - "│   │   ├── 000027.jpeg\n", - "│   │   ├── 000028.jpeg\n", - "│   │   ├── 000029.jpeg\n", - "│   │   ├── 000030.jpeg\n", - "│   │   ├── 000031.jpeg\n", - "│   │   ├── 000032.jpeg\n", - "│   │   ├── 000033.jpeg\n", - "│   │   ├── 000034.jpeg\n", - "│   │   ├── 000035.jpeg\n", - "│   │   ├── 000036.jpeg\n", - "│   │   ├── 000037.jpeg\n", - "│   │   ├── 000038.jpeg\n", - "│   │   ├── 000039.jpeg\n", - "│   │   ├── 000040.jpeg\n", - "│   │   ├── 000041.jpeg\n", - "│   │   ├── 000042.jpeg\n", - "│   │   ├── 000043.jpeg\n", - "│   │   ├── 000044.jpeg\n", - "│   │   ├── 000045.jpeg\n", - "│   │   ├── 000046.jpeg\n", - "│   │   ├── 000047.jpeg\n", - "│   │   ├── 000048.jpeg\n", - "│   │   ├── 000049.jpeg\n", - "│   │   ├── 000050.jpeg\n", - "│   │   ├── 000051.jpeg\n", - "│   │   ├── 000052.jpeg\n", - "│   │   ├── 000053.jpeg\n", - "│   │   ├── 000054.jpeg\n", - "│   │   ├── 000055.jpeg\n", - "│   │   ├── 000056.jpeg\n", - "│   │   ├── 000057.jpeg\n", - "│   │   ├── 000058.jpeg\n", - "│   │   ├── 000059.jpeg\n", - "│   │   ├── 000060.jpeg\n", - "│   │   ├── 000061.jpeg\n", - "│   │   ├── 000062.jpeg\n", - "│   │   ├── 000063.jpeg\n", - "│   │   ├── 000064.jpeg\n", - "│   │   ├── 000065.jpeg\n", - "│   │   ├── 000066.jpeg\n", - "│   │   ├── 000067.jpeg\n", - "│   │   ├── 000068.jpeg\n", - "│   │   ├── 000069.jpeg\n", - "│   │   ├── 000070.jpeg\n", - "│   │   ├── 000071.jpeg\n", - "│   │   ├── 000072.jpeg\n", - "│   │   ├── 000073.jpeg\n", - "│   │   └── 000074.jpeg\n", - "│   └── label_2\n", - "│   ├── 000000.txt\n", - "│   ├── 000001.txt\n", - "│   ├── 000002.txt\n", - "│   ├── 000003.txt\n", - "│   ├── 000004.txt\n", - "│   ├── 000005.txt\n", - "│   ├── 000006.txt\n", - "│   ├── 000007.txt\n", - "│   ├── 000008.txt\n", - "│   ├── 000009.txt\n", - "│   ├── 000010.txt\n", - "│   ├── 000011.txt\n", - "│   ├── 000012.txt\n", - "│   ├── 000013.txt\n", - "│   ├── 000014.txt\n", - "│   ├── 000015.txt\n", - "│   ├── 000016.txt\n", - "│   ├── 000017.txt\n", - "│   ├── 000018.txt\n", - "│   ├── 000019.txt\n", - "│   ├── 000020.txt\n", - "│   ├── 000021.txt\n", - "│   ├── 000022.txt\n", - "│   ├── 000023.txt\n", - "│   ├── 000024.txt\n", - "│   ├── 000025.txt\n", - "│   ├── 000026.txt\n", - "│   ├── 000027.txt\n", - "│   ├── 000028.txt\n", - "│   ├── 000029.txt\n", - "│   ├── 000030.txt\n", - "│   ├── 000031.txt\n", - "│   ├── 000032.txt\n", - "│   ├── 000033.txt\n", - "│   ├── 000034.txt\n", - "│   ├── 000035.txt\n", - "│   ├── 000036.txt\n", - "│   ├── 000037.txt\n", - "│   ├── 000038.txt\n", - "│   ├── 000039.txt\n", - "│   ├── 000040.txt\n", - "│   ├── 000041.txt\n", - "│   ├── 000042.txt\n", - "│   ├── 000043.txt\n", - "│   ├── 000044.txt\n", - "│   ├── 000045.txt\n", - "│   ├── 000046.txt\n", - "│   ├── 000047.txt\n", - "│   ├── 000048.txt\n", - "│   ├── 000049.txt\n", - "│   ├── 000050.txt\n", - "│   ├── 000051.txt\n", - "│   ├── 000052.txt\n", - "│   ├── 000053.txt\n", - "│   ├── 000054.txt\n", - "│   ├── 000055.txt\n", - "│   ├── 000056.txt\n", - "│   ├── 000057.txt\n", - "│   ├── 000058.txt\n", - "│   ├── 000059.txt\n", - "│   ├── 000060.txt\n", - "│   ├── 000061.txt\n", - "│   ├── 000062.txt\n", - "│   ├── 000063.txt\n", - "│   ├── 000064.txt\n", - "│   ├── 000065.txt\n", - "│   ├── 000066.txt\n", - "│   ├── 000067.txt\n", - "│   ├── 000068.txt\n", - "│   ├── 000069.txt\n", - "│   ├── 000070.txt\n", - "│   ├── 000071.txt\n", - "│   ├── 000072.txt\n", - "│   ├── 000073.txt\n", - "│   └── 000074.txt\n", - "├── train.txt\n", - "└── val.txt\n", - "\n", - "3 directories, 152 files\n" - ] - } - ], - "source": [ - "# Check the directory structure of the tiny data\n", - "\n", - "# Install tree first\n", - "!apt-get -q install tree\n", - "!tree kitti_tiny" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 304 + "cell_type": "code", + "execution_count": 7, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8M5KUnX7Np3h", + "outputId": "a061bced-262e-404f-94c5-6400a75078b3" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "load checkpoint from local path: checkpoints/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco_20210526_095054-1f77628b.pth\n" + ] + }, + { + "data": { + "text/plain": [ + "FasterRCNN(\n", + " (backbone): ResNet(\n", + " (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", + " (layer1): ResLayer(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer2): ResLayer(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer3): ResLayer(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (4): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (5): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer4): ResLayer(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " )\n", + " init_cfg={'type': 'Pretrained', 'checkpoint': 'open-mmlab://detectron2/resnet50_caffe'}\n", + " (neck): FPN(\n", + " (lateral_convs): ModuleList(\n", + " (0): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1))\n", + " )\n", + " (1): ConvModule(\n", + " (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))\n", + " )\n", + " (2): ConvModule(\n", + " (conv): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1))\n", + " )\n", + " (3): ConvModule(\n", + " (conv): Conv2d(2048, 256, kernel_size=(1, 1), stride=(1, 1))\n", + " )\n", + " )\n", + " (fpn_convs): ModuleList(\n", + " (0): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " )\n", + " (1): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " )\n", + " (2): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " )\n", + " (3): ConvModule(\n", + " (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " )\n", + " )\n", + " )\n", + " init_cfg={'type': 'Xavier', 'layer': 'Conv2d', 'distribution': 'uniform'}\n", + " (rpn_head): RPNHead(\n", + " (loss_cls): CrossEntropyLoss()\n", + " (loss_bbox): L1Loss()\n", + " (rpn_conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (rpn_cls): Conv2d(256, 3, kernel_size=(1, 1), stride=(1, 1))\n", + " (rpn_reg): Conv2d(256, 12, kernel_size=(1, 1), stride=(1, 1))\n", + " )\n", + " init_cfg={'type': 'Normal', 'layer': 'Conv2d', 'std': 0.01}\n", + " (roi_head): StandardRoIHead(\n", + " (bbox_roi_extractor): SingleRoIExtractor(\n", + " (roi_layers): ModuleList(\n", + " (0): RoIAlign(output_size=(7, 7), spatial_scale=0.25, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " (1): RoIAlign(output_size=(7, 7), spatial_scale=0.125, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " (2): RoIAlign(output_size=(7, 7), spatial_scale=0.0625, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " (3): RoIAlign(output_size=(7, 7), spatial_scale=0.03125, sampling_ratio=0, pool_mode=avg, aligned=True, use_torchvision=False)\n", + " )\n", + " )\n", + " (bbox_head): Shared2FCBBoxHead(\n", + " (loss_cls): CrossEntropyLoss()\n", + " (loss_bbox): L1Loss()\n", + " (fc_cls): Linear(in_features=1024, out_features=81, bias=True)\n", + " (fc_reg): Linear(in_features=1024, out_features=320, bias=True)\n", + " (shared_convs): ModuleList()\n", + " (shared_fcs): ModuleList(\n", + " (0): Linear(in_features=12544, out_features=1024, bias=True)\n", + " (1): Linear(in_features=1024, out_features=1024, bias=True)\n", + " )\n", + " (cls_convs): ModuleList()\n", + " (cls_fcs): ModuleList()\n", + " (reg_convs): ModuleList()\n", + " (reg_fcs): ModuleList()\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " init_cfg=[{'type': 'Normal', 'std': 0.01, 'override': {'name': 'fc_cls'}}, {'type': 'Normal', 'std': 0.001, 'override': {'name': 'fc_reg'}}, {'type': 'Xavier', 'distribution': 'uniform', 'override': [{'name': 'shared_fcs'}, {'name': 'cls_fcs'}, {'name': 'reg_fcs'}]}]\n", + " )\n", + ")" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import mmcv\n", + "from mmcv.runner import load_checkpoint\n", + "\n", + "from mmdet.apis import inference_detector, show_result_pyplot\n", + "from mmdet.models import build_detector\n", + "\n", + "# Choose to use a config and initialize the detector\n", + "config = 'configs/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco.py'\n", + "# Setup a checkpoint file to load\n", + "checkpoint = 'checkpoints/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco_20210526_095054-1f77628b.pth'\n", + "\n", + "# Set the device to be used for evaluation\n", + "device='cuda:0'\n", + "\n", + "# Load the config\n", + "config = mmcv.Config.fromfile(config)\n", + "# Set pretrained to be None since we do not need pretrained model here\n", + "config.model.pretrained = None\n", + "\n", + "# Initialize the detector\n", + "model = build_detector(config.model)\n", + "\n", + "# Load checkpoint\n", + "checkpoint = load_checkpoint(model, checkpoint, map_location=device)\n", + "\n", + "# Set the classes of models for inference\n", + "model.CLASSES = checkpoint['meta']['CLASSES']\n", + "\n", + "# We need to set the model's cfg for inference\n", + "model.cfg = config\n", + "\n", + "# Convert the model to GPU\n", + "model.to(device)\n", + "# Convert the model into evaluation mode\n", + "model.eval()" + ] }, - "id": "YnQQqzOWzE91", - "outputId": "455b3e61-0463-4dc5-e21f-17dd204938fb" - }, - "outputs": [ { - "data": { - "image/png": "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", - "text/plain": [ - "
" + "cell_type": "markdown", + "metadata": { + "id": "fLgFRMtP91ue" + }, + "source": [ + "From the printed model, we will find that the model does consist of the components that we described earlier. It uses ResNet as its CNN backbone, and has a RPN head and RoI Head. In addition, the model has a neural network module, named neck, directly after the CNN backbone. It is a [feature pyramid network (FPN)](https://arxiv.org/abs/1612.03144) for enhancing the multi-scale features.\n", + "\n", + "\n", + "### Inference the detector\n", + "\n", + "Since the model is successfully created and loaded, let's see how good it is. We use the high-level API `inference_detector` implemented in the MMDetection. This API is created to ease the inference process. The details of the codes can be found [here](https://github.com/open-mmlab/mmdetection/blob/master/mmdet/apis/inference.py#L15)." ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "# Let's take a look at the dataset image\n", - "import mmcv\n", - "import matplotlib.pyplot as plt\n", - "\n", - "img = mmcv.imread('kitti_tiny/training/image_2/000073.jpeg')\n", - "plt.figure(figsize=(15, 10))\n", - "plt.imshow(mmcv.bgr2rgb(img))\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PMZvtSIl71qi" - }, - "source": [ - "After downloading the data, we need to implement a function to convert the kitti annotation format into the middle format. In this tutorial we choose to convert them in **`load_annotations`** function in a newly implemented **`KittiTinyDataset`**.\n", - "\n", - "Let's take a look at the annotation txt file.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" }, - "id": "n7rwalnPd6e1", - "outputId": "539d4183-cae3-4485-f894-772c334b613f" - }, - "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Pedestrian 0.00 0 -0.20 712.40 143.00 810.73 307.92 1.89 0.48 1.20 1.84 1.47 8.41 0.01\n" - ] - } - ], - "source": [ - "# Check the label of a single image\n", - "!cat kitti_tiny/training/label_2/000000.txt" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QA1pFg-FeO3l" - }, - "source": [ - "According to the KITTI's documentation, the first column indicates the class of the object, and the 5th to 8th columns indicates the bboxes. We need to read annotations of each image and convert them into middle format MMDetection accept is as below:\n", - "\n", - "```python\n", - "[\n", - " {\n", - " 'filename': 'a.jpg',\n", - " 'width': 1280,\n", - " 'height': 720,\n", - " 'ann': {\n", - " 'bboxes': (n, 4),\n", - " 'labels': (n, ),\n", - " 'bboxes_ignore': (k, 4), (optional field)\n", - " 'labels_ignore': (k, 4) (optional field)\n", - " }\n", - " },\n", - " ...\n", - "]\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "id": "GdSaB2ad0EdX" - }, - "outputs": [], - "source": [ - "import copy\n", - "import os.path as osp\n", - "\n", - "import mmcv\n", - "import numpy as np\n", - "\n", - "from mmdet.datasets.builder import DATASETS\n", - "from mmdet.datasets.custom import CustomDataset\n", - "\n", - "@DATASETS.register_module()\n", - "class KittiTinyDataset(CustomDataset):\n", - "\n", - " CLASSES = ('Car', 'Pedestrian', 'Cyclist')\n", - "\n", - " def load_annotations(self, ann_file):\n", - " cat2label = {k: i for i, k in enumerate(self.CLASSES)}\n", - " # load image list from file\n", - " image_list = mmcv.list_from_file(self.ann_file)\n", - " \n", - " data_infos = []\n", - " # convert annotations to middle format\n", - " for image_id in image_list:\n", - " filename = f'{self.img_prefix}/{image_id}.jpeg'\n", - " image = mmcv.imread(filename)\n", - " height, width = image.shape[:2]\n", - " \n", - " data_info = dict(filename=f'{image_id}.jpeg', width=width, height=height)\n", - " \n", - " # load annotations\n", - " label_prefix = self.img_prefix.replace('image_2', 'label_2')\n", - " lines = mmcv.list_from_file(osp.join(label_prefix, f'{image_id}.txt'))\n", - " \n", - " content = [line.strip().split(' ') for line in lines]\n", - " bbox_names = [x[0] for x in content]\n", - " bboxes = [[float(info) for info in x[4:8]] for x in content]\n", - " \n", - " gt_bboxes = []\n", - " gt_labels = []\n", - " gt_bboxes_ignore = []\n", - " gt_labels_ignore = []\n", - " \n", - " # filter 'DontCare'\n", - " for bbox_name, bbox in zip(bbox_names, bboxes):\n", - " if bbox_name in cat2label:\n", - " gt_labels.append(cat2label[bbox_name])\n", - " gt_bboxes.append(bbox)\n", - " else:\n", - " gt_labels_ignore.append(-1)\n", - " gt_bboxes_ignore.append(bbox)\n", - "\n", - " data_anno = dict(\n", - " bboxes=np.array(gt_bboxes, dtype=np.float32).reshape(-1, 4),\n", - " labels=np.array(gt_labels, dtype=np.long),\n", - " bboxes_ignore=np.array(gt_bboxes_ignore,\n", - " dtype=np.float32).reshape(-1, 4),\n", - " labels_ignore=np.array(gt_labels_ignore, dtype=np.long))\n", - "\n", - " data_info.update(ann=data_anno)\n", - " data_infos.append(data_info)\n", - "\n", - " return data_infos" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PwqJOpBe-bMj" - }, - "source": [ - "### Modify the config\n", - "\n", - "In the next step, we need to modify the config for the training.\n", - "To accelerate the process, we finetune a detector using a pre-trained detector." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "id": "hamZrlnH-YDD" - }, - "outputs": [], - "source": [ - "from mmcv import Config\n", - "cfg = Config.fromfile('./configs/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco.py')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HntziLGq-92Z" - }, - "source": [ - "Given a config that trains a Faster R-CNN on COCO dataset, we need to modify some values to use it for training Faster R-CNN on KITTI dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Wi6DRpsQPEmV", + "outputId": "a0e1e23c-d78c-4381-9f4c-5603c81a0f87" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/content/mmdetection/mmdet/datasets/utils.py:69: UserWarning: \"ImageToTensor\" pipeline is replaced by \"DefaultFormatBundle\" for batch inference. It is recommended to manually replace it in the test data pipeline in your config file.\n", + " 'data pipeline in your config file.', UserWarning)\n", + "/usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at /pytorch/c10/core/TensorImpl.h:1156.)\n", + " return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n" + ] + } + ], + "source": [ + "# Use the detector to do inference\n", + "img = 'demo/demo.jpg'\n", + "result = inference_detector(model, img)" + ] }, - "id": "pUbwD8uV0PR8", - "outputId": "43e76fd7-c74b-4ac8-c8b5-4d2cc94e610b" - }, - "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Config:\n", - "model = dict(\n", - " type='FasterRCNN',\n", - " pretrained='open-mmlab://detectron2/resnet50_caffe',\n", - " backbone=dict(\n", - " type='ResNet',\n", - " depth=50,\n", - " num_stages=4,\n", - " out_indices=(0, 1, 2, 3),\n", - " frozen_stages=1,\n", - " norm_cfg=dict(type='BN', requires_grad=False),\n", - " norm_eval=True,\n", - " style='caffe'),\n", - " neck=dict(\n", - " type='FPN',\n", - " in_channels=[256, 512, 1024, 2048],\n", - " out_channels=256,\n", - " num_outs=5),\n", - " rpn_head=dict(\n", - " type='RPNHead',\n", - " in_channels=256,\n", - " feat_channels=256,\n", - " anchor_generator=dict(\n", - " type='AnchorGenerator',\n", - " scales=[8],\n", - " ratios=[0.5, 1.0, 2.0],\n", - " strides=[4, 8, 16, 32, 64]),\n", - " bbox_coder=dict(\n", - " type='DeltaXYWHBBoxCoder',\n", - " target_means=[0.0, 0.0, 0.0, 0.0],\n", - " target_stds=[1.0, 1.0, 1.0, 1.0]),\n", - " loss_cls=dict(\n", - " type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0),\n", - " loss_bbox=dict(type='L1Loss', loss_weight=1.0)),\n", - " roi_head=dict(\n", - " type='StandardRoIHead',\n", - " bbox_roi_extractor=dict(\n", - " type='SingleRoIExtractor',\n", - " roi_layer=dict(type='RoIAlign', output_size=7, sampling_ratio=0),\n", - " out_channels=256,\n", - " featmap_strides=[4, 8, 16, 32]),\n", - " bbox_head=dict(\n", - " type='Shared2FCBBoxHead',\n", - " in_channels=256,\n", - " fc_out_channels=1024,\n", - " roi_feat_size=7,\n", - " num_classes=3,\n", - " bbox_coder=dict(\n", - " type='DeltaXYWHBBoxCoder',\n", - " target_means=[0.0, 0.0, 0.0, 0.0],\n", - " target_stds=[0.1, 0.1, 0.2, 0.2]),\n", - " reg_class_agnostic=False,\n", - " loss_cls=dict(\n", - " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),\n", - " loss_bbox=dict(type='L1Loss', loss_weight=1.0))),\n", - " train_cfg=dict(\n", - " rpn=dict(\n", - " assigner=dict(\n", - " type='MaxIoUAssigner',\n", - " pos_iou_thr=0.7,\n", - " neg_iou_thr=0.3,\n", - " min_pos_iou=0.3,\n", - " match_low_quality=True,\n", - " ignore_iof_thr=-1),\n", - " sampler=dict(\n", - " type='RandomSampler',\n", - " num=256,\n", - " pos_fraction=0.5,\n", - " neg_pos_ub=-1,\n", - " add_gt_as_proposals=False),\n", - " allowed_border=-1,\n", - " pos_weight=-1,\n", - " debug=False),\n", - " rpn_proposal=dict(\n", - " nms_across_levels=False,\n", - " nms_pre=2000,\n", - " nms_post=1000,\n", - " max_num=1000,\n", - " nms_thr=0.7,\n", - " min_bbox_size=0),\n", - " rcnn=dict(\n", - " assigner=dict(\n", - " type='MaxIoUAssigner',\n", - " pos_iou_thr=0.5,\n", - " neg_iou_thr=0.5,\n", - " min_pos_iou=0.5,\n", - " match_low_quality=False,\n", - " ignore_iof_thr=-1),\n", - " sampler=dict(\n", - " type='RandomSampler',\n", - " num=512,\n", - " pos_fraction=0.25,\n", - " neg_pos_ub=-1,\n", - " add_gt_as_proposals=True),\n", - " pos_weight=-1,\n", - " debug=False)),\n", - " test_cfg=dict(\n", - " rpn=dict(\n", - " nms_across_levels=False,\n", - " nms_pre=1000,\n", - " nms_post=1000,\n", - " max_num=1000,\n", - " nms_thr=0.7,\n", - " min_bbox_size=0),\n", - " rcnn=dict(\n", - " score_thr=0.05,\n", - " nms=dict(type='nms', iou_threshold=0.5),\n", - " max_per_img=100)))\n", - "dataset_type = 'KittiTinyDataset'\n", - "data_root = 'kitti_tiny/'\n", - "img_norm_cfg = dict(\n", - " mean=[103.53, 116.28, 123.675], std=[1.0, 1.0, 1.0], to_rgb=False)\n", - "train_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(type='LoadAnnotations', with_bbox=True),\n", - " dict(\n", - " type='Resize',\n", - " img_scale=[(1333, 640), (1333, 672), (1333, 704), (1333, 736),\n", - " (1333, 768), (1333, 800)],\n", - " multiscale_mode='value',\n", - " keep_ratio=True),\n", - " dict(type='RandomFlip', flip_ratio=0.5),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[103.53, 116.28, 123.675],\n", - " std=[1.0, 1.0, 1.0],\n", - " to_rgb=False),\n", - " dict(type='Pad', size_divisor=32),\n", - " dict(type='DefaultFormatBundle'),\n", - " dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels'])\n", - "]\n", - "test_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(1333, 800),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[103.53, 116.28, 123.675],\n", - " std=[1.0, 1.0, 1.0],\n", - " to_rgb=False),\n", - " dict(type='Pad', size_divisor=32),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - "]\n", - "data = dict(\n", - " samples_per_gpu=2,\n", - " workers_per_gpu=2,\n", - " train=dict(\n", - " type='KittiTinyDataset',\n", - " ann_file='train.txt',\n", - " img_prefix='training/image_2',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(type='LoadAnnotations', with_bbox=True),\n", - " dict(\n", - " type='Resize',\n", - " img_scale=[(1333, 640), (1333, 672), (1333, 704), (1333, 736),\n", - " (1333, 768), (1333, 800)],\n", - " multiscale_mode='value',\n", - " keep_ratio=True),\n", - " dict(type='RandomFlip', flip_ratio=0.5),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[103.53, 116.28, 123.675],\n", - " std=[1.0, 1.0, 1.0],\n", - " to_rgb=False),\n", - " dict(type='Pad', size_divisor=32),\n", - " dict(type='DefaultFormatBundle'),\n", - " dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels'])\n", - " ],\n", - " data_root='kitti_tiny/'),\n", - " val=dict(\n", - " type='KittiTinyDataset',\n", - " ann_file='val.txt',\n", - " img_prefix='training/image_2',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(1333, 800),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[103.53, 116.28, 123.675],\n", - " std=[1.0, 1.0, 1.0],\n", - " to_rgb=False),\n", - " dict(type='Pad', size_divisor=32),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - " ],\n", - " data_root='kitti_tiny/'),\n", - " test=dict(\n", - " type='KittiTinyDataset',\n", - " ann_file='train.txt',\n", - " img_prefix='training/image_2',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(1333, 800),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[103.53, 116.28, 123.675],\n", - " std=[1.0, 1.0, 1.0],\n", - " to_rgb=False),\n", - " dict(type='Pad', size_divisor=32),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - " ],\n", - " data_root='kitti_tiny/'))\n", - "evaluation = dict(interval=12, metric='mAP')\n", - "optimizer = dict(type='SGD', lr=0.0025, momentum=0.9, weight_decay=0.0001)\n", - "optimizer_config = dict(grad_clip=None)\n", - "lr_config = dict(\n", - " policy='step',\n", - " warmup=None,\n", - " warmup_iters=500,\n", - " warmup_ratio=0.001,\n", - " step=[8, 11])\n", - "runner = dict(type='EpochBasedRunner', max_epochs=12)\n", - "checkpoint_config = dict(interval=12)\n", - "log_config = dict(interval=10, hooks=[dict(type='TextLoggerHook')])\n", - "custom_hooks = [dict(type='NumClassCheckHook')]\n", - "dist_params = dict(backend='nccl')\n", - "log_level = 'INFO'\n", - "load_from = 'checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth'\n", - "resume_from = None\n", - "workflow = [('train', 1)]\n", - "work_dir = './tutorial_exps'\n", - "seed = 0\n", - "gpu_ids = range(0, 1)\n", - "\n" - ] - } - ], - "source": [ - "from mmdet.apis import set_random_seed\n", - "\n", - "# Modify dataset type and path\n", - "cfg.dataset_type = 'KittiTinyDataset'\n", - "cfg.data_root = 'kitti_tiny/'\n", - "\n", - "cfg.data.test.type = 'KittiTinyDataset'\n", - "cfg.data.test.data_root = 'kitti_tiny/'\n", - "cfg.data.test.ann_file = 'train.txt'\n", - "cfg.data.test.img_prefix = 'training/image_2'\n", - "\n", - "cfg.data.train.type = 'KittiTinyDataset'\n", - "cfg.data.train.data_root = 'kitti_tiny/'\n", - "cfg.data.train.ann_file = 'train.txt'\n", - "cfg.data.train.img_prefix = 'training/image_2'\n", - "\n", - "cfg.data.val.type = 'KittiTinyDataset'\n", - "cfg.data.val.data_root = 'kitti_tiny/'\n", - "cfg.data.val.ann_file = 'val.txt'\n", - "cfg.data.val.img_prefix = 'training/image_2'\n", - "\n", - "# modify num classes of the model in box head\n", - "cfg.model.roi_head.bbox_head.num_classes = 3\n", - "# We can still use the pre-trained Mask RCNN model though we do not need to\n", - "# use the mask branch\n", - "cfg.load_from = 'checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth'\n", - "\n", - "# Set up working dir to save files and logs.\n", - "cfg.work_dir = './tutorial_exps'\n", - "\n", - "# The original learning rate (LR) is set for 8-GPU training.\n", - "# We divide it by 8 since we only use one GPU.\n", - "cfg.optimizer.lr = 0.02 / 8\n", - "cfg.lr_config.warmup = None\n", - "cfg.log_config.interval = 10\n", - "\n", - "# Change the evaluation metric since we use customized dataset.\n", - "cfg.evaluation.metric = 'mAP'\n", - "# We can set the evaluation interval to reduce the evaluation times\n", - "cfg.evaluation.interval = 12\n", - "# We can set the checkpoint saving interval to reduce the storage cost\n", - "cfg.checkpoint_config.interval = 12\n", - "\n", - "# Set seed thus the results are more reproducible\n", - "cfg.seed = 0\n", - "set_random_seed(0, deterministic=False)\n", - "cfg.gpu_ids = range(1)\n", - "\n", - "\n", - "# We can initialize the logger for training and have a look\n", - "# at the final config used for training\n", - "print(f'Config:\\n{cfg.pretty_text}')\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "111W_oZV_3wa" - }, - "source": [ - "### Train a new detector\n", - "\n", - "Finally, lets initialize the dataset and detector, then train a new detector!" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000, - "referenced_widgets": [ - "c3018c8715924d2b83d817cc6c448a2d", - "aca1c388eeca4c87b5b6306302630303", - "b9b75e2d894e467289cb83070b8bb998", - "767c8f4fbc924027885851365ceb6292", - "1489fe29d91748cab449718d687f4ee1", - "bf1e5d0665a141ac9c2085062ba77801", - "171ea927699a474084c49f8874942ae8", - "7189ce8a6634410a9e633832e8151070" - ] + "cell_type": "code", + "execution_count": 9, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 474 + }, + "id": "UsJU5D-QPX8L", + "outputId": "b70aceab-d264-4f5e-cdbe-5db1389eeb29" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Let's plot the result\n", + "show_result_pyplot(model, img, result, score_thr=0.3)" + ] }, - "id": "7WBWHu010PN3", - "outputId": "fac18cba-16a3-491e-b3ae-1ab99d71c325" - }, - "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "/content/mmdetection/mmdet/datasets/custom.py:155: UserWarning: CustomDataset does not support filtering empty gt images.\n", - " 'CustomDataset does not support filtering empty gt images.')\n", - "2021-02-20 03:04:44,198 - mmdet - INFO - load model from: open-mmlab://detectron2/resnet50_caffe\n", - "Downloading: \"https://download.openmmlab.com/pretrain/third_party/resnet50_msra-5891d200.pth\" to /root/.cache/torch/checkpoints/resnet50_msra-5891d200.pth\n" - ] + "cell_type": "markdown", + "metadata": { + "id": "7GrWIJywLV-V" + }, + "source": [ + "## Train A Detector on A Customized Dataset\n", + "\n", + "To train a new detector, there are usually three things to do:\n", + "1. Support a new dataset\n", + "2. Modify the config\n", + "3. Train a new detector\n", + "\n" + ] }, { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c3018c8715924d2b83d817cc6c448a2d", - "version_major": 2, - "version_minor": 0 + "cell_type": "markdown", + "metadata": { + "id": "E73y5Lru-wBx" }, - "text/plain": [ - "HBox(children=(FloatProgress(value=0.0, max=94284731.0), HTML(value='')))" + "source": [ + "### Support a new dataset\n", + "\n", + "There are three ways to support a new dataset in MMDetection: \n", + " 1. Reorganize the dataset into a COCO format.\n", + " 2. Reorganize the dataset into a middle format.\n", + " 3. Implement a new dataset.\n", + "\n", + "We recommend the first two methods, as they are usually easier than the third one.\n", + "\n", + "In this tutorial, we give an example that converts the data into the formats of existing datasets, e.g. COCO, VOC, etc. Other methods and more advanced usages can be found in the [doc](https://mmdetection.readthedocs.io/en/latest/tutorials/customize_dataset.html#).\n", + "\n", + "First, let's download a tiny dataset obtained from [KITTI](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d). We select the first 75 images and their annotations from the 3D object detection dataset (it is the same dataset as the 2D object detection dataset but with 3D annotations). We convert the original images from PNG to JPEG format with 80% quality to reduce the size of the dataset." ] - }, - "metadata": { - "tags": [] - }, - "output_type": "display_data" }, { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-02-20 03:04:57,872 - mmdet - WARNING - The model and loaded state dict do not match exactly\n", - "\n", - "unexpected key in source state_dict: conv1.bias\n", - "\n" - ] + "cell_type": "code", + "execution_count": 10, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "rHnw5Q_nARXq", + "outputId": "089f8810-be3a-4627-e3d7-945b3c5cf29e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-02-08 11:33:06-- https://download.openmmlab.com/mmdetection/data/kitti_tiny.zip\n", + "Resolving download.openmmlab.com (download.openmmlab.com)... 47.245.16.66\n", + "Connecting to download.openmmlab.com (download.openmmlab.com)|47.245.16.66|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 6918271 (6.6M) [application/zip]\n", + "Saving to: ‘kitti_tiny.zip’\n", + "\n", + "kitti_tiny.zip 100%[===================>] 6.60M 4.69MB/s in 1.4s \n", + "\n", + "2022-02-08 11:33:09 (4.69 MB/s) - ‘kitti_tiny.zip’ saved [6918271/6918271]\n", + "\n" + ] + } + ], + "source": [ + "# download, decompress the data\n", + "!wget https://download.openmmlab.com/mmdetection/data/kitti_tiny.zip\n", + "!unzip kitti_tiny.zip > /dev/null" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Wuwxw1oZRtVZ", + "outputId": "c1cb0332-a381-4685-c692-ea7a6279d65d" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading package lists...\n", + "Building dependency tree...\n", + "Reading state information...\n", + "The following packages were automatically installed and are no longer required:\n", + " cuda-command-line-tools-10-0 cuda-command-line-tools-10-1\n", + " cuda-command-line-tools-11-0 cuda-compiler-10-0 cuda-compiler-10-1\n", + " cuda-compiler-11-0 cuda-cuobjdump-10-0 cuda-cuobjdump-10-1\n", + " cuda-cuobjdump-11-0 cuda-cupti-10-0 cuda-cupti-10-1 cuda-cupti-11-0\n", + " cuda-cupti-dev-11-0 cuda-documentation-10-0 cuda-documentation-10-1\n", + " cuda-documentation-11-0 cuda-documentation-11-1 cuda-gdb-10-0 cuda-gdb-10-1\n", + " cuda-gdb-11-0 cuda-gpu-library-advisor-10-0 cuda-gpu-library-advisor-10-1\n", + " cuda-libraries-10-0 cuda-libraries-10-1 cuda-libraries-11-0\n", + " cuda-memcheck-10-0 cuda-memcheck-10-1 cuda-memcheck-11-0 cuda-nsight-10-0\n", + " cuda-nsight-10-1 cuda-nsight-11-0 cuda-nsight-11-1 cuda-nsight-compute-10-0\n", + " cuda-nsight-compute-10-1 cuda-nsight-compute-11-0 cuda-nsight-compute-11-1\n", + " cuda-nsight-systems-10-1 cuda-nsight-systems-11-0 cuda-nsight-systems-11-1\n", + " cuda-nvcc-10-0 cuda-nvcc-10-1 cuda-nvcc-11-0 cuda-nvdisasm-10-0\n", + " cuda-nvdisasm-10-1 cuda-nvdisasm-11-0 cuda-nvml-dev-10-0 cuda-nvml-dev-10-1\n", + " cuda-nvml-dev-11-0 cuda-nvprof-10-0 cuda-nvprof-10-1 cuda-nvprof-11-0\n", + " cuda-nvprune-10-0 cuda-nvprune-10-1 cuda-nvprune-11-0 cuda-nvtx-10-0\n", + " cuda-nvtx-10-1 cuda-nvtx-11-0 cuda-nvvp-10-0 cuda-nvvp-10-1 cuda-nvvp-11-0\n", + " cuda-nvvp-11-1 cuda-samples-10-0 cuda-samples-10-1 cuda-samples-11-0\n", + " cuda-samples-11-1 cuda-sanitizer-11-0 cuda-sanitizer-api-10-1\n", + " cuda-toolkit-10-0 cuda-toolkit-10-1 cuda-toolkit-11-0 cuda-toolkit-11-1\n", + " cuda-tools-10-0 cuda-tools-10-1 cuda-tools-11-0 cuda-tools-11-1\n", + " cuda-visual-tools-10-0 cuda-visual-tools-10-1 cuda-visual-tools-11-0\n", + " cuda-visual-tools-11-1 default-jre dkms freeglut3 freeglut3-dev\n", + " keyboard-configuration libargon2-0 libcap2 libcryptsetup12\n", + " libdevmapper1.02.1 libfontenc1 libidn11 libip4tc0 libjansson4\n", + " libnvidia-cfg1-510 libnvidia-common-460 libnvidia-common-510\n", + " libnvidia-extra-510 libnvidia-fbc1-510 libnvidia-gl-510 libpam-systemd\n", + " libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libxfont2\n", + " libxi-dev libxkbfile1 libxmu-dev libxmu-headers libxnvctrl0 libxtst6\n", + " nsight-compute-2020.2.1 nsight-compute-2022.1.0 nsight-systems-2020.3.2\n", + " nsight-systems-2020.3.4 nsight-systems-2021.5.2 nvidia-dkms-510\n", + " nvidia-kernel-common-510 nvidia-kernel-source-510 nvidia-modprobe\n", + " nvidia-settings openjdk-11-jre policykit-1 policykit-1-gnome python3-xkit\n", + " screen-resolution-extra systemd systemd-sysv udev x11-xkb-utils\n", + " xserver-common xserver-xorg-core-hwe-18.04 xserver-xorg-video-nvidia-510\n", + "Use 'apt autoremove' to remove them.\n", + "The following NEW packages will be installed:\n", + " tree\n", + "0 upgraded, 1 newly installed, 0 to remove and 39 not upgraded.\n", + "Need to get 40.7 kB of archives.\n", + "After this operation, 105 kB of additional disk space will be used.\n", + "Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 tree amd64 1.7.0-5 [40.7 kB]\n", + "Fetched 40.7 kB in 0s (146 kB/s)\n", + "Selecting previously unselected package tree.\n", + "(Reading database ... 155113 files and directories currently installed.)\n", + "Preparing to unpack .../tree_1.7.0-5_amd64.deb ...\n", + "Unpacking tree (1.7.0-5) ...\n", + "Setting up tree (1.7.0-5) ...\n", + "Processing triggers for man-db (2.8.3-2ubuntu0.1) ...\n", + "kitti_tiny\n", + "├── training\n", + "│   ├── image_2\n", + "│   │   ├── 000000.jpeg\n", + "│   │   ├── 000001.jpeg\n", + "│   │   ├── 000002.jpeg\n", + "│   │   ├── 000003.jpeg\n", + "│   │   ├── 000004.jpeg\n", + "│   │   ├── 000005.jpeg\n", + "│   │   ├── 000006.jpeg\n", + "│   │   ├── 000007.jpeg\n", + "│   │   ├── 000008.jpeg\n", + "│   │   ├── 000009.jpeg\n", + "│   │   ├── 000010.jpeg\n", + "│   │   ├── 000011.jpeg\n", + "│   │   ├── 000012.jpeg\n", + "│   │   ├── 000013.jpeg\n", + "│   │   ├── 000014.jpeg\n", + "│   │   ├── 000015.jpeg\n", + "│   │   ├── 000016.jpeg\n", + "│   │   ├── 000017.jpeg\n", + "│   │   ├── 000018.jpeg\n", + "│   │   ├── 000019.jpeg\n", + "│   │   ├── 000020.jpeg\n", + "│   │   ├── 000021.jpeg\n", + "│   │   ├── 000022.jpeg\n", + "│   │   ├── 000023.jpeg\n", + "│   │   ├── 000024.jpeg\n", + "│   │   ├── 000025.jpeg\n", + "│   │   ├── 000026.jpeg\n", + "│   │   ├── 000027.jpeg\n", + "│   │   ├── 000028.jpeg\n", + "│   │   ├── 000029.jpeg\n", + "│   │   ├── 000030.jpeg\n", + "│   │   ├── 000031.jpeg\n", + "│   │   ├── 000032.jpeg\n", + "│   │   ├── 000033.jpeg\n", + "│   │   ├── 000034.jpeg\n", + "│   │   ├── 000035.jpeg\n", + "│   │   ├── 000036.jpeg\n", + "│   │   ├── 000037.jpeg\n", + "│   │   ├── 000038.jpeg\n", + "│   │   ├── 000039.jpeg\n", + "│   │   ├── 000040.jpeg\n", + "│   │   ├── 000041.jpeg\n", + "│   │   ├── 000042.jpeg\n", + "│   │   ├── 000043.jpeg\n", + "│   │   ├── 000044.jpeg\n", + "│   │   ├── 000045.jpeg\n", + "│   │   ├── 000046.jpeg\n", + "│   │   ├── 000047.jpeg\n", + "│   │   ├── 000048.jpeg\n", + "│   │   ├── 000049.jpeg\n", + "│   │   ├── 000050.jpeg\n", + "│   │   ├── 000051.jpeg\n", + "│   │   ├── 000052.jpeg\n", + "│   │   ├── 000053.jpeg\n", + "│   │   ├── 000054.jpeg\n", + "│   │   ├── 000055.jpeg\n", + "│   │   ├── 000056.jpeg\n", + "│   │   ├── 000057.jpeg\n", + "│   │   ├── 000058.jpeg\n", + "│   │   ├── 000059.jpeg\n", + "│   │   ├── 000060.jpeg\n", + "│   │   ├── 000061.jpeg\n", + "│   │   ├── 000062.jpeg\n", + "│   │   ├── 000063.jpeg\n", + "│   │   ├── 000064.jpeg\n", + "│   │   ├── 000065.jpeg\n", + "│   │   ├── 000066.jpeg\n", + "│   │   ├── 000067.jpeg\n", + "│   │   ├── 000068.jpeg\n", + "│   │   ├── 000069.jpeg\n", + "│   │   ├── 000070.jpeg\n", + "│   │   ├── 000071.jpeg\n", + "│   │   ├── 000072.jpeg\n", + "│   │   ├── 000073.jpeg\n", + "│   │   └── 000074.jpeg\n", + "│   └── label_2\n", + "│   ├── 000000.txt\n", + "│   ├── 000001.txt\n", + "│   ├── 000002.txt\n", + "│   ├── 000003.txt\n", + "│   ├── 000004.txt\n", + "│   ├── 000005.txt\n", + "│   ├── 000006.txt\n", + "│   ├── 000007.txt\n", + "│   ├── 000008.txt\n", + "│   ├── 000009.txt\n", + "│   ├── 000010.txt\n", + "│   ├── 000011.txt\n", + "│   ├── 000012.txt\n", + "│   ├── 000013.txt\n", + "│   ├── 000014.txt\n", + "│   ├── 000015.txt\n", + "│   ├── 000016.txt\n", + "│   ├── 000017.txt\n", + "│   ├── 000018.txt\n", + "│   ├── 000019.txt\n", + "│   ├── 000020.txt\n", + "│   ├── 000021.txt\n", + "│   ├── 000022.txt\n", + "│   ├── 000023.txt\n", + "│   ├── 000024.txt\n", + "│   ├── 000025.txt\n", + "│   ├── 000026.txt\n", + "│   ├── 000027.txt\n", + "│   ├── 000028.txt\n", + "│   ├── 000029.txt\n", + "│   ├── 000030.txt\n", + "│   ├── 000031.txt\n", + "│   ├── 000032.txt\n", + "│   ├── 000033.txt\n", + "│   ├── 000034.txt\n", + "│   ├── 000035.txt\n", + "│   ├── 000036.txt\n", + "│   ├── 000037.txt\n", + "│   ├── 000038.txt\n", + "│   ├── 000039.txt\n", + "│   ├── 000040.txt\n", + "│   ├── 000041.txt\n", + "│   ├── 000042.txt\n", + "│   ├── 000043.txt\n", + "│   ├── 000044.txt\n", + "│   ├── 000045.txt\n", + "│   ├── 000046.txt\n", + "│   ├── 000047.txt\n", + "│   ├── 000048.txt\n", + "│   ├── 000049.txt\n", + "│   ├── 000050.txt\n", + "│   ├── 000051.txt\n", + "│   ├── 000052.txt\n", + "│   ├── 000053.txt\n", + "│   ├── 000054.txt\n", + "│   ├── 000055.txt\n", + "│   ├── 000056.txt\n", + "│   ├── 000057.txt\n", + "│   ├── 000058.txt\n", + "│   ├── 000059.txt\n", + "│   ├── 000060.txt\n", + "│   ├── 000061.txt\n", + "│   ├── 000062.txt\n", + "│   ├── 000063.txt\n", + "│   ├── 000064.txt\n", + "│   ├── 000065.txt\n", + "│   ├── 000066.txt\n", + "│   ├── 000067.txt\n", + "│   ├── 000068.txt\n", + "│   ├── 000069.txt\n", + "│   ├── 000070.txt\n", + "│   ├── 000071.txt\n", + "│   ├── 000072.txt\n", + "│   ├── 000073.txt\n", + "│   └── 000074.txt\n", + "├── train.txt\n", + "└── val.txt\n", + "\n", + "3 directories, 152 files\n" + ] + } + ], + "source": [ + "# Check the directory structure of the tiny data\n", + "\n", + "# Install tree first\n", + "!apt-get -q install tree\n", + "!tree kitti_tiny" + ] }, { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-02-20 03:04:58,180 - mmdet - INFO - load checkpoint from checkpoints/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth\n", - "2021-02-20 03:04:58,313 - mmdet - WARNING - The model and loaded state dict do not match exactly\n", - "\n", - "size mismatch for roi_head.bbox_head.fc_cls.weight: copying a param with shape torch.Size([81, 1024]) from checkpoint, the shape in current model is torch.Size([4, 1024]).\n", - "size mismatch for roi_head.bbox_head.fc_cls.bias: copying a param with shape torch.Size([81]) from checkpoint, the shape in current model is torch.Size([4]).\n", - "size mismatch for roi_head.bbox_head.fc_reg.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([12, 1024]).\n", - "size mismatch for roi_head.bbox_head.fc_reg.bias: copying a param with shape torch.Size([320]) from checkpoint, the shape in current model is torch.Size([12]).\n", - "unexpected key in source state_dict: roi_head.mask_head.convs.0.conv.weight, roi_head.mask_head.convs.0.conv.bias, roi_head.mask_head.convs.1.conv.weight, roi_head.mask_head.convs.1.conv.bias, roi_head.mask_head.convs.2.conv.weight, roi_head.mask_head.convs.2.conv.bias, roi_head.mask_head.convs.3.conv.weight, roi_head.mask_head.convs.3.conv.bias, roi_head.mask_head.upsample.weight, roi_head.mask_head.upsample.bias, roi_head.mask_head.conv_logits.weight, roi_head.mask_head.conv_logits.bias\n", - "\n", - "2021-02-20 03:04:58,316 - mmdet - INFO - Start running, host: root@f0e5be20007b, work_dir: /content/mmdetection/tutorial_exps\n", - "2021-02-20 03:04:58,317 - mmdet - INFO - workflow: [('train', 1)], max: 12 epochs\n", - "2021-02-20 03:05:03,791 - mmdet - INFO - Epoch [1][10/25]\tlr: 2.500e-03, eta: 0:02:34, time: 0.531, data_time: 0.222, memory: 2133, loss_rpn_cls: 0.0286, loss_rpn_bbox: 0.0177, loss_cls: 0.5962, acc: 80.5273, loss_bbox: 0.3859, loss: 1.0284\n", - "2021-02-20 03:05:06,998 - mmdet - INFO - Epoch [1][20/25]\tlr: 2.500e-03, eta: 0:01:59, time: 0.321, data_time: 0.021, memory: 2133, loss_rpn_cls: 0.0214, loss_rpn_bbox: 0.0122, loss_cls: 0.1736, acc: 94.0332, loss_bbox: 0.3017, loss: 0.5089\n", - "2021-02-20 03:05:13,968 - mmdet - INFO - Epoch [2][10/25]\tlr: 2.500e-03, eta: 0:01:44, time: 0.530, data_time: 0.221, memory: 2133, loss_rpn_cls: 0.0183, loss_rpn_bbox: 0.0148, loss_cls: 0.1515, acc: 94.8535, loss_bbox: 0.2882, loss: 0.4728\n", - "2021-02-20 03:05:17,195 - mmdet - INFO - Epoch [2][20/25]\tlr: 2.500e-03, eta: 0:01:36, time: 0.323, data_time: 0.021, memory: 2133, loss_rpn_cls: 0.0115, loss_rpn_bbox: 0.0129, loss_cls: 0.1297, acc: 95.3516, loss_bbox: 0.1971, loss: 0.3512\n", - "2021-02-20 03:05:24,202 - mmdet - INFO - Epoch [3][10/25]\tlr: 2.500e-03, eta: 0:01:29, time: 0.533, data_time: 0.221, memory: 2133, loss_rpn_cls: 0.0075, loss_rpn_bbox: 0.0107, loss_cls: 0.0982, acc: 96.3672, loss_bbox: 0.1558, loss: 0.2722\n", - "2021-02-20 03:05:27,479 - mmdet - INFO - Epoch [3][20/25]\tlr: 2.500e-03, eta: 0:01:24, time: 0.327, data_time: 0.021, memory: 2133, loss_rpn_cls: 0.0071, loss_rpn_bbox: 0.0145, loss_cls: 0.1456, acc: 94.5801, loss_bbox: 0.2525, loss: 0.4197\n", - "2021-02-20 03:05:34,565 - mmdet - INFO - Epoch [4][10/25]\tlr: 2.500e-03, eta: 0:01:18, time: 0.538, data_time: 0.222, memory: 2133, loss_rpn_cls: 0.0082, loss_rpn_bbox: 0.0143, loss_cls: 0.1099, acc: 95.8789, loss_bbox: 0.2154, loss: 0.3477\n", - "2021-02-20 03:05:37,889 - mmdet - INFO - Epoch [4][20/25]\tlr: 2.500e-03, eta: 0:01:14, time: 0.332, data_time: 0.021, memory: 2133, loss_rpn_cls: 0.0056, loss_rpn_bbox: 0.0124, loss_cls: 0.1216, acc: 95.4492, loss_bbox: 0.2074, loss: 0.3470\n", - "2021-02-20 03:05:45,023 - mmdet - INFO - Epoch [5][10/25]\tlr: 2.500e-03, eta: 0:01:08, time: 0.544, data_time: 0.221, memory: 2133, loss_rpn_cls: 0.0034, loss_rpn_bbox: 0.0104, loss_cls: 0.1065, acc: 95.8496, loss_bbox: 0.2072, loss: 0.3275\n", - "2021-02-20 03:05:48,367 - mmdet - INFO - Epoch [5][20/25]\tlr: 2.500e-03, eta: 0:01:04, time: 0.334, data_time: 0.021, memory: 2133, loss_rpn_cls: 0.0043, loss_rpn_bbox: 0.0109, loss_cls: 0.0918, acc: 96.7285, loss_bbox: 0.1882, loss: 0.2952\n", - "2021-02-20 03:05:55,575 - mmdet - INFO - Epoch [6][10/25]\tlr: 2.500e-03, eta: 0:00:59, time: 0.548, data_time: 0.222, memory: 2133, loss_rpn_cls: 0.0028, loss_rpn_bbox: 0.0085, loss_cls: 0.0843, acc: 97.1582, loss_bbox: 0.1765, loss: 0.2721\n", - "2021-02-20 03:05:58,963 - mmdet - INFO - Epoch [6][20/25]\tlr: 2.500e-03, eta: 0:00:55, time: 0.339, data_time: 0.022, memory: 2133, loss_rpn_cls: 0.0037, loss_rpn_bbox: 0.0105, loss_cls: 0.0833, acc: 96.8359, loss_bbox: 0.1700, loss: 0.2675\n", - "2021-02-20 03:06:06,144 - mmdet - INFO - Epoch [7][10/25]\tlr: 2.500e-03, eta: 0:00:50, time: 0.545, data_time: 0.221, memory: 2133, loss_rpn_cls: 0.0030, loss_rpn_bbox: 0.0095, loss_cls: 0.0806, acc: 96.9238, loss_bbox: 0.1642, loss: 0.2573\n", - "2021-02-20 03:06:09,550 - mmdet - INFO - Epoch [7][20/25]\tlr: 2.500e-03, eta: 0:00:46, time: 0.340, data_time: 0.022, memory: 2133, loss_rpn_cls: 0.0019, loss_rpn_bbox: 0.0115, loss_cls: 0.0867, acc: 96.6602, loss_bbox: 0.1727, loss: 0.2728\n", - "2021-02-20 03:06:16,846 - mmdet - INFO - Epoch [8][10/25]\tlr: 2.500e-03, eta: 0:00:41, time: 0.553, data_time: 0.223, memory: 2133, loss_rpn_cls: 0.0021, loss_rpn_bbox: 0.0087, loss_cls: 0.0701, acc: 96.9141, loss_bbox: 0.1364, loss: 0.2174\n", - "2021-02-20 03:06:20,318 - mmdet - INFO - Epoch [8][20/25]\tlr: 2.500e-03, eta: 0:00:37, time: 0.347, data_time: 0.022, memory: 2133, loss_rpn_cls: 0.0008, loss_rpn_bbox: 0.0083, loss_cls: 0.0689, acc: 97.3926, loss_bbox: 0.1634, loss: 0.2414\n", - "2021-02-20 03:06:27,654 - mmdet - INFO - Epoch [9][10/25]\tlr: 2.500e-04, eta: 0:00:32, time: 0.555, data_time: 0.221, memory: 2133, loss_rpn_cls: 0.0034, loss_rpn_bbox: 0.0080, loss_cls: 0.0632, acc: 97.5488, loss_bbox: 0.1285, loss: 0.2031\n", - "2021-02-20 03:06:31,136 - mmdet - INFO - Epoch [9][20/25]\tlr: 2.500e-04, eta: 0:00:28, time: 0.348, data_time: 0.022, memory: 2133, loss_rpn_cls: 0.0008, loss_rpn_bbox: 0.0065, loss_cls: 0.0539, acc: 97.9004, loss_bbox: 0.1013, loss: 0.1625\n", - "2021-02-20 03:06:38,476 - mmdet - INFO - Epoch [10][10/25]\tlr: 2.500e-04, eta: 0:00:23, time: 0.554, data_time: 0.221, memory: 2133, loss_rpn_cls: 0.0026, loss_rpn_bbox: 0.0082, loss_cls: 0.0621, acc: 97.6172, loss_bbox: 0.1304, loss: 0.2033\n", - "2021-02-20 03:06:41,997 - mmdet - INFO - Epoch [10][20/25]\tlr: 2.500e-04, eta: 0:00:19, time: 0.352, data_time: 0.022, memory: 2133, loss_rpn_cls: 0.0011, loss_rpn_bbox: 0.0059, loss_cls: 0.0596, acc: 97.8223, loss_bbox: 0.1199, loss: 0.1866\n", - "2021-02-20 03:06:49,368 - mmdet - INFO - Epoch [11][10/25]\tlr: 2.500e-04, eta: 0:00:14, time: 0.557, data_time: 0.221, memory: 2133, loss_rpn_cls: 0.0036, loss_rpn_bbox: 0.0064, loss_cls: 0.0631, acc: 97.5000, loss_bbox: 0.1242, loss: 0.1973\n", - "2021-02-20 03:06:52,881 - mmdet - INFO - Epoch [11][20/25]\tlr: 2.500e-04, eta: 0:00:10, time: 0.351, data_time: 0.022, memory: 2133, loss_rpn_cls: 0.0016, loss_rpn_bbox: 0.0072, loss_cls: 0.0570, acc: 97.9199, loss_bbox: 0.1263, loss: 0.1921\n", - "2021-02-20 03:07:00,207 - mmdet - INFO - Epoch [12][10/25]\tlr: 2.500e-05, eta: 0:00:05, time: 0.554, data_time: 0.222, memory: 2134, loss_rpn_cls: 0.0009, loss_rpn_bbox: 0.0063, loss_cls: 0.0606, acc: 97.6953, loss_bbox: 0.1232, loss: 0.1910\n", - "2021-02-20 03:07:03,655 - mmdet - INFO - Epoch [12][20/25]\tlr: 2.500e-05, eta: 0:00:01, time: 0.345, data_time: 0.022, memory: 2134, loss_rpn_cls: 0.0010, loss_rpn_bbox: 0.0056, loss_cls: 0.0486, acc: 98.1641, loss_bbox: 0.0882, loss: 0.1433\n", - "2021-02-20 03:07:05,260 - mmdet - INFO - Saving checkpoint at 12 epochs\n" - ] + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 304 + }, + "id": "YnQQqzOWzE91", + "outputId": "baf6a89b-dbb2-4212-9e34-7055a9e2574c" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Let's take a look at the dataset image\n", + "import mmcv\n", + "import matplotlib.pyplot as plt\n", + "\n", + "img = mmcv.imread('kitti_tiny/training/image_2/000073.jpeg')\n", + "plt.figure(figsize=(15, 10))\n", + "plt.imshow(mmcv.bgr2rgb(img))\n", + "plt.show()" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 25/25, 11.4 task/s, elapsed: 2s, ETA: 0s\n", - "---------------iou_thr: 0.5---------------\n" - ] + "cell_type": "markdown", + "metadata": { + "id": "PMZvtSIl71qi" + }, + "source": [ + "After downloading the data, we need to implement a function to convert the KITTI annotation format into the middle format. In this tutorial, we choose to convert them in **`load_annotations`** function in a newly implemented **`KittiTinyDataset`**.\n", + "\n", + "Let's take a loot at the annotation txt file.\n", + "\n" + ] }, { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-02-20 03:07:08,400 - mmdet - INFO - \n", - "+------------+-----+------+--------+-------+\n", - "| class | gts | dets | recall | ap |\n", - "+------------+-----+------+--------+-------+\n", - "| Car | 62 | 131 | 0.968 | 0.879 |\n", - "| Pedestrian | 13 | 58 | 0.846 | 0.747 |\n", - "| Cyclist | 7 | 67 | 0.429 | 0.037 |\n", - "+------------+-----+------+--------+-------+\n", - "| mAP | | | | 0.555 |\n", - "+------------+-----+------+--------+-------+\n", - "2021-02-20 03:07:08,403 - mmdet - INFO - Epoch(val) [12][25]\tAP50: 0.5550, mAP: 0.5545\n" - ] - } - ], - "source": [ - "from mmdet.datasets import build_dataset\n", - "from mmdet.models import build_detector\n", - "from mmdet.apis import train_detector\n", - "\n", - "\n", - "# Build dataset\n", - "datasets = [build_dataset(cfg.data.train)]\n", - "\n", - "# Build the detector\n", - "model = build_detector(\n", - " cfg.model, train_cfg=cfg.get('train_cfg'), test_cfg=cfg.get('test_cfg'))\n", - "# Add an attribute for visualization convenience\n", - "model.CLASSES = datasets[0].CLASSES\n", - "\n", - "# Create work_dir\n", - "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n", - "train_detector(model, datasets, cfg, distributed=False, validate=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_vYQF5K2NqqI" - }, - "source": [ - "### Understand the log\n", - "From the log, we can have a basic understanding the training process and know how well the detector is trained.\n", - "\n", - "Firstly, the ResNet-50 backbone pre-trained on ImageNet is loaded, this is a common practice since training from scratch is more cost. The log shows that all the weights of the ResNet-50 backbone are loaded except the `conv1.bias`, which has been merged into `conv.weights`.\n", - "\n", - "Second, since the dataset we are using is small, we loaded a Mask R-CNN model and finetune it for detection. Because the detector we actually using is Faster R-CNN, the weights in mask branch, e.g. `roi_head.mask_head`, are `unexpected key in source state_dict` and not loaded.\n", - "The original Mask R-CNN is trained on COCO dataset which contains 80 classes but KITTI Tiny dataset only have 3 classes. Therefore, the last FC layer of the pre-trained Mask R-CNN for classification has different weight shape and is not used.\n", - "\n", - "Third, after training, the detector is evaluated by the default VOC-style evaluation. The results show that the detector achieves 54.1 mAP on the val dataset,\n", - " not bad!" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "MfQ-yspZLuuI" - }, - "source": [ - "## Test the trained detector\n", - "\n", - "After finetuning the detector, let's visualize the prediction results!" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 578 + "cell_type": "code", + "execution_count": 13, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "n7rwalnPd6e1", + "outputId": "54bfbfa4-463b-45a0-f77c-a80557c1bd69" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pedestrian 0.00 0 -0.20 712.40 143.00 810.73 307.92 1.89 0.48 1.20 1.84 1.47 8.41 0.01\n" + ] + } + ], + "source": [ + "# Check the label of a single image\n", + "!cat kitti_tiny/training/label_2/000000.txt" + ] }, - "id": "_MuZurfGLq0p", - "outputId": "b4a77811-d159-4213-d8cb-b73f5b5b6d1c" - }, - "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "/content/mmdetection/mmdet/datasets/utils.py:66: UserWarning: \"ImageToTensor\" pipeline is replaced by \"DefaultFormatBundle\" for batch inference. It is recommended to manually replace it in the test data pipeline in your config file.\n", - " 'data pipeline in your config file.', UserWarning)\n", - "/content/mmdetection/mmdet/apis/inference.py:205: UserWarning: \"block\" will be deprecated in v2.9.0,Please use \"wait_time\"\n", - " warnings.warn('\"block\" will be deprecated in v2.9.0,'\n", - "/content/mmdetection/mmdet/apis/inference.py:207: UserWarning: \"fig_size\" are deprecated and takes no effect.\n", - " warnings.warn('\"fig_size\" are deprecated and takes no effect.')\n", - "/content/mmdetection/mmdet/core/visualization/image.py:75: UserWarning: \"font_scale\" will be deprecated in v2.9.0,Please use \"font_size\"\n", - " warnings.warn('\"font_scale\" will be deprecated in v2.9.0,'\n" - ] + "cell_type": "markdown", + "metadata": { + "id": "QA1pFg-FeO3l" + }, + "source": [ + "According to the KITTI's documentation, the first column indicates the class of the object, and the 5th to 8th columns indicate the bboxes. We need to read annotations of each image and convert them into middle format that MMDetection can accept, as follows:\n", + "\n", + "```python\n", + "[\n", + " {\n", + " 'filename': 'a.jpg',\n", + " 'width': 1280,\n", + " 'height': 720,\n", + " 'ann': {\n", + " 'bboxes': (n, 4) in (x1, y1, x2, y2) order,\n", + " 'labels': (n, ),\n", + " 'bboxes_ignore': (k, 4), (optional field)\n", + " 'labels_ignore': (k, 4) (optional field)\n", + " }\n", + " },\n", + " ...\n", + "]\n", + "```" + ] }, { - "data": { - "image/png": "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", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "GdSaB2ad0EdX" + }, + "outputs": [], + "source": [ + "import copy\n", + "import os.path as osp\n", + "\n", + "import mmcv\n", + "import numpy as np\n", + "\n", + "from mmdet.datasets.builder import DATASETS\n", + "from mmdet.datasets.custom import CustomDataset\n", + "\n", + "@DATASETS.register_module()\n", + "class KittiTinyDataset(CustomDataset):\n", + "\n", + " CLASSES = ('Car', 'Pedestrian', 'Cyclist')\n", + "\n", + " def load_annotations(self, ann_file):\n", + " cat2label = {k: i for i, k in enumerate(self.CLASSES)}\n", + " # load image list from file\n", + " image_list = mmcv.list_from_file(self.ann_file)\n", + " \n", + " data_infos = []\n", + " # convert annotations to middle format\n", + " for image_id in image_list:\n", + " filename = f'{self.img_prefix}/{image_id}.jpeg'\n", + " image = mmcv.imread(filename)\n", + " height, width = image.shape[:2]\n", + " \n", + " data_info = dict(filename=f'{image_id}.jpeg', width=width, height=height)\n", + " \n", + " # load annotations\n", + " label_prefix = self.img_prefix.replace('image_2', 'label_2')\n", + " lines = mmcv.list_from_file(osp.join(label_prefix, f'{image_id}.txt'))\n", + " \n", + " content = [line.strip().split(' ') for line in lines]\n", + " bbox_names = [x[0] for x in content]\n", + " bboxes = [[float(info) for info in x[4:8]] for x in content]\n", + " \n", + " gt_bboxes = []\n", + " gt_labels = []\n", + " gt_bboxes_ignore = []\n", + " gt_labels_ignore = []\n", + " \n", + " # filter 'DontCare'\n", + " for bbox_name, bbox in zip(bbox_names, bboxes):\n", + " if bbox_name in cat2label:\n", + " gt_labels.append(cat2label[bbox_name])\n", + " gt_bboxes.append(bbox)\n", + " else:\n", + " gt_labels_ignore.append(-1)\n", + " gt_bboxes_ignore.append(bbox)\n", + "\n", + " data_anno = dict(\n", + " bboxes=np.array(gt_bboxes, dtype=np.float32).reshape(-1, 4),\n", + " labels=np.array(gt_labels, dtype=np.long),\n", + " bboxes_ignore=np.array(gt_bboxes_ignore,\n", + " dtype=np.float32).reshape(-1, 4),\n", + " labels_ignore=np.array(gt_labels_ignore, dtype=np.long))\n", + "\n", + " data_info.update(ann=data_anno)\n", + " data_infos.append(data_info)\n", + "\n", + " return data_infos" ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "img = mmcv.imread('kitti_tiny/training/image_2/000068.jpeg')\n", - "\n", - "model.cfg = cfg\n", - "result = inference_detector(model, img)\n", - "show_result_pyplot(model, img, result)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "cgSKHJobQpt6" - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "accelerator": "GPU", - "colab": { - "collapsed_sections": [], - "name": "MMDet Tutorial.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - }, - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "1489fe29d91748cab449718d687f4ee1": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "initial" - } }, - "171ea927699a474084c49f8874942ae8": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } + { + "cell_type": "markdown", + "metadata": { + "id": "PwqJOpBe-bMj" + }, + "source": [ + "### Modify the config\n", + "\n", + "In the next step, we need to modify the config for the training.\n", + "To accelerate the process, we finetune a detector using a pre-trained detector." + ] }, - "7189ce8a6634410a9e633832e8151070": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "id": "hamZrlnH-YDD" + }, + "outputs": [], + "source": [ + "from mmcv import Config\n", + "cfg = Config.fromfile('./configs/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco.py')" + ] }, - "767c8f4fbc924027885851365ceb6292": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_7189ce8a6634410a9e633832e8151070", - "placeholder": "​", - "style": "IPY_MODEL_171ea927699a474084c49f8874942ae8", - "value": " 89.9M/89.9M [00:11<00:00, 8.22MB/s]" - } + { + "cell_type": "markdown", + "metadata": { + "id": "HntziLGq-92Z" + }, + "source": [ + "Given a config that trains a Faster R-CNN on COCO dataset, we need to modify some values to use it for training Faster R-CNN on KITTI dataset. We modify the config of datasets, learning rate schedules, and runtime settings." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "pUbwD8uV0PR8", + "outputId": "76e68abb-6b42-488f-cbca-6da39e094943" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Config:\n", + "model = dict(\n", + " type='FasterRCNN',\n", + " backbone=dict(\n", + " type='ResNet',\n", + " depth=50,\n", + " num_stages=4,\n", + " out_indices=(0, 1, 2, 3),\n", + " frozen_stages=1,\n", + " norm_cfg=dict(type='BN', requires_grad=False),\n", + " norm_eval=True,\n", + " style='caffe',\n", + " init_cfg=dict(\n", + " type='Pretrained',\n", + " checkpoint='open-mmlab://detectron2/resnet50_caffe')),\n", + " neck=dict(\n", + " type='FPN',\n", + " in_channels=[256, 512, 1024, 2048],\n", + " out_channels=256,\n", + " num_outs=5),\n", + " rpn_head=dict(\n", + " type='RPNHead',\n", + " in_channels=256,\n", + " feat_channels=256,\n", + " anchor_generator=dict(\n", + " type='AnchorGenerator',\n", + " scales=[8],\n", + " ratios=[0.5, 1.0, 2.0],\n", + " strides=[4, 8, 16, 32, 64]),\n", + " bbox_coder=dict(\n", + " type='DeltaXYWHBBoxCoder',\n", + " target_means=[0.0, 0.0, 0.0, 0.0],\n", + " target_stds=[1.0, 1.0, 1.0, 1.0]),\n", + " loss_cls=dict(\n", + " type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0),\n", + " loss_bbox=dict(type='L1Loss', loss_weight=1.0)),\n", + " roi_head=dict(\n", + " type='StandardRoIHead',\n", + " bbox_roi_extractor=dict(\n", + " type='SingleRoIExtractor',\n", + " roi_layer=dict(type='RoIAlign', output_size=7, sampling_ratio=0),\n", + " out_channels=256,\n", + " featmap_strides=[4, 8, 16, 32]),\n", + " bbox_head=dict(\n", + " type='Shared2FCBBoxHead',\n", + " in_channels=256,\n", + " fc_out_channels=1024,\n", + " roi_feat_size=7,\n", + " num_classes=3,\n", + " bbox_coder=dict(\n", + " type='DeltaXYWHBBoxCoder',\n", + " target_means=[0.0, 0.0, 0.0, 0.0],\n", + " target_stds=[0.1, 0.1, 0.2, 0.2]),\n", + " reg_class_agnostic=False,\n", + " loss_cls=dict(\n", + " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),\n", + " loss_bbox=dict(type='L1Loss', loss_weight=1.0))),\n", + " train_cfg=dict(\n", + " rpn=dict(\n", + " assigner=dict(\n", + " type='MaxIoUAssigner',\n", + " pos_iou_thr=0.7,\n", + " neg_iou_thr=0.3,\n", + " min_pos_iou=0.3,\n", + " match_low_quality=True,\n", + " ignore_iof_thr=-1),\n", + " sampler=dict(\n", + " type='RandomSampler',\n", + " num=256,\n", + " pos_fraction=0.5,\n", + " neg_pos_ub=-1,\n", + " add_gt_as_proposals=False),\n", + " allowed_border=-1,\n", + " pos_weight=-1,\n", + " debug=False),\n", + " rpn_proposal=dict(\n", + " nms_pre=2000,\n", + " max_per_img=1000,\n", + " nms=dict(type='nms', iou_threshold=0.7),\n", + " min_bbox_size=0),\n", + " rcnn=dict(\n", + " assigner=dict(\n", + " type='MaxIoUAssigner',\n", + " pos_iou_thr=0.5,\n", + " neg_iou_thr=0.5,\n", + " min_pos_iou=0.5,\n", + " match_low_quality=False,\n", + " ignore_iof_thr=-1),\n", + " sampler=dict(\n", + " type='RandomSampler',\n", + " num=512,\n", + " pos_fraction=0.25,\n", + " neg_pos_ub=-1,\n", + " add_gt_as_proposals=True),\n", + " pos_weight=-1,\n", + " debug=False)),\n", + " test_cfg=dict(\n", + " rpn=dict(\n", + " nms_pre=1000,\n", + " max_per_img=1000,\n", + " nms=dict(type='nms', iou_threshold=0.7),\n", + " min_bbox_size=0),\n", + " rcnn=dict(\n", + " score_thr=0.05,\n", + " nms=dict(type='nms', iou_threshold=0.5),\n", + " max_per_img=100)))\n", + "dataset_type = 'KittiTinyDataset'\n", + "data_root = 'kitti_tiny/'\n", + "img_norm_cfg = dict(\n", + " mean=[103.53, 116.28, 123.675], std=[1.0, 1.0, 1.0], to_rgb=False)\n", + "train_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(type='LoadAnnotations', with_bbox=True),\n", + " dict(\n", + " type='Resize',\n", + " img_scale=[(1333, 640), (1333, 672), (1333, 704), (1333, 736),\n", + " (1333, 768), (1333, 800)],\n", + " multiscale_mode='value',\n", + " keep_ratio=True),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[103.53, 116.28, 123.675],\n", + " std=[1.0, 1.0, 1.0],\n", + " to_rgb=False),\n", + " dict(type='Pad', size_divisor=32),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels'])\n", + "]\n", + "test_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(1333, 800),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[103.53, 116.28, 123.675],\n", + " std=[1.0, 1.0, 1.0],\n", + " to_rgb=False),\n", + " dict(type='Pad', size_divisor=32),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + "]\n", + "data = dict(\n", + " samples_per_gpu=2,\n", + " workers_per_gpu=2,\n", + " train=dict(\n", + " type='KittiTinyDataset',\n", + " ann_file='train.txt',\n", + " img_prefix='training/image_2',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(type='LoadAnnotations', with_bbox=True),\n", + " dict(\n", + " type='Resize',\n", + " img_scale=[(1333, 640), (1333, 672), (1333, 704), (1333, 736),\n", + " (1333, 768), (1333, 800)],\n", + " multiscale_mode='value',\n", + " keep_ratio=True),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[103.53, 116.28, 123.675],\n", + " std=[1.0, 1.0, 1.0],\n", + " to_rgb=False),\n", + " dict(type='Pad', size_divisor=32),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels'])\n", + " ],\n", + " data_root='kitti_tiny/'),\n", + " val=dict(\n", + " type='KittiTinyDataset',\n", + " ann_file='val.txt',\n", + " img_prefix='training/image_2',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(1333, 800),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[103.53, 116.28, 123.675],\n", + " std=[1.0, 1.0, 1.0],\n", + " to_rgb=False),\n", + " dict(type='Pad', size_divisor=32),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + " ],\n", + " data_root='kitti_tiny/'),\n", + " test=dict(\n", + " type='KittiTinyDataset',\n", + " ann_file='train.txt',\n", + " img_prefix='training/image_2',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(1333, 800),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[103.53, 116.28, 123.675],\n", + " std=[1.0, 1.0, 1.0],\n", + " to_rgb=False),\n", + " dict(type='Pad', size_divisor=32),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + " ],\n", + " data_root='kitti_tiny/'))\n", + "evaluation = dict(interval=12, metric='mAP')\n", + "optimizer = dict(type='SGD', lr=0.0025, momentum=0.9, weight_decay=0.0001)\n", + "optimizer_config = dict(grad_clip=None)\n", + "lr_config = dict(\n", + " policy='step',\n", + " warmup=None,\n", + " warmup_iters=500,\n", + " warmup_ratio=0.001,\n", + " step=[8, 11])\n", + "runner = dict(type='EpochBasedRunner', max_epochs=12)\n", + "checkpoint_config = dict(interval=12)\n", + "log_config = dict(\n", + " interval=10,\n", + " hooks=[dict(type='TextLoggerHook'),\n", + " dict(type='TensorboardLoggerHook')])\n", + "custom_hooks = [dict(type='NumClassCheckHook')]\n", + "dist_params = dict(backend='nccl')\n", + "log_level = 'INFO'\n", + "load_from = 'checkpoints/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco_20210526_095054-1f77628b.pth'\n", + "resume_from = None\n", + "workflow = [('train', 1)]\n", + "opencv_num_threads = 0\n", + "mp_start_method = 'fork'\n", + "work_dir = './tutorial_exps'\n", + "seed = 0\n", + "gpu_ids = range(0, 1)\n", + "\n" + ] + } + ], + "source": [ + "from mmdet.apis import set_random_seed\n", + "\n", + "# Modify dataset type and path\n", + "cfg.dataset_type = 'KittiTinyDataset'\n", + "cfg.data_root = 'kitti_tiny/'\n", + "\n", + "cfg.data.test.type = 'KittiTinyDataset'\n", + "cfg.data.test.data_root = 'kitti_tiny/'\n", + "cfg.data.test.ann_file = 'train.txt'\n", + "cfg.data.test.img_prefix = 'training/image_2'\n", + "\n", + "cfg.data.train.type = 'KittiTinyDataset'\n", + "cfg.data.train.data_root = 'kitti_tiny/'\n", + "cfg.data.train.ann_file = 'train.txt'\n", + "cfg.data.train.img_prefix = 'training/image_2'\n", + "\n", + "cfg.data.val.type = 'KittiTinyDataset'\n", + "cfg.data.val.data_root = 'kitti_tiny/'\n", + "cfg.data.val.ann_file = 'val.txt'\n", + "cfg.data.val.img_prefix = 'training/image_2'\n", + "\n", + "# modify num classes of the model in box head\n", + "cfg.model.roi_head.bbox_head.num_classes = 3\n", + "# If we need to finetune a model based on a pre-trained detector, we need to\n", + "# use load_from to set the path of checkpoints.\n", + "cfg.load_from = 'checkpoints/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco_20210526_095054-1f77628b.pth'\n", + "\n", + "# Set up working dir to save files and logs.\n", + "cfg.work_dir = './tutorial_exps'\n", + "\n", + "# The original learning rate (LR) is set for 8-GPU training.\n", + "# We divide it by 8 since we only use one GPU.\n", + "cfg.optimizer.lr = 0.02 / 8\n", + "cfg.lr_config.warmup = None\n", + "cfg.log_config.interval = 10\n", + "\n", + "# Change the evaluation metric since we use customized dataset.\n", + "cfg.evaluation.metric = 'mAP'\n", + "# We can set the evaluation interval to reduce the evaluation times\n", + "cfg.evaluation.interval = 12\n", + "# We can set the checkpoint saving interval to reduce the storage cost\n", + "cfg.checkpoint_config.interval = 12\n", + "\n", + "# Set seed thus the results are more reproducible\n", + "cfg.seed = 0\n", + "set_random_seed(0, deterministic=False)\n", + "cfg.gpu_ids = range(1)\n", + "\n", + "# We can also use tensorboard to log the training process\n", + "cfg.log_config.hooks = [\n", + " dict(type='TextLoggerHook'),\n", + " dict(type='TensorboardLoggerHook')]\n", + "\n", + "\n", + "# We can initialize the logger for training and have a look\n", + "# at the final config used for training\n", + "print(f'Config:\\n{cfg.pretty_text}')\n" + ] }, - "aca1c388eeca4c87b5b6306302630303": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } + { + "cell_type": "markdown", + "metadata": { + "id": "111W_oZV_3wa" + }, + "source": [ + "### Train a new detector\n", + "\n", + "Finally, lets initialize the dataset and detector, then train a new detector! We use the high-level API `train_detector` implemented by MMDetection. This is also used in our training scripts. For details of the implementation, please see [here](https://github.com/open-mmlab/mmdetection/blob/master/mmdet/apis/train.py)." + ] }, - "b9b75e2d894e467289cb83070b8bb998": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "100%", - "description_tooltip": null, - "layout": "IPY_MODEL_bf1e5d0665a141ac9c2085062ba77801", - "max": 94284731, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_1489fe29d91748cab449718d687f4ee1", - "value": 94284731 - } + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "7WBWHu010PN3", + "outputId": "a7646284-f909-46d6-a360-22160daeb1cc" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/content/mmdetection/mmdet/datasets/custom.py:180: UserWarning: CustomDataset does not support filtering empty gt images.\n", + " 'CustomDataset does not support filtering empty gt images.')\n", + "2022-02-08 11:38:22,273 - mmdet - INFO - load checkpoint from local path: checkpoints/faster_rcnn_r50_caffe_fpn_mstrain_3x_coco_20210526_095054-1f77628b.pth\n", + "2022-02-08 11:38:22,406 - mmdet - WARNING - The model and loaded state dict do not match exactly\n", + "\n", + "size mismatch for roi_head.bbox_head.fc_cls.weight: copying a param with shape torch.Size([81, 1024]) from checkpoint, the shape in current model is torch.Size([4, 1024]).\n", + "size mismatch for roi_head.bbox_head.fc_cls.bias: copying a param with shape torch.Size([81]) from checkpoint, the shape in current model is torch.Size([4]).\n", + "size mismatch for roi_head.bbox_head.fc_reg.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([12, 1024]).\n", + "size mismatch for roi_head.bbox_head.fc_reg.bias: copying a param with shape torch.Size([320]) from checkpoint, the shape in current model is torch.Size([12]).\n", + "2022-02-08 11:38:22,410 - mmdet - INFO - Start running, host: root@503df4019aac, work_dir: /content/mmdetection/tutorial_exps\n", + "2022-02-08 11:38:22,412 - mmdet - INFO - Hooks will be executed in the following order:\n", + "before_run:\n", + "(VERY_HIGH ) StepLrUpdaterHook \n", + "(NORMAL ) CheckpointHook \n", + "(LOW ) EvalHook \n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "before_train_epoch:\n", + "(VERY_HIGH ) StepLrUpdaterHook \n", + "(NORMAL ) NumClassCheckHook \n", + "(LOW ) IterTimerHook \n", + "(LOW ) EvalHook \n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "before_train_iter:\n", + "(VERY_HIGH ) StepLrUpdaterHook \n", + "(LOW ) IterTimerHook \n", + "(LOW ) EvalHook \n", + " -------------------- \n", + "after_train_iter:\n", + "(ABOVE_NORMAL) OptimizerHook \n", + "(NORMAL ) CheckpointHook \n", + "(LOW ) IterTimerHook \n", + "(LOW ) EvalHook \n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "after_train_epoch:\n", + "(NORMAL ) CheckpointHook \n", + "(LOW ) EvalHook \n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "before_val_epoch:\n", + "(NORMAL ) NumClassCheckHook \n", + "(LOW ) IterTimerHook \n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "before_val_iter:\n", + "(LOW ) IterTimerHook \n", + " -------------------- \n", + "after_val_iter:\n", + "(LOW ) IterTimerHook \n", + " -------------------- \n", + "after_val_epoch:\n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "after_run:\n", + "(VERY_LOW ) TextLoggerHook \n", + "(VERY_LOW ) TensorboardLoggerHook \n", + " -------------------- \n", + "2022-02-08 11:38:22,414 - mmdet - INFO - workflow: [('train', 1)], max: 12 epochs\n", + "2022-02-08 11:38:22,417 - mmdet - INFO - Checkpoints will be saved to /content/mmdetection/tutorial_exps by HardDiskBackend.\n", + "2022-02-08 11:38:35,245 - mmdet - INFO - Epoch [1][10/25]\tlr: 2.500e-03, eta: 0:03:51, time: 0.799, data_time: 0.231, memory: 2455, loss_rpn_cls: 0.0254, loss_rpn_bbox: 0.0173, loss_cls: 0.5374, acc: 81.6309, loss_bbox: 0.3946, loss: 0.9746\n", + "2022-02-08 11:38:38,778 - mmdet - INFO - Epoch [1][20/25]\tlr: 2.500e-03, eta: 0:02:41, time: 0.353, data_time: 0.024, memory: 2455, loss_rpn_cls: 0.0158, loss_rpn_bbox: 0.0119, loss_cls: 0.1778, acc: 93.3789, loss_bbox: 0.3290, loss: 0.5344\n", + "2022-02-08 11:38:46,422 - mmdet - INFO - Epoch [2][10/25]\tlr: 2.500e-03, eta: 0:02:10, time: 0.576, data_time: 0.230, memory: 2456, loss_rpn_cls: 0.0203, loss_rpn_bbox: 0.0139, loss_cls: 0.1573, acc: 94.4824, loss_bbox: 0.2689, loss: 0.4603\n", + "2022-02-08 11:38:50,015 - mmdet - INFO - Epoch [2][20/25]\tlr: 2.500e-03, eta: 0:01:58, time: 0.360, data_time: 0.023, memory: 2456, loss_rpn_cls: 0.0127, loss_rpn_bbox: 0.0127, loss_cls: 0.1446, acc: 94.6777, loss_bbox: 0.2154, loss: 0.3854\n", + "2022-02-08 11:38:57,686 - mmdet - INFO - Epoch [3][10/25]\tlr: 2.500e-03, eta: 0:01:46, time: 0.575, data_time: 0.226, memory: 2456, loss_rpn_cls: 0.0064, loss_rpn_bbox: 0.0104, loss_cls: 0.0943, acc: 96.5039, loss_bbox: 0.1586, loss: 0.2697\n", + "2022-02-08 11:39:01,390 - mmdet - INFO - Epoch [3][20/25]\tlr: 2.500e-03, eta: 0:01:39, time: 0.370, data_time: 0.024, memory: 2456, loss_rpn_cls: 0.0072, loss_rpn_bbox: 0.0132, loss_cls: 0.1439, acc: 94.6191, loss_bbox: 0.2597, loss: 0.4242\n", + "2022-02-08 11:39:09,266 - mmdet - INFO - Epoch [4][10/25]\tlr: 2.500e-03, eta: 0:01:31, time: 0.590, data_time: 0.228, memory: 2456, loss_rpn_cls: 0.0057, loss_rpn_bbox: 0.0134, loss_cls: 0.1181, acc: 95.4199, loss_bbox: 0.2243, loss: 0.3616\n", + "2022-02-08 11:39:13,065 - mmdet - INFO - Epoch [4][20/25]\tlr: 2.500e-03, eta: 0:01:26, time: 0.379, data_time: 0.024, memory: 2456, loss_rpn_cls: 0.0050, loss_rpn_bbox: 0.0117, loss_cls: 0.1196, acc: 95.4004, loss_bbox: 0.2120, loss: 0.3484\n", + "2022-02-08 11:39:20,854 - mmdet - INFO - Epoch [5][10/25]\tlr: 2.500e-03, eta: 0:01:19, time: 0.582, data_time: 0.228, memory: 2456, loss_rpn_cls: 0.0028, loss_rpn_bbox: 0.0091, loss_cls: 0.1021, acc: 96.1719, loss_bbox: 0.2075, loss: 0.3216\n", + "2022-02-08 11:39:24,557 - mmdet - INFO - Epoch [5][20/25]\tlr: 2.500e-03, eta: 0:01:14, time: 0.369, data_time: 0.023, memory: 2456, loss_rpn_cls: 0.0030, loss_rpn_bbox: 0.0106, loss_cls: 0.0942, acc: 96.6309, loss_bbox: 0.1926, loss: 0.3003\n", + "2022-02-08 11:39:32,255 - mmdet - INFO - Epoch [6][10/25]\tlr: 2.500e-03, eta: 0:01:07, time: 0.576, data_time: 0.226, memory: 2456, loss_rpn_cls: 0.0025, loss_rpn_bbox: 0.0081, loss_cls: 0.0787, acc: 97.2363, loss_bbox: 0.1827, loss: 0.2721\n", + "2022-02-08 11:39:35,900 - mmdet - INFO - Epoch [6][20/25]\tlr: 2.500e-03, eta: 0:01:02, time: 0.364, data_time: 0.023, memory: 2456, loss_rpn_cls: 0.0035, loss_rpn_bbox: 0.0100, loss_cls: 0.0901, acc: 96.5332, loss_bbox: 0.1857, loss: 0.2893\n", + "2022-02-08 11:39:43,555 - mmdet - INFO - Epoch [7][10/25]\tlr: 2.500e-03, eta: 0:00:56, time: 0.576, data_time: 0.228, memory: 2456, loss_rpn_cls: 0.0023, loss_rpn_bbox: 0.0093, loss_cls: 0.0877, acc: 96.7383, loss_bbox: 0.1736, loss: 0.2730\n", + "2022-02-08 11:39:47,186 - mmdet - INFO - Epoch [7][20/25]\tlr: 2.500e-03, eta: 0:00:52, time: 0.362, data_time: 0.024, memory: 2456, loss_rpn_cls: 0.0040, loss_rpn_bbox: 0.0112, loss_cls: 0.0889, acc: 96.6699, loss_bbox: 0.1800, loss: 0.2840\n", + "2022-02-08 11:39:54,874 - mmdet - INFO - Epoch [8][10/25]\tlr: 2.500e-03, eta: 0:00:46, time: 0.575, data_time: 0.227, memory: 2456, loss_rpn_cls: 0.0020, loss_rpn_bbox: 0.0094, loss_cls: 0.0748, acc: 97.0801, loss_bbox: 0.1381, loss: 0.2243\n", + "2022-02-08 11:39:58,511 - mmdet - INFO - Epoch [8][20/25]\tlr: 2.500e-03, eta: 0:00:41, time: 0.364, data_time: 0.025, memory: 2456, loss_rpn_cls: 0.0031, loss_rpn_bbox: 0.0081, loss_cls: 0.0743, acc: 97.0801, loss_bbox: 0.1635, loss: 0.2489\n", + "2022-02-08 11:40:06,228 - mmdet - INFO - Epoch [9][10/25]\tlr: 2.500e-04, eta: 0:00:35, time: 0.577, data_time: 0.227, memory: 2456, loss_rpn_cls: 0.0024, loss_rpn_bbox: 0.0085, loss_cls: 0.0649, acc: 97.5781, loss_bbox: 0.1307, loss: 0.2065\n", + "2022-02-08 11:40:09,873 - mmdet - INFO - Epoch [9][20/25]\tlr: 2.500e-04, eta: 0:00:31, time: 0.365, data_time: 0.025, memory: 2456, loss_rpn_cls: 0.0010, loss_rpn_bbox: 0.0066, loss_cls: 0.0530, acc: 97.9199, loss_bbox: 0.1090, loss: 0.1695\n", + "2022-02-08 11:40:17,597 - mmdet - INFO - Epoch [10][10/25]\tlr: 2.500e-04, eta: 0:00:25, time: 0.579, data_time: 0.227, memory: 2456, loss_rpn_cls: 0.0041, loss_rpn_bbox: 0.0084, loss_cls: 0.0676, acc: 97.3633, loss_bbox: 0.1367, loss: 0.2168\n", + "2022-02-08 11:40:21,269 - mmdet - INFO - Epoch [10][20/25]\tlr: 2.500e-04, eta: 0:00:21, time: 0.367, data_time: 0.025, memory: 2456, loss_rpn_cls: 0.0008, loss_rpn_bbox: 0.0055, loss_cls: 0.0593, acc: 97.7246, loss_bbox: 0.1277, loss: 0.1934\n", + "2022-02-08 11:40:29,010 - mmdet - INFO - Epoch [11][10/25]\tlr: 2.500e-04, eta: 0:00:15, time: 0.579, data_time: 0.228, memory: 2456, loss_rpn_cls: 0.0007, loss_rpn_bbox: 0.0072, loss_cls: 0.0618, acc: 97.5977, loss_bbox: 0.1196, loss: 0.1892\n", + "2022-02-08 11:40:32,714 - mmdet - INFO - Epoch [11][20/25]\tlr: 2.500e-04, eta: 0:00:11, time: 0.370, data_time: 0.024, memory: 2456, loss_rpn_cls: 0.0011, loss_rpn_bbox: 0.0074, loss_cls: 0.0552, acc: 97.9297, loss_bbox: 0.1246, loss: 0.1883\n", + "2022-02-08 11:40:40,497 - mmdet - INFO - Epoch [12][10/25]\tlr: 2.500e-05, eta: 0:00:05, time: 0.583, data_time: 0.227, memory: 2456, loss_rpn_cls: 0.0010, loss_rpn_bbox: 0.0060, loss_cls: 0.0563, acc: 97.7637, loss_bbox: 0.1237, loss: 0.1871\n", + "2022-02-08 11:40:44,191 - mmdet - INFO - Epoch [12][20/25]\tlr: 2.500e-05, eta: 0:00:01, time: 0.369, data_time: 0.024, memory: 2456, loss_rpn_cls: 0.0013, loss_rpn_bbox: 0.0049, loss_cls: 0.0487, acc: 98.0273, loss_bbox: 0.0890, loss: 0.1439\n", + "2022-02-08 11:40:45,980 - mmdet - INFO - Saving checkpoint at 12 epochs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 25/25, 9.7 task/s, elapsed: 3s, ETA: 0s\n", + "---------------iou_thr: 0.5---------------\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2022-02-08 11:40:51,306 - mmdet - INFO - \n", + "+------------+-----+------+--------+-------+\n", + "| class | gts | dets | recall | ap |\n", + "+------------+-----+------+--------+-------+\n", + "| Car | 62 | 129 | 0.968 | 0.869 |\n", + "| Pedestrian | 13 | 38 | 0.846 | 0.752 |\n", + "| Cyclist | 7 | 51 | 0.571 | 0.123 |\n", + "+------------+-----+------+--------+-------+\n", + "| mAP | | | | 0.581 |\n", + "+------------+-----+------+--------+-------+\n", + "2022-02-08 11:40:51,309 - mmdet - INFO - Epoch(val) [12][25]\tAP50: 0.5810, mAP: 0.5813\n" + ] + } + ], + "source": [ + "from mmdet.datasets import build_dataset\n", + "from mmdet.models import build_detector\n", + "from mmdet.apis import train_detector\n", + "\n", + "\n", + "# Build dataset\n", + "datasets = [build_dataset(cfg.data.train)]\n", + "\n", + "# Build the detector\n", + "model = build_detector(cfg.model)\n", + "# Add an attribute for visualization convenience\n", + "model.CLASSES = datasets[0].CLASSES\n", + "\n", + "# Create work_dir\n", + "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n", + "train_detector(model, datasets, cfg, distributed=False, validate=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_vYQF5K2NqqI" + }, + "source": [ + "### Understand the log\n", + "From the log, we can have a basic understanding on the training process and know how well the detector is trained.\n", + "\n", + "First, since the dataset we are using is small, we loaded a pre-trained Faster R-CNN model and fine-tune it for detection. \n", + "The original Faster R-CNN is trained on COCO dataset that contains 80 classes but KITTI Tiny dataset only have 3 classes. Therefore, the last FC layers of the pre-trained Faster R-CNN for classification and regression have different weight shape and are not used.\n", + "\n", + "Second, after training, the detector is evaluated by the default VOC-style evaluation. The results show that the detector achieves 58.1 mAP on the val dataset, not bad!\n", + "\n", + "We can also check the tensorboard to see the curves." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 821, + "resources": { + "https://localhost:6006/?tensorboardColab=true": { + "data": "PCFkb2N0eXBlIGh0bWw+PG1ldGEgbmFtZT0idGItcmVsYXRpdmUtcm9vdCIgY29udGVudD0iLi8iPjwhZG9jdHlwZSBodG1sPjwhLS0KQGxpY2Vuc2UKQ29weXJpZ2h0IDIwMTkgVGhlIFRlbnNvckZsb3cgQXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQpkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLApXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZApsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS0+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiPgo8dGl0bGU+VGVuc29yQm9hcmQ8L3RpdGxlPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTVFBQUFERUNBWUFBQURBcG81ckFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFBbHdTRmx6QUFCYWJnQUFXbTRCeFdzak9BQUFBQmwwUlZoMFUyOW1kSGRoY21VQWQzZDNMbWx1YTNOallYQmxMbTl5WjV2dVBCb0FBQmwwU1VSQlZIaWM3WjE1ZUZUVjNjYy92NXNGQ1ZSeHFWdHB0VlcyVmx4ZjYxcXRpcTBMOUdsOU5YVUJGRXBGUlRJaGhCQURDVGRBTUFFa0NZc0s3cUI5K2tENzJxZkJXaXZxVzdWYTY3NGlyZTlyYXhYMWJaVldaVEhML040LzVnNEdTR0R1ekwxejc1MDVuMzg0ek13NTU4dk0vWEsyM3prSERJR2ppemhQRjNGZTBEb01JRUVMeUdkMFBvT3dhQUF1Y1Y1YWgwVzVWUEI2a0xyeUdXT0lBRkNiL3ZTakVxZ0crdXp3S3dnZHdDMTBVQ2ZWL0RzWWhmbUxNVVFXVVJ1TEVrWUQ4eEVPMnY3R2pvWndQc3hIV014aElFdWxsSzVzNnN4bmpDR3loQzdnSkpSVzRDU2daeFAwbkg0Smk1aVU4N2pmR2czR0VMNmpUUXdFNWdHamtXN2ZkK3FHU0xLV0lzcGtNbS83SU5QZ1lBemhFMnBUUWgrcXNLZ0MrZ0x1VGJCcmVpdXdtSFlhWkRxZmVpcllBQmhEZUk0cVFpTVhBd3NRRHZQQUJEMmxOeUxVczRuYnhTYWV1V3BERW1NSUQ5RWJPUUZvUlRodCs0ditHQ0w1NTdOQXVjUjRLaTNCaGwwd2h2QUFiZUFRTEd4Z0FtRDVhb0x1NmNTZml2QUxsRXFKOFk1TDZZYWRNSWJJQUxVcHBvaHJFV1lqN0wzOWpld2FJcG5lakxLUXZXbVVjV3hMNlI5ZzJBVmppRFRSdVl6Q29nWDRCcEE5RTNSUDkveiszNEdaVXNiS1hxUWJkb014aEV1MGdhTVJtbEhPOXZBQi82T1RPdGtEUXlUU3lpTW81UkxqdFo3K0hZYWVzWUlXRUJYVVpqK2RTeXZ3UE1yWkhoVzdFV0VpbjNFYVV6a1ZvUlQ0bXljbEMrZGc4Ykl1WmFYZXdvR2VsSmtIbUJaaUQ2aE5JVVdNUjJrQUR2Q29WZGlLc0pqNHJ1c0p1cHdTUHFNS3FFS2M5WXZleWttOXprMUFFd2ZTTEtXMFkrZ1ZZNGpkb1BXY2cwVUx3bEhiWDh6Y0VHc1J5bVRhN2xlY3RZbUJGRGtyM095d3hwMk9JWkxwRFFoVDVUb2UyRjNkK1l3eFJBL29IQVpCdDdCc2IxcUZGeW1nWENyZHhTVHBJczRFV2hDTzNhWE05TFdzbzRDWVhNTWJiclRrQThZUTNWQ2IvZ2lWeUU1aDJaa1o0aU9FT1J5ZWZ0U3EybGdNWURUS2ZPQWdqM1Ixb054Q0lYVXkwWVNaSnpHR3dIbmdMT2VCNnlrc083MEhML0hBaVhmN0duUVovV252d2JEcGF3U2NNUFA5VEpnNUdFT2dzMU1JeTNiL3NLMGpUa3hxL09tU2FDdURVQnFRN1R2dHZPald2WWhRTHRma2Q1aDUzaHBDYlJkaDJhay9WQnRRS3FTRzMzZ3F0aGUwbFhPQUZ1QW9EOWRFMWxKQW1mdzBQOFBNODg0UWFsTUN6clJtcW1IWmUzNlFOaUUwOFRuTlltZDNXbE50Q3RtWDhZZ3pMZHk3UmpmcFJKaDVFUTN5ay93S004OGJReWdJZFZ5TXhRTFVaVmgyNys5M290eUpNRk5xK0lmWG10MmdpOWlQUW1ZQjF5RVVibjhqTTNPOGgxTERSRmFKb0o0S0RpbDVZUWl0NVFRa2c3RHNubDk3Rkl0eXFlWlZUOFZtaUM1aEtFb3o0aHhyNDAxWDZsbVVtRnpEMHg1S0RTVTViUWl0NFJDS3NORU13N0ozZk8wdGxCcVp5UnFQNVhxS0xtWVVRZ3ZpQkI5Q3B1WlE0RjQ2cUpKSmZPQ3AyQkNSazRaUW0ySTZQUXpMVHZ5WkNLL2VoeHVsak04OWx1d0xhbFBNL3M3M0FIdDcxRnBzUmxoSVlXNkdtZWVjSVhTRzUySFpjWVQ3RUtiSkRENzBWbTEyME9VY1FnYzI0clNVNE1YMzhoWkNqVXdJZDB2cGxwd3hoTjdBVUFwb0JzN3pjQXJ5R1pTWTFQR01oMUlEUTI5MnRyZ3FwM24ySFZrOFNwd3A4bE5lOFZCcVlFVGVFR3F6SHgzTVFyZ09uTm1Wekgvc2Q0RVoxT2JlN0lvcXdpM09JUWh3R09ERjk5V0pPTE50NDRPZGJjdVV5QnBDYlFycFlEeDRHcGE5QlZqQWwyaVNDclo2S0RkMDZISks2S1FLU1NITVBOVzB4U2JpTkxGM2RNUE1JMmtJclhGV2FMMEx5MWJnRnhRd1RXWjZ0RUVuSXVqaUZNTE0zYVlUWWVZVk1pNDdLL1plRWlsRDZFd0dFZmM4TFBzNUxNcWxqajk0cHpSNjZNMmM2VXhHN0JwbTdqYjl4V3ZyS0tSTXhyTGVPNlgrRWdsRHFPMUVlU3JWQ0gyMnY1R1pJVFlDOVdBTyswcWlOaFlITzRjeGR3OHpoMHpXYlJKUnZ4M1JDRE1QdFNIVXhtSXJvN0djSHdpOGFCWGFnVnNwWWFZNURySm5kQm45c2FqRWNzTE1JUk5ESkVtRW1mY05kNWg1YUEyaE4zUUx5L1p1R25VdFFreHMvdGREcVRtTDNzb2d4T21pWm02SVpQb0ZsSElaeHhOZWF2V0swQmxDcXhpSTFXMlFCMTYwQ2kraGxNc2NmdStwMkR4QlZ6RENpWTlLVEdKa1pvaGtlaTF4SnNzNC91cWwxa3dKalNIVXBvUXR6alFnOVBXb1ZVaHMzMXpQVWxrVDNtWTZDcWhOSVY5eFRoOFJKOHdjTWpFRUpLYTVsOUNYdVZMS1o5NHFUby9BRGFFZ1RPTml4RmtvY3YrbDlwUk9YRXZWVHAwMGhYOGdGeVgwZHZaRG1RVk1BZ295TkVReS9SNUNEYU9EWHdnTjFCQTZsUk93ZWduTFR0OFE2eERLWlk2NXVOQlA5RGFHQVl1UWJyZW5adjdiL1FtTG1JemVmcEpoMWduRUVGcnVoR1h2N3JSczkxL3FCdUpNbFhubXpLRnNvcmN6Q3B4Z1NtOWFkMFdjTVBOeDJROHp6Nm9obk83Uk5KUmFoUDQ5cW5EL3BYNE0xRlBFeldMVDZhMWlReXJvWGV4Rm5BcmdCcUMvUitPL1Q3Q1lReEdMc3hrR2t2VVdRaXM0emprTjc0d2VWYVJ1aUVSWWRoR1ZZdk4vZm1nMXVFT1hjd2lGUG9XWlg1R2RNUFBBeGhCYXlTaUVWdURycmcyaFBJb3dSZWJsUnNoeHJxRjNjd0pkenRqUXV6V2tSMUhLWmJTL1czYURIVlRiRkxPWmF4SG1BRi9hUVZIUFg4eGJXTlJJUTI1dFNzbEZWQkh1OWlITUhPNmtpSmxTNmsrWWVlRFRyZ0JheGFIQUxHQUMwbU5UbTlpMldFeWoyTG0zYlRHWDBlV1VVSnppYWVhcHB6ZWgxSE1veStRc2I4ZU5vVEJFRXEzaVA1eHUxS21Pc3NURzlpNnFaRUh1Ym16UEIvUTJCbExNUE5URE1ITjRFNHNLdVpRSHZkSVpLa09BTXhNMW5URUlGMk5oeXp4ZUNGcVR3VHYwTHI3cmhKa2ZzLzNGek0xeFAzRXE1WXJNWTlSQ1p3aEQ3cU0yRm9jN1llYVNRWmo1anVrT0xHNmhnMW9aelNmcGFqT0dNQVNHcnFZL1c3dWRaZzZadHhiQyt5ZzJGbmVrRTJadURHRUlITDJQUVhTbEVXYSt1elE4ajBXNWxQS2tHeTNHRUliUW9QZHdQc0lpaEtGQXBvYUF4S1gyRStUSDNKbXFCdGUza0dvNUU3U2NIN3JOWnpEc0NibVNCOW5LMGNCRTRKOWVGQWtjNmlhRCsydDVsU05SN3RjWTYvUjZ4OGtHZzBmSVJEcGtEQ3Zvd3hCZ01XUjNIMHM2aGloeVV1ZFF3Q3NhbzFXdjZ4YW9aekI0Z0pUeXNZd21ScHpod0crelZhOTdRMWpiRFFGUUJKUlJ4SHFOTWRZelZRYURnNHhsdll6bWZJUWZnUDk3NFROcElib3pFTGhIeTNqWWRLTU1maUNYMDBZUnc0QnlTSCtkWVUrNE53UTlHaUtCTUlJQ1h0WXBOS3JOWHVuTE1oaDJSVXBwbHl0b1JSZ0cvcHlsNWEwaEVoU2pUT2Rmdks0eFJxWWp5bURZSFhJWkc4R2Z2ZGQrR0NMSk54RGFkQXB0V3NuWDA2akhZTWc2WG8waGRzZEl1bmhkSzdCTk44b1FkaktkWlVxVnZpaXorSVRYdEpJTDA4aHZNR1NGYkxRUTNUbUNPR3UxZ2pZdDUvQU15akVZZk1IUE1jVHVHRWtCYjJpbDZVWVp3a1ZRaG9Ca04rcFRYdFZwWE9CUm1RWkRSZ1JwaUNSSG9qeWdVMm5UYXRPTk1nUkx0c2NRdlNPTXBKUFh0UXBiSjNlN0ZNVmd5Q0x1RFNFK0dTSkJDY29zK3ZDYVR1dDJacWpCa0NYQzBHWGFGZUZJNEVHdG9rMm5PbWY2R0F4WklKeUcrSUxFYkpUcFJobXlSTmdOQVZBQ3pLS0VWM1U2Mzg5eTNZWThJd3FHU0RJSStLMVcwNmJUK1ZwQUdndzVUcFFNa1VBWmliQmVxN0hWcGpoUUxZYWNJM3FHU0pEb1JtM2pWYTNtZTBHTE1lUU9VVFZFa3NFSUQra050T2tNdmhxMEdFUDBpYm9oa293a3pucXRNZDBvUTJia2lpRUErZ0d6YU9jVnJlSGNvTVVZb29rclEyamk0S2RDbjdSNHhSRGdkenJEZEtNTTduSFhRbHdkZWpOMFp5U3dYbWVhYmxSZUUzZDNHSUhiTGxOWXUwdTkwUTlsRmwyOHJETVpFYlFZUTFiWmpGTFBOaGE1eWVUT0VQdEd6aEFKbEtIQTczUW1LN1dHZzRLV1kvQVZCVmJSd1NDNURGdkd1YnVDelowaE9pTnFpQVFDaktHQURUcVRtTnFSNnY0WlVrSDVFeGFueWFXTWxURzhuMDRSN2d6UkZXbERKTmtIb1lVdW50TmFUZ3Rhak1FVDNrVzRra3M1V1VwNU9wT0MzQm5DcjgxQndYQU13aE5hWjdwUmtVWFpBdFJUd0dDNWxKVWltUjllNXM0UThad3lCQ1M3VVlXOHFYWEU5QklLZ2haa1NCRmhGVVVNbHN1d3BaU3QzaFhyQXIyZW9SU3czbFdwMFVxL2hEQkpiSjdDa0plNGF5R0tjcTZGMkpsamdTZlZacVhhSEJpMEdFUDJ5ZWN4Uk0rbzA0MkNEVnBQVEZlYmJsUStZUXpST3dOUVdsalBzenFiVTRJV1k4Z091YjVTN1FYSG9meEI2MW1wOC9oeTBHSU0vbUphaU5SSWRLTTYyYUJ6VERjcWwzRm5DTW43SUxsOVVWcll3SjkwTGljSExjYmdQYWJMbEE3SzhTaFA2UnpUamNvMVRKY3BmUkxkcUM3VGpjb2xUQXVST2ZzaXRQQVhudEhabkJTMEdFTm11RE5FZXJjSDVRZktDVmc4cFhOWnFUWUhCQzNIa0I2bWhmQVdDMkVNUld6UUJtSnFwN1ZuUFZSb013T0MxcEFKdXBxRDNYemU3USsyNXowRXJxS2pjcGI5Z0JhS2VWSWJPU1pvTWVtZ1N6aFVsN0tjWXVZRXJTVWRkQlZEOUdjOFFBZFQzZVJ6TzZoMk4rMXF6SEVLU2xuUUl0eWdOc1c2aEJnV2J5SmNUWG9uc3dTRzNzZStlaCtOV0x3QzdtK21jcmRyVENsSyt5SGZNZDltNERHZ2pTNmVvSWpIMEJ6ZGt4Q25QV2dKcWFMTEdJWFNDdEc3VjF4dExJNWdOTEFBMGcvTWRMdU5NcE14eE5zb0R3TnIyWWVIeFA3aVFkRktLb0Q3TWlnN3ZBZ2RRVXZZRTdxTVk0blRnbkptMEZyU1FlL2pMT0swSUJ5ZGFWbnVER0ZSNUdKUFVoZUovUVZyRWRya0pwN3Y3WU95a0o5cEpaZEREdDVoTGVGdElYUXArd04xeEprRTBWdEgwWlY4RFl1NUtHTzg2cDY3N3pMdG5zMkkweFVxNU5leWdBOWNLTG1lTHI1TDRnUyszRUhEMTBMb2NvcG81enJpMUNQc0U3UWV0K2hLK2lGTUE2YWo3T1hsV05XTEx0UGJDQThqdTNhRjNDQ04vRldyYUVDWmwzZ2huVkpDU01nTW9Zc1p3ZWUwQU44S1dvdGJWQkh1WlF4S0U3aWJUazJWZEF6eFJWY29UcHNzN3IwcjVKb1NGckNaVWhJNzEzSURLeHlHMEtVTXBvdEZLQmRHOFQ4YnZZc1RXVVVyK0xzM3haMGh1cmliSXVaTE14LzdJVVpzT3JXUzZ4Q2VwUHQwWDIvN29LTkJvR01JYldZQVFqVmRUSUhvUlN2clBYd0Z1QkVZVFJaK2ZWZUdrS1c4NlplUTdYVXM1R21keG5MZ1dyL3J5Z29CZFpuVXhtSkE1dE9RUWFHcjZjdFd5b0Fad0pleVZXODRGMTIyVVkzdzNoNC9GNFhXSW9CWkpyMkpzOWlIRjRCN2lLSVo3bUlVVzNnRHBaRXNtZ0ZDYWdoWndpZEFoYnRNL21qSm1DeTJFSG9UWDlWbVZtTHhLRVF2WkVUdjVIaTlpOGNSZmcwY0hvU0cwSjV2S2syczFtbU1SaGpsUHJNUGd0SWxDNGJRQmZURFlockNkR0F2dit2ekdyMkgvZW1pRGdsK1BTUzBoZ0RBNG5xVXM0RCthWmNSdkRsODZ6S3BJaXppWW9TRkVMMnJpblU1UlJSekhWM2hXUThKWlpjcGlUVHhEa0s5ZHdWNlZsTHErRFR0cWdzNWtVVThDYXdtaW1hNGt4RVU4UkpLQzRURERKQmxRNmhOb2JwOUxQdlNBcnpvdVpqc21HTVR5cXRlRnFoTkhLb0xXWTd3UitCVUw4dk9Cbm9IUS9SMkhuRGkycjRadEo2ZDhkMFFPcGsrT29VUldrRXJuL0F1VTdqS1RYNng2VVM1bXNTQ29ELzRZUTdsQXl6T2tocmU4S3pJaFZ4RUFYK0c2SVZsQStqdGpBZGVROXlIWldjTFg3NVVuVUpmbmNJb25jSktDdmtRZUJnb0F3NUNhTllxQnJvcFQrYnpISEN6SDFwM3JjeVRVdDZtZ085SU5TOTdVdG9YSEVPMFk3MkdFZkp4cTJmaXRKd0JLT2NpakVMNUVkQy9sNGRySDdxNEJWek9IaWt6RUg0RTdzeVVFZW1aNHpVSytiNU1aNlBIYWd4WklLTVdRaWV4djhZWXF6SGFVRDRrTWNBYnc1NW5oVVpxQlQ5MlU1Zk01MU1rOUx2UEhxZUEwNDBab290clEraGtCbW9aVjJ1TU5ncDVuOFJxNkVqY3hza0lTN1hTM1NxcU5ISS95cTljMWVNVmUyNHQxbExDZVZMTnY3T2d4dUFUN2k1dUwrY2lMTjVCV0U3Q0JKbnNvRHVBT00ydWN5bVRJT0NIYm1kektQZnlaUzZTQ3U5dXNqRUVnOXNydGZyaDVaeU1jTGxPNVlldXNzeG5JOG9zenpSa2lzVVN1cmhTSm9ZanpOdVFHY0ZQM1FrM2F6WDd1c3JUbHlYQUgvMFJsRElLMU1zTXlzUW1IckFXZzBjRWJ3ZzRoRTZhM0dRUW16Z1dFeUd3LzVXN1VLNlJXdXlBNmpmNFJCZ01BVEJCcC9FOU54bGtIcThBUzN6U3N6dmFFUzZUT2xZRVVMZkJaOEppQ0NIT2NyVmRCdkgxb1JaNDJ4OUpQYklaWVpUTVpFMFc2elJra2JBWUFvVEQyY3hjVjFsc3RqZ2h3OW5nWXl4R1NDMi95MUo5aGdBSWp5RVNUTmJwbk80bWc4empRZUFYUHVsSjhnN0NxVEl6OElHOHdXZkNaZ2lMT0xlcjdYS1RTeWVUZ1gvNUk0bjFGSEM2MUxMQnAvSU5JU0pzaGdBWXdtWnEzV1J3RGtTYjZZT1c1eWppVEpuSjM5TXRRQnM0eWt0QkJuOEpveUVBcXJTYUUxemxLT1lXNENrUE5UekdYcHd0TmZ3ajNRTDBScVlqVkhxb3llQXpZVFZFSVhIdTBLdFREdzBSbXpnRlhJTTNheE8vQWk2UTZYeWFiZ0hhd0d6bjFBaERoQWlySVFDT1lRQlZiakxJSEY1RjBvaVAycEc3Z1V2RVpsczZtVlVSYmFBRmNkZnRNNFNETUJzQ29GYW51enlEZEFzMjhEOXAxU1kwaWMwNHNlbE1KN3V1cG9CNTNBN0UwcXJmRURoaE4wUWY0QTY5SlBXalNhU1pyVTVFYk9vSWlsSXBOdFZ1QlNiUjFSVHdaKzRDeHFkYmhpRjR3bTRJVUU3aTYweDJrMFhtOFJEQ3oxUDhlQmN3UVdaemszdHhDZFNtbUQrekJtRk11bVVZd2tINERRRWdOR2cxUjdyS0U2Y2MyTFNIVDMxT1lyeHdaN3JTMUthRVF0cUFINlZiaGlFOFJNTVFVSUp5bTVzamJHUWVIOEp1dTBEL3dtS0V6T2IrZEVYcEF2bzVabkFWbUdnSUwxRXhCTUIzcWVhbnJuSTBjQnZ3WkEvdkpJNklzWHQ4THlYVVpnRGJXQWVjblc0Wmh2QVJKVU9Bc2tCbjhOVlVQeTZKVFR3VFNIU05raVNPaUxGNUtXMFpOZ2RTd0g4REo2ZGJoaUdjUk1zUXNEZGQzT29tZzh4bEE3RFErZXZyeFBtTzJMeVZyZ0MxT1pnQ0hpR0NwMnNiOWt6VURBRndnVlp6aGFzY2hjeEZ1WnNDVHBlR0ZPNmQ2QVdkeTJGWVBBRW1QaWxYQ2ZVcGFydWhWV3RZNXd5Yzk0aXo2and1a3dyVlpqQngxa0hxWFRaRDlJaGlDd0d3UDhyaWJGV21jeGlHeFdNWU0rUThVVFVFS0tWNkF4ZjVYbzNOOGNSNUhEalU3N29Nd1JOZFF5UllwamI3K1ZXNHp1WkVoSWVCQS95cXd4QXVvbTZJZzltV2ZzakY3dERabklueUNQaG5PRVA0aUxvaFFMaEtxem5QeXlLMW52T0o4eUJadmdIVEVEelJOd1NBc0Z5cnZIbDQxZVlIS1BjRGZiMG96eEF0Y3NNUThEVUt1VEhUUXJTT3k0QmZrZ2c3TitRaHVXSUlnR3QxQm1la20xbHRya2E0bCtpdXpSZzhJSmNNWWFIY3BsUGNkM1cwamtuQXJlVFc5MkZJZzF4N0FBWlQ0dTRBWXExak9zSlNOQVEzV2hzQ0o5Y01BY3BVcmVYRWxENDZpM293SjJQa01HK2cvTkpOQm5lRzZPSnhKUFJubXhZUTV3NjFlNy9pUzBGMEZxMG9kZGtVWnNnYW00QnFDamxPUnJzN2Z0VFZBRktXOFRmZyt6cUZFY1JwQVpjblltU1A0YlJ6QTFDLzh4dHFZOUhKQ3BTZkJLREw0Qzl4NEQ2S21DcWw2UjB3bDFhWFNacFp4MWFPUXlrbjZQdmVla09vMFZxR2QzOUpMNkdBVHU1RWpCbHlEdUZSTEk2VEt4aWJyaGtnZ3pHRXJLQkRGdE5LSjBjQWkwbWNYaEVtaW9semo5cUpWbEJ0aWhuS2FvUXJneFptOEpTM0VFcmxDczZSeTNrbDA4SXlIbFRMTWo2U1ZtSUl3NEdITWkzUFk0NmpnM0tkVEI4NldRUCtSOGNhc3NabW9KNU9oc3NWM2wxZzQ5a2lsTFN3SGpoUFkxeUNNQjg0M0t1eU0wS1l6VDVjQkp3U3RCU0RKeWh3TDUxVXlUZys4THB3ejZkZHBaVTFER0FJUWpud2lkZmxwMEZmakJseWhXZFJUcE94alBYRERPRFRPb1RZdEVzenJSUXhERmdCNXRwYVEwYThoM0lsWXpoSnJ1UnBQeXZ5ZFdGTzVyTlJtcGtJbkFUOHdjKzZERG5KVnFDSnZneVZxMWdwZ3ZwZFlWWUMyYVNaNXhTK1F3VVhBd3VBdzdKUnJ5SFNyRVdaTEZmeDEyeFdtclhRRFFHVlJhemhNNzZKVUUvQy9RYkR6cnlBY29aY3hTZ1psMTB6UUFDeFRMS0NMYklRbXdJR0E2dkEvMmJRRUFrK0FzcnB4N2RsSEU4RUpTS3c0RDZaejd0eUUyT0JVeEJ6M1cwZTB3RXNwcDBqWkJ5dFVocnNBbS9nMGE2eWtHZm94Mm5PQ25KS0I0OFpjb1oxd0xFeW5waE1ERWNJVU9DR2dNU0ZpYktBbFNoSE9PT0x6L2VZeVJCbE5tQnhvWXpuWEJuUEcwR0w2VTRvREpGRUZySlo1bU5Ud0ZHSWQ4dnhodER3TWNway9zNVJNbzdmQkMybUowSzVmMWdhZVFzbzFXck9kc0xNaCs4cGp5SDh5SVRNRDRMd20xQzFFRHNqalR4S0NjY2pUSVQwUTNvTmhsUUp0U0VBeEtaVEdsbUJNQVNsQ1dnUFdwTWhkd205SVpKSUk1dGtQdFhFT1JyQzJmODBSSi9JR0NLSnpHZUROSEloY0M2RWE0YkNFSDBpWjRnazBzZzZQdUpZSjh3OEZIUFlodWdUV1VPQXM0MTFIcTNBRWM0RkttSGJ4bXFJR0pFMlJCSzVrWS9rUm1MRU9SRjRQR2c5aHVpU0U0WklJbzI4S1BNNEUvZ0I4SGJRZWd6Ukk2Y01rVVFhYUdNTDMwS3BCajROV284aE91U2tJUUNrbWEweWp5WUtHWXFhYmF5RzFNaFpReVFSbTQzU3dFU1VreENlQ2xwUHhQZ3Y0dHN2dmM4TGN0NFFTYVNCNTVqTjZRaWx3RHRCNndrNWJ3TG55eVQrVXlibjExZ3Nid3dCempiVzJheWhnR0Vrem4zZEZyU21rUEV4U2puL1pMaE00cmRCaXdtQ3ZESkVFckhaSXJPeHNSZ0VyQ0lMcHptRW5FNWdCVVVNa2NtMGlrMW4wSUtDSWk4TmtVUnMzcFhaaktXTHM0Q1hndFlUQ01vanhEbE9Kak5SSnZMUG9PVUVUVjRiSW9uTTRmY0lKK1RaTnRhL0lKUktHU01reG10Qml3a0x4aEFPWWhNWG01WEFrWkRUMjFnL1E2a0hoc3Rrc3l0eFo0d2hka0pzUGhNYm13S0dRMDQ5TUhGZ0ZjcVJFc09Xc3B3MWZFYUVjZ3RwR0pCYS9nS1VhajNuQU0xRWV4dnJNeWd4S2VlWm9JV0VIZE5DN0FHWnhTTW94ME1rdDdHK0MxeEpqRk9NR1ZMREdDSUZ4S1pUNmxoQm5LRWtia3NLKzdUa0ZxQ2VPSU9sUER1SEJPY0t4aEF1RUp1UHBZNFlCUXhIZVRCb1BUMmd3QnE2K0taTXdaWUtjMzZ1Vzh3WUlnMmtoamVCQzNRT0kwaTBHTU1DbGdUQzgwQk1wcGhyQnpMQnRCQVpJTFdzNDhzY0UvQnRyTzhqVE9UZmZOdVlJWE9NSVRKRUp0SWh0YlJpY1FTUzFXMnM3Y0JpaWhncVUxZ2h0Z2x2OXdKakNJK1FHajZTR21MQXQ4SDM0OXpYWWpGTXBoS1RzbERjNDVjem1ER0V4OGdNWGdETzBMbU13cUxWNCtMZlJEaGJwdktZeCtVYURQNmpOaVhheUJsQjZ6Q2t6djhEUWQ3UXJNYkxSMUFBQUFBQVNVVk9SSzVDWUlJPSI+CjxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFNUUFBQURFQ0FZQUFBREFwbzVyQUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQUFsd1NGbHpBQUJhYmdBQVdtNEJ4V3NqT0FBQUFCbDBSVmgwVTI5bWRIZGhjbVVBZDNkM0xtbHVhM05qWVhCbExtOXlaNXZ1UEJvQUFCbDBTVVJCVkhpYzdaMTVlRlRWM2NjL3Y1c0ZDVlJ4cVZ0cHRWVzJWbHhmNjFxdGlxMEw5R2w5TlhVQkZFcEZSVEloaEJBRENUZEFNQUVrQ1lzSzdxQjkra0Q3MnFmQldpdnFXN1ZhNjc0aXJlOXJheFgxYlpWV1pUSEwvTjQvNWc0R1NHRHV6TDF6NzUwNW4zODR6TXc1NTh2TS9YSzIzemtIRElHaml6aFBGM0ZlMERvTUlFRUx5R2QwUG9Pd2FBQXVjVjVhaDBXNVZQQjZrTHJ5R1dPSUFGQ2IvdlNqRXFnRyt1endLd2dkd0MxMFVDZlYvRHNZaGZtTE1VUVdVUnVMRWtZRDh4RU8ydjdHam9ad1BzeEhXTXhoSUV1bGxLNXM2c3huakNHeWhDN2dKSlJXNENTZ1p4UDBuSDRKaTVpVTg3amZHZzNHRUw2alRRd0U1Z0dqa1c3ZmQrcUdTTEtXSXNwa01tLzdJTlBnWUF6aEUycFRRaCtxc0tnQytnTHVUYkJyZWl1d21IWWFaRHFmZWlyWUFCaERlSTRxUWlNWEF3c1FEdlBBQkQybE55TFVzNG5ieFNhZXVXcERFbU1JRDlFYk9RRm9SVGh0KzR2K0dDTDU1N05BdWNSNEtpM0JobDB3aHZBQWJlQVFMR3hnQW1ENWFvTHU2Y1NmaXZBTGxFcUo4WTVMNllhZE1JYklBTFVwcG9ockVXWWo3TDM5amV3YUlwbmVqTEtRdldtVWNXeEw2UjlnMkFWamlEVFJ1WXpDb2dYNEJwQTlFM1JQOS96KzM0R1pVc2JLWHFRYmRvTXhoRXUwZ2FNUm1sSE85dkFCLzZPVE90a0RReVRTeWlNbzVSTGp0WjcrSFlhZXNZSVdFQlhVWmorZFN5dndQTXJaSGhXN0VXRWluM0VhVXprVm9SVDRteWNsQytkZzhiSXVaYVhld29HZWxKa0htQlppRDZoTklVV01SMmtBRHZDb1ZkaUtzSmo0cnVzSnVwd1NQcU1LcUVLYzlZdmV5a205emsxQUV3ZlNMS1cwWStnVlk0amRvUFdjZzBVTHdsSGJYOHpjRUdzUnltVGE3bGVjdFltQkZEa3IzT3l3eHAyT0laTHBEUWhUNVRvZTJGM2QrWXd4UkEvb0hBWkJ0N0JzYjFxRkZ5bWdYQ3JkeFNUcElzNEVXaENPM2FYTTlMV3NvNENZWE1NYmJyVGtBOFlRM1ZDYi9naVZ5RTVoMlprWjRpT0VPUnllZnRTcTJsZ01ZRFRLZk9BZ2ozUjFvTnhDSVhVeTBZU1pKekdHd0huZ0xPZUI2eWtzTzcwSEwvSEFpWGY3R25RWi9XbnZ3YkRwYXdTY01QUDlUSmc1R0VPZ3MxTUl5M2Ivc0swalRreHEvT21TYUN1RFVCcVE3VHZ0dk9qV3ZZaFFMdGZrZDVoNTNocENiUmRoMmFrL1ZCdFFLcVNHMzNncXRoZTBsWE9BRnVBb0Q5ZEUxbEpBbWZ3MFA4UE04ODRRYWxNQ3pyUm1xbUhaZTM2UU5pRTA4VG5OWW1kM1dsTnRDdG1YOFlnekxkeTdSamZwUkpoNUVRM3lrL3dLTTg4YlF5Z0lkVnlNeFFMVVpWaDI3Kzkzb3R5Sk1GTnErSWZYbXQyZ2k5aVBRbVlCMXlFVWJuOGpNM084aDFMRFJGYUpvSjRLRGlsNVlRaXQ1UVFrZzdEc25sOTdGSXR5cWVaVlQ4Vm1pQzVoS0VvejRoeHI0MDFYNmxtVW1GekQweDVLRFNVNWJRaXQ0UkNLc05FTXc3SjNmTzB0bEJxWnlScVA1WHFLTG1ZVVFndmlCQjlDcHVaUTRGNDZxSkpKZk9DcDJCQ1JrNFpRbTJJNlBRekxUdnlaQ0svZWh4dWxqTTg5bHV3TGFsUE0vczczQUh0NzFGcHNSbGhJWVc2R21lZWNJWFNHNTJIWmNZVDdFS2JKREQ3MFZtMTIwT1VjUWdjMjRyU1U0TVgzOGhaQ2pVd0lkMHZwbHB3eGhON0FVQXBvQnM3emNBcnlHWlNZMVBHTWgxSURRMjkydHJncXAzbjJIVms4U3B3cDhsTmU4VkJxWUVUZUVHcXpIeDNNUXJnT25ObVZ6SC9zZDRFWjFPYmU3SW9xd2kzT0lRaHdHT0RGOTlXSk9MTnQ0NE9kYmN1VXlCcENiUXJwWUR4NEdwYTlCVmpBbDJpU0NyWjZLRGQwNkhKSzZLUUtTU0hNUE5XMHhTYmlOTEYzZE1QTUkya0lyWEZXYUwwTHkxYmdGeFF3VFdaNnRFRW5JdWppRk1MTTNhWVRZZVlWTWk0N0svWmVFaWxENkV3R0VmYzhMUHM1TE1xbGpqOTRwelI2Nk0yYzZVeEc3QnBtN2piOXhXdnJLS1JNeHJMZU82WCtFZ2xEcU8xRWVTclZDSDIydjVHWklUWUM5V0FPKzBxaU5oWUhPNGN4ZHc4emgweldiUkpSdngzUkNETVB0U0hVeG1Jcm83R2NId2k4YUJYYWdWc3BZYVk1RHJKbmRCbjlzYWpFY3NMTUlSTkRKRW1FbWZjTmQ1aDVhQTJoTjNRTHkvWnVHblV0UWt4cy90ZERxVG1MM3NvZ3hPbWlabTZJWlBvRmxISVp4eE5lYXZXSzBCbENxeGlJMVcyUUIxNjBDaStobE1zY2Z1K3AyRHhCVnpEQ2lZOUtUR0prWm9oa2VpMXhKc3M0L3VxbDFrd0pqU0hVcG9RdHpqUWc5UFdvVlVoczMxelBVbGtUM21ZNkNxaE5JVjl4VGg4Uko4d2NNakVFSkthNWw5Q1h1VkxLWjk0cVRvL0FEYUVnVE9OaXhGa29jditsOXBST1hFdlZUcDAwaFg4Z0Z5WDBkdlpEbVFWTUFnb3lORVF5L1I1Q0RhT0RYd2dOMUJBNmxST3dlZ25MVHQ4UTZ4REtaWTY1dU5CUDlEYUdBWXVRYnJlblp2N2IvUW1MbUl6ZWZwSmgxZ25FRUZydWhHWHY3clJzOTEvcUJ1Sk1sWG5tektGc29yY3pDcHhnU205YWQwV2NNUE54MlE4eno2b2huTzdSTkpSYWhQNDlxbkQvcFg0TTFGUEV6V0xUNmExaVF5cm9YZXhGbkFyZ0JxQy9SK08vVDdDWVF4R0xzeGtHa3ZVV1FpczR6amtONzR3ZVZhUnVpRVJZZGhHVll2Ti9mbWcxdUVPWGN3aUZQb1daWDVHZE1QUEF4aEJheVNpRVZ1RHJyZzJoUElvd1JlYmxSc2h4cnFGM2N3SmR6dGpRdXpXa1IxSEtaYlMvVzNhREhWVGJGTE9aYXhIbUFGL2FRVkhQWDh4YldOUklRMjV0U3NsRlZCSHU5aUhNSE82a2lKbFM2aytZZWVEVHJnQmF4YUhBTEdBQzBtTlRtOWkyV0V5ajJMbTNiVEdYMGVXVVVKemlhZWFwcHplaDFITW95K1FzYjhlTm9UQkVFcTNpUDV4dTFLbU9zc1RHOWk2cVpFSHVibXpQQi9RMkJsTE1QTlRETUhONEU0c0t1WlFIdmRJWktrT0FNeE0xblRFSUYyTmh5enhlQ0ZxVHdUdjBMcjdyaEprZnMvM0Z6TTF4UDNFcTVZck1ZOVJDWndoRDdxTTJGb2M3WWVhU1FaajVqdWtPTEc2aGcxb1p6U2ZwYWpPR01BU0dycVkvVzd1ZFpnNlp0eGJDK3lnMkZuZWtFMlp1REdFSUhMMlBRWFNsRVdhK3V6UThqMFc1bFBLa0d5M0dFSWJRb1Bkd1BzSWloS0ZBcG9hQXhLWDJFK1RIM0ptcUJ0ZTNrR281RTdTY0g3ck5aekRzQ2JtU0I5bkswY0JFNEo5ZUZBa2M2aWFEKzJ0NWxTTlI3dGNZNi9SNng4a0dnMGZJUkRwa0RDdm93eEJnTVdSM0gwczZoaWh5VXVkUXdDc2FvMVd2Nnhhb1p6QjRnSlR5c1l3bVJwemh3Ryt6VmE5N1ExamJEUUZRQkpSUnhIcU5NZFl6VlFhRGc0eGx2WXptZklRZmdQOTc0VE5wSWJvekVMaEh5M2pZZEtNTWZpQ1gwMFlSdzRCeVNIK2RZVSs0TndROUdpS0JNSUlDWHRZcE5Lck5YdW5MTWhoMlJVcHBseXRvUlJnRy9weWw1YTBoRWhTalRPZGZ2SzR4UnFZanltRFlIWElaRzhHZnZkZCtHQ0xKTnhEYWRBcHRXc25YMDZqSFlNZzZYbzBoZHNkSXVuaGRLN0JOTjhvUWRqS2RaVXFWdmlpeitJVFh0SklMMDhodk1HU0ZiTFFRM1RtQ09HdTFnall0NS9BTXlqRVlmTUhQTWNUdUdFa0JiMmlsNlVZWndrVlFob0JrTitwVFh0VnBYT0JSbVFaRFJnUnBpQ1JIb2p5Z1UyblRhdE9OTWdSTHRzY1F2U09NcEpQWHRRcGJKM2U3Rk1WZ3lDTHVEU0UrR1NKQkNjb3MrdkNhVHV0MlpxakJrQ1hDMEdYYUZlRkk0RUd0b2sybk9tZjZHQXhaSUp5RytJTEViSlRwUmhteVJOZ05BVkFDektLRVYzVTYzODl5M1lZOEl3cUdTRElJK0sxVzA2YlQrVnBBR2d3NVRwUU1rVUFaaWJCZXE3SFZwamhRTFlhY0kzcUdTSkRvUm0zalZhM21lMEdMTWVRT1VUVkVrc0VJRCtrTnRPa012aHEwR0VQMGlib2hrb3drem5xdE1kMG9RMmJraWlFQStnR3phT2NWcmVIY29NVVlvb2tyUTJqaTRLZENuN1I0eFJEZ2R6ckRkS01NN25IWFFsd2Rlak4wWnlTd1htZWFibFJlRTNkM0dJSGJMbE5ZdTB1OTBROWxGbDI4ckRNWkViUVlRMWJaakZMUE5oYTV5ZVRPRVB0R3poQUpsS0hBNzNRbUs3V0dnNEtXWS9BVkJWYlJ3U0M1REZ2R3VidUN6WjBoT2lOcWlBUUNqS0dBRFRxVG1OcVI2djRaVWtINUV4YW55YVdNbFRHOG4wNFI3Z3pSRldsREpOa0hvWVV1bnROYVRndGFqTUVUM2tXNGtrczVXVXA1T3BPQzNCbkNyODFCd1hBTXdoTmFaN3BSa1VYWkF0UlR3R0M1bEpVaW1SOWU1czRROFp3eUJDUzdVWVc4cVhYRTlCSUtnaFprU0JGaEZVVU1sc3V3cFpTdDNoWHJBcjJlb1JTdzNsV3AwVXEvaERCSmJKN0NrSmU0YXlHS2NxNkYySmxqZ1NmVlpxWGFIQmkwR0VQMnllY3hSTStvMDQyQ0RWcFBURmViYmxRK1lRelJPd05RV2xqUHN6cWJVNElXWThnT3ViNVM3UVhIb2Z4QjYxbXA4L2h5MEdJTS9tSmFpTlJJZEtNNjJhQnpURGNxbDNGbkNNbjdJTGw5VVZyWXdKOTBMaWNITGNiZ1BhYkxsQTdLOFNoUDZSelRqY28xVEpjcGZSTGRxQzdUamNvbFRBdVJPZnNpdFBBWG50SFpuQlMwR0VObXVETkVlcmNINVFmS0NWZzhwWE5acVRZSEJDM0hrQjZtaGZBV0MyRU1SV3pRQm1KcXA3Vm5QVlJvTXdPQzFwQUp1cHFEM1h6ZTdRKzI1ejBFcnFLamNwYjlnQmFLZVZJYk9TWm9NZW1nU3poVWw3S2NZdVlFclNVZGRCVkQ5R2M4UUFkVDNlUnpPNmgyTisxcXpIRUtTbG5RSXR5Z05zVzZoQmdXYnlKY1RYb25zd1NHM3NlK2VoK05XTHdDN20rbWNyZHJUQ2xLK3lIZk1kOW00REdnalM2ZW9JakgwQnpka3hDblBXZ0pxYUxMR0lYU0N0RzdWMXh0TEk1Z05MQUEwZy9NZEx1Tk1wTXh4TnNvRHdOcjJZZUh4UDdpUWRGS0tvRDdNaWc3dkFnZFFVdllFN3FNWTRuVGduSm0wRnJTUWUvakxPSzBJQnlkYVZudURHRlI1R0pQVWhlSi9RVnJFZHJrSnA3djdZT3lrSjlwSlpkRER0NWhMZUZ0SVhRcCt3TjF4SmtFMFZ0SDBaVjhEWXU1S0dPODZwNjc3ekx0bnMySTB4VXE1TmV5Z0E5Y0tMbWVMcjVMNGdTKzNFSEQxMExvY29wbzV6cmkxQ1BzRTdRZXQraEsraUZNQTZhajdPWGxXTldMTHRQYkNBOGp1M2FGM0NDTi9GV3JhRUNabDNnaG5WSkNTTWdNb1lzWndlZTBBTjhLV290YlZCSHVaUXhLRTdpYlRrMlZkQXp4UlZjb1Rwc3M3cjByNUpvU0ZyQ1pVaEk3MTNJREt4eUcwS1VNcG90RktCZEc4VDhidllzVFdVVXIrTHMzeFowaHVyaWJJdVpMTXgvN0lVWnNPcldTNnhDZXBQdDBYMi83b0tOQm9HTUliV1lBUWpWZFRJSG9SU3ZyUFh3RnVCRVlUUlorZlZlR2tLVzg2WmVRN1hVczVHbWR4bkxnV3Ivcnlnb0JkWm5VeG1KQTV0T1FRYUdyNmN0V3lvQVp3SmV5Vlc4NEYxMjJVWTN3M2g0L0Y0WFdJb0JaSnIySnM5aUhGNEI3aUtJWjdtSVVXM2dEcFpFc21nRkNhZ2had2lkQWhidE0vbWpKbUN5MkVIb1RYOVZtVm1MeEtFUXZaRVR2NUhpOWk4Y1JmZzBjSG9TRzBKNXZLazJzMW1tTVJoamxQck1QZ3RJbEM0YlFCZlREWWhyQ2RHQXZ2K3Z6R3IySC9lbWlEZ2wrUFNTMGhnREE0bnFVczREK2FaY1J2RGw4NnpLcElpemlZb1NGRUwycmluVTVSUlJ6SFYzaFdROEpaWmNwaVRUeERrSzlkd1Y2VmxMcStEVHRxZ3M1a1VVOENhd21pbWE0a3hFVThSSktDNFREREpCbFE2aE5vYnA5TFB2U0Fyem91WmpzbUdNVHlxdGVGcWhOSEtvTFdZN3dSK0JVTDh2T0Jub0hRL1IySG5EaTJyNFp0SjZkOGQwUU9waytPb1VSV2tFcm4vQXVVN2pLVFg2eDZVUzVtc1NDb0QvNFlRN2xBeXpPa2hyZThLekloVnhFQVgrRzZJVmxBK2p0akFkZVE5eUhaV2NMWDc1VW5VSmZuY0lvbmNKS0N2a1FlQmdvQXc1Q2FOWXFCcm9wVCtiekhIQ3pIMXAzcmN5VFV0Nm1nTzlJTlM5N1V0b1hIRU8wWTcyR0VmSnhxMmZpdEp3QktPY2lqRUw1RWRDL2w0ZHJIN3E0QlZ6T0hpa3pFSDRFN3N5VUVlbVo0elVLK2I1TVo2UEhhZ3haSUtNV1FpZXh2OFlZcXpIYVVENGtNY0FidzU1bmhVWnFCVDkyVTVmTTUxTWs5THZQSHFlQTA0MFpvb3RyUStoa0Jtb1pWMnVNTmdwNW44UnE2RWpjeHNrSVM3WFMzU3FxTkhJL3lxOWMxZU1WZTI0dDFsTENlVkxOdjdPZ3h1QVQ3aTV1TCtjaUxONUJXRTdDQkpuc29EdUFPTTJ1Y3ltVElPQ0hibWR6S1BmeVpTNlNDdTl1c2pFRWc5c3J0ZnJoNVp5TWNMbE81WWV1c3N4bkk4b3N6elJraXNVU3VyaFNKb1lqek51UUdjRlAzUWszYXpYN3VzclRseVhBSC8wUmxESUsxTXNNeXNRbUhyQVdnMGNFYndnNGhFNmEzR1FRbXpnV0V5R3cvNVc3VUs2Uld1eUE2amY0UkJnTUFUQkJwL0U5Tnhsa0hxOEFTM3pTc3p2YUVTNlRPbFlFVUxmQlo4SmlDQ0hPY3JWZEJ2SDFvUlo0Mng5SlBiSVpZWlRNWkUwVzZ6UmtrYkFZQW9URDJjeGNWMWxzdGpnaHc5bmdZeXhHU0MyL3kxSjloZ0FJanlFU1ROYnBuTzRtZzh6alFlQVhQdWxKOGc3Q3FUSXo4SUc4d1dmQ1pnaUxPTGVyN1hLVFN5ZVRnWC81STRuMUZIQzYxTExCcC9JTklTSnNoZ0FZd21acTNXUndEa1NiNllPVzV5amlUSm5KMzlNdFFCczR5a3RCQm44Sm95RUFxclNhRTF6bEtPWVc0Q2tQTlR6R1hwd3ROZndqM1FMMFJxWWpWSHFveWVBellUVkVJWEh1MEt0VER3MFJtemdGWElNM2F4Ty9BaTZRNlh5YWJnSGF3R3puMUFoRGhBaXJJUUNPWVFCVmJqTElIRjVGMG9pUDJwRzdnVXZFWmxzNm1WVVJiYUFGY2RmdE00U0RNQnNDb0ZhbnV6eURkQXMyOEQ5cDFTWTBpYzA0c2VsTUo3dXVwb0I1M0E3RTBxcmZFRGhoTjBRZjRBNjlKUFdqU2FTWnJVNUViT29JaWxJcE50VnVCU2JSMVJUd1orNEN4cWRiaGlGNHdtNElVRTdpNjB4MmswWG04UkRDejFQOGVCY3dRV1p6azN0eENkU21tRCt6Qm1GTXVtVVl3a0g0RFFFZ05HZzFSN3JLRTZjYzJMU0hUMzFPWXJ4d1o3clMxS2FFUXRxQUg2VmJoaUU4Uk1NUVVJSnltNXNqYkdRZUg4SnV1MEQvd21LRXpPYitkRVhwQXZvNVpuQVZtR2dJTDFFeEJNQjNxZWFucm5JMGNCdndaQS92Skk2SXNYdDhMeVhVWmdEYldBZWNuVzRaaHZBUkpVT0Fza0JuOE5WVVB5NkpUVHdUU0hTTmtpU09pTEY1S1cwWk5nZFN3SDhESjZkYmhpR2NSTXNRc0RkZDNPb21nOHhsQTdEUStldnJ4UG1PMkx5VnJnQzFPWmdDSGlHQ3Ayc2I5a3pVREFGd2dWWnpoYXNjaGN4RnVac0NUcGVHRk82ZDZBV2R5MkZZUEFFbVBpbFhDZlVwYXJ1aFZXdFk1d3ljOTRpejZqd3Vrd3JWWmpCeDFrSHFYVFpEOUloaUN3R3dQOHJpYkZXbWN4aUd4V01ZTStROFVUVUVLS1Y2QXhmNVhvM044Y1I1SERqVTc3b013Uk5kUXlSWXBqYjcrVlc0enVaRWhJZUJBL3lxd3hBdW9tNklnOW1XZnNqRjd0RFpuSW55Q1Bobk9FUDRpTG9oUUxoS3F6blB5eUsxbnZPSjh5Qlp2Z0hURUR6Uk53U0FzRnlydkhsNDFlWUhLUGNEZmIwb3p4QXRjc01ROERVS3VUSFRRclNPeTRCZmtnZzdOK1FodVdJSWdHdDFCbWVrbTFsdHJrYTRsK2l1elJnOElKY01ZYUhjcGxQY2QzVzBqa25BcmVUVzkyRklnMXg3QUFaVDR1NEFZcTFqT3NKU05BUTNXaHNDSjljTUFjcFVyZVhFbEQ0Nmkzb3dKMlBrTUcrZy9OSk5CbmVHNk9KeEpQUm5teFlRNXc2MWU3L2lTMEYwRnEwb2Rka1Vac2dhbTRCcUNqbE9ScnM3ZnRUVkFGS1c4VGZnK3pxRkVjUnBBWmNuWW1TUDRiUnpBMUMvOHh0cVk5SEpDcFNmQktETDRDOXg0RDZLbUNxbDZSMHdsMWFYU1pwWngxYU9ReWtuNlB2ZWVrT28wVnFHZDM5Skw2R0FUdTVFakJseUR1RlJMSTZUS3hpYnJoa2dnekdFcktCREZ0TktKMGNBaTBtY1hoRW1pb2x6ajlxSlZsQnRpaG5LYW9Rcmd4Wm04SlMzRUVybENzNlJ5M2tsMDhJeUhsVExNajZTVm1JSXc0R0hNaTNQWTQ2amczS2RUQjg2V1FQK1I4Y2Fzc1ptb0o1T2hzc1YzbDFnNDlraWxMU3dIamhQWTF5Q01CODQzS3V5TTBLWXpUNWNCSndTdEJTREp5aHdMNTFVeVRnKzhMcHd6NmRkcFpVMURHQUlRam53aWRmbHAwRmZqQmx5aFdkUlRwT3hqUFhERE9EVE9vVFl0RXN6clJReERGZ0I1dHBhUTBhOGgzSWxZemhKcnVScFB5dnlkV0ZPNXJOUm1wa0luQVQ4d2MrNkREbkpWcUNKdmd5VnExZ3BndnBkWVZZQzJhU1o1eFMrUXdVWEF3dUF3N0pScnlIU3JFV1pMRmZ4MTJ4V21yWFFEUUdWUmF6aE03NkpVRS9DL1FiRHpyeUFjb1pjeFNnWmwxMHpRQUN4VExLQ0xiSVFtd0lHQTZ2QS8yYlFFQWsrQXNycHg3ZGxIRThFSlNLdzRENlp6N3R5RTJPQlV4QnozVzBlMHdFc3BwMGpaQnl0VWhyc0FtL2cwYTZ5a0dmb3gybk9DbkpLQjQ4WmNvWjF3TEV5bnBoTURFY0lVT0NHZ01TRmliS0FsU2hIT09PTHovZVl5UkJsTm1CeG9Zem5YQm5QRzBHTDZVNG9ESkZFRnJKWjVtTlR3RkdJZDh2eGh0RHdNY3BrL3M1Uk1vN2ZCQzJtSjBLNWYxZ2FlUXNvMVdyT2RzTE1oKzhwanlIOHlJVE1ENEx3bTFDMUVEc2pqVHhLQ2NjalRJVDBRM29OaGxRSnRTRUF4S1pUR2xtQk1BU2xDV2dQV3BNaGR3bTlJWkpJSTV0a1B0WEVPUnJDMmY4MFJKL0lHQ0tKekdlRE5ISWhjQzZFYTRiQ0VIMGlaNGdrMHNnNlB1SllKOHc4RkhQWWh1Z1RXVU9BczQxMUhxM0FFYzRGS21IYnhtcUlHSkUyUkJLNWtZL2tSbUxFT1JGNFBHZzlodWlTRTRaSUlvMjhLUE00RS9nQjhIYlFlZ3pSSTZjTWtVUWFhR01MMzBLcEJqNE5XbzhoT3VTa0lRQ2ttYTB5anlZS0dZcWFiYXlHMU1oWlF5UVJtNDNTd0VTVWt4Q2VDbHBQeFBndjR0c3Z2YzhMY3Q0UVNhU0I1NWpONlFpbHdEdEI2d2s1YndMbnl5VCtVeWJuMTFnc2J3d0J6amJXMmF5aGdHRWt6bjNkRnJTbWtQRXhTam4vWkxoTTRyZEJpd21DdkRKRUVySFpJck94c1JnRXJDSUxwem1FbkU1Z0JVVU1rY20waWsxbjBJS0NJaThOa1VSczNwWFpqS1dMczRDWGd0WVRDTW9qeERsT0pqTlJKdkxQb09VRVRWNGJJb25NNGZjSUorVFpOdGEvSUpSS0dTTWt4bXRCaXdrTHhoQU9ZaE1YbTVYQWtaRFQyMWcvUTZrSGhzdGtzeXR4WjR3aGRrSnNQaE1ibXdLR1EwNDlNSEZnRmNxUkVzT1dzcHcxZkVhRWNndHBHSkJhL2dLVWFqM25BTTFFZXh2ck15Z3hLZWVab0lXRUhkTkM3QUdaeFNNb3gwTWt0N0crQzF4SmpGT01HVkxER0NJRnhLWlQ2bGhCbktFa2Jrc0srN1RrRnFDZU9JT2xQRHVIQk9jS3hoQXVFSnVQcFk0WUJReEhlVEJvUFQyZ3dCcTYrS1pNd1pZS2MzNnVXOHdZSWcya2hqZUJDM1FPSTBpMEdNTUNsZ1RDODBCTXBwaHJCekxCdEJBWklMV3M0OHNjRS9CdHJPOGpUT1RmZk51WUlYT01JVEpFSnRJaHRiUmljUVNTMVcyczdjQmlpaGdxVTFnaHRnbHY5d0pqQ0krUUdqNlNHbUxBdDhIMzQ5elhZakZNcGhLVHNsRGM0NWN6bURHRXg4Z01YZ0RPMExtTXdxTFY0K0xmUkRoYnB2S1l4K1VhRFA2ak5pWGF5QmxCNnpDa3p2OERRZDdRck1iTFIxQUFBQUFBU1VWT1JLNUNZSUk9Ij4KCjxzdHlsZT4KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90bycpLCBsb2NhbCgnUm9ib3RvLVJlZ3VsYXInKSwgdXJsKC9mb250LXJvYm90by91WUVDTUtvSGNPOXgxd2RtYnlISW0zLV9rZjZCeVlPNkNMWWRCNEhRRS1ZLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8nKSwgbG9jYWwoJ1JvYm90by1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vc1RkYUE2ajBQc2I5MjBWanYtbXJ6SC1fa2Y2QnlZTzZDTFlkQjRIUUUtWS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL19WWUZ4LXM4MjRrWHFfVWwyQkhxWUgtX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL3RuajRTQjZETmJkYVFuc004Q0ZxQlgtX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL29NTWdmWk1RdGhPcnlRbzluMjJkY3V2dkRpbjFwSzhhS3RlTHBlWjVjMEEud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL0tzX2NWeGlDaXdVV1ZzRldGQTNCam4tX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8nKSwgbG9jYWwoJ1JvYm90by1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vTko0dnhsZ1d3V2JFc3YxOGRBaHFubi1fa2Y2QnlZTzZDTFlkQjRIUUUtWS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9pc1otd2JDWE5LQWJuam82X1R3SFRvWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by83N0ZYRmpSYkd6TjRhQ3JTRmhsaDNvWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9qU04yQ0dWRGJjVnlDbmZKZmpTZGZJWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkJyksIGxvY2FsKCdSb2JvdG8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL1VYNmk0SnhRRG0zZlZUYzFDUHV3cW9YMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQnKSwgbG9jYWwoJ1JvYm90by1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vZC02SVlwbE9Gb2NDYWNLenh3WFNPSkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by85N3VhaHhpcVpSb25jQmFDRUkzYVc0WDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQnKSwgbG9jYWwoJ1JvYm90by1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vUHdaYy1ZYklMNDE0d0I5ckIxSUFQWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1Cb2xkSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdDZOZDRjZlBSaFpQNDRRNVFBamNDMTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tQm9sZEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL3Q2TmQ0Y2ZQUmhaUDQ0UTVRQWpjQ19acmFSMlRnOHcybHptN2tMTkwwLXcud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0N3dF9SbTY5MUxUZWJLZlkyWmtLU21JLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0MxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0M0Z3A5UThnYllyaHFHbFJhdl9JWGZrLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0M2RThrTTR4V1IxXzFiWVVSUm9qUkdjLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tQm9sZEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL3Q2TmQ0Y2ZQUmhaUDQ0UTVRQWpjQzlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09wWFVxVG8wVWdRUWhHal9TRmRMV0JrQXo0clluNDdaeTJydmlnV1FmNncud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9XeHJYSmEwQzNLZHRDN2xNYWZHNGRSa0F6NHJZbjQ3WnkycnZpZ1dRZjZ3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vY0RLaFJhWG5RVE9WYmFveHdkT3I5eGtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vMWhaZjAyUE9BTmgzMmsyVmtnRW9VQmtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdlBjeW5TTDBxSHFfNmRYN2xLVkJ5WFloamJTcHZjNDdlZTZ4Ul84MEhudy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdlN6dWxmS1NLMExMampmZWF4Y1JFaGtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9LMjNjeFdWVHJJRkQ2REpzRVZpMDdSa0F6NHJZbjQ3WnkycnZpZ1dRZjZ3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCcpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0JyksIHVybCgvZm9udC1yb2JvdG8vRmw0eTBRZE94eXlUSEVHTVhYOGtjWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0JyksIGxvY2FsKCdSb2JvdG8tTGlnaHQnKSwgdXJsKC9mb250LXJvYm90by8wZUM2ZmwwNmx1WEVZV3BCU0p2WENJWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL0kzUzF3c2dTZzlZQ3VyVjZQVWtUT1lYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0JyksIGxvY2FsKCdSb2JvdG8tTGlnaHQnKSwgdXJsKC9mb250LXJvYm90by8tTDE0SmswNm02cFVIQi01bVhRUW5ZWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCcpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0JyksIHVybCgvZm9udC1yb2JvdG8vSGdvMTNrLXRmU3BuMHFpMVNGZFVmWkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL1BydTMzcWpTaHBaU21HM3o2Vll3bllYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL05ZRFdCZEQ0Z0lxMjZHNVhZYkhzRklYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0MTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0X1pyYVIyVGc4dzJsem03a0xOTDAtdy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0d3RfUm02OTFMVGViS2ZZMlprS1NtSS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTGlnaHRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by83bThsN1RsRk8tUzNWa2hIdVIwYXQxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1MaWdodEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvLzdtOGw3VGxGTy1TM1ZraEh1UjBhdDRncDlROGdiWXJocUdsUmF2X0lYZmsud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0NkU4a000eFdSMV8xYllVUlJvalJHYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1MaWdodEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvLzdtOGw3VGxGTy1TM1ZraEh1UjBhdDlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bScpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bScpLCB1cmwoL2ZvbnQtcm9ib3RvL29IaTMwa3dRV3ZwQ1dxQWh6SGNDU0lYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0nKSwgbG9jYWwoJ1JvYm90by1NZWRpdW0nKSwgdXJsKC9mb250LXJvYm90by9aTHFLZWVsWWJBVEc2MEVwWkJTRHk0WDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vbXg5VWNrNnVCNjNWSUtGWW5FTVhyWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vckd2SGRKbnIybDc1cWIwWU5EOU55SVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vUnhaSmRuemVvM1I1elNleGdlOFVVWkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vb09lRndaTmxyVGVmekxZbWxWVjFVSVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0nKSwgbG9jYWwoJ1JvYm90by1NZWRpdW0nKSwgdXJsKC9mb250LXJvYm90by9tYm1ocHJNSDY5Wmk2ZUVQQllWRmhZWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vT0xmZkdCVGFGMFhGT1cxZ251SEYwVjRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bSBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1NZWRpdW1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9PTGZmR0JUYUYwWEZPVzFnbnVIRjBmWnJhUjJUZzh3Mmx6bTdrTE5MMC13LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMFF0X1JtNjkxTFRlYktmWTJaa0tTbUkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bSBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1NZWRpdW1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9PTGZmR0JUYUYwWEZPVzFnbnVIRjBWQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vT0xmZkdCVGFGMFhGT1cxZ251SEYwWWdwOVE4Z2JZcmhxR2xSYXZfSVhmay53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMGFFOGtNNHhXUjFfMWJZVVJSb2pSR2Mud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMGREaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZMTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZX1pyYVIyVGc4dzJsem03a0xOTDAtdy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZd3RfUm02OTFMVGViS2ZZMlprS1NtSS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vJyksIGxvY2FsKCdSb2JvdG9Nb25vLVJlZ3VsYXInKSwgdXJsKC9mb250LXJvYm90by9oTXFQTkxzdV9keXdNYTRDX0RFcFkxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8nKSwgbG9jYWwoJ1JvYm90b01vbm8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL2hNcVBOTHN1X2R5d01hNENfREVwWTRncDlROGdiWXJocUdsUmF2X0lYZmsud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZNkU4a000eFdSMV8xYllVUlJvalJHYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8nKSwgbG9jYWwoJ1JvYm90b01vbm8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL2hNcVBOTHN1X2R5d01hNENfREVwWTlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubyBCb2xkJyksIGxvY2FsKCdSb2JvdG9Nb25vLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9ONGR1VmM5QzU4dXdQaVk4XzU5RnoxeC1NMUkxdzVPTWlxblZGOHhCTGhVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vIEJvbGQnKSwgbG9jYWwoJ1JvYm90b01vbm8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL040ZHVWYzlDNTh1d1BpWThfNTlGendYYUFYdXA1bVpsZks2eFJMcmhzY28ud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6d242V3F4by14d3hpbERYUFU4Y2hWVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vIEJvbGQnKSwgbG9jYWwoJ1JvYm90b01vbm8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL040ZHVWYzlDNTh1d1BpWThfNTlGejFUN2FKTEs2bktwbjM2SU13VGNNTWMud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubyBCb2xkJyksIGxvY2FsKCdSb2JvdG9Nb25vLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9ONGR1VmM5QzU4dXdQaVk4XzU5RnpfNzlfWnVVeENpZ00yRGVzcFRuRmF3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6NGdkOU9FUFVDTjNBZFlXMGU4dGF0NC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6OGJJUVNZWm5XTGFXQzlRTkNwVEtfVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Cjwvc3R5bGU+CgoKCjxzdHlsZT4ubWF0LWJhZGdlLWNvbnRlbnR7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudHtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50e2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDEsLm1hdC1oZWFkbGluZSwubWF0LXR5cG9ncmFwaHkgaDF7Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDIsLm1hdC10aXRsZSwubWF0LXR5cG9ncmFwaHkgaDJ7Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDMsLm1hdC1zdWJoZWFkaW5nLTIsLm1hdC10eXBvZ3JhcGh5IGgze2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0LC5tYXQtc3ViaGVhZGluZy0xLC5tYXQtdHlwb2dyYXBoeSBoNHtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNSwubWF0LXR5cG9ncmFwaHkgaDV7Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDYsLm1hdC10eXBvZ3JhcGh5IGg2e2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nLC5tYXQtYm9keS0ye2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keSwubWF0LWJvZHktMSwubWF0LXR5cG9ncmFwaHl7Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5IHAsLm1hdC1ib2R5LTEgcCwubWF0LXR5cG9ncmFwaHkgcHttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbCwubWF0LWNhcHRpb257Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTQsLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00e2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktMywubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTN7Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMiwubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTJ7Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTEsLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0xe2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJ7Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b24sLm1hdC1yYWlzZWQtYnV0dG9uLC5tYXQtaWNvbi1idXR0b24sLm1hdC1zdHJva2VkLWJ1dHRvbiwubWF0LWZsYXQtYnV0dG9uLC5tYXQtZmFiLC5tYXQtbWluaS1mYWJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGV7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxle2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyIC5tYXQtY2FyZC10aXRsZXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGUsLm1hdC1jYXJkLWNvbnRlbnR7Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbHtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLC5tYXQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29ue2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGV7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGx7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbCwubWF0LWZvb3Rlci1jZWxse2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwsLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9ue2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB0aHtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGV7Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudHtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGR7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJ7cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29ue2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiwubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b257aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbntoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXh7cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcntmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtd3JhcHBlcntwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWx7dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXIsLm1hdC1ncmlkLXRpbGUtZm9vdGVye2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmUsLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSwubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50e21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVte2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3IsLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9ue2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcntoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsLC5tYXQtc3RlcHBlci1ob3Jpem9udGFse2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWx7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3J7Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcntmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWR7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3Vwe2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbCwubWF0LXRhYi1saW5re2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyLC5tYXQtdG9vbGJhciBoMSwubWF0LXRvb2xiYXIgaDIsLm1hdC10b29sYmFyIGgzLC5tYXQtdG9vbGJhciBoNCwubWF0LXRvb2xiYXIgaDUsLm1hdC10b29sYmFyIGg2e2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldHtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVte2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9ue2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVse2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb257bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWV7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlLC5tYXQtbmVzdGVkLXRyZWUtbm9kZXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGV7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVke292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudHtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcmlwcGxlLWVsZW1lbnR7ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVue2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lciwuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3B7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AsLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94e3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2t7cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemV7cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ3twYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94e3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0ey8qISovfUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5key8qISovfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcntwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3J7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5tYXQtb3B0aW9ue2NvbG9yOiMyMTIxMjF9Lm1hdC1vcHRpb246aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSwubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfS5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9Lm1hdC1vcHRpb24ubWF0LWFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA0KTtjb2xvcjojMjEyMTIxfS5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWR7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtjb2xvcjojZjU3YzAwfS5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmZjk4MDB9Lm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmNDQzMzZ9Lm1hdC1vcHRncm91cC1sYWJlbHtjb2xvcjojNjE2MTYxfS5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1wc2V1ZG8tY2hlY2tib3h7Y29sb3I6IzYxNjE2MX0ubWF0LXBzZXVkby1jaGVja2JveDo6YWZ0ZXJ7Y29sb3I6I2ZmZn0ubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZHtjb2xvcjojYjBiMGIwfS5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRle2JhY2tncm91bmQ6I2Y1N2MwMH0ubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRle2JhY2tncm91bmQ6I2ZmOTgwMH0ubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kOiNmNDQzMzZ9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZHtiYWNrZ3JvdW5kOiNiMGIwYjB9Lm1hdC1hcHAtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWVsZXZhdGlvbi16MHtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejF7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16Mntib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoze2JveC1zaGFkb3c6MHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejR7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejV7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDE0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejZ7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXo3e2JveC1zaGFkb3c6MHB4IDRweCA1cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16OHtib3gtc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejl7Ym94LXNoYWRvdzowcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDNweCAxNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMHtib3gtc2hhZG93OjBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMHB4IDE0cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMXtib3gtc2hhZG93OjBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMXB4IDE1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDRweCAyMHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMntib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxM3tib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxM3B4IDE5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNHtib3gtc2hhZG93OjBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNHB4IDIxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNXtib3gtc2hhZG93OjBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDZweCAyOHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTd7Ym94LXNoYWRvdzowcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE3cHggMjZweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDMycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE4e2JveC1zaGFkb3c6MHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDdweCAzNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxOXtib3gtc2hhZG93OjBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTlweCAyOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjB7Ym94LXNoYWRvdzowcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAyMHB4IDMxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDhweCAzOHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyMXtib3gtc2hhZG93OjBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOHB4IDQwcHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejIye2JveC1zaGFkb3c6MHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjJweCAzNXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjN7Ym94LXNoYWRvdzowcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAyM3B4IDM2cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDlweCA0NHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyNHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC10aGVtZS1sb2FkZWQtbWFya2Vye2Rpc3BsYXk6bm9uZX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKXtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtjb2xvcjojMjEyMTIxfS5tYXQtYmFkZ2V7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50e2Rpc3BsYXk6bm9uZX0ubWF0LWJhZGdlLWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czo1MCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7dHJhbnNmb3JtOnNjYWxlKDAuNik7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm5nLWFuaW1hdGUtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50LC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1iYWRnZS1jb250ZW50Lm1hdC1iYWRnZS1hY3RpdmV7dHJhbnNmb3JtOm5vbmV9Lm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnR7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtsaW5lLWhlaWdodDoxNnB4fS5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudHt0b3A6LThweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnR7Ym90dG9tOi04cHh9Lm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0Oi0xNnB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6YXV0bztyaWdodDotMTZweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6LTE2cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDphdXRvO2xlZnQ6LTE2cHh9Lm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0Oi04cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi04cHh9Lm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi04cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDphdXRvO2xlZnQ6LThweH0ubWF0LWJhZGdlLW1lZGl1bSAubWF0LWJhZGdlLWNvbnRlbnR7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtsaW5lLWhlaWdodDoyMnB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnR7dG9wOi0xMXB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnR7Ym90dG9tOi0xMXB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTIycHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6YXV0bztyaWdodDotMjJweH0ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi0yMnB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMjJweH0ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0Oi0xMXB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0OmF1dG87cmlnaHQ6LTExcHh9Lm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDotMTFweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDphdXRvO2xlZnQ6LTExcHh9Lm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnR7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtsaW5lLWhlaWdodDoyOHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudHt0b3A6LTE0cHh9Lm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50e2JvdHRvbTotMTRweH0ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTI4cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi0yOHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDotMjhweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMjhweH0ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTE0cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi0xNHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDotMTRweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMTRweH0ubWF0LWJhZGdlLWNvbnRlbnR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNmNTdjMDB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJhZGdlLWNvbnRlbnR7b3V0bGluZTpzb2xpZCAxcHg7Ym9yZGVyLXJhZGl1czowfS5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZjQ0MzM2fS5tYXQtYmFkZ2UtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50e2JhY2tncm91bmQ6I2JkYmRiZDtjb2xvcjojNzU3NTc1fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uLC5tYXQtc3Ryb2tlZC1idXR0b257Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXtjb2xvcjojZjU3YzAwfS5tYXQtYnV0dG9uLm1hdC1hY2NlbnQsLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudHtjb2xvcjojZmY5ODAwfS5tYXQtYnV0dG9uLm1hdC13YXJuLC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4sLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1pY29uLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50e29wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Lm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kOiMwMDB9Lm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1mbGF0LWJ1dHRvbiwubWF0LXJhaXNlZC1idXR0b24sLm1hdC1mYWIsLm1hdC1taW5pLWZhYntjb2xvcjojMjEyMTIxO2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwubWF0LWZhYi5tYXQtcHJpbWFyeSwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5e2NvbG9yOiNmZmZ9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtZmFiLm1hdC1hY2NlbnQsLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50e2NvbG9yOiNmZmZ9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sLm1hdC1mYWIubWF0LXdhcm4sLm1hdC1taW5pLWZhYi5tYXQtd2Fybntjb2xvcjojZmZmfS5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmFiLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LW1pbmktZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWR7Y29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtZmFiLm1hdC1wcmltYXJ5LC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnl7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwubWF0LWZhYi5tYXQtYWNjZW50LC5tYXQtbWluaS1mYWIubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sLm1hdC1mYWIubWF0LXdhcm4sLm1hdC1taW5pLWZhYi5tYXQtd2FybntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZsYXQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZhYi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LW1pbmktZmFiLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1yYWlzZWQtYnV0dG9uOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXJhaXNlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1mYWI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1taW5pLWZhYjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZmFiLm1hdC1idXR0b24tZGlzYWJsZWQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSwubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXB7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJke2JveC1zaGFkb3c6bm9uZX0ubWF0LWJ1dHRvbi10b2dnbGV7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZHtjb2xvcjojMjEyMTIxO2JhY2tncm91bmQ6I2ZmZn0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfVtkaXI9cnRsXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUrLm1hdC1idXR0b24tdG9nZ2xle2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpub25lO2JvcmRlci10b3A6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7Y29sb3I6IzYxNjE2MX0ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2NvbG9yOiMyMTIxMjF9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVke2NvbG9yOnJnYmEoMCwwLDAsLjI2KTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7YmFja2dyb3VuZDojZmZmfS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2Vke2JhY2tncm91bmQtY29sb3I6I2JkYmRiZH0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJke2JvcmRlcjpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50e2xpbmUtaGVpZ2h0OjQ4cHh9Lm1hdC1jYXJke2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtY2FyZC5tYXQtY2FyZC1mbGF0Om5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWNhcmQtc3VidGl0bGV7Y29sb3I6IzYxNjE2MX0ubWF0LWNoZWNrYm94LWZyYW1le2JvcmRlci1jb2xvcjojNjE2MTYxfS5tYXQtY2hlY2tib3gtY2hlY2ttYXJre2ZpbGw6I2ZmZn0ubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZTojZmZmICFpbXBvcnRhbnR9Lm1hdC1jaGVja2JveC1taXhlZG1hcmt7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNiMGIwYjB9Lm1hdC1jaGVja2JveC1kaXNhYmxlZDpub3QoLm1hdC1jaGVja2JveC1jaGVja2VkKSAubWF0LWNoZWNrYm94LWZyYW1le2JvcmRlci1jb2xvcjojYjBiMGIwfS5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1sYWJlbHtjb2xvcjojNjE2MTYxfS5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQ6I2Y1N2MwMH0ubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQ6I2ZmOTgwMH0ubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDojZjQ0MzM2fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7Y29sb3I6IzIxMjEyMX0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojMjEyMTIxO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpOmFjdGl2ZXtib3gtc2hhZG93OjBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVye29wYWNpdHk6LjU0fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZHtvcGFjaXR5Oi40fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXJ7YmFja2dyb3VuZDojMDAwfS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDA7Y29sb3I6I2ZmZn0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm57YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2O2NvbG9yOiNmZmZ9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmV7Y29sb3I6I2ZmZjtvcGFjaXR5Oi40fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwO2NvbG9yOiNmZmZ9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtdGFibGV7YmFja2dyb3VuZDojZmZmfS5tYXQtdGFibGUgdGhlYWQsLm1hdC10YWJsZSB0Ym9keSwubWF0LXRhYmxlIHRmb290LG1hdC1oZWFkZXItcm93LG1hdC1yb3csbWF0LWZvb3Rlci1yb3csW21hdC1oZWFkZXItcm93XSxbbWF0LXJvd10sW21hdC1mb290ZXItcm93XSwubWF0LXRhYmxlLXN0aWNreXtiYWNrZ3JvdW5kOmluaGVyaXR9bWF0LXJvdyxtYXQtaGVhZGVyLXJvdyxtYXQtZm9vdGVyLXJvdyx0aC5tYXQtaGVhZGVyLWNlbGwsdGQubWF0LWNlbGwsdGQubWF0LWZvb3Rlci1jZWxse2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtaGVhZGVyLWNlbGx7Y29sb3I6IzYxNjE2MX0ubWF0LWNlbGwsLm1hdC1mb290ZXItY2VsbHtjb2xvcjojMjEyMTIxfS5tYXQtY2FsZW5kYXItYXJyb3d7ZmlsbDpyZ2JhKDAsMCwwLC41NCl9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9ue2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcntjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVse2NvbG9yOiM2MTYxNjF9Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCwubWF0LWRhdGUtcmFuZ2UtaW5wdXQtc2VwYXJhdG9ye2NvbG9yOiMyMTIxMjE7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2NvbG9yOiM3NTc1NzV9Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3J7Y29sb3I6Izc1NzU3NX0ubWF0LWNhbGVuZGFyLWJvZHktaW4tcHJldmlld3tjb2xvcjpyZ2JhKDAsMCwwLC4yNCl9Lm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMTgpfS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDUsMTI0LDAsLjIpfS5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCwubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfS5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjQ1LCAxMjQsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDI0NSwgMTI0LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX0ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQ6IzQ2YTM1ZX0ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwO2NvbG9yOiNmZmZ9Lm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ1LDEyNCwwLC40KX0ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn0ubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjMpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50e2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwxNTIsMCwuMil9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwO2NvbG9yOiNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjQpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC4zKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ5LDE3MSwwLC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI0NCwgNjcsIDU0LCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNDQsIDY3LCA1NCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlcntiYWNrZ3JvdW5kOiNhOGRhYjV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNCl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXI+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4zKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmV7Y29sb3I6I2Y1N2MwMH0ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50e2NvbG9yOiNmZjk4MDB9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn0ubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaW5uZXJbZGlzYWJsZWRde2NvbG9yOiM3NTc1NzV9Lm1hdC1kaWFsb2ctY29udGFpbmVye2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWRpdmlkZXJ7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1kaXZpZGVyLXZlcnRpY2Fse2JvcmRlci1yaWdodC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1leHBhbnNpb24tcGFuZWx7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWFjdGlvbi1yb3d7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSksLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojZmZmfX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGV7Y29sb3I6IzIxMjEyMX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlcntjb2xvcjojNjE2MTYxfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVde2NvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9ue2NvbG9yOmluaGVyaXR9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVye2hlaWdodDo0OHB4fS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5tYXQtZXhwYW5kZWR7aGVpZ2h0OjY0cHh9Lm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoOTcsOTcsOTcsLjYpfS5tYXQtaGludHtjb2xvcjpyZ2JhKDk3LDk3LDk3LC42KX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50e2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2Vye2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LXdhcm57YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjU3YzAwfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQsLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXJ7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1lcnJvcntjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWx7Y29sb3I6IzYxNjE2MX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50e2NvbG9yOiM2MTYxNjF9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC40Mil9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7YmFja2dyb3VuZC1zaXplOjRweCAxMDAlO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC40Mil9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKTtiYWNrZ3JvdW5kLXNpemU6NHB4IDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA0KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNDIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiM3NTc1NzV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le2NvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtaW52YWxpZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtbGFiZWx7Y29sb3I6Izc1NzU3NX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le2NvbG9yOnJnYmEoMCwwLDAsLjA2KX0ubWF0LWljb24ubWF0LXByaW1hcnl7Y29sb3I6I2Y1N2MwMH0ubWF0LWljb24ubWF0LWFjY2VudHtjb2xvcjojZmY5ODAwfS5tYXQtaWNvbi5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6IzYxNjE2MX0ubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojNzU3NTc1fS5tYXQtaW5wdXQtZWxlbWVudHtjYXJldC1jb2xvcjojZjU3YzAwfS5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSg5Nyw5Nyw5NywuNDIpfS5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDk3LDk3LDk3LC40Mil9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoOTcsOTcsOTcsLjQyKX0ubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoOTcsOTcsOTcsLjQyKX0ubWF0LWZvcm0tZmllbGQubWF0LWFjY2VudCAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6I2ZmOTgwMH0ubWF0LWZvcm0tZmllbGQubWF0LXdhcm4gLm1hdC1pbnB1dC1lbGVtZW50LC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtaW5wdXQtZWxlbWVudHtjYXJldC1jb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjQ0MzM2fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVte2NvbG9yOiMyMTIxMjF9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbntjb2xvcjojMjEyMTIxfS5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVye2NvbG9yOiM2MTYxNjF9Lm1hdC1saXN0LWl0ZW0tZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5tYXQtbGlzdC1vcHRpb246aG92ZXIsLm1hdC1saXN0LW9wdGlvbjpmb2N1cywubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3ZlciwubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3Vze2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfS5tYXQtbGlzdC1zaW5nbGUtc2VsZWN0ZWQtb3B0aW9uLC5tYXQtbGlzdC1zaW5nbGUtc2VsZWN0ZWQtb3B0aW9uOmhvdmVyLC5tYXQtbGlzdC1zaW5nbGUtc2VsZWN0ZWQtb3B0aW9uOmZvY3Vze2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMTIpfS5tYXQtbWVudS1wYW5lbHtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1tZW51LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtbWVudS1pdGVte2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6IzIxMjEyMX0ubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdIC5tYXQtbWVudS1zdWJtZW51LWljb24sLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdIC5tYXQtaWNvbi1uby1jb2xvcntjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLC5tYXQtbWVudS1zdWJtZW51LWljb257Y29sb3I6cmdiYSgwLDAsMCwuNTQpfS5tYXQtbWVudS1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSwubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQ6bm90KFtkaXNhYmxlZF0pe2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfS5tYXQtcGFnaW5hdG9ye2JhY2tncm91bmQ6I2ZmZn0ubWF0LXBhZ2luYXRvciwubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlcntjb2xvcjojNjE2MTYxfS5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCwubWF0LXBhZ2luYXRvci1pbmNyZW1lbnR7Ym9yZGVyLXRvcDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpO2JvcmRlci1yaWdodDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpfS5tYXQtcGFnaW5hdG9yLWZpcnN0LC5tYXQtcGFnaW5hdG9yLWxhc3R7Ym9yZGVyLXRvcDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpfS5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCwubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcGFnaW5hdG9yLWNvbnRhaW5lcnttaW4taGVpZ2h0OjU2cHh9Lm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiNmZGRlYmZ9Lm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6I2ZkZGViZn0ubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5ke2ZpbGw6I2ZmZTViZn0ubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmU1YmZ9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiNmY2QwY2R9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6I2ZjZDBjZH0ubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSwubWF0LXNwaW5uZXIgY2lyY2xle3N0cm9rZTojZjU3YzAwfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGV7c3Ryb2tlOiNmZjk4MDB9Lm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSwubWF0LXNwaW5uZXIubWF0LXdhcm4gY2lyY2xle3N0cm9rZTojZjQ0MzM2fS5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojNjE2MTYxfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojZjU3YzAwfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnk6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOiNmZjk4MDB9Lm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6I2Y0NDMzNn0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnR7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiMyMTIxMjF9Lm1hdC1zZWxlY3QtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSg5Nyw5Nyw5NywuNDIpfS5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiM3NTc1NzV9Lm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6IzYxNjE2MX0ubWF0LXNlbGVjdC1wYW5lbHtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6I2ZmOTgwMH0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6Izc1NzU3NX0ubWF0LWRyYXdlci1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1kcmF3ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoe2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LWRyYXdlcjpub3QoLm1hdC1kcmF3ZXItc2lkZSl7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1kcmF3ZXItc2lkZXtib3JkZXItcmlnaHQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5ke2JvcmRlci1sZWZ0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMik7Ym9yZGVyLXJpZ2h0Om5vbmV9W2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGV7Ym9yZGVyLWxlZnQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKTtib3JkZXItcmlnaHQ6bm9uZX1bZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZHtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LXNsaWRlLXRvZ2dsZTpub3QoLm1hdC1jaGVja2VkKSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6IzAwMH0ubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYX0ubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtjb2xvcjojZmZmfS5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjIpfS5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7Y29sb3I6I2ZmZn0ubWF0LWFjY2VudCAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjIpfS5tYXQtd2FybiAubWF0LXNsaWRlci10cmFjay1maWxsLC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYiwubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2NvbG9yOiNmZmZ9Lm1hdC13YXJuIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuMil9Lm1hdC1zbGlkZXI6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCwubWF0LXNsaWRlci5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LXNsaWRlci1kaXNhYmxlZDpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtc2xpZGVyLW1pbi12YWx1ZSAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMjYpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3ZlciAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyl9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrc3tiYWNrZ3JvdW5kLWltYWdlOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6LW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCl9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3N7YmFja2dyb3VuZC1pbWFnZTpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCl9Lm1hdC1zdGVwLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXN0ZXAtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC1zdGVwLWhlYWRlcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWRdKSwubWF0LXN0ZXAtaGVhZGVyOmhvdmVyW2FyaWEtZGlzYWJsZWQ9ZmFsc2Vde2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDQpfS5tYXQtc3RlcC1oZWFkZXI6aG92ZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjdXJzb3I6ZGVmYXVsdH1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtc3RlcC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDpub25lfX0ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbCwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1vcHRpb25hbHtjb2xvcjojNjE2MTYxfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb257YmFja2dyb3VuZC1jb2xvcjojNjE2MTYxO2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbntjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSwubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29ue2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojZjQ0MzM2fS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZXtjb2xvcjojMjEyMTIxfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9ye2NvbG9yOiNmNDQzMzZ9Lm1hdC1zdGVwcGVyLWhvcml6b250YWwsLm1hdC1zdGVwcGVyLXZlcnRpY2Fse2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3Jle2JvcmRlci1sZWZ0LWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSwubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmV7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVye2hlaWdodDo3MnB4fS5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyLC5tYXQtdmVydGljYWwtc3RlcHBlci1oZWFkZXJ7cGFkZGluZzoyNHB4IDI0cHh9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZXt0b3A6LTE2cHg7Ym90dG9tOi0xNnB4fS5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlciwubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3Jle3RvcDozNnB4fS5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZXt0b3A6MzZweH0ubWF0LXNvcnQtaGVhZGVyLWFycm93e2NvbG9yOiM2MTYxNjF9Lm1hdC10YWItbmF2LWJhciwubWF0LXRhYi1oZWFkZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpfS5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXJ7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpO2JvcmRlci1ib3R0b206bm9uZX0ubWF0LXRhYi1sYWJlbCwubWF0LXRhYi1saW5re2NvbG9yOiMyMTIxMjF9Lm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6Izc1NzU3NX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjojMjEyMTIxfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOiM3NTc1NzV9Lm1hdC10YWItZ3JvdXBbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV0gLm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLW5hdi1iYXJbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV17Ym9yZGVyLWJvdHRvbTpub25lO2JvcmRlci10b3A6bm9uZX0ubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNjcsMzgsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMjQsMTc4LC4zKX0ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIwNSwyMTAsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC10YWItZ3JvdXAubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNjcsMzgsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluaywubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5re2NvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle2JvcmRlci1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIyNCwxNzgsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmssLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIwNSwyMTAsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluaywubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5re2NvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle2JvcmRlci1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX0ubWF0LXRvb2xiYXJ7YmFja2dyb3VuZDojZjU3YzAwO2NvbG9yOiMyMTIxMjF9Lm1hdC10b29sYmFyLm1hdC1wcmltYXJ5e2JhY2tncm91bmQ6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtdG9vbGJhci5tYXQtYWNjZW50e2JhY2tncm91bmQ6I2ZmOTgwMDtjb2xvcjojZmZmfS5tYXQtdG9vbGJhci5tYXQtd2FybntiYWNrZ3JvdW5kOiNmNDQzMzY7Y29sb3I6I2ZmZn0ubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSwubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSwubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Lm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6aW5oZXJpdH0ubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOmN1cnJlbnRDb2xvcn0ubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93c3ttaW4taGVpZ2h0OjY0cHh9Lm1hdC10b29sYmFyLXJvdywubWF0LXRvb2xiYXItc2luZ2xlLXJvd3toZWlnaHQ6NjRweH1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Lm1hdC10b29sYmFyLW11bHRpcGxlLXJvd3N7bWluLWhlaWdodDo1NnB4fS5tYXQtdG9vbGJhci1yb3csLm1hdC10b29sYmFyLXNpbmdsZS1yb3d7aGVpZ2h0OjU2cHh9fS5tYXQtdG9vbHRpcHtiYWNrZ3JvdW5kOnJnYmEoOTcsOTcsOTcsLjkpfS5tYXQtdHJlZXtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC10cmVlLW5vZGUsLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2NvbG9yOiMyMTIxMjF9Lm1hdC10cmVlLW5vZGV7bWluLWhlaWdodDo0OHB4fS5tYXQtc25hY2stYmFyLWNvbnRhaW5lcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KTtiYWNrZ3JvdW5kOiMzMjMyMzI7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbntjb2xvcjojZmY5ODAwfWJvZHl7b3ZlcmZsb3c6aGlkZGVufS5jZGstb3ZlcmxheS1jb250YWluZXJ7Y29udGFpbjpzdHJpY3R9YTpub3QoLm1hdC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbil7Y29sb3I6IzE5NzZkMn1hOm5vdCgubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uKTp2aXNpdGVke2NvbG9yOiM3YjFmYTJ9Ym9keS5kYXJrLW1vZGV7YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlIGE6bm90KC5tYXQtYnV0dG9uLC5tYXQtaWNvbi1idXR0b24pe2NvbG9yOiM0MmE1ZjV9Ym9keS5kYXJrLW1vZGUgYTpub3QoLm1hdC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbik6dmlzaXRlZHtjb2xvcjojYmE2OGM4fWJvZHkuZGFyay1tb2RlIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGlvbntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC1vcHRpb246Zm9jdXM6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA0KX1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDQpfWJvZHkuZGFyay1tb2RlIC5tYXQtb3B0aW9uLm1hdC1hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCk7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGlvbi5tYXQtb3B0aW9uLWRpc2FibGVke2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1vcHRncm91cC1sYWJlbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGdyb3VwLWRpc2FibGVkIC5tYXQtb3B0Z3JvdXAtbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3h7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVye2NvbG9yOiMzMDMwMzB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWR7Y29sb3I6IzY4Njg2OH1ib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLGJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsYm9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGV7YmFja2dyb3VuZDojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWR7YmFja2dyb3VuZDojNjg2ODY4fWJvZHkuZGFyay1tb2RlIC5tYXQtYXBwLWJhY2tncm91bmQsYm9keS5kYXJrLW1vZGUubWF0LWFwcC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6IzMwMzAzMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXowe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MXtib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoye2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejN7Ym94LXNoYWRvdzowcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16NHtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16NXtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA1cHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16Nntib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejd7Ym94LXNoYWRvdzowcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDJweCAxNnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXo4e2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16OXtib3gtc2hhZG93OjBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA5cHggMTJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEwe2JveC1zaGFkb3c6MHB4IDZweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejExe2JveC1zaGFkb3c6MHB4IDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDExcHggMTVweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEye2JveC1zaGFkb3c6MHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEze2JveC1zaGFkb3c6MHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE0e2JveC1zaGFkb3c6MHB4IDdweCA5cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE0cHggMjFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE1e2JveC1zaGFkb3c6MHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE1cHggMjJweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE2e2JveC1zaGFkb3c6MHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoxN3tib3gtc2hhZG93OjBweCA4cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTdweCAyNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MTh7Ym94LXNoYWRvdzowcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE4cHggMjhweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE5e2JveC1zaGFkb3c6MHB4IDlweCAxMnB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoyMHtib3gtc2hhZG93OjBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDIwcHggMzFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejIxe2JveC1zaGFkb3c6MHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjFweCAzM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MjJ7Ym94LXNoYWRvdzowcHggMTBweCAxNHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoyM3tib3gtc2hhZG93OjBweCAxMXB4IDE0cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDIzcHggMzZweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejI0e2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXJ7ZGlzcGxheTpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVse2JhY2tncm91bmQ6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpe2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS1jb250ZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZWY2YzAwfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgYm9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS1jb250ZW50e291dGxpbmU6c29saWQgMXB4O2JvcmRlci1yYWRpdXM6MH1ib2R5LmRhcmstbW9kZSAubWF0LWJhZGdlLWFjY2VudCAubWF0LWJhZGdlLWNvbnRlbnR7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS13YXJuIC5tYXQtYmFkZ2UtY29udGVudHtjb2xvcjojZmZmO2JhY2tncm91bmQ6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiM2ZTZlNmU7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJ7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7YmFja2dyb3VuZDojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24sYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbixib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9ue2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnl7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50e29wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpe2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbixib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24sYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5e2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50e2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LXdhcm4sYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtd2Fybntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LXByaW1hcnksYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC13YXJue2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b246bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWZhYjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1idXR0b24tZGlzYWJsZWQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLGJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cHtib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsYm9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmR7Ym94LXNoYWRvdzpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6c29saWQgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpzb2xpZCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItdG9wOnNvbGlkIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojMjEyMTIxO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyk7YmFja2dyb3VuZC1jb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZHtib3JkZXI6c29saWQgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWNhcmR7YmFja2dyb3VuZDojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FyZC1zdWJ0aXRsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWZyYW1le2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWNoZWNrbWFya3tmaWxsOiMzMDMwMzB9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHtzdHJva2U6IzMwMzAzMCAhaW1wb3J0YW50fWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsYm9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsYm9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojNjg2ODY4fWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQ6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkgLm1hdC1jaGVja2JveC1mcmFtZXtib3JkZXItY29sb3I6IzY4Njg2OH1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWRpc2FibGVkIC5tYXQtY2hlY2tib3gtbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwe2JhY2tncm91bmQtY29sb3I6IzYxNjE2MTtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZle2JveC1zaGFkb3c6MHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXJ7b3BhY2l0eTouNTR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVke29wYWNpdHk6LjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlcntiYWNrZ3JvdW5kOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWJsZXtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWJsZSB0aGVhZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYmxlIHRib2R5LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFibGUgdGZvb3QsYm9keS5kYXJrLW1vZGUgbWF0LWhlYWRlci1yb3csYm9keS5kYXJrLW1vZGUgbWF0LXJvdyxib2R5LmRhcmstbW9kZSBtYXQtZm9vdGVyLXJvdyxib2R5LmRhcmstbW9kZSBbbWF0LWhlYWRlci1yb3ddLGJvZHkuZGFyay1tb2RlIFttYXQtcm93XSxib2R5LmRhcmstbW9kZSBbbWF0LWZvb3Rlci1yb3ddLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFibGUtc3RpY2t5e2JhY2tncm91bmQ6aW5oZXJpdH1ib2R5LmRhcmstbW9kZSBtYXQtcm93LGJvZHkuZGFyay1tb2RlIG1hdC1oZWFkZXItcm93LGJvZHkuZGFyay1tb2RlIG1hdC1mb290ZXItcm93LGJvZHkuZGFyay1tb2RlIHRoLm1hdC1oZWFkZXItY2VsbCxib2R5LmRhcmstbW9kZSB0ZC5tYXQtY2VsbCxib2R5LmRhcmstbW9kZSB0ZC5tYXQtZm9vdGVyLWNlbGx7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1oZWFkZXItY2VsbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNlbGwsYm9keS5kYXJrLW1vZGUgLm1hdC1mb290ZXItY2VsbHtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYXJyb3d7ZmlsbDojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3J7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvcntjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1wcmV2aWV3e2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjI0KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyMzksMTA4LDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCxib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjM5LCAxMDgsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDIzOSwgMTA4LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQ6IzQ2YTM1ZX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC40KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksYm9keS5kYXJrLW1vZGUgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50e2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDIzOSwxMDgsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDIzOSwgMTA4LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjM5LCAxMDgsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ5LDE3MSwwLC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI0NCwgNjcsIDU0LCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNDQsIDY3LCA1NCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlcntiYWNrZ3JvdW5kOiNhOGRhYjV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXI+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmV7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaW5uZXJbZGlzYWJsZWRde2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1kaWFsb2ctY29udGFpbmVye2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kOiM0MjQyNDI7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWRpdmlkZXJ7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kaXZpZGVyLXZlcnRpY2Fse2JvcmRlci1yaWdodC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWx7YmFja2dyb3VuZDojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWFjdGlvbi1yb3d7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSksYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSxib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSl7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9QG1lZGlhKGhvdmVyOiBub25lKXtib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojNDI0MjQyfX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGV7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9ue2NvbG9yOmluaGVyaXR9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtaGludHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2Vye2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJue2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2Vye2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZXJyb3J7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7YmFja2dyb3VuZC1zaXplOjRweCAxMDAlO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAzMyUsIHRyYW5zcGFyZW50IDAlKTtiYWNrZ3JvdW5kLXNpemU6NHB4IDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXh7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4wNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWludmFsaWQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pY29uLm1hdC1wcmltYXJ5e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1pY29uLm1hdC1hY2NlbnR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWljb24ubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbntjb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbjpkaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbXtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb257Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3QtaXRlbS1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1saXN0LW9wdGlvbjpob3Zlcixib2R5LmRhcmstbW9kZSAubWF0LWxpc3Qtb3B0aW9uOmZvY3VzLGJvZHkuZGFyay1tb2RlIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cyxib2R5LmRhcmstbW9kZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXN7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb246aG92ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb246Zm9jdXN7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZW51LXBhbmVse2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZW51LWl0ZW17YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXSxib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1hdC1tZW51LXN1Ym1lbnUtaWNvbixib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1hdC1pY29uLW5vLWNvbG9ye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtc3VibWVudS1pY29ue2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZW51LWl0ZW06aG92ZXI6bm90KFtkaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSxib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZDpub3QoW2Rpc2FibGVkXSl7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3J7YmFja2dyb3VuZDojNDI0MjQyfWJvZHkuZGFyay1tb2RlIC5tYXQtcGFnaW5hdG9yLGJvZHkuZGFyay1tb2RlIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2Vye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnR7Ym9yZGVyLXRvcDoycHggc29saWQgI2ZmZjtib3JkZXItcmlnaHQ6MnB4IHNvbGlkICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3ItZmlyc3QsYm9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3ItbGFzdHtib3JkZXItdG9wOjJweCBzb2xpZCAjZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdHtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiM2MDNmMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6IzYwM2YyNH1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5ke2ZpbGw6IzYwM2YyNH1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOiM2MDNmMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiM2MTM1MzJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6IzYxMzUzMn1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIgY2lyY2xle3N0cm9rZTojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGV7c3Ryb2tlOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIubWF0LXdhcm4gY2lyY2xle3N0cm9rZTojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudDphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xle2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXNlbGVjdC12YWx1ZXtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zZWxlY3QtcGFuZWx7YmFja2dyb3VuZDojNDI0MjQyfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpe2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXItY29udGFpbmVye2JhY2tncm91bmQtY29sb3I6IzMwMzAzMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZHJhd2Vye2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZHJhd2VyLm1hdC1kcmF3ZXItcHVzaHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpe2JveC1zaGFkb3c6MHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZHJhd2VyLXNpZGV7Ym9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZHtib3JkZXItbGVmdDpzb2xpZCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMTIpO2JvcmRlci1yaWdodDpub25lfWJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRle2JvcmRlci1sZWZ0OnNvbGlkIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xMik7Ym9yZGVyLXJpZ2h0Om5vbmV9Ym9keS5kYXJrLW1vZGUgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmR7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3due2JhY2tncm91bmQtY29sb3I6cmdiYSgxODksMTg5LDE4OSwuNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kLWNvbG9yOiNiZGJkYmR9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLGJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwxMDgsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwxMDgsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsYm9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLGJvZHkuZGFyay1tb2RlIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlcjpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsYm9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1kaXNhYmxlZDpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsYm9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tze2JhY2tncm91bmQtaW1hZ2U6cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrc3tiYWNrZ3JvdW5kLWltYWdlOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KX1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXI6aG92ZXJbYXJpYS1kaXNhYmxlZD1mYWxzZV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlclthcmlhLWRpc2FibGVkPXRydWVde2N1cnNvcjpkZWZhdWx0fUBtZWRpYShob3Zlcjogbm9uZSl7Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kOm5vbmV9fWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLW9wdGlvbmFse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KTtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb257Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtYWNjZW50IC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtYWNjZW50IC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIubWF0LXdhcm4gLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIubWF0LXdhcm4gLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9ye2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1hY3RpdmV7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1lcnJvcntjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcHBlci12ZXJ0aWNhbHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZXtib3JkZXItbGVmdC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixib2R5LmRhcmstbW9kZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5le2JvcmRlci10b3AtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtc29ydC1oZWFkZXItYXJyb3d7Y29sb3I6I2M2YzZjNn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWhlYWRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLW5hdi1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLWhlYWRlcntib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xMik7Ym9yZGVyLWJvdHRvbTpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXXtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyLXRvcDpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUxLDE0MCwwLC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTEsMTQwLDAsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjA1LDIxMCwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUxLDE0MCwwLC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmssYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3tjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtib3JkZXItY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MSwxNDAsMCwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluayxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3tjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtib3JkZXItY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjA1LDIxMCwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVke2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhcntiYWNrZ3JvdW5kOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIubWF0LXByaW1hcnl7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLm1hdC1hY2NlbnR7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLm1hdC13YXJue2JhY2tncm91bmQ6I2Y0NDMzNjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtcmlwcGxlLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC12YWx1ZSxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtYXJyb3csYm9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjppbmhlcml0fWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6Y3VycmVudENvbG9yfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbHRpcHtiYWNrZ3JvdW5kOnJnYmEoOTcsOTcsOTcsLjkpfWJvZHkuZGFyay1tb2RlIC5tYXQtdHJlZXtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC10cmVlLW5vZGUsYm9keS5kYXJrLW1vZGUgLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbmFjay1iYXItY29udGFpbmVye2NvbG9yOnJnYmEoMCwwLDAsLjg3KTtiYWNrZ3JvdW5kOiNmYWZhZmE7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbntjb2xvcjppbmhlcml0fQo8L3N0eWxlPgoKPHN0eWxlPgogIGh0bWwsCiAgYm9keSB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpOwoKICAgIC8qIExlZ2FjeSBtZWNoYW5pc20gdG8gYXZvaWQgaXNzdWVzIHdpdGggc3VicGl4ZWwgYW50aS1hbGlhc2luZyBvbiBtYWNPUy4KICAgICAqCiAgICAgKiBJbiB0aGUgcGFzdCBbMV0sIG1hY09TIHN1YnBpeGVsIEFBIGNhdXNlZCBleGNlc3NpdmUgYm9sZGluZyBmb3IgbGlnaHQtb24tZGFyayB0ZXh0OyB0aGlzIHJ1bGUKICAgICAqIGF2b2lkcyB0aGF0IGJ5IHJlcXVlc3Rpbmcgbm9uLXN1YnBpeGVsIEFBIGFsd2F5cywgcmF0aGVyIHRoYW4gdGhlIGRlZmF1bHQgYmVoYXZpb3IsIHdoaWNoIGlzCiAgICAgKiB0byB1c2Ugc3VicGl4ZWwgQUEgd2hlbiBhdmFpbGFibGUuIFRoZSBvcmlnaW5hbCBpc3N1ZSB3YXMgImZpeGVkIiBieSByZW1vdmluZyBzdWJwaXhlbCBBQSBpbgogICAgICogbWFjT1MgMTQgKE1vamF2ZSksIGJ1dCBmb3IgbGVnYWN5IHJlYXNvbnMgdGhleSBwcmVzZXJ2ZWQgdGhlIGJvbGRpbmcgZWZmZWN0IGFzIGFuIG9wdGlvbi4KICAgICAqIENocm9tZSB0aGVuIGluIHR1cm4gdXBkYXRlZCBpdHMgZm9udCByZW5kZXJpbmcgdG8gYXBwbHkgdGhhdCBib2xkaW5nIGVmZmVjdCBbMl0sIHdoaWNoIG1lYW5zCiAgICAgKiB0aGF0IGV2ZW4gdGhvdWdoIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgZG9jcyBbM10gc3VnZ2VzdCB0aGF0IHNldHRpbmcgYGFudGlhbGlhc2VkYAogICAgICogd291bGQgaGF2ZSBubyBlZmZlY3QgZm9yIHJlY2VudCB2ZXJzaW9ucyBvZiBtYWNPUywgaXQgc3RpbGwgaXMgbmVlZGVkIHRvIGF2b2lkIHRoZSBib2xkaW5nLgogICAgICoKICAgICAqIFsxXTogaHR0cDovL3d3dy5saWdodGVycmEuY29tL2FydGljbGVzL21hY29zeHRleHRhYWJ1Zy8KICAgICAqIFsyXTogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9ODU4ODYxCiAgICAgKiBbM106IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9mb250LXNtb290aAogICAgICoKICAgICAqLwoKICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogIH0KICBub3NjcmlwdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgbWF4LXdpZHRoOiA2MDBweDsKICAgIHBhZGRpbmc6IDEwcHg7CiAgfQo8L3N0eWxlPgoKPC9oZWFkPjxib2R5Pjxub3NjcmlwdD4KICAgIDxoMT5UZW5zb3JCb2FyZCByZXF1aXJlcyBKYXZhU2NyaXB0PC9oMT4KICAgIDxwPlBsZWFzZSBlbmFibGUgSmF2YVNjcmlwdCBhbmQgcmVsb2FkIHRoaXMgcGFnZS48L3A+CiAgPC9ub3NjcmlwdD48dGItd2ViYXBwPjwvdGItd2ViYXBwPjxzY3JpcHQgc3JjPSJpbmRleC5qcz9fZmlsZV9oYXNoPTI5YTdkMDNhIj48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==", + "headers": [ + [ + "content-type", + "text/html; charset=utf-8" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/environment": { + "data": "eyJ2ZXJzaW9uIjogIjIuNy4wIiwgImRhdGFfbG9jYXRpb24iOiAiLi90dXRvcmlhbF9leHBzIiwgIndpbmRvd190aXRsZSI6ICIiLCAiZXhwZXJpbWVudF9uYW1lIjogIiIsICJleHBlcmltZW50X2Rlc2NyaXB0aW9uIjogIiIsICJjcmVhdGlvbl90aW1lIjogMC4wLCAiZGVidWciOiB7ImRhdGFfcHJvdmlkZXIiOiAiR3JwY0RhdGFQcm92aWRlcihhZGRyPSdsb2NhbGhvc3Q6NDQ1ODknKSIsICJmbGFncyI6IHsibG9nZGlyIjogIi4vdHV0b3JpYWxfZXhwcyIsICJsb2dkaXJfc3BlYyI6ICIiLCAiaG9zdCI6IG51bGwsICJiaW5kX2FsbCI6IGZhbHNlLCAicG9ydCI6IG51bGwsICJyZXVzZV9wb3J0IjogZmFsc2UsICJsb2FkX2Zhc3QiOiAiYXV0byIsICJleHRyYV9kYXRhX3NlcnZlcl9mbGFncyI6ICIiLCAiZ3JwY19jcmVkc190eXBlIjogImxvY2FsIiwgImdycGNfZGF0YV9wcm92aWRlciI6ICIiLCAicHVyZ2Vfb3JwaGFuZWRfZGF0YSI6IHRydWUsICJkYiI6ICIiLCAiZGJfaW1wb3J0IjogZmFsc2UsICJpbnNwZWN0IjogZmFsc2UsICJ2ZXJzaW9uX3RiIjogZmFsc2UsICJ0YWciOiAiIiwgImV2ZW50X2ZpbGUiOiAiIiwgInBhdGhfcHJlZml4IjogIiIsICJ3aW5kb3dfdGl0bGUiOiAiIiwgIm1heF9yZWxvYWRfdGhyZWFkcyI6IDEsICJyZWxvYWRfaW50ZXJ2YWwiOiA1LjAsICJyZWxvYWRfdGFzayI6ICJhdXRvIiwgInJlbG9hZF9tdWx0aWZpbGUiOiBudWxsLCAicmVsb2FkX211bHRpZmlsZV9pbmFjdGl2ZV9zZWNzIjogODY0MDAsICJnZW5lcmljX2RhdGEiOiAiYXV0byIsICJzYW1wbGVzX3Blcl9wbHVnaW4iOiB7fSwgImN1c3RvbV9wcmVkaWN0X2ZuIjogIiIsICJ3aXRfZGF0YV9kaXIiOiAiIiwgIl9fdGVuc29yYm9hcmRfc3ViY29tbWFuZCI6ICJzZXJ2ZSJ9fX0=", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=tf_logs&tag=learning_rate": { + "data": "W1sxNjQ0MzIwMzE1LjI1MDE2OCwgMTAsIDAuMDAyNDk5OTk5OTQ0MTIwNjQ1NV0sIFsxNjQ0MzIwMzE4Ljc4MTA0NDIsIDIwLCAwLjAwMjQ5OTk5OTk0NDEyMDY0NTVdLCBbMTY0NDMyMDMyNi40MjY0MzE3LCAzNSwgMC4wMDI0OTk5OTk5NDQxMjA2NDU1XSwgWzE2NDQzMjAzMzAuMDE3NzMyLCA0NSwgMC4wMDI0OTk5OTk5NDQxMjA2NDU1XSwgWzE2NDQzMjAzMzcuNjkwNDMxLCA2MCwgMC4wMDI0OTk5OTk5NDQxMjA2NDU1XSwgWzE2NDQzMjAzNDEuMzkzMTUxLCA3MCwgMC4wMDI0OTk5OTk5NDQxMjA2NDU1XSwgWzE2NDQzMjAzNDkuMjcxNzQ3NiwgODUsIDAuMDAyNDk5OTk5OTQ0MTIwNjQ1NV0sIFsxNjQ0MzIwMzUzLjA2Nzk3OTgsIDk1LCAwLjAwMjQ5OTk5OTk0NDEyMDY0NTVdLCBbMTY0NDMyMDM2MC44NTgzMTE0LCAxMTAsIDAuMDAyNDk5OTk5OTQ0MTIwNjQ1NV0sIFsxNjQ0MzIwMzY0LjU1OTk1NDYsIDEyMCwgMC4wMDI0OTk5OTk5NDQxMjA2NDU1XSwgWzE2NDQzMjAzNzIuMjYwMzEzLCAxMzUsIDAuMDAyNDk5OTk5OTQ0MTIwNjQ1NV0sIFsxNjQ0MzIwMzc1LjkwMzAzMSwgMTQ1LCAwLjAwMjQ5OTk5OTk0NDEyMDY0NTVdLCBbMTY0NDMyMDM4My41NTk2MjY4LCAxNjAsIDAuMDAyNDk5OTk5OTQ0MTIwNjQ1NV0sIFsxNjQ0MzIwMzg3LjE4OTYxNywgMTcwLCAwLjAwMjQ5OTk5OTk0NDEyMDY0NTVdLCBbMTY0NDMyMDM5NC44Nzg4Njk1LCAxODUsIDAuMDAyNDk5OTk5OTQ0MTIwNjQ1NV0sIFsxNjQ0MzIwMzk4LjUxNDQ4NjYsIDE5NSwgMC4wMDI0OTk5OTk5NDQxMjA2NDU1XSwgWzE2NDQzMjA0MDYuMjMyNTMzNSwgMjEwLCAwLjAwMDI1MDAwMDAxMTg3NDM2MjhdLCBbMTY0NDMyMDQwOS44Nzc1MTM2LCAyMjAsIDAuMDAwMjUwMDAwMDExODc0MzYyOF0sIFsxNjQ0MzIwNDE3LjYwMzAyNjIsIDIzNSwgMC4wMDAyNTAwMDAwMTE4NzQzNjI4XSwgWzE2NDQzMjA0MjEuMjcyMTIwNywgMjQ1LCAwLjAwMDI1MDAwMDAxMTg3NDM2MjhdLCBbMTY0NDMyMDQyOS4wMTQzNDU2LCAyNjAsIDAuMDAwMjUwMDAwMDExODc0MzYyOF0sIFsxNjQ0MzIwNDMyLjcxNzUzNTcsIDI3MCwgMC4wMDAyNTAwMDAwMTE4NzQzNjI4XSwgWzE2NDQzMjA0NDAuNTAyNjQyNiwgMjg1LCAyLjQ5OTk5OTkzNjg0NDY4OGUtMDVdLCBbMTY0NDMyMDQ0NC4xOTQ4ODI5LCAyOTUsIDIuNDk5OTk5OTM2ODQ0Njg4ZS0wNV0sIFsxNjQ0MzIwNDUxLjMxNTQwNDcsIDMwMSwgMi40OTk5OTk5MzY4NDQ2ODhlLTA1XV0=", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=tf_logs&tag=momentum": { + "data": "W1sxNjQ0MzIwMzE1LjI1MDIyOSwgMTAsIDAuODk5OTk5OTc2MTU4MTQyMV0sIFsxNjQ0MzIwMzE4Ljc4MTA3NzQsIDIwLCAwLjg5OTk5OTk3NjE1ODE0MjFdLCBbMTY0NDMyMDMyNi40MjY0NzI0LCAzNSwgMC44OTk5OTk5NzYxNTgxNDIxXSwgWzE2NDQzMjAzMzAuMDE3NzY1LCA0NSwgMC44OTk5OTk5NzYxNTgxNDIxXSwgWzE2NDQzMjAzMzcuNjkwNDgxMiwgNjAsIDAuODk5OTk5OTc2MTU4MTQyMV0sIFsxNjQ0MzIwMzQxLjM5MzE4NjMsIDcwLCAwLjg5OTk5OTk3NjE1ODE0MjFdLCBbMTY0NDMyMDM0OS4yNzE3OTU1LCA4NSwgMC44OTk5OTk5NzYxNTgxNDIxXSwgWzE2NDQzMjAzNTMuMDY4MDE0OSwgOTUsIDAuODk5OTk5OTc2MTU4MTQyMV0sIFsxNjQ0MzIwMzYwLjg1ODM1NjUsIDExMCwgMC44OTk5OTk5NzYxNTgxNDIxXSwgWzE2NDQzMjAzNjQuNTU5OTkwMiwgMTIwLCAwLjg5OTk5OTk3NjE1ODE0MjFdLCBbMTY0NDMyMDM3Mi4yNjAzNjU1LCAxMzUsIDAuODk5OTk5OTc2MTU4MTQyMV0sIFsxNjQ0MzIwMzc1LjkwMzA2NjYsIDE0NSwgMC44OTk5OTk5NzYxNTgxNDIxXSwgWzE2NDQzMjAzODMuNTU5NjY3MywgMTYwLCAwLjg5OTk5OTk3NjE1ODE0MjFdLCBbMTY0NDMyMDM4Ny4xODk2NDk2LCAxNzAsIDAuODk5OTk5OTc2MTU4MTQyMV0sIFsxNjQ0MzIwMzk0Ljg3ODk1NywgMTg1LCAwLjg5OTk5OTk3NjE1ODE0MjFdLCBbMTY0NDMyMDM5OC41MTQ1MjQ1LCAxOTUsIDAuODk5OTk5OTc2MTU4MTQyMV0sIFsxNjQ0MzIwNDA2LjIzMjU3OSwgMjEwLCAwLjg5OTk5OTk3NjE1ODE0MjFdLCBbMTY0NDMyMDQwOS44Nzc1NDgyLCAyMjAsIDAuODk5OTk5OTc2MTU4MTQyMV0sIFsxNjQ0MzIwNDE3LjYwMzA3MTUsIDIzNSwgMC44OTk5OTk5NzYxNTgxNDIxXSwgWzE2NDQzMjA0MjEuMjcyMTU2NSwgMjQ1LCAwLjg5OTk5OTk3NjE1ODE0MjFdLCBbMTY0NDMyMDQyOS4wMTQ0MDEsIDI2MCwgMC44OTk5OTk5NzYxNTgxNDIxXSwgWzE2NDQzMjA0MzIuNzE3NTczNCwgMjcwLCAwLjg5OTk5OTk3NjE1ODE0MjFdLCBbMTY0NDMyMDQ0MC41MDI2ODQsIDI4NSwgMC44OTk5OTk5NzYxNTgxNDIxXSwgWzE2NDQzMjA0NDQuMTk0OTIzLCAyOTUsIDAuODk5OTk5OTc2MTU4MTQyMV0sIFsxNjQ0MzIwNDUxLjMxNTQ2NDUsIDMwMSwgMC44OTk5OTk5NzYxNTgxNDIxXV0=", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=tf_logs&tag=train%2Facc": { + "data": "W1sxNjQ0MzIwMzE1LjI1MDA0OCwgMTAsIDgxLjYzMDg1OTM3NV0sIFsxNjQ0MzIwMzE4Ljc4MDkyODYsIDIwLCA5My4zNzg5MDYyNV0sIFsxNjQ0MzIwMzI2LjQyNjMwOCwgMzUsIDk0LjQ4MjQyMTg3NV0sIFsxNjQ0MzIwMzMwLjAxNzYxNjMsIDQ1LCA5NC42Nzc3MzQzNzVdLCBbMTY0NDMyMDMzNy42OTAyODc2LCA2MCwgOTYuNTAzOTA2MjVdLCBbMTY0NDMyMDM0MS4zOTMwMzY0LCA3MCwgOTQuNjE5MTQwNjI1XSwgWzE2NDQzMjAzNDkuMjcxNTkxMiwgODUsIDk1LjQxOTkyMTg3NV0sIFsxNjQ0MzIwMzUzLjA2Nzg3ODIsIDk1LCA5NS40MDAzOTA2MjVdLCBbMTY0NDMyMDM2MC44NTgxNTY3LCAxMTAsIDk2LjE3MTg3NV0sIFsxNjQ0MzIwMzY0LjU1OTgyNSwgMTIwLCA5Ni42MzA4NTkzNzVdLCBbMTY0NDMyMDM3Mi4yNjAxMzczLCAxMzUsIDk3LjIzNjMyODEyNV0sIFsxNjQ0MzIwMzc1LjkwMjkxNiwgMTQ1LCA5Ni41MzMyMDMxMjVdLCBbMTY0NDMyMDM4My41NTk1LCAxNjAsIDk2LjczODI4MTI1XSwgWzE2NDQzMjAzODcuMTg5NDk4NywgMTcwLCA5Ni42Njk5MjE4NzVdLCBbMTY0NDMyMDM5NC44NzgyNjI1LCAxODUsIDk3LjA4MDA3ODEyNV0sIFsxNjQ0MzIwMzk4LjUxNDM3MiwgMTk1LCA5Ny4wODAwNzgxMjVdLCBbMTY0NDMyMDQwNi4yMzI0MDM4LCAyMTAsIDk3LjU3ODEyNV0sIFsxNjQ0MzIwNDA5Ljg3NzM5MjUsIDIyMCwgOTcuOTE5OTIxODc1XSwgWzE2NDQzMjA0MTcuNjAyODk5OCwgMjM1LCA5Ny4zNjMyODEyNV0sIFsxNjQ0MzIwNDIxLjI3MjAxMDMsIDI0NSwgOTcuNzI0NjA5Mzc1XSwgWzE2NDQzMjA0MjkuMDE0MTU0LCAyNjAsIDk3LjU5NzY1NjI1XSwgWzE2NDQzMjA0MzIuNzE3NDEsIDI3MCwgOTcuOTI5Njg3NV0sIFsxNjQ0MzIwNDQwLjUwMjUxOTEsIDI4NSwgOTcuNzYzNjcxODc1XSwgWzE2NDQzMjA0NDQuMTk0MTc3NCwgMjk1LCA5OC4wMjczNDM3NV1d", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=tf_logs&tag=train%2Floss": { + "data": "W1sxNjQ0MzIwMzE1LjI1MDExMDEsIDEwLCAwLjk3NDY0NzU4MTU3NzMwMV0sIFsxNjQ0MzIwMzE4Ljc4MTAwNjgsIDIwLCAwLjUzNDQ0NTk0MTQ0ODIxMTddLCBbMTY0NDMyMDMyNi40MjYzNzczLCAzNSwgMC40NjAyNjc5NjEwMjUyMzgwNF0sIFsxNjQ0MzIwMzMwLjAxNzY5NDUsIDQ1LCAwLjM4NTM2NDY4MTQ4MjMxNTA2XSwgWzE2NDQzMjAzMzcuNjkwMzYyNSwgNjAsIDAuMjY5NzI0MjQ5ODM5NzgyN10sIFsxNjQ0MzIwMzQxLjM5MzExMjQsIDcwLCAwLjQyNDE2MDc0ODcyMDE2OTA3XSwgWzE2NDQzMjAzNDkuMjcxNjg3LCA4NSwgMC4zNjE2MTU0Nzg5OTI0NjIxNl0sIFsxNjQ0MzIwMzUzLjA2Nzk0NSwgOTUsIDAuMzQ4MzUyNzAwNDcxODc4MDVdLCBbMTY0NDMyMDM2MC44NTgyNDksIDExMCwgMC4zMjE1NjMwMDU0NDczODc3XSwgWzE2NDQzMjAzNjQuNTU5OTAyLCAxMjAsIDAuMzAwMzQ3ODY0NjI3ODM4MTNdLCBbMTY0NDMyMDM3Mi4yNjAyNDQxLCAxMzUsIDAuMjcyMTA4MTk3MjEyMjE5MjRdLCBbMTY0NDMyMDM3NS45MDI5OTEzLCAxNDUsIDAuMjg5MzEzODgyNTg5MzQwMl0sIFsxNjQ0MzIwMzgzLjU1OTU2ODQsIDE2MCwgMC4yNzI5Nzk4ODUzMzk3MzY5NF0sIFsxNjQ0MzIwMzg3LjE4OTU4MjYsIDE3MCwgMC4yODQwMTA0OTk3MTU4MDUwNV0sIFsxNjQ0MzIwMzk0Ljg3ODMyODMsIDE4NSwgMC4yMjQyNzY3MjE0Nzc1MDg1NF0sIFsxNjQ0MzIwMzk4LjUxNDQ0NzcsIDE5NSwgMC4yNDg5NDc3MDk3OTg4MTI4N10sIFsxNjQ0MzIwNDA2LjIzMjQ3MzYsIDIxMCwgMC4yMDY1MTExMzk4Njk2ODk5NF0sIFsxNjQ0MzIwNDA5Ljg3NzQ3ODQsIDIyMCwgMC4xNjk0OTEyNDYzNDI2NTldLCBbMTY0NDMyMDQxNy42MDI5NzE4LCAyMzUsIDAuMjE2ODM1OTE2MDQyMzI3ODhdLCBbMTY0NDMyMDQyMS4yNzIwODIzLCAyNDUsIDAuMTkzMzczNDU2NTk3MzI4MTldLCBbMTY0NDMyMDQyOS4wMTQyNzk4LCAyNjAsIDAuMTg5MjM4NjIyNzg0NjE0NTZdLCBbMTY0NDMyMDQzMi43MTc0OTY2LCAyNzAsIDAuMTg4MjYzNzU5MDE2OTkwNjZdLCBbMTY0NDMyMDQ0MC41MDI1ODU2LCAyODUsIDAuMTg3MDg2MzI4ODY0MDk3Nl0sIFsxNjQ0MzIwNDQ0LjE5NDg0MSwgMjk1LCAwLjE0Mzg1ODY0MTM4NjAzMjFdXQ==", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=tf_logs&tag=train%2Floss_bbox": { + "data": "W1sxNjQ0MzIwMzE1LjI1MDA3OTIsIDEwLCAwLjM5NDU1Mjg1NjY4MzczMTFdLCBbMTY0NDMyMDMxOC43ODA5NjgyLCAyMCwgMC4zMjg5NTAzNzUzMTg1MjcyXSwgWzE2NDQzMjAzMjYuNDI2MzQzNywgMzUsIDAuMjY4ODc0MDQ5MTg2NzA2NTRdLCBbMTY0NDMyMDMzMC4wMTc2NTYzLCA0NSwgMC4yMTUzNTYxMTE1MjY0ODkyNl0sIFsxNjQ0MzIwMzM3LjY5MDMyNTcsIDYwLCAwLjE1ODYwNDc3MDg5ODgxODk3XSwgWzE2NDQzMjAzNDEuMzkzMDc1LCA3MCwgMC4yNTk3MzQ4OTg4MDU2MTgzXSwgWzE2NDQzMjAzNDkuMjcxNjQzNCwgODUsIDAuMjI0MzQ1NDYwNTM0MDk1NzZdLCBbMTY0NDMyMDM1My4wNjc5MTE2LCA5NSwgMC4yMTE5OTQ1Mjg3NzA0NDY3OF0sIFsxNjQ0MzIwMzYwLjg1ODE5NDYsIDExMCwgMC4yMDc0NTU1MTU4NjE1MTEyM10sIFsxNjQ0MzIwMzY0LjU1OTg2NDUsIDEyMCwgMC4xOTI1NzU4NDIxNDIxMDUxXSwgWzE2NDQzMjAzNzIuMjYwMTgzMywgMTM1LCAwLjE4Mjc0MTcwMTYwMjkzNThdLCBbMTY0NDMyMDM3NS45MDI5NTQ4LCAxNDUsIDAuMTg1NjgxMTY0MjY0Njc4OTZdLCBbMTY0NDMyMDM4My41NTk1MzY3LCAxNjAsIDAuMTczNjMxNzU3NDk3Nzg3NDhdLCBbMTY0NDMyMDM4Ny4xODk1NDg3LCAxNzAsIDAuMTc5OTUyOTc5MDg3ODI5Nl0sIFsxNjQ0MzIwMzk0Ljg3ODI5NTcsIDE4NSwgMC4xMzgxNDIwMzQ0MTE0MzAzNl0sIFsxNjQ0MzIwMzk4LjUxNDQxMDcsIDE5NSwgMC4xNjM0NzIzMDk3MDg1OTUyOF0sIFsxNjQ0MzIwNDA2LjIzMjQ0MDUsIDIxMCwgMC4xMzA3MDIyMjczNTQwNDk2OF0sIFsxNjQ0MzIwNDA5Ljg3NzQ0MjYsIDIyMCwgMC4xMDkwMTMyMzcwNTkxMTYzNl0sIFsxNjQ0MzIwNDE3LjYwMjkzNiwgMjM1LCAwLjEzNjc0MDIwNzY3MjExOTE0XSwgWzE2NDQzMjA0MjEuMjcyMDQ2MywgMjQ1LCAwLjEyNzc0NzQ0NjI5ODU5OTI0XSwgWzE2NDQzMjA0MjkuMDE0MjMzNCwgMjYwLCAwLjExOTU3MTkwOTMwODQzMzUzXSwgWzE2NDQzMjA0MzIuNzE3NDU5LCAyNzAsIDAuMTI0NTcxMDcwMDc1MDM1MV0sIFsxNjQ0MzIwNDQwLjUwMjU1NDQsIDI4NSwgMC4xMjM2OTEzNTAyMjE2MzM5MV0sIFsxNjQ0MzIwNDQ0LjE5NDc0ODksIDI5NSwgMC4wODg5ODMyODk4OTc0NDE4Nl1d", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=tf_logs&tag=train%2Floss_cls": { + "data": "W1sxNjQ0MzIwMzE1LjI1MDAxNDMsIDEwLCAwLjUzNzM1MzI3NzIwNjQyMDldLCBbMTY0NDMyMDMxOC43ODA4NzY2LCAyMCwgMC4xNzc3NzM2MjQ2NTg1ODQ2XSwgWzE2NDQzMjAzMjYuNDI2MjY2NCwgMzUsIDAuMTU3Mjc3NTg0MDc1OTI3NzNdLCBbMTY0NDMyMDMzMC4wMTc1NzQ1LCA0NSwgMC4xNDQ1NjYyMzc5MjY0ODMxNV0sIFsxNjQ0MzIwMzM3LjY5MDI0MzUsIDYwLCAwLjA5NDM0NTcwMzcyMTA0NjQ1XSwgWzE2NDQzMjAzNDEuMzkyOTk2LCA3MCwgMC4xNDM5MzkzMTYyNzI3MzU2XSwgWzE2NDQzMjAzNDkuMjcxNDkzNywgODUsIDAuMTE4MTM2MzkxMDQzNjYzMDJdLCBbMTY0NDMyMDM1My4wNjc4NDEsIDk1LCAwLjExOTU5MzQ0ODkzNjkzOTI0XSwgWzE2NDQzMjAzNjAuODU4MTE4LCAxMTAsIDAuMTAyMTQyNDMwODQxOTIyNzZdLCBbMTY0NDMyMDM2NC41NTk3ODYsIDEyMCwgMC4wOTQyMDg1NzU3ODUxNjAwNl0sIFsxNjQ0MzIwMzcyLjI2MDA2OCwgMTM1LCAwLjA3ODc0OTUzMDAxNzM3NTk1XSwgWzE2NDQzMjAzNzUuOTAyODc0NSwgMTQ1LCAwLjA5MDEzMjcyMDc2ODQ1MTY5XSwgWzE2NDQzMjAzODMuNTU5NDYwMiwgMTYwLCAwLjA4Nzc0MjM1MDk5NTU0MDYyXSwgWzE2NDQzMjAzODcuMTg5NDU3NCwgMTcwLCAwLjA4ODg3ODQ4MjU4MDE4NDk0XSwgWzE2NDQzMjAzOTQuODc4MjE0MSwgMTg1LCAwLjA3NDgxMDEyNDkzMzcxOTY0XSwgWzE2NDQzMjAzOTguNTE0MzMwNiwgMTk1LCAwLjA3NDMxNzE4NzA3MDg0NjU2XSwgWzE2NDQzMjA0MDYuMjMyMzU1NCwgMjEwLCAwLjA2NDg4NzM3NDYzOTUxMTExXSwgWzE2NDQzMjA0MDkuODc3MzUyMiwgMjIwLCAwLjA1Mjk1NDY5MjM5MzU0MTMzNl0sIFsxNjQ0MzIwNDE3LjYwMjg2MiwgMjM1LCAwLjA2NzU5ODU3Mzg2MzUwNjMyXSwgWzE2NDQzMjA0MjEuMjcxOTcyNywgMjQ1LCAwLjA1OTI4NDc5ODgwMDk0NTI4XSwgWzE2NDQzMjA0MjkuMDE0MDA2NCwgMjYwLCAwLjA2MTc3NzE0ODM5NTc3Njc1XSwgWzE2NDQzMjA0MzIuNzE3MzY5MywgMjcwLCAwLjA1NTIzNzQwODcyNzQwNzQ1NV0sIFsxNjQ0MzIwNDQwLjUwMjQ3OSwgMjg1LCAwLjA1NjMyNjE4NDQyMTc3NzcyNV0sIFsxNjQ0MzIwNDQ0LjE5NDEzODUsIDI5NSwgMC4wNDg2Njc0MzgzMjgyNjYxNDRdXQ==", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=tf_logs&tag=train%2Floss_rpn_bbox": { + "data": "W1sxNjQ0MzIwMzE1LjI0OTk2MjYsIDEwLCAwLjAxNzI5NTM3MzYwMzcwMTU5XSwgWzE2NDQzMjAzMTguNzgwODI5NywgMjAsIDAuMDExOTM2NjMwMTIyMzYzNTY3XSwgWzE2NDQzMjAzMjYuNDI2MTg3LCAzNSwgMC4wMTM4NTU5NTY0OTQ4MDgxOTddLCBbMTY0NDMyMDMzMC4wMTc1MjQ3LCA0NSwgMC4wMTI3MDM3OTU5MTczMzIxNzJdLCBbMTY0NDMyMDMzNy42OTAxNjkzLCA2MCwgMC4wMTAzODk3MTcyOTU3NjU4NzddLCBbMTY0NDMyMDM0MS4zOTI5NDI3LCA3MCwgMC4wMTMyMzY2MDA5MDU2NTY4MTVdLCBbMTY0NDMyMDM0OS4yNzA0Mjg0LCA4NSwgMC4wMTM0MTcxNTE3NTY1ODQ2NDRdLCBbMTY0NDMyMDM1My4wNjc3OTMxLCA5NSwgMC4wMTE3NDY5MzM2ODM3NTMwMTRdLCBbMTY0NDMyMDM2MC44NTgwNjY4LCAxMTAsIDAuMDA5MTM3NjU2NTM5Njc4NTc0XSwgWzE2NDQzMjAzNjQuNTU5NzM4NiwgMTIwLCAwLjAxMDU5MDI4MjI2ODgyMjE5M10sIFsxNjQ0MzIwMzcyLjI1OTYxNDUsIDEzNSwgMC4wMDgxMzc2NzY4NjQ4NjI0NDJdLCBbMTY0NDMyMDM3NS45MDI4MjI3LCAxNDUsIDAuMDEwMDA2NDY0MDg2NDcyOTg4XSwgWzE2NDQzMjAzODMuNTU5Mzg2NywgMTYwLCAwLjAwOTM0NDg2MzcwNTMzNzA0OF0sIFsxNjQ0MzIwMzg3LjE4OTM5MjYsIDE3MCwgMC4wMTEyMjc3NjMyNTc5MjA3NDJdLCBbMTY0NDMyMDM5NC44NzgxNDE0LCAxODUsIDAuMDA5MzYxMDM5ODQ3MTM1NTQ0XSwgWzE2NDQzMjAzOTguNTE0MjgxLCAxOTUsIDAuMDA4MDg0NDMwMzU5MzAzOTUxXSwgWzE2NDQzMjA0MDYuMjMyMjg4NCwgMjEwLCAwLjAwODUzMzAxMDI1OTI3MDY2OF0sIFsxNjQ0MzIwNDA5Ljg3NzMwMjYsIDIyMCwgMC4wMDY1NTUxMjc5MTEyNjk2NjVdLCBbMTY0NDMyMDQxNy42MDI4MDgsIDIzNSwgMC4wMDg0MTQ2NTk2NDkxMzM2ODJdLCBbMTY0NDMyMDQyMS4yNzE5Mjc4LCAyNDUsIDAuMDA1NTI1NDMwNjY0NDIwMTI4XSwgWzE2NDQzMjA0MjkuMDEzOTQ5NCwgMjYwLCAwLjAwNzE4OTA4NDc3NTc0NTg2OV0sIFsxNjQ0MzIwNDMyLjcxNzMxOTMsIDI3MCwgMC4wMDczNTk3NjU5MzU2ODkyMTFdLCBbMTY0NDMyMDQ0MC41MDI0MDk3LCAyODUsIDAuMDA2MDM4NTM5NTc3Mjc1NTE1XSwgWzE2NDQzMjA0NDQuMTk0MDk0NCwgMjk1LCAwLjAwNDg5MDcyNTQ4MjI1NTIyXV0=", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=tf_logs&tag=train%2Floss_rpn_cls": { + "data": "W1sxNjQ0MzIwMzE1LjI0OTc1NzgsIDEwLCAwLjAyNTQ0NjA1NzMxOTY0MTExM10sIFsxNjQ0MzIwMzE4Ljc4MDcyNiwgMjAsIDAuMDE1Nzg1MzI1MzE4NTc0OTA1XSwgWzE2NDQzMjAzMjYuNDI1OTY4LCAzNSwgMC4wMjAyNjAzNDMzMjgxMTgzMjRdLCBbMTY0NDMyMDMzMC4wMTc0MDQ2LCA0NSwgMC4wMTI3Mzg1MzQyNDkzNjUzM10sIFsxNjQ0MzIwMzM3LjY4OTk2NDUsIDYwLCAwLjAwNjM4NDAzNzQzNTA1NDc3OV0sIFsxNjQ0MzIwMzQxLjM5MjgxNTgsIDcwLCAwLjAwNzI0OTkyOTk0MjE5MDY0N10sIFsxNjQ0MzIwMzQ5LjI3MDE3NjQsIDg1LCAwLjAwNTcxNjQ3OTM4MzQwOTAyM10sIFsxNjQ0MzIwMzUzLjA2NzY4NzMsIDk1LCAwLjAwNTAxNzgwMzUxNjIzODkyOF0sIFsxNjQ0MzIwMzYwLjg1Nzg1LCAxMTAsIDAuMDAyODI3NDAxMjcyOTUyNTU2Nl0sIFsxNjQ0MzIwMzY0LjU1OTYzOSwgMTIwLCAwLjAwMjk3MzE0NTU3MjQ2ODYzODRdLCBbMTY0NDMyMDM3Mi4yNTkzNjEsIDEzNSwgMC4wMDI0NzkzMDQ3OTIzNTk0NzEzXSwgWzE2NDQzMjAzNzUuOTAyNzA1NywgMTQ1LCAwLjAwMzQ5MzUyODU4MDI5MzA1OTNdLCBbMTY0NDMyMDM4My41NTkxMjY5LCAxNjAsIDAuMDAyMjYwODkxNzIwNjUyNTgwM10sIFsxNjQ0MzIwMzg3LjE4OTI4OTgsIDE3MCwgMC4wMDM5NTEyOTY2NzU5NTAyODldLCBbMTY0NDMyMDM5NC44Nzc5MTU5LCAxODUsIDAuMDAxOTYzNTE0ODM0NjQyNDEwM10sIFsxNjQ0MzIwMzk4LjUxNDE0NDQsIDE5NSwgMC4wMDMwNzM3NjMzMzUxMjM2NThdLCBbMTY0NDMyMDQwNi4yMzE5ODksIDIxMCwgMC4wMDIzODg1MzI1MDYzMDE5OTldLCBbMTY0NDMyMDQwOS44NzcxNjYzLCAyMjAsIDAuMDAwOTY4MTg2NTM0MDA5ODczOV0sIFsxNjQ0MzIwNDE3LjYwMjU3ODYsIDIzNSwgMC4wMDQwODI0ODEzNzY4MjY3NjNdLCBbMTY0NDMyMDQyMS4yNzE4MjY1LCAyNDUsIDAuMDAwODE1Nzg4NjMzMTkwMDk1NF0sIFsxNjQ0MzIwNDI5LjAxMzc2NzcsIDI2MCwgMC4wMDA3MDA0ODU2MDE1NTU1NTYxXSwgWzE2NDQzMjA0MzIuNzE3MTY4NiwgMjcwLCAwLjAwMTA5NTUwOTUwNTgzMDcwNTJdLCBbMTY0NDMyMDQ0MC41MDIxNzU2LCAyODUsIDAuMDAxMDMwMjQ5NDA0NzIwOTYyXSwgWzE2NDQzMjA0NDQuMTkzOTgxMiwgMjk1LCAwLjAwMTMxNzE4NDQxODQzOTg2NTFdXQ==", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/tags": { + "data": "eyJ0Zl9sb2dzIjogeyJ0cmFpbi9sb3NzX2NscyI6IHsiZGlzcGxheU5hbWUiOiAiIiwgImRlc2NyaXB0aW9uIjogIiJ9LCAidmFsL21BUCI6IHsiZGlzcGxheU5hbWUiOiAiIiwgImRlc2NyaXB0aW9uIjogIiJ9LCAidHJhaW4vbG9zc19iYm94IjogeyJkaXNwbGF5TmFtZSI6ICIiLCAiZGVzY3JpcHRpb24iOiAiIn0sICJ0cmFpbi9hY2MiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgInZhbC9BUDUwIjogeyJkaXNwbGF5TmFtZSI6ICIiLCAiZGVzY3JpcHRpb24iOiAiIn0sICJtb21lbnR1bSI6IHsiZGlzcGxheU5hbWUiOiAiIiwgImRlc2NyaXB0aW9uIjogIiJ9LCAidHJhaW4vbG9zcyI6IHsiZGlzcGxheU5hbWUiOiAiIiwgImRlc2NyaXB0aW9uIjogIiJ9LCAidHJhaW4vbG9zc19ycG5fY2xzIjogeyJkaXNwbGF5TmFtZSI6ICIiLCAiZGVzY3JpcHRpb24iOiAiIn0sICJsZWFybmluZ19yYXRlIjogeyJkaXNwbGF5TmFtZSI6ICIiLCAiZGVzY3JpcHRpb24iOiAiIn0sICJ0cmFpbi9sb3NzX3Jwbl9iYm94IjogeyJkaXNwbGF5TmFtZSI6ICIiLCAiZGVzY3JpcHRpb24iOiAiIn19fQ==", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugins_listing": { + "data": "eyJzY2FsYXJzIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IHRydWUsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJzY2FsYXJzIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1zY2FsYXItZGFzaGJvYXJkIn19LCAiY3VzdG9tX3NjYWxhcnMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJDdXN0b20gU2NhbGFycyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtY3VzdG9tLXNjYWxhci1kYXNoYm9hcmQifX0sICJpbWFnZXMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJpbWFnZXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWltYWdlLWRhc2hib2FyZCJ9fSwgImF1ZGlvIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiYXVkaW8iLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWF1ZGlvLWRhc2hib2FyZCJ9fSwgImRlYnVnZ2VyLXYyIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiRGVidWdnZXIgVjIiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiTkdfQ09NUE9ORU5UIn19LCAiZ3JhcGhzIjogeyJkaXNhYmxlX3JlbG9hZCI6IHRydWUsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJncmFwaHMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWdyYXBoLWRhc2hib2FyZCJ9fSwgImRpc3RyaWJ1dGlvbnMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJkaXN0cmlidXRpb25zIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1kaXN0cmlidXRpb24tZGFzaGJvYXJkIn19LCAiaGlzdG9ncmFtcyI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogImhpc3RvZ3JhbXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWhpc3RvZ3JhbS1kYXNoYm9hcmQifX0sICJ0ZXh0IjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAidGV4dCIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtdGV4dC1kYXNoYm9hcmQifX0sICJwcl9jdXJ2ZXMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJQUiBDdXJ2ZXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLXByLWN1cnZlLWRhc2hib2FyZCJ9fSwgInByb2ZpbGVfcmVkaXJlY3QiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJQcm9maWxlIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1wcm9maWxlLXJlZGlyZWN0LWRhc2hib2FyZCJ9fSwgImhwYXJhbXMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJocGFyYW1zIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1ocGFyYW1zLWRhc2hib2FyZCJ9fSwgIm1lc2giOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJtZXNoIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJtZXNoLWRhc2hib2FyZCJ9fSwgInRpbWVzZXJpZXMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogdHJ1ZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogIlRpbWUgU2VyaWVzIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIk5HX0NPTVBPTkVOVCJ9fSwgInByb2plY3RvciI6IHsiZGlzYWJsZV9yZWxvYWQiOiB0cnVlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAicHJvamVjdG9yIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIklGUkFNRSIsICJtb2R1bGVfcGF0aCI6ICIvZGF0YS9wbHVnaW4vcHJvamVjdG9yL2luZGV4LmpzIn19LCAid2hhdGlmIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiV2hhdC1JZiBUb29sIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIklGUkFNRSIsICJtb2R1bGVfcGF0aCI6ICIvZGF0YS9wbHVnaW4vd2hhdGlmL2luZGV4LmpzIn19fQ==", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/runs": { + "data": "WyJ0Zl9sb2dzIl0=", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/Hgo13k-tfSpn0qi1SFdUfZBw1xU1rKptJj_0jans920.woff2": { + "data": "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", + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/RxZJdnzeo3R5zSexge8UUZBw1xU1rKptJj_0jans920.woff2": { + "data": "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", + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/d-6IYplOFocCacKzxwXSOJBw1xU1rKptJj_0jans920.woff2": { + "data": "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", + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/oMMgfZMQthOryQo9n22dcuvvDin1pK8aKteLpeZ5c0A.woff2": { + "data": "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", + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/icon_bundle.svg": { + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiA/Pjxzdmc+PGRlZnM+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iYXJyb3dfZG93bndhcmRfMjRweCI+PHBhdGggZmlsbD0iIzAxMDEwMSIgZD0iTTIwIDEybC0xLjQxLTEuNDFMMTMgMTYuMTdWNGgtMnYxMi4xN2wtNS41OC01LjU5TDQgMTJsOCA4IDgtOHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJhcnJvd191cHdhcmRfMjRweCI+PHBhdGggZD0iTTQgMTJsMS40MSAxLjQxTDExIDcuODNWMjBoMlY3LjgzbDUuNTggNS41OUwyMCAxMmwtOC04LTggOHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJicmlnaHRuZXNzXzZfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0yMCAxNS4zMUwyMy4zMSAxMiAyMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OXpNMTIgMThWNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJidWdfcmVwb3J0XzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMjAgOGgtMi44MWMtLjQ1LS43OC0xLjA3LTEuNDUtMS44Mi0xLjk2TDE3IDQuNDEgMTUuNTkgM2wtMi4xNyAyLjE3QzEyLjk2IDUuMDYgMTIuNDkgNSAxMiA1Yy0uNDkgMC0uOTYuMDYtMS40MS4xN0w4LjQxIDMgNyA0LjQxbDEuNjIgMS42M0M3Ljg4IDYuNTUgNy4yNiA3LjIyIDYuODEgOEg0djJoMi4wOWMtLjA1LjMzLS4wOS42Ni0uMDkgMXYxSDR2MmgydjFjMCAuMzQuMDQuNjcuMDkgMUg0djJoMi44MWMxLjA0IDEuNzkgMi45NyAzIDUuMTkgM3M0LjE1LTEuMjEgNS4xOS0zSDIwdi0yaC0yLjA5Yy4wNS0uMzMuMDktLjY2LjA5LTF2LTFoMnYtMmgtMnYtMWMwLS4zNC0uMDQtLjY3LS4wOS0xSDIwVjh6bS02IDhoLTR2LTJoNHYyem0wLTRoLTR2LTJoNHYyeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImNhbmNlbF8yNHB4Ij48cGF0aCBkPSJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptNSAxMy41OUwxNS41OSAxNyAxMiAxMy40MSA4LjQxIDE3IDcgMTUuNTkgMTAuNTkgMTIgNyA4LjQxIDguNDEgNyAxMiAxMC41OSAxNS41OSA3IDE3IDguNDEgMTMuNDEgMTIgMTcgMTUuNTl6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iY2hldnJvbl9sZWZ0XzI0cHgiPjxwYXRoIGQ9Ik0xNS40MSA3LjQxTDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxTDEwLjgzIDEyeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImNoZXZyb25fcmlnaHRfMjRweCI+PHBhdGggZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImNsZWFyXzI0cHgiPjxwYXRoIGQ9Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iY2xvc2VfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iY29udGVudF9jb3B5XzI0cHgiPjxwYXRoIGQ9Ik0xNiAxSDRjLTEuMSAwLTIgLjktMiAydjE0aDJWM2gxMlYxem0zIDRIOGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxMWMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE2SDhWN2gxMXYxNHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZGFya19tb2RlXzI0cHgiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiwzYy00Ljk3LDAtOSw0LjAzLTksOXM0LjAzLDksOSw5czktNC4wMyw5LTljMC0wLjQ2LTAuMDQtMC45Mi0wLjEtMS4zNmMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNiBjLTIuOTgsMC01LjQtMi40Mi01LjQtNS40YzAtMS44MSwwLjg5LTMuNDIsMi4yNi00LjRDMTIuOTIsMy4wNCwxMi40NiwzLDEyLDNMMTIsM3oiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJkb25lXzI0cHgiPjxwYXRoIGQ9Ik05IDE2LjJMNC44IDEybC0xLjQgMS40TDkgMTkgMjEgN2wtMS40LTEuNEw5IDE2LjJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZHJhZ19pbmRpY2F0b3JfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTExIDE4YzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnptLTItOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAtNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTYgNGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTAgMmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZWRpdF8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGMuMzktLjM5LjM5LTEuMDIgMC0xLjQxbC0yLjM0LTIuMzRjLS4zOS0uMzktMS4wMi0uMzktMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3oiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJlcnJvcl8yNHB4Ij48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2NnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJleHBhbmRfbGVzc18yNHB4Ij48cGF0aCBkPSJNMTIgOGwtNiA2IDEuNDEgMS40MUwxMiAxMC44M2w0LjU5IDQuNThMMTggMTR6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iZXhwYW5kX21vcmVfMjRweCI+PHBhdGggZD0iTTE2LjU5IDguNTlMMTIgMTMuMTcgNy40MSA4LjU5IDYgMTBsNiA2IDYtNnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZmlsdGVyX2FsdF8yNHB4Ij48Zz48cGF0aCBkPSJNMCwwaDI0IE0yNCwyNEgwIiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTQuMjUsNS42MUM2LjI3LDguMiwxMCwxMywxMCwxM3Y2YzAsMC41NSwwLjQ1LDEsMSwxaDJjMC41NSwwLDEtMC40NSwxLTF2LTZjMCwwLDMuNzItNC44LDUuNzQtNy4zOSBDMjAuMjUsNC45NSwxOS43OCw0LDE4Ljk1LDRINS4wNEM0LjIxLDQsMy43NCw0Ljk1LDQuMjUsNS42MXoiLz48cGF0aCBkPSJNMCwwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48L2c+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iZmxhZ18yNHB4Ij48cGF0aCBkPSJNMTQuNCA2TDE0IDRINXYxN2gydi03aDUuNmwuNCAyaDdWNnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJmdWxsc2NyZWVuXzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNNyAxNEg1djVoNXYtMkg3di0zem0tMi00aDJWN2gzVjVINXY1em0xMiA3aC0zdjJoNXYtNWgtMnYzek0xNCA1djJoM3YzaDJWNWgtNXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJmdWxsc2NyZWVuX2V4aXRfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik01IDE2aDN2M2gydi01SDV2MnptMy04SDV2Mmg1VjVIOHYzem02IDExaDJ2LTNoM3YtMmgtNXY1em0yLTExVjVoLTJ2NWg1VjhoLTN6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iZ2V0X2FwcF8yNHB4Ij48cGF0aCBkPSJNMTkgOWgtNFYzSDl2Nkg1bDcgNyA3LTd6TTUgMTh2MmgxNHYtMkg1eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9Imdyb3VwX3dvcmtfMjRweCI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTggMTcuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6TTkuNSA4YzAtMS4zOCAxLjEyLTIuNSAyLjUtMi41czIuNSAxLjEyIDIuNSAyLjUtMS4xMiAyLjUtMi41IDIuNVM5LjUgOS4zOCA5LjUgOHptNi41IDkuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iaGVscF9vdXRsaW5lXzI0cHgiPjxwYXRoIGQ9Ik0xMSAxOGgydi0yaC0ydjJ6bTEtMTZDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0wLTE0Yy0yLjIxIDAtNCAxLjc5LTQgNGgyYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJjMCAyLTMgMS43NS0zIDVoMmMwLTIuMjUgMy0yLjUgMy01IDAtMi4yMS0xLjc5LTQtNC00eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9ImltYWdlX3NlYXJjaF8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE4IDEzdjdINFY2aDUuMDJjLjA1LS43MS4yMi0xLjM4LjQ4LTJINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtNWwtMi0yem0tMS41IDVoLTExbDIuNzUtMy41MyAxLjk2IDIuMzYgMi43NS0zLjU0em0yLjgtOS4xMWMuNDQtLjcuNy0xLjUxLjctMi4zOUMyMCA0LjAxIDE3Ljk5IDIgMTUuNSAyUzExIDQuMDEgMTEgNi41czIuMDEgNC41IDQuNDkgNC41Yy44OCAwIDEuNy0uMjYgMi4zOS0uN0wyMSAxMy40MiAyMi40MiAxMiAxOS4zIDguODl6TTE1LjUgOUMxNC4xMiA5IDEzIDcuODggMTMgNi41UzE0LjEyIDQgMTUuNSA0IDE4IDUuMTIgMTggNi41IDE2Ljg4IDkgMTUuNSA5eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImluZm9fb3V0bGluZV8yNHB4Ij48cGF0aCBkPSJNMTEgMTdoMnYtNmgtMnY2em0xLTE1QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpNMTEgOWgyVjdoLTJ2MnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ia2VlcF8yNHB4Ij48Zz48cmVjdCBmaWxsPSJub25lIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiLz48L2c+PGc+PHBhdGggZD0iTTE2LDlWNGwxLDBjMC41NSwwLDEtMC40NSwxLTF2MGMwLTAuNTUtMC40NS0xLTEtMUg3QzYuNDUsMiw2LDIuNDUsNiwzdjAgYzAsMC41NSwwLjQ1LDEsMSwxbDEsMHY1YzAsMS42Ni0xLjM0LDMtMywzaDB2Mmg1Ljk3djdsMSwxbDEtMXYtN0gxOXYtMmgwQzE3LjM0LDEyLDE2LDEwLjY2LDE2LDl6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9ImtlZXBfb3V0bGluZV8yNHB4Ij48Zz48cmVjdCBmaWxsPSJub25lIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiLz48L2c+PGc+PHBhdGggZD0iTTE0LDR2NWMwLDEuMTIsMC4zNywyLjE2LDEsM0g5YzAuNjUtMC44NiwxLTEuOSwxLTNWNEgxNCBNMTcsMkg3QzYuNDUsMiw2LDIuNDUsNiwzYzAsMC41NSwwLjQ1LDEsMSwxYzAsMCwwLDAsMCwwbDEsMHY1IGMwLDEuNjYtMS4zNCwzLTMsM3YyaDUuOTd2N2wxLDFsMS0xdi03SDE5di0yYzAsMCwwLDAsMCwwYy0xLjY2LDAtMy0xLjM0LTMtM1Y0bDEsMGMwLDAsMCwwLDAsMGMwLjU1LDAsMS0wLjQ1LDEtMSBDMTgsMi40NSwxNy41NSwyLDE3LDJMMTcsMnoiLz48L2c+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9ImxpZ2h0X21vZGVfMjRweCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTEyLDdjLTIuNzYsMC01LDIuMjQtNSw1czIuMjQsNSw1LDVzNS0yLjI0LDUtNVMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDAgYy0wLjU1LDAtMSwwLjQ1LTEsMVMxLjQ1LDEzLDIsMTN6IE0yMCwxM2wyLDBjMC41NSwwLDEtMC40NSwxLTFzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjIgYzAsMC41NSwwLjQ1LDEsMSwxczEtMC40NSwxLTFWMmMwLTAuNTUtMC40NS0xLTEtMVMxMSwxLjQ1LDExLDJ6IE0xMSwyMHYyYzAsMC41NSwwLjQ1LDEsMSwxczEtMC40NSwxLTF2LTJjMC0wLjU1LTAuNDUtMS0xLTEgQzExLjQ1LDE5LDExLDE5LjQ1LDExLDIweiBNNS45OSw0LjU4Yy0wLjM5LTAuMzktMS4wMy0wLjM5LTEuNDEsMGMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDFsMS4wNiwxLjA2IGMwLjM5LDAuMzksMS4wMywwLjM5LDEuNDEsMHMwLjM5LTEuMDMsMC0xLjQxTDUuOTksNC41OHogTTE4LjM2LDE2Ljk1Yy0wLjM5LTAuMzktMS4wMy0wLjM5LTEuNDEsMGMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgbDEuMDYsMS4wNmMwLjM5LDAuMzksMS4wMywwLjM5LDEuNDEsMGMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MUwxOC4zNiwxNi45NXogTTE5LjQyLDUuOTljMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgYy0wLjM5LTAuMzktMS4wMy0wLjM5LTEuNDEsMGwtMS4wNiwxLjA2Yy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDE5LjQyLDUuOTl6IE03LjA1LDE4LjM2IGMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDFzMS4wMywwLjM5LDEuNDEsMEw3LjA1LDE4LjM2eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJsaW5lX3dlaWdodF8yNHB4Ij48Zz48cmVjdCBmaWxsPSJub25lIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiIHg9IjAiLz48L2c+PGc+PGc+PGc+PHBhdGggZD0iTTMsMTdoMTh2LTJIM1YxN3ogTTMsMjBoMTh2LTFIM1YyMHogTTMsMTNoMTh2LTNIM1YxM3ogTTMsNHY0aDE4VjRIM3oiLz48L2c+PC9nPjwvZz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJtb3JlX3ZlcnRfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xMiA4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMCAyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJub3RpZmljYXRpb25zX25vbmVfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xMiAyMmMxLjEgMCAyLS45IDItMmgtNGMwIDEuMS45IDIgMiAyem02LTZ2LTVjMC0zLjA3LTEuNjMtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjQgNS4zNiA2IDcuOTIgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0yem0tMiAxSDh2LTZjMC0yLjQ4IDEuNTEtNC41IDQtNC41czQgMi4wMiA0IDQuNXY2eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9InBhbGV0dGVfMjRweCI+PHBhdGggZD0iTTEyIDNjLTQuOTcgMC05IDQuMDMtOSA5czQuMDMgOSA5IDljLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjM5LS4xNS0uNzQtLjM5LTEuMDEtLjIzLS4yNi0uMzgtLjYxLS4zOC0uOTkgMC0uODMuNjctMS41IDEuNS0xLjVIMTZjMi43NiAwIDUtMi4yNCA1LTUgMC00LjQyLTQuMDMtOC05LTh6bS01LjUgOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgOSA2LjUgOSA4IDkuNjcgOCAxMC41IDcuMzMgMTIgNi41IDEyem0zLTRDOC42NyA4IDggNy4zMyA4IDYuNVM4LjY3IDUgOS41IDVzMS41LjY3IDEuNSAxLjVTMTAuMzMgOCA5LjUgOHptNSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTMuNjcgNSAxNC41IDVzMS41LjY3IDEuNSAxLjVTMTUuMzMgOCAxNC41IDh6bTMgNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE2LjY3IDkgMTcuNSA5czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJyZWZyZXNoXzI0cHgiPjxwYXRoIGQ9Ik0xNy42NSA2LjM1QzE2LjIgNC45IDE0LjIxIDQgMTIgNGMtNC40MiAwLTcuOTkgMy41OC03Ljk5IDhzMy41NyA4IDcuOTkgOGMzLjczIDAgNi44NC0yLjU1IDcuNzMtNmgtMi4wOGMtLjgyIDIuMzMtMy4wNCA0LTUuNjUgNC0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJzZWFyY2hfMjRweCI+PHBhdGggZD0iTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0ic2V0dGluZ3NfMjRweCI+PHBhdGggZD0iTTE5LjQzIDEyLjk4Yy4wNC0uMzIuMDctLjY0LjA3LS45OHMtLjAzLS42Ni0uMDctLjk4bDIuMTEtMS42NWMuMTktLjE1LjI0LS40Mi4xMi0uNjRsLTItMy40NmMtLjEyLS4yMi0uMzktLjMtLjYxLS4yMmwtMi40OSAxYy0uNTItLjQtMS4wOC0uNzMtMS42OS0uOThsLS4zOC0yLjY1QzE0LjQ2IDIuMTggMTQuMjUgMiAxNCAyaC00Yy0uMjUgMC0uNDYuMTgtLjQ5LjQybC0uMzggMi42NWMtLjYxLjI1LTEuMTcuNTktMS42OS45OGwtMi40OS0xYy0uMjMtLjA5LS40OSAwLS42MS4yMmwtMiAzLjQ2Yy0uMTMuMjItLjA3LjQ5LjEyLjY0bDIuMTEgMS42NWMtLjA0LjMyLS4wNy42NS0uMDcuOThzLjAzLjY2LjA3Ljk4bC0yLjExIDEuNjVjLS4xOS4xNS0uMjQuNDItLjEyLjY0bDIgMy40NmMuMTIuMjIuMzkuMy42MS4yMmwyLjQ5LTFjLjUyLjQgMS4wOC43MyAxLjY5Ljk4bC4zOCAyLjY1Yy4wMy4yNC4yNC40Mi40OS40Mmg0Yy4yNSAwIC40Ni0uMTguNDktLjQybC4zOC0yLjY1Yy42MS0uMjUgMS4xNy0uNTkgMS42OS0uOThsMi40OSAxYy4yMy4wOS40OSAwIC42MS0uMjJsMi0zLjQ2Yy4xMi0uMjIuMDctLjQ5LS4xMi0uNjRsLTIuMTEtMS42NXpNMTIgMTUuNWMtMS45MyAwLTMuNS0xLjU3LTMuNS0zLjVzMS41Ny0zLjUgMy41LTMuNSAzLjUgMS41NyAzLjUgMy41LTEuNTcgMy41LTMuNSAzLjV6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ic2V0dGluZ3NfYmFja3VwX3Jlc3RvcmVfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xNCAxMmMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDIgLjkgMiAyIDIgMi0uOSAyLTJ6bS0yLTljLTQuOTcgMC05IDQuMDMtOSA5SDBsNCA0IDQtNEg1YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS41MSAwLTIuOTEtLjQ5LTQuMDYtMS4zbC0xLjQyIDEuNDRDOC4wNCAyMC4zIDkuOTQgMjEgMTIgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ic2V0dGluZ3Nfb3ZlcnNjYW5fMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xMi4wMSA1LjVMMTAgOGg0bC0xLjk5LTIuNXpNMTggMTB2NGwyLjUtMS45OUwxOCAxMHpNNiAxMGwtMi41IDIuMDFMNiAxNHYtNHptOCA2aC00bDIuMDEgMi41TDE0IDE2em03LTEzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOTloMTh2MTQuMDJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0idmlzaWJpbGl0eV9vZmZfMjRweCI+PHBhdGggZD0iTTEyIDdjMi43NiAwIDUgMi4yNCA1IDUgMCAuNjUtLjEzIDEuMjYtLjM2IDEuODNsMi45MiAyLjkyYzEuNTEtMS4yNiAyLjctMi44OSAzLjQzLTQuNzUtMS43My00LjM5LTYtNy41LTExLTcuNS0xLjQgMC0yLjc0LjI1LTMuOTguN2wyLjE2IDIuMTZDMTAuNzQgNy4xMyAxMS4zNSA3IDEyIDd6TTIgNC4yN2wyLjI4IDIuMjguNDYuNDZDMy4wOCA4LjMgMS43OCAxMC4wMiAxIDEyYzEuNzMgNC4zOSA2IDcuNSAxMSA3LjUgMS41NSAwIDMuMDMtLjMgNC4zOC0uODRsLjQyLjQyTDE5LjczIDIyIDIxIDIwLjczIDMuMjcgMyAyIDQuMjd6TTcuNTMgOS44bDEuNTUgMS41NWMtLjA1LjIxLS4wOC40My0uMDguNjUgMCAxLjY2IDEuMzQgMyAzIDMgLjIyIDAgLjQ0LS4wMy42NS0uMDhsMS41NSAxLjU1Yy0uNjcuMzMtMS40MS41My0yLjIuNTMtMi43NiAwLTUtMi4yNC01LTUgMC0uNzkuMi0xLjUzLjUzLTIuMnptNC4zMS0uNzhsMy4xNSAzLjE1LjAyLS4xNmMwLTEuNjYtMS4zNC0zLTMtM2wtLjE3LjAxeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9Indhcm5pbmdfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xIDIxaDIyTDEyIDIgMSAyMXptMTItM2gtMnYtMmgydjJ6bTAtNGgtMnYtNGgydjR6Ii8+PC9zdmc+PC9kZWZzPjwvc3ZnPgo=", + "headers": [ + [ + "content-type", + "image/svg+xml; charset=utf-8" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/index.js?_file_hash=29a7d03a": { + "data": "dmFyIENMT1NVUkVfTk9fREVQUyA9IHRydWU7CndpbmRvdy5wb2x5bWVyU2tpcExvYWRpbmdGb250Um9ib3RvID0gdHJ1ZTsKLyoqIHZpbTogZXQ6dHM9NDpzdz00OnN0cz00CiAqIEBsaWNlbnNlIFJlcXVpcmVKUyAyLjMuNiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycy4KICogUmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIGh0dHBzOi8vZ2l0aHViLmNvbS9yZXF1aXJlanMvcmVxdWlyZWpzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UKICovCi8vTm90IHVzaW5nIHN0cmljdDogdW5ldmVuIHN0cmljdCBzdXBwb3J0IGluIGJyb3dzZXJzLCAjMzkyLCBhbmQgY2F1c2VzCi8vcHJvYmxlbXMgd2l0aCByZXF1aXJlanMuZXhlYygpL3RyYW5zcGlsZXIgcGx1Z2lucyB0aGF0IG1heSBub3QgYmUgc3RyaWN0LgovKmpzbGludCByZWdleHA6IHRydWUsIG5vbWVuOiB0cnVlLCBzbG9wcHk6IHRydWUgKi8KLypnbG9iYWwgd2luZG93LCBuYXZpZ2F0b3IsIGRvY3VtZW50LCBpbXBvcnRTY3JpcHRzLCBzZXRUaW1lb3V0LCBvcGVyYSAqLwoKdmFyIHJlcXVpcmVqcywgcmVxdWlyZSwgZGVmaW5lOwooZnVuY3Rpb24gKGdsb2JhbCwgc2V0VGltZW91dCkgewogICAgdmFyIHJlcSwgcywgaGVhZCwgYmFzZUVsZW1lbnQsIGRhdGFNYWluLCBzcmMsCiAgICAgICAgaW50ZXJhY3RpdmVTY3JpcHQsIGN1cnJlbnRseUFkZGluZ1NjcmlwdCwgbWFpblNjcmlwdCwgc3ViUGF0aCwKICAgICAgICB2ZXJzaW9uID0gJzIuMy42JywKICAgICAgICBjb21tZW50UmVnRXhwID0gL1wvXCpbXHNcU10qP1wqXC98KFteOiInPV18XilcL1wvLiokL21nLAogICAgICAgIGNqc1JlcXVpcmVSZWdFeHAgPSAvW14uXVxzKnJlcXVpcmVccypcKFxzKlsiJ10oW14nIlxzXSspWyInXVxzKlwpL2csCiAgICAgICAganNTdWZmaXhSZWdFeHAgPSAvXC5qcyQvLAogICAgICAgIGN1cnJEaXJSZWdFeHAgPSAvXlwuXC8vLAogICAgICAgIG9wID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgICBvc3RyaW5nID0gb3AudG9TdHJpbmcsCiAgICAgICAgaGFzT3duID0gb3AuaGFzT3duUHJvcGVydHksCiAgICAgICAgaXNCcm93c2VyID0gISEodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50KSwKICAgICAgICBpc1dlYldvcmtlciA9ICFpc0Jyb3dzZXIgJiYgdHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICd1bmRlZmluZWQnLAogICAgICAgIC8vUFMzIGluZGljYXRlcyBsb2FkZWQgYW5kIGNvbXBsZXRlLCBidXQgbmVlZCB0byB3YWl0IGZvciBjb21wbGV0ZQogICAgICAgIC8vc3BlY2lmaWNhbGx5LiBTZXF1ZW5jZSBpcyAnbG9hZGluZycsICdsb2FkZWQnLCBleGVjdXRpb24sCiAgICAgICAgLy8gdGhlbiAnY29tcGxldGUnLiBUaGUgVUEgY2hlY2sgaXMgdW5mb3J0dW5hdGUsIGJ1dCBub3Qgc3VyZSBob3cKICAgICAgICAvL3RvIGZlYXR1cmUgdGVzdCB3L28gY2F1c2luZyBwZXJmIGlzc3Vlcy4KICAgICAgICByZWFkeVJlZ0V4cCA9IGlzQnJvd3NlciAmJiBuYXZpZ2F0b3IucGxhdGZvcm0gPT09ICdQTEFZU1RBVElPTiAzJyA/CiAgICAgICAgICAgICAgICAgICAgICAvXmNvbXBsZXRlJC8gOiAvXihjb21wbGV0ZXxsb2FkZWQpJC8sCiAgICAgICAgZGVmQ29udGV4dE5hbWUgPSAnXycsCiAgICAgICAgLy9PaCB0aGUgdHJhZ2VkeSwgZGV0ZWN0aW5nIG9wZXJhLiBTZWUgdGhlIHVzYWdlIG9mIGlzT3BlcmEgZm9yIHJlYXNvbi4KICAgICAgICBpc09wZXJhID0gdHlwZW9mIG9wZXJhICE9PSAndW5kZWZpbmVkJyAmJiBvcGVyYS50b1N0cmluZygpID09PSAnW29iamVjdCBPcGVyYV0nLAogICAgICAgIGNvbnRleHRzID0ge30sCiAgICAgICAgY2ZnID0ge30sCiAgICAgICAgZ2xvYmFsRGVmUXVldWUgPSBbXSwKICAgICAgICB1c2VJbnRlcmFjdGl2ZSA9IGZhbHNlOwoKICAgIC8vQ291bGQgbWF0Y2ggc29tZXRoaW5nIGxpa2UgJykvL2NvbW1lbnQnLCBkbyBub3QgbG9zZSB0aGUgcHJlZml4IHRvIGNvbW1lbnQuCiAgICBmdW5jdGlvbiBjb21tZW50UmVwbGFjZShtYXRjaCwgc2luZ2xlUHJlZml4KSB7CiAgICAgICAgcmV0dXJuIHNpbmdsZVByZWZpeCB8fCAnJzsKICAgIH0KCiAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKGl0KSB7CiAgICAgICAgcmV0dXJuIG9zdHJpbmcuY2FsbChpdCkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7CiAgICB9CgogICAgZnVuY3Rpb24gaXNBcnJheShpdCkgewogICAgICAgIHJldHVybiBvc3RyaW5nLmNhbGwoaXQpID09PSAnW29iamVjdCBBcnJheV0nOwogICAgfQoKICAgIC8qKgogICAgICogSGVscGVyIGZ1bmN0aW9uIGZvciBpdGVyYXRpbmcgb3ZlciBhbiBhcnJheS4gSWYgdGhlIGZ1bmMgcmV0dXJucwogICAgICogYSB0cnVlIHZhbHVlLCBpdCB3aWxsIGJyZWFrIG91dCBvZiB0aGUgbG9vcC4KICAgICAqLwogICAgZnVuY3Rpb24gZWFjaChhcnksIGZ1bmMpIHsKICAgICAgICBpZiAoYXJ5KSB7CiAgICAgICAgICAgIHZhciBpOwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJ5Lmxlbmd0aDsgaSArPSAxKSB7CiAgICAgICAgICAgICAgICBpZiAoYXJ5W2ldICYmIGZ1bmMoYXJ5W2ldLCBpLCBhcnkpKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGl0ZXJhdGluZyBvdmVyIGFuIGFycmF5IGJhY2t3YXJkcy4gSWYgdGhlIGZ1bmMKICAgICAqIHJldHVybnMgYSB0cnVlIHZhbHVlLCBpdCB3aWxsIGJyZWFrIG91dCBvZiB0aGUgbG9vcC4KICAgICAqLwogICAgZnVuY3Rpb24gZWFjaFJldmVyc2UoYXJ5LCBmdW5jKSB7CiAgICAgICAgaWYgKGFyeSkgewogICAgICAgICAgICB2YXIgaTsKICAgICAgICAgICAgZm9yIChpID0gYXJ5Lmxlbmd0aCAtIDE7IGkgPiAtMTsgaSAtPSAxKSB7CiAgICAgICAgICAgICAgICBpZiAoYXJ5W2ldICYmIGZ1bmMoYXJ5W2ldLCBpLCBhcnkpKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaGFzUHJvcChvYmosIHByb3ApIHsKICAgICAgICByZXR1cm4gaGFzT3duLmNhbGwob2JqLCBwcm9wKTsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRPd24ob2JqLCBwcm9wKSB7CiAgICAgICAgcmV0dXJuIGhhc1Byb3Aob2JqLCBwcm9wKSAmJiBvYmpbcHJvcF07CiAgICB9CgogICAgLyoqCiAgICAgKiBDeWNsZXMgb3ZlciBwcm9wZXJ0aWVzIGluIGFuIG9iamVjdCBhbmQgY2FsbHMgYSBmdW5jdGlvbiBmb3IgZWFjaAogICAgICogcHJvcGVydHkgdmFsdWUuIElmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgdHJ1dGh5IHZhbHVlLCB0aGVuIHRoZQogICAgICogaXRlcmF0aW9uIGlzIHN0b3BwZWQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVhY2hQcm9wKG9iaiwgZnVuYykgewogICAgICAgIHZhciBwcm9wOwogICAgICAgIGZvciAocHJvcCBpbiBvYmopIHsKICAgICAgICAgICAgaWYgKGhhc1Byb3Aob2JqLCBwcm9wKSkgewogICAgICAgICAgICAgICAgaWYgKGZ1bmMob2JqW3Byb3BdLCBwcm9wKSkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogU2ltcGxlIGZ1bmN0aW9uIHRvIG1peCBpbiBwcm9wZXJ0aWVzIGZyb20gc291cmNlIGludG8gdGFyZ2V0LAogICAgICogYnV0IG9ubHkgaWYgdGFyZ2V0IGRvZXMgbm90IGFscmVhZHkgaGF2ZSBhIHByb3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIG1peGluKHRhcmdldCwgc291cmNlLCBmb3JjZSwgZGVlcFN0cmluZ01peGluKSB7CiAgICAgICAgaWYgKHNvdXJjZSkgewogICAgICAgICAgICBlYWNoUHJvcChzb3VyY2UsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkgewogICAgICAgICAgICAgICAgaWYgKGZvcmNlIHx8ICFoYXNQcm9wKHRhcmdldCwgcHJvcCkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZGVlcFN0cmluZ01peGluICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgIWlzQXJyYXkodmFsdWUpICYmICFpc0Z1bmN0aW9uKHZhbHVlKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAhKHZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0YXJnZXRbcHJvcF0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFtwcm9wXSA9IHt9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIG1peGluKHRhcmdldFtwcm9wXSwgdmFsdWUsIGZvcmNlLCBkZWVwU3RyaW5nTWl4aW4pOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFtwcm9wXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0YXJnZXQ7CiAgICB9CgogICAgLy9TaW1pbGFyIHRvIEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLCBidXQgdGhlICd0aGlzJyBvYmplY3QgaXMgc3BlY2lmaWVkCiAgICAvL2ZpcnN0LCBzaW5jZSBpdCBpcyBlYXNpZXIgdG8gcmVhZC9maWd1cmUgb3V0IHdoYXQgJ3RoaXMnIHdpbGwgYmUuCiAgICBmdW5jdGlvbiBiaW5kKG9iaiwgZm4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkob2JqLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICB9CgogICAgZnVuY3Rpb24gc2NyaXB0cygpIHsKICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpOwogICAgfQoKICAgIGZ1bmN0aW9uIGRlZmF1bHRPbkVycm9yKGVycikgewogICAgICAgIHRocm93IGVycjsKICAgIH0KCiAgICAvL0FsbG93IGdldHRpbmcgYSBnbG9iYWwgdGhhdCBpcyBleHByZXNzZWQgaW4KICAgIC8vZG90IG5vdGF0aW9uLCBsaWtlICdhLmIuYycuCiAgICBmdW5jdGlvbiBnZXRHbG9iYWwodmFsdWUpIHsKICAgICAgICBpZiAoIXZhbHVlKSB7CiAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICB9CiAgICAgICAgdmFyIGcgPSBnbG9iYWw7CiAgICAgICAgZWFjaCh2YWx1ZS5zcGxpdCgnLicpLCBmdW5jdGlvbiAocGFydCkgewogICAgICAgICAgICBnID0gZ1twYXJ0XTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gZzsKICAgIH0KCiAgICAvKioKICAgICAqIENvbnN0cnVjdHMgYW4gZXJyb3Igd2l0aCBhIHBvaW50ZXIgdG8gYW4gVVJMIHdpdGggbW9yZSBpbmZvcm1hdGlvbi4KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZXJyb3IgSUQgdGhhdCBtYXBzIHRvIGFuIElEIG9uIGEgd2ViIHBhZ2UuCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbWVzc2FnZSBodW1hbiByZWFkYWJsZSBlcnJvci4KICAgICAqIEBwYXJhbSB7RXJyb3J9IFtlcnJdIHRoZSBvcmlnaW5hbCBlcnJvciwgaWYgdGhlcmUgaXMgb25lLgogICAgICoKICAgICAqIEByZXR1cm5zIHtFcnJvcn0KICAgICAqLwogICAgZnVuY3Rpb24gbWFrZUVycm9yKGlkLCBtc2csIGVyciwgcmVxdWlyZU1vZHVsZXMpIHsKICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtc2cgKyAnXG5odHRwczovL3JlcXVpcmVqcy5vcmcvZG9jcy9lcnJvcnMuaHRtbCMnICsgaWQpOwogICAgICAgIGUucmVxdWlyZVR5cGUgPSBpZDsKICAgICAgICBlLnJlcXVpcmVNb2R1bGVzID0gcmVxdWlyZU1vZHVsZXM7CiAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICBlLm9yaWdpbmFsRXJyb3IgPSBlcnI7CiAgICAgICAgfQogICAgICAgIHJldHVybiBlOwogICAgfQoKICAgIGlmICh0eXBlb2YgZGVmaW5lICE9PSAndW5kZWZpbmVkJykgewogICAgICAgIC8vSWYgYSBkZWZpbmUgaXMgYWxyZWFkeSBpbiBwbGF5IHZpYSBhbm90aGVyIEFNRCBsb2FkZXIsCiAgICAgICAgLy9kbyBub3Qgb3ZlcndyaXRlLgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAodHlwZW9mIHJlcXVpcmVqcyAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICBpZiAoaXNGdW5jdGlvbihyZXF1aXJlanMpKSB7CiAgICAgICAgICAgIC8vRG8gbm90IG92ZXJ3cml0ZSBhbiBleGlzdGluZyByZXF1aXJlanMgaW5zdGFuY2UuCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY2ZnID0gcmVxdWlyZWpzOwogICAgICAgIHJlcXVpcmVqcyA9IHVuZGVmaW5lZDsKICAgIH0KCiAgICAvL0FsbG93IGZvciBhIHJlcXVpcmUgY29uZmlnIG9iamVjdAogICAgaWYgKHR5cGVvZiByZXF1aXJlICE9PSAndW5kZWZpbmVkJyAmJiAhaXNGdW5jdGlvbihyZXF1aXJlKSkgewogICAgICAgIC8vYXNzdW1lIGl0IGlzIGEgY29uZmlnIG9iamVjdC4KICAgICAgICBjZmcgPSByZXF1aXJlOwogICAgICAgIHJlcXVpcmUgPSB1bmRlZmluZWQ7CiAgICB9CgogICAgZnVuY3Rpb24gbmV3Q29udGV4dChjb250ZXh0TmFtZSkgewogICAgICAgIHZhciBpbkNoZWNrTG9hZGVkLCBNb2R1bGUsIGNvbnRleHQsIGhhbmRsZXJzLAogICAgICAgICAgICBjaGVja0xvYWRlZFRpbWVvdXRJZCwKICAgICAgICAgICAgY29uZmlnID0gewogICAgICAgICAgICAgICAgLy9EZWZhdWx0cy4gRG8gbm90IHNldCBhIGRlZmF1bHQgZm9yIG1hcAogICAgICAgICAgICAgICAgLy9jb25maWcgdG8gc3BlZWQgdXAgbm9ybWFsaXplKCksIHdoaWNoCiAgICAgICAgICAgICAgICAvL3dpbGwgcnVuIGZhc3RlciBpZiB0aGVyZSBpcyBubyBkZWZhdWx0LgogICAgICAgICAgICAgICAgd2FpdFNlY29uZHM6IDcsCiAgICAgICAgICAgICAgICBiYXNlVXJsOiAnLi8nLAogICAgICAgICAgICAgICAgcGF0aHM6IHt9LAogICAgICAgICAgICAgICAgYnVuZGxlczoge30sCiAgICAgICAgICAgICAgICBwa2dzOiB7fSwKICAgICAgICAgICAgICAgIHNoaW06IHt9LAogICAgICAgICAgICAgICAgY29uZmlnOiB7fQogICAgICAgICAgICB9LAogICAgICAgICAgICByZWdpc3RyeSA9IHt9LAogICAgICAgICAgICAvL3JlZ2lzdHJ5IG9mIGp1c3QgZW5hYmxlZCBtb2R1bGVzLCB0byBzcGVlZAogICAgICAgICAgICAvL2N5Y2xlIGJyZWFraW5nIGNvZGUgd2hlbiBsb3RzIG9mIG1vZHVsZXMKICAgICAgICAgICAgLy9hcmUgcmVnaXN0ZXJlZCwgYnV0IG5vdCBhY3RpdmF0ZWQuCiAgICAgICAgICAgIGVuYWJsZWRSZWdpc3RyeSA9IHt9LAogICAgICAgICAgICB1bmRlZkV2ZW50cyA9IHt9LAogICAgICAgICAgICBkZWZRdWV1ZSA9IFtdLAogICAgICAgICAgICBkZWZpbmVkID0ge30sCiAgICAgICAgICAgIHVybEZldGNoZWQgPSB7fSwKICAgICAgICAgICAgYnVuZGxlc01hcCA9IHt9LAogICAgICAgICAgICByZXF1aXJlQ291bnRlciA9IDEsCiAgICAgICAgICAgIHVubm9ybWFsaXplZENvdW50ZXIgPSAxOwoKICAgICAgICAvKioKICAgICAgICAgKiBUcmltcyB0aGUgLiBhbmQgLi4gZnJvbSBhbiBhcnJheSBvZiBwYXRoIHNlZ21lbnRzLgogICAgICAgICAqIEl0IHdpbGwga2VlcCBhIGxlYWRpbmcgcGF0aCBzZWdtZW50IGlmIGEgLi4gd2lsbCBiZWNvbWUKICAgICAgICAgKiB0aGUgZmlyc3QgcGF0aCBzZWdtZW50LCB0byBoZWxwIHdpdGggbW9kdWxlIG5hbWUgbG9va3VwcywKICAgICAgICAgKiB3aGljaCBhY3QgbGlrZSBwYXRocywgYnV0IGNhbiBiZSByZW1hcHBlZC4gQnV0IHRoZSBlbmQgcmVzdWx0LAogICAgICAgICAqIGFsbCBwYXRocyB0aGF0IHVzZSB0aGlzIGZ1bmN0aW9uIHNob3VsZCBsb29rIG5vcm1hbGl6ZWQuCiAgICAgICAgICogTk9URTogdGhpcyBtZXRob2QgTU9ESUZJRVMgdGhlIGlucHV0IGFycmF5LgogICAgICAgICAqIEBwYXJhbSB7QXJyYXl9IGFyeSB0aGUgYXJyYXkgb2YgcGF0aCBzZWdtZW50cy4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiB0cmltRG90cyhhcnkpIHsKICAgICAgICAgICAgdmFyIGksIHBhcnQ7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcnkubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIHBhcnQgPSBhcnlbaV07CiAgICAgICAgICAgICAgICBpZiAocGFydCA9PT0gJy4nKSB7CiAgICAgICAgICAgICAgICAgICAgYXJ5LnNwbGljZShpLCAxKTsKICAgICAgICAgICAgICAgICAgICBpIC09IDE7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcnQgPT09ICcuLicpIHsKICAgICAgICAgICAgICAgICAgICAvLyBJZiBhdCB0aGUgc3RhcnQsIG9yIHByZXZpb3VzIHZhbHVlIGlzIHN0aWxsIC4uLAogICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgdGhlbSBzbyB0aGF0IHdoZW4gY29udmVydGVkIHRvIGEgcGF0aCBpdCBtYXkKICAgICAgICAgICAgICAgICAgICAvLyBzdGlsbCB3b3JrIHdoZW4gY29udmVydGVkIHRvIGEgcGF0aCwgZXZlbiB0aG91Z2gKICAgICAgICAgICAgICAgICAgICAvLyBhcyBhbiBJRCBpdCBpcyBsZXNzIHRoYW4gaWRlYWwuIEluIGxhcmdlciBwb2ludAogICAgICAgICAgICAgICAgICAgIC8vIHJlbGVhc2VzLCBtYXkgYmUgYmV0dGVyIHRvIGp1c3Qga2ljayBvdXQgYW4gZXJyb3IuCiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IDAgfHwgKGkgPT09IDEgJiYgYXJ5WzJdID09PSAnLi4nKSB8fCBhcnlbaSAtIDFdID09PSAnLi4nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXJ5LnNwbGljZShpIC0gMSwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgIGkgLT0gMjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIEdpdmVuIGEgcmVsYXRpdmUgbW9kdWxlIG5hbWUsIGxpa2UgLi9zb21ldGhpbmcsIG5vcm1hbGl6ZSBpdCB0bwogICAgICAgICAqIGEgcmVhbCBuYW1lIHRoYXQgY2FuIGJlIG1hcHBlZCB0byBhIHBhdGguCiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgdGhlIHJlbGF0aXZlIG5hbWUKICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gYmFzZU5hbWUgYSByZWFsIG5hbWUgdGhhdCB0aGUgbmFtZSBhcmcgaXMgcmVsYXRpdmUKICAgICAgICAgKiB0by4KICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGFwcGx5TWFwIGFwcGx5IHRoZSBtYXAgY29uZmlnIHRvIHRoZSB2YWx1ZS4gU2hvdWxkCiAgICAgICAgICogb25seSBiZSBkb25lIGlmIHRoaXMgbm9ybWFsaXphdGlvbiBpcyBmb3IgYSBkZXBlbmRlbmN5IElELgogICAgICAgICAqIEByZXR1cm5zIHtTdHJpbmd9IG5vcm1hbGl6ZWQgbmFtZQogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZShuYW1lLCBiYXNlTmFtZSwgYXBwbHlNYXApIHsKICAgICAgICAgICAgdmFyIHBrZ01haW4sIG1hcFZhbHVlLCBuYW1lUGFydHMsIGksIGosIG5hbWVTZWdtZW50LCBsYXN0SW5kZXgsCiAgICAgICAgICAgICAgICBmb3VuZE1hcCwgZm91bmRJLCBmb3VuZFN0YXJNYXAsIHN0YXJJLCBub3JtYWxpemVkQmFzZVBhcnRzLAogICAgICAgICAgICAgICAgYmFzZVBhcnRzID0gKGJhc2VOYW1lICYmIGJhc2VOYW1lLnNwbGl0KCcvJykpLAogICAgICAgICAgICAgICAgbWFwID0gY29uZmlnLm1hcCwKICAgICAgICAgICAgICAgIHN0YXJNYXAgPSBtYXAgJiYgbWFwWycqJ107CgogICAgICAgICAgICAvL0FkanVzdCBhbnkgcmVsYXRpdmUgcGF0aHMuCiAgICAgICAgICAgIGlmIChuYW1lKSB7CiAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zcGxpdCgnLycpOwogICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gbmFtZS5sZW5ndGggLSAxOwoKICAgICAgICAgICAgICAgIC8vIElmIHdhbnRpbmcgbm9kZSBJRCBjb21wYXRpYmlsaXR5LCBzdHJpcCAuanMgZnJvbSBlbmQKICAgICAgICAgICAgICAgIC8vIG9mIElEcy4gSGF2ZSB0byBkbyB0aGlzIGhlcmUsIGFuZCBub3QgaW4gbmFtZVRvVXJsCiAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIG5vZGUgYWxsb3dzIGVpdGhlciAuanMgb3Igbm9uIC5qcyB0byBtYXAKICAgICAgICAgICAgICAgIC8vIHRvIHNhbWUgZmlsZS4KICAgICAgICAgICAgICAgIGlmIChjb25maWcubm9kZUlkQ29tcGF0ICYmIGpzU3VmZml4UmVnRXhwLnRlc3QobmFtZVtsYXN0SW5kZXhdKSkgewogICAgICAgICAgICAgICAgICAgIG5hbWVbbGFzdEluZGV4XSA9IG5hbWVbbGFzdEluZGV4XS5yZXBsYWNlKGpzU3VmZml4UmVnRXhwLCAnJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gU3RhcnRzIHdpdGggYSAnLicgc28gbmVlZCB0aGUgYmFzZU5hbWUKICAgICAgICAgICAgICAgIGlmIChuYW1lWzBdLmNoYXJBdCgwKSA9PT0gJy4nICYmIGJhc2VQYXJ0cykgewogICAgICAgICAgICAgICAgICAgIC8vQ29udmVydCBiYXNlTmFtZSB0byBhcnJheSwgYW5kIGxvcCBvZmYgdGhlIGxhc3QgcGFydCwKICAgICAgICAgICAgICAgICAgICAvL3NvIHRoYXQgLiBtYXRjaGVzIHRoYXQgJ2RpcmVjdG9yeScgYW5kIG5vdCBuYW1lIG9mIHRoZSBiYXNlTmFtZSdzCiAgICAgICAgICAgICAgICAgICAgLy9tb2R1bGUuIEZvciBpbnN0YW5jZSwgYmFzZU5hbWUgb2YgJ29uZS90d28vdGhyZWUnLCBtYXBzIHRvCiAgICAgICAgICAgICAgICAgICAgLy8nb25lL3R3by90aHJlZS5qcycsIGJ1dCB3ZSB3YW50IHRoZSBkaXJlY3RvcnksICdvbmUvdHdvJyBmb3IKICAgICAgICAgICAgICAgICAgICAvL3RoaXMgbm9ybWFsaXphdGlvbi4KICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkQmFzZVBhcnRzID0gYmFzZVBhcnRzLnNsaWNlKDAsIGJhc2VQYXJ0cy5sZW5ndGggLSAxKTsKICAgICAgICAgICAgICAgICAgICBuYW1lID0gbm9ybWFsaXplZEJhc2VQYXJ0cy5jb25jYXQobmFtZSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdHJpbURvdHMobmFtZSk7CiAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5qb2luKCcvJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vQXBwbHkgbWFwIGNvbmZpZyBpZiBhdmFpbGFibGUuCiAgICAgICAgICAgIGlmIChhcHBseU1hcCAmJiBtYXAgJiYgKGJhc2VQYXJ0cyB8fCBzdGFyTWFwKSkgewogICAgICAgICAgICAgICAgbmFtZVBhcnRzID0gbmFtZS5zcGxpdCgnLycpOwoKICAgICAgICAgICAgICAgIG91dGVyTG9vcDogZm9yIChpID0gbmFtZVBhcnRzLmxlbmd0aDsgaSA+IDA7IGkgLT0gMSkgewogICAgICAgICAgICAgICAgICAgIG5hbWVTZWdtZW50ID0gbmFtZVBhcnRzLnNsaWNlKDAsIGkpLmpvaW4oJy8nKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2VQYXJ0cykgewogICAgICAgICAgICAgICAgICAgICAgICAvL0ZpbmQgdGhlIGxvbmdlc3QgYmFzZU5hbWUgc2VnbWVudCBtYXRjaCBpbiB0aGUgY29uZmlnLgogICAgICAgICAgICAgICAgICAgICAgICAvL1NvLCBkbyBqb2lucyBvbiB0aGUgYmlnZ2VzdCB0byBzbWFsbGVzdCBsZW5ndGhzIG9mIGJhc2VQYXJ0cy4KICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChqID0gYmFzZVBhcnRzLmxlbmd0aDsgaiA+IDA7IGogLT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwVmFsdWUgPSBnZXRPd24obWFwLCBiYXNlUGFydHMuc2xpY2UoMCwgaikuam9pbignLycpKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Jhc2VOYW1lIHNlZ21lbnQgaGFzIGNvbmZpZywgZmluZCBpZiBpdCBoYXMgb25lIGZvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzIG5hbWUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFwVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBWYWx1ZSA9IGdldE93bihtYXBWYWx1ZSwgbmFtZVNlZ21lbnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXBWYWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL01hdGNoLCB1cGRhdGUgbmFtZSB0byB0aGUgbmV3IHZhbHVlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZE1hcCA9IG1hcFZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZEkgPSBpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlckxvb3A7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvL0NoZWNrIGZvciBhIHN0YXIgbWFwIG1hdGNoLCBidXQganVzdCBob2xkIG9uIHRvIGl0LAogICAgICAgICAgICAgICAgICAgIC8vaWYgdGhlcmUgaXMgYSBzaG9ydGVyIHNlZ21lbnQgbWF0Y2ggbGF0ZXIgaW4gYSBtYXRjaGluZwogICAgICAgICAgICAgICAgICAgIC8vY29uZmlnLCB0aGVuIGZhdm9yIG92ZXIgdGhpcyBzdGFyIG1hcC4KICAgICAgICAgICAgICAgICAgICBpZiAoIWZvdW5kU3Rhck1hcCAmJiBzdGFyTWFwICYmIGdldE93bihzdGFyTWFwLCBuYW1lU2VnbWVudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRTdGFyTWFwID0gZ2V0T3duKHN0YXJNYXAsIG5hbWVTZWdtZW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgc3RhckkgPSBpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoIWZvdW5kTWFwICYmIGZvdW5kU3Rhck1hcCkgewogICAgICAgICAgICAgICAgICAgIGZvdW5kTWFwID0gZm91bmRTdGFyTWFwOwogICAgICAgICAgICAgICAgICAgIGZvdW5kSSA9IHN0YXJJOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChmb3VuZE1hcCkgewogICAgICAgICAgICAgICAgICAgIG5hbWVQYXJ0cy5zcGxpY2UoMCwgZm91bmRJLCBmb3VuZE1hcCk7CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVQYXJ0cy5qb2luKCcvJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIElmIHRoZSBuYW1lIHBvaW50cyB0byBhIHBhY2thZ2UncyBuYW1lLCB1c2UKICAgICAgICAgICAgLy8gdGhlIHBhY2thZ2UgbWFpbiBpbnN0ZWFkLgogICAgICAgICAgICBwa2dNYWluID0gZ2V0T3duKGNvbmZpZy5wa2dzLCBuYW1lKTsKCiAgICAgICAgICAgIHJldHVybiBwa2dNYWluID8gcGtnTWFpbiA6IG5hbWU7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiByZW1vdmVTY3JpcHQobmFtZSkgewogICAgICAgICAgICBpZiAoaXNCcm93c2VyKSB7CiAgICAgICAgICAgICAgICBlYWNoKHNjcmlwdHMoKSwgZnVuY3Rpb24gKHNjcmlwdE5vZGUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0Tm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmVxdWlyZW1vZHVsZScpID09PSBuYW1lICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHROb2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlY29udGV4dCcpID09PSBjb250ZXh0LmNvbnRleHROYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdE5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JpcHROb2RlKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGhhc1BhdGhGYWxsYmFjayhpZCkgewogICAgICAgICAgICB2YXIgcGF0aENvbmZpZyA9IGdldE93bihjb25maWcucGF0aHMsIGlkKTsKICAgICAgICAgICAgaWYgKHBhdGhDb25maWcgJiYgaXNBcnJheShwYXRoQ29uZmlnKSAmJiBwYXRoQ29uZmlnLmxlbmd0aCA+IDEpIHsKICAgICAgICAgICAgICAgIC8vUG9wIG9mZiB0aGUgZmlyc3QgYXJyYXkgdmFsdWUsIHNpbmNlIGl0IGZhaWxlZCwgYW5kCiAgICAgICAgICAgICAgICAvL3JldHJ5CiAgICAgICAgICAgICAgICBwYXRoQ29uZmlnLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICBjb250ZXh0LnJlcXVpcmUudW5kZWYoaWQpOwoKICAgICAgICAgICAgICAgIC8vQ3VzdG9tIHJlcXVpcmUgdGhhdCBkb2VzIG5vdCBkbyBtYXAgdHJhbnNsYXRpb24sIHNpbmNlCiAgICAgICAgICAgICAgICAvL0lEIGlzICJhYnNvbHV0ZSIsIGFscmVhZHkgbWFwcGVkL3Jlc29sdmVkLgogICAgICAgICAgICAgICAgY29udGV4dC5tYWtlUmVxdWlyZShudWxsLCB7CiAgICAgICAgICAgICAgICAgICAgc2tpcE1hcDogdHJ1ZQogICAgICAgICAgICAgICAgfSkoW2lkXSk7CgogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vVHVybnMgYSBwbHVnaW4hcmVzb3VyY2UgdG8gW3BsdWdpbiwgcmVzb3VyY2VdCiAgICAgICAgLy93aXRoIHRoZSBwbHVnaW4gYmVpbmcgdW5kZWZpbmVkIGlmIHRoZSBuYW1lCiAgICAgICAgLy9kaWQgbm90IGhhdmUgYSBwbHVnaW4gcHJlZml4LgogICAgICAgIGZ1bmN0aW9uIHNwbGl0UHJlZml4KG5hbWUpIHsKICAgICAgICAgICAgdmFyIHByZWZpeCwKICAgICAgICAgICAgICAgIGluZGV4ID0gbmFtZSA/IG5hbWUuaW5kZXhPZignIScpIDogLTE7CiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7CiAgICAgICAgICAgICAgICBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBpbmRleCk7CiAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoaW5kZXggKyAxLCBuYW1lLmxlbmd0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIFtwcmVmaXgsIG5hbWVdOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogQ3JlYXRlcyBhIG1vZHVsZSBtYXBwaW5nIHRoYXQgaW5jbHVkZXMgcGx1Z2luIHByZWZpeCwgbW9kdWxlCiAgICAgICAgICogbmFtZSwgYW5kIHBhdGguIElmIHBhcmVudE1vZHVsZU1hcCBpcyBwcm92aWRlZCBpdCB3aWxsCiAgICAgICAgICogYWxzbyBub3JtYWxpemUgdGhlIG5hbWUgdmlhIHJlcXVpcmUubm9ybWFsaXplKCkKICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIHRoZSBtb2R1bGUgbmFtZQogICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBbcGFyZW50TW9kdWxlTWFwXSBwYXJlbnQgbW9kdWxlIG1hcAogICAgICAgICAqIGZvciB0aGUgbW9kdWxlIG5hbWUsIHVzZWQgdG8gcmVzb2x2ZSByZWxhdGl2ZSBuYW1lcy4KICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGlzTm9ybWFsaXplZDogaXMgdGhlIElEIGFscmVhZHkgbm9ybWFsaXplZC4KICAgICAgICAgKiBUaGlzIGlzIHRydWUgaWYgdGhpcyBjYWxsIGlzIGRvbmUgZm9yIGEgZGVmaW5lKCkgbW9kdWxlIElELgogICAgICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gYXBwbHlNYXA6IGFwcGx5IHRoZSBtYXAgY29uZmlnIHRvIHRoZSBJRC4KICAgICAgICAgKiBTaG91bGQgb25seSBiZSB0cnVlIGlmIHRoaXMgbWFwIGlzIGZvciBhIGRlcGVuZGVuY3kuCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJucyB7T2JqZWN0fQogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIG1ha2VNb2R1bGVNYXAobmFtZSwgcGFyZW50TW9kdWxlTWFwLCBpc05vcm1hbGl6ZWQsIGFwcGx5TWFwKSB7CiAgICAgICAgICAgIHZhciB1cmwsIHBsdWdpbk1vZHVsZSwgc3VmZml4LCBuYW1lUGFydHMsCiAgICAgICAgICAgICAgICBwcmVmaXggPSBudWxsLAogICAgICAgICAgICAgICAgcGFyZW50TmFtZSA9IHBhcmVudE1vZHVsZU1hcCA/IHBhcmVudE1vZHVsZU1hcC5uYW1lIDogbnVsbCwKICAgICAgICAgICAgICAgIG9yaWdpbmFsTmFtZSA9IG5hbWUsCiAgICAgICAgICAgICAgICBpc0RlZmluZSA9IHRydWUsCiAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9ICcnOwoKICAgICAgICAgICAgLy9JZiBubyBuYW1lLCB0aGVuIGl0IG1lYW5zIGl0IGlzIGEgcmVxdWlyZSBjYWxsLCBnZW5lcmF0ZSBhbgogICAgICAgICAgICAvL2ludGVybmFsIG5hbWUuCiAgICAgICAgICAgIGlmICghbmFtZSkgewogICAgICAgICAgICAgICAgaXNEZWZpbmUgPSBmYWxzZTsKICAgICAgICAgICAgICAgIG5hbWUgPSAnX0ByJyArIChyZXF1aXJlQ291bnRlciArPSAxKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbmFtZVBhcnRzID0gc3BsaXRQcmVmaXgobmFtZSk7CiAgICAgICAgICAgIHByZWZpeCA9IG5hbWVQYXJ0c1swXTsKICAgICAgICAgICAgbmFtZSA9IG5hbWVQYXJ0c1sxXTsKCiAgICAgICAgICAgIGlmIChwcmVmaXgpIHsKICAgICAgICAgICAgICAgIHByZWZpeCA9IG5vcm1hbGl6ZShwcmVmaXgsIHBhcmVudE5hbWUsIGFwcGx5TWFwKTsKICAgICAgICAgICAgICAgIHBsdWdpbk1vZHVsZSA9IGdldE93bihkZWZpbmVkLCBwcmVmaXgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL0FjY291bnQgZm9yIHJlbGF0aXZlIHBhdGhzIGlmIHRoZXJlIGlzIGEgYmFzZSBuYW1lLgogICAgICAgICAgICBpZiAobmFtZSkgewogICAgICAgICAgICAgICAgaWYgKHByZWZpeCkgewogICAgICAgICAgICAgICAgICAgIGlmIChpc05vcm1hbGl6ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE5hbWUgPSBuYW1lOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGx1Z2luTW9kdWxlICYmIHBsdWdpbk1vZHVsZS5ub3JtYWxpemUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9QbHVnaW4gaXMgbG9hZGVkLCB1c2UgaXRzIG5vcm1hbGl6ZSBtZXRob2QuCiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWROYW1lID0gcGx1Z2luTW9kdWxlLm5vcm1hbGl6ZShuYW1lLCBmdW5jdGlvbiAobmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShuYW1lLCBwYXJlbnROYW1lLCBhcHBseU1hcCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIG5lc3RlZCBwbHVnaW4gcmVmZXJlbmNlcywgdGhlbiBkbyBub3QgdHJ5IHRvCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSwgYXMgaXQgd2lsbCBub3Qgbm9ybWFsaXplIGNvcnJlY3RseS4gVGhpcwogICAgICAgICAgICAgICAgICAgICAgICAvLyBwbGFjZXMgYSByZXN0cmljdGlvbiBvbiByZXNvdXJjZUlkcywgYW5kIHRoZSBsb25nZXIKICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGVybSBzb2x1dGlvbiBpcyBub3QgdG8gbm9ybWFsaXplIHVudGlsIHBsdWdpbnMgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvYWRlZCBhbmQgYWxsIG5vcm1hbGl6YXRpb25zIHRvIGFsbG93IGZvciBhc3luYwogICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2FkaW5nIG9mIGEgbG9hZGVyIHBsdWdpbi4gQnV0IGZvciBub3csIGZpeGVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21tb24gdXNlcy4gRGV0YWlscyBpbiAjMTEzMQogICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9IG5hbWUuaW5kZXhPZignIScpID09PSAtMSA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplKG5hbWUsIHBhcmVudE5hbWUsIGFwcGx5TWFwKSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vQSByZWd1bGFyIG1vZHVsZS4KICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZShuYW1lLCBwYXJlbnROYW1lLCBhcHBseU1hcCk7CgogICAgICAgICAgICAgICAgICAgIC8vTm9ybWFsaXplZCBuYW1lIG1heSBiZSBhIHBsdWdpbiBJRCBkdWUgdG8gbWFwIGNvbmZpZwogICAgICAgICAgICAgICAgICAgIC8vYXBwbGljYXRpb24gaW4gbm9ybWFsaXplLiBUaGUgbWFwIGNvbmZpZyB2YWx1ZXMgbXVzdAogICAgICAgICAgICAgICAgICAgIC8vYWxyZWFkeSBiZSBub3JtYWxpemVkLCBzbyBkbyBub3QgbmVlZCB0byByZWRvIHRoYXQgcGFydC4KICAgICAgICAgICAgICAgICAgICBuYW1lUGFydHMgPSBzcGxpdFByZWZpeChub3JtYWxpemVkTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gbmFtZVBhcnRzWzBdOwogICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWROYW1lID0gbmFtZVBhcnRzWzFdOwogICAgICAgICAgICAgICAgICAgIGlzTm9ybWFsaXplZCA9IHRydWU7CgogICAgICAgICAgICAgICAgICAgIHVybCA9IGNvbnRleHQubmFtZVRvVXJsKG5vcm1hbGl6ZWROYW1lKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9JZiB0aGUgaWQgaXMgYSBwbHVnaW4gaWQgdGhhdCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBpZiBpdCBuZWVkcwogICAgICAgICAgICAvL25vcm1hbGl6YXRpb24sIHN0YW1wIGl0IHdpdGggYSB1bmlxdWUgSUQgc28gdHdvIG1hdGNoaW5nIHJlbGF0aXZlCiAgICAgICAgICAgIC8vaWRzIHRoYXQgbWF5IGNvbmZsaWN0IGNhbiBiZSBzZXBhcmF0ZS4KICAgICAgICAgICAgc3VmZml4ID0gcHJlZml4ICYmICFwbHVnaW5Nb2R1bGUgJiYgIWlzTm9ybWFsaXplZCA/CiAgICAgICAgICAgICAgICAgICAgICdfdW5ub3JtYWxpemVkJyArICh1bm5vcm1hbGl6ZWRDb3VudGVyICs9IDEpIDoKICAgICAgICAgICAgICAgICAgICAgJyc7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgcHJlZml4OiBwcmVmaXgsCiAgICAgICAgICAgICAgICBuYW1lOiBub3JtYWxpemVkTmFtZSwKICAgICAgICAgICAgICAgIHBhcmVudE1hcDogcGFyZW50TW9kdWxlTWFwLAogICAgICAgICAgICAgICAgdW5ub3JtYWxpemVkOiAhIXN1ZmZpeCwKICAgICAgICAgICAgICAgIHVybDogdXJsLAogICAgICAgICAgICAgICAgb3JpZ2luYWxOYW1lOiBvcmlnaW5hbE5hbWUsCiAgICAgICAgICAgICAgICBpc0RlZmluZTogaXNEZWZpbmUsCiAgICAgICAgICAgICAgICBpZDogKHByZWZpeCA/CiAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCArICchJyArIG5vcm1hbGl6ZWROYW1lIDoKICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE5hbWUpICsgc3VmZml4CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBnZXRNb2R1bGUoZGVwTWFwKSB7CiAgICAgICAgICAgIHZhciBpZCA9IGRlcE1hcC5pZCwKICAgICAgICAgICAgICAgIG1vZCA9IGdldE93bihyZWdpc3RyeSwgaWQpOwoKICAgICAgICAgICAgaWYgKCFtb2QpIHsKICAgICAgICAgICAgICAgIG1vZCA9IHJlZ2lzdHJ5W2lkXSA9IG5ldyBjb250ZXh0Lk1vZHVsZShkZXBNYXApOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gbW9kOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gb24oZGVwTWFwLCBuYW1lLCBmbikgewogICAgICAgICAgICB2YXIgaWQgPSBkZXBNYXAuaWQsCiAgICAgICAgICAgICAgICBtb2QgPSBnZXRPd24ocmVnaXN0cnksIGlkKTsKCiAgICAgICAgICAgIGlmIChoYXNQcm9wKGRlZmluZWQsIGlkKSAmJgogICAgICAgICAgICAgICAgICAgICghbW9kIHx8IG1vZC5kZWZpbmVFbWl0Q29tcGxldGUpKSB7CiAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2RlZmluZWQnKSB7CiAgICAgICAgICAgICAgICAgICAgZm4oZGVmaW5lZFtpZF0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbW9kID0gZ2V0TW9kdWxlKGRlcE1hcCk7CiAgICAgICAgICAgICAgICBpZiAobW9kLmVycm9yICYmIG5hbWUgPT09ICdlcnJvcicpIHsKICAgICAgICAgICAgICAgICAgICBmbihtb2QuZXJyb3IpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBtb2Qub24obmFtZSwgZm4pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBvbkVycm9yKGVyciwgZXJyYmFjaykgewogICAgICAgICAgICB2YXIgaWRzID0gZXJyLnJlcXVpcmVNb2R1bGVzLAogICAgICAgICAgICAgICAgbm90aWZpZWQgPSBmYWxzZTsKCiAgICAgICAgICAgIGlmIChlcnJiYWNrKSB7CiAgICAgICAgICAgICAgICBlcnJiYWNrKGVycik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlYWNoKGlkcywgZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG1vZCA9IGdldE93bihyZWdpc3RyeSwgaWQpOwogICAgICAgICAgICAgICAgICAgIGlmIChtb2QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9TZXQgZXJyb3Igb24gbW9kdWxlLCBzbyBpdCBza2lwcyB0aW1lb3V0IGNoZWNrcy4KICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmVycm9yID0gZXJyOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kLmV2ZW50cy5lcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIGlmICghbm90aWZpZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXEub25FcnJvcihlcnIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBJbnRlcm5hbCBtZXRob2QgdG8gdHJhbnNmZXIgZ2xvYmFsUXVldWUgaXRlbXMgdG8gdGhpcyBjb250ZXh0J3MKICAgICAgICAgKiBkZWZRdWV1ZS4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiB0YWtlR2xvYmFsUXVldWUoKSB7CiAgICAgICAgICAgIC8vUHVzaCBhbGwgdGhlIGdsb2JhbERlZlF1ZXVlIGl0ZW1zIGludG8gdGhlIGNvbnRleHQncyBkZWZRdWV1ZQogICAgICAgICAgICBpZiAoZ2xvYmFsRGVmUXVldWUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBlYWNoKGdsb2JhbERlZlF1ZXVlLCBmdW5jdGlvbihxdWV1ZUl0ZW0pIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaWQgPSBxdWV1ZUl0ZW1bMF07CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpZCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5kZWZRdWV1ZU1hcFtpZF0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkZWZRdWV1ZS5wdXNoKHF1ZXVlSXRlbSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGdsb2JhbERlZlF1ZXVlID0gW107CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGhhbmRsZXJzID0gewogICAgICAgICAgICAncmVxdWlyZSc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIGlmIChtb2QucmVxdWlyZSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBtb2QucmVxdWlyZTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChtb2QucmVxdWlyZSA9IGNvbnRleHQubWFrZVJlcXVpcmUobW9kLm1hcCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICAnZXhwb3J0cyc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIG1vZC51c2luZ0V4cG9ydHMgPSB0cnVlOwogICAgICAgICAgICAgICAgaWYgKG1vZC5tYXAuaXNEZWZpbmUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAobW9kLmV4cG9ydHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChkZWZpbmVkW21vZC5tYXAuaWRdID0gbW9kLmV4cG9ydHMpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAobW9kLmV4cG9ydHMgPSBkZWZpbmVkW21vZC5tYXAuaWRdID0ge30pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ21vZHVsZSc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIGlmIChtb2QubW9kdWxlKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vZC5tb2R1bGU7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAobW9kLm1vZHVsZSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG1vZC5tYXAuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIHVyaTogbW9kLm1hcC51cmwsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldE93bihjb25maWcuY29uZmlnLCBtb2QubWFwLmlkKSB8fCB7fTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0czogbW9kLmV4cG9ydHMgfHwgKG1vZC5leHBvcnRzID0ge30pCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBmdW5jdGlvbiBjbGVhblJlZ2lzdHJ5KGlkKSB7CiAgICAgICAgICAgIC8vQ2xlYW4gdXAgbWFjaGluZXJ5IHVzZWQgZm9yIHdhaXRpbmcgbW9kdWxlcy4KICAgICAgICAgICAgZGVsZXRlIHJlZ2lzdHJ5W2lkXTsKICAgICAgICAgICAgZGVsZXRlIGVuYWJsZWRSZWdpc3RyeVtpZF07CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBicmVha0N5Y2xlKG1vZCwgdHJhY2VkLCBwcm9jZXNzZWQpIHsKICAgICAgICAgICAgdmFyIGlkID0gbW9kLm1hcC5pZDsKCiAgICAgICAgICAgIGlmIChtb2QuZXJyb3IpIHsKICAgICAgICAgICAgICAgIG1vZC5lbWl0KCdlcnJvcicsIG1vZC5lcnJvcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0cmFjZWRbaWRdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGVhY2gobW9kLmRlcE1hcHMsIGZ1bmN0aW9uIChkZXBNYXAsIGkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVwSWQgPSBkZXBNYXAuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcCA9IGdldE93bihyZWdpc3RyeSwgZGVwSWQpOwoKICAgICAgICAgICAgICAgICAgICAvL09ubHkgZm9yY2UgdGhpbmdzIHRoYXQgaGF2ZSBub3QgY29tcGxldGVkCiAgICAgICAgICAgICAgICAgICAgLy9iZWluZyBkZWZpbmVkLCBzbyBzdGlsbCBpbiB0aGUgcmVnaXN0cnksCiAgICAgICAgICAgICAgICAgICAgLy9hbmQgb25seSBpZiBpdCBoYXMgbm90IGJlZW4gbWF0Y2hlZCB1cAogICAgICAgICAgICAgICAgICAgIC8vaW4gdGhlIG1vZHVsZSBhbHJlYWR5LgogICAgICAgICAgICAgICAgICAgIGlmIChkZXAgJiYgIW1vZC5kZXBNYXRjaGVkW2ldICYmICFwcm9jZXNzZWRbZGVwSWRdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRPd24odHJhY2VkLCBkZXBJZCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZC5kZWZpbmVEZXAoaSwgZGVmaW5lZFtkZXBJZF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmNoZWNrKCk7IC8vcGFzcyBmYWxzZT8KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrQ3ljbGUoZGVwLCB0cmFjZWQsIHByb2Nlc3NlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHByb2Nlc3NlZFtpZF0gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBjaGVja0xvYWRlZCgpIHsKICAgICAgICAgICAgdmFyIGVyciwgdXNpbmdQYXRoRmFsbGJhY2ssCiAgICAgICAgICAgICAgICB3YWl0SW50ZXJ2YWwgPSBjb25maWcud2FpdFNlY29uZHMgKiAxMDAwLAogICAgICAgICAgICAgICAgLy9JdCBpcyBwb3NzaWJsZSB0byBkaXNhYmxlIHRoZSB3YWl0IGludGVydmFsIGJ5IHVzaW5nIHdhaXRTZWNvbmRzIG9mIDAuCiAgICAgICAgICAgICAgICBleHBpcmVkID0gd2FpdEludGVydmFsICYmIChjb250ZXh0LnN0YXJ0VGltZSArIHdhaXRJbnRlcnZhbCkgPCBuZXcgRGF0ZSgpLmdldFRpbWUoKSwKICAgICAgICAgICAgICAgIG5vTG9hZHMgPSBbXSwKICAgICAgICAgICAgICAgIHJlcUNhbGxzID0gW10sCiAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSBmYWxzZSwKICAgICAgICAgICAgICAgIG5lZWRDeWNsZUNoZWNrID0gdHJ1ZTsKCiAgICAgICAgICAgIC8vRG8gbm90IGJvdGhlciBpZiB0aGlzIGNhbGwgd2FzIGEgcmVzdWx0IG9mIGEgY3ljbGUgYnJlYWsuCiAgICAgICAgICAgIGlmIChpbkNoZWNrTG9hZGVkKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGluQ2hlY2tMb2FkZWQgPSB0cnVlOwoKICAgICAgICAgICAgLy9GaWd1cmUgb3V0IHRoZSBzdGF0ZSBvZiBhbGwgdGhlIG1vZHVsZXMuCiAgICAgICAgICAgIGVhY2hQcm9wKGVuYWJsZWRSZWdpc3RyeSwgZnVuY3Rpb24gKG1vZCkgewogICAgICAgICAgICAgICAgdmFyIG1hcCA9IG1vZC5tYXAsCiAgICAgICAgICAgICAgICAgICAgbW9kSWQgPSBtYXAuaWQ7CgogICAgICAgICAgICAgICAgLy9Ta2lwIHRoaW5ncyB0aGF0IGFyZSBub3QgZW5hYmxlZCBvciBpbiBlcnJvciBzdGF0ZS4KICAgICAgICAgICAgICAgIGlmICghbW9kLmVuYWJsZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFtYXAuaXNEZWZpbmUpIHsKICAgICAgICAgICAgICAgICAgICByZXFDYWxscy5wdXNoKG1vZCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFtb2QuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAvL0lmIHRoZSBtb2R1bGUgc2hvdWxkIGJlIGV4ZWN1dGVkLCBhbmQgaXQgaGFzIG5vdAogICAgICAgICAgICAgICAgICAgIC8vYmVlbiBpbml0ZWQgYW5kIHRpbWUgaXMgdXAsIHJlbWVtYmVyIGl0LgogICAgICAgICAgICAgICAgICAgIGlmICghbW9kLmluaXRlZCAmJiBleHBpcmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNQYXRoRmFsbGJhY2sobW9kSWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ1BhdGhGYWxsYmFjayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9Mb2Fkcy5wdXNoKG1vZElkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVNjcmlwdChtb2RJZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFtb2QuaW5pdGVkICYmIG1vZC5mZXRjaGVkICYmIG1hcC5pc0RlZmluZSkgewogICAgICAgICAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1hcC5wcmVmaXgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTm8gcmVhc29uIHRvIGtlZXAgbG9va2luZyBmb3IgdW5maW5pc2hlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2FkaW5nLiBJZiB0aGUgb25seSBzdGlsbExvYWRpbmcgaXMgYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9wbHVnaW4gcmVzb3VyY2UgdGhvdWdoLCBrZWVwIGdvaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9iZWNhdXNlIGl0IG1heSBiZSB0aGF0IGEgcGx1Z2luIHJlc291cmNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lzIHdhaXRpbmcgb24gYSBub24tcGx1Z2luIGN5Y2xlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChuZWVkQ3ljbGVDaGVjayA9IGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBpZiAoZXhwaXJlZCAmJiBub0xvYWRzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgLy9JZiB3YWl0IHRpbWUgZXhwaXJlZCwgdGhyb3cgZXJyb3Igb2YgdW5sb2FkZWQgbW9kdWxlcy4KICAgICAgICAgICAgICAgIGVyciA9IG1ha2VFcnJvcigndGltZW91dCcsICdMb2FkIHRpbWVvdXQgZm9yIG1vZHVsZXM6ICcgKyBub0xvYWRzLCBudWxsLCBub0xvYWRzKTsKICAgICAgICAgICAgICAgIGVyci5jb250ZXh0TmFtZSA9IGNvbnRleHQuY29udGV4dE5hbWU7CiAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihlcnIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL05vdCBleHBpcmVkLCBjaGVjayBmb3IgYSBjeWNsZS4KICAgICAgICAgICAgaWYgKG5lZWRDeWNsZUNoZWNrKSB7CiAgICAgICAgICAgICAgICBlYWNoKHJlcUNhbGxzLCBmdW5jdGlvbiAobW9kKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWtDeWNsZShtb2QsIHt9LCB7fSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9JZiBzdGlsbCB3YWl0aW5nIG9uIGxvYWRzLCBhbmQgdGhlIHdhaXRpbmcgbG9hZCBpcyBzb21ldGhpbmcKICAgICAgICAgICAgLy9vdGhlciB0aGFuIGEgcGx1Z2luIHJlc291cmNlLCBvciB0aGVyZSBhcmUgc3RpbGwgb3V0c3RhbmRpbmcKICAgICAgICAgICAgLy9zY3JpcHRzLCB0aGVuIGp1c3QgdHJ5IGJhY2sgbGF0ZXIuCiAgICAgICAgICAgIGlmICgoIWV4cGlyZWQgfHwgdXNpbmdQYXRoRmFsbGJhY2spICYmIHN0aWxsTG9hZGluZykgewogICAgICAgICAgICAgICAgLy9Tb21ldGhpbmcgaXMgc3RpbGwgd2FpdGluZyB0byBsb2FkLiBXYWl0IGZvciBpdCwgYnV0IG9ubHkKICAgICAgICAgICAgICAgIC8vaWYgYSB0aW1lb3V0IGlzIG5vdCBhbHJlYWR5IGluIGVmZmVjdC4KICAgICAgICAgICAgICAgIGlmICgoaXNCcm93c2VyIHx8IGlzV2ViV29ya2VyKSAmJiAhY2hlY2tMb2FkZWRUaW1lb3V0SWQpIHsKICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZFRpbWVvdXRJZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgfSwgNTApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpbkNoZWNrTG9hZGVkID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBNb2R1bGUgPSBmdW5jdGlvbiAobWFwKSB7CiAgICAgICAgICAgIHRoaXMuZXZlbnRzID0gZ2V0T3duKHVuZGVmRXZlbnRzLCBtYXAuaWQpIHx8IHt9OwogICAgICAgICAgICB0aGlzLm1hcCA9IG1hcDsKICAgICAgICAgICAgdGhpcy5zaGltID0gZ2V0T3duKGNvbmZpZy5zaGltLCBtYXAuaWQpOwogICAgICAgICAgICB0aGlzLmRlcEV4cG9ydHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5kZXBNYXBzID0gW107CiAgICAgICAgICAgIHRoaXMuZGVwTWF0Y2hlZCA9IFtdOwogICAgICAgICAgICB0aGlzLnBsdWdpbk1hcHMgPSB7fTsKICAgICAgICAgICAgdGhpcy5kZXBDb3VudCA9IDA7CgogICAgICAgICAgICAvKiB0aGlzLmV4cG9ydHMgdGhpcy5mYWN0b3J5CiAgICAgICAgICAgICAgIHRoaXMuZGVwTWFwcyA9IFtdLAogICAgICAgICAgICAgICB0aGlzLmVuYWJsZWQsIHRoaXMuZmV0Y2hlZAogICAgICAgICAgICAqLwogICAgICAgIH07CgogICAgICAgIE1vZHVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgIGluaXQ6IGZ1bmN0aW9uIChkZXBNYXBzLCBmYWN0b3J5LCBlcnJiYWNrLCBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKCiAgICAgICAgICAgICAgICAvL0RvIG5vdCBkbyBtb3JlIGluaXRzIGlmIGFscmVhZHkgZG9uZS4gQ2FuIGhhcHBlbiBpZiB0aGVyZQogICAgICAgICAgICAgICAgLy9hcmUgbXVsdGlwbGUgZGVmaW5lIGNhbGxzIGZvciB0aGUgc2FtZSBtb2R1bGUuIFRoYXQgaXMgbm90CiAgICAgICAgICAgICAgICAvL2Egbm9ybWFsLCBjb21tb24gY2FzZSwgYnV0IGl0IGlzIGFsc28gbm90IHVuZXhwZWN0ZWQuCiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbml0ZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdGhpcy5mYWN0b3J5ID0gZmFjdG9yeTsKCiAgICAgICAgICAgICAgICBpZiAoZXJyYmFjaykgewogICAgICAgICAgICAgICAgICAgIC8vUmVnaXN0ZXIgZm9yIGVycm9ycyBvbiB0aGlzIG1vZHVsZS4KICAgICAgICAgICAgICAgICAgICB0aGlzLm9uKCdlcnJvcicsIGVycmJhY2spOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmV2ZW50cy5lcnJvcikgewogICAgICAgICAgICAgICAgICAgIC8vSWYgbm8gZXJyYmFjayBhbHJlYWR5LCBidXQgdGhlcmUgYXJlIGVycm9yIGxpc3RlbmVycwogICAgICAgICAgICAgICAgICAgIC8vb24gdGhpcyBtb2R1bGUsIHNldCB1cCBhbiBlcnJiYWNrIHRvIHBhc3MgdG8gdGhlIGRlcHMuCiAgICAgICAgICAgICAgICAgICAgZXJyYmFjayA9IGJpbmQodGhpcywgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL0RvIGEgY29weSBvZiB0aGUgZGVwZW5kZW5jeSBhcnJheSwgc28gdGhhdAogICAgICAgICAgICAgICAgLy9zb3VyY2UgaW5wdXRzIGFyZSBub3QgbW9kaWZpZWQuIEZvciBleGFtcGxlCiAgICAgICAgICAgICAgICAvLyJzaGltIiBkZXBzIGFyZSBwYXNzZWQgaW4gaGVyZSBkaXJlY3RseSwgYW5kCiAgICAgICAgICAgICAgICAvL2RvaW5nIGEgZGlyZWN0IG1vZGlmaWNhdGlvbiBvZiB0aGUgZGVwTWFwcyBhcnJheQogICAgICAgICAgICAgICAgLy93b3VsZCBhZmZlY3QgdGhhdCBjb25maWcuCiAgICAgICAgICAgICAgICB0aGlzLmRlcE1hcHMgPSBkZXBNYXBzICYmIGRlcE1hcHMuc2xpY2UoMCk7CgogICAgICAgICAgICAgICAgdGhpcy5lcnJiYWNrID0gZXJyYmFjazsKCiAgICAgICAgICAgICAgICAvL0luZGljYXRlIHRoaXMgbW9kdWxlIGhhcyBiZSBpbml0aWFsaXplZAogICAgICAgICAgICAgICAgdGhpcy5pbml0ZWQgPSB0cnVlOwoKICAgICAgICAgICAgICAgIHRoaXMuaWdub3JlID0gb3B0aW9ucy5pZ25vcmU7CgogICAgICAgICAgICAgICAgLy9Db3VsZCBoYXZlIG9wdGlvbiB0byBpbml0IHRoaXMgbW9kdWxlIGluIGVuYWJsZWQgbW9kZSwKICAgICAgICAgICAgICAgIC8vb3IgY291bGQgaGF2ZSBiZWVuIHByZXZpb3VzbHkgbWFya2VkIGFzIGVuYWJsZWQuIEhvd2V2ZXIsCiAgICAgICAgICAgICAgICAvL3RoZSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB1bnRpbCBpbml0IGlzIGNhbGxlZC4gU28KICAgICAgICAgICAgICAgIC8vaWYgZW5hYmxlZCBwcmV2aW91c2x5LCBub3cgdHJpZ2dlciBkZXBlbmRlbmNpZXMgYXMgZW5hYmxlZC4KICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmVuYWJsZWQgfHwgdGhpcy5lbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgLy9FbmFibGUgdGhpcyBtb2R1bGUgYW5kIGRlcGVuZGVuY2llcy4KICAgICAgICAgICAgICAgICAgICAvL1dpbGwgY2FsbCB0aGlzLmNoZWNrKCkKICAgICAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZSgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBkZWZpbmVEZXA6IGZ1bmN0aW9uIChpLCBkZXBFeHBvcnRzKSB7CiAgICAgICAgICAgICAgICAvL0JlY2F1c2Ugb2YgY3ljbGVzLCBkZWZpbmVkIGNhbGxiYWNrIGZvciBhIGdpdmVuCiAgICAgICAgICAgICAgICAvL2V4cG9ydCBjYW4gYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlLgogICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRlcE1hdGNoZWRbaV0pIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcE1hdGNoZWRbaV0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVwQ291bnQgLT0gMTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcEV4cG9ydHNbaV0gPSBkZXBFeHBvcnRzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgZmV0Y2g6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmZldGNoZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmZldGNoZWQgPSB0cnVlOwoKICAgICAgICAgICAgICAgIGNvbnRleHQuc3RhcnRUaW1lID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCiAgICAgICAgICAgICAgICB2YXIgbWFwID0gdGhpcy5tYXA7CgogICAgICAgICAgICAgICAgLy9JZiB0aGUgbWFuYWdlciBpcyBmb3IgYSBwbHVnaW4gbWFuYWdlZCByZXNvdXJjZSwKICAgICAgICAgICAgICAgIC8vYXNrIHRoZSBwbHVnaW4gdG8gbG9hZCBpdCBub3cuCiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaGltKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5tYWtlUmVxdWlyZSh0aGlzLm1hcCwgewogICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVCdWlsZENhbGxiYWNrOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgfSkodGhpcy5zaGltLmRlcHMgfHwgW10sIGJpbmQodGhpcywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwLnByZWZpeCA/IHRoaXMuY2FsbFBsdWdpbigpIDogdGhpcy5sb2FkKCk7CiAgICAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL1JlZ3VsYXIgZGVwZW5kZW5jeS4KICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwLnByZWZpeCA/IHRoaXMuY2FsbFBsdWdpbigpIDogdGhpcy5sb2FkKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgdXJsID0gdGhpcy5tYXAudXJsOwoKICAgICAgICAgICAgICAgIC8vUmVndWxhciBkZXBlbmRlbmN5LgogICAgICAgICAgICAgICAgaWYgKCF1cmxGZXRjaGVkW3VybF0pIHsKICAgICAgICAgICAgICAgICAgICB1cmxGZXRjaGVkW3VybF0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9hZCh0aGlzLm1hcC5pZCwgdXJsKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDaGVja3MgaWYgdGhlIG1vZHVsZSBpcyByZWFkeSB0byBkZWZpbmUgaXRzZWxmLCBhbmQgaWYgc28sCiAgICAgICAgICAgICAqIGRlZmluZSBpdC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGNoZWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCB8fCB0aGlzLmVuYWJsaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHZhciBlcnIsIGNqc01vZHVsZSwKICAgICAgICAgICAgICAgICAgICBpZCA9IHRoaXMubWFwLmlkLAogICAgICAgICAgICAgICAgICAgIGRlcEV4cG9ydHMgPSB0aGlzLmRlcEV4cG9ydHMsCiAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IHRoaXMuZXhwb3J0cywKICAgICAgICAgICAgICAgICAgICBmYWN0b3J5ID0gdGhpcy5mYWN0b3J5OwoKICAgICAgICAgICAgICAgIGlmICghdGhpcy5pbml0ZWQpIHsKICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGZldGNoIGlmIG5vdCBhbHJlYWR5IGluIHRoZSBkZWZRdWV1ZS4KICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Byb3AoY29udGV4dC5kZWZRdWV1ZU1hcCwgaWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2goKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgdGhpcy5lcnJvcik7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmRlZmluaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgLy9UaGUgZmFjdG9yeSBjb3VsZCB0cmlnZ2VyIGFub3RoZXIgcmVxdWlyZSBjYWxsCiAgICAgICAgICAgICAgICAgICAgLy90aGF0IHdvdWxkIHJlc3VsdCBpbiBjaGVja2luZyB0aGlzIG1vZHVsZSB0bwogICAgICAgICAgICAgICAgICAgIC8vZGVmaW5lIGl0c2VsZiBhZ2Fpbi4gSWYgYWxyZWFkeSBpbiB0aGUgcHJvY2VzcwogICAgICAgICAgICAgICAgICAgIC8vb2YgZG9pbmcgdGhhdCwgc2tpcCB0aGlzIHdvcmsuCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZpbmluZyA9IHRydWU7CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlcENvdW50IDwgMSAmJiAhdGhpcy5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKGZhY3RvcnkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0lmIHRoZXJlIGlzIGFuIGVycm9yIGxpc3RlbmVyLCBmYXZvciBwYXNzaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RvIHRoYXQgaW5zdGVhZCBvZiB0aHJvd2luZyBhbiBlcnJvci4gSG93ZXZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vb25seSBkbyBpdCBmb3IgZGVmaW5lKCknZCAgbW9kdWxlcy4gcmVxdWlyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lcnJiYWNrcyBzaG91bGQgbm90IGJlIGNhbGxlZCBmb3IgZmFpbHVyZXMgaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhlaXIgY2FsbGJhY2tzICgjNjk5KS4gSG93ZXZlciBpZiBhIGdsb2JhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9vbkVycm9yIGlzIHNldCwgdXNlIHRoYXQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHRoaXMuZXZlbnRzLmVycm9yICYmIHRoaXMubWFwLmlzRGVmaW5lKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS5vbkVycm9yICE9PSBkZWZhdWx0T25FcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSBjb250ZXh0LmV4ZWNDYihpZCwgZmFjdG9yeSwgZGVwRXhwb3J0cywgZXhwb3J0cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIgPSBlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IGNvbnRleHQuZXhlY0NiKGlkLCBmYWN0b3J5LCBkZXBFeHBvcnRzLCBleHBvcnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYXZvciByZXR1cm4gdmFsdWUgb3ZlciBleHBvcnRzLiBJZiBub2RlL2NqcyBpbiBwbGF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3aWxsIG5vdCBoYXZlIGEgcmV0dXJuIHZhbHVlIGFueXdheS4gRmF2b3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vZHVsZS5leHBvcnRzIGFzc2lnbm1lbnQgb3ZlciBleHBvcnRzIG9iamVjdC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcC5pc0RlZmluZSAmJiBleHBvcnRzID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjanNNb2R1bGUgPSB0aGlzLm1vZHVsZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2pzTW9kdWxlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSBjanNNb2R1bGUuZXhwb3J0czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNpbmdFeHBvcnRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZXhwb3J0cyBhbHJlYWR5IHNldCB0aGUgZGVmaW5lZCB2YWx1ZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IHRoaXMuZXhwb3J0czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyci5yZXF1aXJlTWFwID0gdGhpcy5tYXA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyLnJlcXVpcmVNb2R1bGVzID0gdGhpcy5tYXAuaXNEZWZpbmUgPyBbdGhpcy5tYXAuaWRdIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIucmVxdWlyZVR5cGUgPSB0aGlzLm1hcC5pc0RlZmluZSA/ICdkZWZpbmUnIDogJ3JlcXVpcmUnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbkVycm9yKCh0aGlzLmVycm9yID0gZXJyKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9KdXN0IGEgbGl0ZXJhbCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IGZhY3Rvcnk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0cyA9IGV4cG9ydHM7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXAuaXNEZWZpbmUgJiYgIXRoaXMuaWdub3JlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVkW2lkXSA9IGV4cG9ydHM7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcS5vblJlc291cmNlTG9hZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNMb2FkTWFwcyA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVhY2godGhpcy5kZXBNYXBzLCBmdW5jdGlvbiAoZGVwTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc0xvYWRNYXBzLnB1c2goZGVwTWFwLm5vcm1hbGl6ZWRNYXAgfHwgZGVwTWFwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEub25SZXNvdXJjZUxvYWQoY29udGV4dCwgdGhpcy5tYXAsIHJlc0xvYWRNYXBzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9DbGVhbiB1cAogICAgICAgICAgICAgICAgICAgICAgICBjbGVhblJlZ2lzdHJ5KGlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvL0ZpbmlzaGVkIHRoZSBkZWZpbmUgc3RhZ2UuIEFsbG93IGNhbGxpbmcgY2hlY2sgYWdhaW4KICAgICAgICAgICAgICAgICAgICAvL3RvIGFsbG93IGRlZmluZSBub3RpZmljYXRpb25zIGJlbG93IGluIHRoZSBjYXNlIG9mIGEKICAgICAgICAgICAgICAgICAgICAvL2N5Y2xlLgogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5pbmcgPSBmYWxzZTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGVmaW5lZCAmJiAhdGhpcy5kZWZpbmVFbWl0dGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lRW1pdHRlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdCgnZGVmaW5lZCcsIHRoaXMuZXhwb3J0cyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lRW1pdENvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgY2FsbFBsdWdpbjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIG1hcCA9IHRoaXMubWFwLAogICAgICAgICAgICAgICAgICAgIGlkID0gbWFwLmlkLAogICAgICAgICAgICAgICAgICAgIC8vTWFwIGFscmVhZHkgbm9ybWFsaXplZCB0aGUgcHJlZml4LgogICAgICAgICAgICAgICAgICAgIHBsdWdpbk1hcCA9IG1ha2VNb2R1bGVNYXAobWFwLnByZWZpeCk7CgogICAgICAgICAgICAgICAgLy9NYXJrIHRoaXMgYXMgYSBkZXBlbmRlbmN5IGZvciB0aGlzIHBsdWdpbiwgc28gaXQKICAgICAgICAgICAgICAgIC8vY2FuIGJlIHRyYWNlZCBmb3IgY3ljbGVzLgogICAgICAgICAgICAgICAgdGhpcy5kZXBNYXBzLnB1c2gocGx1Z2luTWFwKTsKCiAgICAgICAgICAgICAgICBvbihwbHVnaW5NYXAsICdkZWZpbmVkJywgYmluZCh0aGlzLCBmdW5jdGlvbiAocGx1Z2luKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGxvYWQsIG5vcm1hbGl6ZWRNYXAsIG5vcm1hbGl6ZWRNb2QsCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1bmRsZUlkID0gZ2V0T3duKGJ1bmRsZXNNYXAsIHRoaXMubWFwLmlkKSwKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHRoaXMubWFwLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5hbWUgPSB0aGlzLm1hcC5wYXJlbnRNYXAgPyB0aGlzLm1hcC5wYXJlbnRNYXAubmFtZSA6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsUmVxdWlyZSA9IGNvbnRleHQubWFrZVJlcXVpcmUobWFwLnBhcmVudE1hcCwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlQnVpbGRDYWxsYmFjazogdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgLy9JZiBjdXJyZW50IG1hcCBpcyBub3Qgbm9ybWFsaXplZCwgd2FpdCBmb3IgdGhhdAogICAgICAgICAgICAgICAgICAgIC8vbm9ybWFsaXplZCBuYW1lIHRvIGxvYWQgaW5zdGVhZCBvZiBjb250aW51aW5nLgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcC51bm5vcm1hbGl6ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9Ob3JtYWxpemUgdGhlIElEIGlmIHRoZSBwbHVnaW4gYWxsb3dzIGl0LgogICAgICAgICAgICAgICAgICAgICAgICBpZiAocGx1Z2luLm5vcm1hbGl6ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHBsdWdpbi5ub3JtYWxpemUobmFtZSwgZnVuY3Rpb24gKG5hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplKG5hbWUsIHBhcmVudE5hbWUsIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vcHJlZml4IGFuZCBuYW1lIHNob3VsZCBhbHJlYWR5IGJlIG5vcm1hbGl6ZWQsIG5vIG5lZWQKICAgICAgICAgICAgICAgICAgICAgICAgLy9mb3IgYXBwbHlpbmcgbWFwIGNvbmZpZyBhZ2FpbiBlaXRoZXIuCiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRNYXAgPSBtYWtlTW9kdWxlTWFwKG1hcC5wcmVmaXggKyAnIScgKyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcC5wYXJlbnRNYXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICBvbihub3JtYWxpemVkTWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZmluZWQnLCBiaW5kKHRoaXMsIGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFwLm5vcm1hbGl6ZWRNYXAgPSBub3JtYWxpemVkTWFwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdChbXSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdmFsdWU7IH0sIG51bGwsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CgogICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTW9kID0gZ2V0T3duKHJlZ2lzdHJ5LCBub3JtYWxpemVkTWFwLmlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRNb2QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTWFyayB0aGlzIGFzIGEgZGVwZW5kZW5jeSBmb3IgdGhpcyBwbHVnaW4sIHNvIGl0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NhbiBiZSB0cmFjZWQgZm9yIGN5Y2xlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVwTWFwcy5wdXNoKG5vcm1hbGl6ZWRNYXApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmV2ZW50cy5lcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRNb2Qub24oJ2Vycm9yJywgYmluZCh0aGlzLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRNb2QuZW5hYmxlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vSWYgYSBwYXRocyBjb25maWcsIHRoZW4ganVzdCBsb2FkIHRoYXQgZmlsZSBpbnN0ZWFkIHRvCiAgICAgICAgICAgICAgICAgICAgLy9yZXNvbHZlIHRoZSBwbHVnaW4sIGFzIGl0IGlzIGJ1aWx0IGludG8gdGhhdCBwYXRocyBsYXllci4KICAgICAgICAgICAgICAgICAgICBpZiAoYnVuZGxlSWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXAudXJsID0gY29udGV4dC5uYW1lVG9VcmwoYnVuZGxlSWQpOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgbG9hZCA9IGJpbmQodGhpcywgZnVuY3Rpb24gKHZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdChbXSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdmFsdWU7IH0sIG51bGwsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIGxvYWQuZXJyb3IgPSBiaW5kKHRoaXMsIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyOwogICAgICAgICAgICAgICAgICAgICAgICBlcnIucmVxdWlyZU1vZHVsZXMgPSBbaWRdOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9SZW1vdmUgdGVtcCB1bm5vcm1hbGl6ZWQgbW9kdWxlcyBmb3IgdGhpcyBtb2R1bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vc2luY2UgdGhleSB3aWxsIG5ldmVyIGJlIHJlc29sdmVkIG90aGVyd2lzZSBub3cuCiAgICAgICAgICAgICAgICAgICAgICAgIGVhY2hQcm9wKHJlZ2lzdHJ5LCBmdW5jdGlvbiAobW9kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kLm1hcC5pZC5pbmRleE9mKGlkICsgJ191bm5vcm1hbGl6ZWQnKSA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFuUmVnaXN0cnkobW9kLm1hcC5pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgb25FcnJvcihlcnIpOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAvL0FsbG93IHBsdWdpbnMgdG8gbG9hZCBvdGhlciBjb2RlIHdpdGhvdXQgaGF2aW5nIHRvIGtub3cgdGhlCiAgICAgICAgICAgICAgICAgICAgLy9jb250ZXh0IG9yIGhvdyB0byAnY29tcGxldGUnIHRoZSBsb2FkLgogICAgICAgICAgICAgICAgICAgIGxvYWQuZnJvbVRleHQgPSBiaW5kKHRoaXMsIGZ1bmN0aW9uICh0ZXh0LCB0ZXh0QWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qanNsaW50IGV2aWw6IHRydWUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1vZHVsZU5hbWUgPSBtYXAubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU1hcCA9IG1ha2VNb2R1bGVNYXAobW9kdWxlTmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNJbnRlcmFjdGl2ZSA9IHVzZUludGVyYWN0aXZlOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9BcyBvZiAyLjEuMCwgc3VwcG9ydCBqdXN0IHBhc3NpbmcgdGhlIHRleHQsIHRvIHJlaW5mb3JjZQogICAgICAgICAgICAgICAgICAgICAgICAvL2Zyb21UZXh0IG9ubHkgYmVpbmcgY2FsbGVkIG9uY2UgcGVyIHJlc291cmNlLiBTdGlsbAogICAgICAgICAgICAgICAgICAgICAgICAvL3N1cHBvcnQgb2xkIHN0eWxlIG9mIHBhc3NpbmcgbW9kdWxlTmFtZSBidXQgZGlzY2FyZAogICAgICAgICAgICAgICAgICAgICAgICAvL3RoYXQgbW9kdWxlTmFtZSBpbiBmYXZvciBvZiB0aGUgaW50ZXJuYWwgcmVmLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4dEFsdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IHRleHRBbHQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vVHVybiBvZmYgaW50ZXJhY3RpdmUgc2NyaXB0IG1hdGNoaW5nIGZvciBJRSBmb3IgYW55IGRlZmluZQogICAgICAgICAgICAgICAgICAgICAgICAvL2NhbGxzIGluIHRoZSB0ZXh0LCB0aGVuIHR1cm4gaXQgYmFjayBvbiBhdCB0aGUgZW5kLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzSW50ZXJhY3RpdmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUludGVyYWN0aXZlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vUHJpbWUgdGhlIHN5c3RlbSBieSBjcmVhdGluZyBhIG1vZHVsZSBpbnN0YW5jZSBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgLy9pdC4KICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TW9kdWxlKG1vZHVsZU1hcCk7CgogICAgICAgICAgICAgICAgICAgICAgICAvL1RyYW5zZmVyIGFueSBjb25maWcgdG8gdGhpcyBvdGhlciBtb2R1bGUuCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNQcm9wKGNvbmZpZy5jb25maWcsIGlkKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmNvbmZpZ1ttb2R1bGVOYW1lXSA9IGNvbmZpZy5jb25maWdbaWRdOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLmV4ZWModGV4dCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbkVycm9yKG1ha2VFcnJvcignZnJvbXRleHRldmFsJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zyb21UZXh0IGV2YWwgZm9yICcgKyBpZCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBmYWlsZWQ6ICcgKyBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNJbnRlcmFjdGl2ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlSW50ZXJhY3RpdmUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL01hcmsgdGhpcyBhcyBhIGRlcGVuZGVuY3kgZm9yIHRoZSBwbHVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgLy9yZXNvdXJjZQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcE1hcHMucHVzaChtb2R1bGVNYXApOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9TdXBwb3J0IGFub255bW91cyBtb2R1bGVzLgogICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNvbXBsZXRlTG9hZChtb2R1bGVOYW1lKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vQmluZCB0aGUgdmFsdWUgb2YgdGhhdCBtb2R1bGUgdG8gdGhlIHZhbHVlIGZvciB0aGlzCiAgICAgICAgICAgICAgICAgICAgICAgIC8vcmVzb3VyY2UgSUQuCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsUmVxdWlyZShbbW9kdWxlTmFtZV0sIGxvYWQpOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAvL1VzZSBwYXJlbnROYW1lIGhlcmUgc2luY2UgdGhlIHBsdWdpbidzIG5hbWUgaXMgbm90IHJlbGlhYmxlLAogICAgICAgICAgICAgICAgICAgIC8vY291bGQgYmUgc29tZSB3ZWlyZCBzdHJpbmcgd2l0aCBubyBwYXRoIHRoYXQgYWN0dWFsbHkgd2FudHMgdG8KICAgICAgICAgICAgICAgICAgICAvL3JlZmVyZW5jZSB0aGUgcGFyZW50TmFtZSdzIHBhdGguCiAgICAgICAgICAgICAgICAgICAgcGx1Z2luLmxvYWQobWFwLm5hbWUsIGxvY2FsUmVxdWlyZSwgbG9hZCwgY29uZmlnKTsKICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICBjb250ZXh0LmVuYWJsZShwbHVnaW5NYXAsIHRoaXMpOwogICAgICAgICAgICAgICAgdGhpcy5wbHVnaW5NYXBzW3BsdWdpbk1hcC5pZF0gPSBwbHVnaW5NYXA7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBlbmFibGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGVuYWJsZWRSZWdpc3RyeVt0aGlzLm1hcC5pZF0gPSB0aGlzOwogICAgICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICAvL1NldCBmbGFnIG1lbnRpb25pbmcgdGhhdCB0aGUgbW9kdWxlIGlzIGVuYWJsaW5nLAogICAgICAgICAgICAgICAgLy9zbyB0aGF0IGltbWVkaWF0ZSBjYWxscyB0byB0aGUgZGVmaW5lZCBjYWxsYmFja3MKICAgICAgICAgICAgICAgIC8vZm9yIGRlcGVuZGVuY2llcyBkbyBub3QgdHJpZ2dlciBpbmFkdmVydGVudCBsb2FkCiAgICAgICAgICAgICAgICAvL3dpdGggdGhlIGRlcENvdW50IHN0aWxsIGJlaW5nIHplcm8uCiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsaW5nID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICAvL0VuYWJsZSBlYWNoIGRlcGVuZGVuY3kKICAgICAgICAgICAgICAgIGVhY2godGhpcy5kZXBNYXBzLCBiaW5kKHRoaXMsIGZ1bmN0aW9uIChkZXBNYXAsIGkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaWQsIG1vZCwgaGFuZGxlcjsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkZXBNYXAgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vRGVwZW5kZW5jeSBuZWVkcyB0byBiZSBjb252ZXJ0ZWQgdG8gYSBkZXBNYXAKICAgICAgICAgICAgICAgICAgICAgICAgLy9hbmQgd2lyZWQgdXAgdG8gdGhpcyBtb2R1bGUuCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcE1hcCA9IG1ha2VNb2R1bGVNYXAoZGVwTWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLm1hcC5pc0RlZmluZSA/IHRoaXMubWFwIDogdGhpcy5tYXAucGFyZW50TWFwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5za2lwTWFwKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBNYXBzW2ldID0gZGVwTWFwOwoKICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlciA9IGdldE93bihoYW5kbGVycywgZGVwTWFwLmlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYW5kbGVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcEV4cG9ydHNbaV0gPSBoYW5kbGVyKHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcENvdW50ICs9IDE7CgogICAgICAgICAgICAgICAgICAgICAgICBvbihkZXBNYXAsICdkZWZpbmVkJywgYmluZCh0aGlzLCBmdW5jdGlvbiAoZGVwRXhwb3J0cykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudW5kZWZlZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lRGVwKGksIGRlcEV4cG9ydHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVjaygpOwogICAgICAgICAgICAgICAgICAgICAgICB9KSk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5lcnJiYWNrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbihkZXBNYXAsICdlcnJvcicsIGJpbmQodGhpcywgdGhpcy5lcnJiYWNrKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ldmVudHMuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vIGRpcmVjdCBlcnJiYWNrIG9uIHRoaXMgbW9kdWxlLCBidXQgc29tZXRoaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbHNlIGlzIGxpc3RlbmluZyBmb3IgZXJyb3JzLCBzbyBiZSBzdXJlIHRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9wYWdhdGUgdGhlIGVycm9yIGNvcnJlY3RseS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uKGRlcE1hcCwgJ2Vycm9yJywgYmluZCh0aGlzLCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWQgPSBkZXBNYXAuaWQ7CiAgICAgICAgICAgICAgICAgICAgbW9kID0gcmVnaXN0cnlbaWRdOwoKICAgICAgICAgICAgICAgICAgICAvL1NraXAgc3BlY2lhbCBtb2R1bGVzIGxpa2UgJ3JlcXVpcmUnLCAnZXhwb3J0cycsICdtb2R1bGUnCiAgICAgICAgICAgICAgICAgICAgLy9BbHNvLCBkb24ndCBjYWxsIGVuYWJsZSBpZiBpdCBpcyBhbHJlYWR5IGVuYWJsZWQsCiAgICAgICAgICAgICAgICAgICAgLy9pbXBvcnRhbnQgaW4gY2lyY3VsYXIgZGVwZW5kZW5jeSBjYXNlcy4KICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Byb3AoaGFuZGxlcnMsIGlkKSAmJiBtb2QgJiYgIW1vZC5lbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZW5hYmxlKGRlcE1hcCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkpOwoKICAgICAgICAgICAgICAgIC8vRW5hYmxlIGVhY2ggcGx1Z2luIHRoYXQgaXMgdXNlZCBpbgogICAgICAgICAgICAgICAgLy9hIGRlcGVuZGVuY3kKICAgICAgICAgICAgICAgIGVhY2hQcm9wKHRoaXMucGx1Z2luTWFwcywgYmluZCh0aGlzLCBmdW5jdGlvbiAocGx1Z2luTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG1vZCA9IGdldE93bihyZWdpc3RyeSwgcGx1Z2luTWFwLmlkKTsKICAgICAgICAgICAgICAgICAgICBpZiAobW9kICYmICFtb2QuZW5hYmxlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmVuYWJsZShwbHVnaW5NYXAsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsaW5nID0gZmFsc2U7CgogICAgICAgICAgICAgICAgdGhpcy5jaGVjaygpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgb246IGZ1bmN0aW9uIChuYW1lLCBjYikgewogICAgICAgICAgICAgICAgdmFyIGNicyA9IHRoaXMuZXZlbnRzW25hbWVdOwogICAgICAgICAgICAgICAgaWYgKCFjYnMpIHsKICAgICAgICAgICAgICAgICAgICBjYnMgPSB0aGlzLmV2ZW50c1tuYW1lXSA9IFtdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY2JzLnB1c2goY2IpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgZW1pdDogZnVuY3Rpb24gKG5hbWUsIGV2dCkgewogICAgICAgICAgICAgICAgZWFjaCh0aGlzLmV2ZW50c1tuYW1lXSwgZnVuY3Rpb24gKGNiKSB7CiAgICAgICAgICAgICAgICAgICAgY2IoZXZ0KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdlcnJvcicpIHsKICAgICAgICAgICAgICAgICAgICAvL05vdyB0aGF0IHRoZSBlcnJvciBoYW5kbGVyIHdhcyB0cmlnZ2VyZWQsIHJlbW92ZQogICAgICAgICAgICAgICAgICAgIC8vdGhlIGxpc3RlbmVycywgc2luY2UgdGhpcyBicm9rZW4gTW9kdWxlIGluc3RhbmNlCiAgICAgICAgICAgICAgICAgICAgLy9jYW4gc3RheSBhcm91bmQgZm9yIGEgd2hpbGUgaW4gdGhlIHJlZ2lzdHJ5LgogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmV2ZW50c1tuYW1lXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIGZ1bmN0aW9uIGNhbGxHZXRNb2R1bGUoYXJncykgewogICAgICAgICAgICAvL1NraXAgbW9kdWxlcyBhbHJlYWR5IGRlZmluZWQuCiAgICAgICAgICAgIGlmICghaGFzUHJvcChkZWZpbmVkLCBhcmdzWzBdKSkgewogICAgICAgICAgICAgICAgZ2V0TW9kdWxlKG1ha2VNb2R1bGVNYXAoYXJnc1swXSwgbnVsbCwgdHJ1ZSkpLmluaXQoYXJnc1sxXSwgYXJnc1syXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKG5vZGUsIGZ1bmMsIG5hbWUsIGllTmFtZSkgewogICAgICAgICAgICAvL0Zhdm9yIGRldGFjaEV2ZW50IGJlY2F1c2Ugb2YgSUU5CiAgICAgICAgICAgIC8vaXNzdWUsIHNlZSBhdHRhY2hFdmVudC9hZGRFdmVudExpc3RlbmVyIGNvbW1lbnQgZWxzZXdoZXJlCiAgICAgICAgICAgIC8vaW4gdGhpcyBmaWxlLgogICAgICAgICAgICBpZiAobm9kZS5kZXRhY2hFdmVudCAmJiAhaXNPcGVyYSkgewogICAgICAgICAgICAgICAgLy9Qcm9iYWJseSBJRS4gSWYgbm90IGl0IHdpbGwgdGhyb3cgYW4gZXJyb3IsIHdoaWNoIHdpbGwgYmUKICAgICAgICAgICAgICAgIC8vdXNlZnVsIHRvIGtub3cuCiAgICAgICAgICAgICAgICBpZiAoaWVOYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgbm9kZS5kZXRhY2hFdmVudChpZU5hbWUsIGZ1bmMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGZ1bmMsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogR2l2ZW4gYW4gZXZlbnQgZnJvbSBhIHNjcmlwdCBub2RlLCBnZXQgdGhlIHJlcXVpcmVqcyBpbmZvIGZyb20gaXQsCiAgICAgICAgICogYW5kIHRoZW4gcmVtb3ZlcyB0aGUgZXZlbnQgbGlzdGVuZXJzIG9uIHRoZSBub2RlLgogICAgICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2dAogICAgICAgICAqIEByZXR1cm5zIHtPYmplY3R9CiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gZ2V0U2NyaXB0RGF0YShldnQpIHsKICAgICAgICAgICAgLy9Vc2luZyBjdXJyZW50VGFyZ2V0IGluc3RlYWQgb2YgdGFyZ2V0IGZvciBGaXJlZm94IDIuMCdzIHNha2UuIE5vdAogICAgICAgICAgICAvL2FsbCBvbGQgYnJvd3NlcnMgd2lsbCBiZSBzdXBwb3J0ZWQsIGJ1dCB0aGlzIG9uZSB3YXMgZWFzeSBlbm91Z2gKICAgICAgICAgICAgLy90byBzdXBwb3J0IGFuZCBzdGlsbCBtYWtlcyBzZW5zZS4KICAgICAgICAgICAgdmFyIG5vZGUgPSBldnQuY3VycmVudFRhcmdldCB8fCBldnQuc3JjRWxlbWVudDsKCiAgICAgICAgICAgIC8vUmVtb3ZlIHRoZSBsaXN0ZW5lcnMgb25jZSBoZXJlLgogICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCBjb250ZXh0Lm9uU2NyaXB0TG9hZCwgJ2xvYWQnLCAnb25yZWFkeXN0YXRlY2hhbmdlJyk7CiAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKG5vZGUsIGNvbnRleHQub25TY3JpcHRFcnJvciwgJ2Vycm9yJyk7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgbm9kZTogbm9kZSwKICAgICAgICAgICAgICAgIGlkOiBub2RlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXJlcXVpcmVtb2R1bGUnKQogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gaW50YWtlRGVmaW5lcygpIHsKICAgICAgICAgICAgdmFyIGFyZ3M7CgogICAgICAgICAgICAvL0FueSBkZWZpbmVkIG1vZHVsZXMgaW4gdGhlIGdsb2JhbCBxdWV1ZSwgaW50YWtlIHRoZW0gbm93LgogICAgICAgICAgICB0YWtlR2xvYmFsUXVldWUoKTsKCiAgICAgICAgICAgIC8vTWFrZSBzdXJlIGFueSByZW1haW5pbmcgZGVmUXVldWUgaXRlbXMgZ2V0IHByb3Blcmx5IHByb2Nlc3NlZC4KICAgICAgICAgICAgd2hpbGUgKGRlZlF1ZXVlLmxlbmd0aCkgewogICAgICAgICAgICAgICAgYXJncyA9IGRlZlF1ZXVlLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICBpZiAoYXJnc1swXSA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBvbkVycm9yKG1ha2VFcnJvcignbWlzbWF0Y2gnLCAnTWlzbWF0Y2hlZCBhbm9ueW1vdXMgZGVmaW5lKCkgbW9kdWxlOiAnICsKICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1thcmdzLmxlbmd0aCAtIDFdKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vYXJncyBhcmUgaWQsIGRlcHMsIGZhY3RvcnkuIFNob3VsZCBiZSBub3JtYWxpemVkIGJ5IHRoZQogICAgICAgICAgICAgICAgICAgIC8vZGVmaW5lKCkgZnVuY3Rpb24uCiAgICAgICAgICAgICAgICAgICAgY2FsbEdldE1vZHVsZShhcmdzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZXh0LmRlZlF1ZXVlTWFwID0ge307CiAgICAgICAgfQoKICAgICAgICBjb250ZXh0ID0gewogICAgICAgICAgICBjb25maWc6IGNvbmZpZywKICAgICAgICAgICAgY29udGV4dE5hbWU6IGNvbnRleHROYW1lLAogICAgICAgICAgICByZWdpc3RyeTogcmVnaXN0cnksCiAgICAgICAgICAgIGRlZmluZWQ6IGRlZmluZWQsCiAgICAgICAgICAgIHVybEZldGNoZWQ6IHVybEZldGNoZWQsCiAgICAgICAgICAgIGRlZlF1ZXVlOiBkZWZRdWV1ZSwKICAgICAgICAgICAgZGVmUXVldWVNYXA6IHt9LAogICAgICAgICAgICBNb2R1bGU6IE1vZHVsZSwKICAgICAgICAgICAgbWFrZU1vZHVsZU1hcDogbWFrZU1vZHVsZU1hcCwKICAgICAgICAgICAgbmV4dFRpY2s6IHJlcS5uZXh0VGljaywKICAgICAgICAgICAgb25FcnJvcjogb25FcnJvciwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBTZXQgYSBjb25maWd1cmF0aW9uIGZvciB0aGUgY29udGV4dC4KICAgICAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IGNmZyBjb25maWcgb2JqZWN0IHRvIGludGVncmF0ZS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGNvbmZpZ3VyZTogZnVuY3Rpb24gKGNmZykgewogICAgICAgICAgICAgICAgLy9NYWtlIHN1cmUgdGhlIGJhc2VVcmwgZW5kcyBpbiBhIHNsYXNoLgogICAgICAgICAgICAgICAgaWYgKGNmZy5iYXNlVXJsKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNmZy5iYXNlVXJsLmNoYXJBdChjZmcuYmFzZVVybC5sZW5ndGggLSAxKSAhPT0gJy8nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNmZy5iYXNlVXJsICs9ICcvJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gQ29udmVydCBvbGQgc3R5bGUgdXJsQXJncyBzdHJpbmcgdG8gYSBmdW5jdGlvbi4KICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2ZnLnVybEFyZ3MgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHVybEFyZ3MgPSBjZmcudXJsQXJnczsKICAgICAgICAgICAgICAgICAgICBjZmcudXJsQXJncyA9IGZ1bmN0aW9uKGlkLCB1cmwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyB1cmxBcmdzOwogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9TYXZlIG9mZiB0aGUgcGF0aHMgc2luY2UgdGhleSByZXF1aXJlIHNwZWNpYWwgcHJvY2Vzc2luZywKICAgICAgICAgICAgICAgIC8vdGhleSBhcmUgYWRkaXRpdmUuCiAgICAgICAgICAgICAgICB2YXIgc2hpbSA9IGNvbmZpZy5zaGltLAogICAgICAgICAgICAgICAgICAgIG9ianMgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhzOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICBidW5kbGVzOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcDogdHJ1ZQogICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgZWFjaFByb3AoY2ZnLCBmdW5jdGlvbiAodmFsdWUsIHByb3ApIHsKICAgICAgICAgICAgICAgICAgICBpZiAob2Jqc1twcm9wXSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbmZpZ1twcm9wXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnW3Byb3BdID0ge307CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgbWl4aW4oY29uZmlnW3Byb3BdLCB2YWx1ZSwgdHJ1ZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnW3Byb3BdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgLy9SZXZlcnNlIG1hcCB0aGUgYnVuZGxlcwogICAgICAgICAgICAgICAgaWYgKGNmZy5idW5kbGVzKSB7CiAgICAgICAgICAgICAgICAgICAgZWFjaFByb3AoY2ZnLmJ1bmRsZXMsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkgewogICAgICAgICAgICAgICAgICAgICAgICBlYWNoKHZhbHVlLCBmdW5jdGlvbiAodikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT09IHByb3ApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidW5kbGVzTWFwW3ZdID0gcHJvcDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9NZXJnZSBzaGltCiAgICAgICAgICAgICAgICBpZiAoY2ZnLnNoaW0pIHsKICAgICAgICAgICAgICAgICAgICBlYWNoUHJvcChjZmcuc2hpbSwgZnVuY3Rpb24gKHZhbHVlLCBpZCkgewogICAgICAgICAgICAgICAgICAgICAgICAvL05vcm1hbGl6ZSB0aGUgc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwczogdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh2YWx1ZS5leHBvcnRzIHx8IHZhbHVlLmluaXQpICYmICF2YWx1ZS5leHBvcnRzRm4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmV4cG9ydHNGbiA9IGNvbnRleHQubWFrZVNoaW1FeHBvcnRzKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBzaGltW2lkXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zaGltID0gc2hpbTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL0FkanVzdCBwYWNrYWdlcyBpZiBuZWNlc3NhcnkuCiAgICAgICAgICAgICAgICBpZiAoY2ZnLnBhY2thZ2VzKSB7CiAgICAgICAgICAgICAgICAgICAgZWFjaChjZmcucGFja2FnZXMsIGZ1bmN0aW9uIChwa2dPYmopIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uLCBuYW1lOwoKICAgICAgICAgICAgICAgICAgICAgICAgcGtnT2JqID0gdHlwZW9mIHBrZ09iaiA9PT0gJ3N0cmluZycgPyB7bmFtZTogcGtnT2JqfSA6IHBrZ09iajsKCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBwa2dPYmoubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSBwa2dPYmoubG9jYXRpb247CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLnBhdGhzW25hbWVdID0gcGtnT2JqLmxvY2F0aW9uOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL1NhdmUgcG9pbnRlciB0byBtYWluIG1vZHVsZSBJRCBmb3IgcGtnIG5hbWUuCiAgICAgICAgICAgICAgICAgICAgICAgIC8vUmVtb3ZlIGxlYWRpbmcgZG90IGluIG1haW4sIHNvIG1haW4gcGF0aHMgYXJlIG5vcm1hbGl6ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYW5kIHJlbW92ZSBhbnkgdHJhaWxpbmcgLmpzLCBzaW5jZSBkaWZmZXJlbnQgcGFja2FnZQogICAgICAgICAgICAgICAgICAgICAgICAvL2VudnMgaGF2ZSBkaWZmZXJlbnQgY29udmVudGlvbnM6IHNvbWUgdXNlIGEgbW9kdWxlIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vc29tZSB1c2UgYSBmaWxlIG5hbWUuCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5wa2dzW25hbWVdID0gcGtnT2JqLm5hbWUgKyAnLycgKyAocGtnT2JqLm1haW4gfHwgJ21haW4nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoY3VyckRpclJlZ0V4cCwgJycpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShqc1N1ZmZpeFJlZ0V4cCwgJycpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vSWYgdGhlcmUgYXJlIGFueSAid2FpdGluZyB0byBleGVjdXRlIiBtb2R1bGVzIGluIHRoZSByZWdpc3RyeSwKICAgICAgICAgICAgICAgIC8vdXBkYXRlIHRoZSBtYXBzIGZvciB0aGVtLCBzaW5jZSB0aGVpciBpbmZvLCBsaWtlIFVSTHMgdG8gbG9hZCwKICAgICAgICAgICAgICAgIC8vbWF5IGhhdmUgY2hhbmdlZC4KICAgICAgICAgICAgICAgIGVhY2hQcm9wKHJlZ2lzdHJ5LCBmdW5jdGlvbiAobW9kLCBpZCkgewogICAgICAgICAgICAgICAgICAgIC8vSWYgbW9kdWxlIGFscmVhZHkgaGFzIGluaXQgY2FsbGVkLCBzaW5jZSBpdCBpcyB0b28KICAgICAgICAgICAgICAgICAgICAvL2xhdGUgdG8gbW9kaWZ5IHRoZW0sIGFuZCBpZ25vcmUgdW5ub3JtYWxpemVkIG9uZXMKICAgICAgICAgICAgICAgICAgICAvL3NpbmNlIHRoZXkgYXJlIHRyYW5zaWVudC4KICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZC5pbml0ZWQgJiYgIW1vZC5tYXAudW5ub3JtYWxpemVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1vZC5tYXAgPSBtYWtlTW9kdWxlTWFwKGlkLCBudWxsLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvL0lmIGEgZGVwcyBhcnJheSBvciBhIGNvbmZpZyBjYWxsYmFjayBpcyBzcGVjaWZpZWQsIHRoZW4gY2FsbAogICAgICAgICAgICAgICAgLy9yZXF1aXJlIHdpdGggdGhvc2UgYXJncy4gVGhpcyBpcyB1c2VmdWwgd2hlbiByZXF1aXJlIGlzIGRlZmluZWQgYXMgYQogICAgICAgICAgICAgICAgLy9jb25maWcgb2JqZWN0IGJlZm9yZSByZXF1aXJlLmpzIGlzIGxvYWRlZC4KICAgICAgICAgICAgICAgIGlmIChjZmcuZGVwcyB8fCBjZmcuY2FsbGJhY2spIHsKICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnJlcXVpcmUoY2ZnLmRlcHMgfHwgW10sIGNmZy5jYWxsYmFjayk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBtYWtlU2hpbUV4cG9ydHM6IGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgICAgICAgICAgZnVuY3Rpb24gZm4oKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJldDsKICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuaW5pdCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXQgPSB2YWx1ZS5pbml0LmFwcGx5KGdsb2JhbCwgYXJndW1lbnRzKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldCB8fCAodmFsdWUuZXhwb3J0cyAmJiBnZXRHbG9iYWwodmFsdWUuZXhwb3J0cykpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGZuOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgbWFrZVJlcXVpcmU6IGZ1bmN0aW9uIChyZWxNYXAsIG9wdGlvbnMpIHsKICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwoKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGxvY2FsUmVxdWlyZShkZXBzLCBjYWxsYmFjaywgZXJyYmFjaykgewogICAgICAgICAgICAgICAgICAgIHZhciBpZCwgbWFwLCByZXF1aXJlTW9kOwoKICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5lbmFibGVCdWlsZENhbGxiYWNrICYmIGNhbGxiYWNrICYmIGlzRnVuY3Rpb24oY2FsbGJhY2spKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLl9fcmVxdWlyZUpzQnVpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkZXBzID09PSAnc3RyaW5nJykgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihjYWxsYmFjaykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vSW52YWxpZCBjYWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ3JlcXVpcmVhcmdzJywgJ0ludmFsaWQgcmVxdWlyZSBjYWxsJyksIGVycmJhY2spOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL0lmIHJlcXVpcmV8ZXhwb3J0c3xtb2R1bGUgYXJlIHJlcXVlc3RlZCwgZ2V0IHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvL3ZhbHVlIGZvciB0aGVtIGZyb20gdGhlIHNwZWNpYWwgaGFuZGxlcnMuIENhdmVhdDoKICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzIG9ubHkgd29ya3Mgd2hpbGUgbW9kdWxlIGlzIGJlaW5nIGRlZmluZWQuCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWxNYXAgJiYgaGFzUHJvcChoYW5kbGVycywgZGVwcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVyc1tkZXBzXShyZWdpc3RyeVtyZWxNYXAuaWRdKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9TeW5jaHJvbm91cyBhY2Nlc3MgdG8gb25lIG1vZHVsZS4gSWYgcmVxdWlyZS5nZXQgaXMKICAgICAgICAgICAgICAgICAgICAgICAgLy9hdmFpbGFibGUgKGFzIGluIHRoZSBOb2RlIGFkYXB0ZXIpLCBwcmVmZXIgdGhhdC4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcS5nZXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXEuZ2V0KGNvbnRleHQsIGRlcHMsIHJlbE1hcCwgbG9jYWxSZXF1aXJlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9Ob3JtYWxpemUgbW9kdWxlIG5hbWUsIGlmIGl0IGNvbnRhaW5zIC4gb3IgLi4KICAgICAgICAgICAgICAgICAgICAgICAgbWFwID0gbWFrZU1vZHVsZU1hcChkZXBzLCByZWxNYXAsIGZhbHNlLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSBtYXAuaWQ7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Byb3AoZGVmaW5lZCwgaWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ25vdGxvYWRlZCcsICdNb2R1bGUgbmFtZSAiJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIiBoYXMgbm90IGJlZW4gbG9hZGVkIHlldCBmb3IgY29udGV4dDogJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0TmFtZSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVsTWFwID8gJycgOiAnLiBVc2UgcmVxdWlyZShbXSknKSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWZpbmVkW2lkXTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vR3JhYiBkZWZpbmVzIHdhaXRpbmcgaW4gdGhlIGdsb2JhbCBxdWV1ZS4KICAgICAgICAgICAgICAgICAgICBpbnRha2VEZWZpbmVzKCk7CgogICAgICAgICAgICAgICAgICAgIC8vTWFyayBhbGwgdGhlIGRlcGVuZGVuY2llcyBhcyBuZWVkaW5nIHRvIGJlIGxvYWRlZC4KICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lm5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9Tb21lIGRlZmluZXMgY291bGQgaGF2ZSBiZWVuIGFkZGVkIHNpbmNlIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvL3JlcXVpcmUgY2FsbCwgY29sbGVjdCB0aGVtLgogICAgICAgICAgICAgICAgICAgICAgICBpbnRha2VEZWZpbmVzKCk7CgogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlTW9kID0gZ2V0TW9kdWxlKG1ha2VNb2R1bGVNYXAobnVsbCwgcmVsTWFwKSk7CgogICAgICAgICAgICAgICAgICAgICAgICAvL1N0b3JlIGlmIG1hcCBjb25maWcgc2hvdWxkIGJlIGFwcGxpZWQgdG8gdGhpcyByZXF1aXJlCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY2FsbCBmb3IgZGVwZW5kZW5jaWVzLgogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlTW9kLnNraXBNYXAgPSBvcHRpb25zLnNraXBNYXA7CgogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlTW9kLmluaXQoZGVwcywgY2FsbGJhY2ssIGVycmJhY2ssIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZCgpOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxSZXF1aXJlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG1peGluKGxvY2FsUmVxdWlyZSwgewogICAgICAgICAgICAgICAgICAgIGlzQnJvd3NlcjogaXNCcm93c2VyLAoKICAgICAgICAgICAgICAgICAgICAvKioKICAgICAgICAgICAgICAgICAgICAgKiBDb252ZXJ0cyBhIG1vZHVsZSBuYW1lICsgLmV4dGVuc2lvbiBpbnRvIGFuIFVSTCBwYXRoLgogICAgICAgICAgICAgICAgICAgICAqICpSZXF1aXJlcyogdGhlIHVzZSBvZiBhIG1vZHVsZSBuYW1lLiBJdCBkb2VzIG5vdCBzdXBwb3J0IHVzaW5nCiAgICAgICAgICAgICAgICAgICAgICogcGxhaW4gVVJMcyBsaWtlIG5hbWVUb1VybC4KICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICAgICB0b1VybDogZnVuY3Rpb24gKG1vZHVsZU5hbWVQbHVzRXh0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IG1vZHVsZU5hbWVQbHVzRXh0Lmxhc3RJbmRleE9mKCcuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50ID0gbW9kdWxlTmFtZVBsdXNFeHQuc3BsaXQoJy8nKVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVsYXRpdmUgPSBzZWdtZW50ID09PSAnLicgfHwgc2VnbWVudCA9PT0gJy4uJzsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vSGF2ZSBhIGZpbGUgZXh0ZW5zaW9uIGFsaWFzLCBhbmQgaXQgaXMgbm90IHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvL2RvdHMgZnJvbSBhIHJlbGF0aXZlIHBhdGguCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEgJiYgKCFpc1JlbGF0aXZlIHx8IGluZGV4ID4gMSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dCA9IG1vZHVsZU5hbWVQbHVzRXh0LnN1YnN0cmluZyhpbmRleCwgbW9kdWxlTmFtZVBsdXNFeHQubGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU5hbWVQbHVzRXh0ID0gbW9kdWxlTmFtZVBsdXNFeHQuc3Vic3RyaW5nKDAsIGluZGV4KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQubmFtZVRvVXJsKG5vcm1hbGl6ZShtb2R1bGVOYW1lUGx1c0V4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsTWFwICYmIHJlbE1hcC5pZCwgdHJ1ZSksIGV4dCwgIHRydWUpOwogICAgICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgICAgIGRlZmluZWQ6IGZ1bmN0aW9uIChpZCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFzUHJvcChkZWZpbmVkLCBtYWtlTW9kdWxlTWFwKGlkLCByZWxNYXAsIGZhbHNlLCB0cnVlKS5pZCk7CiAgICAgICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkOiBmdW5jdGlvbiAoaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSBtYWtlTW9kdWxlTWFwKGlkLCByZWxNYXAsIGZhbHNlLCB0cnVlKS5pZDsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhhc1Byb3AoZGVmaW5lZCwgaWQpIHx8IGhhc1Byb3AocmVnaXN0cnksIGlkKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvL09ubHkgYWxsb3cgdW5kZWYgb24gdG9wIGxldmVsIHJlcXVpcmUgY2FsbHMKICAgICAgICAgICAgICAgIGlmICghcmVsTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgbG9jYWxSZXF1aXJlLnVuZGVmID0gZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vQmluZCBhbnkgd2FpdGluZyBkZWZpbmUoKSBjYWxscyB0byB0aGlzIGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vZml4IGZvciAjNDA4CiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VHbG9iYWxRdWV1ZSgpOwoKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1hcCA9IG1ha2VNb2R1bGVNYXAoaWQsIHJlbE1hcCwgdHJ1ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2QgPSBnZXRPd24ocmVnaXN0cnksIGlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIG1vZC51bmRlZmVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlU2NyaXB0KGlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBkZWZpbmVkW2lkXTsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHVybEZldGNoZWRbbWFwLnVybF07CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB1bmRlZkV2ZW50c1tpZF07CgogICAgICAgICAgICAgICAgICAgICAgICAvL0NsZWFuIHF1ZXVlZCBkZWZpbmVzIHRvby4gR28gYmFja3dhcmRzCiAgICAgICAgICAgICAgICAgICAgICAgIC8vaW4gYXJyYXkgc28gdGhhdCB0aGUgc3BsaWNlcyBkbyBub3QKICAgICAgICAgICAgICAgICAgICAgICAgLy9tZXNzIHVwIHRoZSBpdGVyYXRpb24uCiAgICAgICAgICAgICAgICAgICAgICAgIGVhY2hSZXZlcnNlKGRlZlF1ZXVlLCBmdW5jdGlvbihhcmdzLCBpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJnc1swXSA9PT0gaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZRdWV1ZS5zcGxpY2UoaSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgY29udGV4dC5kZWZRdWV1ZU1hcFtpZF07CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0hvbGQgb24gdG8gbGlzdGVuZXJzIGluIGNhc2UgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21vZHVsZSB3aWxsIGJlIGF0dGVtcHRlZCB0byBiZSByZWxvYWRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy91c2luZyBhIGRpZmZlcmVudCBjb25maWcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kLmV2ZW50cy5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZFdmVudHNbaWRdID0gbW9kLmV2ZW50czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhblJlZ2lzdHJ5KGlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsUmVxdWlyZTsKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDYWxsZWQgdG8gZW5hYmxlIGEgbW9kdWxlIGlmIGl0IGlzIHN0aWxsIGluIHRoZSByZWdpc3RyeQogICAgICAgICAgICAgKiBhd2FpdGluZyBlbmFibGVtZW50LiBBIHNlY29uZCBhcmcsIHBhcmVudCwgdGhlIHBhcmVudCBtb2R1bGUsCiAgICAgICAgICAgICAqIGlzIHBhc3NlZCBpbiBmb3IgY29udGV4dCwgd2hlbiB0aGlzIG1ldGhvZCBpcyBvdmVycmlkZGVuIGJ5CiAgICAgICAgICAgICAqIHRoZSBvcHRpbWl6ZXIuIE5vdCBzaG93biBoZXJlIHRvIGtlZXAgY29kZSBjb21wYWN0LgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZW5hYmxlOiBmdW5jdGlvbiAoZGVwTWFwKSB7CiAgICAgICAgICAgICAgICB2YXIgbW9kID0gZ2V0T3duKHJlZ2lzdHJ5LCBkZXBNYXAuaWQpOwogICAgICAgICAgICAgICAgaWYgKG1vZCkgewogICAgICAgICAgICAgICAgICAgIGdldE1vZHVsZShkZXBNYXApLmVuYWJsZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEludGVybmFsIG1ldGhvZCB1c2VkIGJ5IGVudmlyb25tZW50IGFkYXB0ZXJzIHRvIGNvbXBsZXRlIGEgbG9hZCBldmVudC4KICAgICAgICAgICAgICogQSBsb2FkIGV2ZW50IGNvdWxkIGJlIGEgc2NyaXB0IGxvYWQgb3IganVzdCBhIGxvYWQgcGFzcyBmcm9tIGEgc3luY2hyb25vdXMKICAgICAgICAgICAgICogbG9hZCBjYWxsLgogICAgICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gbW9kdWxlTmFtZSB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRvIHBvdGVudGlhbGx5IGNvbXBsZXRlLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgY29tcGxldGVMb2FkOiBmdW5jdGlvbiAobW9kdWxlTmFtZSkgewogICAgICAgICAgICAgICAgdmFyIGZvdW5kLCBhcmdzLCBtb2QsCiAgICAgICAgICAgICAgICAgICAgc2hpbSA9IGdldE93bihjb25maWcuc2hpbSwgbW9kdWxlTmFtZSkgfHwge30sCiAgICAgICAgICAgICAgICAgICAgc2hFeHBvcnRzID0gc2hpbS5leHBvcnRzOwoKICAgICAgICAgICAgICAgIHRha2VHbG9iYWxRdWV1ZSgpOwoKICAgICAgICAgICAgICAgIHdoaWxlIChkZWZRdWV1ZS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBhcmdzID0gZGVmUXVldWUuc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgICBpZiAoYXJnc1swXSA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICBhcmdzWzBdID0gbW9kdWxlTmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgLy9JZiBhbHJlYWR5IGZvdW5kIGFuIGFub255bW91cyBtb2R1bGUgYW5kIGJvdW5kIGl0CiAgICAgICAgICAgICAgICAgICAgICAgIC8vdG8gdGhpcyBuYW1lLCB0aGVuIHRoaXMgaXMgc29tZSBvdGhlciBhbm9uIG1vZHVsZQogICAgICAgICAgICAgICAgICAgICAgICAvL3dhaXRpbmcgZm9yIGl0cyBjb21wbGV0ZUxvYWQgdG8gZmlyZS4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzWzBdID09PSBtb2R1bGVOYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vRm91bmQgbWF0Y2hpbmcgZGVmaW5lIGNhbGwgZm9yIHRoaXMgc2NyaXB0IQogICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBjYWxsR2V0TW9kdWxlKGFyZ3MpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29udGV4dC5kZWZRdWV1ZU1hcCA9IHt9OwoKICAgICAgICAgICAgICAgIC8vRG8gdGhpcyBhZnRlciB0aGUgY3ljbGUgb2YgY2FsbEdldE1vZHVsZSBpbiBjYXNlIHRoZSByZXN1bHQKICAgICAgICAgICAgICAgIC8vb2YgdGhvc2UgY2FsbHMvaW5pdCBjYWxscyBjaGFuZ2VzIHRoZSByZWdpc3RyeS4KICAgICAgICAgICAgICAgIG1vZCA9IGdldE93bihyZWdpc3RyeSwgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAgICAgaWYgKCFmb3VuZCAmJiAhaGFzUHJvcChkZWZpbmVkLCBtb2R1bGVOYW1lKSAmJiBtb2QgJiYgIW1vZC5pbml0ZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLmVuZm9yY2VEZWZpbmUgJiYgKCFzaEV4cG9ydHMgfHwgIWdldEdsb2JhbChzaEV4cG9ydHMpKSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzUGF0aEZhbGxiYWNrKG1vZHVsZU5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ25vZGVmaW5lJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05vIGRlZmluZSBjYWxsIGZvciAnICsgbW9kdWxlTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZHVsZU5hbWVdKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAvL0Egc2NyaXB0IHRoYXQgZG9lcyBub3QgY2FsbCBkZWZpbmUoKSwgc28ganVzdCBzaW11bGF0ZQogICAgICAgICAgICAgICAgICAgICAgICAvL3RoZSBjYWxsIGZvciBpdC4KICAgICAgICAgICAgICAgICAgICAgICAgY2FsbEdldE1vZHVsZShbbW9kdWxlTmFtZSwgKHNoaW0uZGVwcyB8fCBbXSksIHNoaW0uZXhwb3J0c0ZuXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNoZWNrTG9hZGVkKCk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQ29udmVydHMgYSBtb2R1bGUgbmFtZSB0byBhIGZpbGUgcGF0aC4gU3VwcG9ydHMgY2FzZXMgd2hlcmUKICAgICAgICAgICAgICogbW9kdWxlTmFtZSBtYXkgYWN0dWFsbHkgYmUganVzdCBhbiBVUkwuCiAgICAgICAgICAgICAqIE5vdGUgdGhhdCBpdCAqKmRvZXMgbm90KiogY2FsbCBub3JtYWxpemUgb24gdGhlIG1vZHVsZU5hbWUsCiAgICAgICAgICAgICAqIGl0IGlzIGFzc3VtZWQgdG8gaGF2ZSBhbHJlYWR5IGJlZW4gbm9ybWFsaXplZC4gVGhpcyBpcyBhbgogICAgICAgICAgICAgKiBpbnRlcm5hbCBBUEksIG5vdCBhIHB1YmxpYyBvbmUuIFVzZSB0b1VybCBmb3IgdGhlIHB1YmxpYyBBUEkuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBuYW1lVG9Vcmw6IGZ1bmN0aW9uIChtb2R1bGVOYW1lLCBleHQsIHNraXBFeHQpIHsKICAgICAgICAgICAgICAgIHZhciBwYXRocywgc3ltcywgaSwgcGFyZW50TW9kdWxlLCB1cmwsCiAgICAgICAgICAgICAgICAgICAgcGFyZW50UGF0aCwgYnVuZGxlSWQsCiAgICAgICAgICAgICAgICAgICAgcGtnTWFpbiA9IGdldE93bihjb25maWcucGtncywgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAgICAgaWYgKHBrZ01haW4pIHsKICAgICAgICAgICAgICAgICAgICBtb2R1bGVOYW1lID0gcGtnTWFpbjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBidW5kbGVJZCA9IGdldE93bihidW5kbGVzTWFwLCBtb2R1bGVOYW1lKTsKCiAgICAgICAgICAgICAgICBpZiAoYnVuZGxlSWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dC5uYW1lVG9VcmwoYnVuZGxlSWQsIGV4dCwgc2tpcEV4dCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9JZiBhIGNvbG9uIGlzIGluIHRoZSBVUkwsIGl0IGluZGljYXRlcyBhIHByb3RvY29sIGlzIHVzZWQgYW5kIGl0IGlzIGp1c3QKICAgICAgICAgICAgICAgIC8vYW4gVVJMIHRvIGEgZmlsZSwgb3IgaWYgaXQgc3RhcnRzIHdpdGggYSBzbGFzaCwgY29udGFpbnMgYSBxdWVyeSBhcmcgKGkuZS4gPykKICAgICAgICAgICAgICAgIC8vb3IgZW5kcyB3aXRoIC5qcywgdGhlbiBhc3N1bWUgdGhlIHVzZXIgbWVhbnQgdG8gdXNlIGFuIHVybCBhbmQgbm90IGEgbW9kdWxlIGlkLgogICAgICAgICAgICAgICAgLy9UaGUgc2xhc2ggaXMgaW1wb3J0YW50IGZvciBwcm90b2NvbC1sZXNzIFVSTHMgYXMgd2VsbCBhcyBmdWxsIHBhdGhzLgogICAgICAgICAgICAgICAgaWYgKHJlcS5qc0V4dFJlZ0V4cC50ZXN0KG1vZHVsZU5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgLy9KdXN0IGEgcGxhaW4gcGF0aCwgbm90IG1vZHVsZSBuYW1lIGxvb2t1cCwgc28ganVzdCByZXR1cm4gaXQuCiAgICAgICAgICAgICAgICAgICAgLy9BZGQgZXh0ZW5zaW9uIGlmIGl0IGlzIGluY2x1ZGVkLiBUaGlzIGlzIGEgYml0IHdvbmt5LCBvbmx5IG5vbi0uanMgdGhpbmdzIHBhc3MKICAgICAgICAgICAgICAgICAgICAvL2FuIGV4dGVuc2lvbiwgdGhpcyBtZXRob2QgcHJvYmFibHkgbmVlZHMgdG8gYmUgcmV3b3JrZWQuCiAgICAgICAgICAgICAgICAgICAgdXJsID0gbW9kdWxlTmFtZSArIChleHQgfHwgJycpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL0EgbW9kdWxlIHRoYXQgbmVlZHMgdG8gYmUgY29udmVydGVkIHRvIGEgcGF0aC4KICAgICAgICAgICAgICAgICAgICBwYXRocyA9IGNvbmZpZy5wYXRoczsKCiAgICAgICAgICAgICAgICAgICAgc3ltcyA9IG1vZHVsZU5hbWUuc3BsaXQoJy8nKTsKICAgICAgICAgICAgICAgICAgICAvL0ZvciBlYWNoIG1vZHVsZSBuYW1lIHNlZ21lbnQsIHNlZSBpZiB0aGVyZSBpcyBhIHBhdGgKICAgICAgICAgICAgICAgICAgICAvL3JlZ2lzdGVyZWQgZm9yIGl0LiBTdGFydCB3aXRoIG1vc3Qgc3BlY2lmaWMgbmFtZQogICAgICAgICAgICAgICAgICAgIC8vYW5kIHdvcmsgdXAgZnJvbSBpdC4KICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSBzeW1zLmxlbmd0aDsgaSA+IDA7IGkgLT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRNb2R1bGUgPSBzeW1zLnNsaWNlKDAsIGkpLmpvaW4oJy8nKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFBhdGggPSBnZXRPd24ocGF0aHMsIHBhcmVudE1vZHVsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnRQYXRoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0lmIGFuIGFycmF5LCBpdCBtZWFucyB0aGVyZSBhcmUgYSBmZXcgY2hvaWNlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vQ2hvb3NlIHRoZSBvbmUgdGhhdCBpcyBkZXNpcmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNBcnJheShwYXJlbnRQYXRoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFBhdGggPSBwYXJlbnRQYXRoWzBdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltcy5zcGxpY2UoMCwgaSwgcGFyZW50UGF0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy9Kb2luIHRoZSBwYXRoIHBhcnRzIHRvZ2V0aGVyLCB0aGVuIGZpZ3VyZSBvdXQgaWYgYmFzZVVybCBpcyBuZWVkZWQuCiAgICAgICAgICAgICAgICAgICAgdXJsID0gc3ltcy5qb2luKCcvJyk7CiAgICAgICAgICAgICAgICAgICAgdXJsICs9IChleHQgfHwgKC9eZGF0YVw6fF5ibG9iXDp8XD8vLnRlc3QodXJsKSB8fCBza2lwRXh0ID8gJycgOiAnLmpzJykpOwogICAgICAgICAgICAgICAgICAgIHVybCA9ICh1cmwuY2hhckF0KDApID09PSAnLycgfHwgdXJsLm1hdGNoKC9eW1x3XCtcLlwtXSs6LykgPyAnJyA6IGNvbmZpZy5iYXNlVXJsKSArIHVybDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLnVybEFyZ3MgJiYgIS9eYmxvYlw6Ly50ZXN0KHVybCkgPwogICAgICAgICAgICAgICAgICAgICAgIHVybCArIGNvbmZpZy51cmxBcmdzKG1vZHVsZU5hbWUsIHVybCkgOiB1cmw7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvL0RlbGVnYXRlcyB0byByZXEubG9hZC4gQnJva2VuIG91dCBhcyBhIHNlcGFyYXRlIGZ1bmN0aW9uIHRvCiAgICAgICAgICAgIC8vYWxsb3cgb3ZlcnJpZGluZyBpbiB0aGUgb3B0aW1pemVyLgogICAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoaWQsIHVybCkgewogICAgICAgICAgICAgICAgcmVxLmxvYWQoY29udGV4dCwgaWQsIHVybCk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogRXhlY3V0ZXMgYSBtb2R1bGUgY2FsbGJhY2sgZnVuY3Rpb24uIEJyb2tlbiBvdXQgYXMgYSBzZXBhcmF0ZSBmdW5jdGlvbgogICAgICAgICAgICAgKiBzb2xlbHkgdG8gYWxsb3cgdGhlIGJ1aWxkIHN5c3RlbSB0byBzZXF1ZW5jZSB0aGUgZmlsZXMgaW4gdGhlIGJ1aWx0CiAgICAgICAgICAgICAqIGxheWVyIGluIHRoZSByaWdodCBzZXF1ZW5jZS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQHByaXZhdGUKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGV4ZWNDYjogZnVuY3Rpb24gKG5hbWUsIGNhbGxiYWNrLCBhcmdzLCBleHBvcnRzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2suYXBwbHkoZXhwb3J0cywgYXJncyk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogY2FsbGJhY2sgZm9yIHNjcmlwdCBsb2FkcywgdXNlZCB0byBjaGVjayBzdGF0dXMgb2YgbG9hZGluZy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQHBhcmFtIHtFdmVudH0gZXZ0IHRoZSBldmVudCBmcm9tIHRoZSBicm93c2VyIGZvciB0aGUgc2NyaXB0CiAgICAgICAgICAgICAqIHRoYXQgd2FzIGxvYWRlZC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIG9uU2NyaXB0TG9hZDogZnVuY3Rpb24gKGV2dCkgewogICAgICAgICAgICAgICAgLy9Vc2luZyBjdXJyZW50VGFyZ2V0IGluc3RlYWQgb2YgdGFyZ2V0IGZvciBGaXJlZm94IDIuMCdzIHNha2UuIE5vdAogICAgICAgICAgICAgICAgLy9hbGwgb2xkIGJyb3dzZXJzIHdpbGwgYmUgc3VwcG9ydGVkLCBidXQgdGhpcyBvbmUgd2FzIGVhc3kgZW5vdWdoCiAgICAgICAgICAgICAgICAvL3RvIHN1cHBvcnQgYW5kIHN0aWxsIG1ha2VzIHNlbnNlLgogICAgICAgICAgICAgICAgaWYgKGV2dC50eXBlID09PSAnbG9hZCcgfHwKICAgICAgICAgICAgICAgICAgICAgICAgKHJlYWR5UmVnRXhwLnRlc3QoKGV2dC5jdXJyZW50VGFyZ2V0IHx8IGV2dC5zcmNFbGVtZW50KS5yZWFkeVN0YXRlKSkpIHsKICAgICAgICAgICAgICAgICAgICAvL1Jlc2V0IGludGVyYWN0aXZlIHNjcmlwdCBzbyBhIHNjcmlwdCBub2RlIGlzIG5vdCBoZWxkIG9udG8gZm9yCiAgICAgICAgICAgICAgICAgICAgLy90byBsb25nLgogICAgICAgICAgICAgICAgICAgIGludGVyYWN0aXZlU2NyaXB0ID0gbnVsbDsKCiAgICAgICAgICAgICAgICAgICAgLy9QdWxsIG91dCB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlIGFuZCB0aGUgY29udGV4dC4KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGdldFNjcmlwdERhdGEoZXZ0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNvbXBsZXRlTG9hZChkYXRhLmlkKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDYWxsYmFjayBmb3Igc2NyaXB0IGVycm9ycy4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIG9uU2NyaXB0RXJyb3I6IGZ1bmN0aW9uIChldnQpIHsKICAgICAgICAgICAgICAgIHZhciBkYXRhID0gZ2V0U2NyaXB0RGF0YShldnQpOwogICAgICAgICAgICAgICAgaWYgKCFoYXNQYXRoRmFsbGJhY2soZGF0YS5pZCkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcGFyZW50cyA9IFtdOwogICAgICAgICAgICAgICAgICAgIGVhY2hQcm9wKHJlZ2lzdHJ5LCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkuaW5kZXhPZignX0ByJykgIT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVhY2godmFsdWUuZGVwTWFwcywgZnVuY3Rpb24oZGVwTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlcE1hcC5pZCA9PT0gZGF0YS5pZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRzLnB1c2goa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ3NjcmlwdGVycm9yJywgJ1NjcmlwdCBlcnJvciBmb3IgIicgKyBkYXRhLmlkICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudHMubGVuZ3RoID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyIsIG5lZWRlZCBieTogJyArIHBhcmVudHMuam9pbignLCAnKSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICciJyksIGV2dCwgW2RhdGEuaWRdKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBjb250ZXh0LnJlcXVpcmUgPSBjb250ZXh0Lm1ha2VSZXF1aXJlKCk7CiAgICAgICAgcmV0dXJuIGNvbnRleHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBNYWluIGVudHJ5IHBvaW50LgogICAgICoKICAgICAqIElmIHRoZSBvbmx5IGFyZ3VtZW50IHRvIHJlcXVpcmUgaXMgYSBzdHJpbmcsIHRoZW4gdGhlIG1vZHVsZSB0aGF0CiAgICAgKiBpcyByZXByZXNlbnRlZCBieSB0aGF0IHN0cmluZyBpcyBmZXRjaGVkIGZvciB0aGUgYXBwcm9wcmlhdGUgY29udGV4dC4KICAgICAqCiAgICAgKiBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYW4gYXJyYXksIHRoZW4gaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGFuIGFycmF5CiAgICAgKiBvZiBkZXBlbmRlbmN5IHN0cmluZyBuYW1lcyB0byBmZXRjaC4gQW4gb3B0aW9uYWwgZnVuY3Rpb24gY2FsbGJhY2sgY2FuCiAgICAgKiBiZSBzcGVjaWZpZWQgdG8gZXhlY3V0ZSB3aGVuIGFsbCBvZiB0aG9zZSBkZXBlbmRlbmNpZXMgYXJlIGF2YWlsYWJsZS4KICAgICAqCiAgICAgKiBNYWtlIGEgbG9jYWwgcmVxIHZhcmlhYmxlIHRvIGhlbHAgQ2FqYSBjb21wbGlhbmNlIChpdCBhc3N1bWVzIHRoaW5ncwogICAgICogb24gYSByZXF1aXJlIHRoYXQgYXJlIG5vdCBzdGFuZGFyZGl6ZWQpLCBhbmQgdG8gZ2l2ZSBhIHNob3J0CiAgICAgKiBuYW1lIGZvciBtaW5pZmljYXRpb24vbG9jYWwgc2NvcGUgdXNlLgogICAgICovCiAgICByZXEgPSByZXF1aXJlanMgPSBmdW5jdGlvbiAoZGVwcywgY2FsbGJhY2ssIGVycmJhY2ssIG9wdGlvbmFsKSB7CgogICAgICAgIC8vRmluZCB0aGUgcmlnaHQgY29udGV4dCwgdXNlIGRlZmF1bHQKICAgICAgICB2YXIgY29udGV4dCwgY29uZmlnLAogICAgICAgICAgICBjb250ZXh0TmFtZSA9IGRlZkNvbnRleHROYW1lOwoKICAgICAgICAvLyBEZXRlcm1pbmUgaWYgaGF2ZSBjb25maWcgb2JqZWN0IGluIHRoZSBjYWxsLgogICAgICAgIGlmICghaXNBcnJheShkZXBzKSAmJiB0eXBlb2YgZGVwcyAhPT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgLy8gZGVwcyBpcyBhIGNvbmZpZyBvYmplY3QKICAgICAgICAgICAgY29uZmlnID0gZGVwczsKICAgICAgICAgICAgaWYgKGlzQXJyYXkoY2FsbGJhY2spKSB7CiAgICAgICAgICAgICAgICAvLyBBZGp1c3QgYXJncyBpZiB0aGVyZSBhcmUgZGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICBkZXBzID0gY2FsbGJhY2s7CiAgICAgICAgICAgICAgICBjYWxsYmFjayA9IGVycmJhY2s7CiAgICAgICAgICAgICAgICBlcnJiYWNrID0gb3B0aW9uYWw7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkZXBzID0gW107CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmNvbnRleHQpIHsKICAgICAgICAgICAgY29udGV4dE5hbWUgPSBjb25maWcuY29udGV4dDsKICAgICAgICB9CgogICAgICAgIGNvbnRleHQgPSBnZXRPd24oY29udGV4dHMsIGNvbnRleHROYW1lKTsKICAgICAgICBpZiAoIWNvbnRleHQpIHsKICAgICAgICAgICAgY29udGV4dCA9IGNvbnRleHRzW2NvbnRleHROYW1lXSA9IHJlcS5zLm5ld0NvbnRleHQoY29udGV4dE5hbWUpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGNvbmZpZykgewogICAgICAgICAgICBjb250ZXh0LmNvbmZpZ3VyZShjb25maWcpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGNvbnRleHQucmVxdWlyZShkZXBzLCBjYWxsYmFjaywgZXJyYmFjayk7CiAgICB9OwoKICAgIC8qKgogICAgICogU3VwcG9ydCByZXF1aXJlLmNvbmZpZygpIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGNvb3BlcmF0ZSB3aXRoIG90aGVyCiAgICAgKiBBTUQgbG9hZGVycyBvbiBnbG9iYWxseSBhZ3JlZWQgbmFtZXMuCiAgICAgKi8KICAgIHJlcS5jb25maWcgPSBmdW5jdGlvbiAoY29uZmlnKSB7CiAgICAgICAgcmV0dXJuIHJlcShjb25maWcpOwogICAgfTsKCiAgICAvKioKICAgICAqIEV4ZWN1dGUgc29tZXRoaW5nIGFmdGVyIHRoZSBjdXJyZW50IHRpY2sKICAgICAqIG9mIHRoZSBldmVudCBsb29wLiBPdmVycmlkZSBmb3Igb3RoZXIgZW52cwogICAgICogdGhhdCBoYXZlIGEgYmV0dGVyIHNvbHV0aW9uIHRoYW4gc2V0VGltZW91dC4KICAgICAqIEBwYXJhbSAge0Z1bmN0aW9ufSBmbiBmdW5jdGlvbiB0byBleGVjdXRlIGxhdGVyLgogICAgICovCiAgICByZXEubmV4dFRpY2sgPSB0eXBlb2Ygc2V0VGltZW91dCAhPT0gJ3VuZGVmaW5lZCcgPyBmdW5jdGlvbiAoZm4pIHsKICAgICAgICBzZXRUaW1lb3V0KGZuLCA0KTsKICAgIH0gOiBmdW5jdGlvbiAoZm4pIHsgZm4oKTsgfTsKCiAgICAvKioKICAgICAqIEV4cG9ydCByZXF1aXJlIGFzIGEgZ2xvYmFsLCBidXQgb25seSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0LgogICAgICovCiAgICBpZiAoIXJlcXVpcmUpIHsKICAgICAgICByZXF1aXJlID0gcmVxOwogICAgfQoKICAgIHJlcS52ZXJzaW9uID0gdmVyc2lvbjsKCiAgICAvL1VzZWQgdG8gZmlsdGVyIG91dCBkZXBlbmRlbmNpZXMgdGhhdCBhcmUgYWxyZWFkeSBwYXRocy4KICAgIHJlcS5qc0V4dFJlZ0V4cCA9IC9eXC98OnxcP3xcLmpzJC87CiAgICByZXEuaXNCcm93c2VyID0gaXNCcm93c2VyOwogICAgcyA9IHJlcS5zID0gewogICAgICAgIGNvbnRleHRzOiBjb250ZXh0cywKICAgICAgICBuZXdDb250ZXh0OiBuZXdDb250ZXh0CiAgICB9OwoKICAgIC8vQ3JlYXRlIGRlZmF1bHQgY29udGV4dC4KICAgIHJlcSh7fSk7CgogICAgLy9FeHBvcnRzIHNvbWUgY29udGV4dC1zZW5zaXRpdmUgbWV0aG9kcyBvbiBnbG9iYWwgcmVxdWlyZS4KICAgIGVhY2goWwogICAgICAgICd0b1VybCcsCiAgICAgICAgJ3VuZGVmJywKICAgICAgICAnZGVmaW5lZCcsCiAgICAgICAgJ3NwZWNpZmllZCcKICAgIF0sIGZ1bmN0aW9uIChwcm9wKSB7CiAgICAgICAgLy9SZWZlcmVuY2UgZnJvbSBjb250ZXh0cyBpbnN0ZWFkIG9mIGVhcmx5IGJpbmRpbmcgdG8gZGVmYXVsdCBjb250ZXh0LAogICAgICAgIC8vc28gdGhhdCBkdXJpbmcgYnVpbGRzLCB0aGUgbGF0ZXN0IGluc3RhbmNlIG9mIHRoZSBkZWZhdWx0IGNvbnRleHQKICAgICAgICAvL3dpdGggaXRzIGNvbmZpZyBnZXRzIHVzZWQuCiAgICAgICAgcmVxW3Byb3BdID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgY3R4ID0gY29udGV4dHNbZGVmQ29udGV4dE5hbWVdOwogICAgICAgICAgICByZXR1cm4gY3R4LnJlcXVpcmVbcHJvcF0uYXBwbHkoY3R4LCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICB9KTsKCiAgICBpZiAoaXNCcm93c2VyKSB7CiAgICAgICAgaGVhZCA9IHMuaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07CiAgICAgICAgLy9JZiBCQVNFIHRhZyBpcyBpbiBwbGF5LCB1c2luZyBhcHBlbmRDaGlsZCBpcyBhIHByb2JsZW0gZm9yIElFNi4KICAgICAgICAvL1doZW4gdGhhdCBicm93c2VyIGRpZXMsIHRoaXMgY2FuIGJlIHJlbW92ZWQuIERldGFpbHMgaW4gdGhpcyBqUXVlcnkgYnVnOgogICAgICAgIC8vaHR0cDovL2Rldi5qcXVlcnkuY29tL3RpY2tldC8yNzA5CiAgICAgICAgYmFzZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYmFzZScpWzBdOwogICAgICAgIGlmIChiYXNlRWxlbWVudCkgewogICAgICAgICAgICBoZWFkID0gcy5oZWFkID0gYmFzZUVsZW1lbnQucGFyZW50Tm9kZTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBBbnkgZXJyb3JzIHRoYXQgcmVxdWlyZSBleHBsaWNpdGx5IGdlbmVyYXRlcyB3aWxsIGJlIHBhc3NlZCB0byB0aGlzCiAgICAgKiBmdW5jdGlvbi4gSW50ZXJjZXB0L292ZXJyaWRlIGl0IGlmIHlvdSB3YW50IGN1c3RvbSBlcnJvciBoYW5kbGluZy4KICAgICAqIEBwYXJhbSB7RXJyb3J9IGVyciB0aGUgZXJyb3Igb2JqZWN0LgogICAgICovCiAgICByZXEub25FcnJvciA9IGRlZmF1bHRPbkVycm9yOwoKICAgIC8qKgogICAgICogQ3JlYXRlcyB0aGUgbm9kZSBmb3IgdGhlIGxvYWQgY29tbWFuZC4gT25seSB1c2VkIGluIGJyb3dzZXIgZW52cy4KICAgICAqLwogICAgcmVxLmNyZWF0ZU5vZGUgPSBmdW5jdGlvbiAoY29uZmlnLCBtb2R1bGVOYW1lLCB1cmwpIHsKICAgICAgICB2YXIgbm9kZSA9IGNvbmZpZy54aHRtbCA/CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnaHRtbDpzY3JpcHQnKSA6CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBub2RlLnR5cGUgPSBjb25maWcuc2NyaXB0VHlwZSB8fCAndGV4dC9qYXZhc2NyaXB0JzsKICAgICAgICBub2RlLmNoYXJzZXQgPSAndXRmLTgnOwogICAgICAgIG5vZGUuYXN5bmMgPSB0cnVlOwogICAgICAgIHJldHVybiBub2RlOwogICAgfTsKCiAgICAvKioKICAgICAqIERvZXMgdGhlIHJlcXVlc3QgdG8gbG9hZCBhIG1vZHVsZSBmb3IgdGhlIGJyb3dzZXIgY2FzZS4KICAgICAqIE1ha2UgdGhpcyBhIHNlcGFyYXRlIGZ1bmN0aW9uIHRvIGFsbG93IG90aGVyIGVudmlyb25tZW50cwogICAgICogdG8gb3ZlcnJpZGUgaXQuCiAgICAgKgogICAgICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHQgdGhlIHJlcXVpcmUgY29udGV4dCB0byBmaW5kIHN0YXRlLgogICAgICogQHBhcmFtIHtTdHJpbmd9IG1vZHVsZU5hbWUgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZS4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSB1cmwgdGhlIFVSTCB0byB0aGUgbW9kdWxlLgogICAgICovCiAgICByZXEubG9hZCA9IGZ1bmN0aW9uIChjb250ZXh0LCBtb2R1bGVOYW1lLCB1cmwpIHsKICAgICAgICB2YXIgY29uZmlnID0gKGNvbnRleHQgJiYgY29udGV4dC5jb25maWcpIHx8IHt9LAogICAgICAgICAgICBub2RlOwogICAgICAgIGlmIChpc0Jyb3dzZXIpIHsKICAgICAgICAgICAgLy9JbiB0aGUgYnJvd3NlciBzbyB1c2UgYSBzY3JpcHQgdGFnCiAgICAgICAgICAgIG5vZGUgPSByZXEuY3JlYXRlTm9kZShjb25maWcsIG1vZHVsZU5hbWUsIHVybCk7CgogICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlY29udGV4dCcsIGNvbnRleHQuY29udGV4dE5hbWUpOwogICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlbW9kdWxlJywgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAvL1NldCB1cCBsb2FkIGxpc3RlbmVyLiBUZXN0IGF0dGFjaEV2ZW50IGZpcnN0IGJlY2F1c2UgSUU5IGhhcwogICAgICAgICAgICAvL2Egc3VidGxlIGlzc3VlIGluIGl0cyBhZGRFdmVudExpc3RlbmVyIGFuZCBzY3JpcHQgb25sb2FkIGZpcmluZ3MKICAgICAgICAgICAgLy90aGF0IGRvIG5vdCBtYXRjaCB0aGUgYmVoYXZpb3Igb2YgYWxsIG90aGVyIGJyb3dzZXJzIHdpdGgKICAgICAgICAgICAgLy9hZGRFdmVudExpc3RlbmVyIHN1cHBvcnQsIHdoaWNoIGZpcmUgdGhlIG9ubG9hZCBldmVudCBmb3IgYQogICAgICAgICAgICAvL3NjcmlwdCByaWdodCBhZnRlciB0aGUgc2NyaXB0IGV4ZWN1dGlvbi4gU2VlOgogICAgICAgICAgICAvL2h0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL0lFL2ZlZWRiYWNrL2RldGFpbHMvNjQ4MDU3L3NjcmlwdC1vbmxvYWQtZXZlbnQtaXMtbm90LWZpcmVkLWltbWVkaWF0ZWx5LWFmdGVyLXNjcmlwdC1leGVjdXRpb24KICAgICAgICAgICAgLy9VTkZPUlRVTkFURUxZIE9wZXJhIGltcGxlbWVudHMgYXR0YWNoRXZlbnQgYnV0IGRvZXMgbm90IGZvbGxvdyB0aGUgc2NyaXB0CiAgICAgICAgICAgIC8vc2NyaXB0IGV4ZWN1dGlvbiBtb2RlLgogICAgICAgICAgICBpZiAobm9kZS5hdHRhY2hFdmVudCAmJgogICAgICAgICAgICAgICAgICAgIC8vQ2hlY2sgaWYgbm9kZS5hdHRhY2hFdmVudCBpcyBhcnRpZmljaWFsbHkgYWRkZWQgYnkgY3VzdG9tIHNjcmlwdCBvcgogICAgICAgICAgICAgICAgICAgIC8vbmF0aXZlbHkgc3VwcG9ydGVkIGJ5IGJyb3dzZXIKICAgICAgICAgICAgICAgICAgICAvL3JlYWQgaHR0cHM6Ly9naXRodWIuY29tL3JlcXVpcmVqcy9yZXF1aXJlanMvaXNzdWVzLzE4NwogICAgICAgICAgICAgICAgICAgIC8vaWYgd2UgY2FuIE5PVCBmaW5kIFtuYXRpdmUgY29kZV0gdGhlbiBpdCBtdXN0IE5PVCBuYXRpdmVseSBzdXBwb3J0ZWQuCiAgICAgICAgICAgICAgICAgICAgLy9pbiBJRTgsIG5vZGUuYXR0YWNoRXZlbnQgZG9lcyBub3QgaGF2ZSB0b1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgLy9Ob3RlIHRoZSB0ZXN0IGZvciAiW25hdGl2ZSBjb2RlIiB3aXRoIG5vIGNsb3NpbmcgYnJhY2UsIHNlZToKICAgICAgICAgICAgICAgICAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9yZXF1aXJlanMvcmVxdWlyZWpzL2lzc3Vlcy8yNzMKICAgICAgICAgICAgICAgICAgICAhKG5vZGUuYXR0YWNoRXZlbnQudG9TdHJpbmcgJiYgbm9kZS5hdHRhY2hFdmVudC50b1N0cmluZygpLmluZGV4T2YoJ1tuYXRpdmUgY29kZScpIDwgMCkgJiYKICAgICAgICAgICAgICAgICAgICAhaXNPcGVyYSkgewogICAgICAgICAgICAgICAgLy9Qcm9iYWJseSBJRS4gSUUgKGF0IGxlYXN0IDYtOCkgZG8gbm90IGZpcmUKICAgICAgICAgICAgICAgIC8vc2NyaXB0IG9ubG9hZCByaWdodCBhZnRlciBleGVjdXRpbmcgdGhlIHNjcmlwdCwgc28KICAgICAgICAgICAgICAgIC8vd2UgY2Fubm90IHRpZSB0aGUgYW5vbnltb3VzIGRlZmluZSBjYWxsIHRvIGEgbmFtZS4KICAgICAgICAgICAgICAgIC8vSG93ZXZlciwgSUUgcmVwb3J0cyB0aGUgc2NyaXB0IGFzIGJlaW5nIGluICdpbnRlcmFjdGl2ZScKICAgICAgICAgICAgICAgIC8vcmVhZHlTdGF0ZSBhdCB0aGUgdGltZSBvZiB0aGUgZGVmaW5lIGNhbGwuCiAgICAgICAgICAgICAgICB1c2VJbnRlcmFjdGl2ZSA9IHRydWU7CgogICAgICAgICAgICAgICAgbm9kZS5hdHRhY2hFdmVudCgnb25yZWFkeXN0YXRlY2hhbmdlJywgY29udGV4dC5vblNjcmlwdExvYWQpOwogICAgICAgICAgICAgICAgLy9JdCB3b3VsZCBiZSBncmVhdCB0byBhZGQgYW4gZXJyb3IgaGFuZGxlciBoZXJlIHRvIGNhdGNoCiAgICAgICAgICAgICAgICAvLzQwNHMgaW4gSUU5Ky4gSG93ZXZlciwgb25yZWFkeXN0YXRlY2hhbmdlIHdpbGwgZmlyZSBiZWZvcmUKICAgICAgICAgICAgICAgIC8vdGhlIGVycm9yIGhhbmRsZXIsIHNvIHRoYXQgZG9lcyBub3QgaGVscC4gSWYgYWRkRXZlbnRMaXN0ZW5lcgogICAgICAgICAgICAgICAgLy9pcyB1c2VkLCB0aGVuIElFIHdpbGwgZmlyZSBlcnJvciBiZWZvcmUgbG9hZCwgYnV0IHdlIGNhbm5vdAogICAgICAgICAgICAgICAgLy91c2UgdGhhdCBwYXRod2F5IGdpdmVuIHRoZSBjb25uZWN0Lm1pY3Jvc29mdC5jb20gaXNzdWUKICAgICAgICAgICAgICAgIC8vbWVudGlvbmVkIGFib3ZlIGFib3V0IG5vdCBkb2luZyB0aGUgJ3NjcmlwdCBleGVjdXRlLAogICAgICAgICAgICAgICAgLy90aGVuIGZpcmUgdGhlIHNjcmlwdCBsb2FkIGV2ZW50IGxpc3RlbmVyIGJlZm9yZSBleGVjdXRlCiAgICAgICAgICAgICAgICAvL25leHQgc2NyaXB0JyB0aGF0IG90aGVyIGJyb3dzZXJzIGRvLgogICAgICAgICAgICAgICAgLy9CZXN0IGhvcGU6IElFMTAgZml4ZXMgdGhlIGlzc3VlcywKICAgICAgICAgICAgICAgIC8vYW5kIHRoZW4gZGVzdHJveXMgYWxsIGluc3RhbGxzIG9mIElFIDYtOS4KICAgICAgICAgICAgICAgIC8vbm9kZS5hdHRhY2hFdmVudCgnb25lcnJvcicsIGNvbnRleHQub25TY3JpcHRFcnJvcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb250ZXh0Lm9uU2NyaXB0TG9hZCwgZmFsc2UpOwogICAgICAgICAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGNvbnRleHQub25TY3JpcHRFcnJvciwgZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5vZGUuc3JjID0gdXJsOwoKICAgICAgICAgICAgLy9DYWxsaW5nIG9uTm9kZUNyZWF0ZWQgYWZ0ZXIgYWxsIHByb3BlcnRpZXMgb24gdGhlIG5vZGUgaGF2ZSBiZWVuCiAgICAgICAgICAgIC8vc2V0LCBidXQgYmVmb3JlIGl0IGlzIHBsYWNlZCBpbiB0aGUgRE9NLgogICAgICAgICAgICBpZiAoY29uZmlnLm9uTm9kZUNyZWF0ZWQpIHsKICAgICAgICAgICAgICAgIGNvbmZpZy5vbk5vZGVDcmVhdGVkKG5vZGUsIGNvbmZpZywgbW9kdWxlTmFtZSwgdXJsKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9Gb3Igc29tZSBjYWNoZSBjYXNlcyBpbiBJRSA2LTgsIHRoZSBzY3JpcHQgZXhlY3V0ZXMgYmVmb3JlIHRoZSBlbmQKICAgICAgICAgICAgLy9vZiB0aGUgYXBwZW5kQ2hpbGQgZXhlY3V0aW9uLCBzbyB0byB0aWUgYW4gYW5vbnltb3VzIGRlZmluZQogICAgICAgICAgICAvL2NhbGwgdG8gdGhlIG1vZHVsZSBuYW1lICh3aGljaCBpcyBzdG9yZWQgb24gdGhlIG5vZGUpLCBob2xkIG9uCiAgICAgICAgICAgIC8vdG8gYSByZWZlcmVuY2UgdG8gdGhpcyBub2RlLCBidXQgY2xlYXIgYWZ0ZXIgdGhlIERPTSBpbnNlcnRpb24uCiAgICAgICAgICAgIGN1cnJlbnRseUFkZGluZ1NjcmlwdCA9IG5vZGU7CiAgICAgICAgICAgIGlmIChiYXNlRWxlbWVudCkgewogICAgICAgICAgICAgICAgaGVhZC5pbnNlcnRCZWZvcmUobm9kZSwgYmFzZUVsZW1lbnQpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChub2RlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjdXJyZW50bHlBZGRpbmdTY3JpcHQgPSBudWxsOwoKICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgICAgfSBlbHNlIGlmIChpc1dlYldvcmtlcikgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgLy9JbiBhIHdlYiB3b3JrZXIsIHVzZSBpbXBvcnRTY3JpcHRzLiBUaGlzIGlzIG5vdCBhIHZlcnkKICAgICAgICAgICAgICAgIC8vZWZmaWNpZW50IHVzZSBvZiBpbXBvcnRTY3JpcHRzLCBpbXBvcnRTY3JpcHRzIHdpbGwgYmxvY2sgdW50aWwKICAgICAgICAgICAgICAgIC8vaXRzIHNjcmlwdCBpcyBkb3dubG9hZGVkIGFuZCBldmFsdWF0ZWQuIEhvd2V2ZXIsIGlmIHdlYiB3b3JrZXJzCiAgICAgICAgICAgICAgICAvL2FyZSBpbiBwbGF5LCB0aGUgZXhwZWN0YXRpb24gaXMgdGhhdCBhIGJ1aWxkIGhhcyBiZWVuIGRvbmUgc28KICAgICAgICAgICAgICAgIC8vdGhhdCBvbmx5IG9uZSBzY3JpcHQgbmVlZHMgdG8gYmUgbG9hZGVkIGFueXdheS4gVGhpcyBtYXkgbmVlZAogICAgICAgICAgICAgICAgLy90byBiZSByZWV2YWx1YXRlZCBpZiBvdGhlciB1c2UgY2FzZXMgYmVjb21lIGNvbW1vbi4KCiAgICAgICAgICAgICAgICAvLyBQb3N0IGEgdGFzayB0byB0aGUgZXZlbnQgbG9vcCB0byB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBXZWJLaXQKICAgICAgICAgICAgICAgIC8vIHdoZXJlIHRoZSB3b3JrZXIgZ2V0cyBnYXJiYWdlLWNvbGxlY3RlZCBhZnRlciBjYWxsaW5nCiAgICAgICAgICAgICAgICAvLyBpbXBvcnRTY3JpcHRzKCk6IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MzMxNwogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHt9LCAwKTsKICAgICAgICAgICAgICAgIGltcG9ydFNjcmlwdHModXJsKTsKCiAgICAgICAgICAgICAgICAvL0FjY291bnQgZm9yIGFub255bW91cyBtb2R1bGVzCiAgICAgICAgICAgICAgICBjb250ZXh0LmNvbXBsZXRlTG9hZChtb2R1bGVOYW1lKTsKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgY29udGV4dC5vbkVycm9yKG1ha2VFcnJvcignaW1wb3J0c2NyaXB0cycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ltcG9ydFNjcmlwdHMgZmFpbGVkIGZvciAnICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlTmFtZSArICcgYXQgJyArIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2R1bGVOYW1lXSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfTsKCiAgICBmdW5jdGlvbiBnZXRJbnRlcmFjdGl2ZVNjcmlwdCgpIHsKICAgICAgICBpZiAoaW50ZXJhY3RpdmVTY3JpcHQgJiYgaW50ZXJhY3RpdmVTY3JpcHQucmVhZHlTdGF0ZSA9PT0gJ2ludGVyYWN0aXZlJykgewogICAgICAgICAgICByZXR1cm4gaW50ZXJhY3RpdmVTY3JpcHQ7CiAgICAgICAgfQoKICAgICAgICBlYWNoUmV2ZXJzZShzY3JpcHRzKCksIGZ1bmN0aW9uIChzY3JpcHQpIHsKICAgICAgICAgICAgaWYgKHNjcmlwdC5yZWFkeVN0YXRlID09PSAnaW50ZXJhY3RpdmUnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKGludGVyYWN0aXZlU2NyaXB0ID0gc2NyaXB0KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHJldHVybiBpbnRlcmFjdGl2ZVNjcmlwdDsKICAgIH0KCiAgICAvL0xvb2sgZm9yIGEgZGF0YS1tYWluIHNjcmlwdCBhdHRyaWJ1dGUsIHdoaWNoIGNvdWxkIGFsc28gYWRqdXN0IHRoZSBiYXNlVXJsLgogICAgaWYgKGlzQnJvd3NlciAmJiAhY2ZnLnNraXBEYXRhTWFpbikgewogICAgICAgIC8vRmlndXJlIG91dCBiYXNlVXJsLiBHZXQgaXQgZnJvbSB0aGUgc2NyaXB0IHRhZyB3aXRoIHJlcXVpcmUuanMgaW4gaXQuCiAgICAgICAgZWFjaFJldmVyc2Uoc2NyaXB0cygpLCBmdW5jdGlvbiAoc2NyaXB0KSB7CiAgICAgICAgICAgIC8vU2V0IHRoZSAnaGVhZCcgd2hlcmUgd2UgY2FuIGFwcGVuZCBjaGlsZHJlbiBieQogICAgICAgICAgICAvL3VzaW5nIHRoZSBzY3JpcHQncyBwYXJlbnQuCiAgICAgICAgICAgIGlmICghaGVhZCkgewogICAgICAgICAgICAgICAgaGVhZCA9IHNjcmlwdC5wYXJlbnROb2RlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL0xvb2sgZm9yIGEgZGF0YS1tYWluIGF0dHJpYnV0ZSB0byBzZXQgbWFpbiBzY3JpcHQgZm9yIHRoZSBwYWdlCiAgICAgICAgICAgIC8vdG8gbG9hZC4gSWYgaXQgaXMgdGhlcmUsIHRoZSBwYXRoIHRvIGRhdGEgbWFpbiBiZWNvbWVzIHRoZQogICAgICAgICAgICAvL2Jhc2VVcmwsIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHNldC4KICAgICAgICAgICAgZGF0YU1haW4gPSBzY3JpcHQuZ2V0QXR0cmlidXRlKCdkYXRhLW1haW4nKTsKICAgICAgICAgICAgaWYgKGRhdGFNYWluKSB7CiAgICAgICAgICAgICAgICAvL1ByZXNlcnZlIGRhdGFNYWluIGluIGNhc2UgaXQgaXMgYSBwYXRoIChpLmUuIGNvbnRhaW5zICc/JykKICAgICAgICAgICAgICAgIG1haW5TY3JpcHQgPSBkYXRhTWFpbjsKCiAgICAgICAgICAgICAgICAvL1NldCBmaW5hbCBiYXNlVXJsIGlmIHRoZXJlIGlzIG5vdCBhbHJlYWR5IGFuIGV4cGxpY2l0IG9uZSwKICAgICAgICAgICAgICAgIC8vYnV0IG9ubHkgZG8gc28gaWYgdGhlIGRhdGEtbWFpbiB2YWx1ZSBpcyBub3QgYSBsb2FkZXIgcGx1Z2luCiAgICAgICAgICAgICAgICAvL21vZHVsZSBJRC4KICAgICAgICAgICAgICAgIGlmICghY2ZnLmJhc2VVcmwgJiYgbWFpblNjcmlwdC5pbmRleE9mKCchJykgPT09IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgLy9QdWxsIG9mZiB0aGUgZGlyZWN0b3J5IG9mIGRhdGEtbWFpbiBmb3IgdXNlIGFzIHRoZQogICAgICAgICAgICAgICAgICAgIC8vYmFzZVVybC4KICAgICAgICAgICAgICAgICAgICBzcmMgPSBtYWluU2NyaXB0LnNwbGl0KCcvJyk7CiAgICAgICAgICAgICAgICAgICAgbWFpblNjcmlwdCA9IHNyYy5wb3AoKTsKICAgICAgICAgICAgICAgICAgICBzdWJQYXRoID0gc3JjLmxlbmd0aCA/IHNyYy5qb2luKCcvJykgICsgJy8nIDogJy4vJzsKCiAgICAgICAgICAgICAgICAgICAgY2ZnLmJhc2VVcmwgPSBzdWJQYXRoOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vU3RyaXAgb2ZmIGFueSB0cmFpbGluZyAuanMgc2luY2UgbWFpblNjcmlwdCBpcyBub3cKICAgICAgICAgICAgICAgIC8vbGlrZSBhIG1vZHVsZSBuYW1lLgogICAgICAgICAgICAgICAgbWFpblNjcmlwdCA9IG1haW5TY3JpcHQucmVwbGFjZShqc1N1ZmZpeFJlZ0V4cCwgJycpOwoKICAgICAgICAgICAgICAgIC8vSWYgbWFpblNjcmlwdCBpcyBzdGlsbCBhIHBhdGgsIGZhbGwgYmFjayB0byBkYXRhTWFpbgogICAgICAgICAgICAgICAgaWYgKHJlcS5qc0V4dFJlZ0V4cC50ZXN0KG1haW5TY3JpcHQpKSB7CiAgICAgICAgICAgICAgICAgICAgbWFpblNjcmlwdCA9IGRhdGFNYWluOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vUHV0IHRoZSBkYXRhLW1haW4gc2NyaXB0IGluIHRoZSBmaWxlcyB0byBsb2FkLgogICAgICAgICAgICAgICAgY2ZnLmRlcHMgPSBjZmcuZGVwcyA/IGNmZy5kZXBzLmNvbmNhdChtYWluU2NyaXB0KSA6IFttYWluU2NyaXB0XTsKCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBkZWZpbml0aW9ucyBvZiBtb2R1bGVzLiBEaWZmZXJzIGZyb20KICAgICAqIHJlcXVpcmUoKSBpbiB0aGF0IGEgc3RyaW5nIGZvciB0aGUgbW9kdWxlIHNob3VsZCBiZSB0aGUgZmlyc3QgYXJndW1lbnQsCiAgICAgKiBhbmQgdGhlIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgYWZ0ZXIgZGVwZW5kZW5jaWVzIGFyZSBsb2FkZWQgc2hvdWxkCiAgICAgKiByZXR1cm4gYSB2YWx1ZSB0byBkZWZpbmUgdGhlIG1vZHVsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaXJzdCBhcmd1bWVudCdzCiAgICAgKiBuYW1lLgogICAgICovCiAgICBkZWZpbmUgPSBmdW5jdGlvbiAobmFtZSwgZGVwcywgY2FsbGJhY2spIHsKICAgICAgICB2YXIgbm9kZSwgY29udGV4dDsKCiAgICAgICAgLy9BbGxvdyBmb3IgYW5vbnltb3VzIG1vZHVsZXMKICAgICAgICBpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgIC8vQWRqdXN0IGFyZ3MgYXBwcm9wcmlhdGVseQogICAgICAgICAgICBjYWxsYmFjayA9IGRlcHM7CiAgICAgICAgICAgIGRlcHMgPSBuYW1lOwogICAgICAgICAgICBuYW1lID0gbnVsbDsKICAgICAgICB9CgogICAgICAgIC8vVGhpcyBtb2R1bGUgbWF5IG5vdCBoYXZlIGRlcGVuZGVuY2llcwogICAgICAgIGlmICghaXNBcnJheShkZXBzKSkgewogICAgICAgICAgICBjYWxsYmFjayA9IGRlcHM7CiAgICAgICAgICAgIGRlcHMgPSBudWxsOwogICAgICAgIH0KCiAgICAgICAgLy9JZiBubyBuYW1lLCBhbmQgY2FsbGJhY2sgaXMgYSBmdW5jdGlvbiwgdGhlbiBmaWd1cmUgb3V0IGlmIGl0IGEKICAgICAgICAvL0NvbW1vbkpTIHRoaW5nIHdpdGggZGVwZW5kZW5jaWVzLgogICAgICAgIGlmICghZGVwcyAmJiBpc0Z1bmN0aW9uKGNhbGxiYWNrKSkgewogICAgICAgICAgICBkZXBzID0gW107CiAgICAgICAgICAgIC8vUmVtb3ZlIGNvbW1lbnRzIGZyb20gdGhlIGNhbGxiYWNrIHN0cmluZywKICAgICAgICAgICAgLy9sb29rIGZvciByZXF1aXJlIGNhbGxzLCBhbmQgcHVsbCB0aGVtIGludG8gdGhlIGRlcGVuZGVuY2llcywKICAgICAgICAgICAgLy9idXQgb25seSBpZiB0aGVyZSBhcmUgZnVuY3Rpb24gYXJncy4KICAgICAgICAgICAgaWYgKGNhbGxiYWNrLmxlbmd0aCkgewogICAgICAgICAgICAgICAgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAudG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKGNvbW1lbnRSZWdFeHAsIGNvbW1lbnRSZXBsYWNlKQogICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKGNqc1JlcXVpcmVSZWdFeHAsIGZ1bmN0aW9uIChtYXRjaCwgZGVwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlcHMucHVzaChkZXApOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIC8vTWF5IGJlIGEgQ29tbW9uSlMgdGhpbmcgZXZlbiB3aXRob3V0IHJlcXVpcmUgY2FsbHMsIGJ1dCBzdGlsbAogICAgICAgICAgICAgICAgLy9jb3VsZCB1c2UgZXhwb3J0cywgYW5kIG1vZHVsZS4gQXZvaWQgZG9pbmcgZXhwb3J0cyBhbmQgbW9kdWxlCiAgICAgICAgICAgICAgICAvL3dvcmsgdGhvdWdoIGlmIGl0IGp1c3QgbmVlZHMgcmVxdWlyZS4KICAgICAgICAgICAgICAgIC8vUkVRVUlSRVMgdGhlIGZ1bmN0aW9uIHRvIGV4cGVjdCB0aGUgQ29tbW9uSlMgdmFyaWFibGVzIGluIHRoZQogICAgICAgICAgICAgICAgLy9vcmRlciBsaXN0ZWQgYmVsb3cuCiAgICAgICAgICAgICAgICBkZXBzID0gKGNhbGxiYWNrLmxlbmd0aCA9PT0gMSA/IFsncmVxdWlyZSddIDogWydyZXF1aXJlJywgJ2V4cG9ydHMnLCAnbW9kdWxlJ10pLmNvbmNhdChkZXBzKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy9JZiBpbiBJRSA2LTggYW5kIGhpdCBhbiBhbm9ueW1vdXMgZGVmaW5lKCkgY2FsbCwgZG8gdGhlIGludGVyYWN0aXZlCiAgICAgICAgLy93b3JrLgogICAgICAgIGlmICh1c2VJbnRlcmFjdGl2ZSkgewogICAgICAgICAgICBub2RlID0gY3VycmVudGx5QWRkaW5nU2NyaXB0IHx8IGdldEludGVyYWN0aXZlU2NyaXB0KCk7CiAgICAgICAgICAgIGlmIChub2RlKSB7CiAgICAgICAgICAgICAgICBpZiAoIW5hbWUpIHsKICAgICAgICAgICAgICAgICAgICBuYW1lID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmVxdWlyZW1vZHVsZScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29udGV4dCA9IGNvbnRleHRzW25vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXJlcXVpcmVjb250ZXh0JyldOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvL0Fsd2F5cyBzYXZlIG9mZiBldmFsdWF0aW5nIHRoZSBkZWYgY2FsbCB1bnRpbCB0aGUgc2NyaXB0IG9ubG9hZCBoYW5kbGVyLgogICAgICAgIC8vVGhpcyBhbGxvd3MgbXVsdGlwbGUgbW9kdWxlcyB0byBiZSBpbiBhIGZpbGUgd2l0aG91dCBwcmVtYXR1cmVseQogICAgICAgIC8vdHJhY2luZyBkZXBlbmRlbmNpZXMsIGFuZCBhbGxvd3MgZm9yIGFub255bW91cyBtb2R1bGUgc3VwcG9ydCwKICAgICAgICAvL3doZXJlIHRoZSBtb2R1bGUgbmFtZSBpcyBub3Qga25vd24gdW50aWwgdGhlIHNjcmlwdCBvbmxvYWQgZXZlbnQKICAgICAgICAvL29jY3Vycy4gSWYgbm8gY29udGV4dCwgdXNlIHRoZSBnbG9iYWwgcXVldWUsIGFuZCBnZXQgaXQgcHJvY2Vzc2VkCiAgICAgICAgLy9pbiB0aGUgb25zY3JpcHQgbG9hZCBjYWxsYmFjay4KICAgICAgICBpZiAoY29udGV4dCkgewogICAgICAgICAgICBjb250ZXh0LmRlZlF1ZXVlLnB1c2goW25hbWUsIGRlcHMsIGNhbGxiYWNrXSk7CiAgICAgICAgICAgIGNvbnRleHQuZGVmUXVldWVNYXBbbmFtZV0gPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGdsb2JhbERlZlF1ZXVlLnB1c2goW25hbWUsIGRlcHMsIGNhbGxiYWNrXSk7CiAgICAgICAgfQogICAgfTsKCiAgICBkZWZpbmUuYW1kID0gewogICAgICAgIGpRdWVyeTogdHJ1ZQogICAgfTsKCiAgICAvKioKICAgICAqIEV4ZWN1dGVzIHRoZSB0ZXh0LiBOb3JtYWxseSBqdXN0IHVzZXMgZXZhbCwgYnV0IGNhbiBiZSBtb2RpZmllZAogICAgICogdG8gdXNlIGEgYmV0dGVyLCBlbnZpcm9ubWVudC1zcGVjaWZpYyBjYWxsLiBPbmx5IHVzZWQgZm9yIHRyYW5zcGlsaW5nCiAgICAgKiBsb2FkZXIgcGx1Z2lucywgbm90IGZvciBwbGFpbiBKUyBtb2R1bGVzLgogICAgICogQHBhcmFtIHtTdHJpbmd9IHRleHQgdGhlIHRleHQgdG8gZXhlY3V0ZS9ldmFsdWF0ZS4KICAgICAqLwogICAgcmVxLmV4ZWMgPSBmdW5jdGlvbiAodGV4dCkgewogICAgICAgIC8qanNsaW50IGV2aWw6IHRydWUgKi8KICAgICAgICByZXR1cm4gZXZhbCh0ZXh0KTsKICAgIH07CgogICAgLy9TZXQgdXAgd2l0aCBjb25maWcgaW5mby4KICAgIHJlcShjZmcpOwp9KHRoaXMsICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBzZXRUaW1lb3V0KSkpOwoKLy8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLy8KLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLy8gICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAovLwovLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgohZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9LGM9e307IWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhKXtpZigibnVtYmVyIj09dHlwZW9mIGEpcmV0dXJuIGE7dmFyIGI9e307Zm9yKHZhciBjIGluIGEpYltjXT1hW2NdO3JldHVybiBifWZ1bmN0aW9uIGQoKXt0aGlzLl9kZWxheT0wLHRoaXMuX2VuZERlbGF5PTAsdGhpcy5fZmlsbD0ibm9uZSIsdGhpcy5faXRlcmF0aW9uU3RhcnQ9MCx0aGlzLl9pdGVyYXRpb25zPTEsdGhpcy5fZHVyYXRpb249MCx0aGlzLl9wbGF5YmFja1JhdGU9MSx0aGlzLl9kaXJlY3Rpb249Im5vcm1hbCIsdGhpcy5fZWFzaW5nPSJsaW5lYXIiLHRoaXMuX2Vhc2luZ0Z1bmN0aW9uPXh9ZnVuY3Rpb24gZSgpe3JldHVybiBhLmlzRGVwcmVjYXRlZCgiSW52YWxpZCB0aW1pbmcgaW5wdXRzIiwiMjAxNi0wMy0wMiIsIlR5cGVFcnJvciBleGNlcHRpb25zIHdpbGwgYmUgdGhyb3duIGluc3RlYWQuIiwhMCl9ZnVuY3Rpb24gZihiLGMsZSl7dmFyIGY9bmV3IGQ7cmV0dXJuIGMmJihmLmZpbGw9ImJvdGgiLGYuZHVyYXRpb249ImF1dG8iKSwibnVtYmVyIiE9dHlwZW9mIGJ8fGlzTmFOKGIpP3ZvaWQgMCE9PWImJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGIpLmZvckVhY2goZnVuY3Rpb24oYyl7aWYoImF1dG8iIT1iW2NdKXtpZigoIm51bWJlciI9PXR5cGVvZiBmW2NdfHwiZHVyYXRpb24iPT1jKSYmKCJudW1iZXIiIT10eXBlb2YgYltjXXx8aXNOYU4oYltjXSkpKXJldHVybjtpZigiZmlsbCI9PWMmJi0xPT12LmluZGV4T2YoYltjXSkpcmV0dXJuO2lmKCJkaXJlY3Rpb24iPT1jJiYtMT09dy5pbmRleE9mKGJbY10pKXJldHVybjtpZigicGxheWJhY2tSYXRlIj09YyYmMSE9PWJbY10mJmEuaXNEZXByZWNhdGVkKCJBbmltYXRpb25FZmZlY3RUaW1pbmcucGxheWJhY2tSYXRlIiwiMjAxNC0xMS0yOCIsIlVzZSBBbmltYXRpb24ucGxheWJhY2tSYXRlIGluc3RlYWQuIikpcmV0dXJuO2ZbY109YltjXX19KTpmLmR1cmF0aW9uPWIsZn1mdW5jdGlvbiBnKGEpe3JldHVybiJudW1iZXIiPT10eXBlb2YgYSYmKGE9aXNOYU4oYSk/e2R1cmF0aW9uOjB9OntkdXJhdGlvbjphfSksYX1mdW5jdGlvbiBoKGIsYyl7cmV0dXJuIGI9YS5udW1lcmljVGltaW5nVG9PYmplY3QoYiksZihiLGMpfWZ1bmN0aW9uIGkoYSxiLGMsZCl7cmV0dXJuIGE8MHx8YT4xfHxjPDB8fGM+MT94OmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGYoYSxiLGMpe3JldHVybiAzKmEqKDEtYykqKDEtYykqYyszKmIqKDEtYykqYypjK2MqYypjfWlmKGU8PTApe3ZhciBnPTA7cmV0dXJuIGE+MD9nPWIvYTohYiYmYz4wJiYoZz1kL2MpLGcqZX1pZihlPj0xKXt2YXIgaD0wO3JldHVybiBjPDE/aD0oZC0xKS8oYy0xKToxPT1jJiZhPDEmJihoPShiLTEpLyhhLTEpKSwxK2gqKGUtMSl9Zm9yKHZhciBpPTAsaj0xO2k8ajspe3ZhciBrPShpK2opLzIsbD1mKGEsYyxrKTtpZihNYXRoLmFicyhlLWwpPDFlLTUpcmV0dXJuIGYoYixkLGspO2w8ZT9pPWs6aj1rfXJldHVybiBmKGIsZCxrKX19ZnVuY3Rpb24gaihhLGIpe3JldHVybiBmdW5jdGlvbihjKXtpZihjPj0xKXJldHVybiAxO3ZhciBkPTEvYTtyZXR1cm4oYys9YipkKS1jJWR9fWZ1bmN0aW9uIGsoYSl7Q3x8KEM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUpLEMuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb249IiIsQy5hbmltYXRpb25UaW1pbmdGdW5jdGlvbj1hO3ZhciBiPUMuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb247aWYoIiI9PWImJmUoKSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgZWFzaW5nIik7cmV0dXJuIGJ9ZnVuY3Rpb24gbChhKXtpZigibGluZWFyIj09YSlyZXR1cm4geDt2YXIgYj1FLmV4ZWMoYSk7aWYoYilyZXR1cm4gaS5hcHBseSh0aGlzLGIuc2xpY2UoMSkubWFwKE51bWJlcikpO3ZhciBjPUYuZXhlYyhhKTtpZihjKXJldHVybiBqKE51bWJlcihjWzFdKSxBKTt2YXIgZD1HLmV4ZWMoYSk7cmV0dXJuIGQ/aihOdW1iZXIoZFsxXSkse3N0YXJ0OnksbWlkZGxlOnosZW5kOkF9W2RbMl1dKTpCW2FdfHx4fWZ1bmN0aW9uIG0oYSl7cmV0dXJuIE1hdGguYWJzKG4oYSkvYS5wbGF5YmFja1JhdGUpfWZ1bmN0aW9uIG4oYSl7cmV0dXJuIDA9PT1hLmR1cmF0aW9ufHwwPT09YS5pdGVyYXRpb25zPzA6YS5kdXJhdGlvbiphLml0ZXJhdGlvbnN9ZnVuY3Rpb24gbyhhLGIsYyl7aWYobnVsbD09YilyZXR1cm4gSDt2YXIgZD1jLmRlbGF5K2ErYy5lbmREZWxheTtyZXR1cm4gYjxNYXRoLm1pbihjLmRlbGF5LGQpP0k6Yj49TWF0aC5taW4oYy5kZWxheSthLGQpP0o6S31mdW5jdGlvbiBwKGEsYixjLGQsZSl7c3dpdGNoKGQpe2Nhc2UgSTpyZXR1cm4iYmFja3dhcmRzIj09Ynx8ImJvdGgiPT1iPzA6bnVsbDtjYXNlIEs6cmV0dXJuIGMtZTtjYXNlIEo6cmV0dXJuImZvcndhcmRzIj09Ynx8ImJvdGgiPT1iP2E6bnVsbDtjYXNlIEg6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHEoYSxiLGMsZCxlKXt2YXIgZj1lO3JldHVybiAwPT09YT9iIT09SSYmKGYrPWMpOmYrPWQvYSxmfWZ1bmN0aW9uIHIoYSxiLGMsZCxlLGYpe3ZhciBnPWE9PT0xLzA/YiUxOmElMTtyZXR1cm4gMCE9PWd8fGMhPT1KfHwwPT09ZHx8MD09PWUmJjAhPT1mfHwoZz0xKSxnfWZ1bmN0aW9uIHMoYSxiLGMsZCl7cmV0dXJuIGE9PT1KJiZiPT09MS8wPzEvMDoxPT09Yz9NYXRoLmZsb29yKGQpLTE6TWF0aC5mbG9vcihkKX1mdW5jdGlvbiB0KGEsYixjKXt2YXIgZD1hO2lmKCJub3JtYWwiIT09YSYmInJldmVyc2UiIT09YSl7dmFyIGU9YjsiYWx0ZXJuYXRlLXJldmVyc2UiPT09YSYmKGUrPTEpLGQ9Im5vcm1hbCIsZSE9PTEvMCYmZSUyIT0wJiYoZD0icmV2ZXJzZSIpfXJldHVybiJub3JtYWwiPT09ZD9jOjEtY31mdW5jdGlvbiB1KGEsYixjKXt2YXIgZD1vKGEsYixjKSxlPXAoYSxjLmZpbGwsYixkLGMuZGVsYXkpO2lmKG51bGw9PT1lKXJldHVybiBudWxsO3ZhciBmPXEoYy5kdXJhdGlvbixkLGMuaXRlcmF0aW9ucyxlLGMuaXRlcmF0aW9uU3RhcnQpLGc9cihmLGMuaXRlcmF0aW9uU3RhcnQsZCxjLml0ZXJhdGlvbnMsZSxjLmR1cmF0aW9uKSxoPXMoZCxjLml0ZXJhdGlvbnMsZyxmKSxpPXQoYy5kaXJlY3Rpb24saCxnKTtyZXR1cm4gYy5fZWFzaW5nRnVuY3Rpb24oaSl9dmFyIHY9ImJhY2t3YXJkc3xmb3J3YXJkc3xib3RofG5vbmUiLnNwbGl0KCJ8Iiksdz0icmV2ZXJzZXxhbHRlcm5hdGV8YWx0ZXJuYXRlLXJldmVyc2UiLnNwbGl0KCJ8IikseD1mdW5jdGlvbihhKXtyZXR1cm4gYX07ZC5wcm90b3R5cGU9e19zZXRNZW1iZXI6ZnVuY3Rpb24oYixjKXt0aGlzWyJfIitiXT1jLHRoaXMuX2VmZmVjdCYmKHRoaXMuX2VmZmVjdC5fdGltaW5nSW5wdXRbYl09Yyx0aGlzLl9lZmZlY3QuX3RpbWluZz1hLm5vcm1hbGl6ZVRpbWluZ0lucHV0KHRoaXMuX2VmZmVjdC5fdGltaW5nSW5wdXQpLHRoaXMuX2VmZmVjdC5hY3RpdmVEdXJhdGlvbj1hLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKHRoaXMuX2VmZmVjdC5fdGltaW5nKSx0aGlzLl9lZmZlY3QuX2FuaW1hdGlvbiYmdGhpcy5fZWZmZWN0Ll9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCkpfSxnZXQgcGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMuX3BsYXliYWNrUmF0ZX0sc2V0IGRlbGF5KGEpe3RoaXMuX3NldE1lbWJlcigiZGVsYXkiLGEpfSxnZXQgZGVsYXkoKXtyZXR1cm4gdGhpcy5fZGVsYXl9LHNldCBlbmREZWxheShhKXt0aGlzLl9zZXRNZW1iZXIoImVuZERlbGF5IixhKX0sZ2V0IGVuZERlbGF5KCl7cmV0dXJuIHRoaXMuX2VuZERlbGF5fSxzZXQgZmlsbChhKXt0aGlzLl9zZXRNZW1iZXIoImZpbGwiLGEpfSxnZXQgZmlsbCgpe3JldHVybiB0aGlzLl9maWxsfSxzZXQgaXRlcmF0aW9uU3RhcnQoYSl7aWYoKGlzTmFOKGEpfHxhPDApJiZlKCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaXRlcmF0aW9uU3RhcnQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIsIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9uU3RhcnQiLGEpfSxnZXQgaXRlcmF0aW9uU3RhcnQoKXtyZXR1cm4gdGhpcy5faXRlcmF0aW9uU3RhcnR9LHNldCBkdXJhdGlvbihhKXtpZigiYXV0byIhPWEmJihpc05hTihhKXx8YTwwKSYmZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoImR1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlIG9yIGF1dG8sIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiZHVyYXRpb24iLGEpfSxnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fZHVyYXRpb259LHNldCBkaXJlY3Rpb24oYSl7dGhpcy5fc2V0TWVtYmVyKCJkaXJlY3Rpb24iLGEpfSxnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpcmVjdGlvbn0sc2V0IGVhc2luZyhhKXt0aGlzLl9lYXNpbmdGdW5jdGlvbj1sKGsoYSkpLHRoaXMuX3NldE1lbWJlcigiZWFzaW5nIixhKX0sZ2V0IGVhc2luZygpe3JldHVybiB0aGlzLl9lYXNpbmd9LHNldCBpdGVyYXRpb25zKGEpe2lmKChpc05hTihhKXx8YTwwKSYmZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIml0ZXJhdGlvbnMgbXVzdCBiZSBub24tbmVnYXRpdmUsIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9ucyIsYSl9LGdldCBpdGVyYXRpb25zKCl7cmV0dXJuIHRoaXMuX2l0ZXJhdGlvbnN9fTt2YXIgeT0xLHo9LjUsQT0wLEI9e2Vhc2U6aSguMjUsLjEsLjI1LDEpLCJlYXNlLWluIjppKC40MiwwLDEsMSksImVhc2Utb3V0IjppKDAsMCwuNTgsMSksImVhc2UtaW4tb3V0IjppKC40MiwwLC41OCwxKSwic3RlcC1zdGFydCI6aigxLHkpLCJzdGVwLW1pZGRsZSI6aigxLHopLCJzdGVwLWVuZCI6aigxLEEpfSxDPW51bGwsRD0iXFxzKigtP1xcZCtcXC4/XFxkKnwtP1xcLlxcZCspXFxzKiIsRT1uZXcgUmVnRXhwKCJjdWJpYy1iZXppZXJcXCgiK0QrIiwiK0QrIiwiK0QrIiwiK0QrIlxcKSIpLEY9L3N0ZXBzXChccyooXGQrKVxzKlwpLyxHPS9zdGVwc1woXHMqKFxkKylccyosXHMqKHN0YXJ0fG1pZGRsZXxlbmQpXHMqXCkvLEg9MCxJPTEsSj0yLEs9MzthLmNsb25lVGltaW5nSW5wdXQ9YyxhLm1ha2VUaW1pbmc9ZixhLm51bWVyaWNUaW1pbmdUb09iamVjdD1nLGEubm9ybWFsaXplVGltaW5nSW5wdXQ9aCxhLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uPW0sYS5jYWxjdWxhdGVJdGVyYXRpb25Qcm9ncmVzcz11LGEuY2FsY3VsYXRlUGhhc2U9byxhLm5vcm1hbGl6ZUVhc2luZz1rLGEucGFyc2VFYXNpbmdGdW5jdGlvbj1sfShhKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSxiKXtyZXR1cm4gYSBpbiBrP2tbYV1bYl18fGI6Yn1mdW5jdGlvbiBkKGEpe3JldHVybiJkaXNwbGF5Ij09PWF8fDA9PT1hLmxhc3RJbmRleE9mKCJhbmltYXRpb24iLDApfHwwPT09YS5sYXN0SW5kZXhPZigidHJhbnNpdGlvbiIsMCl9ZnVuY3Rpb24gZShhLGIsZSl7aWYoIWQoYSkpe3ZhciBmPWhbYV07aWYoZil7aS5zdHlsZVthXT1iO2Zvcih2YXIgZyBpbiBmKXt2YXIgaj1mW2ddLGs9aS5zdHlsZVtqXTtlW2pdPWMoaixrKX19ZWxzZSBlW2FdPWMoYSxiKX19ZnVuY3Rpb24gZihhKXt2YXIgYj1bXTtmb3IodmFyIGMgaW4gYSlpZighKGMgaW5bImVhc2luZyIsIm9mZnNldCIsImNvbXBvc2l0ZSJdKSl7dmFyIGQ9YVtjXTtBcnJheS5pc0FycmF5KGQpfHwoZD1bZF0pO2Zvcih2YXIgZSxmPWQubGVuZ3RoLGc9MDtnPGY7ZysrKWU9e30sZS5vZmZzZXQ9Im9mZnNldCJpbiBhP2Eub2Zmc2V0OjE9PWY/MTpnLyhmLTEpLCJlYXNpbmciaW4gYSYmKGUuZWFzaW5nPWEuZWFzaW5nKSwiY29tcG9zaXRlImluIGEmJihlLmNvbXBvc2l0ZT1hLmNvbXBvc2l0ZSksZVtjXT1kW2ddLGIucHVzaChlKX1yZXR1cm4gYi5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEub2Zmc2V0LWIub2Zmc2V0fSksYn1mdW5jdGlvbiBnKGIpe2Z1bmN0aW9uIGMoKXt2YXIgYT1kLmxlbmd0aDtudWxsPT1kW2EtMV0ub2Zmc2V0JiYoZFthLTFdLm9mZnNldD0xKSxhPjEmJm51bGw9PWRbMF0ub2Zmc2V0JiYoZFswXS5vZmZzZXQ9MCk7Zm9yKHZhciBiPTAsYz1kWzBdLm9mZnNldCxlPTE7ZTxhO2UrKyl7dmFyIGY9ZFtlXS5vZmZzZXQ7aWYobnVsbCE9Zil7Zm9yKHZhciBnPTE7ZzxlLWI7ZysrKWRbYitnXS5vZmZzZXQ9YysoZi1jKSpnLyhlLWIpO2I9ZSxjPWZ9fX1pZihudWxsPT1iKXJldHVybltdO3dpbmRvdy5TeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmQXJyYXkucHJvdG90eXBlLmZyb20mJmJbU3ltYm9sLml0ZXJhdG9yXSYmKGI9QXJyYXkuZnJvbShiKSksQXJyYXkuaXNBcnJheShiKXx8KGI9ZihiKSk7Zm9yKHZhciBkPWIubWFwKGZ1bmN0aW9uKGIpe3ZhciBjPXt9O2Zvcih2YXIgZCBpbiBiKXt2YXIgZj1iW2RdO2lmKCJvZmZzZXQiPT1kKXtpZihudWxsIT1mKXtpZihmPU51bWJlcihmKSwhaXNGaW5pdGUoZikpdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5ZnJhbWUgb2Zmc2V0cyBtdXN0IGJlIG51bWJlcnMuIik7aWYoZjwwfHxmPjEpdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5ZnJhbWUgb2Zmc2V0cyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMS4iKX19ZWxzZSBpZigiY29tcG9zaXRlIj09ZCl7aWYoImFkZCI9PWZ8fCJhY2N1bXVsYXRlIj09Zil0aHJvd3t0eXBlOkRPTUV4Y2VwdGlvbi5OT1RfU1VQUE9SVEVEX0VSUixuYW1lOiJOb3RTdXBwb3J0ZWRFcnJvciIsbWVzc2FnZToiYWRkIGNvbXBvc2l0aW5nIGlzIG5vdCBzdXBwb3J0ZWQifTtpZigicmVwbGFjZSIhPWYpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBjb21wb3NpdGUgbW9kZSAiK2YrIi4iKX1lbHNlIGY9ImVhc2luZyI9PWQ/YS5ub3JtYWxpemVFYXNpbmcoZik6IiIrZjtlKGQsZixjKX1yZXR1cm4gdm9pZCAwPT1jLm9mZnNldCYmKGMub2Zmc2V0PW51bGwpLHZvaWQgMD09Yy5lYXNpbmcmJihjLmVhc2luZz0ibGluZWFyIiksY30pLGc9ITAsaD0tMS8wLGk9MDtpPGQubGVuZ3RoO2krKyl7dmFyIGo9ZFtpXS5vZmZzZXQ7aWYobnVsbCE9ail7aWYoajxoKXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lcyBhcmUgbm90IGxvb3NlbHkgc29ydGVkIGJ5IG9mZnNldC4gU29ydCBvciBzcGVjaWZ5IG9mZnNldHMuIik7aD1qfWVsc2UgZz0hMX1yZXR1cm4gZD1kLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5vZmZzZXQ+PTAmJmEub2Zmc2V0PD0xfSksZ3x8YygpLGR9dmFyIGg9e2JhY2tncm91bmQ6WyJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kU2l6ZSIsImJhY2tncm91bmRSZXBlYXQiLCJiYWNrZ3JvdW5kQXR0YWNobWVudCIsImJhY2tncm91bmRPcmlnaW4iLCJiYWNrZ3JvdW5kQ2xpcCIsImJhY2tncm91bmRDb2xvciJdLGJvcmRlcjpbImJvcmRlclRvcENvbG9yIiwiYm9yZGVyVG9wU3R5bGUiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlclJpZ2h0Q29sb3IiLCJib3JkZXJSaWdodFN0eWxlIiwiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbUNvbG9yIiwiYm9yZGVyQm90dG9tU3R5bGUiLCJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckxlZnRDb2xvciIsImJvcmRlckxlZnRTdHlsZSIsImJvcmRlckxlZnRXaWR0aCJdLGJvcmRlckJvdHRvbTpbImJvcmRlckJvdHRvbVdpZHRoIiwiYm9yZGVyQm90dG9tU3R5bGUiLCJib3JkZXJCb3R0b21Db2xvciJdLGJvcmRlckNvbG9yOlsiYm9yZGVyVG9wQ29sb3IiLCJib3JkZXJSaWdodENvbG9yIiwiYm9yZGVyQm90dG9tQ29sb3IiLCJib3JkZXJMZWZ0Q29sb3IiXSxib3JkZXJMZWZ0OlsiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyTGVmdENvbG9yIl0sYm9yZGVyUmFkaXVzOlsiYm9yZGVyVG9wTGVmdFJhZGl1cyIsImJvcmRlclRvcFJpZ2h0UmFkaXVzIiwiYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMiLCJib3JkZXJCb3R0b21MZWZ0UmFkaXVzIl0sYm9yZGVyUmlnaHQ6WyJib3JkZXJSaWdodFdpZHRoIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlclJpZ2h0Q29sb3IiXSxib3JkZXJUb3A6WyJib3JkZXJUb3BXaWR0aCIsImJvcmRlclRvcFN0eWxlIiwiYm9yZGVyVG9wQ29sb3IiXSxib3JkZXJXaWR0aDpbImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwiYm9yZGVyTGVmdFdpZHRoIl0sZmxleDpbImZsZXhHcm93IiwiZmxleFNocmluayIsImZsZXhCYXNpcyJdLGZvbnQ6WyJmb250RmFtaWx5IiwiZm9udFNpemUiLCJmb250U3R5bGUiLCJmb250VmFyaWFudCIsImZvbnRXZWlnaHQiLCJsaW5lSGVpZ2h0Il0sbWFyZ2luOlsibWFyZ2luVG9wIiwibWFyZ2luUmlnaHQiLCJtYXJnaW5Cb3R0b20iLCJtYXJnaW5MZWZ0Il0sb3V0bGluZTpbIm91dGxpbmVDb2xvciIsIm91dGxpbmVTdHlsZSIsIm91dGxpbmVXaWR0aCJdLHBhZGRpbmc6WyJwYWRkaW5nVG9wIiwicGFkZGluZ1JpZ2h0IiwicGFkZGluZ0JvdHRvbSIsInBhZGRpbmdMZWZ0Il19LGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZGl2Iiksaj17dGhpbjoiMXB4IixtZWRpdW06IjNweCIsdGhpY2s6IjVweCJ9LGs9e2JvcmRlckJvdHRvbVdpZHRoOmosYm9yZGVyTGVmdFdpZHRoOmosYm9yZGVyUmlnaHRXaWR0aDpqLGJvcmRlclRvcFdpZHRoOmosZm9udFNpemU6eyJ4eC1zbWFsbCI6IjYwJSIsIngtc21hbGwiOiI3NSUiLHNtYWxsOiI4OSUiLG1lZGl1bToiMTAwJSIsbGFyZ2U6IjEyMCUiLCJ4LWxhcmdlIjoiMTUwJSIsInh4LWxhcmdlIjoiMjAwJSJ9LGZvbnRXZWlnaHQ6e25vcm1hbDoiNDAwIixib2xkOiI3MDAifSxvdXRsaW5lV2lkdGg6aix0ZXh0U2hhZG93Ontub25lOiIwcHggMHB4IDBweCB0cmFuc3BhcmVudCJ9LGJveFNoYWRvdzp7bm9uZToiMHB4IDBweCAwcHggMHB4IHRyYW5zcGFyZW50In19O2EuY29udmVydFRvQXJyYXlGb3JtPWYsYS5ub3JtYWxpemVLZXlmcmFtZXM9Z30oYSksZnVuY3Rpb24oYSl7dmFyIGI9e307YS5pc0RlcHJlY2F0ZWQ9ZnVuY3Rpb24oYSxjLGQsZSl7dmFyIGY9ZT8iYXJlIjoiaXMiLGc9bmV3IERhdGUsaD1uZXcgRGF0ZShjKTtyZXR1cm4gaC5zZXRNb250aChoLmdldE1vbnRoKCkrMyksIShnPGgmJihhIGluIGJ8fGNvbnNvbGUud2FybigiV2ViIEFuaW1hdGlvbnM6ICIrYSsiICIrZisiIGRlcHJlY2F0ZWQgYW5kIHdpbGwgc3RvcCB3b3JraW5nIG9uICIraC50b0RhdGVTdHJpbmcoKSsiLiAiK2QpLGJbYV09ITAsMSkpfSxhLmRlcHJlY2F0ZWQ9ZnVuY3Rpb24oYixjLGQsZSl7dmFyIGY9ZT8iYXJlIjoiaXMiO2lmKGEuaXNEZXByZWNhdGVkKGIsYyxkLGUpKXRocm93IG5ldyBFcnJvcihiKyIgIitmKyIgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gIitkKX19KGEpLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFuaW1hdGUpe3ZhciBjPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hbmltYXRlKFtdLDApLGQ9ITA7aWYoYyYmKGQ9ITEsInBsYXl8Y3VycmVudFRpbWV8cGF1c2V8cmV2ZXJzZXxwbGF5YmFja1JhdGV8Y2FuY2VsfGZpbmlzaHxzdGFydFRpbWV8cGxheVN0YXRlIi5zcGxpdCgifCIpLmZvckVhY2goZnVuY3Rpb24oYSl7dm9pZCAwPT09Y1thXSYmKGQ9ITApfSkpLCFkKXJldHVybn0hZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7Zm9yKHZhciBiPXt9LGM9MDtjPGEubGVuZ3RoO2MrKylmb3IodmFyIGQgaW4gYVtjXSlpZigib2Zmc2V0IiE9ZCYmImVhc2luZyIhPWQmJiJjb21wb3NpdGUiIT1kKXt2YXIgZT17b2Zmc2V0OmFbY10ub2Zmc2V0LGVhc2luZzphW2NdLmVhc2luZyx2YWx1ZTphW2NdW2RdfTtiW2RdPWJbZF18fFtdLGJbZF0ucHVzaChlKX1mb3IodmFyIGYgaW4gYil7dmFyIGc9YltmXTtpZigwIT1nWzBdLm9mZnNldHx8MSE9Z1tnLmxlbmd0aC0xXS5vZmZzZXQpdGhyb3d7dHlwZTpET01FeGNlcHRpb24uTk9UX1NVUFBPUlRFRF9FUlIsbmFtZToiTm90U3VwcG9ydGVkRXJyb3IiLG1lc3NhZ2U6IlBhcnRpYWwga2V5ZnJhbWVzIGFyZSBub3Qgc3VwcG9ydGVkIn19cmV0dXJuIGJ9ZnVuY3Rpb24gZShjKXt2YXIgZD1bXTtmb3IodmFyIGUgaW4gYylmb3IodmFyIGY9Y1tlXSxnPTA7ZzxmLmxlbmd0aC0xO2crKyl7dmFyIGg9ZyxpPWcrMSxqPWZbaF0ub2Zmc2V0LGs9ZltpXS5vZmZzZXQsbD1qLG09azswPT1nJiYobD0tMS8wLDA9PWsmJihpPWgpKSxnPT1mLmxlbmd0aC0yJiYobT0xLzAsMT09aiYmKGg9aSkpLGQucHVzaCh7YXBwbHlGcm9tOmwsYXBwbHlUbzptLHN0YXJ0T2Zmc2V0OmZbaF0ub2Zmc2V0LGVuZE9mZnNldDpmW2ldLm9mZnNldCxlYXNpbmdGdW5jdGlvbjphLnBhcnNlRWFzaW5nRnVuY3Rpb24oZltoXS5lYXNpbmcpLHByb3BlcnR5OmUsaW50ZXJwb2xhdGlvbjpiLnByb3BlcnR5SW50ZXJwb2xhdGlvbihlLGZbaF0udmFsdWUsZltpXS52YWx1ZSl9KX1yZXR1cm4gZC5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuc3RhcnRPZmZzZXQtYi5zdGFydE9mZnNldH0pLGR9Yi5jb252ZXJ0RWZmZWN0SW5wdXQ9ZnVuY3Rpb24oYyl7dmFyIGY9YS5ub3JtYWxpemVLZXlmcmFtZXMoYyksZz1kKGYpLGg9ZShnKTtyZXR1cm4gZnVuY3Rpb24oYSxjKXtpZihudWxsIT1jKWguZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBjPj1hLmFwcGx5RnJvbSYmYzxhLmFwcGx5VG99KS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPWMtZC5zdGFydE9mZnNldCxmPWQuZW5kT2Zmc2V0LWQuc3RhcnRPZmZzZXQsZz0wPT1mPzA6ZC5lYXNpbmdGdW5jdGlvbihlL2YpO2IuYXBwbHkoYSxkLnByb3BlcnR5LGQuaW50ZXJwb2xhdGlvbihnKSl9KTtlbHNlIGZvcih2YXIgZCBpbiBnKSJvZmZzZXQiIT1kJiYiZWFzaW5nIiE9ZCYmImNvbXBvc2l0ZSIhPWQmJmIuY2xlYXIoYSxkKX19fShhLGIpLGZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEpe3JldHVybiBhLnJlcGxhY2UoLy0oLikvZyxmdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9KX1mdW5jdGlvbiBlKGEsYixjKXtoW2NdPWhbY118fFtdLGhbY10ucHVzaChbYSxiXSl9ZnVuY3Rpb24gZihhLGIsYyl7Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspe2UoYSxiLGQoY1tmXSkpfX1mdW5jdGlvbiBnKGMsZSxmKXt2YXIgZz1jOy8tLy50ZXN0KGMpJiYhYS5pc0RlcHJlY2F0ZWQoIkh5cGhlbmF0ZWQgcHJvcGVydHkgbmFtZXMiLCIyMDE2LTAzLTIyIiwiVXNlIGNhbWVsQ2FzZSBpbnN0ZWFkLiIsITApJiYoZz1kKGMpKSwiaW5pdGlhbCIhPWUmJiJpbml0aWFsIiE9Znx8KCJpbml0aWFsIj09ZSYmKGU9aVtnXSksImluaXRpYWwiPT1mJiYoZj1pW2ddKSk7Zm9yKHZhciBqPWU9PWY/W106aFtnXSxrPTA7aiYmazxqLmxlbmd0aDtrKyspe3ZhciBsPWpba11bMF0oZSksbT1qW2tdWzBdKGYpO2lmKHZvaWQgMCE9PWwmJnZvaWQgMCE9PW0pe3ZhciBuPWpba11bMV0obCxtKTtpZihuKXt2YXIgbz1iLkludGVycG9sYXRpb24uYXBwbHkobnVsbCxuKTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIDA9PWE/ZToxPT1hP2Y6byhhKX19fX1yZXR1cm4gYi5JbnRlcnBvbGF0aW9uKCExLCEwLGZ1bmN0aW9uKGEpe3JldHVybiBhP2Y6ZX0pfXZhciBoPXt9O2IuYWRkUHJvcGVydGllc0hhbmRsZXI9Zjt2YXIgaT17YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZFBvc2l0aW9uOiIwJSAwJSIsYm9yZGVyQm90dG9tQ29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyQm90dG9tTGVmdFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21SaWdodFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21XaWR0aDoiM3B4Iixib3JkZXJMZWZ0Q29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyTGVmdFdpZHRoOiIzcHgiLGJvcmRlclJpZ2h0Q29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyUmlnaHRXaWR0aDoiM3B4Iixib3JkZXJTcGFjaW5nOiIycHgiLGJvcmRlclRvcENvbG9yOiJjdXJyZW50Q29sb3IiLGJvcmRlclRvcExlZnRSYWRpdXM6IjBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjBweCIsYm9yZGVyVG9wV2lkdGg6IjNweCIsYm90dG9tOiJhdXRvIixjbGlwOiJyZWN0KDBweCwgMHB4LCAwcHgsIDBweCkiLGNvbG9yOiJibGFjayIsZm9udFNpemU6IjEwMCUiLGZvbnRXZWlnaHQ6IjQwMCIsaGVpZ2h0OiJhdXRvIixsZWZ0OiJhdXRvIixsZXR0ZXJTcGFjaW5nOiJub3JtYWwiLGxpbmVIZWlnaHQ6IjEyMCUiLG1hcmdpbkJvdHRvbToiMHB4IixtYXJnaW5MZWZ0OiIwcHgiLG1hcmdpblJpZ2h0OiIwcHgiLG1hcmdpblRvcDoiMHB4IixtYXhIZWlnaHQ6Im5vbmUiLG1heFdpZHRoOiJub25lIixtaW5IZWlnaHQ6IjBweCIsbWluV2lkdGg6IjBweCIsb3BhY2l0eToiMS4wIixvdXRsaW5lQ29sb3I6ImludmVydCIsb3V0bGluZU9mZnNldDoiMHB4IixvdXRsaW5lV2lkdGg6IjNweCIscGFkZGluZ0JvdHRvbToiMHB4IixwYWRkaW5nTGVmdDoiMHB4IixwYWRkaW5nUmlnaHQ6IjBweCIscGFkZGluZ1RvcDoiMHB4IixyaWdodDoiYXV0byIsc3Ryb2tlRGFzaGFycmF5OiJub25lIixzdHJva2VEYXNob2Zmc2V0OiIwcHgiLHRleHRJbmRlbnQ6IjBweCIsdGV4dFNoYWRvdzoiMHB4IDBweCAwcHggdHJhbnNwYXJlbnQiLHRvcDoiYXV0byIsdHJhbnNmb3JtOiIiLHZlcnRpY2FsQWxpZ246IjBweCIsdmlzaWJpbGl0eToidmlzaWJsZSIsd2lkdGg6ImF1dG8iLHdvcmRTcGFjaW5nOiJub3JtYWwiLHpJbmRleDoiYXV0byJ9O2IucHJvcGVydHlJbnRlcnBvbGF0aW9uPWd9KGEsYiksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYil7dmFyIGM9YS5jYWxjdWxhdGVBY3RpdmVEdXJhdGlvbihiKSxkPWZ1bmN0aW9uKGQpe3JldHVybiBhLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGMsZCxiKX07cmV0dXJuIGQuX3RvdGFsRHVyYXRpb249Yi5kZWxheStjK2IuZW5kRGVsYXksZH1iLktleWZyYW1lRWZmZWN0PWZ1bmN0aW9uKGMsZSxmLGcpe3ZhciBoLGk9ZChhLm5vcm1hbGl6ZVRpbWluZ0lucHV0KGYpKSxqPWIuY29udmVydEVmZmVjdElucHV0KGUpLGs9ZnVuY3Rpb24oKXtqKGMsaCl9O3JldHVybiBrLl91cGRhdGU9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPT0oaD1pKGEpKX0say5fY2xlYXI9ZnVuY3Rpb24oKXtqKGMsbnVsbCl9LGsuX2hhc1NhbWVUYXJnZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGM9PT1hfSxrLl90YXJnZXQ9YyxrLl90b3RhbER1cmF0aW9uPWkuX3RvdGFsRHVyYXRpb24say5faWQ9ZyxrfX0oYSxiKSxmdW5jdGlvbihhLGIpe2EuYXBwbHk9ZnVuY3Rpb24oYixjLGQpe2Iuc3R5bGVbYS5wcm9wZXJ0eU5hbWUoYyldPWR9LGEuY2xlYXI9ZnVuY3Rpb24oYixjKXtiLnN0eWxlW2EucHJvcGVydHlOYW1lKGMpXT0iIn19KGIpLGZ1bmN0aW9uKGEpe3dpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGIsYyl7dmFyIGQ9IiI7cmV0dXJuIGMmJmMuaWQmJihkPWMuaWQpLGEudGltZWxpbmUuX3BsYXkoYS5LZXlmcmFtZUVmZmVjdCh0aGlzLGIsYyxkKSl9fShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSxiLGQpe2lmKCJudW1iZXIiPT10eXBlb2YgYSYmIm51bWJlciI9PXR5cGVvZiBiKXJldHVybiBhKigxLWQpK2IqZDtpZigiYm9vbGVhbiI9PXR5cGVvZiBhJiYiYm9vbGVhbiI9PXR5cGVvZiBiKXJldHVybiBkPC41P2E6YjtpZihhLmxlbmd0aD09Yi5sZW5ndGgpe2Zvcih2YXIgZT1bXSxmPTA7ZjxhLmxlbmd0aDtmKyspZS5wdXNoKGMoYVtmXSxiW2ZdLGQpKTtyZXR1cm4gZX10aHJvdyJNaXNtYXRjaGVkIGludGVycG9sYXRpb24gYXJndW1lbnRzICIrYSsiOiIrYn1hLkludGVycG9sYXRpb249ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZChjKGEsYixlKSl9fX0oYiksZnVuY3Rpb24oYSxiLGMpe2Euc2VxdWVuY2VOdW1iZXI9MDt2YXIgZD1mdW5jdGlvbihhLGIsYyl7dGhpcy50YXJnZXQ9YSx0aGlzLmN1cnJlbnRUaW1lPWIsdGhpcy50aW1lbGluZVRpbWU9Yyx0aGlzLnR5cGU9ImZpbmlzaCIsdGhpcy5idWJibGVzPSExLHRoaXMuY2FuY2VsYWJsZT0hMSx0aGlzLmN1cnJlbnRUYXJnZXQ9YSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsdGhpcy5ldmVudFBoYXNlPUV2ZW50LkFUX1RBUkdFVCx0aGlzLnRpbWVTdGFtcD1EYXRlLm5vdygpfTtiLkFuaW1hdGlvbj1mdW5jdGlvbihiKXt0aGlzLmlkPSIiLGImJmIuX2lkJiYodGhpcy5pZD1iLl9pZCksdGhpcy5fc2VxdWVuY2VOdW1iZXI9YS5zZXF1ZW5jZU51bWJlcisrLHRoaXMuX2N1cnJlbnRUaW1lPTAsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy5fcGF1c2VkPSExLHRoaXMuX3BsYXliYWNrUmF0ZT0xLHRoaXMuX2luVGltZWxpbmU9ITAsdGhpcy5fZmluaXNoZWRGbGFnPSEwLHRoaXMub25maW5pc2g9bnVsbCx0aGlzLl9maW5pc2hIYW5kbGVycz1bXSx0aGlzLl9lZmZlY3Q9Yix0aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSgwKSx0aGlzLl9pZGxlPSEwLHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMX0sYi5BbmltYXRpb24ucHJvdG90eXBlPXtfZW5zdXJlQWxpdmU6ZnVuY3Rpb24oKXt0aGlzLnBsYXliYWNrUmF0ZTwwJiYwPT09dGhpcy5jdXJyZW50VGltZT90aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSgtMSk6dGhpcy5faW5FZmZlY3Q9dGhpcy5fZWZmZWN0Ll91cGRhdGUodGhpcy5jdXJyZW50VGltZSksdGhpcy5faW5UaW1lbGluZXx8IXRoaXMuX2luRWZmZWN0JiZ0aGlzLl9maW5pc2hlZEZsYWd8fCh0aGlzLl9pblRpbWVsaW5lPSEwLGIudGltZWxpbmUuX2FuaW1hdGlvbnMucHVzaCh0aGlzKSl9LF90aWNrQ3VycmVudFRpbWU6ZnVuY3Rpb24oYSxiKXthIT10aGlzLl9jdXJyZW50VGltZSYmKHRoaXMuX2N1cnJlbnRUaW1lPWEsdGhpcy5faXNGaW5pc2hlZCYmIWImJih0aGlzLl9jdXJyZW50VGltZT10aGlzLl9wbGF5YmFja1JhdGU+MD90aGlzLl90b3RhbER1cmF0aW9uOjApLHRoaXMuX2Vuc3VyZUFsaXZlKCkpfSxnZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy5faWRsZXx8dGhpcy5fY3VycmVudFRpbWVQZW5kaW5nP251bGw6dGhpcy5fY3VycmVudFRpbWV9LHNldCBjdXJyZW50VGltZShhKXthPSthLGlzTmFOKGEpfHwoYi5yZXN0YXJ0KCksdGhpcy5fcGF1c2VkfHxudWxsPT10aGlzLl9zdGFydFRpbWV8fCh0aGlzLl9zdGFydFRpbWU9dGhpcy5fdGltZWxpbmUuY3VycmVudFRpbWUtYS90aGlzLl9wbGF5YmFja1JhdGUpLHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMSx0aGlzLl9jdXJyZW50VGltZSE9YSYmKHRoaXMuX2lkbGUmJih0aGlzLl9pZGxlPSExLHRoaXMuX3BhdXNlZD0hMCksdGhpcy5fdGlja0N1cnJlbnRUaW1lKGEsITApLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKSl9LGdldCBzdGFydFRpbWUoKXtyZXR1cm4gdGhpcy5fc3RhcnRUaW1lfSxzZXQgc3RhcnRUaW1lKGEpe2E9K2EsaXNOYU4oYSl8fHRoaXMuX3BhdXNlZHx8dGhpcy5faWRsZXx8KHRoaXMuX3N0YXJ0VGltZT1hLHRoaXMuX3RpY2tDdXJyZW50VGltZSgodGhpcy5fdGltZWxpbmUuY3VycmVudFRpbWUtdGhpcy5fc3RhcnRUaW1lKSp0aGlzLnBsYXliYWNrUmF0ZSksYi5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcykpfSxnZXQgcGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMuX3BsYXliYWNrUmF0ZX0sc2V0IHBsYXliYWNrUmF0ZShhKXtpZihhIT10aGlzLl9wbGF5YmFja1JhdGUpe3ZhciBjPXRoaXMuY3VycmVudFRpbWU7dGhpcy5fcGxheWJhY2tSYXRlPWEsdGhpcy5fc3RhcnRUaW1lPW51bGwsInBhdXNlZCIhPXRoaXMucGxheVN0YXRlJiYiaWRsZSIhPXRoaXMucGxheVN0YXRlJiYodGhpcy5fZmluaXNoZWRGbGFnPSExLHRoaXMuX2lkbGU9ITEsdGhpcy5fZW5zdXJlQWxpdmUoKSxiLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSksbnVsbCE9YyYmKHRoaXMuY3VycmVudFRpbWU9Yyl9fSxnZXQgX2lzRmluaXNoZWQoKXtyZXR1cm4hdGhpcy5faWRsZSYmKHRoaXMuX3BsYXliYWNrUmF0ZT4wJiZ0aGlzLl9jdXJyZW50VGltZT49dGhpcy5fdG90YWxEdXJhdGlvbnx8dGhpcy5fcGxheWJhY2tSYXRlPDAmJnRoaXMuX2N1cnJlbnRUaW1lPD0wKX0sZ2V0IF90b3RhbER1cmF0aW9uKCl7cmV0dXJuIHRoaXMuX2VmZmVjdC5fdG90YWxEdXJhdGlvbn0sZ2V0IHBsYXlTdGF0ZSgpe3JldHVybiB0aGlzLl9pZGxlPyJpZGxlIjpudWxsPT10aGlzLl9zdGFydFRpbWUmJiF0aGlzLl9wYXVzZWQmJjAhPXRoaXMucGxheWJhY2tSYXRlfHx0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc/InBlbmRpbmciOnRoaXMuX3BhdXNlZD8icGF1c2VkIjp0aGlzLl9pc0ZpbmlzaGVkPyJmaW5pc2hlZCI6InJ1bm5pbmcifSxfcmV3aW5kOmZ1bmN0aW9uKCl7aWYodGhpcy5fcGxheWJhY2tSYXRlPj0wKXRoaXMuX2N1cnJlbnRUaW1lPTA7ZWxzZXtpZighKHRoaXMuX3RvdGFsRHVyYXRpb248MS8wKSl0aHJvdyBuZXcgRE9NRXhjZXB0aW9uKCJVbmFibGUgdG8gcmV3aW5kIG5lZ2F0aXZlIHBsYXliYWNrIHJhdGUgYW5pbWF0aW9uIHdpdGggaW5maW5pdGUgZHVyYXRpb24iLCJJbnZhbGlkU3RhdGVFcnJvciIpO3RoaXMuX2N1cnJlbnRUaW1lPXRoaXMuX3RvdGFsRHVyYXRpb259fSxwbGF5OmZ1bmN0aW9uKCl7dGhpcy5fcGF1c2VkPSExLCh0aGlzLl9pc0ZpbmlzaGVkfHx0aGlzLl9pZGxlKSYmKHRoaXMuX3Jld2luZCgpLHRoaXMuX3N0YXJ0VGltZT1udWxsKSx0aGlzLl9maW5pc2hlZEZsYWc9ITEsdGhpcy5faWRsZT0hMSx0aGlzLl9lbnN1cmVBbGl2ZSgpLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpfSxwYXVzZTpmdW5jdGlvbigpe3RoaXMuX2lzRmluaXNoZWR8fHRoaXMuX3BhdXNlZHx8dGhpcy5faWRsZT90aGlzLl9pZGxlJiYodGhpcy5fcmV3aW5kKCksdGhpcy5faWRsZT0hMSk6dGhpcy5fY3VycmVudFRpbWVQZW5kaW5nPSEwLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuX3BhdXNlZD0hMH0sZmluaXNoOmZ1bmN0aW9uKCl7dGhpcy5faWRsZXx8KHRoaXMuY3VycmVudFRpbWU9dGhpcy5fcGxheWJhY2tSYXRlPjA/dGhpcy5fdG90YWxEdXJhdGlvbjowLHRoaXMuX3N0YXJ0VGltZT10aGlzLl90b3RhbER1cmF0aW9uLXRoaXMuY3VycmVudFRpbWUsdGhpcy5fY3VycmVudFRpbWVQZW5kaW5nPSExLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKX0sY2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5faW5FZmZlY3QmJih0aGlzLl9pbkVmZmVjdD0hMSx0aGlzLl9pZGxlPSEwLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9maW5pc2hlZEZsYWc9ITAsdGhpcy5fY3VycmVudFRpbWU9MCx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLl9lZmZlY3QuX3VwZGF0ZShudWxsKSxiLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSl9LHJldmVyc2U6ZnVuY3Rpb24oKXt0aGlzLnBsYXliYWNrUmF0ZSo9LTEsdGhpcy5wbGF5KCl9LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXsiZnVuY3Rpb24iPT10eXBlb2YgYiYmImZpbmlzaCI9PWEmJnRoaXMuX2ZpbmlzaEhhbmRsZXJzLnB1c2goYil9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXtpZigiZmluaXNoIj09YSl7dmFyIGM9dGhpcy5fZmluaXNoSGFuZGxlcnMuaW5kZXhPZihiKTtjPj0wJiZ0aGlzLl9maW5pc2hIYW5kbGVycy5zcGxpY2UoYywxKX19LF9maXJlRXZlbnRzOmZ1bmN0aW9uKGEpe2lmKHRoaXMuX2lzRmluaXNoZWQpe2lmKCF0aGlzLl9maW5pc2hlZEZsYWcpe3ZhciBiPW5ldyBkKHRoaXMsdGhpcy5fY3VycmVudFRpbWUsYSksYz10aGlzLl9maW5pc2hIYW5kbGVycy5jb25jYXQodGhpcy5vbmZpbmlzaD9bdGhpcy5vbmZpbmlzaF06W10pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLmZvckVhY2goZnVuY3Rpb24oYSl7YS5jYWxsKGIudGFyZ2V0LGIpfSl9LDApLHRoaXMuX2ZpbmlzaGVkRmxhZz0hMH19ZWxzZSB0aGlzLl9maW5pc2hlZEZsYWc9ITF9LF90aWNrOmZ1bmN0aW9uKGEsYil7dGhpcy5faWRsZXx8dGhpcy5fcGF1c2VkfHwobnVsbD09dGhpcy5fc3RhcnRUaW1lP2ImJih0aGlzLnN0YXJ0VGltZT1hLXRoaXMuX2N1cnJlbnRUaW1lL3RoaXMucGxheWJhY2tSYXRlKTp0aGlzLl9pc0ZpbmlzaGVkfHx0aGlzLl90aWNrQ3VycmVudFRpbWUoKGEtdGhpcy5fc3RhcnRUaW1lKSp0aGlzLnBsYXliYWNrUmF0ZSkpLGImJih0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc9ITEsdGhpcy5fZmlyZUV2ZW50cyhhKSl9LGdldCBfbmVlZHNUaWNrKCl7cmV0dXJuIHRoaXMucGxheVN0YXRlIGlue3BlbmRpbmc6MSxydW5uaW5nOjF9fHwhdGhpcy5fZmluaXNoZWRGbGFnfSxfdGFyZ2V0QW5pbWF0aW9uczpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX2VmZmVjdC5fdGFyZ2V0O3JldHVybiBhLl9hY3RpdmVBbmltYXRpb25zfHwoYS5fYWN0aXZlQW5pbWF0aW9ucz1bXSksYS5fYWN0aXZlQW5pbWF0aW9uc30sX21hcmtUYXJnZXQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl90YXJnZXRBbmltYXRpb25zKCk7LTE9PT1hLmluZGV4T2YodGhpcykmJmEucHVzaCh0aGlzKX0sX3VubWFya1RhcmdldDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX3RhcmdldEFuaW1hdGlvbnMoKSxiPWEuaW5kZXhPZih0aGlzKTstMSE9PWImJmEuc3BsaWNlKGIsMSl9fX0oYSxiKSxmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChhKXt2YXIgYj1qO2o9W10sYTxxLmN1cnJlbnRUaW1lJiYoYT1xLmN1cnJlbnRUaW1lKSxxLl9hbmltYXRpb25zLnNvcnQoZSkscS5fYW5pbWF0aW9ucz1oKGEsITAscS5fYW5pbWF0aW9ucylbMF0sYi5mb3JFYWNoKGZ1bmN0aW9uKGIpe2JbMV0oYSl9KSxnKCksbD12b2lkIDB9ZnVuY3Rpb24gZShhLGIpe3JldHVybiBhLl9zZXF1ZW5jZU51bWJlci1iLl9zZXF1ZW5jZU51bWJlcn1mdW5jdGlvbiBmKCl7dGhpcy5fYW5pbWF0aW9ucz1bXSx0aGlzLmN1cnJlbnRUaW1lPXdpbmRvdy5wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOjB9ZnVuY3Rpb24gZygpe28uZm9yRWFjaChmdW5jdGlvbihhKXthKCl9KSxvLmxlbmd0aD0wfWZ1bmN0aW9uIGgoYSxjLGQpe3A9ITAsbj0hMSxiLnRpbWVsaW5lLmN1cnJlbnRUaW1lPWEsbT0hMTt2YXIgZT1bXSxmPVtdLGc9W10saD1bXTtyZXR1cm4gZC5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IuX3RpY2soYSxjKSxiLl9pbkVmZmVjdD8oZi5wdXNoKGIuX2VmZmVjdCksYi5fbWFya1RhcmdldCgpKTooZS5wdXNoKGIuX2VmZmVjdCksYi5fdW5tYXJrVGFyZ2V0KCkpLGIuX25lZWRzVGljayYmKG09ITApO3ZhciBkPWIuX2luRWZmZWN0fHxiLl9uZWVkc1RpY2s7Yi5faW5UaW1lbGluZT1kLGQ/Zy5wdXNoKGIpOmgucHVzaChiKX0pLG8ucHVzaC5hcHBseShvLGUpLG8ucHVzaC5hcHBseShvLGYpLG0mJnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLHA9ITEsW2csaF19dmFyIGk9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSxqPVtdLGs9MDt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lPWZ1bmN0aW9uKGEpe3ZhciBiPWsrKztyZXR1cm4gMD09ai5sZW5ndGgmJmkoZCksai5wdXNoKFtiLGFdKSxifSx3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oYSl7ai5mb3JFYWNoKGZ1bmN0aW9uKGIpe2JbMF09PWEmJihiWzFdPWZ1bmN0aW9uKCl7fSl9KX0sZi5wcm90b3R5cGU9e19wbGF5OmZ1bmN0aW9uKGMpe2MuX3RpbWluZz1hLm5vcm1hbGl6ZVRpbWluZ0lucHV0KGMudGltaW5nKTt2YXIgZD1uZXcgYi5BbmltYXRpb24oYyk7cmV0dXJuIGQuX2lkbGU9ITEsZC5fdGltZWxpbmU9dGhpcyx0aGlzLl9hbmltYXRpb25zLnB1c2goZCksYi5yZXN0YXJ0KCksYi5hcHBseURpcnRpZWRBbmltYXRpb24oZCksZH19O3ZhciBsPXZvaWQgMCxtPSExLG49ITE7Yi5yZXN0YXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG18fChtPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLG49ITApLG59LGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uPWZ1bmN0aW9uKGEpe2lmKCFwKXthLl9tYXJrVGFyZ2V0KCk7dmFyIGM9YS5fdGFyZ2V0QW5pbWF0aW9ucygpO2Muc29ydChlKSxoKGIudGltZWxpbmUuY3VycmVudFRpbWUsITEsYy5zbGljZSgpKVsxXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPXEuX2FuaW1hdGlvbnMuaW5kZXhPZihhKTstMSE9PWImJnEuX2FuaW1hdGlvbnMuc3BsaWNlKGIsMSl9KSxnKCl9fTt2YXIgbz1bXSxwPSExLHE9bmV3IGY7Yi50aW1lbGluZT1xfShhLGIpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSxiKXt2YXIgYz1hLmV4ZWMoYik7aWYoYylyZXR1cm4gYz1hLmlnbm9yZUNhc2U/Y1swXS50b0xvd2VyQ2FzZSgpOmNbMF0sW2MsYi5zdWJzdHIoYy5sZW5ndGgpXX1mdW5jdGlvbiBjKGEsYil7Yj1iLnJlcGxhY2UoL15ccyovLCIiKTt2YXIgYz1hKGIpO2lmKGMpcmV0dXJuW2NbMF0sY1sxXS5yZXBsYWNlKC9eXHMqLywiIildfWZ1bmN0aW9uIGQoYSxkLGUpe2E9Yy5iaW5kKG51bGwsYSk7Zm9yKHZhciBmPVtdOzspe3ZhciBnPWEoZSk7aWYoIWcpcmV0dXJuW2YsZV07aWYoZi5wdXNoKGdbMF0pLGU9Z1sxXSwhKGc9YihkLGUpKXx8IiI9PWdbMV0pcmV0dXJuW2YsZV07ZT1nWzFdfX1mdW5jdGlvbiBlKGEsYil7Zm9yKHZhciBjPTAsZD0wO2Q8Yi5sZW5ndGgmJighL1xzfCwvLnRlc3QoYltkXSl8fDAhPWMpO2QrKylpZigiKCI9PWJbZF0pYysrO2Vsc2UgaWYoIikiPT1iW2RdJiYoYy0tLDA9PWMmJmQrKyxjPD0wKSlicmVhazt2YXIgZT1hKGIuc3Vic3RyKDAsZCkpO3JldHVybiB2b2lkIDA9PWU/dm9pZCAwOltlLGIuc3Vic3RyKGQpXX1mdW5jdGlvbiBmKGEsYil7Zm9yKHZhciBjPWEsZD1iO2MmJmQ7KWM+ZD9jJT1kOmQlPWM7cmV0dXJuIGM9YSpiLyhjK2QpfWZ1bmN0aW9uIGcoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWEoYik7cmV0dXJuIGMmJihjWzBdPXZvaWQgMCksY319ZnVuY3Rpb24gaChhLGIpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gYShjKXx8W2IsY119fWZ1bmN0aW9uIGkoYixjKXtmb3IodmFyIGQ9W10sZT0wO2U8Yi5sZW5ndGg7ZSsrKXt2YXIgZj1hLmNvbnN1bWVUcmltbWVkKGJbZV0sYyk7aWYoIWZ8fCIiPT1mWzBdKXJldHVybjt2b2lkIDAhPT1mWzBdJiZkLnB1c2goZlswXSksYz1mWzFdfWlmKCIiPT1jKXJldHVybiBkfWZ1bmN0aW9uIGooYSxiLGMsZCxlKXtmb3IodmFyIGc9W10saD1bXSxpPVtdLGo9ZihkLmxlbmd0aCxlLmxlbmd0aCksaz0wO2s8ajtrKyspe3ZhciBsPWIoZFtrJWQubGVuZ3RoXSxlW2slZS5sZW5ndGhdKTtpZighbClyZXR1cm47Zy5wdXNoKGxbMF0pLGgucHVzaChsWzFdKSxpLnB1c2gobFsyXSl9cmV0dXJuW2csaCxmdW5jdGlvbihiKXt2YXIgZD1iLm1hcChmdW5jdGlvbihhLGIpe3JldHVybiBpW2JdKGEpfSkuam9pbihjKTtyZXR1cm4gYT9hKGQpOmR9XX1mdW5jdGlvbiBrKGEsYixjKXtmb3IodmFyIGQ9W10sZT1bXSxmPVtdLGc9MCxoPTA7aDxjLmxlbmd0aDtoKyspaWYoImZ1bmN0aW9uIj09dHlwZW9mIGNbaF0pe3ZhciBpPWNbaF0oYVtnXSxiW2crK10pO2QucHVzaChpWzBdKSxlLnB1c2goaVsxXSksZi5wdXNoKGlbMl0pfWVsc2UhZnVuY3Rpb24oYSl7ZC5wdXNoKCExKSxlLnB1c2goITEpLGYucHVzaChmdW5jdGlvbigpe3JldHVybiBjW2FdfSl9KGgpO3JldHVybltkLGUsZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGM9MDtjPGEubGVuZ3RoO2MrKyliKz1mW2NdKGFbY10pO3JldHVybiBifV19YS5jb25zdW1lVG9rZW49YixhLmNvbnN1bWVUcmltbWVkPWMsYS5jb25zdW1lUmVwZWF0ZWQ9ZCxhLmNvbnN1bWVQYXJlbnRoZXNpc2VkPWUsYS5pZ25vcmU9ZyxhLm9wdGlvbmFsPWgsYS5jb25zdW1lTGlzdD1pLGEubWVyZ2VOZXN0ZWRSZXBlYXRlZD1qLmJpbmQobnVsbCxudWxsKSxhLm1lcmdlV3JhcHBlZE5lc3RlZFJlcGVhdGVkPWosYS5tZXJnZUxpc3Q9a30oYiksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihiKXtmdW5jdGlvbiBjKGIpe3ZhciBjPWEuY29uc3VtZVRva2VuKC9eaW5zZXQvaSxiKTtyZXR1cm4gYz8oZC5pbnNldD0hMCxjKTooYz1hLmNvbnN1bWVMZW5ndGhPclBlcmNlbnQoYikpPyhkLmxlbmd0aHMucHVzaChjWzBdKSxjKTooYz1hLmNvbnN1bWVDb2xvcihiKSxjPyhkLmNvbG9yPWNbMF0sYyk6dm9pZCAwKX12YXIgZD17aW5zZXQ6ITEsbGVuZ3RoczpbXSxjb2xvcjpudWxsfSxlPWEuY29uc3VtZVJlcGVhdGVkKGMsL14vLGIpO2lmKGUmJmVbMF0ubGVuZ3RoKXJldHVybltkLGVbMV1dfWZ1bmN0aW9uIGMoYyl7dmFyIGQ9YS5jb25zdW1lUmVwZWF0ZWQoYiwvXiwvLGMpO2lmKGQmJiIiPT1kWzFdKXJldHVybiBkWzBdfWZ1bmN0aW9uIGQoYixjKXtmb3IoO2IubGVuZ3Rocy5sZW5ndGg8TWF0aC5tYXgoYi5sZW5ndGhzLmxlbmd0aCxjLmxlbmd0aHMubGVuZ3RoKTspYi5sZW5ndGhzLnB1c2goe3B4OjB9KTtmb3IoO2MubGVuZ3Rocy5sZW5ndGg8TWF0aC5tYXgoYi5sZW5ndGhzLmxlbmd0aCxjLmxlbmd0aHMubGVuZ3RoKTspYy5sZW5ndGhzLnB1c2goe3B4OjB9KTtpZihiLmluc2V0PT1jLmluc2V0JiYhIWIuY29sb3I9PSEhYy5jb2xvcil7Zm9yKHZhciBkLGU9W10sZj1bW10sMF0sZz1bW10sMF0saD0wO2g8Yi5sZW5ndGhzLmxlbmd0aDtoKyspe3ZhciBpPWEubWVyZ2VEaW1lbnNpb25zKGIubGVuZ3Roc1toXSxjLmxlbmd0aHNbaF0sMj09aCk7ZlswXS5wdXNoKGlbMF0pLGdbMF0ucHVzaChpWzFdKSxlLnB1c2goaVsyXSl9aWYoYi5jb2xvciYmYy5jb2xvcil7dmFyIGo9YS5tZXJnZUNvbG9ycyhiLmNvbG9yLGMuY29sb3IpO2ZbMV09alswXSxnWzFdPWpbMV0sZD1qWzJdfXJldHVybltmLGcsZnVuY3Rpb24oYSl7Zm9yKHZhciBjPWIuaW5zZXQ/Imluc2V0ICI6IiAiLGY9MDtmPGUubGVuZ3RoO2YrKyljKz1lW2ZdKGFbMF1bZl0pKyIgIjtyZXR1cm4gZCYmKGMrPWQoYVsxXSkpLGN9XX19ZnVuY3Rpb24gZShiLGMsZCxlKXtmdW5jdGlvbiBmKGEpe3JldHVybntpbnNldDphLGNvbG9yOlswLDAsMCwwXSxsZW5ndGhzOlt7cHg6MH0se3B4OjB9LHtweDowfSx7cHg6MH1dfX1mb3IodmFyIGc9W10saD1bXSxpPTA7aTxkLmxlbmd0aHx8aTxlLmxlbmd0aDtpKyspe3ZhciBqPWRbaV18fGYoZVtpXS5pbnNldCksaz1lW2ldfHxmKGRbaV0uaW5zZXQpO2cucHVzaChqKSxoLnB1c2goayl9cmV0dXJuIGEubWVyZ2VOZXN0ZWRSZXBlYXRlZChiLGMsZyxoKX12YXIgZj1lLmJpbmQobnVsbCxkLCIsICIpO2EuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxmLFsiYm94LXNoYWRvdyIsInRleHQtc2hhZG93Il0pfShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGEudG9GaXhlZCgzKS5yZXBsYWNlKC8wKyQvLCIiKS5yZXBsYWNlKC9cLiQvLCIiKX1mdW5jdGlvbiBkKGEsYixjKXtyZXR1cm4gTWF0aC5taW4oYixNYXRoLm1heChhLGMpKX1mdW5jdGlvbiBlKGEpe2lmKC9eXHMqWy0rXT8oXGQqXC4pP1xkK1xzKiQvLnRlc3QoYSkpcmV0dXJuIE51bWJlcihhKX1mdW5jdGlvbiBmKGEsYil7cmV0dXJuW2EsYixjXX1mdW5jdGlvbiBnKGEsYil7aWYoMCE9YSlyZXR1cm4gaSgwLDEvMCkoYSxiKX1mdW5jdGlvbiBoKGEsYil7cmV0dXJuW2EsYixmdW5jdGlvbihhKXtyZXR1cm4gTWF0aC5yb3VuZChkKDEsMS8wLGEpKX1dfWZ1bmN0aW9uIGkoYSxiKXtyZXR1cm4gZnVuY3Rpb24oZSxmKXtyZXR1cm5bZSxmLGZ1bmN0aW9uKGUpe3JldHVybiBjKGQoYSxiLGUpKX1dfX1mdW5jdGlvbiBqKGEpe3ZhciBiPWEudHJpbSgpLnNwbGl0KC9ccypbXHMsXVxzKi8pO2lmKDAhPT1iLmxlbmd0aCl7Zm9yKHZhciBjPVtdLGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGY9ZShiW2RdKTtpZih2b2lkIDA9PT1mKXJldHVybjtjLnB1c2goZil9cmV0dXJuIGN9fWZ1bmN0aW9uIGsoYSxiKXtpZihhLmxlbmd0aD09Yi5sZW5ndGgpcmV0dXJuW2EsYixmdW5jdGlvbihhKXtyZXR1cm4gYS5tYXAoYykuam9pbigiICIpfV19ZnVuY3Rpb24gbChhLGIpe3JldHVyblthLGIsTWF0aC5yb3VuZF19YS5jbGFtcD1kLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoaixrLFsic3Ryb2tlLWRhc2hhcnJheSJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaSgwLDEvMCksWyJib3JkZXItaW1hZ2Utd2lkdGgiLCJsaW5lLWhlaWdodCJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaSgwLDEpLFsib3BhY2l0eSIsInNoYXBlLWltYWdlLXRocmVzaG9sZCJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsZyxbImZsZXgtZ3JvdyIsImZsZXgtc2hyaW5rIl0pLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoZSxoLFsib3JwaGFucyIsIndpZG93cyJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsbCxbInotaW5kZXgiXSksYS5wYXJzZU51bWJlcj1lLGEucGFyc2VOdW1iZXJMaXN0PWosYS5tZXJnZU51bWJlcnM9ZixhLm51bWJlclRvU3RyaW5nPWN9KGIpLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhLGIpe2lmKCJ2aXNpYmxlIj09YXx8InZpc2libGUiPT1iKXJldHVyblswLDEsZnVuY3Rpb24oYyl7cmV0dXJuIGM8PTA/YTpjPj0xP2I6InZpc2libGUifV19YS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihTdHJpbmcsYyxbInZpc2liaWxpdHkiXSl9KGIpLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhKXthPWEudHJpbSgpLGYuZmlsbFN0eWxlPSIjMDAwIixmLmZpbGxTdHlsZT1hO3ZhciBiPWYuZmlsbFN0eWxlO2lmKGYuZmlsbFN0eWxlPSIjZmZmIixmLmZpbGxTdHlsZT1hLGI9PWYuZmlsbFN0eWxlKXtmLmZpbGxSZWN0KDAsMCwxLDEpO3ZhciBjPWYuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpLmRhdGE7Zi5jbGVhclJlY3QoMCwwLDEsMSk7dmFyIGQ9Y1szXS8yNTU7cmV0dXJuW2NbMF0qZCxjWzFdKmQsY1syXSpkLGRdfX1mdW5jdGlvbiBkKGIsYyl7cmV0dXJuW2IsYyxmdW5jdGlvbihiKXtmdW5jdGlvbiBjKGEpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDI1NSxhKSl9aWYoYlszXSlmb3IodmFyIGQ9MDtkPDM7ZCsrKWJbZF09TWF0aC5yb3VuZChjKGJbZF0vYlszXSkpO3JldHVybiBiWzNdPWEubnVtYmVyVG9TdHJpbmcoYS5jbGFtcCgwLDEsYlszXSkpLCJyZ2JhKCIrYi5qb2luKCIsIikrIikifV19dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiY2FudmFzIik7ZS53aWR0aD1lLmhlaWdodD0xO3ZhciBmPWUuZ2V0Q29udGV4dCgiMmQiKTthLmFkZFByb3BlcnRpZXNIYW5kbGVyKGMsZCxbImJhY2tncm91bmQtY29sb3IiLCJib3JkZXItYm90dG9tLWNvbG9yIiwiYm9yZGVyLWxlZnQtY29sb3IiLCJib3JkZXItcmlnaHQtY29sb3IiLCJib3JkZXItdG9wLWNvbG9yIiwiY29sb3IiLCJmaWxsIiwiZmxvb2QtY29sb3IiLCJsaWdodGluZy1jb2xvciIsIm91dGxpbmUtY29sb3IiLCJzdG9wLWNvbG9yIiwic3Ryb2tlIiwidGV4dC1kZWNvcmF0aW9uLWNvbG9yIl0pLGEuY29uc3VtZUNvbG9yPWEuY29uc3VtZVBhcmVudGhlc2lzZWQuYmluZChudWxsLGMpLGEubWVyZ2VDb2xvcnM9ZH0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEpe2Z1bmN0aW9uIGIoKXt2YXIgYj1oLmV4ZWMoYSk7Zz1iP2JbMF06dm9pZCAwfWZ1bmN0aW9uIGMoKXt2YXIgYT1OdW1iZXIoZyk7cmV0dXJuIGIoKSxhfWZ1bmN0aW9uIGQoKXtpZigiKCIhPT1nKXJldHVybiBjKCk7YigpO3ZhciBhPWYoKTtyZXR1cm4iKSIhPT1nP05hTjooYigpLGEpfWZ1bmN0aW9uIGUoKXtmb3IodmFyIGE9ZCgpOyIqIj09PWd8fCIvIj09PWc7KXt2YXIgYz1nO2IoKTt2YXIgZT1kKCk7IioiPT09Yz9hKj1lOmEvPWV9cmV0dXJuIGF9ZnVuY3Rpb24gZigpe2Zvcih2YXIgYT1lKCk7IisiPT09Z3x8Ii0iPT09Zzspe3ZhciBjPWc7YigpO3ZhciBkPWUoKTsiKyI9PT1jP2ErPWQ6YS09ZH1yZXR1cm4gYX12YXIgZyxoPS8oW1wrXC1cd1wuXSt8W1woXClcKlwvXSkvZztyZXR1cm4gYigpLGYoKX1mdW5jdGlvbiBkKGEsYil7aWYoIjAiPT0oYj1iLnRyaW0oKS50b0xvd2VyQ2FzZSgpKSYmInB4Ii5zZWFyY2goYSk+PTApcmV0dXJue3B4OjB9O2lmKC9eW14oXSokfF5jYWxjLy50ZXN0KGIpKXtiPWIucmVwbGFjZSgvY2FsY1woL2csIigiKTt2YXIgZD17fTtiPWIucmVwbGFjZShhLGZ1bmN0aW9uKGEpe3JldHVybiBkW2FdPW51bGwsIlUiK2F9KTtmb3IodmFyIGU9IlUoIithLnNvdXJjZSsiKSIsZj1iLnJlcGxhY2UoL1stK10/KFxkKlwuKT9cZCsoW0VlXVstK10/XGQrKT8vZywiTiIpLnJlcGxhY2UobmV3IFJlZ0V4cCgiTiIrZSwiZyIpLCJEIikucmVwbGFjZSgvXHNbKy1dXHMvZywiTyIpLnJlcGxhY2UoL1xzL2csIiIpLGc9Wy9OXCooRCkvZywvKE58RClbKlwvXU4vZywvKE58RClPXDEvZywvXCgoTnxEKVwpL2ddLGg9MDtoPGcubGVuZ3RoOylnW2hdLnRlc3QoZik/KGY9Zi5yZXBsYWNlKGdbaF0sIiQxIiksaD0wKTpoKys7aWYoIkQiPT1mKXtmb3IodmFyIGkgaW4gZCl7dmFyIGo9YyhiLnJlcGxhY2UobmV3IFJlZ0V4cCgiVSIraSwiZyIpLCIiKS5yZXBsYWNlKG5ldyBSZWdFeHAoZSwiZyIpLCIqMCIpKTtpZighaXNGaW5pdGUoaikpcmV0dXJuO2RbaV09an1yZXR1cm4gZH19fWZ1bmN0aW9uIGUoYSxiKXtyZXR1cm4gZihhLGIsITApfWZ1bmN0aW9uIGYoYixjLGQpe3ZhciBlLGY9W107Zm9yKGUgaW4gYilmLnB1c2goZSk7Zm9yKGUgaW4gYylmLmluZGV4T2YoZSk8MCYmZi5wdXNoKGUpO3JldHVybiBiPWYubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBiW2FdfHwwfSksYz1mLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gY1thXXx8MH0pLFtiLGMsZnVuY3Rpb24oYil7dmFyIGM9Yi5tYXAoZnVuY3Rpb24oYyxlKXtyZXR1cm4gMT09Yi5sZW5ndGgmJmQmJihjPU1hdGgubWF4KGMsMCkpLGEubnVtYmVyVG9TdHJpbmcoYykrZltlXX0pLmpvaW4oIiArICIpO3JldHVybiBiLmxlbmd0aD4xPyJjYWxjKCIrYysiKSI6Y31dfXZhciBnPSJweHxlbXxleHxjaHxyZW18dnd8dmh8dm1pbnx2bWF4fGNtfG1tfGlufHB0fHBjIixoPWQuYmluZChudWxsLG5ldyBSZWdFeHAoZywiZyIpKSxpPWQuYmluZChudWxsLG5ldyBSZWdFeHAoZysifCUiLCJnIikpLGo9ZC5iaW5kKG51bGwsL2RlZ3xyYWR8Z3JhZHx0dXJuL2cpO2EucGFyc2VMZW5ndGg9aCxhLnBhcnNlTGVuZ3RoT3JQZXJjZW50PWksYS5jb25zdW1lTGVuZ3RoT3JQZXJjZW50PWEuY29uc3VtZVBhcmVudGhlc2lzZWQuYmluZChudWxsLGkpLGEucGFyc2VBbmdsZT1qLGEubWVyZ2VEaW1lbnNpb25zPWY7dmFyIGs9YS5jb25zdW1lUGFyZW50aGVzaXNlZC5iaW5kKG51bGwsaCksbD1hLmNvbnN1bWVSZXBlYXRlZC5iaW5kKHZvaWQgMCxrLC9eLyksbT1hLmNvbnN1bWVSZXBlYXRlZC5iaW5kKHZvaWQgMCxsLC9eLC8pO2EuY29uc3VtZVNpemVQYWlyTGlzdD1tO3ZhciBuPWZ1bmN0aW9uKGEpe3ZhciBiPW0oYSk7aWYoYiYmIiI9PWJbMV0pcmV0dXJuIGJbMF19LG89YS5tZXJnZU5lc3RlZFJlcGVhdGVkLmJpbmQodm9pZCAwLGUsIiAiKSxwPWEubWVyZ2VOZXN0ZWRSZXBlYXRlZC5iaW5kKHZvaWQgMCxvLCIsIik7YS5tZXJnZU5vbk5lZ2F0aXZlU2l6ZVBhaXI9byxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKG4scCxbImJhY2tncm91bmQtc2l6ZSJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGksZSxbImJvcmRlci1ib3R0b20td2lkdGgiLCJib3JkZXItaW1hZ2Utd2lkdGgiLCJib3JkZXItbGVmdC13aWR0aCIsImJvcmRlci1yaWdodC13aWR0aCIsImJvcmRlci10b3Atd2lkdGgiLCJmbGV4LWJhc2lzIiwiZm9udC1zaXplIiwiaGVpZ2h0IiwibGluZS1oZWlnaHQiLCJtYXgtaGVpZ2h0IiwibWF4LXdpZHRoIiwib3V0bGluZS13aWR0aCIsIndpZHRoIl0pLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoaSxmLFsiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIiwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwiYm90dG9tIiwibGVmdCIsImxldHRlci1zcGFjaW5nIiwibWFyZ2luLWJvdHRvbSIsIm1hcmdpbi1sZWZ0IiwibWFyZ2luLXJpZ2h0IiwibWFyZ2luLXRvcCIsIm1pbi1oZWlnaHQiLCJtaW4td2lkdGgiLCJvdXRsaW5lLW9mZnNldCIsInBhZGRpbmctYm90dG9tIiwicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCIsInBhZGRpbmctdG9wIiwicGVyc3BlY3RpdmUiLCJyaWdodCIsInNoYXBlLW1hcmdpbiIsInN0cm9rZS1kYXNob2Zmc2V0IiwidGV4dC1pbmRlbnQiLCJ0b3AiLCJ2ZXJ0aWNhbC1hbGlnbiIsIndvcmQtc3BhY2luZyJdKX0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGIpe3JldHVybiBhLmNvbnN1bWVMZW5ndGhPclBlcmNlbnQoYil8fGEuY29uc3VtZVRva2VuKC9eYXV0by8sYil9ZnVuY3Rpb24gZChiKXt2YXIgZD1hLmNvbnN1bWVMaXN0KFthLmlnbm9yZShhLmNvbnN1bWVUb2tlbi5iaW5kKG51bGwsL15yZWN0LykpLGEuaWdub3JlKGEuY29uc3VtZVRva2VuLmJpbmQobnVsbCwvXlwoLykpLGEuY29uc3VtZVJlcGVhdGVkLmJpbmQobnVsbCxjLC9eLC8pLGEuaWdub3JlKGEuY29uc3VtZVRva2VuLmJpbmQobnVsbCwvXlwpLykpXSxiKTtpZihkJiY0PT1kWzBdLmxlbmd0aClyZXR1cm4gZFswXX1mdW5jdGlvbiBlKGIsYyl7cmV0dXJuImF1dG8iPT1ifHwiYXV0byI9PWM/WyEwLCExLGZ1bmN0aW9uKGQpe3ZhciBlPWQ/YjpjO2lmKCJhdXRvIj09ZSlyZXR1cm4iYXV0byI7dmFyIGY9YS5tZXJnZURpbWVuc2lvbnMoZSxlKTtyZXR1cm4gZlsyXShmWzBdKX1dOmEubWVyZ2VEaW1lbnNpb25zKGIsYyl9ZnVuY3Rpb24gZihhKXtyZXR1cm4icmVjdCgiK2ErIikifXZhciBnPWEubWVyZ2VXcmFwcGVkTmVzdGVkUmVwZWF0ZWQuYmluZChudWxsLGYsZSwiLCAiKTthLnBhcnNlQm94PWQsYS5tZXJnZUJveGVzPWcsYS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihkLGcsWyJjbGlwIl0pfShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPTA7cmV0dXJuIGEubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09az9iW2MrK106YX0pfX1mdW5jdGlvbiBkKGEpe3JldHVybiBhfWZ1bmN0aW9uIGUoYil7aWYoIm5vbmUiPT0oYj1iLnRvTG93ZXJDYXNlKCkudHJpbSgpKSlyZXR1cm5bXTtmb3IodmFyIGMsZD0vXHMqKFx3KylcKChbXildKilcKS9nLGU9W10sZj0wO2M9ZC5leGVjKGIpOyl7aWYoYy5pbmRleCE9ZilyZXR1cm47Zj1jLmluZGV4K2NbMF0ubGVuZ3RoO3ZhciBnPWNbMV0saD1uW2ddO2lmKCFoKXJldHVybjt2YXIgaT1jWzJdLnNwbGl0KCIsIiksaj1oWzBdO2lmKGoubGVuZ3RoPGkubGVuZ3RoKXJldHVybjtmb3IodmFyIGs9W10sbz0wO288ai5sZW5ndGg7bysrKXt2YXIgcCxxPWlbb10scj1qW29dO2lmKHZvaWQgMD09PShwPXE/e0E6ZnVuY3Rpb24oYil7cmV0dXJuIjAiPT1iLnRyaW0oKT9tOmEucGFyc2VBbmdsZShiKX0sTjphLnBhcnNlTnVtYmVyLFQ6YS5wYXJzZUxlbmd0aE9yUGVyY2VudCxMOmEucGFyc2VMZW5ndGh9W3IudG9VcHBlckNhc2UoKV0ocSk6e2E6bSxuOmtbMF0sdDpsfVtyXSkpcmV0dXJuO2sucHVzaChwKX1pZihlLnB1c2goe3Q6ZyxkOmt9KSxkLmxhc3RJbmRleD09Yi5sZW5ndGgpcmV0dXJuIGV9fWZ1bmN0aW9uIGYoYSl7cmV0dXJuIGEudG9GaXhlZCg2KS5yZXBsYWNlKCIuMDAwMDAwIiwiIil9ZnVuY3Rpb24gZyhiLGMpe2lmKGIuZGVjb21wb3NpdGlvblBhaXIhPT1jKXtiLmRlY29tcG9zaXRpb25QYWlyPWM7dmFyIGQ9YS5tYWtlTWF0cml4RGVjb21wb3NpdGlvbihiKX1pZihjLmRlY29tcG9zaXRpb25QYWlyIT09Yil7Yy5kZWNvbXBvc2l0aW9uUGFpcj1iO3ZhciBlPWEubWFrZU1hdHJpeERlY29tcG9zaXRpb24oYyl9cmV0dXJuIG51bGw9PWRbMF18fG51bGw9PWVbMF0/W1shMV0sWyEwXSxmdW5jdGlvbihhKXtyZXR1cm4gYT9jWzBdLmQ6YlswXS5kfV06KGRbMF0ucHVzaCgwKSxlWzBdLnB1c2goMSksW2QsZSxmdW5jdGlvbihiKXt2YXIgYz1hLnF1YXQoZFswXVszXSxlWzBdWzNdLGJbNV0pO3JldHVybiBhLmNvbXBvc2VNYXRyaXgoYlswXSxiWzFdLGJbMl0sYyxiWzRdKS5tYXAoZikuam9pbigiLCIpfV0pfWZ1bmN0aW9uIGgoYSl7cmV0dXJuIGEucmVwbGFjZSgvW3h5XS8sIiIpfWZ1bmN0aW9uIGkoYSl7cmV0dXJuIGEucmVwbGFjZSgvKHh8eXx6fDNkKT8kLywiM2QiKX1mdW5jdGlvbiBqKGIsYyl7dmFyIGQ9YS5tYWtlTWF0cml4RGVjb21wb3NpdGlvbiYmITAsZT0hMTtpZighYi5sZW5ndGh8fCFjLmxlbmd0aCl7Yi5sZW5ndGh8fChlPSEwLGI9YyxjPVtdKTtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGo9YltmXS50LGs9YltmXS5kLGw9InNjYWxlIj09ai5zdWJzdHIoMCw1KT8xOjA7Yy5wdXNoKHt0OmosZDprLm1hcChmdW5jdGlvbihhKXtpZigibnVtYmVyIj09dHlwZW9mIGEpcmV0dXJuIGw7dmFyIGI9e307Zm9yKHZhciBjIGluIGEpYltjXT1sO3JldHVybiBifSl9KX19dmFyIG09ZnVuY3Rpb24oYSxiKXtyZXR1cm4icGVyc3BlY3RpdmUiPT1hJiYicGVyc3BlY3RpdmUiPT1ifHwoIm1hdHJpeCI9PWF8fCJtYXRyaXgzZCI9PWEpJiYoIm1hdHJpeCI9PWJ8fCJtYXRyaXgzZCI9PWIpfSxvPVtdLHA9W10scT1bXTtpZihiLmxlbmd0aCE9Yy5sZW5ndGgpe2lmKCFkKXJldHVybjt2YXIgcj1nKGIsYyk7bz1bclswXV0scD1bclsxXV0scT1bWyJtYXRyaXgiLFtyWzJdXV1dfWVsc2UgZm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBqLHM9YltmXS50LHQ9Y1tmXS50LHU9YltmXS5kLHY9Y1tmXS5kLHc9bltzXSx4PW5bdF07aWYobShzLHQpKXtpZighZClyZXR1cm47dmFyIHI9ZyhbYltmXV0sW2NbZl1dKTtvLnB1c2goclswXSkscC5wdXNoKHJbMV0pLHEucHVzaChbIm1hdHJpeCIsW3JbMl1dXSl9ZWxzZXtpZihzPT10KWo9cztlbHNlIGlmKHdbMl0mJnhbMl0mJmgocyk9PWgodCkpaj1oKHMpLHU9d1syXSh1KSx2PXhbMl0odik7ZWxzZXtpZighd1sxXXx8IXhbMV18fGkocykhPWkodCkpe2lmKCFkKXJldHVybjt2YXIgcj1nKGIsYyk7bz1bclswXV0scD1bclsxXV0scT1bWyJtYXRyaXgiLFtyWzJdXV1dO2JyZWFrfWo9aShzKSx1PXdbMV0odSksdj14WzFdKHYpfWZvcih2YXIgeT1bXSx6PVtdLEE9W10sQj0wO0I8dS5sZW5ndGg7QisrKXt2YXIgQz0ibnVtYmVyIj09dHlwZW9mIHVbQl0/YS5tZXJnZU51bWJlcnM6YS5tZXJnZURpbWVuc2lvbnMscj1DKHVbQl0sdltCXSk7eVtCXT1yWzBdLHpbQl09clsxXSxBLnB1c2goclsyXSl9by5wdXNoKHkpLHAucHVzaCh6KSxxLnB1c2goW2osQV0pfX1pZihlKXt2YXIgRD1vO289cCxwPUR9cmV0dXJuW28scCxmdW5jdGlvbihhKXtyZXR1cm4gYS5tYXAoZnVuY3Rpb24oYSxiKXt2YXIgYz1hLm1hcChmdW5jdGlvbihhLGMpe3JldHVybiBxW2JdWzFdW2NdKGEpfSkuam9pbigiLCIpO3JldHVybiJtYXRyaXgiPT1xW2JdWzBdJiYxNj09Yy5zcGxpdCgiLCIpLmxlbmd0aCYmKHFbYl1bMF09Im1hdHJpeDNkIikscVtiXVswXSsiKCIrYysiKSJ9KS5qb2luKCIgIil9XX12YXIgaz1udWxsLGw9e3B4OjB9LG09e2RlZzowfSxuPXttYXRyaXg6WyJOTk5OTk4iLFtrLGssMCwwLGssaywwLDAsMCwwLDEsMCxrLGssMCwxXSxkXSxtYXRyaXgzZDpbIk5OTk5OTk5OTk5OTk5OTk4iLGRdLHJvdGF0ZTpbIkEiXSxyb3RhdGV4OlsiQSJdLHJvdGF0ZXk6WyJBIl0scm90YXRlejpbIkEiXSxyb3RhdGUzZDpbIk5OTkEiXSxwZXJzcGVjdGl2ZTpbIkwiXSxzY2FsZTpbIk5uIixjKFtrLGssMV0pLGRdLHNjYWxleDpbIk4iLGMoW2ssMSwxXSksYyhbaywxXSldLHNjYWxleTpbIk4iLGMoWzEsaywxXSksYyhbMSxrXSldLHNjYWxlejpbIk4iLGMoWzEsMSxrXSldLHNjYWxlM2Q6WyJOTk4iLGRdLHNrZXc6WyJBYSIsbnVsbCxkXSxza2V3eDpbIkEiLG51bGwsYyhbayxtXSldLHNrZXd5OlsiQSIsbnVsbCxjKFttLGtdKV0sdHJhbnNsYXRlOlsiVHQiLGMoW2ssayxsXSksZF0sdHJhbnNsYXRleDpbIlQiLGMoW2ssbCxsXSksYyhbayxsXSldLHRyYW5zbGF0ZXk6WyJUIixjKFtsLGssbF0pLGMoW2wsa10pXSx0cmFuc2xhdGV6OlsiTCIsYyhbbCxsLGtdKV0sdHJhbnNsYXRlM2Q6WyJUVEwiLGRdfTthLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaixbInRyYW5zZm9ybSJdKSxhLnRyYW5zZm9ybVRvU3ZnTWF0cml4PWZ1bmN0aW9uKGIpe3ZhciBjPWEudHJhbnNmb3JtTGlzdFRvTWF0cml4KGUoYikpO3JldHVybiJtYXRyaXgoIitmKGNbMF0pKyIgIitmKGNbMV0pKyIgIitmKGNbNF0pKyIgIitmKGNbNV0pKyIgIitmKGNbMTJdKSsiICIrZihjWzEzXSkrIikifX0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7Yi5jb25jYXQoW2FdKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiYoZFthXT1iKSxlW2JdPWF9KX12YXIgZD17fSxlPXt9O2MoInRyYW5zZm9ybSIsWyJ3ZWJraXRUcmFuc2Zvcm0iLCJtc1RyYW5zZm9ybSJdKSxjKCJ0cmFuc2Zvcm1PcmlnaW4iLFsid2Via2l0VHJhbnNmb3JtT3JpZ2luIl0pLGMoInBlcnNwZWN0aXZlIixbIndlYmtpdFBlcnNwZWN0aXZlIl0pLGMoInBlcnNwZWN0aXZlT3JpZ2luIixbIndlYmtpdFBlcnNwZWN0aXZlT3JpZ2luIl0pLGEucHJvcGVydHlOYW1lPWZ1bmN0aW9uKGEpe3JldHVybiBkW2FdfHxhfSxhLnVucHJlZml4ZWRQcm9wZXJ0eU5hbWU9ZnVuY3Rpb24oYSl7cmV0dXJuIGVbYV18fGF9fShiKX0oKSxmdW5jdGlvbigpe2lmKHZvaWQgMD09PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLmFuaW1hdGUoW10pLm9uY2FuY2VsKXt2YXIgYTtpZih3aW5kb3cucGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdyl2YXIgYT1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX07ZWxzZSB2YXIgYT1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpfTt2YXIgYj1mdW5jdGlvbihhLGIsYyl7dGhpcy50YXJnZXQ9YSx0aGlzLmN1cnJlbnRUaW1lPWIsdGhpcy50aW1lbGluZVRpbWU9Yyx0aGlzLnR5cGU9ImNhbmNlbCIsdGhpcy5idWJibGVzPSExLHRoaXMuY2FuY2VsYWJsZT0hMSx0aGlzLmN1cnJlbnRUYXJnZXQ9YSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsdGhpcy5ldmVudFBoYXNlPUV2ZW50LkFUX1RBUkdFVCx0aGlzLnRpbWVTdGFtcD1EYXRlLm5vdygpfSxjPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlO3dpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGQsZSl7dmFyIGY9Yy5jYWxsKHRoaXMsZCxlKTtmLl9jYW5jZWxIYW5kbGVycz1bXSxmLm9uY2FuY2VsPW51bGw7dmFyIGc9Zi5jYW5jZWw7Zi5jYW5jZWw9ZnVuY3Rpb24oKXtnLmNhbGwodGhpcyk7dmFyIGM9bmV3IGIodGhpcyxudWxsLGEoKSksZD10aGlzLl9jYW5jZWxIYW5kbGVycy5jb25jYXQodGhpcy5vbmNhbmNlbD9bdGhpcy5vbmNhbmNlbF06W10pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkLmZvckVhY2goZnVuY3Rpb24oYSl7YS5jYWxsKGMudGFyZ2V0LGMpfSl9LDApfTt2YXIgaD1mLmFkZEV2ZW50TGlzdGVuZXI7Zi5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYil7ImZ1bmN0aW9uIj09dHlwZW9mIGImJiJjYW5jZWwiPT1hP3RoaXMuX2NhbmNlbEhhbmRsZXJzLnB1c2goYik6aC5jYWxsKHRoaXMsYSxiKX07dmFyIGk9Zi5yZW1vdmVFdmVudExpc3RlbmVyO3JldHVybiBmLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXtpZigiY2FuY2VsIj09YSl7dmFyIGM9dGhpcy5fY2FuY2VsSGFuZGxlcnMuaW5kZXhPZihiKTtjPj0wJiZ0aGlzLl9jYW5jZWxIYW5kbGVycy5zcGxpY2UoYywxKX1lbHNlIGkuY2FsbCh0aGlzLGEsYil9LGZ9fX0oKSxmdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYz1udWxsLGQ9ITE7dHJ5e3ZhciBlPWdldENvbXB1dGVkU3R5bGUoYikuZ2V0UHJvcGVydHlWYWx1ZSgib3BhY2l0eSIpLGY9IjAiPT1lPyIxIjoiMCI7Yz1iLmFuaW1hdGUoe29wYWNpdHk6W2YsZl19LHtkdXJhdGlvbjoxfSksYy5jdXJyZW50VGltZT0wLGQ9Z2V0Q29tcHV0ZWRTdHlsZShiKS5nZXRQcm9wZXJ0eVZhbHVlKCJvcGFjaXR5Iik9PWZ9Y2F0Y2goYSl7fWZpbmFsbHl7YyYmYy5jYW5jZWwoKX1pZighZCl7dmFyIGc9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU7d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24oYixjKXtyZXR1cm4gd2luZG93LlN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZBcnJheS5wcm90b3R5cGUuZnJvbSYmYltTeW1ib2wuaXRlcmF0b3JdJiYoYj1BcnJheS5mcm9tKGIpKSxBcnJheS5pc0FycmF5KGIpfHxudWxsPT09Ynx8KGI9YS5jb252ZXJ0VG9BcnJheUZvcm0oYikpLGcuY2FsbCh0aGlzLGIsYyl9fX0oYSksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7dmFyIGM9Yi50aW1lbGluZTtjLmN1cnJlbnRUaW1lPWEsYy5fZGlzY2FyZEFuaW1hdGlvbnMoKSwwPT1jLl9hbmltYXRpb25zLmxlbmd0aD9mPSExOnJlcXVlc3RBbmltYXRpb25GcmFtZShkKX12YXIgZT13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lO3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oYSl7cmV0dXJuIGUoZnVuY3Rpb24oYyl7Yi50aW1lbGluZS5fdXBkYXRlQW5pbWF0aW9uc1Byb21pc2VzKCksYShjKSxiLnRpbWVsaW5lLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKX0pfSxiLkFuaW1hdGlvblRpbWVsaW5lPWZ1bmN0aW9uKCl7dGhpcy5fYW5pbWF0aW9ucz1bXSx0aGlzLmN1cnJlbnRUaW1lPXZvaWQgMH0sYi5BbmltYXRpb25UaW1lbGluZS5wcm90b3R5cGU9e2dldEFuaW1hdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzY2FyZEFuaW1hdGlvbnMoKSx0aGlzLl9hbmltYXRpb25zLnNsaWNlKCl9LF91cGRhdGVBbmltYXRpb25zUHJvbWlzZXM6ZnVuY3Rpb24oKXtiLmFuaW1hdGlvbnNXaXRoUHJvbWlzZXM9Yi5hbmltYXRpb25zV2l0aFByb21pc2VzLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5fdXBkYXRlUHJvbWlzZXMoKX0pfSxfZGlzY2FyZEFuaW1hdGlvbnM6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKSx0aGlzLl9hbmltYXRpb25zPXRoaXMuX2FuaW1hdGlvbnMuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiJmaW5pc2hlZCIhPWEucGxheVN0YXRlJiYiaWRsZSIhPWEucGxheVN0YXRlfSl9LF9wbGF5OmZ1bmN0aW9uKGEpe3ZhciBjPW5ldyBiLkFuaW1hdGlvbihhLHRoaXMpO3JldHVybiB0aGlzLl9hbmltYXRpb25zLnB1c2goYyksYi5yZXN0YXJ0V2ViQW5pbWF0aW9uc05leHRUaWNrKCksYy5fdXBkYXRlUHJvbWlzZXMoKSxjLl9hbmltYXRpb24ucGxheSgpLGMuX3VwZGF0ZVByb21pc2VzKCksY30scGxheTpmdW5jdGlvbihhKXtyZXR1cm4gYSYmYS5yZW1vdmUoKSx0aGlzLl9wbGF5KGEpfX07dmFyIGY9ITE7Yi5yZXN0YXJ0V2ViQW5pbWF0aW9uc05leHRUaWNrPWZ1bmN0aW9uKCl7Znx8KGY9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGQpKX07dmFyIGc9bmV3IGIuQW5pbWF0aW9uVGltZWxpbmU7Yi50aW1lbGluZT1nO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LmRvY3VtZW50LCJ0aW1lbGluZSIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ319KX1jYXRjaChhKXt9dHJ5e3dpbmRvdy5kb2N1bWVudC50aW1lbGluZT1nfWNhdGNoKGEpe319KDAsYyksZnVuY3Rpb24oYSxiLGMpe2IuYW5pbWF0aW9uc1dpdGhQcm9taXNlcz1bXSxiLkFuaW1hdGlvbj1mdW5jdGlvbihiLGMpe2lmKHRoaXMuaWQ9IiIsYiYmYi5faWQmJih0aGlzLmlkPWIuX2lkKSx0aGlzLmVmZmVjdD1iLGImJihiLl9hbmltYXRpb249dGhpcyksIWMpdGhyb3cgbmV3IEVycm9yKCJBbmltYXRpb24gd2l0aCBudWxsIHRpbWVsaW5lIGlzIG5vdCBzdXBwb3J0ZWQiKTt0aGlzLl90aW1lbGluZT1jLHRoaXMuX3NlcXVlbmNlTnVtYmVyPWEuc2VxdWVuY2VOdW1iZXIrKyx0aGlzLl9ob2xkVGltZT0wLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9pc0dyb3VwPSExLHRoaXMuX2FuaW1hdGlvbj1udWxsLHRoaXMuX2NoaWxkQW5pbWF0aW9ucz1bXSx0aGlzLl9jYWxsYmFjaz1udWxsLHRoaXMuX29sZFBsYXlTdGF0ZT0iaWRsZSIsdGhpcy5fcmVidWlsZFVuZGVybHlpbmdBbmltYXRpb24oKSx0aGlzLl9hbmltYXRpb24uY2FuY2VsKCksdGhpcy5fdXBkYXRlUHJvbWlzZXMoKX0sYi5BbmltYXRpb24ucHJvdG90eXBlPXtfdXBkYXRlUHJvbWlzZXM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9vbGRQbGF5U3RhdGUsYj10aGlzLnBsYXlTdGF0ZTtyZXR1cm4gdGhpcy5fcmVhZHlQcm9taXNlJiZiIT09YSYmKCJpZGxlIj09Yj8odGhpcy5fcmVqZWN0UmVhZHlQcm9taXNlKCksdGhpcy5fcmVhZHlQcm9taXNlPXZvaWQgMCk6InBlbmRpbmciPT1hP3RoaXMuX3Jlc29sdmVSZWFkeVByb21pc2UoKToicGVuZGluZyI9PWImJih0aGlzLl9yZWFkeVByb21pc2U9dm9pZCAwKSksdGhpcy5fZmluaXNoZWRQcm9taXNlJiZiIT09YSYmKCJpZGxlIj09Yj8odGhpcy5fcmVqZWN0RmluaXNoZWRQcm9taXNlKCksdGhpcy5fZmluaXNoZWRQcm9taXNlPXZvaWQgMCk6ImZpbmlzaGVkIj09Yj90aGlzLl9yZXNvbHZlRmluaXNoZWRQcm9taXNlKCk6ImZpbmlzaGVkIj09YSYmKHRoaXMuX2ZpbmlzaGVkUHJvbWlzZT12b2lkIDApKSx0aGlzLl9vbGRQbGF5U3RhdGU9dGhpcy5wbGF5U3RhdGUsdGhpcy5fcmVhZHlQcm9taXNlfHx0aGlzLl9maW5pc2hlZFByb21pc2V9LF9yZWJ1aWxkVW5kZXJseWluZ0FuaW1hdGlvbjpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCk7dmFyIGEsYyxkLGUsZj0hIXRoaXMuX2FuaW1hdGlvbjtmJiYoYT10aGlzLnBsYXliYWNrUmF0ZSxjPXRoaXMuX3BhdXNlZCxkPXRoaXMuc3RhcnRUaW1lLGU9dGhpcy5jdXJyZW50VGltZSx0aGlzLl9hbmltYXRpb24uY2FuY2VsKCksdGhpcy5fYW5pbWF0aW9uLl93cmFwcGVyPW51bGwsdGhpcy5fYW5pbWF0aW9uPW51bGwpLCghdGhpcy5lZmZlY3R8fHRoaXMuZWZmZWN0IGluc3RhbmNlb2Ygd2luZG93LktleWZyYW1lRWZmZWN0KSYmKHRoaXMuX2FuaW1hdGlvbj1iLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdCh0aGlzLmVmZmVjdCksYi5iaW5kQW5pbWF0aW9uRm9yS2V5ZnJhbWVFZmZlY3QodGhpcykpLCh0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdHx8dGhpcy5lZmZlY3QgaW5zdGFuY2VvZiB3aW5kb3cuR3JvdXBFZmZlY3QpJiYodGhpcy5fYW5pbWF0aW9uPWIubmV3VW5kZXJseWluZ0FuaW1hdGlvbkZvckdyb3VwKHRoaXMuZWZmZWN0KSxiLmJpbmRBbmltYXRpb25Gb3JHcm91cCh0aGlzKSksdGhpcy5lZmZlY3QmJnRoaXMuZWZmZWN0Ll9vbnNhbXBsZSYmYi5iaW5kQW5pbWF0aW9uRm9yQ3VzdG9tRWZmZWN0KHRoaXMpLGYmJigxIT1hJiYodGhpcy5wbGF5YmFja1JhdGU9YSksbnVsbCE9PWQ/dGhpcy5zdGFydFRpbWU9ZDpudWxsIT09ZT90aGlzLmN1cnJlbnRUaW1lPWU6bnVsbCE9PXRoaXMuX2hvbGRUaW1lJiYodGhpcy5jdXJyZW50VGltZT10aGlzLl9ob2xkVGltZSksYyYmdGhpcy5wYXVzZSgpKSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxfdXBkYXRlQ2hpbGRyZW46ZnVuY3Rpb24oKXtpZih0aGlzLmVmZmVjdCYmImlkbGUiIT10aGlzLnBsYXlTdGF0ZSl7dmFyIGE9dGhpcy5lZmZlY3QuX3RpbWluZy5kZWxheTt0aGlzLl9jaGlsZEFuaW1hdGlvbnMuZm9yRWFjaChmdW5jdGlvbihjKXt0aGlzLl9hcnJhbmdlQ2hpbGRyZW4oYyxhKSx0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdCYmKGErPWIuZ3JvdXBDaGlsZER1cmF0aW9uKGMuZWZmZWN0KSl9LmJpbmQodGhpcykpfX0sX3NldEV4dGVybmFsQW5pbWF0aW9uOmZ1bmN0aW9uKGEpe2lmKHRoaXMuZWZmZWN0JiZ0aGlzLl9pc0dyb3VwKWZvcih2YXIgYj0wO2I8dGhpcy5lZmZlY3QuY2hpbGRyZW4ubGVuZ3RoO2IrKyl0aGlzLmVmZmVjdC5jaGlsZHJlbltiXS5fYW5pbWF0aW9uPWEsdGhpcy5fY2hpbGRBbmltYXRpb25zW2JdLl9zZXRFeHRlcm5hbEFuaW1hdGlvbihhKX0sX2NvbnN0cnVjdENoaWxkQW5pbWF0aW9uczpmdW5jdGlvbigpe2lmKHRoaXMuZWZmZWN0JiZ0aGlzLl9pc0dyb3VwKXt2YXIgYT10aGlzLmVmZmVjdC5fdGltaW5nLmRlbGF5O3RoaXMuX3JlbW92ZUNoaWxkQW5pbWF0aW9ucygpLHRoaXMuZWZmZWN0LmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGQ9Yi50aW1lbGluZS5fcGxheShjKTt0aGlzLl9jaGlsZEFuaW1hdGlvbnMucHVzaChkKSxkLnBsYXliYWNrUmF0ZT10aGlzLnBsYXliYWNrUmF0ZSx0aGlzLl9wYXVzZWQmJmQucGF1c2UoKSxjLl9hbmltYXRpb249dGhpcy5lZmZlY3QuX2FuaW1hdGlvbix0aGlzLl9hcnJhbmdlQ2hpbGRyZW4oZCxhKSx0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdCYmKGErPWIuZ3JvdXBDaGlsZER1cmF0aW9uKGMpKX0uYmluZCh0aGlzKSl9fSxfYXJyYW5nZUNoaWxkcmVuOmZ1bmN0aW9uKGEsYil7bnVsbD09PXRoaXMuc3RhcnRUaW1lP2EuY3VycmVudFRpbWU9dGhpcy5jdXJyZW50VGltZS1iL3RoaXMucGxheWJhY2tSYXRlOmEuc3RhcnRUaW1lIT09dGhpcy5zdGFydFRpbWUrYi90aGlzLnBsYXliYWNrUmF0ZSYmKGEuc3RhcnRUaW1lPXRoaXMuc3RhcnRUaW1lK2IvdGhpcy5wbGF5YmFja1JhdGUpfSxnZXQgdGltZWxpbmUoKXtyZXR1cm4gdGhpcy5fdGltZWxpbmV9LGdldCBwbGF5U3RhdGUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uP3RoaXMuX2FuaW1hdGlvbi5wbGF5U3RhdGU6ImlkbGUifSxnZXQgZmluaXNoZWQoKXtyZXR1cm4gd2luZG93LlByb21pc2U/KHRoaXMuX2ZpbmlzaGVkUHJvbWlzZXx8KC0xPT1iLmFuaW1hdGlvbnNXaXRoUHJvbWlzZXMuaW5kZXhPZih0aGlzKSYmYi5hbmltYXRpb25zV2l0aFByb21pc2VzLnB1c2godGhpcyksdGhpcy5fZmluaXNoZWRQcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGEsYil7dGhpcy5fcmVzb2x2ZUZpbmlzaGVkUHJvbWlzZT1mdW5jdGlvbigpe2EodGhpcyl9LHRoaXMuX3JlamVjdEZpbmlzaGVkUHJvbWlzZT1mdW5jdGlvbigpe2Ioe3R5cGU6RE9NRXhjZXB0aW9uLkFCT1JUX0VSUixuYW1lOiJBYm9ydEVycm9yIn0pfX0uYmluZCh0aGlzKSksImZpbmlzaGVkIj09dGhpcy5wbGF5U3RhdGUmJnRoaXMuX3Jlc29sdmVGaW5pc2hlZFByb21pc2UoKSksdGhpcy5fZmluaXNoZWRQcm9taXNlKTooY29uc29sZS53YXJuKCJBbmltYXRpb24gUHJvbWlzZXMgcmVxdWlyZSBKYXZhU2NyaXB0IFByb21pc2UgY29uc3RydWN0b3IiKSxudWxsKX0sZ2V0IHJlYWR5KCl7cmV0dXJuIHdpbmRvdy5Qcm9taXNlPyh0aGlzLl9yZWFkeVByb21pc2V8fCgtMT09Yi5hbmltYXRpb25zV2l0aFByb21pc2VzLmluZGV4T2YodGhpcykmJmIuYW5pbWF0aW9uc1dpdGhQcm9taXNlcy5wdXNoKHRoaXMpLHRoaXMuX3JlYWR5UHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihhLGIpe3RoaXMuX3Jlc29sdmVSZWFkeVByb21pc2U9ZnVuY3Rpb24oKXthKHRoaXMpfSx0aGlzLl9yZWplY3RSZWFkeVByb21pc2U9ZnVuY3Rpb24oKXtiKHt0eXBlOkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIsbmFtZToiQWJvcnRFcnJvciJ9KX19LmJpbmQodGhpcykpLCJwZW5kaW5nIiE9PXRoaXMucGxheVN0YXRlJiZ0aGlzLl9yZXNvbHZlUmVhZHlQcm9taXNlKCkpLHRoaXMuX3JlYWR5UHJvbWlzZSk6KGNvbnNvbGUud2FybigiQW5pbWF0aW9uIFByb21pc2VzIHJlcXVpcmUgSmF2YVNjcmlwdCBQcm9taXNlIGNvbnN0cnVjdG9yIiksbnVsbCl9LGdldCBvbmZpbmlzaCgpe3JldHVybiB0aGlzLl9hbmltYXRpb24ub25maW5pc2h9LHNldCBvbmZpbmlzaChhKXt0aGlzLl9hbmltYXRpb24ub25maW5pc2g9ImZ1bmN0aW9uIj09dHlwZW9mIGE/ZnVuY3Rpb24oYil7Yi50YXJnZXQ9dGhpcyxhLmNhbGwodGhpcyxiKX0uYmluZCh0aGlzKTphfSxnZXQgb25jYW5jZWwoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLm9uY2FuY2VsfSxzZXQgb25jYW5jZWwoYSl7dGhpcy5fYW5pbWF0aW9uLm9uY2FuY2VsPSJmdW5jdGlvbiI9PXR5cGVvZiBhP2Z1bmN0aW9uKGIpe2IudGFyZ2V0PXRoaXMsYS5jYWxsKHRoaXMsYil9LmJpbmQodGhpcyk6YX0sZ2V0IGN1cnJlbnRUaW1lKCl7dGhpcy5fdXBkYXRlUHJvbWlzZXMoKTt2YXIgYT10aGlzLl9hbmltYXRpb24uY3VycmVudFRpbWU7cmV0dXJuIHRoaXMuX3VwZGF0ZVByb21pc2VzKCksYX0sc2V0IGN1cnJlbnRUaW1lKGEpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5fYW5pbWF0aW9uLmN1cnJlbnRUaW1lPWlzRmluaXRlKGEpP2E6TWF0aC5zaWduKGEpKk51bWJlci5NQVhfVkFMVUUsdGhpcy5fcmVnaXN0ZXIoKSx0aGlzLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYixjKXtiLmN1cnJlbnRUaW1lPWEtY30pLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGdldCBzdGFydFRpbWUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLnN0YXJ0VGltZX0sc2V0IHN0YXJ0VGltZShhKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX2FuaW1hdGlvbi5zdGFydFRpbWU9aXNGaW5pdGUoYSk/YTpNYXRoLnNpZ24oYSkqTnVtYmVyLk1BWF9WQUxVRSx0aGlzLl9yZWdpc3RlcigpLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihiLGMpe2Iuc3RhcnRUaW1lPWErY30pLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGdldCBwbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrUmF0ZX0sc2V0IHBsYXliYWNrUmF0ZShhKXt0aGlzLl91cGRhdGVQcm9taXNlcygpO3ZhciBiPXRoaXMuY3VycmVudFRpbWU7dGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrUmF0ZT1hLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihiKXtiLnBsYXliYWNrUmF0ZT1hfSksbnVsbCE9PWImJih0aGlzLmN1cnJlbnRUaW1lPWIpLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LHBsYXk6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9hbmltYXRpb24ucGxheSgpLC0xPT10aGlzLl90aW1lbGluZS5fYW5pbWF0aW9ucy5pbmRleE9mKHRoaXMpJiZ0aGlzLl90aW1lbGluZS5fYW5pbWF0aW9ucy5wdXNoKHRoaXMpLHRoaXMuX3JlZ2lzdGVyKCksYi5hd2FpdFN0YXJ0VGltZSh0aGlzKSx0aGlzLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYSl7dmFyIGI9YS5jdXJyZW50VGltZTthLnBsYXkoKSxhLmN1cnJlbnRUaW1lPWJ9KSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxwYXVzZTpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5jdXJyZW50VGltZSYmKHRoaXMuX2hvbGRUaW1lPXRoaXMuY3VycmVudFRpbWUpLHRoaXMuX2FuaW1hdGlvbi5wYXVzZSgpLHRoaXMuX3JlZ2lzdGVyKCksdGhpcy5fZm9yRWFjaENoaWxkKGZ1bmN0aW9uKGEpe2EucGF1c2UoKX0pLHRoaXMuX3BhdXNlZD0hMCx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxmaW5pc2g6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX2FuaW1hdGlvbi5maW5pc2goKSx0aGlzLl9yZWdpc3RlcigpLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGNhbmNlbDpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5fYW5pbWF0aW9uLmNhbmNlbCgpLHRoaXMuX3JlZ2lzdGVyKCksdGhpcy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCksdGhpcy5fdXBkYXRlUHJvbWlzZXMoKX0scmV2ZXJzZTpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCk7dmFyIGE9dGhpcy5jdXJyZW50VGltZTt0aGlzLl9hbmltYXRpb24ucmV2ZXJzZSgpLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihhKXthLnJldmVyc2UoKX0pLG51bGwhPT1hJiYodGhpcy5jdXJyZW50VGltZT1hKSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9YjsiZnVuY3Rpb24iPT10eXBlb2YgYiYmKGM9ZnVuY3Rpb24oYSl7YS50YXJnZXQ9dGhpcyxiLmNhbGwodGhpcyxhKX0uYmluZCh0aGlzKSxiLl93cmFwcGVyPWMpLHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVyKGEsYyl9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXt0aGlzLl9hbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGImJmIuX3dyYXBwZXJ8fGIpfSxfcmVtb3ZlQ2hpbGRBbmltYXRpb25zOmZ1bmN0aW9uKCl7Zm9yKDt0aGlzLl9jaGlsZEFuaW1hdGlvbnMubGVuZ3RoOyl0aGlzLl9jaGlsZEFuaW1hdGlvbnMucG9wKCkuY2FuY2VsKCl9LF9mb3JFYWNoQ2hpbGQ6ZnVuY3Rpb24oYil7dmFyIGM9MDtpZih0aGlzLmVmZmVjdC5jaGlsZHJlbiYmdGhpcy5fY2hpbGRBbmltYXRpb25zLmxlbmd0aDx0aGlzLmVmZmVjdC5jaGlsZHJlbi5sZW5ndGgmJnRoaXMuX2NvbnN0cnVjdENoaWxkQW5pbWF0aW9ucygpLHRoaXMuX2NoaWxkQW5pbWF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2IuY2FsbCh0aGlzLGEsYyksdGhpcy5lZmZlY3QgaW5zdGFuY2VvZiB3aW5kb3cuU2VxdWVuY2VFZmZlY3QmJihjKz1hLmVmZmVjdC5hY3RpdmVEdXJhdGlvbil9LmJpbmQodGhpcykpLCJwZW5kaW5nIiE9dGhpcy5wbGF5U3RhdGUpe3ZhciBkPXRoaXMuZWZmZWN0Ll90aW1pbmcsZT10aGlzLmN1cnJlbnRUaW1lO251bGwhPT1lJiYoZT1hLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGEuY2FsY3VsYXRlQWN0aXZlRHVyYXRpb24oZCksZSxkKSksKG51bGw9PWV8fGlzTmFOKGUpKSYmdGhpcy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCl9fX0sd2luZG93LkFuaW1hdGlvbj1iLkFuaW1hdGlvbn0oYSxjKSxmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChiKXt0aGlzLl9mcmFtZXM9YS5ub3JtYWxpemVLZXlmcmFtZXMoYil9ZnVuY3Rpb24gZSgpe2Zvcih2YXIgYT0hMTtpLmxlbmd0aDspaS5zaGlmdCgpLl91cGRhdGVDaGlsZHJlbigpLGE9ITA7cmV0dXJuIGF9dmFyIGY9ZnVuY3Rpb24oYSl7aWYoYS5fYW5pbWF0aW9uPXZvaWQgMCxhIGluc3RhbmNlb2Ygd2luZG93LlNlcXVlbmNlRWZmZWN0fHxhIGluc3RhbmNlb2Ygd2luZG93Lkdyb3VwRWZmZWN0KWZvcih2YXIgYj0wO2I8YS5jaGlsZHJlbi5sZW5ndGg7YisrKWYoYS5jaGlsZHJlbltiXSl9O2IucmVtb3ZlTXVsdGk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXTtkLl9wYXJlbnQ/KC0xPT1iLmluZGV4T2YoZC5fcGFyZW50KSYmYi5wdXNoKGQuX3BhcmVudCksZC5fcGFyZW50LmNoaWxkcmVuLnNwbGljZShkLl9wYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihkKSwxKSxkLl9wYXJlbnQ9bnVsbCxmKGQpKTpkLl9hbmltYXRpb24mJmQuX2FuaW1hdGlvbi5lZmZlY3Q9PWQmJihkLl9hbmltYXRpb24uY2FuY2VsKCksZC5fYW5pbWF0aW9uLmVmZmVjdD1uZXcgS2V5ZnJhbWVFZmZlY3QobnVsbCxbXSksZC5fYW5pbWF0aW9uLl9jYWxsYmFjayYmKGQuX2FuaW1hdGlvbi5fY2FsbGJhY2suX2FuaW1hdGlvbj1udWxsKSxkLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCksZihkKSl9Zm9yKGM9MDtjPGIubGVuZ3RoO2MrKyliW2NdLl9yZWJ1aWxkKCl9LGIuS2V5ZnJhbWVFZmZlY3Q9ZnVuY3Rpb24oYixjLGUsZil7cmV0dXJuIHRoaXMudGFyZ2V0PWIsdGhpcy5fcGFyZW50PW51bGwsZT1hLm51bWVyaWNUaW1pbmdUb09iamVjdChlKSx0aGlzLl90aW1pbmdJbnB1dD1hLmNsb25lVGltaW5nSW5wdXQoZSksdGhpcy5fdGltaW5nPWEubm9ybWFsaXplVGltaW5nSW5wdXQoZSksdGhpcy50aW1pbmc9YS5tYWtlVGltaW5nKGUsITEsdGhpcyksdGhpcy50aW1pbmcuX2VmZmVjdD10aGlzLCJmdW5jdGlvbiI9PXR5cGVvZiBjPyhhLmRlcHJlY2F0ZWQoIkN1c3RvbSBLZXlmcmFtZUVmZmVjdCIsIjIwMTUtMDYtMjIiLCJVc2UgS2V5ZnJhbWVFZmZlY3Qub25zYW1wbGUgaW5zdGVhZC4iKSx0aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzPWMpOnRoaXMuX25vcm1hbGl6ZWRLZXlmcmFtZXM9bmV3IGQoYyksdGhpcy5fa2V5ZnJhbWVzPWMsdGhpcy5hY3RpdmVEdXJhdGlvbj1hLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKHRoaXMuX3RpbWluZyksdGhpcy5faWQ9Zix0aGlzfSxiLktleWZyYW1lRWZmZWN0LnByb3RvdHlwZT17Z2V0RnJhbWVzOmZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX25vcm1hbGl6ZWRLZXlmcmFtZXM/dGhpcy5fbm9ybWFsaXplZEtleWZyYW1lczp0aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzLl9mcmFtZXN9LHNldCBvbnNhbXBsZShhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5nZXRGcmFtZXMoKSl0aHJvdyBuZXcgRXJyb3IoIlNldHRpbmcgb25zYW1wbGUgb24gY3VzdG9tIGVmZmVjdCBLZXlmcmFtZUVmZmVjdCBpcyBub3Qgc3VwcG9ydGVkLiIpO3RoaXMuX29uc2FtcGxlPWEsdGhpcy5fYW5pbWF0aW9uJiZ0aGlzLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCl9LGdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcGFyZW50fSxjbG9uZTpmdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmdldEZyYW1lcygpKXRocm93IG5ldyBFcnJvcigiQ2xvbmluZyBjdXN0b20gZWZmZWN0cyBpcyBub3Qgc3VwcG9ydGVkLiIpO3ZhciBiPW5ldyBLZXlmcmFtZUVmZmVjdCh0aGlzLnRhcmdldCxbXSxhLmNsb25lVGltaW5nSW5wdXQodGhpcy5fdGltaW5nSW5wdXQpLHRoaXMuX2lkKTtyZXR1cm4gYi5fbm9ybWFsaXplZEtleWZyYW1lcz10aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzLGIuX2tleWZyYW1lcz10aGlzLl9rZXlmcmFtZXMsYn0scmVtb3ZlOmZ1bmN0aW9uKCl7Yi5yZW1vdmVNdWx0aShbdGhpc10pfX07dmFyIGc9RWxlbWVudC5wcm90b3R5cGUuYW5pbWF0ZTtFbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGEsYyl7dmFyIGQ9IiI7cmV0dXJuIGMmJmMuaWQmJihkPWMuaWQpLGIudGltZWxpbmUuX3BsYXkobmV3IGIuS2V5ZnJhbWVFZmZlY3QodGhpcyxhLGMsZCkpfTt2YXIgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkaXYiKTtiLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdD1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1hLnRhcmdldHx8aCxjPWEuX2tleWZyYW1lczsiZnVuY3Rpb24iPT10eXBlb2YgYyYmKGM9W10pO3ZhciBkPWEuX3RpbWluZ0lucHV0O2QuaWQ9YS5faWR9ZWxzZSB2YXIgYj1oLGM9W10sZD0wO3JldHVybiBnLmFwcGx5KGIsW2MsZF0pfSxiLmJpbmRBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdD1mdW5jdGlvbihhKXthLmVmZmVjdCYmImZ1bmN0aW9uIj09dHlwZW9mIGEuZWZmZWN0Ll9ub3JtYWxpemVkS2V5ZnJhbWVzJiZiLmJpbmRBbmltYXRpb25Gb3JDdXN0b21FZmZlY3QoYSl9O3ZhciBpPVtdO2IuYXdhaXRTdGFydFRpbWU9ZnVuY3Rpb24oYSl7bnVsbD09PWEuc3RhcnRUaW1lJiZhLl9pc0dyb3VwJiYoMD09aS5sZW5ndGgmJnJlcXVlc3RBbmltYXRpb25GcmFtZShlKSxpLnB1c2goYSkpfTt2YXIgaj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZTtPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCJnZXRDb21wdXRlZFN0eWxlIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oKXtiLnRpbWVsaW5lLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKTt2YXIgYT1qLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZSgpJiYoYT1qLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYi50aW1lbGluZS5fdXBkYXRlQW5pbWF0aW9uc1Byb21pc2VzKCksYX19KSx3aW5kb3cuS2V5ZnJhbWVFZmZlY3Q9Yi5LZXlmcmFtZUVmZmVjdCx3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QW5pbWF0aW9ucz1mdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC50aW1lbGluZS5nZXRBbmltYXRpb25zKCkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT09YS5lZmZlY3QmJmEuZWZmZWN0LnRhcmdldD09dGhpc30uYmluZCh0aGlzKSl9fShhLGMpLGZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEpe2EuX3JlZ2lzdGVyZWR8fChhLl9yZWdpc3RlcmVkPSEwLGcucHVzaChhKSxofHwoaD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSkpKX1mdW5jdGlvbiBlKGEpe3ZhciBiPWc7Zz1bXSxiLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5fc2VxdWVuY2VOdW1iZXItYi5fc2VxdWVuY2VOdW1iZXJ9KSxiPWIuZmlsdGVyKGZ1bmN0aW9uKGEpe2EoKTt2YXIgYj1hLl9hbmltYXRpb24/YS5fYW5pbWF0aW9uLnBsYXlTdGF0ZToiaWRsZSI7cmV0dXJuInJ1bm5pbmciIT1iJiYicGVuZGluZyIhPWImJihhLl9yZWdpc3RlcmVkPSExKSxhLl9yZWdpc3RlcmVkfSksZy5wdXNoLmFwcGx5KGcsYiksZy5sZW5ndGg/KGg9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpKTpoPSExfXZhciBmPShkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkaXYiKSwwKTtiLmJpbmRBbmltYXRpb25Gb3JDdXN0b21FZmZlY3Q9ZnVuY3Rpb24oYil7dmFyIGMsZT1iLmVmZmVjdC50YXJnZXQsZz0iZnVuY3Rpb24iPT10eXBlb2YgYi5lZmZlY3QuZ2V0RnJhbWVzKCk7Yz1nP2IuZWZmZWN0LmdldEZyYW1lcygpOmIuZWZmZWN0Ll9vbnNhbXBsZTt2YXIgaD1iLmVmZmVjdC50aW1pbmcsaT1udWxsO2g9YS5ub3JtYWxpemVUaW1pbmdJbnB1dChoKTt2YXIgaj1mdW5jdGlvbigpe3ZhciBkPWouX2FuaW1hdGlvbj9qLl9hbmltYXRpb24uY3VycmVudFRpbWU6bnVsbDtudWxsIT09ZCYmKGQ9YS5jYWxjdWxhdGVJdGVyYXRpb25Qcm9ncmVzcyhhLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKGgpLGQsaCksaXNOYU4oZCkmJihkPW51bGwpKSxkIT09aSYmKGc/YyhkLGUsYi5lZmZlY3QpOmMoZCxiLmVmZmVjdCxiLmVmZmVjdC5fYW5pbWF0aW9uKSksaT1kfTtqLl9hbmltYXRpb249YixqLl9yZWdpc3RlcmVkPSExLGouX3NlcXVlbmNlTnVtYmVyPWYrKyxiLl9jYWxsYmFjaz1qLGQoail9O3ZhciBnPVtdLGg9ITE7Yi5BbmltYXRpb24ucHJvdG90eXBlLl9yZWdpc3Rlcj1mdW5jdGlvbigpe3RoaXMuX2NhbGxiYWNrJiZkKHRoaXMuX2NhbGxiYWNrKX19KGEsYyksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7cmV0dXJuIGEuX3RpbWluZy5kZWxheSthLmFjdGl2ZUR1cmF0aW9uK2EuX3RpbWluZy5lbmREZWxheX1mdW5jdGlvbiBlKGIsYyxkKXt0aGlzLl9pZD1kLHRoaXMuX3BhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49Ynx8W10sdGhpcy5fcmVwYXJlbnQodGhpcy5jaGlsZHJlbiksYz1hLm51bWVyaWNUaW1pbmdUb09iamVjdChjKSx0aGlzLl90aW1pbmdJbnB1dD1hLmNsb25lVGltaW5nSW5wdXQoYyksdGhpcy5fdGltaW5nPWEubm9ybWFsaXplVGltaW5nSW5wdXQoYywhMCksdGhpcy50aW1pbmc9YS5tYWtlVGltaW5nKGMsITAsdGhpcyksdGhpcy50aW1pbmcuX2VmZmVjdD10aGlzLCJhdXRvIj09PXRoaXMuX3RpbWluZy5kdXJhdGlvbiYmKHRoaXMuX3RpbWluZy5kdXJhdGlvbj10aGlzLmFjdGl2ZUR1cmF0aW9uKX13aW5kb3cuU2VxdWVuY2VFZmZlY3Q9ZnVuY3Rpb24oKXtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sd2luZG93Lkdyb3VwRWZmZWN0PWZ1bmN0aW9uKCl7ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGUucHJvdG90eXBlPXtfaXNBbmNlc3RvcjpmdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcztudWxsIT09Yjspe2lmKGI9PWEpcmV0dXJuITA7Yj1iLl9wYXJlbnR9cmV0dXJuITF9LF9yZWJ1aWxkOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXM7YTspImF1dG8iPT09YS50aW1pbmcuZHVyYXRpb24mJihhLl90aW1pbmcuZHVyYXRpb249YS5hY3RpdmVEdXJhdGlvbiksYT1hLl9wYXJlbnQ7dGhpcy5fYW5pbWF0aW9uJiZ0aGlzLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCl9LF9yZXBhcmVudDpmdW5jdGlvbihhKXtiLnJlbW92ZU11bHRpKGEpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWFbY10uX3BhcmVudD10aGlzfSxfcHV0Q2hpbGQ6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yj8iQ2Fubm90IGFwcGVuZCBhbiBhbmNlc3RvciBvciBzZWxmIjoiQ2Fubm90IHByZXBlbmQgYW4gYW5jZXN0b3Igb3Igc2VsZiIsZD0wO2Q8YS5sZW5ndGg7ZCsrKWlmKHRoaXMuX2lzQW5jZXN0b3IoYVtkXSkpdGhyb3d7dHlwZTpET01FeGNlcHRpb24uSElFUkFSQ0hZX1JFUVVFU1RfRVJSLG5hbWU6IkhpZXJhcmNoeVJlcXVlc3RFcnJvciIsbWVzc2FnZTpjfTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyliP3RoaXMuY2hpbGRyZW4ucHVzaChhW2RdKTp0aGlzLmNoaWxkcmVuLnVuc2hpZnQoYVtkXSk7dGhpcy5fcmVwYXJlbnQoYSksdGhpcy5fcmVidWlsZCgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXt0aGlzLl9wdXRDaGlsZChhcmd1bWVudHMsITApfSxwcmVwZW5kOmZ1bmN0aW9uKCl7dGhpcy5fcHV0Q2hpbGQoYXJndW1lbnRzLCExKX0sZ2V0IHBhcmVudCgpe3JldHVybiB0aGlzLl9wYXJlbnR9LGdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoP3RoaXMuY2hpbGRyZW5bMF06bnVsbH0sZ2V0IGxhc3RDaGlsZCgpe3JldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD90aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4ubGVuZ3RoLTFdOm51bGx9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciBiPWEuY2xvbmVUaW1pbmdJbnB1dCh0aGlzLl90aW1pbmdJbnB1dCksYz1bXSxkPTA7ZDx0aGlzLmNoaWxkcmVuLmxlbmd0aDtkKyspYy5wdXNoKHRoaXMuY2hpbGRyZW5bZF0uY2xvbmUoKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBHcm91cEVmZmVjdD9uZXcgR3JvdXBFZmZlY3QoYyxiKTpuZXcgU2VxdWVuY2VFZmZlY3QoYyxiKX0scmVtb3ZlOmZ1bmN0aW9uKCl7Yi5yZW1vdmVNdWx0aShbdGhpc10pfX0sd2luZG93LlNlcXVlbmNlRWZmZWN0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNlcXVlbmNlRWZmZWN0LnByb3RvdHlwZSwiYWN0aXZlRHVyYXRpb24iLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiB0aGlzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYil7YSs9ZChiKX0pLE1hdGgubWF4KGEsMCl9fSksd2luZG93Lkdyb3VwRWZmZWN0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93Lkdyb3VwRWZmZWN0LnByb3RvdHlwZSwiYWN0aXZlRHVyYXRpb24iLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiB0aGlzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYil7YT1NYXRoLm1heChhLGQoYikpfSksYX19KSxiLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JHcm91cD1mdW5jdGlvbihjKXt2YXIgZCxlPW51bGwsZj1mdW5jdGlvbihiKXt2YXIgYz1kLl93cmFwcGVyO2lmKGMmJiJwZW5kaW5nIiE9Yy5wbGF5U3RhdGUmJmMuZWZmZWN0KXJldHVybiBudWxsPT1iP3ZvaWQgYy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCk6MD09YiYmYy5wbGF5YmFja1JhdGU8MCYmKGV8fChlPWEubm9ybWFsaXplVGltaW5nSW5wdXQoYy5lZmZlY3QudGltaW5nKSksYj1hLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGEuY2FsY3VsYXRlQWN0aXZlRHVyYXRpb24oZSksLTEsZSksaXNOYU4oYil8fG51bGw9PWIpPyhjLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYSl7YS5jdXJyZW50VGltZT0tMX0pLHZvaWQgYy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCkpOnZvaWQgMH0sZz1uZXcgS2V5ZnJhbWVFZmZlY3QobnVsbCxbXSxjLl90aW1pbmcsYy5faWQpO3JldHVybiBnLm9uc2FtcGxlPWYsZD1iLnRpbWVsaW5lLl9wbGF5KGcpfSxiLmJpbmRBbmltYXRpb25Gb3JHcm91cD1mdW5jdGlvbihhKXthLl9hbmltYXRpb24uX3dyYXBwZXI9YSxhLl9pc0dyb3VwPSEwLGIuYXdhaXRTdGFydFRpbWUoYSksYS5fY29uc3RydWN0Q2hpbGRBbmltYXRpb25zKCksYS5fc2V0RXh0ZXJuYWxBbmltYXRpb24oYSl9LGIuZ3JvdXBDaGlsZER1cmF0aW9uPWR9KGEsYyl9KCk7CgohKGZ1bmN0aW9uKCl7Ci8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uCgogICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuCgogICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEgKICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWQogICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULAogICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NCiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUgogICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUgogICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCmZ1bmN0aW9uIHQodCxlLG4saSl7dmFyIHIsbz1hcmd1bWVudHMubGVuZ3RoLGE9bzwzP2U6bnVsbD09PWk/aT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6aTtpZigib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKWE9UmVmbGVjdC5kZWNvcmF0ZSh0LGUsbixpKTtlbHNlIGZvcih2YXIgcz10Lmxlbmd0aC0xO3M+PTA7cy0tKShyPXRbc10pJiYoYT0obzwzP3IoYSk6bz4zP3IoZSxuLGEpOnIoZSxuKSl8fGEpO3JldHVybiBvPjMmJmEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sYSksYX1mdW5jdGlvbiBlKHQsZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYiZnVuY3Rpb24iPT10eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSlyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YSh0LGUpfWZ1bmN0aW9uIG4odCxlLG4saSl7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKHIsbyl7ZnVuY3Rpb24gYSh0KXt0cnl7bChpLm5leHQodCkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHModCl7dHJ5e2woaS50aHJvdyh0KSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gbCh0KXt0LmRvbmU/cih0LnZhbHVlKTooZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIG4/dDpuZXcgbigoZnVuY3Rpb24oZSl7ZSh0KX0pKX0pKHQudmFsdWUpLnRoZW4oYSxzKX1sKChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kCiAgICAgKiBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5CiAgICAgKiBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5CiAgICAgKiBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQCiAgICAgKiByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi9mdW5jdGlvbiBpKHQpe3JldHVybiBlPT57aWYodClpZihlLmhhc093blByb3BlcnR5KCJpcyIpKXtpZih0IT09ZS5pcyl0aHJvdyBuZXcgRXJyb3IoYGN1c3RvbSBlbGVtZW50IHRhZyBuYW1lcyBkbyBub3QgbWF0Y2g6ICgke3R9ICE9PSAke2UuaXN9KWApfWVsc2UgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImlzIix7dmFsdWU6dH0pO3dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoZS5pcyxlKX19ZnVuY3Rpb24gcih0LGUsbil7dC5jb25zdHJ1Y3Rvci5oYXNPd25Qcm9wZXJ0eSgicHJvcGVydGllcyIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5jb25zdHJ1Y3RvciwicHJvcGVydGllcyIse3ZhbHVlOnt9fSksdC5jb25zdHJ1Y3Rvci5wcm9wZXJ0aWVzW2VdPU9iamVjdC5hc3NpZ24oe30sdC5jb25zdHJ1Y3Rvci5wcm9wZXJ0aWVzW2VdLG4pfWZ1bmN0aW9uIG8odCl7cmV0dXJuKGUsbik9PntyKGUsbix0KX19ZnVuY3Rpb24gYSguLi50KXtyZXR1cm4oZSxuKT0+e2UuY29uc3RydWN0b3IuaGFzT3duUHJvcGVydHkoIm9ic2VydmVycyIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5jb25zdHJ1Y3Rvciwib2JzZXJ2ZXJzIix7dmFsdWU6W119KSxlLmNvbnN0cnVjdG9yLm9ic2VydmVycy5wdXNoKGAke259KCR7dC5qb2luKCIsIil9KWApfX1mdW5jdGlvbiBzKHQsLi4uZSl7cmV0dXJuKG4saSxvKT0+e2NvbnN0IGE9YF9fY29tcHV0ZSR7aX1gO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGEse3ZhbHVlOm8uZ2V0fSksby5nZXQ9dm9pZCAwLHIobixpLHtjb21wdXRlZDpgJHthfSgke1t0LC4uLmVdLmpvaW4oIiwiKX0pYH0pfX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi93aW5kb3cuSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eT1mdW5jdGlvbih0LGUpe3JldHVybiB0fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KbGV0IGwsYyx1PS8odXJsXCgpKFteKV0qKShcKSkvZyxoPS8oXlwvW15cL10pfCheIyl8KF5bXHctXGRdKjopLztmdW5jdGlvbiBkKHQsZSl7aWYodCYmaC50ZXN0KHQpKXJldHVybiB0O2lmKCIvLyI9PT10KXJldHVybiB0O2lmKHZvaWQgMD09PWwpe2w9ITE7dHJ5e2NvbnN0IHQ9bmV3IFVSTCgiYiIsImh0dHA6Ly9hIik7dC5wYXRobmFtZT0iYyUyMGQiLGw9Imh0dHA6Ly9hL2MlMjBkIj09PXQuaHJlZn1jYXRjaCh0KXt9fWlmKGV8fChlPWRvY3VtZW50LmJhc2VVUkl8fHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxsKXRyeXtyZXR1cm4gbmV3IFVSTCh0LGUpLmhyZWZ9Y2F0Y2goZSl7cmV0dXJuIHR9cmV0dXJuIGN8fChjPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgidGVtcCIpLGMuYmFzZT1jLmNyZWF0ZUVsZW1lbnQoImJhc2UiKSxjLmhlYWQuYXBwZW5kQ2hpbGQoYy5iYXNlKSxjLmFuY2hvcj1jLmNyZWF0ZUVsZW1lbnQoImEiKSxjLmJvZHkuYXBwZW5kQ2hpbGQoYy5hbmNob3IpKSxjLmJhc2UuaHJlZj1lLGMuYW5jaG9yLmhyZWY9dCxjLmFuY2hvci5ocmVmfHx0fWZ1bmN0aW9uIHAodCxlKXtyZXR1cm4gdC5yZXBsYWNlKHUsKGZ1bmN0aW9uKHQsbixpLHIpe3JldHVybiBuKyInIitkKGkucmVwbGFjZSgvWyInXS9nLCIiKSxlKSsiJyIrcn0pKX1mdW5jdGlvbiBmKHQpe3JldHVybiB0LnN1YnN0cmluZygwLHQubGFzdEluZGV4T2YoIi8iKSsxKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jb25zdCBtPSF3aW5kb3cuU2hhZHlET018fCF3aW5kb3cuU2hhZHlET00uaW5Vc2U7Qm9vbGVhbighd2luZG93LlNoYWR5Q1NTfHx3aW5kb3cuU2hhZHlDU1MubmF0aXZlQ3NzKTtjb25zdCBnPW0mJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZVN5bmMiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUmJigoKT0+e3RyeXtjb25zdCB0PW5ldyBDU1NTdHlsZVNoZWV0O3QucmVwbGFjZVN5bmMoIiIpO2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGUuYXR0YWNoU2hhZG93KHttb2RlOiJvcGVuIn0pLGUuc2hhZG93Um9vdC5hZG9wdGVkU3R5bGVTaGVldHM9W3RdLGUuc2hhZG93Um9vdC5hZG9wdGVkU3R5bGVTaGVldHNbMF09PT10fWNhdGNoKHQpe3JldHVybiExfX0pKCk7bGV0IF89d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnJvb3RQYXRofHxmKGRvY3VtZW50LmJhc2VVUkl8fHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx5PXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5zYW5pdGl6ZURPTVZhbHVlfHx2b2lkIDAsdj13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIuc2V0UGFzc2l2ZVRvdWNoR2VzdHVyZXN8fCExLGI9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnN0cmljdFRlbXBsYXRlUG9saWN5fHwhMSx4PXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5hbGxvd1RlbXBsYXRlRnJvbURvbU1vZHVsZXx8ITEsdz13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIubGVnYWN5T3B0aW1pemF0aW9uc3x8ITEsUz13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIubGVnYWN5V2FybmluZ3N8fCExLE09d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnN5bmNJbml0aWFsUmVuZGVyfHwhMSxFPXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5sZWdhY3lVbmRlZmluZWR8fCExLFQ9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLm9yZGVyZWRDb21wdXRlZHx8ITEsQz13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIucmVtb3ZlTmVzdGVkVGVtcGxhdGVzfHwhMSxBPXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5mYXN0RG9tSWZ8fCExLGs9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnN1cHByZXNzVGVtcGxhdGVOb3RpZmljYXRpb25zfHwhMSxMPXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5sZWdhY3lOb09ic2VydmVkQXR0cmlidXRlc3x8ITEsUD13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIudXNlQWRvcHRlZFN0eWxlU2hlZXRzV2l0aEJ1aWx0Q1NTfHwhMSxOPTA7Y29uc3QgST1mdW5jdGlvbih0KXtsZXQgZT10Ll9fbWl4aW5BcHBsaWNhdGlvbnM7ZXx8KGU9bmV3IFdlYWtNYXAsdC5fX21peGluQXBwbGljYXRpb25zPWUpO2xldCBuPU4rKztyZXR1cm4gZnVuY3Rpb24gaShyKXtsZXQgbz1yLl9fbWl4aW5TZXQ7aWYobyYmb1tuXSlyZXR1cm4gcjtsZXQgYT1lLHM9YS5nZXQocik7aWYoIXMpe3M9dChyKSxhLnNldChyLHMpO2xldCBlPU9iamVjdC5jcmVhdGUocy5fX21peGluU2V0fHxvfHxudWxsKTtlW25dPSEwLHMuX19taXhpblNldD1lfXJldHVybiBzfX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovbGV0IFI9e30sTz17fTtmdW5jdGlvbiB6KHQsZSl7Ult0XT1PW3QudG9Mb3dlckNhc2UoKV09ZX1mdW5jdGlvbiBEKHQpe3JldHVybiBSW3RdfHxPW3QudG9Mb3dlckNhc2UoKV19Y2xhc3MgQiBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuWyJpZCJdfXN0YXRpYyBpbXBvcnQodCxlKXtpZih0KXtsZXQgbj1EKHQpO3JldHVybiBuJiZlP24ucXVlcnlTZWxlY3RvcihlKTpufXJldHVybiBudWxsfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbixpKXtlIT09biYmdGhpcy5yZWdpc3RlcigpfWdldCBhc3NldHBhdGgoKXtpZighdGhpcy5fX2Fzc2V0cGF0aCl7Y29uc3QgdD13aW5kb3cuSFRNTEltcG9ydHMmJkhUTUxJbXBvcnRzLmltcG9ydEZvckVsZW1lbnQ/SFRNTEltcG9ydHMuaW1wb3J0Rm9yRWxlbWVudCh0aGlzKXx8ZG9jdW1lbnQ6dGhpcy5vd25lckRvY3VtZW50LGU9ZCh0aGlzLmdldEF0dHJpYnV0ZSgiYXNzZXRwYXRoIil8fCIiLHQuYmFzZVVSSSk7dGhpcy5fX2Fzc2V0cGF0aD1mKGUpfXJldHVybiB0aGlzLl9fYXNzZXRwYXRofXJlZ2lzdGVyKHQpe2lmKHQ9dHx8dGhpcy5pZCl7aWYoYiYmdm9pZCAwIT09RCh0KSl0aHJvdyB6KHQsbnVsbCksbmV3IEVycm9yKGBzdHJpY3RUZW1wbGF0ZVBvbGljeTogZG9tLW1vZHVsZSAke3R9IHJlLXJlZ2lzdGVyZWRgKTt0aGlzLmlkPXQseih0LHRoaXMpLChmdW5jdGlvbiBlKHQpe3QucXVlcnlTZWxlY3Rvcigic3R5bGUiKSYmY29uc29sZS53YXJuKCJkb20tbW9kdWxlICVzIGhhcyBzdHlsZSBvdXRzaWRlIHRlbXBsYXRlIix0LmlkKX0pKHRoaXMpfX19Qi5wcm90b3R5cGUubW9kdWxlcz1SLGN1c3RvbUVsZW1lbnRzLmRlZmluZSgiZG9tLW1vZHVsZSIsQik7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IEg9InNoYWR5LXVuc2NvcGVkIjtmdW5jdGlvbiBGKHQpe3JldHVybiBCLmltcG9ydCh0KX1mdW5jdGlvbiBWKHQpe2NvbnN0IGU9cCgodC5ib2R5P3QuYm9keTp0KS50ZXh0Q29udGVudCx0LmJhc2VVUkkpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gbi50ZXh0Q29udGVudD1lLG59ZnVuY3Rpb24gVSh0KXtjb25zdCBlPXQudHJpbSgpLnNwbGl0KC9ccysvKSxuPVtdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW4ucHVzaCguLi5qKGVbdF0pKTtyZXR1cm4gbn1mdW5jdGlvbiBqKHQpe2NvbnN0IGU9Rih0KTtpZighZSlyZXR1cm4gY29uc29sZS53YXJuKCJDb3VsZCBub3QgZmluZCBzdHlsZSBkYXRhIGluIG1vZHVsZSBuYW1lZCIsdCksW107aWYodm9pZCAwPT09ZS5fc3R5bGVzKXtjb25zdCB0PVtdO3QucHVzaCguLi5XKGUpKTtjb25zdCBuPWUucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKTtuJiZ0LnB1c2goLi4uRyhuLGUuYXNzZXRwYXRoKSksZS5fc3R5bGVzPXR9cmV0dXJuIGUuX3N0eWxlc31mdW5jdGlvbiBHKHQsZSl7aWYoIXQuX3N0eWxlcyl7Y29uc3Qgbj1bXSxpPXQuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZSIpO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXtsZXQgcj1pW3RdLG89ci5nZXRBdHRyaWJ1dGUoImluY2x1ZGUiKTtvJiZuLnB1c2goLi4uVShvKS5maWx0ZXIoKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbi5pbmRleE9mKHQpPT09ZX0pKSksZSYmKHIudGV4dENvbnRlbnQ9cChyLnRleHRDb250ZW50LGUpKSxuLnB1c2gocil9dC5fc3R5bGVzPW59cmV0dXJuIHQuX3N0eWxlc31mdW5jdGlvbiBXKHQpe2NvbnN0IGU9W10sbj10LnF1ZXJ5U2VsZWN0b3JBbGwoImxpbmtbcmVsPWltcG9ydF1bdHlwZX49Y3NzXSIpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtsZXQgaT1uW3RdO2lmKGkuaW1wb3J0KXtjb25zdCB0PWkuaW1wb3J0LG49aS5oYXNBdHRyaWJ1dGUoSCk7aWYobiYmIXQuX3Vuc2NvcGVkU3R5bGUpe2NvbnN0IGU9Vih0KTtlLnNldEF0dHJpYnV0ZShILCIiKSx0Ll91bnNjb3BlZFN0eWxlPWV9ZWxzZSB0Ll9zdHlsZXx8KHQuX3N0eWxlPVYodCkpO2UucHVzaChuP3QuX3Vuc2NvcGVkU3R5bGU6dC5fc3R5bGUpfX1yZXR1cm4gZX1mdW5jdGlvbiBxKHQpe2xldCBlPUYodCk7aWYoZSYmdm9pZCAwPT09ZS5fY3NzVGV4dCl7bGV0IHQ9KGZ1bmN0aW9uIG4odCl7bGV0IGU9IiIsbj1XKHQpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKWUrPW5bdF0udGV4dENvbnRlbnQ7cmV0dXJuIGV9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovKShlKSxuPWUucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKTtuJiYodCs9KGZ1bmN0aW9uIGkodCxlKXtsZXQgbj0iIjtjb25zdCBpPUcodCxlKTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyl7bGV0IGU9aVt0XTtlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxuKz1lLnRleHRDb250ZW50fXJldHVybiBufSkobixlLmFzc2V0cGF0aCkpLGUuX2Nzc1RleHQ9dHx8bnVsbH1yZXR1cm4gZXx8Y29uc29sZS53YXJuKCJDb3VsZCBub3QgZmluZCBzdHlsZSBkYXRhIGluIG1vZHVsZSBuYW1lZCIsdCksZSYmZS5fY3NzVGV4dHx8IiJ9Y29uc3QgWT13aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5ub1BhdGNoJiZ3aW5kb3cuU2hhZHlET00ud3JhcD93aW5kb3cuU2hhZHlET00ud3JhcDp3aW5kb3cuU2hhZHlET00/dD0+U2hhZHlET00ucGF0Y2godCk6dD0+dDsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9mdW5jdGlvbiBYKHQpe3JldHVybiB0LmluZGV4T2YoIi4iKT49MH1mdW5jdGlvbiAkKHQpe2xldCBlPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09ZT90OnQuc2xpY2UoMCxlKX1mdW5jdGlvbiBLKHQsZSl7cmV0dXJuIDA9PT10LmluZGV4T2YoZSsiLiIpfWZ1bmN0aW9uIFoodCxlKXtyZXR1cm4gMD09PWUuaW5kZXhPZih0KyIuIil9ZnVuY3Rpb24gSih0LGUsbil7cmV0dXJuIGUrbi5zbGljZSh0Lmxlbmd0aCl9ZnVuY3Rpb24gUSh0LGUpe3JldHVybiB0PT09ZXx8Syh0LGUpfHxaKHQsZSl9ZnVuY3Rpb24gdHQodCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGU9W107Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2xldCBpPXRbbl0udG9TdHJpbmcoKS5zcGxpdCgiLiIpO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKWUucHVzaChpW3RdKX1yZXR1cm4gZS5qb2luKCIuIil9cmV0dXJuIHR9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dHQodCkuc3BsaXQoIi4iKTp0LnRvU3RyaW5nKCkuc3BsaXQoIi4iKX1mdW5jdGlvbiBudCh0LGUsbil7bGV0IGk9dCxyPWV0KGUpO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXtpZighaSlyZXR1cm47aT1pW3JbdF1dfXJldHVybiBuJiYobi5wYXRoPXIuam9pbigiLiIpKSxpfWZ1bmN0aW9uIGl0KHQsZSxuKXtsZXQgaT10LHI9ZXQoZSksbz1yW3IubGVuZ3RoLTFdO2lmKHIubGVuZ3RoPjEpe2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGgtMTt0KyspaWYoaT1pW3JbdF1dLCFpKXJldHVybjtpW29dPW59ZWxzZSBpW2VdPW47cmV0dXJuIHIuam9pbigiLiIpfQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2NvbnN0IHJ0PXt9LG90PS8tW2Etel0vZyxhdD0vKFtBLVpdKS9nO2Z1bmN0aW9uIHN0KHQpe3JldHVybiBydFt0XXx8KHJ0W3RdPXQuaW5kZXhPZigiLSIpPDA/dDp0LnJlcGxhY2Uob3QsKHQ9PnRbMV0udG9VcHBlckNhc2UoKSkpKX1mdW5jdGlvbiBsdCh0KXtyZXR1cm4gcnRbdF18fChydFt0XT10LnJlcGxhY2UoYXQsIi0kMSIpLnRvTG93ZXJDYXNlKCkpfQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2xldCBjdD0wLHV0PTAsaHQ9W10sZHQ9MCxwdD0hMSxmdD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIik7bmV3IHdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKChmdW5jdGlvbiBtdCgpe3B0PSExO2NvbnN0IHQ9aHQubGVuZ3RoO2ZvcihsZXQgZT0wO2U8dDtlKyspe2xldCB0PWh0W2VdO2lmKHQpdHJ5e3QoKX1jYXRjaCh0KXtzZXRUaW1lb3V0KCgoKT0+e3Rocm93IHR9KSl9fWh0LnNwbGljZSgwLHQpLHV0Kz10fSkpLm9ic2VydmUoZnQse2NoYXJhY3RlckRhdGE6ITB9KTtjb25zdCBndD17YWZ0ZXI6dD0+KHtydW46ZT0+d2luZG93LnNldFRpbWVvdXQoZSx0KSxjYW5jZWwodCl7d2luZG93LmNsZWFyVGltZW91dCh0KX19KSxydW46KHQsZSk9PndpbmRvdy5zZXRUaW1lb3V0KHQsZSksY2FuY2VsKHQpe3dpbmRvdy5jbGVhclRpbWVvdXQodCl9fSxfdD17cnVuOnQ9PndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCksY2FuY2VsKHQpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0KX19LHl0PXtydW46dD0+d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2s/d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2sodCk6d2luZG93LnNldFRpbWVvdXQodCwxNiksY2FuY2VsKHQpe3dpbmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2s/d2luZG93LmNhbmNlbElkbGVDYWxsYmFjayh0KTp3aW5kb3cuY2xlYXJUaW1lb3V0KHQpfX0sdnQ9e3J1bjp0PT4ocHR8fChwdD0hMCxmdC50ZXh0Q29udGVudD1kdCsrKSxodC5wdXNoKHQpLGN0KyspLGNhbmNlbCh0KXtjb25zdCBlPXQtdXQ7aWYoZT49MCl7aWYoIWh0W2VdKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBhc3luYyBoYW5kbGU6ICIrdCk7aHRbZV09bnVsbH19fSxidD12dCx4dD1JKCh0PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGNyZWF0ZVByb3BlcnRpZXModCl7Y29uc3QgZT10aGlzLnByb3RvdHlwZTtmb3IobGV0IG4gaW4gdCluIGluIGV8fGUuX2NyZWF0ZVByb3BlcnR5QWNjZXNzb3Iobil9c3RhdGljIGF0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eSh0KXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfXN0YXRpYyB0eXBlRm9yUHJvcGVydHkodCl7fV9jcmVhdGVQcm9wZXJ0eUFjY2Vzc29yKHQsZSl7dGhpcy5fYWRkUHJvcGVydHlUb0F0dHJpYnV0ZU1hcCh0KSx0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fZGF0YUhhc0FjY2Vzc29yIix0aGlzKSl8fCh0aGlzLl9fZGF0YUhhc0FjY2Vzc29yPU9iamVjdC5hc3NpZ24oe30sdGhpcy5fX2RhdGFIYXNBY2Nlc3NvcikpLHRoaXMuX19kYXRhSGFzQWNjZXNzb3JbdF18fCh0aGlzLl9fZGF0YUhhc0FjY2Vzc29yW3RdPSEwLHRoaXMuX2RlZmluZVByb3BlcnR5QWNjZXNzb3IodCxlKSl9X2FkZFByb3BlcnR5VG9BdHRyaWJ1dGVNYXAodCl7dGhpcy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX2RhdGFBdHRyaWJ1dGVzIix0aGlzKSl8fCh0aGlzLl9fZGF0YUF0dHJpYnV0ZXM9T2JqZWN0LmFzc2lnbih7fSx0aGlzLl9fZGF0YUF0dHJpYnV0ZXMpKTtsZXQgZT10aGlzLl9fZGF0YUF0dHJpYnV0ZXNbdF07cmV0dXJuIGV8fChlPXRoaXMuY29uc3RydWN0b3IuYXR0cmlidXRlTmFtZUZvclByb3BlcnR5KHQpLHRoaXMuX19kYXRhQXR0cmlidXRlc1tlXT10KSxlfV9kZWZpbmVQcm9wZXJ0eUFjY2Vzc29yKHQsZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7Z2V0KCl7cmV0dXJuIHRoaXMuX19kYXRhW3RdfSxzZXQ6ZT9mdW5jdGlvbigpe306ZnVuY3Rpb24oZSl7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5KHQsZSwhMCkmJnRoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9fSl9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX19kYXRhRW5hYmxlZD0hMSx0aGlzLl9fZGF0YVJlYWR5PSExLHRoaXMuX19kYXRhSW52YWxpZD0hMSx0aGlzLl9fZGF0YT17fSx0aGlzLl9fZGF0YVBlbmRpbmc9bnVsbCx0aGlzLl9fZGF0YU9sZD1udWxsLHRoaXMuX19kYXRhSW5zdGFuY2VQcm9wcz1udWxsLHRoaXMuX19kYXRhQ291bnRlcj0wLHRoaXMuX19zZXJpYWxpemluZz0hMSx0aGlzLl9pbml0aWFsaXplUHJvcGVydGllcygpfXJlYWR5KCl7dGhpcy5fX2RhdGFSZWFkeT0hMCx0aGlzLl9mbHVzaFByb3BlcnRpZXMoKX1faW5pdGlhbGl6ZVByb3BlcnRpZXMoKXtmb3IobGV0IHQgaW4gdGhpcy5fX2RhdGFIYXNBY2Nlc3Nvcil0aGlzLmhhc093blByb3BlcnR5KHQpJiYodGhpcy5fX2RhdGFJbnN0YW5jZVByb3BzPXRoaXMuX19kYXRhSW5zdGFuY2VQcm9wc3x8e30sdGhpcy5fX2RhdGFJbnN0YW5jZVByb3BzW3RdPXRoaXNbdF0sZGVsZXRlIHRoaXNbdF0pfV9pbml0aWFsaXplSW5zdGFuY2VQcm9wZXJ0aWVzKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX1fc2V0UHJvcGVydHkodCxlKXt0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHkodCxlKSYmdGhpcy5faW52YWxpZGF0ZVByb3BlcnRpZXMoKX1fZ2V0UHJvcGVydHkodCl7cmV0dXJuIHRoaXMuX19kYXRhW3RdfV9zZXRQZW5kaW5nUHJvcGVydHkodCxlLG4pe2xldCBpPXRoaXMuX19kYXRhW3RdLHI9dGhpcy5fc2hvdWxkUHJvcGVydHlDaGFuZ2UodCxlLGkpO3JldHVybiByJiYodGhpcy5fX2RhdGFQZW5kaW5nfHwodGhpcy5fX2RhdGFQZW5kaW5nPXt9LHRoaXMuX19kYXRhT2xkPXt9KSx0aGlzLl9fZGF0YU9sZCYmISh0IGluIHRoaXMuX19kYXRhT2xkKSYmKHRoaXMuX19kYXRhT2xkW3RdPWkpLHRoaXMuX19kYXRhW3RdPWUsdGhpcy5fX2RhdGFQZW5kaW5nW3RdPWUpLHJ9X2lzUHJvcGVydHlQZW5kaW5nKHQpe3JldHVybiEoIXRoaXMuX19kYXRhUGVuZGluZ3x8IXRoaXMuX19kYXRhUGVuZGluZy5oYXNPd25Qcm9wZXJ0eSh0KSl9X2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl7IXRoaXMuX19kYXRhSW52YWxpZCYmdGhpcy5fX2RhdGFSZWFkeSYmKHRoaXMuX19kYXRhSW52YWxpZD0hMCxidC5ydW4oKCgpPT57dGhpcy5fX2RhdGFJbnZhbGlkJiYodGhpcy5fX2RhdGFJbnZhbGlkPSExLHRoaXMuX2ZsdXNoUHJvcGVydGllcygpKX0pKSl9X2VuYWJsZVByb3BlcnRpZXMoKXt0aGlzLl9fZGF0YUVuYWJsZWR8fCh0aGlzLl9fZGF0YUVuYWJsZWQ9ITAsdGhpcy5fX2RhdGFJbnN0YW5jZVByb3BzJiYodGhpcy5faW5pdGlhbGl6ZUluc3RhbmNlUHJvcGVydGllcyh0aGlzLl9fZGF0YUluc3RhbmNlUHJvcHMpLHRoaXMuX19kYXRhSW5zdGFuY2VQcm9wcz1udWxsKSx0aGlzLnJlYWR5KCkpfV9mbHVzaFByb3BlcnRpZXMoKXt0aGlzLl9fZGF0YUNvdW50ZXIrKztjb25zdCB0PXRoaXMuX19kYXRhLGU9dGhpcy5fX2RhdGFQZW5kaW5nLG49dGhpcy5fX2RhdGFPbGQ7dGhpcy5fc2hvdWxkUHJvcGVydGllc0NoYW5nZSh0LGUsbikmJih0aGlzLl9fZGF0YVBlbmRpbmc9bnVsbCx0aGlzLl9fZGF0YU9sZD1udWxsLHRoaXMuX3Byb3BlcnRpZXNDaGFuZ2VkKHQsZSxuKSksdGhpcy5fX2RhdGFDb3VudGVyLS19X3Nob3VsZFByb3BlcnRpZXNDaGFuZ2UodCxlLG4pe3JldHVybiBCb29sZWFuKGUpfV9wcm9wZXJ0aWVzQ2hhbmdlZCh0LGUsbil7fV9zaG91bGRQcm9wZXJ0eUNoYW5nZSh0LGUsbil7cmV0dXJuIG4hPT1lJiYobj09bnx8ZT09ZSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuLGkpe2UhPT1uJiZ0aGlzLl9hdHRyaWJ1dGVUb1Byb3BlcnR5KHQsbiksc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrJiZzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4saSl9X2F0dHJpYnV0ZVRvUHJvcGVydHkodCxlLG4pe2lmKCF0aGlzLl9fc2VyaWFsaXppbmcpe2NvbnN0IGk9dGhpcy5fX2RhdGFBdHRyaWJ1dGVzLHI9aSYmaVt0XXx8dDt0aGlzW3JdPXRoaXMuX2Rlc2VyaWFsaXplVmFsdWUoZSxufHx0aGlzLmNvbnN0cnVjdG9yLnR5cGVGb3JQcm9wZXJ0eShyKSl9fV9wcm9wZXJ0eVRvQXR0cmlidXRlKHQsZSxuKXt0aGlzLl9fc2VyaWFsaXppbmc9ITAsdGhpcy5fdmFsdWVUb05vZGVBdHRyaWJ1dGUodGhpcyxuPWFyZ3VtZW50cy5sZW5ndGg8Mz90aGlzW3RdOm4sZXx8dGhpcy5jb25zdHJ1Y3Rvci5hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkodCkpLHRoaXMuX19zZXJpYWxpemluZz0hMX1fdmFsdWVUb05vZGVBdHRyaWJ1dGUodCxlLG4pe2NvbnN0IGk9dGhpcy5fc2VyaWFsaXplVmFsdWUoZSk7ImNsYXNzIiE9PW4mJiJuYW1lIiE9PW4mJiJzbG90IiE9PW58fCh0PVkodCkpLHZvaWQgMD09PWk/dC5yZW1vdmVBdHRyaWJ1dGUobik6dC5zZXRBdHRyaWJ1dGUobixpKX1fc2VyaWFsaXplVmFsdWUodCl7c3dpdGNoKHR5cGVvZiB0KXtjYXNlImJvb2xlYW4iOnJldHVybiB0PyIiOnZvaWQgMDtkZWZhdWx0OnJldHVybiBudWxsIT10P3QudG9TdHJpbmcoKTp2b2lkIDB9fV9kZXNlcmlhbGl6ZVZhbHVlKHQsZSl7c3dpdGNoKGUpe2Nhc2UgQm9vbGVhbjpyZXR1cm4gbnVsbCE9PXQ7Y2FzZSBOdW1iZXI6cmV0dXJuIE51bWJlcih0KTtkZWZhdWx0OnJldHVybiB0fX19KSksd3Q9e307bGV0IFN0PUhUTUxFbGVtZW50LnByb3RvdHlwZTtmb3IoO1N0Oyl7bGV0IHQ9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoU3QpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXd0W3RbZV1dPSEwO1N0PU9iamVjdC5nZXRQcm90b3R5cGVPZihTdCl9Y29uc3QgTXQ9SSgodD0+e2NvbnN0IGU9eHQodCk7cmV0dXJuIGNsYXNzIGV4dGVuZHMgZXtzdGF0aWMgY3JlYXRlUHJvcGVydGllc0ZvckF0dHJpYnV0ZXMoKXtsZXQgdD10aGlzLm9ic2VydmVkQXR0cmlidXRlcztmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLnByb3RvdHlwZS5fY3JlYXRlUHJvcGVydHlBY2Nlc3NvcihzdCh0W2VdKSl9c3RhdGljIGF0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eSh0KXtyZXR1cm4gbHQodCl9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7dGhpcy5fX2RhdGFQcm90byYmKHRoaXMuX2luaXRpYWxpemVQcm90b1Byb3BlcnRpZXModGhpcy5fX2RhdGFQcm90byksdGhpcy5fX2RhdGFQcm90bz1udWxsKSxzdXBlci5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKX1faW5pdGlhbGl6ZVByb3RvUHJvcGVydGllcyh0KXtmb3IobGV0IGUgaW4gdCl0aGlzLl9zZXRQcm9wZXJ0eShlLHRbZV0pfV9lbnN1cmVBdHRyaWJ1dGUodCxlKXt0aGlzLmhhc0F0dHJpYnV0ZSh0KXx8dGhpcy5fdmFsdWVUb05vZGVBdHRyaWJ1dGUodGhpcyxlLHQpfV9zZXJpYWxpemVWYWx1ZSh0KXtzd2l0Y2godHlwZW9mIHQpe2Nhc2Uib2JqZWN0IjppZih0IGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gdC50b1N0cmluZygpO2lmKHQpdHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jYXRjaCh0KXtyZXR1cm4iIn1kZWZhdWx0OnJldHVybiBzdXBlci5fc2VyaWFsaXplVmFsdWUodCl9fV9kZXNlcmlhbGl6ZVZhbHVlKHQsZSl7bGV0IG47c3dpdGNoKGUpe2Nhc2UgT2JqZWN0OnRyeXtuPUpTT04ucGFyc2UodCl9Y2F0Y2goZSl7bj10fWJyZWFrO2Nhc2UgQXJyYXk6dHJ5e249SlNPTi5wYXJzZSh0KX1jYXRjaChlKXtuPW51bGwsY29uc29sZS53YXJuKGBQb2x5bWVyOjpBdHRyaWJ1dGVzOiBjb3VsZG4ndCBkZWNvZGUgQXJyYXkgYXMgSlNPTjogJHt0fWApfWJyZWFrO2Nhc2UgRGF0ZTpuPWlzTmFOKHQpP1N0cmluZyh0KTpOdW1iZXIodCksbj1uZXcgRGF0ZShuKTticmVhaztkZWZhdWx0Om49c3VwZXIuX2Rlc2VyaWFsaXplVmFsdWUodCxlKX1yZXR1cm4gbn1fZGVmaW5lUHJvcGVydHlBY2Nlc3Nvcih0LGUpeyEoZnVuY3Rpb24gbih0LGUpe2lmKCF3dFtlXSl7bGV0IG49dFtlXTt2b2lkIDAhPT1uJiYodC5fX2RhdGE/dC5fc2V0UGVuZGluZ1Byb3BlcnR5KGUsbik6KHQuX19kYXRhUHJvdG8/dC5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX2RhdGFQcm90byIsdCkpfHwodC5fX2RhdGFQcm90bz1PYmplY3QuY3JlYXRlKHQuX19kYXRhUHJvdG8pKTp0Ll9fZGF0YVByb3RvPXt9LHQuX19kYXRhUHJvdG9bZV09bikpfX0pKHRoaXMsdCksc3VwZXIuX2RlZmluZVByb3BlcnR5QWNjZXNzb3IodCxlKX1faGFzQWNjZXNzb3IodCl7cmV0dXJuIHRoaXMuX19kYXRhSGFzQWNjZXNzb3ImJnRoaXMuX19kYXRhSGFzQWNjZXNzb3JbdF19X2lzUHJvcGVydHlQZW5kaW5nKHQpe3JldHVybiBCb29sZWFuKHRoaXMuX19kYXRhUGVuZGluZyYmdCBpbiB0aGlzLl9fZGF0YVBlbmRpbmcpfX19KSksRXQ9eyJkb20taWYiOiEwLCJkb20tcmVwZWF0IjohMH07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovbGV0IFR0PSExLEN0PSExO2Z1bmN0aW9uIEF0KHQpe2xldCBlPXQuZ2V0QXR0cmlidXRlKCJpcyIpO2lmKGUmJkV0W2VdKXtsZXQgbj10O2ZvcihuLnJlbW92ZUF0dHJpYnV0ZSgiaXMiKSx0PW4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpLG4ucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQodCxuKSx0LmFwcGVuZENoaWxkKG4pO24uYXR0cmlidXRlcy5sZW5ndGg7KXQuc2V0QXR0cmlidXRlKG4uYXR0cmlidXRlc1swXS5uYW1lLG4uYXR0cmlidXRlc1swXS52YWx1ZSksbi5yZW1vdmVBdHRyaWJ1dGUobi5hdHRyaWJ1dGVzWzBdLm5hbWUpfXJldHVybiB0fWZ1bmN0aW9uIGt0KHQsZSl7bGV0IG49ZS5wYXJlbnRJbmZvJiZrdCh0LGUucGFyZW50SW5mbyk7aWYoIW4pcmV0dXJuIHQ7Zm9yKGxldCB0PW4uZmlyc3RDaGlsZCxpPTA7dDt0PXQubmV4dFNpYmxpbmcpaWYoZS5wYXJlbnRJbmRleD09PWkrKylyZXR1cm4gdH1mdW5jdGlvbiBMdCh0LGUsbixpKXtpLmlkJiYoZVtpLmlkXT1uKX1mdW5jdGlvbiBQdCh0LGUsbil7aWYobi5ldmVudHMmJm4uZXZlbnRzLmxlbmd0aClmb3IobGV0IGkscj0wLG89bi5ldmVudHM7cjxvLmxlbmd0aCYmKGk9b1tyXSk7cisrKXQuX2FkZE1ldGhvZEV2ZW50TGlzdGVuZXJUb05vZGUoZSxpLm5hbWUsaS52YWx1ZSx0KX1mdW5jdGlvbiBOdCh0LGUsbixpKXtuLnRlbXBsYXRlSW5mbyYmKGUuX3RlbXBsYXRlSW5mbz1uLnRlbXBsYXRlSW5mbyxlLl9wYXJlbnRUZW1wbGF0ZUluZm89aSl9Y29uc3QgSXQ9SSgodD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBfcGFyc2VUZW1wbGF0ZSh0LGUpe2lmKCF0Ll90ZW1wbGF0ZUluZm8pe2xldCBuPXQuX3RlbXBsYXRlSW5mbz17fTtuLm5vZGVJbmZvTGlzdD1bXSxuLm5lc3RlZFRlbXBsYXRlPUJvb2xlYW4oZSksbi5zdHJpcFdoaXRlU3BhY2U9ZSYmZS5zdHJpcFdoaXRlU3BhY2V8fHQuaGFzQXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiksdGhpcy5fcGFyc2VUZW1wbGF0ZUNvbnRlbnQodCxuLHtwYXJlbnQ6bnVsbH0pfXJldHVybiB0Ll90ZW1wbGF0ZUluZm99c3RhdGljIF9wYXJzZVRlbXBsYXRlQ29udGVudCh0LGUsbil7cmV0dXJuIHRoaXMuX3BhcnNlVGVtcGxhdGVOb2RlKHQuY29udGVudCxlLG4pfXN0YXRpYyBfcGFyc2VUZW1wbGF0ZU5vZGUodCxlLG4pe2xldCBpPSExLHI9dDtyZXR1cm4idGVtcGxhdGUiIT1yLmxvY2FsTmFtZXx8ci5oYXNBdHRyaWJ1dGUoInByZXNlcnZlLWNvbnRlbnQiKT8ic2xvdCI9PT1yLmxvY2FsTmFtZSYmKGUuaGFzSW5zZXJ0aW9uUG9pbnQ9ITApOmk9dGhpcy5fcGFyc2VUZW1wbGF0ZU5lc3RlZFRlbXBsYXRlKHIsZSxuKXx8aSwoZnVuY3Rpb24gbyh0KXsoZnVuY3Rpb24gZSgpe2lmKCFUdCl7VHQ9ITA7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO3QucGxhY2Vob2xkZXI9ImEiLEN0PXQucGxhY2Vob2xkZXI9PT10LnRleHRDb250ZW50fXJldHVybiBDdH0pKCkmJiJ0ZXh0YXJlYSI9PT10LmxvY2FsTmFtZSYmdC5wbGFjZWhvbGRlciYmdC5wbGFjZWhvbGRlcj09PXQudGV4dENvbnRlbnQmJih0LnRleHRDb250ZW50PW51bGwpfSkociksci5maXJzdENoaWxkJiZ0aGlzLl9wYXJzZVRlbXBsYXRlQ2hpbGROb2RlcyhyLGUsbiksci5oYXNBdHRyaWJ1dGVzJiZyLmhhc0F0dHJpYnV0ZXMoKSYmKGk9dGhpcy5fcGFyc2VUZW1wbGF0ZU5vZGVBdHRyaWJ1dGVzKHIsZSxuKXx8aSksaXx8bi5ub3RlZH1zdGF0aWMgX3BhcnNlVGVtcGxhdGVDaGlsZE5vZGVzKHQsZSxuKXtpZigic2NyaXB0IiE9PXQubG9jYWxOYW1lJiYic3R5bGUiIT09dC5sb2NhbE5hbWUpZm9yKGxldCBpLHI9dC5maXJzdENoaWxkLG89MDtyO3I9aSl7aWYoInRlbXBsYXRlIj09ci5sb2NhbE5hbWUmJihyPUF0KHIpKSxpPXIubmV4dFNpYmxpbmcsci5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXtsZXQgbj1pO2Zvcig7biYmbi5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFOylyLnRleHRDb250ZW50Kz1uLnRleHRDb250ZW50LGk9bi5uZXh0U2libGluZyx0LnJlbW92ZUNoaWxkKG4pLG49aTtpZihlLnN0cmlwV2hpdGVTcGFjZSYmIXIudGV4dENvbnRlbnQudHJpbSgpKXt0LnJlbW92ZUNoaWxkKHIpO2NvbnRpbnVlfX1sZXQgYT17cGFyZW50SW5kZXg6byxwYXJlbnRJbmZvOm59O3RoaXMuX3BhcnNlVGVtcGxhdGVOb2RlKHIsZSxhKSYmKGEuaW5mb0luZGV4PWUubm9kZUluZm9MaXN0LnB1c2goYSktMSksci5wYXJlbnROb2RlJiZvKyt9fXN0YXRpYyBfcGFyc2VUZW1wbGF0ZU5lc3RlZFRlbXBsYXRlKHQsZSxuKXtsZXQgaT10LHI9dGhpcy5fcGFyc2VUZW1wbGF0ZShpLGUpO3JldHVybihyLmNvbnRlbnQ9aS5jb250ZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKS5hcHBlbmRDaGlsZChpLmNvbnRlbnQpLG4udGVtcGxhdGVJbmZvPXIsITB9c3RhdGljIF9wYXJzZVRlbXBsYXRlTm9kZUF0dHJpYnV0ZXModCxlLG4pe2xldCBpPSExLHI9QXJyYXkuZnJvbSh0LmF0dHJpYnV0ZXMpO2ZvcihsZXQgbyxhPXIubGVuZ3RoLTE7bz1yW2FdO2EtLSlpPXRoaXMuX3BhcnNlVGVtcGxhdGVOb2RlQXR0cmlidXRlKHQsZSxuLG8ubmFtZSxvLnZhbHVlKXx8aTtyZXR1cm4gaX1zdGF0aWMgX3BhcnNlVGVtcGxhdGVOb2RlQXR0cmlidXRlKHQsZSxuLGkscil7cmV0dXJuIm9uLSI9PT1pLnNsaWNlKDAsMyk/KHQucmVtb3ZlQXR0cmlidXRlKGkpLG4uZXZlbnRzPW4uZXZlbnRzfHxbXSxuLmV2ZW50cy5wdXNoKHtuYW1lOmkuc2xpY2UoMyksdmFsdWU6cn0pLCEwKToiaWQiPT09aSYmKG4uaWQ9ciwhMCl9c3RhdGljIF9jb250ZW50Rm9yVGVtcGxhdGUodCl7bGV0IGU9dC5fdGVtcGxhdGVJbmZvO3JldHVybiBlJiZlLmNvbnRlbnR8fHQuY29udGVudH1fc3RhbXBUZW1wbGF0ZSh0LGUpe3QmJiF0LmNvbnRlbnQmJndpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50JiZIVE1MVGVtcGxhdGVFbGVtZW50LmRlY29yYXRlJiZIVE1MVGVtcGxhdGVFbGVtZW50LmRlY29yYXRlKHQpO2xldCBuPShlPWV8fHRoaXMuY29uc3RydWN0b3IuX3BhcnNlVGVtcGxhdGUodCkpLm5vZGVJbmZvTGlzdCxpPWRvY3VtZW50LmltcG9ydE5vZGUoZS5jb250ZW50fHx0LmNvbnRlbnQsITApO2kuX19ub0luc2VydGlvblBvaW50PSFlLmhhc0luc2VydGlvblBvaW50O2xldCByPWkubm9kZUxpc3Q9bmV3IEFycmF5KG4ubGVuZ3RoKTtpLiQ9e307Zm9yKGxldCB0LG89MCxhPW4ubGVuZ3RoO288YSYmKHQ9bltvXSk7bysrKXtsZXQgbj1yW29dPWt0KGksdCk7THQoMCxpLiQsbix0KSxOdCgwLG4sdCxlKSxQdCh0aGlzLG4sdCl9cmV0dXJuIGk9aSxpfV9hZGRNZXRob2RFdmVudExpc3RlbmVyVG9Ob2RlKHQsZSxuLGkpe2xldCByPShmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gdD10Ll9tZXRob2RIb3N0fHx0LGZ1bmN0aW9uKGUpe3Rbbl0/dFtuXShlLGUuZGV0YWlsKTpjb25zb2xlLndhcm4oImxpc3RlbmVyIG1ldGhvZCBgIituKyJgIG5vdCBkZWZpbmVkIil9fSkoaT1pfHx0LDAsbik7cmV0dXJuIHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodCxlLHIpLHJ9X2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodCxlLG4pe3QuYWRkRXZlbnRMaXN0ZW5lcihlLG4pfV9yZW1vdmVFdmVudExpc3RlbmVyRnJvbU5vZGUodCxlLG4pe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4pfX0pKTsKLyoqCiAgICAgKiBAZmlsZW92ZXJ2aWV3CiAgICAgKiBAc3VwcHJlc3Mge2NoZWNrUHJvdG90eXBhbFR5cGVzfQogICAgICogQGxpY2Vuc2UgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQKICAgICAqIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkKICAgICAqIGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkKICAgICAqIEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAKICAgICAqIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqL2xldCBSdD0wO2NvbnN0IE90PVtdLHp0PXtDT01QVVRFOiJfX2NvbXB1dGVFZmZlY3RzIixSRUZMRUNUOiJfX3JlZmxlY3RFZmZlY3RzIixOT1RJRlk6Il9fbm90aWZ5RWZmZWN0cyIsUFJPUEFHQVRFOiJfX3Byb3BhZ2F0ZUVmZmVjdHMiLE9CU0VSVkU6Il9fb2JzZXJ2ZUVmZmVjdHMiLFJFQURfT05MWToiX19yZWFkT25seSJ9LER0PS9bQS1aXS87ZnVuY3Rpb24gQnQodCxlLG4pe2xldCBpPXRbZV07aWYoaSl7aWYoIXQuaGFzT3duUHJvcGVydHkoZSkmJihpPXRbZV09T2JqZWN0LmNyZWF0ZSh0W2VdKSxuKSlmb3IobGV0IHQgaW4gaSl7bGV0IGU9aVt0XSxuPWlbdF09QXJyYXkoZS5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XX19ZWxzZSBpPXRbZV09e307cmV0dXJuIGl9ZnVuY3Rpb24gSHQodCxlLG4saSxyLG8pe2lmKGUpe2xldCBhPSExO2NvbnN0IHM9UnQrKztmb3IobGV0IGwgaW4gbil7bGV0IGM9ZVtyPyQobCk6bF07aWYoYylmb3IobGV0IGUsdT0wLGg9Yy5sZW5ndGg7dTxoJiYoZT1jW3VdKTt1KyspZS5pbmZvJiZlLmluZm8ubGFzdFJ1bj09PXN8fHImJiFWdChsLGUudHJpZ2dlcil8fChlLmluZm8mJihlLmluZm8ubGFzdFJ1bj1zKSxlLmZuKHQsbCxuLGksZS5pbmZvLHIsbyksYT0hMCl9cmV0dXJuIGF9cmV0dXJuITF9ZnVuY3Rpb24gRnQodCxlLG4saSxyLG8sYSxzKXtsZXQgbD0hMSxjPWVbYT8kKGkpOmldO2lmKGMpZm9yKGxldCBlLHU9MCxoPWMubGVuZ3RoO3U8aCYmKGU9Y1t1XSk7dSsrKWUuaW5mbyYmZS5pbmZvLmxhc3RSdW49PT1ufHxhJiYhVnQoaSxlLnRyaWdnZXIpfHwoZS5pbmZvJiYoZS5pbmZvLmxhc3RSdW49biksZS5mbih0LGkscixvLGUuaW5mbyxhLHMpLGw9ITApO3JldHVybiBsfWZ1bmN0aW9uIFZ0KHQsZSl7aWYoZSl7bGV0IG49ZS5uYW1lO3JldHVybiBuPT10fHwhKCFlLnN0cnVjdHVyZWR8fCFLKG4sdCkpfHwhKCFlLndpbGRjYXJkfHwhWihuLHQpKX1yZXR1cm4hMH1mdW5jdGlvbiBVdCh0LGUsbixpLHIpe2xldCBvPSJzdHJpbmciPT10eXBlb2Ygci5tZXRob2Q/dFtyLm1ldGhvZF06ci5tZXRob2QsYT1yLnByb3BlcnR5O28/by5jYWxsKHQsdC5fX2RhdGFbYV0saVthXSk6ci5keW5hbWljRm58fGNvbnNvbGUud2Fybigib2JzZXJ2ZXIgbWV0aG9kIGAiK3IubWV0aG9kKyJgIG5vdCBkZWZpbmVkIil9ZnVuY3Rpb24ganQodCxlLG4pe2xldCBpPSQoZSk7cmV0dXJuIGkhPT1lJiYoR3QodCxsdChpKSsiLWNoYW5nZWQiLG5bZV0sZSksITApfWZ1bmN0aW9uIEd0KHQsZSxuLGkpe2xldCByPXt2YWx1ZTpuLHF1ZXVlUHJvcGVydHk6ITB9O2kmJihyLnBhdGg9aSksWSh0KS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChlLHtkZXRhaWw6cn0pKX1mdW5jdGlvbiBXdCh0LGUsbixpLHIsbyl7bGV0IGE9KG8/JChlKTplKSE9ZT9lOm51bGwscz1hP250KHQsYSk6dC5fX2RhdGFbZV07YSYmdm9pZCAwPT09cyYmKHM9bltlXSksR3QodCxyLmV2ZW50TmFtZSxzLGEpfWZ1bmN0aW9uIHF0KHQsZSxuLGkscil7bGV0IG89dC5fX2RhdGFbZV07eSYmKG89eShvLHIuYXR0ck5hbWUsImF0dHJpYnV0ZSIsdCkpLHQuX3Byb3BlcnR5VG9BdHRyaWJ1dGUoZSxyLmF0dHJOYW1lLG8pfWNvbnN0IFl0PSh0LGUsbik9PntsZXQgaT0wLHI9ZS5sZW5ndGgtMSxvPS0xO2Zvcig7aTw9cjspe2NvbnN0IGE9aStyPj4xLHM9bi5nZXQoZVthXS5tZXRob2RJbmZvKS1uLmdldCh0Lm1ldGhvZEluZm8pO2lmKHM8MClpPWErMTtlbHNle2lmKCEocz4wKSl7bz1hO2JyZWFrfXI9YS0xfX1vPDAmJihvPXIrMSksZS5zcGxpY2UobywwLHQpfSxYdD0odCxlLG4saSxyKT0+e2NvbnN0IG89ZVtyPyQodCk6dF07aWYobylmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKyl7Y29uc3QgYT1vW2VdO2EuaW5mby5sYXN0UnVuPT09UnR8fHImJiFWdCh0LGEudHJpZ2dlcil8fChhLmluZm8ubGFzdFJ1bj1SdCxZdChhLmluZm8sbixpKSl9fTtmdW5jdGlvbiAkdCh0LGUsbixpLHIpe2xldCBvPW5lKHQsZSxuLDAscik7aWYobz09PU90KXJldHVybiExO2xldCBhPXIubWV0aG9kSW5mbztyZXR1cm4gdC5fX2RhdGFIYXNBY2Nlc3NvciYmdC5fX2RhdGFIYXNBY2Nlc3NvclthXT90Ll9zZXRQZW5kaW5nUHJvcGVydHkoYSxvLCEwKToodFthXT1vLCExKX1mdW5jdGlvbiBLdCh0LGUsbixpLHIsbyxhKXtuLmJpbmRpbmdzPW4uYmluZGluZ3N8fFtdO2xldCBzPXtraW5kOmksdGFyZ2V0OnIscGFydHM6byxsaXRlcmFsOmEsaXNDb21wb3VuZDoxIT09by5sZW5ndGh9O2lmKG4uYmluZGluZ3MucHVzaChzKSwoZnVuY3Rpb24gbCh0KXtyZXR1cm4gQm9vbGVhbih0LnRhcmdldCkmJiJhdHRyaWJ1dGUiIT10LmtpbmQmJiJ0ZXh0IiE9dC5raW5kJiYhdC5pc0NvbXBvdW5kJiYieyI9PT10LnBhcnRzWzBdLm1vZGV9KShzKSl7bGV0e2V2ZW50OnQsbmVnYXRlOmV9PXMucGFydHNbMF07cy5saXN0ZW5lckV2ZW50PXR8fGx0KHIpKyItY2hhbmdlZCIscy5saXN0ZW5lck5lZ2F0ZT1lfWxldCBjPWUubm9kZUluZm9MaXN0Lmxlbmd0aDtmb3IobGV0IG49MDtuPHMucGFydHMubGVuZ3RoO24rKyl7bGV0IGk9cy5wYXJ0c1tuXTtpLmNvbXBvdW5kSW5kZXg9bixadCh0LGUscyxpLGMpfX1mdW5jdGlvbiBadCh0LGUsbixpLHIpe2lmKCFpLmxpdGVyYWwpaWYoImF0dHJpYnV0ZSI9PT1uLmtpbmQmJiItIj09PW4udGFyZ2V0WzBdKWNvbnNvbGUud2FybigiQ2Fubm90IHNldCBhdHRyaWJ1dGUgIituLnRhcmdldCsnIGJlY2F1c2UgIi0iIGlzIG5vdCBhIHZhbGlkIGF0dHJpYnV0ZSBzdGFydGluZyBjaGFyYWN0ZXInKTtlbHNle2xldCBvPWkuZGVwZW5kZW5jaWVzLGE9e2luZGV4OnIsYmluZGluZzpuLHBhcnQ6aSxldmFsdWF0b3I6dH07Zm9yKGxldCBuPTA7bjxvLmxlbmd0aDtuKyspe2xldCBpPW9bbl07InN0cmluZyI9PXR5cGVvZiBpJiYoaT1zZShpKSxpLndpbGRjYXJkPSEwKSx0Ll9hZGRUZW1wbGF0ZVByb3BlcnR5RWZmZWN0KGUsaS5yb290UHJvcGVydHkse2ZuOkp0LGluZm86YSx0cmlnZ2VyOml9KX19fWZ1bmN0aW9uIEp0KHQsZSxuLGkscixvLGEpe2xldCBzPWFbci5pbmRleF0sbD1yLmJpbmRpbmcsYz1yLnBhcnQ7aWYobyYmYy5zb3VyY2UmJmUubGVuZ3RoPmMuc291cmNlLmxlbmd0aCYmInByb3BlcnR5Ij09bC5raW5kJiYhbC5pc0NvbXBvdW5kJiZzLl9faXNQcm9wZXJ0eUVmZmVjdHNDbGllbnQmJnMuX19kYXRhSGFzQWNjZXNzb3ImJnMuX19kYXRhSGFzQWNjZXNzb3JbbC50YXJnZXRdKXtsZXQgaT1uW2VdO2U9SihjLnNvdXJjZSxsLnRhcmdldCxlKSxzLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoZSxpLCExLCEwKSYmdC5fZW5xdWV1ZUNsaWVudChzKX1lbHNle2xldCBhPXIuZXZhbHVhdG9yLl9ldmFsdWF0ZUJpbmRpbmcodCxjLGUsbixpLG8pO2EhPT1PdCYmKGZ1bmN0aW9uIHUodCxlLG4saSxyKXtpZihyPShmdW5jdGlvbiBvKHQsZSxuLGkpe2lmKG4uaXNDb21wb3VuZCl7bGV0IHI9dC5fX2RhdGFDb21wb3VuZFN0b3JhZ2Vbbi50YXJnZXRdO3JbaS5jb21wb3VuZEluZGV4XT1lLGU9ci5qb2luKCIiKX1yZXR1cm4iYXR0cmlidXRlIiE9PW4ua2luZCYmKCJ0ZXh0Q29udGVudCIhPT1uLnRhcmdldCYmKCJ2YWx1ZSIhPT1uLnRhcmdldHx8ImlucHV0IiE9PXQubG9jYWxOYW1lJiYidGV4dGFyZWEiIT09dC5sb2NhbE5hbWUpfHwoZT1udWxsPT1lPyIiOmUpKSxlfSkoZSxyLG4saSkseSYmKHI9eShyLG4udGFyZ2V0LG4ua2luZCxlKSksImF0dHJpYnV0ZSI9PW4ua2luZCl0Ll92YWx1ZVRvTm9kZUF0dHJpYnV0ZShlLHIsbi50YXJnZXQpO2Vsc2V7bGV0IGk9bi50YXJnZXQ7ZS5fX2lzUHJvcGVydHlFZmZlY3RzQ2xpZW50JiZlLl9fZGF0YUhhc0FjY2Vzc29yJiZlLl9fZGF0YUhhc0FjY2Vzc29yW2ldP2VbenQuUkVBRF9PTkxZXSYmZVt6dC5SRUFEX09OTFldW2ldfHxlLl9zZXRQZW5kaW5nUHJvcGVydHkoaSxyKSYmdC5fZW5xdWV1ZUNsaWVudChlKTp0Ll9zZXRVbm1hbmFnZWRQcm9wZXJ0eVRvTm9kZShlLGkscil9fSkodCxzLGwsYyxhKX19ZnVuY3Rpb24gUXQodCxlKXtpZihlLmlzQ29tcG91bmQpe2xldCBuPXQuX19kYXRhQ29tcG91bmRTdG9yYWdlfHwodC5fX2RhdGFDb21wb3VuZFN0b3JhZ2U9e30pLGk9ZS5wYXJ0cyxyPW5ldyBBcnJheShpLmxlbmd0aCk7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspclt0XT1pW3RdLmxpdGVyYWw7bGV0IG89ZS50YXJnZXQ7bltvXT1yLGUubGl0ZXJhbCYmInByb3BlcnR5Ij09ZS5raW5kJiYoImNsYXNzTmFtZSI9PT1vJiYodD1ZKHQpKSx0W29dPWUubGl0ZXJhbCl9fWZ1bmN0aW9uIHRlKHQsZSxuKXtpZihuLmxpc3RlbmVyRXZlbnQpe2xldCBpPW4ucGFydHNbMF07dC5hZGRFdmVudExpc3RlbmVyKG4ubGlzdGVuZXJFdmVudCwoZnVuY3Rpb24odCl7IShmdW5jdGlvbiByKHQsZSxuLGksbyl7bGV0IGEscz10LmRldGFpbCxsPXMmJnMucGF0aDtsPyhpPUoobixpLGwpLGE9cyYmcy52YWx1ZSk6YT10LmN1cnJlbnRUYXJnZXRbbl0sYT1vPyFhOmEsZVt6dC5SRUFEX09OTFldJiZlW3p0LlJFQURfT05MWV1baV18fCFlLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoaSxhLCEwLEJvb2xlYW4obCkpfHxzJiZzLnF1ZXVlUHJvcGVydHl8fGUuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9KSh0LGUsbi50YXJnZXQsaS5zb3VyY2UsaS5uZWdhdGUpfSkpfX1mdW5jdGlvbiBlZSh0LGUsbixpLHIsbyl7bGV0IGE9e21ldGhvZE5hbWU6ZS5tZXRob2ROYW1lLGFyZ3M6ZS5hcmdzLG1ldGhvZEluZm86cixkeW5hbWljRm46bz1lLnN0YXRpY3x8byYmKCJvYmplY3QiIT10eXBlb2Ygb3x8b1tlLm1ldGhvZE5hbWVdKX07Zm9yKGxldCByLG89MDtvPGUuYXJncy5sZW5ndGgmJihyPWUuYXJnc1tvXSk7bysrKXIubGl0ZXJhbHx8dC5fYWRkUHJvcGVydHlFZmZlY3Qoci5yb290UHJvcGVydHksbix7Zm46aSxpbmZvOmEsdHJpZ2dlcjpyfSk7cmV0dXJuIG8mJnQuX2FkZFByb3BlcnR5RWZmZWN0KGUubWV0aG9kTmFtZSxuLHtmbjppLGluZm86YX0pLGF9ZnVuY3Rpb24gbmUodCxlLG4saSxyKXtsZXQgbz10Ll9tZXRob2RIb3N0fHx0LGE9b1tyLm1ldGhvZE5hbWVdO2lmKGEpe2xldCBpPXQuX21hcnNoYWxBcmdzKHIuYXJncyxlLG4pO3JldHVybiBpPT09T3Q/T3Q6YS5hcHBseShvLGkpfXIuZHluYW1pY0ZufHxjb25zb2xlLndhcm4oIm1ldGhvZCBgIityLm1ldGhvZE5hbWUrImAgbm90IGRlZmluZWQiKX1jb25zdCBpZT1bXSxyZT1uZXcgUmVnRXhwKCIoXFxbXFxbfHt7KVxccyooPzooISlcXHMqKT8oKD86W2EtekEtWl8kXVtcXHcuOiRcXC0qXSopXFxzKig/OlxcKFxccyooPzooPzooPzooKD86W2EtekEtWl8kXVtcXHcuOiRcXC0qXSopfCg/OlstK10/WzAtOV0qXFwuP1swLTldKyg/OltlRV1bLStdP1swLTldKyk/KXwoPzooPzonKD86W14nXFxcXF18XFxcXC4pKicpfCg/OlwiKD86W15cIlxcXFxdfFxcXFwuKSpcIikpKVxccyopKD86LFxccyooPzooKD86W2EtekEtWl8kXVtcXHcuOiRcXC0qXSopfCg/OlstK10/WzAtOV0qXFwuP1swLTldKyg/OltlRV1bLStdP1swLTldKyk/KXwoPzooPzonKD86W14nXFxcXF18XFxcXC4pKicpfCg/OlwiKD86W15cIlxcXFxdfFxcXFwuKSpcIikpKVxccyopKSopPylcXClcXHMqKT8pKD86XV18fX0pIiwiZyIpO2Z1bmN0aW9uIG9lKHQpe2xldCBlPSIiO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWUrPXRbbl0ubGl0ZXJhbHx8IiI7cmV0dXJuIGV9ZnVuY3Rpb24gYWUodCl7bGV0IGU9dC5tYXRjaCgvKFteXHNdKz8pXCgoW1xzXFNdKilcKS8pO2lmKGUpe2xldCB0PXttZXRob2ROYW1lOmVbMV0sc3RhdGljOiEwLGFyZ3M6aWV9O3JldHVybiBlWzJdLnRyaW0oKT8oZnVuY3Rpb24gbih0LGUpe3JldHVybiBlLmFyZ3M9dC5tYXAoKGZ1bmN0aW9uKHQpe2xldCBuPXNlKHQpO3JldHVybiBuLmxpdGVyYWx8fChlLnN0YXRpYz0hMSksbn0pLHRoaXMpLGV9KShlWzJdLnJlcGxhY2UoL1xcLC9nLCImY29tbWE7Iikuc3BsaXQoIiwiKSx0KTp0fXJldHVybiBudWxsfWZ1bmN0aW9uIHNlKHQpe2xldCBlPXQudHJpbSgpLnJlcGxhY2UoLyZjb21tYTsvZywiLCIpLnJlcGxhY2UoL1xcKC4pL2csIiQxIiksbj17bmFtZTplLHZhbHVlOiIiLGxpdGVyYWw6ITF9LGk9ZVswXTtzd2l0Y2goIi0iPT09aSYmKGk9ZVsxXSksaT49IjAiJiZpPD0iOSImJihpPSIjIiksaSl7Y2FzZSInIjpjYXNlJyInOm4udmFsdWU9ZS5zbGljZSgxLC0xKSxuLmxpdGVyYWw9ITA7YnJlYWs7Y2FzZSIjIjpuLnZhbHVlPU51bWJlcihlKSxuLmxpdGVyYWw9ITB9cmV0dXJuIG4ubGl0ZXJhbHx8KG4ucm9vdFByb3BlcnR5PSQoZSksbi5zdHJ1Y3R1cmVkPVgoZSksbi5zdHJ1Y3R1cmVkJiYobi53aWxkY2FyZD0iLioiPT1lLnNsaWNlKC0yKSxuLndpbGRjYXJkJiYobi5uYW1lPWUuc2xpY2UoMCwtMikpKSksbn1mdW5jdGlvbiBsZSh0LGUsbil7bGV0IGk9bnQodCxuKTtyZXR1cm4gdm9pZCAwPT09aSYmKGk9ZVtuXSksaX1mdW5jdGlvbiBjZSh0LGUsbixpKXtjb25zdCByPXtpbmRleFNwbGljZXM6aX07RSYmIXQuX292ZXJyaWRlTGVnYWN5VW5kZWZpbmVkJiYoZS5zcGxpY2VzPXIpLHQubm90aWZ5UGF0aChuKyIuc3BsaWNlcyIsciksdC5ub3RpZnlQYXRoKG4rIi5sZW5ndGgiLGUubGVuZ3RoKSxFJiYhdC5fb3ZlcnJpZGVMZWdhY3lVbmRlZmluZWQmJihyLmluZGV4U3BsaWNlcz1bXSl9ZnVuY3Rpb24gdWUodCxlLG4saSxyLG8pe2NlKHQsZSxuLFt7aW5kZXg6aSxhZGRlZENvdW50OnIscmVtb3ZlZDpvLG9iamVjdDplLHR5cGU6InNwbGljZSJ9XSl9Y29uc3QgaGU9SSgodD0+e2NvbnN0IGU9SXQoTXQodCkpO3JldHVybiBjbGFzcyBleHRlbmRzIGV7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX19pc1Byb3BlcnR5RWZmZWN0c0NsaWVudD0hMH1nZXQgUFJPUEVSVFlfRUZGRUNUX1RZUEVTKCl7cmV0dXJuIHp0fV9pbml0aWFsaXplUHJvcGVydGllcygpe3N1cGVyLl9pbml0aWFsaXplUHJvcGVydGllcygpLHRoaXMuX3JlZ2lzdGVySG9zdCgpLHRoaXMuX19kYXRhQ2xpZW50c1JlYWR5PSExLHRoaXMuX19kYXRhUGVuZGluZ0NsaWVudHM9bnVsbCx0aGlzLl9fZGF0YVRvTm90aWZ5PW51bGwsdGhpcy5fX2RhdGFMaW5rZWRQYXRocz1udWxsLHRoaXMuX19kYXRhSGFzUGF0aHM9ITEsdGhpcy5fX2RhdGFDb21wb3VuZFN0b3JhZ2U9dGhpcy5fX2RhdGFDb21wb3VuZFN0b3JhZ2V8fG51bGwsdGhpcy5fX2RhdGFIb3N0PXRoaXMuX19kYXRhSG9zdHx8bnVsbCx0aGlzLl9fZGF0YVRlbXA9e30sdGhpcy5fX2RhdGFDbGllbnRzSW5pdGlhbGl6ZWQ9ITF9X3JlZ2lzdGVySG9zdCgpe2lmKGRlLmxlbmd0aCl7bGV0IHQ9ZGVbZGUubGVuZ3RoLTFdO3QuX2VucXVldWVDbGllbnQodGhpcyksdGhpcy5fX2RhdGFIb3N0PXR9fV9pbml0aWFsaXplUHJvdG9Qcm9wZXJ0aWVzKHQpe3RoaXMuX19kYXRhPU9iamVjdC5jcmVhdGUodCksdGhpcy5fX2RhdGFQZW5kaW5nPU9iamVjdC5jcmVhdGUodCksdGhpcy5fX2RhdGFPbGQ9e319X2luaXRpYWxpemVJbnN0YW5jZVByb3BlcnRpZXModCl7bGV0IGU9dGhpc1t6dC5SRUFEX09OTFldO2ZvcihsZXQgbiBpbiB0KWUmJmVbbl18fCh0aGlzLl9fZGF0YVBlbmRpbmc9dGhpcy5fX2RhdGFQZW5kaW5nfHx7fSx0aGlzLl9fZGF0YU9sZD10aGlzLl9fZGF0YU9sZHx8e30sdGhpcy5fX2RhdGFbbl09dGhpcy5fX2RhdGFQZW5kaW5nW25dPXRbbl0pfV9hZGRQcm9wZXJ0eUVmZmVjdCh0LGUsbil7dGhpcy5fY3JlYXRlUHJvcGVydHlBY2Nlc3Nvcih0LGU9PXp0LlJFQURfT05MWSk7bGV0IGk9QnQodGhpcyxlLCEwKVt0XTtpfHwoaT10aGlzW2VdW3RdPVtdKSxpLnB1c2gobil9X3JlbW92ZVByb3BlcnR5RWZmZWN0KHQsZSxuKXtsZXQgaT1CdCh0aGlzLGUsITApW3RdLHI9aS5pbmRleE9mKG4pO3I+PTAmJmkuc3BsaWNlKHIsMSl9X2hhc1Byb3BlcnR5RWZmZWN0KHQsZSl7bGV0IG49dGhpc1tlXTtyZXR1cm4gQm9vbGVhbihuJiZuW3RdKX1faGFzUmVhZE9ubHlFZmZlY3QodCl7cmV0dXJuIHRoaXMuX2hhc1Byb3BlcnR5RWZmZWN0KHQsenQuUkVBRF9PTkxZKX1faGFzTm90aWZ5RWZmZWN0KHQpe3JldHVybiB0aGlzLl9oYXNQcm9wZXJ0eUVmZmVjdCh0LHp0Lk5PVElGWSl9X2hhc1JlZmxlY3RFZmZlY3QodCl7cmV0dXJuIHRoaXMuX2hhc1Byb3BlcnR5RWZmZWN0KHQsenQuUkVGTEVDVCl9X2hhc0NvbXB1dGVkRWZmZWN0KHQpe3JldHVybiB0aGlzLl9oYXNQcm9wZXJ0eUVmZmVjdCh0LHp0LkNPTVBVVEUpfV9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgodCxlLG4saSl7aWYoaXx8JChBcnJheS5pc0FycmF5KHQpP3RbMF06dCkhPT10KXtpZighaSl7bGV0IG49bnQodGhpcyx0KTtpZighKHQ9aXQodGhpcyx0LGUpKXx8IXN1cGVyLl9zaG91bGRQcm9wZXJ0eUNoYW5nZSh0LGUsbikpcmV0dXJuITF9aWYodGhpcy5fX2RhdGFIYXNQYXRocz0hMCx0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHkodCxlLG4pKXJldHVybihmdW5jdGlvbiByKHQsZSxuKXtsZXQgaT10Ll9fZGF0YUxpbmtlZFBhdGhzO2lmKGkpe2xldCByO2ZvcihsZXQgbyBpbiBpKXtsZXQgYT1pW29dO1oobyxlKT8ocj1KKG8sYSxlKSx0Ll9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgocixuLCEwLCEwKSk6WihhLGUpJiYocj1KKGEsbyxlKSx0Ll9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgocixuLCEwLCEwKSl9fX0pKHRoaXMsdCxlKSwhMH1lbHNle2lmKHRoaXMuX19kYXRhSGFzQWNjZXNzb3ImJnRoaXMuX19kYXRhSGFzQWNjZXNzb3JbdF0pcmV0dXJuIHRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eSh0LGUsbik7dGhpc1t0XT1lfXJldHVybiExfV9zZXRVbm1hbmFnZWRQcm9wZXJ0eVRvTm9kZSh0LGUsbil7bj09PXRbZV0mJiJvYmplY3QiIT10eXBlb2Ygbnx8KCJjbGFzc05hbWUiPT09ZSYmKHQ9WSh0KSksdFtlXT1uKX1fc2V0UGVuZGluZ1Byb3BlcnR5KHQsZSxuKXtsZXQgaT10aGlzLl9fZGF0YUhhc1BhdGhzJiZYKHQpO3JldHVybiEhdGhpcy5fc2hvdWxkUHJvcGVydHlDaGFuZ2UodCxlLChpP3RoaXMuX19kYXRhVGVtcDp0aGlzLl9fZGF0YSlbdF0pJiYodGhpcy5fX2RhdGFQZW5kaW5nfHwodGhpcy5fX2RhdGFQZW5kaW5nPXt9LHRoaXMuX19kYXRhT2xkPXt9KSx0IGluIHRoaXMuX19kYXRhT2xkfHwodGhpcy5fX2RhdGFPbGRbdF09dGhpcy5fX2RhdGFbdF0pLGk/dGhpcy5fX2RhdGFUZW1wW3RdPWU6dGhpcy5fX2RhdGFbdF09ZSx0aGlzLl9fZGF0YVBlbmRpbmdbdF09ZSwoaXx8dGhpc1t6dC5OT1RJRlldJiZ0aGlzW3p0Lk5PVElGWV1bdF0pJiYodGhpcy5fX2RhdGFUb05vdGlmeT10aGlzLl9fZGF0YVRvTm90aWZ5fHx7fSx0aGlzLl9fZGF0YVRvTm90aWZ5W3RdPW4pLCEwKX1fc2V0UHJvcGVydHkodCxlKXt0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHkodCxlLCEwKSYmdGhpcy5faW52YWxpZGF0ZVByb3BlcnRpZXMoKX1faW52YWxpZGF0ZVByb3BlcnRpZXMoKXt0aGlzLl9fZGF0YVJlYWR5JiZ0aGlzLl9mbHVzaFByb3BlcnRpZXMoKX1fZW5xdWV1ZUNsaWVudCh0KXt0aGlzLl9fZGF0YVBlbmRpbmdDbGllbnRzPXRoaXMuX19kYXRhUGVuZGluZ0NsaWVudHN8fFtdLHQhPT10aGlzJiZ0aGlzLl9fZGF0YVBlbmRpbmdDbGllbnRzLnB1c2godCl9X2ZsdXNoQ2xpZW50cygpe3RoaXMuX19kYXRhQ2xpZW50c1JlYWR5P3RoaXMuX19lbmFibGVPckZsdXNoQ2xpZW50cygpOih0aGlzLl9fZGF0YUNsaWVudHNSZWFkeT0hMCx0aGlzLl9yZWFkeUNsaWVudHMoKSx0aGlzLl9fZGF0YVJlYWR5PSEwKX1fX2VuYWJsZU9yRmx1c2hDbGllbnRzKCl7bGV0IHQ9dGhpcy5fX2RhdGFQZW5kaW5nQ2xpZW50cztpZih0KXt0aGlzLl9fZGF0YVBlbmRpbmdDbGllbnRzPW51bGw7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2xldCBuPXRbZV07bi5fX2RhdGFFbmFibGVkP24uX19kYXRhUGVuZGluZyYmbi5fZmx1c2hQcm9wZXJ0aWVzKCk6bi5fZW5hYmxlUHJvcGVydGllcygpfX19X3JlYWR5Q2xpZW50cygpe3RoaXMuX19lbmFibGVPckZsdXNoQ2xpZW50cygpfXNldFByb3BlcnRpZXModCxlKXtmb3IobGV0IG4gaW4gdCkhZSYmdGhpc1t6dC5SRUFEX09OTFldJiZ0aGlzW3p0LlJFQURfT05MWV1bbl18fHRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aChuLHRbbl0sITApO3RoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9cmVhZHkoKXt0aGlzLl9mbHVzaFByb3BlcnRpZXMoKSx0aGlzLl9fZGF0YUNsaWVudHNSZWFkeXx8dGhpcy5fZmx1c2hDbGllbnRzKCksdGhpcy5fX2RhdGFQZW5kaW5nJiZ0aGlzLl9mbHVzaFByb3BlcnRpZXMoKX1fcHJvcGVydGllc0NoYW5nZWQodCxlLG4pe2xldCBpLHI9dGhpcy5fX2RhdGFIYXNQYXRoczt0aGlzLl9fZGF0YUhhc1BhdGhzPSExLChmdW5jdGlvbiBvKHQsZSxuLGkpe2xldCByPXRbenQuQ09NUFVURV07aWYocilpZihUKXtSdCsrO2NvbnN0IG89KGZ1bmN0aW9uIGEodCl7bGV0IGU9dC5jb25zdHJ1Y3Rvci5fX29yZGVyZWRDb21wdXRlZERlcHM7aWYoIWUpe2U9bmV3IE1hcDtjb25zdCBuPXRbenQuQ09NUFVURV07bGV0IGkse2NvdW50czpyLHJlYWR5Om8sdG90YWw6YX09KGZ1bmN0aW9uIHModCl7Y29uc3QgZT10Ll9fY29tcHV0ZUluZm8sbj17fSxpPXRbenQuQ09NUFVURV0scj1bXTtsZXQgbz0wO2ZvcihsZXQgdCBpbiBlKXtjb25zdCBpPWVbdF07bys9blt0XT1pLmFyZ3MuZmlsdGVyKCh0PT4hdC5saXRlcmFsKSkubGVuZ3RoKyhpLmR5bmFtaWNGbj8xOjApfWZvcihsZXQgdCBpbiBpKWVbdF18fHIucHVzaCh0KTtyZXR1cm57Y291bnRzOm4scmVhZHk6cix0b3RhbDpvfX0pKHQpO2Zvcig7aT1vLnNoaWZ0KCk7KXtlLnNldChpLGUuc2l6ZSk7Y29uc3QgdD1uW2ldO3QmJnQuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5pbmZvLm1ldGhvZEluZm87LS1hLDA9PS0tcltlXSYmby5wdXNoKGUpfSkpfTAhPT1hJiZjb25zb2xlLndhcm4oYENvbXB1dGVkIGdyYXBoIGZvciAke3QubG9jYWxOYW1lfSBpbmNvbXBsZXRlOyBjaXJjdWxhcj9gKSx0LmNvbnN0cnVjdG9yLl9fb3JkZXJlZENvbXB1dGVkRGVwcz1lfXJldHVybiBlfSkodCkscz1bXTtmb3IobGV0IHQgaW4gZSlYdCh0LHIscyxvLGkpO2xldCBsO2Zvcig7bD1zLnNoaWZ0KCk7KSR0KHQsIiIsZSwwLGwpJiZYdChsLm1ldGhvZEluZm8scixzLG8saSk7T2JqZWN0LmFzc2lnbihuLHQuX19kYXRhT2xkKSxPYmplY3QuYXNzaWduKGUsdC5fX2RhdGFQZW5kaW5nKSx0Ll9fZGF0YVBlbmRpbmc9bnVsbH1lbHNle2xldCBvPWU7Zm9yKDtIdCh0LHIsbyxuLGkpOylPYmplY3QuYXNzaWduKG4sdC5fX2RhdGFPbGQpLE9iamVjdC5hc3NpZ24oZSx0Ll9fZGF0YVBlbmRpbmcpLG89dC5fX2RhdGFQZW5kaW5nLHQuX19kYXRhUGVuZGluZz1udWxsfX0pKHRoaXMsZSxuLHIpLGk9dGhpcy5fX2RhdGFUb05vdGlmeSx0aGlzLl9fZGF0YVRvTm90aWZ5PW51bGwsdGhpcy5fcHJvcGFnYXRlUHJvcGVydHlDaGFuZ2VzKGUsbixyKSx0aGlzLl9mbHVzaENsaWVudHMoKSxIdCh0aGlzLHRoaXNbenQuUkVGTEVDVF0sZSxuLHIpLEh0KHRoaXMsdGhpc1t6dC5PQlNFUlZFXSxlLG4sciksaSYmKGZ1bmN0aW9uIGEodCxlLG4saSxyKXtsZXQgbyxhLHM9dFt6dC5OT1RJRlldLGw9UnQrKztmb3IobGV0IGEgaW4gZSllW2FdJiYocyYmRnQodCxzLGwsYSxuLGkscil8fHImJmp0KHQsYSxuKSkmJihvPSEwKTtvJiYoYT10Ll9fZGF0YUhvc3QpJiZhLl9pbnZhbGlkYXRlUHJvcGVydGllcyYmYS5faW52YWxpZGF0ZVByb3BlcnRpZXMoKX0pKHRoaXMsaSxlLG4sciksMT09dGhpcy5fX2RhdGFDb3VudGVyJiYodGhpcy5fX2RhdGFUZW1wPXt9KX1fcHJvcGFnYXRlUHJvcGVydHlDaGFuZ2VzKHQsZSxuKXt0aGlzW3p0LlBST1BBR0FURV0mJkh0KHRoaXMsdGhpc1t6dC5QUk9QQUdBVEVdLHQsZSxuKSx0aGlzLl9fdGVtcGxhdGVJbmZvJiZ0aGlzLl9ydW5FZmZlY3RzRm9yVGVtcGxhdGUodGhpcy5fX3RlbXBsYXRlSW5mbyx0LGUsbil9X3J1bkVmZmVjdHNGb3JUZW1wbGF0ZSh0LGUsbixpKXtjb25zdCByPShlLGkpPT57SHQodGhpcyx0LnByb3BlcnR5RWZmZWN0cyxlLG4saSx0Lm5vZGVMaXN0KTtmb3IobGV0IHI9dC5maXJzdENoaWxkO3I7cj1yLm5leHRTaWJsaW5nKXRoaXMuX3J1bkVmZmVjdHNGb3JUZW1wbGF0ZShyLGUsbixpKX07dC5ydW5FZmZlY3RzP3QucnVuRWZmZWN0cyhyLGUsaSk6cihlLGkpfWxpbmtQYXRocyh0LGUpe3Q9dHQodCksZT10dChlKSx0aGlzLl9fZGF0YUxpbmtlZFBhdGhzPXRoaXMuX19kYXRhTGlua2VkUGF0aHN8fHt9LHRoaXMuX19kYXRhTGlua2VkUGF0aHNbdF09ZX11bmxpbmtQYXRocyh0KXt0PXR0KHQpLHRoaXMuX19kYXRhTGlua2VkUGF0aHMmJmRlbGV0ZSB0aGlzLl9fZGF0YUxpbmtlZFBhdGhzW3RdfW5vdGlmeVNwbGljZXModCxlKXtsZXQgbj17cGF0aDoiIn07Y2UodGhpcyxudCh0aGlzLHQsbiksbi5wYXRoLGUpfWdldCh0LGUpe3JldHVybiBudChlfHx0aGlzLHQpfXNldCh0LGUsbil7bj9pdChuLHQsZSk6dGhpc1t6dC5SRUFEX09OTFldJiZ0aGlzW3p0LlJFQURfT05MWV1bdF18fHRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aCh0LGUsITApJiZ0aGlzLl9pbnZhbGlkYXRlUHJvcGVydGllcygpfXB1c2godCwuLi5lKXtsZXQgbj17cGF0aDoiIn0saT1udCh0aGlzLHQsbikscj1pLmxlbmd0aCxvPWkucHVzaCguLi5lKTtyZXR1cm4gZS5sZW5ndGgmJnVlKHRoaXMsaSxuLnBhdGgscixlLmxlbmd0aCxbXSksb31wb3AodCl7bGV0IGU9e3BhdGg6IiJ9LG49bnQodGhpcyx0LGUpLGk9Qm9vbGVhbihuLmxlbmd0aCkscj1uLnBvcCgpO3JldHVybiBpJiZ1ZSh0aGlzLG4sZS5wYXRoLG4ubGVuZ3RoLDAsW3JdKSxyfXNwbGljZSh0LGUsbiwuLi5pKXtsZXQgcixvPXtwYXRoOiIifSxhPW50KHRoaXMsdCxvKTtyZXR1cm4gZTwwP2U9YS5sZW5ndGgtTWF0aC5mbG9vcigtZSk6ZSYmKGU9TWF0aC5mbG9vcihlKSkscj0yPT09YXJndW1lbnRzLmxlbmd0aD9hLnNwbGljZShlKTphLnNwbGljZShlLG4sLi4uaSksKGkubGVuZ3RofHxyLmxlbmd0aCkmJnVlKHRoaXMsYSxvLnBhdGgsZSxpLmxlbmd0aCxyKSxyfXNoaWZ0KHQpe2xldCBlPXtwYXRoOiIifSxuPW50KHRoaXMsdCxlKSxpPUJvb2xlYW4obi5sZW5ndGgpLHI9bi5zaGlmdCgpO3JldHVybiBpJiZ1ZSh0aGlzLG4sZS5wYXRoLDAsMCxbcl0pLHJ9dW5zaGlmdCh0LC4uLmUpe2xldCBuPXtwYXRoOiIifSxpPW50KHRoaXMsdCxuKSxyPWkudW5zaGlmdCguLi5lKTtyZXR1cm4gZS5sZW5ndGgmJnVlKHRoaXMsaSxuLnBhdGgsMCxlLmxlbmd0aCxbXSkscn1ub3RpZnlQYXRoKHQsZSl7bGV0IG47aWYoMT09YXJndW1lbnRzLmxlbmd0aCl7bGV0IGk9e3BhdGg6IiJ9O2U9bnQodGhpcyx0LGkpLG49aS5wYXRofWVsc2Ugbj1BcnJheS5pc0FycmF5KHQpP3R0KHQpOnQ7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5T3JQYXRoKG4sZSwhMCwhMCkmJnRoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9X2NyZWF0ZVJlYWRPbmx5UHJvcGVydHkodCxlKXt0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdCh0LHp0LlJFQURfT05MWSksZSYmKHRoaXNbIl9zZXQiKyhmdW5jdGlvbiBuKHQpe3JldHVybiB0WzBdLnRvVXBwZXJDYXNlKCkrdC5zdWJzdHJpbmcoMSl9KSh0KV09ZnVuY3Rpb24oZSl7dGhpcy5fc2V0UHJvcGVydHkodCxlKX0pfV9jcmVhdGVQcm9wZXJ0eU9ic2VydmVyKHQsZSxuKXtsZXQgaT17cHJvcGVydHk6dCxtZXRob2Q6ZSxkeW5hbWljRm46Qm9vbGVhbihuKX07dGhpcy5fYWRkUHJvcGVydHlFZmZlY3QodCx6dC5PQlNFUlZFLHtmbjpVdCxpbmZvOmksdHJpZ2dlcjp7bmFtZTp0fX0pLG4mJnRoaXMuX2FkZFByb3BlcnR5RWZmZWN0KGUsenQuT0JTRVJWRSx7Zm46VXQsaW5mbzppLHRyaWdnZXI6e25hbWU6ZX19KX1fY3JlYXRlTWV0aG9kT2JzZXJ2ZXIodCxlKXtsZXQgbj1hZSh0KTtpZighbil0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBvYnNlcnZlciBleHByZXNzaW9uICciK3QrIiciKTtlZSh0aGlzLG4senQuT0JTRVJWRSxuZSxudWxsLGUpfV9jcmVhdGVOb3RpZnlpbmdQcm9wZXJ0eSh0KXt0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdCh0LHp0Lk5PVElGWSx7Zm46V3QsaW5mbzp7ZXZlbnROYW1lOmx0KHQpKyItY2hhbmdlZCIscHJvcGVydHk6dH19KX1fY3JlYXRlUmVmbGVjdGVkUHJvcGVydHkodCl7bGV0IGU9dGhpcy5jb25zdHJ1Y3Rvci5hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkodCk7Ii0iPT09ZVswXT9jb25zb2xlLndhcm4oIlByb3BlcnR5ICIrdCsiIGNhbm5vdCBiZSByZWZsZWN0ZWQgdG8gYXR0cmlidXRlICIrZSsnIGJlY2F1c2UgIi0iIGlzIG5vdCBhIHZhbGlkIHN0YXJ0aW5nIGF0dHJpYnV0ZSBuYW1lLiBVc2UgYSBsb3dlcmNhc2UgZmlyc3QgbGV0dGVyIGZvciB0aGUgcHJvcGVydHkgaW5zdGVhZC4nKTp0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdCh0LHp0LlJFRkxFQ1Qse2ZuOnF0LGluZm86e2F0dHJOYW1lOmV9fSl9X2NyZWF0ZUNvbXB1dGVkUHJvcGVydHkodCxlLG4pe2xldCBpPWFlKGUpO2lmKCFpKXRocm93IG5ldyBFcnJvcigiTWFsZm9ybWVkIGNvbXB1dGVkIGV4cHJlc3Npb24gJyIrZSsiJyIpO2NvbnN0IHI9ZWUodGhpcyxpLHp0LkNPTVBVVEUsJHQsdCxuKTtCdCh0aGlzLCJfX2NvbXB1dGVJbmZvIilbdF09cn1fbWFyc2hhbEFyZ3ModCxlLG4pe2NvbnN0IGk9dGhpcy5fX2RhdGEscj1bXTtmb3IobGV0IG89MCxhPXQubGVuZ3RoO288YTtvKyspe2xldHtuYW1lOmEsc3RydWN0dXJlZDpzLHdpbGRjYXJkOmwsdmFsdWU6YyxsaXRlcmFsOnV9PXRbb107aWYoIXUpaWYobCl7Y29uc3QgdD1aKGEsZSkscj1sZShpLG4sdD9lOmEpO2M9e3BhdGg6dD9lOmEsdmFsdWU6cixiYXNlOnQ/bnQoaSxhKTpyfX1lbHNlIGM9cz9sZShpLG4sYSk6aVthXTtpZihFJiYhdGhpcy5fb3ZlcnJpZGVMZWdhY3lVbmRlZmluZWQmJnZvaWQgMD09PWMmJnQubGVuZ3RoPjEpcmV0dXJuIE90O3Jbb109Y31yZXR1cm4gcn1zdGF0aWMgYWRkUHJvcGVydHlFZmZlY3QodCxlLG4pe3RoaXMucHJvdG90eXBlLl9hZGRQcm9wZXJ0eUVmZmVjdCh0LGUsbil9c3RhdGljIGNyZWF0ZVByb3BlcnR5T2JzZXJ2ZXIodCxlLG4pe3RoaXMucHJvdG90eXBlLl9jcmVhdGVQcm9wZXJ0eU9ic2VydmVyKHQsZSxuKX1zdGF0aWMgY3JlYXRlTWV0aG9kT2JzZXJ2ZXIodCxlKXt0aGlzLnByb3RvdHlwZS5fY3JlYXRlTWV0aG9kT2JzZXJ2ZXIodCxlKX1zdGF0aWMgY3JlYXRlTm90aWZ5aW5nUHJvcGVydHkodCl7dGhpcy5wcm90b3R5cGUuX2NyZWF0ZU5vdGlmeWluZ1Byb3BlcnR5KHQpfXN0YXRpYyBjcmVhdGVSZWFkT25seVByb3BlcnR5KHQsZSl7dGhpcy5wcm90b3R5cGUuX2NyZWF0ZVJlYWRPbmx5UHJvcGVydHkodCxlKX1zdGF0aWMgY3JlYXRlUmVmbGVjdGVkUHJvcGVydHkodCl7dGhpcy5wcm90b3R5cGUuX2NyZWF0ZVJlZmxlY3RlZFByb3BlcnR5KHQpfXN0YXRpYyBjcmVhdGVDb21wdXRlZFByb3BlcnR5KHQsZSxuKXt0aGlzLnByb3RvdHlwZS5fY3JlYXRlQ29tcHV0ZWRQcm9wZXJ0eSh0LGUsbil9c3RhdGljIGJpbmRUZW1wbGF0ZSh0KXtyZXR1cm4gdGhpcy5wcm90b3R5cGUuX2JpbmRUZW1wbGF0ZSh0KX1fYmluZFRlbXBsYXRlKHQsZSl7bGV0IG49dGhpcy5jb25zdHJ1Y3Rvci5fcGFyc2VUZW1wbGF0ZSh0KSxpPXRoaXMuX19wcmVCb3VuZFRlbXBsYXRlSW5mbz09bjtpZighaSlmb3IobGV0IHQgaW4gbi5wcm9wZXJ0eUVmZmVjdHMpdGhpcy5fY3JlYXRlUHJvcGVydHlBY2Nlc3Nvcih0KTtpZihlKWlmKG49T2JqZWN0LmNyZWF0ZShuKSxuLndhc1ByZUJvdW5kPWksdGhpcy5fX3RlbXBsYXRlSW5mbyl7Y29uc3QgZT10Ll9wYXJlbnRUZW1wbGF0ZUluZm98fHRoaXMuX190ZW1wbGF0ZUluZm8saT1lLmxhc3RDaGlsZDtuLnBhcmVudD1lLGUubGFzdENoaWxkPW4sbi5wcmV2aW91c1NpYmxpbmc9aSxpP2kubmV4dFNpYmxpbmc9bjplLmZpcnN0Q2hpbGQ9bn1lbHNlIHRoaXMuX190ZW1wbGF0ZUluZm89bjtlbHNlIHRoaXMuX19wcmVCb3VuZFRlbXBsYXRlSW5mbz1uO3JldHVybiBufXN0YXRpYyBfYWRkVGVtcGxhdGVQcm9wZXJ0eUVmZmVjdCh0LGUsbil7KHQuaG9zdFByb3BzPXQuaG9zdFByb3BzfHx7fSlbZV09ITA7bGV0IGk9dC5wcm9wZXJ0eUVmZmVjdHM9dC5wcm9wZXJ0eUVmZmVjdHN8fHt9OyhpW2VdPWlbZV18fFtdKS5wdXNoKG4pfV9zdGFtcFRlbXBsYXRlKHQsZSl7ZT1lfHx0aGlzLl9iaW5kVGVtcGxhdGUodCwhMCksZGUucHVzaCh0aGlzKTtsZXQgbj1zdXBlci5fc3RhbXBUZW1wbGF0ZSh0LGUpO2lmKGRlLnBvcCgpLGUubm9kZUxpc3Q9bi5ub2RlTGlzdCwhZS53YXNQcmVCb3VuZCl7bGV0IHQ9ZS5jaGlsZE5vZGVzPVtdO2ZvcihsZXQgZT1uLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpdC5wdXNoKGUpfXJldHVybiBuLnRlbXBsYXRlSW5mbz1lLChmdW5jdGlvbiBpKHQsZSl7bGV0e25vZGVMaXN0Om4sbm9kZUluZm9MaXN0Oml9PWU7aWYoaS5sZW5ndGgpZm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspe2xldCByPW5bZV0sbz1pW2VdLmJpbmRpbmdzO2lmKG8pZm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspe2xldCBuPW9bZV07UXQocixuKSx0ZShyLHQsbil9ci5fX2RhdGFIb3N0PXR9fSkodGhpcyxlKSx0aGlzLl9fZGF0YUNsaWVudHNSZWFkeSYmKHRoaXMuX3J1bkVmZmVjdHNGb3JUZW1wbGF0ZShlLHRoaXMuX19kYXRhLG51bGwsITEpLHRoaXMuX2ZsdXNoQ2xpZW50cygpKSxufV9yZW1vdmVCb3VuZERvbSh0KXtjb25zdCBlPXQudGVtcGxhdGVJbmZvLHtwcmV2aW91c1NpYmxpbmc6bixuZXh0U2libGluZzppLHBhcmVudDpyfT1lO24/bi5uZXh0U2libGluZz1pOnImJihyLmZpcnN0Q2hpbGQ9aSksaT9pLnByZXZpb3VzU2libGluZz1uOnImJihyLmxhc3RDaGlsZD1uKSxlLm5leHRTaWJsaW5nPWUucHJldmlvdXNTaWJsaW5nPW51bGw7bGV0IG89ZS5jaGlsZE5vZGVzO2ZvcihsZXQgdD0wO3Q8by5sZW5ndGg7dCsrKXtsZXQgZT1vW3RdO1koWShlKS5wYXJlbnROb2RlKS5yZW1vdmVDaGlsZChlKX19c3RhdGljIF9wYXJzZVRlbXBsYXRlTm9kZSh0LG4saSl7bGV0IHI9ZS5fcGFyc2VUZW1wbGF0ZU5vZGUuY2FsbCh0aGlzLHQsbixpKTtpZih0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2xldCBlPXRoaXMuX3BhcnNlQmluZGluZ3ModC50ZXh0Q29udGVudCxuKTtlJiYodC50ZXh0Q29udGVudD1vZShlKXx8IiAiLEt0KHRoaXMsbixpLCJ0ZXh0IiwidGV4dENvbnRlbnQiLGUpLHI9ITApfXJldHVybiByfXN0YXRpYyBfcGFyc2VUZW1wbGF0ZU5vZGVBdHRyaWJ1dGUodCxuLGkscixvKXtsZXQgYT10aGlzLl9wYXJzZUJpbmRpbmdzKG8sbik7aWYoYSl7bGV0IGU9cixvPSJwcm9wZXJ0eSI7RHQudGVzdChyKT9vPSJhdHRyaWJ1dGUiOiIkIj09cltyLmxlbmd0aC0xXSYmKHI9ci5zbGljZSgwLC0xKSxvPSJhdHRyaWJ1dGUiKTtsZXQgcz1vZShhKTtyZXR1cm4gcyYmImF0dHJpYnV0ZSI9PW8mJigiY2xhc3MiPT1yJiZ0Lmhhc0F0dHJpYnV0ZSgiY2xhc3MiKSYmKHMrPSIgIit0LmdldEF0dHJpYnV0ZShyKSksdC5zZXRBdHRyaWJ1dGUocixzKSksImF0dHJpYnV0ZSI9PW8mJiJkaXNhYmxlLXVwZ3JhZGUkIj09ZSYmdC5zZXRBdHRyaWJ1dGUociwiIiksImlucHV0Ij09PXQubG9jYWxOYW1lJiYidmFsdWUiPT09ZSYmdC5zZXRBdHRyaWJ1dGUoZSwiIiksdC5yZW1vdmVBdHRyaWJ1dGUoZSksInByb3BlcnR5Ij09PW8mJihyPXN0KHIpKSxLdCh0aGlzLG4saSxvLHIsYSxzKSwhMH1yZXR1cm4gZS5fcGFyc2VUZW1wbGF0ZU5vZGVBdHRyaWJ1dGUuY2FsbCh0aGlzLHQsbixpLHIsbyl9c3RhdGljIF9wYXJzZVRlbXBsYXRlTmVzdGVkVGVtcGxhdGUodCxuLGkpe2xldCByPWUuX3BhcnNlVGVtcGxhdGVOZXN0ZWRUZW1wbGF0ZS5jYWxsKHRoaXMsdCxuLGkpO2NvbnN0IG89dC5wYXJlbnROb2RlLGE9aS50ZW1wbGF0ZUluZm8scz0iZG9tLWlmIj09PW8ubG9jYWxOYW1lO0MmJihzfHwiZG9tLXJlcGVhdCI9PT1vLmxvY2FsTmFtZSkmJihvLnJlbW92ZUNoaWxkKHQpLChpPWkucGFyZW50SW5mbykudGVtcGxhdGVJbmZvPWEsaS5ub3RlZD0hMCxyPSExKTtsZXQgbD1hLmhvc3RQcm9wcztpZihBJiZzKWwmJihuLmhvc3RQcm9wcz1PYmplY3QuYXNzaWduKG4uaG9zdFByb3BzfHx7fSxsKSxDfHwoaS5wYXJlbnRJbmZvLm5vdGVkPSEwKSk7ZWxzZXtsZXQgdD0ieyI7Zm9yKGxldCBlIGluIGwpS3QodGhpcyxuLGksInByb3BlcnR5IiwiX2hvc3RfIitlLFt7bW9kZTp0LHNvdXJjZTplLGRlcGVuZGVuY2llczpbZV0saG9zdFByb3A6ITB9XSl9cmV0dXJuIHJ9c3RhdGljIF9wYXJzZUJpbmRpbmdzKHQsZSl7bGV0IG4saT1bXSxyPTA7Zm9yKDtudWxsIT09KG49cmUuZXhlYyh0KSk7KXtuLmluZGV4PnImJmkucHVzaCh7bGl0ZXJhbDp0LnNsaWNlKHIsbi5pbmRleCl9KTtsZXQgbz1uWzFdWzBdLGE9Qm9vbGVhbihuWzJdKSxzPW5bM10udHJpbSgpLGw9ITEsYz0iIix1PS0xOyJ7Ij09byYmKHU9cy5pbmRleE9mKCI6OiIpKT4wJiYoYz1zLnN1YnN0cmluZyh1KzIpLHM9cy5zdWJzdHJpbmcoMCx1KSxsPSEwKTtsZXQgaD1hZShzKSxkPVtdO2lmKGgpe2xldHthcmdzOnQsbWV0aG9kTmFtZTpufT1oO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbj10W2VdO24ubGl0ZXJhbHx8ZC5wdXNoKG4pfWxldCBpPWUuZHluYW1pY0ZuczsoaSYmaVtuXXx8aC5zdGF0aWMpJiYoZC5wdXNoKG4pLGguZHluYW1pY0ZuPSEwKX1lbHNlIGQucHVzaChzKTtpLnB1c2goe3NvdXJjZTpzLG1vZGU6byxuZWdhdGU6YSxjdXN0b21FdmVudDpsLHNpZ25hdHVyZTpoLGRlcGVuZGVuY2llczpkLGV2ZW50OmN9KSxyPXJlLmxhc3RJbmRleH1pZihyJiZyPHQubGVuZ3RoKXtsZXQgZT10LnN1YnN0cmluZyhyKTtlJiZpLnB1c2goe2xpdGVyYWw6ZX0pfXJldHVybiBpLmxlbmd0aD9pOm51bGx9c3RhdGljIF9ldmFsdWF0ZUJpbmRpbmcodCxlLG4saSxyLG8pe2xldCBhO3JldHVybiBhPWUuc2lnbmF0dXJlP25lKHQsbixpLDAsZS5zaWduYXR1cmUpOm4hPWUuc291cmNlP250KHQsZS5zb3VyY2UpOm8mJlgobik/bnQodCxuKTp0Ll9fZGF0YVtuXSxlLm5lZ2F0ZSYmKGE9IWEpLGF9fX0pKSxkZT1bXSxwZT1JKCh0PT57Y29uc3QgZT14dCh0KTtmdW5jdGlvbiBuKHQpe2NvbnN0IGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO3JldHVybiBlLnByb3RvdHlwZSBpbnN0YW5jZW9mIHI/ZTpudWxsfWZ1bmN0aW9uIGkodCl7aWYoIXQuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19vd25Qcm9wZXJ0aWVzIix0KSkpe2xldCBlPW51bGw7aWYodC5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJwcm9wZXJ0aWVzIix0KSkpe2NvbnN0IG49dC5wcm9wZXJ0aWVzO24mJihlPSgKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KZnVuY3Rpb24gZSh0KXtjb25zdCBlPXt9O2ZvcihsZXQgbiBpbiB0KXtjb25zdCBpPXRbbl07ZVtuXT0iZnVuY3Rpb24iPT10eXBlb2YgaT97dHlwZTppfTppfXJldHVybiBlfSkobikpfXQuX19vd25Qcm9wZXJ0aWVzPWV9cmV0dXJuIHQuX19vd25Qcm9wZXJ0aWVzfWNsYXNzIHIgZXh0ZW5kcyBle3N0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7aWYoIXRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19vYnNlcnZlZEF0dHJpYnV0ZXMiLHRoaXMpKSl7Y29uc3QgdD10aGlzLl9wcm9wZXJ0aWVzO3RoaXMuX19vYnNlcnZlZEF0dHJpYnV0ZXM9dD9PYmplY3Qua2V5cyh0KS5tYXAoKHQ9PnRoaXMucHJvdG90eXBlLl9hZGRQcm9wZXJ0eVRvQXR0cmlidXRlTWFwKHQpKSk6W119cmV0dXJuIHRoaXMuX19vYnNlcnZlZEF0dHJpYnV0ZXN9c3RhdGljIGZpbmFsaXplKCl7aWYoIXRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19maW5hbGl6ZWQiLHRoaXMpKSl7Y29uc3QgdD1uKHRoaXMpO3QmJnQuZmluYWxpemUoKSx0aGlzLl9fZmluYWxpemVkPSEwLHRoaXMuX2ZpbmFsaXplQ2xhc3MoKX19c3RhdGljIF9maW5hbGl6ZUNsYXNzKCl7Y29uc3QgdD1pKHRoaXMpO3QmJnRoaXMuY3JlYXRlUHJvcGVydGllcyh0KX1zdGF0aWMgZ2V0IF9wcm9wZXJ0aWVzKCl7aWYoIXRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19wcm9wZXJ0aWVzIix0aGlzKSkpe2NvbnN0IHQ9bih0aGlzKTt0aGlzLl9fcHJvcGVydGllcz1PYmplY3QuYXNzaWduKHt9LHQmJnQuX3Byb3BlcnRpZXMsaSh0aGlzKSl9cmV0dXJuIHRoaXMuX19wcm9wZXJ0aWVzfXN0YXRpYyB0eXBlRm9yUHJvcGVydHkodCl7Y29uc3QgZT10aGlzLl9wcm9wZXJ0aWVzW3RdO3JldHVybiBlJiZlLnR5cGV9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7dGhpcy5jb25zdHJ1Y3Rvci5maW5hbGl6ZSgpLHN1cGVyLl9pbml0aWFsaXplUHJvcGVydGllcygpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2smJnN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fZW5hYmxlUHJvcGVydGllcygpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2smJnN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9fXJldHVybiByfSkpLGZlPXdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLmNzc0J1aWxkLG1lPUkoKHQ9Pntjb25zdCBlPXBlKGhlKHQpKTtmdW5jdGlvbiBuKHQsZSxuLGkpe24uY29tcHV0ZWQmJihuLnJlYWRPbmx5PSEwKSxuLmNvbXB1dGVkJiYodC5faGFzUmVhZE9ubHlFZmZlY3QoZSk/Y29uc29sZS53YXJuKGBDYW5ub3QgcmVkZWZpbmUgY29tcHV0ZWQgcHJvcGVydHkgJyR7ZX0nLmApOnQuX2NyZWF0ZUNvbXB1dGVkUHJvcGVydHkoZSxuLmNvbXB1dGVkLGkpKSxuLnJlYWRPbmx5JiYhdC5faGFzUmVhZE9ubHlFZmZlY3QoZSk/dC5fY3JlYXRlUmVhZE9ubHlQcm9wZXJ0eShlLCFuLmNvbXB1dGVkKTohMT09PW4ucmVhZE9ubHkmJnQuX2hhc1JlYWRPbmx5RWZmZWN0KGUpJiZjb25zb2xlLndhcm4oYENhbm5vdCBtYWtlIHJlYWRPbmx5IHByb3BlcnR5ICcke2V9JyBub24tcmVhZE9ubHkuYCksbi5yZWZsZWN0VG9BdHRyaWJ1dGUmJiF0Ll9oYXNSZWZsZWN0RWZmZWN0KGUpP3QuX2NyZWF0ZVJlZmxlY3RlZFByb3BlcnR5KGUpOiExPT09bi5yZWZsZWN0VG9BdHRyaWJ1dGUmJnQuX2hhc1JlZmxlY3RFZmZlY3QoZSkmJmNvbnNvbGUud2FybihgQ2Fubm90IG1ha2UgcmVmbGVjdGVkIHByb3BlcnR5ICcke2V9JyBub24tcmVmbGVjdGVkLmApLG4ubm90aWZ5JiYhdC5faGFzTm90aWZ5RWZmZWN0KGUpP3QuX2NyZWF0ZU5vdGlmeWluZ1Byb3BlcnR5KGUpOiExPT09bi5ub3RpZnkmJnQuX2hhc05vdGlmeUVmZmVjdChlKSYmY29uc29sZS53YXJuKGBDYW5ub3QgbWFrZSBub3RpZnkgcHJvcGVydHkgJyR7ZX0nIG5vbi1ub3RpZnkuYCksbi5vYnNlcnZlciYmdC5fY3JlYXRlUHJvcGVydHlPYnNlcnZlcihlLG4ub2JzZXJ2ZXIsaVtuLm9ic2VydmVyXSksdC5fYWRkUHJvcGVydHlUb0F0dHJpYnV0ZU1hcChlKX1yZXR1cm4gY2xhc3MgZXh0ZW5kcyBle3N0YXRpYyBnZXQgcG9seW1lckVsZW1lbnRWZXJzaW9uKCl7cmV0dXJuIjMuNC4xIn1zdGF0aWMgX2ZpbmFsaXplQ2xhc3MoKXtlLl9maW5hbGl6ZUNsYXNzLmNhbGwodGhpcyk7Y29uc3QgdD0oZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX293bk9ic2VydmVycyIsdCkpfHwodC5fX293bk9ic2VydmVycz10Lmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIm9ic2VydmVycyIsdCkpP3Qub2JzZXJ2ZXJzOm51bGwpLHQuX19vd25PYnNlcnZlcnN9KSh0aGlzKTt0JiZ0aGlzLmNyZWF0ZU9ic2VydmVycyh0LHRoaXMuX3Byb3BlcnRpZXMpLHRoaXMuX3ByZXBhcmVUZW1wbGF0ZSgpfXN0YXRpYyBfcHJlcGFyZVRlbXBsYXRlKCl7bGV0IHQ9dGhpcy50ZW1wbGF0ZTt0JiYoInN0cmluZyI9PXR5cGVvZiB0Pyhjb25zb2xlLmVycm9yKCJ0ZW1wbGF0ZSBnZXR0ZXIgbXVzdCByZXR1cm4gSFRNTFRlbXBsYXRlRWxlbWVudCIpLHQ9bnVsbCk6d3x8KHQ9dC5jbG9uZU5vZGUoITApKSksdGhpcy5wcm90b3R5cGUuX3RlbXBsYXRlPXR9c3RhdGljIGNyZWF0ZVByb3BlcnRpZXModCl7Zm9yKGxldCBlIGluIHQpbih0aGlzLnByb3RvdHlwZSxlLHRbZV0sdCl9c3RhdGljIGNyZWF0ZU9ic2VydmVycyh0LGUpe2NvbnN0IG49dGhpcy5wcm90b3R5cGU7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspbi5fY3JlYXRlTWV0aG9kT2JzZXJ2ZXIodFtpXSxlKX1zdGF0aWMgZ2V0IHRlbXBsYXRlKCl7aWYoIXRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX3RlbXBsYXRlIix0aGlzKSkpe2NvbnN0IHQ9dGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX3RlbXBsYXRlIix0aGlzLnByb3RvdHlwZSkpP3RoaXMucHJvdG90eXBlLl90ZW1wbGF0ZTp2b2lkIDA7dGhpcy5fdGVtcGxhdGU9dm9pZCAwIT09dD90OnRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXMiLHRoaXMpKSYmKGZ1bmN0aW9uIGUodCl7bGV0IGU9bnVsbDtpZih0JiYoIWJ8fHgpJiYoZT1CLmltcG9ydCh0LCJ0ZW1wbGF0ZSIpLGImJiFlKSl0aHJvdyBuZXcgRXJyb3IoYHN0cmljdFRlbXBsYXRlUG9saWN5OiBleHBlY3RpbmcgZG9tLW1vZHVsZSBvciBudWxsIHRlbXBsYXRlIGZvciAke3R9YCk7cmV0dXJuIGV9KSh0aGlzLmlzKXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMucHJvdG90eXBlKS5jb25zdHJ1Y3Rvci50ZW1wbGF0ZX1yZXR1cm4gdGhpcy5fdGVtcGxhdGV9c3RhdGljIHNldCB0ZW1wbGF0ZSh0KXt0aGlzLl90ZW1wbGF0ZT10fXN0YXRpYyBnZXQgaW1wb3J0UGF0aCgpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9pbXBvcnRQYXRoIix0aGlzKSkpe2NvbnN0IHQ9dGhpcy5pbXBvcnRNZXRhO2lmKHQpdGhpcy5faW1wb3J0UGF0aD1mKHQudXJsKTtlbHNle2NvbnN0IHQ9Qi5pbXBvcnQodGhpcy5pcyk7dGhpcy5faW1wb3J0UGF0aD10JiZ0LmFzc2V0cGF0aHx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMucHJvdG90eXBlKS5jb25zdHJ1Y3Rvci5pbXBvcnRQYXRofX1yZXR1cm4gdGhpcy5faW1wb3J0UGF0aH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7dGhpcy5jb25zdHJ1Y3Rvci5maW5hbGl6ZSgpLHRoaXMuY29uc3RydWN0b3IuX2ZpbmFsaXplVGVtcGxhdGUodGhpcy5sb2NhbE5hbWUpLHN1cGVyLl9pbml0aWFsaXplUHJvcGVydGllcygpLHRoaXMucm9vdFBhdGg9Xyx0aGlzLmltcG9ydFBhdGg9dGhpcy5jb25zdHJ1Y3Rvci5pbXBvcnRQYXRoO2xldCB0PShmdW5jdGlvbiBlKHQpe2lmKCF0Lmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fcHJvcGVydHlEZWZhdWx0cyIsdCkpKXt0Ll9fcHJvcGVydHlEZWZhdWx0cz1udWxsO2xldCBlPXQuX3Byb3BlcnRpZXM7Zm9yKGxldCBuIGluIGUpe2xldCBpPWVbbl07InZhbHVlImluIGkmJih0Ll9fcHJvcGVydHlEZWZhdWx0cz10Ll9fcHJvcGVydHlEZWZhdWx0c3x8e30sdC5fX3Byb3BlcnR5RGVmYXVsdHNbbl09aSl9fXJldHVybiB0Ll9fcHJvcGVydHlEZWZhdWx0c30pKHRoaXMuY29uc3RydWN0b3IpO2lmKHQpZm9yKGxldCBlIGluIHQpe2xldCBuPXRbZV07aWYodGhpcy5fY2FuQXBwbHlQcm9wZXJ0eURlZmF1bHQoZSkpe2xldCB0PSJmdW5jdGlvbiI9PXR5cGVvZiBuLnZhbHVlP24udmFsdWUuY2FsbCh0aGlzKTpuLnZhbHVlO3RoaXMuX2hhc0FjY2Vzc29yKGUpP3RoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eShlLHQsITApOnRoaXNbZV09dH19fV9jYW5BcHBseVByb3BlcnR5RGVmYXVsdCh0KXtyZXR1cm4hdGhpcy5oYXNPd25Qcm9wZXJ0eSh0KX1zdGF0aWMgX3Byb2Nlc3NTdHlsZVRleHQodCxlKXtyZXR1cm4gcCh0LGUpfXN0YXRpYyBfZmluYWxpemVUZW1wbGF0ZSh0KXtjb25zdCBlPXRoaXMucHJvdG90eXBlLl90ZW1wbGF0ZTtpZihlJiYhZS5fX3BvbHltZXJGaW5hbGl6ZWQpe2UuX19wb2x5bWVyRmluYWxpemVkPSEwO2NvbnN0IG49dGhpcy5pbXBvcnRQYXRoOyhmdW5jdGlvbiBpKHQsZSxuLHIpe2lmKCFmZSl7Y29uc3QgaT1lLmNvbnRlbnQucXVlcnlTZWxlY3RvckFsbCgic3R5bGUiKSxvPUcoZSksYT0oZnVuY3Rpb24gcyh0KXtsZXQgZT1GKHQpO3JldHVybiBlP1coZSk6W119KShuKSxsPWUuY29udGVudC5maXJzdEVsZW1lbnRDaGlsZDtmb3IobGV0IG49MDtuPGEubGVuZ3RoO24rKyl7bGV0IGk9YVtuXTtpLnRleHRDb250ZW50PXQuX3Byb2Nlc3NTdHlsZVRleHQoaS50ZXh0Q29udGVudCxyKSxlLmNvbnRlbnQuaW5zZXJ0QmVmb3JlKGksbCl9bGV0IGM9MDtmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKyl7bGV0IG49b1tlXSxhPWlbY107YSE9PW4/KG49bi5jbG9uZU5vZGUoITApLGEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobixhKSk6YysrLG4udGV4dENvbnRlbnQ9dC5fcHJvY2Vzc1N0eWxlVGV4dChuLnRleHRDb250ZW50LHIpfX1pZih3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5wcmVwYXJlVGVtcGxhdGUoZSxuKSxQJiZmZSYmZyl7Y29uc3Qgbj1lLmNvbnRlbnQucXVlcnlTZWxlY3RvckFsbCgic3R5bGUiKTtpZihuKXtsZXQgZT0iIjtBcnJheS5mcm9tKG4pLmZvckVhY2goKHQ9PntlKz10LnRleHRDb250ZW50LHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX0pKSx0Ll9zdHlsZVNoZWV0PW5ldyBDU1NTdHlsZVNoZWV0LHQuX3N0eWxlU2hlZXQucmVwbGFjZVN5bmMoZSl9fX0pKHRoaXMsZSx0LG4/ZChuKToiIiksdGhpcy5wcm90b3R5cGUuX2JpbmRUZW1wbGF0ZShlKX19Y29ubmVjdGVkQ2FsbGJhY2soKXt3aW5kb3cuU2hhZHlDU1MmJnRoaXMuX3RlbXBsYXRlJiZ3aW5kb3cuU2hhZHlDU1Muc3R5bGVFbGVtZW50KHRoaXMpLHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCl9cmVhZHkoKXt0aGlzLl90ZW1wbGF0ZSYmKHRoaXMucm9vdD10aGlzLl9zdGFtcFRlbXBsYXRlKHRoaXMuX3RlbXBsYXRlKSx0aGlzLiQ9dGhpcy5yb290LiQpLHN1cGVyLnJlYWR5KCl9X3JlYWR5Q2xpZW50cygpe3RoaXMuX3RlbXBsYXRlJiYodGhpcy5yb290PXRoaXMuX2F0dGFjaERvbSh0aGlzLnJvb3QpKSxzdXBlci5fcmVhZHlDbGllbnRzKCl9X2F0dGFjaERvbSh0KXtjb25zdCBlPVkodGhpcyk7aWYoZS5hdHRhY2hTaGFkb3cpcmV0dXJuIHQ/KGUuc2hhZG93Um9vdHx8KGUuYXR0YWNoU2hhZG93KHttb2RlOiJvcGVuIixzaGFkeVVwZ3JhZGVGcmFnbWVudDp0fSksZS5zaGFkb3dSb290LmFwcGVuZENoaWxkKHQpLHRoaXMuY29uc3RydWN0b3IuX3N0eWxlU2hlZXQmJihlLnNoYWRvd1Jvb3QuYWRvcHRlZFN0eWxlU2hlZXRzPVt0aGlzLmNvbnN0cnVjdG9yLl9zdHlsZVNoZWV0XSkpLE0mJndpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmZsdXNoSW5pdGlhbChlLnNoYWRvd1Jvb3QpLGUuc2hhZG93Um9vdCk6bnVsbDt0aHJvdyBuZXcgRXJyb3IoIlNoYWRvd0RPTSBub3QgYXZhaWxhYmxlLiBQb2x5bWVyRWxlbWVudCBjYW4gY3JlYXRlIGRvbSBhcyBjaGlsZHJlbiBpbnN0ZWFkIG9mIGluIFNoYWRvd0RPTSBieSBzZXR0aW5nIGB0aGlzLnJvb3QgPSB0aGlzO2AgYmVmb3JlIGByZWFkeWAuIil9dXBkYXRlU3R5bGVzKHQpe3dpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLnN0eWxlU3VidHJlZSh0aGlzLHQpfXJlc29sdmVVcmwodCxlKXtyZXR1cm4hZSYmdGhpcy5pbXBvcnRQYXRoJiYoZT1kKHRoaXMuaW1wb3J0UGF0aCkpLGQodCxlKX1zdGF0aWMgX3BhcnNlVGVtcGxhdGVDb250ZW50KHQsbixpKXtyZXR1cm4gbi5keW5hbWljRm5zPW4uZHluYW1pY0Zuc3x8dGhpcy5fcHJvcGVydGllcyxlLl9wYXJzZVRlbXBsYXRlQ29udGVudC5jYWxsKHRoaXMsdCxuLGkpfXN0YXRpYyBfYWRkVGVtcGxhdGVQcm9wZXJ0eUVmZmVjdCh0LG4saSl7cmV0dXJuIVN8fG4gaW4gdGhpcy5fcHJvcGVydGllc3x8aS5pbmZvLnBhcnQuc2lnbmF0dXJlJiZpLmluZm8ucGFydC5zaWduYXR1cmUuc3RhdGljfHxpLmluZm8ucGFydC5ob3N0UHJvcHx8dC5uZXN0ZWRUZW1wbGF0ZXx8Y29uc29sZS53YXJuKGBQcm9wZXJ0eSAnJHtufScgdXNlZCBpbiB0ZW1wbGF0ZSBidXQgbm90IGRlY2xhcmVkIGluICdwcm9wZXJ0aWVzJzsgYXR0cmlidXRlIHdpbGwgbm90IGJlIG9ic2VydmVkLmApLGUuX2FkZFRlbXBsYXRlUHJvcGVydHlFZmZlY3QuY2FsbCh0aGlzLHQsbixpKX19fSkpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjbGFzcyBnZXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnZhbHVlPXQudG9TdHJpbmcoKX10b1N0cmluZygpe3JldHVybiB0aGlzLnZhbHVlfX1jb25zdCBfZT1mdW5jdGlvbiB0KGUsLi4ubil7Y29uc3QgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiBpLmlubmVySFRNTD1uLnJlZHVjZSgoKHQsbixpKT0+dCsoZnVuY3Rpb24gcih0KXtpZih0IGluc3RhbmNlb2YgSFRNTFRlbXBsYXRlRWxlbWVudClyZXR1cm4gdC5pbm5lckhUTUw7aWYodCBpbnN0YW5jZW9mIGdlKXJldHVybihmdW5jdGlvbiBlKHQpe2lmKHQgaW5zdGFuY2VvZiBnZSlyZXR1cm4gdC52YWx1ZTt0aHJvdyBuZXcgRXJyb3IoYG5vbi1saXRlcmFsIHZhbHVlIHBhc3NlZCB0byBQb2x5bWVyJ3MgaHRtbExpdGVyYWwgZnVuY3Rpb246ICR7dH1gKX0pKHQpO3Rocm93IG5ldyBFcnJvcihgbm9uLXRlbXBsYXRlIHZhbHVlIHBhc3NlZCB0byBQb2x5bWVyJ3MgaHRtbCBmdW5jdGlvbjogJHt0fWApfSkobikrZVtpKzFdKSxlWzBdKSxpfSx5ZT1tZShIVE1MRWxlbWVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovdmFyIHZlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e307ZnVuY3Rpb24gYmUodCl7aWYodC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLGkuZ2V0P2k6e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSl9KSksZX12YXIgeGUsd2UsU2U9e2V4cG9ydHM6e319OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBMb2Rhc2ggPGh0dHBzOi8vbG9kYXNoLmNvbS8+CiAgICAgKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyA8aHR0cHM6Ly9vcGVuanNmLm9yZy8+CiAgICAgKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+CiAgICAgKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPgogICAgICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzCiAgICAgKi94ZT1TZSx3ZT1TZS5leHBvcnRzLGZ1bmN0aW9uKCl7dmFyIHQsZT0iRXhwZWN0ZWQgYSBmdW5jdGlvbiIsbj0iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyIsaT0iX19sb2Rhc2hfcGxhY2Vob2xkZXJfXyIscj0zMixvPTEyOCxhPTEvMCxzPTkwMDcxOTkyNTQ3NDA5OTEsbD1OYU4sYz00Mjk0OTY3Mjk1LHU9W1siYXJ5IixvXSxbImJpbmQiLDFdLFsiYmluZEtleSIsMl0sWyJjdXJyeSIsOF0sWyJjdXJyeVJpZ2h0IiwxNl0sWyJmbGlwIiw1MTJdLFsicGFydGlhbCIscl0sWyJwYXJ0aWFsUmlnaHQiLDY0XSxbInJlYXJnIiwyNTZdXSxoPSJbb2JqZWN0IEFyZ3VtZW50c10iLGQ9IltvYmplY3QgQXJyYXldIixwPSJbb2JqZWN0IEJvb2xlYW5dIixmPSJbb2JqZWN0IERhdGVdIixtPSJbb2JqZWN0IEVycm9yXSIsZz0iW29iamVjdCBGdW5jdGlvbl0iLF89IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix5PSJbb2JqZWN0IE1hcF0iLHY9IltvYmplY3QgTnVtYmVyXSIsYj0iW29iamVjdCBPYmplY3RdIix4PSJbb2JqZWN0IFByb21pc2VdIix3PSJbb2JqZWN0IFJlZ0V4cF0iLFM9IltvYmplY3QgU2V0XSIsTT0iW29iamVjdCBTdHJpbmddIixFPSJbb2JqZWN0IFN5bWJvbF0iLFQ9IltvYmplY3QgV2Vha01hcF0iLEM9IltvYmplY3QgQXJyYXlCdWZmZXJdIixBPSJbb2JqZWN0IERhdGFWaWV3XSIsaz0iW29iamVjdCBGbG9hdDMyQXJyYXldIixMPSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iLFA9IltvYmplY3QgSW50OEFycmF5XSIsTj0iW29iamVjdCBJbnQxNkFycmF5XSIsST0iW29iamVjdCBJbnQzMkFycmF5XSIsUj0iW29iamVjdCBVaW50OEFycmF5XSIsTz0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLHo9IltvYmplY3QgVWludDE2QXJyYXldIixEPSJbb2JqZWN0IFVpbnQzMkFycmF5XSIsQj0vXGJfX3AgXCs9ICcnOy9nLEg9L1xiKF9fcCBcKz0pICcnIFwrL2csRj0vKF9fZVwoLio/XCl8XGJfX3RcKSkgXCtcbicnOy9nLFY9LyYoPzphbXB8bHR8Z3R8cXVvdHwjMzkpOy9nLFU9L1smPD4iJ10vZyxqPVJlZ0V4cChWLnNvdXJjZSksRz1SZWdFeHAoVS5zb3VyY2UpLFc9LzwlLShbXHNcU10rPyklPi9nLHE9LzwlKFtcc1xTXSs/KSU+L2csWT0vPCU9KFtcc1xTXSs/KSU+L2csWD0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLywkPS9eXHcqJC8sSz0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxaPS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxKPVJlZ0V4cChaLnNvdXJjZSksUT0vXlxzKy8sdHQ9L1xzLyxldD0vXHsoPzpcblwvXCogXFt3cmFwcGVkIHdpdGggLitcXSBcKlwvKT9cbj8vLG50PS9ce1xuXC9cKiBcW3dyYXBwZWQgd2l0aCAoLispXF0gXCovLGl0PS8sPyAmIC8scnQ9L1teXHgwMC1ceDJmXHgzYS1ceDQwXHg1Yi1ceDYwXHg3Yi1ceDdmXSsvZyxvdD0vWygpPSx7fVxbXF1cL1xzXS8sYXQ9L1xcKFxcKT8vZyxzdD0vXCRceyhbXlxcfV0qKD86XFwuW15cXH1dKikqKVx9L2csbHQ9L1x3KiQvLGN0PS9eWy0rXTB4WzAtOWEtZl0rJC9pLHV0PS9eMGJbMDFdKyQvaSxodD0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxkdD0vXjBvWzAtN10rJC9pLHB0PS9eKD86MHxbMS05XVxkKikkLyxmdD0vW1x4YzAtXHhkNlx4ZDgtXHhmNlx4ZjgtXHhmZlx1MDEwMC1cdTAxN2ZdL2csbXQ9LygkXikvLGd0PS9bJ1xuXHJcdTIwMjhcdTIwMjlcXF0vZyxfdD0iXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmIix5dD0iYS16XFx4ZGYtXFx4ZjZcXHhmOC1cXHhmZiIsdnQ9IkEtWlxceGMwLVxceGQ2XFx4ZDgtXFx4ZGUiLGJ0PSJcXHhhY1xceGIxXFx4ZDdcXHhmN1xceDAwLVxceDJmXFx4M2EtXFx4NDBcXHg1Yi1cXHg2MFxceDdiLVxceGJmXFx1MjAwMC1cXHUyMDZmIFxcdFxceDBiXFxmXFx4YTBcXHVmZWZmXFxuXFxyXFx1MjAyOFxcdTIwMjlcXHUxNjgwXFx1MTgwZVxcdTIwMDBcXHUyMDAxXFx1MjAwMlxcdTIwMDNcXHUyMDA0XFx1MjAwNVxcdTIwMDZcXHUyMDA3XFx1MjAwOFxcdTIwMDlcXHUyMDBhXFx1MjAyZlxcdTIwNWZcXHUzMDAwIix4dD0iWyIrYnQrIl0iLHd0PSJbIitfdCsiXSIsU3Q9IlxcZCsiLE10PSJbIit5dCsiXSIsRXQ9IlteXFx1ZDgwMC1cXHVkZmZmIitidCtTdCsiXFx1MjcwMC1cXHUyN2JmIit5dCt2dCsiXSIsVHQ9IlxcdWQ4M2NbXFx1ZGZmYi1cXHVkZmZmXSIsQ3Q9IlteXFx1ZDgwMC1cXHVkZmZmXSIsQXQ9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLGt0PSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixMdD0iWyIrdnQrIl0iLFB0PSIoPzoiK010KyJ8IitFdCsiKSIsTnQ9Iig/OiIrTHQrInwiK0V0KyIpIixJdD0iKD86WyfigJldKD86ZHxsbHxtfHJlfHN8dHx2ZSkpPyIsUnQ9Iig/Olsn4oCZXSg/OkR8TEx8TXxSRXxTfFR8VkUpKT8iLE90PSIoPzoiK3d0KyJ8IitUdCsiKT8iLHp0PSJbXFx1ZmUwZVxcdWZlMGZdPyIsRHQ9enQrT3QrIig/OlxcdTIwMGQoPzoiK1tDdCxBdCxrdF0uam9pbigifCIpKyIpIit6dCtPdCsiKSoiLEJ0PSIoPzoiK1siW1xcdTI3MDAtXFx1MjdiZl0iLEF0LGt0XS5qb2luKCJ8IikrIikiK0R0LEh0PSIoPzoiK1tDdCt3dCsiPyIsd3QsQXQsa3QsIltcXHVkODAwLVxcdWRmZmZdIl0uam9pbigifCIpKyIpIixGdD1SZWdFeHAoIlsn4oCZXSIsImciKSxWdD1SZWdFeHAod3QsImciKSxVdD1SZWdFeHAoVHQrIig/PSIrVHQrIil8IitIdCtEdCwiZyIpLGp0PVJlZ0V4cChbTHQrIj8iK010KyIrIitJdCsiKD89IitbeHQsTHQsIiQiXS5qb2luKCJ8IikrIikiLE50KyIrIitSdCsiKD89IitbeHQsTHQrUHQsIiQiXS5qb2luKCJ8IikrIikiLEx0KyI/IitQdCsiKyIrSXQsTHQrIisiK1J0LCJcXGQqKD86MVNUfDJORHwzUkR8KD8hWzEyM10pXFxkVEgpKD89XFxifFthLXpfXSkiLCJcXGQqKD86MXN0fDJuZHwzcmR8KD8hWzEyM10pXFxkdGgpKD89XFxifFtBLVpfXSkiLFN0LEJ0XS5qb2luKCJ8IiksImciKSxHdD1SZWdFeHAoIltcXHUyMDBkXFx1ZDgwMC1cXHVkZmZmIitfdCsiXFx1ZmUwZVxcdWZlMGZdIiksV3Q9L1thLXpdW0EtWl18W0EtWl17Mn1bYS16XXxbMC05XVthLXpBLVpdfFthLXpBLVpdWzAtOV18W15hLXpBLVowLTkgXS8scXQ9WyJBcnJheSIsIkJ1ZmZlciIsIkRhdGFWaWV3IiwiRGF0ZSIsIkVycm9yIiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiRnVuY3Rpb24iLCJJbnQ4QXJyYXkiLCJJbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIk1hcCIsIk1hdGgiLCJPYmplY3QiLCJQcm9taXNlIiwiUmVnRXhwIiwiU2V0IiwiU3RyaW5nIiwiU3ltYm9sIiwiVHlwZUVycm9yIiwiVWludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiVWludDE2QXJyYXkiLCJVaW50MzJBcnJheSIsIldlYWtNYXAiLCJfIiwiY2xlYXJUaW1lb3V0IiwiaXNGaW5pdGUiLCJwYXJzZUludCIsInNldFRpbWVvdXQiXSxZdD0tMSxYdD17fTtYdFtrXT1YdFtMXT1YdFtQXT1YdFtOXT1YdFtJXT1YdFtSXT1YdFtPXT1YdFt6XT1YdFtEXT0hMCxYdFtoXT1YdFtkXT1YdFtDXT1YdFtwXT1YdFtBXT1YdFtmXT1YdFttXT1YdFtnXT1YdFt5XT1YdFt2XT1YdFtiXT1YdFt3XT1YdFtTXT1YdFtNXT1YdFtUXT0hMTt2YXIgJHQ9e307JHRbaF09JHRbZF09JHRbQ109JHRbQV09JHRbcF09JHRbZl09JHRba109JHRbTF09JHRbUF09JHRbTl09JHRbSV09JHRbeV09JHRbdl09JHRbYl09JHRbd109JHRbU109JHRbTV09JHRbRV09JHRbUl09JHRbT109JHRbel09JHRbRF09ITAsJHRbbV09JHRbZ109JHRbVF09ITE7dmFyIEt0PXsiXFwiOiJcXCIsIiciOiInIiwiXG4iOiJuIiwiXHIiOiJyIiwiXHUyMDI4IjoidTIwMjgiLCJcdTIwMjkiOiJ1MjAyOSJ9LFp0PXBhcnNlRmxvYXQsSnQ9cGFyc2VJbnQsUXQ9Im9iamVjdCI9PXR5cGVvZiB2ZSYmdmUmJnZlLk9iamVjdD09PU9iamVjdCYmdmUsdGU9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixlZT1RdHx8dGV8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksbmU9d2UmJiF3ZS5ub2RlVHlwZSYmd2UsaWU9bmUmJnhlJiYheGUubm9kZVR5cGUmJnhlLHJlPWllJiZpZS5leHBvcnRzPT09bmUsb2U9cmUmJlF0LnByb2Nlc3MsYWU9KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBpZSYmaWUucmVxdWlyZSYmaWUucmVxdWlyZSgidXRpbCIpLnR5cGVzfHxvZSYmb2UuYmluZGluZyYmb2UuYmluZGluZygidXRpbCIpfWNhdGNoKHQpe319KSgpLHNlPWFlJiZhZS5pc0FycmF5QnVmZmVyLGxlPWFlJiZhZS5pc0RhdGUsY2U9YWUmJmFlLmlzTWFwLHVlPWFlJiZhZS5pc1JlZ0V4cCxoZT1hZSYmYWUuaXNTZXQsZGU9YWUmJmFlLmlzVHlwZWRBcnJheTtmdW5jdGlvbiBwZSh0LGUsbil7c3dpdGNoKG4ubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHQuY2FsbChlKTtjYXNlIDE6cmV0dXJuIHQuY2FsbChlLG5bMF0pO2Nhc2UgMjpyZXR1cm4gdC5jYWxsKGUsblswXSxuWzFdKTtjYXNlIDM6cmV0dXJuIHQuY2FsbChlLG5bMF0sblsxXSxuWzJdKX1yZXR1cm4gdC5hcHBseShlLG4pfWZ1bmN0aW9uIGZlKHQsZSxuLGkpe2Zvcih2YXIgcj0tMSxvPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK3I8bzspe3ZhciBhPXRbcl07ZShpLGEsbihhKSx0KX1yZXR1cm4gaX1mdW5jdGlvbiBtZSh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK248aSYmITEhPT1lKHRbbl0sbix0KTspO3JldHVybiB0fWZ1bmN0aW9uIGdlKHQsZSl7Zm9yKHZhciBuPW51bGw9PXQ/MDp0Lmxlbmd0aDtuLS0mJiExIT09ZSh0W25dLG4sdCk7KTtyZXR1cm4gdH1mdW5jdGlvbiBfZSh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK248aTspaWYoIWUodFtuXSxuLHQpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHllKHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoLHI9MCxvPVtdOysrbjxpOyl7dmFyIGE9dFtuXTtlKGEsbix0KSYmKG9bcisrXT1hKX1yZXR1cm4gb31mdW5jdGlvbiBiZSh0LGUpe3JldHVybiEobnVsbD09dHx8IXQubGVuZ3RoKSYmTmUodCxlLDApPi0xfWZ1bmN0aW9uIFNlKHQsZSxuKXtmb3IodmFyIGk9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7KytpPHI7KWlmKG4oZSx0W2ldKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBNZSh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aCxyPUFycmF5KGkpOysrbjxpOylyW25dPWUodFtuXSxuLHQpO3JldHVybiByfWZ1bmN0aW9uIEVlKHQsZSl7Zm9yKHZhciBuPS0xLGk9ZS5sZW5ndGgscj10Lmxlbmd0aDsrK248aTspdFtyK25dPWVbbl07cmV0dXJuIHR9ZnVuY3Rpb24gVGUodCxlLG4saSl7dmFyIHI9LTEsbz1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKGkmJm8mJihuPXRbKytyXSk7KytyPG87KW49ZShuLHRbcl0scix0KTtyZXR1cm4gbn1mdW5jdGlvbiBDZSh0LGUsbixpKXt2YXIgcj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKGkmJnImJihuPXRbLS1yXSk7ci0tOyluPWUobix0W3JdLHIsdCk7cmV0dXJuIG59ZnVuY3Rpb24gQWUodCxlKXtmb3IodmFyIG49LTEsaT1udWxsPT10PzA6dC5sZW5ndGg7KytuPGk7KWlmKGUodFtuXSxuLHQpKXJldHVybiEwO3JldHVybiExfXZhciBrZT16ZSgibGVuZ3RoIik7ZnVuY3Rpb24gTGUodCxlLG4pe3ZhciBpO3JldHVybiBuKHQsKGZ1bmN0aW9uKHQsbixyKXtpZihlKHQsbixyKSlyZXR1cm4gaT1uLCExfSkpLGl9ZnVuY3Rpb24gUGUodCxlLG4saSl7Zm9yKHZhciByPXQubGVuZ3RoLG89bisoaT8xOi0xKTtpP28tLTorK288cjspaWYoZSh0W29dLG8sdCkpcmV0dXJuIG87cmV0dXJuLTF9ZnVuY3Rpb24gTmUodCxlLG4pe3JldHVybiBlPT1lPyhmdW5jdGlvbiBpKHQsZSxuKXtmb3IodmFyIGk9bi0xLHI9dC5sZW5ndGg7KytpPHI7KWlmKHRbaV09PT1lKXJldHVybiBpO3JldHVybi0xfSkodCxlLG4pOlBlKHQsUmUsbil9ZnVuY3Rpb24gSWUodCxlLG4saSl7Zm9yKHZhciByPW4tMSxvPXQubGVuZ3RoOysrcjxvOylpZihpKHRbcl0sZSkpcmV0dXJuIHI7cmV0dXJuLTF9ZnVuY3Rpb24gUmUodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gT2UodCxlKXt2YXIgbj1udWxsPT10PzA6dC5sZW5ndGg7cmV0dXJuIG4/SGUodCxlKS9uOmx9ZnVuY3Rpb24gemUoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBudWxsPT1uP3Q6bltlXX19ZnVuY3Rpb24gRGUoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBudWxsPT1lP3Q6ZVtuXX19ZnVuY3Rpb24gQmUodCxlLG4saSxyKXtyZXR1cm4gcih0LChmdW5jdGlvbih0LHIsbyl7bj1pPyhpPSExLHQpOmUobix0LHIsbyl9KSksbn1mdW5jdGlvbiBIZShlLG4pe2Zvcih2YXIgaSxyPS0xLG89ZS5sZW5ndGg7KytyPG87KXt2YXIgYT1uKGVbcl0pO2EhPT10JiYoaT1pPT09dD9hOmkrYSl9cmV0dXJuIGl9ZnVuY3Rpb24gRmUodCxlKXtmb3IodmFyIG49LTEsaT1BcnJheSh0KTsrK248dDspaVtuXT1lKG4pO3JldHVybiBpfWZ1bmN0aW9uIFZlKHQpe3JldHVybiB0P3Quc2xpY2UoMCxhbih0KSsxKS5yZXBsYWNlKFEsIiIpOnR9ZnVuY3Rpb24gVWUodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfX1mdW5jdGlvbiBqZSh0LGUpe3JldHVybiBNZShlLChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKX1mdW5jdGlvbiBHZSh0LGUpe3JldHVybiB0LmhhcyhlKX1mdW5jdGlvbiBXZSh0LGUpe2Zvcih2YXIgbj0tMSxpPXQubGVuZ3RoOysrbjxpJiZOZShlLHRbbl0sMCk+LTE7KTtyZXR1cm4gbn1mdW5jdGlvbiBxZSh0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aDtuLS0mJk5lKGUsdFtuXSwwKT4tMTspO3JldHVybiBufWZ1bmN0aW9uIFllKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoLGk9MDtuLS07KXRbbl09PT1lJiYrK2k7cmV0dXJuIGl9dmFyIFhlPURlKHsiw4AiOiJBIiwiw4EiOiJBIiwiw4IiOiJBIiwiw4MiOiJBIiwiw4QiOiJBIiwiw4UiOiJBIiwiw6AiOiJhIiwiw6EiOiJhIiwiw6IiOiJhIiwiw6MiOiJhIiwiw6QiOiJhIiwiw6UiOiJhIiwiw4ciOiJDIiwiw6ciOiJjIiwiw5AiOiJEIiwiw7AiOiJkIiwiw4giOiJFIiwiw4kiOiJFIiwiw4oiOiJFIiwiw4siOiJFIiwiw6giOiJlIiwiw6kiOiJlIiwiw6oiOiJlIiwiw6siOiJlIiwiw4wiOiJJIiwiw40iOiJJIiwiw44iOiJJIiwiw48iOiJJIiwiw6wiOiJpIiwiw60iOiJpIiwiw64iOiJpIiwiw68iOiJpIiwiw5EiOiJOIiwiw7EiOiJuIiwiw5IiOiJPIiwiw5MiOiJPIiwiw5QiOiJPIiwiw5UiOiJPIiwiw5YiOiJPIiwiw5giOiJPIiwiw7IiOiJvIiwiw7MiOiJvIiwiw7QiOiJvIiwiw7UiOiJvIiwiw7YiOiJvIiwiw7giOiJvIiwiw5kiOiJVIiwiw5oiOiJVIiwiw5siOiJVIiwiw5wiOiJVIiwiw7kiOiJ1Iiwiw7oiOiJ1Iiwiw7siOiJ1Iiwiw7wiOiJ1Iiwiw50iOiJZIiwiw70iOiJ5Iiwiw78iOiJ5Iiwiw4YiOiJBZSIsIsOmIjoiYWUiLCLDniI6IlRoIiwiw74iOiJ0aCIsIsOfIjoic3MiLCLEgCI6IkEiLCLEgiI6IkEiLCLEhCI6IkEiLCLEgSI6ImEiLCLEgyI6ImEiLCLEhSI6ImEiLCLEhiI6IkMiLCLEiCI6IkMiLCLEiiI6IkMiLCLEjCI6IkMiLCLEhyI6ImMiLCLEiSI6ImMiLCLEiyI6ImMiLCLEjSI6ImMiLCLEjiI6IkQiLCLEkCI6IkQiLCLEjyI6ImQiLCLEkSI6ImQiLCLEkiI6IkUiLCLElCI6IkUiLCLEliI6IkUiLCLEmCI6IkUiLCLEmiI6IkUiLCLEkyI6ImUiLCLElSI6ImUiLCLElyI6ImUiLCLEmSI6ImUiLCLEmyI6ImUiLCLEnCI6IkciLCLEniI6IkciLCLEoCI6IkciLCLEoiI6IkciLCLEnSI6ImciLCLEnyI6ImciLCLEoSI6ImciLCLEoyI6ImciLCLEpCI6IkgiLCLEpiI6IkgiLCLEpSI6ImgiLCLEpyI6ImgiLCLEqCI6IkkiLCLEqiI6IkkiLCLErCI6IkkiLCLEriI6IkkiLCLEsCI6IkkiLCLEqSI6ImkiLCLEqyI6ImkiLCLErSI6ImkiLCLEryI6ImkiLCLEsSI6ImkiLCLEtCI6IkoiLCLEtSI6ImoiLCLEtiI6IksiLCLEtyI6ImsiLCLEuCI6ImsiLCLEuSI6IkwiLCLEuyI6IkwiLCLEvSI6IkwiLCLEvyI6IkwiLCLFgSI6IkwiLCLEuiI6ImwiLCLEvCI6ImwiLCLEviI6ImwiLCLFgCI6ImwiLCLFgiI6ImwiLCLFgyI6Ik4iLCLFhSI6Ik4iLCLFhyI6Ik4iLCLFiiI6Ik4iLCLFhCI6Im4iLCLFhiI6Im4iLCLFiCI6Im4iLCLFiyI6Im4iLCLFjCI6Ik8iLCLFjiI6Ik8iLCLFkCI6Ik8iLCLFjSI6Im8iLCLFjyI6Im8iLCLFkSI6Im8iLCLFlCI6IlIiLCLFliI6IlIiLCLFmCI6IlIiLCLFlSI6InIiLCLFlyI6InIiLCLFmSI6InIiLCLFmiI6IlMiLCLFnCI6IlMiLCLFniI6IlMiLCLFoCI6IlMiLCLFmyI6InMiLCLFnSI6InMiLCLFnyI6InMiLCLFoSI6InMiLCLFoiI6IlQiLCLFpCI6IlQiLCLFpiI6IlQiLCLFoyI6InQiLCLFpSI6InQiLCLFpyI6InQiLCLFqCI6IlUiLCLFqiI6IlUiLCLFrCI6IlUiLCLFriI6IlUiLCLFsCI6IlUiLCLFsiI6IlUiLCLFqSI6InUiLCLFqyI6InUiLCLFrSI6InUiLCLFryI6InUiLCLFsSI6InUiLCLFsyI6InUiLCLFtCI6IlciLCLFtSI6InciLCLFtiI6IlkiLCLFtyI6InkiLCLFuCI6IlkiLCLFuSI6IloiLCLFuyI6IloiLCLFvSI6IloiLCLFuiI6InoiLCLFvCI6InoiLCLFviI6InoiLCLEsiI6IklKIiwixLMiOiJpaiIsIsWSIjoiT2UiLCLFkyI6Im9lIiwixYkiOiInbiIsIsW/IjoicyJ9KSwkZT1EZSh7IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCciJzoiJnF1b3Q7IiwiJyI6IiYjMzk7In0pO2Z1bmN0aW9uIEtlKHQpe3JldHVybiJcXCIrS3RbdF19ZnVuY3Rpb24gWmUodCl7cmV0dXJuIEd0LnRlc3QodCl9ZnVuY3Rpb24gSmUodCl7dmFyIGU9LTEsbj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7blsrK2VdPVtpLHRdfSkpLG59ZnVuY3Rpb24gUWUodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQoZShuKSl9fWZ1bmN0aW9uIHRuKHQsZSl7Zm9yKHZhciBuPS0xLHI9dC5sZW5ndGgsbz0wLGE9W107KytuPHI7KXt2YXIgcz10W25dO3MhPT1lJiZzIT09aXx8KHRbbl09aSxhW28rK109bil9cmV0dXJuIGF9ZnVuY3Rpb24gZW4odCl7dmFyIGU9LTEsbj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe25bKytlXT10fSkpLG59ZnVuY3Rpb24gbm4odCl7dmFyIGU9LTEsbj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe25bKytlXT1bdCx0XX0pKSxufWZ1bmN0aW9uIHJuKHQpe3JldHVybiBaZSh0KT8oZnVuY3Rpb24gZSh0KXtmb3IodmFyIGU9VXQubGFzdEluZGV4PTA7VXQudGVzdCh0KTspKytlO3JldHVybiBlfSkodCk6a2UodCl9ZnVuY3Rpb24gb24odCl7cmV0dXJuIFplKHQpPyhmdW5jdGlvbiBlKHQpe3JldHVybiB0Lm1hdGNoKFV0KXx8W119KSh0KTooZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5zcGxpdCgiIil9KSh0KX1mdW5jdGlvbiBhbih0KXtmb3IodmFyIGU9dC5sZW5ndGg7ZS0tJiZ0dC50ZXN0KHQuY2hhckF0KGUpKTspO3JldHVybiBlfXZhciBzbj1EZSh7IiZhbXA7IjoiJiIsIiZsdDsiOiI8IiwiJmd0OyI6Ij4iLCImcXVvdDsiOiciJywiJiMzOTsiOiInIn0pLGxuPShmdW5jdGlvbiB0dChfdCl7dmFyIHl0LHZ0PShfdD1udWxsPT1fdD9lZTpsbi5kZWZhdWx0cyhlZS5PYmplY3QoKSxfdCxsbi5waWNrKGVlLHF0KSkpLkFycmF5LGJ0PV90LkRhdGUseHQ9X3QuRXJyb3Isd3Q9X3QuRnVuY3Rpb24sU3Q9X3QuTWF0aCxNdD1fdC5PYmplY3QsRXQ9X3QuUmVnRXhwLFR0PV90LlN0cmluZyxDdD1fdC5UeXBlRXJyb3IsQXQ9dnQucHJvdG90eXBlLGt0PU10LnByb3RvdHlwZSxMdD1fdFsiX19jb3JlLWpzX3NoYXJlZF9fIl0sUHQ9d3QucHJvdG90eXBlLnRvU3RyaW5nLE50PWt0Lmhhc093blByb3BlcnR5LEl0PTAsUnQ9KHl0PS9bXi5dKyQvLmV4ZWMoTHQmJkx0LmtleXMmJkx0LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIit5dDoiIixPdD1rdC50b1N0cmluZyx6dD1QdC5jYWxsKE10KSxEdD1lZS5fLEJ0PUV0KCJeIitQdC5jYWxsKE50KS5yZXBsYWNlKFosIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIiksSHQ9cmU/X3QuQnVmZmVyOnQsVXQ9X3QuU3ltYm9sLEd0PV90LlVpbnQ4QXJyYXksS3Q9SHQ/SHQuYWxsb2NVbnNhZmU6dCxRdD1RZShNdC5nZXRQcm90b3R5cGVPZixNdCksdGU9TXQuY3JlYXRlLG5lPWt0LnByb3BlcnR5SXNFbnVtZXJhYmxlLGllPUF0LnNwbGljZSxvZT1VdD9VdC5pc0NvbmNhdFNwcmVhZGFibGU6dCxhZT1VdD9VdC5pdGVyYXRvcjp0LHZlPVV0P1V0LnRvU3RyaW5nVGFnOnQseGU9KGZ1bmN0aW9uKCl7dHJ5e3ZhciB0PVBvKE10LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiB0KHt9LCIiLHt9KSx0fWNhdGNoKHQpe319KSgpLHdlPV90LmNsZWFyVGltZW91dCE9PWVlLmNsZWFyVGltZW91dCYmX3QuY2xlYXJUaW1lb3V0LGtlPWJ0JiZidC5ub3chPT1lZS5EYXRlLm5vdyYmYnQubm93LERlPV90LnNldFRpbWVvdXQhPT1lZS5zZXRUaW1lb3V0JiZfdC5zZXRUaW1lb3V0LGNuPVN0LmNlaWwsdW49U3QuZmxvb3IsaG49TXQuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGRuPUh0P0h0LmlzQnVmZmVyOnQscG49X3QuaXNGaW5pdGUsZm49QXQuam9pbixtbj1RZShNdC5rZXlzLE10KSxnbj1TdC5tYXgsX249U3QubWluLHluPWJ0Lm5vdyx2bj1fdC5wYXJzZUludCxibj1TdC5yYW5kb20seG49QXQucmV2ZXJzZSx3bj1QbyhfdCwiRGF0YVZpZXciKSxTbj1QbyhfdCwiTWFwIiksTW49UG8oX3QsIlByb21pc2UiKSxFbj1QbyhfdCwiU2V0IiksVG49UG8oX3QsIldlYWtNYXAiKSxDbj1QbyhNdCwiY3JlYXRlIiksQW49VG4mJm5ldyBUbixrbj17fSxMbj1vYSh3biksUG49b2EoU24pLE5uPW9hKE1uKSxJbj1vYShFbiksUm49b2EoVG4pLE9uPVV0P1V0LnByb3RvdHlwZTp0LHpuPU9uP09uLnZhbHVlT2Y6dCxEbj1Pbj9Pbi50b1N0cmluZzp0O2Z1bmN0aW9uIEJuKHQpe2lmKE1zKHQpJiYhaHModCkmJiEodCBpbnN0YW5jZW9mIFVuKSl7aWYodCBpbnN0YW5jZW9mIFZuKXJldHVybiB0O2lmKE50LmNhbGwodCwiX193cmFwcGVkX18iKSlyZXR1cm4gYWEodCl9cmV0dXJuIG5ldyBWbih0KX12YXIgSG49KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZnVuY3Rpb24obil7aWYoIVNzKG4pKXJldHVybnt9O2lmKHRlKXJldHVybiB0ZShuKTtlLnByb3RvdHlwZT1uO3ZhciBpPW5ldyBlO3JldHVybiBlLnByb3RvdHlwZT10LGl9fSkoKTtmdW5jdGlvbiBGbigpe31mdW5jdGlvbiBWbihlLG4pe3RoaXMuX193cmFwcGVkX189ZSx0aGlzLl9fYWN0aW9uc19fPVtdLHRoaXMuX19jaGFpbl9fPSEhbix0aGlzLl9faW5kZXhfXz0wLHRoaXMuX192YWx1ZXNfXz10fWZ1bmN0aW9uIFVuKHQpe3RoaXMuX193cmFwcGVkX189dCx0aGlzLl9fYWN0aW9uc19fPVtdLHRoaXMuX19kaXJfXz0xLHRoaXMuX19maWx0ZXJlZF9fPSExLHRoaXMuX19pdGVyYXRlZXNfXz1bXSx0aGlzLl9fdGFrZUNvdW50X189Yyx0aGlzLl9fdmlld3NfXz1bXX1mdW5jdGlvbiBqbih0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1mdW5jdGlvbiBHbih0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1mdW5jdGlvbiBXbih0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1mdW5jdGlvbiBxbih0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5fX2RhdGFfXz1uZXcgV247KytlPG47KXRoaXMuYWRkKHRbZV0pfWZ1bmN0aW9uIFluKHQpe3ZhciBlPXRoaXMuX19kYXRhX189bmV3IEduKHQpO3RoaXMuc2l6ZT1lLnNpemV9ZnVuY3Rpb24gWG4odCxlKXt2YXIgbj1ocyh0KSxpPSFuJiZ1cyh0KSxyPSFuJiYhaSYmZ3ModCksbz0hbiYmIWkmJiFyJiZPcyh0KSxhPW58fGl8fHJ8fG8scz1hP0ZlKHQubGVuZ3RoLFR0KTpbXSxsPXMubGVuZ3RoO2Zvcih2YXIgYyBpbiB0KSFlJiYhTnQuY2FsbCh0LGMpfHxhJiYoImxlbmd0aCI9PWN8fHImJigib2Zmc2V0Ij09Y3x8InBhcmVudCI9PWMpfHxvJiYoImJ1ZmZlciI9PWN8fCJieXRlTGVuZ3RoIj09Y3x8ImJ5dGVPZmZzZXQiPT1jKXx8Qm8oYyxsKSl8fHMucHVzaChjKTtyZXR1cm4gc31mdW5jdGlvbiAkbihlKXt2YXIgbj1lLmxlbmd0aDtyZXR1cm4gbj9lW3ByKDAsbi0xKV06dH1mdW5jdGlvbiBLbih0LGUpe3JldHVybiBlYShYcih0KSxvaShlLDAsdC5sZW5ndGgpKX1mdW5jdGlvbiBabih0KXtyZXR1cm4gZWEoWHIodCkpfWZ1bmN0aW9uIEpuKGUsbixpKXsoaSE9PXQmJiFzcyhlW25dLGkpfHxpPT09dCYmIShuIGluIGUpKSYmaWkoZSxuLGkpfWZ1bmN0aW9uIFFuKGUsbixpKXt2YXIgcj1lW25dO050LmNhbGwoZSxuKSYmc3MocixpKSYmKGkhPT10fHxuIGluIGUpfHxpaShlLG4saSl9ZnVuY3Rpb24gdGkodCxlKXtmb3IodmFyIG49dC5sZW5ndGg7bi0tOylpZihzcyh0W25dWzBdLGUpKXJldHVybiBuO3JldHVybi0xfWZ1bmN0aW9uIGVpKHQsZSxuLGkpe3JldHVybiBOaSh0LChmdW5jdGlvbih0LHIsbyl7ZShpLHQsbih0KSxvKX0pKSxpfWZ1bmN0aW9uIG5pKHQsZSl7cmV0dXJuIHQmJiRyKGUscmwoZSksdCl9ZnVuY3Rpb24gaWkodCxlLG4peyJfX3Byb3RvX18iPT1lJiZ4ZT94ZSh0LGUse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm4sd3JpdGFibGU6ITB9KTp0W2VdPW59ZnVuY3Rpb24gcmkoZSxuKXtmb3IodmFyIGk9LTEscj1uLmxlbmd0aCxvPXZ0KHIpLGE9bnVsbD09ZTsrK2k8cjspb1tpXT1hP3Q6UXMoZSxuW2ldKTtyZXR1cm4gb31mdW5jdGlvbiBvaShlLG4saSl7cmV0dXJuIGU9PWUmJihpIT09dCYmKGU9ZTw9aT9lOmkpLG4hPT10JiYoZT1lPj1uP2U6bikpLGV9ZnVuY3Rpb24gYWkoZSxuLGkscixvLGEpe3ZhciBzLGw9MSZuLGM9MiZuLHU9NCZuO2lmKGkmJihzPW8/aShlLHIsbyxhKTppKGUpKSxzIT09dClyZXR1cm4gcztpZighU3MoZSkpcmV0dXJuIGU7dmFyIGQ9aHMoZSk7aWYoZCl7aWYocz0oZnVuY3Rpb24gbSh0KXt2YXIgZT10Lmxlbmd0aCxuPW5ldyB0LmNvbnN0cnVjdG9yKGUpO3JldHVybiBlJiYic3RyaW5nIj09dHlwZW9mIHRbMF0mJk50LmNhbGwodCwiaW5kZXgiKSYmKG4uaW5kZXg9dC5pbmRleCxuLmlucHV0PXQuaW5wdXQpLG59KShlKSwhbClyZXR1cm4gWHIoZSxzKX1lbHNle3ZhciB4PVJvKGUpLFQ9eD09Z3x8eD09XztpZihncyhlKSlyZXR1cm4gVXIoZSxsKTtpZih4PT1ifHx4PT1ofHxUJiYhbyl7aWYocz1jfHxUP3t9OnpvKGUpLCFsKXJldHVybiBjPyhmdW5jdGlvbiBIKHQsZSl7cmV0dXJuICRyKHQsSW8odCksZSl9KShlLChmdW5jdGlvbiBCKHQsZSl7cmV0dXJuIHQmJiRyKGUsb2woZSksdCl9KShzLGUpKTooZnVuY3Rpb24gRih0LGUpe3JldHVybiAkcih0LE5vKHQpLGUpfSkoZSxuaShzLGUpKX1lbHNle2lmKCEkdFt4XSlyZXR1cm4gbz9lOnt9O3M9KGZ1bmN0aW9uIFYodCxlLG4pe3ZhciBpPXQuY29uc3RydWN0b3I7c3dpdGNoKGUpe2Nhc2UgQzpyZXR1cm4ganIodCk7Y2FzZSBwOmNhc2UgZjpyZXR1cm4gbmV3IGkoK3QpO2Nhc2UgQTpyZXR1cm4oZnVuY3Rpb24gcih0LGUpe3ZhciBuPWU/anIodC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihuLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpfSkodCxuKTtjYXNlIGs6Y2FzZSBMOmNhc2UgUDpjYXNlIE46Y2FzZSBJOmNhc2UgUjpjYXNlIE86Y2FzZSB6OmNhc2UgRDpyZXR1cm4gR3IodCxuKTtjYXNlIHk6cmV0dXJuIG5ldyBpO2Nhc2UgdjpjYXNlIE06cmV0dXJuIG5ldyBpKHQpO2Nhc2UgdzpyZXR1cm4oZnVuY3Rpb24gbyh0KXt2YXIgZT1uZXcgdC5jb25zdHJ1Y3Rvcih0LnNvdXJjZSxsdC5leGVjKHQpKTtyZXR1cm4gZS5sYXN0SW5kZXg9dC5sYXN0SW5kZXgsZX0pKHQpO2Nhc2UgUzpyZXR1cm4gbmV3IGk7Y2FzZSBFOnJldHVybihmdW5jdGlvbiBhKHQpe3JldHVybiB6bj9NdCh6bi5jYWxsKHQpKTp7fX0pKHQpfX0pKGUseCxsKX19YXx8KGE9bmV3IFluKTt2YXIgVT1hLmdldChlKTtpZihVKXJldHVybiBVO2Euc2V0KGUscyksUHMoZSk/ZS5mb3JFYWNoKChmdW5jdGlvbih0KXtzLmFkZChhaSh0LG4saSx0LGUsYSkpfSkpOkVzKGUpJiZlLmZvckVhY2goKGZ1bmN0aW9uKHQscil7cy5zZXQocixhaSh0LG4saSxyLGUsYSkpfSkpO3ZhciBqPWQ/dDoodT9jP01vOlNvOmM/b2w6cmwpKGUpO3JldHVybiBtZShqfHxlLChmdW5jdGlvbih0LHIpe2omJih0PWVbcj10XSksUW4ocyxyLGFpKHQsbixpLHIsZSxhKSl9KSksc31mdW5jdGlvbiBzaShlLG4saSl7dmFyIHI9aS5sZW5ndGg7aWYobnVsbD09ZSlyZXR1cm4hcjtmb3IoZT1NdChlKTtyLS07KXt2YXIgbz1pW3JdLGE9ZVtvXTtpZihhPT09dCYmIShvIGluIGUpfHwhKDAsbltvXSkoYSkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gbGkobixpLHIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBDdChlKTtyZXR1cm4gWm8oKGZ1bmN0aW9uKCl7bi5hcHBseSh0LHIpfSksaSl9ZnVuY3Rpb24gY2kodCxlLG4saSl7dmFyIHI9LTEsbz1iZSxhPSEwLHM9dC5sZW5ndGgsbD1bXSxjPWUubGVuZ3RoO2lmKCFzKXJldHVybiBsO24mJihlPU1lKGUsVWUobikpKSxpPyhvPVNlLGE9ITEpOmUubGVuZ3RoPj0yMDAmJihvPUdlLGE9ITEsZT1uZXcgcW4oZSkpO3Q6Zm9yKDsrK3I8czspe3ZhciB1PXRbcl0saD1udWxsPT1uP3U6bih1KTtpZih1PWl8fDAhPT11P3U6MCxhJiZoPT1oKXtmb3IodmFyIGQ9YztkLS07KWlmKGVbZF09PT1oKWNvbnRpbnVlIHQ7bC5wdXNoKHUpfWVsc2UgbyhlLGgsaSl8fGwucHVzaCh1KX1yZXR1cm4gbH1Cbi50ZW1wbGF0ZVNldHRpbmdzPXtlc2NhcGU6VyxldmFsdWF0ZTpxLGludGVycG9sYXRlOlksdmFyaWFibGU6IiIsaW1wb3J0czp7XzpCbn19LChCbi5wcm90b3R5cGU9Rm4ucHJvdG90eXBlKS5jb25zdHJ1Y3Rvcj1CbiwoVm4ucHJvdG90eXBlPUhuKEZuLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPVZuLChVbi5wcm90b3R5cGU9SG4oRm4ucHJvdG90eXBlKSkuY29uc3RydWN0b3I9VW4sam4ucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIHVpKCl7dGhpcy5fX2RhdGFfXz1Dbj9DbihudWxsKTp7fSx0aGlzLnNpemU9MH0sam4ucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBoaSh0KXt2YXIgZT10aGlzLmhhcyh0KSYmZGVsZXRlIHRoaXMuX19kYXRhX19bdF07cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0sam4ucHJvdG90eXBlLmdldD1mdW5jdGlvbiBkaShlKXt2YXIgaT10aGlzLl9fZGF0YV9fO2lmKENuKXt2YXIgcj1pW2VdO3JldHVybiByPT09bj90OnJ9cmV0dXJuIE50LmNhbGwoaSxlKT9pW2VdOnR9LGpuLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gcGkoZSl7dmFyIG49dGhpcy5fX2RhdGFfXztyZXR1cm4gQ24/bltlXSE9PXQ6TnQuY2FsbChuLGUpfSxqbi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIGZpKGUsaSl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyhlKT8wOjEscltlXT1DbiYmaT09PXQ/bjppLHRoaXN9LEduLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBtaSgpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9LEduLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24gZ2kodCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPXRpKGUsdCk7cmV0dXJuIShuPDB8fChuPT1lLmxlbmd0aC0xP2UucG9wKCk6aWUuY2FsbChlLG4sMSksLS10aGlzLnNpemUsMCkpfSxHbi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIF9pKGUpe3ZhciBuPXRoaXMuX19kYXRhX18saT10aShuLGUpO3JldHVybiBpPDA/dDpuW2ldWzFdfSxHbi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIHlpKHQpe3JldHVybiB0aSh0aGlzLl9fZGF0YV9fLHQpPi0xfSxHbi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIHZpKHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXyxpPXRpKG4sdCk7cmV0dXJuIGk8MD8oKyt0aGlzLnNpemUsbi5wdXNoKFt0LGVdKSk6bltpXVsxXT1lLHRoaXN9LFduLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBiaSgpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IGpuLG1hcDpuZXcoU258fEduKSxzdHJpbmc6bmV3IGpufX0sV24ucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiB4aSh0KXt2YXIgZT1rbyh0aGlzLHQpLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxXbi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIHdpKHQpe3JldHVybiBrbyh0aGlzLHQpLmdldCh0KX0sV24ucHJvdG90eXBlLmhhcz1mdW5jdGlvbiBTaSh0KXtyZXR1cm4ga28odGhpcyx0KS5oYXModCl9LFduLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24gTWkodCxlKXt2YXIgbj1rbyh0aGlzLHQpLGk9bi5zaXplO3JldHVybiBuLnNldCh0LGUpLHRoaXMuc2l6ZSs9bi5zaXplPT1pPzA6MSx0aGlzfSxxbi5wcm90b3R5cGUuYWRkPXFuLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uIEVpKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldCh0LG4pLHRoaXN9LHFuLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gVGkodCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfSxZbi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gQ2koKXt0aGlzLl9fZGF0YV9fPW5ldyBHbix0aGlzLnNpemU9MH0sWW4ucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBBaSh0KXt2YXIgZT10aGlzLl9fZGF0YV9fLG49ZS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZT1lLnNpemUsbn0sWW4ucHJvdG90eXBlLmdldD1mdW5jdGlvbiBraSh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQodCl9LFluLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gTGkodCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfSxZbi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIFBpKHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXztpZihuIGluc3RhbmNlb2YgR24pe3ZhciBpPW4uX19kYXRhX187aWYoIVNufHxpLmxlbmd0aDwxOTkpcmV0dXJuIGkucHVzaChbdCxlXSksdGhpcy5zaXplPSsrbi5zaXplLHRoaXM7bj10aGlzLl9fZGF0YV9fPW5ldyBXbihpKX1yZXR1cm4gbi5zZXQodCxlKSx0aGlzLnNpemU9bi5zaXplLHRoaXN9O3ZhciBOaT1KcihGaSksSWk9SnIoVmksITApO2Z1bmN0aW9uIFJpKHQsZSl7dmFyIG49ITA7cmV0dXJuIE5pKHQsKGZ1bmN0aW9uKHQsaSxyKXtyZXR1cm4gbj0hIWUodCxpLHIpfSkpLG59ZnVuY3Rpb24gT2koZSxuLGkpe2Zvcih2YXIgcj0tMSxvPWUubGVuZ3RoOysrcjxvOyl7dmFyIGE9ZVtyXSxzPW4oYSk7aWYobnVsbCE9cyYmKGw9PT10P3M9PXMmJiFScyhzKTppKHMsbCkpKXZhciBsPXMsYz1hfXJldHVybiBjfWZ1bmN0aW9uIHppKHQsZSl7dmFyIG49W107cmV0dXJuIE5pKHQsKGZ1bmN0aW9uKHQsaSxyKXtlKHQsaSxyKSYmbi5wdXNoKHQpfSkpLG59ZnVuY3Rpb24gRGkodCxlLG4saSxyKXt2YXIgbz0tMSxhPXQubGVuZ3RoO2ZvcihufHwobj1Ebykscnx8KHI9W10pOysrbzxhOyl7dmFyIHM9dFtvXTtlPjAmJm4ocyk/ZT4xP0RpKHMsZS0xLG4saSxyKTpFZShyLHMpOml8fChyW3IubGVuZ3RoXT1zKX1yZXR1cm4gcn12YXIgQmk9UXIoKSxIaT1RcighMCk7ZnVuY3Rpb24gRmkodCxlKXtyZXR1cm4gdCYmQmkodCxlLHJsKX1mdW5jdGlvbiBWaSh0LGUpe3JldHVybiB0JiZIaSh0LGUscmwpfWZ1bmN0aW9uIFVpKHQsZSl7cmV0dXJuIHllKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBicyh0W2VdKX0pKX1mdW5jdGlvbiBqaShlLG4pe2Zvcih2YXIgaT0wLHI9KG49QnIobixlKSkubGVuZ3RoO251bGwhPWUmJmk8cjspZT1lW3JhKG5baSsrXSldO3JldHVybiBpJiZpPT1yP2U6dH1mdW5jdGlvbiBHaSh0LGUsbil7dmFyIGk9ZSh0KTtyZXR1cm4gaHModCk/aTpFZShpLG4odCkpfWZ1bmN0aW9uIFdpKGUpe3JldHVybiBudWxsPT1lP2U9PT10PyJbb2JqZWN0IFVuZGVmaW5lZF0iOiJbb2JqZWN0IE51bGxdIjp2ZSYmdmUgaW4gTXQoZSk/KGZ1bmN0aW9uIG4oZSl7dmFyIG49TnQuY2FsbChlLHZlKSxpPWVbdmVdO3RyeXtlW3ZlXT10O3ZhciByPSEwfWNhdGNoKHQpe312YXIgbz1PdC5jYWxsKGUpO3JldHVybiByJiYobj9lW3ZlXT1pOmRlbGV0ZSBlW3ZlXSksb30pKGUpOihmdW5jdGlvbiBpKHQpe3JldHVybiBPdC5jYWxsKHQpfSkoZSl9ZnVuY3Rpb24gcWkodCxlKXtyZXR1cm4gdD5lfWZ1bmN0aW9uIFlpKHQsZSl7cmV0dXJuIG51bGwhPXQmJk50LmNhbGwodCxlKX1mdW5jdGlvbiBYaSh0LGUpe3JldHVybiBudWxsIT10JiZlIGluIE10KHQpfWZ1bmN0aW9uICRpKGUsbixpKXtmb3IodmFyIHI9aT9TZTpiZSxvPWVbMF0ubGVuZ3RoLGE9ZS5sZW5ndGgscz1hLGw9dnQoYSksYz0xLzAsdT1bXTtzLS07KXt2YXIgaD1lW3NdO3MmJm4mJihoPU1lKGgsVWUobikpKSxjPV9uKGgubGVuZ3RoLGMpLGxbc109IWkmJihufHxvPj0xMjAmJmgubGVuZ3RoPj0xMjApP25ldyBxbihzJiZoKTp0fWg9ZVswXTt2YXIgZD0tMSxwPWxbMF07dDpmb3IoOysrZDxvJiZ1Lmxlbmd0aDxjOyl7dmFyIGY9aFtkXSxtPW4/bihmKTpmO2lmKGY9aXx8MCE9PWY/ZjowLCEocD9HZShwLG0pOnIodSxtLGkpKSl7Zm9yKHM9YTstLXM7KXt2YXIgZz1sW3NdO2lmKCEoZz9HZShnLG0pOnIoZVtzXSxtLGkpKSljb250aW51ZSB0fXAmJnAucHVzaChtKSx1LnB1c2goZil9fXJldHVybiB1fWZ1bmN0aW9uIEtpKGUsbixpKXt2YXIgcj1udWxsPT0oZT1ZbyhlLG49QnIobixlKSkpP2U6ZVtyYShfYShuKSldO3JldHVybiBudWxsPT1yP3Q6cGUocixlLGkpfWZ1bmN0aW9uIFppKHQpe3JldHVybiBNcyh0KSYmV2kodCk9PWh9ZnVuY3Rpb24gSmkoZSxuLGkscixvKXtyZXR1cm4gZT09PW58fChudWxsPT1lfHxudWxsPT1ufHwhTXMoZSkmJiFNcyhuKT9lIT1lJiZuIT1uOihmdW5jdGlvbiBhKGUsbixpLHIsbyxzKXt2YXIgbD1ocyhlKSxjPWhzKG4pLHU9bD9kOlJvKGUpLGc9Yz9kOlJvKG4pLF89KHU9dT09aD9iOnUpPT1iLHg9KGc9Zz09aD9iOmcpPT1iLFQ9dT09ZztpZihUJiZncyhlKSl7aWYoIWdzKG4pKXJldHVybiExO2w9ITAsXz0hMX1pZihUJiYhXylyZXR1cm4gc3x8KHM9bmV3IFluKSxsfHxPcyhlKT94byhlLG4saSxyLG8scyk6KGZ1bmN0aW9uIGsodCxlLG4saSxyLG8sYSl7c3dpdGNoKG4pe2Nhc2UgQTppZih0LmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8dC5ieXRlT2Zmc2V0IT1lLmJ5dGVPZmZzZXQpcmV0dXJuITE7dD10LmJ1ZmZlcixlPWUuYnVmZmVyO2Nhc2UgQzpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhbyhuZXcgR3QodCksbmV3IEd0KGUpKSk7Y2FzZSBwOmNhc2UgZjpjYXNlIHY6cmV0dXJuIHNzKCt0LCtlKTtjYXNlIG06cmV0dXJuIHQubmFtZT09ZS5uYW1lJiZ0Lm1lc3NhZ2U9PWUubWVzc2FnZTtjYXNlIHc6Y2FzZSBNOnJldHVybiB0PT1lKyIiO2Nhc2UgeTp2YXIgcz1KZTtjYXNlIFM6aWYoc3x8KHM9ZW4pLHQuc2l6ZSE9ZS5zaXplJiYhKDEmaSkpcmV0dXJuITE7dmFyIGw9YS5nZXQodCk7aWYobClyZXR1cm4gbD09ZTtpfD0yLGEuc2V0KHQsZSk7dmFyIGM9eG8ocyh0KSxzKGUpLGkscixvLGEpO3JldHVybiBhLmRlbGV0ZSh0KSxjO2Nhc2UgRTppZih6bilyZXR1cm4gem4uY2FsbCh0KT09em4uY2FsbChlKX1yZXR1cm4hMX0pKGUsbix1LGkscixvLHMpO2lmKCEoMSZpKSl7dmFyIEw9XyYmTnQuY2FsbChlLCJfX3dyYXBwZWRfXyIpLFA9eCYmTnQuY2FsbChuLCJfX3dyYXBwZWRfXyIpO2lmKEx8fFApe3ZhciBOPUw/ZS52YWx1ZSgpOmUsST1QP24udmFsdWUoKTpuO3JldHVybiBzfHwocz1uZXcgWW4pLG8oTixJLGkscixzKX19cmV0dXJuISFUJiYoc3x8KHM9bmV3IFluKSwoZnVuY3Rpb24gUihlLG4saSxyLG8sYSl7dmFyIHM9MSZpLGw9U28oZSksYz1sLmxlbmd0aDtpZihjIT1TbyhuKS5sZW5ndGgmJiFzKXJldHVybiExO2Zvcih2YXIgdT1jO3UtLTspe3ZhciBoPWxbdV07aWYoIShzP2ggaW4gbjpOdC5jYWxsKG4saCkpKXJldHVybiExfXZhciBkPWEuZ2V0KGUpLHA9YS5nZXQobik7aWYoZCYmcClyZXR1cm4gZD09biYmcD09ZTt2YXIgZj0hMDthLnNldChlLG4pLGEuc2V0KG4sZSk7Zm9yKHZhciBtPXM7Kyt1PGM7KXt2YXIgZz1lW2g9bFt1XV0sXz1uW2hdO2lmKHIpdmFyIHk9cz9yKF8sZyxoLG4sZSxhKTpyKGcsXyxoLGUsbixhKTtpZighKHk9PT10P2c9PT1ffHxvKGcsXyxpLHIsYSk6eSkpe2Y9ITE7YnJlYWt9bXx8KG09ImNvbnN0cnVjdG9yIj09aCl9aWYoZiYmIW0pe3ZhciB2PWUuY29uc3RydWN0b3IsYj1uLmNvbnN0cnVjdG9yO3Y9PWJ8fCEoImNvbnN0cnVjdG9yImluIGUpfHwhKCJjb25zdHJ1Y3RvciJpbiBuKXx8ImZ1bmN0aW9uIj09dHlwZW9mIHYmJnYgaW5zdGFuY2VvZiB2JiYiZnVuY3Rpb24iPT10eXBlb2YgYiYmYiBpbnN0YW5jZW9mIGJ8fChmPSExKX1yZXR1cm4gYS5kZWxldGUoZSksYS5kZWxldGUobiksZn0pKGUsbixpLHIsbyxzKSl9KShlLG4saSxyLEppLG8pKX1mdW5jdGlvbiBRaShlLG4saSxyKXt2YXIgbz1pLmxlbmd0aCxhPW8scz0hcjtpZihudWxsPT1lKXJldHVybiFhO2ZvcihlPU10KGUpO28tLTspe3ZhciBsPWlbb107aWYocyYmbFsyXT9sWzFdIT09ZVtsWzBdXTohKGxbMF1pbiBlKSlyZXR1cm4hMX1mb3IoOysrbzxhOyl7dmFyIGM9KGw9aVtvXSlbMF0sdT1lW2NdLGg9bFsxXTtpZihzJiZsWzJdKXtpZih1PT09dCYmIShjIGluIGUpKXJldHVybiExfWVsc2V7dmFyIGQ9bmV3IFluO2lmKHIpdmFyIHA9cih1LGgsYyxlLG4sZCk7aWYoIShwPT09dD9KaShoLHUsMyxyLGQpOnApKXJldHVybiExfX1yZXR1cm4hMH1mdW5jdGlvbiB0cih0KXtyZXR1cm4hKCFTcyh0KXx8KGZ1bmN0aW9uIGUodCl7cmV0dXJuISFSdCYmUnQgaW4gdH0pKHQpKSYmKGJzKHQpP0J0Omh0KS50ZXN0KG9hKHQpKX1mdW5jdGlvbiBlcih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGw9PXQ/TGw6Im9iamVjdCI9PXR5cGVvZiB0P2hzKHQpP2FyKHRbMF0sdFsxXSk6b3IodCk6SGwodCl9ZnVuY3Rpb24gbnIodCl7aWYoIWpvKHQpKXJldHVybiBtbih0KTt2YXIgZT1bXTtmb3IodmFyIG4gaW4gTXQodCkpTnQuY2FsbCh0LG4pJiYiY29uc3RydWN0b3IiIT1uJiZlLnB1c2gobik7cmV0dXJuIGV9ZnVuY3Rpb24gaXIodCxlKXtyZXR1cm4gdDxlfWZ1bmN0aW9uIHJyKHQsZSl7dmFyIG49LTEsaT1mcyh0KT92dCh0Lmxlbmd0aCk6W107cmV0dXJuIE5pKHQsKGZ1bmN0aW9uKHQscixvKXtpWysrbl09ZSh0LHIsbyl9KSksaX1mdW5jdGlvbiBvcih0KXt2YXIgZT1Mbyh0KTtyZXR1cm4gMT09ZS5sZW5ndGgmJmVbMF1bMl0/V28oZVswXVswXSxlWzBdWzFdKTpmdW5jdGlvbihuKXtyZXR1cm4gbj09PXR8fFFpKG4sdCxlKX19ZnVuY3Rpb24gYXIoZSxuKXtyZXR1cm4gRm8oZSkmJkdvKG4pP1dvKHJhKGUpLG4pOmZ1bmN0aW9uKGkpe3ZhciByPVFzKGksZSk7cmV0dXJuIHI9PT10JiZyPT09bj90bChpLGUpOkppKG4sciwzKX19ZnVuY3Rpb24gc3IoZSxuLGkscixvKXtlIT09biYmQmkobiwoZnVuY3Rpb24oYSxzKXtpZihvfHwobz1uZXcgWW4pLFNzKGEpKSEoZnVuY3Rpb24gbChlLG4saSxyLG8sYSxzKXt2YXIgbD0kbyhlLGkpLGM9JG8obixpKSx1PXMuZ2V0KGMpO2lmKHUpSm4oZSxpLHUpO2Vsc2V7dmFyIGg9YT9hKGwsYyxpKyIiLGUsbixzKTp0LGQ9aD09PXQ7aWYoZCl7dmFyIHA9aHMoYyksZj0hcCYmZ3MoYyksbT0hcCYmIWYmJk9zKGMpO2g9YyxwfHxmfHxtP2hzKGwpP2g9bDptcyhsKT9oPVhyKGwpOmY/KGQ9ITEsaD1VcihjLCEwKSk6bT8oZD0hMSxoPUdyKGMsITApKTpoPVtdOkFzKGMpfHx1cyhjKT8oaD1sLHVzKGwpP2g9R3MobCk6U3MobCkmJiFicyhsKXx8KGg9em8oYykpKTpkPSExfWQmJihzLnNldChjLGgpLG8oaCxjLHIsYSxzKSxzLmRlbGV0ZShjKSksSm4oZSxpLGgpfX0pKGUsbixzLGksc3IscixvKTtlbHNle3ZhciBjPXI/cigkbyhlLHMpLGEscysiIixlLG4sbyk6dDtjPT09dCYmKGM9YSksSm4oZSxzLGMpfX0pLG9sKX1mdW5jdGlvbiBscihlLG4pe3ZhciBpPWUubGVuZ3RoO2lmKGkpcmV0dXJuIEJvKG4rPW48MD9pOjAsaSk/ZVtuXTp0fWZ1bmN0aW9uIGNyKHQsZSxuKXtlPWUubGVuZ3RoP01lKGUsKGZ1bmN0aW9uKHQpe3JldHVybiBocyh0KT9mdW5jdGlvbihlKXtyZXR1cm4gamkoZSwxPT09dC5sZW5ndGg/dFswXTp0KX06dH0pKTpbTGxdO3ZhciBpPS0xO3JldHVybiBlPU1lKGUsVWUoQW8oKSkpLChmdW5jdGlvbiByKHQsZSl7dmFyIG49dC5sZW5ndGg7Zm9yKHQuc29ydChlKTtuLS07KXRbbl09dFtuXS52YWx1ZTtyZXR1cm4gdH0pKHJyKHQsKGZ1bmN0aW9uKHQsbixyKXtyZXR1cm57Y3JpdGVyaWE6TWUoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSksaW5kZXg6KytpLHZhbHVlOnR9fSkpLChmdW5jdGlvbih0LGUpe3JldHVybihmdW5jdGlvbiBpKHQsZSxuKXtmb3IodmFyIGk9LTEscj10LmNyaXRlcmlhLG89ZS5jcml0ZXJpYSxhPXIubGVuZ3RoLHM9bi5sZW5ndGg7KytpPGE7KXt2YXIgbD1XcihyW2ldLG9baV0pO2lmKGwpcmV0dXJuIGk+PXM/bDpsKigiZGVzYyI9PW5baV0/LTE6MSl9cmV0dXJuIHQuaW5kZXgtZS5pbmRleH0pKHQsZSxuKX0pKX1mdW5jdGlvbiB1cih0LGUsbil7Zm9yKHZhciBpPS0xLHI9ZS5sZW5ndGgsbz17fTsrK2k8cjspe3ZhciBhPWVbaV0scz1qaSh0LGEpO24ocyxhKSYmeXIobyxCcihhLHQpLHMpfXJldHVybiBvfWZ1bmN0aW9uIGhyKHQsZSxuLGkpe3ZhciByPWk/SWU6TmUsbz0tMSxhPWUubGVuZ3RoLHM9dDtmb3IodD09PWUmJihlPVhyKGUpKSxuJiYocz1NZSh0LFVlKG4pKSk7KytvPGE7KWZvcih2YXIgbD0wLGM9ZVtvXSx1PW4/bihjKTpjOyhsPXIocyx1LGwsaSkpPi0xOylzIT09dCYmaWUuY2FsbChzLGwsMSksaWUuY2FsbCh0LGwsMSk7cmV0dXJuIHR9ZnVuY3Rpb24gZHIodCxlKXtmb3IodmFyIG49dD9lLmxlbmd0aDowLGk9bi0xO24tLTspe3ZhciByPWVbbl07aWYobj09aXx8ciE9PW8pe3ZhciBvPXI7Qm8ocik/aWUuY2FsbCh0LHIsMSk6THIodCxyKX19cmV0dXJuIHR9ZnVuY3Rpb24gcHIodCxlKXtyZXR1cm4gdCt1bihibigpKihlLXQrMSkpfWZ1bmN0aW9uIGZyKHQsZSl7dmFyIG49IiI7aWYoIXR8fGU8MXx8ZT5zKXJldHVybiBuO2Rve2UlMiYmKG4rPXQpLChlPXVuKGUvMikpJiYodCs9dCl9d2hpbGUoZSk7cmV0dXJuIG59ZnVuY3Rpb24gbXIodCxlKXtyZXR1cm4gSm8ocW8odCxlLExsKSx0KyIiKX1mdW5jdGlvbiBncih0KXtyZXR1cm4gJG4ocGwodCkpfWZ1bmN0aW9uIF9yKHQsZSl7dmFyIG49cGwodCk7cmV0dXJuIGVhKG4sb2koZSwwLG4ubGVuZ3RoKSl9ZnVuY3Rpb24geXIoZSxuLGkscil7aWYoIVNzKGUpKXJldHVybiBlO2Zvcih2YXIgbz0tMSxhPShuPUJyKG4sZSkpLmxlbmd0aCxzPWEtMSxsPWU7bnVsbCE9bCYmKytvPGE7KXt2YXIgYz1yYShuW29dKSx1PWk7aWYoIl9fcHJvdG9fXyI9PT1jfHwiY29uc3RydWN0b3IiPT09Y3x8InByb3RvdHlwZSI9PT1jKXJldHVybiBlO2lmKG8hPXMpe3ZhciBoPWxbY107KHU9cj9yKGgsYyxsKTp0KT09PXQmJih1PVNzKGgpP2g6Qm8obltvKzFdKT9bXTp7fSl9UW4obCxjLHUpLGw9bFtjXX1yZXR1cm4gZX12YXIgdnI9QW4/ZnVuY3Rpb24odCxlKXtyZXR1cm4gQW4uc2V0KHQsZSksdH06TGwsYnI9eGU/ZnVuY3Rpb24odCxlKXtyZXR1cm4geGUodCwidG9TdHJpbmciLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTpDbChlKSx3cml0YWJsZTohMH0pfTpMbDtmdW5jdGlvbiB4cih0KXtyZXR1cm4gZWEocGwodCkpfWZ1bmN0aW9uIHdyKHQsZSxuKXt2YXIgaT0tMSxyPXQubGVuZ3RoO2U8MCYmKGU9LWU+cj8wOnIrZSksKG49bj5yP3I6bik8MCYmKG4rPXIpLHI9ZT5uPzA6bi1lPj4+MCxlPj4+PTA7Zm9yKHZhciBvPXZ0KHIpOysraTxyOylvW2ldPXRbaStlXTtyZXR1cm4gb31mdW5jdGlvbiBTcih0LGUpe3ZhciBuO3JldHVybiBOaSh0LChmdW5jdGlvbih0LGkscil7cmV0dXJuIShuPWUodCxpLHIpKX0pKSwhIW59ZnVuY3Rpb24gTXIodCxlLG4pe3ZhciBpPTAscj1udWxsPT10P2k6dC5sZW5ndGg7aWYoIm51bWJlciI9PXR5cGVvZiBlJiZlPT1lJiZyPD0yMTQ3NDgzNjQ3KXtmb3IoO2k8cjspe3ZhciBvPWkrcj4+PjEsYT10W29dO251bGwhPT1hJiYhUnMoYSkmJihuP2E8PWU6YTxlKT9pPW8rMTpyPW99cmV0dXJuIHJ9cmV0dXJuIEVyKHQsZSxMbCxuKX1mdW5jdGlvbiBFcihlLG4saSxyKXt2YXIgbz0wLGE9bnVsbD09ZT8wOmUubGVuZ3RoO2lmKDA9PT1hKXJldHVybiAwO2Zvcih2YXIgcz0obj1pKG4pKSE9bixsPW51bGw9PT1uLGM9UnMobiksdT1uPT09dDtvPGE7KXt2YXIgaD11bigobythKS8yKSxkPWkoZVtoXSkscD1kIT09dCxmPW51bGw9PT1kLG09ZD09ZCxnPVJzKGQpO2lmKHMpdmFyIF89cnx8bTtlbHNlIF89dT9tJiYocnx8cCk6bD9tJiZwJiYocnx8IWYpOmM/bSYmcCYmIWYmJihyfHwhZyk6IWYmJiFnJiYocj9kPD1uOmQ8bik7Xz9vPWgrMTphPWh9cmV0dXJuIF9uKGEsNDI5NDk2NzI5NCl9ZnVuY3Rpb24gVHIodCxlKXtmb3IodmFyIG49LTEsaT10Lmxlbmd0aCxyPTAsbz1bXTsrK248aTspe3ZhciBhPXRbbl0scz1lP2UoYSk6YTtpZighbnx8IXNzKHMsbCkpe3ZhciBsPXM7b1tyKytdPTA9PT1hPzA6YX19cmV0dXJuIG99ZnVuY3Rpb24gQ3IodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3Q6UnModCk/bDordH1mdW5jdGlvbiBBcih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoaHModCkpcmV0dXJuIE1lKHQsQXIpKyIiO2lmKFJzKHQpKXJldHVybiBEbj9Ebi5jYWxsKHQpOiIiO3ZhciBlPXQrIiI7cmV0dXJuIjAiPT1lJiYxL3Q9PS0xLzA/Ii0wIjplfWZ1bmN0aW9uIGtyKHQsZSxuKXt2YXIgaT0tMSxyPWJlLG89dC5sZW5ndGgsYT0hMCxzPVtdLGw9cztpZihuKWE9ITEscj1TZTtlbHNlIGlmKG8+PTIwMCl7dmFyIGM9ZT9udWxsOm1vKHQpO2lmKGMpcmV0dXJuIGVuKGMpO2E9ITEscj1HZSxsPW5ldyBxbn1lbHNlIGw9ZT9bXTpzO3Q6Zm9yKDsrK2k8bzspe3ZhciB1PXRbaV0saD1lP2UodSk6dTtpZih1PW58fDAhPT11P3U6MCxhJiZoPT1oKXtmb3IodmFyIGQ9bC5sZW5ndGg7ZC0tOylpZihsW2RdPT09aCljb250aW51ZSB0O2UmJmwucHVzaChoKSxzLnB1c2godSl9ZWxzZSByKGwsaCxuKXx8KGwhPT1zJiZsLnB1c2goaCkscy5wdXNoKHUpKX1yZXR1cm4gc31mdW5jdGlvbiBMcih0LGUpe3JldHVybiBudWxsPT0odD1Zbyh0LGU9QnIoZSx0KSkpfHxkZWxldGUgdFtyYShfYShlKSldfWZ1bmN0aW9uIFByKHQsZSxuLGkpe3JldHVybiB5cih0LGUsbihqaSh0LGUpKSxpKX1mdW5jdGlvbiBOcih0LGUsbixpKXtmb3IodmFyIHI9dC5sZW5ndGgsbz1pP3I6LTE7KGk/by0tOisrbzxyKSYmZSh0W29dLG8sdCk7KTtyZXR1cm4gbj93cih0LGk/MDpvLGk/bysxOnIpOndyKHQsaT9vKzE6MCxpP3I6byl9ZnVuY3Rpb24gSXIodCxlKXt2YXIgbj10O3JldHVybiBuIGluc3RhbmNlb2YgVW4mJihuPW4udmFsdWUoKSksVGUoZSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5mdW5jLmFwcGx5KGUudGhpc0FyZyxFZShbdF0sZS5hcmdzKSl9KSxuKX1mdW5jdGlvbiBScih0LGUsbil7dmFyIGk9dC5sZW5ndGg7aWYoaTwyKXJldHVybiBpP2tyKHRbMF0pOltdO2Zvcih2YXIgcj0tMSxvPXZ0KGkpOysrcjxpOylmb3IodmFyIGE9dFtyXSxzPS0xOysrczxpOylzIT1yJiYob1tyXT1jaShvW3JdfHxhLHRbc10sZSxuKSk7cmV0dXJuIGtyKERpKG8sMSksZSxuKX1mdW5jdGlvbiBPcihlLG4saSl7Zm9yKHZhciByPS0xLG89ZS5sZW5ndGgsYT1uLmxlbmd0aCxzPXt9OysrcjxvOylpKHMsZVtyXSxyPGE/bltyXTp0KTtyZXR1cm4gc31mdW5jdGlvbiB6cih0KXtyZXR1cm4gbXModCk/dDpbXX1mdW5jdGlvbiBEcih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OkxsfWZ1bmN0aW9uIEJyKHQsZSl7cmV0dXJuIGhzKHQpP3Q6Rm8odCxlKT9bdF06bmEoV3ModCkpfXZhciBIcj1tcjtmdW5jdGlvbiBGcihlLG4saSl7dmFyIHI9ZS5sZW5ndGg7cmV0dXJuIGk9aT09PXQ/cjppLCFuJiZpPj1yP2U6d3IoZSxuLGkpfXZhciBWcj13ZXx8ZnVuY3Rpb24odCl7cmV0dXJuIGVlLmNsZWFyVGltZW91dCh0KX07ZnVuY3Rpb24gVXIodCxlKXtpZihlKXJldHVybiB0LnNsaWNlKCk7dmFyIG49dC5sZW5ndGgsaT1LdD9LdChuKTpuZXcgdC5jb25zdHJ1Y3RvcihuKTtyZXR1cm4gdC5jb3B5KGkpLGl9ZnVuY3Rpb24ganIodCl7dmFyIGU9bmV3IHQuY29uc3RydWN0b3IodC5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IEd0KGUpLnNldChuZXcgR3QodCkpLGV9ZnVuY3Rpb24gR3IodCxlKXt2YXIgbj1lP2pyKHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3Iobix0LmJ5dGVPZmZzZXQsdC5sZW5ndGgpfWZ1bmN0aW9uIFdyKGUsbil7aWYoZSE9PW4pe3ZhciBpPWUhPT10LHI9bnVsbD09PWUsbz1lPT1lLGE9UnMoZSkscz1uIT09dCxsPW51bGw9PT1uLGM9bj09bix1PVJzKG4pO2lmKCFsJiYhdSYmIWEmJmU+bnx8YSYmcyYmYyYmIWwmJiF1fHxyJiZzJiZjfHwhaSYmY3x8IW8pcmV0dXJuIDE7aWYoIXImJiFhJiYhdSYmZTxufHx1JiZpJiZvJiYhciYmIWF8fGwmJmkmJm98fCFzJiZvfHwhYylyZXR1cm4tMX1yZXR1cm4gMH1mdW5jdGlvbiBxcih0LGUsbixpKXtmb3IodmFyIHI9LTEsbz10Lmxlbmd0aCxhPW4ubGVuZ3RoLHM9LTEsbD1lLmxlbmd0aCxjPWduKG8tYSwwKSx1PXZ0KGwrYyksaD0haTsrK3M8bDspdVtzXT1lW3NdO2Zvcig7KytyPGE7KShofHxyPG8pJiYodVtuW3JdXT10W3JdKTtmb3IoO2MtLTspdVtzKytdPXRbcisrXTtyZXR1cm4gdX1mdW5jdGlvbiBZcih0LGUsbixpKXtmb3IodmFyIHI9LTEsbz10Lmxlbmd0aCxhPS0xLHM9bi5sZW5ndGgsbD0tMSxjPWUubGVuZ3RoLHU9Z24oby1zLDApLGg9dnQodStjKSxkPSFpOysrcjx1OyloW3JdPXRbcl07Zm9yKHZhciBwPXI7KytsPGM7KWhbcCtsXT1lW2xdO2Zvcig7KythPHM7KShkfHxyPG8pJiYoaFtwK25bYV1dPXRbcisrXSk7cmV0dXJuIGh9ZnVuY3Rpb24gWHIodCxlKXt2YXIgbj0tMSxpPXQubGVuZ3RoO2ZvcihlfHwoZT12dChpKSk7KytuPGk7KWVbbl09dFtuXTtyZXR1cm4gZX1mdW5jdGlvbiAkcihlLG4saSxyKXt2YXIgbz0haTtpfHwoaT17fSk7Zm9yKHZhciBhPS0xLHM9bi5sZW5ndGg7KythPHM7KXt2YXIgbD1uW2FdLGM9cj9yKGlbbF0sZVtsXSxsLGksZSk6dDtjPT09dCYmKGM9ZVtsXSksbz9paShpLGwsYyk6UW4oaSxsLGMpfXJldHVybiBpfWZ1bmN0aW9uIEtyKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7dmFyIHI9aHMobik/ZmU6ZWksbz1lP2UoKTp7fTtyZXR1cm4gcihuLHQsQW8oaSwyKSxvKX19ZnVuY3Rpb24gWnIoZSl7cmV0dXJuIG1yKChmdW5jdGlvbihuLGkpe3ZhciByPS0xLG89aS5sZW5ndGgsYT1vPjE/aVtvLTFdOnQscz1vPjI/aVsyXTp0O2ZvcihhPWUubGVuZ3RoPjMmJiJmdW5jdGlvbiI9PXR5cGVvZiBhPyhvLS0sYSk6dCxzJiZIbyhpWzBdLGlbMV0scykmJihhPW88Mz90OmEsbz0xKSxuPU10KG4pOysrcjxvOyl7dmFyIGw9aVtyXTtsJiZlKG4sbCxyLGEpfXJldHVybiBufSkpfWZ1bmN0aW9uIEpyKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7aWYobnVsbD09bilyZXR1cm4gbjtpZighZnMobikpcmV0dXJuIHQobixpKTtmb3IodmFyIHI9bi5sZW5ndGgsbz1lP3I6LTEsYT1NdChuKTsoZT9vLS06KytvPHIpJiYhMSE9PWkoYVtvXSxvLGEpOyk7cmV0dXJuIG59fWZ1bmN0aW9uIFFyKHQpe3JldHVybiBmdW5jdGlvbihlLG4saSl7Zm9yKHZhciByPS0xLG89TXQoZSksYT1pKGUpLHM9YS5sZW5ndGg7cy0tOyl7dmFyIGw9YVt0P3M6KytyXTtpZighMT09PW4ob1tsXSxsLG8pKWJyZWFrfXJldHVybiBlfX1mdW5jdGlvbiB0byhlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9WmUobj1XcyhuKSk/b24obik6dCxyPWk/aVswXTpuLmNoYXJBdCgwKSxvPWk/RnIoaSwxKS5qb2luKCIiKTpuLnNsaWNlKDEpO3JldHVybiByW2VdKCkrb319ZnVuY3Rpb24gZW8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBUZShNbChnbChlKS5yZXBsYWNlKEZ0LCIiKSksdCwiIil9fWZ1bmN0aW9uIG5vKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cztzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IHQ7Y2FzZSAxOnJldHVybiBuZXcgdChlWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSk7Y2FzZSAzOnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSk7Y2FzZSA0OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdKTtjYXNlIDU6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSxlWzJdLGVbM10sZVs0XSk7Y2FzZSA2OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdLGVbNF0sZVs1XSk7Y2FzZSA3OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdLGVbNF0sZVs1XSxlWzZdKX12YXIgbj1Ibih0LnByb3RvdHlwZSksaT10LmFwcGx5KG4sZSk7cmV0dXJuIFNzKGkpP2k6bn19ZnVuY3Rpb24gaW8oZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSxyKXt2YXIgbz1NdChuKTtpZighZnMobikpe3ZhciBhPUFvKGksMyk7bj1ybChuKSxpPWZ1bmN0aW9uKHQpe3JldHVybiBhKG9bdF0sdCxvKX19dmFyIHM9ZShuLGkscik7cmV0dXJuIHM+LTE/b1thP25bc106c106dH19ZnVuY3Rpb24gcm8obil7cmV0dXJuIHdvKChmdW5jdGlvbihpKXt2YXIgcj1pLmxlbmd0aCxvPXIsYT1Wbi5wcm90b3R5cGUudGhydTtmb3IobiYmaS5yZXZlcnNlKCk7by0tOyl7dmFyIHM9aVtvXTtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgQ3QoZSk7aWYoYSYmIWwmJiJ3cmFwcGVyIj09VG8ocykpdmFyIGw9bmV3IFZuKFtdLCEwKX1mb3Iobz1sP286cjsrK288cjspe3ZhciBjPVRvKHM9aVtvXSksdT0id3JhcHBlciI9PWM/RW8ocyk6dDtsPXUmJlZvKHVbMF0pJiY0MjQ9PXVbMV0mJiF1WzRdLmxlbmd0aCYmMT09dVs5XT9sW1RvKHVbMF0pXS5hcHBseShsLHVbM10pOjE9PXMubGVuZ3RoJiZWbyhzKT9sW2NdKCk6bC50aHJ1KHMpfXJldHVybiBmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cyxlPXRbMF07aWYobCYmMT09dC5sZW5ndGgmJmhzKGUpKXJldHVybiBsLnBsYW50KGUpLnZhbHVlKCk7Zm9yKHZhciBuPTAsbz1yP2lbbl0uYXBwbHkodGhpcyx0KTplOysrbjxyOylvPWlbbl0uY2FsbCh0aGlzLG8pO3JldHVybiBvfX0pKX1mdW5jdGlvbiBvbyhlLG4saSxyLGEscyxsLGMsdSxoKXt2YXIgZD1uJm8scD0xJm4sZj0yJm4sbT0yNCZuLGc9NTEyJm4sXz1mP3Q6bm8oZSk7cmV0dXJuIGZ1bmN0aW9uIHQoKXtmb3IodmFyIG89YXJndW1lbnRzLmxlbmd0aCx5PXZ0KG8pLHY9bzt2LS07KXlbdl09YXJndW1lbnRzW3ZdO2lmKG0pdmFyIGI9Q28odCkseD1ZZSh5LGIpO2lmKHImJih5PXFyKHkscixhLG0pKSxzJiYoeT1Zcih5LHMsbCxtKSksby09eCxtJiZvPGgpe3ZhciB3PXRuKHksYik7cmV0dXJuIHBvKGUsbixvbyx0LnBsYWNlaG9sZGVyLGkseSx3LGMsdSxoLW8pfXZhciBTPXA/aTp0aGlzLE09Zj9TW2VdOmU7cmV0dXJuIG89eS5sZW5ndGgsYz95PVhvKHksYyk6ZyYmbz4xJiZ5LnJldmVyc2UoKSxkJiZ1PG8mJih5Lmxlbmd0aD11KSx0aGlzJiZ0aGlzIT09ZWUmJnRoaXMgaW5zdGFuY2VvZiB0JiYoTT1ffHxubyhNKSksTS5hcHBseShTLHkpfX1mdW5jdGlvbiBhbyh0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe3JldHVybihmdW5jdGlvbiByKHQsZSxuLGkpe3JldHVybiBGaSh0LChmdW5jdGlvbih0LHIsbyl7ZShpLG4odCkscixvKX0pKSxpfSkobix0LGUoaSkse30pfX1mdW5jdGlvbiBzbyhlLG4pe3JldHVybiBmdW5jdGlvbihpLHIpe3ZhciBvO2lmKGk9PT10JiZyPT09dClyZXR1cm4gbjtpZihpIT09dCYmKG89aSksciE9PXQpe2lmKG89PT10KXJldHVybiByOyJzdHJpbmciPT10eXBlb2YgaXx8InN0cmluZyI9PXR5cGVvZiByPyhpPUFyKGkpLHI9QXIocikpOihpPUNyKGkpLHI9Q3IocikpLG89ZShpLHIpfXJldHVybiBvfX1mdW5jdGlvbiBsbyh0KXtyZXR1cm4gd28oKGZ1bmN0aW9uKGUpe3JldHVybiBlPU1lKGUsVWUoQW8oKSkpLG1yKChmdW5jdGlvbihuKXt2YXIgaT10aGlzO3JldHVybiB0KGUsKGZ1bmN0aW9uKHQpe3JldHVybiBwZSh0LGksbil9KSl9KSl9KSl9ZnVuY3Rpb24gY28oZSxuKXt2YXIgaT0obj1uPT09dD8iICI6QXIobikpLmxlbmd0aDtpZihpPDIpcmV0dXJuIGk/ZnIobixlKTpuO3ZhciByPWZyKG4sY24oZS9ybihuKSkpO3JldHVybiBaZShuKT9GcihvbihyKSwwLGUpLmpvaW4oIiIpOnIuc2xpY2UoMCxlKX1mdW5jdGlvbiB1byhlKXtyZXR1cm4gZnVuY3Rpb24obixpLHIpe3JldHVybiByJiYibnVtYmVyIiE9dHlwZW9mIHImJkhvKG4saSxyKSYmKGk9cj10KSxuPUZzKG4pLGk9PT10PyhpPW4sbj0wKTppPUZzKGkpLChmdW5jdGlvbiBvKHQsZSxuLGkpe2Zvcih2YXIgcj0tMSxvPWduKGNuKChlLXQpLyhufHwxKSksMCksYT12dChvKTtvLS07KWFbaT9vOisrcl09dCx0Kz1uO3JldHVybiBhfSkobixpLHI9cj09PXQ/bjxpPzE6LTE6RnMociksZSl9fWZ1bmN0aW9uIGhvKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmInN0cmluZyI9PXR5cGVvZiBufHwoZT1qcyhlKSxuPWpzKG4pKSx0KGUsbil9fWZ1bmN0aW9uIHBvKGUsbixpLG8sYSxzLGwsYyx1LGgpe3ZhciBkPTgmbjtufD1kP3I6NjQsNCYobiY9fihkPzY0OnIpKXx8KG4mPS00KTt2YXIgcD1bZSxuLGEsZD9zOnQsZD9sOnQsZD90OnMsZD90OmwsYyx1LGhdLGY9aS5hcHBseSh0LHApO3JldHVybiBWbyhlKSYmS28oZixwKSxmLnBsYWNlaG9sZGVyPW8sUW8oZixlLG4pfWZ1bmN0aW9uIGZvKHQpe3ZhciBlPVN0W3RdO3JldHVybiBmdW5jdGlvbih0LG4pe2lmKHQ9anModCksKG49bnVsbD09bj8wOl9uKFZzKG4pLDI5MikpJiZwbih0KSl7dmFyIGk9KFdzKHQpKyJlIikuc3BsaXQoImUiKTtyZXR1cm4rKChpPShXcyhlKGlbMF0rImUiKygraVsxXStuKSkpKyJlIikuc3BsaXQoImUiKSlbMF0rImUiKygraVsxXS1uKSl9cmV0dXJuIGUodCl9fXZhciBtbz1FbiYmMS9lbihuZXcgRW4oWywtMF0pKVsxXT09YT9mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEVuKHQpfTpPbDtmdW5jdGlvbiBnbyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49Um8oZSk7cmV0dXJuIG49PXk/SmUoZSk6bj09Uz9ubihlKTooZnVuY3Rpb24gaSh0LGUpe3JldHVybiBNZShlLChmdW5jdGlvbihlKXtyZXR1cm5bZSx0W2VdXX0pKX0pKGUsdChlKSl9fWZ1bmN0aW9uIF9vKG4sYSxzLGwsYyx1LGgsZCl7dmFyIHA9MiZhO2lmKCFwJiYiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgQ3QoZSk7dmFyIGY9bD9sLmxlbmd0aDowO2lmKGZ8fChhJj0tOTcsbD1jPXQpLGg9aD09PXQ/aDpnbihWcyhoKSwwKSxkPWQ9PT10P2Q6VnMoZCksZi09Yz9jLmxlbmd0aDowLDY0JmEpe3ZhciBtPWwsZz1jO2w9Yz10fXZhciBfPXA/dDpFbyhuKSx5PVtuLGEscyxsLGMsbSxnLHUsaCxkXTtpZihfJiYoZnVuY3Rpb24gdih0LGUpe3ZhciBuPXRbMV0scj1lWzFdLGE9bnxyO2lmKCEoYTwxMzF8fHI9PW8mJjg9PW58fHI9PW8mJjI1Nj09biYmdFs3XS5sZW5ndGg8PWVbOF18fDM4ND09ciYmZVs3XS5sZW5ndGg8PWVbOF0mJjg9PW4pKXJldHVybiB0OzEmciYmKHRbMl09ZVsyXSxhfD0xJm4/MDo0KTt2YXIgcz1lWzNdO2lmKHMpe3ZhciBsPXRbM107dFszXT1sP3FyKGwscyxlWzRdKTpzLHRbNF09bD90bih0WzNdLGkpOmVbNF19KHM9ZVs1XSkmJih0WzVdPShsPXRbNV0pP1lyKGwscyxlWzZdKTpzLHRbNl09bD90bih0WzVdLGkpOmVbNl0pLChzPWVbN10pJiYodFs3XT1zKSxyJm8mJih0WzhdPW51bGw9PXRbOF0/ZVs4XTpfbih0WzhdLGVbOF0pKSxudWxsPT10WzldJiYodFs5XT1lWzldKSx0WzBdPWVbMF0sdFsxXT1hfSkoeSxfKSxuPXlbMF0sYT15WzFdLHM9eVsyXSxsPXlbM10sYz15WzRdLCEoZD15WzldPXlbOV09PT10P3A/MDpuLmxlbmd0aDpnbih5WzldLWYsMCkpJiYyNCZhJiYoYSY9LTI1KSxhJiYxIT1hKXc9OD09YXx8MTY9PWE/KGZ1bmN0aW9uIGIoZSxuLGkpe3ZhciByPW5vKGUpO3JldHVybiBmdW5jdGlvbiBvKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgscz12dChhKSxsPWEsYz1DbyhvKTtsLS07KXNbbF09YXJndW1lbnRzW2xdO3ZhciB1PWE8MyYmc1swXSE9PWMmJnNbYS0xXSE9PWM/W106dG4ocyxjKTtyZXR1cm4oYS09dS5sZW5ndGgpPGk/cG8oZSxuLG9vLG8ucGxhY2Vob2xkZXIsdCxzLHUsdCx0LGktYSk6cGUodGhpcyYmdGhpcyE9PWVlJiZ0aGlzIGluc3RhbmNlb2Ygbz9yOmUsdGhpcyxzKX19KShuLGEsZCk6YSE9ciYmMzMhPWF8fGMubGVuZ3RoP29vLmFwcGx5KHQseSk6KGZ1bmN0aW9uIHgodCxlLG4saSl7dmFyIHI9MSZlLG89bm8odCk7cmV0dXJuIGZ1bmN0aW9uIGUoKXtmb3IodmFyIGE9LTEscz1hcmd1bWVudHMubGVuZ3RoLGw9LTEsYz1pLmxlbmd0aCx1PXZ0KGMrcyksaD10aGlzJiZ0aGlzIT09ZWUmJnRoaXMgaW5zdGFuY2VvZiBlP286dDsrK2w8YzspdVtsXT1pW2xdO2Zvcig7cy0tOyl1W2wrK109YXJndW1lbnRzWysrYV07cmV0dXJuIHBlKGgscj9uOnRoaXMsdSl9fSkobixhLHMsbCk7ZWxzZSB2YXIgdz0oZnVuY3Rpb24gUyh0LGUsbil7dmFyIGk9MSZlLHI9bm8odCk7cmV0dXJuIGZ1bmN0aW9uIGUoKXtyZXR1cm4odGhpcyYmdGhpcyE9PWVlJiZ0aGlzIGluc3RhbmNlb2YgZT9yOnQpLmFwcGx5KGk/bjp0aGlzLGFyZ3VtZW50cyl9fSkobixhLHMpO3JldHVybiBRbygoXz92cjpLbykodyx5KSxuLGEpfWZ1bmN0aW9uIHlvKGUsbixpLHIpe3JldHVybiBlPT09dHx8c3MoZSxrdFtpXSkmJiFOdC5jYWxsKHIsaSk/bjplfWZ1bmN0aW9uIHZvKGUsbixpLHIsbyxhKXtyZXR1cm4gU3MoZSkmJlNzKG4pJiYoYS5zZXQobixlKSxzcihlLG4sdCx2byxhKSxhLmRlbGV0ZShuKSksZX1mdW5jdGlvbiBibyhlKXtyZXR1cm4gQXMoZSk/dDplfWZ1bmN0aW9uIHhvKGUsbixpLHIsbyxhKXt2YXIgcz0xJmksbD1lLmxlbmd0aCxjPW4ubGVuZ3RoO2lmKGwhPWMmJiEocyYmYz5sKSlyZXR1cm4hMTt2YXIgdT1hLmdldChlKSxoPWEuZ2V0KG4pO2lmKHUmJmgpcmV0dXJuIHU9PW4mJmg9PWU7dmFyIGQ9LTEscD0hMCxmPTImaT9uZXcgcW46dDtmb3IoYS5zZXQoZSxuKSxhLnNldChuLGUpOysrZDxsOyl7dmFyIG09ZVtkXSxnPW5bZF07aWYocil2YXIgXz1zP3IoZyxtLGQsbixlLGEpOnIobSxnLGQsZSxuLGEpO2lmKF8hPT10KXtpZihfKWNvbnRpbnVlO3A9ITE7YnJlYWt9aWYoZil7aWYoIUFlKG4sKGZ1bmN0aW9uKHQsZSl7aWYoIUdlKGYsZSkmJihtPT09dHx8byhtLHQsaSxyLGEpKSlyZXR1cm4gZi5wdXNoKGUpfSkpKXtwPSExO2JyZWFrfX1lbHNlIGlmKG0hPT1nJiYhbyhtLGcsaSxyLGEpKXtwPSExO2JyZWFrfX1yZXR1cm4gYS5kZWxldGUoZSksYS5kZWxldGUobikscH1mdW5jdGlvbiB3byhlKXtyZXR1cm4gSm8ocW8oZSx0LGRhKSxlKyIiKX1mdW5jdGlvbiBTbyh0KXtyZXR1cm4gR2kodCxybCxObyl9ZnVuY3Rpb24gTW8odCl7cmV0dXJuIEdpKHQsb2wsSW8pfXZhciBFbz1Bbj9mdW5jdGlvbih0KXtyZXR1cm4gQW4uZ2V0KHQpfTpPbDtmdW5jdGlvbiBUbyh0KXtmb3IodmFyIGU9dC5uYW1lKyIiLG49a25bZV0saT1OdC5jYWxsKGtuLGUpP24ubGVuZ3RoOjA7aS0tOyl7dmFyIHI9bltpXSxvPXIuZnVuYztpZihudWxsPT1vfHxvPT10KXJldHVybiByLm5hbWV9cmV0dXJuIGV9ZnVuY3Rpb24gQ28odCl7cmV0dXJuKE50LmNhbGwoQm4sInBsYWNlaG9sZGVyIik/Qm46dCkucGxhY2Vob2xkZXJ9ZnVuY3Rpb24gQW8oKXt2YXIgdD1Cbi5pdGVyYXRlZXx8UGw7cmV0dXJuIHQ9dD09PVBsP2VyOnQsYXJndW1lbnRzLmxlbmd0aD90KGFyZ3VtZW50c1swXSxhcmd1bWVudHNbMV0pOnR9ZnVuY3Rpb24ga28odCxlKXt2YXIgbj10Ll9fZGF0YV9fO3JldHVybihmdW5jdGlvbiBpKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiJzdHJpbmciPT1lfHwibnVtYmVyIj09ZXx8InN5bWJvbCI9PWV8fCJib29sZWFuIj09ZT8iX19wcm90b19fIiE9PXQ6bnVsbD09PXR9KShlKT9uWyJzdHJpbmciPT10eXBlb2YgZT8ic3RyaW5nIjoiaGFzaCJdOm4ubWFwfWZ1bmN0aW9uIExvKHQpe2Zvcih2YXIgZT1ybCh0KSxuPWUubGVuZ3RoO24tLTspe3ZhciBpPWVbbl0scj10W2ldO2Vbbl09W2kscixHbyhyKV19cmV0dXJuIGV9ZnVuY3Rpb24gUG8oZSxuKXt2YXIgaT0oZnVuY3Rpb24gcihlLG4pe3JldHVybiBudWxsPT1lP3Q6ZVtuXX0pKGUsbik7cmV0dXJuIHRyKGkpP2k6dH12YXIgTm89aG4/ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/W106KHQ9TXQodCkseWUoaG4odCksKGZ1bmN0aW9uKGUpe3JldHVybiBuZS5jYWxsKHQsZSl9KSkpfTpVbCxJbz1obj9mdW5jdGlvbih0KXtmb3IodmFyIGU9W107dDspRWUoZSxObyh0KSksdD1RdCh0KTtyZXR1cm4gZX06VWwsUm89V2k7ZnVuY3Rpb24gT28odCxlLG4pe2Zvcih2YXIgaT0tMSxyPShlPUJyKGUsdCkpLmxlbmd0aCxvPSExOysraTxyOyl7dmFyIGE9cmEoZVtpXSk7aWYoIShvPW51bGwhPXQmJm4odCxhKSkpYnJlYWs7dD10W2FdfXJldHVybiBvfHwrK2khPXI/bzohIShyPW51bGw9PXQ/MDp0Lmxlbmd0aCkmJndzKHIpJiZCbyhhLHIpJiYoaHModCl8fHVzKHQpKX1mdW5jdGlvbiB6byh0KXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdC5jb25zdHJ1Y3Rvcnx8am8odCk/e306SG4oUXQodCkpfWZ1bmN0aW9uIERvKHQpe3JldHVybiBocyh0KXx8dXModCl8fCEhKG9lJiZ0JiZ0W29lXSl9ZnVuY3Rpb24gQm8odCxlKXt2YXIgbj10eXBlb2YgdDtyZXR1cm4hIShlPW51bGw9PWU/czplKSYmKCJudW1iZXIiPT1ufHwic3ltYm9sIiE9biYmcHQudGVzdCh0KSkmJnQ+LTEmJnQlMT09MCYmdDxlfWZ1bmN0aW9uIEhvKHQsZSxuKXtpZighU3MobikpcmV0dXJuITE7dmFyIGk9dHlwZW9mIGU7cmV0dXJuISEoIm51bWJlciI9PWk/ZnMobikmJkJvKGUsbi5sZW5ndGgpOiJzdHJpbmciPT1pJiZlIGluIG4pJiZzcyhuW2VdLHQpfWZ1bmN0aW9uIEZvKHQsZSl7aWYoaHModCkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9biYmInN5bWJvbCIhPW4mJiJib29sZWFuIiE9biYmbnVsbCE9dCYmIVJzKHQpKXx8JC50ZXN0KHQpfHwhWC50ZXN0KHQpfHxudWxsIT1lJiZ0IGluIE10KGUpfWZ1bmN0aW9uIFZvKHQpe3ZhciBlPVRvKHQpLG49Qm5bZV07aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG58fCEoZSBpbiBVbi5wcm90b3R5cGUpKXJldHVybiExO2lmKHQ9PT1uKXJldHVybiEwO3ZhciBpPUVvKG4pO3JldHVybiEhaSYmdD09PWlbMF19KHduJiZSbyhuZXcgd24obmV3IEFycmF5QnVmZmVyKDEpKSkhPUF8fFNuJiZSbyhuZXcgU24pIT15fHxNbiYmUm8oTW4ucmVzb2x2ZSgpKSE9eHx8RW4mJlJvKG5ldyBFbikhPVN8fFRuJiZSbyhuZXcgVG4pIT1UKSYmKFJvPWZ1bmN0aW9uKGUpe3ZhciBuPVdpKGUpLGk9bj09Yj9lLmNvbnN0cnVjdG9yOnQscj1pP29hKGkpOiIiO2lmKHIpc3dpdGNoKHIpe2Nhc2UgTG46cmV0dXJuIEE7Y2FzZSBQbjpyZXR1cm4geTtjYXNlIE5uOnJldHVybiB4O2Nhc2UgSW46cmV0dXJuIFM7Y2FzZSBSbjpyZXR1cm4gVH1yZXR1cm4gbn0pO3ZhciBVbz1MdD9iczpqbDtmdW5jdGlvbiBqbyh0KXt2YXIgZT10JiZ0LmNvbnN0cnVjdG9yO3JldHVybiB0PT09KCJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLnByb3RvdHlwZXx8a3QpfWZ1bmN0aW9uIEdvKHQpe3JldHVybiB0PT10JiYhU3ModCl9ZnVuY3Rpb24gV28oZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIG51bGwhPWkmJmlbZV09PT1uJiYobiE9PXR8fGUgaW4gTXQoaSkpfX1mdW5jdGlvbiBxbyhlLG4saSl7cmV0dXJuIG49Z24obj09PXQ/ZS5sZW5ndGgtMTpuLDApLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cyxyPS0xLG89Z24odC5sZW5ndGgtbiwwKSxhPXZ0KG8pOysrcjxvOylhW3JdPXRbbityXTtyPS0xO2Zvcih2YXIgcz12dChuKzEpOysrcjxuOylzW3JdPXRbcl07cmV0dXJuIHNbbl09aShhKSxwZShlLHRoaXMscyl9fWZ1bmN0aW9uIFlvKHQsZSl7cmV0dXJuIGUubGVuZ3RoPDI/dDpqaSh0LHdyKGUsMCwtMSkpfWZ1bmN0aW9uIFhvKGUsbil7Zm9yKHZhciBpPWUubGVuZ3RoLHI9X24obi5sZW5ndGgsaSksbz1YcihlKTtyLS07KXt2YXIgYT1uW3JdO2Vbcl09Qm8oYSxpKT9vW2FdOnR9cmV0dXJuIGV9ZnVuY3Rpb24gJG8odCxlKXtpZigoImNvbnN0cnVjdG9yIiE9PWV8fCJmdW5jdGlvbiIhPXR5cGVvZiB0W2VdKSYmIl9fcHJvdG9fXyIhPWUpcmV0dXJuIHRbZV19dmFyIEtvPXRhKHZyKSxabz1EZXx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gZWUuc2V0VGltZW91dCh0LGUpfSxKbz10YShicik7ZnVuY3Rpb24gUW8odCxlLG4pe3ZhciBpPWUrIiI7cmV0dXJuIEpvKHQsKGZ1bmN0aW9uIGEodCxlKXt2YXIgbj1lLmxlbmd0aDtpZighbilyZXR1cm4gdDt2YXIgaT1uLTE7cmV0dXJuIGVbaV09KG4+MT8iJiAiOiIiKStlW2ldLGU9ZS5qb2luKG4+Mj8iLCAiOiIgIiksdC5yZXBsYWNlKGV0LCJ7XG4vKiBbd3JhcHBlZCB3aXRoICIrZSsiXSAqL1xuIil9KShpLChmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIG1lKHUsKGZ1bmN0aW9uKG4pe3ZhciBpPSJfLiIrblswXTtlJm5bMV0mJiFiZSh0LGkpJiZ0LnB1c2goaSl9KSksdC5zb3J0KCl9KSgoZnVuY3Rpb24gcih0KXt2YXIgZT10Lm1hdGNoKG50KTtyZXR1cm4gZT9lWzFdLnNwbGl0KGl0KTpbXX0pKGkpLG4pKSl9ZnVuY3Rpb24gdGEoZSl7dmFyIG49MCxpPTA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9eW4oKSxvPTE2LShyLWkpO2lmKGk9cixvPjApe2lmKCsrbj49ODAwKXJldHVybiBhcmd1bWVudHNbMF19ZWxzZSBuPTA7cmV0dXJuIGUuYXBwbHkodCxhcmd1bWVudHMpfX1mdW5jdGlvbiBlYShlLG4pe3ZhciBpPS0xLHI9ZS5sZW5ndGgsbz1yLTE7Zm9yKG49bj09PXQ/cjpuOysraTxuOyl7dmFyIGE9cHIoaSxvKSxzPWVbYV07ZVthXT1lW2ldLGVbaV09c31yZXR1cm4gZS5sZW5ndGg9bixlfXZhciBuYT0oZnVuY3Rpb24gaWEodCl7dmFyIGU9ZXModCwoZnVuY3Rpb24odCl7cmV0dXJuIDUwMD09PW4uc2l6ZSYmbi5jbGVhcigpLHR9KSksbj1lLmNhY2hlO3JldHVybiBlfSkoKGZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmZS5wdXNoKCIiKSx0LnJlcGxhY2UoSywoZnVuY3Rpb24odCxuLGkscil7ZS5wdXNoKGk/ci5yZXBsYWNlKGF0LCIkMSIpOm58fHQpfSkpLGV9KSk7ZnVuY3Rpb24gcmEodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxScyh0KSlyZXR1cm4gdDt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0tMS8wPyItMCI6ZX1mdW5jdGlvbiBvYSh0KXtpZihudWxsIT10KXt0cnl7cmV0dXJuIFB0LmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifWZ1bmN0aW9uIGFhKHQpe2lmKHQgaW5zdGFuY2VvZiBVbilyZXR1cm4gdC5jbG9uZSgpO3ZhciBlPW5ldyBWbih0Ll9fd3JhcHBlZF9fLHQuX19jaGFpbl9fKTtyZXR1cm4gZS5fX2FjdGlvbnNfXz1Ycih0Ll9fYWN0aW9uc19fKSxlLl9faW5kZXhfXz10Ll9faW5kZXhfXyxlLl9fdmFsdWVzX189dC5fX3ZhbHVlc19fLGV9dmFyIHNhPW1yKChmdW5jdGlvbih0LGUpe3JldHVybiBtcyh0KT9jaSh0LERpKGUsMSxtcywhMCkpOltdfSkpLGxhPW1yKChmdW5jdGlvbihlLG4pe3ZhciBpPV9hKG4pO3JldHVybiBtcyhpKSYmKGk9dCksbXMoZSk/Y2koZSxEaShuLDEsbXMsITApLEFvKGksMikpOltdfSkpLGNhPW1yKChmdW5jdGlvbihlLG4pe3ZhciBpPV9hKG4pO3JldHVybiBtcyhpKSYmKGk9dCksbXMoZSk/Y2koZSxEaShuLDEsbXMsITApLHQsaSk6W119KSk7ZnVuY3Rpb24gdWEodCxlLG4pe3ZhciBpPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZighaSlyZXR1cm4tMTt2YXIgcj1udWxsPT1uPzA6VnMobik7cmV0dXJuIHI8MCYmKHI9Z24oaStyLDApKSxQZSh0LEFvKGUsMykscil9ZnVuY3Rpb24gaGEoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtpZighcilyZXR1cm4tMTt2YXIgbz1yLTE7cmV0dXJuIGkhPT10JiYobz1WcyhpKSxvPWk8MD9nbihyK28sMCk6X24obyxyLTEpKSxQZShlLEFvKG4sMyksbywhMCl9ZnVuY3Rpb24gZGEodCl7cmV0dXJuIG51bGwhPXQmJnQubGVuZ3RoP0RpKHQsMSk6W119ZnVuY3Rpb24gcGEoZSl7cmV0dXJuIGUmJmUubGVuZ3RoP2VbMF06dH12YXIgZmE9bXIoKGZ1bmN0aW9uKHQpe3ZhciBlPU1lKHQsenIpO3JldHVybiBlLmxlbmd0aCYmZVswXT09PXRbMF0/JGkoZSk6W119KSksbWE9bXIoKGZ1bmN0aW9uKGUpe3ZhciBuPV9hKGUpLGk9TWUoZSx6cik7cmV0dXJuIG49PT1fYShpKT9uPXQ6aS5wb3AoKSxpLmxlbmd0aCYmaVswXT09PWVbMF0/JGkoaSxBbyhuLDIpKTpbXX0pKSxnYT1tcigoZnVuY3Rpb24oZSl7dmFyIG49X2EoZSksaT1NZShlLHpyKTtyZXR1cm4obj0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOnQpJiZpLnBvcCgpLGkubGVuZ3RoJiZpWzBdPT09ZVswXT8kaShpLHQsbik6W119KSk7ZnVuY3Rpb24gX2EoZSl7dmFyIG49bnVsbD09ZT8wOmUubGVuZ3RoO3JldHVybiBuP2Vbbi0xXTp0fXZhciB5YT1tcih2YSk7ZnVuY3Rpb24gdmEodCxlKXtyZXR1cm4gdCYmdC5sZW5ndGgmJmUmJmUubGVuZ3RoP2hyKHQsZSk6dH12YXIgYmE9d28oKGZ1bmN0aW9uKHQsZSl7dmFyIG49bnVsbD09dD8wOnQubGVuZ3RoLGk9cmkodCxlKTtyZXR1cm4gZHIodCxNZShlLChmdW5jdGlvbih0KXtyZXR1cm4gQm8odCxuKT8rdDp0fSkpLnNvcnQoV3IpKSxpfSkpO2Z1bmN0aW9uIHhhKHQpe3JldHVybiBudWxsPT10P3Q6eG4uY2FsbCh0KX12YXIgd2E9bXIoKGZ1bmN0aW9uKHQpe3JldHVybiBrcihEaSh0LDEsbXMsITApKX0pKSxTYT1tcigoZnVuY3Rpb24oZSl7dmFyIG49X2EoZSk7cmV0dXJuIG1zKG4pJiYobj10KSxrcihEaShlLDEsbXMsITApLEFvKG4sMikpfSkpLE1hPW1yKChmdW5jdGlvbihlKXt2YXIgbj1fYShlKTtyZXR1cm4gbj0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOnQsa3IoRGkoZSwxLG1zLCEwKSx0LG4pfSkpO2Z1bmN0aW9uIEVhKHQpe2lmKCF0fHwhdC5sZW5ndGgpcmV0dXJuW107dmFyIGU9MDtyZXR1cm4gdD15ZSh0LChmdW5jdGlvbih0KXtpZihtcyh0KSlyZXR1cm4gZT1nbih0Lmxlbmd0aCxlKSwhMH0pKSxGZShlLChmdW5jdGlvbihlKXtyZXR1cm4gTWUodCx6ZShlKSl9KSl9ZnVuY3Rpb24gVGEoZSxuKXtpZighZXx8IWUubGVuZ3RoKXJldHVybltdO3ZhciBpPUVhKGUpO3JldHVybiBudWxsPT1uP2k6TWUoaSwoZnVuY3Rpb24oZSl7cmV0dXJuIHBlKG4sdCxlKX0pKX12YXIgQ2E9bXIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG1zKHQpP2NpKHQsZSk6W119KSksQWE9bXIoKGZ1bmN0aW9uKHQpe3JldHVybiBScih5ZSh0LG1zKSl9KSksa2E9bXIoKGZ1bmN0aW9uKGUpe3ZhciBuPV9hKGUpO3JldHVybiBtcyhuKSYmKG49dCksUnIoeWUoZSxtcyksQW8obiwyKSl9KSksTGE9bXIoKGZ1bmN0aW9uKGUpe3ZhciBuPV9hKGUpO3JldHVybiBuPSJmdW5jdGlvbiI9PXR5cGVvZiBuP246dCxScih5ZShlLG1zKSx0LG4pfSkpLFBhPW1yKEVhKSxOYT1tcigoZnVuY3Rpb24oZSl7dmFyIG49ZS5sZW5ndGgsaT1uPjE/ZVtuLTFdOnQ7cmV0dXJuIGk9ImZ1bmN0aW9uIj09dHlwZW9mIGk/KGUucG9wKCksaSk6dCxUYShlLGkpfSkpO2Z1bmN0aW9uIElhKHQpe3ZhciBlPUJuKHQpO3JldHVybiBlLl9fY2hhaW5fXz0hMCxlfWZ1bmN0aW9uIFJhKHQsZSl7cmV0dXJuIGUodCl9dmFyIE9hPXdvKChmdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aCxpPW4/ZVswXTowLHI9dGhpcy5fX3dyYXBwZWRfXyxvPWZ1bmN0aW9uKHQpe3JldHVybiByaSh0LGUpfTtyZXR1cm4hKG4+MXx8dGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgpJiZyIGluc3RhbmNlb2YgVW4mJkJvKGkpPygocj1yLnNsaWNlKGksK2krKG4/MTowKSkpLl9fYWN0aW9uc19fLnB1c2goe2Z1bmM6UmEsYXJnczpbb10sdGhpc0FyZzp0fSksbmV3IFZuKHIsdGhpcy5fX2NoYWluX18pLnRocnUoKGZ1bmN0aW9uKGUpe3JldHVybiBuJiYhZS5sZW5ndGgmJmUucHVzaCh0KSxlfSkpKTp0aGlzLnRocnUobyl9KSksemE9S3IoKGZ1bmN0aW9uKHQsZSxuKXtOdC5jYWxsKHQsbik/Kyt0W25dOmlpKHQsbiwxKX0pKSxEYT1pbyh1YSksQmE9aW8oaGEpO2Z1bmN0aW9uIEhhKHQsZSl7cmV0dXJuKGhzKHQpP21lOk5pKSh0LEFvKGUsMykpfWZ1bmN0aW9uIEZhKHQsZSl7cmV0dXJuKGhzKHQpP2dlOklpKSh0LEFvKGUsMykpfXZhciBWYT1LcigoZnVuY3Rpb24odCxlLG4pe050LmNhbGwodCxuKT90W25dLnB1c2goZSk6aWkodCxuLFtlXSl9KSksVWE9bXIoKGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0tMSxyPSJmdW5jdGlvbiI9PXR5cGVvZiBlLG89ZnModCk/dnQodC5sZW5ndGgpOltdO3JldHVybiBOaSh0LChmdW5jdGlvbih0KXtvWysraV09cj9wZShlLHQsbik6S2kodCxlLG4pfSkpLG99KSksamE9S3IoKGZ1bmN0aW9uKHQsZSxuKXtpaSh0LG4sZSl9KSk7ZnVuY3Rpb24gR2EodCxlKXtyZXR1cm4oaHModCk/TWU6cnIpKHQsQW8oZSwzKSl9dmFyIFdhPUtyKChmdW5jdGlvbih0LGUsbil7dFtuPzA6MV0ucHVzaChlKX0pLChmdW5jdGlvbigpe3JldHVybltbXSxbXV19KSkscWE9bXIoKGZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dClyZXR1cm5bXTt2YXIgbj1lLmxlbmd0aDtyZXR1cm4gbj4xJiZIbyh0LGVbMF0sZVsxXSk/ZT1bXTpuPjImJkhvKGVbMF0sZVsxXSxlWzJdKSYmKGU9W2VbMF1dKSxjcih0LERpKGUsMSksW10pfSkpLFlhPWtlfHxmdW5jdGlvbigpe3JldHVybiBlZS5EYXRlLm5vdygpfTtmdW5jdGlvbiBYYShlLG4saSl7cmV0dXJuIG49aT90Om4sX28oZSxvLHQsdCx0LHQsbj1lJiZudWxsPT1uP2UubGVuZ3RoOm4pfWZ1bmN0aW9uICRhKG4saSl7dmFyIHI7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGkpdGhyb3cgbmV3IEN0KGUpO3JldHVybiBuPVZzKG4pLGZ1bmN0aW9uKCl7cmV0dXJuLS1uPjAmJihyPWkuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxuPD0xJiYoaT10KSxyfX12YXIgS2E9bXIoKGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0xO2lmKG4ubGVuZ3RoKXt2YXIgbz10bihuLENvKEthKSk7aXw9cn1yZXR1cm4gX28odCxpLGUsbixvKX0pKSxaYT1tcigoZnVuY3Rpb24odCxlLG4pe3ZhciBpPTM7aWYobi5sZW5ndGgpe3ZhciBvPXRuKG4sQ28oWmEpKTtpfD1yfXJldHVybiBfbyhlLGksdCxuLG8pfSkpO2Z1bmN0aW9uIEphKG4saSxyKXt2YXIgbyxhLHMsbCxjLHUsaD0wLGQ9ITEscD0hMSxmPSEwO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBDdChlKTtmdW5jdGlvbiBtKGUpe3ZhciBpPW8scj1hO3JldHVybiBvPWE9dCxoPWUsbD1uLmFwcGx5KHIsaSl9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gaD10LGM9Wm8oeSxpKSxkP20odCk6bH1mdW5jdGlvbiBfKGUpe3ZhciBuPWUtdTtyZXR1cm4gdT09PXR8fG4+PWl8fG48MHx8cCYmZS1oPj1zfWZ1bmN0aW9uIHkoKXt2YXIgdD1ZYSgpO2lmKF8odCkpcmV0dXJuIHYodCk7Yz1abyh5LChmdW5jdGlvbiBlKHQpe3ZhciBlPWktKHQtdSk7cmV0dXJuIHA/X24oZSxzLSh0LWgpKTplfSkodCkpfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIGM9dCxmJiZvP20oZSk6KG89YT10LGwpfWZ1bmN0aW9uIGIoKXt2YXIgZT1ZYSgpLG49XyhlKTtpZihvPWFyZ3VtZW50cyxhPXRoaXMsdT1lLG4pe2lmKGM9PT10KXJldHVybiBnKHUpO2lmKHApcmV0dXJuIFZyKGMpLGM9Wm8oeSxpKSxtKHUpfXJldHVybiBjPT09dCYmKGM9Wm8oeSxpKSksbH1yZXR1cm4gaT1qcyhpKXx8MCxTcyhyKSYmKGQ9ISFyLmxlYWRpbmcscz0ocD0ibWF4V2FpdCJpbiByKT9nbihqcyhyLm1heFdhaXQpfHwwLGkpOnMsZj0idHJhaWxpbmciaW4gcj8hIXIudHJhaWxpbmc6ZiksYi5jYW5jZWw9ZnVuY3Rpb24geCgpe2MhPT10JiZWcihjKSxoPTAsbz11PWE9Yz10fSxiLmZsdXNoPWZ1bmN0aW9uIHcoKXtyZXR1cm4gYz09PXQ/bDp2KFlhKCkpfSxifXZhciBRYT1tcigoZnVuY3Rpb24odCxlKXtyZXR1cm4gbGkodCwxLGUpfSkpLHRzPW1yKChmdW5jdGlvbih0LGUsbil7cmV0dXJuIGxpKHQsanMoZSl8fDAsbil9KSk7ZnVuY3Rpb24gZXModCxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9biYmImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEN0KGUpO3ZhciBpPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLHI9bj9uLmFwcGx5KHRoaXMsZSk6ZVswXSxvPWkuY2FjaGU7aWYoby5oYXMocikpcmV0dXJuIG8uZ2V0KHIpO3ZhciBhPXQuYXBwbHkodGhpcyxlKTtyZXR1cm4gaS5jYWNoZT1vLnNldChyLGEpfHxvLGF9O3JldHVybiBpLmNhY2hlPW5ldyhlcy5DYWNoZXx8V24pLGl9ZnVuY3Rpb24gbnModCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEN0KGUpO3JldHVybiBmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cztzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4hdC5jYWxsKHRoaXMpO2Nhc2UgMTpyZXR1cm4hdC5jYWxsKHRoaXMsZVswXSk7Y2FzZSAyOnJldHVybiF0LmNhbGwodGhpcyxlWzBdLGVbMV0pO2Nhc2UgMzpyZXR1cm4hdC5jYWxsKHRoaXMsZVswXSxlWzFdLGVbMl0pfXJldHVybiF0LmFwcGx5KHRoaXMsZSl9fWVzLkNhY2hlPVduO3ZhciBpcz1IcigoZnVuY3Rpb24odCxlKXt2YXIgbj0oZT0xPT1lLmxlbmd0aCYmaHMoZVswXSk/TWUoZVswXSxVZShBbygpKSk6TWUoRGkoZSwxKSxVZShBbygpKSkpLmxlbmd0aDtyZXR1cm4gbXIoKGZ1bmN0aW9uKGkpe2Zvcih2YXIgcj0tMSxvPV9uKGkubGVuZ3RoLG4pOysrcjxvOylpW3JdPWVbcl0uY2FsbCh0aGlzLGlbcl0pO3JldHVybiBwZSh0LHRoaXMsaSl9KSl9KSkscnM9bXIoKGZ1bmN0aW9uKGUsbil7dmFyIGk9dG4obixDbyhycykpO3JldHVybiBfbyhlLHIsdCxuLGkpfSkpLG9zPW1yKChmdW5jdGlvbihlLG4pe3ZhciBpPXRuKG4sQ28ob3MpKTtyZXR1cm4gX28oZSw2NCx0LG4saSl9KSksYXM9d28oKGZ1bmN0aW9uKGUsbil7cmV0dXJuIF9vKGUsMjU2LHQsdCx0LG4pfSkpO2Z1bmN0aW9uIHNzKHQsZSl7cmV0dXJuIHQ9PT1lfHx0IT10JiZlIT1lfXZhciBscz1obyhxaSksY3M9aG8oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+PWV9KSksdXM9WmkoKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30pKCkpP1ppOmZ1bmN0aW9uKHQpe3JldHVybiBNcyh0KSYmTnQuY2FsbCh0LCJjYWxsZWUiKSYmIW5lLmNhbGwodCwiY2FsbGVlIil9LGhzPXZ0LmlzQXJyYXksZHM9c2U/VWUoc2UpOmZ1bmN0aW9uIHBzKHQpe3JldHVybiBNcyh0KSYmV2kodCk9PUN9O2Z1bmN0aW9uIGZzKHQpe3JldHVybiBudWxsIT10JiZ3cyh0Lmxlbmd0aCkmJiFicyh0KX1mdW5jdGlvbiBtcyh0KXtyZXR1cm4gTXModCkmJmZzKHQpfXZhciBncz1kbnx8amwsX3M9bGU/VWUobGUpOmZ1bmN0aW9uIHlzKHQpe3JldHVybiBNcyh0KSYmV2kodCk9PWZ9O2Z1bmN0aW9uIHZzKHQpe2lmKCFNcyh0KSlyZXR1cm4hMTt2YXIgZT1XaSh0KTtyZXR1cm4gZT09bXx8IltvYmplY3QgRE9NRXhjZXB0aW9uXSI9PWV8fCJzdHJpbmciPT10eXBlb2YgdC5tZXNzYWdlJiYic3RyaW5nIj09dHlwZW9mIHQubmFtZSYmIUFzKHQpfWZ1bmN0aW9uIGJzKHQpe2lmKCFTcyh0KSlyZXR1cm4hMTt2YXIgZT1XaSh0KTtyZXR1cm4gZT09Z3x8ZT09X3x8IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iPT1lfHwiW29iamVjdCBQcm94eV0iPT1lfWZ1bmN0aW9uIHhzKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD09VnModCl9ZnVuY3Rpb24gd3ModCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PXN9ZnVuY3Rpb24gU3ModCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9ZnVuY3Rpb24gTXModCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH12YXIgRXM9Y2U/VWUoY2UpOmZ1bmN0aW9uIFRzKHQpe3JldHVybiBNcyh0KSYmUm8odCk9PXl9O2Z1bmN0aW9uIENzKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdHx8TXModCkmJldpKHQpPT12fWZ1bmN0aW9uIEFzKHQpe2lmKCFNcyh0KXx8V2kodCkhPWIpcmV0dXJuITE7dmFyIGU9UXQodCk7aWYobnVsbD09PWUpcmV0dXJuITA7dmFyIG49TnQuY2FsbChlLCJjb25zdHJ1Y3RvciIpJiZlLmNvbnN0cnVjdG9yO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuJiZuIGluc3RhbmNlb2YgbiYmUHQuY2FsbChuKT09enR9dmFyIGtzPXVlP1VlKHVlKTpmdW5jdGlvbiBMcyh0KXtyZXR1cm4gTXModCkmJldpKHQpPT13fSxQcz1oZT9VZShoZSk6ZnVuY3Rpb24gTnModCl7cmV0dXJuIE1zKHQpJiZSbyh0KT09U307ZnVuY3Rpb24gSXModCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHwhaHModCkmJk1zKHQpJiZXaSh0KT09TX1mdW5jdGlvbiBScyh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fE1zKHQpJiZXaSh0KT09RX12YXIgT3M9ZGU/VWUoZGUpOmZ1bmN0aW9uIHpzKHQpe3JldHVybiBNcyh0KSYmd3ModC5sZW5ndGgpJiYhIVh0W1dpKHQpXX0sRHM9aG8oaXIpLEJzPWhvKChmdW5jdGlvbih0LGUpe3JldHVybiB0PD1lfSkpO2Z1bmN0aW9uIEhzKHQpe2lmKCF0KXJldHVybltdO2lmKGZzKHQpKXJldHVybiBJcyh0KT9vbih0KTpYcih0KTtpZihhZSYmdFthZV0pcmV0dXJuKGZ1bmN0aW9uIGUodCl7Zm9yKHZhciBlLG49W107IShlPXQubmV4dCgpKS5kb25lOyluLnB1c2goZS52YWx1ZSk7cmV0dXJuIG59KSh0W2FlXSgpKTt2YXIgbj1Sbyh0KTtyZXR1cm4obj09eT9KZTpuPT1TP2VuOnBsKSh0KX1mdW5jdGlvbiBGcyh0KXtyZXR1cm4gdD8odD1qcyh0KSk9PT1hfHx0PT09LTEvMD8xNzk3NjkzMTM0ODYyMzE1N2UyOTIqKHQ8MD8tMToxKTp0PT10P3Q6MDowPT09dD90OjB9ZnVuY3Rpb24gVnModCl7dmFyIGU9RnModCksbj1lJTE7cmV0dXJuIGU9PWU/bj9lLW46ZTowfWZ1bmN0aW9uIFVzKHQpe3JldHVybiB0P29pKFZzKHQpLDAsYyk6MH1mdW5jdGlvbiBqcyh0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoUnModCkpcmV0dXJuIGw7aWYoU3ModCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PVNzKGUpP2UrIiI6ZX1pZigic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIDA9PT10P3Q6K3Q7dD1WZSh0KTt2YXIgbj11dC50ZXN0KHQpO3JldHVybiBufHxkdC50ZXN0KHQpP0p0KHQuc2xpY2UoMiksbj8yOjgpOmN0LnRlc3QodCk/bDordH1mdW5jdGlvbiBHcyh0KXtyZXR1cm4gJHIodCxvbCh0KSl9ZnVuY3Rpb24gV3ModCl7cmV0dXJuIG51bGw9PXQ/IiI6QXIodCl9dmFyIHFzPVpyKChmdW5jdGlvbih0LGUpe2lmKGpvKGUpfHxmcyhlKSkkcihlLHJsKGUpLHQpO2Vsc2UgZm9yKHZhciBuIGluIGUpTnQuY2FsbChlLG4pJiZRbih0LG4sZVtuXSl9KSksWXM9WnIoKGZ1bmN0aW9uKHQsZSl7JHIoZSxvbChlKSx0KX0pKSxYcz1acigoZnVuY3Rpb24odCxlLG4saSl7JHIoZSxvbChlKSx0LGkpfSkpLCRzPVpyKChmdW5jdGlvbih0LGUsbixpKXskcihlLHJsKGUpLHQsaSl9KSksS3M9d28ocmkpLFpzPW1yKChmdW5jdGlvbihlLG4pe2U9TXQoZSk7dmFyIGk9LTEscj1uLmxlbmd0aCxvPXI+Mj9uWzJdOnQ7Zm9yKG8mJkhvKG5bMF0sblsxXSxvKSYmKHI9MSk7KytpPHI7KWZvcih2YXIgYT1uW2ldLHM9b2woYSksbD0tMSxjPXMubGVuZ3RoOysrbDxjOyl7dmFyIHU9c1tsXSxoPWVbdV07KGg9PT10fHxzcyhoLGt0W3VdKSYmIU50LmNhbGwoZSx1KSkmJihlW3VdPWFbdV0pfXJldHVybiBlfSkpLEpzPW1yKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wdXNoKHQsdm8pLHBlKHNsLHQsZSl9KSk7ZnVuY3Rpb24gUXMoZSxuLGkpe3ZhciByPW51bGw9PWU/dDpqaShlLG4pO3JldHVybiByPT09dD9pOnJ9ZnVuY3Rpb24gdGwodCxlKXtyZXR1cm4gbnVsbCE9dCYmT28odCxlLFhpKX12YXIgZWw9YW8oKGZ1bmN0aW9uKHQsZSxuKXtudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZyYmKGU9T3QuY2FsbChlKSksdFtlXT1ufSksQ2woTGwpKSxubD1hbygoZnVuY3Rpb24odCxlLG4pe251bGwhPWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLnRvU3RyaW5nJiYoZT1PdC5jYWxsKGUpKSxOdC5jYWxsKHQsZSk/dFtlXS5wdXNoKG4pOnRbZV09W25dfSksQW8pLGlsPW1yKEtpKTtmdW5jdGlvbiBybCh0KXtyZXR1cm4gZnModCk/WG4odCk6bnIodCl9ZnVuY3Rpb24gb2wodCl7cmV0dXJuIGZzKHQpP1huKHQsITApOihmdW5jdGlvbiBlKHQpe2lmKCFTcyh0KSlyZXR1cm4oZnVuY3Rpb24gZSh0KXt2YXIgZT1bXTtpZihudWxsIT10KWZvcih2YXIgbiBpbiBNdCh0KSllLnB1c2gobik7cmV0dXJuIGV9KSh0KTt2YXIgbj1qbyh0KSxpPVtdO2Zvcih2YXIgciBpbiB0KSgiY29uc3RydWN0b3IiIT1yfHwhbiYmTnQuY2FsbCh0LHIpKSYmaS5wdXNoKHIpO3JldHVybiBpfSkodCl9dmFyIGFsPVpyKChmdW5jdGlvbih0LGUsbil7c3IodCxlLG4pfSkpLHNsPVpyKChmdW5jdGlvbih0LGUsbixpKXtzcih0LGUsbixpKX0pKSxsbD13bygoZnVuY3Rpb24odCxlKXt2YXIgbj17fTtpZihudWxsPT10KXJldHVybiBuO3ZhciBpPSExO2U9TWUoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGU9QnIoZSx0KSxpfHwoaT1lLmxlbmd0aD4xKSxlfSkpLCRyKHQsTW8odCksbiksaSYmKG49YWkobiw3LGJvKSk7Zm9yKHZhciByPWUubGVuZ3RoO3ItLTspTHIobixlW3JdKTtyZXR1cm4gbn0pKSxjbD13bygoZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD97fTooZnVuY3Rpb24gbih0LGUpe3JldHVybiB1cih0LGUsKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHRsKHQsbil9KSl9KSh0LGUpfSkpO2Z1bmN0aW9uIHVsKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbj1NZShNbyh0KSwoZnVuY3Rpb24odCl7cmV0dXJuW3RdfSkpO3JldHVybiBlPUFvKGUpLHVyKHQsbiwoZnVuY3Rpb24odCxuKXtyZXR1cm4gZSh0LG5bMF0pfSkpfXZhciBobD1nbyhybCksZGw9Z28ob2wpO2Z1bmN0aW9uIHBsKHQpe3JldHVybiBudWxsPT10P1tdOmplKHQscmwodCkpfXZhciBmbD1lbygoZnVuY3Rpb24odCxlLG4pe3JldHVybiBlPWUudG9Mb3dlckNhc2UoKSx0KyhuP21sKGUpOmUpfSkpO2Z1bmN0aW9uIG1sKHQpe3JldHVybiBTbChXcyh0KS50b0xvd2VyQ2FzZSgpKX1mdW5jdGlvbiBnbCh0KXtyZXR1cm4odD1Xcyh0KSkmJnQucmVwbGFjZShmdCxYZSkucmVwbGFjZShWdCwiIil9dmFyIF9sPWVvKChmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrKG4/Ii0iOiIiKStlLnRvTG93ZXJDYXNlKCl9KSkseWw9ZW8oKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdCsobj8iICI6IiIpK2UudG9Mb3dlckNhc2UoKX0pKSx2bD10bygidG9Mb3dlckNhc2UiKSxibD1lbygoZnVuY3Rpb24odCxlLG4pe3JldHVybiB0KyhuPyJfIjoiIikrZS50b0xvd2VyQ2FzZSgpfSkpLHhsPWVvKChmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrKG4/IiAiOiIiKStTbChlKX0pKSx3bD1lbygoZnVuY3Rpb24odCxlLG4pe3JldHVybiB0KyhuPyIgIjoiIikrZS50b1VwcGVyQ2FzZSgpfSkpLFNsPXRvKCJ0b1VwcGVyQ2FzZSIpO2Z1bmN0aW9uIE1sKGUsbixpKXtyZXR1cm4gZT1XcyhlKSwobj1pP3Q6bik9PT10PyhmdW5jdGlvbiByKHQpe3JldHVybiBXdC50ZXN0KHQpfSkoZSk/KGZ1bmN0aW9uIG8odCl7cmV0dXJuIHQubWF0Y2goanQpfHxbXX0pKGUpOihmdW5jdGlvbiBhKHQpe3JldHVybiB0Lm1hdGNoKHJ0KXx8W119KShlKTplLm1hdGNoKG4pfHxbXX12YXIgRWw9bXIoKGZ1bmN0aW9uKGUsbil7dHJ5e3JldHVybiBwZShlLHQsbil9Y2F0Y2godCl7cmV0dXJuIHZzKHQpP3Q6bmV3IHh0KHQpfX0pKSxUbD13bygoZnVuY3Rpb24odCxlKXtyZXR1cm4gbWUoZSwoZnVuY3Rpb24oZSl7ZT1yYShlKSxpaSh0LGUsS2EodFtlXSx0KSl9KSksdH0pKTtmdW5jdGlvbiBDbCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19dmFyIEFsPXJvKCksa2w9cm8oITApO2Z1bmN0aW9uIExsKHQpe3JldHVybiB0fWZ1bmN0aW9uIFBsKHQpe3JldHVybiBlcigiZnVuY3Rpb24iPT10eXBlb2YgdD90OmFpKHQsMSkpfXZhciBObD1tcigoZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIEtpKG4sdCxlKX19KSksSWw9bXIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBLaSh0LG4sZSl9fSkpO2Z1bmN0aW9uIFJsKHQsZSxuKXt2YXIgaT1ybChlKSxyPVVpKGUsaSk7bnVsbCE9bnx8U3MoZSkmJihyLmxlbmd0aHx8IWkubGVuZ3RoKXx8KG49ZSxlPXQsdD10aGlzLHI9VWkoZSxybChlKSkpO3ZhciBvPSEoU3MobikmJiJjaGFpbiJpbiBuJiYhbi5jaGFpbiksYT1icyh0KTtyZXR1cm4gbWUociwoZnVuY3Rpb24obil7dmFyIGk9ZVtuXTt0W25dPWksYSYmKHQucHJvdG90eXBlW25dPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fX2NoYWluX187aWYob3x8ZSl7dmFyIG49dCh0aGlzLl9fd3JhcHBlZF9fKSxyPW4uX19hY3Rpb25zX189WHIodGhpcy5fX2FjdGlvbnNfXyk7cmV0dXJuIHIucHVzaCh7ZnVuYzppLGFyZ3M6YXJndW1lbnRzLHRoaXNBcmc6dH0pLG4uX19jaGFpbl9fPWUsbn1yZXR1cm4gaS5hcHBseSh0LEVlKFt0aGlzLnZhbHVlKCldLGFyZ3VtZW50cykpfSl9KSksdH1mdW5jdGlvbiBPbCgpe312YXIgemw9bG8oTWUpLERsPWxvKF9lKSxCbD1sbyhBZSk7ZnVuY3Rpb24gSGwodCl7cmV0dXJuIEZvKHQpP3plKHJhKHQpKTooZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGppKGUsdCl9fSkodCl9dmFyIEZsPXVvKCksVmw9dW8oITApO2Z1bmN0aW9uIFVsKCl7cmV0dXJuW119ZnVuY3Rpb24gamwoKXtyZXR1cm4hMX12YXIgR2wsV2w9c28oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pLDApLHFsPWZvKCJjZWlsIiksWWw9c28oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQvZX0pLDEpLFhsPWZvKCJmbG9vciIpLCRsPXNvKChmdW5jdGlvbih0LGUpe3JldHVybiB0KmV9KSwxKSxLbD1mbygicm91bmQiKSxabD1zbygoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSksMCk7cmV0dXJuIEJuLmFmdGVyPWZ1bmN0aW9uIEpsKHQsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEN0KGUpO3JldHVybiB0PVZzKHQpLGZ1bmN0aW9uKCl7aWYoLS10PDEpcmV0dXJuIG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sQm4uYXJ5PVhhLEJuLmFzc2lnbj1xcyxCbi5hc3NpZ25Jbj1ZcyxCbi5hc3NpZ25JbldpdGg9WHMsQm4uYXNzaWduV2l0aD0kcyxCbi5hdD1LcyxCbi5iZWZvcmU9JGEsQm4uYmluZD1LYSxCbi5iaW5kQWxsPVRsLEJuLmJpbmRLZXk9WmEsQm4uY2FzdEFycmF5PWZ1bmN0aW9uIFFsKCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuW107dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBocyh0KT90Olt0XX0sQm4uY2hhaW49SWEsQm4uY2h1bms9ZnVuY3Rpb24gdGMoZSxuLGkpe249KGk/SG8oZSxuLGkpOm49PT10KT8xOmduKFZzKG4pLDApO3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtpZighcnx8bjwxKXJldHVybltdO2Zvcih2YXIgbz0wLGE9MCxzPXZ0KGNuKHIvbikpO288cjspc1thKytdPXdyKGUsbyxvKz1uKTtyZXR1cm4gc30sQm4uY29tcGFjdD1mdW5jdGlvbiBlYyh0KXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsaT0wLHI9W107KytlPG47KXt2YXIgbz10W2VdO28mJihyW2krK109byl9cmV0dXJuIHJ9LEJuLmNvbmNhdD1mdW5jdGlvbiBuYygpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg7aWYoIXQpcmV0dXJuW107Zm9yKHZhciBlPXZ0KHQtMSksbj1hcmd1bWVudHNbMF0saT10O2ktLTspZVtpLTFdPWFyZ3VtZW50c1tpXTtyZXR1cm4gRWUoaHMobik/WHIobik6W25dLERpKGUsMSkpfSxCbi5jb25kPWZ1bmN0aW9uIGljKHQpe3ZhciBuPW51bGw9PXQ/MDp0Lmxlbmd0aCxpPUFvKCk7cmV0dXJuIHQ9bj9NZSh0LChmdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdFsxXSl0aHJvdyBuZXcgQ3QoZSk7cmV0dXJuW2kodFswXSksdFsxXV19KSk6W10sbXIoKGZ1bmN0aW9uKGUpe2Zvcih2YXIgaT0tMTsrK2k8bjspe3ZhciByPXRbaV07aWYocGUoclswXSx0aGlzLGUpKXJldHVybiBwZShyWzFdLHRoaXMsZSl9fSkpfSxCbi5jb25mb3Jtcz1mdW5jdGlvbiByYyh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXt2YXIgZT1ybCh0KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHNpKG4sdCxlKX19KShhaSh0LDEpKX0sQm4uY29uc3RhbnQ9Q2wsQm4uY291bnRCeT16YSxCbi5jcmVhdGU9ZnVuY3Rpb24gb2ModCxlKXt2YXIgbj1Ibih0KTtyZXR1cm4gbnVsbD09ZT9uOm5pKG4sZSl9LEJuLmN1cnJ5PWZ1bmN0aW9uIGUobixpLHIpe3ZhciBvPV9vKG4sOCx0LHQsdCx0LHQsaT1yP3Q6aSk7cmV0dXJuIG8ucGxhY2Vob2xkZXI9ZS5wbGFjZWhvbGRlcixvfSxCbi5jdXJyeVJpZ2h0PWZ1bmN0aW9uIGUobixpLHIpe3ZhciBvPV9vKG4sMTYsdCx0LHQsdCx0LGk9cj90OmkpO3JldHVybiBvLnBsYWNlaG9sZGVyPWUucGxhY2Vob2xkZXIsb30sQm4uZGVib3VuY2U9SmEsQm4uZGVmYXVsdHM9WnMsQm4uZGVmYXVsdHNEZWVwPUpzLEJuLmRlZmVyPVFhLEJuLmRlbGF5PXRzLEJuLmRpZmZlcmVuY2U9c2EsQm4uZGlmZmVyZW5jZUJ5PWxhLEJuLmRpZmZlcmVuY2VXaXRoPWNhLEJuLmRyb3A9ZnVuY3Rpb24gYWMoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtyZXR1cm4gcj93cihlLChuPWl8fG49PT10PzE6VnMobikpPDA/MDpuLHIpOltdfSxCbi5kcm9wUmlnaHQ9ZnVuY3Rpb24gc2MoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtyZXR1cm4gcj93cihlLDAsKG49ci0obj1pfHxuPT09dD8xOlZzKG4pKSk8MD8wOm4pOltdfSxCbi5kcm9wUmlnaHRXaGlsZT1mdW5jdGlvbiBsYyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD9Ocih0LEFvKGUsMyksITAsITApOltdfSxCbi5kcm9wV2hpbGU9ZnVuY3Rpb24gY2ModCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg/TnIodCxBbyhlLDMpLCEwKTpbXX0sQm4uZmlsbD1mdW5jdGlvbiB1YyhlLG4saSxyKXt2YXIgbz1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIG8/KGkmJiJudW1iZXIiIT10eXBlb2YgaSYmSG8oZSxuLGkpJiYoaT0wLHI9byksKGZ1bmN0aW9uIGEoZSxuLGkscil7dmFyIG89ZS5sZW5ndGg7Zm9yKChpPVZzKGkpKTwwJiYoaT0taT5vPzA6bytpKSwocj1yPT09dHx8cj5vP286VnMocikpPDAmJihyKz1vKSxyPWk+cj8wOlVzKHIpO2k8cjspZVtpKytdPW47cmV0dXJuIGV9KShlLG4saSxyKSk6W119LEJuLmZpbHRlcj1mdW5jdGlvbiBoYyh0LGUpe3JldHVybihocyh0KT95ZTp6aSkodCxBbyhlLDMpKX0sQm4uZmxhdE1hcD1mdW5jdGlvbiBkYyh0LGUpe3JldHVybiBEaShHYSh0LGUpLDEpfSxCbi5mbGF0TWFwRGVlcD1mdW5jdGlvbiBwYyh0LGUpe3JldHVybiBEaShHYSh0LGUpLGEpfSxCbi5mbGF0TWFwRGVwdGg9ZnVuY3Rpb24gZmMoZSxuLGkpe3JldHVybiBpPWk9PT10PzE6VnMoaSksRGkoR2EoZSxuKSxpKX0sQm4uZmxhdHRlbj1kYSxCbi5mbGF0dGVuRGVlcD1mdW5jdGlvbiBtYyh0KXtyZXR1cm4gbnVsbCE9dCYmdC5sZW5ndGg/RGkodCxhKTpbXX0sQm4uZmxhdHRlbkRlcHRoPWZ1bmN0aW9uIGdjKGUsbil7cmV0dXJuIG51bGwhPWUmJmUubGVuZ3RoP0RpKGUsbj1uPT09dD8xOlZzKG4pKTpbXX0sQm4uZmxpcD1mdW5jdGlvbiBfYyh0KXtyZXR1cm4gX28odCw1MTIpfSxCbi5mbG93PUFsLEJuLmZsb3dSaWdodD1rbCxCbi5mcm9tUGFpcnM9ZnVuY3Rpb24geWModCl7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLGk9e307KytlPG47KXt2YXIgcj10W2VdO2lbclswXV09clsxXX1yZXR1cm4gaX0sQm4uZnVuY3Rpb25zPWZ1bmN0aW9uIHZjKHQpe3JldHVybiBudWxsPT10P1tdOlVpKHQscmwodCkpfSxCbi5mdW5jdGlvbnNJbj1mdW5jdGlvbiBiYyh0KXtyZXR1cm4gbnVsbD09dD9bXTpVaSh0LG9sKHQpKX0sQm4uZ3JvdXBCeT1WYSxCbi5pbml0aWFsPWZ1bmN0aW9uIHhjKHQpe3JldHVybiBudWxsIT10JiZ0Lmxlbmd0aD93cih0LDAsLTEpOltdfSxCbi5pbnRlcnNlY3Rpb249ZmEsQm4uaW50ZXJzZWN0aW9uQnk9bWEsQm4uaW50ZXJzZWN0aW9uV2l0aD1nYSxCbi5pbnZlcnQ9ZWwsQm4uaW52ZXJ0Qnk9bmwsQm4uaW52b2tlTWFwPVVhLEJuLml0ZXJhdGVlPVBsLEJuLmtleUJ5PWphLEJuLmtleXM9cmwsQm4ua2V5c0luPW9sLEJuLm1hcD1HYSxCbi5tYXBLZXlzPWZ1bmN0aW9uIHdjKHQsZSl7dmFyIG49e307cmV0dXJuIGU9QW8oZSwzKSxGaSh0LChmdW5jdGlvbih0LGkscil7aWkobixlKHQsaSxyKSx0KX0pKSxufSxCbi5tYXBWYWx1ZXM9ZnVuY3Rpb24gU2ModCxlKXt2YXIgbj17fTtyZXR1cm4gZT1BbyhlLDMpLEZpKHQsKGZ1bmN0aW9uKHQsaSxyKXtpaShuLGksZSh0LGkscikpfSkpLG59LEJuLm1hdGNoZXM9ZnVuY3Rpb24gTWModCl7cmV0dXJuIG9yKGFpKHQsMSkpfSxCbi5tYXRjaGVzUHJvcGVydHk9ZnVuY3Rpb24gRWModCxlKXtyZXR1cm4gYXIodCxhaShlLDEpKX0sQm4ubWVtb2l6ZT1lcyxCbi5tZXJnZT1hbCxCbi5tZXJnZVdpdGg9c2wsQm4ubWV0aG9kPU5sLEJuLm1ldGhvZE9mPUlsLEJuLm1peGluPVJsLEJuLm5lZ2F0ZT1ucyxCbi5udGhBcmc9ZnVuY3Rpb24gVGModCl7cmV0dXJuIHQ9VnModCksbXIoKGZ1bmN0aW9uKGUpe3JldHVybiBscihlLHQpfSkpfSxCbi5vbWl0PWxsLEJuLm9taXRCeT1mdW5jdGlvbiBDYyh0LGUpe3JldHVybiB1bCh0LG5zKEFvKGUpKSl9LEJuLm9uY2U9ZnVuY3Rpb24gQWModCl7cmV0dXJuICRhKDIsdCl9LEJuLm9yZGVyQnk9ZnVuY3Rpb24ga2MoZSxuLGkscil7cmV0dXJuIG51bGw9PWU/W106KGhzKG4pfHwobj1udWxsPT1uP1tdOltuXSksaHMoaT1yP3Q6aSl8fChpPW51bGw9PWk/W106W2ldKSxjcihlLG4saSkpfSxCbi5vdmVyPXpsLEJuLm92ZXJBcmdzPWlzLEJuLm92ZXJFdmVyeT1EbCxCbi5vdmVyU29tZT1CbCxCbi5wYXJ0aWFsPXJzLEJuLnBhcnRpYWxSaWdodD1vcyxCbi5wYXJ0aXRpb249V2EsQm4ucGljaz1jbCxCbi5waWNrQnk9dWwsQm4ucHJvcGVydHk9SGwsQm4ucHJvcGVydHlPZj1mdW5jdGlvbiBMYyhlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG51bGw9PWU/dDpqaShlLG4pfX0sQm4ucHVsbD15YSxCbi5wdWxsQWxsPXZhLEJuLnB1bGxBbGxCeT1mdW5jdGlvbiBQYyh0LGUsbil7cmV0dXJuIHQmJnQubGVuZ3RoJiZlJiZlLmxlbmd0aD9ocih0LGUsQW8obiwyKSk6dH0sQm4ucHVsbEFsbFdpdGg9ZnVuY3Rpb24gTmMoZSxuLGkpe3JldHVybiBlJiZlLmxlbmd0aCYmbiYmbi5sZW5ndGg/aHIoZSxuLHQsaSk6ZX0sQm4ucHVsbEF0PWJhLEJuLnJhbmdlPUZsLEJuLnJhbmdlUmlnaHQ9VmwsQm4ucmVhcmc9YXMsQm4ucmVqZWN0PWZ1bmN0aW9uIEljKHQsZSl7cmV0dXJuKGhzKHQpP3llOnppKSh0LG5zKEFvKGUsMykpKX0sQm4ucmVtb3ZlPWZ1bmN0aW9uIFJjKHQsZSl7dmFyIG49W107aWYoIXR8fCF0Lmxlbmd0aClyZXR1cm4gbjt2YXIgaT0tMSxyPVtdLG89dC5sZW5ndGg7Zm9yKGU9QW8oZSwzKTsrK2k8bzspe3ZhciBhPXRbaV07ZShhLGksdCkmJihuLnB1c2goYSksci5wdXNoKGkpKX1yZXR1cm4gZHIodCxyKSxufSxCbi5yZXN0PWZ1bmN0aW9uIE9jKG4saSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEN0KGUpO3JldHVybiBtcihuLGk9aT09PXQ/aTpWcyhpKSl9LEJuLnJldmVyc2U9eGEsQm4uc2FtcGxlU2l6ZT1mdW5jdGlvbiB6YyhlLG4saSl7cmV0dXJuIG49KGk/SG8oZSxuLGkpOm49PT10KT8xOlZzKG4pLChocyhlKT9LbjpfcikoZSxuKX0sQm4uc2V0PWZ1bmN0aW9uIERjKHQsZSxuKXtyZXR1cm4gbnVsbD09dD90OnlyKHQsZSxuKX0sQm4uc2V0V2l0aD1mdW5jdGlvbiBCYyhlLG4saSxyKXtyZXR1cm4gcj0iZnVuY3Rpb24iPT10eXBlb2Ygcj9yOnQsbnVsbD09ZT9lOnlyKGUsbixpLHIpfSxCbi5zaHVmZmxlPWZ1bmN0aW9uIEhjKHQpe3JldHVybihocyh0KT9abjp4cikodCl9LEJuLnNsaWNlPWZ1bmN0aW9uIEZjKGUsbixpKXt2YXIgcj1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIHI/KGkmJiJudW1iZXIiIT10eXBlb2YgaSYmSG8oZSxuLGkpPyhuPTAsaT1yKToobj1udWxsPT1uPzA6VnMobiksaT1pPT09dD9yOlZzKGkpKSx3cihlLG4saSkpOltdfSxCbi5zb3J0Qnk9cWEsQm4uc29ydGVkVW5pcT1mdW5jdGlvbiBWYyh0KXtyZXR1cm4gdCYmdC5sZW5ndGg/VHIodCk6W119LEJuLnNvcnRlZFVuaXFCeT1mdW5jdGlvbiBVYyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD9Ucih0LEFvKGUsMikpOltdfSxCbi5zcGxpdD1mdW5jdGlvbiBqYyhlLG4saSl7cmV0dXJuIGkmJiJudW1iZXIiIT10eXBlb2YgaSYmSG8oZSxuLGkpJiYobj1pPXQpLChpPWk9PT10P2M6aT4+PjApPyhlPVdzKGUpKSYmKCJzdHJpbmciPT10eXBlb2Ygbnx8bnVsbCE9biYmIWtzKG4pKSYmIShuPUFyKG4pKSYmWmUoZSk/RnIob24oZSksMCxpKTplLnNwbGl0KG4saSk6W119LEJuLnNwcmVhZD1mdW5jdGlvbiBHYyh0LG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBDdChlKTtyZXR1cm4gbj1udWxsPT1uPzA6Z24oVnMobiksMCksbXIoKGZ1bmN0aW9uKGUpe3ZhciBpPWVbbl0scj1GcihlLDAsbik7cmV0dXJuIGkmJkVlKHIsaSkscGUodCx0aGlzLHIpfSkpfSxCbi50YWlsPWZ1bmN0aW9uIFdjKHQpe3ZhciBlPW51bGw9PXQ/MDp0Lmxlbmd0aDtyZXR1cm4gZT93cih0LDEsZSk6W119LEJuLnRha2U9ZnVuY3Rpb24gcWMoZSxuLGkpe3JldHVybiBlJiZlLmxlbmd0aD93cihlLDAsKG49aXx8bj09PXQ/MTpWcyhuKSk8MD8wOm4pOltdfSxCbi50YWtlUmlnaHQ9ZnVuY3Rpb24gWWMoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtyZXR1cm4gcj93cihlLChuPXItKG49aXx8bj09PXQ/MTpWcyhuKSkpPDA/MDpuLHIpOltdfSxCbi50YWtlUmlnaHRXaGlsZT1mdW5jdGlvbiBYYyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD9Ocih0LEFvKGUsMyksITEsITApOltdfSxCbi50YWtlV2hpbGU9ZnVuY3Rpb24gJGModCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg/TnIodCxBbyhlLDMpKTpbXX0sQm4udGFwPWZ1bmN0aW9uIEtjKHQsZSl7cmV0dXJuIGUodCksdH0sQm4udGhyb3R0bGU9ZnVuY3Rpb24gWmModCxuLGkpe3ZhciByPSEwLG89ITA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEN0KGUpO3JldHVybiBTcyhpKSYmKHI9ImxlYWRpbmciaW4gaT8hIWkubGVhZGluZzpyLG89InRyYWlsaW5nImluIGk/ISFpLnRyYWlsaW5nOm8pLEphKHQsbix7bGVhZGluZzpyLG1heFdhaXQ6bix0cmFpbGluZzpvfSl9LEJuLnRocnU9UmEsQm4udG9BcnJheT1IcyxCbi50b1BhaXJzPWhsLEJuLnRvUGFpcnNJbj1kbCxCbi50b1BhdGg9ZnVuY3Rpb24gSmModCl7cmV0dXJuIGhzKHQpP01lKHQscmEpOlJzKHQpP1t0XTpYcihuYShXcyh0KSkpfSxCbi50b1BsYWluT2JqZWN0PUdzLEJuLnRyYW5zZm9ybT1mdW5jdGlvbiBRYyh0LGUsbil7dmFyIGk9aHModCkscj1pfHxncyh0KXx8T3ModCk7aWYoZT1BbyhlLDQpLG51bGw9PW4pe3ZhciBvPXQmJnQuY29uc3RydWN0b3I7bj1yP2k/bmV3IG86W106U3ModCkmJmJzKG8pP0huKFF0KHQpKTp7fX1yZXR1cm4ocj9tZTpGaSkodCwoZnVuY3Rpb24odCxpLHIpe3JldHVybiBlKG4sdCxpLHIpfSkpLG59LEJuLnVuYXJ5PWZ1bmN0aW9uIHR1KHQpe3JldHVybiBYYSh0LDEpfSxCbi51bmlvbj13YSxCbi51bmlvbkJ5PVNhLEJuLnVuaW9uV2l0aD1NYSxCbi51bmlxPWZ1bmN0aW9uIGV1KHQpe3JldHVybiB0JiZ0Lmxlbmd0aD9rcih0KTpbXX0sQm4udW5pcUJ5PWZ1bmN0aW9uIG51KHQsZSl7cmV0dXJuIHQmJnQubGVuZ3RoP2tyKHQsQW8oZSwyKSk6W119LEJuLnVuaXFXaXRoPWZ1bmN0aW9uIGl1KGUsbil7cmV0dXJuIG49ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjp0LGUmJmUubGVuZ3RoP2tyKGUsdCxuKTpbXX0sQm4udW5zZXQ9ZnVuY3Rpb24gcnUodCxlKXtyZXR1cm4gbnVsbD09dHx8THIodCxlKX0sQm4udW56aXA9RWEsQm4udW56aXBXaXRoPVRhLEJuLnVwZGF0ZT1mdW5jdGlvbiBvdSh0LGUsbil7cmV0dXJuIG51bGw9PXQ/dDpQcih0LGUsRHIobikpfSxCbi51cGRhdGVXaXRoPWZ1bmN0aW9uIGF1KGUsbixpLHIpe3JldHVybiByPSJmdW5jdGlvbiI9PXR5cGVvZiByP3I6dCxudWxsPT1lP2U6UHIoZSxuLERyKGkpLHIpfSxCbi52YWx1ZXM9cGwsQm4udmFsdWVzSW49ZnVuY3Rpb24gc3UodCl7cmV0dXJuIG51bGw9PXQ/W106amUodCxvbCh0KSl9LEJuLndpdGhvdXQ9Q2EsQm4ud29yZHM9TWwsQm4ud3JhcD1mdW5jdGlvbiBsdSh0LGUpe3JldHVybiBycyhEcihlKSx0KX0sQm4ueG9yPUFhLEJuLnhvckJ5PWthLEJuLnhvcldpdGg9TGEsQm4uemlwPVBhLEJuLnppcE9iamVjdD1mdW5jdGlvbiBjdSh0LGUpe3JldHVybiBPcih0fHxbXSxlfHxbXSxRbil9LEJuLnppcE9iamVjdERlZXA9ZnVuY3Rpb24gdXUodCxlKXtyZXR1cm4gT3IodHx8W10sZXx8W10seXIpfSxCbi56aXBXaXRoPU5hLEJuLmVudHJpZXM9aGwsQm4uZW50cmllc0luPWRsLEJuLmV4dGVuZD1ZcyxCbi5leHRlbmRXaXRoPVhzLFJsKEJuLEJuKSxCbi5hZGQ9V2wsQm4uYXR0ZW1wdD1FbCxCbi5jYW1lbENhc2U9ZmwsQm4uY2FwaXRhbGl6ZT1tbCxCbi5jZWlsPXFsLEJuLmNsYW1wPWZ1bmN0aW9uIGh1KGUsbixpKXtyZXR1cm4gaT09PXQmJihpPW4sbj10KSxpIT09dCYmKGk9KGk9anMoaSkpPT1pP2k6MCksbiE9PXQmJihuPShuPWpzKG4pKT09bj9uOjApLG9pKGpzKGUpLG4saSl9LEJuLmNsb25lPWZ1bmN0aW9uIGR1KHQpe3JldHVybiBhaSh0LDQpfSxCbi5jbG9uZURlZXA9ZnVuY3Rpb24gcHUodCl7cmV0dXJuIGFpKHQsNSl9LEJuLmNsb25lRGVlcFdpdGg9ZnVuY3Rpb24gZnUoZSxuKXtyZXR1cm4gYWkoZSw1LG49ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjp0KX0sQm4uY2xvbmVXaXRoPWZ1bmN0aW9uIG11KGUsbil7cmV0dXJuIGFpKGUsNCxuPSJmdW5jdGlvbiI9PXR5cGVvZiBuP246dCl9LEJuLmNvbmZvcm1zVG89ZnVuY3Rpb24gZ3UodCxlKXtyZXR1cm4gbnVsbD09ZXx8c2kodCxlLHJsKGUpKX0sQm4uZGVidXJyPWdsLEJuLmRlZmF1bHRUbz1mdW5jdGlvbiBfdSh0LGUpe3JldHVybiBudWxsPT10fHx0IT10P2U6dH0sQm4uZGl2aWRlPVlsLEJuLmVuZHNXaXRoPWZ1bmN0aW9uIHl1KGUsbixpKXtlPVdzKGUpLG49QXIobik7dmFyIHI9ZS5sZW5ndGgsbz1pPWk9PT10P3I6b2koVnMoaSksMCxyKTtyZXR1cm4oaS09bi5sZW5ndGgpPj0wJiZlLnNsaWNlKGksbyk9PW59LEJuLmVxPXNzLEJuLmVzY2FwZT1mdW5jdGlvbiB2dSh0KXtyZXR1cm4odD1Xcyh0KSkmJkcudGVzdCh0KT90LnJlcGxhY2UoVSwkZSk6dH0sQm4uZXNjYXBlUmVnRXhwPWZ1bmN0aW9uIGJ1KHQpe3JldHVybih0PVdzKHQpKSYmSi50ZXN0KHQpP3QucmVwbGFjZShaLCJcXCQmIik6dH0sQm4uZXZlcnk9ZnVuY3Rpb24geHUoZSxuLGkpe3ZhciByPWhzKGUpP19lOlJpO3JldHVybiBpJiZIbyhlLG4saSkmJihuPXQpLHIoZSxBbyhuLDMpKX0sQm4uZmluZD1EYSxCbi5maW5kSW5kZXg9dWEsQm4uZmluZEtleT1mdW5jdGlvbiB3dSh0LGUpe3JldHVybiBMZSh0LEFvKGUsMyksRmkpfSxCbi5maW5kTGFzdD1CYSxCbi5maW5kTGFzdEluZGV4PWhhLEJuLmZpbmRMYXN0S2V5PWZ1bmN0aW9uIFN1KHQsZSl7cmV0dXJuIExlKHQsQW8oZSwzKSxWaSl9LEJuLmZsb29yPVhsLEJuLmZvckVhY2g9SGEsQm4uZm9yRWFjaFJpZ2h0PUZhLEJuLmZvckluPWZ1bmN0aW9uIE11KHQsZSl7cmV0dXJuIG51bGw9PXQ/dDpCaSh0LEFvKGUsMyksb2wpfSxCbi5mb3JJblJpZ2h0PWZ1bmN0aW9uIEV1KHQsZSl7cmV0dXJuIG51bGw9PXQ/dDpIaSh0LEFvKGUsMyksb2wpfSxCbi5mb3JPd249ZnVuY3Rpb24gVHUodCxlKXtyZXR1cm4gdCYmRmkodCxBbyhlLDMpKX0sQm4uZm9yT3duUmlnaHQ9ZnVuY3Rpb24gQ3UodCxlKXtyZXR1cm4gdCYmVmkodCxBbyhlLDMpKX0sQm4uZ2V0PVFzLEJuLmd0PWxzLEJuLmd0ZT1jcyxCbi5oYXM9ZnVuY3Rpb24gQXUodCxlKXtyZXR1cm4gbnVsbCE9dCYmT28odCxlLFlpKX0sQm4uaGFzSW49dGwsQm4uaGVhZD1wYSxCbi5pZGVudGl0eT1MbCxCbi5pbmNsdWRlcz1mdW5jdGlvbiBrdSh0LGUsbixpKXt0PWZzKHQpP3Q6cGwodCksbj1uJiYhaT9WcyhuKTowO3ZhciByPXQubGVuZ3RoO3JldHVybiBuPDAmJihuPWduKHIrbiwwKSksSXModCk/bjw9ciYmdC5pbmRleE9mKGUsbik+LTE6ISFyJiZOZSh0LGUsbik+LTF9LEJuLmluZGV4T2Y9ZnVuY3Rpb24gTHUodCxlLG4pe3ZhciBpPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZighaSlyZXR1cm4tMTt2YXIgcj1udWxsPT1uPzA6VnMobik7cmV0dXJuIHI8MCYmKHI9Z24oaStyLDApKSxOZSh0LGUscil9LEJuLmluUmFuZ2U9ZnVuY3Rpb24gUHUoZSxuLGkpe3JldHVybiBuPUZzKG4pLGk9PT10PyhpPW4sbj0wKTppPUZzKGkpLChmdW5jdGlvbiByKHQsZSxuKXtyZXR1cm4gdD49X24oZSxuKSYmdDxnbihlLG4pfSkoZT1qcyhlKSxuLGkpfSxCbi5pbnZva2U9aWwsQm4uaXNBcmd1bWVudHM9dXMsQm4uaXNBcnJheT1ocyxCbi5pc0FycmF5QnVmZmVyPWRzLEJuLmlzQXJyYXlMaWtlPWZzLEJuLmlzQXJyYXlMaWtlT2JqZWN0PW1zLEJuLmlzQm9vbGVhbj1mdW5jdGlvbiBOdSh0KXtyZXR1cm4hMD09PXR8fCExPT09dHx8TXModCkmJldpKHQpPT1wfSxCbi5pc0J1ZmZlcj1ncyxCbi5pc0RhdGU9X3MsQm4uaXNFbGVtZW50PWZ1bmN0aW9uIEl1KHQpe3JldHVybiBNcyh0KSYmMT09PXQubm9kZVR5cGUmJiFBcyh0KX0sQm4uaXNFbXB0eT1mdW5jdGlvbiBSdSh0KXtpZihudWxsPT10KXJldHVybiEwO2lmKGZzKHQpJiYoaHModCl8fCJzdHJpbmciPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQuc3BsaWNlfHxncyh0KXx8T3ModCl8fHVzKHQpKSlyZXR1cm4hdC5sZW5ndGg7dmFyIGU9Um8odCk7aWYoZT09eXx8ZT09UylyZXR1cm4hdC5zaXplO2lmKGpvKHQpKXJldHVybiFucih0KS5sZW5ndGg7Zm9yKHZhciBuIGluIHQpaWYoTnQuY2FsbCh0LG4pKXJldHVybiExO3JldHVybiEwfSxCbi5pc0VxdWFsPWZ1bmN0aW9uIE91KHQsZSl7cmV0dXJuIEppKHQsZSl9LEJuLmlzRXF1YWxXaXRoPWZ1bmN0aW9uIHp1KGUsbixpKXt2YXIgcj0oaT0iZnVuY3Rpb24iPT10eXBlb2YgaT9pOnQpP2koZSxuKTp0O3JldHVybiByPT09dD9KaShlLG4sdCxpKTohIXJ9LEJuLmlzRXJyb3I9dnMsQm4uaXNGaW5pdGU9ZnVuY3Rpb24gRHUodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZwbih0KX0sQm4uaXNGdW5jdGlvbj1icyxCbi5pc0ludGVnZXI9eHMsQm4uaXNMZW5ndGg9d3MsQm4uaXNNYXA9RXMsQm4uaXNNYXRjaD1mdW5jdGlvbiBCdSh0LGUpe3JldHVybiB0PT09ZXx8UWkodCxlLExvKGUpKX0sQm4uaXNNYXRjaFdpdGg9ZnVuY3Rpb24gSHUoZSxuLGkpe3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiBpP2k6dCxRaShlLG4sTG8obiksaSl9LEJuLmlzTmFOPWZ1bmN0aW9uIEZ1KHQpe3JldHVybiBDcyh0KSYmdCE9K3R9LEJuLmlzTmF0aXZlPWZ1bmN0aW9uIFZ1KHQpe2lmKFVvKHQpKXRocm93IG5ldyB4dCgiVW5zdXBwb3J0ZWQgY29yZS1qcyB1c2UuIFRyeSBodHRwczovL25wbXMuaW8vc2VhcmNoP3E9cG9ueWZpbGwuIik7cmV0dXJuIHRyKHQpfSxCbi5pc05pbD1mdW5jdGlvbiBVdSh0KXtyZXR1cm4gbnVsbD09dH0sQm4uaXNOdWxsPWZ1bmN0aW9uIGp1KHQpe3JldHVybiBudWxsPT09dH0sQm4uaXNOdW1iZXI9Q3MsQm4uaXNPYmplY3Q9U3MsQm4uaXNPYmplY3RMaWtlPU1zLEJuLmlzUGxhaW5PYmplY3Q9QXMsQm4uaXNSZWdFeHA9a3MsQm4uaXNTYWZlSW50ZWdlcj1mdW5jdGlvbiBHdSh0KXtyZXR1cm4geHModCkmJnQ+PS05MDA3MTk5MjU0NzQwOTkxJiZ0PD1zfSxCbi5pc1NldD1QcyxCbi5pc1N0cmluZz1JcyxCbi5pc1N5bWJvbD1ScyxCbi5pc1R5cGVkQXJyYXk9T3MsQm4uaXNVbmRlZmluZWQ9ZnVuY3Rpb24gV3UoZSl7cmV0dXJuIGU9PT10fSxCbi5pc1dlYWtNYXA9ZnVuY3Rpb24gcXUodCl7cmV0dXJuIE1zKHQpJiZSbyh0KT09VH0sQm4uaXNXZWFrU2V0PWZ1bmN0aW9uIFl1KHQpe3JldHVybiBNcyh0KSYmIltvYmplY3QgV2Vha1NldF0iPT1XaSh0KX0sQm4uam9pbj1mdW5jdGlvbiBYdSh0LGUpe3JldHVybiBudWxsPT10PyIiOmZuLmNhbGwodCxlKX0sQm4ua2ViYWJDYXNlPV9sLEJuLmxhc3Q9X2EsQm4ubGFzdEluZGV4T2Y9ZnVuY3Rpb24gJHUoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtpZighcilyZXR1cm4tMTt2YXIgbz1yO3JldHVybiBpIT09dCYmKG89KG89VnMoaSkpPDA/Z24ocitvLDApOl9uKG8sci0xKSksbj09bj8oZnVuY3Rpb24gYSh0LGUsbil7Zm9yKHZhciBpPW4rMTtpLS07KWlmKHRbaV09PT1lKXJldHVybiBpO3JldHVybiBpfSkoZSxuLG8pOlBlKGUsUmUsbywhMCl9LEJuLmxvd2VyQ2FzZT15bCxCbi5sb3dlckZpcnN0PXZsLEJuLmx0PURzLEJuLmx0ZT1CcyxCbi5tYXg9ZnVuY3Rpb24gS3UoZSl7cmV0dXJuIGUmJmUubGVuZ3RoP09pKGUsTGwscWkpOnR9LEJuLm1heEJ5PWZ1bmN0aW9uIFp1KGUsbil7cmV0dXJuIGUmJmUubGVuZ3RoP09pKGUsQW8obiwyKSxxaSk6dH0sQm4ubWVhbj1mdW5jdGlvbiBKdSh0KXtyZXR1cm4gT2UodCxMbCl9LEJuLm1lYW5CeT1mdW5jdGlvbiBRdSh0LGUpe3JldHVybiBPZSh0LEFvKGUsMikpfSxCbi5taW49ZnVuY3Rpb24gdGgoZSl7cmV0dXJuIGUmJmUubGVuZ3RoP09pKGUsTGwsaXIpOnR9LEJuLm1pbkJ5PWZ1bmN0aW9uIGVoKGUsbil7cmV0dXJuIGUmJmUubGVuZ3RoP09pKGUsQW8obiwyKSxpcik6dH0sQm4uc3R1YkFycmF5PVVsLEJuLnN0dWJGYWxzZT1qbCxCbi5zdHViT2JqZWN0PWZ1bmN0aW9uIG5oKCl7cmV0dXJue319LEJuLnN0dWJTdHJpbmc9ZnVuY3Rpb24gaWgoKXtyZXR1cm4iIn0sQm4uc3R1YlRydWU9ZnVuY3Rpb24gcmgoKXtyZXR1cm4hMH0sQm4ubXVsdGlwbHk9JGwsQm4ubnRoPWZ1bmN0aW9uIG9oKGUsbil7cmV0dXJuIGUmJmUubGVuZ3RoP2xyKGUsVnMobikpOnR9LEJuLm5vQ29uZmxpY3Q9ZnVuY3Rpb24gYWgoKXtyZXR1cm4gZWUuXz09PXRoaXMmJihlZS5fPUR0KSx0aGlzfSxCbi5ub29wPU9sLEJuLm5vdz1ZYSxCbi5wYWQ9ZnVuY3Rpb24gc2godCxlLG4pe3Q9V3ModCk7dmFyIGk9KGU9VnMoZSkpP3JuKHQpOjA7aWYoIWV8fGk+PWUpcmV0dXJuIHQ7dmFyIHI9KGUtaSkvMjtyZXR1cm4gY28odW4ociksbikrdCtjbyhjbihyKSxuKX0sQm4ucGFkRW5kPWZ1bmN0aW9uIGxoKHQsZSxuKXt0PVdzKHQpO3ZhciBpPShlPVZzKGUpKT9ybih0KTowO3JldHVybiBlJiZpPGU/dCtjbyhlLWksbik6dH0sQm4ucGFkU3RhcnQ9ZnVuY3Rpb24gY2godCxlLG4pe3Q9V3ModCk7dmFyIGk9KGU9VnMoZSkpP3JuKHQpOjA7cmV0dXJuIGUmJmk8ZT9jbyhlLWksbikrdDp0fSxCbi5wYXJzZUludD1mdW5jdGlvbiB1aCh0LGUsbil7cmV0dXJuIG58fG51bGw9PWU/ZT0wOmUmJihlPStlKSx2bihXcyh0KS5yZXBsYWNlKFEsIiIpLGV8fDApfSxCbi5yYW5kb209ZnVuY3Rpb24gaGgoZSxuLGkpe2lmKGkmJiJib29sZWFuIiE9dHlwZW9mIGkmJkhvKGUsbixpKSYmKG49aT10KSxpPT09dCYmKCJib29sZWFuIj09dHlwZW9mIG4/KGk9bixuPXQpOiJib29sZWFuIj09dHlwZW9mIGUmJihpPWUsZT10KSksZT09PXQmJm49PT10PyhlPTAsbj0xKTooZT1GcyhlKSxuPT09dD8obj1lLGU9MCk6bj1GcyhuKSksZT5uKXt2YXIgcj1lO2U9bixuPXJ9aWYoaXx8ZSUxfHxuJTEpe3ZhciBvPWJuKCk7cmV0dXJuIF9uKGUrbyoobi1lK1p0KCIxZS0iKygobysiIikubGVuZ3RoLTEpKSksbil9cmV0dXJuIHByKGUsbil9LEJuLnJlZHVjZT1mdW5jdGlvbiBkaCh0LGUsbil7dmFyIGk9aHModCk/VGU6QmUscj1hcmd1bWVudHMubGVuZ3RoPDM7cmV0dXJuIGkodCxBbyhlLDQpLG4scixOaSl9LEJuLnJlZHVjZVJpZ2h0PWZ1bmN0aW9uIHBoKHQsZSxuKXt2YXIgaT1ocyh0KT9DZTpCZSxyPWFyZ3VtZW50cy5sZW5ndGg8MztyZXR1cm4gaSh0LEFvKGUsNCksbixyLElpKX0sQm4ucmVwZWF0PWZ1bmN0aW9uIGZoKGUsbixpKXtyZXR1cm4gbj0oaT9IbyhlLG4saSk6bj09PXQpPzE6VnMobiksZnIoV3MoZSksbil9LEJuLnJlcGxhY2U9ZnVuY3Rpb24gbWgoKXt2YXIgdD1hcmd1bWVudHMsZT1Xcyh0WzBdKTtyZXR1cm4gdC5sZW5ndGg8Mz9lOmUucmVwbGFjZSh0WzFdLHRbMl0pfSxCbi5yZXN1bHQ9ZnVuY3Rpb24gZ2goZSxuLGkpe3ZhciByPS0xLG89KG49QnIobixlKSkubGVuZ3RoO2ZvcihvfHwobz0xLGU9dCk7KytyPG87KXt2YXIgYT1udWxsPT1lP3Q6ZVtyYShuW3JdKV07YT09PXQmJihyPW8sYT1pKSxlPWJzKGEpP2EuY2FsbChlKTphfXJldHVybiBlfSxCbi5yb3VuZD1LbCxCbi5ydW5JbkNvbnRleHQ9dHQsQm4uc2FtcGxlPWZ1bmN0aW9uIF9oKHQpe3JldHVybihocyh0KT8kbjpncikodCl9LEJuLnNpemU9ZnVuY3Rpb24geWgodCl7aWYobnVsbD09dClyZXR1cm4gMDtpZihmcyh0KSlyZXR1cm4gSXModCk/cm4odCk6dC5sZW5ndGg7dmFyIGU9Um8odCk7cmV0dXJuIGU9PXl8fGU9PVM/dC5zaXplOm5yKHQpLmxlbmd0aH0sQm4uc25ha2VDYXNlPWJsLEJuLnNvbWU9ZnVuY3Rpb24gdmgoZSxuLGkpe3ZhciByPWhzKGUpP0FlOlNyO3JldHVybiBpJiZIbyhlLG4saSkmJihuPXQpLHIoZSxBbyhuLDMpKX0sQm4uc29ydGVkSW5kZXg9ZnVuY3Rpb24gYmgodCxlKXtyZXR1cm4gTXIodCxlKX0sQm4uc29ydGVkSW5kZXhCeT1mdW5jdGlvbiB4aCh0LGUsbil7cmV0dXJuIEVyKHQsZSxBbyhuLDIpKX0sQm4uc29ydGVkSW5kZXhPZj1mdW5jdGlvbiB3aCh0LGUpe3ZhciBuPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZihuKXt2YXIgaT1Ncih0LGUpO2lmKGk8biYmc3ModFtpXSxlKSlyZXR1cm4gaX1yZXR1cm4tMX0sQm4uc29ydGVkTGFzdEluZGV4PWZ1bmN0aW9uIFNoKHQsZSl7cmV0dXJuIE1yKHQsZSwhMCl9LEJuLnNvcnRlZExhc3RJbmRleEJ5PWZ1bmN0aW9uIE1oKHQsZSxuKXtyZXR1cm4gRXIodCxlLEFvKG4sMiksITApfSxCbi5zb3J0ZWRMYXN0SW5kZXhPZj1mdW5jdGlvbiBFaCh0LGUpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXt2YXIgbj1Ncih0LGUsITApLTE7aWYoc3ModFtuXSxlKSlyZXR1cm4gbn1yZXR1cm4tMX0sQm4uc3RhcnRDYXNlPXhsLEJuLnN0YXJ0c1dpdGg9ZnVuY3Rpb24gVGgodCxlLG4pe3JldHVybiB0PVdzKHQpLG49bnVsbD09bj8wOm9pKFZzKG4pLDAsdC5sZW5ndGgpLGU9QXIoZSksdC5zbGljZShuLG4rZS5sZW5ndGgpPT1lfSxCbi5zdWJ0cmFjdD1abCxCbi5zdW09ZnVuY3Rpb24gQ2godCl7cmV0dXJuIHQmJnQubGVuZ3RoP0hlKHQsTGwpOjB9LEJuLnN1bUJ5PWZ1bmN0aW9uIEFoKHQsZSl7cmV0dXJuIHQmJnQubGVuZ3RoP0hlKHQsQW8oZSwyKSk6MH0sQm4udGVtcGxhdGU9ZnVuY3Rpb24ga2goZSxuLGkpe3ZhciByPUJuLnRlbXBsYXRlU2V0dGluZ3M7aSYmSG8oZSxuLGkpJiYobj10KSxlPVdzKGUpLG49WHMoe30sbixyLHlvKTt2YXIgbyxhLHM9WHMoe30sbi5pbXBvcnRzLHIuaW1wb3J0cyx5byksbD1ybChzKSxjPWplKHMsbCksdT0wLGg9bi5pbnRlcnBvbGF0ZXx8bXQsZD0iX19wICs9ICciLHA9RXQoKG4uZXNjYXBlfHxtdCkuc291cmNlKyJ8IitoLnNvdXJjZSsifCIrKGg9PT1ZP3N0Om10KS5zb3VyY2UrInwiKyhuLmV2YWx1YXRlfHxtdCkuc291cmNlKyJ8JCIsImciKSxmPSIvLyMgc291cmNlVVJMPSIrKE50LmNhbGwobiwic291cmNlVVJMIik/KG4uc291cmNlVVJMKyIiKS5yZXBsYWNlKC9ccy9nLCIgIik6ImxvZGFzaC50ZW1wbGF0ZVNvdXJjZXNbIisgKytZdCsiXSIpKyJcbiI7ZS5yZXBsYWNlKHAsKGZ1bmN0aW9uKHQsbixpLHIscyxsKXtyZXR1cm4gaXx8KGk9ciksZCs9ZS5zbGljZSh1LGwpLnJlcGxhY2UoZ3QsS2UpLG4mJihvPSEwLGQrPSInICtcbl9fZSgiK24rIikgK1xuJyIpLHMmJihhPSEwLGQrPSInO1xuIitzKyI7XG5fX3AgKz0gJyIpLGkmJihkKz0iJyArXG4oKF9fdCA9ICgiK2krIikpID09IG51bGwgPyAnJyA6IF9fdCkgK1xuJyIpLHU9bCt0Lmxlbmd0aCx0fSkpLGQrPSInO1xuIjt2YXIgbT1OdC5jYWxsKG4sInZhcmlhYmxlIikmJm4udmFyaWFibGU7aWYobSl7aWYob3QudGVzdChtKSl0aHJvdyBuZXcgeHQoIkludmFsaWQgYHZhcmlhYmxlYCBvcHRpb24gcGFzc2VkIGludG8gYF8udGVtcGxhdGVgIil9ZWxzZSBkPSJ3aXRoIChvYmopIHtcbiIrZCsiXG59XG4iO2Q9KGE/ZC5yZXBsYWNlKEIsIiIpOmQpLnJlcGxhY2UoSCwiJDEiKS5yZXBsYWNlKEYsIiQxOyIpLGQ9ImZ1bmN0aW9uKCIrKG18fCJvYmoiKSsiKSB7XG4iKyhtPyIiOiJvYmogfHwgKG9iaiA9IHt9KTtcbiIpKyJ2YXIgX190LCBfX3AgPSAnJyIrKG8/IiwgX19lID0gXy5lc2NhcGUiOiIiKSsoYT8iLCBfX2ogPSBBcnJheS5wcm90b3R5cGUuam9pbjtcbmZ1bmN0aW9uIHByaW50KCkgeyBfX3AgKz0gX19qLmNhbGwoYXJndW1lbnRzLCAnJykgfVxuIjoiO1xuIikrZCsicmV0dXJuIF9fcFxufSI7dmFyIGc9RWwoKGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGwsZisicmV0dXJuICIrZCkuYXBwbHkodCxjKX0pKTtpZihnLnNvdXJjZT1kLHZzKGcpKXRocm93IGc7cmV0dXJuIGd9LEJuLnRpbWVzPWZ1bmN0aW9uIExoKHQsZSl7aWYoKHQ9VnModCkpPDF8fHQ+cylyZXR1cm5bXTt2YXIgbj1jLGk9X24odCxjKTtlPUFvKGUpLHQtPWM7Zm9yKHZhciByPUZlKGksZSk7KytuPHQ7KWUobik7cmV0dXJuIHJ9LEJuLnRvRmluaXRlPUZzLEJuLnRvSW50ZWdlcj1WcyxCbi50b0xlbmd0aD1VcyxCbi50b0xvd2VyPWZ1bmN0aW9uIFBoKHQpe3JldHVybiBXcyh0KS50b0xvd2VyQ2FzZSgpfSxCbi50b051bWJlcj1qcyxCbi50b1NhZmVJbnRlZ2VyPWZ1bmN0aW9uIE5oKHQpe3JldHVybiB0P29pKFZzKHQpLC05MDA3MTk5MjU0NzQwOTkxLHMpOjA9PT10P3Q6MH0sQm4udG9TdHJpbmc9V3MsQm4udG9VcHBlcj1mdW5jdGlvbiBJaCh0KXtyZXR1cm4gV3ModCkudG9VcHBlckNhc2UoKX0sQm4udHJpbT1mdW5jdGlvbiBSaChlLG4saSl7aWYoKGU9V3MoZSkpJiYoaXx8bj09PXQpKXJldHVybiBWZShlKTtpZighZXx8IShuPUFyKG4pKSlyZXR1cm4gZTt2YXIgcj1vbihlKSxvPW9uKG4pO3JldHVybiBGcihyLFdlKHIsbykscWUocixvKSsxKS5qb2luKCIiKX0sQm4udHJpbUVuZD1mdW5jdGlvbiBPaChlLG4saSl7aWYoKGU9V3MoZSkpJiYoaXx8bj09PXQpKXJldHVybiBlLnNsaWNlKDAsYW4oZSkrMSk7aWYoIWV8fCEobj1BcihuKSkpcmV0dXJuIGU7dmFyIHI9b24oZSk7cmV0dXJuIEZyKHIsMCxxZShyLG9uKG4pKSsxKS5qb2luKCIiKX0sQm4udHJpbVN0YXJ0PWZ1bmN0aW9uIHpoKGUsbixpKXtpZigoZT1XcyhlKSkmJihpfHxuPT09dCkpcmV0dXJuIGUucmVwbGFjZShRLCIiKTtpZighZXx8IShuPUFyKG4pKSlyZXR1cm4gZTt2YXIgcj1vbihlKTtyZXR1cm4gRnIocixXZShyLG9uKG4pKSkuam9pbigiIil9LEJuLnRydW5jYXRlPWZ1bmN0aW9uIERoKGUsbil7dmFyIGk9MzAscj0iLi4uIjtpZihTcyhuKSl7dmFyIG89InNlcGFyYXRvciJpbiBuP24uc2VwYXJhdG9yOm87aT0ibGVuZ3RoImluIG4/VnMobi5sZW5ndGgpOmkscj0ib21pc3Npb24iaW4gbj9BcihuLm9taXNzaW9uKTpyfXZhciBhPShlPVdzKGUpKS5sZW5ndGg7aWYoWmUoZSkpe3ZhciBzPW9uKGUpO2E9cy5sZW5ndGh9aWYoaT49YSlyZXR1cm4gZTt2YXIgbD1pLXJuKHIpO2lmKGw8MSlyZXR1cm4gcjt2YXIgYz1zP0ZyKHMsMCxsKS5qb2luKCIiKTplLnNsaWNlKDAsbCk7aWYobz09PXQpcmV0dXJuIGMrcjtpZihzJiYobCs9Yy5sZW5ndGgtbCksa3Mobykpe2lmKGUuc2xpY2UobCkuc2VhcmNoKG8pKXt2YXIgdSxoPWM7Zm9yKG8uZ2xvYmFsfHwobz1FdChvLnNvdXJjZSxXcyhsdC5leGVjKG8pKSsiZyIpKSxvLmxhc3RJbmRleD0wO3U9by5leGVjKGgpOyl2YXIgZD11LmluZGV4O2M9Yy5zbGljZSgwLGQ9PT10P2w6ZCl9fWVsc2UgaWYoZS5pbmRleE9mKEFyKG8pLGwpIT1sKXt2YXIgcD1jLmxhc3RJbmRleE9mKG8pO3A+LTEmJihjPWMuc2xpY2UoMCxwKSl9cmV0dXJuIGMrcn0sQm4udW5lc2NhcGU9ZnVuY3Rpb24gQmgodCl7cmV0dXJuKHQ9V3ModCkpJiZqLnRlc3QodCk/dC5yZXBsYWNlKFYsc24pOnR9LEJuLnVuaXF1ZUlkPWZ1bmN0aW9uIEhoKHQpe3ZhciBlPSsrSXQ7cmV0dXJuIFdzKHQpK2V9LEJuLnVwcGVyQ2FzZT13bCxCbi51cHBlckZpcnN0PVNsLEJuLmVhY2g9SGEsQm4uZWFjaFJpZ2h0PUZhLEJuLmZpcnN0PXBhLFJsKEJuLChHbD17fSxGaShCbiwoZnVuY3Rpb24odCxlKXtOdC5jYWxsKEJuLnByb3RvdHlwZSxlKXx8KEdsW2VdPXQpfSkpLEdsKSx7Y2hhaW46ITF9KSxCbi5WRVJTSU9OPSI0LjE3LjIxIixtZShbImJpbmQiLCJiaW5kS2V5IiwiY3VycnkiLCJjdXJyeVJpZ2h0IiwicGFydGlhbCIsInBhcnRpYWxSaWdodCJdLChmdW5jdGlvbih0KXtCblt0XS5wbGFjZWhvbGRlcj1Cbn0pKSxtZShbImRyb3AiLCJ0YWtlIl0sKGZ1bmN0aW9uKGUsbil7VW4ucHJvdG90eXBlW2VdPWZ1bmN0aW9uKGkpe2k9aT09PXQ/MTpnbihWcyhpKSwwKTt2YXIgcj10aGlzLl9fZmlsdGVyZWRfXyYmIW4/bmV3IFVuKHRoaXMpOnRoaXMuY2xvbmUoKTtyZXR1cm4gci5fX2ZpbHRlcmVkX18/ci5fX3Rha2VDb3VudF9fPV9uKGksci5fX3Rha2VDb3VudF9fKTpyLl9fdmlld3NfXy5wdXNoKHtzaXplOl9uKGksYyksdHlwZTplKyhyLl9fZGlyX188MD8iUmlnaHQiOiIiKX0pLHJ9LFVuLnByb3RvdHlwZVtlKyJSaWdodCJdPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJldmVyc2UoKVtlXSh0KS5yZXZlcnNlKCl9fSkpLG1lKFsiZmlsdGVyIiwibWFwIiwidGFrZVdoaWxlIl0sKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZSsxLGk9MT09bnx8Mz09bjtVbi5wcm90b3R5cGVbdF09ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jbG9uZSgpO3JldHVybiBlLl9faXRlcmF0ZWVzX18ucHVzaCh7aXRlcmF0ZWU6QW8odCwzKSx0eXBlOm59KSxlLl9fZmlsdGVyZWRfXz1lLl9fZmlsdGVyZWRfX3x8aSxlfX0pKSxtZShbImhlYWQiLCJsYXN0Il0sKGZ1bmN0aW9uKHQsZSl7dmFyIG49InRha2UiKyhlPyJSaWdodCI6IiIpO1VuLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3JldHVybiB0aGlzW25dKDEpLnZhbHVlKClbMF19fSkpLG1lKFsiaW5pdGlhbCIsInRhaWwiXSwoZnVuY3Rpb24odCxlKXt2YXIgbj0iZHJvcCIrKGU/IiI6IlJpZ2h0Iik7VW4ucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19maWx0ZXJlZF9fP25ldyBVbih0aGlzKTp0aGlzW25dKDEpfX0pKSxVbi5wcm90b3R5cGUuY29tcGFjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcihMbCl9LFVuLnByb3RvdHlwZS5maW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZpbHRlcih0KS5oZWFkKCl9LFVuLnByb3RvdHlwZS5maW5kTGFzdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZXZlcnNlKCkuZmluZCh0KX0sVW4ucHJvdG90eXBlLmludm9rZU1hcD1tcigoZnVuY3Rpb24odCxlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD9uZXcgVW4odGhpcyk6dGhpcy5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBLaShuLHQsZSl9KSl9KSksVW4ucHJvdG90eXBlLnJlamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5maWx0ZXIobnMoQW8odCkpKX0sVW4ucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKGUsbil7ZT1WcyhlKTt2YXIgaT10aGlzO3JldHVybiBpLl9fZmlsdGVyZWRfXyYmKGU+MHx8bjwwKT9uZXcgVW4oaSk6KGU8MD9pPWkudGFrZVJpZ2h0KC1lKTplJiYoaT1pLmRyb3AoZSkpLG4hPT10JiYoaT0obj1WcyhuKSk8MD9pLmRyb3BSaWdodCgtbik6aS50YWtlKG4tZSkpLGkpfSxVbi5wcm90b3R5cGUudGFrZVJpZ2h0V2hpbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmV2ZXJzZSgpLnRha2VXaGlsZSh0KS5yZXZlcnNlKCl9LFVuLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFrZShjKX0sRmkoVW4ucHJvdG90eXBlLChmdW5jdGlvbihlLG4pe3ZhciBpPS9eKD86ZmlsdGVyfGZpbmR8bWFwfHJlamVjdCl8V2hpbGUkLy50ZXN0KG4pLHI9L14oPzpoZWFkfGxhc3QpJC8udGVzdChuKSxvPUJuW3I/InRha2UiKygibGFzdCI9PW4/IlJpZ2h0IjoiIik6bl0sYT1yfHwvXmZpbmQvLnRlc3Qobik7byYmKEJuLnByb3RvdHlwZVtuXT1mdW5jdGlvbigpe3ZhciBuPXRoaXMuX193cmFwcGVkX18scz1yP1sxXTphcmd1bWVudHMsbD1uIGluc3RhbmNlb2YgVW4sYz1zWzBdLHU9bHx8aHMobiksaD1mdW5jdGlvbih0KXt2YXIgZT1vLmFwcGx5KEJuLEVlKFt0XSxzKSk7cmV0dXJuIHImJmQ/ZVswXTplfTt1JiZpJiYiZnVuY3Rpb24iPT10eXBlb2YgYyYmMSE9Yy5sZW5ndGgmJihsPXU9ITEpO3ZhciBkPXRoaXMuX19jaGFpbl9fLHA9ISF0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCxmPWEmJiFkLG09bCYmIXA7aWYoIWEmJnUpe249bT9uOm5ldyBVbih0aGlzKTt2YXIgZz1lLmFwcGx5KG4scyk7cmV0dXJuIGcuX19hY3Rpb25zX18ucHVzaCh7ZnVuYzpSYSxhcmdzOltoXSx0aGlzQXJnOnR9KSxuZXcgVm4oZyxkKX1yZXR1cm4gZiYmbT9lLmFwcGx5KHRoaXMscyk6KGc9dGhpcy50aHJ1KGgpLGY/cj9nLnZhbHVlKClbMF06Zy52YWx1ZSgpOmcpfSl9KSksbWUoWyJwb3AiLCJwdXNoIiwic2hpZnQiLCJzb3J0Iiwic3BsaWNlIiwidW5zaGlmdCJdLChmdW5jdGlvbih0KXt2YXIgZT1BdFt0XSxuPS9eKD86cHVzaHxzb3J0fHVuc2hpZnQpJC8udGVzdCh0KT8idGFwIjoidGhydSIsaT0vXig/OnBvcHxzaGlmdCkkLy50ZXN0KHQpO0JuLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cztpZihpJiYhdGhpcy5fX2NoYWluX18pe3ZhciByPXRoaXMudmFsdWUoKTtyZXR1cm4gZS5hcHBseShocyhyKT9yOltdLHQpfXJldHVybiB0aGlzW25dKChmdW5jdGlvbihuKXtyZXR1cm4gZS5hcHBseShocyhuKT9uOltdLHQpfSkpfX0pKSxGaShVbi5wcm90b3R5cGUsKGZ1bmN0aW9uKHQsZSl7dmFyIG49Qm5bZV07aWYobil7dmFyIGk9bi5uYW1lKyIiO050LmNhbGwoa24saSl8fChrbltpXT1bXSksa25baV0ucHVzaCh7bmFtZTplLGZ1bmM6bn0pfX0pKSxrbltvbyh0LDIpLm5hbWVdPVt7bmFtZToid3JhcHBlciIsZnVuYzp0fV0sVW4ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uIEZoKCl7dmFyIHQ9bmV3IFVuKHRoaXMuX193cmFwcGVkX18pO3JldHVybiB0Ll9fYWN0aW9uc19fPVhyKHRoaXMuX19hY3Rpb25zX18pLHQuX19kaXJfXz10aGlzLl9fZGlyX18sdC5fX2ZpbHRlcmVkX189dGhpcy5fX2ZpbHRlcmVkX18sdC5fX2l0ZXJhdGVlc19fPVhyKHRoaXMuX19pdGVyYXRlZXNfXyksdC5fX3Rha2VDb3VudF9fPXRoaXMuX190YWtlQ291bnRfXyx0Ll9fdmlld3NfXz1Ycih0aGlzLl9fdmlld3NfXyksdH0sVW4ucHJvdG90eXBlLnJldmVyc2U9ZnVuY3Rpb24gVmgoKXtpZih0aGlzLl9fZmlsdGVyZWRfXyl7dmFyIHQ9bmV3IFVuKHRoaXMpO3QuX19kaXJfXz0tMSx0Ll9fZmlsdGVyZWRfXz0hMH1lbHNlKHQ9dGhpcy5jbG9uZSgpKS5fX2Rpcl9fKj0tMTtyZXR1cm4gdH0sVW4ucHJvdG90eXBlLnZhbHVlPWZ1bmN0aW9uIFVoKCl7dmFyIHQ9dGhpcy5fX3dyYXBwZWRfXy52YWx1ZSgpLGU9dGhpcy5fX2Rpcl9fLG49aHModCksaT1lPDAscj1uP3QubGVuZ3RoOjAsbz0oZnVuY3Rpb24gYSh0LGUsbil7Zm9yKHZhciBpPS0xLHI9bi5sZW5ndGg7KytpPHI7KXt2YXIgbz1uW2ldLGE9by5zaXplO3N3aXRjaChvLnR5cGUpe2Nhc2UiZHJvcCI6dCs9YTticmVhaztjYXNlImRyb3BSaWdodCI6ZS09YTticmVhaztjYXNlInRha2UiOmU9X24oZSx0K2EpO2JyZWFrO2Nhc2UidGFrZVJpZ2h0Ijp0PWduKHQsZS1hKX19cmV0dXJue3N0YXJ0OnQsZW5kOmV9fSkoMCxyLHRoaXMuX192aWV3c19fKSxzPW8uc3RhcnQsbD1vLmVuZCxjPWwtcyx1PWk/bDpzLTEsaD10aGlzLl9faXRlcmF0ZWVzX18sZD1oLmxlbmd0aCxwPTAsZj1fbihjLHRoaXMuX190YWtlQ291bnRfXyk7aWYoIW58fCFpJiZyPT1jJiZmPT1jKXJldHVybiBJcih0LHRoaXMuX19hY3Rpb25zX18pO3ZhciBtPVtdO3Q6Zm9yKDtjLS0mJnA8Zjspe2Zvcih2YXIgZz0tMSxfPXRbdSs9ZV07KytnPGQ7KXt2YXIgeT1oW2ddLHY9eS50eXBlLGI9KDAseS5pdGVyYXRlZSkoXyk7aWYoMj09dilfPWI7ZWxzZSBpZighYil7aWYoMT09diljb250aW51ZSB0O2JyZWFrIHR9fW1bcCsrXT1ffXJldHVybiBtfSxCbi5wcm90b3R5cGUuYXQ9T2EsQm4ucHJvdG90eXBlLmNoYWluPWZ1bmN0aW9uIGpoKCl7cmV0dXJuIElhKHRoaXMpfSxCbi5wcm90b3R5cGUuY29tbWl0PWZ1bmN0aW9uIEdoKCl7cmV0dXJuIG5ldyBWbih0aGlzLnZhbHVlKCksdGhpcy5fX2NoYWluX18pfSxCbi5wcm90b3R5cGUubmV4dD1mdW5jdGlvbiBXaCgpe3RoaXMuX192YWx1ZXNfXz09PXQmJih0aGlzLl9fdmFsdWVzX189SHModGhpcy52YWx1ZSgpKSk7dmFyIGU9dGhpcy5fX2luZGV4X18+PXRoaXMuX192YWx1ZXNfXy5sZW5ndGg7cmV0dXJue2RvbmU6ZSx2YWx1ZTplP3Q6dGhpcy5fX3ZhbHVlc19fW3RoaXMuX19pbmRleF9fKytdfX0sQm4ucHJvdG90eXBlLnBsYW50PWZ1bmN0aW9uIHFoKGUpe2Zvcih2YXIgbixpPXRoaXM7aSBpbnN0YW5jZW9mIEZuOyl7dmFyIHI9YWEoaSk7ci5fX2luZGV4X189MCxyLl9fdmFsdWVzX189dCxuP28uX193cmFwcGVkX189cjpuPXI7dmFyIG89cjtpPWkuX193cmFwcGVkX199cmV0dXJuIG8uX193cmFwcGVkX189ZSxufSxCbi5wcm90b3R5cGUucmV2ZXJzZT1mdW5jdGlvbiBZaCgpe3ZhciBlPXRoaXMuX193cmFwcGVkX187aWYoZSBpbnN0YW5jZW9mIFVuKXt2YXIgbj1lO3JldHVybiB0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCYmKG49bmV3IFVuKHRoaXMpKSwobj1uLnJldmVyc2UoKSkuX19hY3Rpb25zX18ucHVzaCh7ZnVuYzpSYSxhcmdzOlt4YV0sdGhpc0FyZzp0fSksbmV3IFZuKG4sdGhpcy5fX2NoYWluX18pfXJldHVybiB0aGlzLnRocnUoeGEpfSxCbi5wcm90b3R5cGUudG9KU09OPUJuLnByb3RvdHlwZS52YWx1ZU9mPUJuLnByb3RvdHlwZS52YWx1ZT1mdW5jdGlvbiBYaCgpe3JldHVybiBJcih0aGlzLl9fd3JhcHBlZF9fLHRoaXMuX19hY3Rpb25zX18pfSxCbi5wcm90b3R5cGUuZmlyc3Q9Qm4ucHJvdG90eXBlLmhlYWQsYWUmJihCbi5wcm90b3R5cGVbYWVdPWZ1bmN0aW9uICRoKCl7cmV0dXJuIHRoaXN9KSxCbn0pKCk7aWU/KChpZS5leHBvcnRzPWxuKS5fPWxuLG5lLl89bG4pOmVlLl89bG59LmNhbGwodmUpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBNZT0hKHdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmluVXNlKTtsZXQgRWUsVGU7ZnVuY3Rpb24gQ2UodCl7RWU9KCF0fHwhdC5zaGltY3NzcHJvcGVydGllcykmJihNZXx8Qm9vbGVhbighbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvQXBwbGVXZWJLaXRcLzYwMXxFZGdlXC8xNS8pJiZ3aW5kb3cuQ1NTJiZDU1Muc3VwcG9ydHMmJkNTUy5zdXBwb3J0cygiYm94LXNoYWRvdyIsIjAgMCAwIHZhcigtLWZvbykiKSkpfXdpbmRvdy5TaGFkeUNTUyYmdm9pZCAwIT09d2luZG93LlNoYWR5Q1NTLmNzc0J1aWxkJiYoVGU9d2luZG93LlNoYWR5Q1NTLmNzc0J1aWxkKTtjb25zdCBBZT1Cb29sZWFuKHdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLmRpc2FibGVSdW50aW1lKTt3aW5kb3cuU2hhZHlDU1MmJnZvaWQgMCE9PXdpbmRvdy5TaGFkeUNTUy5uYXRpdmVDc3M/RWU9d2luZG93LlNoYWR5Q1NTLm5hdGl2ZUNzczp3aW5kb3cuU2hhZHlDU1M/KENlKHdpbmRvdy5TaGFkeUNTUyksd2luZG93LlNoYWR5Q1NTPXZvaWQgMCk6Q2Uod2luZG93LldlYkNvbXBvbmVudHMmJndpbmRvdy5XZWJDb21wb25lbnRzLmZsYWdzKTtjb25zdCBrZT1FZTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jbGFzcyBMZXtjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhcnQ9MCx0aGlzLmVuZD0wLHRoaXMucHJldmlvdXM9bnVsbCx0aGlzLnBhcmVudD1udWxsLHRoaXMucnVsZXM9bnVsbCx0aGlzLnBhcnNlZENzc1RleHQ9IiIsdGhpcy5jc3NUZXh0PSIiLHRoaXMuYXRSdWxlPSExLHRoaXMudHlwZT0wLHRoaXMua2V5ZnJhbWVzTmFtZT0iIix0aGlzLnNlbGVjdG9yPSIiLHRoaXMucGFyc2VkU2VsZWN0b3I9IiJ9fWZ1bmN0aW9uIFBlKHQpe3JldHVybiBOZSgoZnVuY3Rpb24gbih0KXtsZXQgZT1uZXcgTGU7ZS5zdGFydD0wLGUuZW5kPXQubGVuZ3RoO2xldCBuPWU7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKWlmKHRbaV09PT1PZSl7bi5ydWxlc3x8KG4ucnVsZXM9W10pO2xldCB0PW4sZT10LnJ1bGVzW3QucnVsZXMubGVuZ3RoLTFdfHxudWxsO249bmV3IExlLG4uc3RhcnQ9aSsxLG4ucGFyZW50PXQsbi5wcmV2aW91cz1lLHQucnVsZXMucHVzaChuKX1lbHNlIHRbaV09PT16ZSYmKG4uZW5kPWkrMSxuPW4ucGFyZW50fHxlKTtyZXR1cm4gZX0pKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIHQucmVwbGFjZShEZS5jb21tZW50cywiIikucmVwbGFjZShEZS5wb3J0LCIiKX0pKHQpKSx0KX1mdW5jdGlvbiBOZSh0LGUpe2xldCBuPWUuc3Vic3RyaW5nKHQuc3RhcnQsdC5lbmQtMSk7aWYodC5wYXJzZWRDc3NUZXh0PXQuY3NzVGV4dD1uLnRyaW0oKSx0LnBhcmVudCl7bj1lLnN1YnN0cmluZyh0LnByZXZpb3VzP3QucHJldmlvdXMuZW5kOnQucGFyZW50LnN0YXJ0LHQuc3RhcnQtMSksbj0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9cXChbMC05YS1mXXsxLDZ9KVxzL2dpLChmdW5jdGlvbigpe2xldCB0PWFyZ3VtZW50c1sxXSxlPTYtdC5sZW5ndGg7Zm9yKDtlLS07KXQ9IjAiK3Q7cmV0dXJuIlxcIit0fSkpfSkobiksbj1uLnJlcGxhY2UoRGUubXVsdGlwbGVTcGFjZXMsIiAiKSxuPW4uc3Vic3RyaW5nKG4ubGFzdEluZGV4T2YoIjsiKSsxKTtsZXQgaT10LnBhcnNlZFNlbGVjdG9yPXQuc2VsZWN0b3I9bi50cmltKCk7dC5hdFJ1bGU9MD09PWkuaW5kZXhPZihGZSksdC5hdFJ1bGU/MD09PWkuaW5kZXhPZihIZSk/dC50eXBlPVJlLk1FRElBX1JVTEU6aS5tYXRjaChEZS5rZXlmcmFtZXNSdWxlKSYmKHQudHlwZT1SZS5LRVlGUkFNRVNfUlVMRSx0LmtleWZyYW1lc05hbWU9dC5zZWxlY3Rvci5zcGxpdChEZS5tdWx0aXBsZVNwYWNlcykucG9wKCkpOnQudHlwZT0wPT09aS5pbmRleE9mKEJlKT9SZS5NSVhJTl9SVUxFOlJlLlNUWUxFX1JVTEV9bGV0IHI9dC5ydWxlcztpZihyKWZvcihsZXQgdCxuPTAsaT1yLmxlbmd0aDtuPGkmJih0PXJbbl0pO24rKylOZSh0LGUpO3JldHVybiB0fWZ1bmN0aW9uIEllKHQsZSxuPSIiKXtsZXQgaT0iIjtpZih0LmNzc1RleHR8fHQucnVsZXMpe2xldCBuPXQucnVsZXM7aWYobiYmIShmdW5jdGlvbiByKHQpe2xldCBlPXRbMF07cmV0dXJuIEJvb2xlYW4oZSkmJkJvb2xlYW4oZS5zZWxlY3RvcikmJjA9PT1lLnNlbGVjdG9yLmluZGV4T2YoQmUpfSkobikpZm9yKGxldCB0LHI9MCxvPW4ubGVuZ3RoO3I8byYmKHQ9bltyXSk7cisrKWk9SWUodCxlLGkpO2Vsc2UgaT1lP3QuY3NzVGV4dDooZnVuY3Rpb24gbyh0KXtyZXR1cm4oZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5yZXBsYWNlKERlLm1peGluQXBwbHksIiIpLnJlcGxhY2UoRGUudmFyQXBwbHksIiIpfSkodD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdC5yZXBsYWNlKERlLmN1c3RvbVByb3AsIiIpLnJlcGxhY2UoRGUubWl4aW5Qcm9wLCIiKX0pKHQpKX0pKHQuY3NzVGV4dCksaT1pLnRyaW0oKSxpJiYoaT0iICAiK2krIlxuIil9cmV0dXJuIGkmJih0LnNlbGVjdG9yJiYobis9dC5zZWxlY3RvcisiICIrT2UrIlxuIiksbis9aSx0LnNlbGVjdG9yJiYobis9emUrIlxuXG4iKSksbn1jb25zdCBSZT17U1RZTEVfUlVMRToxLEtFWUZSQU1FU19SVUxFOjcsTUVESUFfUlVMRTo0LE1JWElOX1JVTEU6MWUzfSxPZT0ieyIsemU9In0iLERlPXtjb21tZW50czovXC9cKlteKl0qXCorKFteLypdW14qXSpcKispKlwvL2dpbSxwb3J0Oi9AaW1wb3J0W147XSo7L2dpbSxjdXN0b21Qcm9wOi8oPzpeW147XC1cc31dKyk/LS1bXjt7fV0qPzpbXnt9O10qPyg/Ols7XG5dfCQpL2dpbSxtaXhpblByb3A6Lyg/Ol5bXjtcLVxzfV0rKT8tLVteO3t9XSo/Oltee307XSo/e1tefV0qP30oPzpbO1xuXXwkKT8vZ2ltLG1peGluQXBwbHk6L0BhcHBseVxzKlwoP1teKTtdKlwpP1xzKig/Ols7XG5dfCQpPy9naW0sdmFyQXBwbHk6L1teOzpdKj86W147XSo/dmFyXChbXjtdKlwpKD86Wztcbl18JCk/L2dpbSxrZXlmcmFtZXNSdWxlOi9eQFteXHNdKmtleWZyYW1lcy8sbXVsdGlwbGVTcGFjZXM6L1xzKy9nfSxCZT0iLS0iLEhlPSJAbWVkaWEiLEZlPSJAIixWZT0vKD86XnxbO1xze11ccyopKC0tW1x3LV0qPylccyo6XHMqKD86KCg/OicoPzpcXCd8LikqPyd8Iig/OlxcInwuKSo/InxcKFteKV0qP1wpfFtefTt7XSkrKXxceyhbXn1dKilcfSg/Oig/PVs7XHN9XSl8JCkpL2dpLFVlPS8oPzpefFxXKylAYXBwbHlccypcKD8oW14pO1xuXSopXCk/L2dpLGplPS9AbWVkaWFccyguKikvLEdlPW5ldyBTZXQ7ZnVuY3Rpb24gV2UodCl7Y29uc3QgZT10LnRleHRDb250ZW50O2lmKCFHZS5oYXMoZSkpe0dlLmFkZChlKTtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7dC5zZXRBdHRyaWJ1dGUoInNoYWR5LXVuc2NvcGVkIiwiIiksdC50ZXh0Q29udGVudD1lLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCl9fWZ1bmN0aW9uIHFlKHQpe3JldHVybiB0Lmhhc0F0dHJpYnV0ZSgic2hhZHktdW5zY29wZWQiKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9mdW5jdGlvbiBZZSh0LGUpe3JldHVybiB0Pygic3RyaW5nIj09dHlwZW9mIHQmJih0PVBlKHQpKSxlJiYkZSh0LGUpLEllKHQsa2UpKToiIn1mdW5jdGlvbiBYZSh0KXtyZXR1cm4hdC5fX2Nzc1J1bGVzJiZ0LnRleHRDb250ZW50JiYodC5fX2Nzc1J1bGVzPVBlKHQudGV4dENvbnRlbnQpKSx0Ll9fY3NzUnVsZXN8fG51bGx9ZnVuY3Rpb24gJGUodCxlLG4saSl7aWYoIXQpcmV0dXJuO2xldCByPSExLG89dC50eXBlO2lmKGkmJm89PT1SZS5NRURJQV9SVUxFKXtsZXQgZT10LnNlbGVjdG9yLm1hdGNoKGplKTtlJiYod2luZG93Lm1hdGNoTWVkaWEoZVsxXSkubWF0Y2hlc3x8KHI9ITApKX1vPT09UmUuU1RZTEVfUlVMRT9lKHQpOm4mJm89PT1SZS5LRVlGUkFNRVNfUlVMRT9uKHQpOm89PT1SZS5NSVhJTl9SVUxFJiYocj0hMCk7bGV0IGE9dC5ydWxlcztpZihhJiYhcilmb3IobGV0IHQscj0wLG89YS5sZW5ndGg7cjxvJiYodD1hW3JdKTtyKyspJGUodCxlLG4saSl9ZnVuY3Rpb24gS2UodCxlKXtsZXQgbj10LmluZGV4T2YoInZhcigiKTtpZigtMT09PW4pcmV0dXJuIGUodCwiIiwiIiwiIik7bGV0IGk9KGZ1bmN0aW9uIHIodCxlKXtsZXQgbj0wO2ZvcihsZXQgaT1lLHI9dC5sZW5ndGg7aTxyO2krKylpZigiKCI9PT10W2ldKW4rKztlbHNlIGlmKCIpIj09PXRbaV0mJjA9PS0tbilyZXR1cm4gaTtyZXR1cm4tMX0pKHQsbiszKSxvPXQuc3Vic3RyaW5nKG4rNCxpKSxhPXQuc3Vic3RyaW5nKDAsbikscz1LZSh0LnN1YnN0cmluZyhpKzEpLGUpLGw9by5pbmRleE9mKCIsIik7cmV0dXJuLTE9PT1sP2UoYSxvLnRyaW0oKSwiIixzKTplKGEsby5zdWJzdHJpbmcoMCxsKS50cmltKCksby5zdWJzdHJpbmcobCsxKS50cmltKCkscyl9d2luZG93LlNoYWR5RE9NJiZ3aW5kb3c7Y29uc3QgWmU9ImNzcy1idWlsZCI7ZnVuY3Rpb24gSmUodCl7cmV0dXJuIiIhPT0oZnVuY3Rpb24gZSh0KXtpZih2b2lkIDAhPT1UZSlyZXR1cm4gVGU7aWYodm9pZCAwPT09dC5fX2Nzc0J1aWxkKXtjb25zdCBlPXQuZ2V0QXR0cmlidXRlKFplKTtpZihlKXQuX19jc3NCdWlsZD1lO2Vsc2V7Y29uc3QgZT0oZnVuY3Rpb24gZSh0KXtjb25zdCBlPSJ0ZW1wbGF0ZSI9PT10LmxvY2FsTmFtZT90LmNvbnRlbnQuZmlyc3RDaGlsZDp0LmZpcnN0Q2hpbGQ7aWYoZSBpbnN0YW5jZW9mIENvbW1lbnQpe2NvbnN0IHQ9ZS50ZXh0Q29udGVudC50cmltKCkuc3BsaXQoIjoiKTtpZih0WzBdPT09WmUpcmV0dXJuIHRbMV19cmV0dXJuIiJ9KSh0KTsiIiE9PWUmJihmdW5jdGlvbiBuKHQpe2NvbnN0IGU9InRlbXBsYXRlIj09PXQubG9jYWxOYW1lP3QuY29udGVudC5maXJzdENoaWxkOnQuZmlyc3RDaGlsZDtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovKSh0KSx0Ll9fY3NzQnVpbGQ9ZX19cmV0dXJuIHQuX19jc3NCdWlsZHx8IiJ9KSh0KX1mdW5jdGlvbiBRZSh0LGUpe2ZvcihsZXQgbiBpbiBlKW51bGw9PT1uP3Quc3R5bGUucmVtb3ZlUHJvcGVydHkobik6dC5zdHlsZS5zZXRQcm9wZXJ0eShuLGVbbl0pfWZ1bmN0aW9uIHRuKHQsZSl7Y29uc3Qgbj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5nZXRQcm9wZXJ0eVZhbHVlKGUpO3JldHVybiBuP24udHJpbSgpOiIifQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBlbj0vO1xzKi9tLG5uPS9eXHMqKGluaXRpYWwpfChpbmhlcml0KVxzKiQvLHJuPS9ccyohaW1wb3J0YW50LztjbGFzcyBvbntjb25zdHJ1Y3Rvcigpe3RoaXMuX21hcD17fX1zZXQodCxlKXt0PXQudHJpbSgpLHRoaXMuX21hcFt0XT17cHJvcGVydGllczplLGRlcGVuZGFudHM6e319fWdldCh0KXtyZXR1cm4gdD10LnRyaW0oKSx0aGlzLl9tYXBbdF18fG51bGx9fWxldCBhbj1udWxsO2NsYXNzIHNue2NvbnN0cnVjdG9yKCl7dGhpcy5fY3VycmVudEVsZW1lbnQ9bnVsbCx0aGlzLl9tZWFzdXJlRWxlbWVudD1udWxsLHRoaXMuX21hcD1uZXcgb259ZGV0ZWN0TWl4aW4odCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7Y29uc3QgZT1VZS50ZXN0KHQpfHxWZS50ZXN0KHQpO3JldHVybiBVZS5sYXN0SW5kZXg9MCxWZS5sYXN0SW5kZXg9MCxlfSkodCl9Z2F0aGVyU3R5bGVzKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7Y29uc3QgZT1bXSxuPXQucXVlcnlTZWxlY3RvckFsbCgic3R5bGUiKTtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyl7Y29uc3QgaT1uW3RdO3FlKGkpP01lfHwoV2UoaSksaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpKTooZS5wdXNoKGkudGV4dENvbnRlbnQpLGkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpKSl9cmV0dXJuIGUuam9pbigiIikudHJpbSgpfSkodC5jb250ZW50KTtpZihlKXtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7cmV0dXJuIG4udGV4dENvbnRlbnQ9ZSx0LmNvbnRlbnQuaW5zZXJ0QmVmb3JlKG4sdC5jb250ZW50LmZpcnN0Q2hpbGQpLG59cmV0dXJuIG51bGx9dHJhbnNmb3JtVGVtcGxhdGUodCxlKXt2b2lkIDA9PT10Ll9nYXRoZXJlZFN0eWxlJiYodC5fZ2F0aGVyZWRTdHlsZT10aGlzLmdhdGhlclN0eWxlcyh0KSk7Y29uc3Qgbj10Ll9nYXRoZXJlZFN0eWxlO3JldHVybiBuP3RoaXMudHJhbnNmb3JtU3R5bGUobixlKTpudWxsfXRyYW5zZm9ybVN0eWxlKHQsZT0iIil7bGV0IG49WGUodCk7cmV0dXJuIHRoaXMudHJhbnNmb3JtUnVsZXMobixlKSx0LnRleHRDb250ZW50PVllKG4pLG59dHJhbnNmb3JtQ3VzdG9tU3R5bGUodCl7bGV0IGU9WGUodCk7cmV0dXJuICRlKGUsKHQ9PnsiOnJvb3QiPT09dC5zZWxlY3RvciYmKHQuc2VsZWN0b3I9Imh0bWwiKSx0aGlzLnRyYW5zZm9ybVJ1bGUodCl9KSksdC50ZXh0Q29udGVudD1ZZShlKSxlfXRyYW5zZm9ybVJ1bGVzKHQsZSl7dGhpcy5fY3VycmVudEVsZW1lbnQ9ZSwkZSh0LCh0PT57dGhpcy50cmFuc2Zvcm1SdWxlKHQpfSkpLHRoaXMuX2N1cnJlbnRFbGVtZW50PW51bGx9dHJhbnNmb3JtUnVsZSh0KXt0LmNzc1RleHQ9dGhpcy50cmFuc2Zvcm1Dc3NUZXh0KHQucGFyc2VkQ3NzVGV4dCx0KSwiOnJvb3QiPT09dC5zZWxlY3RvciYmKHQuc2VsZWN0b3I9Ijpob3N0ID4gKiIpfXRyYW5zZm9ybUNzc1RleHQodCxlKXtyZXR1cm4gdD10LnJlcGxhY2UoVmUsKCh0LG4saSxyKT0+dGhpcy5fcHJvZHVjZUNzc1Byb3BlcnRpZXModCxuLGkscixlKSkpLHRoaXMuX2NvbnN1bWVDc3NQcm9wZXJ0aWVzKHQsZSl9X2dldEluaXRpYWxWYWx1ZUZvclByb3BlcnR5KHQpe3JldHVybiB0aGlzLl9tZWFzdXJlRWxlbWVudHx8KHRoaXMuX21lYXN1cmVFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKSx0aGlzLl9tZWFzdXJlRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFwcGx5LXNoaW0tbWVhc3VyZSIsIiIpLHRoaXMuX21lYXN1cmVFbGVtZW50LnN0eWxlLmFsbD0iaW5pdGlhbCIsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0aGlzLl9tZWFzdXJlRWxlbWVudCkpLHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuX21lYXN1cmVFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKHQpfV9mYWxsYmFja3NGcm9tUHJldmlvdXNSdWxlcyh0KXtsZXQgZT10O2Zvcig7ZS5wYXJlbnQ7KWU9ZS5wYXJlbnQ7Y29uc3Qgbj17fTtsZXQgaT0hMTtyZXR1cm4gJGUoZSwoZT0+e2k9aXx8ZT09PXQsaXx8ZS5zZWxlY3Rvcj09PXQuc2VsZWN0b3ImJk9iamVjdC5hc3NpZ24obix0aGlzLl9jc3NUZXh0VG9NYXAoZS5wYXJzZWRDc3NUZXh0KSl9KSksbn1fY29uc3VtZUNzc1Byb3BlcnRpZXModCxlKXtsZXQgbj1udWxsO2Zvcig7bj1VZS5leGVjKHQpOyl7bGV0IGk9blswXSxyPW5bMV0sbz1uLmluZGV4LGE9bytpLmluZGV4T2YoIkBhcHBseSIpLHM9bytpLmxlbmd0aCxsPXQuc2xpY2UoMCxhKSxjPXQuc2xpY2UocyksdT1lP3RoaXMuX2ZhbGxiYWNrc0Zyb21QcmV2aW91c1J1bGVzKGUpOnt9O09iamVjdC5hc3NpZ24odSx0aGlzLl9jc3NUZXh0VG9NYXAobCkpO2xldCBoPXRoaXMuX2F0QXBwbHlUb0Nzc1Byb3BlcnRpZXMocix1KTt0PWAke2x9JHtofSR7Y31gLFVlLmxhc3RJbmRleD1vK2gubGVuZ3RofXJldHVybiB0fV9hdEFwcGx5VG9Dc3NQcm9wZXJ0aWVzKHQsZSl7dD10LnJlcGxhY2UoZW4sIiIpO2xldCBuPVtdLGk9dGhpcy5fbWFwLmdldCh0KTtpZihpfHwodGhpcy5fbWFwLnNldCh0LHt9KSxpPXRoaXMuX21hcC5nZXQodCkpLGkpe2xldCByLG8sYTt0aGlzLl9jdXJyZW50RWxlbWVudCYmKGkuZGVwZW5kYW50c1t0aGlzLl9jdXJyZW50RWxlbWVudF09ITApO2NvbnN0IHM9aS5wcm9wZXJ0aWVzO2ZvcihyIGluIHMpYT1lJiZlW3JdLG89W3IsIjogdmFyKCIsdCwiXy1fIixyXSxhJiZvLnB1c2goIiwiLGEucmVwbGFjZShybiwiIikpLG8ucHVzaCgiKSIpLHJuLnRlc3Qoc1tyXSkmJm8ucHVzaCgiICFpbXBvcnRhbnQiKSxuLnB1c2goby5qb2luKCIiKSl9cmV0dXJuIG4uam9pbigiOyAiKX1fcmVwbGFjZUluaXRpYWxPckluaGVyaXQodCxlKXtsZXQgbj1ubi5leGVjKGUpO3JldHVybiBuJiYoZT1uWzFdP3RoaXMuX2dldEluaXRpYWxWYWx1ZUZvclByb3BlcnR5KHQpOiJhcHBseS1zaGltLWluaGVyaXQiKSxlfV9jc3NUZXh0VG9NYXAodCxlPSExKXtsZXQgbixpLHI9dC5zcGxpdCgiOyIpLG89e307Zm9yKGxldCB0LGEscz0wO3M8ci5sZW5ndGg7cysrKXQ9cltzXSx0JiYoYT10LnNwbGl0KCI6IiksYS5sZW5ndGg+MSYmKG49YVswXS50cmltKCksaT1hLnNsaWNlKDEpLmpvaW4oIjoiKSxlJiYoaT10aGlzLl9yZXBsYWNlSW5pdGlhbE9ySW5oZXJpdChuLGkpKSxvW25dPWkpKTtyZXR1cm4gb31faW52YWxpZGF0ZU1peGluRW50cnkodCl7aWYoYW4pZm9yKGxldCBlIGluIHQuZGVwZW5kYW50cyllIT09dGhpcy5fY3VycmVudEVsZW1lbnQmJmFuKGUpfV9wcm9kdWNlQ3NzUHJvcGVydGllcyh0LGUsbixpLHIpe2lmKG4mJktlKG4sKCh0LGUpPT57ZSYmdGhpcy5fbWFwLmdldChlKSYmKGk9YEBhcHBseSAke2V9O2ApfSkpLCFpKXJldHVybiB0O2xldCBvPXRoaXMuX2NvbnN1bWVDc3NQcm9wZXJ0aWVzKCIiK2ksciksYT10LnNsaWNlKDAsdC5pbmRleE9mKCItLSIpKSxzPXRoaXMuX2Nzc1RleHRUb01hcChvLCEwKSxsPXMsYz10aGlzLl9tYXAuZ2V0KGUpLHU9YyYmYy5wcm9wZXJ0aWVzO3U/bD1PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUodSkscyk6dGhpcy5fbWFwLnNldChlLGwpO2xldCBoLGQscD1bXSxmPSExO2ZvcihoIGluIGwpZD1zW2hdLHZvaWQgMD09PWQmJihkPSJpbml0aWFsIiksdSYmIShoIGluIHUpJiYoZj0hMCkscC5wdXNoKGAke2V9Xy1fJHtofTogJHtkfWApO3JldHVybiBmJiZ0aGlzLl9pbnZhbGlkYXRlTWl4aW5FbnRyeShjKSxjJiYoYy5wcm9wZXJ0aWVzPWwpLG4mJihhPWAke3R9OyR7YX1gKSxgJHthfSR7cC5qb2luKCI7ICIpfTtgfX1zbi5wcm90b3R5cGUuZGV0ZWN0TWl4aW49c24ucHJvdG90eXBlLmRldGVjdE1peGluLHNuLnByb3RvdHlwZS50cmFuc2Zvcm1TdHlsZT1zbi5wcm90b3R5cGUudHJhbnNmb3JtU3R5bGUsc24ucHJvdG90eXBlLnRyYW5zZm9ybUN1c3RvbVN0eWxlPXNuLnByb3RvdHlwZS50cmFuc2Zvcm1DdXN0b21TdHlsZSxzbi5wcm90b3R5cGUudHJhbnNmb3JtUnVsZXM9c24ucHJvdG90eXBlLnRyYW5zZm9ybVJ1bGVzLHNuLnByb3RvdHlwZS50cmFuc2Zvcm1SdWxlPXNuLnByb3RvdHlwZS50cmFuc2Zvcm1SdWxlLHNuLnByb3RvdHlwZS50cmFuc2Zvcm1UZW1wbGF0ZT1zbi5wcm90b3R5cGUudHJhbnNmb3JtVGVtcGxhdGUsc24ucHJvdG90eXBlLl9zZXBhcmF0b3I9Il8tXyIsT2JqZWN0LmRlZmluZVByb3BlcnR5KHNuLnByb3RvdHlwZSwiaW52YWxpZENhbGxiYWNrIix7Z2V0OigpPT5hbixzZXQodCl7YW49dH19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgbG49e30sY249Il9hcHBseVNoaW1DdXJyZW50VmVyc2lvbiIsdW49Il9hcHBseVNoaW1OZXh0VmVyc2lvbiIsaG49Il9hcHBseVNoaW1WYWxpZGF0aW5nVmVyc2lvbiIsZG49UHJvbWlzZS5yZXNvbHZlKCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovZnVuY3Rpb24gcG4odCl7bGV0IGU9bG5bdF07ZSYmKGZ1bmN0aW9uIG4odCl7dFtjbl09dFtjbl18fDAsdFtobl09dFtobl18fDAsdFt1bl09KHRbdW5dfHwwKSsxfSkoZSl9ZnVuY3Rpb24gZm4odCl7cmV0dXJuIHRbY25dPT09dFt1bl19Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmxldCBtbixnbj1udWxsLF9uPXdpbmRvdy5IVE1MSW1wb3J0cyYmd2luZG93LkhUTUxJbXBvcnRzLndoZW5SZWFkeXx8bnVsbDtmdW5jdGlvbiB5bih0KXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7X24/X24odCk6KGdufHwoZ249bmV3IFByb21pc2UoKHQ9Pnttbj10fSkpLCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP21uKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsKCgpPT57ImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGUmJm1uKCl9KSkpLGduLnRoZW4oKGZ1bmN0aW9uKCl7dCYmdCgpfSkpKX0pKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jb25zdCB2bj0iX19zZWVuQnlTaGFkeUNTUyIsYm49Il9fc2hhZHlDU1NDYWNoZWRTdHlsZSI7bGV0IHhuPW51bGwsd249bnVsbDtjbGFzcyBTbntjb25zdHJ1Y3Rvcigpe3RoaXMuY3VzdG9tU3R5bGVzPVtdLHRoaXMuZW5xdWV1ZWQ9ITEseW4oKCgpPT57d2luZG93LlNoYWR5Q1NTLmZsdXNoQ3VzdG9tU3R5bGVzJiZ3aW5kb3cuU2hhZHlDU1MuZmx1c2hDdXN0b21TdHlsZXMoKX0pKX1lbnF1ZXVlRG9jdW1lbnRWYWxpZGF0aW9uKCl7IXRoaXMuZW5xdWV1ZWQmJnduJiYodGhpcy5lbnF1ZXVlZD0hMCx5bih3bikpfWFkZEN1c3RvbVN0eWxlKHQpe3Rbdm5dfHwodFt2bl09ITAsdGhpcy5jdXN0b21TdHlsZXMucHVzaCh0KSx0aGlzLmVucXVldWVEb2N1bWVudFZhbGlkYXRpb24oKSl9Z2V0U3R5bGVGb3JDdXN0b21TdHlsZSh0KXtpZih0W2JuXSlyZXR1cm4gdFtibl07bGV0IGU7cmV0dXJuIGU9dC5nZXRTdHlsZT90LmdldFN0eWxlKCk6dCxlfXByb2Nlc3NTdHlsZXMoKXtjb25zdCB0PXRoaXMuY3VzdG9tU3R5bGVzO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCBuPXRbZV07aWYobltibl0pY29udGludWU7Y29uc3QgaT10aGlzLmdldFN0eWxlRm9yQ3VzdG9tU3R5bGUobik7aWYoaSl7Y29uc3QgdD1pLl9fYXBwbGllZEVsZW1lbnR8fGk7eG4mJnhuKHQpLG5bYm5dPXR9fXJldHVybiB0fX1Tbi5wcm90b3R5cGUuYWRkQ3VzdG9tU3R5bGU9U24ucHJvdG90eXBlLmFkZEN1c3RvbVN0eWxlLFNuLnByb3RvdHlwZS5nZXRTdHlsZUZvckN1c3RvbVN0eWxlPVNuLnByb3RvdHlwZS5nZXRTdHlsZUZvckN1c3RvbVN0eWxlLFNuLnByb3RvdHlwZS5wcm9jZXNzU3R5bGVzPVNuLnByb3RvdHlwZS5wcm9jZXNzU3R5bGVzLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFNuLnByb3RvdHlwZSx7dHJhbnNmb3JtQ2FsbGJhY2s6e2dldDooKT0+eG4sc2V0KHQpe3huPXR9fSx2YWxpZGF0ZUNhbGxiYWNrOntnZXQ6KCk9PnduLHNldCh0KXtsZXQgZT0hMTt3bnx8KGU9ITApLHduPXQsZSYmdGhpcy5lbnF1ZXVlRG9jdW1lbnRWYWxpZGF0aW9uKCl9fX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBNbj1uZXcgc247Y2xhc3MgRW57Y29uc3RydWN0b3IoKXt0aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlPW51bGwsTW4uaW52YWxpZENhbGxiYWNrPXBufWVuc3VyZSgpe3RoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2V8fHdpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZSYmKHRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2U9d2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlLHRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UudHJhbnNmb3JtQ2FsbGJhY2s9dD0+e01uLnRyYW5zZm9ybUN1c3RvbVN0eWxlKHQpfSx0aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlLnZhbGlkYXRlQ2FsbGJhY2s9KCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5jdXN0b21TdHlsZUludGVyZmFjZS5lbnF1ZXVlZCYmdGhpcy5mbHVzaEN1c3RvbVN0eWxlcygpfSkpfSl9cHJlcGFyZVRlbXBsYXRlKHQsZSl7aWYodGhpcy5lbnN1cmUoKSxKZSh0KSlyZXR1cm47bG5bZV09dDtsZXQgbj1Nbi50cmFuc2Zvcm1UZW1wbGF0ZSh0LGUpO3QuX3N0eWxlQXN0PW59Zmx1c2hDdXN0b21TdHlsZXMoKXtpZih0aGlzLmVuc3VyZSgpLCF0aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlKXJldHVybjtsZXQgdD10aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlLnByb2Nlc3NTdHlsZXMoKTtpZih0aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlLmVucXVldWVkKXtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IG49dGhpcy5jdXN0b21TdHlsZUludGVyZmFjZS5nZXRTdHlsZUZvckN1c3RvbVN0eWxlKHRbZV0pO24mJk1uLnRyYW5zZm9ybUN1c3RvbVN0eWxlKG4pfXRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UuZW5xdWV1ZWQ9ITF9fXN0eWxlU3VidHJlZSh0LGUpe2lmKHRoaXMuZW5zdXJlKCksZSYmUWUodCxlKSx0LnNoYWRvd1Jvb3Qpe3RoaXMuc3R5bGVFbGVtZW50KHQpO2xldCBlPXQuc2hhZG93Um9vdC5jaGlsZHJlbnx8dC5zaGFkb3dSb290LmNoaWxkTm9kZXM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspdGhpcy5zdHlsZVN1YnRyZWUoZVt0XSl9ZWxzZXtsZXQgZT10LmNoaWxkcmVufHx0LmNoaWxkTm9kZXM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspdGhpcy5zdHlsZVN1YnRyZWUoZVt0XSl9fXN0eWxlRWxlbWVudCh0KXt0aGlzLmVuc3VyZSgpO2xldHtpczplfT0oZnVuY3Rpb24gbih0KXtsZXQgZT10LmxvY2FsTmFtZSxuPSIiLGk9IiI7cmV0dXJuIGU/ZS5pbmRleE9mKCItIik+LTE/bj1lOihpPWUsbj10LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUoImlzIil8fCIiKToobj10LmlzLGk9dC5leHRlbmRzKSx7aXM6bix0eXBlRXh0ZW5zaW9uOml9fSkodCksaT1sbltlXTtpZigoIWl8fCFKZShpKSkmJmkmJiFmbihpKSl7KGZ1bmN0aW9uIG4odCl7cmV0dXJuIWZuKHQpJiZ0W2huXT09PXRbdW5dfSkoaSl8fCh0aGlzLnByZXBhcmVUZW1wbGF0ZShpLGUpLChmdW5jdGlvbiByKHQpe3RbaG5dPXRbdW5dLHQuX3ZhbGlkYXRpbmd8fCh0Ll92YWxpZGF0aW5nPSEwLGRuLnRoZW4oKGZ1bmN0aW9uKCl7dFtjbl09dFt1bl0sdC5fdmFsaWRhdGluZz0hMX0pKSl9KShpKSk7bGV0IG89dC5zaGFkb3dSb290O2lmKG8pe2xldCB0PW8ucXVlcnlTZWxlY3Rvcigic3R5bGUiKTt0JiYodC5fX2Nzc1J1bGVzPWkuX3N0eWxlQXN0LHQudGV4dENvbnRlbnQ9WWUoaS5fc3R5bGVBc3QpKX19fXN0eWxlRG9jdW1lbnQodCl7dGhpcy5lbnN1cmUoKSx0aGlzLnN0eWxlU3VidHJlZShkb2N1bWVudC5ib2R5LHQpfX1pZighd2luZG93LlNoYWR5Q1NTfHwhd2luZG93LlNoYWR5Q1NTLlNjb3BpbmdTaGltKXtjb25zdCB0PW5ldyBFbjtsZXQgZT13aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZTt3aW5kb3cuU2hhZHlDU1M9e3ByZXBhcmVUZW1wbGF0ZShlLG4saSl7dC5mbHVzaEN1c3RvbVN0eWxlcygpLHQucHJlcGFyZVRlbXBsYXRlKGUsbil9LHByZXBhcmVUZW1wbGF0ZVN0eWxlcyh0LGUsbil7d2luZG93LlNoYWR5Q1NTLnByZXBhcmVUZW1wbGF0ZSh0LGUsbil9LHByZXBhcmVUZW1wbGF0ZURvbSh0LGUpe30sc3R5bGVTdWJ0cmVlKGUsbil7dC5mbHVzaEN1c3RvbVN0eWxlcygpLHQuc3R5bGVTdWJ0cmVlKGUsbil9LHN0eWxlRWxlbWVudChlKXt0LmZsdXNoQ3VzdG9tU3R5bGVzKCksdC5zdHlsZUVsZW1lbnQoZSl9LHN0eWxlRG9jdW1lbnQoZSl7dC5mbHVzaEN1c3RvbVN0eWxlcygpLHQuc3R5bGVEb2N1bWVudChlKX0sZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlOih0LGUpPT50bih0LGUpLGZsdXNoQ3VzdG9tU3R5bGVzKCl7dC5mbHVzaEN1c3RvbVN0eWxlcygpfSxuYXRpdmVDc3M6a2UsbmF0aXZlU2hhZG93Ok1lLGNzc0J1aWxkOlRlLGRpc2FibGVSdW50aW1lOkFlfSxlJiYod2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlPWUpfXdpbmRvdy5TaGFkeUNTUy5BcHBseVNoaW09TW47Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNsYXNzIFRue2NvbnN0cnVjdG9yKCl7dGhpcy5fYXN5bmNNb2R1bGU9bnVsbCx0aGlzLl9jYWxsYmFjaz1udWxsLHRoaXMuX3RpbWVyPW51bGx9c2V0Q29uZmlnKHQsZSl7dGhpcy5fYXN5bmNNb2R1bGU9dCx0aGlzLl9jYWxsYmFjaz1lLHRoaXMuX3RpbWVyPXRoaXMuX2FzeW5jTW9kdWxlLnJ1bigoKCk9Pnt0aGlzLl90aW1lcj1udWxsLENuLmRlbGV0ZSh0aGlzKSx0aGlzLl9jYWxsYmFjaygpfSkpfWNhbmNlbCgpe3RoaXMuaXNBY3RpdmUoKSYmKHRoaXMuX2NhbmNlbEFzeW5jKCksQ24uZGVsZXRlKHRoaXMpKX1fY2FuY2VsQXN5bmMoKXt0aGlzLmlzQWN0aXZlKCkmJih0aGlzLl9hc3luY01vZHVsZS5jYW5jZWwodGhpcy5fdGltZXIpLHRoaXMuX3RpbWVyPW51bGwpfWZsdXNoKCl7dGhpcy5pc0FjdGl2ZSgpJiYodGhpcy5jYW5jZWwoKSx0aGlzLl9jYWxsYmFjaygpKX1pc0FjdGl2ZSgpe3JldHVybiBudWxsIT10aGlzLl90aW1lcn1zdGF0aWMgZGVib3VuY2UodCxlLG4pe3JldHVybiB0IGluc3RhbmNlb2YgVG4/dC5fY2FuY2VsQXN5bmMoKTp0PW5ldyBUbix0LnNldENvbmZpZyhlLG4pLHR9fWxldCBDbj1uZXcgU2V0O2NvbnN0IEFuPWZ1bmN0aW9uKHQpe0NuLmFkZCh0KX0sa249ZnVuY3Rpb24oKXtjb25zdCB0PUJvb2xlYW4oQ24uc2l6ZSk7cmV0dXJuIENuLmZvckVhY2goKHQ9Pnt0cnl7dC5mbHVzaCgpfWNhdGNoKHQpe3NldFRpbWVvdXQoKCgpPT57dGhyb3cgdH0pKX19KSksdH07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmxldCBMbj0ic3RyaW5nIj09dHlwZW9mIGRvY3VtZW50LmhlYWQuc3R5bGUudG91Y2hBY3Rpb24sUG49Il9fcG9seW1lckdlc3R1cmVzIixObj0iX19wb2x5bWVyR2VzdHVyZXNIYW5kbGVkIixJbj0iX19wb2x5bWVyR2VzdHVyZXNUb3VjaEFjdGlvbiIsUm49WyJtb3VzZWRvd24iLCJtb3VzZW1vdmUiLCJtb3VzZXVwIiwiY2xpY2siXSxPbj1bMCwxLDQsMl0sem49KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiAxPT09bmV3IE1vdXNlRXZlbnQoInRlc3QiLHtidXR0b25zOjF9KS5idXR0b25zfWNhdGNoKHQpe3JldHVybiExfX0pKCk7ZnVuY3Rpb24gRG4odCl7cmV0dXJuIFJuLmluZGV4T2YodCk+LTF9bGV0IEJuPSExO2Z1bmN0aW9uIEhuKHQpe2lmKCFEbih0KSYmInRvdWNoZW5kIiE9PXQpcmV0dXJuIExuJiZCbiYmdj97cGFzc2l2ZTohMH06dm9pZCAwfSEoZnVuY3Rpb24oKXt0cnl7bGV0IHQ9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0KCl7Qm49ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsdCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsdCl9Y2F0Y2godCl7fX0pKCk7bGV0IEZuPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL2lQKD86W29hXWR8aG9uZSl8QW5kcm9pZC8pO2NvbnN0IFZuPVtdLFVuPXtidXR0b246ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLG1ldGVyOiEwLG91dHB1dDohMCx0ZXh0YXJlYTohMCxwcm9ncmVzczohMCxzZWxlY3Q6ITB9LGpuPXtidXR0b246ITAsY29tbWFuZDohMCxmaWVsZHNldDohMCxpbnB1dDohMCxrZXlnZW46ITAsb3B0Z3JvdXA6ITAsb3B0aW9uOiEwLHNlbGVjdDohMCx0ZXh0YXJlYTohMH07ZnVuY3Rpb24gR24odCl7bGV0IGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodC5sYWJlbHN8fFtdKTtpZighZS5sZW5ndGgpe2U9W107bGV0IG49dC5nZXRSb290Tm9kZSgpO2lmKHQuaWQpe2xldCBpPW4ucXVlcnlTZWxlY3RvckFsbChgbGFiZWxbZm9yID0gJHt0LmlkfV1gKTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyllLnB1c2goaVt0XSl9fXJldHVybiBlfWxldCBXbj1mdW5jdGlvbih0KXtsZXQgZT10LnNvdXJjZUNhcGFiaWxpdGllcztpZigoIWV8fGUuZmlyZXNUb3VjaEV2ZW50cykmJih0W05uXT17c2tpcDohMH0sImNsaWNrIj09PXQudHlwZSkpe2xldCBlPSExLG49Sm4odCk7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspe2lmKG5bdF0ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSlpZigibGFiZWwiPT09blt0XS5sb2NhbE5hbWUpVm4ucHVzaChuW3RdKTtlbHNlIGlmKFVuW25bdF0ubG9jYWxOYW1lXSl7bGV0IGk9R24oblt0XSk7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0KyspZT1lfHxWbi5pbmRleE9mKGlbdF0pPi0xfWlmKG5bdF09PT1Ybi5tb3VzZS50YXJnZXQpcmV0dXJufWlmKGUpcmV0dXJuO3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX07ZnVuY3Rpb24gcW4odCl7bGV0IGU9Rm4/WyJjbGljayJdOlJuO2ZvcihsZXQgbixpPTA7aTxlLmxlbmd0aDtpKyspbj1lW2ldLHQ/KFZuLmxlbmd0aD0wLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIobixXbiwhMCkpOmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIobixXbiwhMCl9ZnVuY3Rpb24gWW4odCl7bGV0IGU9dC50eXBlO2lmKCFEbihlKSlyZXR1cm4hMTtpZigibW91c2Vtb3ZlIj09PWUpe2xldCBlPXZvaWQgMD09PXQuYnV0dG9ucz8xOnQuYnV0dG9ucztyZXR1cm4gdCBpbnN0YW5jZW9mIHdpbmRvdy5Nb3VzZUV2ZW50JiYhem4mJihlPU9uW3Qud2hpY2hdfHwwKSxCb29sZWFuKDEmZSl9cmV0dXJuIDA9PT0odm9pZCAwPT09dC5idXR0b24/MDp0LmJ1dHRvbil9bGV0IFhuPXttb3VzZTp7dGFyZ2V0Om51bGwsbW91c2VJZ25vcmVKb2I6bnVsbH0sdG91Y2g6e3g6MCx5OjAsaWQ6LTEsc2Nyb2xsRGVjaWRlZDohMX19O2Z1bmN0aW9uICRuKHQsZSxuKXt0Lm1vdmVmbj1lLHQudXBmbj1uLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbil9ZnVuY3Rpb24gS24odCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0Lm1vdmVmbiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdC51cGZuKSx0Lm1vdmVmbj1udWxsLHQudXBmbj1udWxsfWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwoZnVuY3Rpb24gWm4odCl7WG4ubW91c2UubW91c2VJZ25vcmVKb2J8fHFuKCEwKSxYbi5tb3VzZS50YXJnZXQ9Sm4odClbMF0sWG4ubW91c2UubW91c2VJZ25vcmVKb2I9VG4uZGVib3VuY2UoWG4ubW91c2UubW91c2VJZ25vcmVKb2IsZ3QuYWZ0ZXIoMjUwMCksKGZ1bmN0aW9uKCl7cW4oKSxYbi5tb3VzZS50YXJnZXQ9bnVsbCxYbi5tb3VzZS5tb3VzZUlnbm9yZUpvYj1udWxsfSkpfSksISFCbiYme3Bhc3NpdmU6ITB9KTtjb25zdCBKbj13aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5ub1BhdGNoP3dpbmRvdy5TaGFkeURPTS5jb21wb3NlZFBhdGg6dD0+dC5jb21wb3NlZFBhdGgmJnQuY29tcG9zZWRQYXRoKCl8fFtdLFFuPXt9LHRpPVtdO2Z1bmN0aW9uIGVpKHQpe2NvbnN0IGU9Sm4odCk7cmV0dXJuIGUubGVuZ3RoPjA/ZVswXTp0LnRhcmdldH1mdW5jdGlvbiBuaSh0KXtsZXQgZSxuPXQudHlwZSxpPXQuY3VycmVudFRhcmdldFtQbl07aWYoIWkpcmV0dXJuO2xldCByPWlbbl07aWYocil7aWYoIXRbTm5dJiYodFtObl09e30sInRvdWNoIj09PW4uc2xpY2UoMCw1KSkpe2xldCBlPSh0PXQpLmNoYW5nZWRUb3VjaGVzWzBdO2lmKCJ0b3VjaHN0YXJ0Ij09PW4mJjE9PT10LnRvdWNoZXMubGVuZ3RoJiYoWG4udG91Y2guaWQ9ZS5pZGVudGlmaWVyKSxYbi50b3VjaC5pZCE9PWUuaWRlbnRpZmllcilyZXR1cm47TG58fCJ0b3VjaHN0YXJ0IiE9PW4mJiJ0b3VjaG1vdmUiIT09bnx8KGZ1bmN0aW9uIG8odCl7bGV0IGU9dC5jaGFuZ2VkVG91Y2hlc1swXSxuPXQudHlwZTtpZigidG91Y2hzdGFydCI9PT1uKVhuLnRvdWNoLng9ZS5jbGllbnRYLFhuLnRvdWNoLnk9ZS5jbGllbnRZLFhuLnRvdWNoLnNjcm9sbERlY2lkZWQ9ITE7ZWxzZSBpZigidG91Y2htb3ZlIj09PW4pe2lmKFhuLnRvdWNoLnNjcm9sbERlY2lkZWQpcmV0dXJuO1huLnRvdWNoLnNjcm9sbERlY2lkZWQ9ITA7bGV0IG49KGZ1bmN0aW9uIGkodCl7bGV0IGU9ImF1dG8iLG49Sm4odCk7Zm9yKGxldCB0LGk9MDtpPG4ubGVuZ3RoO2krKylpZih0PW5baV0sdFtJbl0pe2U9dFtJbl07YnJlYWt9cmV0dXJuIGV9KSh0KSxpPSExLHI9TWF0aC5hYnMoWG4udG91Y2gueC1lLmNsaWVudFgpLG89TWF0aC5hYnMoWG4udG91Y2gueS1lLmNsaWVudFkpO3QuY2FuY2VsYWJsZSYmKCJub25lIj09PW4/aT0hMDoicGFuLXgiPT09bj9pPW8+cjoicGFuLXkiPT09biYmKGk9cj5vKSksaT90LnByZXZlbnREZWZhdWx0KCk6c2koInRyYWNrIil9fSkodCl9aWYoZT10W05uXSwhZS5za2lwKXtmb3IobGV0IG4saT0wO2k8dGkubGVuZ3RoO2krKyluPXRpW2ldLHJbbi5uYW1lXSYmIWVbbi5uYW1lXSYmbi5mbG93JiZuLmZsb3cuc3RhcnQuaW5kZXhPZih0LnR5cGUpPi0xJiZuLnJlc2V0JiZuLnJlc2V0KCk7Zm9yKGxldCBpLG89MDtvPHRpLmxlbmd0aDtvKyspaT10aVtvXSxyW2kubmFtZV0mJiFlW2kubmFtZV0mJihlW2kubmFtZV09ITAsaVtuXSh0KSl9fX1mdW5jdGlvbiBpaSh0LGUsbil7cmV0dXJuISFRbltlXSYmKChmdW5jdGlvbiBpKHQsZSxuKXtsZXQgaT1RbltlXSxyPWkuZGVwcyxvPWkubmFtZSxhPXRbUG5dO2F8fCh0W1BuXT1hPXt9KTtmb3IobGV0IGUsbixpPTA7aTxyLmxlbmd0aDtpKyspZT1yW2ldLEZuJiZEbihlKSYmImNsaWNrIiE9PWV8fChuPWFbZV0sbnx8KGFbZV09bj17X2NvdW50OjB9KSwwPT09bi5fY291bnQmJnQuYWRkRXZlbnRMaXN0ZW5lcihlLG5pLEhuKGUpKSxuW29dPShuW29dfHwwKSsxLG4uX2NvdW50PShuLl9jb3VudHx8MCkrMSk7dC5hZGRFdmVudExpc3RlbmVyKGUsbiksaS50b3VjaEFjdGlvbiYmb2kodCxpLnRvdWNoQWN0aW9uKX0pKHQsZSxuKSwhMCl9ZnVuY3Rpb24gcmkodCl7dGkucHVzaCh0KTtmb3IobGV0IGU9MDtlPHQuZW1pdHMubGVuZ3RoO2UrKylRblt0LmVtaXRzW2VdXT10fWZ1bmN0aW9uIG9pKHQsZSl7TG4mJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdnQucnVuKCgoKT0+e3Quc3R5bGUudG91Y2hBY3Rpb249ZX0pKSx0W0luXT1lfWZ1bmN0aW9uIGFpKHQsZSxuKXtsZXQgaT1uZXcgRXZlbnQoZSx7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNvbXBvc2VkOiEwfSk7aWYoaS5kZXRhaWw9bixZKHQpLmRpc3BhdGNoRXZlbnQoaSksaS5kZWZhdWx0UHJldmVudGVkKXtsZXQgdD1uLnByZXZlbnRlcnx8bi5zb3VyY2VFdmVudDt0JiZ0LnByZXZlbnREZWZhdWx0JiZ0LnByZXZlbnREZWZhdWx0KCl9fWZ1bmN0aW9uIHNpKHQpe2xldCBlPShmdW5jdGlvbiBuKHQpe2ZvcihsZXQgZSxuPTA7bjx0aS5sZW5ndGg7bisrKXtlPXRpW25dO2ZvcihsZXQgbixpPTA7aTxlLmVtaXRzLmxlbmd0aDtpKyspaWYobj1lLmVtaXRzW2ldLG49PT10KXJldHVybiBlfXJldHVybiBudWxsfSkodCk7ZS5pbmZvJiYoZS5pbmZvLnByZXZlbnQ9ITApfWZ1bmN0aW9uIGxpKHQsZSxuLGkpe2UmJmFpKGUsdCx7eDpuLmNsaWVudFgseTpuLmNsaWVudFksc291cmNlRXZlbnQ6bixwcmV2ZW50ZXI6aSxwcmV2ZW50OmZ1bmN0aW9uKHQpe3JldHVybiBzaSh0KX19KX1mdW5jdGlvbiBjaSh0LGUsbil7aWYodC5wcmV2ZW50KXJldHVybiExO2lmKHQuc3RhcnRlZClyZXR1cm4hMDtsZXQgaT1NYXRoLmFicyh0LngtZSkscj1NYXRoLmFicyh0Lnktbik7cmV0dXJuIGk+PTV8fHI+PTV9ZnVuY3Rpb24gdWkodCxlLG4pe2lmKCFlKXJldHVybjtsZXQgaSxyPXQubW92ZXNbdC5tb3Zlcy5sZW5ndGgtMl0sbz10Lm1vdmVzW3QubW92ZXMubGVuZ3RoLTFdLGE9MDtyJiYoaT1vLngtci54LGE9by55LXIueSksYWkoZSwidHJhY2siLHtzdGF0ZTp0LnN0YXRlLHg6bi5jbGllbnRYLHk6bi5jbGllbnRZLGR4Om8ueC10LngsZHk6by55LXQueSxkZHg6aSxkZHk6YSxzb3VyY2VFdmVudDpuLGhvdmVyOmZ1bmN0aW9uKCl7cmV0dXJuKGZ1bmN0aW9uIHQoZSxuKXtsZXQgaT1kb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGUsbikscj1pO2Zvcig7ciYmci5zaGFkb3dSb290JiYhd2luZG93LlNoYWR5RE9NOyl7bGV0IHQ9cjtpZihyPXIuc2hhZG93Um9vdC5lbGVtZW50RnJvbVBvaW50KGUsbiksdD09PXIpYnJlYWs7ciYmKGk9cil9cmV0dXJuIGl9KShuLmNsaWVudFgsbi5jbGllbnRZKX19KX1mdW5jdGlvbiBoaSh0LGUsbil7bGV0IGk9TWF0aC5hYnMoZS5jbGllbnRYLXQueCkscj1NYXRoLmFicyhlLmNsaWVudFktdC55KSxvPWVpKG58fGUpOyFvfHxqbltvLmxvY2FsTmFtZV0mJm8uaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpfHwoaXNOYU4oaSl8fGlzTmFOKHIpfHxpPD0yNSYmcjw9MjV8fChmdW5jdGlvbiBhKHQpe2lmKCJjbGljayI9PT10LnR5cGUpe2lmKDA9PT10LmRldGFpbClyZXR1cm4hMDtsZXQgZT1laSh0KTtpZighZS5ub2RlVHlwZXx8ZS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFKXJldHVybiEwO2xldCBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT10LnBhZ2VYLHI9dC5wYWdlWTtyZXR1cm4hKGk+PW4ubGVmdCYmaTw9bi5yaWdodCYmcj49bi50b3AmJnI8PW4uYm90dG9tKX1yZXR1cm4hMX0pKGUpKSYmKHQucHJldmVudHx8YWkobywidGFwIix7eDplLmNsaWVudFgseTplLmNsaWVudFksc291cmNlRXZlbnQ6ZSxwcmV2ZW50ZXI6bn0pKX1yaSh7bmFtZToiZG93bnVwIixkZXBzOlsibW91c2Vkb3duIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIl0sZmxvdzp7c3RhcnQ6WyJtb3VzZWRvd24iLCJ0b3VjaHN0YXJ0Il0sZW5kOlsibW91c2V1cCIsInRvdWNoZW5kIl19LGVtaXRzOlsiZG93biIsInVwIl0saW5mbzp7bW92ZWZuOm51bGwsdXBmbjpudWxsfSxyZXNldDpmdW5jdGlvbigpe0tuKHRoaXMuaW5mbyl9LG1vdXNlZG93bjpmdW5jdGlvbih0KXtpZighWW4odCkpcmV0dXJuO2xldCBlPWVpKHQpLG49dGhpczskbih0aGlzLmluZm8sKGZ1bmN0aW9uIHQoaSl7WW4oaSl8fChsaSgidXAiLGUsaSksS24obi5pbmZvKSl9KSwoZnVuY3Rpb24gdChpKXtZbihpKSYmbGkoInVwIixlLGkpLEtuKG4uaW5mbyl9KSksbGkoImRvd24iLGUsdCl9LHRvdWNoc3RhcnQ6ZnVuY3Rpb24odCl7bGkoImRvd24iLGVpKHQpLHQuY2hhbmdlZFRvdWNoZXNbMF0sdCl9LHRvdWNoZW5kOmZ1bmN0aW9uKHQpe2xpKCJ1cCIsZWkodCksdC5jaGFuZ2VkVG91Y2hlc1swXSx0KX19KSxyaSh7bmFtZToidHJhY2siLHRvdWNoQWN0aW9uOiJub25lIixkZXBzOlsibW91c2Vkb3duIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIl0sZmxvdzp7c3RhcnQ6WyJtb3VzZWRvd24iLCJ0b3VjaHN0YXJ0Il0sZW5kOlsibW91c2V1cCIsInRvdWNoZW5kIl19LGVtaXRzOlsidHJhY2siXSxpbmZvOnt4OjAseTowLHN0YXRlOiJzdGFydCIsc3RhcnRlZDohMSxtb3ZlczpbXSxhZGRNb3ZlOmZ1bmN0aW9uKHQpe3RoaXMubW92ZXMubGVuZ3RoPjImJnRoaXMubW92ZXMuc2hpZnQoKSx0aGlzLm1vdmVzLnB1c2godCl9LG1vdmVmbjpudWxsLHVwZm46bnVsbCxwcmV2ZW50OiExfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuaW5mby5zdGF0ZT0ic3RhcnQiLHRoaXMuaW5mby5zdGFydGVkPSExLHRoaXMuaW5mby5tb3Zlcz1bXSx0aGlzLmluZm8ueD0wLHRoaXMuaW5mby55PTAsdGhpcy5pbmZvLnByZXZlbnQ9ITEsS24odGhpcy5pbmZvKX0sbW91c2Vkb3duOmZ1bmN0aW9uKHQpe2lmKCFZbih0KSlyZXR1cm47bGV0IGU9ZWkodCksbj10aGlzLGk9ZnVuY3Rpb24gdChpKXtsZXQgcj1pLmNsaWVudFgsbz1pLmNsaWVudFk7Y2kobi5pbmZvLHIsbykmJihuLmluZm8uc3RhdGU9bi5pbmZvLnN0YXJ0ZWQ/Im1vdXNldXAiPT09aS50eXBlPyJlbmQiOiJ0cmFjayI6InN0YXJ0Iiwic3RhcnQiPT09bi5pbmZvLnN0YXRlJiZzaSgidGFwIiksbi5pbmZvLmFkZE1vdmUoe3g6cix5Om99KSxZbihpKXx8KG4uaW5mby5zdGF0ZT0iZW5kIixLbihuLmluZm8pKSxlJiZ1aShuLmluZm8sZSxpKSxuLmluZm8uc3RhcnRlZD0hMCl9OyRuKHRoaXMuaW5mbyxpLChmdW5jdGlvbiB0KGUpe24uaW5mby5zdGFydGVkJiZpKGUpLEtuKG4uaW5mbyl9KSksdGhpcy5pbmZvLng9dC5jbGllbnRYLHRoaXMuaW5mby55PXQuY2xpZW50WX0sdG91Y2hzdGFydDpmdW5jdGlvbih0KXtsZXQgZT10LmNoYW5nZWRUb3VjaGVzWzBdO3RoaXMuaW5mby54PWUuY2xpZW50WCx0aGlzLmluZm8ueT1lLmNsaWVudFl9LHRvdWNobW92ZTpmdW5jdGlvbih0KXtsZXQgZT1laSh0KSxuPXQuY2hhbmdlZFRvdWNoZXNbMF0saT1uLmNsaWVudFgscj1uLmNsaWVudFk7Y2kodGhpcy5pbmZvLGkscikmJigic3RhcnQiPT09dGhpcy5pbmZvLnN0YXRlJiZzaSgidGFwIiksdGhpcy5pbmZvLmFkZE1vdmUoe3g6aSx5OnJ9KSx1aSh0aGlzLmluZm8sZSxuKSx0aGlzLmluZm8uc3RhdGU9InRyYWNrIix0aGlzLmluZm8uc3RhcnRlZD0hMCl9LHRvdWNoZW5kOmZ1bmN0aW9uKHQpe2xldCBlPWVpKHQpLG49dC5jaGFuZ2VkVG91Y2hlc1swXTt0aGlzLmluZm8uc3RhcnRlZCYmKHRoaXMuaW5mby5zdGF0ZT0iZW5kIix0aGlzLmluZm8uYWRkTW92ZSh7eDpuLmNsaWVudFgseTpuLmNsaWVudFl9KSx1aSh0aGlzLmluZm8sZSxuKSl9fSkscmkoe25hbWU6InRhcCIsZGVwczpbIm1vdXNlZG93biIsImNsaWNrIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIl0sZmxvdzp7c3RhcnQ6WyJtb3VzZWRvd24iLCJ0b3VjaHN0YXJ0Il0sZW5kOlsiY2xpY2siLCJ0b3VjaGVuZCJdfSxlbWl0czpbInRhcCJdLGluZm86e3g6TmFOLHk6TmFOLHByZXZlbnQ6ITF9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5pbmZvLng9TmFOLHRoaXMuaW5mby55PU5hTix0aGlzLmluZm8ucHJldmVudD0hMX0sbW91c2Vkb3duOmZ1bmN0aW9uKHQpe1luKHQpJiYodGhpcy5pbmZvLng9dC5jbGllbnRYLHRoaXMuaW5mby55PXQuY2xpZW50WSl9LGNsaWNrOmZ1bmN0aW9uKHQpe1luKHQpJiZoaSh0aGlzLmluZm8sdCl9LHRvdWNoc3RhcnQ6ZnVuY3Rpb24odCl7Y29uc3QgZT10LmNoYW5nZWRUb3VjaGVzWzBdO3RoaXMuaW5mby54PWUuY2xpZW50WCx0aGlzLmluZm8ueT1lLmNsaWVudFl9LHRvdWNoZW5kOmZ1bmN0aW9uKHQpe2hpKHRoaXMuaW5mbyx0LmNoYW5nZWRUb3VjaGVzWzBdLHQpfX0pO2NvbnN0IGRpPWVpLHBpPUkoKHQ9PmNsYXNzIGV4dGVuZHMgdHtfYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0LGUsbil7aWkodCxlLG4pfHxzdXBlci5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0LGUsbil9X3JlbW92ZUV2ZW50TGlzdGVuZXJGcm9tTm9kZSh0LGUsbil7KGZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiEhUW5bZV0mJigoZnVuY3Rpb24gaSh0LGUsbil7bGV0IGk9UW5bZV0scj1pLmRlcHMsbz1pLm5hbWUsYT10W1BuXTtpZihhKWZvcihsZXQgZSxuLGk9MDtpPHIubGVuZ3RoO2krKyllPXJbaV0sbj1hW2VdLG4mJm5bb10mJihuW29dPShuW29dfHwxKS0xLG4uX2NvdW50PShuLl9jb3VudHx8MSktMSwwPT09bi5fY291bnQmJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG5pLEhuKGUpKSk7dC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbil9KSh0LGUsbiksITApfSkodCxlLG4pfHxzdXBlci5fcmVtb3ZlRXZlbnRMaXN0ZW5lckZyb21Ob2RlKHQsZSxuKX19KSksZmk9Lzpob3N0XCg6ZGlyXCgobHRyfHJ0bClcKVwpL2csbWk9LyhbXHNcdy0jXC5cW1xdXCpdKik6ZGlyXCgobHRyfHJ0bClcKS9nLGdpPS86ZGlyXCgoPzpsdHJ8cnRsKVwpLyxfaT1Cb29sZWFuKHdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmluVXNlKSx5aT1bXTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9sZXQgdmk9bnVsbCxiaT0iIjtmdW5jdGlvbiB4aSgpe2JpPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRpciIpfWZ1bmN0aW9uIHdpKHQpe3QuX19hdXRvRGlyT3B0T3V0fHx0LnNldEF0dHJpYnV0ZSgiZGlyIixiaSl9ZnVuY3Rpb24gU2koKXt4aSgpLGJpPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRpciIpO2ZvcihsZXQgdD0wO3Q8eWkubGVuZ3RoO3QrKyl3aSh5aVt0XSl9Y29uc3QgTWk9SSgodD0+e19pfHx2aXx8KHhpKCksdmk9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoU2kpLHZpLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbImRpciJdfSkpO2NvbnN0IGU9TXQodCk7Y2xhc3MgbiBleHRlbmRzIGV7c3RhdGljIF9wcm9jZXNzU3R5bGVUZXh0KHQsbil7cmV0dXJuIHQ9ZS5fcHJvY2Vzc1N0eWxlVGV4dC5jYWxsKHRoaXMsdCxuKSwhX2kmJmdpLnRlc3QodCkmJih0PXRoaXMuX3JlcGxhY2VEaXJJbkNzc1RleHQodCksdGhpcy5fX2FjdGl2YXRlRGlyPSEwKSx0fXN0YXRpYyBfcmVwbGFjZURpckluQ3NzVGV4dCh0KXtsZXQgZT10O3JldHVybiBlPWUucmVwbGFjZShmaSwnOmhvc3QoW2Rpcj0iJDEiXSknKSxlPWUucmVwbGFjZShtaSwnOmhvc3QoW2Rpcj0iJDIiXSkgJDEnKSxlfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9fYXV0b0Rpck9wdE91dD0hMX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5fX2F1dG9EaXJPcHRPdXQ9dGhpcy5oYXNBdHRyaWJ1dGUoImRpciIpfWNvbm5lY3RlZENhbGxiYWNrKCl7ZS5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2smJnN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb25zdHJ1Y3Rvci5fX2FjdGl2YXRlRGlyJiYoKGZ1bmN0aW9uIHQoKXt2aSYmdmkudGFrZVJlY29yZHMoKS5sZW5ndGgmJlNpKCl9KSgpLHlpLnB1c2godGhpcyksd2kodGhpcykpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7aWYoZS5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2smJnN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb25zdHJ1Y3Rvci5fX2FjdGl2YXRlRGlyKXtjb25zdCB0PXlpLmluZGV4T2YodGhpcyk7dD4tMSYmeWkuc3BsaWNlKHQsMSl9fX1yZXR1cm4gbi5fX2FjdGl2YXRlRGlyPSExLG59KSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovbGV0IEVpPSExLFRpPVtdLENpPVtdO2Z1bmN0aW9uIEFpKCl7RWk9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe0VpPSExLChmdW5jdGlvbiB0KGUpe2Zvcig7ZS5sZW5ndGg7KWtpKGUuc2hpZnQoKSl9KShUaSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKWtpKGUuc2hpZnQoKSl9KShDaSl9KSl9KSl9ZnVuY3Rpb24ga2kodCl7Y29uc3QgZT10WzBdLG49dFsxXSxpPXRbMl07dHJ5e24uYXBwbHkoZSxpKX1jYXRjaCh0KXtzZXRUaW1lb3V0KCgoKT0+e3Rocm93IHR9KSl9fWZ1bmN0aW9uIExpKHQsZSxuKXtFaXx8QWkoKSxDaS5wdXNoKFt0LGUsbl0pfQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2Z1bmN0aW9uIFBpKCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoInVucmVzb2x2ZWQiKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KZnVuY3Rpb24gTmkodCxlLG4pe3JldHVybntpbmRleDp0LHJlbW92ZWQ6ZSxhZGRlZENvdW50Om59fWZ1bmN0aW9uIElpKHQsZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCxlLGkscixvLGEpe2xldCBzLGw9MCxjPTAsdT1NYXRoLm1pbihpLWUsYS1vKTtpZigwPT1lJiYwPT1vJiYobD0oZnVuY3Rpb24gaCh0LGUsbil7Zm9yKGxldCBpPTA7aTxuO2krKylpZighUmkodFtpXSxlW2ldKSlyZXR1cm4gaTtyZXR1cm4gbn0pKHQscix1KSksaT09dC5sZW5ndGgmJmE9PXIubGVuZ3RoJiYoYz0oZnVuY3Rpb24gZCh0LGUsbil7bGV0IGk9dC5sZW5ndGgscj1lLmxlbmd0aCxvPTA7Zm9yKDtvPG4mJlJpKHRbLS1pXSxlWy0tcl0pOylvKys7cmV0dXJuIG99KSh0LHIsdS1sKSksbys9bCxhLT1jLChpLT1jKS0oZSs9bCk9PTAmJmEtbz09MClyZXR1cm5bXTtpZihlPT1pKXtmb3Iocz1OaShlLFtdLDApO288YTspcy5yZW1vdmVkLnB1c2gocltvKytdKTtyZXR1cm5bc119aWYobz09YSlyZXR1cm5bTmkoZSxbXSxpLWUpXTtsZXQgcD0oZnVuY3Rpb24gbSh0KXtsZXQgZT10Lmxlbmd0aC0xLG49dFswXS5sZW5ndGgtMSxpPXRbZV1bbl0scj1bXTtmb3IoO2U+MHx8bj4wOyl7aWYoMD09ZSl7ci5wdXNoKDIpLG4tLTtjb250aW51ZX1pZigwPT1uKXtyLnB1c2goMyksZS0tO2NvbnRpbnVlfWxldCBvLGE9dFtlLTFdW24tMV0scz10W2UtMV1bbl0sbD10W2VdW24tMV07bz1zPGw/czxhP3M6YTpsPGE/bDphLG89PWE/KGE9PWk/ci5wdXNoKDApOihyLnB1c2goMSksaT1hKSxlLS0sbi0tKTpvPT1zPyhyLnB1c2goMyksZS0tLGk9cyk6KHIucHVzaCgyKSxuLS0saT1sKX1yZXR1cm4gci5yZXZlcnNlKCkscn0pKChmdW5jdGlvbiBmKHQsZSxuLGkscixvKXtsZXQgYT1vLXIrMSxzPW4tZSsxLGw9bmV3IEFycmF5KGEpO2ZvcihsZXQgdD0wO3Q8YTt0KyspbFt0XT1uZXcgQXJyYXkocyksbFt0XVswXT10O2ZvcihsZXQgdD0wO3Q8czt0KyspbFswXVt0XT10O2ZvcihsZXQgbj0xO248YTtuKyspZm9yKGxldCBvPTE7bzxzO28rKylpZihSaSh0W2Urby0xXSxpW3Irbi0xXSkpbFtuXVtvXT1sW24tMV1bby0xXTtlbHNle2xldCB0PWxbbi0xXVtvXSsxLGU9bFtuXVtvLTFdKzE7bFtuXVtvXT10PGU/dDplfXJldHVybiBsfSkodCxlLGkscixvLGEpKTtzPXZvaWQgMDtsZXQgZz1bXSxfPWUseT1vO2ZvcihsZXQgdD0wO3Q8cC5sZW5ndGg7dCsrKXN3aXRjaChwW3RdKXtjYXNlIDA6cyYmKGcucHVzaChzKSxzPXZvaWQgMCksXysrLHkrKzticmVhaztjYXNlIDE6c3x8KHM9TmkoXyxbXSwwKSkscy5hZGRlZENvdW50KyssXysrLHMucmVtb3ZlZC5wdXNoKHJbeV0pLHkrKzticmVhaztjYXNlIDI6c3x8KHM9TmkoXyxbXSwwKSkscy5hZGRlZENvdW50KyssXysrO2JyZWFrO2Nhc2UgMzpzfHwocz1OaShfLFtdLDApKSxzLnJlbW92ZWQucHVzaChyW3ldKSx5Kyt9cmV0dXJuIHMmJmcucHVzaChzKSxnfSkodCwwLHQubGVuZ3RoLGUsMCxlLmxlbmd0aCl9ZnVuY3Rpb24gUmkodCxlKXtyZXR1cm4gdD09PWV9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovZnVuY3Rpb24gT2kodCl7cmV0dXJuInNsb3QiPT09dC5sb2NhbE5hbWV9ImludGVyYWN0aXZlIj09PWRvY3VtZW50LnJlYWR5U3RhdGV8fCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP1BpKCk6d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLFBpKTtsZXQgemk9Y2xhc3N7c3RhdGljIGdldEZsYXR0ZW5lZE5vZGVzKHQpe2NvbnN0IGU9WSh0KTtyZXR1cm4gT2kodCk/KHQ9dCxlLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KSk6QXJyYXkuZnJvbShlLmNoaWxkTm9kZXMpLm1hcCgodD0+T2kodCk/WSh0PXQpLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KTpbdF0pKS5yZWR1Y2UoKCh0LGUpPT50LmNvbmNhdChlKSksW10pfWNvbnN0cnVjdG9yKHQsZSl7dGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyPW51bGwsdGhpcy5fbmF0aXZlQ2hpbGRyZW5PYnNlcnZlcj1udWxsLHRoaXMuX2Nvbm5lY3RlZD0hMSx0aGlzLl90YXJnZXQ9dCx0aGlzLmNhbGxiYWNrPWUsdGhpcy5fZWZmZWN0aXZlTm9kZXM9W10sdGhpcy5fb2JzZXJ2ZXI9bnVsbCx0aGlzLl9zY2hlZHVsZWQ9ITEsdGhpcy5fYm91bmRTY2hlZHVsZT0oKT0+e3RoaXMuX3NjaGVkdWxlKCl9LHRoaXMuY29ubmVjdCgpLHRoaXMuX3NjaGVkdWxlKCl9Y29ubmVjdCgpe09pKHRoaXMuX3RhcmdldCk/dGhpcy5fbGlzdGVuU2xvdHMoW3RoaXMuX3RhcmdldF0pOlkodGhpcy5fdGFyZ2V0KS5jaGlsZHJlbiYmKHRoaXMuX2xpc3RlblNsb3RzKFkodGhpcy5fdGFyZ2V0KS5jaGlsZHJlbiksd2luZG93LlNoYWR5RE9NP3RoaXMuX3NoYWR5Q2hpbGRyZW5PYnNlcnZlcj13aW5kb3cuU2hhZHlET00ub2JzZXJ2ZUNoaWxkcmVuKHRoaXMuX3RhcmdldCwodD0+e3RoaXMuX3Byb2Nlc3NNdXRhdGlvbnModCl9KSk6KHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKHQ9Pnt0aGlzLl9wcm9jZXNzTXV0YXRpb25zKHQpfSkpLHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl90YXJnZXQse2NoaWxkTGlzdDohMH0pKSksdGhpcy5fY29ubmVjdGVkPSEwfWRpc2Nvbm5lY3QoKXtPaSh0aGlzLl90YXJnZXQpP3RoaXMuX3VubGlzdGVuU2xvdHMoW3RoaXMuX3RhcmdldF0pOlkodGhpcy5fdGFyZ2V0KS5jaGlsZHJlbiYmKHRoaXMuX3VubGlzdGVuU2xvdHMoWSh0aGlzLl90YXJnZXQpLmNoaWxkcmVuKSx3aW5kb3cuU2hhZHlET00mJnRoaXMuX3NoYWR5Q2hpbGRyZW5PYnNlcnZlcj8od2luZG93LlNoYWR5RE9NLnVub2JzZXJ2ZUNoaWxkcmVuKHRoaXMuX3NoYWR5Q2hpbGRyZW5PYnNlcnZlciksdGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyPW51bGwpOnRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXImJih0aGlzLl9uYXRpdmVDaGlsZHJlbk9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLl9uYXRpdmVDaGlsZHJlbk9ic2VydmVyPW51bGwpKSx0aGlzLl9jb25uZWN0ZWQ9ITF9X3NjaGVkdWxlKCl7dGhpcy5fc2NoZWR1bGVkfHwodGhpcy5fc2NoZWR1bGVkPSEwLHZ0LnJ1bigoKCk9PnRoaXMuZmx1c2goKSkpKX1fcHJvY2Vzc011dGF0aW9ucyh0KXt0aGlzLl9wcm9jZXNzU2xvdE11dGF0aW9ucyh0KSx0aGlzLmZsdXNoKCl9X3Byb2Nlc3NTbG90TXV0YXRpb25zKHQpe2lmKHQpZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2xldCBuPXRbZV07bi5hZGRlZE5vZGVzJiZ0aGlzLl9saXN0ZW5TbG90cyhuLmFkZGVkTm9kZXMpLG4ucmVtb3ZlZE5vZGVzJiZ0aGlzLl91bmxpc3RlblNsb3RzKG4ucmVtb3ZlZE5vZGVzKX19Zmx1c2goKXtpZighdGhpcy5fY29ubmVjdGVkKXJldHVybiExO3dpbmRvdy5TaGFkeURPTSYmU2hhZHlET00uZmx1c2goKSx0aGlzLl9uYXRpdmVDaGlsZHJlbk9ic2VydmVyP3RoaXMuX3Byb2Nlc3NTbG90TXV0YXRpb25zKHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXIudGFrZVJlY29yZHMoKSk6dGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyJiZ0aGlzLl9wcm9jZXNzU2xvdE11dGF0aW9ucyh0aGlzLl9zaGFkeUNoaWxkcmVuT2JzZXJ2ZXIudGFrZVJlY29yZHMoKSksdGhpcy5fc2NoZWR1bGVkPSExO2xldCB0PXt0YXJnZXQ6dGhpcy5fdGFyZ2V0LGFkZGVkTm9kZXM6W10scmVtb3ZlZE5vZGVzOltdfSxlPXRoaXMuY29uc3RydWN0b3IuZ2V0RmxhdHRlbmVkTm9kZXModGhpcy5fdGFyZ2V0KSxuPUlpKGUsdGhpcy5fZWZmZWN0aXZlTm9kZXMpO2ZvcihsZXQgZSxpPTA7aTxuLmxlbmd0aCYmKGU9bltpXSk7aSsrKWZvcihsZXQgbixpPTA7aTxlLnJlbW92ZWQubGVuZ3RoJiYobj1lLnJlbW92ZWRbaV0pO2krKyl0LnJlbW92ZWROb2Rlcy5wdXNoKG4pO2ZvcihsZXQgaSxyPTA7cjxuLmxlbmd0aCYmKGk9bltyXSk7cisrKWZvcihsZXQgbj1pLmluZGV4O248aS5pbmRleCtpLmFkZGVkQ291bnQ7bisrKXQuYWRkZWROb2Rlcy5wdXNoKGVbbl0pO3RoaXMuX2VmZmVjdGl2ZU5vZGVzPWU7bGV0IGk9ITE7cmV0dXJuKHQuYWRkZWROb2Rlcy5sZW5ndGh8fHQucmVtb3ZlZE5vZGVzLmxlbmd0aCkmJihpPSEwLHRoaXMuY2FsbGJhY2suY2FsbCh0aGlzLl90YXJnZXQsdCkpLGl9X2xpc3RlblNsb3RzKHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbj10W2VdO09pKG4pJiZuLmFkZEV2ZW50TGlzdGVuZXIoInNsb3RjaGFuZ2UiLHRoaXMuX2JvdW5kU2NoZWR1bGUpfX1fdW5saXN0ZW5TbG90cyh0KXtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IG49dFtlXTtPaShuKSYmbi5yZW1vdmVFdmVudExpc3RlbmVyKCJzbG90Y2hhbmdlIix0aGlzLl9ib3VuZFNjaGVkdWxlKX19fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jb25zdCBEaT1mdW5jdGlvbigpe2xldCB0LGU7ZG97dD13aW5kb3cuU2hhZHlET00mJlNoYWR5RE9NLmZsdXNoKCksd2luZG93LlNoYWR5Q1NTJiZ3aW5kb3cuU2hhZHlDU1MuU2NvcGluZ1NoaW0mJndpbmRvdy5TaGFkeUNTUy5TY29waW5nU2hpbS5mbHVzaCgpLGU9a24oKX13aGlsZSh0fHxlKX0sQmk9RWxlbWVudC5wcm90b3R5cGUsSGk9QmkubWF0Y2hlc3x8QmkubWF0Y2hlc1NlbGVjdG9yfHxCaS5tb3pNYXRjaGVzU2VsZWN0b3J8fEJpLm1zTWF0Y2hlc1NlbGVjdG9yfHxCaS5vTWF0Y2hlc1NlbGVjdG9yfHxCaS53ZWJraXRNYXRjaGVzU2VsZWN0b3IsRmk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gSGkuY2FsbCh0LGUpfTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jbGFzcyBWaXtjb25zdHJ1Y3Rvcih0KXt3aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5pblVzZSYmd2luZG93LlNoYWR5RE9NLnBhdGNoKHQpLHRoaXMubm9kZT10fW9ic2VydmVOb2Rlcyh0KXtyZXR1cm4gbmV3IHppKHRoaXMubm9kZSx0KX11bm9ic2VydmVOb2Rlcyh0KXt0LmRpc2Nvbm5lY3QoKX1ub3RpZnlPYnNlcnZlcigpe31kZWVwQ29udGFpbnModCl7aWYoWSh0aGlzLm5vZGUpLmNvbnRhaW5zKHQpKXJldHVybiEwO2xldCBlPXQsbj10Lm93bmVyRG9jdW1lbnQ7Zm9yKDtlJiZlIT09biYmZSE9PXRoaXMubm9kZTspZT1ZKGUpLnBhcmVudE5vZGV8fFkoZSkuaG9zdDtyZXR1cm4gZT09PXRoaXMubm9kZX1nZXRPd25lclJvb3QoKXtyZXR1cm4gWSh0aGlzLm5vZGUpLmdldFJvb3ROb2RlKCl9Z2V0RGlzdHJpYnV0ZWROb2Rlcygpe3JldHVybiJzbG90Ij09PXRoaXMubm9kZS5sb2NhbE5hbWU/WSh0aGlzLm5vZGUpLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KTpbXX1nZXREZXN0aW5hdGlvbkluc2VydGlvblBvaW50cygpe2xldCB0PVtdLGU9WSh0aGlzLm5vZGUpLmFzc2lnbmVkU2xvdDtmb3IoO2U7KXQucHVzaChlKSxlPVkoZSkuYXNzaWduZWRTbG90O3JldHVybiB0fWltcG9ydE5vZGUodCxlKXtsZXQgbj10aGlzLm5vZGUgaW5zdGFuY2VvZiBEb2N1bWVudD90aGlzLm5vZGU6dGhpcy5ub2RlLm93bmVyRG9jdW1lbnQ7cmV0dXJuIFkobikuaW1wb3J0Tm9kZSh0LGUpfWdldEVmZmVjdGl2ZUNoaWxkTm9kZXMoKXtyZXR1cm4gemkuZ2V0RmxhdHRlbmVkTm9kZXModGhpcy5ub2RlKX1xdWVyeURpc3RyaWJ1dGVkRWxlbWVudHModCl7bGV0IGU9dGhpcy5nZXRFZmZlY3RpdmVDaGlsZE5vZGVzKCksbj1bXTtmb3IobGV0IGkscj0wLG89ZS5sZW5ndGg7cjxvJiYoaT1lW3JdKTtyKyspaS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZGaShpLHQpJiZuLnB1c2goaSk7cmV0dXJuIG59Z2V0IGFjdGl2ZUVsZW1lbnQoKXtsZXQgdD10aGlzLm5vZGU7cmV0dXJuIHZvaWQgMCE9PXQuX2FjdGl2ZUVsZW1lbnQ/dC5fYWN0aXZlRWxlbWVudDp0LmFjdGl2ZUVsZW1lbnR9fWZ1bmN0aW9uIFVpKHQsZSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2xldCBpPWVbbl07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZVtpXX0sY29uZmlndXJhYmxlOiEwfSl9fWNsYXNzIGppe2NvbnN0cnVjdG9yKHQpe3RoaXMuZXZlbnQ9dH1nZXQgcm9vdFRhcmdldCgpe3JldHVybiB0aGlzLnBhdGhbMF19Z2V0IGxvY2FsVGFyZ2V0KCl7cmV0dXJuIHRoaXMuZXZlbnQudGFyZ2V0fWdldCBwYXRoKCl7cmV0dXJuIHRoaXMuZXZlbnQuY29tcG9zZWRQYXRoKCl9fWxldCBHaT1WaTtpZih3aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5pblVzZSYmd2luZG93LlNoYWR5RE9NLm5vUGF0Y2gmJndpbmRvdy5TaGFkeURPTS5XcmFwcGVyKXtjbGFzcyB0IGV4dGVuZHMgd2luZG93LlNoYWR5RE9NLldyYXBwZXJ7fU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKFZpLnByb3RvdHlwZSkuZm9yRWFjaCgoZT0+eyJhY3RpdmVFbGVtZW50IiE9ZSYmKHQucHJvdG90eXBlW2VdPVZpLnByb3RvdHlwZVtlXSl9KSksVWkodC5wcm90b3R5cGUsWyJjbGFzc0xpc3QiXSksR2k9dCxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhqaS5wcm90b3R5cGUse2xvY2FsVGFyZ2V0OntnZXQoKXtjb25zdCB0PXRoaXMuZXZlbnQuY3VycmVudFRhcmdldCxlPXQmJllpKHQpLmdldE93bmVyUm9vdCgpLG49dGhpcy5wYXRoO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtjb25zdCBpPW5bdF07aWYoWWkoaSkuZ2V0T3duZXJSb290KCk9PT1lKXJldHVybiBpfX0sY29uZmlndXJhYmxlOiEwfSxwYXRoOntnZXQoKXtyZXR1cm4gd2luZG93LlNoYWR5RE9NLmNvbXBvc2VkUGF0aCh0aGlzLmV2ZW50KX0sY29uZmlndXJhYmxlOiEwfX0pfWVsc2UhKGZ1bmN0aW9uIFdpKHQsZSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2xldCBpPWVbbl07dFtpXT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGVbaV0uYXBwbHkodGhpcy5ub2RlLGFyZ3VtZW50cyl9fX0pKFZpLnByb3RvdHlwZSxbImNsb25lTm9kZSIsImFwcGVuZENoaWxkIiwiaW5zZXJ0QmVmb3JlIiwicmVtb3ZlQ2hpbGQiLCJyZXBsYWNlQ2hpbGQiLCJzZXRBdHRyaWJ1dGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJxdWVyeVNlbGVjdG9yIiwicXVlcnlTZWxlY3RvckFsbCJdKSxVaShWaS5wcm90b3R5cGUsWyJwYXJlbnROb2RlIiwiZmlyc3RDaGlsZCIsImxhc3RDaGlsZCIsIm5leHRTaWJsaW5nIiwicHJldmlvdXNTaWJsaW5nIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJsYXN0RWxlbWVudENoaWxkIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwicHJldmlvdXNFbGVtZW50U2libGluZyIsImNoaWxkTm9kZXMiLCJjaGlsZHJlbiIsImNsYXNzTGlzdCJdKSwoZnVuY3Rpb24gcWkodCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7bGV0IGk9ZVtuXTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlW2ldfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlW2ldPXR9LGNvbmZpZ3VyYWJsZTohMH0pfX0pKFZpLnByb3RvdHlwZSxbInRleHRDb250ZW50IiwiaW5uZXJIVE1MIiwiY2xhc3NOYW1lIl0pO2NvbnN0IFlpPWZ1bmN0aW9uKHQpe2lmKCh0PXR8fGRvY3VtZW50KWluc3RhbmNlb2YgR2kpcmV0dXJuIHQ7aWYodCBpbnN0YW5jZW9mIGppKXJldHVybiB0O2xldCBlPXQuX19kb21BcGk7cmV0dXJuIGV8fChlPXQgaW5zdGFuY2VvZiBFdmVudD9uZXcgamkodCk6bmV3IEdpKHQpLHQuX19kb21BcGk9ZSksZX0sWGk9d2luZG93LlNoYWR5RE9NLCRpPXdpbmRvdy5TaGFkeUNTUzsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9mdW5jdGlvbiBLaSh0LGUpe3JldHVybiBZKHQpLmdldFJvb3ROb2RlKCk9PT1lfQovKioKICAgICAqIEBmaWxlb3ZlcnZpZXcKICAgICAqIEBzdXBwcmVzcyB7Y2hlY2tQcm90b3R5cGFsVHlwZXN9CiAgICAgKiBAbGljZW5zZSBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZAogICAgICogYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heQogICAgICogYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieQogICAgICogR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUAogICAgICogcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovCmNvbnN0IFppPSJkaXNhYmxlLXVwZ3JhZGUiLEppPXQ9Pntmb3IoO3Q7KXtjb25zdCBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwib2JzZXJ2ZWRBdHRyaWJ1dGVzIik7aWYoZSlyZXR1cm4gZS5nZXQ7dD1PYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpLmNvbnN0cnVjdG9yfXJldHVybigpPT5bXX07SSgodD0+e2NvbnN0IGU9bWUodCk7bGV0IG49SmkoZSk7cmV0dXJuIGNsYXNzIGV4dGVuZHMgZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm4gbi5jYWxsKHRoaXMpLmNvbmNhdChaaSl9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7dGhpcy5oYXNBdHRyaWJ1dGUoWmkpP3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZD0hMDpzdXBlci5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKX1fZW5hYmxlUHJvcGVydGllcygpe3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZHx8c3VwZXIuX2VuYWJsZVByb3BlcnRpZXMoKX1fY2FuQXBwbHlQcm9wZXJ0eURlZmF1bHQodCl7cmV0dXJuIHN1cGVyLl9jYW5BcHBseVByb3BlcnR5RGVmYXVsdCh0KSYmISh0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQmJnRoaXMuX2lzUHJvcGVydHlQZW5kaW5nKHQpKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4saSl7dD09Wmk/dGhpcy5fX2lzVXBncmFkZURpc2FibGVkJiZudWxsPT1uJiYoc3VwZXIuX2luaXRpYWxpemVQcm9wZXJ0aWVzKCksdGhpcy5fX2lzVXBncmFkZURpc2FibGVkPSExLFkodGhpcykuaXNDb25uZWN0ZWQmJnN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCkpOnN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbixpKX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZHx8c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZHx8c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKX19fSkpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBRaT0iZGlzYWJsZS11cGdyYWRlIjtsZXQgdHI9d2luZG93LlNoYWR5Q1NTO2NvbnN0IGVyPUkoKHQ9Pntjb25zdCBlPXBpKG1lKHQpKSxuPWZlP2U6TWkoZSksaT1KaShuKSxyPXt4OiJwYW4teCIseToicGFuLXkiLG5vbmU6Im5vbmUiLGFsbDoiYXV0byJ9O2NsYXNzIG8gZXh0ZW5kcyBue2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgZ2V0IGltcG9ydE1ldGEoKXtyZXR1cm4gdGhpcy5wcm90b3R5cGUuaW1wb3J0TWV0YX1jcmVhdGVkKCl7fV9fYXR0cmlidXRlUmVhY3Rpb24odCxlLG4peyh0aGlzLl9fZGF0YUF0dHJpYnV0ZXMmJnRoaXMuX19kYXRhQXR0cmlidXRlc1t0XXx8dD09PVFpKSYmdGhpcy5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4sbnVsbCl9c2V0QXR0cmlidXRlKHQsZSl7aWYoTCYmIXRoaXMuX2xlZ2FjeUZvcmNlT2JzZXJ2ZWRBdHRyaWJ1dGVzKXtjb25zdCBuPXRoaXMuZ2V0QXR0cmlidXRlKHQpO3N1cGVyLnNldEF0dHJpYnV0ZSh0LGUpLHRoaXMuX19hdHRyaWJ1dGVSZWFjdGlvbih0LG4sU3RyaW5nKGUpKX1lbHNlIHN1cGVyLnNldEF0dHJpYnV0ZSh0LGUpfXJlbW92ZUF0dHJpYnV0ZSh0KXtpZihMJiYhdGhpcy5fbGVnYWN5Rm9yY2VPYnNlcnZlZEF0dHJpYnV0ZXMpe2NvbnN0IGU9dGhpcy5nZXRBdHRyaWJ1dGUodCk7c3VwZXIucmVtb3ZlQXR0cmlidXRlKHQpLHRoaXMuX19hdHRyaWJ1dGVSZWFjdGlvbih0LGUsbnVsbCl9ZWxzZSBzdXBlci5yZW1vdmVBdHRyaWJ1dGUodCl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm4gTCYmIXRoaXMucHJvdG90eXBlLl9sZWdhY3lGb3JjZU9ic2VydmVkQXR0cmlidXRlcz8odGhpcy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX29ic2VydmVkQXR0cmlidXRlcyIsdGhpcykpfHwodGhpcy5fX29ic2VydmVkQXR0cmlidXRlcz1bXSksdGhpcy5fX29ic2VydmVkQXR0cmlidXRlcyk6aS5jYWxsKHRoaXMpLmNvbmNhdChRaSl9X2VuYWJsZVByb3BlcnRpZXMoKXt0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWR8fHN1cGVyLl9lbmFibGVQcm9wZXJ0aWVzKCl9X2NhbkFwcGx5UHJvcGVydHlEZWZhdWx0KHQpe3JldHVybiBzdXBlci5fY2FuQXBwbHlQcm9wZXJ0eURlZmF1bHQodCkmJiEodGhpcy5fX2lzVXBncmFkZURpc2FibGVkJiZ0aGlzLl9pc1Byb3BlcnR5UGVuZGluZyh0KSl9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLl9fbmVlZHNBdHRyaWJ1dGVzQXRDb25uZWN0ZWQmJnRoaXMuX3Rha2VBdHRyaWJ1dGVzKCksdGhpcy5fX2lzVXBncmFkZURpc2FibGVkfHwoc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmlzQXR0YWNoZWQ9ITAsdGhpcy5hdHRhY2hlZCgpKX1hdHRhY2hlZCgpe31kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZHx8KHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pc0F0dGFjaGVkPSExLHRoaXMuZGV0YWNoZWQoKSl9ZGV0YWNoZWQoKXt9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuLGkpe2UhPT1uJiYodD09UWk/dGhpcy5fX2lzVXBncmFkZURpc2FibGVkJiZudWxsPT1uJiYodGhpcy5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKSx0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQ9ITEsWSh0aGlzKS5pc0Nvbm5lY3RlZCYmdGhpcy5jb25uZWN0ZWRDYWxsYmFjaygpKTooc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuLGkpLHRoaXMuYXR0cmlidXRlQ2hhbmdlZCh0LGUsbikpKX1hdHRyaWJ1dGVDaGFuZ2VkKHQsZSxuKXt9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7aWYodyYmdGhpcy5oYXNBdHRyaWJ1dGUoUWkpKXRoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZD0hMDtlbHNle2xldCB0PU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTt0Lmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9faGFzUmVnaXN0ZXJGaW5pc2hlZCIsdCkpfHwodGhpcy5fcmVnaXN0ZXJlZCgpLHQuX19oYXNSZWdpc3RlckZpbmlzaGVkPSEwKSxzdXBlci5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKSx0aGlzLnJvb3Q9dGhpcyx0aGlzLmNyZWF0ZWQoKSxMJiYhdGhpcy5fbGVnYWN5Rm9yY2VPYnNlcnZlZEF0dHJpYnV0ZXMmJih0aGlzLmhhc0F0dHJpYnV0ZXMoKT90aGlzLl90YWtlQXR0cmlidXRlcygpOnRoaXMucGFyZW50Tm9kZXx8KHRoaXMuX19uZWVkc0F0dHJpYnV0ZXNBdENvbm5lY3RlZD0hMCkpLHRoaXMuX2FwcGx5TGlzdGVuZXJzKCl9fV90YWtlQXR0cmlidXRlcygpe2NvbnN0IHQ9dGhpcy5hdHRyaWJ1dGVzO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdO3RoaXMuX19hdHRyaWJ1dGVSZWFjdGlvbihuLm5hbWUsbnVsbCxuLnZhbHVlKX19X3JlZ2lzdGVyZWQoKXt9cmVhZHkoKXt0aGlzLl9lbnN1cmVBdHRyaWJ1dGVzKCksc3VwZXIucmVhZHkoKX1fZW5zdXJlQXR0cmlidXRlcygpe31fYXBwbHlMaXN0ZW5lcnMoKXt9c2VyaWFsaXplKHQpe3JldHVybiB0aGlzLl9zZXJpYWxpemVWYWx1ZSh0KX1kZXNlcmlhbGl6ZSh0LGUpe3JldHVybiB0aGlzLl9kZXNlcmlhbGl6ZVZhbHVlKHQsZSl9cmVmbGVjdFByb3BlcnR5VG9BdHRyaWJ1dGUodCxlLG4pe3RoaXMuX3Byb3BlcnR5VG9BdHRyaWJ1dGUodCxlLG4pfXNlcmlhbGl6ZVZhbHVlVG9BdHRyaWJ1dGUodCxlLG4pe3RoaXMuX3ZhbHVlVG9Ob2RlQXR0cmlidXRlKG58fHRoaXMsdCxlKX1leHRlbmQodCxlKXtpZighdHx8IWUpcmV0dXJuIHR8fGU7bGV0IG49T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSk7Zm9yKGxldCBpLHI9MDtyPG4ubGVuZ3RoJiYoaT1uW3JdKTtyKyspe2xldCBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxpKTtuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLG4pfXJldHVybiB0fW1peGluKHQsZSl7Zm9yKGxldCBuIGluIGUpdFtuXT1lW25dO3JldHVybiB0fWNoYWluT2JqZWN0KHQsZSl7cmV0dXJuIHQmJmUmJnQhPT1lJiYodC5fX3Byb3RvX189ZSksdH1pbnN0YW5jZVRlbXBsYXRlKHQpe2xldCBlPXRoaXMuY29uc3RydWN0b3IuX2NvbnRlbnRGb3JUZW1wbGF0ZSh0KTtyZXR1cm4gZG9jdW1lbnQuaW1wb3J0Tm9kZShlLCEwKX1maXJlKHQsZSxuKXtuPW58fHt9LGU9bnVsbD09ZT97fTplO2xldCBpPW5ldyBFdmVudCh0LHtidWJibGVzOnZvaWQgMD09PW4uYnViYmxlc3x8bi5idWJibGVzLGNhbmNlbGFibGU6Qm9vbGVhbihuLmNhbmNlbGFibGUpLGNvbXBvc2VkOnZvaWQgMD09PW4uY29tcG9zZWR8fG4uY29tcG9zZWR9KTtyZXR1cm4gaS5kZXRhaWw9ZSxZKG4ubm9kZXx8dGhpcykuZGlzcGF0Y2hFdmVudChpKSxpfWxpc3Rlbih0LGUsbil7dD10fHx0aGlzO2xldCBpPXRoaXMuX19ib3VuZExpc3RlbmVyc3x8KHRoaXMuX19ib3VuZExpc3RlbmVycz1uZXcgV2Vha01hcCkscj1pLmdldCh0KTtyfHwocj17fSxpLnNldCh0LHIpKTtsZXQgbz1lK247cltvXXx8KHJbb109dGhpcy5fYWRkTWV0aG9kRXZlbnRMaXN0ZW5lclRvTm9kZSh0LGUsbix0aGlzKSl9dW5saXN0ZW4odCxlLG4pe3Q9dHx8dGhpcztsZXQgaT10aGlzLl9fYm91bmRMaXN0ZW5lcnMmJnRoaXMuX19ib3VuZExpc3RlbmVycy5nZXQodCkscj1lK24sbz1pJiZpW3JdO28mJih0aGlzLl9yZW1vdmVFdmVudExpc3RlbmVyRnJvbU5vZGUodCxlLG8pLGlbcl09bnVsbCl9c2V0U2Nyb2xsRGlyZWN0aW9uKHQsZSl7b2koZXx8dGhpcyxyW3RdfHwiYXV0byIpfSQkKHQpe3JldHVybiB0aGlzLnJvb3QucXVlcnlTZWxlY3Rvcih0KX1nZXQgZG9tSG9zdCgpe2xldCB0PVkodGhpcykuZ2V0Um9vdE5vZGUoKTtyZXR1cm4gdCBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQ/dC5ob3N0OnR9ZGlzdHJpYnV0ZUNvbnRlbnQoKXtjb25zdCB0PVlpKHRoaXMpO3dpbmRvdy5TaGFkeURPTSYmdC5zaGFkb3dSb290JiZTaGFkeURPTS5mbHVzaCgpfWdldEVmZmVjdGl2ZUNoaWxkTm9kZXMoKXtyZXR1cm4gWWkodGhpcykuZ2V0RWZmZWN0aXZlQ2hpbGROb2RlcygpfXF1ZXJ5RGlzdHJpYnV0ZWRFbGVtZW50cyh0KXtyZXR1cm4gWWkodGhpcykucXVlcnlEaXN0cmlidXRlZEVsZW1lbnRzKHQpfWdldEVmZmVjdGl2ZUNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuZ2V0RWZmZWN0aXZlQ2hpbGROb2RlcygpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERX0pKX1nZXRFZmZlY3RpdmVUZXh0Q29udGVudCgpe2xldCB0PXRoaXMuZ2V0RWZmZWN0aXZlQ2hpbGROb2RlcygpLGU9W107Zm9yKGxldCBuLGk9MDtuPXRbaV07aSsrKW4ubm9kZVR5cGUhPT1Ob2RlLkNPTU1FTlRfTk9ERSYmZS5wdXNoKG4udGV4dENvbnRlbnQpO3JldHVybiBlLmpvaW4oIiIpfXF1ZXJ5RWZmZWN0aXZlQ2hpbGRyZW4odCl7bGV0IGU9dGhpcy5xdWVyeURpc3RyaWJ1dGVkRWxlbWVudHModCk7cmV0dXJuIGUmJmVbMF19cXVlcnlBbGxFZmZlY3RpdmVDaGlsZHJlbih0KXtyZXR1cm4gdGhpcy5xdWVyeURpc3RyaWJ1dGVkRWxlbWVudHModCl9Z2V0Q29udGVudENoaWxkTm9kZXModCl7bGV0IGU9dGhpcy5yb290LnF1ZXJ5U2VsZWN0b3IodHx8InNsb3QiKTtyZXR1cm4gZT9ZaShlKS5nZXREaXN0cmlidXRlZE5vZGVzKCk6W119Z2V0Q29udGVudENoaWxkcmVuKHQpe3JldHVybiB0aGlzLmdldENvbnRlbnRDaGlsZE5vZGVzKHQpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERX0pKX1pc0xpZ2h0RGVzY2VuZGFudCh0KXtjb25zdCBlPXRoaXM7cmV0dXJuIGUhPT10JiZZKGUpLmNvbnRhaW5zKHQpJiZZKGUpLmdldFJvb3ROb2RlKCk9PT1ZKHQpLmdldFJvb3ROb2RlKCl9aXNMb2NhbERlc2NlbmRhbnQodCl7cmV0dXJuIHRoaXMucm9vdD09PVkodCkuZ2V0Um9vdE5vZGUoKX1zY29wZVN1YnRyZWUodCxlPSExKXtyZXR1cm4oZnVuY3Rpb24gbih0LGU9ITEpe2lmKCFYaXx8ISRpKXJldHVybiBudWxsO2lmKCFYaS5oYW5kbGVzRHluYW1pY1Njb3BpbmcpcmV0dXJuIG51bGw7Y29uc3Qgbj0kaS5TY29waW5nU2hpbTtpZighbilyZXR1cm4gbnVsbDtjb25zdCBpPW4uc2NvcGVGb3JOb2RlKHQpLHI9WSh0KS5nZXRSb290Tm9kZSgpLG89dD0+e2lmKCFLaSh0LHIpKXJldHVybjtjb25zdCBlPUFycmF5LmZyb20oWGkubmF0aXZlTWV0aG9kcy5xdWVyeVNlbGVjdG9yQWxsLmNhbGwodCwiKiIpKTtlLnB1c2godCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG89ZVt0XTtpZighS2kobyxyKSljb250aW51ZTtjb25zdCBhPW4uY3VycmVudFNjb3BlRm9yTm9kZShvKTthIT09aSYmKCIiIT09YSYmbi51bnNjb3BlTm9kZShvLGEpLG4uc2NvcGVOb2RlKG8saSkpfX07aWYobyh0KSxlKXtjb25zdCBlPW5ldyBNdXRhdGlvbk9ic2VydmVyKCh0PT57Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0IG49dFtlXTtmb3IobGV0IHQ9MDt0PG4uYWRkZWROb2Rlcy5sZW5ndGg7dCsrKXtjb25zdCBlPW4uYWRkZWROb2Rlc1t0XTtlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJm8oZSl9fX0pKTtyZXR1cm4gZS5vYnNlcnZlKHQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSksZX1yZXR1cm4gbnVsbH0pKHQsZSl9Z2V0Q29tcHV0ZWRTdHlsZVZhbHVlKHQpe3JldHVybiB0ci5nZXRDb21wdXRlZFN0eWxlVmFsdWUodGhpcyx0KX1kZWJvdW5jZSh0LGUsbil7cmV0dXJuIHRoaXMuX2RlYm91bmNlcnM9dGhpcy5fZGVib3VuY2Vyc3x8e30sdGhpcy5fZGVib3VuY2Vyc1t0XT1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJzW3RdLG4+MD9ndC5hZnRlcihuKTp2dCxlLmJpbmQodGhpcykpfWlzRGVib3VuY2VyQWN0aXZlKHQpe3RoaXMuX2RlYm91bmNlcnM9dGhpcy5fZGVib3VuY2Vyc3x8e307bGV0IGU9dGhpcy5fZGVib3VuY2Vyc1t0XTtyZXR1cm4hKCFlfHwhZS5pc0FjdGl2ZSgpKX1mbHVzaERlYm91bmNlcih0KXt0aGlzLl9kZWJvdW5jZXJzPXRoaXMuX2RlYm91bmNlcnN8fHt9O2xldCBlPXRoaXMuX2RlYm91bmNlcnNbdF07ZSYmZS5mbHVzaCgpfWNhbmNlbERlYm91bmNlcih0KXt0aGlzLl9kZWJvdW5jZXJzPXRoaXMuX2RlYm91bmNlcnN8fHt9O2xldCBlPXRoaXMuX2RlYm91bmNlcnNbdF07ZSYmZS5jYW5jZWwoKX1hc3luYyh0LGUpe3JldHVybiBlPjA/Z3QucnVuKHQuYmluZCh0aGlzKSxlKTp+dnQucnVuKHQuYmluZCh0aGlzKSl9Y2FuY2VsQXN5bmModCl7dDwwP3Z0LmNhbmNlbCh+dCk6Z3QuY2FuY2VsKHQpfWNyZWF0ZSh0LGUpe2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7aWYoZSlpZihuLnNldFByb3BlcnRpZXMpbi5zZXRQcm9wZXJ0aWVzKGUpO2Vsc2UgZm9yKGxldCB0IGluIGUpblt0XT1lW3RdO3JldHVybiBufWVsZW1lbnRNYXRjaGVzKHQsZSl7cmV0dXJuIEZpKGV8fHRoaXMsdCl9dG9nZ2xlQXR0cmlidXRlKHQsZSl7bGV0IG49dGhpcztyZXR1cm4gMz09PWFyZ3VtZW50cy5sZW5ndGgmJihuPWFyZ3VtZW50c1syXSksMT09YXJndW1lbnRzLmxlbmd0aCYmKGU9IW4uaGFzQXR0cmlidXRlKHQpKSxlPyhZKG4pLnNldEF0dHJpYnV0ZSh0LCIiKSwhMCk6KFkobikucmVtb3ZlQXR0cmlidXRlKHQpLCExKX10b2dnbGVDbGFzcyh0LGUsbil7bj1ufHx0aGlzLDE9PWFyZ3VtZW50cy5sZW5ndGgmJihlPSFuLmNsYXNzTGlzdC5jb250YWlucyh0KSksZT9uLmNsYXNzTGlzdC5hZGQodCk6bi5jbGFzc0xpc3QucmVtb3ZlKHQpfXRyYW5zZm9ybSh0LGUpeyhlPWV8fHRoaXMpLnN0eWxlLndlYmtpdFRyYW5zZm9ybT10LGUuc3R5bGUudHJhbnNmb3JtPXR9dHJhbnNsYXRlM2QodCxlLG4saSl7dGhpcy50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKCIrdCsiLCIrZSsiLCIrbisiKSIsaT1pfHx0aGlzKX1hcnJheURlbGV0ZSh0LGUpe2xldCBuO2lmKEFycmF5LmlzQXJyYXkodCkpe2lmKG49dC5pbmRleE9mKGUpLG4+PTApcmV0dXJuIHQuc3BsaWNlKG4sMSl9ZWxzZSBpZihuPW50KHRoaXMsdCkuaW5kZXhPZihlKSxuPj0wKXJldHVybiB0aGlzLnNwbGljZSh0LG4sMSk7cmV0dXJuIG51bGx9X2xvZ2dlcih0LGUpe3N3aXRjaChBcnJheS5pc0FycmF5KGUpJiYxPT09ZS5sZW5ndGgmJkFycmF5LmlzQXJyYXkoZVswXSkmJihlPWVbMF0pLHQpe2Nhc2UibG9nIjpjYXNlIndhcm4iOmNhc2UiZXJyb3IiOmNvbnNvbGVbdF0oLi4uZSl9fV9sb2coLi4udCl7dGhpcy5fbG9nZ2VyKCJsb2ciLHQpfV93YXJuKC4uLnQpe3RoaXMuX2xvZ2dlcigid2FybiIsdCl9X2Vycm9yKC4uLnQpe3RoaXMuX2xvZ2dlcigiZXJyb3IiLHQpfV9sb2dmKHQsLi4uZSl7cmV0dXJuWyJbJXM6OiVzXSIsdGhpcy5pcyx0LC4uLmVdfX1yZXR1cm4gby5wcm90b3R5cGUuaXM9IiIsb30pKTtmdW5jdGlvbiBucih0LGUpe2xldCBuPTAsaT0wO2Zvcig7Oyl7aWYobj09PXQubGVuZ3RoKXJldHVybiBpPT09ZS5sZW5ndGg/MDotMTtpZihpPT09ZS5sZW5ndGgpcmV0dXJuIDE7aWYocnIodFtuXSkmJnJyKGVbaV0pKXtjb25zdCByPW4sbz1pO249aXIodCxuKzEpLGk9aXIoZSxpKzEpO2NvbnN0IGE9cGFyc2VGbG9hdCh0LnNsaWNlKHIsbikpLHM9cGFyc2VGbG9hdChlLnNsaWNlKG8saSkpO2lmKGE8cylyZXR1cm4tMTtpZihhPnMpcmV0dXJuIDF9ZWxzZXtpZihvcih0W25dKSl7aWYoIW9yKGVbaV0pKXJldHVybi0xfWVsc2V7aWYob3IoZVtpXSkpcmV0dXJuIDE7aWYodFtuXTxlW2ldKXJldHVybi0xO2lmKHRbbl0+ZVtpXSlyZXR1cm4gMX1uKyssaSsrfX19ZnVuY3Rpb24gaXIodCxlKXtsZXQgbjshKGZ1bmN0aW9uKHQpe3RbdC5OQVRVUkFMPTBdPSJOQVRVUkFMIix0W3QuUkVBTD0xXT0iUkVBTCIsdFt0LkVYUE9ORU5UX1NJR049Ml09IkVYUE9ORU5UX1NJR04iLHRbdC5FWFBPTkVOVD0zXT0iRVhQT05FTlQifSkobnx8KG49e30pKTtsZXQgaT1uLk5BVFVSQUw7Zm9yKDtlPHQubGVuZ3RoO2UrKylpZihpPT09bi5OQVRVUkFMKXtpZigiLiI9PT10W2VdKWk9bi5SRUFMO2Vsc2UgaWYoImUiPT09dFtlXXx8IkUiPT09dFtlXSlpPW4uRVhQT05FTlRfU0lHTjtlbHNlIGlmKCFycih0W2VdKSlicmVha31lbHNlIGlmKGk9PT1uLlJFQUwpe2lmKCJlIj09PXRbZV18fCJFIj09PXRbZV0paT1uLkVYUE9ORU5UX1NJR047ZWxzZSBpZighcnIodFtlXSkpYnJlYWt9ZWxzZSBpZihpPT09bi5FWFBPTkVOVF9TSUdOKXtpZighcnIodFtlXSkmJiIrIiE9PXRbZV0mJiItIiE9PXRbZV0pYnJlYWs7aT1uLkVYUE9ORU5UfWVsc2UgaWYoaT09PW4uRVhQT05FTlQmJiFycih0W2VdKSlicmVhaztyZXR1cm4gZX1mdW5jdGlvbiBycih0KXtyZXR1cm4iMCI8PXQmJnQ8PSI5In1mdW5jdGlvbiBvcih0KXtyZXR1cm4iLyI9PT10fHwiXyI9PT10fHxycih0KX1mdW5jdGlvbiBhcih0KXtyZXR1cm4gU2UuZXhwb3J0cy51bmlvbi5hcHBseShudWxsLFNlLmV4cG9ydHMudmFsdWVzKHQpKS5zb3J0KG5yKX1jbGFzcyBzciBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm5hbWU9IlJlcXVlc3RDYW5jZWxsYXRpb25FcnJvciJ9fWNsYXNzIGxyIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5uYW1lPSJJbnZhbGlkUmVxdWVzdE9wdGlvbnNFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsbHIucHJvdG90eXBlKX19Y2xhc3MgY3IgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5tZXNzYWdlPWBSZXF1ZXN0TmV0d29ya0Vycm9yOiAke3Quc3RhdHVzfSBhdCAke2V9YCx0aGlzLm5hbWU9IlJlcXVlc3ROZXR3b3JrRXJyb3IiLHRoaXMucmVxPXQsdGhpcy51cmw9ZX19dmFyIHVyOyEoZnVuY3Rpb24odCl7dC5HRVQ9IkdFVCIsdC5QT1NUPSJQT1NUIn0pKHVyfHwodXI9e30pKTtjbGFzcyBocnt2YWxpZGF0ZSgpe2lmKHRoaXMubWV0aG9kVHlwZT09PXVyLkdFVCYmdGhpcy5ib2R5KXRocm93IG5ldyBscigiYm9keSBtdXN0IGJlIG1pc3NpbmcgZm9yIGEgR0VUIHJlcXVlc3QuIil9fWNsYXNzIGRye2NvbnN0cnVjdG9yKHQ9MWUzLGU9Myl7dGhpcy5fcXVldWU9W10sdGhpcy5fbkFjdGl2ZVJlcXVlc3RzPTAsdGhpcy5fblNpbXVsdGFuZW91c1JlcXVlc3RzPXQsdGhpcy5fbWF4UmV0cmllcz1lfXJlcXVlc3QodCxlKXtjb25zdCBuPShmdW5jdGlvbiBpKHQpe2NvbnN0IGU9bmV3IGhyO3JldHVybiB0PyhlLm1ldGhvZFR5cGU9dXIuUE9TVCxlLmJvZHk9KGZ1bmN0aW9uIG4odCl7Y29uc3QgZT1uZXcgRm9ybURhdGE7Zm9yKGNvbnN0W24saV1vZiBPYmplY3QuZW50cmllcyh0KSl7Y29uc3QgdD1BcnJheS5pc0FycmF5KGkpP2k6W2ldO2Zvcihjb25zdCBpIG9mIHQpZS5hcHBlbmQobixpKX1yZXR1cm4gZX0pKHQpLGUpOihlLm1ldGhvZFR5cGU9dXIuR0VULGUpfSkoZSk7cmV0dXJuIHRoaXMucmVxdWVzdFdpdGhPcHRpb25zKHQsbil9cmVxdWVzdFdpdGhPcHRpb25zKHQsZSl7cmV0dXJuIGUudmFsaWRhdGUoKSxuZXcgUHJvbWlzZSgoKHQsZSk9Pnt0aGlzLl9xdWV1ZS5wdXNoKHtyZXNvbHZlOnQscmVqZWN0OmV9KSx0aGlzLmxhdW5jaFJlcXVlc3RzKCl9KSkudGhlbigoKCk9PnRoaXMucHJvbWlzZVdpdGhSZXRyaWVzKHQsdGhpcy5fbWF4UmV0cmllcyxlKSkpLnRoZW4oKHQ9Pih0aGlzLl9uQWN0aXZlUmVxdWVzdHMtLSx0aGlzLmxhdW5jaFJlcXVlc3RzKCksdCkpLCh0PT4oIlJlcXVlc3ROZXR3b3JrRXJyb3IiPT09dC5uYW1lJiYodGhpcy5fbkFjdGl2ZVJlcXVlc3RzLS0sdGhpcy5sYXVuY2hSZXF1ZXN0cygpKSxQcm9taXNlLnJlamVjdCh0KSkpKX1mZXRjaCh0LGUpe3JldHVybiBuZXcgUHJvbWlzZSgoKHQsZSk9Pnt0aGlzLl9xdWV1ZS5wdXNoKHtyZXNvbHZlOnQscmVqZWN0OmV9KSx0aGlzLmxhdW5jaFJlcXVlc3RzKCl9KSkudGhlbigoKCk9PntsZXQgbj0xO3JldHVybiBuZXcgUHJvbWlzZSgoaT0+e2NvbnN0IHI9KCk9PntmZXRjaCh0LGUpLnRoZW4oKHQ9PntpZighdC5vayYmdGhpcy5fbWF4UmV0cmllcz5uKXJldHVybiBuKyssdm9pZCByKCk7aSh0KSx0aGlzLl9uQWN0aXZlUmVxdWVzdHMtLSx0aGlzLmxhdW5jaFJlcXVlc3RzKCl9KSl9O3IoKX0pKX0pKX1jbGVhclF1ZXVlKCl7Zm9yKDt0aGlzLl9xdWV1ZS5sZW5ndGg+MDspdGhpcy5fcXVldWUucG9wKCkucmVqZWN0KG5ldyBzcigiUmVxdWVzdCBjYW5jZWxsZWQgYnkgY2xlYXJRdWV1ZSIpKX1hY3RpdmVSZXF1ZXN0cygpe3JldHVybiB0aGlzLl9uQWN0aXZlUmVxdWVzdHN9b3V0c3RhbmRpbmdSZXF1ZXN0cygpe3JldHVybiB0aGlzLl9uQWN0aXZlUmVxdWVzdHMrdGhpcy5fcXVldWUubGVuZ3RofWxhdW5jaFJlcXVlc3RzKCl7Zm9yKDt0aGlzLl9uQWN0aXZlUmVxdWVzdHM8dGhpcy5fblNpbXVsdGFuZW91c1JlcXVlc3RzJiZ0aGlzLl9xdWV1ZS5sZW5ndGg+MDspdGhpcy5fbkFjdGl2ZVJlcXVlc3RzKyssdGhpcy5fcXVldWUucG9wKCkucmVzb2x2ZSh2b2lkIDApfXByb21pc2VXaXRoUmV0cmllcyh0LGUsbil7cmV0dXJuIHRoaXMuX3Byb21pc2VGcm9tVXJsKHQsbikudGhlbigodD0+dCksKGk9PmU+MD90aGlzLnByb21pc2VXaXRoUmV0cmllcyh0LGUtMSxuKTpQcm9taXNlLnJlamVjdChpKSkpfV9wcm9taXNlRnJvbVVybCh0LGUpe3JldHVybiBuZXcgUHJvbWlzZSgoKG4saSk9Pntjb25zdCByPShmdW5jdGlvbiBvKHQsZSxuLGkpe2NvbnN0IHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiByLm9wZW4odCxlKSxuJiYoci53aXRoQ3JlZGVudGlhbHM9biksaSYmci5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGkpLHJ9KShlLm1ldGhvZFR5cGUsdCxlLndpdGhDcmVkZW50aWFscyxlLmNvbnRlbnRUeXBlKTtyLm9ubG9hZD1mdW5jdGlvbigpezIwMD09PXIuc3RhdHVzP24oSlNPTi5wYXJzZShyLnJlc3BvbnNlVGV4dCkpOmkobmV3IGNyKHIsdCkpfSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXtpKG5ldyBjcihyLHQpKX0sZS5ib2R5P3Iuc2VuZChlLmJvZHkpOnIuc2VuZCgpfSkpfX1jb25zdCBwcj0iZXhwZXJpbWVudGFsUGx1Z2luIixmcj1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2xldCBtcj1ncigpO2Z1bmN0aW9uIGdyKHQ9ImRhdGEiLGU9ZnIpe3JldHVybiIvIj09PXRbdC5sZW5ndGgtMV0mJih0PXQuc2xpY2UoMCx0Lmxlbmd0aC0xKSkse2Vudmlyb25tZW50OigpPT55cih0LCIvZW52aXJvbm1lbnQiKSxleHBlcmltZW50czooKT0+eXIodCwiL2V4cGVyaW1lbnRzIikscGx1Z2luUm91dGU6KGUsbixpKT0+eXIodCsiL3BsdWdpbiIsYC8ke2V9JHtufWAsaSkscGx1Z2luc0xpc3Rpbmc6KCk9PnlyKHQsIi9wbHVnaW5zX2xpc3RpbmciLHZyKHtbcHJdOmUuZ2V0QWxsKHByKX0pKSxydW5zOigpPT55cih0LCIvcnVucyIpLHJ1bnNGb3JFeHBlcmltZW50OmU9PnlyKHQsIi9leHBlcmltZW50X3J1bnMiLHZyKHtleHBlcmltZW50OlN0cmluZyhlKX0pKX19ZnVuY3Rpb24gX3IoKXtyZXR1cm4gbXJ9ZnVuY3Rpb24geXIodCxlLG49bmV3IFVSTFNlYXJjaFBhcmFtcyl7bGV0IGk9dCtlO3JldHVybiBTdHJpbmcobikmJihpKz0oZS5pbmNsdWRlcygiPyIpPyImIjoiPyIpK1N0cmluZyhuKSksaX1mdW5jdGlvbiB2cih0PXt9KXtjb25zdCBlPU9iamVjdC5rZXlzKHQpLnNvcnQoKS5maWx0ZXIoKGU9PnRbZV0pKSxuPW5ldyBVUkxTZWFyY2hQYXJhbXM7cmV0dXJuIGUuZm9yRWFjaCgoZT0+e2NvbnN0IGk9dFtlXTsoQXJyYXkuaXNBcnJheShpKT9pOltpXSkuZm9yRWFjaCgodD0+bi5hcHBlbmQoZSx0KSkpfSkpLG59dmFyIGJyO2Z1bmN0aW9uIHhyKHQsZSl7Y29uc3Qgbj0oKCk9Pnt0cnl7cmV0dXJuIG5ldyBSZWdFeHAoZSl9Y2F0Y2godCl7cmV0dXJuIG51bGx9fSkoKTtyZXR1cm57bmFtZTplLG1ldGFkYXRhOnt0eXBlOmJyLlNFQVJDSF9SRVNVTFRTLHZhbGlkUmVnZXg6ISFuLHVuaXZlcnNhbFJlZ2V4OiIuKiI9PT1lfSxpdGVtczpuP3QuZmlsdGVyKCh0PT50Lm1hdGNoKG4pKSk6W119fWZ1bmN0aW9uIHdyKHQsZSxuKXtjb25zdCBpPShmdW5jdGlvbiByKHQsZT0iIil7Y29uc3Qgbj1beHIodCxlKV0saT0oZnVuY3Rpb24gcih0LGU9Ii8iKXtjb25zdCBuPVtdLGk9e307cmV0dXJuIHQuZm9yRWFjaCgodD0+e2NvbnN0IHI9dC5pbmRleE9mKGUpLG89cj49MD90LnNsaWNlKDAscik6dDtpZighaVtvXSl7Y29uc3QgdD17bmFtZTpvLG1ldGFkYXRhOnt0eXBlOmJyLlBSRUZJWF9HUk9VUH0saXRlbXM6W119O2lbb109dCxuLnB1c2godCl9aVtvXS5pdGVtcy5wdXNoKHQpfSkpLG59KSh0KTtyZXR1cm5bXS5jb25jYXQobixpKX0pKGFyKHQpLG4pLG89KGZ1bmN0aW9uIGEodCl7Y29uc3QgZT1uZXcgTWFwO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChuPT57dFtuXS5mb3JFYWNoKCh0PT57Y29uc3QgaT1lLmdldCh0KXx8W107aS5wdXNoKG4pLGUuc2V0KHQsaSl9KSl9KSksZX0pKFNlLmV4cG9ydHMucGljayh0LGUpKTtyZXR1cm4gaS5tYXAoKCh7bmFtZTp0LG1ldGFkYXRhOmUsaXRlbXM6bn0pPT4oe25hbWU6dCxtZXRhZGF0YTplLGl0ZW1zOm4ubWFwKCh0PT4oe3RhZzp0LHJ1bnM6KG8uZ2V0KHQpfHxbXSkuc2xpY2UoKX0pKSl9KSkpfWZ1bmN0aW9uIFNyKHQsZSl7Y29uc3Qgbj1ucih0LnRhZyxlLnRhZyk7cmV0dXJuIDAhPW4/bjpucih0LnJ1bixlLnJ1bil9ZnVuY3Rpb24gTXIodCxlLG4pe3JldHVybiB3cih0LGUsbikubWFwKChmdW5jdGlvbiBpKHQpe2NvbnN0IGU9U2UuZXhwb3J0cy5mbGF0dGVuKHQuaXRlbXMubWFwKCgoe3RhZzp0LHJ1bnM6ZX0pPT5lLm1hcCgoZT0+KHt0YWc6dCxydW46ZX0pKSkpKSk7cmV0dXJuIGUuc29ydChTcikse25hbWU6dC5uYW1lLG1ldGFkYXRhOnQubWV0YWRhdGEsaXRlbXM6ZX19KSl9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovIShmdW5jdGlvbih0KXt0W3QuU0VBUkNIX1JFU1VMVFM9MF09IlNFQVJDSF9SRVNVTFRTIix0W3QuUFJFRklYX0dST1VQPTFdPSJQUkVGSVhfR1JPVVAifSkoYnJ8fChicj17fSkpO2NvbnN0IEVyPXthdHRhY2hlZDohMCxkZXRhY2hlZDohMCxyZWFkeTohMCxjcmVhdGVkOiEwLGJlZm9yZVJlZ2lzdGVyOiEwLHJlZ2lzdGVyZWQ6ITAsYXR0cmlidXRlQ2hhbmdlZDohMCxsaXN0ZW5lcnM6ITAsaG9zdEF0dHJpYnV0ZXM6ITB9LFRyPXthdHRhY2hlZDohMCxkZXRhY2hlZDohMCxyZWFkeTohMCxjcmVhdGVkOiEwLGJlZm9yZVJlZ2lzdGVyOiEwLHJlZ2lzdGVyZWQ6ITAsYXR0cmlidXRlQ2hhbmdlZDohMCxiZWhhdmlvcnM6ITAsX25vQWNjZXNzb3JzOiEwfSxDcj1PYmplY3QuYXNzaWduKHtsaXN0ZW5lcnM6ITAsaG9zdEF0dHJpYnV0ZXM6ITAscHJvcGVydGllczohMCxvYnNlcnZlcnM6ITB9LFRyKTtmdW5jdGlvbiBBcih0LGUsbixpKXshKGZ1bmN0aW9uIHIodCxlLG4pe2NvbnN0IGk9dC5fbm9BY2Nlc3NvcnMscj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KTtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rKyl7bGV0IGE9cltvXTtpZighKGEgaW4gbikpaWYoaSllW2FdPXRbYV07ZWxzZXtsZXQgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsYSk7biYmKG4uY29uZmlndXJhYmxlPSEwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGEsbikpfX19KShlLHQsaSk7Zm9yKGxldCB0IGluIEVyKWVbdF0mJihuW3RdPW5bdF18fFtdLG5bdF0ucHVzaChlW3RdKSl9ZnVuY3Rpb24ga3IodCxlLG4pe2U9ZXx8W107Zm9yKGxldCBpPXQubGVuZ3RoLTE7aT49MDtpLS0pe2xldCByPXRbaV07cj9BcnJheS5pc0FycmF5KHIpP2tyKHIsZSk6ZS5pbmRleE9mKHIpPDAmJighbnx8bi5pbmRleE9mKHIpPDApJiZlLnVuc2hpZnQocik6Y29uc29sZS53YXJuKCJiZWhhdmlvciBpcyBudWxsLCBjaGVjayBmb3IgbWlzc2luZyBvciA0MDQgaW1wb3J0Iil9cmV0dXJuIGV9ZnVuY3Rpb24gTHIodCxlKXtmb3IoY29uc3QgbiBpbiBlKXtjb25zdCBpPXRbbl0scj1lW25dO3Rbbl09ISgidmFsdWUiaW4gcikmJmkmJiJ2YWx1ZSJpbiBpP09iamVjdC5hc3NpZ24oe3ZhbHVlOmkudmFsdWV9LHIpOnJ9fWNvbnN0IFByPWVyKEhUTUxFbGVtZW50KTtmdW5jdGlvbiBOcih0LGUsbil7bGV0IGk7Y29uc3Qgcj17fTtjbGFzcyBvIGV4dGVuZHMgZXtzdGF0aWMgX2ZpbmFsaXplQ2xhc3MoKXtpZih0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoImdlbmVyYXRlZEZyb20iLHRoaXMpKSl7aWYoaSlmb3IobGV0IHQsZT0wO2U8aS5sZW5ndGg7ZSsrKXQ9aVtlXSx0LnByb3BlcnRpZXMmJnRoaXMuY3JlYXRlUHJvcGVydGllcyh0LnByb3BlcnRpZXMpLHQub2JzZXJ2ZXJzJiZ0aGlzLmNyZWF0ZU9ic2VydmVycyh0Lm9ic2VydmVycyx0LnByb3BlcnRpZXMpO3QucHJvcGVydGllcyYmdGhpcy5jcmVhdGVQcm9wZXJ0aWVzKHQucHJvcGVydGllcyksdC5vYnNlcnZlcnMmJnRoaXMuY3JlYXRlT2JzZXJ2ZXJzKHQub2JzZXJ2ZXJzLHQucHJvcGVydGllcyksdGhpcy5fcHJlcGFyZVRlbXBsYXRlKCl9ZWxzZSBlLl9maW5hbGl6ZUNsYXNzLmNhbGwodGhpcyl9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7Y29uc3QgZT17fTtpZihpKWZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKUxyKGUsaVt0XS5wcm9wZXJ0aWVzKTtyZXR1cm4gTHIoZSx0LnByb3BlcnRpZXMpLGV9c3RhdGljIGdldCBvYnNlcnZlcnMoKXtsZXQgZT1bXTtpZihpKWZvcihsZXQgdCxuPTA7bjxpLmxlbmd0aDtuKyspdD1pW25dLHQub2JzZXJ2ZXJzJiYoZT1lLmNvbmNhdCh0Lm9ic2VydmVycykpO3JldHVybiB0Lm9ic2VydmVycyYmKGU9ZS5jb25jYXQodC5vYnNlcnZlcnMpKSxlfWNyZWF0ZWQoKXtzdXBlci5jcmVhdGVkKCk7Y29uc3QgdD1yLmNyZWF0ZWQ7aWYodClmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmNhbGwodGhpcyl9X3JlZ2lzdGVyZWQoKXtjb25zdCB0PW8ucHJvdG90eXBlO2lmKCF0Lmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9faGFzUmVnaXN0ZXJGaW5pc2hlZCIsdCkpKXt0Ll9faGFzUmVnaXN0ZXJGaW5pc2hlZD0hMCxzdXBlci5fcmVnaXN0ZXJlZCgpLHcmJmEodCk7Y29uc3QgZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk7bGV0IG49ci5iZWZvcmVSZWdpc3RlcjtpZihuKWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKW5bdF0uY2FsbChlKTtpZihuPXIucmVnaXN0ZXJlZCxuKWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKW5bdF0uY2FsbChlKX19X2FwcGx5TGlzdGVuZXJzKCl7c3VwZXIuX2FwcGx5TGlzdGVuZXJzKCk7Y29uc3QgdD1yLmxpc3RlbmVycztpZih0KWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCBuPXRbZV07aWYobilmb3IobGV0IHQgaW4gbil0aGlzLl9hZGRNZXRob2RFdmVudExpc3RlbmVyVG9Ob2RlKHRoaXMsdCxuW3RdKX19X2Vuc3VyZUF0dHJpYnV0ZXMoKXtjb25zdCB0PXIuaG9zdEF0dHJpYnV0ZXM7aWYodClmb3IobGV0IGU9dC5sZW5ndGgtMTtlPj0wO2UtLSl7Y29uc3Qgbj10W2VdO2ZvcihsZXQgdCBpbiBuKXRoaXMuX2Vuc3VyZUF0dHJpYnV0ZSh0LG5bdF0pfXN1cGVyLl9lbnN1cmVBdHRyaWJ1dGVzKCl9cmVhZHkoKXtzdXBlci5yZWFkeSgpO2xldCB0PXIucmVhZHk7aWYodClmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmNhbGwodGhpcyl9YXR0YWNoZWQoKXtzdXBlci5hdHRhY2hlZCgpO2xldCB0PXIuYXR0YWNoZWQ7aWYodClmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmNhbGwodGhpcyl9ZGV0YWNoZWQoKXtzdXBlci5kZXRhY2hlZCgpO2xldCB0PXIuZGV0YWNoZWQ7aWYodClmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmNhbGwodGhpcyl9YXR0cmlidXRlQ2hhbmdlZCh0LGUsbil7c3VwZXIuYXR0cmlidXRlQ2hhbmdlZCgpO2xldCBpPXIuYXR0cmlidXRlQ2hhbmdlZDtpZihpKWZvcihsZXQgcj0wO3I8aS5sZW5ndGg7cisrKWlbcl0uY2FsbCh0aGlzLHQsZSxuKX19aWYobil7QXJyYXkuaXNBcnJheShuKXx8KG49W25dKTtsZXQgdD1lLnByb3RvdHlwZS5iZWhhdmlvcnM7aT1rcihuLG51bGwsdCksby5wcm90b3R5cGUuYmVoYXZpb3JzPXQ/dC5jb25jYXQobik6aX1jb25zdCBhPWU9PntpJiYoZnVuY3Rpb24gbih0LGUsaSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspQXIodCxlW25dLGksQ3IpfSkoZSxpLHIpLEFyKGUsdCxyLFRyKX07cmV0dXJuIHd8fGEoby5wcm90b3R5cGUpLG8uZ2VuZXJhdGVkRnJvbT10LG99Y29uc3QgSXI9ZnVuY3Rpb24odCxlKXt0fHxjb25zb2xlLndhcm4oIlBvbHltZXIuQ2xhc3MgcmVxdWlyZXMgYGluZm9gIGFyZ3VtZW50Iik7bGV0IG49ZT9lKFByKTpQcjtyZXR1cm4gbj1Ocih0LG4sdC5iZWhhdmlvcnMpLG4uaXM9bi5wcm90b3R5cGUuaXM9dC5pcyxufSxScj1mdW5jdGlvbih0KXtsZXQgZTtyZXR1cm4gZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlJyLkNsYXNzKHQpLHQuX2xlZ2FjeUZvcmNlT2JzZXJ2ZWRBdHRyaWJ1dGVzJiYoZS5wcm90b3R5cGUuX2xlZ2FjeUZvcmNlT2JzZXJ2ZWRBdHRyaWJ1dGVzPXQuX2xlZ2FjeUZvcmNlT2JzZXJ2ZWRBdHRyaWJ1dGVzKSxjdXN0b21FbGVtZW50cy5kZWZpbmUoZS5pcyxlKSxlfTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KZnVuY3Rpb24gT3IodCxlLG4saSxyKXtsZXQgbztyJiYobz0ib2JqZWN0Ij09dHlwZW9mIG4mJm51bGwhPT1uLG8mJihpPXQuX19kYXRhVGVtcFtlXSkpO2xldCBhPWkhPT1uJiYoaT09aXx8bj09bik7cmV0dXJuIG8mJmEmJih0Ll9fZGF0YVRlbXBbZV09biksYX1Sci5DbGFzcz1Jcjtjb25zdCB6cj1JKCh0PT5jbGFzcyBleHRlbmRzIHR7X3Nob3VsZFByb3BlcnR5Q2hhbmdlKHQsZSxuKXtyZXR1cm4gT3IodGhpcyx0LGUsbiwhMCl9fSkpLERyPUkoKHQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57bXV0YWJsZURhdGE6Qm9vbGVhbn19X3Nob3VsZFByb3BlcnR5Q2hhbmdlKHQsZSxuKXtyZXR1cm4gT3IodGhpcyx0LGUsbix0aGlzLm11dGFibGVEYXRhKX19KSk7enIuX211dGFibGVQcm9wZXJ0eUNoYW5nZT1PcjsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KbGV0IEJyPW51bGw7ZnVuY3Rpb24gSHIoKXtyZXR1cm4gQnJ9SHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSFRNTFRlbXBsYXRlRWxlbWVudC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpIcix3cml0YWJsZTohMH19KTtjb25zdCBGcj1oZShIciksVnI9enIoRnIpLFVyPWhlKGNsYXNze30pO2Z1bmN0aW9uIGpyKHQsZSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2xldCBpPWVbbl07aWYoQm9vbGVhbih0KSE9Qm9vbGVhbihpLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fXykpaWYoaS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXQ/KGkuX19wb2x5bWVyVGV4dENvbnRlbnRfXz1pLnRleHRDb250ZW50LGkudGV4dENvbnRlbnQ9IiIpOmkudGV4dENvbnRlbnQ9aS5fX3BvbHltZXJUZXh0Q29udGVudF9fO2Vsc2UgaWYoInNsb3QiPT09aS5sb2NhbE5hbWUpaWYodClpLl9fcG9seW1lclJlcGxhY2VkX189ZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiaGlkZGVuLXNsb3QiKSxZKFkoaSkucGFyZW50Tm9kZSkucmVwbGFjZUNoaWxkKGkuX19wb2x5bWVyUmVwbGFjZWRfXyxpKTtlbHNle2NvbnN0IHQ9aS5fX3BvbHltZXJSZXBsYWNlZF9fO3QmJlkoWSh0KS5wYXJlbnROb2RlKS5yZXBsYWNlQ2hpbGQoaSx0KX1lbHNlIGkuc3R5bGUmJih0PyhpLl9fcG9seW1lckRpc3BsYXlfXz1pLnN0eWxlLmRpc3BsYXksaS5zdHlsZS5kaXNwbGF5PSJub25lIik6aS5zdHlsZS5kaXNwbGF5PWkuX19wb2x5bWVyRGlzcGxheV9fKTtpLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fXz10LGkuX3Nob3dIaWRlQ2hpbGRyZW4mJmkuX3Nob3dIaWRlQ2hpbGRyZW4odCl9fWNsYXNzIEdyIGV4dGVuZHMgVXJ7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9jb25maWd1cmVQcm9wZXJ0aWVzKHQpLHRoaXMucm9vdD10aGlzLl9zdGFtcFRlbXBsYXRlKHRoaXMuX19kYXRhSG9zdCk7bGV0IGU9W107dGhpcy5jaGlsZHJlbj1lO2ZvcihsZXQgdD10aGlzLnJvb3QuZmlyc3RDaGlsZDt0O3Q9dC5uZXh0U2libGluZyllLnB1c2godCksdC5fX3RlbXBsYXRpemVJbnN0YW5jZT10aGlzO3RoaXMuX190ZW1wbGF0aXplT3duZXImJnRoaXMuX190ZW1wbGF0aXplT3duZXIuX19oaWRlVGVtcGxhdGVDaGlsZHJlbl9fJiZ0aGlzLl9zaG93SGlkZUNoaWxkcmVuKCEwKTtsZXQgbj10aGlzLl9fdGVtcGxhdGl6ZU9wdGlvbnM7KHQmJm4uaW5zdGFuY2VQcm9wc3x8IW4uaW5zdGFuY2VQcm9wcykmJnRoaXMuX2VuYWJsZVByb3BlcnRpZXMoKX1fY29uZmlndXJlUHJvcGVydGllcyh0KXtpZih0aGlzLl9fdGVtcGxhdGl6ZU9wdGlvbnMuZm9yd2FyZEhvc3RQcm9wKWZvcihsZXQgdCBpbiB0aGlzLl9faG9zdFByb3BzKXRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eSh0LHRoaXMuX19kYXRhSG9zdFsiX2hvc3RfIit0XSk7Zm9yKGxldCBlIGluIHQpdGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5KGUsdFtlXSl9Zm9yd2FyZEhvc3RQcm9wKHQsZSl7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5T3JQYXRoKHQsZSwhMSwhMCkmJnRoaXMuX19kYXRhSG9zdC5fZW5xdWV1ZUNsaWVudCh0aGlzKX1fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0LGUsbil7aWYodGhpcy5fbWV0aG9kSG9zdCYmdGhpcy5fX3RlbXBsYXRpemVPcHRpb25zLnBhcmVudE1vZGVsKXRoaXMuX21ldGhvZEhvc3QuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodCxlLCh0PT57dC5tb2RlbD10aGlzLG4odCl9KSk7ZWxzZXtsZXQgaT10aGlzLl9fZGF0YUhvc3QuX19kYXRhSG9zdDtpJiZpLl9hZGRFdmVudExpc3RlbmVyVG9Ob2RlKHQsZSxuKX19X3Nob3dIaWRlQ2hpbGRyZW4odCl7anIodCx0aGlzLmNoaWxkcmVuKX1fc2V0VW5tYW5hZ2VkUHJvcGVydHlUb05vZGUodCxlLG4pe3QuX19oaWRlVGVtcGxhdGVDaGlsZHJlbl9fJiZ0Lm5vZGVUeXBlPT1Ob2RlLlRFWFRfTk9ERSYmInRleHRDb250ZW50Ij09ZT90Ll9fcG9seW1lclRleHRDb250ZW50X189bjpzdXBlci5fc2V0VW5tYW5hZ2VkUHJvcGVydHlUb05vZGUodCxlLG4pfWdldCBwYXJlbnRNb2RlbCgpe2xldCB0PXRoaXMuX19wYXJlbnRNb2RlbDtpZighdCl7bGV0IGU7dD10aGlzO2Rve3Q9dC5fX2RhdGFIb3N0Ll9fZGF0YUhvc3R9d2hpbGUoKGU9dC5fX3RlbXBsYXRpemVPcHRpb25zKSYmIWUucGFyZW50TW9kZWwpO3RoaXMuX19wYXJlbnRNb2RlbD10fXJldHVybiB0fWRpc3BhdGNoRXZlbnQodCl7cmV0dXJuITB9fWNvbnN0IFdyPXpyKEdyKTtmdW5jdGlvbiBxcih0KXtsZXQgZT10Ll9fZGF0YUhvc3Q7cmV0dXJuIGUmJmUuX21ldGhvZEhvc3R8fGV9ZnVuY3Rpb24gWXIodCxlKXtyZXR1cm4gZnVuY3Rpb24gdChuLGkscil7ZS5jYWxsKG4uX190ZW1wbGF0aXplT3duZXIsaS5zdWJzdHJpbmcoIl9ob3N0XyIubGVuZ3RoKSxyW2ldKX19ZnVuY3Rpb24gWHIodCxlKXtyZXR1cm4gZnVuY3Rpb24gdChuLGkscil7ZS5jYWxsKG4uX190ZW1wbGF0aXplT3duZXIsbixpLHJbaV0pfX1mdW5jdGlvbiAkcih0LGUsbil7aWYoYiYmIXFyKHQpKXRocm93IG5ldyBFcnJvcigic3RyaWN0VGVtcGxhdGVQb2xpY3k6IHRlbXBsYXRlIG93bmVyIG5vdCB0cnVzdGVkIik7aWYobj1ufHx7fSx0Ll9fdGVtcGxhdGl6ZU93bmVyKXRocm93IG5ldyBFcnJvcigiQSA8dGVtcGxhdGU+IGNhbiBvbmx5IGJlIHRlbXBsYXRpemVkIG9uY2UiKTt0Ll9fdGVtcGxhdGl6ZU93bmVyPWU7bGV0IGk9KGU/ZS5jb25zdHJ1Y3RvcjpHcikuX3BhcnNlVGVtcGxhdGUodCkscj1pLnRlbXBsYXRpemVJbnN0YW5jZUNsYXNzO3J8fChyPShmdW5jdGlvbiBvKHQsZSxuKXtsZXQgaT1uLm11dGFibGVEYXRhP1dyOkdyOyRyLm1peGluJiYoaT0kci5taXhpbihpKSk7bGV0IHI9Y2xhc3MgZXh0ZW5kcyBpe307cmV0dXJuIHIucHJvdG90eXBlLl9fdGVtcGxhdGl6ZU9wdGlvbnM9bixyLnByb3RvdHlwZS5fYmluZFRlbXBsYXRlKHQpLChmdW5jdGlvbiBvKHQsZSxuLGkpe2xldCByPW4uaG9zdFByb3BzfHx7fTtmb3IobGV0IGUgaW4gaS5pbnN0YW5jZVByb3BzKXtkZWxldGUgcltlXTtsZXQgbj1pLm5vdGlmeUluc3RhbmNlUHJvcDtuJiZ0LnByb3RvdHlwZS5fYWRkUHJvcGVydHlFZmZlY3QoZSx0LnByb3RvdHlwZS5QUk9QRVJUWV9FRkZFQ1RfVFlQRVMuTk9USUZZLHtmbjpYcigwLG4pfSl9aWYoaS5mb3J3YXJkSG9zdFByb3AmJmUuX19kYXRhSG9zdClmb3IobGV0IGUgaW4gciluLmhhc0hvc3RQcm9wc3x8KG4uaGFzSG9zdFByb3BzPSEwKSx0LnByb3RvdHlwZS5fYWRkUHJvcGVydHlFZmZlY3QoZSx0LnByb3RvdHlwZS5QUk9QRVJUWV9FRkZFQ1RfVFlQRVMuTk9USUZZLHtmbjpmdW5jdGlvbiB0KGUsbixpKXtlLl9fZGF0YUhvc3QuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aCgiX2hvc3RfIituLGlbbl0sITAsITApfX0pfSkocix0LGUsbikscn0pKHQsaSxuKSxpLnRlbXBsYXRpemVJbnN0YW5jZUNsYXNzPXIpO2NvbnN0IGE9cXIodCk7IShmdW5jdGlvbiBzKHQsZSxuLGkpe2xldCByPW4uZm9yd2FyZEhvc3RQcm9wO2lmKHImJmUuaGFzSG9zdFByb3BzKXtjb25zdCBvPSJ0ZW1wbGF0ZSI9PXQubG9jYWxOYW1lO2xldCBhPWUudGVtcGxhdGl6ZVRlbXBsYXRlQ2xhc3M7aWYoIWEpe2lmKG8pe2xldCB0PW4ubXV0YWJsZURhdGE/VnI6RnI7Y2xhc3MgaSBleHRlbmRzIHR7fWE9ZS50ZW1wbGF0aXplVGVtcGxhdGVDbGFzcz1pfWVsc2V7Y29uc3Qgbj10LmNvbnN0cnVjdG9yO2NsYXNzIGkgZXh0ZW5kcyBue31hPWUudGVtcGxhdGl6ZVRlbXBsYXRlQ2xhc3M9aX1sZXQgcz1lLmhvc3RQcm9wcztmb3IobGV0IHQgaW4gcylhLnByb3RvdHlwZS5fYWRkUHJvcGVydHlFZmZlY3QoIl9ob3N0XyIrdCxhLnByb3RvdHlwZS5QUk9QRVJUWV9FRkZFQ1RfVFlQRVMuUFJPUEFHQVRFLHtmbjpZcigwLHIpfSksYS5wcm90b3R5cGUuX2NyZWF0ZU5vdGlmeWluZ1Byb3BlcnR5KCJfaG9zdF8iK3QpO1MmJmkmJihmdW5jdGlvbiBvKHQsZSxuKXtjb25zdCBpPW4uY29uc3RydWN0b3IuX3Byb3BlcnRpZXMse3Byb3BlcnR5RWZmZWN0czpyfT10LHtpbnN0YW5jZVByb3BzOm99PWU7Zm9yKGxldCB0IGluIHIpaWYoIShpW3RdfHxvJiZvW3RdKSl7Y29uc3QgZT1yW3RdO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXtjb25zdHtwYXJ0Oml9PWVbbl0uaW5mbztpZighaS5zaWduYXR1cmV8fCFpLnNpZ25hdHVyZS5zdGF0aWMpe2NvbnNvbGUud2FybihgUHJvcGVydHkgJyR7dH0nIHVzZWQgaW4gdGVtcGxhdGUgYnV0IG5vdCBkZWNsYXJlZCBpbiAncHJvcGVydGllcyc7IGF0dHJpYnV0ZSB3aWxsIG5vdCBiZSBvYnNlcnZlZC5gKTticmVha319fX0pKGUsbixpKX1pZih0Ll9fZGF0YVByb3RvJiZPYmplY3QuYXNzaWduKHQuX19kYXRhLHQuX19kYXRhUHJvdG8pLG8pIShmdW5jdGlvbiBhKHQsZSl7QnI9dCxPYmplY3Quc2V0UHJvdG90eXBlT2YodCxlLnByb3RvdHlwZSksbmV3IGUsQnI9bnVsbH0pKHQsYSksdC5fX2RhdGFUZW1wPXt9LHQuX19kYXRhUGVuZGluZz1udWxsLHQuX19kYXRhT2xkPW51bGwsdC5fZW5hYmxlUHJvcGVydGllcygpO2Vsc2V7T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsYS5wcm90b3R5cGUpO2NvbnN0IG49ZS5ob3N0UHJvcHM7Zm9yKGxldCBlIGluIG4paWYoZT0iX2hvc3RfIitlLGUgaW4gdCl7Y29uc3Qgbj10W2VdO2RlbGV0ZSB0W2VdLHQuX19kYXRhW2VdPW59fX19KSh0LGksbixhKTtsZXQgbD1jbGFzcyBleHRlbmRzIHJ7fTtyZXR1cm4gbC5wcm90b3R5cGUuX21ldGhvZEhvc3Q9YSxsLnByb3RvdHlwZS5fX2RhdGFIb3N0PXQsbC5wcm90b3R5cGUuX190ZW1wbGF0aXplT3duZXI9ZSxsLnByb3RvdHlwZS5fX2hvc3RQcm9wcz1pLmhvc3RQcm9wcyxsPWwsbH1mdW5jdGlvbiBLcih0LGUpe2xldCBuO2Zvcig7ZTspaWYobj1lLl9fZGF0YUhvc3Q/ZTplLl9fdGVtcGxhdGl6ZUluc3RhbmNlKXtpZihuLl9fZGF0YUhvc3Q9PXQpcmV0dXJuIG47ZT1uLl9fZGF0YUhvc3R9ZWxzZSBlPVkoZSkucGFyZW50Tm9kZTtyZXR1cm4gbnVsbH0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jb25zdCBacj17dGVtcGxhdGl6ZSh0LGUpe3RoaXMuX3RlbXBsYXRpemVyVGVtcGxhdGU9dCx0aGlzLmN0b3I9JHIodCx0aGlzLHttdXRhYmxlRGF0YTpCb29sZWFuKGUpLHBhcmVudE1vZGVsOnRoaXMuX3BhcmVudE1vZGVsLGluc3RhbmNlUHJvcHM6dGhpcy5faW5zdGFuY2VQcm9wcyxmb3J3YXJkSG9zdFByb3A6dGhpcy5fZm9yd2FyZEhvc3RQcm9wVjIsbm90aWZ5SW5zdGFuY2VQcm9wOnRoaXMuX25vdGlmeUluc3RhbmNlUHJvcFYyfSl9LHN0YW1wKHQpe3JldHVybiBuZXcgdGhpcy5jdG9yKHQpfSxtb2RlbEZvckVsZW1lbnQodCl7cmV0dXJuIEtyKHRoaXMuX3RlbXBsYXRpemVyVGVtcGxhdGUsdCl9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9sZXQgSnI9ITE7ZnVuY3Rpb24gUXIoKXtpZih3JiYhbSl7aWYoIUpyKXtKcj0hMDtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7dC50ZXh0Q29udGVudD0iZG9tLWJpbmQsZG9tLWlmLGRvbS1yZXBlYXR7ZGlzcGxheTpub25lO30iLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCl9cmV0dXJuITB9cmV0dXJuITF9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovY29uc3QgdG89cGkoRHIoaGUoSFRNTEVsZW1lbnQpKSk7Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJkb20tYmluZCIsY2xhc3MgZXh0ZW5kcyB0b3tzdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVyblsibXV0YWJsZS1kYXRhIl19Y29uc3RydWN0b3IoKXtpZihzdXBlcigpLGIpdGhyb3cgbmV3IEVycm9yKCJzdHJpY3RUZW1wbGF0ZVBvbGljeTogZG9tLWJpbmQgbm90IGFsbG93ZWQiKTt0aGlzLnJvb3Q9bnVsbCx0aGlzLiQ9bnVsbCx0aGlzLl9fY2hpbGRyZW49bnVsbH1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4saSl7dGhpcy5tdXRhYmxlRGF0YT0hMH1jb25uZWN0ZWRDYWxsYmFjaygpe1FyKCl8fCh0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlzLnJlbmRlcigpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fX3JlbW92ZUNoaWxkcmVuKCl9X19pbnNlcnRDaGlsZHJlbigpe1koWSh0aGlzKS5wYXJlbnROb2RlKS5pbnNlcnRCZWZvcmUodGhpcy5yb290LHRoaXMpfV9fcmVtb3ZlQ2hpbGRyZW4oKXtpZih0aGlzLl9fY2hpbGRyZW4pZm9yKGxldCB0PTA7dDx0aGlzLl9fY2hpbGRyZW4ubGVuZ3RoO3QrKyl0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy5fX2NoaWxkcmVuW3RdKX1yZW5kZXIoKXtsZXQgdDtpZighdGhpcy5fX2NoaWxkcmVuKXtpZih0PXR8fHRoaXMucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKSwhdCl7bGV0IGU9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCgpPT57aWYodD10aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIiksIXQpdGhyb3cgbmV3IEVycm9yKCJkb20tYmluZCByZXF1aXJlcyBhIDx0ZW1wbGF0ZT4gY2hpbGQiKTtlLmRpc2Nvbm5lY3QoKSx0aGlzLnJlbmRlcigpfSkpO3JldHVybiB2b2lkIGUub2JzZXJ2ZSh0aGlzLHtjaGlsZExpc3Q6ITB9KX10aGlzLnJvb3Q9dGhpcy5fc3RhbXBUZW1wbGF0ZSh0KSx0aGlzLiQ9dGhpcy5yb290LiQsdGhpcy5fX2NoaWxkcmVuPVtdO2ZvcihsZXQgdD10aGlzLnJvb3QuZmlyc3RDaGlsZDt0O3Q9dC5uZXh0U2libGluZyl0aGlzLl9fY2hpbGRyZW5bdGhpcy5fX2NoaWxkcmVuLmxlbmd0aF09dDt0aGlzLl9lbmFibGVQcm9wZXJ0aWVzKCl9dGhpcy5fX2luc2VydENoaWxkcmVuKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZG9tLWNoYW5nZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IGVvPURyKHllKTtjbGFzcyBubyBleHRlbmRzIGVve3N0YXRpYyBnZXQgaXMoKXtyZXR1cm4iZG9tLXJlcGVhdCJ9c3RhdGljIGdldCB0ZW1wbGF0ZSgpe3JldHVybiBudWxsfXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntpdGVtczp7dHlwZTpBcnJheX0sYXM6e3R5cGU6U3RyaW5nLHZhbHVlOiJpdGVtIn0saW5kZXhBczp7dHlwZTpTdHJpbmcsdmFsdWU6ImluZGV4In0saXRlbXNJbmRleEFzOnt0eXBlOlN0cmluZyx2YWx1ZToiaXRlbXNJbmRleCJ9LHNvcnQ6e3R5cGU6RnVuY3Rpb24sb2JzZXJ2ZXI6Il9fc29ydENoYW5nZWQifSxmaWx0ZXI6e3R5cGU6RnVuY3Rpb24sb2JzZXJ2ZXI6Il9fZmlsdGVyQ2hhbmdlZCJ9LG9ic2VydmU6e3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfX29ic2VydmVDaGFuZ2VkIn0sZGVsYXk6TnVtYmVyLHJlbmRlcmVkSXRlbUNvdW50Ont0eXBlOk51bWJlcixub3RpZnk6IWsscmVhZE9ubHk6ITB9LGluaXRpYWxDb3VudDp7dHlwZTpOdW1iZXJ9LHRhcmdldEZyYW1lcmF0ZTp7dHlwZTpOdW1iZXIsdmFsdWU6MjB9LF90YXJnZXRGcmFtZVRpbWU6e3R5cGU6TnVtYmVyLGNvbXB1dGVkOiJfX2NvbXB1dGVGcmFtZVRpbWUodGFyZ2V0RnJhbWVyYXRlKSJ9LG5vdGlmeURvbUNoYW5nZTp7dHlwZTpCb29sZWFufSxyZXVzZUNodW5rZWRJbnN0YW5jZXM6e3R5cGU6Qm9vbGVhbn19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfX2l0ZW1zQ2hhbmdlZChpdGVtcy4qKSJdfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9faW5zdGFuY2VzPVtdLHRoaXMuX19yZW5kZXJEZWJvdW5jZXI9bnVsbCx0aGlzLl9faXRlbXNJZHhUb0luc3RJZHg9e30sdGhpcy5fX2NodW5rQ291bnQ9bnVsbCx0aGlzLl9fcmVuZGVyU3RhcnRUaW1lPW51bGwsdGhpcy5fX2l0ZW1zQXJyYXlDaGFuZ2VkPSExLHRoaXMuX19zaG91bGRNZWFzdXJlQ2h1bms9ITEsdGhpcy5fX3Nob3VsZENvbnRpbnVlQ2h1bmtpbmc9ITEsdGhpcy5fX2NodW5raW5nSWQ9MCx0aGlzLl9fc29ydEZuPW51bGwsdGhpcy5fX2ZpbHRlckZuPW51bGwsdGhpcy5fX29ic2VydmVQYXRocz1udWxsLHRoaXMuX19jdG9yPW51bGwsdGhpcy5fX2lzRGV0YWNoZWQ9ITAsdGhpcy50ZW1wbGF0ZT1udWxsfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9faXNEZXRhY2hlZD0hMDtmb3IobGV0IHQ9MDt0PHRoaXMuX19pbnN0YW5jZXMubGVuZ3RoO3QrKyl0aGlzLl9fZGV0YWNoSW5zdGFuY2UodCl9Y29ubmVjdGVkQ2FsbGJhY2soKXtpZihzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLFFyKCl8fCh0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlzLl9faXNEZXRhY2hlZCl7dGhpcy5fX2lzRGV0YWNoZWQ9ITE7bGV0IHQ9WShZKHRoaXMpLnBhcmVudE5vZGUpO2ZvcihsZXQgZT0wO2U8dGhpcy5fX2luc3RhbmNlcy5sZW5ndGg7ZSsrKXRoaXMuX19hdHRhY2hJbnN0YW5jZShlLHQpfX1fX2Vuc3VyZVRlbXBsYXRpemVkKCl7aWYoIXRoaXMuX19jdG9yKXtjb25zdCB0PXRoaXM7bGV0IGU9dGhpcy50ZW1wbGF0ZT10Ll90ZW1wbGF0ZUluZm8/dDp0aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIik7aWYoIWUpe2xldCB0PW5ldyBNdXRhdGlvbk9ic2VydmVyKCgoKT0+e2lmKCF0aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIikpdGhyb3cgbmV3IEVycm9yKCJkb20tcmVwZWF0IHJlcXVpcmVzIGEgPHRlbXBsYXRlPiBjaGlsZCIpO3QuZGlzY29ubmVjdCgpLHRoaXMuX19yZW5kZXIoKX0pKTtyZXR1cm4gdC5vYnNlcnZlKHRoaXMse2NoaWxkTGlzdDohMH0pLCExfWxldCBuPXt9O25bdGhpcy5hc109ITAsblt0aGlzLmluZGV4QXNdPSEwLG5bdGhpcy5pdGVtc0luZGV4QXNdPSEwLHRoaXMuX19jdG9yPSRyKGUsdGhpcyx7bXV0YWJsZURhdGE6dGhpcy5tdXRhYmxlRGF0YSxwYXJlbnRNb2RlbDohMCxpbnN0YW5jZVByb3BzOm4sZm9yd2FyZEhvc3RQcm9wOmZ1bmN0aW9uKHQsZSl7bGV0IG49dGhpcy5fX2luc3RhbmNlcztmb3IobGV0IGkscj0wO3I8bi5sZW5ndGgmJihpPW5bcl0pO3IrKylpLmZvcndhcmRIb3N0UHJvcCh0LGUpfSxub3RpZnlJbnN0YW5jZVByb3A6ZnVuY3Rpb24odCxlLG4pe2lmKFEodGhpcy5hcyxlKSl7bGV0IGk9dFt0aGlzLml0ZW1zSW5kZXhBc107ZT09dGhpcy5hcyYmKHRoaXMuaXRlbXNbaV09bik7bGV0IHI9Sih0aGlzLmFzLGAke0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKX0uJHtpfWAsZSk7dGhpcy5ub3RpZnlQYXRoKHIsbil9fX0pfXJldHVybiEwfV9fZ2V0TWV0aG9kSG9zdCgpe3JldHVybiB0aGlzLl9fZGF0YUhvc3QuX21ldGhvZEhvc3R8fHRoaXMuX19kYXRhSG9zdH1fX2Z1bmN0aW9uRnJvbVByb3BlcnR5VmFsdWUodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtsZXQgZT10LG49dGhpcy5fX2dldE1ldGhvZEhvc3QoKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbltlXS5hcHBseShuLGFyZ3VtZW50cyl9fXJldHVybiB0fV9fc29ydENoYW5nZWQodCl7dGhpcy5fX3NvcnRGbj10aGlzLl9fZnVuY3Rpb25Gcm9tUHJvcGVydHlWYWx1ZSh0KSx0aGlzLml0ZW1zJiZ0aGlzLl9fZGVib3VuY2VSZW5kZXIodGhpcy5fX3JlbmRlcil9X19maWx0ZXJDaGFuZ2VkKHQpe3RoaXMuX19maWx0ZXJGbj10aGlzLl9fZnVuY3Rpb25Gcm9tUHJvcGVydHlWYWx1ZSh0KSx0aGlzLml0ZW1zJiZ0aGlzLl9fZGVib3VuY2VSZW5kZXIodGhpcy5fX3JlbmRlcil9X19jb21wdXRlRnJhbWVUaW1lKHQpe3JldHVybiBNYXRoLmNlaWwoMWUzL3QpfV9fb2JzZXJ2ZUNoYW5nZWQoKXt0aGlzLl9fb2JzZXJ2ZVBhdGhzPXRoaXMub2JzZXJ2ZSYmdGhpcy5vYnNlcnZlLnJlcGxhY2UoIi4qIiwiLiIpLnNwbGl0KCIgIil9X19oYW5kbGVPYnNlcnZlZFBhdGhzKHQpe2lmKHRoaXMuX19zb3J0Rm58fHRoaXMuX19maWx0ZXJGbilpZih0KXtpZih0aGlzLl9fb2JzZXJ2ZVBhdGhzKXtsZXQgZT10aGlzLl9fb2JzZXJ2ZVBhdGhzO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKTA9PT10LmluZGV4T2YoZVtuXSkmJnRoaXMuX19kZWJvdW5jZVJlbmRlcih0aGlzLl9fcmVuZGVyLHRoaXMuZGVsYXkpfX1lbHNlIHRoaXMuX19kZWJvdW5jZVJlbmRlcih0aGlzLl9fcmVuZGVyLHRoaXMuZGVsYXkpfV9faXRlbXNDaGFuZ2VkKHQpe3RoaXMuaXRlbXMmJiFBcnJheS5pc0FycmF5KHRoaXMuaXRlbXMpJiZjb25zb2xlLndhcm4oImRvbS1yZXBlYXQgZXhwZWN0ZWQgYXJyYXkgZm9yIGBpdGVtc2AsIGZvdW5kIix0aGlzLml0ZW1zKSx0aGlzLl9faGFuZGxlSXRlbVBhdGgodC5wYXRoLHQudmFsdWUpfHwoIml0ZW1zIj09PXQucGF0aCYmKHRoaXMuX19pdGVtc0FycmF5Q2hhbmdlZD0hMCksdGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpKX1fX2RlYm91bmNlUmVuZGVyKHQsZT0wKXt0aGlzLl9fcmVuZGVyRGVib3VuY2VyPVRuLmRlYm91bmNlKHRoaXMuX19yZW5kZXJEZWJvdW5jZXIsZT4wP2d0LmFmdGVyKGUpOnZ0LHQuYmluZCh0aGlzKSksQW4odGhpcy5fX3JlbmRlckRlYm91bmNlcil9cmVuZGVyKCl7dGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpLERpKCl9X19yZW5kZXIoKXtpZighdGhpcy5fX2Vuc3VyZVRlbXBsYXRpemVkKCkpcmV0dXJuO2xldCB0PXRoaXMuaXRlbXN8fFtdO2NvbnN0IGU9dGhpcy5fX3NvcnRBbmRGaWx0ZXJJdGVtcyh0KSxuPXRoaXMuX19jYWxjdWxhdGVMaW1pdChlLmxlbmd0aCk7dGhpcy5fX3VwZGF0ZUluc3RhbmNlcyh0LG4sZSksdGhpcy5pbml0aWFsQ291bnQmJih0aGlzLl9fc2hvdWxkTWVhc3VyZUNodW5rfHx0aGlzLl9fc2hvdWxkQ29udGludWVDaHVua2luZykmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9fY2h1bmtpbmdJZCksdGhpcy5fX2NodW5raW5nSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy5fX2NvbnRpbnVlQ2h1bmtpbmcoKSkpKSx0aGlzLl9zZXRSZW5kZXJlZEl0ZW1Db3VudCh0aGlzLl9faW5zdGFuY2VzLmxlbmd0aCksayYmIXRoaXMubm90aWZ5RG9tQ2hhbmdlfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkb20tY2hhbmdlIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1fX3NvcnRBbmRGaWx0ZXJJdGVtcyh0KXtsZXQgZT1uZXcgQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWVbbl09bjtyZXR1cm4gdGhpcy5fX2ZpbHRlckZuJiYoZT1lLmZpbHRlcigoKGUsbixpKT0+dGhpcy5fX2ZpbHRlckZuKHRbZV0sbixpKSkpKSx0aGlzLl9fc29ydEZuJiZlLnNvcnQoKChlLG4pPT50aGlzLl9fc29ydEZuKHRbZV0sdFtuXSkpKSxlfV9fY2FsY3VsYXRlTGltaXQodCl7bGV0IGU9dDtjb25zdCBuPXRoaXMuX19pbnN0YW5jZXMubGVuZ3RoO2lmKHRoaXMuaW5pdGlhbENvdW50KXtsZXQgaTshdGhpcy5fX2NodW5rQ291bnR8fHRoaXMuX19pdGVtc0FycmF5Q2hhbmdlZCYmIXRoaXMucmV1c2VDaHVua2VkSW5zdGFuY2VzPyhlPU1hdGgubWluKHQsdGhpcy5pbml0aWFsQ291bnQpLGk9TWF0aC5tYXgoZS1uLDApLHRoaXMuX19jaHVua0NvdW50PWl8fDEpOihpPU1hdGgubWluKE1hdGgubWF4KHQtbiwwKSx0aGlzLl9fY2h1bmtDb3VudCksZT1NYXRoLm1pbihuK2ksdCkpLHRoaXMuX19zaG91bGRNZWFzdXJlQ2h1bms9aT09PXRoaXMuX19jaHVua0NvdW50LHRoaXMuX19zaG91bGRDb250aW51ZUNodW5raW5nPWU8dCx0aGlzLl9fcmVuZGVyU3RhcnRUaW1lPXBlcmZvcm1hbmNlLm5vdygpfXJldHVybiB0aGlzLl9faXRlbXNBcnJheUNoYW5nZWQ9ITEsZX1fX2NvbnRpbnVlQ2h1bmtpbmcoKXtpZih0aGlzLl9fc2hvdWxkTWVhc3VyZUNodW5rKXtjb25zdCB0PXBlcmZvcm1hbmNlLm5vdygpLXRoaXMuX19yZW5kZXJTdGFydFRpbWU7dGhpcy5fX2NodW5rQ291bnQ9TWF0aC5yb3VuZCh0aGlzLl9fY2h1bmtDb3VudCoodGhpcy5fdGFyZ2V0RnJhbWVUaW1lL3QpKXx8MX10aGlzLl9fc2hvdWxkQ29udGludWVDaHVua2luZyYmdGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpfV9fdXBkYXRlSW5zdGFuY2VzKHQsZSxuKXtjb25zdCBpPXRoaXMuX19pdGVtc0lkeFRvSW5zdElkeD17fTtsZXQgcjtmb3Iocj0wO3I8ZTtyKyspe2xldCBlPXRoaXMuX19pbnN0YW5jZXNbcl0sbz1uW3JdLGE9dFtvXTtpW29dPXIsZT8oZS5fc2V0UGVuZGluZ1Byb3BlcnR5KHRoaXMuYXMsYSksZS5fc2V0UGVuZGluZ1Byb3BlcnR5KHRoaXMuaW5kZXhBcyxyKSxlLl9zZXRQZW5kaW5nUHJvcGVydHkodGhpcy5pdGVtc0luZGV4QXMsbyksZS5fZmx1c2hQcm9wZXJ0aWVzKCkpOnRoaXMuX19pbnNlcnRJbnN0YW5jZShhLHIsbyl9Zm9yKGxldCB0PXRoaXMuX19pbnN0YW5jZXMubGVuZ3RoLTE7dD49cjt0LS0pdGhpcy5fX2RldGFjaEFuZFJlbW92ZUluc3RhbmNlKHQpfV9fZGV0YWNoSW5zdGFuY2UodCl7bGV0IGU9dGhpcy5fX2luc3RhbmNlc1t0XTtjb25zdCBuPVkoZS5yb290KTtmb3IobGV0IHQ9MDt0PGUuY2hpbGRyZW4ubGVuZ3RoO3QrKyluLmFwcGVuZENoaWxkKGUuY2hpbGRyZW5bdF0pO3JldHVybiBlfV9fYXR0YWNoSW5zdGFuY2UodCxlKXtlLmluc2VydEJlZm9yZSh0aGlzLl9faW5zdGFuY2VzW3RdLnJvb3QsdGhpcyl9X19kZXRhY2hBbmRSZW1vdmVJbnN0YW5jZSh0KXt0aGlzLl9fZGV0YWNoSW5zdGFuY2UodCksdGhpcy5fX2luc3RhbmNlcy5zcGxpY2UodCwxKX1fX3N0YW1wSW5zdGFuY2UodCxlLG4pe2xldCBpPXt9O3JldHVybiBpW3RoaXMuYXNdPXQsaVt0aGlzLmluZGV4QXNdPWUsaVt0aGlzLml0ZW1zSW5kZXhBc109bixuZXcgdGhpcy5fX2N0b3IoaSl9X19pbnNlcnRJbnN0YW5jZSh0LGUsbil7Y29uc3QgaT10aGlzLl9fc3RhbXBJbnN0YW5jZSh0LGUsbik7bGV0IHI9dGhpcy5fX2luc3RhbmNlc1tlKzFdLG89cj9yLmNoaWxkcmVuWzBdOnRoaXM7cmV0dXJuIFkoWSh0aGlzKS5wYXJlbnROb2RlKS5pbnNlcnRCZWZvcmUoaS5yb290LG8pLHRoaXMuX19pbnN0YW5jZXNbZV09aSxpfV9zaG93SGlkZUNoaWxkcmVuKHQpe2ZvcihsZXQgZT0wO2U8dGhpcy5fX2luc3RhbmNlcy5sZW5ndGg7ZSsrKXRoaXMuX19pbnN0YW5jZXNbZV0uX3Nob3dIaWRlQ2hpbGRyZW4odCl9X19oYW5kbGVJdGVtUGF0aCh0LGUpe2xldCBuPXQuc2xpY2UoNiksaT1uLmluZGV4T2YoIi4iKSxyPWk8MD9uOm4uc3Vic3RyaW5nKDAsaSk7aWYocj09cGFyc2VJbnQociwxMCkpe2xldCB0PWk8MD8iIjpuLnN1YnN0cmluZyhpKzEpO3RoaXMuX19oYW5kbGVPYnNlcnZlZFBhdGhzKHQpO2xldCBvPXRoaXMuX19pbnN0YW5jZXNbdGhpcy5fX2l0ZW1zSWR4VG9JbnN0SWR4W3JdXTtyZXR1cm4gbyYmKG8uX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aCh0aGlzLmFzKyh0PyIuIit0OiIiKSxlLCExLCEwKSxvLl9mbHVzaFByb3BlcnRpZXMoKSksITB9fWl0ZW1Gb3JFbGVtZW50KHQpe2xldCBlPXRoaXMubW9kZWxGb3JFbGVtZW50KHQpO3JldHVybiBlJiZlW3RoaXMuYXNdfWluZGV4Rm9yRWxlbWVudCh0KXtsZXQgZT10aGlzLm1vZGVsRm9yRWxlbWVudCh0KTtyZXR1cm4gZSYmZVt0aGlzLmluZGV4QXNdfW1vZGVsRm9yRWxlbWVudCh0KXtyZXR1cm4gS3IodGhpcy50ZW1wbGF0ZSx0KX19Y3VzdG9tRWxlbWVudHMuZGVmaW5lKG5vLmlzLG5vKTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY2xhc3MgaW8gZXh0ZW5kcyB5ZXtzdGF0aWMgZ2V0IGlzKCl7cmV0dXJuImRvbS1pZiJ9c3RhdGljIGdldCB0ZW1wbGF0ZSgpe3JldHVybiBudWxsfXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntpZjp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfX2RlYm91bmNlUmVuZGVyIn0scmVzdGFtcDp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfX2RlYm91bmNlUmVuZGVyIn0sbm90aWZ5RG9tQ2hhbmdlOnt0eXBlOkJvb2xlYW59fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fX3JlbmRlckRlYm91bmNlcj1udWxsLHRoaXMuX2xhc3RJZj0hMSx0aGlzLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fXz0hMX1fX2RlYm91bmNlUmVuZGVyKCl7dGhpcy5fX3JlbmRlckRlYm91bmNlcj1Ubi5kZWJvdW5jZSh0aGlzLl9fcmVuZGVyRGVib3VuY2VyLHZ0LCgoKT0+dGhpcy5fX3JlbmRlcigpKSksQW4odGhpcy5fX3JlbmRlckRlYm91bmNlcil9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO2NvbnN0IHQ9WSh0aGlzKS5wYXJlbnROb2RlO3QmJih0Lm5vZGVUeXBlIT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREV8fFkodCkuaG9zdCl8fHRoaXMuX190ZWFyZG93bkluc3RhbmNlKCl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLFFyKCl8fCh0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlzLmlmJiZ0aGlzLl9fZGVib3VuY2VSZW5kZXIoKX1fX2Vuc3VyZVRlbXBsYXRlKCl7aWYoIXRoaXMuX190ZW1wbGF0ZSl7Y29uc3QgdD10aGlzO2xldCBlPXQuX3RlbXBsYXRlSW5mbz90OlkodCkucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKTtpZighZSl7bGV0IHQ9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCgpPT57aWYoIVkodGhpcykucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKSl0aHJvdyBuZXcgRXJyb3IoImRvbS1pZiByZXF1aXJlcyBhIDx0ZW1wbGF0ZT4gY2hpbGQiKTt0LmRpc2Nvbm5lY3QoKSx0aGlzLl9fcmVuZGVyKCl9KSk7cmV0dXJuIHQub2JzZXJ2ZSh0aGlzLHtjaGlsZExpc3Q6ITB9KSwhMX10aGlzLl9fdGVtcGxhdGU9ZX1yZXR1cm4hMH1fX2Vuc3VyZUluc3RhbmNlKCl7bGV0IHQ9WSh0aGlzKS5wYXJlbnROb2RlO2lmKHRoaXMuX19oYXNJbnN0YW5jZSgpKXtsZXQgZT10aGlzLl9fZ2V0SW5zdGFuY2VOb2RlcygpO2lmKGUmJmUubGVuZ3RoJiZZKHRoaXMpLnByZXZpb3VzU2libGluZyE9PWVbZS5sZW5ndGgtMV0pZm9yKGxldCBuLGk9MDtpPGUubGVuZ3RoJiYobj1lW2ldKTtpKyspWSh0KS5pbnNlcnRCZWZvcmUobix0aGlzKX1lbHNle2lmKCF0KXJldHVybiExO2lmKCF0aGlzLl9fZW5zdXJlVGVtcGxhdGUoKSlyZXR1cm4hMTt0aGlzLl9fY3JlYXRlQW5kSW5zZXJ0SW5zdGFuY2UodCl9cmV0dXJuITB9cmVuZGVyKCl7RGkoKX1fX3JlbmRlcigpe2lmKHRoaXMuaWYpe2lmKCF0aGlzLl9fZW5zdXJlSW5zdGFuY2UoKSlyZXR1cm59ZWxzZSB0aGlzLnJlc3RhbXAmJnRoaXMuX190ZWFyZG93bkluc3RhbmNlKCk7dGhpcy5fc2hvd0hpZGVDaGlsZHJlbigpLGsmJiF0aGlzLm5vdGlmeURvbUNoYW5nZXx8dGhpcy5pZj09dGhpcy5fbGFzdElmfHwodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZG9tLWNoYW5nZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5fbGFzdElmPXRoaXMuaWYpfV9faGFzSW5zdGFuY2UoKXt9X19nZXRJbnN0YW5jZU5vZGVzKCl7fV9fY3JlYXRlQW5kSW5zZXJ0SW5zdGFuY2UodCl7fV9fdGVhcmRvd25JbnN0YW5jZSgpe31fc2hvd0hpZGVDaGlsZHJlbigpe319Y29uc3Qgcm89QT9jbGFzcyBleHRlbmRzIGlve2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9faW5zdGFuY2U9bnVsbCx0aGlzLl9fc3luY0luZm89bnVsbH1fX2hhc0luc3RhbmNlKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fX2luc3RhbmNlKX1fX2dldEluc3RhbmNlTm9kZXMoKXtyZXR1cm4gdGhpcy5fX2luc3RhbmNlLnRlbXBsYXRlSW5mby5jaGlsZE5vZGVzfV9fY3JlYXRlQW5kSW5zZXJ0SW5zdGFuY2UodCl7Y29uc3QgZT10aGlzLl9fZGF0YUhvc3R8fHRoaXM7aWYoYiYmIXRoaXMuX19kYXRhSG9zdCl0aHJvdyBuZXcgRXJyb3IoInN0cmljdFRlbXBsYXRlUG9saWN5OiB0ZW1wbGF0ZSBvd25lciBub3QgdHJ1c3RlZCIpO2NvbnN0IG49ZS5fYmluZFRlbXBsYXRlKHRoaXMuX190ZW1wbGF0ZSwhMCk7bi5ydW5FZmZlY3RzPSh0LGUsbik9PntsZXQgaT10aGlzLl9fc3luY0luZm87aWYodGhpcy5pZilpJiYodGhpcy5fX3N5bmNJbmZvPW51bGwsdGhpcy5fc2hvd0hpZGVDaGlsZHJlbigpLGU9T2JqZWN0LmFzc2lnbihpLmNoYW5nZWRQcm9wcyxlKSksdChlLG4pO2Vsc2UgaWYodGhpcy5fX2luc3RhbmNlKWlmKGl8fChpPXRoaXMuX19zeW5jSW5mbz17cnVuRWZmZWN0czp0LGNoYW5nZWRQcm9wczp7fX0pLG4pZm9yKGNvbnN0IHQgaW4gZSl7Y29uc3QgZT0kKHQpO2kuY2hhbmdlZFByb3BzW2VdPXRoaXMuX19kYXRhSG9zdFtlXX1lbHNlIE9iamVjdC5hc3NpZ24oaS5jaGFuZ2VkUHJvcHMsZSl9LHRoaXMuX19pbnN0YW5jZT1lLl9zdGFtcFRlbXBsYXRlKHRoaXMuX190ZW1wbGF0ZSxuKSxZKHQpLmluc2VydEJlZm9yZSh0aGlzLl9faW5zdGFuY2UsdGhpcyl9X19zeW5jSG9zdFByb3BlcnRpZXMoKXtjb25zdCB0PXRoaXMuX19zeW5jSW5mbzt0JiYodGhpcy5fX3N5bmNJbmZvPW51bGwsdC5ydW5FZmZlY3RzKHQuY2hhbmdlZFByb3BzLCExKSl9X190ZWFyZG93bkluc3RhbmNlKCl7dGhpcy5fX2luc3RhbmNlJiYoKHRoaXMuX19kYXRhSG9zdHx8dGhpcykuX3JlbW92ZUJvdW5kRG9tKHRoaXMuX19pbnN0YW5jZSksdGhpcy5fX2luc3RhbmNlPW51bGwsdGhpcy5fX3N5bmNJbmZvPW51bGwpfV9zaG93SGlkZUNoaWxkcmVuKCl7Y29uc3QgdD10aGlzLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fX3x8IXRoaXMuaWY7dGhpcy5fX2luc3RhbmNlJiZCb29sZWFuKHRoaXMuX19pbnN0YW5jZS5fX2hpZGRlbikhPT10JiYodGhpcy5fX2luc3RhbmNlLl9faGlkZGVuPXQsanIodCx0aGlzLl9faW5zdGFuY2UudGVtcGxhdGVJbmZvLmNoaWxkTm9kZXMpKSx0fHx0aGlzLl9fc3luY0hvc3RQcm9wZXJ0aWVzKCl9fTpjbGFzcyBleHRlbmRzIGlve2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9fY3Rvcj1udWxsLHRoaXMuX19pbnN0YW5jZT1udWxsLHRoaXMuX19pbnZhbGlkUHJvcHM9bnVsbH1fX2hhc0luc3RhbmNlKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fX2luc3RhbmNlKX1fX2dldEluc3RhbmNlTm9kZXMoKXtyZXR1cm4gdGhpcy5fX2luc3RhbmNlLmNoaWxkcmVufV9fY3JlYXRlQW5kSW5zZXJ0SW5zdGFuY2UodCl7dGhpcy5fX2N0b3J8fCh0aGlzLl9fY3Rvcj0kcih0aGlzLl9fdGVtcGxhdGUsdGhpcyx7bXV0YWJsZURhdGE6ITAsZm9yd2FyZEhvc3RQcm9wOmZ1bmN0aW9uKHQsZSl7dGhpcy5fX2luc3RhbmNlJiYodGhpcy5pZj90aGlzLl9faW5zdGFuY2UuZm9yd2FyZEhvc3RQcm9wKHQsZSk6KHRoaXMuX19pbnZhbGlkUHJvcHM9dGhpcy5fX2ludmFsaWRQcm9wc3x8T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9faW52YWxpZFByb3BzWyQodCldPSEwKSl9fSkpLHRoaXMuX19pbnN0YW5jZT1uZXcgdGhpcy5fX2N0b3IsWSh0KS5pbnNlcnRCZWZvcmUodGhpcy5fX2luc3RhbmNlLnJvb3QsdGhpcyl9X190ZWFyZG93bkluc3RhbmNlKCl7aWYodGhpcy5fX2luc3RhbmNlKXtsZXQgdD10aGlzLl9faW5zdGFuY2UuY2hpbGRyZW47aWYodCYmdC5sZW5ndGgpe2xldCBlPVkodFswXSkucGFyZW50Tm9kZTtpZihlKXtlPVkoZSk7Zm9yKGxldCBuLGk9MDtpPHQubGVuZ3RoJiYobj10W2ldKTtpKyspZS5yZW1vdmVDaGlsZChuKX19dGhpcy5fX2ludmFsaWRQcm9wcz1udWxsLHRoaXMuX19pbnN0YW5jZT1udWxsfX1fX3N5bmNIb3N0UHJvcGVydGllcygpe2xldCB0PXRoaXMuX19pbnZhbGlkUHJvcHM7aWYodCl7dGhpcy5fX2ludmFsaWRQcm9wcz1udWxsO2ZvcihsZXQgZSBpbiB0KXRoaXMuX19pbnN0YW5jZS5fc2V0UGVuZGluZ1Byb3BlcnR5KGUsdGhpcy5fX2RhdGFIb3N0W2VdKTt0aGlzLl9faW5zdGFuY2UuX2ZsdXNoUHJvcGVydGllcygpfX1fc2hvd0hpZGVDaGlsZHJlbigpe2NvbnN0IHQ9dGhpcy5fX2hpZGVUZW1wbGF0ZUNoaWxkcmVuX198fCF0aGlzLmlmO3RoaXMuX19pbnN0YW5jZSYmQm9vbGVhbih0aGlzLl9faW5zdGFuY2UuX19oaWRkZW4pIT09dCYmKHRoaXMuX19pbnN0YW5jZS5fX2hpZGRlbj10LHRoaXMuX19pbnN0YW5jZS5fc2hvd0hpZGVDaGlsZHJlbih0KSksdHx8dGhpcy5fX3N5bmNIb3N0UHJvcGVydGllcygpfX07Y3VzdG9tRWxlbWVudHMuZGVmaW5lKHJvLmlzLHJvKTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KbGV0IG9vPUkoKHQ9PntsZXQgZT1tZSh0KTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBle3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntpdGVtczp7dHlwZTpBcnJheX0sbXVsdGk6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2VsZWN0ZWQ6e3R5cGU6T2JqZWN0LG5vdGlmeTohMH0sc2VsZWN0ZWRJdGVtOnt0eXBlOk9iamVjdCxub3RpZnk6ITB9LHRvZ2dsZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9fdXBkYXRlU2VsZWN0aW9uKG11bHRpLCBpdGVtcy4qKSJdfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9fbGFzdEl0ZW1zPW51bGwsdGhpcy5fX2xhc3RNdWx0aT1udWxsLHRoaXMuX19zZWxlY3RlZE1hcD1udWxsfV9fdXBkYXRlU2VsZWN0aW9uKHQsZSl7bGV0IG49ZS5wYXRoO2lmKG49PUpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKSl7bGV0IG49ZS5iYXNlfHxbXSxpPXRoaXMuX19sYXN0SXRlbXM7aWYodCE9PXRoaXMuX19sYXN0TXVsdGkmJnRoaXMuY2xlYXJTZWxlY3Rpb24oKSxpKXtsZXQgdD1JaShuLGkpO3RoaXMuX19hcHBseVNwbGljZXModCl9dGhpcy5fX2xhc3RJdGVtcz1uLHRoaXMuX19sYXN0TXVsdGk9dH1lbHNlIGlmKGUucGF0aD09YCR7SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXRlbXMiLHRoaXMpfS5zcGxpY2VzYCl0aGlzLl9fYXBwbHlTcGxpY2VzKGUudmFsdWUuaW5kZXhTcGxpY2VzKTtlbHNle2xldCB0PW4uc2xpY2UoYCR7SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXRlbXMiLHRoaXMpfS5gLmxlbmd0aCksZT1wYXJzZUludCh0LDEwKTt0LmluZGV4T2YoIi4iKTwwJiZ0PT1lJiZ0aGlzLl9fZGVzZWxlY3RDaGFuZ2VkSWR4KGUpfX1fX2FwcGx5U3BsaWNlcyh0KXtsZXQgZT10aGlzLl9fc2VsZWN0ZWRNYXA7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2xldCBpPXRbbl07ZS5mb3JFYWNoKCgodCxuKT0+e3Q8aS5pbmRleHx8ZS5zZXQobix0Pj1pLmluZGV4K2kucmVtb3ZlZC5sZW5ndGg/dCtpLmFkZGVkQ291bnQtaS5yZW1vdmVkLmxlbmd0aDotMSl9KSk7Zm9yKGxldCB0PTA7dDxpLmFkZGVkQ291bnQ7dCsrKXtsZXQgbj1pLmluZGV4K3Q7ZS5oYXModGhpcy5pdGVtc1tuXSkmJmUuc2V0KHRoaXMuaXRlbXNbbl0sbil9fXRoaXMuX191cGRhdGVMaW5rcygpO2xldCBuPTA7ZS5mb3JFYWNoKCgodCxpKT0+e3Q8MD8odGhpcy5tdWx0aT90aGlzLnNwbGljZShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZCIsdGhpcyksbiwxKTp0aGlzLnNlbGVjdGVkPXRoaXMuc2VsZWN0ZWRJdGVtPW51bGwsZS5kZWxldGUoaSkpOm4rK30pKX1fX3VwZGF0ZUxpbmtzKCl7aWYodGhpcy5fX2RhdGFMaW5rZWRQYXRocz17fSx0aGlzLm11bHRpKXtsZXQgdD0wO3RoaXMuX19zZWxlY3RlZE1hcC5mb3JFYWNoKChlPT57ZT49MCYmdGhpcy5saW5rUGF0aHMoYCR7SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXRlbXMiLHRoaXMpfS4ke2V9YCxgJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZCIsdGhpcyl9LiR7dCsrfWApfSkpfWVsc2UgdGhpcy5fX3NlbGVjdGVkTWFwLmZvckVhY2goKHQ9Pnt0aGlzLmxpbmtQYXRocyhKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZCIsdGhpcyksYCR7SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXRlbXMiLHRoaXMpfS4ke3R9YCksdGhpcy5saW5rUGF0aHMoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgic2VsZWN0ZWRJdGVtIix0aGlzKSxgJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJpdGVtcyIsdGhpcyl9LiR7dH1gKX0pKX1jbGVhclNlbGVjdGlvbigpe3RoaXMuX19kYXRhTGlua2VkUGF0aHM9e30sdGhpcy5fX3NlbGVjdGVkTWFwPW5ldyBNYXAsdGhpcy5zZWxlY3RlZD10aGlzLm11bHRpP1tdOm51bGwsdGhpcy5zZWxlY3RlZEl0ZW09bnVsbH1pc1NlbGVjdGVkKHQpe3JldHVybiB0aGlzLl9fc2VsZWN0ZWRNYXAuaGFzKHQpfWlzSW5kZXhTZWxlY3RlZCh0KXtyZXR1cm4gdGhpcy5pc1NlbGVjdGVkKHRoaXMuaXRlbXNbdF0pfV9fZGVzZWxlY3RDaGFuZ2VkSWR4KHQpe2xldCBlPXRoaXMuX19zZWxlY3RlZEluZGV4Rm9ySXRlbUluZGV4KHQpO2lmKGU+PTApe2xldCB0PTA7dGhpcy5fX3NlbGVjdGVkTWFwLmZvckVhY2goKChuLGkpPT57ZT09dCsrJiZ0aGlzLmRlc2VsZWN0KGkpfSkpfX1fX3NlbGVjdGVkSW5kZXhGb3JJdGVtSW5kZXgodCl7bGV0IGU9dGhpcy5fX2RhdGFMaW5rZWRQYXRoc1tgJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJpdGVtcyIsdGhpcyl9LiR7dH1gXTtpZihlKXJldHVybiBwYXJzZUludChlLnNsaWNlKGAke0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoInNlbGVjdGVkIix0aGlzKX0uYC5sZW5ndGgpLDEwKX1kZXNlbGVjdCh0KXtsZXQgZT10aGlzLl9fc2VsZWN0ZWRNYXAuZ2V0KHQpO2lmKGU+PTApe2xldCBuO3RoaXMuX19zZWxlY3RlZE1hcC5kZWxldGUodCksdGhpcy5tdWx0aSYmKG49dGhpcy5fX3NlbGVjdGVkSW5kZXhGb3JJdGVtSW5kZXgoZSkpLHRoaXMuX191cGRhdGVMaW5rcygpLHRoaXMubXVsdGk/dGhpcy5zcGxpY2UoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgic2VsZWN0ZWQiLHRoaXMpLG4sMSk6dGhpcy5zZWxlY3RlZD10aGlzLnNlbGVjdGVkSXRlbT1udWxsfX1kZXNlbGVjdEluZGV4KHQpe3RoaXMuZGVzZWxlY3QodGhpcy5pdGVtc1t0XSl9c2VsZWN0KHQpe3RoaXMuc2VsZWN0SW5kZXgodGhpcy5pdGVtcy5pbmRleE9mKHQpKX1zZWxlY3RJbmRleCh0KXtsZXQgZT10aGlzLml0ZW1zW3RdO3RoaXMuaXNTZWxlY3RlZChlKT90aGlzLnRvZ2dsZSYmdGhpcy5kZXNlbGVjdEluZGV4KHQpOih0aGlzLm11bHRpfHx0aGlzLl9fc2VsZWN0ZWRNYXAuY2xlYXIoKSx0aGlzLl9fc2VsZWN0ZWRNYXAuc2V0KGUsdCksdGhpcy5fX3VwZGF0ZUxpbmtzKCksdGhpcy5tdWx0aT90aGlzLnB1c2goSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgic2VsZWN0ZWQiLHRoaXMpLGUpOnRoaXMuc2VsZWN0ZWQ9dGhpcy5zZWxlY3RlZEl0ZW09ZSl9fX0pKSh5ZSk7Y2xhc3MgYW8gZXh0ZW5kcyBvb3tzdGF0aWMgZ2V0IGlzKCl7cmV0dXJuImFycmF5LXNlbGVjdG9yIn1zdGF0aWMgZ2V0IHRlbXBsYXRlKCl7cmV0dXJuIG51bGx9fWN1c3RvbUVsZW1lbnRzLmRlZmluZShhby5pcyxhbyk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IHNvPW5ldyBTbjt3aW5kb3cuU2hhZHlDU1N8fCh3aW5kb3cuU2hhZHlDU1M9e3ByZXBhcmVUZW1wbGF0ZSh0LGUsbil7fSxwcmVwYXJlVGVtcGxhdGVEb20odCxlKXt9LHByZXBhcmVUZW1wbGF0ZVN0eWxlcyh0LGUsbil7fSxzdHlsZVN1YnRyZWUodCxlKXtzby5wcm9jZXNzU3R5bGVzKCksUWUodCxlKX0sc3R5bGVFbGVtZW50KHQpe3NvLnByb2Nlc3NTdHlsZXMoKX0sc3R5bGVEb2N1bWVudCh0KXtzby5wcm9jZXNzU3R5bGVzKCksUWUoZG9jdW1lbnQuYm9keSx0KX0sZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlOih0LGUpPT50bih0LGUpLGZsdXNoQ3VzdG9tU3R5bGVzKCl7fSxuYXRpdmVDc3M6a2UsbmF0aXZlU2hhZG93Ok1lLGNzc0J1aWxkOlRlLGRpc2FibGVSdW50aW1lOkFlfSksd2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlPXNvOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBsbz0iaW5jbHVkZSIsY289d2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlO2NsYXNzIHVvIGV4dGVuZHMgSFRNTEVsZW1lbnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX3N0eWxlPW51bGwsY28uYWRkQ3VzdG9tU3R5bGUodGhpcyl9Z2V0U3R5bGUoKXtpZih0aGlzLl9zdHlsZSlyZXR1cm4gdGhpcy5fc3R5bGU7Y29uc3QgdD10aGlzLnF1ZXJ5U2VsZWN0b3IoInN0eWxlIik7aWYoIXQpcmV0dXJuIG51bGw7dGhpcy5fc3R5bGU9dDtjb25zdCBlPXQuZ2V0QXR0cmlidXRlKGxvKTtyZXR1cm4gZSYmKHQucmVtb3ZlQXR0cmlidXRlKGxvKSx0LnRleHRDb250ZW50PShmdW5jdGlvbiBuKHQpe2xldCBlPXQudHJpbSgpLnNwbGl0KC9ccysvKSxuPSIiO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW4rPXEoZVt0XSk7cmV0dXJuIG59KShlKSt0LnRleHRDb250ZW50KSx0aGlzLm93bmVyRG9jdW1lbnQhPT13aW5kb3cuZG9jdW1lbnQmJndpbmRvdy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRoaXMpLHRoaXMuX3N0eWxlfX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KbGV0IGhvO3dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoImN1c3RvbS1zdHlsZSIsdW8pLGhvPXpyLl9tdXRhYmxlUHJvcGVydHlDaGFuZ2U7Y29uc3QgcG89e3Byb3BlcnRpZXM6e211dGFibGVEYXRhOkJvb2xlYW59LF9zaG91bGRQcm9wZXJ0eUNoYW5nZSh0LGUsbil7cmV0dXJuIGhvKHRoaXMsdCxlLG4sdGhpcy5tdXRhYmxlRGF0YSl9fSxmbz1lcihIVE1MRWxlbWVudCkucHJvdG90eXBlOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KdmFyIG1vPW5ldyBTZXQ7Y29uc3QgZ289e3Byb3BlcnRpZXM6e19wYXJlbnRSZXNpemFibGU6e3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfcGFyZW50UmVzaXphYmxlQ2hhbmdlZCJ9LF9ub3RpZnlpbmdEZXNjZW5kYW50Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxsaXN0ZW5lcnM6eyJpcm9uLXJlcXVlc3QtcmVzaXplLW5vdGlmaWNhdGlvbnMiOiJfb25Jcm9uUmVxdWVzdFJlc2l6ZU5vdGlmaWNhdGlvbnMifSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5faW50ZXJlc3RlZFJlc2l6YWJsZXM9W10sdGhpcy5fYm91bmROb3RpZnlSZXNpemU9dGhpcy5ub3RpZnlSZXNpemUuYmluZCh0aGlzKSx0aGlzLl9ib3VuZE9uRGVzY2VuZGFudElyb25SZXNpemU9dGhpcy5fb25EZXNjZW5kYW50SXJvblJlc2l6ZS5iaW5kKHRoaXMpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX3JlcXVlc3RSZXNpemVOb3RpZmljYXRpb25zKCl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fcGFyZW50UmVzaXphYmxlP3RoaXMuX3BhcmVudFJlc2l6YWJsZS5zdG9wUmVzaXplTm90aWZpY2F0aW9uc0Zvcih0aGlzKToobW8uZGVsZXRlKHRoaXMpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2JvdW5kTm90aWZ5UmVzaXplKSksdGhpcy5fcGFyZW50UmVzaXphYmxlPW51bGx9LG5vdGlmeVJlc2l6ZTpmdW5jdGlvbigpe3RoaXMuaXNBdHRhY2hlZCYmKHRoaXMuX2ludGVyZXN0ZWRSZXNpemFibGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3RoaXMucmVzaXplclNob3VsZE5vdGlmeSh0KSYmdGhpcy5fbm90aWZ5RGVzY2VuZGFudCh0KX0pLHRoaXMpLHRoaXMuX2ZpcmVSZXNpemUoKSl9LGFzc2lnblBhcmVudFJlc2l6YWJsZTpmdW5jdGlvbih0KXt0aGlzLl9wYXJlbnRSZXNpemFibGUmJnRoaXMuX3BhcmVudFJlc2l6YWJsZS5zdG9wUmVzaXplTm90aWZpY2F0aW9uc0Zvcih0aGlzKSx0aGlzLl9wYXJlbnRSZXNpemFibGU9dCx0JiYtMT09PXQuX2ludGVyZXN0ZWRSZXNpemFibGVzLmluZGV4T2YodGhpcykmJih0Ll9pbnRlcmVzdGVkUmVzaXphYmxlcy5wdXNoKHRoaXMpLHQuX3N1YnNjcmliZUlyb25SZXNpemUodGhpcykpfSxzdG9wUmVzaXplTm90aWZpY2F0aW9uc0ZvcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9pbnRlcmVzdGVkUmVzaXphYmxlcy5pbmRleE9mKHQpO2U+LTEmJih0aGlzLl9pbnRlcmVzdGVkUmVzaXphYmxlcy5zcGxpY2UoZSwxKSx0aGlzLl91bnN1YnNjcmliZUlyb25SZXNpemUodCkpfSxfc3Vic2NyaWJlSXJvblJlc2l6ZTpmdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImlyb24tcmVzaXplIix0aGlzLl9ib3VuZE9uRGVzY2VuZGFudElyb25SZXNpemUpfSxfdW5zdWJzY3JpYmVJcm9uUmVzaXplOmZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaXJvbi1yZXNpemUiLHRoaXMuX2JvdW5kT25EZXNjZW5kYW50SXJvblJlc2l6ZSl9LHJlc2l6ZXJTaG91bGROb3RpZnk6ZnVuY3Rpb24odCl7cmV0dXJuITB9LF9vbkRlc2NlbmRhbnRJcm9uUmVzaXplOmZ1bmN0aW9uKHQpe3RoaXMuX25vdGlmeWluZ0Rlc2NlbmRhbnQ/dC5zdG9wUHJvcGFnYXRpb24oKTptfHx0aGlzLl9maXJlUmVzaXplKCl9LF9maXJlUmVzaXplOmZ1bmN0aW9uKCl7dGhpcy5maXJlKCJpcm9uLXJlc2l6ZSIsbnVsbCx7bm9kZTp0aGlzLGJ1YmJsZXM6ITF9KX0sX29uSXJvblJlcXVlc3RSZXNpemVOb3RpZmljYXRpb25zOmZ1bmN0aW9uKHQpe3ZhciBlPVlpKHQpLnJvb3RUYXJnZXQ7ZSE9PXRoaXMmJihlLmFzc2lnblBhcmVudFJlc2l6YWJsZSh0aGlzKSx0aGlzLl9ub3RpZnlEZXNjZW5kYW50KGUpLHQuc3RvcFByb3BhZ2F0aW9uKCkpfSxfcGFyZW50UmVzaXphYmxlQ2hhbmdlZDpmdW5jdGlvbih0KXt0JiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9ib3VuZE5vdGlmeVJlc2l6ZSl9LF9ub3RpZnlEZXNjZW5kYW50OmZ1bmN0aW9uKHQpe3RoaXMuaXNBdHRhY2hlZCYmKHRoaXMuX25vdGlmeWluZ0Rlc2NlbmRhbnQ9ITAsdC5ub3RpZnlSZXNpemUoKSx0aGlzLl9ub3RpZnlpbmdEZXNjZW5kYW50PSExKX0sX3JlcXVlc3RSZXNpemVOb3RpZmljYXRpb25zOmZ1bmN0aW9uKCl7aWYodGhpcy5pc0F0dGFjaGVkKWlmKCJsb2FkaW5nIj09PWRvY3VtZW50LnJlYWR5U3RhdGUpe3ZhciB0PXRoaXMuX3JlcXVlc3RSZXNpemVOb3RpZmljYXRpb25zLmJpbmQodGhpcyk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsKGZ1bmN0aW9uIGUoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIixlKSx0KCl9KSl9ZWxzZSB0aGlzLl9maW5kUGFyZW50KCksdGhpcy5fcGFyZW50UmVzaXphYmxlP3RoaXMuX3BhcmVudFJlc2l6YWJsZS5faW50ZXJlc3RlZFJlc2l6YWJsZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCE9PXRoaXMmJnQuX2ZpbmRQYXJlbnQoKX0pLHRoaXMpOihtby5mb3JFYWNoKChmdW5jdGlvbih0KXt0IT09dGhpcyYmdC5fZmluZFBhcmVudCgpfSksdGhpcyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fYm91bmROb3RpZnlSZXNpemUpLHRoaXMubm90aWZ5UmVzaXplKCkpfSxfZmluZFBhcmVudDpmdW5jdGlvbigpe3RoaXMuYXNzaWduUGFyZW50UmVzaXphYmxlKG51bGwpLHRoaXMuZmlyZSgiaXJvbi1yZXF1ZXN0LXJlc2l6ZS1ub3RpZmljYXRpb25zIixudWxsLHtub2RlOnRoaXMsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSksdGhpcy5fcGFyZW50UmVzaXphYmxlP21vLmRlbGV0ZSh0aGlzKTptby5hZGQodGhpcyl9fTt2YXIgX289T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsSXJvblJlc2l6YWJsZUJlaGF2aW9yOmdvfSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL1JyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1pcm9uLWNvbGxhcHNlLXRyYW5zaXRpb24tZHVyYXRpb24sIDMwMG1zKTsKICAgICAgICAvKiBTYWZhcmkgMTAgbmVlZHMgdGhpcyBwcm9wZXJ0eSBwcmVmaXhlZCB0byBjb3JyZWN0bHkgYXBwbHkgdGhlIGN1c3RvbSBwcm9wZXJ0eSAqLwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0taXJvbi1jb2xsYXBzZS10cmFuc2l0aW9uLWR1cmF0aW9uLCAzMDBtcyk7CiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgIH0KCiAgICAgIDpob3N0KC5pcm9uLWNvbGxhcHNlLWNsb3NlZCkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KDpub3QoLmlyb24tY29sbGFwc2Utb3BlbmVkKSkgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJpcm9uLWNvbGxhcHNlIixiZWhhdmlvcnM6W2dvXSxwcm9wZXJ0aWVzOntob3Jpem9udGFsOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Il9ob3Jpem9udGFsQ2hhbmdlZCJ9LG9wZW5lZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxvYnNlcnZlcjoiX29wZW5lZENoYW5nZWQifSx0cmFuc2l0aW9uaW5nOnt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwLHJlYWRPbmx5OiEwfSxub0FuaW1hdGlvbjp7dHlwZTpCb29sZWFufSxfZGVzaXJlZFNpemU6e3R5cGU6U3RyaW5nLHZhbHVlOiIifX0sZ2V0IGRpbWVuc2lvbigpe3JldHVybiB0aGlzLmhvcml6b250YWw/IndpZHRoIjoiaGVpZ2h0In0sZ2V0IF9kaW1lbnNpb25NYXgoKXtyZXR1cm4gdGhpcy5ob3Jpem9udGFsPyJtYXhXaWR0aCI6Im1heEhlaWdodCJ9LGdldCBfZGltZW5zaW9uTWF4Q3NzKCl7cmV0dXJuIHRoaXMuaG9yaXpvbnRhbD8ibWF4LXdpZHRoIjoibWF4LWhlaWdodCJ9LGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJncm91cCIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LGxpc3RlbmVyczp7dHJhbnNpdGlvbmVuZDoiX29uVHJhbnNpdGlvbkVuZCJ9LHRvZ2dsZTpmdW5jdGlvbigpe3RoaXMub3BlbmVkPSF0aGlzLm9wZW5lZH0sc2hvdzpmdW5jdGlvbigpe3RoaXMub3BlbmVkPSEwfSxoaWRlOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ9ITF9LHVwZGF0ZVNpemU6ZnVuY3Rpb24odCxlKXt0PSJhdXRvIj09PXQ/IiI6dDt2YXIgbj1lJiYhdGhpcy5ub0FuaW1hdGlvbiYmdGhpcy5pc0F0dGFjaGVkJiZ0aGlzLl9kZXNpcmVkU2l6ZSE9PXQ7aWYodGhpcy5fZGVzaXJlZFNpemU9dCx0aGlzLl91cGRhdGVUcmFuc2l0aW9uKCExKSxuKXt2YXIgaT10aGlzLl9jYWxjU2l6ZSgpOyIiPT09dCYmKHRoaXMuc3R5bGVbdGhpcy5fZGltZW5zaW9uTWF4XT0iIix0PXRoaXMuX2NhbGNTaXplKCkpLHRoaXMuc3R5bGVbdGhpcy5fZGltZW5zaW9uTWF4XT1pLHRoaXMuc2Nyb2xsVG9wPXRoaXMuc2Nyb2xsVG9wLHRoaXMuX3VwZGF0ZVRyYW5zaXRpb24oITApLG49dCE9PWl9dGhpcy5zdHlsZVt0aGlzLl9kaW1lbnNpb25NYXhdPXQsbnx8dGhpcy5fdHJhbnNpdGlvbkVuZCgpfSxlbmFibGVUcmFuc2l0aW9uOmZ1bmN0aW9uKHQpe2ZvLl93YXJuKCJgZW5hYmxlVHJhbnNpdGlvbigpYCBpcyBkZXByZWNhdGVkLCB1c2UgYG5vQW5pbWF0aW9uYCBpbnN0ZWFkLiIpLHRoaXMubm9BbmltYXRpb249IXR9LF91cGRhdGVUcmFuc2l0aW9uOmZ1bmN0aW9uKHQpe3RoaXMuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPXQmJiF0aGlzLm5vQW5pbWF0aW9uPyIiOiIwcyJ9LF9ob3Jpem9udGFsQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuc3R5bGUudHJhbnNpdGlvblByb3BlcnR5PXRoaXMuX2RpbWVuc2lvbk1heENzcyx0aGlzLnN0eWxlWyJtYXhXaWR0aCI9PT10aGlzLl9kaW1lbnNpb25NYXg/Im1heEhlaWdodCI6Im1heFdpZHRoIl09IiIsdGhpcy51cGRhdGVTaXplKHRoaXMub3BlbmVkPyJhdXRvIjoiMHB4IiwhMSl9LF9vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhdGhpcy5vcGVuZWQpLHRoaXMuX3NldFRyYW5zaXRpb25pbmcoITApLHRoaXMudG9nZ2xlQ2xhc3MoImlyb24tY29sbGFwc2UtY2xvc2VkIiwhMSksdGhpcy50b2dnbGVDbGFzcygiaXJvbi1jb2xsYXBzZS1vcGVuZWQiLCExKSx0aGlzLnVwZGF0ZVNpemUodGhpcy5vcGVuZWQ/ImF1dG8iOiIwcHgiLCEwKSx0aGlzLm9wZW5lZCYmdGhpcy5mb2N1cygpfSxfdHJhbnNpdGlvbkVuZDpmdW5jdGlvbigpe3RoaXMuc3R5bGVbdGhpcy5fZGltZW5zaW9uTWF4XT10aGlzLl9kZXNpcmVkU2l6ZSx0aGlzLnRvZ2dsZUNsYXNzKCJpcm9uLWNvbGxhcHNlLWNsb3NlZCIsIXRoaXMub3BlbmVkKSx0aGlzLnRvZ2dsZUNsYXNzKCJpcm9uLWNvbGxhcHNlLW9wZW5lZCIsdGhpcy5vcGVuZWQpLHRoaXMuX3VwZGF0ZVRyYW5zaXRpb24oITEpLHRoaXMubm90aWZ5UmVzaXplKCksdGhpcy5fc2V0VHJhbnNpdGlvbmluZyghMSl9LF9vblRyYW5zaXRpb25FbmQ6ZnVuY3Rpb24odCl7WWkodCkucm9vdFRhcmdldD09PXRoaXMmJnRoaXMuX3RyYW5zaXRpb25FbmQoKX0sX2NhbGNTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbdGhpcy5kaW1lbnNpb25dKyJweCJ9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCB5bz1fZWAKLyogTW9zdCBjb21tb24gdXNlZCBmbGV4IHN0eWxlcyovCjxkb20tbW9kdWxlIGlkPSJpcm9uLWZsZXgiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgLmxheW91dC5ob3Jpem9udGFsLAogICAgICAubGF5b3V0LnZlcnRpY2FsIHsKICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLmxheW91dC5pbmxpbmUgewogICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDsKICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICB9CgogICAgICAubGF5b3V0Lmhvcml6b250YWwgewogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAubGF5b3V0LnZlcnRpY2FsIHsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLmxheW91dC53cmFwIHsKICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwOwogICAgICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwOwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQoKICAgICAgLmxheW91dC5uby13cmFwIHsKICAgICAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7CiAgICAgICAgLXdlYmtpdC1mbGV4LXdyYXA6IG5vd3JhcDsKICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmxheW91dC5jZW50ZXIsCiAgICAgIC5sYXlvdXQuY2VudGVyLWNlbnRlciB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmxheW91dC5jZW50ZXItanVzdGlmaWVkLAogICAgICAubGF5b3V0LmNlbnRlci1jZW50ZXIgewogICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZmxleCB7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAwLjAwMDAwMDAwMXB4OwogICAgICAgIC13ZWJraXQtZmxleDogMTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMC4wMDAwMDAwMDFweDsKICAgICAgICBmbGV4LWJhc2lzOiAwLjAwMDAwMDAwMXB4OwogICAgICB9CgogICAgICAuZmxleC1hdXRvIHsKICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICAgICAgfQoKICAgICAgLmZsZXgtbm9uZSB7CiAgICAgICAgLW1zLWZsZXg6IG5vbmU7CiAgICAgICAgLXdlYmtpdC1mbGV4OiBub25lOwogICAgICAgIGZsZXg6IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC90ZW1wbGF0ZT4KPC9kb20tbW9kdWxlPgovKiBCYXNpYyBmbGV4Ym94IHJldmVyc2Ugc3R5bGVzICovCjxkb20tbW9kdWxlIGlkPSJpcm9uLWZsZXgtcmV2ZXJzZSI+CiAgPHRlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAubGF5b3V0Lmhvcml6b250YWwtcmV2ZXJzZSwKICAgICAgLmxheW91dC52ZXJ0aWNhbC1yZXZlcnNlIHsKICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLmxheW91dC5ob3Jpem9udGFsLXJldmVyc2UgewogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7CiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOwogICAgICB9CgogICAgICAubGF5b3V0LnZlcnRpY2FsLXJldmVyc2UgewogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7CiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgICB9CgogICAgICAubGF5b3V0LndyYXAtcmV2ZXJzZSB7CiAgICAgICAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOwogICAgICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7CiAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC90ZW1wbGF0ZT4KPC9kb20tbW9kdWxlPgovKiBGbGV4Ym94IGFsaWdubWVudCAqLwo8ZG9tLW1vZHVsZSBpZD0iaXJvbi1mbGV4LWFsaWdubWVudCI+CiAgPHRlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAvKioKICAgICAgICogQWxpZ25tZW50IGluIGNyb3NzIGF4aXMuCiAgICAgICAqLwogICAgICAubGF5b3V0LnN0YXJ0IHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLmxheW91dC5jZW50ZXIsCiAgICAgIC5sYXlvdXQuY2VudGVyLWNlbnRlciB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmxheW91dC5lbmQgewogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAubGF5b3V0LmJhc2VsaW5lIHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICB9CgogICAgICAvKioKICAgICAgICogQWxpZ25tZW50IGluIG1haW4gYXhpcy4KICAgICAgICovCiAgICAgIC5sYXlvdXQuc3RhcnQtanVzdGlmaWVkIHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuY2VudGVyLWp1c3RpZmllZCwKICAgICAgLmxheW91dC5jZW50ZXItY2VudGVyIHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmxheW91dC5lbmQtanVzdGlmaWVkIHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuYXJvdW5kLWp1c3RpZmllZCB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICB9CgogICAgICAubGF5b3V0Lmp1c3RpZmllZCB7CiAgICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH0KCiAgICAgIC8qKgogICAgICAgKiBTZWxmIGFsaWdubWVudC4KICAgICAgICovCiAgICAgIC5zZWxmLXN0YXJ0IHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgICAgICAtd2Via2l0LWFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7CiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLnNlbGYtY2VudGVyIHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnNlbGYtZW5kIHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLnNlbGYtc3RyZXRjaCB7CiAgICAgICAgLW1zLWFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBzdHJldGNoOwogICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5zZWxmLWJhc2VsaW5lIHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogYmFzZWxpbmU7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBiYXNlbGluZTsKICAgICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLyoqCiAgICAgICAqIG11bHRpLWxpbmUgYWxpZ25tZW50IGluIG1haW4gYXhpcy4KICAgICAgICovCiAgICAgIC5sYXlvdXQuc3RhcnQtYWxpZ25lZCB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogZmxleC1zdGFydDsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLmxheW91dC5lbmQtYWxpZ25lZCB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQ7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuY2VudGVyLWFsaWduZWQgewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyOyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAubGF5b3V0LmJldHdlZW4tYWxpZ25lZCB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5OyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9CgogICAgICAubGF5b3V0LmFyb3VuZC1hbGlnbmVkIHsKICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGU7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC90ZW1wbGF0ZT4KPC9kb20tbW9kdWxlPgovKiBOb24tZmxleGJveCBwb3NpdGlvbmluZyBoZWxwZXIgc3R5bGVzICovCjxkb20tbW9kdWxlIGlkPSJpcm9uLWZsZXgtZmFjdG9ycyI+CiAgPHRlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAuZmxleCwKICAgICAgLmZsZXgtMSB7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAwLjAwMDAwMDAwMXB4OwogICAgICAgIC13ZWJraXQtZmxleDogMTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMC4wMDAwMDAwMDFweDsKICAgICAgICBmbGV4LWJhc2lzOiAwLjAwMDAwMDAwMXB4OwogICAgICB9CgogICAgICAuZmxleC0yIHsKICAgICAgICAtbXMtZmxleDogMjsKICAgICAgICAtd2Via2l0LWZsZXg6IDI7CiAgICAgICAgZmxleDogMjsKICAgICAgfQoKICAgICAgLmZsZXgtMyB7CiAgICAgICAgLW1zLWZsZXg6IDM7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAzOwogICAgICAgIGZsZXg6IDM7CiAgICAgIH0KCiAgICAgIC5mbGV4LTQgewogICAgICAgIC1tcy1mbGV4OiA0OwogICAgICAgIC13ZWJraXQtZmxleDogNDsKICAgICAgICBmbGV4OiA0OwogICAgICB9CgogICAgICAuZmxleC01IHsKICAgICAgICAtbXMtZmxleDogNTsKICAgICAgICAtd2Via2l0LWZsZXg6IDU7CiAgICAgICAgZmxleDogNTsKICAgICAgfQoKICAgICAgLmZsZXgtNiB7CiAgICAgICAgLW1zLWZsZXg6IDY7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA2OwogICAgICAgIGZsZXg6IDY7CiAgICAgIH0KCiAgICAgIC5mbGV4LTcgewogICAgICAgIC1tcy1mbGV4OiA3OwogICAgICAgIC13ZWJraXQtZmxleDogNzsKICAgICAgICBmbGV4OiA3OwogICAgICB9CgogICAgICAuZmxleC04IHsKICAgICAgICAtbXMtZmxleDogODsKICAgICAgICAtd2Via2l0LWZsZXg6IDg7CiAgICAgICAgZmxleDogODsKICAgICAgfQoKICAgICAgLmZsZXgtOSB7CiAgICAgICAgLW1zLWZsZXg6IDk7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA5OwogICAgICAgIGZsZXg6IDk7CiAgICAgIH0KCiAgICAgIC5mbGV4LTEwIHsKICAgICAgICAtbXMtZmxleDogMTA7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxMDsKICAgICAgICBmbGV4OiAxMDsKICAgICAgfQoKICAgICAgLmZsZXgtMTEgewogICAgICAgIC1tcy1mbGV4OiAxMTsKICAgICAgICAtd2Via2l0LWZsZXg6IDExOwogICAgICAgIGZsZXg6IDExOwogICAgICB9CgogICAgICAuZmxleC0xMiB7CiAgICAgICAgLW1zLWZsZXg6IDEyOwogICAgICAgIC13ZWJraXQtZmxleDogMTI7CiAgICAgICAgZmxleDogMTI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC90ZW1wbGF0ZT4KPC9kb20tbW9kdWxlPgo8ZG9tLW1vZHVsZSBpZD0iaXJvbi1wb3NpdGlvbmluZyI+CiAgPHRlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAuYmxvY2sgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBbaGlkZGVuXSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaW52aXNpYmxlIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnJlbGF0aXZlIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5maXQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgIH0KCiAgICAgIGJvZHkuZnVsbGJsZWVkIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgfQoKICAgICAgLnNjcm9sbCB7CiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICB9CgogICAgICAvKiBmaXhlZCBwb3NpdGlvbiAqLwogICAgICAuZml4ZWQtYm90dG9tLAogICAgICAuZml4ZWQtbGVmdCwKICAgICAgLmZpeGVkLXJpZ2h0LAogICAgICAuZml4ZWQtdG9wIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIH0KCiAgICAgIC5maXhlZC10b3AgewogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICB9CgogICAgICAuZml4ZWQtcmlnaHQgewogICAgICAgIHRvcDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5maXhlZC1ib3R0b20gewogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9CgogICAgICAuZml4ZWQtbGVmdCB7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvdGVtcGxhdGU+CjwvZG9tLW1vZHVsZT4KYDt5by5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHlvLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3Qgdm89X2VgCjxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgW2hpZGRlbl0gewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+CjxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgaHRtbCB7CgogICAgICAtLWxheW91dDogewogICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtaW5saW5lOiB7CiAgICAgICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94OwogICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgIH07CgogICAgICAtLWxheW91dC1ob3Jpem9udGFsOiB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0OwoKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWhvcml6b250YWwtcmV2ZXJzZTogewogICAgICAgIEBhcHBseSAtLWxheW91dDsKCiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsKICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7CiAgICAgIH07CgogICAgICAtLWxheW91dC12ZXJ0aWNhbDogewogICAgICAgIEBhcHBseSAtLWxheW91dDsKCiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH07CgogICAgICAtLWxheW91dC12ZXJ0aWNhbC1yZXZlcnNlOiB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0OwoKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXdyYXA6IHsKICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwOwogICAgICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwOwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXdyYXAtcmV2ZXJzZTogewogICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTsKICAgICAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOwogICAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC1hdXRvOiB7CiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvOwogICAgICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87CiAgICAgICAgZmxleDogMSAxIGF1dG87CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LW5vbmU6IHsKICAgICAgICAtbXMtZmxleDogbm9uZTsKICAgICAgICAtd2Via2l0LWZsZXg6IG5vbmU7CiAgICAgICAgZmxleDogbm9uZTsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXg6IHsKICAgICAgICAtbXMtZmxleDogMSAxIDAuMDAwMDAwMDAxcHg7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAwLjAwMDAwMDAwMXB4OwogICAgICAgIGZsZXgtYmFzaXM6IDAuMDAwMDAwMDAxcHg7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTI6IHsKICAgICAgICAtbXMtZmxleDogMjsKICAgICAgICAtd2Via2l0LWZsZXg6IDI7CiAgICAgICAgZmxleDogMjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtMzogewogICAgICAgIC1tcy1mbGV4OiAzOwogICAgICAgIC13ZWJraXQtZmxleDogMzsKICAgICAgICBmbGV4OiAzOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC00OiB7CiAgICAgICAgLW1zLWZsZXg6IDQ7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA0OwogICAgICAgIGZsZXg6IDQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTU6IHsKICAgICAgICAtbXMtZmxleDogNTsKICAgICAgICAtd2Via2l0LWZsZXg6IDU7CiAgICAgICAgZmxleDogNTsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtNjogewogICAgICAgIC1tcy1mbGV4OiA2OwogICAgICAgIC13ZWJraXQtZmxleDogNjsKICAgICAgICBmbGV4OiA2OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC03OiB7CiAgICAgICAgLW1zLWZsZXg6IDc7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA3OwogICAgICAgIGZsZXg6IDc7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTg6IHsKICAgICAgICAtbXMtZmxleDogODsKICAgICAgICAtd2Via2l0LWZsZXg6IDg7CiAgICAgICAgZmxleDogODsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtOTogewogICAgICAgIC1tcy1mbGV4OiA5OwogICAgICAgIC13ZWJraXQtZmxleDogOTsKICAgICAgICBmbGV4OiA5OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC0xMDogewogICAgICAgIC1tcy1mbGV4OiAxMDsKICAgICAgICAtd2Via2l0LWZsZXg6IDEwOwogICAgICAgIGZsZXg6IDEwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC0xMTogewogICAgICAgIC1tcy1mbGV4OiAxMTsKICAgICAgICAtd2Via2l0LWZsZXg6IDExOwogICAgICAgIGZsZXg6IDExOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC0xMjogewogICAgICAgIC1tcy1mbGV4OiAxMjsKICAgICAgICAtd2Via2l0LWZsZXg6IDEyOwogICAgICAgIGZsZXg6IDEyOwogICAgICB9OwoKICAgICAgLyogYWxpZ25tZW50IGluIGNyb3NzIGF4aXMgKi8KCiAgICAgIC0tbGF5b3V0LXN0YXJ0OiB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0OwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1jZW50ZXI6IHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZW5kOiB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDsKICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1iYXNlbGluZTogewogICAgICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZTsKICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH07CgogICAgICAvKiBhbGlnbm1lbnQgaW4gbWFpbiBheGlzICovCgogICAgICAtLWxheW91dC1zdGFydC1qdXN0aWZpZWQ6IHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1jZW50ZXItanVzdGlmaWVkOiB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyOwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH07CgogICAgICAtLWxheW91dC1lbmQtanVzdGlmaWVkOiB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogZW5kOwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtYXJvdW5kLWp1c3RpZmllZDogewogICAgICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWp1c3RpZmllZDogewogICAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtY2VudGVyLWNlbnRlcjogewogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXI7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlci1qdXN0aWZpZWQ7CiAgICAgIH07CgogICAgICAvKiBzZWxmIGFsaWdubWVudCAqLwoKICAgICAgLS1sYXlvdXQtc2VsZi1zdGFydDogewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtc2VsZi1jZW50ZXI6IHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXNlbGYtZW5kOiB7CiAgICAgICAgLW1zLWFsaWduLXNlbGY6IGZsZXgtZW5kOwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1zZWxmLXN0cmV0Y2g6IHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgICAtd2Via2l0LWFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXNlbGYtYmFzZWxpbmU6IHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogYmFzZWxpbmU7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBiYXNlbGluZTsKICAgICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZTsKICAgICAgfTsKCiAgICAgIC8qIG11bHRpLWxpbmUgYWxpZ25tZW50IGluIG1haW4gYXhpcyAqLwoKICAgICAgLS1sYXlvdXQtc3RhcnQtYWxpZ25lZDogewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1lbmQtYWxpZ25lZDogewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kOyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtY2VudGVyLWFsaWduZWQ6IHsKICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlcjsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogY2VudGVyOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWJldHdlZW4tYWxpZ25lZDogewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeTsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWFyb3VuZC1hbGlnbmVkOiB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlOyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICB9OwoKICAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICAgICAgICAgIE90aGVyIExheW91dAogICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKICAgICAgLS1sYXlvdXQtYmxvY2s6IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWludmlzaWJsZTogewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtcmVsYXRpdmU6IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH07CgogICAgICAtLWxheW91dC1maXQ6IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtc2Nyb2xsOiB7CiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZnVsbGJsZWVkOiB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgIH07CgogICAgICAvKiBmaXhlZCBwb3NpdGlvbiAqLwoKICAgICAgLS1sYXlvdXQtZml4ZWQtdG9wOiB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZml4ZWQtcmlnaHQ6IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZpeGVkLWJvdHRvbTogewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZpeGVkLWxlZnQ6IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9OwoKICAgIH0KICA8L3N0eWxlPgo8L2N1c3RvbS1zdHlsZT5gO3ZvLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodm8uY29udGVudCk7dmFyIGJvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Ym8udGV4dENvbnRlbnQ9IltoaWRkZW5dIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9Iixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGJvKTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNsYXNzIHhve2NvbnN0cnVjdG9yKHQpe3hvWyIgIl0odCksdGhpcy50eXBlPXQmJnQudHlwZXx8ImRlZmF1bHQiLHRoaXMua2V5PXQmJnQua2V5LHQmJiJ2YWx1ZSJpbiB0JiYodGhpcy52YWx1ZT10LnZhbHVlKX1nZXQgdmFsdWUoKXt2YXIgdD10aGlzLnR5cGUsZT10aGlzLmtleTtpZih0JiZlKXJldHVybiB4by50eXBlc1t0XSYmeG8udHlwZXNbdF1bZV19c2V0IHZhbHVlKHQpe3ZhciBlPXRoaXMudHlwZSxuPXRoaXMua2V5O2UmJm4mJihlPXhvLnR5cGVzW2VdPXhvLnR5cGVzW2VdfHx7fSxudWxsPT10P2RlbGV0ZSBlW25dOmVbbl09dCl9Z2V0IGxpc3QoKXtpZih0aGlzLnR5cGUpe3ZhciB0PXhvLnR5cGVzW3RoaXMudHlwZV07cmV0dXJuIHQ/T2JqZWN0LmtleXModCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gd29bdGhpcy50eXBlXVt0XX0pLHRoaXMpOltdfX1ieUtleSh0KXtyZXR1cm4gdGhpcy5rZXk9dCx0aGlzLnZhbHVlfX14b1siICJdPWZ1bmN0aW9uKCl7fSx4by50eXBlcz17fTt2YXIgd289eG8udHlwZXM7UnIoe2lzOiJpcm9uLW1ldGEiLHByb3BlcnRpZXM6e3R5cGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJkZWZhdWx0In0sa2V5Ont0eXBlOlN0cmluZ30sdmFsdWU6e3R5cGU6U3RyaW5nLG5vdGlmeTohMH0sc2VsZjp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfc2VsZkNoYW5nZWQifSxfX21ldGE6e3R5cGU6Qm9vbGVhbixjb21wdXRlZDoiX19jb21wdXRlTWV0YSh0eXBlLCBrZXksIHZhbHVlKSJ9fSxob3N0QXR0cmlidXRlczp7aGlkZGVuOiEwfSxfX2NvbXB1dGVNZXRhOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uZXcgeG8oe3R5cGU6dCxrZXk6ZX0pO3JldHVybiB2b2lkIDAhPT1uJiZuIT09aS52YWx1ZT9pLnZhbHVlPW46dGhpcy52YWx1ZSE9PWkudmFsdWUmJih0aGlzLnZhbHVlPWkudmFsdWUpLGl9LGdldCBsaXN0KCl7cmV0dXJuIHRoaXMuX19tZXRhJiZ0aGlzLl9fbWV0YS5saXN0fSxfc2VsZkNoYW5nZWQ6ZnVuY3Rpb24odCl7dCYmKHRoaXMudmFsdWU9dGhpcyl9LGJ5S2V5OmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgeG8oe3R5cGU6dGhpcy50eXBlLGtleTp0fSkudmFsdWV9fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWlubGluZTsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyLWNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CgogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CgogICAgICAgIGZpbGw6IHZhcigtLWlyb24taWNvbi1maWxsLWNvbG9yLCBjdXJyZW50Y29sb3IpOwogICAgICAgIHN0cm9rZTogdmFyKC0taXJvbi1pY29uLXN0cm9rZS1jb2xvciwgbm9uZSk7CgogICAgICAgIHdpZHRoOiB2YXIoLS1pcm9uLWljb24td2lkdGgsIDI0cHgpOwogICAgICAgIGhlaWdodDogdmFyKC0taXJvbi1pY29uLWhlaWdodCwgMjRweCk7CiAgICAgICAgQGFwcGx5IC0taXJvbi1pY29uOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CmAsaXM6Imlyb24taWNvbiIscHJvcGVydGllczp7aWNvbjp7dHlwZTpTdHJpbmd9LHRoZW1lOnt0eXBlOlN0cmluZ30sc3JjOnt0eXBlOlN0cmluZ30sX21ldGE6e3ZhbHVlOmZvLmNyZWF0ZSgiaXJvbi1tZXRhIix7dHlwZToiaWNvbnNldCJ9KX19LG9ic2VydmVyczpbIl91cGRhdGVJY29uKF9tZXRhLCBpc0F0dGFjaGVkKSIsIl91cGRhdGVJY29uKHRoZW1lLCBpc0F0dGFjaGVkKSIsIl9zcmNDaGFuZ2VkKHNyYywgaXNBdHRhY2hlZCkiLCJfaWNvbkNoYW5nZWQoaWNvbiwgaXNBdHRhY2hlZCkiXSxfREVGQVVMVF9JQ09OU0VUOiJpY29ucyIsX2ljb25DaGFuZ2VkOmZ1bmN0aW9uKHQpe3ZhciBlPSh0fHwiIikuc3BsaXQoIjoiKTt0aGlzLl9pY29uTmFtZT1lLnBvcCgpLHRoaXMuX2ljb25zZXROYW1lPWUucG9wKCl8fHRoaXMuX0RFRkFVTFRfSUNPTlNFVCx0aGlzLl91cGRhdGVJY29uKCl9LF9zcmNDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZUljb24oKX0sX3VzZXNJY29uc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWNvbnx8IXRoaXMuc3JjfSxfdXBkYXRlSWNvbjpmdW5jdGlvbigpe3RoaXMuX3VzZXNJY29uc2V0KCk/KHRoaXMuX2ltZyYmdGhpcy5faW1nLnBhcmVudE5vZGUmJllpKHRoaXMucm9vdCkucmVtb3ZlQ2hpbGQodGhpcy5faW1nKSwiIj09PXRoaXMuX2ljb25OYW1lP3RoaXMuX2ljb25zZXQmJnRoaXMuX2ljb25zZXQucmVtb3ZlSWNvbih0aGlzKTp0aGlzLl9pY29uc2V0TmFtZSYmdGhpcy5fbWV0YSYmKHRoaXMuX2ljb25zZXQ9dGhpcy5fbWV0YS5ieUtleSh0aGlzLl9pY29uc2V0TmFtZSksdGhpcy5faWNvbnNldD8odGhpcy5faWNvbnNldC5hcHBseUljb24odGhpcyx0aGlzLl9pY29uTmFtZSx0aGlzLnRoZW1lKSx0aGlzLnVubGlzdGVuKHdpbmRvdywiaXJvbi1pY29uc2V0LWFkZGVkIiwiX3VwZGF0ZUljb24iKSk6dGhpcy5saXN0ZW4od2luZG93LCJpcm9uLWljb25zZXQtYWRkZWQiLCJfdXBkYXRlSWNvbiIpKSk6KHRoaXMuX2ljb25zZXQmJnRoaXMuX2ljb25zZXQucmVtb3ZlSWNvbih0aGlzKSx0aGlzLl9pbWd8fCh0aGlzLl9pbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIiksdGhpcy5faW1nLnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLl9pbWcuc3R5bGUuaGVpZ2h0PSIxMDAlIix0aGlzLl9pbWcuZHJhZ2dhYmxlPSExKSx0aGlzLl9pbWcuc3JjPXRoaXMuc3JjLFlpKHRoaXMucm9vdCkuYXBwZW5kQ2hpbGQodGhpcy5faW1nKSl9fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7aXM6Imlyb24taWNvbnNldC1zdmciLHByb3BlcnRpZXM6e25hbWU6e3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfbmFtZUNoYW5nZWQifSxzaXplOnt0eXBlOk51bWJlcix2YWx1ZToyNH0scnRsTWlycm9yaW5nOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LHVzZUdsb2JhbFJ0bEF0dHJpYnV0ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX21ldGE9bmV3IHhvKHt0eXBlOiJpY29uc2V0IixrZXk6bnVsbCx2YWx1ZTpudWxsfSl9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5kaXNwbGF5PSJub25lIn0sZ2V0SWNvbk5hbWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ljb25zPXRoaXMuX2NyZWF0ZUljb25NYXAoKSxPYmplY3Qua2V5cyh0aGlzLl9pY29ucykubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5uYW1lKyI6Iit0fSksdGhpcyl9LGFwcGx5SWNvbjpmdW5jdGlvbih0LGUpe3RoaXMucmVtb3ZlSWNvbih0KTt2YXIgbj10aGlzLl9jbG9uZUljb24oZSx0aGlzLnJ0bE1pcnJvcmluZyYmdGhpcy5fdGFyZ2V0SXNSVEwodCkpO2lmKG4pe3ZhciBpPVlpKHQucm9vdHx8dCk7cmV0dXJuIGkuaW5zZXJ0QmVmb3JlKG4saS5jaGlsZE5vZGVzWzBdKSx0Ll9zdmdJY29uPW59cmV0dXJuIG51bGx9LHJlbW92ZUljb246ZnVuY3Rpb24odCl7dC5fc3ZnSWNvbiYmKFlpKHQucm9vdHx8dCkucmVtb3ZlQ2hpbGQodC5fc3ZnSWNvbiksdC5fc3ZnSWNvbj1udWxsKX0sX3RhcmdldElzUlRMOmZ1bmN0aW9uKHQpe2lmKG51bGw9PXRoaXMuX190YXJnZXRJc1JUTClpZih0aGlzLnVzZUdsb2JhbFJ0bEF0dHJpYnV0ZSl7dmFyIGU9ZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoImRpciIpP2RvY3VtZW50LmJvZHk6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3RoaXMuX190YXJnZXRJc1JUTD0icnRsIj09PWUuZ2V0QXR0cmlidXRlKCJkaXIiKX1lbHNlIHQmJnQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSYmKHQ9dC5ob3N0KSx0aGlzLl9fdGFyZ2V0SXNSVEw9dCYmInJ0bCI9PT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5kaXJlY3Rpb247cmV0dXJuIHRoaXMuX190YXJnZXRJc1JUTH0sX25hbWVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5fbWV0YS52YWx1ZT1udWxsLHRoaXMuX21ldGEua2V5PXRoaXMubmFtZSx0aGlzLl9tZXRhLnZhbHVlPXRoaXMsdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLmZpcmUoImlyb24taWNvbnNldC1hZGRlZCIsdGhpcyx7bm9kZTp3aW5kb3d9KX0pKX0sX2NyZWF0ZUljb25NYXA6ZnVuY3Rpb24oKXt2YXIgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBZaSh0aGlzKS5xdWVyeVNlbGVjdG9yQWxsKCJbaWRdIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dFtlLmlkXT1lfSkpLHR9LF9jbG9uZUljb246ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5faWNvbnM9dGhpcy5faWNvbnN8fHRoaXMuX2NyZWF0ZUljb25NYXAoKSx0aGlzLl9wcmVwYXJlU3ZnQ2xvbmUodGhpcy5faWNvbnNbdF0sdGhpcy5zaXplLGUpfSxfcHJlcGFyZVN2Z0Nsb25lOmZ1bmN0aW9uKHQsZSxuKXtpZih0KXt2YXIgaT10LmNsb25lTm9kZSghMCkscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIiksbz1pLmdldEF0dHJpYnV0ZSgidmlld0JveCIpfHwiMCAwICIrZSsiICIrZSxhPSJwb2ludGVyLWV2ZW50czogbm9uZTsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IjtyZXR1cm4gbiYmaS5oYXNBdHRyaWJ1dGUoIm1pcnJvci1pbi1ydGwiKSYmKGErPSItd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgtMSwxKTt0cmFuc2Zvcm06c2NhbGUoLTEsMSk7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7Iiksci5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLG8pLHIuc2V0QXR0cmlidXRlKCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwieE1pZFlNaWQgbWVldCIpLHIuc2V0QXR0cmlidXRlKCJmb2N1c2FibGUiLCJmYWxzZSIpLHIuc3R5bGUuY3NzVGV4dD1hLHIuYXBwZW5kQ2hpbGQoaSkucmVtb3ZlQXR0cmlidXRlKCJpZCIpLHJ9cmV0dXJuIG51bGx9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBTbz1fZWA8aXJvbi1pY29uc2V0LXN2ZyBuYW1lPSJpbWFnZSIgc2l6ZT0iMjQiPgo8c3ZnPjxkZWZzPgo8ZyBpZD0iYWRkLWEtcGhvdG8iPjxwYXRoIGQ9Ik0zIDRWMWgydjNoM3YySDV2M0gzVjZIMFY0aDN6bTMgNlY3aDNWNGg3bDEuODMgMkgyMWMxLjEgMCAyIC45IDIgMnYxMmMwIDEuMS0uOSAyLTIgMkg1Yy0xLjEgMC0yLS45LTItMlYxMGgzem03IDljMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTUtNSAyLjI0LTUgNSAyLjI0IDUgNSA1em0tMy4yLTVjMCAxLjc3IDEuNDMgMy4yIDMuMiAzLjJzMy4yLTEuNDMgMy4yLTMuMi0xLjQzLTMuMi0zLjItMy4yLTMuMiAxLjQzLTMuMiAzLjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWRkLXRvLXBob3RvcyI+PHBhdGggZD0iTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTEgOWgtNHY0aC0ydi00SDlWOWg0VjVoMnY0aDR2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGp1c3QiPjxwYXRoIGQ9Ik0xMiAyQzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwIDEwLTQuNDkgMTAtMTBTMTcuNTEgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMy04YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTMgMyAxLjM0IDMgM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3Npc3RhbnQiPjxwYXRoIGQ9Ik0xOSAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNGwzIDMgMy0zaDRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTUuMTIgMTAuODhMMTIgMTdsLTEuODgtNC4xMkw2IDExbDQuMTItMS44OEwxMiA1bDEuODggNC4xMkwxOCAxMWwtNC4xMiAxLjg4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2lzdGFudC1waG90byI+PHBhdGggZD0iTTE0LjQgNkwxNCA0SDV2MTdoMnYtN2g1LjZsLjQgMmg3VjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXVkaW90cmFjayI+PHBhdGggZD0iTTEyIDN2OS4yOGMtLjQ3LS4xNy0uOTctLjI4LTEuNS0uMjhDOC4wMSAxMiA2IDE0LjAxIDYgMTYuNVM4LjAxIDIxIDEwLjUgMjFjMi4zMSAwIDQuMi0xLjc1IDQuNDUtNEgxNVY2aDRWM2gtN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJibHVyLWNpcmN1bGFyIj48cGF0aCBkPSJNMTAgOWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpNNyA5LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0zIDdjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0tMy0zYy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMy02Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTQgOWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLTEuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bTMgNmMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTAtNGMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0yLTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTAtMy41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYmx1ci1saW5lYXIiPjxwYXRoIGQ9Ik01IDE3LjVjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjUuNjcgMS41IDEuNSAxLjV6TTkgMTNjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMC00Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6TTMgMjFoMTh2LTJIM3Yyek01IDkuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVTNS44MyA2LjUgNSA2LjUgMy41IDcuMTcgMy41IDggNC4xNyA5LjUgNSA5LjV6bTAgNGMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNS0xLjUuNjctMS41IDEuNS42NyAxLjUgMS41IDEuNXpNOSAxN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem04LS41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMyAzdjJoMThWM0gzem0xNCA1LjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0wIDRjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xMyA5Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAgNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wIDRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJibHVyLW9mZiI+PHBhdGggZD0iTTE0IDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptLS4yIDQuNDhsLjIuMDJjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjVsLjAyLjJjLjA5LjY3LjYxIDEuMTkgMS4yOCAxLjI4ek0xNCAzLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0tNCAwYy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptMTEgN2MuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEwIDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptOCA4Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAtNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wLTRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptLTQgMTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTIuNSA1LjI3bDMuNzggMy43OEw2IDljLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xYzAtLjEtLjAzLS4xOS0uMDYtLjI4bDIuODEgMi44MWMtLjcxLjExLTEuMjUuNzMtMS4yNSAxLjQ3IDAgLjgzLjY3IDEuNSAxLjUgMS41Ljc0IDAgMS4zNi0uNTQgMS40Ny0xLjI1bDIuODEgMi44MWMtLjA5LS4wMy0uMTgtLjA2LS4yOC0uMDYtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTFjMC0uMS0uMDMtLjE5LS4wNi0uMjhsMy43OCAzLjc4TDIwIDIwLjIzIDMuNzcgNCAyLjUgNS4yN3pNMTAgMTdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMTEtMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNNiAxM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xek0zIDkuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTcgMTFjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek02IDE3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bS0zLTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYmx1ci1vbiI+PHBhdGggZD0iTTYgMTNjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCA0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtOGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0tMyAuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTYgNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0xNSA1LjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xNCA3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAtMy41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptLTExIDEwYy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptNyA3Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMC0xN2MuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEwIDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMCA1LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em04IC41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLThjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC00Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTMgOC41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNMTQgMTdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCAzLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0tNC0xMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTAgOC41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTQtNC41Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptMC00Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTEiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTIiPjxwYXRoIGQ9Ik0xMCAyYy0xLjgyIDAtMy41My41LTUgMS4zNUM3Ljk5IDUuMDggMTAgOC4zIDEwIDEycy0yLjAxIDYuOTItNSA4LjY1QzYuNDcgMjEuNSA4LjE4IDIyIDEwIDIyYzUuNTIgMCAxMC00LjQ4IDEwLTEwUzE1LjUyIDIgMTAgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTMiPjxwYXRoIGQ9Ik05IDJjLTEuMDUgMC0yLjA1LjE2LTMgLjQ2IDQuMDYgMS4yNyA3IDUuMDYgNyA5LjU0IDAgNC40OC0yLjk0IDguMjctNyA5LjU0Ljk1LjMgMS45NS40NiAzIC40NiA1LjUyIDAgMTAtNC40OCAxMC0xMFMxNC41MiAyIDkgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTQiPjxwYXRoIGQ9Ik0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5ek0xMiAxOGMtLjg5IDAtMS43NC0uMi0yLjUtLjU1QzExLjU2IDE2LjUgMTMgMTQuNDIgMTMgMTJzLTEuNDQtNC41LTMuNS01LjQ1QzEwLjI2IDYuMiAxMS4xMSA2IDEyIDZjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYnJpZ2h0bmVzcy01Ij48cGF0aCBkPSJNMjAgMTUuMzFMMjMuMzEgMTIgMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjl6TTEyIDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTYiPjxwYXRoIGQ9Ik0yMCAxNS4zMUwyMy4zMSAxMiAyMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OXpNMTIgMThWNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTciPjxwYXRoIGQ9Ik0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5ek0xMiAxOGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6bTAtMTBjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJyb2tlbi1pbWFnZSI+PHBhdGggZD0iTTIxIDV2Ni41OWwtMy0zLjAxLTQgNC4wMS00LTQtNCA0LTMtMy4wMVY1YzAtMS4xLjktMiAyLTJoMTRjMS4xIDAgMiAuOSAyIDJ6bS0zIDYuNDJsMyAzLjAxVjE5YzAgMS4xLS45IDItMiAySDVjLTEuMSAwLTItLjktMi0ydi02LjU4bDMgMi45OSA0LTQgNCA0IDQtMy45OXoiPjwvcGF0aD48L2c+CjxnIGlkPSJicnVzaCI+PHBhdGggZD0iTTcgMTRjLTEuNjYgMC0zIDEuMzQtMyAzIDAgMS4zMS0xLjE2IDItMiAyIC45MiAxLjIyIDIuNDkgMiA0IDIgMi4yMSAwIDQtMS43OSA0LTQgMC0xLjY2LTEuMzQtMy0zLTN6bTEzLjcxLTkuMzdsLTEuMzQtMS4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBMOSAxMi4yNSAxMS43NSAxNWw4Ljk2LTguOTZjLjM5LS4zOS4zOS0xLjAyIDAtMS40MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJidXJzdC1tb2RlIj48cGF0aCBkPSJNMSA1aDJ2MTRIMXptNCAwaDJ2MTRINXptMTcgMEgxMGMtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDEyYy41NSAwIDEtLjQ1IDEtMVY2YzAtLjU1LS40NS0xLTEtMXpNMTEgMTdsMi41LTMuMTVMMTUuMjkgMTZsMi41LTMuMjJMMjEgMTdIMTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FtZXJhIj48cGF0aCBkPSJNOS40IDEwLjVsNC43Ny04LjI2QzEzLjQ3IDIuMDkgMTIuNzUgMiAxMiAyYy0yLjQgMC00LjYuODUtNi4zMiAyLjI1bDMuNjYgNi4zNS4wNi0uMXpNMjEuNTQgOWMtLjkyLTIuOTItMy4xNS01LjI2LTYtNi4zNEwxMS44OCA5aDkuNjZ6bS4yNiAxaC03LjQ5bC4yOS41IDQuNzYgOC4yNUMyMSAxNi45NyAyMiAxNC42MSAyMiAxMmMwLS42OS0uMDctMS4zNS0uMi0yek04LjU0IDEybC0zLjktNi43NUMzLjAxIDcuMDMgMiA5LjM5IDIgMTJjMCAuNjkuMDcgMS4zNS4yIDJoNy40OWwtMS4xNS0yem0tNi4wOCAzYy45MiAyLjkyIDMuMTUgNS4yNiA2IDYuMzRMMTIuMTIgMTVIMi40NnptMTEuMjcgMGwtMy45IDYuNzZjLjcuMTUgMS40Mi4yNCAyLjE3LjI0IDIuNCAwIDQuNi0uODUgNi4zMi0yLjI1bC0zLjY2LTYuMzUtLjkzIDEuNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYW1lcmEtYWx0Ij48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzLjIiPjwvY2lyY2xlPjxwYXRoIGQ9Ik05IDJMNy4xNyA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMmgtMy4xN0wxNSAySDl6bTMgMTVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhbWVyYS1mcm9udCI+PHBhdGggZD0iTTEwIDIwSDV2Mmg1djJsMy0zLTMtM3Yyem00IDB2Mmg1di0yaC01ek0xMiA4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0xLjk5LjktMS45OSAyUzEwLjkgOCAxMiA4em01LThIN0M1LjkgMCA1IC45IDUgMnYxNGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjJjMC0xLjEtLjktMi0yLTJ6TTcgMmgxMHYxMC41YzAtMS42Ny0zLjMzLTIuNS01LTIuNXMtNSAuODMtNSAyLjVWMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYW1lcmEtcmVhciI+PHBhdGggZD0iTTEwIDIwSDV2Mmg1djJsMy0zLTMtM3Yyem00IDB2Mmg1di0yaC01em0zLTIwSDdDNS45IDAgNSAuOSA1IDJ2MTRjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYyYzAtMS4xLS45LTItMi0yem0tNSA2Yy0xLjExIDAtMi0uOS0yLTJzLjg5LTIgMS45OS0yIDIgLjkgMiAyQzE0IDUuMSAxMy4xIDYgMTIgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYW1lcmEtcm9sbCI+PHBhdGggZD0iTTE0IDVjMC0xLjEtLjktMi0yLTJoLTFWMmMwLS41NS0uNDUtMS0xLTFINmMtLjU1IDAtMSAuNDUtMSAxdjFINGMtMS4xIDAtMiAuOS0yIDJ2MTVjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yaDhWNWgtOHptLTIgMTNoLTJ2LTJoMnYyem0wLTloLTJWN2gydjJ6bTQgOWgtMnYtMmgydjJ6bTAtOWgtMlY3aDJ2MnptNCA5aC0ydi0yaDJ2MnptMC05aC0yVjdoMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNlbnRlci1mb2N1cy1zdHJvbmciPjxwYXRoIGQ9Ik0xMiA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptLTcgN0gzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6TTUgNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTE0LTJoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNlbnRlci1mb2N1cy13ZWFrIj48cGF0aCBkPSJNNSAxNUgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6TTUgNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTE0LTJoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0ek0xMiA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb2xsZWN0aW9ucyI+PHBhdGggZD0iTTIyIDE2VjRjMC0xLjEtLjktMi0yLTJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnptLTExLTRsMi4wMyAyLjcxTDE2IDExbDQgNUg4bDMtNHpNMiA2djE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2SDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29sbGVjdGlvbnMtYm9va21hcmsiPjxwYXRoIGQ9Ik00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTYtNEg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTBsLTIuNS0xLjVMMTUgMTJWNGg1djh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29sb3ItbGVucyI+PHBhdGggZD0iTTEyIDNjLTQuOTcgMC05IDQuMDMtOSA5czQuMDMgOSA5IDljLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjM5LS4xNS0uNzQtLjM5LTEuMDEtLjIzLS4yNi0uMzgtLjYxLS4zOC0uOTkgMC0uODMuNjctMS41IDEuNS0xLjVIMTZjMi43NiAwIDUtMi4yNCA1LTUgMC00LjQyLTQuMDMtOC05LTh6bS01LjUgOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgOSA2LjUgOSA4IDkuNjcgOCAxMC41IDcuMzMgMTIgNi41IDEyem0zLTRDOC42NyA4IDggNy4zMyA4IDYuNVM4LjY3IDUgOS41IDVzMS41LjY3IDEuNSAxLjVTMTAuMzMgOCA5LjUgOHptNSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTMuNjcgNSAxNC41IDVzMS41LjY3IDEuNSAxLjVTMTUuMzMgOCAxNC41IDh6bTMgNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE2LjY3IDkgMTcuNSA5czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb2xvcml6ZSI+PHBhdGggZD0iTTIwLjcxIDUuNjNsLTIuMzQtMi4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBsLTMuMTIgMy4xMi0xLjkzLTEuOTEtMS40MSAxLjQxIDEuNDIgMS40MkwzIDE2LjI1VjIxaDQuNzVsOC45Mi04LjkyIDEuNDIgMS40MiAxLjQxLTEuNDEtMS45Mi0xLjkyIDMuMTItMy4xMmMuNC0uNC40LTEuMDMuMDEtMS40MnpNNi45MiAxOUw1IDE3LjA4bDguMDYtOC4wNiAxLjkyIDEuOTJMNi45MiAxOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb21wYXJlIj48cGF0aCBkPSJNMTAgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDV2MmgyVjFoLTJ2MnptMCAxNUg1bDUtNnY2em05LTE1aC01djJoNXYxM2wtNS02djloNWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNvbnRyb2wtcG9pbnQiPjxwYXRoIGQ9Ik0xMyA3aC0ydjRIN3YyaDR2NGgydi00aDR2LTJoLTRWN3ptLTEtNUM2LjQ5IDIgMiA2LjQ5IDIgMTJzNC40OSAxMCAxMCAxMCAxMC00LjQ5IDEwLTEwUzE3LjUxIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udHJvbC1wb2ludC1kdXBsaWNhdGUiPjxwYXRoIGQ9Ik0xNiA4aC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zek0yIDEyYzAtMi43OSAxLjY0LTUuMiA0LjAxLTYuMzJWMy41MkMyLjUyIDQuNzYgMCA4LjA5IDAgMTJzMi41MiA3LjI0IDYuMDEgOC40OHYtMi4xNkMzLjY0IDE3LjIgMiAxNC43OSAyIDEyem0xMy05Yy00Ljk2IDAtOSA0LjA0LTkgOXM0LjA0IDkgOSA5IDktNC4wNCA5LTktNC4wNC05LTktOXptMCAxNmMtMy44NiAwLTctMy4xNC03LTdzMy4xNC03IDctNyA3IDMuMTQgNyA3LTMuMTQgNy03IDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcCI+PHBhdGggZD0iTTE3IDE1aDJWN2MwLTEuMS0uOS0yLTItMkg5djJoOHY4ek03IDE3VjFINXY0SDF2Mmg0djEwYzAgMS4xLjkgMiAyIDJoMTB2NGgydi00aDR2LTJIN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJjcm9wLTE2LTkiPjxwYXRoIGQ9Ik0xOSA2SDVjLTEuMSAwLTIgLjktMiAydjhjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEwSDVWOGgxNHY4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtMy0yIj48cGF0aCBkPSJNMTkgNEg1Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINVY2aDE0djEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtNS00Ij48cGF0aCBkPSJNMTkgNUg1Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTJINVY3aDE0djEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtNy01Ij48cGF0aCBkPSJNMTkgN0g1Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnptMCA4SDVWOWgxNHY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtZGluIj48cGF0aCBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtZnJlZSI+PHBhdGggZD0iTTMgNXY0aDJWNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ6bTIgMTBIM3Y0YzAgMS4xLjkgMiAyIDJoNHYtMkg1di00em0xNCA0aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0em0wLTE2aC00djJoNHY0aDJWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjcm9wLWxhbmRzY2FwZSI+PHBhdGggZD0iTTE5IDVINWMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDEySDVWN2gxNHYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjcm9wLW9yaWdpbmFsIj48cGF0aCBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0em0tNS4wNC02LjcxbC0yLjc1IDMuNTQtMS45Ni0yLjM2TDYuNSAxN2gxMWwtMy41NC00LjcxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtcG9ydHJhaXQiPjxwYXRoIGQ9Ik0xNyAzSDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg3VjVoMTB2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcC1yb3RhdGUiPjxwYXRoIGQ9Ik03LjQ3IDIxLjQ5QzQuMiAxOS45MyAxLjg2IDE2Ljc2IDEuNSAxM0gwYy41MSA2LjE2IDUuNjYgMTEgMTEuOTUgMTEgLjIzIDAgLjQ0LS4wMi42Ni0uMDNMOC44IDIwLjE1bC0xLjMzIDEuMzR6TTEyLjA1IDBjLS4yMyAwLS40NC4wMi0uNjYuMDRsMy44MSAzLjgxIDEuMzMtMS4zM0MxOS44IDQuMDcgMjIuMTQgNy4yNCAyMi41IDExSDI0Yy0uNTEtNi4xNi01LjY2LTExLTExLjk1LTExek0xNiAxNGgyVjhjMC0xLjExLS45LTItMi0yaC02djJoNnY2em0tOCAyVjRINnYySDR2MmgydjhjMCAxLjEuODkgMiAyIDJoOHYyaDJ2LTJoMnYtMkg4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3Atc3F1YXJlIj48cGF0aCBkPSJNMTggNEg2Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINlY2aDEydjEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRlaGF6ZSI+PHBhdGggZD0iTTIgMTUuNXYyaDIwdi0ySDJ6bTAtNXYyaDIwdi0ySDJ6bTAtNXYyaDIwdi0ySDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGV0YWlscyI+PHBhdGggZD0iTTMgNGw5IDE2IDktMTZIM3ptMy4zOCAyaDExLjI1TDEyIDE2IDYuMzggNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJlZGl0Ij48cGF0aCBkPSJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTIuMzQtMi4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlIj48cGF0aCBkPSJNMTUgMTd2Mmgydi0yaDJ2LTJoLTJ2LTJoLTJ2MmgtMnYyaDJ6bTUtMTVINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek01IDVoNnYySDVWNXptMTUgMTVINEwyMCA0djE2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlLW5lZy0xIj48cGF0aCBkPSJNNCAxMXYyaDh2LTJINHptMTUgN2gtMlY3LjM4TDE0IDguNFY2LjdMMTguNyA1aC4zdjEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlLW5lZy0yIj48cGF0aCBkPSJNMTUuMDUgMTYuMjlsMi44Ni0zLjA3Yy4zOC0uMzkuNzItLjc5IDEuMDQtMS4xOC4zMi0uMzkuNTktLjc4LjgyLTEuMTcuMjMtLjM5LjQxLS43OC41NC0xLjE3cy4xOS0uNzkuMTktMS4xOGMwLS41My0uMDktMS4wMi0uMjctMS40Ni0uMTgtLjQ0LS40NC0uODEtLjc4LTEuMTEtLjM0LS4zMS0uNzctLjU0LTEuMjYtLjcxLS41MS0uMTYtMS4wOC0uMjQtMS43Mi0uMjQtLjY5IDAtMS4zMS4xMS0xLjg1LjMyLS41NC4yMS0xIC41MS0xLjM2Ljg4LS4zNy4zNy0uNjUuOC0uODQgMS4zLS4xOC40Ny0uMjcuOTctLjI4IDEuNWgyLjE0Yy4wMS0uMzEuMDUtLjYuMTMtLjg3LjA5LS4yOS4yMy0uNTQuNC0uNzUuMTgtLjIxLjQxLS4zNy42OC0uNDkuMjctLjEyLjYtLjE4Ljk2LS4xOC4zMSAwIC41OC4wNS44MS4xNS4yMy4xLjQzLjI1LjU5LjQzLjE2LjE4LjI4LjQuMzcuNjUuMDguMjUuMTMuNTIuMTMuODEgMCAuMjItLjAzLjQzLS4wOC42NS0uMDYuMjItLjE1LjQ1LS4yOS43LS4xNC4yNS0uMzIuNTMtLjU2LjgzLS4yMy4zLS41Mi42NS0uODggMS4wM2wtNC4xNyA0LjU1VjE4SDIxdi0xLjcxaC01Ljk1ek0yIDExdjJoOHYtMkgyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlLXBsdXMtMSI+PHBhdGggZD0iTTEwIDdIOHY0SDR2Mmg0djRoMnYtNGg0di0yaC00Vjd6bTEwIDExaC0yVjcuMzhMMTUgOC40VjYuN0wxOS43IDVoLjN2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhwb3N1cmUtcGx1cy0yIj48cGF0aCBkPSJNMTYuMDUgMTYuMjlsMi44Ni0zLjA3Yy4zOC0uMzkuNzItLjc5IDEuMDQtMS4xOC4zMi0uMzkuNTktLjc4LjgyLTEuMTcuMjMtLjM5LjQxLS43OC41NC0xLjE3LjEzLS4zOS4xOS0uNzkuMTktMS4xOCAwLS41My0uMDktMS4wMi0uMjctMS40Ni0uMTgtLjQ0LS40NC0uODEtLjc4LTEuMTEtLjM0LS4zMS0uNzctLjU0LTEuMjYtLjcxLS41MS0uMTYtMS4wOC0uMjQtMS43Mi0uMjQtLjY5IDAtMS4zMS4xMS0xLjg1LjMyLS41NC4yMS0xIC41MS0xLjM2Ljg4LS4zNy4zNy0uNjUuOC0uODQgMS4zLS4xOC40Ny0uMjcuOTctLjI4IDEuNWgyLjE0Yy4wMS0uMzEuMDUtLjYuMTMtLjg3LjA5LS4yOS4yMy0uNTQuNC0uNzUuMTgtLjIxLjQxLS4zNy42OC0uNDkuMjctLjEyLjYtLjE4Ljk2LS4xOC4zMSAwIC41OC4wNS44MS4xNS4yMy4xLjQzLjI1LjU5LjQzLjE2LjE4LjI4LjQuMzcuNjUuMDguMjUuMTMuNTIuMTMuODEgMCAuMjItLjAzLjQzLS4wOC42NS0uMDYuMjItLjE1LjQ1LS4yOS43LS4xNC4yNS0uMzIuNTMtLjU2LjgzLS4yMy4zLS41Mi42NS0uODggMS4wM2wtNC4xNyA0LjU1VjE4SDIydi0xLjcxaC01Ljk1ek04IDdINnY0SDJ2Mmg0djRoMnYtNGg0di0ySDhWN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJleHBvc3VyZS16ZXJvIj48cGF0aCBkPSJNMTYuMTQgMTIuNWMwIDEtLjEgMS44NS0uMyAyLjU1LS4yLjctLjQ4IDEuMjctLjgzIDEuNy0uMzYuNDQtLjc5Ljc1LTEuMy45NS0uNTEuMi0xLjA3LjMtMS43LjMtLjYyIDAtMS4xOC0uMS0xLjY5LS4zLS41MS0uMi0uOTUtLjUxLTEuMzEtLjk1LS4zNi0uNDQtLjY1LTEuMDEtLjg1LTEuNy0uMi0uNy0uMy0xLjU1LS4zLTIuNTV2LTIuMDRjMC0xIC4xLTEuODUuMy0yLjU1LjItLjcuNDgtMS4yNi44NC0xLjY5LjM2LS40My44LS43NCAxLjMxLS45M0MxMC44MSA1LjEgMTEuMzggNSAxMiA1Yy42MyAwIDEuMTkuMSAxLjcuMjkuNTEuMTkuOTUuNSAxLjMxLjkzLjM2LjQzLjY0Ljk5Ljg0IDEuNjkuMi43LjMgMS41NC4zIDIuNTV2Mi4wNHptLTIuMTEtMi4zNmMwLS42NC0uMDUtMS4xOC0uMTMtMS42Mi0uMDktLjQ0LS4yMi0uNzktLjQtMS4wNi0uMTctLjI3LS4zOS0uNDYtLjY0LS41OC0uMjUtLjEzLS41NC0uMTktLjg2LS4xOS0uMzIgMC0uNjEuMDYtLjg2LjE4cy0uNDcuMzEtLjY0LjU4Yy0uMTcuMjctLjMxLjYyLS40IDEuMDZzLS4xMy45OC0uMTMgMS42MnYyLjY3YzAgLjY0LjA1IDEuMTguMTQgMS42Mi4wOS40NS4yMy44MS40IDEuMDlzLjM5LjQ4LjY0LjYxLjU0LjE5Ljg3LjE5Yy4zMyAwIC42Mi0uMDYuODctLjE5cy40Ni0uMzMuNjMtLjYxYy4xNy0uMjguMy0uNjQuMzktMS4wOS4wOS0uNDUuMTMtLjk5LjEzLTEuNjJ2LTIuNjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyIj48cGF0aCBkPSJNMTUuOTYgMTAuMjlsLTIuNzUgMy41NC0xLjk2LTIuMzZMOC41IDE1aDExbC0zLjU0LTQuNzF6TTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTEiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTEgMTBoMlY1aC00djJoMnY4em03LTE0SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTIiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tNC00aC00di0yaDJjMS4xIDAgMi0uODkgMi0yVjdjMC0xLjExLS45LTItMi0yaC00djJoNHYyaC0yYy0xLjEgMC0yIC44OS0yIDJ2NGg2di0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci0zIj48cGF0aCBkPSJNMjEgMUg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTQgOHYtMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNS44MyAwIDEuNS0uNjcgMS41LTEuNVY3YzAtMS4xMS0uOS0yLTItMmgtNHYyaDR2MmgtMnYyaDJ2MmgtNHYyaDRjMS4xIDAgMi0uODkgMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci00Ij48cGF0aCBkPSJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTEyIDEwaDJWNWgtMnY0aC0yVjVoLTJ2Nmg0djR6bTYtMTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItNSI+PHBhdGggZD0iTTIxIDFIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHpNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE0IDh2LTJjMC0xLjExLS45LTItMi0yaC0yVjdoNFY1aC02djZoNHYyaC00djJoNGMxLjEgMCAyLS44OSAyLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTYiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0yaDJjMS4xIDAgMi0uODkgMi0ydi0yYzAtMS4xMS0uOS0yLTItMmgtMlY3aDRWNWgtNGMtMS4xIDAtMiAuODktMiAydjZjMCAxLjExLjkgMiAyIDJ6bTAtNGgydjJoLTJ2LTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTciPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0ybDQtOFY1aC02djJoNGwtNCA4aDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTgiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0yaDJjMS4xIDAgMi0uODkgMi0ydi0xLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LjgzIDAgMS41LS42NyAxLjUtMS41VjdjMC0xLjExLS45LTItMi0yaC0yYy0xLjEgMC0yIC44OS0yIDJ2MS41YzAgLjgzLjY3IDEuNSAxLjUgMS41LS44MyAwLTEuNS42Ny0xLjUgMS41VjEzYzAgMS4xMS45IDIgMiAyem0wLThoMnYyaC0yVjd6bTAgNGgydjJoLTJ2LTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTkiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0xNSA1aC0yYy0xLjEgMC0yIC44OS0yIDJ2MmMwIDEuMTEuOSAyIDIgMmgydjJoLTR2Mmg0YzEuMSAwIDItLjg5IDItMlY3YzAtMS4xMS0uOS0yLTItMnptMCA0aC0yVjdoMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci05LXBsdXMiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTEgN1Y4YzAtMS4xMS0uOS0yLTItMmgtMWMtMS4xIDAtMiAuODktMiAydjFjMCAxLjExLjkgMiAyIDJoMXYxSDl2MmgzYzEuMSAwIDItLjg5IDItMnptLTMtM1Y4aDF2MWgtMXptMTAtOEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgOGgtMlY3aC0ydjJoLTJ2MmgydjJoMnYtMmgydjZIN1YzaDE0djZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLWItYW5kLXciPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNmwtNy04djhINWw3LThWNWg3djE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci1jZW50ZXItZm9jdXMiPjxwYXRoIGQ9Ik01IDE1SDN2NGMwIDEuMS45IDIgMiAyaDR2LTJINXYtNHpNNSA1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnY0aDJWNXptMTQtMmgtNHYyaDR2NGgyVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6TTEyIDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci1kcmFtYSI+PHBhdGggZD0iTTE5LjM1IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYxIDUuNjQgNS4zNiA4LjA0IDIuMzUgOC4zNiAwIDEwLjkgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTkgMThINmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0aDJjMC0yLjc2LTEuODYtNS4wOC00LjQtNS43OEM4LjYxIDYuODggMTAuMiA2IDEyIDZjMy4wMyAwIDUuNSAyLjQ3IDUuNSA1LjV2LjVIMTljMS42NSAwIDMgMS4zNSAzIDNzLTEuMzUgMy0zIDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLWZyYW1lcyI+PHBhdGggZD0iTTIwIDRoLTRsLTQtNC00IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE2SDRWNmg0LjUybDMuNTItMy41TDE1LjUyIDZIMjB2MTR6TTE4IDhINnYxMGgxMiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci1oZHIiPjxwYXRoIGQ9Ik0xNCA2bC0zLjc1IDUgMi44NSAzLjgtMS42IDEuMkM5LjgxIDEzLjc1IDcgMTAgNyAxMGwtNiA4aDIyTDE0IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLW5vbmUiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci10aWx0LXNoaWZ0Ij48cGF0aCBkPSJNMTEgNC4wN1YyLjA1Yy0yLjAxLjItMy44NCAxLTUuMzIgMi4yMUw3LjEgNS42OWMxLjExLS44NiAyLjQ0LTEuNDQgMy45LTEuNjJ6bTcuMzIuMTlDMTYuODQgMy4wNSAxNS4wMSAyLjI1IDEzIDIuMDV2Mi4wMmMxLjQ2LjE4IDIuNzkuNzYgMy45IDEuNjJsMS40Mi0xLjQzek0xOS45MyAxMWgyLjAyYy0uMi0yLjAxLTEtMy44NC0yLjIxLTUuMzJMMTguMzEgNy4xYy44NiAxLjExIDEuNDQgMi40NCAxLjYyIDMuOXpNNS42OSA3LjFMNC4yNiA1LjY4QzMuMDUgNy4xNiAyLjI1IDguOTkgMi4wNSAxMWgyLjAyYy4xOC0xLjQ2Ljc2LTIuNzkgMS42Mi0zLjl6TTQuMDcgMTNIMi4wNWMuMiAyLjAxIDEgMy44NCAyLjIxIDUuMzJsMS40My0xLjQzYy0uODYtMS4xLTEuNDQtMi40My0xLjYyLTMuODl6TTE1IDEyYzAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzIDEuMzQgMyAzIDMgMy0xLjM0IDMtM3ptMy4zMSA0LjlsMS40MyAxLjQzYzEuMjEtMS40OCAyLjAxLTMuMzIgMi4yMS01LjMyaC0yLjAyYy0uMTggMS40NS0uNzYgMi43OC0xLjYyIDMuODl6TTEzIDE5LjkzdjIuMDJjMi4wMS0uMiAzLjg0LTEgNS4zMi0yLjIxbC0xLjQzLTEuNDNjLTEuMS44Ni0yLjQzIDEuNDQtMy44OSAxLjYyem0tNy4zMi0uMTlDNy4xNiAyMC45NSA5IDIxLjc1IDExIDIxLjk1di0yLjAyYy0xLjQ2LS4xOC0yLjc5LS43Ni0zLjktMS42MmwtMS40MiAxLjQzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci12aW50YWdlIj48cGF0aCBkPSJNMTguNyAxMi40Yy0uMjgtLjE2LS41Ny0uMjktLjg2LS40LjI5LS4xMS41OC0uMjQuODYtLjQgMS45Mi0xLjExIDIuOTktMy4xMiAzLTUuMTktMS43OS0xLjAzLTQuMDctMS4xMS02IDAtLjI4LjE2LS41NC4zNS0uNzguNTQuMDUtLjMxLjA4LS42My4wOC0uOTUgMC0yLjIyLTEuMjEtNC4xNS0zLTUuMTlDMTAuMjEgMS44NSA5IDMuNzggOSA2YzAgLjMyLjAzLjY0LjA4Ljk1LS4yNC0uMi0uNS0uMzktLjc4LS41NS0xLjkyLTEuMTEtNC4yLTEuMDMtNiAwIDAgMi4wNyAxLjA3IDQuMDggMyA1LjE5LjI4LjE2LjU3LjI5Ljg2LjQtLjI5LjExLS41OC4yNC0uODYuNC0xLjkyIDEuMTEtMi45OSAzLjEyLTMgNS4xOSAxLjc5IDEuMDMgNC4wNyAxLjExIDYgMCAuMjgtLjE2LjU0LS4zNS43OC0uNTQtLjA1LjMyLS4wOC42NC0uMDguOTYgMCAyLjIyIDEuMjEgNC4xNSAzIDUuMTkgMS43OS0xLjA0IDMtMi45NyAzLTUuMTkgMC0uMzItLjAzLS42NC0uMDgtLjk1LjI0LjIuNS4zOC43OC41NCAxLjkyIDEuMTEgNC4yIDEuMDMgNiAwLS4wMS0yLjA3LTEuMDgtNC4wOC0zLTUuMTl6TTEyIDE2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDQtMS43OSA0LTQgNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGFyZSI+PHBhdGggZD0iTTcgMTFIMXYyaDZ2LTJ6bTIuMTctMy4yNEw3LjA1IDUuNjQgNS42NCA3LjA1bDIuMTIgMi4xMiAxLjQxLTEuNDF6TTEzIDFoLTJ2NmgyVjF6bTUuMzYgNi4wNWwtMS40MS0xLjQxLTIuMTIgMi4xMiAxLjQxIDEuNDEgMi4xMi0yLjEyek0xNyAxMXYyaDZ2LTJoLTZ6bS01LTJjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0yLjgzIDcuMjRsMi4xMiAyLjEyIDEuNDEtMS40MS0yLjEyLTIuMTItMS40MSAxLjQxem0tOS4xOS43MWwxLjQxIDEuNDEgMi4xMi0yLjEyLTEuNDEtMS40MS0yLjEyIDIuMTJ6TTExIDIzaDJ2LTZoLTJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGFzaC1hdXRvIj48cGF0aCBkPSJNMyAydjEyaDN2OWw3LTEySDlsNC05SDN6bTE2IDBoLTJsLTMuMiA5aDEuOWwuNy0yaDMuMmwuNyAyaDEuOUwxOSAyem0tMi4xNSA1LjY1TDE4IDRsMS4xNSAzLjY1aC0yLjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxhc2gtb2ZmIj48cGF0aCBkPSJNMy4yNyAzTDIgNC4yN2w1IDVWMTNoM3Y5bDMuNTgtNi4xNEwxNy43MyAyMCAxOSAxOC43MyAzLjI3IDN6TTE3IDEwaC00bDQtOEg3djIuMThsOC40NiA4LjQ2TDE3IDEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZsYXNoLW9uIj48cGF0aCBkPSJNNyAydjExaDN2OWw3LTEyaC00bDQtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGlwIj48cGF0aCBkPSJNMTUgMjFoMnYtMmgtMnYyem00LTEyaDJWN2gtMnYyek0zIDV2MTRjMCAxLjEuOSAyIDIgMmg0di0ySDVWNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ6bTE2LTJ2MmgyYzAtMS4xLS45LTItMi0yem0tOCAyMGgyVjFoLTJ2MjJ6bTgtNmgydi0yaC0ydjJ6TTE1IDVoMlYzaC0ydjJ6bTQgOGgydi0yaC0ydjJ6bTAgOGMxLjEgMCAyLS45IDItMmgtMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyYWRpZW50Ij48cGF0aCBkPSJNMTEgOWgydjJoLTJ6bS0yIDJoMnYySDl6bTQgMGgydjJoLTJ6bTItMmgydjJoLTJ6TTcgOWgydjJIN3ptMTItNkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMThIN3YtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTItN2gtMnYyaDJ2MmgtMnYtMmgtMnYyaC0ydi0yaC0ydjJIOXYtMkg3djJINXYtMmgydi0ySDVWNWgxNHY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyYWluIj48cGF0aCBkPSJNMTAgMTJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yek02IDhjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDhjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0xMi04YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptLTQgOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTQtNGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS00LTRjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0tNC00Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJncmlkLW9mZiI+PHBhdGggZD0iTTggNHYxLjQ1bDIgMlY0aDR2NGgtMy40NWwyIDJIMTR2MS40NWwyIDJWMTBoNHY0aC0zLjQ1bDIgMkgyMHYxLjQ1bDIgMlY0YzAtMS4xLS45LTItMi0ySDQuNTVsMiAySDh6bTggMGg0djRoLTRWNHpNMS4yNyAxLjI3TDAgMi41NWwyIDJWMjBjMCAxLjEuOSAyIDIgMmgxNS40NmwyIDIgMS4yNy0xLjI3TDEuMjcgMS4yN3pNMTAgMTIuNTVMMTEuNDUgMTRIMTB2LTEuNDV6bS02LTZMNS40NSA4SDRWNi41NXpNOCAyMEg0di00aDR2NHptMC02SDR2LTRoMy40NWwuNTUuNTVWMTR6bTYgNmgtNHYtNGgzLjQ1bC41NS41NFYyMHptMiAwdi0xLjQ2TDE3LjQ2IDIwSDE2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyaWQtb24iPjxwYXRoIGQ9Ik0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNOCAyMEg0di00aDR2NHptMC02SDR2LTRoNHY0em0wLTZINFY0aDR2NHptNiAxMmgtNHYtNGg0djR6bTAtNmgtNHYtNGg0djR6bTAtNmgtNFY0aDR2NHptNiAxMmgtNHYtNGg0djR6bTAtNmgtNHYtNGg0djR6bTAtNmgtNFY0aDR2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJoZHItb2ZmIj48cGF0aCBkPSJNMTcuNSAxNXYtMmgxLjFsLjkgMkgyMWwtLjktMi4xYy41LS4yLjktLjguOS0xLjR2LTFjMC0uOC0uNy0xLjUtMS41LTEuNUgxNnY0LjlsMS4xIDEuMWguNHptMC00LjVoMnYxaC0ydi0xem0tNC41IDB2LjRsMS41IDEuNXYtMS45YzAtLjgtLjctMS41LTEuNS0xLjVoLTEuOWwxLjUgMS41aC40em0tMy41LTFsLTctNy0xLjEgMUw2LjkgOWgtLjR2MmgtMlY5SDN2NmgxLjV2LTIuNWgyVjE1SDh2LTQuOWwxLjUgMS41VjE1aDMuNGw3LjYgNy42IDEuMS0xLjEtMTIuMS0xMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJoZHItb24iPjxwYXRoIGQ9Ik0yMSAxMS41di0xYzAtLjgtLjctMS41LTEuNS0xLjVIMTZ2NmgxLjV2LTJoMS4xbC45IDJIMjFsLS45LTIuMWMuNS0uMy45LS44LjktMS40em0tMS41IDBoLTJ2LTFoMnYxem0tMTMtLjVoLTJWOUgzdjZoMS41di0yLjVoMlYxNUg4VjlINi41djJ6TTEzIDlIOS41djZIMTNjLjggMCAxLjUtLjcgMS41LTEuNXYtM2MwLS44LS43LTEuNS0xLjUtMS41em0wIDQuNWgtMnYtM2gydjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGRyLXN0cm9uZyI+PHBhdGggZD0iTTE3IDZjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02ek01IDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imhkci13ZWFrIj48cGF0aCBkPSJNNSA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMTItMmMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bTAgMTBjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImhlYWxpbmciPjxwYXRoIGQ9Ik0xNy43MyAxMi4wMmwzLjk4LTMuOThjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtNC4zNC00LjM0Yy0uMzktLjM5LTEuMDItLjM5LTEuNDEgMGwtMy45OCAzLjk4TDggMi4yOUM3LjggMi4xIDcuNTUgMiA3LjI5IDJjLS4yNSAwLS41MS4xLS43LjI5TDIuMjUgNi42M2MtLjM5LjM5LS4zOSAxLjAyIDAgMS40MWwzLjk4IDMuOThMMi4yNSAxNmMtLjM5LjM5LS4zOSAxLjAyIDAgMS40MWw0LjM0IDQuMzRjLjM5LjM5IDEuMDIuMzkgMS40MSAwbDMuOTgtMy45OCAzLjk4IDMuOThjLjIuMi40NS4yOS43MS4yOS4yNiAwIC41MS0uMS43MS0uMjlsNC4zNC00LjM0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTMuOTktMy45OHpNMTIgOWMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tNC43MSAxLjk2TDMuNjYgNy4zNGwzLjYzLTMuNjMgMy42MiAzLjYyLTMuNjIgMy42M3pNMTAgMTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMiAyYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTItNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0yLjY2IDkuMzRsLTMuNjMtMy42MiAzLjYzLTMuNjMgMy42MiAzLjYyLTMuNjIgMy42M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJpbWFnZSI+PHBhdGggZD0iTTIxIDE5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnpNOC41IDEzLjVsMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1bDMuNS00LjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW1hZ2UtYXNwZWN0LXJhdGlvIj48cGF0aCBkPSJNMTYgMTBoLTJ2Mmgydi0yem0wIDRoLTJ2Mmgydi0yem0tOC00SDZ2Mmgydi0yem00IDBoLTJ2Mmgydi0yem04LTZINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNmgxNnYxMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJpc28iPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNNS41IDcuNWgydi0ySDl2MmgyVjlIOXYySDcuNVY5aC0yVjcuNXpNMTkgMTlINUwxOSA1djE0em0tMi0ydi0xLjVoLTVWMTdoNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYW5kc2NhcGUiPjxwYXRoIGQ9Ik0xNCA2bC0zLjc1IDUgMi44NSAzLjgtMS42IDEuMkM5LjgxIDEzLjc1IDcgMTAgNyAxMGwtNiA4aDIyTDE0IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibGVhay1hZGQiPjxwYXRoIGQ9Ik02IDNIM3YzYzEuNjYgMCAzLTEuMzQgMy0zem04IDBoLTJjMCA0Ljk3LTQuMDMgOS05IDl2MmM2LjA4IDAgMTEtNC45MyAxMS0xMXptLTQgMEg4YzAgMi43Ni0yLjI0IDUtNSA1djJjMy44NyAwIDctMy4xMyA3LTd6bTAgMThoMmMwLTQuOTcgNC4wMy05IDktOXYtMmMtNi4wNyAwLTExIDQuOTMtMTEgMTF6bTggMGgzdi0zYy0xLjY2IDAtMyAxLjM0LTMgM3ptLTQgMGgyYzAtMi43NiAyLjI0LTUgNS01di0yYy0zLjg3IDAtNyAzLjEzLTcgN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsZWFrLXJlbW92ZSI+PHBhdGggZD0iTTEwIDNIOGMwIC4zNy0uMDQuNzItLjEyIDEuMDZsMS41OSAxLjU5QzkuODEgNC44NCAxMCAzLjk0IDEwIDN6TTMgNC4yN2wyLjg0IDIuODRDNS4wMyA3LjY3IDQuMDYgOCAzIDh2MmMxLjYxIDAgMy4wOS0uNTUgNC4yNy0xLjQ2TDguNyA5Ljk3QzcuMTQgMTEuMjQgNS4xNiAxMiAzIDEydjJjMi43MSAwIDUuMTktLjk5IDcuMTEtMi42MmwyLjUgMi41QzEwLjk5IDE1LjgxIDEwIDE4LjI5IDEwIDIxaDJjMC0yLjE2Ljc2LTQuMTQgMi4wMy01LjY5bDEuNDMgMS40M0MxNC41NSAxNy45MSAxNCAxOS4zOSAxNCAyMWgyYzAtMS4wNi4zMy0yLjAzLjg5LTIuODRMMTkuNzMgMjEgMjEgMTkuNzMgNC4yNyAzIDMgNC4yN3pNMTQgM2gtMmMwIDEuNS0uMzcgMi45MS0xLjAyIDQuMTZsMS40NiAxLjQ2QzEzLjQyIDYuOTggMTQgNS4wNiAxNCAzem01Ljk0IDEzLjEyYy4zNC0uMDguNjktLjEyIDEuMDYtLjEydi0yYy0uOTQgMC0xLjg0LjE5LTIuNjYuNTJsMS42IDEuNnptLTQuNTYtNC41NmwxLjQ2IDEuNDZDMTguMDkgMTIuMzcgMTkuNSAxMiAyMSAxMnYtMmMtMi4wNiAwLTMuOTguNTgtNS42MiAxLjU2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxlbnMiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxpbmtlZC1jYW1lcmEiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTQiIHI9IjMuMiI+PC9jaXJjbGU+PHBhdGggZD0iTTE2IDMuMzNjMi41OCAwIDQuNjcgMi4wOSA0LjY3IDQuNjdIMjJjMC0zLjMxLTIuNjktNi02LTZ2MS4zM00xNiA2YzEuMTEgMCAyIC44OSAyIDJoMS4zM2MwLTEuODQtMS40OS0zLjMzLTMuMzMtMy4zM1Y2Ij48L3BhdGg+PHBhdGggZD0iTTE3IDljMC0xLjExLS44OS0yLTItMlY0SDlMNy4xNyA2SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOWgtNXptLTUgMTBjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxvb2tzIj48cGF0aCBkPSJNMTIgMTBjLTMuODYgMC03IDMuMTQtNyA3aDJjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWgyYzAtMy44Ni0zLjE0LTctNy03em0wLTRDNS45MyA2IDEgMTAuOTMgMSAxN2gyYzAtNC45NiA0LjA0LTkgOS05czkgNC4wNCA5IDloMmMwLTYuMDctNC45My0xMS0xMS0xMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb29rcy0zIj48cGF0aCBkPSJNMTkuMDEgM2gtMTRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgNy41YzAgLjgzLS42NyAxLjUtMS41IDEuNS44MyAwIDEuNS42NyAxLjUgMS41VjE1YzAgMS4xMS0uOSAyLTIgMmgtNHYtMmg0di0yaC0ydi0yaDJWOWgtNFY3aDRjMS4xIDAgMiAuODkgMiAydjEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb29rcy00Ij48cGF0aCBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00IDE0aC0ydi00SDlWN2gydjRoMlY3aDJ2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9va3MtNSI+PHBhdGggZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNCA2aC00djJoMmMxLjEgMCAyIC44OSAyIDJ2MmMwIDEuMTEtLjkgMi0yIDJIOXYtMmg0di0ySDlWN2g2djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9va3MtNiI+PHBhdGggZD0iTTExIDE1aDJ2LTJoLTJ2MnptOC0xMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00IDZoLTR2MmgyYzEuMSAwIDIgLjg5IDIgMnYyYzAgMS4xMS0uOSAyLTIgMmgtMmMtMS4xIDAtMi0uODktMi0yVjljMC0xLjExLjktMiAyLTJoNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxvb2tzLW9uZSI+PHBhdGggZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNSAxNGgtMlY5aC0yVjdoNHYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb29rcy10d28iPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgOGMwIDEuMTEtLjkgMi0yIDJoLTJ2Mmg0djJIOXYtNGMwLTEuMTEuOS0yIDItMmgyVjlIOVY3aDRjMS4xIDAgMiAuODkgMiAydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG91cGUiPjxwYXRoIGQ9Ik0xMyA3aC0ydjRIN3YyaDR2NGgydi00aDR2LTJoLTRWN3ptLTEtNUM2LjQ5IDIgMiA2LjQ5IDIgMTJzNC40OSAxMCAxMCAxMGg4YzEuMSAwIDItLjkgMi0ydi04YzAtNS41MS00LjQ5LTEwLTEwLTEwem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb25vY2hyb21lLXBob3RvcyI+PHBhdGggZD0iTTIwIDVoLTMuMkwxNSAzSDlMNy4yIDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE0aC04di0xYy0yLjggMC01LTIuMi01LTVzMi4yLTUgNS01VjdoOHYxMnptLTMtNmMwLTIuOC0yLjItNS01LTV2MS44YzEuOCAwIDMuMiAxLjQgMy4yIDMuMnMtMS40IDMuMi0zLjIgMy4yVjE4YzIuOCAwIDUtMi4yIDUtNXptLTguMiAwYzAgMS44IDEuNCAzLjIgMy4yIDMuMlY5LjhjLTEuOCAwLTMuMiAxLjQtMy4yIDMuMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3ZpZS1jcmVhdGlvbiI+PHBhdGggZD0iTTE4IDRsMiA0aC0zbC0yLTRoLTJsMiA0aC0zbC0yLTRIOGwyIDRIN0w1IDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGgtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3ZpZS1maWx0ZXIiPjxwYXRoIGQ9Ik0xOCA0bDIgM2gtM2wtMi0zaC0ybDIgM2gtM2wtMi0zSDhsMiAzSDdMNSA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRoLTR6bS02Ljc1IDExLjI1TDEwIDE4bC0xLjI1LTIuNzVMNiAxNGwyLjc1LTEuMjVMMTAgMTBsMS4yNSAyLjc1TDE0IDE0bC0yLjc1IDEuMjV6bTUuNjktMy4zMUwxNiAxNGwtLjk0LTIuMDZMMTMgMTFsMi4wNi0uOTRMMTYgOGwuOTQgMi4wNkwxOSAxMWwtMi4wNi45NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJtdXNpYy1ub3RlIj48cGF0aCBkPSJNMTIgM3YxMC41NWMtLjU5LS4zNC0xLjI3LS41NS0yLS41NS0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRWN2g0VjNoLTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibmF0dXJlIj48cGF0aCBkPSJNMTMgMTYuMTJjMy40Ny0uNDEgNi4xNy0zLjM2IDYuMTctNi45NSAwLTMuODctMy4xMy03LTctN3MtNyAzLjEzLTcgN2MwIDMuNDcgMi41MiA2LjM0IDUuODMgNi44OVYyMEg1djJoMTR2LTJoLTZ2LTMuODh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibmF0dXJlLXBlb3BsZSI+PHBhdGggZD0iTTIyLjE3IDkuMTdjMC0zLjg3LTMuMTMtNy03LTdzLTcgMy4xMy03IDdjMCAzLjQ3IDIuNTIgNi4zNCA1LjgzIDYuODlWMjBINnYtM2gxdi00YzAtLjU1LS40NS0xLTEtMUgzYy0uNTUgMC0xIC40NS0xIDF2NGgxdjVoMTZ2LTJoLTN2LTMuODhjMy40Ny0uNDEgNi4xNy0zLjM2IDYuMTctNi45NXpNNC41IDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVM1LjMzIDggNC41IDggMyA4LjY3IDMgOS41IDMuNjcgMTEgNC41IDExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im5hdmlnYXRlLWJlZm9yZSI+PHBhdGggZD0iTTE1LjQxIDcuNDFMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTAuODMgMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibmF2aWdhdGUtbmV4dCI+PHBhdGggZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBhbGV0dGUiPjxwYXRoIGQ9Ik0xMiAzYy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAzIDkgOSA5Yy44MyAwIDEuNS0uNjcgMS41LTEuNSAwLS4zOS0uMTUtLjc0LS4zOS0xLjAxLS4yMy0uMjYtLjM4LS42MS0uMzgtLjk5IDAtLjgzLjY3LTEuNSAxLjUtMS41SDE2YzIuNzYgMCA1LTIuMjQgNS01IDAtNC40Mi00LjAzLTgtOS04em0tNS41IDljLS44MyAwLTEuNS0uNjctMS41LTEuNVM1LjY3IDkgNi41IDkgOCA5LjY3IDggMTAuNSA3LjMzIDEyIDYuNSAxMnptMy00QzguNjcgOCA4IDcuMzMgOCA2LjVTOC42NyA1IDkuNSA1czEuNS42NyAxLjUgMS41UzEwLjMzIDggOS41IDh6bTUgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzEzLjY3IDUgMTQuNSA1czEuNS42NyAxLjUgMS41UzE1LjMzIDggMTQuNSA4em0zIDRjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxNi42NyA5IDE3LjUgOXMxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFub3JhbWEiPjxwYXRoIGQ9Ik0yMyAxOFY2YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJ6TTguNSAxMi41bDIuNSAzLjAxTDE0LjUgMTFsNC41IDZINWwzLjUtNC41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBhbm9yYW1hLWZpc2gtZXllIj48cGF0aCBkPSJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFub3JhbWEtaG9yaXpvbnRhbCI+PHBhdGggZD0iTTIwIDYuNTR2MTAuOTFjLTIuNi0uNzctNS4yOC0xLjE2LTgtMS4xNi0yLjcyIDAtNS40LjM5LTggMS4xNlY2LjU0YzIuNi43NyA1LjI4IDEuMTYgOCAxLjE2IDIuNzIuMDEgNS40LS4zOCA4LTEuMTZNMjEuNDMgNGMtLjEgMC0uMi4wMi0uMzEuMDZDMTguMTggNS4xNiAxNS4wOSA1LjcgMTIgNS43Yy0zLjA5IDAtNi4xOC0uNTUtOS4xMi0xLjY0LS4xMS0uMDQtLjIyLS4wNi0uMzEtLjA2LS4zNCAwLS41Ny4yMy0uNTcuNjN2MTQuNzVjMCAuMzkuMjMuNjIuNTcuNjIuMSAwIC4yLS4wMi4zMS0uMDYgMi45NC0xLjEgNi4wMy0xLjY0IDkuMTItMS42NCAzLjA5IDAgNi4xOC41NSA5LjEyIDEuNjQuMTEuMDQuMjEuMDYuMzEuMDYuMzMgMCAuNTctLjIzLjU3LS42M1Y0LjYzYzAtLjQtLjI0LS42My0uNTctLjYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBhbm9yYW1hLXZlcnRpY2FsIj48cGF0aCBkPSJNMTkuOTQgMjEuMTJjLTEuMS0yLjk0LTEuNjQtNi4wMy0xLjY0LTkuMTIgMC0zLjA5LjU1LTYuMTggMS42NC05LjEyLjA0LS4xMS4wNi0uMjIuMDYtLjMxIDAtLjM0LS4yMy0uNTctLjYzLS41N0g0LjYzYy0uNCAwLS42My4yMy0uNjMuNTcgMCAuMS4wMi4yLjA2LjMxQzUuMTYgNS44MiA1LjcxIDguOTEgNS43MSAxMmMwIDMuMDktLjU1IDYuMTgtMS42NCA5LjEyLS4wNS4xMS0uMDcuMjItLjA3LjMxIDAgLjMzLjIzLjU3LjYzLjU3aDE0Ljc1Yy4zOSAwIC42My0uMjQuNjMtLjU3LS4wMS0uMS0uMDMtLjItLjA3LS4zMXpNNi41NCAyMGMuNzctMi42IDEuMTYtNS4yOCAxLjE2LTggMC0yLjcyLS4zOS01LjQtMS4xNi04aDEwLjkxYy0uNzcgMi42LTEuMTYgNS4yOC0xLjE2IDggMCAyLjcyLjM5IDUuNCAxLjE2IDhINi41NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwYW5vcmFtYS13aWRlLWFuZ2xlIj48cGF0aCBkPSJNMTIgNmMyLjQ1IDAgNC43MS4yIDcuMjkuNjQuNDcgMS43OC43MSAzLjU4LjcxIDUuMzYgMCAxLjc4LS4yNCAzLjU4LS43MSA1LjM2LTIuNTguNDQtNC44NC42NC03LjI5LjY0cy00LjcxLS4yLTcuMjktLjY0QzQuMjQgMTUuNTggNCAxMy43OCA0IDEyYzAtMS43OC4yNC0zLjU4LjcxLTUuMzZDNy4yOSA2LjIgOS41NSA2IDEyIDZtMC0yYy0yLjczIDAtNS4yMi4yNC03Ljk1LjcybC0uOTMuMTYtLjI1LjlDMi4yOSA3Ljg1IDIgOS45MyAyIDEycy4yOSA0LjE1Ljg3IDYuMjJsLjI1Ljg5LjkzLjE2YzIuNzMuNDkgNS4yMi43MyA3Ljk1LjczczUuMjItLjI0IDcuOTUtLjcybC45My0uMTYuMjUtLjg5Yy41OC0yLjA4Ljg3LTQuMTYuODctNi4yM3MtLjI5LTQuMTUtLjg3LTYuMjJsLS4yNS0uODktLjkzLS4xNkMxNy4yMiA0LjI0IDE0LjczIDQgMTIgNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90byI+PHBhdGggZD0iTTIxIDE5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnpNOC41IDEzLjVsMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1bDMuNS00LjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGhvdG8tYWxidW0iPjxwYXRoIGQ9Ik0xOCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNNiA0aDV2OGwtMi41LTEuNUw2IDEyVjR6bTAgMTVsMy0zLjg2IDIuMTQgMi41OCAzLTMuODZMMTggMTlINnoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90by1jYW1lcmEiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMuMiI+PC9jaXJjbGU+PHBhdGggZD0iTTkgMkw3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yaC0zLjE3TDE1IDJIOXptMyAxNWMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGhvdG8tZmlsdGVyIj48cGF0aCBkPSJNMTkuMDIgMTB2OUg1VjVoOVYzSDUuMDJjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTloLTJ6TTE3IDEwbC45NC0yLjA2TDIwIDdsLTIuMDYtLjk0TDE3IDRsLS45NCAyLjA2TDE0IDdsMi4wNi45NHptLTMuNzUuNzVMMTIgOGwtMS4yNSAyLjc1TDggMTJsMi43NSAxLjI1TDEyIDE2bDEuMjUtMi43NUwxNiAxMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90by1saWJyYXJ5Ij48cGF0aCBkPSJNMjIgMTZWNGMwLTEuMS0uOS0yLTItMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yem0tMTEtNGwyLjAzIDIuNzFMMTYgMTFsNCA1SDhsMy00ek0yIDZ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZIMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90by1zaXplLXNlbGVjdC1hY3R1YWwiPjxwYXRoIGQ9Ik0yMSAzSDNDMiAzIDEgNCAxIDV2MTRjMCAxLjEuOSAyIDIgMmgxOGMxIDAgMi0xIDItMlY1YzAtMS0xLTItMi0yek01IDE3bDMuNS00LjUgMi41IDMuMDFMMTQuNSAxMWw0LjUgNkg1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBob3RvLXNpemUtc2VsZWN0LWxhcmdlIj48cGF0aCBkPSJNMjEgMTVoMnYyaC0ydi0yem0wLTRoMnYyaC0ydi0yem0yIDhoLTJ2MmMxIDAgMi0xIDItMnpNMTMgM2gydjJoLTJWM3ptOCA0aDJ2MmgtMlY3em0wLTR2MmgyYzAtMS0xLTItMi0yek0xIDdoMnYySDFWN3ptMTYtNGgydjJoLTJWM3ptMCAxNmgydjJoLTJ2LTJ6TTMgM0MyIDMgMSA0IDEgNWgyVjN6bTYgMGgydjJIOVYzek01IDNoMnYySDVWM3ptLTQgOHY4YzAgMS4xLjkgMiAyIDJoMTJWMTFIMXptMiA4bDIuNS0zLjIxIDEuNzkgMi4xNSAyLjUtMy4yMkwxMyAxOUgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBob3RvLXNpemUtc2VsZWN0LXNtYWxsIj48cGF0aCBkPSJNMjMgMTVoLTJ2Mmgydi0yem0wLTRoLTJ2Mmgydi0yem0wIDhoLTJ2MmMxIDAgMi0xIDItMnpNMTUgM2gtMnYyaDJWM3ptOCA0aC0ydjJoMlY3em0tMi00djJoMmMwLTEtMS0yLTItMnpNMyAyMWg4di02SDF2NGMwIDEuMS45IDIgMiAyek0zIDdIMXYyaDJWN3ptMTIgMTJoLTJ2Mmgydi0yem00LTE2aC0ydjJoMlYzem0wIDE2aC0ydjJoMnYtMnpNMyAzQzIgMyAxIDQgMSA1aDJWM3ptMCA4SDF2Mmgydi0yem04LThIOXYyaDJWM3pNNyAzSDV2MmgyVjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGljdHVyZS1hcy1wZGYiPjxwYXRoIGQ9Ik0yMCAySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTguNSA3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDl2Mkg3LjVWN0gxMGMuODMgMCAxLjUuNjcgMS41IDEuNXYxem01IDJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yLjVWN0gxNWMuODMgMCAxLjUuNjcgMS41IDEuNXYzem00LTNIMTl2MWgxLjVWMTFIMTl2MmgtMS41VjdoM3YxLjV6TTkgOS41aDF2LTFIOXYxek00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTAgNS41aDF2LTNoLTF2M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJwb3J0cmFpdCI+PHBhdGggZD0iTTEyIDEyLjI1YzEuMjQgMCAyLjI1LTEuMDEgMi4yNS0yLjI1UzEzLjI0IDcuNzUgMTIgNy43NSA5Ljc1IDguNzYgOS43NSAxMHMxLjAxIDIuMjUgMi4yNSAyLjI1em00LjUgNGMwLTEuNS0zLTIuMjUtNC41LTIuMjVzLTQuNS43NS00LjUgMi4yNVYxN2g5di0uNzV6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW1vdmUtcmVkLWV5ZSI+PHBhdGggZD0iTTEyIDQuNUM3IDQuNSAyLjczIDcuNjEgMSAxMmMxLjczIDQuMzkgNiA3LjUgMTEgNy41czkuMjctMy4xMSAxMS03LjVjLTEuNzMtNC4zOS02LTcuNS0xMS03LjV6TTEyIDE3Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXptMC04Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJyb3RhdGUtOTAtZGVncmVlcy1jY3ciPjxwYXRoIGQ9Ik03LjM0IDYuNDFMLjg2IDEyLjlsNi40OSA2LjQ4IDYuNDktNi40OC02LjUtNi40OXpNMy42OSAxMi45bDMuNjYtMy42NkwxMSAxMi45bC0zLjY2IDMuNjYtMy42NS0zLjY2em0xNS42Ny02LjI2QzE3LjYxIDQuODggMTUuMyA0IDEzIDRWLjc2TDguNzYgNSAxMyA5LjI0VjZjMS43OSAwIDMuNTguNjggNC45NSAyLjA1IDIuNzMgMi43MyAyLjczIDcuMTcgMCA5LjlDMTYuNTggMTkuMzIgMTQuNzkgMjAgMTMgMjBjLS45NyAwLTEuOTQtLjIxLTIuODQtLjYxbC0xLjQ5IDEuNDlDMTAuMDIgMjEuNjIgMTEuNTEgMjIgMTMgMjJjMi4zIDAgNC42MS0uODggNi4zNi0yLjY0IDMuNTItMy41MSAzLjUyLTkuMjEgMC0xMi43MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyb3RhdGUtbGVmdCI+PHBhdGggZD0iTTcuMTEgOC41M0w1LjcgNy4xMUM0LjggOC4yNyA0LjI0IDkuNjEgNC4wNyAxMWgyLjAyYy4xNC0uODcuNDktMS43MiAxLjAyLTIuNDd6TTYuMDkgMTNINC4wN2MuMTcgMS4zOS43MiAyLjczIDEuNjIgMy44OWwxLjQxLTEuNDJjLS41Mi0uNzUtLjg3LTEuNTktMS4wMS0yLjQ3em0xLjAxIDUuMzJjMS4xNi45IDIuNTEgMS40NCAzLjkgMS42MVYxNy45Yy0uODctLjE1LTEuNzEtLjQ5LTIuNDYtMS4wM0w3LjEgMTguMzJ6TTEzIDQuMDdWMUw4LjQ1IDUuNTUgMTMgMTBWNi4wOWMyLjg0LjQ4IDUgMi45NCA1IDUuOTFzLTIuMTYgNS40My01IDUuOTF2Mi4wMmMzLjk1LS40OSA3LTMuODUgNy03Ljkzcy0zLjA1LTcuNDQtNy03LjkzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvdGF0ZS1yaWdodCI+PHBhdGggZD0iTTE1LjU1IDUuNTVMMTEgMXYzLjA3QzcuMDYgNC41NiA0IDcuOTIgNCAxMnMzLjA1IDcuNDQgNyA3Ljkzdi0yLjAyYy0yLjg0LS40OC01LTIuOTQtNS01LjkxczIuMTYtNS40MyA1LTUuOTFWMTBsNC41NS00LjQ1ek0xOS45MyAxMWMtLjE3LTEuMzktLjcyLTIuNzMtMS42Mi0zLjg5bC0xLjQyIDEuNDJjLjU0Ljc1Ljg4IDEuNiAxLjAyIDIuNDdoMi4wMnpNMTMgMTcuOXYyLjAyYzEuMzktLjE3IDIuNzQtLjcxIDMuOS0xLjYxbC0xLjQ0LTEuNDRjLS43NS41NC0xLjU5Ljg5LTIuNDYgMS4wM3ptMy44OS0yLjQybDEuNDIgMS40MWMuOS0xLjE2IDEuNDUtMi41IDEuNjItMy44OWgtMi4wMmMtLjE0Ljg3LS40OCAxLjcyLTEuMDIgMi40OHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzbGlkZXNob3ciPjxwYXRoIGQ9Ik0xMCA4djhsNS00LTUtNHptOS01SDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3RyYWlnaHRlbiI+PHBhdGggZD0iTTIxIDZIM2MtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTBIM1Y4aDJ2NGgyVjhoMnY0aDJWOGgydjRoMlY4aDJ2NGgyVjhoMnY4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN0eWxlIj48cGF0aCBkPSJNMi41MyAxOS42NWwxLjM0LjU2di05LjAzbC0yLjQzIDUuODZjLS40MSAxLjAyLjA4IDIuMTkgMS4wOSAyLjYxem0xOS41LTMuN0wxNy4wNyAzLjk4Yy0uMzEtLjc1LTEuMDQtMS4yMS0xLjgxLTEuMjMtLjI2IDAtLjUzLjA0LS43OS4xNUw3LjEgNS45NWMtLjc1LjMxLTEuMjEgMS4wMy0xLjIzIDEuOC0uMDEuMjcuMDQuNTQuMTUuOGw0Ljk2IDExLjk3Yy4zMS43NiAxLjA1IDEuMjIgMS44MyAxLjIzLjI2IDAgLjUyLS4wNS43Ny0uMTVsNy4zNi0zLjA1YzEuMDItLjQyIDEuNTEtMS41OSAxLjA5LTIuNnpNNy44OCA4Ljc1Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS0yIDExYzAgMS4xLjkgMiAyIDJoMS40NWwtMy40NS04LjM0djYuMzR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3dpdGNoLWNhbWVyYSI+PHBhdGggZD0iTTIwIDRoLTMuMTdMMTUgMkg5TDcuMTcgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS01IDExLjVWMTNIOXYyLjVMNS41IDEyIDkgOC41VjExaDZWOC41bDMuNSAzLjUtMy41IDMuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzd2l0Y2gtdmlkZW8iPjxwYXRoIGQ9Ik0xOCA5LjVWNmMwLS41NS0uNDUtMS0xLTFIM2MtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDE0Yy41NSAwIDEtLjQ1IDEtMXYtMy41bDQgNHYtMTNsLTQgNHptLTUgNlYxM0g3djIuNUwzLjUgMTIgNyA4LjVWMTFoNlY4LjVsMy41IDMuNS0zLjUgMy41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRhZy1mYWNlcyI+PHBhdGggZD0iTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptMy41LTljLjgzIDAgMS41LS42NyAxLjUtMS41UzE2LjMzIDggMTUuNSA4IDE0IDguNjcgMTQgOS41cy42NyAxLjUgMS41IDEuNXptLTcgMGMuODMgMCAxLjUtLjY3IDEuNS0xLjVTOS4zMyA4IDguNSA4IDcgOC42NyA3IDkuNSA3LjY3IDExIDguNSAxMXptMy41IDYuNWMyLjMzIDAgNC4zMS0xLjQ2IDUuMTEtMy41SDYuODljLjggMi4wNCAyLjc4IDMuNSA1LjExIDMuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0ZXh0dXJlIj48cGF0aCBkPSJNMTkuNTEgMy4wOEwzLjA4IDE5LjUxYy4wOS4zNC4yNy42NS41MS45LjI1LjI0LjU2LjQyLjkuNTFMMjAuOTMgNC40OWMtLjE5LS42OS0uNzMtMS4yMy0xLjQyLTEuNDF6TTExLjg4IDNMMyAxMS44OHYyLjgzTDE0LjcxIDNoLTIuODN6TTUgM2MtMS4xIDAtMiAuOS0yIDJ2Mmw0LTRINXptMTQgMThjLjU1IDAgMS4wNS0uMjIgMS40MS0uNTkuMzctLjM2LjU5LS44Ni41OS0xLjQxdi0ybC00IDRoMnptLTkuNzEgMGgyLjgzTDIxIDEyLjEyVjkuMjlMOS4yOSAyMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aW1lbGFwc2UiPjxwYXRoIGQ9Ik0xNi4yNCA3Ljc2QzE1LjA3IDYuNTkgMTMuNTQgNiAxMiA2djZsLTQuMjQgNC4yNGMyLjM0IDIuMzQgNi4xNCAyLjM0IDguNDkgMCAyLjM0LTIuMzQgMi4zNC02LjE0LS4wMS04LjQ4ek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aW1lciI+PHBhdGggZD0iTTE1IDFIOXYyaDZWMXptLTQgMTNoMlY4aC0ydjZ6bTguMDMtNi42MWwxLjQyLTEuNDJjLS40My0uNTEtLjktLjk5LTEuNDEtMS40MWwtMS40MiAxLjQyQzE2LjA3IDQuNzQgMTQuMTIgNCAxMiA0Yy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAyIDkgOSA5IDktNC4wMyA5LTljMC0yLjEyLS43NC00LjA3LTEuOTctNS42MXpNMTIgMjBjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRpbWVyLTEwIj48cGF0aCBkPSJNMCA3LjcyVjkuNGwzLTFWMThoMlY2aC0uMjVMMCA3Ljcyem0yMy43OCA2LjY1Yy0uMTQtLjI4LS4zNS0uNTMtLjYzLS43NC0uMjgtLjIxLS42MS0uMzktMS4wMS0uNTNzLS44NS0uMjctMS4zNS0uMzhjLS4zNS0uMDctLjY0LS4xNS0uODctLjIzLS4yMy0uMDgtLjQxLS4xNi0uNTUtLjI1LS4xNC0uMDktLjIzLS4xOS0uMjgtLjMtLjA1LS4xMS0uMDgtLjI0LS4wOC0uMzkgMC0uMTQuMDMtLjI4LjA5LS40MS4wNi0uMTMuMTUtLjI1LjI3LS4zNC4xMi0uMS4yNy0uMTguNDUtLjI0cy40LS4wOS42NC0uMDljLjI1IDAgLjQ3LjA0LjY2LjExLjE5LjA3LjM1LjE3LjQ4LjI5LjEzLjEyLjIyLjI2LjI5LjQyLjA2LjE2LjEuMzIuMS40OWgxLjk1YzAtLjM5LS4wOC0uNzUtLjI0LTEuMDktLjE2LS4zNC0uMzktLjYzLS42OS0uODgtLjMtLjI1LS42Ni0uNDQtMS4wOS0uNTlDMjEuNDkgOS4wNyAyMSA5IDIwLjQ2IDljLS41MSAwLS45OC4wNy0xLjM5LjIxLS40MS4xNC0uNzcuMzMtMS4wNi41Ny0uMjkuMjQtLjUxLjUyLS42Ny44NC0uMTYuMzItLjIzLjY1LS4yMyAxLjAxcy4wOC42OS4yMy45NmMuMTUuMjguMzYuNTIuNjQuNzMuMjcuMjEuNi4zOC45OC41My4zOC4xNC44MS4yNiAxLjI3LjM2LjM5LjA4LjcxLjE3Ljk1LjI2cy40My4xOS41Ny4yOWMuMTMuMS4yMi4yMi4yNy4zNC4wNS4xMi4wNy4yNS4wNy4zOSAwIC4zMi0uMTMuNTctLjQuNzctLjI3LjItLjY2LjI5LTEuMTcuMjktLjIyIDAtLjQzLS4wMi0uNjQtLjA4LS4yMS0uMDUtLjQtLjEzLS41Ni0uMjQtLjE3LS4xMS0uMy0uMjYtLjQxLS40NC0uMTEtLjE4LS4xNy0uNDEtLjE4LS42N2gtMS44OWMwIC4zNi4wOC43MS4yNCAxLjA1LjE2LjM0LjM5LjY1LjcuOTMuMzEuMjcuNjkuNDkgMS4xNS42Ni40Ni4xNy45OC4yNSAxLjU4LjI1LjUzIDAgMS4wMS0uMDYgMS40NC0uMTkuNDMtLjEzLjgtLjMxIDEuMTEtLjU0LjMxLS4yMy41NC0uNTEuNzEtLjgzLjE3LS4zMi4yNS0uNjcuMjUtMS4wNi0uMDItLjQtLjA5LS43NC0uMjQtMS4wMnptLTkuOTYtNy4zMmMtLjM0LS40LS43NS0uNy0xLjIzLS44OC0uNDctLjE4LTEuMDEtLjI3LTEuNTktLjI3LS41OCAwLTEuMTEuMDktMS41OS4yNy0uNDguMTgtLjg5LjQ3LTEuMjMuODgtLjM0LjQxLS42LjkzLS43OSAxLjU5LS4xOC42NS0uMjggMS40NS0uMjggMi4zOXYxLjkyYzAgLjk0LjA5IDEuNzQuMjggMi4zOS4xOS42Ni40NSAxLjE5LjggMS42LjM0LjQxLjc1LjcxIDEuMjMuODkuNDguMTggMS4wMS4yOCAxLjU5LjI4LjU5IDAgMS4xMi0uMDkgMS41OS0uMjguNDgtLjE4Ljg4LS40OCAxLjIyLS44OS4zNC0uNDEuNi0uOTQuNzgtMS42LjE4LS42NS4yOC0xLjQ1LjI4LTIuMzl2LTEuOTJjMC0uOTQtLjA5LTEuNzQtLjI4LTIuMzktLjE4LS42Ni0uNDQtMS4xOS0uNzgtMS41OXptLS45MiA2LjE3YzAgLjYtLjA0IDEuMTEtLjEyIDEuNTMtLjA4LjQyLS4yLjc2LS4zNiAxLjAyLS4xNi4yNi0uMzYuNDUtLjU5LjU3LS4yMy4xMi0uNTEuMTgtLjgyLjE4LS4zIDAtLjU4LS4wNi0uODItLjE4cy0uNDQtLjMxLS42LS41N2MtLjE2LS4yNi0uMjktLjYtLjM4LTEuMDItLjA5LS40Mi0uMTMtLjkzLS4xMy0xLjUzdi0yLjVjMC0uNi4wNC0xLjExLjEzLTEuNTIuMDktLjQxLjIxLS43NC4zOC0xIC4xNi0uMjUuMzYtLjQzLjYtLjU1LjI0LS4xMS41MS0uMTcuODEtLjE3LjMxIDAgLjU4LjA2LjgxLjE3LjI0LjExLjQ0LjI5LjYuNTUuMTYuMjUuMjkuNTguMzcuOTkuMDguNDEuMTMuOTIuMTMgMS41MnYyLjUxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRpbWVyLTMiPjxwYXRoIGQ9Ik0xMS42MSAxMi45N2MtLjE2LS4yNC0uMzYtLjQ2LS42Mi0uNjUtLjI1LS4xOS0uNTYtLjM1LS45My0uNDguMy0uMTQuNTctLjMuOC0uNS4yMy0uMi40Mi0uNDEuNTctLjY0LjE1LS4yMy4yNy0uNDYuMzQtLjcxLjA4LS4yNC4xMS0uNDkuMTEtLjczIDAtLjU1LS4wOS0xLjA0LS4yOC0xLjQ2LS4xOC0uNDItLjQ0LS43Ny0uNzgtMS4wNi0uMzMtLjI4LS43My0uNS0xLjItLjY0LS40NS0uMTMtLjk3LS4yLTEuNTMtLjItLjU1IDAtMS4wNi4wOC0xLjUyLjI0LS40Ny4xNy0uODcuNC0xLjIuNjktLjMzLjI5LS42LjYzLS43OCAxLjAzLS4yLjM5LS4yOS44My0uMjkgMS4yOWgxLjk4YzAtLjI2LjA1LS40OS4xNC0uNjkuMDktLjIuMjItLjM4LjM4LS41Mi4xNy0uMTQuMzYtLjI1LjU4LS4zMy4yMi0uMDguNDYtLjEyLjczLS4xMi42MSAwIDEuMDYuMTYgMS4zNi40Ny4zLjMxLjQ0Ljc1LjQ0IDEuMzIgMCAuMjctLjA0LjUyLS4xMi43NC0uMDguMjItLjIxLjQxLS4zOC41Ny0uMTcuMTYtLjM4LjI4LS42My4zNy0uMjUuMDktLjU1LjEzLS44OS4xM0g2LjcydjEuNTdINy45Yy4zNCAwIC42NC4wNC45MS4xMS4yNy4wOC41LjE5LjY5LjM1LjE5LjE2LjM0LjM2LjQ0LjYxLjEuMjQuMTYuNTQuMTYuODcgMCAuNjItLjE4IDEuMDktLjUzIDEuNDItLjM1LjMzLS44NC40OS0xLjQ1LjQ5LS4yOSAwLS41Ni0uMDQtLjgtLjEzLS4yNC0uMDgtLjQ0LS4yLS42MS0uMzYtLjE3LS4xNi0uMy0uMzQtLjM5LS41Ni0uMDktLjIyLS4xNC0uNDYtLjE0LS43Mkg0LjE5YzAgLjU1LjExIDEuMDMuMzIgMS40NS4yMS40Mi41Ljc3Ljg2IDEuMDVzLjc3LjQ5IDEuMjQuNjMuOTYuMjEgMS40OC4yMWMuNTcgMCAxLjA5LS4wOCAxLjU4LS4yMy40OS0uMTUuOTEtLjM4IDEuMjYtLjY4LjM2LS4zLjY0LS42Ni44NC0xLjEuMi0uNDMuMy0uOTMuMy0xLjQ4IDAtLjI5LS4wNC0uNTgtLjExLS44Ni0uMDgtLjI1LS4xOS0uNTEtLjM1LS43NnptOS4yNiAxLjRjLS4xNC0uMjgtLjM1LS41My0uNjMtLjc0LS4yOC0uMjEtLjYxLS4zOS0xLjAxLS41M3MtLjg1LS4yNy0xLjM1LS4zOGMtLjM1LS4wNy0uNjQtLjE1LS44Ny0uMjMtLjIzLS4wOC0uNDEtLjE2LS41NS0uMjUtLjE0LS4wOS0uMjMtLjE5LS4yOC0uMy0uMDUtLjExLS4wOC0uMjQtLjA4LS4zOXMuMDMtLjI4LjA5LS40MWMuMDYtLjEzLjE1LS4yNS4yNy0uMzQuMTItLjEuMjctLjE4LjQ1LS4yNHMuNC0uMDkuNjQtLjA5Yy4yNSAwIC40Ny4wNC42Ni4xMS4xOS4wNy4zNS4xNy40OC4yOS4xMy4xMi4yMi4yNi4yOS40Mi4wNi4xNi4xLjMyLjEuNDloMS45NWMwLS4zOS0uMDgtLjc1LS4yNC0xLjA5LS4xNi0uMzQtLjM5LS42My0uNjktLjg4LS4zLS4yNS0uNjYtLjQ0LTEuMDktLjU5LS40My0uMTUtLjkyLS4yMi0xLjQ2LS4yMi0uNTEgMC0uOTguMDctMS4zOS4yMS0uNDEuMTQtLjc3LjMzLTEuMDYuNTctLjI5LjI0LS41MS41Mi0uNjcuODQtLjE2LjMyLS4yMy42NS0uMjMgMS4wMXMuMDguNjguMjMuOTZjLjE1LjI4LjM3LjUyLjY0LjczLjI3LjIxLjYuMzguOTguNTMuMzguMTQuODEuMjYgMS4yNy4zNi4zOS4wOC43MS4xNy45NS4yNnMuNDMuMTkuNTcuMjljLjEzLjEuMjIuMjIuMjcuMzQuMDUuMTIuMDcuMjUuMDcuMzkgMCAuMzItLjEzLjU3LS40Ljc3LS4yNy4yLS42Ni4yOS0xLjE3LjI5LS4yMiAwLS40My0uMDItLjY0LS4wOC0uMjEtLjA1LS40LS4xMy0uNTYtLjI0LS4xNy0uMTEtLjMtLjI2LS40MS0uNDQtLjExLS4xOC0uMTctLjQxLS4xOC0uNjdoLTEuODljMCAuMzYuMDguNzEuMjQgMS4wNS4xNi4zNC4zOS42NS43LjkzLjMxLjI3LjY5LjQ5IDEuMTUuNjYuNDYuMTcuOTguMjUgMS41OC4yNS41MyAwIDEuMDEtLjA2IDEuNDQtLjE5LjQzLS4xMy44LS4zMSAxLjExLS41NC4zMS0uMjMuNTQtLjUxLjcxLS44My4xNy0uMzIuMjUtLjY3LjI1LTEuMDYtLjAyLS40LS4wOS0uNzQtLjI0LTEuMDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGltZXItb2ZmIj48cGF0aCBkPSJNMTkuMDQgNC41NWwtMS40MiAxLjQyQzE2LjA3IDQuNzQgMTQuMTIgNCAxMiA0Yy0xLjgzIDAtMy41My41NS00Ljk1IDEuNDhsMS40NiAxLjQ2QzkuNTMgNi4zNSAxMC43MyA2IDEyIDZjMy44NyAwIDcgMy4xMyA3IDcgMCAxLjI3LS4zNSAyLjQ3LS45NCAzLjQ5bDEuNDUgMS40NUMyMC40NSAxNi41MyAyMSAxNC44MyAyMSAxM2MwLTIuMTItLjc0LTQuMDctMS45Ny01LjYxbDEuNDItMS40Mi0xLjQxLTEuNDJ6TTE1IDFIOXYyaDZWMXptLTQgOC40NGwyIDJWOGgtMnYxLjQ0ek0zLjAyIDRMMS43NSA1LjI3IDQuNSA4LjAzQzMuNTUgOS40NSAzIDExLjE2IDMgMTNjMCA0Ljk3IDQuMDIgOSA5IDkgMS44NCAwIDMuNTUtLjU1IDQuOTgtMS41bDIuNSAyLjUgMS4yNy0xLjI3LTcuNzEtNy43MUwzLjAyIDR6TTEyIDIwYy0zLjg3IDAtNy0zLjEzLTctNyAwLTEuMjguMzUtMi40OC45NS0zLjUybDkuNTYgOS41NmMtMS4wMy42MS0yLjIzLjk2LTMuNTEuOTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idG9uYWxpdHkiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNy45M2MtMy45NC0uNDktNy0zLjg1LTctNy45M3MzLjA1LTcuNDQgNy03LjkzdjE1Ljg2em0yLTE1Ljg2YzEuMDMuMTMgMiAuNDUgMi44Ny45M0gxM3YtLjkzek0xMyA3aDUuMjRjLjI1LjMxLjQ4LjY1LjY4IDFIMTNWN3ptMCAzaDYuNzRjLjA4LjMzLjE1LjY2LjE5IDFIMTN2LTF6bTAgOS45M1YxOWgyLjg3Yy0uODcuNDgtMS44NC44LTIuODcuOTN6TTE4LjI0IDE3SDEzdi0xaDUuOTJjLS4yLjM1LS40My42OS0uNjggMXptMS41LTNIMTN2LTFoNi45M2MtLjA0LjM0LS4xMS42Ny0uMTkgMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0cmFuc2Zvcm0iPjxwYXRoIGQ9Ik0yMiAxOHYtMkg4VjRoMkw3IDEgNCA0aDJ2MkgydjJoNHY4YzAgMS4xLjkgMiAyIDJoOHYyaC0ybDMgMyAzLTNoLTJ2LTJoNHpNMTAgOGg2djZoMlY4YzAtMS4xLS45LTItMi0yaC02djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHVuZSI+PHBhdGggZD0iTTMgMTd2Mmg2di0ySDN6TTMgNXYyaDEwVjVIM3ptMTAgMTZ2LTJoOHYtMmgtOHYtMmgtMnY2aDJ6TTcgOXYySDN2Mmg0djJoMlY5SDd6bTE0IDR2LTJIMTF2MmgxMHptLTYtNGgyVjdoNFY1aC00VjNoLTJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWNvbWZ5Ij48cGF0aCBkPSJNMyA5aDRWNUgzdjR6bTAgNWg0di00SDN2NHptNSAwaDR2LTRIOHY0em01IDBoNHYtNGgtNHY0ek04IDloNFY1SDh2NHptNS00djRoNFY1aC00em01IDloNHYtNGgtNHY0ek0zIDE5aDR2LTRIM3Y0em01IDBoNHYtNEg4djR6bTUgMGg0di00aC00djR6bTUgMGg0di00aC00djR6bTAtMTR2NGg0VjVoLTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1jb21wYWN0Ij48cGF0aCBkPSJNMyAxOWg2di03SDN2N3ptNyAwaDEydi03SDEwdjd6TTMgNXY2aDE5VjVIM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWduZXR0ZSI+PHBhdGggZD0iTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOSAxNWMtNC40MiAwLTgtMi42OS04LTZzMy41OC02IDgtNiA4IDIuNjkgOCA2LTMuNTggNi04IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2ItYXV0byI+PHBhdGggZD0iTTYuODUgMTIuNjVoMi4zTDggOWwtMS4xNSAzLjY1ek0yMiA3bC0xLjIgNi4yOUwxOS4zIDdoLTEuNmwtMS40OSA2LjI5TDE1IDdoLS43NkMxMi43NyA1LjE3IDEwLjUzIDQgOCA0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4YzMuMTMgMCA1Ljg0LTEuODEgNy4xNS00LjQzbC4xLjQzSDE3bDEuNS02LjFMMjAgMTZoMS43NWwyLjA1LTlIMjJ6bS0xMS43IDlsLS43LTJINi40bC0uNyAySDMuOEw3IDdoMmwzLjIgOWgtMS45eiI+PC9wYXRoPjwvZz4KPGcgaWQ9IndiLWNsb3VkeSI+PHBhdGggZD0iTTE5LjM2IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDQgMi4zNCA4LjM2IDAgMTAuOTEgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjQtNC45NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ3Yi1pbmNhbmRlc2NlbnQiPjxwYXRoIGQ9Ik0zLjU1IDE4LjU0bDEuNDEgMS40MSAxLjc5LTEuOC0xLjQxLTEuNDEtMS43OSAxLjh6TTExIDIyLjQ1aDJWMTkuNWgtMnYyLjk1ek00IDEwLjVIMXYyaDN2LTJ6bTExLTQuMTlWMS41SDl2NC44MUM3LjIxIDcuMzUgNiA5LjI4IDYgMTEuNWMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02YzAtMi4yMi0xLjIxLTQuMTUtMy01LjE5em01IDQuMTl2Mmgzdi0yaC0zem0tMi43NiA3LjY2bDEuNzkgMS44IDEuNDEtMS40MS0xLjgtMS43OS0xLjQgMS40eiI+PC9wYXRoPjwvZz4KPGcgaWQ9IndiLWlyaWRlc2NlbnQiPjxwYXRoIGQ9Ik01IDE0LjVoMTR2LTZINXY2ek0xMSAuNTVWMy41aDJWLjU1aC0yem04LjA0IDIuNWwtMS43OSAxLjc5IDEuNDEgMS40MSAxLjgtMS43OS0xLjQyLTEuNDF6TTEzIDIyLjQ1VjE5LjVoLTJ2Mi45NWgyem03LjQ1LTMuOTFsLTEuOC0xLjc5LTEuNDEgMS40MSAxLjc5IDEuOCAxLjQyLTEuNDJ6TTMuNTUgNC40NmwxLjc5IDEuNzkgMS40MS0xLjQxLTEuNzktMS43OS0xLjQxIDEuNDF6bTEuNDEgMTUuNDlsMS43OS0xLjgtMS40MS0xLjQxLTEuNzkgMS43OSAxLjQxIDEuNDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2Itc3VubnkiPjxwYXRoIGQ9Ik02Ljc2IDQuODRsLTEuOC0xLjc5LTEuNDEgMS40MSAxLjc5IDEuNzkgMS40Mi0xLjQxek00IDEwLjVIMXYyaDN2LTJ6bTktOS45NWgtMlYzLjVoMlYuNTV6bTcuNDUgMy45MWwtMS40MS0xLjQxLTEuNzkgMS43OSAxLjQxIDEuNDEgMS43OS0xLjc5em0tMy4yMSAxMy43bDEuNzkgMS44IDEuNDEtMS40MS0xLjgtMS43OS0xLjQgMS40ek0yMCAxMC41djJoM3YtMmgtM3ptLTgtNWMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bS0xIDE2Ljk1aDJWMTkuNWgtMnYyLjk1em0tNy40NS0zLjkxbDEuNDEgMS40MSAxLjc5LTEuOC0xLjQxLTEuNDEtMS43OSAxLjh6Ij48L3BhdGg+PC9nPgo8L2RlZnM+PC9zdmc+CjwvaXJvbi1pY29uc2V0LXN2Zz5gO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoU28uY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBNbz1fZWA8aXJvbi1pY29uc2V0LXN2ZyBuYW1lPSJpY29ucyIgc2l6ZT0iMjQiPgo8c3ZnPjxkZWZzPgo8ZyBpZD0iM2Qtcm90YXRpb24iPjxwYXRoIGQ9Ik03LjUyIDIxLjQ4QzQuMjUgMTkuOTQgMS45MSAxNi43NiAxLjU1IDEzSC4wNUMuNTYgMTkuMTYgNS43MSAyNCAxMiAyNGwuNjYtLjAzLTMuODEtMy44MS0xLjMzIDEuMzJ6bS44OS02LjUyYy0uMTkgMC0uMzctLjAzLS41Mi0uMDgtLjE2LS4wNi0uMjktLjEzLS40LS4yNC0uMTEtLjEtLjItLjIyLS4yNi0uMzctLjA2LS4xNC0uMDktLjMtLjA5LS40N2gtMS4zYzAgLjM2LjA3LjY4LjIxLjk1LjE0LjI3LjMzLjUuNTYuNjkuMjQuMTguNTEuMzIuODIuNDEuMy4xLjYyLjE1Ljk2LjE1LjM3IDAgLjcyLS4wNSAxLjAzLS4xNS4zMi0uMS42LS4yNS44My0uNDRzLjQyLS40My41NS0uNzJjLjEzLS4yOS4yLS42MS4yLS45NyAwLS4xOS0uMDItLjM4LS4wNy0uNTYtLjA1LS4xOC0uMTItLjM1LS4yMy0uNTEtLjEtLjE2LS4yNC0uMy0uNC0uNDMtLjE3LS4xMy0uMzctLjIzLS42MS0uMzEuMi0uMDkuMzctLjIuNTItLjMzLjE1LS4xMy4yNy0uMjcuMzctLjQyLjEtLjE1LjE3LS4zLjIyLS40Ni4wNS0uMTYuMDctLjMyLjA3LS40OCAwLS4zNi0uMDYtLjY4LS4xOC0uOTYtLjEyLS4yOC0uMjktLjUxLS41MS0uNjktLjItLjE5LS40Ny0uMzMtLjc3LS40M0M5LjEgOC4wNSA4Ljc2IDggOC4zOSA4Yy0uMzYgMC0uNjkuMDUtMSAuMTYtLjMuMTEtLjU3LjI2LS43OS40NS0uMjEuMTktLjM4LjQxLS41MS42Ny0uMTIuMjYtLjE4LjU0LS4xOC44NWgxLjNjMC0uMTcuMDMtLjMyLjA5LS40NXMuMTQtLjI1LjI1LS4zNGMuMTEtLjA5LjIzLS4xNy4zOC0uMjIuMTUtLjA1LjMtLjA4LjQ4LS4wOC40IDAgLjcuMS44OS4zMS4xOS4yLjI5LjQ5LjI5Ljg2IDAgLjE4LS4wMy4zNC0uMDguNDktLjA1LjE1LS4xNC4yNy0uMjUuMzctLjExLjEtLjI1LjE4LS40MS4yNC0uMTYuMDYtLjM2LjA5LS41OC4wOUg3LjV2MS4wM2guNzdjLjIyIDAgLjQyLjAyLjYuMDdzLjMzLjEzLjQ1LjIzYy4xMi4xMS4yMi4yNC4yOS40LjA3LjE2LjEuMzUuMS41NyAwIC40MS0uMTIuNzItLjM1LjkzLS4yMy4yMy0uNTUuMzMtLjk1LjMzem04LjU1LTUuOTJjLS4zMi0uMzMtLjctLjU5LTEuMTQtLjc3LS40My0uMTgtLjkyLS4yNy0xLjQ2LS4yN0gxMnY4aDIuM2MuNTUgMCAxLjA2LS4wOSAxLjUxLS4yNy40NS0uMTguODQtLjQzIDEuMTYtLjc2LjMyLS4zMy41Ny0uNzMuNzQtMS4xOS4xNy0uNDcuMjYtLjk5LjI2LTEuNTd2LS40YzAtLjU4LS4wOS0xLjEtLjI2LTEuNTctLjE4LS40Ny0uNDMtLjg3LS43NS0xLjJ6bS0uMzkgMy4xNmMwIC40Mi0uMDUuNzktLjE0IDEuMTMtLjEuMzMtLjI0LjYyLS40My44NS0uMTkuMjMtLjQzLjQxLS43MS41My0uMjkuMTItLjYyLjE4LS45OS4xOGgtLjkxVjkuMTJoLjk3Yy43MiAwIDEuMjcuMjMgMS42NC42OS4zOC40Ni41NyAxLjEyLjU3IDEuOTl2LjR6TTEyIDBsLS42Ni4wMyAzLjgxIDMuODEgMS4zMy0xLjMzYzMuMjcgMS41NSA1LjYxIDQuNzIgNS45NiA4LjQ4aDEuNUMyMy40NCA0Ljg0IDE4LjI5IDAgMTIgMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2Nlc3NpYmlsaXR5Ij48cGF0aCBkPSJNMTIgMmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTkgN2gtNnYxM2gtMnYtNmgtMnY2SDlWOUgzVjdoMTh2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2Nlc3NpYmxlIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjQiIHI9IjIiPjwvY2lyY2xlPjxwYXRoIGQ9Ik0xOSAxM3YtMmMtMS41NC4wMi0zLjA5LS43NS00LjA3LTEuODNsLTEuMjktMS40M2MtLjE3LS4xOS0uMzgtLjM0LS42MS0uNDUtLjAxIDAtLjAxLS4wMS0uMDItLjAxSDEzYy0uMzUtLjItLjc1LS4zLTEuMTktLjI2QzEwLjc2IDcuMTEgMTAgOC4wNCAxMCA5LjA5VjE1YzAgMS4xLjkgMiAyIDJoNXY1aDJ2LTUuNWMwLTEuMS0uOS0yLTItMmgtM3YtMy40NWMxLjI5IDEuMDcgMy4yNSAxLjk0IDUgMS45NXptLTYuMTcgNWMtLjQxIDEuMTYtMS41MiAyLTIuODMgMi0xLjY2IDAtMy0xLjM0LTMtMyAwLTEuMzEuODQtMi40MSAyLTIuODNWMTIuMWMtMi4yOC40Ni00IDIuNDgtNCA0LjkgMCAyLjc2IDIuMjQgNSA1IDUgMi40MiAwIDQuNDQtMS43MiA0LjktNGgtMi4wN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2NvdW50LWJhbGFuY2UiPjxwYXRoIGQ9Ik00IDEwdjdoM3YtN0g0em02IDB2N2gzdi03aC0zek0yIDIyaDE5di0zSDJ2M3ptMTQtMTJ2N2gzdi03aC0zem0tNC41LTlMMiA2djJoMTlWNmwtOS41LTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWNjb3VudC1iYWxhbmNlLXdhbGxldCI+PHBhdGggZD0iTTIxIDE4djFjMCAxLjEtLjkgMi0yIDJINWMtMS4xMSAwLTItLjktMi0yVjVjMC0xLjEuODktMiAyLTJoMTRjMS4xIDAgMiAuOSAyIDJ2MWgtOWMtMS4xMSAwLTIgLjktMiAydjhjMCAxLjEuODkgMiAyIDJoOXptLTktMmgxMFY4SDEydjh6bTQtMi41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2NvdW50LWJveCI+PHBhdGggZD0iTTMgNXYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0ySDVjLTEuMTEgMC0yIC45LTIgMnptMTIgNGMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtMyAxLjM0LTMgMy0zIDMgMS4zNCAzIDN6bS05IDhjMC0yIDQtMy4xIDYtMy4xczYgMS4xIDYgMy4xdjFINnYtMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2NvdW50LWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgM2MxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgMy0zLTEuMzQtMy0zIDEuMzQtMyAzLTN6bTAgMTQuMmMtMi41IDAtNC43MS0xLjI4LTYtMy4yMi4wMy0xLjk5IDQtMy4wOCA2LTMuMDggMS45OSAwIDUuOTcgMS4wOSA2IDMuMDgtMS4yOSAxLjk0LTMuNSAzLjIyLTYgMy4yMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGQiPjxwYXRoIGQ9Ik0xOSAxM2gtNnY2aC0ydi02SDV2LTJoNlY1aDJ2Nmg2djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWRkLWFsZXJ0Ij48cGF0aCBkPSJNMTAuMDEgMjEuMDFjMCAxLjEuODkgMS45OSAxLjk5IDEuOTlzMS45OS0uODkgMS45OS0xLjk5aC0zLjk4em04Ljg3LTQuMTlWMTFjMC0zLjI1LTIuMjUtNS45Ny01LjI5LTYuNjl2LS43MkMxMy41OSAyLjcxIDEyLjg4IDIgMTIgMnMtMS41OS43MS0xLjU5IDEuNTl2LjcyQzcuMzcgNS4wMyA1LjEyIDcuNzUgNS4xMiAxMXY1LjgyTDMgMTguOTRWMjBoMTh2LTEuMDZsLTIuMTItMi4xMnpNMTYgMTMuMDFoLTN2M2gtMnYtM0g4VjExaDNWOGgydjNoM3YyLjAxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFkZC1ib3giPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMiAxMGgtNHY0aC0ydi00SDd2LTJoNFY3aDJ2NGg0djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWRkLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTUgMTFoLTR2NGgtMnYtNEg3di0yaDRWN2gydjRoNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFkZC1jaXJjbGUtb3V0bGluZSI+PHBhdGggZD0iTTEzIDdoLTJ2NEg3djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0tMS01QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGQtc2hvcHBpbmctY2FydCI+PHBhdGggZD0iTTExIDloMlY2aDNWNGgtM1YxaC0ydjNIOHYyaDN2M3ptLTQgOWMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnptMTAgMGMtMS4xIDAtMS45OS45LTEuOTkgMnMuODkgMiAxLjk5IDIgMi0uOSAyLTItLjktMi0yLTJ6bS05LjgzLTMuMjVsLjAzLS4xMi45LTEuNjNoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy44Ni03LjAxTDE5LjQyIDRoLS4wMWwtMS4xIDItMi43NiA1SDguNTNsLS4xMy0uMjdMNi4xNiA2bC0uOTUtMi0uOTQtMkgxdjJoMmwzLjYgNy41OS0xLjM1IDIuNDVjLS4xNi4yOC0uMjUuNjEtLjI1Ljk2IDAgMS4xLjkgMiAyIDJoMTJ2LTJINy40MmMtLjEzIDAtLjI1LS4xMS0uMjUtLjI1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFsYXJtIj48cGF0aCBkPSJNMjIgNS43MmwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTcuODggMy4zOUw2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMTIuNSA4SDExdjZsNC43NSAyLjg1Ljc1LTEuMjMtNC0yLjM3Vjh6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDljNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFsYXJtLWFkZCI+PHBhdGggZD0iTTcuODggMy4zOUw2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMjIgNS43MmwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDljNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3em0xLTExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTNWOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhbGFybS1vZmYiPjxwYXRoIGQ9Ik0xMiA2YzMuODcgMCA3IDMuMTMgNyA3IDAgLjg0LS4xNiAxLjY1LS40MyAyLjRsMS41MiAxLjUyYy41OC0xLjE5LjkxLTIuNTEuOTEtMy45MiAwLTQuOTctNC4wMy05LTktOS0xLjQxIDAtMi43My4zMy0zLjkyLjkxTDkuNiA2LjQzQzEwLjM1IDYuMTYgMTEuMTYgNiAxMiA2em0xMC0uMjhsLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek0yLjkyIDIuMjlMMS42NSAzLjU3IDIuOTggNC45bC0xLjExLjkzIDEuNDIgMS40MiAxLjExLS45NC44LjhDMy44MyA4LjY5IDMgMTAuNzUgMyAxM2MwIDQuOTcgNC4wMiA5IDkgOSAyLjI1IDAgNC4zMS0uODMgNS44OS0yLjJsMi4yIDIuMiAxLjI3LTEuMjdMMy44OSAzLjI3bC0uOTctLjk4em0xMy41NSAxNi4xQzE1LjI2IDE5LjM5IDEzLjcgMjAgMTIgMjBjLTMuODcgMC03LTMuMTMtNy03IDAtMS43LjYxLTMuMjYgMS42MS00LjQ3bDkuODYgOS44NnpNOC4wMiAzLjI4TDYuNiAxLjg2bC0uODYuNzEgMS40MiAxLjQyLjg2LS43MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhbGFybS1vbiI+PHBhdGggZD0iTTIyIDUuNzJsLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek03Ljg4IDMuMzlMNi42IDEuODYgMiA1LjcxbDEuMjkgMS41MyA0LjU5LTMuODV6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDljNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3em0tMS40Ni01LjQ3TDguNDEgMTIuNGwtMS4wNiAxLjA2IDMuMTggMy4xOCA2LTYtMS4wNi0xLjA2LTQuOTMgNC45NXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhbGwtb3V0Ij48cGF0aCBkPSJNMTYuMjEgNC4xNmw0IDR2LTR6bTQgMTJsLTQgNGg0em0tMTIgNGwtNC00djR6bS00LTEybDQtNGgtNHptMTIuOTUtLjk1Yy0yLjczLTIuNzMtNy4xNy0yLjczLTkuOSAwcy0yLjczIDcuMTcgMCA5LjkgNy4xNyAyLjczIDkuOSAwIDIuNzMtNy4xNiAwLTkuOXptLTEuMSA4LjhjLTIuMTMgMi4xMy01LjU3IDIuMTMtNy43IDBzLTIuMTMtNS41NyAwLTcuNyA1LjU3LTIuMTMgNy43IDAgMi4xMyA1LjU3IDAgNy43eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFuZHJvaWQiPjxwYXRoIGQ9Ik02IDE4YzAgLjU1LjQ1IDEgMSAxaDF2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41czEuNS0uNjcgMS41LTEuNVYxOWgydjMuNWMwIC44My42NyAxLjUgMS41IDEuNXMxLjUtLjY3IDEuNS0xLjVWMTloMWMuNTUgMCAxLS40NSAxLTFWOEg2djEwek0zLjUgOEMyLjY3IDggMiA4LjY3IDIgOS41djdjMCAuODMuNjcgMS41IDEuNSAxLjVTNSAxNy4zMyA1IDE2LjV2LTdDNSA4LjY3IDQuMzMgOCAzLjUgOHptMTcgMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2N2MwIC44My42NyAxLjUgMS41IDEuNXMxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41em0tNC45Ny01Ljg0bDEuMy0xLjNjLjItLjIuMi0uNTEgMC0uNzEtLjItLjItLjUxLS4yLS43MSAwbC0xLjQ4IDEuNDhDMTMuODUgMS4yMyAxMi45NSAxIDEyIDFjLS45NiAwLTEuODYuMjMtMi42Ni42M0w3Ljg1LjE1Yy0uMi0uMi0uNTEtLjItLjcxIDAtLjIuMi0uMi41MSAwIC43MWwxLjMxIDEuMzFDNi45NyAzLjI2IDYgNS4wMSA2IDdoMTJjMC0xLjk5LS45Ny0zLjc1LTIuNDctNC44NHpNMTAgNUg5VjRoMXYxem01IDBoLTFWNGgxdjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYW5ub3VuY2VtZW50Ij48cGF0aCBkPSJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDloLTJWNWgydjZ6bTAgNGgtMnYtMmgydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXBwcyI+PHBhdGggZD0iTTQgOGg0VjRINHY0em02IDEyaDR2LTRoLTR2NHptLTYgMGg0di00SDR2NHptMC02aDR2LTRINHY0em02IDBoNHYtNGgtNHY0em02LTEwdjRoNFY0aC00em0tNiA0aDRWNGgtNHY0em02IDZoNHYtNGgtNHY0em0wIDZoNHYtNGgtNHY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFyY2hpdmUiPjxwYXRoIGQ9Ik0yMC41NCA1LjIzbC0xLjM5LTEuNjhDMTguODggMy4yMSAxOC40NyAzIDE4IDNINmMtLjQ3IDAtLjg4LjIxLTEuMTYuNTVMMy40NiA1LjIzQzMuMTcgNS41NyAzIDYuMDIgMyA2LjVWMTljMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2LjVjMC0uNDgtLjE3LS45My0uNDYtMS4yN3pNMTIgMTcuNUw2LjUgMTJIMTB2LTJoNHYyaDMuNUwxMiAxNy41ek01LjEyIDVsLjgxLTFoMTJsLjk0IDFINS4xMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1iYWNrIj48cGF0aCBkPSJNMjAgMTFINy44M2w1LjU5LTUuNTlMMTIgNGwtOCA4IDggOCAxLjQxLTEuNDFMNy44MyAxM0gyMHYtMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1kb3dud2FyZCI+PHBhdGggZD0iTTIwIDEybC0xLjQxLTEuNDFMMTMgMTYuMTdWNGgtMnYxMi4xN2wtNS41OC01LjU5TDQgMTJsOCA4IDgtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1kcm9wLWRvd24iPjxwYXRoIGQ9Ik03IDEwbDUgNSA1LTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXJyb3ctZHJvcC1kb3duLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMTJsLTQtNGg4bC00IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXJyb3ctZHJvcC11cCI+PHBhdGggZD0iTTcgMTRsNS01IDUgNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1mb3J3YXJkIj48cGF0aCBkPSJNMTIgNGwtMS40MSAxLjQxTDE2LjE3IDExSDR2MmgxMi4xN2wtNS41OCA1LjU5TDEyIDIwbDgtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy11cHdhcmQiPjxwYXRoIGQ9Ik00IDEybDEuNDEgMS40MUwxMSA3LjgzVjIwaDJWNy44M2w1LjU4IDUuNTlMMjAgMTJsLTgtOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXNwZWN0LXJhdGlvIj48cGF0aCBkPSJNMTkgMTJoLTJ2M2gtM3YyaDV2LTV6TTcgOWgzVjdINXY1aDJWOXptMTQtNkgzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2Vzc21lbnQiPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxN0g3di03aDJ2N3ptNCAwaC0yVjdoMnYxMHptNCAwaC0ydi00aDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50Ij48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTIgMTRIN3YtMmg3djJ6bTMtNEg3di0yaDEwdjJ6bTAtNEg3VjdoMTB2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50LWluZCI+PHBhdGggZD0iTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0wIDRjMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDMtMy0xLjM0LTMtMyAxLjM0LTMgMy0zem02IDEySDZ2LTEuNGMwLTIgNC0zLjEgNi0zLjFzNiAxLjEgNiAzLjFWMTl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXNzaWdubWVudC1sYXRlIj48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNiAxNWgtMnYtMmgydjJ6bTAtNGgtMlY4aDJ2NnptLTEtOWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2lnbm1lbnQtcmV0dXJuIj48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTQgMTJoLTR2M2wtNS01IDUtNXYzaDR2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50LXJldHVybmVkIj48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTAgMTVsLTUtNWgzVjloNHY0aDNsLTUgNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50LXR1cm5lZC1pbiI+PHBhdGggZD0iTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tMiAxNGwtNC00IDEuNDEtMS40MUwxMCAxNC4xN2w2LjU5LTYuNTlMMTggOWwtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImF0dGFjaG1lbnQiPjxwYXRoIGQ9Ik0yIDEyLjVDMiA5LjQ2IDQuNDYgNyA3LjUgN0gxOGMyLjIxIDAgNCAxLjc5IDQgNHMtMS43OSA0LTQgNEg5LjVDOC4xMiAxNSA3IDEzLjg4IDcgMTIuNVM4LjEyIDEwIDkuNSAxMEgxN3YySDkuNDFjLS41NSAwLS41NSAxIDAgMUgxOGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTJINy41QzUuNTcgOSA0IDEwLjU3IDQgMTIuNVM1LjU3IDE2IDcuNSAxNkgxN3YySDcuNUM0LjQ2IDE4IDIgMTUuNTQgMiAxMi41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImF1dG9yZW5ldyI+PHBhdGggZD0iTTEyIDZ2M2w0LTQtNC00djNjLTQuNDIgMC04IDMuNTgtOCA4IDAgMS41Ny40NiAzLjAzIDEuMjQgNC4yNkw2LjcgMTQuOGMtLjQ1LS44My0uNy0xLjc5LS43LTIuOCAwLTMuMzEgMi42OS02IDYtNnptNi43NiAxLjc0TDE3LjMgOS4yYy40NC44NC43IDEuNzkuNyAyLjggMCAzLjMxLTIuNjkgNi02IDZ2LTNsLTQgNCA0IDR2LTNjNC40MiAwIDgtMy41OCA4LTggMC0xLjU3LS40Ni0zLjAzLTEuMjQtNC4yNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJiYWNrc3BhY2UiPjxwYXRoIGQ9Ik0yMiAzSDdjLS42OSAwLTEuMjMuMzUtMS41OS44OEwwIDEybDUuNDEgOC4xMWMuMzYuNTMuOS44OSAxLjU5Ljg5aDE1YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS0zIDEyLjU5TDE3LjU5IDE3IDE0IDEzLjQxIDEwLjQxIDE3IDkgMTUuNTkgMTIuNTkgMTIgOSA4LjQxIDEwLjQxIDcgMTQgMTAuNTkgMTcuNTkgNyAxOSA4LjQxIDE1LjQxIDEyIDE5IDE1LjU5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJhY2t1cCI+PHBhdGggZD0iTTE5LjM1IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDQgMi4zNCA4LjM2IDAgMTAuOTEgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTQgMTN2NGgtNHYtNEg3bDUtNSA1IDVoLTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYmxvY2siPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek00IDEyYzAtNC40MiAzLjU4LTggOC04IDEuODUgMCAzLjU1LjYzIDQuOSAxLjY5TDUuNjkgMTYuOUM0LjYzIDE1LjU1IDQgMTMuODUgNCAxMnptOCA4Yy0xLjg1IDAtMy41NS0uNjMtNC45LTEuNjlMMTguMzEgNy4xQzE5LjM3IDguNDUgMjAgMTAuMTUgMjAgMTJjMCA0LjQyLTMuNTggOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYm9vayI+PHBhdGggZD0iTTE4IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek02IDRoNXY4bC0yLjUtMS41TDYgMTJWNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJib29rbWFyayI+PHBhdGggZD0iTTE3IDNIN2MtMS4xIDAtMS45OS45LTEuOTkgMkw1IDIxbDctMyA3IDNWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJib29rbWFyay1ib3JkZXIiPjxwYXRoIGQ9Ik0xNyAzSDdjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNSAyMWw3LTMgNyAzVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTVsLTUtMi4xOEw3IDE4VjVoMTB2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYnVnLXJlcG9ydCI+PHBhdGggZD0iTTIwIDhoLTIuODFjLS40NS0uNzgtMS4wNy0xLjQ1LTEuODItMS45NkwxNyA0LjQxIDE1LjU5IDNsLTIuMTcgMi4xN0MxMi45NiA1LjA2IDEyLjQ5IDUgMTIgNWMtLjQ5IDAtLjk2LjA2LTEuNDEuMTdMOC40MSAzIDcgNC40MWwxLjYyIDEuNjNDNy44OCA2LjU1IDcuMjYgNy4yMiA2LjgxIDhINHYyaDIuMDljLS4wNS4zMy0uMDkuNjYtLjA5IDF2MUg0djJoMnYxYzAgLjM0LjA0LjY3LjA5IDFINHYyaDIuODFjMS4wNCAxLjc5IDIuOTcgMyA1LjE5IDNzNC4xNS0xLjIxIDUuMTktM0gyMHYtMmgtMi4wOWMuMDUtLjMzLjA5LS42Ni4wOS0xdi0xaDJ2LTJoLTJ2LTFjMC0uMzQtLjA0LS42Ny0uMDktMUgyMFY4em0tNiA4aC00di0yaDR2MnptMC00aC00di0yaDR2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJidWlsZCI+PHBhdGggZD0iTTIyLjcgMTlsLTkuMS05LjFjLjktMi4zLjQtNS0xLjUtNi45LTItMi01LTIuNC03LjQtMS4zTDkgNiA2IDkgMS42IDQuN0MuNCA3LjEuOSAxMC4xIDIuOSAxMi4xYzEuOSAxLjkgNC42IDIuNCA2LjkgMS41bDkuMSA5LjFjLjQuNCAxIC40IDEuNCAwbDIuMy0yLjNjLjUtLjQuNS0xLjEuMS0xLjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FjaGVkIj48cGF0aCBkPSJNMTkgOGwtNCA0aDNjMCAzLjMxLTIuNjkgNi02IDYtMS4wMSAwLTEuOTctLjI1LTIuOC0uN2wtMS40NiAxLjQ2QzguOTcgMTkuNTQgMTAuNDMgMjAgMTIgMjBjNC40MiAwIDgtMy41OCA4LThoM2wtNC00ek02IDEyYzAtMy4zMSAyLjY5LTYgNi02IDEuMDEgMCAxLjk3LjI1IDIuOC43bDEuNDYtMS40NkMxNS4wMyA0LjQ2IDEzLjU3IDQgMTIgNGMtNC40MiAwLTggMy41OC04IDhIMWw0IDQgNC00SDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FtZXJhLWVuaGFuY2UiPjxwYXRoIGQ9Ik05IDNMNy4xNyA1SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMmgtMy4xN0wxNSAzSDl6bTMgMTVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0wLTFsMS4yNS0yLjc1TDE2IDEzbC0yLjc1LTEuMjVMMTIgOWwtMS4yNSAyLjc1TDggMTNsMi43NSAxLjI1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhbmNlbCI+PHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTUgMTMuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhcmQtZ2lmdGNhcmQiPjxwYXRoIGQ9Ik0yMCA2aC0yLjE4Yy4xMS0uMzEuMTgtLjY1LjE4LTEgMC0xLjY2LTEuMzQtMy0zLTMtMS4wNSAwLTEuOTYuNTQtMi41IDEuMzVsLS41LjY3LS41LS42OEMxMC45NiAyLjU0IDEwLjA1IDIgOSAyIDcuMzQgMiA2IDMuMzQgNiA1YzAgLjM1LjA3LjY5LjE4IDFINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNS0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTkgNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoNS4wOEw3IDEwLjgzIDguNjIgMTIgMTEgOC43NmwxLTEuMzYgMSAxLjM2TDE1LjM4IDEyIDE3IDEwLjgzIDE0LjkyIDhIMjB2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYXJkLW1lbWJlcnNoaXAiPjxwYXRoIGQ9Ik0yMCAySDRjLTEuMTEgMC0yIC44OS0yIDJ2MTFjMCAxLjExLjg5IDIgMiAyaDR2NWw0LTIgNCAydi01aDRjMS4xMSAwIDItLjg5IDItMlY0YzAtMS4xMS0uODktMi0yLTJ6bTAgMTNINHYtMmgxNnYyem0wLTVINFY0aDE2djZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FyZC10cmF2ZWwiPjxwYXRoIGQ9Ik0yMCA2aC0zVjRjMC0xLjExLS44OS0yLTItMkg5Yy0xLjExIDAtMiAuODktMiAydjJINGMtMS4xMSAwLTIgLjg5LTIgMnYxMWMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6TTkgNGg2djJIOVY0em0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoM3YyaDJWOGg2djJoMlY4aDN2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjaGFuZ2UtaGlzdG9yeSI+PHBhdGggZD0iTTEyIDcuNzdMMTguMzkgMThINS42MUwxMiA3Ljc3TTEyIDRMMiAyMGgyMEwxMiA0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZWNrIj48cGF0aCBkPSJNOSAxNi4xN0w0LjgzIDEybC0xLjQyIDEuNDFMOSAxOSAyMSA3bC0xLjQxLTEuNDF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2hlY2stYm94Ij48cGF0aCBkPSJNMTkgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjkgMi0yVjVjMC0xLjEtLjg5LTItMi0yem0tOSAxNGwtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZWNrLWJveC1vdXRsaW5lLWJsYW5rIj48cGF0aCBkPSJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjaGVjay1jaXJjbGUiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMiAxNWwtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZXZyb24tbGVmdCI+PHBhdGggZD0iTTE1LjQxIDcuNDFMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTAuODMgMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2hldnJvbi1yaWdodCI+PHBhdGggZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNocm9tZS1yZWFkZXItbW9kZSI+PHBhdGggZD0iTTEzIDEyaDd2MS41aC03em0wLTIuNWg3VjExaC03em0wIDVoN1YxNmgtN3pNMjEgNEgzYy0xLjEgMC0yIC45LTIgMnYxM2MwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTVoLTlWNmg5djEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsYXNzIj48cGF0aCBkPSJNMTggMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTYgNGg1djhsLTIuNS0xLjVMNiAxMlY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsZWFyIj48cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3NlIj48cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTQuNSAxNEg4Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zbC4xNC4wMUM4LjU4IDguMjggMTAuMTMgNyAxMiA3YzIuMjEgMCA0IDEuNzkgNCA0aC41YzEuMzggMCAyLjUgMS4xMiAyLjUgMi41UzE3Ljg4IDE2IDE2LjUgMTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtZG9uZSI+PHBhdGggZD0iTTE5LjM1IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDQgMi4zNCA4LjM2IDAgMTAuOTEgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTAgMTdsLTMuNS0zLjUgMS40MS0xLjQxTDEwIDE0LjE3IDE1LjE4IDlsMS40MSAxLjQxTDEwIDE3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkLWRvd25sb2FkIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xNyAxM2wtNSA1LTUtNWgzVjloNHY0aDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtb2ZmIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDRjLTEuNDggMC0yLjg1LjQzLTQuMDEgMS4xN2wxLjQ2IDEuNDZDMTAuMjEgNi4yMyAxMS4wOCA2IDEyIDZjMy4wNCAwIDUuNSAyLjQ2IDUuNSA1LjV2LjVIMTljMS42NiAwIDMgMS4zNCAzIDMgMCAxLjEzLS42NCAyLjExLTEuNTYgMi42MmwxLjQ1IDEuNDVDMjMuMTYgMTguMTYgMjQgMTYuNjggMjQgMTVjMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTMgNS4yN2wyLjc1IDIuNzRDMi41NiA4LjE1IDAgMTAuNzcgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxMS43M2wyIDJMMjEgMjAuNzMgNC4yNyA0IDMgNS4yN3pNNy43MyAxMGw4IDhINmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNGgxLjczeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkLXF1ZXVlIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xOSAxOEg2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00aC43MUM3LjM3IDcuNjkgOS40OCA2IDEyIDZjMy4wNCAwIDUuNSAyLjQ2IDUuNSA1LjV2LjVIMTljMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtdXBsb2FkIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xNCAxM3Y0aC00di00SDdsNS01IDUgNWgtM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJjb2RlIj48cGF0aCBkPSJNOS40IDE2LjZMNC44IDEybDQuNi00LjZMOCA2bC02IDYgNiA2IDEuNC0xLjR6bTUuMiAwbDQuNi00LjYtNC42LTQuNkwxNiA2bDYgNi02IDYtMS40LTEuNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb21wYXJlLWFycm93cyI+PHBhdGggZD0iTTkuMDEgMTRIMnYyaDcuMDF2M0wxMyAxNWwtMy45OS00djN6bTUuOTgtMXYtM0gyMlY4aC03LjAxVjVMMTEgOWwzLjk5IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udGVudC1jb3B5Ij48cGF0aCBkPSJNMTYgMUg0Yy0xLjEgMC0yIC45LTIgMnYxNGgyVjNoMTJWMXptMyA0SDhjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTFjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxNkg4VjdoMTF2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udGVudC1jdXQiPjxwYXRoIGQ9Ik05LjY0IDcuNjRjLjIzLS41LjM2LTEuMDUuMzYtMS42NCAwLTIuMjEtMS43OS00LTQtNFMyIDMuNzkgMiA2czEuNzkgNCA0IDRjLjU5IDAgMS4xNC0uMTMgMS42NC0uMzZMMTAgMTJsLTIuMzYgMi4zNkM3LjE0IDE0LjEzIDYuNTkgMTQgNiAxNGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00YzAtLjU5LS4xMy0xLjE0LS4zNi0xLjY0TDEyIDE0bDcgN2gzdi0xTDkuNjQgNy42NHpNNiA4Yy0xLjEgMC0yLS44OS0yLTJzLjktMiAyLTIgMiAuODkgMiAyLS45IDItMiAyem0wIDEyYy0xLjEgMC0yLS44OS0yLTJzLjktMiAyLTIgMiAuODkgMiAyLS45IDItMiAyem02LTcuNWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41LjUuMjIuNS41LS4yMi41LS41LjV6TTE5IDNsLTYgNiAyIDIgNy03VjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udGVudC1wYXN0ZSI+PHBhdGggZD0iTTE5IDJoLTQuMThDMTQuNC44NCAxMy4zIDAgMTIgMGMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNyAxOEg1VjRoMnYzaDEwVjRoMnYxNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb3B5cmlnaHQiPjxwYXRoIGQ9Ik0xMC4wOCAxMC44NmMuMDUtLjMzLjE2LS42Mi4zLS44N3MuMzQtLjQ2LjU5LS42MmMuMjQtLjE1LjU0LS4yMi45MS0uMjMuMjMuMDEuNDQuMDUuNjMuMTMuMi4wOS4zOC4yMS41Mi4zNnMuMjUuMzMuMzQuNTMuMTMuNDIuMTQuNjRoMS43OWMtLjAyLS40Ny0uMTEtLjktLjI4LTEuMjlzLS40LS43My0uNy0xLjAxLS42Ni0uNS0xLjA4LS42Ni0uODgtLjIzLTEuMzktLjIzYy0uNjUgMC0xLjIyLjExLTEuNy4zNHMtLjg4LjUzLTEuMi45Mi0uNTYuODQtLjcxIDEuMzZTOCAxMS4yOSA4IDExLjg3di4yN2MwIC41OC4wOCAxLjEyLjIzIDEuNjRzLjM5Ljk3LjcxIDEuMzUuNzIuNjkgMS4yLjkxIDEuMDUuMzQgMS43LjM0Yy40NyAwIC45MS0uMDggMS4zMi0uMjNzLjc3LS4zNiAxLjA4LS42My41Ni0uNTguNzQtLjk0LjI5LS43NC4zLTEuMTVoLTEuNzljLS4wMS4yMS0uMDYuNC0uMTUuNThzLS4yMS4zMy0uMzYuNDYtLjMyLjIzLS41Mi4zYy0uMTkuMDctLjM5LjA5LS42LjEtLjM2LS4wMS0uNjYtLjA4LS44OS0uMjMtLjI1LS4xNi0uNDUtLjM3LS41OS0uNjJzLS4yNS0uNTUtLjMtLjg4LS4wOC0uNjctLjA4LTF2LS4yN2MwLS4zNS4wMy0uNjguMDgtMS4wMXpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JlYXRlIj48cGF0aCBkPSJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTIuMzQtMi4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyZWF0ZS1uZXctZm9sZGVyIj48cGF0aCBkPSJNMjAgNmgtOGwtMi0ySDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnptLTEgOGgtM3YzaC0ydi0zaC0zdi0yaDNWOWgydjNoM3YyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyZWRpdC1jYXJkIj48cGF0aCBkPSJNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2YzAtMS4xMS0uODktMi0yLTJ6bTAgMTRINHYtNmgxNnY2em0wLTEwSDRWNmgxNnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRhc2hib2FyZCI+PHBhdGggZD0iTTMgMTNoOFYzSDN2MTB6bTAgOGg4di02SDN2NnptMTAgMGg4VjExaC04djEwem0wLTE4djZoOFYzaC04eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRhdGUtcmFuZ2UiPjxwYXRoIGQ9Ik05IDExSDd2Mmgydi0yem00IDBoLTJ2Mmgydi0yem00IDBoLTJ2Mmgydi0yem0yLTdoLTFWMmgtMnYySDhWMkg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAyMGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOWgxNHYxMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJkZWxldGUiPjxwYXRoIGQ9Ik02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTE5IDRoLTMuNWwtMS0xaC01bC0xIDFINXYyaDE0VjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGVsZXRlLWZvcmV2ZXIiPjxwYXRoIGQ9Ik02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6bTIuNDYtNy4xMmwxLjQxLTEuNDFMMTIgMTIuNTlsMi4xMi0yLjEyIDEuNDEgMS40MUwxMy40MSAxNGwyLjEyIDIuMTItMS40MSAxLjQxTDEyIDE1LjQxbC0yLjEyIDIuMTItMS40MS0xLjQxTDEwLjU5IDE0bC0yLjEzLTIuMTJ6TTE1LjUgNGwtMS0xaC01bC0xIDFINXYyaDE0VjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGVsZXRlLXN3ZWVwIj48cGF0aCBkPSJNMTUgMTZoNHYyaC00em0wLThoN3YyaC03em0wIDRoNnYyaC02ek0zIDE4YzAgMS4xLjkgMiAyIDJoNmMxLjEgMCAyLS45IDItMlY4SDN2MTB6TTE0IDVoLTNsLTEtMUg2TDUgNUgydjJoMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGVzY3JpcHRpb24iPjxwYXRoIGQ9Ik0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTZIOHYtMmg4djJ6bTAtNEg4di0yaDh2MnptLTMtNVYzLjVMMTguNSA5SDEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRucyI+PHBhdGggZD0iTTIwIDEzSDRjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMXYtNmMwLS41NS0uNDUtMS0xLTF6TTcgMTljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyek0yMCAzSDRjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMVY0YzAtLjU1LS40NS0xLTEtMXpNNyA5Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJkb25lIj48cGF0aCBkPSJNOSAxNi4yTDQuOCAxMmwtMS40IDEuNEw5IDE5IDIxIDdsLTEuNC0xLjRMOSAxNi4yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRvbmUtYWxsIj48cGF0aCBkPSJNMTggN2wtMS40MS0xLjQxLTYuMzQgNi4zNCAxLjQxIDEuNDFMMTggN3ptNC4yNC0xLjQxTDExLjY2IDE2LjE3IDcuNDggMTJsLTEuNDEgMS40MUwxMS42NiAxOWwxMi0xMi0xLjQyLTEuNDF6TS40MSAxMy40MUw2IDE5bDEuNDEtMS40MUwxLjgzIDEyIC40MSAxMy40MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJkb251dC1sYXJnZSI+PHBhdGggZD0iTTExIDUuMDhWMmMtNSAuNS05IDQuODEtOSAxMHM0IDkuNSA5IDEwdi0zLjA4Yy0zLS40OC02LTMuNC02LTYuOTJzMy02LjQ0IDYtNi45MnpNMTguOTcgMTFIMjJjLS40Ny01LTQtOC41My05LTl2My4wOEMxNiA1LjUxIDE4LjU0IDggMTguOTcgMTF6TTEzIDE4LjkyVjIyYzUtLjQ3IDguNTMtNCA5LTloLTMuMDNjLS40MyAzLTIuOTcgNS40OS01Ljk3IDUuOTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZG9udXQtc21hbGwiPjxwYXRoIGQ9Ik0xMSA5LjE2VjJjLTUgLjUtOSA0Ljc5LTkgMTBzNCA5LjUgOSAxMHYtNy4xNmMtMS0uNDEtMi0xLjUyLTItMi44NHMxLTIuNDMgMi0yLjg0ek0xNC44NiAxMUgyMmMtLjQ4LTQuNzUtNC04LjUzLTktOXY3LjE2YzEgLjMgMS41Mi45OCAxLjg2IDEuODR6TTEzIDE0Ljg0VjIyYzUtLjQ3IDguNTItNC4yNSA5LTloLTcuMTRjLS4zNC44Ni0uODYgMS41NC0xLjg2IDEuODR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZHJhZnRzIj48cGF0aCBkPSJNMjEuOTkgOGMwLS43Mi0uMzctMS4zNS0uOTQtMS43TDEyIDEgMi45NSA2LjNDMi4zOCA2LjY1IDIgNy4yOCAyIDh2MTBjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMmwtLjAxLTEwek0xMiAxM0wzLjc0IDcuODQgMTIgM2w4LjI2IDQuODRMMTIgMTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZWplY3QiPjxwYXRoIGQ9Ik01IDE3aDE0djJINXptNy0xMkw1LjMzIDE1aDEzLjM0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImVycm9yIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJlcnJvci1vdXRsaW5lIj48cGF0aCBkPSJNMTEgMTVoMnYyaC0yem0wLThoMnY2aC0yem0uOTktNUM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV1cm8tc3ltYm9sIj48cGF0aCBkPSJNMTUgMTguNWMtMi41MSAwLTQuNjgtMS40Mi01Ljc2LTMuNUgxNXYtMkg4LjU4Yy0uMDUtLjMzLS4wOC0uNjYtLjA4LTFzLjAzLS42Ny4wOC0xSDE1VjlIOS4yNEMxMC4zMiA2LjkyIDEyLjUgNS41IDE1IDUuNWMxLjYxIDAgMy4wOS41OSA0LjIzIDEuNTdMMjEgNS4zQzE5LjQxIDMuODcgMTcuMyAzIDE1IDNjLTMuOTIgMC03LjI0IDIuNTEtOC40OCA2SDN2MmgzLjA2Yy0uMDQuMzMtLjA2LjY2LS4wNiAxIDAgLjM0LjAyLjY3LjA2IDFIM3YyaDMuNTJjMS4yNCAzLjQ5IDQuNTYgNiA4LjQ4IDYgMi4zMSAwIDQuNDEtLjg3IDYtMi4zbC0xLjc4LTEuNzdjLTEuMTMuOTgtMi42IDEuNTctNC4yMiAxLjU3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV2ZW50Ij48cGF0aCBkPSJNMTcgMTJoLTV2NWg1di01ek0xNiAxdjJIOFYxSDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDE5YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJoLTFWMWgtMnptMyAxOEg1VjhoMTR2MTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXZlbnQtc2VhdCI+PHBhdGggZD0iTTQgMTh2M2gzdi0zaDEwdjNoM3YtNkg0em0xNS04aDN2M2gtM3pNMiAxMGgzdjNIMnptMTUgM0g3VjVjMC0xLjEuOS0yIDItMmg2YzEuMSAwIDIgLjkgMiAydjh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhpdC10by1hcHAiPjxwYXRoIGQ9Ik0xMC4wOSAxNS41OUwxMS41IDE3bDUtNS01LTUtMS40MSAxLjQxTDEyLjY3IDExSDN2Mmg5LjY3bC0yLjU4IDIuNTl6TTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjRoMlY1aDE0djE0SDV2LTRIM3Y0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhwYW5kLWxlc3MiPjxwYXRoIGQ9Ik0xMiA4bC02IDYgMS40MSAxLjQxTDEyIDEwLjgzbDQuNTkgNC41OEwxOCAxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJleHBhbmQtbW9yZSI+PHBhdGggZD0iTTE2LjU5IDguNTlMMTIgMTMuMTcgNy40MSA4LjU5IDYgMTBsNiA2IDYtNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJleHBsb3JlIj48cGF0aCBkPSJNMTIgMTAuOWMtLjYxIDAtMS4xLjQ5LTEuMSAxLjFzLjQ5IDEuMSAxLjEgMS4xYy42MSAwIDEuMS0uNDkgMS4xLTEuMXMtLjQ5LTEuMS0xLjEtMS4xek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0yLjE5IDEyLjE5TDYgMThsMy44MS04LjE5TDE4IDZsLTMuODEgOC4xOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJleHRlbnNpb24iPjxwYXRoIGQ9Ik0yMC41IDExSDE5VjdjMC0xLjEtLjktMi0yLTJoLTRWMy41QzEzIDIuMTIgMTEuODggMSAxMC41IDFTOCAyLjEyIDggMy41VjVINGMtMS4xIDAtMS45OS45LTEuOTkgMnYzLjhIMy41YzEuNDkgMCAyLjcgMS4yMSAyLjcgMi43cy0xLjIxIDIuNy0yLjcgMi43SDJWMjBjMCAxLjEuOSAyIDIgMmgzLjh2LTEuNWMwLTEuNDkgMS4yMS0yLjcgMi43LTIuNyAxLjQ5IDAgMi43IDEuMjEgMi43IDIuN1YyMkgxN2MxLjEgMCAyLS45IDItMnYtNGgxLjVjMS4zOCAwIDIuNS0xLjEyIDIuNS0yLjVTMjEuODggMTEgMjAuNSAxMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmYWNlIj48cGF0aCBkPSJNOSAxMS43NWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVzLjU2IDEuMjUgMS4yNSAxLjI1IDEuMjUtLjU2IDEuMjUtMS4yNS0uNTYtMS4yNS0xLjI1LTEuMjV6bTYgMGMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVzLjU2IDEuMjUgMS4yNSAxLjI1IDEuMjUtLjU2IDEuMjUtMS4yNS0uNTYtMS4yNS0xLjI1LTEuMjV6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04IDAtLjI5LjAyLS41OC4wNS0uODYgMi4zNi0xLjA1IDQuMjMtMi45OCA1LjIxLTUuMzdDMTEuMDcgOC4zMyAxNC4wNSAxMCAxNy40MiAxMGMuNzggMCAxLjUzLS4wOSAyLjI1LS4yNi4yMS43MS4zMyAxLjQ3LjMzIDIuMjYgMCA0LjQxLTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmF2b3JpdGUiPjxwYXRoIGQ9Ik0xMiAyMS4zNWwtMS40NS0xLjMyQzUuNCAxNS4zNiAyIDEyLjI4IDIgOC41IDIgNS40MiA0LjQyIDMgNy41IDNjMS43NCAwIDMuNDEuODEgNC41IDIuMDlDMTMuMDkgMy44MSAxNC43NiAzIDE2LjUgMyAxOS41OCAzIDIyIDUuNDIgMjIgOC41YzAgMy43OC0zLjQgNi44Ni04LjU1IDExLjU0TDEyIDIxLjM1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZhdm9yaXRlLWJvcmRlciI+PHBhdGggZD0iTTE2LjUgM2MtMS43NCAwLTMuNDEuODEtNC41IDIuMDlDMTAuOTEgMy44MSA5LjI0IDMgNy41IDMgNC40MiAzIDIgNS40MiAyIDguNWMwIDMuNzggMy40IDYuODYgOC41NSAxMS41NEwxMiAyMS4zNWwxLjQ1LTEuMzJDMTguNiAxNS4zNiAyMiAxMi4yOCAyMiA4LjUgMjIgNS40MiAxOS41OCAzIDE2LjUgM3ptLTQuNCAxNS41NWwtLjEuMS0uMS0uMUM3LjE0IDE0LjI0IDQgMTEuMzkgNCA4LjUgNCA2LjUgNS41IDUgNy41IDVjMS41NCAwIDMuMDQuOTkgMy41NyAyLjM2aDEuODdDMTMuNDYgNS45OSAxNC45NiA1IDE2LjUgNWMyIDAgMy41IDEuNSAzLjUgMy41IDAgMi44OS0zLjE0IDUuNzQtNy45IDEwLjA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZlZWRiYWNrIj48cGF0aCBkPSJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDEyaC0ydi0yaDJ2MnptMC00aC0yVjZoMnY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbGUtZG93bmxvYWQiPjxwYXRoIGQ9Ik0xOSA5aC00VjNIOXY2SDVsNyA3IDctN3pNNSAxOHYyaDE0di0ySDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsZS11cGxvYWQiPjxwYXRoIGQ9Ik05IDE2aDZ2LTZoNGwtNy03LTcgN2g0em0tNCAyaDE0djJINXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItbGlzdCI+PHBhdGggZD0iTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbmQtaW4tcGFnZSI+PHBhdGggZD0iTTIwIDE5LjU5VjhsLTYtNkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjLjQ1IDAgLjg1LS4xNSAxLjE5LS40bC00LjQzLTQuNDNjLS44LjUyLTEuNzQuODMtMi43Ni44My0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDVjMCAxLjAyLS4zMSAxLjk2LS44MyAyLjc1TDIwIDE5LjU5ek05IDEzYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTMtMS4zNC0zLTMtMy0zIDEuMzQtMyAzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbmQtcmVwbGFjZSI+PHBhdGggZD0iTTExIDZjMS4zOCAwIDIuNjMuNTYgMy41NCAxLjQ2TDEyIDEwaDZWNGwtMi4wNSAyLjA1QzE0LjY4IDQuNzggMTIuOTMgNCAxMSA0Yy0zLjUzIDAtNi40MyAyLjYxLTYuOTIgNkg2LjFjLjQ2LTIuMjggMi40OC00IDQuOS00em01LjY0IDkuMTRjLjY2LS45IDEuMTItMS45NyAxLjI4LTMuMTRIMTUuOWMtLjQ2IDIuMjgtMi40OCA0LTQuOSA0LTEuMzggMC0yLjYzLS41Ni0zLjU0LTEuNDZMMTAgMTJINHY2bDIuMDUtMi4wNUM3LjMyIDE3LjIyIDkuMDcgMTggMTEgMThjMS41NSAwIDIuOTgtLjUxIDQuMTQtMS4zNkwyMCAyMS40OSAyMS40OSAyMGwtNC44NS00Ljg2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbmdlcnByaW50Ij48cGF0aCBkPSJNMTcuODEgNC40N2MtLjA4IDAtLjE2LS4wMi0uMjMtLjA2QzE1LjY2IDMuNDIgMTQgMyAxMi4wMSAzYy0xLjk4IDAtMy44Ni40Ny01LjU3IDEuNDEtLjI0LjEzLS41NC4wNC0uNjgtLjItLjEzLS4yNC0uMDQtLjU1LjItLjY4QzcuODIgMi41MiA5Ljg2IDIgMTIuMDEgMmMyLjEzIDAgMy45OS40NyA2LjAzIDEuNTIuMjUuMTMuMzQuNDMuMjEuNjctLjA5LjE4LS4yNi4yOC0uNDQuMjh6TTMuNSA5LjcyYy0uMSAwLS4yLS4wMy0uMjktLjA5LS4yMy0uMTYtLjI4LS40Ny0uMTItLjcuOTktMS40IDIuMjUtMi41IDMuNzUtMy4yN0M5Ljk4IDQuMDQgMTQgNC4wMyAxNy4xNSA1LjY1YzEuNS43NyAyLjc2IDEuODYgMy43NSAzLjI1LjE2LjIyLjExLjU0LS4xMi43LS4yMy4xNi0uNTQuMTEtLjctLjEyLS45LTEuMjYtMi4wNC0yLjI1LTMuMzktMi45NC0yLjg3LTEuNDctNi41NC0xLjQ3LTkuNC4wMS0xLjM2LjctMi41IDEuNy0zLjQgMi45Ni0uMDguMTQtLjIzLjIxLS4zOS4yMXptNi4yNSAxMi4wN2MtLjEzIDAtLjI2LS4wNS0uMzUtLjE1LS44Ny0uODctMS4zNC0xLjQzLTIuMDEtMi42NC0uNjktMS4yMy0xLjA1LTIuNzMtMS4wNS00LjM0IDAtMi45NyAyLjU0LTUuMzkgNS42Ni01LjM5czUuNjYgMi40MiA1LjY2IDUuMzljMCAuMjgtLjIyLjUtLjUuNXMtLjUtLjIyLS41LS41YzAtMi40Mi0yLjA5LTQuMzktNC42Ni00LjM5LTIuNTcgMC00LjY2IDEuOTctNC42NiA0LjM5IDAgMS40NC4zMiAyLjc3LjkzIDMuODUuNjQgMS4xNSAxLjA4IDEuNjQgMS44NSAyLjQyLjE5LjIuMTkuNTEgMCAuNzEtLjExLjEtLjI0LjE1LS4zNy4xNXptNy4xNy0xLjg1Yy0xLjE5IDAtMi4yNC0uMy0zLjEtLjg5LTEuNDktMS4wMS0yLjM4LTIuNjUtMi4zOC00LjM5IDAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41YzAgMS40MS43MiAyLjc0IDEuOTQgMy41Ni43MS40OCAxLjU0LjcxIDIuNTQuNzEuMjQgMCAuNjQtLjAzIDEuMDQtLjEuMjctLjA1LjUzLjEzLjU4LjQxLjA1LjI3LS4xMy41My0uNDEuNTgtLjU3LjExLTEuMDcuMTItMS4yMS4xMnpNMTQuOTEgMjJjLS4wNCAwLS4wOS0uMDEtLjEzLS4wMi0xLjU5LS40NC0yLjYzLTEuMDMtMy43Mi0yLjEtMS40LTEuMzktMi4xNy0zLjI0LTIuMTctNS4yMiAwLTEuNjIgMS4zOC0yLjk0IDMuMDgtMi45NCAxLjcgMCAzLjA4IDEuMzIgMy4wOCAyLjk0IDAgMS4wNy45MyAxLjk0IDIuMDggMS45NHMyLjA4LS44NyAyLjA4LTEuOTRjMC0zLjc3LTMuMjUtNi44My03LjI1LTYuODMtMi44NCAwLTUuNDQgMS41OC02LjYxIDQuMDMtLjM5LjgxLS41OSAxLjc2LS41OSAyLjggMCAuNzguMDcgMi4wMS42NyAzLjYxLjEuMjYtLjAzLjU1LS4yOS42NC0uMjYuMS0uNTUtLjA0LS42NC0uMjktLjQ5LTEuMzEtLjczLTIuNjEtLjczLTMuOTYgMC0xLjIuMjMtMi4yOS42OC0zLjI0IDEuMzMtMi43OSA0LjI4LTQuNiA3LjUxLTQuNiA0LjU1IDAgOC4yNSAzLjUxIDguMjUgNy44MyAwIDEuNjItMS4zOCAyLjk0LTMuMDggMi45NHMtMy4wOC0xLjMyLTMuMDgtMi45NGMwLTEuMDctLjkzLTEuOTQtMi4wOC0xLjk0cy0yLjA4Ljg3LTIuMDggMS45NGMwIDEuNzEuNjYgMy4zMSAxLjg3IDQuNTEuOTUuOTQgMS44NiAxLjQ2IDMuMjcgMS44NS4yNy4wNy40Mi4zNS4zNS42MS0uMDUuMjMtLjI2LjM4LS40Ny4zOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaXJzdC1wYWdlIj48cGF0aCBkPSJNMTguNDEgMTYuNTlMMTMuODIgMTJsNC41OS00LjU5TDE3IDZsLTYgNiA2IDZ6TTYgNmgydjEySDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxhZyI+PHBhdGggZD0iTTE0LjQgNkwxNCA0SDV2MTdoMnYtN2g1LjZsLjQgMmg3VjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxpZ2h0LWxhbmQiPjxwYXRoIGQ9Ik0yLjUgMTloMTl2MmgtMTl6bTcuMTgtNS43M2w0LjM1IDEuMTYgNS4zMSAxLjQyYy44LjIxIDEuNjItLjI2IDEuODQtMS4wNi4yMS0uOC0uMjYtMS42Mi0xLjA2LTEuODRsLTUuMzEtMS40Mi0yLjc2LTkuMDJMMTAuMTIgMnY4LjI4TDUuMTUgOC45NWwtLjkzLTIuMzItMS40NS0uMzl2NS4xN2wxLjYuNDMgNS4zMSAxLjQzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZsaWdodC10YWtlb2ZmIj48cGF0aCBkPSJNMi41IDE5aDE5djJoLTE5em0xOS41Ny05LjM2Yy0uMjEtLjgtMS4wNC0xLjI4LTEuODQtMS4wNkwxNC45MiAxMGwtNi45LTYuNDMtMS45My41MSA0LjE0IDcuMTctNC45NyAxLjMzLTEuOTctMS41NC0xLjQ1LjM5IDEuODIgMy4xNi43NyAxLjMzIDEuNi0uNDMgNS4zMS0xLjQyIDQuMzUtMS4xNkwyMSAxMS40OWMuODEtLjIzIDEuMjgtMS4wNSAxLjA3LTEuODV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxpcC10by1iYWNrIj48cGF0aCBkPSJNOSA3SDd2MmgyVjd6bTAgNEg3djJoMnYtMnptMC04Yy0xLjExIDAtMiAuOS0yIDJoMlYzem00IDEyaC0ydjJoMnYtMnptNi0xMnYyaDJjMC0xLjEtLjktMi0yLTJ6bS02IDBoLTJ2MmgyVjN6TTkgMTd2LTJIN2MwIDEuMS44OSAyIDIgMnptMTAtNGgydi0yaC0ydjJ6bTAtNGgyVjdoLTJ2MnptMCA4YzEuMSAwIDItLjkgMi0yaC0ydjJ6TTUgN0gzdjEyYzAgMS4xLjg5IDIgMiAyaDEydi0ySDVWN3ptMTAtMmgyVjNoLTJ2MnptMCAxMmgydi0yaC0ydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxpcC10by1mcm9udCI+PHBhdGggZD0iTTMgMTNoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMiA0di0ySDNjMCAxLjEuODkgMiAyIDJ6TTMgOWgyVjdIM3Yyem0xMiAxMmgydi0yaC0ydjJ6bTQtMThIOWMtMS4xMSAwLTIgLjktMiAydjEwYzAgMS4xLjg5IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTJIOVY1aDEwdjEwem0tOCA2aDJ2LTJoLTJ2MnptLTQgMGgydi0ySDd2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmb2xkZXIiPjxwYXRoIGQ9Ik0xMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJoLThsLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmb2xkZXItb3BlbiI+PHBhdGggZD0iTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWOGgxNnYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmb2xkZXItc2hhcmVkIj48cGF0aCBkPSJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS01IDNjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yem00IDhoLTh2LTFjMC0xLjMzIDIuNjctMiA0LTJzNCAuNjcgNCAydjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZm9udC1kb3dubG9hZCI+PHBhdGggZD0iTTkuOTMgMTMuNWg0LjE0TDEyIDcuOTh6TTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNC4wNSAxNi41bC0xLjE0LTNIOS4xN2wtMS4xMiAzSDUuOTZsNS4xMS0xM2gxLjg2bDUuMTEgMTNoLTIuMDl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZm9yd2FyZCI+PHBhdGggZD0iTTEyIDhWNGw4IDgtOCA4di00SDRWOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmdWxsc2NyZWVuIj48cGF0aCBkPSJNNyAxNEg1djVoNXYtMkg3di0zem0tMi00aDJWN2gzVjVINXY1em0xMiA3aC0zdjJoNXYtNWgtMnYzek0xNCA1djJoM3YzaDJWNWgtNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmdWxsc2NyZWVuLWV4aXQiPjxwYXRoIGQ9Ik01IDE2aDN2M2gydi01SDV2MnptMy04SDV2Mmg1VjVIOHYzem02IDExaDJ2LTNoM3YtMmgtNXY1em0yLTExVjVoLTJ2NWg1VjhoLTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZy10cmFuc2xhdGUiPjxwYXRoIGQ9Ik0yMCA1aC05LjEyTDEwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTNjMCAxLjEuOSAyIDIgMmg3bDEgM2g4YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6TTcuMTcgMTQuNTljLTIuMjUgMC00LjA5LTEuODMtNC4wOS00LjA5czEuODMtNC4wOSA0LjA5LTQuMDljMS4wNCAwIDEuOTkuMzcgMi43NCAxLjA3bC4wNy4wNi0xLjIzIDEuMTgtLjA2LS4wNWMtLjI5LS4yNy0uNzgtLjU5LTEuNTItLjU5LTEuMzEgMC0yLjM4IDEuMDktMi4zOCAyLjQyczEuMDcgMi40MiAyLjM4IDIuNDJjMS4zNyAwIDEuOTYtLjg3IDIuMTItMS40Nkg3LjA4VjkuOTFoMy45NWwuMDEuMDdjLjA0LjIxLjA1LjQuMDUuNjEgMCAyLjM1LTEuNjEgNC0zLjkyIDR6bTYuMDMtMS43MWMuMzMuNi43NCAxLjE4IDEuMTkgMS43bC0uNTQuNTMtLjY1LTIuMjN6bS43Ny0uNzZoLS45OWwtLjMxLTEuMDRoMy45OXMtLjM0IDEuMzEtMS41NiAyLjc0Yy0uNTItLjYyLS44OS0xLjIzLTEuMTMtMS43ek0yMSAyMGMwIC41NS0uNDUgMS0xIDFoLTdsMi0yLS44MS0yLjc3LjkyLS45MkwxNy43OSAxOGwuNzMtLjczLTIuNzEtMi42OGMuOS0xLjAzIDEuNi0yLjI1IDEuOTItMy41MUgxOXYtMS4wNGgtMy42NFY5aC0xLjA0djEuMDRoLTEuOTZMMTEuMTggNkgyMGMuNTUgMCAxIC40NSAxIDF2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ2F2ZWwiPjxwYXRoIGQ9Ik0xIDIxaDEydjJIMXpNNS4yNDUgOC4wN2wyLjgzLTIuODI3IDE0LjE0IDE0LjE0Mi0yLjgyOCAyLjgyOHpNMTIuMzE3IDFsNS42NTcgNS42NTYtMi44MyAyLjgzLTUuNjU0LTUuNjZ6TTMuODI1IDkuNDg1bDUuNjU3IDUuNjU3LTIuODI4IDIuODI4LTUuNjU3LTUuNjU3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imdlc3R1cmUiPjxwYXRoIGQ9Ik00LjU5IDYuODljLjctLjcxIDEuNC0xLjM1IDEuNzEtMS4yMi41LjIgMCAxLjAzLS4zIDEuNTItLjI1LjQyLTIuODYgMy44OS0yLjg2IDYuMzEgMCAxLjI4LjQ4IDIuMzQgMS4zNCAyLjk4Ljc1LjU2IDEuNzQuNzMgMi42NC40NiAxLjA3LS4zMSAxLjk1LTEuNCAzLjA2LTIuNzcgMS4yMS0xLjQ5IDIuODMtMy40NCA0LjA4LTMuNDQgMS42MyAwIDEuNjUgMS4wMSAxLjc2IDEuNzktMy43OC42NC01LjM4IDMuNjctNS4zOCA1LjM3IDAgMS43IDEuNDQgMy4wOSAzLjIxIDMuMDkgMS42MyAwIDQuMjktMS4zMyA0LjY5LTYuMUgyMXYtMi41aC0yLjQ3Yy0uMTUtMS42NS0xLjA5LTQuMi00LjAzLTQuMi0yLjI1IDAtNC4xOCAxLjkxLTQuOTQgMi44NC0uNTguNzMtMi4wNiAyLjQ4LTIuMjkgMi43Mi0uMjUuMy0uNjguODQtMS4xMS44NC0uNDUgMC0uNzItLjgzLS4zNi0xLjkyLjM1LTEuMDkgMS40LTIuODYgMS44NS0zLjUyLjc4LTEuMTQgMS4zLTEuOTIgMS4zLTMuMjhDOC45NSAzLjY5IDcuMzEgMyA2LjQ0IDMgNS4xMiAzIDMuOTcgNCAzLjcyIDQuMjVjLS4zNi4zNi0uNjYuNjYtLjg4LjkzbDEuNzUgMS43MXptOS4yOSAxMS42NmMtLjMxIDAtLjc0LS4yNi0uNzQtLjcyIDAtLjYuNzMtMi4yIDIuODctMi43Ni0uMyAyLjY5LTEuNDMgMy40OC0yLjEzIDMuNDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ2V0LWFwcCI+PHBhdGggZD0iTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXoiPjwvcGF0aD48L2c+CjxnIGlkPSJnaWYiPjxwYXRoIGQ9Ik0xMS41IDlIMTN2NmgtMS41ek05IDlINmMtLjYgMC0xIC41LTEgMXY0YzAgLjUuNCAxIDEgMWgzYy42IDAgMS0uNSAxLTF2LTJIOC41djEuNWgtMnYtM0gxMFYxMGMwLS41LS40LTEtMS0xem0xMCAxLjVWOWgtNC41djZIMTZ2LTJoMnYtMS41aC0ydi0xeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyYWRlIj48cGF0aCBkPSJNMTIgMTcuMjdMMTguMTggMjFsLTEuNjQtNy4wM0wyMiA5LjI0bC03LjE5LS42MUwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ3JvdXAtd29yayI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTggMTcuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6TTkuNSA4YzAtMS4zOCAxLjEyLTIuNSAyLjUtMi41czIuNSAxLjEyIDIuNSAyLjUtMS4xMiAyLjUtMi41IDIuNVM5LjUgOS4zOCA5LjUgOHptNi41IDkuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGVscCI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTdoLTJ2LTJoMnYyem0yLjA3LTcuNzVsLS45LjkyQzEzLjQ1IDEyLjkgMTMgMTMuNSAxMyAxNWgtMnYtLjVjMC0xLjEuNDUtMi4xIDEuMTctMi44M2wxLjI0LTEuMjZjLjM3LS4zNi41OS0uODYuNTktMS40MSAwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJIOGMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0YzAgLjg4LS4zNiAxLjY4LS45MyAyLjI1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImhlbHAtb3V0bGluZSI+PHBhdGggZD0iTTExIDE4aDJ2LTJoLTJ2MnptMS0xNkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTAtMTRjLTIuMjEgMC00IDEuNzktNCA0aDJjMC0xLjEuOS0yIDItMnMyIC45IDIgMmMwIDItMyAxLjc1LTMgNWgyYzAtMi4yNSAzLTIuNSAzLTUgMC0yLjIxLTEuNzktNC00LTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGlnaGxpZ2h0LW9mZiI+PHBhdGggZD0iTTE0LjU5IDhMMTIgMTAuNTkgOS40MSA4IDggOS40MSAxMC41OSAxMiA4IDE0LjU5IDkuNDEgMTYgMTIgMTMuNDEgMTQuNTkgMTYgMTYgMTQuNTkgMTMuNDEgMTIgMTYgOS40MSAxNC41OSA4ek0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJoaXN0b3J5Ij48cGF0aCBkPSJNMTMgM2MtNC45NyAwLTkgNC4wMy05IDlIMWwzLjg5IDMuODkuMDcuMTRMOSAxMkg2YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS45MyAwLTMuNjgtLjc5LTQuOTQtMi4wNmwtMS40MiAxLjQyQzguMjcgMTkuOTkgMTAuNTEgMjEgMTMgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bS0xIDV2NWw0LjI4IDIuNTQuNzItMS4yMS0zLjUtMi4wOFY4SDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImhvbWUiPjxwYXRoIGQ9Ik0xMCAyMHYtNmg0djZoNXYtOGgzTDEyIDMgMiAxMmgzdjh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaG91cmdsYXNzLWVtcHR5Ij48cGF0aCBkPSJNNiAydjZoLjAxTDYgOC4wMSAxMCAxMmwtNCA0IC4wMS4wMUg2VjIyaDEydi01Ljk5aC0uMDFMMTggMTZsLTQtNCA0LTMuOTktLjAxLS4wMUgxOFYySDZ6bTEwIDE0LjVWMjBIOHYtMy41bDQtNCA0IDR6bS00LTVsLTQtNFY0aDh2My41bC00IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaG91cmdsYXNzLWZ1bGwiPjxwYXRoIGQ9Ik02IDJ2NmguMDFMNiA4LjAxIDEwIDEybC00IDQgLjAxLjAxSDZWMjJoMTJ2LTUuOTloLS4wMUwxOCAxNmwtNC00IDQtMy45OS0uMDEtLjAxSDE4VjJINnoiPjwvcGF0aD48L2c+CjxnIGlkPSJodHRwIj48cGF0aCBkPSJNNC41IDExaC0yVjlIMXY2aDEuNXYtMi41aDJWMTVINlY5SDQuNXYyem0yLjUtLjVoMS41VjE1SDEwdi00LjVoMS41VjlIN3YxLjV6bTUuNSAwSDE0VjE1aDEuNXYtNC41SDE3VjloLTQuNXYxLjV6bTktMS41SDE4djZoMS41di0yaDJjLjggMCAxLjUtLjcgMS41LTEuNXYtMWMwLS44LS43LTEuNS0xLjUtMS41em0wIDIuNWgtMnYtMWgydjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaHR0cHMiPjxwYXRoIGQ9Ik0xOCA4aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bS02IDljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem0zLjEtOUg4LjlWNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMSAxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImltcG9ydGFudC1kZXZpY2VzIj48cGF0aCBkPSJNMjMgMTEuMDFMMTggMTFjLS41NSAwLTEgLjQ1LTEgMXY5YzAgLjU1LjQ1IDEgMSAxaDVjLjU1IDAgMS0uNDUgMS0xdi05YzAtLjU1LS40NS0uOTktMS0uOTl6TTIzIDIwaC01di03aDV2N3pNMjAgMkgyQy44OSAyIDAgMi44OSAwIDR2MTJjMCAxLjEuODkgMiAyIDJoN3YySDd2Mmg4di0yaC0ydi0yaDJ2LTJIMlY0aDE4djVoMlY0YzAtMS4xMS0uOS0yLTItMnptLTguMDMgN0wxMSA2bC0uOTcgM0g3bDIuNDcgMS43Ni0uOTQgMi45MSAyLjQ3LTEuOCAyLjQ3IDEuOC0uOTQtMi45MUwxNSA5aC0zLjAzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImluYm94Ij48cGF0aCBkPSJNMTkgM0g0Ljk5Yy0xLjExIDAtMS45OC44OS0xLjk4IDJMMyAxOWMwIDEuMS44OCAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlY1YzAtMS4xMS0uOS0yLTItMnptMCAxMmgtNGMwIDEuNjYtMS4zNSAzLTMgM3MtMy0xLjM0LTMtM0g0Ljk5VjVIMTl2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW5kZXRlcm1pbmF0ZS1jaGVjay1ib3giPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTIgMTBIN3YtMmgxMHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImluZm8iPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi02aDJ2NnptMC04aC0yVjdoMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImluZm8tb3V0bGluZSI+PHBhdGggZD0iTTExIDE3aDJ2LTZoLTJ2NnptMS0xNUM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6TTExIDloMlY3aC0ydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW5wdXQiPjxwYXRoIGQ9Ik0yMSAzLjAxSDNjLTEuMSAwLTIgLjktMiAyVjloMlY0Ljk5aDE4djE0LjAzSDNWMTVIMXY0LjAxYzAgMS4xLjkgMS45OCAyIDEuOThoMThjMS4xIDAgMi0uODggMi0xLjk4di0xNGMwLTEuMTEtLjktMi0yLTJ6TTExIDE2bDQtNC00LTR2M0gxdjJoMTB2M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJpbnZlcnQtY29sb3JzIj48cGF0aCBkPSJNMTcuNjYgNy45M0wxMiAyLjI3IDYuMzQgNy45M2MtMy4xMiAzLjEyLTMuMTIgOC4xOSAwIDExLjMxQzcuOSAyMC44IDkuOTUgMjEuNTggMTIgMjEuNThjMi4wNSAwIDQuMS0uNzggNS42Ni0yLjM0IDMuMTItMy4xMiAzLjEyLTguMTkgMC0xMS4zMXpNMTIgMTkuNTljLTEuNiAwLTMuMTEtLjYyLTQuMjQtMS43NkM2LjYyIDE2LjY5IDYgMTUuMTkgNiAxMy41OXMuNjItMy4xMSAxLjc2LTQuMjRMMTIgNS4xdjE0LjQ5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxhYmVsIj48cGF0aCBkPSJNMTcuNjMgNS44NEMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNUw1IDUuMDFDMy45IDUuMDEgMyA1LjkgMyA3djEwYzAgMS4xLjkgMS45OSAyIDEuOTlMMTYgMTljLjY3IDAgMS4yNy0uMzMgMS42My0uODRMMjIgMTJsLTQuMzctNi4xNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYWJlbC1vdXRsaW5lIj48cGF0aCBkPSJNMTcuNjMgNS44NEMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNUw1IDUuMDFDMy45IDUuMDEgMyA1LjkgMyA3djEwYzAgMS4xLjkgMS45OSAyIDEuOTlMMTYgMTljLjY3IDAgMS4yNy0uMzMgMS42My0uODRMMjIgMTJsLTQuMzctNi4xNnpNMTYgMTdINVY3aDExbDMuNTUgNUwxNiAxN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsYW5ndWFnZSI+PHBhdGggZD0iTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6bTYuOTMgNmgtMi45NWMtLjMyLTEuMjUtLjc4LTIuNDUtMS4zOC0zLjU2IDEuODQuNjMgMy4zNyAxLjkxIDQuMzMgMy41NnpNMTIgNC4wNGMuODMgMS4yIDEuNDggMi41MyAxLjkxIDMuOTZoLTMuODJjLjQzLTEuNDMgMS4wOC0yLjc2IDEuOTEtMy45NnpNNC4yNiAxNEM0LjEgMTMuMzYgNCAxMi42OSA0IDEycy4xLTEuMzYuMjYtMmgzLjM4Yy0uMDguNjYtLjE0IDEuMzItLjE0IDIgMCAuNjguMDYgMS4zNC4xNCAySDQuMjZ6bS44MiAyaDIuOTVjLjMyIDEuMjUuNzggMi40NSAxLjM4IDMuNTYtMS44NC0uNjMtMy4zNy0xLjktNC4zMy0zLjU2em0yLjk1LThINS4wOGMuOTYtMS42NiAyLjQ5LTIuOTMgNC4zMy0zLjU2QzguODEgNS41NSA4LjM1IDYuNzUgOC4wMyA4ek0xMiAxOS45NmMtLjgzLTEuMi0xLjQ4LTIuNTMtMS45MS0zLjk2aDMuODJjLS40MyAxLjQzLTEuMDggMi43Ni0xLjkxIDMuOTZ6TTE0LjM0IDE0SDkuNjZjLS4wOS0uNjYtLjE2LTEuMzItLjE2LTIgMC0uNjguMDctMS4zNS4xNi0yaDQuNjhjLjA5LjY1LjE2IDEuMzIuMTYgMiAwIC42OC0uMDcgMS4zNC0uMTYgMnptLjI1IDUuNTZjLjYtMS4xMSAxLjA2LTIuMzEgMS4zOC0zLjU2aDIuOTVjLS45NiAxLjY1LTIuNDkgMi45My00LjMzIDMuNTZ6TTE2LjM2IDE0Yy4wOC0uNjYuMTQtMS4zMi4xNC0yIDAtLjY4LS4wNi0xLjM0LS4xNC0yaDMuMzhjLjE2LjY0LjI2IDEuMzEuMjYgMnMtLjEgMS4zNi0uMjYgMmgtMy4zOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYXN0LXBhZ2UiPjxwYXRoIGQ9Ik01LjU5IDcuNDFMMTAuMTggMTJsLTQuNTkgNC41OUw3IDE4bDYtNi02LTZ6TTE2IDZoMnYxMmgtMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYXVuY2giPjxwYXRoIGQ9Ik0xOSAxOUg1VjVoN1YzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsaWdodGJ1bGItb3V0bGluZSI+PHBhdGggZD0iTTkgMjFjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTFIOXYxem0zLTE5QzguMTQgMiA1IDUuMTQgNSA5YzAgMi4zOCAxLjE5IDQuNDcgMyA1Ljc0VjE3YzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xdi0yLjI2YzEuODEtMS4yNyAzLTMuMzYgMy01Ljc0IDAtMy44Ni0zLjE0LTctNy03em0yLjg1IDExLjFsLS44NS42VjE2aC00di0yLjNsLS44NS0uNkM3LjggMTIuMTYgNyAxMC42MyA3IDljMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWMwIDEuNjMtLjggMy4xNi0yLjE1IDQuMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsaW5lLXN0eWxlIj48cGF0aCBkPSJNMyAxNmg1di0ySDN2MnptNi41IDBoNXYtMmgtNXYyem02LjUgMGg1di0yaC01djJ6TTMgMjBoMnYtMkgzdjJ6bTQgMGgydi0ySDd2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnpNMyAxMmg4di0ySDN2MnptMTAgMGg4di0yaC04djJ6TTMgNHY0aDE4VjRIM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsaW5lLXdlaWdodCI+PHBhdGggZD0iTTMgMTdoMTh2LTJIM3Yyem0wIDNoMTh2LTFIM3Yxem0wLTdoMTh2LTNIM3Yzem0wLTl2NGgxOFY0SDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibGluayI+PHBhdGggZD0iTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTggMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxpc3QiPjxwYXRoIGQ9Ik0zIDEzaDJ2LTJIM3Yyem0wIDRoMnYtMkgzdjJ6bTAtOGgyVjdIM3Yyem00IDRoMTR2LTJIN3Yyem0wIDRoMTR2LTJIN3Yyek03IDd2MmgxNFY3SDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9jayI+PHBhdGggZD0iTTE4IDhoLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2djJINmMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlYxMGMwLTEuMS0uOS0yLTItMnptLTYgOWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTMuMS05SDguOVY2YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xIDEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xdjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9jay1vcGVuIj48cGF0aCBkPSJNMTIgMTdjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem02LTloLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2aDEuOWMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMSAxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bTAgMTJINlYxMGgxMnYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb2NrLW91dGxpbmUiPjxwYXRoIGQ9Ik0xMiAxN2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYtOWgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yek04LjkgNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMXMzLjEgMS4zOSAzLjEgMy4xdjJIOC45VjZ6TTE4IDIwSDZWMTBoMTJ2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG93LXByaW9yaXR5Ij48cGF0aCBkPSJNMTQgNWg4djJoLTh6bTAgNS41aDh2MmgtOHptMCA1LjVoOHYyaC04ek0yIDExLjVDMiAxNS4wOCA0LjkyIDE4IDguNSAxOEg5djJsMy0zLTMtM3YyaC0uNUM2LjAyIDE2IDQgMTMuOTggNCAxMS41UzYuMDIgNyA4LjUgN0gxMlY1SDguNUM0LjkyIDUgMiA3LjkyIDIgMTEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb3lhbHR5Ij48cGF0aCBkPSJNMjEuNDEgMTEuNThsLTktOUMxMi4wNSAyLjIyIDExLjU1IDIgMTEgMkg0Yy0xLjEgMC0yIC45LTIgMnY3YzAgLjU1LjIyIDEuMDUuNTkgMS40Mmw5IDljLjM2LjM2Ljg2LjU4IDEuNDEuNTguNTUgMCAxLjA1LS4yMiAxLjQxLS41OWw3LTdjLjM3LS4zNi41OS0uODYuNTktMS40MSAwLS41NS0uMjMtMS4wNi0uNTktMS40MnpNNS41IDdDNC42NyA3IDQgNi4zMyA0IDUuNVM0LjY3IDQgNS41IDQgNyA0LjY3IDcgNS41IDYuMzMgNyA1LjUgN3ptMTEuNzcgOC4yN0wxMyAxOS41NGwtNC4yNy00LjI3QzguMjggMTQuODEgOCAxNC4xOSA4IDEzLjVjMC0xLjM4IDEuMTItMi41IDIuNS0yLjUuNjkgMCAxLjMyLjI4IDEuNzcuNzRsLjczLjcyLjczLS43M2MuNDUtLjQ1IDEuMDgtLjczIDEuNzctLjczIDEuMzggMCAyLjUgMS4xMiAyLjUgMi41IDAgLjY5LS4yOCAxLjMyLS43MyAxLjc3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im1haWwiPjxwYXRoIGQ9Ik0yMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgNGwtOCA1LTgtNVY2bDggNSA4LTV2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtYXJrdW5yZWFkIj48cGF0aCBkPSJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDRsLTggNS04LTVWNmw4IDUgOC01djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibWFya3VucmVhZC1tYWlsYm94Ij48cGF0aCBkPSJNMjAgNkgxMHY2SDhWNGg2VjBINnY2SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtZW51Ij48cGF0aCBkPSJNMyAxOGgxOHYtMkgzdjJ6bTAtNWgxOHYtMkgzdjJ6bTAtN3YyaDE4VjZIM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3JlLWhvcml6Ij48cGF0aCBkPSJNNiAxMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTEyIDBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0tNiAwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3JlLXZlcnQiPjxwYXRoIGQ9Ik0xMiA4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMCAyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3RvcmN5Y2xlIj48cGF0aCBkPSJNMTkuNDQgOS4wM0wxNS40MSA1SDExdjJoMy41OWwyIDJINWMtMi44IDAtNSAyLjItNSA1czIuMiA1IDUgNWMyLjQ2IDAgNC40NS0xLjY5IDQuOS00aDEuNjVsMi43Ny0yLjc3Yy0uMjEuNTQtLjMyIDEuMTQtLjMyIDEuNzcgMCAyLjggMi4yIDUgNSA1czUtMi4yIDUtNWMwLTIuNjUtMS45Ny00Ljc3LTQuNTYtNC45N3pNNy44MiAxNUM3LjQgMTYuMTUgNi4yOCAxNyA1IDE3Yy0xLjYzIDAtMy0xLjM3LTMtM3MxLjM3LTMgMy0zYzEuMjggMCAyLjQuODUgMi44MiAySDV2MmgyLjgyek0xOSAxN2MtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibW92ZS10by1pbmJveCI+PHBhdGggZD0iTTE5IDNINC45OWMtMS4xMSAwLTEuOTguOS0xLjk4IDJMMyAxOWMwIDEuMS44OCAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDEyaC00YzAgMS42Ni0xLjM1IDMtMyAzcy0zLTEuMzQtMy0zSDQuOTlWNUgxOXYxMHptLTMtNWgtMlY3aC00djNIOGw0IDQgNC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im5leHQtd2VlayI+PHBhdGggZD0iTTIwIDdoLTRWNWMwLS41NS0uMjItMS4wNS0uNTktMS40MUMxNS4wNSAzLjIyIDE0LjU1IDMgMTQgM2gtNGMtMS4xIDAtMiAuOS0yIDJ2Mkg0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6TTEwIDVoNHYyaC00VjV6bTEgMTMuNWwtMS0xIDMtMy0zLTMgMS0xIDQgNC00IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibm90ZS1hZGQiPjxwYXRoIGQ9Ik0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTRoLTN2M2gtMnYtM0g4di0yaDN2LTNoMnYzaDN2MnptLTMtN1YzLjVMMTguNSA5SDEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im9mZmxpbmUtcGluIj48cGF0aCBkPSJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6bTUgMTZIN3YtMmgxMHYyem0tNi43LTRMNyAxMC43bDEuNC0xLjQgMS45IDEuOSA1LjMtNS4zTDE3IDcuMyAxMC4zIDE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im9wYWNpdHkiPjxwYXRoIGQ9Ik0xNy42NiA4TDEyIDIuMzUgNi4zNCA4QzQuNzggOS41NiA0IDExLjY0IDQgMTMuNjRzLjc4IDQuMTEgMi4zNCA1LjY3IDMuNjEgMi4zNSA1LjY2IDIuMzUgNC4xLS43OSA1LjY2LTIuMzVTMjAgMTUuNjQgMjAgMTMuNjQgMTkuMjIgOS41NiAxNy42NiA4ek02IDE0Yy4wMS0yIC42Mi0zLjI3IDEuNzYtNC40TDEyIDUuMjdsNC4yNCA0LjM4QzE3LjM4IDEwLjc3IDE3Ljk5IDEyIDE4IDE0SDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ib3Blbi1pbi1icm93c2VyIj48cGF0aCBkPSJNMTkgNEg1Yy0xLjExIDAtMiAuOS0yIDJ2MTJjMCAxLjEuODkgMiAyIDJoNHYtMkg1VjhoMTR2MTBoLTR2Mmg0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjg5LTItMi0yem0tNyA2bC00IDRoM3Y2aDJ2LTZoM2wtNC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im9wZW4taW4tbmV3Ij48cGF0aCBkPSJNMTkgMTlINVY1aDdWM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ2N3pNMTQgM3YyaDMuNTlsLTkuODMgOS44MyAxLjQxIDEuNDFMMTkgNi40MVYxMGgyVjNoLTd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ib3Blbi13aXRoIj48cGF0aCBkPSJNMTAgOWg0VjZoM2wtNS01LTUgNWgzdjN6bS0xIDFINlY3bC01IDUgNSA1di0zaDN2LTR6bTE0IDJsLTUtNXYzaC0zdjRoM3YzbDUtNXptLTkgM2gtNHYzSDdsNSA1IDUtNWgtM3YtM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJwYWdldmlldyI+PHBhdGggZD0iTTExLjUgOUMxMC4xMiA5IDkgMTAuMTIgOSAxMS41czEuMTIgMi41IDIuNSAyLjUgMi41LTEuMTIgMi41LTIuNVMxMi44OCA5IDExLjUgOXpNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS0zLjIxIDE0LjIxbC0yLjkxLTIuOTFjLS42OS40NC0xLjUxLjctMi4zOS43QzkuMDEgMTYgNyAxMy45OSA3IDExLjVTOS4wMSA3IDExLjUgNyAxNiA5LjAxIDE2IDExLjVjMCAuODgtLjI2IDEuNjktLjcgMi4zOWwyLjkxIDIuOS0xLjQyIDEuNDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFuLXRvb2wiPjxwYXRoIGQ9Ik0yMyA1LjVWMjBjMCAyLjItMS44IDQtNCA0aC03LjNjLTEuMDggMC0yLjEtLjQzLTIuODUtMS4xOUwxIDE0LjgzczEuMjYtMS4yMyAxLjMtMS4yNWMuMjItLjE5LjQ5LS4yOS43OS0uMjkuMjIgMCAuNDIuMDYuNi4xNi4wNC4wMSA0LjMxIDIuNDYgNC4zMSAyLjQ2VjRjMC0uODMuNjctMS41IDEuNS0xLjVTMTEgMy4xNyAxMSA0djdoMVYxLjVjMC0uODMuNjctMS41IDEuNS0xLjVTMTUgLjY3IDE1IDEuNVYxMWgxVjIuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVYxMWgxVjUuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwYXltZW50Ij48cGF0aCBkPSJNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2YzAtMS4xMS0uODktMi0yLTJ6bTAgMTRINHYtNmgxNnY2em0wLTEwSDRWNmgxNnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tY2FtZXJhLW1pYyI+PHBhdGggZD0iTTIwIDVoLTMuMTdMMTUgM0g5TDcuMTcgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDd2LTIuMDljLTIuODMtLjQ4LTUtMi45NC01LTUuOTFoMmMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00aDJjMCAyLjk3LTIuMTcgNS40My01IDUuOTFWMjFoN2MxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tNiA4YzAgMS4xLS45IDItMiAycy0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwZXJtLWNvbnRhY3QtY2FsZW5kYXIiPjxwYXRoIGQ9Ik0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAzYzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM3ptNiAxMkg2di0xYzAtMiA0LTMuMSA2LTMuMXM2IDEuMSA2IDMuMXYxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tZGF0YS1zZXR0aW5nIj48cGF0aCBkPSJNMTguOTkgMTEuNWMuMzQgMCAuNjcuMDMgMSAuMDdMMjAgMCAwIDIwaDExLjU2Yy0uMDQtLjMzLS4wNy0uNjYtLjA3LTEgMC00LjE0IDMuMzYtNy41IDcuNS03LjV6bTMuNzEgNy45OWMuMDItLjE2LjA0LS4zMi4wNC0uNDkgMC0uMTctLjAxLS4zMy0uMDQtLjQ5bDEuMDYtLjgzYy4wOS0uMDguMTItLjIxLjA2LS4zMmwtMS0xLjczYy0uMDYtLjExLS4xOS0uMTUtLjMxLS4xMWwtMS4yNC41Yy0uMjYtLjItLjU0LS4zNy0uODUtLjQ5bC0uMTktMS4zMmMtLjAxLS4xMi0uMTItLjIxLS4yNC0uMjFoLTJjLS4xMiAwLS4yMy4wOS0uMjUuMjFsLS4xOSAxLjMyYy0uMy4xMy0uNTkuMjktLjg1LjQ5bC0xLjI0LS41Yy0uMTEtLjA0LS4yNCAwLS4zMS4xMWwtMSAxLjczYy0uMDYuMTEtLjA0LjI0LjA2LjMybDEuMDYuODNjLS4wMi4xNi0uMDMuMzItLjAzLjQ5IDAgLjE3LjAxLjMzLjAzLjQ5bC0xLjA2LjgzYy0uMDkuMDgtLjEyLjIxLS4wNi4zMmwxIDEuNzNjLjA2LjExLjE5LjE1LjMxLjExbDEuMjQtLjVjLjI2LjIuNTQuMzcuODUuNDlsLjE5IDEuMzJjLjAyLjEyLjEyLjIxLjI1LjIxaDJjLjEyIDAgLjIzLS4wOS4yNS0uMjFsLjE5LTEuMzJjLjMtLjEzLjU5LS4yOS44NC0uNDlsMS4yNS41Yy4xMS4wNC4yNCAwIC4zMS0uMTFsMS0xLjczYy4wNi0uMTEuMDMtLjI0LS4wNi0uMzJsLTEuMDctLjgzem0tMy43MSAxLjAxYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwZXJtLWRldmljZS1pbmZvcm1hdGlvbiI+PHBhdGggZD0iTTEzIDdoLTJ2MmgyVjd6bTAgNGgtMnY2aDJ2LTZ6bTQtOS45OUw3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMTlIN1Y1aDEwdjE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0taWRlbnRpdHkiPjxwYXRoIGQ9Ik0xMiA1LjljMS4xNiAwIDIuMS45NCAyLjEgMi4xcy0uOTQgMi4xLTIuMSAyLjFTOS45IDkuMTYgOS45IDhzLjk0LTIuMSAyLjEtMi4xbTAgOWMyLjk3IDAgNi4xIDEuNDYgNi4xIDIuMXYxLjFINS45VjE3YzAtLjY0IDMuMTMtMi4xIDYuMS0yLjFNMTIgNEM5Ljc5IDQgOCA1Ljc5IDggOHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA5Yy0yLjY3IDAtOCAxLjM0LTggNHYzaDE2di0zYzAtMi42Ni01LjMzLTQtOC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tbWVkaWEiPjxwYXRoIGQ9Ik0yIDZIMHY1aC4wMUwwIDIwYzAgMS4xLjkgMiAyIDJoMTh2LTJIMlY2em0yMC0yaC04bC0yLTJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNyAxNWw0LjUtNiAzLjUgNC41MSAyLjUtMy4wMUwyMSAxNUg3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tcGhvbmUtbXNnIj48cGF0aCBkPSJNMjAgMTUuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTctLjM1LS4xMS0uNzQtLjAzLTEuMDIuMjRsLTIuMiAyLjJjLTIuODMtMS40NC01LjE1LTMuNzUtNi41OS02LjU4bDIuMi0yLjIxYy4yOC0uMjcuMzYtLjY2LjI1LTEuMDFDOC43IDYuNDUgOC41IDUuMjUgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTEyIDN2MTBsMy0zaDZWM2gtOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwZXJtLXNjYW4td2lmaSI+PHBhdGggZD0iTTEyIDNDNi45NSAzIDMuMTUgNC44NSAwIDcuMjNMMTIgMjIgMjQgNy4yNUMyMC44NSA0Ljg3IDE3LjA1IDMgMTIgM3ptMSAxM2gtMnYtNmgydjZ6bS0yLThWNmgydjJoLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGV0cyI+PGNpcmNsZSBjeD0iNC41IiBjeT0iOS41IiByPSIyLjUiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjkiIGN5PSI1LjUiIHI9IjIuNSI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTUiIGN5PSI1LjUiIHI9IjIuNSI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTkuNSIgY3k9IjkuNSIgcj0iMi41Ij48L2NpcmNsZT48cGF0aCBkPSJNMTcuMzQgMTQuODZjLS44Ny0xLjAyLTEuNi0xLjg5LTIuNDgtMi45MS0uNDYtLjU0LTEuMDUtMS4wOC0xLjc1LTEuMzItLjExLS4wNC0uMjItLjA3LS4zMy0uMDktLjI1LS4wNC0uNTItLjA0LS43OC0uMDRzLS41MyAwLS43OS4wNWMtLjExLjAyLS4yMi4wNS0uMzMuMDktLjcuMjQtMS4yOC43OC0xLjc1IDEuMzItLjg3IDEuMDItMS42IDEuODktMi40OCAyLjkxLTEuMzEgMS4zMS0yLjkyIDIuNzYtMi42MiA0Ljc5LjI5IDEuMDIgMS4wMiAyLjAzIDIuMzMgMi4zMi43My4xNSAzLjA2LS40NCA1LjU0LS40NGguMThjMi40OCAwIDQuODEuNTggNS41NC40NCAxLjMxLS4yOSAyLjA0LTEuMzEgMi4zMy0yLjMyLjMxLTIuMDQtMS4zLTMuNDktMi42MS00Ljh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGljdHVyZS1pbi1waWN0dXJlIj48cGF0aCBkPSJNMTkgN2gtOHY2aDhWN3ptMi00SDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMS45OCAyIDEuOThoMThjMS4xIDAgMi0uODggMi0xLjk4VjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk4aDE4djE0LjAzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBpY3R1cmUtaW4tcGljdHVyZS1hbHQiPjxwYXRoIGQ9Ik0xOSAxMWgtOHY2aDh2LTZ6bTQgOFY0Ljk4QzIzIDMuODggMjIuMSAzIDIxIDNIM2MtMS4xIDAtMiAuODgtMiAxLjk4VjE5YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJ6bS0yIC4wMkgzVjQuOTdoMTh2MTQuMDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGxheS1mb3Itd29yayI+PHBhdGggZD0iTTExIDV2NS41OUg3LjVsNC41IDQuNSA0LjUtNC41SDEzVjVoLTJ6bS01IDljMCAzLjMxIDIuNjkgNiA2IDZzNi0yLjY5IDYtNmgtMmMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNEg2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBvbHltZXIiPjxwYXRoIGQ9Ik0xOSA0aC00TDcuMTEgMTYuNjMgNC41IDEyIDkgNEg1TC41IDEyIDUgMjBoNGw3Ljg5LTEyLjYzTDE5LjUgMTIgMTUgMjBoNGw0LjUtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwb3dlci1zZXR0aW5ncy1uZXciPjxwYXRoIGQ9Ik0xMyAzaC0ydjEwaDJWM3ptNC44MyAyLjE3bC0xLjQyIDEuNDJDMTcuOTkgNy44NiAxOSA5LjgxIDE5IDEyYzAgMy44Ny0zLjEzIDctNyA3cy03LTMuMTMtNy03YzAtMi4xOSAxLjAxLTQuMTQgMi41OC01LjQyTDYuMTcgNS4xN0M0LjIzIDYuODIgMyA5LjI2IDMgMTJjMCA0Ljk3IDQuMDMgOSA5IDlzOS00LjAzIDktOWMwLTIuNzQtMS4yMy01LjE4LTMuMTctNi44M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJwcmVnbmFudC13b21hbiI+PHBhdGggZD0iTTkgNGMwLTEuMTEuODktMiAyLTJzMiAuODkgMiAyLS44OSAyLTIgMi0yLS44OS0yLTJ6bTcgOWMtLjAxLTEuMzQtLjgzLTIuNTEtMi0zIDAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzdjdoMnY1aDN2LTVoM3YtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwcmludCI+PHBhdGggZD0iTTE5IDhINWMtMS42NiAwLTMgMS4zNC0zIDN2Nmg0djRoMTJ2LTRoNHYtNmMwLTEuNjYtMS4zNC0zLTMtM3ptLTMgMTFIOHYtNWg4djV6bTMtN2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0tMS05SDZ2NGgxMlYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InF1ZXJ5LWJ1aWxkZXIiPjxwYXRoIGQ9Ik0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bS41LTEzSDExdjZsNS4yNSAzLjE1Ljc1LTEuMjMtNC41LTIuNjd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icXVlc3Rpb24tYW5zd2VyIj48cGF0aCBkPSJNMjEgNmgtMnY5SDZ2MmMwIC41NS40NSAxIDEgMWgxMWw0IDRWN2MwLS41NS0uNDUtMS0xLTF6bS00IDZWM2MwLS41NS0uNDUtMS0xLTFIM2MtLjU1IDAtMSAuNDUtMSAxdjE0bDQtNGgxMGMuNTUgMCAxLS40NSAxLTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmFkaW8tYnV0dG9uLWNoZWNrZWQiPjxwYXRoIGQ9Ik0xMiA3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMC01QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyYWRpby1idXR0b24tdW5jaGVja2VkIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVjZWlwdCI+PHBhdGggZD0iTTE4IDE3SDZ2LTJoMTJ2MnptMC00SDZ2LTJoMTJ2MnptMC00SDZWN2gxMnYyek0zIDIybDEuNS0xLjVMNiAyMmwxLjUtMS41TDkgMjJsMS41LTEuNUwxMiAyMmwxLjUtMS41TDE1IDIybDEuNS0xLjVMMTggMjJsMS41LTEuNUwyMSAyMlYybC0xLjUgMS41TDE4IDJsLTEuNSAxLjVMMTUgMmwtMS41IDEuNUwxMiAybC0xLjUgMS41TDkgMiA3LjUgMy41IDYgMiA0LjUgMy41IDMgMnYyMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZWNvcmQtdm9pY2Utb3ZlciI+PGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjQiPjwvY2lyY2xlPjxwYXRoIGQ9Ik05IDE1Yy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00em03Ljc2LTkuNjRsLTEuNjggMS42OWMuODQgMS4xOC44NCAyLjcxIDAgMy44OWwxLjY4IDEuNjljMi4wMi0yLjAyIDIuMDItNS4wNyAwLTcuMjd6TTIwLjA3IDJsLTEuNjMgMS42M2MyLjc3IDMuMDIgMi43NyA3LjU2IDAgMTAuNzRMMjAuMDcgMTZjMy45LTMuODkgMy45MS05Ljk1IDAtMTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVkZWVtIj48cGF0aCBkPSJNMjAgNmgtMi4xOGMuMTEtLjMxLjE4LS42NS4xOC0xIDAtMS42Ni0xLjM0LTMtMy0zLTEuMDUgMC0xLjk2LjU0LTIuNSAxLjM1bC0uNS42Ny0uNS0uNjhDMTAuOTYgMi41NCAxMC4wNSAyIDkgMiA3LjM0IDIgNiAzLjM0IDYgNWMwIC4zNS4wNy42OS4xOCAxSDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE5YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnptLTUtMmMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xek05IDRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMTEgMTVINHYtMmgxNnYyem0wLTVINFY4aDUuMDhMNyAxMC44MyA4LjYyIDEyIDExIDguNzZsMS0xLjM2IDEgMS4zNkwxNS4zOCAxMiAxNyAxMC44MyAxNC45MiA4SDIwdjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVkbyI+PHBhdGggZD0iTTE4LjQgMTAuNkMxNi41NSA4Ljk5IDE0LjE1IDggMTEuNSA4Yy00LjY1IDAtOC41OCAzLjAzLTkuOTYgNy4yMkwzLjkgMTZjMS4wNS0zLjE5IDQuMDUtNS41IDcuNi01LjUgMS45NSAwIDMuNzMuNzIgNS4xMiAxLjg4TDEzIDE2aDlWN2wtMy42IDMuNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZWZyZXNoIj48cGF0aCBkPSJNMTcuNjUgNi4zNUMxNi4yIDQuOSAxNC4yMSA0IDEyIDRjLTQuNDIgMC03Ljk5IDMuNTgtNy45OSA4czMuNTcgOCA3Ljk5IDhjMy43MyAwIDYuODQtMi41NSA3LjczLTZoLTIuMDhjLS44MiAyLjMzLTMuMDQgNC01LjY1IDQtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNmMxLjY2IDAgMy4xNC42OSA0LjIyIDEuNzhMMTMgMTFoN1Y0bC0yLjM1IDIuMzV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVtb3ZlIj48cGF0aCBkPSJNMTkgMTNINXYtMmgxNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlbW92ZS1jaXJjbGUiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem01IDExSDd2LTJoMTB2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW1vdmUtY2lyY2xlLW91dGxpbmUiPjxwYXRoIGQ9Ik03IDExdjJoMTB2LTJIN3ptNS05QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW1vdmUtc2hvcHBpbmctY2FydCI+PHBhdGggZD0iTTIyLjczIDIyLjczTDIuNzcgMi43NyAyIDJsLS43My0uNzNMMCAyLjU0bDQuMzkgNC4zOSAyLjIxIDQuNjYtMS4zNSAyLjQ1Yy0uMTYuMjgtLjI1LjYxLS4yNS45NiAwIDEuMS45IDIgMiAyaDcuNDZsMS4zOCAxLjM4Yy0uNS4zNi0uODMuOTUtLjgzIDEuNjIgMCAxLjEuODkgMiAxLjk5IDIgLjY3IDAgMS4yNi0uMzMgMS42Mi0uODRMMjEuNDYgMjRsMS4yNy0xLjI3ek03LjQyIDE1Yy0uMTQgMC0uMjUtLjExLS4yNS0uMjVsLjAzLS4xMi45LTEuNjNoMi4zNmwyIDJINy40MnptOC4xMy0yYy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM2wzLjU4LTYuNDljLjA4LS4xNC4xMi0uMzEuMTItLjQ4IDAtLjU1LS40NS0xLTEtMUg2LjU0bDkuMDEgOXpNNyAxOGMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW9yZGVyIj48cGF0aCBkPSJNMyAxNWgxOHYtMkgzdjJ6bTAgNGgxOHYtMkgzdjJ6bTAtOGgxOFY5SDN2MnptMC02djJoMThWNUgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlcGx5Ij48cGF0aCBkPSJNMTAgOVY1bC03IDcgNyA3di00LjFjNSAwIDguNSAxLjYgMTEgNS4xLTEtNS00LTEwLTExLTExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlcGx5LWFsbCI+PHBhdGggZD0iTTcgOFY1bC03IDcgNyA3di0zbC00LTQgNC00em02IDFWNWwtNyA3IDcgN3YtNC4xYzUgMCA4LjUgMS42IDExIDUuMS0xLTUtNC0xMC0xMS0xMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZXBvcnQiPjxwYXRoIGQ9Ik0xNS43MyAzSDguMjdMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2TDIxIDE1LjczVjguMjdMMTUuNzMgM3pNMTIgMTcuM2MtLjcyIDAtMS4zLS41OC0xLjMtMS4zIDAtLjcyLjU4LTEuMyAxLjMtMS4zLjcyIDAgMS4zLjU4IDEuMyAxLjMgMCAuNzItLjU4IDEuMy0xLjMgMS4zem0xLTQuM2gtMlY3aDJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZXBvcnQtcHJvYmxlbSI+PHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZXN0b3JlIj48cGF0aCBkPSJNMTMgM2MtNC45NyAwLTkgNC4wMy05IDlIMWwzLjg5IDMuODkuMDcuMTRMOSAxMkg2YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS45MyAwLTMuNjgtLjc5LTQuOTQtMi4wNmwtMS40MiAxLjQyQzguMjcgMTkuOTkgMTAuNTEgMjEgMTMgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bS0xIDV2NWw0LjI4IDIuNTQuNzItMS4yMS0zLjUtMi4wOFY4SDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlc3RvcmUtcGFnZSI+PHBhdGggZD0iTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptLTIgMTZjLTIuMDUgMC0zLjgxLTEuMjQtNC41OC0zaDEuNzFjLjYzLjkgMS42OCAxLjUgMi44NyAxLjUgMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTMuOTMgOS41IDEyIDkuNWMtMS4zNSAwLTIuNTIuNzgtMy4xIDEuOWwxLjYgMS42aC00VjlsMS4zIDEuM0M4LjY5IDguOTIgMTAuMjMgOCAxMiA4YzIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvb20iPjxwYXRoIGQ9Ik0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTd6bTAgOS41Yy0xLjM4IDAtMi41LTEuMTItMi41LTIuNXMxLjEyLTIuNSAyLjUtMi41IDIuNSAxLjEyIDIuNSAyLjUtMS4xMiAyLjUtMi41IDIuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJyb3VuZGVkLWNvcm5lciI+PHBhdGggZD0iTTE5IDE5aDJ2MmgtMnYtMnptMC0yaDJ2LTJoLTJ2MnpNMyAxM2gydi0ySDN2MnptMCA0aDJ2LTJIM3Yyem0wLThoMlY3SDN2MnptMC00aDJWM0gzdjJ6bTQgMGgyVjNIN3Yyem04IDE2aDJ2LTJoLTJ2MnptLTQgMGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6bS04IDBoMnYtMkg3djJ6bS00IDBoMnYtMkgzdjJ6TTIxIDhjMC0yLjc2LTIuMjQtNS01LTVoLTV2Mmg1YzEuNjUgMCAzIDEuMzUgMyAzdjVoMlY4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvd2luZyI+PHBhdGggZD0iTTguNSAxNC41TDQgMTlsMS41IDEuNUw5IDE3aDJsLTIuNS0yLjV6TTE1IDFjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem02IDIwLjAxTDE4IDI0bC0yLjk5LTMuMDFWMTkuNWwtNy4xLTcuMDljLS4zMS4wNS0uNjEuMDctLjkxLjA3di0yLjE2YzEuNjYuMDMgMy42MS0uODcgNC42Ny0yLjA0bDEuNC0xLjU1Yy4xOS0uMjEuNDMtLjM4LjY5LS41LjI5LS4xNC42Mi0uMjMuOTYtLjIzaC4wM0MxNS45OSA2LjAxIDE3IDcuMDIgMTcgOC4yNnY1Ljc1YzAgLjg0LS4zNSAxLjYxLS45MiAyLjE2bC0zLjU4LTMuNTh2LTIuMjdjLS42My41Mi0xLjQzIDEuMDItMi4yOSAxLjM5TDE2LjUgMThIMThsMyAzLjAxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNhdmUiPjxwYXRoIGQ9Ik0xNyAzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3bC00LTR6bS01IDE2Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3ptMy0xMEg1VjVoMTB2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzY2hlZHVsZSI+PHBhdGggZD0iTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptLjUtMTNIMTF2Nmw1LjI1IDMuMTUuNzUtMS4yMy00LjUtMi42N3oiPjwvcGF0aD48L2c+CjxnIGlkPSJzZWFyY2giPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNlbGVjdC1hbGwiPjxwYXRoIGQ9Ik0zIDVoMlYzYy0xLjEgMC0yIC45LTIgMnptMCA4aDJ2LTJIM3Yyem00IDhoMnYtMkg3djJ6TTMgOWgyVjdIM3Yyem0xMC02aC0ydjJoMlYzem02IDB2MmgyYzAtMS4xLS45LTItMi0yek01IDIxdi0ySDNjMCAxLjEuOSAyIDIgMnptLTItNGgydi0ySDN2MnpNOSAzSDd2MmgyVjN6bTIgMThoMnYtMmgtMnYyem04LThoMnYtMmgtMnYyem0wIDhjMS4xIDAgMi0uOSAyLTJoLTJ2MnptMC0xMmgyVjdoLTJ2MnptMCA4aDJ2LTJoLTJ2MnptLTQgNGgydi0yaC0ydjJ6bTAtMTZoMlYzaC0ydjJ6TTcgMTdoMTBWN0g3djEwem0yLThoNnY2SDlWOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZW5kIj48cGF0aCBkPSJNMi4wMSAyMUwyMyAxMiAyLjAxIDMgMiAxMGwxNSAyLTE1IDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MiPjxwYXRoIGQ9Ik0xOS40MyAxMi45OGMuMDQtLjMyLjA3LS42NC4wNy0uOThzLS4wMy0uNjYtLjA3LS45OGwyLjExLTEuNjVjLjE5LS4xNS4yNC0uNDIuMTItLjY0bC0yLTMuNDZjLS4xMi0uMjItLjM5LS4zLS42MS0uMjJsLTIuNDkgMWMtLjUyLS40LTEuMDgtLjczLTEuNjktLjk4bC0uMzgtMi42NUMxNC40NiAyLjE4IDE0LjI1IDIgMTQgMmgtNGMtLjI1IDAtLjQ2LjE4LS40OS40MmwtLjM4IDIuNjVjLS42MS4yNS0xLjE3LjU5LTEuNjkuOThsLTIuNDktMWMtLjIzLS4wOS0uNDkgMC0uNjEuMjJsLTIgMy40NmMtLjEzLjIyLS4wNy40OS4xMi42NGwyLjExIDEuNjVjLS4wNC4zMi0uMDcuNjUtLjA3Ljk4cy4wMy42Ni4wNy45OGwtMi4xMSAxLjY1Yy0uMTkuMTUtLjI0LjQyLS4xMi42NGwyIDMuNDZjLjEyLjIyLjM5LjMuNjEuMjJsMi40OS0xYy41Mi40IDEuMDguNzMgMS42OS45OGwuMzggMi42NWMuMDMuMjQuMjQuNDIuNDkuNDJoNGMuMjUgMCAuNDYtLjE4LjQ5LS40MmwuMzgtMi42NWMuNjEtLjI1IDEuMTctLjU5IDEuNjktLjk4bDIuNDkgMWMuMjMuMDkuNDkgMCAuNjEtLjIybDItMy40NmMuMTItLjIyLjA3LS40OS0uMTItLjY0bC0yLjExLTEuNjV6TTEyIDE1LjVjLTEuOTMgMC0zLjUtMS41Ny0zLjUtMy41czEuNTctMy41IDMuNS0zLjUgMy41IDEuNTcgMy41IDMuNS0xLjU3IDMuNS0zLjUgMy41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWFwcGxpY2F0aW9ucyI+PHBhdGggZD0iTTEyIDEwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNy03SDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uOSAyLTJWNWMwLTEuMS0uODktMi0yLTJ6bS0xLjc1IDljMCAuMjMtLjAyLjQ2LS4wNS42OGwxLjQ4IDEuMTZjLjEzLjExLjE3LjMuMDguNDVsLTEuNCAyLjQyYy0uMDkuMTUtLjI3LjIxLS40My4xNWwtMS43NC0uN2MtLjM2LjI4LS43Ni41MS0xLjE4LjY5bC0uMjYgMS44NWMtLjAzLjE3LS4xOC4zLS4zNS4zaC0yLjhjLS4xNyAwLS4zMi0uMTMtLjM1LS4yOWwtLjI2LTEuODVjLS40My0uMTgtLjgyLS40MS0xLjE4LS42OWwtMS43NC43Yy0uMTYuMDYtLjM0IDAtLjQzLS4xNWwtMS40LTIuNDJjLS4wOS0uMTUtLjA1LS4zNC4wOC0uNDVsMS40OC0xLjE2Yy0uMDMtLjIzLS4wNS0uNDYtLjA1LS42OSAwLS4yMy4wMi0uNDYuMDUtLjY4bC0xLjQ4LTEuMTZjLS4xMy0uMTEtLjE3LS4zLS4wOC0uNDVsMS40LTIuNDJjLjA5LS4xNS4yNy0uMjEuNDMtLjE1bDEuNzQuN2MuMzYtLjI4Ljc2LS41MSAxLjE4LS42OWwuMjYtMS44NWMuMDMtLjE3LjE4LS4zLjM1LS4zaDIuOGMuMTcgMCAuMzIuMTMuMzUuMjlsLjI2IDEuODVjLjQzLjE4LjgyLjQxIDEuMTguNjlsMS43NC0uN2MuMTYtLjA2LjM0IDAgLjQzLjE1bDEuNCAyLjQyYy4wOS4xNS4wNS4zNC0uMDguNDVsLTEuNDggMS4xNmMuMDMuMjMuMDUuNDYuMDUuNjl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtYmFja3VwLXJlc3RvcmUiPjxwYXRoIGQ9Ik0xNCAxMmMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDIgLjkgMiAyIDIgMi0uOSAyLTJ6bS0yLTljLTQuOTcgMC05IDQuMDMtOSA5SDBsNCA0IDQtNEg1YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS41MSAwLTIuOTEtLjQ5LTQuMDYtMS4zbC0xLjQyIDEuNDRDOC4wNCAyMC4zIDkuOTQgMjEgMTIgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtYmx1ZXRvb3RoIj48cGF0aCBkPSJNMTEgMjRoMnYtMmgtMnYyem0tNCAwaDJ2LTJIN3Yyem04IDBoMnYtMmgtMnYyem0yLjcxLTE4LjI5TDEyIDBoLTF2Ny41OUw2LjQxIDMgNSA0LjQxIDEwLjU5IDEwIDUgMTUuNTkgNi40MSAxNyAxMSAxMi40MVYyMGgxbDUuNzEtNS43MS00LjMtNC4yOSA0LjMtNC4yOXpNMTMgMy44M2wxLjg4IDEuODhMMTMgNy41OVYzLjgzem0xLjg4IDEwLjQ2TDEzIDE2LjE3di0zLjc2bDEuODggMS44OHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1icmlnaHRuZXNzIj48cGF0aCBkPSJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyek04IDE2aDIuNWwxLjUgMS41IDEuNS0xLjVIMTZ2LTIuNWwxLjUtMS41LTEuNS0xLjVWOGgtMi41TDEyIDYuNSAxMC41IDhIOHYyLjVMNi41IDEyIDggMTMuNVYxNnptNC03YzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzVjl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtY2VsbCI+PHBhdGggZD0iTTcgMjRoMnYtMkg3djJ6bTQgMGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6TTE2IC4wMUw4IDBDNi45IDAgNiAuOSA2IDJ2MTZjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjJjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE2IDE2SDhWNGg4djEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWV0aGVybmV0Ij48cGF0aCBkPSJNNy43NyA2Ljc2TDYuMjMgNS40OC44MiAxMmw1LjQxIDYuNTIgMS41NC0xLjI4TDMuNDIgMTJsNC4zNS01LjI0ek03IDEzaDJ2LTJIN3Yyem0xMC0yaC0ydjJoMnYtMnptLTYgMmgydi0yaC0ydjJ6bTYuNzctNy41MmwtMS41NCAxLjI4TDIwLjU4IDEybC00LjM1IDUuMjQgMS41NCAxLjI4TDIzLjE4IDEybC01LjQxLTYuNTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtaW5wdXQtYW50ZW5uYSI+PHBhdGggZD0iTTEyIDVjLTMuODcgMC03IDMuMTMtNyA3aDJjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWgyYzAtMy44Ny0zLjEzLTctNy03em0xIDkuMjljLjg4LS4zOSAxLjUtMS4yNiAxLjUtMi4yOSAwLTEuMzgtMS4xMi0yLjUtMi41LTIuNVM5LjUgMTAuNjIgOS41IDEyYzAgMS4wMi42MiAxLjkgMS41IDIuMjl2My4zTDcuNTkgMjEgOSAyMi40MWwzLTMgMyAzTDE2LjQxIDIxIDEzIDE3LjU5di0zLjN6TTEyIDFDNS45MyAxIDEgNS45MyAxIDEyaDJjMC00Ljk3IDQuMDMtOSA5LTlzOSA0LjAzIDkgOWgyYzAtNi4wNy00LjkzLTExLTExLTExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWlucHV0LWNvbXBvbmVudCI+PHBhdGggZD0iTTUgMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0SDF2Nmg2VjZINVYyem00IDE0YzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgydi0ySDl2MnptLTggMGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThDNi4xNiAxOC40IDcgMTcuMyA3IDE2di0ySDF2MnpNMjEgNlYyYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRoLTJ2Nmg2VjZoLTJ6bS04LTRjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEg5djZoNlY2aC0yVjJ6bTQgMTRjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4YzEuMTYtLjQxIDItMS41MSAyLTIuODJ2LTJoLTZ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1pbnB1dC1jb21wb3NpdGUiPjxwYXRoIGQ9Ik01IDJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEgxdjZoNlY2SDVWMnptNCAxNGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThjMS4xNi0uNDEgMi0xLjUxIDItMi44MnYtMkg5djJ6bS04IDBjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4QzYuMTYgMTguNCA3IDE3LjMgNyAxNnYtMkgxdjJ6TTIxIDZWMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0aC0ydjZoNlY2aC0yem0tOC00YzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRIOXY2aDZWNmgtMlYyem00IDE0YzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgydi0yaC02djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtaW5wdXQtaGRtaSI+PHBhdGggZD0iTTE4IDdWNGMwLTEuMS0uOS0yLTItMkg4Yy0xLjEgMC0yIC45LTIgMnYzSDV2NmwzIDZ2M2g4di0zbDMtNlY3aC0xek04IDRoOHYzaC0yVjVoLTF2MmgtMlY1aC0xdjJIOFY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWlucHV0LXN2aWRlbyI+PHBhdGggZD0iTTggMTEuNWMwLS44My0uNjctMS41LTEuNS0xLjVTNSAxMC42NyA1IDExLjUgNS42NyAxMyA2LjUgMTMgOCAxMi4zMyA4IDExLjV6bTctNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNDOS42NyA1IDkgNS42NyA5IDYuNVM5LjY3IDggMTAuNSA4aDNjLjgzIDAgMS41LS42NyAxLjUtMS41ek04LjUgMTVjLS44MyAwLTEuNS42Ny0xLjUgMS41UzcuNjcgMTggOC41IDE4czEuNS0uNjcgMS41LTEuNVM5LjMzIDE1IDguNSAxNXpNMTIgMUM1LjkzIDEgMSA1LjkzIDEgMTJzNC45MyAxMSAxMSAxMSAxMS00LjkzIDExLTExUzE4LjA3IDEgMTIgMXptMCAyMGMtNC45NiAwLTktNC4wNC05LTlzNC4wNC05IDktOSA5IDQuMDQgOSA5LTQuMDQgOS05IDl6bTUuNS0xMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bS0yIDVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLW92ZXJzY2FuIj48cGF0aCBkPSJNMTIuMDEgNS41TDEwIDhoNGwtMS45OS0yLjV6TTE4IDEwdjRsMi41LTEuOTlMMTggMTB6TTYgMTBsLTIuNSAyLjAxTDYgMTR2LTR6bTggNmgtNGwyLjAxIDIuNUwxNCAxNnptNy0xM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLXBob25lIj48cGF0aCBkPSJNMTMgOWgtMnYyaDJWOXptNCAwaC0ydjJoMlY5em0zIDYuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTctLjM1LS4xMS0uNzQtLjAzLTEuMDIuMjRsLTIuMiAyLjJjLTIuODMtMS40NC01LjE1LTMuNzUtNi41OS02LjU4bDIuMi0yLjIxYy4yOC0uMjcuMzYtLjY2LjI1LTEuMDFDOC43IDYuNDUgOC41IDUuMjUgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTE5IDl2MmgyVjloLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtcG93ZXIiPjxwYXRoIGQ9Ik03IDI0aDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem0yLTIyaC0ydjEwaDJWMnptMy41NiAyLjQ0bC0xLjQ1IDEuNDVDMTYuODQgNi45NCAxOCA4LjgzIDE4IDExYzAgMy4zMS0yLjY5IDYtNiA2cy02LTIuNjktNi02YzAtMi4xNyAxLjE2LTQuMDYgMi44OC01LjEyTDcuNDQgNC40NEM1LjM2IDUuODggNCA4LjI4IDQgMTFjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOGMwLTIuNzItMS4zNi01LjEyLTMuNDQtNi41NnpNMTUgMjRoMnYtMmgtMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLXJlbW90ZSI+PHBhdGggZD0iTTE1IDlIOWMtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xVjEwYzAtLjU1LS40NS0xLTEtMXptLTMgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6TTcuMDUgNi4wNWwxLjQxIDEuNDFDOS4zNyA2LjU2IDEwLjYyIDYgMTIgNnMyLjYzLjU2IDMuNTQgMS40NmwxLjQxLTEuNDFDMTUuNjggNC43OCAxMy45MyA0IDEyIDRzLTMuNjguNzgtNC45NSAyLjA1ek0xMiAwQzguOTYgMCA2LjIxIDEuMjMgNC4yMiAzLjIybDEuNDEgMS40MUM3LjI2IDMuMDEgOS41MSAyIDEyIDJzNC43NCAxLjAxIDYuMzYgMi42NGwxLjQxLTEuNDFDMTcuNzkgMS4yMyAxNS4wNCAwIDEyIDB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3Mtdm9pY2UiPjxwYXRoIGQ9Ik03IDI0aDJ2LTJIN3Yyem01LTExYzEuNjYgMCAyLjk5LTEuMzQgMi45OS0zTDE1IDRjMC0xLjY2LTEuMzQtMy0zLTNTOSAyLjM0IDkgNHY2YzAgMS42NiAxLjM0IDMgMyAzem0tMSAxMWgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6bTQtMTRoLTEuN2MwIDMtMi41NCA1LjEtNS4zIDUuMVM2LjcgMTMgNi43IDEwSDVjMCAzLjQxIDIuNzIgNi4yMyA2IDYuNzJWMjBoMnYtMy4yOGMzLjI4LS40OSA2LTMuMzEgNi02LjcyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNob3AiPjxwYXRoIGQ9Ik0xNiA2VjRjMC0xLjExLS44OS0yLTItMmgtNGMtMS4xMSAwLTIgLjg5LTIgMnYySDJ2MTNjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmgtNnptLTYtMmg0djJoLTRWNHpNOSAxOFY5bDcuNSA0TDkgMTh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2hvcC10d28iPjxwYXRoIGQ9Ik0zIDlIMXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMkgzVjl6bTE1LTRWM2MwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMlY1aC01em0tNi0yaDR2MmgtNFYzem0wIDEyVjhsNS41IDMtNS41IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2hvcHBpbmctYmFza2V0Ij48cGF0aCBkPSJNMTcuMjEgOWwtNC4zOC02LjU2Yy0uMTktLjI4LS41MS0uNDItLjgzLS40Mi0uMzIgMC0uNjQuMTQtLjgzLjQzTDYuNzkgOUgyYy0uNTUgMC0xIC40NS0xIDEgMCAuMDkuMDEuMTguMDQuMjdsMi41NCA5LjI3Yy4yMy44NCAxIDEuNDYgMS45MiAxLjQ2aDEzYy45MiAwIDEuNjktLjYyIDEuOTMtMS40NmwyLjU0LTkuMjdMMjMgMTBjMC0uNTUtLjQ1LTEtMS0xaC00Ljc5ek05IDlsMy00LjRMMTUgOUg5em0zIDhjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNob3BwaW5nLWNhcnQiPjxwYXRoIGQ9Ik03IDE4Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yek0xIDJ2MmgybDMuNiA3LjU5LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmgxMnYtMkg3LjQyYy0uMTQgMC0uMjUtLjExLS4yNS0uMjVsLjAzLS4xMi45LTEuNjNoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5Yy4wOC0uMTQuMTItLjMxLjEyLS40OCAwLS41NS0uNDUtMS0xLTFINS4yMWwtLjk0LTJIMXptMTYgMTZjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNvcnQiPjxwYXRoIGQ9Ik0zIDE4aDZ2LTJIM3Yyek0zIDZ2MmgxOFY2SDN6bTAgN2gxMnYtMkgzdjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3BlYWtlci1ub3RlcyI+PHBhdGggZD0iTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek04IDE0SDZ2LTJoMnYyem0wLTNINlY5aDJ2MnptMC0zSDZWNmgydjJ6bTcgNmgtNXYtMmg1djJ6bTMtM2gtOFY5aDh2MnptMC0zaC04VjZoOHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNwZWFrZXItbm90ZXMtb2ZmIj48cGF0aCBkPSJNMTAuNTQgMTFsLS41NC0uNTRMNy41NCA4IDYgNi40NiAyLjM4IDIuODQgMS4yNyAxLjczIDAgM2wyLjAxIDIuMDFMMiAyMmw0LTRoOWw1LjczIDUuNzNMMjIgMjIuNDYgMTcuNTQgMThsLTctN3pNOCAxNEg2di0yaDJ2MnptLTItM1Y5bDIgMkg2em0xNC05SDQuMDhMMTAgNy45MlY2aDh2MmgtNy45MmwxIDFIMTh2MmgtNC45Mmw2Ljk5IDYuOTlDMjEuMTQgMTcuOTUgMjIgMTcuMDggMjIgMTZWNGMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzcGVsbGNoZWNrIj48cGF0aCBkPSJNMTIuNDUgMTZoMi4wOUw5LjQzIDNINy41N0wyLjQ2IDE2aDIuMDlsMS4xMi0zaDUuNjRsMS4xNCAzem0tNi4wMi01TDguNSA1LjQ4IDEwLjU3IDExSDYuNDN6bTE1LjE2LjU5bC04LjA5IDguMDlMOS44MyAxNmwtMS40MSAxLjQxIDUuMDkgNS4wOUwyMyAxM2wtMS40MS0xLjQxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN0YXIiPjxwYXRoIGQ9Ik0xMiAxNy4yN0wxOC4xOCAyMWwtMS42NC03LjAzTDIyIDkuMjRsLTcuMTktLjYxTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzdGFyLWJvcmRlciI+PHBhdGggZD0iTTIyIDkuMjRsLTcuMTktLjYyTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMSAxMiAxNy4yNyAxOC4xOCAyMWwtMS42My03LjAzTDIyIDkuMjR6TTEyIDE1LjRsLTMuNzYgMi4yNyAxLTQuMjgtMy4zMi0yLjg4IDQuMzgtLjM4TDEyIDYuMWwxLjcxIDQuMDQgNC4zOC4zOC0zLjMyIDIuODggMSA0LjI4TDEyIDE1LjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3Rhci1oYWxmIj48cGF0aCBkPSJNMjIgOS4yNGwtNy4xOS0uNjJMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxIDEyIDE3LjI3IDE4LjE4IDIxbC0xLjYzLTcuMDNMMjIgOS4yNHpNMTIgMTUuNFY2LjFsMS43MSA0LjA0IDQuMzguMzgtMy4zMiAyLjg4IDEgNC4yOEwxMiAxNS40eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN0YXJzIj48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNC4yNCAxNkwxMiAxNS40NSA3Ljc3IDE4bDEuMTItNC44MS0zLjczLTMuMjMgNC45Mi0uNDJMMTIgNWwxLjkyIDQuNTMgNC45Mi40Mi0zLjczIDMuMjNMMTYuMjMgMTh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3RvcmUiPjxwYXRoIGQ9Ik0yMCA0SDR2MmgxNlY0em0xIDEwdi0ybC0xLTVINGwtMSA1djJoMXY2aDEwdi02aDR2Nmgydi02aDF6bS05IDRINnYtNGg2djR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3ViZGlyZWN0b3J5LWFycm93LWxlZnQiPjxwYXRoIGQ9Ik0xMSA5bDEuNDIgMS40Mkw4LjgzIDE0SDE4VjRoMnYxMkg4LjgzbDMuNTkgMy41OEwxMSAyMWwtNi02IDYtNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzdWJkaXJlY3RvcnktYXJyb3ctcmlnaHQiPjxwYXRoIGQ9Ik0xOSAxNWwtNiA2LTEuNDItMS40MkwxNS4xNyAxNkg0VjRoMnYxMGg5LjE3bC0zLjU5LTMuNThMMTMgOWw2IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3ViamVjdCI+PHBhdGggZD0iTTE0IDE3SDR2MmgxMHYtMnptNi04SDR2MmgxNlY5ek00IDE1aDE2di0ySDR2MnpNNCA1djJoMTZWNUg0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN1cGVydmlzb3ItYWNjb3VudCI+PHBhdGggZD0iTTE2LjUgMTJjMS4zOCAwIDIuNDktMS4xMiAyLjQ5LTIuNVMxNy44OCA3IDE2LjUgN0MxNS4xMiA3IDE0IDguMTIgMTQgOS41czEuMTIgMi41IDIuNSAyLjV6TTkgMTFjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNTMTAuNjYgNSA5IDVDNy4zNCA1IDYgNi4zNCA2IDhzMS4zNCAzIDMgM3ptNy41IDNjLTEuODMgMC01LjUuOTItNS41IDIuNzVWMTloMTF2LTIuMjVjMC0xLjgzLTMuNjctMi43NS01LjUtMi43NXpNOSAxM2MtMi4zMyAwLTcgMS4xNy03IDMuNVYxOWg3di0yLjI1YzAtLjg1LjMzLTIuMzQgMi4zNy0zLjQ3QzEwLjUgMTMuMSA5LjY2IDEzIDkgMTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3dhcC1ob3JpeiI+PHBhdGggZD0iTTYuOTkgMTFMMyAxNWwzLjk5IDR2LTNIMTR2LTJINi45OXYtM3pNMjEgOWwtMy45OS00djNIMTB2Mmg3LjAxdjNMMjEgOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzd2FwLXZlcnQiPjxwYXRoIGQ9Ik0xNiAxNy4wMVYxMGgtMnY3LjAxaC0zTDE1IDIxbDQtMy45OWgtM3pNOSAzTDUgNi45OWgzVjE0aDJWNi45OWgzTDkgM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJzd2FwLXZlcnRpY2FsLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTYuNSA5TDEwIDUuNSAxMy41IDlIMTF2NEg5VjlINi41em0xMSA2TDE0IDE4LjUgMTAuNSAxNUgxM3YtNGgydjRoMi41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN5c3RlbS11cGRhdGUtYWx0Ij48cGF0aCBkPSJNMTIgMTYuNWw0LTRoLTN2LTloLTJ2OUg4bDQgNHptOS0xM2gtNnYxLjk5aDZ2MTQuMDNIM1Y1LjQ5aDZWMy41SDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJ2LTE0YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRhYiI+PHBhdGggZD0iTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxMHY0aDh2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGFiLXVuc2VsZWN0ZWQiPjxwYXRoIGQ9Ik0xIDloMlY3SDF2MnptMCA0aDJ2LTJIMXYyem0wLThoMlYzYy0xLjEgMC0yIC45LTIgMnptOCAxNmgydi0ySDl2MnptLTgtNGgydi0ySDF2MnptMiA0di0ySDFjMCAxLjEuOSAyIDIgMnpNMjEgM2gtOHY2aDEwVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTRoMnYtMmgtMnYyek05IDVoMlYzSDl2MnpNNSAyMWgydi0ySDV2MnpNNSA1aDJWM0g1djJ6bTE2IDE2YzEuMSAwIDItLjkgMi0yaC0ydjJ6bTAtOGgydi0yaC0ydjJ6bS04IDhoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRleHQtZm9ybWF0Ij48cGF0aCBkPSJNNSAxN3YyaDE0di0ySDV6bTQuNS00LjJoNWwuOSAyLjJoMi4xTDEyLjc1IDRoLTEuNUw2LjUgMTVoMi4xbC45LTIuMnpNMTIgNS45OEwxMy44NyAxMWgtMy43NEwxMiA1Ljk4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRoZWF0ZXJzIj48cGF0aCBkPSJNMTggM3YyaC0yVjNIOHYySDZWM0g0djE4aDJ2LTJoMnYyaDh2LTJoMnYyaDJWM2gtMnpNOCAxN0g2di0yaDJ2MnptMC00SDZ2LTJoMnYyem0wLTRINlY3aDJ2MnptMTAgOGgtMnYtMmgydjJ6bTAtNGgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aHVtYi1kb3duIj48cGF0aCBkPSJNMTUgM0g2Yy0uODMgMC0xLjU0LjUtMS44NCAxLjIybC0zLjAyIDcuMDVjLS4wOS4yMy0uMTQuNDctLjE0LjczdjEuOTFsLjAxLjAxTDEgMTRjMCAxLjEuOSAyIDIgMmg2LjMxbC0uOTUgNC41Ny0uMDMuMzJjMCAuNDEuMTcuNzkuNDQgMS4wNkw5LjgzIDIzbDYuNTktNi41OWMuMzYtLjM2LjU4LS44Ni41OC0xLjQxVjVjMC0xLjEtLjktMi0yLTJ6bTQgMHYxMmg0VjNoLTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGh1bWItdXAiPjxwYXRoIGQ9Ik0xIDIxaDRWOUgxdjEyem0yMi0xMWMwLTEuMS0uOS0yLTItMmgtNi4zMWwuOTUtNC41Ny4wMy0uMzJjMC0uNDEtLjE3LS43OS0uNDQtMS4wNkwxNC4xNyAxIDcuNTkgNy41OUM3LjIyIDcuOTUgNyA4LjQ1IDcgOXYxMGMwIDEuMS45IDIgMiAyaDljLjgzIDAgMS41NC0uNSAxLjg0LTEuMjJsMy4wMi03LjA1Yy4wOS0uMjMuMTQtLjQ3LjE0LS43M3YtMS45MWwtLjAxLS4wMUwyMyAxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aHVtYnMtdXAtZG93biI+PHBhdGggZD0iTTEyIDZjMC0uNTUtLjQ1LTEtMS0xSDUuODJsLjY2LTMuMTguMDItLjIzYzAtLjMxLS4xMy0uNTktLjMzLS44TDUuMzggMCAuNDQgNC45NEMuMTcgNS4yMSAwIDUuNTkgMCA2djYuNWMwIC44My42NyAxLjUgMS41IDEuNWg2Ljc1Yy42MiAwIDEuMTUtLjM4IDEuMzgtLjkxbDIuMjYtNS4yOWMuMDctLjE3LjExLS4zNi4xMS0uNTVWNnptMTAuNSA0aC02Ljc1Yy0uNjIgMC0xLjE1LjM4LTEuMzguOTFsLTIuMjYgNS4yOWMtLjA3LjE3LS4xMS4zNi0uMTEuNTVWMThjMCAuNTUuNDUgMSAxIDFoNS4xOGwtLjY2IDMuMTgtLjAyLjI0YzAgLjMxLjEzLjU5LjMzLjhsLjc5Ljc4IDQuOTQtNC45NGMuMjctLjI3LjQ0LS42NS40NC0xLjA2di02LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRpbWVsaW5lIj48cGF0aCBkPSJNMjMgOGMwIDEuMS0uOSAyLTIgMi0uMTggMC0uMzUtLjAyLS41MS0uMDdsLTMuNTYgMy41NWMuMDUuMTYuMDcuMzQuMDcuNTIgMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yYzAtLjE4LjAyLS4zNi4wNy0uNTJsLTIuNTUtMi41NWMtLjE2LjA1LS4zNC4wNy0uNTIuMDdzLS4zNi0uMDItLjUyLS4wN2wtNC41NSA0LjU2Yy4wNS4xNi4wNy4zMy4wNy41MSAwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTJjLjE4IDAgLjM1LjAyLjUxLjA3bDQuNTYtNC41NUM4LjAyIDkuMzYgOCA5LjE4IDggOWMwLTEuMS45LTIgMi0yczIgLjkgMiAyYzAgLjE4LS4wMi4zNi0uMDcuNTJsMi41NSAyLjU1Yy4xNi0uMDUuMzQtLjA3LjUyLS4wN3MuMzYuMDIuNTIuMDdsMy41NS0zLjU2QzE5LjAyIDguMzUgMTkgOC4xOCAxOSA4YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idG9jIj48cGF0aCBkPSJNMyA5aDE0VjdIM3Yyem0wIDRoMTR2LTJIM3Yyem0wIDRoMTR2LTJIM3Yyem0xNiAwaDJ2LTJoLTJ2MnptMC0xMHYyaDJWN2gtMnptMCA2aDJ2LTJoLTJ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0b2RheSI+PHBhdGggZD0iTTE5IDNoLTFWMWgtMnYySDhWMUg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAxOWMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOGgxNHYxMXpNNyAxMGg1djVIN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJ0b2xsIj48cGF0aCBkPSJNMTUgNGMtNC40MiAwLTggMy41OC04IDhzMy41OCA4IDggOCA4LTMuNTggOC04LTMuNTgtOC04LTh6bTAgMTRjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2ek0zIDEyYzAtMi42MSAxLjY3LTQuODMgNC01LjY1VjQuMjZDMy41NSA1LjE1IDEgOC4yNyAxIDEyczIuNTUgNi44NSA2IDcuNzR2LTIuMDljLTIuMzMtLjgyLTQtMy4wNC00LTUuNjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idG91Y2gtYXBwIj48cGF0aCBkPSJNOSAxMS4yNFY3LjVDOSA2LjEyIDEwLjEyIDUgMTEuNSA1UzE0IDYuMTIgMTQgNy41djMuNzRjMS4yMS0uODEgMi0yLjE4IDItMy43NEMxNiA1LjAxIDEzLjk5IDMgMTEuNSAzUzcgNS4wMSA3IDcuNWMwIDEuNTYuNzkgMi45MyAyIDMuNzR6bTkuODQgNC42M2wtNC41NC0yLjI2Yy0uMTctLjA3LS4zNS0uMTEtLjU0LS4xMUgxM3YtNmMwLS44My0uNjctMS41LTEuNS0xLjVTMTAgNi42NyAxMCA3LjV2MTAuNzRsLTMuNDMtLjcyYy0uMDgtLjAxLS4xNS0uMDMtLjI0LS4wMy0uMzEgMC0uNTkuMTMtLjc5LjMzbC0uNzkuOCA0Ljk0IDQuOTRjLjI3LjI3LjY1LjQ0IDEuMDYuNDRoNi43OWMuNzUgMCAxLjMzLS41NSAxLjQ0LTEuMjhsLjc1LTUuMjdjLjAxLS4wNy4wMi0uMTQuMDItLjIgMC0uNjItLjM4LTEuMTYtLjkxLTEuMzh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHJhY2stY2hhbmdlcyI+PHBhdGggZD0iTTE5LjA3IDQuOTNsLTEuNDEgMS40MUMxOS4xIDcuNzkgMjAgOS43OSAyMCAxMmMwIDQuNDItMy41OCA4LTggOHMtOC0zLjU4LTgtOGMwLTQuMDggMy4wNS03LjQ0IDctNy45M3YyLjAyQzguMTYgNi41NyA2IDkuMDMgNiAxMmMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02YzAtMS42Ni0uNjctMy4xNi0xLjc2LTQuMjRsLTEuNDEgMS40MUMxNS41NSA5LjkgMTYgMTAuOSAxNiAxMmMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNGMwLTEuODYgMS4yOC0zLjQxIDMtMy44NnYyLjE0Yy0uNi4zNS0xIC45OC0xIDEuNzIgMCAxLjEuOSAyIDIgMnMyLS45IDItMmMwLS43NC0uNC0xLjM4LTEtMS43MlYyaC0xQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBjMC0yLjc2LTEuMTItNS4yNi0yLjkzLTcuMDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHJhbnNsYXRlIj48cGF0aCBkPSJNMTIuODcgMTUuMDdsLTIuNTQtMi41MS4wMy0uMDNjMS43NC0xLjk0IDIuOTgtNC4xNyAzLjcxLTYuNTNIMTdWNGgtN1YySDh2MkgxdjEuOTloMTEuMTdDMTEuNSA3LjkyIDEwLjQ0IDkuNzUgOSAxMS4zNSA4LjA3IDEwLjMyIDcuMyA5LjE5IDYuNjkgOGgtMmMuNzMgMS42MyAxLjczIDMuMTcgMi45OCA0LjU2bC01LjA5IDUuMDJMNCAxOWw1LTUgMy4xMSAzLjExLjc2LTIuMDR6TTE4LjUgMTBoLTJMMTIgMjJoMmwxLjEyLTNoNC43NUwyMSAyMmgybC00LjUtMTJ6bS0yLjYyIDdsMS42Mi00LjMzTDE5LjEyIDE3aC0zLjI0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRyZW5kaW5nLWRvd24iPjxwYXRoIGQ9Ik0xNiAxOGwyLjI5LTIuMjktNC44OC00Ljg4LTQgNEwyIDcuNDEgMy40MSA2bDYgNiA0LTQgNi4zIDYuMjlMMjIgMTJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0cmVuZGluZy1mbGF0Ij48cGF0aCBkPSJNMjIgMTJsLTQtNHYzSDN2MmgxNXYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRyZW5kaW5nLXVwIj48cGF0aCBkPSJNMTYgNmwyLjI5IDIuMjktNC44OCA0Ljg4LTQtNEwyIDE2LjU5IDMuNDEgMThsNi02IDQgNCA2LjMtNi4yOUwyMiAxMlY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InR1cm5lZC1pbiI+PHBhdGggZD0iTTE3IDNIN2MtMS4xIDAtMS45OS45LTEuOTkgMkw1IDIxbDctMyA3IDNWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0dXJuZWQtaW4tbm90Ij48cGF0aCBkPSJNMTcgM0g3Yy0xLjEgMC0xLjk5LjktMS45OSAyTDUgMjFsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yem0wIDE1bC01LTIuMThMNyAxOFY1aDEwdjEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InVuYXJjaGl2ZSI+PHBhdGggZD0iTTIwLjU1IDUuMjJsLTEuMzktMS42OEMxOC44OCAzLjIxIDE4LjQ3IDMgMTggM0g2Yy0uNDcgMC0uODguMjEtMS4xNS41NUwzLjQ2IDUuMjJDMy4xNyA1LjU3IDMgNi4wMSAzIDYuNVYxOWMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2LjVjMC0uNDktLjE3LS45My0uNDUtMS4yOHpNMTIgOS41bDUuNSA1LjVIMTR2MmgtNHYtMkg2LjVMMTIgOS41ek01LjEyIDVsLjgyLTFoMTJsLjkzIDFINS4xMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ1bmRvIj48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idW5mb2xkLWxlc3MiPjxwYXRoIGQ9Ik03LjQxIDE4LjU5TDguODMgMjAgMTIgMTYuODMgMTUuMTcgMjBsMS40MS0xLjQxTDEyIDE0bC00LjU5IDQuNTl6bTkuMTgtMTMuMThMMTUuMTcgNCAxMiA3LjE3IDguODMgNCA3LjQxIDUuNDEgMTIgMTBsNC41OS00LjU5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InVuZm9sZC1tb3JlIj48cGF0aCBkPSJNMTIgNS44M0wxNS4xNyA5bDEuNDEtMS40MUwxMiAzIDcuNDEgNy41OSA4LjgzIDkgMTIgNS44M3ptMCAxMi4zNEw4LjgzIDE1bC0xLjQxIDEuNDFMMTIgMjFsNC41OS00LjU5TDE1LjE3IDE1IDEyIDE4LjE3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InVwZGF0ZSI+PHBhdGggZD0iTTIxIDEwLjEyaC02Ljc4bDIuNzQtMi44MmMtMi43My0yLjctNy4xNS0yLjgtOS44OC0uMS0yLjczIDIuNzEtMi43MyA3LjA4IDAgOS43OSAyLjczIDIuNzEgNy4xNSAyLjcxIDkuODggMEMxOC4zMiAxNS42NSAxOSAxNC4wOCAxOSAxMi4xaDJjMCAxLjk4LS44OCA0LjU1LTIuNjQgNi4yOS0zLjUxIDMuNDgtOS4yMSAzLjQ4LTEyLjcyIDAtMy41LTMuNDctMy41My05LjExLS4wMi0xMi41OCAzLjUxLTMuNDcgOS4xNC0zLjQ3IDEyLjY1IDBMMjEgM3Y3LjEyek0xMi41IDh2NC4yNWwzLjUgMi4wOC0uNzIgMS4yMUwxMSAxM1Y4aDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2ZXJpZmllZC11c2VyIj48cGF0aCBkPSJNMTIgMUwzIDV2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDUuMTYtMS4yNiA5LTYuNDUgOS0xMlY1bC05LTR6bS0yIDE2bC00LTQgMS40MS0xLjQxTDEwIDE0LjE3bDYuNTktNi41OUwxOCA5bC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1hZ2VuZGEiPjxwYXRoIGQ9Ik0yMCAxM0gzYy0uNTUgMC0xIC40NS0xIDF2NmMwIC41NS40NSAxIDEgMWgxN2MuNTUgMCAxLS40NSAxLTF2LTZjMC0uNTUtLjQ1LTEtMS0xem0wLTEwSDNjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE3Yy41NSAwIDEtLjQ1IDEtMVY0YzAtLjU1LS40NS0xLTEtMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWFycmF5Ij48cGF0aCBkPSJNNCAxOGgzVjVINHYxM3pNMTggNXYxM2gzVjVoLTN6TTggMThoOVY1SDh2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1jYXJvdXNlbCI+PHBhdGggZD0iTTcgMTloMTBWNEg3djE1em0tNS0yaDRWNkgydjExek0xOCA2djExaDRWNmgtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWNvbHVtbiI+PHBhdGggZD0iTTEwIDE4aDVWNWgtNXYxM3ptLTYgMGg1VjVINHYxM3pNMTYgNXYxM2g1VjVoLTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1kYXkiPjxwYXRoIGQ9Ik0yIDIxaDE5di0zSDJ2M3pNMjAgOEgzYy0uNTUgMC0xIC40NS0xIDF2NmMwIC41NS40NSAxIDEgMWgxN2MuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTF6TTIgM3YzaDE5VjNIMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWhlYWRsaW5lIj48cGF0aCBkPSJNNCAxNWgxNnYtMkg0djJ6bTAgNGgxNnYtMkg0djJ6bTAtOGgxNlY5SDR2MnptMC02djJoMTZWNUg0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctbGlzdCI+PHBhdGggZD0iTTQgMTRoNHYtNEg0djR6bTAgNWg0di00SDR2NHpNNCA5aDRWNUg0djR6bTUgNWgxMnYtNEg5djR6bTAgNWgxMnYtNEg5djR6TTkgNXY0aDEyVjVIOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LW1vZHVsZSI+PHBhdGggZD0iTTQgMTFoNVY1SDR2NnptMCA3aDV2LTZINHY2em02IDBoNXYtNmgtNXY2em02IDBoNXYtNmgtNXY2em0tNi03aDVWNWgtNXY2em02LTZ2Nmg1VjVoLTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1xdWlsdCI+PHBhdGggZD0iTTEwIDE4aDV2LTZoLTV2NnptLTYgMGg1VjVINHYxM3ptMTIgMGg1di02aC01djZ6TTEwIDV2NmgxMVY1SDEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctc3RyZWFtIj48cGF0aCBkPSJNNCAxOGgxN3YtNkg0djZ6TTQgNXY2aDE3VjVINHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LXdlZWsiPjxwYXRoIGQ9Ik02IDVIM2MtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDNjLjU1IDAgMS0uNDUgMS0xVjZjMC0uNTUtLjQ1LTEtMS0xem0xNCAwaC0zYy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoM2MuNTUgMCAxLS40NSAxLTFWNmMwLS41NS0uNDUtMS0xLTF6bS03IDBoLTNjLS41NSAwLTEgLjQ1LTEgMXYxMmMwIC41NS40NSAxIDEgMWgzYy41NSAwIDEtLjQ1IDEtMVY2YzAtLjU1LS40NS0xLTEtMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aXNpYmlsaXR5Ij48cGF0aCBkPSJNMTIgNC41QzcgNC41IDIuNzMgNy42MSAxIDEyYzEuNzMgNC4zOSA2IDcuNSAxMSA3LjVzOS4yNy0zLjExIDExLTcuNWMtMS43My00LjM5LTYtNy41LTExLTcuNXpNMTIgMTdjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0wLThjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpc2liaWxpdHktb2ZmIj48cGF0aCBkPSJNMTIgN2MyLjc2IDAgNSAyLjI0IDUgNSAwIC42NS0uMTMgMS4yNi0uMzYgMS44M2wyLjkyIDIuOTJjMS41MS0xLjI2IDIuNy0yLjg5IDMuNDMtNC43NS0xLjczLTQuMzktNi03LjUtMTEtNy41LTEuNCAwLTIuNzQuMjUtMy45OC43bDIuMTYgMi4xNkMxMC43NCA3LjEzIDExLjM1IDcgMTIgN3pNMiA0LjI3bDIuMjggMi4yOC40Ni40NkMzLjA4IDguMyAxLjc4IDEwLjAyIDEgMTJjMS43MyA0LjM5IDYgNy41IDExIDcuNSAxLjU1IDAgMy4wMy0uMyA0LjM4LS44NGwuNDIuNDJMMTkuNzMgMjIgMjEgMjAuNzMgMy4yNyAzIDIgNC4yN3pNNy41MyA5LjhsMS41NSAxLjU1Yy0uMDUuMjEtLjA4LjQzLS4wOC42NSAwIDEuNjYgMS4zNCAzIDMgMyAuMjIgMCAuNDQtLjAzLjY1LS4wOGwxLjU1IDEuNTVjLS42Ny4zMy0xLjQxLjUzLTIuMi41My0yLjc2IDAtNS0yLjI0LTUtNSAwLS43OS4yLTEuNTMuNTMtMi4yem00LjMxLS43OGwzLjE1IDMuMTUuMDItLjE2YzAtMS42Ni0xLjM0LTMtMy0zbC0uMTcuMDF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2FybmluZyI+PHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ3YXRjaC1sYXRlciI+PHBhdGggZD0iTTEyIDJDNi41IDIgMiA2LjUgMiAxMnM0LjUgMTAgMTAgMTAgMTAtNC41IDEwLTEwUzE3LjUgMiAxMiAyem00LjIgMTQuMkwxMSAxM1Y3aDEuNXY1LjJsNC41IDIuNy0uOCAxLjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2Vla2VuZCI+PHBhdGggZD0iTTIxIDEwYy0xLjEgMC0yIC45LTIgMnYzSDV2LTNjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjVjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMnYtNWMwLTEuMS0uOS0yLTItMnptLTMtNUg2Yy0xLjEgMC0yIC45LTIgMnYyLjE1YzEuMTYuNDEgMiAxLjUxIDIgMi44MlYxNGgxMnYtMi4wM2MwLTEuMy44NC0yLjQgMi0yLjgyVjdjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id29yayI+PHBhdGggZD0iTTIwIDZoLTRWNGMwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNiAwaC00VjRoNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InlvdXR1YmUtc2VhcmNoZWQtZm9yIj48cGF0aCBkPSJNMTcuMDEgMTRoLS44bC0uMjctLjI3Yy45OC0xLjE0IDEuNTctMi42MSAxLjU3LTQuMjMgMC0zLjU5LTIuOTEtNi41LTYuNS02LjVzLTYuNSAzLTYuNSA2LjVIMmwzLjg0IDQgNC4xNi00SDYuNTFDNi41MSA3IDguNTMgNSAxMS4wMSA1czQuNSAyLjAxIDQuNSA0LjVjMCAyLjQ4LTIuMDIgNC41LTQuNSA0LjUtLjY1IDAtMS4yNi0uMTQtMS44Mi0uMzhMNy43MSAxNS4xYy45Ny41NyAyLjA5LjkgMy4zLjkgMS42MSAwIDMuMDgtLjU5IDQuMjItMS41N2wuMjcuMjd2Ljc5bDUuMDEgNC45OUwyMiAxOWwtNC45OS01eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Inpvb20taW4iPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0em0yLjUtNGgtMnYySDl2LTJIN1Y5aDJWN2gxdjJoMnYxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Inpvb20tb3V0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiI+PC9wYXRoPjwvZz4KPC9kZWZzPjwvc3ZnPgo8L2lyb24taWNvbnNldC1zdmc+YDtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKE1vLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KdmFyIEVvPXsiVSswMDA4IjoiYmFja3NwYWNlIiwiVSswMDA5IjoidGFiIiwiVSswMDFCIjoiZXNjIiwiVSswMDIwIjoic3BhY2UiLCJVKzAwN0YiOiJkZWwifSxUbz17ODoiYmFja3NwYWNlIiw5OiJ0YWIiLDEzOiJlbnRlciIsMjc6ImVzYyIsMzM6InBhZ2V1cCIsMzQ6InBhZ2Vkb3duIiwzNToiZW5kIiwzNjoiaG9tZSIsMzI6InNwYWNlIiwzNzoibGVmdCIsMzg6InVwIiwzOToicmlnaHQiLDQwOiJkb3duIiw0NjoiZGVsIiwxMDY6IioifSxDbz17c2hpZnQ6InNoaWZ0S2V5IixjdHJsOiJjdHJsS2V5IixhbHQ6ImFsdEtleSIsbWV0YToibWV0YUtleSJ9LEFvPS9bYS16MC05Kl0vLGtvPS9VXCsvLExvPS9eYXJyb3cvLFBvPS9ec3BhY2UoYmFyKT8vLE5vPS9eZXNjYXBlJC87ZnVuY3Rpb24gSW8odCxlKXt2YXIgbj0iIjtpZih0KXt2YXIgaT10LnRvTG93ZXJDYXNlKCk7IiAiPT09aXx8UG8udGVzdChpKT9uPSJzcGFjZSI6Tm8udGVzdChpKT9uPSJlc2MiOjE9PWkubGVuZ3RoP2UmJiFBby50ZXN0KGkpfHwobj1pKTpuPUxvLnRlc3QoaSk/aS5yZXBsYWNlKCJhcnJvdyIsIiIpOiJtdWx0aXBseSI9PWk/IioiOml9cmV0dXJuIG59ZnVuY3Rpb24gUm8odCxlKXtyZXR1cm4oZnVuY3Rpb24gbih0LGUpe3JldHVybiB0LmtleT9Jbyh0LmtleSxlKTp0LmRldGFpbCYmdC5kZXRhaWwua2V5P0lvKHQuZGV0YWlsLmtleSxlKTooZnVuY3Rpb24gbih0KXt2YXIgZT0iIjtyZXR1cm4gdCYmKHQgaW4gRW8/ZT1Fb1t0XTprby50ZXN0KHQpPyh0PXBhcnNlSW50KHQucmVwbGFjZSgiVSsiLCIweCIpLDE2KSxlPVN0cmluZy5mcm9tQ2hhckNvZGUodCkudG9Mb3dlckNhc2UoKSk6ZT10LnRvTG93ZXJDYXNlKCkpLGV9KSh0LmtleUlkZW50aWZpZXIpfHwoZnVuY3Rpb24gaSh0KXt2YXIgZT0iIjtyZXR1cm4gTnVtYmVyKHQpJiYoZT10Pj02NSYmdDw9OTA/U3RyaW5nLmZyb21DaGFyQ29kZSgzMit0KTp0Pj0xMTImJnQ8PTEyMz8iZiIrKHQtMTEyKzEpOnQ+PTQ4JiZ0PD01Nz9TdHJpbmcodC00OCk6dD49OTYmJnQ8PTEwNT9TdHJpbmcodC05Nik6VG9bdF0pLGV9KSh0LmtleUNvZGUpfHwiIn0pKGUsdC5oYXNNb2RpZmllcnMpPT09dC5rZXkmJighdC5oYXNNb2RpZmllcnN8fCEhZS5zaGlmdEtleT09ISF0LnNoaWZ0S2V5JiYhIWUuY3RybEtleT09ISF0LmN0cmxLZXkmJiEhZS5hbHRLZXk9PSEhdC5hbHRLZXkmJiEhZS5tZXRhS2V5PT0hIXQubWV0YUtleSl9ZnVuY3Rpb24gT28odCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KCIgIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gMT09PXQubGVuZ3RoP3tjb21ibzp0LGtleTp0LGV2ZW50OiJrZXlkb3duIn06dC5zcGxpdCgiKyIpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXt2YXIgbj1lLnNwbGl0KCI6IiksaT1uWzBdLHI9blsxXTtyZXR1cm4gaSBpbiBDbz8odFtDb1tpXV09ITAsdC5oYXNNb2RpZmllcnM9ITApOih0LmtleT1pLHQuZXZlbnQ9cnx8ImtleWRvd24iKSx0fSkse2NvbWJvOnQuc3BsaXQoIjoiKS5zaGlmdCgpfSl9KSh0KX0pKX1jb25zdCB6bz17cHJvcGVydGllczp7a2V5RXZlbnRUYXJnZXQ6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSxzdG9wS2V5Ym9hcmRFdmVudFByb3BhZ2F0aW9uOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9ib3VuZEtleUhhbmRsZXJzOnt0eXBlOkFycmF5LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxfaW1wZXJhdGl2ZUtleUJpbmRpbmdzOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybnt9fX19LG9ic2VydmVyczpbIl9yZXNldEtleUV2ZW50TGlzdGVuZXJzKGtleUV2ZW50VGFyZ2V0LCBfYm91bmRLZXlIYW5kbGVycykiXSxrZXlCaW5kaW5nczp7fSxyZWdpc3RlcmVkOmZ1bmN0aW9uKCl7dGhpcy5fcHJlcEtleUJpbmRpbmdzKCl9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fbGlzdGVuS2V5RXZlbnRMaXN0ZW5lcnMoKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl91bmxpc3RlbktleUV2ZW50TGlzdGVuZXJzKCl9LGFkZE93bktleUJpbmRpbmc6ZnVuY3Rpb24odCxlKXt0aGlzLl9pbXBlcmF0aXZlS2V5QmluZGluZ3NbdF09ZSx0aGlzLl9wcmVwS2V5QmluZGluZ3MoKSx0aGlzLl9yZXNldEtleUV2ZW50TGlzdGVuZXJzKCl9LHJlbW92ZU93bktleUJpbmRpbmdzOmZ1bmN0aW9uKCl7dGhpcy5faW1wZXJhdGl2ZUtleUJpbmRpbmdzPXt9LHRoaXMuX3ByZXBLZXlCaW5kaW5ncygpLHRoaXMuX3Jlc2V0S2V5RXZlbnRMaXN0ZW5lcnMoKX0sa2V5Ym9hcmRFdmVudE1hdGNoZXNLZXlzOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPU9vKGUpLGk9MDtpPG4ubGVuZ3RoOysraSlpZihSbyhuW2ldLHQpKXJldHVybiEwO3JldHVybiExfSxfY29sbGVjdEtleUJpbmRpbmdzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5iZWhhdmlvcnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXlCaW5kaW5nc30pKTtyZXR1cm4tMT09PXQuaW5kZXhPZih0aGlzLmtleUJpbmRpbmdzKSYmdC5wdXNoKHRoaXMua2V5QmluZGluZ3MpLHR9LF9wcmVwS2V5QmluZGluZ3M6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fa2V5QmluZGluZ3M9e30sdGhpcy5fY29sbGVjdEtleUJpbmRpbmdzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpdGhpcy5fYWRkS2V5QmluZGluZyhlLHRbZV0pfSksdGhpcyksdGhpcy5faW1wZXJhdGl2ZUtleUJpbmRpbmdzKXRoaXMuX2FkZEtleUJpbmRpbmcodCx0aGlzLl9pbXBlcmF0aXZlS2V5QmluZGluZ3NbdF0pO2Zvcih2YXIgZSBpbiB0aGlzLl9rZXlCaW5kaW5ncyl0aGlzLl9rZXlCaW5kaW5nc1tlXS5zb3J0KChmdW5jdGlvbih0LGUpe3ZhciBuPXRbMF0uaGFzTW9kaWZpZXJzO3JldHVybiBuPT09ZVswXS5oYXNNb2RpZmllcnM/MDpuPy0xOjF9KSl9LF9hZGRLZXlCaW5kaW5nOmZ1bmN0aW9uKHQsZSl7T28odCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dGhpcy5fa2V5QmluZGluZ3NbdC5ldmVudF09dGhpcy5fa2V5QmluZGluZ3NbdC5ldmVudF18fFtdLHRoaXMuX2tleUJpbmRpbmdzW3QuZXZlbnRdLnB1c2goW3QsZV0pfSksdGhpcyl9LF9yZXNldEtleUV2ZW50TGlzdGVuZXJzOmZ1bmN0aW9uKCl7dGhpcy5fdW5saXN0ZW5LZXlFdmVudExpc3RlbmVycygpLHRoaXMuaXNBdHRhY2hlZCYmdGhpcy5fbGlzdGVuS2V5RXZlbnRMaXN0ZW5lcnMoKX0sX2xpc3RlbktleUV2ZW50TGlzdGVuZXJzOmZ1bmN0aW9uKCl7dGhpcy5rZXlFdmVudFRhcmdldCYmT2JqZWN0LmtleXModGhpcy5fa2V5QmluZGluZ3MpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX29uS2V5QmluZGluZ0V2ZW50LmJpbmQodGhpcyx0aGlzLl9rZXlCaW5kaW5nc1t0XSk7dGhpcy5fYm91bmRLZXlIYW5kbGVycy5wdXNoKFt0aGlzLmtleUV2ZW50VGFyZ2V0LHQsZV0pLHRoaXMua2V5RXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcih0LGUpfSksdGhpcyl9LF91bmxpc3RlbktleUV2ZW50TGlzdGVuZXJzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0O3RoaXMuX2JvdW5kS2V5SGFuZGxlcnMubGVuZ3RoOykodD10aGlzLl9ib3VuZEtleUhhbmRsZXJzLnBvcCgpKVswXS5yZW1vdmVFdmVudExpc3RlbmVyKHRbMV0sdFsyXSl9LF9vbktleUJpbmRpbmdFdmVudDpmdW5jdGlvbih0LGUpe2lmKHRoaXMuc3RvcEtleWJvYXJkRXZlbnRQcm9wYWdhdGlvbiYmZS5zdG9wUHJvcGFnYXRpb24oKSwhZS5kZWZhdWx0UHJldmVudGVkKWZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dWzBdLHI9dFtuXVsxXTtpZihSbyhpLGUpJiYodGhpcy5fdHJpZ2dlcktleUhhbmRsZXIoaSxyLGUpLGUuZGVmYXVsdFByZXZlbnRlZCkpcmV0dXJufX0sX3RyaWdnZXJLZXlIYW5kbGVyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1PYmplY3QuY3JlYXRlKHQpO2kua2V5Ym9hcmRFdmVudD1uO3ZhciByPW5ldyBDdXN0b21FdmVudCh0LmV2ZW50LHtkZXRhaWw6aSxjYW5jZWxhYmxlOiEwfSk7dGhpc1tlXS5jYWxsKHRoaXMsciksci5kZWZhdWx0UHJldmVudGVkJiZuLnByZXZlbnREZWZhdWx0KCl9fSxEbz17cHJvcGVydGllczp7c2Nyb2xsVGFyZ2V0Ont0eXBlOkhUTUxFbGVtZW50LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRTY3JvbGxUYXJnZXR9fX0sb2JzZXJ2ZXJzOlsiX3Njcm9sbFRhcmdldENoYW5nZWQoc2Nyb2xsVGFyZ2V0LCBpc0F0dGFjaGVkKSJdLF9zaG91bGRIYXZlTGlzdGVuZXI6ITAsX3Njcm9sbFRhcmdldENoYW5nZWQ6ZnVuY3Rpb24odCxlKXtpZih0aGlzLl9vbGRTY3JvbGxUYXJnZXQmJih0aGlzLl90b2dnbGVTY3JvbGxMaXN0ZW5lcighMSx0aGlzLl9vbGRTY3JvbGxUYXJnZXQpLHRoaXMuX29sZFNjcm9sbFRhcmdldD1udWxsKSxlKWlmKCJkb2N1bWVudCI9PT10KXRoaXMuc2Nyb2xsVGFyZ2V0PXRoaXMuX2RvYztlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIG49dGhpcy5kb21Ib3N0O3RoaXMuc2Nyb2xsVGFyZ2V0PW4mJm4uJD9uLiRbdF06WWkodGhpcy5vd25lckRvY3VtZW50KS5xdWVyeVNlbGVjdG9yKCIjIit0KX1lbHNlIHRoaXMuX2lzVmFsaWRTY3JvbGxUYXJnZXQoKSYmKHRoaXMuX29sZFNjcm9sbFRhcmdldD10LHRoaXMuX3RvZ2dsZVNjcm9sbExpc3RlbmVyKHRoaXMuX3Nob3VsZEhhdmVMaXN0ZW5lcix0KSl9LF9zY3JvbGxIYW5kbGVyOmZ1bmN0aW9uIHQoKXt9LGdldCBfZGVmYXVsdFNjcm9sbFRhcmdldCgpe3JldHVybiB0aGlzLl9kb2N9LGdldCBfZG9jKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9LGdldCBfc2Nyb2xsVG9wKCl7cmV0dXJuIHRoaXMuX2lzVmFsaWRTY3JvbGxUYXJnZXQoKT90aGlzLnNjcm9sbFRhcmdldD09PXRoaXMuX2RvYz93aW5kb3cucGFnZVlPZmZzZXQ6dGhpcy5zY3JvbGxUYXJnZXQuc2Nyb2xsVG9wOjB9LGdldCBfc2Nyb2xsTGVmdCgpe3JldHVybiB0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCk/dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LnBhZ2VYT2Zmc2V0OnRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbExlZnQ6MH0sc2V0IF9zY3JvbGxUb3AodCl7dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LnNjcm9sbFRvKHdpbmRvdy5wYWdlWE9mZnNldCx0KTp0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCkmJih0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3A9dCl9LHNldCBfc2Nyb2xsTGVmdCh0KXt0aGlzLnNjcm9sbFRhcmdldD09PXRoaXMuX2RvYz93aW5kb3cuc2Nyb2xsVG8odCx3aW5kb3cucGFnZVlPZmZzZXQpOnRoaXMuX2lzVmFsaWRTY3JvbGxUYXJnZXQoKSYmKHRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbExlZnQ9dCl9LHNjcm9sbDpmdW5jdGlvbih0LGUpe3ZhciBuOyJvYmplY3QiPT10eXBlb2YgdD8obj10LmxlZnQsZT10LnRvcCk6bj10LG49bnx8MCxlPWV8fDAsdGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LnNjcm9sbFRvKG4sZSk6dGhpcy5faXNWYWxpZFNjcm9sbFRhcmdldCgpJiYodGhpcy5zY3JvbGxUYXJnZXQuc2Nyb2xsTGVmdD1uLHRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbFRvcD1lKX0sZ2V0IF9zY3JvbGxUYXJnZXRXaWR0aCgpe3JldHVybiB0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCk/dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LmlubmVyV2lkdGg6dGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0V2lkdGg6MH0sZ2V0IF9zY3JvbGxUYXJnZXRIZWlnaHQoKXtyZXR1cm4gdGhpcy5faXNWYWxpZFNjcm9sbFRhcmdldCgpP3RoaXMuc2Nyb2xsVGFyZ2V0PT09dGhpcy5fZG9jP3dpbmRvdy5pbm5lckhlaWdodDp0aGlzLnNjcm9sbFRhcmdldC5vZmZzZXRIZWlnaHQ6MH0sX2lzVmFsaWRTY3JvbGxUYXJnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zY3JvbGxUYXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudH0sX3RvZ2dsZVNjcm9sbExpc3RlbmVyOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZT09PXRoaXMuX2RvYz93aW5kb3c6ZTt0P3RoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcnx8KHRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcj10aGlzLl9zY3JvbGxIYW5kbGVyLmJpbmQodGhpcyksbi5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcikpOnRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlciYmKG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9ib3VuZFNjcm9sbEhhbmRsZXIpLHRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcj1udWxsKX0sdG9nZ2xlU2Nyb2xsTGlzdGVuZXI6ZnVuY3Rpb24odCl7dGhpcy5fc2hvdWxkSGF2ZUxpc3RlbmVyPXQsdGhpcy5fdG9nZ2xlU2Nyb2xsTGlzdGVuZXIodCx0aGlzLnNjcm9sbFRhcmdldCl9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwp2YXIgQm89bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvaVAoPzpob25lfGFkOyg/OiBVOyk/IENQVSkgT1MgKFxkKykvKSxIbz1CbyYmQm9bMV0+PTgsRm89Ii0xMDAwMHB4IixWbz0tMTAwO1JyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1tYXgtZGV2aWNlLXBpeGVsLXJhdGlvOiAxKSB7CiAgICAgICAgOmhvc3QgewogICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgICNpdGVtcyB7CiAgICAgICAgQGFwcGx5IC0taXJvbi1saXN0LWl0ZW1zLWNvbnRhaW5lcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIDpob3N0KDpub3QoW2dyaWRdKSkgI2l0ZW1zID4gOjpzbG90dGVkKCopIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgI2l0ZW1zID4gOjpzbG90dGVkKCopIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGFycmF5LXNlbGVjdG9yIGlkPSJzZWxlY3RvciIgaXRlbXM9Int7aXRlbXN9fSIgc2VsZWN0ZWQ9Int7c2VsZWN0ZWRJdGVtc319IiBzZWxlY3RlZC1pdGVtPSJ7e3NlbGVjdGVkSXRlbX19Ij48L2FycmF5LXNlbGVjdG9yPgoKICAgIDxkaXYgaWQ9Iml0ZW1zIj4KICAgICAgPHNsb3Q+PC9zbG90PgogICAgPC9kaXY+CmAsaXM6Imlyb24tbGlzdCIscHJvcGVydGllczp7aXRlbXM6e3R5cGU6QXJyYXl9LGFzOnt0eXBlOlN0cmluZyx2YWx1ZToiaXRlbSJ9LGluZGV4QXM6e3R5cGU6U3RyaW5nLHZhbHVlOiJpbmRleCJ9LHNlbGVjdGVkQXM6e3R5cGU6U3RyaW5nLHZhbHVlOiJzZWxlY3RlZCJ9LGdyaWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il9ncmlkQ2hhbmdlZCJ9LHNlbGVjdGlvbkVuYWJsZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2VsZWN0ZWRJdGVtOnt0eXBlOk9iamVjdCxub3RpZnk6ITB9LHNlbGVjdGVkSXRlbXM6e3R5cGU6T2JqZWN0LG5vdGlmeTohMH0sbXVsdGlTZWxlY3Rpb246e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2Nyb2xsT2Zmc2V0Ont0eXBlOk51bWJlcix2YWx1ZTowfX0sb2JzZXJ2ZXJzOlsiX2l0ZW1zQ2hhbmdlZChpdGVtcy4qKSIsIl9zZWxlY3Rpb25FbmFibGVkQ2hhbmdlZChzZWxlY3Rpb25FbmFibGVkKSIsIl9tdWx0aVNlbGVjdGlvbkNoYW5nZWQobXVsdGlTZWxlY3Rpb24pIiwiX3NldE92ZXJmbG93KHNjcm9sbFRhcmdldCwgc2Nyb2xsT2Zmc2V0KSJdLGJlaGF2aW9yczpbWnIsZ28sRG8scG9dLF9yYXRpbzouNSxfc2Nyb2xsZXJQYWRkaW5nVG9wOjAsX3Njcm9sbFBvc2l0aW9uOjAsX3BoeXNpY2FsU2l6ZTowLF9waHlzaWNhbEF2ZXJhZ2U6MCxfcGh5c2ljYWxBdmVyYWdlQ291bnQ6MCxfcGh5c2ljYWxUb3A6MCxfdmlydHVhbENvdW50OjAsX2VzdFNjcm9sbEhlaWdodDowLF9zY3JvbGxIZWlnaHQ6MCxfdmlld3BvcnRIZWlnaHQ6MCxfdmlld3BvcnRXaWR0aDowLF9waHlzaWNhbEl0ZW1zOm51bGwsX3BoeXNpY2FsU2l6ZXM6bnVsbCxfZmlyc3RWaXNpYmxlSW5kZXhWYWw6bnVsbCxfbGFzdFZpc2libGVJbmRleFZhbDpudWxsLF9tYXhQYWdlczoyLF9mb2N1c2VkSXRlbTpudWxsLF9mb2N1c2VkVmlydHVhbEluZGV4Oi0xLF9mb2N1c2VkUGh5c2ljYWxJbmRleDotMSxfb2Zmc2NyZWVuRm9jdXNlZEl0ZW06bnVsbCxfZm9jdXNCYWNrZmlsbEl0ZW06bnVsbCxfaXRlbXNQZXJSb3c6MSxfaXRlbVdpZHRoOjAsX3Jvd0hlaWdodDowLF90ZW1wbGF0ZUNvc3Q6MCxfcGFyZW50TW9kZWw6ITAsZ2V0IF9waHlzaWNhbEJvdHRvbSgpe3JldHVybiB0aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9waHlzaWNhbFNpemV9LGdldCBfc2Nyb2xsQm90dG9tKCl7cmV0dXJuIHRoaXMuX3Njcm9sbFBvc2l0aW9uK3RoaXMuX3ZpZXdwb3J0SGVpZ2h0fSxnZXQgX3ZpcnR1YWxFbmQoKXtyZXR1cm4gdGhpcy5fdmlydHVhbFN0YXJ0K3RoaXMuX3BoeXNpY2FsQ291bnQtMX0sZ2V0IF9oaWRkZW5Db250ZW50U2l6ZSgpe3JldHVybih0aGlzLmdyaWQ/dGhpcy5fcGh5c2ljYWxSb3dzKnRoaXMuX3Jvd0hlaWdodDp0aGlzLl9waHlzaWNhbFNpemUpLXRoaXMuX3ZpZXdwb3J0SGVpZ2h0fSxnZXQgX2l0ZW1zUGFyZW50KCl7cmV0dXJuIFlpKFlpKHRoaXMuX3VzZXJUZW1wbGF0ZSkucGFyZW50Tm9kZSl9LGdldCBfbWF4U2Nyb2xsVG9wKCl7cmV0dXJuIHRoaXMuX2VzdFNjcm9sbEhlaWdodC10aGlzLl92aWV3cG9ydEhlaWdodCt0aGlzLl9zY3JvbGxPZmZzZXR9LGdldCBfbWF4VmlydHVhbFN0YXJ0KCl7dmFyIHQ9dGhpcy5fY29udmVydEluZGV4VG9Db21wbGV0ZVJvdyh0aGlzLl92aXJ0dWFsQ291bnQpO3JldHVybiBNYXRoLm1heCgwLHQtdGhpcy5fcGh5c2ljYWxDb3VudCl9LHNldCBfdmlydHVhbFN0YXJ0KHQpe3Q9dGhpcy5fY2xhbXAodCwwLHRoaXMuX21heFZpcnR1YWxTdGFydCksdGhpcy5ncmlkJiYodC09dCV0aGlzLl9pdGVtc1BlclJvdyksdGhpcy5fdmlydHVhbFN0YXJ0VmFsPXR9LGdldCBfdmlydHVhbFN0YXJ0KCl7cmV0dXJuIHRoaXMuX3ZpcnR1YWxTdGFydFZhbHx8MH0sc2V0IF9waHlzaWNhbFN0YXJ0KHQpeyh0JT10aGlzLl9waHlzaWNhbENvdW50KTwwJiYodD10aGlzLl9waHlzaWNhbENvdW50K3QpLHRoaXMuZ3JpZCYmKHQtPXQldGhpcy5faXRlbXNQZXJSb3cpLHRoaXMuX3BoeXNpY2FsU3RhcnRWYWw9dH0sZ2V0IF9waHlzaWNhbFN0YXJ0KCl7cmV0dXJuIHRoaXMuX3BoeXNpY2FsU3RhcnRWYWx8fDB9LGdldCBfcGh5c2ljYWxFbmQoKXtyZXR1cm4odGhpcy5fcGh5c2ljYWxTdGFydCt0aGlzLl9waHlzaWNhbENvdW50LTEpJXRoaXMuX3BoeXNpY2FsQ291bnR9LHNldCBfcGh5c2ljYWxDb3VudCh0KXt0aGlzLl9waHlzaWNhbENvdW50VmFsPXR9LGdldCBfcGh5c2ljYWxDb3VudCgpe3JldHVybiB0aGlzLl9waHlzaWNhbENvdW50VmFsfHwwfSxnZXQgX29wdFBoeXNpY2FsU2l6ZSgpe3JldHVybiAwPT09dGhpcy5fdmlld3BvcnRIZWlnaHQ/MS8wOnRoaXMuX3ZpZXdwb3J0SGVpZ2h0KnRoaXMuX21heFBhZ2VzfSxnZXQgX2lzVmlzaWJsZSgpe3JldHVybiBCb29sZWFuKHRoaXMub2Zmc2V0V2lkdGh8fHRoaXMub2Zmc2V0SGVpZ2h0KX0sZ2V0IGZpcnN0VmlzaWJsZUluZGV4KCl7dmFyIHQ9dGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw7aWYobnVsbD09dCl7dmFyIGU9dGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fc2Nyb2xsT2Zmc2V0O3Q9dGhpcy5faXRlcmF0ZUl0ZW1zKChmdW5jdGlvbih0LG4pe3JldHVybihlKz10aGlzLl9nZXRQaHlzaWNhbFNpemVJbmNyZW1lbnQodCkpPnRoaXMuX3Njcm9sbFBvc2l0aW9uP3RoaXMuZ3JpZD9uLW4ldGhpcy5faXRlbXNQZXJSb3c6bjp0aGlzLmdyaWQmJnRoaXMuX3ZpcnR1YWxDb3VudC0xPT09bj9uLW4ldGhpcy5faXRlbXNQZXJSb3c6dm9pZCAwfSkpfHwwLHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPXR9cmV0dXJuIHR9LGdldCBsYXN0VmlzaWJsZUluZGV4KCl7dmFyIHQ9dGhpcy5fbGFzdFZpc2libGVJbmRleFZhbDtpZihudWxsPT10KXtpZih0aGlzLmdyaWQpdD1NYXRoLm1pbih0aGlzLl92aXJ0dWFsQ291bnQsdGhpcy5maXJzdFZpc2libGVJbmRleCt0aGlzLl9lc3RSb3dzSW5WaWV3KnRoaXMuX2l0ZW1zUGVyUm93LTEpO2Vsc2V7dmFyIGU9dGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fc2Nyb2xsT2Zmc2V0O3RoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24obixpKXtlPHRoaXMuX3Njcm9sbEJvdHRvbSYmKHQ9aSksZSs9dGhpcy5fZ2V0UGh5c2ljYWxTaXplSW5jcmVtZW50KG4pfSkpfXRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9dH1yZXR1cm4gdH0sZ2V0IF9kZWZhdWx0U2Nyb2xsVGFyZ2V0KCl7cmV0dXJuIHRoaXN9LGdldCBfdmlydHVhbFJvd0NvdW50KCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLl92aXJ0dWFsQ291bnQvdGhpcy5faXRlbXNQZXJSb3cpfSxnZXQgX2VzdFJvd3NJblZpZXcoKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuX3ZpZXdwb3J0SGVpZ2h0L3RoaXMuX3Jvd0hlaWdodCl9LGdldCBfcGh5c2ljYWxSb3dzKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLl9waHlzaWNhbENvdW50L3RoaXMuX2l0ZW1zUGVyUm93KX0sZ2V0IF9zY3JvbGxPZmZzZXQoKXtyZXR1cm4gdGhpcy5fc2Nyb2xsZXJQYWRkaW5nVG9wK3RoaXMuc2Nyb2xsT2Zmc2V0fSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2RpZEZvY3VzLmJpbmQodGhpcyksITApfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2RlYm91bmNlKCJfcmVuZGVyIix0aGlzLl9yZW5kZXIsX3QpLHRoaXMubGlzdGVuKHRoaXMsImlyb24tcmVzaXplIiwiX3Jlc2l6ZUhhbmRsZXIiKSx0aGlzLmxpc3Rlbih0aGlzLCJrZXlkb3duIiwiX2tleWRvd25IYW5kbGVyIil9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy51bmxpc3Rlbih0aGlzLCJpcm9uLXJlc2l6ZSIsIl9yZXNpemVIYW5kbGVyIiksdGhpcy51bmxpc3Rlbih0aGlzLCJrZXlkb3duIiwiX2tleWRvd25IYW5kbGVyIil9LF9zZXRPdmVyZmxvdzpmdW5jdGlvbih0KXt0aGlzLnN0eWxlLndlYmtpdE92ZXJmbG93U2Nyb2xsaW5nPXQ9PT10aGlzPyJ0b3VjaCI6IiIsdGhpcy5zdHlsZS5vdmVyZmxvd1k9dD09PXRoaXM/ImF1dG8iOiIiLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2RlYm91bmNlKCJfcmVuZGVyIix0aGlzLl9yZW5kZXIsX3QpfSx1cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXM6ZnVuY3Rpb24oKXt2YXIgdD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKTt0aGlzLl9zY3JvbGxlclBhZGRpbmdUb3A9dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzPzA6cGFyc2VJbnQodFsicGFkZGluZy10b3AiXSwxMCksdGhpcy5faXNSVEw9Qm9vbGVhbigicnRsIj09PXQuZGlyZWN0aW9uKSx0aGlzLl92aWV3cG9ydFdpZHRoPXRoaXMuJC5pdGVtcy5vZmZzZXRXaWR0aCx0aGlzLl92aWV3cG9ydEhlaWdodD10aGlzLl9zY3JvbGxUYXJnZXRIZWlnaHQsdGhpcy5ncmlkJiZ0aGlzLl91cGRhdGVHcmlkTWV0cmljcygpfSxfc2Nyb2xsSGFuZGxlcjpmdW5jdGlvbigpe3ZhciB0PU1hdGgubWF4KDAsTWF0aC5taW4odGhpcy5fbWF4U2Nyb2xsVG9wLHRoaXMuX3Njcm9sbFRvcCkpLGU9dC10aGlzLl9zY3JvbGxQb3NpdGlvbixuPWU+PTA7aWYodGhpcy5fc2Nyb2xsUG9zaXRpb249dCx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCxNYXRoLmFicyhlKT50aGlzLl9waHlzaWNhbFNpemUmJnRoaXMuX3BoeXNpY2FsU2l6ZT4wKXtlLT10aGlzLl9zY3JvbGxPZmZzZXQ7dmFyIGk9TWF0aC5yb3VuZChlL3RoaXMuX3BoeXNpY2FsQXZlcmFnZSkqdGhpcy5faXRlbXNQZXJSb3c7dGhpcy5fdmlydHVhbFN0YXJ0PXRoaXMuX3ZpcnR1YWxTdGFydCtpLHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCtpLHRoaXMuX3BoeXNpY2FsVG9wPU1hdGgubWluKE1hdGguZmxvb3IodGhpcy5fdmlydHVhbFN0YXJ0L3RoaXMuX2l0ZW1zUGVyUm93KSp0aGlzLl9waHlzaWNhbEF2ZXJhZ2UsdGhpcy5fc2Nyb2xsUG9zaXRpb24pLHRoaXMuX3VwZGF0ZSgpfWVsc2UgaWYodGhpcy5fcGh5c2ljYWxDb3VudD4wKXt2YXIgcj10aGlzLl9nZXRSZXVzYWJsZXMobik7bj8odGhpcy5fcGh5c2ljYWxUb3A9ci5waHlzaWNhbFRvcCx0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0K3IuaW5kZXhlcy5sZW5ndGgsdGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0K3IuaW5kZXhlcy5sZW5ndGgpOih0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0LXIuaW5kZXhlcy5sZW5ndGgsdGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0LXIuaW5kZXhlcy5sZW5ndGgpLHRoaXMuX3VwZGF0ZShyLmluZGV4ZXMsbj9udWxsOnIuaW5kZXhlcyksdGhpcy5fZGVib3VuY2UoIl9pbmNyZWFzZVBvb2xJZk5lZWRlZCIsdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQuYmluZCh0aGlzLDApLHZ0KX19LF9nZXRSZXVzYWJsZXM6ZnVuY3Rpb24odCl7dmFyIGUsbixpLHI9W10sbz10aGlzLl9oaWRkZW5Db250ZW50U2l6ZSp0aGlzLl9yYXRpbyxhPXRoaXMuX3ZpcnR1YWxTdGFydCxzPXRoaXMuX3ZpcnR1YWxFbmQsbD10aGlzLl9waHlzaWNhbENvdW50LGM9dGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fc2Nyb2xsT2Zmc2V0LHU9dGhpcy5fc2Nyb2xsUG9zaXRpb24saD10aGlzLl9zY3JvbGxCb3R0b207Zm9yKHQ/KGU9dGhpcy5fcGh5c2ljYWxTdGFydCxuPXUtYyk6KGU9dGhpcy5fcGh5c2ljYWxFbmQsbj10aGlzLl9waHlzaWNhbEJvdHRvbSt0aGlzLl9zY3JvbGxPZmZzZXQtaCk7bi09aT10aGlzLl9nZXRQaHlzaWNhbFNpemVJbmNyZW1lbnQoZSksIShyLmxlbmd0aD49bHx8bjw9byk7KWlmKHQpe2lmKHMrci5sZW5ndGgrMT49dGhpcy5fdmlydHVhbENvdW50KWJyZWFrO2lmKGMraT49dS10aGlzLl9zY3JvbGxPZmZzZXQpYnJlYWs7ci5wdXNoKGUpLGMrPWksZT0oZSsxKSVsfWVsc2V7aWYoYS1yLmxlbmd0aDw9MClicmVhaztpZihjK3RoaXMuX3BoeXNpY2FsU2l6ZS1pPD1oKWJyZWFrO3IucHVzaChlKSxjLT1pLGU9MD09PWU/bC0xOmUtMX1yZXR1cm57aW5kZXhlczpyLHBoeXNpY2FsVG9wOmMtdGhpcy5fc2Nyb2xsT2Zmc2V0fX0sX3VwZGF0ZTpmdW5jdGlvbih0LGUpe2lmKCEodCYmMD09PXQubGVuZ3RofHwwPT09dGhpcy5fcGh5c2ljYWxDb3VudCkpe2lmKHRoaXMuX21hbmFnZUZvY3VzKCksdGhpcy5fYXNzaWduTW9kZWxzKHQpLHRoaXMuX3VwZGF0ZU1ldHJpY3ModCksZSlmb3IoO2UubGVuZ3RoOyl7dmFyIG49ZS5wb3AoKTt0aGlzLl9waHlzaWNhbFRvcC09dGhpcy5fZ2V0UGh5c2ljYWxTaXplSW5jcmVtZW50KG4pfXRoaXMuX3Bvc2l0aW9uSXRlbXMoKSx0aGlzLl91cGRhdGVTY3JvbGxlclNpemUoKX19LF9jcmVhdGVQb29sOmZ1bmN0aW9uKHQpe3ZhciBlLG47dGhpcy5fZW5zdXJlVGVtcGxhdGl6ZWQoKTt2YXIgaT1uZXcgQXJyYXkodCk7Zm9yKGU9MDtlPHQ7ZSsrKW49dGhpcy5zdGFtcChudWxsKSxpW2VdPW4ucm9vdC5xdWVyeVNlbGVjdG9yKCIqIiksdGhpcy5faXRlbXNQYXJlbnQuYXBwZW5kQ2hpbGQobi5yb290KTtyZXR1cm4gaX0sX2lzQ2xpZW50RnVsbDpmdW5jdGlvbigpe3JldHVybiAwIT10aGlzLl9zY3JvbGxCb3R0b20mJnRoaXMuX3BoeXNpY2FsQm90dG9tLTE+PXRoaXMuX3Njcm9sbEJvdHRvbSYmdGhpcy5fcGh5c2ljYWxUb3A8PXRoaXMuX3Njcm9sbFBvc2l0aW9ufSxfaW5jcmVhc2VQb29sSWZOZWVkZWQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fY2xhbXAodGhpcy5fcGh5c2ljYWxDb3VudCt0LDMsdGhpcy5fdmlydHVhbENvdW50LXRoaXMuX3ZpcnR1YWxTdGFydCk7aWYoZT10aGlzLl9jb252ZXJ0SW5kZXhUb0NvbXBsZXRlUm93KGUpLHRoaXMuZ3JpZCl7dmFyIG49ZSV0aGlzLl9pdGVtc1BlclJvdztuJiZlLW48PXRoaXMuX3BoeXNpY2FsQ291bnQmJihlKz10aGlzLl9pdGVtc1BlclJvdyksZS09bn12YXIgaT1lLXRoaXMuX3BoeXNpY2FsQ291bnQscj1NYXRoLnJvdW5kKC41KnRoaXMuX3BoeXNpY2FsQ291bnQpO2lmKCEoaTwwKSl7aWYoaT4wKXt2YXIgbz13aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7W10ucHVzaC5hcHBseSh0aGlzLl9waHlzaWNhbEl0ZW1zLHRoaXMuX2NyZWF0ZVBvb2woaSkpO2Zvcih2YXIgYT0wO2E8aTthKyspdGhpcy5fcGh5c2ljYWxTaXplcy5wdXNoKDApO3RoaXMuX3BoeXNpY2FsQ291bnQ9dGhpcy5fcGh5c2ljYWxDb3VudCtpLHRoaXMuX3BoeXNpY2FsU3RhcnQ+dGhpcy5fcGh5c2ljYWxFbmQmJnRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4KSYmdGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4KTx0aGlzLl9waHlzaWNhbEVuZCYmKHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCtpKSx0aGlzLl91cGRhdGUoKSx0aGlzLl90ZW1wbGF0ZUNvc3Q9KHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKS1vKS9pLHI9TWF0aC5yb3VuZCguNSp0aGlzLl9waHlzaWNhbENvdW50KX10aGlzLl92aXJ0dWFsRW5kPj10aGlzLl92aXJ0dWFsQ291bnQtMXx8MD09PXJ8fCh0aGlzLl9pc0NsaWVudEZ1bGwoKT90aGlzLl9waHlzaWNhbFNpemU8dGhpcy5fb3B0UGh5c2ljYWxTaXplJiZ0aGlzLl9kZWJvdW5jZSgiX2luY3JlYXNlUG9vbElmTmVlZGVkIix0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZC5iaW5kKHRoaXMsdGhpcy5fY2xhbXAoTWF0aC5yb3VuZCg1MC90aGlzLl90ZW1wbGF0ZUNvc3QpLDEscikpLHl0KTp0aGlzLl9kZWJvdW5jZSgiX2luY3JlYXNlUG9vbElmTmVlZGVkIix0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZC5iaW5kKHRoaXMsciksdnQpKX19LF9yZW5kZXI6ZnVuY3Rpb24oKXtpZih0aGlzLmlzQXR0YWNoZWQmJnRoaXMuX2lzVmlzaWJsZSlpZigwIT09dGhpcy5fcGh5c2ljYWxDb3VudCl7dmFyIHQ9dGhpcy5fZ2V0UmV1c2FibGVzKCEwKTt0aGlzLl9waHlzaWNhbFRvcD10LnBoeXNpY2FsVG9wLHRoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQrdC5pbmRleGVzLmxlbmd0aCx0aGlzLl9waHlzaWNhbFN0YXJ0PXRoaXMuX3BoeXNpY2FsU3RhcnQrdC5pbmRleGVzLmxlbmd0aCx0aGlzLl91cGRhdGUodC5pbmRleGVzKSx0aGlzLl91cGRhdGUoKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKX1lbHNlIHRoaXMuX3ZpcnR1YWxDb3VudD4wJiYodGhpcy51cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXMoKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgzKSl9LF9lbnN1cmVUZW1wbGF0aXplZDpmdW5jdGlvbigpe2lmKCF0aGlzLmN0b3Ipe3RoaXMuX3VzZXJUZW1wbGF0ZT10aGlzLnF1ZXJ5RWZmZWN0aXZlQ2hpbGRyZW4oInRlbXBsYXRlIiksdGhpcy5fdXNlclRlbXBsYXRlfHxjb25zb2xlLndhcm4oImlyb24tbGlzdCByZXF1aXJlcyBhIHRlbXBsYXRlIHRvIGJlIHByb3ZpZGVkIGluIGxpZ2h0LWRvbSIpO3ZhciB0PXtfX2tleV9fOiEwfTt0W3RoaXMuYXNdPSEwLHRbdGhpcy5pbmRleEFzXT0hMCx0W3RoaXMuc2VsZWN0ZWRBc109ITAsdC50YWJJbmRleD0hMCx0aGlzLl9pbnN0YW5jZVByb3BzPXQsdGhpcy50ZW1wbGF0aXplKHRoaXMuX3VzZXJUZW1wbGF0ZSx0aGlzLm11dGFibGVEYXRhKX19LF9ncmlkQ2hhbmdlZDpmdW5jdGlvbih0LGUpe3ZvaWQgMCE9PWUmJih0aGlzLm5vdGlmeVJlc2l6ZSgpLERpKCksdCYmdGhpcy5fdXBkYXRlR3JpZE1ldHJpY3MoKSl9LF9pdGVtc0NoYW5nZWQ6ZnVuY3Rpb24odCl7aWYoIml0ZW1zIj09PXQucGF0aCl0aGlzLl92aXJ0dWFsU3RhcnQ9MCx0aGlzLl9waHlzaWNhbFRvcD0wLHRoaXMuX3ZpcnR1YWxDb3VudD10aGlzLml0ZW1zP3RoaXMuaXRlbXMubGVuZ3RoOjAsdGhpcy5fcGh5c2ljYWxJbmRleEZvcktleT17fSx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9waHlzaWNhbENvdW50PXRoaXMuX3BoeXNpY2FsQ291bnR8fDAsdGhpcy5fcGh5c2ljYWxJdGVtcz10aGlzLl9waHlzaWNhbEl0ZW1zfHxbXSx0aGlzLl9waHlzaWNhbFNpemVzPXRoaXMuX3BoeXNpY2FsU2l6ZXN8fFtdLHRoaXMuX3BoeXNpY2FsU3RhcnQ9MCx0aGlzLl9zY3JvbGxUb3A+dGhpcy5fc2Nyb2xsT2Zmc2V0JiZ0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKDApLHRoaXMuX3JlbW92ZUZvY3VzZWRJdGVtKCksdGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLHRoaXMuX3JlbmRlcixfdCk7ZWxzZSBpZigiaXRlbXMuc3BsaWNlcyI9PT10LnBhdGgpe2lmKHRoaXMuX2FkanVzdFZpcnR1YWxJbmRleCh0LnZhbHVlLmluZGV4U3BsaWNlcyksdGhpcy5fdmlydHVhbENvdW50PXRoaXMuaXRlbXM/dGhpcy5pdGVtcy5sZW5ndGg6MCx0LnZhbHVlLmluZGV4U3BsaWNlcy5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5hZGRlZENvdW50PjB8fHQucmVtb3ZlZC5sZW5ndGg+MH0pKSl7dmFyIGU9dGhpcy5fZ2V0QWN0aXZlRWxlbWVudCgpO3RoaXMuY29udGFpbnMoZSkmJmUuYmx1cigpfXZhciBuPXQudmFsdWUuaW5kZXhTcGxpY2VzLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmluZGV4K3QuYWRkZWRDb3VudD49dGhpcy5fdmlydHVhbFN0YXJ0JiZ0LmluZGV4PD10aGlzLl92aXJ0dWFsRW5kfSksdGhpcyk7dGhpcy5faXNDbGllbnRGdWxsKCkmJiFufHx0aGlzLl9kZWJvdW5jZSgiX3JlbmRlciIsdGhpcy5fcmVuZGVyLF90KX1lbHNlIml0ZW1zLmxlbmd0aCIhPT10LnBhdGgmJnRoaXMuX2ZvcndhcmRJdGVtUGF0aCh0LnBhdGgsdC52YWx1ZSl9LF9mb3J3YXJkSXRlbVBhdGg6ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIsbz0odD10LnNsaWNlKDYpKS5pbmRleE9mKCIuIik7LTE9PT1vJiYobz10Lmxlbmd0aCk7dmFyIGE9dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pLHM9cGFyc2VJbnQodC5zdWJzdHJpbmcoMCxvKSwxMCk7KG49dGhpcy5faXNJbmRleFJlbmRlcmVkKHMpKT8oaT10aGlzLl9nZXRQaHlzaWNhbEluZGV4KHMpLHI9dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fcGh5c2ljYWxJdGVtc1tpXSkpOmEmJihyPWEpLHImJnJbdGhpcy5pbmRleEFzXT09PXMmJih0PXQuc3Vic3RyaW5nKG8rMSksci5fc2V0UGVuZGluZ1Byb3BlcnR5T3JQYXRoKHQ9dGhpcy5hcysodD8iLiIrdDoiIiksZSwhMSwhMCksci5fZmx1c2hQcm9wZXJ0aWVzJiZyLl9mbHVzaFByb3BlcnRpZXMoKSxuJiYodGhpcy5fdXBkYXRlTWV0cmljcyhbaV0pLHRoaXMuX3Bvc2l0aW9uSXRlbXMoKSx0aGlzLl91cGRhdGVTY3JvbGxlclNpemUoKSkpfSxfYWRqdXN0VmlydHVhbEluZGV4OmZ1bmN0aW9uKHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7aWYodC5yZW1vdmVkLmZvckVhY2godGhpcy5fcmVtb3ZlSXRlbSx0aGlzKSx0LmluZGV4PHRoaXMuX3ZpcnR1YWxTdGFydCl7dmFyIGU9TWF0aC5tYXgodC5hZGRlZENvdW50LXQucmVtb3ZlZC5sZW5ndGgsdC5pbmRleC10aGlzLl92aXJ0dWFsU3RhcnQpO3RoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQrZSx0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4Pj0wJiYodGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD10aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4K2UpfX0pLHRoaXMpfSxfcmVtb3ZlSXRlbTpmdW5jdGlvbih0KXt0aGlzLiQuc2VsZWN0b3IuZGVzZWxlY3QodCksdGhpcy5fZm9jdXNlZEl0ZW0mJnRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX2ZvY3VzZWRJdGVtKVt0aGlzLmFzXT09PXQmJnRoaXMuX3JlbW92ZUZvY3VzZWRJdGVtKCl9LF9pdGVyYXRlSXRlbXM6ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIsbztpZigyPT09YXJndW1lbnRzLmxlbmd0aCYmZSl7Zm9yKG89MDtvPGUubGVuZ3RoO28rKylpZihpPXRoaXMuX2NvbXB1dGVWaWR4KG49ZVtvXSksbnVsbCE9KHI9dC5jYWxsKHRoaXMsbixpKSkpcmV0dXJuIHJ9ZWxzZXtmb3Iobj10aGlzLl9waHlzaWNhbFN0YXJ0LGk9dGhpcy5fdmlydHVhbFN0YXJ0O248dGhpcy5fcGh5c2ljYWxDb3VudDtuKyssaSsrKWlmKG51bGwhPShyPXQuY2FsbCh0aGlzLG4saSkpKXJldHVybiByO2ZvcihuPTA7bjx0aGlzLl9waHlzaWNhbFN0YXJ0O24rKyxpKyspaWYobnVsbCE9KHI9dC5jYWxsKHRoaXMsbixpKSkpcmV0dXJuIHJ9fSxfY29tcHV0ZVZpZHg6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PXRoaXMuX3BoeXNpY2FsU3RhcnQ/dGhpcy5fdmlydHVhbFN0YXJ0Kyh0LXRoaXMuX3BoeXNpY2FsU3RhcnQpOnRoaXMuX3ZpcnR1YWxTdGFydCsodGhpcy5fcGh5c2ljYWxDb3VudC10aGlzLl9waHlzaWNhbFN0YXJ0KSt0fSxfYXNzaWduTW9kZWxzOmZ1bmN0aW9uKHQpe3RoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9waHlzaWNhbEl0ZW1zW3RdLGk9dGhpcy5pdGVtcyYmdGhpcy5pdGVtc1tlXTtpZihudWxsIT1pKXt2YXIgcj10aGlzLm1vZGVsRm9yRWxlbWVudChuKTtyLl9fa2V5X189bnVsbCx0aGlzLl9mb3J3YXJkUHJvcGVydHkocix0aGlzLmFzLGkpLHRoaXMuX2ZvcndhcmRQcm9wZXJ0eShyLHRoaXMuc2VsZWN0ZWRBcyx0aGlzLiQuc2VsZWN0b3IuaXNTZWxlY3RlZChpKSksdGhpcy5fZm9yd2FyZFByb3BlcnR5KHIsdGhpcy5pbmRleEFzLGUpLHRoaXMuX2ZvcndhcmRQcm9wZXJ0eShyLCJ0YWJJbmRleCIsdGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD09PWU/MDotMSksdGhpcy5fcGh5c2ljYWxJbmRleEZvcktleVtyLl9fa2V5X19dPXQsci5fZmx1c2hQcm9wZXJ0aWVzJiZyLl9mbHVzaFByb3BlcnRpZXMoITApLG4ucmVtb3ZlQXR0cmlidXRlKCJoaWRkZW4iKX1lbHNlIG4uc2V0QXR0cmlidXRlKCJoaWRkZW4iLCIiKX0pLHQpfSxfdXBkYXRlTWV0cmljczpmdW5jdGlvbih0KXtEaSgpO3ZhciBlPTAsbj0wLGk9dGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQscj10aGlzLl9waHlzaWNhbEF2ZXJhZ2U7dGhpcy5faXRlcmF0ZUl0ZW1zKChmdW5jdGlvbih0LGkpe24rPXRoaXMuX3BoeXNpY2FsU2l6ZXNbdF0sdGhpcy5fcGh5c2ljYWxTaXplc1t0XT10aGlzLl9waHlzaWNhbEl0ZW1zW3RdLm9mZnNldEhlaWdodCxlKz10aGlzLl9waHlzaWNhbFNpemVzW3RdLHRoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50Kz10aGlzLl9waHlzaWNhbFNpemVzW3RdPzE6MH0pLHQpLHRoaXMuZ3JpZD8odGhpcy5fdXBkYXRlR3JpZE1ldHJpY3MoKSx0aGlzLl9waHlzaWNhbFNpemU9TWF0aC5jZWlsKHRoaXMuX3BoeXNpY2FsQ291bnQvdGhpcy5faXRlbXNQZXJSb3cpKnRoaXMuX3Jvd0hlaWdodCk6KG49MT09PXRoaXMuX2l0ZW1zUGVyUm93P246TWF0aC5jZWlsKHRoaXMuX3BoeXNpY2FsQ291bnQvdGhpcy5faXRlbXNQZXJSb3cpKnRoaXMuX3Jvd0hlaWdodCx0aGlzLl9waHlzaWNhbFNpemU9dGhpcy5fcGh5c2ljYWxTaXplK2Utbix0aGlzLl9pdGVtc1BlclJvdz0xKSx0aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudCE9PWkmJih0aGlzLl9waHlzaWNhbEF2ZXJhZ2U9TWF0aC5yb3VuZCgocippK2UpL3RoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50KSl9LF91cGRhdGVHcmlkTWV0cmljczpmdW5jdGlvbigpe3RoaXMuX2l0ZW1XaWR0aD10aGlzLl9waHlzaWNhbENvdW50PjA/dGhpcy5fcGh5c2ljYWxJdGVtc1swXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDoyMDAsdGhpcy5fcm93SGVpZ2h0PXRoaXMuX3BoeXNpY2FsQ291bnQ+MD90aGlzLl9waHlzaWNhbEl0ZW1zWzBdLm9mZnNldEhlaWdodDoyMDAsdGhpcy5faXRlbXNQZXJSb3c9dGhpcy5faXRlbVdpZHRoP01hdGguZmxvb3IodGhpcy5fdmlld3BvcnRXaWR0aC90aGlzLl9pdGVtV2lkdGgpOnRoaXMuX2l0ZW1zUGVyUm93fSxfcG9zaXRpb25JdGVtczpmdW5jdGlvbigpe3RoaXMuX2FkanVzdFNjcm9sbFBvc2l0aW9uKCk7dmFyIHQ9dGhpcy5fcGh5c2ljYWxUb3A7aWYodGhpcy5ncmlkKXt2YXIgZT0odGhpcy5fdmlld3BvcnRXaWR0aC10aGlzLl9pdGVtc1BlclJvdyp0aGlzLl9pdGVtV2lkdGgpLzI7dGhpcy5faXRlcmF0ZUl0ZW1zKChmdW5jdGlvbihuLGkpe3ZhciByPU1hdGguZmxvb3IoaSV0aGlzLl9pdGVtc1BlclJvdyp0aGlzLl9pdGVtV2lkdGgrZSk7dGhpcy5faXNSVEwmJihyKj0tMSksdGhpcy50cmFuc2xhdGUzZChyKyJweCIsdCsicHgiLDAsdGhpcy5fcGh5c2ljYWxJdGVtc1tuXSksdGhpcy5fc2hvdWxkUmVuZGVyTmV4dFJvdyhpKSYmKHQrPXRoaXMuX3Jvd0hlaWdodCl9KSl9ZWxzZXtjb25zdCBlPVtdO3RoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24obixpKXtjb25zdCByPXRoaXMuX3BoeXNpY2FsSXRlbXNbbl07dGhpcy50cmFuc2xhdGUzZCgwLHQrInB4IiwwLHIpLHQrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbbl07Y29uc3Qgbz1yLmlkO28mJmUucHVzaChvKX0pKSxlLmxlbmd0aCYmdGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtb3ducyIsZS5qb2luKCIgIikpfX0sX2dldFBoeXNpY2FsU2l6ZUluY3JlbWVudDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ncmlkP3RoaXMuX2NvbXB1dGVWaWR4KHQpJXRoaXMuX2l0ZW1zUGVyUm93IT10aGlzLl9pdGVtc1BlclJvdy0xPzA6dGhpcy5fcm93SGVpZ2h0OnRoaXMuX3BoeXNpY2FsU2l6ZXNbdF19LF9zaG91bGRSZW5kZXJOZXh0Um93OmZ1bmN0aW9uKHQpe3JldHVybiB0JXRoaXMuX2l0ZW1zUGVyUm93PT10aGlzLl9pdGVtc1BlclJvdy0xfSxfYWRqdXN0U2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24oKXt2YXIgdD0wPT09dGhpcy5fdmlydHVhbFN0YXJ0P3RoaXMuX3BoeXNpY2FsVG9wOk1hdGgubWluKHRoaXMuX3Njcm9sbFBvc2l0aW9uK3RoaXMuX3BoeXNpY2FsVG9wLDApO2lmKDAhPT10KXt0aGlzLl9waHlzaWNhbFRvcD10aGlzLl9waHlzaWNhbFRvcC10O3ZhciBlPXRoaXMuX3Njcm9sbFBvc2l0aW9uOyFIbyYmZT4wJiZ0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKGUtdCl9fSxfcmVzZXRTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbih0KXt0aGlzLnNjcm9sbFRhcmdldCYmdD49MCYmKHRoaXMuX3Njcm9sbFRvcD10LHRoaXMuX3Njcm9sbFBvc2l0aW9uPXRoaXMuX3Njcm9sbFRvcCl9LF91cGRhdGVTY3JvbGxlclNpemU6ZnVuY3Rpb24odCl7dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0PXRoaXMuZ3JpZD90aGlzLl92aXJ0dWFsUm93Q291bnQqdGhpcy5fcm93SGVpZ2h0OnRoaXMuX3BoeXNpY2FsQm90dG9tK01hdGgubWF4KHRoaXMuX3ZpcnR1YWxDb3VudC10aGlzLl9waHlzaWNhbENvdW50LXRoaXMuX3ZpcnR1YWxTdGFydCwwKSp0aGlzLl9waHlzaWNhbEF2ZXJhZ2UsKCh0PSh0PSh0PXR8fDA9PT10aGlzLl9zY3JvbGxIZWlnaHQpfHx0aGlzLl9zY3JvbGxQb3NpdGlvbj49dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0LXRoaXMuX3BoeXNpY2FsU2l6ZSl8fHRoaXMuZ3JpZCYmdGhpcy4kLml0ZW1zLnN0eWxlLmhlaWdodDx0aGlzLl9lc3RTY3JvbGxIZWlnaHQpfHxNYXRoLmFicyh0aGlzLl9lc3RTY3JvbGxIZWlnaHQtdGhpcy5fc2Nyb2xsSGVpZ2h0KT49dGhpcy5fdmlld3BvcnRIZWlnaHQpJiYodGhpcy4kLml0ZW1zLnN0eWxlLmhlaWdodD10aGlzLl9lc3RTY3JvbGxIZWlnaHQrInB4Iix0aGlzLl9zY3JvbGxIZWlnaHQ9dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0KX0sc2Nyb2xsVG9JdGVtOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNjcm9sbFRvSW5kZXgodGhpcy5pdGVtcy5pbmRleE9mKHQpKX0sc2Nyb2xsVG9JbmRleDpmdW5jdGlvbih0KXtpZighKCJudW1iZXIiIT10eXBlb2YgdHx8dDwwfHx0PnRoaXMuaXRlbXMubGVuZ3RoLTEpJiYoRGkoKSwwIT09dGhpcy5fcGh5c2ljYWxDb3VudCkpe3Q9dGhpcy5fY2xhbXAodCwwLHRoaXMuX3ZpcnR1YWxDb3VudC0xKSwoIXRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0KXx8dD49dGhpcy5fbWF4VmlydHVhbFN0YXJ0KSYmKHRoaXMuX3ZpcnR1YWxTdGFydD10aGlzLmdyaWQ/dC0yKnRoaXMuX2l0ZW1zUGVyUm93OnQtMSksdGhpcy5fbWFuYWdlRm9jdXMoKSx0aGlzLl9hc3NpZ25Nb2RlbHMoKSx0aGlzLl91cGRhdGVNZXRyaWNzKCksdGhpcy5fcGh5c2ljYWxUb3A9TWF0aC5mbG9vcih0aGlzLl92aXJ0dWFsU3RhcnQvdGhpcy5faXRlbXNQZXJSb3cpKnRoaXMuX3BoeXNpY2FsQXZlcmFnZTtmb3IodmFyIGU9dGhpcy5fcGh5c2ljYWxTdGFydCxuPXRoaXMuX3ZpcnR1YWxTdGFydCxpPTAscj10aGlzLl9oaWRkZW5Db250ZW50U2l6ZTtuPHQmJmk8PXI7KWkrPXRoaXMuX2dldFBoeXNpY2FsU2l6ZUluY3JlbWVudChlKSxlPShlKzEpJXRoaXMuX3BoeXNpY2FsQ291bnQsbisrO3RoaXMuX3VwZGF0ZVNjcm9sbGVyU2l6ZSghMCksdGhpcy5fcG9zaXRpb25JdGVtcygpLHRoaXMuX3Jlc2V0U2Nyb2xsUG9zaXRpb24odGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fc2Nyb2xsT2Zmc2V0K2kpLHRoaXMuX2luY3JlYXNlUG9vbElmTmVlZGVkKDApLHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsfX0sX3Jlc2V0QXZlcmFnZTpmdW5jdGlvbigpe3RoaXMuX3BoeXNpY2FsQXZlcmFnZT0wLHRoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50PTB9LF9yZXNpemVIYW5kbGVyOmZ1bmN0aW9uKCl7dGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLChmdW5jdGlvbigpe3RoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2lzVmlzaWJsZT8odGhpcy51cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXMoKSx0aGlzLnRvZ2dsZVNjcm9sbExpc3RlbmVyKCEwKSx0aGlzLl9yZXNldEF2ZXJhZ2UoKSx0aGlzLl9yZW5kZXIoKSk6dGhpcy50b2dnbGVTY3JvbGxMaXN0ZW5lcighMSl9KSxfdCl9LHNlbGVjdEl0ZW06ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VsZWN0SW5kZXgodGhpcy5pdGVtcy5pbmRleE9mKHQpKX0sc2VsZWN0SW5kZXg6ZnVuY3Rpb24odCl7aWYoISh0PDB8fHQ+PXRoaXMuX3ZpcnR1YWxDb3VudCkpe2lmKCF0aGlzLm11bHRpU2VsZWN0aW9uJiZ0aGlzLnNlbGVjdGVkSXRlbSYmdGhpcy5jbGVhclNlbGVjdGlvbigpLHRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0KSl7dmFyIGU9dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fcGh5c2ljYWxJdGVtc1t0aGlzLl9nZXRQaHlzaWNhbEluZGV4KHQpXSk7ZSYmKGVbdGhpcy5zZWxlY3RlZEFzXT0hMCksdGhpcy51cGRhdGVTaXplRm9ySW5kZXgodCl9dGhpcy4kLnNlbGVjdG9yLnNlbGVjdEluZGV4KHQpfX0sZGVzZWxlY3RJdGVtOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRlc2VsZWN0SW5kZXgodGhpcy5pdGVtcy5pbmRleE9mKHQpKX0sZGVzZWxlY3RJbmRleDpmdW5jdGlvbih0KXt0PDB8fHQ+PXRoaXMuX3ZpcnR1YWxDb3VudHx8KHRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0KSYmKHRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX3BoeXNpY2FsSXRlbXNbdGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0KV0pW3RoaXMuc2VsZWN0ZWRBc109ITEsdGhpcy51cGRhdGVTaXplRm9ySW5kZXgodCkpLHRoaXMuJC5zZWxlY3Rvci5kZXNlbGVjdEluZGV4KHQpKX0sdG9nZ2xlU2VsZWN0aW9uRm9ySXRlbTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50b2dnbGVTZWxlY3Rpb25Gb3JJbmRleCh0aGlzLml0ZW1zLmluZGV4T2YodCkpfSx0b2dnbGVTZWxlY3Rpb25Gb3JJbmRleDpmdW5jdGlvbih0KXsodGhpcy4kLnNlbGVjdG9yLmlzSW5kZXhTZWxlY3RlZD90aGlzLiQuc2VsZWN0b3IuaXNJbmRleFNlbGVjdGVkKHQpOnRoaXMuJC5zZWxlY3Rvci5pc1NlbGVjdGVkKHRoaXMuaXRlbXNbdF0pKT90aGlzLmRlc2VsZWN0SW5kZXgodCk6dGhpcy5zZWxlY3RJbmRleCh0KX0sY2xlYXJTZWxlY3Rpb246ZnVuY3Rpb24oKXt0aGlzLl9pdGVyYXRlSXRlbXMoKGZ1bmN0aW9uKHQsZSl7dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fcGh5c2ljYWxJdGVtc1t0XSlbdGhpcy5zZWxlY3RlZEFzXT0hMX0pKSx0aGlzLiQuc2VsZWN0b3IuY2xlYXJTZWxlY3Rpb24oKX0sX3NlbGVjdGlvbkVuYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKHQpeyh0P3RoaXMubGlzdGVuOnRoaXMudW5saXN0ZW4pLmNhbGwodGhpcyx0aGlzLCJ0YXAiLCJfc2VsZWN0aW9uSGFuZGxlciIpfSxfc2VsZWN0aW9uSGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLm1vZGVsRm9yRWxlbWVudCh0LnRhcmdldCk7aWYoZSl7dmFyIG4saSxyPVlpKHQpLnBhdGhbMF0sbz10aGlzLl9nZXRBY3RpdmVFbGVtZW50KCksYT10aGlzLl9waHlzaWNhbEl0ZW1zW3RoaXMuX2dldFBoeXNpY2FsSW5kZXgoZVt0aGlzLmluZGV4QXNdKV07ImlucHV0IiE9PXIubG9jYWxOYW1lJiYiYnV0dG9uIiE9PXIubG9jYWxOYW1lJiYic2VsZWN0IiE9PXIubG9jYWxOYW1lJiYobj1lLnRhYkluZGV4LGUudGFiSW5kZXg9Vm8saT1vP28udGFiSW5kZXg6LTEsZS50YWJJbmRleD1uLG8mJmEhPT1vJiZhLmNvbnRhaW5zKG8pJiZpIT09Vm98fHRoaXMudG9nZ2xlU2VsZWN0aW9uRm9ySXRlbShlW3RoaXMuYXNdKSl9fSxfbXVsdGlTZWxlY3Rpb25DaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuY2xlYXJTZWxlY3Rpb24oKSx0aGlzLiQuc2VsZWN0b3IubXVsdGk9dH0sdXBkYXRlU2l6ZUZvckl0ZW06ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudXBkYXRlU2l6ZUZvckluZGV4KHRoaXMuaXRlbXMuaW5kZXhPZih0KSl9LHVwZGF0ZVNpemVGb3JJbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXNJbmRleFJlbmRlcmVkKHQpPyh0aGlzLl91cGRhdGVNZXRyaWNzKFt0aGlzLl9nZXRQaHlzaWNhbEluZGV4KHQpXSksdGhpcy5fcG9zaXRpb25JdGVtcygpLG51bGwpOm51bGx9LF9tYW5hZ2VGb2N1czpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg7dD49MCYmdDx0aGlzLl92aXJ0dWFsQ291bnQ/dGhpcy5faXNJbmRleFJlbmRlcmVkKHQpP3RoaXMuX3Jlc3RvcmVGb2N1c2VkSXRlbSgpOnRoaXMuX2NyZWF0ZUZvY3VzQmFja2ZpbGxJdGVtKCk6dGhpcy5fdmlydHVhbENvdW50PjAmJnRoaXMuX3BoeXNpY2FsQ291bnQ+MCYmKHRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4PXRoaXMuX3BoeXNpY2FsU3RhcnQsdGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD10aGlzLl92aXJ0dWFsU3RhcnQsdGhpcy5fZm9jdXNlZEl0ZW09dGhpcy5fcGh5c2ljYWxJdGVtc1t0aGlzLl9waHlzaWNhbFN0YXJ0XSl9LF9jb252ZXJ0SW5kZXhUb0NvbXBsZXRlUm93OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pdGVtc1BlclJvdz10aGlzLl9pdGVtc1BlclJvd3x8MSx0aGlzLmdyaWQ/TWF0aC5jZWlsKHQvdGhpcy5faXRlbXNQZXJSb3cpKnRoaXMuX2l0ZW1zUGVyUm93OnR9LF9pc0luZGV4UmVuZGVyZWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PXRoaXMuX3ZpcnR1YWxTdGFydCYmdDw9dGhpcy5fdmlydHVhbEVuZH0sX2lzSW5kZXhWaXNpYmxlOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj10aGlzLmZpcnN0VmlzaWJsZUluZGV4JiZ0PD10aGlzLmxhc3RWaXNpYmxlSW5kZXh9LF9nZXRQaHlzaWNhbEluZGV4OmZ1bmN0aW9uKHQpe3JldHVybih0aGlzLl9waHlzaWNhbFN0YXJ0Kyh0LXRoaXMuX3ZpcnR1YWxTdGFydCkpJXRoaXMuX3BoeXNpY2FsQ291bnR9LGZvY3VzSXRlbTpmdW5jdGlvbih0KXt0aGlzLl9mb2N1c1BoeXNpY2FsSXRlbSh0KX0sX2ZvY3VzUGh5c2ljYWxJdGVtOmZ1bmN0aW9uKHQpe2lmKCEodDwwfHx0Pj10aGlzLl92aXJ0dWFsQ291bnQpKXt0aGlzLl9yZXN0b3JlRm9jdXNlZEl0ZW0oKSx0aGlzLl9pc0luZGV4UmVuZGVyZWQodCl8fHRoaXMuc2Nyb2xsVG9JbmRleCh0KTt2YXIgZSxuPXRoaXMuX3BoeXNpY2FsSXRlbXNbdGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0KV0saT10aGlzLm1vZGVsRm9yRWxlbWVudChuKTtpLnRhYkluZGV4PVZvLG4udGFiSW5kZXg9PT1WbyYmKGU9biksZXx8KGU9WWkobikucXVlcnlTZWxlY3RvcignW3RhYmluZGV4PSItMTAwIl0nKSksaS50YWJJbmRleD0wLHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9dCxlJiZlLmZvY3VzKCl9fSxfcmVtb3ZlRm9jdXNlZEl0ZW06ZnVuY3Rpb24oKXt0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSYmdGhpcy5faXRlbXNQYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pLHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtPW51bGwsdGhpcy5fZm9jdXNCYWNrZmlsbEl0ZW09bnVsbCx0aGlzLl9mb2N1c2VkSXRlbT1udWxsLHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9LTEsdGhpcy5fZm9jdXNlZFBoeXNpY2FsSW5kZXg9LTF9LF9jcmVhdGVGb2N1c0JhY2tmaWxsSXRlbTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4O2lmKCEodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW18fHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg8MCkpe2lmKCF0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbSl7dmFyIGU9dGhpcy5zdGFtcChudWxsKTt0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbT1lLnJvb3QucXVlcnlTZWxlY3RvcigiKiIpLHRoaXMuX2l0ZW1zUGFyZW50LmFwcGVuZENoaWxkKGUucm9vdCl9dGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW09dGhpcy5fcGh5c2ljYWxJdGVtc1t0XSx0aGlzLm1vZGVsRm9yRWxlbWVudCh0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSkudGFiSW5kZXg9MCx0aGlzLl9waHlzaWNhbEl0ZW1zW3RdPXRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtLHRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4PXQsdGhpcy50cmFuc2xhdGUzZCgwLEZvLDAsdGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pfX0sX3Jlc3RvcmVGb2N1c2VkSXRlbTpmdW5jdGlvbigpe2lmKHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtJiYhKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg8MCkpe3RoaXMuX2Fzc2lnbk1vZGVscygpO3ZhciB0PXRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4PXRoaXMuX2dldFBoeXNpY2FsSW5kZXgodGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCksZT10aGlzLl9waHlzaWNhbEl0ZW1zW3RdO2lmKGUpe3ZhciBuPXRoaXMubW9kZWxGb3JFbGVtZW50KGUpLGk9dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pO25bdGhpcy5hc109PT1pW3RoaXMuYXNdPyh0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbT1lLG4udGFiSW5kZXg9LTEsdGhpcy5fcGh5c2ljYWxJdGVtc1t0XT10aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSx0aGlzLnRyYW5zbGF0ZTNkKDAsRm8sMCx0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbSkpOih0aGlzLl9yZW1vdmVGb2N1c2VkSXRlbSgpLHRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtPW51bGwpLHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtPW51bGx9fX0sX2RpZEZvY3VzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubW9kZWxGb3JFbGVtZW50KHQudGFyZ2V0KSxuPXRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX2ZvY3VzZWRJdGVtKSxpPW51bGwhPT10aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSxyPXRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg7ZSYmKG49PT1lP3RoaXMuX2lzSW5kZXhWaXNpYmxlKHIpfHx0aGlzLnNjcm9sbFRvSW5kZXgocik6KHRoaXMuX3Jlc3RvcmVGb2N1c2VkSXRlbSgpLG4mJihuLnRhYkluZGV4PS0xKSxlLnRhYkluZGV4PTAsdGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD1yPWVbdGhpcy5pbmRleEFzXSx0aGlzLl9mb2N1c2VkUGh5c2ljYWxJbmRleD10aGlzLl9nZXRQaHlzaWNhbEluZGV4KHIpLHRoaXMuX2ZvY3VzZWRJdGVtPXRoaXMuX3BoeXNpY2FsSXRlbXNbdGhpcy5fZm9jdXNlZFBoeXNpY2FsSW5kZXhdLGkmJiF0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSYmdGhpcy5fdXBkYXRlKCkpKX0sX2tleWRvd25IYW5kbGVyOmZ1bmN0aW9uKHQpe3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgNDA6dGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleDx0aGlzLl92aXJ0dWFsQ291bnQtMSYmdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgrKHRoaXMuZ3JpZD90aGlzLl9pdGVtc1BlclJvdzoxKSk7YnJlYWs7Y2FzZSAzOTp0aGlzLmdyaWQmJnRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgrKHRoaXMuX2lzUlRMPy0xOjEpKTticmVhaztjYXNlIDM4OnRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg+MCYmdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgtKHRoaXMuZ3JpZD90aGlzLl9pdGVtc1BlclJvdzoxKSk7YnJlYWs7Y2FzZSAzNzp0aGlzLmdyaWQmJnRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgrKHRoaXMuX2lzUlRMPzE6LTEpKTticmVhaztjYXNlIDEzOnRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgpLHRoaXMuc2VsZWN0aW9uRW5hYmxlZCYmdGhpcy5fc2VsZWN0aW9uSGFuZGxlcih0KX19LF9jbGFtcDpmdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGgubWluKG4sTWF0aC5tYXgoZSx0KSl9LF9kZWJvdW5jZTpmdW5jdGlvbih0LGUsbil7dGhpcy5fZGVib3VuY2Vycz10aGlzLl9kZWJvdW5jZXJzfHx7fSx0aGlzLl9kZWJvdW5jZXJzW3RdPVRuLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlcnNbdF0sbixlLmJpbmQodGhpcykpLEFuKHRoaXMuX2RlYm91bmNlcnNbdF0pfSxfZm9yd2FyZFByb3BlcnR5OmZ1bmN0aW9uKHQsZSxuKXt0Ll9zZXRQZW5kaW5nUHJvcGVydHkoZSxuKX0sX2ZvcndhcmRIb3N0UHJvcFYyOmZ1bmN0aW9uKHQsZSl7KHRoaXMuX3BoeXNpY2FsSXRlbXN8fFtdKS5jb25jYXQoW3RoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtLHRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtXSkuZm9yRWFjaCgoZnVuY3Rpb24obil7biYmdGhpcy5tb2RlbEZvckVsZW1lbnQobikuZm9yd2FyZEhvc3RQcm9wKHQsZSl9KSx0aGlzKX0sX25vdGlmeUluc3RhbmNlUHJvcFYyOmZ1bmN0aW9uKHQsZSxuKXtpZihRKHRoaXMuYXMsZSkpe3ZhciBpPXRbdGhpcy5pbmRleEFzXTtlPT10aGlzLmFzJiYodGhpcy5pdGVtc1tpXT1uKSx0aGlzLm5vdGlmeVBhdGgoSih0aGlzLmFzLCJpdGVtcy4iK2ksZSksbil9fSxfZ2V0U3RhbXBlZENoaWxkcmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BoeXNpY2FsSXRlbXN9LF9mb3J3YXJkSW5zdGFuY2VQYXRoOmZ1bmN0aW9uKHQsZSxuKXswPT09ZS5pbmRleE9mKHRoaXMuYXMrIi4iKSYmdGhpcy5ub3RpZnlQYXRoKCJpdGVtcy4iK3QuX19rZXlfXysiLiIrZS5zbGljZSh0aGlzLmFzLmxlbmd0aCsxKSxuKX0sX2ZvcndhcmRQYXJlbnRQYXRoOmZ1bmN0aW9uKHQsZSl7KHRoaXMuX3BoeXNpY2FsSXRlbXN8fFtdKS5jb25jYXQoW3RoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtLHRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtXSkuZm9yRWFjaCgoZnVuY3Rpb24obil7biYmdGhpcy5tb2RlbEZvckVsZW1lbnQobikubm90aWZ5UGF0aCh0LGUpfSksdGhpcyl9LF9mb3J3YXJkUGFyZW50UHJvcDpmdW5jdGlvbih0LGUpeyh0aGlzLl9waHlzaWNhbEl0ZW1zfHxbXSkuY29uY2F0KFt0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSx0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbV0pLmZvckVhY2goKGZ1bmN0aW9uKG4pe24mJih0aGlzLm1vZGVsRm9yRWxlbWVudChuKVt0XT1lKX0pLHRoaXMpfSxfZ2V0QWN0aXZlRWxlbWVudDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2l0ZW1zUGFyZW50Lm5vZGUuZG9tSG9zdDtyZXR1cm4gWWkodD90LnJvb3Q6ZG9jdW1lbnQpLmFjdGl2ZUVsZW1lbnR9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjbGFzcyBVb3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnNlbGVjdGlvbj1bXSx0aGlzLnNlbGVjdENhbGxiYWNrPXR9Z2V0KCl7cmV0dXJuIHRoaXMubXVsdGk/dGhpcy5zZWxlY3Rpb24uc2xpY2UoKTp0aGlzLnNlbGVjdGlvblswXX1jbGVhcih0KXt0aGlzLnNlbGVjdGlvbi5zbGljZSgpLmZvckVhY2goKGZ1bmN0aW9uKGUpeyghdHx8dC5pbmRleE9mKGUpPDApJiZ0aGlzLnNldEl0ZW1TZWxlY3RlZChlLCExKX0pLHRoaXMpfWlzU2VsZWN0ZWQodCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uLmluZGV4T2YodCk+PTB9c2V0SXRlbVNlbGVjdGVkKHQsZSl7aWYobnVsbCE9dCYmZSE9PXRoaXMuaXNTZWxlY3RlZCh0KSl7aWYoZSl0aGlzLnNlbGVjdGlvbi5wdXNoKHQpO2Vsc2V7dmFyIG49dGhpcy5zZWxlY3Rpb24uaW5kZXhPZih0KTtuPj0wJiZ0aGlzLnNlbGVjdGlvbi5zcGxpY2UobiwxKX10aGlzLnNlbGVjdENhbGxiYWNrJiZ0aGlzLnNlbGVjdENhbGxiYWNrKHQsZSl9fXNlbGVjdCh0KXt0aGlzLm11bHRpP3RoaXMudG9nZ2xlKHQpOnRoaXMuZ2V0KCkhPT10JiYodGhpcy5zZXRJdGVtU2VsZWN0ZWQodGhpcy5nZXQoKSwhMSksdGhpcy5zZXRJdGVtU2VsZWN0ZWQodCwhMCkpfXRvZ2dsZSh0KXt0aGlzLnNldEl0ZW1TZWxlY3RlZCh0LCF0aGlzLmlzU2VsZWN0ZWQodCkpfX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovY29uc3Qgam89e3Byb3BlcnRpZXM6e2F0dHJGb3JTZWxlY3RlZDp7dHlwZTpTdHJpbmcsdmFsdWU6bnVsbH0sc2VsZWN0ZWQ6e3R5cGU6U3RyaW5nLG5vdGlmeTohMH0sc2VsZWN0ZWRJdGVtOnt0eXBlOk9iamVjdCxyZWFkT25seTohMCxub3RpZnk6ITB9LGFjdGl2YXRlRXZlbnQ6e3R5cGU6U3RyaW5nLHZhbHVlOiJ0YXAiLG9ic2VydmVyOiJfYWN0aXZhdGVFdmVudENoYW5nZWQifSxzZWxlY3RhYmxlOlN0cmluZyxzZWxlY3RlZENsYXNzOnt0eXBlOlN0cmluZyx2YWx1ZToiaXJvbi1zZWxlY3RlZCJ9LHNlbGVjdGVkQXR0cmlidXRlOnt0eXBlOlN0cmluZyx2YWx1ZTpudWxsfSxmYWxsYmFja1NlbGVjdGlvbjp7dHlwZTpTdHJpbmcsdmFsdWU6bnVsbH0saXRlbXM6e3R5cGU6QXJyYXkscmVhZE9ubHk6ITAsbm90aWZ5OiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxfZXhjbHVkZWRMb2NhbE5hbWVzOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybnt0ZW1wbGF0ZToxLCJkb20tYmluZCI6MSwiZG9tLWlmIjoxLCJkb20tcmVwZWF0IjoxfX19fSxvYnNlcnZlcnM6WyJfdXBkYXRlQXR0ckZvclNlbGVjdGVkKGF0dHJGb3JTZWxlY3RlZCkiLCJfdXBkYXRlU2VsZWN0ZWQoc2VsZWN0ZWQpIiwiX2NoZWNrRmFsbGJhY2soZmFsbGJhY2tTZWxlY3Rpb24pIl0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX2JpbmRGaWx0ZXJJdGVtPXRoaXMuX2ZpbHRlckl0ZW0uYmluZCh0aGlzKSx0aGlzLl9zZWxlY3Rpb249bmV3IFVvKHRoaXMuX2FwcGx5U2VsZWN0aW9uLmJpbmQodGhpcykpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyPXRoaXMuX29ic2VydmVJdGVtcyh0aGlzKSx0aGlzLl9hZGRMaXN0ZW5lcih0aGlzLmFjdGl2YXRlRXZlbnQpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyJiZZaSh0aGlzKS51bm9ic2VydmVOb2Rlcyh0aGlzLl9vYnNlcnZlciksdGhpcy5fcmVtb3ZlTGlzdGVuZXIodGhpcy5hY3RpdmF0ZUV2ZW50KX0saW5kZXhPZjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVtcz90aGlzLml0ZW1zLmluZGV4T2YodCk6LTF9LHNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLnNlbGVjdGVkPXR9LHNlbGVjdFByZXZpb3VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pdGVtcy5sZW5ndGgsZT10LTE7dm9pZCAwIT09dGhpcy5zZWxlY3RlZCYmKGU9KE51bWJlcih0aGlzLl92YWx1ZVRvSW5kZXgodGhpcy5zZWxlY3RlZCkpLTErdCkldCksdGhpcy5zZWxlY3RlZD10aGlzLl9pbmRleFRvVmFsdWUoZSl9LHNlbGVjdE5leHQ6ZnVuY3Rpb24oKXt2YXIgdD0wO3ZvaWQgMCE9PXRoaXMuc2VsZWN0ZWQmJih0PShOdW1iZXIodGhpcy5fdmFsdWVUb0luZGV4KHRoaXMuc2VsZWN0ZWQpKSsxKSV0aGlzLml0ZW1zLmxlbmd0aCksdGhpcy5zZWxlY3RlZD10aGlzLl9pbmRleFRvVmFsdWUodCl9LHNlbGVjdEluZGV4OmZ1bmN0aW9uKHQpe3RoaXMuc2VsZWN0KHRoaXMuX2luZGV4VG9WYWx1ZSh0KSl9LGZvcmNlU3luY2hyb25vdXNJdGVtVXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5fb2JzZXJ2ZXImJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vYnNlcnZlci5mbHVzaD90aGlzLl9vYnNlcnZlci5mbHVzaCgpOnRoaXMuX3VwZGF0ZUl0ZW1zKCl9LGdldCBfc2hvdWxkVXBkYXRlU2VsZWN0aW9uKCl7cmV0dXJuIG51bGwhPXRoaXMuc2VsZWN0ZWR9LF9jaGVja0ZhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlU2VsZWN0ZWQoKX0sX2FkZExpc3RlbmVyOmZ1bmN0aW9uKHQpe3RoaXMubGlzdGVuKHRoaXMsdCwiX2FjdGl2YXRlSGFuZGxlciIpfSxfcmVtb3ZlTGlzdGVuZXI6ZnVuY3Rpb24odCl7dGhpcy51bmxpc3Rlbih0aGlzLHQsIl9hY3RpdmF0ZUhhbmRsZXIiKX0sX2FjdGl2YXRlRXZlbnRDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dGhpcy5fcmVtb3ZlTGlzdGVuZXIoZSksdGhpcy5fYWRkTGlzdGVuZXIodCl9LF91cGRhdGVJdGVtczpmdW5jdGlvbigpe3ZhciB0PVlpKHRoaXMpLnF1ZXJ5RGlzdHJpYnV0ZWRFbGVtZW50cyh0aGlzLnNlbGVjdGFibGV8fCIqIik7dD1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCx0aGlzLl9iaW5kRmlsdGVySXRlbSksdGhpcy5fc2V0SXRlbXModCl9LF91cGRhdGVBdHRyRm9yU2VsZWN0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkSXRlbSYmKHRoaXMuc2VsZWN0ZWQ9dGhpcy5fdmFsdWVGb3JJdGVtKHRoaXMuc2VsZWN0ZWRJdGVtKSl9LF91cGRhdGVTZWxlY3RlZDpmdW5jdGlvbigpe3RoaXMuX3NlbGVjdFNlbGVjdGVkKHRoaXMuc2VsZWN0ZWQpfSxfc2VsZWN0U2VsZWN0ZWQ6ZnVuY3Rpb24odCl7aWYodGhpcy5pdGVtcyl7dmFyIGU9dGhpcy5fdmFsdWVUb0l0ZW0odGhpcy5zZWxlY3RlZCk7ZT90aGlzLl9zZWxlY3Rpb24uc2VsZWN0KGUpOnRoaXMuX3NlbGVjdGlvbi5jbGVhcigpLHRoaXMuZmFsbGJhY2tTZWxlY3Rpb24mJnRoaXMuaXRlbXMubGVuZ3RoJiZ2b2lkIDA9PT10aGlzLl9zZWxlY3Rpb24uZ2V0KCkmJih0aGlzLnNlbGVjdGVkPXRoaXMuZmFsbGJhY2tTZWxlY3Rpb24pfX0sX2ZpbHRlckl0ZW06ZnVuY3Rpb24odCl7cmV0dXJuIXRoaXMuX2V4Y2x1ZGVkTG9jYWxOYW1lc1t0LmxvY2FsTmFtZV19LF92YWx1ZVRvSXRlbTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9udWxsOnRoaXMuaXRlbXNbdGhpcy5fdmFsdWVUb0luZGV4KHQpXX0sX3ZhbHVlVG9JbmRleDpmdW5jdGlvbih0KXtpZighdGhpcy5hdHRyRm9yU2VsZWN0ZWQpcmV0dXJuIE51bWJlcih0KTtmb3IodmFyIGUsbj0wO2U9dGhpcy5pdGVtc1tuXTtuKyspaWYodGhpcy5fdmFsdWVGb3JJdGVtKGUpPT10KXJldHVybiBufSxfaW5kZXhUb1ZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmF0dHJGb3JTZWxlY3RlZClyZXR1cm4gdDt2YXIgZT10aGlzLml0ZW1zW3RdO3JldHVybiBlP3RoaXMuX3ZhbHVlRm9ySXRlbShlKTp2b2lkIDB9LF92YWx1ZUZvckl0ZW06ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYoIXRoaXMuYXR0ckZvclNlbGVjdGVkKXt2YXIgZT10aGlzLmluZGV4T2YodCk7cmV0dXJuLTE9PT1lP251bGw6ZX12YXIgbj10W3N0KHRoaXMuYXR0ckZvclNlbGVjdGVkKV07cmV0dXJuIG51bGwhPW4/bjp0LmdldEF0dHJpYnV0ZSh0aGlzLmF0dHJGb3JTZWxlY3RlZCl9LF9hcHBseVNlbGVjdGlvbjpmdW5jdGlvbih0LGUpe3RoaXMuc2VsZWN0ZWRDbGFzcyYmdGhpcy50b2dnbGVDbGFzcyh0aGlzLnNlbGVjdGVkQ2xhc3MsZSx0KSx0aGlzLnNlbGVjdGVkQXR0cmlidXRlJiZ0aGlzLnRvZ2dsZUF0dHJpYnV0ZSh0aGlzLnNlbGVjdGVkQXR0cmlidXRlLGUsdCksdGhpcy5fc2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5maXJlKCJpcm9uLSIrKGU/InNlbGVjdCI6ImRlc2VsZWN0Iikse2l0ZW06dH0pfSxfc2VsZWN0aW9uQ2hhbmdlOmZ1bmN0aW9uKCl7dGhpcy5fc2V0U2VsZWN0ZWRJdGVtKHRoaXMuX3NlbGVjdGlvbi5nZXQoKSl9LF9vYnNlcnZlSXRlbXM6ZnVuY3Rpb24odCl7cmV0dXJuIFlpKHQpLm9ic2VydmVOb2RlcygoZnVuY3Rpb24odCl7dGhpcy5fdXBkYXRlSXRlbXMoKSx0aGlzLl91cGRhdGVTZWxlY3RlZCgpLHRoaXMuZmlyZSgiaXJvbi1pdGVtcy1jaGFuZ2VkIix0LHtidWJibGVzOiExLGNhbmNlbGFibGU6ITF9KX0pKX0sX2FjdGl2YXRlSGFuZGxlcjpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC50YXJnZXQsbj10aGlzLml0ZW1zO2UmJmUhPXRoaXM7KXt2YXIgaT1uLmluZGV4T2YoZSk7aWYoaT49MCl7dmFyIHI9dGhpcy5faW5kZXhUb1ZhbHVlKGkpO3JldHVybiB2b2lkIHRoaXMuX2l0ZW1BY3RpdmF0ZShyLGUpfWU9ZS5wYXJlbnROb2RlfX0sX2l0ZW1BY3RpdmF0ZTpmdW5jdGlvbih0LGUpe3RoaXMuZmlyZSgiaXJvbi1hY3RpdmF0ZSIse3NlbGVjdGVkOnQsaXRlbTplfSx7Y2FuY2VsYWJsZTohMH0pLmRlZmF1bHRQcmV2ZW50ZWR8fHRoaXMuc2VsZWN0KHQpfX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL1JyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoOm5vdChzbG90KTpub3QoLmlyb24tc2VsZWN0ZWQpKSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxzbG90Pjwvc2xvdD4KYCxpczoiaXJvbi1wYWdlcyIsYmVoYXZpb3JzOltnbyxqb10scHJvcGVydGllczp7YWN0aXZhdGVFdmVudDp7dHlwZTpTdHJpbmcsdmFsdWU6bnVsbH19LG9ic2VydmVyczpbIl9zZWxlY3RlZFBhZ2VDaGFuZ2VkKHNlbGVjdGVkKSJdLF9zZWxlY3RlZFBhZ2VDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dGhpcy5hc3luYyh0aGlzLm5vdGlmeVJlc2l6ZSl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBHbz1fZWAKPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBodG1sIHsKCiAgICAgIC0tc2hhZG93LXRyYW5zaXRpb246IHsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH07CgogICAgICAtLXNoYWRvdy1ub25lOiB7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgfTsKCiAgICAgIC8qIGZyb20gaHR0cDovL2NvZGVwZW4uaW8vc2h5bmRtYW4vcGVuL2M1Mzk0ZGRmMmU4YjJhNWM5MTg1OTA0YjU3NDIxY2RiICovCgogICAgICAtLXNoYWRvdy1lbGV2YXRpb24tMmRwOiB7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwKICAgICAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi0zZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgMXB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICB9OwoKICAgICAgLS1zaGFkb3ctZWxldmF0aW9uLTRkcDogewogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksCiAgICAgICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICB9OwoKICAgICAgLS1zaGFkb3ctZWxldmF0aW9uLTZkcDogewogICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgMXB4IDE4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi04ZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICB9OwoKICAgICAgLS1zaGFkb3ctZWxldmF0aW9uLTEyZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDEycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwKICAgICAgICAgICAgICAgICAgICAwIDRweCAyMnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgNnB4IDdweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi0xNmRwOiB7CiAgICAgICAgYm94LXNoYWRvdzogMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksCiAgICAgICAgICAgICAgICAgICAgMCAgNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAgOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgIH07CgogICAgICAtLXNoYWRvdy1lbGV2YXRpb24tMjRkcDogewogICAgICAgIGJveC1zaGFkb3c6IDAgMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgIH07CiAgICB9CiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+YDtHby5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKEdvLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgV289X2VgCjxkb20tbW9kdWxlIGlkPSJwYXBlci1tYXRlcmlhbC1zdHlsZXMiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgaHRtbCB7CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbDogewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0xOiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTJkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTI6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tNGRwOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMzogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi02ZHA7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi00OiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLThkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTU6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMTZkcDsKICAgICAgICB9OwogICAgICB9CiAgICAgIC5wYXBlci1tYXRlcmlhbCB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWw7CiAgICAgIH0KICAgICAgLnBhcGVyLW1hdGVyaWFsW2VsZXZhdGlvbj0iMSJdIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMTsKICAgICAgfQogICAgICAucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIyIl0gewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0yOwogICAgICB9CiAgICAgIC5wYXBlci1tYXRlcmlhbFtlbGV2YXRpb249IjMiXSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTM7CiAgICAgIH0KICAgICAgLnBhcGVyLW1hdGVyaWFsW2VsZXZhdGlvbj0iNCJdIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNDsKICAgICAgfQogICAgICAucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSI1Il0gewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi01OwogICAgICB9CgogICAgICAvKiBEdXBsaWNhdGUgdGhlIHN0eWxlcyBiZWNhdXNlIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJjb21wb25lbnRzL3NoYWR5Y3NzL2lzc3Vlcy8xOTMgKi8KICAgICAgOmhvc3QgewogICAgICAgIC0tcGFwZXItbWF0ZXJpYWw6IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMTogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0yZHA7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0yOiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTRkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTM6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tNmRwOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNDogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi04ZHA7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi01OiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTE2ZHA7CiAgICAgICAgfTsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWwpIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbDsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIxIl0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMTsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIyIl0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMjsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIzIl0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMzsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSI0Il0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNDsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSI1Il0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNTsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+YDtXby5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKFdvLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgcW89e3Byb3BlcnRpZXM6e2ZvY3VzZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITAscmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxkaXNhYmxlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxvYnNlcnZlcjoiX2Rpc2FibGVkQ2hhbmdlZCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxfb2xkVGFiSW5kZXg6e3R5cGU6U3RyaW5nfSxfYm91bmRGb2N1c0JsdXJIYW5kbGVyOnt0eXBlOkZ1bmN0aW9uLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZvY3VzQmx1ckhhbmRsZXIuYmluZCh0aGlzKX19fSxvYnNlcnZlcnM6WyJfY2hhbmdlZENvbnRyb2xTdGF0ZShmb2N1c2VkLCBkaXNhYmxlZCkiXSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2JvdW5kRm9jdXNCbHVySGFuZGxlciwhMCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9ib3VuZEZvY3VzQmx1ckhhbmRsZXIsITApfSxfZm9jdXNCbHVySGFuZGxlcjpmdW5jdGlvbih0KXt0aGlzLl9zZXRGb2N1c2VkKCJmb2N1cyI9PT10LnR5cGUpfSxfZGlzYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLHQ/InRydWUiOiJmYWxzZSIpLHRoaXMuc3R5bGUucG9pbnRlckV2ZW50cz10PyJub25lIjoiIix0Pyh0aGlzLl9vbGRUYWJJbmRleD10aGlzLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSx0aGlzLl9zZXRGb2N1c2VkKCExKSx0aGlzLnRhYkluZGV4PS0xLHRoaXMuYmx1cigpKTp2b2lkIDAhPT10aGlzLl9vbGRUYWJJbmRleCYmKG51bGw9PT10aGlzLl9vbGRUYWJJbmRleD90aGlzLnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKTp0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLHRoaXMuX29sZFRhYkluZGV4KSl9LF9jaGFuZ2VkQ29udHJvbFN0YXRlOmZ1bmN0aW9uKCl7dGhpcy5fY29udHJvbFN0YXRlQ2hhbmdlZCYmdGhpcy5fY29udHJvbFN0YXRlQ2hhbmdlZCgpfX0sWW89e3Byb3BlcnRpZXM6e3ByZXNzZWQ6e3R5cGU6Qm9vbGVhbixyZWFkT25seTohMCx2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il9wcmVzc2VkQ2hhbmdlZCJ9LHRvZ2dsZXM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LGFjdGl2ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LHBvaW50ZXJEb3duOnt0eXBlOkJvb2xlYW4scmVhZE9ubHk6ITAsdmFsdWU6ITF9LHJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQ6e3R5cGU6Qm9vbGVhbixyZWFkT25seTohMH0sYXJpYUFjdGl2ZUF0dHJpYnV0ZTp7dHlwZTpTdHJpbmcsdmFsdWU6ImFyaWEtcHJlc3NlZCIsb2JzZXJ2ZXI6Il9hcmlhQWN0aXZlQXR0cmlidXRlQ2hhbmdlZCJ9fSxsaXN0ZW5lcnM6e2Rvd246Il9kb3duSGFuZGxlciIsdXA6Il91cEhhbmRsZXIiLHRhcDoiX3RhcEhhbmRsZXIifSxvYnNlcnZlcnM6WyJfZm9jdXNDaGFuZ2VkKGZvY3VzZWQpIiwiX2FjdGl2ZUNoYW5nZWQoYWN0aXZlLCBhcmlhQWN0aXZlQXR0cmlidXRlKSJdLGtleUJpbmRpbmdzOnsiZW50ZXI6a2V5ZG93biI6Il9hc3luY0NsaWNrIiwic3BhY2U6a2V5ZG93biI6Il9zcGFjZUtleURvd25IYW5kbGVyIiwic3BhY2U6a2V5dXAiOiJfc3BhY2VLZXlVcEhhbmRsZXIifSxfbW91c2VFdmVudFJlOi9ebW91c2UvLF90YXBIYW5kbGVyOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVzP3RoaXMuX3VzZXJBY3RpdmF0ZSghdGhpcy5hY3RpdmUpOnRoaXMuYWN0aXZlPSExfSxfZm9jdXNDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX2RldGVjdEtleWJvYXJkRm9jdXModCksdHx8dGhpcy5fc2V0UHJlc3NlZCghMSl9LF9kZXRlY3RLZXlib2FyZEZvY3VzOmZ1bmN0aW9uKHQpe3RoaXMuX3NldFJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQoIXRoaXMucG9pbnRlckRvd24mJnQpfSxfdXNlckFjdGl2YXRlOmZ1bmN0aW9uKHQpe3RoaXMuYWN0aXZlIT09dCYmKHRoaXMuYWN0aXZlPXQsdGhpcy5maXJlKCJjaGFuZ2UiKSl9LF9kb3duSGFuZGxlcjpmdW5jdGlvbih0KXt0aGlzLl9zZXRQb2ludGVyRG93bighMCksdGhpcy5fc2V0UHJlc3NlZCghMCksdGhpcy5fc2V0UmVjZWl2ZWRGb2N1c0Zyb21LZXlib2FyZCghMSl9LF91cEhhbmRsZXI6ZnVuY3Rpb24oKXt0aGlzLl9zZXRQb2ludGVyRG93bighMSksdGhpcy5fc2V0UHJlc3NlZCghMSl9LF9zcGFjZUtleURvd25IYW5kbGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZGV0YWlsLmtleWJvYXJkRXZlbnQsbj1ZaShlKS5sb2NhbFRhcmdldDt0aGlzLmlzTGlnaHREZXNjZW5kYW50KG4pfHwoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5fc2V0UHJlc3NlZCghMCkpfSxfc3BhY2VLZXlVcEhhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIGU9WWkodC5kZXRhaWwua2V5Ym9hcmRFdmVudCkubG9jYWxUYXJnZXQ7dGhpcy5pc0xpZ2h0RGVzY2VuZGFudChlKXx8KHRoaXMucHJlc3NlZCYmdGhpcy5fYXN5bmNDbGljaygpLHRoaXMuX3NldFByZXNzZWQoITEpKX0sX2FzeW5jQ2xpY2s6ZnVuY3Rpb24oKXt0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuY2xpY2soKX0pLDEpfSxfcHJlc3NlZENoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5fY2hhbmdlZEJ1dHRvblN0YXRlKCl9LF9hcmlhQWN0aXZlQXR0cmlidXRlQ2hhbmdlZDpmdW5jdGlvbih0LGUpe2UmJmUhPXQmJnRoaXMuaGFzQXR0cmlidXRlKGUpJiZ0aGlzLnJlbW92ZUF0dHJpYnV0ZShlKX0sX2FjdGl2ZUNoYW5nZWQ6ZnVuY3Rpb24odCxlKXt0aGlzLnRvZ2dsZXM/dGhpcy5zZXRBdHRyaWJ1dGUodGhpcy5hcmlhQWN0aXZlQXR0cmlidXRlLHQ/InRydWUiOiJmYWxzZSIpOnRoaXMucmVtb3ZlQXR0cmlidXRlKHRoaXMuYXJpYUFjdGl2ZUF0dHJpYnV0ZSksdGhpcy5fY2hhbmdlZEJ1dHRvblN0YXRlKCl9LF9jb250cm9sU3RhdGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlZD90aGlzLl9zZXRQcmVzc2VkKCExKTp0aGlzLl9jaGFuZ2VkQnV0dG9uU3RhdGUoKX0sX2NoYW5nZWRCdXR0b25TdGF0ZTpmdW5jdGlvbigpe3RoaXMuX2J1dHRvblN0YXRlQ2hhbmdlZCYmdGhpcy5fYnV0dG9uU3RhdGVDaGFuZ2VkKCl9fSxYbz1bem8sWW9dOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCnZhciAkbz17ZGlzdGFuY2U6ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dC1uLG89ZS1pO3JldHVybiBNYXRoLnNxcnQocipyK28qbyl9LG5vdzp3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5ub3c/d2luZG93LnBlcmZvcm1hbmNlLm5vdy5iaW5kKHdpbmRvdy5wZXJmb3JtYW5jZSk6RGF0ZS5ub3d9O2Z1bmN0aW9uIEtvKHQpe3RoaXMuZWxlbWVudD10LHRoaXMud2lkdGg9dGhpcy5ib3VuZGluZ1JlY3Qud2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy5ib3VuZGluZ1JlY3QuaGVpZ2h0LHRoaXMuc2l6ZT1NYXRoLm1heCh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KX1mdW5jdGlvbiBabyh0KXt0aGlzLmVsZW1lbnQ9dCx0aGlzLmNvbG9yPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmNvbG9yLHRoaXMud2F2ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLndhdmVDb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy53YXZlLnN0eWxlLmJhY2tncm91bmRDb2xvcj10aGlzLmNvbG9yLHRoaXMud2F2ZS5jbGFzc0xpc3QuYWRkKCJ3YXZlIiksdGhpcy53YXZlQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIndhdmUtY29udGFpbmVyIiksWWkodGhpcy53YXZlQ29udGFpbmVyKS5hcHBlbmRDaGlsZCh0aGlzLndhdmUpLHRoaXMucmVzZXRJbnRlcmFjdGlvblN0YXRlKCl9S28ucHJvdG90eXBlPXtnZXQgYm91bmRpbmdSZWN0KCl7cmV0dXJuIHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX0sZnVydGhlc3RDb3JuZXJEaXN0YW5jZUZyb206ZnVuY3Rpb24odCxlKXt2YXIgbj0kby5kaXN0YW5jZSh0LGUsMCwwKSxpPSRvLmRpc3RhbmNlKHQsZSx0aGlzLndpZHRoLDApLHI9JG8uZGlzdGFuY2UodCxlLDAsdGhpcy5oZWlnaHQpLG89JG8uZGlzdGFuY2UodCxlLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpO3JldHVybiBNYXRoLm1heChuLGkscixvKX19LFpvLk1BWF9SQURJVVM9MzAwLFpvLnByb3RvdHlwZT17Z2V0IHJlY2VudGVycygpe3JldHVybiB0aGlzLmVsZW1lbnQucmVjZW50ZXJzfSxnZXQgY2VudGVyKCl7cmV0dXJuIHRoaXMuZWxlbWVudC5jZW50ZXJ9LGdldCBtb3VzZURvd25FbGFwc2VkKCl7dmFyIHQ7cmV0dXJuIHRoaXMubW91c2VEb3duU3RhcnQ/KHQ9JG8ubm93KCktdGhpcy5tb3VzZURvd25TdGFydCx0aGlzLm1vdXNlVXBTdGFydCYmKHQtPXRoaXMubW91c2VVcEVsYXBzZWQpLHQpOjB9LGdldCBtb3VzZVVwRWxhcHNlZCgpe3JldHVybiB0aGlzLm1vdXNlVXBTdGFydD8kby5ub3coKS10aGlzLm1vdXNlVXBTdGFydDowfSxnZXQgbW91c2VEb3duRWxhcHNlZFNlY29uZHMoKXtyZXR1cm4gdGhpcy5tb3VzZURvd25FbGFwc2VkLzFlM30sZ2V0IG1vdXNlVXBFbGFwc2VkU2Vjb25kcygpe3JldHVybiB0aGlzLm1vdXNlVXBFbGFwc2VkLzFlM30sZ2V0IG1vdXNlSW50ZXJhY3Rpb25TZWNvbmRzKCl7cmV0dXJuIHRoaXMubW91c2VEb3duRWxhcHNlZFNlY29uZHMrdGhpcy5tb3VzZVVwRWxhcHNlZFNlY29uZHN9LGdldCBpbml0aWFsT3BhY2l0eSgpe3JldHVybiB0aGlzLmVsZW1lbnQuaW5pdGlhbE9wYWNpdHl9LGdldCBvcGFjaXR5RGVjYXlWZWxvY2l0eSgpe3JldHVybiB0aGlzLmVsZW1lbnQub3BhY2l0eURlY2F5VmVsb2NpdHl9LGdldCByYWRpdXMoKXt2YXIgdD0xLjEqTWF0aC5taW4oTWF0aC5zcXJ0KHRoaXMuY29udGFpbmVyTWV0cmljcy53aWR0aCp0aGlzLmNvbnRhaW5lck1ldHJpY3Mud2lkdGgrdGhpcy5jb250YWluZXJNZXRyaWNzLmhlaWdodCp0aGlzLmNvbnRhaW5lck1ldHJpY3MuaGVpZ2h0KSxaby5NQVhfUkFESVVTKSs1LGU9dCooMS1NYXRoLnBvdyg4MCwtdGhpcy5tb3VzZUludGVyYWN0aW9uU2Vjb25kcy8oMS4xLXQvWm8uTUFYX1JBRElVUyouMikpKTtyZXR1cm4gTWF0aC5hYnMoZSl9LGdldCBvcGFjaXR5KCl7cmV0dXJuIHRoaXMubW91c2VVcFN0YXJ0P01hdGgubWF4KDAsdGhpcy5pbml0aWFsT3BhY2l0eS10aGlzLm1vdXNlVXBFbGFwc2VkU2Vjb25kcyp0aGlzLm9wYWNpdHlEZWNheVZlbG9jaXR5KTp0aGlzLmluaXRpYWxPcGFjaXR5fSxnZXQgb3V0ZXJPcGFjaXR5KCl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oLjMqdGhpcy5tb3VzZVVwRWxhcHNlZFNlY29uZHMsdGhpcy5vcGFjaXR5KSl9LGdldCBpc09wYWNpdHlGdWxseURlY2F5ZWQoKXtyZXR1cm4gdGhpcy5vcGFjaXR5PC4wMSYmdGhpcy5yYWRpdXM+PU1hdGgubWluKHRoaXMubWF4UmFkaXVzLFpvLk1BWF9SQURJVVMpfSxnZXQgaXNSZXN0aW5nQXRNYXhSYWRpdXMoKXtyZXR1cm4gdGhpcy5vcGFjaXR5Pj10aGlzLmluaXRpYWxPcGFjaXR5JiZ0aGlzLnJhZGl1cz49TWF0aC5taW4odGhpcy5tYXhSYWRpdXMsWm8uTUFYX1JBRElVUyl9LGdldCBpc0FuaW1hdGlvbkNvbXBsZXRlKCl7cmV0dXJuIHRoaXMubW91c2VVcFN0YXJ0P3RoaXMuaXNPcGFjaXR5RnVsbHlEZWNheWVkOnRoaXMuaXNSZXN0aW5nQXRNYXhSYWRpdXN9LGdldCB0cmFuc2xhdGlvbkZyYWN0aW9uKCl7cmV0dXJuIE1hdGgubWluKDEsdGhpcy5yYWRpdXMvdGhpcy5jb250YWluZXJNZXRyaWNzLnNpemUqMi9NYXRoLnNxcnQoMikpfSxnZXQgeE5vdygpe3JldHVybiB0aGlzLnhFbmQ/dGhpcy54U3RhcnQrdGhpcy50cmFuc2xhdGlvbkZyYWN0aW9uKih0aGlzLnhFbmQtdGhpcy54U3RhcnQpOnRoaXMueFN0YXJ0fSxnZXQgeU5vdygpe3JldHVybiB0aGlzLnlFbmQ/dGhpcy55U3RhcnQrdGhpcy50cmFuc2xhdGlvbkZyYWN0aW9uKih0aGlzLnlFbmQtdGhpcy55U3RhcnQpOnRoaXMueVN0YXJ0fSxnZXQgaXNNb3VzZURvd24oKXtyZXR1cm4gdGhpcy5tb3VzZURvd25TdGFydCYmIXRoaXMubW91c2VVcFN0YXJ0fSxyZXNldEludGVyYWN0aW9uU3RhdGU6ZnVuY3Rpb24oKXt0aGlzLm1heFJhZGl1cz0wLHRoaXMubW91c2VEb3duU3RhcnQ9MCx0aGlzLm1vdXNlVXBTdGFydD0wLHRoaXMueFN0YXJ0PTAsdGhpcy55U3RhcnQ9MCx0aGlzLnhFbmQ9MCx0aGlzLnlFbmQ9MCx0aGlzLnNsaWRlRGlzdGFuY2U9MCx0aGlzLmNvbnRhaW5lck1ldHJpY3M9bmV3IEtvKHRoaXMuZWxlbWVudCl9LGRyYXc6ZnVuY3Rpb24oKXt2YXIgdCxlLG47dGhpcy53YXZlLnN0eWxlLm9wYWNpdHk9dGhpcy5vcGFjaXR5LHQ9dGhpcy5yYWRpdXMvKHRoaXMuY29udGFpbmVyTWV0cmljcy5zaXplLzIpLHRoaXMud2F2ZUNvbnRhaW5lci5zdHlsZS53ZWJraXRUcmFuc2Zvcm09InRyYW5zbGF0ZSgiKyhlPXRoaXMueE5vdy10aGlzLmNvbnRhaW5lck1ldHJpY3Mud2lkdGgvMikrInB4LCAiKyhuPXRoaXMueU5vdy10aGlzLmNvbnRhaW5lck1ldHJpY3MuaGVpZ2h0LzIpKyJweCkiLHRoaXMud2F2ZUNvbnRhaW5lci5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZTNkKCIrZSsicHgsICIrbisicHgsIDApIix0aGlzLndhdmUuc3R5bGUud2Via2l0VHJhbnNmb3JtPSJzY2FsZSgiK3QrIiwiK3QrIikiLHRoaXMud2F2ZS5zdHlsZS50cmFuc2Zvcm09InNjYWxlM2QoIit0KyIsIit0KyIsMSkifSxkb3duQWN0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGFpbmVyTWV0cmljcy53aWR0aC8yLG49dGhpcy5jb250YWluZXJNZXRyaWNzLmhlaWdodC8yO3RoaXMucmVzZXRJbnRlcmFjdGlvblN0YXRlKCksdGhpcy5tb3VzZURvd25TdGFydD0kby5ub3coKSx0aGlzLmNlbnRlcj8odGhpcy54U3RhcnQ9ZSx0aGlzLnlTdGFydD1uLHRoaXMuc2xpZGVEaXN0YW5jZT0kby5kaXN0YW5jZSh0aGlzLnhTdGFydCx0aGlzLnlTdGFydCx0aGlzLnhFbmQsdGhpcy55RW5kKSk6KHRoaXMueFN0YXJ0PXQ/dC5kZXRhaWwueC10aGlzLmNvbnRhaW5lck1ldHJpY3MuYm91bmRpbmdSZWN0LmxlZnQ6dGhpcy5jb250YWluZXJNZXRyaWNzLndpZHRoLzIsdGhpcy55U3RhcnQ9dD90LmRldGFpbC55LXRoaXMuY29udGFpbmVyTWV0cmljcy5ib3VuZGluZ1JlY3QudG9wOnRoaXMuY29udGFpbmVyTWV0cmljcy5oZWlnaHQvMiksdGhpcy5yZWNlbnRlcnMmJih0aGlzLnhFbmQ9ZSx0aGlzLnlFbmQ9bix0aGlzLnNsaWRlRGlzdGFuY2U9JG8uZGlzdGFuY2UodGhpcy54U3RhcnQsdGhpcy55U3RhcnQsdGhpcy54RW5kLHRoaXMueUVuZCkpLHRoaXMubWF4UmFkaXVzPXRoaXMuY29udGFpbmVyTWV0cmljcy5mdXJ0aGVzdENvcm5lckRpc3RhbmNlRnJvbSh0aGlzLnhTdGFydCx0aGlzLnlTdGFydCksdGhpcy53YXZlQ29udGFpbmVyLnN0eWxlLnRvcD0odGhpcy5jb250YWluZXJNZXRyaWNzLmhlaWdodC10aGlzLmNvbnRhaW5lck1ldHJpY3Muc2l6ZSkvMisicHgiLHRoaXMud2F2ZUNvbnRhaW5lci5zdHlsZS5sZWZ0PSh0aGlzLmNvbnRhaW5lck1ldHJpY3Mud2lkdGgtdGhpcy5jb250YWluZXJNZXRyaWNzLnNpemUpLzIrInB4Iix0aGlzLndhdmVDb250YWluZXIuc3R5bGUud2lkdGg9dGhpcy5jb250YWluZXJNZXRyaWNzLnNpemUrInB4Iix0aGlzLndhdmVDb250YWluZXIuc3R5bGUuaGVpZ2h0PXRoaXMuY29udGFpbmVyTWV0cmljcy5zaXplKyJweCJ9LHVwQWN0aW9uOmZ1bmN0aW9uKHQpe3RoaXMuaXNNb3VzZURvd24mJih0aGlzLm1vdXNlVXBTdGFydD0kby5ub3coKSl9LHJlbW92ZTpmdW5jdGlvbigpe1lpKFlpKHRoaXMud2F2ZUNvbnRhaW5lcikucGFyZW50Tm9kZSkucmVtb3ZlQ2hpbGQodGhpcy53YXZlQ29udGFpbmVyKX19LFJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKCiAgICAgICAgLyogU2VlIFBvbHltZXJFbGVtZW50cy9wYXBlci1iZWhhdmlvcnMvaXNzdWVzLzM0LiBPbiBub24tQ2hyb21lIGJyb3dzZXJzLAogICAgICAgICAqIGNyZWF0aW5nIGEgbm9kZSAod2l0aCBhIHBvc2l0aW9uOmFic29sdXRlKSBpbiB0aGUgbWlkZGxlIG9mIGFuIGV2ZW50CiAgICAgICAgICogaGFuZGxlciAiaW50ZXJydXB0cyIgdGhhdCBldmVudCBoYW5kbGVyICh3aGljaCBoYXBwZW5zIHdoZW4gdGhlCiAgICAgICAgICogcmlwcGxlIGlzIGNyZWF0ZWQgb24gZGVtYW5kKSAqLwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbYW5pbWF0aW5nXSkgewogICAgICAgIC8qIFRoaXMgcmVzb2x2ZXMgYSByZW5kZXJpbmcgaXNzdWUgaW4gQ2hyb21lIChhcyBvZiA0MCkgd2hlcmUgdGhlCiAgICAgICAgICAgcmlwcGxlIGlzIG5vdCBwcm9wZXJseSBjbGlwcGVkIGJ5IGl0cyBwYXJlbnQgKHdoaWNoIG1heSBoYXZlCiAgICAgICAgICAgcm91bmRlZCBjb3JuZXJzKS4gU2VlOiBodHRwOi8vanNiaW4uY29tL3RlbWV4YS80CgogICAgICAgICAgIE5vdGU6IFdlIG9ubHkgYXBwbHkgdGhpcyBzdHlsZSBjb25kaXRpb25hbGx5LiBPdGhlcndpc2UsIHRoZSBicm93c2VyCiAgICAgICAgICAgd2lsbCBjcmVhdGUgYSBuZXcgY29tcG9zaXRpbmcgbGF5ZXIgZm9yIGV2ZXJ5IHJpcHBsZSBlbGVtZW50IG9uIHRoZQogICAgICAgICAgIHBhZ2UsIGFuZCB0aGF0IHdvdWxkIGJlIGJhZC4gKi8KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7CiAgICAgIH0KCiAgICAgICNiYWNrZ3JvdW5kLAogICAgICAjd2F2ZXMsCiAgICAgIC53YXZlLWNvbnRhaW5lciwKICAgICAgLndhdmUgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgICNiYWNrZ3JvdW5kLAogICAgICAud2F2ZSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgI3dhdmVzLAogICAgICAud2F2ZSB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLndhdmUtY29udGFpbmVyLAogICAgICAud2F2ZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICA6aG9zdCguY2lyY2xlKSAjYmFja2dyb3VuZCwKICAgICAgOmhvc3QoLmNpcmNsZSkgI3dhdmVzIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIDpob3N0KC5jaXJjbGUpIC53YXZlLWNvbnRhaW5lciB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJiYWNrZ3JvdW5kIj48L2Rpdj4KICAgIDxkaXYgaWQ9IndhdmVzIj48L2Rpdj4KYCxpczoicGFwZXItcmlwcGxlIixiZWhhdmlvcnM6W3pvXSxwcm9wZXJ0aWVzOntpbml0aWFsT3BhY2l0eTp7dHlwZTpOdW1iZXIsdmFsdWU6LjI1fSxvcGFjaXR5RGVjYXlWZWxvY2l0eTp7dHlwZTpOdW1iZXIsdmFsdWU6Ljh9LHJlY2VudGVyczp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxjZW50ZXI6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0scmlwcGxlczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX0sYW5pbWF0aW5nOnt0eXBlOkJvb2xlYW4scmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwLHZhbHVlOiExfSxob2xkRG93bjp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG9ic2VydmVyOiJfaG9sZERvd25DaGFuZ2VkIn0sbm9pbms6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX2FuaW1hdGluZzp7dHlwZTpCb29sZWFufSxfYm91bmRBbmltYXRlOnt0eXBlOkZ1bmN0aW9uLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYW5pbWF0ZS5iaW5kKHRoaXMpfX19LGdldCB0YXJnZXQoKXtyZXR1cm4gdGhpcy5rZXlFdmVudFRhcmdldH0sa2V5QmluZGluZ3M6eyJlbnRlcjprZXlkb3duIjoiX29uRW50ZXJLZXlkb3duIiwic3BhY2U6a2V5ZG93biI6Il9vblNwYWNlS2V5ZG93biIsInNwYWNlOmtleXVwIjoiX29uU3BhY2VLZXl1cCJ9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5rZXlFdmVudFRhcmdldD0xMT09WWkodGhpcykucGFyZW50Tm9kZS5ub2RlVHlwZT9ZaSh0aGlzKS5nZXRPd25lclJvb3QoKS5ob3N0OllpKHRoaXMpLnBhcmVudE5vZGU7dmFyIHQ9dGhpcy5rZXlFdmVudFRhcmdldDt0aGlzLmxpc3Rlbih0LCJ1cCIsInVpVXBBY3Rpb24iKSx0aGlzLmxpc3Rlbih0LCJkb3duIiwidWlEb3duQWN0aW9uIil9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy51bmxpc3Rlbih0aGlzLmtleUV2ZW50VGFyZ2V0LCJ1cCIsInVpVXBBY3Rpb24iKSx0aGlzLnVubGlzdGVuKHRoaXMua2V5RXZlbnRUYXJnZXQsImRvd24iLCJ1aURvd25BY3Rpb24iKSx0aGlzLmtleUV2ZW50VGFyZ2V0PW51bGx9LGdldCBzaG91bGRLZWVwQW5pbWF0aW5nKCl7Zm9yKHZhciB0PTA7dDx0aGlzLnJpcHBsZXMubGVuZ3RoOysrdClpZighdGhpcy5yaXBwbGVzW3RdLmlzQW5pbWF0aW9uQ29tcGxldGUpcmV0dXJuITA7cmV0dXJuITF9LHNpbXVsYXRlZFJpcHBsZTpmdW5jdGlvbigpe3RoaXMuZG93bkFjdGlvbihudWxsKSx0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMudXBBY3Rpb24oKX0pLDEpfSx1aURvd25BY3Rpb246ZnVuY3Rpb24odCl7dGhpcy5ub2lua3x8dGhpcy5kb3duQWN0aW9uKHQpfSxkb3duQWN0aW9uOmZ1bmN0aW9uKHQpe3RoaXMuaG9sZERvd24mJnRoaXMucmlwcGxlcy5sZW5ndGg+MHx8KHRoaXMuYWRkUmlwcGxlKCkuZG93bkFjdGlvbih0KSx0aGlzLl9hbmltYXRpbmd8fCh0aGlzLl9hbmltYXRpbmc9ITAsdGhpcy5hbmltYXRlKCkpKX0sdWlVcEFjdGlvbjpmdW5jdGlvbih0KXt0aGlzLm5vaW5rfHx0aGlzLnVwQWN0aW9uKHQpfSx1cEFjdGlvbjpmdW5jdGlvbih0KXt0aGlzLmhvbGREb3dufHwodGhpcy5yaXBwbGVzLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UudXBBY3Rpb24odCl9KSksdGhpcy5fYW5pbWF0aW5nPSEwLHRoaXMuYW5pbWF0ZSgpKX0sb25BbmltYXRpb25Db21wbGV0ZTpmdW5jdGlvbigpe3RoaXMuX2FuaW1hdGluZz0hMSx0aGlzLiQuYmFja2dyb3VuZC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9IiIsdGhpcy5maXJlKCJ0cmFuc2l0aW9uZW5kIil9LGFkZFJpcHBsZTpmdW5jdGlvbigpe3ZhciB0PW5ldyBabyh0aGlzKTtyZXR1cm4gWWkodGhpcy4kLndhdmVzKS5hcHBlbmRDaGlsZCh0LndhdmVDb250YWluZXIpLHRoaXMuJC5iYWNrZ3JvdW5kLnN0eWxlLmJhY2tncm91bmRDb2xvcj10LmNvbG9yLHRoaXMucmlwcGxlcy5wdXNoKHQpLHRoaXMuX3NldEFuaW1hdGluZyghMCksdH0scmVtb3ZlUmlwcGxlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucmlwcGxlcy5pbmRleE9mKHQpO2U8MHx8KHRoaXMucmlwcGxlcy5zcGxpY2UoZSwxKSx0LnJlbW92ZSgpLHRoaXMucmlwcGxlcy5sZW5ndGh8fHRoaXMuX3NldEFuaW1hdGluZyghMSkpfSxhbmltYXRlOmZ1bmN0aW9uKCl7aWYodGhpcy5fYW5pbWF0aW5nKXt2YXIgdCxlO2Zvcih0PTA7dDx0aGlzLnJpcHBsZXMubGVuZ3RoOysrdCkoZT10aGlzLnJpcHBsZXNbdF0pLmRyYXcoKSx0aGlzLiQuYmFja2dyb3VuZC5zdHlsZS5vcGFjaXR5PWUub3V0ZXJPcGFjaXR5LGUuaXNPcGFjaXR5RnVsbHlEZWNheWVkJiYhZS5pc1Jlc3RpbmdBdE1heFJhZGl1cyYmdGhpcy5yZW1vdmVSaXBwbGUoZSk7dGhpcy5zaG91bGRLZWVwQW5pbWF0aW5nfHwwIT09dGhpcy5yaXBwbGVzLmxlbmd0aD93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuX2JvdW5kQW5pbWF0ZSk6dGhpcy5vbkFuaW1hdGlvbkNvbXBsZXRlKCl9fSxhbmltYXRlUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYW5pbWF0ZSgpfSxfb25FbnRlcktleWRvd246ZnVuY3Rpb24oKXt0aGlzLnVpRG93bkFjdGlvbigpLHRoaXMuYXN5bmModGhpcy51aVVwQWN0aW9uLDEpfSxfb25TcGFjZUtleWRvd246ZnVuY3Rpb24oKXt0aGlzLnVpRG93bkFjdGlvbigpfSxfb25TcGFjZUtleXVwOmZ1bmN0aW9uKCl7dGhpcy51aVVwQWN0aW9uKCl9LF9ob2xkRG93bkNoYW5nZWQ6ZnVuY3Rpb24odCxlKXt2b2lkIDAhPT1lJiYodD90aGlzLmRvd25BY3Rpb24oKTp0aGlzLnVwQWN0aW9uKCkpfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgSm89e3Byb3BlcnRpZXM6e25vaW5rOnt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9ub2lua0NoYW5nZWQifSxfcmlwcGxlQ29udGFpbmVyOnt0eXBlOk9iamVjdH19LF9idXR0b25TdGF0ZUNoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmZvY3VzZWQmJnRoaXMuZW5zdXJlUmlwcGxlKCl9LF9kb3duSGFuZGxlcjpmdW5jdGlvbih0KXtZby5fZG93bkhhbmRsZXIuY2FsbCh0aGlzLHQpLHRoaXMucHJlc3NlZCYmdGhpcy5lbnN1cmVSaXBwbGUodCl9LGVuc3VyZVJpcHBsZTpmdW5jdGlvbih0KXtpZighdGhpcy5oYXNSaXBwbGUoKSl7dGhpcy5fcmlwcGxlPXRoaXMuX2NyZWF0ZVJpcHBsZSgpLHRoaXMuX3JpcHBsZS5ub2luaz10aGlzLm5vaW5rO3ZhciBlPXRoaXMuX3JpcHBsZUNvbnRhaW5lcnx8dGhpcy5yb290O2lmKGUmJllpKGUpLmFwcGVuZENoaWxkKHRoaXMuX3JpcHBsZSksdCl7dmFyIG49WWkodGhpcy5fcmlwcGxlQ29udGFpbmVyfHx0aGlzKSxpPVlpKHQpLnJvb3RUYXJnZXQ7bi5kZWVwQ29udGFpbnMoaSkmJnRoaXMuX3JpcHBsZS51aURvd25BY3Rpb24odCl9fX0sZ2V0UmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5zdXJlUmlwcGxlKCksdGhpcy5fcmlwcGxlfSxoYXNSaXBwbGU6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLl9yaXBwbGUpfSxfY3JlYXRlUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInBhcGVyLXJpcHBsZSIpfSxfbm9pbmtDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuaGFzUmlwcGxlKCkmJih0aGlzLl9yaXBwbGUubm9pbms9dCl9fSxRbz17cHJvcGVydGllczp7ZWxldmF0aW9uOnt0eXBlOk51bWJlcixyZWZsZWN0VG9BdHRyaWJ1dGU6ITAscmVhZE9ubHk6ITB9fSxvYnNlcnZlcnM6WyJfY2FsY3VsYXRlRWxldmF0aW9uKGZvY3VzZWQsIGRpc2FibGVkLCBhY3RpdmUsIHByZXNzZWQsIHJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQpIiwiX2NvbXB1dGVLZXlib2FyZENsYXNzKHJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQpIl0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6ImJ1dHRvbiIsdGFiaW5kZXg6IjAiLGFuaW1hdGVkOiEwfSxfY2FsY3VsYXRlRWxldmF0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9MTt0aGlzLmRpc2FibGVkP3Q9MDp0aGlzLmFjdGl2ZXx8dGhpcy5wcmVzc2VkP3Q9NDp0aGlzLnJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQmJih0PTMpLHRoaXMuX3NldEVsZXZhdGlvbih0KX0sX2NvbXB1dGVLZXlib2FyZENsYXNzOmZ1bmN0aW9uKHQpe3RoaXMudG9nZ2xlQ2xhc3MoImtleWJvYXJkLWZvY3VzIix0KX0sX3NwYWNlS2V5RG93bkhhbmRsZXI6ZnVuY3Rpb24odCl7WW8uX3NwYWNlS2V5RG93bkhhbmRsZXIuY2FsbCh0aGlzLHQpLHRoaXMuaGFzUmlwcGxlKCkmJnRoaXMuZ2V0UmlwcGxlKCkucmlwcGxlcy5sZW5ndGg8MSYmdGhpcy5fcmlwcGxlLnVpRG93bkFjdGlvbigpfSxfc3BhY2VLZXlVcEhhbmRsZXI6ZnVuY3Rpb24odCl7WW8uX3NwYWNlS2V5VXBIYW5kbGVyLmNhbGwodGhpcyx0KSx0aGlzLmhhc1JpcHBsZSgpJiZ0aGlzLl9yaXBwbGUudWlVcEFjdGlvbigpfX0sdGE9W1hvLHFvLEpvLFFvXSxlYT1fZWAKICA8c3R5bGUgaW5jbHVkZT0icGFwZXItbWF0ZXJpYWwtc3R5bGVzIj4KICAgIC8qIE5lZWQgdG8gc3BlY2lmeSB0aGUgc2FtZSBzcGVjaWZpY2l0eSBhcyB0aGUgc3R5bGVzIGltcG9ydGVkIGZyb20gcGFwZXItbWF0ZXJpYWwuICovCiAgICA6aG9zdCB7CiAgICAgIEBhcHBseSAtLWxheW91dC1pbmxpbmU7CiAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXItY2VudGVyOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIG1pbi13aWR0aDogNS4xNGVtOwogICAgICBtYXJnaW46IDAgMC4yOWVtOwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOwogICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICBmb250OiBpbmhlcml0OwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICBvdXRsaW5lLXdpZHRoOiAwOwogICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgei1pbmRleDogMDsKICAgICAgcGFkZGluZzogMC43ZW0gMC41N2VtOwoKICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgQGFwcGx5IC0tcGFwZXItYnV0dG9uOwogICAgfQoKICAgIDpob3N0KFtlbGV2YXRpb249IjEiXSkgewogICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMTsKICAgIH0KCiAgICA6aG9zdChbZWxldmF0aW9uPSIyIl0pIHsKICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTI7CiAgICB9CgogICAgOmhvc3QoW2VsZXZhdGlvbj0iMyJdKSB7CiAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0zOwogICAgfQoKICAgIDpob3N0KFtlbGV2YXRpb249IjQiXSkgewogICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNDsKICAgIH0KCiAgICA6aG9zdChbZWxldmF0aW9uPSI1Il0pIHsKICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTU7CiAgICB9CgogICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIDpob3N0KFtyYWlzZWRdLmtleWJvYXJkLWZvY3VzKSB7CiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICBAYXBwbHkgLS1wYXBlci1idXR0b24tcmFpc2VkLWtleWJvYXJkLWZvY3VzOwogICAgfQoKICAgIDpob3N0KDpub3QoW3JhaXNlZF0pLmtleWJvYXJkLWZvY3VzKSB7CiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICBAYXBwbHkgLS1wYXBlci1idXR0b24tZmxhdC1rZXlib2FyZC1mb2N1czsKICAgIH0KCiAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIGNvbG9yOiAjYThhOGE4OwogICAgICBjdXJzb3I6IGF1dG87CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwoKICAgICAgQGFwcGx5IC0tcGFwZXItYnV0dG9uLWRpc2FibGVkOwogICAgfQoKICAgIDpob3N0KFtkaXNhYmxlZF1bcmFpc2VkXSkgewogICAgICBiYWNrZ3JvdW5kOiAjZWFlYWVhOwogICAgfQoKCiAgICA6aG9zdChbYW5pbWF0ZWRdKSB7CiAgICAgIEBhcHBseSAtLXNoYWRvdy10cmFuc2l0aW9uOwogICAgfQoKICAgIHBhcGVyLXJpcHBsZSB7CiAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1idXR0b24taW5rLWNvbG9yKTsKICAgIH0KICA8L3N0eWxlPgoKICA8c2xvdD48L3Nsb3Q+YDsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovZWEuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIiksUnIoe190ZW1wbGF0ZTplYSxpczoicGFwZXItYnV0dG9uIixiZWhhdmlvcnM6W3RhXSxwcm9wZXJ0aWVzOntyYWlzZWQ6e3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsdmFsdWU6ITEsb2JzZXJ2ZXI6Il9jYWxjdWxhdGVFbGV2YXRpb24ifX0sX2NhbGN1bGF0ZUVsZXZhdGlvbjpmdW5jdGlvbigpe3RoaXMucmFpc2VkP1FvLl9jYWxjdWxhdGVFbGV2YXRpb24uYXBwbHkodGhpcyk6dGhpcy5fc2V0RWxldmF0aW9uKDApfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgbmE9X2VgCjxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgaHRtbCB7CgogICAgICAvKiBNYXRlcmlhbCBEZXNpZ24gY29sb3IgcGFsZXR0ZSBmb3IgR29vZ2xlIHByb2R1Y3RzICovCgogICAgICAtLWdvb2dsZS1yZWQtMTAwOiAjZjRjN2MzOwogICAgICAtLWdvb2dsZS1yZWQtMzAwOiAjZTY3YzczOwogICAgICAtLWdvb2dsZS1yZWQtNTAwOiAjZGI0NDM3OwogICAgICAtLWdvb2dsZS1yZWQtNzAwOiAjYzUzOTI5OwoKICAgICAgLS1nb29nbGUtYmx1ZS0xMDA6ICNjNmRhZmM7CiAgICAgIC0tZ29vZ2xlLWJsdWUtMzAwOiAjN2JhYWY3OwogICAgICAtLWdvb2dsZS1ibHVlLTUwMDogIzQyODVmNDsKICAgICAgLS1nb29nbGUtYmx1ZS03MDA6ICMzMzY3ZDY7CgogICAgICAtLWdvb2dsZS1ncmVlbi0xMDA6ICNiN2UxY2Q7CiAgICAgIC0tZ29vZ2xlLWdyZWVuLTMwMDogIzU3YmI4YTsKICAgICAgLS1nb29nbGUtZ3JlZW4tNTAwOiAjMGY5ZDU4OwogICAgICAtLWdvb2dsZS1ncmVlbi03MDA6ICMwYjgwNDM7CgogICAgICAtLWdvb2dsZS15ZWxsb3ctMTAwOiAjZmNlOGIyOwogICAgICAtLWdvb2dsZS15ZWxsb3ctMzAwOiAjZjdjYjRkOwogICAgICAtLWdvb2dsZS15ZWxsb3ctNTAwOiAjZjRiNDAwOwogICAgICAtLWdvb2dsZS15ZWxsb3ctNzAwOiAjZjA5MzAwOwoKICAgICAgLS1nb29nbGUtZ3JleS0xMDA6ICNmNWY1ZjU7CiAgICAgIC0tZ29vZ2xlLWdyZXktMzAwOiAjZTBlMGUwOwogICAgICAtLWdvb2dsZS1ncmV5LTUwMDogIzllOWU5ZTsKICAgICAgLS1nb29nbGUtZ3JleS03MDA6ICM2MTYxNjE7CgogICAgICAvKiBNYXRlcmlhbCBEZXNpZ24gY29sb3IgcGFsZXR0ZSBmcm9tIG9ubGluZSBzcGVjIGRvY3VtZW50ICovCgogICAgICAtLXBhcGVyLXJlZC01MDogI2ZmZWJlZTsKICAgICAgLS1wYXBlci1yZWQtMTAwOiAjZmZjZGQyOwogICAgICAtLXBhcGVyLXJlZC0yMDA6ICNlZjlhOWE7CiAgICAgIC0tcGFwZXItcmVkLTMwMDogI2U1NzM3MzsKICAgICAgLS1wYXBlci1yZWQtNDAwOiAjZWY1MzUwOwogICAgICAtLXBhcGVyLXJlZC01MDA6ICNmNDQzMzY7CiAgICAgIC0tcGFwZXItcmVkLTYwMDogI2U1MzkzNTsKICAgICAgLS1wYXBlci1yZWQtNzAwOiAjZDMyZjJmOwogICAgICAtLXBhcGVyLXJlZC04MDA6ICNjNjI4Mjg7CiAgICAgIC0tcGFwZXItcmVkLTkwMDogI2I3MWMxYzsKICAgICAgLS1wYXBlci1yZWQtYTEwMDogI2ZmOGE4MDsKICAgICAgLS1wYXBlci1yZWQtYTIwMDogI2ZmNTI1MjsKICAgICAgLS1wYXBlci1yZWQtYTQwMDogI2ZmMTc0NDsKICAgICAgLS1wYXBlci1yZWQtYTcwMDogI2Q1MDAwMDsKCiAgICAgIC0tcGFwZXItcGluay01MDogI2ZjZTRlYzsKICAgICAgLS1wYXBlci1waW5rLTEwMDogI2Y4YmJkMDsKICAgICAgLS1wYXBlci1waW5rLTIwMDogI2Y0OGZiMTsKICAgICAgLS1wYXBlci1waW5rLTMwMDogI2YwNjI5MjsKICAgICAgLS1wYXBlci1waW5rLTQwMDogI2VjNDA3YTsKICAgICAgLS1wYXBlci1waW5rLTUwMDogI2U5MWU2MzsKICAgICAgLS1wYXBlci1waW5rLTYwMDogI2Q4MWI2MDsKICAgICAgLS1wYXBlci1waW5rLTcwMDogI2MyMTg1YjsKICAgICAgLS1wYXBlci1waW5rLTgwMDogI2FkMTQ1NzsKICAgICAgLS1wYXBlci1waW5rLTkwMDogIzg4MGU0ZjsKICAgICAgLS1wYXBlci1waW5rLWExMDA6ICNmZjgwYWI7CiAgICAgIC0tcGFwZXItcGluay1hMjAwOiAjZmY0MDgxOwogICAgICAtLXBhcGVyLXBpbmstYTQwMDogI2Y1MDA1NzsKICAgICAgLS1wYXBlci1waW5rLWE3MDA6ICNjNTExNjI7CgogICAgICAtLXBhcGVyLXB1cnBsZS01MDogI2YzZTVmNTsKICAgICAgLS1wYXBlci1wdXJwbGUtMTAwOiAjZTFiZWU3OwogICAgICAtLXBhcGVyLXB1cnBsZS0yMDA6ICNjZTkzZDg7CiAgICAgIC0tcGFwZXItcHVycGxlLTMwMDogI2JhNjhjODsKICAgICAgLS1wYXBlci1wdXJwbGUtNDAwOiAjYWI0N2JjOwogICAgICAtLXBhcGVyLXB1cnBsZS01MDA6ICM5YzI3YjA7CiAgICAgIC0tcGFwZXItcHVycGxlLTYwMDogIzhlMjRhYTsKICAgICAgLS1wYXBlci1wdXJwbGUtNzAwOiAjN2IxZmEyOwogICAgICAtLXBhcGVyLXB1cnBsZS04MDA6ICM2YTFiOWE7CiAgICAgIC0tcGFwZXItcHVycGxlLTkwMDogIzRhMTQ4YzsKICAgICAgLS1wYXBlci1wdXJwbGUtYTEwMDogI2VhODBmYzsKICAgICAgLS1wYXBlci1wdXJwbGUtYTIwMDogI2UwNDBmYjsKICAgICAgLS1wYXBlci1wdXJwbGUtYTQwMDogI2Q1MDBmOTsKICAgICAgLS1wYXBlci1wdXJwbGUtYTcwMDogI2FhMDBmZjsKCiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtNTA6ICNlZGU3ZjY7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtMTAwOiAjZDFjNGU5OwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTIwMDogI2IzOWRkYjsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS0zMDA6ICM5NTc1Y2Q7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtNDAwOiAjN2U1N2MyOwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTUwMDogIzY3M2FiNzsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS02MDA6ICM1ZTM1YjE7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtNzAwOiAjNTEyZGE4OwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTgwMDogIzQ1MjdhMDsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS05MDA6ICMzMTFiOTI7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtYTEwMDogI2IzODhmZjsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS1hMjAwOiAjN2M0ZGZmOwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLWE0MDA6ICM2NTFmZmY7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtYTcwMDogIzYyMDBlYTsKCiAgICAgIC0tcGFwZXItaW5kaWdvLTUwOiAjZThlYWY2OwogICAgICAtLXBhcGVyLWluZGlnby0xMDA6ICNjNWNhZTk7CiAgICAgIC0tcGFwZXItaW5kaWdvLTIwMDogIzlmYThkYTsKICAgICAgLS1wYXBlci1pbmRpZ28tMzAwOiAjNzk4NmNiOwogICAgICAtLXBhcGVyLWluZGlnby00MDA6ICM1YzZiYzA7CiAgICAgIC0tcGFwZXItaW5kaWdvLTUwMDogIzNmNTFiNTsKICAgICAgLS1wYXBlci1pbmRpZ28tNjAwOiAjMzk0OWFiOwogICAgICAtLXBhcGVyLWluZGlnby03MDA6ICMzMDNmOWY7CiAgICAgIC0tcGFwZXItaW5kaWdvLTgwMDogIzI4MzU5MzsKICAgICAgLS1wYXBlci1pbmRpZ28tOTAwOiAjMWEyMzdlOwogICAgICAtLXBhcGVyLWluZGlnby1hMTAwOiAjOGM5ZWZmOwogICAgICAtLXBhcGVyLWluZGlnby1hMjAwOiAjNTM2ZGZlOwogICAgICAtLXBhcGVyLWluZGlnby1hNDAwOiAjM2Q1YWZlOwogICAgICAtLXBhcGVyLWluZGlnby1hNzAwOiAjMzA0ZmZlOwoKICAgICAgLS1wYXBlci1ibHVlLTUwOiAjZTNmMmZkOwogICAgICAtLXBhcGVyLWJsdWUtMTAwOiAjYmJkZWZiOwogICAgICAtLXBhcGVyLWJsdWUtMjAwOiAjOTBjYWY5OwogICAgICAtLXBhcGVyLWJsdWUtMzAwOiAjNjRiNWY2OwogICAgICAtLXBhcGVyLWJsdWUtNDAwOiAjNDJhNWY1OwogICAgICAtLXBhcGVyLWJsdWUtNTAwOiAjMjE5NmYzOwogICAgICAtLXBhcGVyLWJsdWUtNjAwOiAjMWU4OGU1OwogICAgICAtLXBhcGVyLWJsdWUtNzAwOiAjMTk3NmQyOwogICAgICAtLXBhcGVyLWJsdWUtODAwOiAjMTU2NWMwOwogICAgICAtLXBhcGVyLWJsdWUtOTAwOiAjMGQ0N2ExOwogICAgICAtLXBhcGVyLWJsdWUtYTEwMDogIzgyYjFmZjsKICAgICAgLS1wYXBlci1ibHVlLWEyMDA6ICM0NDhhZmY7CiAgICAgIC0tcGFwZXItYmx1ZS1hNDAwOiAjMjk3OWZmOwogICAgICAtLXBhcGVyLWJsdWUtYTcwMDogIzI5NjJmZjsKCiAgICAgIC0tcGFwZXItbGlnaHQtYmx1ZS01MDogI2UxZjVmZTsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTEwMDogI2IzZTVmYzsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTIwMDogIzgxZDRmYTsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTMwMDogIzRmYzNmNzsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTQwMDogIzI5YjZmNjsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTUwMDogIzAzYTlmNDsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTYwMDogIzAzOWJlNTsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTcwMDogIzAyODhkMTsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTgwMDogIzAyNzdiZDsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTkwMDogIzAxNTc5YjsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLWExMDA6ICM4MGQ4ZmY7CiAgICAgIC0tcGFwZXItbGlnaHQtYmx1ZS1hMjAwOiAjNDBjNGZmOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtYTQwMDogIzAwYjBmZjsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLWE3MDA6ICMwMDkxZWE7CgogICAgICAtLXBhcGVyLWN5YW4tNTA6ICNlMGY3ZmE7CiAgICAgIC0tcGFwZXItY3lhbi0xMDA6ICNiMmViZjI7CiAgICAgIC0tcGFwZXItY3lhbi0yMDA6ICM4MGRlZWE7CiAgICAgIC0tcGFwZXItY3lhbi0zMDA6ICM0ZGQwZTE7CiAgICAgIC0tcGFwZXItY3lhbi00MDA6ICMyNmM2ZGE7CiAgICAgIC0tcGFwZXItY3lhbi01MDA6ICMwMGJjZDQ7CiAgICAgIC0tcGFwZXItY3lhbi02MDA6ICMwMGFjYzE7CiAgICAgIC0tcGFwZXItY3lhbi03MDA6ICMwMDk3YTc7CiAgICAgIC0tcGFwZXItY3lhbi04MDA6ICMwMDgzOGY7CiAgICAgIC0tcGFwZXItY3lhbi05MDA6ICMwMDYwNjQ7CiAgICAgIC0tcGFwZXItY3lhbi1hMTAwOiAjODRmZmZmOwogICAgICAtLXBhcGVyLWN5YW4tYTIwMDogIzE4ZmZmZjsKICAgICAgLS1wYXBlci1jeWFuLWE0MDA6ICMwMGU1ZmY7CiAgICAgIC0tcGFwZXItY3lhbi1hNzAwOiAjMDBiOGQ0OwoKICAgICAgLS1wYXBlci10ZWFsLTUwOiAjZTBmMmYxOwogICAgICAtLXBhcGVyLXRlYWwtMTAwOiAjYjJkZmRiOwogICAgICAtLXBhcGVyLXRlYWwtMjAwOiAjODBjYmM0OwogICAgICAtLXBhcGVyLXRlYWwtMzAwOiAjNGRiNmFjOwogICAgICAtLXBhcGVyLXRlYWwtNDAwOiAjMjZhNjlhOwogICAgICAtLXBhcGVyLXRlYWwtNTAwOiAjMDA5Njg4OwogICAgICAtLXBhcGVyLXRlYWwtNjAwOiAjMDA4OTdiOwogICAgICAtLXBhcGVyLXRlYWwtNzAwOiAjMDA3OTZiOwogICAgICAtLXBhcGVyLXRlYWwtODAwOiAjMDA2OTVjOwogICAgICAtLXBhcGVyLXRlYWwtOTAwOiAjMDA0ZDQwOwogICAgICAtLXBhcGVyLXRlYWwtYTEwMDogI2E3ZmZlYjsKICAgICAgLS1wYXBlci10ZWFsLWEyMDA6ICM2NGZmZGE7CiAgICAgIC0tcGFwZXItdGVhbC1hNDAwOiAjMWRlOWI2OwogICAgICAtLXBhcGVyLXRlYWwtYTcwMDogIzAwYmZhNTsKCiAgICAgIC0tcGFwZXItZ3JlZW4tNTA6ICNlOGY1ZTk7CiAgICAgIC0tcGFwZXItZ3JlZW4tMTAwOiAjYzhlNmM5OwogICAgICAtLXBhcGVyLWdyZWVuLTIwMDogI2E1ZDZhNzsKICAgICAgLS1wYXBlci1ncmVlbi0zMDA6ICM4MWM3ODQ7CiAgICAgIC0tcGFwZXItZ3JlZW4tNDAwOiAjNjZiYjZhOwogICAgICAtLXBhcGVyLWdyZWVuLTUwMDogIzRjYWY1MDsKICAgICAgLS1wYXBlci1ncmVlbi02MDA6ICM0M2EwNDc7CiAgICAgIC0tcGFwZXItZ3JlZW4tNzAwOiAjMzg4ZTNjOwogICAgICAtLXBhcGVyLWdyZWVuLTgwMDogIzJlN2QzMjsKICAgICAgLS1wYXBlci1ncmVlbi05MDA6ICMxYjVlMjA7CiAgICAgIC0tcGFwZXItZ3JlZW4tYTEwMDogI2I5ZjZjYTsKICAgICAgLS1wYXBlci1ncmVlbi1hMjAwOiAjNjlmMGFlOwogICAgICAtLXBhcGVyLWdyZWVuLWE0MDA6ICMwMGU2NzY7CiAgICAgIC0tcGFwZXItZ3JlZW4tYTcwMDogIzAwYzg1MzsKCiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tNTA6ICNmMWY4ZTk7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tMTAwOiAjZGNlZGM4OwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTIwMDogI2M1ZTFhNTsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi0zMDA6ICNhZWQ1ODE7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tNDAwOiAjOWNjYzY1OwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTUwMDogIzhiYzM0YTsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi02MDA6ICM3Y2IzNDI7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tNzAwOiAjNjg5ZjM4OwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTgwMDogIzU1OGIyZjsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi05MDA6ICMzMzY5MWU7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tYTEwMDogI2NjZmY5MDsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi1hMjAwOiAjYjJmZjU5OwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLWE0MDA6ICM3NmZmMDM7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tYTcwMDogIzY0ZGQxNzsKCiAgICAgIC0tcGFwZXItbGltZS01MDogI2Y5ZmJlNzsKICAgICAgLS1wYXBlci1saW1lLTEwMDogI2YwZjRjMzsKICAgICAgLS1wYXBlci1saW1lLTIwMDogI2U2ZWU5YzsKICAgICAgLS1wYXBlci1saW1lLTMwMDogI2RjZTc3NTsKICAgICAgLS1wYXBlci1saW1lLTQwMDogI2Q0ZTE1NzsKICAgICAgLS1wYXBlci1saW1lLTUwMDogI2NkZGMzOTsKICAgICAgLS1wYXBlci1saW1lLTYwMDogI2MwY2EzMzsKICAgICAgLS1wYXBlci1saW1lLTcwMDogI2FmYjQyYjsKICAgICAgLS1wYXBlci1saW1lLTgwMDogIzllOWQyNDsKICAgICAgLS1wYXBlci1saW1lLTkwMDogIzgyNzcxNzsKICAgICAgLS1wYXBlci1saW1lLWExMDA6ICNmNGZmODE7CiAgICAgIC0tcGFwZXItbGltZS1hMjAwOiAjZWVmZjQxOwogICAgICAtLXBhcGVyLWxpbWUtYTQwMDogI2M2ZmYwMDsKICAgICAgLS1wYXBlci1saW1lLWE3MDA6ICNhZWVhMDA7CgogICAgICAtLXBhcGVyLXllbGxvdy01MDogI2ZmZmRlNzsKICAgICAgLS1wYXBlci15ZWxsb3ctMTAwOiAjZmZmOWM0OwogICAgICAtLXBhcGVyLXllbGxvdy0yMDA6ICNmZmY1OWQ7CiAgICAgIC0tcGFwZXIteWVsbG93LTMwMDogI2ZmZjE3NjsKICAgICAgLS1wYXBlci15ZWxsb3ctNDAwOiAjZmZlZTU4OwogICAgICAtLXBhcGVyLXllbGxvdy01MDA6ICNmZmViM2I7CiAgICAgIC0tcGFwZXIteWVsbG93LTYwMDogI2ZkZDgzNTsKICAgICAgLS1wYXBlci15ZWxsb3ctNzAwOiAjZmJjMDJkOwogICAgICAtLXBhcGVyLXllbGxvdy04MDA6ICNmOWE4MjU7CiAgICAgIC0tcGFwZXIteWVsbG93LTkwMDogI2Y1N2YxNzsKICAgICAgLS1wYXBlci15ZWxsb3ctYTEwMDogI2ZmZmY4ZDsKICAgICAgLS1wYXBlci15ZWxsb3ctYTIwMDogI2ZmZmYwMDsKICAgICAgLS1wYXBlci15ZWxsb3ctYTQwMDogI2ZmZWEwMDsKICAgICAgLS1wYXBlci15ZWxsb3ctYTcwMDogI2ZmZDYwMDsKCiAgICAgIC0tcGFwZXItYW1iZXItNTA6ICNmZmY4ZTE7CiAgICAgIC0tcGFwZXItYW1iZXItMTAwOiAjZmZlY2IzOwogICAgICAtLXBhcGVyLWFtYmVyLTIwMDogI2ZmZTA4MjsKICAgICAgLS1wYXBlci1hbWJlci0zMDA6ICNmZmQ1NGY7CiAgICAgIC0tcGFwZXItYW1iZXItNDAwOiAjZmZjYTI4OwogICAgICAtLXBhcGVyLWFtYmVyLTUwMDogI2ZmYzEwNzsKICAgICAgLS1wYXBlci1hbWJlci02MDA6ICNmZmIzMDA7CiAgICAgIC0tcGFwZXItYW1iZXItNzAwOiAjZmZhMDAwOwogICAgICAtLXBhcGVyLWFtYmVyLTgwMDogI2ZmOGYwMDsKICAgICAgLS1wYXBlci1hbWJlci05MDA6ICNmZjZmMDA7CiAgICAgIC0tcGFwZXItYW1iZXItYTEwMDogI2ZmZTU3ZjsKICAgICAgLS1wYXBlci1hbWJlci1hMjAwOiAjZmZkNzQwOwogICAgICAtLXBhcGVyLWFtYmVyLWE0MDA6ICNmZmM0MDA7CiAgICAgIC0tcGFwZXItYW1iZXItYTcwMDogI2ZmYWIwMDsKCiAgICAgIC0tcGFwZXItb3JhbmdlLTUwOiAjZmZmM2UwOwogICAgICAtLXBhcGVyLW9yYW5nZS0xMDA6ICNmZmUwYjI7CiAgICAgIC0tcGFwZXItb3JhbmdlLTIwMDogI2ZmY2M4MDsKICAgICAgLS1wYXBlci1vcmFuZ2UtMzAwOiAjZmZiNzRkOwogICAgICAtLXBhcGVyLW9yYW5nZS00MDA6ICNmZmE3MjY7CiAgICAgIC0tcGFwZXItb3JhbmdlLTUwMDogI2ZmOTgwMDsKICAgICAgLS1wYXBlci1vcmFuZ2UtNjAwOiAjZmI4YzAwOwogICAgICAtLXBhcGVyLW9yYW5nZS03MDA6ICNmNTdjMDA7CiAgICAgIC0tcGFwZXItb3JhbmdlLTgwMDogI2VmNmMwMDsKICAgICAgLS1wYXBlci1vcmFuZ2UtOTAwOiAjZTY1MTAwOwogICAgICAtLXBhcGVyLW9yYW5nZS1hMTAwOiAjZmZkMTgwOwogICAgICAtLXBhcGVyLW9yYW5nZS1hMjAwOiAjZmZhYjQwOwogICAgICAtLXBhcGVyLW9yYW5nZS1hNDAwOiAjZmY5MTAwOwogICAgICAtLXBhcGVyLW9yYW5nZS1hNzAwOiAjZmY2NTAwOwoKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS01MDogI2ZiZTllNzsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS0xMDA6ICNmZmNjYmM7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtMjAwOiAjZmZhYjkxOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTMwMDogI2ZmOGE2NTsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS00MDA6ICNmZjcwNDM7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtNTAwOiAjZmY1NzIyOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTYwMDogI2Y0NTExZTsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS03MDA6ICNlNjRhMTk7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtODAwOiAjZDg0MzE1OwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTkwMDogI2JmMzYwYzsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS1hMTAwOiAjZmY5ZTgwOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLWEyMDA6ICNmZjZlNDA7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtYTQwMDogI2ZmM2QwMDsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS1hNzAwOiAjZGQyYzAwOwoKICAgICAgLS1wYXBlci1icm93bi01MDogI2VmZWJlOTsKICAgICAgLS1wYXBlci1icm93bi0xMDA6ICNkN2NjYzg7CiAgICAgIC0tcGFwZXItYnJvd24tMjAwOiAjYmNhYWE0OwogICAgICAtLXBhcGVyLWJyb3duLTMwMDogI2ExODg3ZjsKICAgICAgLS1wYXBlci1icm93bi00MDA6ICM4ZDZlNjM7CiAgICAgIC0tcGFwZXItYnJvd24tNTAwOiAjNzk1NTQ4OwogICAgICAtLXBhcGVyLWJyb3duLTYwMDogIzZkNGM0MTsKICAgICAgLS1wYXBlci1icm93bi03MDA6ICM1ZDQwMzc7CiAgICAgIC0tcGFwZXItYnJvd24tODAwOiAjNGUzNDJlOwogICAgICAtLXBhcGVyLWJyb3duLTkwMDogIzNlMjcyMzsKCiAgICAgIC0tcGFwZXItZ3JleS01MDogI2ZhZmFmYTsKICAgICAgLS1wYXBlci1ncmV5LTEwMDogI2Y1ZjVmNTsKICAgICAgLS1wYXBlci1ncmV5LTIwMDogI2VlZWVlZTsKICAgICAgLS1wYXBlci1ncmV5LTMwMDogI2UwZTBlMDsKICAgICAgLS1wYXBlci1ncmV5LTQwMDogI2JkYmRiZDsKICAgICAgLS1wYXBlci1ncmV5LTUwMDogIzllOWU5ZTsKICAgICAgLS1wYXBlci1ncmV5LTYwMDogIzc1NzU3NTsKICAgICAgLS1wYXBlci1ncmV5LTcwMDogIzYxNjE2MTsKICAgICAgLS1wYXBlci1ncmV5LTgwMDogIzQyNDI0MjsKICAgICAgLS1wYXBlci1ncmV5LTkwMDogIzIxMjEyMTsKCiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTUwOiAjZWNlZmYxOwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS0xMDA6ICNjZmQ4ZGM7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTIwMDogI2IwYmVjNTsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktMzAwOiAjOTBhNGFlOwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS00MDA6ICM3ODkwOWM7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTUwMDogIzYwN2Q4YjsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktNjAwOiAjNTQ2ZTdhOwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS03MDA6ICM0NTVhNjQ7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTgwMDogIzM3NDc0ZjsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktOTAwOiAjMjYzMjM4OwoKICAgICAgLyogb3BhY2l0eSBmb3IgZGFyayB0ZXh0IG9uIGEgbGlnaHQgYmFja2dyb3VuZCAqLwogICAgICAtLWRhcmstZGl2aWRlci1vcGFjaXR5OiAwLjEyOwogICAgICAtLWRhcmstZGlzYWJsZWQtb3BhY2l0eTogMC4zODsgLyogb3IgaGludCB0ZXh0IG9yIGljb24gKi8KICAgICAgLS1kYXJrLXNlY29uZGFyeS1vcGFjaXR5OiAwLjU0OwogICAgICAtLWRhcmstcHJpbWFyeS1vcGFjaXR5OiAwLjg3OwoKICAgICAgLyogb3BhY2l0eSBmb3IgbGlnaHQgdGV4dCBvbiBhIGRhcmsgYmFja2dyb3VuZCAqLwogICAgICAtLWxpZ2h0LWRpdmlkZXItb3BhY2l0eTogMC4xMjsKICAgICAgLS1saWdodC1kaXNhYmxlZC1vcGFjaXR5OiAwLjM7IC8qIG9yIGhpbnQgdGV4dCBvciBpY29uICovCiAgICAgIC0tbGlnaHQtc2Vjb25kYXJ5LW9wYWNpdHk6IDAuNzsKICAgICAgLS1saWdodC1wcmltYXJ5LW9wYWNpdHk6IDEuMDsKCiAgICB9CgogIDwvc3R5bGU+CjwvY3VzdG9tLXN0eWxlPgpgO25hLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobmEuY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBpYT1fZWAKPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBodG1sIHsKICAgICAgLyoKICAgICAgICogWW91IGNhbiB1c2UgdGhlc2UgZ2VuZXJpYyB2YXJpYWJsZXMgaW4geW91ciBlbGVtZW50cyBmb3IgZWFzeSB0aGVtaW5nLgogICAgICAgKiBGb3IgZXhhbXBsZSwgaWYgYWxsIHlvdXIgZWxlbWVudHMgdXNlIFxgLS1wcmltYXJ5LXRleHQtY29sb3JcYCBhcyBpdHMgbWFpbgogICAgICAgKiBjb2xvciwgdGhlbiBzd2l0Y2hpbmcgZnJvbSBhIGxpZ2h0IHRvIGEgZGFyayB0aGVtZSBpcyBqdXN0IGEgbWF0dGVyIG9mCiAgICAgICAqIGNoYW5naW5nIHRoZSB2YWx1ZSBvZiBcYC0tcHJpbWFyeS10ZXh0LWNvbG9yXGAgaW4geW91ciBhcHBsaWNhdGlvbi4KICAgICAgICovCiAgICAgIC0tcHJpbWFyeS10ZXh0LWNvbG9yOiB2YXIoLS1saWdodC10aGVtZS10ZXh0LWNvbG9yKTsKICAgICAgLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LXRoZW1lLWJhY2tncm91bmQtY29sb3IpOwogICAgICAtLXNlY29uZGFyeS10ZXh0LWNvbG9yOiB2YXIoLS1saWdodC10aGVtZS1zZWNvbmRhcnktY29sb3IpOwogICAgICAtLWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLWxpZ2h0LXRoZW1lLWRpc2FibGVkLWNvbG9yKTsKICAgICAgLS1kaXZpZGVyLWNvbG9yOiB2YXIoLS1saWdodC10aGVtZS1kaXZpZGVyLWNvbG9yKTsKICAgICAgLS1lcnJvci1jb2xvcjogdmFyKC0tcGFwZXItZGVlcC1vcmFuZ2UtYTcwMCk7CgogICAgICAvKgogICAgICAgKiBQcmltYXJ5IGFuZCBhY2NlbnQgY29sb3JzLiBBbHNvIHNlZSBjb2xvci5qcyBmb3IgbW9yZSBjb2xvcnMuCiAgICAgICAqLwogICAgICAtLXByaW1hcnktY29sb3I6IHZhcigtLXBhcGVyLWluZGlnby01MDApOwogICAgICAtLWxpZ2h0LXByaW1hcnktY29sb3I6IHZhcigtLXBhcGVyLWluZGlnby0xMDApOwogICAgICAtLWRhcmstcHJpbWFyeS1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTcwMCk7CgogICAgICAtLWFjY2VudC1jb2xvcjogdmFyKC0tcGFwZXItcGluay1hMjAwKTsKICAgICAgLS1saWdodC1hY2NlbnQtY29sb3I6IHZhcigtLXBhcGVyLXBpbmstYTEwMCk7CiAgICAgIC0tZGFyay1hY2NlbnQtY29sb3I6IHZhcigtLXBhcGVyLXBpbmstYTQwMCk7CgoKICAgICAgLyoKICAgICAgICogTWF0ZXJpYWwgRGVzaWduIExpZ2h0IGJhY2tncm91bmQgdGhlbWUKICAgICAgICovCiAgICAgIC0tbGlnaHQtdGhlbWUtYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKICAgICAgLS1saWdodC10aGVtZS1iYXNlLWNvbG9yOiAjMDAwMDAwOwogICAgICAtLWxpZ2h0LXRoZW1lLXRleHQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktOTAwKTsKICAgICAgLS1saWdodC10aGVtZS1zZWNvbmRhcnktY29sb3I6ICM3MzczNzM7ICAvKiBmb3Igc2Vjb25kYXJ5IHRleHQgYW5kIGljb25zICovCiAgICAgIC0tbGlnaHQtdGhlbWUtZGlzYWJsZWQtY29sb3I6ICM5YjliOWI7ICAvKiBkaXNhYmxlZC9oaW50IHRleHQgKi8KICAgICAgLS1saWdodC10aGVtZS1kaXZpZGVyLWNvbG9yOiAjZGJkYmRiOwoKICAgICAgLyoKICAgICAgICogTWF0ZXJpYWwgRGVzaWduIERhcmsgYmFja2dyb3VuZCB0aGVtZQogICAgICAgKi8KICAgICAgLS1kYXJrLXRoZW1lLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktOTAwKTsKICAgICAgLS1kYXJrLXRoZW1lLWJhc2UtY29sb3I6ICNmZmZmZmY7CiAgICAgIC0tZGFyay10aGVtZS10ZXh0LWNvbG9yOiAjZmZmZmZmOwogICAgICAtLWRhcmstdGhlbWUtc2Vjb25kYXJ5LWNvbG9yOiAjYmNiY2JjOyAgLyogZm9yIHNlY29uZGFyeSB0ZXh0IGFuZCBpY29ucyAqLwogICAgICAtLWRhcmstdGhlbWUtZGlzYWJsZWQtY29sb3I6ICM2NDY0NjQ7ICAvKiBkaXNhYmxlZC9oaW50IHRleHQgKi8KICAgICAgLS1kYXJrLXRoZW1lLWRpdmlkZXItY29sb3I6ICMzYzNjM2M7CgogICAgICAvKgogICAgICAgKiBEZXByZWNhdGVkIHZhbHVlcyBiZWNhdXNlIG9mIHRoZWlyIGNvbmZ1c2luZyBuYW1lcy4KICAgICAgICovCiAgICAgIC0tdGV4dC1wcmltYXJ5LWNvbG9yOiB2YXIoLS1kYXJrLXRoZW1lLXRleHQtY29sb3IpOwogICAgICAtLWRlZmF1bHQtcHJpbWFyeS1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7CiAgICB9CiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+YDtpYS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGlhLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgcmE9e3Byb3BlcnRpZXM6e25hbWU6e3R5cGU6U3RyaW5nfSx2YWx1ZTp7bm90aWZ5OiEwLHR5cGU6U3RyaW5nfSxyZXF1aXJlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt9LGRldGFjaGVkOmZ1bmN0aW9uKCl7fX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2xldCBvYT1udWxsO2NvbnN0IGFhPXtwcm9wZXJ0aWVzOnt2YWxpZGF0b3I6e3R5cGU6U3RyaW5nfSxpbnZhbGlkOntub3RpZnk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwLHR5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX2ludmFsaWRDaGFuZ2VkIn19LHJlZ2lzdGVyZWQ6ZnVuY3Rpb24oKXtvYT1uZXcgeG8oe3R5cGU6InZhbGlkYXRvciJ9KX0sX2ludmFsaWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5pbnZhbGlkP3RoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJ0cnVlIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIpfSxnZXQgX3ZhbGlkYXRvcigpe3JldHVybiBvYSYmb2EuYnlLZXkodGhpcy52YWxpZGF0b3IpfSxoYXNWYWxpZGF0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9dGhpcy5fdmFsaWRhdG9yfSx2YWxpZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnZhbGlkPXZvaWQgMD09PXQmJnZvaWQgMCE9PXRoaXMudmFsdWU/IXRoaXMuX2dldFZhbGlkaXR5KHRoaXMudmFsdWUpOiF0aGlzLl9nZXRWYWxpZGl0eSh0KSwhdGhpcy5pbnZhbGlkfSxfZ2V0VmFsaWRpdHk6ZnVuY3Rpb24odCl7cmV0dXJuIXRoaXMuaGFzVmFsaWRhdG9yKCl8fHRoaXMuX3ZhbGlkYXRvci52YWxpZGF0ZSh0KX19LHNhPXtwcm9wZXJ0aWVzOntjaGVja2VkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVmbGVjdFRvQXR0cmlidXRlOiEwLG5vdGlmeTohMCxvYnNlcnZlcjoiX2NoZWNrZWRDaGFuZ2VkIn0sdG9nZ2xlczp7dHlwZTpCb29sZWFuLHZhbHVlOiEwLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sdmFsdWU6e3R5cGU6U3RyaW5nLHZhbHVlOiJvbiIsb2JzZXJ2ZXI6Il92YWx1ZUNoYW5nZWQifX0sb2JzZXJ2ZXJzOlsiX3JlcXVpcmVkQ2hhbmdlZChyZXF1aXJlZCkiXSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5faGFzSXJvbkNoZWNrZWRFbGVtZW50QmVoYXZpb3I9ITB9LF9nZXRWYWxpZGl0eTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kaXNhYmxlZHx8IXRoaXMucmVxdWlyZWR8fHRoaXMuY2hlY2tlZH0sX3JlcXVpcmVkQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMucmVxdWlyZWQ/dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtcmVxdWlyZWQiLCJ0cnVlIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtcmVxdWlyZWQiKX0sX2NoZWNrZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5hY3RpdmU9dGhpcy5jaGVja2VkLHRoaXMuZmlyZSgiaXJvbi1jaGFuZ2UiKX0sX3ZhbHVlQ2hhbmdlZDpmdW5jdGlvbigpe251bGw9PXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPSJvbiIpfX0sbGE9e29ic2VydmVyczpbIl9mb2N1c2VkQ2hhbmdlZChyZWNlaXZlZEZvY3VzRnJvbUtleWJvYXJkKSJdLF9mb2N1c2VkQ2hhbmdlZDpmdW5jdGlvbih0KXt0JiZ0aGlzLmVuc3VyZVJpcHBsZSgpLHRoaXMuaGFzUmlwcGxlKCkmJih0aGlzLl9yaXBwbGUuaG9sZERvd249dCl9LF9jcmVhdGVSaXBwbGU6ZnVuY3Rpb24oKXt2YXIgdD1Kby5fY3JlYXRlUmlwcGxlKCk7cmV0dXJuIHQuaWQ9ImluayIsdC5zZXRBdHRyaWJ1dGUoImNlbnRlciIsIiIpLHQuY2xhc3NMaXN0LmFkZCgiY2lyY2xlIiksdH19LGNhPVtYbyxxbyxKbyxsYV0sdWE9W2NhLFtyYSxhYSxzYV0se19jaGVja2VkQ2hhbmdlZDpmdW5jdGlvbigpe3NhLl9jaGVja2VkQ2hhbmdlZC5jYWxsKHRoaXMpLHRoaXMuaGFzUmlwcGxlKCkmJih0aGlzLmNoZWNrZWQ/dGhpcy5fcmlwcGxlLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsIiIpOnRoaXMuX3JpcHBsZS5yZW1vdmVBdHRyaWJ1dGUoImNoZWNrZWQiKSl9LF9idXR0b25TdGF0ZUNoYW5nZWQ6ZnVuY3Rpb24oKXtKby5fYnV0dG9uU3RhdGVDaGFuZ2VkLmNhbGwodGhpcyksdGhpcy5kaXNhYmxlZHx8dGhpcy5pc0F0dGFjaGVkJiYodGhpcy5jaGVja2VkPXRoaXMuYWN0aXZlKX19XSxoYT1fZWA8c3R5bGU+CiAgOmhvc3QgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1zaXplOiB2YXIoLS1wYXBlci1jaGVja2JveC1zaXplLCAxOHB4KTsKICAgIC8qIC0xcHggaXMgYSBzZW50aW5lbCBmb3IgdGhlIGRlZmF1bHQgYW5kIGlzIHJlcGxhY2VkIGluIFxgYXR0YWNoZWRcYC4gKi8KICAgIC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZTogdmFyKC0tcGFwZXItY2hlY2tib3gtaW5rLXNpemUsIC0xcHgpOwogICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgIGxpbmUtaGVpZ2h0OiAwOwogICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKICB9CgogIDpob3N0KFtoaWRkZW5dKSB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgfQoKICA6aG9zdCg6Zm9jdXMpIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgfQoKICAuaGlkZGVuIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAjY2hlY2tib3hDb250YWluZXIgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSk7CiAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSk7CiAgICBtaW4td2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSk7CiAgICBtYXJnaW46IHZhcigtLXBhcGVyLWNoZWNrYm94LW1hcmdpbiwgaW5pdGlhbCk7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdmFyKC0tcGFwZXItY2hlY2tib3gtdmVydGljYWwtYWxpZ24sIG1pZGRsZSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpOwogIH0KCiAgI2luayB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CgogICAgLyogQ2VudGVyIHRoZSByaXBwbGUgaW4gdGhlIGNoZWNrYm94IGJ5IG5lZ2F0aXZlIG9mZnNldHRpbmcgaXQgYnkKICAgICAqIChpbmtXaWR0aCAtIHJpcHBsZVdpZHRoKSAvIDIgKi8KICAgIHRvcDogY2FsYygwcHggLSAodmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSkgLSB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKSAvIDIpOwogICAgbGVmdDogY2FsYygwcHggLSAodmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSkgLSB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKSAvIDIpOwogICAgd2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtaW5rLXNpemUpOwogICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LWluay1zaXplKTsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtaW5rLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgIG9wYWNpdHk6IDAuNjsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgI2luazpkaXIocnRsKSB7CiAgICByaWdodDogY2FsYygwcHggLSAodmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSkgLSB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKSAvIDIpOwogICAgbGVmdDogYXV0bzsKICB9CgogICNpbmtbY2hlY2tlZF0gewogICAgY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgfQoKICAjY2hlY2tib3ggewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGhlaWdodDogMTAwJTsKICAgIGJvcmRlcjogc29saWQgMnB4OwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGJvcmRlci1jb2xvciAxNDBtczsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGJvcmRlci1jb2xvciAxNDBtczsKCiAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLWNoZWNrYm94LWFuaW1hdGlvbi1kdXJhdGlvbiwgMTQwbXMpOwogICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItY2hlY2tib3gtYW5pbWF0aW9uLWR1cmF0aW9uLCAxNDBtcyk7CiAgfQoKICAvKiBjaGVja2JveCBjaGVja2VkIGFuaW1hdGlvbnMgKi8KICAjY2hlY2tib3guY2hlY2tlZCAjY2hlY2ttYXJrIHsKICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjaGVja21hcmstZXhwYW5kIDE0MG1zIGVhc2Utb3V0IGZvcndhcmRzOwogICAgYW5pbWF0aW9uOiBjaGVja21hcmstZXhwYW5kIDE0MG1zIGVhc2Utb3V0IGZvcndhcmRzOwoKICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci1jaGVja2JveC1hbmltYXRpb24tZHVyYXRpb24sIDE0MG1zKTsKICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItY2hlY2tib3gtYW5pbWF0aW9uLWR1cmF0aW9uLCAxNDBtcyk7CiAgfQoKICBALXdlYmtpdC1rZXlmcmFtZXMgY2hlY2ttYXJrLWV4cGFuZCB7CiAgICAwJSB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLCAwKSByb3RhdGUoNDVkZWcpOwogICAgfQogICAgMTAwJSB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSByb3RhdGUoNDVkZWcpOwogICAgfQogIH0KCiAgQGtleWZyYW1lcyBjaGVja21hcmstZXhwYW5kIHsKICAgIDAlIHsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKSByb3RhdGUoNDVkZWcpOwogICAgfQogICAgMTAwJSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgcm90YXRlKDQ1ZGVnKTsKICAgIH0KICB9CgogICNjaGVja2JveC5jaGVja2VkIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwogIH0KCiAgI2NoZWNrbWFyayB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB3aWR0aDogMzYlOwogICAgaGVpZ2h0OiA3MCU7CiAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgYm9yZGVyLXRvcDogbm9uZTsKICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiBjYWxjKDIvMTUgKiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKTsKICAgIGJvcmRlci1ib3R0b20td2lkdGg6IGNhbGMoMi8xNSAqIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSkpOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC1jaGVja21hcmstY29sb3IsIHdoaXRlKTsKICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogOTclIDg2JTsKICAgIHRyYW5zZm9ybS1vcmlnaW46IDk3JSA4NiU7CiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogcHJvdGVjdCBhZ2FpbnN0IHBhZ2UtbGV2ZWwgYm94LXNpemluZyAqLwogIH0KCiAgI2NoZWNrbWFyazpkaXIocnRsKSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSAxNCU7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTQlOwogIH0KCiAgLyogbGFiZWwgKi8KICAjY2hlY2tib3hMYWJlbCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1wYXBlci1jaGVja2JveC1sYWJlbC1zcGFjaW5nLCA4cHgpOwogICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICBjb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtbGFiZWwtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgQGFwcGx5IC0tcGFwZXItY2hlY2tib3gtbGFiZWw7CiAgfQoKICA6aG9zdChbY2hlY2tlZF0pICNjaGVja2JveExhYmVsIHsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC1sYWJlbC1jaGVja2VkLWNvbG9yLCB2YXIoLS1wYXBlci1jaGVja2JveC1sYWJlbC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSkpOwogICAgQGFwcGx5IC0tcGFwZXItY2hlY2tib3gtbGFiZWwtY2hlY2tlZDsKICB9CgogICNjaGVja2JveExhYmVsOmRpcihydGwpIHsKICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXBhcGVyLWNoZWNrYm94LWxhYmVsLXNwYWNpbmcsIDhweCk7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgfQoKICAjY2hlY2tib3hMYWJlbFtoaWRkZW5dIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAvKiBkaXNhYmxlZCBzdGF0ZSAqLwoKICA6aG9zdChbZGlzYWJsZWRdKSAjY2hlY2tib3ggewogICAgb3BhY2l0eTogMC41OwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogIH0KCiAgOmhvc3QoW2Rpc2FibGVkXVtjaGVja2VkXSkgI2NoZWNrYm94IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICBvcGFjaXR5OiAwLjU7CiAgfQoKICA6aG9zdChbZGlzYWJsZWRdKSAjY2hlY2tib3hMYWJlbCAgewogICAgb3BhY2l0eTogMC42NTsKICB9CgogIC8qIGludmFsaWQgc3RhdGUgKi8KICAjY2hlY2tib3guaW52YWxpZDpub3QoLmNoZWNrZWQpIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtZXJyb3ItY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CiAgfQo8L3N0eWxlPgoKPGRpdiBpZD0iY2hlY2tib3hDb250YWluZXIiPgogIDxkaXYgaWQ9ImNoZWNrYm94IiBjbGFzcyQ9IltbX2NvbXB1dGVDaGVja2JveENsYXNzKGNoZWNrZWQsIGludmFsaWQpXV0iPgogICAgPGRpdiBpZD0iY2hlY2ttYXJrIiBjbGFzcyQ9IltbX2NvbXB1dGVDaGVja21hcmtDbGFzcyhjaGVja2VkKV1dIj48L2Rpdj4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGlkPSJjaGVja2JveExhYmVsIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpsZXQgZGE7aGEuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIiksUnIoe190ZW1wbGF0ZTpoYSxpczoicGFwZXItY2hlY2tib3giLGJlaGF2aW9yczpbdWFdLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJjaGVja2JveCIsImFyaWEtY2hlY2tlZCI6ITEsdGFiaW5kZXg6MH0scHJvcGVydGllczp7YXJpYUFjdGl2ZUF0dHJpYnV0ZTp7dHlwZTpTdHJpbmcsdmFsdWU6ImFyaWEtY2hlY2tlZCJ9fSxhdHRhY2hlZDpmdW5jdGlvbigpe0xpKHRoaXMsKGZ1bmN0aW9uKCl7aWYoIi0xcHgiPT09dGhpcy5nZXRDb21wdXRlZFN0eWxlVmFsdWUoIi0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSIpLnRyaW0oKSl7dmFyIHQ9dGhpcy5nZXRDb21wdXRlZFN0eWxlVmFsdWUoIi0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1zaXplIikudHJpbSgpLGU9InB4IixuPXQubWF0Y2goL1tBLVphLXpdKyQvKTtudWxsIT09biYmKGU9blswXSk7dmFyIGk9cGFyc2VGbG9hdCh0KSxyPTgvMyppOyJweCI9PT1lJiYocj1NYXRoLmZsb29yKHIpKSUyIT1pJTImJnIrKyx0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tcGFwZXItY2hlY2tib3gtaW5rLXNpemUiOnIrZX0pfX0pKX0sX2NvbXB1dGVDaGVja2JveENsYXNzOmZ1bmN0aW9uKHQsZSl7dmFyIG49IiI7cmV0dXJuIHQmJihuKz0iY2hlY2tlZCAiKSxlJiYobis9ImludmFsaWQiKSxufSxfY29tcHV0ZUNoZWNrbWFya0NsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiB0PyIiOiJoaWRkZW4ifSxfY3JlYXRlUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JpcHBsZUNvbnRhaW5lcj10aGlzLiQuY2hlY2tib3hDb250YWluZXIsbGEuX2NyZWF0ZVJpcHBsZS5jYWxsKHRoaXMpfX0pO2NvbnN0IHBhPXtwcm9wZXJ0aWVzOntzaXppbmdUYXJnZXQ6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSxmaXRJbnRvOnt0eXBlOk9iamVjdCx2YWx1ZTp3aW5kb3d9LG5vT3ZlcmxhcDp7dHlwZTpCb29sZWFufSxwb3NpdGlvblRhcmdldDp7dHlwZTpFbGVtZW50fSxob3Jpem9udGFsQWxpZ246e3R5cGU6U3RyaW5nfSx2ZXJ0aWNhbEFsaWduOnt0eXBlOlN0cmluZ30sZHluYW1pY0FsaWduOnt0eXBlOkJvb2xlYW59LGhvcml6b250YWxPZmZzZXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwfSx2ZXJ0aWNhbE9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MCxub3RpZnk6ITB9LGF1dG9GaXRPbkF0dGFjaDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxleHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9maXRJbmZvOnt0eXBlOk9iamVjdH19LGdldCBfZml0V2lkdGgoKXtyZXR1cm4gdGhpcy5maXRJbnRvPT09d2luZG93P3RoaXMuZml0SW50by5pbm5lcldpZHRoOnRoaXMuZml0SW50by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH0sZ2V0IF9maXRIZWlnaHQoKXtyZXR1cm4gdGhpcy5maXRJbnRvPT09d2luZG93P3RoaXMuZml0SW50by5pbm5lckhlaWdodDp0aGlzLmZpdEludG8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fSxnZXQgX2ZpdExlZnQoKXtyZXR1cm4gdGhpcy5maXRJbnRvPT09d2luZG93PzA6dGhpcy5maXRJbnRvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnR9LGdldCBfZml0VG9wKCl7cmV0dXJuIHRoaXMuZml0SW50bz09PXdpbmRvdz8wOnRoaXMuZml0SW50by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3B9LGdldCBfZGVmYXVsdFBvc2l0aW9uVGFyZ2V0KCl7dmFyIHQ9WWkodGhpcykucGFyZW50Tm9kZTtyZXR1cm4gdCYmdC5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmKHQ9dC5ob3N0KSx0fSxnZXQgX2xvY2FsZUhvcml6b250YWxBbGlnbigpe2lmKHRoaXMuX2lzUlRMKXtpZigicmlnaHQiPT09dGhpcy5ob3Jpem9udGFsQWxpZ24pcmV0dXJuImxlZnQiO2lmKCJsZWZ0Ij09PXRoaXMuaG9yaXpvbnRhbEFsaWduKXJldHVybiJyaWdodCJ9cmV0dXJuIHRoaXMuaG9yaXpvbnRhbEFsaWdufSxnZXQgX19zaG91bGRQb3NpdGlvbigpe3JldHVybih0aGlzLmhvcml6b250YWxBbGlnbnx8dGhpcy52ZXJ0aWNhbEFsaWduKSYmdGhpcy5wb3NpdGlvblRhcmdldH0sZ2V0IF9pc1JUTCgpe3JldHVybiB2b2lkIDA9PT10aGlzLl9tZW1vaXplZElzUlRMJiYodGhpcy5fbWVtb2l6ZWRJc1JUTD0icnRsIj09d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuZGlyZWN0aW9uKSx0aGlzLl9tZW1vaXplZElzUlRMfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMucG9zaXRpb25UYXJnZXQ9dGhpcy5wb3NpdGlvblRhcmdldHx8dGhpcy5fZGVmYXVsdFBvc2l0aW9uVGFyZ2V0LHRoaXMuYXV0b0ZpdE9uQXR0YWNoJiYoIm5vbmUiPT09d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuZGlzcGxheT9zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5maXQoKX0uYmluZCh0aGlzKSk6KHdpbmRvdy5TaGFkeURPTSYmU2hhZHlET00uZmx1c2goKSx0aGlzLmZpdCgpKSl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fX2RlZmVycmVkRml0JiYoY2xlYXJUaW1lb3V0KHRoaXMuX19kZWZlcnJlZEZpdCksdGhpcy5fX2RlZmVycmVkRml0PW51bGwpfSxmaXQ6ZnVuY3Rpb24oKXt0aGlzLnBvc2l0aW9uKCksdGhpcy5jb25zdHJhaW4oKSx0aGlzLmNlbnRlcigpfSxfZGlzY292ZXJJbmZvOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX2ZpdEluZm8pe3ZhciB0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5zaXppbmdUYXJnZXQpO3RoaXMuX2ZpdEluZm89e2lubGluZVN0eWxlOnt0b3A6dGhpcy5zdHlsZS50b3B8fCIiLGxlZnQ6dGhpcy5zdHlsZS5sZWZ0fHwiIixwb3NpdGlvbjp0aGlzLnN0eWxlLnBvc2l0aW9ufHwiIn0sc2l6ZXJJbmxpbmVTdHlsZTp7bWF4V2lkdGg6dGhpcy5zaXppbmdUYXJnZXQuc3R5bGUubWF4V2lkdGh8fCIiLG1heEhlaWdodDp0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5tYXhIZWlnaHR8fCIiLGJveFNpemluZzp0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5ib3hTaXppbmd8fCIifSxwb3NpdGlvbmVkQnk6e3ZlcnRpY2FsbHk6ImF1dG8iIT09dC50b3A/InRvcCI6ImF1dG8iIT09dC5ib3R0b20/ImJvdHRvbSI6bnVsbCxob3Jpem9udGFsbHk6ImF1dG8iIT09dC5sZWZ0PyJsZWZ0IjoiYXV0byIhPT10LnJpZ2h0PyJyaWdodCI6bnVsbH0sc2l6ZWRCeTp7aGVpZ2h0OiJub25lIiE9PWUubWF4SGVpZ2h0LHdpZHRoOiJub25lIiE9PWUubWF4V2lkdGgsbWluV2lkdGg6cGFyc2VJbnQoZS5taW5XaWR0aCwxMCl8fDAsbWluSGVpZ2h0OnBhcnNlSW50KGUubWluSGVpZ2h0LDEwKXx8MH0sbWFyZ2luOnt0b3A6cGFyc2VJbnQodC5tYXJnaW5Ub3AsMTApfHwwLHJpZ2h0OnBhcnNlSW50KHQubWFyZ2luUmlnaHQsMTApfHwwLGJvdHRvbTpwYXJzZUludCh0Lm1hcmdpbkJvdHRvbSwxMCl8fDAsbGVmdDpwYXJzZUludCh0Lm1hcmdpbkxlZnQsMTApfHwwfX19fSxyZXNldEZpdDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZpdEluZm98fHt9O2Zvcih2YXIgZSBpbiB0LnNpemVySW5saW5lU3R5bGUpdGhpcy5zaXppbmdUYXJnZXQuc3R5bGVbZV09dC5zaXplcklubGluZVN0eWxlW2VdO2Zvcih2YXIgZSBpbiB0LmlubGluZVN0eWxlKXRoaXMuc3R5bGVbZV09dC5pbmxpbmVTdHlsZVtlXTt0aGlzLl9maXRJbmZvPW51bGx9LHJlZml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zaXppbmdUYXJnZXQuc2Nyb2xsTGVmdCxlPXRoaXMuc2l6aW5nVGFyZ2V0LnNjcm9sbFRvcDt0aGlzLnJlc2V0Rml0KCksdGhpcy5maXQoKSx0aGlzLnNpemluZ1RhcmdldC5zY3JvbGxMZWZ0PXQsdGhpcy5zaXppbmdUYXJnZXQuc2Nyb2xsVG9wPWV9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX19zaG91bGRQb3NpdGlvbilyZXR1cm47dGhpcy5fZGlzY292ZXJJbmZvKCksd2luZG93LlNoYWR5RE9NJiZ3aW5kb3cuU2hhZHlET00uZmx1c2goKSx0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zaXppbmdUYXJnZXQuc3R5bGUuYm94U2l6aW5nPSJib3JkZXItYm94Iix0aGlzLnN0eWxlLmxlZnQ9IjBweCIsdGhpcy5zdHlsZS50b3A9IjBweCI7dmFyIHQ9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlPXRoaXMuX19nZXROb3JtYWxpemVkUmVjdCh0aGlzLnBvc2l0aW9uVGFyZ2V0KSxuPXRoaXMuX19nZXROb3JtYWxpemVkUmVjdCh0aGlzLmZpdEludG8pO2xldCBpLHIsbyxhO3RoaXMuZXhwYW5kU2l6aW5nVGFyZ2V0Rm9yU2Nyb2xsYmFycyYmKGk9dGhpcy5zaXppbmdUYXJnZXQub2Zmc2V0V2lkdGgscj10aGlzLnNpemluZ1RhcmdldC5vZmZzZXRIZWlnaHQsbz10aGlzLnNpemluZ1RhcmdldC5jbGllbnRXaWR0aCxhPXRoaXMuc2l6aW5nVGFyZ2V0LmNsaWVudEhlaWdodCk7dmFyIHM9dGhpcy5fZml0SW5mby5tYXJnaW4sbD10aGlzLl9fZ2V0UG9zaXRpb24odGhpcy5fbG9jYWxlSG9yaXpvbnRhbEFsaWduLHRoaXMudmVydGljYWxBbGlnbix7d2lkdGg6dC53aWR0aCtzLmxlZnQrcy5yaWdodCxoZWlnaHQ6dC5oZWlnaHQrcy50b3Arcy5ib3R0b219LHQsZSxuKSxjPWwubGVmdCtzLmxlZnQsdT1sLnRvcCtzLnRvcCxoPU1hdGgubWluKG4ucmlnaHQtcy5yaWdodCxjK3Qud2lkdGgpLGQ9TWF0aC5taW4obi5ib3R0b20tcy5ib3R0b20sdSt0LmhlaWdodCk7Yz1NYXRoLm1heChuLmxlZnQrcy5sZWZ0LE1hdGgubWluKGMsaC10aGlzLl9maXRJbmZvLnNpemVkQnkubWluV2lkdGgpKSx1PU1hdGgubWF4KG4udG9wK3MudG9wLE1hdGgubWluKHUsZC10aGlzLl9maXRJbmZvLnNpemVkQnkubWluSGVpZ2h0KSk7Y29uc3QgcD1NYXRoLm1heChoLWMsdGhpcy5fZml0SW5mby5zaXplZEJ5Lm1pbldpZHRoKSxmPU1hdGgubWF4KGQtdSx0aGlzLl9maXRJbmZvLnNpemVkQnkubWluSGVpZ2h0KTt0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5tYXhXaWR0aD1wKyJweCIsdGhpcy5zaXppbmdUYXJnZXQuc3R5bGUubWF4SGVpZ2h0PWYrInB4Ijtjb25zdCBtPWMtdC5sZWZ0LGc9dS10LnRvcDtpZih0aGlzLnN0eWxlLmxlZnQ9YCR7bX1weGAsdGhpcy5zdHlsZS50b3A9YCR7Z31weGAsdGhpcy5leHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzKXtjb25zdCB0PXRoaXMuc2l6aW5nVGFyZ2V0Lm9mZnNldEhlaWdodCxlPXQtdGhpcy5zaXppbmdUYXJnZXQuY2xpZW50SGVpZ2h0LShyLWEpO2lmKGU+MCl7Y29uc3QgaT1NYXRoLm1pbihuLmhlaWdodC1zLnRvcC1zLmJvdHRvbSxmK2UpO3RoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlLm1heEhlaWdodD1gJHtpfXB4YDtjb25zdCByPXRoaXMuc2l6aW5nVGFyZ2V0Lm9mZnNldEhlaWdodCxvPXItdDtsZXQgYTsidG9wIj09PWwudmVydGljYWxBbGlnbj9hPWc6Im1pZGRsZSI9PT1sLnZlcnRpY2FsQWxpZ24/YT1nLW8vMjoiYm90dG9tIj09PWwudmVydGljYWxBbGlnbiYmKGE9Zy1vKSxhPU1hdGgubWF4KG4udG9wK3MudG9wLE1hdGgubWluKGEsbi5ib3R0b20tcy5ib3R0b20tcikpLHRoaXMuc3R5bGUudG9wPWAke2F9cHhgfWNvbnN0IGM9dGhpcy5zaXppbmdUYXJnZXQub2Zmc2V0V2lkdGgsdT1jLXRoaXMuc2l6aW5nVGFyZ2V0LmNsaWVudFdpZHRoLShpLW8pO2lmKHU+MCl7Y29uc3QgdD0oKCk9PntpZih2b2lkIDAhPT1kYSlyZXR1cm4gZGE7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtPYmplY3QuYXNzaWduKHQuc3R5bGUse292ZXJmbG93OiJhdXRvIixwb3NpdGlvbjoiZml4ZWQiLGxlZnQ6IjBweCIsdG9wOiIwcHgiLG1heFdpZHRoOiIxMDBweCIsbWF4SGVpZ2h0OiIxMDBweCJ9KTtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLnN0eWxlLndpZHRoPSIyMDBweCIsZS5zdHlsZS5oZWlnaHQ9IjIwMHB4Iix0LmFwcGVuZENoaWxkKGUpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksZGE9TWF0aC5hYnModC5vZmZzZXRXaWR0aC0xMDApPjE/dC5vZmZzZXRXaWR0aC10LmNsaWVudFdpZHRoOjAsZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KSxkYX0pKCksZT1NYXRoLm1pbihuLndpZHRoLXMubGVmdC1zLnJpZ2h0LHArdS10KTt0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5tYXhXaWR0aD1gJHtlfXB4YDtjb25zdCBpPXRoaXMuc2l6aW5nVGFyZ2V0Lm9mZnNldFdpZHRoK3Qscj1pLWM7bGV0IG87ImxlZnQiPT09bC5ob3Jpem9udGFsQWxpZ24/bz1tOiJjZW50ZXIiPT09bC5ob3Jpem9udGFsQWxpZ24/bz1tLXIvMjoicmlnaHQiPT09bC5ob3Jpem9udGFsQWxpZ24mJihvPW0tciksbz1NYXRoLm1heChuLmxlZnQrcy5sZWZ0LE1hdGgubWluKG8sbi5yaWdodC1zLnJpZ2h0LWkpKSx0aGlzLnN0eWxlLmxlZnQ9YCR7b31weGB9fX0sY29uc3RyYWluOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX19zaG91bGRQb3NpdGlvbil7dGhpcy5fZGlzY292ZXJJbmZvKCk7dmFyIHQ9dGhpcy5fZml0SW5mbzt0LnBvc2l0aW9uZWRCeS52ZXJ0aWNhbGx5fHwodGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUudG9wPSIwcHgiKSx0LnBvc2l0aW9uZWRCeS5ob3Jpem9udGFsbHl8fCh0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdHlsZS5sZWZ0PSIwcHgiKSx0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5ib3hTaXppbmc9ImJvcmRlci1ib3giO3ZhciBlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dC5zaXplZEJ5LmhlaWdodHx8dGhpcy5fX3NpemVEaW1lbnNpb24oZSx0LnBvc2l0aW9uZWRCeS52ZXJ0aWNhbGx5LCJ0b3AiLCJib3R0b20iLCJIZWlnaHQiKSx0LnNpemVkQnkud2lkdGh8fHRoaXMuX19zaXplRGltZW5zaW9uKGUsdC5wb3NpdGlvbmVkQnkuaG9yaXpvbnRhbGx5LCJsZWZ0IiwicmlnaHQiLCJXaWR0aCIpfX0sX3NpemVEaW1lbnNpb246ZnVuY3Rpb24odCxlLG4saSxyKXt0aGlzLl9fc2l6ZURpbWVuc2lvbih0LGUsbixpLHIpfSxfX3NpemVEaW1lbnNpb246ZnVuY3Rpb24odCxlLG4saSxyKXt2YXIgbz10aGlzLl9maXRJbmZvLGE9dGhpcy5fX2dldE5vcm1hbGl6ZWRSZWN0KHRoaXMuZml0SW50bykscz0iV2lkdGgiPT09cj9hLndpZHRoOmEuaGVpZ2h0LGw9ZT09PWksYz0ib2Zmc2V0IityO3RoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlWyJtYXgiK3JdPXMtby5tYXJnaW5bbD9uOmldLShsP3MtdFtpXTp0W25dKS0odGhpc1tjXS10aGlzLnNpemluZ1RhcmdldFtjXSkrInB4In0sY2VudGVyOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX19zaG91bGRQb3NpdGlvbil7dGhpcy5fZGlzY292ZXJJbmZvKCk7dmFyIHQ9dGhpcy5fZml0SW5mby5wb3NpdGlvbmVkQnk7aWYoIXQudmVydGljYWxseXx8IXQuaG9yaXpvbnRhbGx5KXt0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdC52ZXJ0aWNhbGx5fHwodGhpcy5zdHlsZS50b3A9IjBweCIpLHQuaG9yaXpvbnRhbGx5fHwodGhpcy5zdHlsZS5sZWZ0PSIwcHgiKTt2YXIgZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49dGhpcy5fX2dldE5vcm1hbGl6ZWRSZWN0KHRoaXMuZml0SW50byk7dC52ZXJ0aWNhbGx5fHwodGhpcy5zdHlsZS50b3A9bi50b3AtZS50b3ArKG4uaGVpZ2h0LWUuaGVpZ2h0KS8yKyJweCIpLHQuaG9yaXpvbnRhbGx5fHwodGhpcy5zdHlsZS5sZWZ0PW4ubGVmdC1lLmxlZnQrKG4ud2lkdGgtZS53aWR0aCkvMisicHgiKX19fSxfX2dldE5vcm1hbGl6ZWRSZWN0OmZ1bmN0aW9uKHQpe3JldHVybiB0PT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHx0PT09d2luZG93P3t0b3A6MCxsZWZ0OjAsd2lkdGg6d2luZG93LmlubmVyV2lkdGgsaGVpZ2h0OndpbmRvdy5pbm5lckhlaWdodCxyaWdodDp3aW5kb3cuaW5uZXJXaWR0aCxib3R0b206d2luZG93LmlubmVySGVpZ2h0fTp0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfSxfX2dldE9mZnNjcmVlbkFyZWE6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPU1hdGgubWluKDAsdC50b3ApK01hdGgubWluKDAsbi5ib3R0b20tKHQudG9wK2UuaGVpZ2h0KSkscj1NYXRoLm1pbigwLHQubGVmdCkrTWF0aC5taW4oMCxuLnJpZ2h0LSh0LmxlZnQrZS53aWR0aCkpO3JldHVybiBNYXRoLmFicyhpKSplLndpZHRoK01hdGguYWJzKHIpKmUuaGVpZ2h0fSxfX2dldFBvc2l0aW9uOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt2YXIgYSxzPVt7dmVydGljYWxBbGlnbjoidG9wIixob3Jpem9udGFsQWxpZ246ImxlZnQiLHRvcDpyLnRvcCt0aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6ci5sZWZ0K3RoaXMuaG9yaXpvbnRhbE9mZnNldH0se3ZlcnRpY2FsQWxpZ246InRvcCIsaG9yaXpvbnRhbEFsaWduOiJyaWdodCIsdG9wOnIudG9wK3RoaXMudmVydGljYWxPZmZzZXQsbGVmdDpyLnJpZ2h0LW4ud2lkdGgtdGhpcy5ob3Jpem9udGFsT2Zmc2V0fSx7dmVydGljYWxBbGlnbjoiYm90dG9tIixob3Jpem9udGFsQWxpZ246ImxlZnQiLHRvcDpyLmJvdHRvbS1uLmhlaWdodC10aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6ci5sZWZ0K3RoaXMuaG9yaXpvbnRhbE9mZnNldH0se3ZlcnRpY2FsQWxpZ246ImJvdHRvbSIsaG9yaXpvbnRhbEFsaWduOiJyaWdodCIsdG9wOnIuYm90dG9tLW4uaGVpZ2h0LXRoaXMudmVydGljYWxPZmZzZXQsbGVmdDpyLnJpZ2h0LW4ud2lkdGgtdGhpcy5ob3Jpem9udGFsT2Zmc2V0fV07aWYodGhpcy5ub092ZXJsYXApe2Zvcih2YXIgbD0wLGM9cy5sZW5ndGg7bDxjO2wrKyl7dmFyIHU9e307Zm9yKHZhciBoIGluIHNbbF0pdVtoXT1zW2xdW2hdO3MucHVzaCh1KX1zWzBdLnRvcD1zWzFdLnRvcCs9ci5oZWlnaHQsc1syXS50b3A9c1szXS50b3AtPXIuaGVpZ2h0LHNbNF0ubGVmdD1zWzZdLmxlZnQrPXIud2lkdGgsc1s1XS5sZWZ0PXNbN10ubGVmdC09ci53aWR0aH1mb3IoZT0iYXV0byI9PT1lP251bGw6ZSwodD0iYXV0byI9PT10P251bGw6dCkmJiJjZW50ZXIiIT09dHx8KHMucHVzaCh7dmVydGljYWxBbGlnbjoidG9wIixob3Jpem9udGFsQWxpZ246ImNlbnRlciIsdG9wOnIudG9wK3RoaXMudmVydGljYWxPZmZzZXQrKHRoaXMubm9PdmVybGFwP3IuaGVpZ2h0OjApLGxlZnQ6ci5sZWZ0LWkud2lkdGgvMityLndpZHRoLzIrdGhpcy5ob3Jpem9udGFsT2Zmc2V0fSkscy5wdXNoKHt2ZXJ0aWNhbEFsaWduOiJib3R0b20iLGhvcml6b250YWxBbGlnbjoiY2VudGVyIix0b3A6ci5ib3R0b20tbi5oZWlnaHQtdGhpcy52ZXJ0aWNhbE9mZnNldC0odGhpcy5ub092ZXJsYXA/ci5oZWlnaHQ6MCksbGVmdDpyLmxlZnQtaS53aWR0aC8yK3Iud2lkdGgvMit0aGlzLmhvcml6b250YWxPZmZzZXR9KSksZSYmIm1pZGRsZSIhPT1lfHwocy5wdXNoKHt2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGhvcml6b250YWxBbGlnbjoibGVmdCIsdG9wOnIudG9wLWkuaGVpZ2h0LzIrci5oZWlnaHQvMit0aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6ci5sZWZ0K3RoaXMuaG9yaXpvbnRhbE9mZnNldCsodGhpcy5ub092ZXJsYXA/ci53aWR0aDowKX0pLHMucHVzaCh7dmVydGljYWxBbGlnbjoibWlkZGxlIixob3Jpem9udGFsQWxpZ246InJpZ2h0Iix0b3A6ci50b3AtaS5oZWlnaHQvMityLmhlaWdodC8yK3RoaXMudmVydGljYWxPZmZzZXQsbGVmdDpyLnJpZ2h0LW4ud2lkdGgtdGhpcy5ob3Jpem9udGFsT2Zmc2V0LSh0aGlzLm5vT3ZlcmxhcD9yLndpZHRoOjApfSkpLCJtaWRkbGUiPT09ZSYmImNlbnRlciI9PT10JiZzLnB1c2goe3ZlcnRpY2FsQWxpZ246Im1pZGRsZSIsaG9yaXpvbnRhbEFsaWduOiJjZW50ZXIiLHRvcDpyLnRvcC1pLmhlaWdodC8yK3IuaGVpZ2h0LzIrdGhpcy52ZXJ0aWNhbE9mZnNldCxsZWZ0OnIubGVmdC1pLndpZHRoLzIrci53aWR0aC8yK3RoaXMuaG9yaXpvbnRhbE9mZnNldH0pLGw9MDtsPHMubGVuZ3RoO2wrKyl7dmFyIGQ9c1tsXSxwPWQudmVydGljYWxBbGlnbj09PWUsZj1kLmhvcml6b250YWxBbGlnbj09PXQ7aWYoIXRoaXMuZHluYW1pY0FsaWduJiYhdGhpcy5ub092ZXJsYXAmJnAmJmYpe2E9ZDticmVha312YXIgbT0oIWV8fHApJiYoIXR8fGYpO2lmKHRoaXMuZHluYW1pY0FsaWdufHxtKXtpZihkLm9mZnNjcmVlbkFyZWE9dGhpcy5fX2dldE9mZnNjcmVlbkFyZWEoZCxuLG8pLDA9PT1kLm9mZnNjcmVlbkFyZWEmJm0pe2E9ZDticmVha312YXIgZz1kLm9mZnNjcmVlbkFyZWEtKGE9YXx8ZCkub2Zmc2NyZWVuQXJlYTsoZzwwfHwwPT09ZyYmKHB8fGYpKSYmKGE9ZCl9fXJldHVybiBhfX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwp2YXIgZmE9RWxlbWVudC5wcm90b3R5cGUsbWE9ZmEubWF0Y2hlc3x8ZmEubWF0Y2hlc1NlbGVjdG9yfHxmYS5tb3pNYXRjaGVzU2VsZWN0b3J8fGZhLm1zTWF0Y2hlc1NlbGVjdG9yfHxmYS5vTWF0Y2hlc1NlbGVjdG9yfHxmYS53ZWJraXRNYXRjaGVzU2VsZWN0b3I7Y29uc3QgZ2E9bmV3IGNsYXNze2dldFRhYmJhYmxlTm9kZXModCl7dmFyIGU9W107cmV0dXJuIHRoaXMuX2NvbGxlY3RUYWJiYWJsZU5vZGVzKHQsZSk/dGhpcy5fc29ydEJ5VGFiSW5kZXgoZSk6ZX1pc0ZvY3VzYWJsZSh0KXtyZXR1cm4gbWEuY2FsbCh0LCJpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgYnV0dG9uLCBvYmplY3QiKT9tYS5jYWxsKHQsIjpub3QoW2Rpc2FibGVkXSkiKTptYS5jYWxsKHQsImFbaHJlZl0sIGFyZWFbaHJlZl0sIGlmcmFtZSwgW3RhYmluZGV4XSwgW2NvbnRlbnRFZGl0YWJsZV0iKX1pc1RhYmJhYmxlKHQpe3JldHVybiB0aGlzLmlzRm9jdXNhYmxlKHQpJiZtYS5jYWxsKHQsJzpub3QoW3RhYmluZGV4PSItMSJdKScpJiZ0aGlzLl9pc1Zpc2libGUodCl9X25vcm1hbGl6ZWRUYWJJbmRleCh0KXtpZih0aGlzLmlzRm9jdXNhYmxlKHQpKXt2YXIgZT10LmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKXx8MDtyZXR1cm4gTnVtYmVyKGUpfXJldHVybi0xfV9jb2xsZWN0VGFiYmFibGVOb2Rlcyh0LGUpe2lmKHQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4hMTt2YXIgbj10O2lmKCF0aGlzLl9pc1Zpc2libGUobikpcmV0dXJuITE7dmFyIGkscj10aGlzLl9ub3JtYWxpemVkVGFiSW5kZXgobiksbz1yPjA7cj49MCYmZS5wdXNoKG4pLGk9ImNvbnRlbnQiPT09bi5sb2NhbE5hbWV8fCJzbG90Ij09PW4ubG9jYWxOYW1lP1lpKG4pLmdldERpc3RyaWJ1dGVkTm9kZXMoKTpZaShuLnJvb3R8fG4pLmNoaWxkcmVuO2Zvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKW89dGhpcy5fY29sbGVjdFRhYmJhYmxlTm9kZXMoaVthXSxlKXx8bztyZXR1cm4gb31faXNWaXNpYmxlKHQpe3ZhciBlPXQuc3R5bGU7cmV0dXJuImhpZGRlbiIhPT1lLnZpc2liaWxpdHkmJiJub25lIiE9PWUuZGlzcGxheSYmImhpZGRlbiIhPT0oZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KSkudmlzaWJpbGl0eSYmIm5vbmUiIT09ZS5kaXNwbGF5fV9zb3J0QnlUYWJJbmRleCh0KXt2YXIgZT10Lmxlbmd0aDtpZihlPDIpcmV0dXJuIHQ7dmFyIG49TWF0aC5jZWlsKGUvMiksaT10aGlzLl9zb3J0QnlUYWJJbmRleCh0LnNsaWNlKDAsbikpLHI9dGhpcy5fc29ydEJ5VGFiSW5kZXgodC5zbGljZShuKSk7cmV0dXJuIHRoaXMuX21lcmdlU29ydEJ5VGFiSW5kZXgoaSxyKX1fbWVyZ2VTb3J0QnlUYWJJbmRleCh0LGUpe2Zvcih2YXIgbj1bXTt0Lmxlbmd0aD4wJiZlLmxlbmd0aD4wOyl0aGlzLl9oYXNMb3dlclRhYk9yZGVyKHRbMF0sZVswXSk/bi5wdXNoKGUuc2hpZnQoKSk6bi5wdXNoKHQuc2hpZnQoKSk7cmV0dXJuIG4uY29uY2F0KHQsZSl9X2hhc0xvd2VyVGFiT3JkZXIodCxlKXt2YXIgbj1NYXRoLm1heCh0LnRhYkluZGV4LDApLGk9TWF0aC5tYXgoZS50YWJJbmRleCwwKTtyZXR1cm4gMD09PW58fDA9PT1pP2k+bjpuPml9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taXJvbi1vdmVybGF5LWJhY2tkcm9wLWJhY2tncm91bmQtY29sb3IsICMwMDApOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIEBhcHBseSAtLWlyb24tb3ZlcmxheS1iYWNrZHJvcDsKICAgICAgfQoKICAgICAgOmhvc3QoLm9wZW5lZCkgewogICAgICAgIG9wYWNpdHk6IHZhcigtLWlyb24tb3ZlcmxheS1iYWNrZHJvcC1vcGFjaXR5LCAwLjYpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIEBhcHBseSAtLWlyb24tb3ZlcmxheS1iYWNrZHJvcC1vcGVuZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJpcm9uLW92ZXJsYXktYmFja2Ryb3AiLHByb3BlcnRpZXM6e29wZW5lZDp7cmVmbGVjdFRvQXR0cmlidXRlOiEwLHR5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX29wZW5lZENoYW5nZWQifX0sbGlzdGVuZXJzOnt0cmFuc2l0aW9uZW5kOiJfb25UcmFuc2l0aW9uZW5kIn0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX19vcGVuZWRSYWY9bnVsbH0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmdGhpcy5fb3BlbmVkQ2hhbmdlZCh0aGlzLm9wZW5lZCl9LHByZXBhcmU6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmIXRoaXMucGFyZW50Tm9kZSYmWWkoZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQodGhpcyl9LG9wZW46ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZD0hMH0sY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZD0hMX0sY29tcGxldGU6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZHx8dGhpcy5wYXJlbnROb2RlIT09ZG9jdW1lbnQuYm9keXx8WWkodGhpcy5wYXJlbnROb2RlKS5yZW1vdmVDaGlsZCh0aGlzKX0sX29uVHJhbnNpdGlvbmVuZDpmdW5jdGlvbih0KXt0JiZ0LnRhcmdldD09PXRoaXMmJnRoaXMuY29tcGxldGUoKX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24odCl7aWYodCl0aGlzLnByZXBhcmUoKTtlbHNle3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpOyIwcyIhPT1lLnRyYW5zaXRpb25EdXJhdGlvbiYmMCE9ZS5vcGFjaXR5fHx0aGlzLmNvbXBsZXRlKCl9dGhpcy5pc0F0dGFjaGVkJiYodGhpcy5fX29wZW5lZFJhZiYmKHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9fb3BlbmVkUmFmKSx0aGlzLl9fb3BlbmVkUmFmPW51bGwpLHRoaXMuc2Nyb2xsVG9wPXRoaXMuc2Nyb2xsVG9wLHRoaXMuX19vcGVuZWRSYWY9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3RoaXMuX19vcGVuZWRSYWY9bnVsbCx0aGlzLnRvZ2dsZUNsYXNzKCJvcGVuZWQiLHRoaXMub3BlbmVkKX0uYmluZCh0aGlzKSkpfX0pO2NvbnN0IF9hPW5ldwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9vdmVybGF5cz1bXSx0aGlzLl9taW5pbXVtWj0xMDEsdGhpcy5fYmFja2Ryb3BFbGVtZW50PW51bGwsaWkoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCJ0YXAiLChmdW5jdGlvbigpe30pKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0YXAiLHRoaXMuX29uQ2FwdHVyZUNsaWNrLmJpbmQodGhpcyksITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9vbkNhcHR1cmVGb2N1cy5iaW5kKHRoaXMpLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9vbkNhcHR1cmVLZXlEb3duLmJpbmQodGhpcyksITApfWdldCBiYWNrZHJvcEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fYmFja2Ryb3BFbGVtZW50fHwodGhpcy5fYmFja2Ryb3BFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlyb24tb3ZlcmxheS1iYWNrZHJvcCIpKSx0aGlzLl9iYWNrZHJvcEVsZW1lbnR9Z2V0IGRlZXBBY3RpdmVFbGVtZW50KCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtmb3IodCYmdCBpbnN0YW5jZW9mIEVsZW1lbnQhPTB8fCh0PWRvY3VtZW50LmJvZHkpO3Qucm9vdCYmWWkodC5yb290KS5hY3RpdmVFbGVtZW50Oyl0PVlpKHQucm9vdCkuYWN0aXZlRWxlbWVudDtyZXR1cm4gdH1fYnJpbmdPdmVybGF5QXRJbmRleFRvRnJvbnQodCl7dmFyIGU9dGhpcy5fb3ZlcmxheXNbdF07aWYoZSl7dmFyIG49dGhpcy5fb3ZlcmxheXMubGVuZ3RoLTEsaT10aGlzLl9vdmVybGF5c1tuXTtpZihpJiZ0aGlzLl9zaG91bGRCZUJlaGluZE92ZXJsYXkoZSxpKSYmbi0tLCEodD49bikpe3ZhciByPU1hdGgubWF4KHRoaXMuY3VycmVudE92ZXJsYXlaKCksdGhpcy5fbWluaW11bVopO2Zvcih0aGlzLl9nZXRaKGUpPD1yJiZ0aGlzLl9hcHBseU92ZXJsYXlaKGUscik7dDxuOyl0aGlzLl9vdmVybGF5c1t0XT10aGlzLl9vdmVybGF5c1t0KzFdLHQrKzt0aGlzLl9vdmVybGF5c1tuXT1lfX19YWRkT3JSZW1vdmVPdmVybGF5KHQpe3Qub3BlbmVkP3RoaXMuYWRkT3ZlcmxheSh0KTp0aGlzLnJlbW92ZU92ZXJsYXkodCl9YWRkT3ZlcmxheSh0KXt2YXIgZT10aGlzLl9vdmVybGF5cy5pbmRleE9mKHQpO2lmKGU+PTApcmV0dXJuIHRoaXMuX2JyaW5nT3ZlcmxheUF0SW5kZXhUb0Zyb250KGUpLHZvaWQgdGhpcy50cmFja0JhY2tkcm9wKCk7dmFyIG49dGhpcy5fb3ZlcmxheXMubGVuZ3RoLGk9dGhpcy5fb3ZlcmxheXNbbi0xXSxyPU1hdGgubWF4KHRoaXMuX2dldFooaSksdGhpcy5fbWluaW11bVopLG89dGhpcy5fZ2V0Wih0KTtpJiZ0aGlzLl9zaG91bGRCZUJlaGluZE92ZXJsYXkodCxpKSYmKHRoaXMuX2FwcGx5T3ZlcmxheVooaSxyKSxuLS0scj1NYXRoLm1heCh0aGlzLl9nZXRaKHRoaXMuX292ZXJsYXlzW24tMV0pLHRoaXMuX21pbmltdW1aKSksbzw9ciYmdGhpcy5fYXBwbHlPdmVybGF5Wih0LHIpLHRoaXMuX292ZXJsYXlzLnNwbGljZShuLDAsdCksdGhpcy50cmFja0JhY2tkcm9wKCl9cmVtb3ZlT3ZlcmxheSh0KXt2YXIgZT10aGlzLl9vdmVybGF5cy5pbmRleE9mKHQpOy0xIT09ZSYmKHRoaXMuX292ZXJsYXlzLnNwbGljZShlLDEpLHRoaXMudHJhY2tCYWNrZHJvcCgpKX1jdXJyZW50T3ZlcmxheSgpe3JldHVybiB0aGlzLl9vdmVybGF5c1t0aGlzLl9vdmVybGF5cy5sZW5ndGgtMV19Y3VycmVudE92ZXJsYXlaKCl7cmV0dXJuIHRoaXMuX2dldFoodGhpcy5jdXJyZW50T3ZlcmxheSgpKX1lbnN1cmVNaW5pbXVtWih0KXt0aGlzLl9taW5pbXVtWj1NYXRoLm1heCh0aGlzLl9taW5pbXVtWix0KX1mb2N1c092ZXJsYXkoKXt2YXIgdD10aGlzLmN1cnJlbnRPdmVybGF5KCk7dCYmdC5fYXBwbHlGb2N1cygpfXRyYWNrQmFja2Ryb3AoKXt2YXIgdD10aGlzLl9vdmVybGF5V2l0aEJhY2tkcm9wKCk7KHR8fHRoaXMuX2JhY2tkcm9wRWxlbWVudCkmJih0aGlzLmJhY2tkcm9wRWxlbWVudC5zdHlsZS56SW5kZXg9dGhpcy5fZ2V0Wih0KS0xLHRoaXMuYmFja2Ryb3BFbGVtZW50Lm9wZW5lZD0hIXQsdGhpcy5iYWNrZHJvcEVsZW1lbnQucHJlcGFyZSgpKX1nZXRCYWNrZHJvcHMoKXtmb3IodmFyIHQ9W10sZT0wO2U8dGhpcy5fb3ZlcmxheXMubGVuZ3RoO2UrKyl0aGlzLl9vdmVybGF5c1tlXS53aXRoQmFja2Ryb3AmJnQucHVzaCh0aGlzLl9vdmVybGF5c1tlXSk7cmV0dXJuIHR9YmFja2Ryb3BaKCl7cmV0dXJuIHRoaXMuX2dldFoodGhpcy5fb3ZlcmxheVdpdGhCYWNrZHJvcCgpKS0xfV9vdmVybGF5V2l0aEJhY2tkcm9wKCl7Zm9yKHZhciB0PXRoaXMuX292ZXJsYXlzLmxlbmd0aC0xO3Q+PTA7dC0tKWlmKHRoaXMuX292ZXJsYXlzW3RdLndpdGhCYWNrZHJvcClyZXR1cm4gdGhpcy5fb3ZlcmxheXNbdF19X2dldFoodCl7dmFyIGU9dGhpcy5fbWluaW11bVo7aWYodCl7dmFyIG49TnVtYmVyKHQuc3R5bGUuekluZGV4fHx3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS56SW5kZXgpO249PW4mJihlPW4pfXJldHVybiBlfV9zZXRaKHQsZSl7dC5zdHlsZS56SW5kZXg9ZX1fYXBwbHlPdmVybGF5Wih0LGUpe3RoaXMuX3NldFoodCxlKzIpfV9vdmVybGF5SW5QYXRoKHQpe3Q9dHx8W107Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXS5fbWFuYWdlcj09PXRoaXMpcmV0dXJuIHRbZV19X29uQ2FwdHVyZUNsaWNrKHQpe3ZhciBlPXRoaXMuX292ZXJsYXlzLmxlbmd0aC0xO2lmKC0xIT09ZSlmb3IodmFyIG4saT1ZaSh0KS5wYXRoOyhuPXRoaXMuX292ZXJsYXlzW2VdKSYmdGhpcy5fb3ZlcmxheUluUGF0aChpKSE9PW4mJihuLl9vbkNhcHR1cmVDbGljayh0KSxuLmFsbG93Q2xpY2tUaHJvdWdoKTspZS0tfV9vbkNhcHR1cmVGb2N1cyh0KXt2YXIgZT10aGlzLmN1cnJlbnRPdmVybGF5KCk7ZSYmZS5fb25DYXB0dXJlRm9jdXModCl9X29uQ2FwdHVyZUtleURvd24odCl7dmFyIGU9dGhpcy5jdXJyZW50T3ZlcmxheSgpO2UmJih6by5rZXlib2FyZEV2ZW50TWF0Y2hlc0tleXModCwiZXNjIik/ZS5fb25DYXB0dXJlRXNjKHQpOnpvLmtleWJvYXJkRXZlbnRNYXRjaGVzS2V5cyh0LCJ0YWIiKSYmZS5fb25DYXB0dXJlVGFiKHQpKX1fc2hvdWxkQmVCZWhpbmRPdmVybGF5KHQsZSl7cmV0dXJuIXQuYWx3YXlzT25Ub3AmJmUuYWx3YXlzT25Ub3B9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovdmFyIHlhLHZhLGJhPXtwYWdlWDowLHBhZ2VZOjB9LHhhPW51bGwsd2E9W10sU2E9WyJ3aGVlbCIsIm1vdXNld2hlZWwiLCJET01Nb3VzZVNjcm9sbCIsInRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiXTtmdW5jdGlvbiBNYSh0KXtFYS5pbmRleE9mKHQpPj0wfHwoMD09PUVhLmxlbmd0aCYmKGZ1bmN0aW9uIGUoKXt5YT15YXx8VGEuYmluZCh2b2lkIDApO2Zvcih2YXIgdD0wLGU9U2EubGVuZ3RoO3Q8ZTt0KyspZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihTYVt0XSx5YSx7Y2FwdHVyZTohMCxwYXNzaXZlOiExfSl9KSgpLEVhLnB1c2godCksdmE9RWFbRWEubGVuZ3RoLTFdKX1jb25zdCBFYT1bXTtmdW5jdGlvbiBUYSh0KXtpZih0LmNhbmNlbGFibGUmJihmdW5jdGlvbiBlKHQpe3ZhciBlPVlpKHQpLnJvb3RUYXJnZXQ7aWYoInRvdWNobW92ZSIhPT10LnR5cGUmJnhhIT09ZSYmKHhhPWUsd2E9KGZ1bmN0aW9uIG4odCl7Zm9yKHZhciBlPVtdLG49dC5pbmRleE9mKHZhKSxpPTA7aTw9bjtpKyspaWYodFtpXS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXt2YXIgcj10W2ldLG89ci5zdHlsZTsic2Nyb2xsIiE9PW8ub3ZlcmZsb3cmJiJhdXRvIiE9PW8ub3ZlcmZsb3cmJihvPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHIpKSwic2Nyb2xsIiE9PW8ub3ZlcmZsb3cmJiJhdXRvIiE9PW8ub3ZlcmZsb3d8fGUucHVzaChyKX1yZXR1cm4gZX0pKFlpKHQpLnBhdGgpKSwhd2EubGVuZ3RoKXJldHVybiEwO2lmKCJ0b3VjaHN0YXJ0Ij09PXQudHlwZSlyZXR1cm4hMTt2YXIgaT0oZnVuY3Rpb24gcih0KXt2YXIgZT17ZGVsdGFYOnQuZGVsdGFYLGRlbHRhWTp0LmRlbHRhWX07aWYoImRlbHRhWCJpbiB0KTtlbHNlIGlmKCJ3aGVlbERlbHRhWCJpbiB0JiYid2hlZWxEZWx0YVkiaW4gdCllLmRlbHRhWD0tdC53aGVlbERlbHRhWCxlLmRlbHRhWT0tdC53aGVlbERlbHRhWTtlbHNlIGlmKCJ3aGVlbERlbHRhImluIHQpZS5kZWx0YVg9MCxlLmRlbHRhWT0tdC53aGVlbERlbHRhO2Vsc2UgaWYoImF4aXMiaW4gdCllLmRlbHRhWD0xPT09dC5heGlzP3QuZGV0YWlsOjAsZS5kZWx0YVk9Mj09PXQuYXhpcz90LmRldGFpbDowO2Vsc2UgaWYodC50YXJnZXRUb3VjaGVzKXt2YXIgbj10LnRhcmdldFRvdWNoZXNbMF07ZS5kZWx0YVg9YmEucGFnZVgtbi5wYWdlWCxlLmRlbHRhWT1iYS5wYWdlWS1uLnBhZ2VZfXJldHVybiBlfQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8pKHQpO3JldHVybiEoZnVuY3Rpb24gbyh0LGUsbil7aWYoZXx8bilmb3IodmFyIGk9TWF0aC5hYnMobik+PU1hdGguYWJzKGUpLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG89dFtyXTtpZihpP248MD9vLnNjcm9sbFRvcD4wOm8uc2Nyb2xsVG9wPG8uc2Nyb2xsSGVpZ2h0LW8uY2xpZW50SGVpZ2h0OmU8MD9vLnNjcm9sbExlZnQ+MDpvLnNjcm9sbExlZnQ8by5zY3JvbGxXaWR0aC1vLmNsaWVudFdpZHRoKXJldHVybiBvfX0pKHdhLGkuZGVsdGFYLGkuZGVsdGFZKX0pKHQpJiZ0LnByZXZlbnREZWZhdWx0KCksdC50YXJnZXRUb3VjaGVzKXt2YXIgbj10LnRhcmdldFRvdWNoZXNbMF07YmEucGFnZVg9bi5wYWdlWCxiYS5wYWdlWT1uLnBhZ2VZfX1jb25zdCBDYT17cHJvcGVydGllczp7b3BlbmVkOntvYnNlcnZlcjoiX29wZW5lZENoYW5nZWQiLHR5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITB9LGNhbmNlbGVkOntvYnNlcnZlcjoiX2NhbmNlbGVkQ2hhbmdlZCIscmVhZE9ubHk6ITAsdHlwZTpCb29sZWFuLHZhbHVlOiExfSx3aXRoQmFja2Ryb3A6e29ic2VydmVyOiJfd2l0aEJhY2tkcm9wQ2hhbmdlZCIsdHlwZTpCb29sZWFufSxub0F1dG9Gb2N1czp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxub0NhbmNlbE9uRXNjS2V5Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LG5vQ2FuY2VsT25PdXRzaWRlQ2xpY2s6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sY2xvc2luZ1JlYXNvbjp7dHlwZTpPYmplY3R9LHJlc3RvcmVGb2N1c09uQ2xvc2U6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYWxsb3dDbGlja1Rocm91Z2g6e3R5cGU6Qm9vbGVhbn0sYWx3YXlzT25Ub3A6e3R5cGU6Qm9vbGVhbn0sc2Nyb2xsQWN0aW9uOnt0eXBlOlN0cmluZ30sX21hbmFnZXI6e3R5cGU6T2JqZWN0LHZhbHVlOl9hfSxfZm9jdXNlZENoaWxkOnt0eXBlOk9iamVjdH19LGxpc3RlbmVyczp7Imlyb24tcmVzaXplIjoiX29uSXJvblJlc2l6ZSJ9LG9ic2VydmVyczpbIl9fdXBkYXRlU2Nyb2xsT2JzZXJ2ZXJzKGlzQXR0YWNoZWQsIG9wZW5lZCwgc2Nyb2xsQWN0aW9uKSJdLGdldCBiYWNrZHJvcEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fbWFuYWdlci5iYWNrZHJvcEVsZW1lbnR9LGdldCBfZm9jdXNOb2RlKCl7cmV0dXJuIHRoaXMuX2ZvY3VzZWRDaGlsZHx8WWkodGhpcykucXVlcnlTZWxlY3RvcigiW2F1dG9mb2N1c10iKXx8dGhpc30sZ2V0IF9mb2N1c2FibGVOb2Rlcygpe3JldHVybiBnYS5nZXRUYWJiYWJsZU5vZGVzKHRoaXMpfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuX19pc0FuaW1hdGluZz0hMSx0aGlzLl9fc2hvdWxkUmVtb3ZlVGFiSW5kZXg9ITEsdGhpcy5fX2ZpcnN0Rm9jdXNhYmxlTm9kZT10aGlzLl9fbGFzdEZvY3VzYWJsZU5vZGU9bnVsbCx0aGlzLl9fcmFmcz17fSx0aGlzLl9fcmVzdG9yZUZvY3VzTm9kZT1udWxsLHRoaXMuX19zY3JvbGxUb3A9dGhpcy5fX3Njcm9sbExlZnQ9bnVsbCx0aGlzLl9fb25DYXB0dXJlU2Nyb2xsPXRoaXMuX19vbkNhcHR1cmVTY3JvbGwuYmluZCh0aGlzKSx0aGlzLl9fcm9vdE5vZGVzPW51bGwsdGhpcy5fZW5zdXJlU2V0dXAoKX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmdGhpcy5fb3BlbmVkQ2hhbmdlZCh0aGlzLm9wZW5lZCksdGhpcy5fb2JzZXJ2ZXI9WWkodGhpcykub2JzZXJ2ZU5vZGVzKHRoaXMuX29uTm9kZXNDaGFuZ2UpfSxkZXRhY2hlZDpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLl9vYnNlcnZlciYmWWkodGhpcykudW5vYnNlcnZlTm9kZXModGhpcy5fb2JzZXJ2ZXIpLHRoaXMuX29ic2VydmVyPW51bGwsdGhpcy5fX3JhZnMpbnVsbCE9PXRoaXMuX19yYWZzW3RdJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9fcmFmc1t0XSk7dGhpcy5fX3JhZnM9e30sdGhpcy5fbWFuYWdlci5yZW1vdmVPdmVybGF5KHRoaXMpLHRoaXMuX19pc0FuaW1hdGluZyYmKHRoaXMub3BlbmVkP3RoaXMuX2ZpbmlzaFJlbmRlck9wZW5lZCgpOih0aGlzLl9hcHBseUZvY3VzKCksdGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCkpKX0sdG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy5fc2V0Q2FuY2VsZWQoITEpLHRoaXMub3BlbmVkPSF0aGlzLm9wZW5lZH0sb3BlbjpmdW5jdGlvbigpe3RoaXMuX3NldENhbmNlbGVkKCExKSx0aGlzLm9wZW5lZD0hMH0sY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLl9zZXRDYW5jZWxlZCghMSksdGhpcy5vcGVuZWQ9ITF9LGNhbmNlbDpmdW5jdGlvbih0KXt0aGlzLmZpcmUoImlyb24tb3ZlcmxheS1jYW5jZWxlZCIsdCx7Y2FuY2VsYWJsZTohMH0pLmRlZmF1bHRQcmV2ZW50ZWR8fCh0aGlzLl9zZXRDYW5jZWxlZCghMCksdGhpcy5vcGVuZWQ9ITEpfSxpbnZhbGlkYXRlVGFiYmFibGVzOmZ1bmN0aW9uKCl7dGhpcy5fX2ZpcnN0Rm9jdXNhYmxlTm9kZT10aGlzLl9fbGFzdEZvY3VzYWJsZU5vZGU9bnVsbH0sX2Vuc3VyZVNldHVwOmZ1bmN0aW9uKCl7dGhpcy5fb3ZlcmxheVNldHVwfHwodGhpcy5fb3ZlcmxheVNldHVwPSEwLHRoaXMuc3R5bGUub3V0bGluZT0ibm9uZSIsdGhpcy5zdHlsZS5kaXNwbGF5PSJub25lIil9LF9vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKHQpe3Q/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIik6dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLHRoaXMuaXNBdHRhY2hlZCYmKHRoaXMuX19pc0FuaW1hdGluZz0hMCx0aGlzLl9fZGVyYWYoIl9fb3BlbmVkQ2hhbmdlZCIsdGhpcy5fX29wZW5lZENoYW5nZWQpKX0sX2NhbmNlbGVkQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuY2xvc2luZ1JlYXNvbj10aGlzLmNsb3NpbmdSZWFzb258fHt9LHRoaXMuY2xvc2luZ1JlYXNvbi5jYW5jZWxlZD10aGlzLmNhbmNlbGVkfSxfd2l0aEJhY2tkcm9wQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMud2l0aEJhY2tkcm9wJiYhdGhpcy5oYXNBdHRyaWJ1dGUoInRhYmluZGV4Iik/KHRoaXMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksdGhpcy5fX3Nob3VsZFJlbW92ZVRhYkluZGV4PSEwKTp0aGlzLl9fc2hvdWxkUmVtb3ZlVGFiSW5kZXgmJih0aGlzLnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKSx0aGlzLl9fc2hvdWxkUmVtb3ZlVGFiSW5kZXg9ITEpLHRoaXMub3BlbmVkJiZ0aGlzLmlzQXR0YWNoZWQmJnRoaXMuX21hbmFnZXIudHJhY2tCYWNrZHJvcCgpfSxfcHJlcGFyZVJlbmRlck9wZW5lZDpmdW5jdGlvbigpe3RoaXMuX19yZXN0b3JlRm9jdXNOb2RlPXRoaXMuX21hbmFnZXIuZGVlcEFjdGl2ZUVsZW1lbnQsdGhpcy5fcHJlcGFyZVBvc2l0aW9uaW5nKCksdGhpcy5yZWZpdCgpLHRoaXMuX2ZpbmlzaFBvc2l0aW9uaW5nKCksdGhpcy5ub0F1dG9Gb2N1cyYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXRoaXMuX2ZvY3VzTm9kZSYmKHRoaXMuX2ZvY3VzTm9kZS5ibHVyKCksdGhpcy5fX3Jlc3RvcmVGb2N1c05vZGUuZm9jdXMoKSl9LF9yZW5kZXJPcGVuZWQ6ZnVuY3Rpb24oKXt0aGlzLl9maW5pc2hSZW5kZXJPcGVuZWQoKX0sX3JlbmRlckNsb3NlZDpmdW5jdGlvbigpe3RoaXMuX2ZpbmlzaFJlbmRlckNsb3NlZCgpfSxfZmluaXNoUmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5ub3RpZnlSZXNpemUoKSx0aGlzLl9faXNBbmltYXRpbmc9ITEsdGhpcy5maXJlKCJpcm9uLW92ZXJsYXktb3BlbmVkIil9LF9maW5pc2hSZW5kZXJDbG9zZWQ6ZnVuY3Rpb24oKXt0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuc3R5bGUuekluZGV4PSIiLHRoaXMubm90aWZ5UmVzaXplKCksdGhpcy5fX2lzQW5pbWF0aW5nPSExLHRoaXMuZmlyZSgiaXJvbi1vdmVybGF5LWNsb3NlZCIsdGhpcy5jbG9zaW5nUmVhc29uKX0sX3ByZXBhcmVQb3NpdGlvbmluZzpmdW5jdGlvbigpe3RoaXMuc3R5bGUudHJhbnNpdGlvbj10aGlzLnN0eWxlLndlYmtpdFRyYW5zaXRpb249Im5vbmUiLHRoaXMuc3R5bGUudHJhbnNmb3JtPXRoaXMuc3R5bGUud2Via2l0VHJhbnNmb3JtPSJub25lIix0aGlzLnN0eWxlLmRpc3BsYXk9IiJ9LF9maW5pc2hQb3NpdGlvbmluZzpmdW5jdGlvbigpe3RoaXMuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5zY3JvbGxUb3A9dGhpcy5zY3JvbGxUb3AsdGhpcy5zdHlsZS50cmFuc2l0aW9uPXRoaXMuc3R5bGUud2Via2l0VHJhbnNpdGlvbj0iIix0aGlzLnN0eWxlLnRyYW5zZm9ybT10aGlzLnN0eWxlLndlYmtpdFRyYW5zZm9ybT0iIix0aGlzLnN0eWxlLmRpc3BsYXk9IiIsdGhpcy5zY3JvbGxUb3A9dGhpcy5zY3JvbGxUb3B9LF9hcHBseUZvY3VzOmZ1bmN0aW9uKCl7aWYodGhpcy5vcGVuZWQpdGhpcy5ub0F1dG9Gb2N1c3x8dGhpcy5fZm9jdXNOb2RlLmZvY3VzKCk7ZWxzZXtpZih0aGlzLnJlc3RvcmVGb2N1c09uQ2xvc2UmJnRoaXMuX19yZXN0b3JlRm9jdXNOb2RlKXt2YXIgdD10aGlzLl9tYW5hZ2VyLmRlZXBBY3RpdmVFbGVtZW50Oyh0PT09ZG9jdW1lbnQuYm9keXx8QWEodGhpcyx0KSkmJnRoaXMuX19yZXN0b3JlRm9jdXNOb2RlLmZvY3VzKCl9dGhpcy5fX3Jlc3RvcmVGb2N1c05vZGU9bnVsbCx0aGlzLl9mb2N1c05vZGUuYmx1cigpLHRoaXMuX2ZvY3VzZWRDaGlsZD1udWxsfX0sX29uQ2FwdHVyZUNsaWNrOmZ1bmN0aW9uKHQpe3RoaXMubm9DYW5jZWxPbk91dHNpZGVDbGlja3x8dGhpcy5jYW5jZWwodCl9LF9vbkNhcHR1cmVGb2N1czpmdW5jdGlvbih0KXtpZih0aGlzLndpdGhCYWNrZHJvcCl7dmFyIGU9WWkodCkucGF0aDstMT09PWUuaW5kZXhPZih0aGlzKT8odC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9hcHBseUZvY3VzKCkpOnRoaXMuX2ZvY3VzZWRDaGlsZD1lWzBdfX0sX29uQ2FwdHVyZUVzYzpmdW5jdGlvbih0KXt0aGlzLm5vQ2FuY2VsT25Fc2NLZXl8fHRoaXMuY2FuY2VsKHQpfSxfb25DYXB0dXJlVGFiOmZ1bmN0aW9uKHQpe2lmKHRoaXMud2l0aEJhY2tkcm9wKXt0aGlzLl9fZW5zdXJlRmlyc3RMYXN0Rm9jdXNhYmxlcygpO3ZhciBlPXQuc2hpZnRLZXksbj1lP3RoaXMuX19maXJzdEZvY3VzYWJsZU5vZGU6dGhpcy5fX2xhc3RGb2N1c2FibGVOb2RlLGk9ZT90aGlzLl9fbGFzdEZvY3VzYWJsZU5vZGU6dGhpcy5fX2ZpcnN0Rm9jdXNhYmxlTm9kZSxyPSExO2lmKG49PT1pKXI9ITA7ZWxzZXt2YXIgbz10aGlzLl9tYW5hZ2VyLmRlZXBBY3RpdmVFbGVtZW50O3I9bz09PW58fG89PT10aGlzfXImJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fZm9jdXNlZENoaWxkPWksdGhpcy5fYXBwbHlGb2N1cygpKX19LF9vbklyb25SZXNpemU6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmIXRoaXMuX19pc0FuaW1hdGluZyYmdGhpcy5fX2RlcmFmKCJyZWZpdCIsdGhpcy5yZWZpdCl9LF9vbk5vZGVzQ2hhbmdlOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQmJiF0aGlzLl9faXNBbmltYXRpbmcmJih0aGlzLmludmFsaWRhdGVUYWJiYWJsZXMoKSx0aGlzLm5vdGlmeVJlc2l6ZSgpKX0sX19lbnN1cmVGaXJzdExhc3RGb2N1c2FibGVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZm9jdXNhYmxlTm9kZXM7dGhpcy5fX2ZpcnN0Rm9jdXNhYmxlTm9kZT10WzBdLHRoaXMuX19sYXN0Rm9jdXNhYmxlTm9kZT10W3QubGVuZ3RoLTFdfSxfX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZD8odGhpcy5fcHJlcGFyZVJlbmRlck9wZW5lZCgpLHRoaXMuX21hbmFnZXIuYWRkT3ZlcmxheSh0aGlzKSx0aGlzLl9hcHBseUZvY3VzKCksdGhpcy5fcmVuZGVyT3BlbmVkKCkpOih0aGlzLl9tYW5hZ2VyLnJlbW92ZU92ZXJsYXkodGhpcyksdGhpcy5fYXBwbHlGb2N1cygpLHRoaXMuX3JlbmRlckNsb3NlZCgpKX0sX19kZXJhZjpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX19yYWZzO251bGwhPT1uW3RdJiZjYW5jZWxBbmltYXRpb25GcmFtZShuW3RdKSxuW3RdPXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiBpKCl7blt0XT1udWxsLGUuY2FsbCh0aGlzKX0uYmluZCh0aGlzKSl9LF9fdXBkYXRlU2Nyb2xsT2JzZXJ2ZXJzOmZ1bmN0aW9uKHQsZSxuKXt0JiZlJiZ0aGlzLl9faXNWYWxpZFNjcm9sbEFjdGlvbihuKT8oImxvY2siPT09biYmKHRoaXMuX19zYXZlU2Nyb2xsUG9zaXRpb24oKSxNYSh0aGlzKSksdGhpcy5fX2FkZFNjcm9sbExpc3RlbmVycygpKTooKGZ1bmN0aW9uIGkodCl7dmFyIGU9RWEuaW5kZXhPZih0KTstMSE9PWUmJihFYS5zcGxpY2UoZSwxKSx2YT1FYVtFYS5sZW5ndGgtMV0sMD09PUVhLmxlbmd0aCYmKGZ1bmN0aW9uIG4oKXtmb3IodmFyIHQ9MCxlPVNhLmxlbmd0aDt0PGU7dCsrKWRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoU2FbdF0seWEse2NhcHR1cmU6ITAscGFzc2l2ZTohMX0pfSkoKSl9KSh0aGlzKSx0aGlzLl9fcmVtb3ZlU2Nyb2xsTGlzdGVuZXJzKCkpfSxfX2FkZFNjcm9sbExpc3RlbmVyczpmdW5jdGlvbigpe2lmKCF0aGlzLl9fcm9vdE5vZGVzKXtpZih0aGlzLl9fcm9vdE5vZGVzPVtdLG0pZm9yKHZhciB0PXRoaXM7dDspdC5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmdC5ob3N0JiZ0aGlzLl9fcm9vdE5vZGVzLnB1c2godCksdD10Lmhvc3R8fHQuYXNzaWduZWRTbG90fHx0LnBhcmVudE5vZGU7dGhpcy5fX3Jvb3ROb2Rlcy5wdXNoKGRvY3VtZW50KX10aGlzLl9fcm9vdE5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9fb25DYXB0dXJlU2Nyb2xsLHtjYXB0dXJlOiEwLHBhc3NpdmU6ITB9KX0pLHRoaXMpfSxfX3JlbW92ZVNjcm9sbExpc3RlbmVyczpmdW5jdGlvbigpe3RoaXMuX19yb290Tm9kZXMmJnRoaXMuX19yb290Tm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19vbkNhcHR1cmVTY3JvbGwse2NhcHR1cmU6ITAscGFzc2l2ZTohMH0pfSksdGhpcyksdGhpcy5pc0F0dGFjaGVkfHwodGhpcy5fX3Jvb3ROb2Rlcz1udWxsKX0sX19pc1ZhbGlkU2Nyb2xsQWN0aW9uOmZ1bmN0aW9uKHQpe3JldHVybiJsb2NrIj09PXR8fCJyZWZpdCI9PT10fHwiY2FuY2VsIj09PXR9LF9fb25DYXB0dXJlU2Nyb2xsOmZ1bmN0aW9uKHQpe2lmKCEodGhpcy5fX2lzQW5pbWF0aW5nfHxZaSh0KS5wYXRoLmluZGV4T2YodGhpcyk+PTApKXN3aXRjaCh0aGlzLnNjcm9sbEFjdGlvbil7Y2FzZSJsb2NrIjp0aGlzLl9fcmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7YnJlYWs7Y2FzZSJyZWZpdCI6dGhpcy5fX2RlcmFmKCJyZWZpdCIsdGhpcy5yZWZpdCk7YnJlYWs7Y2FzZSJjYW5jZWwiOnRoaXMuY2FuY2VsKHQpfX0sX19zYXZlU2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24oKXtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50Pyh0aGlzLl9fc2Nyb2xsVG9wPWRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLHRoaXMuX19zY3JvbGxMZWZ0PWRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCk6KHRoaXMuX19zY3JvbGxUb3A9TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCksdGhpcy5fX3Njcm9sbExlZnQ9TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQsZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0KSl9LF9fcmVzdG9yZVNjcm9sbFBvc2l0aW9uOmZ1bmN0aW9uKCl7ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudD8oZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A9dGhpcy5fX3Njcm9sbFRvcCxkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQ9dGhpcy5fX3Njcm9sbExlZnQpOihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wPWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wPXRoaXMuX19zY3JvbGxUb3AsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ9ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0PXRoaXMuX19zY3JvbGxMZWZ0KX19LEFhPSh0LGUpPT57Zm9yKGxldCBpPWU7aTtpPShuPWkpLmFzc2lnbmVkU2xvdHx8bi5wYXJlbnROb2RlfHxuLmhvc3QpaWYoaT09PXQpcmV0dXJuITA7dmFyIG47cmV0dXJuITF9LGthPVtwYSxnbyxDYV0sTGE9e2hvc3RBdHRyaWJ1dGVzOntyb2xlOiJkaWFsb2ciLHRhYmluZGV4OiItMSJ9LHByb3BlcnRpZXM6e21vZGFsOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9fcmVhZGllZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sb2JzZXJ2ZXJzOlsiX21vZGFsQ2hhbmdlZChtb2RhbCwgX19yZWFkaWVkKSJdLGxpc3RlbmVyczp7dGFwOiJfb25EaWFsb2dDbGljayJ9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5fX3ByZXZOb0NhbmNlbE9uT3V0c2lkZUNsaWNrPXRoaXMubm9DYW5jZWxPbk91dHNpZGVDbGljayx0aGlzLl9fcHJldk5vQ2FuY2VsT25Fc2NLZXk9dGhpcy5ub0NhbmNlbE9uRXNjS2V5LHRoaXMuX19wcmV2V2l0aEJhY2tkcm9wPXRoaXMud2l0aEJhY2tkcm9wLHRoaXMuX19yZWFkaWVkPSEwfSxfbW9kYWxDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7ZSYmKHQ/KHRoaXMuX19wcmV2Tm9DYW5jZWxPbk91dHNpZGVDbGljaz10aGlzLm5vQ2FuY2VsT25PdXRzaWRlQ2xpY2ssdGhpcy5fX3ByZXZOb0NhbmNlbE9uRXNjS2V5PXRoaXMubm9DYW5jZWxPbkVzY0tleSx0aGlzLl9fcHJldldpdGhCYWNrZHJvcD10aGlzLndpdGhCYWNrZHJvcCx0aGlzLm5vQ2FuY2VsT25PdXRzaWRlQ2xpY2s9ITAsdGhpcy5ub0NhbmNlbE9uRXNjS2V5PSEwLHRoaXMud2l0aEJhY2tkcm9wPSEwKToodGhpcy5ub0NhbmNlbE9uT3V0c2lkZUNsaWNrPXRoaXMubm9DYW5jZWxPbk91dHNpZGVDbGljayYmdGhpcy5fX3ByZXZOb0NhbmNlbE9uT3V0c2lkZUNsaWNrLHRoaXMubm9DYW5jZWxPbkVzY0tleT10aGlzLm5vQ2FuY2VsT25Fc2NLZXkmJnRoaXMuX19wcmV2Tm9DYW5jZWxPbkVzY0tleSx0aGlzLndpdGhCYWNrZHJvcD10aGlzLndpdGhCYWNrZHJvcCYmdGhpcy5fX3ByZXZXaXRoQmFja2Ryb3ApKX0sX3VwZGF0ZUNsb3NpbmdSZWFzb25Db25maXJtZWQ6ZnVuY3Rpb24odCl7dGhpcy5jbG9zaW5nUmVhc29uPXRoaXMuY2xvc2luZ1JlYXNvbnx8e30sdGhpcy5jbG9zaW5nUmVhc29uLmNvbmZpcm1lZD10fSxfb25EaWFsb2dDbGljazpmdW5jdGlvbih0KXtmb3IodmFyIGU9WWkodCkucGF0aCxuPTAsaT1lLmluZGV4T2YodGhpcyk7bjxpO24rKyl7dmFyIHI9ZVtuXTtpZihyLmhhc0F0dHJpYnV0ZSYmKHIuaGFzQXR0cmlidXRlKCJkaWFsb2ctZGlzbWlzcyIpfHxyLmhhc0F0dHJpYnV0ZSgiZGlhbG9nLWNvbmZpcm0iKSkpe3RoaXMuX3VwZGF0ZUNsb3NpbmdSZWFzb25Db25maXJtZWQoci5oYXNBdHRyaWJ1dGUoImRpYWxvZy1jb25maXJtIikpLHRoaXMuY2xvc2UoKSx0LnN0b3BQcm9wYWdhdGlvbigpO2JyZWFrfX19fSxQYT1ba2EsTGFdOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KaWYoCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIEBhcHBseSAtLWxheW91dC1yZWxhdGl2ZTsKICAgICAgfQoKICAgICAgOmhvc3QoLmlzLXNjcm9sbGVkOm5vdCg6Zmlyc3QtY2hpbGQpKTo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGl2aWRlci1jb2xvcik7CiAgICAgIH0KCiAgICAgIDpob3N0KC5jYW4tc2Nyb2xsOm5vdCguc2Nyb2xsZWQtdG8tYm90dG9tKTpub3QoOmxhc3QtY2hpbGQpKTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kaXZpZGVyLWNvbG9yKTsKICAgICAgfQoKICAgICAgLnNjcm9sbGFibGUgewogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKCiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXNjcm9sbDsKICAgICAgICBAYXBwbHkgLS1wYXBlci1kaWFsb2ctc2Nyb2xsYWJsZTsKICAgICAgfQoKICAgICAgLmZpdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZpdDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJzY3JvbGxhYmxlIiBjbGFzcz0ic2Nyb2xsYWJsZSIgb24tc2Nyb2xsPSJ1cGRhdGVTY3JvbGxTdGF0ZSI+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZSIscHJvcGVydGllczp7ZGlhbG9nRWxlbWVudDp7dHlwZTpPYmplY3R9fSxnZXQgc2Nyb2xsVGFyZ2V0KCl7cmV0dXJuIHRoaXMuJC5zY3JvbGxhYmxlfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuX2Vuc3VyZVRhcmdldCgpLHRoaXMuY2xhc3NMaXN0LmFkZCgibm8tcGFkZGluZyIpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2Vuc3VyZVRhcmdldCgpLHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlLmJpbmQodGhpcykpfSx1cGRhdGVTY3JvbGxTdGF0ZTpmdW5jdGlvbigpe3RoaXMudG9nZ2xlQ2xhc3MoImlzLXNjcm9sbGVkIix0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3A+MCksdGhpcy50b2dnbGVDbGFzcygiY2FuLXNjcm9sbCIsdGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0SGVpZ2h0PHRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbEhlaWdodCksdGhpcy50b2dnbGVDbGFzcygic2Nyb2xsZWQtdG8tYm90dG9tIix0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3ArdGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0SGVpZ2h0Pj10aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxIZWlnaHQpfSxfZW5zdXJlVGFyZ2V0OmZ1bmN0aW9uKCl7dGhpcy5kaWFsb2dFbGVtZW50PXRoaXMuZGlhbG9nRWxlbWVudHx8dGhpcy5wYXJlbnRFbGVtZW50LHRoaXMuZGlhbG9nRWxlbWVudCYmdGhpcy5kaWFsb2dFbGVtZW50LmJlaGF2aW9ycyYmdGhpcy5kaWFsb2dFbGVtZW50LmJlaGF2aW9ycy5pbmRleE9mKExhKT49MD8odGhpcy5kaWFsb2dFbGVtZW50LnNpemluZ1RhcmdldD10aGlzLnNjcm9sbFRhcmdldCx0aGlzLnNjcm9sbFRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCJmaXQiKSk6dGhpcy5kaWFsb2dFbGVtZW50JiZ0aGlzLnNjcm9sbFRhcmdldC5jbGFzc0xpc3QuYWRkKCJmaXQiKX19KSwhd2luZG93LnBvbHltZXJTa2lwTG9hZGluZ0ZvbnRSb2JvdG8pe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO3QucmVsPSJzdHlsZXNoZWV0Iix0LnR5cGU9InRleHQvY3NzIix0LmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHQuaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bytNb25vOjQwMCw3MDB8Um9ib3RvOjQwMCwzMDAsMzAwaXRhbGljLDQwMGl0YWxpYyw1MDAsNTAwaXRhbGljLDcwMCw3MDBpdGFsaWMiLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCl9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2NvbnN0IE5hPV9lYDxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgaHRtbCB7CgogICAgICAvKiBTaGFyZWQgU3R5bGVzICovCiAgICAgIC0tcGFwZXItZm9udC1jb21tb24tYmFzZTogewogICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ05vdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNvbW1vbi1jb2RlOiB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsICdDb25zb2xhcycsICdNZW5sbycsIG1vbm9zcGFjZTsKICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1jb21tb24tZXhwZW5zaXZlLWtlcm5pbmc6IHsKICAgICAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNvbW1vbi1ub3dyYXA6IHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH07CgogICAgICAvKiBNYXRlcmlhbCBGb250IFN0eWxlcyAqLwoKICAgICAgLS1wYXBlci1mb250LWRpc3BsYXk0OiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1ub3dyYXA7CgogICAgICAgIGZvbnQtc2l6ZTogMTEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4wNDRlbTsKICAgICAgICBsaW5lLWhlaWdodDogMTIwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtZGlzcGxheTM6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKCiAgICAgICAgZm9udC1zaXplOiA1NnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uMDI2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtZGlzcGxheTI6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwoKICAgICAgICBmb250LXNpemU6IDQ1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4wMThlbTsKICAgICAgICBsaW5lLWhlaWdodDogNDhweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1kaXNwbGF5MTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CgogICAgICAgIGZvbnQtc2l6ZTogMzRweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtLjAxZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtaGVhZGxpbmU6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwoKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4wMTJlbTsKICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC10aXRsZTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tbm93cmFwOwoKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1zdWJoZWFkOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKCiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtYm9keTI6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwoKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1ib2R5MTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CgogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNhcHRpb246IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKCiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDExZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtbWVudTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tbm93cmFwOwoKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1idXR0b246IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKCiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDE4ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1jb2RlMjogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWNvZGU7CgogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNvZGUxOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tY29kZTsKCiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH07CgogICAgfQoKICA8L3N0eWxlPgo8L2N1c3RvbS1zdHlsZT5gO05hLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoTmEuY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBJYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO0lhLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLElhLmlubmVySFRNTD0nPGRvbS1tb2R1bGUgaWQ9InBhcGVyLWRpYWxvZy1zaGFyZWQtc3R5bGVzIj5cbiAgPHRlbXBsYXRlPlxuICAgIDxzdHlsZT5cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMjRweCA0MHB4O1xuXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLWRpYWxvZy1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3IpKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWRpYWxvZy1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7XG5cbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1ib2R5MTtcbiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0xNmRwO1xuICAgICAgICBAYXBwbHkgLS1wYXBlci1kaWFsb2c7XG4gICAgICB9XG5cbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKCopIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgcGFkZGluZzogMCAyNHB4O1xuICAgICAgfVxuXG4gICAgICA6aG9zdCA+IDo6c2xvdHRlZCgubm8tcGFkZGluZykge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICBcbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKCo6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoKjpsYXN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIEluIDEueCwgdGhpcyBzZWxlY3RvciB3YXMgYDpob3N0ID4gOjpjb250ZW50IGgyYC4gSW4gMi54IDxzbG90PiBhbGxvd3NcbiAgICAgIHRvIHNlbGVjdCBkaXJlY3QgY2hpbGRyZW4gb25seSwgd2hpY2ggaW5jcmVhc2VzIHRoZSB3ZWlnaHQgb2YgdGhpc1xuICAgICAgc2VsZWN0b3IsIHNvIHdlIGhhdmUgdG8gcmUtZGVmaW5lIGZpcnN0LWNoaWxkL2xhc3QtY2hpbGQgbWFyZ2lucyBiZWxvdy4gKi9cbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKGgyKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtdGl0bGU7XG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRpYWxvZy10aXRsZTtcbiAgICAgIH1cblxuICAgICAgLyogQXBwbHkgbWl4aW4gYWdhaW4sIGluIGNhc2UgaXQgc2V0cyBtYXJnaW4tdG9wLiAqL1xuICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoaDI6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZGlhbG9nLXRpdGxlO1xuICAgICAgfVxuXG4gICAgICAvKiBBcHBseSBtaXhpbiBhZ2FpbiwgaW4gY2FzZSBpdCBzZXRzIG1hcmdpbi1ib3R0b20uICovXG4gICAgICA6aG9zdCA+IDo6c2xvdHRlZChoMjpsYXN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRpYWxvZy10aXRsZTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoLnBhcGVyLWRpYWxvZy1idXR0b25zKSxcbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKC5idXR0b25zKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogOHB4IDhweCA4cHggMjRweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1kaWFsb2ctYnV0dG9uLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7XG5cbiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7XG4gICAgICAgIEBhcHBseSAtLWxheW91dC1lbmQtanVzdGlmaWVkO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gIDwvdGVtcGxhdGU+XG48L2RvbS1tb2R1bGU+Jyxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKElhLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgUmE9W3twcm9wZXJ0aWVzOnthbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0fSxlbnRyeUFuaW1hdGlvbjp7b2JzZXJ2ZXI6Il9lbnRyeUFuaW1hdGlvbkNoYW5nZWQiLHR5cGU6U3RyaW5nfSxleGl0QW5pbWF0aW9uOntvYnNlcnZlcjoiX2V4aXRBbmltYXRpb25DaGFuZ2VkIix0eXBlOlN0cmluZ319LF9lbnRyeUFuaW1hdGlvbkNoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmFuaW1hdGlvbkNvbmZpZz10aGlzLmFuaW1hdGlvbkNvbmZpZ3x8e30sdGhpcy5hbmltYXRpb25Db25maWcuZW50cnk9W3tuYW1lOnRoaXMuZW50cnlBbmltYXRpb24sbm9kZTp0aGlzfV19LF9leGl0QW5pbWF0aW9uQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuYW5pbWF0aW9uQ29uZmlnPXRoaXMuYW5pbWF0aW9uQ29uZmlnfHx7fSx0aGlzLmFuaW1hdGlvbkNvbmZpZy5leGl0PVt7bmFtZTp0aGlzLmV4aXRBbmltYXRpb24sbm9kZTp0aGlzfV19LF9jb3B5UHJvcGVydGllczpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXX0sX2Nsb25lQ29uZmlnOmZ1bmN0aW9uKHQpe3ZhciBlPXtpc0Nsb25lOiEwfTtyZXR1cm4gdGhpcy5fY29weVByb3BlcnRpZXMoZSx0KSxlfSxfZ2V0QW5pbWF0aW9uQ29uZmlnUmVjdXJzaXZlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtpZih0aGlzLmFuaW1hdGlvbkNvbmZpZylpZih0aGlzLmFuaW1hdGlvbkNvbmZpZy52YWx1ZSYmImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuYW5pbWF0aW9uQ29uZmlnLnZhbHVlKXRoaXMuX3dhcm4odGhpcy5fbG9nZigicGxheUFuaW1hdGlvbiIsIlBsZWFzZSBwdXQgJ2FuaW1hdGlvbkNvbmZpZycgaW5zaWRlIG9mIHlvdXIgY29tcG9uZW50cyAncHJvcGVydGllcycgb2JqZWN0IGluc3RlYWQgb2Ygb3V0c2lkZSBvZiBpdC4iKSk7ZWxzZSBpZihpPXQ/dGhpcy5hbmltYXRpb25Db25maWdbdF06dGhpcy5hbmltYXRpb25Db25maWcsQXJyYXkuaXNBcnJheShpKXx8KGk9W2ldKSxpKWZvcih2YXIgcixvPTA7cj1pW29dO28rKylpZihyLmFuaW1hdGFibGUpci5hbmltYXRhYmxlLl9nZXRBbmltYXRpb25Db25maWdSZWN1cnNpdmUoci50eXBlfHx0LGUsbik7ZWxzZSBpZihyLmlkKXt2YXIgYT1lW3IuaWRdO2E/KGEuaXNDbG9uZXx8KGVbci5pZF09dGhpcy5fY2xvbmVDb25maWcoYSksYT1lW3IuaWRdKSx0aGlzLl9jb3B5UHJvcGVydGllcyhhLHIpKTplW3IuaWRdPXJ9ZWxzZSBuLnB1c2gocil9LGdldEFuaW1hdGlvbkNvbmZpZzpmdW5jdGlvbih0KXt2YXIgZT17fSxuPVtdO2Zvcih2YXIgaSBpbiB0aGlzLl9nZXRBbmltYXRpb25Db25maWdSZWN1cnNpdmUodCxlLG4pLGUpbi5wdXNoKGVbaV0pO3JldHVybiBufX0se19jb25maWd1cmVBbmltYXRpb25zOmZ1bmN0aW9uKHQpe3ZhciBlPVtdLG49W107aWYodC5sZW5ndGg+MClmb3IobGV0IGUsaT0wO2U9dFtpXTtpKyspe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZS5uYW1lKTtpZih0LmlzTmVvbkFuaW1hdGlvbil7bGV0IGk9bnVsbDt0LmNvbmZpZ3VyZXx8KHQuY29uZmlndXJlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSksaT10LmNvbmZpZ3VyZShlKSxuLnB1c2goe3Jlc3VsdDppLGNvbmZpZzplLG5lb25BbmltYXRpb246dH0pfWVsc2UgY29uc29sZS53YXJuKHRoaXMuaXMrIjoiLGUubmFtZSwibm90IGZvdW5kISIpfWZvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXtsZXQgdD1uW2ldLnJlc3VsdCxyPW5baV0uY29uZmlnLG89bltpXS5uZW9uQW5pbWF0aW9uO3RyeXsiZnVuY3Rpb24iIT10eXBlb2YgdC5jYW5jZWwmJih0PWRvY3VtZW50LnRpbWVsaW5lLnBsYXkodCkpfWNhdGNoKGUpe3Q9bnVsbCxjb25zb2xlLndhcm4oIkNvdWxkbnQgcGxheSIsIigiLHIubmFtZSwiKS4iLGUpfXQmJmUucHVzaCh7bmVvbkFuaW1hdGlvbjpvLGNvbmZpZzpyLGFuaW1hdGlvbjp0fSl9cmV0dXJuIGV9LF9zaG91bGRDb21wbGV0ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9ITAsbj0wO248dC5sZW5ndGg7bisrKWlmKCJmaW5pc2hlZCIhPXRbbl0uYW5pbWF0aW9uLnBsYXlTdGF0ZSl7ZT0hMTticmVha31yZXR1cm4gZX0sX2NvbXBsZXRlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0ubmVvbkFuaW1hdGlvbi5jb21wbGV0ZSh0W2VdLmNvbmZpZyk7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmFuaW1hdGlvbi5jYW5jZWwoKX0scGxheUFuaW1hdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZ2V0QW5pbWF0aW9uQ29uZmlnKHQpO2lmKG4pe3RoaXMuX2FjdGl2ZT10aGlzLl9hY3RpdmV8fHt9LHRoaXMuX2FjdGl2ZVt0XSYmKHRoaXMuX2NvbXBsZXRlKHRoaXMuX2FjdGl2ZVt0XSksZGVsZXRlIHRoaXMuX2FjdGl2ZVt0XSk7dmFyIGk9dGhpcy5fY29uZmlndXJlQW5pbWF0aW9ucyhuKTtpZigwIT1pLmxlbmd0aCl7dGhpcy5fYWN0aXZlW3RdPWk7Zm9yKHZhciByPTA7cjxpLmxlbmd0aDtyKyspaVtyXS5hbmltYXRpb24ub25maW5pc2g9ZnVuY3Rpb24oKXt0aGlzLl9zaG91bGRDb21wbGV0ZShpKSYmKHRoaXMuX2NvbXBsZXRlKGkpLGRlbGV0ZSB0aGlzLl9hY3RpdmVbdF0sdGhpcy5maXJlKCJuZW9uLWFuaW1hdGlvbi1maW5pc2giLGUse2J1YmJsZXM6ITF9KSl9LmJpbmQodGhpcyl9ZWxzZSB0aGlzLmZpcmUoIm5lb24tYW5pbWF0aW9uLWZpbmlzaCIsZSx7YnViYmxlczohMX0pfX0sY2FuY2VsQW5pbWF0aW9uOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuX2FjdGl2ZSl7dmFyIGU9dGhpcy5fYWN0aXZlW3RdO2Zvcih2YXIgbiBpbiBlKWVbbl0uYW5pbWF0aW9uLmNhbmNlbCgpfXRoaXMuX2FjdGl2ZT17fX19XTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlIGluY2x1ZGU9InBhcGVyLWRpYWxvZy1zaGFyZWQtc3R5bGVzIj48L3N0eWxlPgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJwYXBlci1kaWFsb2ciLGJlaGF2aW9yczpbUGEsUmFdLGxpc3RlbmVyczp7Im5lb24tYW5pbWF0aW9uLWZpbmlzaCI6Il9vbk5lb25BbmltYXRpb25GaW5pc2gifSxfcmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxBbmltYXRpb24oKSx0aGlzLnBsYXlBbmltYXRpb24oImVudHJ5Iil9LF9yZW5kZXJDbG9zZWQ6ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbEFuaW1hdGlvbigpLHRoaXMucGxheUFuaW1hdGlvbigiZXhpdCIpfSxfb25OZW9uQW5pbWF0aW9uRmluaXNoOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ/dGhpcy5fZmluaXNoUmVuZGVyT3BlbmVkKCk6dGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBPYT1Scih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBjbGlwOiByZWN0KDBweCwwcHgsMHB4LDBweCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGFyaWEtbGl2ZSQ9IltbbW9kZV1dIj5bW190ZXh0XV08L2Rpdj4KYCxpczoiaXJvbi1hMTF5LWFubm91bmNlciIscHJvcGVydGllczp7bW9kZTp7dHlwZTpTdHJpbmcsdmFsdWU6InBvbGl0ZSJ9LHRpbWVvdXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjE1MH0sX3RleHQ6e3R5cGU6U3RyaW5nLHZhbHVlOiIifX0sY3JlYXRlZDpmdW5jdGlvbigpe09hLmluc3RhbmNlfHwoT2EuaW5zdGFuY2U9dGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiaXJvbi1hbm5vdW5jZSIsdGhpcy5fb25Jcm9uQW5ub3VuY2UuYmluZCh0aGlzKSl9LGFubm91bmNlOmZ1bmN0aW9uKHQpe3RoaXMuX3RleHQ9IiIsdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLl90ZXh0PXR9KSx0aGlzLnRpbWVvdXQpfSxfb25Jcm9uQW5ub3VuY2U6ZnVuY3Rpb24odCl7dC5kZXRhaWwmJnQuZGV0YWlsLnRleHQmJnRoaXMuYW5ub3VuY2UodC5kZXRhaWwudGV4dCl9fSk7T2EuaW5zdGFuY2U9bnVsbCxPYS5yZXF1ZXN0QXZhaWxhYmlsaXR5PWZ1bmN0aW9uKCl7T2EuaW5zdGFuY2V8fChPYS5pbnN0YW5jZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpcm9uLWExMXktYW5ub3VuY2VyIikpLGRvY3VtZW50LmJvZHk/ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChPYS5pbnN0YW5jZSk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChPYS5pbnN0YW5jZSl9KSl9LAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxzbG90IGlkPSJjb250ZW50Ij48L3Nsb3Q+CmAsaXM6Imlyb24taW5wdXQiLGJlaGF2aW9yczpbYWFdLHByb3BlcnRpZXM6e2JpbmRWYWx1ZTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LHZhbHVlOnt0eXBlOlN0cmluZyxjb21wdXRlZDoiX2NvbXB1dGVWYWx1ZShiaW5kVmFsdWUpIn0sYWxsb3dlZFBhdHRlcm46e3R5cGU6U3RyaW5nfSxhdXRvVmFsaWRhdGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX2lucHV0RWxlbWVudDpPYmplY3R9LG9ic2VydmVyczpbIl9iaW5kVmFsdWVDaGFuZ2VkKGJpbmRWYWx1ZSwgX2lucHV0RWxlbWVudCkiXSxsaXN0ZW5lcnM6e2lucHV0OiJfb25JbnB1dCIsa2V5cHJlc3M6Il9vbktleXByZXNzIn0sY3JlYXRlZDpmdW5jdGlvbigpe09hLnJlcXVlc3RBdmFpbGFiaWxpdHkoKSx0aGlzLl9wcmV2aW91c1ZhbGlkSW5wdXQ9IiIsdGhpcy5fcGF0dGVybkFscmVhZHlDaGVja2VkPSExfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyPVlpKHRoaXMpLm9ic2VydmVOb2RlcyhmdW5jdGlvbih0KXt0aGlzLl9pbml0U2xvdHRlZElucHV0KCl9LmJpbmQodGhpcykpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyJiYoWWkodGhpcykudW5vYnNlcnZlTm9kZXModGhpcy5fb2JzZXJ2ZXIpLHRoaXMuX29ic2VydmVyPW51bGwpfSxnZXQgaW5wdXRFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2lucHV0RWxlbWVudH0sX2luaXRTbG90dGVkSW5wdXQ6ZnVuY3Rpb24oKXt0aGlzLl9pbnB1dEVsZW1lbnQ9dGhpcy5nZXRFZmZlY3RpdmVDaGlsZHJlbigpWzBdLHRoaXMuaW5wdXRFbGVtZW50JiZ0aGlzLmlucHV0RWxlbWVudC52YWx1ZSYmKHRoaXMuYmluZFZhbHVlPXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKSx0aGlzLmZpcmUoImlyb24taW5wdXQtcmVhZHkiKX0sZ2V0IF9wYXR0ZXJuUmVnRXhwKCl7dmFyIHQ7aWYodGhpcy5hbGxvd2VkUGF0dGVybil0PW5ldyBSZWdFeHAodGhpcy5hbGxvd2VkUGF0dGVybik7ZWxzZSBzd2l0Y2godGhpcy5pbnB1dEVsZW1lbnQudHlwZSl7Y2FzZSJudW1iZXIiOnQ9L1swLTkuLGUtXS99cmV0dXJuIHR9LF9iaW5kVmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7ZSYmKHZvaWQgMD09PXQ/ZS52YWx1ZT1udWxsOnQhPT1lLnZhbHVlJiYodGhpcy5pbnB1dEVsZW1lbnQudmFsdWU9dCksdGhpcy5hdXRvVmFsaWRhdGUmJnRoaXMudmFsaWRhdGUoKSx0aGlzLmZpcmUoImJpbmQtdmFsdWUtY2hhbmdlZCIse3ZhbHVlOnR9KSl9LF9vbklucHV0OmZ1bmN0aW9uKCl7dGhpcy5hbGxvd2VkUGF0dGVybiYmIXRoaXMuX3BhdHRlcm5BbHJlYWR5Q2hlY2tlZCYmKHRoaXMuX2NoZWNrUGF0dGVyblZhbGlkaXR5KCl8fCh0aGlzLl9hbm5vdW5jZUludmFsaWRDaGFyYWN0ZXIoIkludmFsaWQgc3RyaW5nIG9mIGNoYXJhY3RlcnMgbm90IGVudGVyZWQuIiksdGhpcy5pbnB1dEVsZW1lbnQudmFsdWU9dGhpcy5fcHJldmlvdXNWYWxpZElucHV0KSksdGhpcy5iaW5kVmFsdWU9dGhpcy5fcHJldmlvdXNWYWxpZElucHV0PXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLHRoaXMuX3BhdHRlcm5BbHJlYWR5Q2hlY2tlZD0hMX0sX2lzUHJpbnRhYmxlOmZ1bmN0aW9uKHQpe3JldHVybiEoOD09dC5rZXlDb2RlfHw5PT10LmtleUNvZGV8fDEzPT10LmtleUNvZGV8fDI3PT10LmtleUNvZGV8fDA9PXQuY2hhckNvZGUmJigxOT09dC5rZXlDb2RlfHwyMD09dC5rZXlDb2RlfHw0NT09dC5rZXlDb2RlfHw0Nj09dC5rZXlDb2RlfHwxNDQ9PXQua2V5Q29kZXx8MTQ1PT10LmtleUNvZGV8fHQua2V5Q29kZT4zMiYmdC5rZXlDb2RlPDQxfHx0LmtleUNvZGU+MTExJiZ0LmtleUNvZGU8MTI0KSl9LF9vbktleXByZXNzOmZ1bmN0aW9uKHQpe2lmKHRoaXMuYWxsb3dlZFBhdHRlcm58fCJudW1iZXIiPT09dGhpcy5pbnB1dEVsZW1lbnQudHlwZSl7dmFyIGU9dGhpcy5fcGF0dGVyblJlZ0V4cDtpZihlJiYhKHQubWV0YUtleXx8dC5jdHJsS2V5fHx0LmFsdEtleSkpe3RoaXMuX3BhdHRlcm5BbHJlYWR5Q2hlY2tlZD0hMDt2YXIgbj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQuY2hhckNvZGUpO3RoaXMuX2lzUHJpbnRhYmxlKHQpJiYhZS50ZXN0KG4pJiYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2Fubm91bmNlSW52YWxpZENoYXJhY3RlcigiSW52YWxpZCBjaGFyYWN0ZXIgIituKyIgbm90IGVudGVyZWQuIikpfX19LF9jaGVja1BhdHRlcm5WYWxpZGl0eTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3BhdHRlcm5SZWdFeHA7aWYoIXQpcmV0dXJuITA7Zm9yKHZhciBlPTA7ZTx0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7ZSsrKWlmKCF0LnRlc3QodGhpcy5pbnB1dEVsZW1lbnQudmFsdWVbZV0pKXJldHVybiExO3JldHVybiEwfSx2YWxpZGF0ZTpmdW5jdGlvbigpe2lmKCF0aGlzLmlucHV0RWxlbWVudClyZXR1cm4gdGhpcy5pbnZhbGlkPSExLCEwO3ZhciB0PXRoaXMuaW5wdXRFbGVtZW50LmNoZWNrVmFsaWRpdHkoKTtyZXR1cm4gdCYmKHRoaXMucmVxdWlyZWQmJiIiPT09dGhpcy5iaW5kVmFsdWU/dD0hMTp0aGlzLmhhc1ZhbGlkYXRvcigpJiYodD1hYS52YWxpZGF0ZS5jYWxsKHRoaXMsdGhpcy5iaW5kVmFsdWUpKSksdGhpcy5pbnZhbGlkPSF0LHRoaXMuZmlyZSgiaXJvbi1pbnB1dC12YWxpZGF0ZSIpLHR9LF9hbm5vdW5jZUludmFsaWRDaGFyYWN0ZXI6ZnVuY3Rpb24odCl7dGhpcy5maXJlKCJpcm9uLWFubm91bmNlIix7dGV4dDp0fSl9LF9jb21wdXRlVmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCB6YT17YXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLmZpcmUoImFkZG9uLWF0dGFjaGVkIil9LHVwZGF0ZTpmdW5jdGlvbih0KXt9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBmbG9hdDogcmlnaHQ7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY2FwdGlvbjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jaGFyLWNvdW50ZXI7CiAgICAgIH0KCiAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICA6aG9zdCg6ZGlyKHJ0bCkpIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c3Bhbj5bW19jaGFyQ291bnRlclN0cl1dPC9zcGFuPgpgLGlzOiJwYXBlci1pbnB1dC1jaGFyLWNvdW50ZXIiLGJlaGF2aW9yczpbemFdLHByb3BlcnRpZXM6e19jaGFyQ291bnRlclN0cjp7dHlwZTpTdHJpbmcsdmFsdWU6IjAifX0sdXBkYXRlOmZ1bmN0aW9uKHQpe2lmKHQuaW5wdXRFbGVtZW50KXt0LnZhbHVlPXQudmFsdWV8fCIiO3ZhciBlPXQudmFsdWUudG9TdHJpbmcoKS5sZW5ndGgudG9TdHJpbmcoKTt0LmlucHV0RWxlbWVudC5oYXNBdHRyaWJ1dGUoIm1heGxlbmd0aCIpJiYoZSs9Ii8iK3QuaW5wdXRFbGVtZW50LmdldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIikpLHRoaXMuX2NoYXJDb3VudGVyU3RyPWV9fX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgRGE9X2VgCjxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgaHRtbCB7CiAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLXNoYXJlZC1pbnB1dC1zdHlsZTogewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogdG8gbWFrZSBhIHN0YWNraW5nIGNvbnRleHQgKi8KICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LWFsaWduLCBib3R0b20pOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CiAgICAgIH07CiAgICB9CiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+CmA7RGEuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7IiksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChEYS5jb250ZW50KSxScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyOwogICAgICB9CgogICAgICA6aG9zdChbaW5saW5lXSkgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDAuMzM7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1kaXNhYmxlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIFtoaWRkZW5dIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbG9hdGVkLWxhYmVsLXBsYWNlaG9sZGVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNhcHRpb247CiAgICAgIH0KCiAgICAgIC51bmRlcmxpbmUgewogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmZvY3VzZWQtbGluZSB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZpdDsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWZvY3VzLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CgogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAsMSwxKTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMCwxLDEpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItdW5kZXJsaW5lLWZvY3VzOwogICAgICB9CgogICAgICAudW5kZXJsaW5lLmlzLWhpZ2hsaWdodGVkIC5mb2N1c2VkLWxpbmUgewogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOwogICAgICAgIHRyYW5zZm9ybTogbm9uZTsKICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuMjVzOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1czsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdHJhbnNpdGlvbi1lYXNpbmc7CiAgICAgIH0KCiAgICAgIC51bmRlcmxpbmUuaXMtaW52YWxpZCAuZm9jdXNlZC1saW5lIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnZhbGlkLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOwogICAgICAgIHRyYW5zZm9ybTogbm9uZTsKICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuMjVzOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1czsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdHJhbnNpdGlvbi1lYXNpbmc7CiAgICAgIH0KCiAgICAgIC51bmZvY3VzZWQtbGluZSB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZpdDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcikpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci11bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC51bmZvY3VzZWQtbGluZSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZDsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1jb2xvciwgdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpKTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItdW5kZXJsaW5lLWRpc2FibGVkOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleC1hdXRvOwogICAgICAgIEBhcHBseSAtLWxheW91dC1yZWxhdGl2ZTsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChsYWJlbCksCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZCgucGFwZXItaW5wdXQtbGFiZWwpIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZm9udDogaW5oZXJpdDsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcikpOwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXMsIHdpZHRoIDAuMjVzOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cywgd2lkdGggMC4yNXM7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDsKICAgICAgICAvKiBGaXggZm9yIHNhZmFyaSBub3QgZm9jdXNpbmcgMC1oZWlnaHQgZGF0ZS90aW1lIGlucHV0cyB3aXRoIC13ZWJraXQtYXBwZXJhbmNlOiBub25lOyAqLwogICAgICAgIG1pbi1oZWlnaHQ6IDFweDsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tbm93cmFwOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtc3ViaGVhZDsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWw7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdHJhbnNpdGlvbi1lYXNpbmc7CiAgICAgIH0KCgogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQobGFiZWwpOmJlZm9yZSwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1sYWJlbCk6YmVmb3JlIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWwtYmVmb3JlOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQobGFiZWwpOmFmdGVyLAogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKTphZnRlciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWxhYmVsLWFmdGVyOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1mbG9hdGluZyA6OnNsb3R0ZWQobGFiZWwpLAogICAgICAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1mbG9hdGluZyA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKSB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTc1JSkgc2NhbGUoMC43NSk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC03NSUpIHNjYWxlKDAuNzUpOwoKICAgICAgICAvKiBTaW5jZSB3ZSBzY2FsZSB0byA3NS8xMDAgb2YgdGhlIHNpemUsIHdlIGFjdHVhbGx5IGhhdmUgMTAwLzc1IG9mIHRoZQogICAgICAgIG9yaWdpbmFsIHNwYWNlIG5vdyBhdmFpbGFibGUgKi8KICAgICAgICB3aWR0aDogMTMzJTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWxhYmVsLWZsb2F0aW5nOwogICAgICB9CgogICAgICA6aG9zdCg6ZGlyKHJ0bCkpIC5pbnB1dC1jb250ZW50LmxhYmVsLWlzLWZsb2F0aW5nIDo6c2xvdHRlZChsYWJlbCksCiAgICAgIDpob3N0KDpkaXIocnRsKSkgLmlucHV0LWNvbnRlbnQubGFiZWwtaXMtZmxvYXRpbmcgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1sYWJlbCkgewogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IGF1dG87CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1oaWdobGlnaHRlZCA6OnNsb3R0ZWQobGFiZWwpLAogICAgICAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1oaWdobGlnaHRlZCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWwtZm9jdXM7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKGxhYmVsKSwKICAgICAgLmlucHV0LWNvbnRlbnQuaXMtaW52YWxpZCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnZhbGlkLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1oaWRkZW4gOjpzbG90dGVkKGxhYmVsKSwKICAgICAgLmlucHV0LWNvbnRlbnQubGFiZWwtaXMtaGlkZGVuIDo6c2xvdHRlZCgucGFwZXItaW5wdXQtbGFiZWwpIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChpbnB1dCksCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChpcm9uLWlucHV0KSwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKHRleHRhcmVhKSwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGlyb24tYXV0b2dyb3ctdGV4dGFyZWEpLAogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWlucHV0KSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLXNoYXJlZC1pbnB1dC1zdHlsZTsKICAgICAgICAvKiBUaGUgYXBwbHkgc2hpbSBkb2Vzbid0IGFwcGx5IHRoZSBuZXN0ZWQgY29sb3IgY3VzdG9tIHByb3BlcnR5LAogICAgICAgICAgc28gd2UgaGF2ZSB0byByZS1hcHBseSBpdCBoZXJlLiAqLwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGlucHV0KTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGlucHV0KTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LXdlYmtpdC1zcGlubmVyOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudC5mb2N1c2VkIDo6c2xvdHRlZChpbnB1dCksCiAgICAgIC5pbnB1dC1jb250ZW50LmZvY3VzZWQgOjpzbG90dGVkKGlyb24taW5wdXQpLAogICAgICAuaW5wdXQtY29udGVudC5mb2N1c2VkIDo6c2xvdHRlZCh0ZXh0YXJlYSksCiAgICAgIC5pbnB1dC1jb250ZW50LmZvY3VzZWQgOjpzbG90dGVkKGlyb24tYXV0b2dyb3ctdGV4dGFyZWEpLAogICAgICAuaW5wdXQtY29udGVudC5mb2N1c2VkIDo6c2xvdHRlZCgucGFwZXItaW5wdXQtaW5wdXQpIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtZm9jdXM7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKGlucHV0KSwKICAgICAgLmlucHV0LWNvbnRlbnQuaXMtaW52YWxpZCA6OnNsb3R0ZWQoaXJvbi1pbnB1dCksCiAgICAgIC5pbnB1dC1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKHRleHRhcmVhKSwKICAgICAgLmlucHV0LWNvbnRlbnQuaXMtaW52YWxpZCA6OnNsb3R0ZWQoaXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYSksCiAgICAgIC5pbnB1dC1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1pbnB1dCkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dC1pbnZhbGlkOwogICAgICB9CgogICAgICAucHJlZml4IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtc3ViaGVhZDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleC1ub25lOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LXByZWZpeDsKICAgICAgfQoKICAgICAgLnN1ZmZpeCA6OnNsb3R0ZWQoKikgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtbm9uZTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtc3VmZml4OwogICAgICB9CgogICAgICAvKiBGaXJlZm94IHNldHMgYSBtaW4td2lkdGggb24gdGhlIGlucHV0LCB3aGljaCBjYW4gY2F1c2UgbGF5b3V0IGlzc3VlcyAqLwogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoaW5wdXQpIHsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZCh0ZXh0YXJlYSkgewogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLmFkZC1vbi1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5hZGQtb24tY29udGVudC5pcy1pbnZhbGlkIDo6c2xvdHRlZCgqKSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnZhbGlkLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwogICAgICB9CgogICAgICAuYWRkLW9uLWNvbnRlbnQuaXMtaGlnaGxpZ2h0ZWQgOjpzbG90dGVkKCopIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWZvY3VzLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZmxvYXRlZC1sYWJlbC1wbGFjZWhvbGRlciIgYXJpYS1oaWRkZW49InRydWUiIGhpZGRlbj0iW1tub0xhYmVsRmxvYXRdXSI+Jm5ic3A7PC9kaXY+CgogICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmVmaXgiPjxzbG90IG5hbWU9InByZWZpeCI+PC9zbG90Pjwvc3Bhbj4KCiAgICAgIDxkaXYgY2xhc3MkPSJbW19jb21wdXRlSW5wdXRDb250ZW50Q2xhc3Mobm9MYWJlbEZsb2F0LGFsd2F5c0Zsb2F0TGFiZWwsZm9jdXNlZCxpbnZhbGlkLF9pbnB1dEhhc0NvbnRlbnQpXV0iIGlkPSJsYWJlbEFuZElucHV0Q29udGFpbmVyIj4KICAgICAgICA8c2xvdCBuYW1lPSJsYWJlbCI+PC9zbG90PgogICAgICAgIDxzbG90IG5hbWU9ImlucHV0Ij48L3Nsb3Q+CiAgICAgIDwvZGl2PgoKICAgICAgPHNwYW4gY2xhc3M9InN1ZmZpeCI+PHNsb3QgbmFtZT0ic3VmZml4Ij48L3Nsb3Q+PC9zcGFuPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcyQ9IltbX2NvbXB1dGVVbmRlcmxpbmVDbGFzcyhmb2N1c2VkLGludmFsaWQpXV0iPgogICAgICA8ZGl2IGNsYXNzPSJ1bmZvY3VzZWQtbGluZSI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZvY3VzZWQtbGluZSI+PC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzJD0iW1tfY29tcHV0ZUFkZE9uQ29udGVudENsYXNzKGZvY3VzZWQsaW52YWxpZCldXSI+CiAgICAgIDxzbG90IG5hbWU9ImFkZC1vbiI+PC9zbG90PgogICAgPC9kaXY+CmAsaXM6InBhcGVyLWlucHV0LWNvbnRhaW5lciIscHJvcGVydGllczp7bm9MYWJlbEZsb2F0Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGFsd2F5c0Zsb2F0TGFiZWw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYXR0ckZvclZhbHVlOnt0eXBlOlN0cmluZyx2YWx1ZToiYmluZC12YWx1ZSJ9LGF1dG9WYWxpZGF0ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxpbnZhbGlkOntvYnNlcnZlcjoiX2ludmFsaWRDaGFuZ2VkIix0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGZvY3VzZWQ6e3JlYWRPbmx5OiEwLHR5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITB9LF9hZGRvbnM6e3R5cGU6QXJyYXl9LF9pbnB1dEhhc0NvbnRlbnQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX2lucHV0U2VsZWN0b3I6e3R5cGU6U3RyaW5nLHZhbHVlOiJpbnB1dCxpcm9uLWlucHV0LHRleHRhcmVhLC5wYXBlci1pbnB1dC1pbnB1dCJ9LF9ib3VuZE9uRm9jdXM6e3R5cGU6RnVuY3Rpb24sdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25Gb2N1cy5iaW5kKHRoaXMpfX0sX2JvdW5kT25CbHVyOnt0eXBlOkZ1bmN0aW9uLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uQmx1ci5iaW5kKHRoaXMpfX0sX2JvdW5kT25JbnB1dDp7dHlwZTpGdW5jdGlvbix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbklucHV0LmJpbmQodGhpcyl9fSxfYm91bmRWYWx1ZUNoYW5nZWQ6e3R5cGU6RnVuY3Rpb24sdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25WYWx1ZUNoYW5nZWQuYmluZCh0aGlzKX19fSxsaXN0ZW5lcnM6eyJhZGRvbi1hdHRhY2hlZCI6Il9vbkFkZG9uQXR0YWNoZWQiLCJpcm9uLWlucHV0LXZhbGlkYXRlIjoiX29uSXJvbklucHV0VmFsaWRhdGUifSxnZXQgX3ZhbHVlQ2hhbmdlZEV2ZW50KCl7cmV0dXJuIHRoaXMuYXR0ckZvclZhbHVlKyItY2hhbmdlZCJ9LGdldCBfcHJvcGVydHlGb3JWYWx1ZSgpe3JldHVybiBzdCh0aGlzLmF0dHJGb3JWYWx1ZSl9LGdldCBfaW5wdXRFbGVtZW50KCl7cmV0dXJuIFlpKHRoaXMpLnF1ZXJ5U2VsZWN0b3IodGhpcy5faW5wdXRTZWxlY3Rvcil9LGdldCBfaW5wdXRFbGVtZW50VmFsdWUoKXtyZXR1cm4gdGhpcy5faW5wdXRFbGVtZW50W3RoaXMuX3Byb3BlcnR5Rm9yVmFsdWVdfHx0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWV9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5fX2lzRmlyc3RWYWx1ZVVwZGF0ZT0hMCx0aGlzLl9hZGRvbnN8fCh0aGlzLl9hZGRvbnM9W10pLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2JvdW5kT25Gb2N1cywhMCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9ib3VuZE9uQmx1ciwhMCl9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5hdHRyRm9yVmFsdWU/dGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5fdmFsdWVDaGFuZ2VkRXZlbnQsdGhpcy5fYm91bmRWYWx1ZUNoYW5nZWQpOnRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHRoaXMuX29uSW5wdXQpLHRoaXMuX2lucHV0RWxlbWVudFZhbHVlJiYiIiE9dGhpcy5faW5wdXRFbGVtZW50VmFsdWU/dGhpcy5faGFuZGxlVmFsdWVBbmRBdXRvVmFsaWRhdGUodGhpcy5faW5wdXRFbGVtZW50KTp0aGlzLl9oYW5kbGVWYWx1ZSh0aGlzLl9pbnB1dEVsZW1lbnQpfSxfb25BZGRvbkF0dGFjaGVkOmZ1bmN0aW9uKHQpe3RoaXMuX2FkZG9uc3x8KHRoaXMuX2FkZG9ucz1bXSk7dmFyIGU9dC50YXJnZXQ7LTE9PT10aGlzLl9hZGRvbnMuaW5kZXhPZihlKSYmKHRoaXMuX2FkZG9ucy5wdXNoKGUpLHRoaXMuaXNBdHRhY2hlZCYmdGhpcy5faGFuZGxlVmFsdWUodGhpcy5faW5wdXRFbGVtZW50KSl9LF9vbkZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5fc2V0Rm9jdXNlZCghMCl9LF9vbkJsdXI6ZnVuY3Rpb24oKXt0aGlzLl9zZXRGb2N1c2VkKCExKSx0aGlzLl9oYW5kbGVWYWx1ZUFuZEF1dG9WYWxpZGF0ZSh0aGlzLl9pbnB1dEVsZW1lbnQpfSxfb25JbnB1dDpmdW5jdGlvbih0KXt0aGlzLl9oYW5kbGVWYWx1ZUFuZEF1dG9WYWxpZGF0ZSh0LnRhcmdldCl9LF9vblZhbHVlQ2hhbmdlZDpmdW5jdGlvbih0KXt2YXIgZT10LnRhcmdldDt0aGlzLl9faXNGaXJzdFZhbHVlVXBkYXRlJiYodGhpcy5fX2lzRmlyc3RWYWx1ZVVwZGF0ZT0hMSx2b2lkIDA9PT1lLnZhbHVlfHwiIj09PWUudmFsdWUpfHx0aGlzLl9oYW5kbGVWYWx1ZUFuZEF1dG9WYWxpZGF0ZSh0LnRhcmdldCl9LF9oYW5kbGVWYWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9pbnB1dEVsZW1lbnRWYWx1ZTt0aGlzLl9pbnB1dEhhc0NvbnRlbnQ9ISghZSYmMCE9PWUmJigibnVtYmVyIiE9PXQudHlwZXx8dC5jaGVja1ZhbGlkaXR5KCkpKSx0aGlzLnVwZGF0ZUFkZG9ucyh7aW5wdXRFbGVtZW50OnQsdmFsdWU6ZSxpbnZhbGlkOnRoaXMuaW52YWxpZH0pfSxfaGFuZGxlVmFsdWVBbmRBdXRvVmFsaWRhdGU6ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5hdXRvVmFsaWRhdGUmJnQmJihlPXQudmFsaWRhdGU/dC52YWxpZGF0ZSh0aGlzLl9pbnB1dEVsZW1lbnRWYWx1ZSk6dC5jaGVja1ZhbGlkaXR5KCksdGhpcy5pbnZhbGlkPSFlKSx0aGlzLl9oYW5kbGVWYWx1ZSh0KX0sX29uSXJvbklucHV0VmFsaWRhdGU6ZnVuY3Rpb24odCl7dGhpcy5pbnZhbGlkPXRoaXMuX2lucHV0RWxlbWVudC5pbnZhbGlkfSxfaW52YWxpZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLl9hZGRvbnMmJnRoaXMudXBkYXRlQWRkb25zKHtpbnZhbGlkOnRoaXMuaW52YWxpZH0pfSx1cGRhdGVBZGRvbnM6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MDtlPXRoaXMuX2FkZG9uc1tuXTtuKyspZS51cGRhdGUodCl9LF9jb21wdXRlSW5wdXRDb250ZW50Q2xhc3M6ZnVuY3Rpb24odCxlLG4saSxyKXt2YXIgbz0iaW5wdXQtY29udGVudCI7aWYodClyJiYobys9IiBsYWJlbC1pcy1oaWRkZW4iKSxpJiYobys9IiBpcy1pbnZhbGlkIik7ZWxzZXt2YXIgYT10aGlzLnF1ZXJ5U2VsZWN0b3IoImxhYmVsIik7ZXx8cj8obys9IiBsYWJlbC1pcy1mbG9hdGluZyIsdGhpcy4kLmxhYmVsQW5kSW5wdXRDb250YWluZXIuc3R5bGUucG9zaXRpb249InN0YXRpYyIsaT9vKz0iIGlzLWludmFsaWQiOm4mJihvKz0iIGxhYmVsLWlzLWhpZ2hsaWdodGVkIikpOihhJiYodGhpcy4kLmxhYmVsQW5kSW5wdXRDb250YWluZXIuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIiksaSYmKG8rPSIgaXMtaW52YWxpZCIpKX1yZXR1cm4gbiYmKG8rPSIgZm9jdXNlZCIpLG99LF9jb21wdXRlVW5kZXJsaW5lQ2xhc3M6ZnVuY3Rpb24odCxlKXt2YXIgbj0idW5kZXJsaW5lIjtyZXR1cm4gZT9uKz0iIGlzLWludmFsaWQiOnQmJihuKz0iIGlzLWhpZ2hsaWdodGVkIiksbn0sX2NvbXB1dGVBZGRPbkNvbnRlbnRDbGFzczpmdW5jdGlvbih0LGUpe3ZhciBuPSJhZGQtb24tY29udGVudCI7cmV0dXJuIGU/bis9IiBpcy1pbnZhbGlkIjp0JiYobis9IiBpcy1oaWdobGlnaHRlZCIpLG59fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKCiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnZhbGlkLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNhcHRpb247CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtZXJyb3I7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6MDsKICAgICAgICByaWdodDowOwogICAgICB9CgogICAgICA6aG9zdChbaW52YWxpZF0pIHsKICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogICAgICB9CgogICAgICAjYTExeVdyYXBwZXIgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgOmhvc3QoW2ludmFsaWRdKSAjYTExeVdyYXBwZXIgewogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPCEtLQogICAgSWYgdGhlIHBhcGVyLWlucHV0LWVycm9yIGVsZW1lbnQgaXMgZGlyZWN0bHkgcmVmZXJlbmNlZCBieSBhbgogICAgXGBhcmlhLWRlc2NyaWJlZGJ5XGAgYXR0cmlidXRlLCBzdWNoIGFzIHdoZW4gdXNlZCBhcyBhIHBhcGVyLWlucHV0IGFkZC1vbiwKICAgIHRoZW4gYXBwbHlpbmcgXGB2aXNpYmlsaXR5OiBoaWRkZW47XGAgdG8gdGhlIHBhcGVyLWlucHV0LWVycm9yIGVsZW1lbnQgaXRzZWxmCiAgICBkb2VzIG5vdCBoaWRlIHRoZSBlcnJvci4KCiAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlOgogICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL2FjY25hbWUtMS4xLyNtYXBwaW5nX2FkZGl0aW9uYWxfbmRfZGVzY3JpcHRpb24KICAgIC0tPgogICAgPGRpdiBpZD0iYTExeVdyYXBwZXIiPgogICAgICA8c2xvdD48L3Nsb3Q+CiAgICA8L2Rpdj4KYCxpczoicGFwZXItaW5wdXQtZXJyb3IiLGJlaGF2aW9yczpbemFdLHByb3BlcnRpZXM6e2ludmFsaWQ6e3JlYWRPbmx5OiEwLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx0eXBlOkJvb2xlYW59fSx1cGRhdGU6ZnVuY3Rpb24odCl7dGhpcy5fc2V0SW52YWxpZCh0LmludmFsaWQpfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgQmE9e05leHRMYWJlbElEOjEsTmV4dEFkZG9uSUQ6MSxOZXh0SW5wdXRJRDoxfSxIYT17cHJvcGVydGllczp7bGFiZWw6e3R5cGU6U3RyaW5nfSx2YWx1ZTp7bm90aWZ5OiEwLHR5cGU6U3RyaW5nfSxkaXNhYmxlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxpbnZhbGlkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsbm90aWZ5OiEwfSxhbGxvd2VkUGF0dGVybjp7dHlwZTpTdHJpbmd9LHR5cGU6e3R5cGU6U3RyaW5nfSxsaXN0Ont0eXBlOlN0cmluZ30scGF0dGVybjp7dHlwZTpTdHJpbmd9LHJlcXVpcmVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGVycm9yTWVzc2FnZTp7dHlwZTpTdHJpbmd9LGNoYXJDb3VudGVyOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LG5vTGFiZWxGbG9hdDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxhbHdheXNGbG9hdExhYmVsOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGF1dG9WYWxpZGF0ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSx2YWxpZGF0b3I6e3R5cGU6U3RyaW5nfSxhdXRvY29tcGxldGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJvZmYifSxhdXRvZm9jdXM6e3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX2F1dG9mb2N1c0NoYW5nZWQifSxpbnB1dG1vZGU6e3R5cGU6U3RyaW5nfSxtaW5sZW5ndGg6e3R5cGU6TnVtYmVyfSxtYXhsZW5ndGg6e3R5cGU6TnVtYmVyfSxtaW46e3R5cGU6U3RyaW5nfSxtYXg6e3R5cGU6U3RyaW5nfSxzdGVwOnt0eXBlOlN0cmluZ30sbmFtZTp7dHlwZTpTdHJpbmd9LHBsYWNlaG9sZGVyOnt0eXBlOlN0cmluZyx2YWx1ZToiIn0scmVhZG9ubHk6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2l6ZTp7dHlwZTpOdW1iZXJ9LGF1dG9jYXBpdGFsaXplOnt0eXBlOlN0cmluZyx2YWx1ZToibm9uZSJ9LGF1dG9jb3JyZWN0Ont0eXBlOlN0cmluZyx2YWx1ZToib2ZmIn0sYXV0b3NhdmU6e3R5cGU6U3RyaW5nfSxyZXN1bHRzOnt0eXBlOk51bWJlcn0sYWNjZXB0Ont0eXBlOlN0cmluZ30sbXVsdGlwbGU6e3R5cGU6Qm9vbGVhbn0sX2FyaWFEZXNjcmliZWRCeTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LF9hcmlhTGFiZWxsZWRCeTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LF9pbnB1dElkOnt0eXBlOlN0cmluZyx2YWx1ZToiIn19LGxpc3RlbmVyczp7ImFkZG9uLWF0dGFjaGVkIjoiX29uQWRkb25BdHRhY2hlZCJ9LGtleUJpbmRpbmdzOnsic2hpZnQrdGFiOmtleWRvd24iOiJfb25TaGlmdFRhYkRvd24ifSxob3N0QXR0cmlidXRlczp7dGFiaW5kZXg6MH0sZ2V0IGlucHV0RWxlbWVudCgpe3JldHVybiB0aGlzLiR8fCh0aGlzLiQ9e30pLHRoaXMuJC5pbnB1dHx8KHRoaXMuX2dlbmVyYXRlSW5wdXRJZCgpLHRoaXMuJC5pbnB1dD10aGlzLiQkKCIjIit0aGlzLl9pbnB1dElkKSksdGhpcy4kLmlucHV0fSxnZXQgX2ZvY3VzYWJsZUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnR9LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLl90eXBlc1RoYXRIYXZlVGV4dD1bImRhdGUiLCJkYXRldGltZSIsImRhdGV0aW1lLWxvY2FsIiwibW9udGgiLCJ0aW1lIiwid2VlayIsImZpbGUiXX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVBcmlhTGFiZWxsZWRCeSgpLCF5ZSYmdGhpcy5pbnB1dEVsZW1lbnQmJi0xIT09dGhpcy5fdHlwZXNUaGF0SGF2ZVRleHQuaW5kZXhPZih0aGlzLmlucHV0RWxlbWVudC50eXBlKSYmKHRoaXMuYWx3YXlzRmxvYXRMYWJlbD0hMCl9LF9hcHBlbmRTdHJpbmdXaXRoU3BhY2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD90KyIgIitlOmV9LF9vbkFkZG9uQXR0YWNoZWQ6ZnVuY3Rpb24odCl7dmFyIGU9WWkodCkucm9vdFRhcmdldDtpZihlLmlkKXRoaXMuX2FyaWFEZXNjcmliZWRCeT10aGlzLl9hcHBlbmRTdHJpbmdXaXRoU3BhY2UodGhpcy5fYXJpYURlc2NyaWJlZEJ5LGUuaWQpO2Vsc2V7dmFyIG49InBhcGVyLWlucHV0LWFkZC1vbi0iK0JhLk5leHRBZGRvbklEKys7ZS5pZD1uLHRoaXMuX2FyaWFEZXNjcmliZWRCeT10aGlzLl9hcHBlbmRTdHJpbmdXaXRoU3BhY2UodGhpcy5fYXJpYURlc2NyaWJlZEJ5LG4pfX0sdmFsaWRhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQudmFsaWRhdGUoKX0sX2ZvY3VzQmx1ckhhbmRsZXI6ZnVuY3Rpb24odCl7cW8uX2ZvY3VzQmx1ckhhbmRsZXIuY2FsbCh0aGlzLHQpLHRoaXMuZm9jdXNlZCYmIXRoaXMuX3NoaWZ0VGFiUHJlc3NlZCYmdGhpcy5fZm9jdXNhYmxlRWxlbWVudCYmdGhpcy5fZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpfSxfb25TaGlmdFRhYkRvd246ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nZXRBdHRyaWJ1dGUoInRhYmluZGV4Iik7dGhpcy5fc2hpZnRUYWJQcmVzc2VkPSEwLHRoaXMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLGUpLHRoaXMuX3NoaWZ0VGFiUHJlc3NlZD0hMX0pLDEpfSxfaGFuZGxlQXV0b1ZhbGlkYXRlOmZ1bmN0aW9uKCl7dGhpcy5hdXRvVmFsaWRhdGUmJnRoaXMudmFsaWRhdGUoKX0sdXBkYXRlVmFsdWVBbmRQcmVzZXJ2ZUNhcmV0OmZ1bmN0aW9uKHQpe3RyeXt2YXIgZT10aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydDt0aGlzLnZhbHVlPXQsdGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ9ZSx0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25FbmQ9ZX1jYXRjaChlKXt0aGlzLnZhbHVlPXR9fSxfY29tcHV0ZUFsd2F5c0Zsb2F0TGFiZWw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8dH0sX3VwZGF0ZUFyaWFMYWJlbGxlZEJ5OmZ1bmN0aW9uKCl7dmFyIHQsZT1ZaSh0aGlzLnJvb3QpLnF1ZXJ5U2VsZWN0b3IoImxhYmVsIik7ZT8oZS5pZD90PWUuaWQ6KHQ9InBhcGVyLWlucHV0LWxhYmVsLSIrQmEuTmV4dExhYmVsSUQrKyxlLmlkPXQpLHRoaXMuX2FyaWFMYWJlbGxlZEJ5PXQpOnRoaXMuX2FyaWFMYWJlbGxlZEJ5PSIifSxfZ2VuZXJhdGVJbnB1dElkOmZ1bmN0aW9uKCl7dGhpcy5faW5wdXRJZCYmIiIhPT10aGlzLl9pbnB1dElkfHwodGhpcy5faW5wdXRJZD0iaW5wdXQtIitCYS5OZXh0SW5wdXRJRCsrKX0sX29uQ2hhbmdlOmZ1bmN0aW9uKHQpe3RoaXMuc2hhZG93Um9vdCYmdGhpcy5maXJlKHQudHlwZSx7c291cmNlRXZlbnQ6dH0se25vZGU6dGhpcyxidWJibGVzOnQuYnViYmxlcyxjYW5jZWxhYmxlOnQuY2FuY2VsYWJsZX0pfSxfYXV0b2ZvY3VzQ2hhbmdlZDpmdW5jdGlvbigpe2lmKHRoaXMuYXV0b2ZvY3VzJiZ0aGlzLl9mb2N1c2FibGVFbGVtZW50KXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3QgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdCE9PWRvY3VtZW50LmJvZHkmJnQhPT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fHRoaXMuX2ZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKX19fSxGYT1bcW8sem8sSGFdOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe2lzOiJwYXBlci1pbnB1dCIsX3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIDpob3N0KFtmb2N1c2VkXSkgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICBpbnB1dCB7CiAgICAgICAgLyogRmlyZWZveCBzZXRzIGEgbWluLXdpZHRoIG9uIHRoZSBpbnB1dCwgd2hpY2ggY2FuIGNhdXNlIGxheW91dCBpc3N1ZXMgKi8KICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC8qIEluIDEueCwgdGhlIDxpbnB1dD4gaXMgZGlzdHJpYnV0ZWQgdG8gcGFwZXItaW5wdXQtY29udGFpbmVyLCB3aGljaCBzdHlsZXMgaXQuCiAgICAgIEluIDIueCB0aGUgPGlyb24taW5wdXQ+IGlzIGRpc3RyaWJ1dGVkIHRvIHBhcGVyLWlucHV0LWNvbnRhaW5lciwgd2hpY2ggc3R5bGVzCiAgICAgIGl0LCBidXQgaW4gb3JkZXIgZm9yIHRoaXMgdG8gd29yayBjb3JyZWN0bHksIHdlIG5lZWQgdG8gcmVzZXQgc29tZQogICAgICBvZiB0aGUgbmF0aXZlIGlucHV0J3MgcHJvcGVydGllcyB0byBpbmhlcml0IChmcm9tIHRoZSBpcm9uLWlucHV0KSAqLwogICAgICBpcm9uLWlucHV0ID4gaW5wdXQgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1zaGFyZWQtaW5wdXQtc3R5bGU7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgICAgIGxldHRlci1zcGFjaW5nOiBpbmhlcml0OwogICAgICAgIHdvcmQtc3BhY2luZzogaW5oZXJpdDsKICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICB0ZXh0LXNoYWRvdzogaW5oZXJpdDsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBjdXJzb3I6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIGlucHV0OmRpc2FibGVkIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtZGlzYWJsZWQ7CiAgICAgIH0KCiAgICAgIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLAogICAgICBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LXdlYmtpdC1zcGlubmVyOwogICAgICB9CgogICAgICBpbnB1dDo6LXdlYmtpdC1jbGVhci1idXR0b24gewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dC13ZWJraXQtY2xlYXI7CiAgICAgIH0KCiAgICAgIGlucHV0Ojotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3IgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dC13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcjsKICAgICAgfQoKICAgICAgaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItY29sb3IsIHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIGlucHV0Oi1tb3otcGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItY29sb3IsIHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIGlucHV0OjotbW96LXBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcikpOwogICAgICB9CgogICAgICBpbnB1dDo6LW1zLWNsZWFyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbXMtY2xlYXI7CiAgICAgIH0KCiAgICAgIGlucHV0OjotbXMtcmV2ZWFsIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbXMtcmV2ZWFsOwogICAgICB9CgogICAgICBpbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItY29sb3IsIHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIGxhYmVsIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8cGFwZXItaW5wdXQtY29udGFpbmVyIGlkPSJjb250YWluZXIiIG5vLWxhYmVsLWZsb2F0PSJbW25vTGFiZWxGbG9hdF1dIiBhbHdheXMtZmxvYXQtbGFiZWw9IltbX2NvbXB1dGVBbHdheXNGbG9hdExhYmVsKGFsd2F5c0Zsb2F0TGFiZWwscGxhY2Vob2xkZXIpXV0iIGF1dG8tdmFsaWRhdGUkPSJbW2F1dG9WYWxpZGF0ZV1dIiBkaXNhYmxlZCQ9IltbZGlzYWJsZWRdXSIgaW52YWxpZD0iW1tpbnZhbGlkXV0iPgoKICAgICAgPHNsb3QgbmFtZT0icHJlZml4IiBzbG90PSJwcmVmaXgiPjwvc2xvdD4KCiAgICAgIDxsYWJlbCBoaWRkZW4kPSJbWyFsYWJlbF1dIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9yJD0iW1tfaW5wdXRJZF1dIiBzbG90PSJsYWJlbCI+W1tsYWJlbF1dPC9sYWJlbD4KCiAgICAgIDwhLS0gTmVlZCB0byBiaW5kIG1heGxlbmd0aCBzbyB0aGF0IHRoZSBwYXBlci1pbnB1dC1jaGFyLWNvdW50ZXIgd29ya3MgY29ycmVjdGx5IC0tPgogICAgICA8aXJvbi1pbnB1dCBiaW5kLXZhbHVlPSJ7e3ZhbHVlfX0iIHNsb3Q9ImlucHV0IiBjbGFzcz0iaW5wdXQtZWxlbWVudCIgaWQkPSJbW19pbnB1dElkXV0iIG1heGxlbmd0aCQ9IltbbWF4bGVuZ3RoXV0iIGFsbG93ZWQtcGF0dGVybj0iW1thbGxvd2VkUGF0dGVybl1dIiBpbnZhbGlkPSJ7e2ludmFsaWR9fSIgdmFsaWRhdG9yPSJbW3ZhbGlkYXRvcl1dIj4KICAgICAgICA8aW5wdXQgYXJpYS1sYWJlbGxlZGJ5JD0iW1tfYXJpYUxhYmVsbGVkQnldXSIgYXJpYS1kZXNjcmliZWRieSQ9IltbX2FyaWFEZXNjcmliZWRCeV1dIiBkaXNhYmxlZCQ9IltbZGlzYWJsZWRdXSIgdGl0bGUkPSJbW3RpdGxlXV0iIHR5cGUkPSJbW3R5cGVdXSIgcGF0dGVybiQ9IltbcGF0dGVybl1dIiByZXF1aXJlZCQ9IltbcmVxdWlyZWRdXSIgYXV0b2NvbXBsZXRlJD0iW1thdXRvY29tcGxldGVdXSIgYXV0b2ZvY3VzJD0iW1thdXRvZm9jdXNdXSIgaW5wdXRtb2RlJD0iW1tpbnB1dG1vZGVdXSIgbWlubGVuZ3RoJD0iW1ttaW5sZW5ndGhdXSIgbWF4bGVuZ3RoJD0iW1ttYXhsZW5ndGhdXSIgbWluJD0iW1ttaW5dXSIgbWF4JD0iW1ttYXhdXSIgc3RlcCQ9Iltbc3RlcF1dIiBuYW1lJD0iW1tuYW1lXV0iIHBsYWNlaG9sZGVyJD0iW1twbGFjZWhvbGRlcl1dIiByZWFkb25seSQ9IltbcmVhZG9ubHldXSIgbGlzdCQ9IltbbGlzdF1dIiBzaXplJD0iW1tzaXplXV0iIGF1dG9jYXBpdGFsaXplJD0iW1thdXRvY2FwaXRhbGl6ZV1dIiBhdXRvY29ycmVjdCQ9IltbYXV0b2NvcnJlY3RdXSIgb24tY2hhbmdlPSJfb25DaGFuZ2UiIHRhYmluZGV4JD0iW1t0YWJJbmRleF1dIiBhdXRvc2F2ZSQ9IltbYXV0b3NhdmVdXSIgcmVzdWx0cyQ9IltbcmVzdWx0c11dIiBhY2NlcHQkPSJbW2FjY2VwdF1dIiBtdWx0aXBsZSQ9IltbbXVsdGlwbGVdXSIgcm9sZSQ9IltbaW5wdXRSb2xlXV0iIGFyaWEtaGFzcG9wdXAkPSJbW2lucHV0QXJpYUhhc3BvcHVwXV0iPgogICAgICA8L2lyb24taW5wdXQ+CgogICAgICA8c2xvdCBuYW1lPSJzdWZmaXgiIHNsb3Q9InN1ZmZpeCI+PC9zbG90PgoKICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2Vycm9yTWVzc2FnZV1dIj4KICAgICAgICA8cGFwZXItaW5wdXQtZXJyb3IgYXJpYS1saXZlPSJhc3NlcnRpdmUiIHNsb3Q9ImFkZC1vbiI+W1tlcnJvck1lc3NhZ2VdXTwvcGFwZXItaW5wdXQtZXJyb3I+CiAgICAgIDwvdGVtcGxhdGU+CgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbY2hhckNvdW50ZXJdXSI+CiAgICAgICAgPHBhcGVyLWlucHV0LWNoYXItY291bnRlciBzbG90PSJhZGQtb24iPjwvcGFwZXItaW5wdXQtY2hhci1jb3VudGVyPgogICAgICA8L3RlbXBsYXRlPgoKICAgIDwvcGFwZXItaW5wdXQtY29udGFpbmVyPgogIGAsYmVoYXZpb3JzOltGYSxyYV0scHJvcGVydGllczp7dmFsdWU6e3R5cGU6U3RyaW5nfSxpbnB1dFJvbGU6e3R5cGU6U3RyaW5nLHZhbHVlOnZvaWQgMH0saW5wdXRBcmlhSGFzcG9wdXA6e3R5cGU6U3RyaW5nLHZhbHVlOnZvaWQgMH19LGdldCBfZm9jdXNhYmxlRWxlbWVudCgpe3JldHVybiB0aGlzLmlucHV0RWxlbWVudC5faW5wdXRFbGVtZW50fSxsaXN0ZW5lcnM6eyJpcm9uLWlucHV0LXJlYWR5IjoiX29uSXJvbklucHV0UmVhZHkifSxfb25Jcm9uSW5wdXRSZWFkeTpmdW5jdGlvbigpe3RoaXMuJC5uYXRpdmVJbnB1dHx8KHRoaXMuJC5uYXRpdmVJbnB1dD10aGlzLiQkKCJpbnB1dCIpKSx0aGlzLmlucHV0RWxlbWVudCYmLTEhPT10aGlzLl90eXBlc1RoYXRIYXZlVGV4dC5pbmRleE9mKHRoaXMuJC5uYXRpdmVJbnB1dC50eXBlKSYmKHRoaXMuYWx3YXlzRmxvYXRMYWJlbD0hMCksdGhpcy5pbnB1dEVsZW1lbnQuYmluZFZhbHVlJiZ0aGlzLiQuY29udGFpbmVyLl9oYW5kbGVWYWx1ZUFuZEF1dG9WYWxpZGF0ZSh0aGlzLmlucHV0RWxlbWVudCl9fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICB9CgogICAgICAjY29udGVudFdyYXBwZXIgOjpzbG90dGVkKCopIHsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgI2NvbnRlbnRXcmFwcGVyLmFuaW1hdGluZyA6OnNsb3R0ZWQoKikgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBpZD0iY29udGVudFdyYXBwZXIiPgogICAgICA8c2xvdCBpZD0iY29udGVudCIgbmFtZT0iZHJvcGRvd24tY29udGVudCI+PC9zbG90PgogICAgPC9kaXY+CmAsaXM6Imlyb24tZHJvcGRvd24iLGJlaGF2aW9yczpbcW8sem8sa2EsUmFdLHByb3BlcnRpZXM6e2hvcml6b250YWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6ImxlZnQiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sdmVydGljYWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6InRvcCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxvcGVuQW5pbWF0aW9uQ29uZmlnOnt0eXBlOk9iamVjdH0sY2xvc2VBbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0fSxmb2N1c1RhcmdldDp7dHlwZTpPYmplY3R9LG5vQW5pbWF0aW9uczp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxhbGxvd091dHNpZGVTY3JvbGw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX2FsbG93T3V0c2lkZVNjcm9sbENoYW5nZWQifX0sbGlzdGVuZXJzOnsibmVvbi1hbmltYXRpb24tZmluaXNoIjoiX29uTmVvbkFuaW1hdGlvbkZpbmlzaCJ9LG9ic2VydmVyczpbIl91cGRhdGVPdmVybGF5UG9zaXRpb24ocG9zaXRpb25UYXJnZXQsIHZlcnRpY2FsQWxpZ24sIGhvcml6b250YWxBbGlnbiwgdmVydGljYWxPZmZzZXQsIGhvcml6b250YWxPZmZzZXQpIl0sZ2V0IGNvbnRhaW5lZEVsZW1lbnQoKXtmb3IodmFyIHQ9WWkodGhpcy4kLmNvbnRlbnQpLmdldERpc3RyaWJ1dGVkTm9kZXMoKSxlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKWlmKHRbZV0ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4gdFtlXX0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbEFjdGlvbnx8KHRoaXMuc2Nyb2xsQWN0aW9uPXRoaXMuYWxsb3dPdXRzaWRlU2Nyb2xsPyJyZWZpdCI6ImxvY2siKSx0aGlzLl9yZWFkaWVkPSEwfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuc2l6aW5nVGFyZ2V0JiZ0aGlzLnNpemluZ1RhcmdldCE9PXRoaXN8fCh0aGlzLnNpemluZ1RhcmdldD10aGlzLmNvbnRhaW5lZEVsZW1lbnR8fHRoaXMpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuY2FuY2VsQW5pbWF0aW9uKCl9LF9vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQmJnRoaXMuZGlzYWJsZWQ/dGhpcy5jYW5jZWwoKToodGhpcy5jYW5jZWxBbmltYXRpb24oKSx0aGlzLl91cGRhdGVBbmltYXRpb25Db25maWcoKSxDYS5fb3BlbmVkQ2hhbmdlZC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxfcmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7IXRoaXMubm9BbmltYXRpb25zJiZ0aGlzLmFuaW1hdGlvbkNvbmZpZy5vcGVuPyh0aGlzLiQuY29udGVudFdyYXBwZXIuY2xhc3NMaXN0LmFkZCgiYW5pbWF0aW5nIiksdGhpcy5wbGF5QW5pbWF0aW9uKCJvcGVuIikpOkNhLl9yZW5kZXJPcGVuZWQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxfcmVuZGVyQ2xvc2VkOmZ1bmN0aW9uKCl7IXRoaXMubm9BbmltYXRpb25zJiZ0aGlzLmFuaW1hdGlvbkNvbmZpZy5jbG9zZT8odGhpcy4kLmNvbnRlbnRXcmFwcGVyLmNsYXNzTGlzdC5hZGQoImFuaW1hdGluZyIpLHRoaXMucGxheUFuaW1hdGlvbigiY2xvc2UiKSk6Q2EuX3JlbmRlckNsb3NlZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LF9vbk5lb25BbmltYXRpb25GaW5pc2g6ZnVuY3Rpb24oKXt0aGlzLiQuY29udGVudFdyYXBwZXIuY2xhc3NMaXN0LnJlbW92ZSgiYW5pbWF0aW5nIiksdGhpcy5vcGVuZWQ/dGhpcy5fZmluaXNoUmVuZGVyT3BlbmVkKCk6dGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCl9LF91cGRhdGVBbmltYXRpb25Db25maWc6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5jb250YWluZWRFbGVtZW50LGU9W10uY29uY2F0KHRoaXMub3BlbkFuaW1hdGlvbkNvbmZpZ3x8W10pLmNvbmNhdCh0aGlzLmNsb3NlQW5pbWF0aW9uQ29uZmlnfHxbXSksbj0wO248ZS5sZW5ndGg7bisrKWVbbl0ubm9kZT10O3RoaXMuYW5pbWF0aW9uQ29uZmlnPXtvcGVuOnRoaXMub3BlbkFuaW1hdGlvbkNvbmZpZyxjbG9zZTp0aGlzLmNsb3NlQW5pbWF0aW9uQ29uZmlnfX0sX3VwZGF0ZU92ZXJsYXlQb3NpdGlvbjpmdW5jdGlvbigpe3RoaXMuaXNBdHRhY2hlZCYmdGhpcy5ub3RpZnlSZXNpemUoKX0sX2FsbG93T3V0c2lkZVNjcm9sbENoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5fcmVhZGllZCYmKHQ/dGhpcy5zY3JvbGxBY3Rpb24mJiJsb2NrIiE9PXRoaXMuc2Nyb2xsQWN0aW9ufHwodGhpcy5zY3JvbGxBY3Rpb249InJlZml0Iik6dGhpcy5zY3JvbGxBY3Rpb249ImxvY2siKX0sX2FwcGx5Rm9jdXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmZvY3VzVGFyZ2V0fHx0aGlzLmNvbnRhaW5lZEVsZW1lbnQ7dCYmdGhpcy5vcGVuZWQmJiF0aGlzLm5vQXV0b0ZvY3VzP3QuZm9jdXMoKTpDYS5fYXBwbHlGb2N1cy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBWYT17cHJvcGVydGllczp7YW5pbWF0aW9uVGltaW5nOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybntkdXJhdGlvbjo1MDAsZWFzaW5nOiJjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIixmaWxsOiJib3RoIn19fX0saXNOZW9uQW5pbWF0aW9uOiEwLGNyZWF0ZWQ6ZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LmFuaW1hdGV8fGNvbnNvbGUud2FybigiTm8gd2ViIGFuaW1hdGlvbnMgZGV0ZWN0ZWQuIFRoaXMgZWxlbWVudCB3aWxsIG5vdCBmdW5jdGlvbiB3aXRob3V0IGEgd2ViIGFuaW1hdGlvbnMgcG9seWZpbGwuIil9LHRpbWluZ0Zyb21Db25maWc6ZnVuY3Rpb24odCl7aWYodC50aW1pbmcpZm9yKHZhciBlIGluIHQudGltaW5nKXRoaXMuYW5pbWF0aW9uVGltaW5nW2VdPXQudGltaW5nW2VdO3JldHVybiB0aGlzLmFuaW1hdGlvblRpbWluZ30sc2V0UHJlZml4ZWRQcm9wZXJ0eTpmdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpLHI9e3RyYW5zZm9ybTpbIndlYmtpdFRyYW5zZm9ybSJdLHRyYW5zZm9ybU9yaWdpbjpbIm1velRyYW5zZm9ybU9yaWdpbiIsIndlYmtpdFRyYW5zZm9ybU9yaWdpbiJdfVtlXSxvPTA7aT1yW29dO28rKyl0LnN0eWxlW2ldPW47dC5zdHlsZVtlXT1ufSxjb21wbGV0ZTpmdW5jdGlvbih0KXt9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovUnIoe2lzOiJmYWRlLWluLWFuaW1hdGlvbiIsYmVoYXZpb3JzOltWYV0sY29uZmlndXJlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9lZmZlY3Q9bmV3IEtleWZyYW1lRWZmZWN0KHQubm9kZSxbe29wYWNpdHk6IjAifSx7b3BhY2l0eToiMSJ9XSx0aGlzLnRpbWluZ0Zyb21Db25maWcodCkpLHRoaXMuX2VmZmVjdH19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtpczoiZmFkZS1vdXQtYW5pbWF0aW9uIixiZWhhdmlvcnM6W1ZhXSxjb25maWd1cmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2VmZmVjdD1uZXcgS2V5ZnJhbWVFZmZlY3QodC5ub2RlLFt7b3BhY2l0eToiMSJ9LHtvcGFjaXR5OiIwIn1dLHRoaXMudGltaW5nRnJvbUNvbmZpZyh0KSksdGhpcy5fZWZmZWN0fX0pLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe2lzOiJwYXBlci1tZW51LWdyb3ctaGVpZ2h0LWFuaW1hdGlvbiIsX3RlbXBsYXRlOm51bGwsYmVoYXZpb3JzOltWYV0sY29uZmlndXJlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubm9kZSxuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O3JldHVybiB0aGlzLl9lZmZlY3Q9bmV3IEtleWZyYW1lRWZmZWN0KGUsW3toZWlnaHQ6bi8yKyJweCJ9LHtoZWlnaHQ6bisicHgifV0sdGhpcy50aW1pbmdGcm9tQ29uZmlnKHQpKSx0aGlzLl9lZmZlY3R9fSksUnIoe2lzOiJwYXBlci1tZW51LWdyb3ctd2lkdGgtYW5pbWF0aW9uIixfdGVtcGxhdGU6bnVsbCxiZWhhdmlvcnM6W1ZhXSxjb25maWd1cmU6ZnVuY3Rpb24odCl7dmFyIGU9dC5ub2RlLG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtyZXR1cm4gdGhpcy5fZWZmZWN0PW5ldyBLZXlmcmFtZUVmZmVjdChlLFt7d2lkdGg6bi8yKyJweCJ9LHt3aWR0aDpuKyJweCJ9XSx0aGlzLnRpbWluZ0Zyb21Db25maWcodCkpLHRoaXMuX2VmZmVjdH19KSxScih7aXM6InBhcGVyLW1lbnUtc2hyaW5rLXdpZHRoLWFuaW1hdGlvbiIsX3RlbXBsYXRlOm51bGwsYmVoYXZpb3JzOltWYV0sY29uZmlndXJlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubm9kZSxuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7cmV0dXJuIHRoaXMuX2VmZmVjdD1uZXcgS2V5ZnJhbWVFZmZlY3QoZSxbe3dpZHRoOm4rInB4In0se3dpZHRoOm4tbi8yMCsicHgifV0sdGhpcy50aW1pbmdGcm9tQ29uZmlnKHQpKSx0aGlzLl9lZmZlY3R9fSksUnIoe2lzOiJwYXBlci1tZW51LXNocmluay1oZWlnaHQtYW5pbWF0aW9uIixfdGVtcGxhdGU6bnVsbCxiZWhhdmlvcnM6W1ZhXSxjb25maWd1cmU6ZnVuY3Rpb24odCl7dmFyIGU9dC5ub2RlLG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7cmV0dXJuIHRoaXMuc2V0UHJlZml4ZWRQcm9wZXJ0eShlLCJ0cmFuc2Zvcm1PcmlnaW4iLCIwIDAiKSx0aGlzLl9lZmZlY3Q9bmV3IEtleWZyYW1lRWZmZWN0KGUsW3toZWlnaHQ6bisicHgiLHRyYW5zZm9ybToidHJhbnNsYXRlWSgwKSJ9LHtoZWlnaHQ6bi8yKyJweCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC0yMHB4KSJ9XSx0aGlzLnRpbWluZ0Zyb21Db25maWcodCkpLHRoaXMuX2VmZmVjdH19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCnZhciBVYT17QU5JTUFUSU9OX0NVQklDX0JFWklFUjoiY3ViaWMtYmV6aWVyKC4zLC45NSwuNSwxKSIsTUFYX0FOSU1BVElPTl9USU1FX01TOjQwMH07Y29uc3QgamE9UnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLW1lbnUtYnV0dG9uOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgICAgY3Vyc29yOiBhdXRvOwogICAgICAgIGNvbG9yOiB2YXIoLS1kaXNhYmxlZC10ZXh0LWNvbG9yKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItbWVudS1idXR0b24tZGlzYWJsZWQ7CiAgICAgIH0KCiAgICAgIGlyb24tZHJvcGRvd24gewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1lbnUtYnV0dG9uLWRyb3Bkb3duOwogICAgICB9CgogICAgICAuZHJvcGRvd24tY29udGVudCB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0yZHA7CgogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItbWVudS1idXR0b24tZHJvcGRvd24tYmFja2dyb3VuZCwgdmFyKC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLW1lbnUtYnV0dG9uLWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFt2ZXJ0aWNhbC1hbGlnbj0idG9wIl0pIC5kcm9wZG93bi1jb250ZW50IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIG1hcmdpbi10b3A6IC0xMHB4OwogICAgICAgIHRvcDogMTBweDsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZlcnRpY2FsLWFsaWduPSJib3R0b20iXSkgLmRyb3Bkb3duLWNvbnRlbnQgewogICAgICAgIGJvdHRvbTogMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTBweDsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB9CgogICAgICAjdHJpZ2dlciB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgaWQ9InRyaWdnZXIiIG9uLXRhcD0idG9nZ2xlIj4KICAgICAgPHNsb3QgbmFtZT0iZHJvcGRvd24tdHJpZ2dlciI+PC9zbG90PgogICAgPC9kaXY+CgogICAgPGlyb24tZHJvcGRvd24gaWQ9ImRyb3Bkb3duIiBvcGVuZWQ9Int7b3BlbmVkfX0iIGhvcml6b250YWwtYWxpZ249IltbaG9yaXpvbnRhbEFsaWduXV0iIHZlcnRpY2FsLWFsaWduPSJbW3ZlcnRpY2FsQWxpZ25dXSIgZHluYW1pYy1hbGlnbj0iW1tkeW5hbWljQWxpZ25dXSIgaG9yaXpvbnRhbC1vZmZzZXQ9IltbaG9yaXpvbnRhbE9mZnNldF1dIiB2ZXJ0aWNhbC1vZmZzZXQ9IltbdmVydGljYWxPZmZzZXRdXSIgbm8tb3ZlcmxhcD0iW1tub092ZXJsYXBdXSIgb3Blbi1hbmltYXRpb24tY29uZmlnPSJbW29wZW5BbmltYXRpb25Db25maWddXSIgY2xvc2UtYW5pbWF0aW9uLWNvbmZpZz0iW1tjbG9zZUFuaW1hdGlvbkNvbmZpZ11dIiBuby1hbmltYXRpb25zPSJbW25vQW5pbWF0aW9uc11dIiBmb2N1cy10YXJnZXQ9IltbX2Ryb3Bkb3duQ29udGVudF1dIiBhbGxvdy1vdXRzaWRlLXNjcm9sbD0iW1thbGxvd091dHNpZGVTY3JvbGxdXSIgcmVzdG9yZS1mb2N1cy1vbi1jbG9zZT0iW1tyZXN0b3JlRm9jdXNPbkNsb3NlXV0iIG9uLWlyb24tb3ZlcmxheS1jYW5jZWxlZD0iX19vbklyb25PdmVybGF5Q2FuY2VsZWQiIGV4cGFuZC1zaXppbmctdGFyZ2V0LWZvci1zY3JvbGxiYXJzPSJbW2V4cGFuZFNpemluZ1RhcmdldEZvclNjcm9sbGJhcnNdXSI+CiAgICAgIDxkaXYgc2xvdD0iZHJvcGRvd24tY29udGVudCIgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiPgogICAgICAgIDxzbG90IGlkPSJjb250ZW50IiBuYW1lPSJkcm9wZG93bi1jb250ZW50Ij48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgPC9pcm9uLWRyb3Bkb3duPgpgLGlzOiJwYXBlci1tZW51LWJ1dHRvbiIsYmVoYXZpb3JzOlt6byxxb10scHJvcGVydGllczp7b3BlbmVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsbm90aWZ5OiEwLG9ic2VydmVyOiJfb3BlbmVkQ2hhbmdlZCJ9LGhvcml6b250YWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6ImxlZnQiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sdmVydGljYWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6InRvcCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxkeW5hbWljQWxpZ246e3R5cGU6Qm9vbGVhbn0saG9yaXpvbnRhbE9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MCxub3RpZnk6ITB9LHZlcnRpY2FsT2Zmc2V0Ont0eXBlOk51bWJlcix2YWx1ZTowLG5vdGlmeTohMH0sbm9PdmVybGFwOnt0eXBlOkJvb2xlYW59LG5vQW5pbWF0aW9uczp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxpZ25vcmVTZWxlY3Q6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sY2xvc2VPbkFjdGl2YXRlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LG9wZW5BbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW3tuYW1lOiJmYWRlLWluLWFuaW1hdGlvbiIsdGltaW5nOntkZWxheToxMDAsZHVyYXRpb246MjAwfX0se25hbWU6InBhcGVyLW1lbnUtZ3Jvdy13aWR0aC1hbmltYXRpb24iLHRpbWluZzp7ZGVsYXk6MTAwLGR1cmF0aW9uOjE1MCxlYXNpbmc6VWEuQU5JTUFUSU9OX0NVQklDX0JFWklFUn19LHtuYW1lOiJwYXBlci1tZW51LWdyb3ctaGVpZ2h0LWFuaW1hdGlvbiIsdGltaW5nOntkZWxheToxMDAsZHVyYXRpb246Mjc1LGVhc2luZzpVYS5BTklNQVRJT05fQ1VCSUNfQkVaSUVSfX1dfX0sY2xvc2VBbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW3tuYW1lOiJmYWRlLW91dC1hbmltYXRpb24iLHRpbWluZzp7ZHVyYXRpb246MTUwfX0se25hbWU6InBhcGVyLW1lbnUtc2hyaW5rLXdpZHRoLWFuaW1hdGlvbiIsdGltaW5nOntkZWxheToxMDAsZHVyYXRpb246NTAsZWFzaW5nOlVhLkFOSU1BVElPTl9DVUJJQ19CRVpJRVJ9fSx7bmFtZToicGFwZXItbWVudS1zaHJpbmstaGVpZ2h0LWFuaW1hdGlvbiIsdGltaW5nOntkdXJhdGlvbjoyMDAsZWFzaW5nOiJlYXNlLWluIn19XX19LGFsbG93T3V0c2lkZVNjcm9sbDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxyZXN0b3JlRm9jdXNPbkNsb3NlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITB9LGV4cGFuZFNpemluZ1RhcmdldEZvclNjcm9sbGJhcnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX2Ryb3Bkb3duQ29udGVudDp7dHlwZTpPYmplY3R9fSxob3N0QXR0cmlidXRlczp7cm9sZToiZ3JvdXAiLCJhcmlhLWhhc3BvcHVwIjoidHJ1ZSJ9LGxpc3RlbmVyczp7Imlyb24tYWN0aXZhdGUiOiJfb25Jcm9uQWN0aXZhdGUiLCJpcm9uLXNlbGVjdCI6Il9vbklyb25TZWxlY3QifSxnZXQgY29udGVudEVsZW1lbnQoKXtmb3IodmFyIHQ9WWkodGhpcy4kLmNvbnRlbnQpLmdldERpc3RyaWJ1dGVkTm9kZXMoKSxlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKWlmKHRbZV0ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4gdFtlXX0sdG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ/dGhpcy5jbG9zZSgpOnRoaXMub3BlbigpfSxvcGVuOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlZHx8dGhpcy4kLmRyb3Bkb3duLm9wZW4oKX0sY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLiQuZHJvcGRvd24uY2xvc2UoKX0sX29uSXJvblNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLmlnbm9yZVNlbGVjdHx8dGhpcy5jbG9zZSgpfSxfb25Jcm9uQWN0aXZhdGU6ZnVuY3Rpb24odCl7dGhpcy5jbG9zZU9uQWN0aXZhdGUmJnRoaXMuY2xvc2UoKX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24odCxlKXt0Pyh0aGlzLl9kcm9wZG93bkNvbnRlbnQ9dGhpcy5jb250ZW50RWxlbWVudCx0aGlzLmZpcmUoInBhcGVyLWRyb3Bkb3duLW9wZW4iKSk6bnVsbCE9ZSYmdGhpcy5maXJlKCJwYXBlci1kcm9wZG93bi1jbG9zZSIpfSxfZGlzYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKHQpe3FvLl9kaXNhYmxlZENoYW5nZWQuYXBwbHkodGhpcyxhcmd1bWVudHMpLHQmJnRoaXMub3BlbmVkJiZ0aGlzLmNsb3NlKCl9LF9fb25Jcm9uT3ZlcmxheUNhbmNlbGVkOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJC50cmlnZ2VyO1lpKHQuZGV0YWlsKS5wYXRoLmluZGV4T2YoZSk+LTEmJnQucHJldmVudERlZmF1bHQoKX19KTtPYmplY3Qua2V5cyhVYSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7amFbdF09VWFbdF19KSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBHYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO0dhLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLEdhLmlubmVySFRNTD0nPGlyb24taWNvbnNldC1zdmcgbmFtZT0icGFwZXItZHJvcGRvd24tbWVudSIgc2l6ZT0iMjQiPlxuPHN2Zz48ZGVmcz5cbjxnIGlkPSJhcnJvdy1kcm9wLWRvd24iPjxwYXRoIGQ9Ik03IDEwbDUgNSA1LTV6Ij48L3BhdGg+PC9nPlxuPC9kZWZzPjwvc3ZnPlxuPC9pcm9uLWljb25zZXQtc3ZnPicsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChHYS5jb250ZW50KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IFdhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7V2Euc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7IiksV2EuaW5uZXJIVE1MPSc8ZG9tLW1vZHVsZSBpZD0icGFwZXItZHJvcGRvd24tbWVudS1zaGFyZWQtc3R5bGVzIj5cbiAgPHRlbXBsYXRlPlxuICAgIDxzdHlsZT5cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgLyogTk9URShjZGF0YSk6IEJvdGggdmFsdWVzIGFyZSBuZWVkZWQsIHNpbmNlIHNvbWUgcGhvbmVzIHJlcXVpcmUgdGhlXG4gICAgICAgICAqIHZhbHVlIHRvIGJlIGB0cmFuc3BhcmVudGAuXG4gICAgICAgICAqL1xuICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4gICAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ6IHtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9O1xuXG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRyb3Bkb3duLW1lbnU7XG4gICAgICB9XG5cbiAgICAgIC8qIHBhcGVyLWRyb3Bkb3duLW1lbnUgYW5kIHBhcGVyLWRyb3Bkb3duLW1lbnUtbGlnaHQgYm90aCBkZWxlZ2F0ZSBmb2N1c1xuICAgICAgICogdG8gb3RoZXIgaW50ZXJuYWwgZWxlbWVudHMgd2hpY2ggbWFuYWdlIGZvY3VzIHN0eWxpbmcuICovXG4gICAgICA6aG9zdCg6Zm9jdXMpIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoOmRpcihydGwpKSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgIEBhcHBseSgtLXBhcGVyLWRyb3Bkb3duLW1lbnUpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRyb3Bkb3duLW1lbnUtZGlzYWJsZWQ7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtub2lua10pIHBhcGVyLXJpcHBsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtuby1sYWJlbC1mbG9hdF0pIHBhcGVyLXJpcHBsZSB7XG4gICAgICAgIHRvcDogOHB4O1xuICAgICAgfVxuXG4gICAgICBwYXBlci1yaXBwbGUge1xuICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgYm90dG9tOiA4cHg7XG4gICAgICAgIHJpZ2h0OiAwcHg7XG5cbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZHJvcGRvd24tbWVudS1yaXBwbGU7XG4gICAgICB9XG5cbiAgICAgIHBhcGVyLW1lbnUtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZHJvcGRvd24tbWVudS1idXR0b247XG4gICAgICB9XG5cbiAgICAgIHBhcGVyLWlucHV0IHtcbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZHJvcGRvd24tbWVudS1pbnB1dDtcbiAgICAgIH1cblxuICAgICAgaXJvbi1pY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWRpc2FibGVkLXRleHQtY29sb3IpO1xuXG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRyb3Bkb3duLW1lbnUtaWNvbjtcbiAgICAgIH1cbiAgICA8L3N0eWxlPlxuICA8L3RlbXBsYXRlPlxuPC9kb20tbW9kdWxlPicsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChXYS5jb250ZW50KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IHFhPWVyKEhUTUxFbGVtZW50KTtScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlIGluY2x1ZGU9InBhcGVyLWRyb3Bkb3duLW1lbnUtc2hhcmVkLXN0eWxlcyI+PC9zdHlsZT4KCiAgICA8cGFwZXItbWVudS1idXR0b24gaWQ9Im1lbnVCdXR0b24iIHZlcnRpY2FsLWFsaWduPSJbW3ZlcnRpY2FsQWxpZ25dXSIgaG9yaXpvbnRhbC1hbGlnbj0iW1tob3Jpem9udGFsQWxpZ25dXSIgZHluYW1pYy1hbGlnbj0iW1tkeW5hbWljQWxpZ25dXSIgdmVydGljYWwtb2Zmc2V0PSJbW19jb21wdXRlTWVudVZlcnRpY2FsT2Zmc2V0KG5vTGFiZWxGbG9hdCwgdmVydGljYWxPZmZzZXQpXV0iIGRpc2FibGVkPSJbW2Rpc2FibGVkXV0iIG5vLWFuaW1hdGlvbnM9Iltbbm9BbmltYXRpb25zXV0iIG9uLWlyb24tc2VsZWN0PSJfb25Jcm9uU2VsZWN0IiBvbi1pcm9uLWRlc2VsZWN0PSJfb25Jcm9uRGVzZWxlY3QiIG9wZW5lZD0ie3tvcGVuZWR9fSIgY2xvc2Utb24tYWN0aXZhdGUgYWxsb3ctb3V0c2lkZS1zY3JvbGw9IltbYWxsb3dPdXRzaWRlU2Nyb2xsXV0iIHJlc3RvcmUtZm9jdXMtb24tY2xvc2U9IltbcmVzdG9yZUZvY3VzT25DbG9zZV1dIiBleHBhbmQtc2l6aW5nLXRhcmdldC1mb3Itc2Nyb2xsYmFycz0iW1tleHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzXV0iPgogICAgICA8IS0tIHN1cHBvcnQgaHlicmlkIG1vZGU6IHVzZXIgbWlnaHQgYmUgdXNpbmcgcGFwZXItbWVudS1idXR0b24gMS54IHdoaWNoIGRpc3RyaWJ1dGVzIHZpYSA8Y29udGVudD4gLS0+CiAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duLXRyaWdnZXIiIHNsb3Q9ImRyb3Bkb3duLXRyaWdnZXIiPgogICAgICAgIDxwYXBlci1yaXBwbGU+PC9wYXBlci1yaXBwbGU+CiAgICAgICAgPCEtLSBwYXBlci1pbnB1dCBoYXMgdHlwZT0idGV4dCIgZm9yIGExMXksIGRvIG5vdCByZW1vdmUgLS0+CiAgICAgICAgPHBhcGVyLWlucHV0IGlkPSJpbnB1dCIgdHlwZT0idGV4dCIgaW52YWxpZD0iW1tpbnZhbGlkXV0iIHJlYWRvbmx5IGRpc2FibGVkPSJbW2Rpc2FibGVkXV0iIHZhbHVlPSJbW3ZhbHVlXV0iIHBsYWNlaG9sZGVyPSJbW3BsYWNlaG9sZGVyXV0iIGVycm9yLW1lc3NhZ2U9IltbZXJyb3JNZXNzYWdlXV0iIGFsd2F5cy1mbG9hdC1sYWJlbD0iW1thbHdheXNGbG9hdExhYmVsXV0iIG5vLWxhYmVsLWZsb2F0PSJbW25vTGFiZWxGbG9hdF1dIiBsYWJlbD0iW1tsYWJlbF1dIiBpbnB1dC1yb2xlPSJidXR0b24iIGlucHV0LWFyaWEtaGFzcG9wdXA9Imxpc3Rib3giIGF1dG9jb21wbGV0ZT0ib2ZmIj4KICAgICAgICAgIDwhLS0gc3VwcG9ydCBoeWJyaWQgbW9kZTogdXNlciBtaWdodCBiZSB1c2luZyBwYXBlci1pbnB1dCAxLnggd2hpY2ggZGlzdHJpYnV0ZXMgdmlhIDxjb250ZW50PiAtLT4KICAgICAgICAgIDxpcm9uLWljb24gaWNvbj0icGFwZXItZHJvcGRvd24tbWVudTphcnJvdy1kcm9wLWRvd24iIHN1ZmZpeCBzbG90PSJzdWZmaXgiPjwvaXJvbi1pY29uPgogICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgIDwvZGl2PgogICAgICA8c2xvdCBpZD0iY29udGVudCIgbmFtZT0iZHJvcGRvd24tY29udGVudCIgc2xvdD0iZHJvcGRvd24tY29udGVudCI+PC9zbG90PgogICAgPC9wYXBlci1tZW51LWJ1dHRvbj4KYCxpczoicGFwZXItZHJvcGRvd24tbWVudSIsYmVoYXZpb3JzOltYbyxxbyxyYSxhYV0scHJvcGVydGllczp7c2VsZWN0ZWRJdGVtTGFiZWw6e3R5cGU6U3RyaW5nLG5vdGlmeTohMCxyZWFkT25seTohMH0sc2VsZWN0ZWRJdGVtOnt0eXBlOk9iamVjdCxub3RpZnk6ITAscmVhZE9ubHk6ITB9LHZhbHVlOnt0eXBlOlN0cmluZyxub3RpZnk6ITB9LGxhYmVsOnt0eXBlOlN0cmluZ30scGxhY2Vob2xkZXI6e3R5cGU6U3RyaW5nfSxlcnJvck1lc3NhZ2U6e3R5cGU6U3RyaW5nfSxvcGVuZWQ6e3R5cGU6Qm9vbGVhbixub3RpZnk6ITAsdmFsdWU6ITEsb2JzZXJ2ZXI6Il9vcGVuZWRDaGFuZ2VkIn0sYWxsb3dPdXRzaWRlU2Nyb2xsOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LG5vTGFiZWxGbG9hdDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sYWx3YXlzRmxvYXRMYWJlbDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxub0FuaW1hdGlvbnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saG9yaXpvbnRhbEFsaWduOnt0eXBlOlN0cmluZyx2YWx1ZToicmlnaHQifSx2ZXJ0aWNhbEFsaWduOnt0eXBlOlN0cmluZyx2YWx1ZToidG9wIn0sdmVydGljYWxPZmZzZXQ6TnVtYmVyLGR5bmFtaWNBbGlnbjp7dHlwZTpCb29sZWFufSxyZXN0b3JlRm9jdXNPbkNsb3NlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITB9LGV4cGFuZFNpemluZ1RhcmdldEZvclNjcm9sbGJhcnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX19LGxpc3RlbmVyczp7dGFwOiJfb25UYXAifSxrZXlCaW5kaW5nczp7InVwIGRvd24iOiJvcGVuIixlc2M6ImNsb3NlIn0sb2JzZXJ2ZXJzOlsiX3NlbGVjdGVkSXRlbUNoYW5nZWQoc2VsZWN0ZWRJdGVtKSJdLF9hdHRhY2hEb20odCl7Y29uc3QgZT1ZKHRoaXMpO3JldHVybiBlLmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiIsZGVsZWdhdGVzRm9jdXM6ITAsc2hhZHlVcGdyYWRlRnJhZ21lbnQ6dH0pLGUuc2hhZG93Um9vdC5hcHBlbmRDaGlsZCh0KSxxYS5wcm90b3R5cGUuX2F0dGFjaERvbS5jYWxsKHRoaXMsdCl9LGZvY3VzKCl7dGhpcy4kLmlucHV0Ll9mb2N1c2FibGVFbGVtZW50LmZvY3VzKCl9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZW50RWxlbWVudDt0JiZ0LnNlbGVjdGVkSXRlbSYmdGhpcy5fc2V0U2VsZWN0ZWRJdGVtKHQuc2VsZWN0ZWRJdGVtKX0sZ2V0IGNvbnRlbnRFbGVtZW50KCl7Zm9yKHZhciB0PVlpKHRoaXMuJC5jb250ZW50KS5nZXREaXN0cmlidXRlZE5vZGVzKCksZT0wLG49dC5sZW5ndGg7ZTxuO2UrKylpZih0W2VdLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuIHRbZV19LG9wZW46ZnVuY3Rpb24oKXt0aGlzLiQubWVudUJ1dHRvbi5vcGVuKCl9LGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy4kLm1lbnVCdXR0b24uY2xvc2UoKX0sX29uSXJvblNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLl9zZXRTZWxlY3RlZEl0ZW0odC5kZXRhaWwuaXRlbSl9LF9vbklyb25EZXNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLl9zZXRTZWxlY3RlZEl0ZW0obnVsbCl9LF9vblRhcDpmdW5jdGlvbih0KXtkaSh0KT09PXRoaXMmJnRoaXMub3BlbigpfSxfc2VsZWN0ZWRJdGVtQ2hhbmdlZDpmdW5jdGlvbih0KXt2YXIgZTtlPXQ/dC5sYWJlbHx8dC5nZXRBdHRyaWJ1dGUoImxhYmVsIil8fHQudGV4dENvbnRlbnQudHJpbSgpOiIiLHRoaXMudmFsdWU9ZSx0aGlzLl9zZXRTZWxlY3RlZEl0ZW1MYWJlbChlKX0sX2NvbXB1dGVNZW51VmVydGljYWxPZmZzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8KHQ/LTQ6OCl9LF9nZXRWYWxpZGl0eTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kaXNhYmxlZHx8IXRoaXMucmVxdWlyZWR8fHRoaXMucmVxdWlyZWQmJiEhdGhpcy52YWx1ZX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRlbnRFbGVtZW50O3QmJnQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIix0aGlzLm9wZW5lZD8idHJ1ZSI6ImZhbHNlIil9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwp2YXIgWWE9e291dGVyU2Nyb2xsOntzY3JvbGw6ITB9LHNoYWRvd01vZGU6e3N0YW5kYXJkOjIsd2F0ZXJmYWxsOjEsIndhdGVyZmFsbC10YWxsIjoxfSx0YWxsTW9kZTp7IndhdGVyZmFsbC10YWxsIjohMH19O1JyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtdmVydGljYWw7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWw7CiAgICAgIH0KCiAgICAgICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAgICB9CgogICAgICAjbWFpblBhbmVsIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtdmVydGljYWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLWJvZHk7CiAgICAgIH0KCiAgICAgICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtY29udGFpbmVyOwogICAgICB9CgogICAgICAvKgogICAgICAgKiBtb2RlOiBzY3JvbGwKICAgICAgICovCiAgICAgIDpob3N0KFttb2RlPXNjcm9sbF0pICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtc2Nyb2xsLWNvbnRhaW5lcjsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgfQoKICAgICAgOmhvc3QoW21vZGU9c2Nyb2xsXSkgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogbW9kZTogY292ZXIKICAgICAgICovCiAgICAgIDpob3N0KFttb2RlPWNvdmVyXSkgI21haW5Db250YWluZXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbC1jb3Zlci1jb250YWluZXI7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW21vZGU9Y292ZXJdKSAjbWFpblBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogc3RhdGljOwogICAgICB9CgogICAgICAvKgogICAgICAgKiBtb2RlOiBzdGFuZGFyZAogICAgICAgKi8KICAgICAgOmhvc3QoW21vZGU9c3RhbmRhcmRdKSAjbWFpbkNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLXN0YW5kYXJkLWNvbnRhaW5lcjsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogbW9kZTogc2VhbWVkCiAgICAgICAqLwogICAgICA6aG9zdChbbW9kZT1zZWFtZWRdKSAjbWFpbkNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLXNlYW1lZC1jb250YWluZXI7CiAgICAgIH0KCgogICAgICAvKgogICAgICAgKiBtb2RlOiB3YXRlcmZhbGwKICAgICAgICovCiAgICAgIDpob3N0KFttb2RlPXdhdGVyZmFsbF0pICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtd2F0ZXJmYWxsLWNvbnRhaW5lcjsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogbW9kZTogd2F0ZXJmYWxsLXRhbGwKICAgICAgICovCiAgICAgIDpob3N0KFttb2RlPXdhdGVyZmFsbC10YWxsXSkgI21haW5Db250YWluZXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbC13YXRlcmZhbGwtdGFsbC1jb250YWluZXI7CiAgICAgIH0KCiAgICAgICNkcm9wU2hhZG93IHsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDVweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLXNoYWRvdzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgI2Ryb3BTaGFkb3cuaGFzLXNoYWRvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgI21haW5Db250YWluZXIgPiA6OnNsb3R0ZWQoLmZpdCkgewogICAgICAgIEBhcHBseSAtLWxheW91dC1maXQ7CiAgICAgIH0KCiAgICA8L3N0eWxlPgoKICAgIDxzbG90IGlkPSJoZWFkZXJTbG90IiBuYW1lPSJoZWFkZXIiPjwvc2xvdD4KCiAgICA8ZGl2IGlkPSJtYWluUGFuZWwiPgogICAgICA8ZGl2IGlkPSJtYWluQ29udGFpbmVyIiBjbGFzc1wkPSJbW19jb21wdXRlTWFpbkNvbnRhaW5lckNsYXNzKG1vZGUpXV0iPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgaWQ9ImRyb3BTaGFkb3ciPjwvZGl2PgogICAgPC9kaXY+CmAsaXM6InBhcGVyLWhlYWRlci1wYW5lbCIscHJvcGVydGllczp7bW9kZTp7dHlwZTpTdHJpbmcsdmFsdWU6InN0YW5kYXJkIixvYnNlcnZlcjoiX21vZGVDaGFuZ2VkIixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LHNoYWRvdzp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSx0YWxsQ2xhc3M6e3R5cGU6U3RyaW5nLHZhbHVlOiJ0YWxsIn0sYXRUb3A6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMCxub3RpZnk6ITAscmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfX0sb2JzZXJ2ZXJzOlsiX2NvbXB1dGVEcm9wU2hhZG93SGlkZGVuKGF0VG9wLCBtb2RlLCBzaGFkb3cpIl0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9hZGRMaXN0ZW5lcigpLHRoaXMuX2tlZXBTY3JvbGxpbmdTdGF0ZSgpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUxpc3RlbmVyKCl9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5zY3JvbGxIYW5kbGVyPXRoaXMuX3Njcm9sbC5iaW5kKHRoaXMpLGNvbnNvbGUud2Fybih0aGlzLmlzLCJpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGFwcC1sYXlvdXQgaW5zdGVhZCEiKX0sZ2V0IGhlYWRlcigpe3JldHVybiBZaSh0aGlzLiQuaGVhZGVyU2xvdCkuZ2V0RGlzdHJpYnV0ZWROb2RlcygpWzBdfSxnZXQgc2Nyb2xsZXIoKXtyZXR1cm4gdGhpcy5fZ2V0U2Nyb2xsZXJGb3JNb2RlKHRoaXMubW9kZSl9LGdldCB2aXNpYmxlU2hhZG93KCl7cmV0dXJuIHRoaXMuJC5kcm9wU2hhZG93LmNsYXNzTGlzdC5jb250YWlucygiaGFzLXNoYWRvdyIpfSxfY29tcHV0ZURyb3BTaGFkb3dIaWRkZW46ZnVuY3Rpb24odCxlLG4pe3ZhciBpPVlhLnNoYWRvd01vZGVbZV07dGhpcy50b2dnbGVDbGFzcygiaGFzLXNoYWRvdyIsISF0aGlzLnNoYWRvd3x8Mj09PWl8fDE9PT1pJiYhdCx0aGlzLiQuZHJvcFNoYWRvdyl9LF9jb21wdXRlTWFpbkNvbnRhaW5lckNsYXNzOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBlLmZsZXg9ImNvdmVyIiE9PXQsT2JqZWN0LmtleXMoZSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKS5qb2luKCIgIil9LF9hZGRMaXN0ZW5lcjpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLnNjcm9sbEhhbmRsZXIpfSxfcmVtb3ZlTGlzdGVuZXI6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5zY3JvbGxIYW5kbGVyKX0sX21vZGVDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dmFyIG49WWEsaT10aGlzLmhlYWRlcjtpJiYobi50YWxsTW9kZVtlXSYmIW4udGFsbE1vZGVbdF0/KGkuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLnRhbGxDbGFzcyksdGhpcy5hc3luYygoZnVuY3Rpb24oKXtpLmNsYXNzTGlzdC5yZW1vdmUoImFuaW1hdGUiKX0pLDIwMCkpOnRoaXMudG9nZ2xlQ2xhc3MoImFuaW1hdGUiLG4udGFsbE1vZGVbdF0saSkpLHRoaXMuX2tlZXBTY3JvbGxpbmdTdGF0ZSgpfSxfa2VlcFNjcm9sbGluZ1N0YXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zY3JvbGxlcixlPXRoaXMuaGVhZGVyO3RoaXMuX3NldEF0VG9wKDA9PT10LnNjcm9sbFRvcCksZSYmdGhpcy50YWxsQ2xhc3MmJllhLnRhbGxNb2RlW3RoaXMubW9kZV0mJnRoaXMudG9nZ2xlQ2xhc3ModGhpcy50YWxsQ2xhc3MsdGhpcy5hdFRvcHx8ZS5jbGFzc0xpc3QuY29udGFpbnModGhpcy50YWxsQ2xhc3MpJiZ0LnNjcm9sbEhlaWdodDx0aGlzLm9mZnNldEhlaWdodCxlKX0sX3Njcm9sbDpmdW5jdGlvbigpe3RoaXMuX2tlZXBTY3JvbGxpbmdTdGF0ZSgpLHRoaXMuZmlyZSgiY29udGVudC1zY3JvbGwiLHt0YXJnZXQ6dGhpcy5zY3JvbGxlcn0se2J1YmJsZXM6ITF9KX0sX2dldFNjcm9sbGVyRm9yTW9kZTpmdW5jdGlvbih0KXtyZXR1cm4gWWEub3V0ZXJTY3JvbGxbdF0/dGhpczp0aGlzLiQubWFpbkNvbnRhaW5lcn19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtpczoicGFwZXItaWNvbi1idXR0b24iLF90ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKCiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwoKICAgICAgICAvKgogICAgICAgICAgTk9URTogQm90aCB2YWx1ZXMgYXJlIG5lZWRlZCwgc2luY2Ugc29tZSBwaG9uZXMgcmVxdWlyZSB0aGUgdmFsdWUgdG8KICAgICAgICAgIGJlIFxgdHJhbnNwYXJlbnRcYC4KICAgICAgICAqLwogICAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsKICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwoKICAgICAgICAvKiBCZWNhdXNlIG9mIHBvbHltZXIvMjU1OCwgdGhpcyBzdHlsZSBoYXMgbG93ZXIgc3BlY2lmaWNpdHkgdGhhbiAqICovCiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50OwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pY29uLWJ1dHRvbjsKICAgICAgfQoKICAgICAgOmhvc3QgI2luayB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWljb24tYnV0dG9uLWluay1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWljb24tYnV0dG9uLWRpc2FibGVkLXRleHQsIHZhcigtLWRpc2FibGVkLXRleHQtY29sb3IpKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBjdXJzb3I6IGF1dG87CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWljb24tYnV0dG9uLWRpc2FibGVkOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgOmhvc3QoOmhvdmVyKSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaWNvbi1idXR0b24taG92ZXI7CiAgICAgIH0KCiAgICAgIGlyb24taWNvbiB7CiAgICAgICAgLS1pcm9uLWljb24td2lkdGg6IDEwMCU7CiAgICAgICAgLS1pcm9uLWljb24taGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxpcm9uLWljb24gaWQ9Imljb24iIHNyYz0iW1tzcmNdXSIgaWNvbj0iW1tpY29uXV0iCiAgICAgICAgICAgICAgIGFsdCQ9IltbYWx0XV0iPjwvaXJvbi1pY29uPgogIGAsaG9zdEF0dHJpYnV0ZXM6e3JvbGU6ImJ1dHRvbiIsdGFiaW5kZXg6IjAifSxiZWhhdmlvcnM6W2NhXSxyZWdpc3RlcmVkOmZ1bmN0aW9uKCl7dGhpcy5fdGVtcGxhdGUuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIil9LHByb3BlcnRpZXM6e3NyYzp7dHlwZTpTdHJpbmd9LGljb246e3R5cGU6U3RyaW5nfSxhbHQ6e3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfYWx0Q2hhbmdlZCJ9fSxfYWx0Q2hhbmdlZDpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIik7biYmZSE9bnx8dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHQpfX0pLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDQwMHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkOwogICAgICAgIHBhZGRpbmc6IDJweDsKICAgICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRhcmVhOwogICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGFyZWE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm1pcnJvci10ZXh0IHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIEBhcHBseSAtLWlyb24tYXV0b2dyb3ctdGV4dGFyZWE7CiAgICAgIH0KCiAgICAgIC5maXQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1maXQ7CiAgICAgIH0KCiAgICAgIHRleHRhcmVhIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgLyogc2VlIGNvbW1lbnRzIGluIHRlbXBsYXRlICovCiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0OwogICAgICAgIEBhcHBseSAtLWlyb24tYXV0b2dyb3ctdGV4dGFyZWE7CiAgICAgIH0KCiAgICAgIHRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsKICAgICAgICBAYXBwbHkgLS1pcm9uLWF1dG9ncm93LXRleHRhcmVhLXBsYWNlaG9sZGVyOwogICAgICB9CgogICAgICB0ZXh0YXJlYTotbW96LXBsYWNlaG9sZGVyIHsKICAgICAgICBAYXBwbHkgLS1pcm9uLWF1dG9ncm93LXRleHRhcmVhLXBsYWNlaG9sZGVyOwogICAgICB9CgogICAgICB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7CiAgICAgICAgQGFwcGx5IC0taXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYS1wbGFjZWhvbGRlcjsKICAgICAgfQoKICAgICAgdGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsKICAgICAgICBAYXBwbHkgLS1pcm9uLWF1dG9ncm93LXRleHRhcmVhLXBsYWNlaG9sZGVyOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDwhLS0gdGhlIG1pcnJvciBzaXplcyB0aGUgaW5wdXQvdGV4dGFyZWEgc28gaXQgZ3Jvd3Mgd2l0aCB0eXBpbmcgLS0+CiAgICA8IS0tIHVzZSAmIzE2MDsgaW5zdGVhZCAmbmJzcDsgb2YgdG8gYWxsb3cgdGhpcyBlbGVtZW50IHRvIGJlIHVzZWQgaW4gWEhUTUwgLS0+CiAgICA8ZGl2IGlkPSJtaXJyb3IiIGNsYXNzPSJtaXJyb3ItdGV4dCIgYXJpYS1oaWRkZW49InRydWUiPiZuYnNwOzwvZGl2PgoKICAgIDwhLS0gc2l6ZSB0aGUgaW5wdXQvdGV4dGFyZWEgd2l0aCBhIGRpdiwgYmVjYXVzZSB0aGUgdGV4dGFyZWEgaGFzIGludHJpbnNpYyBzaXplIGluIGZmIC0tPgogICAgPGRpdiBjbGFzcz0idGV4dGFyZWEtY29udGFpbmVyIGZpdCI+CiAgICAgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWUkPSJbW25hbWVdXSIgYXJpYS1sYWJlbCQ9IltbbGFiZWxdXSIgYXV0b2NvbXBsZXRlJD0iW1thdXRvY29tcGxldGVdXSIgYXV0b2ZvY3VzJD0iW1thdXRvZm9jdXNdXSIgYXV0b2NhcGl0YWxpemUkPSJbW2F1dG9jYXBpdGFsaXplXV0iIGlucHV0bW9kZSQ9IltbaW5wdXRtb2RlXV0iIHBsYWNlaG9sZGVyJD0iW1twbGFjZWhvbGRlcl1dIiByZWFkb25seSQ9IltbcmVhZG9ubHldXSIgcmVxdWlyZWQkPSJbW3JlcXVpcmVkXV0iIGRpc2FibGVkJD0iW1tkaXNhYmxlZF1dIiByb3dzJD0iW1tyb3dzXV0iIG1pbmxlbmd0aCQ9IltbbWlubGVuZ3RoXV0iIG1heGxlbmd0aCQ9IltbbWF4bGVuZ3RoXV0iPjwvdGV4dGFyZWE+CiAgICA8L2Rpdj4KYCxpczoiaXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYSIsYmVoYXZpb3JzOlthYSxxb10scHJvcGVydGllczp7dmFsdWU6e29ic2VydmVyOiJfdmFsdWVDaGFuZ2VkIix0eXBlOlN0cmluZyxub3RpZnk6ITB9LGJpbmRWYWx1ZTp7b2JzZXJ2ZXI6Il9iaW5kVmFsdWVDaGFuZ2VkIix0eXBlOlN0cmluZyxub3RpZnk6ITB9LHJvd3M6e3R5cGU6TnVtYmVyLHZhbHVlOjEsb2JzZXJ2ZXI6Il91cGRhdGVDYWNoZWQifSxtYXhSb3dzOnt0eXBlOk51bWJlcix2YWx1ZTowLG9ic2VydmVyOiJfdXBkYXRlQ2FjaGVkIn0sYXV0b2NvbXBsZXRlOnt0eXBlOlN0cmluZyx2YWx1ZToib2ZmIn0sYXV0b2ZvY3VzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGF1dG9jYXBpdGFsaXplOnt0eXBlOlN0cmluZyx2YWx1ZToibm9uZSJ9LGlucHV0bW9kZTp7dHlwZTpTdHJpbmd9LHBsYWNlaG9sZGVyOnt0eXBlOlN0cmluZ30scmVhZG9ubHk6e3R5cGU6U3RyaW5nfSxyZXF1aXJlZDp7dHlwZTpCb29sZWFufSxtaW5sZW5ndGg6e3R5cGU6TnVtYmVyfSxtYXhsZW5ndGg6e3R5cGU6TnVtYmVyfSxsYWJlbDp7dHlwZTpTdHJpbmd9fSxsaXN0ZW5lcnM6e2lucHV0OiJfb25JbnB1dCJ9LGdldCB0ZXh0YXJlYSgpe3JldHVybiB0aGlzLiQudGV4dGFyZWF9LGdldCBzZWxlY3Rpb25TdGFydCgpe3JldHVybiB0aGlzLiQudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnR9LGdldCBzZWxlY3Rpb25FbmQoKXtyZXR1cm4gdGhpcy4kLnRleHRhcmVhLnNlbGVjdGlvbkVuZH0sc2V0IHNlbGVjdGlvblN0YXJ0KHQpe3RoaXMuJC50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydD10fSxzZXQgc2VsZWN0aW9uRW5kKHQpe3RoaXMuJC50ZXh0YXJlYS5zZWxlY3Rpb25FbmQ9dH0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXtuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9pUCg/OltvYV1kfGhvbmUpLykmJiFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9PUyAxWzM0NTY3ODldLykmJih0aGlzLiQudGV4dGFyZWEuc3R5bGUubWFyZ2luTGVmdD0iLTNweCIpfSx2YWxpZGF0ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJC50ZXh0YXJlYS52YWxpZGl0eS52YWxpZDtyZXR1cm4gdCYmKHRoaXMucmVxdWlyZWQmJiIiPT09dGhpcy52YWx1ZT90PSExOnRoaXMuaGFzVmFsaWRhdG9yKCkmJih0PWFhLnZhbGlkYXRlLmNhbGwodGhpcyx0aGlzLnZhbHVlKSkpLHRoaXMuaW52YWxpZD0hdCx0aGlzLmZpcmUoImlyb24taW5wdXQtdmFsaWRhdGUiKSx0fSxfYmluZFZhbHVlQ2hhbmdlZDpmdW5jdGlvbih0KXt0aGlzLnZhbHVlPXR9LF92YWx1ZUNoYW5nZWQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy50ZXh0YXJlYTtlJiYoZS52YWx1ZSE9PXQmJihlLnZhbHVlPXR8fDA9PT10P3Q6IiIpLHRoaXMuYmluZFZhbHVlPXQsdGhpcy4kLm1pcnJvci5pbm5lckhUTUw9dGhpcy5fdmFsdWVGb3JNaXJyb3IoKSx0aGlzLmZpcmUoImJpbmQtdmFsdWUtY2hhbmdlZCIse3ZhbHVlOnRoaXMuYmluZFZhbHVlfSkpfSxfb25JbnB1dDpmdW5jdGlvbih0KXt2YXIgZT1ZaSh0KS5wYXRoO3RoaXMudmFsdWU9ZT9lWzBdLnZhbHVlOnQudGFyZ2V0LnZhbHVlfSxfY29uc3RyYWluOmZ1bmN0aW9uKHQpe3ZhciBlO2Zvcih0PXR8fFsiIl0sZT10aGlzLm1heFJvd3M+MCYmdC5sZW5ndGg+dGhpcy5tYXhSb3dzP3Quc2xpY2UoMCx0aGlzLm1heFJvd3MpOnQuc2xpY2UoMCk7dGhpcy5yb3dzPjAmJmUubGVuZ3RoPHRoaXMucm93czspZS5wdXNoKCIiKTtyZXR1cm4gZS5qb2luKCI8YnIvPiIpKyImIzE2MDsifSxfdmFsdWVGb3JNaXJyb3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRleHRhcmVhO2lmKHQpcmV0dXJuIHRoaXMudG9rZW5zPXQmJnQudmFsdWU/dC52YWx1ZS5yZXBsYWNlKC8mL2dtLCImYW1wOyIpLnJlcGxhY2UoLyIvZ20sIiZxdW90OyIpLnJlcGxhY2UoLycvZ20sIiYjMzk7IikucmVwbGFjZSgvPC9nbSwiJmx0OyIpLnJlcGxhY2UoLz4vZ20sIiZndDsiKS5zcGxpdCgiXG4iKTpbIiJdLHRoaXMuX2NvbnN0cmFpbih0aGlzLnRva2Vucyl9LF91cGRhdGVDYWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLiQubWlycm9yLmlubmVySFRNTD10aGlzLl9jb25zdHJhaW4odGhpcy50b2tlbnMpfX0pLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgbGFiZWwgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxwYXBlci1pbnB1dC1jb250YWluZXIgbm8tbGFiZWwtZmxvYXQkPSJbW25vTGFiZWxGbG9hdF1dIiBhbHdheXMtZmxvYXQtbGFiZWw9IltbX2NvbXB1dGVBbHdheXNGbG9hdExhYmVsKGFsd2F5c0Zsb2F0TGFiZWwscGxhY2Vob2xkZXIpXV0iIGF1dG8tdmFsaWRhdGUkPSJbW2F1dG9WYWxpZGF0ZV1dIiBkaXNhYmxlZCQ9IltbZGlzYWJsZWRdXSIgaW52YWxpZD0iW1tpbnZhbGlkXV0iPgoKICAgICAgPGxhYmVsIGhpZGRlbiQ9IltbIWxhYmVsXV0iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb3IkPSJbW19pbnB1dElkXV0iIHNsb3Q9ImxhYmVsIj5bW2xhYmVsXV08L2xhYmVsPgoKICAgICAgPGlyb24tYXV0b2dyb3ctdGV4dGFyZWEgY2xhc3M9InBhcGVyLWlucHV0LWlucHV0IiBzbG90PSJpbnB1dCIgaWQkPSJbW19pbnB1dElkXV0iIGFyaWEtbGFiZWxsZWRieSQ9IltbX2FyaWFMYWJlbGxlZEJ5XV0iIGFyaWEtZGVzY3JpYmVkYnkkPSJbW19hcmlhRGVzY3JpYmVkQnldXSIgYmluZC12YWx1ZT0ie3t2YWx1ZX19IiBpbnZhbGlkPSJ7e2ludmFsaWR9fSIgdmFsaWRhdG9yJD0iW1t2YWxpZGF0b3JdXSIgZGlzYWJsZWQkPSJbW2Rpc2FibGVkXV0iIGF1dG9jb21wbGV0ZSQ9IltbYXV0b2NvbXBsZXRlXV0iIGF1dG9mb2N1cyQ9IltbYXV0b2ZvY3VzXV0iIGlucHV0bW9kZSQ9IltbaW5wdXRtb2RlXV0iIG5hbWUkPSJbW25hbWVdXSIgcGxhY2Vob2xkZXIkPSJbW3BsYWNlaG9sZGVyXV0iIHJlYWRvbmx5JD0iW1tyZWFkb25seV1dIiByZXF1aXJlZCQ9IltbcmVxdWlyZWRdXSIgbWlubGVuZ3RoJD0iW1ttaW5sZW5ndGhdXSIgbWF4bGVuZ3RoJD0iW1ttYXhsZW5ndGhdXSIgYXV0b2NhcGl0YWxpemUkPSJbW2F1dG9jYXBpdGFsaXplXV0iIHJvd3MkPSJbW3Jvd3NdXSIgbWF4LXJvd3MkPSJbW21heFJvd3NdXSIgb24tY2hhbmdlPSJfb25DaGFuZ2UiPjwvaXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYT4KCiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tlcnJvck1lc3NhZ2VdXSI+CiAgICAgICAgPHBhcGVyLWlucHV0LWVycm9yIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIiBzbG90PSJhZGQtb24iPltbZXJyb3JNZXNzYWdlXV08L3BhcGVyLWlucHV0LWVycm9yPgogICAgICA8L3RlbXBsYXRlPgoKICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2NoYXJDb3VudGVyXV0iPgogICAgICAgIDxwYXBlci1pbnB1dC1jaGFyLWNvdW50ZXIgc2xvdD0iYWRkLW9uIj48L3BhcGVyLWlucHV0LWNoYXItY291bnRlcj4KICAgICAgPC90ZW1wbGF0ZT4KCiAgICA8L3BhcGVyLWlucHV0LWNvbnRhaW5lcj4KYCxpczoicGFwZXItdGV4dGFyZWEiLGJlaGF2aW9yczpbRmEscmFdLHByb3BlcnRpZXM6e19hcmlhTGFiZWxsZWRCeTp7b2JzZXJ2ZXI6Il9hcmlhTGFiZWxsZWRCeUNoYW5nZWQiLHR5cGU6U3RyaW5nfSxfYXJpYURlc2NyaWJlZEJ5OntvYnNlcnZlcjoiX2FyaWFEZXNjcmliZWRCeUNoYW5nZWQiLHR5cGU6U3RyaW5nfSx2YWx1ZTp7dHlwZTpTdHJpbmd9LHJvd3M6e3R5cGU6TnVtYmVyLHZhbHVlOjF9LG1heFJvd3M6e3R5cGU6TnVtYmVyLHZhbHVlOjB9fSxnZXQgc2VsZWN0aW9uU3RhcnQoKXtyZXR1cm4gdGhpcy4kLmlucHV0LnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0fSxzZXQgc2VsZWN0aW9uU3RhcnQodCl7dGhpcy4kLmlucHV0LnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0PXR9LGdldCBzZWxlY3Rpb25FbmQoKXtyZXR1cm4gdGhpcy4kLmlucHV0LnRleHRhcmVhLnNlbGVjdGlvbkVuZH0sc2V0IHNlbGVjdGlvbkVuZCh0KXt0aGlzLiQuaW5wdXQudGV4dGFyZWEuc2VsZWN0aW9uRW5kPXR9LF9hcmlhTGFiZWxsZWRCeUNoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5fZm9jdXNhYmxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsdCl9LF9hcmlhRGVzY3JpYmVkQnlDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX2ZvY3VzYWJsZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5Iix0KX0sZ2V0IF9mb2N1c2FibGVFbGVtZW50KCl7cmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50LnRleHRhcmVhfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgWGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtYYS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxYYS5pbm5lckhUTUw9Ijxkb20tbW9kdWxlIGlkPVwicGFwZXItaXRlbS1zaGFyZWQtc3R5bGVzXCI+XG4gIDx0ZW1wbGF0ZT5cbiAgICA8c3R5bGU+XG4gICAgICA6aG9zdCwgLnBhcGVyLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1wYXBlci1pdGVtLW1pbi1oZWlnaHQsIDQ4cHgpO1xuICAgICAgICBwYWRkaW5nOiAwcHggMTZweDtcbiAgICAgIH1cblxuICAgICAgLnBhcGVyLWl0ZW0ge1xuICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7XG4gICAgICAgIGJvcmRlcjpub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtoaWRkZW5dKSwgLnBhcGVyLWl0ZW1baGlkZGVuXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoLmlyb24tc2VsZWN0ZWQpLCAucGFwZXItaXRlbS5pcm9uLXNlbGVjdGVkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXBhcGVyLWl0ZW0tc2VsZWN0ZWQtd2VpZ2h0LCBib2xkKTtcblxuICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLXNlbGVjdGVkO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSwgLnBhcGVyLWl0ZW1bZGlzYWJsZWRdIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWl0ZW0tZGlzYWJsZWQtY29sb3IsIHZhcigtLWRpc2FibGVkLXRleHQtY29sb3IpKTtcblxuICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLWRpc2FibGVkO1xuICAgICAgfVxuXG4gICAgICA6aG9zdCg6Zm9jdXMpLCAucGFwZXItaXRlbTpmb2N1cyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3V0bGluZTogMDtcblxuICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLWZvY3VzZWQ7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KDpmb2N1cyk6YmVmb3JlLCAucGFwZXItaXRlbTpmb2N1czpiZWZvcmUge1xuICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0O1xuXG4gICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIG9wYWNpdHk6IHZhcigtLWRhcmstZGl2aWRlci1vcGFjaXR5KTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgQGFwcGx5IC0tcGFwZXItaXRlbS1mb2N1c2VkLWJlZm9yZTtcbiAgICAgIH1cbiAgICA8L3N0eWxlPlxuICA8L3RlbXBsYXRlPlxuPC9kb20tbW9kdWxlPiIsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChYYS5jb250ZW50KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0ICRhPVtYbyxxbyx7aG9zdEF0dHJpYnV0ZXM6e3JvbGU6Im9wdGlvbiIsdGFiaW5kZXg6IjAifX1dOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1pdGVtLXNoYXJlZC1zdHlsZXMiPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWl0ZW07CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLWl0ZW0iLGJlaGF2aW9yczpbJGFdfSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogbmVlZGVkIGZvciB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyB0byB3b3JrIG9uIGZmICovCiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXZlcnRpY2FsOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXItanVzdGlmaWVkOwogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4OwogICAgICB9CgogICAgICA6aG9zdChbdHdvLWxpbmVdKSB7CiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tcGFwZXItaXRlbS1ib2R5LXR3by1saW5lLW1pbi1oZWlnaHQsIDcycHgpOwogICAgICB9CgogICAgICA6aG9zdChbdGhyZWUtbGluZV0pIHsKICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1wYXBlci1pdGVtLWJvZHktdGhyZWUtbGluZS1taW4taGVpZ2h0LCA4OHB4KTsKICAgICAgfQoKICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoKikgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoW3NlY29uZGFyeV0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWJvZHkxOwoKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaXRlbS1ib2R5LXNlY29uZGFyeS1jb2xvciwgdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaXRlbS1ib2R5LXNlY29uZGFyeTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLWl0ZW0tYm9keSJ9KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGUgaW5jbHVkZT0icGFwZXItaXRlbS1zaGFyZWQtc3R5bGVzIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWl0ZW07CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaWNvbi1pdGVtOwogICAgICB9CgogICAgICAuY29udGVudC1pY29uIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaG9yaXpvbnRhbDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwoKICAgICAgICB3aWR0aDogdmFyKC0tcGFwZXItaXRlbS1pY29uLXdpZHRoLCA1NnB4KTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLWljb247CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBpZD0iY29udGVudEljb24iIGNsYXNzPSJjb250ZW50LWljb24iPgogICAgICA8c2xvdCBuYW1lPSJpdGVtLWljb24iPjwvc2xvdD4KICAgIDwvZGl2PgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJwYXBlci1pY29uLWl0ZW0iLGJlaGF2aW9yczpbJGFdfSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBLYT17cHJvcGVydGllczp7bXVsdGk6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoibXVsdGlDaGFuZ2VkIn0sc2VsZWN0ZWRWYWx1ZXM6e3R5cGU6QXJyYXksbm90aWZ5OiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxzZWxlY3RlZEl0ZW1zOnt0eXBlOkFycmF5LHJlYWRPbmx5OiEwLG5vdGlmeTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX19LG9ic2VydmVyczpbIl91cGRhdGVTZWxlY3RlZChzZWxlY3RlZFZhbHVlcy5zcGxpY2VzKSJdLHNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLm11bHRpP3RoaXMuX3RvZ2dsZVNlbGVjdGVkKHQpOnRoaXMuc2VsZWN0ZWQ9dH0sbXVsdGlDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX3NlbGVjdGlvbi5tdWx0aT10LHRoaXMuX3VwZGF0ZVNlbGVjdGVkKCl9LGdldCBfc2hvdWxkVXBkYXRlU2VsZWN0aW9uKCl7cmV0dXJuIG51bGwhPXRoaXMuc2VsZWN0ZWR8fG51bGwhPXRoaXMuc2VsZWN0ZWRWYWx1ZXMmJnRoaXMuc2VsZWN0ZWRWYWx1ZXMubGVuZ3RofSxfdXBkYXRlQXR0ckZvclNlbGVjdGVkOmZ1bmN0aW9uKCl7dGhpcy5tdWx0aT90aGlzLnNlbGVjdGVkSXRlbXMmJnRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGg+MCYmKHRoaXMuc2VsZWN0ZWRWYWx1ZXM9dGhpcy5zZWxlY3RlZEl0ZW1zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2luZGV4VG9WYWx1ZSh0aGlzLmluZGV4T2YodCkpfSksdGhpcykuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH0pLHRoaXMpKTpqby5fdXBkYXRlQXR0ckZvclNlbGVjdGVkLmFwcGx5KHRoaXMpfSxfdXBkYXRlU2VsZWN0ZWQ6ZnVuY3Rpb24oKXt0aGlzLm11bHRpP3RoaXMuX3NlbGVjdE11bHRpKHRoaXMuc2VsZWN0ZWRWYWx1ZXMpOnRoaXMuX3NlbGVjdFNlbGVjdGVkKHRoaXMuc2VsZWN0ZWQpfSxfc2VsZWN0TXVsdGk6ZnVuY3Rpb24odCl7dmFyIGU9KHRoaXMuX3ZhbHVlc1RvSXRlbXModD10fHxbXSl8fFtdKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10fSkpO3RoaXMuX3NlbGVjdGlvbi5jbGVhcihlKTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0aGlzLl9zZWxlY3Rpb24uc2V0SXRlbVNlbGVjdGVkKGVbbl0sITApO3RoaXMuZmFsbGJhY2tTZWxlY3Rpb24mJiF0aGlzLl9zZWxlY3Rpb24uZ2V0KCkubGVuZ3RoJiZ0aGlzLl92YWx1ZVRvSXRlbSh0aGlzLmZhbGxiYWNrU2VsZWN0aW9uKSYmdGhpcy5zZWxlY3QodGhpcy5mYWxsYmFja1NlbGVjdGlvbil9LF9zZWxlY3Rpb25DaGFuZ2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9zZWxlY3Rpb24uZ2V0KCk7dGhpcy5tdWx0aT8odGhpcy5fc2V0U2VsZWN0ZWRJdGVtcyh0KSx0aGlzLl9zZXRTZWxlY3RlZEl0ZW0odC5sZW5ndGg/dFswXTpudWxsKSk6bnVsbCE9dD8odGhpcy5fc2V0U2VsZWN0ZWRJdGVtcyhbdF0pLHRoaXMuX3NldFNlbGVjdGVkSXRlbSh0KSk6KHRoaXMuX3NldFNlbGVjdGVkSXRlbXMoW10pLHRoaXMuX3NldFNlbGVjdGVkSXRlbShudWxsKSl9LF90b2dnbGVTZWxlY3RlZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnNlbGVjdGVkVmFsdWVzLmluZGV4T2YodCk7ZTwwP3RoaXMucHVzaCgic2VsZWN0ZWRWYWx1ZXMiLHQpOnRoaXMuc3BsaWNlKCJzZWxlY3RlZFZhbHVlcyIsZSwxKX0sX3ZhbHVlc1RvSXRlbXM6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/bnVsbDp0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbHVlVG9JdGVtKHQpfSksdGhpcyl9fSxaYT17cHJvcGVydGllczp7Zm9jdXNlZEl0ZW06e29ic2VydmVyOiJfZm9jdXNlZEl0ZW1DaGFuZ2VkIixyZWFkT25seTohMCx0eXBlOk9iamVjdH0sYXR0ckZvckl0ZW1UaXRsZTp7dHlwZTpTdHJpbmd9LGRpc2FibGVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Il9kaXNhYmxlZENoYW5nZWQifX0sX01PRElGSUVSX0tFWVM6WyJBbHQiLCJBbHRHcmFwaCIsIkNhcHNMb2NrIiwiQ29udHJvbCIsIkZuIiwiRm5Mb2NrIiwiSHlwZXIiLCJNZXRhIiwiTnVtTG9jayIsIk9TIiwiU2Nyb2xsTG9jayIsIlNoaWZ0IiwiU3VwZXIiLCJTeW1ib2wiLCJTeW1ib2xMb2NrIl0sX1NFQVJDSF9SRVNFVF9USU1FT1VUX01TOjFlMyxfcHJldmlvdXNUYWJJbmRleDowLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJtZW51In0sb2JzZXJ2ZXJzOlsiX3VwZGF0ZU11bHRpc2VsZWN0YWJsZShtdWx0aSkiXSxsaXN0ZW5lcnM6e2ZvY3VzOiJfb25Gb2N1cyIsa2V5ZG93bjoiX29uS2V5ZG93biIsImlyb24taXRlbXMtY2hhbmdlZCI6Il9vbklyb25JdGVtc0NoYW5nZWQifSxrZXlCaW5kaW5nczp7dXA6Il9vblVwS2V5Iixkb3duOiJfb25Eb3duS2V5Iixlc2M6Il9vbkVzY0tleSIsInNoaWZ0K3RhYjprZXlkb3duIjoiX29uU2hpZnRUYWJEb3duIn0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9yZXNldFRhYmluZGljZXMoKX0sc2VsZWN0OmZ1bmN0aW9uKHQpe3RoaXMuX2RlZmF1bHRGb2N1c0FzeW5jJiYodGhpcy5jYW5jZWxBc3luYyh0aGlzLl9kZWZhdWx0Rm9jdXNBc3luYyksdGhpcy5fZGVmYXVsdEZvY3VzQXN5bmM9bnVsbCk7dmFyIGU9dGhpcy5fdmFsdWVUb0l0ZW0odCk7ZSYmZS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIil8fCh0aGlzLl9zZXRGb2N1c2VkSXRlbShlKSxLYS5zZWxlY3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sX3Jlc2V0VGFiaW5kaWNlczpmdW5jdGlvbigpe3ZhciB0PXRoaXMubXVsdGk/dGhpcy5zZWxlY3RlZEl0ZW1zJiZ0aGlzLnNlbGVjdGVkSXRlbXNbMF06dGhpcy5zZWxlY3RlZEl0ZW07dGhpcy5pdGVtcy5mb3JFYWNoKChmdW5jdGlvbihlKXtlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLGU9PT10PyIwIjoiLTEiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsdGhpcy5fc2VsZWN0aW9uLmlzU2VsZWN0ZWQoZSkpfSksdGhpcyl9LF91cGRhdGVNdWx0aXNlbGVjdGFibGU6ZnVuY3Rpb24odCl7dD90aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1tdWx0aXNlbGVjdGFibGUiLCJ0cnVlIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbXVsdGlzZWxlY3RhYmxlIil9LF9mb2N1c1dpdGhLZXlib2FyZEV2ZW50OmZ1bmN0aW9uKHQpe2lmKC0xPT09dGhpcy5fTU9ESUZJRVJfS0VZUy5pbmRleE9mKHQua2V5KSl7dGhpcy5jYW5jZWxEZWJvdW5jZXIoIl9jbGVhclNlYXJjaFRleHQiKTtmb3IodmFyIGUsbj10aGlzLl9zZWFyY2hUZXh0fHwiIixpPShuKz0odC5rZXkmJjE9PXQua2V5Lmxlbmd0aD90LmtleTpTdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSkpLnRvTG9jYWxlTG93ZXJDYXNlKCkpLmxlbmd0aCxyPTA7ZT10aGlzLml0ZW1zW3JdO3IrKylpZighZS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpe3ZhciBvPXRoaXMuYXR0ckZvckl0ZW1UaXRsZXx8InRleHRDb250ZW50IixhPShlW29dfHxlLmdldEF0dHJpYnV0ZShvKXx8IiIpLnRyaW0oKTtpZighKGEubGVuZ3RoPGkpJiZhLnNsaWNlKDAsaSkudG9Mb2NhbGVMb3dlckNhc2UoKT09bil7dGhpcy5fc2V0Rm9jdXNlZEl0ZW0oZSk7YnJlYWt9fXRoaXMuX3NlYXJjaFRleHQ9bix0aGlzLmRlYm91bmNlKCJfY2xlYXJTZWFyY2hUZXh0Iix0aGlzLl9jbGVhclNlYXJjaFRleHQsdGhpcy5fU0VBUkNIX1JFU0VUX1RJTUVPVVRfTVMpfX0sX2NsZWFyU2VhcmNoVGV4dDpmdW5jdGlvbigpe3RoaXMuX3NlYXJjaFRleHQ9IiJ9LF9mb2N1c1ByZXZpb3VzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuaXRlbXMubGVuZ3RoLGU9TnVtYmVyKHRoaXMuaW5kZXhPZih0aGlzLmZvY3VzZWRJdGVtKSksbj0xO248dCsxO24rKyl7dmFyIGk9dGhpcy5pdGVtc1soZS1uK3QpJXRdO2lmKCFpLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7dmFyIHI9WWkoaSkuZ2V0T3duZXJSb290KCl8fGRvY3VtZW50O2lmKHRoaXMuX3NldEZvY3VzZWRJdGVtKGkpLFlpKHIpLmFjdGl2ZUVsZW1lbnQ9PWkpcmV0dXJufX19LF9mb2N1c05leHQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5pdGVtcy5sZW5ndGgsZT1OdW1iZXIodGhpcy5pbmRleE9mKHRoaXMuZm9jdXNlZEl0ZW0pKSxuPTE7bjx0KzE7bisrKXt2YXIgaT10aGlzLml0ZW1zWyhlK24pJXRdO2lmKCFpLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7dmFyIHI9WWkoaSkuZ2V0T3duZXJSb290KCl8fGRvY3VtZW50O2lmKHRoaXMuX3NldEZvY3VzZWRJdGVtKGkpLFlpKHIpLmFjdGl2ZUVsZW1lbnQ9PWkpcmV0dXJufX19LF9hcHBseVNlbGVjdGlvbjpmdW5jdGlvbih0LGUpe3Quc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixlPyJ0cnVlIjoiZmFsc2UiKSxqby5fYXBwbHlTZWxlY3Rpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpfSxfZm9jdXNlZEl0ZW1DaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7ZSYmZS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSwhdHx8dC5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIil8fHRoaXMuZGlzYWJsZWR8fCh0LnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksdC5mb2N1cygpKX0sX29uSXJvbkl0ZW1zQ2hhbmdlZDpmdW5jdGlvbih0KXt0LmRldGFpbC5hZGRlZE5vZGVzLmxlbmd0aCYmdGhpcy5fcmVzZXRUYWJpbmRpY2VzKCl9LF9vblNoaWZ0VGFiRG93bjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKTtaYS5fc2hpZnRUYWJQcmVzc2VkPSEwLHRoaXMuX3NldEZvY3VzZWRJdGVtKG51bGwpLHRoaXMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLGUpLFphLl9zaGlmdFRhYlByZXNzZWQ9ITF9KSwxKX0sX29uRm9jdXM6ZnVuY3Rpb24odCl7aWYoIVphLl9zaGlmdFRhYlByZXNzZWQpe3ZhciBlPVlpKHQpLnJvb3RUYXJnZXQ7KGU9PT10aGlzfHx2b2lkIDA9PT1lLnRhYkluZGV4fHx0aGlzLmlzTGlnaHREZXNjZW5kYW50KGUpKSYmKHRoaXMuX2RlZmF1bHRGb2N1c0FzeW5jPXRoaXMuYXN5bmMoKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tdWx0aT90aGlzLnNlbGVjdGVkSXRlbXMmJnRoaXMuc2VsZWN0ZWRJdGVtc1swXTp0aGlzLnNlbGVjdGVkSXRlbTt0aGlzLl9zZXRGb2N1c2VkSXRlbShudWxsKSx0P3RoaXMuX3NldEZvY3VzZWRJdGVtKHQpOnRoaXMuaXRlbXNbMF0mJnRoaXMuX2ZvY3VzTmV4dCgpfSkpKX19LF9vblVwS2V5OmZ1bmN0aW9uKHQpe3RoaXMuX2ZvY3VzUHJldmlvdXMoKSx0LmRldGFpbC5rZXlib2FyZEV2ZW50LnByZXZlbnREZWZhdWx0KCl9LF9vbkRvd25LZXk6ZnVuY3Rpb24odCl7dGhpcy5fZm9jdXNOZXh0KCksdC5kZXRhaWwua2V5Ym9hcmRFdmVudC5wcmV2ZW50RGVmYXVsdCgpfSxfb25Fc2NLZXk6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mb2N1c2VkSXRlbTtlJiZlLmJsdXIoKX0sX29uS2V5ZG93bjpmdW5jdGlvbih0KXt0aGlzLmtleWJvYXJkRXZlbnRNYXRjaGVzS2V5cyh0LCJ1cCBkb3duIGVzYyIpfHx0aGlzLl9mb2N1c1dpdGhLZXlib2FyZEV2ZW50KHQpLHQuc3RvcFByb3BhZ2F0aW9uKCl9LF9hY3RpdmF0ZUhhbmRsZXI6ZnVuY3Rpb24odCl7am8uX2FjdGl2YXRlSGFuZGxlci5jYWxsKHRoaXMsdCksdC5zdG9wUHJvcGFnYXRpb24oKX0sX2Rpc2FibGVkQ2hhbmdlZDpmdW5jdGlvbih0KXt0Pyh0aGlzLl9wcmV2aW91c1RhYkluZGV4PXRoaXMuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpP3RoaXMudGFiSW5kZXg6MCx0aGlzLnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKSk6dGhpcy5oYXNBdHRyaWJ1dGUoInRhYmluZGV4Iil8fHRoaXMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsdGhpcy5fcHJldmlvdXNUYWJJbmRleCl9LF9zaGlmdFRhYlByZXNzZWQ6ITF9LEphPVtbam8sS2FdLHpvLFphXTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKCiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXItbGlzdGJveC1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3IpKTsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItbGlzdGJveC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWxpc3Rib3g7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJwYXBlci1saXN0Ym94IixiZWhhdmlvcnM6W0phXSxob3N0QXR0cmlidXRlczp7cm9sZToibGlzdGJveCJ9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBRYT1fZWAKPGRvbS1tb2R1bGUgaWQ9InBhcGVyLW1hdGVyaWFsLXNoYXJlZC1zdHlsZXMiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2VsZXZhdGlvbj0iMSJdKSB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0yZHA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtlbGV2YXRpb249IjIiXSkgewogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tNGRwOwogICAgICB9CgogICAgICA6aG9zdChbZWxldmF0aW9uPSIzIl0pIHsKICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTZkcDsKICAgICAgfQoKICAgICAgOmhvc3QoW2VsZXZhdGlvbj0iNCJdKSB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi04ZHA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtlbGV2YXRpb249IjUiXSkgewogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMTZkcDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+CmA7UWEuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7IiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChRYS5jb250ZW50KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGUgaW5jbHVkZT0icGFwZXItbWF0ZXJpYWwtc2hhcmVkLXN0eWxlcyI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QoW2FuaW1hdGVkXSkgewogICAgICAgIEBhcHBseSAtLXNoYWRvdy10cmFuc2l0aW9uOwogICAgICB9CiAgICAgIDpob3N0IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLW1hdGVyaWFsIixwcm9wZXJ0aWVzOntlbGV2YXRpb246e3R5cGU6TnVtYmVyLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx2YWx1ZToxfSxhbmltYXRlZDp7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx2YWx1ZTohMX19fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCB0cz17cHJvcGVydGllczp7dmFsdWU6e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sbWluOnt0eXBlOk51bWJlcix2YWx1ZTowLG5vdGlmeTohMH0sbWF4Ont0eXBlOk51bWJlcix2YWx1ZToxMDAsbm90aWZ5OiEwfSxzdGVwOnt0eXBlOk51bWJlcix2YWx1ZToxLG5vdGlmeTohMH0scmF0aW86e3R5cGU6TnVtYmVyLHZhbHVlOjAscmVhZE9ubHk6ITAsbm90aWZ5OiEwfX0sb2JzZXJ2ZXJzOlsiX3VwZGF0ZSh2YWx1ZSwgbWluLCBtYXgsIHN0ZXApIl0sX2NhbGNSYXRpbzpmdW5jdGlvbih0KXtyZXR1cm4odGhpcy5fY2xhbXBWYWx1ZSh0KS10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKX0sX2NsYW1wVmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWluKHRoaXMubWF4LE1hdGgubWF4KHRoaXMubWluLHRoaXMuX2NhbGNTdGVwKHQpKSl9LF9jYWxjU3RlcDpmdW5jdGlvbih0KXtpZih0PXBhcnNlRmxvYXQodCksIXRoaXMuc3RlcClyZXR1cm4gdDt2YXIgZT1NYXRoLnJvdW5kKCh0LXRoaXMubWluKS90aGlzLnN0ZXApO3JldHVybiB0aGlzLnN0ZXA8MT9lLygxL3RoaXMuc3RlcCkrdGhpcy5taW46ZSp0aGlzLnN0ZXArdGhpcy5taW59LF92YWxpZGF0ZVZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fY2xhbXBWYWx1ZSh0aGlzLnZhbHVlKTtyZXR1cm4gdGhpcy52YWx1ZT10aGlzLm9sZFZhbHVlPWlzTmFOKHQpP3RoaXMub2xkVmFsdWU6dCx0aGlzLnZhbHVlIT09dH0sX3VwZGF0ZTpmdW5jdGlvbigpe3RoaXMuX3ZhbGlkYXRlVmFsdWUoKSx0aGlzLl9zZXRSYXRpbygxMDAqdGhpcy5fY2FsY1JhdGlvKHRoaXMudmFsdWUpKX19OwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9Scih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDIwMHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSksIFtoaWRkZW5dIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgICNwcm9ncmVzc0NvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItcHJvZ3Jlc3MtY29udGFpbmVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgI3Byb2dyZXNzQ29udGFpbmVyLAogICAgICAvKiB0aGUgc3RyaXBlIGZvciB0aGUgaW5kZXRlcm1pbmF0ZSBhbmltYXRpb24qLwogICAgICAuaW5kZXRlcm1pbmF0ZTo6YWZ0ZXIgewogICAgICAgIGhlaWdodDogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtaGVpZ2h0LCA0cHgpOwogICAgICB9CgogICAgICAjcHJpbWFyeVByb2dyZXNzLAogICAgICAjc2Vjb25kYXJ5UHJvZ3Jlc3MsCiAgICAgIC5pbmRldGVybWluYXRlOjphZnRlciB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZpdDsKICAgICAgfQoKICAgICAgI3Byb2dyZXNzQ29udGFpbmVyLAogICAgICAuaW5kZXRlcm1pbmF0ZTo6YWZ0ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLXByb2dyZXNzLWNvbnRhaW5lci1jb2xvciwgdmFyKC0tZ29vZ2xlLWdyZXktMzAwKSk7CiAgICAgIH0KCiAgICAgIDpob3N0KC50cmFuc2l0aW5nKSAjcHJpbWFyeVByb2dyZXNzLAogICAgICA6aG9zdCgudHJhbnNpdGluZykgI3NlY29uZGFyeVByb2dyZXNzIHsKICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtOwogICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTsKCiAgICAgICAgLyogRHVyYXRpb24gKi8KICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXByb2dyZXNzLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMDhzKTsKICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci1wcm9ncmVzcy10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjA4cyk7CgogICAgICAgIC8qIFRpbWluZyBmdW5jdGlvbiAqLwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXBhcGVyLXByb2dyZXNzLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlKTsKICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UpOwoKICAgICAgICAvKiBEZWxheSAqLwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtdHJhbnNpdGlvbi1kZWxheSwgMHMpOwogICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXBhcGVyLXByb2dyZXNzLXRyYW5zaXRpb24tZGVsYXksIDBzKTsKICAgICAgfQoKICAgICAgI3ByaW1hcnlQcm9ncmVzcywKICAgICAgI3NlY29uZGFyeVByb2dyZXNzIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0OwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwKTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CgogICAgICAjcHJpbWFyeVByb2dyZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci1wcm9ncmVzcy1hY3RpdmUtY29sb3IsIHZhcigtLWdvb2dsZS1ncmVlbi01MDApKTsKICAgICAgfQoKICAgICAgI3NlY29uZGFyeVByb2dyZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci1wcm9ncmVzcy1zZWNvbmRhcnktY29sb3IsIHZhcigtLWdvb2dsZS1ncmVlbi0xMDApKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgI3ByaW1hcnlQcm9ncmVzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtZGlzYWJsZWQtYWN0aXZlLWNvbG9yLCB2YXIoLS1nb29nbGUtZ3JleS01MDApKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgI3NlY29uZGFyeVByb2dyZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci1wcm9ncmVzcy1kaXNhYmxlZC1zZWNvbmRhcnktY29sb3IsIHZhcigtLWdvb2dsZS1ncmV5LTMwMCkpOwogICAgICB9CgogICAgICA6aG9zdCg6bm90KFtkaXNhYmxlZF0pKSAjcHJpbWFyeVByb2dyZXNzLmluZGV0ZXJtaW5hdGUgewogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyOwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZS1iYXIgdmFyKC0tcGFwZXItcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1jeWNsZS1kdXJhdGlvbiwgMnMpIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICBhbmltYXRpb246IGluZGV0ZXJtaW5hdGUtYmFyIHZhcigtLXBhcGVyLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtY3ljbGUtZHVyYXRpb24sIDJzKSBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIDpob3N0KDpub3QoW2Rpc2FibGVkXSkpICNwcmltYXJ5UHJvZ3Jlc3MuaW5kZXRlcm1pbmF0ZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICIiOwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwoKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZS1zcGxpdHRlciB2YXIoLS1wYXBlci1wcm9ncmVzcy1pbmRldGVybWluYXRlLWN5Y2xlLWR1cmF0aW9uLCAycykgbGluZWFyIGluZmluaXRlOwogICAgICAgIGFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZS1zcGxpdHRlciB2YXIoLS1wYXBlci1wcm9ncmVzcy1pbmRldGVybWluYXRlLWN5Y2xlLWR1cmF0aW9uLCAycykgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZS1iYXIgewogICAgICAgIDAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMTAwJSk7CiAgICAgICAgfQogICAgICAgIDUwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDEpIHRyYW5zbGF0ZVgoMCUpOwogICAgICAgIH0KICAgICAgICA3NSUgewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKSB0cmFuc2xhdGVYKDAlKTsKICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4yOCwuNjIsLjM3LC45MSk7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwKSB0cmFuc2xhdGVYKDAlKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBpbmRldGVybWluYXRlLXNwbGl0dGVyIHsKICAgICAgICAwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgtMTI1JSk7CiAgICAgICAgfQogICAgICAgIDMwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgtMTI1JSk7CiAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNDIsMCwuNiwuOCk7CiAgICAgICAgfQogICAgICAgIDkwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgxMjUlKTsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgxMjUlKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZS1iYXIgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpIHRyYW5zbGF0ZVgoLTEwMCUpOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgdHJhbnNsYXRlWCgwJSk7CiAgICAgICAgfQogICAgICAgIDc1JSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKSB0cmFuc2xhdGVYKDAlKTsKICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMjgsLjYyLC4zNywuOTEpOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApIHRyYW5zbGF0ZVgoMCUpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBpbmRldGVybWluYXRlLXNwbGl0dGVyIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCguNzUpIHRyYW5zbGF0ZVgoLTEyNSUpOwogICAgICAgIH0KICAgICAgICAzMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKC0xMjUlKTsKICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNDIsMCwuNiwuOCk7CiAgICAgICAgfQogICAgICAgIDkwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCguNzUpIHRyYW5zbGF0ZVgoMTI1JSk7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKDEyNSUpOwogICAgICAgIH0KICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJwcm9ncmVzc0NvbnRhaW5lciI+CiAgICAgIDxkaXYgaWQ9InNlY29uZGFyeVByb2dyZXNzIiBoaWRkZW5cJD0iW1tfaGlkZVNlY29uZGFyeVByb2dyZXNzKHNlY29uZGFyeVJhdGlvKV1dIj48L2Rpdj4KICAgICAgPGRpdiBpZD0icHJpbWFyeVByb2dyZXNzIj48L2Rpdj4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci1wcm9ncmVzcyIsYmVoYXZpb3JzOlt0c10scHJvcGVydGllczp7c2Vjb25kYXJ5UHJvZ3Jlc3M6e3R5cGU6TnVtYmVyLHZhbHVlOjB9LHNlY29uZGFyeVJhdGlvOnt0eXBlOk51bWJlcix2YWx1ZTowLHJlYWRPbmx5OiEwfSxpbmRldGVybWluYXRlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Il90b2dnbGVJbmRldGVybWluYXRlIn0sZGlzYWJsZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il9kaXNhYmxlZENoYW5nZWQifX0sb2JzZXJ2ZXJzOlsiX3Byb2dyZXNzQ2hhbmdlZChzZWNvbmRhcnlQcm9ncmVzcywgdmFsdWUsIG1pbiwgbWF4LCBpbmRldGVybWluYXRlKSJdLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJwcm9ncmVzc2JhciJ9LF90b2dnbGVJbmRldGVybWluYXRlOmZ1bmN0aW9uKHQpe3RoaXMudG9nZ2xlQ2xhc3MoImluZGV0ZXJtaW5hdGUiLHQsdGhpcy4kLnByaW1hcnlQcm9ncmVzcyl9LF90cmFuc2Zvcm1Qcm9ncmVzczpmdW5jdGlvbih0LGUpe3Quc3R5bGUudHJhbnNmb3JtPXQuc3R5bGUud2Via2l0VHJhbnNmb3JtPSJzY2FsZVgoIitlLzEwMCsiKSJ9LF9tYWluUmF0aW9DaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX3RyYW5zZm9ybVByb2dyZXNzKHRoaXMuJC5wcmltYXJ5UHJvZ3Jlc3MsdCl9LF9wcm9ncmVzc0NoYW5nZWQ6ZnVuY3Rpb24odCxlLG4saSxyKXt0PXRoaXMuX2NsYW1wVmFsdWUodCksZT10aGlzLl9jbGFtcFZhbHVlKGUpO3ZhciBvPTEwMCp0aGlzLl9jYWxjUmF0aW8odCksYT0xMDAqdGhpcy5fY2FsY1JhdGlvKGUpO3RoaXMuX3NldFNlY29uZGFyeVJhdGlvKG8pLHRoaXMuX3RyYW5zZm9ybVByb2dyZXNzKHRoaXMuJC5zZWNvbmRhcnlQcm9ncmVzcyxvKSx0aGlzLl90cmFuc2Zvcm1Qcm9ncmVzcyh0aGlzLiQucHJpbWFyeVByb2dyZXNzLGEpLHRoaXMuc2Vjb25kYXJ5UHJvZ3Jlc3M9dCxyP3RoaXMucmVtb3ZlQXR0cmlidXRlKCJhcmlhLXZhbHVlbm93Iik6dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtdmFsdWVub3ciLGUpLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbWluIixuKSx0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW1heCIsaSl9LF9kaXNhYmxlZENoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLHQ/InRydWUiOiJmYWxzZSIpfSxfaGlkZVNlY29uZGFyeVByb2dyZXNzOmZ1bmN0aW9uKHQpe3JldHVybiAwPT09dH19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgZXM9X2VgCjxzdHlsZT4KICA6aG9zdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBsaW5lLWhlaWdodDogMDsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgLS1jYWxjdWxhdGVkLXBhcGVyLXJhZGlvLWJ1dHRvbi1zaXplOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tc2l6ZSwgMTZweCk7CiAgICAvKiAtMXB4IGlzIGEgc2VudGluZWwgZm9yIHRoZSBkZWZhdWx0IGFuZCBpcyByZXBsYWNlIGluIFxgYXR0YWNoZWRcYC4gKi8KICAgIC0tY2FsY3VsYXRlZC1wYXBlci1yYWRpby1idXR0b24taW5rLXNpemU6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi1pbmstc2l6ZSwgLTFweCk7CiAgfQoKICA6aG9zdCg6Zm9jdXMpIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgfQoKICAjcmFkaW9Db250YWluZXIgewogICAgQGFwcGx5IC0tbGF5b3V0LWlubGluZTsKICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXItY2VudGVyOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLXNpemUpOwogICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXJhZGlvLWJ1dHRvbi1zaXplKTsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CgogICAgQGFwcGx5IC0tcGFwZXItcmFkaW8tYnV0dG9uLXJhZGlvLWNvbnRhaW5lcjsKICB9CgogICNpbmsgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiA1MCU7CiAgICBsZWZ0OiA1MCU7CiAgICByaWdodDogYXV0bzsKICAgIHdpZHRoOiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXJhZGlvLWJ1dHRvbi1pbmstc2l6ZSk7CiAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLWluay1zaXplKTsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tdW5jaGVja2VkLWluay1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICBvcGFjaXR5OiAwLjY7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICB9CgogICNpbmtbY2hlY2tlZF0gewogICAgY29sb3I6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi1jaGVja2VkLWluay1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwogIH0KCiAgI29mZlJhZGlvLCAjb25SYWRpbyB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgdG9wOiAwOwogICAgbGVmdDogMDsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogIH0KCiAgI29mZlJhZGlvIHsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi11bmNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLXVuY2hlY2tlZC1iYWNrZ3JvdW5kLWNvbG9yLCB0cmFuc3BhcmVudCk7CiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yOHM7CiAgfQoKICAjb25SYWRpbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApOwogICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIGVhc2UgMC4yOHM7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gZWFzZSAwLjI4czsKICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgfQoKICA6aG9zdChbY2hlY2tlZF0pICNvZmZSYWRpbyB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi1jaGVja2VkLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgfQoKICA6aG9zdChbY2hlY2tlZF0pICNvblJhZGlvIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpOwogIH0KCiAgI3JhZGlvTGFiZWwgewogICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICBtYXJnaW4tbGVmdDogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLWxhYmVsLXNwYWNpbmcsIDEwcHgpOwogICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tbGFiZWwtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwoKICAgIEBhcHBseSAtLXBhcGVyLXJhZGlvLWJ1dHRvbi1sYWJlbDsKICB9CgogIDpob3N0KFtjaGVja2VkXSkgI3JhZGlvTGFiZWwgewogICAgQGFwcGx5IC0tcGFwZXItcmFkaW8tYnV0dG9uLWxhYmVsLWNoZWNrZWQ7CiAgfQoKICAjcmFkaW9MYWJlbDpkaXIocnRsKSB7CiAgICBtYXJnaW4tbGVmdDogMDsKICAgIG1hcmdpbi1yaWdodDogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLWxhYmVsLXNwYWNpbmcsIDEwcHgpOwogIH0KCiAgI3JhZGlvTGFiZWxbaGlkZGVuXSB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KCiAgLyogZGlzYWJsZWQgc3RhdGUgKi8KCiAgOmhvc3QoW2Rpc2FibGVkXSkgI29mZlJhZGlvIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLXVuY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICBvcGFjaXR5OiAwLjU7CiAgfQoKICA6aG9zdChbZGlzYWJsZWRdW2NoZWNrZWRdKSAjb25SYWRpbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tdW5jaGVja2VkLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgIG9wYWNpdHk6IDAuNTsKICB9CgogIDpob3N0KFtkaXNhYmxlZF0pICNyYWRpb0xhYmVsIHsKICAgIC8qIHNsaWdodGx5IGRhcmtlciB0aGFuIHRoZSBidXR0b24sIHNvIHRoYXQgaXQncyByZWFkYWJsZSAqLwogICAgb3BhY2l0eTogMC42NTsKICB9Cjwvc3R5bGU+Cgo8ZGl2IGlkPSJyYWRpb0NvbnRhaW5lciI+CiAgPGRpdiBpZD0ib2ZmUmFkaW8iPjwvZGl2PgogIDxkaXYgaWQ9Im9uUmFkaW8iPjwvZGl2Pgo8L2Rpdj4KCjxkaXYgaWQ9InJhZGlvTGFiZWwiPjxzbG90Pjwvc2xvdD48L2Rpdj5gO2VzLnNldEF0dHJpYnV0ZSgic3RyaXAtd2hpdGVzcGFjZSIsIiIpLFJyKHtfdGVtcGxhdGU6ZXMsaXM6InBhcGVyLXJhZGlvLWJ1dHRvbiIsYmVoYXZpb3JzOlt1YV0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InJhZGlvIiwiYXJpYS1jaGVja2VkIjohMSx0YWJpbmRleDowfSxwcm9wZXJ0aWVzOnthcmlhQWN0aXZlQXR0cmlidXRlOnt0eXBlOlN0cmluZyx2YWx1ZToiYXJpYS1jaGVja2VkIn19LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5fcmlwcGxlQ29udGFpbmVyPXRoaXMuJC5yYWRpb0NvbnRhaW5lcn0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXtMaSh0aGlzLChmdW5jdGlvbigpe2lmKCItMXB4Ij09PXRoaXMuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLWluay1zaXplIikudHJpbSgpKXt2YXIgdD1wYXJzZUZsb2F0KHRoaXMuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLXNpemUiKS50cmltKCkpLGU9TWF0aC5mbG9vcigzKnQpO2UlMiE9dCUyJiZlKyssdGhpcy51cGRhdGVTdHlsZXMoeyItLXBhcGVyLXJhZGlvLWJ1dHRvbi1pbmstc2l6ZSI6ZSsicHgifSl9fSkpfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgbnM9e2hvc3RBdHRyaWJ1dGVzOntyb2xlOiJtZW51YmFyIn0sa2V5QmluZGluZ3M6e2xlZnQ6Il9vbkxlZnRLZXkiLHJpZ2h0OiJfb25SaWdodEtleSJ9LF9vblVwS2V5OmZ1bmN0aW9uKHQpe3RoaXMuZm9jdXNlZEl0ZW0uY2xpY2soKSx0LmRldGFpbC5rZXlib2FyZEV2ZW50LnByZXZlbnREZWZhdWx0KCl9LF9vbkRvd25LZXk6ZnVuY3Rpb24odCl7dGhpcy5mb2N1c2VkSXRlbS5jbGljaygpLHQuZGV0YWlsLmtleWJvYXJkRXZlbnQucHJldmVudERlZmF1bHQoKX0sZ2V0IF9pc1JUTCgpe3JldHVybiJydGwiPT09d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuZGlyZWN0aW9ufSxfb25MZWZ0S2V5OmZ1bmN0aW9uKHQpe3RoaXMuX2lzUlRMP3RoaXMuX2ZvY3VzTmV4dCgpOnRoaXMuX2ZvY3VzUHJldmlvdXMoKSx0LmRldGFpbC5rZXlib2FyZEV2ZW50LnByZXZlbnREZWZhdWx0KCl9LF9vblJpZ2h0S2V5OmZ1bmN0aW9uKHQpe3RoaXMuX2lzUlRMP3RoaXMuX2ZvY3VzUHJldmlvdXMoKTp0aGlzLl9mb2N1c05leHQoKSx0LmRldGFpbC5rZXlib2FyZEV2ZW50LnByZXZlbnREZWZhdWx0KCl9LF9vbktleWRvd246ZnVuY3Rpb24odCl7dGhpcy5rZXlib2FyZEV2ZW50TWF0Y2hlc0tleXModCwidXAgZG93biBsZWZ0IHJpZ2h0IGVzYyIpfHx0aGlzLl9mb2N1c1dpdGhLZXlib2FyZEV2ZW50KHQpfX0saXM9W0phLG5zXTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIDpob3N0IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgcGFkZGluZzogdmFyKC0tcGFwZXItcmFkaW8tZ3JvdXAtaXRlbS1wYWRkaW5nLCAxMnB4KTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLXJhZGlvLWdyb3VwIixiZWhhdmlvcnM6W2lzXSxob3N0QXR0cmlidXRlczp7cm9sZToicmFkaW9ncm91cCJ9LHByb3BlcnRpZXM6e2F0dHJGb3JTZWxlY3RlZDp7dHlwZTpTdHJpbmcsdmFsdWU6Im5hbWUifSxzZWxlY3RlZEF0dHJpYnV0ZTp7dHlwZTpTdHJpbmcsdmFsdWU6ImNoZWNrZWQifSxzZWxlY3RhYmxlOnt0eXBlOlN0cmluZyx2YWx1ZToicGFwZXItcmFkaW8tYnV0dG9uIn0sYWxsb3dFbXB0eVNlbGVjdGlvbjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sc2VsZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbHVlVG9JdGVtKHQpO2lmKCFlfHwhZS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpe2lmKHRoaXMuc2VsZWN0ZWQpe3ZhciBuPXRoaXMuX3ZhbHVlVG9JdGVtKHRoaXMuc2VsZWN0ZWQpO2lmKHRoaXMuc2VsZWN0ZWQ9PXQpe2lmKCF0aGlzLmFsbG93RW1wdHlTZWxlY3Rpb24pcmV0dXJuIHZvaWQobiYmKG4uY2hlY2tlZD0hMCkpO3Q9IiJ9biYmKG4uY2hlY2tlZD0hMSl9am8uc2VsZWN0LmFwcGx5KHRoaXMsW3RdKSx0aGlzLmZpcmUoInBhcGVyLXJhZGlvLWdyb3VwLWNoYW5nZWQiKX19LF9hY3RpdmF0ZUZvY3VzZWRJdGVtOmZ1bmN0aW9uKCl7dGhpcy5faXRlbUFjdGl2YXRlKHRoaXMuX3ZhbHVlRm9ySXRlbSh0aGlzLmZvY3VzZWRJdGVtKSx0aGlzLmZvY3VzZWRJdGVtKX0sX29uVXBLZXk6ZnVuY3Rpb24odCl7dGhpcy5fZm9jdXNQcmV2aW91cygpLHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9hY3RpdmF0ZUZvY3VzZWRJdGVtKCl9LF9vbkRvd25LZXk6ZnVuY3Rpb24odCl7dGhpcy5fZm9jdXNOZXh0KCksdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2FjdGl2YXRlRm9jdXNlZEl0ZW0oKX0sX29uTGVmdEtleTpmdW5jdGlvbih0KXtucy5fb25MZWZ0S2V5LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9hY3RpdmF0ZUZvY3VzZWRJdGVtKCl9LF9vblJpZ2h0S2V5OmZ1bmN0aW9uKHQpe25zLl9vblJpZ2h0S2V5LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9hY3RpdmF0ZUZvY3VzZWRJdGVtKCl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBycz1fZWAKICA8c3R5bGU+CiAgICA6aG9zdCB7CiAgICAgIEBhcHBseSAtLWxheW91dDsKICAgICAgQGFwcGx5IC0tbGF5b3V0LWp1c3RpZmllZDsKICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsKICAgICAgLS1wYXBlci1wcm9ncmVzcy1hY3RpdmUtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1hY3RpdmUtY29sb3IsIHZhcigtLWdvb2dsZS1ibHVlLTcwMCkpOwogICAgICAtLXBhcGVyLXByb2dyZXNzLXNlY29uZGFyeS1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLXNlY29uZGFyeS1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtMzAwKSk7CiAgICAgIC0tcGFwZXItcHJvZ3Jlc3MtZGlzYWJsZWQtYWN0aXZlLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItZGlzYWJsZWQtYWN0aXZlLWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTQwMCkpOwogICAgICAtLXBhcGVyLXByb2dyZXNzLWRpc2FibGVkLXNlY29uZGFyeS1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWRpc2FibGVkLXNlY29uZGFyeS1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgICAgLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQ6IHZhcigtLXBhcGVyLXNsaWRlci1oZWlnaHQsIDJweCk7CiAgICB9CgogICAgLyogZm9jdXMgc2hvd3MgdGhlIHJpcHBsZSAqLwogICAgOmhvc3QoOmZvY3VzKSB7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgLyoqCiAgICAgICogTk9URShrZWFudWxlZSk6IFRob3VnaCA6aG9zdC1jb250ZXh0IGlzIG5vdCB1bml2ZXJzYWxseSBzdXBwb3J0ZWQsIHNvbWUgcGFnZXMKICAgICAgKiBzdGlsbCByZWx5IG9uIHBhcGVyLXNsaWRlciBiZWluZyBmbGlwcGVkIHdoZW4gZGlyPSJydGwiIGlzIHNldCBvbiBib2R5LiBGb3IgZnVsbAogICAgICAqIGNvbXBhdGliaWxpdHksIGRpcj0icnRsIiBtdXN0IGJlIGV4cGxpY2l0bHkgc2V0IG9uIHBhcGVyLXNsaWRlci4KICAgICAgKi8KICAgIDpkaXIocnRsKSAjc2xpZGVyQ29udGFpbmVyIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgtMSk7CiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsKICAgIH0KCiAgICAvKioKICAgICAgKiBOT1RFKGtlYW51bGVlKTogVGhpcyBpcyBzZXBhcmF0ZSBmcm9tIHRoZSBydWxlIGFib3ZlIGJlY2F1c2UgOmhvc3QtY29udGV4dCBtYXkKICAgICAgKiBub3QgYmUgcmVjb2duaXplZC4KICAgICAgKi8KICAgIDpob3N0KFtkaXI9InJ0bCJdKSAjc2xpZGVyQ29udGFpbmVyIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgtMSk7CiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsKICAgIH0KCiAgICAvKioKICAgICAgKiBOT1RFKGtlYW51bGVlKTogTmVlZGVkIHRvIG92ZXJyaWRlIHRoZSA6aG9zdC1jb250ZXh0IHJ1bGUgKHdoZXJlIHN1cHBvcnRlZCkKICAgICAgKiB0byBzdXBwb3J0IExUUiBzbGlkZXJzIGluIFJUTCBwYWdlcy4KICAgICAgKi8KICAgIDpob3N0KFtkaXI9Imx0ciJdKSAjc2xpZGVyQ29udGFpbmVyIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7CiAgICB9CgogICAgI3NsaWRlckNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogY2FsYygzMHB4ICsgdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KSk7CiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDE1cHggKyB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpLzIpOwogICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoMTVweCArIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCkvMik7CiAgICB9CgogICAgI3NsaWRlckNvbnRhaW5lcjpmb2N1cyB7CiAgICAgIG91dGxpbmU6IDA7CiAgICB9CgogICAgI3NsaWRlckNvbnRhaW5lci5lZGl0YWJsZSB7CiAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICB9CgogICAgLmJhci1jb250YWluZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAucmluZyA+IC5iYXItY29udGFpbmVyIHsKICAgICAgbGVmdDogY2FsYyg1cHggKyB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpLzIpOwogICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuMThzIGVhc2U7CiAgICB9CgogICAgLnJpbmcuZXhwYW5kLmRyYWdnaW5nID4gLmJhci1jb250YWluZXIgewogICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgfQoKICAgIC5yaW5nLmV4cGFuZDpub3QoLnBpbikgPiAuYmFyLWNvbnRhaW5lciB7CiAgICAgIGxlZnQ6IGNhbGMoOHB4ICsgdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KS8yKTsKICAgIH0KCiAgICAjc2xpZGVyQmFyIHsKICAgICAgcGFkZGluZzogMTVweCAwOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWJhci1jb2xvciwgdHJhbnNwYXJlbnQpOwogICAgICAtLXBhcGVyLXByb2dyZXNzLWNvbnRhaW5lci1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWNvbnRhaW5lci1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgICAgLS1wYXBlci1wcm9ncmVzcy1oZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCk7CiAgICB9CgogICAgLnNsaWRlci1tYXJrZXJzIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAvKiBzbGlkZXIta25vYiBpcyAzMHB4ICsgdGhlIHNsaWRlci1oZWlnaHQgc28gdGhhdCB0aGUgbWFya2VycyBzaG91bGQgc3RhcnQgYXQgYSBvZmZzZXQgb2YgMTVweCovCiAgICAgIHRvcDogMTVweDsKICAgICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogLTFweDsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIEBhcHBseSAtLWxheW91dC1ob3Jpem9udGFsOwogICAgfQoKICAgIC5zbGlkZXItbWFya2VyIHsKICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXg7CiAgICB9CiAgICAuc2xpZGVyLW1hcmtlcnM6OmFmdGVyLAogICAgLnNsaWRlci1tYXJrZXI6OmFmdGVyIHsKICAgICAgY29udGVudDogIiI7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgICAgd2lkdGg6IDJweDsKICAgICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpOwogICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1tYXJrZXJzLWNvbG9yLCAjMDAwKTsKICAgIH0KCiAgICAuc2xpZGVyLWtub2IgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHRvcDogMDsKICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTE1cHggLSB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpLzIpOwogICAgICB3aWR0aDogY2FsYygzMHB4ICsgdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KSk7CiAgICAgIGhlaWdodDogY2FsYygzMHB4ICsgdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KSk7CiAgICB9CgogICAgLnRyYW5zaXRpbmcgPiAuc2xpZGVyLWtub2IgewogICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuMDhzIGVhc2U7CiAgICB9CgogICAgLnNsaWRlci1rbm9iOmZvY3VzIHsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICAuc2xpZGVyLWtub2IuZHJhZ2dpbmcgewogICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgfQoKICAgIC5zbmFwcyA+IC5zbGlkZXIta25vYi5kcmFnZ2luZyB7CiAgICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuMDhzIGVhc2U7CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA4cyBlYXNlOwogICAgfQoKICAgIC5zbGlkZXIta25vYi1pbm5lciB7CiAgICAgIG1hcmdpbjogMTBweDsKICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwogICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIwcHgpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXIta25vYi1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtNzAwKSk7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXBhcGVyLXNsaWRlci1rbm9iLWNvbG9yLCB2YXIoLS1nb29nbGUtYmx1ZS03MDApKTsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwoKICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwoKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm0sIGJhY2tncm91bmQtY29sb3IsIGJvcmRlcjsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXI7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMThzOwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsKICAgIH0KCiAgICAuZXhwYW5kOm5vdCgucGluKSA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lciB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjUpOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7CiAgICB9CgogICAgLnJpbmcgPiAuc2xpZGVyLWtub2IgPiAuc2xpZGVyLWtub2ItaW5uZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1jb2xvciwgdHJhbnNwYXJlbnQpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1ib3JkZXItY29sb3IsIHZhcigtLXBhcGVyLWdyZXktNDAwKSk7CiAgICB9CgogICAgLnNsaWRlci1rbm9iLWlubmVyOjpiZWZvcmUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItcGluLWNvbG9yLCB2YXIoLS1nb29nbGUtYmx1ZS03MDApKTsKICAgIH0KCiAgICAucGluID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyOjpiZWZvcmUgewogICAgICBjb250ZW50OiAiIjsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgbWFyZ2luLWxlZnQ6IC0xM3B4OwogICAgICB3aWR0aDogMjZweDsKICAgICAgaGVpZ2h0OiAyNnB4OwogICAgICBib3JkZXItcmFkaXVzOiA1MCUgNTAlIDUwJSAwOwoKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDApIHRyYW5zbGF0ZSgwKTsKICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKSB0cmFuc2xhdGUoMCk7CiAgICB9CgogICAgLnNsaWRlci1rbm9iLWlubmVyOjpiZWZvcmUsCiAgICAuc2xpZGVyLWtub2ItaW5uZXI6OmFmdGVyIHsKICAgICAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gLjE4cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIC4xOHMgZWFzZTsKICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xOHMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAuMThzIGVhc2U7CiAgICB9CgogICAgLnBpbi5yaW5nID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyOjpiZWZvcmUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItcGluLXN0YXJ0LWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTQwMCkpOwogICAgfQoKICAgIC5waW4uZXhwYW5kID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyOjpiZWZvcmUgewogICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMSkgdHJhbnNsYXRlKDE3cHgsIC0xN3B4KTsKICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKSB0cmFuc2xhdGUoMTdweCwgLTE3cHgpOwogICAgfQoKICAgIC5waW4gPiAuc2xpZGVyLWtub2IgPiAuc2xpZGVyLWtub2ItaW5uZXI6OmFmdGVyIHsKICAgICAgY29udGVudDogYXR0cih2YWx1ZSk7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiA1MCU7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweDsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMjZweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBjb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWZvbnQtY29sb3IsICNmZmYpOwogICAgICBmb250LXNpemU6IDEwcHg7CgogICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCkgdHJhbnNsYXRlKDApOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDApIHRyYW5zbGF0ZSgwKTsKICAgIH0KCiAgICAucGluLmV4cGFuZCA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lcjo6YWZ0ZXIgewogICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlKDAsIC0xN3B4KTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUoMCwgLTE3cHgpOwogICAgfQoKICAgIC8qIHBhcGVyLWlucHV0ICovCiAgICAuc2xpZGVyLWlucHV0IHsKICAgICAgd2lkdGg6IDUwcHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0OiB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXNsaWRlci1pbnB1dC1jb250YWluZXItaW5wdXQ7CiAgICAgIH07CiAgICAgIEBhcHBseSAtLXBhcGVyLXNsaWRlci1pbnB1dDsKICAgIH0KCiAgICAvKiBkaXNhYmxlZCBzdGF0ZSAqLwogICAgI3NsaWRlckNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC5kaXNhYmxlZCA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1kaXNhYmxlZC1rbm9iLWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTQwMCkpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1wYXBlci1zbGlkZXItZGlzYWJsZWQta25vYi1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMC43NSwgMSk7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAwLjc1LCAxKTsKICAgIH0KCiAgICAuZGlzYWJsZWQucmluZyA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWNvbG9yLCB0cmFuc3BhcmVudCk7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWJvcmRlci1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgIH0KCiAgICBwYXBlci1yaXBwbGUgewogICAgICBjb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWtub2ItY29sb3IsIHZhcigtLWdvb2dsZS1ibHVlLTcwMCkpOwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgaWQ9InNsaWRlckNvbnRhaW5lciIgY2xhc3NcJD0iW1tfZ2V0Q2xhc3NOYW1lcyhkaXNhYmxlZCwgcGluLCBzbmFwcywgaW1tZWRpYXRlVmFsdWUsIG1pbiwgZXhwYW5kLCBkcmFnZ2luZywgdHJhbnNpdGluZywgZWRpdGFibGUpXV0iPgogICAgPGRpdiBjbGFzcz0iYmFyLWNvbnRhaW5lciI+CiAgICAgIDxwYXBlci1wcm9ncmVzcyBkaXNhYmxlZFwkPSJbW2Rpc2FibGVkXV0iIGlkPSJzbGlkZXJCYXIiIGFyaWEtaGlkZGVuPSJ0cnVlIiBtaW49IltbbWluXV0iIG1heD0iW1ttYXhdXSIgc3RlcD0iW1tzdGVwXV0iIHZhbHVlPSJbW2ltbWVkaWF0ZVZhbHVlXV0iIHNlY29uZGFyeS1wcm9ncmVzcz0iW1tzZWNvbmRhcnlQcm9ncmVzc11dIiBvbi1kb3duPSJfYmFyZG93biIgb24tdXA9Il9yZXNldEtub2IiIG9uLXRyYWNrPSJfYmFydHJhY2siIG9uLXRhcD0iX2JhcmNsaWNrIj4KICAgICAgPC9wYXBlci1wcm9ncmVzcz4KICAgIDwvZGl2PgoKICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tzbmFwc11dIj4KICAgICAgPGRpdiBjbGFzcz0ic2xpZGVyLW1hcmtlcnMiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbbWFya2Vyc11dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlci1tYXJrZXIiPjwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90ZW1wbGF0ZT4KCiAgICA8ZGl2IGlkPSJzbGlkZXJLbm9iIiBjbGFzcz0ic2xpZGVyLWtub2IiIG9uLWRvd249Il9rbm9iZG93biIgb24tdXA9Il9yZXNldEtub2IiIG9uLXRyYWNrPSJfb25UcmFjayIgb24tdHJhbnNpdGlvbmVuZD0iX2tub2JUcmFuc2l0aW9uRW5kIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZXIta25vYi1pbm5lciIgdmFsdWVcJD0iW1tpbW1lZGlhdGVWYWx1ZV1dIj48L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbZWRpdGFibGVdXSI+CiAgICA8cGFwZXItaW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJudW1iZXIiIHN0ZXA9Iltbc3RlcF1dIiBtaW49IltbbWluXV0iIG1heD0iW1ttYXhdXSIgY2xhc3M9InNsaWRlci1pbnB1dCIgZGlzYWJsZWRcJD0iW1tkaXNhYmxlZF1dIiB2YWx1ZT0iW1tpbW1lZGlhdGVWYWx1ZV1dIiBvbi1jaGFuZ2U9Il9jaGFuZ2VWYWx1ZSIgb24ta2V5ZG93bj0iX2lucHV0S2V5RG93biIgbm8tbGFiZWwtZmxvYXQ+CiAgICA8L3BhcGVyLWlucHV0PgogIDwvdGVtcGxhdGU+CmA7cnMuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIiksUnIoe190ZW1wbGF0ZTpycyxpczoicGFwZXItc2xpZGVyIixiZWhhdmlvcnM6W3pvLHJhLGNhLHRzXSxwcm9wZXJ0aWVzOnt2YWx1ZTp7dHlwZTpOdW1iZXIsdmFsdWU6MH0sc25hcHM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITB9LHBpbjp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMH0sc2Vjb25kYXJ5UHJvZ3Jlc3M6e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwLG9ic2VydmVyOiJfc2Vjb25kYXJ5UHJvZ3Jlc3NDaGFuZ2VkIn0sZWRpdGFibGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saW1tZWRpYXRlVmFsdWU6e3R5cGU6TnVtYmVyLHZhbHVlOjAscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSxtYXhNYXJrZXJzOnt0eXBlOk51bWJlcix2YWx1ZTowLG5vdGlmeTohMH0sZXhwYW5kOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVhZE9ubHk6ITB9LGlnbm9yZUJhclRvdWNoOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGRyYWdnaW5nOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSx0cmFuc2l0aW5nOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVhZE9ubHk6ITB9LG1hcmtlcnM6e3R5cGU6QXJyYXkscmVhZE9ubHk6ITAsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bXX19fSxvYnNlcnZlcnM6WyJfdXBkYXRlS25vYih2YWx1ZSwgbWluLCBtYXgsIHNuYXBzLCBzdGVwKSIsIl92YWx1ZUNoYW5nZWQodmFsdWUpIiwiX2ltbWVkaWF0ZVZhbHVlQ2hhbmdlZChpbW1lZGlhdGVWYWx1ZSkiLCJfdXBkYXRlTWFya2VycyhtYXhNYXJrZXJzLCBtaW4sIG1heCwgc25hcHMpIl0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InNsaWRlciIsdGFiaW5kZXg6MH0sa2V5QmluZGluZ3M6e2xlZnQ6Il9sZWZ0S2V5IixyaWdodDoiX3JpZ2h0S2V5IiwiZG93biBwYWdlZG93biBob21lIjoiX2RlY3JlbWVudEtleSIsInVwIHBhZ2V1cCBlbmQiOiJfaW5jcmVtZW50S2V5In0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLmlnbm9yZUJhclRvdWNoJiZvaSh0aGlzLiQuc2xpZGVyQmFyLCJhdXRvIil9LGluY3JlbWVudDpmdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5fY2xhbXBWYWx1ZSh0aGlzLnZhbHVlK3RoaXMuc3RlcCl9LGRlY3JlbWVudDpmdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5fY2xhbXBWYWx1ZSh0aGlzLnZhbHVlLXRoaXMuc3RlcCl9LF91cGRhdGVLbm9iOmZ1bmN0aW9uKHQsZSxuLGkscil7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtdmFsdWVtaW4iLGUpLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbWF4IixuKSx0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW5vdyIsdCksdGhpcy5fcG9zaXRpb25Lbm9iKDEwMCp0aGlzLl9jYWxjUmF0aW8odCkpfSxfdmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5maXJlKCJ2YWx1ZS1jaGFuZ2UiLHtjb21wb3NlZDohMH0pfSxfaW1tZWRpYXRlVmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5kcmFnZ2luZz90aGlzLmZpcmUoImltbWVkaWF0ZS12YWx1ZS1jaGFuZ2UiLHtjb21wb3NlZDohMH0pOnRoaXMudmFsdWU9dGhpcy5pbW1lZGlhdGVWYWx1ZX0sX3NlY29uZGFyeVByb2dyZXNzQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuc2Vjb25kYXJ5UHJvZ3Jlc3M9dGhpcy5fY2xhbXBWYWx1ZSh0aGlzLnNlY29uZGFyeVByb2dyZXNzKX0sX2V4cGFuZEtub2I6ZnVuY3Rpb24oKXt0aGlzLl9zZXRFeHBhbmQoITApfSxfcmVzZXRLbm9iOmZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxEZWJvdW5jZXIoImV4cGFuZEtub2IiKSx0aGlzLl9zZXRFeHBhbmQoITEpfSxfcG9zaXRpb25Lbm9iOmZ1bmN0aW9uKHQpe3RoaXMuX3NldEltbWVkaWF0ZVZhbHVlKHRoaXMuX2NhbGNTdGVwKHRoaXMuX2NhbGNLbm9iUG9zaXRpb24odCkpKSx0aGlzLl9zZXRSYXRpbygxMDAqdGhpcy5fY2FsY1JhdGlvKHRoaXMuaW1tZWRpYXRlVmFsdWUpKSx0aGlzLiQuc2xpZGVyS25vYi5zdHlsZS5sZWZ0PXRoaXMucmF0aW8rIiUiLHRoaXMuZHJhZ2dpbmcmJih0aGlzLl9rbm9ic3RhcnR4PXRoaXMucmF0aW8qdGhpcy5fdy8xMDAsdGhpcy50cmFuc2xhdGUzZCgwLDAsMCx0aGlzLiQuc2xpZGVyS25vYikpfSxfY2FsY0tub2JQb3NpdGlvbjpmdW5jdGlvbih0KXtyZXR1cm4odGhpcy5tYXgtdGhpcy5taW4pKnQvMTAwK3RoaXMubWlufSxfb25UcmFjazpmdW5jdGlvbih0KXtzd2l0Y2godC5zdG9wUHJvcGFnYXRpb24oKSx0LmRldGFpbC5zdGF0ZSl7Y2FzZSJzdGFydCI6dGhpcy5fdHJhY2tTdGFydCh0KTticmVhaztjYXNlInRyYWNrIjp0aGlzLl90cmFja1godCk7YnJlYWs7Y2FzZSJlbmQiOnRoaXMuX3RyYWNrRW5kKCl9fSxfdHJhY2tTdGFydDpmdW5jdGlvbih0KXt0aGlzLl9zZXRUcmFuc2l0aW5nKCExKSx0aGlzLl93PXRoaXMuJC5zbGlkZXJCYXIub2Zmc2V0V2lkdGgsdGhpcy5feD10aGlzLnJhdGlvKnRoaXMuX3cvMTAwLHRoaXMuX3N0YXJ0eD10aGlzLl94LHRoaXMuX2tub2JzdGFydHg9dGhpcy5fc3RhcnR4LHRoaXMuX21pbng9LXRoaXMuX3N0YXJ0eCx0aGlzLl9tYXh4PXRoaXMuX3ctdGhpcy5fc3RhcnR4LHRoaXMuJC5zbGlkZXJLbm9iLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksdGhpcy5fc2V0RHJhZ2dpbmcoITApfSxfdHJhY2tYOmZ1bmN0aW9uKHQpe3RoaXMuZHJhZ2dpbmd8fHRoaXMuX3RyYWNrU3RhcnQodCk7dmFyIGU9TWF0aC5taW4odGhpcy5fbWF4eCxNYXRoLm1heCh0aGlzLl9taW54LHQuZGV0YWlsLmR4Kih0aGlzLl9pc1JUTD8tMToxKSkpO3RoaXMuX3g9dGhpcy5fc3RhcnR4K2U7dmFyIG49dGhpcy5fY2FsY1N0ZXAodGhpcy5fY2FsY0tub2JQb3NpdGlvbih0aGlzLl94L3RoaXMuX3cqMTAwKSk7dGhpcy5fc2V0SW1tZWRpYXRlVmFsdWUobik7dmFyIGk9dGhpcy5fY2FsY1JhdGlvKHRoaXMuaW1tZWRpYXRlVmFsdWUpKnRoaXMuX3ctdGhpcy5fa25vYnN0YXJ0eDt0aGlzLnRyYW5zbGF0ZTNkKGkrInB4IiwwLDAsdGhpcy4kLnNsaWRlcktub2IpfSxfdHJhY2tFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiQuc2xpZGVyS25vYi5zdHlsZTt0aGlzLiQuc2xpZGVyS25vYi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuX3NldERyYWdnaW5nKCExKSx0aGlzLl9yZXNldEtub2IoKSx0aGlzLnZhbHVlPXRoaXMuaW1tZWRpYXRlVmFsdWUsdC50cmFuc2Zvcm09dC53ZWJraXRUcmFuc2Zvcm09IiIsdGhpcy5maXJlKCJjaGFuZ2UiLHtjb21wb3NlZDohMH0pfSxfa25vYmRvd246ZnVuY3Rpb24odCl7dGhpcy5fZXhwYW5kS25vYigpLHQucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzKCl9LF9iYXJ0cmFjazpmdW5jdGlvbih0KXt0aGlzLl9hbGxvd0JhckV2ZW50KHQpJiZ0aGlzLl9vblRyYWNrKHQpfSxfYmFyY2xpY2s6ZnVuY3Rpb24odCl7dGhpcy5fdz10aGlzLiQuc2xpZGVyQmFyLm9mZnNldFdpZHRoO3ZhciBlPXRoaXMuJC5zbGlkZXJCYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj0odC5kZXRhaWwueC1lLmxlZnQpL3RoaXMuX3cqMTAwO3RoaXMuX2lzUlRMJiYobj0xMDAtbik7dmFyIGk9dGhpcy5yYXRpbzt0aGlzLl9zZXRUcmFuc2l0aW5nKCEwKSx0aGlzLl9wb3NpdGlvbktub2IobiksaT09PXRoaXMucmF0aW8mJnRoaXMuX3NldFRyYW5zaXRpbmcoITEpLHRoaXMuYXN5bmMoKGZ1bmN0aW9uKCl7dGhpcy5maXJlKCJjaGFuZ2UiLHtjb21wb3NlZDohMH0pfSkpLHQucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzKCl9LF9iYXJkb3duOmZ1bmN0aW9uKHQpe3RoaXMuX2FsbG93QmFyRXZlbnQodCkmJih0aGlzLmRlYm91bmNlKCJleHBhbmRLbm9iIix0aGlzLl9leHBhbmRLbm9iLDYwKSx0aGlzLl9iYXJjbGljayh0KSl9LF9rbm9iVHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0KXt0LnRhcmdldD09PXRoaXMuJC5zbGlkZXJLbm9iJiZ0aGlzLl9zZXRUcmFuc2l0aW5nKCExKX0sX3VwZGF0ZU1hcmtlcnM6ZnVuY3Rpb24odCxlLG4saSl7aXx8dGhpcy5fc2V0TWFya2VycyhbXSk7dmFyIHI9TWF0aC5yb3VuZCgobi1lKS90aGlzLnN0ZXApO3I+dCYmKHI9dCksKHI8MHx8IWlzRmluaXRlKHIpKSYmKHI9MCksdGhpcy5fc2V0TWFya2VycyhuZXcgQXJyYXkocikpfSxfbWVyZ2VDbGFzc2VzOmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpLmpvaW4oIiAiKX0sX2dldENsYXNzTmFtZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWVyZ2VDbGFzc2VzKHtkaXNhYmxlZDp0aGlzLmRpc2FibGVkLHBpbjp0aGlzLnBpbixzbmFwczp0aGlzLnNuYXBzLHJpbmc6dGhpcy5pbW1lZGlhdGVWYWx1ZTw9dGhpcy5taW4sZXhwYW5kOnRoaXMuZXhwYW5kLGRyYWdnaW5nOnRoaXMuZHJhZ2dpbmcsdHJhbnNpdGluZzp0aGlzLnRyYW5zaXRpbmcsZWRpdGFibGU6dGhpcy5lZGl0YWJsZX0pfSxfYWxsb3dCYXJFdmVudDpmdW5jdGlvbih0KXtyZXR1cm4hdGhpcy5pZ25vcmVCYXJUb3VjaHx8dC5kZXRhaWwuc291cmNlRXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50fSxnZXQgX2lzUlRMKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX19pc1JUTCYmKHRoaXMuX19pc1JUTD0icnRsIj09PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmRpcmVjdGlvbiksdGhpcy5fX2lzUlRMfSxfbGVmdEtleTpmdW5jdGlvbih0KXt0aGlzLl9pc1JUTD90aGlzLl9pbmNyZW1lbnRLZXkodCk6dGhpcy5fZGVjcmVtZW50S2V5KHQpfSxfcmlnaHRLZXk6ZnVuY3Rpb24odCl7dGhpcy5faXNSVEw/dGhpcy5fZGVjcmVtZW50S2V5KHQpOnRoaXMuX2luY3JlbWVudEtleSh0KX0sX2luY3JlbWVudEtleTpmdW5jdGlvbih0KXt0aGlzLmRpc2FibGVkfHwoImVuZCI9PT10LmRldGFpbC5rZXk/dGhpcy52YWx1ZT10aGlzLm1heDp0aGlzLmluY3JlbWVudCgpLHRoaXMuZmlyZSgiY2hhbmdlIiksdC5wcmV2ZW50RGVmYXVsdCgpKX0sX2RlY3JlbWVudEtleTpmdW5jdGlvbih0KXt0aGlzLmRpc2FibGVkfHwoImhvbWUiPT09dC5kZXRhaWwua2V5P3RoaXMudmFsdWU9dGhpcy5taW46dGhpcy5kZWNyZW1lbnQoKSx0aGlzLmZpcmUoImNoYW5nZSIpLHQucHJldmVudERlZmF1bHQoKSl9LF9jaGFuZ2VWYWx1ZTpmdW5jdGlvbih0KXt0aGlzLnZhbHVlPXQudGFyZ2V0LnZhbHVlLHRoaXMuZmlyZSgiY2hhbmdlIix7Y29tcG9zZWQ6ITB9KX0sX2lucHV0S2V5RG93bjpmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfSxfY3JlYXRlUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JpcHBsZUNvbnRhaW5lcj10aGlzLiQuc2xpZGVyS25vYixsYS5fY3JlYXRlUmlwcGxlLmNhbGwodGhpcyl9LF9mb2N1c2VkQ2hhbmdlZDpmdW5jdGlvbih0KXt0JiZ0aGlzLmVuc3VyZVJpcHBsZSgpLHRoaXMuaGFzUmlwcGxlKCkmJih0aGlzLl9yaXBwbGUuc3R5bGUuZGlzcGxheT10PyIiOiJub25lIix0aGlzLl9yaXBwbGUuaG9sZERvd249dCl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBvcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO29zLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLG9zLmlubmVySFRNTD0iPGRvbS1tb2R1bGUgaWQ9XCJwYXBlci1zcGlubmVyLXN0eWxlc1wiPlxuICA8dGVtcGxhdGU+XG4gICAgPHN0eWxlPlxuICAgICAgLypcbiAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgIC8qIFNUWUxFUyBGT1IgVEhFIFNQSU5ORVIgKi9cbiAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgLypcbiAgICAgICAqIENvbnN0YW50czpcbiAgICAgICAqICAgICAgQVJDU0laRSAgICAgPSAyNzAgZGVncmVlcyAoYW1vdW50IG9mIGNpcmNsZSB0aGUgYXJjIHRha2VzIHVwKVxuICAgICAgICogICAgICBBUkNUSU1FICAgICA9IDEzMzNtcyAodGltZSBpdCB0YWtlcyB0byBleHBhbmQgYW5kIGNvbnRyYWN0IGFyYylcbiAgICAgICAqICAgICAgQVJDU1RBUlRST1QgPSAyMTYgZGVncmVlcyAoaG93IG11Y2ggdGhlIHN0YXJ0IGxvY2F0aW9uIG9mIHRoZSBhcmNcbiAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGQgcm90YXRlIGVhY2ggdGltZSwgMjE2IGdpdmVzIHVzIGFcbiAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1IHBvaW50ZWQgc3RhciBzaGFwZSAoaXQncyAzNjAvNSAqIDMpLlxuICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBhIDcgcG9pbnRlZCBzdGFyLCB3ZSBtaWdodCBkb1xuICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2MC83ICogMyA9IDE1NC4yODYpXG4gICAgICAgKiAgICAgIFNIUklOS19USU1FID0gNDAwbXNcbiAgICAgICAqL1xuXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuXG4gICAgICAgIC8qIDM2MCAqIEFSQ1RJTUUgLyAoQVJDU1RBUlRST1QgKyAoMzYwLUFSQ1NJWkUpKSAqL1xuICAgICAgICAtLXBhcGVyLXNwaW5uZXItY29udGFpbmVyLXJvdGF0aW9uLWR1cmF0aW9uOiAxNTY4bXM7XG5cbiAgICAgICAgLyogQVJDVElNRSAqL1xuICAgICAgICAtLXBhcGVyLXNwaW5uZXItZXhwYW5kLWNvbnRyYWN0LWR1cmF0aW9uOiAxMzMzbXM7XG5cbiAgICAgICAgLyogNCAqIEFSQ1RJTUUgKi9cbiAgICAgICAgLS1wYXBlci1zcGlubmVyLWZ1bGwtY3ljbGUtZHVyYXRpb246IDUzMzJtcztcblxuICAgICAgICAvKiBTSFJJTktfVElNRSAqL1xuICAgICAgICAtLXBhcGVyLXNwaW5uZXItY29vbGRvd24tZHVyYXRpb246IDQwMG1zO1xuICAgICAgfVxuXG4gICAgICAjc3Bpbm5lckNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLyogVGhlIHNwaW5uZXIgZG9lcyBub3QgaGF2ZSBhbnkgY29udGVudHMgdGhhdCB3b3VsZCBoYXZlIHRvIGJlXG4gICAgICAgICAqIGZsaXBwZWQgaWYgdGhlIGRpcmVjdGlvbiBjaGFuZ2VzLiBBbHdheXMgdXNlIGx0ciBzbyB0aGF0IHRoZVxuICAgICAgICAgKiBzdHlsZSB3b3JrcyBvdXQgY29ycmVjdGx5IGluIGJvdGggY2FzZXMuICovXG4gICAgICAgIGRpcmVjdGlvbjogbHRyO1xuICAgICAgfVxuXG4gICAgICAjc3Bpbm5lckNvbnRhaW5lci5hY3RpdmUge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogY29udGFpbmVyLXJvdGF0ZSB2YXIoLS1wYXBlci1zcGlubmVyLWNvbnRhaW5lci1yb3RhdGlvbi1kdXJhdGlvbikgbGluZWFyIGluZmluaXRlO1xuICAgICAgICBhbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgdmFyKC0tcGFwZXItc3Bpbm5lci1jb250YWluZXItcm90YXRpb24tZHVyYXRpb24pIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGNvbnRhaW5lci1yb3RhdGUge1xuICAgICAgICB0byB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY29udGFpbmVyLXJvdGF0ZSB7XG4gICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSB9XG4gICAgICB9XG5cbiAgICAgIC5zcGlubmVyLWxheWVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItc3Bpbm5lci1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtNTAwKSk7XG4gICAgICB9XG5cbiAgICAgIC5sYXllci0xIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXNwaW5uZXItbGF5ZXItMS1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtNTAwKSk7XG4gICAgICB9XG5cbiAgICAgIC5sYXllci0yIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXNwaW5uZXItbGF5ZXItMi1jb2xvciwgdmFyKC0tZ29vZ2xlLXJlZC01MDApKTtcbiAgICAgIH1cblxuICAgICAgLmxheWVyLTMge1xuICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItc3Bpbm5lci1sYXllci0zLWNvbG9yLCB2YXIoLS1nb29nbGUteWVsbG93LTUwMCkpO1xuICAgICAgfVxuXG4gICAgICAubGF5ZXItNCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1zcGlubmVyLWxheWVyLTQtY29sb3IsIHZhcigtLWdvb2dsZS1ncmVlbi01MDApKTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJTVBPUlRBTlQgTk9URSBBQk9VVCBDU1MgQU5JTUFUSU9OIFBST1BFUlRJRVMgKGtlYW51bGVlKTpcbiAgICAgICAqXG4gICAgICAgKiBpT1MgU2FmYXJpICh0ZXN0ZWQgb24gaU9TIDguMSkgZG9lcyBub3QgaGFuZGxlIGFuaW1hdGlvbi1kZWxheSB2ZXJ5IHdlbGwgLSBpdCBkb2Vzbid0XG4gICAgICAgKiBndWFyYW50ZWUgdGhhdCB0aGUgYW5pbWF0aW9uIHdpbGwgc3RhcnQgX2V4YWN0bHlfIGFmdGVyIHRoYXQgdmFsdWUuIFNvIHdlIGF2b2lkIHVzaW5nXG4gICAgICAgKiBhbmltYXRpb24tZGVsYXkgYW5kIGluc3RlYWQgc2V0IGN1c3RvbSBrZXlmcmFtZXMgZm9yIGVhY2ggY29sb3IgKGFzIGxheWVyLTJ1bmRhbnQgYXMgaXRcbiAgICAgICAqIHNlZW1zKS5cbiAgICAgICAqL1xuICAgICAgLmFjdGl2ZSAuc3Bpbm5lci1sYXllciB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXNwaW5uZXItZnVsbC1jeWNsZS1kdXJhdGlvbik7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXNwaW5uZXItZnVsbC1jeWNsZS1kdXJhdGlvbik7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKTtcbiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC5hY3RpdmUgLnNwaW5uZXItbGF5ZXIubGF5ZXItMSB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItMS1mYWRlLWluLW91dDtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItMS1mYWRlLWluLW91dDtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5sYXllci0yIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlLCBsYXllci0yLWZhZGUtaW4tb3V0O1xuICAgICAgICBhbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlLCBsYXllci0yLWZhZGUtaW4tb3V0O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZlIC5zcGlubmVyLWxheWVyLmxheWVyLTMge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGUsIGxheWVyLTMtZmFkZS1pbi1vdXQ7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGUsIGxheWVyLTMtZmFkZS1pbi1vdXQ7XG4gICAgICB9XG5cbiAgICAgIC5hY3RpdmUgLnNwaW5uZXItbGF5ZXIubGF5ZXItNCB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItNC1mYWRlLWluLW91dDtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItNC1mYWRlLWluLW91dDtcbiAgICAgIH1cblxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGZpbGwtdW5maWxsLXJvdGF0ZSB7XG4gICAgICAgIDEyLjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIH0gLyogMC41ICogQVJDU0laRSAqL1xuICAgICAgICAyNSUgICB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSB9IC8qIDEgICAqIEFSQ1NJWkUgKi9cbiAgICAgICAgMzcuNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQwNWRlZykgfSAvKiAxLjUgKiBBUkNTSVpFICovXG4gICAgICAgIDUwJSAgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpIH0gLyogMiAgICogQVJDU0laRSAqL1xuICAgICAgICA2Mi41JSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNjc1ZGVnKSB9IC8qIDIuNSAqIEFSQ1NJWkUgKi9cbiAgICAgICAgNzUlICAgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDgxMGRlZykgfSAvKiAzICAgKiBBUkNTSVpFICovXG4gICAgICAgIDg3LjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5NDVkZWcpIH0gLyogMy41ICogQVJDU0laRSAqL1xuICAgICAgICB0byAgICB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTA4MGRlZykgfSAvKiA0ICAgKiBBUkNTSVpFICovXG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgZmlsbC11bmZpbGwtcm90YXRlIHtcbiAgICAgICAgMTIuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIH0gLyogMC41ICogQVJDU0laRSAqL1xuICAgICAgICAyNSUgICB7IHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgfSAvKiAxICAgKiBBUkNTSVpFICovXG4gICAgICAgIDM3LjUlIHsgdHJhbnNmb3JtOiByb3RhdGUoNDA1ZGVnKSB9IC8qIDEuNSAqIEFSQ1NJWkUgKi9cbiAgICAgICAgNTAlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpIH0gLyogMiAgICogQVJDU0laRSAqL1xuICAgICAgICA2Mi41JSB7IHRyYW5zZm9ybTogcm90YXRlKDY3NWRlZykgfSAvKiAyLjUgKiBBUkNTSVpFICovXG4gICAgICAgIDc1JSAgIHsgdHJhbnNmb3JtOiByb3RhdGUoODEwZGVnKSB9IC8qIDMgICAqIEFSQ1NJWkUgKi9cbiAgICAgICAgODcuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5NDVkZWcpIH0gLyogMy41ICogQVJDU0laRSAqL1xuICAgICAgICB0byAgICB7IHRyYW5zZm9ybTogcm90YXRlKDEwODBkZWcpIH0gLyogNCAgICogQVJDU0laRSAqL1xuICAgICAgfVxuXG4gICAgICBALXdlYmtpdC1rZXlmcmFtZXMgbGF5ZXItMS1mYWRlLWluLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIDI1JSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICAyNiUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgODklIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDkwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICB0byB7IG9wYWNpdHk6IDEgfVxuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGxheWVyLTEtZmFkZS1pbi1vdXQge1xuICAgICAgICAwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICAyNSUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgMjYlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDg5JSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICA5MCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgdG8geyBvcGFjaXR5OiAxIH1cbiAgICAgIH1cblxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGxheWVyLTItZmFkZS1pbi1vdXQge1xuICAgICAgICAwJSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICAxNSUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgMjUlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIDUwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICA1MSUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBsYXllci0yLWZhZGUtaW4tb3V0IHtcbiAgICAgICAgMCUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgMTUlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDI1JSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICA1MCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgNTElIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMCB9XG4gICAgICB9XG5cbiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBsYXllci0zLWZhZGUtaW4tb3V0IHtcbiAgICAgICAgMCUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgNDAlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDUwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICA3NSUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgNzYlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMCB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgbGF5ZXItMy1mYWRlLWluLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDQwJSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICA1MCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgNzUlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIDc2JSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICB0byB7IG9wYWNpdHk6IDAgfVxuICAgICAgfVxuXG4gICAgICBALXdlYmtpdC1rZXlmcmFtZXMgbGF5ZXItNC1mYWRlLWluLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDY1JSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICA3NSUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgOTAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMCB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgbGF5ZXItNC1mYWRlLWluLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDY1JSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICA3NSUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgOTAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMCB9XG4gICAgICB9XG5cbiAgICAgIC5jaXJjbGUtY2xpcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogUGF0Y2ggdGhlIGdhcCB0aGF0IGFwcGVhciBiZXR3ZWVuIHRoZSB0d28gYWRqYWNlbnQgZGl2LmNpcmNsZS1jbGlwcGVyIHdoaWxlIHRoZVxuICAgICAgICogc3Bpbm5lciBpcyByb3RhdGluZyAoYXBwZWFycyBvbiBDaHJvbWUgNTAsIFNhZmFyaSA5LjEuMSwgYW5kIEVkZ2UpLlxuICAgICAgICovXG4gICAgICAuc3Bpbm5lci1sYXllcjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgbGVmdDogNDUlO1xuICAgICAgICB3aWR0aDogMTAlO1xuICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICAgIH1cblxuICAgICAgLnNwaW5uZXItbGF5ZXI6OmFmdGVyLFxuICAgICAgLmNpcmNsZS1jbGlwcGVyIC5jaXJjbGUge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1wYXBlci1zcGlubmVyLXN0cm9rZS13aWR0aCwgM3B4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuXG4gICAgICAuY2lyY2xlLWNsaXBwZXIgLmNpcmNsZSB7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDIwMCU7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaXJjbGUtY2xpcHBlci5sZWZ0IC5jaXJjbGUge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTI5ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTI5ZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNpcmNsZS1jbGlwcGVyLnJpZ2h0IC5jaXJjbGUge1xuICAgICAgICBsZWZ0OiAtMTAwJTtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEyOWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMjlkZWcpO1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZlIC5nYXAtcGF0Y2g6OmFmdGVyLFxuICAgICAgLmFjdGl2ZSAuY2lyY2xlLWNsaXBwZXIgLmNpcmNsZSB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci1zcGlubmVyLWV4cGFuZC1jb250cmFjdC1kdXJhdGlvbik7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXNwaW5uZXItZXhwYW5kLWNvbnRyYWN0LWR1cmF0aW9uKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpO1xuICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2ZSAuY2lyY2xlLWNsaXBwZXIubGVmdCAuY2lyY2xlIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGVmdC1zcGluO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogbGVmdC1zcGluO1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZlIC5jaXJjbGUtY2xpcHBlci5yaWdodCAuY2lyY2xlIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcmlnaHQtc3BpbjtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHJpZ2h0LXNwaW47XG4gICAgICB9XG5cbiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBsZWZ0LXNwaW4ge1xuICAgICAgICAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKSB9XG4gICAgICAgIDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpIH1cbiAgICAgICAgdG8geyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzMGRlZykgfVxuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGxlZnQtc3BpbiB7XG4gICAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKSB9XG4gICAgICAgIDUwJSB7IHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKSB9XG4gICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKSB9XG4gICAgICB9XG5cbiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyByaWdodC1zcGluIHtcbiAgICAgICAgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpIH1cbiAgICAgICAgNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKSB9XG4gICAgICAgIHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKSB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgcmlnaHQtc3BpbiB7XG4gICAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZykgfVxuICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKSB9XG4gICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZykgfVxuICAgICAgfVxuXG4gICAgICAjc3Bpbm5lckNvbnRhaW5lci5jb29sZG93biB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIHZhcigtLXBhcGVyLXNwaW5uZXItY29udGFpbmVyLXJvdGF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGUsIGZhZGUtb3V0IHZhcigtLXBhcGVyLXNwaW5uZXItY29vbGRvd24tZHVyYXRpb24pIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKTtcbiAgICAgICAgYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIHZhcigtLXBhcGVyLXNwaW5uZXItY29udGFpbmVyLXJvdGF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGUsIGZhZGUtb3V0IHZhcigtLXBhcGVyLXNwaW5uZXItY29vbGRvd24tZHVyYXRpb24pIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKTtcbiAgICAgIH1cblxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUtb3V0IHtcbiAgICAgICAgMCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBmYWRlLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMCB9XG4gICAgICB9XG4gICAgPC9zdHlsZT5cbiAgPC90ZW1wbGF0ZT5cbjwvZG9tLW1vZHVsZT4iLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQob3MuY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBhcz17cHJvcGVydGllczp7YWN0aXZlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVmbGVjdFRvQXR0cmlidXRlOiEwLG9ic2VydmVyOiJfX2FjdGl2ZUNoYW5nZWQifSxhbHQ6e3R5cGU6U3RyaW5nLHZhbHVlOiJsb2FkaW5nIixvYnNlcnZlcjoiX19hbHRDaGFuZ2VkIn0sX19jb29saW5nRG93bjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sX19jb21wdXRlQ29udGFpbmVyQ2xhc3NlczpmdW5jdGlvbih0LGUpe3JldHVyblt0fHxlPyJhY3RpdmUiOiIiLGU/ImNvb2xkb3duIjoiIl0uam9pbigiICIpfSxfX2FjdGl2ZUNoYW5nZWQ6ZnVuY3Rpb24odCxlKXt0aGlzLl9fc2V0QXJpYUhpZGRlbighdCksdGhpcy5fX2Nvb2xpbmdEb3duPSF0JiZlfSxfX2FsdENoYW5nZWQ6ZnVuY3Rpb24odCl7ImxvYWRpbmciPT09dD90aGlzLmFsdD10aGlzLmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpfHx0Oih0aGlzLl9fc2V0QXJpYUhpZGRlbigiIj09PXQpLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0KSl9LF9fc2V0QXJpYUhpZGRlbjpmdW5jdGlvbih0KXt2YXIgZT0iYXJpYS1oaWRkZW4iO3Q/dGhpcy5zZXRBdHRyaWJ1dGUoZSwidHJ1ZSIpOnRoaXMucmVtb3ZlQXR0cmlidXRlKGUpfSxfX3Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5hY3RpdmU9ITEsdGhpcy5fX2Nvb2xpbmdEb3duPSExfX0sc3M9X2VgCiAgPHN0eWxlIGluY2x1ZGU9InBhcGVyLXNwaW5uZXItc3R5bGVzIj48L3N0eWxlPgoKICA8ZGl2IGlkPSJzcGlubmVyQ29udGFpbmVyIiBjbGFzcy1uYW1lPSJbW19fY29tcHV0ZUNvbnRhaW5lckNsYXNzZXMoYWN0aXZlLCBfX2Nvb2xpbmdEb3duKV1dIiBvbi1hbmltYXRpb25lbmQ9Il9fcmVzZXQiIG9uLXdlYmtpdC1hbmltYXRpb24tZW5kPSJfX3Jlc2V0Ij4KICAgIDxkaXYgY2xhc3M9InNwaW5uZXItbGF5ZXIiPgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciBsZWZ0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgcmlnaHQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmA7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL3NzLnNldEF0dHJpYnV0ZSgic3RyaXAtd2hpdGVzcGFjZSIsIiIpLFJyKHtfdGVtcGxhdGU6c3MsaXM6InBhcGVyLXNwaW5uZXItbGl0ZSIsYmVoYXZpb3JzOlthc119KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IGxzPV9lYAogIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1zcGlubmVyLXN0eWxlcyI+PC9zdHlsZT4KCiAgPGRpdiBpZD0ic3Bpbm5lckNvbnRhaW5lciIgY2xhc3MtbmFtZT0iW1tfX2NvbXB1dGVDb250YWluZXJDbGFzc2VzKGFjdGl2ZSwgX19jb29saW5nRG93bildXSIgb24tYW5pbWF0aW9uZW5kPSJfX3Jlc2V0IiBvbi13ZWJraXQtYW5pbWF0aW9uLWVuZD0iX19yZXNldCI+CiAgICA8ZGl2IGNsYXNzPSJzcGlubmVyLWxheWVyIGxheWVyLTEiPgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciBsZWZ0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgcmlnaHQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic3Bpbm5lci1sYXllciBsYXllci0yIj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgbGVmdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1jbGlwcGVyIHJpZ2h0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNwaW5uZXItbGF5ZXIgbGF5ZXItMyI+CiAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1jbGlwcGVyIGxlZnQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciByaWdodCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzcGlubmVyLWxheWVyIGxheWVyLTQiPgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciBsZWZ0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgcmlnaHQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmA7bHMuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIiksUnIoe190ZW1wbGF0ZTpscyxpczoicGFwZXItc3Bpbm5lciIsYmVoYXZpb3JzOlthc119KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgY3M9X2VgPGlyb24taWNvbnNldC1zdmcgbmFtZT0icGFwZXItdGFicyIgc2l6ZT0iMjQiPgo8c3ZnPjxkZWZzPgo8ZyBpZD0iY2hldnJvbi1sZWZ0Ij48cGF0aCBkPSJNMTUuNDEgNy40MUwxNCA2bC02IDYgNiA2IDEuNDEtMS40MUwxMC44MyAxMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjaGV2cm9uLXJpZ2h0Ij48cGF0aCBkPSJNMTAgNkw4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6Ij48L3BhdGg+PC9nPgo8L2RlZnM+PC9zdmc+CjwvaXJvbi1pY29uc2V0LXN2Zz5gO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoY3MuY29udGVudCksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaW5saW5lOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXI7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlci1qdXN0aWZpZWQ7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtYXV0bzsKCiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYjsKICAgICAgfQoKICAgICAgOmhvc3QoOmZvY3VzKSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2xpbmtdKSB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLnRhYi1jb250ZW50IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOwogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGN1YmljLWJlemllcigwLjQsIDAuMCwgMSwgMSk7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlci1jZW50ZXI7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtYXV0bzsKICAgICAgICBAYXBwbHkgLS1wYXBlci10YWItY29udGVudDsKICAgICAgfQoKICAgICAgOmhvc3QoOm5vdCguaXJvbi1zZWxlY3RlZCkpID4gLnRhYi1jb250ZW50IHsKICAgICAgICBvcGFjaXR5OiAwLjg7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYi1jb250ZW50LXVuc2VsZWN0ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KDpmb2N1cykgLnRhYi1jb250ZW50IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYi1jb250ZW50LWZvY3VzZWQ7CiAgICAgIH0KCiAgICAgIHBhcGVyLXJpcHBsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRhYi1pbmssIHZhcigtLXBhcGVyLXllbGxvdy1hMTAwKSk7CiAgICAgIH0KCiAgICAgIC50YWItY29udGVudCA+IDo6c2xvdHRlZChhKSB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtYXV0bzsKCiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij4KICAgICAgPHNsb3Q+PC9zbG90PgogICAgPC9kaXY+CmAsaXM6InBhcGVyLXRhYiIsYmVoYXZpb3JzOltxbyxYbyxKb10scHJvcGVydGllczp7bGluazp7dHlwZTpCb29sZWFuLHZhbHVlOiExLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH19LGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJ0YWIifSxsaXN0ZW5lcnM6e2Rvd246Il91cGRhdGVOb2luayIsdGFwOiJfb25UYXAifSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZU5vaW5rKCl9LGdldCBfcGFyZW50Tm9pbmsoKXt2YXIgdD1ZaSh0aGlzKS5wYXJlbnROb2RlO3JldHVybiEhdCYmISF0Lm5vaW5rfSxfdXBkYXRlTm9pbms6ZnVuY3Rpb24oKXt0aGlzLm5vaW5rPSEhdGhpcy5ub2lua3x8ISF0aGlzLl9wYXJlbnROb2lua30sX29uVGFwOmZ1bmN0aW9uKHQpe2lmKHRoaXMubGluayl7dmFyIGU9dGhpcy5xdWVyeUVmZmVjdGl2ZUNoaWxkcmVuKCJhIik7aWYoIWUpcmV0dXJuO2lmKHQudGFyZ2V0PT09ZSlyZXR1cm47ZS5jbGljaygpfX19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KUnIoe190ZW1wbGF0ZTpfZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIEBhcHBseSAtLWxheW91dDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwoKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwoKICAgICAgICAvKiBOT1RFOiBCb3RoIHZhbHVlcyBhcmUgbmVlZGVkLCBzaW5jZSBzb21lIHBob25lcyByZXF1aXJlIHRoZSB2YWx1ZSB0byBiZSBcYHRyYW5zcGFyZW50XGAuICovCiAgICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOwogICAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYnM7CiAgICAgIH0KCiAgICAgIDpob3N0KDpkaXIocnRsKSkgewogICAgICAgIEBhcHBseSAtLWxheW91dC1ob3Jpem9udGFsLXJldmVyc2U7CiAgICAgIH0KCiAgICAgICN0YWJzQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleC1hdXRvOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYnMtY29udGFpbmVyOwogICAgICB9CgogICAgICAjdGFic0NvbnRlbnQgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAtbW96LWZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgLW1zLWZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgZmxleC1iYXNpczogYXV0bzsKICAgICAgICBAYXBwbHkgLS1wYXBlci10YWJzLWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgICN0YWJzQ29udGVudC5zY3JvbGxhYmxlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgI3RhYnNDb250ZW50Om5vdCguc2Nyb2xsYWJsZSksCiAgICAgICN0YWJzQ29udGVudC5zY3JvbGxhYmxlLmZpdC1jb250YWluZXIgewogICAgICAgIEBhcHBseSAtLWxheW91dC1ob3Jpem9udGFsOwogICAgICB9CgogICAgICAjdGFic0NvbnRlbnQuc2Nyb2xsYWJsZS5maXQtY29udGFpbmVyIHsKICAgICAgICBtaW4td2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICN0YWJzQ29udGVudC5zY3JvbGxhYmxlLmZpdC1jb250YWluZXIgPiA6OnNsb3R0ZWQoKikgewogICAgICAgIC8qIElFIC0gcHJldmVudCB0YWJzIGZyb20gY29tcHJlc3Npbmcgd2hlbiB0aGV5IHNob3VsZCBzY3JvbGwuICovCiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvOwogICAgICAgIC13ZWJraXQtZmxleDogMSAwIGF1dG87CiAgICAgICAgZmxleDogMSAwIGF1dG87CiAgICAgIH0KCiAgICAgIC5oaWRkZW4gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ub3QtdmlzaWJsZSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIHBhcGVyLWljb24tYnV0dG9uIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICAjc2VsZWN0aW9uQmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1wYXBlci10YWJzLXNlbGVjdGlvbi1iYXItY29sb3IsIHZhcigtLXBhcGVyLXllbGxvdy1hMTAwKSk7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm07CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYnMtc2VsZWN0aW9uLWJhcjsKICAgICAgfQoKICAgICAgI3NlbGVjdGlvbkJhci5hbGlnbi1ib3R0b20gewogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IGF1dG87CiAgICAgIH0KCiAgICAgICNzZWxlY3Rpb25CYXIuZXhwYW5kIHsKICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1czsKICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAxLCAxKTsKICAgICAgfQoKICAgICAgI3NlbGVjdGlvbkJhci5jb250cmFjdCB7CiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xOHM7CiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjAsIDAuMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgI3RhYnNDb250ZW50ID4gOjpzbG90dGVkKDpub3QoI3NlbGVjdGlvbkJhcikpIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHBhcGVyLWljb24tYnV0dG9uIGljb249InBhcGVyLXRhYnM6Y2hldnJvbi1sZWZ0IiBjbGFzcyQ9IltbX2NvbXB1dGVTY3JvbGxCdXR0b25DbGFzcyhfbGVmdEhpZGRlbiwgc2Nyb2xsYWJsZSwgaGlkZVNjcm9sbEJ1dHRvbnMpXV0iIG9uLXVwPSJfb25TY3JvbGxCdXR0b25VcCIgb24tZG93bj0iX29uTGVmdFNjcm9sbEJ1dHRvbkRvd24iIHRhYmluZGV4PSItMSI+PC9wYXBlci1pY29uLWJ1dHRvbj4KCiAgICA8ZGl2IGlkPSJ0YWJzQ29udGFpbmVyIiBvbi10cmFjaz0iX3Njcm9sbCIgb24tZG93bj0iX2Rvd24iPgogICAgICA8ZGl2IGlkPSJ0YWJzQ29udGVudCIgY2xhc3MkPSJbW19jb21wdXRlVGFic0NvbnRlbnRDbGFzcyhzY3JvbGxhYmxlLCBmaXRDb250YWluZXIpXV0iPgogICAgICAgIDxkaXYgaWQ9InNlbGVjdGlvbkJhciIgY2xhc3MkPSJbW19jb21wdXRlU2VsZWN0aW9uQmFyQ2xhc3Mobm9CYXIsIGFsaWduQm90dG9tKV1dIiBvbi10cmFuc2l0aW9uZW5kPSJfb25CYXJUcmFuc2l0aW9uRW5kIj48L2Rpdj4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPHBhcGVyLWljb24tYnV0dG9uIGljb249InBhcGVyLXRhYnM6Y2hldnJvbi1yaWdodCIgY2xhc3MkPSJbW19jb21wdXRlU2Nyb2xsQnV0dG9uQ2xhc3MoX3JpZ2h0SGlkZGVuLCBzY3JvbGxhYmxlLCBoaWRlU2Nyb2xsQnV0dG9ucyldXSIgb24tdXA9Il9vblNjcm9sbEJ1dHRvblVwIiBvbi1kb3duPSJfb25SaWdodFNjcm9sbEJ1dHRvbkRvd24iIHRhYmluZGV4PSItMSI+PC9wYXBlci1pY29uLWJ1dHRvbj4KYCxpczoicGFwZXItdGFicyIsYmVoYXZpb3JzOltnbyxpc10scHJvcGVydGllczp7bm9pbms6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX25vaW5rQ2hhbmdlZCJ9LG5vQmFyOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LG5vU2xpZGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2Nyb2xsYWJsZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxmaXRDb250YWluZXI6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sZGlzYWJsZURyYWc6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saGlkZVNjcm9sbEJ1dHRvbnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYWxpZ25Cb3R0b206e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2VsZWN0YWJsZTp7dHlwZTpTdHJpbmcsdmFsdWU6InBhcGVyLXRhYiJ9LGF1dG9zZWxlY3Q6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYXV0b3NlbGVjdERlbGF5Ont0eXBlOk51bWJlcix2YWx1ZTowfSxfc3RlcDp7dHlwZTpOdW1iZXIsdmFsdWU6MTB9LF9ob2xkRGVsYXk6e3R5cGU6TnVtYmVyLHZhbHVlOjF9LF9sZWZ0SGlkZGVuOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9yaWdodEhpZGRlbjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfcHJldmlvdXNUYWI6e3R5cGU6T2JqZWN0fX0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InRhYmxpc3QifSxsaXN0ZW5lcnM6eyJpcm9uLXJlc2l6ZSI6Il9vblRhYlNpemluZ0NoYW5nZWQiLCJpcm9uLWl0ZW1zLWNoYW5nZWQiOiJfb25UYWJTaXppbmdDaGFuZ2VkIiwiaXJvbi1zZWxlY3QiOiJfb25Jcm9uU2VsZWN0IiwiaXJvbi1kZXNlbGVjdCI6Il9vbklyb25EZXNlbGVjdCJ9LGtleUJpbmRpbmdzOnsibGVmdDprZXl1cCByaWdodDprZXl1cCI6Il9vbkFycm93S2V5dXAifSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5faG9sZEpvYj1udWxsLHRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uSXRlbT12b2lkIDAsdGhpcy5fcGVuZGluZ0FjdGl2YXRpb25UaW1lb3V0PXZvaWQgMCx0aGlzLl9iaW5kRGVsYXllZEFjdGl2YXRpb25IYW5kbGVyPXRoaXMuX2RlbGF5ZWRBY3RpdmF0aW9uSGFuZGxlci5iaW5kKHRoaXMpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5fb25CbHVyQ2FwdHVyZS5iaW5kKHRoaXMpLCEwKX0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnNldFNjcm9sbERpcmVjdGlvbigieSIsdGhpcy4kLnRhYnNDb250YWluZXIpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2NhbmNlbFBlbmRpbmdBY3RpdmF0aW9uKCl9LF9ub2lua0NoYW5nZWQ6ZnVuY3Rpb24odCl7WWkodGhpcykucXVlcnlTZWxlY3RvckFsbCgicGFwZXItdGFiIikuZm9yRWFjaCh0P3RoaXMuX3NldE5vaW5rQXR0cmlidXRlOnRoaXMuX3JlbW92ZU5vaW5rQXR0cmlidXRlKX0sX3NldE5vaW5rQXR0cmlidXRlOmZ1bmN0aW9uKHQpe3Quc2V0QXR0cmlidXRlKCJub2luayIsIiIpfSxfcmVtb3ZlTm9pbmtBdHRyaWJ1dGU6ZnVuY3Rpb24odCl7dC5yZW1vdmVBdHRyaWJ1dGUoIm5vaW5rIil9LF9jb21wdXRlU2Nyb2xsQnV0dG9uQ2xhc3M6ZnVuY3Rpb24odCxlLG4pe3JldHVybiFlfHxuPyJoaWRkZW4iOnQ/Im5vdC12aXNpYmxlIjoiIn0sX2NvbXB1dGVUYWJzQ29udGVudENsYXNzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ/InNjcm9sbGFibGUiKyhlPyIgZml0LWNvbnRhaW5lciI6IiIpOiIgZml0LWNvbnRhaW5lciJ9LF9jb21wdXRlU2VsZWN0aW9uQmFyQ2xhc3M6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD8iaGlkZGVuIjplPyJhbGlnbi1ib3R0b20iOiIifSxfb25UYWJTaXppbmdDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5kZWJvdW5jZSgiX29uVGFiU2l6aW5nQ2hhbmdlZCIsKGZ1bmN0aW9uKCl7dGhpcy5fc2Nyb2xsKCksdGhpcy5fdGFiQ2hhbmdlZCh0aGlzLnNlbGVjdGVkSXRlbSl9KSwxMCl9LF9vbklyb25TZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5fdGFiQ2hhbmdlZCh0LmRldGFpbC5pdGVtLHRoaXMuX3ByZXZpb3VzVGFiKSx0aGlzLl9wcmV2aW91c1RhYj10LmRldGFpbC5pdGVtLHRoaXMuY2FuY2VsRGVib3VuY2VyKCJ0YWItY2hhbmdlZCIpfSxfb25Jcm9uRGVzZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5kZWJvdW5jZSgidGFiLWNoYW5nZWQiLChmdW5jdGlvbigpe3RoaXMuX3RhYkNoYW5nZWQobnVsbCx0aGlzLl9wcmV2aW91c1RhYiksdGhpcy5fcHJldmlvdXNUYWI9bnVsbH0pLDEpfSxfYWN0aXZhdGVIYW5kbGVyOmZ1bmN0aW9uKCl7dGhpcy5fY2FuY2VsUGVuZGluZ0FjdGl2YXRpb24oKSxaYS5fYWN0aXZhdGVIYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sX3NjaGVkdWxlQWN0aXZhdGlvbjpmdW5jdGlvbih0LGUpe3RoaXMuX3BlbmRpbmdBY3RpdmF0aW9uSXRlbT10LHRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uVGltZW91dD10aGlzLmFzeW5jKHRoaXMuX2JpbmREZWxheWVkQWN0aXZhdGlvbkhhbmRsZXIsZSl9LF9kZWxheWVkQWN0aXZhdGlvbkhhbmRsZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wZW5kaW5nQWN0aXZhdGlvbkl0ZW07dGhpcy5fcGVuZGluZ0FjdGl2YXRpb25JdGVtPXZvaWQgMCx0aGlzLl9wZW5kaW5nQWN0aXZhdGlvblRpbWVvdXQ9dm9pZCAwLHQuZmlyZSh0aGlzLmFjdGl2YXRlRXZlbnQsbnVsbCx7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSl9LF9jYW5jZWxQZW5kaW5nQWN0aXZhdGlvbjpmdW5jdGlvbigpe3ZvaWQgMCE9PXRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uVGltZW91dCYmKHRoaXMuY2FuY2VsQXN5bmModGhpcy5fcGVuZGluZ0FjdGl2YXRpb25UaW1lb3V0KSx0aGlzLl9wZW5kaW5nQWN0aXZhdGlvbkl0ZW09dm9pZCAwLHRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uVGltZW91dD12b2lkIDApfSxfb25BcnJvd0tleXVwOmZ1bmN0aW9uKHQpe3RoaXMuYXV0b3NlbGVjdCYmdGhpcy5fc2NoZWR1bGVBY3RpdmF0aW9uKHRoaXMuZm9jdXNlZEl0ZW0sdGhpcy5hdXRvc2VsZWN0RGVsYXkpfSxfb25CbHVyQ2FwdHVyZTpmdW5jdGlvbih0KXt0LnRhcmdldD09PXRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uSXRlbSYmdGhpcy5fY2FuY2VsUGVuZGluZ0FjdGl2YXRpb24oKX0sZ2V0IF90YWJDb250YWluZXJTY3JvbGxTaXplKCl7cmV0dXJuIE1hdGgubWF4KDAsdGhpcy4kLnRhYnNDb250YWluZXIuc2Nyb2xsV2lkdGgtdGhpcy4kLnRhYnNDb250YWluZXIub2Zmc2V0V2lkdGgpfSxfc2Nyb2xsOmZ1bmN0aW9uKHQsZSl7dGhpcy5zY3JvbGxhYmxlJiZ0aGlzLl9hZmZlY3RTY3JvbGwoZSYmLWUuZGR4fHwwKX0sX2Rvd246ZnVuY3Rpb24odCl7dGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLl9kZWZhdWx0Rm9jdXNBc3luYyYmKHRoaXMuY2FuY2VsQXN5bmModGhpcy5fZGVmYXVsdEZvY3VzQXN5bmMpLHRoaXMuX2RlZmF1bHRGb2N1c0FzeW5jPW51bGwpfSksMSl9LF9hZmZlY3RTY3JvbGw6ZnVuY3Rpb24odCl7dGhpcy4kLnRhYnNDb250YWluZXIuc2Nyb2xsTGVmdCs9dDt2YXIgZT10aGlzLiQudGFic0NvbnRhaW5lci5zY3JvbGxMZWZ0O3RoaXMuX2xlZnRIaWRkZW49MD09PWUsdGhpcy5fcmlnaHRIaWRkZW49ZT09PXRoaXMuX3RhYkNvbnRhaW5lclNjcm9sbFNpemV9LF9vbkxlZnRTY3JvbGxCdXR0b25Eb3duOmZ1bmN0aW9uKCl7dGhpcy5fc2Nyb2xsVG9MZWZ0KCksdGhpcy5faG9sZEpvYj1zZXRJbnRlcnZhbCh0aGlzLl9zY3JvbGxUb0xlZnQuYmluZCh0aGlzKSx0aGlzLl9ob2xkRGVsYXkpfSxfb25SaWdodFNjcm9sbEJ1dHRvbkRvd246ZnVuY3Rpb24oKXt0aGlzLl9zY3JvbGxUb1JpZ2h0KCksdGhpcy5faG9sZEpvYj1zZXRJbnRlcnZhbCh0aGlzLl9zY3JvbGxUb1JpZ2h0LmJpbmQodGhpcyksdGhpcy5faG9sZERlbGF5KX0sX29uU2Nyb2xsQnV0dG9uVXA6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKHRoaXMuX2hvbGRKb2IpLHRoaXMuX2hvbGRKb2I9bnVsbH0sX3Njcm9sbFRvTGVmdDpmdW5jdGlvbigpe3RoaXMuX2FmZmVjdFNjcm9sbCgtdGhpcy5fc3RlcCl9LF9zY3JvbGxUb1JpZ2h0OmZ1bmN0aW9uKCl7dGhpcy5fYWZmZWN0U2Nyb2xsKHRoaXMuX3N0ZXApfSxfdGFiQ2hhbmdlZDpmdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybiB0aGlzLiQuc2VsZWN0aW9uQmFyLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZCIpLHRoaXMuJC5zZWxlY3Rpb25CYXIuY2xhc3NMaXN0LnJlbW92ZSgiY29udHJhY3QiKSx2b2lkIHRoaXMuX3Bvc2l0aW9uQmFyKDAsMCk7dmFyIG49dGhpcy4kLnRhYnNDb250ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9bi53aWR0aCxyPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1yLmxlZnQtbi5sZWZ0O2lmKHRoaXMuX3Bvcz17d2lkdGg6dGhpcy5fY2FsY1BlcmNlbnQoci53aWR0aCxpKSxsZWZ0OnRoaXMuX2NhbGNQZXJjZW50KG8saSl9LHRoaXMubm9TbGlkZXx8bnVsbD09ZSlyZXR1cm4gdGhpcy4kLnNlbGVjdGlvbkJhci5jbGFzc0xpc3QucmVtb3ZlKCJleHBhbmQiKSx0aGlzLiQuc2VsZWN0aW9uQmFyLmNsYXNzTGlzdC5yZW1vdmUoImNvbnRyYWN0Iiksdm9pZCB0aGlzLl9wb3NpdGlvbkJhcih0aGlzLl9wb3Mud2lkdGgsdGhpcy5fcG9zLmxlZnQpO3ZhciBhPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz10aGlzLml0ZW1zLmluZGV4T2YoZSksbD10aGlzLml0ZW1zLmluZGV4T2YodCk7dGhpcy4kLnNlbGVjdGlvbkJhci5jbGFzc0xpc3QuYWRkKCJleHBhbmQiKTt2YXIgYz1zPGw7dGhpcy5faXNSVEwmJihjPSFjKSxjP3RoaXMuX3Bvc2l0aW9uQmFyKHRoaXMuX2NhbGNQZXJjZW50KHIubGVmdCtyLndpZHRoLWEubGVmdCxpKS01LHRoaXMuX2xlZnQpOnRoaXMuX3Bvc2l0aW9uQmFyKHRoaXMuX2NhbGNQZXJjZW50KGEubGVmdCthLndpZHRoLXIubGVmdCxpKS01LHRoaXMuX2NhbGNQZXJjZW50KG8saSkrNSksdGhpcy5zY3JvbGxhYmxlJiZ0aGlzLl9zY3JvbGxUb1NlbGVjdGVkSWZOZWVkZWQoci53aWR0aCxvKX0sX3Njcm9sbFRvU2VsZWN0ZWRJZk5lZWRlZDpmdW5jdGlvbih0LGUpe3ZhciBuPWUtdGhpcy4kLnRhYnNDb250YWluZXIuc2Nyb2xsTGVmdDsobjwwfHwobis9dC10aGlzLiQudGFic0NvbnRhaW5lci5vZmZzZXRXaWR0aCk+MCkmJih0aGlzLiQudGFic0NvbnRhaW5lci5zY3JvbGxMZWZ0Kz1uKX0sX2NhbGNQZXJjZW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDEwMCp0L2V9LF9wb3NpdGlvbkJhcjpmdW5jdGlvbih0LGUpe2U9ZXx8MCx0aGlzLl93aWR0aD10PXR8fDAsdGhpcy5fbGVmdD1lLHRoaXMudHJhbnNmb3JtKCJ0cmFuc2xhdGVYKCIrZSsiJSkgc2NhbGVYKCIrdC8xMDArIikiLHRoaXMuJC5zZWxlY3Rpb25CYXIpfSxfb25CYXJUcmFuc2l0aW9uRW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJC5zZWxlY3Rpb25CYXIuY2xhc3NMaXN0O2UuY29udGFpbnMoImV4cGFuZCIpPyhlLnJlbW92ZSgiZXhwYW5kIiksZS5hZGQoImNvbnRyYWN0IiksdGhpcy5fcG9zaXRpb25CYXIodGhpcy5fcG9zLndpZHRoLHRoaXMuX3Bvcy5sZWZ0KSk6ZS5jb250YWlucygiY29udHJhY3QiKSYmZS5yZW1vdmUoImNvbnRyYWN0Iil9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwp2YXIgdXM9bnVsbDtScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvYXN0LWJhY2tncm91bmQtY29sb3IsICMzMjMyMzIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10b2FzdC1jb2xvciwgI2YxZjFmMSk7CiAgICAgICAgbWluLWhlaWdodDogNDhweDsKICAgICAgICBtaW4td2lkdGg6IDI4OHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHggMjRweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIG1hcmdpbjogMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcywgb3BhY2l0eSAwLjNzOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCBvcGFjaXR5IDAuM3M7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDBweCk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICB9CgogICAgICA6aG9zdCguY2Fwc3VsZSkgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KC5maXQtYm90dG9tKSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICA6aG9zdCgucGFwZXItdG9hc3Qtb3BlbikgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c3BhbiBpZD0ibGFiZWwiPnt7dGV4dH19PC9zcGFuPgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJwYXBlci10b2FzdCIsYmVoYXZpb3JzOltrYV0scHJvcGVydGllczp7Zml0SW50bzp7dHlwZTpPYmplY3QsdmFsdWU6d2luZG93LG9ic2VydmVyOiJfb25GaXRJbnRvQ2hhbmdlZCJ9LGhvcml6b250YWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6ImxlZnQifSx2ZXJ0aWNhbEFsaWduOnt0eXBlOlN0cmluZyx2YWx1ZToiYm90dG9tIn0sZHVyYXRpb246e3R5cGU6TnVtYmVyLHZhbHVlOjNlM30sdGV4dDp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LG5vQ2FuY2VsT25PdXRzaWRlQ2xpY2s6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMH0sbm9BdXRvRm9jdXM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMH19LGxpc3RlbmVyczp7dHJhbnNpdGlvbmVuZDoiX19vblRyYW5zaXRpb25FbmQifSxnZXQgdmlzaWJsZSgpe3JldHVybiBmby5fd2FybigiYHZpc2libGVgIGlzIGRlcHJlY2F0ZWQsIHVzZSBgb3BlbmVkYCBpbnN0ZWFkIiksdGhpcy5vcGVuZWR9LGdldCBfY2FuQXV0b0Nsb3NlKCl7cmV0dXJuIHRoaXMuZHVyYXRpb24+MCYmdGhpcy5kdXJhdGlvbiE9PTEvMH0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX2F1dG9DbG9zZT1udWxsLE9hLnJlcXVlc3RBdmFpbGFiaWxpdHkoKX0sc2hvdzpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4ic3RyaW5nIj09dHlwZW9mIHQmJih0PXt0ZXh0OnR9KSx0KTA9PT1lLmluZGV4T2YoIl8iKT9mby5fd2FybignVGhlIHByb3BlcnR5ICInK2UrJyIgaXMgcHJpdmF0ZSBhbmQgd2FzIG5vdCBzZXQuJyk6ZSBpbiB0aGlzP3RoaXNbZV09dFtlXTpmby5fd2FybignVGhlIHByb3BlcnR5ICInK2UrJyIgaXMgbm90IHZhbGlkLicpO3RoaXMub3BlbigpfSxoaWRlOmZ1bmN0aW9uKCl7dGhpcy5jbG9zZSgpfSxfX29uVHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0KXt0JiZ0LnRhcmdldD09PXRoaXMmJiJvcGFjaXR5Ij09PXQucHJvcGVydHlOYW1lJiYodGhpcy5vcGVuZWQ/dGhpcy5fZmluaXNoUmVuZGVyT3BlbmVkKCk6dGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCkpfSxfb3BlbmVkQ2hhbmdlZDpmdW5jdGlvbigpe251bGwhPT10aGlzLl9hdXRvQ2xvc2UmJih0aGlzLmNhbmNlbEFzeW5jKHRoaXMuX2F1dG9DbG9zZSksdGhpcy5fYXV0b0Nsb3NlPW51bGwpLHRoaXMub3BlbmVkPyh1cyYmdXMhPT10aGlzJiZ1cy5jbG9zZSgpLHVzPXRoaXMsdGhpcy5maXJlKCJpcm9uLWFubm91bmNlIix7dGV4dDp0aGlzLnRleHR9KSx0aGlzLl9jYW5BdXRvQ2xvc2UmJih0aGlzLl9hdXRvQ2xvc2U9dGhpcy5hc3luYyh0aGlzLmNsb3NlLHRoaXMuZHVyYXRpb24pKSk6dXM9PT10aGlzJiYodXM9bnVsbCksQ2EuX29wZW5lZENoYW5nZWQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxfcmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5jbGFzc0xpc3QuYWRkKCJwYXBlci10b2FzdC1vcGVuIil9LF9yZW5kZXJDbG9zZWQ6ZnVuY3Rpb24oKXt0aGlzLmNsYXNzTGlzdC5yZW1vdmUoInBhcGVyLXRvYXN0LW9wZW4iKX0sX29uRml0SW50b0NoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5wb3NpdGlvblRhcmdldD10fX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBocz1fZWAKCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KDpmb2N1cykgewogICAgICAgIG91dGxpbmU6bm9uZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1iYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIGxpbmVhciAuMDhzOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tdW5jaGVja2VkLWJhci1jb2xvciwgIzAwMDAwMCk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvZ2dsZS1idXR0b24tdW5jaGVja2VkLWJhcjsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1idXR0b24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IC0zcHg7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSBsaW5lYXIgLjA4cywgYmFja2dyb3VuZC1jb2xvciBsaW5lYXIgLjA4czsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gbGluZWFyIC4wOHMsIGJhY2tncm91bmQtY29sb3IgbGluZWFyIC4wOHM7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLXVuY2hlY2tlZC1idXR0b24tY29sb3IsIHZhcigtLXBhcGVyLWdyZXktNTApKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi11bmNoZWNrZWQtYnV0dG9uOwogICAgICB9CgogICAgICAudG9nZ2xlLWJ1dHRvbi5kcmFnZ2luZyB7CiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjaGVja2VkXTpub3QoW2Rpc2FibGVkXSkpIC50b2dnbGUtYmFyIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1jaGVja2VkLWJhci1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10b2dnbGUtYnV0dG9uLWNoZWNrZWQtYmFyOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudG9nZ2xlLWJhciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsKICAgICAgICBvcGFjaXR5OiAwLjEyOwogICAgICB9CgogICAgICA6aG9zdChbY2hlY2tlZF0pIC50b2dnbGUtYnV0dG9uIHsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDApOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDApOwogICAgICB9CgogICAgICA6aG9zdChbY2hlY2tlZF06bm90KFtkaXNhYmxlZF0pKSAudG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1jaGVja2VkLWJ1dHRvbi1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10b2dnbGUtYnV0dG9uLWNoZWNrZWQtYnV0dG9uOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudG9nZ2xlLWluayB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogLTE0cHg7CiAgICAgICAgbGVmdDogLTE0cHg7CiAgICAgICAgcmlnaHQ6IGF1dG87CiAgICAgICAgYm90dG9tOiBhdXRvOwogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tdW5jaGVja2VkLWluay1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvZ2dsZS1idXR0b24tdW5jaGVja2VkLWluazsKICAgICAgfQoKICAgICAgOmhvc3QoW2NoZWNrZWRdKSAudG9nZ2xlLWluayB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tY2hlY2tlZC1pbmstY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1jaGVja2VkLWluazsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIC8qIFRoZSB0b2dnbGUgYnV0dG9uIGhhcyBhbiBhYnNvbHV0ZSBwb3NpdGlvbiBvZiAtM3B4OyBUaGUgZXh0cmEgMXB4CiAgICAgICAgLyogYWNjb3VudHMgZm9yIHRoZSB0b2dnbGUgYnV0dG9uIHNoYWRvdyBib3guICovCiAgICAgICAgbWFyZ2luOiA0cHggMXB4OwogICAgICB9CgogICAgICAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLWxhYmVsLXNwYWNpbmcsIDhweCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tbGFiZWwtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgICB9CgogICAgICAvKiBpbnZhbGlkIHN0YXRlICovCiAgICAgIDpob3N0KFtpbnZhbGlkXSkgLnRvZ2dsZS1iYXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24taW52YWxpZC1iYXItY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtpbnZhbGlkXSkgLnRvZ2dsZS1idXR0b24gewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24taW52YWxpZC1idXR0b24tY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtpbnZhbGlkXSkgLnRvZ2dsZS1pbmsgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLWludmFsaWQtaW5rLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1jb250YWluZXIiPgogICAgICA8ZGl2IGlkPSJ0b2dnbGVCYXIiIGNsYXNzPSJ0b2dnbGUtYmFyIj48L2Rpdj4KICAgICAgPGRpdiBpZD0idG9nZ2xlQnV0dG9uIiBjbGFzcz0idG9nZ2xlLWJ1dHRvbiI+PC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtbGFiZWwiPjxzbG90Pjwvc2xvdD48L2Rpdj4KCiAgYDtocy5zZXRBdHRyaWJ1dGUoInN0cmlwLXdoaXRlc3BhY2UiLCIiKSxScih7X3RlbXBsYXRlOmhzLGlzOiJwYXBlci10b2dnbGUtYnV0dG9uIixiZWhhdmlvcnM6W3VhXSxob3N0QXR0cmlidXRlczp7cm9sZToiYnV0dG9uIiwiYXJpYS1wcmVzc2VkIjoiZmFsc2UiLHRhYmluZGV4OjB9LHByb3BlcnRpZXM6e30sbGlzdGVuZXJzOnt0cmFjazoiX29udHJhY2sifSxhdHRhY2hlZDpmdW5jdGlvbigpe0xpKHRoaXMsKGZ1bmN0aW9uKCl7b2kodGhpcywicGFuLXkiKX0pKX0sX29udHJhY2s6ZnVuY3Rpb24odCl7dmFyIGU9dC5kZXRhaWw7InN0YXJ0Ij09PWUuc3RhdGU/dGhpcy5fdHJhY2tTdGFydChlKToidHJhY2siPT09ZS5zdGF0ZT90aGlzLl90cmFja01vdmUoZSk6ImVuZCI9PT1lLnN0YXRlJiZ0aGlzLl90cmFja0VuZChlKX0sX3RyYWNrU3RhcnQ6ZnVuY3Rpb24odCl7dGhpcy5fd2lkdGg9dGhpcy4kLnRvZ2dsZUJhci5vZmZzZXRXaWR0aC8yLHRoaXMuX3RyYWNrQ2hlY2tlZD10aGlzLmNoZWNrZWQsdGhpcy4kLnRvZ2dsZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpfSxfdHJhY2tNb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZHg7dGhpcy5feD1NYXRoLm1pbih0aGlzLl93aWR0aCxNYXRoLm1heCgwLHRoaXMuX3RyYWNrQ2hlY2tlZD90aGlzLl93aWR0aCtlOmUpKSx0aGlzLnRyYW5zbGF0ZTNkKHRoaXMuX3grInB4IiwwLDAsdGhpcy4kLnRvZ2dsZUJ1dHRvbiksdGhpcy5fdXNlckFjdGl2YXRlKHRoaXMuX3g+dGhpcy5fd2lkdGgvMil9LF90cmFja0VuZDpmdW5jdGlvbih0KXt0aGlzLiQudG9nZ2xlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy50cmFuc2Zvcm0oIiIsdGhpcy4kLnRvZ2dsZUJ1dHRvbil9LF9jcmVhdGVSaXBwbGU6ZnVuY3Rpb24oKXt0aGlzLl9yaXBwbGVDb250YWluZXI9dGhpcy4kLnRvZ2dsZUJ1dHRvbjt2YXIgdD1Kby5fY3JlYXRlUmlwcGxlKCk7cmV0dXJuIHQuaWQ9ImluayIsdC5zZXRBdHRyaWJ1dGUoInJlY2VudGVycyIsIiIpLHQuY2xhc3NMaXN0LmFkZCgiY2lyY2xlIiwidG9nZ2xlLWluayIpLHR9fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpScih7X3RlbXBsYXRlOl9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItaGVpZ2h0OiB2YXIoLS1wYXBlci10b29sYmFyLWhlaWdodCwgNjRweCk7CiAgICAgICAgLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItc20taGVpZ2h0OiB2YXIoLS1wYXBlci10b29sYmFyLXNtLWhlaWdodCwgNTZweCk7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGhlaWdodDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci10b29sYmFyLWhlaWdodCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXItdG9vbGJhci1iYWNrZ3JvdW5kLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRvb2xiYXItY29sb3IsIHZhcigtLWRhcmstdGhlbWUtdGV4dC1jb2xvcikpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2xiYXI7CiAgICAgIH0KCiAgICAgIDpob3N0KC5hbmltYXRlKSB7CiAgICAgICAgdHJhbnNpdGlvbjogdmFyKC0tcGFwZXItdG9vbGJhci10cmFuc2l0aW9uLCBoZWlnaHQgMC4xOHMgZWFzZS1pbik7CiAgICAgIH0KCiAgICAgIDpob3N0KC5tZWRpdW0tdGFsbCkgewogICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItaGVpZ2h0KSAqIDIpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2xiYXItbWVkaXVtOwogICAgICB9CgogICAgICA6aG9zdCgudGFsbCkgewogICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItaGVpZ2h0KSAqIDMpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2xiYXItdGFsbDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItdG9vbHMgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1oZWlnaHQpOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaG9yaXpvbnRhbDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2xiYXItY29udGVudDsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogVE9ETzogV2hlcmUgc2hvdWxkIG1lZGlhIHF1ZXJ5IGJyZWFrcG9pbnRzIGxpdmUgc28gdGhleSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gZWxlbWVudHM/CiAgICAgICAqLwoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgOmhvc3QgewogICAgICAgICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItc20taGVpZ2h0KTsKICAgICAgICB9CgogICAgICAgIDpob3N0KC5tZWRpdW0tdGFsbCkgewogICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1zbS1oZWlnaHQpICogMik7CiAgICAgICAgfQoKICAgICAgICA6aG9zdCgudGFsbCkgewogICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1zbS1oZWlnaHQpICogMyk7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci10b29scyB7CiAgICAgICAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1zbS1oZWlnaHQpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgI3RvcEJhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAvKiBtaWRkbGUgYmFyICovCiAgICAgICNtaWRkbGVCYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoLnRhbGwpICNtaWRkbGVCYXIsCiAgICAgIDpob3N0KC5tZWRpdW0tdGFsbCkgI21pZGRsZUJhciB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOwogICAgICB9CgogICAgICAvKiBib3R0b20gYmFyICovCiAgICAgICNib3R0b21CYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogbWFrZSBlbGVtZW50cyAoZS5nLiBidXR0b25zKSByZXNwb25kIHRvIG1vdXNlL3RvdWNoIGV2ZW50cwogICAgICAgKgogICAgICAgKiBcYC50b29sYmFyLXRvb2xzXGAgZGlzYWJsZXMgdG91Y2ggZXZlbnRzIHNvIG11bHRpcGxlIHRvb2xiYXJzIGNhbiBzdGFjayBhbmQgbm90CiAgICAgICAqIGFic29yYiBldmVudHMuIEFsbCBjaGlsZHJlbiBtdXN0IGhhdmUgcG9pbnRlciBldmVudHMgcmUtZW5hYmxlZCB0byB3b3JrIGFzCiAgICAgICAqIGV4cGVjdGVkLgogICAgICAgKi8KICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQoKjpub3QoW2Rpc2FibGVkXSkpIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQoLnRpdGxlKSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXg7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXRvb2xzID4gOjpzbG90dGVkKC50aXRsZSkgewogICAgICAgIG1hcmdpbi1sZWZ0OiA1NnB4OwogICAgICB9CgogICAgICAudG9vbGJhci10b29scyA+IDo6c2xvdHRlZChwYXBlci1pY29uLWJ1dHRvbiArIC50aXRsZSkgewogICAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgICB9CgogICAgICAvKioKICAgICAgICogVGhlIC0tcGFwZXItdG9vbGJhci10aXRsZSBtaXhpbiBpcyBhcHBsaWVkIGhlcmUgaW5zdGVhZCBvZiBhYm92ZSB0bwogICAgICAgKiBmaXggdGhlIGlzc3VlIHdpdGggbWFyZ2luLWxlZnQgYmVpbmcgaWdub3JlZCBkdWUgdG8gY3NzIG9yZGVyaW5nLgogICAgICAgKi8KICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQoLnRpdGxlKSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbGJhci10aXRsZTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQocGFwZXItaWNvbi1idXR0b25baWNvbj1tZW51XSkgewogICAgICAgIG1hcmdpbi1yaWdodDogMjRweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQoLmZpdCkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IGF1dG87CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IGF1dG87CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAvKiBUT0RPKG5vbXMpOiBVbnRpbCB3ZSBoYXZlIGEgYmV0dGVyIHNvbHV0aW9uIGZvciBjbGFzc2VzIHRoYXQgZG9uJ3QgdXNlCiAgICAgICAqIC9kZWVwLyBjcmVhdGUgb3VyIG93bi4KICAgICAgICovCiAgICAgIC5zdGFydC1qdXN0aWZpZWQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1zdGFydC1qdXN0aWZpZWQ7CiAgICAgIH0KCiAgICAgIC5jZW50ZXItanVzdGlmaWVkIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyLWp1c3RpZmllZDsKICAgICAgfQoKICAgICAgLmVuZC1qdXN0aWZpZWQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1lbmQtanVzdGlmaWVkOwogICAgICB9CgogICAgICAuYXJvdW5kLWp1c3RpZmllZCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWFyb3VuZC1qdXN0aWZpZWQ7CiAgICAgIH0KCiAgICAgIC5qdXN0aWZpZWQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1qdXN0aWZpZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBpZD0idG9wQmFyIiBjbGFzc1wkPSJ0b29sYmFyLXRvb2xzIFtbX2NvbXB1dGVCYXJFeHRyYUNsYXNzZXMoanVzdGlmeSldXSI+CiAgICAgIDxzbG90IG5hbWU9InRvcCI+PC9zbG90PgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0ibWlkZGxlQmFyIiBjbGFzc1wkPSJ0b29sYmFyLXRvb2xzIFtbX2NvbXB1dGVCYXJFeHRyYUNsYXNzZXMobWlkZGxlSnVzdGlmeSldXSI+CiAgICAgIDxzbG90IG5hbWU9Im1pZGRsZSI+PC9zbG90PgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm90dG9tQmFyIiBjbGFzc1wkPSJ0b29sYmFyLXRvb2xzIFtbX2NvbXB1dGVCYXJFeHRyYUNsYXNzZXMoYm90dG9tSnVzdGlmeSldXSI+CiAgICAgIDxzbG90IG5hbWU9ImJvdHRvbSI+PC9zbG90PgogICAgPC9kaXY+CmAsaXM6InBhcGVyLXRvb2xiYXIiLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJ0b29sYmFyIn0scHJvcGVydGllczp7Ym90dG9tSnVzdGlmeTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LGp1c3RpZnk6e3R5cGU6U3RyaW5nLHZhbHVlOiIifSxtaWRkbGVKdXN0aWZ5Ont0eXBlOlN0cmluZyx2YWx1ZToiIn19LHJlYWR5OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKHRoaXMuaXMsImlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYXBwLWxheW91dCBpbnN0ZWFkISIpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyPXRoaXMuX29ic2VydmUodGhpcyksdGhpcy5fdXBkYXRlQXJpYUxhYmVsbGVkQnkoKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9vYnNlcnZlciYmdGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpfSxfb2JzZXJ2ZTpmdW5jdGlvbih0KXt2YXIgZT1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZUFyaWFMYWJlbGxlZEJ5KCl9LmJpbmQodGhpcykpO3JldHVybiBlLm9ic2VydmUodCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KSxlfSxfdXBkYXRlQXJpYUxhYmVsbGVkQnk6ZnVuY3Rpb24oKXtEaSgpO2Zvcih2YXIgdCxlPVtdLG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoWWkodGhpcy5yb290KS5xdWVyeVNlbGVjdG9yQWxsKCJzbG90IikpLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChZaSh0aGlzLnJvb3QpLnF1ZXJ5U2VsZWN0b3JBbGwoImNvbnRlbnQiKSkpLGk9MDt0PW5baV07aSsrKWZvcih2YXIgcixvPVlpKHQpLmdldERpc3RyaWJ1dGVkTm9kZXMoKSxhPTA7cj1vW2FdO2ErKylpZihyLmNsYXNzTGlzdCYmci5jbGFzc0xpc3QuY29udGFpbnMoInRpdGxlIikpaWYoci5pZCllLnB1c2goci5pZCk7ZWxzZXt2YXIgcz0icGFwZXItdG9vbGJhci1sYWJlbC0iK01hdGguZmxvb3IoMWU0Kk1hdGgucmFuZG9tKCkpO3IuaWQ9cyxlLnB1c2gocyl9ZS5sZW5ndGg+MCYmdGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsZS5qb2luKCIgIikpfSxfY29tcHV0ZUJhckV4dHJhQ2xhc3NlczpmdW5jdGlvbih0KXtyZXR1cm4gdD90KygianVzdGlmaWVkIj09PXQ/IiI6Ii1qdXN0aWZpZWQiKToiIn19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovClJyKHtfdGVtcGxhdGU6X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB6LWluZGV4OiAxMDAyOwogICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAjdG9vbHRpcCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci10b29sdGlwLWJhY2tncm91bmQsICM2MTYxNjEpOwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10b29sdGlwLXRleHQtY29sb3IsIHdoaXRlKTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2x0aXA7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMga2V5RnJhbWVTY2FsZVVwIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMCk7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBrZXlGcmFtZVNjYWxlRG93biB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjApOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC4wKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMga2V5RnJhbWVGYWRlSW5PcGFjaXR5IHsKICAgICAgICAwJSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIG9wYWNpdHk6IHZhcigtLXBhcGVyLXRvb2x0aXAtb3BhY2l0eSwgMC45KTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMga2V5RnJhbWVGYWRlT3V0T3BhY2l0eSB7CiAgICAgICAgMCUgewogICAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGtleUZyYW1lU2xpZGVEb3duSW4gewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICAgIDEwJSB7CiAgICAgICAgICBvcGFjaXR5OiAwLjI7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBrZXlGcmFtZVNsaWRlRG93bk91dCB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIH0KICAgICAgICAxMCUgewogICAgICAgICAgb3BhY2l0eTogMC4yOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZmFkZS1pbi1hbmltYXRpb24gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1wYXBlci10b29sdGlwLWRlbGF5LWluLCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGtleUZyYW1lRmFkZUluT3BhY2l0eTsKICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwogICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47CiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci10b29sdGlwLWR1cmF0aW9uLWluLCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbHRpcC1hbmltYXRpb247CiAgICAgIH0KCiAgICAgIC5mYWRlLW91dC1hbmltYXRpb24gewogICAgICAgIG9wYWNpdHk6IHZhcigtLXBhcGVyLXRvb2x0aXAtb3BhY2l0eSwgMC45KTsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IHZhcigtLXBhcGVyLXRvb2x0aXAtZGVsYXktb3V0LCAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1uYW1lOiBrZXlGcmFtZUZhZGVPdXRPcGFjaXR5OwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7CiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsKICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXRvb2x0aXAtZHVyYXRpb24tb3V0LCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbHRpcC1hbmltYXRpb247CiAgICAgIH0KCiAgICAgIC5zY2FsZS11cC1hbmltYXRpb24gewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tcGFwZXItdG9vbHRpcC1kZWxheS1pbiwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1uYW1lOiBrZXlGcmFtZVNjYWxlVXA7CiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItdG9vbHRpcC1kdXJhdGlvbi1pbiwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2x0aXAtYW5pbWF0aW9uOwogICAgICB9CgogICAgICAuc2NhbGUtZG93bi1hbmltYXRpb24gewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tcGFwZXItdG9vbHRpcC1kZWxheS1vdXQsIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tbmFtZToga2V5RnJhbWVTY2FsZURvd247CiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItdG9vbHRpcC1kdXJhdGlvbi1vdXQsIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sdGlwLWFuaW1hdGlvbjsKICAgICAgfQoKICAgICAgLnNsaWRlLWRvd24tYW5pbWF0aW9uIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMDBweCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IHZhcigtLXBhcGVyLXRvb2x0aXAtZGVsYXktb3V0LCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGtleUZyYW1lU2xpZGVEb3duSW47CiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4wLCAwLjAsIDAuMiwgMSk7CiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci10b29sdGlwLWR1cmF0aW9uLW91dCwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2x0aXAtYW5pbWF0aW9uOwogICAgICB9CgogICAgICAuc2xpZGUtZG93bi1hbmltYXRpb24tb3V0IHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tcGFwZXItdG9vbHRpcC1kZWxheS1vdXQsIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tbmFtZToga2V5RnJhbWVTbGlkZURvd25PdXQ7CiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDEsIDEpOwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItdG9vbHRpcC1kdXJhdGlvbi1vdXQsIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sdGlwLWFuaW1hdGlvbjsKICAgICAgfQoKICAgICAgLmNhbmNlbC1hbmltYXRpb24gewogICAgICAgIGFuaW1hdGlvbi1kZWxheTogLTMwcyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAvKiBUaGFua3MgSUUgMTAuICovCgogICAgICAuaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBpZD0idG9vbHRpcCIgY2xhc3M9ImhpZGRlbiI+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci10b29sdGlwIixob3N0QXR0cmlidXRlczp7cm9sZToidG9vbHRpcCIsdGFiaW5kZXg6LTF9LHByb3BlcnRpZXM6e2Zvcjp7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9maW5kVGFyZ2V0In0sbWFudWFsTW9kZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG9ic2VydmVyOiJfbWFudWFsTW9kZUNoYW5nZWQifSxwb3NpdGlvbjp7dHlwZTpTdHJpbmcsdmFsdWU6ImJvdHRvbSJ9LGZpdFRvVmlzaWJsZUJvdW5kczp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxvZmZzZXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjE0fSxtYXJnaW5Ub3A6e3R5cGU6TnVtYmVyLHZhbHVlOjE0fSxhbmltYXRpb25EZWxheTp7dHlwZTpOdW1iZXIsdmFsdWU6NTAwLG9ic2VydmVyOiJfZGVsYXlDaGFuZ2UifSxhbmltYXRpb25FbnRyeTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LGFuaW1hdGlvbkV4aXQ6e3R5cGU6U3RyaW5nLHZhbHVlOiIifSxhbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue2VudHJ5Olt7bmFtZToiZmFkZS1pbi1hbmltYXRpb24iLG5vZGU6dGhpcyx0aW1pbmc6e2RlbGF5OjB9fV0sZXhpdDpbe25hbWU6ImZhZGUtb3V0LWFuaW1hdGlvbiIsbm9kZTp0aGlzfV19fX0sX3Nob3dpbmc6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX19LGxpc3RlbmVyczp7d2Via2l0QW5pbWF0aW9uRW5kOiJfb25BbmltYXRpb25FbmQifSxnZXQgdGFyZ2V0KCl7dmFyIHQ9WWkodGhpcykucGFyZW50Tm9kZSxlPVlpKHRoaXMpLmdldE93bmVyUm9vdCgpO3JldHVybiB0aGlzLmZvcj9ZaShlKS5xdWVyeVNlbGVjdG9yKCIjIit0aGlzLmZvcik6dC5ub2RlVHlwZT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFP2UuaG9zdDp0fSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2ZpbmRUYXJnZXQoKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLm1hbnVhbE1vZGV8fHRoaXMuX3JlbW92ZUxpc3RlbmVycygpfSxwbGF5QW5pbWF0aW9uOmZ1bmN0aW9uKHQpeyJlbnRyeSI9PT10P3RoaXMuc2hvdygpOiJleGl0Ij09PXQmJnRoaXMuaGlkZSgpfSxjYW5jZWxBbmltYXRpb246ZnVuY3Rpb24oKXt0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QuYWRkKCJjYW5jZWwtYW5pbWF0aW9uIil9LHNob3c6ZnVuY3Rpb24oKXtpZighdGhpcy5fc2hvd2luZyl7aWYoIiI9PT1ZaSh0aGlzKS50ZXh0Q29udGVudC50cmltKCkpe2Zvcih2YXIgdD0hMCxlPVlpKHRoaXMpLmdldEVmZmVjdGl2ZUNoaWxkTm9kZXMoKSxuPTA7bjxlLmxlbmd0aDtuKyspaWYoIiIhPT1lW25dLnRleHRDb250ZW50LnRyaW0oKSl7dD0hMTticmVha31pZih0KXJldHVybn10aGlzLl9zaG93aW5nPSEwLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUoImNhbmNlbC1hbmltYXRpb24iKSx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX2dldEFuaW1hdGlvblR5cGUoImV4aXQiKSksdGhpcy51cGRhdGVQb3NpdGlvbigpLHRoaXMuX2FuaW1hdGlvblBsYXlpbmc9ITAsdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LmFkZCh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJlbnRyeSIpKX19LGhpZGU6ZnVuY3Rpb24oKXtpZih0aGlzLl9zaG93aW5nKXtpZih0aGlzLl9hbmltYXRpb25QbGF5aW5nKXJldHVybiB0aGlzLl9zaG93aW5nPSExLHZvaWQgdGhpcy5fY2FuY2VsQW5pbWF0aW9uKCk7dGhpcy5fb25BbmltYXRpb25GaW5pc2goKSx0aGlzLl9zaG93aW5nPSExLHRoaXMuX2FuaW1hdGlvblBsYXlpbmc9ITB9fSx1cGRhdGVQb3NpdGlvbjpmdW5jdGlvbigpe2lmKHRoaXMuX3RhcmdldCYmdGhpcy5vZmZzZXRQYXJlbnQpe3ZhciB0PXRoaXMub2Zmc2V0OzE0IT10aGlzLm1hcmdpblRvcCYmMTQ9PXRoaXMub2Zmc2V0JiYodD10aGlzLm1hcmdpblRvcCk7dmFyIGUsbixpPXRoaXMub2Zmc2V0UGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9dGhpcy5fdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPShyLndpZHRoLW8ud2lkdGgpLzIscz0oci5oZWlnaHQtby5oZWlnaHQpLzIsbD1yLmxlZnQtaS5sZWZ0LGM9ci50b3AtaS50b3A7c3dpdGNoKHRoaXMucG9zaXRpb24pe2Nhc2UidG9wIjplPWwrYSxuPWMtby5oZWlnaHQtdDticmVhaztjYXNlImJvdHRvbSI6ZT1sK2Esbj1jK3IuaGVpZ2h0K3Q7YnJlYWs7Y2FzZSJsZWZ0IjplPWwtby53aWR0aC10LG49YytzO2JyZWFrO2Nhc2UicmlnaHQiOmU9bCtyLndpZHRoK3Qsbj1jK3N9dGhpcy5maXRUb1Zpc2libGVCb3VuZHM/KGkubGVmdCtlK28ud2lkdGg+d2luZG93LmlubmVyV2lkdGg/KHRoaXMuc3R5bGUucmlnaHQ9IjBweCIsdGhpcy5zdHlsZS5sZWZ0PSJhdXRvIik6KHRoaXMuc3R5bGUubGVmdD1NYXRoLm1heCgwLGUpKyJweCIsdGhpcy5zdHlsZS5yaWdodD0iYXV0byIpLGkudG9wK24rby5oZWlnaHQ+d2luZG93LmlubmVySGVpZ2h0Pyh0aGlzLnN0eWxlLmJvdHRvbT1pLmhlaWdodC1jK3QrInB4Iix0aGlzLnN0eWxlLnRvcD0iYXV0byIpOih0aGlzLnN0eWxlLnRvcD1NYXRoLm1heCgtaS50b3AsbikrInB4Iix0aGlzLnN0eWxlLmJvdHRvbT0iYXV0byIpKToodGhpcy5zdHlsZS5sZWZ0PWUrInB4Iix0aGlzLnN0eWxlLnRvcD1uKyJweCIpfX0sX2FkZExpc3RlbmVyczpmdW5jdGlvbigpe3RoaXMuX3RhcmdldCYmKHRoaXMubGlzdGVuKHRoaXMuX3RhcmdldCwibW91c2VlbnRlciIsInNob3ciKSx0aGlzLmxpc3Rlbih0aGlzLl90YXJnZXQsImZvY3VzIiwic2hvdyIpLHRoaXMubGlzdGVuKHRoaXMuX3RhcmdldCwibW91c2VsZWF2ZSIsImhpZGUiKSx0aGlzLmxpc3Rlbih0aGlzLl90YXJnZXQsImJsdXIiLCJoaWRlIiksdGhpcy5saXN0ZW4odGhpcy5fdGFyZ2V0LCJ0YXAiLCJoaWRlIikpLHRoaXMubGlzdGVuKHRoaXMuJC50b29sdGlwLCJhbmltYXRpb25lbmQiLCJfb25BbmltYXRpb25FbmQiKSx0aGlzLmxpc3Rlbih0aGlzLCJtb3VzZWVudGVyIiwiaGlkZSIpfSxfZmluZFRhcmdldDpmdW5jdGlvbigpe3RoaXMubWFudWFsTW9kZXx8dGhpcy5fcmVtb3ZlTGlzdGVuZXJzKCksdGhpcy5fdGFyZ2V0PXRoaXMudGFyZ2V0LHRoaXMubWFudWFsTW9kZXx8dGhpcy5fYWRkTGlzdGVuZXJzKCl9LF9kZWxheUNoYW5nZTpmdW5jdGlvbih0KXs1MDAhPT10JiZ0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tcGFwZXItdG9vbHRpcC1kZWxheS1pbiI6dCsibXMifSl9LF9tYW51YWxNb2RlQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMubWFudWFsTW9kZT90aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKTp0aGlzLl9hZGRMaXN0ZW5lcnMoKX0sX2NhbmNlbEFuaW1hdGlvbjpmdW5jdGlvbigpe3RoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fZ2V0QW5pbWF0aW9uVHlwZSgiZW50cnkiKSksdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJleGl0IikpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUoImNhbmNlbC1hbmltYXRpb24iKSx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0sX29uQW5pbWF0aW9uRmluaXNoOmZ1bmN0aW9uKCl7dGhpcy5fc2hvd2luZyYmKHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fZ2V0QW5pbWF0aW9uVHlwZSgiZW50cnkiKSksdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSgiY2FuY2VsLWFuaW1hdGlvbiIpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5hZGQodGhpcy5fZ2V0QW5pbWF0aW9uVHlwZSgiZXhpdCIpKSl9LF9vbkFuaW1hdGlvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2FuaW1hdGlvblBsYXlpbmc9ITEsdGhpcy5fc2hvd2luZ3x8KHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fZ2V0QW5pbWF0aW9uVHlwZSgiZXhpdCIpKSx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSl9LF9nZXRBbmltYXRpb25UeXBlOmZ1bmN0aW9uKHQpe2lmKCJlbnRyeSI9PT10JiYiIiE9PXRoaXMuYW5pbWF0aW9uRW50cnkpcmV0dXJuIHRoaXMuYW5pbWF0aW9uRW50cnk7aWYoImV4aXQiPT09dCYmIiIhPT10aGlzLmFuaW1hdGlvbkV4aXQpcmV0dXJuIHRoaXMuYW5pbWF0aW9uRXhpdDtpZih0aGlzLmFuaW1hdGlvbkNvbmZpZ1t0XSYmInN0cmluZyI9PXR5cGVvZiB0aGlzLmFuaW1hdGlvbkNvbmZpZ1t0XVswXS5uYW1lKXtpZih0aGlzLmFuaW1hdGlvbkNvbmZpZ1t0XVswXS50aW1pbmcmJnRoaXMuYW5pbWF0aW9uQ29uZmlnW3RdWzBdLnRpbWluZy5kZWxheSYmMCE9PXRoaXMuYW5pbWF0aW9uQ29uZmlnW3RdWzBdLnRpbWluZy5kZWxheSl7dmFyIGU9dGhpcy5hbmltYXRpb25Db25maWdbdF1bMF0udGltaW5nLmRlbGF5OyJlbnRyeSI9PT10P3RoaXMudXBkYXRlU3R5bGVzKHsiLS1wYXBlci10b29sdGlwLWRlbGF5LWluIjplKyJtcyJ9KToiZXhpdCI9PT10JiZ0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tcGFwZXItdG9vbHRpcC1kZWxheS1vdXQiOmUrIm1zIn0pfXJldHVybiB0aGlzLmFuaW1hdGlvbkNvbmZpZ1t0XVswXS5uYW1lfX0sX3JlbW92ZUxpc3RlbmVyczpmdW5jdGlvbigpe3RoaXMuX3RhcmdldCYmKHRoaXMudW5saXN0ZW4odGhpcy5fdGFyZ2V0LCJtb3VzZWVudGVyIiwic2hvdyIpLHRoaXMudW5saXN0ZW4odGhpcy5fdGFyZ2V0LCJmb2N1cyIsInNob3ciKSx0aGlzLnVubGlzdGVuKHRoaXMuX3RhcmdldCwibW91c2VsZWF2ZSIsImhpZGUiKSx0aGlzLnVubGlzdGVuKHRoaXMuX3RhcmdldCwiYmx1ciIsImhpZGUiKSx0aGlzLnVubGlzdGVuKHRoaXMuX3RhcmdldCwidGFwIiwiaGlkZSIpKSx0aGlzLnVubGlzdGVuKHRoaXMuJC50b29sdGlwLCJhbmltYXRpb25lbmQiLCJfb25BbmltYXRpb25FbmQiKSx0aGlzLnVubGlzdGVuKHRoaXMsIm1vdXNlZW50ZXIiLCJoaWRlIil9fSk7Y2xhc3MgZHN7Y29uc3RydWN0b3IodCl7dGhpcy5saXN0ZW5lcj10fX1jb25zdCBwcz1uZXcgU2V0LGZzPW5ldyBTZXQ7ZnVuY3Rpb24gbXModCl7Y29uc3QgZT1uZXcgZHModCk7cmV0dXJuIHBzLmFkZChlKSxlfWZ1bmN0aW9uIGdzKHQpe2NvbnN0IGU9bmV3IGRzKHQpO3JldHVybiBmcy5hZGQoZSksZX1mdW5jdGlvbiBfcygpe2ZzLmZvckVhY2goKHQ9PnQubGlzdGVuZXIoKSkpfWZ1bmN0aW9uIHlzKHQpe3BzLmRlbGV0ZSh0KX1mdW5jdGlvbiB2cyh0KXtmcy5kZWxldGUodCl9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLCgoKT0+e3BzLmZvckVhY2goKHQ9PnQubGlzdGVuZXIoKSkpfSkpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIiwoKCk9Pntmcy5mb3JFYWNoKCh0PT50Lmxpc3RlbmVyKCkpKX0pKTtsZXQgYnM9ITE7ZnVuY3Rpb24geHMoKXtyZXR1cm4gYnN9bGV0IHdzPSIiO2Z1bmN0aW9uIFNzKHQpe3dzPXR9ZnVuY3Rpb24gTXMoKXtyZXR1cm4gd3N9dmFyIEVzPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLHNldFVzZUhhc2g6ZnVuY3Rpb24gVHModCl7YnM9dH0sdXNlSGFzaDp4cyxzZXRGYWtlSGFzaDpTcyxnZXRGYWtlSGFzaDpNc30pO2xldCBDcz17fTtmdW5jdGlvbiBBcygpe3JldHVybiB4cygpP3dpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpOk1zKCl9ZnVuY3Rpb24ga3ModCl7Y29uc3QgZT17fTtyZXR1cm4gdC5zcGxpdCgiJiIpLmZvckVhY2goKHQ9Pntjb25zdCBuPXQuc3BsaXQoIj0iKTsxPT09bi5sZW5ndGg/ZS5fX3RhYl9fPW5bMF06Mj09PW4ubGVuZ3RoJiYoZVtkZWNvZGVVUklDb21wb25lbnQoblswXSldPWRlY29kZVVSSUNvbXBvbmVudChuWzFdKSl9KSksZX1mdW5jdGlvbiBMcyh0LGU9ITEpe2lmKHhzKCkpaWYoZSl7Y29uc3QgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtlLmhhc2g9dCx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwiIixlLnRvU3RyaW5nKCkpfWVsc2Ugd2luZG93LmxvY2F0aW9uLmhhc2g9dDtlbHNlIFNzKHQpfWZ1bmN0aW9uIFBzKHQpe2xldCBlPSIiO3ZvaWQgMCE9PXQuX190YWJfXyYmKGUrPXQuX190YWJfXyk7Y29uc3Qgbj1PYmplY3Qua2V5cyh0KS5tYXAoKGU9PltlLHRbZV1dKSkuZmlsdGVyKCh0PT4iX190YWJfXyIhPT10WzBdKSkubWFwKCh0PT5lbmNvZGVVUklDb21wb25lbnQodFswXSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0WzFdKSkpLmpvaW4oIiYiKTtyZXR1cm4gbi5sZW5ndGg+MD9lKyImIituOmV9bXMoKCgpPT57Q3M9a3MoQXMoKSl9KSk7Y29uc3R7Z2V0Ok5zLHNldDpJcyxnZXRJbml0aWFsaXplcjpScyxnZXRPYnNlcnZlcjpPcyxkaXNwb3NlQmluZGluZzp6c309SnMoKHQ9PnQpLCh0PT50KSkse2dldDpEcyxzZXQ6QnMsZ2V0SW5pdGlhbGl6ZXI6SHMsZ2V0T2JzZXJ2ZXI6RnMsZGlzcG9zZUJpbmRpbmc6VnN9PUpzKCh0PT4idHJ1ZSI9PT10fHwiZmFsc2UiIT09dCYmdm9pZCAwKSwodD0+dC50b1N0cmluZygpKSkse2dldDpVcyxzZXQ6anMsZ2V0SW5pdGlhbGl6ZXI6R3MsZ2V0T2JzZXJ2ZXI6V3MsZGlzcG9zZUJpbmRpbmc6cXN9PUpzKCh0PT4rdCksKHQ9PnQudG9TdHJpbmcoKSkpLHtnZXQ6WXMsc2V0OlhzLGdldEluaXRpYWxpemVyOiRzLGdldE9ic2VydmVyOktzLGRpc3Bvc2VCaW5kaW5nOlpzfT1KcygodD0+SlNPTi5wYXJzZShhdG9iKHQpKSksKHQ9PmJ0b2EoSlNPTi5zdHJpbmdpZnkodCkpKSk7ZnVuY3Rpb24gSnModCxlKXtjb25zdCBuPVtdLGk9W107ZnVuY3Rpb24gcihlLG49e30pe2NvbnN0e2RlZmF1bHRWYWx1ZTppLHVzZUxvY2FsU3RvcmFnZTpyPSExfT1uLG89cj93aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZSk6a3MoQXMoKSlbZV07cmV0dXJuIG51bGw9PW8/U2UuZXhwb3J0cy5jbG9uZURlZXAoaSk6dChvKX1mdW5jdGlvbiBvKHQsbixpPXt9KXtjb25zdHtkZWZhdWx0VmFsdWU6byx1c2VMb2NhbFN0b3JhZ2U6YT0hMSx1c2VMb2NhdGlvblJlcGxhY2U6cz0hMX09aSxsPWUobik7aWYoYSl3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0odCxsKSxfcygpO2Vsc2UgaWYoIVNlLmV4cG9ydHMuaXNFcXVhbChuLHIodCx7dXNlTG9jYWxTdG9yYWdlOmF9KSkpaWYoU2UuZXhwb3J0cy5pc0VxdWFsKG4sbykpIShmdW5jdGlvbiBjKHQpe2NvbnN0IGU9a3MoQXMoKSk7ZGVsZXRlIGVbdF0sTHMoUHMoZSkpfSkodCk7ZWxzZXtjb25zdCBlPWtzKEFzKCkpO2VbdF09bCxMcyhQcyhlKSxzKX19cmV0dXJue2dldDpyLHNldDpvLGdldEluaXRpYWxpemVyOmZ1bmN0aW9uIGEodCxlKXtjb25zdCBvPU9iamVjdC5hc3NpZ24oe2RlZmF1bHRWYWx1ZTplLmRlZmF1bHRWYWx1ZSxwb2x5bWVyUHJvcGVydHk6dCx1c2VMb2NhbFN0b3JhZ2U6ITF9LGUpO3JldHVybiBmdW5jdGlvbigpe2NvbnN0IGU9UXModGhpcyx0KSxhPSgpPT57Y29uc3QgdD1yKGUsbyk7U2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpc1tvLnBvbHltZXJQcm9wZXJ0eV0pfHwodGhpc1tvLnBvbHltZXJQcm9wZXJ0eV09dCl9LHM9KG8udXNlTG9jYWxTdG9yYWdlP2dzOm1zKSgoKCk9PmEoKSkpO3JldHVybiBvLnVzZUxvY2FsU3RvcmFnZT9pLnB1c2gocyk6bi5wdXNoKHMpLGEoKSx0aGlzW28ucG9seW1lclByb3BlcnR5XX19LGdldE9ic2VydmVyOmZ1bmN0aW9uIHModCxlKXtjb25zdCBuPU9iamVjdC5hc3NpZ24oe2RlZmF1bHRWYWx1ZTplLmRlZmF1bHRWYWx1ZSxwb2x5bWVyUHJvcGVydHk6dCx1c2VMb2NhbFN0b3JhZ2U6ITF9LGUpO3JldHVybiBmdW5jdGlvbigpe28oUXModGhpcyx0KSx0aGlzW24ucG9seW1lclByb3BlcnR5XSxuKX19LGRpc3Bvc2VCaW5kaW5nOmZ1bmN0aW9uIGwoKXtuLmZvckVhY2goKHQ9PnlzKHQpKSksaS5mb3JFYWNoKCh0PT52cyh0KSkpfX19ZnVuY3Rpb24gUXModCxlKXtjb25zdCBuPXQuZGlzYW1iaWd1YXRvcjtyZXR1cm4obnVsbD09bj9bZV06W24sZV0pLmpvaW4oIi4iKX1sZXQgdGw9Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fdGFnRmlsdGVyPVJzKCJ0YWdGaWx0ZXIiLHtkZWZhdWx0VmFsdWU6IiIsdXNlTG9jYWxTdG9yYWdlOiExLHBvbHltZXJQcm9wZXJ0eToiX3RhZ0ZpbHRlciJ9KS5jYWxsKHRoaXMpLHRoaXMuX3RhZ0ZpbHRlck9ic2VydmVyPU9zKCJ0YWdGaWx0ZXIiLHtkZWZhdWx0VmFsdWU6IiIsdXNlTG9jYWxTdG9yYWdlOiExLHBvbHltZXJQcm9wZXJ0eToiX3RhZ0ZpbHRlciJ9KX1fY29tcHV0ZVRhZ0ZpbHRlcigpe3JldHVybiB0aGlzLl90YWdGaWx0ZXJ9fTtmdW5jdGlvbiBlbCh0KXtjb25zdHttb2R1bGVOYW1lOmUsc3R5bGVDb250ZW50Om59PXQsaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkb20tbW9kdWxlIikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpLG89W107dC5zdHlsZURlcGVuZGVuY2llcyYmdC5zdHlsZURlcGVuZGVuY2llcy5mb3JFYWNoKCh0PT57Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2Uuc2V0QXR0cmlidXRlKCJpbmNsdWRlIix0KSxvLnB1c2goZSl9KSk7Y29uc3QgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO09iamVjdC5hc3NpZ24oYSx7dGV4dENvbnRlbnQ6bn0pLG8uZm9yRWFjaCgodD0+e3IuY29udGVudC5hcHBlbmRDaGlsZCh0KX0pKSxyLmNvbnRlbnQuYXBwZW5kQ2hpbGQoYSksaS5hcHBlbmRDaGlsZChyKSxpLnJlZ2lzdGVyKGUpfXRsLnRlbXBsYXRlPV9lYAogICAgPHBhcGVyLWlucHV0CiAgICAgIG5vLWxhYmVsLWZsb2F0PSIiCiAgICAgIGxhYmVsPSJGaWx0ZXIgdGFncyAocmVndWxhciBleHByZXNzaW9ucyBzdXBwb3J0ZWQpIgogICAgICB2YWx1ZT0ie3tfdGFnRmlsdGVyfX0iCiAgICAgIGNsYXNzPSJzZWFyY2gtaW5wdXQiCiAgICA+CiAgICAgIDxpcm9uLWljb24gcHJlZml4PSIiIGljb249InNlYXJjaCIgc2xvdD0icHJlZml4Ij48L2lyb24taWNvbj4KICAgIDwvcGFwZXItaW5wdXQ+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDEwcHggNXB4IDEwcHggMTBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMCxjb21wdXRlZDoiX2NvbXB1dGVUYWdGaWx0ZXIoX3RhZ0ZpbHRlcikifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHRsLnByb3RvdHlwZSwidGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfdGFnRmlsdGVyT2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHRsLnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKSx0bD10KFtpKCJ0Zi10YWctZmlsdGVyZXIiKV0sdGwpLGVsKHttb2R1bGVOYW1lOiJkYXNoYm9hcmQtc3R5bGUiLHN0eWxlRGVwZW5kZW5jaWVzOlsiaXJvbi1mbGV4Il0sc3R5bGVDb250ZW50OiJcbiAgICAgIDpob3N0IHtcbiAgICAgICAgLS1zaWRlYmFyLXZlcnRpY2FsLXBhZGRpbmc6IDE1cHg7XG4gICAgICAgIC0tc2lkZWJhci1sZWZ0LXBhZGRpbmc6IDMwcHg7XG4gICAgICB9XG5cbiAgICAgIFtzbG90PSdzaWRlYmFyJ10ge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgIC5zZXR0aW5ncyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICAgIH1cblxuICAgICAgLnJ1bnMtc2VsZWN0b3Ige1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgICAgfVxuXG4gICAgICB0Zi1ydW5zLXNlbGVjdG9yIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgbGVmdDogdmFyKC0tc2lkZWJhci1sZWZ0LXBhZGRpbmcpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1zaWRlYmFyLXZlcnRpY2FsLXBhZGRpbmcpICogMik7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2gtaW5wdXQge1xuICAgICAgICBtYXJnaW46IDEwcHggNXB4IDAgMTBweDtcbiAgICAgIH1cblxuICAgICAgLnNpZGViYXItc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCB2YXIoLS10Yi11aS1ib3JkZXIpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXNpZGViYXItdmVydGljYWwtcGFkZGluZykgMFxuICAgICAgICAgIHZhcigtLXNpZGViYXItdmVydGljYWwtcGFkZGluZykgdmFyKC0tc2lkZWJhci1sZWZ0LXBhZGRpbmcpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5zaWRlYmFyLXNlY3Rpb246Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnNpZGViYXItc2VjdGlvbiBwYXBlci1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDVweDtcbiAgICAgIH1cblxuICAgICAgLnNpZGViYXItc2VjdGlvbiBwYXBlci1idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5zaWRlYmFyLXNlY3Rpb24gcGFwZXItYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAuc2lkZWJhci1zZWN0aW9uID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICB9XG5cbiAgICAgIC5zaWRlYmFyLXNlY3Rpb24gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAuc2lkZWJhci1zZWN0aW9uIGgzIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgNXB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgcGFwZXItY2hlY2tib3gge1xuICAgICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTtcbiAgICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tdGItbGluayk7XG4gICAgICB9XG5cbiAgICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS10Yi1saW5rLXZpc2l0ZWQpO1xuICAgICAgfVxuICAifSk7Y29uc3Qgbmw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtmdW5jdGlvbiBpbCh0KXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9tYXliZVNldERhcmtNb2RlKCksdGhpcy5vYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcigodD0+e3Quc29tZSgodD0+ImNsYXNzIj09PXQuYXR0cmlidXRlTmFtZSkpJiZ0aGlzLl9tYXliZVNldERhcmtNb2RlKCl9KSksdGhpcy5vYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHkse2F0dHJpYnV0ZXM6ITB9KX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3ZhciB0O3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksbnVsbD09PSh0PXRoaXMub2JzZXJ2ZXIpfHx2b2lkIDA9PT10fHx0LmRpc2Nvbm5lY3QoKX1fbWF5YmVTZXREYXJrTW9kZSgpe3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiZGFyay1tb2RlIixkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygiZGFyay1tb2RlIikpfX19bmwuc2V0QXR0cmlidXRlKCJpcyIsImN1c3RvbS1zdHlsZSIpLG5sLnRleHRDb250ZW50PSJcbiAgOnJvb3Qge1xuICAgIC0tdGItb3JhbmdlLXdlYWs6ICNmZmE3MjY7XG4gICAgLS10Yi1vcmFuZ2Utc3Ryb25nOiAjZjU3YzAwO1xuICAgIC0tdGItb3JhbmdlLWRhcms6ICNkYzczMjA7XG4gICAgLS10Yi1ncmV5LWRhcmtlcjogI2UyZTJlMjtcbiAgICAtLXRiLWdyZXktbGlnaHRlcjogI2YzZjNmMztcbiAgICAtLXRiLXVpLWRhcmstYWNjZW50OiAjNzU3NTc1O1xuICAgIC0tdGItdWktbGlnaHQtYWNjZW50OiAjZTBlMGUwO1xuICAgIC0tdGItdWktYm9yZGVyOiB2YXIoLS1wYXBlci1ncmV5LTMwMCk7XG4gICAgLS10Yi1ncmFwaC1mYWRlZDogI2UwZDRiMztcbiAgICAtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yOiB2YXIoLS1wYXBlci1ncmV5LTgwMCk7XG4gICAgLS10Yi1yYWlzZWQtYnV0dG9uLXNoYWRvdy1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIC0tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICNlOWU5ZTk7XG4gICAgLS10Yi1sYXlvdXQtYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgICAtLXRiLWxpbms6ICMxOTc2ZDI7IC8qIG1hdGVyaWFsIGJsdWUgNzAwLiAqL1xuICAgIC0tdGItbGluay12aXNpdGVkOiAjN2IxZmEyOyAvKiBtYXRlcmlhbCBwdXJwbGUgNzAwLiAqL1xuICB9XG5cbiAgOnJvb3QgLmRhcmstbW9kZSB7XG4gICAgLS10Yi11aS1ib3JkZXI6IHZhcigtLXBhcGVyLWdyZXktNzAwKTtcbiAgICAtLXRiLXVpLWRhcmstYWNjZW50OiB2YXIoLS1wYXBlci1ncmV5LTQwMCk7XG4gICAgLS10Yi11aS1saWdodC1hY2NlbnQ6IHZhcigtLXBhcGVyLWdyZXktNjAwKTtcbiAgICAtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yOiB2YXIoLS1wYXBlci1ncmV5LTQwMCk7XG4gICAgLS10Yi1yYWlzZWQtYnV0dG9uLXNoYWRvdy1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgIC0tcHJpbWFyeS10ZXh0LWNvbG9yOiAjZmZmO1xuICAgIC0tc2Vjb25kYXJ5LXRleHQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNDAwKTtcbiAgICAtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogIzMwMzAzMDsgIC8qIG1hdGVyaWFsIGdyZXkgQTQwMC4gKi9cbiAgICAtLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAjM2EzYTNhO1xuICAgIC0tdGItbGF5b3V0LWJhY2tncm91bmQtY29sb3I6ICMzYTNhM2E7XG4gICAgLS10Yi1saW5rOiAjNDJhNWY1OyAvKiBtYXRlcmlhbCBibHVlIDQwMC4gKi9cbiAgICAtLXRiLWxpbmstdmlzaXRlZDogI2JhNjhjODsgLyogbWF0ZXJpYWwgcHVycGxlIDMwMC4gKi9cbiAgICAvKiBPdmVycmlkZXMgcGFwZXItbWF0ZXJpYWwgKi9cbiAgICAtLXNoYWRvdy1lbGV2YXRpb24tMmRwXy1fYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSxcbiAgICAgIDAgMXB4IDVweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMiksXG4gICAgICAwIDNweCAxcHggLTJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIH1cbiIsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChubCksZWwoe21vZHVsZU5hbWU6InNjcm9sbGJhci1zdHlsZSIsc3R5bGVDb250ZW50OiJcbiAgICAuc2Nyb2xsYmFyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgfVxuXG4gICAgLnNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1ncmV5LTUwMCk7XG4gICAgICBjb2xvcjogdmFyKC0tcGFwZXItZ3JleS05MDApO1xuICAgIH1cbiAgICAuc2Nyb2xsYmFyIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICAifSk7bGV0IHJsPWNsYXNzIGV4dGVuZHMoaWwoeWUpKXt9O3JsLnRlbXBsYXRlPV9lYAogICAgPGRpdiBpZD0ic2lkZWJhciI+CiAgICAgIDxzbG90IG5hbWU9InNpZGViYXIiPjwvc2xvdD4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImNlbnRlciI+CiAgICAgIDxzbG90IG5hbWU9ImNlbnRlciIgY2xhc3M9InNjb2xsYmFyIj48L3Nsb3Q+CiAgICA8L2Rpdj4KICAgIDxzdHlsZSBpbmNsdWRlPSJzY3JvbGxiYXItc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIDpob3N0KC5kYXJrLW1vZGUpIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcik7CiAgICAgIH0KCiAgICAgICNzaWRlYmFyIHsKICAgICAgICBmbGV4OiAwIDAgdmFyKC0tdGYtZGFzaGJvYXJkLWxheW91dC1zaWRlYmFyLWJhc2lzLCAyNSUpOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IHZhcigtLXRmLWRhc2hib2FyZC1sYXlvdXQtc2lkZWJhci1tYXgtd2lkdGgsIDM1MHB4KTsKICAgICAgICBtaW4td2lkdGg6IHZhcigtLXRmLWRhc2hib2FyZC1sYXlvdXQtc2lkZWJhci1taW4td2lkdGgsIDI3MHB4KTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAjY2VudGVyIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIDo6c2xvdHRlZChbc2xvdD0nY2VudGVyJ10pIHsKICAgICAgICBjb250YWluOiBzdHJpY3Q7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KCiAgICAgIC50Zi1ncmFwaC1kYXNoYm9hcmQgI2NlbnRlciB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHJsPXQoW2koInRmLWRhc2hib2FyZC1sYXlvdXQiKV0scmwpO2NvbnN0IG9sPSJURi5UZW5zb3JCb2FyZC5QYWdpbmF0ZWRWaWV3LmxpbWl0IjtsZXQgYWw9bnVsbDtjb25zdCBzbD1uZXcgU2V0O2Z1bmN0aW9uIGxsKHQpe3NsLmFkZCh0KX1mdW5jdGlvbiBjbCh0KXtzbC5kZWxldGUodCl9ZnVuY3Rpb24gdWwoKXtyZXR1cm4gbnVsbD09YWwmJihhbD1VcyhvbCx7dXNlTG9jYWxTdG9yYWdlOiEwfSksKG51bGw9PWFsfHwhaXNGaW5pdGUoYWwpfHxhbDw9MCkmJihhbD0xMikpLGFsfWNsYXNzIGhsIGV4dGVuZHMgeWV7dXBkYXRlQXJyYXlQcm9wKHQsZSxuKXtsZXQgaT10aGlzLmdldCh0KTtjb25zdCByPWU7aWYoIUFycmF5LmlzQXJyYXkocikpdGhyb3cgUmFuZ2VFcnJvcihgRXhwZWN0ZWQgbmV3IHZhbHVlIHRvICcke3R9JyB0byBiZSBhbiBhcnJheS5gKTtBcnJheS5pc0FycmF5KGkpfHwoaT1bXSx0aGlzLnNldCh0LGkpKTtjb25zdCBvPW5ldyBTZXQoci5tYXAoKCh0LGUpPT5uKHQsZSkpKSk7bGV0IGE9MCxzPTA7Zm9yKDthPGkubGVuZ3RoJiZzPHIubGVuZ3RoOylvLmhhcyhuKGlbYV0sYSkpPyhuKGlbYV0sYSk9PW4ocltzXSxzKT90aGlzLnNldChgJHt0fS4ke2F9YCxyW3NdKTp0aGlzLnNwbGljZSh0LGEsMCxyW3NdKSxzKyssYSsrKTp0aGlzLnNwbGljZSh0LGEsMSk7YTxpLmxlbmd0aCYmdGhpcy5zcGxpY2UodCxhKSxzPHIubGVuZ3RoJiZ0aGlzLnB1c2godCwuLi5yLnNsaWNlKHMpKX19Y2xhc3MgZGwgZXh0ZW5kcyBobHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5hcz0iaXRlbSIsdGhpcy5fY29udGVudEFjdGl2ZT0hMCx0aGlzLl9kb21Cb290c3RyYXBwZWQ9ITEsdGhpcy5fY3Rvcj1udWxsLHRoaXMuX3JlbmRlcmVkSXRlbXM9W10sdGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3Q9bmV3IE1hcCx0aGlzLl9scnVDYWNoZWRJdGVtcz1uZXcgTWFwLHRoaXMuX2NhY2hlU2l6ZT0xMCx0aGlzLl9nZXRJdGVtS2V5PXQ9PkpTT04uc3RyaW5naWZ5KHQpLHRoaXMuX2lzQ29ubmVjdGVkPSExfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9pc0Nvbm5lY3RlZD0hMH1zZXRDYWNoZVNpemUodCl7dGhpcy5fY2FjaGVTaXplPXR9c2V0R2V0SXRlbUtleSh0KXt0aGlzLl9nZXRJdGVtS2V5PXR9dXBkYXRlRG9tKHQpe3RoaXMudXBkYXRlQXJyYXlQcm9wKCJfcmVuZGVyZWRJdGVtcyIsdCx0aGlzLl9nZXRJdGVtS2V5KX1fZW5zdXJlVGVtcGxhdGl6ZWQoKXtpZighdGhpcy5pc0Nvbm5lY3RlZClyZXR1cm4hMTtpZighdGhpcy5fY3Rvcil7Y29uc3QgdD10aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIik7dGhpcy5fY3Rvcj0kcih0LHRoaXMse3BhcmVudE1vZGVsOiEwLGluc3RhbmNlUHJvcHM6e1t0aGlzLmFzXTohMCxhY3RpdmU6dGhpcy5fY29udGVudEFjdGl2ZX0sZm9yd2FyZEhvc3RQcm9wOmZ1bmN0aW9uKHQsZSl7dGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3QuZm9yRWFjaCgobj0+e24uZm9yd2FyZEhvc3RQcm9wKHQsZSl9KSl9fSl9cmV0dXJuITB9X2Jvb3RzdHJhcERvbSgpe3RoaXMuX2Vuc3VyZVRlbXBsYXRpemVkKCkmJiF0aGlzLl9kb21Cb290c3RyYXBwZWQmJihuZXcgTXV0YXRpb25PYnNlcnZlcigodD0+e2Zvcihjb25zdCBlIG9mIHQpaWYoImNoaWxkTGlzdCI9PT1lLnR5cGUpZm9yKGNvbnN0IHQgb2YgQXJyYXkuZnJvbShlLmFkZGVkTm9kZXMpKXQgaW5zdGFuY2VvZiBFbGVtZW50JiZ0LnNldEF0dHJpYnV0ZSgic2xvdCIsIml0ZW1zIil9KSkub2JzZXJ2ZSh0aGlzLHtjaGlsZExpc3Q6ITB9KSxBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pnt0aGlzLnJlbW92ZUNoaWxkKHQpfSkpLHRoaXMuX2xydUNhY2hlZEl0ZW1zLmNsZWFyKCksdGhpcy5fcmVuZGVyZWRJdGVtcy5mb3JFYWNoKCgodCxlKT0+dGhpcy5faW5zZXJ0SXRlbSh0LGUpKSksdGhpcy5fZG9tQm9vdHN0cmFwcGVkPSEwKX1fdXBkYXRlQWN0aXZlKCl7dGhpcy5fZG9tQm9vdHN0cmFwcGVkJiZBcnJheS5mcm9tKHRoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LnZhbHVlcygpKS5mb3JFYWNoKCh0PT57dC5ub3RpZnlQYXRoKCJhY3RpdmUiLHRoaXMuX2NvbnRlbnRBY3RpdmUpfSkpfV91cGRhdGVEb20odCl7aWYodGhpcy5fZG9tQm9vdHN0cmFwcGVkJiYiX3JlbmRlcmVkSXRlbXMiIT10LnBhdGgmJiJfcmVuZGVyZWRJdGVtcy5sZW5ndGgiIT10LnBhdGgpaWYoIl9yZW5kZXJlZEl0ZW1zLnNwbGljZXMiPT09dC5wYXRoKXQudmFsdWUuaW5kZXhTcGxpY2VzLmZvckVhY2goKHQ9Pntjb25zdHtpbmRleDplLGFkZGVkQ291bnQ6bixvYmplY3Q6aSxyZW1vdmVkOnJ9PXQ7ci5mb3JFYWNoKCh0PT57dGhpcy5fcmVtb3ZlSXRlbSh0LHRoaXMuY2hpbGRyZW5bZV0pfSkpLGkuc2xpY2UoZSxlK24pLmZvckVhY2goKCh0LG4pPT50aGlzLl9pbnNlcnRJdGVtKHQsZStuKSkpLHRoaXMuX3RyaW1DYWNoZSgpfSkpO2Vsc2V7Y29uc3QgZT10aGlzLl9nZXRJdGVtS2V5KHQudmFsdWUpO3RoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LmhhcyhlKT90aGlzLl9yZW5kZXJlZFRlbXBsYXRlSW5zdC5nZXQoZSkubm90aWZ5UGF0aCh0aGlzLmFzLHQudmFsdWUpOmNvbnNvbGUud2FybihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGV4aXN0IGluIHRoZSBET00gYnV0IGNvdWxkIG5vdCBmaW5kIG9uZS5gKX19X2luc2VydEl0ZW0odCxlKXtpZighdGhpcy5fZW5zdXJlVGVtcGxhdGl6ZWQoKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHRlbXBsYXRpemVkIGJlZm9yZSBpbnNlcnRpbmcgYW4gaXRlbSIpO2xldCBuO2NvbnN0IGk9dGhpcy5fZ2V0SXRlbUtleSh0KTtpZih0aGlzLl9scnVDYWNoZWRJdGVtcy5oYXMoaSkpbj10aGlzLl9scnVDYWNoZWRJdGVtcy5nZXQoaSksdGhpcy5fbHJ1Q2FjaGVkSXRlbXMuZGVsZXRlKGkpLHRoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LmdldChpKS5ub3RpZnlQYXRoKCJhY3RpdmUiLHRoaXMuX2NvbnRlbnRBY3RpdmUpO2Vsc2V7Y29uc3QgZT1uZXcgdGhpcy5fY3Rvcih7W3RoaXMuYXNdOnQsYWN0aXZlOnRoaXMuX2NvbnRlbnRBY3RpdmV9KTtuPWUucm9vdCx0aGlzLl9yZW5kZXJlZFRlbXBsYXRlSW5zdC5zZXQoaSxlKX10aGlzLmNoaWxkcmVuW2VdP3RoaXMuaW5zZXJ0QmVmb3JlKG4sdGhpcy5jaGlsZHJlbltlXSk6KChuLm5vZGVUeXBlPT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU/QXJyYXkuZnJvbShuLmNoaWxkcmVuKTpbbl0pLmZvckVhY2goKHQ9PnQuc2V0QXR0cmlidXRlKCJzbG90IiwiaXRlbXMiKSkpLHRoaXMuYXBwZW5kQ2hpbGQobikpfV9yZW1vdmVJdGVtKHQsZSl7ZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSk7Y29uc3Qgbj10aGlzLl9nZXRJdGVtS2V5KHQpO3RoaXMuX2xydUNhY2hlZEl0ZW1zLnNldChuLGUpLHRoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LmdldChuKS5ub3RpZnlQYXRoKCJhY3RpdmUiLCExKX1fdHJpbUNhY2hlKCl7Zm9yKDt0aGlzLl9scnVDYWNoZWRJdGVtcy5zaXplPnRoaXMuX2NhY2hlU2l6ZTspe2NvbnN0W3RdPXRoaXMuX2xydUNhY2hlZEl0ZW1zLmtleXMoKTt0aGlzLl9scnVDYWNoZWRJdGVtcy5kZWxldGUodCksdGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3QuZGVsZXRlKHQpfX19dChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZGwucHJvdG90eXBlLCJhcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZGwucHJvdG90eXBlLCJpdGVtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGRsLnByb3RvdHlwZSwiX2NvbnRlbnRBY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGRsLnByb3RvdHlwZSwiX2RvbUJvb3RzdHJhcHBlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxkbC5wcm90b3R5cGUsIl9jdG9yIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxkbC5wcm90b3R5cGUsIl9yZW5kZXJlZEl0ZW1zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGRsLnByb3RvdHlwZSwiX3JlbmRlcmVkVGVtcGxhdGVJbnN0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGRsLnByb3RvdHlwZSwiX2xydUNhY2hlZEl0ZW1zIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGRsLnByb3RvdHlwZSwiX2NhY2hlU2l6ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxkbC5wcm90b3R5cGUsIl9nZXRJdGVtS2V5Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxkbC5wcm90b3R5cGUsIl9pc0Nvbm5lY3RlZCIsdm9pZCAwKSx0KFthKCJfaXNDb25uZWN0ZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGRsLnByb3RvdHlwZSwiX2Jvb3RzdHJhcERvbSIsbnVsbCksdChbYSgiX2NvbnRlbnRBY3RpdmUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGRsLnByb3RvdHlwZSwiX3VwZGF0ZUFjdGl2ZSIsbnVsbCksdChbYSgiX3JlbmRlcmVkSXRlbXMuKiIsIl9kb21Cb290c3RyYXBwZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbT2JqZWN0XSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGRsLnByb3RvdHlwZSwiX3VwZGF0ZURvbSIsbnVsbCksdChbYSgiX2NhY2hlU2l6ZSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sZGwucHJvdG90eXBlLCJfdHJpbUNhY2hlIixudWxsKTtsZXQgcGw9Y2xhc3MgZXh0ZW5kcyBkbHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5kaXNhYmxlUGFnaW5hdGlvbj0hMSx0aGlzLmdldENhdGVnb3J5SXRlbUtleT10PT5KU09OLnN0cmluZ2lmeSh0KSx0aGlzLl9saW1pdD0xMix0aGlzLl9hY3RpdmVJbmRleD0wLHRoaXMuX3BhZ2VJbnB1dFJhd1ZhbHVlPSIiLHRoaXMuX3BhZ2VJbnB1dEZvY3VzZWQ9ITF9X2NvbXB1dGVDb3VudCgpe3JldHVybiB0aGlzLmNhdGVnb3J5Lml0ZW1zLmxlbmd0aH1nZXQgX2hhc011bHRpcGxlKCl7cmV0dXJuIHRoaXMuX2NvdW50PjF9X3RvZ2dsZVBhbmUoKXt0aGlzLm9wZW5lZD0hdGhpcy5vcGVuZWR9X2NoYW5nZUNvbnRlbnRBY3RpdmUodCl7dGhpcy5fY29udGVudEFjdGl2ZT10fV9vblBhbmVSZW5kZXJlZENoYW5nZWQodCxlKXt0JiZ0IT09ZSYmdGhpcy4kLmlmUmVuZGVyZWQucmVuZGVyKCl9X2NvbXB1dGVQYW5lUmVuZGVyZWQodCl7cmV0dXJuISh0Lm1ldGFkYXRhLnR5cGU9PT1ici5TRUFSQ0hfUkVTVUxUUyYmIiI9PT10Lm5hbWUpfWdldCBfaXRlbXNSZW5kZXJlZCgpe3JldHVybiB0aGlzLl9wYW5lUmVuZGVyZWQmJnRoaXMub3BlbmVkfV9jb21wdXRlSXNTZWFyY2hSZXN1bHRzKHQpe3JldHVybiB0PT09YnIuU0VBUkNIX1JFU1VMVFN9X2NvbXB1dGVJc0ludmFsaWRTZWFyY2hSZXN1bHRzKHQpe3JldHVybiB0LnR5cGU9PT1ici5TRUFSQ0hfUkVTVUxUUyYmIXQudmFsaWRSZWdleH1fY29tcHV0ZUlzVW5pdmVyc2FsU2VhcmNoUXVlcnkodCl7cmV0dXJuIHQudHlwZT09PWJyLlNFQVJDSF9SRVNVTFRTJiZ0LnVuaXZlcnNhbFJlZ2V4fV9pc0NvbXBvc2l0ZVNlYXJjaCgpe2NvbnN0e3R5cGU6dCxjb21wb3NpdGVTZWFyY2g6ZX09dGhpcy5jYXRlZ29yeS5tZXRhZGF0YTtyZXR1cm4gZSYmdD09PWJyLlNFQVJDSF9SRVNVTFRTfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLm9wZW5lZD1udWxsPT10aGlzLmluaXRpYWxPcGVuZWR8fHRoaXMuaW5pdGlhbE9wZW5lZCx0aGlzLl9saW1pdExpc3RlbmVyPSgpPT57dGhpcy5zZXQoIl9saW1pdCIsdWwoKSl9LGxsKHRoaXMuX2xpbWl0TGlzdGVuZXIpLHRoaXMuX2xpbWl0TGlzdGVuZXIoKX1kZXRhY2hlZCgpe2NsKHRoaXMuX2xpbWl0TGlzdGVuZXIpfV91cGRhdGVSZW5kZXJlZEl0ZW1zKCl7dmFyIHQ9dGhpcy5fbGltaXQsZT10aGlzLmRpc2FibGVQYWdpbmF0aW9uO2lmKCF0aGlzLl9pdGVtc1JlbmRlcmVkKXJldHVybjtjb25zdCBuPU1hdGguZmxvb3IodGhpcy5fYWN0aXZlSW5kZXgvdCksaT10aGlzLmNhdGVnb3J5Lml0ZW1zfHxbXSxyPWU/aTppLnNsaWNlKG4qdCwobisxKSp0KTt0aGlzLnVwZGF0ZURvbShyKX1fbGltaXRDaGFuZ2VkKHQpe3RoaXMuc2V0Q2FjaGVTaXplKDIqdCl9X2dldENhdGVnb3J5SXRlbUtleUNoYW5nZWQoKXt0aGlzLnNldEdldEl0ZW1LZXkodGhpcy5nZXRDYXRlZ29yeUl0ZW1LZXkpfWdldCBfY3VycmVudFBhZ2UoKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLl9hY3RpdmVJbmRleC90aGlzLl9saW1pdCkrMX1fY29tcHV0ZVBhZ2VDb3VudCh0LGUpe3JldHVybiB0aGlzLmNhdGVnb3J5P01hdGguY2VpbCh0aGlzLmNhdGVnb3J5Lml0ZW1zLmxlbmd0aC9lKTowfWdldCBfbXVsdGlwbGVQYWdlc0V4aXN0KCl7cmV0dXJuIXRoaXMuZGlzYWJsZVBhZ2luYXRpb24mJnRoaXMuX3BhZ2VDb3VudD4xfWdldCBfaGFzUHJldmlvdXNQYWdlKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRQYWdlPjF9Z2V0IF9oYXNOZXh0UGFnZSgpe3JldHVybiB0aGlzLl9jdXJyZW50UGFnZTx0aGlzLl9wYWdlQ291bnR9X2NvbXB1dGVJbnB1dFdpZHRoKHQpe3JldHVybmBjYWxjKCR7dC50b1N0cmluZygpLmxlbmd0aH1lbSArIDIwcHgpYH1fc2V0QWN0aXZlSW5kZXgodCl7Y29uc3QgZT0odGhpcy5jYXRlZ29yeS5pdGVtc3x8W10pLmxlbmd0aC0xO3Q+ZSYmKHQ9ZSksdDwwJiYodD0wKSx0aGlzLnNldCgiX2FjdGl2ZUluZGV4Iix0KX1fY2xhbXBBY3RpdmVJbmRleCgpe3RoaXMuX3NldEFjdGl2ZUluZGV4KHRoaXMuX2FjdGl2ZUluZGV4KX1fcGVyZm9ybVByZXZpb3VzUGFnZSgpe3RoaXMuX3NldEFjdGl2ZUluZGV4KHRoaXMuX2FjdGl2ZUluZGV4LXRoaXMuX2xpbWl0KX1fcGVyZm9ybU5leHRQYWdlKCl7dGhpcy5fc2V0QWN0aXZlSW5kZXgodGhpcy5fYWN0aXZlSW5kZXgrdGhpcy5fbGltaXQpfV9jb21wdXRlUGFnZUlucHV0VmFsdWUodCxlLG4pe3JldHVybiB0P2U6bi50b1N0cmluZygpfV9oYW5kbGVQYWdlSW5wdXRFdmVudCh0KXt0aGlzLnNldCgiX3BhZ2VJbnB1dFJhd1ZhbHVlIix0LnRhcmdldC52YWx1ZSk7Y29uc3QgZT1OdW1iZXIodC50YXJnZXQudmFsdWV8fE5hTik7aWYoaXNOYU4oZSkpcmV0dXJuO2NvbnN0IG49TWF0aC5tYXgoMSxNYXRoLm1pbihlLHRoaXMuX3BhZ2VDb3VudCkpLTE7dGhpcy5fc2V0QWN0aXZlSW5kZXgodGhpcy5fbGltaXQqbil9X2hhbmRsZVBhZ2VDaGFuZ2VFdmVudCgpe3RoaXMuc2V0KCJfcGFnZUlucHV0UmF3VmFsdWUiLHRoaXMuX2N1cnJlbnRQYWdlLnRvU3RyaW5nKCkpfV9oYW5kbGVQYWdlRm9jdXNFdmVudCgpe3RoaXMuc2V0KCJfcGFnZUlucHV0UmF3VmFsdWUiLHRoaXMuX3BhZ2VJbnB1dFZhbHVlKSx0aGlzLnNldCgiX3BhZ2VJbnB1dEZvY3VzZWQiLCEwKX1faGFuZGxlUGFnZUJsdXJFdmVudCgpe3RoaXMuc2V0KCJfcGFnZUlucHV0Rm9jdXNlZCIsITEpfV91cGRhdGVQYWdlSW5wdXRWYWx1ZSh0KXtjb25zdCBlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIjcGFnZS1pbnB1dCBpbnB1dCIpO2UmJihlLnZhbHVlPXQpfV91cGRhdGVJbnB1dFdpZHRoKCl7dGhpcy51cGRhdGVTdHlsZXMoeyItLXRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3LXBhZ2UtaW5wdXQtd2lkdGgiOnRoaXMuX2lucHV0V2lkdGh9KX19O3BsLnRlbXBsYXRlPV9lYAogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19wYW5lUmVuZGVyZWRdXSIgaWQ9ImlmUmVuZGVyZWQiPgogICAgICA8YnV0dG9uIGNsYXNzPSJoZWFkaW5nIiBvbi10YXA9Il90b2dnbGVQYW5lIiBvcGVuLWJ1dHRvbiQ9Iltbb3BlbmVkXV0iPgogICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNTZWFyY2hSZXN1bHRzXV0iPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzQ29tcG9zaXRlU2VhcmNoKGNhdGVnb3J5KV1dIj4KICAgICAgICAgICAgICA8c3Bhbj5UYWdzIG1hdGNoaW5nIG11bHRpcGxlIGV4cGVyaW1lbnRzPC9zcGFuPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNJbnZhbGlkU2VhcmNoUmVzdWx0c11dIj4KICAgICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICAgID4mbmJzcDs8c3Ryb25nPihtYWxmb3JtZWQgcmVndWxhciBleHByZXNzaW9uKTwvc3Ryb25nPjwvc3BhbgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2lzQ29tcG9zaXRlU2VhcmNoKGNhdGVnb3J5KV1dIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGlnaHQiPlRhZ3MgbWF0Y2hpbmcgLzwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktbmFtZSIgdGl0bGUkPSJbW2NhdGVnb3J5Lm5hbWVdXSIKICAgICAgICAgICAgICAgID5bW2NhdGVnb3J5Lm5hbWVdXTwvc3BhbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGlnaHQiPi88L3NwYW4+CiAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1VuaXZlcnNhbFNlYXJjaFF1ZXJ5XV0iPgogICAgICAgICAgICAgICAgPHNwYW4+IChhbGwgdGFncyk8L3NwYW4+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzSW52YWxpZFNlYXJjaFJlc3VsdHNdXSI+CiAgICAgICAgICAgICAgICA8c3Bhbj4gPHN0cm9uZz4obWFsZm9ybWVkIHJlZ3VsYXIgZXhwcmVzc2lvbik8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9pc1NlYXJjaFJlc3VsdHNdXSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS1uYW1lIiB0aXRsZSQ9IltbY2F0ZWdvcnkubmFtZV1dIgogICAgICAgICAgICAgID5bW2NhdGVnb3J5Lm5hbWVdXTwvc3BhbgogICAgICAgICAgICA+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iY291bnQiPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZV1dIj4KICAgICAgICAgICAgPHNwYW4+W1tfY291bnRdXTwvc3Bhbj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8aXJvbi1pY29uIGljb249ImV4cGFuZC1tb3JlIiBjbGFzcz0iZXhwYW5kLWFycm93Ij48L2lyb24taWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvYnV0dG9uPgogICAgICA8IS0tIFRPRE8oc3RlcGhhbndsZWUpOiBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLiBGb3Igc29tZSByZWFzb24sCiAgICAgICAgdHJhbnNpdGlvbmVuZCB0aGF0IHRoZSBpcm9uLWNvbGxhcHNlIHJlbGllcyBvbiBzb21ldGltZXMgZG9lcyBub3QKICAgICAgICB0cmlnZ2VyIHdoZW4gcmVuZGVyaW5nIGEgY2hhcnQgd2l0aCBhIHNwaW5uZXIuIEEgdG95IGV4YW1wbGUgY2Fubm90CiAgICAgICAgcmVwcm9kdWNlIHRoaXMgYnVnLiAtLT4KICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJbW29wZW5lZF1dIiBuby1hbmltYXRpb249IiI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICA8c3BhbiBpZD0idG9wLW9mLWNvbnRhaW5lciI+PC9zcGFuPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19tdWx0aXBsZVBhZ2VzRXhpc3RdXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJpZy1wYWdlLWJ1dHRvbnMiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxMHB4OyI+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICAgICAgb24tdGFwPSJfcGVyZm9ybVByZXZpb3VzUGFnZSIKICAgICAgICAgICAgICAgIGRpc2FibGVkJD0iW1shX2hhc1ByZXZpb3VzUGFnZV1dIgogICAgICAgICAgICAgICAgPlByZXZpb3VzIHBhZ2U8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBvbi10YXA9Il9wZXJmb3JtTmV4dFBhZ2UiCiAgICAgICAgICAgICAgICBkaXNhYmxlZCQ9IltbIV9oYXNOZXh0UGFnZV1dIgogICAgICAgICAgICAgICAgPk5leHQgcGFnZTwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CgogICAgICAgICAgPGRpdiBpZD0iaXRlbXMiPgogICAgICAgICAgICA8c2xvdCBuYW1lPSJpdGVtcyI+PC9zbG90PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX211bHRpcGxlUGFnZXNFeGlzdF1dIj4KICAgICAgICAgICAgPGRpdiBpZD0iY29udHJvbHMtY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDAgNXB4Ij4KICAgICAgICAgICAgICAgIFBhZ2UKICAgICAgICAgICAgICAgIDxwYXBlci1pbnB1dAogICAgICAgICAgICAgICAgICBpZD0icGFnZS1pbnB1dCIKICAgICAgICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgICAgICAgICAgICBuby1sYWJlbC1mbG9hdD0iIgogICAgICAgICAgICAgICAgICBtaW49IjEiCiAgICAgICAgICAgICAgICAgIG1heD0iW1tfcGFnZUNvdW50XV0iCiAgICAgICAgICAgICAgICAgIHZhbHVlPSJbW19wYWdlSW5wdXRWYWx1ZV1dIgogICAgICAgICAgICAgICAgICBvbi1pbnB1dD0iX2hhbmRsZVBhZ2VJbnB1dEV2ZW50IgogICAgICAgICAgICAgICAgICBvbi1jaGFuZ2U9Il9oYW5kbGVQYWdlQ2hhbmdlRXZlbnQiCiAgICAgICAgICAgICAgICAgIG9uLWZvY3VzPSJfaGFuZGxlUGFnZUZvY3VzRXZlbnQiCiAgICAgICAgICAgICAgICAgIG9uLWJsdXI9Il9oYW5kbGVQYWdlQmx1ckV2ZW50IgogICAgICAgICAgICAgICAgPjwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgICAgICBvZiBbW19wYWdlQ291bnRdXQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJpZy1wYWdlLWJ1dHRvbnMiIHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICAgICAgb24tdGFwPSJfcGVyZm9ybVByZXZpb3VzUGFnZSIKICAgICAgICAgICAgICAgIGRpc2FibGVkJD0iW1shX2hhc1ByZXZpb3VzUGFnZV1dIgogICAgICAgICAgICAgICAgPlByZXZpb3VzIHBhZ2U8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBvbi10YXA9Il9wZXJmb3JtTmV4dFBhZ2UiCiAgICAgICAgICAgICAgICBkaXNhYmxlZCQ9IltbIV9oYXNOZXh0UGFnZV1dIgogICAgICAgICAgICAgICAgPk5leHQgcGFnZTwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgIDwvdGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDAgNXB4IDFweCAxMHB4OwogICAgICB9CgogICAgICA6aG9zdCg6Zmlyc3Qtb2YtdHlwZSkgewogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KDpsYXN0LW9mLXR5cGUpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggdmFyKC0tdGItcmFpc2VkLWJ1dHRvbi1zaGFkb3ctY29sb3IpOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9CgogICAgICAuaGVhZGluZzo6LW1vei1mb2N1cy1pbm5lciB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICB9CgogICAgICBbb3Blbi1idXR0b25dIHsKICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgW29wZW4tYnV0dG9uXSAuZXhwYW5kLWFycm93IHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKTsKICAgICAgfQoKICAgICAgLm5hbWUgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5saWdodCB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNTAwKTsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LW5hbWUgewogICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBwYWRkaW5nOiAycHggMDsKICAgICAgfQoKICAgICAgLmNvdW50IHsKICAgICAgICBtYXJnaW46IDAgNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItZ3JleS01MDApOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBmbGV4OiBub25lOwogICAgICB9CgogICAgICAuaGVhZGluZzo6LW1vei1mb2N1cy1pbm5lciB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcik7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMnB4OwogICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHg7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGVkZWRlOwogICAgICAgIHBhZGRpbmc6IDE1cHg7CiAgICAgIH0KCiAgICAgIC5saWdodCB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNTAwKTsKICAgICAgfQoKICAgICAgI2NvbnRyb2xzLWNvbnRhaW5lciB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgI2NvbnRyb2xzLWNvbnRhaW5lciBwYXBlci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmJpZy1wYWdlLWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC5iaWctcGFnZS1idXR0b25zIHBhcGVyLWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTsKICAgICAgICBjb2xvcjogdmFyKC0tdGItdWktZGFyay1hY2NlbnQpOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBmbGV4LWJhc2lzOiAwOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5iaWctcGFnZS1idXR0b25zIHBhcGVyLWJ1dHRvbltkaXNhYmxlZF0gewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIHNsb3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KCiAgICAgIDo6c2xvdHRlZChbc2xvdD0naXRlbXMnXSkgewogICAgICAgIC8qIFRvb2x0aXAgZm9yIGRlc2NyaXB0aW9ucyBhbmQgb3RoZXJzIGJyZWFrIHdpdGggbW9yZSBzdHJpY3Qgb25lcy4gKi8KICAgICAgICBjb250YWluOiBzdHlsZTsKICAgICAgfQoKICAgICAgI3BhZ2UtaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogdmFyKC0tdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXctcGFnZS1pbnB1dC13aWR0aCwgMTAwJSk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxwbC5wcm90b3R5cGUsImNhdGVnb3J5Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scGwucHJvdG90eXBlLCJpbml0aWFsT3BlbmVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHBsLnByb3RvdHlwZSwib3BlbmVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scGwucHJvdG90eXBlLCJkaXNhYmxlUGFnaW5hdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixjb21wdXRlZDoiX2NvbXB1dGVDb3VudChjYXRlZ29yeS5pdGVtcy4qKSJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0scGwucHJvdG90eXBlLCJfY291bnQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLGNvbXB1dGVkOiJfY29tcHV0ZVBhbmVSZW5kZXJlZChjYXRlZ29yeSkiLG9ic2VydmVyOiJfb25QYW5lUmVuZGVyZWRDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scGwucHJvdG90eXBlLCJfcGFuZVJlbmRlcmVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixjb21wdXRlZDoiX2NvbXB1dGVJc1NlYXJjaFJlc3VsdHMoY2F0ZWdvcnkubWV0YWRhdGEudHlwZSkifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxwbC5wcm90b3R5cGUsIl9pc1NlYXJjaFJlc3VsdHMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLGNvbXB1dGVkOiJfY29tcHV0ZUlzSW52YWxpZFNlYXJjaFJlc3VsdHMoY2F0ZWdvcnkubWV0YWRhdGEpIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scGwucHJvdG90eXBlLCJfaXNJbnZhbGlkU2VhcmNoUmVzdWx0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sY29tcHV0ZWQ6Il9jb21wdXRlSXNVbml2ZXJzYWxTZWFyY2hRdWVyeShjYXRlZ29yeS5tZXRhZGF0YSkifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxwbC5wcm90b3R5cGUsIl9pc1VuaXZlcnNhbFNlYXJjaFF1ZXJ5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfZ2V0Q2F0ZWdvcnlJdGVtS2V5Q2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0scGwucHJvdG90eXBlLCJnZXRDYXRlZ29yeUl0ZW1LZXkiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsb2JzZXJ2ZXI6Il9saW1pdENoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLHBsLnByb3RvdHlwZSwiX2xpbWl0Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLHBsLnByb3RvdHlwZSwiX2FjdGl2ZUluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLGNvbXB1dGVkOiJfY29tcHV0ZVBhZ2VDb3VudChjYXRlZ29yeS5pdGVtcy4qLCBfbGltaXQpIn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxwbC5wcm90b3R5cGUsIl9wYWdlQ291bnQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsY29tcHV0ZWQ6Il9jb21wdXRlSW5wdXRXaWR0aChfcGFnZUNvdW50KSIsb2JzZXJ2ZXI6Il91cGRhdGVJbnB1dFdpZHRoIn0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxwbC5wcm90b3R5cGUsIl9pbnB1dFdpZHRoIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLGNvbXB1dGVkOiJfY29tcHV0ZVBhZ2VJbnB1dFZhbHVlKF9wYWdlSW5wdXRGb2N1c2VkLCBfcGFnZUlucHV0UmF3VmFsdWUsIF9jdXJyZW50UGFnZSkiLG9ic2VydmVyOiJfdXBkYXRlUGFnZUlucHV0VmFsdWUifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHBsLnByb3RvdHlwZSwiX3BhZ2VJbnB1dFZhbHVlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHBsLnByb3RvdHlwZSwiX3BhZ2VJbnB1dFJhd1ZhbHVlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scGwucHJvdG90eXBlLCJfcGFnZUlucHV0Rm9jdXNlZCIsdm9pZCAwKSx0KFtzKCJfY291bnQiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0scGwucHJvdG90eXBlLCJfaGFzTXVsdGlwbGUiLG51bGwpLHQoW2EoIm9wZW5lZCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtCb29sZWFuXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHBsLnByb3RvdHlwZSwiX2NoYW5nZUNvbnRlbnRBY3RpdmUiLG51bGwpLHQoW3MoIm9wZW5lZCIsIl9wYW5lUmVuZGVyZWQiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0scGwucHJvdG90eXBlLCJfaXRlbXNSZW5kZXJlZCIsbnVsbCksdChbYSgiX2l0ZW1zUmVuZGVyZWQiLCJjYXRlZ29yeS5pdGVtcy4qIiwiX2xpbWl0IiwiX2FjdGl2ZUluZGV4IiwiX3BhZ2VDb3VudCIsImRpc2FibGVQYWdpbmF0aW9uIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxwbC5wcm90b3R5cGUsIl91cGRhdGVSZW5kZXJlZEl0ZW1zIixudWxsKSx0KFtzKCJfbGltaXQiLCJfYWN0aXZlSW5kZXgiKSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxwbC5wcm90b3R5cGUsIl9jdXJyZW50UGFnZSIsbnVsbCksdChbcygiX3BhZ2VDb3VudCIsImRpc2FibGVQYWdpbmF0aW9uIiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHBsLnByb3RvdHlwZSwiX211bHRpcGxlUGFnZXNFeGlzdCIsbnVsbCksdChbcygiX2N1cnJlbnRQYWdlIiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHBsLnByb3RvdHlwZSwiX2hhc1ByZXZpb3VzUGFnZSIsbnVsbCksdChbcygiX2N1cnJlbnRQYWdlIiwiX3BhZ2VDb3VudCIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxwbC5wcm90b3R5cGUsIl9oYXNOZXh0UGFnZSIsbnVsbCksdChbYSgiY2F0ZWdvcnkuaXRlbXMuKiIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0scGwucHJvdG90eXBlLCJfY2xhbXBBY3RpdmVJbmRleCIsbnVsbCkscGw9dChbaSgidGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXciKV0scGwpO2NsYXNzIGZse2NvbnN0cnVjdG9yKHQpe3RoaXMubGlzdGVuZXI9dH19Y2xhc3MgbWx7Y29uc3RydWN0b3IoKXt0aGlzLnJlcXVlc3RNYW5hZ2VyPW5ldyBkcigxKSx0aGlzLl9saXN0ZW5lcnM9bmV3IFNldCx0aGlzLmluaXRpYWxpemVkPSExfXJlZnJlc2goKXtyZXR1cm4gdGhpcy5sb2FkKCkudGhlbigoKCk9Pnt0aGlzLmluaXRpYWxpemVkPSEwfSkpfWFkZExpc3RlbmVyKHQpe2NvbnN0IGU9bmV3IGZsKHQpO3JldHVybiB0aGlzLl9saXN0ZW5lcnMuYWRkKGUpLGV9cmVtb3ZlTGlzdGVuZXJCeUtleSh0KXt0aGlzLl9saXN0ZW5lcnMuZGVsZXRlKHQpfWVtaXRDaGFuZ2UoKXt0aGlzLl9saXN0ZW5lcnMuZm9yRWFjaCgodD0+e3RyeXt0Lmxpc3RlbmVyKCl9Y2F0Y2godCl7fX0pKX19Y2xhc3MgZ2wgZXh0ZW5kcyBtbHtsb2FkKCl7Y29uc3QgdD1fcigpLmVudmlyb25tZW50KCk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57Y29uc3QgZT17ZGF0YUxvY2F0aW9uOnQuZGF0YV9sb2NhdGlvbix3aW5kb3dUaXRsZTp0LndpbmRvd190aXRsZX07dm9pZCAwIT09dC5leHBlcmltZW50X25hbWUmJihlLmV4cGVyaW1lbnROYW1lPXQuZXhwZXJpbWVudF9uYW1lKSx2b2lkIDAhPT10LmV4cGVyaW1lbnRfZGVzY3JpcHRpb24mJihlLmV4cGVyaW1lbnREZXNjcmlwdGlvbj10LmV4cGVyaW1lbnRfZGVzY3JpcHRpb24pLHZvaWQgMCE9PXQuY3JlYXRpb25fdGltZSYmKGUuY3JlYXRpb25UaW1lPXQuY3JlYXRpb25fdGltZSksU2UuZXhwb3J0cy5pc0VxdWFsKHRoaXMuZW52aXJvbm1lbnQsZSl8fCh0aGlzLmVudmlyb25tZW50PWUsdGhpcy5lbWl0Q2hhbmdlKCkpfSkpfWdldERhdGFMb2NhdGlvbigpe3JldHVybiB0aGlzLmVudmlyb25tZW50P3RoaXMuZW52aXJvbm1lbnQuZGF0YUxvY2F0aW9uOiIifWdldFdpbmRvd1RpdGxlKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ/dGhpcy5lbnZpcm9ubWVudC53aW5kb3dUaXRsZToiIn1nZXRFeHBlcmltZW50TmFtZSgpe3JldHVybiB0aGlzLmVudmlyb25tZW50P3RoaXMuZW52aXJvbm1lbnQuZXhwZXJpbWVudE5hbWU6IiJ9Z2V0RXhwZXJpbWVudERlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ/dGhpcy5lbnZpcm9ubWVudC5leHBlcmltZW50RGVzY3JpcHRpb246IiJ9Z2V0Q3JlYXRpb25UaW1lKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ/dGhpcy5lbnZpcm9ubWVudC5jcmVhdGlvblRpbWU6bnVsbH19Y29uc3QgX2w9bmV3IGdsO2NsYXNzIHlsIGV4dGVuZHMgbWx7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3J1bnM9W119bG9hZCgpe2NvbnN0IHQ9X3IoKS5ydW5zKCk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57U2UuZXhwb3J0cy5pc0VxdWFsKHRoaXMuX3J1bnMsdCl8fCh0aGlzLl9ydW5zPXQsdGhpcy5lbWl0Q2hhbmdlKCkpfSkpfWdldFJ1bnMoKXtyZXR1cm4gdGhpcy5fcnVucy5zbGljZSgpfX1jb25zdCB2bD1uZXcgeWw7ZnVuY3Rpb24gYmwodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24geGwodCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIGJsKHQoZSksbil9fSkodCkpLHtsZWZ0OmZ1bmN0aW9uKGUsbixpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj1lLmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTt0KGVbb10sbik8MD9pPW8rMTpyPW99cmV0dXJuIGl9LHJpZ2h0OmZ1bmN0aW9uKGUsbixpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj1lLmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTt0KGVbb10sbik+MD9yPW86aT1vKzF9cmV0dXJuIGl9fX12YXIgd2w9eGwoYmwpLFNsPXdsLnJpZ2h0LE1sPXdsLmxlZnQ7ZnVuY3Rpb24gRWwodCxlKXtyZXR1cm5bdCxlXX1mdW5jdGlvbiBUbCh0LGUsbil7dmFyIGkscixvLGEscz10Lmxlbmd0aCxsPWUubGVuZ3RoLGM9bmV3IEFycmF5KHMqbCk7Zm9yKG51bGw9PW4mJihuPUVsKSxpPW89MDtpPHM7KytpKWZvcihhPXRbaV0scj0wO3I8bDsrK3IsKytvKWNbb109bihhLGVbcl0pO3JldHVybiBjfWZ1bmN0aW9uIENsKHQpe3JldHVybiBudWxsPT09dD9OYU46K3R9ZnVuY3Rpb24gQWwodCxlKXt2YXIgbixpLHI9dC5sZW5ndGgsbz0wLGE9LTEscz0wLGw9MDtpZihudWxsPT1lKWZvcig7KythPHI7KWlzTmFOKG49Q2wodFthXSkpfHwobCs9KGk9bi1zKSoobi0ocys9aS8rK28pKSk7ZWxzZSBmb3IoOysrYTxyOylpc05hTihuPUNsKGUodFthXSxhLHQpKSl8fChsKz0oaT1uLXMpKihuLShzKz1pLysrbykpKTtpZihvPjEpcmV0dXJuIGwvKG8tMSl9ZnVuY3Rpb24ga2wodCxlKXt2YXIgbj1BbCh0LGUpO3JldHVybiBuP01hdGguc3FydChuKTpufWZ1bmN0aW9uIExsKHQsZSl7dmFyIG4saSxyLG89dC5sZW5ndGgsYT0tMTtpZihudWxsPT1lKXtmb3IoOysrYTxvOylpZihudWxsIT0obj10W2FdKSYmbj49bilmb3IoaT1yPW47KythPG87KW51bGwhPShuPXRbYV0pJiYoaT5uJiYoaT1uKSxyPG4mJihyPW4pKX1lbHNlIGZvcig7KythPG87KWlmKG51bGwhPShuPWUodFthXSxhLHQpKSYmbj49bilmb3IoaT1yPW47KythPG87KW51bGwhPShuPWUodFthXSxhLHQpKSYmKGk+biYmKGk9bikscjxuJiYocj1uKSk7cmV0dXJuW2kscl19dmFyIFBsPUFycmF5LnByb3RvdHlwZSxObD1QbC5zbGljZSxJbD1QbC5tYXA7ZnVuY3Rpb24gUmwodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIE9sKHQpe3JldHVybiB0fWZ1bmN0aW9uIHpsKHQsZSxuKXt0PSt0LGU9K2Usbj0ocj1hcmd1bWVudHMubGVuZ3RoKTwyPyhlPXQsdD0wLDEpOnI8Mz8xOituO2Zvcih2YXIgaT0tMSxyPTB8TWF0aC5tYXgoMCxNYXRoLmNlaWwoKGUtdCkvbikpLG89bmV3IEFycmF5KHIpOysraTxyOylvW2ldPXQraSpuO3JldHVybiBvfXZhciBEbD1NYXRoLnNxcnQoNTApLEJsPU1hdGguc3FydCgxMCksSGw9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIEZsKHQsZSxuKXt2YXIgaSxyLG8sYSxzPS0xO2lmKG49K24sKHQ9K3QpPT0oZT0rZSkmJm4+MClyZXR1cm5bdF07aWYoKGk9ZTx0KSYmKHI9dCx0PWUsZT1yKSwwPT09KGE9VmwodCxlLG4pKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxlPU1hdGguZmxvb3IoZS9hKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbChlLXQrMSkpOysrczxyOylvW3NdPSh0K3MpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksZT1NYXRoLmNlaWwoZSphKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbCh0LWUrMSkpOysrczxyOylvW3NdPSh0LXMpL2E7cmV0dXJuIGkmJm8ucmV2ZXJzZSgpLG99ZnVuY3Rpb24gVmwodCxlLG4pe3ZhciBpPShlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCksbz1pL01hdGgucG93KDEwLHIpO3JldHVybiByPj0wPyhvPj1EbD8xMDpvPj1CbD81Om8+PUhsPzI6MSkqTWF0aC5wb3coMTAscik6LU1hdGgucG93KDEwLC1yKS8obz49RGw/MTA6bz49Qmw/NTpvPj1IbD8yOjEpfWZ1bmN0aW9uIFVsKHQsZSxuKXt2YXIgaT1NYXRoLmFicyhlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCkpLG89aS9yO3JldHVybiBvPj1EbD9yKj0xMDpvPj1CbD9yKj01Om8+PUhsJiYocio9MiksZTx0Py1yOnJ9ZnVuY3Rpb24gamwodCl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmxvZyh0Lmxlbmd0aCkvTWF0aC5MTjIpKzF9ZnVuY3Rpb24gR2wodCxlLG4pe2lmKG51bGw9PW4mJihuPUNsKSxpPXQubGVuZ3RoKXtpZigoZT0rZSk8PTB8fGk8MilyZXR1cm4rbih0WzBdLDAsdCk7aWYoZT49MSlyZXR1cm4rbih0W2ktMV0saS0xLHQpO3ZhciBpLHI9KGktMSkqZSxvPU1hdGguZmxvb3IociksYT0rbih0W29dLG8sdCk7cmV0dXJuIGErKCtuKHRbbysxXSxvKzEsdCktYSkqKHItbyl9fWZ1bmN0aW9uIFdsKHQsZSl7dmFyIG4saSxyPXQubGVuZ3RoLG89LTE7aWYobnVsbD09ZSl7Zm9yKDsrK288cjspaWYobnVsbCE9KG49dFtvXSkmJm4+PW4pZm9yKGk9bjsrK288cjspbnVsbCE9KG49dFtvXSkmJm4+aSYmKGk9bil9ZWxzZSBmb3IoOysrbzxyOylpZihudWxsIT0obj1lKHRbb10sbyx0KSkmJm4+PW4pZm9yKGk9bjsrK288cjspbnVsbCE9KG49ZSh0W29dLG8sdCkpJiZuPmkmJihpPW4pO3JldHVybiBpfWZ1bmN0aW9uIHFsKHQpe2Zvcih2YXIgZSxuLGkscj10Lmxlbmd0aCxvPS0xLGE9MDsrK288cjspYSs9dFtvXS5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGEpOy0tcj49MDspZm9yKGU9KGk9dFtyXSkubGVuZ3RoOy0tZT49MDspblstLWFdPWlbZV07cmV0dXJuIG59ZnVuY3Rpb24gWWwodCxlKXt2YXIgbixpLHI9dC5sZW5ndGgsbz0tMTtpZihudWxsPT1lKXtmb3IoOysrbzxyOylpZihudWxsIT0obj10W29dKSYmbj49bilmb3IoaT1uOysrbzxyOyludWxsIT0obj10W29dKSYmaT5uJiYoaT1uKX1lbHNlIGZvcig7KytvPHI7KWlmKG51bGwhPShuPWUodFtvXSxvLHQpKSYmbj49bilmb3IoaT1uOysrbzxyOyludWxsIT0obj1lKHRbb10sbyx0KSkmJmk+biYmKGk9bik7cmV0dXJuIGl9ZnVuY3Rpb24gWGwodCl7aWYoIShyPXQubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIGU9LTEsbj1ZbCh0LCRsKSxpPW5ldyBBcnJheShuKTsrK2U8bjspZm9yKHZhciByLG89LTEsYT1pW2VdPW5ldyBBcnJheShyKTsrK288cjspYVtvXT10W29dW2VdO3JldHVybiBpfWZ1bmN0aW9uICRsKHQpe3JldHVybiB0Lmxlbmd0aH12YXIgS2w9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIFpsKHQpe3JldHVybiB0fXZhciBKbD0xZS02O2Z1bmN0aW9uIFFsKHQpe3JldHVybiJ0cmFuc2xhdGUoIisodCsuNSkrIiwwKSJ9ZnVuY3Rpb24gdGModCl7cmV0dXJuInRyYW5zbGF0ZSgwLCIrKHQrLjUpKyIpIn1mdW5jdGlvbiBlYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuK3QoZSl9fWZ1bmN0aW9uIG5jKHQpe3ZhciBlPU1hdGgubWF4KDAsdC5iYW5kd2lkdGgoKS0xKS8yO3JldHVybiB0LnJvdW5kKCkmJihlPU1hdGgucm91bmQoZSkpLGZ1bmN0aW9uKG4pe3JldHVybit0KG4pK2V9fWZ1bmN0aW9uIGljKCl7cmV0dXJuIXRoaXMuX19heGlzfWZ1bmN0aW9uIHJjKHQsZSl7dmFyIG49W10saT1udWxsLHI9bnVsbCxvPTYsYT02LHM9MyxsPTE9PT10fHw0PT09dD8tMToxLGM9ND09PXR8fDI9PT10PyJ4IjoieSIsdT0xPT09dHx8Mz09PXQ/UWw6dGM7ZnVuY3Rpb24gaChoKXt2YXIgZD1udWxsPT1pP2UudGlja3M/ZS50aWNrcy5hcHBseShlLG4pOmUuZG9tYWluKCk6aSxwPW51bGw9PXI/ZS50aWNrRm9ybWF0P2UudGlja0Zvcm1hdC5hcHBseShlLG4pOlpsOnIsZj1NYXRoLm1heChvLDApK3MsbT1lLnJhbmdlKCksZz0rbVswXSsuNSxfPSttW20ubGVuZ3RoLTFdKy41LHk9KGUuYmFuZHdpZHRoP25jOmVjKShlLmNvcHkoKSksdj1oLnNlbGVjdGlvbj9oLnNlbGVjdGlvbigpOmgsYj12LnNlbGVjdEFsbCgiLmRvbWFpbiIpLmRhdGEoW251bGxdKSx4PXYuc2VsZWN0QWxsKCIudGljayIpLmRhdGEoZCxlKS5vcmRlcigpLHc9eC5leGl0KCksUz14LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJ0aWNrIiksTT14LnNlbGVjdCgibGluZSIpLEU9eC5zZWxlY3QoInRleHQiKTtiPWIubWVyZ2UoYi5lbnRlcigpLmluc2VydCgicGF0aCIsIi50aWNrIikuYXR0cigiY2xhc3MiLCJkb21haW4iKS5hdHRyKCJzdHJva2UiLCJjdXJyZW50Q29sb3IiKSkseD14Lm1lcmdlKFMpLE09TS5tZXJnZShTLmFwcGVuZCgibGluZSIpLmF0dHIoInN0cm9rZSIsImN1cnJlbnRDb2xvciIpLmF0dHIoYysiMiIsbCpvKSksRT1FLm1lcmdlKFMuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZmlsbCIsImN1cnJlbnRDb2xvciIpLmF0dHIoYyxsKmYpLmF0dHIoImR5IiwxPT09dD8iMGVtIjozPT09dD8iMC43MWVtIjoiMC4zMmVtIikpLGghPT12JiYoYj1iLnRyYW5zaXRpb24oaCkseD14LnRyYW5zaXRpb24oaCksTT1NLnRyYW5zaXRpb24oaCksRT1FLnRyYW5zaXRpb24oaCksdz13LnRyYW5zaXRpb24oaCkuYXR0cigib3BhY2l0eSIsSmwpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PXkodCkpP3UodCk6dGhpcy5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpfSkpLFMuYXR0cigib3BhY2l0eSIsSmwpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGFyZW50Tm9kZS5fX2F4aXM7cmV0dXJuIHUoZSYmaXNGaW5pdGUoZT1lKHQpKT9lOnkodCkpfSkpKSx3LnJlbW92ZSgpLGIuYXR0cigiZCIsND09PXR8fDI9PXQ/YT8iTSIrbCphKyIsIitnKyJIMC41ViIrXysiSCIrbCphOiJNMC41LCIrZysiViIrXzphPyJNIitnKyIsIitsKmErIlYwLjVIIitfKyJWIitsKmE6Ik0iK2crIiwwLjVIIitfKSx4LmF0dHIoIm9wYWNpdHkiLDEpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiB1KHkodCkpfSkpLE0uYXR0cihjKyIyIixsKm8pLEUuYXR0cihjLGwqZikudGV4dChwKSx2LmZpbHRlcihpYykuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJmb250LXNpemUiLDEwKS5hdHRyKCJmb250LWZhbWlseSIsInNhbnMtc2VyaWYiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsMj09PXQ/InN0YXJ0Ijo0PT09dD8iZW5kIjoibWlkZGxlIiksdi5lYWNoKChmdW5jdGlvbigpe3RoaXMuX19heGlzPXl9KSl9cmV0dXJuIGguc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxoKTplfSxoLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIG49S2wuY2FsbChhcmd1bWVudHMpLGh9LGgudGlja0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P1tdOktsLmNhbGwodCksaCk6bi5zbGljZSgpfSxoLnRpY2tWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOktsLmNhbGwodCksaCk6aSYmaS5zbGljZSgpfSxoLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxoKTpyfSxoLnRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPWE9K3QsaCk6b30saC50aWNrU2l6ZUlubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSt0LGgpOm99LGgudGlja1NpemVPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxoKTphfSxoLnRpY2tQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LGgpOnN9LGh9ZnVuY3Rpb24gb2ModCl7cmV0dXJuIHJjKDMsdCl9ZnVuY3Rpb24gYWModCl7cmV0dXJuIHJjKDQsdCl9dmFyIHNjPXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIGxjKCl7Zm9yKHZhciB0LGU9MCxuPWFyZ3VtZW50cy5sZW5ndGgsaT17fTtlPG47KytlKXtpZighKHQ9YXJndW1lbnRzW2VdKyIiKXx8dCBpbiBpfHwvW1xzLl0vLnRlc3QodCkpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrdCk7aVt0XT1bXX1yZXR1cm4gbmV3IGNjKGkpfWZ1bmN0aW9uIGNjKHQpe3RoaXMuXz10fWZ1bmN0aW9uIHVjKHQsZSl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcCgoZnVuY3Rpb24odCl7dmFyIG49IiIsaT10LmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj10LnNsaWNlKGkrMSksdD10LnNsaWNlKDAsaSkpLHQmJiFlLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO3JldHVybnt0eXBlOnQsbmFtZTpufX0pKX1mdW5jdGlvbiBoYyh0LGUpe2Zvcih2YXIgbixpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKChuPXRbaV0pLm5hbWU9PT1lKXJldHVybiBuLnZhbHVlfWZ1bmN0aW9uIGRjKHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT1zYyx0PXQuc2xpY2UoMCxpKS5jb25jYXQodC5zbGljZShpKzEpKTticmVha31yZXR1cm4gbnVsbCE9biYmdC5wdXNoKHtuYW1lOmUsdmFsdWU6bn0pLHR9Y2MucHJvdG90eXBlPWxjLnByb3RvdHlwZT17Y29uc3RydWN0b3I6Y2Msb246ZnVuY3Rpb24odCxlKXt2YXIgbixpPXRoaXMuXyxyPXVjKHQrIiIsaSksbz0tMSxhPXIubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK2UpO2Zvcig7KytvPGE7KWlmKG49KHQ9cltvXSkudHlwZSlpW25dPWRjKGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09ZGMoaVtuXSx0Lm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9Zm9yKDsrK288YTspaWYoKG49KHQ9cltvXSkudHlwZSkmJihuPWhjKGlbbl0sdC5uYW1lKSkpcmV0dXJuIG59LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxlPXRoaXMuXztmb3IodmFyIG4gaW4gZSl0W25dPWVbbl0uc2xpY2UoKTtyZXR1cm4gbmV3IGNjKHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgcGM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLGZjPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpwYyx4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9O2Z1bmN0aW9uIG1jKHQpe3ZhciBlPXQrPSIiLG49ZS5pbmRleE9mKCI6Iik7cmV0dXJuIG4+PTAmJiJ4bWxucyIhPT0oZT10LnNsaWNlKDAsbikpJiYodD10LnNsaWNlKG4rMSkpLGZjLmhhc093blByb3BlcnR5KGUpP3tzcGFjZTpmY1tlXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIGdjKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudCxuPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBuPT09cGMmJmUuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PXBjP2UuY3JlYXRlRWxlbWVudCh0KTplLmNyZWF0ZUVsZW1lbnROUyhuLHQpfX1mdW5jdGlvbiBfYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiB5Yyh0KXt2YXIgZT1tYyh0KTtyZXR1cm4oZS5sb2NhbD9fYzpnYykoZSl9ZnVuY3Rpb24gdmMoKXt9ZnVuY3Rpb24gYmModCl7cmV0dXJuIG51bGw9PXQ/dmM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiB4Yygpe3JldHVybltdfWZ1bmN0aW9uIHdjKHQpe3JldHVybiBudWxsPT10P3hjOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24gU2ModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyh0KX19ZnVuY3Rpb24gTWModCl7cmV0dXJuIG5ldyBBcnJheSh0Lmxlbmd0aCl9ZnVuY3Rpb24gRWModCxlKXt0aGlzLm93bmVyRG9jdW1lbnQ9dC5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPXQubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9fZGF0YV9fPWV9ZnVuY3Rpb24gVGModCxlLG4saSxyLG8pe2Zvcih2YXIgYSxzPTAsbD1lLmxlbmd0aCxjPW8ubGVuZ3RoO3M8YzsrK3MpKGE9ZVtzXSk/KGEuX19kYXRhX189b1tzXSxpW3NdPWEpOm5bc109bmV3IEVjKHQsb1tzXSk7Zm9yKDtzPGw7KytzKShhPWVbc10pJiYocltzXT1hKX1mdW5jdGlvbiBDYyh0LGUsbixpLHIsbyxhKXt2YXIgcyxsLGMsdT17fSxoPWUubGVuZ3RoLGQ9by5sZW5ndGgscD1uZXcgQXJyYXkoaCk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiYocFtzXT1jPSIkIithLmNhbGwobCxsLl9fZGF0YV9fLHMsZSksYyBpbiB1P3Jbc109bDp1W2NdPWwpO2ZvcihzPTA7czxkOysrcykobD11W2M9IiQiK2EuY2FsbCh0LG9bc10scyxvKV0pPyhpW3NdPWwsbC5fX2RhdGFfXz1vW3NdLHVbY109bnVsbCk6bltzXT1uZXcgRWModCxvW3NdKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJnVbcFtzXV09PT1sJiYocltzXT1sKX1mdW5jdGlvbiBBYyh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBrYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gTGModCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBQYyh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKHQsZSl9fWZ1bmN0aW9uIE5jKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZSl9fWZ1bmN0aW9uIEljKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KTp0aGlzLnNldEF0dHJpYnV0ZSh0LG4pfX1mdW5jdGlvbiBSYyh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLG4pfX1mdW5jdGlvbiBPYyh0KXtyZXR1cm4gdC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gemModCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19ZnVuY3Rpb24gRGModCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLG4pfX1mdW5jdGlvbiBCYyh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09aT90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxpLG4pfX1mdW5jdGlvbiBIYyh0LGUpe3JldHVybiB0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoZSl8fE9jKHQpLmdldENvbXB1dGVkU3R5bGUodCxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKGUpfWZ1bmN0aW9uIEZjKHQpe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW3RdfX1mdW5jdGlvbiBWYyh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbdF09ZX19ZnVuY3Rpb24gVWModCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09bn19ZnVuY3Rpb24gamModCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIEdjKHQpe3JldHVybiB0LmNsYXNzTGlzdHx8bmV3IFdjKHQpfWZ1bmN0aW9uIFdjKHQpe3RoaXMuX25vZGU9dCx0aGlzLl9uYW1lcz1qYyh0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfWZ1bmN0aW9uIHFjKHQsZSl7Zm9yKHZhciBuPUdjKHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5hZGQoZVtpXSl9ZnVuY3Rpb24gWWModCxlKXtmb3IodmFyIG49R2ModCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLnJlbW92ZShlW2ldKX1mdW5jdGlvbiBYYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtxYyh0aGlzLHQpfX1mdW5jdGlvbiAkYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtZYyh0aGlzLHQpfX1mdW5jdGlvbiBLYyh0LGUpe3JldHVybiBmdW5jdGlvbigpeyhlLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9xYzpZYykodGhpcyx0KX19ZnVuY3Rpb24gWmMoKXt0aGlzLnRleHRDb250ZW50PSIifWZ1bmN0aW9uIEpjKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24gUWModCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIHR1KCl7dGhpcy5pbm5lckhUTUw9IiJ9ZnVuY3Rpb24gZXUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9dH19ZnVuY3Rpb24gbnUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBpdSgpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBydSgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIG91KCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gYXUoKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiBzdSgpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCExKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9ZnVuY3Rpb24gbHUoKXt2YXIgdD10aGlzLmNsb25lTm9kZSghMCksZT10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGU/ZS5pbnNlcnRCZWZvcmUodCx0aGlzLm5leHRTaWJsaW5nKTp0fUVjLnByb3RvdHlwZT17Y29uc3RydWN0b3I6RWMsYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCxlKX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3IodCl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHQpfX0sV2MucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtlPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKGUsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgY3U9e30sdXU9bnVsbDtmdW5jdGlvbiBodSh0LGUsbil7cmV0dXJuIHQ9ZHUodCxlLG4pLGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVsYXRlZFRhcmdldDtuJiYobj09PXRoaXN8fDgmbi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBkdSh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3ZhciByPXV1O3V1PWk7dHJ5e3QuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxuKX1maW5hbGx5e3V1PXJ9fX1mdW5jdGlvbiBwdSh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgZT0iIixuPXQuaW5kZXhPZigiLiIpO3JldHVybiBuPj0wJiYoZT10LnNsaWNlKG4rMSksdD10LnNsaWNlKDAsbikpLHt0eXBlOnQsbmFtZTplfX0pKX1mdW5jdGlvbiBmdSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fb247aWYoZSl7Zm9yKHZhciBuLGk9MCxyPS0xLG89ZS5sZW5ndGg7aTxvOysraSluPWVbaV0sdC50eXBlJiZuLnR5cGUhPT10LnR5cGV8fG4ubmFtZSE9PXQubmFtZT9lWysrcl09bjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobi50eXBlLG4ubGlzdGVuZXIsbi5jYXB0dXJlKTsrK3I/ZS5sZW5ndGg9cjpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gbXUodCxlLG4pe3ZhciBpPWN1Lmhhc093blByb3BlcnR5KHQudHlwZSk/aHU6ZHU7cmV0dXJuIGZ1bmN0aW9uKHIsbyxhKXt2YXIgcyxsPXRoaXMuX19vbixjPWkoZSxvLGEpO2lmKGwpZm9yKHZhciB1PTAsaD1sLmxlbmd0aDt1PGg7Kyt1KWlmKChzPWxbdV0pLnR5cGU9PT10LnR5cGUmJnMubmFtZT09PXQubmFtZSlyZXR1cm4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyLHMuY2FwdHVyZSksdGhpcy5hZGRFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyPWMscy5jYXB0dXJlPW4pLHZvaWQocy52YWx1ZT1lKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIodC50eXBlLGMsbikscz17dHlwZTp0LnR5cGUsbmFtZTp0Lm5hbWUsdmFsdWU6ZSxsaXN0ZW5lcjpjLGNhcHR1cmU6bn0sbD9sLnB1c2gocyk6dGhpcy5fX29uPVtzXX19ZnVuY3Rpb24gZ3UodCxlLG4saSl7dmFyIHI9dXU7dC5zb3VyY2VFdmVudD11dSx1dT10O3RyeXtyZXR1cm4gZS5hcHBseShuLGkpfWZpbmFsbHl7dXU9cn19ZnVuY3Rpb24gX3UodCxlLG4pe3ZhciBpPU9jKHQpLHI9aS5DdXN0b21FdmVudDsiZnVuY3Rpb24iPT10eXBlb2Ygcj9yPW5ldyByKGUsbik6KHI9aS5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxuPyhyLmluaXRFdmVudChlLG4uYnViYmxlcyxuLmNhbmNlbGFibGUpLHIuZGV0YWlsPW4uZGV0YWlsKTpyLmluaXRFdmVudChlLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KHIpfWZ1bmN0aW9uIHl1KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIF91KHRoaXMsdCxlKX19ZnVuY3Rpb24gdnUodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gX3UodGhpcyx0LGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmKCJvbm1vdXNlZW50ZXIiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHwoY3U9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpO3ZhciBidT1bbnVsbF07ZnVuY3Rpb24geHUodCxlKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWV9ZnVuY3Rpb24gd3UoKXtyZXR1cm4gbmV3IHh1KFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sYnUpfWZ1bmN0aW9uIFN1KHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9uZXcgeHUoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB4dShbW3RdXSxidSl9eHUucHJvdG90eXBlPXd1LnByb3RvdHlwZT17Y29uc3RydWN0b3I6eHUsc2VsZWN0OmZ1bmN0aW9uIE11KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1iYyh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhLHM9ZVtyXSxsPXMubGVuZ3RoLGM9aVtyXT1uZXcgQXJyYXkobCksdT0wO3U8bDsrK3UpKG89c1t1XSkmJihhPXQuY2FsbChvLG8uX19kYXRhX18sdSxzKSkmJigiX19kYXRhX18iaW4gbyYmKGEuX19kYXRhX189by5fX2RhdGFfXyksY1t1XT1hKTtyZXR1cm4gbmV3IHh1KGksdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBFdSh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9d2ModCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPVtdLHI9W10sbz0wO288bjsrK28pZm9yKHZhciBhLHM9ZVtvXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKShhPXNbY10pJiYoaS5wdXNoKHQuY2FsbChhLGEuX19kYXRhX18sYyxzKSksci5wdXNoKGEpKTtyZXR1cm4gbmV3IHh1KGkscil9LGZpbHRlcjpmdW5jdGlvbiBUdSh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9U2ModCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKSxyPTA7cjxuOysrcilmb3IodmFyIG8sYT1lW3JdLHM9YS5sZW5ndGgsbD1pW3JdPVtdLGM9MDtjPHM7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmwucHVzaChvKTtyZXR1cm4gbmV3IHh1KGksdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gQ3UodCxlKXtpZighdClyZXR1cm4gZj1uZXcgQXJyYXkodGhpcy5zaXplKCkpLHU9LTEsdGhpcy5lYWNoKChmdW5jdGlvbih0KXtmWysrdV09dH0pKSxmO3ZhciBuPWU/Q2M6VGMsaT10aGlzLl9wYXJlbnRzLHI9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciBhPXIubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9bmV3IEFycmF5KGEpLGM9bmV3IEFycmF5KGEpLHU9MDt1PGE7Kyt1KXt2YXIgaD1pW3VdLGQ9clt1XSxwPWQubGVuZ3RoLGY9dC5jYWxsKGgsaCYmaC5fX2RhdGFfXyx1LGkpLG09Zi5sZW5ndGgsZz1sW3VdPW5ldyBBcnJheShtKSxfPXNbdV09bmV3IEFycmF5KG0pO24oaCxkLGcsXyxjW3VdPW5ldyBBcnJheShwKSxmLGUpO2Zvcih2YXIgeSx2LGI9MCx4PTA7YjxtOysrYilpZih5PWdbYl0pe2ZvcihiPj14JiYoeD1iKzEpOyEodj1fW3hdKSYmKyt4PG07KTt5Ll9uZXh0PXZ8fG51bGx9fXJldHVybihzPW5ldyB4dShzLGkpKS5fZW50ZXI9bCxzLl9leGl0PWMsc30sZW50ZXI6ZnVuY3Rpb24gQXUoKXtyZXR1cm4gbmV3IHh1KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKE1jKSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbiBrdSgpe3JldHVybiBuZXcgeHUodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChNYyksdGhpcy5fcGFyZW50cyl9LGpvaW46ZnVuY3Rpb24gTHUodCxlLG4pe3ZhciBpPXRoaXMuZW50ZXIoKSxyPXRoaXMsbz10aGlzLmV4aXQoKTtyZXR1cm4gaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90KGkpOmkuYXBwZW5kKHQrIiIpLG51bGwhPWUmJihyPWUocikpLG51bGw9PW4/by5yZW1vdmUoKTpuKG8pLGkmJnI/aS5tZXJnZShyKS5vcmRlcigpOnJ9LG1lcmdlOmZ1bmN0aW9uIFB1KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IHh1KG8sdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uIE51KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPS0xLG49dC5sZW5ndGg7KytlPG47KWZvcih2YXIgaSxyPXRbZV0sbz1yLmxlbmd0aC0xLGE9cltvXTstLW8+PTA7KShpPXJbb10pJiYoYSYmNF5pLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpJiZhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGksYSksYT1pKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbiBJdSh0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIGUmJm4/dChlLl9fZGF0YV9fLG4uX19kYXRhX18pOiFlLSFufXR8fCh0PUFjKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGk9bi5sZW5ndGgscj1uZXcgQXJyYXkoaSksbz0wO288aTsrK28pe2Zvcih2YXIgYSxzPW5bb10sbD1zLmxlbmd0aCxjPXJbb109bmV3IEFycmF5KGwpLHU9MDt1PGw7Kyt1KShhPXNbdV0pJiYoY1t1XT1hKTtjLnNvcnQoZSl9cmV0dXJuIG5ldyB4dShyLHRoaXMuX3BhcmVudHMpLm9yZGVyKCl9LGNhbGw6ZnVuY3Rpb24gUnUoKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIE91KCl7dmFyIHQ9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxlPS0xO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7dFsrK2VdPXRoaXN9KSksdH0sbm9kZTpmdW5jdGlvbiB6dSgpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT0wLG49dC5sZW5ndGg7ZTxuOysrZSlmb3IodmFyIGk9dFtlXSxyPTAsbz1pLmxlbmd0aDtyPG87KytyKXt2YXIgYT1pW3JdO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24gRHUoKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9LGVtcHR5OmZ1bmN0aW9uIEJ1KCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uIEh1KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj0wLGk9ZS5sZW5ndGg7bjxpOysrbilmb3IodmFyIHIsbz1lW25dLGE9MCxzPW8ubGVuZ3RoO2E8czsrK2EpKHI9b1thXSkmJnQuY2FsbChyLHIuX19kYXRhX18sYSxvKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbiBGdSh0LGUpe3ZhciBuPW1jKHQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIGk9dGhpcy5ub2RlKCk7cmV0dXJuIG4ubG9jYWw/aS5nZXRBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwpOmkuZ2V0QXR0cmlidXRlKG4pfXJldHVybiB0aGlzLmVhY2goKG51bGw9PWU/bi5sb2NhbD9MYzprYzoiZnVuY3Rpb24iPT10eXBlb2YgZT9uLmxvY2FsP1JjOkljOm4ubG9jYWw/TmM6UGMpKG4sZSkpfSxzdHlsZTpmdW5jdGlvbiBWdSh0LGUsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/emM6ImZ1bmN0aW9uIj09dHlwZW9mIGU/QmM6RGMpKHQsZSxudWxsPT1uPyIiOm4pKTpIYyh0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24gVXUodCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9GYzoiZnVuY3Rpb24iPT10eXBlb2YgZT9VYzpWYykodCxlKSk6dGhpcy5ub2RlKClbdF19LGNsYXNzZWQ6ZnVuY3Rpb24ganUodCxlKXt2YXIgbj1qYyh0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaT1HYyh0aGlzLm5vZGUoKSkscj0tMSxvPW4ubGVuZ3RoOysrcjxvOylpZighaS5jb250YWlucyhuW3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgZT9LYzplP1hjOiRjKShuLGUpKX0sdGV4dDpmdW5jdGlvbiBHdSh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9aYzooImZ1bmN0aW9uIj09dHlwZW9mIHQ/UWM6SmMpKHQpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0saHRtbDpmdW5jdGlvbiBXdSh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD90dTooImZ1bmN0aW9uIj09dHlwZW9mIHQ/bnU6ZXUpKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIHF1KCl7cmV0dXJuIHRoaXMuZWFjaChpdSl9LGxvd2VyOmZ1bmN0aW9uIFl1KCl7cmV0dXJuIHRoaXMuZWFjaChydSl9LGFwcGVuZDpmdW5jdGlvbiBYdSh0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnljKHQpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KSl9LGluc2VydDpmdW5jdGlvbiAkdSh0LGUpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eWModCksaT1udWxsPT1lP291OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6YmMoZSk7cmV0dXJuIHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KSl9LHJlbW92ZTpmdW5jdGlvbiBLdSgpe3JldHVybiB0aGlzLmVhY2goYXUpfSxjbG9uZTpmdW5jdGlvbiBadSh0KXtyZXR1cm4gdGhpcy5zZWxlY3QodD9sdTpzdSl9LGRhdHVtOmZ1bmN0aW9uIEp1KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIix0KTp0aGlzLm5vZGUoKS5fX2RhdGFfX30sb246ZnVuY3Rpb24gUXUodCxlLG4pe3ZhciBpLHIsbz1wdSh0KyIiKSxhPW8ubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHM9ZT9tdTpmdSxudWxsPT1uJiYobj0hMSksaT0wO2k8YTsrK2kpdGhpcy5lYWNoKHMob1tpXSxlLG4pKTtyZXR1cm4gdGhpc312YXIgcz10aGlzLm5vZGUoKS5fX29uO2lmKHMpZm9yKHZhciBsLGM9MCx1PXMubGVuZ3RoO2M8dTsrK2MpZm9yKGk9MCxsPXNbY107aTxhOysraSlpZigocj1vW2ldKS50eXBlPT09bC50eXBlJiZyLm5hbWU9PT1sLm5hbWUpcmV0dXJuIGwudmFsdWV9LGRpc3BhdGNoOmZ1bmN0aW9uIHRoKHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/dnU6eXUpKHQsZSkpfX07dmFyIGVoPTA7ZnVuY3Rpb24gbmgoKXtyZXR1cm4gbmV3IGlofWZ1bmN0aW9uIGloKCl7dGhpcy5fPSJAIisoKytlaCkudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIHJoKCl7Zm9yKHZhciB0LGU9dXU7dD1lLnNvdXJjZUV2ZW50OyllPXQ7cmV0dXJuIGV9ZnVuY3Rpb24gb2godCxlKXt2YXIgbj10Lm93bmVyU1ZHRWxlbWVudHx8dDtpZihuLmNyZWF0ZVNWR1BvaW50KXt2YXIgaT1uLmNyZWF0ZVNWR1BvaW50KCk7cmV0dXJuIGkueD1lLmNsaWVudFgsaS55PWUuY2xpZW50WSxbKGk9aS5tYXRyaXhUcmFuc2Zvcm0odC5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpKS54LGkueV19dmFyIHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm5bZS5jbGllbnRYLXIubGVmdC10LmNsaWVudExlZnQsZS5jbGllbnRZLXIudG9wLXQuY2xpZW50VG9wXX1mdW5jdGlvbiBhaCh0KXt2YXIgZT1yaCgpO3JldHVybiBlLmNoYW5nZWRUb3VjaGVzJiYoZT1lLmNoYW5nZWRUb3VjaGVzWzBdKSxvaCh0LGUpfWZ1bmN0aW9uIHNoKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9uZXcgeHUoW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCldLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgeHUoW251bGw9PXQ/W106dF0sYnUpfWZ1bmN0aW9uIGxoKHQsZSxuKXthcmd1bWVudHMubGVuZ3RoPDMmJihuPWUsZT1yaCgpLmNoYW5nZWRUb3VjaGVzKTtmb3IodmFyIGkscj0wLG89ZT9lLmxlbmd0aDowO3I8bzsrK3IpaWYoKGk9ZVtyXSkuaWRlbnRpZmllcj09PW4pcmV0dXJuIG9oKHQsaSk7cmV0dXJuIG51bGx9ZnVuY3Rpb24gY2goKXt1dS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiB1aCgpe3V1LnByZXZlbnREZWZhdWx0KCksdXUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gaGgodCl7dmFyIGU9dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1TdSh0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLHVoLCEwKTsib25zZWxlY3RzdGFydCJpbiBlP24ub24oInNlbGVjdHN0YXJ0LmRyYWciLHVoLCEwKTooZS5fX25vc2VsZWN0PWUuc3R5bGUuTW96VXNlclNlbGVjdCxlLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiKX1mdW5jdGlvbiBkaCh0LGUpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGk9U3UodCkub24oImRyYWdzdGFydC5kcmFnIixudWxsKTtlJiYoaS5vbigiY2xpY2suZHJhZyIsdWgsITApLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aS5vbigiY2xpY2suZHJhZyIsbnVsbCl9KSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gbj9pLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKToobi5zdHlsZS5Nb3pVc2VyU2VsZWN0PW4uX19ub3NlbGVjdCxkZWxldGUgbi5fX25vc2VsZWN0KX1mdW5jdGlvbiBwaCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gZmgodCxlLG4saSxyLG8sYSxzLGwsYyl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9ZSx0aGlzLnN1YmplY3Q9bix0aGlzLmlkZW50aWZpZXI9aSx0aGlzLmFjdGl2ZT1yLHRoaXMueD1vLHRoaXMueT1hLHRoaXMuZHg9cyx0aGlzLmR5PWwsdGhpcy5fPWN9ZnVuY3Rpb24gbWgoKXtyZXR1cm4hdXUuY3RybEtleSYmIXV1LmJ1dHRvbn1mdW5jdGlvbiBnaCgpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9ZnVuY3Rpb24gX2godCl7cmV0dXJuIG51bGw9PXQ/e3g6dXUueCx5OnV1Lnl9OnR9ZnVuY3Rpb24geWgoKXtyZXR1cm4gbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzfHwib250b3VjaHN0YXJ0ImluIHRoaXN9ZnVuY3Rpb24gdmgoKXt2YXIgdCxlLG4saSxyPW1oLG89Z2gsYT1faCxzPXloLGw9e30sYz1sYygic3RhcnQiLCJkcmFnIiwiZW5kIiksdT0wLGg9MDtmdW5jdGlvbiBkKHQpe3Qub24oIm1vdXNlZG93bi5kcmFnIixwKS5maWx0ZXIocykub24oInRvdWNoc3RhcnQuZHJhZyIsZykub24oInRvdWNobW92ZS5kcmFnIixfKS5vbigidG91Y2hlbmQuZHJhZyB0b3VjaGNhbmNlbC5kcmFnIix5KS5zdHlsZSgidG91Y2gtYWN0aW9uIiwibm9uZSIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIil9ZnVuY3Rpb24gcCgpe2lmKCFpJiZyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGE9digibW91c2UiLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpLGFoLHRoaXMsYXJndW1lbnRzKTthJiYoU3UodXUudmlldykub24oIm1vdXNlbW92ZS5kcmFnIixmLCEwKS5vbigibW91c2V1cC5kcmFnIixtLCEwKSxoaCh1dS52aWV3KSxjaCgpLG49ITEsdD11dS5jbGllbnRYLGU9dXUuY2xpZW50WSxhKCJzdGFydCIpKX19ZnVuY3Rpb24gZigpe2lmKHVoKCksIW4pe3ZhciBpPXV1LmNsaWVudFgtdCxyPXV1LmNsaWVudFktZTtuPWkqaStyKnI+aH1sLm1vdXNlKCJkcmFnIil9ZnVuY3Rpb24gbSgpe1N1KHV1LnZpZXcpLm9uKCJtb3VzZW1vdmUuZHJhZyBtb3VzZXVwLmRyYWciLG51bGwpLGRoKHV1LnZpZXcsbiksdWgoKSxsLm1vdXNlKCJlbmQiKX1mdW5jdGlvbiBnKCl7aWYoci5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0LGUsbj11dS5jaGFuZ2VkVG91Y2hlcyxpPW8uYXBwbHkodGhpcyxhcmd1bWVudHMpLGE9bi5sZW5ndGg7Zm9yKHQ9MDt0PGE7Kyt0KShlPXYoblt0XS5pZGVudGlmaWVyLGksbGgsdGhpcyxhcmd1bWVudHMpKSYmKGNoKCksZSgic3RhcnQiKSl9fWZ1bmN0aW9uIF8oKXt2YXIgdCxlLG49dXUuY2hhbmdlZFRvdWNoZXMsaT1uLmxlbmd0aDtmb3IodD0wO3Q8aTsrK3QpKGU9bFtuW3RdLmlkZW50aWZpZXJdKSYmKHVoKCksZSgiZHJhZyIpKX1mdW5jdGlvbiB5KCl7dmFyIHQsZSxuPXV1LmNoYW5nZWRUb3VjaGVzLHI9bi5sZW5ndGg7Zm9yKGkmJmNsZWFyVGltZW91dChpKSxpPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aT1udWxsfSksNTAwKSx0PTA7dDxyOysrdCkoZT1sW25bdF0uaWRlbnRpZmllcl0pJiYoY2goKSxlKCJlbmQiKSl9ZnVuY3Rpb24gdih0LGUsbixpLHIpe3ZhciBvLHMsaCxwPW4oZSx0KSxmPWMuY29weSgpO2lmKGd1KG5ldyBmaChkLCJiZWZvcmVzdGFydCIsbyx0LHUscFswXSxwWzFdLDAsMCxmKSwoZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9KHV1LnN1YmplY3Q9bz1hLmFwcGx5KGkscikpJiYocz1vLngtcFswXXx8MCxoPW8ueS1wWzFdfHwwLCEwKX0pKSlyZXR1cm4gZnVuY3Rpb24gYShjKXt2YXIgbSxnPXA7c3dpdGNoKGMpe2Nhc2Uic3RhcnQiOmxbdF09YSxtPXUrKzticmVhaztjYXNlImVuZCI6ZGVsZXRlIGxbdF0sLS11O2Nhc2UiZHJhZyI6cD1uKGUsdCksbT11fWd1KG5ldyBmaChkLGMsbyx0LG0scFswXStzLHBbMV0raCxwWzBdLWdbMF0scFsxXS1nWzFdLGYpLGYuYXBwbHksZixbYyxpLHJdKX19cmV0dXJuIGQuZmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cGgoISF0KSxkKTpyfSxkLmNvbnRhaW5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnBoKHQpLGQpOm99LGQuc3ViamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnBoKHQpLGQpOmF9LGQudG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cGgoISF0KSxkKTpzfSxkLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Yy5vbi5hcHBseShjLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1jP2Q6dH0sZC5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSh0PSt0KSp0LGQpOk1hdGguc3FydChoKX0sZH1mdW5jdGlvbiBiaCh0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24geGgodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gd2goKXt9aWgucHJvdG90eXBlPW5oLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aWgsZ2V0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl87IShlIGluIHQpOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHRbZV19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0W3RoaXMuX109ZX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl8gaW4gdCYmZGVsZXRlIHRbdGhpcy5fXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX0sZmgucHJvdG90eXBlLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fLm9uLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpO3JldHVybiB0PT09dGhpcy5fP3RoaXM6dH07dmFyIFNoPS43LE1oPTEvU2gsRWg9IlxccyooWystXT9cXGQrKVxccyoiLFRoPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLENoPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixBaD0vXiMoWzAtOWEtZl17Myw4fSkkLyxraD1uZXcgUmVnRXhwKCJecmdiXFwoIitbRWgsRWgsRWhdKyJcXCkkIiksTGg9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW0NoLENoLENoXSsiXFwpJCIpLFBoPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbRWgsRWgsRWgsVGhdKyJcXCkkIiksTmg9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tDaCxDaCxDaCxUaF0rIlxcKSQiKSxJaD1uZXcgUmVnRXhwKCJeaHNsXFwoIitbVGgsQ2gsQ2hdKyJcXCkkIiksUmg9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tUaCxDaCxDaCxUaF0rIlxcKSQiKSxPaD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiB6aCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIERoKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gQmgodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9QWguZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj9IaChlKTozPT09bj9uZXcgamgoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP0ZoKGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP0ZoKGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9a2guZXhlYyh0KSk/bmV3IGpoKGVbMV0sZVsyXSxlWzNdLDEpOihlPUxoLmV4ZWModCkpP25ldyBqaCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1QaC5leGVjKHQpKT9GaChlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1OaC5leGVjKHQpKT9GaCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1JaC5leGVjKHQpKT9ZaChlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVJoLmV4ZWModCkpP1loKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6T2guaGFzT3duUHJvcGVydHkodCk/SGgoT2hbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyBqaChOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIEhoKHQpe3JldHVybiBuZXcgamgodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIEZoKHQsZSxuLGkpe3JldHVybiBpPD0wJiYodD1lPW49TmFOKSxuZXcgamgodCxlLG4saSl9ZnVuY3Rpb24gVmgodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB3aHx8KHQ9QmgodCkpLHQ/bmV3IGpoKCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyBqaH1mdW5jdGlvbiBVaCh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/VmgodCk6bmV3IGpoKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBqaCh0LGUsbixpKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gR2goKXtyZXR1cm4iIyIrcWgodGhpcy5yKStxaCh0aGlzLmcpK3FoKHRoaXMuYil9ZnVuY3Rpb24gV2goKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBxaCh0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIFloKHQsZSxuLGkpe3JldHVybiBpPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgS2godCxlLG4saSl9ZnVuY3Rpb24gWGgodCl7aWYodCBpbnN0YW5jZW9mIEtoKXJldHVybiBuZXcgS2godC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2Ygd2h8fCh0PUJoKHQpKSwhdClyZXR1cm4gbmV3IEtoO2lmKHQgaW5zdGFuY2VvZiBLaClyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsaT10LmIvMjU1LHI9TWF0aC5taW4oZSxuLGkpLG89TWF0aC5tYXgoZSxuLGkpLGE9TmFOLHM9by1yLGw9KG8rcikvMjtyZXR1cm4gcz8oYT1lPT09bz8obi1pKS9zKzYqKG48aSk6bj09PW8/KGktZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P28rcjoyLW8tcixhKj02MCk6cz1sPjAmJmw8MT8wOmEsbmV3IEtoKGEscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gJGgodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1hoKHQpOm5ldyBLaCh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gS2godCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIFpoKHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1iaCh3aCxCaCx7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDp6aCxmb3JtYXRIZXg6emgsZm9ybWF0SHNsOmZ1bmN0aW9uIEpoKCl7cmV0dXJuIFhoKHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6RGgsdG9TdHJpbmc6RGh9KSxiaChqaCxVaCx4aCh3aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9NaDpNYXRoLnBvdyhNaCx0KSxuZXcgamgodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/U2g6TWF0aC5wb3coU2gsdCksbmV3IGpoKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6R2gsZm9ybWF0SGV4OkdoLGZvcm1hdFJnYjpXaCx0b1N0cmluZzpXaH0pKSxiaChLaCwkaCx4aCh3aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9NaDpNYXRoLnBvdyhNaCx0KSxuZXcgS2godGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9TaDpNYXRoLnBvdyhTaCx0KSxuZXcgS2godGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyBqaChaaCh0Pj0yNDA/dC0yNDA6dCsxMjAscixpKSxaaCh0LHIsaSksWmgodDwxMjA/dCsyNDA6dC0xMjAscixpKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgUWg9TWF0aC5QSS8xODAsdGQ9MTgwL01hdGguUEksZWQ9Ljk2NDIyLG5kPS44MjUyMSxpZD00LzI5LHJkPTYvMjksb2Q9MypyZCpyZDtmdW5jdGlvbiBhZCh0KXtpZih0IGluc3RhbmNlb2YgbGQpcmV0dXJuIG5ldyBsZCh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBtZClyZXR1cm4gZ2QodCk7dCBpbnN0YW5jZW9mIGpofHwodD1WaCh0KSk7dmFyIGUsbixpPWRkKHQucikscj1kZCh0LmcpLG89ZGQodC5iKSxhPWNkKCguMjIyNTA0NSppKy43MTY4Nzg2KnIrLjA2MDYxNjkqbykvMSk7cmV0dXJuIGk9PT1yJiZyPT09bz9lPW49YTooZT1jZCgoLjQzNjA3NDcqaSsuMzg1MDY0OSpyKy4xNDMwODA0Km8pL2VkKSxuPWNkKCguMDEzOTMyMippKy4wOTcxMDQ1KnIrLjcxNDE3MzMqbykvbmQpKSxuZXcgbGQoMTE2KmEtMTYsNTAwKihlLWEpLDIwMCooYS1uKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIHNkKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9hZCh0KTpuZXcgbGQodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIGxkKHQsZSxuLGkpe3RoaXMubD0rdCx0aGlzLmE9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBjZCh0KXtyZXR1cm4gdD4uMDA4ODU2NDUxNjc5MDM1NjMxP01hdGgucG93KHQsMS8zKTp0L29kK2lkfWZ1bmN0aW9uIHVkKHQpe3JldHVybiB0PnJkP3QqdCp0Om9kKih0LWlkKX1mdW5jdGlvbiBoZCh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIGRkKHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIHBkKHQpe2lmKHQgaW5zdGFuY2VvZiBtZClyZXR1cm4gbmV3IG1kKHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIGxkfHwodD1hZCh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IG1kKE5hTiwwPHQubCYmdC5sPDEwMD8wOk5hTix0LmwsdC5vcGFjaXR5KTt2YXIgZT1NYXRoLmF0YW4yKHQuYix0LmEpKnRkO3JldHVybiBuZXcgbWQoZTwwP2UrMzYwOmUsTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gZmQodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3BkKHQpOm5ldyBtZCh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gbWQodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMuYz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIGdkKHQpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyBsZCh0LmwsMCwwLHQub3BhY2l0eSk7dmFyIGU9dC5oKlFoO3JldHVybiBuZXcgbGQodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX1iaChsZCxzZCx4aCh3aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBsZCh0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGxkKHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMubCsxNikvMTE2LGU9aXNOYU4odGhpcy5hKT90OnQrdGhpcy5hLzUwMCxuPWlzTmFOKHRoaXMuYik/dDp0LXRoaXMuYi8yMDA7cmV0dXJuIG5ldyBqaChoZCgzLjEzMzg1NjEqKGU9ZWQqdWQoZSkpLTEuNjE2ODY2NyoodD0xKnVkKHQpKS0uNDkwNjE0Nioobj1uZCp1ZChuKSkpLGhkKC0uOTc4NzY4NCplKzEuOTE2MTQxNSp0Ky4wMzM0NTQqbiksaGQoLjA3MTk0NTMqZS0uMjI4OTkxNCp0KzEuNDA1MjQyNypuKSx0aGlzLm9wYWNpdHkpfX0pKSxiaChtZCxmZCx4aCh3aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBtZCh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IG1kKHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIGdkKHRoaXMpLnJnYigpfX0pKTt2YXIgX2Q9LS4yOTIyNyx5ZD0tLjkwNjQ5LHZkPTEuOTcyOTQ7ZnVuY3Rpb24gYmQodCl7aWYodCBpbnN0YW5jZW9mIHdkKXJldHVybiBuZXcgd2QodC5oLHQucyx0LmwsdC5vcGFjaXR5KTt0IGluc3RhbmNlb2Ygamh8fCh0PVZoKHQpKTt2YXIgZT10LmcvMjU1LG49dC5iLzI1NSxpPSgtLjY1NTc2MzY2Njc5OTk5OTkqbit0LnIvMjU1Ki0xLjc4ODQ1MDM4MDYtMy41MTcyOTgyNDM4KmUpLy01Ljk2MTUxMjI5MTIscj1uLWksbz0odmQqKGUtaSktX2QqcikveWQsYT1NYXRoLnNxcnQobypvK3IqcikvKHZkKmkqKDEtaSkpLHM9YT9NYXRoLmF0YW4yKG8scikqdGQtMTIwOk5hTjtyZXR1cm4gbmV3IHdkKHM8MD9zKzM2MDpzLGEsaSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIHhkKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9iZCh0KTpuZXcgd2QodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIHdkKHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBTZCh0LGUsbixpLHIpe3ZhciBvPXQqdCxhPW8qdDtyZXR1cm4oKDEtMyp0KzMqby1hKSplKyg0LTYqbyszKmEpKm4rKDErMyp0KzMqby0zKmEpKmkrYSpyKS82fWZ1bmN0aW9uIE1kKHQpe3ZhciBlPXQubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPW48PTA/bj0wOm4+PTE/KG49MSxlLTEpOk1hdGguZmxvb3IobiplKSxyPXRbaV0sbz10W2krMV07cmV0dXJuIFNkKChuLWkvZSkqZSxpPjA/dFtpLTFdOjIqci1vLHIsbyxpPGUtMT90W2krMl06MipvLXIpfX1mdW5jdGlvbiBFZCh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9TWF0aC5mbG9vcigoKG4lPTEpPDA/KytuOm4pKmUpO3JldHVybiBTZCgobi1pL2UpKmUsdFsoaStlLTEpJWVdLHRbaSVlXSx0WyhpKzEpJWVdLHRbKGkrMiklZV0pfX1mdW5jdGlvbiBUZCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gQ2QodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQrbiplfX1mdW5jdGlvbiBBZCh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9DZCh0LG4+MTgwfHxuPC0xODA/bi0zNjAqTWF0aC5yb3VuZChuLzM2MCk6bik6VGQoaXNOYU4odCk/ZTp0KX1mdW5jdGlvbiBrZCh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9DZCh0LG4pOlRkKGlzTmFOKHQpP2U6dCl9Ymgod2QseGQseGgod2gse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/TWg6TWF0aC5wb3coTWgsdCksbmV3IHdkKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/U2g6TWF0aC5wb3coU2gsdCksbmV3IHdkKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9aXNOYU4odGhpcy5oKT8wOih0aGlzLmgrMTIwKSpRaCxlPSt0aGlzLmwsbj1pc05hTih0aGlzLnMpPzA6dGhpcy5zKmUqKDEtZSksaT1NYXRoLmNvcyh0KSxyPU1hdGguc2luKHQpO3JldHVybiBuZXcgamgoMjU1KihlK24qKC0uMTQ4NjEqaSsxLjc4Mjc3KnIpKSwyNTUqKGUrbiooX2QqaSt5ZCpyKSksMjU1KihlK24qKHZkKmkpKSx0aGlzLm9wYWNpdHkpfX0pKTt2YXIgTGQ9KGZ1bmN0aW9uIHQoZSl7dmFyIG49KGZ1bmN0aW9uIGkodCl7cmV0dXJuIDE9PSh0PSt0KT9rZDpmdW5jdGlvbihlLG4pe3JldHVybiBuLWU/KGZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiB0PU1hdGgucG93KHQsbiksZT1NYXRoLnBvdyhlLG4pLXQsbj0xL24sZnVuY3Rpb24oaSl7cmV0dXJuIE1hdGgucG93KHQraSplLG4pfX0pKGUsbix0KTpUZChpc05hTihlKT9uOmUpfX0pKGUpO2Z1bmN0aW9uIHIodCxlKXt2YXIgaT1uKCh0PVVoKHQpKS5yLChlPVVoKGUpKS5yKSxyPW4odC5nLGUuZyksbz1uKHQuYixlLmIpLGE9a2QodC5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LnI9aShlKSx0Lmc9cihlKSx0LmI9byhlKSx0Lm9wYWNpdHk9YShlKSx0KyIifX1yZXR1cm4gci5nYW1tYT10LHJ9KSgxKTtmdW5jdGlvbiBQZCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG4saSxyPWUubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9bmV3IEFycmF5KHIpLHM9bmV3IEFycmF5KHIpO2ZvcihuPTA7bjxyOysrbilpPVVoKGVbbl0pLG9bbl09aS5yfHwwLGFbbl09aS5nfHwwLHNbbl09aS5ifHwwO3JldHVybiBvPXQobyksYT10KGEpLHM9dChzKSxpLm9wYWNpdHk9MSxmdW5jdGlvbih0KXtyZXR1cm4gaS5yPW8odCksaS5nPWEodCksaS5iPXModCksaSsiIn19fXZhciBOZD1QZChNZCksSWQ9UGQoRWQpO2Z1bmN0aW9uIFJkKHQsZSl7ZXx8KGU9W10pO3ZhciBuLGk9dD9NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk6MCxyPWUuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24obyl7Zm9yKG49MDtuPGk7KytuKXJbbl09dFtuXSooMS1vKStlW25dKm87cmV0dXJuIHJ9fWZ1bmN0aW9uIE9kKHQpe3JldHVybiBBcnJheUJ1ZmZlci5pc1ZpZXcodCkmJiEodCBpbnN0YW5jZW9mIERhdGFWaWV3KX1mdW5jdGlvbiB6ZCh0LGUpe3ZhciBuLGk9ZT9lLmxlbmd0aDowLHI9dD9NYXRoLm1pbihpLHQubGVuZ3RoKTowLG89bmV3IEFycmF5KHIpLGE9bmV3IEFycmF5KGkpO2ZvcihuPTA7bjxyOysrbilvW25dPWpkKHRbbl0sZVtuXSk7Zm9yKDtuPGk7KytuKWFbbl09ZVtuXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKG49MDtuPHI7KytuKWFbbl09b1tuXSh0KTtyZXR1cm4gYX19ZnVuY3Rpb24gRGQodCxlKXt2YXIgbj1uZXcgRGF0ZTtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKGkpe3JldHVybiBuLnNldFRpbWUodCooMS1pKStlKmkpLG59fWZ1bmN0aW9uIEJkKHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihuKXtyZXR1cm4gdCooMS1uKStlKm59fWZ1bmN0aW9uIEhkKHQsZSl7dmFyIG4saT17fSxyPXt9O2ZvcihuIGluIG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHR8fCh0PXt9KSxudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlfHwoZT17fSksZSluIGluIHQ/aVtuXT1qZCh0W25dLGVbbl0pOnJbbl09ZVtuXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKG4gaW4gaSlyW25dPWlbbl0odCk7cmV0dXJuIHJ9fXZhciBGZD0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csVmQ9bmV3IFJlZ0V4cChGZC5zb3VyY2UsImciKTtmdW5jdGlvbiBVZCh0LGUpe3ZhciBuLGkscixvPUZkLmxhc3RJbmRleD1WZC5sYXN0SW5kZXg9MCxhPS0xLHM9W10sbD1bXTtmb3IodCs9IiIsZSs9IiI7KG49RmQuZXhlYyh0KSkmJihpPVZkLmV4ZWMoZSkpOykocj1pLmluZGV4KT5vJiYocj1lLnNsaWNlKG8sciksc1thXT9zW2FdKz1yOnNbKythXT1yKSwobj1uWzBdKT09PShpPWlbMF0pP3NbYV0/c1thXSs9aTpzWysrYV09aTooc1srK2FdPW51bGwsbC5wdXNoKHtpOmEseDpCZChuLGkpfSkpLG89VmQubGFzdEluZGV4O3JldHVybiBvPGUubGVuZ3RoJiYocj1lLnNsaWNlKG8pLHNbYV0/c1thXSs9cjpzWysrYV09cikscy5sZW5ndGg8Mj9sWzBdPyhmdW5jdGlvbiBjKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKSsiIn19KShsWzBdLngpOihmdW5jdGlvbiB1KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0pKGUpOihlPWwubGVuZ3RoLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixpPTA7aTxlOysraSlzWyhuPWxbaV0pLmldPW4ueCh0KTtyZXR1cm4gcy5qb2luKCIiKX0pfWZ1bmN0aW9uIGpkKHQsZSl7dmFyIG4saT10eXBlb2YgZTtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT09aT9UZChlKTooIm51bWJlciI9PT1pP0JkOiJzdHJpbmciPT09aT8obj1CaChlKSk/KGU9bixMZCk6VWQ6ZSBpbnN0YW5jZW9mIEJoP0xkOmUgaW5zdGFuY2VvZiBEYXRlP0RkOk9kKGUpP1JkOkFycmF5LmlzQXJyYXkoZSk/emQ6ImZ1bmN0aW9uIiE9dHlwZW9mIGUudmFsdWVPZiYmImZ1bmN0aW9uIiE9dHlwZW9mIGUudG9TdHJpbmd8fGlzTmFOKGUpP0hkOkJkKSh0LGUpfWZ1bmN0aW9uIEdkKHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5yb3VuZCh0KigxLW4pK2Uqbil9fXZhciBXZCxxZCxZZCxYZCwkZD0xODAvTWF0aC5QSSxLZD17dHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MCxyb3RhdGU6MCxza2V3WDowLHNjYWxlWDoxLHNjYWxlWToxfTtmdW5jdGlvbiBaZCh0LGUsbixpLHIsbyl7dmFyIGEscyxsO3JldHVybihhPU1hdGguc3FydCh0KnQrZSplKSkmJih0Lz1hLGUvPWEpLChsPXQqbitlKmkpJiYobi09dCpsLGktPWUqbCksKHM9TWF0aC5zcXJ0KG4qbitpKmkpKSYmKG4vPXMsaS89cyxsLz1zKSx0Kmk8ZSpuJiYodD0tdCxlPS1lLGw9LWwsYT0tYSkse3RyYW5zbGF0ZVg6cix0cmFuc2xhdGVZOm8scm90YXRlOk1hdGguYXRhbjIoZSx0KSokZCxza2V3WDpNYXRoLmF0YW4obCkqJGQsc2NhbGVYOmEsc2NhbGVZOnN9fWZ1bmN0aW9uIEpkKHQsZSxuLGkpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQubGVuZ3RoP3QucG9wKCkrIiAiOiIifXJldHVybiBmdW5jdGlvbihvLGEpe3ZhciBzPVtdLGw9W107cmV0dXJuIG89dChvKSxhPXQoYSksKGZ1bmN0aW9uIGModCxpLHIsbyxhLHMpe2lmKHQhPT1yfHxpIT09byl7dmFyIGw9YS5wdXNoKCJ0cmFuc2xhdGUoIixudWxsLGUsbnVsbCxuKTtzLnB1c2goe2k6bC00LHg6QmQodCxyKX0se2k6bC0yLHg6QmQoaSxvKX0pfWVsc2Uocnx8bykmJmEucHVzaCgidHJhbnNsYXRlKCIrcitlK28rbil9KShvLnRyYW5zbGF0ZVgsby50cmFuc2xhdGVZLGEudHJhbnNsYXRlWCxhLnRyYW5zbGF0ZVkscyxsKSwoZnVuY3Rpb24gdSh0LGUsbixvKXt0IT09ZT8odC1lPjE4MD9lKz0zNjA6ZS10PjE4MCYmKHQrPTM2MCksby5wdXNoKHtpOm4ucHVzaChyKG4pKyJyb3RhdGUoIixudWxsLGkpLTIseDpCZCh0LGUpfSkpOmUmJm4ucHVzaChyKG4pKyJyb3RhdGUoIitlK2kpfSkoby5yb3RhdGUsYS5yb3RhdGUscyxsKSwoZnVuY3Rpb24gaCh0LGUsbixvKXt0IT09ZT9vLnB1c2goe2k6bi5wdXNoKHIobikrInNrZXdYKCIsbnVsbCxpKS0yLHg6QmQodCxlKX0pOmUmJm4ucHVzaChyKG4pKyJza2V3WCgiK2UraSl9KShvLnNrZXdYLGEuc2tld1gscyxsKSwoZnVuY3Rpb24gZCh0LGUsbixpLG8sYSl7aWYodCE9PW58fGUhPT1pKXt2YXIgcz1vLnB1c2gocihvKSsic2NhbGUoIixudWxsLCIsIixudWxsLCIpIik7YS5wdXNoKHtpOnMtNCx4OkJkKHQsbil9LHtpOnMtMix4OkJkKGUsaSl9KX1lbHNlIDE9PT1uJiYxPT09aXx8by5wdXNoKHIobykrInNjYWxlKCIrbisiLCIraSsiKSIpfSkoby5zY2FsZVgsby5zY2FsZVksYS5zY2FsZVgsYS5zY2FsZVkscyxsKSxvPWE9bnVsbCxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0tMSxpPWwubGVuZ3RoOysrbjxpOylzWyhlPWxbbl0pLmldPWUueCh0KTtyZXR1cm4gcy5qb2luKCIiKX19fXZhciBRZD1KZCgoZnVuY3Rpb24gdHAodCl7cmV0dXJuIm5vbmUiPT09dD9LZDooV2R8fChXZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKSxxZD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsWWQ9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLFdkLnN0eWxlLnRyYW5zZm9ybT10LHQ9WWQuZ2V0Q29tcHV0ZWRTdHlsZShxZC5hcHBlbmRDaGlsZChXZCksbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIikscWQucmVtb3ZlQ2hpbGQoV2QpLFpkKCsodD10LnNsaWNlKDcsLTEpLnNwbGl0KCIsIikpWzBdLCt0WzFdLCt0WzJdLCt0WzNdLCt0WzRdLCt0WzVdKSl9KSwicHgsICIsInB4KSIsImRlZykiKSxlcD1KZCgoZnVuY3Rpb24gbnAodCl7cmV0dXJuIG51bGw9PXQ/S2Q6KFhkfHwoWGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSksWGQuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLHQpLCh0PVhkLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpP1pkKCh0PXQubWF0cml4KS5hLHQuYix0LmMsdC5kLHQuZSx0LmYpOktkKX0pLCIsICIsIikiLCIpIiksaXA9TWF0aC5TUVJUMjtmdW5jdGlvbiBycCh0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpKzEvdCkvMn1mdW5jdGlvbiBvcCh0LGUpe3ZhciBuLGkscj10WzBdLG89dFsxXSxhPXRbMl0scz1lWzJdLGw9ZVswXS1yLGM9ZVsxXS1vLHU9bCpsK2MqYztpZih1PDFlLTEyKWk9TWF0aC5sb2cocy9hKS9pcCxuPWZ1bmN0aW9uKHQpe3JldHVybltyK3QqbCxvK3QqYyxhKk1hdGguZXhwKGlwKnQqaSldfTtlbHNle3ZhciBoPU1hdGguc3FydCh1KSxkPShzKnMtYSphKzQqdSkvKDIqYSoyKmgpLHA9KHMqcy1hKmEtNCp1KS8oMipzKjIqaCksZj1NYXRoLmxvZyhNYXRoLnNxcnQoZCpkKzEpLWQpLG09TWF0aC5sb2coTWF0aC5zcXJ0KHAqcCsxKS1wKTtpPShtLWYpL2lwLG49ZnVuY3Rpb24odCl7dmFyIGU9dCppLG49cnAoZikscz1hLygyKmgpKihuKihmdW5jdGlvbiB1KHQpe3JldHVybigodD1NYXRoLmV4cCgyKnQpKS0xKS8odCsxKX0pKGlwKmUrZiktKGZ1bmN0aW9uIGQodCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKS0xL3QpLzJ9KShmKSk7cmV0dXJuW3IrcypsLG8rcypjLGEqbi9ycChpcCplK2YpXX19cmV0dXJuIG4uZHVyYXRpb249MWUzKmksbn1mdW5jdGlvbiBhcCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgaT10KChlPSRoKGUpKS5oLChuPSRoKG4pKS5oKSxyPWtkKGUucyxuLnMpLG89a2QoZS5sLG4ubCksYT1rZChlLm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuaD1pKHQpLGUucz1yKHQpLGUubD1vKHQpLGUub3BhY2l0eT1hKHQpLGUrIiJ9fX12YXIgc3A9YXAoQWQpLGxwPWFwKGtkKTtmdW5jdGlvbiBjcCh0LGUpe3ZhciBuPWtkKCh0PXNkKHQpKS5sLChlPXNkKGUpKS5sKSxpPWtkKHQuYSxlLmEpLHI9a2QodC5iLGUuYiksbz1rZCh0Lm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQubD1uKGUpLHQuYT1pKGUpLHQuYj1yKGUpLHQub3BhY2l0eT1vKGUpLHQrIiJ9fWZ1bmN0aW9uIHVwKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBpPXQoKGU9ZmQoZSkpLmgsKG49ZmQobikpLmgpLHI9a2QoZS5jLG4uYyksbz1rZChlLmwsbi5sKSxhPWtkKGUub3BhY2l0eSxuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5oPWkodCksZS5jPXIodCksZS5sPW8odCksZS5vcGFjaXR5PWEodCksZSsiIn19fXZhciBocD11cChBZCksZHA9dXAoa2QpO2Z1bmN0aW9uIHBwKHQpe3JldHVybihmdW5jdGlvbiBlKG4pe2Z1bmN0aW9uIGkoZSxpKXt2YXIgcj10KChlPXhkKGUpKS5oLChpPXhkKGkpKS5oKSxvPWtkKGUucyxpLnMpLGE9a2QoZS5sLGkubCkscz1rZChlLm9wYWNpdHksaS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuaD1yKHQpLGUucz1vKHQpLGUubD1hKE1hdGgucG93KHQsbikpLGUub3BhY2l0eT1zKHQpLGUrIiJ9fXJldHVybiBuPStuLGkuZ2FtbWE9ZSxpfSkoMSl9dmFyIGZwLG1wLGdwPXBwKEFkKSxfcD1wcChrZCkseXA9MCx2cD0wLGJwPTAseHA9MCx3cD0wLFNwPTAsTXA9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsRXA9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07ZnVuY3Rpb24gVHAoKXtyZXR1cm4gd3B8fChFcChDcCksd3A9TXAubm93KCkrU3ApfWZ1bmN0aW9uIENwKCl7d3A9MH1mdW5jdGlvbiBBcCgpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24ga3AodCxlLG4pe3ZhciBpPW5ldyBBcDtyZXR1cm4gaS5yZXN0YXJ0KHQsZSxuKSxpfWZ1bmN0aW9uIExwKCl7VHAoKSwrK3lwO2Zvcih2YXIgdCxlPWZwO2U7KSh0PXdwLWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS15cH1mdW5jdGlvbiBQcCgpe3dwPSh4cD1NcC5ub3coKSkrU3AseXA9dnA9MDt0cnl7THAoKX1maW5hbGx5e3lwPTAsKGZ1bmN0aW9uIHQoKXtmb3IodmFyIHQsZSxuPWZwLGk9MS8wO247KW4uX2NhbGw/KGk+bi5fdGltZSYmKGk9bi5fdGltZSksdD1uLG49bi5fbmV4dCk6KGU9bi5fbmV4dCxuLl9uZXh0PW51bGwsbj10P3QuX25leHQ9ZTpmcD1lKTttcD10LElwKGkpfSkoKSx3cD0wfX1mdW5jdGlvbiBOcCgpe3ZhciB0PU1wLm5vdygpLGU9dC14cDtlPjFlMyYmKFNwLT1lLHhwPXQpfWZ1bmN0aW9uIElwKHQpe3lwfHwodnAmJih2cD1jbGVhclRpbWVvdXQodnApKSx0LXdwPjI0Pyh0PDEvMCYmKHZwPXNldFRpbWVvdXQoUHAsdC1NcC5ub3coKS1TcCkpLGJwJiYoYnA9Y2xlYXJJbnRlcnZhbChicCkpKTooYnB8fCh4cD1NcC5ub3coKSxicD1zZXRJbnRlcnZhbChOcCwxZTMpKSx5cD0xLEVwKFBwKSkpfWZ1bmN0aW9uIFJwKHQsZSxuKXt2YXIgaT1uZXcgQXA7cmV0dXJuIGkucmVzdGFydCgoZnVuY3Rpb24obil7aS5zdG9wKCksdChuK2UpfSksZT1udWxsPT1lPzA6K2UsbiksaX1BcC5wcm90b3R5cGU9a3AucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpBcCxyZXN0YXJ0OmZ1bmN0aW9uKHQsZSxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO249KG51bGw9PW4/VHAoKTorbikrKG51bGw9PWU/MDorZSksdGhpcy5fbmV4dHx8bXA9PT10aGlzfHwobXA/bXAuX25leHQ9dGhpczpmcD10aGlzLG1wPXRoaXMpLHRoaXMuX2NhbGw9dCx0aGlzLl90aW1lPW4sSXAoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsSXAoKSl9fTt2YXIgT3A9bGMoInN0YXJ0IiwiZW5kIiwiY2FuY2VsIiwiaW50ZXJydXB0IiksenA9W107ZnVuY3Rpb24gRHAodCxlLG4saSxyLG8pe3ZhciBhPXQuX190cmFuc2l0aW9uO2lmKGEpe2lmKG4gaW4gYSlyZXR1cm59ZWxzZSB0Ll9fdHJhbnNpdGlvbj17fTshKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBpLHI9dC5fX3RyYW5zaXRpb247ZnVuY3Rpb24gbyhsKXt2YXIgYyx1LGgsZDtpZigxIT09bi5zdGF0ZSlyZXR1cm4gcygpO2ZvcihjIGluIHIpaWYoKGQ9cltjXSkubmFtZT09PW4ubmFtZSl7aWYoMz09PWQuc3RhdGUpcmV0dXJuIFJwKG8pOzQ9PT1kLnN0YXRlPyhkLnN0YXRlPTYsZC50aW1lci5zdG9wKCksZC5vbi5jYWxsKCJpbnRlcnJ1cHQiLHQsdC5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSByW2NdKTorYzxlJiYoZC5zdGF0ZT02LGQudGltZXIuc3RvcCgpLGQub24uY2FsbCgiY2FuY2VsIix0LHQuX19kYXRhX18sZC5pbmRleCxkLmdyb3VwKSxkZWxldGUgcltjXSl9aWYoUnAoKGZ1bmN0aW9uKCl7Mz09PW4uc3RhdGUmJihuLnN0YXRlPTQsbi50aW1lci5yZXN0YXJ0KGEsbi5kZWxheSxuLnRpbWUpLGEobCkpfSkpLG4uc3RhdGU9MixuLm9uLmNhbGwoInN0YXJ0Iix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSwyPT09bi5zdGF0ZSl7Zm9yKG4uc3RhdGU9MyxpPW5ldyBBcnJheShoPW4udHdlZW4ubGVuZ3RoKSxjPTAsdT0tMTtjPGg7KytjKShkPW4udHdlZW5bY10udmFsdWUuY2FsbCh0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSkmJihpWysrdV09ZCk7aS5sZW5ndGg9dSsxfX1mdW5jdGlvbiBhKGUpe2Zvcih2YXIgcj1lPG4uZHVyYXRpb24/bi5lYXNlLmNhbGwobnVsbCxlL24uZHVyYXRpb24pOihuLnRpbWVyLnJlc3RhcnQocyksbi5zdGF0ZT01LDEpLG89LTEsYT1pLmxlbmd0aDsrK288YTspaVtvXS5jYWxsKHQscik7NT09PW4uc3RhdGUmJihuLm9uLmNhbGwoImVuZCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCkscygpKX1mdW5jdGlvbiBzKCl7Zm9yKHZhciBpIGluIG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxkZWxldGUgcltlXSxyKXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259cltlXT1uLG4udGltZXI9a3AoKGZ1bmN0aW9uIGwodCl7bi5zdGF0ZT0xLG4udGltZXIucmVzdGFydChvLG4uZGVsYXksbi50aW1lKSxuLmRlbGF5PD10JiZvKHQtbi5kZWxheSl9KSwwLG4udGltZSl9KSh0LG4se25hbWU6ZSxpbmRleDppLGdyb3VwOnIsb246T3AsdHdlZW46enAsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6MH0pfWZ1bmN0aW9uIEJwKHQsZSl7dmFyIG49RnAodCxlKTtpZihuLnN0YXRlPjApdGhyb3cgbmV3IEVycm9yKCJ0b28gbGF0ZTsgYWxyZWFkeSBzY2hlZHVsZWQiKTtyZXR1cm4gbn1mdW5jdGlvbiBIcCh0LGUpe3ZhciBuPUZwKHQsZSk7aWYobi5zdGF0ZT4zKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZyIpO3JldHVybiBufWZ1bmN0aW9uIEZwKHQsZSl7dmFyIG49dC5fX3RyYW5zaXRpb247aWYoIW58fCEobj1uW2VdKSl0aHJvdyBuZXcgRXJyb3IoInRyYW5zaXRpb24gbm90IGZvdW5kIik7cmV0dXJuIG59ZnVuY3Rpb24gVnAodCxlKXt2YXIgbixpLHIsbz10Ll9fdHJhbnNpdGlvbixhPSEwO2lmKG8pe2ZvcihyIGluIGU9bnVsbD09ZT9udWxsOmUrIiIsbykobj1vW3JdKS5uYW1lPT09ZT8oaT1uLnN0YXRlPjImJm4uc3RhdGU8NSxuLnN0YXRlPTYsbi50aW1lci5zdG9wKCksbi5vbi5jYWxsKGk/ImludGVycnVwdCI6ImNhbmNlbCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksZGVsZXRlIG9bcl0pOmE9ITE7YSYmZGVsZXRlIHQuX190cmFuc2l0aW9ufX1mdW5jdGlvbiBVcCh0LGUpe3ZhciBuLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9SHAodGhpcyx0KSxvPXIudHdlZW47aWYobyE9PW4pZm9yKHZhciBhPTAscz0oaT1uPW8pLmxlbmd0aDthPHM7KythKWlmKGlbYV0ubmFtZT09PWUpeyhpPWkuc2xpY2UoKSkuc3BsaWNlKGEsMSk7YnJlYWt9ci50d2Vlbj1pfX1mdW5jdGlvbiBqcCh0LGUsbil7dmFyIGkscjtpZigiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89SHAodGhpcyx0KSxhPW8udHdlZW47aWYoYSE9PWkpe3I9KGk9YSkuc2xpY2UoKTtmb3IodmFyIHM9e25hbWU6ZSx2YWx1ZTpufSxsPTAsYz1yLmxlbmd0aDtsPGM7KytsKWlmKHJbbF0ubmFtZT09PWUpe3JbbF09czticmVha31sPT09YyYmci5wdXNoKHMpfW8udHdlZW49cn19ZnVuY3Rpb24gR3AodCxlLG4pe3ZhciBpPXQuX2lkO3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9SHAodGhpcyxpKTsodC52YWx1ZXx8KHQudmFsdWU9e30pKVtlXT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pKSxmdW5jdGlvbih0KXtyZXR1cm4gRnAodCxpKS52YWx1ZVtlXX19ZnVuY3Rpb24gV3AodCxlKXt2YXIgbjtyZXR1cm4oIm51bWJlciI9PXR5cGVvZiBlP0JkOmUgaW5zdGFuY2VvZiBCaD9MZDoobj1CaChlKSk/KGU9bixMZCk6VWQpKHQsZSl9ZnVuY3Rpb24gcXAodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIFlwKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gWHAodCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlKHQpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19ZnVuY3Rpb24gJHAodCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTtyZXR1cm4gYT09PW8/bnVsbDphPT09aT9yOnI9ZShpPWEsbil9fWZ1bmN0aW9uIEtwKHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEscyxsPW4odGhpcyk7aWYobnVsbCE9bClyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZSh0KSk9PT0ocz1sKyIiKT9udWxsOmE9PT1pJiZzPT09cj9vOihyPXMsbz1lKGk9YSxsKSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIFpwKHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEscyxsPW4odGhpcyk7aWYobnVsbCE9bClyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCkpPT09KHM9bCsiIik/bnVsbDphPT09aSYmcz09PXI/bzoocj1zLG89ZShpPWEsbCkpO3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gSnAodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dGhpcy5zZXRBdHRyaWJ1dGUodCxlLmNhbGwodGhpcyxuKSl9fWZ1bmN0aW9uIFFwKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUuY2FsbCh0aGlzLG4pKX19ZnVuY3Rpb24gdGYodCxlKXt2YXIgbixpO2Z1bmN0aW9uIHIoKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gciE9PWkmJihuPShpPXIpJiZRcCh0LHIpKSxufXJldHVybiByLl92YWx1ZT1lLHJ9ZnVuY3Rpb24gZWYodCxlKXt2YXIgbixpO2Z1bmN0aW9uIHIoKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gciE9PWkmJihuPShpPXIpJiZKcCh0LHIpKSxufXJldHVybiByLl92YWx1ZT1lLHJ9ZnVuY3Rpb24gbmYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtCcCh0aGlzLHQpLmRlbGF5PStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gcmYodCxlKXtyZXR1cm4gZT0rZSxmdW5jdGlvbigpe0JwKHRoaXMsdCkuZGVsYXk9ZX19ZnVuY3Rpb24gb2YodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtIcCh0aGlzLHQpLmR1cmF0aW9uPStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gYWYodCxlKXtyZXR1cm4gZT0rZSxmdW5jdGlvbigpe0hwKHRoaXMsdCkuZHVyYXRpb249ZX19ZnVuY3Rpb24gc2YodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7SHAodGhpcyx0KS5lYXNlPWV9fWZ1bmN0aW9uIGxmKHQsZSxuKXt2YXIgaSxyLG89KGZ1bmN0aW9uIGEodCl7cmV0dXJuKHQrIiIpLnRyaW0oKS5zcGxpdCgvXnxccysvKS5ldmVyeSgoZnVuY3Rpb24odCl7dmFyIGU9dC5pbmRleE9mKCIuIik7cmV0dXJuIGU+PTAmJih0PXQuc2xpY2UoMCxlKSksIXR8fCJzdGFydCI9PT10fSkpfSkoZSk/QnA6SHA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9byh0aGlzLHQpLHM9YS5vbjtzIT09aSYmKHI9KGk9cykuY29weSgpKS5vbihlLG4pLGEub249cn19dmFyIGNmPXd1LnByb3RvdHlwZS5jb25zdHJ1Y3RvcjtmdW5jdGlvbiB1Zih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBoZih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLmNhbGwodGhpcyxpKSxuKX19ZnVuY3Rpb24gZGYodCxlLG4pe3ZhciBpLHI7ZnVuY3Rpb24gbygpe3ZhciBvPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBvIT09ciYmKGk9KHI9bykmJmhmKHQsbyxuKSksaX1yZXR1cm4gby5fdmFsdWU9ZSxvfWZ1bmN0aW9uIHBmKHQpe3JldHVybiBmdW5jdGlvbihlKXt0aGlzLnRleHRDb250ZW50PXQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBmZih0KXt2YXIgZSxuO2Z1bmN0aW9uIGkoKXt2YXIgaT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gaSE9PW4mJihlPShuPWkpJiZwZihpKSksZX1yZXR1cm4gaS5fdmFsdWU9dCxpfXZhciBtZj0wO2Z1bmN0aW9uIGdmKHQsZSxuLGkpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZSx0aGlzLl9uYW1lPW4sdGhpcy5faWQ9aX1mdW5jdGlvbiBfZih0KXtyZXR1cm4gd3UoKS50cmFuc2l0aW9uKHQpfWZ1bmN0aW9uIHlmKCl7cmV0dXJuKyttZn12YXIgdmY9d3UucHJvdG90eXBlO2Z1bmN0aW9uIGJmKHQpe3JldHVybit0fWZ1bmN0aW9uIHhmKHQpe3JldHVybiB0KnR9ZnVuY3Rpb24gd2YodCl7cmV0dXJuIHQqKDItdCl9ZnVuY3Rpb24gU2YodCl7cmV0dXJuKCh0Kj0yKTw9MT90KnQ6LS10KigyLXQpKzEpLzJ9ZnVuY3Rpb24gTWYodCl7cmV0dXJuIHQqdCp0fWZ1bmN0aW9uIEVmKHQpe3JldHVybi0tdCp0KnQrMX1mdW5jdGlvbiBUZih0KXtyZXR1cm4oKHQqPTIpPD0xP3QqdCp0Oih0LT0yKSp0KnQrMikvMn1nZi5wcm90b3R5cGU9X2YucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpnZixzZWxlY3Q6ZnVuY3Rpb24gQ2YodCl7dmFyIGU9dGhpcy5fbmFtZSxuPXRoaXMuX2lkOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1iYyh0KSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7KythKWZvcih2YXIgcyxsLGM9aVthXSx1PWMubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9Y1tkXSkmJihsPXQuY2FsbChzLHMuX19kYXRhX18sZCxjKSkmJigiX19kYXRhX18iaW4gcyYmKGwuX19kYXRhX189cy5fX2RhdGFfXyksaFtkXT1sLERwKGhbZF0sZSxuLGQsaCxGcChzLG4pKSk7cmV0dXJuIG5ldyBnZihvLHRoaXMuX3BhcmVudHMsZSxuKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIEFmKHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9d2ModCkpO2Zvcih2YXIgaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPVtdLGE9W10scz0wO3M8cjsrK3MpZm9yKHZhciBsLGM9aVtzXSx1PWMubGVuZ3RoLGg9MDtoPHU7KytoKWlmKGw9Y1toXSl7Zm9yKHZhciBkLHA9dC5jYWxsKGwsbC5fX2RhdGFfXyxoLGMpLGY9RnAobCxuKSxtPTAsZz1wLmxlbmd0aDttPGc7KyttKShkPXBbbV0pJiZEcChkLGUsbixtLHAsZik7by5wdXNoKHApLGEucHVzaChsKX1yZXR1cm4gbmV3IGdmKG8sYSxlLG4pfSxmaWx0ZXI6ZnVuY3Rpb24ga2YodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVNjKHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGE9ZVtyXSxzPWEubGVuZ3RoLGw9aVtyXT1bXSxjPTA7YzxzOysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZsLnB1c2gobyk7cmV0dXJuIG5ldyBnZihpLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LG1lcmdlOmZ1bmN0aW9uIExmKHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IGdmKG8sdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uIFBmKCl7cmV0dXJuIG5ldyBjZih0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24gTmYoKXtmb3IodmFyIHQ9dGhpcy5fbmFtZSxlPXRoaXMuX2lkLG49eWYoKSxpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYylpZihhPXNbY10pe3ZhciB1PUZwKGEsZSk7RHAoYSx0LG4sYyxzLHt0aW1lOnUudGltZSt1LmRlbGF5K3UuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjp1LmR1cmF0aW9uLGVhc2U6dS5lYXNlfSl9cmV0dXJuIG5ldyBnZihpLHRoaXMuX3BhcmVudHMsdCxuKX0sY2FsbDp2Zi5jYWxsLG5vZGVzOnZmLm5vZGVzLG5vZGU6dmYubm9kZSxzaXplOnZmLnNpemUsZW1wdHk6dmYuZW1wdHksZWFjaDp2Zi5lYWNoLG9uOmZ1bmN0aW9uIElmKHQsZSl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9GcCh0aGlzLm5vZGUoKSxuKS5vbi5vbih0KTp0aGlzLmVhY2gobGYobix0LGUpKX0sYXR0cjpmdW5jdGlvbiBSZih0LGUpe3ZhciBuPW1jKHQpLGk9InRyYW5zZm9ybSI9PT1uP2VwOldwO3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LCJmdW5jdGlvbiI9PXR5cGVvZiBlPyhuLmxvY2FsP1pwOktwKShuLGksR3AodGhpcywiYXR0ci4iK3QsZSkpOm51bGw9PWU/KG4ubG9jYWw/WXA6cXApKG4pOihuLmxvY2FsPyRwOlhwKShuLGksZSkpfSxhdHRyVHdlZW46ZnVuY3Rpb24gT2YodCxlKXt2YXIgbj0iYXR0ci4iK3Q7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihuPXRoaXMudHdlZW4obikpJiZuLl92YWx1ZTtpZihudWxsPT1lKXJldHVybiB0aGlzLnR3ZWVuKG4sbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3ZhciBpPW1jKHQpO3JldHVybiB0aGlzLnR3ZWVuKG4sKGkubG9jYWw/dGY6ZWYpKGksZSkpfSxzdHlsZTpmdW5jdGlvbiB6Zih0LGUsbil7dmFyIGk9InRyYW5zZm9ybSI9PSh0Kz0iIik/UWQ6V3A7cmV0dXJuIG51bGw9PWU/dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHIodCxlKXt2YXIgbixpLHI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89SGModGhpcyx0KSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLEhjKHRoaXMsdCkpO3JldHVybiBvPT09YT9udWxsOm89PT1uJiZhPT09aT9yOnI9ZShuPW8saT1hKX19KSh0LGkpKS5vbigiZW5kLnN0eWxlLiIrdCx1Zih0KSk6ImZ1bmN0aW9uIj09dHlwZW9mIGU/dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIGEodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1IYyh0aGlzLHQpLHM9bih0aGlzKSxsPXMrIiI7cmV0dXJuIG51bGw9PXMmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLGw9cz1IYyh0aGlzLHQpKSxhPT09bD9udWxsOmE9PT1pJiZsPT09cj9vOihyPWwsbz1lKGk9YSxzKSl9fSkodCxpLEdwKHRoaXMsInN0eWxlLiIrdCxlKSkpLmVhY2goKGZ1bmN0aW9uIG8odCxlKXt2YXIgbixpLHIsbyxhPSJzdHlsZS4iK2Uscz0iZW5kLiIrYTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD1IcCh0aGlzLHQpLGM9bC5vbix1PW51bGw9PWwudmFsdWVbYV0/b3x8KG89dWYoZSkpOnZvaWQgMDtjPT09biYmcj09PXV8fChpPShuPWMpLmNvcHkoKSkub24ocyxyPXUpLGwub249aX19KSh0aGlzLl9pZCx0KSk6dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPUhjKHRoaXMsdCk7cmV0dXJuIGE9PT1vP251bGw6YT09PWk/cjpyPWUoaT1hLG4pfX0pKHQsaSxlKSxuKS5vbigiZW5kLnN0eWxlLiIrdCxudWxsKX0sc3R5bGVUd2VlbjpmdW5jdGlvbiBEZih0LGUsbil7dmFyIGk9InN0eWxlLiIrKHQrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGk9dGhpcy50d2VlbihpKSkmJmkuX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4oaSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oaSxkZih0LGUsbnVsbD09bj8iIjpuKSl9LHRleHQ6ZnVuY3Rpb24gQmYodCl7cmV0dXJuIHRoaXMudHdlZW4oInRleHQiLCJmdW5jdGlvbiI9PXR5cGVvZiB0PyhmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQodGhpcyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9fSkoR3AodGhpcywidGV4dCIsdCkpOihmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KShudWxsPT10PyIiOnQrIiIpKX0sdGV4dFR3ZWVuOmZ1bmN0aW9uIEhmKHQpe3ZhciBlPSJ0ZXh0IjtpZihhcmd1bWVudHMubGVuZ3RoPDEpcmV0dXJuKGU9dGhpcy50d2VlbihlKSkmJmUuX3ZhbHVlO2lmKG51bGw9PXQpcmV0dXJuIHRoaXMudHdlZW4oZSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oZSxmZih0KSl9LHJlbW92ZTpmdW5jdGlvbiBGZigpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtuIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19KSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiBWZih0LGUpe3ZhciBuPXRoaXMuX2lkO2lmKHQrPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBpLHI9RnAodGhpcy5ub2RlKCksbikudHdlZW4sbz0wLGE9ci5sZW5ndGg7bzxhOysrbylpZigoaT1yW29dKS5uYW1lPT09dClyZXR1cm4gaS52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP1VwOmpwKShuLHQsZSkpfSxkZWxheTpmdW5jdGlvbiBVZih0KXt2YXIgZT10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiB0P25mOnJmKShlLHQpKTpGcCh0aGlzLm5vZGUoKSxlKS5kZWxheX0sZHVyYXRpb246ZnVuY3Rpb24gamYodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9vZjphZikoZSx0KSk6RnAodGhpcy5ub2RlKCksZSkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24gR2YodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKHNmKGUsdCkpOkZwKHRoaXMubm9kZSgpLGUpLmVhc2V9LGVuZDpmdW5jdGlvbiBXZigpe3ZhciB0LGUsbj10aGlzLGk9bi5faWQscj1uLnNpemUoKTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG8sYSl7dmFyIHM9e3ZhbHVlOmF9LGw9e3ZhbHVlOmZ1bmN0aW9uKCl7MD09LS1yJiZvKCl9fTtuLmVhY2goKGZ1bmN0aW9uKCl7dmFyIG49SHAodGhpcyxpKSxyPW4ub247ciE9PXQmJigoZT0odD1yKS5jb3B5KCkpLl8uY2FuY2VsLnB1c2gocyksZS5fLmludGVycnVwdC5wdXNoKHMpLGUuXy5lbmQucHVzaChsKSksbi5vbj1lfSkpfSkpfX07dmFyIHFmPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIE1hdGgucG93KHQsZSl9cmV0dXJuIGU9K2Usbi5leHBvbmVudD10LG59KSgzKSxZZj0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiAxLU1hdGgucG93KDEtdCxlKX1yZXR1cm4gZT0rZSxuLmV4cG9uZW50PXQsbn0pKDMpLFhmPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuKCh0Kj0yKTw9MT9NYXRoLnBvdyh0LGUpOjItTWF0aC5wb3coMi10LGUpKS8yfXJldHVybiBlPStlLG4uZXhwb25lbnQ9dCxufSkoMyksJGY9TWF0aC5QSSxLZj0kZi8yO2Z1bmN0aW9uIFpmKHQpe3JldHVybiAxPT0rdD8xOjEtTWF0aC5jb3ModCpLZil9ZnVuY3Rpb24gSmYodCl7cmV0dXJuIE1hdGguc2luKHQqS2YpfWZ1bmN0aW9uIFFmKHQpe3JldHVybigxLU1hdGguY29zKCRmKnQpKS8yfWZ1bmN0aW9uIHRtKHQpe3JldHVybiAxLjAwMDk3NzUxNzEwNjU0OTQqKE1hdGgucG93KDIsLTEwKnQpLS4wMDA5NzY1NjI1KX1mdW5jdGlvbiBlbSh0KXtyZXR1cm4gdG0oMS0rdCl9ZnVuY3Rpb24gbm0odCl7cmV0dXJuIDEtdG0odCl9ZnVuY3Rpb24gaW0odCl7cmV0dXJuKCh0Kj0yKTw9MT90bSgxLXQpOjItdG0odC0xKSkvMn1mdW5jdGlvbiBybSh0KXtyZXR1cm4gMS1NYXRoLnNxcnQoMS10KnQpfWZ1bmN0aW9uIG9tKHQpe3JldHVybiBNYXRoLnNxcnQoMS0gLS10KnQpfWZ1bmN0aW9uIGFtKHQpe3JldHVybigodCo9Mik8PTE/MS1NYXRoLnNxcnQoMS10KnQpOk1hdGguc3FydCgxLSh0LT0yKSp0KSsxKS8yfXZhciBzbT03LjU2MjU7ZnVuY3Rpb24gbG0odCl7cmV0dXJuIDEtY20oMS10KX1mdW5jdGlvbiBjbSh0KXtyZXR1cm4odD0rdCk8LjM2MzYzNjM2MzYzNjM2MzY1P3NtKnQqdDp0PC43MjcyNzI3MjcyNzI3MjczP3NtKih0LT0uNTQ1NDU0NTQ1NDU0NTQ1NCkqdCsuNzU6dDwuOTA5MDkwOTA5MDkwOTA5MT9zbSoodC09LjgxODE4MTgxODE4MTgxODIpKnQrLjkzNzU6c20qKHQtPS45NTQ1NDU0NTQ1NDU0NTQ2KSp0Ky45ODQzNzV9ZnVuY3Rpb24gdW0odCl7cmV0dXJuKCh0Kj0yKTw9MT8xLWNtKDEtdCk6Y20odC0xKSsxKS8yfXZhciBobT0xLjcwMTU4LGRtPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuKHQ9K3QpKnQqKGUqKHQtMSkrdCl9cmV0dXJuIGU9K2Usbi5vdmVyc2hvb3Q9dCxufSkoaG0pLHBtPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuLS10KnQqKCh0KzEpKmUrdCkrMX1yZXR1cm4gZT0rZSxuLm92ZXJzaG9vdD10LG59KShobSksZm09KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4oKHQqPTIpPDE/dCp0KigoZSsxKSp0LWUpOih0LT0yKSp0KigoZSsxKSp0K2UpKzIpLzJ9cmV0dXJuIGU9K2Usbi5vdmVyc2hvb3Q9dCxufSkoaG0pLG1tPTIqTWF0aC5QSSxnbT0oZnVuY3Rpb24gdChlLG4pe3ZhciBpPU1hdGguYXNpbigxLyhlPU1hdGgubWF4KDEsZSkpKSoobi89bW0pO2Z1bmN0aW9uIHIodCl7cmV0dXJuIGUqdG0oLSAtLXQpKk1hdGguc2luKChpLXQpL24pfXJldHVybiByLmFtcGxpdHVkZT1mdW5jdGlvbihlKXtyZXR1cm4gdChlLG4qbW0pfSxyLnBlcmlvZD1mdW5jdGlvbihuKXtyZXR1cm4gdChlLG4pfSxyfSkoMSwuMyksX209KGZ1bmN0aW9uIHQoZSxuKXt2YXIgaT1NYXRoLmFzaW4oMS8oZT1NYXRoLm1heCgxLGUpKSkqKG4vPW1tKTtmdW5jdGlvbiByKHQpe3JldHVybiAxLWUqdG0odD0rdCkqTWF0aC5zaW4oKHQraSkvbil9cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKGUpe3JldHVybiB0KGUsbiptbSl9LHIucGVyaW9kPWZ1bmN0aW9uKG4pe3JldHVybiB0KGUsbil9LHJ9KSgxLC4zKSx5bT0oZnVuY3Rpb24gdChlLG4pe3ZhciBpPU1hdGguYXNpbigxLyhlPU1hdGgubWF4KDEsZSkpKSoobi89bW0pO2Z1bmN0aW9uIHIodCl7cmV0dXJuKCh0PTIqdC0xKTwwP2UqdG0oLXQpKk1hdGguc2luKChpLXQpL24pOjItZSp0bSh0KSpNYXRoLnNpbigoaSt0KS9uKSkvMn1yZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSxuKm1tKX0sci5wZXJpb2Q9ZnVuY3Rpb24obil7cmV0dXJuIHQoZSxuKX0scn0pKDEsLjMpLHZtPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGVhc2VMaW5lYXI6YmYsZWFzZVF1YWQ6U2YsZWFzZVF1YWRJbjp4ZixlYXNlUXVhZE91dDp3ZixlYXNlUXVhZEluT3V0OlNmLGVhc2VDdWJpYzpUZixlYXNlQ3ViaWNJbjpNZixlYXNlQ3ViaWNPdXQ6RWYsZWFzZUN1YmljSW5PdXQ6VGYsZWFzZVBvbHk6WGYsZWFzZVBvbHlJbjpxZixlYXNlUG9seU91dDpZZixlYXNlUG9seUluT3V0OlhmLGVhc2VTaW46UWYsZWFzZVNpbkluOlpmLGVhc2VTaW5PdXQ6SmYsZWFzZVNpbkluT3V0OlFmLGVhc2VFeHA6aW0sZWFzZUV4cEluOmVtLGVhc2VFeHBPdXQ6bm0sZWFzZUV4cEluT3V0OmltLGVhc2VDaXJjbGU6YW0sZWFzZUNpcmNsZUluOnJtLGVhc2VDaXJjbGVPdXQ6b20sZWFzZUNpcmNsZUluT3V0OmFtLGVhc2VCb3VuY2U6Y20sZWFzZUJvdW5jZUluOmxtLGVhc2VCb3VuY2VPdXQ6Y20sZWFzZUJvdW5jZUluT3V0OnVtLGVhc2VCYWNrOmZtLGVhc2VCYWNrSW46ZG0sZWFzZUJhY2tPdXQ6cG0sZWFzZUJhY2tJbk91dDpmbSxlYXNlRWxhc3RpYzpfbSxlYXNlRWxhc3RpY0luOmdtLGVhc2VFbGFzdGljT3V0Ol9tLGVhc2VFbGFzdGljSW5PdXQ6eW19KSxibT17dGltZTpudWxsLGRlbGF5OjAsZHVyYXRpb246MjUwLGVhc2U6VGZ9O2Z1bmN0aW9uIHhtKHQsZSl7Zm9yKHZhciBuOyEobj10Ll9fdHJhbnNpdGlvbil8fCEobj1uW2VdKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIGJtLnRpbWU9VHAoKSxibTtyZXR1cm4gbn13dS5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0aW9uIHdtKHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7VnAodGhpcyx0KX0pKX0sd3UucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24gU20odCl7dmFyIGUsbjt0IGluc3RhbmNlb2YgZ2Y/KGU9dC5faWQsdD10Ll9uYW1lKTooZT15ZigpLChuPWJtKS50aW1lPVRwKCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykoYT1zW2NdKSYmRHAoYSx0LGUsYyxzLG58fHhtKGEsZSkpO3JldHVybiBuZXcgZ2YoaSx0aGlzLl9wYXJlbnRzLHQsZSl9O3ZhciBNbT1bbnVsbF07ZnVuY3Rpb24gRW0odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIFRtKHQsZSxuKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1lLHRoaXMuc2VsZWN0aW9uPW59ZnVuY3Rpb24gQ20oKXt1dS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBBbSgpe3V1LnByZXZlbnREZWZhdWx0KCksdXUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9dmFyIGttPXtuYW1lOiJkcmFnIn0sTG09e25hbWU6InNwYWNlIn0sUG09e25hbWU6ImhhbmRsZSJ9LE5tPXtuYW1lOiJjZW50ZXIifTtmdW5jdGlvbiBJbSh0KXtyZXR1cm5bK3RbMF0sK3RbMV1dfWZ1bmN0aW9uIFJtKHQpe3JldHVybltJbSh0WzBdKSxJbSh0WzFdKV19ZnVuY3Rpb24gT20odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBsaChlLHV1LnRvdWNoZXMsdCl9fXZhciB6bT17bmFtZToieCIsaGFuZGxlczpbInciLCJlIl0ubWFwKEdtKSxpbnB1dDpmdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT10P251bGw6W1srdFswXSxlWzBdWzFdXSxbK3RbMV0sZVsxXVsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlt0WzBdWzBdLHRbMV1bMF1dfX0sRG09e25hbWU6InkiLGhhbmRsZXM6WyJuIiwicyJdLm1hcChHbSksaW5wdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD9udWxsOltbZVswXVswXSwrdFswXV0sW2VbMV1bMF0sK3RbMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVsxXSx0WzFdWzFdXX19LEJtPXtuYW1lOiJ4eSIsaGFuZGxlczpbIm4iLCJ3IiwiZSIsInMiLCJudyIsIm5lIiwic3ciLCJzZSJdLm1hcChHbSksaW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/bnVsbDpSbSh0KX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0fX0sSG09e292ZXJsYXk6ImNyb3NzaGFpciIsc2VsZWN0aW9uOiJtb3ZlIixuOiJucy1yZXNpemUiLGU6ImV3LXJlc2l6ZSIsczoibnMtcmVzaXplIix3OiJldy1yZXNpemUiLG53OiJud3NlLXJlc2l6ZSIsbmU6Im5lc3ctcmVzaXplIixzZToibndzZS1yZXNpemUiLHN3OiJuZXN3LXJlc2l6ZSJ9LEZtPXtlOiJ3Iix3OiJlIixudzoibmUiLG5lOiJudyIsc2U6InN3Iixzdzoic2UifSxWbT17bjoicyIsczoibiIsbnc6InN3IixuZToic2UiLHNlOiJuZSIsc3c6Im53In0sVW09e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOm51bGwsZToxLHM6bnVsbCx3Oi0xLG53Oi0xLG5lOjEsc2U6MSxzdzotMX0sam09e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOi0xLGU6bnVsbCxzOjEsdzpudWxsLG53Oi0xLG5lOi0xLHNlOjEsc3c6MX07ZnVuY3Rpb24gR20odCl7cmV0dXJue3R5cGU6dH19ZnVuY3Rpb24gV20oKXtyZXR1cm4hdXUuY3RybEtleSYmIXV1LmJ1dHRvbn1mdW5jdGlvbiBxbSgpe3ZhciB0PXRoaXMub3duZXJTVkdFbGVtZW50fHx0aGlzO3JldHVybiB0Lmhhc0F0dHJpYnV0ZSgidmlld0JveCIpP1tbKHQ9dC52aWV3Qm94LmJhc2VWYWwpLngsdC55XSxbdC54K3Qud2lkdGgsdC55K3QuaGVpZ2h0XV06W1swLDBdLFt0LndpZHRoLmJhc2VWYWwudmFsdWUsdC5oZWlnaHQuYmFzZVZhbC52YWx1ZV1dfWZ1bmN0aW9uIFltKCl7cmV0dXJuIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50c3x8Im9udG91Y2hzdGFydCJpbiB0aGlzfWZ1bmN0aW9uIFhtKHQpe2Zvcig7IXQuX19icnVzaDspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuO3JldHVybiB0Ll9fYnJ1c2h9ZnVuY3Rpb24gJG0odCl7cmV0dXJuIHRbMF1bMF09PT10WzFdWzBdfHx0WzBdWzFdPT09dFsxXVsxXX1mdW5jdGlvbiBLbSh0KXt2YXIgZT10Ll9fYnJ1c2g7cmV0dXJuIGU/ZS5kaW0ub3V0cHV0KGUuc2VsZWN0aW9uKTpudWxsfWZ1bmN0aW9uIFptKCl7cmV0dXJuIFFtKERtKX1mdW5jdGlvbiBKbSgpe3JldHVybiBRbShCbSl9ZnVuY3Rpb24gUW0odCl7dmFyIGUsbj1xbSxpPVdtLHI9WW0sbz0hMCxhPWxjKCJzdGFydCIsImJydXNoIiwiZW5kIikscz02O2Z1bmN0aW9uIGwoZSl7dmFyIG49ZS5wcm9wZXJ0eSgiX19icnVzaCIsbSkuc2VsZWN0QWxsKCIub3ZlcmxheSIpLmRhdGEoW0dtKCJvdmVybGF5IildKTtuLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJvdmVybGF5IikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5hdHRyKCJjdXJzb3IiLEhtLm92ZXJsYXkpLm1lcmdlKG4pLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9WG0odGhpcykuZXh0ZW50O1N1KHRoaXMpLmF0dHIoIngiLHRbMF1bMF0pLmF0dHIoInkiLHRbMF1bMV0pLmF0dHIoIndpZHRoIix0WzFdWzBdLXRbMF1bMF0pLmF0dHIoImhlaWdodCIsdFsxXVsxXS10WzBdWzFdKX0pKSxlLnNlbGVjdEFsbCgiLnNlbGVjdGlvbiIpLmRhdGEoW0dtKCJzZWxlY3Rpb24iKV0pLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJzZWxlY3Rpb24iKS5hdHRyKCJjdXJzb3IiLEhtLnNlbGVjdGlvbikuYXR0cigiZmlsbCIsIiM3NzciKS5hdHRyKCJmaWxsLW9wYWNpdHkiLC4zKS5hdHRyKCJzdHJva2UiLCIjZmZmIikuYXR0cigic2hhcGUtcmVuZGVyaW5nIiwiY3Jpc3BFZGdlcyIpO3ZhciBpPWUuc2VsZWN0QWxsKCIuaGFuZGxlIikuZGF0YSh0LmhhbmRsZXMsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KSk7aS5leGl0KCkucmVtb3ZlKCksaS5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwoZnVuY3Rpb24odCl7cmV0dXJuImhhbmRsZSBoYW5kbGUtLSIrdC50eXBlfSkpLmF0dHIoImN1cnNvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBIbVt0LnR5cGVdfSkpLGUuZWFjaChjKS5hdHRyKCJmaWxsIiwibm9uZSIpLmF0dHIoInBvaW50ZXItZXZlbnRzIiwiYWxsIikub24oIm1vdXNlZG93bi5icnVzaCIsZCkuZmlsdGVyKHIpLm9uKCJ0b3VjaHN0YXJ0LmJydXNoIixkKS5vbigidG91Y2htb3ZlLmJydXNoIixwKS5vbigidG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2giLGYpLnN0eWxlKCJ0b3VjaC1hY3Rpb24iLCJub25lIikuc3R5bGUoIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciIsInJnYmEoMCwwLDAsMCkiKX1mdW5jdGlvbiBjKCl7dmFyIHQ9U3UodGhpcyksZT1YbSh0aGlzKS5zZWxlY3Rpb247ZT8odC5zZWxlY3RBbGwoIi5zZWxlY3Rpb24iKS5zdHlsZSgiZGlzcGxheSIsbnVsbCkuYXR0cigieCIsZVswXVswXSkuYXR0cigieSIsZVswXVsxXSkuYXR0cigid2lkdGgiLGVbMV1bMF0tZVswXVswXSkuYXR0cigiaGVpZ2h0IixlWzFdWzFdLWVbMF1bMV0pLHQuc2VsZWN0QWxsKCIuaGFuZGxlIikuc3R5bGUoImRpc3BsYXkiLG51bGwpLmF0dHIoIngiLChmdW5jdGlvbih0KXtyZXR1cm4iZSI9PT10LnR5cGVbdC50eXBlLmxlbmd0aC0xXT9lWzFdWzBdLXMvMjplWzBdWzBdLXMvMn0pKS5hdHRyKCJ5IiwoZnVuY3Rpb24odCl7cmV0dXJuInMiPT09dC50eXBlWzBdP2VbMV1bMV0tcy8yOmVbMF1bMV0tcy8yfSkpLmF0dHIoIndpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIm4iPT09dC50eXBlfHwicyI9PT10LnR5cGU/ZVsxXVswXS1lWzBdWzBdK3M6c30pKS5hdHRyKCJoZWlnaHQiLChmdW5jdGlvbih0KXtyZXR1cm4iZSI9PT10LnR5cGV8fCJ3Ij09PXQudHlwZT9lWzFdWzFdLWVbMF1bMV0rczpzfSkpKTp0LnNlbGVjdEFsbCgiLnNlbGVjdGlvbiwuaGFuZGxlIikuc3R5bGUoImRpc3BsYXkiLCJub25lIikuYXR0cigieCIsbnVsbCkuYXR0cigieSIsbnVsbCkuYXR0cigid2lkdGgiLG51bGwpLmF0dHIoImhlaWdodCIsbnVsbCl9ZnVuY3Rpb24gdSh0LGUsbil7dmFyIGk9dC5fX2JydXNoLmVtaXR0ZXI7cmV0dXJuIWl8fG4mJmkuY2xlYW4/bmV3IGgodCxlLG4pOml9ZnVuY3Rpb24gaCh0LGUsbil7dGhpcy50aGF0PXQsdGhpcy5hcmdzPWUsdGhpcy5zdGF0ZT10Ll9fYnJ1c2gsdGhpcy5hY3RpdmU9MCx0aGlzLmNsZWFuPW59ZnVuY3Rpb24gZCgpe2lmKCghZXx8dXUudG91Y2hlcykmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbixyLGEscyxsLGgsZCxwLGYsbSxnLF89dGhpcyx5PXV1LnRhcmdldC5fX2RhdGFfXy50eXBlLHY9InNlbGVjdGlvbiI9PT0obyYmdXUubWV0YUtleT95PSJvdmVybGF5Ijp5KT9rbTpvJiZ1dS5hbHRLZXk/Tm06UG0sYj10PT09RG0/bnVsbDpVbVt5XSx4PXQ9PT16bT9udWxsOmptW3ldLHc9WG0oXyksUz13LmV4dGVudCxNPXcuc2VsZWN0aW9uLEU9U1swXVswXSxUPVNbMF1bMV0sQz1TWzFdWzBdLEE9U1sxXVsxXSxrPTAsTD0wLFA9YiYmeCYmbyYmdXUuc2hpZnRLZXksTj11dS50b3VjaGVzP09tKHV1LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIpOmFoLEk9TihfKSxSPUksTz11KF8sYXJndW1lbnRzLCEwKS5iZWZvcmVzdGFydCgpOyJvdmVybGF5Ij09PXk/KE0mJihmPSEwKSx3LnNlbGVjdGlvbj1NPVtbbj10PT09RG0/RTpJWzBdLGE9dD09PXptP1Q6SVsxXV0sW2w9dD09PURtP0M6bixkPXQ9PT16bT9BOmFdXSk6KG49TVswXVswXSxhPU1bMF1bMV0sbD1NWzFdWzBdLGQ9TVsxXVsxXSkscj1uLHM9YSxoPWwscD1kO3ZhciB6PVN1KF8pLmF0dHIoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpLEQ9ei5zZWxlY3RBbGwoIi5vdmVybGF5IikuYXR0cigiY3Vyc29yIixIbVt5XSk7aWYodXUudG91Y2hlcylPLm1vdmVkPUgsTy5lbmRlZD1WO2Vsc2V7dmFyIEI9U3UodXUudmlldykub24oIm1vdXNlbW92ZS5icnVzaCIsSCwhMCkub24oIm1vdXNldXAuYnJ1c2giLFYsITApO28mJkIub24oImtleWRvd24uYnJ1c2giLFUsITApLm9uKCJrZXl1cC5icnVzaCIsaiwhMCksaGgodXUudmlldyl9Q20oKSxWcChfKSxjLmNhbGwoXyksTy5zdGFydCgpfWZ1bmN0aW9uIEgoKXt2YXIgdD1OKF8pOyFQfHxtfHxnfHwoTWF0aC5hYnModFswXS1SWzBdKT5NYXRoLmFicyh0WzFdLVJbMV0pP2c9ITA6bT0hMCksUj10LGY9ITAsQW0oKSxGKCl9ZnVuY3Rpb24gRigpe3ZhciB0O3N3aXRjaChrPVJbMF0tSVswXSxMPVJbMV0tSVsxXSx2KXtjYXNlIExtOmNhc2Uga206YiYmKGs9TWF0aC5tYXgoRS1uLE1hdGgubWluKEMtbCxrKSkscj1uK2ssaD1sK2spLHgmJihMPU1hdGgubWF4KFQtYSxNYXRoLm1pbihBLWQsTCkpLHM9YStMLHA9ZCtMKTticmVhaztjYXNlIFBtOmI8MD8oaz1NYXRoLm1heChFLW4sTWF0aC5taW4oQy1uLGspKSxyPW4rayxoPWwpOmI+MCYmKGs9TWF0aC5tYXgoRS1sLE1hdGgubWluKEMtbCxrKSkscj1uLGg9bCtrKSx4PDA/KEw9TWF0aC5tYXgoVC1hLE1hdGgubWluKEEtYSxMKSkscz1hK0wscD1kKTp4PjAmJihMPU1hdGgubWF4KFQtZCxNYXRoLm1pbihBLWQsTCkpLHM9YSxwPWQrTCk7YnJlYWs7Y2FzZSBObTpiJiYocj1NYXRoLm1heChFLE1hdGgubWluKEMsbi1rKmIpKSxoPU1hdGgubWF4KEUsTWF0aC5taW4oQyxsK2sqYikpKSx4JiYocz1NYXRoLm1heChULE1hdGgubWluKEEsYS1MKngpKSxwPU1hdGgubWF4KFQsTWF0aC5taW4oQSxkK0wqeCkpKX1oPHImJihiKj0tMSx0PW4sbj1sLGw9dCx0PXIscj1oLGg9dCx5IGluIEZtJiZELmF0dHIoImN1cnNvciIsSG1beT1GbVt5XV0pKSxwPHMmJih4Kj0tMSx0PWEsYT1kLGQ9dCx0PXMscz1wLHA9dCx5IGluIFZtJiZELmF0dHIoImN1cnNvciIsSG1beT1WbVt5XV0pKSx3LnNlbGVjdGlvbiYmKE09dy5zZWxlY3Rpb24pLG0mJihyPU1bMF1bMF0saD1NWzFdWzBdKSxnJiYocz1NWzBdWzFdLHA9TVsxXVsxXSksTVswXVswXT09PXImJk1bMF1bMV09PT1zJiZNWzFdWzBdPT09aCYmTVsxXVsxXT09PXB8fCh3LnNlbGVjdGlvbj1bW3Isc10sW2gscF1dLGMuY2FsbChfKSxPLmJydXNoKCkpfWZ1bmN0aW9uIFYoKXtpZihDbSgpLHV1LnRvdWNoZXMpe2lmKHV1LnRvdWNoZXMubGVuZ3RoKXJldHVybjtlJiZjbGVhclRpbWVvdXQoZSksZT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2U9bnVsbH0pLDUwMCl9ZWxzZSBkaCh1dS52aWV3LGYpLEIub24oImtleWRvd24uYnJ1c2gga2V5dXAuYnJ1c2ggbW91c2Vtb3ZlLmJydXNoIG1vdXNldXAuYnJ1c2giLG51bGwpO3ouYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKSxELmF0dHIoImN1cnNvciIsSG0ub3ZlcmxheSksdy5zZWxlY3Rpb24mJihNPXcuc2VsZWN0aW9uKSwkbShNKSYmKHcuc2VsZWN0aW9uPW51bGwsYy5jYWxsKF8pKSxPLmVuZCgpfWZ1bmN0aW9uIFUoKXtzd2l0Y2godXUua2V5Q29kZSl7Y2FzZSAxNjpQPWImJng7YnJlYWs7Y2FzZSAxODp2PT09UG0mJihiJiYobD1oLWsqYixuPXIraypiKSx4JiYoZD1wLUwqeCxhPXMrTCp4KSx2PU5tLEYoKSk7YnJlYWs7Y2FzZSAzMjp2IT09UG0mJnYhPT1ObXx8KGI8MD9sPWgtazpiPjAmJihuPXItaykseDwwP2Q9cC1MOng+MCYmKGE9cy1MKSx2PUxtLEQuYXR0cigiY3Vyc29yIixIbS5zZWxlY3Rpb24pLEYoKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59QW0oKX1mdW5jdGlvbiBqKCl7c3dpdGNoKHV1LmtleUNvZGUpe2Nhc2UgMTY6UCYmKG09Zz1QPSExLEYoKSk7YnJlYWs7Y2FzZSAxODp2PT09Tm0mJihiPDA/bD1oOmI+MCYmKG49cikseDwwP2Q9cDp4PjAmJihhPXMpLHY9UG0sRigpKTticmVhaztjYXNlIDMyOnY9PT1MbSYmKHV1LmFsdEtleT8oYiYmKGw9aC1rKmIsbj1yK2sqYikseCYmKGQ9cC1MKngsYT1zK0wqeCksdj1ObSk6KGI8MD9sPWg6Yj4wJiYobj1yKSx4PDA/ZD1wOng+MCYmKGE9cyksdj1QbSksRC5hdHRyKCJjdXJzb3IiLEhtW3ldKSxGKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufUFtKCl9fWZ1bmN0aW9uIHAoKXt1KHRoaXMsYXJndW1lbnRzKS5tb3ZlZCgpfWZ1bmN0aW9uIGYoKXt1KHRoaXMsYXJndW1lbnRzKS5lbmRlZCgpfWZ1bmN0aW9uIG0oKXt2YXIgZT10aGlzLl9fYnJ1c2h8fHtzZWxlY3Rpb246bnVsbH07cmV0dXJuIGUuZXh0ZW50PVJtKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKSxlLmRpbT10LGV9cmV0dXJuIGwubW92ZT1mdW5jdGlvbihlLG4pe2Uuc2VsZWN0aW9uP2Uub24oInN0YXJ0LmJydXNoIiwoZnVuY3Rpb24oKXt1KHRoaXMsYXJndW1lbnRzKS5iZWZvcmVzdGFydCgpLnN0YXJ0KCl9KSkub24oImludGVycnVwdC5icnVzaCBlbmQuYnJ1c2giLChmdW5jdGlvbigpe3UodGhpcyxhcmd1bWVudHMpLmVuZCgpfSkpLnR3ZWVuKCJicnVzaCIsKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxpPWUuX19icnVzaCxyPXUoZSxhcmd1bWVudHMpLG89aS5zZWxlY3Rpb24sYT10LmlucHV0KCJmdW5jdGlvbiI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOm4saS5leHRlbnQpLHM9amQobyxhKTtmdW5jdGlvbiBsKHQpe2kuc2VsZWN0aW9uPTE9PT10JiZudWxsPT09YT9udWxsOnModCksYy5jYWxsKGUpLHIuYnJ1c2goKX1yZXR1cm4gbnVsbCE9PW8mJm51bGwhPT1hP2w6bCgxKX0pKTplLmVhY2goKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxpPWFyZ3VtZW50cyxyPWUuX19icnVzaCxvPXQuaW5wdXQoImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseShlLGkpOm4sci5leHRlbnQpLGE9dShlLGkpLmJlZm9yZXN0YXJ0KCk7VnAoZSksci5zZWxlY3Rpb249bnVsbD09PW8/bnVsbDpvLGMuY2FsbChlKSxhLnN0YXJ0KCkuYnJ1c2goKS5lbmQoKX0pKX0sbC5jbGVhcj1mdW5jdGlvbih0KXtsLm1vdmUodCxudWxsKX0saC5wcm90b3R5cGU9e2JlZm9yZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLnN0YXRlLmVtaXR0ZXI9dGhpcyx0aGlzLnN0YXJ0aW5nPSEwKSx0aGlzfSxzdGFydDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0aW5nPyh0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdCgic3RhcnQiKSk6dGhpcy5lbWl0KCJicnVzaCIpLHRoaXN9LGJydXNoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1pdCgiYnJ1c2giKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbihlKXtndShuZXcgVG0obCxlLHQub3V0cHV0KHRoaXMuc3RhdGUuc2VsZWN0aW9uKSksYS5hcHBseSxhLFtlLHRoaXMudGhhdCx0aGlzLmFyZ3NdKX19LGwuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RW0oUm0odCkpLGwpOm59LGwuZmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RW0oISF0KSxsKTppfSxsLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkVtKCEhdCksbCk6cn0sbC5oYW5kbGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LGwpOnN9LGwua2V5TW9kaWZpZXJzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSEhdCxsKTpvfSxsLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9YS5vbi5hcHBseShhLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1hP2w6dH0sbH12YXIgdGc9TWF0aC5jb3MsZWc9TWF0aC5zaW4sbmc9TWF0aC5QSSxpZz1uZy8yLHJnPTIqbmcsb2c9TWF0aC5tYXg7ZnVuY3Rpb24gYWcodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQoZS5zb3VyY2UudmFsdWUrZS50YXJnZXQudmFsdWUsbi5zb3VyY2UudmFsdWUrbi50YXJnZXQudmFsdWUpfX12YXIgc2c9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIGxnKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX12YXIgY2c9TWF0aC5QSSx1Zz0yKmNnLGhnPTFlLTYsZGc9dWctaGc7ZnVuY3Rpb24gcGcoKXt0aGlzLl94MD10aGlzLl95MD10aGlzLl94MT10aGlzLl95MT1udWxsLHRoaXMuXz0iIn1mdW5jdGlvbiBmZygpe3JldHVybiBuZXcgcGd9ZnVuY3Rpb24gbWcodCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIGdnKHQpe3JldHVybiB0LnRhcmdldH1mdW5jdGlvbiBfZyh0KXtyZXR1cm4gdC5yYWRpdXN9ZnVuY3Rpb24geWcodCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiB2Zyh0KXtyZXR1cm4gdC5lbmRBbmdsZX1wZy5wcm90b3R5cGU9ZmcucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpwZyxtb3ZlVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K3QpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K2UpfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5feDEmJih0aGlzLl94MT10aGlzLl94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl8rPSJaIil9LGxpbmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuXys9IkwiKyh0aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MT0rZSl9LHF1YWRyYXRpY0N1cnZlVG86ZnVuY3Rpb24odCxlLG4saSl7dGhpcy5fKz0iUSIrICt0KyIsIisgK2UrIiwiKyh0aGlzLl94MT0rbikrIiwiKyh0aGlzLl95MT0raSl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxlLG4saSxyLG8pe3RoaXMuXys9IkMiKyArdCsiLCIrICtlKyIsIisgK24rIiwiKyAraSsiLCIrKHRoaXMuX3gxPStyKSsiLCIrKHRoaXMuX3kxPStvKX0sYXJjVG86ZnVuY3Rpb24odCxlLG4saSxyKXt2YXIgbz10aGlzLl94MSxhPXRoaXMuX3kxLHM9KG49K24pLSh0PSt0KSxsPShpPStpKS0oZT0rZSksYz1vLXQsdT1hLWUsaD1jKmMrdSp1O2lmKChyPStyKTwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK3IpO2lmKG51bGw9PT10aGlzLl94MSl0aGlzLl8rPSJNIisodGhpcy5feDE9dCkrIiwiKyh0aGlzLl95MT1lKTtlbHNlIGlmKGg+aGcpaWYoTWF0aC5hYnModSpzLWwqYyk+aGcmJnIpe3ZhciBkPW4tbyxwPWktYSxmPXMqcytsKmwsbT1kKmQrcCpwLGc9TWF0aC5zcXJ0KGYpLF89TWF0aC5zcXJ0KGgpLHk9cipNYXRoLnRhbigoY2ctTWF0aC5hY29zKChmK2gtbSkvKDIqZypfKSkpLzIpLHY9eS9fLGI9eS9nO01hdGguYWJzKHYtMSk+aGcmJih0aGlzLl8rPSJMIisodCt2KmMpKyIsIisoZSt2KnUpKSx0aGlzLl8rPSJBIityKyIsIityKyIsMCwwLCIrICsodSpkPmMqcCkrIiwiKyh0aGlzLl94MT10K2IqcykrIiwiKyh0aGlzLl95MT1lK2IqbCl9ZWxzZSB0aGlzLl8rPSJMIisodGhpcy5feDE9dCkrIiwiKyh0aGlzLl95MT1lKX0sYXJjOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt0PSt0LGU9K2Usbz0hIW87dmFyIGE9KG49K24pKk1hdGguY29zKGkpLHM9bipNYXRoLnNpbihpKSxsPXQrYSxjPWUrcyx1PTFebyxoPW8/aS1yOnItaTtpZihuPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIrbik7bnVsbD09PXRoaXMuX3gxP3RoaXMuXys9Ik0iK2wrIiwiK2M6KE1hdGguYWJzKHRoaXMuX3gxLWwpPmhnfHxNYXRoLmFicyh0aGlzLl95MS1jKT5oZykmJih0aGlzLl8rPSJMIitsKyIsIitjKSxuJiYoaDwwJiYoaD1oJXVnK3VnKSxoPmRnP3RoaXMuXys9IkEiK24rIiwiK24rIiwwLDEsIit1KyIsIisodC1hKSsiLCIrKGUtcykrIkEiK24rIiwiK24rIiwwLDEsIit1KyIsIisodGhpcy5feDE9bCkrIiwiKyh0aGlzLl95MT1jKTpoPmhnJiYodGhpcy5fKz0iQSIrbisiLCIrbisiLDAsIisgKyhoPj1jZykrIiwiK3UrIiwiKyh0aGlzLl94MT10K24qTWF0aC5jb3MocikpKyIsIisodGhpcy5feTE9ZStuKk1hdGguc2luKHIpKSkpfSxyZWN0OmZ1bmN0aW9uKHQsZSxuLGkpe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rZSkrImgiKyArbisidiIrICtpKyJoIistbisiWiJ9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX319O3ZhciBiZz0iJCI7ZnVuY3Rpb24geGcoKXt9ZnVuY3Rpb24gd2codCxlKXt2YXIgbj1uZXcgeGc7aWYodCBpbnN0YW5jZW9mIHhnKXQuZWFjaCgoZnVuY3Rpb24odCxlKXtuLnNldChlLHQpfSkpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGkscj0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PWUpZm9yKDsrK3I8bzspbi5zZXQocix0W3JdKTtlbHNlIGZvcig7KytyPG87KW4uc2V0KGUoaT10W3JdLHIsdCksaSl9ZWxzZSBpZih0KWZvcih2YXIgYSBpbiB0KW4uc2V0KGEsdFthXSk7cmV0dXJuIG59ZnVuY3Rpb24gU2coKXtyZXR1cm57fX1mdW5jdGlvbiBNZyh0LGUsbil7dFtlXT1ufWZ1bmN0aW9uIEVnKCl7cmV0dXJuIHdnKCl9ZnVuY3Rpb24gVGcodCxlLG4pe3Quc2V0KGUsbil9ZnVuY3Rpb24gQ2coKXt9eGcucHJvdG90eXBlPXdnLnByb3RvdHlwZT17Y29uc3RydWN0b3I6eGcsaGFzOmZ1bmN0aW9uKHQpe3JldHVybiBiZyt0IGluIHRoaXN9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1tiZyt0XX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXNbYmcrdF09ZSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9YmcrdDtyZXR1cm4gZSBpbiB0aGlzJiZkZWxldGUgdGhpc1tlXX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09YmcmJmRlbGV0ZSB0aGlzW3RdfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PWJnJiZ0LnB1c2goZS5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1iZyYmdC5wdXNoKHRoaXNbZV0pO3JldHVybiB0fSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PWJnJiZ0LnB1c2goe2tleTplLnNsaWNlKDEpLHZhbHVlOnRoaXNbZV19KTtyZXR1cm4gdH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PWJnJiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYodFswXT09PWJnKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1iZyYmdCh0aGlzW2VdLGUuc2xpY2UoMSksdGhpcyl9fTt2YXIgQWc9d2cucHJvdG90eXBlO2Z1bmN0aW9uIGtnKHQsZSl7dmFyIG49bmV3IENnO2lmKHQgaW5zdGFuY2VvZiBDZyl0LmVhY2goKGZ1bmN0aW9uKHQpe24uYWRkKHQpfSkpO2Vsc2UgaWYodCl7dmFyIGk9LTEscj10Lmxlbmd0aDtpZihudWxsPT1lKWZvcig7KytpPHI7KW4uYWRkKHRbaV0pO2Vsc2UgZm9yKDsrK2k8cjspbi5hZGQoZSh0W2ldLGksdCkpfXJldHVybiBufWZ1bmN0aW9uIExnKHQpe3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaChuKTtyZXR1cm4gZX1DZy5wcm90b3R5cGU9a2cucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpDZyxoYXM6QWcuaGFzLGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1tiZysodCs9IiIpXT10LHRoaXN9LHJlbW92ZTpBZy5yZW1vdmUsY2xlYXI6QWcuY2xlYXIsdmFsdWVzOkFnLmtleXMsc2l6ZTpBZy5zaXplLGVtcHR5OkFnLmVtcHR5LGVhY2g6QWcuZWFjaH07dmFyIFBnPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBOZyh0LGUpe3JldHVybiB0LWV9ZnVuY3Rpb24gSWcodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIFJnKHQsZSl7Zm9yKHZhciBuLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspaWYobj1PZyh0LGVbaV0pKXJldHVybiBuO3JldHVybiAwfWZ1bmN0aW9uIE9nKHQsZSl7Zm9yKHZhciBuPWVbMF0saT1lWzFdLHI9LTEsbz0wLGE9dC5sZW5ndGgscz1hLTE7bzxhO3M9bysrKXt2YXIgbD10W29dLGM9bFswXSx1PWxbMV0saD10W3NdLGQ9aFswXSxwPWhbMV07aWYoemcobCxoLGUpKXJldHVybiAwO3U+aSE9cD5pJiZuPChkLWMpKihpLXUpLyhwLXUpK2MmJihyPS1yKX1yZXR1cm4gcn1mdW5jdGlvbiB6Zyh0LGUsbil7dmFyIGk7cmV0dXJuKGZ1bmN0aW9uIHIodCxlLG4pe3JldHVybihlWzBdLXRbMF0pKihuWzFdLXRbMV0pPT0oblswXS10WzBdKSooZVsxXS10WzFdKX0pKHQsZSxuKSYmKGZ1bmN0aW9uIG8odCxlLG4pe3JldHVybiB0PD1lJiZlPD1ufHxuPD1lJiZlPD10fSkodFtpPSsodFswXT09PWVbMF0pXSxuW2ldLGVbaV0pfWZ1bmN0aW9uIERnKCl7fXZhciBCZz1bW10sW1tbMSwxLjVdLFsuNSwxXV1dLFtbWzEuNSwxXSxbMSwxLjVdXV0sW1tbMS41LDFdLFsuNSwxXV1dLFtbWzEsLjVdLFsxLjUsMV1dXSxbW1sxLDEuNV0sWy41LDFdXSxbWzEsLjVdLFsxLjUsMV1dXSxbW1sxLC41XSxbMSwxLjVdXV0sW1tbMSwuNV0sWy41LDFdXV0sW1tbLjUsMV0sWzEsLjVdXV0sW1tbMSwxLjVdLFsxLC41XV1dLFtbWy41LDFdLFsxLC41XV0sW1sxLjUsMV0sWzEsMS41XV1dLFtbWzEuNSwxXSxbMSwuNV1dXSxbW1suNSwxXSxbMS41LDFdXV0sW1tbMSwxLjVdLFsxLjUsMV1dXSxbW1suNSwxXSxbMSwxLjVdXV0sW11dO2Z1bmN0aW9uIEhnKCl7dmFyIHQ9MSxlPTEsbj1qbCxpPXM7ZnVuY3Rpb24gcih0KXt2YXIgZT1uKHQpO2lmKEFycmF5LmlzQXJyYXkoZSkpZT1lLnNsaWNlKCkuc29ydChOZyk7ZWxzZXt2YXIgaT1MbCh0KSxyPWlbMF0sYT1pWzFdO2U9VWwocixhLGUpLGU9emwoTWF0aC5mbG9vcihyL2UpKmUsTWF0aC5mbG9vcihhL2UpKmUsZSl9cmV0dXJuIGUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbyh0LGUpfSkpfWZ1bmN0aW9uIG8obixyKXt2YXIgbz1bXSxzPVtdO3JldHVybihmdW5jdGlvbiBsKG4saSxyKXt2YXIgbyxzLGwsYyx1LGg9bmV3IEFycmF5LGQ9bmV3IEFycmF5O2ZvcihvPXM9LTEsQmdbKGw9blswXT49aSk8PDFdLmZvckVhY2gocCk7KytvPHQtMTspQmdbbHwobD1uW28rMV0+PWkpPDwxXS5mb3JFYWNoKHApO2ZvcihCZ1tsPDwwXS5mb3JFYWNoKHApOysrczxlLTE7KXtmb3Iobz0tMSxCZ1sobD1uW3MqdCt0XT49aSk8PDF8KGM9bltzKnRdPj1pKTw8Ml0uZm9yRWFjaChwKTsrK288dC0xOyl1PWMsQmdbbHwobD1uW3MqdCt0K28rMV0+PWkpPDwxfChjPW5bcyp0K28rMV0+PWkpPDwyfHU8PDNdLmZvckVhY2gocCk7QmdbbHxjPDwzXS5mb3JFYWNoKHApfWZvcihvPS0xLEJnWyhjPW5bcyp0XT49aSk8PDJdLmZvckVhY2gocCk7KytvPHQtMTspdT1jLEJnWyhjPW5bcyp0K28rMV0+PWkpPDwyfHU8PDNdLmZvckVhY2gocCk7ZnVuY3Rpb24gcCh0KXt2YXIgZSxuLGk9W3RbMF1bMF0rbyx0WzBdWzFdK3NdLGw9W3RbMV1bMF0rbyx0WzFdWzFdK3NdLGM9YShpKSx1PWEobCk7KGU9ZFtjXSk/KG49aFt1XSk/KGRlbGV0ZSBkW2UuZW5kXSxkZWxldGUgaFtuLnN0YXJ0XSxlPT09bj8oZS5yaW5nLnB1c2gobCkscihlLnJpbmcpKTpoW2Uuc3RhcnRdPWRbbi5lbmRdPXtzdGFydDplLnN0YXJ0LGVuZDpuLmVuZCxyaW5nOmUucmluZy5jb25jYXQobi5yaW5nKX0pOihkZWxldGUgZFtlLmVuZF0sZS5yaW5nLnB1c2gobCksZFtlLmVuZD11XT1lKTooZT1oW3VdKT8obj1kW2NdKT8oZGVsZXRlIGhbZS5zdGFydF0sZGVsZXRlIGRbbi5lbmRdLGU9PT1uPyhlLnJpbmcucHVzaChsKSxyKGUucmluZykpOmhbbi5zdGFydF09ZFtlLmVuZF09e3N0YXJ0Om4uc3RhcnQsZW5kOmUuZW5kLHJpbmc6bi5yaW5nLmNvbmNhdChlLnJpbmcpfSk6KGRlbGV0ZSBoW2Uuc3RhcnRdLGUucmluZy51bnNoaWZ0KGkpLGhbZS5zdGFydD1jXT1lKTpoW2NdPWRbdV09e3N0YXJ0OmMsZW5kOnUscmluZzpbaSxsXX19QmdbYzw8M10uZm9yRWFjaChwKX0pKG4sciwoZnVuY3Rpb24odCl7aSh0LG4sciksKGZ1bmN0aW9uIGUodCl7Zm9yKHZhciBlPTAsbj10Lmxlbmd0aCxpPXRbbi0xXVsxXSp0WzBdWzBdLXRbbi0xXVswXSp0WzBdWzFdOysrZTxuOylpKz10W2UtMV1bMV0qdFtlXVswXS10W2UtMV1bMF0qdFtlXVsxXTtyZXR1cm4gaX0pKHQpPjA/by5wdXNoKFt0XSk6cy5wdXNoKHQpfSkpLHMuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MCxpPW8ubGVuZ3RoO248aTsrK24paWYoLTEhPT1SZygoZT1vW25dKVswXSx0KSlyZXR1cm4gdm9pZCBlLnB1c2godCl9KSkse3R5cGU6Ik11bHRpUG9seWdvbiIsdmFsdWU6cixjb29yZGluYXRlczpvfX1mdW5jdGlvbiBhKGUpe3JldHVybiAyKmVbMF0rZVsxXSoodCsxKSo0fWZ1bmN0aW9uIHMobixpLHIpe24uZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIG8sYT1uWzBdLHM9blsxXSxsPTB8YSxjPTB8cyx1PWlbYyp0K2xdO2E+MCYmYTx0JiZsPT09YSYmKG5bMF09YSsoci0obz1pW2MqdCtsLTFdKSkvKHUtbyktLjUpLHM+MCYmczxlJiZjPT09cyYmKG5bMV09cysoci0obz1pWyhjLTEpKnQrbF0pKS8odS1vKS0uNSl9KSl9cmV0dXJuIHIuY29udG91cj1vLHIuc2l6ZT1mdW5jdGlvbihuKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5bdCxlXTt2YXIgaT1NYXRoLmNlaWwoblswXSksbz1NYXRoLmNlaWwoblsxXSk7aWYoIShpPjAmJm8+MCkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHNpemUiKTtyZXR1cm4gdD1pLGU9byxyfSxyLnRocmVzaG9sZHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpBcnJheS5pc0FycmF5KHQpP0lnKFBnLmNhbGwodCkpOklnKHQpLHIpOm59LHIuc21vb3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQ/czpEZyxyKTppPT09c30scn1mdW5jdGlvbiBGZyh0LGUsbil7Zm9yKHZhciBpPXQud2lkdGgscj10LmhlaWdodCxvPTErKG48PDEpLGE9MDthPHI7KythKWZvcih2YXIgcz0wLGw9MDtzPGkrbjsrK3MpczxpJiYobCs9dC5kYXRhW3MrYSppXSkscz49biYmKHM+PW8mJihsLT10LmRhdGFbcy1vK2EqaV0pLGUuZGF0YVtzLW4rYSppXT1sL01hdGgubWluKHMrMSxpLTErby1zLG8pKX1mdW5jdGlvbiBWZyh0LGUsbil7Zm9yKHZhciBpPXQud2lkdGgscj10LmhlaWdodCxvPTErKG48PDEpLGE9MDthPGk7KythKWZvcih2YXIgcz0wLGw9MDtzPHIrbjsrK3MpczxyJiYobCs9dC5kYXRhW2ErcyppXSkscz49biYmKHM+PW8mJihsLT10LmRhdGFbYSsocy1vKSppXSksZS5kYXRhW2ErKHMtbikqaV09bC9NYXRoLm1pbihzKzEsci0xK28tcyxvKSl9ZnVuY3Rpb24gVWcodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gamcodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gR2coKXtyZXR1cm4gMX12YXIgV2c9e30scWc9e307ZnVuY3Rpb24gWWcodCl7cmV0dXJuIG5ldyBGdW5jdGlvbigiZCIsInJldHVybiB7Iit0Lm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCkrIjogZFsiK2UrJ10gfHwgIiInfSkpLmpvaW4oIiwiKSsifSIpfWZ1bmN0aW9uIFhnKHQpe3ZhciBlPU9iamVjdC5jcmVhdGUobnVsbCksbj1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtmb3IodmFyIGkgaW4gdClpIGluIGV8fG4ucHVzaChlW2ldPWkpfSkpLG59ZnVuY3Rpb24gJGcodCxlKXt2YXIgbj10KyIiLGk9bi5sZW5ndGg7cmV0dXJuIGk8ZT9uZXcgQXJyYXkoZS1pKzEpLmpvaW4oMCkrbjpufWZ1bmN0aW9uIEtnKHQpe3ZhciBlPW5ldyBSZWdFeHAoJ1siJyt0KyJcblxyXSIpLG49dC5jaGFyQ29kZUF0KDApO2Z1bmN0aW9uIGkodCxlKXt2YXIgaSxyPVtdLG89dC5sZW5ndGgsYT0wLHM9MCxsPW88PTAsYz0hMTtmdW5jdGlvbiB1KCl7aWYobClyZXR1cm4gcWc7aWYoYylyZXR1cm4gYz0hMSxXZzt2YXIgZSxpLHI9YTtpZigzND09PXQuY2hhckNvZGVBdChyKSl7Zm9yKDthKys8byYmMzQhPT10LmNoYXJDb2RlQXQoYSl8fDM0PT09dC5jaGFyQ29kZUF0KCsrYSk7KTtyZXR1cm4oZT1hKT49bz9sPSEwOjEwPT09KGk9dC5jaGFyQ29kZUF0KGErKykpP2M9ITA6MTM9PT1pJiYoYz0hMCwxMD09PXQuY2hhckNvZGVBdChhKSYmKythKSx0LnNsaWNlKHIrMSxlLTEpLnJlcGxhY2UoLyIiL2csJyInKX1mb3IoO2E8bzspe2lmKDEwPT09KGk9dC5jaGFyQ29kZUF0KGU9YSsrKSkpYz0hMDtlbHNlIGlmKDEzPT09aSljPSEwLDEwPT09dC5jaGFyQ29kZUF0KGEpJiYrK2E7ZWxzZSBpZihpIT09biljb250aW51ZTtyZXR1cm4gdC5zbGljZShyLGUpfXJldHVybiBsPSEwLHQuc2xpY2UocixvKX1mb3IoMTA9PT10LmNoYXJDb2RlQXQoby0xKSYmLS1vLDEzPT09dC5jaGFyQ29kZUF0KG8tMSkmJi0tbzsoaT11KCkpIT09cWc7KXtmb3IodmFyIGg9W107aSE9PVdnJiZpIT09cWc7KWgucHVzaChpKSxpPXUoKTtlJiZudWxsPT0oaD1lKGgscysrKSl8fHIucHVzaChoKX1yZXR1cm4gcn1mdW5jdGlvbiByKGUsbil7cmV0dXJuIGUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBhKGVbdF0pfSkpLmpvaW4odCl9KSl9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZS5tYXAoYSkuam9pbih0KX1mdW5jdGlvbiBhKHQpe3JldHVybiBudWxsPT10PyIiOnQgaW5zdGFuY2VvZiBEYXRlPyhmdW5jdGlvbiBuKHQpe3ZhciBlPXQuZ2V0VVRDSG91cnMoKSxuPXQuZ2V0VVRDTWludXRlcygpLGk9dC5nZXRVVENTZWNvbmRzKCkscj10LmdldFVUQ01pbGxpc2Vjb25kcygpO3JldHVybiBpc05hTih0KT8iSW52YWxpZCBEYXRlIjooZnVuY3Rpb24gbyh0KXtyZXR1cm4gdDwwPyItIiskZygtdCw2KTp0Pjk5OTk/IisiKyRnKHQsNik6JGcodCw0KX0pKHQuZ2V0VVRDRnVsbFllYXIoKSkrIi0iKyRnKHQuZ2V0VVRDTW9udGgoKSsxLDIpKyItIiskZyh0LmdldFVUQ0RhdGUoKSwyKSsocj8iVCIrJGcoZSwyKSsiOiIrJGcobiwyKSsiOiIrJGcoaSwyKSsiLiIrJGcociwzKSsiWiI6aT8iVCIrJGcoZSwyKSsiOiIrJGcobiwyKSsiOiIrJGcoaSwyKSsiWiI6bnx8ZT8iVCIrJGcoZSwyKSsiOiIrJGcobiwyKSsiWiI6IiIpfSkodCk6ZS50ZXN0KHQrPSIiKT8nIicrdC5yZXBsYWNlKC8iL2csJyIiJykrJyInOnR9cmV0dXJue3BhcnNlOmZ1bmN0aW9uIHModCxlKXt2YXIgbixyLG89aSh0LChmdW5jdGlvbih0LGkpe2lmKG4pcmV0dXJuIG4odCxpLTEpO3I9dCxuPWU/KGZ1bmN0aW9uIG8odCxlKXt2YXIgbj1ZZyh0KTtyZXR1cm4gZnVuY3Rpb24oaSxyKXtyZXR1cm4gZShuKGkpLHIsdCl9fSkodCxlKTpZZyh0KX0pKTtyZXR1cm4gby5jb2x1bW5zPXJ8fFtdLG99LHBhcnNlUm93czppLGZvcm1hdDpmdW5jdGlvbiBsKGUsbil7cmV0dXJuIG51bGw9PW4mJihuPVhnKGUpKSxbbi5tYXAoYSkuam9pbih0KV0uY29uY2F0KHIoZSxuKSkuam9pbigiXG4iKX0sZm9ybWF0Qm9keTpmdW5jdGlvbiBjKHQsZSl7cmV0dXJuIG51bGw9PWUmJihlPVhnKHQpKSxyKHQsZSkuam9pbigiXG4iKX0sZm9ybWF0Um93czpmdW5jdGlvbiB1KHQpe3JldHVybiB0Lm1hcChvKS5qb2luKCJcbiIpfSxmb3JtYXRSb3c6byxmb3JtYXRWYWx1ZTphfX12YXIgWmc9S2coIiwiKSxKZz1aZy5wYXJzZSxRZz1aZy5wYXJzZVJvd3MsdF89WmcuZm9ybWF0LGVfPVpnLmZvcm1hdEJvZHksbl89WmcuZm9ybWF0Um93cyxpXz1aZy5mb3JtYXRSb3cscl89WmcuZm9ybWF0VmFsdWUsb189S2coIlx0IiksYV89b18ucGFyc2Usc189b18ucGFyc2VSb3dzLGxfPW9fLmZvcm1hdCxjXz1vXy5mb3JtYXRCb2R5LHVfPW9fLmZvcm1hdFJvd3MsaF89b18uZm9ybWF0Um93LGRfPW9fLmZvcm1hdFZhbHVlLHBfPW5ldyBEYXRlKCIyMDE5LTAxLTAxVDAwOjAwIikuZ2V0SG91cnMoKXx8bmV3IERhdGUoIjIwMTktMDctMDFUMDA6MDAiKS5nZXRIb3VycygpO2Z1bmN0aW9uIGZfKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cysiICIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5ibG9iKCl9ZnVuY3Rpb24gbV8odCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzKyIgIit0LnN0YXR1c1RleHQpO3JldHVybiB0LmFycmF5QnVmZmVyKCl9ZnVuY3Rpb24gZ18odCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzKyIgIit0LnN0YXR1c1RleHQpO3JldHVybiB0LnRleHQoKX1mdW5jdGlvbiBfXyh0LGUpe3JldHVybiBmZXRjaCh0LGUpLnRoZW4oZ18pfWZ1bmN0aW9uIHlfKHQpe3JldHVybiBmdW5jdGlvbihlLG4saSl7cmV0dXJuIDI9PT1hcmd1bWVudHMubGVuZ3RoJiYiZnVuY3Rpb24iPT10eXBlb2YgbiYmKGk9bixuPXZvaWQgMCksX18oZSxuKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gdChlLGkpfSkpfX12YXIgdl89eV8oSmcpLGJfPXlfKGFfKTtmdW5jdGlvbiB4Xyh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrIiAiK3Quc3RhdHVzVGV4dCk7aWYoMjA0IT09dC5zdGF0dXMmJjIwNSE9PXQuc3RhdHVzKXJldHVybiB0Lmpzb24oKX1mdW5jdGlvbiB3Xyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gX18oZSxuKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGUsdCl9KSl9fXZhciBTXz13XygiYXBwbGljYXRpb24veG1sIiksTV89d18oInRleHQvaHRtbCIpLEVfPXdfKCJpbWFnZS9zdmcreG1sIik7ZnVuY3Rpb24gVF8odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIENfKCl7cmV0dXJuIDFlLTYqKE1hdGgucmFuZG9tKCktLjUpfWZ1bmN0aW9uIEFfKHQsZSxuLGkpe2lmKGlzTmFOKGUpfHxpc05hTihuKSlyZXR1cm4gdDt2YXIgcixvLGEscyxsLGMsdSxoLGQscD10Ll9yb290LGY9e2RhdGE6aX0sbT10Ll94MCxnPXQuX3kwLF89dC5feDEseT10Ll95MTtpZighcClyZXR1cm4gdC5fcm9vdD1mLHQ7Zm9yKDtwLmxlbmd0aDspaWYoKGM9ZT49KG89KG0rXykvMikpP209bzpfPW8sKHU9bj49KGE9KGcreSkvMikpP2c9YTp5PWEscj1wLCEocD1wW2g9dTw8MXxjXSkpcmV0dXJuIHJbaF09Zix0O2lmKHM9K3QuX3guY2FsbChudWxsLHAuZGF0YSksbD0rdC5feS5jYWxsKG51bGwscC5kYXRhKSxlPT09cyYmbj09PWwpcmV0dXJuIGYubmV4dD1wLHI/cltoXT1mOnQuX3Jvb3Q9Zix0O2Rve3I9cj9yW2hdPW5ldyBBcnJheSg0KTp0Ll9yb290PW5ldyBBcnJheSg0KSwoYz1lPj0obz0obStfKS8yKSk/bT1vOl89bywodT1uPj0oYT0oZyt5KS8yKSk/Zz1hOnk9YX13aGlsZSgoaD11PDwxfGMpPT0oZD0obD49YSk8PDF8cz49bykpO3JldHVybiByW2RdPXAscltoXT1mLHR9ZnVuY3Rpb24ga18odCxlLG4saSxyKXt0aGlzLm5vZGU9dCx0aGlzLngwPWUsdGhpcy55MD1uLHRoaXMueDE9aSx0aGlzLnkxPXJ9ZnVuY3Rpb24gTF8odCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gUF8odCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gTl8odCxlLG4pe3ZhciBpPW5ldyBJXyhudWxsPT1lP0xfOmUsbnVsbD09bj9QXzpuLE5hTixOYU4sTmFOLE5hTik7cmV0dXJuIG51bGw9PXQ/aTppLmFkZEFsbCh0KX1mdW5jdGlvbiBJXyh0LGUsbixpLHIsbyl7dGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl94MD1uLHRoaXMuX3kwPWksdGhpcy5feDE9cix0aGlzLl95MT1vLHRoaXMuX3Jvb3Q9dm9pZCAwfWZ1bmN0aW9uIFJfKHQpe2Zvcih2YXIgZT17ZGF0YTp0LmRhdGF9LG49ZTt0PXQubmV4dDspbj1uLm5leHQ9e2RhdGE6dC5kYXRhfTtyZXR1cm4gZX12YXIgT189Tl8ucHJvdG90eXBlPUlfLnByb3RvdHlwZTtmdW5jdGlvbiB6Xyh0KXtyZXR1cm4gdC54K3Qudnh9ZnVuY3Rpb24gRF8odCl7cmV0dXJuIHQueSt0LnZ5fWZ1bmN0aW9uIEJfKHQpe3JldHVybiB0LmluZGV4fWZ1bmN0aW9uIEhfKHQsZSl7dmFyIG49dC5nZXQoZSk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2UpO3JldHVybiBufWZ1bmN0aW9uIEZfKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gVl8odCl7cmV0dXJuIHQueX1PXy5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQsZSxuPW5ldyBJXyh0aGlzLl94LHRoaXMuX3ksdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpLGk9dGhpcy5fcm9vdDtpZighaSlyZXR1cm4gbjtpZighaS5sZW5ndGgpcmV0dXJuIG4uX3Jvb3Q9Ul8oaSksbjtmb3IodD1be3NvdXJjZTppLHRhcmdldDpuLl9yb290PW5ldyBBcnJheSg0KX1dO2k9dC5wb3AoKTspZm9yKHZhciByPTA7cjw0OysrcikoZT1pLnNvdXJjZVtyXSkmJihlLmxlbmd0aD90LnB1c2goe3NvdXJjZTplLHRhcmdldDppLnRhcmdldFtyXT1uZXcgQXJyYXkoNCl9KTppLnRhcmdldFtyXT1SXyhlKSk7cmV0dXJuIG59LE9fLmFkZD1mdW5jdGlvbiBVXyh0KXt2YXIgZT0rdGhpcy5feC5jYWxsKG51bGwsdCksbj0rdGhpcy5feS5jYWxsKG51bGwsdCk7cmV0dXJuIEFfKHRoaXMuY292ZXIoZSxuKSxlLG4sdCl9LE9fLmFkZEFsbD1mdW5jdGlvbiBqXyh0KXt2YXIgZSxuLGkscixvPXQubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHM9bmV3IEFycmF5KG8pLGw9MS8wLGM9MS8wLHU9LTEvMCxoPS0xLzA7Zm9yKG49MDtuPG87KytuKWlzTmFOKGk9K3RoaXMuX3guY2FsbChudWxsLGU9dFtuXSkpfHxpc05hTihyPSt0aGlzLl95LmNhbGwobnVsbCxlKSl8fChhW25dPWksc1tuXT1yLGk8bCYmKGw9aSksaT51JiYodT1pKSxyPGMmJihjPXIpLHI+aCYmKGg9cikpO2lmKGw+dXx8Yz5oKXJldHVybiB0aGlzO2Zvcih0aGlzLmNvdmVyKGwsYykuY292ZXIodSxoKSxuPTA7bjxvOysrbilBXyh0aGlzLGFbbl0sc1tuXSx0W25dKTtyZXR1cm4gdGhpc30sT18uY292ZXI9ZnVuY3Rpb24gR18odCxlKXtpZihpc05hTih0PSt0KXx8aXNOYU4oZT0rZSkpcmV0dXJuIHRoaXM7dmFyIG49dGhpcy5feDAsaT10aGlzLl95MCxyPXRoaXMuX3gxLG89dGhpcy5feTE7aWYoaXNOYU4obikpcj0obj1NYXRoLmZsb29yKHQpKSsxLG89KGk9TWF0aC5mbG9vcihlKSkrMTtlbHNle2Zvcih2YXIgYSxzLGw9ci1uLGM9dGhpcy5fcm9vdDtuPnR8fHQ+PXJ8fGk+ZXx8ZT49bzspc3dpdGNoKHM9KGU8aSk8PDF8dDxuLChhPW5ldyBBcnJheSg0KSlbc109YyxjPWEsbCo9MixzKXtjYXNlIDA6cj1uK2wsbz1pK2w7YnJlYWs7Y2FzZSAxOm49ci1sLG89aStsO2JyZWFrO2Nhc2UgMjpyPW4rbCxpPW8tbDticmVhaztjYXNlIDM6bj1yLWwsaT1vLWx9dGhpcy5fcm9vdCYmdGhpcy5fcm9vdC5sZW5ndGgmJih0aGlzLl9yb290PWMpfXJldHVybiB0aGlzLl94MD1uLHRoaXMuX3kwPWksdGhpcy5feDE9cix0aGlzLl95MT1vLHRoaXN9LE9fLmRhdGE9ZnVuY3Rpb24gV18oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy52aXNpdCgoZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKWRve3QucHVzaChlLmRhdGEpfXdoaWxlKGU9ZS5uZXh0KX0pKSx0fSxPXy5leHRlbnQ9ZnVuY3Rpb24gcV8odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LE9fLmZpbmQ9ZnVuY3Rpb24gWV8odCxlLG4pe3ZhciBpLHIsbyxhLHMsbCxjLHU9dGhpcy5feDAsaD10aGlzLl95MCxkPXRoaXMuX3gxLHA9dGhpcy5feTEsZj1bXSxtPXRoaXMuX3Jvb3Q7Zm9yKG0mJmYucHVzaChuZXcga18obSx1LGgsZCxwKSksbnVsbD09bj9uPTEvMDoodT10LW4saD1lLW4sZD10K24scD1lK24sbio9bik7bD1mLnBvcCgpOylpZighKCEobT1sLm5vZGUpfHwocj1sLngwKT5kfHwobz1sLnkwKT5wfHwoYT1sLngxKTx1fHwocz1sLnkxKTxoKSlpZihtLmxlbmd0aCl7dmFyIGc9KHIrYSkvMixfPShvK3MpLzI7Zi5wdXNoKG5ldyBrXyhtWzNdLGcsXyxhLHMpLG5ldyBrXyhtWzJdLHIsXyxnLHMpLG5ldyBrXyhtWzFdLGcsbyxhLF8pLG5ldyBrXyhtWzBdLHIsbyxnLF8pKSwoYz0oZT49Xyk8PDF8dD49ZykmJihsPWZbZi5sZW5ndGgtMV0sZltmLmxlbmd0aC0xXT1mW2YubGVuZ3RoLTEtY10sZltmLmxlbmd0aC0xLWNdPWwpfWVsc2V7dmFyIHk9dC0rdGhpcy5feC5jYWxsKG51bGwsbS5kYXRhKSx2PWUtK3RoaXMuX3kuY2FsbChudWxsLG0uZGF0YSksYj15Knkrdip2O2lmKGI8bil7dmFyIHg9TWF0aC5zcXJ0KG49Yik7dT10LXgsaD1lLXgsZD10K3gscD1lK3gsaT1tLmRhdGF9fXJldHVybiBpfSxPXy5yZW1vdmU9ZnVuY3Rpb24gWF8odCl7aWYoaXNOYU4obz0rdGhpcy5feC5jYWxsKG51bGwsdCkpfHxpc05hTihhPSt0aGlzLl95LmNhbGwobnVsbCx0KSkpcmV0dXJuIHRoaXM7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaCxkLHA9dGhpcy5fcm9vdCxmPXRoaXMuX3gwLG09dGhpcy5feTAsZz10aGlzLl94MSxfPXRoaXMuX3kxO2lmKCFwKXJldHVybiB0aGlzO2lmKHAubGVuZ3RoKWZvcig7Oyl7aWYoKGM9bz49KHM9KGYrZykvMikpP2Y9czpnPXMsKHU9YT49KGw9KG0rXykvMikpP209bDpfPWwsZT1wLCEocD1wW2g9dTw8MXxjXSkpcmV0dXJuIHRoaXM7aWYoIXAubGVuZ3RoKWJyZWFrOyhlW2grMSYzXXx8ZVtoKzImM118fGVbaCszJjNdKSYmKG49ZSxkPWgpfWZvcig7cC5kYXRhIT09dDspaWYoaT1wLCEocD1wLm5leHQpKXJldHVybiB0aGlzO3JldHVybihyPXAubmV4dCkmJmRlbGV0ZSBwLm5leHQsaT8ocj9pLm5leHQ9cjpkZWxldGUgaS5uZXh0LHRoaXMpOmU/KHI/ZVtoXT1yOmRlbGV0ZSBlW2hdLChwPWVbMF18fGVbMV18fGVbMl18fGVbM10pJiZwPT09KGVbM118fGVbMl18fGVbMV18fGVbMF0pJiYhcC5sZW5ndGgmJihuP25bZF09cDp0aGlzLl9yb290PXApLHRoaXMpOih0aGlzLl9yb290PXIsdGhpcyl9LE9fLnJlbW92ZUFsbD1mdW5jdGlvbiAkXyh0KXtmb3IodmFyIGU9MCxuPXQubGVuZ3RoO2U8bjsrK2UpdGhpcy5yZW1vdmUodFtlXSk7cmV0dXJuIHRoaXN9LE9fLnJvb3Q9ZnVuY3Rpb24gS18oKXtyZXR1cm4gdGhpcy5fcm9vdH0sT18uc2l6ZT1mdW5jdGlvbiBaXygpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoKGZ1bmN0aW9uKGUpe2lmKCFlLmxlbmd0aClkb3srK3R9d2hpbGUoZT1lLm5leHQpfSkpLHR9LE9fLnZpc2l0PWZ1bmN0aW9uIEpfKHQpe3ZhciBlLG4saSxyLG8sYSxzPVtdLGw9dGhpcy5fcm9vdDtmb3IobCYmcy5wdXNoKG5ldyBrXyhsLHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7ZT1zLnBvcCgpOylpZighdChsPWUubm9kZSxpPWUueDAscj1lLnkwLG89ZS54MSxhPWUueTEpJiZsLmxlbmd0aCl7dmFyIGM9KGkrbykvMix1PShyK2EpLzI7KG49bFszXSkmJnMucHVzaChuZXcga18obixjLHUsbyxhKSksKG49bFsyXSkmJnMucHVzaChuZXcga18obixpLHUsYyxhKSksKG49bFsxXSkmJnMucHVzaChuZXcga18obixjLHIsbyx1KSksKG49bFswXSkmJnMucHVzaChuZXcga18obixpLHIsYyx1KSl9cmV0dXJuIHRoaXN9LE9fLnZpc2l0QWZ0ZXI9ZnVuY3Rpb24gUV8odCl7dmFyIGUsbj1bXSxpPVtdO2Zvcih0aGlzLl9yb290JiZuLnB1c2gobmV3IGtfKHRoaXMuX3Jvb3QsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtlPW4ucG9wKCk7KXt2YXIgcj1lLm5vZGU7aWYoci5sZW5ndGgpe3ZhciBvLGE9ZS54MCxzPWUueTAsbD1lLngxLGM9ZS55MSx1PShhK2wpLzIsaD0ocytjKS8yOyhvPXJbMF0pJiZuLnB1c2gobmV3IGtfKG8sYSxzLHUsaCkpLChvPXJbMV0pJiZuLnB1c2gobmV3IGtfKG8sdSxzLGwsaCkpLChvPXJbMl0pJiZuLnB1c2gobmV3IGtfKG8sYSxoLHUsYykpLChvPXJbM10pJiZuLnB1c2gobmV3IGtfKG8sdSxoLGwsYykpfWkucHVzaChlKX1mb3IoO2U9aS5wb3AoKTspdChlLm5vZGUsZS54MCxlLnkwLGUueDEsZS55MSk7cmV0dXJuIHRoaXN9LE9fLng9ZnVuY3Rpb24gdHkodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3g9dCx0aGlzKTp0aGlzLl94fSxPXy55PWZ1bmN0aW9uIGV5KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl95PXQsdGhpcyk6dGhpcy5feX07dmFyIG55PU1hdGguUEkqKDMtTWF0aC5zcXJ0KDUpKTtmdW5jdGlvbiBpeSh0LGUpe2lmKChuPSh0PWU/dC50b0V4cG9uZW50aWFsKGUtMSk6dC50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoImUiKSk8MClyZXR1cm4gbnVsbDt2YXIgbixpPXQuc2xpY2UoMCxuKTtyZXR1cm5baS5sZW5ndGg+MT9pWzBdK2kuc2xpY2UoMik6aSwrdC5zbGljZShuKzEpXX1mdW5jdGlvbiByeSh0KXtyZXR1cm4odD1peShNYXRoLmFicyh0KSkpP3RbMV06TmFOfXZhciBveSxheT0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBzeSh0KXtpZighKGU9YXkuZXhlYyh0KSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZvcm1hdDogIit0KTt2YXIgZTtyZXR1cm4gbmV3IGx5KHtmaWxsOmVbMV0sYWxpZ246ZVsyXSxzaWduOmVbM10sc3ltYm9sOmVbNF0semVybzplWzVdLHdpZHRoOmVbNl0sY29tbWE6ZVs3XSxwcmVjaXNpb246ZVs4XSYmZVs4XS5zbGljZSgxKSx0cmltOmVbOV0sdHlwZTplWzEwXX0pfWZ1bmN0aW9uIGx5KHQpe3RoaXMuZmlsbD12b2lkIDA9PT10LmZpbGw/IiAiOnQuZmlsbCsiIix0aGlzLmFsaWduPXZvaWQgMD09PXQuYWxpZ24/Ij4iOnQuYWxpZ24rIiIsdGhpcy5zaWduPXZvaWQgMD09PXQuc2lnbj8iLSI6dC5zaWduKyIiLHRoaXMuc3ltYm9sPXZvaWQgMD09PXQuc3ltYm9sPyIiOnQuc3ltYm9sKyIiLHRoaXMuemVybz0hIXQuemVybyx0aGlzLndpZHRoPXZvaWQgMD09PXQud2lkdGg/dm9pZCAwOit0LndpZHRoLHRoaXMuY29tbWE9ISF0LmNvbW1hLHRoaXMucHJlY2lzaW9uPXZvaWQgMD09PXQucHJlY2lzaW9uP3ZvaWQgMDordC5wcmVjaXNpb24sdGhpcy50cmltPSEhdC50cmltLHRoaXMudHlwZT12b2lkIDA9PT10LnR5cGU/IiI6dC50eXBlKyIifWZ1bmN0aW9uIGN5KHQsZSl7dmFyIG49aXkodCxlKTtpZighbilyZXR1cm4gdCsiIjt2YXIgaT1uWzBdLHI9blsxXTtyZXR1cm4gcjwwPyIwLiIrbmV3IEFycmF5KC1yKS5qb2luKCIwIikraTppLmxlbmd0aD5yKzE/aS5zbGljZSgwLHIrMSkrIi4iK2kuc2xpY2UocisxKTppK25ldyBBcnJheShyLWkubGVuZ3RoKzIpLmpvaW4oIjAiKX1zeS5wcm90b3R5cGU9bHkucHJvdG90eXBlLGx5LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz8iMCI6IiIpKyh2b2lkIDA9PT10aGlzLndpZHRoPyIiOk1hdGgubWF4KDEsMHx0aGlzLndpZHRoKSkrKHRoaXMuY29tbWE/IiwiOiIiKSsodm9pZCAwPT09dGhpcy5wcmVjaXNpb24/IiI6Ii4iK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpKyh0aGlzLnRyaW0/In4iOiIiKSt0aGlzLnR5cGV9O3ZhciB1eT17IiUiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuKDEwMCp0KS50b0ZpeGVkKGUpfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiB0KyIifSxkOmZ1bmN0aW9uIGh5KHQpe3JldHVybiBNYXRoLmFicyh0PU1hdGgucm91bmQodCkpPj0xZTIxP3QudG9Mb2NhbGVTdHJpbmcoImVuIikucmVwbGFjZSgvLC9nLCIiKTp0LnRvU3RyaW5nKDEwKX0sZTpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRXhwb25lbnRpYWwoZSl9LGY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0ZpeGVkKGUpfSxnOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9QcmVjaXNpb24oZSl9LG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24odCxlKXtyZXR1cm4gY3koMTAwKnQsZSl9LHI6Y3ksczpmdW5jdGlvbiBkeSh0LGUpe3ZhciBuPWl5KHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIGk9blswXSxyPW5bMV0sbz1yLShveT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihyLzMpKSkpKzEsYT1pLmxlbmd0aDtyZXR1cm4gbz09PWE/aTpvPmE/aStuZXcgQXJyYXkoby1hKzEpLmpvaW4oIjAiKTpvPjA/aS5zbGljZSgwLG8pKyIuIitpLnNsaWNlKG8pOiIwLiIrbmV3IEFycmF5KDEtbykuam9pbigiMCIpK2l5KHQsTWF0aC5tYXgoMCxlK28tMSkpWzBdfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX19O2Z1bmN0aW9uIHB5KHQpe3JldHVybiB0fXZhciBmeSxteSxneSxfeT1BcnJheS5wcm90b3R5cGUubWFwLHl5PVsieSIsInoiLCJhIiwiZiIsInAiLCJuIiwiwrUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXTtmdW5jdGlvbiB2eSh0KXt2YXIgZT12b2lkIDA9PT10Lmdyb3VwaW5nfHx2b2lkIDA9PT10LnRob3VzYW5kcz9weTooZnVuY3Rpb24gbih0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe2Zvcih2YXIgcj1uLmxlbmd0aCxvPVtdLGE9MCxzPXRbMF0sbD0wO3I+MCYmcz4wJiYobCtzKzE+aSYmKHM9TWF0aC5tYXgoMSxpLWwpKSxvLnB1c2gobi5zdWJzdHJpbmcoci09cyxyK3MpKSwhKChsKz1zKzEpPmkpKTspcz10W2E9KGErMSkldC5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKGUpfX0pKF95LmNhbGwodC5ncm91cGluZyxOdW1iZXIpLHQudGhvdXNhbmRzKyIiKSxpPXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVswXSsiIixyPXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVsxXSsiIixvPXZvaWQgMD09PXQuZGVjaW1hbD8iLiI6dC5kZWNpbWFsKyIiLGE9dm9pZCAwPT09dC5udW1lcmFscz9weTooZnVuY3Rpb24gcyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvWzAtOV0vZywoZnVuY3Rpb24oZSl7cmV0dXJuIHRbK2VdfSkpfX0pKF95LmNhbGwodC5udW1lcmFscyxTdHJpbmcpKSxsPXZvaWQgMD09PXQucGVyY2VudD8iJSI6dC5wZXJjZW50KyIiLGM9dm9pZCAwPT09dC5taW51cz8iLSI6dC5taW51cysiIix1PXZvaWQgMD09PXQubmFuPyJOYU4iOnQubmFuKyIiO2Z1bmN0aW9uIGgodCl7dmFyIG49KHQ9c3kodCkpLmZpbGwscz10LmFsaWduLGg9dC5zaWduLGQ9dC5zeW1ib2wscD10Lnplcm8sZj10LndpZHRoLG09dC5jb21tYSxnPXQucHJlY2lzaW9uLF89dC50cmltLHk9dC50eXBlOyJuIj09PXk/KG09ITAseT0iZyIpOnV5W3ldfHwodm9pZCAwPT09ZyYmKGc9MTIpLF89ITAseT0iZyIpLChwfHwiMCI9PT1uJiYiPSI9PT1zKSYmKHA9ITAsbj0iMCIscz0iPSIpO3ZhciB2PSIkIj09PWQ/aToiIyI9PT1kJiYvW2JveFhdLy50ZXN0KHkpPyIwIit5LnRvTG93ZXJDYXNlKCk6IiIsYj0iJCI9PT1kP3I6L1slcF0vLnRlc3QoeSk/bDoiIix4PXV5W3ldLHc9L1tkZWZncHJzJV0vLnRlc3QoeSk7ZnVuY3Rpb24gUyh0KXt2YXIgaSxyLGwsZD12LFM9YjtpZigiYyI9PT15KVM9eCh0KStTLHQ9IiI7ZWxzZXt2YXIgTT0odD0rdCk8MHx8MS90PDA7aWYodD1pc05hTih0KT91OngoTWF0aC5hYnModCksZyksXyYmKHQ9KGZ1bmN0aW9uIEUodCl7dDpmb3IodmFyIGUsbj10Lmxlbmd0aCxpPTEscj0tMTtpPG47KytpKXN3aXRjaCh0W2ldKXtjYXNlIi4iOnI9ZT1pO2JyZWFrO2Nhc2UiMCI6MD09PXImJihyPWkpLGU9aTticmVhaztkZWZhdWx0OmlmKCErdFtpXSlicmVhayB0O3I+MCYmKHI9MCl9cmV0dXJuIHI+MD90LnNsaWNlKDAscikrdC5zbGljZShlKzEpOnR9KSh0KSksTSYmMD09K3QmJiIrIiE9PWgmJihNPSExKSxkPShNPyIoIj09PWg/aDpjOiItIj09PWh8fCIoIj09PWg/IiI6aCkrZCxTPSgicyI9PT15P3l5Wzgrb3kvM106IiIpK1MrKE0mJiIoIj09PWg/IikiOiIiKSx3KWZvcihpPS0xLHI9dC5sZW5ndGg7KytpPHI7KWlmKDQ4PihsPXQuY2hhckNvZGVBdChpKSl8fGw+NTcpe1M9KDQ2PT09bD9vK3Quc2xpY2UoaSsxKTp0LnNsaWNlKGkpKStTLHQ9dC5zbGljZSgwLGkpO2JyZWFrfX1tJiYhcCYmKHQ9ZSh0LDEvMCkpO3ZhciBUPWQubGVuZ3RoK3QubGVuZ3RoK1MubGVuZ3RoLEM9VDxmP25ldyBBcnJheShmLVQrMSkuam9pbihuKToiIjtzd2l0Y2gobSYmcCYmKHQ9ZShDK3QsQy5sZW5ndGg/Zi1TLmxlbmd0aDoxLzApLEM9IiIpLHMpe2Nhc2UiPCI6dD1kK3QrUytDO2JyZWFrO2Nhc2UiPSI6dD1kK0MrdCtTO2JyZWFrO2Nhc2UiXiI6dD1DLnNsaWNlKDAsVD1DLmxlbmd0aD4+MSkrZCt0K1MrQy5zbGljZShUKTticmVhaztkZWZhdWx0OnQ9QytkK3QrU31yZXR1cm4gYSh0KX1yZXR1cm4gZz12b2lkIDA9PT1nPzY6L1tncHJzXS8udGVzdCh5KT9NYXRoLm1heCgxLE1hdGgubWluKDIxLGcpKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLGcpKSxTLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQrIiJ9LFN9cmV0dXJue2Zvcm1hdDpoLGZvcm1hdFByZWZpeDpmdW5jdGlvbiBkKHQsZSl7dmFyIG49aCgoKHQ9c3kodCkpLnR5cGU9ImYiLHQpKSxpPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHJ5KGUpLzMpKSkscj1NYXRoLnBvdygxMCwtaSksbz15eVs4K2kvM107cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuKHIqdCkrb319fX1mdW5jdGlvbiBieSh0KXtyZXR1cm4gZnk9dnkodCksbXk9ZnkuZm9ybWF0LGd5PWZ5LmZvcm1hdFByZWZpeCxmeX1mdW5jdGlvbiB4eSh0KXtyZXR1cm4gTWF0aC5tYXgoMCwtcnkoTWF0aC5hYnModCkpKX1mdW5jdGlvbiB3eSh0LGUpe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHJ5KGUpLzMpKSktcnkoTWF0aC5hYnModCkpKX1mdW5jdGlvbiBTeSh0LGUpe3JldHVybiB0PU1hdGguYWJzKHQpLGU9TWF0aC5hYnMoZSktdCxNYXRoLm1heCgwLHJ5KGUpLXJ5KHQpKSsxfWZ1bmN0aW9uIE15KCl7cmV0dXJuIG5ldyBFeX1mdW5jdGlvbiBFeSgpe3RoaXMucmVzZXQoKX1ieSh7ZGVjaW1hbDoiLiIsdGhvdXNhbmRzOiIsIixncm91cGluZzpbM10sY3VycmVuY3k6WyIkIiwiIl0sbWludXM6Ii0ifSksRXkucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpFeSxyZXNldDpmdW5jdGlvbigpe3RoaXMucz10aGlzLnQ9MH0sYWRkOmZ1bmN0aW9uKHQpe0N5KFR5LHQsdGhpcy50KSxDeSh0aGlzLFR5LnMsdGhpcy5zKSx0aGlzLnM/dGhpcy50Kz1UeS50OnRoaXMucz1UeS50fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc319O3ZhciBUeT1uZXcgRXk7ZnVuY3Rpb24gQ3kodCxlLG4pe3ZhciBpPXQucz1lK24scj1pLWU7dC50PWUtKGktcikrKG4tcil9dmFyIEF5PTFlLTYsa3k9MWUtMTIsTHk9TWF0aC5QSSxQeT1MeS8yLE55PUx5LzQsSXk9MipMeSxSeT0xODAvTHksT3k9THkvMTgwLHp5PU1hdGguYWJzLER5PU1hdGguYXRhbixCeT1NYXRoLmF0YW4yLEh5PU1hdGguY29zLEZ5PU1hdGguY2VpbCxWeT1NYXRoLmV4cCxVeT1NYXRoLmxvZyxqeT1NYXRoLnBvdyxHeT1NYXRoLnNpbixXeT1NYXRoLnNpZ258fGZ1bmN0aW9uKHQpe3JldHVybiB0PjA/MTp0PDA/LTE6MH0scXk9TWF0aC5zcXJ0LFl5PU1hdGgudGFuO2Z1bmN0aW9uIFh5KHQpe3JldHVybiB0PjE/MDp0PC0xP0x5Ok1hdGguYWNvcyh0KX1mdW5jdGlvbiAkeSh0KXtyZXR1cm4gdD4xP1B5OnQ8LTE/LVB5Ok1hdGguYXNpbih0KX1mdW5jdGlvbiBLeSh0KXtyZXR1cm4odD1HeSh0LzIpKSp0fWZ1bmN0aW9uIFp5KCl7fWZ1bmN0aW9uIEp5KHQsZSl7dCYmdHYuaGFzT3duUHJvcGVydHkodC50eXBlKSYmdHZbdC50eXBlXSh0LGUpfXZhciBReT17RmVhdHVyZTpmdW5jdGlvbih0LGUpe0p5KHQuZ2VvbWV0cnksZSl9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZmVhdHVyZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylKeShuW2ldLmdlb21ldHJ5LGUpfX0sdHY9e1NwaGVyZTpmdW5jdGlvbih0LGUpe2Uuc3BoZXJlKCl9LFBvaW50OmZ1bmN0aW9uKHQsZSl7ZS5wb2ludCgodD10LmNvb3JkaW5hdGVzKVswXSx0WzFdLHRbMl0pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOyllLnBvaW50KCh0PW5baV0pWzBdLHRbMV0sdFsyXSl9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtldih0LmNvb3JkaW5hdGVzLGUsMCl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspZXYobltpXSxlLDApfSxQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7bnYodC5jb29yZGluYXRlcyxlKX0sTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOyludihuW2ldLGUpfSxHZW9tZXRyeUNvbGxlY3Rpb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5nZW9tZXRyaWVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspSnkobltpXSxlKX19O2Z1bmN0aW9uIGV2KHQsZSxuKXt2YXIgaSxyPS0xLG89dC5sZW5ndGgtbjtmb3IoZS5saW5lU3RhcnQoKTsrK3I8bzspZS5wb2ludCgoaT10W3JdKVswXSxpWzFdLGlbMl0pO2UubGluZUVuZCgpfWZ1bmN0aW9uIG52KHQsZSl7dmFyIG49LTEsaT10Lmxlbmd0aDtmb3IoZS5wb2x5Z29uU3RhcnQoKTsrK248aTspZXYodFtuXSxlLDEpO2UucG9seWdvbkVuZCgpfWZ1bmN0aW9uIGl2KHQsZSl7dCYmUXkuaGFzT3duUHJvcGVydHkodC50eXBlKT9ReVt0LnR5cGVdKHQsZSk6SnkodCxlKX12YXIgcnYsb3YsYXYsc3YsbHYsY3Y9TXkoKSx1dj1NeSgpLGh2PXtwb2ludDpaeSxsaW5lU3RhcnQ6WnksbGluZUVuZDpaeSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtjdi5yZXNldCgpLGh2LmxpbmVTdGFydD1kdixodi5saW5lRW5kPXB2fSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9K2N2O3V2LmFkZCh0PDA/SXkrdDp0KSx0aGlzLmxpbmVTdGFydD10aGlzLmxpbmVFbmQ9dGhpcy5wb2ludD1aeX0sc3BoZXJlOmZ1bmN0aW9uKCl7dXYuYWRkKEl5KX19O2Z1bmN0aW9uIGR2KCl7aHYucG9pbnQ9ZnZ9ZnVuY3Rpb24gcHYoKXttdihydixvdil9ZnVuY3Rpb24gZnYodCxlKXtodi5wb2ludD1tdixydj10LG92PWUsYXY9dCo9T3ksc3Y9SHkoZT0oZSo9T3kpLzIrTnkpLGx2PUd5KGUpfWZ1bmN0aW9uIG12KHQsZSl7dmFyIG49KHQqPU95KS1hdixpPW4+PTA/MTotMSxyPWkqbixvPUh5KGU9KGUqPU95KS8yK055KSxhPUd5KGUpLHM9bHYqYSxsPXN2Km8rcypIeShyKSxjPXMqaSpHeShyKTtjdi5hZGQoQnkoYyxsKSksYXY9dCxzdj1vLGx2PWF9ZnVuY3Rpb24gZ3YodCl7cmV0dXJuW0J5KHRbMV0sdFswXSksJHkodFsyXSldfWZ1bmN0aW9uIF92KHQpe3ZhciBlPXRbMF0sbj10WzFdLGk9SHkobik7cmV0dXJuW2kqSHkoZSksaSpHeShlKSxHeShuKV19ZnVuY3Rpb24geXYodCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXSt0WzJdKmVbMl19ZnVuY3Rpb24gdnYodCxlKXtyZXR1cm5bdFsxXSplWzJdLXRbMl0qZVsxXSx0WzJdKmVbMF0tdFswXSplWzJdLHRbMF0qZVsxXS10WzFdKmVbMF1dfWZ1bmN0aW9uIGJ2KHQsZSl7dFswXSs9ZVswXSx0WzFdKz1lWzFdLHRbMl0rPWVbMl19ZnVuY3Rpb24geHYodCxlKXtyZXR1cm5bdFswXSplLHRbMV0qZSx0WzJdKmVdfWZ1bmN0aW9uIHd2KHQpe3ZhciBlPXF5KHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdKTt0WzBdLz1lLHRbMV0vPWUsdFsyXS89ZX12YXIgU3YsTXYsRXYsVHYsQ3YsQXYsa3YsTHYsUHYsTnYsSXYsUnYsT3YsenYsRHYsQnYsSHYsRnYsVnYsVXYsanYsR3YsV3YscXYsWXYsWHYsJHY9TXkoKSxLdj17cG9pbnQ6WnYsbGluZVN0YXJ0OlF2LGxpbmVFbmQ6dGIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7S3YucG9pbnQ9ZWIsS3YubGluZVN0YXJ0PW5iLEt2LmxpbmVFbmQ9aWIsJHYucmVzZXQoKSxodi5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2h2LnBvbHlnb25FbmQoKSxLdi5wb2ludD1adixLdi5saW5lU3RhcnQ9UXYsS3YubGluZUVuZD10YixjdjwwPyhTdj0tKEV2PTE4MCksTXY9LShUdj05MCkpOiR2PkF5P1R2PTkwOiR2PC0xZS02JiYoTXY9LTkwKSxOdlswXT1TdixOdlsxXT1Fdn0sc3BoZXJlOmZ1bmN0aW9uKCl7U3Y9LShFdj0xODApLE12PS0oVHY9OTApfX07ZnVuY3Rpb24gWnYodCxlKXtQdi5wdXNoKE52PVtTdj10LEV2PXRdKSxlPE12JiYoTXY9ZSksZT5UdiYmKFR2PWUpfWZ1bmN0aW9uIEp2KHQsZSl7dmFyIG49X3YoW3QqT3ksZSpPeV0pO2lmKEx2KXt2YXIgaT12dihMdixuKSxyPXZ2KFtpWzFdLC1pWzBdLDBdLGkpO3d2KHIpLHI9Z3Yocik7dmFyIG8sYT10LUN2LHM9YT4wPzE6LTEsbD1yWzBdKlJ5KnMsYz16eShhKT4xODA7Y14ocypDdjxsJiZsPHMqdCk/KG89clsxXSpSeSk+VHYmJihUdj1vKTpjXihzKkN2PChsPShsKzM2MCklMzYwLTE4MCkmJmw8cyp0KT8obz0tclsxXSpSeSk8TXYmJihNdj1vKTooZTxNdiYmKE12PWUpLGU+VHYmJihUdj1lKSksYz90PEN2P3JiKFN2LHQpPnJiKFN2LEV2KSYmKEV2PXQpOnJiKHQsRXYpPnJiKFN2LEV2KSYmKFN2PXQpOkV2Pj1Tdj8odDxTdiYmKFN2PXQpLHQ+RXYmJihFdj10KSk6dD5Ddj9yYihTdix0KT5yYihTdixFdikmJihFdj10KTpyYih0LEV2KT5yYihTdixFdikmJihTdj10KX1lbHNlIFB2LnB1c2goTnY9W1N2PXQsRXY9dF0pO2U8TXYmJihNdj1lKSxlPlR2JiYoVHY9ZSksTHY9bixDdj10fWZ1bmN0aW9uIFF2KCl7S3YucG9pbnQ9SnZ9ZnVuY3Rpb24gdGIoKXtOdlswXT1TdixOdlsxXT1FdixLdi5wb2ludD1adixMdj1udWxsfWZ1bmN0aW9uIGViKHQsZSl7aWYoTHYpe3ZhciBuPXQtQ3Y7JHYuYWRkKHp5KG4pPjE4MD9uKyhuPjA/MzYwOi0zNjApOm4pfWVsc2UgQXY9dCxrdj1lO2h2LnBvaW50KHQsZSksSnYodCxlKX1mdW5jdGlvbiBuYigpe2h2LmxpbmVTdGFydCgpfWZ1bmN0aW9uIGliKCl7ZWIoQXYsa3YpLGh2LmxpbmVFbmQoKSx6eSgkdik+QXkmJihTdj0tKEV2PTE4MCkpLE52WzBdPVN2LE52WzFdPUV2LEx2PW51bGx9ZnVuY3Rpb24gcmIodCxlKXtyZXR1cm4oZS09dCk8MD9lKzM2MDplfWZ1bmN0aW9uIG9iKHQsZSl7cmV0dXJuIHRbMF0tZVswXX1mdW5jdGlvbiBhYih0LGUpe3JldHVybiB0WzBdPD10WzFdP3RbMF08PWUmJmU8PXRbMV06ZTx0WzBdfHx0WzFdPGV9dmFyIHNiPXtzcGhlcmU6WnkscG9pbnQ6bGIsbGluZVN0YXJ0OnViLGxpbmVFbmQ6cGIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7c2IubGluZVN0YXJ0PWZiLHNiLmxpbmVFbmQ9bWJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtzYi5saW5lU3RhcnQ9dWIsc2IubGluZUVuZD1wYn19O2Z1bmN0aW9uIGxiKHQsZSl7dCo9T3k7dmFyIG49SHkoZSo9T3kpO2NiKG4qSHkodCksbipHeSh0KSxHeShlKSl9ZnVuY3Rpb24gY2IodCxlLG4peysrSXYsT3YrPSh0LU92KS9Jdix6dis9KGUtenYpL0l2LER2Kz0obi1EdikvSXZ9ZnVuY3Rpb24gdWIoKXtzYi5wb2ludD1oYn1mdW5jdGlvbiBoYih0LGUpe3QqPU95O3ZhciBuPUh5KGUqPU95KTtxdj1uKkh5KHQpLFl2PW4qR3kodCksWHY9R3koZSksc2IucG9pbnQ9ZGIsY2IocXYsWXYsWHYpfWZ1bmN0aW9uIGRiKHQsZSl7dCo9T3k7dmFyIG49SHkoZSo9T3kpLGk9bipIeSh0KSxyPW4qR3kodCksbz1HeShlKSxhPUJ5KHF5KChhPVl2Km8tWHYqcikqYSsoYT1YdippLXF2Km8pKmErKGE9cXYqci1ZdippKSphKSxxdippK1l2KnIrWHYqbyk7UnYrPWEsQnYrPWEqKHF2Kyhxdj1pKSksSHYrPWEqKFl2KyhZdj1yKSksRnYrPWEqKFh2KyhYdj1vKSksY2IocXYsWXYsWHYpfWZ1bmN0aW9uIHBiKCl7c2IucG9pbnQ9bGJ9ZnVuY3Rpb24gZmIoKXtzYi5wb2ludD1nYn1mdW5jdGlvbiBtYigpe19iKEd2LFd2KSxzYi5wb2ludD1sYn1mdW5jdGlvbiBnYih0LGUpe0d2PXQsV3Y9ZSx0Kj1PeSxlKj1PeSxzYi5wb2ludD1fYjt2YXIgbj1IeShlKTtxdj1uKkh5KHQpLFl2PW4qR3kodCksWHY9R3koZSksY2IocXYsWXYsWHYpfWZ1bmN0aW9uIF9iKHQsZSl7dCo9T3k7dmFyIG49SHkoZSo9T3kpLGk9bipIeSh0KSxyPW4qR3kodCksbz1HeShlKSxhPVl2Km8tWHYqcixzPVh2KmktcXYqbyxsPXF2KnItWXYqaSxjPXF5KGEqYStzKnMrbCpsKSx1PSR5KGMpLGg9YyYmLXUvYztWdis9aCphLFV2Kz1oKnMsanYrPWgqbCxSdis9dSxCdis9dSoocXYrKHF2PWkpKSxIdis9dSooWXYrKFl2PXIpKSxGdis9dSooWHYrKFh2PW8pKSxjYihxdixZdixYdil9ZnVuY3Rpb24geWIodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIHZiKHQsZSl7ZnVuY3Rpb24gbihuLGkpe3JldHVybiBuPXQobixpKSxlKG5bMF0sblsxXSl9cmV0dXJuIHQuaW52ZXJ0JiZlLmludmVydCYmKG4uaW52ZXJ0PWZ1bmN0aW9uKG4saSl7cmV0dXJuKG49ZS5pbnZlcnQobixpKSkmJnQuaW52ZXJ0KG5bMF0sblsxXSl9KSxufWZ1bmN0aW9uIGJiKHQsZSl7cmV0dXJuW3p5KHQpPkx5P3QrTWF0aC5yb3VuZCgtdC9JeSkqSXk6dCxlXX1mdW5jdGlvbiB4Yih0LGUsbil7cmV0dXJuKHQlPUl5KT9lfHxuP3ZiKFNiKHQpLE1iKGUsbikpOlNiKHQpOmV8fG4/TWIoZSxuKTpiYn1mdW5jdGlvbiB3Yih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm5bKGUrPXQpPkx5P2UtSXk6ZTwtTHk/ZStJeTplLG5dfX1mdW5jdGlvbiBTYih0KXt2YXIgZT13Yih0KTtyZXR1cm4gZS5pbnZlcnQ9d2IoLXQpLGV9ZnVuY3Rpb24gTWIodCxlKXt2YXIgbj1IeSh0KSxpPUd5KHQpLHI9SHkoZSksbz1HeShlKTtmdW5jdGlvbiBhKHQsZSl7dmFyIGE9SHkoZSkscz1IeSh0KSphLGw9R3kodCkqYSxjPUd5KGUpLHU9YypuK3MqaTtyZXR1cm5bQnkobCpyLXUqbyxzKm4tYyppKSwkeSh1KnIrbCpvKV19cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIGE9SHkoZSkscz1IeSh0KSphLGw9R3kodCkqYSxjPUd5KGUpLHU9YypyLWwqbztyZXR1cm5bQnkobCpyK2MqbyxzKm4rdSppKSwkeSh1Km4tcyppKV19LGF9ZnVuY3Rpb24gRWIodCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4oZT10KGVbMF0qT3ksZVsxXSpPeSkpWzBdKj1SeSxlWzFdKj1SeSxlfXJldHVybiB0PXhiKHRbMF0qT3ksdFsxXSpPeSx0Lmxlbmd0aD4yP3RbMl0qT3k6MCksZS5pbnZlcnQ9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9dC5pbnZlcnQoZVswXSpPeSxlWzFdKk95KSlbMF0qPVJ5LGVbMV0qPVJ5LGV9LGV9ZnVuY3Rpb24gVGIodCxlLG4saSxyLG8pe2lmKG4pe3ZhciBhPUh5KGUpLHM9R3koZSksbD1pKm47bnVsbD09cj8ocj1lK2kqSXksbz1lLWwvMik6KHI9Q2IoYSxyKSxvPUNiKGEsbyksKGk+MD9yPG86cj5vKSYmKHIrPWkqSXkpKTtmb3IodmFyIGMsdT1yO2k+MD91Pm86dTxvO3UtPWwpYz1ndihbYSwtcypIeSh1KSwtcypHeSh1KV0pLHQucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gQ2IodCxlKXsoZT1fdihlKSlbMF0tPXQsd3YoZSk7dmFyIG49WHkoLWVbMV0pO3JldHVybigoLWVbMl08MD8tbjpuKStJeS1BeSklSXl9ZnVuY3Rpb24gQWIoKXt2YXIgdCxlPVtdO3JldHVybntwb2ludDpmdW5jdGlvbihlLG4saSl7dC5wdXNoKFtlLG4saV0pfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtlLnB1c2godD1bXSl9LGxpbmVFbmQ6WnkscmVqb2luOmZ1bmN0aW9uKCl7ZS5sZW5ndGg+MSYmZS5wdXNoKGUucG9wKCkuY29uY2F0KGUuc2hpZnQoKSkpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgbj1lO3JldHVybiBlPVtdLHQ9bnVsbCxufX19ZnVuY3Rpb24ga2IodCxlKXtyZXR1cm4genkodFswXS1lWzBdKTxBeSYmenkodFsxXS1lWzFdKTxBeX1mdW5jdGlvbiBMYih0LGUsbixpKXt0aGlzLng9dCx0aGlzLno9ZSx0aGlzLm89bix0aGlzLmU9aSx0aGlzLnY9ITEsdGhpcy5uPXRoaXMucD1udWxsfWZ1bmN0aW9uIFBiKHQsZSxuLGkscil7dmFyIG8sYSxzPVtdLGw9W107aWYodC5mb3JFYWNoKChmdW5jdGlvbih0KXtpZighKChlPXQubGVuZ3RoLTEpPD0wKSl7dmFyIGUsbixpPXRbMF0sYT10W2VdO2lmKGtiKGksYSkpe2lmKCFpWzJdJiYhYVsyXSl7Zm9yKHIubGluZVN0YXJ0KCksbz0wO288ZTsrK28pci5wb2ludCgoaT10W29dKVswXSxpWzFdKTtyZXR1cm4gdm9pZCByLmxpbmVFbmQoKX1hWzBdKz0yZS02fXMucHVzaChuPW5ldyBMYihpLHQsbnVsbCwhMCkpLGwucHVzaChuLm89bmV3IExiKGksbnVsbCxuLCExKSkscy5wdXNoKG49bmV3IExiKGEsdCxudWxsLCExKSksbC5wdXNoKG4ubz1uZXcgTGIoYSxudWxsLG4sITApKX19KSkscy5sZW5ndGgpe2ZvcihsLnNvcnQoZSksTmIocyksTmIobCksbz0wLGE9bC5sZW5ndGg7bzxhOysrbylsW29dLmU9bj0hbjtmb3IodmFyIGMsdSxoPXNbMF07Oyl7Zm9yKHZhciBkPWgscD0hMDtkLnY7KWlmKChkPWQubik9PT1oKXJldHVybjtjPWQueixyLmxpbmVTdGFydCgpO2Rve2lmKGQudj1kLm8udj0hMCxkLmUpe2lmKHApZm9yKG89MCxhPWMubGVuZ3RoO288YTsrK28pci5wb2ludCgodT1jW29dKVswXSx1WzFdKTtlbHNlIGkoZC54LGQubi54LDEscik7ZD1kLm59ZWxzZXtpZihwKWZvcihvPShjPWQucC56KS5sZW5ndGgtMTtvPj0wOy0tbylyLnBvaW50KCh1PWNbb10pWzBdLHVbMV0pO2Vsc2UgaShkLngsZC5wLngsLTEscik7ZD1kLnB9Yz0oZD1kLm8pLnoscD0hcH13aGlsZSghZC52KTtyLmxpbmVFbmQoKX19fWZ1bmN0aW9uIE5iKHQpe2lmKGU9dC5sZW5ndGgpe2Zvcih2YXIgZSxuLGk9MCxyPXRbMF07KytpPGU7KXIubj1uPXRbaV0sbi5wPXIscj1uO3Iubj1uPXRbMF0sbi5wPXJ9fWJiLmludmVydD1iYjt2YXIgSWI9TXkoKTtmdW5jdGlvbiBSYih0KXtyZXR1cm4genkodFswXSk8PUx5P3RbMF06V3kodFswXSkqKCh6eSh0WzBdKStMeSklSXktTHkpfWZ1bmN0aW9uIE9iKHQsZSl7dmFyIG49UmIoZSksaT1lWzFdLHI9R3koaSksbz1bR3kobiksLUh5KG4pLDBdLGE9MCxzPTA7SWIucmVzZXQoKSwxPT09cj9pPVB5K0F5Oi0xPT09ciYmKGk9LVB5LUF5KTtmb3IodmFyIGw9MCxjPXQubGVuZ3RoO2w8YzsrK2wpaWYoaD0odT10W2xdKS5sZW5ndGgpZm9yKHZhciB1LGgsZD11W2gtMV0scD1SYihkKSxmPWRbMV0vMitOeSxtPUd5KGYpLGc9SHkoZiksXz0wO188aDsrK18scD12LG09eCxnPXcsZD15KXt2YXIgeT11W19dLHY9UmIoeSksYj15WzFdLzIrTnkseD1HeShiKSx3PUh5KGIpLFM9di1wLE09Uz49MD8xOi0xLEU9TSpTLFQ9RT5MeSxDPW0qeDtpZihJYi5hZGQoQnkoQypNKkd5KEUpLGcqdytDKkh5KEUpKSksYSs9VD9TK00qSXk6UyxUXnA+PW5edj49bil7dmFyIEE9dnYoX3YoZCksX3YoeSkpO3d2KEEpO3ZhciBrPXZ2KG8sQSk7d3Yoayk7dmFyIEw9KFReUz49MD8tMToxKSokeShrWzJdKTsoaT5MfHxpPT09TCYmKEFbMF18fEFbMV0pKSYmKHMrPVReUz49MD8xOi0xKX19cmV0dXJuKGE8LTFlLTZ8fGE8QXkmJkliPC0xZS02KV4xJnN9ZnVuY3Rpb24gemIodCxlLG4saSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBvLGEscyxsPWUociksYz1BYigpLHU9ZShjKSxoPSExLGQ9e3BvaW50OnAsbGluZVN0YXJ0Om0sbGluZUVuZDpnLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2QucG9pbnQ9XyxkLmxpbmVTdGFydD15LGQubGluZUVuZD12LGE9W10sbz1bXX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2QucG9pbnQ9cCxkLmxpbmVTdGFydD1tLGQubGluZUVuZD1nLGE9cWwoYSk7dmFyIHQ9T2IobyxpKTthLmxlbmd0aD8oaHx8KHIucG9seWdvblN0YXJ0KCksaD0hMCksUGIoYSxCYix0LG4scikpOnQmJihofHwoci5wb2x5Z29uU3RhcnQoKSxoPSEwKSxyLmxpbmVTdGFydCgpLG4obnVsbCxudWxsLDEsciksci5saW5lRW5kKCkpLGgmJihyLnBvbHlnb25FbmQoKSxoPSExKSxhPW89bnVsbH0sc3BoZXJlOmZ1bmN0aW9uKCl7ci5wb2x5Z29uU3RhcnQoKSxyLmxpbmVTdGFydCgpLG4obnVsbCxudWxsLDEsciksci5saW5lRW5kKCksci5wb2x5Z29uRW5kKCl9fTtmdW5jdGlvbiBwKGUsbil7dChlLG4pJiZyLnBvaW50KGUsbil9ZnVuY3Rpb24gZih0LGUpe2wucG9pbnQodCxlKX1mdW5jdGlvbiBtKCl7ZC5wb2ludD1mLGwubGluZVN0YXJ0KCl9ZnVuY3Rpb24gZygpe2QucG9pbnQ9cCxsLmxpbmVFbmQoKX1mdW5jdGlvbiBfKHQsZSl7cy5wdXNoKFt0LGVdKSx1LnBvaW50KHQsZSl9ZnVuY3Rpb24geSgpe3UubGluZVN0YXJ0KCkscz1bXX1mdW5jdGlvbiB2KCl7XyhzWzBdWzBdLHNbMF1bMV0pLHUubGluZUVuZCgpO3ZhciB0LGUsbixpLGw9dS5jbGVhbigpLGQ9Yy5yZXN1bHQoKSxwPWQubGVuZ3RoO2lmKHMucG9wKCksby5wdXNoKHMpLHM9bnVsbCxwKWlmKDEmbCl7aWYoKGU9KG49ZFswXSkubGVuZ3RoLTEpPjApe2ZvcihofHwoci5wb2x5Z29uU3RhcnQoKSxoPSEwKSxyLmxpbmVTdGFydCgpLHQ9MDt0PGU7Kyt0KXIucG9pbnQoKGk9blt0XSlbMF0saVsxXSk7ci5saW5lRW5kKCl9fWVsc2UgcD4xJiYyJmwmJmQucHVzaChkLnBvcCgpLmNvbmNhdChkLnNoaWZ0KCkpKSxhLnB1c2goZC5maWx0ZXIoRGIpKX1yZXR1cm4gZH19ZnVuY3Rpb24gRGIodCl7cmV0dXJuIHQubGVuZ3RoPjF9ZnVuY3Rpb24gQmIodCxlKXtyZXR1cm4oKHQ9dC54KVswXTwwP3RbMV0tUHktQXk6UHktdFsxXSktKChlPWUueClbMF08MD9lWzFdLVB5LUF5OlB5LWVbMV0pfXZhciBIYj16YigoZnVuY3Rpb24oKXtyZXR1cm4hMH0pLChmdW5jdGlvbiBGYih0KXt2YXIgZSxuPU5hTixpPU5hTixyPU5hTjtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKSxlPTF9LHBvaW50OmZ1bmN0aW9uKG8sYSl7dmFyIHM9bz4wP0x5Oi1MeSxsPXp5KG8tbik7enkobC1MeSk8QXk/KHQucG9pbnQobixpPShpK2EpLzI+MD9QeTotUHkpLHQucG9pbnQocixpKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQocyxpKSx0LnBvaW50KG8saSksZT0wKTpyIT09cyYmbD49THkmJih6eShuLXIpPEF5JiYobi09cipBeSksenkoby1zKTxBeSYmKG8tPXMqQXkpLGk9KGZ1bmN0aW9uIGModCxlLG4saSl7dmFyIHIsbyxhPUd5KHQtbik7cmV0dXJuIHp5KGEpPkF5P0R5KChHeShlKSoobz1IeShpKSkqR3kobiktR3koaSkqKHI9SHkoZSkpKkd5KHQpKS8ocipvKmEpKTooZStpKS8yfSkobixpLG8sYSksdC5wb2ludChyLGkpLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludChzLGkpLGU9MCksdC5wb2ludChuPW8saT1hKSxyPXN9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0LmxpbmVFbmQoKSxuPWk9TmFOfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiAyLWV9fX0pLChmdW5jdGlvbiBWYih0LGUsbixpKXt2YXIgcjtpZihudWxsPT10KWkucG9pbnQoLUx5LHI9bipQeSksaS5wb2ludCgwLHIpLGkucG9pbnQoTHksciksaS5wb2ludChMeSwwKSxpLnBvaW50KEx5LC1yKSxpLnBvaW50KDAsLXIpLGkucG9pbnQoLUx5LC1yKSxpLnBvaW50KC1MeSwwKSxpLnBvaW50KC1MeSxyKTtlbHNlIGlmKHp5KHRbMF0tZVswXSk+QXkpe3ZhciBvPXRbMF08ZVswXT9MeTotTHk7aS5wb2ludCgtbyxyPW4qby8yKSxpLnBvaW50KDAsciksaS5wb2ludChvLHIpfWVsc2UgaS5wb2ludChlWzBdLGVbMV0pfSksWy1MeSwtUHldKTtmdW5jdGlvbiBVYih0KXt2YXIgZT1IeSh0KSxuPTYqT3ksaT1lPjAscj16eShlKT5BeTtmdW5jdGlvbiBvKHQsbil7cmV0dXJuIEh5KHQpKkh5KG4pPmV9ZnVuY3Rpb24gYSh0LG4saSl7dmFyIHI9WzEsMCwwXSxvPXZ2KF92KHQpLF92KG4pKSxhPXl2KG8sbykscz1vWzBdLGw9YS1zKnM7aWYoIWwpcmV0dXJuIWkmJnQ7dmFyIGM9ZSphL2wsdT0tZSpzL2wsaD12dihyLG8pLGQ9eHYocixjKTtidihkLHh2KG8sdSkpO3ZhciBwPWgsZj15dihkLHApLG09eXYocCxwKSxnPWYqZi1tKih5dihkLGQpLTEpO2lmKCEoZzwwKSl7dmFyIF89cXkoZykseT14dihwLCgtZi1fKS9tKTtpZihidih5LGQpLHk9Z3YoeSksIWkpcmV0dXJuIHk7dmFyIHYsYj10WzBdLHg9blswXSx3PXRbMV0sUz1uWzFdO3g8YiYmKHY9YixiPXgseD12KTt2YXIgTT14LWIsRT16eShNLUx5KTxBeTtpZighRSYmUzx3JiYodj13LHc9UyxTPXYpLEV8fE08QXk/RT93K1M+MF55WzFdPCh6eSh5WzBdLWIpPEF5P3c6Uyk6dzw9eVsxXSYmeVsxXTw9UzpNPkx5XihiPD15WzBdJiZ5WzBdPD14KSl7dmFyIFQ9eHYocCwoLWYrXykvbSk7cmV0dXJuIGJ2KFQsZCksW3ksZ3YoVCldfX19ZnVuY3Rpb24gcyhlLG4pe3ZhciByPWk/dDpMeS10LG89MDtyZXR1cm4gZTwtcj9vfD0xOmU+ciYmKG98PTIpLG48LXI/b3w9NDpuPnImJihvfD04KSxvfXJldHVybiB6YihvLChmdW5jdGlvbiBsKHQpe3ZhciBlLG4sbCxjLHU7cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe2M9bD0hMSx1PTF9LHBvaW50OmZ1bmN0aW9uKGgsZCl7dmFyIHAsZj1baCxkXSxtPW8oaCxkKSxnPWk/bT8wOnMoaCxkKTptP3MoaCsoaDwwP0x5Oi1MeSksZCk6MDtpZighZSYmKGM9bD1tKSYmdC5saW5lU3RhcnQoKSxtIT09bCYmKCEocD1hKGUsZikpfHxrYihlLHApfHxrYihmLHApKSYmKGZbMl09MSksbSE9PWwpdT0wLG0/KHQubGluZVN0YXJ0KCkscD1hKGYsZSksdC5wb2ludChwWzBdLHBbMV0pKToocD1hKGUsZiksdC5wb2ludChwWzBdLHBbMV0sMiksdC5saW5lRW5kKCkpLGU9cDtlbHNlIGlmKHImJmUmJmlebSl7dmFyIF87ZyZufHwhKF89YShmLGUsITApKXx8KHU9MCxpPyh0LmxpbmVTdGFydCgpLHQucG9pbnQoX1swXVswXSxfWzBdWzFdKSx0LnBvaW50KF9bMV1bMF0sX1sxXVsxXSksdC5saW5lRW5kKCkpOih0LnBvaW50KF9bMV1bMF0sX1sxXVsxXSksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KF9bMF1bMF0sX1swXVsxXSwzKSkpfSFtfHxlJiZrYihlLGYpfHx0LnBvaW50KGZbMF0sZlsxXSksZT1mLGw9bSxuPWd9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtsJiZ0LmxpbmVFbmQoKSxlPW51bGx9LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIHV8KGMmJmwpPDwxfX19KSwoZnVuY3Rpb24gYyhlLGkscixvKXtUYihvLHQsbixyLGUsaSl9KSxpP1swLC10XTpbLUx5LHQtTHldKX12YXIgamI9MWU5LEdiPS1qYjtmdW5jdGlvbiBXYih0LGUsbixpKXtmdW5jdGlvbiByKHIsbyl7cmV0dXJuIHQ8PXImJnI8PW4mJmU8PW8mJm88PWl9ZnVuY3Rpb24gbyhyLG8scyxjKXt2YXIgdT0wLGg9MDtpZihudWxsPT1yfHwodT1hKHIscykpIT09KGg9YShvLHMpKXx8bChyLG8pPDBecz4wKWRve2MucG9pbnQoMD09PXV8fDM9PT11P3Q6bix1PjE/aTplKX13aGlsZSgodT0odStzKzQpJTQpIT09aCk7ZWxzZSBjLnBvaW50KG9bMF0sb1sxXSl9ZnVuY3Rpb24gYShpLHIpe3JldHVybiB6eShpWzBdLXQpPEF5P3I+MD8wOjM6enkoaVswXS1uKTxBeT9yPjA/MjoxOnp5KGlbMV0tZSk8QXk/cj4wPzE6MDpyPjA/MzoyfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gbCh0LngsZS54KX1mdW5jdGlvbiBsKHQsZSl7dmFyIG49YSh0LDEpLGk9YShlLDEpO3JldHVybiBuIT09aT9uLWk6MD09PW4/ZVsxXS10WzFdOjE9PT1uP3RbMF0tZVswXToyPT09bj90WzFdLWVbMV06ZVswXS10WzBdfXJldHVybiBmdW5jdGlvbihhKXt2YXIgbCxjLHUsaCxkLHAsZixtLGcsXyx5LHY9YSxiPUFiKCkseD17cG9pbnQ6VCxsaW5lU3RhcnQ6ZnVuY3Rpb24gdygpe3gucG9pbnQ9QyxjJiZjLnB1c2godT1bXSksXz0hMCxnPSExLGY9bT1OYU59LGxpbmVFbmQ6ZnVuY3Rpb24gUygpe2wmJihDKGgsZCkscCYmZyYmYi5yZWpvaW4oKSxsLnB1c2goYi5yZXN1bHQoKSkpLHgucG9pbnQ9VCxnJiZ2LmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uIE0oKXt2PWIsbD1bXSxjPVtdLHk9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24gRSgpe3ZhciBlPShmdW5jdGlvbiBuKCl7Zm9yKHZhciBlPTAsbj0wLHI9Yy5sZW5ndGg7bjxyOysrbilmb3IodmFyIG8sYSxzPWNbbl0sbD0xLHU9cy5sZW5ndGgsaD1zWzBdLGQ9aFswXSxwPWhbMV07bDx1OysrbClvPWQsYT1wLGQ9KGg9c1tsXSlbMF0scD1oWzFdLGE8PWk/cD5pJiYoZC1vKSooaS1hKT4ocC1hKSoodC1vKSYmKytlOnA8PWkmJihkLW8pKihpLWEpPChwLWEpKih0LW8pJiYtLWU7cmV0dXJuIGV9KSgpLHI9eSYmZSxoPShsPXFsKGwpKS5sZW5ndGg7KHJ8fGgpJiYoYS5wb2x5Z29uU3RhcnQoKSxyJiYoYS5saW5lU3RhcnQoKSxvKG51bGwsbnVsbCwxLGEpLGEubGluZUVuZCgpKSxoJiZQYihsLHMsZSxvLGEpLGEucG9seWdvbkVuZCgpKSx2PWEsbD1jPXU9bnVsbH19O2Z1bmN0aW9uIFQodCxlKXtyKHQsZSkmJnYucG9pbnQodCxlKX1mdW5jdGlvbiBDKG8sYSl7dmFyIHM9cihvLGEpO2lmKGMmJnUucHVzaChbbyxhXSksXyloPW8sZD1hLHA9cyxfPSExLHMmJih2LmxpbmVTdGFydCgpLHYucG9pbnQobyxhKSk7ZWxzZSBpZihzJiZnKXYucG9pbnQobyxhKTtlbHNle3ZhciBsPVtmPU1hdGgubWF4KEdiLE1hdGgubWluKGpiLGYpKSxtPU1hdGgubWF4KEdiLE1hdGgubWluKGpiLG0pKV0sYj1bbz1NYXRoLm1heChHYixNYXRoLm1pbihqYixvKSksYT1NYXRoLm1heChHYixNYXRoLm1pbihqYixhKSldOyEoZnVuY3Rpb24geCh0LGUsbixpLHIsbyl7dmFyIGEscz10WzBdLGw9dFsxXSxjPTAsdT0xLGg9ZVswXS1zLGQ9ZVsxXS1sO2lmKGE9bi1zLGh8fCEoYT4wKSl7aWYoYS89aCxoPDApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1lbHNlIGlmKGg+MCl7aWYoYT51KXJldHVybjthPmMmJihjPWEpfWlmKGE9ci1zLGh8fCEoYTwwKSl7aWYoYS89aCxoPDApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1lbHNlIGlmKGg+MCl7aWYoYTxjKXJldHVybjthPHUmJih1PWEpfWlmKGE9aS1sLGR8fCEoYT4wKSl7aWYoYS89ZCxkPDApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1lbHNlIGlmKGQ+MCl7aWYoYT51KXJldHVybjthPmMmJihjPWEpfWlmKGE9by1sLGR8fCEoYTwwKSl7aWYoYS89ZCxkPDApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1lbHNlIGlmKGQ+MCl7aWYoYTxjKXJldHVybjthPHUmJih1PWEpfXJldHVybiBjPjAmJih0WzBdPXMrYypoLHRbMV09bCtjKmQpLHU8MSYmKGVbMF09cyt1KmgsZVsxXT1sK3UqZCksITB9fX19fSkobCxiLHQsZSxuLGkpP3MmJih2LmxpbmVTdGFydCgpLHYucG9pbnQobyxhKSx5PSExKTooZ3x8KHYubGluZVN0YXJ0KCksdi5wb2ludChsWzBdLGxbMV0pKSx2LnBvaW50KGJbMF0sYlsxXSksc3x8di5saW5lRW5kKCkseT0hMSl9Zj1vLG09YSxnPXN9cmV0dXJuIHh9fXZhciBxYixZYixYYiwkYj1NeSgpLEtiPXtzcGhlcmU6WnkscG9pbnQ6WnksbGluZVN0YXJ0OmZ1bmN0aW9uIFpiKCl7S2IucG9pbnQ9UWIsS2IubGluZUVuZD1KYn0sbGluZUVuZDpaeSxwb2x5Z29uU3RhcnQ6WnkscG9seWdvbkVuZDpaeX07ZnVuY3Rpb24gSmIoKXtLYi5wb2ludD1LYi5saW5lRW5kPVp5fWZ1bmN0aW9uIFFiKHQsZSl7cWI9dCo9T3ksWWI9R3koZSo9T3kpLFhiPUh5KGUpLEtiLnBvaW50PXR4fWZ1bmN0aW9uIHR4KHQsZSl7dCo9T3k7dmFyIG49R3koZSo9T3kpLGk9SHkoZSkscj16eSh0LXFiKSxvPUh5KHIpLGE9aSpHeShyKSxzPVhiKm4tWWIqaSpvLGw9WWIqbitYYippKm87JGIuYWRkKEJ5KHF5KGEqYStzKnMpLGwpKSxxYj10LFliPW4sWGI9aX1mdW5jdGlvbiBleCh0KXtyZXR1cm4gJGIucmVzZXQoKSxpdih0LEtiKSwrJGJ9dmFyIG54PVtudWxsLG51bGxdLGl4PXt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpueH07ZnVuY3Rpb24gcngodCxlKXtyZXR1cm4gbnhbMF09dCxueFsxXT1lLGV4KGl4KX12YXIgb3g9e0ZlYXR1cmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gc3godC5nZW9tZXRyeSxlKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5mZWF0dXJlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKHN4KG5baV0uZ2VvbWV0cnksZSkpcmV0dXJuITA7cmV0dXJuITF9fSxheD17U3BoZXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LFBvaW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGx4KHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5jb29yZGluYXRlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKGx4KG5baV0sZSkpcmV0dXJuITA7cmV0dXJuITF9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gY3godC5jb29yZGluYXRlcyxlKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylpZihjeChuW2ldLGUpKXJldHVybiEwO3JldHVybiExfSxQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHV4KHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspaWYodXgobltpXSxlKSlyZXR1cm4hMDtyZXR1cm4hMX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZ2VvbWV0cmllcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKHN4KG5baV0sZSkpcmV0dXJuITA7cmV0dXJuITF9fTtmdW5jdGlvbiBzeCh0LGUpe3JldHVybiEoIXR8fCFheC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpKSYmYXhbdC50eXBlXSh0LGUpfWZ1bmN0aW9uIGx4KHQsZSl7cmV0dXJuIDA9PT1yeCh0LGUpfWZ1bmN0aW9uIGN4KHQsZSl7Zm9yKHZhciBuLGkscixvPTAsYT10Lmxlbmd0aDtvPGE7bysrKXtpZigwPT09KGk9cngodFtvXSxlKSkpcmV0dXJuITA7aWYobz4wJiYocj1yeCh0W29dLHRbby0xXSkpPjAmJm48PXImJmk8PXImJihuK2ktcikqKDEtTWF0aC5wb3coKG4taSkvciwyKSk8a3kqcilyZXR1cm4hMDtuPWl9cmV0dXJuITF9ZnVuY3Rpb24gdXgodCxlKXtyZXR1cm4hIU9iKHQubWFwKGh4KSxkeChlKSl9ZnVuY3Rpb24gaHgodCl7cmV0dXJuKHQ9dC5tYXAoZHgpKS5wb3AoKSx0fWZ1bmN0aW9uIGR4KHQpe3JldHVyblt0WzBdKk95LHRbMV0qT3ldfWZ1bmN0aW9uIHB4KHQsZSxuKXt2YXIgaT16bCh0LGUtQXksbikuY29uY2F0KGUpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVyblt0LGVdfSkpfX1mdW5jdGlvbiBmeCh0LGUsbil7dmFyIGk9emwodCxlLUF5LG4pLmNvbmNhdChlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkubWFwKChmdW5jdGlvbihlKXtyZXR1cm5bZSx0XX0pKX19ZnVuY3Rpb24gbXgoKXt2YXIgdCxlLG4saSxyLG8sYSxzLGwsYyx1LGgsZD0xMCxwPWQsZj05MCxtPTM2MCxnPTIuNTtmdW5jdGlvbiBfKCl7cmV0dXJue3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6eSgpfX1mdW5jdGlvbiB5KCl7cmV0dXJuIHpsKEZ5KGkvZikqZixuLGYpLm1hcCh1KS5jb25jYXQoemwoRnkocy9tKSptLGEsbSkubWFwKGgpKS5jb25jYXQoemwoRnkoZS9kKSpkLHQsZCkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4genkodCVmKT5BeX0pKS5tYXAobCkpLmNvbmNhdCh6bChGeShvL3ApKnAscixwKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB6eSh0JW0pPkF5fSkpLm1hcChjKSl9cmV0dXJuIF8ubGluZXM9ZnVuY3Rpb24oKXtyZXR1cm4geSgpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6IkxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOnR9fSkpfSxfLm91dGxpbmU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W3UoaSkuY29uY2F0KGgoYSkuc2xpY2UoMSksdShuKS5yZXZlcnNlKCkuc2xpY2UoMSksaChzKS5yZXZlcnNlKCkuc2xpY2UoMSkpXX19LF8uZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP18uZXh0ZW50TWFqb3IodCkuZXh0ZW50TWlub3IodCk6Xy5leHRlbnRNaW5vcigpfSxfLmV4dGVudE1ham9yPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0WzBdWzFdLGE9K3RbMV1bMV0sKGk9K3RbMF1bMF0pPihuPSt0WzFdWzBdKSYmKHQ9aSxpPW4sbj10KSxzPmEmJih0PXMscz1hLGE9dCksXy5wcmVjaXNpb24oZykpOltbaSxzXSxbbixhXV19LF8uZXh0ZW50TWlub3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K25bMF1bMV0scj0rblsxXVsxXSwoZT0rblswXVswXSk+KHQ9K25bMV1bMF0pJiYobj1lLGU9dCx0PW4pLG8+ciYmKG49byxvPXIscj1uKSxfLnByZWNpc2lvbihnKSk6W1tlLG9dLFt0LHJdXX0sXy5zdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP18uc3RlcE1ham9yKHQpLnN0ZXBNaW5vcih0KTpfLnN0ZXBNaW5vcigpfSxfLnN0ZXBNYWpvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj0rdFswXSxtPSt0WzFdLF8pOltmLG1dfSxfLnN0ZXBNaW5vcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD0rdFswXSxwPSt0WzFdLF8pOltkLHBdfSxfLnByZWNpc2lvbj1mdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz0rZCxsPXB4KG8sciw5MCksYz1meChlLHQsZyksdT1weChzLGEsOTApLGg9ZngoaSxuLGcpLF8pOmd9LF8uZXh0ZW50TWFqb3IoW1stMTgwLC04OS45OTk5OTldLFsxODAsODkuOTk5OTk5XV0pLmV4dGVudE1pbm9yKFtbLTE4MCwtODAuMDAwMDAxXSxbMTgwLDgwLjAwMDAwMV1dKX1mdW5jdGlvbiBneCh0KXtyZXR1cm4gdH12YXIgX3gseXgsdngsYngseHg9TXkoKSx3eD1NeSgpLFN4PXtwb2ludDpaeSxsaW5lU3RhcnQ6WnksbGluZUVuZDpaeSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtTeC5saW5lU3RhcnQ9TXgsU3gubGluZUVuZD1DeH0scG9seWdvbkVuZDpmdW5jdGlvbigpe1N4LmxpbmVTdGFydD1TeC5saW5lRW5kPVN4LnBvaW50PVp5LHh4LmFkZCh6eSh3eCkpLHd4LnJlc2V0KCl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PXh4LzI7cmV0dXJuIHh4LnJlc2V0KCksdH19O2Z1bmN0aW9uIE14KCl7U3gucG9pbnQ9RXh9ZnVuY3Rpb24gRXgodCxlKXtTeC5wb2ludD1UeCxfeD12eD10LHl4PWJ4PWV9ZnVuY3Rpb24gVHgodCxlKXt3eC5hZGQoYngqdC12eCplKSx2eD10LGJ4PWV9ZnVuY3Rpb24gQ3goKXtUeChfeCx5eCl9dmFyIEF4LGt4LEx4LFB4LE54PVN4LEl4PTEvMCxSeD1JeCxPeD0tSXgseng9T3gsRHg9e3BvaW50OmZ1bmN0aW9uIEJ4KHQsZSl7dDxJeCYmKEl4PXQpLHQ+T3gmJihPeD10KSxlPFJ4JiYoUng9ZSksZT56eCYmKHp4PWUpfSxsaW5lU3RhcnQ6WnksbGluZUVuZDpaeSxwb2x5Z29uU3RhcnQ6WnkscG9seWdvbkVuZDpaeSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1bW0l4LFJ4XSxbT3gsenhdXTtyZXR1cm4gT3g9eng9LShSeD1JeD0xLzApLHR9fSxIeD0wLEZ4PTAsVng9MCxVeD0wLGp4PTAsR3g9MCxXeD0wLHF4PTAsWXg9MCxYeD17cG9pbnQ6JHgsbGluZVN0YXJ0Okt4LGxpbmVFbmQ6UXgscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7WHgubGluZVN0YXJ0PXR3LFh4LmxpbmVFbmQ9ZXd9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtYeC5wb2ludD0keCxYeC5saW5lU3RhcnQ9S3gsWHgubGluZUVuZD1ReH0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9WXg/W1d4L1l4LHF4L1l4XTpHeD9bVXgvR3gsangvR3hdOlZ4P1tIeC9WeCxGeC9WeF06W05hTixOYU5dO3JldHVybiBIeD1GeD1WeD1VeD1qeD1HeD1XeD1xeD1ZeD0wLHR9fTtmdW5jdGlvbiAkeCh0LGUpe0h4Kz10LEZ4Kz1lLCsrVnh9ZnVuY3Rpb24gS3goKXtYeC5wb2ludD1aeH1mdW5jdGlvbiBaeCh0LGUpe1h4LnBvaW50PUp4LCR4KEx4PXQsUHg9ZSl9ZnVuY3Rpb24gSngodCxlKXt2YXIgbj10LUx4LGk9ZS1QeCxyPXF5KG4qbitpKmkpO1V4Kz1yKihMeCt0KS8yLGp4Kz1yKihQeCtlKS8yLEd4Kz1yLCR4KEx4PXQsUHg9ZSl9ZnVuY3Rpb24gUXgoKXtYeC5wb2ludD0keH1mdW5jdGlvbiB0dygpe1h4LnBvaW50PW53fWZ1bmN0aW9uIGV3KCl7aXcoQXgsa3gpfWZ1bmN0aW9uIG53KHQsZSl7WHgucG9pbnQ9aXcsJHgoQXg9THg9dCxreD1QeD1lKX1mdW5jdGlvbiBpdyh0LGUpe3ZhciBuPXQtTHgsaT1lLVB4LHI9cXkobipuK2kqaSk7VXgrPXIqKEx4K3QpLzIsangrPXIqKFB4K2UpLzIsR3grPXIsV3grPShyPVB4KnQtTHgqZSkqKEx4K3QpLHF4Kz1yKihQeCtlKSxZeCs9MypyLCR4KEx4PXQsUHg9ZSl9dmFyIHJ3PVh4O2Z1bmN0aW9uIG93KHQpe3RoaXMuX2NvbnRleHQ9dH1vdy5wcm90b3R5cGU9e19yYWRpdXM6NC41LHBvaW50UmFkaXVzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yYWRpdXM9dCx0aGlzfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA9PT10aGlzLl9saW5lJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX2NvbnRleHQubGluZVRvKHQsZSk7YnJlYWs7ZGVmYXVsdDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0K3RoaXMuX3JhZGl1cyxlKSx0aGlzLl9jb250ZXh0LmFyYyh0LGUsdGhpcy5fcmFkaXVzLDAsSXkpfX0scmVzdWx0Olp5fTt2YXIgYXcsc3csbHcsY3csdXcsaHc9TXkoKSxkdz17cG9pbnQ6WnksbGluZVN0YXJ0OmZ1bmN0aW9uKCl7ZHcucG9pbnQ9cHd9LGxpbmVFbmQ6ZnVuY3Rpb24oKXthdyYmZncoc3csbHcpLGR3LnBvaW50PVp5fSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXthdz0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe2F3PW51bGx9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PStodztyZXR1cm4gaHcucmVzZXQoKSx0fX07ZnVuY3Rpb24gcHcodCxlKXtkdy5wb2ludD1mdyxzdz1jdz10LGx3PXV3PWV9ZnVuY3Rpb24gZncodCxlKXtody5hZGQocXkoKGN3LT10KSpjdysodXctPWUpKnV3KSksY3c9dCx1dz1lfXZhciBtdz1kdztmdW5jdGlvbiBndygpe3RoaXMuX3N0cmluZz1bXX1mdW5jdGlvbiBfdyh0KXtyZXR1cm4ibTAsIit0KyJhIit0KyIsIit0KyIgMCAxLDEgMCwiKy0yKnQrImEiK3QrIiwiK3QrIiAwIDEsMSAwLCIrMip0KyJ6In1mdW5jdGlvbiB5dyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49bmV3IHZ3O2Zvcih2YXIgaSBpbiB0KW5baV09dFtpXTtyZXR1cm4gbi5zdHJlYW09ZSxufX1mdW5jdGlvbiB2dygpe31mdW5jdGlvbiBidyh0LGUsbil7dmFyIGk9dC5jbGlwRXh0ZW50JiZ0LmNsaXBFeHRlbnQoKTtyZXR1cm4gdC5zY2FsZSgxNTApLnRyYW5zbGF0ZShbMCwwXSksbnVsbCE9aSYmdC5jbGlwRXh0ZW50KG51bGwpLGl2KG4sdC5zdHJlYW0oRHgpKSxlKER4LnJlc3VsdCgpKSxudWxsIT1pJiZ0LmNsaXBFeHRlbnQoaSksdH1mdW5jdGlvbiB4dyh0LGUsbil7cmV0dXJuIGJ3KHQsKGZ1bmN0aW9uKG4pe3ZhciBpPWVbMV1bMF0tZVswXVswXSxyPWVbMV1bMV0tZVswXVsxXSxvPU1hdGgubWluKGkvKG5bMV1bMF0tblswXVswXSksci8oblsxXVsxXS1uWzBdWzFdKSksYT0rZVswXVswXSsoaS1vKihuWzFdWzBdK25bMF1bMF0pKS8yLHM9K2VbMF1bMV0rKHItbyooblsxXVsxXStuWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCpvKS50cmFuc2xhdGUoW2Esc10pfSksbil9ZnVuY3Rpb24gd3codCxlLG4pe3JldHVybiB4dyh0LFtbMCwwXSxlXSxuKX1mdW5jdGlvbiBTdyh0LGUsbil7cmV0dXJuIGJ3KHQsKGZ1bmN0aW9uKG4pe3ZhciBpPStlLHI9aS8oblsxXVswXS1uWzBdWzBdKSxvPShpLXIqKG5bMV1bMF0rblswXVswXSkpLzIsYT0tcipuWzBdWzFdO3Quc2NhbGUoMTUwKnIpLnRyYW5zbGF0ZShbbyxhXSl9KSxuKX1mdW5jdGlvbiBNdyh0LGUsbil7cmV0dXJuIGJ3KHQsKGZ1bmN0aW9uKG4pe3ZhciBpPStlLHI9aS8oblsxXVsxXS1uWzBdWzFdKSxvPS1yKm5bMF1bMF0sYT0oaS1yKihuWzFdWzFdK25bMF1bMV0pKS8yO3Quc2NhbGUoMTUwKnIpLnRyYW5zbGF0ZShbbyxhXSl9KSxuKX1ndy5wcm90b3R5cGU9e19yYWRpdXM6NC41LF9jaXJjbGU6X3coNC41KSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4odD0rdCkhPT10aGlzLl9yYWRpdXMmJih0aGlzLl9yYWRpdXM9dCx0aGlzLl9jaXJjbGU9bnVsbCksdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fc3RyaW5nLnB1c2goIloiKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fc3RyaW5nLnB1c2goIk0iLHQsIiwiLGUpLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3N0cmluZy5wdXNoKCJMIix0LCIsIixlKTticmVhaztkZWZhdWx0Om51bGw9PXRoaXMuX2NpcmNsZSYmKHRoaXMuX2NpcmNsZT1fdyh0aGlzLl9yYWRpdXMpKSx0aGlzLl9zdHJpbmcucHVzaCgiTSIsdCwiLCIsZSx0aGlzLl9jaXJjbGUpfX0scmVzdWx0OmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RyaW5nLmxlbmd0aCl7dmFyIHQ9dGhpcy5fc3RyaW5nLmpvaW4oIiIpO3JldHVybiB0aGlzLl9zdHJpbmc9W10sdH1yZXR1cm4gbnVsbH19LHZ3LnByb3RvdHlwZT17Y29uc3RydWN0b3I6dncscG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLnN0cmVhbS5wb2ludCh0LGUpfSxzcGhlcmU6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvbkVuZCgpfX07dmFyIEV3PUh5KDMwKk95KTtmdW5jdGlvbiBUdyh0LGUpe3JldHVybitlPyhmdW5jdGlvbiBuKHQsZSl7ZnVuY3Rpb24gbihpLHIsbyxhLHMsbCxjLHUsaCxkLHAsZixtLGcpe3ZhciBfPWMtaSx5PXUtcix2PV8qXyt5Knk7aWYodj40KmUmJm0tLSl7dmFyIGI9YStkLHg9cytwLHc9bCtmLFM9cXkoYipiK3gqeCt3KncpLE09JHkody89UyksRT16eSh6eSh3KS0xKTxBeXx8enkoby1oKTxBeT8obytoKS8yOkJ5KHgsYiksVD10KEUsTSksQz1UWzBdLEE9VFsxXSxrPUMtaSxMPUEtcixQPXkqay1fKkw7KFAqUC92PmV8fHp5KChfKmsreSpMKS92LS41KT4uM3x8YSpkK3MqcCtsKmY8RXcpJiYobihpLHIsbyxhLHMsbCxDLEEsRSxiLz1TLHgvPVMsdyxtLGcpLGcucG9pbnQoQyxBKSxuKEMsQSxFLGIseCx3LGMsdSxoLGQscCxmLG0sZykpfX1yZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGkscixvLGEscyxsLGMsdSxoLGQscCxmLG09e3BvaW50OmcsbGluZVN0YXJ0Ol8sbGluZUVuZDp2LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2UucG9seWdvblN0YXJ0KCksbS5saW5lU3RhcnQ9Yn0scG9seWdvbkVuZDpmdW5jdGlvbigpe2UucG9seWdvbkVuZCgpLG0ubGluZVN0YXJ0PV99fTtmdW5jdGlvbiBnKG4saSl7bj10KG4saSksZS5wb2ludChuWzBdLG5bMV0pfWZ1bmN0aW9uIF8oKXt1PU5hTixtLnBvaW50PXksZS5saW5lU3RhcnQoKX1mdW5jdGlvbiB5KGkscil7dmFyIG89X3YoW2kscl0pLGE9dChpLHIpO24odSxoLGMsZCxwLGYsdT1hWzBdLGg9YVsxXSxjPWksZD1vWzBdLHA9b1sxXSxmPW9bMl0sMTYsZSksZS5wb2ludCh1LGgpfWZ1bmN0aW9uIHYoKXttLnBvaW50PWcsZS5saW5lRW5kKCl9ZnVuY3Rpb24gYigpe18oKSxtLnBvaW50PXgsbS5saW5lRW5kPXd9ZnVuY3Rpb24geCh0LGUpe3koaT10LGUpLHI9dSxvPWgsYT1kLHM9cCxsPWYsbS5wb2ludD15fWZ1bmN0aW9uIHcoKXtuKHUsaCxjLGQscCxmLHIsbyxpLGEscyxsLDE2LGUpLG0ubGluZUVuZD12LHYoKX1yZXR1cm4gbX19KSh0LGUpOihmdW5jdGlvbiBpKHQpe3JldHVybiB5dyh7cG9pbnQ6ZnVuY3Rpb24oZSxuKXtlPXQoZSxuKSx0aGlzLnN0cmVhbS5wb2ludChlWzBdLGVbMV0pfX0pfSkodCl9dmFyIEN3PXl3KHtwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuc3RyZWFtLnBvaW50KHQqT3ksZSpPeSl9fSk7ZnVuY3Rpb24gQXcodCxlLG4saSxyKXtmdW5jdGlvbiBvKG8sYSl7cmV0dXJuW2UrdCoobyo9aSksbi10KihhKj1yKV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKG8sYSl7cmV0dXJuWyhvLWUpL3QqaSwobi1hKS90KnJdfSxvfWZ1bmN0aW9uIGt3KHQsZSxuLGkscixvKXt2YXIgYT1IeShvKSxzPUd5KG8pLGw9YSp0LGM9cyp0LHU9YS90LGg9cy90LGQ9KHMqbi1hKmUpL3QscD0ocyplK2EqbikvdDtmdW5jdGlvbiBmKHQsbyl7cmV0dXJuW2wqKHQqPWkpLWMqKG8qPXIpK2Usbi1jKnQtbCpvXX1yZXR1cm4gZi5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5baSoodSp0LWgqZStkKSxyKihwLWgqdC11KmUpXX0sZn1mdW5jdGlvbiBMdyh0KXtyZXR1cm4gUHcoKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSkoKX1mdW5jdGlvbiBQdyh0KXt2YXIgZSxuLGkscixvLGEscyxsLGMsdSxoPTE1MCxkPTQ4MCxwPTI1MCxmPTAsbT0wLGc9MCxfPTAseT0wLHY9MCxiPTEseD0xLHc9bnVsbCxTPUhiLE09bnVsbCxFPWd4LFQ9LjU7ZnVuY3Rpb24gQyh0KXtyZXR1cm4gbCh0WzBdKk95LHRbMV0qT3kpfWZ1bmN0aW9uIEEodCl7cmV0dXJuKHQ9bC5pbnZlcnQodFswXSx0WzFdKSkmJlt0WzBdKlJ5LHRbMV0qUnldfWZ1bmN0aW9uIGsoKXt2YXIgdD1rdyhoLDAsMCxiLHgsdikuYXBwbHkobnVsbCxlKGYsbSkpLGk9KHY/a3c6QXcpKGgsZC10WzBdLHAtdFsxXSxiLHgsdik7cmV0dXJuIG49eGIoZyxfLHkpLHM9dmIoZSxpKSxsPXZiKG4scyksYT1UdyhzLFQpLEwoKX1mdW5jdGlvbiBMKCl7cmV0dXJuIGM9dT1udWxsLEN9cmV0dXJuIEMuc3RyZWFtPWZ1bmN0aW9uKHQpe3JldHVybiBjJiZ1PT09dD9jOmM9Q3coKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHl3KHtwb2ludDpmdW5jdGlvbihlLG4pe3ZhciBpPXQoZSxuKTtyZXR1cm4gdGhpcy5zdHJlYW0ucG9pbnQoaVswXSxpWzFdKX19KX0pKG4pKFMoYShFKHU9dCkpKSkpfSxDLnByZWNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFM9dCx3PXZvaWQgMCxMKCkpOlN9LEMucG9zdGNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEU9dCxNPWk9cj1vPW51bGwsTCgpKTpFfSxDLmNsaXBBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oUz0rdD9VYih3PXQqT3kpOih3PW51bGwsSGIpLEwoKSk6dypSeX0sQy5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhFPW51bGw9PXQ/KE09aT1yPW89bnVsbCxneCk6V2IoTT0rdFswXVswXSxpPSt0WzBdWzFdLHI9K3RbMV1bMF0sbz0rdFsxXVsxXSksTCgpKTpudWxsPT1NP251bGw6W1tNLGldLFtyLG9dXX0sQy5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD0rdCxrKCkpOmh9LEMudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPSt0WzBdLHA9K3RbMV0saygpKTpbZCxwXX0sQy5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9dFswXSUzNjAqT3ksbT10WzFdJTM2MCpPeSxrKCkpOltmKlJ5LG0qUnldfSxDLnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz10WzBdJTM2MCpPeSxfPXRbMV0lMzYwKk95LHk9dC5sZW5ndGg+Mj90WzJdJTM2MCpPeTowLGsoKSk6W2cqUnksXypSeSx5KlJ5XX0sQy5hbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj10JTM2MCpPeSxrKCkpOnYqUnl9LEMucmVmbGVjdFg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9dD8tMToxLGsoKSk6YjwwfSxDLnJlZmxlY3RZPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh4PXQ/LTE6MSxrKCkpOng8MH0sQy5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9VHcocyxUPXQqdCksTCgpKTpxeShUKX0sQy5maXRFeHRlbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4geHcoQyx0LGUpfSxDLmZpdFNpemU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gd3coQyx0LGUpfSxDLmZpdFdpZHRoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFN3KEMsdCxlKX0sQy5maXRIZWlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTXcoQyx0LGUpfSxmdW5jdGlvbigpe3JldHVybiBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpLEMuaW52ZXJ0PWUuaW52ZXJ0JiZBLGsoKX19ZnVuY3Rpb24gTncodCl7dmFyIGU9MCxuPUx5LzMsaT1Qdyh0KSxyPWkoZSxuKTtyZXR1cm4gci5wYXJhbGxlbHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/aShlPXRbMF0qT3ksbj10WzFdKk95KTpbZSpSeSxuKlJ5XX0scn1mdW5jdGlvbiBJdyh0LGUpe3ZhciBuPUd5KHQpLGk9KG4rR3koZSkpLzI7aWYoenkoaSk8QXkpcmV0dXJuKGZ1bmN0aW9uIHIodCl7dmFyIGU9SHkodCk7ZnVuY3Rpb24gbih0LG4pe3JldHVyblt0KmUsR3kobikvZV19cmV0dXJuIG4uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW3QvZSwkeShuKmUpXX0sbn0pKHQpO3ZhciBvPTErbiooMippLW4pLGE9cXkobykvaTtmdW5jdGlvbiBzKHQsZSl7dmFyIG49cXkoby0yKmkqR3koZSkpL2k7cmV0dXJuW24qR3kodCo9aSksYS1uKkh5KHQpXX1yZXR1cm4gcy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1hLWUscj1CeSh0LHp5KG4pKSpXeShuKTtyZXR1cm4gbippPDAmJihyLT1MeSpXeSh0KSpXeShuKSksW3IvaSwkeSgoby0odCp0K24qbikqaSppKS8oMippKSldfSxzfWZ1bmN0aW9uIFJ3KCl7cmV0dXJuIE53KEl3KS5zY2FsZSgxNTUuNDI0KS5jZW50ZXIoWzAsMzMuNjQ0Ml0pfWZ1bmN0aW9uIE93KCl7cmV0dXJuIFJ3KCkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKS50cmFuc2xhdGUoWzQ4MCwyNTBdKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSl9ZnVuY3Rpb24gencodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9SHkoZSkscj1IeShuKSxvPXQoaSpyKTtyZXR1cm5bbypyKkd5KGUpLG8qR3kobildfX1mdW5jdGlvbiBEdyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgaT1xeShlKmUrbipuKSxyPXQoaSksbz1HeShyKSxhPUh5KHIpO3JldHVybltCeShlKm8saSphKSwkeShpJiZuKm8vaSldfX12YXIgQnc9encoKGZ1bmN0aW9uKHQpe3JldHVybiBxeSgyLygxK3QpKX0pKTtCdy5pbnZlcnQ9RHcoKGZ1bmN0aW9uKHQpe3JldHVybiAyKiR5KHQvMil9KSk7dmFyIEh3PXp3KChmdW5jdGlvbih0KXtyZXR1cm4odD1YeSh0KSkmJnQvR3kodCl9KSk7ZnVuY3Rpb24gRncodCxlKXtyZXR1cm5bdCxVeShZeSgoUHkrZSkvMikpXX1mdW5jdGlvbiBWdyh0KXt2YXIgZSxuLGkscj1Mdyh0KSxvPXIuY2VudGVyLGE9ci5zY2FsZSxzPXIudHJhbnNsYXRlLGw9ci5jbGlwRXh0ZW50LGM9bnVsbDtmdW5jdGlvbiB1KCl7dmFyIG89THkqYSgpLHM9cihFYihyLnJvdGF0ZSgpKS5pbnZlcnQoWzAsMF0pKTtyZXR1cm4gbChudWxsPT1jP1tbc1swXS1vLHNbMV0tb10sW3NbMF0rbyxzWzFdK29dXTp0PT09Rnc/W1tNYXRoLm1heChzWzBdLW8sYyksZV0sW01hdGgubWluKHNbMF0rbyxuKSxpXV06W1tjLE1hdGgubWF4KHNbMV0tbyxlKV0sW24sTWF0aC5taW4oc1sxXStvLGkpXV0pfXJldHVybiByLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhKHQpLHUoKSk6YSgpfSxyLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocyh0KSx1KCkpOnMoKX0sci5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG8odCksdSgpKTpvKCl9LHIuY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9jPWU9bj1pPW51bGw6KGM9K3RbMF1bMF0sZT0rdFswXVsxXSxuPSt0WzFdWzBdLGk9K3RbMV1bMV0pLHUoKSk6bnVsbD09Yz9udWxsOltbYyxlXSxbbixpXV19LHUoKX1mdW5jdGlvbiBVdyh0KXtyZXR1cm4gWXkoKFB5K3QpLzIpfWZ1bmN0aW9uIGp3KHQsZSl7dmFyIG49SHkodCksaT10PT09ZT9HeSh0KTpVeShuL0h5KGUpKS9VeShVdyhlKS9Vdyh0KSkscj1uKmp5KFV3KHQpLGkpL2k7aWYoIWkpcmV0dXJuIEZ3O2Z1bmN0aW9uIG8odCxlKXtyPjA/ZTwtUHkrQXkmJihlPS1QeStBeSk6ZT5QeS1BeSYmKGU9UHktQXkpO3ZhciBuPXIvankoVXcoZSksaSk7cmV0dXJuW24qR3koaSp0KSxyLW4qSHkoaSp0KV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ci1lLG89V3koaSkqcXkodCp0K24qbiksYT1CeSh0LHp5KG4pKSpXeShuKTtyZXR1cm4gbippPDAmJihhLT1MeSpXeSh0KSpXeShuKSksW2EvaSwyKkR5KGp5KHIvbywxL2kpKS1QeV19LG99ZnVuY3Rpb24gR3codCxlKXtyZXR1cm5bdCxlXX1mdW5jdGlvbiBXdyh0LGUpe3ZhciBuPUh5KHQpLGk9dD09PWU/R3kodCk6KG4tSHkoZSkpLyhlLXQpLHI9bi9pK3Q7aWYoenkoaSk8QXkpcmV0dXJuIEd3O2Z1bmN0aW9uIG8odCxlKXt2YXIgbj1yLWUsbz1pKnQ7cmV0dXJuW24qR3kobyksci1uKkh5KG8pXX1yZXR1cm4gby5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1yLWUsbz1CeSh0LHp5KG4pKSpXeShuKTtyZXR1cm4gbippPDAmJihvLT1MeSpXeSh0KSpXeShuKSksW28vaSxyLVd5KGkpKnF5KHQqdCtuKm4pXX0sb31Idy5pbnZlcnQ9RHcoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpLEZ3LmludmVydD1mdW5jdGlvbih0LGUpe3JldHVyblt0LDIqRHkoVnkoZSkpLVB5XX0sR3cuaW52ZXJ0PUd3O3ZhciBxdz0xLjM0MDI2NCxZdz0tLjA4MTEwNixYdz04OTNlLTYsJHc9LjAwMzc5NixLdz1xeSgzKS8yO2Z1bmN0aW9uIFp3KHQsZSl7dmFyIG49JHkoS3cqR3koZSkpLGk9bipuLHI9aSppKmk7cmV0dXJuW3QqSHkobikvKEt3KihxdyszKll3KmkrciooNypYdys5KiR3KmkpKSksbioocXcrWXcqaStyKihYdyskdyppKSldfWZ1bmN0aW9uIEp3KHQsZSl7dmFyIG49SHkoZSksaT1IeSh0KSpuO3JldHVybltuKkd5KHQpL2ksR3koZSkvaV19ZnVuY3Rpb24gUXcodCxlKXt2YXIgbj1lKmUsaT1uKm47cmV0dXJuW3QqKC44NzA3LS4xMzE5NzkqbitpKihpKiguMDAzOTcxKm4tLjAwMTUyOSppKS0uMDEzNzkxKSksZSooMS4wMDcyMjYrbiooLjAxNTA4NStpKiguMDI4ODc0Km4tLjA0NDQ3NS0uMDA1OTE2KmkpKSldfWZ1bmN0aW9uIHRTKHQsZSl7cmV0dXJuW0h5KGUpKkd5KHQpLEd5KGUpXX1mdW5jdGlvbiBlUyh0LGUpe3ZhciBuPUh5KGUpLGk9MStIeSh0KSpuO3JldHVybltuKkd5KHQpL2ksR3koZSkvaV19ZnVuY3Rpb24gblModCxlKXtyZXR1cm5bVXkoWXkoKFB5K2UpLzIpKSwtdF19ZnVuY3Rpb24gaVModCxlKXtyZXR1cm4gdC5wYXJlbnQ9PT1lLnBhcmVudD8xOjJ9ZnVuY3Rpb24gclModCxlKXtyZXR1cm4gdCtlLnh9ZnVuY3Rpb24gb1ModCxlKXtyZXR1cm4gTWF0aC5tYXgodCxlLnkpfWZ1bmN0aW9uIGFTKHQpe3ZhciBlPTAsbj10LmNoaWxkcmVuLGk9biYmbi5sZW5ndGg7aWYoaSlmb3IoOy0taT49MDspZSs9bltpXS52YWx1ZTtlbHNlIGU9MTt0LnZhbHVlPWV9ZnVuY3Rpb24gc1ModCxlKXt2YXIgbixpLHIsbyxhLHM9bmV3IGhTKHQpLGw9K3QudmFsdWUmJihzLnZhbHVlPXQudmFsdWUpLGM9W3NdO2ZvcihudWxsPT1lJiYoZT1sUyk7bj1jLnBvcCgpOylpZihsJiYobi52YWx1ZT0rbi5kYXRhLnZhbHVlKSwocj1lKG4uZGF0YSkpJiYoYT1yLmxlbmd0aCkpZm9yKG4uY2hpbGRyZW49bmV3IEFycmF5KGEpLG89YS0xO28+PTA7LS1vKWMucHVzaChpPW4uY2hpbGRyZW5bb109bmV3IGhTKHJbb10pKSxpLnBhcmVudD1uLGkuZGVwdGg9bi5kZXB0aCsxO3JldHVybiBzLmVhY2hCZWZvcmUodVMpfWZ1bmN0aW9uIGxTKHQpe3JldHVybiB0LmNoaWxkcmVufWZ1bmN0aW9uIGNTKHQpe3QuZGF0YT10LmRhdGEuZGF0YX1mdW5jdGlvbiB1Uyh0KXt2YXIgZT0wO2Rve3QuaGVpZ2h0PWV9d2hpbGUoKHQ9dC5wYXJlbnQpJiZ0LmhlaWdodDwrK2UpfWZ1bmN0aW9uIGhTKHQpe3RoaXMuZGF0YT10LHRoaXMuZGVwdGg9dGhpcy5oZWlnaHQ9MCx0aGlzLnBhcmVudD1udWxsfVp3LmludmVydD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbixpPWUscj1pKmksbz1yKnIqcixhPTA7YTwxMiYmKG89KHI9KGktPW49KGkqKHF3K1l3KnIrbyooWHcrJHcqcikpLWUpLyhxdyszKll3KnIrbyooNypYdys5KiR3KnIpKSkqaSkqcipyLCEoenkobik8a3kpKTsrK2EpO3JldHVybltLdyp0KihxdyszKll3KnIrbyooNypYdys5KiR3KnIpKS9IeShpKSwkeShHeShpKS9LdyldfSxKdy5pbnZlcnQ9RHcoRHkpLFF3LmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBuLGk9ZSxyPTI1O2Rve3ZhciBvPWkqaSxhPW8qbztpLT1uPShpKigxLjAwNzIyNitvKiguMDE1MDg1K2EqKC4wMjg4NzQqby0uMDQ0NDc1LS4wMDU5MTYqYSkpKS1lKS8oMS4wMDcyMjYrbyooLjA0NTI1NSthKiguMjU5ODY2Km8tLjMxMTMyNS0uMDA1OTE2KjExKmEpKSl9d2hpbGUoenkobik+QXkmJi0tcj4wKTtyZXR1cm5bdC8oLjg3MDcrKG89aSppKSoobyoobypvKm8qKC4wMDM5NzEtLjAwMTUyOSpvKS0uMDEzNzkxKS0uMTMxOTc5KSksaV19LHRTLmludmVydD1EdygkeSksZVMuaW52ZXJ0PUR3KChmdW5jdGlvbih0KXtyZXR1cm4gMipEeSh0KX0pKSxuUy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bLWUsMipEeShWeSh0KSktUHldfSxoUy5wcm90b3R5cGU9c1MucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpoUyxjb3VudDpmdW5jdGlvbiBkUygpe3JldHVybiB0aGlzLmVhY2hBZnRlcihhUyl9LGVhY2g6ZnVuY3Rpb24gcFModCl7dmFyIGUsbixpLHIsbz10aGlzLGE9W29dO2Rve2ZvcihlPWEucmV2ZXJzZSgpLGE9W107bz1lLnBvcCgpOylpZih0KG8pLG49by5jaGlsZHJlbilmb3IoaT0wLHI9bi5sZW5ndGg7aTxyOysraSlhLnB1c2gobltpXSl9d2hpbGUoYS5sZW5ndGgpO3JldHVybiB0aGlzfSxlYWNoQWZ0ZXI6ZnVuY3Rpb24gZlModCl7Zm9yKHZhciBlLG4saSxyPXRoaXMsbz1bcl0sYT1bXTtyPW8ucG9wKCk7KWlmKGEucHVzaChyKSxlPXIuY2hpbGRyZW4pZm9yKG49MCxpPWUubGVuZ3RoO248aTsrK24pby5wdXNoKGVbbl0pO2Zvcig7cj1hLnBvcCgpOyl0KHIpO3JldHVybiB0aGlzfSxlYWNoQmVmb3JlOmZ1bmN0aW9uIG1TKHQpe2Zvcih2YXIgZSxuLGk9dGhpcyxyPVtpXTtpPXIucG9wKCk7KWlmKHQoaSksZT1pLmNoaWxkcmVuKWZvcihuPWUubGVuZ3RoLTE7bj49MDstLW4pci5wdXNoKGVbbl0pO3JldHVybiB0aGlzfSxzdW06ZnVuY3Rpb24gZ1ModCl7cmV0dXJuIHRoaXMuZWFjaEFmdGVyKChmdW5jdGlvbihlKXtmb3IodmFyIG49K3QoZS5kYXRhKXx8MCxpPWUuY2hpbGRyZW4scj1pJiZpLmxlbmd0aDstLXI+PTA7KW4rPWlbcl0udmFsdWU7ZS52YWx1ZT1ufSkpfSxzb3J0OmZ1bmN0aW9uIF9TKHQpe3JldHVybiB0aGlzLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW4mJmUuY2hpbGRyZW4uc29ydCh0KX0pKX0scGF0aDpmdW5jdGlvbiB5Uyh0KXtmb3IodmFyIGU9dGhpcyxuPShmdW5jdGlvbiBpKHQsZSl7aWYodD09PWUpcmV0dXJuIHQ7dmFyIG49dC5hbmNlc3RvcnMoKSxpPWUuYW5jZXN0b3JzKCkscj1udWxsO2Zvcih0PW4ucG9wKCksZT1pLnBvcCgpO3Q9PT1lOylyPXQsdD1uLnBvcCgpLGU9aS5wb3AoKTtyZXR1cm4gcn0pKGUsdCkscj1bZV07ZSE9PW47KXIucHVzaChlPWUucGFyZW50KTtmb3IodmFyIG89ci5sZW5ndGg7dCE9PW47KXIuc3BsaWNlKG8sMCx0KSx0PXQucGFyZW50O3JldHVybiByfSxhbmNlc3RvcnM6ZnVuY3Rpb24gdlMoKXtmb3IodmFyIHQ9dGhpcyxlPVt0XTt0PXQucGFyZW50OyllLnB1c2godCk7cmV0dXJuIGV9LGRlc2NlbmRhbnRzOmZ1bmN0aW9uIGJTKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oZSl7dC5wdXNoKGUpfSkpLHR9LGxlYXZlczpmdW5jdGlvbiB4Uygpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW58fHQucHVzaChlKX0pKSx0fSxsaW5rczpmdW5jdGlvbiB3Uygpe3ZhciB0PXRoaXMsZT1bXTtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbihuKXtuIT09dCYmZS5wdXNoKHtzb3VyY2U6bi5wYXJlbnQsdGFyZ2V0Om59KX0pKSxlfSxjb3B5OmZ1bmN0aW9uIFNTKCl7cmV0dXJuIHNTKHRoaXMpLmVhY2hCZWZvcmUoY1MpfX07dmFyIE1TPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBFUyh0KXtmb3IodmFyIGUsbixpPTAscj0odD0oZnVuY3Rpb24gbyh0KXtmb3IodmFyIGUsbixpPXQubGVuZ3RoO2k7KW49TWF0aC5yYW5kb20oKSppLS18MCxlPXRbaV0sdFtpXT10W25dLHRbbl09ZTtyZXR1cm4gdH0pKE1TLmNhbGwodCkpKS5sZW5ndGgsYT1bXTtpPHI7KWU9dFtpXSxuJiZBUyhuLGUpPysraToobj1MUyhhPVRTKGEsZSkpLGk9MCk7cmV0dXJuIG59ZnVuY3Rpb24gVFModCxlKXt2YXIgbixpO2lmKGtTKGUsdCkpcmV0dXJuW2VdO2ZvcihuPTA7bjx0Lmxlbmd0aDsrK24paWYoQ1MoZSx0W25dKSYma1MoUFModFtuXSxlKSx0KSlyZXR1cm5bdFtuXSxlXTtmb3Iobj0wO248dC5sZW5ndGgtMTsrK24pZm9yKGk9bisxO2k8dC5sZW5ndGg7KytpKWlmKENTKFBTKHRbbl0sdFtpXSksZSkmJkNTKFBTKHRbbl0sZSksdFtpXSkmJkNTKFBTKHRbaV0sZSksdFtuXSkmJmtTKE5TKHRbbl0sdFtpXSxlKSx0KSlyZXR1cm5bdFtuXSx0W2ldLGVdO3Rocm93IG5ldyBFcnJvcn1mdW5jdGlvbiBDUyh0LGUpe3ZhciBuPXQuci1lLnIsaT1lLngtdC54LHI9ZS55LXQueTtyZXR1cm4gbjwwfHxuKm48aSppK3Iqcn1mdW5jdGlvbiBBUyh0LGUpe3ZhciBuPXQuci1lLnIrMWUtNixpPWUueC10Lngscj1lLnktdC55O3JldHVybiBuPjAmJm4qbj5pKmkrcipyfWZ1bmN0aW9uIGtTKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDsrK24paWYoIUFTKHQsZVtuXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gTFModCl7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDE6cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJue3g6dC54LHk6dC55LHI6dC5yfX0pKHRbMF0pO2Nhc2UgMjpyZXR1cm4gUFModFswXSx0WzFdKTtjYXNlIDM6cmV0dXJuIE5TKHRbMF0sdFsxXSx0WzJdKX19ZnVuY3Rpb24gUFModCxlKXt2YXIgbj10LngsaT10Lnkscj10LnIsbz1lLngsYT1lLnkscz1lLnIsbD1vLW4sYz1hLWksdT1zLXIsaD1NYXRoLnNxcnQobCpsK2MqYyk7cmV0dXJue3g6KG4rbytsL2gqdSkvMix5OihpK2ErYy9oKnUpLzIscjooaCtyK3MpLzJ9fWZ1bmN0aW9uIE5TKHQsZSxuKXt2YXIgaT10Lngscj10Lnksbz10LnIsYT1lLngscz1lLnksbD1lLnIsYz1uLngsdT1uLnksaD1uLnIsZD1pLWEscD1pLWMsZj1yLXMsbT1yLXUsZz1sLW8sXz1oLW8seT1pKmkrcipyLW8qbyx2PXktYSphLXMqcytsKmwsYj15LWMqYy11KnUraCpoLHg9cCpmLWQqbSx3PShmKmItbSp2KS8oMip4KS1pLFM9KG0qZy1mKl8pL3gsTT0ocCp2LWQqYikvKDIqeCktcixFPShkKl8tcCpnKS94LFQ9UypTK0UqRS0xLEM9Mioobyt3KlMrTSpFKSxBPXcqdytNKk0tbypvLGs9LShUPyhDK01hdGguc3FydChDKkMtNCpUKkEpKS8oMipUKTpBL0MpO3JldHVybnt4OmkrdytTKmsseTpyK00rRSprLHI6a319ZnVuY3Rpb24gSVModCxlLG4pe3ZhciBpLHIsbyxhLHM9dC54LWUueCxsPXQueS1lLnksYz1zKnMrbCpsO2M/KHI9ZS5yK24ucixhPXQucituLnIsKHIqPXIpPihhKj1hKT8oaT0oYythLXIpLygyKmMpLG89TWF0aC5zcXJ0KE1hdGgubWF4KDAsYS9jLWkqaSkpLG4ueD10LngtaSpzLW8qbCxuLnk9dC55LWkqbCtvKnMpOihpPShjK3ItYSkvKDIqYyksbz1NYXRoLnNxcnQoTWF0aC5tYXgoMCxyL2MtaSppKSksbi54PWUueCtpKnMtbypsLG4ueT1lLnkraSpsK28qcykpOihuLng9ZS54K24ucixuLnk9ZS55KX1mdW5jdGlvbiBSUyh0LGUpe3ZhciBuPXQucitlLnItMWUtNixpPWUueC10Lngscj1lLnktdC55O3JldHVybiBuPjAmJm4qbj5pKmkrcipyfWZ1bmN0aW9uIE9TKHQpe3ZhciBlPXQuXyxuPXQubmV4dC5fLGk9ZS5yK24ucixyPShlLngqbi5yK24ueCplLnIpL2ksbz0oZS55Km4ucituLnkqZS5yKS9pO3JldHVybiByKnIrbypvfWZ1bmN0aW9uIHpTKHQpe3RoaXMuXz10LHRoaXMubmV4dD1udWxsLHRoaXMucHJldmlvdXM9bnVsbH1mdW5jdGlvbiBEUyh0KXtpZighKHI9dC5sZW5ndGgpKXJldHVybiAwO3ZhciBlLG4saSxyLG8sYSxzLGwsYyx1LGg7aWYoKGU9dFswXSkueD0wLGUueT0wLCEocj4xKSlyZXR1cm4gZS5yO2lmKGUueD0tKG49dFsxXSkucixuLng9ZS5yLG4ueT0wLCEocj4yKSlyZXR1cm4gZS5yK24ucjtJUyhuLGUsaT10WzJdKSxlPW5ldyB6UyhlKSxuPW5ldyB6UyhuKSxpPW5ldyB6UyhpKSxlLm5leHQ9aS5wcmV2aW91cz1uLG4ubmV4dD1lLnByZXZpb3VzPWksaS5uZXh0PW4ucHJldmlvdXM9ZTt0OmZvcihzPTM7czxyOysrcyl7SVMoZS5fLG4uXyxpPXRbc10pLGk9bmV3IHpTKGkpLGw9bi5uZXh0LGM9ZS5wcmV2aW91cyx1PW4uXy5yLGg9ZS5fLnI7ZG97aWYodTw9aCl7aWYoUlMobC5fLGkuXykpe2UubmV4dD1uPWwsbi5wcmV2aW91cz1lLC0tcztjb250aW51ZSB0fXUrPWwuXy5yLGw9bC5uZXh0fWVsc2V7aWYoUlMoYy5fLGkuXykpeyhlPWMpLm5leHQ9bixuLnByZXZpb3VzPWUsLS1zO2NvbnRpbnVlIHR9aCs9Yy5fLnIsYz1jLnByZXZpb3VzfX13aGlsZShsIT09Yy5uZXh0KTtmb3IoaS5wcmV2aW91cz1lLGkubmV4dD1uLGUubmV4dD1uLnByZXZpb3VzPW49aSxvPU9TKGUpOyhpPWkubmV4dCkhPT1uOykoYT1PUyhpKSk8byYmKGU9aSxvPWEpO249ZS5uZXh0fWZvcihlPVtuLl9dLGk9bjsoaT1pLm5leHQpIT09bjspZS5wdXNoKGkuXyk7Zm9yKGk9RVMoZSkscz0wO3M8cjsrK3MpKGU9dFtzXSkueC09aS54LGUueS09aS55O3JldHVybiBpLnJ9ZnVuY3Rpb24gQlModCl7cmV0dXJuIG51bGw9PXQ/bnVsbDpIUyh0KX1mdW5jdGlvbiBIUyh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHR9ZnVuY3Rpb24gRlMoKXtyZXR1cm4gMH1mdW5jdGlvbiBWUyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gVVModCl7cmV0dXJuIE1hdGguc3FydCh0LnZhbHVlKX1mdW5jdGlvbiBqUyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbnx8KGUucj1NYXRoLm1heCgwLCt0KGUpfHwwKSl9fWZ1bmN0aW9uIEdTKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe2lmKGk9bi5jaGlsZHJlbil7dmFyIGkscixvLGE9aS5sZW5ndGgscz10KG4pKmV8fDA7aWYocylmb3Iocj0wO3I8YTsrK3IpaVtyXS5yKz1zO2lmKG89RFMoaSkscylmb3Iocj0wO3I8YTsrK3IpaVtyXS5yLT1zO24ucj1vK3N9fX1mdW5jdGlvbiBXUyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49ZS5wYXJlbnQ7ZS5yKj10LG4mJihlLng9bi54K3QqZS54LGUueT1uLnkrdCplLnkpfX1mdW5jdGlvbiBxUyh0KXt0LngwPU1hdGgucm91bmQodC54MCksdC55MD1NYXRoLnJvdW5kKHQueTApLHQueDE9TWF0aC5yb3VuZCh0LngxKSx0LnkxPU1hdGgucm91bmQodC55MSl9ZnVuY3Rpb24gWVModCxlLG4saSxyKXtmb3IodmFyIG8sYT10LmNoaWxkcmVuLHM9LTEsbD1hLmxlbmd0aCxjPXQudmFsdWUmJihpLWUpL3QudmFsdWU7KytzPGw7KShvPWFbc10pLnkwPW4sby55MT1yLG8ueDA9ZSxvLngxPWUrPW8udmFsdWUqY312YXIgWFM9e2RlcHRoOi0xfSwkUz17fTtmdW5jdGlvbiBLUyh0KXtyZXR1cm4gdC5pZH1mdW5jdGlvbiBaUyh0KXtyZXR1cm4gdC5wYXJlbnRJZH1mdW5jdGlvbiBKUyh0LGUpe3JldHVybiB0LnBhcmVudD09PWUucGFyZW50PzE6Mn1mdW5jdGlvbiBRUyh0KXt2YXIgZT10LmNoaWxkcmVuO3JldHVybiBlP2VbMF06dC50fWZ1bmN0aW9uIHRNKHQpe3ZhciBlPXQuY2hpbGRyZW47cmV0dXJuIGU/ZVtlLmxlbmd0aC0xXTp0LnR9ZnVuY3Rpb24gZU0odCxlLG4pe3ZhciBpPW4vKGUuaS10LmkpO2UuYy09aSxlLnMrPW4sdC5jKz1pLGUueis9bixlLm0rPW59ZnVuY3Rpb24gbk0odCxlLG4pe3JldHVybiB0LmEucGFyZW50PT09ZS5wYXJlbnQ/dC5hOm59ZnVuY3Rpb24gaU0odCxlKXt0aGlzLl89dCx0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49bnVsbCx0aGlzLkE9bnVsbCx0aGlzLmE9dGhpcyx0aGlzLno9MCx0aGlzLm09MCx0aGlzLmM9MCx0aGlzLnM9MCx0aGlzLnQ9bnVsbCx0aGlzLmk9ZX1mdW5jdGlvbiByTSh0LGUsbixpLHIpe2Zvcih2YXIgbyxhPXQuY2hpbGRyZW4scz0tMSxsPWEubGVuZ3RoLGM9dC52YWx1ZSYmKHItbikvdC52YWx1ZTsrK3M8bDspKG89YVtzXSkueDA9ZSxvLngxPWksby55MD1uLG8ueTE9bis9by52YWx1ZSpjfWlNLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGhTLnByb3RvdHlwZSk7dmFyIG9NPSgxK01hdGguc3FydCg1KSkvMjtmdW5jdGlvbiBhTSh0LGUsbixpLHIsbyl7Zm9yKHZhciBhLHMsbCxjLHUsaCxkLHAsZixtLGcsXz1bXSx5PWUuY2hpbGRyZW4sdj0wLGI9MCx4PXkubGVuZ3RoLHc9ZS52YWx1ZTt2PHg7KXtsPXItbixjPW8taTtkb3t1PXlbYisrXS52YWx1ZX13aGlsZSghdSYmYjx4KTtmb3IoaD1kPXUsZz11KnUqKG09TWF0aC5tYXgoYy9sLGwvYykvKHcqdCkpLGY9TWF0aC5tYXgoZC9nLGcvaCk7Yjx4OysrYil7aWYodSs9cz15W2JdLnZhbHVlLHM8aCYmKGg9cykscz5kJiYoZD1zKSxnPXUqdSptLChwPU1hdGgubWF4KGQvZyxnL2gpKT5mKXt1LT1zO2JyZWFrfWY9cH1fLnB1c2goYT17dmFsdWU6dSxkaWNlOmw8YyxjaGlsZHJlbjp5LnNsaWNlKHYsYil9KSxhLmRpY2U/WVMoYSxuLGkscix3P2krPWMqdS93Om8pOnJNKGEsbixpLHc/bis9bCp1L3c6cixvKSx3LT11LHY9Yn1yZXR1cm4gX312YXIgc009KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0LG4saSxyLG8pe2FNKGUsdCxuLGkscixvKX1yZXR1cm4gbi5yYXRpbz1mdW5jdGlvbihlKXtyZXR1cm4gdCgoZT0rZSk+MT9lOjEpfSxufSkob00pLGxNPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCxuLGkscixvKXtpZigoYT10Ll9zcXVhcmlmeSkmJmEucmF0aW89PT1lKWZvcih2YXIgYSxzLGwsYyx1LGg9LTEsZD1hLmxlbmd0aCxwPXQudmFsdWU7KytoPGQ7KXtmb3IobD0ocz1hW2hdKS5jaGlsZHJlbixjPXMudmFsdWU9MCx1PWwubGVuZ3RoO2M8dTsrK2Mpcy52YWx1ZSs9bFtjXS52YWx1ZTtzLmRpY2U/WVMocyxuLGkscixpKz0oby1pKSpzLnZhbHVlL3ApOnJNKHMsbixpLG4rPShyLW4pKnMudmFsdWUvcCxvKSxwLT1zLnZhbHVlfWVsc2UgdC5fc3F1YXJpZnk9YT1hTShlLHQsbixpLHIsbyksYS5yYXRpbz1lfXJldHVybiBuLnJhdGlvPWZ1bmN0aW9uKGUpe3JldHVybiB0KChlPStlKT4xP2U6MSl9LG59KShvTSk7ZnVuY3Rpb24gY00odCxlLG4pe3JldHVybihlWzBdLXRbMF0pKihuWzFdLXRbMV0pLShlWzFdLXRbMV0pKihuWzBdLXRbMF0pfWZ1bmN0aW9uIHVNKHQsZSl7cmV0dXJuIHRbMF0tZVswXXx8dFsxXS1lWzFdfWZ1bmN0aW9uIGhNKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxuPVswLDFdLGk9MixyPTI7cjxlOysrcil7Zm9yKDtpPjEmJmNNKHRbbltpLTJdXSx0W25baS0xXV0sdFtyXSk8PTA7KS0taTtuW2krK109cn1yZXR1cm4gbi5zbGljZSgwLGkpfWZ1bmN0aW9uIGRNKCl7cmV0dXJuIE1hdGgucmFuZG9tKCl9dmFyIHBNPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gdD1udWxsPT10PzA6K3Qsbj1udWxsPT1uPzE6K24sMT09PWFyZ3VtZW50cy5sZW5ndGg/KG49dCx0PTApOm4tPXQsZnVuY3Rpb24oKXtyZXR1cm4gZSgpKm4rdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKGRNKSxmTT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQsbil7dmFyIGkscjtyZXR1cm4gdD1udWxsPT10PzA6K3Qsbj1udWxsPT1uPzE6K24sZnVuY3Rpb24oKXt2YXIgbztpZihudWxsIT1pKW89aSxpPW51bGw7ZWxzZSBkb3tpPTIqZSgpLTEsbz0yKmUoKS0xLHI9aSppK28qb313aGlsZSghcnx8cj4xKTtyZXR1cm4gdCtuKm8qTWF0aC5zcXJ0KC0yKk1hdGgubG9nKHIpL3IpfX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoZE0pLG1NPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4oKXt2YXIgdD1mTS5zb3VyY2UoZSkuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNYXRoLmV4cCh0KCkpfX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoZE0pLGdNPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPTAsaT0wO2k8dDsrK2kpbis9ZSgpO3JldHVybiBufX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoZE0pLF9NPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7dmFyIG49Z00uc291cmNlKGUpKHQpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKCkvdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKGRNKSx5TT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybi1NYXRoLmxvZygxLWUoKSkvdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKGRNKTtmdW5jdGlvbiB2TSh0LGUpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOnRoaXMucmFuZ2UodCk7YnJlYWs7ZGVmYXVsdDp0aGlzLnJhbmdlKGUpLmRvbWFpbih0KX1yZXR1cm4gdGhpc31mdW5jdGlvbiBiTSh0LGUpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOnRoaXMuaW50ZXJwb2xhdG9yKHQpO2JyZWFrO2RlZmF1bHQ6dGhpcy5pbnRlcnBvbGF0b3IoZSkuZG9tYWluKHQpfXJldHVybiB0aGlzfXZhciB4TT1BcnJheS5wcm90b3R5cGUsd009eE0ubWFwLFNNPXhNLnNsaWNlLE1NPXtuYW1lOiJpbXBsaWNpdCJ9O2Z1bmN0aW9uIEVNKCl7dmFyIHQ9d2coKSxlPVtdLG49W10saT1NTTtmdW5jdGlvbiByKHIpe3ZhciBvPXIrIiIsYT10LmdldChvKTtpZighYSl7aWYoaSE9PU1NKXJldHVybiBpO3Quc2V0KG8sYT1lLnB1c2gocikpfXJldHVybiBuWyhhLTEpJW4ubGVuZ3RoXX1yZXR1cm4gci5kb21haW49ZnVuY3Rpb24obil7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGUuc2xpY2UoKTtlPVtdLHQ9d2coKTtmb3IodmFyIGksbyxhPS0xLHM9bi5sZW5ndGg7KythPHM7KXQuaGFzKG89KGk9blthXSkrIiIpfHx0LnNldChvLGUucHVzaChpKSk7cmV0dXJuIHJ9LHIucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49U00uY2FsbCh0KSxyKTpuLnNsaWNlKCl9LHIudW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LHIpOml9LHIuY29weT1mdW5jdGlvbigpe3JldHVybiBFTShlLG4pLnVua25vd24oaSl9LHZNLmFwcGx5KHIsYXJndW1lbnRzKSxyfWZ1bmN0aW9uIFRNKCl7dmFyIHQsZSxuPUVNKCkudW5rbm93bih2b2lkIDApLGk9bi5kb21haW4scj1uLnJhbmdlLG89WzAsMV0sYT0hMSxzPTAsbD0wLGM9LjU7ZnVuY3Rpb24gdSgpe3ZhciBuPWkoKS5sZW5ndGgsdT1vWzFdPG9bMF0saD1vW3UtMF0sZD1vWzEtdV07dD0oZC1oKS9NYXRoLm1heCgxLG4tcysyKmwpLGEmJih0PU1hdGguZmxvb3IodCkpLGgrPShkLWgtdCoobi1zKSkqYyxlPXQqKDEtcyksYSYmKGg9TWF0aC5yb3VuZChoKSxlPU1hdGgucm91bmQoZSkpO3ZhciBwPXpsKG4pLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGgrdCplfSkpO3JldHVybiByKHU/cC5yZXZlcnNlKCk6cCl9cmV0dXJuIGRlbGV0ZSBuLnVua25vd24sbi5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkodCksdSgpKTppKCl9LG4ucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89Wyt0WzBdLCt0WzFdXSx1KCkpOm8uc2xpY2UoKX0sbi5yYW5nZVJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBvPVsrdFswXSwrdFsxXV0sYT0hMCx1KCl9LG4uYmFuZHdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LG4uc3RlcD1mdW5jdGlvbigpe3JldHVybiB0fSxuLnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSEhdCx1KCkpOmF9LG4ucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1NYXRoLm1pbigxLGw9K3QpLHUoKSk6c30sbi5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9TWF0aC5taW4oMSx0KSx1KCkpOnN9LG4ucGFkZGluZ091dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPSt0LHUoKSk6bH0sbi5hbGlnbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1NYXRoLm1heCgwLE1hdGgubWluKDEsdCkpLHUoKSk6Y30sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIFRNKGkoKSxvKS5yb3VuZChhKS5wYWRkaW5nSW5uZXIocykucGFkZGluZ091dGVyKGwpLmFsaWduKGMpfSx2TS5hcHBseSh1KCksYXJndW1lbnRzKX1mdW5jdGlvbiBDTSh0KXt2YXIgZT10LmNvcHk7cmV0dXJuIHQucGFkZGluZz10LnBhZGRpbmdPdXRlcixkZWxldGUgdC5wYWRkaW5nSW5uZXIsZGVsZXRlIHQucGFkZGluZ091dGVyLHQuY29weT1mdW5jdGlvbigpe3JldHVybiBDTShlKCkpfSx0fWZ1bmN0aW9uIEFNKCl7cmV0dXJuIENNKFRNLmFwcGx5KG51bGwsYXJndW1lbnRzKS5wYWRkaW5nSW5uZXIoMSkpfWZ1bmN0aW9uIGtNKHQpe3JldHVybit0fXZhciBMTT1bMCwxXTtmdW5jdGlvbiBQTSh0KXtyZXR1cm4gdH1mdW5jdGlvbiBOTSh0LGUpe3JldHVybihlLT10PSt0KT9mdW5jdGlvbihuKXtyZXR1cm4obi10KS9lfTooZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KShpc05hTihlKT9OYU46LjUpfWZ1bmN0aW9uIElNKHQpe3ZhciBlLG49dFswXSxpPXRbdC5sZW5ndGgtMV07cmV0dXJuIG4+aSYmKGU9bixuPWksaT1lKSxmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgobixNYXRoLm1pbihpLHQpKX19ZnVuY3Rpb24gUk0odCxlLG4pe3ZhciBpPXRbMF0scj10WzFdLG89ZVswXSxhPWVbMV07cmV0dXJuIHI8aT8oaT1OTShyLGkpLG89bihhLG8pKTooaT1OTShpLHIpLG89bihvLGEpKSxmdW5jdGlvbih0KXtyZXR1cm4gbyhpKHQpKX19ZnVuY3Rpb24gT00odCxlLG4pe3ZhciBpPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKS0xLHI9bmV3IEFycmF5KGkpLG89bmV3IEFycmF5KGkpLGE9LTE7Zm9yKHRbaV08dFswXSYmKHQ9dC5zbGljZSgpLnJldmVyc2UoKSxlPWUuc2xpY2UoKS5yZXZlcnNlKCkpOysrYTxpOylyW2FdPU5NKHRbYV0sdFthKzFdKSxvW2FdPW4oZVthXSxlW2ErMV0pO3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1TbCh0LGUsMSxpKS0xO3JldHVybiBvW25dKHJbbl0oZSkpfX1mdW5jdGlvbiB6TSh0LGUpe3JldHVybiBlLmRvbWFpbih0LmRvbWFpbigpKS5yYW5nZSh0LnJhbmdlKCkpLmludGVycG9sYXRlKHQuaW50ZXJwb2xhdGUoKSkuY2xhbXAodC5jbGFtcCgpKS51bmtub3duKHQudW5rbm93bigpKX1mdW5jdGlvbiBETSgpe3ZhciB0LGUsbixpLHIsbyxhPUxNLHM9TE0sbD1qZCxjPVBNO2Z1bmN0aW9uIHUoKXtyZXR1cm4gaT1NYXRoLm1pbihhLmxlbmd0aCxzLmxlbmd0aCk+Mj9PTTpSTSxyPW89bnVsbCxofWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGlzTmFOKGU9K2UpP246KHJ8fChyPWkoYS5tYXAodCkscyxsKSkpKHQoYyhlKSkpfXJldHVybiBoLmludmVydD1mdW5jdGlvbihuKXtyZXR1cm4gYyhlKChvfHwobz1pKHMsYS5tYXAodCksQmQpKSkobikpKX0saC5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9d00uY2FsbCh0LGtNKSxjPT09UE18fChjPUlNKGEpKSx1KCkpOmEuc2xpY2UoKX0saC5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1TTS5jYWxsKHQpLHUoKSk6cy5zbGljZSgpfSxoLnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHM9U00uY2FsbCh0KSxsPUdkLHUoKX0saC5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10P0lNKGEpOlBNLGgpOmMhPT1QTX0saC5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD10LHUoKSk6bH0saC51bmtub3duPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsaCk6bn0sZnVuY3Rpb24obixpKXtyZXR1cm4gdD1uLGU9aSx1KCl9fWZ1bmN0aW9uIEJNKHQsZSl7cmV0dXJuIERNKCkodCxlKX1mdW5jdGlvbiBITSh0LGUsbixpKXt2YXIgcixvPVVsKHQsZSxuKTtzd2l0Y2goKGk9c3kobnVsbD09aT8iLGYiOmkpKS50eXBlKXtjYXNlInMiOnZhciBhPU1hdGgubWF4KE1hdGguYWJzKHQpLE1hdGguYWJzKGUpKTtyZXR1cm4gbnVsbCE9aS5wcmVjaXNpb258fGlzTmFOKHI9d3kobyxhKSl8fChpLnByZWNpc2lvbj1yKSxneShpLGEpO2Nhc2UiIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlInIiOm51bGwhPWkucHJlY2lzaW9ufHxpc05hTihyPVN5KG8sTWF0aC5tYXgoTWF0aC5hYnModCksTWF0aC5hYnMoZSkpKSl8fChpLnByZWNpc2lvbj1yLSgiZSI9PT1pLnR5cGUpKTticmVhaztjYXNlImYiOmNhc2UiJSI6bnVsbCE9aS5wcmVjaXNpb258fGlzTmFOKHI9eHkobykpfHwoaS5wcmVjaXNpb249ci0yKigiJSI9PT1pLnR5cGUpKX1yZXR1cm4gbXkoaSl9ZnVuY3Rpb24gRk0odCl7dmFyIGU9dC5kb21haW47cmV0dXJuIHQudGlja3M9ZnVuY3Rpb24odCl7dmFyIG49ZSgpO3JldHVybiBGbChuWzBdLG5bbi5sZW5ndGgtMV0sbnVsbD09dD8xMDp0KX0sdC50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsbil7dmFyIGk9ZSgpO3JldHVybiBITShpWzBdLGlbaS5sZW5ndGgtMV0sbnVsbD09dD8xMDp0LG4pfSx0Lm5pY2U9ZnVuY3Rpb24obil7bnVsbD09biYmKG49MTApO3ZhciBpLHI9ZSgpLG89MCxhPXIubGVuZ3RoLTEscz1yW29dLGw9clthXTtyZXR1cm4gbDxzJiYoaT1zLHM9bCxsPWksaT1vLG89YSxhPWkpLChpPVZsKHMsbCxuKSk+MD9pPVZsKHM9TWF0aC5mbG9vcihzL2kpKmksbD1NYXRoLmNlaWwobC9pKSppLG4pOmk8MCYmKGk9Vmwocz1NYXRoLmNlaWwocyppKS9pLGw9TWF0aC5mbG9vcihsKmkpL2ksbikpLGk+MD8ocltvXT1NYXRoLmZsb29yKHMvaSkqaSxyW2FdPU1hdGguY2VpbChsL2kpKmksZShyKSk6aTwwJiYocltvXT1NYXRoLmNlaWwocyppKS9pLHJbYV09TWF0aC5mbG9vcihsKmkpL2ksZShyKSksdH0sdH1mdW5jdGlvbiBWTSgpe3ZhciB0PUJNKFBNLFBNKTtyZXR1cm4gdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHpNKHQsVk0oKSl9LHZNLmFwcGx5KHQsYXJndW1lbnRzKSxGTSh0KX1mdW5jdGlvbiBVTSh0LGUpe3ZhciBuLGk9MCxyPSh0PXQuc2xpY2UoKSkubGVuZ3RoLTEsbz10W2ldLGE9dFtyXTtyZXR1cm4gYTxvJiYobj1pLGk9cixyPW4sbj1vLG89YSxhPW4pLHRbaV09ZS5mbG9vcihvKSx0W3JdPWUuY2VpbChhKSx0fWZ1bmN0aW9uIGpNKHQpe3JldHVybiBNYXRoLmxvZyh0KX1mdW5jdGlvbiBHTSh0KXtyZXR1cm4gTWF0aC5leHAodCl9ZnVuY3Rpb24gV00odCl7cmV0dXJuLU1hdGgubG9nKC10KX1mdW5jdGlvbiBxTSh0KXtyZXR1cm4tTWF0aC5leHAoLXQpfWZ1bmN0aW9uIFlNKHQpe3JldHVybiBpc0Zpbml0ZSh0KT8rKCIxZSIrdCk6dDwwPzA6dH1mdW5jdGlvbiBYTSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuLXQoLWUpfX1mdW5jdGlvbiAkTSh0KXt2YXIgZSxuLGk9dChqTSxHTSkscj1pLmRvbWFpbixvPTEwO2Z1bmN0aW9uIGEoKXtyZXR1cm4gZT0oZnVuY3Rpb24gYSh0KXtyZXR1cm4gdD09PU1hdGguRT9NYXRoLmxvZzoxMD09PXQmJk1hdGgubG9nMTB8fDI9PT10JiZNYXRoLmxvZzJ8fCh0PU1hdGgubG9nKHQpLGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLmxvZyhlKS90fSl9KShvKSxuPShmdW5jdGlvbiBzKHQpe3JldHVybiAxMD09PXQ/WU06dD09PU1hdGguRT9NYXRoLmV4cDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3codCxlKX19KShvKSxyKClbMF08MD8oZT1YTShlKSxuPVhNKG4pLHQoV00scU0pKTp0KGpNLEdNKSxpfXJldHVybiBpLmJhc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3QsYSgpKTpvfSxpLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocih0KSxhKCkpOnIoKX0saS50aWNrcz1mdW5jdGlvbih0KXt2YXIgaSxhPXIoKSxzPWFbMF0sbD1hW2EubGVuZ3RoLTFdOyhpPWw8cykmJihkPXMscz1sLGw9ZCk7dmFyIGMsdSxoLGQ9ZShzKSxwPWUobCksZj1udWxsPT10PzEwOit0LG09W107aWYoIShvJTEpJiZwLWQ8Zil7aWYoZD1NYXRoLnJvdW5kKGQpLTEscD1NYXRoLnJvdW5kKHApKzEscz4wKXtmb3IoO2Q8cDsrK2QpZm9yKHU9MSxjPW4oZCk7dTxvOysrdSlpZighKChoPWMqdSk8cykpe2lmKGg+bClicmVhazttLnB1c2goaCl9fWVsc2UgZm9yKDtkPHA7KytkKWZvcih1PW8tMSxjPW4oZCk7dT49MTstLXUpaWYoISgoaD1jKnUpPHMpKXtpZihoPmwpYnJlYWs7bS5wdXNoKGgpfX1lbHNlIG09RmwoZCxwLE1hdGgubWluKHAtZCxmKSkubWFwKG4pO3JldHVybiBpP20ucmV2ZXJzZSgpOm19LGkudGlja0Zvcm1hdD1mdW5jdGlvbih0LHIpe2lmKG51bGw9PXImJihyPTEwPT09bz8iLjBlIjoiLCIpLCJmdW5jdGlvbiIhPXR5cGVvZiByJiYocj1teShyKSksdD09PTEvMClyZXR1cm4gcjtudWxsPT10JiYodD0xMCk7dmFyIGE9TWF0aC5tYXgoMSxvKnQvaS50aWNrcygpLmxlbmd0aCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBpPXQvbihNYXRoLnJvdW5kKGUodCkpKTtyZXR1cm4gaSpvPG8tLjUmJihpKj1vKSxpPD1hP3IodCk6IiJ9fSxpLm5pY2U9ZnVuY3Rpb24oKXtyZXR1cm4gcihVTShyKCkse2Zsb29yOmZ1bmN0aW9uKHQpe3JldHVybiBuKE1hdGguZmxvb3IoZSh0KSkpfSxjZWlsOmZ1bmN0aW9uKHQpe3JldHVybiBuKE1hdGguY2VpbChlKHQpKSl9fSkpfSxpfWZ1bmN0aW9uIEtNKCl7dmFyIHQ9JE0oRE0oKSkuZG9tYWluKFsxLDEwXSk7cmV0dXJuIHQuY29weT1mdW5jdGlvbigpe3JldHVybiB6TSh0LEtNKCkpLmJhc2UodC5iYXNlKCkpfSx2TS5hcHBseSh0LGFyZ3VtZW50cyksdH1mdW5jdGlvbiBaTSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguc2lnbihlKSpNYXRoLmxvZzFwKE1hdGguYWJzKGUvdCkpfX1mdW5jdGlvbiBKTSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguc2lnbihlKSpNYXRoLmV4cG0xKE1hdGguYWJzKGUpKSp0fX1mdW5jdGlvbiBRTSh0KXt2YXIgZT0xLG49dChaTShlKSxKTShlKSk7cmV0dXJuIG4uY29uc3RhbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dChaTShlPStuKSxKTShlKSk6ZX0sRk0obil9ZnVuY3Rpb24gdEUodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlPDA/LU1hdGgucG93KC1lLHQpOk1hdGgucG93KGUsdCl9fWZ1bmN0aW9uIGVFKHQpe3JldHVybiB0PDA/LU1hdGguc3FydCgtdCk6TWF0aC5zcXJ0KHQpfWZ1bmN0aW9uIG5FKHQpe3JldHVybiB0PDA/LXQqdDp0KnR9ZnVuY3Rpb24gaUUodCl7dmFyIGU9dChQTSxQTSksbj0xO2Z1bmN0aW9uIGkoKXtyZXR1cm4gMT09PW4/dChQTSxQTSk6LjU9PT1uP3QoZUUsbkUpOnQodEUobiksdEUoMS9uKSl9cmV0dXJuIGUuZXhwb25lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3QsaSgpKTpufSxGTShlKX1mdW5jdGlvbiByRSgpe3ZhciB0PWlFKERNKCkpO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gek0odCxyRSgpKS5leHBvbmVudCh0LmV4cG9uZW50KCkpfSx2TS5hcHBseSh0LGFyZ3VtZW50cyksdH1mdW5jdGlvbiBvRSgpe3ZhciB0LGU9W10sbj1bXSxpPVtdO2Z1bmN0aW9uIHIoKXt2YXIgdD0wLHI9TWF0aC5tYXgoMSxuLmxlbmd0aCk7Zm9yKGk9bmV3IEFycmF5KHItMSk7Kyt0PHI7KWlbdC0xXT1HbChlLHQvcik7cmV0dXJuIG99ZnVuY3Rpb24gbyhlKXtyZXR1cm4gaXNOYU4oZT0rZSk/dDpuW1NsKGksZSldfXJldHVybiBvLmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgcj1uLmluZGV4T2YodCk7cmV0dXJuIHI8MD9bTmFOLE5hTl06W3I+MD9pW3ItMV06ZVswXSxyPGkubGVuZ3RoP2lbcl06ZVtlLmxlbmd0aC0xXV19LG8uZG9tYWluPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlLnNsaWNlKCk7ZT1bXTtmb3IodmFyIG4saT0wLG89dC5sZW5ndGg7aTxvOysraSludWxsPT0obj10W2ldKXx8aXNOYU4obj0rbil8fGUucHVzaChuKTtyZXR1cm4gZS5zb3J0KGJsKSxyKCl9LG8ucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49U00uY2FsbCh0KSxyKCkpOm4uc2xpY2UoKX0sby51bmtub3duPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbyk6dH0sby5xdWFudGlsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gaS5zbGljZSgpfSxvLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gb0UoKS5kb21haW4oZSkucmFuZ2UobikudW5rbm93bih0KX0sdk0uYXBwbHkobyxhcmd1bWVudHMpfWZ1bmN0aW9uIGFFKCl7dmFyIHQsZT0wLG49MSxpPTEscj1bLjVdLG89WzAsMV07ZnVuY3Rpb24gYShlKXtyZXR1cm4gZTw9ZT9vW1NsKHIsZSwwLGkpXTp0fWZ1bmN0aW9uIHMoKXt2YXIgdD0tMTtmb3Iocj1uZXcgQXJyYXkoaSk7Kyt0PGk7KXJbdF09KCh0KzEpKm4tKHQtaSkqZSkvKGkrMSk7cmV0dXJuIGF9cmV0dXJuIGEuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLG49K3RbMV0scygpKTpbZSxuXX0sYS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0obz1TTS5jYWxsKHQpKS5sZW5ndGgtMSxzKCkpOm8uc2xpY2UoKX0sYS5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIGE9by5pbmRleE9mKHQpO3JldHVybiBhPDA/W05hTixOYU5dOmE8MT9bZSxyWzBdXTphPj1pP1tyW2ktMV0sbl06W3JbYS0xXSxyW2FdXX0sYS51bmtub3duPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsYSk6YX0sYS50aHJlc2hvbGRzPWZ1bmN0aW9uKCl7cmV0dXJuIHIuc2xpY2UoKX0sYS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGFFKCkuZG9tYWluKFtlLG5dKS5yYW5nZShvKS51bmtub3duKHQpfSx2TS5hcHBseShGTShhKSxhcmd1bWVudHMpfXZhciBzRT1uZXcgRGF0ZSxsRT1uZXcgRGF0ZTtmdW5jdGlvbiBjRSh0LGUsbixpKXtmdW5jdGlvbiByKGUpe3JldHVybiB0KGU9MD09PWFyZ3VtZW50cy5sZW5ndGg/bmV3IERhdGU6bmV3IERhdGUoK2UpKSxlfXJldHVybiByLmZsb29yPWZ1bmN0aW9uKGUpe3JldHVybiB0KGU9bmV3IERhdGUoK2UpKSxlfSxyLmNlaWw9ZnVuY3Rpb24obil7cmV0dXJuIHQobj1uZXcgRGF0ZShuLTEpKSxlKG4sMSksdChuKSxufSxyLnJvdW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXIodCksbj1yLmNlaWwodCk7cmV0dXJuIHQtZTxuLXQ/ZTpufSxyLm9mZnNldD1mdW5jdGlvbih0LG4pe3JldHVybiBlKHQ9bmV3IERhdGUoK3QpLG51bGw9PW4/MTpNYXRoLmZsb29yKG4pKSx0fSxyLnJhbmdlPWZ1bmN0aW9uKG4saSxvKXt2YXIgYSxzPVtdO2lmKG49ci5jZWlsKG4pLG89bnVsbD09bz8xOk1hdGguZmxvb3IobyksIShuPGkmJm8+MCkpcmV0dXJuIHM7ZG97cy5wdXNoKGE9bmV3IERhdGUoK24pKSxlKG4sbyksdChuKX13aGlsZShhPG4mJm48aSk7cmV0dXJuIHN9LHIuZmlsdGVyPWZ1bmN0aW9uKG4pe3JldHVybiBjRSgoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsaSl7aWYodD49dClpZihpPDApZm9yKDsrK2k8PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLWk+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoci5jb3VudD1mdW5jdGlvbihlLGkpe3JldHVybiBzRS5zZXRUaW1lKCtlKSxsRS5zZXRUaW1lKCtpKSx0KHNFKSx0KGxFKSxNYXRoLmZsb29yKG4oc0UsbEUpKX0sci5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP3IuZmlsdGVyKGk/ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY291bnQoMCxlKSV0PT0wfSk6cjpudWxsfSkscn12YXIgdUU9Y0UoKGZ1bmN0aW9uKCl7fSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUtdH0pKTt1RS5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP2NFKChmdW5jdGlvbihlKXtlLnNldFRpbWUoTWF0aC5mbG9vcihlL3QpKnQpfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRUaW1lKCtlK24qdCl9KSwoZnVuY3Rpb24oZSxuKXtyZXR1cm4obi1lKS90fSkpOnVFOm51bGx9O3ZhciBoRT11RSxkRT11RS5yYW5nZSxwRT0xZTMsZkU9NmU0LG1FPTM2ZTUsZ0U9ODY0ZTUsX0U9NjA0OGU1LHlFPWNFKChmdW5jdGlvbih0KXt0LnNldFRpbWUodC10LmdldE1pbGxpc2Vjb25kcygpKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKnBFKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL3BFfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ1NlY29uZHMoKX0pKSx2RT15RSxiRT15RS5yYW5nZSx4RT1jRSgoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKS10LmdldFNlY29uZHMoKSpwRSl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSpmRSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9mRX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNaW51dGVzKCl9KSksd0U9eEUsU0U9eEUucmFuZ2UsTUU9Y0UoKGZ1bmN0aW9uKHQpe3Quc2V0VGltZSh0LXQuZ2V0TWlsbGlzZWNvbmRzKCktdC5nZXRTZWNvbmRzKCkqcEUtdC5nZXRNaW51dGVzKCkqZkUpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqbUUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvbUV9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pKSxFRT1NRSxURT1NRS5yYW5nZSxDRT1jRSgoZnVuY3Rpb24odCl7dC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKmZFKS9nRX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCktMX0pKSxBRT1DRSxrRT1DRS5yYW5nZTtmdW5jdGlvbiBMRSh0KXtyZXR1cm4gY0UoKGZ1bmN0aW9uKGUpe2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs3LXQpJTcpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKmZFKS9fRX0pKX12YXIgUEU9TEUoMCksTkU9TEUoMSksSUU9TEUoMiksUkU9TEUoMyksT0U9TEUoNCksekU9TEUoNSksREU9TEUoNiksQkU9UEUucmFuZ2UsSEU9TkUucmFuZ2UsRkU9SUUucmFuZ2UsVkU9UkUucmFuZ2UsVUU9T0UucmFuZ2UsakU9ekUucmFuZ2UsR0U9REUucmFuZ2UsV0U9Y0UoKGZ1bmN0aW9uKHQpe3Quc2V0RGF0ZSgxKSx0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRNb250aCh0LmdldE1vbnRoKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRNb250aCgpLXQuZ2V0TW9udGgoKSsxMiooZS5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TW9udGgoKX0pKSxxRT1XRSxZRT1XRS5yYW5nZSxYRT1jRSgoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KSk7WEUuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9jRSgoZnVuY3Rpb24oZSl7ZS5zZXRGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0RnVsbFllYXIoKS90KSp0KSxlLnNldE1vbnRoKDAsMSksZS5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0RnVsbFllYXIoZS5nZXRGdWxsWWVhcigpK24qdCl9KSk6bnVsbH07dmFyICRFPVhFLEtFPVhFLnJhbmdlLFpFPWNFKChmdW5jdGlvbih0KXt0LnNldFVUQ1NlY29uZHMoMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKmZFKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL2ZFfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbnV0ZXMoKX0pKSxKRT1aRSxRRT1aRS5yYW5nZSx0VD1jRSgoZnVuY3Rpb24odCl7dC5zZXRVVENNaW51dGVzKDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKm1FKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL21FfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0hvdXJzKCl9KSksZVQ9dFQsblQ9dFQucmFuZ2UsaVQ9Y0UoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9nRX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENEYXRlKCktMX0pKSxyVD1pVCxvVD1pVC5yYW5nZTtmdW5jdGlvbiBhVCh0KXtyZXR1cm4gY0UoKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRGF0ZShlLmdldFVUQ0RhdGUoKS0oZS5nZXRVVENEYXkoKSs3LXQpJTcpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL19FfSkpfXZhciBzVD1hVCgwKSxsVD1hVCgxKSxjVD1hVCgyKSx1VD1hVCgzKSxoVD1hVCg0KSxkVD1hVCg1KSxwVD1hVCg2KSxmVD1zVC5yYW5nZSxtVD1sVC5yYW5nZSxnVD1jVC5yYW5nZSxfVD11VC5yYW5nZSx5VD1oVC5yYW5nZSx2VD1kVC5yYW5nZSxiVD1wVC5yYW5nZSx4VD1jRSgoZnVuY3Rpb24odCl7dC5zZXRVVENEYXRlKDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ01vbnRoKHQuZ2V0VVRDTW9udGgoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldFVUQ01vbnRoKCktdC5nZXRVVENNb250aCgpKzEyKihlLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNb250aCgpfSkpLHdUPXhULFNUPXhULnJhbmdlLE1UPWNFKChmdW5jdGlvbih0KXt0LnNldFVUQ01vbnRoKDAsMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRnVsbFllYXIodC5nZXRVVENGdWxsWWVhcigpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDRnVsbFllYXIoKX0pKTtNVC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP2NFKChmdW5jdGlvbihlKXtlLnNldFVUQ0Z1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRVVENGdWxsWWVhcigpL3QpKnQpLGUuc2V0VVRDTW9udGgoMCwxKSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRVVENGdWxsWWVhcihlLmdldFVUQ0Z1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgRVQ9TVQsVFQ9TVQucmFuZ2U7ZnVuY3Rpb24gQ1QodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZSgtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCk7cmV0dXJuIGUuc2V0RnVsbFllYXIodC55KSxlfXJldHVybiBuZXcgRGF0ZSh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpfWZ1bmN0aW9uIEFUKHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIGU9bmV3IERhdGUoRGF0ZS5VVEMoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpKTtyZXR1cm4gZS5zZXRVVENGdWxsWWVhcih0LnkpLGV9cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHQueSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpfWZ1bmN0aW9uIGtUKHQsZSxuKXtyZXR1cm57eTp0LG06ZSxkOm4sSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiBMVCh0KXt2YXIgZT10LmRhdGVUaW1lLG49dC5kYXRlLGk9dC50aW1lLHI9dC5wZXJpb2RzLG89dC5kYXlzLGE9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsYz1VVChyKSx1PWpUKHIpLGg9VVQobyksZD1qVChvKSxwPVVUKGEpLGY9alQoYSksbT1VVChzKSxnPWpUKHMpLF89VVQobCkseT1qVChsKSx2PXthOmZ1bmN0aW9uIGIodCl7cmV0dXJuIGFbdC5nZXREYXkoKV19LEE6ZnVuY3Rpb24geCh0KXtyZXR1cm4gb1t0LmdldERheSgpXX0sYjpmdW5jdGlvbiB3KHQpe3JldHVybiBsW3QuZ2V0TW9udGgoKV19LEI6ZnVuY3Rpb24gUyh0KXtyZXR1cm4gc1t0LmdldE1vbnRoKCldfSxjOm51bGwsZDp1QyxlOnVDLGY6bUMsZzpUQyxHOkFDLEg6aEMsSTpkQyxqOnBDLEw6ZkMsbTpnQyxNOl9DLHA6ZnVuY3Rpb24gTSh0KXtyZXR1cm4gclsrKHQuZ2V0SG91cnMoKT49MTIpXX0scTpmdW5jdGlvbiBFKHQpe3JldHVybiAxK35+KHQuZ2V0TW9udGgoKS8zKX0sUTpaQyxzOkpDLFM6eUMsdTp2QyxVOmJDLFY6d0MsdzpTQyxXOk1DLHg6bnVsbCxYOm51bGwseTpFQyxZOkNDLFo6a0MsIiUiOktDfSxUPXthOmZ1bmN0aW9uIEModCl7cmV0dXJuIGFbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24gQSh0KXtyZXR1cm4gb1t0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbiBrKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24gTCh0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDpMQyxlOkxDLGY6T0MsZzpxQyxHOlhDLEg6UEMsSTpOQyxqOklDLEw6UkMsbTp6QyxNOkRDLHA6ZnVuY3Rpb24gUCh0KXtyZXR1cm4gclsrKHQuZ2V0VVRDSG91cnMoKT49MTIpXX0scTpmdW5jdGlvbiBOKHQpe3JldHVybiAxK35+KHQuZ2V0VVRDTW9udGgoKS8zKX0sUTpaQyxzOkpDLFM6QkMsdTpIQyxVOkZDLFY6VUMsdzpqQyxXOkdDLHg6bnVsbCxYOm51bGwseTpXQyxZOllDLFo6JEMsIiUiOktDfSxJPXthOmZ1bmN0aW9uIFIodCxlLG4pe3ZhciBpPXAuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC53PWZbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sQTpmdW5jdGlvbiBPKHQsZSxuKXt2YXIgaT1oLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQudz1kW2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LGI6ZnVuY3Rpb24geih0LGUsbil7dmFyIGk9Xy5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lm09eVtpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxCOmZ1bmN0aW9uIEQodCxlLG4pe3ZhciBpPW0uZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5tPWdbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sYzpmdW5jdGlvbiBCKHQsbixpKXtyZXR1cm4gRyh0LGUsbixpKX0sZDp0QyxlOnRDLGY6YUMsZzpLVCxHOiRULEg6bkMsSTpuQyxqOmVDLEw6b0MsbTpRVCxNOmlDLHA6ZnVuY3Rpb24gSCh0LGUsbil7dmFyIGk9Yy5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0LnA9dVtpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxxOkpULFE6bEMsczpjQyxTOnJDLHU6V1QsVTpxVCxWOllULHc6R1QsVzpYVCx4OmZ1bmN0aW9uIEYodCxlLGkpe3JldHVybiBHKHQsbixlLGkpfSxYOmZ1bmN0aW9uIFYodCxlLG4pe3JldHVybiBHKHQsaSxlLG4pfSx5OktULFk6JFQsWjpaVCwiJSI6c0N9O2Z1bmN0aW9uIFUodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGkscixvLGE9W10scz0tMSxsPTAsYz10Lmxlbmd0aDtmb3IobiBpbnN0YW5jZW9mIERhdGV8fChuPW5ldyBEYXRlKCtuKSk7KytzPGM7KTM3PT09dC5jaGFyQ29kZUF0KHMpJiYoYS5wdXNoKHQuc2xpY2UobCxzKSksbnVsbCE9KHI9elRbaT10LmNoYXJBdCgrK3MpXSk/aT10LmNoYXJBdCgrK3MpOnI9ImUiPT09aT8iICI6IjAiLChvPWVbaV0pJiYoaT1vKG4scikpLGEucHVzaChpKSxsPXMrMSk7cmV0dXJuIGEucHVzaCh0LnNsaWNlKGwscykpLGEuam9pbigiIil9fWZ1bmN0aW9uIGoodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGkscixvPWtUKDE5MDAsdm9pZCAwLDEpO2lmKEcobyx0LG4rPSIiLDApIT1uLmxlbmd0aClyZXR1cm4gbnVsbDtpZigiUSJpbiBvKXJldHVybiBuZXcgRGF0ZShvLlEpO2lmKCJzImluIG8pcmV0dXJuIG5ldyBEYXRlKDFlMypvLnMrKCJMImluIG8/by5MOjApKTtpZihlJiYhKCJaImluIG8pJiYoby5aPTApLCJwImluIG8mJihvLkg9by5IJTEyKzEyKm8ucCksdm9pZCAwPT09by5tJiYoby5tPSJxImluIG8/by5xOjApLCJWImluIG8pe2lmKG8uVjwxfHxvLlY+NTMpcmV0dXJuIG51bGw7InciaW4gb3x8KG8udz0xKSwiWiJpbiBvPyhyPShpPUFUKGtUKG8ueSwwLDEpKSkuZ2V0VVRDRGF5KCksaT1yPjR8fDA9PT1yP2xULmNlaWwoaSk6bFQoaSksaT1yVC5vZmZzZXQoaSw3KihvLlYtMSkpLG8ueT1pLmdldFVUQ0Z1bGxZZWFyKCksby5tPWkuZ2V0VVRDTW9udGgoKSxvLmQ9aS5nZXRVVENEYXRlKCkrKG8udys2KSU3KToocj0oaT1DVChrVChvLnksMCwxKSkpLmdldERheSgpLGk9cj40fHwwPT09cj9ORS5jZWlsKGkpOk5FKGkpLGk9QUUub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRGdWxsWWVhcigpLG8ubT1pLmdldE1vbnRoKCksby5kPWkuZ2V0RGF0ZSgpKyhvLncrNiklNyl9ZWxzZSgiVyJpbiBvfHwiVSJpbiBvKSYmKCJ3ImluIG98fChvLnc9InUiaW4gbz9vLnUlNzoiVyJpbiBvPzE6MCkscj0iWiJpbiBvP0FUKGtUKG8ueSwwLDEpKS5nZXRVVENEYXkoKTpDVChrVChvLnksMCwxKSkuZ2V0RGF5KCksby5tPTAsby5kPSJXImluIG8/KG8udys2KSU3Kzcqby5XLShyKzUpJTc6by53Kzcqby5VLShyKzYpJTcpO3JldHVybiJaImluIG8/KG8uSCs9by5aLzEwMHwwLG8uTSs9by5aJTEwMCxBVChvKSk6Q1Qobyl9fWZ1bmN0aW9uIEcodCxlLG4saSl7Zm9yKHZhciByLG8sYT0wLHM9ZS5sZW5ndGgsbD1uLmxlbmd0aDthPHM7KXtpZihpPj1sKXJldHVybi0xO2lmKDM3PT09KHI9ZS5jaGFyQ29kZUF0KGErKykpKXtpZihyPWUuY2hhckF0KGErKyksIShvPUlbciBpbiB6VD9lLmNoYXJBdChhKyspOnJdKXx8KGk9byh0LG4saSkpPDApcmV0dXJuLTF9ZWxzZSBpZihyIT1uLmNoYXJDb2RlQXQoaSsrKSlyZXR1cm4tMX1yZXR1cm4gaX1yZXR1cm4gdi54PVUobix2KSx2Llg9VShpLHYpLHYuYz1VKGUsdiksVC54PVUobixUKSxULlg9VShpLFQpLFQuYz1VKGUsVCkse2Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1VKHQrPSIiLHYpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPWoodCs9IiIsITEpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y0Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1VKHQrPSIiLFQpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y1BhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPWoodCs9IiIsITApO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9fX12YXIgUFQsTlQsSVQsUlQsT1QselQ9eyItIjoiIixfOiIgIiwwOiIwIn0sRFQ9L15ccypcZCsvLEJUPS9eJS8sSFQ9L1tcXF4kKis/fFtcXSgpLnt9XS9nO2Z1bmN0aW9uIEZUKHQsZSxuKXt2YXIgaT10PDA/Ii0iOiIiLHI9KGk/LXQ6dCkrIiIsbz1yLmxlbmd0aDtyZXR1cm4gaSsobzxuP25ldyBBcnJheShuLW8rMSkuam9pbihlKStyOnIpfWZ1bmN0aW9uIFZUKHQpe3JldHVybiB0LnJlcGxhY2UoSFQsIlxcJCYiKX1mdW5jdGlvbiBVVCh0KXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrdC5tYXAoVlQpLmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiBqVCh0KXtmb3IodmFyIGU9e30sbj0tMSxpPXQubGVuZ3RoOysrbjxpOyllW3Rbbl0udG9Mb3dlckNhc2UoKV09bjtyZXR1cm4gZX1mdW5jdGlvbiBHVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/KHQudz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBXVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/KHQudT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBxVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBZVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVj0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBYVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiAkVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbis0KSk7cmV0dXJuIGk/KHQueT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBLVCh0LGUsbil7dmFyIGk9RFQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQueT0raVswXSsoK2lbMF0+Njg/MTkwMDoyZTMpLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFpUKHQsZSxuKXt2YXIgaT0vXihaKXwoWystXVxkXGQpKD86Oj8oXGRcZCkpPy8uZXhlYyhlLnNsaWNlKG4sbis2KSk7cmV0dXJuIGk/KHQuWj1pWzFdPzA6LShpWzJdKyhpWzNdfHwiMDAiKSksbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gSlQodCxlLG4pe3ZhciBpPURULmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpPyh0LnE9MyppWzBdLTMsbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gUVQodCxlLG4pe3ZhciBpPURULmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Lm09aVswXS0xLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHRDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5kPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGVDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzMpKTtyZXR1cm4gaT8odC5tPTAsdC5kPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG5DKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5IPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGlDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5NPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHJDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5TPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG9DKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzMpKTtyZXR1cm4gaT8odC5MPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGFDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gaT8odC5MPU1hdGguZmxvb3IoaVswXS8xZTMpLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHNDKHQsZSxuKXt2YXIgaT1CVC5leGVjKGUuc2xpY2UobixuKzEpKTtyZXR1cm4gaT9uK2lbMF0ubGVuZ3RoOi0xfWZ1bmN0aW9uIGxDKHQsZSxuKXt2YXIgaT1EVC5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0LlE9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gY0ModCxlLG4pe3ZhciBpPURULmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQucz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB1Qyh0LGUpe3JldHVybiBGVCh0LmdldERhdGUoKSxlLDIpfWZ1bmN0aW9uIGhDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0SG91cnMoKSxlLDIpfWZ1bmN0aW9uIGRDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0SG91cnMoKSUxMnx8MTIsZSwyKX1mdW5jdGlvbiBwQyh0LGUpe3JldHVybiBGVCgxK0FFLmNvdW50KCRFKHQpLHQpLGUsMyl9ZnVuY3Rpb24gZkModCxlKXtyZXR1cm4gRlQodC5nZXRNaWxsaXNlY29uZHMoKSxlLDMpfWZ1bmN0aW9uIG1DKHQsZSl7cmV0dXJuIGZDKHQsZSkrIjAwMCJ9ZnVuY3Rpb24gZ0ModCxlKXtyZXR1cm4gRlQodC5nZXRNb250aCgpKzEsZSwyKX1mdW5jdGlvbiBfQyh0LGUpe3JldHVybiBGVCh0LmdldE1pbnV0ZXMoKSxlLDIpfWZ1bmN0aW9uIHlDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0U2Vjb25kcygpLGUsMil9ZnVuY3Rpb24gdkModCl7dmFyIGU9dC5nZXREYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIGJDKHQsZSl7cmV0dXJuIEZUKFBFLmNvdW50KCRFKHQpLTEsdCksZSwyKX1mdW5jdGlvbiB4Qyh0KXt2YXIgZT10LmdldERheSgpO3JldHVybiBlPj00fHwwPT09ZT9PRSh0KTpPRS5jZWlsKHQpfWZ1bmN0aW9uIHdDKHQsZSl7cmV0dXJuIHQ9eEModCksRlQoT0UuY291bnQoJEUodCksdCkrKDQ9PT0kRSh0KS5nZXREYXkoKSksZSwyKX1mdW5jdGlvbiBTQyh0KXtyZXR1cm4gdC5nZXREYXkoKX1mdW5jdGlvbiBNQyh0LGUpe3JldHVybiBGVChORS5jb3VudCgkRSh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gRUModCxlKXtyZXR1cm4gRlQodC5nZXRGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIFRDKHQsZSl7cmV0dXJuIEZUKCh0PXhDKHQpKS5nZXRGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIENDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0RnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiBBQyh0LGUpe3ZhciBuPXQuZ2V0RGF5KCk7cmV0dXJuIEZUKCh0PW4+PTR8fDA9PT1uP09FKHQpOk9FLmNlaWwodCkpLmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24ga0ModCl7dmFyIGU9dC5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihlPjA/Ii0iOihlKj0tMSwiKyIpKStGVChlLzYwfDAsIjAiLDIpK0ZUKGUlNjAsIjAiLDIpfWZ1bmN0aW9uIExDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0VVRDRGF0ZSgpLGUsMil9ZnVuY3Rpb24gUEModCxlKXtyZXR1cm4gRlQodC5nZXRVVENIb3VycygpLGUsMil9ZnVuY3Rpb24gTkModCxlKXtyZXR1cm4gRlQodC5nZXRVVENIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIElDKHQsZSl7cmV0dXJuIEZUKDErclQuY291bnQoRVQodCksdCksZSwzKX1mdW5jdGlvbiBSQyh0LGUpe3JldHVybiBGVCh0LmdldFVUQ01pbGxpc2Vjb25kcygpLGUsMyl9ZnVuY3Rpb24gT0ModCxlKXtyZXR1cm4gUkModCxlKSsiMDAwIn1mdW5jdGlvbiB6Qyh0LGUpe3JldHVybiBGVCh0LmdldFVUQ01vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIERDKHQsZSl7cmV0dXJuIEZUKHQuZ2V0VVRDTWludXRlcygpLGUsMil9ZnVuY3Rpb24gQkModCxlKXtyZXR1cm4gRlQodC5nZXRVVENTZWNvbmRzKCksZSwyKX1mdW5jdGlvbiBIQyh0KXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiAwPT09ZT83OmV9ZnVuY3Rpb24gRkModCxlKXtyZXR1cm4gRlQoc1QuY291bnQoRVQodCktMSx0KSxlLDIpfWZ1bmN0aW9uIFZDKHQpe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIGU+PTR8fDA9PT1lP2hUKHQpOmhULmNlaWwodCl9ZnVuY3Rpb24gVUModCxlKXtyZXR1cm4gdD1WQyh0KSxGVChoVC5jb3VudChFVCh0KSx0KSsoND09PUVUKHQpLmdldFVUQ0RheSgpKSxlLDIpfWZ1bmN0aW9uIGpDKHQpe3JldHVybiB0LmdldFVUQ0RheSgpfWZ1bmN0aW9uIEdDKHQsZSl7cmV0dXJuIEZUKGxULmNvdW50KEVUKHQpLTEsdCksZSwyKX1mdW5jdGlvbiBXQyh0LGUpe3JldHVybiBGVCh0LmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gcUModCxlKXtyZXR1cm4gRlQoKHQ9VkModCkpLmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gWUModCxlKXtyZXR1cm4gRlQodC5nZXRVVENGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIFhDKHQsZSl7dmFyIG49dC5nZXRVVENEYXkoKTtyZXR1cm4gRlQoKHQ9bj49NHx8MD09PW4/aFQodCk6aFQuY2VpbCh0KSkuZ2V0VVRDRnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiAkQygpe3JldHVybiIrMDAwMCJ9ZnVuY3Rpb24gS0MoKXtyZXR1cm4iJSJ9ZnVuY3Rpb24gWkModCl7cmV0dXJuK3R9ZnVuY3Rpb24gSkModCl7cmV0dXJuIE1hdGguZmxvb3IoK3QvMWUzKX1mdW5jdGlvbiBRQyh0KXtyZXR1cm4gUFQ9TFQodCksTlQ9UFQuZm9ybWF0LElUPVBULnBhcnNlLFJUPVBULnV0Y0Zvcm1hdCxPVD1QVC51dGNQYXJzZSxQVH1RQyh7ZGF0ZVRpbWU6IiV4LCAlWCIsZGF0ZToiJS1tLyUtZC8lWSIsdGltZToiJS1JOiVNOiVTICVwIixwZXJpb2RzOlsiQU0iLCJQTSJdLGRheXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLHNob3J0RGF5czpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLG1vbnRoczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sc2hvcnRNb250aHM6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXX0pO3ZhciB0QT0iJVktJW0tJWRUJUg6JU06JVMuJUxaIixlQT1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZz9mdW5jdGlvbiBuQSh0KXtyZXR1cm4gdC50b0lTT1N0cmluZygpfTpSVCh0QSksaUE9K25ldyBEYXRlKCIyMDAwLTAxLTAxVDAwOjAwOjAwLjAwMFoiKT9mdW5jdGlvbiByQSh0KXt2YXIgZT1uZXcgRGF0ZSh0KTtyZXR1cm4gaXNOYU4oZSk/bnVsbDplfTpPVCh0QSksb0E9MzE1MzZlNjtmdW5jdGlvbiBhQSh0KXtyZXR1cm4gbmV3IERhdGUodCl9ZnVuY3Rpb24gc0EodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlPyt0OituZXcgRGF0ZSgrdCl9ZnVuY3Rpb24gbEEodCxlLG4saSxyLG8sYSxzLGwpe3ZhciBjPUJNKFBNLFBNKSx1PWMuaW52ZXJ0LGg9Yy5kb21haW4sZD1sKCIuJUwiKSxwPWwoIjolUyIpLGY9bCgiJUk6JU0iKSxtPWwoIiVJICVwIiksZz1sKCIlYSAlZCIpLF89bCgiJWIgJWQiKSx5PWwoIiVCIiksdj1sKCIlWSIpLGI9W1thLDEsMWUzXSxbYSw1LDVlM10sW2EsMTUsMTVlM10sW2EsMzAsM2U0XSxbbywxLDZlNF0sW28sNSwzZTVdLFtvLDE1LDllNV0sW28sMzAsMThlNV0sW3IsMSwzNmU1XSxbciwzLDEwOGU1XSxbciw2LDIxNmU1XSxbciwxMiw0MzJlNV0sW2ksMSw4NjRlNV0sW2ksMiwxNzI4ZTVdLFtuLDEsNjA0OGU1XSxbZSwxLDI1OTJlNl0sW2UsMyw3Nzc2ZTZdLFt0LDEsb0FdXTtmdW5jdGlvbiB4KHMpe3JldHVybihhKHMpPHM/ZDpvKHMpPHM/cDpyKHMpPHM/ZjppKHMpPHM/bTplKHMpPHM/bihzKTxzP2c6Xzp0KHMpPHM/eTp2KShzKX1mdW5jdGlvbiB3KGUsbixpLHIpe2lmKG51bGw9PWUmJihlPTEwKSwibnVtYmVyIj09dHlwZW9mIGUpe3ZhciBvPU1hdGguYWJzKGktbikvZSxhPXhsKChmdW5jdGlvbih0KXtyZXR1cm4gdFsyXX0pKS5yaWdodChiLG8pO2E9PT1iLmxlbmd0aD8ocj1VbChuL29BLGkvb0EsZSksZT10KTphPyhyPShhPWJbby9iW2EtMV1bMl08YlthXVsyXS9vP2EtMTphXSlbMV0sZT1hWzBdKToocj1NYXRoLm1heChVbChuLGksZSksMSksZT1zKX1yZXR1cm4gbnVsbD09cj9lOmUuZXZlcnkocil9cmV0dXJuIGMuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRGF0ZSh1KHQpKX0sYy5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/aCh3TS5jYWxsKHQsc0EpKTpoKCkubWFwKGFBKX0sYy50aWNrcz1mdW5jdGlvbih0LGUpe3ZhciBuLGk9aCgpLHI9aVswXSxvPWlbaS5sZW5ndGgtMV0sYT1vPHI7cmV0dXJuIGEmJihuPXIscj1vLG89biksbj0obj13KHQscixvLGUpKT9uLnJhbmdlKHIsbysxKTpbXSxhP24ucmV2ZXJzZSgpOm59LGMudGlja0Zvcm1hdD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1lP3g6bChlKX0sYy5uaWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49aCgpO3JldHVybih0PXcodCxuWzBdLG5bbi5sZW5ndGgtMV0sZSkpP2goVU0obix0KSk6Y30sYy5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHpNKGMsbEEodCxlLG4saSxyLG8sYSxzLGwpKX0sY31mdW5jdGlvbiBjQSgpe3JldHVybiB2TS5hcHBseShsQSgkRSxxRSxQRSxBRSxFRSx3RSx2RSxoRSxOVCkuZG9tYWluKFtuZXcgRGF0ZSgyZTMsMCwxKSxuZXcgRGF0ZSgyZTMsMCwyKV0pLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdUEoKXt2YXIgdCxlLG4saSxyLG89MCxhPTEscz1QTSxsPSExO2Z1bmN0aW9uIGMoZSl7cmV0dXJuIGlzTmFOKGU9K2UpP3I6cygwPT09bj8uNTooZT0oaShlKS10KSpuLGw/TWF0aC5tYXgoMCxNYXRoLm1pbigxLGUpKTplKSl9cmV0dXJuIGMuZG9tYWluPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWkobz0rclswXSksZT1pKGE9K3JbMV0pLG49dD09PWU/MDoxLyhlLXQpLGMpOltvLGFdfSxjLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPSEhdCxjKTpsfSxjLmludGVycG9sYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10LGMpOnN9LGMudW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LGMpOnJ9LGZ1bmN0aW9uKHIpe3JldHVybiBpPXIsdD1yKG8pLGU9cihhKSxuPXQ9PT1lPzA6MS8oZS10KSxjfX1mdW5jdGlvbiBoQSh0LGUpe3JldHVybiBlLmRvbWFpbih0LmRvbWFpbigpKS5pbnRlcnBvbGF0b3IodC5pbnRlcnBvbGF0b3IoKSkuY2xhbXAodC5jbGFtcCgpKS51bmtub3duKHQudW5rbm93bigpKX1mdW5jdGlvbiBkQSgpe3ZhciB0PWlFKHVBKCkpO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gaEEodCxkQSgpKS5leHBvbmVudCh0LmV4cG9uZW50KCkpfSxiTS5hcHBseSh0LGFyZ3VtZW50cyl9ZnVuY3Rpb24gcEEoKXt2YXIgdCxlLG4saSxyLG8sYSxzPTAsbD0uNSxjPTEsdT1QTSxoPSExO2Z1bmN0aW9uIGQodCl7cmV0dXJuIGlzTmFOKHQ9K3QpP2E6KHQ9LjUrKCh0PStvKHQpKS1lKSoodDxlP2k6ciksdShoP01hdGgubWF4KDAsTWF0aC5taW4oMSx0KSk6dCkpfXJldHVybiBkLmRvbWFpbj1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1vKHM9K2FbMF0pLGU9byhsPSthWzFdKSxuPW8oYz0rYVsyXSksaT10PT09ZT8wOi41LyhlLXQpLHI9ZT09PW4/MDouNS8obi1lKSxkKTpbcyxsLGNdfSxkLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSEhdCxkKTpofSxkLmludGVycG9sYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT10LGQpOnV9LGQudW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LGQpOmF9LGZ1bmN0aW9uKGEpe3JldHVybiBvPWEsdD1hKHMpLGU9YShsKSxuPWEoYyksaT10PT09ZT8wOi41LyhlLXQpLHI9ZT09PW4/MDouNS8obi1lKSxkfX1mdW5jdGlvbiBmQSgpe3ZhciB0PWlFKHBBKCkpO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gaEEodCxmQSgpKS5leHBvbmVudCh0LmV4cG9uZW50KCkpfSxiTS5hcHBseSh0LGFyZ3VtZW50cyl9ZnVuY3Rpb24gbUEodCl7Zm9yKHZhciBlPXQubGVuZ3RoLzZ8MCxuPW5ldyBBcnJheShlKSxpPTA7aTxlOyluW2ldPSIjIit0LnNsaWNlKDYqaSw2KisraSk7cmV0dXJuIG59dmFyIGdBPW1BKCIxZjc3YjRmZjdmMGUyY2EwMmNkNjI3Mjg5NDY3YmQ4YzU2NGJlMzc3YzI3ZjdmN2ZiY2JkMjIxN2JlY2YiKSxfQT1tQSgiN2ZjOTdmYmVhZWQ0ZmRjMDg2ZmZmZjk5Mzg2Y2IwZjAwMjdmYmY1YjE3NjY2NjY2IikseUE9bUEoIjFiOWU3N2Q5NWYwMjc1NzBiM2U3Mjk4YTY2YTYxZWU2YWIwMmE2NzYxZDY2NjY2NiIpLHZBPW1BKCJhNmNlZTMxZjc4YjRiMmRmOGEzM2EwMmNmYjlhOTllMzFhMWNmZGJmNmZmZjdmMDBjYWIyZDY2YTNkOWFmZmZmOTliMTU5MjgiKSxiQT1tQSgiZmJiNGFlYjNjZGUzY2NlYmM1ZGVjYmU0ZmVkOWE2ZmZmZmNjZTVkOGJkZmRkYWVjZjJmMmYyIikseEE9bUEoImIzZTJjZGZkY2RhY2NiZDVlOGY0Y2FlNGU2ZjVjOWZmZjJhZWYxZTJjY2NjY2NjYyIpLHdBPW1BKCJlNDFhMWMzNzdlYjg0ZGFmNGE5ODRlYTNmZjdmMDBmZmZmMzNhNjU2MjhmNzgxYmY5OTk5OTkiKSxTQT1tQSgiNjZjMmE1ZmM4ZDYyOGRhMGNiZTc4YWMzYTZkODU0ZmZkOTJmZTVjNDk0YjNiM2IzIiksTUE9bUEoIjhkZDNjN2ZmZmZiM2JlYmFkYWZiODA3MjgwYjFkM2ZkYjQ2MmIzZGU2OWZjY2RlNWQ5ZDlkOWJjODBiZGNjZWJjNWZmZWQ2ZiIpLEVBPW1BKCI0ZTc5YTdmMjhlMmNlMTU3NTk3NmI3YjI1OWExNGZlZGM5NDlhZjdhYTFmZjlkYTc5Yzc1NWZiYWIwYWIiKTtmdW5jdGlvbiBUQSh0KXtyZXR1cm4gTmQodFt0Lmxlbmd0aC0xXSl9dmFyIENBPW5ldyBBcnJheSgzKS5jb25jYXQoImQ4YjM2NWY1ZjVmNTVhYjRhYyIsImE2NjExYWRmYzI3ZDgwY2RjMTAxODU3MSIsImE2NjExYWRmYzI3ZGY1ZjVmNTgwY2RjMTAxODU3MSIsIjhjNTEwYWQ4YjM2NWY2ZThjM2M3ZWFlNTVhYjRhYzAxNjY1ZSIsIjhjNTEwYWQ4YjM2NWY2ZThjM2Y1ZjVmNWM3ZWFlNTVhYjRhYzAxNjY1ZSIsIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2M3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZSIsIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZSIsIjU0MzAwNThjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2M3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZTAwM2MzMCIsIjU0MzAwNThjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZTAwM2MzMCIpLm1hcChtQSksQUE9VEEoQ0EpLGtBPW5ldyBBcnJheSgzKS5jb25jYXQoImFmOGRjM2Y3ZjdmNzdmYmY3YiIsIjdiMzI5NGMyYTVjZmE2ZGJhMDAwODgzNyIsIjdiMzI5NGMyYTVjZmY3ZjdmN2E2ZGJhMDAwODgzNyIsIjc2MmE4M2FmOGRjM2U3ZDRlOGQ5ZjBkMzdmYmY3YjFiNzgzNyIsIjc2MmE4M2FmOGRjM2U3ZDRlOGY3ZjdmN2Q5ZjBkMzdmYmY3YjFiNzgzNyIsIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNyIsIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNyIsIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYiIsIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYiIpLm1hcChtQSksTEE9VEEoa0EpLFBBPW5ldyBBcnJheSgzKS5jb25jYXQoImU5YTNjOWY3ZjdmN2ExZDc2YSIsImQwMWM4YmYxYjZkYWI4ZTE4NjRkYWMyNiIsImQwMWM4YmYxYjZkYWY3ZjdmN2I4ZTE4NjRkYWMyNiIsImM1MWI3ZGU5YTNjOWZkZTBlZmU2ZjVkMGExZDc2YTRkOTIyMSIsImM1MWI3ZGU5YTNjOWZkZTBlZmY3ZjdmN2U2ZjVkMGExZDc2YTRkOTIyMSIsImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmU2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMSIsImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMSIsIjhlMDE1MmM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmU2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMTI3NjQxOSIsIjhlMDE1MmM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMTI3NjQxOSIpLm1hcChtQSksTkE9VEEoUEEpLElBPW5ldyBBcnJheSgzKS5jb25jYXQoIjk5OGVjM2Y3ZjdmN2YxYTM0MCIsIjVlM2M5OWIyYWJkMmZkYjg2M2U2NjEwMSIsIjVlM2M5OWIyYWJkMmY3ZjdmN2ZkYjg2M2U2NjEwMSIsIjU0Mjc4ODk5OGVjM2Q4ZGFlYmZlZTBiNmYxYTM0MGIzNTgwNiIsIjU0Mjc4ODk5OGVjM2Q4ZGFlYmY3ZjdmN2ZlZTBiNmYxYTM0MGIzNTgwNiIsIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNiIsIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNiIsIjJkMDA0YjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNjdmM2IwOCIsIjJkMDA0YjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNjdmM2IwOCIpLm1hcChtQSksUkE9VEEoSUEpLE9BPW5ldyBBcnJheSgzKS5jb25jYXQoImVmOGE2MmY3ZjdmNzY3YTljZiIsImNhMDAyMGY0YTU4MjkyYzVkZTA1NzFiMCIsImNhMDAyMGY0YTU4MmY3ZjdmNzkyYzVkZTA1NzFiMCIsImIyMTgyYmVmOGE2MmZkZGJjN2QxZTVmMDY3YTljZjIxNjZhYyIsImIyMTgyYmVmOGE2MmZkZGJjN2Y3ZjdmN2QxZTVmMDY3YTljZjIxNjZhYyIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYyIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYyIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MSIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MSIpLm1hcChtQSksekE9VEEoT0EpLERBPW5ldyBBcnJheSgzKS5jb25jYXQoImVmOGE2MmZmZmZmZjk5OTk5OSIsImNhMDAyMGY0YTU4MmJhYmFiYTQwNDA0MCIsImNhMDAyMGY0YTU4MmZmZmZmZmJhYmFiYTQwNDA0MCIsImIyMTgyYmVmOGE2MmZkZGJjN2UwZTBlMDk5OTk5OTRkNGQ0ZCIsImIyMTgyYmVmOGE2MmZkZGJjN2ZmZmZmZmUwZTBlMDk5OTk5OTRkNGQ0ZCIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2UwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZCIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZCIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2UwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZDFhMWExYSIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZDFhMWExYSIpLm1hcChtQSksQkE9VEEoREEpLEhBPW5ldyBBcnJheSgzKS5jb25jYXQoImZjOGQ1OWZmZmZiZjkxYmZkYiIsImQ3MTkxY2ZkYWU2MWFiZDllOTJjN2JiNiIsImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZDllOTJjN2JiNiIsImQ3MzAyN2ZjOGQ1OWZlZTA5MGUwZjNmODkxYmZkYjQ1NzViNCIsImQ3MzAyN2ZjOGQ1OWZlZTA5MGZmZmZiZmUwZjNmODkxYmZkYjQ1NzViNCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNCIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNDMxMzY5NSIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNDMxMzY5NSIpLm1hcChtQSksRkE9VEEoSEEpLFZBPW5ldyBBcnJheSgzKS5jb25jYXQoImZjOGQ1OWZmZmZiZjkxY2Y2MCIsImQ3MTkxY2ZkYWU2MWE2ZDk2YTFhOTY0MSIsImQ3MTkxY2ZkYWU2MWZmZmZiZmE2ZDk2YTFhOTY0MSIsImQ3MzAyN2ZjOGQ1OWZlZTA4YmQ5ZWY4YjkxY2Y2MDFhOTg1MCIsImQ3MzAyN2ZjOGQ1OWZlZTA4YmZmZmZiZmQ5ZWY4YjkxY2Y2MDFhOTg1MCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MCIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzNyIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzNyIpLm1hcChtQSksVUE9VEEoVkEpLGpBPW5ldyBBcnJheSgzKS5jb25jYXQoImZjOGQ1OWZmZmZiZjk5ZDU5NCIsImQ3MTkxY2ZkYWU2MWFiZGRhNDJiODNiYSIsImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZGRhNDJiODNiYSIsImQ1M2U0ZmZjOGQ1OWZlZTA4YmU2ZjU5ODk5ZDU5NDMyODhiZCIsImQ1M2U0ZmZjOGQ1OWZlZTA4YmZmZmZiZmU2ZjU5ODk5ZDU5NDMyODhiZCIsImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZCIsImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZCIsIjllMDE0MmQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZDVlNGZhMiIsIjllMDE0MmQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZDVlNGZhMiIpLm1hcChtQSksR0E9VEEoakEpLFdBPW5ldyBBcnJheSgzKS5jb25jYXQoImU1ZjVmOTk5ZDhjOTJjYTI1ZiIsImVkZjhmYmIyZTJlMjY2YzJhNDIzOGI0NSIsImVkZjhmYmIyZTJlMjY2YzJhNDJjYTI1ZjAwNmQyYyIsImVkZjhmYmNjZWNlNjk5ZDhjOTY2YzJhNDJjYTI1ZjAwNmQyYyIsImVkZjhmYmNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNTgyNCIsImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNTgyNCIsImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNmQyYzAwNDQxYiIpLm1hcChtQSkscUE9VEEoV0EpLFlBPW5ldyBBcnJheSgzKS5jb25jYXQoImUwZWNmNDllYmNkYTg4NTZhNyIsImVkZjhmYmIzY2RlMzhjOTZjNjg4NDE5ZCIsImVkZjhmYmIzY2RlMzhjOTZjNjg4NTZhNzgxMGY3YyIsImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjg4NTZhNzgxMGY3YyIsImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YiIsImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YiIsImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDgxMGY3YzRkMDA0YiIpLm1hcChtQSksWEE9VEEoWUEpLCRBPW5ldyBBcnJheSgzKS5jb25jYXQoImUwZjNkYmE4ZGRiNTQzYTJjYSIsImYwZjllOGJhZTRiYzdiY2NjNDJiOGNiZSIsImYwZjllOGJhZTRiYzdiY2NjNDQzYTJjYTA4NjhhYyIsImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDQzYTJjYTA4NjhhYyIsImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NTg5ZSIsImY3ZmNmMGUwZjNkYmNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NTg5ZSIsImY3ZmNmMGUwZjNkYmNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NjhhYzA4NDA4MSIpLm1hcChtQSksS0E9VEEoJEEpLFpBPW5ldyBBcnJheSgzKS5jb25jYXQoImZlZThjOGZkYmI4NGUzNGEzMyIsImZlZjBkOWZkY2M4YWZjOGQ1OWQ3MzAxZiIsImZlZjBkOWZkY2M4YWZjOGQ1OWUzNGEzM2IzMDAwMCIsImZlZjBkOWZkZDQ5ZWZkYmI4NGZjOGQ1OWUzNGEzM2IzMDAwMCIsImZlZjBkOWZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZjk5MDAwMCIsImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZjk5MDAwMCIsImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZmIzMDAwMDdmMDAwMCIpLm1hcChtQSksSkE9VEEoWkEpLFFBPW5ldyBBcnJheSgzKS5jb25jYXQoImVjZTJmMGE2YmRkYjFjOTA5OSIsImY2ZWZmN2JkYzllMTY3YTljZjAyODE4YSIsImY2ZWZmN2JkYzllMTY3YTljZjFjOTA5OTAxNmM1OSIsImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjFjOTA5OTAxNmM1OSIsImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MCIsImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MCIsImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNmM1OTAxNDYzNiIpLm1hcChtQSksdGs9VEEoUUEpLGVrPW5ldyBBcnJheSgzKS5jb25jYXQoImVjZTdmMmE2YmRkYjJiOGNiZSIsImYxZWVmNmJkYzllMTc0YTljZjA1NzBiMCIsImYxZWVmNmJkYzllMTc0YTljZjJiOGNiZTA0NWE4ZCIsImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjJiOGNiZTA0NWE4ZCIsImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDAzNGU3YiIsImZmZjdmYmVjZTdmMmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDAzNGU3YiIsImZmZjdmYmVjZTdmMmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDA0NWE4ZDAyMzg1OCIpLm1hcChtQSksbms9VEEoZWspLGlrPW5ldyBBcnJheSgzKS5jb25jYXQoImU3ZTFlZmM5OTRjN2RkMWM3NyIsImYxZWVmNmQ3YjVkOGRmNjViMGNlMTI1NiIsImYxZWVmNmQ3YjVkOGRmNjViMGRkMWM3Nzk4MDA0MyIsImYxZWVmNmQ0YjlkYWM5OTRjN2RmNjViMGRkMWM3Nzk4MDA0MyIsImYxZWVmNmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1NjkxMDAzZiIsImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1NjkxMDAzZiIsImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1Njk4MDA0MzY3MDAxZiIpLm1hcChtQSkscms9VEEoaWspLG9rPW5ldyBBcnJheSgzKS5jb25jYXQoImZkZTBkZGZhOWZiNWM1MWI4YSIsImZlZWJlMmZiYjRiOWY3NjhhMWFlMDE3ZSIsImZlZWJlMmZiYjRiOWY3NjhhMWM1MWI4YTdhMDE3NyIsImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWM1MWI4YTdhMDE3NyIsImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NyIsImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NyIsImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NzQ5MDA2YSIpLm1hcChtQSksYWs9VEEob2spLHNrPW5ldyBBcnJheSgzKS5jb25jYXQoImVkZjhiMTdmY2RiYjJjN2ZiOCIsImZmZmZjY2ExZGFiNDQxYjZjNDIyNWVhOCIsImZmZmZjY2ExZGFiNDQxYjZjNDJjN2ZiODI1MzQ5NCIsImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDJjN2ZiODI1MzQ5NCIsImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODBjMmM4NCIsImZmZmZkOWVkZjhiMWM3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODBjMmM4NCIsImZmZmZkOWVkZjhiMWM3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODI1MzQ5NDA4MWQ1OCIpLm1hcChtQSksbGs9VEEoc2spLGNrPW5ldyBBcnJheSgzKS5jb25jYXQoImY3ZmNiOWFkZGQ4ZTMxYTM1NCIsImZmZmZjY2MyZTY5OTc4YzY3OTIzODQ0MyIsImZmZmZjY2MyZTY5OTc4YzY3OTMxYTM1NDAwNjgzNyIsImZmZmZjY2Q5ZjBhM2FkZGQ4ZTc4YzY3OTMxYTM1NDAwNjgzNyIsImZmZmZjY2Q5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNWEzMiIsImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNWEzMiIsImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNjgzNzAwNDUyOSIpLm1hcChtQSksdWs9VEEoY2spLGhrPW5ldyBBcnJheSgzKS5jb25jYXQoImZmZjdiY2ZlYzQ0ZmQ5NWYwZSIsImZmZmZkNGZlZDk4ZWZlOTkyOWNjNGMwMiIsImZmZmZkNGZlZDk4ZWZlOTkyOWQ5NWYwZTk5MzQwNCIsImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWQ5NWYwZTk5MzQwNCIsImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNCIsImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNCIsImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjk5MzQwNDY2MjUwNiIpLm1hcChtQSksZGs9VEEoaGspLHBrPW5ldyBBcnJheSgzKS5jb25jYXQoImZmZWRhMGZlYjI0Y2YwM2IyMCIsImZmZmZiMmZlY2M1Y2ZkOGQzY2UzMWExYyIsImZmZmZiMmZlY2M1Y2ZkOGQzY2YwM2IyMGJkMDAyNiIsImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2YwM2IyMGJkMDAyNiIsImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2IxMDAyNiIsImZmZmZjY2ZmZWRhMGZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2IxMDAyNiIsImZmZmZjY2ZmZWRhMGZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2JkMDAyNjgwMDAyNiIpLm1hcChtQSksZms9VEEocGspLG1rPW5ldyBBcnJheSgzKS5jb25jYXQoImRlZWJmNzllY2FlMTMxODJiZCIsImVmZjNmZmJkZDdlNzZiYWVkNjIxNzFiNSIsImVmZjNmZmJkZDdlNzZiYWVkNjMxODJiZDA4NTE5YyIsImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjMxODJiZDA4NTE5YyIsImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NCIsImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NCIsImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NTE5YzA4MzA2YiIpLm1hcChtQSksZ2s9VEEobWspLF9rPW5ldyBBcnJheSgzKS5jb25jYXQoImU1ZjVlMGExZDk5YjMxYTM1NCIsImVkZjhlOWJhZTRiMzc0YzQ3NjIzOGI0NSIsImVkZjhlOWJhZTRiMzc0YzQ3NjMxYTM1NDAwNmQyYyIsImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjMxYTM1NDAwNmQyYyIsImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMiIsImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMiIsImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNmQyYzAwNDQxYiIpLm1hcChtQSkseWs9VEEoX2spLHZrPW5ldyBBcnJheSgzKS5jb25jYXQoImYwZjBmMGJkYmRiZDYzNjM2MyIsImY3ZjdmN2NjY2NjYzk2OTY5NjUyNTI1MiIsImY3ZjdmN2NjY2NjYzk2OTY5NjYzNjM2MzI1MjUyNSIsImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjYzNjM2MzI1MjUyNSIsImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNSIsImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNSIsImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNTAwMDAwMCIpLm1hcChtQSksYms9VEEodmspLHhrPW5ldyBBcnJheSgzKS5jb25jYXQoImVmZWRmNWJjYmRkYzc1NmJiMSIsImYyZjBmN2NiYzllMjllOWFjODZhNTFhMyIsImYyZjBmN2NiYzllMjllOWFjODc1NmJiMTU0Mjc4ZiIsImYyZjBmN2RhZGFlYmJjYmRkYzllOWFjODc1NmJiMTU0Mjc4ZiIsImYyZjBmN2RhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzRhMTQ4NiIsImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzRhMTQ4NiIsImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzU0Mjc4ZjNmMDA3ZCIpLm1hcChtQSksd2s9VEEoeGspLFNrPW5ldyBBcnJheSgzKS5jb25jYXQoImZlZTBkMmZjOTI3MmRlMmQyNiIsImZlZTVkOWZjYWU5MWZiNmE0YWNiMTgxZCIsImZlZTVkOWZjYWU5MWZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZGE1MGYxNTY3MDAwZCIpLm1hcChtQSksTWs9VEEoU2spLEVrPW5ldyBBcnJheSgzKS5jb25jYXQoImZlZTZjZWZkYWU2YmU2NTUwZCIsImZlZWRkZWZkYmU4NWZkOGQzY2Q5NDcwMSIsImZlZWRkZWZkYmU4NWZkOGQzY2U2NTUwZGE2MzYwMyIsImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2U2NTUwZGE2MzYwMyIsImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMThjMmQwNCIsImZmZjVlYmZlZTZjZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMThjMmQwNCIsImZmZjVlYmZlZTZjZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMWE2MzYwMzdmMjcwNCIpLm1hcChtQSksVGs9VEEoRWspLENrPV9wKHhkKDMwMCwuNSwwKSx4ZCgtMjQwLC41LDEpKSxBaz1fcCh4ZCgtMTAwLC43NSwuMzUpLHhkKDgwLDEuNSwuOCkpLGtrPV9wKHhkKDI2MCwuNzUsLjM1KSx4ZCg4MCwxLjUsLjgpKSxMaz14ZCgpLFBrPVVoKCksTms9TWF0aC5QSS8zLElrPTIqTWF0aC5QSS8zO2Z1bmN0aW9uIFJrKHQpe3ZhciBlPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdFtNYXRoLm1heCgwLE1hdGgubWluKGUtMSxNYXRoLmZsb29yKG4qZSkpKV19fXZhciBPaz1SayhtQSgiNDQwMTU0NDQwMjU2NDUwNDU3NDUwNTU5NDYwNzVhNDYwODVjNDYwYTVkNDYwYjVlNDcwZDYwNDcwZTYxNDcxMDYzNDcxMTY0NDcxMzY1NDgxNDY3NDgxNjY4NDgxNzY5NDgxODZhNDgxYTZjNDgxYjZkNDgxYzZlNDgxZDZmNDgxZjcwNDgyMDcxNDgyMTczNDgyMzc0NDgyNDc1NDgyNTc2NDgyNjc3NDgyODc4NDgyOTc5NDcyYTdhNDcyYzdhNDcyZDdiNDcyZTdjNDcyZjdkNDYzMDdlNDYzMjdlNDYzMzdmNDYzNDgwNDUzNTgxNDUzNzgxNDUzODgyNDQzOTgzNDQzYTgzNDQzYjg0NDMzZDg0NDMzZTg1NDIzZjg1NDI0MDg2NDI0MTg2NDE0Mjg3NDE0NDg3NDA0NTg4NDA0Njg4M2Y0Nzg4M2Y0ODg5M2U0OTg5M2U0YTg5M2U0YzhhM2Q0ZDhhM2Q0ZThhM2M0ZjhhM2M1MDhiM2I1MThiM2I1MjhiM2E1MzhiM2E1NDhjMzk1NThjMzk1NjhjMzg1ODhjMzg1OThjMzc1YThjMzc1YjhkMzY1YzhkMzY1ZDhkMzU1ZThkMzU1ZjhkMzQ2MDhkMzQ2MThkMzM2MjhkMzM2MzhkMzI2NDhlMzI2NThlMzE2NjhlMzE2NzhlMzE2ODhlMzA2OThlMzA2YThlMmY2YjhlMmY2YzhlMmU2ZDhlMmU2ZThlMmU2ZjhlMmQ3MDhlMmQ3MThlMmM3MThlMmM3MjhlMmM3MzhlMmI3NDhlMmI3NThlMmE3NjhlMmE3NzhlMmE3ODhlMjk3OThlMjk3YThlMjk3YjhlMjg3YzhlMjg3ZDhlMjc3ZThlMjc3ZjhlMjc4MDhlMjY4MThlMjY4MjhlMjY4MjhlMjU4MzhlMjU4NDhlMjU4NThlMjQ4NjhlMjQ4NzhlMjM4ODhlMjM4OThlMjM4YThkMjI4YjhkMjI4YzhkMjI4ZDhkMjE4ZThkMjE4ZjhkMjE5MDhkMjE5MThjMjA5MjhjMjA5MjhjMjA5MzhjMWY5NDhjMWY5NThiMWY5NjhiMWY5NzhiMWY5ODhiMWY5OThhMWY5YThhMWU5YjhhMWU5Yzg5MWU5ZDg5MWY5ZTg5MWY5Zjg4MWZhMDg4MWZhMTg4MWZhMTg3MWZhMjg3MjBhMzg2MjBhNDg2MjFhNTg1MjFhNjg1MjJhNzg1MjJhODg0MjNhOTgzMjRhYTgzMjVhYjgyMjVhYzgyMjZhZDgxMjdhZDgxMjhhZTgwMjlhZjdmMmFiMDdmMmNiMTdlMmRiMjdkMmViMzdjMmZiNDdjMzFiNTdiMzJiNjdhMzRiNjc5MzViNzc5MzdiODc4MzhiOTc3M2FiYTc2M2JiYjc1M2RiYzc0M2ZiYzczNDBiZDcyNDJiZTcxNDRiZjcwNDZjMDZmNDhjMTZlNGFjMTZkNGNjMjZjNGVjMzZiNTBjNDZhNTJjNTY5NTRjNTY4NTZjNjY3NThjNzY1NWFjODY0NWNjODYzNWVjOTYyNjBjYTYwNjNjYjVmNjVjYjVlNjdjYzVjNjljZDViNmNjZDVhNmVjZTU4NzBjZjU3NzNkMDU2NzVkMDU0NzdkMTUzN2FkMTUxN2NkMjUwN2ZkMzRlODFkMzRkODRkNDRiODZkNTQ5ODlkNTQ4OGJkNjQ2OGVkNjQ1OTBkNzQzOTNkNzQxOTVkODQwOThkODNlOWJkOTNjOWRkOTNiYTBkYTM5YTJkYTM3YTVkYjM2YThkYjM0YWFkYzMyYWRkYzMwYjBkZDJmYjJkZDJkYjVkZTJiYjhkZTI5YmFkZTI4YmRkZjI2YzBkZjI1YzJkZjIzYzVlMDIxYzhlMDIwY2FlMTFmY2RlMTFkZDBlMTFjZDJlMjFiZDVlMjFhZDhlMjE5ZGFlMzE5ZGRlMzE4ZGZlMzE4ZTJlNDE4ZTVlNDE5ZTdlNDE5ZWFlNTFhZWNlNTFiZWZlNTFjZjFlNTFkZjRlNjFlZjZlNjIwZjhlNjIxZmJlNzIzZmRlNzI1IikpLHprPVJrKG1BKCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMDkwMjAyMGIwMjAyMGQwMzAzMGYwMzAzMTIwNDA0MTQwNTA0MTYwNjA1MTgwNjA1MWEwNzA2MWMwODA3MWUwOTA3MjAwYTA4MjIwYjA5MjQwYzA5MjYwZDBhMjkwZTBiMmIxMDBiMmQxMTBjMmYxMjBkMzExMzBkMzQxNDBlMzYxNTBlMzgxNjBmM2IxODBmM2QxOTEwM2YxYTEwNDIxYzEwNDQxZDExNDcxZTExNDkyMDExNGIyMTExNGUyMjExNTAyNDEyNTMyNTEyNTUyNzEyNTgyOTExNWEyYTExNWMyYzExNWYyZDExNjEyZjExNjMzMTExNjUzMzEwNjczNDEwNjkzNjEwNmIzODEwNmMzOTBmNmUzYjBmNzAzZDBmNzEzZjBmNzI0MDBmNzQ0MjBmNzU0NDBmNzY0NTEwNzc0NzEwNzg0OTEwNzg0YTEwNzk0YzExN2E0ZTExN2I0ZjEyN2I1MTEyN2M1MjEzN2M1NDEzN2Q1NjE0N2Q1NzE1N2U1OTE1N2U1YTE2N2U1YzE2N2Y1ZDE3N2Y1ZjE4N2Y2MDE4ODA2MjE5ODA2NDFhODA2NTFhODA2NzFiODA2ODFjODE2YTFjODE2YjFkODE2ZDFkODE2ZTFlODE3MDFmODE3MjFmODE3MzIwODE3NTIxODE3NjIxODE3ODIyODE3OTIyODI3YjIzODI3YzIzODI3ZTI0ODI4MDI1ODI4MTI1ODE4MzI2ODE4NDI2ODE4NjI3ODE4ODI3ODE4OTI4ODE4YjI5ODE4YzI5ODE4ZTJhODE5MDJhODE5MTJiODE5MzJiODA5NDJjODA5NjJjODA5ODJkODA5OTJkODA5YjJlN2Y5YzJlN2Y5ZTJmN2ZhMDJmN2ZhMTMwN2VhMzMwN2VhNTMxN2VhNjMxN2RhODMyN2RhYTMzN2RhYjMzN2NhZDM0N2NhZTM0N2JiMDM1N2JiMjM1N2JiMzM2N2FiNTM2N2FiNzM3NzliODM3NzliYTM4NzhiYzM5NzhiZDM5NzdiZjNhNzdjMDNhNzZjMjNiNzVjNDNjNzVjNTNjNzRjNzNkNzNjODNlNzNjYTNlNzJjYzNmNzFjZDQwNzFjZjQwNzBkMDQxNmZkMjQyNmZkMzQzNmVkNTQ0NmRkNjQ1NmNkODQ1NmNkOTQ2NmJkYjQ3NmFkYzQ4NjlkZTQ5NjhkZjRhNjhlMDRjNjdlMjRkNjZlMzRlNjVlNDRmNjRlNTUwNjRlNzUyNjNlODUzNjJlOTU0NjJlYTU2NjFlYjU3NjBlYzU4NjBlZDVhNWZlZTViNWVlZjVkNWVmMDVmNWVmMTYwNWRmMjYyNWRmMjY0NWNmMzY1NWNmNDY3NWNmNDY5NWNmNTZiNWNmNjZjNWNmNjZlNWNmNzcwNWNmNzcyNWNmODc0NWNmODc2NWNmOTc4NWRmOTc5NWRmOTdiNWRmYTdkNWVmYTdmNWVmYTgxNWZmYjgzNWZmYjg1NjBmYjg3NjFmYzg5NjFmYzhhNjJmYzhjNjNmYzhlNjRmYzkwNjVmZDkyNjZmZDk0NjdmZDk2NjhmZDk4NjlmZDlhNmFmZDliNmJmZTlkNmNmZTlmNmRmZWExNmVmZWEzNmZmZWE1NzFmZWE3NzJmZWE5NzNmZWFhNzRmZWFjNzZmZWFlNzdmZWIwNzhmZWIyN2FmZWI0N2JmZWI2N2NmZWI3N2VmZWI5N2ZmZWJiODFmZWJkODJmZWJmODRmZWMxODVmZWMyODdmZWM0ODhmZWM2OGFmZWM4OGNmZWNhOGRmZWNjOGZmZWNkOTBmZWNmOTJmZWQxOTRmZWQzOTVmZWQ1OTdmZWQ3OTlmZWQ4OWFmZGRhOWNmZGRjOWVmZGRlYTBmZGUwYTFmZGUyYTNmZGUzYTVmZGU1YTdmZGU3YTlmZGU5YWFmZGViYWNmY2VjYWVmY2VlYjBmY2YwYjJmY2YyYjRmY2Y0YjZmY2Y2YjhmY2Y3YjlmY2Y5YmJmY2ZiYmRmY2ZkYmYiKSksRGs9UmsobUEoIjAwMDAwNDAxMDAwNTAxMDEwNjAxMDEwODAyMDEwYTAyMDIwYzAyMDIwZTAzMDIxMDA0MDMxMjA0MDMxNDA1MDQxNzA2MDQxOTA3MDUxYjA4MDUxZDA5MDYxZjBhMDcyMjBiMDcyNDBjMDgyNjBkMDgyOTBlMDkyYjEwMDkyZDExMGEzMDEyMGEzMjE0MGIzNDE1MGIzNzE2MGIzOTE4MGMzYzE5MGMzZTFiMGM0MTFjMGM0MzFlMGM0NTFmMGM0ODIxMGM0YTIzMGM0YzI0MGM0ZjI2MGM1MTI4MGI1MzI5MGI1NTJiMGI1NzJkMGI1OTJmMGE1YjMxMGE1YzMyMGE1ZTM0MGE1ZjM2MDk2MTM4MDk2MjM5MDk2MzNiMDk2NDNkMDk2NTNlMDk2NjQwMGE2NzQyMGE2ODQ0MGE2ODQ1MGE2OTQ3MGI2YTQ5MGI2YTRhMGM2YjRjMGM2YjRkMGQ2YzRmMGQ2YzUxMGU2YzUyMGU2ZDU0MGY2ZDU1MGY2ZDU3MTA2ZTU5MTA2ZTVhMTE2ZTVjMTI2ZTVkMTI2ZTVmMTM2ZTYxMTM2ZTYyMTQ2ZTY0MTU2ZTY1MTU2ZTY3MTY2ZTY5MTY2ZTZhMTc2ZTZjMTg2ZTZkMTg2ZTZmMTk2ZTcxMTk2ZTcyMWE2ZTc0MWE2ZTc1MWI2ZTc3MWM2ZDc4MWM2ZDdhMWQ2ZDdjMWQ2ZDdkMWU2ZDdmMWU2YzgwMWY2YzgyMjA2Yzg0MjA2Yjg1MjE2Yjg3MjE2Yjg4MjI2YThhMjI2YThjMjM2OThkMjM2OThmMjQ2OTkwMjU2ODkyMjU2ODkzMjY2Nzk1MjY2Nzk3Mjc2Njk4Mjc2NjlhMjg2NTliMjk2NDlkMjk2NDlmMmE2M2EwMmE2M2EyMmI2MmEzMmM2MWE1MmM2MGE2MmQ2MGE4MmU1ZmE5MmU1ZWFiMmY1ZWFkMzA1ZGFlMzA1Y2IwMzE1YmIxMzI1YWIzMzI1YWI0MzM1OWI2MzQ1OGI3MzU1N2I5MzU1NmJhMzY1NWJjMzc1NGJkMzg1M2JmMzk1MmMwM2E1MWMxM2E1MGMzM2I0ZmM0M2M0ZWM2M2Q0ZGM3M2U0Y2M4M2Y0YmNhNDA0YWNiNDE0OWNjNDI0OGNlNDM0N2NmNDQ0NmQwNDU0NWQyNDY0NGQzNDc0M2Q0NDg0MmQ1NGE0MWQ3NGIzZmQ4NGMzZWQ5NGQzZGRhNGUzY2RiNTAzYmRkNTEzYWRlNTIzOGRmNTMzN2UwNTUzNmUxNTYzNWUyNTczNGUzNTkzM2U0NWEzMWU1NWMzMGU2NWQyZmU3NWUyZWU4NjAyZGU5NjEyYmVhNjMyYWViNjQyOWViNjYyOGVjNjcyNmVkNjkyNWVlNmEyNGVmNmMyM2VmNmUyMWYwNmYyMGYxNzExZmYxNzMxZGYyNzQxY2YzNzYxYmYzNzgxOWY0NzkxOGY1N2IxN2Y1N2QxNWY2N2UxNGY2ODAxM2Y3ODIxMmY3ODQxMGY4ODUwZmY4ODcwZWY4ODkwY2Y5OGIwYmY5OGMwYWY5OGUwOWZhOTAwOGZhOTIwN2ZhOTQwN2ZiOTYwNmZiOTcwNmZiOTkwNmZiOWIwNmZiOWQwN2ZjOWYwN2ZjYTEwOGZjYTMwOWZjYTUwYWZjYTYwY2ZjYTgwZGZjYWEwZmZjYWMxMWZjYWUxMmZjYjAxNGZjYjIxNmZjYjQxOGZiYjYxYWZiYjgxZGZiYmExZmZiYmMyMWZiYmUyM2ZhYzAyNmZhYzIyOGZhYzQyYWZhYzYyZGY5YzcyZmY5YzkzMmY5Y2IzNWY4Y2QzN2Y4Y2YzYWY3ZDEzZGY3ZDM0MGY2ZDU0M2Y2ZDc0NmY1ZDk0OWY1ZGI0Y2Y0ZGQ0ZmY0ZGY1M2Y0ZTE1NmYzZTM1YWYzZTU1ZGYyZTY2MWYyZTg2NWYyZWE2OWYxZWM2ZGYxZWQ3MWYxZWY3NWYxZjE3OWYyZjI3ZGYyZjQ4MmYzZjU4NmYzZjY4YWY0Zjg4ZWY1Zjk5MmY2ZmE5NmY4ZmI5YWY5ZmM5ZGZhZmRhMWZjZmZhNCIpKSxCaz1SayhtQSgiMGQwODg3MTAwNzg4MTMwNzg5MTYwNzhhMTkwNjhjMWIwNjhkMWQwNjhlMjAwNjhmMjIwNjkwMjQwNjkxMjYwNTkxMjgwNTkyMmEwNTkzMmMwNTk0MmUwNTk1MmYwNTk2MzEwNTk3MzMwNTk3MzUwNDk4MzcwNDk5MzgwNDlhM2EwNDlhM2MwNDliM2UwNDljM2YwNDljNDEwNDlkNDMwMzllNDQwMzllNDYwMzlmNDgwMzlmNDkwM2EwNGIwM2ExNGMwMmExNGUwMmEyNTAwMmEyNTEwMmEzNTMwMmEzNTUwMmE0NTYwMWE0NTgwMWE0NTkwMWE1NWIwMWE1NWMwMWE2NWUwMWE2NjAwMWE2NjEwMGE3NjMwMGE3NjQwMGE3NjYwMGE3NjcwMGE4NjkwMGE4NmEwMGE4NmMwMGE4NmUwMGE4NmYwMGE4NzEwMGE4NzIwMWE4NzQwMWE4NzUwMWE4NzcwMWE4NzgwMWE4N2EwMmE4N2IwMmE4N2QwM2E4N2UwM2E4ODAwNGE4ODEwNGE3ODMwNWE3ODQwNWE3ODYwNmE2ODcwN2E2ODgwOGE2OGEwOWE1OGIwYWE1OGQwYmE1OGUwY2E0OGYwZGE0OTEwZWEzOTIwZmEzOTQxMGEyOTUxMWExOTYxM2ExOTgxNGEwOTkxNTlmOWExNjlmOWMxNzllOWQxODlkOWUxOTlkYTAxYTljYTExYjliYTIxZDlhYTMxZTlhYTUxZjk5YTYyMDk4YTcyMTk3YTgyMjk2YWEyMzk1YWIyNDk0YWMyNjk0YWQyNzkzYWUyODkyYjAyOTkxYjEyYTkwYjIyYjhmYjMyYzhlYjQyZThkYjUyZjhjYjYzMDhiYjczMThhYjgzMjg5YmEzMzg4YmIzNDg4YmMzNTg3YmQzNzg2YmUzODg1YmYzOTg0YzAzYTgzYzEzYjgyYzIzYzgxYzMzZDgwYzQzZTdmYzU0MDdlYzY0MTdkYzc0MjdjYzg0MzdiYzk0NDdhY2E0NTdhY2I0Njc5Y2M0Nzc4Y2M0OTc3Y2Q0YTc2Y2U0Yjc1Y2Y0Yzc0ZDA0ZDczZDE0ZTcyZDI0ZjcxZDM1MTcxZDQ1MjcwZDU1MzZmZDU1NDZlZDY1NTZkZDc1NjZjZDg1NzZiZDk1ODZhZGE1YTZhZGE1YjY5ZGI1YzY4ZGM1ZDY3ZGQ1ZTY2ZGU1ZjY1ZGU2MTY0ZGY2MjYzZTA2MzYzZTE2NDYyZTI2NTYxZTI2NjYwZTM2ODVmZTQ2OTVlZTU2YTVkZTU2YjVkZTY2YzVjZTc2ZTViZTc2ZjVhZTg3MDU5ZTk3MTU4ZTk3MjU3ZWE3NDU3ZWI3NTU2ZWI3NjU1ZWM3NzU0ZWQ3OTUzZWQ3YTUyZWU3YjUxZWY3YzUxZWY3ZTUwZjA3ZjRmZjA4MDRlZjE4MTRkZjE4MzRjZjI4NDRiZjM4NTRiZjM4NzRhZjQ4ODQ5ZjQ4OTQ4ZjU4YjQ3ZjU4YzQ2ZjY4ZDQ1ZjY4ZjQ0Zjc5MDQ0Zjc5MTQzZjc5MzQyZjg5NDQxZjg5NTQwZjk5NzNmZjk5ODNlZjk5YTNlZmE5YjNkZmE5YzNjZmE5ZTNiZmI5ZjNhZmJhMTM5ZmJhMjM4ZmNhMzM4ZmNhNTM3ZmNhNjM2ZmNhODM1ZmNhOTM0ZmRhYjMzZmRhYzMzZmRhZTMyZmRhZjMxZmRiMTMwZmRiMjJmZmRiNDJmZmRiNTJlZmViNzJkZmViODJjZmViYTJjZmViYjJiZmViZDJhZmViZTJhZmVjMDI5ZmRjMjI5ZmRjMzI4ZmRjNTI3ZmRjNjI3ZmRjODI3ZmRjYTI2ZmRjYjI2ZmNjZDI1ZmNjZTI1ZmNkMDI1ZmNkMjI1ZmJkMzI0ZmJkNTI0ZmJkNzI0ZmFkODI0ZmFkYTI0ZjlkYzI0ZjlkZDI1ZjhkZjI1ZjhlMTI1ZjdlMjI1ZjdlNDI1ZjZlNjI2ZjZlODI2ZjVlOTI2ZjVlYjI3ZjRlZDI3ZjNlZTI3ZjNmMDI3ZjJmMjI3ZjFmNDI2ZjFmNTI1ZjBmNzI0ZjBmOTIxIikpO2Z1bmN0aW9uIEhrKHQpe3JldHVybiBmdW5jdGlvbiBlKCl7cmV0dXJuIHR9fXZhciBGaz1NYXRoLmFicyxWaz1NYXRoLmF0YW4yLFVrPU1hdGguY29zLGprPU1hdGgubWF4LEdrPU1hdGgubWluLFdrPU1hdGguc2luLHFrPU1hdGguc3FydCxZaz0xZS0xMixYaz1NYXRoLlBJLCRrPVhrLzIsS2s9MipYaztmdW5jdGlvbiBaayh0KXtyZXR1cm4gdD4xPzA6dDwtMT9YazpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gSmsodCl7cmV0dXJuIHQ+PTE/JGs6dDw9LTE/LSRrOk1hdGguYXNpbih0KX1mdW5jdGlvbiBRayh0KXtyZXR1cm4gdC5pbm5lclJhZGl1c31mdW5jdGlvbiB0TCh0KXtyZXR1cm4gdC5vdXRlclJhZGl1c31mdW5jdGlvbiBlTCh0KXtyZXR1cm4gdC5zdGFydEFuZ2xlfWZ1bmN0aW9uIG5MKHQpe3JldHVybiB0LmVuZEFuZ2xlfWZ1bmN0aW9uIGlMKHQpe3JldHVybiB0JiZ0LnBhZEFuZ2xlfWZ1bmN0aW9uIHJMKHQsZSxuLGkscixvLGEscyl7dmFyIGw9bi10LGM9aS1lLHU9YS1yLGg9cy1vLGQ9aCpsLXUqYztpZighKGQqZDxZaykpcmV0dXJuW3QrKGQ9KHUqKGUtbyktaCoodC1yKSkvZCkqbCxlK2QqY119ZnVuY3Rpb24gb0wodCxlLG4saSxyLG8sYSl7dmFyIHM9dC1uLGw9ZS1pLGM9KGE/bzotbykvcWsocypzK2wqbCksdT1jKmwsaD0tYypzLGQ9dCt1LHA9ZStoLGY9bit1LG09aStoLGc9KGQrZikvMixfPShwK20pLzIseT1mLWQsdj1tLXAsYj15Knkrdip2LHg9ci1vLHc9ZCptLWYqcCxTPSh2PDA/LTE6MSkqcWsoamsoMCx4KngqYi13KncpKSxNPSh3KnYteSpTKS9iLEU9KC13KnktdipTKS9iLFQ9KHcqdit5KlMpL2IsQz0oLXcqeSt2KlMpL2IsQT1NLWcsaz1FLV8sTD1ULWcsUD1DLV87cmV0dXJuIEEqQStrKms+TCpMK1AqUCYmKE09VCxFPUMpLHtjeDpNLGN5OkUseDAxOi11LHkwMTotaCx4MTE6TSooci94LTEpLHkxMTpFKihyL3gtMSl9fWZ1bmN0aW9uIGFMKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBzTCh0KXtyZXR1cm4gbmV3IGFMKHQpfWZ1bmN0aW9uIGxMKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIGNMKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIHVMKCl7dmFyIHQ9bEwsZT1jTCxuPUhrKCEwKSxpPW51bGwscj1zTCxvPW51bGw7ZnVuY3Rpb24gYShhKXt2YXIgcyxsLGMsdT1hLmxlbmd0aCxoPSExO2ZvcihudWxsPT1pJiYobz1yKGM9ZmcoKSkpLHM9MDtzPD11OysrcykhKHM8dSYmbihsPWFbc10scyxhKSk9PT1oJiYoKGg9IWgpP28ubGluZVN0YXJ0KCk6by5saW5lRW5kKCkpLGgmJm8ucG9pbnQoK3QobCxzLGEpLCtlKGwscyxhKSk7aWYoYylyZXR1cm4gbz1udWxsLGMrIiJ8fG51bGx9cmV0dXJuIGEueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOkhrKCtlKSxhKTp0fSxhLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIaygrdCksYSk6ZX0sYS5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoISF0KSxhKTpufSxhLmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbnVsbCE9aSYmKG89cihpKSksYSk6cn0sYS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P2k9bz1udWxsOm89cihpPXQpLGEpOml9LGF9ZnVuY3Rpb24gaEwoKXt2YXIgdD1sTCxlPW51bGwsbj1IaygwKSxpPWNMLHI9SGsoITApLG89bnVsbCxhPXNMLHM9bnVsbDtmdW5jdGlvbiBsKGwpe3ZhciBjLHUsaCxkLHAsZj1sLmxlbmd0aCxtPSExLGc9bmV3IEFycmF5KGYpLF89bmV3IEFycmF5KGYpO2ZvcihudWxsPT1vJiYocz1hKHA9ZmcoKSkpLGM9MDtjPD1mOysrYyl7aWYoIShjPGYmJnIoZD1sW2NdLGMsbCkpPT09bSlpZihtPSFtKXU9YyxzLmFyZWFTdGFydCgpLHMubGluZVN0YXJ0KCk7ZWxzZXtmb3Iocy5saW5lRW5kKCkscy5saW5lU3RhcnQoKSxoPWMtMTtoPj11Oy0taClzLnBvaW50KGdbaF0sX1toXSk7cy5saW5lRW5kKCkscy5hcmVhRW5kKCl9bSYmKGdbY109K3QoZCxjLGwpLF9bY109K24oZCxjLGwpLHMucG9pbnQoZT8rZShkLGMsbCk6Z1tjXSxpPytpKGQsYyxsKTpfW2NdKSl9aWYocClyZXR1cm4gcz1udWxsLHArIiJ8fG51bGx9ZnVuY3Rpb24gYygpe3JldHVybiB1TCgpLmRlZmluZWQocikuY3VydmUoYSkuY29udGV4dChvKX1yZXR1cm4gbC54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBuP246SGsoK24pLGU9bnVsbCxsKTp0fSxsLngwPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6SGsoK2UpLGwpOnR9LGwueDE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bnVsbD09dD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGwpOmV9LGwueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxpPW51bGwsbCk6bn0sbC55MD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxsKTpufSxsLnkxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxsKTppfSxsLmxpbmVYMD1sLmxpbmVZMD1mdW5jdGlvbigpe3JldHVybiBjKCkueCh0KS55KG4pfSxsLmxpbmVZMT1mdW5jdGlvbigpe3JldHVybiBjKCkueCh0KS55KGkpfSxsLmxpbmVYMT1mdW5jdGlvbigpe3JldHVybiBjKCkueChlKS55KG4pfSxsLmRlZmluZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIayghIXQpLGwpOnJ9LGwuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dCxudWxsIT1vJiYocz1hKG8pKSxsKTphfSxsLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/bz1zPW51bGw6cz1hKG89dCksbCk6b30sbH1mdW5jdGlvbiBkTCh0LGUpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn1mdW5jdGlvbiBwTCh0KXtyZXR1cm4gdH1hTC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5saW5lVG8odCxlKX19fTt2YXIgZkw9Z0woc0wpO2Z1bmN0aW9uIG1MKHQpe3RoaXMuX2N1cnZlPXR9ZnVuY3Rpb24gZ0wodCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gbmV3IG1MKHQoZSkpfXJldHVybiBlLl9jdXJ2ZT10LGV9ZnVuY3Rpb24gX0wodCl7dmFyIGU9dC5jdXJ2ZTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoZ0wodCkpOmUoKS5fY3VydmV9LHR9ZnVuY3Rpb24geUwoKXtyZXR1cm4gX0wodUwoKS5jdXJ2ZShmTCkpfWZ1bmN0aW9uIHZMKCl7dmFyIHQ9aEwoKS5jdXJ2ZShmTCksZT10LmN1cnZlLG49dC5saW5lWDAsaT10LmxpbmVYMSxyPXQubGluZVkwLG89dC5saW5lWTE7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5zdGFydEFuZ2xlPXQueDAsZGVsZXRlIHQueDAsdC5lbmRBbmdsZT10LngxLGRlbGV0ZSB0LngxLHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuaW5uZXJSYWRpdXM9dC55MCxkZWxldGUgdC55MCx0Lm91dGVyUmFkaXVzPXQueTEsZGVsZXRlIHQueTEsdC5saW5lU3RhcnRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBfTChuKCkpfSxkZWxldGUgdC5saW5lWDAsdC5saW5lRW5kQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gX0woaSgpKX0sZGVsZXRlIHQubGluZVgxLHQubGluZUlubmVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIF9MKHIoKSl9LGRlbGV0ZSB0LmxpbmVZMCx0LmxpbmVPdXRlclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBfTChvKCkpfSxkZWxldGUgdC5saW5lWTEsdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKGdMKHQpKTplKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIGJMKHQsZSl7cmV0dXJuWyhlPStlKSpNYXRoLmNvcyh0LT1NYXRoLlBJLzIpLGUqTWF0aC5zaW4odCldfW1MLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYVN0YXJ0KCl9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhRW5kKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX2N1cnZlLnBvaW50KGUqTWF0aC5zaW4odCksZSotTWF0aC5jb3ModCkpfX07dmFyIHhMPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiB3TCh0KXtyZXR1cm4gdC5zb3VyY2V9ZnVuY3Rpb24gU0wodCl7cmV0dXJuIHQudGFyZ2V0fWZ1bmN0aW9uIE1MKHQpe3ZhciBlPXdMLG49U0wsaT1sTCxyPWNMLG89bnVsbDtmdW5jdGlvbiBhKCl7dmFyIGEscz14TC5jYWxsKGFyZ3VtZW50cyksbD1lLmFwcGx5KHRoaXMscyksYz1uLmFwcGx5KHRoaXMscyk7aWYob3x8KG89YT1mZygpKSx0KG8sK2kuYXBwbHkodGhpcywoc1swXT1sLHMpKSwrci5hcHBseSh0aGlzLHMpLCtpLmFwcGx5KHRoaXMsKHNbMF09YyxzKSksK3IuYXBwbHkodGhpcyxzKSksYSlyZXR1cm4gbz1udWxsLGErIiJ8fG51bGx9cmV0dXJuIGEuc291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsYSk6ZX0sYS50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxhKTpufSxhLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIaygrdCksYSk6aX0sYS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGEpOnJ9LGEuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT10P251bGw6dCxhKTpvfSxhfWZ1bmN0aW9uIEVMKHQsZSxuLGkscil7dC5tb3ZlVG8oZSxuKSx0LmJlemllckN1cnZlVG8oZT0oZStpKS8yLG4sZSxyLGkscil9ZnVuY3Rpb24gVEwodCxlLG4saSxyKXt0Lm1vdmVUbyhlLG4pLHQuYmV6aWVyQ3VydmVUbyhlLG49KG4rcikvMixpLG4saSxyKX1mdW5jdGlvbiBDTCh0LGUsbixpLHIpe3ZhciBvPWJMKGUsbiksYT1iTChlLG49KG4rcikvMikscz1iTChpLG4pLGw9YkwoaSxyKTt0Lm1vdmVUbyhvWzBdLG9bMV0pLHQuYmV6aWVyQ3VydmVUbyhhWzBdLGFbMV0sc1swXSxzWzFdLGxbMF0sbFsxXSl9dmFyIEFMPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KGUvWGspO3QubW92ZVRvKG4sMCksdC5hcmMoMCwwLG4sMCxLayl9fSxrTD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydChlLzUpLzI7dC5tb3ZlVG8oLTMqbiwtbiksdC5saW5lVG8oLW4sLW4pLHQubGluZVRvKC1uLC0zKm4pLHQubGluZVRvKG4sLTMqbiksdC5saW5lVG8obiwtbiksdC5saW5lVG8oMypuLC1uKSx0LmxpbmVUbygzKm4sbiksdC5saW5lVG8obixuKSx0LmxpbmVUbyhuLDMqbiksdC5saW5lVG8oLW4sMypuKSx0LmxpbmVUbygtbixuKSx0LmxpbmVUbygtMypuLG4pLHQuY2xvc2VQYXRoKCl9fSxMTD1NYXRoLnNxcnQoMS8zKSxQTD0yKkxMLE5MPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KGUvUEwpLGk9bipMTDt0Lm1vdmVUbygwLC1uKSx0LmxpbmVUbyhpLDApLHQubGluZVRvKDAsbiksdC5saW5lVG8oLWksMCksdC5jbG9zZVBhdGgoKX19LElMPU1hdGguc2luKFhrLzEwKS9NYXRoLnNpbig3KlhrLzEwKSxSTD1NYXRoLnNpbihLay8xMCkqSUwsT0w9LU1hdGguY29zKEtrLzEwKSpJTCx6TD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydCguODkwODEzMDkxNTI5Mjg1MiplKSxpPVJMKm4scj1PTCpuO3QubW92ZVRvKDAsLW4pLHQubGluZVRvKGkscik7Zm9yKHZhciBvPTE7bzw1Oysrbyl7dmFyIGE9S2sqby81LHM9TWF0aC5jb3MoYSksbD1NYXRoLnNpbihhKTt0LmxpbmVUbyhsKm4sLXMqbiksdC5saW5lVG8ocyppLWwqcixsKmkrcypyKX10LmNsb3NlUGF0aCgpfX0sREw9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLnNxcnQoZSksaT0tbi8yO3QucmVjdChpLGksbixuKX19LEJMPU1hdGguc3FydCgzKSxITD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPS1NYXRoLnNxcnQoZS8oMypCTCkpO3QubW92ZVRvKDAsMipuKSx0LmxpbmVUbygtQkwqbiwtbiksdC5saW5lVG8oQkwqbiwtbiksdC5jbG9zZVBhdGgoKX19LEZMPS0uNSxWTD1NYXRoLnNxcnQoMykvMixVTD0xL01hdGguc3FydCgxMiksakw9MyooVUwvMisxKSxHTD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydChlL2pMKSxpPW4vMixyPW4qVUwsbz1pLGE9bipVTCtuLHM9LW8sbD1hO3QubW92ZVRvKGksciksdC5saW5lVG8obyxhKSx0LmxpbmVUbyhzLGwpLHQubGluZVRvKEZMKmktVkwqcixWTCppK0ZMKnIpLHQubGluZVRvKEZMKm8tVkwqYSxWTCpvK0ZMKmEpLHQubGluZVRvKEZMKnMtVkwqbCxWTCpzK0ZMKmwpLHQubGluZVRvKEZMKmkrVkwqcixGTCpyLVZMKmkpLHQubGluZVRvKEZMKm8rVkwqYSxGTCphLVZMKm8pLHQubGluZVRvKEZMKnMrVkwqbCxGTCpsLVZMKnMpLHQuY2xvc2VQYXRoKCl9fSxXTD1bQUwsa0wsTkwsREwsekwsSEwsR0xdO2Z1bmN0aW9uIHFMKCl7fWZ1bmN0aW9uIFlMKHQsZSxuKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8oKDIqdC5feDArdC5feDEpLzMsKDIqdC5feTArdC5feTEpLzMsKHQuX3gwKzIqdC5feDEpLzMsKHQuX3kwKzIqdC5feTEpLzMsKHQuX3gwKzQqdC5feDErZSkvNiwodC5feTArNCp0Ll95MStuKS82KX1mdW5jdGlvbiBYTCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gJEwodCl7cmV0dXJuIG5ldyBYTCh0KX1mdW5jdGlvbiBLTCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gWkwodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIEpMKHQsZSl7dGhpcy5fYmFzaXM9bmV3IFhMKHQpLHRoaXMuX2JldGE9ZX1YTC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAzOllMKHRoaXMsdGhpcy5feDEsdGhpcy5feTEpO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2NvbnRleHQubGluZVRvKCg1KnRoaXMuX3gwK3RoaXMuX3gxKS82LCg1KnRoaXMuX3kwK3RoaXMuX3kxKS82KTtkZWZhdWx0OllMKHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWV9fSxLTC5wcm90b3R5cGU9e2FyZWFTdGFydDpxTCxhcmVhRW5kOnFMLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MisyKnRoaXMuX3gzKS8zLCh0aGlzLl95MisyKnRoaXMuX3kzKS8zKSx0aGlzLl9jb250ZXh0LmxpbmVUbygodGhpcy5feDMrMip0aGlzLl94MikvMywodGhpcy5feTMrMip0aGlzLl95MikvMyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCl9fSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gyPXQsdGhpcy5feTI9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94Mz10LHRoaXMuX3kzPWU7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDQ9dCx0aGlzLl95ND1lLHRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYsKHRoaXMuX3kwKzQqdGhpcy5feTErZSkvNik7YnJlYWs7ZGVmYXVsdDpZTCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0sWkwucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7dmFyIG49KHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNixpPSh0aGlzLl95MCs0KnRoaXMuX3kxK2UpLzY7dGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhuLGkpOnRoaXMuX2NvbnRleHQubW92ZVRvKG4saSk7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpZTCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0sSkwucHJvdG90eXBlPXtsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W10sdGhpcy5fYmFzaXMubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LGU9dGhpcy5feSxuPXQubGVuZ3RoLTE7aWYobj4wKWZvcih2YXIgaSxyPXRbMF0sbz1lWzBdLGE9dFtuXS1yLHM9ZVtuXS1vLGw9LTE7KytsPD1uOyl0aGlzLl9iYXNpcy5wb2ludCh0aGlzLl9iZXRhKnRbbF0rKDEtdGhpcy5fYmV0YSkqKHIrKGk9bC9uKSphKSx0aGlzLl9iZXRhKmVbbF0rKDEtdGhpcy5fYmV0YSkqKG8raSpzKSk7dGhpcy5feD10aGlzLl95PW51bGwsdGhpcy5fYmFzaXMubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtlKX19O3ZhciBRTD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiAxPT09ZT9uZXcgWEwodCk6bmV3IEpMKHQsZSl9cmV0dXJuIG4uYmV0YT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSguODUpO2Z1bmN0aW9uIHRQKHQsZSxuKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8odC5feDErdC5fayoodC5feDItdC5feDApLHQuX3kxK3QuX2sqKHQuX3kyLXQuX3kwKSx0Ll94Mit0Ll9rKih0Ll94MS1lKSx0Ll95Mit0Ll9rKih0Ll95MS1uKSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gZVAodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1lKS82fWVQLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0UCh0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDE9dCx0aGlzLl95MT1lO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6dFAodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBuUD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBuZXcgZVAodCxlKX1yZXR1cm4gbi50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKDApO2Z1bmN0aW9uIGlQKHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1pUC5wcm90b3R5cGU9e2FyZWFTdGFydDpxTCxhcmVhRW5kOnFMLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDM9dCx0aGlzLl95Mz1lO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0PXQsdGhpcy5feTQ9ZSk7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDU9dCx0aGlzLl95NT1lO2JyZWFrO2RlZmF1bHQ6dFAodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciByUD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBuZXcgaVAodCxlKX1yZXR1cm4gbi50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKDApO2Z1bmN0aW9uIG9QKHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1vUC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDp0UCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIGFQPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIG5ldyBvUCh0LGUpfXJldHVybiBuLnRlbnNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoMCk7ZnVuY3Rpb24gc1AodCxlLG4pe3ZhciBpPXQuX3gxLHI9dC5feTEsbz10Ll94MixhPXQuX3kyO2lmKHQuX2wwMV9hPllrKXt2YXIgcz0yKnQuX2wwMV8yYSszKnQuX2wwMV9hKnQuX2wxMl9hK3QuX2wxMl8yYSxsPTMqdC5fbDAxX2EqKHQuX2wwMV9hK3QuX2wxMl9hKTtpPShpKnMtdC5feDAqdC5fbDEyXzJhK3QuX3gyKnQuX2wwMV8yYSkvbCxyPShyKnMtdC5feTAqdC5fbDEyXzJhK3QuX3kyKnQuX2wwMV8yYSkvbH1pZih0Ll9sMjNfYT5Zayl7dmFyIGM9Mip0Ll9sMjNfMmErMyp0Ll9sMjNfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsdT0zKnQuX2wyM19hKih0Ll9sMjNfYSt0Ll9sMTJfYSk7bz0obypjK3QuX3gxKnQuX2wyM18yYS1lKnQuX2wxMl8yYSkvdSxhPShhKmMrdC5feTEqdC5fbDIzXzJhLW4qdC5fbDEyXzJhKS91fXQuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhpLHIsbyxhLHQuX3gyLHQuX3kyKX1mdW5jdGlvbiBsUCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1lfWxQLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gyLHRoaXMuX3kyKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6c1AodGhpcyx0LGUpfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgY1A9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gZT9uZXcgbFAodCxlKTpuZXcgZVAodCwwKX1yZXR1cm4gbi5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSguNSk7ZnVuY3Rpb24gdVAodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9ZX11UC5wcm90b3R5cGU9e2FyZWFTdGFydDpxTCxhcmVhRW5kOnFMLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PWUpO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9ZTticmVhaztkZWZhdWx0OnNQKHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIGhQPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGU/bmV3IHVQKHQsZSk6bmV3IGlQKHQsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjUpO2Z1bmN0aW9uIGRQKHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9ZFAucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OnNQKHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIHBQPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGU/bmV3IGRQKHQsZSk6bmV3IG9QKHQsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjUpO2Z1bmN0aW9uIGZQKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBtUCh0KXtyZXR1cm4gdDwwPy0xOjF9ZnVuY3Rpb24gZ1AodCxlLG4pe3ZhciBpPXQuX3gxLXQuX3gwLHI9ZS10Ll94MSxvPSh0Ll95MS10Ll95MCkvKGl8fHI8MCYmLTApLGE9KG4tdC5feTEpLyhyfHxpPDAmJi0wKSxzPShvKnIrYSppKS8oaStyKTtyZXR1cm4obVAobykrbVAoYSkpKk1hdGgubWluKE1hdGguYWJzKG8pLE1hdGguYWJzKGEpLC41Kk1hdGguYWJzKHMpKXx8MH1mdW5jdGlvbiBfUCh0LGUpe3ZhciBuPXQuX3gxLXQuX3gwO3JldHVybiBuPygzKih0Ll95MS10Ll95MCkvbi1lKS8yOmV9ZnVuY3Rpb24geVAodCxlLG4pe3ZhciBpPXQuX3gwLHI9dC5feDEsbz10Ll95MSxhPShyLWkpLzM7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGkrYSx0Ll95MCthKmUsci1hLG8tYSpuLHIsbyl9ZnVuY3Rpb24gdlAodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIGJQKHQpe3RoaXMuX2NvbnRleHQ9bmV3IHhQKHQpfWZ1bmN0aW9uIHhQKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiB3UCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gU1AodCl7dmFyIGUsbixpPXQubGVuZ3RoLTEscj1uZXcgQXJyYXkoaSksbz1uZXcgQXJyYXkoaSksYT1uZXcgQXJyYXkoaSk7Zm9yKHJbMF09MCxvWzBdPTIsYVswXT10WzBdKzIqdFsxXSxlPTE7ZTxpLTE7KytlKXJbZV09MSxvW2VdPTQsYVtlXT00KnRbZV0rMip0W2UrMV07Zm9yKHJbaS0xXT0yLG9baS0xXT03LGFbaS0xXT04KnRbaS0xXSt0W2ldLGU9MTtlPGk7KytlKW9bZV0tPW49cltlXS9vW2UtMV0sYVtlXS09biphW2UtMV07Zm9yKHJbaS0xXT1hW2ktMV0vb1tpLTFdLGU9aS0yO2U+PTA7LS1lKXJbZV09KGFbZV0tcltlKzFdKS9vW2VdO2ZvcihvW2ktMV09KHRbaV0rcltpLTFdKS8yLGU9MDtlPGktMTsrK2Upb1tlXT0yKnRbZSsxXS1yW2UrMV07cmV0dXJuW3Isb119ZnVuY3Rpb24gTVAodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fdD1lfWZ1bmN0aW9uIEVQKHQsZSl7aWYoKHI9dC5sZW5ndGgpPjEpZm9yKHZhciBuLGkscixvPTEsYT10W2VbMF1dLHM9YS5sZW5ndGg7bzxyOysrbylmb3IoaT1hLGE9dFtlW29dXSxuPTA7bjxzOysrbilhW25dWzFdKz1hW25dWzBdPWlzTmFOKGlbbl1bMV0pP2lbbl1bMF06aVtuXVsxXX1mdW5jdGlvbiBUUCh0KXtmb3IodmFyIGU9dC5sZW5ndGgsbj1uZXcgQXJyYXkoZSk7LS1lPj0wOyluW2VdPWU7cmV0dXJuIG59ZnVuY3Rpb24gQ1AodCxlKXtyZXR1cm4gdFtlXX1mdW5jdGlvbiBBUCh0KXt2YXIgZT10Lm1hcChrUCk7cmV0dXJuIFRQKHQpLnNvcnQoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGVbdF0tZVtuXX0pKX1mdW5jdGlvbiBrUCh0KXtmb3IodmFyIGUsbj0tMSxpPTAscj10Lmxlbmd0aCxvPS0xLzA7KytuPHI7KShlPSt0W25dWzFdKT5vJiYobz1lLGk9bik7cmV0dXJuIGl9ZnVuY3Rpb24gTFAodCl7dmFyIGU9dC5tYXAoUFApO3JldHVybiBUUCh0KS5zb3J0KChmdW5jdGlvbih0LG4pe3JldHVybiBlW3RdLWVbbl19KSl9ZnVuY3Rpb24gUFAodCl7Zm9yKHZhciBlLG49MCxpPS0xLHI9dC5sZW5ndGg7KytpPHI7KShlPSt0W2ldWzFdKSYmKG4rPWUpO3JldHVybiBufWZ1bmN0aW9uIE5QKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBJUCh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBSUCh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBPUCgpe3RoaXMuXz1udWxsfWZ1bmN0aW9uIHpQKHQpe3QuVT10LkM9dC5MPXQuUj10LlA9dC5OPW51bGx9ZnVuY3Rpb24gRFAodCxlKXt2YXIgbj1lLGk9ZS5SLHI9bi5VO3I/ci5MPT09bj9yLkw9aTpyLlI9aTp0Ll89aSxpLlU9cixuLlU9aSxuLlI9aS5MLG4uUiYmKG4uUi5VPW4pLGkuTD1ufWZ1bmN0aW9uIEJQKHQsZSl7dmFyIG49ZSxpPWUuTCxyPW4uVTtyP3IuTD09PW4/ci5MPWk6ci5SPWk6dC5fPWksaS5VPXIsbi5VPWksbi5MPWkuUixuLkwmJihuLkwuVT1uKSxpLlI9bn1mdW5jdGlvbiBIUCh0KXtmb3IoO3QuTDspdD10Lkw7cmV0dXJuIHR9ZnVuY3Rpb24gRlAodCxlLG4saSl7dmFyIHI9W251bGwsbnVsbF0sbz11Ti5wdXNoKHIpLTE7cmV0dXJuIHIubGVmdD10LHIucmlnaHQ9ZSxuJiZVUChyLHQsZSxuKSxpJiZVUChyLGUsdCxpKSxsTlt0LmluZGV4XS5oYWxmZWRnZXMucHVzaChvKSxsTltlLmluZGV4XS5oYWxmZWRnZXMucHVzaChvKSxyfWZ1bmN0aW9uIFZQKHQsZSxuKXt2YXIgaT1bZSxuXTtyZXR1cm4gaS5sZWZ0PXQsaX1mdW5jdGlvbiBVUCh0LGUsbixpKXt0WzBdfHx0WzFdP3QubGVmdD09PW4/dFsxXT1pOnRbMF09aToodFswXT1pLHQubGVmdD1lLHQucmlnaHQ9bil9ZnVuY3Rpb24galAodCxlLG4saSxyKXt2YXIgbyxhPXRbMF0scz10WzFdLGw9YVswXSxjPWFbMV0sdT0wLGg9MSxkPXNbMF0tbCxwPXNbMV0tYztpZihvPWUtbCxkfHwhKG8+MCkpe2lmKG8vPWQsZDwwKXtpZihvPHUpcmV0dXJuO288aCYmKGg9byl9ZWxzZSBpZihkPjApe2lmKG8+aClyZXR1cm47bz51JiYodT1vKX1pZihvPWktbCxkfHwhKG88MCkpe2lmKG8vPWQsZDwwKXtpZihvPmgpcmV0dXJuO28+dSYmKHU9byl9ZWxzZSBpZihkPjApe2lmKG88dSlyZXR1cm47bzxoJiYoaD1vKX1pZihvPW4tYyxwfHwhKG8+MCkpe2lmKG8vPXAscDwwKXtpZihvPHUpcmV0dXJuO288aCYmKGg9byl9ZWxzZSBpZihwPjApe2lmKG8+aClyZXR1cm47bz51JiYodT1vKX1pZihvPXItYyxwfHwhKG88MCkpe2lmKG8vPXAscDwwKXtpZihvPmgpcmV0dXJuO28+dSYmKHU9byl9ZWxzZSBpZihwPjApe2lmKG88dSlyZXR1cm47bzxoJiYoaD1vKX1yZXR1cm4hKHU+MHx8aDwxKXx8KHU+MCYmKHRbMF09W2wrdSpkLGMrdSpwXSksaDwxJiYodFsxXT1bbCtoKmQsYytoKnBdKSwhMCl9fX19fWZ1bmN0aW9uIEdQKHQsZSxuLGkscil7dmFyIG89dFsxXTtpZihvKXJldHVybiEwO3ZhciBhLHMsbD10WzBdLGM9dC5sZWZ0LHU9dC5yaWdodCxoPWNbMF0sZD1jWzFdLHA9dVswXSxmPXVbMV0sbT0oaCtwKS8yO2lmKGY9PT1kKXtpZihtPGV8fG0+PWkpcmV0dXJuO2lmKGg+cCl7aWYobCl7aWYobFsxXT49cilyZXR1cm59ZWxzZSBsPVttLG5dO289W20scl19ZWxzZXtpZihsKXtpZihsWzFdPG4pcmV0dXJufWVsc2UgbD1bbSxyXTtvPVttLG5dfX1lbHNlIGlmKHM9KGQrZikvMi0oYT0oaC1wKS8oZi1kKSkqbSxhPC0xfHxhPjEpaWYoaD5wKXtpZihsKXtpZihsWzFdPj1yKXJldHVybn1lbHNlIGw9WyhuLXMpL2Esbl07bz1bKHItcykvYSxyXX1lbHNle2lmKGwpe2lmKGxbMV08bilyZXR1cm59ZWxzZSBsPVsoci1zKS9hLHJdO289WyhuLXMpL2Esbl19ZWxzZSBpZihkPGYpe2lmKGwpe2lmKGxbMF0+PWkpcmV0dXJufWVsc2UgbD1bZSxhKmUrc107bz1baSxhKmkrc119ZWxzZXtpZihsKXtpZihsWzBdPGUpcmV0dXJufWVsc2UgbD1baSxhKmkrc107bz1bZSxhKmUrc119cmV0dXJuIHRbMF09bCx0WzFdPW8sITB9ZnVuY3Rpb24gV1AodCxlKXt2YXIgbj10LnNpdGUsaT1lLmxlZnQscj1lLnJpZ2h0O3JldHVybiBuPT09ciYmKHI9aSxpPW4pLHI/TWF0aC5hdGFuMihyWzFdLWlbMV0sclswXS1pWzBdKToobj09PWk/KGk9ZVsxXSxyPWVbMF0pOihpPWVbMF0scj1lWzFdKSxNYXRoLmF0YW4yKGlbMF0tclswXSxyWzFdLWlbMV0pKX1mdW5jdGlvbiBxUCh0LGUpe3JldHVybiBlWysoZS5sZWZ0IT09dC5zaXRlKV19ZnVuY3Rpb24gWVAodCxlKXtyZXR1cm4gZVsrKGUubGVmdD09PXQuc2l0ZSldfWZQLnByb3RvdHlwZT17YXJlYVN0YXJ0OnFMLGFyZWFFbmQ6cUwsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3Q9K3QsZT0rZSx0aGlzLl9wb2ludD90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOih0aGlzLl9wb2ludD0xLHRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSkpfX0sdlAucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5fdDA9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWs7Y2FzZSAzOnlQKHRoaXMsdGhpcy5fdDAsX1AodGhpcyx0aGlzLl90MCkpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt2YXIgbj1OYU47aWYoZT0rZSwodD0rdCkhPT10aGlzLl94MXx8ZSE9PXRoaXMuX3kxKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHlQKHRoaXMsX1AodGhpcyxuPWdQKHRoaXMsdCxlKSksbik7YnJlYWs7ZGVmYXVsdDp5UCh0aGlzLHRoaXMuX3QwLG49Z1AodGhpcyx0LGUpKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWUsdGhpcy5fdDA9bn19fSwoYlAucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodlAucHJvdG90eXBlKSkucG9pbnQ9ZnVuY3Rpb24odCxlKXt2UC5wcm90b3R5cGUucG9pbnQuY2FsbCh0aGlzLGUsdCl9LHhQLnByb3RvdHlwZT17bW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY29udGV4dC5tb3ZlVG8oZSx0KX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0sbGluZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY29udGV4dC5saW5lVG8oZSx0KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGUsdCxpLG4sbyxyKX19LHdQLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3gsZT10aGlzLl95LG49dC5sZW5ndGg7aWYobilpZih0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRbMF0sZVswXSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odFswXSxlWzBdKSwyPT09bil0aGlzLl9jb250ZXh0LmxpbmVUbyh0WzFdLGVbMV0pO2Vsc2UgZm9yKHZhciBpPVNQKHQpLHI9U1AoZSksbz0wLGE9MTthPG47KytvLCsrYSl0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oaVswXVtvXSxyWzBdW29dLGlbMV1bb10sclsxXVtvXSx0W2FdLGVbYV0pOyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PW4pJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lLHRoaXMuX3g9dGhpcy5feT1udWxsfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtlKX19LE1QLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9dGhpcy5feT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA8dGhpcy5fdCYmdGhpcy5fdDwxJiYyPT09dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsdGhpcy5feSksKHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU+PTAmJih0aGlzLl90PTEtdGhpcy5fdCx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDppZih0aGlzLl90PD0wKXRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsZSksdGhpcy5fY29udGV4dC5saW5lVG8odCxlKTtlbHNle3ZhciBuPXRoaXMuX3gqKDEtdGhpcy5fdCkrdCp0aGlzLl90O3RoaXMuX2NvbnRleHQubGluZVRvKG4sdGhpcy5feSksdGhpcy5fY29udGV4dC5saW5lVG8obixlKX19dGhpcy5feD10LHRoaXMuX3k9ZX19LE9QLnByb3RvdHlwZT17Y29uc3RydWN0b3I6T1AsaW5zZXJ0OmZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyO2lmKHQpe2lmKGUuUD10LGUuTj10Lk4sdC5OJiYodC5OLlA9ZSksdC5OPWUsdC5SKXtmb3IodD10LlI7dC5MOyl0PXQuTDt0Lkw9ZX1lbHNlIHQuUj1lO249dH1lbHNlIHRoaXMuXz8odD1IUCh0aGlzLl8pLGUuUD1udWxsLGUuTj10LHQuUD10Lkw9ZSxuPXQpOihlLlA9ZS5OPW51bGwsdGhpcy5fPWUsbj1udWxsKTtmb3IoZS5MPWUuUj1udWxsLGUuVT1uLGUuQz0hMCx0PWU7biYmbi5DOyluPT09KGk9bi5VKS5MPyhyPWkuUikmJnIuQz8obi5DPXIuQz0hMSxpLkM9ITAsdD1pKToodD09PW4uUiYmKERQKHRoaXMsbiksbj0odD1uKS5VKSxuLkM9ITEsaS5DPSEwLEJQKHRoaXMsaSkpOihyPWkuTCkmJnIuQz8obi5DPXIuQz0hMSxpLkM9ITAsdD1pKToodD09PW4uTCYmKEJQKHRoaXMsbiksbj0odD1uKS5VKSxuLkM9ITEsaS5DPSEwLERQKHRoaXMsaSkpLG49dC5VO3RoaXMuXy5DPSExfSxyZW1vdmU6ZnVuY3Rpb24odCl7dC5OJiYodC5OLlA9dC5QKSx0LlAmJih0LlAuTj10Lk4pLHQuTj10LlA9bnVsbDt2YXIgZSxuLGkscj10LlUsbz10LkwsYT10LlI7aWYobj1vP2E/SFAoYSk6bzphLHI/ci5MPT09dD9yLkw9bjpyLlI9bjp0aGlzLl89bixvJiZhPyhpPW4uQyxuLkM9dC5DLG4uTD1vLG8uVT1uLG4hPT1hPyhyPW4uVSxuLlU9dC5VLHIuTD10PW4uUixuLlI9YSxhLlU9bik6KG4uVT1yLHI9bix0PW4uUikpOihpPXQuQyx0PW4pLHQmJih0LlU9ciksIWkpaWYodCYmdC5DKXQuQz0hMTtlbHNle2Rve2lmKHQ9PT10aGlzLl8pYnJlYWs7aWYodD09PXIuTCl7aWYoKGU9ci5SKS5DJiYoZS5DPSExLHIuQz0hMCxEUCh0aGlzLHIpLGU9ci5SKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLlImJmUuUi5DfHwoZS5MLkM9ITEsZS5DPSEwLEJQKHRoaXMsZSksZT1yLlIpLGUuQz1yLkMsci5DPWUuUi5DPSExLERQKHRoaXMsciksdD10aGlzLl87YnJlYWt9fWVsc2UgaWYoKGU9ci5MKS5DJiYoZS5DPSExLHIuQz0hMCxCUCh0aGlzLHIpLGU9ci5MKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLkwmJmUuTC5DfHwoZS5SLkM9ITEsZS5DPSEwLERQKHRoaXMsZSksZT1yLkwpLGUuQz1yLkMsci5DPWUuTC5DPSExLEJQKHRoaXMsciksdD10aGlzLl87YnJlYWt9ZS5DPSEwLHQ9cixyPXIuVX13aGlsZSghdC5DKTt0JiYodC5DPSExKX19fTt2YXIgWFAsJFA9W107ZnVuY3Rpb24gS1AoKXt6UCh0aGlzKSx0aGlzLng9dGhpcy55PXRoaXMuYXJjPXRoaXMuc2l0ZT10aGlzLmN5PW51bGx9ZnVuY3Rpb24gWlAodCl7dmFyIGU9dC5QLG49dC5OO2lmKGUmJm4pe3ZhciBpPWUuc2l0ZSxyPXQuc2l0ZSxvPW4uc2l0ZTtpZihpIT09byl7dmFyIGE9clswXSxzPXJbMV0sbD1pWzBdLWEsYz1pWzFdLXMsdT1vWzBdLWEsaD1vWzFdLXMsZD0yKihsKmgtYyp1KTtpZighKGQ+PS1kTikpe3ZhciBwPWwqbCtjKmMsZj11KnUraCpoLG09KGgqcC1jKmYpL2QsZz0obCpmLXUqcCkvZCxfPSRQLnBvcCgpfHxuZXcgS1A7Xy5hcmM9dCxfLnNpdGU9cixfLng9bSthLF8ueT0oXy5jeT1nK3MpK01hdGguc3FydChtKm0rZypnKSx0LmNpcmNsZT1fO2Zvcih2YXIgeT1udWxsLHY9Y04uXzt2OylpZihfLnk8di55fHxfLnk9PT12LnkmJl8ueDw9di54KXtpZighdi5MKXt5PXYuUDticmVha312PXYuTH1lbHNle2lmKCF2LlIpe3k9djticmVha312PXYuUn1jTi5pbnNlcnQoeSxfKSx5fHwoWFA9Xyl9fX19ZnVuY3Rpb24gSlAodCl7dmFyIGU9dC5jaXJjbGU7ZSYmKGUuUHx8KFhQPWUuTiksY04ucmVtb3ZlKGUpLCRQLnB1c2goZSkselAoZSksdC5jaXJjbGU9bnVsbCl9dmFyIFFQPVtdO2Z1bmN0aW9uIHROKCl7elAodGhpcyksdGhpcy5lZGdlPXRoaXMuc2l0ZT10aGlzLmNpcmNsZT1udWxsfWZ1bmN0aW9uIGVOKHQpe3ZhciBlPVFQLnBvcCgpfHxuZXcgdE47cmV0dXJuIGUuc2l0ZT10LGV9ZnVuY3Rpb24gbk4odCl7SlAodCksc04ucmVtb3ZlKHQpLFFQLnB1c2godCkselAodCl9ZnVuY3Rpb24gaU4odCl7dmFyIGU9dC5jaXJjbGUsbj1lLngsaT1lLmN5LHI9W24saV0sbz10LlAsYT10Lk4scz1bdF07bk4odCk7Zm9yKHZhciBsPW87bC5jaXJjbGUmJk1hdGguYWJzKG4tbC5jaXJjbGUueCk8aE4mJk1hdGguYWJzKGktbC5jaXJjbGUuY3kpPGhOOylvPWwuUCxzLnVuc2hpZnQobCksbk4obCksbD1vO3MudW5zaGlmdChsKSxKUChsKTtmb3IodmFyIGM9YTtjLmNpcmNsZSYmTWF0aC5hYnMobi1jLmNpcmNsZS54KTxoTiYmTWF0aC5hYnMoaS1jLmNpcmNsZS5jeSk8aE47KWE9Yy5OLHMucHVzaChjKSxuTihjKSxjPWE7cy5wdXNoKGMpLEpQKGMpO3ZhciB1LGg9cy5sZW5ndGg7Zm9yKHU9MTt1PGg7Kyt1KVVQKChjPXNbdV0pLmVkZ2UsKGw9c1t1LTFdKS5zaXRlLGMuc2l0ZSxyKTsoYz1zW2gtMV0pLmVkZ2U9RlAoKGw9c1swXSkuc2l0ZSxjLnNpdGUsbnVsbCxyKSxaUChsKSxaUChjKX1mdW5jdGlvbiByTih0KXtmb3IodmFyIGUsbixpLHIsbz10WzBdLGE9dFsxXSxzPXNOLl87czspaWYoKGk9b04ocyxhKS1vKT5oTilzPXMuTDtlbHNle2lmKCEoKHI9by1hTihzLGEpKT5oTikpe2k+LWhOPyhlPXMuUCxuPXMpOnI+LWhOPyhlPXMsbj1zLk4pOmU9bj1zO2JyZWFrfWlmKCFzLlIpe2U9czticmVha31zPXMuUn0hKGZ1bmN0aW9uIGwodCl7bE5bdC5pbmRleF09e3NpdGU6dCxoYWxmZWRnZXM6W119fSkodCk7dmFyIGM9ZU4odCk7aWYoc04uaW5zZXJ0KGUsYyksZXx8bil7aWYoZT09PW4pcmV0dXJuIEpQKGUpLG49ZU4oZS5zaXRlKSxzTi5pbnNlcnQoYyxuKSxjLmVkZ2U9bi5lZGdlPUZQKGUuc2l0ZSxjLnNpdGUpLFpQKGUpLHZvaWQgWlAobik7aWYobil7SlAoZSksSlAobik7dmFyIHU9ZS5zaXRlLGg9dVswXSxkPXVbMV0scD10WzBdLWgsZj10WzFdLWQsbT1uLnNpdGUsZz1tWzBdLWgsXz1tWzFdLWQseT0yKihwKl8tZipnKSx2PXAqcCtmKmYsYj1nKmcrXypfLHg9WyhfKnYtZipiKS95K2gsKHAqYi1nKnYpL3krZF07VVAobi5lZGdlLHUsbSx4KSxjLmVkZ2U9RlAodSx0LG51bGwseCksbi5lZGdlPUZQKHQsbSxudWxsLHgpLFpQKGUpLFpQKG4pfWVsc2UgYy5lZGdlPUZQKGUuc2l0ZSxjLnNpdGUpfX1mdW5jdGlvbiBvTih0LGUpe3ZhciBuPXQuc2l0ZSxpPW5bMF0scj1uWzFdLG89ci1lO2lmKCFvKXJldHVybiBpO3ZhciBhPXQuUDtpZighYSlyZXR1cm4tMS8wO3ZhciBzPShuPWEuc2l0ZSlbMF0sbD1uWzFdLGM9bC1lO2lmKCFjKXJldHVybiBzO3ZhciB1PXMtaSxoPTEvby0xL2MsZD11L2M7cmV0dXJuIGg/KC1kK01hdGguc3FydChkKmQtMipoKih1KnUvKC0yKmMpLWwrYy8yK3Itby8yKSkpL2graTooaStzKS8yfWZ1bmN0aW9uIGFOKHQsZSl7dmFyIG49dC5OO2lmKG4pcmV0dXJuIG9OKG4sZSk7dmFyIGk9dC5zaXRlO3JldHVybiBpWzFdPT09ZT9pWzBdOjEvMH12YXIgc04sbE4sY04sdU4saE49MWUtNixkTj0xZS0xMjtmdW5jdGlvbiBwTih0LGUsbil7cmV0dXJuKHRbMF0tblswXSkqKGVbMV0tdFsxXSktKHRbMF0tZVswXSkqKG5bMV0tdFsxXSl9ZnVuY3Rpb24gZk4odCxlKXtyZXR1cm4gZVsxXS10WzFdfHxlWzBdLXRbMF19ZnVuY3Rpb24gbU4odCxlKXt2YXIgbixpLHIsbz10LnNvcnQoZk4pLnBvcCgpO2Zvcih1Tj1bXSxsTj1uZXcgQXJyYXkodC5sZW5ndGgpLHNOPW5ldyBPUCxjTj1uZXcgT1A7OylpZihyPVhQLG8mJighcnx8b1sxXTxyLnl8fG9bMV09PT1yLnkmJm9bMF08ci54KSlvWzBdPT09biYmb1sxXT09PWl8fChyTihvKSxuPW9bMF0saT1vWzFdKSxvPXQucG9wKCk7ZWxzZXtpZighcilicmVhaztpTihyLmFyYyl9aWYoKGZ1bmN0aW9uIGEoKXtmb3IodmFyIHQsZSxuLGkscj0wLG89bE4ubGVuZ3RoO3I8bzsrK3IpaWYoKHQ9bE5bcl0pJiYoaT0oZT10LmhhbGZlZGdlcykubGVuZ3RoKSl7dmFyIGE9bmV3IEFycmF5KGkpLHM9bmV3IEFycmF5KGkpO2ZvcihuPTA7bjxpOysrbilhW25dPW4sc1tuXT1XUCh0LHVOW2Vbbl1dKTtmb3IoYS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBzW2VdLXNbdF19KSksbj0wO248aTsrK24pc1tuXT1lW2Fbbl1dO2ZvcihuPTA7bjxpOysrbillW25dPXNbbl19fSkoKSxlKXt2YXIgcz0rZVswXVswXSxsPStlWzBdWzFdLGM9K2VbMV1bMF0sdT0rZVsxXVsxXTshKGZ1bmN0aW9uIGgodCxlLG4saSl7Zm9yKHZhciByLG89dU4ubGVuZ3RoO28tLTspR1Aocj11TltvXSx0LGUsbixpKSYmalAocix0LGUsbixpKSYmKE1hdGguYWJzKHJbMF1bMF0tclsxXVswXSk+aE58fE1hdGguYWJzKHJbMF1bMV0tclsxXVsxXSk+aE4pfHxkZWxldGUgdU5bb119KShzLGwsYyx1KSwoZnVuY3Rpb24gZCh0LGUsbixpKXt2YXIgcixvLGEscyxsLGMsdSxoLGQscCxmLG0sZz1sTi5sZW5ndGgsXz0hMDtmb3Iocj0wO3I8ZzsrK3IpaWYobz1sTltyXSl7Zm9yKGE9by5zaXRlLHM9KGw9by5oYWxmZWRnZXMpLmxlbmd0aDtzLS07KXVOW2xbc11dfHxsLnNwbGljZShzLDEpO2ZvcihzPTAsYz1sLmxlbmd0aDtzPGM7KWY9KHA9WVAobyx1TltsW3NdXSkpWzBdLG09cFsxXSxoPSh1PXFQKG8sdU5bbFsrK3MlY11dKSlbMF0sZD11WzFdLChNYXRoLmFicyhmLWgpPmhOfHxNYXRoLmFicyhtLWQpPmhOKSYmKGwuc3BsaWNlKHMsMCx1Ti5wdXNoKFZQKGEscCxNYXRoLmFicyhmLXQpPGhOJiZpLW0+aE4/W3QsTWF0aC5hYnMoaC10KTxoTj9kOmldOk1hdGguYWJzKG0taSk8aE4mJm4tZj5oTj9bTWF0aC5hYnMoZC1pKTxoTj9oOm4saV06TWF0aC5hYnMoZi1uKTxoTiYmbS1lPmhOP1tuLE1hdGguYWJzKGgtbik8aE4/ZDplXTpNYXRoLmFicyhtLWUpPGhOJiZmLXQ+aE4/W01hdGguYWJzKGQtZSk8aE4/aDp0LGVdOm51bGwpKS0xKSwrK2MpO2MmJihfPSExKX1pZihfKXt2YXIgeSx2LGIseD0xLzA7Zm9yKHI9MCxfPW51bGw7cjxnOysrcikobz1sTltyXSkmJihiPSh5PShhPW8uc2l0ZSlbMF0tdCkqeSsodj1hWzFdLWUpKnYpPHgmJih4PWIsXz1vKTtpZihfKXt2YXIgdz1bdCxlXSxTPVt0LGldLE09W24saV0sRT1bbixlXTtfLmhhbGZlZGdlcy5wdXNoKHVOLnB1c2goVlAoYT1fLnNpdGUsdyxTKSktMSx1Ti5wdXNoKFZQKGEsUyxNKSktMSx1Ti5wdXNoKFZQKGEsTSxFKSktMSx1Ti5wdXNoKFZQKGEsRSx3KSktMSl9fWZvcihyPTA7cjxnOysrcikobz1sTltyXSkmJihvLmhhbGZlZGdlcy5sZW5ndGh8fGRlbGV0ZSBsTltyXSl9KShzLGwsYyx1KX10aGlzLmVkZ2VzPXVOLHRoaXMuY2VsbHM9bE4sc049Y049dU49bE49bnVsbH1mdW5jdGlvbiBnTih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gX04odCxlLG4pe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPWUsdGhpcy50cmFuc2Zvcm09bn1mdW5jdGlvbiB5Tih0LGUsbil7dGhpcy5rPXQsdGhpcy54PWUsdGhpcy55PW59bU4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjptTixwb2x5Z29uczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWRnZXM7cmV0dXJuIHRoaXMuY2VsbHMubWFwKChmdW5jdGlvbihlKXt2YXIgbj1lLmhhbGZlZGdlcy5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBxUChlLHRbbl0pfSkpO3JldHVybiBuLmRhdGE9ZS5zaXRlLmRhdGEsbn0pKX0sdHJpYW5nbGVzOmZ1bmN0aW9uKCl7dmFyIHQ9W10sZT10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLmZvckVhY2goKGZ1bmN0aW9uKG4saSl7aWYobz0ocj1uLmhhbGZlZGdlcykubGVuZ3RoKWZvcih2YXIgcixvLGEscz1uLnNpdGUsbD0tMSxjPWVbcltvLTFdXSx1PWMubGVmdD09PXM/Yy5yaWdodDpjLmxlZnQ7KytsPG87KWE9dSx1PShjPWVbcltsXV0pLmxlZnQ9PT1zP2MucmlnaHQ6Yy5sZWZ0LGEmJnUmJmk8YS5pbmRleCYmaTx1LmluZGV4JiZwTihzLGEsdSk8MCYmdC5wdXNoKFtzLmRhdGEsYS5kYXRhLHUuZGF0YV0pfSkpLHR9LGxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZXMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yaWdodH0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntzb3VyY2U6dC5sZWZ0LmRhdGEsdGFyZ2V0OnQucmlnaHQuZGF0YX19KSl9LGZpbmQ6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaSxyLG89dGhpcyxhPW8uX2ZvdW5kfHwwLHM9by5jZWxscy5sZW5ndGg7IShyPW8uY2VsbHNbYV0pOylpZigrK2E+PXMpcmV0dXJuIG51bGw7dmFyIGw9dC1yLnNpdGVbMF0sYz1lLXIuc2l0ZVsxXSx1PWwqbCtjKmM7ZG97cj1vLmNlbGxzW2k9YV0sYT1udWxsLHIuaGFsZmVkZ2VzLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpPW8uZWRnZXNbbl0scz1pLmxlZnQ7aWYocyE9PXIuc2l0ZSYmc3x8KHM9aS5yaWdodCkpe3ZhciBsPXQtc1swXSxjPWUtc1sxXSxoPWwqbCtjKmM7aDx1JiYodT1oLGE9cy5pbmRleCl9fSkpfXdoaWxlKG51bGwhPT1hKTtyZXR1cm4gby5fZm91bmQ9aSxudWxsPT1ufHx1PD1uKm4/ci5zaXRlOm51bGx9fSx5Ti5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnlOLHNjYWxlOmZ1bmN0aW9uKHQpe3JldHVybiAxPT09dD90aGlzOm5ldyB5Tih0aGlzLmsqdCx0aGlzLngsdGhpcy55KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDA9PT10JjA9PT1lP3RoaXM6bmV3IHlOKHRoaXMuayx0aGlzLngrdGhpcy5rKnQsdGhpcy55K3RoaXMuayplKX0sYXBwbHk6ZnVuY3Rpb24odCl7cmV0dXJuW3RbMF0qdGhpcy5rK3RoaXMueCx0WzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24odCl7cmV0dXJuIHQqdGhpcy5rK3RoaXMueH0sYXBwbHlZOmZ1bmN0aW9uKHQpe3JldHVybiB0KnRoaXMuayt0aGlzLnl9LGludmVydDpmdW5jdGlvbih0KXtyZXR1cm5bKHRbMF0tdGhpcy54KS90aGlzLmssKHRbMV0tdGhpcy55KS90aGlzLmtdfSxpbnZlcnRYOmZ1bmN0aW9uKHQpe3JldHVybih0LXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKHQpe3JldHVybih0LXRoaXMueSkvdGhpcy5rfSxyZXNjYWxlWDpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KCkuZG9tYWluKHQucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRYLHRoaXMpLm1hcCh0LmludmVydCx0KSl9LHJlc2NhbGVZOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoKS5kb21haW4odC5yYW5nZSgpLm1hcCh0aGlzLmludmVydFksdGhpcykubWFwKHQuaW52ZXJ0LHQpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy54KyIsIit0aGlzLnkrIikgc2NhbGUoIit0aGlzLmsrIikifX07dmFyIHZOPW5ldyB5TigxLDAsMCk7ZnVuY3Rpb24gYk4odCl7Zm9yKDshdC5fX3pvb207KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybiB2TjtyZXR1cm4gdC5fX3pvb219ZnVuY3Rpb24geE4oKXt1dS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiB3Tigpe3V1LnByZXZlbnREZWZhdWx0KCksdXUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gU04oKXtyZXR1cm4hdXUuY3RybEtleSYmIXV1LmJ1dHRvbn1mdW5jdGlvbiBNTigpe3ZhciB0PXRoaXM7cmV0dXJuIHQgaW5zdGFuY2VvZiBTVkdFbGVtZW50Pyh0PXQub3duZXJTVkdFbGVtZW50fHx0KS5oYXNBdHRyaWJ1dGUoInZpZXdCb3giKT9bWyh0PXQudmlld0JveC5iYXNlVmFsKS54LHQueV0sW3QueCt0LndpZHRoLHQueSt0LmhlaWdodF1dOltbMCwwXSxbdC53aWR0aC5iYXNlVmFsLnZhbHVlLHQuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXTpbWzAsMF0sW3QuY2xpZW50V2lkdGgsdC5jbGllbnRIZWlnaHRdXX1mdW5jdGlvbiBFTigpe3JldHVybiB0aGlzLl9fem9vbXx8dk59ZnVuY3Rpb24gVE4oKXtyZXR1cm4tdXUuZGVsdGFZKigxPT09dXUuZGVsdGFNb2RlPy4wNTp1dS5kZWx0YU1vZGU/MTouMDAyKX1mdW5jdGlvbiBDTigpe3JldHVybiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHN8fCJvbnRvdWNoc3RhcnQiaW4gdGhpc31mdW5jdGlvbiBBTih0LGUsbil7dmFyIGk9dC5pbnZlcnRYKGVbMF1bMF0pLW5bMF1bMF0scj10LmludmVydFgoZVsxXVswXSktblsxXVswXSxvPXQuaW52ZXJ0WShlWzBdWzFdKS1uWzBdWzFdLGE9dC5pbnZlcnRZKGVbMV1bMV0pLW5bMV1bMV07cmV0dXJuIHQudHJhbnNsYXRlKHI+aT8oaStyKS8yOk1hdGgubWluKDAsaSl8fE1hdGgubWF4KDAsciksYT5vPyhvK2EpLzI6TWF0aC5taW4oMCxvKXx8TWF0aC5tYXgoMCxhKSl9ZnVuY3Rpb24ga04oKXt2YXIgdCxlLG49U04saT1NTixyPUFOLG89VE4sYT1DTixzPVswLDEvMF0sbD1bWy0xLzAsLTEvMF0sWzEvMCwxLzBdXSxjPTI1MCx1PW9wLGg9bGMoInN0YXJ0Iiwiem9vbSIsImVuZCIpLGQ9NTAwLHA9MDtmdW5jdGlvbiBmKHQpe3QucHJvcGVydHkoIl9fem9vbSIsRU4pLm9uKCJ3aGVlbC56b29tIix4KS5vbigibW91c2Vkb3duLnpvb20iLHcpLm9uKCJkYmxjbGljay56b29tIixTKS5maWx0ZXIoYSkub24oInRvdWNoc3RhcnQuem9vbSIsTSkub24oInRvdWNobW92ZS56b29tIixFKS5vbigidG91Y2hlbmQuem9vbSB0b3VjaGNhbmNlbC56b29tIixUKS5zdHlsZSgidG91Y2gtYWN0aW9uIiwibm9uZSIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIil9ZnVuY3Rpb24gbSh0LGUpe3JldHVybihlPU1hdGgubWF4KHNbMF0sTWF0aC5taW4oc1sxXSxlKSkpPT09dC5rP3Q6bmV3IHlOKGUsdC54LHQueSl9ZnVuY3Rpb24gZyh0LGUsbil7dmFyIGk9ZVswXS1uWzBdKnQuayxyPWVbMV0tblsxXSp0Lms7cmV0dXJuIGk9PT10LngmJnI9PT10Lnk/dDpuZXcgeU4odC5rLGkscil9ZnVuY3Rpb24gXyh0KXtyZXR1cm5bKCt0WzBdWzBdKyArdFsxXVswXSkvMiwoK3RbMF1bMV0rICt0WzFdWzFdKS8yXX1mdW5jdGlvbiB5KHQsZSxuKXt0Lm9uKCJzdGFydC56b29tIiwoZnVuY3Rpb24oKXt2KHRoaXMsYXJndW1lbnRzKS5zdGFydCgpfSkpLm9uKCJpbnRlcnJ1cHQuem9vbSBlbmQuem9vbSIsKGZ1bmN0aW9uKCl7dih0aGlzLGFyZ3VtZW50cykuZW5kKCl9KSkudHdlZW4oInpvb20iLChmdW5jdGlvbigpe3ZhciB0PXRoaXMscj1hcmd1bWVudHMsbz12KHQsciksYT1pLmFwcGx5KHQscikscz1udWxsPT1uP18oYSk6ImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseSh0LHIpOm4sbD1NYXRoLm1heChhWzFdWzBdLWFbMF1bMF0sYVsxXVsxXS1hWzBdWzFdKSxjPXQuX196b29tLGg9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0LHIpOmUsZD11KGMuaW52ZXJ0KHMpLmNvbmNhdChsL2MuayksaC5pbnZlcnQocykuY29uY2F0KGwvaC5rKSk7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDE9PT10KXQ9aDtlbHNle3ZhciBlPWQodCksbj1sL2VbMl07dD1uZXcgeU4obixzWzBdLWVbMF0qbixzWzFdLWVbMV0qbil9by56b29tKG51bGwsdCl9fSkpfWZ1bmN0aW9uIHYodCxlLG4pe3JldHVybiFuJiZ0Ll9fem9vbWluZ3x8bmV3IGIodCxlKX1mdW5jdGlvbiBiKHQsZSl7dGhpcy50aGF0PXQsdGhpcy5hcmdzPWUsdGhpcy5hY3RpdmU9MCx0aGlzLmV4dGVudD1pLmFwcGx5KHQsZSksdGhpcy50YXBzPTB9ZnVuY3Rpb24geCgpe2lmKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdD12KHRoaXMsYXJndW1lbnRzKSxlPXRoaXMuX196b29tLGk9TWF0aC5tYXgoc1swXSxNYXRoLm1pbihzWzFdLGUuaypNYXRoLnBvdygyLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKSkpLGE9YWgodGhpcyk7aWYodC53aGVlbCl0Lm1vdXNlWzBdWzBdPT09YVswXSYmdC5tb3VzZVswXVsxXT09PWFbMV18fCh0Lm1vdXNlWzFdPWUuaW52ZXJ0KHQubW91c2VbMF09YSkpLGNsZWFyVGltZW91dCh0LndoZWVsKTtlbHNle2lmKGUuaz09PWkpcmV0dXJuO3QubW91c2U9W2EsZS5pbnZlcnQoYSldLFZwKHRoaXMpLHQuc3RhcnQoKX13TigpLHQud2hlZWw9c2V0VGltZW91dChjLDE1MCksdC56b29tKCJtb3VzZSIscihnKG0oZSxpKSx0Lm1vdXNlWzBdLHQubW91c2VbMV0pLHQuZXh0ZW50LGwpKX1mdW5jdGlvbiBjKCl7dC53aGVlbD1udWxsLHQuZW5kKCl9fWZ1bmN0aW9uIHcoKXtpZighZSYmbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0PXYodGhpcyxhcmd1bWVudHMsITApLGk9U3UodXUudmlldykub24oIm1vdXNlbW92ZS56b29tIixjLCEwKS5vbigibW91c2V1cC56b29tIix1LCEwKSxvPWFoKHRoaXMpLGE9dXUuY2xpZW50WCxzPXV1LmNsaWVudFk7aGgodXUudmlldykseE4oKSx0Lm1vdXNlPVtvLHRoaXMuX196b29tLmludmVydChvKV0sVnAodGhpcyksdC5zdGFydCgpfWZ1bmN0aW9uIGMoKXtpZih3TigpLCF0Lm1vdmVkKXt2YXIgZT11dS5jbGllbnRYLWEsbj11dS5jbGllbnRZLXM7dC5tb3ZlZD1lKmUrbipuPnB9dC56b29tKCJtb3VzZSIscihnKHQudGhhdC5fX3pvb20sdC5tb3VzZVswXT1haCh0LnRoYXQpLHQubW91c2VbMV0pLHQuZXh0ZW50LGwpKX1mdW5jdGlvbiB1KCl7aS5vbigibW91c2Vtb3ZlLnpvb20gbW91c2V1cC56b29tIixudWxsKSxkaCh1dS52aWV3LHQubW92ZWQpLHdOKCksdC5lbmQoKX19ZnVuY3Rpb24gUygpe2lmKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdD10aGlzLl9fem9vbSxlPWFoKHRoaXMpLG89dC5pbnZlcnQoZSksYT10LmsqKHV1LnNoaWZ0S2V5Py41OjIpLHM9cihnKG0odCxhKSxlLG8pLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpLGwpO3dOKCksYz4wP1N1KHRoaXMpLnRyYW5zaXRpb24oKS5kdXJhdGlvbihjKS5jYWxsKHkscyxlKTpTdSh0aGlzKS5jYWxsKGYudHJhbnNmb3JtLHMpfX1mdW5jdGlvbiBNKCl7aWYobi5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBlLGkscixvLGE9dXUudG91Y2hlcyxzPWEubGVuZ3RoLGw9dih0aGlzLGFyZ3VtZW50cyx1dS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg9PT1zKTtmb3IoeE4oKSxpPTA7aTxzOysraSlvPVtvPWxoKHRoaXMsYSwocj1hW2ldKS5pZGVudGlmaWVyKSx0aGlzLl9fem9vbS5pbnZlcnQobyksci5pZGVudGlmaWVyXSxsLnRvdWNoMD9sLnRvdWNoMXx8bC50b3VjaDBbMl09PT1vWzJdfHwobC50b3VjaDE9byxsLnRhcHM9MCk6KGwudG91Y2gwPW8sZT0hMCxsLnRhcHM9MSshIXQpO3QmJih0PWNsZWFyVGltZW91dCh0KSksZSYmKGwudGFwczwyJiYodD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Q9bnVsbH0pLGQpKSxWcCh0aGlzKSxsLnN0YXJ0KCkpfX1mdW5jdGlvbiBFKCl7aWYodGhpcy5fX3pvb21pbmcpe3ZhciBlLG4saSxvLGE9dih0aGlzLGFyZ3VtZW50cykscz11dS5jaGFuZ2VkVG91Y2hlcyxjPXMubGVuZ3RoO2Zvcih3TigpLHQmJih0PWNsZWFyVGltZW91dCh0KSksYS50YXBzPTAsZT0wO2U8YzsrK2UpaT1saCh0aGlzLHMsKG49c1tlXSkuaWRlbnRpZmllciksYS50b3VjaDAmJmEudG91Y2gwWzJdPT09bi5pZGVudGlmaWVyP2EudG91Y2gwWzBdPWk6YS50b3VjaDEmJmEudG91Y2gxWzJdPT09bi5pZGVudGlmaWVyJiYoYS50b3VjaDFbMF09aSk7aWYobj1hLnRoYXQuX196b29tLGEudG91Y2gxKXt2YXIgdT1hLnRvdWNoMFswXSxoPWEudG91Y2gwWzFdLGQ9YS50b3VjaDFbMF0scD1hLnRvdWNoMVsxXSxmPShmPWRbMF0tdVswXSkqZisoZj1kWzFdLXVbMV0pKmYsXz0oXz1wWzBdLWhbMF0pKl8rKF89cFsxXS1oWzFdKSpfO249bShuLE1hdGguc3FydChmL18pKSxpPVsodVswXStkWzBdKS8yLCh1WzFdK2RbMV0pLzJdLG89WyhoWzBdK3BbMF0pLzIsKGhbMV0rcFsxXSkvMl19ZWxzZXtpZighYS50b3VjaDApcmV0dXJuO2k9YS50b3VjaDBbMF0sbz1hLnRvdWNoMFsxXX1hLnpvb20oInRvdWNoIixyKGcobixpLG8pLGEuZXh0ZW50LGwpKX19ZnVuY3Rpb24gVCgpe2lmKHRoaXMuX196b29taW5nKXt2YXIgdCxuLGk9dih0aGlzLGFyZ3VtZW50cykscj11dS5jaGFuZ2VkVG91Y2hlcyxvPXIubGVuZ3RoO2Zvcih4TigpLGUmJmNsZWFyVGltZW91dChlKSxlPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZT1udWxsfSksZCksdD0wO3Q8bzsrK3Qpbj1yW3RdLGkudG91Y2gwJiZpLnRvdWNoMFsyXT09PW4uaWRlbnRpZmllcj9kZWxldGUgaS50b3VjaDA6aS50b3VjaDEmJmkudG91Y2gxWzJdPT09bi5pZGVudGlmaWVyJiZkZWxldGUgaS50b3VjaDE7aWYoaS50b3VjaDEmJiFpLnRvdWNoMCYmKGkudG91Y2gwPWkudG91Y2gxLGRlbGV0ZSBpLnRvdWNoMSksaS50b3VjaDApaS50b3VjaDBbMV09dGhpcy5fX3pvb20uaW52ZXJ0KGkudG91Y2gwWzBdKTtlbHNlIGlmKGkuZW5kKCksMj09PWkudGFwcyl7dmFyIGE9U3UodGhpcykub24oImRibGNsaWNrLnpvb20iKTthJiZhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fXJldHVybiBmLnRyYW5zZm9ybT1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5zZWxlY3Rpb24/dC5zZWxlY3Rpb24oKTp0O2kucHJvcGVydHkoIl9fem9vbSIsRU4pLHQhPT1pP3kodCxlLG4pOmkuaW50ZXJydXB0KCkuZWFjaCgoZnVuY3Rpb24oKXt2KHRoaXMsYXJndW1lbnRzKS5zdGFydCgpLnpvb20obnVsbCwiZnVuY3Rpb24iPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplKS5lbmQoKX0pKX0sZi5zY2FsZUJ5PWZ1bmN0aW9uKHQsZSxuKXtmLnNjYWxlVG8odCwoZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9fem9vbS5rLG49ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZTtyZXR1cm4gdCpufSksbil9LGYuc2NhbGVUbz1mdW5jdGlvbih0LGUsbil7Zi50cmFuc2Zvcm0odCwoZnVuY3Rpb24oKXt2YXIgdD1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvPXRoaXMuX196b29tLGE9bnVsbD09bj9fKHQpOiJmdW5jdGlvbiI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOm4scz1vLmludmVydChhKSxjPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmU7cmV0dXJuIHIoZyhtKG8sYyksYSxzKSx0LGwpfSksbil9LGYudHJhbnNsYXRlQnk9ZnVuY3Rpb24odCxlLG4pe2YudHJhbnNmb3JtKHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcy5fX3pvb20udHJhbnNsYXRlKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUsImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6biksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbCl9KSl9LGYudHJhbnNsYXRlVG89ZnVuY3Rpb24odCxlLG4sbyl7Zi50cmFuc2Zvcm0odCwoZnVuY3Rpb24oKXt2YXIgdD1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxhPXRoaXMuX196b29tLHM9bnVsbD09bz9fKHQpOiJmdW5jdGlvbiI9PXR5cGVvZiBvP28uYXBwbHkodGhpcyxhcmd1bWVudHMpOm87cmV0dXJuIHIodk4udHJhbnNsYXRlKHNbMF0sc1sxXSkuc2NhbGUoYS5rKS50cmFuc2xhdGUoImZ1bmN0aW9uIj09dHlwZW9mIGU/LWUuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1lLCJmdW5jdGlvbiI9PXR5cGVvZiBuPy1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTotbiksdCxsKX0pLG8pfSxiLnByb3RvdHlwZT17c3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMudGhhdC5fX3pvb21pbmc9dGhpcyx0aGlzLmVtaXQoInN0YXJ0IikpLHRoaXN9LHpvb206ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5tb3VzZSYmIm1vdXNlIiE9PXQmJih0aGlzLm1vdXNlWzFdPWUuaW52ZXJ0KHRoaXMubW91c2VbMF0pKSx0aGlzLnRvdWNoMCYmInRvdWNoIiE9PXQmJih0aGlzLnRvdWNoMFsxXT1lLmludmVydCh0aGlzLnRvdWNoMFswXSkpLHRoaXMudG91Y2gxJiYidG91Y2giIT09dCYmKHRoaXMudG91Y2gxWzFdPWUuaW52ZXJ0KHRoaXMudG91Y2gxWzBdKSksdGhpcy50aGF0Ll9fem9vbT1lLHRoaXMuZW1pdCgiem9vbSIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoZGVsZXRlIHRoaXMudGhhdC5fX3pvb21pbmcsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXtndShuZXcgX04oZix0LHRoaXMudGhhdC5fX3pvb20pLGguYXBwbHksaCxbdCx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxmLndoZWVsRGVsdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpnTigrdCksZik6b30sZi5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpnTighIXQpLGYpOm59LGYudG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Z04oISF0KSxmKTphfSxmLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmdOKFtbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dKSxmKTppfSxmLnNjYWxlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzWzBdPSt0WzBdLHNbMV09K3RbMV0sZik6W3NbMF0sc1sxXV19LGYudHJhbnNsYXRlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsWzBdWzBdPSt0WzBdWzBdLGxbMV1bMF09K3RbMV1bMF0sbFswXVsxXT0rdFswXVsxXSxsWzFdWzFdPSt0WzFdWzFdLGYpOltbbFswXVswXSxsWzBdWzFdXSxbbFsxXVswXSxsWzFdWzFdXV19LGYuY29uc3RyYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsZik6cn0sZi5kdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0rdCxmKTpjfSxmLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PXQsZik6dX0sZi5vbj1mdW5jdGlvbigpe3ZhciB0PWgub24uYXBwbHkoaCxhcmd1bWVudHMpO3JldHVybiB0PT09aD9mOnR9LGYuY2xpY2tEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD0odD0rdCkqdCxmKTpNYXRoLnNxcnQocCl9LGZ9Yk4ucHJvdG90eXBlPXlOLnByb3RvdHlwZTt2YXIgTE49T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsdmVyc2lvbjoiNS43LjAiLGJpc2VjdDpTbCxiaXNlY3RSaWdodDpTbCxiaXNlY3RMZWZ0Ok1sLGFzY2VuZGluZzpibCxiaXNlY3Rvcjp4bCxjcm9zczpUbCxkZXNjZW5kaW5nOmZ1bmN0aW9uIFBOKHQsZSl7cmV0dXJuIGU8dD8tMTplPnQ/MTplPj10PzA6TmFOfSxkZXZpYXRpb246a2wsZXh0ZW50OkxsLGhpc3RvZ3JhbTpmdW5jdGlvbiBOTigpe3ZhciB0PU9sLGU9TGwsbj1qbDtmdW5jdGlvbiBpKGkpe3ZhciByLG8sYT1pLmxlbmd0aCxzPW5ldyBBcnJheShhKTtmb3Iocj0wO3I8YTsrK3Ipc1tyXT10KGlbcl0scixpKTt2YXIgbD1lKHMpLGM9bFswXSx1PWxbMV0saD1uKHMsYyx1KTtBcnJheS5pc0FycmF5KGgpfHwoaD1VbChjLHUsaCksaD16bChNYXRoLmNlaWwoYy9oKSpoLHUsaCkpO2Zvcih2YXIgZD1oLmxlbmd0aDtoWzBdPD1jOyloLnNoaWZ0KCksLS1kO2Zvcig7aFtkLTFdPnU7KWgucG9wKCksLS1kO3ZhciBwLGY9bmV3IEFycmF5KGQrMSk7Zm9yKHI9MDtyPD1kOysrcikocD1mW3JdPVtdKS54MD1yPjA/aFtyLTFdOmMscC54MT1yPGQ/aFtyXTp1O2ZvcihyPTA7cjxhOysrciljPD0obz1zW3JdKSYmbzw9dSYmZltTbChoLG8sMCxkKV0ucHVzaChpW3JdKTtyZXR1cm4gZn1yZXR1cm4gaS52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlJsKGUpLGkpOnR9LGkuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6UmwoW3RbMF0sdFsxXV0pLGkpOmV9LGkudGhyZXNob2xkcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkFycmF5LmlzQXJyYXkodCk/UmwoTmwuY2FsbCh0KSk6UmwodCksaSk6bn0saX0sdGhyZXNob2xkRnJlZWRtYW5EaWFjb25pczpmdW5jdGlvbiBJTih0LGUsbil7cmV0dXJuIHQ9SWwuY2FsbCh0LENsKS5zb3J0KGJsKSxNYXRoLmNlaWwoKG4tZSkvKDIqKEdsKHQsLjc1KS1HbCh0LC4yNSkpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHRocmVzaG9sZFNjb3R0OmZ1bmN0aW9uIFJOKHQsZSxuKXtyZXR1cm4gTWF0aC5jZWlsKChuLWUpLygzLjUqa2wodCkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdGhyZXNob2xkU3R1cmdlczpqbCxtYXg6V2wsbWVhbjpmdW5jdGlvbiBPTih0LGUpe3ZhciBuLGk9dC5sZW5ndGgscj1pLG89LTEsYT0wO2lmKG51bGw9PWUpZm9yKDsrK288aTspaXNOYU4obj1DbCh0W29dKSk/LS1yOmErPW47ZWxzZSBmb3IoOysrbzxpOylpc05hTihuPUNsKGUodFtvXSxvLHQpKSk/LS1yOmErPW47aWYocilyZXR1cm4gYS9yfSxtZWRpYW46ZnVuY3Rpb24gek4odCxlKXt2YXIgbixpPXQubGVuZ3RoLHI9LTEsbz1bXTtpZihudWxsPT1lKWZvcig7KytyPGk7KWlzTmFOKG49Q2wodFtyXSkpfHxvLnB1c2gobik7ZWxzZSBmb3IoOysrcjxpOylpc05hTihuPUNsKGUodFtyXSxyLHQpKSl8fG8ucHVzaChuKTtyZXR1cm4gR2woby5zb3J0KGJsKSwuNSl9LG1lcmdlOnFsLG1pbjpZbCxwYWlyczpmdW5jdGlvbiBETih0LGUpe251bGw9PWUmJihlPUVsKTtmb3IodmFyIG49MCxpPXQubGVuZ3RoLTEscj10WzBdLG89bmV3IEFycmF5KGk8MD8wOmkpO248aTspb1tuXT1lKHIscj10Wysrbl0pO3JldHVybiBvfSxwZXJtdXRlOmZ1bmN0aW9uIEJOKHQsZSl7Zm9yKHZhciBuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pO24tLTspaVtuXT10W2Vbbl1dO3JldHVybiBpfSxxdWFudGlsZTpHbCxyYW5nZTp6bCxzY2FuOmZ1bmN0aW9uIEhOKHQsZSl7aWYobj10Lmxlbmd0aCl7dmFyIG4saSxyPTAsbz0wLGE9dFtvXTtmb3IobnVsbD09ZSYmKGU9YmwpOysrcjxuOykoZShpPXRbcl0sYSk8MHx8MCE9PWUoYSxhKSkmJihhPWksbz1yKTtyZXR1cm4gMD09PWUoYSxhKT9vOnZvaWQgMH19LHNodWZmbGU6ZnVuY3Rpb24gRk4odCxlLG4pe2Zvcih2YXIgaSxyLG89KG51bGw9PW4/dC5sZW5ndGg6biktKGU9bnVsbD09ZT8wOitlKTtvOylyPU1hdGgucmFuZG9tKCkqby0tfDAsaT10W28rZV0sdFtvK2VdPXRbcitlXSx0W3IrZV09aTtyZXR1cm4gdH0sc3VtOmZ1bmN0aW9uIFZOKHQsZSl7dmFyIG4saT10Lmxlbmd0aCxyPS0xLG89MDtpZihudWxsPT1lKWZvcig7KytyPGk7KShuPSt0W3JdKSYmKG8rPW4pO2Vsc2UgZm9yKDsrK3I8aTspKG49K2UodFtyXSxyLHQpKSYmKG8rPW4pO3JldHVybiBvfSx0aWNrczpGbCx0aWNrSW5jcmVtZW50OlZsLHRpY2tTdGVwOlVsLHRyYW5zcG9zZTpYbCx2YXJpYW5jZTpBbCx6aXA6ZnVuY3Rpb24gVU4oKXtyZXR1cm4gWGwoYXJndW1lbnRzKX0sYXhpc1RvcDpmdW5jdGlvbiBqTih0KXtyZXR1cm4gcmMoMSx0KX0sYXhpc1JpZ2h0OmZ1bmN0aW9uIEdOKHQpe3JldHVybiByYygyLHQpfSxheGlzQm90dG9tOm9jLGF4aXNMZWZ0OmFjLGJydXNoOkptLGJydXNoWDpmdW5jdGlvbiBXTigpe3JldHVybiBRbSh6bSl9LGJydXNoWTpabSxicnVzaFNlbGVjdGlvbjpLbSxjaG9yZDpmdW5jdGlvbiBxTigpe3ZhciB0PTAsZT1udWxsLG49bnVsbCxpPW51bGw7ZnVuY3Rpb24gcihyKXt2YXIgbyxhLHMsbCxjLHUsaD1yLmxlbmd0aCxkPVtdLHA9emwoaCksZj1bXSxtPVtdLGc9bS5ncm91cHM9bmV3IEFycmF5KGgpLF89bmV3IEFycmF5KGgqaCk7Zm9yKG89MCxjPS0xOysrYzxoOyl7Zm9yKGE9MCx1PS0xOysrdTxoOylhKz1yW2NdW3VdO2QucHVzaChhKSxmLnB1c2goemwoaCkpLG8rPWF9Zm9yKGUmJnAuc29ydCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZShkW3RdLGRbbl0pfSkpLG4mJmYuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LnNvcnQoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIG4ocltlXVt0XSxyW2VdW2ldKX0pKX0pKSxsPShvPW9nKDAscmctdCpoKS9vKT90OnJnL2gsYT0wLGM9LTE7KytjPGg7KXtmb3Iocz1hLHU9LTE7Kyt1PGg7KXt2YXIgeT1wW2NdLHY9Zlt5XVt1XSxiPXJbeV1bdl0seD1hLHc9YSs9YipvO19bdipoK3ldPXtpbmRleDp5LHN1YmluZGV4OnYsc3RhcnRBbmdsZTp4LGVuZEFuZ2xlOncsdmFsdWU6Yn19Z1t5XT17aW5kZXg6eSxzdGFydEFuZ2xlOnMsZW5kQW5nbGU6YSx2YWx1ZTpkW3ldfSxhKz1sfWZvcihjPS0xOysrYzxoOylmb3IodT1jLTE7Kyt1PGg7KXt2YXIgUz1fW3UqaCtjXSxNPV9bYypoK3VdOyhTLnZhbHVlfHxNLnZhbHVlKSYmbS5wdXNoKFMudmFsdWU8TS52YWx1ZT97c291cmNlOk0sdGFyZ2V0OlN9Ontzb3VyY2U6Uyx0YXJnZXQ6TX0pfXJldHVybiBpP20uc29ydChpKTptfXJldHVybiByLnBhZEFuZ2xlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW9nKDAsZSkscik6dH0sci5zb3J0R3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQscik6ZX0sci5zb3J0U3ViZ3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQscik6bn0sci5zb3J0Q2hvcmRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P2k9bnVsbDooaT1hZyh0KSkuXz10LHIpOmkmJmkuX30scn0scmliYm9uOmZ1bmN0aW9uIFlOKCl7dmFyIHQ9bWcsZT1nZyxuPV9nLGk9eWcscj12ZyxvPW51bGw7ZnVuY3Rpb24gYSgpe3ZhciBhLHM9c2cuY2FsbChhcmd1bWVudHMpLGw9dC5hcHBseSh0aGlzLHMpLGM9ZS5hcHBseSh0aGlzLHMpLHU9K24uYXBwbHkodGhpcywoc1swXT1sLHMpKSxoPWkuYXBwbHkodGhpcyxzKS1pZyxkPXIuYXBwbHkodGhpcyxzKS1pZyxwPXUqdGcoaCksZj11KmVnKGgpLG09K24uYXBwbHkodGhpcywoc1swXT1jLHMpKSxnPWkuYXBwbHkodGhpcyxzKS1pZyxfPXIuYXBwbHkodGhpcyxzKS1pZztpZihvfHwobz1hPWZnKCkpLG8ubW92ZVRvKHAsZiksby5hcmMoMCwwLHUsaCxkKSxoPT09ZyYmZD09PV98fChvLnF1YWRyYXRpY0N1cnZlVG8oMCwwLG0qdGcoZyksbSplZyhnKSksby5hcmMoMCwwLG0sZyxfKSksby5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCxwLGYpLG8uY2xvc2VQYXRoKCksYSlyZXR1cm4gbz1udWxsLGErIiJ8fG51bGx9cmV0dXJuIGEucmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6bGcoK3QpLGEpOm59LGEuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmxnKCt0KSxhKTppfSxhLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6bGcoK3QpLGEpOnJ9LGEuc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsYSk6dH0sYS50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxhKTplfSxhLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bnVsbD09dD9udWxsOnQsYSk6b30sYX0sbmVzdDpmdW5jdGlvbiBYTigpe3ZhciB0LGUsbixpPVtdLHI9W107ZnVuY3Rpb24gbyhuLHIsYSxzKXtpZihyPj1pLmxlbmd0aClyZXR1cm4gbnVsbCE9dCYmbi5zb3J0KHQpLG51bGwhPWU/ZShuKTpuO2Zvcih2YXIgbCxjLHUsaD0tMSxkPW4ubGVuZ3RoLHA9aVtyKytdLGY9d2coKSxtPWEoKTsrK2g8ZDspKHU9Zi5nZXQobD1wKGM9bltoXSkrIiIpKT91LnB1c2goYyk6Zi5zZXQobCxbY10pO3JldHVybiBmLmVhY2goKGZ1bmN0aW9uKHQsZSl7cyhtLGUsbyh0LHIsYSxzKSl9KSksbX1mdW5jdGlvbiBhKHQsbil7aWYoKytuPmkubGVuZ3RoKXJldHVybiB0O3ZhciBvLHM9cltuLTFdO3JldHVybiBudWxsIT1lJiZuPj1pLmxlbmd0aD9vPXQuZW50cmllcygpOihvPVtdLHQuZWFjaCgoZnVuY3Rpb24odCxlKXtvLnB1c2goe2tleTplLHZhbHVlczphKHQsbil9KX0pKSksbnVsbCE9cz9vLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHModC5rZXksZS5rZXkpfSkpOm99cmV0dXJuIG49e29iamVjdDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0LDAsU2csTWcpfSxtYXA6ZnVuY3Rpb24odCl7cmV0dXJuIG8odCwwLEVnLFRnKX0sZW50cmllczpmdW5jdGlvbih0KXtyZXR1cm4gYShvKHQsMCxFZyxUZyksMCl9LGtleTpmdW5jdGlvbih0KXtyZXR1cm4gaS5wdXNoKHQpLG59LHNvcnRLZXlzOmZ1bmN0aW9uKHQpe3JldHVybiByW2kubGVuZ3RoLTFdPXQsbn0sc29ydFZhbHVlczpmdW5jdGlvbihlKXtyZXR1cm4gdD1lLG59LHJvbGx1cDpmdW5jdGlvbih0KXtyZXR1cm4gZT10LG59fX0sc2V0OmtnLG1hcDp3ZyxrZXlzOkxnLHZhbHVlczpmdW5jdGlvbiAkTih0KXt2YXIgZT1bXTtmb3IodmFyIG4gaW4gdCllLnB1c2godFtuXSk7cmV0dXJuIGV9LGVudHJpZXM6ZnVuY3Rpb24gS04odCl7dmFyIGU9W107Zm9yKHZhciBuIGluIHQpZS5wdXNoKHtrZXk6bix2YWx1ZTp0W25dfSk7cmV0dXJuIGV9LGNvbG9yOkJoLHJnYjpVaCxoc2w6JGgsbGFiOnNkLGhjbDpmZCxsY2g6ZnVuY3Rpb24gWk4odCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3BkKHQpOm5ldyBtZChuLGUsdCxudWxsPT1pPzE6aSl9LGdyYXk6ZnVuY3Rpb24gSk4odCxlKXtyZXR1cm4gbmV3IGxkKHQsMCwwLG51bGw9PWU/MTplKX0sY3ViZWhlbGl4OnhkLGNvbnRvdXJzOkhnLGNvbnRvdXJEZW5zaXR5OmZ1bmN0aW9uIFFOKCl7dmFyIHQ9VWcsZT1qZyxuPUdnLGk9OTYwLHI9NTAwLG89MjAsYT0yLHM9MypvLGw9aSsyKnM+PmEsYz1yKzIqcz4+YSx1PUlnKDIwKTtmdW5jdGlvbiBoKGkpe3ZhciByPW5ldyBGbG9hdDMyQXJyYXkobCpjKSxoPW5ldyBGbG9hdDMyQXJyYXkobCpjKTtpLmZvckVhY2goKGZ1bmN0aW9uKGksbyx1KXt2YXIgaD0rdChpLG8sdSkrcz4+YSxkPStlKGksbyx1KStzPj5hLHA9K24oaSxvLHUpO2g+PTAmJmg8bCYmZD49MCYmZDxjJiYocltoK2QqbF0rPXApfSkpLEZnKHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6cn0se3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpofSxvPj5hKSxWZyh7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOmh9LHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6cn0sbz4+YSksRmcoe3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpyfSx7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOmh9LG8+PmEpLFZnKHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6aH0se3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpyfSxvPj5hKSxGZyh7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOnJ9LHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6aH0sbz4+YSksVmcoe3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpofSx7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOnJ9LG8+PmEpO3ZhciBwPXUocik7aWYoIUFycmF5LmlzQXJyYXkocCkpe3ZhciBmPVdsKHIpO3A9VWwoMCxmLHApLChwPXpsKDAsTWF0aC5mbG9vcihmL3ApKnAscCkpLnNoaWZ0KCl9cmV0dXJuIEhnKCkudGhyZXNob2xkcyhwKS5zaXplKFtsLGNdKShyKS5tYXAoZCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gdC52YWx1ZSo9TWF0aC5wb3coMiwtMiphKSx0LmNvb3JkaW5hdGVzLmZvckVhY2gocCksdH1mdW5jdGlvbiBwKHQpe3QuZm9yRWFjaChmKX1mdW5jdGlvbiBmKHQpe3QuZm9yRWFjaChtKX1mdW5jdGlvbiBtKHQpe3RbMF09dFswXSpNYXRoLnBvdygyLGEpLXMsdFsxXT10WzFdKk1hdGgucG93KDIsYSktc31mdW5jdGlvbiBnKCl7cmV0dXJuIGw9aSsyKihzPTMqbyk+PmEsYz1yKzIqcz4+YSxofXJldHVybiBoLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpJZygrZSksaCk6dH0saC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SWcoK3QpLGgpOmV9LGgud2VpZ2h0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SWcoK3QpLGgpOm59LGguc2l6ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5baSxyXTt2YXIgZT1NYXRoLmNlaWwodFswXSksbj1NYXRoLmNlaWwodFsxXSk7aWYoIShlPj0wfHxlPj0wKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgc2l6ZSIpO3JldHVybiBpPWUscj1uLGcoKX0saC5jZWxsU2l6ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gMTw8YTtpZighKCh0PSt0KT49MSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNlbGwgc2l6ZSIpO3JldHVybiBhPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5MTjIpLGcoKX0saC50aHJlc2hvbGRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6QXJyYXkuaXNBcnJheSh0KT9JZyhQZy5jYWxsKHQpKTpJZyh0KSxoKTp1fSxoLmJhbmR3aWR0aD1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gTWF0aC5zcXJ0KG8qKG8rMSkpO2lmKCEoKHQ9K3QpPj0wKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgYmFuZHdpZHRoIik7cmV0dXJuIG89TWF0aC5yb3VuZCgoTWF0aC5zcXJ0KDQqdCp0KzEpLTEpLzIpLGcoKX0saH0sZGlzcGF0Y2g6bGMsZHJhZzp2aCxkcmFnRGlzYWJsZTpoaCxkcmFnRW5hYmxlOmRoLGRzdkZvcm1hdDpLZyxjc3ZQYXJzZTpKZyxjc3ZQYXJzZVJvd3M6UWcsY3N2Rm9ybWF0OnRfLGNzdkZvcm1hdEJvZHk6ZV8sY3N2Rm9ybWF0Um93czpuXyxjc3ZGb3JtYXRSb3c6aV8sY3N2Rm9ybWF0VmFsdWU6cl8sdHN2UGFyc2U6YV8sdHN2UGFyc2VSb3dzOnNfLHRzdkZvcm1hdDpsXyx0c3ZGb3JtYXRCb2R5OmNfLHRzdkZvcm1hdFJvd3M6dV8sdHN2Rm9ybWF0Um93OmhfLHRzdkZvcm1hdFZhbHVlOmRfLGF1dG9UeXBlOmZ1bmN0aW9uIHRJKHQpe2Zvcih2YXIgZSBpbiB0KXt2YXIgbixpLHI9dFtlXS50cmltKCk7aWYocilpZigidHJ1ZSI9PT1yKXI9ITA7ZWxzZSBpZigiZmFsc2UiPT09cilyPSExO2Vsc2UgaWYoIk5hTiI9PT1yKXI9TmFOO2Vsc2UgaWYoaXNOYU4obj0rcikpe2lmKCEoaT1yLm1hdGNoKC9eKFstK11cZHsyfSk/XGR7NH0oLVxkezJ9KC1cZHsyfSk/KT8oVFxkezJ9OlxkezJ9KDpcZHsyfShcLlxkezN9KT8pPyhafFstK11cZHsyfTpcZHsyfSk/KT8kLykpKWNvbnRpbnVlO3BfJiZpWzRdJiYhaVs3XSYmKHI9ci5yZXBsYWNlKC8tL2csIi8iKS5yZXBsYWNlKC9ULywiICIpKSxyPW5ldyBEYXRlKHIpfWVsc2Ugcj1uO2Vsc2Ugcj1udWxsO3RbZV09cn1yZXR1cm4gdH0sZWFzZUxpbmVhcjpiZixlYXNlUXVhZDpTZixlYXNlUXVhZEluOnhmLGVhc2VRdWFkT3V0OndmLGVhc2VRdWFkSW5PdXQ6U2YsZWFzZUN1YmljOlRmLGVhc2VDdWJpY0luOk1mLGVhc2VDdWJpY091dDpFZixlYXNlQ3ViaWNJbk91dDpUZixlYXNlUG9seTpYZixlYXNlUG9seUluOnFmLGVhc2VQb2x5T3V0OllmLGVhc2VQb2x5SW5PdXQ6WGYsZWFzZVNpbjpRZixlYXNlU2luSW46WmYsZWFzZVNpbk91dDpKZixlYXNlU2luSW5PdXQ6UWYsZWFzZUV4cDppbSxlYXNlRXhwSW46ZW0sZWFzZUV4cE91dDpubSxlYXNlRXhwSW5PdXQ6aW0sZWFzZUNpcmNsZTphbSxlYXNlQ2lyY2xlSW46cm0sZWFzZUNpcmNsZU91dDpvbSxlYXNlQ2lyY2xlSW5PdXQ6YW0sZWFzZUJvdW5jZTpjbSxlYXNlQm91bmNlSW46bG0sZWFzZUJvdW5jZU91dDpjbSxlYXNlQm91bmNlSW5PdXQ6dW0sZWFzZUJhY2s6Zm0sZWFzZUJhY2tJbjpkbSxlYXNlQmFja091dDpwbSxlYXNlQmFja0luT3V0OmZtLGVhc2VFbGFzdGljOl9tLGVhc2VFbGFzdGljSW46Z20sZWFzZUVsYXN0aWNPdXQ6X20sZWFzZUVsYXN0aWNJbk91dDp5bSxibG9iOmZ1bmN0aW9uIGVJKHQsZSl7cmV0dXJuIGZldGNoKHQsZSkudGhlbihmXyl9LGJ1ZmZlcjpmdW5jdGlvbiBuSSh0LGUpe3JldHVybiBmZXRjaCh0LGUpLnRoZW4obV8pfSxkc3Y6ZnVuY3Rpb24gaUkodCxlLG4saSl7Mz09PWFyZ3VtZW50cy5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoaT1uLG49dm9pZCAwKTt2YXIgcj1LZyh0KTtyZXR1cm4gX18oZSxuKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gci5wYXJzZSh0LGkpfSkpfSxjc3Y6dl8sdHN2OmJfLGltYWdlOmZ1bmN0aW9uIHJJKHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuLGkpe3ZhciByPW5ldyBJbWFnZTtmb3IodmFyIG8gaW4gZSlyW29dPWVbb107ci5vbmVycm9yPWksci5vbmxvYWQ9ZnVuY3Rpb24oKXtuKHIpfSxyLnNyYz10fSkpfSxqc29uOmZ1bmN0aW9uIG9JKHQsZSl7cmV0dXJuIGZldGNoKHQsZSkudGhlbih4Xyl9LHRleHQ6X18seG1sOlNfLGh0bWw6TV8sc3ZnOkVfLGZvcmNlQ2VudGVyOmZ1bmN0aW9uIGFJKHQsZSl7dmFyIG47ZnVuY3Rpb24gaSgpe3ZhciBpLHIsbz1uLmxlbmd0aCxhPTAscz0wO2ZvcihpPTA7aTxvOysraSlhKz0ocj1uW2ldKS54LHMrPXIueTtmb3IoYT1hL28tdCxzPXMvby1lLGk9MDtpPG87KytpKShyPW5baV0pLngtPWEsci55LT1zfXJldHVybiBudWxsPT10JiYodD0wKSxudWxsPT1lJiYoZT0wKSxpLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7bj10fSxpLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K2UsaSk6dH0saS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0LGkpOmV9LGl9LGZvcmNlQ29sbGlkZTpmdW5jdGlvbiBzSSh0KXt2YXIgZSxuLGk9MSxyPTE7ZnVuY3Rpb24gbygpe2Zvcih2YXIgdCxvLHMsbCxjLHUsaCxkPWUubGVuZ3RoLHA9MDtwPHI7KytwKWZvcihvPU5fKGUsel8sRF8pLnZpc2l0QWZ0ZXIoYSksdD0wO3Q8ZDsrK3QpaD0odT1uWyhzPWVbdF0pLmluZGV4XSkqdSxsPXMueCtzLnZ4LGM9cy55K3Mudnksby52aXNpdChmKTtmdW5jdGlvbiBmKHQsZSxuLHIsbyl7dmFyIGE9dC5kYXRhLGQ9dC5yLHA9dStkO2lmKCFhKXJldHVybiBlPmwrcHx8cjxsLXB8fG4+YytwfHxvPGMtcDtpZihhLmluZGV4PnMuaW5kZXgpe3ZhciBmPWwtYS54LWEudngsbT1jLWEueS1hLnZ5LGc9ZipmK20qbTtnPHAqcCYmKDA9PT1mJiYoZys9KGY9Q18oKSkqZiksMD09PW0mJihnKz0obT1DXygpKSptKSxnPShwLShnPU1hdGguc3FydChnKSkpL2cqaSxzLnZ4Kz0oZio9ZykqKHA9KGQqPWQpLyhoK2QpKSxzLnZ5Kz0obSo9ZykqcCxhLnZ4LT1mKihwPTEtcCksYS52eS09bSpwKX19fWZ1bmN0aW9uIGEodCl7aWYodC5kYXRhKXJldHVybiB0LnI9blt0LmRhdGEuaW5kZXhdO2Zvcih2YXIgZT10LnI9MDtlPDQ7KytlKXRbZV0mJnRbZV0ucj50LnImJih0LnI9dFtlXS5yKX1mdW5jdGlvbiBzKCl7aWYoZSl7dmFyIGkscixvPWUubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShvKSxpPTA7aTxvOysraSluWyhyPWVbaV0pLmluZGV4XT0rdChyLGksZSl9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1UXyhudWxsPT10PzE6K3QpKSxvLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7ZT10LHMoKX0sby5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LG8pOnJ9LG8uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3Qsbyk6aX0sby5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpUXygrZSkscygpLG8pOnR9LG99LGZvcmNlTGluazpmdW5jdGlvbiBsSSh0KXt2YXIgZSxuLGkscixvLGE9Ql8scz1mdW5jdGlvbiBsKHQpe3JldHVybiAxL01hdGgubWluKHJbdC5zb3VyY2UuaW5kZXhdLHJbdC50YXJnZXQuaW5kZXhdKX0sYz1UXygzMCksdT0xO2Z1bmN0aW9uIGgoaSl7Zm9yKHZhciByPTAsYT10Lmxlbmd0aDtyPHU7KytyKWZvcih2YXIgcyxsLGMsaCxkLHAsZixtPTA7bTxhOysrbSloPShjPShzPXRbbV0pLnRhcmdldCkueCtjLnZ4LShsPXMuc291cmNlKS54LWwudnh8fENfKCksZD1jLnkrYy52eS1sLnktbC52eXx8Q18oKSxkKj1wPSgocD1NYXRoLnNxcnQoaCpoK2QqZCkpLW5bbV0pL3AqaSplW21dLGMudngtPShoKj1wKSooZj1vW21dKSxjLnZ5LT1kKmYsbC52eCs9aCooZj0xLWYpLGwudnkrPWQqZn1mdW5jdGlvbiBkKCl7aWYoaSl7dmFyIHMsbCxjPWkubGVuZ3RoLHU9dC5sZW5ndGgsaD13ZyhpLGEpO2ZvcihzPTAscj1uZXcgQXJyYXkoYyk7czx1OysrcykobD10W3NdKS5pbmRleD1zLCJvYmplY3QiIT10eXBlb2YgbC5zb3VyY2UmJihsLnNvdXJjZT1IXyhoLGwuc291cmNlKSksIm9iamVjdCIhPXR5cGVvZiBsLnRhcmdldCYmKGwudGFyZ2V0PUhfKGgsbC50YXJnZXQpKSxyW2wuc291cmNlLmluZGV4XT0ocltsLnNvdXJjZS5pbmRleF18fDApKzEscltsLnRhcmdldC5pbmRleF09KHJbbC50YXJnZXQuaW5kZXhdfHwwKSsxO2ZvcihzPTAsbz1uZXcgQXJyYXkodSk7czx1OysrcylvW3NdPXJbKGw9dFtzXSkuc291cmNlLmluZGV4XS8ocltsLnNvdXJjZS5pbmRleF0rcltsLnRhcmdldC5pbmRleF0pO2U9bmV3IEFycmF5KHUpLHAoKSxuPW5ldyBBcnJheSh1KSxmKCl9fWZ1bmN0aW9uIHAoKXtpZihpKWZvcih2YXIgbj0wLHI9dC5sZW5ndGg7bjxyOysrbillW25dPStzKHRbbl0sbix0KX1mdW5jdGlvbiBmKCl7aWYoaSlmb3IodmFyIGU9MCxyPXQubGVuZ3RoO2U8cjsrK2UpbltlXT0rYyh0W2VdLGUsdCl9cmV0dXJuIG51bGw9PXQmJih0PVtdKSxoLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LGQoKX0saC5saW5rcz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLGQoKSxoKTp0fSxoLmlkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsaCk6YX0saC5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LGgpOnV9LGguc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpUXygrdCkscCgpLGgpOnN9LGguZGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpUXygrdCksZigpLGgpOmN9LGh9LGZvcmNlTWFueUJvZHk6ZnVuY3Rpb24gY0koKXt2YXIgdCxlLG4saSxyPVRfKC0zMCksbz0xLGE9MS8wLHM9LjgxO2Z1bmN0aW9uIGwoaSl7dmFyIHIsbz10Lmxlbmd0aCxhPU5fKHQsRl8sVl8pLnZpc2l0QWZ0ZXIodSk7Zm9yKG49aSxyPTA7cjxvOysrcillPXRbcl0sYS52aXNpdChoKX1mdW5jdGlvbiBjKCl7aWYodCl7dmFyIGUsbixvPXQubGVuZ3RoO2ZvcihpPW5ldyBBcnJheShvKSxlPTA7ZTxvOysrZSlpWyhuPXRbZV0pLmluZGV4XT0rcihuLGUsdCl9fWZ1bmN0aW9uIHUodCl7dmFyIGUsbixyLG8sYSxzPTAsbD0wO2lmKHQubGVuZ3RoKXtmb3Iocj1vPWE9MDthPDQ7KythKShlPXRbYV0pJiYobj1NYXRoLmFicyhlLnZhbHVlKSkmJihzKz1lLnZhbHVlLGwrPW4scis9biplLngsbys9biplLnkpO3QueD1yL2wsdC55PW8vbH1lbHNleyhlPXQpLng9ZS5kYXRhLngsZS55PWUuZGF0YS55O2Rve3MrPWlbZS5kYXRhLmluZGV4XX13aGlsZShlPWUubmV4dCl9dC52YWx1ZT1zfWZ1bmN0aW9uIGgodCxyLGwsYyl7aWYoIXQudmFsdWUpcmV0dXJuITA7dmFyIHU9dC54LWUueCxoPXQueS1lLnksZD1jLXIscD11KnUraCpoO2lmKGQqZC9zPHApcmV0dXJuIHA8YSYmKDA9PT11JiYocCs9KHU9Q18oKSkqdSksMD09PWgmJihwKz0oaD1DXygpKSpoKSxwPG8mJihwPU1hdGguc3FydChvKnApKSxlLnZ4Kz11KnQudmFsdWUqbi9wLGUudnkrPWgqdC52YWx1ZSpuL3ApLCEwO2lmKCEodC5sZW5ndGh8fHA+PWEpKXsodC5kYXRhIT09ZXx8dC5uZXh0KSYmKDA9PT11JiYocCs9KHU9Q18oKSkqdSksMD09PWgmJihwKz0oaD1DXygpKSpoKSxwPG8mJihwPU1hdGguc3FydChvKnApKSk7ZG97dC5kYXRhIT09ZSYmKGUudngrPXUqKGQ9aVt0LmRhdGEuaW5kZXhdKm4vcCksZS52eSs9aCpkKX13aGlsZSh0PXQubmV4dCl9fXJldHVybiBsLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dD1lLGMoKX0sbC5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlRfKCt0KSxjKCksbCk6cn0sbC5kaXN0YW5jZU1pbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10KnQsbCk6TWF0aC5zcXJ0KG8pfSxsLmRpc3RhbmNlTWF4PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQqdCxsKTpNYXRoLnNxcnQoYSl9LGwudGhldGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9dCp0LGwpOk1hdGguc3FydChzKX0sbH0sZm9yY2VSYWRpYWw6ZnVuY3Rpb24gdUkodCxlLG4pe3ZhciBpLHIsbyxhPVRfKC4xKTtmdW5jdGlvbiBzKHQpe2Zvcih2YXIgYT0wLHM9aS5sZW5ndGg7YTxzOysrYSl7dmFyIGw9aVthXSxjPWwueC1lfHwxZS02LHU9bC55LW58fDFlLTYsaD1NYXRoLnNxcnQoYypjK3UqdSksZD0ob1thXS1oKSpyW2FdKnQvaDtsLnZ4Kz1jKmQsbC52eSs9dSpkfX1mdW5jdGlvbiBsKCl7aWYoaSl7dmFyIGUsbj1pLmxlbmd0aDtmb3Iocj1uZXcgQXJyYXkobiksbz1uZXcgQXJyYXkobiksZT0wO2U8bjsrK2Upb1tlXT0rdChpW2VdLGUsaSkscltlXT1pc05hTihvW2VdKT8wOithKGlbZV0sZSxpKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVRfKCt0KSksbnVsbD09ZSYmKGU9MCksbnVsbD09biYmKG49MCkscy5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2k9dCxsKCl9LHMuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpUXygrdCksbCgpLHMpOmF9LHMucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6VF8oK2UpLGwoKSxzKTp0fSxzLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3Qscyk6ZX0scy55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LHMpOm59LHN9LGZvcmNlU2ltdWxhdGlvbjpmdW5jdGlvbiBoSSh0KXt2YXIgZSxuPTEsaT0uMDAxLHI9MS1NYXRoLnBvdyhpLDEvMzAwKSxvPTAsYT0uNixzPXdnKCksbD1rcCh1KSxjPWxjKCJ0aWNrIiwiZW5kIik7ZnVuY3Rpb24gdSgpe2goKSxjLmNhbGwoInRpY2siLGUpLG48aSYmKGwuc3RvcCgpLGMuY2FsbCgiZW5kIixlKSl9ZnVuY3Rpb24gaChpKXt2YXIgbCxjLHU9dC5sZW5ndGg7dm9pZCAwPT09aSYmKGk9MSk7Zm9yKHZhciBoPTA7aDxpOysraClmb3Iobis9KG8tbikqcixzLmVhY2goKGZ1bmN0aW9uKHQpe3Qobil9KSksbD0wO2w8dTsrK2wpbnVsbD09KGM9dFtsXSkuZng/Yy54Kz1jLnZ4Kj1hOihjLng9Yy5meCxjLnZ4PTApLG51bGw9PWMuZnk/Yy55Kz1jLnZ5Kj1hOihjLnk9Yy5meSxjLnZ5PTApO3JldHVybiBlfWZ1bmN0aW9uIGQoKXtmb3IodmFyIGUsbj0wLGk9dC5sZW5ndGg7bjxpOysrbil7aWYoKGU9dFtuXSkuaW5kZXg9bixudWxsIT1lLmZ4JiYoZS54PWUuZngpLG51bGwhPWUuZnkmJihlLnk9ZS5meSksaXNOYU4oZS54KXx8aXNOYU4oZS55KSl7dmFyIHI9MTAqTWF0aC5zcXJ0KG4pLG89bipueTtlLng9cipNYXRoLmNvcyhvKSxlLnk9cipNYXRoLnNpbihvKX0oaXNOYU4oZS52eCl8fGlzTmFOKGUudnkpKSYmKGUudng9ZS52eT0wKX19ZnVuY3Rpb24gcChlKXtyZXR1cm4gZS5pbml0aWFsaXplJiZlLmluaXRpYWxpemUodCksZX1yZXR1cm4gbnVsbD09dCYmKHQ9W10pLGQoKSxlPXt0aWNrOmgscmVzdGFydDpmdW5jdGlvbigpe3JldHVybiBsLnJlc3RhcnQodSksZX0sc3RvcDpmdW5jdGlvbigpe3JldHVybiBsLnN0b3AoKSxlfSxub2RlczpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uLGQoKSxzLmVhY2gocCksZSk6dH0sYWxwaGE6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3QsZSk6bn0sYWxwaGFNaW46ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3QsZSk6aX0sYWxwaGFEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdCxlKTorcn0sYWxwaGFUYXJnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3QsZSk6b30sdmVsb2NpdHlEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0xLXQsZSk6MS1hfSxmb3JjZTpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KG51bGw9PW4/cy5yZW1vdmUodCk6cy5zZXQodCxwKG4pKSxlKTpzLmdldCh0KX0sZmluZDpmdW5jdGlvbihlLG4saSl7dmFyIHIsbyxhLHMsbCxjPTAsdT10Lmxlbmd0aDtmb3IobnVsbD09aT9pPTEvMDppKj1pLGM9MDtjPHU7KytjKShhPShyPWUtKHM9dFtjXSkueCkqcisobz1uLXMueSkqbyk8aSYmKGw9cyxpPWEpO3JldHVybiBsfSxvbjpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGMub24odCxuKSxlKTpjLm9uKHQpfX19LGZvcmNlWDpmdW5jdGlvbiBkSSh0KXt2YXIgZSxuLGkscj1UXyguMSk7ZnVuY3Rpb24gbyh0KXtmb3IodmFyIHIsbz0wLGE9ZS5sZW5ndGg7bzxhOysrbykocj1lW29dKS52eCs9KGlbb10tci54KSpuW29dKnR9ZnVuY3Rpb24gYSgpe2lmKGUpe3ZhciBvLGE9ZS5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGEpLGk9bmV3IEFycmF5KGEpLG89MDtvPGE7KytvKW5bb109aXNOYU4oaVtvXT0rdChlW29dLG8sZSkpPzA6K3IoZVtvXSxvLGUpfX1yZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9VF8obnVsbD09dD8wOit0KSksby5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2U9dCxhKCl9LG8uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpUXygrdCksYSgpLG8pOnJ9LG8ueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlRfKCtlKSxhKCksbyk6dH0sb30sZm9yY2VZOmZ1bmN0aW9uIHBJKHQpe3ZhciBlLG4saSxyPVRfKC4xKTtmdW5jdGlvbiBvKHQpe2Zvcih2YXIgcixvPTAsYT1lLmxlbmd0aDtvPGE7KytvKShyPWVbb10pLnZ5Kz0oaVtvXS1yLnkpKm5bb10qdH1mdW5jdGlvbiBhKCl7aWYoZSl7dmFyIG8sYT1lLmxlbmd0aDtmb3Iobj1uZXcgQXJyYXkoYSksaT1uZXcgQXJyYXkoYSksbz0wO288YTsrK28pbltvXT1pc05hTihpW29dPSt0KGVbb10sbyxlKSk/MDorcihlW29dLG8sZSl9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1UXyhudWxsPT10PzA6K3QpKSxvLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7ZT10LGEoKX0sby5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlRfKCt0KSxhKCksbyk6cn0sby55PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6VF8oK2UpLGEoKSxvKTp0fSxvfSxmb3JtYXREZWZhdWx0TG9jYWxlOmJ5LGdldCBmb3JtYXQoKXtyZXR1cm4gbXl9LGdldCBmb3JtYXRQcmVmaXgoKXtyZXR1cm4gZ3l9LGZvcm1hdExvY2FsZTp2eSxmb3JtYXRTcGVjaWZpZXI6c3ksRm9ybWF0U3BlY2lmaWVyOmx5LHByZWNpc2lvbkZpeGVkOnh5LHByZWNpc2lvblByZWZpeDp3eSxwcmVjaXNpb25Sb3VuZDpTeSxnZW9BcmVhOmZ1bmN0aW9uIGZJKHQpe3JldHVybiB1di5yZXNldCgpLGl2KHQsaHYpLDIqdXZ9LGdlb0JvdW5kczpmdW5jdGlvbiBtSSh0KXt2YXIgZSxuLGkscixvLGEscztpZihUdj1Fdj0tKFN2PU12PTEvMCksUHY9W10saXYodCxLdiksbj1Qdi5sZW5ndGgpe2ZvcihQdi5zb3J0KG9iKSxlPTEsbz1baT1QdlswXV07ZTxuOysrZSlhYihpLChyPVB2W2VdKVswXSl8fGFiKGksclsxXSk/KHJiKGlbMF0sclsxXSk+cmIoaVswXSxpWzFdKSYmKGlbMV09clsxXSkscmIoclswXSxpWzFdKT5yYihpWzBdLGlbMV0pJiYoaVswXT1yWzBdKSk6by5wdXNoKGk9cik7Zm9yKGE9LTEvMCxlPTAsaT1vW249by5sZW5ndGgtMV07ZTw9bjtpPXIsKytlKShzPXJiKGlbMV0sKHI9b1tlXSlbMF0pKT5hJiYoYT1zLFN2PXJbMF0sRXY9aVsxXSl9cmV0dXJuIFB2PU52PW51bGwsU3Y9PT0xLzB8fE12PT09MS8wP1tbTmFOLE5hTl0sW05hTixOYU5dXTpbW1N2LE12XSxbRXYsVHZdXX0sZ2VvQ2VudHJvaWQ6ZnVuY3Rpb24gZ0kodCl7SXY9UnY9T3Y9enY9RHY9QnY9SHY9RnY9VnY9VXY9anY9MCxpdih0LHNiKTt2YXIgZT1WdixuPVV2LGk9anYscj1lKmUrbipuK2kqaTtyZXR1cm4gcjxreSYmKGU9QnYsbj1IdixpPUZ2LFJ2PEF5JiYoZT1PdixuPXp2LGk9RHYpLChyPWUqZStuKm4raSppKTxreSk/W05hTixOYU5dOltCeShuLGUpKlJ5LCR5KGkvcXkocikpKlJ5XX0sZ2VvQ2lyY2xlOmZ1bmN0aW9uIF9JKCl7dmFyIHQsZSxuPXliKFswLDBdKSxpPXliKDkwKSxyPXliKDYpLG89e3BvaW50OmZ1bmN0aW9uIGEobixpKXt0LnB1c2gobj1lKG4saSkpLG5bMF0qPVJ5LG5bMV0qPVJ5fX07ZnVuY3Rpb24gcygpe3ZhciBhPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpLHM9aS5hcHBseSh0aGlzLGFyZ3VtZW50cykqT3ksbD1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpPeTtyZXR1cm4gdD1bXSxlPXhiKC1hWzBdKk95LC1hWzFdKk95LDApLmludmVydCxUYihvLHMsbCwxKSxhPXt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbdF19LHQ9ZT1udWxsLGF9cmV0dXJuIHMuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eWIoWyt0WzBdLCt0WzFdXSkscyk6bn0scy5yYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp5YigrdCkscyk6aX0scy5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp5YigrdCkscyk6cn0sc30sZ2VvQ2xpcEFudGltZXJpZGlhbjpIYixnZW9DbGlwQ2lyY2xlOlViLGdlb0NsaXBFeHRlbnQ6ZnVuY3Rpb24geUkoKXt2YXIgdCxlLG4saT0wLHI9MCxvPTk2MCxhPTUwMDtyZXR1cm4gbj17c3RyZWFtOmZ1bmN0aW9uKG4pe3JldHVybiB0JiZlPT09bj90OnQ9V2IoaSxyLG8sYSkoZT1uKX0sZXh0ZW50OmZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPStzWzBdWzBdLHI9K3NbMF1bMV0sbz0rc1sxXVswXSxhPStzWzFdWzFdLHQ9ZT1udWxsLG4pOltbaSxyXSxbbyxhXV19fX0sZ2VvQ2xpcFJlY3RhbmdsZTpXYixnZW9Db250YWluczpmdW5jdGlvbiB2SSh0LGUpe3JldHVybih0JiZveC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP294W3QudHlwZV06c3gpKHQsZSl9LGdlb0Rpc3RhbmNlOnJ4LGdlb0dyYXRpY3VsZTpteCxnZW9HcmF0aWN1bGUxMDpmdW5jdGlvbiBiSSgpe3JldHVybiBteCgpKCl9LGdlb0ludGVycG9sYXRlOmZ1bmN0aW9uIHhJKHQsZSl7dmFyIG49dFswXSpPeSxpPXRbMV0qT3kscj1lWzBdKk95LG89ZVsxXSpPeSxhPUh5KGkpLHM9R3koaSksbD1IeShvKSxjPUd5KG8pLHU9YSpIeShuKSxoPWEqR3kobiksZD1sKkh5KHIpLHA9bCpHeShyKSxmPTIqJHkocXkoS3koby1pKSthKmwqS3koci1uKSkpLG09R3koZiksZz1mP2Z1bmN0aW9uKHQpe3ZhciBlPUd5KHQqPWYpL20sbj1HeShmLXQpL20saT1uKnUrZSpkLHI9bipoK2UqcCxvPW4qcytlKmM7cmV0dXJuW0J5KHIsaSkqUnksQnkobyxxeShpKmkrcipyKSkqUnldfTpmdW5jdGlvbigpe3JldHVybltuKlJ5LGkqUnldfTtyZXR1cm4gZy5kaXN0YW5jZT1mLGd9LGdlb0xlbmd0aDpleCxnZW9QYXRoOmZ1bmN0aW9uIHdJKHQsZSl7dmFyIG4saSxyPTQuNTtmdW5jdGlvbiBvKHQpe3JldHVybiB0JiYoImZ1bmN0aW9uIj09dHlwZW9mIHImJmkucG9pbnRSYWRpdXMoK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxpdih0LG4oaSkpKSxpLnJlc3VsdCgpfXJldHVybiBvLmFyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIGl2KHQsbihOeCkpLE54LnJlc3VsdCgpfSxvLm1lYXN1cmU9ZnVuY3Rpb24odCl7cmV0dXJuIGl2KHQsbihtdykpLG13LnJlc3VsdCgpfSxvLmJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gaXYodCxuKER4KSksRHgucmVzdWx0KCl9LG8uY2VudHJvaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGl2KHQsbihydykpLHJ3LnJlc3VsdCgpfSxvLnByb2plY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09ZT8odD1udWxsLGd4KToodD1lKS5zdHJlYW0sbyk6dH0sby5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/KGU9bnVsbCxuZXcgZ3cpOm5ldyBvdyhlPXQpLCJmdW5jdGlvbiIhPXR5cGVvZiByJiZpLnBvaW50UmFkaXVzKHIpLG8pOmV9LG8ucG9pbnRSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDooaS5wb2ludFJhZGl1cygrdCksK3QpLG8pOnJ9LG8ucHJvamVjdGlvbih0KS5jb250ZXh0KGUpfSxnZW9BbGJlcnM6T3csZ2VvQWxiZXJzVXNhOmZ1bmN0aW9uIFNJKCl7dmFyIHQsZSxuLGkscixvLGE9T3coKSxzPVJ3KCkucm90YXRlKFsxNTQsMF0pLmNlbnRlcihbLTIsNTguNV0pLnBhcmFsbGVscyhbNTUsNjVdKSxsPVJ3KCkucm90YXRlKFsxNTcsMF0pLmNlbnRlcihbLTMsMTkuOV0pLnBhcmFsbGVscyhbOCwxOF0pLGM9e3BvaW50OmZ1bmN0aW9uKHQsZSl7bz1bdCxlXX19O2Z1bmN0aW9uIHUodCl7dmFyIGU9dFswXSxhPXRbMV07cmV0dXJuIG89bnVsbCxuLnBvaW50KGUsYSksb3x8KGkucG9pbnQoZSxhKSxvKXx8KHIucG9pbnQoZSxhKSxvKX1mdW5jdGlvbiBoKCl7cmV0dXJuIHQ9ZT1udWxsLHV9cmV0dXJuIHUuaW52ZXJ0PWZ1bmN0aW9uKHQpe3ZhciBlPWEuc2NhbGUoKSxuPWEudHJhbnNsYXRlKCksaT0odFswXS1uWzBdKS9lLHI9KHRbMV0tblsxXSkvZTtyZXR1cm4ocj49LjEyJiZyPC4yMzQmJmk+PS0uNDI1JiZpPC0uMjE0P3M6cj49LjE2NiYmcjwuMjM0JiZpPj0tLjIxNCYmaTwtLjExNT9sOmEpLmludmVydCh0KX0sdS5zdHJlYW09ZnVuY3Rpb24obil7cmV0dXJuIHQmJmU9PT1uP3Q6dD0oZnVuY3Rpb24gaSh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm57cG9pbnQ6ZnVuY3Rpb24obixpKXtmb3IodmFyIHI9LTE7KytyPGU7KXRbcl0ucG9pbnQobixpKX0sc3BoZXJlOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ucG9seWdvbkVuZCgpfX19KShbYS5zdHJlYW0oZT1uKSxzLnN0cmVhbShuKSxsLnN0cmVhbShuKV0pfSx1LnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYS5wcmVjaXNpb24odCkscy5wcmVjaXNpb24odCksbC5wcmVjaXNpb24odCksaCgpKTphLnByZWNpc2lvbigpfSx1LnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhLnNjYWxlKHQpLHMuc2NhbGUoLjM1KnQpLGwuc2NhbGUodCksdS50cmFuc2xhdGUoYS50cmFuc2xhdGUoKSkpOmEuc2NhbGUoKX0sdS50cmFuc2xhdGU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGEudHJhbnNsYXRlKCk7dmFyIGU9YS5zY2FsZSgpLG89K3RbMF0sdT0rdFsxXTtyZXR1cm4gbj1hLnRyYW5zbGF0ZSh0KS5jbGlwRXh0ZW50KFtbby0uNDU1KmUsdS0uMjM4KmVdLFtvKy40NTUqZSx1Ky4yMzgqZV1dKS5zdHJlYW0oYyksaT1zLnRyYW5zbGF0ZShbby0uMzA3KmUsdSsuMjAxKmVdKS5jbGlwRXh0ZW50KFtbby0uNDI1KmUrQXksdSsuMTIqZStBeV0sW28tLjIxNCplLUF5LHUrLjIzNCplLUF5XV0pLnN0cmVhbShjKSxyPWwudHJhbnNsYXRlKFtvLS4yMDUqZSx1Ky4yMTIqZV0pLmNsaXBFeHRlbnQoW1tvLS4yMTQqZStBeSx1Ky4xNjYqZStBeV0sW28tLjExNSplLUF5LHUrLjIzNCplLUF5XV0pLnN0cmVhbShjKSxoKCl9LHUuZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHh3KHUsdCxlKX0sdS5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHd3KHUsdCxlKX0sdS5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBTdyh1LHQsZSl9LHUuZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE13KHUsdCxlKX0sdS5zY2FsZSgxMDcwKX0sZ2VvQXppbXV0aGFsRXF1YWxBcmVhOmZ1bmN0aW9uIE1JKCl7cmV0dXJuIEx3KEJ3KS5zY2FsZSgxMjQuNzUpLmNsaXBBbmdsZSgxNzkuOTk5KX0sZ2VvQXppbXV0aGFsRXF1YWxBcmVhUmF3OkJ3LGdlb0F6aW11dGhhbEVxdWlkaXN0YW50OmZ1bmN0aW9uIEVJKCl7cmV0dXJuIEx3KEh3KS5zY2FsZSg3OS40MTg4KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LGdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3Okh3LGdlb0NvbmljQ29uZm9ybWFsOmZ1bmN0aW9uIFRJKCl7cmV0dXJuIE53KGp3KS5zY2FsZSgxMDkuNSkucGFyYWxsZWxzKFszMCwzMF0pfSxnZW9Db25pY0NvbmZvcm1hbFJhdzpqdyxnZW9Db25pY0VxdWFsQXJlYTpSdyxnZW9Db25pY0VxdWFsQXJlYVJhdzpJdyxnZW9Db25pY0VxdWlkaXN0YW50OmZ1bmN0aW9uIENJKCl7cmV0dXJuIE53KFd3KS5zY2FsZSgxMzEuMTU0KS5jZW50ZXIoWzAsMTMuOTM4OV0pfSxnZW9Db25pY0VxdWlkaXN0YW50UmF3Old3LGdlb0VxdWFsRWFydGg6ZnVuY3Rpb24gQUkoKXtyZXR1cm4gTHcoWncpLnNjYWxlKDE3Ny4xNTgpfSxnZW9FcXVhbEVhcnRoUmF3Olp3LGdlb0VxdWlyZWN0YW5ndWxhcjpmdW5jdGlvbiBrSSgpe3JldHVybiBMdyhHdykuc2NhbGUoMTUyLjYzKX0sZ2VvRXF1aXJlY3Rhbmd1bGFyUmF3Okd3LGdlb0dub21vbmljOmZ1bmN0aW9uIExJKCl7cmV0dXJuIEx3KEp3KS5zY2FsZSgxNDQuMDQ5KS5jbGlwQW5nbGUoNjApfSxnZW9Hbm9tb25pY1JhdzpKdyxnZW9JZGVudGl0eTpmdW5jdGlvbiBQSSgpe3ZhciB0LGUsbixpLHIsbyxhLHM9MSxsPTAsYz0wLHU9MSxoPTEsZD0wLHA9bnVsbCxmPTEsbT0xLGc9eXcoe3BvaW50OmZ1bmN0aW9uKHQsZSl7dmFyIG49dihbdCxlXSk7dGhpcy5zdHJlYW0ucG9pbnQoblswXSxuWzFdKX19KSxfPWd4O2Z1bmN0aW9uIHkoKXtyZXR1cm4gZj1zKnUsbT1zKmgsbz1hPW51bGwsdn1mdW5jdGlvbiB2KG4pe3ZhciBpPW5bMF0qZixyPW5bMV0qbTtpZihkKXt2YXIgbz1yKnQtaSplO2k9aSp0K3IqZSxyPW99cmV0dXJuW2krbCxyK2NdfXJldHVybiB2LmludmVydD1mdW5jdGlvbihuKXt2YXIgaT1uWzBdLWwscj1uWzFdLWM7aWYoZCl7dmFyIG89cip0K2kqZTtpPWkqdC1yKmUscj1vfXJldHVybltpL2Ysci9tXX0sdi5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuIG8mJmE9PT10P286bz1nKF8oYT10KSl9LHYucG9zdGNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89dCxwPW49aT1yPW51bGwseSgpKTpffSx2LmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89bnVsbD09dD8ocD1uPWk9cj1udWxsLGd4KTpXYihwPSt0WzBdWzBdLG49K3RbMF1bMV0saT0rdFsxXVswXSxyPSt0WzFdWzFdKSx5KCkpOm51bGw9PXA/bnVsbDpbW3Asbl0sW2kscl1dfSx2LnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LHkoKSk6c30sdi50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9K3RbMF0sYz0rdFsxXSx5KCkpOltsLGNdfSx2LmFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPUd5KGQ9biUzNjAqT3kpLHQ9SHkoZCkseSgpKTpkKlJ5fSx2LnJlZmxlY3RYPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PXQ/LTE6MSx5KCkpOnU8MH0sdi5yZWZsZWN0WT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD10Py0xOjEseSgpKTpoPDB9LHYuZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHh3KHYsdCxlKX0sdi5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHd3KHYsdCxlKX0sdi5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBTdyh2LHQsZSl9LHYuZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE13KHYsdCxlKX0sdn0sZ2VvUHJvamVjdGlvbjpMdyxnZW9Qcm9qZWN0aW9uTXV0YXRvcjpQdyxnZW9NZXJjYXRvcjpmdW5jdGlvbiBOSSgpe3JldHVybiBWdyhGdykuc2NhbGUoOTYxL0l5KX0sZ2VvTWVyY2F0b3JSYXc6RncsZ2VvTmF0dXJhbEVhcnRoMTpmdW5jdGlvbiBJSSgpe3JldHVybiBMdyhRdykuc2NhbGUoMTc1LjI5NSl9LGdlb05hdHVyYWxFYXJ0aDFSYXc6UXcsZ2VvT3J0aG9ncmFwaGljOmZ1bmN0aW9uIFJJKCl7cmV0dXJuIEx3KHRTKS5zY2FsZSgyNDkuNSkuY2xpcEFuZ2xlKDkwLjAwMDAwMSl9LGdlb09ydGhvZ3JhcGhpY1Jhdzp0UyxnZW9TdGVyZW9ncmFwaGljOmZ1bmN0aW9uIE9JKCl7cmV0dXJuIEx3KGVTKS5zY2FsZSgyNTApLmNsaXBBbmdsZSgxNDIpfSxnZW9TdGVyZW9ncmFwaGljUmF3OmVTLGdlb1RyYW5zdmVyc2VNZXJjYXRvcjpmdW5jdGlvbiB6SSgpe3ZhciB0PVZ3KG5TKSxlPXQuY2VudGVyLG49dC5yb3RhdGU7cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoWy10WzFdLHRbMF1dKTpbKHQ9ZSgpKVsxXSwtdFswXV19LHQucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oW3RbMF0sdFsxXSx0Lmxlbmd0aD4yP3RbMl0rOTA6OTBdKTpbKHQ9bigpKVswXSx0WzFdLHRbMl0tOTBdfSxuKFswLDAsOTBdKS5zY2FsZSgxNTkuMTU1KX0sZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yUmF3Om5TLGdlb1JvdGF0aW9uOkViLGdlb1N0cmVhbTppdixnZW9UcmFuc2Zvcm06ZnVuY3Rpb24gREkodCl7cmV0dXJue3N0cmVhbTp5dyh0KX19LGNsdXN0ZXI6ZnVuY3Rpb24gQkkoKXt2YXIgdD1pUyxlPTEsbj0xLGk9ITE7ZnVuY3Rpb24gcihyKXt2YXIgbyxhPTA7ci5lYWNoQWZ0ZXIoKGZ1bmN0aW9uKGUpe3ZhciBuPWUuY2hpbGRyZW47bj8oZS54PShmdW5jdGlvbiBpKHQpe3JldHVybiB0LnJlZHVjZShyUywwKS90Lmxlbmd0aH0pKG4pLGUueT0oZnVuY3Rpb24gcih0KXtyZXR1cm4gMSt0LnJlZHVjZShvUywwKX0pKG4pKTooZS54PW8/YSs9dChlLG8pOjAsZS55PTAsbz1lKX0pKTt2YXIgcz0oZnVuY3Rpb24gbCh0KXtmb3IodmFyIGU7ZT10LmNoaWxkcmVuOyl0PWVbMF07cmV0dXJuIHR9KShyKSxjPShmdW5jdGlvbiB1KHQpe2Zvcih2YXIgZTtlPXQuY2hpbGRyZW47KXQ9ZVtlLmxlbmd0aC0xXTtyZXR1cm4gdH0pKHIpLGg9cy54LXQocyxjKS8yLGQ9Yy54K3QoYyxzKS8yO3JldHVybiByLmVhY2hBZnRlcihpP2Z1bmN0aW9uKHQpe3QueD0odC54LXIueCkqZSx0Lnk9KHIueS10LnkpKm59OmZ1bmN0aW9uKHQpe3QueD0odC54LWgpLyhkLWgpKmUsdC55PSgxLShyLnk/dC55L3IueToxKSkqbn0pfXJldHVybiByLnNlcGFyYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxyKTp0fSxyLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ITEsZT0rdFswXSxuPSt0WzFdLHIpOmk/bnVsbDpbZSxuXX0sci5ub2RlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMCxlPSt0WzBdLG49K3RbMV0scik6aT9bZSxuXTpudWxsfSxyfSxoaWVyYXJjaHk6c1MscGFjazpmdW5jdGlvbiBISSgpe3ZhciB0PW51bGwsZT0xLG49MSxpPUZTO2Z1bmN0aW9uIHIocil7cmV0dXJuIHIueD1lLzIsci55PW4vMix0P3IuZWFjaEJlZm9yZShqUyh0KSkuZWFjaEFmdGVyKEdTKGksLjUpKS5lYWNoQmVmb3JlKFdTKDEpKTpyLmVhY2hCZWZvcmUoalMoVVMpKS5lYWNoQWZ0ZXIoR1MoRlMsMSkpLmVhY2hBZnRlcihHUyhpLHIuci9NYXRoLm1pbihlLG4pKSkuZWFjaEJlZm9yZShXUyhNYXRoLm1pbihlLG4pLygyKnIucikpKSxyfXJldHVybiByLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1CUyhlKSxyKTp0fSxyLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0sbj0rdFsxXSxyKTpbZSxuXX0sci5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VlMoK3QpLHIpOml9LHJ9LHBhY2tTaWJsaW5nczpmdW5jdGlvbiBGSSh0KXtyZXR1cm4gRFModCksdH0scGFja0VuY2xvc2U6RVMscGFydGl0aW9uOmZ1bmN0aW9uIFZJKCl7dmFyIHQ9MSxlPTEsbj0wLGk9ITE7ZnVuY3Rpb24gcihyKXt2YXIgbz1yLmhlaWdodCsxO3JldHVybiByLngwPXIueTA9bixyLngxPXQsci55MT1lL28sci5lYWNoQmVmb3JlKChmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGkpe2kuY2hpbGRyZW4mJllTKGksaS54MCx0KihpLmRlcHRoKzEpL2UsaS54MSx0KihpLmRlcHRoKzIpL2UpO3ZhciByPWkueDAsbz1pLnkwLGE9aS54MS1uLHM9aS55MS1uO2E8ciYmKHI9YT0ocithKS8yKSxzPG8mJihvPXM9KG8rcykvMiksaS54MD1yLGkueTA9byxpLngxPWEsaS55MT1zfX0pKGUsbykpLGkmJnIuZWFjaEJlZm9yZShxUykscn1yZXR1cm4gci5yb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hIXQscik6aX0sci5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStuWzBdLGU9K25bMV0scik6W3QsZV19LHIucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdCxyKTpufSxyfSxzdHJhdGlmeTpmdW5jdGlvbiBVSSgpe3ZhciB0PUtTLGU9WlM7ZnVuY3Rpb24gbihuKXt2YXIgaSxyLG8sYSxzLGwsYyx1PW4ubGVuZ3RoLGg9bmV3IEFycmF5KHUpLGQ9e307Zm9yKHI9MDtyPHU7KytyKXM9aFtyXT1uZXcgaFMoaT1uW3JdKSxudWxsIT0obD10KGkscixuKSkmJihsKz0iIikmJihkW2M9IiQiKyhzLmlkPWwpXT1jIGluIGQ/JFM6cyk7Zm9yKHI9MDtyPHU7KytyKWlmKHM9aFtyXSxudWxsIT0obD1lKG5bcl0scixuKSkmJihsKz0iIikpe2lmKCEoYT1kWyIkIitsXSkpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2wpO2lmKGE9PT0kUyl0aHJvdyBuZXcgRXJyb3IoImFtYmlndW91czogIitsKTthLmNoaWxkcmVuP2EuY2hpbGRyZW4ucHVzaChzKTphLmNoaWxkcmVuPVtzXSxzLnBhcmVudD1hfWVsc2V7aWYobyl0aHJvdyBuZXcgRXJyb3IoIm11bHRpcGxlIHJvb3RzIik7bz1zfWlmKCFvKXRocm93IG5ldyBFcnJvcigibm8gcm9vdCIpO2lmKG8ucGFyZW50PVhTLG8uZWFjaEJlZm9yZSgoZnVuY3Rpb24odCl7dC5kZXB0aD10LnBhcmVudC5kZXB0aCsxLC0tdX0pKS5lYWNoQmVmb3JlKHVTKSxvLnBhcmVudD1udWxsLHU+MCl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIik7cmV0dXJuIG99cmV0dXJuIG4uaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9SFMoZSksbik6dH0sbi5wYXJlbnRJZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1IUyh0KSxuKTplfSxufSx0cmVlOmZ1bmN0aW9uIGpJKCl7dmFyIHQ9SlMsZT0xLG49MSxpPW51bGw7ZnVuY3Rpb24gcihyKXt2YXIgbD0oZnVuY3Rpb24gYyh0KXtmb3IodmFyIGUsbixpLHIsbyxhPW5ldyBpTSh0LDApLHM9W2FdO2U9cy5wb3AoKTspaWYoaT1lLl8uY2hpbGRyZW4pZm9yKGUuY2hpbGRyZW49bmV3IEFycmF5KG89aS5sZW5ndGgpLHI9by0xO3I+PTA7LS1yKXMucHVzaChuPWUuY2hpbGRyZW5bcl09bmV3IGlNKGlbcl0scikpLG4ucGFyZW50PWU7cmV0dXJuKGEucGFyZW50PW5ldyBpTShudWxsLDApKS5jaGlsZHJlbj1bYV0sYX0pKHIpO2lmKGwuZWFjaEFmdGVyKG8pLGwucGFyZW50Lm09LWwueixsLmVhY2hCZWZvcmUoYSksaSlyLmVhY2hCZWZvcmUocyk7ZWxzZXt2YXIgdT1yLGg9cixkPXI7ci5lYWNoQmVmb3JlKChmdW5jdGlvbih0KXt0Lng8dS54JiYodT10KSx0Lng+aC54JiYoaD10KSx0LmRlcHRoPmQuZGVwdGgmJihkPXQpfSkpO3ZhciBwPXU9PT1oPzE6dCh1LGgpLzIsZj1wLXUueCxtPWUvKGgueCtwK2YpLGc9bi8oZC5kZXB0aHx8MSk7ci5lYWNoQmVmb3JlKChmdW5jdGlvbih0KXt0Lng9KHQueCtmKSptLHQueT10LmRlcHRoKmd9KSl9cmV0dXJuIHJ9ZnVuY3Rpb24gbyhlKXt2YXIgbj1lLmNoaWxkcmVuLGk9ZS5wYXJlbnQuY2hpbGRyZW4scj1lLmk/aVtlLmktMV06bnVsbDtpZihuKXshKGZ1bmN0aW9uIG8odCl7Zm9yKHZhciBlLG49MCxpPTAscj10LmNoaWxkcmVuLG89ci5sZW5ndGg7LS1vPj0wOykoZT1yW29dKS56Kz1uLGUubSs9bixuKz1lLnMrKGkrPWUuYyl9KShlKTt2YXIgYT0oblswXS56K25bbi5sZW5ndGgtMV0ueikvMjtyPyhlLno9ci56K3QoZS5fLHIuXyksZS5tPWUuei1hKTplLno9YX1lbHNlIHImJihlLno9ci56K3QoZS5fLHIuXykpO2UucGFyZW50LkE9KGZ1bmN0aW9uIHMoZSxuLGkpe2lmKG4pe2Zvcih2YXIgcixvPWUsYT1lLHM9bixsPW8ucGFyZW50LmNoaWxkcmVuWzBdLGM9by5tLHU9YS5tLGg9cy5tLGQ9bC5tO3M9dE0ocyksbz1RUyhvKSxzJiZvOylsPVFTKGwpLChhPXRNKGEpKS5hPWUsKHI9cy56K2gtby56LWMrdChzLl8sby5fKSk+MCYmKGVNKG5NKHMsZSxpKSxlLHIpLGMrPXIsdSs9ciksaCs9cy5tLGMrPW8ubSxkKz1sLm0sdSs9YS5tO3MmJiF0TShhKSYmKGEudD1zLGEubSs9aC11KSxvJiYhUVMobCkmJihsLnQ9byxsLm0rPWMtZCxpPWUpfXJldHVybiBpfSkoZSxyLGUucGFyZW50LkF8fGlbMF0pfWZ1bmN0aW9uIGEodCl7dC5fLng9dC56K3QucGFyZW50Lm0sdC5tKz10LnBhcmVudC5tfWZ1bmN0aW9uIHModCl7dC54Kj1lLHQueT10LmRlcHRoKm59cmV0dXJuIHIuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLHIpOnR9LHIuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMSxlPSt0WzBdLG49K3RbMV0scik6aT9udWxsOltlLG5dfSxyLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEwLGU9K3RbMF0sbj0rdFsxXSxyKTppP1tlLG5dOm51bGx9LHJ9LHRyZWVtYXA6ZnVuY3Rpb24gR0koKXt2YXIgdD1zTSxlPSExLG49MSxpPTEscj1bMF0sbz1GUyxhPUZTLHM9RlMsbD1GUyxjPUZTO2Z1bmN0aW9uIHUodCl7cmV0dXJuIHQueDA9dC55MD0wLHQueDE9bix0LnkxPWksdC5lYWNoQmVmb3JlKGgpLHI9WzBdLGUmJnQuZWFjaEJlZm9yZShxUyksdH1mdW5jdGlvbiBoKGUpe3ZhciBuPXJbZS5kZXB0aF0saT1lLngwK24sdT1lLnkwK24saD1lLngxLW4sZD1lLnkxLW47aDxpJiYoaT1oPShpK2gpLzIpLGQ8dSYmKHU9ZD0odStkKS8yKSxlLngwPWksZS55MD11LGUueDE9aCxlLnkxPWQsZS5jaGlsZHJlbiYmKG49cltlLmRlcHRoKzFdPW8oZSkvMixpKz1jKGUpLW4sdSs9YShlKS1uLChoLT1zKGUpLW4pPGkmJihpPWg9KGkraCkvMiksKGQtPWwoZSktbik8dSYmKHU9ZD0odStkKS8yKSx0KGUsaSx1LGgsZCkpfXJldHVybiB1LnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSEhdCx1KTplfSx1LnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3RbMF0saT0rdFsxXSx1KTpbbixpXX0sdS50aWxlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PUhTKGUpLHUpOnR9LHUucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD91LnBhZGRpbmdJbm5lcih0KS5wYWRkaW5nT3V0ZXIodCk6dS5wYWRkaW5nSW5uZXIoKX0sdS5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpWUygrdCksdSk6b30sdS5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dS5wYWRkaW5nVG9wKHQpLnBhZGRpbmdSaWdodCh0KS5wYWRkaW5nQm90dG9tKHQpLnBhZGRpbmdMZWZ0KHQpOnUucGFkZGluZ1RvcCgpfSx1LnBhZGRpbmdUb3A9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpWUygrdCksdSk6YX0sdS5wYWRkaW5nUmlnaHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpWUygrdCksdSk6c30sdS5wYWRkaW5nQm90dG9tPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VlMoK3QpLHUpOmx9LHUucGFkZGluZ0xlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpWUygrdCksdSk6Y30sdX0sdHJlZW1hcEJpbmFyeTpmdW5jdGlvbiBXSSh0LGUsbixpLHIpe3ZhciBvLGEscz10LmNoaWxkcmVuLGw9cy5sZW5ndGgsYz1uZXcgQXJyYXkobCsxKTtmb3IoY1swXT1hPW89MDtvPGw7KytvKWNbbysxXT1hKz1zW29dLnZhbHVlOyEoZnVuY3Rpb24gdChlLG4saSxyLG8sYSxsKXtpZihlPj1uLTEpe3ZhciB1PXNbZV07cmV0dXJuIHUueDA9cix1LnkwPW8sdS54MT1hLHZvaWQodS55MT1sKX1mb3IodmFyIGg9Y1tlXSxkPWkvMitoLHA9ZSsxLGY9bi0xO3A8Zjspe3ZhciBtPXArZj4+PjE7Y1ttXTxkP3A9bSsxOmY9bX1kLWNbcC0xXTxjW3BdLWQmJmUrMTxwJiYtLXA7dmFyIGc9Y1twXS1oLF89aS1nO2lmKGEtcj5sLW8pe3ZhciB5PShyKl8rYSpnKS9pO3QoZSxwLGcscixvLHksbCksdChwLG4sXyx5LG8sYSxsKX1lbHNle3ZhciB2PShvKl8rbCpnKS9pO3QoZSxwLGcscixvLGEsdiksdChwLG4sXyxyLHYsYSxsKX19KSgwLGwsdC52YWx1ZSxlLG4saSxyKX0sdHJlZW1hcERpY2U6WVMsdHJlZW1hcFNsaWNlOnJNLHRyZWVtYXBTbGljZURpY2U6ZnVuY3Rpb24gcUkodCxlLG4saSxyKXsoMSZ0LmRlcHRoP3JNOllTKSh0LGUsbixpLHIpfSx0cmVlbWFwU3F1YXJpZnk6c00sdHJlZW1hcFJlc3F1YXJpZnk6bE0saW50ZXJwb2xhdGU6amQsaW50ZXJwb2xhdGVBcnJheTpmdW5jdGlvbiBZSSh0LGUpe3JldHVybihPZChlKT9SZDp6ZCkodCxlKX0saW50ZXJwb2xhdGVCYXNpczpNZCxpbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkOkVkLGludGVycG9sYXRlRGF0ZTpEZCxpbnRlcnBvbGF0ZURpc2NyZXRlOmZ1bmN0aW9uIFhJKHQpe3ZhciBlPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdFtNYXRoLm1heCgwLE1hdGgubWluKGUtMSxNYXRoLmZsb29yKG4qZSkpKV19fSxpbnRlcnBvbGF0ZUh1ZTpmdW5jdGlvbiAkSSh0LGUpe3ZhciBuPUFkKCt0LCtlKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9bih0KTtyZXR1cm4gZS0zNjAqTWF0aC5mbG9vcihlLzM2MCl9fSxpbnRlcnBvbGF0ZU51bWJlcjpCZCxpbnRlcnBvbGF0ZU51bWJlckFycmF5OlJkLGludGVycG9sYXRlT2JqZWN0OkhkLGludGVycG9sYXRlUm91bmQ6R2QsaW50ZXJwb2xhdGVTdHJpbmc6VWQsaW50ZXJwb2xhdGVUcmFuc2Zvcm1Dc3M6UWQsaW50ZXJwb2xhdGVUcmFuc2Zvcm1Tdmc6ZXAsaW50ZXJwb2xhdGVab29tOm9wLGludGVycG9sYXRlUmdiOkxkLGludGVycG9sYXRlUmdiQmFzaXM6TmQsaW50ZXJwb2xhdGVSZ2JCYXNpc0Nsb3NlZDpJZCxpbnRlcnBvbGF0ZUhzbDpzcCxpbnRlcnBvbGF0ZUhzbExvbmc6bHAsaW50ZXJwb2xhdGVMYWI6Y3AsaW50ZXJwb2xhdGVIY2w6aHAsaW50ZXJwb2xhdGVIY2xMb25nOmRwLGludGVycG9sYXRlQ3ViZWhlbGl4OmdwLGludGVycG9sYXRlQ3ViZWhlbGl4TG9uZzpfcCxwaWVjZXdpc2U6ZnVuY3Rpb24gS0kodCxlKXtmb3IodmFyIG49MCxpPWUubGVuZ3RoLTEscj1lWzBdLG89bmV3IEFycmF5KGk8MD8wOmkpO248aTspb1tuXT10KHIscj1lWysrbl0pO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1NYXRoLm1heCgwLE1hdGgubWluKGktMSxNYXRoLmZsb29yKHQqPWkpKSk7cmV0dXJuIG9bZV0odC1lKX19LHF1YW50aXplOmZ1bmN0aW9uIFpJKHQsZSl7Zm9yKHZhciBuPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSluW2ldPXQoaS8oZS0xKSk7cmV0dXJuIG59LHBhdGg6ZmcscG9seWdvbkFyZWE6ZnVuY3Rpb24gSkkodCl7Zm9yKHZhciBlLG49LTEsaT10Lmxlbmd0aCxyPXRbaS0xXSxvPTA7KytuPGk7KW8rPShlPXIpWzFdKihyPXRbbl0pWzBdLWVbMF0qclsxXTtyZXR1cm4gby8yfSxwb2x5Z29uQ2VudHJvaWQ6ZnVuY3Rpb24gUUkodCl7Zm9yKHZhciBlLG4saT0tMSxyPXQubGVuZ3RoLG89MCxhPTAscz10W3ItMV0sbD0wOysraTxyOylsKz1uPShlPXMpWzBdKihzPXRbaV0pWzFdLXNbMF0qZVsxXSxvKz0oZVswXStzWzBdKSpuLGErPShlWzFdK3NbMV0pKm47cmV0dXJuW28vKGwqPTMpLGEvbF19LHBvbHlnb25IdWxsOmZ1bmN0aW9uIHRSKHQpe2lmKChuPXQubGVuZ3RoKTwzKXJldHVybiBudWxsO3ZhciBlLG4saT1uZXcgQXJyYXkobikscj1uZXcgQXJyYXkobik7Zm9yKGU9MDtlPG47KytlKWlbZV09Wyt0W2VdWzBdLCt0W2VdWzFdLGVdO2ZvcihpLnNvcnQodU0pLGU9MDtlPG47KytlKXJbZV09W2lbZV1bMF0sLWlbZV1bMV1dO3ZhciBvPWhNKGkpLGE9aE0ocikscz1hWzBdPT09b1swXSxsPWFbYS5sZW5ndGgtMV09PT1vW28ubGVuZ3RoLTFdLGM9W107Zm9yKGU9by5sZW5ndGgtMTtlPj0wOy0tZSljLnB1c2godFtpW29bZV1dWzJdXSk7Zm9yKGU9K3M7ZTxhLmxlbmd0aC1sOysrZSljLnB1c2godFtpW2FbZV1dWzJdXSk7cmV0dXJuIGN9LHBvbHlnb25Db250YWluczpmdW5jdGlvbiBlUih0LGUpe2Zvcih2YXIgbixpLHI9dC5sZW5ndGgsbz10W3ItMV0sYT1lWzBdLHM9ZVsxXSxsPW9bMF0sYz1vWzFdLHU9ITEsaD0wO2g8cjsrK2gpbj0obz10W2hdKVswXSwoaT1vWzFdKT5zIT1jPnMmJmE8KGwtbikqKHMtaSkvKGMtaSkrbiYmKHU9IXUpLGw9bixjPWk7cmV0dXJuIHV9LHBvbHlnb25MZW5ndGg6ZnVuY3Rpb24gblIodCl7Zm9yKHZhciBlLG4saT0tMSxyPXQubGVuZ3RoLG89dFtyLTFdLGE9b1swXSxzPW9bMV0sbD0wOysraTxyOyllPWEsbj1zLGUtPWE9KG89dFtpXSlbMF0sbi09cz1vWzFdLGwrPU1hdGguc3FydChlKmUrbipuKTtyZXR1cm4gbH0scXVhZHRyZWU6Tl8scmFuZG9tVW5pZm9ybTpwTSxyYW5kb21Ob3JtYWw6Zk0scmFuZG9tTG9nTm9ybWFsOm1NLHJhbmRvbUJhdGVzOl9NLHJhbmRvbUlyd2luSGFsbDpnTSxyYW5kb21FeHBvbmVudGlhbDp5TSxzY2FsZUJhbmQ6VE0sc2NhbGVQb2ludDpBTSxzY2FsZUlkZW50aXR5OmZ1bmN0aW9uIHQoZSl7dmFyIG47ZnVuY3Rpb24gaSh0KXtyZXR1cm4gaXNOYU4odD0rdCk/bjp0fXJldHVybiBpLmludmVydD1pLGkuZG9tYWluPWkucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9d00uY2FsbCh0LGtNKSxpKTplLnNsaWNlKCl9LGkudW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGkpOm59LGkuY29weT1mdW5jdGlvbigpe3JldHVybiB0KGUpLnVua25vd24obil9LGU9YXJndW1lbnRzLmxlbmd0aD93TS5jYWxsKGUsa00pOlswLDFdLEZNKGkpfSxzY2FsZUxpbmVhcjpWTSxzY2FsZUxvZzpLTSxzY2FsZVN5bWxvZzpmdW5jdGlvbiB0KCl7dmFyIGU9UU0oRE0oKSk7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiB6TShlLHQoKSkuY29uc3RhbnQoZS5jb25zdGFudCgpKX0sdk0uYXBwbHkoZSxhcmd1bWVudHMpfSxzY2FsZU9yZGluYWw6RU0sc2NhbGVJbXBsaWNpdDpNTSxzY2FsZVBvdzpyRSxzY2FsZVNxcnQ6ZnVuY3Rpb24gaVIoKXtyZXR1cm4gckUuYXBwbHkobnVsbCxhcmd1bWVudHMpLmV4cG9uZW50KC41KX0sc2NhbGVRdWFudGlsZTpvRSxzY2FsZVF1YW50aXplOmFFLHNjYWxlVGhyZXNob2xkOmZ1bmN0aW9uIHQoKXt2YXIgZSxuPVsuNV0saT1bMCwxXSxyPTE7ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdDw9dD9pW1NsKG4sdCwwLHIpXTplfXJldHVybiBvLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1TTS5jYWxsKHQpLHI9TWF0aC5taW4obi5sZW5ndGgsaS5sZW5ndGgtMSksbyk6bi5zbGljZSgpfSxvLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVNNLmNhbGwodCkscj1NYXRoLm1pbihuLmxlbmd0aCxpLmxlbmd0aC0xKSxvKTppLnNsaWNlKCl9LG8uaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3ZhciBlPWkuaW5kZXhPZih0KTtyZXR1cm5bbltlLTFdLG5bZV1dfSxvLnVua25vd249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxvKTplfSxvLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLmRvbWFpbihuKS5yYW5nZShpKS51bmtub3duKGUpfSx2TS5hcHBseShvLGFyZ3VtZW50cyl9LHNjYWxlVGltZTpjQSxzY2FsZVV0YzpmdW5jdGlvbiByUigpe3JldHVybiB2TS5hcHBseShsQShFVCx3VCxzVCxyVCxlVCxKRSx2RSxoRSxSVCkuZG9tYWluKFtEYXRlLlVUQygyZTMsMCwxKSxEYXRlLlVUQygyZTMsMCwyKV0pLGFyZ3VtZW50cyl9LHNjYWxlU2VxdWVudGlhbDpmdW5jdGlvbiB0KCl7dmFyIGU9Rk0odUEoKShQTSkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gaEEoZSx0KCkpfSxiTS5hcHBseShlLGFyZ3VtZW50cyl9LHNjYWxlU2VxdWVudGlhbExvZzpmdW5jdGlvbiB0KCl7dmFyIGU9JE0odUEoKSkuZG9tYWluKFsxLDEwXSk7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiBoQShlLHQoKSkuYmFzZShlLmJhc2UoKSl9LGJNLmFwcGx5KGUsYXJndW1lbnRzKX0sc2NhbGVTZXF1ZW50aWFsUG93OmRBLHNjYWxlU2VxdWVudGlhbFNxcnQ6ZnVuY3Rpb24gb1IoKXtyZXR1cm4gZEEuYXBwbHkobnVsbCxhcmd1bWVudHMpLmV4cG9uZW50KC41KX0sc2NhbGVTZXF1ZW50aWFsU3ltbG9nOmZ1bmN0aW9uIHQoKXt2YXIgZT1RTSh1QSgpKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGhBKGUsdCgpKS5jb25zdGFudChlLmNvbnN0YW50KCkpfSxiTS5hcHBseShlLGFyZ3VtZW50cyl9LHNjYWxlU2VxdWVudGlhbFF1YW50aWxlOmZ1bmN0aW9uIHQoKXt2YXIgZT1bXSxuPVBNO2Z1bmN0aW9uIGkodCl7aWYoIWlzTmFOKHQ9K3QpKXJldHVybiBuKChTbChlLHQpLTEpLyhlLmxlbmd0aC0xKSl9cmV0dXJuIGkuZG9tYWluPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlLnNsaWNlKCk7ZT1bXTtmb3IodmFyIG4scj0wLG89dC5sZW5ndGg7cjxvOysrciludWxsPT0obj10W3JdKXx8aXNOYU4obj0rbil8fGUucHVzaChuKTtyZXR1cm4gZS5zb3J0KGJsKSxpfSxpLmludGVycG9sYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGkpOm59LGkuY29weT1mdW5jdGlvbigpe3JldHVybiB0KG4pLmRvbWFpbihlKX0sYk0uYXBwbHkoaSxhcmd1bWVudHMpfSxzY2FsZURpdmVyZ2luZzpmdW5jdGlvbiB0KCl7dmFyIGU9Rk0ocEEoKShQTSkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gaEEoZSx0KCkpfSxiTS5hcHBseShlLGFyZ3VtZW50cyl9LHNjYWxlRGl2ZXJnaW5nTG9nOmZ1bmN0aW9uIHQoKXt2YXIgZT0kTShwQSgpKS5kb21haW4oWy4xLDEsMTBdKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGhBKGUsdCgpKS5iYXNlKGUuYmFzZSgpKX0sYk0uYXBwbHkoZSxhcmd1bWVudHMpfSxzY2FsZURpdmVyZ2luZ1BvdzpmQSxzY2FsZURpdmVyZ2luZ1NxcnQ6ZnVuY3Rpb24gYVIoKXtyZXR1cm4gZkEuYXBwbHkobnVsbCxhcmd1bWVudHMpLmV4cG9uZW50KC41KX0sc2NhbGVEaXZlcmdpbmdTeW1sb2c6ZnVuY3Rpb24gdCgpe3ZhciBlPVFNKHBBKCkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gaEEoZSx0KCkpLmNvbnN0YW50KGUuY29uc3RhbnQoKSl9LGJNLmFwcGx5KGUsYXJndW1lbnRzKX0sdGlja0Zvcm1hdDpITSxzY2hlbWVDYXRlZ29yeTEwOmdBLHNjaGVtZUFjY2VudDpfQSxzY2hlbWVEYXJrMjp5QSxzY2hlbWVQYWlyZWQ6dkEsc2NoZW1lUGFzdGVsMTpiQSxzY2hlbWVQYXN0ZWwyOnhBLHNjaGVtZVNldDE6d0Esc2NoZW1lU2V0MjpTQSxzY2hlbWVTZXQzOk1BLHNjaGVtZVRhYmxlYXUxMDpFQSxpbnRlcnBvbGF0ZUJyQkc6QUEsc2NoZW1lQnJCRzpDQSxpbnRlcnBvbGF0ZVBSR246TEEsc2NoZW1lUFJHbjprQSxpbnRlcnBvbGF0ZVBpWUc6TkEsc2NoZW1lUGlZRzpQQSxpbnRlcnBvbGF0ZVB1T3I6UkEsc2NoZW1lUHVPcjpJQSxpbnRlcnBvbGF0ZVJkQnU6ekEsc2NoZW1lUmRCdTpPQSxpbnRlcnBvbGF0ZVJkR3k6QkEsc2NoZW1lUmRHeTpEQSxpbnRlcnBvbGF0ZVJkWWxCdTpGQSxzY2hlbWVSZFlsQnU6SEEsaW50ZXJwb2xhdGVSZFlsR246VUEsc2NoZW1lUmRZbEduOlZBLGludGVycG9sYXRlU3BlY3RyYWw6R0Esc2NoZW1lU3BlY3RyYWw6akEsaW50ZXJwb2xhdGVCdUduOnFBLHNjaGVtZUJ1R246V0EsaW50ZXJwb2xhdGVCdVB1OlhBLHNjaGVtZUJ1UHU6WUEsaW50ZXJwb2xhdGVHbkJ1OktBLHNjaGVtZUduQnU6JEEsaW50ZXJwb2xhdGVPclJkOkpBLHNjaGVtZU9yUmQ6WkEsaW50ZXJwb2xhdGVQdUJ1R246dGssc2NoZW1lUHVCdUduOlFBLGludGVycG9sYXRlUHVCdTpuayxzY2hlbWVQdUJ1OmVrLGludGVycG9sYXRlUHVSZDpyayxzY2hlbWVQdVJkOmlrLGludGVycG9sYXRlUmRQdTphayxzY2hlbWVSZFB1Om9rLGludGVycG9sYXRlWWxHbkJ1OmxrLHNjaGVtZVlsR25CdTpzayxpbnRlcnBvbGF0ZVlsR246dWssc2NoZW1lWWxHbjpjayxpbnRlcnBvbGF0ZVlsT3JCcjpkayxzY2hlbWVZbE9yQnI6aGssaW50ZXJwb2xhdGVZbE9yUmQ6Zmssc2NoZW1lWWxPclJkOnBrLGludGVycG9sYXRlQmx1ZXM6Z2ssc2NoZW1lQmx1ZXM6bWssaW50ZXJwb2xhdGVHcmVlbnM6eWssc2NoZW1lR3JlZW5zOl9rLGludGVycG9sYXRlR3JleXM6Ymssc2NoZW1lR3JleXM6dmssaW50ZXJwb2xhdGVQdXJwbGVzOndrLHNjaGVtZVB1cnBsZXM6eGssaW50ZXJwb2xhdGVSZWRzOk1rLHNjaGVtZVJlZHM6U2ssaW50ZXJwb2xhdGVPcmFuZ2VzOlRrLHNjaGVtZU9yYW5nZXM6RWssaW50ZXJwb2xhdGVDaXZpZGlzOmZ1bmN0aW9uIHNSKHQpe3JldHVybiB0PU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksInJnYigiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoLTQuNTQtdCooMzUuMzQtdCooMjM4MS43My10Kig2NDAyLjctdCooNzAyNC43Mi0yNzEwLjU3KnQpKSkpKSkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgzMi40OSt0KigxNzAuNzMrdCooNTIuODItdCooMTMxLjQ2LXQqKDE3Ni41OC02Ny4zNyp0KSkpKSkpKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoODEuMjQrdCooNDQyLjM2LXQqKDI0ODIuNDMtdCooNjE2Ny4yNC10Kig2NjE0Ljk0LTI0NzUuNjcqdCkpKSkpKSkrIikifSxpbnRlcnBvbGF0ZUN1YmVoZWxpeERlZmF1bHQ6Q2ssaW50ZXJwb2xhdGVSYWluYm93OmZ1bmN0aW9uIGxSKHQpeyh0PDB8fHQ+MSkmJih0LT1NYXRoLmZsb29yKHQpKTt2YXIgZT1NYXRoLmFicyh0LS41KTtyZXR1cm4gTGsuaD0zNjAqdC0xMDAsTGsucz0xLjUtMS41KmUsTGsubD0uOC0uOSplLExrKyIifSxpbnRlcnBvbGF0ZVdhcm06QWssaW50ZXJwb2xhdGVDb29sOmtrLGludGVycG9sYXRlU2luZWJvdzpmdW5jdGlvbiBjUih0KXt2YXIgZTtyZXR1cm4gdD0oLjUtdCkqTWF0aC5QSSxQay5yPTI1NSooZT1NYXRoLnNpbih0KSkqZSxQay5nPTI1NSooZT1NYXRoLnNpbih0K05rKSkqZSxQay5iPTI1NSooZT1NYXRoLnNpbih0K0lrKSkqZSxQaysiIn0saW50ZXJwb2xhdGVUdXJibzpmdW5jdGlvbiB1Uih0KXtyZXR1cm4gdD1NYXRoLm1heCgwLE1hdGgubWluKDEsdCkpLCJyZ2IoIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKDM0LjYxK3QqKDExNzIuMzMtdCooMTA3OTMuNTYtdCooMzMzMDAuMTItdCooMzgzOTQuNDktMTQ4MjUuMDUqdCkpKSkpKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKDIzLjMxK3QqKDU1Ny4zMyt0KigxMjI1LjMzLXQqKDM1NzQuOTYtdCooMTA3My43Nys3MDcuNTYqdCkpKSkpKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKDI3LjIrdCooMzIxMS4xLXQqKDE1MzI3Ljk3LXQqKDI3ODE0LXQqKDIyNTY5LjE4LTY4MzguNjYqdCkpKSkpKSkrIikifSxpbnRlcnBvbGF0ZVZpcmlkaXM6T2ssaW50ZXJwb2xhdGVNYWdtYTp6ayxpbnRlcnBvbGF0ZUluZmVybm86RGssaW50ZXJwb2xhdGVQbGFzbWE6QmssY3JlYXRlOmZ1bmN0aW9uIGhSKHQpe3JldHVybiBTdSh5Yyh0KS5jYWxsKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpfSxjcmVhdG9yOnljLGxvY2FsOm5oLG1hdGNoZXI6U2MsbW91c2U6YWgsbmFtZXNwYWNlOm1jLG5hbWVzcGFjZXM6ZmMsY2xpZW50UG9pbnQ6b2gsc2VsZWN0OlN1LHNlbGVjdEFsbDpzaCxzZWxlY3Rpb246d3Usc2VsZWN0b3I6YmMsc2VsZWN0b3JBbGw6d2Msc3R5bGU6SGMsdG91Y2g6bGgsdG91Y2hlczpmdW5jdGlvbiBkUih0LGUpe251bGw9PWUmJihlPXJoKCkudG91Y2hlcyk7Zm9yKHZhciBuPTAsaT1lP2UubGVuZ3RoOjAscj1uZXcgQXJyYXkoaSk7bjxpOysrbilyW25dPW9oKHQsZVtuXSk7cmV0dXJuIHJ9LHdpbmRvdzpPYyxnZXQgZXZlbnQoKXtyZXR1cm4gdXV9LGN1c3RvbUV2ZW50Omd1LGFyYzpmdW5jdGlvbiBwUigpe3ZhciB0PVFrLGU9dEwsbj1IaygwKSxpPW51bGwscj1lTCxvPW5MLGE9aUwscz1udWxsO2Z1bmN0aW9uIGwoKXt2YXIgbCxjLHU9K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpLGg9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLGQ9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyktJGsscD1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS0kayxmPUZrKHAtZCksbT1wPmQ7aWYoc3x8KHM9bD1mZygpKSxoPHUmJihjPWgsaD11LHU9YyksaD5ZaylpZihmPktrLVlrKXMubW92ZVRvKGgqVWsoZCksaCpXayhkKSkscy5hcmMoMCwwLGgsZCxwLCFtKSx1PllrJiYocy5tb3ZlVG8odSpVayhwKSx1KldrKHApKSxzLmFyYygwLDAsdSxwLGQsbSkpO2Vsc2V7dmFyIGcsXyx5PWQsdj1wLGI9ZCx4PXAsdz1mLFM9ZixNPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsRT1NPllrJiYoaT8raS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6cWsodSp1K2gqaCkpLFQ9R2soRmsoaC11KS8yLCtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksQz1ULEE9VDtpZihFPllrKXt2YXIgaz1KayhFL3UqV2soTSkpLEw9SmsoRS9oKldrKE0pKTsody09MiprKT5Zaz8oYis9ayo9bT8xOi0xLHgtPWspOih3PTAsYj14PShkK3ApLzIpLChTLT0yKkwpPllrPyh5Kz1MKj1tPzE6LTEsdi09TCk6KFM9MCx5PXY9KGQrcCkvMil9dmFyIFA9aCpVayh5KSxOPWgqV2soeSksST11KlVrKHgpLFI9dSpXayh4KTtpZihUPllrKXt2YXIgTyx6PWgqVWsodiksRD1oKldrKHYpLEI9dSpVayhiKSxIPXUqV2soYik7aWYoZjxYayYmKE89ckwoUCxOLEIsSCx6LEQsSSxSKSkpe3ZhciBGPVAtT1swXSxWPU4tT1sxXSxVPXotT1swXSxqPUQtT1sxXSxHPTEvV2soWmsoKEYqVStWKmopLyhxayhGKkYrVipWKSpxayhVKlUraipqKSkpLzIpLFc9cWsoT1swXSpPWzBdK09bMV0qT1sxXSk7Qz1HayhULCh1LVcpLyhHLTEpKSxBPUdrKFQsKGgtVykvKEcrMSkpfX1TPllrP0E+WWs/KGc9b0woQixILFAsTixoLEEsbSksXz1vTCh6LEQsSSxSLGgsQSxtKSxzLm1vdmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEE8VD9zLmFyYyhnLmN4LGcuY3ksQSxWayhnLnkwMSxnLngwMSksVmsoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEEsVmsoZy55MDEsZy54MDEpLFZrKGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLGgsVmsoZy5jeStnLnkxMSxnLmN4K2cueDExKSxWayhfLmN5K18ueTExLF8uY3grXy54MTEpLCFtKSxzLmFyYyhfLmN4LF8uY3ksQSxWayhfLnkxMSxfLngxMSksVmsoXy55MDEsXy54MDEpLCFtKSkpOihzLm1vdmVUbyhQLE4pLHMuYXJjKDAsMCxoLHksdiwhbSkpOnMubW92ZVRvKFAsTiksdT5ZayYmdz5Zaz9DPllrPyhnPW9MKEksUix6LEQsdSwtQyxtKSxfPW9MKFAsTixCLEgsdSwtQyxtKSxzLmxpbmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEM8VD9zLmFyYyhnLmN4LGcuY3ksQyxWayhnLnkwMSxnLngwMSksVmsoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEMsVmsoZy55MDEsZy54MDEpLFZrKGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLHUsVmsoZy5jeStnLnkxMSxnLmN4K2cueDExKSxWayhfLmN5K18ueTExLF8uY3grXy54MTEpLG0pLHMuYXJjKF8uY3gsXy5jeSxDLFZrKF8ueTExLF8ueDExKSxWayhfLnkwMSxfLngwMSksIW0pKSk6cy5hcmMoMCwwLHUseCxiLG0pOnMubGluZVRvKEksUil9ZWxzZSBzLm1vdmVUbygwLDApO2lmKHMuY2xvc2VQYXRoKCksbClyZXR1cm4gcz1udWxsLGwrIiJ8fG51bGx9cmV0dXJuIGwuY2VudHJvaWQ9ZnVuY3Rpb24oKXt2YXIgbj0oK3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzIsaT0oK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArby5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzItWGsvMjtyZXR1cm5bVWsoaSkqbixXayhpKSpuXX0sbC5pbm5lclJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOkhrKCtlKSxsKTp0fSxsLm91dGVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGwpOmV9LGwuY29ybmVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGwpOm59LGwucGFkUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxsKTppfSxsLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIaygrdCksbCk6cn0sbC5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxsKTpvfSxsLnBhZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGwpOmF9LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1udWxsPT10P251bGw6dCxsKTpzfSxsfSxhcmVhOmhMLGxpbmU6dUwscGllOmZ1bmN0aW9uIGZSKCl7dmFyIHQ9cEwsZT1kTCxuPW51bGwsaT1IaygwKSxyPUhrKEtrKSxvPUhrKDApO2Z1bmN0aW9uIGEoYSl7dmFyIHMsbCxjLHUsaCxkPWEubGVuZ3RoLHA9MCxmPW5ldyBBcnJheShkKSxtPW5ldyBBcnJheShkKSxnPStpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxfPU1hdGgubWluKEtrLE1hdGgubWF4KC1LayxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1nKSkseT1NYXRoLm1pbihNYXRoLmFicyhfKS9kLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKSx2PXkqKF88MD8tMToxKTtmb3Iocz0wO3M8ZDsrK3MpKGg9bVtmW3NdPXNdPSt0KGFbc10scyxhKSk+MCYmKHArPWgpO2ZvcihudWxsIT1lP2Yuc29ydCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZShtW3RdLG1bbl0pfSkpOm51bGwhPW4mJmYuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbihhW3RdLGFbZV0pfSkpLHM9MCxjPXA/KF8tZCp2KS9wOjA7czxkOysrcyxnPXUpbVtsPWZbc11dPXtkYXRhOmFbbF0saW5kZXg6cyx2YWx1ZTpoPW1bbF0sc3RhcnRBbmdsZTpnLGVuZEFuZ2xlOnU9ZysoaD4wP2gqYzowKSt2LHBhZEFuZ2xlOnl9O3JldHVybiBtfXJldHVybiBhLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6SGsoK2UpLGEpOnR9LGEuc29ydFZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG49bnVsbCxhKTplfSxhLnNvcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxlPW51bGwsYSk6bn0sYS5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SGsoK3QpLGEpOml9LGEuZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIaygrdCksYSk6cn0sYS5wYWRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxhKTpvfSxhfSxhcmVhUmFkaWFsOnZMLHJhZGlhbEFyZWE6dkwsbGluZVJhZGlhbDp5TCxyYWRpYWxMaW5lOnlMLHBvaW50UmFkaWFsOmJMLGxpbmtIb3Jpem9udGFsOmZ1bmN0aW9uIG1SKCl7cmV0dXJuIE1MKEVMKX0sbGlua1ZlcnRpY2FsOmZ1bmN0aW9uIGdSKCl7cmV0dXJuIE1MKFRMKX0sbGlua1JhZGlhbDpmdW5jdGlvbiBfUigpe3ZhciB0PU1MKENMKTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0fSxzeW1ib2w6ZnVuY3Rpb24geVIoKXt2YXIgdD1IayhBTCksZT1Iayg2NCksbj1udWxsO2Z1bmN0aW9uIGkoKXt2YXIgaTtpZihufHwobj1pPWZnKCkpLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLmRyYXcobiwrZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGkpcmV0dXJuIG49bnVsbCxpKyIifHxudWxsfXJldHVybiBpLnR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpIayhlKSxpKTp0fSxpLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIaygrdCksaSk6ZX0saS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/bnVsbDp0LGkpOm59LGl9LHN5bWJvbHM6V0wsc3ltYm9sQ2lyY2xlOkFMLHN5bWJvbENyb3NzOmtMLHN5bWJvbERpYW1vbmQ6Tkwsc3ltYm9sU3F1YXJlOkRMLHN5bWJvbFN0YXI6ekwsc3ltYm9sVHJpYW5nbGU6SEwsc3ltYm9sV3llOkdMLGN1cnZlQmFzaXNDbG9zZWQ6ZnVuY3Rpb24gdlIodCl7cmV0dXJuIG5ldyBLTCh0KX0sY3VydmVCYXNpc09wZW46ZnVuY3Rpb24gYlIodCl7cmV0dXJuIG5ldyBaTCh0KX0sY3VydmVCYXNpczokTCxjdXJ2ZUJ1bmRsZTpRTCxjdXJ2ZUNhcmRpbmFsQ2xvc2VkOnJQLGN1cnZlQ2FyZGluYWxPcGVuOmFQLGN1cnZlQ2FyZGluYWw6blAsY3VydmVDYXRtdWxsUm9tQ2xvc2VkOmhQLGN1cnZlQ2F0bXVsbFJvbU9wZW46cFAsY3VydmVDYXRtdWxsUm9tOmNQLGN1cnZlTGluZWFyQ2xvc2VkOmZ1bmN0aW9uIHhSKHQpe3JldHVybiBuZXcgZlAodCl9LGN1cnZlTGluZWFyOnNMLGN1cnZlTW9ub3RvbmVYOmZ1bmN0aW9uIHdSKHQpe3JldHVybiBuZXcgdlAodCl9LGN1cnZlTW9ub3RvbmVZOmZ1bmN0aW9uIFNSKHQpe3JldHVybiBuZXcgYlAodCl9LGN1cnZlTmF0dXJhbDpmdW5jdGlvbiBNUih0KXtyZXR1cm4gbmV3IHdQKHQpfSxjdXJ2ZVN0ZXA6ZnVuY3Rpb24gRVIodCl7cmV0dXJuIG5ldyBNUCh0LC41KX0sY3VydmVTdGVwQWZ0ZXI6ZnVuY3Rpb24gVFIodCl7cmV0dXJuIG5ldyBNUCh0LDEpfSxjdXJ2ZVN0ZXBCZWZvcmU6ZnVuY3Rpb24gQ1IodCl7cmV0dXJuIG5ldyBNUCh0LDApfSxzdGFjazpmdW5jdGlvbiBBUigpe3ZhciB0PUhrKFtdKSxlPVRQLG49RVAsaT1DUDtmdW5jdGlvbiByKHIpe3ZhciBvLGEscz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxsPXIubGVuZ3RoLGM9cy5sZW5ndGgsdT1uZXcgQXJyYXkoYyk7Zm9yKG89MDtvPGM7KytvKXtmb3IodmFyIGgsZD1zW29dLHA9dVtvXT1uZXcgQXJyYXkobCksZj0wO2Y8bDsrK2YpcFtmXT1oPVswLCtpKHJbZl0sZCxmLHIpXSxoLmRhdGE9cltmXTtwLmtleT1kfWZvcihvPTAsYT1lKHUpO288YzsrK28pdVthW29dXS5pbmRleD1vO3JldHVybiBuKHUsYSksdX1yZXR1cm4gci5rZXlzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6SGsoeEwuY2FsbChlKSkscik6dH0sci52YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkhrKCt0KSxyKTppfSxyLm9yZGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW51bGw9PXQ/VFA6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpIayh4TC5jYWxsKHQpKSxyKTplfSxyLm9mZnNldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P0VQOnQscik6bn0scn0sc3RhY2tPZmZzZXRFeHBhbmQ6ZnVuY3Rpb24ga1IodCxlKXtpZigoaT10Lmxlbmd0aCk+MCl7Zm9yKHZhciBuLGkscixvPTAsYT10WzBdLmxlbmd0aDtvPGE7KytvKXtmb3Iocj1uPTA7bjxpOysrbilyKz10W25dW29dWzFdfHwwO2lmKHIpZm9yKG49MDtuPGk7KytuKXRbbl1bb11bMV0vPXJ9RVAodCxlKX19LHN0YWNrT2Zmc2V0RGl2ZXJnaW5nOmZ1bmN0aW9uIExSKHQsZSl7aWYoKHM9dC5sZW5ndGgpPjApZm9yKHZhciBuLGkscixvLGEscyxsPTAsYz10W2VbMF1dLmxlbmd0aDtsPGM7KytsKWZvcihvPWE9MCxuPTA7bjxzOysrbikocj0oaT10W2Vbbl1dW2xdKVsxXS1pWzBdKT4wPyhpWzBdPW8saVsxXT1vKz1yKTpyPDA/KGlbMV09YSxpWzBdPWErPXIpOihpWzBdPTAsaVsxXT1yKX0sc3RhY2tPZmZzZXROb25lOkVQLHN0YWNrT2Zmc2V0U2lsaG91ZXR0ZTpmdW5jdGlvbiBQUih0LGUpe2lmKChuPXQubGVuZ3RoKT4wKXtmb3IodmFyIG4saT0wLHI9dFtlWzBdXSxvPXIubGVuZ3RoO2k8bzsrK2kpe2Zvcih2YXIgYT0wLHM9MDthPG47KythKXMrPXRbYV1baV1bMV18fDA7cltpXVsxXSs9cltpXVswXT0tcy8yfUVQKHQsZSl9fSxzdGFja09mZnNldFdpZ2dsZTpmdW5jdGlvbiBOUih0LGUpe2lmKChyPXQubGVuZ3RoKT4wJiYoaT0obj10W2VbMF1dKS5sZW5ndGgpPjApe2Zvcih2YXIgbixpLHIsbz0wLGE9MTthPGk7KythKXtmb3IodmFyIHM9MCxsPTAsYz0wO3M8cjsrK3Mpe2Zvcih2YXIgdT10W2Vbc11dLGg9dVthXVsxXXx8MCxkPShoLSh1W2EtMV1bMV18fDApKS8yLHA9MDtwPHM7KytwKXt2YXIgZj10W2VbcF1dO2QrPShmW2FdWzFdfHwwKS0oZlthLTFdWzFdfHwwKX1sKz1oLGMrPWQqaH1uW2EtMV1bMV0rPW5bYS0xXVswXT1vLGwmJihvLT1jL2wpfW5bYS0xXVsxXSs9blthLTFdWzBdPW8sRVAodCxlKX19LHN0YWNrT3JkZXJBcHBlYXJhbmNlOkFQLHN0YWNrT3JkZXJBc2NlbmRpbmc6TFAsc3RhY2tPcmRlckRlc2NlbmRpbmc6ZnVuY3Rpb24gSVIodCl7cmV0dXJuIExQKHQpLnJldmVyc2UoKX0sc3RhY2tPcmRlckluc2lkZU91dDpmdW5jdGlvbiBSUih0KXt2YXIgZSxuLGk9dC5sZW5ndGgscj10Lm1hcChQUCksbz1BUCh0KSxhPTAscz0wLGw9W10sYz1bXTtmb3IoZT0wO2U8aTsrK2Upbj1vW2VdLGE8cz8oYSs9cltuXSxsLnB1c2gobikpOihzKz1yW25dLGMucHVzaChuKSk7cmV0dXJuIGMucmV2ZXJzZSgpLmNvbmNhdChsKX0sc3RhY2tPcmRlck5vbmU6VFAsc3RhY2tPcmRlclJldmVyc2U6ZnVuY3Rpb24gT1IodCl7cmV0dXJuIFRQKHQpLnJldmVyc2UoKX0sdGltZUludGVydmFsOmNFLHRpbWVNaWxsaXNlY29uZDpoRSx0aW1lTWlsbGlzZWNvbmRzOmRFLHV0Y01pbGxpc2Vjb25kOmhFLHV0Y01pbGxpc2Vjb25kczpkRSx0aW1lU2Vjb25kOnZFLHRpbWVTZWNvbmRzOmJFLHV0Y1NlY29uZDp2RSx1dGNTZWNvbmRzOmJFLHRpbWVNaW51dGU6d0UsdGltZU1pbnV0ZXM6U0UsdGltZUhvdXI6RUUsdGltZUhvdXJzOlRFLHRpbWVEYXk6QUUsdGltZURheXM6a0UsdGltZVdlZWs6UEUsdGltZVdlZWtzOkJFLHRpbWVTdW5kYXk6UEUsdGltZVN1bmRheXM6QkUsdGltZU1vbmRheTpORSx0aW1lTW9uZGF5czpIRSx0aW1lVHVlc2RheTpJRSx0aW1lVHVlc2RheXM6RkUsdGltZVdlZG5lc2RheTpSRSx0aW1lV2VkbmVzZGF5czpWRSx0aW1lVGh1cnNkYXk6T0UsdGltZVRodXJzZGF5czpVRSx0aW1lRnJpZGF5OnpFLHRpbWVGcmlkYXlzOmpFLHRpbWVTYXR1cmRheTpERSx0aW1lU2F0dXJkYXlzOkdFLHRpbWVNb250aDpxRSx0aW1lTW9udGhzOllFLHRpbWVZZWFyOiRFLHRpbWVZZWFyczpLRSx1dGNNaW51dGU6SkUsdXRjTWludXRlczpRRSx1dGNIb3VyOmVULHV0Y0hvdXJzOm5ULHV0Y0RheTpyVCx1dGNEYXlzOm9ULHV0Y1dlZWs6c1QsdXRjV2Vla3M6ZlQsdXRjU3VuZGF5OnNULHV0Y1N1bmRheXM6ZlQsdXRjTW9uZGF5OmxULHV0Y01vbmRheXM6bVQsdXRjVHVlc2RheTpjVCx1dGNUdWVzZGF5czpnVCx1dGNXZWRuZXNkYXk6dVQsdXRjV2VkbmVzZGF5czpfVCx1dGNUaHVyc2RheTpoVCx1dGNUaHVyc2RheXM6eVQsdXRjRnJpZGF5OmRULHV0Y0ZyaWRheXM6dlQsdXRjU2F0dXJkYXk6cFQsdXRjU2F0dXJkYXlzOmJULHV0Y01vbnRoOndULHV0Y01vbnRoczpTVCx1dGNZZWFyOkVULHV0Y1llYXJzOlRULHRpbWVGb3JtYXREZWZhdWx0TG9jYWxlOlFDLGdldCB0aW1lRm9ybWF0KCl7cmV0dXJuIE5UfSxnZXQgdGltZVBhcnNlKCl7cmV0dXJuIElUfSxnZXQgdXRjRm9ybWF0KCl7cmV0dXJuIFJUfSxnZXQgdXRjUGFyc2UoKXtyZXR1cm4gT1R9LHRpbWVGb3JtYXRMb2NhbGU6TFQsaXNvRm9ybWF0OmVBLGlzb1BhcnNlOmlBLG5vdzpUcCx0aW1lcjprcCx0aW1lckZsdXNoOkxwLHRpbWVvdXQ6UnAsaW50ZXJ2YWw6ZnVuY3Rpb24gelIodCxlLG4pe3ZhciBpPW5ldyBBcCxyPWU7cmV0dXJuIG51bGw9PWU/KGkucmVzdGFydCh0LGUsbiksaSk6KGU9K2Usbj1udWxsPT1uP1RwKCk6K24saS5yZXN0YXJ0KChmdW5jdGlvbiBvKGEpe2ErPXIsaS5yZXN0YXJ0KG8scis9ZSxuKSx0KGEpfSksZSxuKSxpKX0sdHJhbnNpdGlvbjpfZixhY3RpdmU6ZnVuY3Rpb24gRFIodCxlKXt2YXIgbixpLHI9dC5fX3RyYW5zaXRpb247aWYocilmb3IoaSBpbiBlPW51bGw9PWU/bnVsbDplKyIiLHIpaWYoKG49cltpXSkuc3RhdGU+MSYmbi5uYW1lPT09ZSlyZXR1cm4gbmV3IGdmKFtbdF1dLE1tLGUsK2kpO3JldHVybiBudWxsfSxpbnRlcnJ1cHQ6VnAsdm9yb25vaTpmdW5jdGlvbiBCUigpe3ZhciB0PUlQLGU9UlAsbj1udWxsO2Z1bmN0aW9uIGkoaSl7cmV0dXJuIG5ldyBtTihpLm1hcCgoZnVuY3Rpb24obixyKXt2YXIgbz1bTWF0aC5yb3VuZCh0KG4scixpKS9oTikqaE4sTWF0aC5yb3VuZChlKG4scixpKS9oTikqaE5dO3JldHVybiBvLmluZGV4PXIsby5kYXRhPW4sb30pKSxuKX1yZXR1cm4gaS5wb2x5Z29ucz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0KS5wb2x5Z29ucygpfSxpLmxpbmtzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpLmxpbmtzKCl9LGkudHJpYW5nbGVzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpLnRyaWFuZ2xlcygpfSxpLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpOUCgrZSksaSk6dH0saS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TlAoK3QpLGkpOmV9LGkuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/bnVsbDpbWyt0WzBdWzBdLCt0WzBdWzFdXSxbK3RbMV1bMF0sK3RbMV1bMV1dXSxpKTpuJiZbW25bMF1bMF0sblswXVsxXV0sW25bMV1bMF0sblsxXVsxXV1dfSxpLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9udWxsOltbMCwwXSxbK3RbMF0sK3RbMV1dXSxpKTpuJiZbblsxXVswXS1uWzBdWzBdLG5bMV1bMV0tblswXVsxXV19LGl9LHpvb206a04sem9vbVRyYW5zZm9ybTpiTix6b29tSWRlbnRpdHk6dk59KTtjb25zdCBIUj1bIiNmZjcwNDMiLCIjMDA3N2JiIiwiI2NjMzMxMSIsIiMzM2JiZWUiLCIjZWUzMzc3IiwiIzAwOTk4OCIsIiNiYmJiYmIiXTtjbGFzcyBGUiBleHRlbmRzIG1se2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9leHBlcmltZW50cz1bXX1sb2FkKCl7Y29uc3QgdD1fcigpLmV4cGVyaW1lbnRzKCk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57U2UuZXhwb3J0cy5pc0VxdWFsKHRoaXMuX2V4cGVyaW1lbnRzLHQpfHwodGhpcy5fZXhwZXJpbWVudHM9dCx0aGlzLmVtaXRDaGFuZ2UoKSl9KSl9Z2V0RXhwZXJpbWVudHMoKXtyZXR1cm4gdGhpcy5fZXhwZXJpbWVudHMuc2xpY2UoKX19Y29uc3QgVlI9bmV3IEZSO2NsYXNzIFVSe2NvbnN0cnVjdG9yKHQ9SFIpe3RoaXMucGFsZXR0ZT10LHRoaXMuaWRlbnRpZmllcnM9d2coKX1zZXREb21haW4odCl7cmV0dXJuIHRoaXMuaWRlbnRpZmllcnM9d2coKSx0LmZvckVhY2goKCh0LGUpPT57dGhpcy5pZGVudGlmaWVycy5zZXQodCx0aGlzLnBhbGV0dGVbZSV0aGlzLnBhbGV0dGUubGVuZ3RoXSl9KSksdGhpc31nZXRDb2xvcih0KXtpZighdGhpcy5pZGVudGlmaWVycy5oYXModCkpdGhyb3cgbmV3IEVycm9yKGBTdHJpbmcgJHt0fSB3YXMgbm90IGluIHRoZSBkb21haW4uYCk7cmV0dXJuIHRoaXMuaWRlbnRpZmllcnMuZ2V0KHQpfX1mdW5jdGlvbiBqUih0LGUpe2NvbnN0IG49bmV3IFVSO2Z1bmN0aW9uIGkoKXtuLnNldERvbWFpbihlKCkpfXJldHVybiB0LmFkZExpc3RlbmVyKGkpLGkoKSx0PT5uLmdldENvbG9yKHQpfWNvbnN0IEdSPWpSKHZsLCgoKT0+dmwuZ2V0UnVucygpKSk7alIoVlIsKCgpPT5WUi5nZXRFeHBlcmltZW50cygpLm1hcCgoKHtuYW1lOnR9KT0+dCkpKSksZWwoe21vZHVsZU5hbWU6InJ1bi1jb2xvci1zdHlsZSIsc3R5bGVDb250ZW50OiJcbiAgICBbY29sb3ItY2xhc3M9J2xpZ2h0LWJsdWUnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLWxpZ2h0LWJsdWUtNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLWxpZ2h0LWJsdWUtNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1saWdodC1ibHVlLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLWxpZ2h0LWJsdWUtOTAwKTtcbiAgICB9XG4gICAgW2NvbG9yLWNsYXNzPSdyZWQnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXJlZC01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItcmVkLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItcmVkLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXJlZC05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J2dyZWVuJ10gcGFwZXItY2hlY2tib3gge1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItZ3JlZW4tNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi05MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J3B1cnBsZSddIHBhcGVyLWNoZWNrYm94IHtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItcHVycGxlLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1wdXJwbGUtNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1wdXJwbGUtOTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItcHVycGxlLTkwMCk7XG4gICAgfVxuICAgIFtjb2xvci1jbGFzcz0ndGVhbCddIHBhcGVyLWNoZWNrYm94IHtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItdGVhbC01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItdGVhbC01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXRlYWwtOTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItdGVhbC05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J3BpbmsnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXBpbmstNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXBpbmstNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1waW5rLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXBpbmstOTAwKTtcbiAgICB9XG4gICAgW2NvbG9yLWNsYXNzPSdvcmFuZ2UnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItb3JhbmdlLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItb3JhbmdlLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J2Jyb3duJ10gcGFwZXItY2hlY2tib3gge1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItYnJvd24tNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi05MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J2luZGlnbyddIHBhcGVyLWNoZWNrYm94IHtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1pbmRpZ28tNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1pbmRpZ28tOTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTkwMCk7XG4gICAgfVxuICAifSk7bGV0IFdSPWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5uYW1lcz1bXSx0aGlzLmNvbG9yaW5nPXtnZXRDb2xvcjooKT0+IiJ9LHRoaXMucmVnZXg9IiIsdGhpcy5zZWxlY3Rpb25TdGF0ZT17fSx0aGlzLm1heE5hbWVzVG9FbmFibGVCeURlZmF1bHQ9NDAsdGhpcy5fZGVib3VuY2VkUmVnZXhDaGFuZ2U9dGhpcy5fZGVib3VuY2VkUmVnZXhDaGFuZ2VJbXBsKCl9X2RlYm91bmNlZFJlZ2V4Q2hhbmdlSW1wbCgpe3ZhciB0PVNlLmV4cG9ydHMuZGVib3VuY2UoKHQ9Pnt0aGlzLnJlZ2V4PXR9KSwxNTAse2xlYWRpbmc6ITF9KTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLiQkKCIjbmFtZXMtcmVnZXgiKS52YWx1ZTsiIj09ZT90aGlzLmFzeW5jKCgoKT0+e3RoaXMucmVnZXg9ZX0pLDMwKTp0KGUpfX1nZXQgX3JlZ2V4KCl7dmFyIHQ9dGhpcy5yZWdleDt0cnl7cmV0dXJuIG5ldyBSZWdFeHAodCl9Y2F0Y2godCl7cmV0dXJuIG51bGx9fV9zZXRJc29sYXRvckljb24oKXt2YXIgdD10aGlzLnNlbGVjdGlvblN0YXRlLGU9U2UuZXhwb3J0cy5maWx0ZXIoU2UuZXhwb3J0cy52YWx1ZXModCkpLmxlbmd0aDtBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgiLmlzb2xhdG9yIikpLmZvckVhY2goKGZ1bmN0aW9uKG4pe24uaWNvbj0xPT09ZSYmdFtuLm5hbWVdPyJyYWRpby1idXR0b24tY2hlY2tlZCI6InJhZGlvLWJ1dHRvbi11bmNoZWNrZWQifSkpfWNvbXB1dGVOYW1lc01hdGNoaW5nUmVnZXgodCxlKXtjb25zdCBuPXRoaXMuX3JlZ2V4O3JldHVybiBuP3RoaXMubmFtZXMuZmlsdGVyKCh0PT5uLnRlc3QodCkpKTp0aGlzLm5hbWVzfWNvbXB1dGVPdXRTZWxlY3RlZCh0LGUpe3ZhciBuPXRoaXMuc2VsZWN0aW9uU3RhdGUsaT10aGlzLm5hbWVzTWF0Y2hpbmdSZWdleC5sZW5ndGg8PXRoaXMubWF4TmFtZXNUb0VuYWJsZUJ5RGVmYXVsdDtyZXR1cm4gdGhpcy5uYW1lc01hdGNoaW5nUmVnZXguZmlsdGVyKCh0PT5udWxsPT1uW3RdP2k6blt0XSkpfXN5bmNocm9uaXplQ29sb3JzKHQpe3RoaXMuX3NldElzb2xhdG9ySWNvbigpLHRoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCJwYXBlci1jaGVja2JveCIpLmZvckVhY2goKHQ9Pntjb25zdCBlPXRoaXMuY29sb3JpbmcuZ2V0Q29sb3IodC5uYW1lKTt0LnVwZGF0ZVN0eWxlcyh7Ii0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvciI6ZSwiLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvciI6ZSwiLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3IiOmUsIi0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvciI6ZX0pfSkpLHRoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuaXNvbGF0b3IiKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10aGlzLmNvbG9yaW5nLmdldENvbG9yKHQubmFtZSk7dC5zdHlsZS5jb2xvcj1lfSkpLHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy51cGRhdGVTdHlsZXMoKX0pKX1faXNvbGF0ZU5hbWUodCl7dmFyIGU9dC50YXJnZXQubmFtZSxuPXt9O3RoaXMubmFtZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7blt0XT10PT1lfSkpLHRoaXMuc2VsZWN0aW9uU3RhdGU9bn1fY2hlY2tib3hDaGFuZ2UodCl7dmFyIGU9dC50YXJnZXQ7Y29uc3Qgbj1TZS5leHBvcnRzLmNsb25lKHRoaXMuc2VsZWN0aW9uU3RhdGUpO25bZS5uYW1lXT1lLmNoZWNrZWQsdGhpcy5zZWxlY3Rpb25TdGF0ZT1ufV9pc0NoZWNrZWQodCxlKXtyZXR1cm4tMSE9dGhpcy5vdXRTZWxlY3RlZC5pbmRleE9mKHQpfXRvZ2dsZUFsbCgpe2NvbnN0IHQ9dGhpcy5uYW1lc01hdGNoaW5nUmVnZXguc29tZSgodD0+dGhpcy5vdXRTZWxlY3RlZC5pbmNsdWRlcyh0KSkpLGU9e307dGhpcy5uYW1lcy5mb3JFYWNoKChuPT57ZVtuXT0hdH0pKSx0aGlzLnNlbGVjdGlvblN0YXRlPWV9fTtXUi50ZW1wbGF0ZT1fZWAKICAgIDxzdHlsZSBpbmNsdWRlPSJzY3JvbGxiYXItc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGUgaW5jbHVkZT0icnVuLWNvbG9yLXN0eWxlIj48L3N0eWxlPgoKICAgIDxwYXBlci1pbnB1dAogICAgICBpZD0ibmFtZXMtcmVnZXgiCiAgICAgIG5vLWxhYmVsLWZsb2F0PSIiCiAgICAgIGxhYmVsPSJXcml0ZSBhIHJlZ2V4IHRvIGZpbHRlciBydW5zIgogICAgICB2YWx1ZT0iW1tyZWdleF1dIgogICAgICBvbi1iaW5kLXZhbHVlLWNoYW5nZWQ9Il9kZWJvdW5jZWRSZWdleENoYW5nZSIKICAgID48L3BhcGVyLWlucHV0PgogICAgPGRpdiBpZD0ib3V0ZXItY29udGFpbmVyIiBjbGFzcz0ic2Nyb2xsYmFyIj4KICAgICAgPHRlbXBsYXRlCiAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgaXRlbXM9IltbbmFtZXNNYXRjaGluZ1JlZ2V4XV0iCiAgICAgICAgb24tZG9tLWNoYW5nZT0ic3luY2hyb25pemVDb2xvcnMiCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lLXJvdyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJpY29uLWNvbnRhaW5lciBjaGVja2JveC1jb250YWluZXIgdmVydGljYWwtYWxpZ24tY29udGFpbmVyIgogICAgICAgICAgPgogICAgICAgICAgICA8cGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICBjbGFzcz0iY2hlY2tib3ggdmVydGljYWwtYWxpZ24tY2VudGVyIgogICAgICAgICAgICAgIGlkJD0iY2hlY2tib3gtW1tpdGVtXV0iCiAgICAgICAgICAgICAgbmFtZT0iW1tpdGVtXV0iCiAgICAgICAgICAgICAgY2hlY2tlZCQ9IltbX2lzQ2hlY2tlZChpdGVtLCBzZWxlY3Rpb25TdGF0ZS4qKV1dIgogICAgICAgICAgICAgIG9uLWNoYW5nZT0iX2NoZWNrYm94Q2hhbmdlIgogICAgICAgICAgICA+PC9wYXBlci1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iaWNvbi1jb250YWluZXIgaXNvbGF0b3ItY29udGFpbmVyIHZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciIKICAgICAgICAgID4KICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgICAgaWNvbj0icmFkaW8tYnV0dG9uLXVuY2hlY2tlZCIKICAgICAgICAgICAgICBjbGFzcz0iaXNvbGF0b3IgdmVydGljYWwtYWxpZ24tY2VudGVyIgogICAgICAgICAgICAgIG9uLXRhcD0iX2lzb2xhdGVOYW1lIgogICAgICAgICAgICAgIG5hbWU9IltbaXRlbV1dIgogICAgICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1sYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICA8c3Bhbj5bW2l0ZW1dXTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIHBhcGVyLWlucHV0IHsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWw6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgIH0KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAjb3V0ZXItY29udGFpbmVyIHsKICAgICAgICBjb250YWluOiBjb250ZW50OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgfQogICAgICAubmFtZS1yb3cgewogICAgICAgIGNvbnRhaW46IGNvbnRlbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDVweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOyAvKiBtYWtlcyB3cmFwcGluZyBvZiBoeXBlcnBhcmFtIHN0cmluZ3MgYmV0dGVyICovCiAgICAgIH0KICAgICAgLmljb24tY29udGFpbmVyIHsKICAgICAgICBmbGV4LWdyb3c6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7CiAgICAgIH0KICAgICAgLmNoZWNrYm94IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KICAgICAgLmlzb2xhdG9yIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMHB4OwogICAgICB9CiAgICAgIC5pc29sYXRvci1jb250YWluZXIgewogICAgICAgIHBhZGRpbmctbGVmdDogNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDNweDsKICAgICAgfQogICAgICAuY2hlY2tib3gtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDsKICAgICAgfQogICAgICAuaXRlbS1sYWJlbC1jb250YWluZXIgewogICAgICAgIHBhZGRpbmctbGVmdDogNXB4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICB3aWR0aDogMHB4OyAvKiBoYWNrIHRvIGdldCB0aGUgZmxleC1ncm93IHRvIHdvcmsgcHJvcGVybHkgKi8KICAgICAgfQogICAgICAudG9vbHRpcC12YWx1ZS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHBhZGRpbmctbGVmdDogMnB4OwogICAgICB9CiAgICAgIC52ZXJ0aWNhbC1hbGlnbi1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KICAgICAgLnZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciAudmVydGljYWwtYWxpZ24tY2VudGVyIHsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgIH0KICAgICAgLnZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciAudmVydGljYWwtYWxpZ24tdG9wIHsKICAgICAgICBhbGlnbi1zZWxmOiBzdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxXUi5wcm90b3R5cGUsIm5hbWVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFdSLnByb3RvdHlwZSwiY29sb3JpbmciLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFdSLnByb3RvdHlwZSwicmVnZXgiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheSxjb21wdXRlZDoiY29tcHV0ZU5hbWVzTWF0Y2hpbmdSZWdleChuYW1lcy4qLCBfcmVnZXgpIn0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFdSLnByb3RvdHlwZSwibmFtZXNNYXRjaGluZ1JlZ2V4Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxXUi5wcm90b3R5cGUsInNlbGVjdGlvblN0YXRlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXksbm90aWZ5OiEwLGNvbXB1dGVkOiJjb21wdXRlT3V0U2VsZWN0ZWQobmFtZXNNYXRjaGluZ1JlZ2V4LiosIHNlbGVjdGlvblN0YXRlLiopIn0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFdSLnByb3RvdHlwZSwib3V0U2VsZWN0ZWQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sV1IucHJvdG90eXBlLCJtYXhOYW1lc1RvRW5hYmxlQnlEZWZhdWx0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFdSLnByb3RvdHlwZSwiX2RlYm91bmNlZFJlZ2V4Q2hhbmdlIix2b2lkIDApLHQoW3MoInJlZ2V4IiksZSgiZGVzaWduOnR5cGUiLFJlZ0V4cCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sV1IucHJvdG90eXBlLCJfcmVnZXgiLG51bGwpLHQoW2EoInNlbGVjdGlvblN0YXRlIiwibmFtZXMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFdSLnByb3RvdHlwZSwiX3NldElzb2xhdG9ySWNvbiIsbnVsbCksV1I9dChbaSgidGYtbXVsdGktY2hlY2tib3giKV0sV1IpO2xldCBxUj1jbGFzcyBleHRlbmRzIHlle2dldCBfcGFydHMoKXt2YXIgdD10aGlzLnZhbHVlLGU9dGhpcy5kZWxpbWl0ZXJQYXR0ZXJuO2NvbnN0IG49W107Zm9yKDs7KXtjb25zdCBpPW5ldyBSZWdFeHAoZSwiZyIpO2lmKGkudGVzdCh0KSwwPT09aS5sYXN0SW5kZXgpe24ucHVzaCh0KTticmVha31uLnB1c2godC5zbGljZSgwLGkubGFzdEluZGV4KSksdD10LnNsaWNlKGkubGFzdEluZGV4KX1yZXR1cm4gbn19O3FSLnRlbXBsYXRlPV9lYAogICAgPCEtLQogICAgICBUaGlzIHVnbHkgZm9ybWF0dGluZyBpcyByZXF1aXJlZCB0byBwcmV2ZW50IHNwYWNlcyBmcm9tIHNsaXBwaW5nCiAgICAgIGludG8gdGhlIEhUTUwuCiAgICAtLT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX3BhcnRzXV0iIGFzPSJwYXJ0IgogICAgICA+W1twYXJ0XV08d2JyCiAgICAvPjwvdGVtcGxhdGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxxUi5wcm90b3R5cGUsInZhbHVlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHFSLnByb3RvdHlwZSwiZGVsaW1pdGVyUGF0dGVybiIsdm9pZCAwKSx0KFtzKCJ2YWx1ZSIsImRlbGltaXRlclBhdHRlcm4iKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHFSLnByb3RvdHlwZSwiX3BhcnRzIixudWxsKSxxUj10KFtpKCJ0Zi13YnItc3RyaW5nIildLHFSKTtsZXQgWVI9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJ1blNlbGVjdGlvblN0YXRlPSRzKCJydW5TZWxlY3Rpb25TdGF0ZSIse2RlZmF1bHRWYWx1ZTp7fX0pLmNhbGwodGhpcyksdGhpcy5yZWdleElucHV0PVJzKCJyZWdleElucHV0Iix7ZGVmYXVsdFZhbHVlOiIifSkuY2FsbCh0aGlzKSx0aGlzLl9kYXRhTG9jYXRpb25DbGlwTGVuZ3RoPTI1MCx0aGlzLl9kYXRhTG9jYXRpb25EZWxpbWl0ZXJQYXR0ZXJuPSJbLz1fLC1dIix0aGlzLmNvbG9yaW5nPXtnZXRDb2xvcjpHUn0sdGhpcy5fc3RvcmVSdW5TZWxlY3Rpb25TdGF0ZT1LcygicnVuU2VsZWN0aW9uU3RhdGUiLHtkZWZhdWx0VmFsdWU6e319KSx0aGlzLl9yZWdleE9ic2VydmVyPU9zKCJyZWdleElucHV0Iix7ZGVmYXVsdFZhbHVlOiIifSl9YXR0YWNoZWQoKXt0aGlzLl9ydW5TdG9yZUxpc3RlbmVyPXZsLmFkZExpc3RlbmVyKCgoKT0+e3RoaXMuc2V0KCJydW5zIix2bC5nZXRSdW5zKCkpfSkpLHRoaXMuc2V0KCJydW5zIix2bC5nZXRSdW5zKCkpLHRoaXMuX2VudlN0b3JlTGlzdGVuZXI9X2wuYWRkTGlzdGVuZXIoKCgpPT57dGhpcy5zZXQoImRhdGFMb2NhdGlvbiIsX2wuZ2V0RGF0YUxvY2F0aW9uKCkpfSkpLHRoaXMuc2V0KCJkYXRhTG9jYXRpb24iLF9sLmdldERhdGFMb2NhdGlvbigpKX1kZXRhY2hlZCgpe3ZsLnJlbW92ZUxpc3RlbmVyQnlLZXkodGhpcy5fcnVuU3RvcmVMaXN0ZW5lciksX2wucmVtb3ZlTGlzdGVuZXJCeUtleSh0aGlzLl9lbnZTdG9yZUxpc3RlbmVyKX1fdG9nZ2xlQWxsKCl7dGhpcy4kLm11bHRpQ2hlY2tib3gudG9nZ2xlQWxsKCl9Z2V0IF9jbGlwcGVkRGF0YUxvY2F0aW9uKCl7dmFyIHQ9dGhpcy5kYXRhTG9jYXRpb24sZT10aGlzLl9kYXRhTG9jYXRpb25DbGlwTGVuZ3RoO2lmKHZvaWQgMCE9PXQpcmV0dXJuIHQubGVuZ3RoPmU/dC5zdWJzdHJpbmcoMCxlKTp0fV9vcGVuRGF0YUxvY2F0aW9uRGlhbG9nKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLiQkKCIjZGF0YS1sb2NhdGlvbi1kaWFsb2ciKS5vcGVuKCl9X3Nob3VsZFNob3dFeHBhbmREYXRhTG9jYXRpb25CdXR0b24odCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg+ZX19O1lSLnRlbXBsYXRlPV9lYAogICAgPHBhcGVyLWRpYWxvZyB3aXRoLWJhY2tkcm9wPSIiIGlkPSJkYXRhLWxvY2F0aW9uLWRpYWxvZyI+CiAgICAgIDxoMj5EYXRhIExvY2F0aW9uPC9oMj4KICAgICAgPHRmLXdici1zdHJpbmcKICAgICAgICB2YWx1ZT0iW1tkYXRhTG9jYXRpb25dXSIKICAgICAgICBkZWxpbWl0ZXItcGF0dGVybj0iW1tfZGF0YUxvY2F0aW9uRGVsaW1pdGVyUGF0dGVybl1dIgogICAgICA+CiAgICAgIDwvdGYtd2JyLXN0cmluZwogICAgPjwvcGFwZXItZGlhbG9nPgogICAgPGRpdiBpZD0idG9wLXRleHQiPgogICAgICA8aDMgaWQ9InRvb2x0aXAtaGVscCIgY2xhc3M9InRvb2x0aXAtY29udGFpbmVyIj5SdW5zPC9oMz4KICAgIDwvZGl2PgogICAgPHRmLW11bHRpLWNoZWNrYm94CiAgICAgIGlkPSJtdWx0aUNoZWNrYm94IgogICAgICBuYW1lcz0iW1tydW5zXV0iCiAgICAgIHNlbGVjdGlvbi1zdGF0ZT0ie3tydW5TZWxlY3Rpb25TdGF0ZX19IgogICAgICBvdXQtc2VsZWN0ZWQ9Int7c2VsZWN0ZWRSdW5zfX0iCiAgICAgIHJlZ2V4PSJ7e3JlZ2V4SW5wdXR9fSIKICAgICAgY29sb3Jpbmc9IltbY29sb3JpbmddXSIKICAgID48L3RmLW11bHRpLWNoZWNrYm94PgogICAgPHBhcGVyLWJ1dHRvbiBjbGFzcz0ieC1idXR0b24iIGlkPSJ0b2dnbGUtYWxsIiBvbi10YXA9Il90b2dnbGVBbGwiPgogICAgICBUb2dnbGUgQWxsIFJ1bnMKICAgIDwvcGFwZXItYnV0dG9uPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2RhdGFMb2NhdGlvbl1dIj4KICAgICAgPGRpdiBpZD0iZGF0YS1sb2NhdGlvbiI+CiAgICAgICAgPHRmLXdici1zdHJpbmcKICAgICAgICAgIHZhbHVlPSJbW19jbGlwcGVkRGF0YUxvY2F0aW9uXV0iCiAgICAgICAgICBkZWxpbWl0ZXItcGF0dGVybj0iW1tfZGF0YUxvY2F0aW9uRGVsaW1pdGVyUGF0dGVybl1dIgogICAgICAgID48L3RmLXdici1zdHJpbmcKICAgICAgICA+PCEtLQogICAgICAgICAgV2UgdXNlIEhUTUwgY29tbWVudHMgdG8gcmVtb3ZlIHNwYWNlcyBiZWZvcmUgdGhlIGVsbGlwc2lzLgogICAgICAgIC0tPjx0ZW1wbGF0ZQogICAgICAgICAgaXM9ImRvbS1pZiIKICAgICAgICAgIGlmPSJbW19zaG91bGRTaG93RXhwYW5kRGF0YUxvY2F0aW9uQnV0dG9uKGRhdGFMb2NhdGlvbiwgX2RhdGFMb2NhdGlvbkNsaXBMZW5ndGgpXV0iCiAgICAgICAgICA+PCEtLQogICAgICAgICAgLS0+PGEgaHJlZj0iIiBvbi1jbGljaz0iX29wZW5EYXRhTG9jYXRpb25EaWFsb2ciPuKApjwvYT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKICAgICAgfQogICAgICAjdG9wLXRleHQgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQogICAgICB0Zi13YnItc3RyaW5nIHsKICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOwogICAgICB9CiAgICAgIHRmLW11bHRpLWNoZWNrYm94IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICAgIC54LWJ1dHRvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRiLXVpLWxpZ2h0LWFjY2VudCk7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTsKICAgICAgfQogICAgICAjdG9vbHRpcC1oZWxwIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgIH0KICAgICAgcGFwZXItYnV0dG9uIHsKICAgICAgICBtYXJnaW4tbGVmdDogMDsKICAgICAgfQogICAgICAjZGF0YS1sb2NhdGlvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWFyZ2luOiA1cHggMCAwIDA7CiAgICAgICAgbWF4LXdpZHRoOiAyODhweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfc3RvcmVSdW5TZWxlY3Rpb25TdGF0ZSJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWVIucHJvdG90eXBlLCJydW5TZWxlY3Rpb25TdGF0ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxvYnNlcnZlcjoiX3JlZ2V4T2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFlSLnByb3RvdHlwZSwicmVnZXhJbnB1dCIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFlSLnByb3RvdHlwZSwic2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxZUi5wcm90b3R5cGUsInJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFlSLnByb3RvdHlwZSwiZGF0YUxvY2F0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLFlSLnByb3RvdHlwZSwiX2RhdGFMb2NhdGlvbkNsaXBMZW5ndGgiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWVIucHJvdG90eXBlLCJfZGF0YUxvY2F0aW9uRGVsaW1pdGVyUGF0dGVybiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxZUi5wcm90b3R5cGUsImNvbG9yaW5nIix2b2lkIDApLHQoW3MoImRhdGFMb2NhdGlvbiIsIl9kYXRhTG9jYXRpb25DbGlwTGVuZ3RoIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sWVIucHJvdG90eXBlLCJfY2xpcHBlZERhdGFMb2NhdGlvbiIsbnVsbCksWVI9dChbaSgidGYtcnVucy1zZWxlY3RvciIpXSxZUik7Y2xhc3MgWFJ7Y29uc3RydWN0b3IoKXt0aGlzLmNhbmNlbGxhdGlvbkNvdW50PTB9Y2FuY2VsbGFibGUodCl7Y29uc3QgZT10aGlzLmNhbmNlbGxhdGlvbkNvdW50O3JldHVybiBuPT50KHt2YWx1ZTpuLGNhbmNlbGxlZDp0aGlzLmNhbmNlbGxhdGlvbkNvdW50IT09ZX0pfWNhbmNlbEFsbCgpe3RoaXMuY2FuY2VsbGF0aW9uQ291bnQrK319bGV0ICRSPWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5odG1sPSIifWdldCBzYW5pdGl6ZWRIdG1sKCl7cmV0dXJuIHRoaXMuaHRtbH1hdHRhY2hlZCgpe3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5zY29wZVN1YnRyZWUodGhpcy4kLm1hcmtkb3duLCEwKX0pKX19O2Z1bmN0aW9uIEtSKHQpe3JldHVybiB0P3QudG9TdHJpbmcoKS5yZXBsYWNlKC9HTVQtXGQrIFwoKFteKV0rKVwpLywiJDEiKToiIn0kUi50ZW1wbGF0ZT1fZWAKICAgIDxkaXYgaWQ9Im1hcmtkb3duIiBpbm5lci1oLXQtbS1sPSJbW3Nhbml0aXplZEh0bWxdXSI+PC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIC8qCiAgICAgICAqIFJlZHVjZSB0b3Btb3N0IGFuZCBib3R0b21tb3N0IG1hcmdpbnMgZnJvbSAxNnB4IHRvIDAuM2VtIChyZW5kZXJzCiAgICAgICAqIGF0IGFib3V0IDQuOHB4KSB0byBrZWVwIHRoZSBsYXlvdXQgY29tcGFjdC4gVGhpcyBpbXByb3ZlcyB0aGUKICAgICAgICogYXBwZWFyYW5jZSB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIGxpbmUgb2YgdGV4dDsgc3RhbmRhcmQgTWFya2Rvd24KICAgICAgICogcmVuZGVyZXJzIHdpbGwgc3RpbGwgaW5jbHVkZSBhIFxgPHA+XGAgZWxlbWVudC4KICAgICAgICoKICAgICAgICogQnkgdGFyZ2V0aW5nIG9ubHkgdGhlIHRvcC1sZXZlbCwgZXh0cmVtYWwgZWxlbWVudHMsIHdlIHByZXNlcnZlIGFueQogICAgICAgKiBhY3R1YWwgcGFyYWdyYXBoIGJyZWFrcyBhbmQgb25seSBjaGFuZ2UgdGhlIHBhZGRpbmcgYWdhaW5zdCB0aGUKICAgICAgICogY29tcG9uZW50IGVkZ2VzLgogICAgICAgKi8KICAgICAgI21hcmtkb3duID4gcDpmaXJzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMC4zZW07CiAgICAgIH0KICAgICAgI21hcmtkb3duID4gcDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjNlbTsKICAgICAgfQoKICAgICAgLyogUGxlYXNhbnQgc3R5bGVzIGZvciBNYXJrZG93biB0YWJsZXMuICovCiAgICAgICNtYXJrZG93biB0YWJsZSB7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgfQogICAgICAjbWFya2Rvd24gdGFibGUgdGggewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgI21hcmtkb3duIHRhYmxlIHRoLAogICAgICAjbWFya2Rvd24gdGFibGUgdGQgewogICAgICAgIHBhZGRpbmc6IDZweCAxM3B4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRiLXVpLWJvcmRlciwgI2RmZTJlNSk7CiAgICAgIH0KICAgICAgI21hcmtkb3duIHRhYmxlIHRyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS10Yi11aS1ib3JkZXIsICNjNmNiZDEpOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sJFIucHJvdG90eXBlLCJodG1sIix2b2lkIDApLHQoW3MoImh0bWwiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSwkUi5wcm90b3R5cGUsInNhbml0aXplZEh0bWwiLG51bGwpLCRSPXQoW2koInRmLW1hcmtkb3duLXZpZXciKV0sJFIpLGVsKHttb2R1bGVOYW1lOiJ0Zi1jYXJkLWhlYWRpbmctc3R5bGUiLHN0eWxlQ29udGVudDoiXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvKiogSG9yaXpvbnRhbCBsaW5lIG9mIGxhYmVscy4gKi9cbiAgICAuaGVhZGluZy1yb3cge1xuICAgICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgIC8qKiBQaWVjZSBvZiB0ZXh0IGluIHRoZSBmaWd1cmUgY2FwdGlvbi4gKi9cbiAgICAuaGVhZGluZy1sYWJlbCB7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgLyoqIE1ha2VzIGxhYmVsIHNob3cgb24gdGhlIHJpZ2h0LiAqL1xuICAgIC5oZWFkaW5nLXJpZ2h0IHtcbiAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICB9XG4gICJ9KTtsZXQgWlI9Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5kaXNwbGF5TmFtZT1udWxsLHRoaXMudGFnPW51bGwsdGhpcy5ydW49bnVsbCx0aGlzLmRlc2NyaXB0aW9uPW51bGwsdGhpcy5jb2xvcj1udWxsfV91cGRhdGVIZWFkaW5nU3R5bGUoKXt0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tdGYtY2FyZC1oZWFkaW5nLWJhY2tncm91bmQtY29sb3IiOnRoaXMuX3J1bkJhY2tncm91bmQsIi0tdGYtY2FyZC1oZWFkaW5nLWNvbG9yIjp0aGlzLl9ydW5Db2xvcn0pfV9jb21wdXRlUnVuQmFja2dyb3VuZCh0KXtyZXR1cm4gdHx8Im5vbmUifV9jb21wdXRlUnVuQ29sb3IodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtpZighdClyZXR1cm4gbnVsbDtsZXQgZT10Lm1hdGNoKC9eIyhbMC05YS1mXXsxLDJ9KShbMC05YS1mXXsxLDJ9KShbMC05YS1mXXsxLDJ9KSQvKTtpZighZSlyZXR1cm4gbnVsbDtpZig0PT10Lmxlbmd0aClmb3IodmFyIG49MTtuPD0zO24rKyllW25dPWVbbl0rZVtuXTtyZXR1cm5bcGFyc2VJbnQoZVsxXSwxNikscGFyc2VJbnQoZVsyXSwxNikscGFyc2VJbnQoZVszXSwxNildfSkodCk7cmV0dXJuIGU/TWF0aC5yb3VuZCgoMjk5KmVbMF0rNTg3KmVbMV0rMTE0KmVbMl0pLzFlMyk+MTI1PyJpbmhlcml0IjoiI2VlZSI6ImluaGVyaXQifSkodCl9Z2V0IF9uYW1lTGFiZWwoKXtyZXR1cm4gdGhpcy5kaXNwbGF5TmFtZXx8dGhpcy50YWd8fCIifWdldCBfdGFnTGFiZWwoKXt2YXIgdD10aGlzLnRhZztyZXR1cm4gdCYmdCE9PXRoaXMuZGlzcGxheU5hbWU/dDoiIn1fdG9nZ2xlRGVzY3JpcHRpb25EaWFsb2codCl7Y29uc3QgZT10aGlzLiQuZGVzY3JpcHRpb25EaWFsb2c7ZS5wb3NpdGlvblRhcmdldD10LnRhcmdldCxlLnRvZ2dsZSgpfX07WlIudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZmlnY2FwdGlvbiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19uYW1lTGFiZWxdXSI+CiAgICAgICAgICAgIDxkaXYgaXRlbXByb3A9Im5hbWUiIGNsYXNzPSJoZWFkaW5nLWxhYmVsIG5hbWUiPltbX25hbWVMYWJlbF1dPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3J1bl1dIj4KICAgICAgICAgICAgPCEtLSBFeHRyYSB3cmFwcGluZyBzcGFuIG5lZWRlZCB0byBhdm9pZCBmbGV4Ym94IGJsb2NraWZpY2F0aW9uLiAtLT4KICAgICAgICAgICAgPCEtLSAoc2VlIGZsZXhib3ggc3BlYywgc2VjdGlvbiA0ICJGbGV4IEl0ZW1zIikgLS0+CiAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICBpdGVtcHJvcD0icnVuIgogICAgICAgICAgICAgICAgaWQ9ImhlYWRpbmctcnVuIgogICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRpbmctbGFiZWwgaGVhZGluZy1yaWdodCBydW4iCiAgICAgICAgICAgICAgICA+W1tydW5dXTwvc3BhbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3RhZ0xhYmVsXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIj4KICAgICAgICAgICAgICB0YWc6IDxzcGFuIGl0ZW1wcm9wPSJ0YWciPltbX3RhZ0xhYmVsXV08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZmlnY2FwdGlvbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2Rlc2NyaXB0aW9uXV0iPgogICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgaWNvbj0iaW5mbyIKICAgICAgICAgIG9uLXRhcD0iX3RvZ2dsZURlc2NyaXB0aW9uRGlhbG9nIgogICAgICAgICAgdGl0bGU9IlNob3cgc3VtbWFyeSBkZXNjcmlwdGlvbiIKICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHBhcGVyLWRpYWxvZwogICAgICAgIGlkPSJkZXNjcmlwdGlvbkRpYWxvZyIKICAgICAgICBuby1vdmVybGFwPSIiCiAgICAgICAgaG9yaXpvbnRhbC1hbGlnbj0iYXV0byIKICAgICAgICB2ZXJ0aWNhbC1hbGlnbj0iYXV0byIKICAgICAgPgogICAgICAgIDxwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZT4KICAgICAgICAgIDx0Zi1tYXJrZG93bi12aWV3IGh0bWw9IltbZGVzY3JpcHRpb25dXSI+PC90Zi1tYXJrZG93bi12aWV3PgogICAgICAgIDwvcGFwZXItZGlhbG9nLXNjcm9sbGFibGU+CiAgICAgIDwvcGFwZXItZGlhbG9nPgogICAgPC9kaXY+CiAgICA8c3R5bGUgaW5jbHVkZT0idGYtY2FyZC1oZWFkaW5nLXN0eWxlIj4KICAgICAgLmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQogICAgICAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgfQogICAgICAubmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIC5ydW4gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgcGFkZGluZzogMXB4IDRweCAycHg7CiAgICAgIH0KICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgfQogICAgICBwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZSB7CiAgICAgICAgbWF4LXdpZHRoOiA2NDBweDsKICAgICAgfQogICAgICAjaGVhZGluZy1ydW4gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRmLWNhcmQtaGVhZGluZy1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBjb2xvcjogdmFyKC0tdGYtY2FyZC1oZWFkaW5nLWNvbG9yKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFpSLnByb3RvdHlwZSwiZGlzcGxheU5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWlIucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWlIucHJvdG90eXBlLCJydW4iLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWlIucHJvdG90eXBlLCJkZXNjcmlwdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxaUi5wcm90b3R5cGUsImNvbG9yIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLGNvbXB1dGVkOiJfY29tcHV0ZVJ1bkJhY2tncm91bmQoY29sb3IpIixyZWFkT25seTohMCxvYnNlcnZlcjoiX3VwZGF0ZUhlYWRpbmdTdHlsZSJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWlIucHJvdG90eXBlLCJfcnVuQmFja2dyb3VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxjb21wdXRlZDoiX2NvbXB1dGVSdW5Db2xvcihjb2xvcikiLHJlYWRPbmx5OiEwLG9ic2VydmVyOiJfdXBkYXRlSGVhZGluZ1N0eWxlIn0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxaUi5wcm90b3R5cGUsIl9ydW5Db2xvciIsdm9pZCAwKSx0KFtzKCJkaXNwbGF5TmFtZSIsInRhZyIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFpSLnByb3RvdHlwZSwiX25hbWVMYWJlbCIsbnVsbCksdChbcygiZGlzcGxheU5hbWUiLCJ0YWciKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxaUi5wcm90b3R5cGUsIl90YWdMYWJlbCIsbnVsbCksWlI9dChbaSgidGYtY2FyZC1oZWFkaW5nIildLFpSKTtsZXQgSlI9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9tZXRhZGF0YUNhbmNlbGxlcj1uZXcgWFIsdGhpcy5fc3RlcHM9W10sdGhpcy5fYXR0YWNoZWQ9ITF9Z2V0IF9ydW5Db2xvcigpe3JldHVybiBHUih0aGlzLnJ1bil9Z2V0IF9oYXNBdExlYXN0T25lU3RlcCgpe3ZhciB0PXRoaXMuX3N0ZXBzO3JldHVybiEhdCYmdC5sZW5ndGg+MH1nZXQgX2hhc011bHRpcGxlU3RlcHMoKXt2YXIgdD10aGlzLl9zdGVwcztyZXR1cm4hIXQmJnQubGVuZ3RoPjF9Z2V0IF9tYXhTdGVwSW5kZXgoKXtyZXR1cm4gdGhpcy5fc3RlcHMubGVuZ3RoLTF9Z2V0IF9jdXJyZW50RGF0dW0oKXtyZXR1cm4gdGhpcy5fc3RlcHNbdGhpcy5fc3RlcEluZGV4XX1nZXQgX3NhbXBsZVRleHQoKXtyZXR1cm5gJHt0aGlzLnNhbXBsZSsxfWB9Z2V0IF9oYXNNdWx0aXBsZVNhbXBsZXMoKXtyZXR1cm4gdGhpcy50b3RhbFNhbXBsZXM+MX1hdHRhY2hlZCgpe3RoaXMuX2F0dGFjaGVkPSEwLHRoaXMucmVsb2FkKCl9X3JlbG9hZE9uUnVuVGFnQ2hhbmdlKCl7dGhpcy5yZWxvYWQoKX1yZWxvYWQoKXtpZighdGhpcy5fYXR0YWNoZWQpcmV0dXJuO3RoaXMuX21ldGFkYXRhQ2FuY2VsbGVyLmNhbmNlbEFsbCgpO2NvbnN0IHQ9X3IoKS5wbHVnaW5Sb3V0ZSgiYXVkaW8iLCIvYXVkaW8iLG5ldyBVUkxTZWFyY2hQYXJhbXMoe3RhZzp0aGlzLnRhZyxydW46dGhpcy5ydW4sc2FtcGxlOlN0cmluZyh0aGlzLnNhbXBsZSl9KSksZT10aGlzLl9tZXRhZGF0YUNhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e2lmKHQuY2FuY2VsbGVkKXJldHVybjtjb25zdCBlPXQudmFsdWUubWFwKHRoaXMuX2NyZWF0ZVN0ZXBEYXR1bS5iaW5kKHRoaXMpKTt0aGlzLnNldCgiX3N0ZXBzIixlKSx0aGlzLnNldCgiX3N0ZXBJbmRleCIsZS5sZW5ndGgtMSl9KSk7dGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oZSl9X2NyZWF0ZVN0ZXBEYXR1bSh0KXtjb25zdCBlPW5ldyBVUkxTZWFyY2hQYXJhbXModC5xdWVyeSk7ZS5hcHBlbmQoInRzIixTdHJpbmcodC53YWxsX3RpbWUpKTtjb25zdCBuPV9yKCkucGx1Z2luUm91dGUoImF1ZGlvIiwiL2luZGl2aWR1YWxBdWRpbyIsZSk7cmV0dXJue3dhbGxfdGltZTpLUihuZXcgRGF0ZSgxZTMqdC53YWxsX3RpbWUpKSxzdGVwOnQuc3RlcCxsYWJlbDp0LmxhYmVsLGNvbnRlbnRUeXBlOnQuY29udGVudFR5cGUsdXJsOm59fX07SlIudGVtcGxhdGU9X2VgCiAgICA8dGYtY2FyZC1oZWFkaW5nCiAgICAgIHRhZz0iW1t0YWddXSIKICAgICAgcnVuPSJbW3J1bl1dIgogICAgICBkaXNwbGF5LW5hbWU9IltbdGFnTWV0YWRhdGEuZGlzcGxheU5hbWVdXSIKICAgICAgZGVzY3JpcHRpb249IltbdGFnTWV0YWRhdGEuZGVzY3JpcHRpb25dXSIKICAgICAgY29sb3I9IltbX3J1bkNvbG9yXV0iCiAgICA+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzTXVsdGlwbGVTYW1wbGVzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctbGFiZWwiPgogICAgICAgICAgICBzYW1wbGU6IFtbX3NhbXBsZVRleHRdXSBvZiBbW3RvdGFsU2FtcGxlc11dCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNBdExlYXN0T25lU3RlcF1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIj4KICAgICAgICAgICAgc3RlcCA8c3Ryb25nPltbX2N1cnJlbnREYXR1bS5zdGVwXV08L3N0cm9uZz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19jdXJyZW50RGF0dW0ud2FsbF90aW1lXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIGhlYWRpbmctcmlnaHQiPgogICAgICAgICAgICAgIFtbX2N1cnJlbnREYXR1bS53YWxsX3RpbWVdXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzTXVsdGlwbGVTdGVwc11dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXJvdyI+CiAgICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICAgIGlkPSJzdGVwcyIKICAgICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e19zdGVwSW5kZXh9fSIKICAgICAgICAgICAgbWF4PSJbW19tYXhTdGVwSW5kZXhdXSIKICAgICAgICAgICAgbWF4LW1hcmtlcnM9IltbX21heFN0ZXBJbmRleF1dIgogICAgICAgICAgICBzbmFwcz0iIgogICAgICAgICAgICBzdGVwPSIxIgogICAgICAgICAgICB2YWx1ZT0ie3tfc3RlcEluZGV4fX0iCiAgICAgICAgICA+PC9wYXBlci1zbGlkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3RmLWNhcmQtaGVhZGluZz4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzQXRMZWFzdE9uZVN0ZXBdXSI+CiAgICAgIDxhdWRpbwogICAgICAgIGNvbnRyb2xzPSIiCiAgICAgICAgc3JjJD0iW1tfY3VycmVudERhdHVtLnVybF1dIgogICAgICAgIHR5cGUkPSJbW19jdXJyZW50RGF0dW0uY29udGVudFR5cGVdXSIKICAgICAgPjwvYXVkaW8+CiAgICAgIDx0Zi1tYXJrZG93bi12aWV3IGh0bWw9IltbX2N1cnJlbnREYXR1bS5sYWJlbF1dIj48L3RmLW1hcmtkb3duLXZpZXc+CiAgICA8L3RlbXBsYXRlPgogICAgPGRpdiBpZD0ibWFpbi1hdWRpby1jb250YWluZXIiPjwvZGl2PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJ0Zi1jYXJkLWhlYWRpbmctc3R5bGUiPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDM1MHB4OwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yOiAjNDI0MjQyOwogICAgICAgIG1hcmdpbi1yaWdodDogMTVweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CgogICAgICAjc3RlcHMgewogICAgICAgIGhlaWdodDogMTVweDsKICAgICAgICBtYXJnaW46IDAgMCAwIC0xNXB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZzogMCA1cHg7IC8qIHNvIHRoZSBzbGlkZXIga25vYiBkb2Vzbid0IGJ1dHQgb3V0ICovCiAgICAgICAgbWFyZ2luLXRvcDogNXB4OwogICAgICAgIC0tcGFwZXItc2xpZGVyLWFjdGl2ZS1jb2xvcjogdmFyKC0tc3RlcC1zbGlkZXIta25vYi1jb2xvcik7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1jb2xvcjogdmFyKC0tc3RlcC1zbGlkZXIta25vYi1jb2xvcik7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWJvcmRlci1jb2xvcjogdmFyKC0tc3RlcC1zbGlkZXIta25vYi1jb2xvcik7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLXN0YXJ0LWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEpSLnByb3RvdHlwZSwicnVuIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEpSLnByb3RvdHlwZSwidGFnIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpSLnByb3RvdHlwZSwic2FtcGxlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpSLnByb3RvdHlwZSwidG90YWxTYW1wbGVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpSLnByb3RvdHlwZSwidGFnTWV0YWRhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsZHIpXSxKUi5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLFhSKV0sSlIucHJvdG90eXBlLCJfbWV0YWRhdGFDYW5jZWxsZXIiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLEpSLnByb3RvdHlwZSwiX3N0ZXBzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpSLnByb3RvdHlwZSwiX3N0ZXBJbmRleCIsdm9pZCAwKSx0KFtzKCJydW4iKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKUi5wcm90b3R5cGUsIl9ydW5Db2xvciIsbnVsbCksdChbcygiX3N0ZXBzIiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEpSLnByb3RvdHlwZSwiX2hhc0F0TGVhc3RPbmVTdGVwIixudWxsKSx0KFtzKCJfc3RlcHMiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlIucHJvdG90eXBlLCJfaGFzTXVsdGlwbGVTdGVwcyIsbnVsbCksdChbcygiX3N0ZXBzIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlIucHJvdG90eXBlLCJfbWF4U3RlcEluZGV4IixudWxsKSx0KFtzKCJfc3RlcHMiLCJfc3RlcEluZGV4IiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlIucHJvdG90eXBlLCJfY3VycmVudERhdHVtIixudWxsKSx0KFtzKCJzYW1wbGUiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKUi5wcm90b3R5cGUsIl9zYW1wbGVUZXh0IixudWxsKSx0KFtzKCJ0b3RhbFNhbXBsZXMiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlIucHJvdG90eXBlLCJfaGFzTXVsdGlwbGVTYW1wbGVzIixudWxsKSx0KFthKCJydW4iLCJ0YWciKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEpSLnByb3RvdHlwZSwiX3JlbG9hZE9uUnVuVGFnQ2hhbmdlIixudWxsKSxKUj10KFtpKCJ0Zi1hdWRpby1sb2FkZXIiKV0sSlIpO2xldCBRUj1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVsb2FkT25SZWFkeT0hMCx0aGlzLl90YWdGaWx0ZXI9IiIsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IGRyfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKCk9Pnt0aGlzLl9yZWxvYWRBdWRpbygpfSkpfV9mZXRjaFRhZ3MoKXtjb25zdCB0PV9yKCkucGx1Z2luUm91dGUoImF1ZGlvIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoU2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47Y29uc3QgZT1hcihTZS5leHBvcnRzLm1hcFZhbHVlcyh0LCh0PT5PYmplY3Qua2V5cyh0KSkpKTt0aGlzLnNldCgiX2RhdGFOb3RGb3VuZCIsMD09PWUubGVuZ3RoKSx0aGlzLnNldCgiX3J1blRvVGFnSW5mbyIsdCl9KSl9X3JlbG9hZEF1ZGlvKCl7dGhpcy5yb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLWF1ZGlvLWxvYWRlciIpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfWdldCBfY2F0ZWdvcmllcygpe3ZhciB0PXRoaXMuX3J1blRvVGFnSW5mbyxlPXRoaXMuX3NlbGVjdGVkUnVucyxuPXRoaXMuX3RhZ0ZpbHRlcjtmdW5jdGlvbiBpKGUpe2NvbnN0IG49dFtlLnJ1bl1bZS50YWddLnNhbXBsZXM7cmV0dXJuIFNlLmV4cG9ydHMucmFuZ2UobikubWFwKCh0PT5PYmplY3QuYXNzaWduKHt9LGUse3NhbXBsZTp0LHRvdGFsU2FtcGxlczpufSkpKX1yZXR1cm4gTXIoU2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+T2JqZWN0LmtleXModCkpKSxlLG4pLm1hcCgodD0+T2JqZWN0LmFzc2lnbih7fSx0LHtpdGVtczpbXS5jb25jYXQuYXBwbHkoW10sdC5pdGVtcy5tYXAoaSkpfSkpKX1fdGFnTWV0YWRhdGEodCxlLG4pe3JldHVybiB0W2VdW25dfX07UVIudGVtcGxhdGU9X2VgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciIgc2xvdD0ic2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3IKICAgICAgICAgICAgaWQ9InJ1bnMtc2VsZWN0b3IiCiAgICAgICAgICAgIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319IgogICAgICAgICAgPjwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBhdWRpbyBkYXRhIHdhcyBmb3VuZC48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPllvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgYXVkaW8gZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0Zi10YWctZmlsdGVyZXIgdGFnLWZpbHRlcj0ie3tfdGFnRmlsdGVyfX0iPjwvdGYtdGFnLWZpbHRlcmVyPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY2F0ZWdvcmllc11dIiBhcz0iY2F0ZWdvcnkiPgogICAgICAgICAgICA8dGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXcKICAgICAgICAgICAgICBjYXRlZ29yeT0iW1tjYXRlZ29yeV1dIgogICAgICAgICAgICAgIGluaXRpYWwtb3BlbmVkPSJbW19zaG91bGRPcGVuKGluZGV4KV1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRmLWF1ZGlvLWxvYWRlcgogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIHJ1bj0iW1tpdGVtLnJ1bl1dIgogICAgICAgICAgICAgICAgICB0YWc9IltbaXRlbS50YWddXSIKICAgICAgICAgICAgICAgICAgc2FtcGxlPSJbW2l0ZW0uc2FtcGxlXV0iCiAgICAgICAgICAgICAgICAgIHRvdGFsLXNhbXBsZXM9IltbaXRlbS50b3RhbFNhbXBsZXNdXSIKICAgICAgICAgICAgICAgICAgdGFnLW1ldGFkYXRhPSJbW190YWdNZXRhZGF0YShfcnVuVG9UYWdJbmZvLCBpdGVtLnJ1biwgaXRlbS50YWcpXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgID48L3RmLWF1ZGlvLWxvYWRlcj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxRUi5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFFSLnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRUi5wcm90b3R5cGUsIl9ydW5Ub1RhZ0luZm8iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxRUi5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUVIucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0sUVIucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbcygiX3J1blRvVGFnSW5mbyIsIl9zZWxlY3RlZFJ1bnMiLCJfdGFnRmlsdGVyIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxRUi5wcm90b3R5cGUsIl9jYXRlZ29yaWVzIixudWxsKSxRUj10KFtpKCJ0Zi1hdWRpby1kYXNoYm9hcmQiKV0sUVIpO2xldCB0Tz1jbGFzcyBleHRlbmRzKGVyKHllKSl7YXR0YWNoZWQoKXt0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuZ2V0RWZmZWN0aXZlQ2hpbGRyZW4oKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RoaXMubGlzdGVuKHQsInRhcCIsIl9zZWxlY3RUYXJnZXQiKX0uYmluZCh0aGlzKSl9KSl9X3NlbGVjdFRhcmdldCh0KXt0aGlzLnNlbGVjdGVkSWQ9dC5jdXJyZW50VGFyZ2V0LmlkfV9zZWxlY3RlZElkQ2hhbmdlZCgpe3ZhciB0PXRoaXMucXVlcnlFZmZlY3RpdmVDaGlsZHJlbigiIyIrdGhpcy5zZWxlY3RlZElkKTt0JiYodGhpcy5nZXRFZmZlY3RpdmVDaGlsZHJlbigpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKX0pKSx0LmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIikpfX07ZnVuY3Rpb24gZU8odCxlKXtsZXQgbjtjb25zdCBpPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChlPT57Y29uc3Qgcj10W2VdO3ZvaWQgMD09PW4mJihuPXIuZGlzcGxheU5hbWUpLG4hPT1yLmRpc3BsYXlOYW1lJiYobj1udWxsKSx2b2lkIDA9PT1pW3IuZGVzY3JpcHRpb25dJiYoaVtyLmRlc2NyaXB0aW9uXT1bXSksaVtyLmRlc2NyaXB0aW9uXS5wdXNoKGUpfSkpLHtkaXNwbGF5TmFtZTpudWxsIT1uP246ZSxkZXNjcmlwdGlvbjooKCk9Pntjb25zdCB0PU9iamVjdC5rZXlzKGkpO3JldHVybiAwPT09dC5sZW5ndGg/IiI6MT09PXQubGVuZ3RoP3RbMF06YDxwPjxzdHJvbmc+TXVsdGlwbGUgZGVzY3JpcHRpb25zOjwvc3Ryb25nPjwvcD48dWw+JHt0Lm1hcCgodD0+e2NvbnN0IGU9aVt0XS5tYXAoKHQ9PmA8Y29kZT4ke3QucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvJi9nLCImYW1wOyIpfTwvY29kZT5gKSksbj1lLmxlbmd0aD4yP2Uuc2xpY2UoMCxlLmxlbmd0aC0xKS5qb2luKCIsICIpKyIsIGFuZCAiK2VbZS5sZW5ndGgtMV06ZS5qb2luKCIgYW5kICIpO3JldHVybmA8bGk+PHA+Rm9yICR7KGZ1bmN0aW9uIHIodCxlLG4pe3JldHVybiAxPT09dD9lOm59KShlLmxlbmd0aCwicnVuIiwicnVucyIpfSAke259OjwvcD4ke3R9PC9saT5gfSkpLmpvaW4oIiIpfTwvdWw+YH0pKCl9fXRPLnRlbXBsYXRlPV9lYAogICAgPGRpdiBpZD0id3JhcCI+CiAgICAgIDxoMz5bW25hbWVdXTwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+PHNsb3Q+PC9zbG90PjwvZGl2PgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIC5jb250ZW50LXdyYXBwZXIgOjpzbG90dGVkKCopIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi11aS1kYXJrLWFjY2VudCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LXdyYXBwZXIgOjpzbG90dGVkKCopIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi11aS1kYXJrLWFjY2VudCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LXdyYXBwZXIgOjpzbG90dGVkKC5zZWxlY3RlZCkgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTsKICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgaDMgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgICAgbWFyZ2luOiAwIDAgNXB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sdE8ucHJvdG90eXBlLCJuYW1lIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMCxvYnNlcnZlcjoiX3NlbGVjdGVkSWRDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx0Ty5wcm90b3R5cGUsInNlbGVjdGVkSWQiLHZvaWQgMCksdE89dChbaSgidGYtb3B0aW9uLXNlbGVjdG9yIildLHRPKTtsZXQgbk89Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy53ZWlnaHQ9LjYsdGhpcy5fdXBkYXRlV2VpZ2h0PVNlLmV4cG9ydHMuZGVib3VuY2UoKGZ1bmN0aW9uKHQpe3RoaXMud2VpZ2h0PXR9KSwyNTApfV9pbW1lZGlhdGVXZWlnaHROdW1iZXJGb3JQYXBlclNsaWRlckNoYW5nZWQoKXt0aGlzLl9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXQ9dGhpcy5faW1tZWRpYXRlV2VpZ2h0TnVtYmVyRm9yUGFwZXJTbGlkZXIudG9TdHJpbmcoKSx0aGlzLl91cGRhdGVXZWlnaHQuY2FsbCh0aGlzLHRoaXMuX2ltbWVkaWF0ZVdlaWdodE51bWJlckZvclBhcGVyU2xpZGVyKX1faW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0Q2hhbmdlZCgpeyt0aGlzLl9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXQ8MD90aGlzLl9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXQ9IjAiOit0aGlzLl9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXQ+MSYmKHRoaXMuX2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dD0iMSIpO3ZhciB0PSt0aGlzLl9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXQ7aXNOYU4odCl8fHRoaXMuX3VwZGF0ZVdlaWdodC5jYWxsKHRoaXMsdCl9fTtmdW5jdGlvbiBpTyh0LGUpe2NvbnN0IG49T2JqZWN0LmtleXMoZSkuc29ydCgpLmZpbHRlcigodD0+dm9pZCAwIT09ZVt0XSkpO2lmKCFuLmxlbmd0aClyZXR1cm4gdDtjb25zdCBpPS0xIT09dC5pbmRleE9mKCI/Iik/IiYiOiI/IjtyZXR1cm4gdCtpK1tdLmNvbmNhdCguLi5uLm1hcCgodD0+e2NvbnN0IG49ZVt0XTtyZXR1cm4oQXJyYXkuaXNBcnJheShuKT9uOltuXSkubWFwKChlPT5gJHt0fT0keyhmdW5jdGlvbiBuKHQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQodCkucmVwbGFjZSgvXCgvZywiJTI4IikucmVwbGFjZSgvXCkvZywiJTI5Iil9KShlKX1gKSl9KSkpLmpvaW4oIiYiKX1uTy50ZW1wbGF0ZT1fZWAKICAgIDxoMyBjbGFzcz0idGl0bGUiPlNtb290aGluZzwvaDM+CiAgICA8ZGl2IGNsYXNzPSJzbW9vdGhpbmctYmxvY2siPgogICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgaWQ9InNsaWRlciIKICAgICAgICBpbW1lZGlhdGUtdmFsdWU9Int7X2ltbWVkaWF0ZVdlaWdodE51bWJlckZvclBhcGVyU2xpZGVyfX0iCiAgICAgICAgbWF4PSJbW21heF1dIgogICAgICAgIG1pbj0iW1ttaW5dXSIKICAgICAgICBwaW4KICAgICAgICBzdGVwPSJbW3N0ZXBdXSIKICAgICAgICB0eXBlPSJudW1iZXIiCiAgICAgICAgdmFsdWU9Int7d2VpZ2h0fX0iCiAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgaWQ9ImlucHV0IgogICAgICAgIGxhYmVsPSJ3ZWlnaHQiCiAgICAgICAgbm8tbGFiZWwtZmxvYXQKICAgICAgICB2YWx1ZT0ie3tfaW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0fX0iCiAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgIHN0ZXA9Iltbc3RlcF1dIgogICAgICAgIG1pbj0iW1ttaW5dXSIKICAgICAgICBtYXg9IltbbWF4XV0iCiAgICAgID48L3BhcGVyLWlucHV0PgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIC50aXRsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICB9CgogICAgICAuc21vb3RoaW5nLWJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICBwYXBlci1zbGlkZXIgewogICAgICAgIC0tcGFwZXItc2xpZGVyLWFjdGl2ZS1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1ib3JkZXItY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLW1hcmtlcnMtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLXBpbi1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLXN0YXJ0LWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICBmbGV4LWdyb3c6IDI7CiAgICAgIH0KCiAgICAgIHBhcGVyLWlucHV0IHsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWw6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxuTy5wcm90b3R5cGUsInN0ZXAiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sbk8ucHJvdG90eXBlLCJtYXgiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sbk8ucHJvdG90eXBlLCJtaW4iLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLG5PLnByb3RvdHlwZSwid2VpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMCxvYnNlcnZlcjoiX2ltbWVkaWF0ZVdlaWdodE51bWJlckZvclBhcGVyU2xpZGVyQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sbk8ucHJvdG90eXBlLCJfaW1tZWRpYXRlV2VpZ2h0TnVtYmVyRm9yUGFwZXJTbGlkZXIiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwLG9ic2VydmVyOiJfaW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0Q2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sbk8ucHJvdG90eXBlLCJfaW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0Iix2b2lkIDApLG5PPXQoW2koInRmLXNtb290aGluZy1pbnB1dCIpXSxuTyk7dmFyIHJPPXt9LG9PPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxhTz1PYmplY3QuYXNzaWdufHxmdW5jdGlvbiB0KGUpe2Zvcih2YXIgbixpPTEscj1hcmd1bWVudHMubGVuZ3RoO2k8cjtpKyspZm9yKHZhciBvIGluIG49YXJndW1lbnRzW2ldKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLG8pJiYoZVtvXT1uW29dKTtyZXR1cm4gZX07Ci8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCiAgICB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZQogICAgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgICBUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIEFOWSBJTVBMSUVECiAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLAogICAgTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KCiAgICBTZWUgdGhlIEFwYWNoZSBWZXJzaW9uIDIuMCBMaWNlbnNlIGZvciBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMKICAgIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovZnVuY3Rpb24gc08odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdLG49MDtyZXR1cm4gZT9lLmNhbGwodCk6e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCYmbj49dC5sZW5ndGgmJih0PXZvaWQgMCkse3ZhbHVlOnQmJnRbbisrXSxkb25lOiF0fX19fWZ1bmN0aW9uIGxPKHQsZSl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFuKXJldHVybiB0O3ZhciBpLHIsbz1uLmNhbGwodCksYT1bXTt0cnl7Zm9yKDsodm9pZCAwPT09ZXx8ZS0tID4wKSYmIShpPW8ubmV4dCgpKS5kb25lOylhLnB1c2goaS52YWx1ZSl9Y2F0Y2godCl7cj17ZXJyb3I6dH19ZmluYWxseXt0cnl7aSYmIWkuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihyKXRocm93IHIuZXJyb3J9fXJldHVybiBhfWZ1bmN0aW9uIGNPKHQpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgY08/KHRoaXMudj10LHRoaXMpOm5ldyBjTyh0KX12YXIgdU89YmUoT2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsX19leHRlbmRzOmZ1bmN0aW9uIGhPKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1vTyh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0sX19hc3NpZ246YU8sX19yZXN0OmZ1bmN0aW9uIGRPKHQsZSl7dmFyIG49e307Zm9yKHZhciBpIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJmUuaW5kZXhPZihpKTwwJiYobltpXT10W2ldKTtpZihudWxsIT10JiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9MDtmb3IoaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO3I8aS5sZW5ndGg7cisrKWUuaW5kZXhPZihpW3JdKTwwJiYobltpW3JdXT10W2lbcl1dKX1yZXR1cm4gbn0sX19kZWNvcmF0ZTpmdW5jdGlvbiBwTyh0LGUsbixpKXt2YXIgcixvPWFyZ3VtZW50cy5sZW5ndGgsYT1vPDM/ZTpudWxsPT09aT9pPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTppO2lmKCJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmImZ1bmN0aW9uIj09dHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUpYT1SZWZsZWN0LmRlY29yYXRlKHQsZSxuLGkpO2Vsc2UgZm9yKHZhciBzPXQubGVuZ3RoLTE7cz49MDtzLS0pKHI9dFtzXSkmJihhPShvPDM/cihhKTpvPjM/cihlLG4sYSk6cihlLG4pKXx8YSk7cmV0dXJuIG8+MyYmYSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixhKSxhfSxfX3BhcmFtOmZ1bmN0aW9uIGZPKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7ZShuLGksdCl9fSxfX21ldGFkYXRhOmZ1bmN0aW9uIG1PKHQsZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYiZnVuY3Rpb24iPT10eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSlyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YSh0LGUpfSxfX2F3YWl0ZXI6ZnVuY3Rpb24gZ08odCxlLG4saSl7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKHIsbyl7ZnVuY3Rpb24gYSh0KXt0cnl7bChpLm5leHQodCkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHModCl7dHJ5e2woaS50aHJvdyh0KSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gbCh0KXt0LmRvbmU/cih0LnZhbHVlKTpuZXcgbigoZnVuY3Rpb24oZSl7ZSh0LnZhbHVlKX0pKS50aGVuKGEscyl9bCgoaT1pLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSkpfSxfX2dlbmVyYXRvcjpmdW5jdGlvbiBfTyh0LGUpe3ZhciBuLGkscixvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmclswXSl0aHJvdyByWzFdO3JldHVybiByWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6cygwKSx0aHJvdzpzKDEpLHJldHVybjpzKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIHMobyl7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybihmdW5jdGlvbiBsKG8pe2lmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7YTspdHJ5e2lmKG49MSxpJiYocj1pWzImb1swXT8icmV0dXJuIjpvWzBdPyJ0aHJvdyI6Im5leHQiXSkmJiEocj1yLmNhbGwoaSxvWzFdKSkuZG9uZSlyZXR1cm4gcjtzd2l0Y2goaT0wLHImJihvPVswLHIudmFsdWVdKSxvWzBdKXtjYXNlIDA6Y2FzZSAxOnI9bzticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6b1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLGk9b1sxXSxvPVswXTtjb250aW51ZTtjYXNlIDc6bz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChyPShyPWEudHJ5cykubGVuZ3RoPjAmJnJbci5sZW5ndGgtMV0pfHw2IT09b1swXSYmMiE9PW9bMF0pKXthPTA7Y29udGludWV9aWYoMz09PW9bMF0mJighcnx8b1sxXT5yWzBdJiZvWzFdPHJbM10pKXthLmxhYmVsPW9bMV07YnJlYWt9aWYoNj09PW9bMF0mJmEubGFiZWw8clsxXSl7YS5sYWJlbD1yWzFdLHI9bzticmVha31pZihyJiZhLmxhYmVsPHJbMl0pe2EubGFiZWw9clsyXSxhLm9wcy5wdXNoKG8pO2JyZWFrfXJbMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1vPWUuY2FsbCh0LGEpfWNhdGNoKHQpe289WzYsdF0saT0wfWZpbmFsbHl7bj1yPTB9aWYoNSZvWzBdKXRocm93IG9bMV07cmV0dXJue3ZhbHVlOm9bMF0/b1sxXTp2b2lkIDAsZG9uZTohMH19KShbbyxzXSl9fX0sX19leHBvcnRTdGFyOmZ1bmN0aW9uIHlPKHQsZSl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9LF9fdmFsdWVzOnNPLF9fcmVhZDpsTyxfX3NwcmVhZDpmdW5jdGlvbiB2Tygpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0PXQuY29uY2F0KGxPKGFyZ3VtZW50c1tlXSkpO3JldHVybiB0fSxfX2F3YWl0OmNPLF9fYXN5bmNHZW5lcmF0b3I6ZnVuY3Rpb24gYk8odCxlLG4pe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgaSxyPW4uYXBwbHkodCxlfHxbXSksbz1bXTtyZXR1cm4gaT17fSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iKSxpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxpO2Z1bmN0aW9uIGEodCl7clt0XSYmKGlbdF09ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuLGkpe28ucHVzaChbdCxlLG4saV0pPjF8fHModCxlKX0pKX0pfWZ1bmN0aW9uIHModCxlKXt0cnl7IShmdW5jdGlvbiBuKHQpe3QudmFsdWUgaW5zdGFuY2VvZiBjTz9Qcm9taXNlLnJlc29sdmUodC52YWx1ZS52KS50aGVuKGwsYyk6dShvWzBdWzJdLHQpfSkoclt0XShlKSl9Y2F0Y2godCl7dShvWzBdWzNdLHQpfX1mdW5jdGlvbiBsKHQpe3MoIm5leHQiLHQpfWZ1bmN0aW9uIGModCl7cygidGhyb3ciLHQpfWZ1bmN0aW9uIHUodCxlKXt0KGUpLG8uc2hpZnQoKSxvLmxlbmd0aCYmcyhvWzBdWzBdLG9bMF1bMV0pfX0sX19hc3luY0RlbGVnYXRvcjpmdW5jdGlvbiB4Tyh0KXt2YXIgZSxuO3JldHVybiBlPXt9LGkoIm5leHQiKSxpKCJ0aHJvdyIsKGZ1bmN0aW9uKHQpe3Rocm93IHR9KSksaSgicmV0dXJuIiksZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGU7ZnVuY3Rpb24gaShpLHIpe3RbaV0mJihlW2ldPWZ1bmN0aW9uKGUpe3JldHVybihuPSFuKT97dmFsdWU6Y08odFtpXShlKSksZG9uZToicmV0dXJuIj09PWl9OnI/cihlKTplfSl9fSxfX2FzeW5jVmFsdWVzOmZ1bmN0aW9uIHdPKHQpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgZT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXTtyZXR1cm4gZT9lLmNhbGwodCk6c08odCl9LF9fbWFrZVRlbXBsYXRlT2JqZWN0OmZ1bmN0aW9uIFNPKHQsZSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eT9PYmplY3QuZGVmaW5lUHJvcGVydHkodCwicmF3Iix7dmFsdWU6ZX0pOnQucmF3PWUsdH19KSk7ZnVuY3Rpb24gTU8odCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gRU8odCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIE1PKHQoZSksbil9fSkodCkpLHtsZWZ0OmZ1bmN0aW9uKGUsbixpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj1lLmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTt0KGVbb10sbik8MD9pPW8rMTpyPW99cmV0dXJuIGl9LHJpZ2h0OmZ1bmN0aW9uKGUsbixpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj1lLmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTt0KGVbb10sbik+MD9yPW86aT1vKzF9cmV0dXJuIGl9fX12YXIgVE89RU8oTU8pLENPPVRPLnJpZ2h0LEFPPVRPLmxlZnQ7ZnVuY3Rpb24ga08odCxlKXtyZXR1cm5bdCxlXX1mdW5jdGlvbiBMTyh0KXtyZXR1cm4gbnVsbD09PXQ/TmFOOit0fWZ1bmN0aW9uIFBPKHQsZSl7dmFyIG4saSxyPXQubGVuZ3RoLG89MCxhPS0xLHM9MCxsPTA7aWYobnVsbD09ZSlmb3IoOysrYTxyOylpc05hTihuPUxPKHRbYV0pKXx8KGwrPShpPW4tcykqKG4tKHMrPWkvKytvKSkpO2Vsc2UgZm9yKDsrK2E8cjspaXNOYU4obj1MTyhlKHRbYV0sYSx0KSkpfHwobCs9KGk9bi1zKSoobi0ocys9aS8rK28pKSk7aWYobz4xKXJldHVybiBsLyhvLTEpfWZ1bmN0aW9uIE5PKHQsZSl7dmFyIG49UE8odCxlKTtyZXR1cm4gbj9NYXRoLnNxcnQobik6bn1mdW5jdGlvbiBJTyh0LGUpe3ZhciBuLGkscixvPXQubGVuZ3RoLGE9LTE7aWYobnVsbD09ZSl7Zm9yKDsrK2E8bzspaWYobnVsbCE9KG49dFthXSkmJm4+PW4pZm9yKGk9cj1uOysrYTxvOyludWxsIT0obj10W2FdKSYmKGk+biYmKGk9bikscjxuJiYocj1uKSl9ZWxzZSBmb3IoOysrYTxvOylpZihudWxsIT0obj1lKHRbYV0sYSx0KSkmJm4+PW4pZm9yKGk9cj1uOysrYTxvOyludWxsIT0obj1lKHRbYV0sYSx0KSkmJihpPm4mJihpPW4pLHI8biYmKHI9bikpO3JldHVybltpLHJdfXZhciBSTz1BcnJheS5wcm90b3R5cGUsT089Uk8uc2xpY2Usek89Uk8ubWFwO2Z1bmN0aW9uIERPKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBCTyh0KXtyZXR1cm4gdH1mdW5jdGlvbiBITyh0LGUsbil7dD0rdCxlPStlLG49KHI9YXJndW1lbnRzLmxlbmd0aCk8Mj8oZT10LHQ9MCwxKTpyPDM/MTorbjtmb3IodmFyIGk9LTEscj0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChlLXQpL24pKSxvPW5ldyBBcnJheShyKTsrK2k8cjspb1tpXT10K2kqbjtyZXR1cm4gb312YXIgRk89TWF0aC5zcXJ0KDUwKSxWTz1NYXRoLnNxcnQoMTApLFVPPU1hdGguc3FydCgyKTtmdW5jdGlvbiBqTyh0LGUsbil7dmFyIGk9KGUtdCkvTWF0aC5tYXgoMCxuKSxyPU1hdGguZmxvb3IoTWF0aC5sb2coaSkvTWF0aC5MTjEwKSxvPWkvTWF0aC5wb3coMTAscik7cmV0dXJuIHI+PTA/KG8+PUZPPzEwOm8+PVZPPzU6bz49VU8/MjoxKSpNYXRoLnBvdygxMCxyKTotTWF0aC5wb3coMTAsLXIpLyhvPj1GTz8xMDpvPj1WTz81Om8+PVVPPzI6MSl9ZnVuY3Rpb24gR08odCxlLG4pe3ZhciBpPU1hdGguYWJzKGUtdCkvTWF0aC5tYXgoMCxuKSxyPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2coaSkvTWF0aC5MTjEwKSksbz1pL3I7cmV0dXJuIG8+PUZPP3IqPTEwOm8+PVZPP3IqPTU6bz49VU8mJihyKj0yKSxlPHQ/LXI6cn1mdW5jdGlvbiBXTyh0KXtyZXR1cm4gTWF0aC5jZWlsKE1hdGgubG9nKHQubGVuZ3RoKS9NYXRoLkxOMikrMX1mdW5jdGlvbiBxTyh0LGUsbil7aWYobnVsbD09biYmKG49TE8pLGk9dC5sZW5ndGgpe2lmKChlPStlKTw9MHx8aTwyKXJldHVybituKHRbMF0sMCx0KTtpZihlPj0xKXJldHVybituKHRbaS0xXSxpLTEsdCk7dmFyIGkscj0oaS0xKSplLG89TWF0aC5mbG9vcihyKSxhPStuKHRbb10sbyx0KTtyZXR1cm4gYSsoK24odFtvKzFdLG8rMSx0KS1hKSooci1vKX19ZnVuY3Rpb24gWU8odCxlKXt2YXIgbixpLHI9dC5sZW5ndGgsbz0tMTtpZihudWxsPT1lKXtmb3IoOysrbzxyOylpZihudWxsIT0obj10W29dKSYmbj49bilmb3IoaT1uOysrbzxyOyludWxsIT0obj10W29dKSYmaT5uJiYoaT1uKX1lbHNlIGZvcig7KytvPHI7KWlmKG51bGwhPShuPWUodFtvXSxvLHQpKSYmbj49bilmb3IoaT1uOysrbzxyOyludWxsIT0obj1lKHRbb10sbyx0KSkmJmk+biYmKGk9bik7cmV0dXJuIGl9ZnVuY3Rpb24gWE8odCl7aWYoIShyPXQubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIGU9LTEsbj1ZTyh0LCRPKSxpPW5ldyBBcnJheShuKTsrK2U8bjspZm9yKHZhciByLG89LTEsYT1pW2VdPW5ldyBBcnJheShyKTsrK288cjspYVtvXT10W29dW2VdO3JldHVybiBpfWZ1bmN0aW9uICRPKHQpe3JldHVybiB0Lmxlbmd0aH12YXIgS089QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIFpPKHQpe3JldHVybiB0fXZhciBKTz0xZS02O2Z1bmN0aW9uIFFPKHQpe3JldHVybiJ0cmFuc2xhdGUoIisodCsuNSkrIiwwKSJ9ZnVuY3Rpb24gdHoodCl7cmV0dXJuInRyYW5zbGF0ZSgwLCIrKHQrLjUpKyIpIn1mdW5jdGlvbiBleih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuK3QoZSl9fWZ1bmN0aW9uIG56KHQpe3ZhciBlPU1hdGgubWF4KDAsdC5iYW5kd2lkdGgoKS0xKS8yO3JldHVybiB0LnJvdW5kKCkmJihlPU1hdGgucm91bmQoZSkpLGZ1bmN0aW9uKG4pe3JldHVybit0KG4pK2V9fWZ1bmN0aW9uIGl6KCl7cmV0dXJuIXRoaXMuX19heGlzfWZ1bmN0aW9uIHJ6KHQsZSl7dmFyIG49W10saT1udWxsLHI9bnVsbCxvPTYsYT02LHM9MyxsPTE9PT10fHw0PT09dD8tMToxLGM9ND09PXR8fDI9PT10PyJ4IjoieSIsdT0xPT09dHx8Mz09PXQ/UU86dHo7ZnVuY3Rpb24gaChoKXt2YXIgZD1udWxsPT1pP2UudGlja3M/ZS50aWNrcy5hcHBseShlLG4pOmUuZG9tYWluKCk6aSxwPW51bGw9PXI/ZS50aWNrRm9ybWF0P2UudGlja0Zvcm1hdC5hcHBseShlLG4pOlpPOnIsZj1NYXRoLm1heChvLDApK3MsbT1lLnJhbmdlKCksZz0rbVswXSsuNSxfPSttW20ubGVuZ3RoLTFdKy41LHk9KGUuYmFuZHdpZHRoP256OmV6KShlLmNvcHkoKSksdj1oLnNlbGVjdGlvbj9oLnNlbGVjdGlvbigpOmgsYj12LnNlbGVjdEFsbCgiLmRvbWFpbiIpLmRhdGEoW251bGxdKSx4PXYuc2VsZWN0QWxsKCIudGljayIpLmRhdGEoZCxlKS5vcmRlcigpLHc9eC5leGl0KCksUz14LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJ0aWNrIiksTT14LnNlbGVjdCgibGluZSIpLEU9eC5zZWxlY3QoInRleHQiKTtiPWIubWVyZ2UoYi5lbnRlcigpLmluc2VydCgicGF0aCIsIi50aWNrIikuYXR0cigiY2xhc3MiLCJkb21haW4iKS5hdHRyKCJzdHJva2UiLCIjMDAwIikpLHg9eC5tZXJnZShTKSxNPU0ubWVyZ2UoUy5hcHBlbmQoImxpbmUiKS5hdHRyKCJzdHJva2UiLCIjMDAwIikuYXR0cihjKyIyIixsKm8pKSxFPUUubWVyZ2UoUy5hcHBlbmQoInRleHQiKS5hdHRyKCJmaWxsIiwiIzAwMCIpLmF0dHIoYyxsKmYpLmF0dHIoImR5IiwxPT09dD8iMGVtIjozPT09dD8iMC43MWVtIjoiMC4zMmVtIikpLGghPT12JiYoYj1iLnRyYW5zaXRpb24oaCkseD14LnRyYW5zaXRpb24oaCksTT1NLnRyYW5zaXRpb24oaCksRT1FLnRyYW5zaXRpb24oaCksdz13LnRyYW5zaXRpb24oaCkuYXR0cigib3BhY2l0eSIsSk8pLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PXkodCkpP3UodCk6dGhpcy5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpfSkpLFMuYXR0cigib3BhY2l0eSIsSk8pLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGFyZW50Tm9kZS5fX2F4aXM7cmV0dXJuIHUoZSYmaXNGaW5pdGUoZT1lKHQpKT9lOnkodCkpfSkpKSx3LnJlbW92ZSgpLGIuYXR0cigiZCIsND09PXR8fDI9PXQ/Ik0iK2wqYSsiLCIrZysiSDAuNVYiK18rIkgiK2wqYToiTSIrZysiLCIrbCphKyJWMC41SCIrXysiViIrbCphKSx4LmF0dHIoIm9wYWNpdHkiLDEpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiB1KHkodCkpfSkpLE0uYXR0cihjKyIyIixsKm8pLEUuYXR0cihjLGwqZikudGV4dChwKSx2LmZpbHRlcihpeikuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJmb250LXNpemUiLDEwKS5hdHRyKCJmb250LWZhbWlseSIsInNhbnMtc2VyaWYiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsMj09PXQ/InN0YXJ0Ijo0PT09dD8iZW5kIjoibWlkZGxlIiksdi5lYWNoKChmdW5jdGlvbigpe3RoaXMuX19heGlzPXl9KSl9cmV0dXJuIGguc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxoKTplfSxoLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIG49S08uY2FsbChhcmd1bWVudHMpLGh9LGgudGlja0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P1tdOktPLmNhbGwodCksaCk6bi5zbGljZSgpfSxoLnRpY2tWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOktPLmNhbGwodCksaCk6aSYmaS5zbGljZSgpfSxoLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxoKTpyfSxoLnRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPWE9K3QsaCk6b30saC50aWNrU2l6ZUlubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSt0LGgpOm99LGgudGlja1NpemVPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxoKTphfSxoLnRpY2tQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LGgpOnN9LGh9dmFyIG96PXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIGF6KCl7Zm9yKHZhciB0LGU9MCxuPWFyZ3VtZW50cy5sZW5ndGgsaT17fTtlPG47KytlKXtpZighKHQ9YXJndW1lbnRzW2VdKyIiKXx8dCBpbiBpfHwvW1xzLl0vLnRlc3QodCkpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrdCk7aVt0XT1bXX1yZXR1cm4gbmV3IHN6KGkpfWZ1bmN0aW9uIHN6KHQpe3RoaXMuXz10fWZ1bmN0aW9uIGx6KHQsZSl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcCgoZnVuY3Rpb24odCl7dmFyIG49IiIsaT10LmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj10LnNsaWNlKGkrMSksdD10LnNsaWNlKDAsaSkpLHQmJiFlLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO3JldHVybnt0eXBlOnQsbmFtZTpufX0pKX1mdW5jdGlvbiBjeih0LGUpe2Zvcih2YXIgbixpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKChuPXRbaV0pLm5hbWU9PT1lKXJldHVybiBuLnZhbHVlfWZ1bmN0aW9uIHV6KHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT1veix0PXQuc2xpY2UoMCxpKS5jb25jYXQodC5zbGljZShpKzEpKTticmVha31yZXR1cm4gbnVsbCE9biYmdC5wdXNoKHtuYW1lOmUsdmFsdWU6bn0pLHR9c3oucHJvdG90eXBlPWF6LnByb3RvdHlwZT17Y29uc3RydWN0b3I6c3osb246ZnVuY3Rpb24odCxlKXt2YXIgbixpPXRoaXMuXyxyPWx6KHQrIiIsaSksbz0tMSxhPXIubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK2UpO2Zvcig7KytvPGE7KWlmKG49KHQ9cltvXSkudHlwZSlpW25dPXV6KGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09dXooaVtuXSx0Lm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9Zm9yKDsrK288YTspaWYoKG49KHQ9cltvXSkudHlwZSkmJihuPWN6KGlbbl0sdC5uYW1lKSkpcmV0dXJuIG59LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxlPXRoaXMuXztmb3IodmFyIG4gaW4gZSl0W25dPWVbbl0uc2xpY2UoKTtyZXR1cm4gbmV3IHN6KHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgaHo9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLGR6PXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpoeix4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9O2Z1bmN0aW9uIHB6KHQpe3ZhciBlPXQrPSIiLG49ZS5pbmRleE9mKCI6Iik7cmV0dXJuIG4+PTAmJiJ4bWxucyIhPT0oZT10LnNsaWNlKDAsbikpJiYodD10LnNsaWNlKG4rMSkpLGR6Lmhhc093blByb3BlcnR5KGUpP3tzcGFjZTpkeltlXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIGZ6KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudCxuPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBuPT09aHomJmUuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PWh6P2UuY3JlYXRlRWxlbWVudCh0KTplLmNyZWF0ZUVsZW1lbnROUyhuLHQpfX1mdW5jdGlvbiBteih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBneih0KXt2YXIgZT1weih0KTtyZXR1cm4oZS5sb2NhbD9tejpmeikoZSl9ZnVuY3Rpb24gX3ooKXt9ZnVuY3Rpb24geXoodCl7cmV0dXJuIG51bGw9PXQ/X3o6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiB2eigpe3JldHVybltdfWZ1bmN0aW9uIGJ6KHQpe3JldHVybiBudWxsPT10P3Z6OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24geHoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyh0KX19ZnVuY3Rpb24gd3oodCl7cmV0dXJuIG5ldyBBcnJheSh0Lmxlbmd0aCl9ZnVuY3Rpb24gU3oodCxlKXt0aGlzLm93bmVyRG9jdW1lbnQ9dC5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPXQubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9fZGF0YV9fPWV9ZnVuY3Rpb24gTXoodCxlLG4saSxyLG8pe2Zvcih2YXIgYSxzPTAsbD1lLmxlbmd0aCxjPW8ubGVuZ3RoO3M8YzsrK3MpKGE9ZVtzXSk/KGEuX19kYXRhX189b1tzXSxpW3NdPWEpOm5bc109bmV3IFN6KHQsb1tzXSk7Zm9yKDtzPGw7KytzKShhPWVbc10pJiYocltzXT1hKX1mdW5jdGlvbiBFeih0LGUsbixpLHIsbyxhKXt2YXIgcyxsLGMsdT17fSxoPWUubGVuZ3RoLGQ9by5sZW5ndGgscD1uZXcgQXJyYXkoaCk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiYocFtzXT1jPSIkIithLmNhbGwobCxsLl9fZGF0YV9fLHMsZSksYyBpbiB1P3Jbc109bDp1W2NdPWwpO2ZvcihzPTA7czxkOysrcykobD11W2M9IiQiK2EuY2FsbCh0LG9bc10scyxvKV0pPyhpW3NdPWwsbC5fX2RhdGFfXz1vW3NdLHVbY109bnVsbCk6bltzXT1uZXcgU3oodCxvW3NdKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJnVbcFtzXV09PT1sJiYocltzXT1sKX1mdW5jdGlvbiBUeih0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBDeih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gQXoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBreih0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKHQsZSl9fWZ1bmN0aW9uIEx6KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZSl9fWZ1bmN0aW9uIFB6KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KTp0aGlzLnNldEF0dHJpYnV0ZSh0LG4pfX1mdW5jdGlvbiBOeih0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLG4pfX1mdW5jdGlvbiBJeih0KXtyZXR1cm4gdC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gUnoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19ZnVuY3Rpb24gT3oodCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLG4pfX1mdW5jdGlvbiB6eih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09aT90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxpLG4pfX1mdW5jdGlvbiBEeih0LGUpe3JldHVybiB0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoZSl8fEl6KHQpLmdldENvbXB1dGVkU3R5bGUodCxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKGUpfWZ1bmN0aW9uIEJ6KHQpe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW3RdfX1mdW5jdGlvbiBIeih0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbdF09ZX19ZnVuY3Rpb24gRnoodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09bn19ZnVuY3Rpb24gVnoodCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIFV6KHQpe3JldHVybiB0LmNsYXNzTGlzdHx8bmV3IGp6KHQpfWZ1bmN0aW9uIGp6KHQpe3RoaXMuX25vZGU9dCx0aGlzLl9uYW1lcz1Weih0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfWZ1bmN0aW9uIEd6KHQsZSl7Zm9yKHZhciBuPVV6KHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5hZGQoZVtpXSl9ZnVuY3Rpb24gV3oodCxlKXtmb3IodmFyIG49VXoodCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLnJlbW92ZShlW2ldKX1mdW5jdGlvbiBxeih0KXtyZXR1cm4gZnVuY3Rpb24oKXtHeih0aGlzLHQpfX1mdW5jdGlvbiBZeih0KXtyZXR1cm4gZnVuY3Rpb24oKXtXeih0aGlzLHQpfX1mdW5jdGlvbiBYeih0LGUpe3JldHVybiBmdW5jdGlvbigpeyhlLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9HejpXeikodGhpcyx0KX19ZnVuY3Rpb24gJHooKXt0aGlzLnRleHRDb250ZW50PSIifWZ1bmN0aW9uIEt6KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24gWnoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIEp6KCl7dGhpcy5pbm5lckhUTUw9IiJ9ZnVuY3Rpb24gUXoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9dH19ZnVuY3Rpb24gdEQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBlRCgpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBuRCgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGlEKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gckQoKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiBvRCgpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCExKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9ZnVuY3Rpb24gYUQoKXt2YXIgdD10aGlzLmNsb25lTm9kZSghMCksZT10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGU/ZS5pbnNlcnRCZWZvcmUodCx0aGlzLm5leHRTaWJsaW5nKTp0fVN6LnByb3RvdHlwZT17Y29uc3RydWN0b3I6U3osYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCxlKX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3IodCl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHQpfX0sanoucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtlPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKGUsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgc0Q9e30sbEQ9bnVsbDtmdW5jdGlvbiBjRCh0LGUsbil7cmV0dXJuIHQ9dUQodCxlLG4pLGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVsYXRlZFRhcmdldDtuJiYobj09PXRoaXN8fDgmbi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiB1RCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3ZhciByPWxEO2xEPWk7dHJ5e3QuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxuKX1maW5hbGx5e2xEPXJ9fX1mdW5jdGlvbiBoRCh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgZT0iIixuPXQuaW5kZXhPZigiLiIpO3JldHVybiBuPj0wJiYoZT10LnNsaWNlKG4rMSksdD10LnNsaWNlKDAsbikpLHt0eXBlOnQsbmFtZTplfX0pKX1mdW5jdGlvbiBkRCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fb247aWYoZSl7Zm9yKHZhciBuLGk9MCxyPS0xLG89ZS5sZW5ndGg7aTxvOysraSluPWVbaV0sdC50eXBlJiZuLnR5cGUhPT10LnR5cGV8fG4ubmFtZSE9PXQubmFtZT9lWysrcl09bjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobi50eXBlLG4ubGlzdGVuZXIsbi5jYXB0dXJlKTsrK3I/ZS5sZW5ndGg9cjpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gcEQodCxlLG4pe3ZhciBpPXNELmhhc093blByb3BlcnR5KHQudHlwZSk/Y0Q6dUQ7cmV0dXJuIGZ1bmN0aW9uKHIsbyxhKXt2YXIgcyxsPXRoaXMuX19vbixjPWkoZSxvLGEpO2lmKGwpZm9yKHZhciB1PTAsaD1sLmxlbmd0aDt1PGg7Kyt1KWlmKChzPWxbdV0pLnR5cGU9PT10LnR5cGUmJnMubmFtZT09PXQubmFtZSlyZXR1cm4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyLHMuY2FwdHVyZSksdGhpcy5hZGRFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyPWMscy5jYXB0dXJlPW4pLHZvaWQocy52YWx1ZT1lKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIodC50eXBlLGMsbikscz17dHlwZTp0LnR5cGUsbmFtZTp0Lm5hbWUsdmFsdWU6ZSxsaXN0ZW5lcjpjLGNhcHR1cmU6bn0sbD9sLnB1c2gocyk6dGhpcy5fX29uPVtzXX19ZnVuY3Rpb24gZkQodCxlLG4pe3ZhciBpPUl6KHQpLHI9aS5DdXN0b21FdmVudDsiZnVuY3Rpb24iPT10eXBlb2Ygcj9yPW5ldyByKGUsbik6KHI9aS5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxuPyhyLmluaXRFdmVudChlLG4uYnViYmxlcyxuLmNhbmNlbGFibGUpLHIuZGV0YWlsPW4uZGV0YWlsKTpyLmluaXRFdmVudChlLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KHIpfWZ1bmN0aW9uIG1EKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGZEKHRoaXMsdCxlKX19ZnVuY3Rpb24gZ0QodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZkQodGhpcyx0LGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmKCJvbm1vdXNlZW50ZXIiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHwoc0Q9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpO3ZhciBfRD1bbnVsbF07ZnVuY3Rpb24geUQodCxlKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWV9ZnVuY3Rpb24gdkQoKXtyZXR1cm4gbmV3IHlEKFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sX0QpfWZ1bmN0aW9uIGJEKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9uZXcgeUQoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB5RChbW3RdXSxfRCl9ZnVuY3Rpb24geEQodCl7dmFyIGU9KGZ1bmN0aW9uIG4oKXtmb3IodmFyIHQsZT1sRDt0PWUuc291cmNlRXZlbnQ7KWU9dDtyZXR1cm4gZX0pKCk7cmV0dXJuIGUuY2hhbmdlZFRvdWNoZXMmJihlPWUuY2hhbmdlZFRvdWNoZXNbMF0pLChmdW5jdGlvbiBpKHQsZSl7dmFyIG49dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIGk9bi5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBpLng9ZS5jbGllbnRYLGkueT1lLmNsaWVudFksWyhpPWkubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxpLnldfXZhciByPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW2UuY2xpZW50WC1yLmxlZnQtdC5jbGllbnRMZWZ0LGUuY2xpZW50WS1yLnRvcC10LmNsaWVudFRvcF19KSh0LGUpfWZ1bmN0aW9uIHdEKCl7bEQucHJldmVudERlZmF1bHQoKSxsRC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBTRCh0KXt2YXIgZT10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPWJEKHQpLm9uKCJkcmFnc3RhcnQuZHJhZyIsd0QsITApOyJvbnNlbGVjdHN0YXJ0ImluIGU/bi5vbigic2VsZWN0c3RhcnQuZHJhZyIsd0QsITApOihlLl9fbm9zZWxlY3Q9ZS5zdHlsZS5Nb3pVc2VyU2VsZWN0LGUuc3R5bGUuTW96VXNlclNlbGVjdD0ibm9uZSIpfWZ1bmN0aW9uIE1EKHQsZSl7dmFyIG49dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsaT1iRCh0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLG51bGwpO2UmJihpLm9uKCJjbGljay5kcmFnIix3RCwhMCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpLm9uKCJjbGljay5kcmFnIixudWxsKX0pLDApKSwib25zZWxlY3RzdGFydCJpbiBuP2kub24oInNlbGVjdHN0YXJ0LmRyYWciLG51bGwpOihuLnN0eWxlLk1velVzZXJTZWxlY3Q9bi5fX25vc2VsZWN0LGRlbGV0ZSBuLl9fbm9zZWxlY3QpfWZ1bmN0aW9uIEVEKHQsZSxuKXt0LnByb3RvdHlwZT1lLnByb3RvdHlwZT1uLG4uY29uc3RydWN0b3I9dH1mdW5jdGlvbiBURCh0LGUpe3ZhciBuPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpO2Zvcih2YXIgaSBpbiBlKW5baV09ZVtpXTtyZXR1cm4gbn1mdW5jdGlvbiBDRCgpe315RC5wcm90b3R5cGU9dkQucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp5RCxzZWxlY3Q6ZnVuY3Rpb24gQUQodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXl6KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGEscz1lW3JdLGw9cy5sZW5ndGgsYz1pW3JdPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkobz1zW3VdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyx1LHMpKSYmKCJfX2RhdGFfXyJpbiBvJiYoYS5fX2RhdGFfXz1vLl9fZGF0YV9fKSxjW3VdPWEpO3JldHVybiBuZXcgeUQoaSx0aGlzLl9wYXJlbnRzKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIGtEKHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1ieih0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9W10scj1bXSxvPTA7bzxuOysrbylmb3IodmFyIGEscz1lW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKGE9c1tjXSkmJihpLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHMpKSxyLnB1c2goYSkpO3JldHVybiBuZXcgeUQoaSxyKX0sZmlsdGVyOmZ1bmN0aW9uIExEKHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD14eih0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgeUQoaSx0aGlzLl9wYXJlbnRzKX0sZGF0YTpmdW5jdGlvbiBQRCh0LGUpe2lmKCF0KXJldHVybiBmPW5ldyBBcnJheSh0aGlzLnNpemUoKSksdT0tMSx0aGlzLmVhY2goKGZ1bmN0aW9uKHQpe2ZbKyt1XT10fSkpLGY7dmFyIG49ZT9FejpNeixpPXRoaXMuX3BhcmVudHMscj10aGlzLl9ncm91cHM7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PShmdW5jdGlvbiBvKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0pKHQpKTtmb3IodmFyIGE9ci5sZW5ndGgscz1uZXcgQXJyYXkoYSksbD1uZXcgQXJyYXkoYSksYz1uZXcgQXJyYXkoYSksdT0wO3U8YTsrK3Upe3ZhciBoPWlbdV0sZD1yW3VdLHA9ZC5sZW5ndGgsZj10LmNhbGwoaCxoJiZoLl9fZGF0YV9fLHUsaSksbT1mLmxlbmd0aCxnPWxbdV09bmV3IEFycmF5KG0pLF89c1t1XT1uZXcgQXJyYXkobSk7bihoLGQsZyxfLGNbdV09bmV3IEFycmF5KHApLGYsZSk7Zm9yKHZhciB5LHYsYj0wLHg9MDtiPG07KytiKWlmKHk9Z1tiXSl7Zm9yKGI+PXgmJih4PWIrMSk7ISh2PV9beF0pJiYrK3g8bTspO3kuX25leHQ9dnx8bnVsbH19cmV0dXJuKHM9bmV3IHlEKHMsaSkpLl9lbnRlcj1sLHMuX2V4aXQ9YyxzfSxlbnRlcjpmdW5jdGlvbiBORCgpe3JldHVybiBuZXcgeUQodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAod3opLHRoaXMuX3BhcmVudHMpfSxleGl0OmZ1bmN0aW9uIElEKCl7cmV0dXJuIG5ldyB5RCh0aGlzLl9leGl0fHx0aGlzLl9ncm91cHMubWFwKHd6KSx0aGlzLl9wYXJlbnRzKX0sam9pbjpmdW5jdGlvbiBSRCh0LGUsbil7dmFyIGk9dGhpcy5lbnRlcigpLHI9dGhpcyxvPXRoaXMuZXhpdCgpO3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoaSk6aS5hcHBlbmQodCsiIiksbnVsbCE9ZSYmKHI9ZShyKSksbnVsbD09bj9vLnJlbW92ZSgpOm4obyksaSYmcj9pLm1lcmdlKHIpLm9yZGVyKCk6cn0sbWVyZ2U6ZnVuY3Rpb24gT0QodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPXQuX2dyb3VwcyxpPWUubGVuZ3RoLHI9TWF0aC5taW4oaSxuLmxlbmd0aCksbz1uZXcgQXJyYXkoaSksYT0wO2E8cjsrK2EpZm9yKHZhciBzLGw9ZVthXSxjPW5bYV0sdT1sLmxlbmd0aCxoPW9bYV09bmV3IEFycmF5KHUpLGQ9MDtkPHU7KytkKShzPWxbZF18fGNbZF0pJiYoaFtkXT1zKTtmb3IoO2E8aTsrK2Epb1thXT1lW2FdO3JldHVybiBuZXcgeUQobyx0aGlzLl9wYXJlbnRzKX0sb3JkZXI6ZnVuY3Rpb24gekQoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9LTEsbj10Lmxlbmd0aDsrK2U8bjspZm9yKHZhciBpLHI9dFtlXSxvPXIubGVuZ3RoLTEsYT1yW29dOy0tbz49MDspKGk9cltvXSkmJihhJiY0XmkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSkmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaSxhKSxhPWkpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uIEREKHQpe2Z1bmN0aW9uIGUoZSxuKXtyZXR1cm4gZSYmbj90KGUuX19kYXRhX18sbi5fX2RhdGFfXyk6IWUtIW59dHx8KHQ9VHopO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxyPW5ldyBBcnJheShpKSxvPTA7bzxpOysrbyl7Zm9yKHZhciBhLHM9bltvXSxsPXMubGVuZ3RoLGM9cltvXT1uZXcgQXJyYXkobCksdT0wO3U8bDsrK3UpKGE9c1t1XSkmJihjW3VdPWEpO2Muc29ydChlKX1yZXR1cm4gbmV3IHlEKHIsdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbiBCRCgpe3ZhciB0PWFyZ3VtZW50c1swXTtyZXR1cm4gYXJndW1lbnRzWzBdPXRoaXMsdC5hcHBseShudWxsLGFyZ3VtZW50cyksdGhpc30sbm9kZXM6ZnVuY3Rpb24gSEQoKXt2YXIgdD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGU9LTE7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXt0WysrZV09dGhpc30pKSx0fSxub2RlOmZ1bmN0aW9uIEZEKCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPTAsbj10Lmxlbmd0aDtlPG47KytlKWZvcih2YXIgaT10W2VdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3Ipe3ZhciBhPWlbcl07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiBWRCgpe3ZhciB0PTA7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXsrK3R9KSksdH0sZW1wdHk6ZnVuY3Rpb24gVUQoKXtyZXR1cm4hdGhpcy5ub2RlKCl9LGVhY2g6ZnVuY3Rpb24gakQodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWZvcih2YXIgcixvPWVbbl0sYT0wLHM9by5sZW5ndGg7YTxzOysrYSkocj1vW2FdKSYmdC5jYWxsKHIsci5fX2RhdGFfXyxhLG8pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uIEdEKHQsZSl7dmFyIG49cHoodCk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgaT10aGlzLm5vZGUoKTtyZXR1cm4gbi5sb2NhbD9pLmdldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCk6aS5nZXRBdHRyaWJ1dGUobil9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09ZT9uLmxvY2FsP0F6OkN6OiJmdW5jdGlvbiI9PXR5cGVvZiBlP24ubG9jYWw/Tno6UHo6bi5sb2NhbD9MejpreikobixlKSl9LHN0eWxlOmZ1bmN0aW9uIFdEKHQsZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9SejoiZnVuY3Rpb24iPT10eXBlb2YgZT96ejpPeikodCxlLG51bGw9PW4/IiI6bikpOkR6KHRoaXMubm9kZSgpLHQpfSxwcm9wZXJ0eTpmdW5jdGlvbiBxRCh0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1lP0J6OiJmdW5jdGlvbiI9PXR5cGVvZiBlP0Z6Okh6KSh0LGUpKTp0aGlzLm5vZGUoKVt0XX0sY2xhc3NlZDpmdW5jdGlvbiBZRCh0LGUpe3ZhciBuPVZ6KHQrIiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBpPVV6KHRoaXMubm9kZSgpKSxyPS0xLG89bi5sZW5ndGg7KytyPG87KWlmKCFpLmNvbnRhaW5zKG5bcl0pKXJldHVybiExO3JldHVybiEwfXJldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBlP1h6OmU/cXo6WXopKG4sZSkpfSx0ZXh0OmZ1bmN0aW9uIFhEKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10PyR6OigiZnVuY3Rpb24iPT10eXBlb2YgdD9aejpLeikodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uICREKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P0p6OigiZnVuY3Rpb24iPT10eXBlb2YgdD90RDpReikodCkpOnRoaXMubm9kZSgpLmlubmVySFRNTH0scmFpc2U6ZnVuY3Rpb24gS0QoKXtyZXR1cm4gdGhpcy5lYWNoKGVEKX0sbG93ZXI6ZnVuY3Rpb24gWkQoKXtyZXR1cm4gdGhpcy5lYWNoKG5EKX0sYXBwZW5kOmZ1bmN0aW9uIEpEKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Z3oodCk7cmV0dXJuIHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pKX0saW5zZXJ0OmZ1bmN0aW9uIFFEKHQsZSl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpneih0KSxpPW51bGw9PWU/aUQ6ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTp5eihlKTtyZXR1cm4gdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pKX0scmVtb3ZlOmZ1bmN0aW9uIHRCKCl7cmV0dXJuIHRoaXMuZWFjaChyRCl9LGNsb25lOmZ1bmN0aW9uIGVCKHQpe3JldHVybiB0aGlzLnNlbGVjdCh0P2FEOm9EKX0sZGF0dW06ZnVuY3Rpb24gbkIodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iLHQpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjpmdW5jdGlvbiBpQih0LGUsbil7dmFyIGkscixvPWhEKHQrIiIpLGE9by5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtmb3Iocz1lP3BEOmRELG51bGw9PW4mJihuPSExKSxpPTA7aTxhOysraSl0aGlzLmVhY2gocyhvW2ldLGUsbikpO3JldHVybiB0aGlzfXZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocylmb3IodmFyIGwsYz0wLHU9cy5sZW5ndGg7Yzx1OysrYylmb3IoaT0wLGw9c1tjXTtpPGE7KytpKWlmKChyPW9baV0pLnR5cGU9PT1sLnR5cGUmJnIubmFtZT09PWwubmFtZSlyZXR1cm4gbC52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24gckIodCxlKXtyZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgZT9nRDptRCkodCxlKSl9fTt2YXIgb0I9LjcsYUI9MS9vQixzQj0iXFxzKihbKy1dP1xcZCspXFxzKiIsbEI9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pXFxzKiIsY0I9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLHVCPS9eIyhbMC05YS1mXXszLDh9KSQvLGhCPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tzQixzQixzQl0rIlxcKSQiKSxkQj1uZXcgUmVnRXhwKCJecmdiXFwoIitbY0IsY0IsY0JdKyJcXCkkIikscEI9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tzQixzQixzQixsQl0rIlxcKSQiKSxmQj1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW2NCLGNCLGNCLGxCXSsiXFwpJCIpLG1CPW5ldyBSZWdFeHAoIl5oc2xcXCgiK1tsQixjQixjQl0rIlxcKSQiKSxnQj1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW2xCLGNCLGNCLGxCXSsiXFwpJCIpLF9CPXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O2Z1bmN0aW9uIHlCKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gdkIoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBiQih0KXt2YXIgZSxuO3JldHVybiB0PSh0KyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwoZT11Qi5leGVjKHQpKT8obj1lWzFdLmxlbmd0aCxlPXBhcnNlSW50KGVbMV0sMTYpLDY9PT1uP3hCKGUpOjM9PT1uP25ldyBFQihlPj44JjE1fGU+PjQmMjQwLGU+PjQmMTV8MjQwJmUsKDE1JmUpPDw0fDE1JmUsMSk6OD09PW4/d0IoZT4+MjQmMjU1LGU+PjE2JjI1NSxlPj44JjI1NSwoMjU1JmUpLzI1NSk6ND09PW4/d0IoZT4+MTImMTV8ZT4+OCYyNDAsZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgoMTUmZSk8PDR8MTUmZSkvMjU1KTpudWxsKTooZT1oQi5leGVjKHQpKT9uZXcgRUIoZVsxXSxlWzJdLGVbM10sMSk6KGU9ZEIuZXhlYyh0KSk/bmV3IEVCKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLDEpOihlPXBCLmV4ZWModCkpP3dCKGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPWZCLmV4ZWModCkpP3dCKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLGVbNF0pOihlPW1CLmV4ZWModCkpP2tCKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsMSk6KGU9Z0IuZXhlYyh0KSk/a0IoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpfQi5oYXNPd25Qcm9wZXJ0eSh0KT94QihfQlt0XSk6InRyYW5zcGFyZW50Ij09PXQ/bmV3IEVCKE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24geEIodCl7cmV0dXJuIG5ldyBFQih0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gd0IodCxlLG4saSl7cmV0dXJuIGk8PTAmJih0PWU9bj1OYU4pLG5ldyBFQih0LGUsbixpKX1mdW5jdGlvbiBTQih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIENEfHwodD1iQih0KSksdD9uZXcgRUIoKHQ9dC5yZ2IoKSkucix0LmcsdC5iLHQub3BhY2l0eSk6bmV3IEVCfWZ1bmN0aW9uIE1CKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9TQih0KTpuZXcgRUIodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIEVCKHQsZSxuLGkpe3RoaXMucj0rdCx0aGlzLmc9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBUQigpe3JldHVybiIjIitBQih0aGlzLnIpK0FCKHRoaXMuZykrQUIodGhpcy5iKX1mdW5jdGlvbiBDQigpe3ZhciB0PXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PSh0PWlzTmFOKHQpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSk/InJnYigiOiJyZ2JhKCIpK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5yKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmcpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoMT09PXQ/IikiOiIsICIrdCsiKSIpfWZ1bmN0aW9uIEFCKHQpe3JldHVybigodD1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHQpfHwwKSkpPDE2PyIwIjoiIikrdC50b1N0cmluZygxNil9ZnVuY3Rpb24ga0IodCxlLG4saSl7cmV0dXJuIGk8PTA/dD1lPW49TmFOOm48PTB8fG4+PTE/dD1lPU5hTjplPD0wJiYodD1OYU4pLG5ldyBQQih0LGUsbixpKX1mdW5jdGlvbiBMQih0KXtpZih0IGluc3RhbmNlb2YgUEIpcmV0dXJuIG5ldyBQQih0LmgsdC5zLHQubCx0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBDRHx8KHQ9YkIodCkpLCF0KXJldHVybiBuZXcgUEI7aWYodCBpbnN0YW5jZW9mIFBCKXJldHVybiB0O3ZhciBlPSh0PXQucmdiKCkpLnIvMjU1LG49dC5nLzI1NSxpPXQuYi8yNTUscj1NYXRoLm1pbihlLG4saSksbz1NYXRoLm1heChlLG4saSksYT1OYU4scz1vLXIsbD0obytyKS8yO3JldHVybiBzPyhhPWU9PT1vPyhuLWkpL3MrNioobjxpKTpuPT09bz8oaS1lKS9zKzI6KGUtbikvcys0LHMvPWw8LjU/bytyOjItby1yLGEqPTYwKTpzPWw+MCYmbDwxPzA6YSxuZXcgUEIoYSxzLGwsdC5vcGFjaXR5KX1mdW5jdGlvbiBQQih0LGUsbixpKXt0aGlzLmg9K3QsdGhpcy5zPStlLHRoaXMubD0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gTkIodCxlLG4pe3JldHVybiAyNTUqKHQ8NjA/ZSsobi1lKSp0LzYwOnQ8MTgwP246dDwyNDA/ZSsobi1lKSooMjQwLXQpLzYwOmUpfWZ1bmN0aW9uIElCKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBSQih0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj8oZnVuY3Rpb24gaSh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdCtuKmV9fSkodCxuKTpJQihpc05hTih0KT9lOnQpfUVEKENELGJCLHtjb3B5OmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsdCl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4OnlCLGZvcm1hdEhleDp5Qixmb3JtYXRIc2w6ZnVuY3Rpb24gT0IoKXtyZXR1cm4gTEIodGhpcykuZm9ybWF0SHNsKCl9LGZvcm1hdFJnYjp2Qix0b1N0cmluZzp2Qn0pLEVEKEVCLE1CLFREKENELHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P2FCOk1hdGgucG93KGFCLHQpLG5ldyBFQih0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9vQjpNYXRoLnBvdyhvQix0KSxuZXcgRUIodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuLS41PD10aGlzLnImJnRoaXMucjwyNTUuNSYmLS41PD10aGlzLmcmJnRoaXMuZzwyNTUuNSYmLS41PD10aGlzLmImJnRoaXMuYjwyNTUuNSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGhleDpUQixmb3JtYXRIZXg6VEIsZm9ybWF0UmdiOkNCLHRvU3RyaW5nOkNCfSkpLEVEKFBCLChmdW5jdGlvbiB6Qih0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/TEIodCk6bmV3IFBCKHQsZSxuLG51bGw9PWk/MTppKX0pLFREKENELHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P2FCOk1hdGgucG93KGFCLHQpLG5ldyBQQih0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P29COk1hdGgucG93KG9CLHQpLG5ldyBQQih0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaCUzNjArMzYwKih0aGlzLmg8MCksZT1pc05hTih0KXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxuPXRoaXMubCxpPW4rKG48LjU/bjoxLW4pKmUscj0yKm4taTtyZXR1cm4gbmV3IEVCKE5CKHQ+PTI0MD90LTI0MDp0KzEyMCxyLGkpLE5CKHQscixpKSxOQih0PDEyMD90KzI0MDp0LTEyMCxyLGkpLHRoaXMub3BhY2l0eSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxmb3JtYXRIc2w6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJoc2woIjoiaHNsYSgiKSsodGhpcy5ofHwwKSsiLCAiKzEwMCoodGhpcy5zfHwwKSsiJSwgIisxMDAqKHRoaXMubHx8MCkrIiUiKygxPT09dD8iKSI6IiwgIit0KyIpIil9fSkpO3ZhciBEQj0oZnVuY3Rpb24gdChlKXt2YXIgbj0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gMT09KHQ9K3QpP1JCOmZ1bmN0aW9uKGUsbil7cmV0dXJuIG4tZT8oZnVuY3Rpb24gaSh0LGUsbil7cmV0dXJuIHQ9TWF0aC5wb3codCxuKSxlPU1hdGgucG93KGUsbiktdCxuPTEvbixmdW5jdGlvbihpKXtyZXR1cm4gTWF0aC5wb3codCtpKmUsbil9fSkoZSxuLHQpOklCKGlzTmFOKGUpP246ZSl9fSkoZSk7ZnVuY3Rpb24gcih0LGUpe3ZhciBpPW4oKHQ9TUIodCkpLnIsKGU9TUIoZSkpLnIpLHI9bih0LmcsZS5nKSxvPW4odC5iLGUuYiksYT1SQih0Lm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQucj1pKGUpLHQuZz1yKGUpLHQuYj1vKGUpLHQub3BhY2l0eT1hKGUpLHQrIiJ9fXJldHVybiByLmdhbW1hPXQscn0pKDEpO2Z1bmN0aW9uIEJCKHQsZSl7ZXx8KGU9W10pO3ZhciBuLGk9dD9NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk6MCxyPWUuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24obyl7Zm9yKG49MDtuPGk7KytuKXJbbl09dFtuXSooMS1vKStlW25dKm87cmV0dXJuIHJ9fWZ1bmN0aW9uIEhCKHQsZSl7dmFyIG4saT1lP2UubGVuZ3RoOjAscj10P01hdGgubWluKGksdC5sZW5ndGgpOjAsbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPHI7KytuKW9bbl09cUIodFtuXSxlW25dKTtmb3IoO248aTsrK24pYVtuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3Iobj0wO248cjsrK24pYVtuXT1vW25dKHQpO3JldHVybiBhfX1mdW5jdGlvbiBGQih0LGUpe3ZhciBuPW5ldyBEYXRlO3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24oaSl7cmV0dXJuIG4uc2V0VGltZSh0KigxLWkpK2UqaSksbn19ZnVuY3Rpb24gVkIodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiB0KigxLW4pK2Uqbn19ZnVuY3Rpb24gVUIodCxlKXt2YXIgbixpPXt9LHI9e307Zm9yKG4gaW4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e30pLG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fChlPXt9KSxlKW4gaW4gdD9pW25dPXFCKHRbbl0sZVtuXSk6cltuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3IobiBpbiBpKXJbbl09aVtuXSh0KTtyZXR1cm4gcn19dmFyIGpCPS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyxHQj1uZXcgUmVnRXhwKGpCLnNvdXJjZSwiZyIpO2Z1bmN0aW9uIFdCKHQsZSl7dmFyIG4saSxyLG89akIubGFzdEluZGV4PUdCLmxhc3RJbmRleD0wLGE9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsobj1qQi5leGVjKHQpKSYmKGk9R0IuZXhlYyhlKSk7KShyPWkuaW5kZXgpPm8mJihyPWUuc2xpY2UobyxyKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLChuPW5bMF0pPT09KGk9aVswXSk/c1thXT9zW2FdKz1pOnNbKythXT1pOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OlZCKG4saSl9KSksbz1HQi5sYXN0SW5kZXg7cmV0dXJuIG88ZS5sZW5ndGgmJihyPWUuc2xpY2Uobyksc1thXT9zW2FdKz1yOnNbKythXT1yKSxzLmxlbmd0aDwyP2xbMF0/KGZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpKyIifX0pKGxbMF0ueCk6KGZ1bmN0aW9uIHUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkoZSk6KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBuLGk9MDtpPGU7KytpKXNbKG49bFtpXSkuaV09bi54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24gcUIodCxlKXt2YXIgbixpPXR5cGVvZiBlO3JldHVybiBudWxsPT1lfHwiYm9vbGVhbiI9PT1pP0lCKGUpOigibnVtYmVyIj09PWk/VkI6InN0cmluZyI9PT1pPyhuPWJCKGUpKT8oZT1uLERCKTpXQjplIGluc3RhbmNlb2YgYkI/REI6ZSBpbnN0YW5jZW9mIERhdGU/RkI6KGZ1bmN0aW9uIHIodCl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgRGF0YVZpZXcpfSkoZSk/QkI6QXJyYXkuaXNBcnJheShlKT9IQjoiZnVuY3Rpb24iIT10eXBlb2YgZS52YWx1ZU9mJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZ3x8aXNOYU4oZSk/VUI6VkIpKHQsZSl9dmFyIFlCLFhCLCRCLEtCLFpCPTE4MC9NYXRoLlBJLEpCPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIFFCKHQsZSxuLGkscixvKXt2YXIgYSxzLGw7cmV0dXJuKGE9TWF0aC5zcXJ0KHQqdCtlKmUpKSYmKHQvPWEsZS89YSksKGw9dCpuK2UqaSkmJihuLT10KmwsaS09ZSpsKSwocz1NYXRoLnNxcnQobipuK2kqaSkpJiYobi89cyxpLz1zLGwvPXMpLHQqaTxlKm4mJih0PS10LGU9LWUsbD0tbCxhPS1hKSx7dHJhbnNsYXRlWDpyLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMihlLHQpKlpCLHNrZXdYOk1hdGguYXRhbihsKSpaQixzY2FsZVg6YSxzY2FsZVk6c319ZnVuY3Rpb24gdEgodCxlLG4saSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKG8sYSl7dmFyIHM9W10sbD1bXTtyZXR1cm4gbz10KG8pLGE9dChhKSwoZnVuY3Rpb24gYyh0LGkscixvLGEscyl7aWYodCE9PXJ8fGkhPT1vKXt2YXIgbD1hLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsZSxudWxsLG4pO3MucHVzaCh7aTpsLTQseDpWQih0LHIpfSx7aTpsLTIseDpWQihpLG8pfSl9ZWxzZShyfHxvKSYmYS5wdXNoKCJ0cmFuc2xhdGUoIityK2UrbytuKX0pKG8udHJhbnNsYXRlWCxvLnRyYW5zbGF0ZVksYS50cmFuc2xhdGVYLGEudHJhbnNsYXRlWSxzLGwpLChmdW5jdGlvbiB1KHQsZSxuLG8pe3QhPT1lPyh0LWU+MTgwP2UrPTM2MDplLXQ+MTgwJiYodCs9MzYwKSxvLnB1c2goe2k6bi5wdXNoKHIobikrInJvdGF0ZSgiLG51bGwsaSktMix4OlZCKHQsZSl9KSk6ZSYmbi5wdXNoKHIobikrInJvdGF0ZSgiK2UraSl9KShvLnJvdGF0ZSxhLnJvdGF0ZSxzLGwpLChmdW5jdGlvbiBoKHQsZSxuLG8pe3QhPT1lP28ucHVzaCh7aTpuLnB1c2gocihuKSsic2tld1goIixudWxsLGkpLTIseDpWQih0LGUpfSk6ZSYmbi5wdXNoKHIobikrInNrZXdYKCIrZStpKX0pKG8uc2tld1gsYS5za2V3WCxzLGwpLChmdW5jdGlvbiBkKHQsZSxuLGksbyxhKXtpZih0IT09bnx8ZSE9PWkpe3ZhciBzPW8ucHVzaChyKG8pKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTthLnB1c2goe2k6cy00LHg6VkIodCxuKX0se2k6cy0yLHg6VkIoZSxpKX0pfWVsc2UgMT09PW4mJjE9PT1pfHxvLnB1c2gocihvKSsic2NhbGUoIituKyIsIitpKyIpIil9KShvLnNjYWxlWCxvLnNjYWxlWSxhLnNjYWxlWCxhLnNjYWxlWSxzLGwpLG89YT1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPS0xLGk9bC5sZW5ndGg7KytuPGk7KXNbKGU9bFtuXSkuaV09ZS54KHQpO3JldHVybiBzLmpvaW4oIiIpfX19dmFyIGVILG5ILGlIPXRIKChmdW5jdGlvbiBySCh0KXtyZXR1cm4ibm9uZSI9PT10P0pCOihZQnx8KFlCPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLFhCPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwkQj1kb2N1bWVudC5kZWZhdWx0VmlldyksWUIuc3R5bGUudHJhbnNmb3JtPXQsdD0kQi5nZXRDb21wdXRlZFN0eWxlKFhCLmFwcGVuZENoaWxkKFlCKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxYQi5yZW1vdmVDaGlsZChZQiksUUIoKyh0PXQuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSlbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0pLCJweCwgIiwicHgpIiwiZGVnKSIpLG9IPXRIKChmdW5jdGlvbiBhSCh0KXtyZXR1cm4gbnVsbD09dD9KQjooS0J8fChLQj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSxLQi5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9S0IudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/UUIoKHQ9dC5tYXRyaXgpLmEsdC5iLHQuYyx0LmQsdC5lLHQuZik6SkIpfSksIiwgIiwiKSIsIikiKSxzSD0wLGxIPTAsY0g9MCx1SD0wLGhIPTAsZEg9MCxwSD0ib2JqZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxmSD0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KHQsMTcpfTtmdW5jdGlvbiBtSCgpe3JldHVybiBoSHx8KGZIKGdIKSxoSD1wSC5ub3coKStkSCl9ZnVuY3Rpb24gZ0goKXtoSD0wfWZ1bmN0aW9uIF9IKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiB5SCh0LGUsbil7dmFyIGk9bmV3IF9IO3JldHVybiBpLnJlc3RhcnQodCxlLG4pLGl9ZnVuY3Rpb24gdkgoKXtoSD0odUg9cEgubm93KCkpK2RILHNIPWxIPTA7dHJ5eyEoZnVuY3Rpb24gdCgpe21IKCksKytzSDtmb3IodmFyIHQsZT1lSDtlOykodD1oSC1lLl90aW1lKT49MCYmZS5fY2FsbC5jYWxsKG51bGwsdCksZT1lLl9uZXh0Oy0tc0h9KSgpfWZpbmFsbHl7c0g9MCwoZnVuY3Rpb24gZSgpe2Zvcih2YXIgdCxlLG49ZUgsaT0xLzA7bjspbi5fY2FsbD8oaT5uLl90aW1lJiYoaT1uLl90aW1lKSx0PW4sbj1uLl9uZXh0KTooZT1uLl9uZXh0LG4uX25leHQ9bnVsbCxuPXQ/dC5fbmV4dD1lOmVIPWUpO25IPXQseEgoaSl9KSgpLGhIPTB9fWZ1bmN0aW9uIGJIKCl7dmFyIHQ9cEgubm93KCksZT10LXVIO2U+MWUzJiYoZEgtPWUsdUg9dCl9ZnVuY3Rpb24geEgodCl7c0h8fChsSCYmKGxIPWNsZWFyVGltZW91dChsSCkpLHQtaEg+MjQ/KHQ8MS8wJiYobEg9c2V0VGltZW91dCh2SCx0LXBILm5vdygpLWRIKSksY0gmJihjSD1jbGVhckludGVydmFsKGNIKSkpOihjSHx8KHVIPXBILm5vdygpLGNIPXNldEludGVydmFsKGJILDFlMykpLHNIPTEsZkgodkgpKSl9ZnVuY3Rpb24gd0godCxlLG4pe3ZhciBpPW5ldyBfSDtyZXR1cm4gaS5yZXN0YXJ0KChmdW5jdGlvbihuKXtpLnN0b3AoKSx0KG4rZSl9KSxlPW51bGw9PWU/MDorZSxuKSxpfV9ILnByb3RvdHlwZT15SC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOl9ILHJlc3RhcnQ6ZnVuY3Rpb24odCxlLG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7bj0obnVsbD09bj9tSCgpOituKSsobnVsbD09ZT8wOitlKSx0aGlzLl9uZXh0fHxuSD09PXRoaXN8fChuSD9uSC5fbmV4dD10aGlzOmVIPXRoaXMsbkg9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9bix4SCgpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCx4SCgpKX19O3ZhciBTSD1heigic3RhcnQiLCJlbmQiLCJjYW5jZWwiLCJpbnRlcnJ1cHQiKSxNSD1bXTtmdW5jdGlvbiBFSCh0LGUsbixpLHIsbyl7dmFyIGE9dC5fX3RyYW5zaXRpb247aWYoYSl7aWYobiBpbiBhKXJldHVybn1lbHNlIHQuX190cmFuc2l0aW9uPXt9OyEoZnVuY3Rpb24gcyh0LGUsbil7dmFyIGkscj10Ll9fdHJhbnNpdGlvbjtmdW5jdGlvbiBvKGwpe3ZhciBjLHUsaCxkO2lmKDEhPT1uLnN0YXRlKXJldHVybiBzKCk7Zm9yKGMgaW4gcilpZigoZD1yW2NdKS5uYW1lPT09bi5uYW1lKXtpZigzPT09ZC5zdGF0ZSlyZXR1cm4gd0gobyk7ND09PWQuc3RhdGU/KGQuc3RhdGU9NixkLnRpbWVyLnN0b3AoKSxkLm9uLmNhbGwoImludGVycnVwdCIsdCx0Ll9fZGF0YV9fLGQuaW5kZXgsZC5ncm91cCksZGVsZXRlIHJbY10pOitjPGUmJihkLnN0YXRlPTYsZC50aW1lci5zdG9wKCksZC5vbi5jYWxsKCJjYW5jZWwiLHQsdC5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSByW2NdKX1pZih3SCgoZnVuY3Rpb24oKXszPT09bi5zdGF0ZSYmKG4uc3RhdGU9NCxuLnRpbWVyLnJlc3RhcnQoYSxuLmRlbGF5LG4udGltZSksYShsKSl9KSksbi5zdGF0ZT0yLG4ub24uY2FsbCgic3RhcnQiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLDI9PT1uLnN0YXRlKXtmb3Iobi5zdGF0ZT0zLGk9bmV3IEFycmF5KGg9bi50d2Vlbi5sZW5ndGgpLGM9MCx1PS0xO2M8aDsrK2MpKGQ9bi50d2VlbltjXS52YWx1ZS5jYWxsKHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApKSYmKGlbKyt1XT1kKTtpLmxlbmd0aD11KzF9fWZ1bmN0aW9uIGEoZSl7Zm9yKHZhciByPWU8bi5kdXJhdGlvbj9uLmVhc2UuY2FsbChudWxsLGUvbi5kdXJhdGlvbik6KG4udGltZXIucmVzdGFydChzKSxuLnN0YXRlPTUsMSksbz0tMSxhPWkubGVuZ3RoOysrbzxhOylpW29dLmNhbGwodCxyKTs1PT09bi5zdGF0ZSYmKG4ub24uY2FsbCgiZW5kIix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxzKCkpfWZ1bmN0aW9uIHMoKXtmb3IodmFyIGkgaW4gbi5zdGF0ZT02LG4udGltZXIuc3RvcCgpLGRlbGV0ZSByW2VdLHIpcmV0dXJuO2RlbGV0ZSB0Ll9fdHJhbnNpdGlvbn1yW2VdPW4sbi50aW1lcj15SCgoZnVuY3Rpb24gbCh0KXtuLnN0YXRlPTEsbi50aW1lci5yZXN0YXJ0KG8sbi5kZWxheSxuLnRpbWUpLG4uZGVsYXk8PXQmJm8odC1uLmRlbGF5KX0pLDAsbi50aW1lKX0pKHQsbix7bmFtZTplLGluZGV4OmksZ3JvdXA6cixvbjpTSCx0d2VlbjpNSCx0aW1lOm8udGltZSxkZWxheTpvLmRlbGF5LGR1cmF0aW9uOm8uZHVyYXRpb24sZWFzZTpvLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTowfSl9ZnVuY3Rpb24gVEgodCxlKXt2YXIgbj1BSCh0LGUpO2lmKG4uc3RhdGU+MCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBufWZ1bmN0aW9uIENIKHQsZSl7dmFyIG49QUgodCxlKTtpZihuLnN0YXRlPjMpdGhyb3cgbmV3IEVycm9yKCJ0b28gbGF0ZTsgYWxyZWFkeSBydW5uaW5nIik7cmV0dXJuIG59ZnVuY3Rpb24gQUgodCxlKXt2YXIgbj10Ll9fdHJhbnNpdGlvbjtpZighbnx8IShuPW5bZV0pKXRocm93IG5ldyBFcnJvcigidHJhbnNpdGlvbiBub3QgZm91bmQiKTtyZXR1cm4gbn1mdW5jdGlvbiBrSCh0LGUpe3ZhciBuLGkscixvPXQuX190cmFuc2l0aW9uLGE9ITA7aWYobyl7Zm9yKHIgaW4gZT1udWxsPT1lP251bGw6ZSsiIixvKShuPW9bcl0pLm5hbWU9PT1lPyhpPW4uc3RhdGU+MiYmbi5zdGF0ZTw1LG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxuLm9uLmNhbGwoaT8iaW50ZXJydXB0IjoiY2FuY2VsIix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxkZWxldGUgb1tyXSk6YT0hMTthJiZkZWxldGUgdC5fX3RyYW5zaXRpb259fWZ1bmN0aW9uIExIKHQsZSl7dmFyIG4saTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1DSCh0aGlzLHQpLG89ci50d2VlbjtpZihvIT09bilmb3IodmFyIGE9MCxzPShpPW49bykubGVuZ3RoO2E8czsrK2EpaWYoaVthXS5uYW1lPT09ZSl7KGk9aS5zbGljZSgpKS5zcGxpY2UoYSwxKTticmVha31yLnR3ZWVuPWl9fWZ1bmN0aW9uIFBIKHQsZSxuKXt2YXIgaSxyO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1DSCh0aGlzLHQpLGE9by50d2VlbjtpZihhIT09aSl7cj0oaT1hKS5zbGljZSgpO2Zvcih2YXIgcz17bmFtZTplLHZhbHVlOm59LGw9MCxjPXIubGVuZ3RoO2w8YzsrK2wpaWYocltsXS5uYW1lPT09ZSl7cltsXT1zO2JyZWFrfWw9PT1jJiZyLnB1c2gocyl9by50d2Vlbj1yfX1mdW5jdGlvbiBOSCh0LGUsbil7dmFyIGk9dC5faWQ7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1DSCh0aGlzLGkpOyh0LnZhbHVlfHwodC52YWx1ZT17fSkpW2VdPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpfSkpLGZ1bmN0aW9uKHQpe3JldHVybiBBSCh0LGkpLnZhbHVlW2VdfX1mdW5jdGlvbiBJSCh0LGUpe3ZhciBuO3JldHVybigibnVtYmVyIj09dHlwZW9mIGU/VkI6ZSBpbnN0YW5jZW9mIGJCP0RCOihuPWJCKGUpKT8oZT1uLERCKTpXQikodCxlKX1mdW5jdGlvbiBSSCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gT0godCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiB6SCh0LGUsbil7dmFyIGkscixvPW4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGUodCk7cmV0dXJuIGE9PT1vP251bGw6YT09PWk/cjpyPWUoaT1hLG4pfX1mdW5jdGlvbiBESCh0LGUsbil7dmFyIGkscixvPW4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19ZnVuY3Rpb24gQkgodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzLGw9bih0aGlzKTtpZihudWxsIT1sKXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlKHQpKT09PShzPWwrIiIpP251bGw6YT09PWkmJnM9PT1yP286KHI9cyxvPWUoaT1hLGwpKTt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gSEgodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzLGw9bih0aGlzKTtpZihudWxsIT1sKXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKSk9PT0ocz1sKyIiKT9udWxsOmE9PT1pJiZzPT09cj9vOihyPXMsbz1lKGk9YSxsKSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBGSCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUuY2FsbCh0aGlzLG4pKX19ZnVuY3Rpb24gVkgodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZS5jYWxsKHRoaXMsbikpfX1mdW5jdGlvbiBVSCh0LGUpe3ZhciBuLGk7ZnVuY3Rpb24gcigpe3ZhciByPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiByIT09aSYmKG49KGk9cikmJlZIKHQscikpLG59cmV0dXJuIHIuX3ZhbHVlPWUscn1mdW5jdGlvbiBqSCh0LGUpe3ZhciBuLGk7ZnVuY3Rpb24gcigpe3ZhciByPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiByIT09aSYmKG49KGk9cikmJkZIKHQscikpLG59cmV0dXJuIHIuX3ZhbHVlPWUscn1mdW5jdGlvbiBHSCh0LGUpe3JldHVybiBmdW5jdGlvbigpe1RIKHRoaXMsdCkuZGVsYXk9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBXSCh0LGUpe3JldHVybiBlPStlLGZ1bmN0aW9uKCl7VEgodGhpcyx0KS5kZWxheT1lfX1mdW5jdGlvbiBxSCh0LGUpe3JldHVybiBmdW5jdGlvbigpe0NIKHRoaXMsdCkuZHVyYXRpb249K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBZSCh0LGUpe3JldHVybiBlPStlLGZ1bmN0aW9uKCl7Q0godGhpcyx0KS5kdXJhdGlvbj1lfX1mdW5jdGlvbiBYSCh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXtDSCh0aGlzLHQpLmVhc2U9ZX19ZnVuY3Rpb24gJEgodCxlLG4pe3ZhciBpLHIsbz0oZnVuY3Rpb24gYSh0KXtyZXR1cm4odCsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pLmV2ZXJ5KChmdW5jdGlvbih0KXt2YXIgZT10LmluZGV4T2YoIi4iKTtyZXR1cm4gZT49MCYmKHQ9dC5zbGljZSgwLGUpKSwhdHx8InN0YXJ0Ij09PXR9KSl9KShlKT9USDpDSDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1vKHRoaXMsdCkscz1hLm9uO3MhPT1pJiYocj0oaT1zKS5jb3B5KCkpLm9uKGUsbiksYS5vbj1yfX12YXIgS0g9dkQucHJvdG90eXBlLmNvbnN0cnVjdG9yO2Z1bmN0aW9uIFpIKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIEpIKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUuY2FsbCh0aGlzLGkpLG4pfX1mdW5jdGlvbiBRSCh0LGUsbil7dmFyIGkscjtmdW5jdGlvbiBvKCl7dmFyIG89ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG8hPT1yJiYoaT0ocj1vKSYmSkgodCxvLG4pKSxpfXJldHVybiBvLl92YWx1ZT1lLG99ZnVuY3Rpb24gdEYodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3RoaXMudGV4dENvbnRlbnQ9dC5jYWxsKHRoaXMsZSl9fWZ1bmN0aW9uIGVGKHQpe3ZhciBlLG47ZnVuY3Rpb24gaSgpe3ZhciBpPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBpIT09biYmKGU9KG49aSkmJnRGKGkpKSxlfXJldHVybiBpLl92YWx1ZT10LGl9dmFyIG5GPTA7ZnVuY3Rpb24gaUYodCxlLG4saSl7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1lLHRoaXMuX25hbWU9bix0aGlzLl9pZD1pfWZ1bmN0aW9uIHJGKCl7cmV0dXJuKytuRn12YXIgb0Y9dkQucHJvdG90eXBlO2lGLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aUYsc2VsZWN0OmZ1bmN0aW9uIGFGKHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9eXoodCkpO2Zvcih2YXIgaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPW5ldyBBcnJheShyKSxhPTA7YTxyOysrYSlmb3IodmFyIHMsbCxjPWlbYV0sdT1jLmxlbmd0aCxoPW9bYV09bmV3IEFycmF5KHUpLGQ9MDtkPHU7KytkKShzPWNbZF0pJiYobD10LmNhbGwocyxzLl9fZGF0YV9fLGQsYykpJiYoIl9fZGF0YV9fImluIHMmJihsLl9fZGF0YV9fPXMuX19kYXRhX18pLGhbZF09bCxFSChoW2RdLGUsbixkLGgsQUgocyxuKSkpO3JldHVybiBuZXcgaUYobyx0aGlzLl9wYXJlbnRzLGUsbil9LHNlbGVjdEFsbDpmdW5jdGlvbiBzRih0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWJ6KHQpKTtmb3IodmFyIGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz1bXSxhPVtdLHM9MDtzPHI7KytzKWZvcih2YXIgbCxjPWlbc10sdT1jLmxlbmd0aCxoPTA7aDx1OysraClpZihsPWNbaF0pe2Zvcih2YXIgZCxwPXQuY2FsbChsLGwuX19kYXRhX18saCxjKSxmPUFIKGwsbiksbT0wLGc9cC5sZW5ndGg7bTxnOysrbSkoZD1wW21dKSYmRUgoZCxlLG4sbSxwLGYpO28ucHVzaChwKSxhLnB1c2gobCl9cmV0dXJuIG5ldyBpRihvLGEsZSxuKX0sZmlsdGVyOmZ1bmN0aW9uIGxGKHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD14eih0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgaUYoaSx0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfSxtZXJnZTpmdW5jdGlvbiBjRih0KXtpZih0Ll9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49dC5fZ3JvdXBzLGk9ZS5sZW5ndGgscj1NYXRoLm1pbihpLG4ubGVuZ3RoKSxvPW5ldyBBcnJheShpKSxhPTA7YTxyOysrYSlmb3IodmFyIHMsbD1lW2FdLGM9blthXSx1PWwubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9bFtkXXx8Y1tkXSkmJihoW2RdPXMpO2Zvcig7YTxpOysrYSlvW2FdPWVbYV07cmV0dXJuIG5ldyBpRihvLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbiB1Rigpe3JldHVybiBuZXcgS0godGhpcy5fZ3JvdXBzLHRoaXMuX3BhcmVudHMpfSx0cmFuc2l0aW9uOmZ1bmN0aW9uIGhGKCl7Zm9yKHZhciB0PXRoaXMuX25hbWUsZT10aGlzLl9pZCxuPXJGKCksaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPTA7bzxyOysrbylmb3IodmFyIGEscz1pW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpaWYoYT1zW2NdKXt2YXIgdT1BSChhLGUpO0VIKGEsdCxuLGMscyx7dGltZTp1LnRpbWUrdS5kZWxheSt1LmR1cmF0aW9uLGRlbGF5OjAsZHVyYXRpb246dS5kdXJhdGlvbixlYXNlOnUuZWFzZX0pfXJldHVybiBuZXcgaUYoaSx0aGlzLl9wYXJlbnRzLHQsbil9LGNhbGw6b0YuY2FsbCxub2RlczpvRi5ub2Rlcyxub2RlOm9GLm5vZGUsc2l6ZTpvRi5zaXplLGVtcHR5Om9GLmVtcHR5LGVhY2g6b0YuZWFjaCxvbjpmdW5jdGlvbiBkRih0LGUpe3ZhciBuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/QUgodGhpcy5ub2RlKCksbikub24ub24odCk6dGhpcy5lYWNoKCRIKG4sdCxlKSl9LGF0dHI6ZnVuY3Rpb24gcEYodCxlKXt2YXIgbj1weih0KSxpPSJ0cmFuc2Zvcm0iPT09bj9vSDpJSDtyZXR1cm4gdGhpcy5hdHRyVHdlZW4odCwiZnVuY3Rpb24iPT10eXBlb2YgZT8obi5sb2NhbD9ISDpCSCkobixpLE5IKHRoaXMsImF0dHIuIit0LGUpKTpudWxsPT1lPyhuLmxvY2FsP09IOlJIKShuKToobi5sb2NhbD9ESDp6SCkobixpLGUpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uIGZGKHQsZSl7dmFyIG49ImF0dHIuIit0O2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4obj10aGlzLnR3ZWVuKG4pKSYmbi5fdmFsdWU7aWYobnVsbD09ZSlyZXR1cm4gdGhpcy50d2VlbihuLG51bGwpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjt2YXIgaT1weih0KTtyZXR1cm4gdGhpcy50d2VlbihuLChpLmxvY2FsP1VIOmpIKShpLGUpKX0sc3R5bGU6ZnVuY3Rpb24gbUYodCxlLG4pe3ZhciBpPSJ0cmFuc2Zvcm0iPT0odCs9IiIpP2lIOklIO3JldHVybiBudWxsPT1lP3RoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiByKHQsZSl7dmFyIG4saSxyO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUR6KHRoaXMsdCksYT0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSxEeih0aGlzLHQpKTtyZXR1cm4gbz09PWE/bnVsbDpvPT09biYmYT09PWk/cjpyPWUobj1vLGk9YSl9fSkodCxpKSkub24oImVuZC5zdHlsZS4iK3QsWkgodCkpOiJmdW5jdGlvbiI9PXR5cGVvZiBlP3RoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiBhKHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9RHoodGhpcyx0KSxzPW4odGhpcyksbD1zKyIiO3JldHVybiBudWxsPT1zJiYodGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSxsPXM9RHoodGhpcyx0KSksYT09PWw/bnVsbDphPT09aSYmbD09PXI/bzoocj1sLG89ZShpPWEscykpfX0pKHQsaSxOSCh0aGlzLCJzdHlsZS4iK3QsZSkpKS5lYWNoKChmdW5jdGlvbiBvKHQsZSl7dmFyIG4saSxyLG8sYT0ic3R5bGUuIitlLHM9ImVuZC4iK2E7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGw9Q0godGhpcyx0KSxjPWwub24sdT1udWxsPT1sLnZhbHVlW2FdP298fChvPVpIKGUpKTp2b2lkIDA7Yz09PW4mJnI9PT11fHwoaT0obj1jKS5jb3B5KCkpLm9uKHMscj11KSxsLm9uPWl9fSkodGhpcy5faWQsdCkpOnRoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiBzKHQsZSxuKXt2YXIgaSxyLG89bisiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1Eeih0aGlzLHQpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19KSh0LGksZSksbikub24oImVuZC5zdHlsZS4iK3QsbnVsbCl9LHN0eWxlVHdlZW46ZnVuY3Rpb24gZ0YodCxlLG4pe3ZhciBpPSJzdHlsZS4iKyh0Kz0iIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihpPXRoaXMudHdlZW4oaSkpJiZpLl92YWx1ZTtpZihudWxsPT1lKXJldHVybiB0aGlzLnR3ZWVuKGksbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKGksUUgodCxlLG51bGw9PW4/IiI6bikpfSx0ZXh0OmZ1bmN0aW9uIF9GKHQpe3JldHVybiB0aGlzLnR3ZWVuKCJ0ZXh0IiwiZnVuY3Rpb24iPT10eXBlb2YgdD8oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10KHRoaXMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX0pKE5IKHRoaXMsInRleHQiLHQpKTooZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fSkobnVsbD09dD8iIjp0KyIiKSl9LHRleHRUd2VlbjpmdW5jdGlvbiB5Rih0KXt2YXIgZT0idGV4dCI7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXJldHVybihlPXRoaXMudHdlZW4oZSkpJiZlLl92YWx1ZTtpZihudWxsPT10KXJldHVybiB0aGlzLnR3ZWVuKGUsbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKGUsZUYodCkpfSxyZW1vdmU6ZnVuY3Rpb24gdkYoKXtyZXR1cm4gdGhpcy5vbigiZW5kLnJlbW92ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO2Zvcih2YXIgbiBpbiB0aGlzLl9fdHJhbnNpdGlvbilpZigrbiE9PWUpcmV0dXJuO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9fSkodGhpcy5faWQpKX0sdHdlZW46ZnVuY3Rpb24gYkYodCxlKXt2YXIgbj10aGlzLl9pZDtpZih0Kz0iIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaSxyPUFIKHRoaXMubm9kZSgpLG4pLnR3ZWVuLG89MCxhPXIubGVuZ3RoO288YTsrK28paWYoKGk9cltvXSkubmFtZT09PXQpcmV0dXJuIGkudmFsdWU7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09ZT9MSDpQSCkobix0LGUpKX0sZGVsYXk6ZnVuY3Rpb24geEYodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9HSDpXSCkoZSx0KSk6QUgodGhpcy5ub2RlKCksZSkuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0aW9uIHdGKHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIHQ/cUg6WUgpKGUsdCkpOkFIKHRoaXMubm9kZSgpLGUpLmR1cmF0aW9ufSxlYXNlOmZ1bmN0aW9uIFNGKHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChYSChlLHQpKTpBSCh0aGlzLm5vZGUoKSxlKS5lYXNlfSxlbmQ6ZnVuY3Rpb24gTUYoKXt2YXIgdCxlLG49dGhpcyxpPW4uX2lkLHI9bi5zaXplKCk7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihvLGEpe3ZhciBzPXt2YWx1ZTphfSxsPXt2YWx1ZTpmdW5jdGlvbigpezA9PS0tciYmbygpfX07bi5lYWNoKChmdW5jdGlvbigpe3ZhciBuPUNIKHRoaXMsaSkscj1uLm9uO3IhPT10JiYoKGU9KHQ9cikuY29weSgpKS5fLmNhbmNlbC5wdXNoKHMpLGUuXy5pbnRlcnJ1cHQucHVzaChzKSxlLl8uZW5kLnB1c2gobCkpLG4ub249ZX0pKX0pKX19O3ZhciBFRj17dGltZTpudWxsLGRlbGF5OjAsZHVyYXRpb246MjUwLGVhc2U6VGZ9O2Z1bmN0aW9uIFRGKHQsZSl7Zm9yKHZhciBuOyEobj10Ll9fdHJhbnNpdGlvbil8fCEobj1uW2VdKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIEVGLnRpbWU9bUgoKSxFRjtyZXR1cm4gbn1mdW5jdGlvbiBDRih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gQUYodCxlLG4pe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPWUsdGhpcy5zZWxlY3Rpb249bn1mdW5jdGlvbiBrRigpe2xELnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIExGKCl7bEQucHJldmVudERlZmF1bHQoKSxsRC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX12RC5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0aW9uIFBGKHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7a0godGhpcyx0KX0pKX0sdkQucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24gTkYodCl7dmFyIGUsbjt0IGluc3RhbmNlb2YgaUY/KGU9dC5faWQsdD10Ll9uYW1lKTooZT1yRigpLChuPUVGKS50aW1lPW1IKCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykoYT1zW2NdKSYmRUgoYSx0LGUsYyxzLG58fFRGKGEsZSkpO3JldHVybiBuZXcgaUYoaSx0aGlzLl9wYXJlbnRzLHQsZSl9O3ZhciBJRj17bmFtZToiZHJhZyJ9LFJGPXtuYW1lOiJzcGFjZSJ9LE9GPXtuYW1lOiJoYW5kbGUifSx6Rj17bmFtZToiY2VudGVyIn0sREY9e25hbWU6IngiLGhhbmRsZXM6WyJlIiwidyJdLm1hcChXRiksaW5wdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmW1t0WzBdLGVbMF1bMV1dLFt0WzFdLGVbMV1bMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVswXSx0WzFdWzBdXX19LEJGPXtuYW1lOiJ5IixoYW5kbGVzOlsibiIsInMiXS5tYXAoV0YpLGlucHV0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQmJltbZVswXVswXSx0WzBdXSxbZVsxXVswXSx0WzFdXV19LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdCYmW3RbMF1bMV0sdFsxXVsxXV19fSxIRj17bmFtZToieHkiLGhhbmRsZXM6WyJuIiwiZSIsInMiLCJ3IiwibnciLCJuZSIsInNlIiwic3ciXS5tYXAoV0YpLGlucHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0fSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSxGRj17b3ZlcmxheToiY3Jvc3NoYWlyIixzZWxlY3Rpb246Im1vdmUiLG46Im5zLXJlc2l6ZSIsZToiZXctcmVzaXplIixzOiJucy1yZXNpemUiLHc6ImV3LXJlc2l6ZSIsbnc6Im53c2UtcmVzaXplIixuZToibmVzdy1yZXNpemUiLHNlOiJud3NlLXJlc2l6ZSIsc3c6Im5lc3ctcmVzaXplIn0sVkY9e2U6InciLHc6ImUiLG53OiJuZSIsbmU6Im53IixzZToic3ciLHN3OiJzZSJ9LFVGPXtuOiJzIixzOiJuIixudzoic3ciLG5lOiJzZSIsc2U6Im5lIixzdzoibncifSxqRj17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46bnVsbCxlOjEsczpudWxsLHc6LTEsbnc6LTEsbmU6MSxzZToxLHN3Oi0xfSxHRj17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46LTEsZTpudWxsLHM6MSx3Om51bGwsbnc6LTEsbmU6LTEsc2U6MSxzdzoxfTtmdW5jdGlvbiBXRih0KXtyZXR1cm57dHlwZTp0fX1mdW5jdGlvbiBxRigpe3JldHVybiFsRC5idXR0b259ZnVuY3Rpb24gWUYoKXt2YXIgdD10aGlzLm93bmVyU1ZHRWxlbWVudHx8dGhpcztyZXR1cm5bWzAsMF0sW3Qud2lkdGguYmFzZVZhbC52YWx1ZSx0LmhlaWdodC5iYXNlVmFsLnZhbHVlXV19ZnVuY3Rpb24gWEYodCl7Zm9yKDshdC5fX2JydXNoOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHQuX19icnVzaH1mdW5jdGlvbiAkRih0KXtyZXR1cm4gdFswXVswXT09PXRbMV1bMF18fHRbMF1bMV09PT10WzFdWzFdfWZ1bmN0aW9uIEtGKHQpe3ZhciBlLG49WUYsaT1xRixyPWF6KGEsInN0YXJ0IiwiYnJ1c2giLCJlbmQiKSxvPTY7ZnVuY3Rpb24gYShlKXt2YXIgbj1lLnByb3BlcnR5KCJfX2JydXNoIixoKS5zZWxlY3RBbGwoIi5vdmVybGF5IikuZGF0YShbV0YoIm92ZXJsYXkiKV0pO24uZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsIm92ZXJsYXkiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLmF0dHIoImN1cnNvciIsRkYub3ZlcmxheSkubWVyZ2UobikuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1YRih0aGlzKS5leHRlbnQ7YkQodGhpcykuYXR0cigieCIsdFswXVswXSkuYXR0cigieSIsdFswXVsxXSkuYXR0cigid2lkdGgiLHRbMV1bMF0tdFswXVswXSkuYXR0cigiaGVpZ2h0Iix0WzFdWzFdLXRbMF1bMV0pfSkpLGUuc2VsZWN0QWxsKCIuc2VsZWN0aW9uIikuZGF0YShbV0YoInNlbGVjdGlvbiIpXSkuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsInNlbGVjdGlvbiIpLmF0dHIoImN1cnNvciIsRkYuc2VsZWN0aW9uKS5hdHRyKCJmaWxsIiwiIzc3NyIpLmF0dHIoImZpbGwtb3BhY2l0eSIsLjMpLmF0dHIoInN0cm9rZSIsIiNmZmYiKS5hdHRyKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIik7dmFyIGk9ZS5zZWxlY3RBbGwoIi5oYW5kbGUiKS5kYXRhKHQuaGFuZGxlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pKTtpLmV4aXQoKS5yZW1vdmUoKSxpLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLChmdW5jdGlvbih0KXtyZXR1cm4iaGFuZGxlIGhhbmRsZS0tIit0LnR5cGV9KSkuYXR0cigiY3Vyc29yIiwoZnVuY3Rpb24odCl7cmV0dXJuIEZGW3QudHlwZV19KSksZS5lYWNoKHMpLmF0dHIoImZpbGwiLCJub25lIikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpLm9uKCJtb3VzZWRvd24uYnJ1c2ggdG91Y2hzdGFydC5icnVzaCIsdSl9ZnVuY3Rpb24gcygpe3ZhciB0PWJEKHRoaXMpLGU9WEYodGhpcykuc2VsZWN0aW9uO2U/KHQuc2VsZWN0QWxsKCIuc2VsZWN0aW9uIikuc3R5bGUoImRpc3BsYXkiLG51bGwpLmF0dHIoIngiLGVbMF1bMF0pLmF0dHIoInkiLGVbMF1bMV0pLmF0dHIoIndpZHRoIixlWzFdWzBdLWVbMF1bMF0pLmF0dHIoImhlaWdodCIsZVsxXVsxXS1lWzBdWzFdKSx0LnNlbGVjdEFsbCgiLmhhbmRsZSIpLnN0eWxlKCJkaXNwbGF5IixudWxsKS5hdHRyKCJ4IiwoZnVuY3Rpb24odCl7cmV0dXJuImUiPT09dC50eXBlW3QudHlwZS5sZW5ndGgtMV0/ZVsxXVswXS1vLzI6ZVswXVswXS1vLzJ9KSkuYXR0cigieSIsKGZ1bmN0aW9uKHQpe3JldHVybiJzIj09PXQudHlwZVswXT9lWzFdWzFdLW8vMjplWzBdWzFdLW8vMn0pKS5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiJuIj09PXQudHlwZXx8InMiPT09dC50eXBlP2VbMV1bMF0tZVswXVswXStvOm99KSkuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuImUiPT09dC50eXBlfHwidyI9PT10LnR5cGU/ZVsxXVsxXS1lWzBdWzFdK286b30pKSk6dC5zZWxlY3RBbGwoIi5zZWxlY3Rpb24sLmhhbmRsZSIpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLmF0dHIoIngiLG51bGwpLmF0dHIoInkiLG51bGwpLmF0dHIoIndpZHRoIixudWxsKS5hdHRyKCJoZWlnaHQiLG51bGwpfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gdC5fX2JydXNoLmVtaXR0ZXJ8fG5ldyBjKHQsZSl9ZnVuY3Rpb24gYyh0LGUpe3RoaXMudGhhdD10LHRoaXMuYXJncz1lLHRoaXMuc3RhdGU9dC5fX2JydXNoLHRoaXMuYWN0aXZlPTB9ZnVuY3Rpb24gdSgpe2lmKGxELnRvdWNoZXMpe2lmKGxELmNoYW5nZWRUb3VjaGVzLmxlbmd0aDxsRC50b3VjaGVzLmxlbmd0aClyZXR1cm4gTEYoKX1lbHNlIGlmKGUpcmV0dXJuO2lmKGkuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbixyLG8sYSxjLHUsaCxkLHAsZixtLGcsXyx5PXRoaXMsdj1sRC50YXJnZXQuX19kYXRhX18udHlwZSxiPSJzZWxlY3Rpb24iPT09KGxELm1ldGFLZXk/dj0ib3ZlcmxheSI6dik/SUY6bEQuYWx0S2V5P3pGOk9GLHg9dD09PUJGP251bGw6akZbdl0sdz10PT09REY/bnVsbDpHRlt2XSxTPVhGKHkpLE09Uy5leHRlbnQsRT1TLnNlbGVjdGlvbixUPU1bMF1bMF0sQz1NWzBdWzFdLEE9TVsxXVswXSxrPU1bMV1bMV0sTD14JiZ3JiZsRC5zaGlmdEtleSxQPXhEKHkpLE49UCxJPWwoeSxhcmd1bWVudHMpLmJlZm9yZXN0YXJ0KCk7Im92ZXJsYXkiPT09dj9TLnNlbGVjdGlvbj1FPVtbbj10PT09QkY/VDpQWzBdLG89dD09PURGP0M6UFsxXV0sW2M9dD09PUJGP0E6bixoPXQ9PT1ERj9rOm9dXToobj1FWzBdWzBdLG89RVswXVsxXSxjPUVbMV1bMF0saD1FWzFdWzFdKSxyPW4sYT1vLHU9YyxkPWg7dmFyIFI9YkQoeSkuYXR0cigicG9pbnRlci1ldmVudHMiLCJub25lIiksTz1SLnNlbGVjdEFsbCgiLm92ZXJsYXkiKS5hdHRyKCJjdXJzb3IiLEZGW3ZdKTtpZihsRC50b3VjaGVzKVIub24oInRvdWNobW92ZS5icnVzaCIsRCwhMCkub24oInRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoIixILCEwKTtlbHNle3ZhciB6PWJEKGxELnZpZXcpLm9uKCJrZXlkb3duLmJydXNoIixGLCEwKS5vbigia2V5dXAuYnJ1c2giLFYsITApLm9uKCJtb3VzZW1vdmUuYnJ1c2giLEQsITApLm9uKCJtb3VzZXVwLmJydXNoIixILCEwKTtTRChsRC52aWV3KX1rRigpLGtIKHkpLHMuY2FsbCh5KSxJLnN0YXJ0KCl9ZnVuY3Rpb24gRCgpe3ZhciB0PXhEKHkpOyFMfHxnfHxffHwoTWF0aC5hYnModFswXS1OWzBdKT5NYXRoLmFicyh0WzFdLU5bMV0pP189ITA6Zz0hMCksTj10LG09ITAsTEYoKSxCKCl9ZnVuY3Rpb24gQigpe3ZhciB0O3N3aXRjaChwPU5bMF0tUFswXSxmPU5bMV0tUFsxXSxiKXtjYXNlIFJGOmNhc2UgSUY6eCYmKHA9TWF0aC5tYXgoVC1uLE1hdGgubWluKEEtYyxwKSkscj1uK3AsdT1jK3ApLHcmJihmPU1hdGgubWF4KEMtbyxNYXRoLm1pbihrLWgsZikpLGE9bytmLGQ9aCtmKTticmVhaztjYXNlIE9GOng8MD8ocD1NYXRoLm1heChULW4sTWF0aC5taW4oQS1uLHApKSxyPW4rcCx1PWMpOng+MCYmKHA9TWF0aC5tYXgoVC1jLE1hdGgubWluKEEtYyxwKSkscj1uLHU9YytwKSx3PDA/KGY9TWF0aC5tYXgoQy1vLE1hdGgubWluKGstbyxmKSksYT1vK2YsZD1oKTp3PjAmJihmPU1hdGgubWF4KEMtaCxNYXRoLm1pbihrLWgsZikpLGE9byxkPWgrZik7YnJlYWs7Y2FzZSB6Rjp4JiYocj1NYXRoLm1heChULE1hdGgubWluKEEsbi1wKngpKSx1PU1hdGgubWF4KFQsTWF0aC5taW4oQSxjK3AqeCkpKSx3JiYoYT1NYXRoLm1heChDLE1hdGgubWluKGssby1mKncpKSxkPU1hdGgubWF4KEMsTWF0aC5taW4oayxoK2YqdykpKX11PHImJih4Kj0tMSx0PW4sbj1jLGM9dCx0PXIscj11LHU9dCx2IGluIFZGJiZPLmF0dHIoImN1cnNvciIsRkZbdj1WRlt2XV0pKSxkPGEmJih3Kj0tMSx0PW8sbz1oLGg9dCx0PWEsYT1kLGQ9dCx2IGluIFVGJiZPLmF0dHIoImN1cnNvciIsRkZbdj1VRlt2XV0pKSxTLnNlbGVjdGlvbiYmKEU9Uy5zZWxlY3Rpb24pLGcmJihyPUVbMF1bMF0sdT1FWzFdWzBdKSxfJiYoYT1FWzBdWzFdLGQ9RVsxXVsxXSksRVswXVswXT09PXImJkVbMF1bMV09PT1hJiZFWzFdWzBdPT09dSYmRVsxXVsxXT09PWR8fChTLnNlbGVjdGlvbj1bW3IsYV0sW3UsZF1dLHMuY2FsbCh5KSxJLmJydXNoKCkpfWZ1bmN0aW9uIEgoKXtpZihrRigpLGxELnRvdWNoZXMpe2lmKGxELnRvdWNoZXMubGVuZ3RoKXJldHVybjtlJiZjbGVhclRpbWVvdXQoZSksZT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2U9bnVsbH0pLDUwMCksUi5vbigidG91Y2htb3ZlLmJydXNoIHRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoIixudWxsKX1lbHNlIE1EKGxELnZpZXcsbSksei5vbigia2V5ZG93bi5icnVzaCBrZXl1cC5icnVzaCBtb3VzZW1vdmUuYnJ1c2ggbW91c2V1cC5icnVzaCIsbnVsbCk7Ui5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLE8uYXR0cigiY3Vyc29yIixGRi5vdmVybGF5KSxTLnNlbGVjdGlvbiYmKEU9Uy5zZWxlY3Rpb24pLCRGKEUpJiYoUy5zZWxlY3Rpb249bnVsbCxzLmNhbGwoeSkpLEkuZW5kKCl9ZnVuY3Rpb24gRigpe3N3aXRjaChsRC5rZXlDb2RlKXtjYXNlIDE2Okw9eCYmdzticmVhaztjYXNlIDE4OmI9PT1PRiYmKHgmJihjPXUtcCp4LG49citwKngpLHcmJihoPWQtZip3LG89YStmKncpLGI9ekYsQigpKTticmVhaztjYXNlIDMyOmIhPT1PRiYmYiE9PXpGfHwoeDwwP2M9dS1wOng+MCYmKG49ci1wKSx3PDA/aD1kLWY6dz4wJiYobz1hLWYpLGI9UkYsTy5hdHRyKCJjdXJzb3IiLEZGLnNlbGVjdGlvbiksQigpKTticmVhaztkZWZhdWx0OnJldHVybn1MRigpfWZ1bmN0aW9uIFYoKXtzd2l0Y2gobEQua2V5Q29kZSl7Y2FzZSAxNjpMJiYoZz1fPUw9ITEsQigpKTticmVhaztjYXNlIDE4OmI9PT16RiYmKHg8MD9jPXU6eD4wJiYobj1yKSx3PDA/aD1kOnc+MCYmKG89YSksYj1PRixCKCkpO2JyZWFrO2Nhc2UgMzI6Yj09PVJGJiYobEQuYWx0S2V5Pyh4JiYoYz11LXAqeCxuPXIrcCp4KSx3JiYoaD1kLWYqdyxvPWErZip3KSxiPXpGKTooeDwwP2M9dTp4PjAmJihuPXIpLHc8MD9oPWQ6dz4wJiYobz1hKSxiPU9GKSxPLmF0dHIoImN1cnNvciIsRkZbdl0pLEIoKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59TEYoKX19ZnVuY3Rpb24gaCgpe3ZhciBlPXRoaXMuX19icnVzaHx8e3NlbGVjdGlvbjpudWxsfTtyZXR1cm4gZS5leHRlbnQ9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyksZS5kaW09dCxlfXJldHVybiBhLm1vdmU9ZnVuY3Rpb24oZSxuKXtlLnNlbGVjdGlvbj9lLm9uKCJzdGFydC5icnVzaCIsKGZ1bmN0aW9uKCl7bCh0aGlzLGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKS5zdGFydCgpfSkpLm9uKCJpbnRlcnJ1cHQuYnJ1c2ggZW5kLmJydXNoIiwoZnVuY3Rpb24oKXtsKHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pKS50d2VlbigiYnJ1c2giLChmdW5jdGlvbigpe3ZhciBlPXRoaXMsaT1lLl9fYnJ1c2gscj1sKGUsYXJndW1lbnRzKSxvPWkuc2VsZWN0aW9uLGE9dC5pbnB1dCgiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpuLGkuZXh0ZW50KSxjPXFCKG8sYSk7ZnVuY3Rpb24gdSh0KXtpLnNlbGVjdGlvbj0xPT09dCYmJEYoYSk/bnVsbDpjKHQpLHMuY2FsbChlKSxyLmJydXNoKCl9cmV0dXJuIG8mJmE/dTp1KDEpfSkpOmUuZWFjaCgoZnVuY3Rpb24oKXt2YXIgZT10aGlzLGk9YXJndW1lbnRzLHI9ZS5fX2JydXNoLG89dC5pbnB1dCgiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KGUsaSk6bixyLmV4dGVudCksYT1sKGUsaSkuYmVmb3Jlc3RhcnQoKTtrSChlKSxyLnNlbGVjdGlvbj1udWxsPT1vfHwkRihvKT9udWxsOm8scy5jYWxsKGUpLGEuc3RhcnQoKS5icnVzaCgpLmVuZCgpfSkpfSxjLnByb3RvdHlwZT17YmVmb3Jlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMuc3RhdGUuZW1pdHRlcj10aGlzLHRoaXMuc3RhcnRpbmc9ITApLHRoaXN9LHN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRpbmcmJih0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdCgic3RhcnQiKSksdGhpc30sYnJ1c2g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbWl0KCJicnVzaCIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoZGVsZXRlIHRoaXMuc3RhdGUuZW1pdHRlcix0aGlzLmVtaXQoImVuZCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKGUpeyEoZnVuY3Rpb24gbih0LGUsaSxyKXt2YXIgbz1sRDt0LnNvdXJjZUV2ZW50PWxELGxEPXQ7dHJ5e2UuYXBwbHkoaSxyKX1maW5hbGx5e2xEPW99fSkobmV3IEFGKGEsZSx0Lm91dHB1dCh0aGlzLnN0YXRlLnNlbGVjdGlvbikpLHIuYXBwbHkscixbZSx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxhLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkNGKFtbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dKSxhKTpufSxhLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkNGKCEhdCksYSk6aX0sYS5oYW5kbGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSt0LGEpOm99LGEub249ZnVuY3Rpb24oKXt2YXIgdD1yLm9uLmFwcGx5KHIsYXJndW1lbnRzKTtyZXR1cm4gdD09PXI/YTp0fSxhfWZ1bmN0aW9uIFpGKHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIEpGKHQsZSxuKXt0PSt0LGU9K2Usbj0ocj1hcmd1bWVudHMubGVuZ3RoKTwyPyhlPXQsdD0wLDEpOnI8Mz8xOituO2Zvcih2YXIgaT0tMSxyPTB8TWF0aC5tYXgoMCxNYXRoLmNlaWwoKGUtdCkvbikpLG89bmV3IEFycmF5KHIpOysraTxyOylvW2ldPXQraSpuO3JldHVybiBvfSEoZnVuY3Rpb24gUUYodCl7MT09PXQubGVuZ3RoJiYodD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gWkYodChlKSxuKX19KSh0KSl9KShaRik7dmFyIHRWPU1hdGguY29zLGVWPU1hdGguc2luLG5WPU1hdGguUEksaVY9blYvMixyVj0yKm5WLG9WPU1hdGgubWF4O2Z1bmN0aW9uIGFWKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB0KGUuc291cmNlLnZhbHVlK2UudGFyZ2V0LnZhbHVlLG4uc291cmNlLnZhbHVlK24udGFyZ2V0LnZhbHVlKX19dmFyIHNWPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBsVih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19dmFyIGNWPU1hdGguUEksdVY9MipjVixoVj0xZS02LGRWPXVWLWhWO2Z1bmN0aW9uIHBWKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gZlYoKXtyZXR1cm4gbmV3IHBWfWZ1bmN0aW9uIG1WKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBnVih0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gX1YodCl7cmV0dXJuIHQucmFkaXVzfWZ1bmN0aW9uIHlWKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gdlYodCl7cmV0dXJuIHQuZW5kQW5nbGV9cFYucHJvdG90eXBlPWZWLnByb3RvdHlwZT17Y29uc3RydWN0b3I6cFYsbW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJMIisodGhpcy5feDE9K3QpKyIsIisodGhpcy5feTE9K2UpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkpe3RoaXMuXys9IlEiKyArdCsiLCIrICtlKyIsIisodGhpcy5feDE9K24pKyIsIisodGhpcy5feTE9K2kpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLl8rPSJDIisgK3QrIiwiKyArZSsiLCIrICtuKyIsIisgK2krIiwiKyh0aGlzLl94MT0rcikrIiwiKyh0aGlzLl95MT0rbyl9LGFyY1RvOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG89dGhpcy5feDEsYT10aGlzLl95MSxzPShuPStuKS0odD0rdCksbD0oaT0raSktKGU9K2UpLGM9by10LHU9YS1lLGg9YypjK3UqdTtpZigocj0rcik8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIityKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSk7ZWxzZSBpZihoPmhWKWlmKE1hdGguYWJzKHUqcy1sKmMpPmhWJiZyKXt2YXIgZD1uLW8scD1pLWEsZj1zKnMrbCpsLG09ZCpkK3AqcCxnPU1hdGguc3FydChmKSxfPU1hdGguc3FydChoKSx5PXIqTWF0aC50YW4oKGNWLU1hdGguYWNvcygoZitoLW0pLygyKmcqXykpKS8yKSx2PXkvXyxiPXkvZztNYXRoLmFicyh2LTEpPmhWJiYodGhpcy5fKz0iTCIrKHQrdipjKSsiLCIrKGUrdip1KSksdGhpcy5fKz0iQSIrcisiLCIrcisiLDAsMCwiKyArKHUqZD5jKnApKyIsIisodGhpcy5feDE9dCtiKnMpKyIsIisodGhpcy5feTE9ZStiKmwpfWVsc2UgdGhpcy5fKz0iTCIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSl9LGFyYzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dD0rdCxlPStlLG89ISFvO3ZhciBhPShuPStuKSpNYXRoLmNvcyhpKSxzPW4qTWF0aC5zaW4oaSksbD10K2EsYz1lK3MsdT0xXm8saD1vP2ktcjpyLWk7aWYobjwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK24pO251bGw9PT10aGlzLl94MT90aGlzLl8rPSJNIitsKyIsIitjOihNYXRoLmFicyh0aGlzLl94MS1sKT5oVnx8TWF0aC5hYnModGhpcy5feTEtYyk+aFYpJiYodGhpcy5fKz0iTCIrbCsiLCIrYyksbiYmKGg8MCYmKGg9aCV1Vit1ViksaD5kVj90aGlzLl8rPSJBIituKyIsIituKyIsMCwxLCIrdSsiLCIrKHQtYSkrIiwiKyhlLXMpKyJBIituKyIsIituKyIsMCwxLCIrdSsiLCIrKHRoaXMuX3gxPWwpKyIsIisodGhpcy5feTE9Yyk6aD5oViYmKHRoaXMuXys9IkEiK24rIiwiK24rIiwwLCIrICsoaD49Y1YpKyIsIit1KyIsIisodGhpcy5feDE9dCtuKk1hdGguY29zKHIpKSsiLCIrKHRoaXMuX3kxPWUrbipNYXRoLnNpbihyKSkpKX0scmVjdDpmdW5jdGlvbih0LGUsbixpKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K3QpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K2UpKyJoIisgK24rInYiKyAraSsiaCIrLW4rIloifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTt2YXIgYlY9IiQiO2Z1bmN0aW9uIHhWKCl7fWZ1bmN0aW9uIHdWKHQsZSl7dmFyIG49bmV3IHhWO2lmKHQgaW5zdGFuY2VvZiB4Vil0LmVhY2goKGZ1bmN0aW9uKHQsZSl7bi5zZXQoZSx0KX0pKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBpLHI9LTEsbz10Lmxlbmd0aDtpZihudWxsPT1lKWZvcig7KytyPG87KW4uc2V0KHIsdFtyXSk7ZWxzZSBmb3IoOysrcjxvOyluLnNldChlKGk9dFtyXSxyLHQpLGkpfWVsc2UgaWYodClmb3IodmFyIGEgaW4gdCluLnNldChhLHRbYV0pO3JldHVybiBufWZ1bmN0aW9uIFNWKCl7cmV0dXJue319ZnVuY3Rpb24gTVYodCxlLG4pe3RbZV09bn1mdW5jdGlvbiBFVigpe3JldHVybiB3VigpfWZ1bmN0aW9uIFRWKHQsZSxuKXt0LnNldChlLG4pfWZ1bmN0aW9uIENWKCl7fXhWLnByb3RvdHlwZT13Vi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnhWLGhhczpmdW5jdGlvbih0KXtyZXR1cm4gYlYrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbYlYrdF19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzW2JWK3RdPWUsdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPWJWK3Q7cmV0dXJuIGUgaW4gdGhpcyYmZGVsZXRlIHRoaXNbZV19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PWJWJiZkZWxldGUgdGhpc1t0XX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1iViYmdC5wdXNoKGUuc2xpY2UoMSkpO3JldHVybiB0fSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09YlYmJnQucHVzaCh0aGlzW2VdKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1iViYmdC5wdXNoKHtrZXk6ZS5zbGljZSgxKSx2YWx1ZTp0aGlzW2VdfSk7cmV0dXJuIHR9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1iViYmKyt0O3JldHVybiB0fSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKWlmKHRbMF09PT1iVilyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09YlYmJnQodGhpc1tlXSxlLnNsaWNlKDEpLHRoaXMpfX07dmFyIEFWPXdWLnByb3RvdHlwZTtmdW5jdGlvbiBrVih0LGUpe3ZhciBuPW5ldyBDVjtpZih0IGluc3RhbmNlb2YgQ1YpdC5lYWNoKChmdW5jdGlvbih0KXtuLmFkZCh0KX0pKTtlbHNlIGlmKHQpe3ZhciBpPS0xLHI9dC5sZW5ndGg7aWYobnVsbD09ZSlmb3IoOysraTxyOyluLmFkZCh0W2ldKTtlbHNlIGZvcig7KytpPHI7KW4uYWRkKGUodFtpXSxpLHQpKX1yZXR1cm4gbn1mdW5jdGlvbiBMVih0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gUFYodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gTlYoKXt9Q1YucHJvdG90eXBlPWtWLnByb3RvdHlwZT17Y29uc3RydWN0b3I6Q1YsaGFzOkFWLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbYlYrKHQrPSIiKV09dCx0aGlzfSxyZW1vdmU6QVYucmVtb3ZlLGNsZWFyOkFWLmNsZWFyLHZhbHVlczpBVi5rZXlzLHNpemU6QVYuc2l6ZSxlbXB0eTpBVi5lbXB0eSxlYWNoOkFWLmVhY2h9O3ZhciBJVj0uNyxSVj0xL0lWLE9WPSJcXHMqKFsrLV0/XFxkKylcXHMqIix6Vj0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIixEVj0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIsQlY9L14jKFswLTlhLWZdezN9KSQvLEhWPS9eIyhbMC05YS1mXXs2fSkkLyxGVj1uZXcgUmVnRXhwKCJecmdiXFwoIitbT1YsT1YsT1ZdKyJcXCkkIiksVlY9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW0RWLERWLERWXSsiXFwpJCIpLFVWPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbT1YsT1YsT1YselZdKyJcXCkkIiksalY9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tEVixEVixEVix6Vl0rIlxcKSQiKSxHVj1uZXcgUmVnRXhwKCJeaHNsXFwoIitbelYsRFYsRFZdKyJcXCkkIiksV1Y9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1t6VixEVixEVix6Vl0rIlxcKSQiKSxxVj17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBZVih0KXt2YXIgZTtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9QlYuZXhlYyh0KSk/bmV3IEpWKChlPXBhcnNlSW50KGVbMV0sMTYpKT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOihlPUhWLmV4ZWModCkpP1hWKHBhcnNlSW50KGVbMV0sMTYpKTooZT1GVi5leGVjKHQpKT9uZXcgSlYoZVsxXSxlWzJdLGVbM10sMSk6KGU9VlYuZXhlYyh0KSk/bmV3IEpWKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLDEpOihlPVVWLmV4ZWModCkpPyRWKGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPWpWLmV4ZWModCkpPyRWKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLGVbNF0pOihlPUdWLmV4ZWModCkpP1FWKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsMSk6KGU9V1YuZXhlYyh0KSk/UVYoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpxVi5oYXNPd25Qcm9wZXJ0eSh0KT9YVihxVlt0XSk6InRyYW5zcGFyZW50Ij09PXQ/bmV3IEpWKE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gWFYodCl7cmV0dXJuIG5ldyBKVih0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gJFYodCxlLG4saSl7cmV0dXJuIGk8PTAmJih0PWU9bj1OYU4pLG5ldyBKVih0LGUsbixpKX1mdW5jdGlvbiBLVih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIE5WfHwodD1ZVih0KSksdD9uZXcgSlYoKHQ9dC5yZ2IoKSkucix0LmcsdC5iLHQub3BhY2l0eSk6bmV3IEpWfWZ1bmN0aW9uIFpWKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9LVih0KTpuZXcgSlYodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIEpWKHQsZSxuLGkpe3RoaXMucj0rdCx0aGlzLmc9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBRVih0LGUsbixpKXtyZXR1cm4gaTw9MD90PWU9bj1OYU46bjw9MHx8bj49MT90PWU9TmFOOmU8PTAmJih0PU5hTiksbmV3IG5VKHQsZSxuLGkpfWZ1bmN0aW9uIHRVKHQpe2lmKHQgaW5zdGFuY2VvZiBuVSlyZXR1cm4gbmV3IG5VKHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIE5WfHwodD1ZVih0KSksIXQpcmV0dXJuIG5ldyBuVTtpZih0IGluc3RhbmNlb2YgblUpcmV0dXJuIHQ7dmFyIGU9KHQ9dC5yZ2IoKSkuci8yNTUsbj10LmcvMjU1LGk9dC5iLzI1NSxyPU1hdGgubWluKGUsbixpKSxvPU1hdGgubWF4KGUsbixpKSxhPU5hTixzPW8tcixsPShvK3IpLzI7cmV0dXJuIHM/KGE9ZT09PW8/KG4taSkvcys2KihuPGkpOm49PT1vPyhpLWUpL3MrMjooZS1uKS9zKzQscy89bDwuNT9vK3I6Mi1vLXIsYSo9NjApOnM9bD4wJiZsPDE/MDphLG5ldyBuVShhLHMsbCx0Lm9wYWNpdHkpfWZ1bmN0aW9uIGVVKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90VSh0KTpuZXcgblUodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIG5VKHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBpVSh0LGUsbil7cmV0dXJuIDI1NSoodDw2MD9lKyhuLWUpKnQvNjA6dDwxODA/bjp0PDI0MD9lKyhuLWUpKigyNDAtdCkvNjA6ZSl9TFYoTlYsWVYse2Rpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKSsiIn19KSxMVihKVixaVixQVihOVix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9SVjpNYXRoLnBvdyhSVix0KSxuZXcgSlYodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/SVY6TWF0aC5wb3coSVYsdCksbmV3IEpWKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiAwPD10aGlzLnImJnRoaXMucjw9MjU1JiYwPD10aGlzLmcmJnRoaXMuZzw9MjU1JiYwPD10aGlzLmImJnRoaXMuYjw9MjU1JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX19KSksTFYoblUsZVUsUFYoTlYse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/UlY6TWF0aC5wb3coUlYsdCksbmV3IG5VKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/SVY6TWF0aC5wb3coSVYsdCksbmV3IG5VKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSxlPWlzTmFOKHQpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLG49dGhpcy5sLGk9bisobjwuNT9uOjEtbikqZSxyPTIqbi1pO3JldHVybiBuZXcgSlYoaVUodD49MjQwP3QtMjQwOnQrMTIwLHIsaSksaVUodCxyLGkpLGlVKHQ8MTIwP3QrMjQwOnQtMTIwLHIsaSksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9fSkpO3ZhciByVT1NYXRoLlBJLzE4MCxvVT0xODAvTWF0aC5QSSxhVT0uOTUwNDcsc1U9MS4wODg4MyxsVT00LzI5LGNVPTYvMjksdVU9MypjVSpjVTtmdW5jdGlvbiBoVSh0KXtpZih0IGluc3RhbmNlb2YgcFUpcmV0dXJuIG5ldyBwVSh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBiVSl7dmFyIGU9dC5oKnJVO3JldHVybiBuZXcgcFUodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX10IGluc3RhbmNlb2YgSlZ8fCh0PUtWKHQpKTt2YXIgbj1fVSh0LnIpLGk9X1UodC5nKSxyPV9VKHQuYiksbz1mVSgoLjQxMjQ1NjQqbisuMzU3NTc2MSppKy4xODA0Mzc1KnIpL2FVKSxhPWZVKCguMjEyNjcyOSpuKy43MTUxNTIyKmkrLjA3MjE3NSpyKS8xKTtyZXR1cm4gbmV3IHBVKDExNiphLTE2LDUwMCooby1hKSwyMDAqKGEtZlUoKC4wMTkzMzM5Km4rLjExOTE5MippKy45NTAzMDQxKnIpL3NVKSksdC5vcGFjaXR5KX1mdW5jdGlvbiBkVSh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/aFUodCk6bmV3IHBVKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBwVSh0LGUsbixpKXt0aGlzLmw9K3QsdGhpcy5hPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gZlUodCl7cmV0dXJuIHQ+LjAwODg1NjQ1MTY3OTAzNTYzMT9NYXRoLnBvdyh0LDEvMyk6dC91VStsVX1mdW5jdGlvbiBtVSh0KXtyZXR1cm4gdD5jVT90KnQqdDp1VSoodC1sVSl9ZnVuY3Rpb24gZ1UodCl7cmV0dXJuIDI1NSoodDw9LjAwMzEzMDg/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LDEvMi40KS0uMDU1KX1mdW5jdGlvbiBfVSh0KXtyZXR1cm4odC89MjU1KTw9LjA0MDQ1P3QvMTIuOTI6TWF0aC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiB5VSh0KXtpZih0IGluc3RhbmNlb2YgYlUpcmV0dXJuIG5ldyBiVSh0LmgsdC5jLHQubCx0Lm9wYWNpdHkpO3QgaW5zdGFuY2VvZiBwVXx8KHQ9aFUodCkpO3ZhciBlPU1hdGguYXRhbjIodC5iLHQuYSkqb1U7cmV0dXJuIG5ldyBiVShlPDA/ZSszNjA6ZSxNYXRoLnNxcnQodC5hKnQuYSt0LmIqdC5iKSx0LmwsdC5vcGFjaXR5KX1mdW5jdGlvbiB2VSh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/eVUodCk6bmV3IGJVKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBiVSh0LGUsbixpKXt0aGlzLmg9K3QsdGhpcy5jPStlLHRoaXMubD0rbix0aGlzLm9wYWNpdHk9K2l9TFYocFUsZFUsUFYoTlYse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgcFUodGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBwVSh0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmwrMTYpLzExNixlPWlzTmFOKHRoaXMuYSk/dDp0K3RoaXMuYS81MDAsbj1pc05hTih0aGlzLmIpP3Q6dC10aGlzLmIvMjAwO3JldHVybiB0PTEqbVUodCksbmV3IEpWKGdVKDMuMjQwNDU0MiooZT1hVSptVShlKSktMS41MzcxMzg1KnQtLjQ5ODUzMTQqKG49c1UqbVUobikpKSxnVSgtLjk2OTI2NiplKzEuODc2MDEwOCp0Ky4wNDE1NTYqbiksZ1UoLjA1NTY0MzQqZS0uMjA0MDI1OSp0KzEuMDU3MjI1MipuKSx0aGlzLm9wYWNpdHkpfX0pKSxMVihiVSx2VSxQVihOVix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBiVSh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGJVKHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIGhVKHRoaXMpLnJnYigpfX0pKTt2YXIgeFU9LS4yOTIyNyx3VT0tLjkwNjQ5LFNVPTEuOTcyOTQ7ZnVuY3Rpb24gTVUodCl7aWYodCBpbnN0YW5jZW9mIFRVKXJldHVybiBuZXcgVFUodC5oLHQucyx0LmwsdC5vcGFjaXR5KTt0IGluc3RhbmNlb2YgSlZ8fCh0PUtWKHQpKTt2YXIgZT10LmcvMjU1LG49dC5iLzI1NSxpPSgtLjY1NTc2MzY2Njc5OTk5OTkqbit0LnIvMjU1Ki0xLjc4ODQ1MDM4MDYtMy41MTcyOTgyNDM4KmUpLy01Ljk2MTUxMjI5MTIscj1uLWksbz0oU1UqKGUtaSkteFUqcikvd1UsYT1NYXRoLnNxcnQobypvK3IqcikvKFNVKmkqKDEtaSkpLHM9YT9NYXRoLmF0YW4yKG8scikqb1UtMTIwOk5hTjtyZXR1cm4gbmV3IFRVKHM8MD9zKzM2MDpzLGEsaSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIEVVKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9NVSh0KTpuZXcgVFUodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIFRVKHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1MVihUVSxFVSxQVihOVix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9SVjpNYXRoLnBvdyhSVix0KSxuZXcgVFUodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9JVjpNYXRoLnBvdyhJVix0KSxuZXcgVFUodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD1pc05hTih0aGlzLmgpPzA6KHRoaXMuaCsxMjApKnJVLGU9K3RoaXMubCxuPWlzTmFOKHRoaXMucyk/MDp0aGlzLnMqZSooMS1lKSxpPU1hdGguY29zKHQpLHI9TWF0aC5zaW4odCk7cmV0dXJuIG5ldyBKVigyNTUqKGUrbiooLS4xNDg2MSppKzEuNzgyNzcqcikpLDI1NSooZStuKih4VSppK3dVKnIpKSwyNTUqKGUrbiooU1UqaSkpLHRoaXMub3BhY2l0eSl9fSkpO3ZhciBDVT17dmFsdWU6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBBVSgpe2Zvcih2YXIgdCxlPTAsbj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxuOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaSl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgdHlwZTogIit0KTtpW3RdPVtdfXJldHVybiBuZXcga1UoaSl9ZnVuY3Rpb24ga1UodCl7dGhpcy5fPXR9ZnVuY3Rpb24gTFUodCxlKXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgbj0iIixpPXQuaW5kZXhPZigiLiIpO2lmKGk+PTAmJihuPXQuc2xpY2UoaSsxKSx0PXQuc2xpY2UoMCxpKSksdCYmIWUuaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOm59fSkpfWZ1bmN0aW9uIFBVKHQsZSl7Zm9yKHZhciBuLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYoKG49dFtpXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24gTlUodCxlLG4pe2Zvcih2YXIgaT0wLHI9dC5sZW5ndGg7aTxyOysraSlpZih0W2ldLm5hbWU9PT1lKXt0W2ldPUNVLHQ9dC5zbGljZSgwLGkpLmNvbmNhdCh0LnNsaWNlKGkrMSkpO2JyZWFrfXJldHVybiBudWxsIT1uJiZ0LnB1c2goe25hbWU6ZSx2YWx1ZTpufSksdH1rVS5wcm90b3R5cGU9QVUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjprVSxvbjpmdW5jdGlvbih0LGUpe3ZhciBuLGk9dGhpcy5fLHI9TFUodCsiIixpKSxvPS0xLGE9ci5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK288YTspaWYobj0odD1yW29dKS50eXBlKWlbbl09TlUoaVtuXSx0Lm5hbWUsZSk7ZWxzZSBpZihudWxsPT1lKWZvcihuIGluIGkpaVtuXT1OVShpW25dLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrbzxhOylpZigobj0odD1yW29dKS50eXBlKSYmKG49UFUoaVtuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcga1UodCl9LGNhbGw6ZnVuY3Rpb24odCxlKXtpZigobj1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBuLGkscj1uZXcgQXJyYXkobiksbz0wO288bjsrK28pcltvXT1hcmd1bWVudHNbbysyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2ZvcihvPTAsbj0oaT10aGlzLl9bdF0pLmxlbmd0aDtvPG47KytvKWlbb10udmFsdWUuYXBwbHkoZSxyKX0sYXBwbHk6ZnVuY3Rpb24odCxlLG4pe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKHZhciBpPXRoaXMuX1t0XSxyPTAsbz1pLmxlbmd0aDtyPG87KytyKWlbcl0udmFsdWUuYXBwbHkoZSxuKX19O3ZhciBJVT17dmFsdWU6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBSVSgpe2Zvcih2YXIgdCxlPTAsbj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxuOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaXx8L1tccy5dLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK3QpO2lbdF09W119cmV0dXJuIG5ldyBPVShpKX1mdW5jdGlvbiBPVSh0KXt0aGlzLl89dH1mdW5jdGlvbiB6VSh0LGUpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9dC5pbmRleE9mKCIuIik7aWYoaT49MCYmKG49dC5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKSx0JiYhZS5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6bn19KSl9ZnVuY3Rpb24gRFUodCxlKXtmb3IodmFyIG4saT0wLHI9dC5sZW5ndGg7aTxyOysraSlpZigobj10W2ldKS5uYW1lPT09ZSlyZXR1cm4gbi52YWx1ZX1mdW5jdGlvbiBCVSh0LGUsbil7Zm9yKHZhciBpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKHRbaV0ubmFtZT09PWUpe3RbaV09SVUsdD10LnNsaWNlKDAsaSkuY29uY2F0KHQuc2xpY2UoaSsxKSk7YnJlYWt9cmV0dXJuIG51bGwhPW4mJnQucHVzaCh7bmFtZTplLHZhbHVlOm59KSx0fU9VLnByb3RvdHlwZT1SVS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk9VLG9uOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl8scj16VSh0KyIiLGkpLG89LTEsYT1yLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2lmKG51bGwhPWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIitlKTtmb3IoOysrbzxhOylpZihuPSh0PXJbb10pLnR5cGUpaVtuXT1CVShpW25dLHQubmFtZSxlKTtlbHNlIGlmKG51bGw9PWUpZm9yKG4gaW4gaSlpW25dPUJVKGlbbl0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChuPSh0PXJbb10pLnR5cGUpJiYobj1EVShpW25dLHQubmFtZSkpKXJldHVybiBufSxjb3B5OmZ1bmN0aW9uKCl7dmFyIHQ9e30sZT10aGlzLl87Zm9yKHZhciBuIGluIGUpdFtuXT1lW25dLnNsaWNlKCk7cmV0dXJuIG5ldyBPVSh0KX0sY2FsbDpmdW5jdGlvbih0LGUpe2lmKChuPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIG4saSxyPW5ldyBBcnJheShuKSxvPTA7bzxuOysrbylyW29dPWFyZ3VtZW50c1tvKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKG89MCxuPShpPXRoaXMuX1t0XSkubGVuZ3RoO288bjsrK28paVtvXS52YWx1ZS5hcHBseShlLHIpfSxhcHBseTpmdW5jdGlvbih0LGUsbil7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3IodmFyIGk9dGhpcy5fW3RdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3IpaVtyXS52YWx1ZS5hcHBseShlLG4pfX07dmFyIEhVPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixGVT17c3ZnOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseGh0bWw6SFUseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtmdW5jdGlvbiBWVSh0KXt2YXIgZT10Kz0iIixuPWUuaW5kZXhPZigiOiIpO3JldHVybiBuPj0wJiYieG1sbnMiIT09KGU9dC5zbGljZSgwLG4pKSYmKHQ9dC5zbGljZShuKzEpKSxGVS5oYXNPd25Qcm9wZXJ0eShlKT97c3BhY2U6RlVbZV0sbG9jYWw6dH06dH1mdW5jdGlvbiBVVSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnQsbj10aGlzLm5hbWVzcGFjZVVSSTtyZXR1cm4gbj09PUhVJiZlLmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1IVT9lLmNyZWF0ZUVsZW1lbnQodCk6ZS5jcmVhdGVFbGVtZW50TlMobix0KX19ZnVuY3Rpb24galUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gR1UodCl7dmFyIGU9VlUodCk7cmV0dXJuKGUubG9jYWw/alU6VVUpKGUpfWZ1bmN0aW9uIFdVKCl7fWZ1bmN0aW9uIHFVKHQpe3JldHVybiBudWxsPT10P1dVOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3Rvcih0KX19ZnVuY3Rpb24gWVUoKXtyZXR1cm5bXX1mdW5jdGlvbiBYVSh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiAkVSh0LGUpe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189ZX1mdW5jdGlvbiBLVSh0LGUsbixpLHIsbyl7Zm9yKHZhciBhLHM9MCxsPWUubGVuZ3RoLGM9by5sZW5ndGg7czxjOysrcykoYT1lW3NdKT8oYS5fX2RhdGFfXz1vW3NdLGlbc109YSk6bltzXT1uZXcgJFUodCxvW3NdKTtmb3IoO3M8bDsrK3MpKGE9ZVtzXSkmJihyW3NdPWEpfWZ1bmN0aW9uIFpVKHQsZSxuLGkscixvLGEpe3ZhciBzLGwsYyx1PXt9LGg9ZS5sZW5ndGgsZD1vLmxlbmd0aCxwPW5ldyBBcnJheShoKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJihwW3NdPWM9IiQiK2EuY2FsbChsLGwuX19kYXRhX18scyxlKSxjIGluIHU/cltzXT1sOnVbY109bCk7Zm9yKHM9MDtzPGQ7KytzKShsPXVbYz0iJCIrYS5jYWxsKHQsb1tzXSxzLG8pXSk/KGlbc109bCxsLl9fZGF0YV9fPW9bc10sdVtjXT1udWxsKTpuW3NdPW5ldyAkVSh0LG9bc10pO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmdVtwW3NdXT09PWwmJihyW3NdPWwpfWZ1bmN0aW9uIEpVKHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIFFVKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiB0aih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGVqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19ZnVuY3Rpb24gbmoodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlKX19ZnVuY3Rpb24gaWoodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpOnRoaXMuc2V0QXR0cmlidXRlKHQsbil9fWZ1bmN0aW9uIHJqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsbil9fWZ1bmN0aW9uIG9qKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBhaih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBzaih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUsbil9fWZ1bmN0aW9uIGxqKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1pP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGksbil9fWZ1bmN0aW9uIGNqKHQsZSl7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShlKXx8b2oodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUoZSl9ZnVuY3Rpb24gdWoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19fWZ1bmN0aW9uIGhqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1lfX1mdW5jdGlvbiBkaih0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/ZGVsZXRlIHRoaXNbdF06dGhpc1t0XT1ufX1mdW5jdGlvbiBwaih0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVuY3Rpb24gZmoodCl7cmV0dXJuIHQuY2xhc3NMaXN0fHxuZXcgbWoodCl9ZnVuY3Rpb24gbWoodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPXBqKHQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9ZnVuY3Rpb24gZ2oodCxlKXtmb3IodmFyIG49ZmoodCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLmFkZChlW2ldKX1mdW5jdGlvbiBfaih0LGUpe2Zvcih2YXIgbj1maih0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4ucmVtb3ZlKGVbaV0pfWZ1bmN0aW9uIHlqKHQpe3JldHVybiBmdW5jdGlvbigpe2dqKHRoaXMsdCl9fWZ1bmN0aW9uIHZqKHQpe3JldHVybiBmdW5jdGlvbigpe19qKHRoaXMsdCl9fWZ1bmN0aW9uIGJqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7KGUuYXBwbHkodGhpcyxhcmd1bWVudHMpP2dqOl9qKSh0aGlzLHQpfX1mdW5jdGlvbiB4aigpe3RoaXMudGV4dENvbnRlbnQ9IiJ9ZnVuY3Rpb24gd2oodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX1mdW5jdGlvbiBTaih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gTWooKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBFaih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX1mdW5jdGlvbiBUaih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIENqKCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIEFqKCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24ga2ooKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBMaigpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIFBqKCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITEpLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH1mdW5jdGlvbiBOaigpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCEwKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9JFUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjokVSxhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LGUpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSxtai5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt0aGlzLl9uYW1lcy5pbmRleE9mKHQpPDAmJih0aGlzLl9uYW1lcy5wdXNoKHQpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9uYW1lcy5pbmRleE9mKHQpO2U+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UoZSwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciBJaj17fSxSaj1udWxsO2Z1bmN0aW9uIE9qKHQsZSxuKXtyZXR1cm4gdD16aih0LGUsbiksZnVuY3Rpb24oZSl7dmFyIG49ZS5yZWxhdGVkVGFyZ2V0O24mJihuPT09dGhpc3x8OCZuLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMpKXx8dC5jYWxsKHRoaXMsZSl9fWZ1bmN0aW9uIHpqKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIHI9Umo7Umo9aTt0cnl7dC5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxlLG4pfWZpbmFsbHl7Umo9cn19fWZ1bmN0aW9uIERqKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihlPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOmV9fSkpfWZ1bmN0aW9uIEJqKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMuX19vbjtpZihlKXtmb3IodmFyIG4saT0wLHI9LTEsbz1lLmxlbmd0aDtpPG87KytpKW49ZVtpXSx0LnR5cGUmJm4udHlwZSE9PXQudHlwZXx8bi5uYW1lIT09dC5uYW1lP2VbKytyXT1uOnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLnR5cGUsbi5saXN0ZW5lcixuLmNhcHR1cmUpOysrcj9lLmxlbmd0aD1yOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBIaih0LGUsbil7dmFyIGk9SWouaGFzT3duUHJvcGVydHkodC50eXBlKT9Pajp6ajtyZXR1cm4gZnVuY3Rpb24ocixvLGEpe3ZhciBzLGw9dGhpcy5fX29uLGM9aShlLG8sYSk7aWYobClmb3IodmFyIHU9MCxoPWwubGVuZ3RoO3U8aDsrK3UpaWYoKHM9bFt1XSkudHlwZT09PXQudHlwZSYmcy5uYW1lPT09dC5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXIscy5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXI9YyxzLmNhcHR1cmU9biksdm9pZChzLnZhbHVlPWUpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcih0LnR5cGUsYyxuKSxzPXt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSx2YWx1ZTplLGxpc3RlbmVyOmMsY2FwdHVyZTpufSxsP2wucHVzaChzKTp0aGlzLl9fb249W3NdfX1mdW5jdGlvbiBGaih0LGUsbixpKXt2YXIgcj1Sajt0LnNvdXJjZUV2ZW50PVJqLFJqPXQ7dHJ5e3JldHVybiBlLmFwcGx5KG4saSl9ZmluYWxseXtSaj1yfX1mdW5jdGlvbiBWaih0LGUsbil7dmFyIGk9b2oodCkscj1pLkN1c3RvbUV2ZW50OyJmdW5jdGlvbiI9PXR5cGVvZiByP3I9bmV3IHIoZSxuKToocj1pLmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLG4/KHIuaW5pdEV2ZW50KGUsbi5idWJibGVzLG4uY2FuY2VsYWJsZSksci5kZXRhaWw9bi5kZXRhaWwpOnIuaW5pdEV2ZW50KGUsITEsITEpKSx0LmRpc3BhdGNoRXZlbnQocil9ZnVuY3Rpb24gVWoodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gVmoodGhpcyx0LGUpfX1mdW5jdGlvbiBqaih0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBWaih0aGlzLHQsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChJaj17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7dmFyIEdqPVtudWxsXTtmdW5jdGlvbiBXaih0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBxaih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/bmV3IFdqKFtbZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KV1dLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgV2ooW1t0XV0sR2opfWZ1bmN0aW9uIFlqKCl7Zm9yKHZhciB0LGU9Umo7dD1lLnNvdXJjZUV2ZW50OyllPXQ7cmV0dXJuIGV9ZnVuY3Rpb24gWGoodCxlKXt2YXIgbj10Lm93bmVyU1ZHRWxlbWVudHx8dDtpZihuLmNyZWF0ZVNWR1BvaW50KXt2YXIgaT1uLmNyZWF0ZVNWR1BvaW50KCk7cmV0dXJuIGkueD1lLmNsaWVudFgsaS55PWUuY2xpZW50WSxbKGk9aS5tYXRyaXhUcmFuc2Zvcm0odC5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpKS54LGkueV19dmFyIHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm5bZS5jbGllbnRYLXIubGVmdC10LmNsaWVudExlZnQsZS5jbGllbnRZLXIudG9wLXQuY2xpZW50VG9wXX1mdW5jdGlvbiAkaih0KXt2YXIgZT1ZaigpO3JldHVybiBlLmNoYW5nZWRUb3VjaGVzJiYoZT1lLmNoYW5nZWRUb3VjaGVzWzBdKSxYaih0LGUpfWZ1bmN0aW9uIEtqKHQsZSxuKXthcmd1bWVudHMubGVuZ3RoPDMmJihuPWUsZT1ZaigpLmNoYW5nZWRUb3VjaGVzKTtmb3IodmFyIGkscj0wLG89ZT9lLmxlbmd0aDowO3I8bzsrK3IpaWYoKGk9ZVtyXSkuaWRlbnRpZmllcj09PW4pcmV0dXJuIFhqKHQsaSk7cmV0dXJuIG51bGx9ZnVuY3Rpb24gWmooKXtSai5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBKaigpe1JqLnByZXZlbnREZWZhdWx0KCksUmouc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gUWoodCl7dmFyIGU9dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1xaih0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLEpqLCEwKTsib25zZWxlY3RzdGFydCJpbiBlP24ub24oInNlbGVjdHN0YXJ0LmRyYWciLEpqLCEwKTooZS5fX25vc2VsZWN0PWUuc3R5bGUuTW96VXNlclNlbGVjdCxlLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiKX1mdW5jdGlvbiB0Ryh0LGUpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGk9cWoodCkub24oImRyYWdzdGFydC5kcmFnIixudWxsKTtlJiYoaS5vbigiY2xpY2suZHJhZyIsSmosITApLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aS5vbigiY2xpY2suZHJhZyIsbnVsbCl9KSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gbj9pLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKToobi5zdHlsZS5Nb3pVc2VyU2VsZWN0PW4uX19ub3NlbGVjdCxkZWxldGUgbi5fX25vc2VsZWN0KX1mdW5jdGlvbiBlRyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gbkcodCxlLG4saSxyLG8sYSxzLGwsYyl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9ZSx0aGlzLnN1YmplY3Q9bix0aGlzLmlkZW50aWZpZXI9aSx0aGlzLmFjdGl2ZT1yLHRoaXMueD1vLHRoaXMueT1hLHRoaXMuZHg9cyx0aGlzLmR5PWwsdGhpcy5fPWN9ZnVuY3Rpb24gaUcoKXtyZXR1cm4hUmouYnV0dG9ufWZ1bmN0aW9uIHJHKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX1mdW5jdGlvbiBvRyh0KXtyZXR1cm4gbnVsbD09dD97eDpSai54LHk6UmoueX06dH1mdW5jdGlvbiBhRygpe3JldHVybiJvbnRvdWNoc3RhcnQiaW4gdGhpc31Xai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOldqLHNlbGVjdDpmdW5jdGlvbiBzRyh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9cVUodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKSxyPTA7cjxuOysrcilmb3IodmFyIG8sYSxzPWVbcl0sbD1zLmxlbmd0aCxjPWlbcl09bmV3IEFycmF5KGwpLHU9MDt1PGw7Kyt1KShvPXNbdV0pJiYoYT10LmNhbGwobyxvLl9fZGF0YV9fLHUscykpJiYoIl9fZGF0YV9fImluIG8mJihhLl9fZGF0YV9fPW8uX19kYXRhX18pLGNbdV09YSk7cmV0dXJuIG5ldyBXaihpLHRoaXMuX3BhcmVudHMpfSxzZWxlY3RBbGw6ZnVuY3Rpb24gbEcodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PShmdW5jdGlvbiBlKHQpe3JldHVybiBudWxsPT10P1lVOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19KSh0KSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9W10sbz1bXSxhPTA7YTxpOysrYSlmb3IodmFyIHMsbD1uW2FdLGM9bC5sZW5ndGgsdT0wO3U8YzsrK3UpKHM9bFt1XSkmJihyLnB1c2godC5jYWxsKHMscy5fX2RhdGFfXyx1LGwpKSxvLnB1c2gocykpO3JldHVybiBuZXcgV2oocixvKX0sZmlsdGVyOmZ1bmN0aW9uIGNHKHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKHQpfX0pKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGk9bi5sZW5ndGgscj1uZXcgQXJyYXkoaSksbz0wO288aTsrK28pZm9yKHZhciBhLHM9bltvXSxsPXMubGVuZ3RoLGM9cltvXT1bXSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmdC5jYWxsKGEsYS5fX2RhdGFfXyx1LHMpJiZjLnB1c2goYSk7cmV0dXJuIG5ldyBXaihyLHRoaXMuX3BhcmVudHMpfSxkYXRhOmZ1bmN0aW9uIHVHKHQsZSl7aWYoIXQpcmV0dXJuIGY9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSx1PS0xLHRoaXMuZWFjaCgoZnVuY3Rpb24odCl7ZlsrK3VdPXR9KSksZjt2YXIgbj1lP1pVOktVLGk9dGhpcy5fcGFyZW50cyxyPXRoaXMuX2dyb3VwczsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9KGZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkodCkpO2Zvcih2YXIgYT1yLmxlbmd0aCxzPW5ldyBBcnJheShhKSxsPW5ldyBBcnJheShhKSxjPW5ldyBBcnJheShhKSx1PTA7dTxhOysrdSl7dmFyIGg9aVt1XSxkPXJbdV0scD1kLmxlbmd0aCxmPXQuY2FsbChoLGgmJmguX19kYXRhX18sdSxpKSxtPWYubGVuZ3RoLGc9bFt1XT1uZXcgQXJyYXkobSksXz1zW3VdPW5ldyBBcnJheShtKTtuKGgsZCxnLF8sY1t1XT1uZXcgQXJyYXkocCksZixlKTtmb3IodmFyIHksdixiPTAseD0wO2I8bTsrK2IpaWYoeT1nW2JdKXtmb3IoYj49eCYmKHg9YisxKTshKHY9X1t4XSkmJisreDxtOyk7eS5fbmV4dD12fHxudWxsfX1yZXR1cm4ocz1uZXcgV2oocyxpKSkuX2VudGVyPWwscy5fZXhpdD1jLHN9LGVudGVyOmZ1bmN0aW9uIGhHKCl7cmV0dXJuIG5ldyBXaih0aGlzLl9lbnRlcnx8dGhpcy5fZ3JvdXBzLm1hcChYVSksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24gZEcoKXtyZXR1cm4gbmV3IFdqKHRoaXMuX2V4aXR8fHRoaXMuX2dyb3Vwcy5tYXAoWFUpLHRoaXMuX3BhcmVudHMpfSxqb2luOmZ1bmN0aW9uIHBHKHQsZSxuKXt2YXIgaT10aGlzLmVudGVyKCkscj10aGlzLG89dGhpcy5leGl0KCk7cmV0dXJuIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChpKTppLmFwcGVuZCh0KyIiKSxudWxsIT1lJiYocj1lKHIpKSxudWxsPT1uP28ucmVtb3ZlKCk6bihvKSxpJiZyP2kubWVyZ2Uocikub3JkZXIoKTpyfSxtZXJnZTpmdW5jdGlvbiBmRyh0KXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49dC5fZ3JvdXBzLGk9ZS5sZW5ndGgscj1NYXRoLm1pbihpLG4ubGVuZ3RoKSxvPW5ldyBBcnJheShpKSxhPTA7YTxyOysrYSlmb3IodmFyIHMsbD1lW2FdLGM9blthXSx1PWwubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9bFtkXXx8Y1tkXSkmJihoW2RdPXMpO2Zvcig7YTxpOysrYSlvW2FdPWVbYV07cmV0dXJuIG5ldyBXaihvLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbiBtRygpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT0tMSxuPXQubGVuZ3RoOysrZTxuOylmb3IodmFyIGkscj10W2VdLG89ci5sZW5ndGgtMSxhPXJbb107LS1vPj0wOykoaT1yW29dKSYmKGEmJjReaS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihhKSYmYS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpLGEpLGE9aSk7cmV0dXJuIHRoaXN9LHNvcnQ6ZnVuY3Rpb24gZ0codCl7ZnVuY3Rpb24gZShlLG4pe3JldHVybiBlJiZuP3QoZS5fX2RhdGFfXyxuLl9fZGF0YV9fKTohZS0hbn10fHwodD1KVSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGkpLG89MDtvPGk7KytvKXtmb3IodmFyIGEscz1uW29dLGw9cy5sZW5ndGgsYz1yW29dPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmKGNbdV09YSk7Yy5zb3J0KGUpfXJldHVybiBuZXcgV2oocix0aGlzLl9wYXJlbnRzKS5vcmRlcigpfSxjYWxsOmZ1bmN0aW9uIF9HKCl7dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyx0LmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfSxub2RlczpmdW5jdGlvbiB5Rygpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksZT0tMTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3RbKytlXT10aGlzfSkpLHR9LG5vZGU6ZnVuY3Rpb24gdkcoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9MCxuPXQubGVuZ3RoO2U8bjsrK2UpZm9yKHZhciBpPXRbZV0scj0wLG89aS5sZW5ndGg7cjxvOysrcil7dmFyIGE9aVtyXTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfSxzaXplOmZ1bmN0aW9uIGJHKCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpeysrdH0pKSx0fSxlbXB0eTpmdW5jdGlvbiB4Rygpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbiB3Ryh0KXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49MCxpPWUubGVuZ3RoO248aTsrK24pZm9yKHZhciByLG89ZVtuXSxhPTAscz1vLmxlbmd0aDthPHM7KythKShyPW9bYV0pJiZ0LmNhbGwocixyLl9fZGF0YV9fLGEsbyk7cmV0dXJuIHRoaXN9LGF0dHI6ZnVuY3Rpb24gU0codCxlKXt2YXIgbj1WVSh0KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBpPXRoaXMubm9kZSgpO3JldHVybiBuLmxvY2FsP2kuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTppLmdldEF0dHJpYnV0ZShuKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP24ubG9jYWw/dGo6UVU6ImZ1bmN0aW9uIj09dHlwZW9mIGU/bi5sb2NhbD9yajppajpuLmxvY2FsP25qOmVqKShuLGUpKX0sc3R5bGU6ZnVuY3Rpb24gTUcodCxlLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1lP2FqOiJmdW5jdGlvbiI9PXR5cGVvZiBlP2xqOnNqKSh0LGUsbnVsbD09bj8iIjpuKSk6Y2oodGhpcy5ub2RlKCksdCl9LHByb3BlcnR5OmZ1bmN0aW9uIEVHKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/dWo6ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZGo6aGopKHQsZSkpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uIFRHKHQsZSl7dmFyIG49cGoodCsiIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIGk9ZmoodGhpcy5ub2RlKCkpLHI9LTEsbz1uLmxlbmd0aDsrK3I8bzspaWYoIWkuY29udGFpbnMobltyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/Ymo6ZT95ajp2aikobixlKSl9LHRleHQ6ZnVuY3Rpb24gQ0codCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/eGo6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P1NqOndqKSh0KSk6dGhpcy5ub2RlKCkudGV4dENvbnRlbnR9LGh0bWw6ZnVuY3Rpb24gQUcodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/TWo6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P1RqOkVqKSh0KSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxyYWlzZTpmdW5jdGlvbiBrRygpe3JldHVybiB0aGlzLmVhY2goQ2opfSxsb3dlcjpmdW5jdGlvbiBMRygpe3JldHVybiB0aGlzLmVhY2goQWopfSxhcHBlbmQ6ZnVuY3Rpb24gUEcodCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpHVSh0KTtyZXR1cm4gdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQoZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSkpfSxpbnNlcnQ6ZnVuY3Rpb24gTkcodCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkdVKHQpLGk9bnVsbD09ZT9rajoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOnFVKGUpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUobi5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSkpfSxyZW1vdmU6ZnVuY3Rpb24gSUcoKXtyZXR1cm4gdGhpcy5lYWNoKExqKX0sY2xvbmU6ZnVuY3Rpb24gUkcodCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/Tmo6UGopfSxkYXR1bTpmdW5jdGlvbiBPRyh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmZ1bmN0aW9uIHpHKHQsZSxuKXt2YXIgaSxyLG89RGoodCsiIiksYT1vLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2ZvcihzPWU/SGo6QmosbnVsbD09biYmKG49ITEpLGk9MDtpPGE7KytpKXRoaXMuZWFjaChzKG9baV0sZSxuKSk7cmV0dXJuIHRoaXN9dmFyIHM9dGhpcy5ub2RlKCkuX19vbjtpZihzKWZvcih2YXIgbCxjPTAsdT1zLmxlbmd0aDtjPHU7KytjKWZvcihpPTAsbD1zW2NdO2k8YTsrK2kpaWYoKHI9b1tpXSkudHlwZT09PWwudHlwZSYmci5uYW1lPT09bC5uYW1lKXJldHVybiBsLnZhbHVlfSxkaXNwYXRjaDpmdW5jdGlvbiBERyh0LGUpe3JldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2pqOlVqKSh0LGUpKX19LG5HLnByb3RvdHlwZS5vbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuXy5vbi5hcHBseSh0aGlzLl8sYXJndW1lbnRzKTtyZXR1cm4gdD09PXRoaXMuXz90aGlzOnR9O3ZhciBCRz17fSxIRz17fTtmdW5jdGlvbiBGRyh0KXtyZXR1cm4gbmV3IEZ1bmN0aW9uKCJkIiwicmV0dXJuIHsiK3QubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0KSsiOiBkWyIrZSsiXSJ9KSkuam9pbigiLCIpKyJ9Iil9ZnVuY3Rpb24gVkcodCl7dmFyIGU9bmV3IFJlZ0V4cCgnWyInK3QrIlxuXHJdIiksbj10LmNoYXJDb2RlQXQoMCk7ZnVuY3Rpb24gaSh0LGUpe3ZhciBpLHI9W10sbz10Lmxlbmd0aCxhPTAscz0wLGw9bzw9MCxjPSExO2Z1bmN0aW9uIHUoKXtpZihsKXJldHVybiBIRztpZihjKXJldHVybiBjPSExLEJHO3ZhciBlLGkscj1hO2lmKDM0PT09dC5jaGFyQ29kZUF0KHIpKXtmb3IoO2ErKzxvJiYzNCE9PXQuY2hhckNvZGVBdChhKXx8MzQ9PT10LmNoYXJDb2RlQXQoKythKTspO3JldHVybihlPWEpPj1vP2w9ITA6MTA9PT0oaT10LmNoYXJDb2RlQXQoYSsrKSk/Yz0hMDoxMz09PWkmJihjPSEwLDEwPT09dC5jaGFyQ29kZUF0KGEpJiYrK2EpLHQuc2xpY2UocisxLGUtMSkucmVwbGFjZSgvIiIvZywnIicpfWZvcig7YTxvOyl7aWYoMTA9PT0oaT10LmNoYXJDb2RlQXQoZT1hKyspKSljPSEwO2Vsc2UgaWYoMTM9PT1pKWM9ITAsMTA9PT10LmNoYXJDb2RlQXQoYSkmJisrYTtlbHNlIGlmKGkhPT1uKWNvbnRpbnVlO3JldHVybiB0LnNsaWNlKHIsZSl9cmV0dXJuIGw9ITAsdC5zbGljZShyLG8pfWZvcigxMD09PXQuY2hhckNvZGVBdChvLTEpJiYtLW8sMTM9PT10LmNoYXJDb2RlQXQoby0xKSYmLS1vOyhpPXUoKSkhPT1IRzspe2Zvcih2YXIgaD1bXTtpIT09QkcmJmkhPT1IRzspaC5wdXNoKGkpLGk9dSgpO2UmJm51bGw9PShoPWUoaCxzKyspKXx8ci5wdXNoKGgpfXJldHVybiByfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGUubWFwKG8pLmpvaW4odCl9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gbnVsbD09dD8iIjplLnRlc3QodCs9IiIpPyciJyt0LnJlcGxhY2UoLyIvZywnIiInKSsnIic6dH1yZXR1cm57cGFyc2U6ZnVuY3Rpb24gYSh0LGUpe3ZhciBuLHIsbz1pKHQsKGZ1bmN0aW9uKHQsaSl7aWYobilyZXR1cm4gbih0LGktMSk7cj10LG49ZT8oZnVuY3Rpb24gbyh0LGUpe3ZhciBuPUZHKHQpO3JldHVybiBmdW5jdGlvbihpLHIpe3JldHVybiBlKG4oaSkscix0KX19KSh0LGUpOkZHKHQpfSkpO3JldHVybiBvLmNvbHVtbnM9cnx8W10sb30scGFyc2VSb3dzOmksZm9ybWF0OmZ1bmN0aW9uIHMoZSxuKXtyZXR1cm4gbnVsbD09biYmKG49KGZ1bmN0aW9uIGkodCl7dmFyIGU9T2JqZWN0LmNyZWF0ZShudWxsKSxuPVtdO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2Zvcih2YXIgaSBpbiB0KWkgaW4gZXx8bi5wdXNoKGVbaV09aSl9KSksbn0pKGUpKSxbbi5tYXAobykuam9pbih0KV0uY29uY2F0KGUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvKGVbdF0pfSkpLmpvaW4odCl9KSkpLmpvaW4oIlxuIil9LGZvcm1hdFJvd3M6ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdC5tYXAocikuam9pbigiXG4iKX19fXZhciBVRz1WRygiLCIpLGpHPVVHLnBhcnNlLEdHPVVHLnBhcnNlUm93cyxXRz1VRy5mb3JtYXQscUc9VUcuZm9ybWF0Um93cyxZRz1WRygiXHQiKSxYRz1ZRy5wYXJzZSwkRz1ZRy5wYXJzZVJvd3MsS0c9WUcuZm9ybWF0LFpHPVlHLmZvcm1hdFJvd3M7ZnVuY3Rpb24gSkcodCl7cmV0dXJuKCh0Kj0yKTw9MT90KnQ6LS10KigyLXQpKzEpLzJ9ZnVuY3Rpb24gUUcodCl7cmV0dXJuKCh0Kj0yKTw9MT90KnQqdDoodC09MikqdCp0KzIpLzJ9dmFyIHRXPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIE1hdGgucG93KHQsZSl9cmV0dXJuIGU9K2Usbi5leHBvbmVudD10LG59KSgzKSxlVz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiAxLU1hdGgucG93KDEtdCxlKX1yZXR1cm4gZT0rZSxuLmV4cG9uZW50PXQsbn0pKDMpLG5XPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuKCh0Kj0yKTw9MT9NYXRoLnBvdyh0LGUpOjItTWF0aC5wb3coMi10LGUpKS8yfXJldHVybiBlPStlLG4uZXhwb25lbnQ9dCxufSkoMyksaVc9TWF0aC5QSSxyVz1pVy8yO2Z1bmN0aW9uIG9XKHQpe3JldHVybigxLU1hdGguY29zKGlXKnQpKS8yfWZ1bmN0aW9uIGFXKHQpe3JldHVybigodCo9Mik8PTE/TWF0aC5wb3coMiwxMCp0LTEwKToyLU1hdGgucG93KDIsMTAtMTAqdCkpLzJ9ZnVuY3Rpb24gc1codCl7cmV0dXJuKCh0Kj0yKTw9MT8xLU1hdGguc3FydCgxLXQqdCk6TWF0aC5zcXJ0KDEtKHQtPTIpKnQpKzEpLzJ9dmFyIGxXPTcuNTYyNTtmdW5jdGlvbiBjVyh0KXtyZXR1cm4odD0rdCk8LjM2MzYzNjM2MzYzNjM2MzY1P2xXKnQqdDp0PC43MjcyNzI3MjcyNzI3MjczP2xXKih0LT0uNTQ1NDU0NTQ1NDU0NTQ1NCkqdCsuNzU6dDwuOTA5MDkwOTA5MDkwOTA5MT9sVyoodC09LjgxODE4MTgxODE4MTgxODIpKnQrLjkzNzU6bFcqKHQtPS45NTQ1NDU0NTQ1NDU0NTQ2KSp0Ky45ODQzNzV9dmFyIHVXPTEuNzAxNTgsaFc9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gdCp0KigoZSsxKSp0LWUpfXJldHVybiBlPStlLG4ub3ZlcnNob290PXQsbn0pKHVXKSxkVz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybi0tdCp0KigoZSsxKSp0K2UpKzF9cmV0dXJuIGU9K2Usbi5vdmVyc2hvb3Q9dCxufSkodVcpLHBXPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuKCh0Kj0yKTwxP3QqdCooKGUrMSkqdC1lKToodC09MikqdCooKGUrMSkqdCtlKSsyKS8yfXJldHVybiBlPStlLG4ub3ZlcnNob290PXQsbn0pKHVXKSxmVz0yKk1hdGguUEksbVc9KGZ1bmN0aW9uIHQoZSxuKXt2YXIgaT1NYXRoLmFzaW4oMS8oZT1NYXRoLm1heCgxLGUpKSkqKG4vPWZXKTtmdW5jdGlvbiByKHQpe3JldHVybiBlKk1hdGgucG93KDIsMTAqLS10KSpNYXRoLnNpbigoaS10KS9uKX1yZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSxuKmZXKX0sci5wZXJpb2Q9ZnVuY3Rpb24obil7cmV0dXJuIHQoZSxuKX0scn0pKDEsLjMpLGdXPShmdW5jdGlvbiB0KGUsbil7dmFyIGk9TWF0aC5hc2luKDEvKGU9TWF0aC5tYXgoMSxlKSkpKihuLz1mVyk7ZnVuY3Rpb24gcih0KXtyZXR1cm4gMS1lKk1hdGgucG93KDIsLTEwKih0PSt0KSkqTWF0aC5zaW4oKHQraSkvbil9cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKGUpe3JldHVybiB0KGUsbipmVyl9LHIucGVyaW9kPWZ1bmN0aW9uKG4pe3JldHVybiB0KGUsbil9LHJ9KSgxLC4zKSxfVz0oZnVuY3Rpb24gdChlLG4pe3ZhciBpPU1hdGguYXNpbigxLyhlPU1hdGgubWF4KDEsZSkpKSoobi89ZlcpO2Z1bmN0aW9uIHIodCl7cmV0dXJuKCh0PTIqdC0xKTwwP2UqTWF0aC5wb3coMiwxMCp0KSpNYXRoLnNpbigoaS10KS9uKToyLWUqTWF0aC5wb3coMiwtMTAqdCkqTWF0aC5zaW4oKGkrdCkvbikpLzJ9cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKGUpe3JldHVybiB0KGUsbipmVyl9LHIucGVyaW9kPWZ1bmN0aW9uKG4pe3JldHVybiB0KGUsbil9LHJ9KSgxLC4zKTtmdW5jdGlvbiB5Vyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gdlcoKXtyZXR1cm4gMWUtNiooTWF0aC5yYW5kb20oKS0uNSl9ZnVuY3Rpb24gYlcodCxlLG4saSl7aWYoaXNOYU4oZSl8fGlzTmFOKG4pKXJldHVybiB0O3ZhciByLG8sYSxzLGwsYyx1LGgsZCxwPXQuX3Jvb3QsZj17ZGF0YTppfSxtPXQuX3gwLGc9dC5feTAsXz10Ll94MSx5PXQuX3kxO2lmKCFwKXJldHVybiB0Ll9yb290PWYsdDtmb3IoO3AubGVuZ3RoOylpZigoYz1lPj0obz0obStfKS8yKSk/bT1vOl89bywodT1uPj0oYT0oZyt5KS8yKSk/Zz1hOnk9YSxyPXAsIShwPXBbaD11PDwxfGNdKSlyZXR1cm4gcltoXT1mLHQ7aWYocz0rdC5feC5jYWxsKG51bGwscC5kYXRhKSxsPSt0Ll95LmNhbGwobnVsbCxwLmRhdGEpLGU9PT1zJiZuPT09bClyZXR1cm4gZi5uZXh0PXAscj9yW2hdPWY6dC5fcm9vdD1mLHQ7ZG97cj1yP3JbaF09bmV3IEFycmF5KDQpOnQuX3Jvb3Q9bmV3IEFycmF5KDQpLChjPWU+PShvPShtK18pLzIpKT9tPW86Xz1vLCh1PW4+PShhPShnK3kpLzIpKT9nPWE6eT1hfXdoaWxlKChoPXU8PDF8Yyk9PShkPShsPj1hKTw8MXxzPj1vKSk7cmV0dXJuIHJbZF09cCxyW2hdPWYsdH1mdW5jdGlvbiB4Vyh0LGUsbixpLHIpe3RoaXMubm9kZT10LHRoaXMueDA9ZSx0aGlzLnkwPW4sdGhpcy54MT1pLHRoaXMueTE9cn1mdW5jdGlvbiB3Vyh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBTVyh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBNVyh0LGUsbil7dmFyIGk9bmV3IEVXKG51bGw9PWU/d1c6ZSxudWxsPT1uP1NXOm4sTmFOLE5hTixOYU4sTmFOKTtyZXR1cm4gbnVsbD09dD9pOmkuYWRkQWxsKHQpfWZ1bmN0aW9uIEVXKHQsZSxuLGkscixvKXt0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3gwPW4sdGhpcy5feTA9aSx0aGlzLl94MT1yLHRoaXMuX3kxPW8sdGhpcy5fcm9vdD12b2lkIDB9ZnVuY3Rpb24gVFcodCl7Zm9yKHZhciBlPXtkYXRhOnQuZGF0YX0sbj1lO3Q9dC5uZXh0OyluPW4ubmV4dD17ZGF0YTp0LmRhdGF9O3JldHVybiBlfXZhciBDVz1NVy5wcm90b3R5cGU9RVcucHJvdG90eXBlO2Z1bmN0aW9uIEFXKHQpe3JldHVybiB0LngrdC52eH1mdW5jdGlvbiBrVyh0KXtyZXR1cm4gdC55K3Qudnl9Q1cuY29weT1mdW5jdGlvbigpe3ZhciB0LGUsbj1uZXcgRVcodGhpcy5feCx0aGlzLl95LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSxpPXRoaXMuX3Jvb3Q7aWYoIWkpcmV0dXJuIG47aWYoIWkubGVuZ3RoKXJldHVybiBuLl9yb290PVRXKGkpLG47Zm9yKHQ9W3tzb3VyY2U6aSx0YXJnZXQ6bi5fcm9vdD1uZXcgQXJyYXkoNCl9XTtpPXQucG9wKCk7KWZvcih2YXIgcj0wO3I8NDsrK3IpKGU9aS5zb3VyY2Vbcl0pJiYoZS5sZW5ndGg/dC5wdXNoKHtzb3VyY2U6ZSx0YXJnZXQ6aS50YXJnZXRbcl09bmV3IEFycmF5KDQpfSk6aS50YXJnZXRbcl09VFcoZSkpO3JldHVybiBufSxDVy5hZGQ9ZnVuY3Rpb24gTFcodCl7dmFyIGU9K3RoaXMuX3guY2FsbChudWxsLHQpLG49K3RoaXMuX3kuY2FsbChudWxsLHQpO3JldHVybiBiVyh0aGlzLmNvdmVyKGUsbiksZSxuLHQpfSxDVy5hZGRBbGw9ZnVuY3Rpb24gUFcodCl7dmFyIGUsbixpLHIsbz10Lmxlbmd0aCxhPW5ldyBBcnJheShvKSxzPW5ldyBBcnJheShvKSxsPTEvMCxjPTEvMCx1PS0xLzAsaD0tMS8wO2ZvcihuPTA7bjxvOysrbilpc05hTihpPSt0aGlzLl94LmNhbGwobnVsbCxlPXRbbl0pKXx8aXNOYU4ocj0rdGhpcy5feS5jYWxsKG51bGwsZSkpfHwoYVtuXT1pLHNbbl09cixpPGwmJihsPWkpLGk+dSYmKHU9aSkscjxjJiYoYz1yKSxyPmgmJihoPXIpKTtpZihsPnV8fGM+aClyZXR1cm4gdGhpcztmb3IodGhpcy5jb3ZlcihsLGMpLmNvdmVyKHUsaCksbj0wO248bzsrK24pYlcodGhpcyxhW25dLHNbbl0sdFtuXSk7cmV0dXJuIHRoaXN9LENXLmNvdmVyPWZ1bmN0aW9uIE5XKHQsZSl7aWYoaXNOYU4odD0rdCl8fGlzTmFOKGU9K2UpKXJldHVybiB0aGlzO3ZhciBuPXRoaXMuX3gwLGk9dGhpcy5feTAscj10aGlzLl94MSxvPXRoaXMuX3kxO2lmKGlzTmFOKG4pKXI9KG49TWF0aC5mbG9vcih0KSkrMSxvPShpPU1hdGguZmxvb3IoZSkpKzE7ZWxzZXtmb3IodmFyIGEscyxsPXItbixjPXRoaXMuX3Jvb3Q7bj50fHx0Pj1yfHxpPmV8fGU+PW87KXN3aXRjaChzPShlPGkpPDwxfHQ8biwoYT1uZXcgQXJyYXkoNCkpW3NdPWMsYz1hLGwqPTIscyl7Y2FzZSAwOnI9bitsLG89aStsO2JyZWFrO2Nhc2UgMTpuPXItbCxvPWkrbDticmVhaztjYXNlIDI6cj1uK2wsaT1vLWw7YnJlYWs7Y2FzZSAzOm49ci1sLGk9by1sfXRoaXMuX3Jvb3QmJnRoaXMuX3Jvb3QubGVuZ3RoJiYodGhpcy5fcm9vdD1jKX1yZXR1cm4gdGhpcy5feDA9bix0aGlzLl95MD1pLHRoaXMuX3gxPXIsdGhpcy5feTE9byx0aGlzfSxDVy5kYXRhPWZ1bmN0aW9uIElXKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMudmlzaXQoKGZ1bmN0aW9uKGUpe2lmKCFlLmxlbmd0aClkb3t0LnB1c2goZS5kYXRhKX13aGlsZShlPWUubmV4dCl9KSksdH0sQ1cuZXh0ZW50PWZ1bmN0aW9uIFJXKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuY292ZXIoK3RbMF1bMF0sK3RbMF1bMV0pLmNvdmVyKCt0WzFdWzBdLCt0WzFdWzFdKTppc05hTih0aGlzLl94MCk/dm9pZCAwOltbdGhpcy5feDAsdGhpcy5feTBdLFt0aGlzLl94MSx0aGlzLl95MV1dfSxDVy5maW5kPWZ1bmN0aW9uIE9XKHQsZSxuKXt2YXIgaSxyLG8sYSxzLGwsYyx1PXRoaXMuX3gwLGg9dGhpcy5feTAsZD10aGlzLl94MSxwPXRoaXMuX3kxLGY9W10sbT10aGlzLl9yb290O2ZvcihtJiZmLnB1c2gobmV3IHhXKG0sdSxoLGQscCkpLG51bGw9PW4/bj0xLzA6KHU9dC1uLGg9ZS1uLGQ9dCtuLHA9ZStuLG4qPW4pO2w9Zi5wb3AoKTspaWYoISghKG09bC5ub2RlKXx8KHI9bC54MCk+ZHx8KG89bC55MCk+cHx8KGE9bC54MSk8dXx8KHM9bC55MSk8aCkpaWYobS5sZW5ndGgpe3ZhciBnPShyK2EpLzIsXz0obytzKS8yO2YucHVzaChuZXcgeFcobVszXSxnLF8sYSxzKSxuZXcgeFcobVsyXSxyLF8sZyxzKSxuZXcgeFcobVsxXSxnLG8sYSxfKSxuZXcgeFcobVswXSxyLG8sZyxfKSksKGM9KGU+PV8pPDwxfHQ+PWcpJiYobD1mW2YubGVuZ3RoLTFdLGZbZi5sZW5ndGgtMV09ZltmLmxlbmd0aC0xLWNdLGZbZi5sZW5ndGgtMS1jXT1sKX1lbHNle3ZhciB5PXQtK3RoaXMuX3guY2FsbChudWxsLG0uZGF0YSksdj1lLSt0aGlzLl95LmNhbGwobnVsbCxtLmRhdGEpLGI9eSp5K3YqdjtpZihiPG4pe3ZhciB4PU1hdGguc3FydChuPWIpO3U9dC14LGg9ZS14LGQ9dCt4LHA9ZSt4LGk9bS5kYXRhfX1yZXR1cm4gaX0sQ1cucmVtb3ZlPWZ1bmN0aW9uIHpXKHQpe2lmKGlzTmFOKG89K3RoaXMuX3guY2FsbChudWxsLHQpKXx8aXNOYU4oYT0rdGhpcy5feS5jYWxsKG51bGwsdCkpKXJldHVybiB0aGlzO3ZhciBlLG4saSxyLG8sYSxzLGwsYyx1LGgsZCxwPXRoaXMuX3Jvb3QsZj10aGlzLl94MCxtPXRoaXMuX3kwLGc9dGhpcy5feDEsXz10aGlzLl95MTtpZighcClyZXR1cm4gdGhpcztpZihwLmxlbmd0aClmb3IoOzspe2lmKChjPW8+PShzPShmK2cpLzIpKT9mPXM6Zz1zLCh1PWE+PShsPShtK18pLzIpKT9tPWw6Xz1sLGU9cCwhKHA9cFtoPXU8PDF8Y10pKXJldHVybiB0aGlzO2lmKCFwLmxlbmd0aClicmVhazsoZVtoKzEmM118fGVbaCsyJjNdfHxlW2grMyYzXSkmJihuPWUsZD1oKX1mb3IoO3AuZGF0YSE9PXQ7KWlmKGk9cCwhKHA9cC5uZXh0KSlyZXR1cm4gdGhpcztyZXR1cm4ocj1wLm5leHQpJiZkZWxldGUgcC5uZXh0LGk/KHI/aS5uZXh0PXI6ZGVsZXRlIGkubmV4dCx0aGlzKTplPyhyP2VbaF09cjpkZWxldGUgZVtoXSwocD1lWzBdfHxlWzFdfHxlWzJdfHxlWzNdKSYmcD09PShlWzNdfHxlWzJdfHxlWzFdfHxlWzBdKSYmIXAubGVuZ3RoJiYobj9uW2RdPXA6dGhpcy5fcm9vdD1wKSx0aGlzKToodGhpcy5fcm9vdD1yLHRoaXMpfSxDVy5yZW1vdmVBbGw9ZnVuY3Rpb24gRFcodCl7Zm9yKHZhciBlPTAsbj10Lmxlbmd0aDtlPG47KytlKXRoaXMucmVtb3ZlKHRbZV0pO3JldHVybiB0aGlzfSxDVy5yb290PWZ1bmN0aW9uIEJXKCl7cmV0dXJuIHRoaXMuX3Jvb3R9LENXLnNpemU9ZnVuY3Rpb24gSFcoKXt2YXIgdD0wO3JldHVybiB0aGlzLnZpc2l0KChmdW5jdGlvbihlKXtpZighZS5sZW5ndGgpZG97Kyt0fXdoaWxlKGU9ZS5uZXh0KX0pKSx0fSxDVy52aXNpdD1mdW5jdGlvbiBGVyh0KXt2YXIgZSxuLGkscixvLGEscz1bXSxsPXRoaXMuX3Jvb3Q7Zm9yKGwmJnMucHVzaChuZXcgeFcobCx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO2U9cy5wb3AoKTspaWYoIXQobD1lLm5vZGUsaT1lLngwLHI9ZS55MCxvPWUueDEsYT1lLnkxKSYmbC5sZW5ndGgpe3ZhciBjPShpK28pLzIsdT0ocithKS8yOyhuPWxbM10pJiZzLnB1c2gobmV3IHhXKG4sYyx1LG8sYSkpLChuPWxbMl0pJiZzLnB1c2gobmV3IHhXKG4saSx1LGMsYSkpLChuPWxbMV0pJiZzLnB1c2gobmV3IHhXKG4sYyxyLG8sdSkpLChuPWxbMF0pJiZzLnB1c2gobmV3IHhXKG4saSxyLGMsdSkpfXJldHVybiB0aGlzfSxDVy52aXNpdEFmdGVyPWZ1bmN0aW9uIFZXKHQpe3ZhciBlLG49W10saT1bXTtmb3IodGhpcy5fcm9vdCYmbi5wdXNoKG5ldyB4Vyh0aGlzLl9yb290LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7ZT1uLnBvcCgpOyl7dmFyIHI9ZS5ub2RlO2lmKHIubGVuZ3RoKXt2YXIgbyxhPWUueDAscz1lLnkwLGw9ZS54MSxjPWUueTEsdT0oYStsKS8yLGg9KHMrYykvMjsobz1yWzBdKSYmbi5wdXNoKG5ldyB4VyhvLGEscyx1LGgpKSwobz1yWzFdKSYmbi5wdXNoKG5ldyB4VyhvLHUscyxsLGgpKSwobz1yWzJdKSYmbi5wdXNoKG5ldyB4VyhvLGEsaCx1LGMpKSwobz1yWzNdKSYmbi5wdXNoKG5ldyB4VyhvLHUsaCxsLGMpKX1pLnB1c2goZSl9Zm9yKDtlPWkucG9wKCk7KXQoZS5ub2RlLGUueDAsZS55MCxlLngxLGUueTEpO3JldHVybiB0aGlzfSxDVy54PWZ1bmN0aW9uIFVXKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl94PXQsdGhpcyk6dGhpcy5feH0sQ1cueT1mdW5jdGlvbiBqVyh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feT10LHRoaXMpOnRoaXMuX3l9O3ZhciBHVz0iJCI7ZnVuY3Rpb24gV1coKXt9ZnVuY3Rpb24gcVcodCxlKXt2YXIgbj1uZXcgV1c7aWYodCBpbnN0YW5jZW9mIFdXKXQuZWFjaCgoZnVuY3Rpb24odCxlKXtuLnNldChlLHQpfSkpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGkscj0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PWUpZm9yKDsrK3I8bzspbi5zZXQocix0W3JdKTtlbHNlIGZvcig7KytyPG87KW4uc2V0KGUoaT10W3JdLHIsdCksaSl9ZWxzZSBpZih0KWZvcih2YXIgYSBpbiB0KW4uc2V0KGEsdFthXSk7cmV0dXJuIG59ZnVuY3Rpb24gWVcoKXt9V1cucHJvdG90eXBlPXFXLnByb3RvdHlwZT17Y29uc3RydWN0b3I6V1csaGFzOmZ1bmN0aW9uKHQpe3JldHVybiBHVyt0IGluIHRoaXN9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1tHVyt0XX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXNbR1crdF09ZSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9R1crdDtyZXR1cm4gZSBpbiB0aGlzJiZkZWxldGUgdGhpc1tlXX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09R1cmJmRlbGV0ZSB0aGlzW3RdfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PUdXJiZ0LnB1c2goZS5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1HVyYmdC5wdXNoKHRoaXNbZV0pO3JldHVybiB0fSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PUdXJiZ0LnB1c2goe2tleTplLnNsaWNlKDEpLHZhbHVlOnRoaXNbZV19KTtyZXR1cm4gdH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PUdXJiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYodFswXT09PUdXKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1HVyYmdCh0aGlzW2VdLGUuc2xpY2UoMSksdGhpcyl9fTt2YXIgWFc9cVcucHJvdG90eXBlO2Z1bmN0aW9uICRXKHQpe3JldHVybiB0LmluZGV4fWZ1bmN0aW9uIEtXKHQsZSl7dmFyIG49dC5nZXQoZSk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2UpO3JldHVybiBufVlXLnByb3RvdHlwZT17Y29uc3RydWN0b3I6WVcsaGFzOlhXLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbR1crKHQrPSIiKV09dCx0aGlzfSxyZW1vdmU6WFcucmVtb3ZlLGNsZWFyOlhXLmNsZWFyLHZhbHVlczpYVy5rZXlzLHNpemU6WFcuc2l6ZSxlbXB0eTpYVy5lbXB0eSxlYWNoOlhXLmVhY2h9O3ZhciBaVz17dmFsdWU6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBKVygpe2Zvcih2YXIgdCxlPTAsbj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxuOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaXx8L1tccy5dLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK3QpO2lbdF09W119cmV0dXJuIG5ldyBRVyhpKX1mdW5jdGlvbiBRVyh0KXt0aGlzLl89dH1mdW5jdGlvbiB0cSh0LGUpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9dC5pbmRleE9mKCIuIik7aWYoaT49MCYmKG49dC5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKSx0JiYhZS5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6bn19KSl9ZnVuY3Rpb24gZXEodCxlKXtmb3IodmFyIG4saT0wLHI9dC5sZW5ndGg7aTxyOysraSlpZigobj10W2ldKS5uYW1lPT09ZSlyZXR1cm4gbi52YWx1ZX1mdW5jdGlvbiBucSh0LGUsbil7Zm9yKHZhciBpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKHRbaV0ubmFtZT09PWUpe3RbaV09WlcsdD10LnNsaWNlKDAsaSkuY29uY2F0KHQuc2xpY2UoaSsxKSk7YnJlYWt9cmV0dXJuIG51bGwhPW4mJnQucHVzaCh7bmFtZTplLHZhbHVlOm59KSx0fVFXLnByb3RvdHlwZT1KVy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlFXLG9uOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl8scj10cSh0KyIiLGkpLG89LTEsYT1yLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2lmKG51bGwhPWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIitlKTtmb3IoOysrbzxhOylpZihuPSh0PXJbb10pLnR5cGUpaVtuXT1ucShpW25dLHQubmFtZSxlKTtlbHNlIGlmKG51bGw9PWUpZm9yKG4gaW4gaSlpW25dPW5xKGlbbl0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChuPSh0PXJbb10pLnR5cGUpJiYobj1lcShpW25dLHQubmFtZSkpKXJldHVybiBufSxjb3B5OmZ1bmN0aW9uKCl7dmFyIHQ9e30sZT10aGlzLl87Zm9yKHZhciBuIGluIGUpdFtuXT1lW25dLnNsaWNlKCk7cmV0dXJuIG5ldyBRVyh0KX0sY2FsbDpmdW5jdGlvbih0LGUpe2lmKChuPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIG4saSxyPW5ldyBBcnJheShuKSxvPTA7bzxuOysrbylyW29dPWFyZ3VtZW50c1tvKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKG89MCxuPShpPXRoaXMuX1t0XSkubGVuZ3RoO288bjsrK28paVtvXS52YWx1ZS5hcHBseShlLHIpfSxhcHBseTpmdW5jdGlvbih0LGUsbil7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3IodmFyIGk9dGhpcy5fW3RdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3IpaVtyXS52YWx1ZS5hcHBseShlLG4pfX07dmFyIGlxLHJxLG9xPTAsYXE9MCxzcT0wLGxxPTAsY3E9MCx1cT0wLGhxPSJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLGRxPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIHBxKCl7cmV0dXJuIGNxfHwoZHEoZnEpLGNxPWhxLm5vdygpK3VxKX1mdW5jdGlvbiBmcSgpe2NxPTB9ZnVuY3Rpb24gbXEoKXt0aGlzLl9jYWxsPXRoaXMuX3RpbWU9dGhpcy5fbmV4dD1udWxsfWZ1bmN0aW9uIGdxKHQsZSxuKXt2YXIgaT1uZXcgbXE7cmV0dXJuIGkucmVzdGFydCh0LGUsbiksaX1mdW5jdGlvbiBfcSgpe2NxPShscT1ocS5ub3coKSkrdXEsb3E9YXE9MDt0cnl7IShmdW5jdGlvbiB0KCl7cHEoKSwrK29xO2Zvcih2YXIgdCxlPWlxO2U7KSh0PWNxLWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS1vcX0pKCl9ZmluYWxseXtvcT0wLChmdW5jdGlvbiBlKCl7Zm9yKHZhciB0LGUsbj1pcSxpPTEvMDtuOyluLl9jYWxsPyhpPm4uX3RpbWUmJihpPW4uX3RpbWUpLHQ9bixuPW4uX25leHQpOihlPW4uX25leHQsbi5fbmV4dD1udWxsLG49dD90Ll9uZXh0PWU6aXE9ZSk7cnE9dCx2cShpKX0pKCksY3E9MH19ZnVuY3Rpb24geXEoKXt2YXIgdD1ocS5ub3coKSxlPXQtbHE7ZT4xZTMmJih1cS09ZSxscT10KX1mdW5jdGlvbiB2cSh0KXtvcXx8KGFxJiYoYXE9Y2xlYXJUaW1lb3V0KGFxKSksdC1jcT4yND8odDwxLzAmJihhcT1zZXRUaW1lb3V0KF9xLHQtaHEubm93KCktdXEpKSxzcSYmKHNxPWNsZWFySW50ZXJ2YWwoc3EpKSk6KHNxfHwobHE9aHEubm93KCksc3E9c2V0SW50ZXJ2YWwoeXEsMWUzKSksb3E9MSxkcShfcSkpKX1mdW5jdGlvbiBicSh0KXtyZXR1cm4gdC54fWZ1bmN0aW9uIHhxKHQpe3JldHVybiB0Lnl9bXEucHJvdG90eXBlPWdxLnByb3RvdHlwZT17Y29uc3RydWN0b3I6bXEscmVzdGFydDpmdW5jdGlvbih0LGUsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtuPShudWxsPT1uP3BxKCk6K24pKyhudWxsPT1lPzA6K2UpLHRoaXMuX25leHR8fHJxPT09dGhpc3x8KHJxP3JxLl9uZXh0PXRoaXM6aXE9dGhpcyxycT10aGlzKSx0aGlzLl9jYWxsPXQsdGhpcy5fdGltZT1uLHZxKCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLHZxKCkpfX07dmFyIHdxLFNxPU1hdGguUEkqKDMtTWF0aC5zcXJ0KDUpKTtmdW5jdGlvbiBNcSh0LGUpe2lmKChuPSh0PWU/dC50b0V4cG9uZW50aWFsKGUtMSk6dC50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoImUiKSk8MClyZXR1cm4gbnVsbDt2YXIgbixpPXQuc2xpY2UoMCxuKTtyZXR1cm5baS5sZW5ndGg+MT9pWzBdK2kuc2xpY2UoMik6aSwrdC5zbGljZShuKzEpXX1mdW5jdGlvbiBFcSh0KXtyZXR1cm4odD1NcShNYXRoLmFicyh0KSkpP3RbMV06TmFOfWZ1bmN0aW9uIFRxKHQsZSl7dmFyIG49TXEodCxlKTtpZighbilyZXR1cm4gdCsiIjt2YXIgaT1uWzBdLHI9blsxXTtyZXR1cm4gcjwwPyIwLiIrbmV3IEFycmF5KC1yKS5qb2luKCIwIikraTppLmxlbmd0aD5yKzE/aS5zbGljZSgwLHIrMSkrIi4iK2kuc2xpY2UocisxKTppK25ldyBBcnJheShyLWkubGVuZ3RoKzIpLmpvaW4oIjAiKX12YXIgQ3E9eyIiOmZ1bmN0aW9uIEFxKHQsZSl7dDpmb3IodmFyIG4saT0odD10LnRvUHJlY2lzaW9uKGUpKS5sZW5ndGgscj0xLG89LTE7cjxpOysrcilzd2l0Y2godFtyXSl7Y2FzZSIuIjpvPW49cjticmVhaztjYXNlIjAiOjA9PT1vJiYobz1yKSxuPXI7YnJlYWs7Y2FzZSJlIjpicmVhayB0O2RlZmF1bHQ6bz4wJiYobz0wKX1yZXR1cm4gbz4wP3Quc2xpY2UoMCxvKSt0LnNsaWNlKG4rMSk6dH0sIiUiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuKDEwMCp0KS50b0ZpeGVkKGUpfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiB0KyIifSxkOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDEwKX0sZTpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRXhwb25lbnRpYWwoZSl9LGY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0ZpeGVkKGUpfSxnOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9QcmVjaXNpb24oZSl9LG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24odCxlKXtyZXR1cm4gVHEoMTAwKnQsZSl9LHI6VHEsczpmdW5jdGlvbiBrcSh0LGUpe3ZhciBuPU1xKHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIGk9blswXSxyPW5bMV0sbz1yLSh3cT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihyLzMpKSkpKzEsYT1pLmxlbmd0aDtyZXR1cm4gbz09PWE/aTpvPmE/aStuZXcgQXJyYXkoby1hKzEpLmpvaW4oIjAiKTpvPjA/aS5zbGljZSgwLG8pKyIuIitpLnNsaWNlKG8pOiIwLiIrbmV3IEFycmF5KDEtbykuam9pbigiMCIpK01xKHQsTWF0aC5tYXgoMCxlK28tMSkpWzBdfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX19LExxPS9eKD86KC4pPyhbPD49Xl0pKT8oWytcLVwoIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KFthLXolXSk/JC9pO2Z1bmN0aW9uIFBxKHQpe3JldHVybiBuZXcgTnEodCl9ZnVuY3Rpb24gTnEodCl7aWYoIShlPUxxLmV4ZWModCkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrdCk7dmFyIGUsbj1lWzFdfHwiICIsaT1lWzJdfHwiPiIscj1lWzNdfHwiLSIsbz1lWzRdfHwiIixhPSEhZVs1XSxzPWVbNl0mJitlWzZdLGw9ISFlWzddLGM9ZVs4XSYmK2VbOF0uc2xpY2UoMSksdT1lWzldfHwiIjsibiI9PT11PyhsPSEwLHU9ImciKTpDcVt1XXx8KHU9IiIpLChhfHwiMCI9PT1uJiYiPSI9PT1pKSYmKGE9ITAsbj0iMCIsaT0iPSIpLHRoaXMuZmlsbD1uLHRoaXMuYWxpZ249aSx0aGlzLnNpZ249cix0aGlzLnN5bWJvbD1vLHRoaXMuemVybz1hLHRoaXMud2lkdGg9cyx0aGlzLmNvbW1hPWwsdGhpcy5wcmVjaXNpb249Yyx0aGlzLnR5cGU9dX1mdW5jdGlvbiBJcSh0KXtyZXR1cm4gdH1QcS5wcm90b3R5cGU9TnEucHJvdG90eXBlLE5xLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz8iMCI6IiIpKyhudWxsPT10aGlzLndpZHRoPyIiOk1hdGgubWF4KDEsMHx0aGlzLndpZHRoKSkrKHRoaXMuY29tbWE/IiwiOiIiKSsobnVsbD09dGhpcy5wcmVjaXNpb24/IiI6Ii4iK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpK3RoaXMudHlwZX07dmFyIFJxLE9xLHpxLERxPVsieSIsInoiLCJhIiwiZiIsInAiLCJuIiwiwrUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXTtmdW5jdGlvbiBCcSh0KXt2YXIgZT10Lmdyb3VwaW5nJiZ0LnRob3VzYW5kcz8oZnVuY3Rpb24gbih0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe2Zvcih2YXIgcj1uLmxlbmd0aCxvPVtdLGE9MCxzPXRbMF0sbD0wO3I+MCYmcz4wJiYobCtzKzE+aSYmKHM9TWF0aC5tYXgoMSxpLWwpKSxvLnB1c2gobi5zdWJzdHJpbmcoci09cyxyK3MpKSwhKChsKz1zKzEpPmkpKTspcz10W2E9KGErMSkldC5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKGUpfX0pKHQuZ3JvdXBpbmcsdC50aG91c2FuZHMpOklxLGk9dC5jdXJyZW5jeSxyPXQuZGVjaW1hbCxvPXQubnVtZXJhbHM/KGZ1bmN0aW9uIGEodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1swLTldL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0WytlXX0pKX19KSh0Lm51bWVyYWxzKTpJcSxzPXQucGVyY2VudHx8IiUiO2Z1bmN0aW9uIGwodCl7dmFyIG49KHQ9UHEodCkpLmZpbGwsYT10LmFsaWduLGw9dC5zaWduLGM9dC5zeW1ib2wsdT10Lnplcm8saD10LndpZHRoLGQ9dC5jb21tYSxwPXQucHJlY2lzaW9uLGY9dC50eXBlLG09IiQiPT09Yz9pWzBdOiIjIj09PWMmJi9bYm94WF0vLnRlc3QoZik/IjAiK2YudG9Mb3dlckNhc2UoKToiIixnPSIkIj09PWM/aVsxXTovWyVwXS8udGVzdChmKT9zOiIiLF89Q3FbZl0seT0hZnx8L1tkZWZncHJzJV0vLnRlc3QoZik7ZnVuY3Rpb24gdih0KXt2YXIgaSxzLGMsdj1tLGI9ZztpZigiYyI9PT1mKWI9Xyh0KStiLHQ9IiI7ZWxzZXt2YXIgeD0odD0rdCk8MDtpZih0PV8oTWF0aC5hYnModCkscCkseCYmMD09K3QmJih4PSExKSx2PSh4PyIoIj09PWw/bDoiLSI6Ii0iPT09bHx8IigiPT09bD8iIjpsKSt2LGI9KCJzIj09PWY/RHFbOCt3cS8zXToiIikrYisoeCYmIigiPT09bD8iKSI6IiIpLHkpZm9yKGk9LTEscz10Lmxlbmd0aDsrK2k8czspaWYoNDg+KGM9dC5jaGFyQ29kZUF0KGkpKXx8Yz41Nyl7Yj0oNDY9PT1jP3IrdC5zbGljZShpKzEpOnQuc2xpY2UoaSkpK2IsdD10LnNsaWNlKDAsaSk7YnJlYWt9fWQmJiF1JiYodD1lKHQsMS8wKSk7dmFyIHc9di5sZW5ndGgrdC5sZW5ndGgrYi5sZW5ndGgsUz13PGg/bmV3IEFycmF5KGgtdysxKS5qb2luKG4pOiIiO3N3aXRjaChkJiZ1JiYodD1lKFMrdCxTLmxlbmd0aD9oLWIubGVuZ3RoOjEvMCksUz0iIiksYSl7Y2FzZSI8Ijp0PXYrdCtiK1M7YnJlYWs7Y2FzZSI9Ijp0PXYrUyt0K2I7YnJlYWs7Y2FzZSJeIjp0PVMuc2xpY2UoMCx3PVMubGVuZ3RoPj4xKSt2K3QrYitTLnNsaWNlKHcpO2JyZWFrO2RlZmF1bHQ6dD1TK3YrdCtifXJldHVybiBvKHQpfXJldHVybiBwPW51bGw9PXA/Zj82OjEyOi9bZ3Byc10vLnRlc3QoZik/TWF0aC5tYXgoMSxNYXRoLm1pbigyMSxwKSk6TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxwKSksdi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0KyIifSx2fXJldHVybntmb3JtYXQ6bCxmb3JtYXRQcmVmaXg6ZnVuY3Rpb24gYyh0LGUpe3ZhciBuPWwoKCh0PVBxKHQpKS50eXBlPSJmIix0KSksaT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihFcShlKS8zKSkpLHI9TWF0aC5wb3coMTAsLWkpLG89RHFbOCtpLzNdO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbihyKnQpK299fX19ZnVuY3Rpb24gSHEodCl7cmV0dXJuIFJxPUJxKHQpLE9xPVJxLmZvcm1hdCx6cT1ScS5mb3JtYXRQcmVmaXgsUnF9ZnVuY3Rpb24gRnEoKXtyZXR1cm4gbmV3IFZxfWZ1bmN0aW9uIFZxKCl7dGhpcy5yZXNldCgpfUhxKHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXX0pLFZxLnByb3RvdHlwZT17Y29uc3RydWN0b3I6VnEscmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLnM9dGhpcy50PTB9LGFkZDpmdW5jdGlvbih0KXtqcShVcSx0LHRoaXMudCksanEodGhpcyxVcS5zLHRoaXMucyksdGhpcy5zP3RoaXMudCs9VXEudDp0aGlzLnM9VXEudH0sdmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN9fTt2YXIgVXE9bmV3IFZxO2Z1bmN0aW9uIGpxKHQsZSxuKXt2YXIgaT10LnM9ZStuLHI9aS1lO3QudD1lLShpLXIpKyhuLXIpfXZhciBHcT0xZS02LFdxPU1hdGguUEkscXE9V3EvMixZcT1XcS80LFhxPTIqV3EsJHE9MTgwL1dxLEtxPVdxLzE4MCxacT1NYXRoLmFicyxKcT1NYXRoLmF0YW4sUXE9TWF0aC5hdGFuMix0WT1NYXRoLmNvcyxlWT1NYXRoLmNlaWwsblk9TWF0aC5leHAsaVk9TWF0aC5sb2csclk9TWF0aC5wb3csb1k9TWF0aC5zaW4sYVk9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9LHNZPU1hdGguc3FydCxsWT1NYXRoLnRhbjtmdW5jdGlvbiBjWSh0KXtyZXR1cm4gdD4xPzA6dDwtMT9XcTpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gdVkodCl7cmV0dXJuIHQ+MT9xcTp0PC0xPy1xcTpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gaFkodCl7cmV0dXJuKHQ9b1kodC8yKSkqdH1mdW5jdGlvbiBkWSgpe31mdW5jdGlvbiBwWSh0LGUpe3QmJm1ZLmhhc093blByb3BlcnR5KHQudHlwZSkmJm1ZW3QudHlwZV0odCxlKX12YXIgZlk9e0ZlYXR1cmU6ZnVuY3Rpb24odCxlKXtwWSh0Lmdlb21ldHJ5LGUpfSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmZlYXR1cmVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspcFkobltpXS5nZW9tZXRyeSxlKX19LG1ZPXtTcGhlcmU6ZnVuY3Rpb24odCxlKXtlLnNwaGVyZSgpfSxQb2ludDpmdW5jdGlvbih0LGUpe2UucG9pbnQoKHQ9dC5jb29yZGluYXRlcylbMF0sdFsxXSx0WzJdKX0sTXVsdGlQb2ludDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspZS5wb2ludCgodD1uW2ldKVswXSx0WzFdLHRbMl0pfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7Z1kodC5jb29yZGluYXRlcyxlLDApfSxNdWx0aUxpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5jb29yZGluYXRlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWdZKG5baV0sZSwwKX0sUG9seWdvbjpmdW5jdGlvbih0LGUpe19ZKHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspX1kobltpXSxlKX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZ2VvbWV0cmllcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KXBZKG5baV0sZSl9fTtmdW5jdGlvbiBnWSh0LGUsbil7dmFyIGkscj0tMSxvPXQubGVuZ3RoLW47Zm9yKGUubGluZVN0YXJ0KCk7KytyPG87KWUucG9pbnQoKGk9dFtyXSlbMF0saVsxXSxpWzJdKTtlLmxpbmVFbmQoKX1mdW5jdGlvbiBfWSh0LGUpe3ZhciBuPS0xLGk9dC5sZW5ndGg7Zm9yKGUucG9seWdvblN0YXJ0KCk7KytuPGk7KWdZKHRbbl0sZSwxKTtlLnBvbHlnb25FbmQoKX1mdW5jdGlvbiB5WSh0LGUpe3QmJmZZLmhhc093blByb3BlcnR5KHQudHlwZSk/ZllbdC50eXBlXSh0LGUpOnBZKHQsZSl9dmFyIHZZLGJZLHhZLHdZLFNZLE1ZPUZxKCksRVk9RnEoKSxUWT17cG9pbnQ6ZFksbGluZVN0YXJ0OmRZLGxpbmVFbmQ6ZFkscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7TVkucmVzZXQoKSxUWS5saW5lU3RhcnQ9Q1ksVFkubGluZUVuZD1BWX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciB0PStNWTtFWS5hZGQodDwwP1hxK3Q6dCksdGhpcy5saW5lU3RhcnQ9dGhpcy5saW5lRW5kPXRoaXMucG9pbnQ9ZFl9LHNwaGVyZTpmdW5jdGlvbigpe0VZLmFkZChYcSl9fTtmdW5jdGlvbiBDWSgpe1RZLnBvaW50PWtZfWZ1bmN0aW9uIEFZKCl7TFkodlksYlkpfWZ1bmN0aW9uIGtZKHQsZSl7VFkucG9pbnQ9TFksdlk9dCxiWT1lLHhZPXQqPUtxLHdZPXRZKGU9KGUqPUtxKS8yK1lxKSxTWT1vWShlKX1mdW5jdGlvbiBMWSh0LGUpe3ZhciBuPSh0Kj1LcSkteFksaT1uPj0wPzE6LTEscj1pKm4sbz10WShlPShlKj1LcSkvMitZcSksYT1vWShlKSxzPVNZKmEsbD13WSpvK3MqdFkociksYz1zKmkqb1kocik7TVkuYWRkKFFxKGMsbCkpLHhZPXQsd1k9byxTWT1hfWZ1bmN0aW9uIFBZKHQpe3JldHVybltRcSh0WzFdLHRbMF0pLHVZKHRbMl0pXX1mdW5jdGlvbiBOWSh0KXt2YXIgZT10WzBdLG49dFsxXSxpPXRZKG4pO3JldHVybltpKnRZKGUpLGkqb1koZSksb1kobildfWZ1bmN0aW9uIElZKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdfWZ1bmN0aW9uIFJZKHQsZSl7cmV0dXJuW3RbMV0qZVsyXS10WzJdKmVbMV0sdFsyXSplWzBdLXRbMF0qZVsyXSx0WzBdKmVbMV0tdFsxXSplWzBdXX1mdW5jdGlvbiBPWSh0LGUpe3RbMF0rPWVbMF0sdFsxXSs9ZVsxXSx0WzJdKz1lWzJdfWZ1bmN0aW9uIHpZKHQsZSl7cmV0dXJuW3RbMF0qZSx0WzFdKmUsdFsyXSplXX1mdW5jdGlvbiBEWSh0KXt2YXIgZT1zWSh0WzBdKnRbMF0rdFsxXSp0WzFdK3RbMl0qdFsyXSk7dFswXS89ZSx0WzFdLz1lLHRbMl0vPWV9dmFyIEJZLEhZLEZZLFZZLFVZLGpZLEdZLFdZLHFZLFlZLFhZLCRZLEtZLFpZLEpZLFFZLHRYLGVYLG5YLGlYLHJYLG9YLGFYLHNYLGxYLGNYLHVYPUZxKCksaFg9e3BvaW50OmRYLGxpbmVTdGFydDpmWCxsaW5lRW5kOm1YLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2hYLnBvaW50PWdYLGhYLmxpbmVTdGFydD1fWCxoWC5saW5lRW5kPXlYLHVYLnJlc2V0KCksVFkucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtUWS5wb2x5Z29uRW5kKCksaFgucG9pbnQ9ZFgsaFgubGluZVN0YXJ0PWZYLGhYLmxpbmVFbmQ9bVgsTVk8MD8oQlk9LShGWT0xODApLEhZPS0oVlk9OTApKTp1WD5HcT9WWT05MDp1WDwtMWUtNiYmKEhZPS05MCksWVlbMF09QlksWVlbMV09Rll9fTtmdW5jdGlvbiBkWCh0LGUpe3FZLnB1c2goWVk9W0JZPXQsRlk9dF0pLGU8SFkmJihIWT1lKSxlPlZZJiYoVlk9ZSl9ZnVuY3Rpb24gcFgodCxlKXt2YXIgbj1OWShbdCpLcSxlKktxXSk7aWYoV1kpe3ZhciBpPVJZKFdZLG4pLHI9UlkoW2lbMV0sLWlbMF0sMF0saSk7RFkocikscj1QWShyKTt2YXIgbyxhPXQtVVkscz1hPjA/MTotMSxsPXJbMF0qJHEqcyxjPVpxKGEpPjE4MDtjXihzKlVZPGwmJmw8cyp0KT8obz1yWzFdKiRxKT5WWSYmKFZZPW8pOmNeKHMqVVk8KGw9KGwrMzYwKSUzNjAtMTgwKSYmbDxzKnQpPyhvPS1yWzFdKiRxKTxIWSYmKEhZPW8pOihlPEhZJiYoSFk9ZSksZT5WWSYmKFZZPWUpKSxjP3Q8VVk/dlgoQlksdCk+dlgoQlksRlkpJiYoRlk9dCk6dlgodCxGWSk+dlgoQlksRlkpJiYoQlk9dCk6Rlk+PUJZPyh0PEJZJiYoQlk9dCksdD5GWSYmKEZZPXQpKTp0PlVZP3ZYKEJZLHQpPnZYKEJZLEZZKSYmKEZZPXQpOnZYKHQsRlkpPnZYKEJZLEZZKSYmKEJZPXQpfWVsc2UgcVkucHVzaChZWT1bQlk9dCxGWT10XSk7ZTxIWSYmKEhZPWUpLGU+VlkmJihWWT1lKSxXWT1uLFVZPXR9ZnVuY3Rpb24gZlgoKXtoWC5wb2ludD1wWH1mdW5jdGlvbiBtWCgpe1lZWzBdPUJZLFlZWzFdPUZZLGhYLnBvaW50PWRYLFdZPW51bGx9ZnVuY3Rpb24gZ1godCxlKXtpZihXWSl7dmFyIG49dC1VWTt1WC5hZGQoWnEobik+MTgwP24rKG4+MD8zNjA6LTM2MCk6bil9ZWxzZSBqWT10LEdZPWU7VFkucG9pbnQodCxlKSxwWCh0LGUpfWZ1bmN0aW9uIF9YKCl7VFkubGluZVN0YXJ0KCl9ZnVuY3Rpb24geVgoKXtnWChqWSxHWSksVFkubGluZUVuZCgpLFpxKHVYKT5HcSYmKEJZPS0oRlk9MTgwKSksWVlbMF09QlksWVlbMV09RlksV1k9bnVsbH1mdW5jdGlvbiB2WCh0LGUpe3JldHVybihlLT10KTwwP2UrMzYwOmV9ZnVuY3Rpb24gYlgodCxlKXtyZXR1cm4gdFswXS1lWzBdfWZ1bmN0aW9uIHhYKHQsZSl7cmV0dXJuIHRbMF08PXRbMV0/dFswXTw9ZSYmZTw9dFsxXTplPHRbMF18fHRbMV08ZX12YXIgd1g9e3NwaGVyZTpkWSxwb2ludDpTWCxsaW5lU3RhcnQ6RVgsbGluZUVuZDpBWCxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt3WC5saW5lU3RhcnQ9a1gsd1gubGluZUVuZD1MWH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3dYLmxpbmVTdGFydD1FWCx3WC5saW5lRW5kPUFYfX07ZnVuY3Rpb24gU1godCxlKXt0Kj1LcTt2YXIgbj10WShlKj1LcSk7TVgobip0WSh0KSxuKm9ZKHQpLG9ZKGUpKX1mdW5jdGlvbiBNWCh0LGUsbil7KytYWSxLWSs9KHQtS1kpL1hZLFpZKz0oZS1aWSkvWFksSlkrPShuLUpZKS9YWX1mdW5jdGlvbiBFWCgpe3dYLnBvaW50PVRYfWZ1bmN0aW9uIFRYKHQsZSl7dCo9S3E7dmFyIG49dFkoZSo9S3EpO3NYPW4qdFkodCksbFg9bipvWSh0KSxjWD1vWShlKSx3WC5wb2ludD1DWCxNWChzWCxsWCxjWCl9ZnVuY3Rpb24gQ1godCxlKXt0Kj1LcTt2YXIgbj10WShlKj1LcSksaT1uKnRZKHQpLHI9bipvWSh0KSxvPW9ZKGUpLGE9UXEoc1koKGE9bFgqby1jWCpyKSphKyhhPWNYKmktc1gqbykqYSsoYT1zWCpyLWxYKmkpKmEpLHNYKmkrbFgqcitjWCpvKTskWSs9YSxRWSs9YSooc1grKHNYPWkpKSx0WCs9YSoobFgrKGxYPXIpKSxlWCs9YSooY1grKGNYPW8pKSxNWChzWCxsWCxjWCl9ZnVuY3Rpb24gQVgoKXt3WC5wb2ludD1TWH1mdW5jdGlvbiBrWCgpe3dYLnBvaW50PVBYfWZ1bmN0aW9uIExYKCl7Tlgob1gsYVgpLHdYLnBvaW50PVNYfWZ1bmN0aW9uIFBYKHQsZSl7b1g9dCxhWD1lLHQqPUtxLGUqPUtxLHdYLnBvaW50PU5YO3ZhciBuPXRZKGUpO3NYPW4qdFkodCksbFg9bipvWSh0KSxjWD1vWShlKSxNWChzWCxsWCxjWCl9ZnVuY3Rpb24gTlgodCxlKXt0Kj1LcTt2YXIgbj10WShlKj1LcSksaT1uKnRZKHQpLHI9bipvWSh0KSxvPW9ZKGUpLGE9bFgqby1jWCpyLHM9Y1gqaS1zWCpvLGw9c1gqci1sWCppLGM9c1koYSphK3MqcytsKmwpLHU9dVkoYyksaD1jJiYtdS9jO25YKz1oKmEsaVgrPWgqcyxyWCs9aCpsLCRZKz11LFFZKz11KihzWCsoc1g9aSkpLHRYKz11KihsWCsobFg9cikpLGVYKz11KihjWCsoY1g9bykpLE1YKHNYLGxYLGNYKX1mdW5jdGlvbiBJWCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gUlgodCxlKXtmdW5jdGlvbiBuKG4saSl7cmV0dXJuIG49dChuLGkpLGUoblswXSxuWzFdKX1yZXR1cm4gdC5pbnZlcnQmJmUuaW52ZXJ0JiYobi5pbnZlcnQ9ZnVuY3Rpb24obixpKXtyZXR1cm4obj1lLmludmVydChuLGkpKSYmdC5pbnZlcnQoblswXSxuWzFdKX0pLG59ZnVuY3Rpb24gT1godCxlKXtyZXR1cm5bdD5XcT90LVhxOnQ8LVdxP3QrWHE6dCxlXX1mdW5jdGlvbiB6WCh0LGUsbil7cmV0dXJuKHQlPVhxKT9lfHxuP1JYKEJYKHQpLEhYKGUsbikpOkJYKHQpOmV8fG4/SFgoZSxuKTpPWH1mdW5jdGlvbiBEWCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm5bKGUrPXQpPldxP2UtWHE6ZTwtV3E/ZStYcTplLG5dfX1mdW5jdGlvbiBCWCh0KXt2YXIgZT1EWCh0KTtyZXR1cm4gZS5pbnZlcnQ9RFgoLXQpLGV9ZnVuY3Rpb24gSFgodCxlKXt2YXIgbj10WSh0KSxpPW9ZKHQpLHI9dFkoZSksbz1vWShlKTtmdW5jdGlvbiBhKHQsZSl7dmFyIGE9dFkoZSkscz10WSh0KSphLGw9b1kodCkqYSxjPW9ZKGUpLHU9YypuK3MqaTtyZXR1cm5bUXEobCpyLXUqbyxzKm4tYyppKSx1WSh1KnIrbCpvKV19cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIGE9dFkoZSkscz10WSh0KSphLGw9b1kodCkqYSxjPW9ZKGUpLHU9YypyLWwqbztyZXR1cm5bUXEobCpyK2MqbyxzKm4rdSppKSx1WSh1Km4tcyppKV19LGF9ZnVuY3Rpb24gRlgodCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4oZT10KGVbMF0qS3EsZVsxXSpLcSkpWzBdKj0kcSxlWzFdKj0kcSxlfXJldHVybiB0PXpYKHRbMF0qS3EsdFsxXSpLcSx0Lmxlbmd0aD4yP3RbMl0qS3E6MCksZS5pbnZlcnQ9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9dC5pbnZlcnQoZVswXSpLcSxlWzFdKktxKSlbMF0qPSRxLGVbMV0qPSRxLGV9LGV9ZnVuY3Rpb24gVlgodCxlLG4saSxyLG8pe2lmKG4pe3ZhciBhPXRZKGUpLHM9b1koZSksbD1pKm47bnVsbD09cj8ocj1lK2kqWHEsbz1lLWwvMik6KHI9VVgoYSxyKSxvPVVYKGEsbyksKGk+MD9yPG86cj5vKSYmKHIrPWkqWHEpKTtmb3IodmFyIGMsdT1yO2k+MD91Pm86dTxvO3UtPWwpYz1QWShbYSwtcyp0WSh1KSwtcypvWSh1KV0pLHQucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gVVgodCxlKXsoZT1OWShlKSlbMF0tPXQsRFkoZSk7dmFyIG49Y1koLWVbMV0pO3JldHVybigoLWVbMl08MD8tbjpuKStYcS1HcSklWHF9ZnVuY3Rpb24galgoKXt2YXIgdCxlPVtdO3JldHVybntwb2ludDpmdW5jdGlvbihlLG4pe3QucHVzaChbZSxuXSl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2UucHVzaCh0PVtdKX0sbGluZUVuZDpkWSxyZWpvaW46ZnVuY3Rpb24oKXtlLmxlbmd0aD4xJiZlLnB1c2goZS5wb3AoKS5jb25jYXQoZS5zaGlmdCgpKSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBuPWU7cmV0dXJuIGU9W10sdD1udWxsLG59fX1mdW5jdGlvbiBHWCh0LGUpe3JldHVybiBacSh0WzBdLWVbMF0pPEdxJiZacSh0WzFdLWVbMV0pPEdxfWZ1bmN0aW9uIFdYKHQsZSxuLGkpe3RoaXMueD10LHRoaXMuej1lLHRoaXMubz1uLHRoaXMuZT1pLHRoaXMudj0hMSx0aGlzLm49dGhpcy5wPW51bGx9ZnVuY3Rpb24gcVgodCxlLG4saSxyKXt2YXIgbyxhLHM9W10sbD1bXTtpZih0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCEoKGU9dC5sZW5ndGgtMSk8PTApKXt2YXIgZSxuLGk9dFswXSxhPXRbZV07aWYoR1goaSxhKSl7Zm9yKHIubGluZVN0YXJ0KCksbz0wO288ZTsrK28pci5wb2ludCgoaT10W29dKVswXSxpWzFdKTtyLmxpbmVFbmQoKX1lbHNlIHMucHVzaChuPW5ldyBXWChpLHQsbnVsbCwhMCkpLGwucHVzaChuLm89bmV3IFdYKGksbnVsbCxuLCExKSkscy5wdXNoKG49bmV3IFdYKGEsdCxudWxsLCExKSksbC5wdXNoKG4ubz1uZXcgV1goYSxudWxsLG4sITApKX19KSkscy5sZW5ndGgpe2ZvcihsLnNvcnQoZSksWVgocyksWVgobCksbz0wLGE9bC5sZW5ndGg7bzxhOysrbylsW29dLmU9bj0hbjtmb3IodmFyIGMsdSxoPXNbMF07Oyl7Zm9yKHZhciBkPWgscD0hMDtkLnY7KWlmKChkPWQubik9PT1oKXJldHVybjtjPWQueixyLmxpbmVTdGFydCgpO2Rve2lmKGQudj1kLm8udj0hMCxkLmUpe2lmKHApZm9yKG89MCxhPWMubGVuZ3RoO288YTsrK28pci5wb2ludCgodT1jW29dKVswXSx1WzFdKTtlbHNlIGkoZC54LGQubi54LDEscik7ZD1kLm59ZWxzZXtpZihwKWZvcihvPShjPWQucC56KS5sZW5ndGgtMTtvPj0wOy0tbylyLnBvaW50KCh1PWNbb10pWzBdLHVbMV0pO2Vsc2UgaShkLngsZC5wLngsLTEscik7ZD1kLnB9Yz0oZD1kLm8pLnoscD0hcH13aGlsZSghZC52KTtyLmxpbmVFbmQoKX19fWZ1bmN0aW9uIFlYKHQpe2lmKGU9dC5sZW5ndGgpe2Zvcih2YXIgZSxuLGk9MCxyPXRbMF07KytpPGU7KXIubj1uPXRbaV0sbi5wPXIscj1uO3Iubj1uPXRbMF0sbi5wPXJ9fU9YLmludmVydD1PWDt2YXIgWFg9RnEoKTtmdW5jdGlvbiAkWCh0LGUpe3ZhciBuPWVbMF0saT1lWzFdLHI9W29ZKG4pLC10WShuKSwwXSxvPTAsYT0wO1hYLnJlc2V0KCk7Zm9yKHZhciBzPTAsbD10Lmxlbmd0aDtzPGw7KytzKWlmKHU9KGM9dFtzXSkubGVuZ3RoKWZvcih2YXIgYyx1LGg9Y1t1LTFdLGQ9aFswXSxwPWhbMV0vMitZcSxmPW9ZKHApLG09dFkocCksZz0wO2c8dTsrK2csZD15LGY9YixtPXgsaD1fKXt2YXIgXz1jW2ddLHk9X1swXSx2PV9bMV0vMitZcSxiPW9ZKHYpLHg9dFkodiksdz15LWQsUz13Pj0wPzE6LTEsTT1TKncsRT1NPldxLFQ9ZipiO2lmKFhYLmFkZChRcShUKlMqb1koTSksbSp4K1QqdFkoTSkpKSxvKz1FP3crUypYcTp3LEVeZD49bl55Pj1uKXt2YXIgQz1SWShOWShoKSxOWShfKSk7RFkoQyk7dmFyIEE9UlkocixDKTtEWShBKTt2YXIgaz0oRV53Pj0wPy0xOjEpKnVZKEFbMl0pOyhpPmt8fGk9PT1rJiYoQ1swXXx8Q1sxXSkpJiYoYSs9RV53Pj0wPzE6LTEpfX1yZXR1cm4obzwtMWUtNnx8bzxHcSYmWFg8LTFlLTYpXjEmYX1mdW5jdGlvbiBLWCh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBaWCh0LGUsbil7dD0rdCxlPStlLG49KHI9YXJndW1lbnRzLmxlbmd0aCk8Mj8oZT10LHQ9MCwxKTpyPDM/MTorbjtmb3IodmFyIGk9LTEscj0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChlLXQpL24pKSxvPW5ldyBBcnJheShyKTsrK2k8cjspb1tpXT10K2kqbjtyZXR1cm4gb31mdW5jdGlvbiBKWCh0KXtmb3IodmFyIGUsbixpLHI9dC5sZW5ndGgsbz0tMSxhPTA7KytvPHI7KWErPXRbb10ubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShhKTstLXI+PTA7KWZvcihlPShpPXRbcl0pLmxlbmd0aDstLWU+PTA7KW5bLS1hXT1pW2VdO3JldHVybiBufWZ1bmN0aW9uIFFYKHQsZSxuLGkpe3JldHVybiBmdW5jdGlvbihyKXt2YXIgbyxhLHMsbD1lKHIpLGM9algoKSx1PWUoYyksaD0hMSxkPXtwb2ludDpwLGxpbmVTdGFydDptLGxpbmVFbmQ6Zyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtkLnBvaW50PV8sZC5saW5lU3RhcnQ9eSxkLmxpbmVFbmQ9dixhPVtdLG89W119LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtkLnBvaW50PXAsZC5saW5lU3RhcnQ9bSxkLmxpbmVFbmQ9ZyxhPUpYKGEpO3ZhciB0PSRYKG8saSk7YS5sZW5ndGg/KGh8fChyLnBvbHlnb25TdGFydCgpLGg9ITApLHFYKGEsZSQsdCxuLHIpKTp0JiYoaHx8KHIucG9seWdvblN0YXJ0KCksaD0hMCksci5saW5lU3RhcnQoKSxuKG51bGwsbnVsbCwxLHIpLHIubGluZUVuZCgpKSxoJiYoci5wb2x5Z29uRW5kKCksaD0hMSksYT1vPW51bGx9LHNwaGVyZTpmdW5jdGlvbigpe3IucG9seWdvblN0YXJ0KCksci5saW5lU3RhcnQoKSxuKG51bGwsbnVsbCwxLHIpLHIubGluZUVuZCgpLHIucG9seWdvbkVuZCgpfX07ZnVuY3Rpb24gcChlLG4pe3QoZSxuKSYmci5wb2ludChlLG4pfWZ1bmN0aW9uIGYodCxlKXtsLnBvaW50KHQsZSl9ZnVuY3Rpb24gbSgpe2QucG9pbnQ9ZixsLmxpbmVTdGFydCgpfWZ1bmN0aW9uIGcoKXtkLnBvaW50PXAsbC5saW5lRW5kKCl9ZnVuY3Rpb24gXyh0LGUpe3MucHVzaChbdCxlXSksdS5wb2ludCh0LGUpfWZ1bmN0aW9uIHkoKXt1LmxpbmVTdGFydCgpLHM9W119ZnVuY3Rpb24gdigpe18oc1swXVswXSxzWzBdWzFdKSx1LmxpbmVFbmQoKTt2YXIgdCxlLG4saSxsPXUuY2xlYW4oKSxkPWMucmVzdWx0KCkscD1kLmxlbmd0aDtpZihzLnBvcCgpLG8ucHVzaChzKSxzPW51bGwscClpZigxJmwpe2lmKChlPShuPWRbMF0pLmxlbmd0aC0xKT4wKXtmb3IoaHx8KHIucG9seWdvblN0YXJ0KCksaD0hMCksci5saW5lU3RhcnQoKSx0PTA7dDxlOysrdClyLnBvaW50KChpPW5bdF0pWzBdLGlbMV0pO3IubGluZUVuZCgpfX1lbHNlIHA+MSYmMiZsJiZkLnB1c2goZC5wb3AoKS5jb25jYXQoZC5zaGlmdCgpKSksYS5wdXNoKGQuZmlsdGVyKHQkKSl9cmV0dXJuIGR9fWZ1bmN0aW9uIHQkKHQpe3JldHVybiB0Lmxlbmd0aD4xfWZ1bmN0aW9uIGUkKHQsZSl7cmV0dXJuKCh0PXQueClbMF08MD90WzFdLXFxLUdxOnFxLXRbMV0pLSgoZT1lLngpWzBdPDA/ZVsxXS1xcS1HcTpxcS1lWzFdKX0hKGZ1bmN0aW9uIG4kKHQpezE9PT10Lmxlbmd0aCYmKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIEtYKHQoZSksbil9fSkodCkpfSkoS1gpO3ZhciBpJD1RWCgoZnVuY3Rpb24oKXtyZXR1cm4hMH0pLChmdW5jdGlvbiByJCh0KXt2YXIgZSxuPU5hTixpPU5hTixyPU5hTjtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKSxlPTF9LHBvaW50OmZ1bmN0aW9uKG8sYSl7dmFyIHM9bz4wP1dxOi1XcSxsPVpxKG8tbik7WnEobC1XcSk8R3E/KHQucG9pbnQobixpPShpK2EpLzI+MD9xcTotcXEpLHQucG9pbnQocixpKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQocyxpKSx0LnBvaW50KG8saSksZT0wKTpyIT09cyYmbD49V3EmJihacShuLXIpPEdxJiYobi09cipHcSksWnEoby1zKTxHcSYmKG8tPXMqR3EpLGk9KGZ1bmN0aW9uIGModCxlLG4saSl7dmFyIHIsbyxhPW9ZKHQtbik7cmV0dXJuIFpxKGEpPkdxP0pxKChvWShlKSoobz10WShpKSkqb1kobiktb1koaSkqKHI9dFkoZSkpKm9ZKHQpKS8ocipvKmEpKTooZStpKS8yfSkobixpLG8sYSksdC5wb2ludChyLGkpLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludChzLGkpLGU9MCksdC5wb2ludChuPW8saT1hKSxyPXN9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0LmxpbmVFbmQoKSxuPWk9TmFOfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiAyLWV9fX0pLChmdW5jdGlvbiBvJCh0LGUsbixpKXt2YXIgcjtpZihudWxsPT10KWkucG9pbnQoLVdxLHI9bipxcSksaS5wb2ludCgwLHIpLGkucG9pbnQoV3EsciksaS5wb2ludChXcSwwKSxpLnBvaW50KFdxLC1yKSxpLnBvaW50KDAsLXIpLGkucG9pbnQoLVdxLC1yKSxpLnBvaW50KC1XcSwwKSxpLnBvaW50KC1XcSxyKTtlbHNlIGlmKFpxKHRbMF0tZVswXSk+R3Epe3ZhciBvPXRbMF08ZVswXT9XcTotV3E7aS5wb2ludCgtbyxyPW4qby8yKSxpLnBvaW50KDAsciksaS5wb2ludChvLHIpfWVsc2UgaS5wb2ludChlWzBdLGVbMV0pfSksWy1XcSwtcXFdKTtmdW5jdGlvbiBhJCh0KXt2YXIgZT10WSh0KSxuPTYqS3EsaT1lPjAscj1acShlKT5HcTtmdW5jdGlvbiBvKHQsbil7cmV0dXJuIHRZKHQpKnRZKG4pPmV9ZnVuY3Rpb24gYSh0LG4saSl7dmFyIHI9WzEsMCwwXSxvPVJZKE5ZKHQpLE5ZKG4pKSxhPUlZKG8sbykscz1vWzBdLGw9YS1zKnM7aWYoIWwpcmV0dXJuIWkmJnQ7dmFyIGM9ZSphL2wsdT0tZSpzL2wsaD1SWShyLG8pLGQ9elkocixjKTtPWShkLHpZKG8sdSkpO3ZhciBwPWgsZj1JWShkLHApLG09SVkocCxwKSxnPWYqZi1tKihJWShkLGQpLTEpO2lmKCEoZzwwKSl7dmFyIF89c1koZykseT16WShwLCgtZi1fKS9tKTtpZihPWSh5LGQpLHk9UFkoeSksIWkpcmV0dXJuIHk7dmFyIHYsYj10WzBdLHg9blswXSx3PXRbMV0sUz1uWzFdO3g8YiYmKHY9YixiPXgseD12KTt2YXIgTT14LWIsRT1acShNLVdxKTxHcTtpZighRSYmUzx3JiYodj13LHc9UyxTPXYpLEV8fE08R3E/RT93K1M+MF55WzFdPChacSh5WzBdLWIpPEdxP3c6Uyk6dzw9eVsxXSYmeVsxXTw9UzpNPldxXihiPD15WzBdJiZ5WzBdPD14KSl7dmFyIFQ9elkocCwoLWYrXykvbSk7cmV0dXJuIE9ZKFQsZCksW3ksUFkoVCldfX19ZnVuY3Rpb24gcyhlLG4pe3ZhciByPWk/dDpXcS10LG89MDtyZXR1cm4gZTwtcj9vfD0xOmU+ciYmKG98PTIpLG48LXI/b3w9NDpuPnImJihvfD04KSxvfXJldHVybiBRWChvLChmdW5jdGlvbiBsKHQpe3ZhciBlLG4sbCxjLHU7cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe2M9bD0hMSx1PTF9LHBvaW50OmZ1bmN0aW9uKGgsZCl7dmFyIHAsZj1baCxkXSxtPW8oaCxkKSxnPWk/bT8wOnMoaCxkKTptP3MoaCsoaDwwP1dxOi1XcSksZCk6MDtpZighZSYmKGM9bD1tKSYmdC5saW5lU3RhcnQoKSxtIT09bCYmKCEocD1hKGUsZikpfHxHWChlLHApfHxHWChmLHApKSYmKGZbMF0rPUdxLGZbMV0rPUdxLG09byhmWzBdLGZbMV0pKSxtIT09bCl1PTAsbT8odC5saW5lU3RhcnQoKSxwPWEoZixlKSx0LnBvaW50KHBbMF0scFsxXSkpOihwPWEoZSxmKSx0LnBvaW50KHBbMF0scFsxXSksdC5saW5lRW5kKCkpLGU9cDtlbHNlIGlmKHImJmUmJmlebSl7dmFyIF87ZyZufHwhKF89YShmLGUsITApKXx8KHU9MCxpPyh0LmxpbmVTdGFydCgpLHQucG9pbnQoX1swXVswXSxfWzBdWzFdKSx0LnBvaW50KF9bMV1bMF0sX1sxXVsxXSksdC5saW5lRW5kKCkpOih0LnBvaW50KF9bMV1bMF0sX1sxXVsxXSksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KF9bMF1bMF0sX1swXVsxXSkpKX0hbXx8ZSYmR1goZSxmKXx8dC5wb2ludChmWzBdLGZbMV0pLGU9ZixsPW0sbj1nfSxsaW5lRW5kOmZ1bmN0aW9uKCl7bCYmdC5saW5lRW5kKCksZT1udWxsfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiB1fChjJiZsKTw8MX19fSksKGZ1bmN0aW9uIGMoZSxpLHIsbyl7Vlgobyx0LG4scixlLGkpfSksaT9bMCwtdF06Wy1XcSx0LVdxXSl9dmFyIHMkPTFlOSxsJD0tcyQ7ZnVuY3Rpb24gYyQodCxlLG4saSl7ZnVuY3Rpb24gcihyLG8pe3JldHVybiB0PD1yJiZyPD1uJiZlPD1vJiZvPD1pfWZ1bmN0aW9uIG8ocixvLHMsYyl7dmFyIHU9MCxoPTA7aWYobnVsbD09cnx8KHU9YShyLHMpKSE9PShoPWEobyxzKSl8fGwocixvKTwwXnM+MClkb3tjLnBvaW50KDA9PT11fHwzPT09dT90Om4sdT4xP2k6ZSl9d2hpbGUoKHU9KHUrcys0KSU0KSE9PWgpO2Vsc2UgYy5wb2ludChvWzBdLG9bMV0pfWZ1bmN0aW9uIGEoaSxyKXtyZXR1cm4gWnEoaVswXS10KTxHcT9yPjA/MDozOlpxKGlbMF0tbik8R3E/cj4wPzI6MTpacShpWzFdLWUpPEdxP3I+MD8xOjA6cj4wPzM6Mn1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIGwodC54LGUueCl9ZnVuY3Rpb24gbCh0LGUpe3ZhciBuPWEodCwxKSxpPWEoZSwxKTtyZXR1cm4gbiE9PWk/bi1pOjA9PT1uP2VbMV0tdFsxXToxPT09bj90WzBdLWVbMF06Mj09PW4/dFsxXS1lWzFdOmVbMF0tdFswXX1yZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGwsYyx1LGgsZCxwLGYsbSxnLF8seSx2PWEsYj1qWCgpLHg9e3BvaW50OlQsbGluZVN0YXJ0OmZ1bmN0aW9uIHcoKXt4LnBvaW50PUMsYyYmYy5wdXNoKHU9W10pLF89ITAsZz0hMSxmPW09TmFOfSxsaW5lRW5kOmZ1bmN0aW9uIFMoKXtsJiYoQyhoLGQpLHAmJmcmJmIucmVqb2luKCksbC5wdXNoKGIucmVzdWx0KCkpKSx4LnBvaW50PVQsZyYmdi5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbiBNKCl7dj1iLGw9W10sYz1bXSx5PSEwfSxwb2x5Z29uRW5kOmZ1bmN0aW9uIEUoKXt2YXIgZT0oZnVuY3Rpb24gbigpe2Zvcih2YXIgZT0wLG49MCxyPWMubGVuZ3RoO248cjsrK24pZm9yKHZhciBvLGEscz1jW25dLGw9MSx1PXMubGVuZ3RoLGg9c1swXSxkPWhbMF0scD1oWzFdO2w8dTsrK2wpbz1kLGE9cCxkPShoPXNbbF0pWzBdLHA9aFsxXSxhPD1pP3A+aSYmKGQtbykqKGktYSk+KHAtYSkqKHQtbykmJisrZTpwPD1pJiYoZC1vKSooaS1hKTwocC1hKSoodC1vKSYmLS1lO3JldHVybiBlfSkoKSxyPXkmJmUsaD0obD1KWChsKSkubGVuZ3RoOyhyfHxoKSYmKGEucG9seWdvblN0YXJ0KCksciYmKGEubGluZVN0YXJ0KCksbyhudWxsLG51bGwsMSxhKSxhLmxpbmVFbmQoKSksaCYmcVgobCxzLGUsbyxhKSxhLnBvbHlnb25FbmQoKSksdj1hLGw9Yz11PW51bGx9fTtmdW5jdGlvbiBUKHQsZSl7cih0LGUpJiZ2LnBvaW50KHQsZSl9ZnVuY3Rpb24gQyhvLGEpe3ZhciBzPXIobyxhKTtpZihjJiZ1LnB1c2goW28sYV0pLF8paD1vLGQ9YSxwPXMsXz0hMSxzJiYodi5saW5lU3RhcnQoKSx2LnBvaW50KG8sYSkpO2Vsc2UgaWYocyYmZyl2LnBvaW50KG8sYSk7ZWxzZXt2YXIgbD1bZj1NYXRoLm1heChsJCxNYXRoLm1pbihzJCxmKSksbT1NYXRoLm1heChsJCxNYXRoLm1pbihzJCxtKSldLGI9W289TWF0aC5tYXgobCQsTWF0aC5taW4ocyQsbykpLGE9TWF0aC5tYXgobCQsTWF0aC5taW4ocyQsYSkpXTshKGZ1bmN0aW9uIHgodCxlLG4saSxyLG8pe3ZhciBhLHM9dFswXSxsPXRbMV0sYz0wLHU9MSxoPWVbMF0tcyxkPWVbMV0tbDtpZihhPW4tcyxofHwhKGE+MCkpe2lmKGEvPWgsaDwwKXtpZihhPGMpcmV0dXJuO2E8dSYmKHU9YSl9ZWxzZSBpZihoPjApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1pZihhPXItcyxofHwhKGE8MCkpe2lmKGEvPWgsaDwwKXtpZihhPnUpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihoPjApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1pZihhPWktbCxkfHwhKGE+MCkpe2lmKGEvPWQsZDwwKXtpZihhPGMpcmV0dXJuO2E8dSYmKHU9YSl9ZWxzZSBpZihkPjApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1pZihhPW8tbCxkfHwhKGE8MCkpe2lmKGEvPWQsZDwwKXtpZihhPnUpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihkPjApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1yZXR1cm4gYz4wJiYodFswXT1zK2MqaCx0WzFdPWwrYypkKSx1PDEmJihlWzBdPXMrdSpoLGVbMV09bCt1KmQpLCEwfX19fX0pKGwsYix0LGUsbixpKT9zJiYodi5saW5lU3RhcnQoKSx2LnBvaW50KG8sYSkseT0hMSk6KGd8fCh2LmxpbmVTdGFydCgpLHYucG9pbnQobFswXSxsWzFdKSksdi5wb2ludChiWzBdLGJbMV0pLHN8fHYubGluZUVuZCgpLHk9ITEpfWY9byxtPWEsZz1zfXJldHVybiB4fX12YXIgdSQsaCQsZCQscCQ9RnEoKSxmJD17c3BoZXJlOmRZLHBvaW50OmRZLGxpbmVTdGFydDpmdW5jdGlvbiBtJCgpe2YkLnBvaW50PV8kLGYkLmxpbmVFbmQ9ZyR9LGxpbmVFbmQ6ZFkscG9seWdvblN0YXJ0OmRZLHBvbHlnb25FbmQ6ZFl9O2Z1bmN0aW9uIGckKCl7ZiQucG9pbnQ9ZiQubGluZUVuZD1kWX1mdW5jdGlvbiBfJCh0LGUpe3UkPXQqPUtxLGgkPW9ZKGUqPUtxKSxkJD10WShlKSxmJC5wb2ludD15JH1mdW5jdGlvbiB5JCh0LGUpe3QqPUtxO3ZhciBuPW9ZKGUqPUtxKSxpPXRZKGUpLHI9WnEodC11JCksbz10WShyKSxhPWkqb1kocikscz1kJCpuLWgkKmkqbyxsPWgkKm4rZCQqaSpvO3AkLmFkZChRcShzWShhKmErcypzKSxsKSksdSQ9dCxoJD1uLGQkPWl9ZnVuY3Rpb24gdiQodCl7cmV0dXJuIHAkLnJlc2V0KCkseVkodCxmJCksK3AkfXZhciBiJD1bbnVsbCxudWxsXSx4JD17dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6YiR9O2Z1bmN0aW9uIHckKHQsZSl7cmV0dXJuIGIkWzBdPXQsYiRbMV09ZSx2JCh4JCl9dmFyIFMkPXtGZWF0dXJlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEUkKHQuZ2VvbWV0cnksZSl9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZmVhdHVyZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylpZihFJChuW2ldLmdlb21ldHJ5LGUpKXJldHVybiEwO3JldHVybiExfX0sTSQ9e1NwaGVyZTpmdW5jdGlvbigpe3JldHVybiEwfSxQb2ludDpmdW5jdGlvbih0LGUpe3JldHVybiBUJCh0LmNvb3JkaW5hdGVzLGUpfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylpZihUJChuW2ldLGUpKXJldHVybiEwO3JldHVybiExfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEMkKHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspaWYoQyQobltpXSxlKSlyZXR1cm4hMDtyZXR1cm4hMX0sUG9seWdvbjpmdW5jdGlvbih0LGUpe3JldHVybiBBJCh0LmNvb3JkaW5hdGVzLGUpfSxNdWx0aVBvbHlnb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5jb29yZGluYXRlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKEEkKG5baV0sZSkpcmV0dXJuITA7cmV0dXJuITF9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10Lmdlb21ldHJpZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylpZihFJChuW2ldLGUpKXJldHVybiEwO3JldHVybiExfX07ZnVuY3Rpb24gRSQodCxlKXtyZXR1cm4hKCF0fHwhTSQuaGFzT3duUHJvcGVydHkodC50eXBlKSkmJk0kW3QudHlwZV0odCxlKX1mdW5jdGlvbiBUJCh0LGUpe3JldHVybiAwPT09dyQodCxlKX1mdW5jdGlvbiBDJCh0LGUpe3ZhciBuPXckKHRbMF0sdFsxXSk7cmV0dXJuIHckKHRbMF0sZSkrdyQoZSx0WzFdKTw9bitHcX1mdW5jdGlvbiBBJCh0LGUpe3JldHVybiEhJFgodC5tYXAoayQpLEwkKGUpKX1mdW5jdGlvbiBrJCh0KXtyZXR1cm4odD10Lm1hcChMJCkpLnBvcCgpLHR9ZnVuY3Rpb24gTCQodCl7cmV0dXJuW3RbMF0qS3EsdFsxXSpLcV19ZnVuY3Rpb24gUCQodCxlLG4pe3ZhciBpPVpYKHQsZS1HcSxuKS5jb25jYXQoZSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuW3QsZV19KSl9fWZ1bmN0aW9uIE4kKHQsZSxuKXt2YXIgaT1aWCh0LGUtR3EsbikuY29uY2F0KGUpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybltlLHRdfSkpfX1mdW5jdGlvbiBJJCgpe3ZhciB0LGUsbixpLHIsbyxhLHMsbCxjLHUsaCxkPTEwLHA9ZCxmPTkwLG09MzYwLGc9Mi41O2Z1bmN0aW9uIF8oKXtyZXR1cm57dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczp5KCl9fWZ1bmN0aW9uIHkoKXtyZXR1cm4gWlgoZVkoaS9mKSpmLG4sZikubWFwKHUpLmNvbmNhdChaWChlWShzL20pKm0sYSxtKS5tYXAoaCkpLmNvbmNhdChaWChlWShlL2QpKmQsdCxkKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBacSh0JWYpPkdxfSkpLm1hcChsKSkuY29uY2F0KFpYKGVZKG8vcCkqcCxyLHApLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIFpxKHQlbSk+R3F9KSkubWFwKGMpKX1yZXR1cm4gXy5saW5lcz1mdW5jdGlvbigpe3JldHVybiB5KCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm57dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dH19KSl9LF8ub3V0bGluZT1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbdShpKS5jb25jYXQoaChhKS5zbGljZSgxKSx1KG4pLnJldmVyc2UoKS5zbGljZSgxKSxoKHMpLnJldmVyc2UoKS5zbGljZSgxKSldfX0sXy5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/Xy5leHRlbnRNYWpvcih0KS5leHRlbnRNaW5vcih0KTpfLmV4dGVudE1pbm9yKCl9LF8uZXh0ZW50TWFqb3I9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9K3RbMF1bMV0sYT0rdFsxXVsxXSwoaT0rdFswXVswXSk+KG49K3RbMV1bMF0pJiYodD1pLGk9bixuPXQpLHM+YSYmKHQ9cyxzPWEsYT10KSxfLnByZWNpc2lvbihnKSk6W1tpLHNdLFtuLGFdXX0sXy5leHRlbnRNaW5vcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0rblswXVsxXSxyPStuWzFdWzFdLChlPStuWzBdWzBdKT4odD0rblsxXVswXSkmJihuPWUsZT10LHQ9biksbz5yJiYobj1vLG89cixyPW4pLF8ucHJlY2lzaW9uKGcpKTpbW2Usb10sW3Qscl1dfSxfLnN0ZXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/Xy5zdGVwTWFqb3IodCkuc3RlcE1pbm9yKHQpOl8uc3RlcE1pbm9yKCl9LF8uc3RlcE1ham9yPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPSt0WzBdLG09K3RbMV0sXyk6W2YsbV19LF8uc3RlcE1pbm9yPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPSt0WzBdLHA9K3RbMV0sXyk6W2QscF19LF8ucHJlY2lzaW9uPWZ1bmN0aW9uKGQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPStkLGw9UCQobyxyLDkwKSxjPU4kKGUsdCxnKSx1PVAkKHMsYSw5MCksaD1OJChpLG4sZyksXyk6Z30sXy5leHRlbnRNYWpvcihbWy0xODAsLTg5Ljk5OTk5OV0sWzE4MCw4OS45OTk5OTldXSkuZXh0ZW50TWlub3IoW1stMTgwLC04MC4wMDAwMDFdLFsxODAsODAuMDAwMDAxXV0pfWZ1bmN0aW9uIFIkKHQpe3JldHVybiB0fXZhciBPJCx6JCxEJCxCJCxIJD1GcSgpLEYkPUZxKCksViQ9e3BvaW50OmRZLGxpbmVTdGFydDpkWSxsaW5lRW5kOmRZLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe1YkLmxpbmVTdGFydD1VJCxWJC5saW5lRW5kPVckfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7ViQubGluZVN0YXJ0PVYkLmxpbmVFbmQ9ViQucG9pbnQ9ZFksSCQuYWRkKFpxKEYkKSksRiQucmVzZXQoKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9SCQvMjtyZXR1cm4gSCQucmVzZXQoKSx0fX07ZnVuY3Rpb24gVSQoKXtWJC5wb2ludD1qJH1mdW5jdGlvbiBqJCh0LGUpe1YkLnBvaW50PUckLE8kPUQkPXQseiQ9QiQ9ZX1mdW5jdGlvbiBHJCh0LGUpe0YkLmFkZChCJCp0LUQkKmUpLEQkPXQsQiQ9ZX1mdW5jdGlvbiBXJCgpe0ckKE8kLHokKX12YXIgcSQsWSQsWCQsJCQsSyQ9MS8wLFokPUskLEokPS1LJCxRJD1KJCx0Sz17cG9pbnQ6ZnVuY3Rpb24gZUsodCxlKXt0PEskJiYoSyQ9dCksdD5KJCYmKEokPXQpLGU8WiQmJihaJD1lKSxlPlEkJiYoUSQ9ZSl9LGxpbmVTdGFydDpkWSxsaW5lRW5kOmRZLHBvbHlnb25TdGFydDpkWSxwb2x5Z29uRW5kOmRZLHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVtbSyQsWiRdLFtKJCxRJF1dO3JldHVybiBKJD1RJD0tKFokPUskPTEvMCksdH19LG5LPTAsaUs9MCxySz0wLG9LPTAsYUs9MCxzSz0wLGxLPTAsY0s9MCx1Sz0wLGhLPXtwb2ludDpkSyxsaW5lU3RhcnQ6cEssbGluZUVuZDpnSyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtoSy5saW5lU3RhcnQ9X0ssaEsubGluZUVuZD15S30scG9seWdvbkVuZDpmdW5jdGlvbigpe2hLLnBvaW50PWRLLGhLLmxpbmVTdGFydD1wSyxoSy5saW5lRW5kPWdLfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD11Sz9bbEsvdUssY0svdUtdOnNLP1tvSy9zSyxhSy9zS106cks/W25LL3JLLGlLL3JLXTpbTmFOLE5hTl07cmV0dXJuIG5LPWlLPXJLPW9LPWFLPXNLPWxLPWNLPXVLPTAsdH19O2Z1bmN0aW9uIGRLKHQsZSl7bksrPXQsaUsrPWUsKytyS31mdW5jdGlvbiBwSygpe2hLLnBvaW50PWZLfWZ1bmN0aW9uIGZLKHQsZSl7aEsucG9pbnQ9bUssZEsoWCQ9dCwkJD1lKX1mdW5jdGlvbiBtSyh0LGUpe3ZhciBuPXQtWCQsaT1lLSQkLHI9c1kobipuK2kqaSk7b0srPXIqKFgkK3QpLzIsYUsrPXIqKCQkK2UpLzIsc0srPXIsZEsoWCQ9dCwkJD1lKX1mdW5jdGlvbiBnSygpe2hLLnBvaW50PWRLfWZ1bmN0aW9uIF9LKCl7aEsucG9pbnQ9dkt9ZnVuY3Rpb24geUsoKXtiSyhxJCxZJCl9ZnVuY3Rpb24gdksodCxlKXtoSy5wb2ludD1iSyxkSyhxJD1YJD10LFkkPSQkPWUpfWZ1bmN0aW9uIGJLKHQsZSl7dmFyIG49dC1YJCxpPWUtJCQscj1zWShuKm4raSppKTtvSys9ciooWCQrdCkvMixhSys9ciooJCQrZSkvMixzSys9cixsSys9KHI9JCQqdC1YJCplKSooWCQrdCksY0srPXIqKCQkK2UpLHVLKz0zKnIsZEsoWCQ9dCwkJD1lKX1mdW5jdGlvbiB4Syh0KXt0aGlzLl9jb250ZXh0PXR9eEsucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmFkaXVzPXQsdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKSx0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpO2JyZWFrO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5tb3ZlVG8odCt0aGlzLl9yYWRpdXMsZSksdGhpcy5fY29udGV4dC5hcmModCxlLHRoaXMuX3JhZGl1cywwLFhxKX19LHJlc3VsdDpkWX07dmFyIHdLLFNLLE1LLEVLLFRLLENLPUZxKCksQUs9e3BvaW50OmRZLGxpbmVTdGFydDpmdW5jdGlvbigpe0FLLnBvaW50PWtLfSxsaW5lRW5kOmZ1bmN0aW9uKCl7d0smJkxLKFNLLE1LKSxBSy5wb2ludD1kWX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7d0s9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt3Sz1udWxsfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD0rQ0s7cmV0dXJuIENLLnJlc2V0KCksdH19O2Z1bmN0aW9uIGtLKHQsZSl7QUsucG9pbnQ9TEssU0s9RUs9dCxNSz1USz1lfWZ1bmN0aW9uIExLKHQsZSl7Q0suYWRkKHNZKChFSy09dCkqRUsrKFRLLT1lKSpUSykpLEVLPXQsVEs9ZX1mdW5jdGlvbiBQSygpe3RoaXMuX3N0cmluZz1bXX1mdW5jdGlvbiBOSyh0KXtyZXR1cm4ibTAsIit0KyJhIit0KyIsIit0KyIgMCAxLDEgMCwiKy0yKnQrImEiK3QrIiwiK3QrIiAwIDEsMSAwLCIrMip0KyJ6In1mdW5jdGlvbiBJSyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49bmV3IFJLO2Zvcih2YXIgaSBpbiB0KW5baV09dFtpXTtyZXR1cm4gbi5zdHJlYW09ZSxufX1mdW5jdGlvbiBSSygpe31mdW5jdGlvbiBPSyh0LGUsbil7dmFyIGk9dC5jbGlwRXh0ZW50JiZ0LmNsaXBFeHRlbnQoKTtyZXR1cm4gdC5zY2FsZSgxNTApLnRyYW5zbGF0ZShbMCwwXSksbnVsbCE9aSYmdC5jbGlwRXh0ZW50KG51bGwpLHlZKG4sdC5zdHJlYW0odEspKSxlKHRLLnJlc3VsdCgpKSxudWxsIT1pJiZ0LmNsaXBFeHRlbnQoaSksdH1mdW5jdGlvbiB6Syh0LGUsbil7cmV0dXJuIE9LKHQsKGZ1bmN0aW9uKG4pe3ZhciBpPWVbMV1bMF0tZVswXVswXSxyPWVbMV1bMV0tZVswXVsxXSxvPU1hdGgubWluKGkvKG5bMV1bMF0tblswXVswXSksci8oblsxXVsxXS1uWzBdWzFdKSksYT0rZVswXVswXSsoaS1vKihuWzFdWzBdK25bMF1bMF0pKS8yLHM9K2VbMF1bMV0rKHItbyooblsxXVsxXStuWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCpvKS50cmFuc2xhdGUoW2Esc10pfSksbil9ZnVuY3Rpb24gREsodCxlLG4pe3JldHVybiB6Syh0LFtbMCwwXSxlXSxuKX1mdW5jdGlvbiBCSyh0LGUsbil7cmV0dXJuIE9LKHQsKGZ1bmN0aW9uKG4pe3ZhciBpPStlLHI9aS8oblsxXVswXS1uWzBdWzBdKSxvPShpLXIqKG5bMV1bMF0rblswXVswXSkpLzIsYT0tcipuWzBdWzFdO3Quc2NhbGUoMTUwKnIpLnRyYW5zbGF0ZShbbyxhXSl9KSxuKX1mdW5jdGlvbiBISyh0LGUsbil7cmV0dXJuIE9LKHQsKGZ1bmN0aW9uKG4pe3ZhciBpPStlLHI9aS8oblsxXVsxXS1uWzBdWzFdKSxvPS1yKm5bMF1bMF0sYT0oaS1yKihuWzFdWzFdK25bMF1bMV0pKS8yO3Quc2NhbGUoMTUwKnIpLnRyYW5zbGF0ZShbbyxhXSl9KSxuKX1QSy5wcm90b3R5cGU9e19yYWRpdXM6NC41LF9jaXJjbGU6TksoNC41KSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4odD0rdCkhPT10aGlzLl9yYWRpdXMmJih0aGlzLl9yYWRpdXM9dCx0aGlzLl9jaXJjbGU9bnVsbCksdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fc3RyaW5nLnB1c2goIloiKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fc3RyaW5nLnB1c2goIk0iLHQsIiwiLGUpLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3N0cmluZy5wdXNoKCJMIix0LCIsIixlKTticmVhaztkZWZhdWx0Om51bGw9PXRoaXMuX2NpcmNsZSYmKHRoaXMuX2NpcmNsZT1OSyh0aGlzLl9yYWRpdXMpKSx0aGlzLl9zdHJpbmcucHVzaCgiTSIsdCwiLCIsZSx0aGlzLl9jaXJjbGUpfX0scmVzdWx0OmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RyaW5nLmxlbmd0aCl7dmFyIHQ9dGhpcy5fc3RyaW5nLmpvaW4oIiIpO3JldHVybiB0aGlzLl9zdHJpbmc9W10sdH1yZXR1cm4gbnVsbH19LFJLLnByb3RvdHlwZT17Y29uc3RydWN0b3I6UksscG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLnN0cmVhbS5wb2ludCh0LGUpfSxzcGhlcmU6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvbkVuZCgpfX07dmFyIEZLPXRZKDMwKktxKTtmdW5jdGlvbiBWSyh0LGUpe3JldHVybitlPyhmdW5jdGlvbiBuKHQsZSl7ZnVuY3Rpb24gbihpLHIsbyxhLHMsbCxjLHUsaCxkLHAsZixtLGcpe3ZhciBfPWMtaSx5PXUtcix2PV8qXyt5Knk7aWYodj40KmUmJm0tLSl7dmFyIGI9YStkLHg9cytwLHc9bCtmLFM9c1koYipiK3gqeCt3KncpLE09dVkody89UyksRT1acShacSh3KS0xKTxHcXx8WnEoby1oKTxHcT8obytoKS8yOlFxKHgsYiksVD10KEUsTSksQz1UWzBdLEE9VFsxXSxrPUMtaSxMPUEtcixQPXkqay1fKkw7KFAqUC92PmV8fFpxKChfKmsreSpMKS92LS41KT4uM3x8YSpkK3MqcCtsKmY8RkspJiYobihpLHIsbyxhLHMsbCxDLEEsRSxiLz1TLHgvPVMsdyxtLGcpLGcucG9pbnQoQyxBKSxuKEMsQSxFLGIseCx3LGMsdSxoLGQscCxmLG0sZykpfX1yZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGkscixvLGEscyxsLGMsdSxoLGQscCxmLG09e3BvaW50OmcsbGluZVN0YXJ0Ol8sbGluZUVuZDp2LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2UucG9seWdvblN0YXJ0KCksbS5saW5lU3RhcnQ9Yn0scG9seWdvbkVuZDpmdW5jdGlvbigpe2UucG9seWdvbkVuZCgpLG0ubGluZVN0YXJ0PV99fTtmdW5jdGlvbiBnKG4saSl7bj10KG4saSksZS5wb2ludChuWzBdLG5bMV0pfWZ1bmN0aW9uIF8oKXt1PU5hTixtLnBvaW50PXksZS5saW5lU3RhcnQoKX1mdW5jdGlvbiB5KGkscil7dmFyIG89TlkoW2kscl0pLGE9dChpLHIpO24odSxoLGMsZCxwLGYsdT1hWzBdLGg9YVsxXSxjPWksZD1vWzBdLHA9b1sxXSxmPW9bMl0sMTYsZSksZS5wb2ludCh1LGgpfWZ1bmN0aW9uIHYoKXttLnBvaW50PWcsZS5saW5lRW5kKCl9ZnVuY3Rpb24gYigpe18oKSxtLnBvaW50PXgsbS5saW5lRW5kPXd9ZnVuY3Rpb24geCh0LGUpe3koaT10LGUpLHI9dSxvPWgsYT1kLHM9cCxsPWYsbS5wb2ludD15fWZ1bmN0aW9uIHcoKXtuKHUsaCxjLGQscCxmLHIsbyxpLGEscyxsLDE2LGUpLG0ubGluZUVuZD12LHYoKX1yZXR1cm4gbX19KSh0LGUpOihmdW5jdGlvbiBpKHQpe3JldHVybiBJSyh7cG9pbnQ6ZnVuY3Rpb24oZSxuKXtlPXQoZSxuKSx0aGlzLnN0cmVhbS5wb2ludChlWzBdLGVbMV0pfX0pfSkodCl9dmFyIFVLPUlLKHtwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuc3RyZWFtLnBvaW50KHQqS3EsZSpLcSl9fSk7ZnVuY3Rpb24gaksodCl7cmV0dXJuIEdLKChmdW5jdGlvbigpe3JldHVybiB0fSkpKCl9ZnVuY3Rpb24gR0sodCl7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaD0xNTAsZD00ODAscD0yNTAsZj0wLG09MCxnPTAsXz0wLHk9MCx2PW51bGwsYj1pJCx4PW51bGwsdz1SJCxTPS41LE09VksoQyxTKTtmdW5jdGlvbiBFKHQpe3JldHVyblsodD1vKHRbMF0qS3EsdFsxXSpLcSkpWzBdKmgrbixpLXRbMV0qaF19ZnVuY3Rpb24gVCh0KXtyZXR1cm4odD1vLmludmVydCgodFswXS1uKS9oLChpLXRbMV0pL2gpKSYmW3RbMF0qJHEsdFsxXSokcV19ZnVuY3Rpb24gQyh0LHIpe3JldHVyblsodD1lKHQscikpWzBdKmgrbixpLXRbMV0qaF19ZnVuY3Rpb24gQSgpe289Ulgocj16WChnLF8seSksZSk7dmFyIHQ9ZShmLG0pO3JldHVybiBuPWQtdFswXSpoLGk9cCt0WzFdKmgsaygpfWZ1bmN0aW9uIGsoKXtyZXR1cm4gYz11PW51bGwsRX1yZXR1cm4gRS5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuIGMmJnU9PT10P2M6Yz1VSygoZnVuY3Rpb24gZSh0KXtyZXR1cm4gSUsoe3BvaW50OmZ1bmN0aW9uKGUsbil7dmFyIGk9dChlLG4pO3JldHVybiB0aGlzLnN0cmVhbS5wb2ludChpWzBdLGlbMV0pfX0pfSkocikoYihNKHcodT10KSkpKSl9LEUucHJlY2xpcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj10LHY9dm9pZCAwLGsoKSk6Yn0sRS5wb3N0Y2xpcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz10LHg9YT1zPWw9bnVsbCxrKCkpOnd9LEUuY2xpcEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPSt0P2EkKHY9dCpLcSk6KHY9bnVsbCxpJCksaygpKTp2KiRxfSxFLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHc9bnVsbD09dD8oeD1hPXM9bD1udWxsLFIkKTpjJCh4PSt0WzBdWzBdLGE9K3RbMF1bMV0scz0rdFsxXVswXSxsPSt0WzFdWzFdKSxrKCkpOm51bGw9PXg/bnVsbDpbW3gsYV0sW3MsbF1dfSxFLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSt0LEEoKSk6aH0sRS50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9K3RbMF0scD0rdFsxXSxBKCkpOltkLHBdfSxFLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj10WzBdJTM2MCpLcSxtPXRbMV0lMzYwKktxLEEoKSk6W2YqJHEsbSokcV19LEUucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPXRbMF0lMzYwKktxLF89dFsxXSUzNjAqS3EseT10Lmxlbmd0aD4yP3RbMl0lMzYwKktxOjAsQSgpKTpbZyokcSxfKiRxLHkqJHFdfSxFLnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTT1WSyhDLFM9dCp0KSxrKCkpOnNZKFMpfSxFLmZpdEV4dGVudD1mdW5jdGlvbih0LGUpe3JldHVybiB6SyhFLHQsZSl9LEUuZml0U2l6ZT1mdW5jdGlvbih0LGUpe3JldHVybiBESyhFLHQsZSl9LEUuZml0V2lkdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gQksoRSx0LGUpfSxFLmZpdEhlaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiBISyhFLHQsZSl9LGZ1bmN0aW9uKCl7cmV0dXJuIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksRS5pbnZlcnQ9ZS5pbnZlcnQmJlQsQSgpfX1mdW5jdGlvbiBXSyh0KXt2YXIgZT0wLG49V3EvMyxpPUdLKHQpLHI9aShlLG4pO3JldHVybiByLnBhcmFsbGVscz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9pKGU9dFswXSpLcSxuPXRbMV0qS3EpOltlKiRxLG4qJHFdfSxyfWZ1bmN0aW9uIHFLKHQsZSl7dmFyIG49b1kodCksaT0obitvWShlKSkvMjtpZihacShpKTxHcSlyZXR1cm4oZnVuY3Rpb24gcih0KXt2YXIgZT10WSh0KTtmdW5jdGlvbiBuKHQsbil7cmV0dXJuW3QqZSxvWShuKS9lXX1yZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bdC9lLHVZKG4qZSldfSxufSkodCk7dmFyIG89MStuKigyKmktbiksYT1zWShvKS9pO2Z1bmN0aW9uIHModCxlKXt2YXIgbj1zWShvLTIqaSpvWShlKSkvaTtyZXR1cm5bbipvWSh0Kj1pKSxhLW4qdFkodCldfXJldHVybiBzLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBuPWEtZTtyZXR1cm5bUXEodCxacShuKSkvaSphWShuKSx1WSgoby0odCp0K24qbikqaSppKS8oMippKSldfSxzfWZ1bmN0aW9uIFlLKCl7cmV0dXJuIFdLKHFLKS5zY2FsZSgxNTUuNDI0KS5jZW50ZXIoWzAsMzMuNjQ0Ml0pfWZ1bmN0aW9uIFhLKCl7cmV0dXJuIFlLKCkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKS50cmFuc2xhdGUoWzQ4MCwyNTBdKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSl9ZnVuY3Rpb24gJEsodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9dFkoZSkscj10WShuKSxvPXQoaSpyKTtyZXR1cm5bbypyKm9ZKGUpLG8qb1kobildfX1mdW5jdGlvbiBLSyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgaT1zWShlKmUrbipuKSxyPXQoaSksbz1vWShyKSxhPXRZKHIpO3JldHVybltRcShlKm8saSphKSx1WShpJiZuKm8vaSldfX12YXIgWks9JEsoKGZ1bmN0aW9uKHQpe3JldHVybiBzWSgyLygxK3QpKX0pKTtaSy5pbnZlcnQ9S0soKGZ1bmN0aW9uKHQpe3JldHVybiAyKnVZKHQvMil9KSk7dmFyIEpLPSRLKChmdW5jdGlvbih0KXtyZXR1cm4odD1jWSh0KSkmJnQvb1kodCl9KSk7ZnVuY3Rpb24gUUsodCxlKXtyZXR1cm5bdCxpWShsWSgocXErZSkvMikpXX1mdW5jdGlvbiB0Wih0KXt2YXIgZSxuLGkscj1qSyh0KSxvPXIuY2VudGVyLGE9ci5zY2FsZSxzPXIudHJhbnNsYXRlLGw9ci5jbGlwRXh0ZW50LGM9bnVsbDtmdW5jdGlvbiB1KCl7dmFyIG89V3EqYSgpLHM9cihGWChyLnJvdGF0ZSgpKS5pbnZlcnQoWzAsMF0pKTtyZXR1cm4gbChudWxsPT1jP1tbc1swXS1vLHNbMV0tb10sW3NbMF0rbyxzWzFdK29dXTp0PT09UUs/W1tNYXRoLm1heChzWzBdLW8sYyksZV0sW01hdGgubWluKHNbMF0rbyxuKSxpXV06W1tjLE1hdGgubWF4KHNbMV0tbyxlKV0sW24sTWF0aC5taW4oc1sxXStvLGkpXV0pfXJldHVybiByLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhKHQpLHUoKSk6YSgpfSxyLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocyh0KSx1KCkpOnMoKX0sci5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG8odCksdSgpKTpvKCl9LHIuY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9jPWU9bj1pPW51bGw6KGM9K3RbMF1bMF0sZT0rdFswXVsxXSxuPSt0WzFdWzBdLGk9K3RbMV1bMV0pLHUoKSk6bnVsbD09Yz9udWxsOltbYyxlXSxbbixpXV19LHUoKX1mdW5jdGlvbiBlWih0KXtyZXR1cm4gbFkoKHFxK3QpLzIpfWZ1bmN0aW9uIG5aKHQsZSl7dmFyIG49dFkodCksaT10PT09ZT9vWSh0KTppWShuL3RZKGUpKS9pWShlWihlKS9lWih0KSkscj1uKnJZKGVaKHQpLGkpL2k7aWYoIWkpcmV0dXJuIFFLO2Z1bmN0aW9uIG8odCxlKXtyPjA/ZTwtcXErR3EmJihlPS1xcStHcSk6ZT5xcS1HcSYmKGU9cXEtR3EpO3ZhciBuPXIvclkoZVooZSksaSk7cmV0dXJuW24qb1koaSp0KSxyLW4qdFkoaSp0KV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ci1lLG89YVkoaSkqc1kodCp0K24qbik7cmV0dXJuW1FxKHQsWnEobikpL2kqYVkobiksMipKcShyWShyL28sMS9pKSktcXFdfSxvfWZ1bmN0aW9uIGlaKHQsZSl7cmV0dXJuW3QsZV19ZnVuY3Rpb24gcloodCxlKXt2YXIgbj10WSh0KSxpPXQ9PT1lP29ZKHQpOihuLXRZKGUpKS8oZS10KSxyPW4vaSt0O2lmKFpxKGkpPEdxKXJldHVybiBpWjtmdW5jdGlvbiBvKHQsZSl7dmFyIG49ci1lLG89aSp0O3JldHVybltuKm9ZKG8pLHItbip0WShvKV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ci1lO3JldHVybltRcSh0LFpxKG4pKS9pKmFZKG4pLHItYVkoaSkqc1kodCp0K24qbildfSxvfWZ1bmN0aW9uIG9aKHQsZSl7dmFyIG49dFkoZSksaT10WSh0KSpuO3JldHVybltuKm9ZKHQpL2ksb1koZSkvaV19ZnVuY3Rpb24gYVoodCxlLG4saSl7cmV0dXJuIDE9PT10JiYxPT09ZSYmMD09PW4mJjA9PT1pP1IkOklLKHtwb2ludDpmdW5jdGlvbihyLG8pe3RoaXMuc3RyZWFtLnBvaW50KHIqdCtuLG8qZStpKX19KX1mdW5jdGlvbiBzWih0LGUpe3ZhciBuPWUqZSxpPW4qbjtyZXR1cm5bdCooLjg3MDctLjEzMTk3OSpuK2kqKGkqKC4wMDM5NzEqbi0uMDAxNTI5KmkpLS4wMTM3OTEpKSxlKigxLjAwNzIyNituKiguMDE1MDg1K2kqKC4wMjg4NzQqbi0uMDQ0NDc1LS4wMDU5MTYqaSkpKV19ZnVuY3Rpb24gbFoodCxlKXtyZXR1cm5bdFkoZSkqb1kodCksb1koZSldfWZ1bmN0aW9uIGNaKHQsZSl7dmFyIG49dFkoZSksaT0xK3RZKHQpKm47cmV0dXJuW24qb1kodCkvaSxvWShlKS9pXX1mdW5jdGlvbiB1Wih0LGUpe3JldHVybltpWShsWSgocXErZSkvMikpLC10XX1mdW5jdGlvbiBoWih0LGUpe3JldHVybiB0LnBhcmVudD09PWUucGFyZW50PzE6Mn1mdW5jdGlvbiBkWih0LGUpe3JldHVybiB0K2UueH1mdW5jdGlvbiBwWih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUueSl9ZnVuY3Rpb24gZloodCl7dmFyIGU9MCxuPXQuY2hpbGRyZW4saT1uJiZuLmxlbmd0aDtpZihpKWZvcig7LS1pPj0wOyllKz1uW2ldLnZhbHVlO2Vsc2UgZT0xO3QudmFsdWU9ZX1mdW5jdGlvbiBtWih0LGUpe3ZhciBuLGkscixvLGEscz1uZXcgdloodCksbD0rdC52YWx1ZSYmKHMudmFsdWU9dC52YWx1ZSksYz1bc107Zm9yKG51bGw9PWUmJihlPWdaKTtuPWMucG9wKCk7KWlmKGwmJihuLnZhbHVlPStuLmRhdGEudmFsdWUpLChyPWUobi5kYXRhKSkmJihhPXIubGVuZ3RoKSlmb3Iobi5jaGlsZHJlbj1uZXcgQXJyYXkoYSksbz1hLTE7bz49MDstLW8pYy5wdXNoKGk9bi5jaGlsZHJlbltvXT1uZXcgdloocltvXSkpLGkucGFyZW50PW4saS5kZXB0aD1uLmRlcHRoKzE7cmV0dXJuIHMuZWFjaEJlZm9yZSh5Wil9ZnVuY3Rpb24gZ1oodCl7cmV0dXJuIHQuY2hpbGRyZW59ZnVuY3Rpb24gX1oodCl7dC5kYXRhPXQuZGF0YS5kYXRhfWZ1bmN0aW9uIHlaKHQpe3ZhciBlPTA7ZG97dC5oZWlnaHQ9ZX13aGlsZSgodD10LnBhcmVudCkmJnQuaGVpZ2h0PCsrZSl9ZnVuY3Rpb24gdloodCl7dGhpcy5kYXRhPXQsdGhpcy5kZXB0aD10aGlzLmhlaWdodD0wLHRoaXMucGFyZW50PW51bGx9SksuaW52ZXJ0PUtLKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSxRSy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdCwyKkpxKG5ZKGUpKS1xcV19LGlaLmludmVydD1pWixvWi5pbnZlcnQ9S0soSnEpLHNaLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBuLGk9ZSxyPTI1O2Rve3ZhciBvPWkqaSxhPW8qbztpLT1uPShpKigxLjAwNzIyNitvKiguMDE1MDg1K2EqKC4wMjg4NzQqby0uMDQ0NDc1LS4wMDU5MTYqYSkpKS1lKS8oMS4wMDcyMjYrbyooLjA0NTI1NSthKiguMjU5ODY2Km8tLjMxMTMyNS0uMDA1OTE2KjExKmEpKSl9d2hpbGUoWnEobik+R3EmJi0tcj4wKTtyZXR1cm5bdC8oLjg3MDcrKG89aSppKSoobyoobypvKm8qKC4wMDM5NzEtLjAwMTUyOSpvKS0uMDEzNzkxKS0uMTMxOTc5KSksaV19LGxaLmludmVydD1LSyh1WSksY1ouaW52ZXJ0PUtLKChmdW5jdGlvbih0KXtyZXR1cm4gMipKcSh0KX0pKSx1Wi5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bLWUsMipKcShuWSh0KSktcXFdfSx2Wi5wcm90b3R5cGU9bVoucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp2Wixjb3VudDpmdW5jdGlvbiBiWigpe3JldHVybiB0aGlzLmVhY2hBZnRlcihmWil9LGVhY2g6ZnVuY3Rpb24geFoodCl7dmFyIGUsbixpLHIsbz10aGlzLGE9W29dO2Rve2ZvcihlPWEucmV2ZXJzZSgpLGE9W107bz1lLnBvcCgpOylpZih0KG8pLG49by5jaGlsZHJlbilmb3IoaT0wLHI9bi5sZW5ndGg7aTxyOysraSlhLnB1c2gobltpXSl9d2hpbGUoYS5sZW5ndGgpO3JldHVybiB0aGlzfSxlYWNoQWZ0ZXI6ZnVuY3Rpb24gd1oodCl7Zm9yKHZhciBlLG4saSxyPXRoaXMsbz1bcl0sYT1bXTtyPW8ucG9wKCk7KWlmKGEucHVzaChyKSxlPXIuY2hpbGRyZW4pZm9yKG49MCxpPWUubGVuZ3RoO248aTsrK24pby5wdXNoKGVbbl0pO2Zvcig7cj1hLnBvcCgpOyl0KHIpO3JldHVybiB0aGlzfSxlYWNoQmVmb3JlOmZ1bmN0aW9uIFNaKHQpe2Zvcih2YXIgZSxuLGk9dGhpcyxyPVtpXTtpPXIucG9wKCk7KWlmKHQoaSksZT1pLmNoaWxkcmVuKWZvcihuPWUubGVuZ3RoLTE7bj49MDstLW4pci5wdXNoKGVbbl0pO3JldHVybiB0aGlzfSxzdW06ZnVuY3Rpb24gTVoodCl7cmV0dXJuIHRoaXMuZWFjaEFmdGVyKChmdW5jdGlvbihlKXtmb3IodmFyIG49K3QoZS5kYXRhKXx8MCxpPWUuY2hpbGRyZW4scj1pJiZpLmxlbmd0aDstLXI+PTA7KW4rPWlbcl0udmFsdWU7ZS52YWx1ZT1ufSkpfSxzb3J0OmZ1bmN0aW9uIEVaKHQpe3JldHVybiB0aGlzLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW4mJmUuY2hpbGRyZW4uc29ydCh0KX0pKX0scGF0aDpmdW5jdGlvbiBUWih0KXtmb3IodmFyIGU9dGhpcyxuPShmdW5jdGlvbiBpKHQsZSl7aWYodD09PWUpcmV0dXJuIHQ7dmFyIG49dC5hbmNlc3RvcnMoKSxpPWUuYW5jZXN0b3JzKCkscj1udWxsO2Zvcih0PW4ucG9wKCksZT1pLnBvcCgpO3Q9PT1lOylyPXQsdD1uLnBvcCgpLGU9aS5wb3AoKTtyZXR1cm4gcn0pKGUsdCkscj1bZV07ZSE9PW47KXIucHVzaChlPWUucGFyZW50KTtmb3IodmFyIG89ci5sZW5ndGg7dCE9PW47KXIuc3BsaWNlKG8sMCx0KSx0PXQucGFyZW50O3JldHVybiByfSxhbmNlc3RvcnM6ZnVuY3Rpb24gQ1ooKXtmb3IodmFyIHQ9dGhpcyxlPVt0XTt0PXQucGFyZW50OyllLnB1c2godCk7cmV0dXJuIGV9LGRlc2NlbmRhbnRzOmZ1bmN0aW9uIEFaKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oZSl7dC5wdXNoKGUpfSkpLHR9LGxlYXZlczpmdW5jdGlvbiBrWigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW58fHQucHVzaChlKX0pKSx0fSxsaW5rczpmdW5jdGlvbiBMWigpe3ZhciB0PXRoaXMsZT1bXTtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbihuKXtuIT09dCYmZS5wdXNoKHtzb3VyY2U6bi5wYXJlbnQsdGFyZ2V0Om59KX0pKSxlfSxjb3B5OmZ1bmN0aW9uIFBaKCl7cmV0dXJuIG1aKHRoaXMpLmVhY2hCZWZvcmUoX1opfX07dmFyIE5aPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBJWih0KXtmb3IodmFyIGUsbixpPTAscj0odD0oZnVuY3Rpb24gbyh0KXtmb3IodmFyIGUsbixpPXQubGVuZ3RoO2k7KW49TWF0aC5yYW5kb20oKSppLS18MCxlPXRbaV0sdFtpXT10W25dLHRbbl09ZTtyZXR1cm4gdH0pKE5aLmNhbGwodCkpKS5sZW5ndGgsYT1bXTtpPHI7KWU9dFtpXSxuJiZ6WihuLGUpPysraToobj1CWihhPVJaKGEsZSkpLGk9MCk7cmV0dXJuIG59ZnVuY3Rpb24gUloodCxlKXt2YXIgbixpO2lmKERaKGUsdCkpcmV0dXJuW2VdO2ZvcihuPTA7bjx0Lmxlbmd0aDsrK24paWYoT1ooZSx0W25dKSYmRFooSFoodFtuXSxlKSx0KSlyZXR1cm5bdFtuXSxlXTtmb3Iobj0wO248dC5sZW5ndGgtMTsrK24pZm9yKGk9bisxO2k8dC5sZW5ndGg7KytpKWlmKE9aKEhaKHRbbl0sdFtpXSksZSkmJk9aKEhaKHRbbl0sZSksdFtpXSkmJk9aKEhaKHRbaV0sZSksdFtuXSkmJkRaKEZaKHRbbl0sdFtpXSxlKSx0KSlyZXR1cm5bdFtuXSx0W2ldLGVdO3Rocm93IG5ldyBFcnJvcn1mdW5jdGlvbiBPWih0LGUpe3ZhciBuPXQuci1lLnIsaT1lLngtdC54LHI9ZS55LXQueTtyZXR1cm4gbjwwfHxuKm48aSppK3Iqcn1mdW5jdGlvbiB6Wih0LGUpe3ZhciBuPXQuci1lLnIrMWUtNixpPWUueC10Lngscj1lLnktdC55O3JldHVybiBuPjAmJm4qbj5pKmkrcipyfWZ1bmN0aW9uIERaKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDsrK24paWYoIXpaKHQsZVtuXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gQloodCl7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDE6cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJue3g6dC54LHk6dC55LHI6dC5yfX0pKHRbMF0pO2Nhc2UgMjpyZXR1cm4gSFoodFswXSx0WzFdKTtjYXNlIDM6cmV0dXJuIEZaKHRbMF0sdFsxXSx0WzJdKX19ZnVuY3Rpb24gSFoodCxlKXt2YXIgbj10LngsaT10Lnkscj10LnIsbz1lLngsYT1lLnkscz1lLnIsbD1vLW4sYz1hLWksdT1zLXIsaD1NYXRoLnNxcnQobCpsK2MqYyk7cmV0dXJue3g6KG4rbytsL2gqdSkvMix5OihpK2ErYy9oKnUpLzIscjooaCtyK3MpLzJ9fWZ1bmN0aW9uIEZaKHQsZSxuKXt2YXIgaT10Lngscj10Lnksbz10LnIsYT1lLngscz1lLnksbD1lLnIsYz1uLngsdT1uLnksaD1uLnIsZD1pLWEscD1pLWMsZj1yLXMsbT1yLXUsZz1sLW8sXz1oLW8seT1pKmkrcipyLW8qbyx2PXktYSphLXMqcytsKmwsYj15LWMqYy11KnUraCpoLHg9cCpmLWQqbSx3PShmKmItbSp2KS8oMip4KS1pLFM9KG0qZy1mKl8pL3gsTT0ocCp2LWQqYikvKDIqeCktcixFPShkKl8tcCpnKS94LFQ9UypTK0UqRS0xLEM9Mioobyt3KlMrTSpFKSxBPXcqdytNKk0tbypvLGs9LShUPyhDK01hdGguc3FydChDKkMtNCpUKkEpKS8oMipUKTpBL0MpO3JldHVybnt4OmkrdytTKmsseTpyK00rRSprLHI6a319ZnVuY3Rpb24gVloodCxlLG4pe3ZhciBpPXQueCxyPXQueSxvPWUucituLnIsYT10LnIrbi5yLHM9ZS54LWksbD1lLnktcixjPXMqcytsKmw7aWYoYyl7dmFyIHU9LjUrKChhKj1hKS0obyo9bykpLygyKmMpLGg9TWF0aC5zcXJ0KE1hdGgubWF4KDAsMipvKihhK2MpLShhLT1jKSphLW8qbykpLygyKmMpO24ueD1pK3UqcytoKmwsbi55PXIrdSpsLWgqc31lbHNlIG4ueD1pK2Esbi55PXJ9ZnVuY3Rpb24gVVoodCxlKXt2YXIgbj1lLngtdC54LGk9ZS55LXQueSxyPXQucitlLnI7cmV0dXJuIHIqci0xZS02Pm4qbitpKml9ZnVuY3Rpb24galoodCl7dmFyIGU9dC5fLG49dC5uZXh0Ll8saT1lLnIrbi5yLHI9KGUueCpuLnIrbi54KmUucikvaSxvPShlLnkqbi5yK24ueSplLnIpL2k7cmV0dXJuIHIqcitvKm99ZnVuY3Rpb24gR1oodCl7dGhpcy5fPXQsdGhpcy5uZXh0PW51bGwsdGhpcy5wcmV2aW91cz1udWxsfWZ1bmN0aW9uIFdaKHQpe2lmKCEocj10Lmxlbmd0aCkpcmV0dXJuIDA7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaDtpZigoZT10WzBdKS54PTAsZS55PTAsIShyPjEpKXJldHVybiBlLnI7aWYoZS54PS0obj10WzFdKS5yLG4ueD1lLnIsbi55PTAsIShyPjIpKXJldHVybiBlLnIrbi5yO1ZaKG4sZSxpPXRbMl0pLGU9bmV3IEdaKGUpLG49bmV3IEdaKG4pLGk9bmV3IEdaKGkpLGUubmV4dD1pLnByZXZpb3VzPW4sbi5uZXh0PWUucHJldmlvdXM9aSxpLm5leHQ9bi5wcmV2aW91cz1lO3Q6Zm9yKHM9MztzPHI7KytzKXtWWihlLl8sbi5fLGk9dFtzXSksaT1uZXcgR1ooaSksbD1uLm5leHQsYz1lLnByZXZpb3VzLHU9bi5fLnIsaD1lLl8ucjtkb3tpZih1PD1oKXtpZihVWihsLl8saS5fKSl7ZS5uZXh0PW49bCxuLnByZXZpb3VzPWUsLS1zO2NvbnRpbnVlIHR9dSs9bC5fLnIsbD1sLm5leHR9ZWxzZXtpZihVWihjLl8saS5fKSl7KGU9YykubmV4dD1uLG4ucHJldmlvdXM9ZSwtLXM7Y29udGludWUgdH1oKz1jLl8ucixjPWMucHJldmlvdXN9fXdoaWxlKGwhPT1jLm5leHQpO2ZvcihpLnByZXZpb3VzPWUsaS5uZXh0PW4sZS5uZXh0PW4ucHJldmlvdXM9bj1pLG89alooZSk7KGk9aS5uZXh0KSE9PW47KShhPWpaKGkpKTxvJiYoZT1pLG89YSk7bj1lLm5leHR9Zm9yKGU9W24uX10saT1uOyhpPWkubmV4dCkhPT1uOyllLnB1c2goaS5fKTtmb3IoaT1JWihlKSxzPTA7czxyOysrcykoZT10W3NdKS54LT1pLngsZS55LT1pLnk7cmV0dXJuIGkucn1mdW5jdGlvbiBxWih0KXtyZXR1cm4gbnVsbD09dD9udWxsOllaKHQpfWZ1bmN0aW9uIFlaKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdH1mdW5jdGlvbiBYWigpe3JldHVybiAwfWZ1bmN0aW9uICRaKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBLWih0KXtyZXR1cm4gTWF0aC5zcXJ0KHQudmFsdWUpfWZ1bmN0aW9uIFpaKHQpe3JldHVybiBmdW5jdGlvbihlKXtlLmNoaWxkcmVufHwoZS5yPU1hdGgubWF4KDAsK3QoZSl8fDApKX19ZnVuY3Rpb24gSloodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7aWYoaT1uLmNoaWxkcmVuKXt2YXIgaSxyLG8sYT1pLmxlbmd0aCxzPXQobikqZXx8MDtpZihzKWZvcihyPTA7cjxhOysrcilpW3JdLnIrPXM7aWYobz1XWihpKSxzKWZvcihyPTA7cjxhOysrcilpW3JdLnItPXM7bi5yPW8rc319fWZ1bmN0aW9uIFFaKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1lLnBhcmVudDtlLnIqPXQsbiYmKGUueD1uLngrdCplLngsZS55PW4ueSt0KmUueSl9fWZ1bmN0aW9uIHRKKHQpe3QueDA9TWF0aC5yb3VuZCh0LngwKSx0LnkwPU1hdGgucm91bmQodC55MCksdC54MT1NYXRoLnJvdW5kKHQueDEpLHQueTE9TWF0aC5yb3VuZCh0LnkxKX1mdW5jdGlvbiBlSih0LGUsbixpLHIpe2Zvcih2YXIgbyxhPXQuY2hpbGRyZW4scz0tMSxsPWEubGVuZ3RoLGM9dC52YWx1ZSYmKGktZSkvdC52YWx1ZTsrK3M8bDspKG89YVtzXSkueTA9bixvLnkxPXIsby54MD1lLG8ueDE9ZSs9by52YWx1ZSpjfXZhciBuSj17ZGVwdGg6LTF9LGlKPXt9O2Z1bmN0aW9uIHJKKHQpe3JldHVybiB0LmlkfWZ1bmN0aW9uIG9KKHQpe3JldHVybiB0LnBhcmVudElkfWZ1bmN0aW9uIGFKKHQsZSl7cmV0dXJuIHQucGFyZW50PT09ZS5wYXJlbnQ/MToyfWZ1bmN0aW9uIHNKKHQpe3ZhciBlPXQuY2hpbGRyZW47cmV0dXJuIGU/ZVswXTp0LnR9ZnVuY3Rpb24gbEoodCl7dmFyIGU9dC5jaGlsZHJlbjtyZXR1cm4gZT9lW2UubGVuZ3RoLTFdOnQudH1mdW5jdGlvbiBjSih0LGUsbil7dmFyIGk9bi8oZS5pLXQuaSk7ZS5jLT1pLGUucys9bix0LmMrPWksZS56Kz1uLGUubSs9bn1mdW5jdGlvbiB1Sih0LGUsbil7cmV0dXJuIHQuYS5wYXJlbnQ9PT1lLnBhcmVudD90LmE6bn1mdW5jdGlvbiBoSih0LGUpe3RoaXMuXz10LHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbj1udWxsLHRoaXMuQT1udWxsLHRoaXMuYT10aGlzLHRoaXMuej0wLHRoaXMubT0wLHRoaXMuYz0wLHRoaXMucz0wLHRoaXMudD1udWxsLHRoaXMuaT1lfWZ1bmN0aW9uIGRKKHQsZSxuLGkscil7Zm9yKHZhciBvLGE9dC5jaGlsZHJlbixzPS0xLGw9YS5sZW5ndGgsYz10LnZhbHVlJiYoci1uKS90LnZhbHVlOysrczxsOykobz1hW3NdKS54MD1lLG8ueDE9aSxvLnkwPW4sby55MT1uKz1vLnZhbHVlKmN9aEoucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodloucHJvdG90eXBlKTt2YXIgcEo9KDErTWF0aC5zcXJ0KDUpKS8yO2Z1bmN0aW9uIGZKKHQsZSxuLGkscixvKXtmb3IodmFyIGEscyxsLGMsdSxoLGQscCxmLG0sZyxfPVtdLHk9ZS5jaGlsZHJlbix2PTAsYj0wLHg9eS5sZW5ndGgsdz1lLnZhbHVlO3Y8eDspe2w9ci1uLGM9by1pO2Rve3U9eVtiKytdLnZhbHVlfXdoaWxlKCF1JiZiPHgpO2ZvcihoPWQ9dSxnPXUqdSoobT1NYXRoLm1heChjL2wsbC9jKS8odyp0KSksZj1NYXRoLm1heChkL2csZy9oKTtiPHg7KytiKXtpZih1Kz1zPXlbYl0udmFsdWUsczxoJiYoaD1zKSxzPmQmJihkPXMpLGc9dSp1Km0sKHA9TWF0aC5tYXgoZC9nLGcvaCkpPmYpe3UtPXM7YnJlYWt9Zj1wfV8ucHVzaChhPXt2YWx1ZTp1LGRpY2U6bDxjLGNoaWxkcmVuOnkuc2xpY2UodixiKX0pLGEuZGljZT9lSihhLG4saSxyLHc/aSs9Yyp1L3c6byk6ZEooYSxuLGksdz9uKz1sKnUvdzpyLG8pLHctPXUsdj1ifXJldHVybiBffXZhciBtSj0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQsbixpLHIsbyl7ZkooZSx0LG4saSxyLG8pfXJldHVybiBuLnJhdGlvPWZ1bmN0aW9uKGUpe3JldHVybiB0KChlPStlKT4xP2U6MSl9LG59KShwSiksZ0o9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0LG4saSxyLG8pe2lmKChhPXQuX3NxdWFyaWZ5KSYmYS5yYXRpbz09PWUpZm9yKHZhciBhLHMsbCxjLHUsaD0tMSxkPWEubGVuZ3RoLHA9dC52YWx1ZTsrK2g8ZDspe2ZvcihsPShzPWFbaF0pLmNoaWxkcmVuLGM9cy52YWx1ZT0wLHU9bC5sZW5ndGg7Yzx1OysrYylzLnZhbHVlKz1sW2NdLnZhbHVlO3MuZGljZT9lSihzLG4saSxyLGkrPShvLWkpKnMudmFsdWUvcCk6ZEoocyxuLGksbis9KHItbikqcy52YWx1ZS9wLG8pLHAtPXMudmFsdWV9ZWxzZSB0Ll9zcXVhcmlmeT1hPWZKKGUsdCxuLGkscixvKSxhLnJhdGlvPWV9cmV0dXJuIG4ucmF0aW89ZnVuY3Rpb24oZSl7cmV0dXJuIHQoKGU9K2UpPjE/ZToxKX0sbn0pKHBKKTtmdW5jdGlvbiBfSih0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24geUoodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gdkooKXt9dmFyIGJKPS43LHhKPTEvYkosd0o9IlxccyooWystXT9cXGQrKVxccyoiLFNKPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLE1KPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixFSj0vXiMoWzAtOWEtZl17Myw4fSkkLyxUSj1uZXcgUmVnRXhwKCJecmdiXFwoIitbd0osd0osd0pdKyJcXCkkIiksQ0o9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW01KLE1KLE1KXSsiXFwpJCIpLEFKPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbd0osd0osd0osU0pdKyJcXCkkIiksa0o9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tNSixNSixNSixTSl0rIlxcKSQiKSxMSj1uZXcgUmVnRXhwKCJeaHNsXFwoIitbU0osTUosTUpdKyJcXCkkIiksUEo9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tTSixNSixNSixTSl0rIlxcKSQiKSxOSj17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBJSigpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIFJKKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gT0oodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9RUouZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj96SihlKTozPT09bj9uZXcgRkooZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP0RKKGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP0RKKGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9VEouZXhlYyh0KSk/bmV3IEZKKGVbMV0sZVsyXSxlWzNdLDEpOihlPUNKLmV4ZWModCkpP25ldyBGSigyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1BSi5leGVjKHQpKT9ESihlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1rSi5leGVjKHQpKT9ESigyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1MSi5leGVjKHQpKT9HSihlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVBKLmV4ZWModCkpP0dKKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6TkouaGFzT3duUHJvcGVydHkodCk/ekooTkpbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyBGSihOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIHpKKHQpe3JldHVybiBuZXcgRkoodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIERKKHQsZSxuLGkpe3JldHVybiBpPD0wJiYodD1lPW49TmFOKSxuZXcgRkoodCxlLG4saSl9ZnVuY3Rpb24gQkoodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB2Snx8KHQ9T0oodCkpLHQ/bmV3IEZKKCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyBGSn1mdW5jdGlvbiBISih0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/QkoodCk6bmV3IEZKKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBGSih0LGUsbixpKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gVkooKXtyZXR1cm4iIyIrakoodGhpcy5yKStqSih0aGlzLmcpK2pKKHRoaXMuYil9ZnVuY3Rpb24gVUooKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBqSih0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEdKKHQsZSxuLGkpe3JldHVybiBpPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgWUoodCxlLG4saSl9ZnVuY3Rpb24gV0oodCl7aWYodCBpbnN0YW5jZW9mIFlKKXJldHVybiBuZXcgWUoodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2Ygdkp8fCh0PU9KKHQpKSwhdClyZXR1cm4gbmV3IFlKO2lmKHQgaW5zdGFuY2VvZiBZSilyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsaT10LmIvMjU1LHI9TWF0aC5taW4oZSxuLGkpLG89TWF0aC5tYXgoZSxuLGkpLGE9TmFOLHM9by1yLGw9KG8rcikvMjtyZXR1cm4gcz8oYT1lPT09bz8obi1pKS9zKzYqKG48aSk6bj09PW8/KGktZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P28rcjoyLW8tcixhKj02MCk6cz1sPjAmJmw8MT8wOmEsbmV3IFlKKGEscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gcUoodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1dKKHQpOm5ldyBZSih0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gWUoodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIFhKKHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1fSih2SixPSix7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpJSixmb3JtYXRIZXg6SUosZm9ybWF0SHNsOmZ1bmN0aW9uICRKKCl7cmV0dXJuIFdKKHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6UkosdG9TdHJpbmc6Ukp9KSxfSihGSixISix5Sih2Six7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD94SjpNYXRoLnBvdyh4Six0KSxuZXcgRkoodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Yko6TWF0aC5wb3coYkosdCksbmV3IEZKKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6VkosZm9ybWF0SGV4OlZKLGZvcm1hdFJnYjpVSix0b1N0cmluZzpVSn0pKSxfSihZSixxSix5Sih2Six7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD94SjpNYXRoLnBvdyh4Six0KSxuZXcgWUoodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9iSjpNYXRoLnBvdyhiSix0KSxuZXcgWUoodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyBGSihYSih0Pj0yNDA/dC0yNDA6dCsxMjAscixpKSxYSih0LHIsaSksWEoodDwxMjA/dCsyNDA6dC0xMjAscixpKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgS0o9TWF0aC5QSS8xODAsWko9MTgwL01hdGguUEksSko9Ljk2NDIyLFFKPS44MjUyMSx0UT00LzI5LGVRPTYvMjksblE9MyplUSplUTtmdW5jdGlvbiBpUSh0KXtpZih0IGluc3RhbmNlb2Ygb1EpcmV0dXJuIG5ldyBvUSh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBkUSlyZXR1cm4gcFEodCk7dCBpbnN0YW5jZW9mIEZKfHwodD1CSih0KSk7dmFyIGUsbixpPWNRKHQucikscj1jUSh0LmcpLG89Y1EodC5iKSxhPWFRKCguMjIyNTA0NSppKy43MTY4Nzg2KnIrLjA2MDYxNjkqbykvMSk7cmV0dXJuIGk9PT1yJiZyPT09bz9lPW49YTooZT1hUSgoLjQzNjA3NDcqaSsuMzg1MDY0OSpyKy4xNDMwODA0Km8pL0pKKSxuPWFRKCguMDEzOTMyMippKy4wOTcxMDQ1KnIrLjcxNDE3MzMqbykvUUopKSxuZXcgb1EoMTE2KmEtMTYsNTAwKihlLWEpLDIwMCooYS1uKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIHJRKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9pUSh0KTpuZXcgb1EodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIG9RKHQsZSxuLGkpe3RoaXMubD0rdCx0aGlzLmE9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBhUSh0KXtyZXR1cm4gdD4uMDA4ODU2NDUxNjc5MDM1NjMxP01hdGgucG93KHQsMS8zKTp0L25RK3RRfWZ1bmN0aW9uIHNRKHQpe3JldHVybiB0PmVRP3QqdCp0Om5RKih0LXRRKX1mdW5jdGlvbiBsUSh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIGNRKHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIHVRKHQpe2lmKHQgaW5zdGFuY2VvZiBkUSlyZXR1cm4gbmV3IGRRKHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIG9RfHwodD1pUSh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IGRRKE5hTiwwPHQubCYmdC5sPDEwMD8wOk5hTix0LmwsdC5vcGFjaXR5KTt2YXIgZT1NYXRoLmF0YW4yKHQuYix0LmEpKlpKO3JldHVybiBuZXcgZFEoZTwwP2UrMzYwOmUsTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gaFEodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3VRKHQpOm5ldyBkUSh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gZFEodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMuYz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIHBRKHQpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyBvUSh0LmwsMCwwLHQub3BhY2l0eSk7dmFyIGU9dC5oKktKO3JldHVybiBuZXcgb1EodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX1fSihvUSxyUSx5Sih2Six7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvUSh0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IG9RKHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMubCsxNikvMTE2LGU9aXNOYU4odGhpcy5hKT90OnQrdGhpcy5hLzUwMCxuPWlzTmFOKHRoaXMuYik/dDp0LXRoaXMuYi8yMDA7cmV0dXJuIG5ldyBGSihsUSgzLjEzMzg1NjEqKGU9Skoqc1EoZSkpLTEuNjE2ODY2NyoodD0xKnNRKHQpKS0uNDkwNjE0Nioobj1RSipzUShuKSkpLGxRKC0uOTc4NzY4NCplKzEuOTE2MTQxNSp0Ky4wMzM0NTQqbiksbFEoLjA3MTk0NTMqZS0uMjI4OTkxNCp0KzEuNDA1MjQyNypuKSx0aGlzLm9wYWNpdHkpfX0pKSxfSihkUSxoUSx5Sih2Six7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBkUSh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGRRKHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHBRKHRoaXMpLnJnYigpfX0pKTt2YXIgZlE9LS4yOTIyNyxtUT0tLjkwNjQ5LGdRPTEuOTcyOTQ7ZnVuY3Rpb24gX1EodCl7aWYodCBpbnN0YW5jZW9mIHZRKXJldHVybiBuZXcgdlEodC5oLHQucyx0LmwsdC5vcGFjaXR5KTt0IGluc3RhbmNlb2YgRkp8fCh0PUJKKHQpKTt2YXIgZT10LmcvMjU1LG49dC5iLzI1NSxpPSgtLjY1NTc2MzY2Njc5OTk5OTkqbit0LnIvMjU1Ki0xLjc4ODQ1MDM4MDYtMy41MTcyOTgyNDM4KmUpLy01Ljk2MTUxMjI5MTIscj1uLWksbz0oZ1EqKGUtaSktZlEqcikvbVEsYT1NYXRoLnNxcnQobypvK3IqcikvKGdRKmkqKDEtaSkpLHM9YT9NYXRoLmF0YW4yKG8scikqWkotMTIwOk5hTjtyZXR1cm4gbmV3IHZRKHM8MD9zKzM2MDpzLGEsaSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIHlRKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9fUSh0KTpuZXcgdlEodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIHZRKHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBiUSh0LGUsbixpLHIpe3ZhciBvPXQqdCxhPW8qdDtyZXR1cm4oKDEtMyp0KzMqby1hKSplKyg0LTYqbyszKmEpKm4rKDErMyp0KzMqby0zKmEpKmkrYSpyKS82fWZ1bmN0aW9uIHhRKHQpe3ZhciBlPXQubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPW48PTA/bj0wOm4+PTE/KG49MSxlLTEpOk1hdGguZmxvb3IobiplKSxyPXRbaV0sbz10W2krMV07cmV0dXJuIGJRKChuLWkvZSkqZSxpPjA/dFtpLTFdOjIqci1vLHIsbyxpPGUtMT90W2krMl06MipvLXIpfX1mdW5jdGlvbiB3USh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9TWF0aC5mbG9vcigoKG4lPTEpPDA/KytuOm4pKmUpO3JldHVybiBiUSgobi1pL2UpKmUsdFsoaStlLTEpJWVdLHRbaSVlXSx0WyhpKzEpJWVdLHRbKGkrMiklZV0pfX1mdW5jdGlvbiBTUSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gTVEodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQrbiplfX1mdW5jdGlvbiBFUSh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9NUSh0LG4+MTgwfHxuPC0xODA/bi0zNjAqTWF0aC5yb3VuZChuLzM2MCk6bik6U1EoaXNOYU4odCk/ZTp0KX1mdW5jdGlvbiBUUSh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9NUSh0LG4pOlNRKGlzTmFOKHQpP2U6dCl9X0oodlEseVEseUoodkose2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/eEo6TWF0aC5wb3coeEosdCksbmV3IHZRKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Yko6TWF0aC5wb3coYkosdCksbmV3IHZRKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9aXNOYU4odGhpcy5oKT8wOih0aGlzLmgrMTIwKSpLSixlPSt0aGlzLmwsbj1pc05hTih0aGlzLnMpPzA6dGhpcy5zKmUqKDEtZSksaT1NYXRoLmNvcyh0KSxyPU1hdGguc2luKHQpO3JldHVybiBuZXcgRkooMjU1KihlK24qKC0uMTQ4NjEqaSsxLjc4Mjc3KnIpKSwyNTUqKGUrbiooZlEqaSttUSpyKSksMjU1KihlK24qKGdRKmkpKSx0aGlzLm9wYWNpdHkpfX0pKTt2YXIgQ1E9KGZ1bmN0aW9uIHQoZSl7dmFyIG49KGZ1bmN0aW9uIGkodCl7cmV0dXJuIDE9PSh0PSt0KT9UUTpmdW5jdGlvbihlLG4pe3JldHVybiBuLWU/KGZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiB0PU1hdGgucG93KHQsbiksZT1NYXRoLnBvdyhlLG4pLXQsbj0xL24sZnVuY3Rpb24oaSl7cmV0dXJuIE1hdGgucG93KHQraSplLG4pfX0pKGUsbix0KTpTUShpc05hTihlKT9uOmUpfX0pKGUpO2Z1bmN0aW9uIHIodCxlKXt2YXIgaT1uKCh0PUhKKHQpKS5yLChlPUhKKGUpKS5yKSxyPW4odC5nLGUuZyksbz1uKHQuYixlLmIpLGE9VFEodC5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LnI9aShlKSx0Lmc9cihlKSx0LmI9byhlKSx0Lm9wYWNpdHk9YShlKSx0KyIifX1yZXR1cm4gci5nYW1tYT10LHJ9KSgxKTtmdW5jdGlvbiBBUSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG4saSxyPWUubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9bmV3IEFycmF5KHIpLHM9bmV3IEFycmF5KHIpO2ZvcihuPTA7bjxyOysrbilpPUhKKGVbbl0pLG9bbl09aS5yfHwwLGFbbl09aS5nfHwwLHNbbl09aS5ifHwwO3JldHVybiBvPXQobyksYT10KGEpLHM9dChzKSxpLm9wYWNpdHk9MSxmdW5jdGlvbih0KXtyZXR1cm4gaS5yPW8odCksaS5nPWEodCksaS5iPXModCksaSsiIn19fXZhciBrUT1BUSh4USksTFE9QVEod1EpO2Z1bmN0aW9uIFBRKHQsZSl7dmFyIG4saT1lP2UubGVuZ3RoOjAscj10P01hdGgubWluKGksdC5sZW5ndGgpOjAsbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPHI7KytuKW9bbl09QlEodFtuXSxlW25dKTtmb3IoO248aTsrK24pYVtuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3Iobj0wO248cjsrK24pYVtuXT1vW25dKHQpO3JldHVybiBhfX1mdW5jdGlvbiBOUSh0LGUpe3ZhciBuPW5ldyBEYXRlO3JldHVybiBlLT10PSt0LGZ1bmN0aW9uKGkpe3JldHVybiBuLnNldFRpbWUodCtlKmkpLG59fWZ1bmN0aW9uIElRKHQsZSl7cmV0dXJuIGUtPXQ9K3QsZnVuY3Rpb24obil7cmV0dXJuIHQrZSpufX1mdW5jdGlvbiBSUSh0LGUpe3ZhciBuLGk9e30scj17fTtmb3IobiBpbiBudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0fHwodD17fSksbnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZXx8KGU9e30pLGUpbiBpbiB0P2lbbl09QlEodFtuXSxlW25dKTpyW25dPWVbbl07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihuIGluIGkpcltuXT1pW25dKHQpO3JldHVybiByfX12YXIgT1E9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLHpRPW5ldyBSZWdFeHAoT1Euc291cmNlLCJnIik7ZnVuY3Rpb24gRFEodCxlKXt2YXIgbixpLHIsbz1PUS5sYXN0SW5kZXg9elEubGFzdEluZGV4PTAsYT0tMSxzPVtdLGw9W107Zm9yKHQrPSIiLGUrPSIiOyhuPU9RLmV4ZWModCkpJiYoaT16US5leGVjKGUpKTspKHI9aS5pbmRleCk+byYmKHI9ZS5zbGljZShvLHIpLHNbYV0/c1thXSs9cjpzWysrYV09ciksKG49blswXSk9PT0oaT1pWzBdKT9zW2FdP3NbYV0rPWk6c1srK2FdPWk6KHNbKythXT1udWxsLGwucHVzaCh7aTphLHg6SVEobixpKX0pKSxvPXpRLmxhc3RJbmRleDtyZXR1cm4gbzxlLmxlbmd0aCYmKHI9ZS5zbGljZShvKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLHMubGVuZ3RoPDI/bFswXT8oZnVuY3Rpb24gYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSkrIiJ9fSkobFswXS54KTooZnVuY3Rpb24gdSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KShlKTooZT1sLmxlbmd0aCxmdW5jdGlvbih0KXtmb3IodmFyIG4saT0wO2k8ZTsrK2kpc1sobj1sW2ldKS5pXT1uLngodCk7cmV0dXJuIHMuam9pbigiIil9KX1mdW5jdGlvbiBCUSh0LGUpe3ZhciBuLGk9dHlwZW9mIGU7cmV0dXJuIG51bGw9PWV8fCJib29sZWFuIj09PWk/U1EoZSk6KCJudW1iZXIiPT09aT9JUToic3RyaW5nIj09PWk/KG49T0ooZSkpPyhlPW4sQ1EpOkRROmUgaW5zdGFuY2VvZiBPSj9DUTplIGluc3RhbmNlb2YgRGF0ZT9OUTpBcnJheS5pc0FycmF5KGUpP1BROiJmdW5jdGlvbiIhPXR5cGVvZiBlLnZhbHVlT2YmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLnRvU3RyaW5nfHxpc05hTihlKT9SUTpJUSkodCxlKX12YXIgSFEsRlEsVlEsVVEsalE9MTgwL01hdGguUEksR1E9e3RyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX07ZnVuY3Rpb24gV1EodCxlLG4saSxyLG8pe3ZhciBhLHMsbDtyZXR1cm4oYT1NYXRoLnNxcnQodCp0K2UqZSkpJiYodC89YSxlLz1hKSwobD10Km4rZSppKSYmKG4tPXQqbCxpLT1lKmwpLChzPU1hdGguc3FydChuKm4raSppKSkmJihuLz1zLGkvPXMsbC89cyksdCppPGUqbiYmKHQ9LXQsZT0tZSxsPS1sLGE9LWEpLHt0cmFuc2xhdGVYOnIsdHJhbnNsYXRlWTpvLHJvdGF0ZTpNYXRoLmF0YW4yKGUsdCkqalEsc2tld1g6TWF0aC5hdGFuKGwpKmpRLHNjYWxlWDphLHNjYWxlWTpzfX1mdW5jdGlvbiBxUSh0LGUsbixpKXtmdW5jdGlvbiByKHQpe3JldHVybiB0Lmxlbmd0aD90LnBvcCgpKyIgIjoiIn1yZXR1cm4gZnVuY3Rpb24obyxhKXt2YXIgcz1bXSxsPVtdO3JldHVybiBvPXQobyksYT10KGEpLChmdW5jdGlvbiBjKHQsaSxyLG8sYSxzKXtpZih0IT09cnx8aSE9PW8pe3ZhciBsPWEucHVzaCgidHJhbnNsYXRlKCIsbnVsbCxlLG51bGwsbik7cy5wdXNoKHtpOmwtNCx4OklRKHQscil9LHtpOmwtMix4OklRKGksbyl9KX1lbHNlKHJ8fG8pJiZhLnB1c2goInRyYW5zbGF0ZSgiK3IrZStvK24pfSkoby50cmFuc2xhdGVYLG8udHJhbnNsYXRlWSxhLnRyYW5zbGF0ZVgsYS50cmFuc2xhdGVZLHMsbCksKGZ1bmN0aW9uIHUodCxlLG4sbyl7dCE9PWU/KHQtZT4xODA/ZSs9MzYwOmUtdD4xODAmJih0Kz0zNjApLG8ucHVzaCh7aTpuLnB1c2gocihuKSsicm90YXRlKCIsbnVsbCxpKS0yLHg6SVEodCxlKX0pKTplJiZuLnB1c2gocihuKSsicm90YXRlKCIrZStpKX0pKG8ucm90YXRlLGEucm90YXRlLHMsbCksKGZ1bmN0aW9uIGgodCxlLG4sbyl7dCE9PWU/by5wdXNoKHtpOm4ucHVzaChyKG4pKyJza2V3WCgiLG51bGwsaSktMix4OklRKHQsZSl9KTplJiZuLnB1c2gocihuKSsic2tld1goIitlK2kpfSkoby5za2V3WCxhLnNrZXdYLHMsbCksKGZ1bmN0aW9uIGQodCxlLG4saSxvLGEpe2lmKHQhPT1ufHxlIT09aSl7dmFyIHM9by5wdXNoKHIobykrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO2EucHVzaCh7aTpzLTQseDpJUSh0LG4pfSx7aTpzLTIseDpJUShlLGkpfSl9ZWxzZSAxPT09biYmMT09PWl8fG8ucHVzaChyKG8pKyJzY2FsZSgiK24rIiwiK2krIikiKX0pKG8uc2NhbGVYLG8uc2NhbGVZLGEuc2NhbGVYLGEuc2NhbGVZLHMsbCksbz1hPW51bGwsZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49LTEsaT1sLmxlbmd0aDsrK248aTspc1soZT1sW25dKS5pXT1lLngodCk7cmV0dXJuIHMuam9pbigiIil9fX12YXIgWVE9cVEoKGZ1bmN0aW9uIFhRKHQpe3JldHVybiJub25lIj09PXQ/R1E6KEhRfHwoSFE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIiksRlE9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFZRPWRvY3VtZW50LmRlZmF1bHRWaWV3KSxIUS5zdHlsZS50cmFuc2Zvcm09dCx0PVZRLmdldENvbXB1dGVkU3R5bGUoRlEuYXBwZW5kQ2hpbGQoSFEpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLEZRLnJlbW92ZUNoaWxkKEhRKSxXUSgrKHQ9dC5zbGljZSg3LC0xKS5zcGxpdCgiLCIpKVswXSwrdFsxXSwrdFsyXSwrdFszXSwrdFs0XSwrdFs1XSkpfSksInB4LCAiLCJweCkiLCJkZWcpIiksJFE9cVEoKGZ1bmN0aW9uIEtRKHQpe3JldHVybiBudWxsPT10P0dROihVUXx8KFVRPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIikpLFVRLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIix0KSwodD1VUS50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpKT9XUSgodD10Lm1hdHJpeCkuYSx0LmIsdC5jLHQuZCx0LmUsdC5mKTpHUSl9KSwiLCAiLCIpIiwiKSIpLFpRPU1hdGguU1FSVDI7ZnVuY3Rpb24gSlEodCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKSsxL3QpLzJ9ZnVuY3Rpb24gUVEodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9dCgoZT1xSihlKSkuaCwobj1xSihuKSkuaCkscj1UUShlLnMsbi5zKSxvPVRRKGUubCxuLmwpLGE9VFEoZS5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmg9aSh0KSxlLnM9cih0KSxlLmw9byh0KSxlLm9wYWNpdHk9YSh0KSxlKyIifX19dmFyIHQxPVFRKEVRKSxlMT1RUShUUSk7ZnVuY3Rpb24gbjEodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9dCgoZT1oUShlKSkuaCwobj1oUShuKSkuaCkscj1UUShlLmMsbi5jKSxvPVRRKGUubCxuLmwpLGE9VFEoZS5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmg9aSh0KSxlLmM9cih0KSxlLmw9byh0KSxlLm9wYWNpdHk9YSh0KSxlKyIifX19dmFyIGkxPW4xKEVRKSxyMT1uMShUUSk7ZnVuY3Rpb24gbzEodCl7cmV0dXJuKGZ1bmN0aW9uIGUobil7ZnVuY3Rpb24gaShlLGkpe3ZhciByPXQoKGU9eVEoZSkpLmgsKGk9eVEoaSkpLmgpLG89VFEoZS5zLGkucyksYT1UUShlLmwsaS5sKSxzPVRRKGUub3BhY2l0eSxpLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5oPXIodCksZS5zPW8odCksZS5sPWEoTWF0aC5wb3codCxuKSksZS5vcGFjaXR5PXModCksZSsiIn19cmV0dXJuIG49K24saS5nYW1tYT1lLGl9KSgxKX12YXIgYTE9bzEoRVEpLHMxPW8xKFRRKSxsMT1NYXRoLlBJLGMxPTIqbDEsdTE9MWUtNixoMT1jMS11MTtmdW5jdGlvbiBkMSgpe3RoaXMuX3gwPXRoaXMuX3kwPXRoaXMuX3gxPXRoaXMuX3kxPW51bGwsdGhpcy5fPSIifWZ1bmN0aW9uIHAxKCl7cmV0dXJuIG5ldyBkMX1mdW5jdGlvbiBmMSh0LGUsbil7cmV0dXJuKGVbMF0tdFswXSkqKG5bMV0tdFsxXSktKGVbMV0tdFsxXSkqKG5bMF0tdFswXSl9ZnVuY3Rpb24gbTEodCxlKXtyZXR1cm4gdFswXS1lWzBdfHx0WzFdLWVbMV19ZnVuY3Rpb24gZzEodCl7Zm9yKHZhciBlPXQubGVuZ3RoLG49WzAsMV0saT0yLHI9MjtyPGU7KytyKXtmb3IoO2k+MSYmZjEodFtuW2ktMl1dLHRbbltpLTFdXSx0W3JdKTw9MDspLS1pO25baSsrXT1yfXJldHVybiBuLnNsaWNlKDAsaSl9ZnVuY3Rpb24gXzEodCxlLG4saSl7aWYoaXNOYU4oZSl8fGlzTmFOKG4pKXJldHVybiB0O3ZhciByLG8sYSxzLGwsYyx1LGgsZCxwPXQuX3Jvb3QsZj17ZGF0YTppfSxtPXQuX3gwLGc9dC5feTAsXz10Ll94MSx5PXQuX3kxO2lmKCFwKXJldHVybiB0Ll9yb290PWYsdDtmb3IoO3AubGVuZ3RoOylpZigoYz1lPj0obz0obStfKS8yKSk/bT1vOl89bywodT1uPj0oYT0oZyt5KS8yKSk/Zz1hOnk9YSxyPXAsIShwPXBbaD11PDwxfGNdKSlyZXR1cm4gcltoXT1mLHQ7aWYocz0rdC5feC5jYWxsKG51bGwscC5kYXRhKSxsPSt0Ll95LmNhbGwobnVsbCxwLmRhdGEpLGU9PT1zJiZuPT09bClyZXR1cm4gZi5uZXh0PXAscj9yW2hdPWY6dC5fcm9vdD1mLHQ7ZG97cj1yP3JbaF09bmV3IEFycmF5KDQpOnQuX3Jvb3Q9bmV3IEFycmF5KDQpLChjPWU+PShvPShtK18pLzIpKT9tPW86Xz1vLCh1PW4+PShhPShnK3kpLzIpKT9nPWE6eT1hfXdoaWxlKChoPXU8PDF8Yyk9PShkPShsPj1hKTw8MXxzPj1vKSk7cmV0dXJuIHJbZF09cCxyW2hdPWYsdH1mdW5jdGlvbiB5MSh0LGUsbixpLHIpe3RoaXMubm9kZT10LHRoaXMueDA9ZSx0aGlzLnkwPW4sdGhpcy54MT1pLHRoaXMueTE9cn1mdW5jdGlvbiB2MSh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBiMSh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiB4MSh0LGUsbil7dmFyIGk9bmV3IHcxKG51bGw9PWU/djE6ZSxudWxsPT1uP2IxOm4sTmFOLE5hTixOYU4sTmFOKTtyZXR1cm4gbnVsbD09dD9pOmkuYWRkQWxsKHQpfWZ1bmN0aW9uIHcxKHQsZSxuLGkscixvKXt0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3gwPW4sdGhpcy5feTA9aSx0aGlzLl94MT1yLHRoaXMuX3kxPW8sdGhpcy5fcm9vdD12b2lkIDB9ZnVuY3Rpb24gUzEodCl7Zm9yKHZhciBlPXtkYXRhOnQuZGF0YX0sbj1lO3Q9dC5uZXh0OyluPW4ubmV4dD17ZGF0YTp0LmRhdGF9O3JldHVybiBlfWQxLnByb3RvdHlwZT1wMS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmQxLG1vdmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rZSl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe251bGwhPT10aGlzLl94MSYmKHRoaXMuX3gxPXRoaXMuX3gwLHRoaXMuX3kxPXRoaXMuX3kwLHRoaXMuXys9IloiKX0sbGluZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTCIrKHRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kxPStlKX0scXVhZHJhdGljQ3VydmVUbzpmdW5jdGlvbih0LGUsbixpKXt0aGlzLl8rPSJRIisgK3QrIiwiKyArZSsiLCIrKHRoaXMuX3gxPStuKSsiLCIrKHRoaXMuX3kxPStpKX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dGhpcy5fKz0iQyIrICt0KyIsIisgK2UrIiwiKyArbisiLCIrICtpKyIsIisodGhpcy5feDE9K3IpKyIsIisodGhpcy5feTE9K28pfSxhcmNUbzpmdW5jdGlvbih0LGUsbixpLHIpe3ZhciBvPXRoaXMuX3gxLGE9dGhpcy5feTEscz0obj0rbiktKHQ9K3QpLGw9KGk9K2kpLShlPStlKSxjPW8tdCx1PWEtZSxoPWMqYyt1KnU7aWYoKHI9K3IpPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIrcik7aWYobnVsbD09PXRoaXMuX3gxKXRoaXMuXys9Ik0iKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPWUpO2Vsc2UgaWYoaD51MSlpZihNYXRoLmFicyh1KnMtbCpjKT51MSYmcil7dmFyIGQ9bi1vLHA9aS1hLGY9cypzK2wqbCxtPWQqZCtwKnAsZz1NYXRoLnNxcnQoZiksXz1NYXRoLnNxcnQoaCkseT1yKk1hdGgudGFuKChsMS1NYXRoLmFjb3MoKGYraC1tKS8oMipnKl8pKSkvMiksdj15L18sYj15L2c7TWF0aC5hYnModi0xKT51MSYmKHRoaXMuXys9IkwiKyh0K3YqYykrIiwiKyhlK3YqdSkpLHRoaXMuXys9IkEiK3IrIiwiK3IrIiwwLDAsIisgKyh1KmQ+YypwKSsiLCIrKHRoaXMuX3gxPXQrYipzKSsiLCIrKHRoaXMuX3kxPWUrYipsKX1lbHNlIHRoaXMuXys9IkwiKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPWUpfSxhcmM6ZnVuY3Rpb24odCxlLG4saSxyLG8pe3Q9K3QsZT0rZTt2YXIgYT0obj0rbikqTWF0aC5jb3MoaSkscz1uKk1hdGguc2luKGkpLGw9dCthLGM9ZStzLHU9MV5vLGg9bz9pLXI6ci1pO2lmKG48MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIituKTtudWxsPT09dGhpcy5feDE/dGhpcy5fKz0iTSIrbCsiLCIrYzooTWF0aC5hYnModGhpcy5feDEtbCk+dTF8fE1hdGguYWJzKHRoaXMuX3kxLWMpPnUxKSYmKHRoaXMuXys9IkwiK2wrIiwiK2MpLG4mJihoPDAmJihoPWglYzErYzEpLGg+aDE/dGhpcy5fKz0iQSIrbisiLCIrbisiLDAsMSwiK3UrIiwiKyh0LWEpKyIsIisoZS1zKSsiQSIrbisiLCIrbisiLDAsMSwiK3UrIiwiKyh0aGlzLl94MT1sKSsiLCIrKHRoaXMuX3kxPWMpOmg+dTEmJih0aGlzLl8rPSJBIituKyIsIituKyIsMCwiKyArKGg+PWwxKSsiLCIrdSsiLCIrKHRoaXMuX3gxPXQrbipNYXRoLmNvcyhyKSkrIiwiKyh0aGlzLl95MT1lK24qTWF0aC5zaW4ocikpKSl9LHJlY3Q6ZnVuY3Rpb24odCxlLG4saSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKSsiaCIrICtuKyJ2IisgK2krImgiKy1uKyJaIn0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX07dmFyIE0xPXgxLnByb3RvdHlwZT13MS5wcm90b3R5cGU7TTEuY29weT1mdW5jdGlvbigpe3ZhciB0LGUsbj1uZXcgdzEodGhpcy5feCx0aGlzLl95LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSxpPXRoaXMuX3Jvb3Q7aWYoIWkpcmV0dXJuIG47aWYoIWkubGVuZ3RoKXJldHVybiBuLl9yb290PVMxKGkpLG47Zm9yKHQ9W3tzb3VyY2U6aSx0YXJnZXQ6bi5fcm9vdD1uZXcgQXJyYXkoNCl9XTtpPXQucG9wKCk7KWZvcih2YXIgcj0wO3I8NDsrK3IpKGU9aS5zb3VyY2Vbcl0pJiYoZS5sZW5ndGg/dC5wdXNoKHtzb3VyY2U6ZSx0YXJnZXQ6aS50YXJnZXRbcl09bmV3IEFycmF5KDQpfSk6aS50YXJnZXRbcl09UzEoZSkpO3JldHVybiBufSxNMS5hZGQ9ZnVuY3Rpb24gRTEodCl7dmFyIGU9K3RoaXMuX3guY2FsbChudWxsLHQpLG49K3RoaXMuX3kuY2FsbChudWxsLHQpO3JldHVybiBfMSh0aGlzLmNvdmVyKGUsbiksZSxuLHQpfSxNMS5hZGRBbGw9ZnVuY3Rpb24gVDEodCl7dmFyIGUsbixpLHIsbz10Lmxlbmd0aCxhPW5ldyBBcnJheShvKSxzPW5ldyBBcnJheShvKSxsPTEvMCxjPTEvMCx1PS0xLzAsaD0tMS8wO2ZvcihuPTA7bjxvOysrbilpc05hTihpPSt0aGlzLl94LmNhbGwobnVsbCxlPXRbbl0pKXx8aXNOYU4ocj0rdGhpcy5feS5jYWxsKG51bGwsZSkpfHwoYVtuXT1pLHNbbl09cixpPGwmJihsPWkpLGk+dSYmKHU9aSkscjxjJiYoYz1yKSxyPmgmJihoPXIpKTtmb3IodTxsJiYobD10aGlzLl94MCx1PXRoaXMuX3gxKSxoPGMmJihjPXRoaXMuX3kwLGg9dGhpcy5feTEpLHRoaXMuY292ZXIobCxjKS5jb3Zlcih1LGgpLG49MDtuPG87KytuKV8xKHRoaXMsYVtuXSxzW25dLHRbbl0pO3JldHVybiB0aGlzfSxNMS5jb3Zlcj1mdW5jdGlvbiBDMSh0LGUpe2lmKGlzTmFOKHQ9K3QpfHxpc05hTihlPStlKSlyZXR1cm4gdGhpczt2YXIgbj10aGlzLl94MCxpPXRoaXMuX3kwLHI9dGhpcy5feDEsbz10aGlzLl95MTtpZihpc05hTihuKSlyPShuPU1hdGguZmxvb3IodCkpKzEsbz0oaT1NYXRoLmZsb29yKGUpKSsxO2Vsc2V7aWYoIShuPnR8fHQ+cnx8aT5lfHxlPm8pKXJldHVybiB0aGlzO3ZhciBhLHMsbD1yLW4sYz10aGlzLl9yb290O3N3aXRjaChzPShlPChpK28pLzIpPDwxfHQ8KG4rcikvMil7Y2FzZSAwOmRveyhhPW5ldyBBcnJheSg0KSlbc109YyxjPWF9d2hpbGUobz1pKyhsKj0yKSx0PihyPW4rbCl8fGU+byk7YnJlYWs7Y2FzZSAxOmRveyhhPW5ldyBBcnJheSg0KSlbc109YyxjPWF9d2hpbGUobz1pKyhsKj0yKSwobj1yLWwpPnR8fGU+byk7YnJlYWs7Y2FzZSAyOmRveyhhPW5ldyBBcnJheSg0KSlbc109YyxjPWF9d2hpbGUoaT1vLShsKj0yKSx0PihyPW4rbCl8fGk+ZSk7YnJlYWs7Y2FzZSAzOmRveyhhPW5ldyBBcnJheSg0KSlbc109YyxjPWF9d2hpbGUoaT1vLShsKj0yKSwobj1yLWwpPnR8fGk+ZSl9dGhpcy5fcm9vdCYmdGhpcy5fcm9vdC5sZW5ndGgmJih0aGlzLl9yb290PWMpfXJldHVybiB0aGlzLl94MD1uLHRoaXMuX3kwPWksdGhpcy5feDE9cix0aGlzLl95MT1vLHRoaXN9LE0xLmRhdGE9ZnVuY3Rpb24gQTEoKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy52aXNpdCgoZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKWRve3QucHVzaChlLmRhdGEpfXdoaWxlKGU9ZS5uZXh0KX0pKSx0fSxNMS5leHRlbnQ9ZnVuY3Rpb24gazEodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LE0xLmZpbmQ9ZnVuY3Rpb24gTDEodCxlLG4pe3ZhciBpLHIsbyxhLHMsbCxjLHU9dGhpcy5feDAsaD10aGlzLl95MCxkPXRoaXMuX3gxLHA9dGhpcy5feTEsZj1bXSxtPXRoaXMuX3Jvb3Q7Zm9yKG0mJmYucHVzaChuZXcgeTEobSx1LGgsZCxwKSksbnVsbD09bj9uPTEvMDoodT10LW4saD1lLW4sZD10K24scD1lK24sbio9bik7bD1mLnBvcCgpOylpZighKCEobT1sLm5vZGUpfHwocj1sLngwKT5kfHwobz1sLnkwKT5wfHwoYT1sLngxKTx1fHwocz1sLnkxKTxoKSlpZihtLmxlbmd0aCl7dmFyIGc9KHIrYSkvMixfPShvK3MpLzI7Zi5wdXNoKG5ldyB5MShtWzNdLGcsXyxhLHMpLG5ldyB5MShtWzJdLHIsXyxnLHMpLG5ldyB5MShtWzFdLGcsbyxhLF8pLG5ldyB5MShtWzBdLHIsbyxnLF8pKSwoYz0oZT49Xyk8PDF8dD49ZykmJihsPWZbZi5sZW5ndGgtMV0sZltmLmxlbmd0aC0xXT1mW2YubGVuZ3RoLTEtY10sZltmLmxlbmd0aC0xLWNdPWwpfWVsc2V7dmFyIHk9dC0rdGhpcy5feC5jYWxsKG51bGwsbS5kYXRhKSx2PWUtK3RoaXMuX3kuY2FsbChudWxsLG0uZGF0YSksYj15Knkrdip2O2lmKGI8bil7dmFyIHg9TWF0aC5zcXJ0KG49Yik7dT10LXgsaD1lLXgsZD10K3gscD1lK3gsaT1tLmRhdGF9fXJldHVybiBpfSxNMS5yZW1vdmU9ZnVuY3Rpb24gUDEodCl7aWYoaXNOYU4obz0rdGhpcy5feC5jYWxsKG51bGwsdCkpfHxpc05hTihhPSt0aGlzLl95LmNhbGwobnVsbCx0KSkpcmV0dXJuIHRoaXM7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaCxkLHA9dGhpcy5fcm9vdCxmPXRoaXMuX3gwLG09dGhpcy5feTAsZz10aGlzLl94MSxfPXRoaXMuX3kxO2lmKCFwKXJldHVybiB0aGlzO2lmKHAubGVuZ3RoKWZvcig7Oyl7aWYoKGM9bz49KHM9KGYrZykvMikpP2Y9czpnPXMsKHU9YT49KGw9KG0rXykvMikpP209bDpfPWwsZT1wLCEocD1wW2g9dTw8MXxjXSkpcmV0dXJuIHRoaXM7aWYoIXAubGVuZ3RoKWJyZWFrOyhlW2grMSYzXXx8ZVtoKzImM118fGVbaCszJjNdKSYmKG49ZSxkPWgpfWZvcig7cC5kYXRhIT09dDspaWYoaT1wLCEocD1wLm5leHQpKXJldHVybiB0aGlzO3JldHVybihyPXAubmV4dCkmJmRlbGV0ZSBwLm5leHQsaT8ocj9pLm5leHQ9cjpkZWxldGUgaS5uZXh0LHRoaXMpOmU/KHI/ZVtoXT1yOmRlbGV0ZSBlW2hdLChwPWVbMF18fGVbMV18fGVbMl18fGVbM10pJiZwPT09KGVbM118fGVbMl18fGVbMV18fGVbMF0pJiYhcC5sZW5ndGgmJihuP25bZF09cDp0aGlzLl9yb290PXApLHRoaXMpOih0aGlzLl9yb290PXIsdGhpcyl9LE0xLnJlbW92ZUFsbD1mdW5jdGlvbiBOMSh0KXtmb3IodmFyIGU9MCxuPXQubGVuZ3RoO2U8bjsrK2UpdGhpcy5yZW1vdmUodFtlXSk7cmV0dXJuIHRoaXN9LE0xLnJvb3Q9ZnVuY3Rpb24gSTEoKXtyZXR1cm4gdGhpcy5fcm9vdH0sTTEuc2l6ZT1mdW5jdGlvbiBSMSgpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoKGZ1bmN0aW9uKGUpe2lmKCFlLmxlbmd0aClkb3srK3R9d2hpbGUoZT1lLm5leHQpfSkpLHR9LE0xLnZpc2l0PWZ1bmN0aW9uIE8xKHQpe3ZhciBlLG4saSxyLG8sYSxzPVtdLGw9dGhpcy5fcm9vdDtmb3IobCYmcy5wdXNoKG5ldyB5MShsLHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7ZT1zLnBvcCgpOylpZighdChsPWUubm9kZSxpPWUueDAscj1lLnkwLG89ZS54MSxhPWUueTEpJiZsLmxlbmd0aCl7dmFyIGM9KGkrbykvMix1PShyK2EpLzI7KG49bFszXSkmJnMucHVzaChuZXcgeTEobixjLHUsbyxhKSksKG49bFsyXSkmJnMucHVzaChuZXcgeTEobixpLHUsYyxhKSksKG49bFsxXSkmJnMucHVzaChuZXcgeTEobixjLHIsbyx1KSksKG49bFswXSkmJnMucHVzaChuZXcgeTEobixpLHIsYyx1KSl9cmV0dXJuIHRoaXN9LE0xLnZpc2l0QWZ0ZXI9ZnVuY3Rpb24gejEodCl7dmFyIGUsbj1bXSxpPVtdO2Zvcih0aGlzLl9yb290JiZuLnB1c2gobmV3IHkxKHRoaXMuX3Jvb3QsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtlPW4ucG9wKCk7KXt2YXIgcj1lLm5vZGU7aWYoci5sZW5ndGgpe3ZhciBvLGE9ZS54MCxzPWUueTAsbD1lLngxLGM9ZS55MSx1PShhK2wpLzIsaD0ocytjKS8yOyhvPXJbMF0pJiZuLnB1c2gobmV3IHkxKG8sYSxzLHUsaCkpLChvPXJbMV0pJiZuLnB1c2gobmV3IHkxKG8sdSxzLGwsaCkpLChvPXJbMl0pJiZuLnB1c2gobmV3IHkxKG8sYSxoLHUsYykpLChvPXJbM10pJiZuLnB1c2gobmV3IHkxKG8sdSxoLGwsYykpfWkucHVzaChlKX1mb3IoO2U9aS5wb3AoKTspdChlLm5vZGUsZS54MCxlLnkwLGUueDEsZS55MSk7cmV0dXJuIHRoaXN9LE0xLng9ZnVuY3Rpb24gRDEodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3g9dCx0aGlzKTp0aGlzLl94fSxNMS55PWZ1bmN0aW9uIEIxKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl95PXQsdGhpcyk6dGhpcy5feX07dmFyIEgxPVtdLnNsaWNlLEYxPXt9O2Z1bmN0aW9uIFYxKHQpe3RoaXMuX3NpemU9dCx0aGlzLl9jYWxsPXRoaXMuX2Vycm9yPW51bGwsdGhpcy5fdGFza3M9W10sdGhpcy5fZGF0YT1bXSx0aGlzLl93YWl0aW5nPXRoaXMuX2FjdGl2ZT10aGlzLl9lbmRlZD10aGlzLl9zdGFydD0wfWZ1bmN0aW9uIFUxKHQpe2lmKCF0Ll9zdGFydCl0cnl7IShmdW5jdGlvbiBlKHQpe2Zvcig7dC5fc3RhcnQ9dC5fd2FpdGluZyYmdC5fYWN0aXZlPHQuX3NpemU7KXt2YXIgZT10Ll9lbmRlZCt0Ll9hY3RpdmUsbj10Ll90YXNrc1tlXSxpPW4ubGVuZ3RoLTEscj1uW2ldO25baV09ajEodCxlKSwtLXQuX3dhaXRpbmcsKyt0Ll9hY3RpdmUsbj1yLmFwcGx5KG51bGwsbiksdC5fdGFza3NbZV0mJih0Ll90YXNrc1tlXT1ufHxGMSl9fSkodCl9Y2F0Y2goZSl7aWYodC5fdGFza3NbdC5fZW5kZWQrdC5fYWN0aXZlLTFdKUcxKHQsZSk7ZWxzZSBpZighdC5fZGF0YSl0aHJvdyBlfX1mdW5jdGlvbiBqMSh0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe3QuX3Rhc2tzW2VdJiYoLS10Ll9hY3RpdmUsKyt0Ll9lbmRlZCx0Ll90YXNrc1tlXT1udWxsLG51bGw9PXQuX2Vycm9yJiYobnVsbCE9bj9HMSh0LG4pOih0Ll9kYXRhW2VdPWksdC5fd2FpdGluZz9VMSh0KTpXMSh0KSkpKX19ZnVuY3Rpb24gRzEodCxlKXt2YXIgbixpPXQuX3Rhc2tzLmxlbmd0aDtmb3IodC5fZXJyb3I9ZSx0Ll9kYXRhPXZvaWQgMCx0Ll93YWl0aW5nPU5hTjstLWk+PTA7KWlmKChuPXQuX3Rhc2tzW2ldKSYmKHQuX3Rhc2tzW2ldPW51bGwsbi5hYm9ydCkpdHJ5e24uYWJvcnQoKX1jYXRjaChlKXt9dC5fYWN0aXZlPU5hTixXMSh0KX1mdW5jdGlvbiBXMSh0KXtpZighdC5fYWN0aXZlJiZ0Ll9jYWxsKXt2YXIgZT10Ll9kYXRhO3QuX2RhdGE9dm9pZCAwLHQuX2NhbGwodC5fZXJyb3IsZSl9fWZ1bmN0aW9uIHExKHQpe2lmKG51bGw9PXQpdD0xLzA7ZWxzZSBpZighKCh0PSt0KT49MSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNvbmN1cnJlbmN5Iik7cmV0dXJuIG5ldyBWMSh0KX1mdW5jdGlvbiBZMSgpe3JldHVybiBNYXRoLnJhbmRvbSgpfVYxLnByb3RvdHlwZT1xMS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlYxLGRlZmVyOmZ1bmN0aW9uKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjayIpO2lmKHRoaXMuX2NhbGwpdGhyb3cgbmV3IEVycm9yKCJkZWZlciBhZnRlciBhd2FpdCIpO2lmKG51bGwhPXRoaXMuX2Vycm9yKXJldHVybiB0aGlzO3ZhciBlPUgxLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBlLnB1c2godCksKyt0aGlzLl93YWl0aW5nLHRoaXMuX3Rhc2tzLnB1c2goZSksVTEodGhpcyksdGhpc30sYWJvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09dGhpcy5fZXJyb3ImJkcxKHRoaXMsbmV3IEVycm9yKCJhYm9ydCIpKSx0aGlzfSxhd2FpdDpmdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2siKTtpZih0aGlzLl9jYWxsKXRocm93IG5ldyBFcnJvcigibXVsdGlwbGUgYXdhaXQiKTtyZXR1cm4gdGhpcy5fY2FsbD1mdW5jdGlvbihlLG4pe3QuYXBwbHkobnVsbCxbZV0uY29uY2F0KG4pKX0sVzEodGhpcyksdGhpc30sYXdhaXRBbGw6ZnVuY3Rpb24odCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrIik7aWYodGhpcy5fY2FsbCl0aHJvdyBuZXcgRXJyb3IoIm11bHRpcGxlIGF3YWl0Iik7cmV0dXJuIHRoaXMuX2NhbGw9dCxXMSh0aGlzKSx0aGlzfX07dmFyIFgxPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gdD1udWxsPT10PzA6K3Qsbj1udWxsPT1uPzE6K24sMT09PWFyZ3VtZW50cy5sZW5ndGg/KG49dCx0PTApOm4tPXQsZnVuY3Rpb24oKXtyZXR1cm4gZSgpKm4rdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKFkxKSwkMT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQsbil7dmFyIGkscjtyZXR1cm4gdD1udWxsPT10PzA6K3Qsbj1udWxsPT1uPzE6K24sZnVuY3Rpb24oKXt2YXIgbztpZihudWxsIT1pKW89aSxpPW51bGw7ZWxzZSBkb3tpPTIqZSgpLTEsbz0yKmUoKS0xLHI9aSppK28qb313aGlsZSghcnx8cj4xKTtyZXR1cm4gdCtuKm8qTWF0aC5zcXJ0KC0yKk1hdGgubG9nKHIpL3IpfX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoWTEpLEsxPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4oKXt2YXIgdD0kMS5zb3VyY2UoZSkuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNYXRoLmV4cCh0KCkpfX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoWTEpLFoxPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPTAsaT0wO2k8dDsrK2kpbis9ZSgpO3JldHVybiBufX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoWTEpLEoxPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7dmFyIG49WjEuc291cmNlKGUpKHQpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKCkvdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKFkxKSxRMT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybi1NYXRoLmxvZygxLWUoKSkvdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKFkxKTtmdW5jdGlvbiB0MCh0LGUpe3ZhciBuLGkscixvLGE9bGMoImJlZm9yZXNlbmQiLCJwcm9ncmVzcyIsImxvYWQiLCJlcnJvciIpLHM9d2coKSxsPW5ldyBYTUxIdHRwUmVxdWVzdCxjPW51bGwsdT1udWxsLGg9MDtmdW5jdGlvbiBkKHQpe3ZhciBlLGk9bC5zdGF0dXM7aWYoIWkmJihmdW5jdGlvbiBvKHQpe3ZhciBlPXQucmVzcG9uc2VUeXBlO3JldHVybiBlJiYidGV4dCIhPT1lP3QucmVzcG9uc2U6dC5yZXNwb25zZVRleHR9KShsKXx8aT49MjAwJiZpPDMwMHx8MzA0PT09aSl7aWYocil0cnl7ZT1yLmNhbGwobixsKX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBhLmNhbGwoImVycm9yIixuLHQpfWVsc2UgZT1sO2EuY2FsbCgibG9hZCIsbixlKX1lbHNlIGEuY2FsbCgiZXJyb3IiLG4sdCl9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBYRG9tYWluUmVxdWVzdCYmISgid2l0aENyZWRlbnRpYWxzImluIGwpJiYvXihodHRwKHMpPzopP1wvXC8vLnRlc3QodCkmJihsPW5ldyBYRG9tYWluUmVxdWVzdCksIm9ubG9hZCJpbiBsP2wub25sb2FkPWwub25lcnJvcj1sLm9udGltZW91dD1kOmwub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKHQpe2wucmVhZHlTdGF0ZT4zJiZkKHQpfSxsLm9ucHJvZ3Jlc3M9ZnVuY3Rpb24odCl7YS5jYWxsKCJwcm9ncmVzcyIsbix0KX0sbj17aGVhZGVyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9KHQrIiIpLnRvTG93ZXJDYXNlKCksYXJndW1lbnRzLmxlbmd0aDwyP3MuZ2V0KHQpOihudWxsPT1lP3MucmVtb3ZlKHQpOnMuc2V0KHQsZSsiIiksbil9LG1pbWVUeXBlOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDp0KyIiLG4pOml9LHJlc3BvbnNlVHlwZTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LG4pOm99LHRpbWVvdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9K3Qsbik6aH0sdXNlcjpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwxP2M6KGM9bnVsbD09dD9udWxsOnQrIiIsbil9LHBhc3N3b3JkOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDE/dToodT1udWxsPT10P251bGw6dCsiIixuKX0scmVzcG9uc2U6ZnVuY3Rpb24odCl7cmV0dXJuIHI9dCxufSxnZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zZW5kKCJHRVQiLHQsZSl9LHBvc3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zZW5kKCJQT1NUIix0LGUpfSxzZW5kOmZ1bmN0aW9uKGUscixkKXtyZXR1cm4gbC5vcGVuKGUsdCwhMCxjLHUpLG51bGw9PWl8fHMuaGFzKCJhY2NlcHQiKXx8cy5zZXQoImFjY2VwdCIsaSsiLCovKiIpLGwuc2V0UmVxdWVzdEhlYWRlciYmcy5lYWNoKChmdW5jdGlvbih0LGUpe2wuc2V0UmVxdWVzdEhlYWRlcihlLHQpfSkpLG51bGwhPWkmJmwub3ZlcnJpZGVNaW1lVHlwZSYmbC5vdmVycmlkZU1pbWVUeXBlKGkpLG51bGwhPW8mJihsLnJlc3BvbnNlVHlwZT1vKSxoPjAmJihsLnRpbWVvdXQ9aCksbnVsbD09ZCYmImZ1bmN0aW9uIj09dHlwZW9mIHImJihkPXIscj1udWxsKSxudWxsIT1kJiYxPT09ZC5sZW5ndGgmJihkPShmdW5jdGlvbiBwKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3QobnVsbD09ZT9uOm51bGwpfX0pKGQpKSxudWxsIT1kJiZuLm9uKCJlcnJvciIsZCkub24oImxvYWQiLChmdW5jdGlvbih0KXtkKG51bGwsdCl9KSksYS5jYWxsKCJiZWZvcmVzZW5kIixuLGwpLGwuc2VuZChudWxsPT1yP251bGw6ciksbn0sYWJvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbC5hYm9ydCgpLG59LG9uOmZ1bmN0aW9uKCl7dmFyIHQ9YS5vbi5hcHBseShhLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1hP246dH19LG51bGwhPWUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIitlKTtyZXR1cm4gbi5nZXQoZSl9cmV0dXJuIG59ZnVuY3Rpb24gZTAodCxlKXtyZXR1cm4gZnVuY3Rpb24obixpKXt2YXIgcj10MChuKS5taW1lVHlwZSh0KS5yZXNwb25zZShlKTtpZihudWxsIT1pKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgaSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIraSk7cmV0dXJuIHIuZ2V0KGkpfXJldHVybiByfX12YXIgbjA9ZTAoInRleHQvaHRtbCIsKGZ1bmN0aW9uKHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudCh0LnJlc3BvbnNlVGV4dCl9KSksaTA9ZTAoImFwcGxpY2F0aW9uL2pzb24iLChmdW5jdGlvbih0KXtyZXR1cm4gSlNPTi5wYXJzZSh0LnJlc3BvbnNlVGV4dCl9KSkscjA9ZTAoInRleHQvcGxhaW4iLChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXNwb25zZVRleHR9KSksbzA9ZTAoImFwcGxpY2F0aW9uL3htbCIsKGZ1bmN0aW9uKHQpe3ZhciBlPXQucmVzcG9uc2VYTUw7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJwYXJzZSBlcnJvciIpO3JldHVybiBlfSkpO2Z1bmN0aW9uIGEwKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSxyKXthcmd1bWVudHMubGVuZ3RoPDMmJihyPWksaT1udWxsKTt2YXIgbz10MChuKS5taW1lVHlwZSh0KTtyZXR1cm4gby5yb3c9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/by5yZXNwb25zZShzMChlLGk9dCkpOml9LG8ucm93KGkpLHI/by5nZXQocik6b319ZnVuY3Rpb24gczAodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQobi5yZXNwb25zZVRleHQsZSl9fXZhciBsMD1hMCgidGV4dC9jc3YiLEpnKSxjMD1hMCgidGV4dC90YWItc2VwYXJhdGVkLXZhbHVlcyIsYV8pO2Z1bmN0aW9uIHUwKHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIGgwKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJih0PShmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB1MCh0KGUpLG4pfX0pKHQpKSx7bGVmdDpmdW5jdGlvbihlLG4saSxyKXtmb3IobnVsbD09aSYmKGk9MCksbnVsbD09ciYmKHI9ZS5sZW5ndGgpO2k8cjspe3ZhciBvPWkrcj4+PjE7dChlW29dLG4pPDA/aT1vKzE6cj1vfXJldHVybiBpfSxyaWdodDpmdW5jdGlvbihlLG4saSxyKXtmb3IobnVsbD09aSYmKGk9MCksbnVsbD09ciYmKHI9ZS5sZW5ndGgpO2k8cjspe3ZhciBvPWkrcj4+PjE7dChlW29dLG4pPjA/cj1vOmk9bysxfXJldHVybiBpfX19dmFyIGQwPWgwKHUwKS5yaWdodDtmdW5jdGlvbiBwMCh0KXtyZXR1cm4gbnVsbD09PXQ/TmFOOit0fXZhciBmMD1NYXRoLnNxcnQoNTApLG0wPU1hdGguc3FydCgxMCksZzA9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIF8wKHQsZSxuKXt2YXIgaSxyLG8sYSxzPS0xO2lmKG49K24sKHQ9K3QpPT0oZT0rZSkmJm4+MClyZXR1cm5bdF07aWYoKGk9ZTx0KSYmKHI9dCx0PWUsZT1yKSwwPT09KGE9eTAodCxlLG4pKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxlPU1hdGguZmxvb3IoZS9hKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbChlLXQrMSkpOysrczxyOylvW3NdPSh0K3MpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksZT1NYXRoLmNlaWwoZSphKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbCh0LWUrMSkpOysrczxyOylvW3NdPSh0LXMpL2E7cmV0dXJuIGkmJm8ucmV2ZXJzZSgpLG99ZnVuY3Rpb24geTAodCxlLG4pe3ZhciBpPShlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCksbz1pL01hdGgucG93KDEwLHIpO3JldHVybiByPj0wPyhvPj1mMD8xMDpvPj1tMD81Om8+PWcwPzI6MSkqTWF0aC5wb3coMTAscik6LU1hdGgucG93KDEwLC1yKS8obz49ZjA/MTA6bz49bTA/NTpvPj1nMD8yOjEpfWZ1bmN0aW9uIHYwKHQsZSxuKXt2YXIgaT1NYXRoLmFicyhlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCkpLG89aS9yO3JldHVybiBvPj1mMD9yKj0xMDpvPj1tMD9yKj01Om8+PWcwJiYocio9MiksZTx0Py1yOnJ9ZnVuY3Rpb24gYjAodCxlLG4pe2lmKG51bGw9PW4mJihuPXAwKSxpPXQubGVuZ3RoKXtpZigoZT0rZSk8PTB8fGk8MilyZXR1cm4rbih0WzBdLDAsdCk7aWYoZT49MSlyZXR1cm4rbih0W2ktMV0saS0xLHQpO3ZhciBpLHI9KGktMSkqZSxvPU1hdGguZmxvb3IociksYT0rbih0W29dLG8sdCk7cmV0dXJuIGErKCtuKHRbbysxXSxvKzEsdCktYSkqKHItbyl9fXZhciB4MD0iJCI7ZnVuY3Rpb24gdzAoKXt9ZnVuY3Rpb24gUzAodCxlKXt2YXIgbj1uZXcgdzA7aWYodCBpbnN0YW5jZW9mIHcwKXQuZWFjaCgoZnVuY3Rpb24odCxlKXtuLnNldChlLHQpfSkpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGkscj0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PWUpZm9yKDsrK3I8bzspbi5zZXQocix0W3JdKTtlbHNlIGZvcig7KytyPG87KW4uc2V0KGUoaT10W3JdLHIsdCksaSl9ZWxzZSBpZih0KWZvcih2YXIgYSBpbiB0KW4uc2V0KGEsdFthXSk7cmV0dXJuIG59ZnVuY3Rpb24gTTAoKXt9dzAucHJvdG90eXBlPVMwLnByb3RvdHlwZT17Y29uc3RydWN0b3I6dzAsaGFzOmZ1bmN0aW9uKHQpe3JldHVybiB4MCt0IGluIHRoaXN9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1t4MCt0XX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXNbeDArdF09ZSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9eDArdDtyZXR1cm4gZSBpbiB0aGlzJiZkZWxldGUgdGhpc1tlXX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09eDAmJmRlbGV0ZSB0aGlzW3RdfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PXgwJiZ0LnB1c2goZS5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT14MCYmdC5wdXNoKHRoaXNbZV0pO3JldHVybiB0fSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PXgwJiZ0LnB1c2goe2tleTplLnNsaWNlKDEpLHZhbHVlOnRoaXNbZV19KTtyZXR1cm4gdH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PXgwJiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYodFswXT09PXgwKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT14MCYmdCh0aGlzW2VdLGUuc2xpY2UoMSksdGhpcyl9fTt2YXIgRTA9UzAucHJvdG90eXBlO00wLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TTAsaGFzOkUwLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbeDArKHQrPSIiKV09dCx0aGlzfSxyZW1vdmU6RTAucmVtb3ZlLGNsZWFyOkUwLmNsZWFyLHZhbHVlczpFMC5rZXlzLHNpemU6RTAuc2l6ZSxlbXB0eTpFMC5lbXB0eSxlYWNoOkUwLmVhY2h9O3ZhciBUMD1BcnJheS5wcm90b3R5cGUsQzA9VDAubWFwLEEwPVQwLnNsaWNlLGswPXtuYW1lOiJpbXBsaWNpdCJ9O2Z1bmN0aW9uIEwwKHQpe3ZhciBlPVMwKCksbj1bXSxpPWswO2Z1bmN0aW9uIHIocil7dmFyIG89cisiIixhPWUuZ2V0KG8pO2lmKCFhKXtpZihpIT09azApcmV0dXJuIGk7ZS5zZXQobyxhPW4ucHVzaChyKSl9cmV0dXJuIHRbKGEtMSkldC5sZW5ndGhdfXJldHVybiB0PW51bGw9PXQ/W106QTAuY2FsbCh0KSxyLmRvbWFpbj1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbi5zbGljZSgpO249W10sZT1TMCgpO2Zvcih2YXIgaSxvLGE9LTEscz10Lmxlbmd0aDsrK2E8czspZS5oYXMobz0oaT10W2FdKSsiIil8fGUuc2V0KG8sbi5wdXNoKGkpKTtyZXR1cm4gcn0sci5yYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1BMC5jYWxsKGUpLHIpOnQuc2xpY2UoKX0sci51bmtub3duPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQscik6aX0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEwwKCkuZG9tYWluKG4pLnJhbmdlKHQpLnVua25vd24oaSl9LHJ9ZnVuY3Rpb24gUDAoKXt2YXIgdCxlLG49TDAoKS51bmtub3duKHZvaWQgMCksaT1uLmRvbWFpbixyPW4ucmFuZ2Usbz1bMCwxXSxhPSExLHM9MCxsPTAsYz0uNTtmdW5jdGlvbiB1KCl7dmFyIG49aSgpLmxlbmd0aCx1PW9bMV08b1swXSxoPW9bdS0wXSxkPW9bMS11XTt0PShkLWgpL01hdGgubWF4KDEsbi1zKzIqbCksYSYmKHQ9TWF0aC5mbG9vcih0KSksaCs9KGQtaC10KihuLXMpKSpjLGU9dCooMS1zKSxhJiYoaD1NYXRoLnJvdW5kKGgpLGU9TWF0aC5yb3VuZChlKSk7dmFyIHA9KGZ1bmN0aW9uIGYodCxlLG4pe3Q9K3QsZT0rZSxuPShyPWFyZ3VtZW50cy5sZW5ndGgpPDI/KGU9dCx0PTAsMSk6cjwzPzE6K247Zm9yKHZhciBpPS0xLHI9MHxNYXRoLm1heCgwLE1hdGguY2VpbCgoZS10KS9uKSksbz1uZXcgQXJyYXkocik7KytpPHI7KW9baV09dCtpKm47cmV0dXJuIG99KShuKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBoK3QqZX0pKTtyZXR1cm4gcih1P3AucmV2ZXJzZSgpOnApfXJldHVybiBkZWxldGUgbi51bmtub3duLG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpKHQpLHUoKSk6aSgpfSxuLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVsrdFswXSwrdFsxXV0sdSgpKTpvLnNsaWNlKCl9LG4ucmFuZ2VSb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gbz1bK3RbMF0sK3RbMV1dLGE9ITAsdSgpfSxuLmJhbmR3aWR0aD1mdW5jdGlvbigpe3JldHVybiBlfSxuLnN0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sbi5yb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0hIXQsdSgpKTphfSxuLnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9bD1NYXRoLm1heCgwLE1hdGgubWluKDEsdCkpLHUoKSk6c30sbi5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSx1KCkpOnN9LG4ucGFkZGluZ091dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksdSgpKTpsfSxuLmFsaWduPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksdSgpKTpjfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gUDAoKS5kb21haW4oaSgpKS5yYW5nZShvKS5yb3VuZChhKS5wYWRkaW5nSW5uZXIocykucGFkZGluZ091dGVyKGwpLmFsaWduKGMpfSx1KCl9ZnVuY3Rpb24gTjAodCl7dmFyIGU9dC5jb3B5O3JldHVybiB0LnBhZGRpbmc9dC5wYWRkaW5nT3V0ZXIsZGVsZXRlIHQucGFkZGluZ0lubmVyLGRlbGV0ZSB0LnBhZGRpbmdPdXRlcix0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gTjAoZSgpKX0sdH1mdW5jdGlvbiBJMCh0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gUjAodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gTzAoKXt9dmFyIHowPS43LEQwPTEvejAsQjA9IlxccyooWystXT9cXGQrKVxccyoiLEgwPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLEYwPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixWMD0vXiMoWzAtOWEtZl17Myw4fSkkLyxVMD1uZXcgUmVnRXhwKCJecmdiXFwoIitbQjAsQjAsQjBdKyJcXCkkIiksajA9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW0YwLEYwLEYwXSsiXFwpJCIpLEcwPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbQjAsQjAsQjAsSDBdKyJcXCkkIiksVzA9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tGMCxGMCxGMCxIMF0rIlxcKSQiKSxxMD1uZXcgUmVnRXhwKCJeaHNsXFwoIitbSDAsRjAsRjBdKyJcXCkkIiksWTA9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tIMCxGMCxGMCxIMF0rIlxcKSQiKSxYMD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiAkMCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIEswKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gWjAodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9VjAuZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj9KMChlKTozPT09bj9uZXcgbjIoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP1EwKGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP1EwKGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9VTAuZXhlYyh0KSk/bmV3IG4yKGVbMV0sZVsyXSxlWzNdLDEpOihlPWowLmV4ZWModCkpP25ldyBuMigyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1HMC5leGVjKHQpKT9RMChlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1XMC5leGVjKHQpKT9RMCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1xMC5leGVjKHQpKT9hMihlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVkwLmV4ZWModCkpP2EyKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6WDAuaGFzT3duUHJvcGVydHkodCk/SjAoWDBbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyBuMihOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIEowKHQpe3JldHVybiBuZXcgbjIodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIFEwKHQsZSxuLGkpe3JldHVybiBpPD0wJiYodD1lPW49TmFOKSxuZXcgbjIodCxlLG4saSl9ZnVuY3Rpb24gdDIodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBPMHx8KHQ9WjAodCkpLHQ/bmV3IG4yKCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyBuMn1mdW5jdGlvbiBlMih0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dDIodCk6bmV3IG4yKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBuMih0LGUsbixpKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gaTIoKXtyZXR1cm4iIyIrbzIodGhpcy5yKStvMih0aGlzLmcpK28yKHRoaXMuYil9ZnVuY3Rpb24gcjIoKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBvMih0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIGEyKHQsZSxuLGkpe3JldHVybiBpPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgbDIodCxlLG4saSl9ZnVuY3Rpb24gczIodCl7aWYodCBpbnN0YW5jZW9mIGwyKXJldHVybiBuZXcgbDIodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgTzB8fCh0PVowKHQpKSwhdClyZXR1cm4gbmV3IGwyO2lmKHQgaW5zdGFuY2VvZiBsMilyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsaT10LmIvMjU1LHI9TWF0aC5taW4oZSxuLGkpLG89TWF0aC5tYXgoZSxuLGkpLGE9TmFOLHM9by1yLGw9KG8rcikvMjtyZXR1cm4gcz8oYT1lPT09bz8obi1pKS9zKzYqKG48aSk6bj09PW8/KGktZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P28rcjoyLW8tcixhKj02MCk6cz1sPjAmJmw8MT8wOmEsbmV3IGwyKGEscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gbDIodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIGMyKHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1JMChPMCxaMCx7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDokMCxmb3JtYXRIZXg6JDAsZm9ybWF0SHNsOmZ1bmN0aW9uIHUyKCl7cmV0dXJuIHMyKHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6SzAsdG9TdHJpbmc6SzB9KSxJMChuMixlMixSMChPMCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9EMDpNYXRoLnBvdyhEMCx0KSxuZXcgbjIodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/ejA6TWF0aC5wb3coejAsdCksbmV3IG4yKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6aTIsZm9ybWF0SGV4OmkyLGZvcm1hdFJnYjpyMix0b1N0cmluZzpyMn0pKSxJMChsMiwoZnVuY3Rpb24gaDIodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3MyKHQpOm5ldyBsMih0LGUsbixudWxsPT1pPzE6aSl9KSxSMChPMCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9EMDpNYXRoLnBvdyhEMCx0KSxuZXcgbDIodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD96MDpNYXRoLnBvdyh6MCx0KSxuZXcgbDIodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyBuMihjMih0Pj0yNDA/dC0yNDA6dCsxMjAscixpKSxjMih0LHIsaSksYzIodDwxMjA/dCsyNDA6dC0xMjAscixpKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgZDI9TWF0aC5QSS8xODAscDI9MTgwL01hdGguUEksZjI9LS4xNDg2MSxtMj0xLjc4Mjc3LGcyPS0uMjkyMjcsXzI9LS45MDY0OSx5Mj0xLjk3Mjk0LHYyPXkyKl8yLGIyPXkyKm0yLHgyPW0yKmcyLV8yKmYyO2Z1bmN0aW9uIHcyKHQpe2lmKHQgaW5zdGFuY2VvZiBNMilyZXR1cm4gbmV3IE0yKHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7dCBpbnN0YW5jZW9mIG4yfHwodD10Mih0KSk7dmFyIGU9dC5nLzI1NSxuPXQuYi8yNTUsaT0oeDIqbit2MioodC5yLzI1NSktYjIqZSkvKHgyK3YyLWIyKSxyPW4taSxvPSh5MiooZS1pKS1nMipyKS9fMixhPU1hdGguc3FydChvKm8rcipyKS8oeTIqaSooMS1pKSkscz1hP01hdGguYXRhbjIobyxyKSpwMi0xMjA6TmFOO3JldHVybiBuZXcgTTIoczwwP3MrMzYwOnMsYSxpLHQub3BhY2l0eSl9ZnVuY3Rpb24gUzIodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3cyKHQpOm5ldyBNMih0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gTTIodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIEUyKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBUMih0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdCtuKmV9fWZ1bmN0aW9uIEMyKHQsZSl7dmFyIG49ZS10O3JldHVybiBuP1QyKHQsbik6RTIoaXNOYU4odCk/ZTp0KX1JMChNMixTMixSMChPMCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9EMDpNYXRoLnBvdyhEMCx0KSxuZXcgTTIodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD96MDpNYXRoLnBvdyh6MCx0KSxuZXcgTTIodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD1pc05hTih0aGlzLmgpPzA6KHRoaXMuaCsxMjApKmQyLGU9K3RoaXMubCxuPWlzTmFOKHRoaXMucyk/MDp0aGlzLnMqZSooMS1lKSxpPU1hdGguY29zKHQpLHI9TWF0aC5zaW4odCk7cmV0dXJuIG5ldyBuMigyNTUqKGUrbiooZjIqaSttMipyKSksMjU1KihlK24qKGcyKmkrXzIqcikpLDI1NSooZStuKih5MippKSksdGhpcy5vcGFjaXR5KX19KSk7dmFyIEEyPShmdW5jdGlvbiB0KGUpe3ZhciBuPShmdW5jdGlvbiBpKHQpe3JldHVybiAxPT0odD0rdCk/QzI6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbi1lPyhmdW5jdGlvbiBpKHQsZSxuKXtyZXR1cm4gdD1NYXRoLnBvdyh0LG4pLGU9TWF0aC5wb3coZSxuKS10LG49MS9uLGZ1bmN0aW9uKGkpe3JldHVybiBNYXRoLnBvdyh0K2kqZSxuKX19KShlLG4sdCk6RTIoaXNOYU4oZSk/bjplKX19KShlKTtmdW5jdGlvbiByKHQsZSl7dmFyIGk9bigodD1lMih0KSkuciwoZT1lMihlKSkucikscj1uKHQuZyxlLmcpLG89bih0LmIsZS5iKSxhPUMyKHQub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5yPWkoZSksdC5nPXIoZSksdC5iPW8oZSksdC5vcGFjaXR5PWEoZSksdCsiIn19cmV0dXJuIHIuZ2FtbWE9dCxyfSkoMSk7ZnVuY3Rpb24gazIodCxlKXtlfHwoZT1bXSk7dmFyIG4saT10P01hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoKTowLHI9ZS5zbGljZSgpO3JldHVybiBmdW5jdGlvbihvKXtmb3Iobj0wO248aTsrK24pcltuXT10W25dKigxLW8pK2Vbbl0qbztyZXR1cm4gcn19ZnVuY3Rpb24gTDIodCxlKXt2YXIgbixpPWU/ZS5sZW5ndGg6MCxyPXQ/TWF0aC5taW4oaSx0Lmxlbmd0aCk6MCxvPW5ldyBBcnJheShyKSxhPW5ldyBBcnJheShpKTtmb3Iobj0wO248cjsrK24pb1tuXT1EMih0W25dLGVbbl0pO2Zvcig7bjxpOysrbilhW25dPWVbbl07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihuPTA7bjxyOysrbilhW25dPW9bbl0odCk7cmV0dXJuIGF9fWZ1bmN0aW9uIFAyKHQsZSl7dmFyIG49bmV3IERhdGU7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihpKXtyZXR1cm4gbi5zZXRUaW1lKHQqKDEtaSkrZSppKSxufX1mdW5jdGlvbiBOMih0LGUpe3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24obil7cmV0dXJuIHQqKDEtbikrZSpufX1mdW5jdGlvbiBJMih0LGUpe3ZhciBuLGk9e30scj17fTtmb3IobiBpbiBudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0fHwodD17fSksbnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZXx8KGU9e30pLGUpbiBpbiB0P2lbbl09RDIodFtuXSxlW25dKTpyW25dPWVbbl07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihuIGluIGkpcltuXT1pW25dKHQpO3JldHVybiByfX12YXIgUjI9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLE8yPW5ldyBSZWdFeHAoUjIuc291cmNlLCJnIik7ZnVuY3Rpb24gejIodCxlKXt2YXIgbixpLHIsbz1SMi5sYXN0SW5kZXg9TzIubGFzdEluZGV4PTAsYT0tMSxzPVtdLGw9W107Zm9yKHQrPSIiLGUrPSIiOyhuPVIyLmV4ZWModCkpJiYoaT1PMi5leGVjKGUpKTspKHI9aS5pbmRleCk+byYmKHI9ZS5zbGljZShvLHIpLHNbYV0/c1thXSs9cjpzWysrYV09ciksKG49blswXSk9PT0oaT1pWzBdKT9zW2FdP3NbYV0rPWk6c1srK2FdPWk6KHNbKythXT1udWxsLGwucHVzaCh7aTphLHg6TjIobixpKX0pKSxvPU8yLmxhc3RJbmRleDtyZXR1cm4gbzxlLmxlbmd0aCYmKHI9ZS5zbGljZShvKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLHMubGVuZ3RoPDI/bFswXT8oZnVuY3Rpb24gYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSkrIiJ9fSkobFswXS54KTooZnVuY3Rpb24gdSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KShlKTooZT1sLmxlbmd0aCxmdW5jdGlvbih0KXtmb3IodmFyIG4saT0wO2k8ZTsrK2kpc1sobj1sW2ldKS5pXT1uLngodCk7cmV0dXJuIHMuam9pbigiIil9KX1mdW5jdGlvbiBEMih0LGUpe3ZhciBuLGk9dHlwZW9mIGU7cmV0dXJuIG51bGw9PWV8fCJib29sZWFuIj09PWk/RTIoZSk6KCJudW1iZXIiPT09aT9OMjoic3RyaW5nIj09PWk/KG49WjAoZSkpPyhlPW4sQTIpOnoyOmUgaW5zdGFuY2VvZiBaMD9BMjplIGluc3RhbmNlb2YgRGF0ZT9QMjooZnVuY3Rpb24gcih0KXtyZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KHQpJiYhKHQgaW5zdGFuY2VvZiBEYXRhVmlldyl9KShlKT9rMjpBcnJheS5pc0FycmF5KGUpP0wyOiJmdW5jdGlvbiIhPXR5cGVvZiBlLnZhbHVlT2YmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLnRvU3RyaW5nfHxpc05hTihlKT9JMjpOMikodCxlKX1mdW5jdGlvbiBCMih0LGUpe3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24obil7cmV0dXJuIE1hdGgucm91bmQodCooMS1uKStlKm4pfX1mdW5jdGlvbiBIMih0KXtyZXR1cm4oZnVuY3Rpb24gZShuKXtmdW5jdGlvbiBpKGUsaSl7dmFyIHI9dCgoZT1TMihlKSkuaCwoaT1TMihpKSkuaCksbz1DMihlLnMsaS5zKSxhPUMyKGUubCxpLmwpLHM9QzIoZS5vcGFjaXR5LGkub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmg9cih0KSxlLnM9byh0KSxlLmw9YShNYXRoLnBvdyh0LG4pKSxlLm9wYWNpdHk9cyh0KSxlKyIifX1yZXR1cm4gbj0rbixpLmdhbW1hPWUsaX0pKDEpfUgyKChmdW5jdGlvbiBGMih0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9UMih0LG4+MTgwfHxuPC0xODA/bi0zNjAqTWF0aC5yb3VuZChuLzM2MCk6bik6RTIoaXNOYU4odCk/ZTp0KX0pKTt2YXIgVjI9SDIoQzIpO2Z1bmN0aW9uIFUyKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBqMih0KXtyZXR1cm4rdH12YXIgRzI9WzAsMV07ZnVuY3Rpb24gVzIodCxlKXtyZXR1cm4oZS09dD0rdCk/ZnVuY3Rpb24obil7cmV0dXJuKG4tdCkvZX06VTIoZSl9ZnVuY3Rpb24gcTIodCxlLG4saSl7dmFyIHI9dFswXSxvPXRbMV0sYT1lWzBdLHM9ZVsxXTtyZXR1cm4gbzxyPyhyPW4obyxyKSxhPWkocyxhKSk6KHI9bihyLG8pLGE9aShhLHMpKSxmdW5jdGlvbih0KXtyZXR1cm4gYShyKHQpKX19ZnVuY3Rpb24gWTIodCxlLG4saSl7dmFyIHI9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpLTEsbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkocikscz0tMTtmb3IodFtyXTx0WzBdJiYodD10LnNsaWNlKCkucmV2ZXJzZSgpLGU9ZS5zbGljZSgpLnJldmVyc2UoKSk7KytzPHI7KW9bc109bih0W3NdLHRbcysxXSksYVtzXT1pKGVbc10sZVtzKzFdKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49ZDAodCxlLDEsciktMTtyZXR1cm4gYVtuXShvW25dKGUpKX19ZnVuY3Rpb24gWDIodCxlKXtyZXR1cm4gZS5kb21haW4odC5kb21haW4oKSkucmFuZ2UodC5yYW5nZSgpKS5pbnRlcnBvbGF0ZSh0LmludGVycG9sYXRlKCkpLmNsYW1wKHQuY2xhbXAoKSl9ZnVuY3Rpb24gJDIodCxlKXt2YXIgbixpLHIsbz1HMixhPUcyLHM9RDIsbD0hMTtmdW5jdGlvbiBjKCl7cmV0dXJuIG49TWF0aC5taW4oby5sZW5ndGgsYS5sZW5ndGgpPjI/WTI6cTIsaT1yPW51bGwsdX1mdW5jdGlvbiB1KGUpe3JldHVybihpfHwoaT1uKG8sYSxsPyhmdW5jdGlvbiByKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBpPXQoZT0rZSxuPStuKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ8PWU/MDp0Pj1uPzE6aSh0KX19fSkodCk6dCxzKSkpKCtlKX1yZXR1cm4gdS5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuKHJ8fChyPW4oYSxvLFcyLGw/KGZ1bmN0aW9uIGkodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9dChlPStlLG49K24pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdDw9MD9lOnQ+PTE/bjppKHQpfX19KShlKTplKSkpKCt0KX0sdS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89QzAuY2FsbCh0LGoyKSxjKCkpOm8uc2xpY2UoKX0sdS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1BMC5jYWxsKHQpLGMoKSk6YS5zbGljZSgpfSx1LnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGE9QTAuY2FsbCh0KSxzPUIyLGMoKX0sdS5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0hIXQsYygpKTpsfSx1LmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQsYygpKTpzfSxjKCl9ZnVuY3Rpb24gSzIodCxlKXtpZigobj0odD1lP3QudG9FeHBvbmVudGlhbChlLTEpOnQudG9FeHBvbmVudGlhbCgpKS5pbmRleE9mKCJlIikpPDApcmV0dXJuIG51bGw7dmFyIG4saT10LnNsaWNlKDAsbik7cmV0dXJuW2kubGVuZ3RoPjE/aVswXStpLnNsaWNlKDIpOmksK3Quc2xpY2UobisxKV19ZnVuY3Rpb24gWjIodCl7cmV0dXJuKHQ9SzIoTWF0aC5hYnModCkpKT90WzFdOk5hTn12YXIgSjIsUTI9L14oPzooLik/KFs8Pj1eXSkpPyhbK1wtKCBdKT8oWyQjXSk/KDApPyhcZCspPygsKT8oXC5cZCspPyh+KT8oW2EteiVdKT8kL2k7ZnVuY3Rpb24gdDUodCl7aWYoIShlPVEyLmV4ZWModCkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrdCk7dmFyIGU7cmV0dXJuIG5ldyBlNSh7ZmlsbDplWzFdLGFsaWduOmVbMl0sc2lnbjplWzNdLHN5bWJvbDplWzRdLHplcm86ZVs1XSx3aWR0aDplWzZdLGNvbW1hOmVbN10scHJlY2lzaW9uOmVbOF0mJmVbOF0uc2xpY2UoMSksdHJpbTplWzldLHR5cGU6ZVsxMF19KX1mdW5jdGlvbiBlNSh0KXt0aGlzLmZpbGw9dm9pZCAwPT09dC5maWxsPyIgIjp0LmZpbGwrIiIsdGhpcy5hbGlnbj12b2lkIDA9PT10LmFsaWduPyI+Ijp0LmFsaWduKyIiLHRoaXMuc2lnbj12b2lkIDA9PT10LnNpZ24/Ii0iOnQuc2lnbisiIix0aGlzLnN5bWJvbD12b2lkIDA9PT10LnN5bWJvbD8iIjp0LnN5bWJvbCsiIix0aGlzLnplcm89ISF0Lnplcm8sdGhpcy53aWR0aD12b2lkIDA9PT10LndpZHRoP3ZvaWQgMDordC53aWR0aCx0aGlzLmNvbW1hPSEhdC5jb21tYSx0aGlzLnByZWNpc2lvbj12b2lkIDA9PT10LnByZWNpc2lvbj92b2lkIDA6K3QucHJlY2lzaW9uLHRoaXMudHJpbT0hIXQudHJpbSx0aGlzLnR5cGU9dm9pZCAwPT09dC50eXBlPyIiOnQudHlwZSsiIn1mdW5jdGlvbiBuNSh0LGUpe3ZhciBuPUsyKHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIGk9blswXSxyPW5bMV07cmV0dXJuIHI8MD8iMC4iK25ldyBBcnJheSgtcikuam9pbigiMCIpK2k6aS5sZW5ndGg+cisxP2kuc2xpY2UoMCxyKzEpKyIuIitpLnNsaWNlKHIrMSk6aStuZXcgQXJyYXkoci1pLmxlbmd0aCsyKS5qb2luKCIwIil9dDUucHJvdG90eXBlPWU1LnByb3RvdHlwZSxlNS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/IjAiOiIiKSsodm9pZCAwPT09dGhpcy53aWR0aD8iIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKHZvaWQgMD09PXRoaXMucHJlY2lzaW9uPyIiOiIuIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24pKSsodGhpcy50cmltPyJ+IjoiIikrdGhpcy50eXBlfTt2YXIgaTU9eyIlIjpmdW5jdGlvbih0LGUpe3JldHVybigxMDAqdCkudG9GaXhlZChlKX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygyKX0sYzpmdW5jdGlvbih0KXtyZXR1cm4gdCsiIn0sZDpmdW5jdGlvbiByNSh0KXtyZXR1cm4gTWF0aC5hYnModD1NYXRoLnJvdW5kKHQpKT49MWUyMT90LnRvTG9jYWxlU3RyaW5nKCJlbiIpLnJlcGxhY2UoLywvZywiIik6dC50b1N0cmluZygxMCl9LGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0V4cG9uZW50aWFsKGUpfSxmOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9GaXhlZChlKX0sZzpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvUHJlY2lzaW9uKGUpfSxvOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDgpfSxwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG41KDEwMCp0LGUpfSxyOm41LHM6ZnVuY3Rpb24gbzUodCxlKXt2YXIgbj1LMih0LGUpO2lmKCFuKXJldHVybiB0KyIiO3ZhciBpPW5bMF0scj1uWzFdLG89ci0oSjI9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3Ioci8zKSkpKSsxLGE9aS5sZW5ndGg7cmV0dXJuIG89PT1hP2k6bz5hP2krbmV3IEFycmF5KG8tYSsxKS5qb2luKCIwIik6bz4wP2kuc2xpY2UoMCxvKSsiLiIraS5zbGljZShvKToiMC4iK25ldyBBcnJheSgxLW8pLmpvaW4oIjAiKStLMih0LE1hdGgubWF4KDAsZStvLTEpKVswXX0sWDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0seDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNil9fTtmdW5jdGlvbiBhNSh0KXtyZXR1cm4gdH12YXIgczUsbDUsYzUsdTU9QXJyYXkucHJvdG90eXBlLm1hcCxoNT1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIsK1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl07ZnVuY3Rpb24gZDUodCl7dmFyIGU9dC5kb21haW47cmV0dXJuIHQudGlja3M9ZnVuY3Rpb24odCl7dmFyIG49ZSgpO3JldHVybiBfMChuWzBdLG5bbi5sZW5ndGgtMV0sbnVsbD09dD8xMDp0KX0sdC50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsbil7cmV0dXJuKGZ1bmN0aW9uIGkodCxlLG4pe3ZhciBpLHI9dFswXSxvPXRbdC5sZW5ndGgtMV0sYT12MChyLG8sbnVsbD09ZT8xMDplKTtzd2l0Y2goKG49dDUobnVsbD09bj8iLGYiOm4pKS50eXBlKXtjYXNlInMiOnZhciBzPU1hdGgubWF4KE1hdGguYWJzKHIpLE1hdGguYWJzKG8pKTtyZXR1cm4gbnVsbCE9bi5wcmVjaXNpb258fGlzTmFOKGk9KGZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gTWF0aC5tYXgoMCwzKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihaMihlKS8zKSkpLVoyKE1hdGguYWJzKHQpKSl9KShhLHMpKXx8KG4ucHJlY2lzaW9uPWkpLGM1KG4scyk7Y2FzZSIiOmNhc2UiZSI6Y2FzZSJnIjpjYXNlInAiOmNhc2UiciI6bnVsbCE9bi5wcmVjaXNpb258fGlzTmFOKGk9KGZ1bmN0aW9uIGModCxlKXtyZXR1cm4gdD1NYXRoLmFicyh0KSxlPU1hdGguYWJzKGUpLXQsTWF0aC5tYXgoMCxaMihlKS1aMih0KSkrMX0pKGEsTWF0aC5tYXgoTWF0aC5hYnMociksTWF0aC5hYnMobykpKSl8fChuLnByZWNpc2lvbj1pLSgiZSI9PT1uLnR5cGUpKTticmVhaztjYXNlImYiOmNhc2UiJSI6bnVsbCE9bi5wcmVjaXNpb258fGlzTmFOKGk9KGZ1bmN0aW9uIHUodCl7cmV0dXJuIE1hdGgubWF4KDAsLVoyKE1hdGguYWJzKHQpKSl9KShhKSl8fChuLnByZWNpc2lvbj1pLTIqKCIlIj09PW4udHlwZSkpfXJldHVybiBsNShuKX0pKGUoKSx0LG4pfSx0Lm5pY2U9ZnVuY3Rpb24obil7bnVsbD09biYmKG49MTApO3ZhciBpLHI9ZSgpLG89MCxhPXIubGVuZ3RoLTEscz1yW29dLGw9clthXTtyZXR1cm4gbDxzJiYoaT1zLHM9bCxsPWksaT1vLG89YSxhPWkpLChpPXkwKHMsbCxuKSk+MD9pPXkwKHM9TWF0aC5mbG9vcihzL2kpKmksbD1NYXRoLmNlaWwobC9pKSppLG4pOmk8MCYmKGk9eTAocz1NYXRoLmNlaWwocyppKS9pLGw9TWF0aC5mbG9vcihsKmkpL2ksbikpLGk+MD8ocltvXT1NYXRoLmZsb29yKHMvaSkqaSxyW2FdPU1hdGguY2VpbChsL2kpKmksZShyKSk6aTwwJiYocltvXT1NYXRoLmNlaWwocyppKS9pLHJbYV09TWF0aC5mbG9vcihsKmkpL2ksZShyKSksdH0sdH1mdW5jdGlvbiBwNSh0LGUpe3ZhciBuLGk9MCxyPSh0PXQuc2xpY2UoKSkubGVuZ3RoLTEsbz10W2ldLGE9dFtyXTtyZXR1cm4gYTxvJiYobj1pLGk9cixyPW4sbj1vLG89YSxhPW4pLHRbaV09ZS5mbG9vcihvKSx0W3JdPWUuY2VpbChhKSx0fWZ1bmN0aW9uIGY1KHQsZSl7cmV0dXJuKGU9TWF0aC5sb2coZS90KSk/ZnVuY3Rpb24obil7cmV0dXJuIE1hdGgubG9nKG4vdCkvZX06VTIoZSl9ZnVuY3Rpb24gbTUodCxlKXtyZXR1cm4gdDwwP2Z1bmN0aW9uKG4pe3JldHVybi1NYXRoLnBvdygtZSxuKSpNYXRoLnBvdygtdCwxLW4pfTpmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5wb3coZSxuKSpNYXRoLnBvdyh0LDEtbil9fWZ1bmN0aW9uIGc1KHQpe3JldHVybiBpc0Zpbml0ZSh0KT8rKCIxZSIrdCk6dDwwPzA6dH1mdW5jdGlvbiBfNSh0KXtyZXR1cm4gMTA9PT10P2c1OnQ9PT1NYXRoLkU/TWF0aC5leHA6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucG93KHQsZSl9fWZ1bmN0aW9uIHk1KHQpe3JldHVybiB0PT09TWF0aC5FP01hdGgubG9nOjEwPT09dCYmTWF0aC5sb2cxMHx8Mj09PXQmJk1hdGgubG9nMnx8KHQ9TWF0aC5sb2codCksZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubG9nKGUpL3R9KX1mdW5jdGlvbiB2NSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuLXQoLWUpfX1mdW5jdGlvbiBiNSh0LGUpe3JldHVybiB0PDA/LU1hdGgucG93KC10LGUpOk1hdGgucG93KHQsZSl9ZnVuY3Rpb24geDUoKXt2YXIgdD0xLGU9JDIoKGZ1bmN0aW9uIG4oZSxpKXtyZXR1cm4oaT1iNShpLHQpLShlPWI1KGUsdCkpKT9mdW5jdGlvbihuKXtyZXR1cm4oYjUobix0KS1lKS9pfTpVMihpKX0pLChmdW5jdGlvbiBpKGUsbil7cmV0dXJuIG49YjUobix0KS0oZT1iNShlLHQpKSxmdW5jdGlvbihpKXtyZXR1cm4gYjUoZStuKmksMS90KX19KSkscj1lLmRvbWFpbjtyZXR1cm4gZS5leHBvbmVudD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rZSxyKHIoKSkpOnR9LGUuY29weT1mdW5jdGlvbigpe3JldHVybiBYMihlLHg1KCkuZXhwb25lbnQodCkpfSxkNShlKX0hKGZ1bmN0aW9uIHc1KHQpe3M1PShmdW5jdGlvbiBlKHQpe3ZhciBlPXZvaWQgMD09PXQuZ3JvdXBpbmd8fHZvaWQgMD09PXQudGhvdXNhbmRzP2E1OihmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7Zm9yKHZhciByPW4ubGVuZ3RoLG89W10sYT0wLHM9dFswXSxsPTA7cj4wJiZzPjAmJihsK3MrMT5pJiYocz1NYXRoLm1heCgxLGktbCkpLG8ucHVzaChuLnN1YnN0cmluZyhyLT1zLHIrcykpLCEoKGwrPXMrMSk+aSkpOylzPXRbYT0oYSsxKSV0Lmxlbmd0aF07cmV0dXJuIG8ucmV2ZXJzZSgpLmpvaW4oZSl9fSkodTUuY2FsbCh0Lmdyb3VwaW5nLE51bWJlciksdC50aG91c2FuZHMrIiIpLGk9dm9pZCAwPT09dC5jdXJyZW5jeT8iIjp0LmN1cnJlbmN5WzBdKyIiLHI9dm9pZCAwPT09dC5jdXJyZW5jeT8iIjp0LmN1cnJlbmN5WzFdKyIiLG89dm9pZCAwPT09dC5kZWNpbWFsPyIuIjp0LmRlY2ltYWwrIiIsYT12b2lkIDA9PT10Lm51bWVyYWxzP2E1OihmdW5jdGlvbiBzKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bMC05XS9nLChmdW5jdGlvbihlKXtyZXR1cm4gdFsrZV19KSl9fSkodTUuY2FsbCh0Lm51bWVyYWxzLFN0cmluZykpLGw9dm9pZCAwPT09dC5wZXJjZW50PyIlIjp0LnBlcmNlbnQrIiIsYz12b2lkIDA9PT10Lm1pbnVzPyItIjp0Lm1pbnVzKyIiLHU9dm9pZCAwPT09dC5uYW4/Ik5hTiI6dC5uYW4rIiI7ZnVuY3Rpb24gaCh0KXt2YXIgbj0odD10NSh0KSkuZmlsbCxzPXQuYWxpZ24saD10LnNpZ24sZD10LnN5bWJvbCxwPXQuemVybyxmPXQud2lkdGgsbT10LmNvbW1hLGc9dC5wcmVjaXNpb24sXz10LnRyaW0seT10LnR5cGU7Im4iPT09eT8obT0hMCx5PSJnIik6aTVbeV18fCh2b2lkIDA9PT1nJiYoZz0xMiksXz0hMCx5PSJnIiksKHB8fCIwIj09PW4mJiI9Ij09PXMpJiYocD0hMCxuPSIwIixzPSI9Iik7dmFyIHY9IiQiPT09ZD9pOiIjIj09PWQmJi9bYm94WF0vLnRlc3QoeSk/IjAiK3kudG9Mb3dlckNhc2UoKToiIixiPSIkIj09PWQ/cjovWyVwXS8udGVzdCh5KT9sOiIiLHg9aTVbeV0sdz0vW2RlZmdwcnMlXS8udGVzdCh5KTtmdW5jdGlvbiBTKHQpe3ZhciBpLHIsbCxkPXYsUz1iO2lmKCJjIj09PXkpUz14KHQpK1MsdD0iIjtlbHNle3ZhciBNPSh0PSt0KTwwfHwxL3Q8MDtpZih0PWlzTmFOKHQpP3U6eChNYXRoLmFicyh0KSxnKSxfJiYodD0oZnVuY3Rpb24gRSh0KXt0OmZvcih2YXIgZSxuPXQubGVuZ3RoLGk9MSxyPS0xO2k8bjsrK2kpc3dpdGNoKHRbaV0pe2Nhc2UiLiI6cj1lPWk7YnJlYWs7Y2FzZSIwIjowPT09ciYmKHI9aSksZT1pO2JyZWFrO2RlZmF1bHQ6aWYoISt0W2ldKWJyZWFrIHQ7cj4wJiYocj0wKX1yZXR1cm4gcj4wP3Quc2xpY2UoMCxyKSt0LnNsaWNlKGUrMSk6dH0pKHQpKSxNJiYwPT0rdCYmIisiIT09aCYmKE09ITEpLGQ9KE0/IigiPT09aD9oOmM6Ii0iPT09aHx8IigiPT09aD8iIjpoKStkLFM9KCJzIj09PXk/aDVbOCtKMi8zXToiIikrUysoTSYmIigiPT09aD8iKSI6IiIpLHcpZm9yKGk9LTEscj10Lmxlbmd0aDsrK2k8cjspaWYoNDg+KGw9dC5jaGFyQ29kZUF0KGkpKXx8bD41Nyl7Uz0oNDY9PT1sP28rdC5zbGljZShpKzEpOnQuc2xpY2UoaSkpK1MsdD10LnNsaWNlKDAsaSk7YnJlYWt9fW0mJiFwJiYodD1lKHQsMS8wKSk7dmFyIFQ9ZC5sZW5ndGgrdC5sZW5ndGgrUy5sZW5ndGgsQz1UPGY/bmV3IEFycmF5KGYtVCsxKS5qb2luKG4pOiIiO3N3aXRjaChtJiZwJiYodD1lKEMrdCxDLmxlbmd0aD9mLVMubGVuZ3RoOjEvMCksQz0iIikscyl7Y2FzZSI8Ijp0PWQrdCtTK0M7YnJlYWs7Y2FzZSI9Ijp0PWQrQyt0K1M7YnJlYWs7Y2FzZSJeIjp0PUMuc2xpY2UoMCxUPUMubGVuZ3RoPj4xKStkK3QrUytDLnNsaWNlKFQpO2JyZWFrO2RlZmF1bHQ6dD1DK2QrdCtTfXJldHVybiBhKHQpfXJldHVybiBnPXZvaWQgMD09PWc/NjovW2dwcnNdLy50ZXN0KHkpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsZykpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsZykpLFMudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdCsiIn0sU31yZXR1cm57Zm9ybWF0OmgsZm9ybWF0UHJlZml4OmZ1bmN0aW9uIGQodCxlKXt2YXIgbj1oKCgodD10NSh0KSkudHlwZT0iZiIsdCkpLGk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoWjIoZSkvMykpKSxyPU1hdGgucG93KDEwLC1pKSxvPWg1WzgraS8zXTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4ocip0KStvfX19fSkodCksbDU9czUuZm9ybWF0LGM1PXM1LmZvcm1hdFByZWZpeH0pKHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXSxtaW51czoiLSJ9KTt2YXIgUzU9bmV3IERhdGUsTTU9bmV3IERhdGU7ZnVuY3Rpb24gRTUodCxlLG4saSl7ZnVuY3Rpb24gcihlKXtyZXR1cm4gdChlPTA9PT1hcmd1bWVudHMubGVuZ3RoP25ldyBEYXRlOm5ldyBEYXRlKCtlKSksZX1yZXR1cm4gci5mbG9vcj1mdW5jdGlvbihlKXtyZXR1cm4gdChlPW5ldyBEYXRlKCtlKSksZX0sci5jZWlsPWZ1bmN0aW9uKG4pe3JldHVybiB0KG49bmV3IERhdGUobi0xKSksZShuLDEpLHQobiksbn0sci5yb3VuZD1mdW5jdGlvbih0KXt2YXIgZT1yKHQpLG49ci5jZWlsKHQpO3JldHVybiB0LWU8bi10P2U6bn0sci5vZmZzZXQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZSh0PW5ldyBEYXRlKCt0KSxudWxsPT1uPzE6TWF0aC5mbG9vcihuKSksdH0sci5yYW5nZT1mdW5jdGlvbihuLGksbyl7dmFyIGEscz1bXTtpZihuPXIuY2VpbChuKSxvPW51bGw9PW8/MTpNYXRoLmZsb29yKG8pLCEobjxpJiZvPjApKXJldHVybiBzO2Rve3MucHVzaChhPW5ldyBEYXRlKCtuKSksZShuLG8pLHQobil9d2hpbGUoYTxuJiZuPGkpO3JldHVybiBzfSxyLmZpbHRlcj1mdW5jdGlvbihuKXtyZXR1cm4gRTUoKGZ1bmN0aW9uKGUpe2lmKGU+PWUpZm9yKDt0KGUpLCFuKGUpOyllLnNldFRpbWUoZS0xKX0pLChmdW5jdGlvbih0LGkpe2lmKHQ+PXQpaWYoaTwwKWZvcig7KytpPD0wOylmb3IoO2UodCwtMSksIW4odCk7KTtlbHNlIGZvcig7LS1pPj0wOylmb3IoO2UodCwxKSwhbih0KTspO30pKX0sbiYmKHIuY291bnQ9ZnVuY3Rpb24oZSxpKXtyZXR1cm4gUzUuc2V0VGltZSgrZSksTTUuc2V0VGltZSgraSksdChTNSksdChNNSksTWF0aC5mbG9vcihuKFM1LE01KSl9LHIuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSxpc0Zpbml0ZSh0KSYmdD4wP3Q+MT9yLmZpbHRlcihpP2Z1bmN0aW9uKGUpe3JldHVybiBpKGUpJXQ9PTB9OmZ1bmN0aW9uKGUpe3JldHVybiByLmNvdW50KDAsZSkldD09MH0pOnI6bnVsbH0pLHJ9dmFyIFQ1PUU1KChmdW5jdGlvbigpe30pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLXR9KSk7VDUuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSxpc0Zpbml0ZSh0KSYmdD4wP3Q+MT9FNSgoZnVuY3Rpb24oZSl7ZS5zZXRUaW1lKE1hdGguZmxvb3IoZS90KSp0KX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0VGltZSgrZStuKnQpfSksKGZ1bmN0aW9uKGUsbil7cmV0dXJuKG4tZSkvdH0pKTpUNTpudWxsfTt2YXIgQzU9VDUsQTU9MWUzLGs1PTZlNCxMNT0zNmU1LFA1PTg2NGU1LE41PTYwNDhlNSxJNT1FNSgoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKSl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSpBNSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9BNX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENTZWNvbmRzKCl9KSksUjU9RTUoKGZ1bmN0aW9uKHQpe3Quc2V0VGltZSh0LXQuZ2V0TWlsbGlzZWNvbmRzKCktdC5nZXRTZWNvbmRzKCkqQTUpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqazUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvazV9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TWludXRlcygpfSkpLE81PUU1KChmdW5jdGlvbih0KXt0LnNldFRpbWUodC10LmdldE1pbGxpc2Vjb25kcygpLXQuZ2V0U2Vjb25kcygpKkE1LXQuZ2V0TWludXRlcygpKms1KX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKkw1KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0w1fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9KSksejU9RTUoKGZ1bmN0aW9uKHQpe3Quc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10LShlLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSprNSkvUDV9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpLTF9KSk7ZnVuY3Rpb24gRDUodCl7cmV0dXJuIEU1KChmdW5jdGlvbihlKXtlLnNldERhdGUoZS5nZXREYXRlKCktKGUuZ2V0RGF5KCkrNy10KSU3KSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10LShlLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSprNSkvTjV9KSl9dmFyIEI1PUQ1KDApLEg1PUQ1KDEpO0Q1KDIpLEQ1KDMpO3ZhciBGNT1ENSg0KTtENSg1KSxENSg2KTt2YXIgVjU9RTUoKGZ1bmN0aW9uKHQpe3Quc2V0RGF0ZSgxKSx0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRNb250aCh0LmdldE1vbnRoKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRNb250aCgpLXQuZ2V0TW9udGgoKSsxMiooZS5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TW9udGgoKX0pKSxVNT1FNSgoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KSk7VTUuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9FNSgoZnVuY3Rpb24oZSl7ZS5zZXRGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0RnVsbFllYXIoKS90KSp0KSxlLnNldE1vbnRoKDAsMSksZS5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0RnVsbFllYXIoZS5nZXRGdWxsWWVhcigpK24qdCl9KSk6bnVsbH07dmFyIGo1PVU1LEc1PUU1KChmdW5jdGlvbih0KXt0LnNldFVUQ1NlY29uZHMoMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKms1KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL2s1fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbnV0ZXMoKX0pKSxXNT1FNSgoZnVuY3Rpb24odCl7dC5zZXRVVENNaW51dGVzKDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKkw1KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0w1fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0hvdXJzKCl9KSkscTU9RTUoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9QNX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENEYXRlKCktMX0pKTtmdW5jdGlvbiBZNSh0KXtyZXR1cm4gRTUoKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRGF0ZShlLmdldFVUQ0RhdGUoKS0oZS5nZXRVVENEYXkoKSs3LXQpJTcpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL041fSkpfXZhciBYNT1ZNSgwKSwkNT1ZNSgxKTtZNSgyKSxZNSgzKTt2YXIgSzU9WTUoNCk7WTUoNSksWTUoNik7dmFyIFo1PUU1KChmdW5jdGlvbih0KXt0LnNldFVUQ0RhdGUoMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDTW9udGgodC5nZXRVVENNb250aCgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0VVRDTW9udGgoKS10LmdldFVUQ01vbnRoKCkrMTIqKGUuZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCkpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01vbnRoKCl9KSksSjU9RTUoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpfSkpO0o1LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/RTUoKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcihlLmdldFVUQ0Z1bGxZZWFyKCkvdCkqdCksZS5zZXRVVENNb250aCgwLDEpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24oZSxuKXtlLnNldFVUQ0Z1bGxZZWFyKGUuZ2V0VVRDRnVsbFllYXIoKStuKnQpfSkpOm51bGx9O3ZhciBRNT1KNTtmdW5jdGlvbiB0Myh0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBlPW5ldyBEYXRlKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKTtyZXR1cm4gZS5zZXRGdWxsWWVhcih0LnkpLGV9cmV0dXJuIG5ldyBEYXRlKHQueSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCl9ZnVuY3Rpb24gZTModCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZShEYXRlLlVUQygtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpO3JldHVybiBlLnNldFVUQ0Z1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSl9ZnVuY3Rpb24gbjModCxlLG4pe3JldHVybnt5OnQsbTplLGQ6bixIOjAsTTowLFM6MCxMOjB9fXZhciBpMyxyMyxvMyxhMz17Ii0iOiIiLF86IiAiLDA6IjAifSxzMz0vXlxzKlxkKy8sbDM9L14lLyxjMz0vW1xcXiQqKz98W1xdKCkue31dL2c7ZnVuY3Rpb24gdTModCxlLG4pe3ZhciBpPXQ8MD8iLSI6IiIscj0oaT8tdDp0KSsiIixvPXIubGVuZ3RoO3JldHVybiBpKyhvPG4/bmV3IEFycmF5KG4tbysxKS5qb2luKGUpK3I6cil9ZnVuY3Rpb24gaDModCl7cmV0dXJuIHQucmVwbGFjZShjMywiXFwkJiIpfWZ1bmN0aW9uIGQzKHQpe3JldHVybiBuZXcgUmVnRXhwKCJeKD86Iit0Lm1hcChoMykuam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uIHAzKHQpe2Zvcih2YXIgZT17fSxuPS0xLGk9dC5sZW5ndGg7KytuPGk7KWVbdFtuXS50b0xvd2VyQ2FzZSgpXT1uO3JldHVybiBlfWZ1bmN0aW9uIGYzKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzEpKTtyZXR1cm4gaT8odC53PStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG0zKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzEpKTtyZXR1cm4gaT8odC51PStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGczKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5VPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIF8zKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5WPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHkzKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5XPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHYzKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzQpKTtyZXR1cm4gaT8odC55PStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGIzKHQsZSxuKXt2YXIgaT1zMy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC55PStpWzBdKygraVswXT42OD8xOTAwOjJlMyksbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geDModCxlLG4pe3ZhciBpPS9eKFopfChbKy1dXGRcZCkoPzo6PyhcZFxkKSk/Ly5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gaT8odC5aPWlbMV0/MDotKGlbMl0rKGlbM118fCIwMCIpKSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB3Myh0LGUsbil7dmFyIGk9czMuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/KHQucT0zKmlbMF0tMyxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBTMyh0LGUsbil7dmFyIGk9czMuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQubT1pWzBdLTEsbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTTModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LmQ9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gRTModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMykpO3JldHVybiBpPyh0Lm09MCx0LmQ9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gVDModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Lkg9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQzModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Lk09K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQTModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LlM9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gazModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rMykpO3JldHVybiBpPyh0Lkw9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTDModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuLG4rNikpO3JldHVybiBpPyh0Lkw9TWF0aC5mbG9vcihpWzBdLzFlMyksbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gUDModCxlLG4pe3ZhciBpPWwzLmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpP24raVswXS5sZW5ndGg6LTF9ZnVuY3Rpb24gTjModCxlLG4pe3ZhciBpPXMzLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQuUT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBJMyh0LGUsbil7dmFyIGk9czMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5zPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFIzKHQsZSl7cmV0dXJuIHUzKHQuZ2V0RGF0ZSgpLGUsMil9ZnVuY3Rpb24gTzModCxlKXtyZXR1cm4gdTModC5nZXRIb3VycygpLGUsMil9ZnVuY3Rpb24gejModCxlKXtyZXR1cm4gdTModC5nZXRIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIEQzKHQsZSl7cmV0dXJuIHUzKDErejUuY291bnQoajUodCksdCksZSwzKX1mdW5jdGlvbiBCMyh0LGUpe3JldHVybiB1Myh0LmdldE1pbGxpc2Vjb25kcygpLGUsMyl9ZnVuY3Rpb24gSDModCxlKXtyZXR1cm4gQjModCxlKSsiMDAwIn1mdW5jdGlvbiBGMyh0LGUpe3JldHVybiB1Myh0LmdldE1vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIFYzKHQsZSl7cmV0dXJuIHUzKHQuZ2V0TWludXRlcygpLGUsMil9ZnVuY3Rpb24gVTModCxlKXtyZXR1cm4gdTModC5nZXRTZWNvbmRzKCksZSwyKX1mdW5jdGlvbiBqMyh0KXt2YXIgZT10LmdldERheSgpO3JldHVybiAwPT09ZT83OmV9ZnVuY3Rpb24gRzModCxlKXtyZXR1cm4gdTMoQjUuY291bnQoajUodCktMSx0KSxlLDIpfWZ1bmN0aW9uIFczKHQpe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIGU+PTR8fDA9PT1lP0Y1KHQpOkY1LmNlaWwodCl9ZnVuY3Rpb24gcTModCxlKXtyZXR1cm4gdD1XMyh0KSx1MyhGNS5jb3VudChqNSh0KSx0KSsoND09PWo1KHQpLmdldERheSgpKSxlLDIpfWZ1bmN0aW9uIFkzKHQpe3JldHVybiB0LmdldERheSgpfWZ1bmN0aW9uIFgzKHQsZSl7cmV0dXJuIHUzKEg1LmNvdW50KGo1KHQpLTEsdCksZSwyKX1mdW5jdGlvbiAkMyh0LGUpe3JldHVybiB1Myh0LmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gSzModCxlKXtyZXR1cm4gdTMoKHQ9VzModCkpLmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gWjModCxlKXtyZXR1cm4gdTModC5nZXRGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIEozKHQsZSl7dmFyIG49dC5nZXREYXkoKTtyZXR1cm4gdTMoKHQ9bj49NHx8MD09PW4/RjUodCk6RjUuY2VpbCh0KSkuZ2V0RnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiBRMyh0KXt2YXIgZT10LmdldFRpbWV6b25lT2Zmc2V0KCk7cmV0dXJuKGU+MD8iLSI6KGUqPS0xLCIrIikpK3UzKGUvNjB8MCwiMCIsMikrdTMoZSU2MCwiMCIsMil9ZnVuY3Rpb24gdDQodCxlKXtyZXR1cm4gdTModC5nZXRVVENEYXRlKCksZSwyKX1mdW5jdGlvbiBlNCh0LGUpe3JldHVybiB1Myh0LmdldFVUQ0hvdXJzKCksZSwyKX1mdW5jdGlvbiBuNCh0LGUpe3JldHVybiB1Myh0LmdldFVUQ0hvdXJzKCklMTJ8fDEyLGUsMil9ZnVuY3Rpb24gaTQodCxlKXtyZXR1cm4gdTMoMStxNS5jb3VudChRNSh0KSx0KSxlLDMpfWZ1bmN0aW9uIHI0KHQsZSl7cmV0dXJuIHUzKHQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksZSwzKX1mdW5jdGlvbiBvNCh0LGUpe3JldHVybiByNCh0LGUpKyIwMDAifWZ1bmN0aW9uIGE0KHQsZSl7cmV0dXJuIHUzKHQuZ2V0VVRDTW9udGgoKSsxLGUsMil9ZnVuY3Rpb24gczQodCxlKXtyZXR1cm4gdTModC5nZXRVVENNaW51dGVzKCksZSwyKX1mdW5jdGlvbiBsNCh0LGUpe3JldHVybiB1Myh0LmdldFVUQ1NlY29uZHMoKSxlLDIpfWZ1bmN0aW9uIGM0KHQpe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIDA9PT1lPzc6ZX1mdW5jdGlvbiB1NCh0LGUpe3JldHVybiB1MyhYNS5jb3VudChRNSh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gaDQodCl7dmFyIGU9dC5nZXRVVENEYXkoKTtyZXR1cm4gZT49NHx8MD09PWU/SzUodCk6SzUuY2VpbCh0KX1mdW5jdGlvbiBkNCh0LGUpe3JldHVybiB0PWg0KHQpLHUzKEs1LmNvdW50KFE1KHQpLHQpKyg0PT09UTUodCkuZ2V0VVRDRGF5KCkpLGUsMil9ZnVuY3Rpb24gcDQodCl7cmV0dXJuIHQuZ2V0VVRDRGF5KCl9ZnVuY3Rpb24gZjQodCxlKXtyZXR1cm4gdTMoJDUuY291bnQoUTUodCktMSx0KSxlLDIpfWZ1bmN0aW9uIG00KHQsZSl7cmV0dXJuIHUzKHQuZ2V0VVRDRnVsbFllYXIoKSUxMDAsZSwyKX1mdW5jdGlvbiBnNCh0LGUpe3JldHVybiB1MygodD1oNCh0KSkuZ2V0VVRDRnVsbFllYXIoKSUxMDAsZSwyKX1mdW5jdGlvbiBfNCh0LGUpe3JldHVybiB1Myh0LmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24geTQodCxlKXt2YXIgbj10LmdldFVUQ0RheSgpO3JldHVybiB1MygodD1uPj00fHwwPT09bj9LNSh0KTpLNS5jZWlsKHQpKS5nZXRVVENGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIHY0KCl7cmV0dXJuIiswMDAwIn1mdW5jdGlvbiBiNCgpe3JldHVybiIlIn1mdW5jdGlvbiB4NCh0KXtyZXR1cm4rdH1mdW5jdGlvbiB3NCh0KXtyZXR1cm4gTWF0aC5mbG9vcigrdC8xZTMpfSEoZnVuY3Rpb24gUzQodCl7aTM9KGZ1bmN0aW9uIGUodCl7dmFyIGU9dC5kYXRlVGltZSxuPXQuZGF0ZSxpPXQudGltZSxyPXQucGVyaW9kcyxvPXQuZGF5cyxhPXQuc2hvcnREYXlzLHM9dC5tb250aHMsbD10LnNob3J0TW9udGhzLGM9ZDMociksdT1wMyhyKSxoPWQzKG8pLGQ9cDMobykscD1kMyhhKSxmPXAzKGEpLG09ZDMocyksZz1wMyhzKSxfPWQzKGwpLHk9cDMobCksdj17YTpmdW5jdGlvbiBiKHQpe3JldHVybiBhW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uIHgodCl7cmV0dXJuIG9bdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24gdyh0KXtyZXR1cm4gbFt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uIFModCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6UjMsZTpSMyxmOkgzLGc6SzMsRzpKMyxIOk8zLEk6ejMsajpEMyxMOkIzLG06RjMsTTpWMyxwOmZ1bmN0aW9uIE0odCl7cmV0dXJuIHJbKyh0LmdldEhvdXJzKCk+PTEyKV19LHE6ZnVuY3Rpb24gRSh0KXtyZXR1cm4gMSt+fih0LmdldE1vbnRoKCkvMyl9LFE6eDQsczp3NCxTOlUzLHU6ajMsVTpHMyxWOnEzLHc6WTMsVzpYMyx4Om51bGwsWDpudWxsLHk6JDMsWTpaMyxaOlEzLCIlIjpiNH0sVD17YTpmdW5jdGlvbiBDKHQpe3JldHVybiBhW3QuZ2V0VVRDRGF5KCldfSxBOmZ1bmN0aW9uIEEodCl7cmV0dXJuIG9bdC5nZXRVVENEYXkoKV19LGI6ZnVuY3Rpb24gayh0KXtyZXR1cm4gbFt0LmdldFVUQ01vbnRoKCldfSxCOmZ1bmN0aW9uIEwodCl7cmV0dXJuIHNbdC5nZXRVVENNb250aCgpXX0sYzpudWxsLGQ6dDQsZTp0NCxmOm80LGc6ZzQsRzp5NCxIOmU0LEk6bjQsajppNCxMOnI0LG06YTQsTTpzNCxwOmZ1bmN0aW9uIFAodCl7cmV0dXJuIHJbKyh0LmdldFVUQ0hvdXJzKCk+PTEyKV19LHE6ZnVuY3Rpb24gTih0KXtyZXR1cm4gMSt+fih0LmdldFVUQ01vbnRoKCkvMyl9LFE6eDQsczp3NCxTOmw0LHU6YzQsVTp1NCxWOmQ0LHc6cDQsVzpmNCx4Om51bGwsWDpudWxsLHk6bTQsWTpfNCxaOnY0LCIlIjpiNH0sST17YTpmdW5jdGlvbiBSKHQsZSxuKXt2YXIgaT1wLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQudz1mW2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LEE6ZnVuY3Rpb24gTyh0LGUsbil7dmFyIGk9aC5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lnc9ZFtpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxiOmZ1bmN0aW9uIHoodCxlLG4pe3ZhciBpPV8uZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5tPXlbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sQjpmdW5jdGlvbiBEKHQsZSxuKXt2YXIgaT1tLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQubT1nW2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LGM6ZnVuY3Rpb24gQih0LG4saSl7cmV0dXJuIEcodCxlLG4saSl9LGQ6TTMsZTpNMyxmOkwzLGc6YjMsRzp2MyxIOlQzLEk6VDMsajpFMyxMOmszLG06UzMsTTpDMyxwOmZ1bmN0aW9uIEgodCxlLG4pe3ZhciBpPWMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5wPXVbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0scTp3MyxROk4zLHM6STMsUzpBMyx1Om0zLFU6ZzMsVjpfMyx3OmYzLFc6eTMseDpmdW5jdGlvbiBGKHQsZSxpKXtyZXR1cm4gRyh0LG4sZSxpKX0sWDpmdW5jdGlvbiBWKHQsZSxuKXtyZXR1cm4gRyh0LGksZSxuKX0seTpiMyxZOnYzLFo6eDMsIiUiOlAzfTtmdW5jdGlvbiBVKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpLHIsbyxhPVtdLHM9LTEsbD0wLGM9dC5sZW5ndGg7Zm9yKG4gaW5zdGFuY2VvZiBEYXRlfHwobj1uZXcgRGF0ZSgrbikpOysrczxjOykzNz09PXQuY2hhckNvZGVBdChzKSYmKGEucHVzaCh0LnNsaWNlKGwscykpLG51bGwhPShyPWEzW2k9dC5jaGFyQXQoKytzKV0pP2k9dC5jaGFyQXQoKytzKTpyPSJlIj09PWk/IiAiOiIwIiwobz1lW2ldKSYmKGk9byhuLHIpKSxhLnB1c2goaSksbD1zKzEpO3JldHVybiBhLnB1c2godC5zbGljZShsLHMpKSxhLmpvaW4oIiIpfX1mdW5jdGlvbiBqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpLHIsbz1uMygxOTAwLHZvaWQgMCwxKTtpZihHKG8sdCxuKz0iIiwwKSE9bi5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gbylyZXR1cm4gbmV3IERhdGUoby5RKTtpZigicyJpbiBvKXJldHVybiBuZXcgRGF0ZSgxZTMqby5zKygiTCJpbiBvP28uTDowKSk7aWYoZSYmISgiWiJpbiBvKSYmKG8uWj0wKSwicCJpbiBvJiYoby5IPW8uSCUxMisxMipvLnApLHZvaWQgMD09PW8ubSYmKG8ubT0icSJpbiBvP28ucTowKSwiViJpbiBvKXtpZihvLlY8MXx8by5WPjUzKXJldHVybiBudWxsOyJ3ImluIG98fChvLnc9MSksIloiaW4gbz8ocj0oaT1lMyhuMyhvLnksMCwxKSkpLmdldFVUQ0RheSgpLGk9cj40fHwwPT09cj8kNS5jZWlsKGkpOiQ1KGkpLGk9cTUub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRVVENGdWxsWWVhcigpLG8ubT1pLmdldFVUQ01vbnRoKCksby5kPWkuZ2V0VVRDRGF0ZSgpKyhvLncrNiklNyk6KHI9KGk9dDMobjMoby55LDAsMSkpKS5nZXREYXkoKSxpPXI+NHx8MD09PXI/SDUuY2VpbChpKTpINShpKSxpPXo1Lm9mZnNldChpLDcqKG8uVi0xKSksby55PWkuZ2V0RnVsbFllYXIoKSxvLm09aS5nZXRNb250aCgpLG8uZD1pLmdldERhdGUoKSsoby53KzYpJTcpfWVsc2UoIlciaW4gb3x8IlUiaW4gbykmJigidyJpbiBvfHwoby53PSJ1ImluIG8/by51JTc6IlciaW4gbz8xOjApLHI9IloiaW4gbz9lMyhuMyhvLnksMCwxKSkuZ2V0VVRDRGF5KCk6dDMobjMoby55LDAsMSkpLmdldERheSgpLG8ubT0wLG8uZD0iVyJpbiBvPyhvLncrNiklNys3Km8uVy0ocis1KSU3Om8udys3Km8uVS0ocis2KSU3KTtyZXR1cm4iWiJpbiBvPyhvLkgrPW8uWi8xMDB8MCxvLk0rPW8uWiUxMDAsZTMobykpOnQzKG8pfX1mdW5jdGlvbiBHKHQsZSxuLGkpe2Zvcih2YXIgcixvLGE9MCxzPWUubGVuZ3RoLGw9bi5sZW5ndGg7YTxzOyl7aWYoaT49bClyZXR1cm4tMTtpZigzNz09PShyPWUuY2hhckNvZGVBdChhKyspKSl7aWYocj1lLmNoYXJBdChhKyspLCEobz1JW3IgaW4gYTM/ZS5jaGFyQXQoYSsrKTpyXSl8fChpPW8odCxuLGkpKTwwKXJldHVybi0xfWVsc2UgaWYociE9bi5jaGFyQ29kZUF0KGkrKykpcmV0dXJuLTF9cmV0dXJuIGl9cmV0dXJuIHYueD1VKG4sdiksdi5YPVUoaSx2KSx2LmM9VShlLHYpLFQueD1VKG4sVCksVC5YPVUoaSxUKSxULmM9VShlLFQpLHtmb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9VSh0Kz0iIix2KTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLCExKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSx1dGNGb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9VSh0Kz0iIixUKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSx1dGNQYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLCEwKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfX19KSh0KSxyMz1pMy5mb3JtYXQsbzM9aTMudXRjRm9ybWF0fSkoe2RhdGVUaW1lOiIleCwgJVgiLGRhdGU6IiUtbS8lLWQvJVkiLHRpbWU6IiUtSTolTTolUyAlcCIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KTt2YXIgTTQ9MzE1MzZlNjtmdW5jdGlvbiBFNCh0KXtyZXR1cm4gbmV3IERhdGUodCl9ZnVuY3Rpb24gVDQodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlPyt0OituZXcgRGF0ZSgrdCl9ZnVuY3Rpb24gQzQodCxlLG4saSxyLG8sYSxzLGwpe3ZhciBjPSQyKFcyLE4yKSx1PWMuaW52ZXJ0LGg9Yy5kb21haW4sZD1sKCIuJUwiKSxwPWwoIjolUyIpLGY9bCgiJUk6JU0iKSxtPWwoIiVJICVwIiksZz1sKCIlYSAlZCIpLF89bCgiJWIgJWQiKSx5PWwoIiVCIiksdj1sKCIlWSIpLGI9W1thLDEsMWUzXSxbYSw1LDVlM10sW2EsMTUsMTVlM10sW2EsMzAsM2U0XSxbbywxLDZlNF0sW28sNSwzZTVdLFtvLDE1LDllNV0sW28sMzAsMThlNV0sW3IsMSwzNmU1XSxbciwzLDEwOGU1XSxbciw2LDIxNmU1XSxbciwxMiw0MzJlNV0sW2ksMSw4NjRlNV0sW2ksMiwxNzI4ZTVdLFtuLDEsNjA0OGU1XSxbZSwxLDI1OTJlNl0sW2UsMyw3Nzc2ZTZdLFt0LDEsTTRdXTtmdW5jdGlvbiB4KHMpe3JldHVybihhKHMpPHM/ZDpvKHMpPHM/cDpyKHMpPHM/ZjppKHMpPHM/bTplKHMpPHM/bihzKTxzP2c6Xzp0KHMpPHM/eTp2KShzKX1mdW5jdGlvbiB3KGUsbixpLHIpe2lmKG51bGw9PWUmJihlPTEwKSwibnVtYmVyIj09dHlwZW9mIGUpe3ZhciBvPU1hdGguYWJzKGktbikvZSxhPWgwKChmdW5jdGlvbih0KXtyZXR1cm4gdFsyXX0pKS5yaWdodChiLG8pO2E9PT1iLmxlbmd0aD8ocj12MChuL000LGkvTTQsZSksZT10KTphPyhyPShhPWJbby9iW2EtMV1bMl08YlthXVsyXS9vP2EtMTphXSlbMV0sZT1hWzBdKToocj1NYXRoLm1heCh2MChuLGksZSksMSksZT1zKX1yZXR1cm4gbnVsbD09cj9lOmUuZXZlcnkocil9cmV0dXJuIGMuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRGF0ZSh1KHQpKX0sYy5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/aChDMC5jYWxsKHQsVDQpKTpoKCkubWFwKEU0KX0sYy50aWNrcz1mdW5jdGlvbih0LGUpe3ZhciBuLGk9aCgpLHI9aVswXSxvPWlbaS5sZW5ndGgtMV0sYT1vPHI7cmV0dXJuIGEmJihuPXIscj1vLG89biksbj0obj13KHQscixvLGUpKT9uLnJhbmdlKHIsbysxKTpbXSxhP24ucmV2ZXJzZSgpOm59LGMudGlja0Zvcm1hdD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1lP3g6bChlKX0sYy5uaWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49aCgpO3JldHVybih0PXcodCxuWzBdLG5bbi5sZW5ndGgtMV0sZSkpP2gocDUobix0KSk6Y30sYy5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIFgyKGMsQzQodCxlLG4saSxyLG8sYSxzLGwpKX0sY31mdW5jdGlvbiBBNCh0KXtyZXR1cm4gdC5tYXRjaCgvLns2fS9nKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiIjIit0fSkpfXZhciBrND1BNCgiMWY3N2I0ZmY3ZjBlMmNhMDJjZDYyNzI4OTQ2N2JkOGM1NjRiZTM3N2MyN2Y3ZjdmYmNiZDIyMTdiZWNmIiksTDQ9QTQoIjM5M2I3OTUyNTRhMzZiNmVjZjljOWVkZTYzNzkzOThjYTI1MmI1Y2Y2YmNlZGI5YzhjNmQzMWJkOWUzOWU3YmE1MmU3Y2I5NDg0M2MzOWFkNDk0YWQ2NjE2YmU3OTY5YzdiNDE3M2E1NTE5NGNlNmRiZGRlOWVkNiIpLFA0PUE0KCIzMTgyYmQ2YmFlZDY5ZWNhZTFjNmRiZWZlNjU1MGRmZDhkM2NmZGFlNmJmZGQwYTIzMWEzNTQ3NGM0NzZhMWQ5OWJjN2U5YzA3NTZiYjE5ZTlhYzhiY2JkZGNkYWRhZWI2MzYzNjM5Njk2OTZiZGJkYmRkOWQ5ZDkiKSxOND1BNCgiMWY3N2I0YWVjN2U4ZmY3ZjBlZmZiYjc4MmNhMDJjOThkZjhhZDYyNzI4ZmY5ODk2OTQ2N2JkYzViMGQ1OGM1NjRiYzQ5Yzk0ZTM3N2MyZjdiNmQyN2Y3ZjdmYzdjN2M3YmNiZDIyZGJkYjhkMTdiZWNmOWVkYWU1IiksSTQ9VjIoUzIoMzAwLC41LDApLFMyKC0yNDAsLjUsMSkpLFI0PVYyKFMyKC0xMDAsLjc1LC4zNSksUzIoODAsMS41LC44KSksTzQ9VjIoUzIoMjYwLC43NSwuMzUpLFMyKDgwLDEuNSwuOCkpLHo0PVMyKCk7ZnVuY3Rpb24gRDQodCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0W01hdGgubWF4KDAsTWF0aC5taW4oZS0xLE1hdGguZmxvb3IobiplKSkpXX19dmFyIEI0PUQ0KEE0KCI0NDAxNTQ0NDAyNTY0NTA0NTc0NTA1NTk0NjA3NWE0NjA4NWM0NjBhNWQ0NjBiNWU0NzBkNjA0NzBlNjE0NzEwNjM0NzExNjQ0NzEzNjU0ODE0Njc0ODE2Njg0ODE3Njk0ODE4NmE0ODFhNmM0ODFiNmQ0ODFjNmU0ODFkNmY0ODFmNzA0ODIwNzE0ODIxNzM0ODIzNzQ0ODI0NzU0ODI1NzY0ODI2Nzc0ODI4Nzg0ODI5Nzk0NzJhN2E0NzJjN2E0NzJkN2I0NzJlN2M0NzJmN2Q0NjMwN2U0NjMyN2U0NjMzN2Y0NjM0ODA0NTM1ODE0NTM3ODE0NTM4ODI0NDM5ODM0NDNhODM0NDNiODQ0MzNkODQ0MzNlODU0MjNmODU0MjQwODY0MjQxODY0MTQyODc0MTQ0ODc0MDQ1ODg0MDQ2ODgzZjQ3ODgzZjQ4ODkzZTQ5ODkzZTRhODkzZTRjOGEzZDRkOGEzZDRlOGEzYzRmOGEzYzUwOGIzYjUxOGIzYjUyOGIzYTUzOGIzYTU0OGMzOTU1OGMzOTU2OGMzODU4OGMzODU5OGMzNzVhOGMzNzViOGQzNjVjOGQzNjVkOGQzNTVlOGQzNTVmOGQzNDYwOGQzNDYxOGQzMzYyOGQzMzYzOGQzMjY0OGUzMjY1OGUzMTY2OGUzMTY3OGUzMTY4OGUzMDY5OGUzMDZhOGUyZjZiOGUyZjZjOGUyZTZkOGUyZTZlOGUyZTZmOGUyZDcwOGUyZDcxOGUyYzcxOGUyYzcyOGUyYzczOGUyYjc0OGUyYjc1OGUyYTc2OGUyYTc3OGUyYTc4OGUyOTc5OGUyOTdhOGUyOTdiOGUyODdjOGUyODdkOGUyNzdlOGUyNzdmOGUyNzgwOGUyNjgxOGUyNjgyOGUyNjgyOGUyNTgzOGUyNTg0OGUyNTg1OGUyNDg2OGUyNDg3OGUyMzg4OGUyMzg5OGUyMzhhOGQyMjhiOGQyMjhjOGQyMjhkOGQyMThlOGQyMThmOGQyMTkwOGQyMTkxOGMyMDkyOGMyMDkyOGMyMDkzOGMxZjk0OGMxZjk1OGIxZjk2OGIxZjk3OGIxZjk4OGIxZjk5OGExZjlhOGExZTliOGExZTljODkxZTlkODkxZjllODkxZjlmODgxZmEwODgxZmExODgxZmExODcxZmEyODcyMGEzODYyMGE0ODYyMWE1ODUyMWE2ODUyMmE3ODUyMmE4ODQyM2E5ODMyNGFhODMyNWFiODIyNWFjODIyNmFkODEyN2FkODEyOGFlODAyOWFmN2YyYWIwN2YyY2IxN2UyZGIyN2QyZWIzN2MyZmI0N2MzMWI1N2IzMmI2N2EzNGI2NzkzNWI3NzkzN2I4NzgzOGI5NzczYWJhNzYzYmJiNzUzZGJjNzQzZmJjNzM0MGJkNzI0MmJlNzE0NGJmNzA0NmMwNmY0OGMxNmU0YWMxNmQ0Y2MyNmM0ZWMzNmI1MGM0NmE1MmM1Njk1NGM1Njg1NmM2Njc1OGM3NjU1YWM4NjQ1Y2M4NjM1ZWM5NjI2MGNhNjA2M2NiNWY2NWNiNWU2N2NjNWM2OWNkNWI2Y2NkNWE2ZWNlNTg3MGNmNTc3M2QwNTY3NWQwNTQ3N2QxNTM3YWQxNTE3Y2QyNTA3ZmQzNGU4MWQzNGQ4NGQ0NGI4NmQ1NDk4OWQ1NDg4YmQ2NDY4ZWQ2NDU5MGQ3NDM5M2Q3NDE5NWQ4NDA5OGQ4M2U5YmQ5M2M5ZGQ5M2JhMGRhMzlhMmRhMzdhNWRiMzZhOGRiMzRhYWRjMzJhZGRjMzBiMGRkMmZiMmRkMmRiNWRlMmJiOGRlMjliYWRlMjhiZGRmMjZjMGRmMjVjMmRmMjNjNWUwMjFjOGUwMjBjYWUxMWZjZGUxMWRkMGUxMWNkMmUyMWJkNWUyMWFkOGUyMTlkYWUzMTlkZGUzMThkZmUzMThlMmU0MThlNWU0MTllN2U0MTllYWU1MWFlY2U1MWJlZmU1MWNmMWU1MWRmNGU2MWVmNmU2MjBmOGU2MjFmYmU3MjNmZGU3MjUiKSksSDQ9RDQoQTQoIjAwMDAwNDAxMDAwNTAxMDEwNjAxMDEwODAyMDEwOTAyMDIwYjAyMDIwZDAzMDMwZjAzMDMxMjA0MDQxNDA1MDQxNjA2MDUxODA2MDUxYTA3MDYxYzA4MDcxZTA5MDcyMDBhMDgyMjBiMDkyNDBjMDkyNjBkMGEyOTBlMGIyYjEwMGIyZDExMGMyZjEyMGQzMTEzMGQzNDE0MGUzNjE1MGUzODE2MGYzYjE4MGYzZDE5MTAzZjFhMTA0MjFjMTA0NDFkMTE0NzFlMTE0OTIwMTE0YjIxMTE0ZTIyMTE1MDI0MTI1MzI1MTI1NTI3MTI1ODI5MTE1YTJhMTE1YzJjMTE1ZjJkMTE2MTJmMTE2MzMxMTE2NTMzMTA2NzM0MTA2OTM2MTA2YjM4MTA2YzM5MGY2ZTNiMGY3MDNkMGY3MTNmMGY3MjQwMGY3NDQyMGY3NTQ0MGY3NjQ1MTA3NzQ3MTA3ODQ5MTA3ODRhMTA3OTRjMTE3YTRlMTE3YjRmMTI3YjUxMTI3YzUyMTM3YzU0MTM3ZDU2MTQ3ZDU3MTU3ZTU5MTU3ZTVhMTY3ZTVjMTY3ZjVkMTc3ZjVmMTg3ZjYwMTg4MDYyMTk4MDY0MWE4MDY1MWE4MDY3MWI4MDY4MWM4MTZhMWM4MTZiMWQ4MTZkMWQ4MTZlMWU4MTcwMWY4MTcyMWY4MTczMjA4MTc1MjE4MTc2MjE4MTc4MjI4MTc5MjI4MjdiMjM4MjdjMjM4MjdlMjQ4MjgwMjU4MjgxMjU4MTgzMjY4MTg0MjY4MTg2Mjc4MTg4Mjc4MTg5Mjg4MThiMjk4MThjMjk4MThlMmE4MTkwMmE4MTkxMmI4MTkzMmI4MDk0MmM4MDk2MmM4MDk4MmQ4MDk5MmQ4MDliMmU3ZjljMmU3ZjllMmY3ZmEwMmY3ZmExMzA3ZWEzMzA3ZWE1MzE3ZWE2MzE3ZGE4MzI3ZGFhMzM3ZGFiMzM3Y2FkMzQ3Y2FlMzQ3YmIwMzU3YmIyMzU3YmIzMzY3YWI1MzY3YWI3Mzc3OWI4Mzc3OWJhMzg3OGJjMzk3OGJkMzk3N2JmM2E3N2MwM2E3NmMyM2I3NWM0M2M3NWM1M2M3NGM3M2Q3M2M4M2U3M2NhM2U3MmNjM2Y3MWNkNDA3MWNmNDA3MGQwNDE2ZmQyNDI2ZmQzNDM2ZWQ1NDQ2ZGQ2NDU2Y2Q4NDU2Y2Q5NDY2YmRiNDc2YWRjNDg2OWRlNDk2OGRmNGE2OGUwNGM2N2UyNGQ2NmUzNGU2NWU0NGY2NGU1NTA2NGU3NTI2M2U4NTM2MmU5NTQ2MmVhNTY2MWViNTc2MGVjNTg2MGVkNWE1ZmVlNWI1ZWVmNWQ1ZWYwNWY1ZWYxNjA1ZGYyNjI1ZGYyNjQ1Y2YzNjU1Y2Y0Njc1Y2Y0Njk1Y2Y1NmI1Y2Y2NmM1Y2Y2NmU1Y2Y3NzA1Y2Y3NzI1Y2Y4NzQ1Y2Y4NzY1Y2Y5Nzg1ZGY5Nzk1ZGY5N2I1ZGZhN2Q1ZWZhN2Y1ZWZhODE1ZmZiODM1ZmZiODU2MGZiODc2MWZjODk2MWZjOGE2MmZjOGM2M2ZjOGU2NGZjOTA2NWZkOTI2NmZkOTQ2N2ZkOTY2OGZkOTg2OWZkOWE2YWZkOWI2YmZlOWQ2Y2ZlOWY2ZGZlYTE2ZWZlYTM2ZmZlYTU3MWZlYTc3MmZlYTk3M2ZlYWE3NGZlYWM3NmZlYWU3N2ZlYjA3OGZlYjI3YWZlYjQ3YmZlYjY3Y2ZlYjc3ZWZlYjk3ZmZlYmI4MWZlYmQ4MmZlYmY4NGZlYzE4NWZlYzI4N2ZlYzQ4OGZlYzY4YWZlYzg4Y2ZlY2E4ZGZlY2M4ZmZlY2Q5MGZlY2Y5MmZlZDE5NGZlZDM5NWZlZDU5N2ZlZDc5OWZlZDg5YWZkZGE5Y2ZkZGM5ZWZkZGVhMGZkZTBhMWZkZTJhM2ZkZTNhNWZkZTVhN2ZkZTdhOWZkZTlhYWZkZWJhY2ZjZWNhZWZjZWViMGZjZjBiMmZjZjJiNGZjZjRiNmZjZjZiOGZjZjdiOWZjZjliYmZjZmJiZGZjZmRiZiIpKSxGND1ENChBNCgiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTBhMDIwMjBjMDIwMjBlMDMwMjEwMDQwMzEyMDQwMzE0MDUwNDE3MDYwNDE5MDcwNTFiMDgwNTFkMDkwNjFmMGEwNzIyMGIwNzI0MGMwODI2MGQwODI5MGUwOTJiMTAwOTJkMTEwYTMwMTIwYTMyMTQwYjM0MTUwYjM3MTYwYjM5MTgwYzNjMTkwYzNlMWIwYzQxMWMwYzQzMWUwYzQ1MWYwYzQ4MjEwYzRhMjMwYzRjMjQwYzRmMjYwYzUxMjgwYjUzMjkwYjU1MmIwYjU3MmQwYjU5MmYwYTViMzEwYTVjMzIwYTVlMzQwYTVmMzYwOTYxMzgwOTYyMzkwOTYzM2IwOTY0M2QwOTY1M2UwOTY2NDAwYTY3NDIwYTY4NDQwYTY4NDUwYTY5NDcwYjZhNDkwYjZhNGEwYzZiNGMwYzZiNGQwZDZjNGYwZDZjNTEwZTZjNTIwZTZkNTQwZjZkNTUwZjZkNTcxMDZlNTkxMDZlNWExMTZlNWMxMjZlNWQxMjZlNWYxMzZlNjExMzZlNjIxNDZlNjQxNTZlNjUxNTZlNjcxNjZlNjkxNjZlNmExNzZlNmMxODZlNmQxODZlNmYxOTZlNzExOTZlNzIxYTZlNzQxYTZlNzUxYjZlNzcxYzZkNzgxYzZkN2ExZDZkN2MxZDZkN2QxZTZkN2YxZTZjODAxZjZjODIyMDZjODQyMDZiODUyMTZiODcyMTZiODgyMjZhOGEyMjZhOGMyMzY5OGQyMzY5OGYyNDY5OTAyNTY4OTIyNTY4OTMyNjY3OTUyNjY3OTcyNzY2OTgyNzY2OWEyODY1OWIyOTY0OWQyOTY0OWYyYTYzYTAyYTYzYTIyYjYyYTMyYzYxYTUyYzYwYTYyZDYwYTgyZTVmYTkyZTVlYWIyZjVlYWQzMDVkYWUzMDVjYjAzMTViYjEzMjVhYjMzMjVhYjQzMzU5YjYzNDU4YjczNTU3YjkzNTU2YmEzNjU1YmMzNzU0YmQzODUzYmYzOTUyYzAzYTUxYzEzYTUwYzMzYjRmYzQzYzRlYzYzZDRkYzczZTRjYzgzZjRiY2E0MDRhY2I0MTQ5Y2M0MjQ4Y2U0MzQ3Y2Y0NDQ2ZDA0NTQ1ZDI0NjQ0ZDM0NzQzZDQ0ODQyZDU0YTQxZDc0YjNmZDg0YzNlZDk0ZDNkZGE0ZTNjZGI1MDNiZGQ1MTNhZGU1MjM4ZGY1MzM3ZTA1NTM2ZTE1NjM1ZTI1NzM0ZTM1OTMzZTQ1YTMxZTU1YzMwZTY1ZDJmZTc1ZTJlZTg2MDJkZTk2MTJiZWE2MzJhZWI2NDI5ZWI2NjI4ZWM2NzI2ZWQ2OTI1ZWU2YTI0ZWY2YzIzZWY2ZTIxZjA2ZjIwZjE3MTFmZjE3MzFkZjI3NDFjZjM3NjFiZjM3ODE5ZjQ3OTE4ZjU3YjE3ZjU3ZDE1ZjY3ZTE0ZjY4MDEzZjc4MjEyZjc4NDEwZjg4NTBmZjg4NzBlZjg4OTBjZjk4YjBiZjk4YzBhZjk4ZTA5ZmE5MDA4ZmE5MjA3ZmE5NDA3ZmI5NjA2ZmI5NzA2ZmI5OTA2ZmI5YjA2ZmI5ZDA3ZmM5ZjA3ZmNhMTA4ZmNhMzA5ZmNhNTBhZmNhNjBjZmNhODBkZmNhYTBmZmNhYzExZmNhZTEyZmNiMDE0ZmNiMjE2ZmNiNDE4ZmJiNjFhZmJiODFkZmJiYTFmZmJiYzIxZmJiZTIzZmFjMDI2ZmFjMjI4ZmFjNDJhZmFjNjJkZjljNzJmZjljOTMyZjljYjM1ZjhjZDM3ZjhjZjNhZjdkMTNkZjdkMzQwZjZkNTQzZjZkNzQ2ZjVkOTQ5ZjVkYjRjZjRkZDRmZjRkZjUzZjRlMTU2ZjNlMzVhZjNlNTVkZjJlNjYxZjJlODY1ZjJlYTY5ZjFlYzZkZjFlZDcxZjFlZjc1ZjFmMTc5ZjJmMjdkZjJmNDgyZjNmNTg2ZjNmNjhhZjRmODhlZjVmOTkyZjZmYTk2ZjhmYjlhZjlmYzlkZmFmZGExZmNmZmE0IikpLFY0PUQ0KEE0KCIwZDA4ODcxMDA3ODgxMzA3ODkxNjA3OGExOTA2OGMxYjA2OGQxZDA2OGUyMDA2OGYyMjA2OTAyNDA2OTEyNjA1OTEyODA1OTIyYTA1OTMyYzA1OTQyZTA1OTUyZjA1OTYzMTA1OTczMzA1OTczNTA0OTgzNzA0OTkzODA0OWEzYTA0OWEzYzA0OWIzZTA0OWMzZjA0OWM0MTA0OWQ0MzAzOWU0NDAzOWU0NjAzOWY0ODAzOWY0OTAzYTA0YjAzYTE0YzAyYTE0ZTAyYTI1MDAyYTI1MTAyYTM1MzAyYTM1NTAyYTQ1NjAxYTQ1ODAxYTQ1OTAxYTU1YjAxYTU1YzAxYTY1ZTAxYTY2MDAxYTY2MTAwYTc2MzAwYTc2NDAwYTc2NjAwYTc2NzAwYTg2OTAwYTg2YTAwYTg2YzAwYTg2ZTAwYTg2ZjAwYTg3MTAwYTg3MjAxYTg3NDAxYTg3NTAxYTg3NzAxYTg3ODAxYTg3YTAyYTg3YjAyYTg3ZDAzYTg3ZTAzYTg4MDA0YTg4MTA0YTc4MzA1YTc4NDA1YTc4NjA2YTY4NzA3YTY4ODA4YTY4YTA5YTU4YjBhYTU4ZDBiYTU4ZTBjYTQ4ZjBkYTQ5MTBlYTM5MjBmYTM5NDEwYTI5NTExYTE5NjEzYTE5ODE0YTA5OTE1OWY5YTE2OWY5YzE3OWU5ZDE4OWQ5ZTE5OWRhMDFhOWNhMTFiOWJhMjFkOWFhMzFlOWFhNTFmOTlhNjIwOThhNzIxOTdhODIyOTZhYTIzOTVhYjI0OTRhYzI2OTRhZDI3OTNhZTI4OTJiMDI5OTFiMTJhOTBiMjJiOGZiMzJjOGViNDJlOGRiNTJmOGNiNjMwOGJiNzMxOGFiODMyODliYTMzODhiYjM0ODhiYzM1ODdiZDM3ODZiZTM4ODViZjM5ODRjMDNhODNjMTNiODJjMjNjODFjMzNkODBjNDNlN2ZjNTQwN2VjNjQxN2RjNzQyN2NjODQzN2JjOTQ0N2FjYTQ1N2FjYjQ2NzljYzQ3NzhjYzQ5NzdjZDRhNzZjZTRiNzVjZjRjNzRkMDRkNzNkMTRlNzJkMjRmNzFkMzUxNzFkNDUyNzBkNTUzNmZkNTU0NmVkNjU1NmRkNzU2NmNkODU3NmJkOTU4NmFkYTVhNmFkYTViNjlkYjVjNjhkYzVkNjdkZDVlNjZkZTVmNjVkZTYxNjRkZjYyNjNlMDYzNjNlMTY0NjJlMjY1NjFlMjY2NjBlMzY4NWZlNDY5NWVlNTZhNWRlNTZiNWRlNjZjNWNlNzZlNWJlNzZmNWFlODcwNTllOTcxNThlOTcyNTdlYTc0NTdlYjc1NTZlYjc2NTVlYzc3NTRlZDc5NTNlZDdhNTJlZTdiNTFlZjdjNTFlZjdlNTBmMDdmNGZmMDgwNGVmMTgxNGRmMTgzNGNmMjg0NGJmMzg1NGJmMzg3NGFmNDg4NDlmNDg5NDhmNThiNDdmNThjNDZmNjhkNDVmNjhmNDRmNzkwNDRmNzkxNDNmNzkzNDJmODk0NDFmODk1NDBmOTk3M2ZmOTk4M2VmOTlhM2VmYTliM2RmYTljM2NmYTllM2JmYjlmM2FmYmExMzlmYmEyMzhmY2EzMzhmY2E1MzdmY2E2MzZmY2E4MzVmY2E5MzRmZGFiMzNmZGFjMzNmZGFlMzJmZGFmMzFmZGIxMzBmZGIyMmZmZGI0MmZmZGI1MmVmZWI3MmRmZWI4MmNmZWJhMmNmZWJiMmJmZWJkMmFmZWJlMmFmZWMwMjlmZGMyMjlmZGMzMjhmZGM1MjdmZGM2MjdmZGM4MjdmZGNhMjZmZGNiMjZmY2NkMjVmY2NlMjVmY2QwMjVmY2QyMjVmYmQzMjRmYmQ1MjRmYmQ3MjRmYWQ4MjRmYWRhMjRmOWRjMjRmOWRkMjVmOGRmMjVmOGUxMjVmN2UyMjVmN2U0MjVmNmU2MjZmNmU4MjZmNWU5MjZmNWViMjdmNGVkMjdmM2VlMjdmM2YwMjdmMmYyMjdmMWY0MjZmMWY1MjVmMGY3MjRmMGY5MjEiKSksVTQ9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLGo0PXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpVNCx4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9O2Z1bmN0aW9uIEc0KHQpe3ZhciBlPXQrPSIiLG49ZS5pbmRleE9mKCI6Iik7cmV0dXJuIG4+PTAmJiJ4bWxucyIhPT0oZT10LnNsaWNlKDAsbikpJiYodD10LnNsaWNlKG4rMSkpLGo0Lmhhc093blByb3BlcnR5KGUpP3tzcGFjZTpqNFtlXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIFc0KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudCxuPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBuPT09VTQmJmUuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PVU0P2UuY3JlYXRlRWxlbWVudCh0KTplLmNyZWF0ZUVsZW1lbnROUyhuLHQpfX1mdW5jdGlvbiBxNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBZNCh0KXt2YXIgZT1HNCh0KTtyZXR1cm4oZS5sb2NhbD9xNDpXNCkoZSl9ZnVuY3Rpb24gWDQoKXt9ZnVuY3Rpb24gJDQodCl7cmV0dXJuIG51bGw9PXQ/WDQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiBLNCgpe3JldHVybltdfWZ1bmN0aW9uIFo0KHQpe3JldHVybiBudWxsPT10P0s0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19dmFyIEo0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXModCl9fTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50KXt2YXIgUTQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2lmKCFRNC5tYXRjaGVzKXt2YXIgdDY9UTQud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxRNC5tc01hdGNoZXNTZWxlY3Rvcnx8UTQubW96TWF0Y2hlc1NlbGVjdG9yfHxRNC5vTWF0Y2hlc1NlbGVjdG9yO0o0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0Ni5jYWxsKHRoaXMsdCl9fX19dmFyIGU2PUo0O2Z1bmN0aW9uIG42KHQpe3JldHVybiBuZXcgQXJyYXkodC5sZW5ndGgpfWZ1bmN0aW9uIGk2KHQsZSl7dGhpcy5vd25lckRvY3VtZW50PXQub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST10Lm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PXQsdGhpcy5fX2RhdGFfXz1lfWZ1bmN0aW9uIHI2KHQsZSxuLGkscixvKXtmb3IodmFyIGEscz0wLGw9ZS5sZW5ndGgsYz1vLmxlbmd0aDtzPGM7KytzKShhPWVbc10pPyhhLl9fZGF0YV9fPW9bc10saVtzXT1hKTpuW3NdPW5ldyBpNih0LG9bc10pO2Zvcig7czxsOysrcykoYT1lW3NdKSYmKHJbc109YSl9ZnVuY3Rpb24gbzYodCxlLG4saSxyLG8sYSl7dmFyIHMsbCxjLHU9e30saD1lLmxlbmd0aCxkPW8ubGVuZ3RoLHA9bmV3IEFycmF5KGgpO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmKHBbc109Yz0iJCIrYS5jYWxsKGwsbC5fX2RhdGFfXyxzLGUpLGMgaW4gdT9yW3NdPWw6dVtjXT1sKTtmb3Iocz0wO3M8ZDsrK3MpKGw9dVtjPSIkIithLmNhbGwodCxvW3NdLHMsbyldKT8oaVtzXT1sLGwuX19kYXRhX189b1tzXSx1W2NdPW51bGwpOm5bc109bmV3IGk2KHQsb1tzXSk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiZ1W3Bbc11dPT09bCYmKHJbc109bCl9ZnVuY3Rpb24gYTYodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gczYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIGw2KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gYzYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUpfX1mdW5jdGlvbiB1Nih0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUpfX1mdW5jdGlvbiBoNih0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCk6dGhpcy5zZXRBdHRyaWJ1dGUodCxuKX19ZnVuY3Rpb24gZDYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxuKX19ZnVuY3Rpb24gcDYodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudCYmdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx0LmRvY3VtZW50JiZ0fHx0LmRlZmF1bHRWaWV3fWZ1bmN0aW9uIGY2KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIG02KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsZSxuKX19ZnVuY3Rpb24gZzYodCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBpPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWk/dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KTp0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsaSxuKX19ZnVuY3Rpb24gXzYodCxlKXtyZXR1cm4gdC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGUpfHxwNih0KS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShlKX1mdW5jdGlvbiB5Nih0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX19ZnVuY3Rpb24gdjYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzW3RdPWV9fWZ1bmN0aW9uIGI2KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj9kZWxldGUgdGhpc1t0XTp0aGlzW3RdPW59fWZ1bmN0aW9uIHg2KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiB3Nih0KXtyZXR1cm4gdC5jbGFzc0xpc3R8fG5ldyBTNih0KX1mdW5jdGlvbiBTNih0KXt0aGlzLl9ub2RlPXQsdGhpcy5fbmFtZXM9eDYodC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX1mdW5jdGlvbiBNNih0LGUpe2Zvcih2YXIgbj13Nih0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4uYWRkKGVbaV0pfWZ1bmN0aW9uIEU2KHQsZSl7Zm9yKHZhciBuPXc2KHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5yZW1vdmUoZVtpXSl9ZnVuY3Rpb24gVDYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7TTYodGhpcyx0KX19ZnVuY3Rpb24gQzYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7RTYodGhpcyx0KX19ZnVuY3Rpb24gQTYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXsoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk/TTY6RTYpKHRoaXMsdCl9fWZ1bmN0aW9uIGs2KCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiBMNih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fWZ1bmN0aW9uIFA2KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBONigpe3RoaXMuaW5uZXJIVE1MPSIifWZ1bmN0aW9uIEk2KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9fWZ1bmN0aW9uIFI2KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gTzYoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gejYoKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBENigpe3JldHVybiBudWxsfWZ1bmN0aW9uIEI2KCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gSDYoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMSksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gRjYoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMCksdGhpcy5uZXh0U2libGluZyl9aTYucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjppNixhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LGUpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSxTNi5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt0aGlzLl9uYW1lcy5pbmRleE9mKHQpPDAmJih0aGlzLl9uYW1lcy5wdXNoKHQpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9uYW1lcy5pbmRleE9mKHQpO2U+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UoZSwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciBWNj17fSxVNj1udWxsO2Z1bmN0aW9uIGo2KHQsZSxuKXtyZXR1cm4gdD1HNih0LGUsbiksZnVuY3Rpb24oZSl7dmFyIG49ZS5yZWxhdGVkVGFyZ2V0O24mJihuPT09dGhpc3x8OCZuLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMpKXx8dC5jYWxsKHRoaXMsZSl9fWZ1bmN0aW9uIEc2KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIHI9VTY7VTY9aTt0cnl7dC5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxlLG4pfWZpbmFsbHl7VTY9cn19fWZ1bmN0aW9uIFc2KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihlPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOmV9fSkpfWZ1bmN0aW9uIHE2KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMuX19vbjtpZihlKXtmb3IodmFyIG4saT0wLHI9LTEsbz1lLmxlbmd0aDtpPG87KytpKW49ZVtpXSx0LnR5cGUmJm4udHlwZSE9PXQudHlwZXx8bi5uYW1lIT09dC5uYW1lP2VbKytyXT1uOnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLnR5cGUsbi5saXN0ZW5lcixuLmNhcHR1cmUpOysrcj9lLmxlbmd0aD1yOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBZNih0LGUsbil7dmFyIGk9VjYuaGFzT3duUHJvcGVydHkodC50eXBlKT9qNjpHNjtyZXR1cm4gZnVuY3Rpb24ocixvLGEpe3ZhciBzLGw9dGhpcy5fX29uLGM9aShlLG8sYSk7aWYobClmb3IodmFyIHU9MCxoPWwubGVuZ3RoO3U8aDsrK3UpaWYoKHM9bFt1XSkudHlwZT09PXQudHlwZSYmcy5uYW1lPT09dC5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXIscy5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXI9YyxzLmNhcHR1cmU9biksdm9pZChzLnZhbHVlPWUpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcih0LnR5cGUsYyxuKSxzPXt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSx2YWx1ZTplLGxpc3RlbmVyOmMsY2FwdHVyZTpufSxsP2wucHVzaChzKTp0aGlzLl9fb249W3NdfX1mdW5jdGlvbiBYNih0LGUsbil7dmFyIGk9cDYodCkscj1pLkN1c3RvbUV2ZW50OyJmdW5jdGlvbiI9PXR5cGVvZiByP3I9bmV3IHIoZSxuKToocj1pLmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLG4/KHIuaW5pdEV2ZW50KGUsbi5idWJibGVzLG4uY2FuY2VsYWJsZSksci5kZXRhaWw9bi5kZXRhaWwpOnIuaW5pdEV2ZW50KGUsITEsITEpKSx0LmRpc3BhdGNoRXZlbnQocil9ZnVuY3Rpb24gJDYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gWDYodGhpcyx0LGUpfX1mdW5jdGlvbiBLNih0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBYNih0aGlzLHQsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChWNj17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7dmFyIFo2PVtudWxsXTtmdW5jdGlvbiBKNih0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBRNigpe3JldHVybiBuZXcgSjYoW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSxaNil9ZnVuY3Rpb24gdDkodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P25ldyBKNihbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCldXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IEo2KFtbdF1dLFo2KX1KNi5wcm90b3R5cGU9UTYucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpKNixzZWxlY3Q6ZnVuY3Rpb24gZTkodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PSQ0KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGEscz1lW3JdLGw9cy5sZW5ndGgsYz1pW3JdPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkobz1zW3VdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyx1LHMpKSYmKCJfX2RhdGFfXyJpbiBvJiYoYS5fX2RhdGFfXz1vLl9fZGF0YV9fKSxjW3VdPWEpO3JldHVybiBuZXcgSjYoaSx0aGlzLl9wYXJlbnRzKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIG45KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1aNCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9W10scj1bXSxvPTA7bzxuOysrbylmb3IodmFyIGEscz1lW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKGE9c1tjXSkmJihpLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHMpKSxyLnB1c2goYSkpO3JldHVybiBuZXcgSjYoaSxyKX0sZmlsdGVyOmZ1bmN0aW9uIGk5KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1lNih0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgSjYoaSx0aGlzLl9wYXJlbnRzKX0sZGF0YTpmdW5jdGlvbiByOSh0LGUpe2lmKCF0KXJldHVybiBmPW5ldyBBcnJheSh0aGlzLnNpemUoKSksdT0tMSx0aGlzLmVhY2goKGZ1bmN0aW9uKHQpe2ZbKyt1XT10fSkpLGY7dmFyIG49ZT9vNjpyNixpPXRoaXMuX3BhcmVudHMscj10aGlzLl9ncm91cHM7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PShmdW5jdGlvbiBvKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0pKHQpKTtmb3IodmFyIGE9ci5sZW5ndGgscz1uZXcgQXJyYXkoYSksbD1uZXcgQXJyYXkoYSksYz1uZXcgQXJyYXkoYSksdT0wO3U8YTsrK3Upe3ZhciBoPWlbdV0sZD1yW3VdLHA9ZC5sZW5ndGgsZj10LmNhbGwoaCxoJiZoLl9fZGF0YV9fLHUsaSksbT1mLmxlbmd0aCxnPWxbdV09bmV3IEFycmF5KG0pLF89c1t1XT1uZXcgQXJyYXkobSk7bihoLGQsZyxfLGNbdV09bmV3IEFycmF5KHApLGYsZSk7Zm9yKHZhciB5LHYsYj0wLHg9MDtiPG07KytiKWlmKHk9Z1tiXSl7Zm9yKGI+PXgmJih4PWIrMSk7ISh2PV9beF0pJiYrK3g8bTspO3kuX25leHQ9dnx8bnVsbH19cmV0dXJuKHM9bmV3IEo2KHMsaSkpLl9lbnRlcj1sLHMuX2V4aXQ9YyxzfSxlbnRlcjpmdW5jdGlvbiBvOSgpe3JldHVybiBuZXcgSjYodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAobjYpLHRoaXMuX3BhcmVudHMpfSxleGl0OmZ1bmN0aW9uIGE5KCl7cmV0dXJuIG5ldyBKNih0aGlzLl9leGl0fHx0aGlzLl9ncm91cHMubWFwKG42KSx0aGlzLl9wYXJlbnRzKX0sbWVyZ2U6ZnVuY3Rpb24gczkodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPXQuX2dyb3VwcyxpPWUubGVuZ3RoLHI9TWF0aC5taW4oaSxuLmxlbmd0aCksbz1uZXcgQXJyYXkoaSksYT0wO2E8cjsrK2EpZm9yKHZhciBzLGw9ZVthXSxjPW5bYV0sdT1sLmxlbmd0aCxoPW9bYV09bmV3IEFycmF5KHUpLGQ9MDtkPHU7KytkKShzPWxbZF18fGNbZF0pJiYoaFtkXT1zKTtmb3IoO2E8aTsrK2Epb1thXT1lW2FdO3JldHVybiBuZXcgSjYobyx0aGlzLl9wYXJlbnRzKX0sb3JkZXI6ZnVuY3Rpb24gbDkoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9LTEsbj10Lmxlbmd0aDsrK2U8bjspZm9yKHZhciBpLHI9dFtlXSxvPXIubGVuZ3RoLTEsYT1yW29dOy0tbz49MDspKGk9cltvXSkmJihhJiZhIT09aS5uZXh0U2libGluZyYmYS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpLGEpLGE9aSk7cmV0dXJuIHRoaXN9LHNvcnQ6ZnVuY3Rpb24gYzkodCl7ZnVuY3Rpb24gZShlLG4pe3JldHVybiBlJiZuP3QoZS5fX2RhdGFfXyxuLl9fZGF0YV9fKTohZS0hbn10fHwodD1hNik7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGkpLG89MDtvPGk7KytvKXtmb3IodmFyIGEscz1uW29dLGw9cy5sZW5ndGgsYz1yW29dPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmKGNbdV09YSk7Yy5zb3J0KGUpfXJldHVybiBuZXcgSjYocix0aGlzLl9wYXJlbnRzKS5vcmRlcigpfSxjYWxsOmZ1bmN0aW9uIHU5KCl7dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyx0LmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfSxub2RlczpmdW5jdGlvbiBoOSgpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksZT0tMTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3RbKytlXT10aGlzfSkpLHR9LG5vZGU6ZnVuY3Rpb24gZDkoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9MCxuPXQubGVuZ3RoO2U8bjsrK2UpZm9yKHZhciBpPXRbZV0scj0wLG89aS5sZW5ndGg7cjxvOysrcil7dmFyIGE9aVtyXTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfSxzaXplOmZ1bmN0aW9uIHA5KCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpeysrdH0pKSx0fSxlbXB0eTpmdW5jdGlvbiBmOSgpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbiBtOSh0KXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49MCxpPWUubGVuZ3RoO248aTsrK24pZm9yKHZhciByLG89ZVtuXSxhPTAscz1vLmxlbmd0aDthPHM7KythKShyPW9bYV0pJiZ0LmNhbGwocixyLl9fZGF0YV9fLGEsbyk7cmV0dXJuIHRoaXN9LGF0dHI6ZnVuY3Rpb24gZzkodCxlKXt2YXIgbj1HNCh0KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBpPXRoaXMubm9kZSgpO3JldHVybiBuLmxvY2FsP2kuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTppLmdldEF0dHJpYnV0ZShuKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP24ubG9jYWw/bDY6czY6ImZ1bmN0aW9uIj09dHlwZW9mIGU/bi5sb2NhbD9kNjpoNjpuLmxvY2FsP3U2OmM2KShuLGUpKX0sc3R5bGU6ZnVuY3Rpb24gXzkodCxlLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1lP2Y2OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2c2Om02KSh0LGUsbnVsbD09bj8iIjpuKSk6XzYodGhpcy5ub2RlKCksdCl9LHByb3BlcnR5OmZ1bmN0aW9uIHk5KHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/eTY6ImZ1bmN0aW9uIj09dHlwZW9mIGU/YjY6djYpKHQsZSkpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uIHY5KHQsZSl7dmFyIG49eDYodCsiIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIGk9dzYodGhpcy5ub2RlKCkpLHI9LTEsbz1uLmxlbmd0aDsrK3I8bzspaWYoIWkuY29udGFpbnMobltyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/QTY6ZT9UNjpDNikobixlKSl9LHRleHQ6ZnVuY3Rpb24gYjkodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/azY6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P1A2Okw2KSh0KSk6dGhpcy5ub2RlKCkudGV4dENvbnRlbnR9LGh0bWw6ZnVuY3Rpb24geDkodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/TjY6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P1I2Okk2KSh0KSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxyYWlzZTpmdW5jdGlvbiB3OSgpe3JldHVybiB0aGlzLmVhY2goTzYpfSxsb3dlcjpmdW5jdGlvbiBTOSgpe3JldHVybiB0aGlzLmVhY2goejYpfSxhcHBlbmQ6ZnVuY3Rpb24gTTkodCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpZNCh0KTtyZXR1cm4gdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQoZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSkpfSxpbnNlcnQ6ZnVuY3Rpb24gRTkodCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgdD90Olk0KHQpLGk9bnVsbD09ZT9ENjoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOiQ0KGUpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUobi5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSkpfSxyZW1vdmU6ZnVuY3Rpb24gVDkoKXtyZXR1cm4gdGhpcy5lYWNoKEI2KX0sY2xvbmU6ZnVuY3Rpb24gQzkodCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/RjY6SDYpfSxkYXR1bTpmdW5jdGlvbiBBOSh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmZ1bmN0aW9uIGs5KHQsZSxuKXt2YXIgaSxyLG89VzYodCsiIiksYT1vLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2ZvcihzPWU/WTY6cTYsbnVsbD09biYmKG49ITEpLGk9MDtpPGE7KytpKXRoaXMuZWFjaChzKG9baV0sZSxuKSk7cmV0dXJuIHRoaXN9dmFyIHM9dGhpcy5ub2RlKCkuX19vbjtpZihzKWZvcih2YXIgbCxjPTAsdT1zLmxlbmd0aDtjPHU7KytjKWZvcihpPTAsbD1zW2NdO2k8YTsrK2kpaWYoKHI9b1tpXSkudHlwZT09PWwudHlwZSYmci5uYW1lPT09bC5uYW1lKXJldHVybiBsLnZhbHVlfSxkaXNwYXRjaDpmdW5jdGlvbiBMOSh0LGUpe3JldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBlP0s2OiQ2KSh0LGUpKX19O3ZhciBQOT0wO2Z1bmN0aW9uIE45KCl7cmV0dXJuIG5ldyBJOX1mdW5jdGlvbiBJOSgpe3RoaXMuXz0iQCIrKCsrUDkpLnRvU3RyaW5nKDM2KX1mdW5jdGlvbiBSOSgpe2Zvcih2YXIgdCxlPVU2O3Q9ZS5zb3VyY2VFdmVudDspZT10O3JldHVybiBlfWZ1bmN0aW9uIE85KHQsZSl7dmFyIG49dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIGk9bi5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBpLng9ZS5jbGllbnRYLGkueT1lLmNsaWVudFksWyhpPWkubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxpLnldfXZhciByPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW2UuY2xpZW50WC1yLmxlZnQtdC5jbGllbnRMZWZ0LGUuY2xpZW50WS1yLnRvcC10LmNsaWVudFRvcF19STkucHJvdG90eXBlPU45LnByb3RvdHlwZT17Y29uc3RydWN0b3I6STksZ2V0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl87IShlIGluIHQpOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHRbZV19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0W3RoaXMuX109ZX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl8gaW4gdCYmZGVsZXRlIHRbdGhpcy5fXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX07dmFyIHo5PU1hdGguUEksRDk9Mip6OSxCOT0xZS02LEg5PUQ5LUI5O2Z1bmN0aW9uIEY5KCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gVjkoKXtyZXR1cm4gbmV3IEY5fWZ1bmN0aW9uIFU5KHQpe3JldHVybiBmdW5jdGlvbiBlKCl7cmV0dXJuIHR9fUY5LnByb3RvdHlwZT1WOS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkY5LG1vdmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rZSl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe251bGwhPT10aGlzLl94MSYmKHRoaXMuX3gxPXRoaXMuX3gwLHRoaXMuX3kxPXRoaXMuX3kwLHRoaXMuXys9IloiKX0sbGluZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTCIrKHRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kxPStlKX0scXVhZHJhdGljQ3VydmVUbzpmdW5jdGlvbih0LGUsbixpKXt0aGlzLl8rPSJRIisgK3QrIiwiKyArZSsiLCIrKHRoaXMuX3gxPStuKSsiLCIrKHRoaXMuX3kxPStpKX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dGhpcy5fKz0iQyIrICt0KyIsIisgK2UrIiwiKyArbisiLCIrICtpKyIsIisodGhpcy5feDE9K3IpKyIsIisodGhpcy5feTE9K28pfSxhcmNUbzpmdW5jdGlvbih0LGUsbixpLHIpe3ZhciBvPXRoaXMuX3gxLGE9dGhpcy5feTEscz0obj0rbiktKHQ9K3QpLGw9KGk9K2kpLShlPStlKSxjPW8tdCx1PWEtZSxoPWMqYyt1KnU7aWYoKHI9K3IpPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIrcik7aWYobnVsbD09PXRoaXMuX3gxKXRoaXMuXys9Ik0iKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPWUpO2Vsc2UgaWYoaD5COSlpZihNYXRoLmFicyh1KnMtbCpjKT5COSYmcil7dmFyIGQ9bi1vLHA9aS1hLGY9cypzK2wqbCxtPWQqZCtwKnAsZz1NYXRoLnNxcnQoZiksXz1NYXRoLnNxcnQoaCkseT1yKk1hdGgudGFuKCh6OS1NYXRoLmFjb3MoKGYraC1tKS8oMipnKl8pKSkvMiksdj15L18sYj15L2c7TWF0aC5hYnModi0xKT5COSYmKHRoaXMuXys9IkwiKyh0K3YqYykrIiwiKyhlK3YqdSkpLHRoaXMuXys9IkEiK3IrIiwiK3IrIiwwLDAsIisgKyh1KmQ+YypwKSsiLCIrKHRoaXMuX3gxPXQrYipzKSsiLCIrKHRoaXMuX3kxPWUrYipsKX1lbHNlIHRoaXMuXys9IkwiKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPWUpfSxhcmM6ZnVuY3Rpb24odCxlLG4saSxyLG8pe3Q9K3QsZT0rZSxvPSEhbzt2YXIgYT0obj0rbikqTWF0aC5jb3MoaSkscz1uKk1hdGguc2luKGkpLGw9dCthLGM9ZStzLHU9MV5vLGg9bz9pLXI6ci1pO2lmKG48MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIituKTtudWxsPT09dGhpcy5feDE/dGhpcy5fKz0iTSIrbCsiLCIrYzooTWF0aC5hYnModGhpcy5feDEtbCk+Qjl8fE1hdGguYWJzKHRoaXMuX3kxLWMpPkI5KSYmKHRoaXMuXys9IkwiK2wrIiwiK2MpLG4mJihoPDAmJihoPWglRDkrRDkpLGg+SDk/dGhpcy5fKz0iQSIrbisiLCIrbisiLDAsMSwiK3UrIiwiKyh0LWEpKyIsIisoZS1zKSsiQSIrbisiLCIrbisiLDAsMSwiK3UrIiwiKyh0aGlzLl94MT1sKSsiLCIrKHRoaXMuX3kxPWMpOmg+QjkmJih0aGlzLl8rPSJBIituKyIsIituKyIsMCwiKyArKGg+PXo5KSsiLCIrdSsiLCIrKHRoaXMuX3gxPXQrbipNYXRoLmNvcyhyKSkrIiwiKyh0aGlzLl95MT1lK24qTWF0aC5zaW4ocikpKSl9LHJlY3Q6ZnVuY3Rpb24odCxlLG4saSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKSsiaCIrICtuKyJ2IisgK2krImgiKy1uKyJaIn0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX07dmFyIGo5PU1hdGguYWJzLEc5PU1hdGguYXRhbjIsVzk9TWF0aC5jb3MscTk9TWF0aC5tYXgsWTk9TWF0aC5taW4sWDk9TWF0aC5zaW4sJDk9TWF0aC5zcXJ0LEs5PTFlLTEyLFo5PU1hdGguUEksSjk9WjkvMixROT0yKlo5O2Z1bmN0aW9uIHQ4KHQpe3JldHVybiB0PjE/MDp0PC0xP1o5Ok1hdGguYWNvcyh0KX1mdW5jdGlvbiBlOCh0KXtyZXR1cm4gdD49MT9KOTp0PD0tMT8tSjk6TWF0aC5hc2luKHQpfWZ1bmN0aW9uIG44KHQpe3JldHVybiB0LmlubmVyUmFkaXVzfWZ1bmN0aW9uIGk4KHQpe3JldHVybiB0Lm91dGVyUmFkaXVzfWZ1bmN0aW9uIHI4KHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gbzgodCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24gYTgodCl7cmV0dXJuIHQmJnQucGFkQW5nbGV9ZnVuY3Rpb24gczgodCxlLG4saSxyLG8sYSxzKXt2YXIgbD1uLXQsYz1pLWUsdT1hLXIsaD1zLW8sZD0odSooZS1vKS1oKih0LXIpKS8oaCpsLXUqYyk7cmV0dXJuW3QrZCpsLGUrZCpjXX1mdW5jdGlvbiBsOCh0LGUsbixpLHIsbyxhKXt2YXIgcz10LW4sbD1lLWksYz0oYT9vOi1vKS8kOShzKnMrbCpsKSx1PWMqbCxoPS1jKnMsZD10K3UscD1lK2gsZj1uK3UsbT1pK2gsZz0oZCtmKS8yLF89KHArbSkvMix5PWYtZCx2PW0tcCxiPXkqeSt2KnYseD1yLW8sdz1kKm0tZipwLFM9KHY8MD8tMToxKSokOShxOSgwLHgqeCpiLXcqdykpLE09KHcqdi15KlMpL2IsRT0oLXcqeS12KlMpL2IsVD0odyp2K3kqUykvYixDPSgtdyp5K3YqUykvYixBPU0tZyxrPUUtXyxMPVQtZyxQPUMtXztyZXR1cm4gQSpBK2sqaz5MKkwrUCpQJiYoTT1ULEU9Qykse2N4Ok0sY3k6RSx4MDE6LXUseTAxOi1oLHgxMTpNKihyL3gtMSkseTExOkUqKHIveC0xKX19ZnVuY3Rpb24gYzgodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHU4KHQpe3JldHVybiBuZXcgYzgodCl9ZnVuY3Rpb24gaDgodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gZDgodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gcDgoKXt2YXIgdD1oOCxlPWQ4LG49VTkoITApLGk9bnVsbCxyPXU4LG89bnVsbDtmdW5jdGlvbiBhKGEpe3ZhciBzLGwsYyx1PWEubGVuZ3RoLGg9ITE7Zm9yKG51bGw9PWkmJihvPXIoYz1WOSgpKSkscz0wO3M8PXU7KytzKSEoczx1JiZuKGw9YVtzXSxzLGEpKT09PWgmJigoaD0haCk/by5saW5lU3RhcnQoKTpvLmxpbmVFbmQoKSksaCYmby5wb2ludCgrdChsLHMsYSksK2UobCxzLGEpKTtpZihjKXJldHVybiBvPW51bGwsYysiInx8bnVsbH1yZXR1cm4gYS54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6VTkoK2UpLGEpOnR9LGEueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxhKTplfSxhLmRlZmluZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSghIXQpLGEpOm59LGEuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxudWxsIT1pJiYobz1yKGkpKSxhKTpyfSxhLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/aT1vPW51bGw6bz1yKGk9dCksYSk6aX0sYX1mdW5jdGlvbiBmOCgpe3ZhciB0PWg4LGU9bnVsbCxuPVU5KDApLGk9ZDgscj1VOSghMCksbz1udWxsLGE9dTgscz1udWxsO2Z1bmN0aW9uIGwobCl7dmFyIGMsdSxoLGQscCxmPWwubGVuZ3RoLG09ITEsZz1uZXcgQXJyYXkoZiksXz1uZXcgQXJyYXkoZik7Zm9yKG51bGw9PW8mJihzPWEocD1WOSgpKSksYz0wO2M8PWY7KytjKXtpZighKGM8ZiYmcihkPWxbY10sYyxsKSk9PT1tKWlmKG09IW0pdT1jLHMuYXJlYVN0YXJ0KCkscy5saW5lU3RhcnQoKTtlbHNle2ZvcihzLmxpbmVFbmQoKSxzLmxpbmVTdGFydCgpLGg9Yy0xO2g+PXU7LS1oKXMucG9pbnQoZ1toXSxfW2hdKTtzLmxpbmVFbmQoKSxzLmFyZWFFbmQoKX1tJiYoZ1tjXT0rdChkLGMsbCksX1tjXT0rbihkLGMsbCkscy5wb2ludChlPytlKGQsYyxsKTpnW2NdLGk/K2koZCxjLGwpOl9bY10pKX1pZihwKXJldHVybiBzPW51bGwscCsiInx8bnVsbH1mdW5jdGlvbiBjKCl7cmV0dXJuIHA4KCkuZGVmaW5lZChyKS5jdXJ2ZShhKS5jb250ZXh0KG8pfXJldHVybiBsLng9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjpVOSgrbiksZT1udWxsLGwpOnR9LGwueDA9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpVOSgrZSksbCk6dH0sbC54MT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1udWxsPT10P251bGw6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSgrdCksbCk6ZX0sbC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGk9bnVsbCxsKTpufSxsLnkwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGwpOm59LGwueTE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGwpOml9LGwubGluZVgwPWwubGluZVkwPWZ1bmN0aW9uKCl7cmV0dXJuIGMoKS54KHQpLnkobil9LGwubGluZVkxPWZ1bmN0aW9uKCl7cmV0dXJuIGMoKS54KHQpLnkoaSl9LGwubGluZVgxPWZ1bmN0aW9uKCl7cmV0dXJuIGMoKS54KGUpLnkobil9LGwuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCEhdCksbCk6cn0sbC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LG51bGwhPW8mJihzPWEobykpLGwpOmF9LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9vPXM9bnVsbDpzPWEobz10KSxsKTpvfSxsfWZ1bmN0aW9uIG04KHQsZSl7cmV0dXJuIGU8dD8tMTplPnQ/MTplPj10PzA6TmFOfWZ1bmN0aW9uIGc4KHQpe3JldHVybiB0fWM4LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpfX19O3ZhciBfOD12OCh1OCk7ZnVuY3Rpb24geTgodCl7dGhpcy5fY3VydmU9dH1mdW5jdGlvbiB2OCh0KXtmdW5jdGlvbiBlKGUpe3JldHVybiBuZXcgeTgodChlKSl9cmV0dXJuIGUuX2N1cnZlPXQsZX1mdW5jdGlvbiBiOCh0KXt2YXIgZT10LmN1cnZlO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZSh2OCh0KSk6ZSgpLl9jdXJ2ZX0sdH1mdW5jdGlvbiB4OCgpe3JldHVybiBiOChwOCgpLmN1cnZlKF84KSl9ZnVuY3Rpb24gdzgoKXt2YXIgdD1mOCgpLmN1cnZlKF84KSxlPXQuY3VydmUsbj10LmxpbmVYMCxpPXQubGluZVgxLHI9dC5saW5lWTAsbz10LmxpbmVZMTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnN0YXJ0QW5nbGU9dC54MCxkZWxldGUgdC54MCx0LmVuZEFuZ2xlPXQueDEsZGVsZXRlIHQueDEsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdC5pbm5lclJhZGl1cz10LnkwLGRlbGV0ZSB0LnkwLHQub3V0ZXJSYWRpdXM9dC55MSxkZWxldGUgdC55MSx0LmxpbmVTdGFydEFuZ2xlPWZ1bmN0aW9uKCl7cmV0dXJuIGI4KG4oKSl9LGRlbGV0ZSB0LmxpbmVYMCx0LmxpbmVFbmRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBiOChpKCkpfSxkZWxldGUgdC5saW5lWDEsdC5saW5lSW5uZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4gYjgocigpKX0sZGVsZXRlIHQubGluZVkwLHQubGluZU91dGVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIGI4KG8oKSl9LGRlbGV0ZSB0LmxpbmVZMSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UodjgodCkpOmUoKS5fY3VydmV9LHR9ZnVuY3Rpb24gUzgodCxlKXtyZXR1cm5bKGU9K2UpKk1hdGguY29zKHQtPU1hdGguUEkvMiksZSpNYXRoLnNpbih0KV19eTgucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhU3RhcnQoKX0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFFbmQoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lRW5kKCl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy5fY3VydmUucG9pbnQoZSpNYXRoLnNpbih0KSxlKi1NYXRoLmNvcyh0KSl9fTt2YXIgTTg9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIEU4KHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBUOCh0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gQzgodCl7dmFyIGU9RTgsbj1UOCxpPWg4LHI9ZDgsbz1udWxsO2Z1bmN0aW9uIGEoKXt2YXIgYSxzPU04LmNhbGwoYXJndW1lbnRzKSxsPWUuYXBwbHkodGhpcyxzKSxjPW4uYXBwbHkodGhpcyxzKTtpZihvfHwobz1hPVY5KCkpLHQobywraS5hcHBseSh0aGlzLChzWzBdPWwscykpLCtyLmFwcGx5KHRoaXMscyksK2kuYXBwbHkodGhpcywoc1swXT1jLHMpKSwrci5hcHBseSh0aGlzLHMpKSxhKXJldHVybiBvPW51bGwsYSsiInx8bnVsbH1yZXR1cm4gYS5zb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxhKTplfSxhLnRhcmdldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGEpOm59LGEueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxhKTppfSxhLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSgrdCksYSk6cn0sYS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPW51bGw9PXQ/bnVsbDp0LGEpOm99LGF9ZnVuY3Rpb24gQTgodCxlLG4saSxyKXt0Lm1vdmVUbyhlLG4pLHQuYmV6aWVyQ3VydmVUbyhlPShlK2kpLzIsbixlLHIsaSxyKX1mdW5jdGlvbiBrOCh0LGUsbixpLHIpe3QubW92ZVRvKGUsbiksdC5iZXppZXJDdXJ2ZVRvKGUsbj0obityKS8yLGksbixpLHIpfWZ1bmN0aW9uIEw4KHQsZSxuLGkscil7dmFyIG89UzgoZSxuKSxhPVM4KGUsbj0obityKS8yKSxzPVM4KGksbiksbD1TOChpLHIpO3QubW92ZVRvKG9bMF0sb1sxXSksdC5iZXppZXJDdXJ2ZVRvKGFbMF0sYVsxXSxzWzBdLHNbMV0sbFswXSxsWzFdKX12YXIgUDg9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLnNxcnQoZS9aOSk7dC5tb3ZlVG8obiwwKSx0LmFyYygwLDAsbiwwLFE5KX19LE44PXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KGUvNSkvMjt0Lm1vdmVUbygtMypuLC1uKSx0LmxpbmVUbygtbiwtbiksdC5saW5lVG8oLW4sLTMqbiksdC5saW5lVG8obiwtMypuKSx0LmxpbmVUbyhuLC1uKSx0LmxpbmVUbygzKm4sLW4pLHQubGluZVRvKDMqbixuKSx0LmxpbmVUbyhuLG4pLHQubGluZVRvKG4sMypuKSx0LmxpbmVUbygtbiwzKm4pLHQubGluZVRvKC1uLG4pLHQubGluZVRvKC0zKm4sbiksdC5jbG9zZVBhdGgoKX19LEk4PU1hdGguc3FydCgxLzMpLFI4PTIqSTgsTzg9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLnNxcnQoZS9SOCksaT1uKkk4O3QubW92ZVRvKDAsLW4pLHQubGluZVRvKGksMCksdC5saW5lVG8oMCxuKSx0LmxpbmVUbygtaSwwKSx0LmNsb3NlUGF0aCgpfX0sejg9TWF0aC5zaW4oWjkvMTApL01hdGguc2luKDcqWjkvMTApLEQ4PU1hdGguc2luKFE5LzEwKSp6OCxCOD0tTWF0aC5jb3MoUTkvMTApKno4LEg4PXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KC44OTA4MTMwOTE1MjkyODUyKmUpLGk9RDgqbixyPUI4Km47dC5tb3ZlVG8oMCwtbiksdC5saW5lVG8oaSxyKTtmb3IodmFyIG89MTtvPDU7KytvKXt2YXIgYT1ROSpvLzUscz1NYXRoLmNvcyhhKSxsPU1hdGguc2luKGEpO3QubGluZVRvKGwqbiwtcypuKSx0LmxpbmVUbyhzKmktbCpyLGwqaStzKnIpfXQuY2xvc2VQYXRoKCl9fSxGOD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydChlKSxpPS1uLzI7dC5yZWN0KGksaSxuLG4pfX0sVjg9TWF0aC5zcXJ0KDMpLFU4PXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49LU1hdGguc3FydChlLygzKlY4KSk7dC5tb3ZlVG8oMCwyKm4pLHQubGluZVRvKC1WOCpuLC1uKSx0LmxpbmVUbyhWOCpuLC1uKSx0LmNsb3NlUGF0aCgpfX0sajg9LS41LEc4PU1hdGguc3FydCgzKS8yLFc4PTEvTWF0aC5zcXJ0KDEyKSxxOD0zKihXOC8yKzEpLFk4PXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KGUvcTgpLGk9bi8yLHI9bipXOCxvPWksYT1uKlc4K24scz0tbyxsPWE7dC5tb3ZlVG8oaSxyKSx0LmxpbmVUbyhvLGEpLHQubGluZVRvKHMsbCksdC5saW5lVG8oajgqaS1HOCpyLEc4KmkrajgqciksdC5saW5lVG8oajgqby1HOCphLEc4Km8rajgqYSksdC5saW5lVG8oajgqcy1HOCpsLEc4KnMrajgqbCksdC5saW5lVG8oajgqaStHOCpyLGo4KnItRzgqaSksdC5saW5lVG8oajgqbytHOCphLGo4KmEtRzgqbyksdC5saW5lVG8oajgqcytHOCpsLGo4KmwtRzgqcyksdC5jbG9zZVBhdGgoKX19LFg4PVtQOCxOOCxPOCxGOCxIOCxVOCxZOF07ZnVuY3Rpb24gJDgoKXt9ZnVuY3Rpb24gSzgodCxlLG4pe3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbygoMip0Ll94MCt0Ll94MSkvMywoMip0Ll95MCt0Ll95MSkvMywodC5feDArMip0Ll94MSkvMywodC5feTArMip0Ll95MSkvMywodC5feDArNCp0Ll94MStlKS82LCh0Ll95MCs0KnQuX3kxK24pLzYpfWZ1bmN0aW9uIFo4KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBKOCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gUTgodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHQ3KHQsZSl7dGhpcy5fYmFzaXM9bmV3IFo4KHQpLHRoaXMuX2JldGE9ZX1aOC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAzOks4KHRoaXMsdGhpcy5feDEsdGhpcy5feTEpO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2NvbnRleHQubGluZVRvKCg1KnRoaXMuX3gwK3RoaXMuX3gxKS82LCg1KnRoaXMuX3kwK3RoaXMuX3kxKS82KTtkZWZhdWx0Oks4KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWV9fSxKOC5wcm90b3R5cGU9e2FyZWFTdGFydDokOCxhcmVhRW5kOiQ4LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MisyKnRoaXMuX3gzKS8zLCh0aGlzLl95MisyKnRoaXMuX3kzKS8zKSx0aGlzLl9jb250ZXh0LmxpbmVUbygodGhpcy5feDMrMip0aGlzLl94MikvMywodGhpcy5feTMrMip0aGlzLl95MikvMyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCl9fSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gyPXQsdGhpcy5feTI9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94Mz10LHRoaXMuX3kzPWU7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDQ9dCx0aGlzLl95ND1lLHRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYsKHRoaXMuX3kwKzQqdGhpcy5feTErZSkvNik7YnJlYWs7ZGVmYXVsdDpLOCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0sUTgucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7dmFyIG49KHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNixpPSh0aGlzLl95MCs0KnRoaXMuX3kxK2UpLzY7dGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhuLGkpOnRoaXMuX2NvbnRleHQubW92ZVRvKG4saSk7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpLOCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0sdDcucHJvdG90eXBlPXtsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W10sdGhpcy5fYmFzaXMubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LGU9dGhpcy5feSxuPXQubGVuZ3RoLTE7aWYobj4wKWZvcih2YXIgaSxyPXRbMF0sbz1lWzBdLGE9dFtuXS1yLHM9ZVtuXS1vLGw9LTE7KytsPD1uOyl0aGlzLl9iYXNpcy5wb2ludCh0aGlzLl9iZXRhKnRbbF0rKDEtdGhpcy5fYmV0YSkqKHIrKGk9bC9uKSphKSx0aGlzLl9iZXRhKmVbbF0rKDEtdGhpcy5fYmV0YSkqKG8raSpzKSk7dGhpcy5feD10aGlzLl95PW51bGwsdGhpcy5fYmFzaXMubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtlKX19O3ZhciBlNz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiAxPT09ZT9uZXcgWjgodCk6bmV3IHQ3KHQsZSl9cmV0dXJuIG4uYmV0YT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSguODUpO2Z1bmN0aW9uIG43KHQsZSxuKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8odC5feDErdC5fayoodC5feDItdC5feDApLHQuX3kxK3QuX2sqKHQuX3kyLXQuX3kwKSx0Ll94Mit0Ll9rKih0Ll94MS1lKSx0Ll95Mit0Ll9rKih0Ll95MS1uKSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gaTcodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1lKS82fWk3LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzpuNyh0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDE9dCx0aGlzLl95MT1lO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6bjcodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciByNz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBuZXcgaTcodCxlKX1yZXR1cm4gbi50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKDApO2Z1bmN0aW9uIG83KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1vNy5wcm90b3R5cGU9e2FyZWFTdGFydDokOCxhcmVhRW5kOiQ4LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDM9dCx0aGlzLl95Mz1lO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0PXQsdGhpcy5feTQ9ZSk7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDU9dCx0aGlzLl95NT1lO2JyZWFrO2RlZmF1bHQ6bjcodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBhNz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBuZXcgbzcodCxlKX1yZXR1cm4gbi50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKDApO2Z1bmN0aW9uIHM3KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1zNy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpuNyh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIGw3PShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIG5ldyBzNyh0LGUpfXJldHVybiBuLnRlbnNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoMCk7ZnVuY3Rpb24gYzcodCxlLG4pe3ZhciBpPXQuX3gxLHI9dC5feTEsbz10Ll94MixhPXQuX3kyO2lmKHQuX2wwMV9hPks5KXt2YXIgcz0yKnQuX2wwMV8yYSszKnQuX2wwMV9hKnQuX2wxMl9hK3QuX2wxMl8yYSxsPTMqdC5fbDAxX2EqKHQuX2wwMV9hK3QuX2wxMl9hKTtpPShpKnMtdC5feDAqdC5fbDEyXzJhK3QuX3gyKnQuX2wwMV8yYSkvbCxyPShyKnMtdC5feTAqdC5fbDEyXzJhK3QuX3kyKnQuX2wwMV8yYSkvbH1pZih0Ll9sMjNfYT5LOSl7dmFyIGM9Mip0Ll9sMjNfMmErMyp0Ll9sMjNfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsdT0zKnQuX2wyM19hKih0Ll9sMjNfYSt0Ll9sMTJfYSk7bz0obypjK3QuX3gxKnQuX2wyM18yYS1lKnQuX2wxMl8yYSkvdSxhPShhKmMrdC5feTEqdC5fbDIzXzJhLW4qdC5fbDEyXzJhKS91fXQuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhpLHIsbyxhLHQuX3gyLHQuX3kyKX1mdW5jdGlvbiB1Nyh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1lfXU3LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gyLHRoaXMuX3kyKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6YzcodGhpcyx0LGUpfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgaDc9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gZT9uZXcgdTcodCxlKTpuZXcgaTcodCwwKX1yZXR1cm4gbi5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSguNSk7ZnVuY3Rpb24gZDcodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9ZX1kNy5wcm90b3R5cGU9e2FyZWFTdGFydDokOCxhcmVhRW5kOiQ4LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PWUpO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9ZTticmVhaztkZWZhdWx0OmM3KHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIHA3PShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGU/bmV3IGQ3KHQsZSk6bmV3IG83KHQsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjUpO2Z1bmN0aW9uIGY3KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9ZjcucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OmM3KHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIG03PShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGU/bmV3IGY3KHQsZSk6bmV3IHM3KHQsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjUpO2Z1bmN0aW9uIGc3KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBfNyh0KXtyZXR1cm4gdDwwPy0xOjF9ZnVuY3Rpb24geTcodCxlLG4pe3ZhciBpPXQuX3gxLXQuX3gwLHI9ZS10Ll94MSxvPSh0Ll95MS10Ll95MCkvKGl8fHI8MCYmLTApLGE9KG4tdC5feTEpLyhyfHxpPDAmJi0wKSxzPShvKnIrYSppKS8oaStyKTtyZXR1cm4oXzcobykrXzcoYSkpKk1hdGgubWluKE1hdGguYWJzKG8pLE1hdGguYWJzKGEpLC41Kk1hdGguYWJzKHMpKXx8MH1mdW5jdGlvbiB2Nyh0LGUpe3ZhciBuPXQuX3gxLXQuX3gwO3JldHVybiBuPygzKih0Ll95MS10Ll95MCkvbi1lKS8yOmV9ZnVuY3Rpb24gYjcodCxlLG4pe3ZhciBpPXQuX3gwLHI9dC5feDEsbz10Ll95MSxhPShyLWkpLzM7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGkrYSx0Ll95MCthKmUsci1hLG8tYSpuLHIsbyl9ZnVuY3Rpb24geDcodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHc3KHQpe3RoaXMuX2NvbnRleHQ9bmV3IFM3KHQpfWZ1bmN0aW9uIFM3KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBNNyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gRTcodCl7dmFyIGUsbixpPXQubGVuZ3RoLTEscj1uZXcgQXJyYXkoaSksbz1uZXcgQXJyYXkoaSksYT1uZXcgQXJyYXkoaSk7Zm9yKHJbMF09MCxvWzBdPTIsYVswXT10WzBdKzIqdFsxXSxlPTE7ZTxpLTE7KytlKXJbZV09MSxvW2VdPTQsYVtlXT00KnRbZV0rMip0W2UrMV07Zm9yKHJbaS0xXT0yLG9baS0xXT03LGFbaS0xXT04KnRbaS0xXSt0W2ldLGU9MTtlPGk7KytlKW9bZV0tPW49cltlXS9vW2UtMV0sYVtlXS09biphW2UtMV07Zm9yKHJbaS0xXT1hW2ktMV0vb1tpLTFdLGU9aS0yO2U+PTA7LS1lKXJbZV09KGFbZV0tcltlKzFdKS9vW2VdO2ZvcihvW2ktMV09KHRbaV0rcltpLTFdKS8yLGU9MDtlPGktMTsrK2Upb1tlXT0yKnRbZSsxXS1yW2UrMV07cmV0dXJuW3Isb119ZnVuY3Rpb24gVDcodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fdD1lfWZ1bmN0aW9uIEM3KHQsZSl7aWYoKHI9dC5sZW5ndGgpPjEpZm9yKHZhciBuLGkscixvPTEsYT10W2VbMF1dLHM9YS5sZW5ndGg7bzxyOysrbylmb3IoaT1hLGE9dFtlW29dXSxuPTA7bjxzOysrbilhW25dWzFdKz1hW25dWzBdPWlzTmFOKGlbbl1bMV0pP2lbbl1bMF06aVtuXVsxXX1mdW5jdGlvbiBBNyh0KXtmb3IodmFyIGU9dC5sZW5ndGgsbj1uZXcgQXJyYXkoZSk7LS1lPj0wOyluW2VdPWU7cmV0dXJuIG59ZnVuY3Rpb24gazcodCxlKXtyZXR1cm4gdFtlXX1mdW5jdGlvbiBMNyh0KXt2YXIgZT10Lm1hcChQNyk7cmV0dXJuIEE3KHQpLnNvcnQoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGVbdF0tZVtuXX0pKX1mdW5jdGlvbiBQNyh0KXtmb3IodmFyIGUsbj0wLGk9LTEscj10Lmxlbmd0aDsrK2k8cjspKGU9K3RbaV1bMV0pJiYobis9ZSk7cmV0dXJuIG59ZzcucHJvdG90eXBlPXthcmVhU3RhcnQ6JDgsYXJlYUVuZDokOCxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7dD0rdCxlPStlLHRoaXMuX3BvaW50P3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6KHRoaXMuX3BvaW50PTEsdGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKSl9fSx4Ny5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT10aGlzLl90MD1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gxLHRoaXMuX3kxKTticmVhaztjYXNlIDM6YjcodGhpcyx0aGlzLl90MCx2Nyh0aGlzLHRoaXMuX3QwKSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3ZhciBuPU5hTjtpZihlPStlLCh0PSt0KSE9PXRoaXMuX3gxfHxlIT09dGhpcy5feTEpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsYjcodGhpcyx2Nyh0aGlzLG49eTcodGhpcyx0LGUpKSxuKTticmVhaztkZWZhdWx0OmI3KHRoaXMsdGhpcy5fdDAsbj15Nyh0aGlzLHQsZSkpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9ZSx0aGlzLl90MD1ufX19LCh3Ny5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh4Ny5wcm90b3R5cGUpKS5wb2ludD1mdW5jdGlvbih0LGUpe3g3LnByb3RvdHlwZS5wb2ludC5jYWxsKHRoaXMsZSx0KX0sUzcucHJvdG90eXBlPXttb3ZlVG86ZnVuY3Rpb24odCxlKXt0aGlzLl9jb250ZXh0Lm1vdmVUbyhlLHQpfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXt0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl9jb250ZXh0LmxpbmVUbyhlLHQpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oZSx0LGksbixvLHIpfX0sTTcucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD1bXSx0aGlzLl95PVtdfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5feCxlPXRoaXMuX3ksbj10Lmxlbmd0aDtpZihuKWlmKHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odFswXSxlWzBdKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0WzBdLGVbMF0pLDI9PT1uKXRoaXMuX2NvbnRleHQubGluZVRvKHRbMV0sZVsxXSk7ZWxzZSBmb3IodmFyIGk9RTcodCkscj1FNyhlKSxvPTAsYT0xO2E8bjsrK28sKythKXRoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhpWzBdW29dLHJbMF1bb10saVsxXVtvXSxyWzFdW29dLHRbYV0sZVthXSk7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09bikmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmUsdGhpcy5feD10aGlzLl95PW51bGx9LHBvaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy5feC5wdXNoKCt0KSx0aGlzLl95LnB1c2goK2UpfX0sVDcucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD10aGlzLl95PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MDx0aGlzLl90JiZ0aGlzLl90PDEmJjI9PT10aGlzLl9wb2ludCYmdGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feCx0aGlzLl95KSwodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT49MCYmKHRoaXMuX3Q9MS10aGlzLl90LHRoaXMuX2xpbmU9MS10aGlzLl9saW5lKX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OmlmKHRoaXMuX3Q8PTApdGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feCxlKSx0aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpO2Vsc2V7dmFyIG49dGhpcy5feCooMS10aGlzLl90KSt0KnRoaXMuX3Q7dGhpcy5fY29udGV4dC5saW5lVG8obix0aGlzLl95KSx0aGlzLl9jb250ZXh0LmxpbmVUbyhuLGUpfX10aGlzLl94PXQsdGhpcy5feT1lfX07dmFyIE43PW5ldyBEYXRlLEk3PW5ldyBEYXRlO2Z1bmN0aW9uIFI3KHQsZSxuLGkpe2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQoZT1uZXcgRGF0ZSgrZSkpLGV9cmV0dXJuIHIuZmxvb3I9cixyLmNlaWw9ZnVuY3Rpb24obil7cmV0dXJuIHQobj1uZXcgRGF0ZShuLTEpKSxlKG4sMSksdChuKSxufSxyLnJvdW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXIodCksbj1yLmNlaWwodCk7cmV0dXJuIHQtZTxuLXQ/ZTpufSxyLm9mZnNldD1mdW5jdGlvbih0LG4pe3JldHVybiBlKHQ9bmV3IERhdGUoK3QpLG51bGw9PW4/MTpNYXRoLmZsb29yKG4pKSx0fSxyLnJhbmdlPWZ1bmN0aW9uKG4saSxvKXt2YXIgYSxzPVtdO2lmKG49ci5jZWlsKG4pLG89bnVsbD09bz8xOk1hdGguZmxvb3IobyksIShuPGkmJm8+MCkpcmV0dXJuIHM7ZG97cy5wdXNoKGE9bmV3IERhdGUoK24pKSxlKG4sbyksdChuKX13aGlsZShhPG4mJm48aSk7cmV0dXJuIHN9LHIuZmlsdGVyPWZ1bmN0aW9uKG4pe3JldHVybiBSNygoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsaSl7aWYodD49dClpZihpPDApZm9yKDsrK2k8PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLWk+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoci5jb3VudD1mdW5jdGlvbihlLGkpe3JldHVybiBONy5zZXRUaW1lKCtlKSxJNy5zZXRUaW1lKCtpKSx0KE43KSx0KEk3KSxNYXRoLmZsb29yKG4oTjcsSTcpKX0sci5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP3IuZmlsdGVyKGk/ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY291bnQoMCxlKSV0PT0wfSk6cjpudWxsfSkscn12YXIgTzc9UjcoKGZ1bmN0aW9uKCl7fSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUtdH0pKTtPNy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP1I3KChmdW5jdGlvbihlKXtlLnNldFRpbWUoTWF0aC5mbG9vcihlL3QpKnQpfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRUaW1lKCtlK24qdCl9KSwoZnVuY3Rpb24oZSxuKXtyZXR1cm4obi1lKS90fSkpOk83Om51bGx9O3ZhciB6Nz1PNy5yYW5nZSxENz0xZTMsQjc9NmU0LEg3PTM2ZTUsRjc9ODY0ZTUsVjc9NjA0OGU1LFU3PVI3KChmdW5jdGlvbih0KXt0LnNldFRpbWUoTWF0aC5mbG9vcih0L0Q3KSpENyl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSpENyl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9EN30pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENTZWNvbmRzKCl9KSksajc9VTcucmFuZ2UsRzc9UjcoKGZ1bmN0aW9uKHQpe3Quc2V0VGltZShNYXRoLmZsb29yKHQvQjcpKkI3KX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKkI3KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0I3fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX0pKSxXNz1HNy5yYW5nZSxxNz1SNygoZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRUaW1lem9uZU9mZnNldCgpKkI3JUg3O2U8MCYmKGUrPUg3KSx0LnNldFRpbWUoTWF0aC5mbG9vcigoK3QtZSkvSDcpKkg3K2UpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqSDcpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvSDd9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pKSxZNz1xNy5yYW5nZSxYNz1SNygoZnVuY3Rpb24odCl7dC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKkI3KS9GN30pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCktMX0pKSwkNz1YNy5yYW5nZTtmdW5jdGlvbiBLNyh0KXtyZXR1cm4gUjcoKGZ1bmN0aW9uKGUpe2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs3LXQpJTcpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKkI3KS9WN30pKX12YXIgWjc9SzcoMCksSjc9SzcoMSksUTc9SzcoMiksdHR0PUs3KDMpLGV0dD1LNyg0KSxudHQ9SzcoNSksaXR0PUs3KDYpLHJ0dD1aNy5yYW5nZSxvdHQ9SjcucmFuZ2UsYXR0PVE3LnJhbmdlLHN0dD10dHQucmFuZ2UsbHR0PWV0dC5yYW5nZSxjdHQ9bnR0LnJhbmdlLHV0dD1pdHQucmFuZ2UsaHR0PVI3KChmdW5jdGlvbih0KXt0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0TW9udGgodC5nZXRNb250aCgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0TW9udGgoKS10LmdldE1vbnRoKCkrMTIqKGUuZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCkpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSksZHR0PWh0dC5yYW5nZSxwdHQ9UjcoKGZ1bmN0aW9uKHQpe3Quc2V0TW9udGgoMCwxKSx0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRGdWxsWWVhcigpfSkpO3B0dC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP1I3KChmdW5jdGlvbihlKXtlLnNldEZ1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRGdWxsWWVhcigpL3QpKnQpLGUuc2V0TW9udGgoMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgZnR0PXB0dC5yYW5nZSxtdHQ9UjcoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDU2Vjb25kcygwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqQjcpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvQjd9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTWludXRlcygpfSkpLGd0dD1tdHQucmFuZ2UsX3R0PVI3KChmdW5jdGlvbih0KXt0LnNldFVUQ01pbnV0ZXMoMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqSDcpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvSDd9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDSG91cnMoKX0pKSx5dHQ9X3R0LnJhbmdlLHZ0dD1SNygoZnVuY3Rpb24odCl7dC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0Y3fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSkpLGJ0dD12dHQucmFuZ2U7ZnVuY3Rpb24geHR0KHQpe3JldHVybiBSNygoZnVuY3Rpb24oZSl7ZS5zZXRVVENEYXRlKGUuZ2V0VVRDRGF0ZSgpLShlLmdldFVUQ0RheSgpKzctdCklNyksZS5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKSs3KmUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvVjd9KSl9dmFyIHd0dD14dHQoMCksU3R0PXh0dCgxKSxNdHQ9eHR0KDIpLEV0dD14dHQoMyksVHR0PXh0dCg0KSxDdHQ9eHR0KDUpLEF0dD14dHQoNiksa3R0PXd0dC5yYW5nZSxMdHQ9U3R0LnJhbmdlLFB0dD1NdHQucmFuZ2UsTnR0PUV0dC5yYW5nZSxJdHQ9VHR0LnJhbmdlLFJ0dD1DdHQucmFuZ2UsT3R0PUF0dC5yYW5nZSx6dHQ9UjcoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDRGF0ZSgxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENNb250aCh0LmdldFVUQ01vbnRoKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRVVENNb250aCgpLXQuZ2V0VVRDTW9udGgoKSsxMiooZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTW9udGgoKX0pKSxEdHQ9enR0LnJhbmdlLEJ0dD1SNygoZnVuY3Rpb24odCl7dC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0Z1bGxZZWFyKHQuZ2V0VVRDRnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCl9KSk7QnR0LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/UjcoKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcihlLmdldFVUQ0Z1bGxZZWFyKCkvdCkqdCksZS5zZXRVVENNb250aCgwLDEpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24oZSxuKXtlLnNldFVUQ0Z1bGxZZWFyKGUuZ2V0VVRDRnVsbFllYXIoKStuKnQpfSkpOm51bGx9O3ZhciBIdHQ9QnR0LnJhbmdlLEZ0dD1uZXcgRGF0ZSxWdHQ9bmV3IERhdGU7ZnVuY3Rpb24gVXR0KHQsZSxuLGkpe2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQoZT0wPT09YXJndW1lbnRzLmxlbmd0aD9uZXcgRGF0ZTpuZXcgRGF0ZSgrZSkpLGV9cmV0dXJuIHIuZmxvb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZT1uZXcgRGF0ZSgrZSkpLGV9LHIuY2VpbD1mdW5jdGlvbihuKXtyZXR1cm4gdChuPW5ldyBEYXRlKG4tMSkpLGUobiwxKSx0KG4pLG59LHIucm91bmQ9ZnVuY3Rpb24odCl7dmFyIGU9cih0KSxuPXIuY2VpbCh0KTtyZXR1cm4gdC1lPG4tdD9lOm59LHIub2Zmc2V0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodD1uZXcgRGF0ZSgrdCksbnVsbD09bj8xOk1hdGguZmxvb3IobikpLHR9LHIucmFuZ2U9ZnVuY3Rpb24obixpLG8pe3ZhciBhLHM9W107aWYobj1yLmNlaWwobiksbz1udWxsPT1vPzE6TWF0aC5mbG9vcihvKSwhKG48aSYmbz4wKSlyZXR1cm4gcztkb3tzLnB1c2goYT1uZXcgRGF0ZSgrbikpLGUobixvKSx0KG4pfXdoaWxlKGE8biYmbjxpKTtyZXR1cm4gc30sci5maWx0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIFV0dCgoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsaSl7aWYodD49dClpZihpPDApZm9yKDsrK2k8PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLWk+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoci5jb3VudD1mdW5jdGlvbihlLGkpe3JldHVybiBGdHQuc2V0VGltZSgrZSksVnR0LnNldFRpbWUoK2kpLHQoRnR0KSx0KFZ0dCksTWF0aC5mbG9vcihuKEZ0dCxWdHQpKX0sci5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP3IuZmlsdGVyKGk/ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY291bnQoMCxlKSV0PT0wfSk6cjpudWxsfSkscn12YXIganR0PTg2NGU1LEd0dD02MDQ4ZTUsV3R0PVV0dCgoZnVuY3Rpb24odCl7dC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtNmU0KihlLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSkvanR0fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERhdGUoKS0xfSkpO2Z1bmN0aW9uIHF0dCh0KXtyZXR1cm4gVXR0KChmdW5jdGlvbihlKXtlLnNldERhdGUoZS5nZXREYXRlKCktKGUuZ2V0RGF5KCkrNy10KSU3KSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10LTZlNCooZS5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkpL0d0dH0pKX12YXIgWXR0PXF0dCgwKSxYdHQ9cXR0KDEpO3F0dCgyKSxxdHQoMyk7dmFyICR0dD1xdHQoNCk7cXR0KDUpLHF0dCg2KTt2YXIgS3R0PVV0dCgoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KSk7S3R0LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/VXR0KChmdW5jdGlvbihlKXtlLnNldEZ1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRGdWxsWWVhcigpL3QpKnQpLGUuc2V0TW9udGgoMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgWnR0PUt0dCxKdHQ9VXR0KChmdW5jdGlvbih0KXt0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvanR0fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSkpO2Z1bmN0aW9uIFF0dCh0KXtyZXR1cm4gVXR0KChmdW5jdGlvbihlKXtlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCktKGUuZ2V0VVRDRGF5KCkrNy10KSU3KSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9HdHR9KSl9dmFyIHRldD1RdHQoMCksZWV0PVF0dCgxKTtRdHQoMiksUXR0KDMpO3ZhciBuZXQ9UXR0KDQpO1F0dCg1KSxRdHQoNik7dmFyIGlldD1VdHQoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpfSkpO2lldC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP1V0dCgoZnVuY3Rpb24oZSl7ZS5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0VVRDRnVsbFllYXIoKS90KSp0KSxlLnNldFVUQ01vbnRoKDAsMSksZS5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0VVRDRnVsbFllYXIoZS5nZXRVVENGdWxsWWVhcigpK24qdCl9KSk6bnVsbH07dmFyIHJldD1pZXQ7ZnVuY3Rpb24gb2V0KHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIGU9bmV3IERhdGUoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpO3JldHVybiBlLnNldEZ1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUodC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKX1mdW5jdGlvbiBhZXQodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZShEYXRlLlVUQygtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpO3JldHVybiBlLnNldFVUQ0Z1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSl9ZnVuY3Rpb24gc2V0KHQpe3JldHVybnt5OnQsbTowLGQ6MSxIOjAsTTowLFM6MCxMOjB9fWZ1bmN0aW9uIGNldCh0KXt2YXIgZT10LmRhdGVUaW1lLG49dC5kYXRlLGk9dC50aW1lLHI9dC5wZXJpb2RzLG89dC5kYXlzLGE9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsYz14ZXQociksdT13ZXQociksaD14ZXQobyksZD13ZXQobykscD14ZXQoYSksZj13ZXQoYSksbT14ZXQocyksZz13ZXQocyksXz14ZXQobCkseT13ZXQobCksdj17YTpmdW5jdGlvbiBiKHQpe3JldHVybiBhW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uIHgodCl7cmV0dXJuIG9bdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24gdyh0KXtyZXR1cm4gbFt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uIFModCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6amV0LGU6amV0LGY6WGV0LEg6R2V0LEk6V2V0LGo6cWV0LEw6WWV0LG06JGV0LE06S2V0LHA6ZnVuY3Rpb24gTSh0KXtyZXR1cm4gclsrKHQuZ2V0SG91cnMoKT49MTIpXX0sUTpNbnQsczpFbnQsUzpaZXQsdTpKZXQsVTpRZXQsVjp0bnQsdzplbnQsVzpubnQseDpudWxsLFg6bnVsbCx5OmludCxZOnJudCxaOm9udCwiJSI6U250fSxFPXthOmZ1bmN0aW9uIFQodCl7cmV0dXJuIGFbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24gQyh0KXtyZXR1cm4gb1t0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbiBBKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24gayh0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDphbnQsZTphbnQsZjpobnQsSDpzbnQsSTpsbnQsajpjbnQsTDp1bnQsbTpkbnQsTTpwbnQscDpmdW5jdGlvbiBMKHQpe3JldHVybiByWysodC5nZXRVVENIb3VycygpPj0xMildfSxROk1udCxzOkVudCxTOmZudCx1Om1udCxVOmdudCxWOl9udCx3OnludCxXOnZudCx4Om51bGwsWDpudWxsLHk6Ym50LFk6eG50LFo6d250LCIlIjpTbnR9LFA9e2E6ZnVuY3Rpb24gTih0LGUsbil7dmFyIGk9cC5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lnc9ZltpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxBOmZ1bmN0aW9uIEkodCxlLG4pe3ZhciBpPWguZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC53PWRbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbiBSKHQsZSxuKXt2YXIgaT1fLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQubT15W2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24gTyh0LGUsbil7dmFyIGk9bS5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lm09Z1tpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxjOmZ1bmN0aW9uIHoodCxuLGkpe3JldHVybiBVKHQsZSxuLGkpfSxkOklldCxlOklldCxmOkhldCxIOk9ldCxJOk9ldCxqOlJldCxMOkJldCxtOk5ldCxNOnpldCxwOmZ1bmN0aW9uIEQodCxlLG4pe3ZhciBpPWMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5wPXVbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sUTpWZXQsczpVZXQsUzpEZXQsdTpFZXQsVTpUZXQsVjpDZXQsdzpNZXQsVzpBZXQseDpmdW5jdGlvbiBCKHQsZSxpKXtyZXR1cm4gVSh0LG4sZSxpKX0sWDpmdW5jdGlvbiBIKHQsZSxuKXtyZXR1cm4gVSh0LGksZSxuKX0seTpMZXQsWTprZXQsWjpQZXQsIiUiOkZldH07ZnVuY3Rpb24gRih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgaSxyLG8sYT1bXSxzPS0xLGw9MCxjPXQubGVuZ3RoO2ZvcihuIGluc3RhbmNlb2YgRGF0ZXx8KG49bmV3IERhdGUoK24pKTsrK3M8YzspMzc9PT10LmNoYXJDb2RlQXQocykmJihhLnB1c2godC5zbGljZShsLHMpKSxudWxsIT0ocj1tZXRbaT10LmNoYXJBdCgrK3MpXSk/aT10LmNoYXJBdCgrK3MpOnI9ImUiPT09aT8iICI6IjAiLChvPWVbaV0pJiYoaT1vKG4scikpLGEucHVzaChpKSxsPXMrMSk7cmV0dXJuIGEucHVzaCh0LnNsaWNlKGwscykpLGEuam9pbigiIil9fWZ1bmN0aW9uIFYodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGkscixvPXNldCgxOTAwKTtpZihVKG8sdCxuKz0iIiwwKSE9bi5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gbylyZXR1cm4gbmV3IERhdGUoby5RKTtpZigicCJpbiBvJiYoby5IPW8uSCUxMisxMipvLnApLCJWImluIG8pe2lmKG8uVjwxfHxvLlY+NTMpcmV0dXJuIG51bGw7InciaW4gb3x8KG8udz0xKSwiWiJpbiBvPyhyPShpPWFldChzZXQoby55KSkpLmdldFVUQ0RheSgpLGk9cj40fHwwPT09cj9lZXQuY2VpbChpKTplZXQoaSksaT1KdHQub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRVVENGdWxsWWVhcigpLG8ubT1pLmdldFVUQ01vbnRoKCksby5kPWkuZ2V0VVRDRGF0ZSgpKyhvLncrNiklNyk6KHI9KGk9ZShzZXQoby55KSkpLmdldERheSgpLGk9cj40fHwwPT09cj9YdHQuY2VpbChpKTpYdHQoaSksaT1XdHQub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRGdWxsWWVhcigpLG8ubT1pLmdldE1vbnRoKCksby5kPWkuZ2V0RGF0ZSgpKyhvLncrNiklNyl9ZWxzZSgiVyJpbiBvfHwiVSJpbiBvKSYmKCJ3ImluIG98fChvLnc9InUiaW4gbz9vLnUlNzoiVyJpbiBvPzE6MCkscj0iWiJpbiBvP2FldChzZXQoby55KSkuZ2V0VVRDRGF5KCk6ZShzZXQoby55KSkuZ2V0RGF5KCksby5tPTAsby5kPSJXImluIG8/KG8udys2KSU3Kzcqby5XLShyKzUpJTc6by53Kzcqby5VLShyKzYpJTcpO3JldHVybiJaImluIG8/KG8uSCs9by5aLzEwMHwwLG8uTSs9by5aJTEwMCxhZXQobykpOmUobyl9fWZ1bmN0aW9uIFUodCxlLG4saSl7Zm9yKHZhciByLG8sYT0wLHM9ZS5sZW5ndGgsbD1uLmxlbmd0aDthPHM7KXtpZihpPj1sKXJldHVybi0xO2lmKDM3PT09KHI9ZS5jaGFyQ29kZUF0KGErKykpKXtpZihyPWUuY2hhckF0KGErKyksIShvPVBbciBpbiBtZXQ/ZS5jaGFyQXQoYSsrKTpyXSl8fChpPW8odCxuLGkpKTwwKXJldHVybi0xfWVsc2UgaWYociE9bi5jaGFyQ29kZUF0KGkrKykpcmV0dXJuLTF9cmV0dXJuIGl9cmV0dXJuIHYueD1GKG4sdiksdi5YPUYoaSx2KSx2LmM9RihlLHYpLEUueD1GKG4sRSksRS5YPUYoaSxFKSxFLmM9RihlLEUpLHtmb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9Rih0Kz0iIix2KTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1WKHQrPSIiLG9ldCk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0sdXRjRm9ybWF0OmZ1bmN0aW9uKHQpe3ZhciBlPUYodCs9IiIsRSk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0sdXRjUGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9Vih0LGFldCk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX19fXZhciB1ZXQsaGV0LGRldCxwZXQsZmV0LG1ldD17Ii0iOiIiLF86IiAiLDA6IjAifSxnZXQ9L15ccypcZCsvLF9ldD0vXiUvLHlldD0vW1xcXiQqKz98W1xdKCkue31dL2c7ZnVuY3Rpb24gdmV0KHQsZSxuKXt2YXIgaT10PDA/Ii0iOiIiLHI9KGk/LXQ6dCkrIiIsbz1yLmxlbmd0aDtyZXR1cm4gaSsobzxuP25ldyBBcnJheShuLW8rMSkuam9pbihlKStyOnIpfWZ1bmN0aW9uIGJldCh0KXtyZXR1cm4gdC5yZXBsYWNlKHlldCwiXFwkJiIpfWZ1bmN0aW9uIHhldCh0KXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrdC5tYXAoYmV0KS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gd2V0KHQpe2Zvcih2YXIgZT17fSxuPS0xLGk9dC5sZW5ndGg7KytuPGk7KWVbdFtuXS50b0xvd2VyQ2FzZSgpXT1uO3JldHVybiBlfWZ1bmN0aW9uIE1ldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpPyh0Lnc9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gRWV0KHQsZSxuKXt2YXIgaT1nZXQuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/KHQudT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBUZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5VPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIENldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LlY9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQWV0KHQsZSxuKXt2YXIgaT1nZXQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBrZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzQpKTtyZXR1cm4gaT8odC55PStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIExldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Lnk9K2lbMF0rKCtpWzBdPjY4PzE5MDA6MmUzKSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBQZXQodCxlLG4pe3ZhciBpPS9eKFopfChbKy1dXGRcZCkoPzo6PyhcZFxkKSk/Ly5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gaT8odC5aPWlbMV0/MDotKGlbMl0rKGlbM118fCIwMCIpKSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBOZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5tPWlbMF0tMSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBJZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5kPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFJldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuLG4rMykpO3JldHVybiBpPyh0Lm09MCx0LmQ9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gT2V0KHQsZSxuKXt2YXIgaT1nZXQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuSD0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB6ZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5NPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIERldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LlM9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQmV0KHQsZSxuKXt2YXIgaT1nZXQuZXhlYyhlLnNsaWNlKG4sbiszKSk7cmV0dXJuIGk/KHQuTD0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBIZXQodCxlLG4pe3ZhciBpPWdldC5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gaT8odC5MPU1hdGguZmxvb3IoaVswXS8xZTMpLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEZldCh0LGUsbil7dmFyIGk9X2V0LmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpP24raVswXS5sZW5ndGg6LTF9ZnVuY3Rpb24gVmV0KHQsZSxuKXt2YXIgaT1nZXQuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5RPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFVldCh0LGUsbil7dmFyIGk9Z2V0LmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQuUT0xZTMqK2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gamV0KHQsZSl7cmV0dXJuIHZldCh0LmdldERhdGUoKSxlLDIpfWZ1bmN0aW9uIEdldCh0LGUpe3JldHVybiB2ZXQodC5nZXRIb3VycygpLGUsMil9ZnVuY3Rpb24gV2V0KHQsZSl7cmV0dXJuIHZldCh0LmdldEhvdXJzKCklMTJ8fDEyLGUsMil9ZnVuY3Rpb24gcWV0KHQsZSl7cmV0dXJuIHZldCgxK1d0dC5jb3VudChadHQodCksdCksZSwzKX1mdW5jdGlvbiBZZXQodCxlKXtyZXR1cm4gdmV0KHQuZ2V0TWlsbGlzZWNvbmRzKCksZSwzKX1mdW5jdGlvbiBYZXQodCxlKXtyZXR1cm4gWWV0KHQsZSkrIjAwMCJ9ZnVuY3Rpb24gJGV0KHQsZSl7cmV0dXJuIHZldCh0LmdldE1vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIEtldCh0LGUpe3JldHVybiB2ZXQodC5nZXRNaW51dGVzKCksZSwyKX1mdW5jdGlvbiBaZXQodCxlKXtyZXR1cm4gdmV0KHQuZ2V0U2Vjb25kcygpLGUsMil9ZnVuY3Rpb24gSmV0KHQpe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIDA9PT1lPzc6ZX1mdW5jdGlvbiBRZXQodCxlKXtyZXR1cm4gdmV0KFl0dC5jb3VudChadHQodCksdCksZSwyKX1mdW5jdGlvbiB0bnQodCxlKXt2YXIgbj10LmdldERheSgpO3JldHVybiB0PW4+PTR8fDA9PT1uPyR0dCh0KTokdHQuY2VpbCh0KSx2ZXQoJHR0LmNvdW50KFp0dCh0KSx0KSsoND09PVp0dCh0KS5nZXREYXkoKSksZSwyKX1mdW5jdGlvbiBlbnQodCl7cmV0dXJuIHQuZ2V0RGF5KCl9ZnVuY3Rpb24gbm50KHQsZSl7cmV0dXJuIHZldChYdHQuY291bnQoWnR0KHQpLHQpLGUsMil9ZnVuY3Rpb24gaW50KHQsZSl7cmV0dXJuIHZldCh0LmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gcm50KHQsZSl7cmV0dXJuIHZldCh0LmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gb250KHQpe3ZhciBlPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4oZT4wPyItIjooZSo9LTEsIisiKSkrdmV0KGUvNjB8MCwiMCIsMikrdmV0KGUlNjAsIjAiLDIpfWZ1bmN0aW9uIGFudCh0LGUpe3JldHVybiB2ZXQodC5nZXRVVENEYXRlKCksZSwyKX1mdW5jdGlvbiBzbnQodCxlKXtyZXR1cm4gdmV0KHQuZ2V0VVRDSG91cnMoKSxlLDIpfWZ1bmN0aW9uIGxudCh0LGUpe3JldHVybiB2ZXQodC5nZXRVVENIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIGNudCh0LGUpe3JldHVybiB2ZXQoMStKdHQuY291bnQocmV0KHQpLHQpLGUsMyl9ZnVuY3Rpb24gdW50KHQsZSl7cmV0dXJuIHZldCh0LmdldFVUQ01pbGxpc2Vjb25kcygpLGUsMyl9ZnVuY3Rpb24gaG50KHQsZSl7cmV0dXJuIHVudCh0LGUpKyIwMDAifWZ1bmN0aW9uIGRudCh0LGUpe3JldHVybiB2ZXQodC5nZXRVVENNb250aCgpKzEsZSwyKX1mdW5jdGlvbiBwbnQodCxlKXtyZXR1cm4gdmV0KHQuZ2V0VVRDTWludXRlcygpLGUsMil9ZnVuY3Rpb24gZm50KHQsZSl7cmV0dXJuIHZldCh0LmdldFVUQ1NlY29uZHMoKSxlLDIpfWZ1bmN0aW9uIG1udCh0KXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiAwPT09ZT83OmV9ZnVuY3Rpb24gZ250KHQsZSl7cmV0dXJuIHZldCh0ZXQuY291bnQocmV0KHQpLHQpLGUsMil9ZnVuY3Rpb24gX250KHQsZSl7dmFyIG49dC5nZXRVVENEYXkoKTtyZXR1cm4gdD1uPj00fHwwPT09bj9uZXQodCk6bmV0LmNlaWwodCksdmV0KG5ldC5jb3VudChyZXQodCksdCkrKDQ9PT1yZXQodCkuZ2V0VVRDRGF5KCkpLGUsMil9ZnVuY3Rpb24geW50KHQpe3JldHVybiB0LmdldFVUQ0RheSgpfWZ1bmN0aW9uIHZudCh0LGUpe3JldHVybiB2ZXQoZWV0LmNvdW50KHJldCh0KSx0KSxlLDIpfWZ1bmN0aW9uIGJudCh0LGUpe3JldHVybiB2ZXQodC5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIHhudCh0LGUpe3JldHVybiB2ZXQodC5nZXRVVENGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIHdudCgpe3JldHVybiIrMDAwMCJ9ZnVuY3Rpb24gU250KCl7cmV0dXJuIiUifWZ1bmN0aW9uIE1udCh0KXtyZXR1cm4rdH1mdW5jdGlvbiBFbnQodCl7cmV0dXJuIE1hdGguZmxvb3IoK3QvMWUzKX1mdW5jdGlvbiBUbnQodCl7cmV0dXJuIHVldD1jZXQodCksaGV0PXVldC5mb3JtYXQsZGV0PXVldC5wYXJzZSxwZXQ9dWV0LnV0Y0Zvcm1hdCxmZXQ9dWV0LnV0Y1BhcnNlLHVldH1UbnQoe2RhdGVUaW1lOiIleCwgJVgiLGRhdGU6IiUtbS8lLWQvJVkiLHRpbWU6IiUtSTolTTolUyAlcCIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KTt2YXIgQ250LEFudCxrbnQ9IiVZLSVtLSVkVCVIOiVNOiVTLiVMWiIsTG50PURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nP2Z1bmN0aW9uIFBudCh0KXtyZXR1cm4gdC50b0lTT1N0cmluZygpfTpwZXQoa250KSxObnQ9K25ldyBEYXRlKCIyMDAwLTAxLTAxVDAwOjAwOjAwLjAwMFoiKT9mdW5jdGlvbiBJbnQodCl7dmFyIGU9bmV3IERhdGUodCk7cmV0dXJuIGlzTmFOKGUpP251bGw6ZX06ZmV0KGtudCksUm50PTAsT250PTAsem50PTAsRG50PTAsQm50PTAsSG50PTAsRm50PSJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLFZudD0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KHQsMTcpfTtmdW5jdGlvbiBVbnQoKXtyZXR1cm4gQm50fHwoVm50KGpudCksQm50PUZudC5ub3coKStIbnQpfWZ1bmN0aW9uIGpudCgpe0JudD0wfWZ1bmN0aW9uIEdudCgpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24gV250KHQsZSxuKXt2YXIgaT1uZXcgR250O3JldHVybiBpLnJlc3RhcnQodCxlLG4pLGl9ZnVuY3Rpb24gcW50KCl7VW50KCksKytSbnQ7Zm9yKHZhciB0LGU9Q250O2U7KSh0PUJudC1lLl90aW1lKT49MCYmZS5fY2FsbC5jYWxsKG51bGwsdCksZT1lLl9uZXh0Oy0tUm50fWZ1bmN0aW9uIFludCgpe0JudD0oRG50PUZudC5ub3coKSkrSG50LFJudD1PbnQ9MDt0cnl7cW50KCl9ZmluYWxseXtSbnQ9MCwoZnVuY3Rpb24gdCgpe2Zvcih2YXIgdCxlLG49Q250LGk9MS8wO247KW4uX2NhbGw/KGk+bi5fdGltZSYmKGk9bi5fdGltZSksdD1uLG49bi5fbmV4dCk6KGU9bi5fbmV4dCxuLl9uZXh0PW51bGwsbj10P3QuX25leHQ9ZTpDbnQ9ZSk7QW50PXQsJG50KGkpfSkoKSxCbnQ9MH19ZnVuY3Rpb24gWG50KCl7dmFyIHQ9Rm50Lm5vdygpLGU9dC1EbnQ7ZT4xZTMmJihIbnQtPWUsRG50PXQpfWZ1bmN0aW9uICRudCh0KXtSbnR8fChPbnQmJihPbnQ9Y2xlYXJUaW1lb3V0KE9udCkpLHQtQm50PjI0Pyh0PDEvMCYmKE9udD1zZXRUaW1lb3V0KFludCx0LUZudC5ub3coKS1IbnQpKSx6bnQmJih6bnQ9Y2xlYXJJbnRlcnZhbCh6bnQpKSk6KHpudHx8KERudD1GbnQubm93KCksem50PXNldEludGVydmFsKFhudCwxZTMpKSxSbnQ9MSxWbnQoWW50KSkpfUdudC5wcm90b3R5cGU9V250LnByb3RvdHlwZT17Y29uc3RydWN0b3I6R250LHJlc3RhcnQ6ZnVuY3Rpb24odCxlLG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7bj0obnVsbD09bj9VbnQoKTorbikrKG51bGw9PWU/MDorZSksdGhpcy5fbmV4dHx8QW50PT09dGhpc3x8KEFudD9BbnQuX25leHQ9dGhpczpDbnQ9dGhpcyxBbnQ9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9biwkbnQoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsJG50KCkpfX07dmFyIEtudD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsWm50PXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpLbnQseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtmdW5jdGlvbiBKbnQodCl7dmFyIGU9dCs9IiIsbj1lLmluZGV4T2YoIjoiKTtyZXR1cm4gbj49MCYmInhtbG5zIiE9PShlPXQuc2xpY2UoMCxuKSkmJih0PXQuc2xpY2UobisxKSksWm50Lmhhc093blByb3BlcnR5KGUpP3tzcGFjZTpabnRbZV0sbG9jYWw6dH06dH1mdW5jdGlvbiBRbnQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50LG49dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIG49PT1LbnQmJmUuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PUtudD9lLmNyZWF0ZUVsZW1lbnQodCk6ZS5jcmVhdGVFbGVtZW50TlMobix0KX19ZnVuY3Rpb24gdGl0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGVpdCh0KXt2YXIgZT1KbnQodCk7cmV0dXJuKGUubG9jYWw/dGl0OlFudCkoZSl9ZnVuY3Rpb24gbml0KCl7fWZ1bmN0aW9uIGlpdCh0KXtyZXR1cm4gbnVsbD09dD9uaXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiByaXQoKXtyZXR1cm5bXX1mdW5jdGlvbiBvaXQodCl7cmV0dXJuIG51bGw9PXQ/cml0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24gYWl0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXModCl9fWZ1bmN0aW9uIHNpdCh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiBsaXQodCxlKXt0aGlzLm93bmVyRG9jdW1lbnQ9dC5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPXQubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9fZGF0YV9fPWV9ZnVuY3Rpb24gY2l0KHQsZSxuLGkscixvKXtmb3IodmFyIGEscz0wLGw9ZS5sZW5ndGgsYz1vLmxlbmd0aDtzPGM7KytzKShhPWVbc10pPyhhLl9fZGF0YV9fPW9bc10saVtzXT1hKTpuW3NdPW5ldyBsaXQodCxvW3NdKTtmb3IoO3M8bDsrK3MpKGE9ZVtzXSkmJihyW3NdPWEpfWZ1bmN0aW9uIHVpdCh0LGUsbixpLHIsbyxhKXt2YXIgcyxsLGMsdT17fSxoPWUubGVuZ3RoLGQ9by5sZW5ndGgscD1uZXcgQXJyYXkoaCk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiYocFtzXT1jPSIkIithLmNhbGwobCxsLl9fZGF0YV9fLHMsZSksYyBpbiB1P3Jbc109bDp1W2NdPWwpO2ZvcihzPTA7czxkOysrcykobD11W2M9IiQiK2EuY2FsbCh0LG9bc10scyxvKV0pPyhpW3NdPWwsbC5fX2RhdGFfXz1vW3NdLHVbY109bnVsbCk6bltzXT1uZXcgbGl0KHQsb1tzXSk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiZ1W3Bbc11dPT09bCYmKHJbc109bCl9ZnVuY3Rpb24gaGl0KHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIGRpdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gcGl0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gZml0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19ZnVuY3Rpb24gbWl0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZSl9fWZ1bmN0aW9uIGdpdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCk6dGhpcy5zZXRBdHRyaWJ1dGUodCxuKX19ZnVuY3Rpb24gX2l0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsbil9fWZ1bmN0aW9uIHlpdCh0KXtyZXR1cm4gdC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gdml0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIGJpdCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUsbil9fWZ1bmN0aW9uIHhpdCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09aT90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxpLG4pfX1mdW5jdGlvbiB3aXQodCxlKXtyZXR1cm4gdC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGUpfHx5aXQodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUoZSl9ZnVuY3Rpb24gU2l0KHQpe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW3RdfX1mdW5jdGlvbiBNaXQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzW3RdPWV9fWZ1bmN0aW9uIEVpdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/ZGVsZXRlIHRoaXNbdF06dGhpc1t0XT1ufX1mdW5jdGlvbiBUaXQodCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIENpdCh0KXtyZXR1cm4gdC5jbGFzc0xpc3R8fG5ldyBBaXQodCl9ZnVuY3Rpb24gQWl0KHQpe3RoaXMuX25vZGU9dCx0aGlzLl9uYW1lcz1UaXQodC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX1mdW5jdGlvbiBraXQodCxlKXtmb3IodmFyIG49Q2l0KHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5hZGQoZVtpXSl9ZnVuY3Rpb24gTGl0KHQsZSl7Zm9yKHZhciBuPUNpdCh0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4ucmVtb3ZlKGVbaV0pfWZ1bmN0aW9uIFBpdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtraXQodGhpcyx0KX19ZnVuY3Rpb24gTml0KHQpe3JldHVybiBmdW5jdGlvbigpe0xpdCh0aGlzLHQpfX1mdW5jdGlvbiBJaXQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXsoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk/a2l0OkxpdCkodGhpcyx0KX19ZnVuY3Rpb24gUml0KCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiBPaXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX1mdW5jdGlvbiB6aXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIERpdCgpe3RoaXMuaW5uZXJIVE1MPSIifWZ1bmN0aW9uIEJpdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX1mdW5jdGlvbiBIaXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBGaXQoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gVml0KCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gVWl0KCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gaml0KCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gR2l0KCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITEpLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH1mdW5jdGlvbiBXaXQoKXt2YXIgdD10aGlzLmNsb25lTm9kZSghMCksZT10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGU/ZS5pbnNlcnRCZWZvcmUodCx0aGlzLm5leHRTaWJsaW5nKTp0fWxpdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmxpdCxhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LGUpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSxBaXQucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtlPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKGUsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgcWl0PXt9O2Z1bmN0aW9uIFlpdCh0LGUsbil7cmV0dXJuIHQ9WGl0KHQsZSxuKSxmdW5jdGlvbihlKXt2YXIgbj1lLnJlbGF0ZWRUYXJnZXQ7biYmKG49PT10aGlzfHw4Jm4uY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykpfHx0LmNhbGwodGhpcyxlKX19ZnVuY3Rpb24gWGl0KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dHJ5e3QuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxuKX1maW5hbGx5e319fWZ1bmN0aW9uICRpdCh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgZT0iIixuPXQuaW5kZXhPZigiLiIpO3JldHVybiBuPj0wJiYoZT10LnNsaWNlKG4rMSksdD10LnNsaWNlKDAsbikpLHt0eXBlOnQsbmFtZTplfX0pKX1mdW5jdGlvbiBLaXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fX29uO2lmKGUpe2Zvcih2YXIgbixpPTAscj0tMSxvPWUubGVuZ3RoO2k8bzsrK2kpbj1lW2ldLHQudHlwZSYmbi50eXBlIT09dC50eXBlfHxuLm5hbWUhPT10Lm5hbWU/ZVsrK3JdPW46dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG4udHlwZSxuLmxpc3RlbmVyLG4uY2FwdHVyZSk7KytyP2UubGVuZ3RoPXI6ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIFppdCh0LGUsbil7dmFyIGk9cWl0Lmhhc093blByb3BlcnR5KHQudHlwZSk/WWl0OlhpdDtyZXR1cm4gZnVuY3Rpb24ocixvLGEpe3ZhciBzLGw9dGhpcy5fX29uLGM9aShlLG8sYSk7aWYobClmb3IodmFyIHU9MCxoPWwubGVuZ3RoO3U8aDsrK3UpaWYoKHM9bFt1XSkudHlwZT09PXQudHlwZSYmcy5uYW1lPT09dC5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXIscy5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXI9YyxzLmNhcHR1cmU9biksdm9pZChzLnZhbHVlPWUpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcih0LnR5cGUsYyxuKSxzPXt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSx2YWx1ZTplLGxpc3RlbmVyOmMsY2FwdHVyZTpufSxsP2wucHVzaChzKTp0aGlzLl9fb249W3NdfX1mdW5jdGlvbiBKaXQodCxlLG4pe3ZhciBpPXlpdCh0KSxyPWkuQ3VzdG9tRXZlbnQ7ImZ1bmN0aW9uIj09dHlwZW9mIHI/cj1uZXcgcihlLG4pOihyPWkuZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iiksbj8oci5pbml0RXZlbnQoZSxuLmJ1YmJsZXMsbi5jYW5jZWxhYmxlKSxyLmRldGFpbD1uLmRldGFpbCk6ci5pbml0RXZlbnQoZSwhMSwhMSkpLHQuZGlzcGF0Y2hFdmVudChyKX1mdW5jdGlvbiBRaXQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gSml0KHRoaXMsdCxlKX19ZnVuY3Rpb24gdHJ0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEppdCh0aGlzLHQsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChxaXQ9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpO3ZhciBlcnQ9W251bGxdO2Z1bmN0aW9uIG5ydCh0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBpcnQoKXtyZXR1cm4gbmV3IG5ydChbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLGVydCl9bnJ0LnByb3RvdHlwZT1pcnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpucnQsc2VsZWN0OmZ1bmN0aW9uIHJydCh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9aWl0KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGEscz1lW3JdLGw9cy5sZW5ndGgsYz1pW3JdPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkobz1zW3VdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyx1LHMpKSYmKCJfX2RhdGFfXyJpbiBvJiYoYS5fX2RhdGFfXz1vLl9fZGF0YV9fKSxjW3VdPWEpO3JldHVybiBuZXcgbnJ0KGksdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBvcnQodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PW9pdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9W10scj1bXSxvPTA7bzxuOysrbylmb3IodmFyIGEscz1lW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKGE9c1tjXSkmJihpLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHMpKSxyLnB1c2goYSkpO3JldHVybiBuZXcgbnJ0KGkscil9LGZpbHRlcjpmdW5jdGlvbiBhcnQodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWFpdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgbnJ0KGksdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gc3J0KHQsZSl7aWYoIXQpcmV0dXJuIGY9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSx1PS0xLHRoaXMuZWFjaCgoZnVuY3Rpb24odCl7ZlsrK3VdPXR9KSksZjt2YXIgbj1lP3VpdDpjaXQsaT10aGlzLl9wYXJlbnRzLHI9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciBhPXIubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9bmV3IEFycmF5KGEpLGM9bmV3IEFycmF5KGEpLHU9MDt1PGE7Kyt1KXt2YXIgaD1pW3VdLGQ9clt1XSxwPWQubGVuZ3RoLGY9dC5jYWxsKGgsaCYmaC5fX2RhdGFfXyx1LGkpLG09Zi5sZW5ndGgsZz1sW3VdPW5ldyBBcnJheShtKSxfPXNbdV09bmV3IEFycmF5KG0pO24oaCxkLGcsXyxjW3VdPW5ldyBBcnJheShwKSxmLGUpO2Zvcih2YXIgeSx2LGI9MCx4PTA7YjxtOysrYilpZih5PWdbYl0pe2ZvcihiPj14JiYoeD1iKzEpOyEodj1fW3hdKSYmKyt4PG07KTt5Ll9uZXh0PXZ8fG51bGx9fXJldHVybihzPW5ldyBucnQocyxpKSkuX2VudGVyPWwscy5fZXhpdD1jLHN9LGVudGVyOmZ1bmN0aW9uIGxydCgpe3JldHVybiBuZXcgbnJ0KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKHNpdCksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24gY3J0KCl7cmV0dXJuIG5ldyBucnQodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChzaXQpLHRoaXMuX3BhcmVudHMpfSxqb2luOmZ1bmN0aW9uIHVydCh0LGUsbil7dmFyIGk9dGhpcy5lbnRlcigpLHI9dGhpcyxvPXRoaXMuZXhpdCgpO3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoaSk6aS5hcHBlbmQodCsiIiksbnVsbCE9ZSYmKHI9ZShyKSksbnVsbD09bj9vLnJlbW92ZSgpOm4obyksaSYmcj9pLm1lcmdlKHIpLm9yZGVyKCk6cn0sbWVyZ2U6ZnVuY3Rpb24gaHJ0KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IG5ydChvLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbiBkcnQoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9LTEsbj10Lmxlbmd0aDsrK2U8bjspZm9yKHZhciBpLHI9dFtlXSxvPXIubGVuZ3RoLTEsYT1yW29dOy0tbz49MDspKGk9cltvXSkmJihhJiY0XmkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSkmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaSxhKSxhPWkpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uIHBydCh0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIGUmJm4/dChlLl9fZGF0YV9fLG4uX19kYXRhX18pOiFlLSFufXR8fCh0PWhpdCk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGkpLG89MDtvPGk7KytvKXtmb3IodmFyIGEscz1uW29dLGw9cy5sZW5ndGgsYz1yW29dPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmKGNbdV09YSk7Yy5zb3J0KGUpfXJldHVybiBuZXcgbnJ0KHIsdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbiBmcnQoKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIG1ydCgpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksZT0tMTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3RbKytlXT10aGlzfSkpLHR9LG5vZGU6ZnVuY3Rpb24gZ3J0KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPTAsbj10Lmxlbmd0aDtlPG47KytlKWZvcih2YXIgaT10W2VdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3Ipe3ZhciBhPWlbcl07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiBfcnQoKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9LGVtcHR5OmZ1bmN0aW9uIHlydCgpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbiB2cnQodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWZvcih2YXIgcixvPWVbbl0sYT0wLHM9by5sZW5ndGg7YTxzOysrYSkocj1vW2FdKSYmdC5jYWxsKHIsci5fX2RhdGFfXyxhLG8pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uIGJydCh0LGUpe3ZhciBuPUpudCh0KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBpPXRoaXMubm9kZSgpO3JldHVybiBuLmxvY2FsP2kuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTppLmdldEF0dHJpYnV0ZShuKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP24ubG9jYWw/cGl0OmRpdDoiZnVuY3Rpb24iPT10eXBlb2YgZT9uLmxvY2FsP19pdDpnaXQ6bi5sb2NhbD9taXQ6Zml0KShuLGUpKX0sc3R5bGU6ZnVuY3Rpb24geHJ0KHQsZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT92aXQ6ImZ1bmN0aW9uIj09dHlwZW9mIGU/eGl0OmJpdCkodCxlLG51bGw9PW4/IiI6bikpOndpdCh0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24gd3J0KHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/U2l0OiJmdW5jdGlvbiI9PXR5cGVvZiBlP0VpdDpNaXQpKHQsZSkpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uIFNydCh0LGUpe3ZhciBuPVRpdCh0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaT1DaXQodGhpcy5ub2RlKCkpLHI9LTEsbz1uLmxlbmd0aDsrK3I8bzspaWYoIWkuY29udGFpbnMobltyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/SWl0OmU/UGl0Ok5pdCkobixlKSl9LHRleHQ6ZnVuY3Rpb24gTXJ0KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P1JpdDooImZ1bmN0aW9uIj09dHlwZW9mIHQ/eml0Ok9pdCkodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uIEVydCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9EaXQ6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P0hpdDpCaXQpKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIFRydCgpe3JldHVybiB0aGlzLmVhY2goRml0KX0sbG93ZXI6ZnVuY3Rpb24gQ3J0KCl7cmV0dXJuIHRoaXMuZWFjaChWaXQpfSxhcHBlbmQ6ZnVuY3Rpb24gQXJ0KHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZWl0KHQpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KSl9LGluc2VydDpmdW5jdGlvbiBrcnQodCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmVpdCh0KSxpPW51bGw9PWU/VWl0OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6aWl0KGUpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUobi5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSkpfSxyZW1vdmU6ZnVuY3Rpb24gTHJ0KCl7cmV0dXJuIHRoaXMuZWFjaChqaXQpfSxjbG9uZTpmdW5jdGlvbiBQcnQodCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/V2l0OkdpdCl9LGRhdHVtOmZ1bmN0aW9uIE5ydCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmZ1bmN0aW9uIElydCh0LGUsbil7dmFyIGkscixvPSRpdCh0KyIiKSxhPW8ubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHM9ZT9aaXQ6S2l0LG51bGw9PW4mJihuPSExKSxpPTA7aTxhOysraSl0aGlzLmVhY2gocyhvW2ldLGUsbikpO3JldHVybiB0aGlzfXZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocylmb3IodmFyIGwsYz0wLHU9cy5sZW5ndGg7Yzx1OysrYylmb3IoaT0wLGw9c1tjXTtpPGE7KytpKWlmKChyPW9baV0pLnR5cGU9PT1sLnR5cGUmJnIubmFtZT09PWwubmFtZSlyZXR1cm4gbC52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24gUnJ0KHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/dHJ0OlFpdCkodCxlKSl9fTt2YXIgT3J0PXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIHpydCgpe2Zvcih2YXIgdCxlPTAsbj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxuOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaXx8L1tccy5dLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK3QpO2lbdF09W119cmV0dXJuIG5ldyBEcnQoaSl9ZnVuY3Rpb24gRHJ0KHQpe3RoaXMuXz10fWZ1bmN0aW9uIEJydCh0LGUpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9dC5pbmRleE9mKCIuIik7aWYoaT49MCYmKG49dC5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKSx0JiYhZS5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6bn19KSl9ZnVuY3Rpb24gSHJ0KHQsZSl7Zm9yKHZhciBuLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYoKG49dFtpXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24gRnJ0KHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT1PcnQsdD10LnNsaWNlKDAsaSkuY29uY2F0KHQuc2xpY2UoaSsxKSk7YnJlYWt9cmV0dXJuIG51bGwhPW4mJnQucHVzaCh7bmFtZTplLHZhbHVlOm59KSx0fURydC5wcm90b3R5cGU9enJ0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6RHJ0LG9uOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl8scj1CcnQodCsiIixpKSxvPS0xLGE9ci5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK288YTspaWYobj0odD1yW29dKS50eXBlKWlbbl09RnJ0KGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09RnJ0KGlbbl0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChuPSh0PXJbb10pLnR5cGUpJiYobj1IcnQoaVtuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcgRHJ0KHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgVnJ0LFVydCxqcnQ9MCxHcnQ9MCxXcnQ9MCxxcnQ9MCxZcnQ9MCxYcnQ9MCwkcnQ9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsS3J0PSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIFpydCgpe3JldHVybiBZcnR8fChLcnQoSnJ0KSxZcnQ9JHJ0Lm5vdygpK1hydCl9ZnVuY3Rpb24gSnJ0KCl7WXJ0PTB9ZnVuY3Rpb24gUXJ0KCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiB0b3QodCxlLG4pe3ZhciBpPW5ldyBRcnQ7cmV0dXJuIGkucmVzdGFydCh0LGUsbiksaX1mdW5jdGlvbiBlb3QoKXtZcnQ9KHFydD0kcnQubm93KCkpK1hydCxqcnQ9R3J0PTA7dHJ5eyEoZnVuY3Rpb24gdCgpe1pydCgpLCsranJ0O2Zvcih2YXIgdCxlPVZydDtlOykodD1ZcnQtZS5fdGltZSk+PTAmJmUuX2NhbGwuY2FsbChudWxsLHQpLGU9ZS5fbmV4dDstLWpydH0pKCl9ZmluYWxseXtqcnQ9MCwoZnVuY3Rpb24gZSgpe2Zvcih2YXIgdCxlLG49VnJ0LGk9MS8wO247KW4uX2NhbGw/KGk+bi5fdGltZSYmKGk9bi5fdGltZSksdD1uLG49bi5fbmV4dCk6KGU9bi5fbmV4dCxuLl9uZXh0PW51bGwsbj10P3QuX25leHQ9ZTpWcnQ9ZSk7VXJ0PXQsaW90KGkpfSkoKSxZcnQ9MH19ZnVuY3Rpb24gbm90KCl7dmFyIHQ9JHJ0Lm5vdygpLGU9dC1xcnQ7ZT4xZTMmJihYcnQtPWUscXJ0PXQpfWZ1bmN0aW9uIGlvdCh0KXtqcnR8fChHcnQmJihHcnQ9Y2xlYXJUaW1lb3V0KEdydCkpLHQtWXJ0PjI0Pyh0PDEvMCYmKEdydD1zZXRUaW1lb3V0KGVvdCx0LSRydC5ub3coKS1YcnQpKSxXcnQmJihXcnQ9Y2xlYXJJbnRlcnZhbChXcnQpKSk6KFdydHx8KHFydD0kcnQubm93KCksV3J0PXNldEludGVydmFsKG5vdCwxZTMpKSxqcnQ9MSxLcnQoZW90KSkpfWZ1bmN0aW9uIHJvdCh0LGUsbil7dmFyIGk9bmV3IFFydDtyZXR1cm4gaS5yZXN0YXJ0KChmdW5jdGlvbihuKXtpLnN0b3AoKSx0KG4rZSl9KSxlPW51bGw9PWU/MDorZSxuKSxpfVFydC5wcm90b3R5cGU9dG90LnByb3RvdHlwZT17Y29uc3RydWN0b3I6UXJ0LHJlc3RhcnQ6ZnVuY3Rpb24odCxlLG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7bj0obnVsbD09bj9acnQoKTorbikrKG51bGw9PWU/MDorZSksdGhpcy5fbmV4dHx8VXJ0PT09dGhpc3x8KFVydD9VcnQuX25leHQ9dGhpczpWcnQ9dGhpcyxVcnQ9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9bixpb3QoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsaW90KCkpfX07dmFyIG9vdD16cnQoInN0YXJ0IiwiZW5kIiwiaW50ZXJydXB0IiksYW90PVtdO2Z1bmN0aW9uIHNvdCh0LGUsbixpLHIsbyl7dmFyIGE9dC5fX3RyYW5zaXRpb247aWYoYSl7aWYobiBpbiBhKXJldHVybn1lbHNlIHQuX190cmFuc2l0aW9uPXt9OyEoZnVuY3Rpb24gcyh0LGUsbil7dmFyIGkscj10Ll9fdHJhbnNpdGlvbjtmdW5jdGlvbiBvKGwpe3ZhciBjLHUsaCxkO2lmKDEhPT1uLnN0YXRlKXJldHVybiBzKCk7Zm9yKGMgaW4gcilpZigoZD1yW2NdKS5uYW1lPT09bi5uYW1lKXtpZigzPT09ZC5zdGF0ZSlyZXR1cm4gcm90KG8pOzQ9PT1kLnN0YXRlPyhkLnN0YXRlPTYsZC50aW1lci5zdG9wKCksZC5vbi5jYWxsKCJpbnRlcnJ1cHQiLHQsdC5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSByW2NdKTorYzxlJiYoZC5zdGF0ZT02LGQudGltZXIuc3RvcCgpLGRlbGV0ZSByW2NdKX1pZihyb3QoKGZ1bmN0aW9uKCl7Mz09PW4uc3RhdGUmJihuLnN0YXRlPTQsbi50aW1lci5yZXN0YXJ0KGEsbi5kZWxheSxuLnRpbWUpLGEobCkpfSkpLG4uc3RhdGU9MixuLm9uLmNhbGwoInN0YXJ0Iix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSwyPT09bi5zdGF0ZSl7Zm9yKG4uc3RhdGU9MyxpPW5ldyBBcnJheShoPW4udHdlZW4ubGVuZ3RoKSxjPTAsdT0tMTtjPGg7KytjKShkPW4udHdlZW5bY10udmFsdWUuY2FsbCh0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSkmJihpWysrdV09ZCk7aS5sZW5ndGg9dSsxfX1mdW5jdGlvbiBhKGUpe2Zvcih2YXIgcj1lPG4uZHVyYXRpb24/bi5lYXNlLmNhbGwobnVsbCxlL24uZHVyYXRpb24pOihuLnRpbWVyLnJlc3RhcnQocyksbi5zdGF0ZT01LDEpLG89LTEsYT1pLmxlbmd0aDsrK288YTspaVtvXS5jYWxsKG51bGwscik7NT09PW4uc3RhdGUmJihuLm9uLmNhbGwoImVuZCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCkscygpKX1mdW5jdGlvbiBzKCl7Zm9yKHZhciBpIGluIG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxkZWxldGUgcltlXSxyKXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259cltlXT1uLG4udGltZXI9dG90KChmdW5jdGlvbiBsKHQpe24uc3RhdGU9MSxuLnRpbWVyLnJlc3RhcnQobyxuLmRlbGF5LG4udGltZSksbi5kZWxheTw9dCYmbyh0LW4uZGVsYXkpfSksMCxuLnRpbWUpfSkodCxuLHtuYW1lOmUsaW5kZXg6aSxncm91cDpyLG9uOm9vdCx0d2Vlbjphb3QsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6MH0pfWZ1bmN0aW9uIGxvdCh0LGUpe3ZhciBuPXVvdCh0LGUpO2lmKG4uc3RhdGU+MCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBufWZ1bmN0aW9uIGNvdCh0LGUpe3ZhciBuPXVvdCh0LGUpO2lmKG4uc3RhdGU+Mil0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHN0YXJ0ZWQiKTtyZXR1cm4gbn1mdW5jdGlvbiB1b3QodCxlKXt2YXIgbj10Ll9fdHJhbnNpdGlvbjtpZighbnx8IShuPW5bZV0pKXRocm93IG5ldyBFcnJvcigidHJhbnNpdGlvbiBub3QgZm91bmQiKTtyZXR1cm4gbn1mdW5jdGlvbiBob3QodCxlKXt2YXIgbixpLHIsbz10Ll9fdHJhbnNpdGlvbixhPSEwO2lmKG8pe2ZvcihyIGluIGU9bnVsbD09ZT9udWxsOmUrIiIsbykobj1vW3JdKS5uYW1lPT09ZT8oaT1uLnN0YXRlPjImJm4uc3RhdGU8NSxuLnN0YXRlPTYsbi50aW1lci5zdG9wKCksaSYmbi5vbi5jYWxsKCJpbnRlcnJ1cHQiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLGRlbGV0ZSBvW3JdKTphPSExO2EmJmRlbGV0ZSB0Ll9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gZG90KHQsZSxuKXt0LnByb3RvdHlwZT1lLnByb3RvdHlwZT1uLG4uY29uc3RydWN0b3I9dH1mdW5jdGlvbiBwb3QodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gZm90KCl7fXZhciBtb3Q9LjcsZ290PTEvbW90LF9vdD0iXFxzKihbKy1dP1xcZCspXFxzKiIseW90PSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLHZvdD0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIsYm90PS9eIyhbMC05YS1mXXszLDh9KSQvLHhvdD1uZXcgUmVnRXhwKCJecmdiXFwoIitbX290LF9vdCxfb3RdKyJcXCkkIiksd290PW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1t2b3Qsdm90LHZvdF0rIlxcKSQiKSxTb3Q9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tfb3QsX290LF9vdCx5b3RdKyJcXCkkIiksTW90PW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbdm90LHZvdCx2b3QseW90XSsiXFwpJCIpLEVvdD1uZXcgUmVnRXhwKCJeaHNsXFwoIitbeW90LHZvdCx2b3RdKyJcXCkkIiksVG90PW5ldyBSZWdFeHAoIl5oc2xhXFwoIitbeW90LHZvdCx2b3QseW90XSsiXFwpJCIpLENvdD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBBb3QoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXgoKX1mdW5jdGlvbiBrb3QoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBMb3QodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9Ym90LmV4ZWModCkpPyhuPWVbMV0ubGVuZ3RoLGU9cGFyc2VJbnQoZVsxXSwxNiksNj09PW4/UG90KGUpOjM9PT1uP25ldyBPb3QoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP05vdChlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LCgyNTUmZSkvMjU1KTo0PT09bj9Ob3QoZT4+MTImMTV8ZT4+OCYyNDAsZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgoMTUmZSk8PDR8MTUmZSkvMjU1KTpudWxsKTooZT14b3QuZXhlYyh0KSk/bmV3IE9vdChlWzFdLGVbMl0sZVszXSwxKTooZT13b3QuZXhlYyh0KSk/bmV3IE9vdCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1Tb3QuZXhlYyh0KSk/Tm90KGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPU1vdC5leGVjKHQpKT9Ob3QoMjU1KmVbMV0vMTAwLDI1NSplWzJdLzEwMCwyNTUqZVszXS8xMDAsZVs0XSk6KGU9RW90LmV4ZWModCkpP0hvdChlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVRvdC5leGVjKHQpKT9Ib3QoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpDb3QuaGFzT3duUHJvcGVydHkodCk/UG90KENvdFt0XSk6InRyYW5zcGFyZW50Ij09PXQ/bmV3IE9vdChOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIFBvdCh0KXtyZXR1cm4gbmV3IE9vdCh0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gTm90KHQsZSxuLGkpe3JldHVybiBpPD0wJiYodD1lPW49TmFOKSxuZXcgT290KHQsZSxuLGkpfWZ1bmN0aW9uIElvdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGZvdHx8KHQ9TG90KHQpKSx0P25ldyBPb3QoKHQ9dC5yZ2IoKSkucix0LmcsdC5iLHQub3BhY2l0eSk6bmV3IE9vdH1mdW5jdGlvbiBSb3QodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0lvdCh0KTpuZXcgT290KHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBPb3QodCxlLG4saSl7dGhpcy5yPSt0LHRoaXMuZz0rZSx0aGlzLmI9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIHpvdCgpe3JldHVybiIjIitCb3QodGhpcy5yKStCb3QodGhpcy5nKStCb3QodGhpcy5iKX1mdW5jdGlvbiBEb3QoKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBCb3QodCl7cmV0dXJuKCh0PU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodCl8fDApKSk8MTY/IjAiOiIiKSt0LnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBIb3QodCxlLG4saSl7cmV0dXJuIGk8PTA/dD1lPW49TmFOOm48PTB8fG4+PTE/dD1lPU5hTjplPD0wJiYodD1OYU4pLG5ldyBWb3QodCxlLG4saSl9ZnVuY3Rpb24gRm90KHQpe2lmKHQgaW5zdGFuY2VvZiBWb3QpcmV0dXJuIG5ldyBWb3QodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgZm90fHwodD1Mb3QodCkpLCF0KXJldHVybiBuZXcgVm90O2lmKHQgaW5zdGFuY2VvZiBWb3QpcmV0dXJuIHQ7dmFyIGU9KHQ9dC5yZ2IoKSkuci8yNTUsbj10LmcvMjU1LGk9dC5iLzI1NSxyPU1hdGgubWluKGUsbixpKSxvPU1hdGgubWF4KGUsbixpKSxhPU5hTixzPW8tcixsPShvK3IpLzI7cmV0dXJuIHM/KGE9ZT09PW8/KG4taSkvcys2KihuPGkpOm49PT1vPyhpLWUpL3MrMjooZS1uKS9zKzQscy89bDwuNT9vK3I6Mi1vLXIsYSo9NjApOnM9bD4wJiZsPDE/MDphLG5ldyBWb3QoYSxzLGwsdC5vcGFjaXR5KX1mdW5jdGlvbiBWb3QodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIFVvdCh0LGUsbil7cmV0dXJuIDI1NSoodDw2MD9lKyhuLWUpKnQvNjA6dDwxODA/bjp0PDI0MD9lKyhuLWUpKigyNDAtdCkvNjA6ZSl9ZnVuY3Rpb24gam90KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBHb3QodCxlKXt2YXIgbj1lLXQ7cmV0dXJuIG4/KGZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQrbiplfX0pKHQsbik6am90KGlzTmFOKHQpP2U6dCl9ZG90KGZvdCxMb3Qse2NvcHk6ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsdGhpcyx0KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6QW90LGZvcm1hdEhleDpBb3QsZm9ybWF0SHNsOmZ1bmN0aW9uIFdvdCgpe3JldHVybiBGb3QodGhpcykuZm9ybWF0SHNsKCl9LGZvcm1hdFJnYjprb3QsdG9TdHJpbmc6a290fSksZG90KE9vdCxSb3QscG90KGZvdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9nb3Q6TWF0aC5wb3coZ290LHQpLG5ldyBPb3QodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/bW90Ok1hdGgucG93KG1vdCx0KSxuZXcgT290KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6em90LGZvcm1hdEhleDp6b3QsZm9ybWF0UmdiOkRvdCx0b1N0cmluZzpEb3R9KSksZG90KFZvdCwoZnVuY3Rpb24gcW90KHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9Gb3QodCk6bmV3IFZvdCh0LGUsbixudWxsPT1pPzE6aSl9KSxwb3QoZm90LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P2dvdDpNYXRoLnBvdyhnb3QsdCksbmV3IFZvdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P21vdDpNYXRoLnBvdyhtb3QsdCksbmV3IFZvdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaCUzNjArMzYwKih0aGlzLmg8MCksZT1pc05hTih0KXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxuPXRoaXMubCxpPW4rKG48LjU/bjoxLW4pKmUscj0yKm4taTtyZXR1cm4gbmV3IE9vdChVb3QodD49MjQwP3QtMjQwOnQrMTIwLHIsaSksVW90KHQscixpKSxVb3QodDwxMjA/dCsyNDA6dC0xMjAscixpKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgWW90PShmdW5jdGlvbiB0KGUpe3ZhciBuPShmdW5jdGlvbiBpKHQpe3JldHVybiAxPT0odD0rdCk/R290OmZ1bmN0aW9uKGUsbil7cmV0dXJuIG4tZT8oZnVuY3Rpb24gaSh0LGUsbil7cmV0dXJuIHQ9TWF0aC5wb3codCxuKSxlPU1hdGgucG93KGUsbiktdCxuPTEvbixmdW5jdGlvbihpKXtyZXR1cm4gTWF0aC5wb3codCtpKmUsbil9fSkoZSxuLHQpOmpvdChpc05hTihlKT9uOmUpfX0pKGUpO2Z1bmN0aW9uIHIodCxlKXt2YXIgaT1uKCh0PVJvdCh0KSkuciwoZT1Sb3QoZSkpLnIpLHI9bih0LmcsZS5nKSxvPW4odC5iLGUuYiksYT1Hb3QodC5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LnI9aShlKSx0Lmc9cihlKSx0LmI9byhlKSx0Lm9wYWNpdHk9YShlKSx0KyIifX1yZXR1cm4gci5nYW1tYT10LHJ9KSgxKTtmdW5jdGlvbiBYb3QodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiB0KigxLW4pK2Uqbn19dmFyICRvdD0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csS290PW5ldyBSZWdFeHAoJG90LnNvdXJjZSwiZyIpO2Z1bmN0aW9uIFpvdCh0LGUpe3ZhciBuLGkscixvPSRvdC5sYXN0SW5kZXg9S290Lmxhc3RJbmRleD0wLGE9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsobj0kb3QuZXhlYyh0KSkmJihpPUtvdC5leGVjKGUpKTspKHI9aS5pbmRleCk+byYmKHI9ZS5zbGljZShvLHIpLHNbYV0/c1thXSs9cjpzWysrYV09ciksKG49blswXSk9PT0oaT1pWzBdKT9zW2FdP3NbYV0rPWk6c1srK2FdPWk6KHNbKythXT1udWxsLGwucHVzaCh7aTphLHg6WG90KG4saSl9KSksbz1Lb3QubGFzdEluZGV4O3JldHVybiBvPGUubGVuZ3RoJiYocj1lLnNsaWNlKG8pLHNbYV0/c1thXSs9cjpzWysrYV09cikscy5sZW5ndGg8Mj9sWzBdPyhmdW5jdGlvbiBjKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKSsiIn19KShsWzBdLngpOihmdW5jdGlvbiB1KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0pKGUpOihlPWwubGVuZ3RoLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixpPTA7aTxlOysraSlzWyhuPWxbaV0pLmldPW4ueCh0KTtyZXR1cm4gcy5qb2luKCIiKX0pfXZhciBKb3QsUW90LHRhdCxlYXQsbmF0PTE4MC9NYXRoLlBJLGlhdD17dHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MCxyb3RhdGU6MCxza2V3WDowLHNjYWxlWDoxLHNjYWxlWToxfTtmdW5jdGlvbiByYXQodCxlLG4saSxyLG8pe3ZhciBhLHMsbDtyZXR1cm4oYT1NYXRoLnNxcnQodCp0K2UqZSkpJiYodC89YSxlLz1hKSwobD10Km4rZSppKSYmKG4tPXQqbCxpLT1lKmwpLChzPU1hdGguc3FydChuKm4raSppKSkmJihuLz1zLGkvPXMsbC89cyksdCppPGUqbiYmKHQ9LXQsZT0tZSxsPS1sLGE9LWEpLHt0cmFuc2xhdGVYOnIsdHJhbnNsYXRlWTpvLHJvdGF0ZTpNYXRoLmF0YW4yKGUsdCkqbmF0LHNrZXdYOk1hdGguYXRhbihsKSpuYXQsc2NhbGVYOmEsc2NhbGVZOnN9fWZ1bmN0aW9uIG9hdCh0LGUsbixpKXtmdW5jdGlvbiByKHQpe3JldHVybiB0Lmxlbmd0aD90LnBvcCgpKyIgIjoiIn1yZXR1cm4gZnVuY3Rpb24obyxhKXt2YXIgcz1bXSxsPVtdO3JldHVybiBvPXQobyksYT10KGEpLChmdW5jdGlvbiBjKHQsaSxyLG8sYSxzKXtpZih0IT09cnx8aSE9PW8pe3ZhciBsPWEucHVzaCgidHJhbnNsYXRlKCIsbnVsbCxlLG51bGwsbik7cy5wdXNoKHtpOmwtNCx4OlhvdCh0LHIpfSx7aTpsLTIseDpYb3QoaSxvKX0pfWVsc2Uocnx8bykmJmEucHVzaCgidHJhbnNsYXRlKCIrcitlK28rbil9KShvLnRyYW5zbGF0ZVgsby50cmFuc2xhdGVZLGEudHJhbnNsYXRlWCxhLnRyYW5zbGF0ZVkscyxsKSwoZnVuY3Rpb24gdSh0LGUsbixvKXt0IT09ZT8odC1lPjE4MD9lKz0zNjA6ZS10PjE4MCYmKHQrPTM2MCksby5wdXNoKHtpOm4ucHVzaChyKG4pKyJyb3RhdGUoIixudWxsLGkpLTIseDpYb3QodCxlKX0pKTplJiZuLnB1c2gocihuKSsicm90YXRlKCIrZStpKX0pKG8ucm90YXRlLGEucm90YXRlLHMsbCksKGZ1bmN0aW9uIGgodCxlLG4sbyl7dCE9PWU/by5wdXNoKHtpOm4ucHVzaChyKG4pKyJza2V3WCgiLG51bGwsaSktMix4OlhvdCh0LGUpfSk6ZSYmbi5wdXNoKHIobikrInNrZXdYKCIrZStpKX0pKG8uc2tld1gsYS5za2V3WCxzLGwpLChmdW5jdGlvbiBkKHQsZSxuLGksbyxhKXtpZih0IT09bnx8ZSE9PWkpe3ZhciBzPW8ucHVzaChyKG8pKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTthLnB1c2goe2k6cy00LHg6WG90KHQsbil9LHtpOnMtMix4OlhvdChlLGkpfSl9ZWxzZSAxPT09biYmMT09PWl8fG8ucHVzaChyKG8pKyJzY2FsZSgiK24rIiwiK2krIikiKX0pKG8uc2NhbGVYLG8uc2NhbGVZLGEuc2NhbGVYLGEuc2NhbGVZLHMsbCksbz1hPW51bGwsZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49LTEsaT1sLmxlbmd0aDsrK248aTspc1soZT1sW25dKS5pXT1lLngodCk7cmV0dXJuIHMuam9pbigiIil9fX12YXIgYWF0PW9hdCgoZnVuY3Rpb24gc2F0KHQpe3JldHVybiJub25lIj09PXQ/aWF0OihKb3R8fChKb3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIiksUW90PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0YXQ9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLEpvdC5zdHlsZS50cmFuc2Zvcm09dCx0PXRhdC5nZXRDb21wdXRlZFN0eWxlKFFvdC5hcHBlbmRDaGlsZChKb3QpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLFFvdC5yZW1vdmVDaGlsZChKb3QpLHJhdCgrKHQ9dC5zbGljZSg3LC0xKS5zcGxpdCgiLCIpKVswXSwrdFsxXSwrdFsyXSwrdFszXSwrdFs0XSwrdFs1XSkpfSksInB4LCAiLCJweCkiLCJkZWcpIiksbGF0PW9hdCgoZnVuY3Rpb24gY2F0KHQpe3JldHVybiBudWxsPT10P2lhdDooZWF0fHwoZWF0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIikpLGVhdC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9ZWF0LnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpP3JhdCgodD10Lm1hdHJpeCkuYSx0LmIsdC5jLHQuZCx0LmUsdC5mKTppYXQpfSksIiwgIiwiKSIsIikiKTtmdW5jdGlvbiB1YXQodCxlKXt2YXIgbixpO3JldHVybiBmdW5jdGlvbigpe3ZhciByPWNvdCh0aGlzLHQpLG89ci50d2VlbjtpZihvIT09bilmb3IodmFyIGE9MCxzPShpPW49bykubGVuZ3RoO2E8czsrK2EpaWYoaVthXS5uYW1lPT09ZSl7KGk9aS5zbGljZSgpKS5zcGxpY2UoYSwxKTticmVha31yLnR3ZWVuPWl9fWZ1bmN0aW9uIGhhdCh0LGUsbil7dmFyIGkscjtpZigiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89Y290KHRoaXMsdCksYT1vLnR3ZWVuO2lmKGEhPT1pKXtyPShpPWEpLnNsaWNlKCk7Zm9yKHZhciBzPXtuYW1lOmUsdmFsdWU6bn0sbD0wLGM9ci5sZW5ndGg7bDxjOysrbClpZihyW2xdLm5hbWU9PT1lKXtyW2xdPXM7YnJlYWt9bD09PWMmJnIucHVzaChzKX1vLnR3ZWVuPXJ9fWZ1bmN0aW9uIGRhdCh0LGUsbil7dmFyIGk9dC5faWQ7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1jb3QodGhpcyxpKTsodC52YWx1ZXx8KHQudmFsdWU9e30pKVtlXT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pKSxmdW5jdGlvbih0KXtyZXR1cm4gdW90KHQsaSkudmFsdWVbZV19fWZ1bmN0aW9uIHBhdCh0LGUpe3ZhciBuO3JldHVybigibnVtYmVyIj09dHlwZW9mIGU/WG90OmUgaW5zdGFuY2VvZiBMb3Q/WW90OihuPUxvdChlKSk/KGU9bixZb3QpOlpvdCkodCxlKX1mdW5jdGlvbiBmYXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIG1hdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGdhdCh0LGUsbil7dmFyIGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10aGlzLmdldEF0dHJpYnV0ZSh0KTtyZXR1cm4gbz09PW4/bnVsbDpvPT09aT9yOnI9ZShpPW8sbil9fWZ1bmN0aW9uIF9hdCh0LGUsbil7dmFyIGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk7cmV0dXJuIG89PT1uP251bGw6bz09PWk/cjpyPWUoaT1vLG4pfX1mdW5jdGlvbiB5YXQodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPW4odGhpcyk7aWYobnVsbCE9cylyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZSh0KSk9PT1zP251bGw6YT09PWkmJnM9PT1yP286bz1lKGk9YSxyPXMpO3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiB2YXQodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPW4odGhpcyk7aWYobnVsbCE9cylyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCkpPT09cz9udWxsOmE9PT1pJiZzPT09cj9vOm89ZShpPWEscj1zKTt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGJhdCh0LGUpe2Z1bmN0aW9uIG4oKXt2YXIgbj10aGlzLGk9ZS5hcHBseShuLGFyZ3VtZW50cyk7cmV0dXJuIGkmJmZ1bmN0aW9uKGUpe24uc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGkoZSkpfX1yZXR1cm4gbi5fdmFsdWU9ZSxufWZ1bmN0aW9uIHhhdCh0LGUpe2Z1bmN0aW9uIG4oKXt2YXIgbj10aGlzLGk9ZS5hcHBseShuLGFyZ3VtZW50cyk7cmV0dXJuIGkmJmZ1bmN0aW9uKGUpe24uc2V0QXR0cmlidXRlKHQsaShlKSl9fXJldHVybiBuLl92YWx1ZT1lLG59ZnVuY3Rpb24gd2F0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7bG90KHRoaXMsdCkuZGVsYXk9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBTYXQodCxlKXtyZXR1cm4gZT0rZSxmdW5jdGlvbigpe2xvdCh0aGlzLHQpLmRlbGF5PWV9fWZ1bmN0aW9uIE1hdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe2NvdCh0aGlzLHQpLmR1cmF0aW9uPStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gRWF0KHQsZSl7cmV0dXJuIGU9K2UsZnVuY3Rpb24oKXtjb3QodGhpcyx0KS5kdXJhdGlvbj1lfX1mdW5jdGlvbiBUYXQodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7Y290KHRoaXMsdCkuZWFzZT1lfX1mdW5jdGlvbiBDYXQodCxlLG4pe3ZhciBpLHIsbz0oZnVuY3Rpb24gYSh0KXtyZXR1cm4odCsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pLmV2ZXJ5KChmdW5jdGlvbih0KXt2YXIgZT10LmluZGV4T2YoIi4iKTtyZXR1cm4gZT49MCYmKHQ9dC5zbGljZSgwLGUpKSwhdHx8InN0YXJ0Ij09PXR9KSl9KShlKT9sb3Q6Y290O3JldHVybiBmdW5jdGlvbigpe3ZhciBhPW8odGhpcyx0KSxzPWEub247cyE9PWkmJihyPShpPXMpLmNvcHkoKSkub24oZSxuKSxhLm9uPXJ9fXZhciBBYXQ9aXJ0LnByb3RvdHlwZS5jb25zdHJ1Y3RvcjtmdW5jdGlvbiBrYXQodCxlLG4pe2Z1bmN0aW9uIGkoKXt2YXIgaT10aGlzLHI9ZS5hcHBseShpLGFyZ3VtZW50cyk7cmV0dXJuIHImJmZ1bmN0aW9uKGUpe2kuc3R5bGUuc2V0UHJvcGVydHkodCxyKGUpLG4pfX1yZXR1cm4gaS5fdmFsdWU9ZSxpfXZhciBMYXQ9MDtmdW5jdGlvbiBQYXQodCxlLG4saSl7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1lLHRoaXMuX25hbWU9bix0aGlzLl9pZD1pfWZ1bmN0aW9uIE5hdCh0KXtyZXR1cm4gaXJ0KCkudHJhbnNpdGlvbih0KX1mdW5jdGlvbiBJYXQoKXtyZXR1cm4rK0xhdH12YXIgUmF0PWlydC5wcm90b3R5cGU7UGF0LnByb3RvdHlwZT1OYXQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpQYXQsc2VsZWN0OmZ1bmN0aW9uIE9hdCh0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWlpdCh0KSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7KythKWZvcih2YXIgcyxsLGM9aVthXSx1PWMubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9Y1tkXSkmJihsPXQuY2FsbChzLHMuX19kYXRhX18sZCxjKSkmJigiX19kYXRhX18iaW4gcyYmKGwuX19kYXRhX189cy5fX2RhdGFfXyksaFtkXT1sLHNvdChoW2RdLGUsbixkLGgsdW90KHMsbikpKTtyZXR1cm4gbmV3IFBhdChvLHRoaXMuX3BhcmVudHMsZSxuKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIHphdCh0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PW9pdCh0KSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89W10sYT1bXSxzPTA7czxyOysrcylmb3IodmFyIGwsYz1pW3NdLHU9Yy5sZW5ndGgsaD0wO2g8dTsrK2gpaWYobD1jW2hdKXtmb3IodmFyIGQscD10LmNhbGwobCxsLl9fZGF0YV9fLGgsYyksZj11b3QobCxuKSxtPTAsZz1wLmxlbmd0aDttPGc7KyttKShkPXBbbV0pJiZzb3QoZCxlLG4sbSxwLGYpO28ucHVzaChwKSxhLnB1c2gobCl9cmV0dXJuIG5ldyBQYXQobyxhLGUsbil9LGZpbHRlcjpmdW5jdGlvbiBEYXQodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWFpdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgUGF0KGksdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sbWVyZ2U6ZnVuY3Rpb24gQmF0KHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IFBhdChvLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbiBIYXQoKXtyZXR1cm4gbmV3IEFhdCh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24gRmF0KCl7Zm9yKHZhciB0PXRoaXMuX25hbWUsZT10aGlzLl9pZCxuPUlhdCgpLGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz0wO288cjsrK28pZm9yKHZhciBhLHM9aVtvXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKWlmKGE9c1tjXSl7dmFyIHU9dW90KGEsZSk7c290KGEsdCxuLGMscyx7dGltZTp1LnRpbWUrdS5kZWxheSt1LmR1cmF0aW9uLGRlbGF5OjAsZHVyYXRpb246dS5kdXJhdGlvbixlYXNlOnUuZWFzZX0pfXJldHVybiBuZXcgUGF0KGksdGhpcy5fcGFyZW50cyx0LG4pfSxjYWxsOlJhdC5jYWxsLG5vZGVzOlJhdC5ub2Rlcyxub2RlOlJhdC5ub2RlLHNpemU6UmF0LnNpemUsZW1wdHk6UmF0LmVtcHR5LGVhY2g6UmF0LmVhY2gsb246ZnVuY3Rpb24gVmF0KHQsZSl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj91b3QodGhpcy5ub2RlKCksbikub24ub24odCk6dGhpcy5lYWNoKENhdChuLHQsZSkpfSxhdHRyOmZ1bmN0aW9uIFVhdCh0LGUpe3ZhciBuPUpudCh0KSxpPSJ0cmFuc2Zvcm0iPT09bj9sYXQ6cGF0O3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LCJmdW5jdGlvbiI9PXR5cGVvZiBlPyhuLmxvY2FsP3ZhdDp5YXQpKG4saSxkYXQodGhpcywiYXR0ci4iK3QsZSkpOm51bGw9PWU/KG4ubG9jYWw/bWF0OmZhdCkobik6KG4ubG9jYWw/X2F0OmdhdCkobixpLGUrIiIpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uIGphdCh0LGUpe3ZhciBuPSJhdHRyLiIrdDtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKG49dGhpcy50d2VlbihuKSkmJm4uX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4obixudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7dmFyIGk9Sm50KHQpO3JldHVybiB0aGlzLnR3ZWVuKG4sKGkubG9jYWw/YmF0OnhhdCkoaSxlKSl9LHN0eWxlOmZ1bmN0aW9uIEdhdCh0LGUsbil7dmFyIGk9InRyYW5zZm9ybSI9PSh0Kz0iIik/YWF0OnBhdDtyZXR1cm4gbnVsbD09ZT90aGlzLnN0eWxlVHdlZW4odCwoZnVuY3Rpb24gbyh0LGUpe3ZhciBuLGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz13aXQodGhpcyx0KSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLHdpdCh0aGlzLHQpKTtyZXR1cm4gbz09PWE/bnVsbDpvPT09biYmYT09PWk/cjpyPWUobj1vLGk9YSl9fSkodCxpKSkub24oImVuZC5zdHlsZS4iK3QsKGZ1bmN0aW9uIHIodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19KSh0KSk6dGhpcy5zdHlsZVR3ZWVuKHQsImZ1bmN0aW9uIj09dHlwZW9mIGU/KGZ1bmN0aW9uIGEodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT13aXQodGhpcyx0KSxzPW4odGhpcyk7cmV0dXJuIG51bGw9PXMmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLHM9d2l0KHRoaXMsdCkpLGE9PT1zP251bGw6YT09PWkmJnM9PT1yP286bz1lKGk9YSxyPXMpfX0pKHQsaSxkYXQodGhpcywic3R5bGUuIit0LGUpKTooZnVuY3Rpb24gcyh0LGUsbil7dmFyIGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz13aXQodGhpcyx0KTtyZXR1cm4gbz09PW4/bnVsbDpvPT09aT9yOnI9ZShpPW8sbil9fSkodCxpLGUrIiIpLG4pfSxzdHlsZVR3ZWVuOmZ1bmN0aW9uIFdhdCh0LGUsbil7dmFyIGk9InN0eWxlLiIrKHQrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGk9dGhpcy50d2VlbihpKSkmJmkuX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4oaSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oaSxrYXQodCxlLG51bGw9PW4/IiI6bikpfSx0ZXh0OmZ1bmN0aW9uIHFhdCh0KXtyZXR1cm4gdGhpcy50d2VlbigidGV4dCIsImZ1bmN0aW9uIj09dHlwZW9mIHQ/KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dCh0aGlzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19KShkYXQodGhpcywidGV4dCIsdCkpOihmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KShudWxsPT10PyIiOnQrIiIpKX0scmVtb3ZlOmZ1bmN0aW9uIFlhdCgpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtuIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19KSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiBYYXQodCxlKXt2YXIgbj10aGlzLl9pZDtpZih0Kz0iIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaSxyPXVvdCh0aGlzLm5vZGUoKSxuKS50d2VlbixvPTAsYT1yLmxlbmd0aDtvPGE7KytvKWlmKChpPXJbb10pLm5hbWU9PT10KXJldHVybiBpLnZhbHVlO3JldHVybiBudWxsfXJldHVybiB0aGlzLmVhY2goKG51bGw9PWU/dWF0OmhhdCkobix0LGUpKX0sZGVsYXk6ZnVuY3Rpb24gJGF0KHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIHQ/d2F0OlNhdCkoZSx0KSk6dW90KHRoaXMubm9kZSgpLGUpLmRlbGF5fSxkdXJhdGlvbjpmdW5jdGlvbiBLYXQodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9NYXQ6RWF0KShlLHQpKTp1b3QodGhpcy5ub2RlKCksZSkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24gWmF0KHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChUYXQoZSx0KSk6dW90KHRoaXMubm9kZSgpLGUpLmVhc2V9fTt2YXIgSmF0PXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpUZn07ZnVuY3Rpb24gUWF0KHQsZSl7Zm9yKHZhciBuOyEobj10Ll9fdHJhbnNpdGlvbil8fCEobj1uW2VdKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIEphdC50aW1lPVpydCgpLEphdDtyZXR1cm4gbn1pcnQucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbiB0c3QodCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtob3QodGhpcyx0KX0pKX0saXJ0LnByb3RvdHlwZS50cmFuc2l0aW9uPWZ1bmN0aW9uIGVzdCh0KXt2YXIgZSxuO3QgaW5zdGFuY2VvZiBQYXQ/KGU9dC5faWQsdD10Ll9uYW1lKTooZT1JYXQoKSwobj1KYXQpLnRpbWU9WnJ0KCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykoYT1zW2NdKSYmc290KGEsdCxlLGMscyxufHxRYXQoYSxlKSk7cmV0dXJuIG5ldyBQYXQoaSx0aGlzLl9wYXJlbnRzLHQsZSl9O3ZhciBuc3Q9W251bGxdO2Z1bmN0aW9uIGlzdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gcnN0KHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIG9zdCh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBhc3QoKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBzc3QodCl7dC5VPXQuQz10Lkw9dC5SPXQuUD10Lk49bnVsbH1mdW5jdGlvbiBsc3QodCxlKXt2YXIgbj1lLGk9ZS5SLHI9bi5VO3I/ci5MPT09bj9yLkw9aTpyLlI9aTp0Ll89aSxpLlU9cixuLlU9aSxuLlI9aS5MLG4uUiYmKG4uUi5VPW4pLGkuTD1ufWZ1bmN0aW9uIGNzdCh0LGUpe3ZhciBuPWUsaT1lLkwscj1uLlU7cj9yLkw9PT1uP3IuTD1pOnIuUj1pOnQuXz1pLGkuVT1yLG4uVT1pLG4uTD1pLlIsbi5MJiYobi5MLlU9biksaS5SPW59ZnVuY3Rpb24gdXN0KHQpe2Zvcig7dC5MOyl0PXQuTDtyZXR1cm4gdH1mdW5jdGlvbiBoc3QodCxlLG4saSl7dmFyIHI9W251bGwsbnVsbF0sbz1Pc3QucHVzaChyKS0xO3JldHVybiByLmxlZnQ9dCxyLnJpZ2h0PWUsbiYmcHN0KHIsdCxlLG4pLGkmJnBzdChyLGUsdCxpKSxJc3RbdC5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksSXN0W2UuaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLHJ9ZnVuY3Rpb24gZHN0KHQsZSxuKXt2YXIgaT1bZSxuXTtyZXR1cm4gaS5sZWZ0PXQsaX1mdW5jdGlvbiBwc3QodCxlLG4saSl7dFswXXx8dFsxXT90LmxlZnQ9PT1uP3RbMV09aTp0WzBdPWk6KHRbMF09aSx0LmxlZnQ9ZSx0LnJpZ2h0PW4pfWZ1bmN0aW9uIGZzdCh0LGUsbixpLHIpe3ZhciBvLGE9dFswXSxzPXRbMV0sbD1hWzBdLGM9YVsxXSx1PTAsaD0xLGQ9c1swXS1sLHA9c1sxXS1jO2lmKG89ZS1sLGR8fCEobz4wKSl7aWYoby89ZCxkPDApe2lmKG88dSlyZXR1cm47bzxoJiYoaD1vKX1lbHNlIGlmKGQ+MCl7aWYobz5oKXJldHVybjtvPnUmJih1PW8pfWlmKG89aS1sLGR8fCEobzwwKSl7aWYoby89ZCxkPDApe2lmKG8+aClyZXR1cm47bz51JiYodT1vKX1lbHNlIGlmKGQ+MCl7aWYobzx1KXJldHVybjtvPGgmJihoPW8pfWlmKG89bi1jLHB8fCEobz4wKSl7aWYoby89cCxwPDApe2lmKG88dSlyZXR1cm47bzxoJiYoaD1vKX1lbHNlIGlmKHA+MCl7aWYobz5oKXJldHVybjtvPnUmJih1PW8pfWlmKG89ci1jLHB8fCEobzwwKSl7aWYoby89cCxwPDApe2lmKG8+aClyZXR1cm47bz51JiYodT1vKX1lbHNlIGlmKHA+MCl7aWYobzx1KXJldHVybjtvPGgmJihoPW8pfXJldHVybiEodT4wfHxoPDEpfHwodT4wJiYodFswXT1bbCt1KmQsYyt1KnBdKSxoPDEmJih0WzFdPVtsK2gqZCxjK2gqcF0pLCEwKX19fX19ZnVuY3Rpb24gbXN0KHQsZSxuLGkscil7dmFyIG89dFsxXTtpZihvKXJldHVybiEwO3ZhciBhLHMsbD10WzBdLGM9dC5sZWZ0LHU9dC5yaWdodCxoPWNbMF0sZD1jWzFdLHA9dVswXSxmPXVbMV0sbT0oaCtwKS8yO2lmKGY9PT1kKXtpZihtPGV8fG0+PWkpcmV0dXJuO2lmKGg+cCl7aWYobCl7aWYobFsxXT49cilyZXR1cm59ZWxzZSBsPVttLG5dO289W20scl19ZWxzZXtpZihsKXtpZihsWzFdPG4pcmV0dXJufWVsc2UgbD1bbSxyXTtvPVttLG5dfX1lbHNlIGlmKHM9KGQrZikvMi0oYT0oaC1wKS8oZi1kKSkqbSxhPC0xfHxhPjEpaWYoaD5wKXtpZihsKXtpZihsWzFdPj1yKXJldHVybn1lbHNlIGw9WyhuLXMpL2Esbl07bz1bKHItcykvYSxyXX1lbHNle2lmKGwpe2lmKGxbMV08bilyZXR1cm59ZWxzZSBsPVsoci1zKS9hLHJdO289WyhuLXMpL2Esbl19ZWxzZSBpZihkPGYpe2lmKGwpe2lmKGxbMF0+PWkpcmV0dXJufWVsc2UgbD1bZSxhKmUrc107bz1baSxhKmkrc119ZWxzZXtpZihsKXtpZihsWzBdPGUpcmV0dXJufWVsc2UgbD1baSxhKmkrc107bz1bZSxhKmUrc119cmV0dXJuIHRbMF09bCx0WzFdPW8sITB9ZnVuY3Rpb24gZ3N0KHQsZSl7dmFyIG49dC5zaXRlLGk9ZS5sZWZ0LHI9ZS5yaWdodDtyZXR1cm4gbj09PXImJihyPWksaT1uKSxyP01hdGguYXRhbjIoclsxXS1pWzFdLHJbMF0taVswXSk6KG49PT1pPyhpPWVbMV0scj1lWzBdKTooaT1lWzBdLHI9ZVsxXSksTWF0aC5hdGFuMihpWzBdLXJbMF0sclsxXS1pWzFdKSl9ZnVuY3Rpb24gX3N0KHQsZSl7cmV0dXJuIGVbKyhlLmxlZnQhPT10LnNpdGUpXX1mdW5jdGlvbiB5c3QodCxlKXtyZXR1cm4gZVsrKGUubGVmdD09PXQuc2l0ZSldfWFzdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmFzdCxpbnNlcnQ6ZnVuY3Rpb24odCxlKXt2YXIgbixpLHI7aWYodCl7aWYoZS5QPXQsZS5OPXQuTix0Lk4mJih0Lk4uUD1lKSx0Lk49ZSx0LlIpe2Zvcih0PXQuUjt0Lkw7KXQ9dC5MO3QuTD1lfWVsc2UgdC5SPWU7bj10fWVsc2UgdGhpcy5fPyh0PXVzdCh0aGlzLl8pLGUuUD1udWxsLGUuTj10LHQuUD10Lkw9ZSxuPXQpOihlLlA9ZS5OPW51bGwsdGhpcy5fPWUsbj1udWxsKTtmb3IoZS5MPWUuUj1udWxsLGUuVT1uLGUuQz0hMCx0PWU7biYmbi5DOyluPT09KGk9bi5VKS5MPyhyPWkuUikmJnIuQz8obi5DPXIuQz0hMSxpLkM9ITAsdD1pKToodD09PW4uUiYmKGxzdCh0aGlzLG4pLG49KHQ9bikuVSksbi5DPSExLGkuQz0hMCxjc3QodGhpcyxpKSk6KHI9aS5MKSYmci5DPyhuLkM9ci5DPSExLGkuQz0hMCx0PWkpOih0PT09bi5MJiYoY3N0KHRoaXMsbiksbj0odD1uKS5VKSxuLkM9ITEsaS5DPSEwLGxzdCh0aGlzLGkpKSxuPXQuVTt0aGlzLl8uQz0hMX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuTiYmKHQuTi5QPXQuUCksdC5QJiYodC5QLk49dC5OKSx0Lk49dC5QPW51bGw7dmFyIGUsbixpLHI9dC5VLG89dC5MLGE9dC5SO2lmKG49bz9hP3VzdChhKTpvOmEscj9yLkw9PT10P3IuTD1uOnIuUj1uOnRoaXMuXz1uLG8mJmE/KGk9bi5DLG4uQz10LkMsbi5MPW8sby5VPW4sbiE9PWE/KHI9bi5VLG4uVT10LlUsci5MPXQ9bi5SLG4uUj1hLGEuVT1uKToobi5VPXIscj1uLHQ9bi5SKSk6KGk9dC5DLHQ9biksdCYmKHQuVT1yKSwhaSlpZih0JiZ0LkMpdC5DPSExO2Vsc2V7ZG97aWYodD09PXRoaXMuXylicmVhaztpZih0PT09ci5MKXtpZigoZT1yLlIpLkMmJihlLkM9ITEsci5DPSEwLGxzdCh0aGlzLHIpLGU9ci5SKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLlImJmUuUi5DfHwoZS5MLkM9ITEsZS5DPSEwLGNzdCh0aGlzLGUpLGU9ci5SKSxlLkM9ci5DLHIuQz1lLlIuQz0hMSxsc3QodGhpcyxyKSx0PXRoaXMuXzticmVha319ZWxzZSBpZigoZT1yLkwpLkMmJihlLkM9ITEsci5DPSEwLGNzdCh0aGlzLHIpLGU9ci5MKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLkwmJmUuTC5DfHwoZS5SLkM9ITEsZS5DPSEwLGxzdCh0aGlzLGUpLGU9ci5MKSxlLkM9ci5DLHIuQz1lLkwuQz0hMSxjc3QodGhpcyxyKSx0PXRoaXMuXzticmVha31lLkM9ITAsdD1yLHI9ci5VfXdoaWxlKCF0LkMpO3QmJih0LkM9ITEpfX19O3ZhciB2c3QsYnN0PVtdO2Z1bmN0aW9uIHhzdCgpe3NzdCh0aGlzKSx0aGlzLng9dGhpcy55PXRoaXMuYXJjPXRoaXMuc2l0ZT10aGlzLmN5PW51bGx9ZnVuY3Rpb24gd3N0KHQpe3ZhciBlPXQuUCxuPXQuTjtpZihlJiZuKXt2YXIgaT1lLnNpdGUscj10LnNpdGUsbz1uLnNpdGU7aWYoaSE9PW8pe3ZhciBhPXJbMF0scz1yWzFdLGw9aVswXS1hLGM9aVsxXS1zLHU9b1swXS1hLGg9b1sxXS1zLGQ9MioobCpoLWMqdSk7aWYoIShkPj0tRHN0KSl7dmFyIHA9bCpsK2MqYyxmPXUqdStoKmgsbT0oaCpwLWMqZikvZCxnPShsKmYtdSpwKS9kLF89YnN0LnBvcCgpfHxuZXcgeHN0O18uYXJjPXQsXy5zaXRlPXIsXy54PW0rYSxfLnk9KF8uY3k9ZytzKStNYXRoLnNxcnQobSptK2cqZyksdC5jaXJjbGU9Xztmb3IodmFyIHk9bnVsbCx2PVJzdC5fO3Y7KWlmKF8ueTx2Lnl8fF8ueT09PXYueSYmXy54PD12Lngpe2lmKCF2Lkwpe3k9di5QO2JyZWFrfXY9di5MfWVsc2V7aWYoIXYuUil7eT12O2JyZWFrfXY9di5SfVJzdC5pbnNlcnQoeSxfKSx5fHwodnN0PV8pfX19fWZ1bmN0aW9uIFNzdCh0KXt2YXIgZT10LmNpcmNsZTtlJiYoZS5QfHwodnN0PWUuTiksUnN0LnJlbW92ZShlKSxic3QucHVzaChlKSxzc3QoZSksdC5jaXJjbGU9bnVsbCl9dmFyIE1zdD1bXTtmdW5jdGlvbiBFc3QoKXtzc3QodGhpcyksdGhpcy5lZGdlPXRoaXMuc2l0ZT10aGlzLmNpcmNsZT1udWxsfWZ1bmN0aW9uIFRzdCh0KXt2YXIgZT1Nc3QucG9wKCl8fG5ldyBFc3Q7cmV0dXJuIGUuc2l0ZT10LGV9ZnVuY3Rpb24gQ3N0KHQpe1NzdCh0KSxOc3QucmVtb3ZlKHQpLE1zdC5wdXNoKHQpLHNzdCh0KX1mdW5jdGlvbiBBc3QodCl7dmFyIGU9dC5jaXJjbGUsbj1lLngsaT1lLmN5LHI9W24saV0sbz10LlAsYT10Lk4scz1bdF07Q3N0KHQpO2Zvcih2YXIgbD1vO2wuY2lyY2xlJiZNYXRoLmFicyhuLWwuY2lyY2xlLngpPHpzdCYmTWF0aC5hYnMoaS1sLmNpcmNsZS5jeSk8enN0OylvPWwuUCxzLnVuc2hpZnQobCksQ3N0KGwpLGw9bztzLnVuc2hpZnQobCksU3N0KGwpO2Zvcih2YXIgYz1hO2MuY2lyY2xlJiZNYXRoLmFicyhuLWMuY2lyY2xlLngpPHpzdCYmTWF0aC5hYnMoaS1jLmNpcmNsZS5jeSk8enN0OylhPWMuTixzLnB1c2goYyksQ3N0KGMpLGM9YTtzLnB1c2goYyksU3N0KGMpO3ZhciB1LGg9cy5sZW5ndGg7Zm9yKHU9MTt1PGg7Kyt1KXBzdCgoYz1zW3VdKS5lZGdlLChsPXNbdS0xXSkuc2l0ZSxjLnNpdGUscik7KGM9c1toLTFdKS5lZGdlPWhzdCgobD1zWzBdKS5zaXRlLGMuc2l0ZSxudWxsLHIpLHdzdChsKSx3c3QoYyl9ZnVuY3Rpb24ga3N0KHQpe2Zvcih2YXIgZSxuLGkscixvPXRbMF0sYT10WzFdLHM9TnN0Ll87czspaWYoKGk9THN0KHMsYSktbyk+enN0KXM9cy5MO2Vsc2V7aWYoISgocj1vLVBzdChzLGEpKT56c3QpKXtpPi16c3Q/KGU9cy5QLG49cyk6cj4tenN0PyhlPXMsbj1zLk4pOmU9bj1zO2JyZWFrfWlmKCFzLlIpe2U9czticmVha31zPXMuUn0hKGZ1bmN0aW9uIGwodCl7SXN0W3QuaW5kZXhdPXtzaXRlOnQsaGFsZmVkZ2VzOltdfX0pKHQpO3ZhciBjPVRzdCh0KTtpZihOc3QuaW5zZXJ0KGUsYyksZXx8bil7aWYoZT09PW4pcmV0dXJuIFNzdChlKSxuPVRzdChlLnNpdGUpLE5zdC5pbnNlcnQoYyxuKSxjLmVkZ2U9bi5lZGdlPWhzdChlLnNpdGUsYy5zaXRlKSx3c3QoZSksdm9pZCB3c3Qobik7aWYobil7U3N0KGUpLFNzdChuKTt2YXIgdT1lLnNpdGUsaD11WzBdLGQ9dVsxXSxwPXRbMF0taCxmPXRbMV0tZCxtPW4uc2l0ZSxnPW1bMF0taCxfPW1bMV0tZCx5PTIqKHAqXy1mKmcpLHY9cCpwK2YqZixiPWcqZytfKl8seD1bKF8qdi1mKmIpL3kraCwocCpiLWcqdikveStkXTtwc3Qobi5lZGdlLHUsbSx4KSxjLmVkZ2U9aHN0KHUsdCxudWxsLHgpLG4uZWRnZT1oc3QodCxtLG51bGwseCksd3N0KGUpLHdzdChuKX1lbHNlIGMuZWRnZT1oc3QoZS5zaXRlLGMuc2l0ZSl9fWZ1bmN0aW9uIExzdCh0LGUpe3ZhciBuPXQuc2l0ZSxpPW5bMF0scj1uWzFdLG89ci1lO2lmKCFvKXJldHVybiBpO3ZhciBhPXQuUDtpZighYSlyZXR1cm4tMS8wO3ZhciBzPShuPWEuc2l0ZSlbMF0sbD1uWzFdLGM9bC1lO2lmKCFjKXJldHVybiBzO3ZhciB1PXMtaSxoPTEvby0xL2MsZD11L2M7cmV0dXJuIGg/KC1kK01hdGguc3FydChkKmQtMipoKih1KnUvKC0yKmMpLWwrYy8yK3Itby8yKSkpL2graTooaStzKS8yfWZ1bmN0aW9uIFBzdCh0LGUpe3ZhciBuPXQuTjtpZihuKXJldHVybiBMc3QobixlKTt2YXIgaT10LnNpdGU7cmV0dXJuIGlbMV09PT1lP2lbMF06MS8wfXZhciBOc3QsSXN0LFJzdCxPc3QsenN0PTFlLTYsRHN0PTFlLTEyO2Z1bmN0aW9uIEJzdCh0LGUsbil7cmV0dXJuKHRbMF0tblswXSkqKGVbMV0tdFsxXSktKHRbMF0tZVswXSkqKG5bMV0tdFsxXSl9ZnVuY3Rpb24gSHN0KHQsZSl7cmV0dXJuIGVbMV0tdFsxXXx8ZVswXS10WzBdfWZ1bmN0aW9uIEZzdCh0LGUpe3ZhciBuLGkscixvPXQuc29ydChIc3QpLnBvcCgpO2ZvcihPc3Q9W10sSXN0PW5ldyBBcnJheSh0Lmxlbmd0aCksTnN0PW5ldyBhc3QsUnN0PW5ldyBhc3Q7OylpZihyPXZzdCxvJiYoIXJ8fG9bMV08ci55fHxvWzFdPT09ci55JiZvWzBdPHIueCkpb1swXT09PW4mJm9bMV09PT1pfHwoa3N0KG8pLG49b1swXSxpPW9bMV0pLG89dC5wb3AoKTtlbHNle2lmKCFyKWJyZWFrO0FzdChyLmFyYyl9aWYoKGZ1bmN0aW9uIGEoKXtmb3IodmFyIHQsZSxuLGkscj0wLG89SXN0Lmxlbmd0aDtyPG87KytyKWlmKCh0PUlzdFtyXSkmJihpPShlPXQuaGFsZmVkZ2VzKS5sZW5ndGgpKXt2YXIgYT1uZXcgQXJyYXkoaSkscz1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPGk7KytuKWFbbl09bixzW25dPWdzdCh0LE9zdFtlW25dXSk7Zm9yKGEuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gc1tlXS1zW3RdfSkpLG49MDtuPGk7KytuKXNbbl09ZVthW25dXTtmb3Iobj0wO248aTsrK24pZVtuXT1zW25dfX0pKCksZSl7dmFyIHM9K2VbMF1bMF0sbD0rZVswXVsxXSxjPStlWzFdWzBdLHU9K2VbMV1bMV07IShmdW5jdGlvbiBoKHQsZSxuLGkpe2Zvcih2YXIgcixvPU9zdC5sZW5ndGg7by0tOyltc3Qocj1Pc3Rbb10sdCxlLG4saSkmJmZzdChyLHQsZSxuLGkpJiYoTWF0aC5hYnMoclswXVswXS1yWzFdWzBdKT56c3R8fE1hdGguYWJzKHJbMF1bMV0tclsxXVsxXSk+enN0KXx8ZGVsZXRlIE9zdFtvXX0pKHMsbCxjLHUpLChmdW5jdGlvbiBkKHQsZSxuLGkpe3ZhciByLG8sYSxzLGwsYyx1LGgsZCxwLGYsbSxnPUlzdC5sZW5ndGgsXz0hMDtmb3Iocj0wO3I8ZzsrK3IpaWYobz1Jc3Rbcl0pe2ZvcihhPW8uc2l0ZSxzPShsPW8uaGFsZmVkZ2VzKS5sZW5ndGg7cy0tOylPc3RbbFtzXV18fGwuc3BsaWNlKHMsMSk7Zm9yKHM9MCxjPWwubGVuZ3RoO3M8YzspZj0ocD15c3QobyxPc3RbbFtzXV0pKVswXSxtPXBbMV0saD0odT1fc3QobyxPc3RbbFsrK3MlY11dKSlbMF0sZD11WzFdLChNYXRoLmFicyhmLWgpPnpzdHx8TWF0aC5hYnMobS1kKT56c3QpJiYobC5zcGxpY2UocywwLE9zdC5wdXNoKGRzdChhLHAsTWF0aC5hYnMoZi10KTx6c3QmJmktbT56c3Q/W3QsTWF0aC5hYnMoaC10KTx6c3Q/ZDppXTpNYXRoLmFicyhtLWkpPHpzdCYmbi1mPnpzdD9bTWF0aC5hYnMoZC1pKTx6c3Q/aDpuLGldOk1hdGguYWJzKGYtbik8enN0JiZtLWU+enN0P1tuLE1hdGguYWJzKGgtbik8enN0P2Q6ZV06TWF0aC5hYnMobS1lKTx6c3QmJmYtdD56c3Q/W01hdGguYWJzKGQtZSk8enN0P2g6dCxlXTpudWxsKSktMSksKytjKTtjJiYoXz0hMSl9aWYoXyl7dmFyIHksdixiLHg9MS8wO2ZvcihyPTAsXz1udWxsO3I8ZzsrK3IpKG89SXN0W3JdKSYmKGI9KHk9KGE9by5zaXRlKVswXS10KSp5Kyh2PWFbMV0tZSkqdik8eCYmKHg9YixfPW8pO2lmKF8pe3ZhciB3PVt0LGVdLFM9W3QsaV0sTT1bbixpXSxFPVtuLGVdO18uaGFsZmVkZ2VzLnB1c2goT3N0LnB1c2goZHN0KGE9Xy5zaXRlLHcsUykpLTEsT3N0LnB1c2goZHN0KGEsUyxNKSktMSxPc3QucHVzaChkc3QoYSxNLEUpKS0xLE9zdC5wdXNoKGRzdChhLEUsdykpLTEpfX1mb3Iocj0wO3I8ZzsrK3IpKG89SXN0W3JdKSYmKG8uaGFsZmVkZ2VzLmxlbmd0aHx8ZGVsZXRlIElzdFtyXSl9KShzLGwsYyx1KX10aGlzLmVkZ2VzPU9zdCx0aGlzLmNlbGxzPUlzdCxOc3Q9UnN0PU9zdD1Jc3Q9bnVsbH1Gc3QucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpGc3QscG9seWdvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLm1hcCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5oYWxmZWRnZXMubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gX3N0KGUsdFtuXSl9KSk7cmV0dXJuIG4uZGF0YT1lLnNpdGUuZGF0YSxufSkpfSx0cmlhbmdsZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXSxlPXRoaXMuZWRnZXM7cmV0dXJuIHRoaXMuY2VsbHMuZm9yRWFjaCgoZnVuY3Rpb24obixpKXtpZihvPShyPW4uaGFsZmVkZ2VzKS5sZW5ndGgpZm9yKHZhciByLG8sYSxzPW4uc2l0ZSxsPS0xLGM9ZVtyW28tMV1dLHU9Yy5sZWZ0PT09cz9jLnJpZ2h0OmMubGVmdDsrK2w8bzspYT11LHU9KGM9ZVtyW2xdXSkubGVmdD09PXM/Yy5yaWdodDpjLmxlZnQsYSYmdSYmaTxhLmluZGV4JiZpPHUuaW5kZXgmJkJzdChzLGEsdSk8MCYmdC5wdXNoKFtzLmRhdGEsYS5kYXRhLHUuZGF0YV0pfSkpLHR9LGxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZXMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yaWdodH0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntzb3VyY2U6dC5sZWZ0LmRhdGEsdGFyZ2V0OnQucmlnaHQuZGF0YX19KSl9LGZpbmQ6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaSxyLG89dGhpcyxhPW8uX2ZvdW5kfHwwLHM9by5jZWxscy5sZW5ndGg7IShyPW8uY2VsbHNbYV0pOylpZigrK2E+PXMpcmV0dXJuIG51bGw7dmFyIGw9dC1yLnNpdGVbMF0sYz1lLXIuc2l0ZVsxXSx1PWwqbCtjKmM7ZG97cj1vLmNlbGxzW2k9YV0sYT1udWxsLHIuaGFsZmVkZ2VzLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpPW8uZWRnZXNbbl0scz1pLmxlZnQ7aWYocyE9PXIuc2l0ZSYmc3x8KHM9aS5yaWdodCkpe3ZhciBsPXQtc1swXSxjPWUtc1sxXSxoPWwqbCtjKmM7aDx1JiYodT1oLGE9cy5pbmRleCl9fSkpfXdoaWxlKG51bGwhPT1hKTtyZXR1cm4gby5fZm91bmQ9aSxudWxsPT1ufHx1PD1uKm4/ci5zaXRlOm51bGx9fTt2YXIgVnN0PXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIFVzdCgpe2Zvcih2YXIgdCxlPTAsbj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxuOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaXx8L1tccy5dLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK3QpO2lbdF09W119cmV0dXJuIG5ldyBqc3QoaSl9ZnVuY3Rpb24ganN0KHQpe3RoaXMuXz10fWZ1bmN0aW9uIEdzdCh0LGUpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9dC5pbmRleE9mKCIuIik7aWYoaT49MCYmKG49dC5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKSx0JiYhZS5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6bn19KSl9ZnVuY3Rpb24gV3N0KHQsZSl7Zm9yKHZhciBuLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYoKG49dFtpXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24gcXN0KHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT1Wc3QsdD10LnNsaWNlKDAsaSkuY29uY2F0KHQuc2xpY2UoaSsxKSk7YnJlYWt9cmV0dXJuIG51bGwhPW4mJnQucHVzaCh7bmFtZTplLHZhbHVlOm59KSx0fWpzdC5wcm90b3R5cGU9VXN0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6anN0LG9uOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl8scj1Hc3QodCsiIixpKSxvPS0xLGE9ci5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK288YTspaWYobj0odD1yW29dKS50eXBlKWlbbl09cXN0KGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09cXN0KGlbbl0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChuPSh0PXJbb10pLnR5cGUpJiYobj1Xc3QoaVtuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcganN0KHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgWXN0PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixYc3Q9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOllzdCx4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9O2Z1bmN0aW9uICRzdCh0KXt2YXIgZT10Kz0iIixuPWUuaW5kZXhPZigiOiIpO3JldHVybiBuPj0wJiYieG1sbnMiIT09KGU9dC5zbGljZSgwLG4pKSYmKHQ9dC5zbGljZShuKzEpKSxYc3QuaGFzT3duUHJvcGVydHkoZSk/e3NwYWNlOlhzdFtlXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIEtzdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnQsbj10aGlzLm5hbWVzcGFjZVVSSTtyZXR1cm4gbj09PVlzdCYmZS5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09WXN0P2UuY3JlYXRlRWxlbWVudCh0KTplLmNyZWF0ZUVsZW1lbnROUyhuLHQpfX1mdW5jdGlvbiBac3QodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gSnN0KHQpe3ZhciBlPSRzdCh0KTtyZXR1cm4oZS5sb2NhbD9ac3Q6S3N0KShlKX1mdW5jdGlvbiBRc3QoKXt9ZnVuY3Rpb24gdGx0KHQpe3JldHVybiBudWxsPT10P1FzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IodCl9fWZ1bmN0aW9uIGVsdCgpe3JldHVybltdfWZ1bmN0aW9uIG5sdCh0KXtyZXR1cm4gbnVsbD09dD9lbHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKHQpfX1mdW5jdGlvbiBpbHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyh0KX19ZnVuY3Rpb24gcmx0KHQpe3JldHVybiBuZXcgQXJyYXkodC5sZW5ndGgpfWZ1bmN0aW9uIG9sdCh0LGUpe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189ZX1mdW5jdGlvbiBhbHQodCxlLG4saSxyLG8pe2Zvcih2YXIgYSxzPTAsbD1lLmxlbmd0aCxjPW8ubGVuZ3RoO3M8YzsrK3MpKGE9ZVtzXSk/KGEuX19kYXRhX189b1tzXSxpW3NdPWEpOm5bc109bmV3IG9sdCh0LG9bc10pO2Zvcig7czxsOysrcykoYT1lW3NdKSYmKHJbc109YSl9ZnVuY3Rpb24gc2x0KHQsZSxuLGkscixvLGEpe3ZhciBzLGwsYyx1PXt9LGg9ZS5sZW5ndGgsZD1vLmxlbmd0aCxwPW5ldyBBcnJheShoKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJihwW3NdPWM9IiQiK2EuY2FsbChsLGwuX19kYXRhX18scyxlKSxjIGluIHU/cltzXT1sOnVbY109bCk7Zm9yKHM9MDtzPGQ7KytzKShsPXVbYz0iJCIrYS5jYWxsKHQsb1tzXSxzLG8pXSk/KGlbc109bCxsLl9fZGF0YV9fPW9bc10sdVtjXT1udWxsKTpuW3NdPW5ldyBvbHQodCxvW3NdKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJnVbcFtzXV09PT1sJiYocltzXT1sKX1mdW5jdGlvbiBsbHQodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gY2x0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiB1bHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBobHQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUpfX1mdW5jdGlvbiBkbHQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlKX19ZnVuY3Rpb24gcGx0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KTp0aGlzLnNldEF0dHJpYnV0ZSh0LG4pfX1mdW5jdGlvbiBmbHQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxuKX19ZnVuY3Rpb24gbWx0KHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBnbHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19ZnVuY3Rpb24gX2x0KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsZSxuKX19ZnVuY3Rpb24geWx0KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1pP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGksbil9fWZ1bmN0aW9uIHZsdCh0LGUpe3JldHVybiB0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoZSl8fG1sdCh0KS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShlKX1mdW5jdGlvbiBibHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19fWZ1bmN0aW9uIHhsdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbdF09ZX19ZnVuY3Rpb24gd2x0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj9kZWxldGUgdGhpc1t0XTp0aGlzW3RdPW59fWZ1bmN0aW9uIFNsdCh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVuY3Rpb24gTWx0KHQpe3JldHVybiB0LmNsYXNzTGlzdHx8bmV3IEVsdCh0KX1mdW5jdGlvbiBFbHQodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPVNsdCh0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfWZ1bmN0aW9uIFRsdCh0LGUpe2Zvcih2YXIgbj1NbHQodCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLmFkZChlW2ldKX1mdW5jdGlvbiBDbHQodCxlKXtmb3IodmFyIG49TWx0KHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5yZW1vdmUoZVtpXSl9ZnVuY3Rpb24gQWx0KHQpe3JldHVybiBmdW5jdGlvbigpe1RsdCh0aGlzLHQpfX1mdW5jdGlvbiBrbHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7Q2x0KHRoaXMsdCl9fWZ1bmN0aW9uIExsdCh0LGUpe3JldHVybiBmdW5jdGlvbigpeyhlLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9UbHQ6Q2x0KSh0aGlzLHQpfX1mdW5jdGlvbiBQbHQoKXt0aGlzLnRleHRDb250ZW50PSIifWZ1bmN0aW9uIE5sdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fWZ1bmN0aW9uIElsdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gUmx0KCl7dGhpcy5pbm5lckhUTUw9IiJ9ZnVuY3Rpb24gT2x0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9fWZ1bmN0aW9uIHpsdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIERsdCgpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBCbHQoKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBIbHQoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBGbHQoKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiBWbHQoKXt2YXIgdD10aGlzLmNsb25lTm9kZSghMSksZT10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGU/ZS5pbnNlcnRCZWZvcmUodCx0aGlzLm5leHRTaWJsaW5nKTp0fWZ1bmN0aW9uIFVsdCgpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCEwKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9b2x0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6b2x0LGFwcGVuZENoaWxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsZSl9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHQpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbCh0KX19LEVsdC5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt0aGlzLl9uYW1lcy5pbmRleE9mKHQpPDAmJih0aGlzLl9uYW1lcy5wdXNoKHQpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9uYW1lcy5pbmRleE9mKHQpO2U+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UoZSwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciBqbHQ9e30sR2x0PW51bGw7ZnVuY3Rpb24gV2x0KHQsZSxuKXtyZXR1cm4gdD1xbHQodCxlLG4pLGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVsYXRlZFRhcmdldDtuJiYobj09PXRoaXN8fDgmbi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBxbHQodCxlLG4pe3JldHVybiBmdW5jdGlvbihpKXt2YXIgcj1HbHQ7R2x0PWk7dHJ5e3QuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxuKX1maW5hbGx5e0dsdD1yfX19ZnVuY3Rpb24gWWx0KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihlPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOmV9fSkpfWZ1bmN0aW9uIFhsdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fb247aWYoZSl7Zm9yKHZhciBuLGk9MCxyPS0xLG89ZS5sZW5ndGg7aTxvOysraSluPWVbaV0sdC50eXBlJiZuLnR5cGUhPT10LnR5cGV8fG4ubmFtZSE9PXQubmFtZT9lWysrcl09bjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobi50eXBlLG4ubGlzdGVuZXIsbi5jYXB0dXJlKTsrK3I/ZS5sZW5ndGg9cjpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gJGx0KHQsZSxuKXt2YXIgaT1qbHQuaGFzT3duUHJvcGVydHkodC50eXBlKT9XbHQ6cWx0O3JldHVybiBmdW5jdGlvbihyLG8sYSl7dmFyIHMsbD10aGlzLl9fb24sYz1pKGUsbyxhKTtpZihsKWZvcih2YXIgdT0wLGg9bC5sZW5ndGg7dTxoOysrdSlpZigocz1sW3VdKS50eXBlPT09dC50eXBlJiZzLm5hbWU9PT10Lm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcixzLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcj1jLHMuY2FwdHVyZT1uKSx2b2lkKHMudmFsdWU9ZSk7dGhpcy5hZGRFdmVudExpc3RlbmVyKHQudHlwZSxjLG4pLHM9e3R5cGU6dC50eXBlLG5hbWU6dC5uYW1lLHZhbHVlOmUsbGlzdGVuZXI6YyxjYXB0dXJlOm59LGw/bC5wdXNoKHMpOnRoaXMuX19vbj1bc119fWZ1bmN0aW9uIEtsdCh0LGUsbil7dmFyIGk9bWx0KHQpLHI9aS5DdXN0b21FdmVudDsiZnVuY3Rpb24iPT10eXBlb2Ygcj9yPW5ldyByKGUsbik6KHI9aS5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxuPyhyLmluaXRFdmVudChlLG4uYnViYmxlcyxuLmNhbmNlbGFibGUpLHIuZGV0YWlsPW4uZGV0YWlsKTpyLmluaXRFdmVudChlLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KHIpfWZ1bmN0aW9uIFpsdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBLbHQodGhpcyx0LGUpfX1mdW5jdGlvbiBKbHQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gS2x0KHRoaXMsdCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJigib25tb3VzZWVudGVyImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8KGpsdD17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7dmFyIFFsdD1bbnVsbF07ZnVuY3Rpb24gdGN0KHQsZSl7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1lfWZ1bmN0aW9uIGVjdCgpe3JldHVybiBuZXcgdGN0KFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sUWx0KX1mdW5jdGlvbiBuY3QodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P25ldyB0Y3QoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB0Y3QoW1t0XV0sUWx0KX1mdW5jdGlvbiBpY3QoKXtmb3IodmFyIHQsZT1HbHQ7dD1lLnNvdXJjZUV2ZW50OyllPXQ7cmV0dXJuIGV9ZnVuY3Rpb24gcmN0KHQsZSl7dmFyIG49dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIGk9bi5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBpLng9ZS5jbGllbnRYLGkueT1lLmNsaWVudFksWyhpPWkubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxpLnldfXZhciByPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW2UuY2xpZW50WC1yLmxlZnQtdC5jbGllbnRMZWZ0LGUuY2xpZW50WS1yLnRvcC10LmNsaWVudFRvcF19ZnVuY3Rpb24gb2N0KHQpe3ZhciBlPWljdCgpO3JldHVybiBlLmNoYW5nZWRUb3VjaGVzJiYoZT1lLmNoYW5nZWRUb3VjaGVzWzBdKSxyY3QodCxlKX1mdW5jdGlvbiBhY3QodCxlLG4pe2FyZ3VtZW50cy5sZW5ndGg8MyYmKG49ZSxlPWljdCgpLmNoYW5nZWRUb3VjaGVzKTtmb3IodmFyIGkscj0wLG89ZT9lLmxlbmd0aDowO3I8bzsrK3IpaWYoKGk9ZVtyXSkuaWRlbnRpZmllcj09PW4pcmV0dXJuIHJjdCh0LGkpO3JldHVybiBudWxsfWZ1bmN0aW9uIHNjdCgpe0dsdC5wcmV2ZW50RGVmYXVsdCgpLEdsdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBsY3QodCl7dmFyIGU9dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1uY3QodCkub24oImRyYWdzdGFydC5kcmFnIixzY3QsITApOyJvbnNlbGVjdHN0YXJ0ImluIGU/bi5vbigic2VsZWN0c3RhcnQuZHJhZyIsc2N0LCEwKTooZS5fX25vc2VsZWN0PWUuc3R5bGUuTW96VXNlclNlbGVjdCxlLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiKX1mdW5jdGlvbiBjY3QodCxlKXt2YXIgbj10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxpPW5jdCh0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLG51bGwpO2UmJihpLm9uKCJjbGljay5kcmFnIixzY3QsITApLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aS5vbigiY2xpY2suZHJhZyIsbnVsbCl9KSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gbj9pLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKToobi5zdHlsZS5Nb3pVc2VyU2VsZWN0PW4uX19ub3NlbGVjdCxkZWxldGUgbi5fX25vc2VsZWN0KX1mdW5jdGlvbiB1Y3QodCxlLG4pe3QucHJvdG90eXBlPWUucHJvdG90eXBlPW4sbi5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIGhjdCh0LGUpe3ZhciBuPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpO2Zvcih2YXIgaSBpbiBlKW5baV09ZVtpXTtyZXR1cm4gbn1mdW5jdGlvbiBkY3QoKXt9dGN0LnByb3RvdHlwZT1lY3QucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp0Y3Qsc2VsZWN0OmZ1bmN0aW9uIHBjdCh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9dGx0KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGEscz1lW3JdLGw9cy5sZW5ndGgsYz1pW3JdPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkobz1zW3VdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyx1LHMpKSYmKCJfX2RhdGFfXyJpbiBvJiYoYS5fX2RhdGFfXz1vLl9fZGF0YV9fKSxjW3VdPWEpO3JldHVybiBuZXcgdGN0KGksdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBmY3QodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PW5sdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9W10scj1bXSxvPTA7bzxuOysrbylmb3IodmFyIGEscz1lW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKGE9c1tjXSkmJihpLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHMpKSxyLnB1c2goYSkpO3JldHVybiBuZXcgdGN0KGkscil9LGZpbHRlcjpmdW5jdGlvbiBtY3QodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWlsdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgdGN0KGksdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gZ2N0KHQsZSl7aWYoIXQpcmV0dXJuIGY9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSx1PS0xLHRoaXMuZWFjaCgoZnVuY3Rpb24odCl7ZlsrK3VdPXR9KSksZjt2YXIgbj1lP3NsdDphbHQsaT10aGlzLl9wYXJlbnRzLHI9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciBhPXIubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9bmV3IEFycmF5KGEpLGM9bmV3IEFycmF5KGEpLHU9MDt1PGE7Kyt1KXt2YXIgaD1pW3VdLGQ9clt1XSxwPWQubGVuZ3RoLGY9dC5jYWxsKGgsaCYmaC5fX2RhdGFfXyx1LGkpLG09Zi5sZW5ndGgsZz1sW3VdPW5ldyBBcnJheShtKSxfPXNbdV09bmV3IEFycmF5KG0pO24oaCxkLGcsXyxjW3VdPW5ldyBBcnJheShwKSxmLGUpO2Zvcih2YXIgeSx2LGI9MCx4PTA7YjxtOysrYilpZih5PWdbYl0pe2ZvcihiPj14JiYoeD1iKzEpOyEodj1fW3hdKSYmKyt4PG07KTt5Ll9uZXh0PXZ8fG51bGx9fXJldHVybihzPW5ldyB0Y3QocyxpKSkuX2VudGVyPWwscy5fZXhpdD1jLHN9LGVudGVyOmZ1bmN0aW9uIF9jdCgpe3JldHVybiBuZXcgdGN0KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKHJsdCksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24geWN0KCl7cmV0dXJuIG5ldyB0Y3QodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChybHQpLHRoaXMuX3BhcmVudHMpfSxqb2luOmZ1bmN0aW9uIHZjdCh0LGUsbil7dmFyIGk9dGhpcy5lbnRlcigpLHI9dGhpcyxvPXRoaXMuZXhpdCgpO3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoaSk6aS5hcHBlbmQodCsiIiksbnVsbCE9ZSYmKHI9ZShyKSksbnVsbD09bj9vLnJlbW92ZSgpOm4obyksaSYmcj9pLm1lcmdlKHIpLm9yZGVyKCk6cn0sbWVyZ2U6ZnVuY3Rpb24gYmN0KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IHRjdChvLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbiB4Y3QoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9LTEsbj10Lmxlbmd0aDsrK2U8bjspZm9yKHZhciBpLHI9dFtlXSxvPXIubGVuZ3RoLTEsYT1yW29dOy0tbz49MDspKGk9cltvXSkmJihhJiY0XmkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSkmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaSxhKSxhPWkpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uIHdjdCh0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIGUmJm4/dChlLl9fZGF0YV9fLG4uX19kYXRhX18pOiFlLSFufXR8fCh0PWxsdCk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGkpLG89MDtvPGk7KytvKXtmb3IodmFyIGEscz1uW29dLGw9cy5sZW5ndGgsYz1yW29dPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmKGNbdV09YSk7Yy5zb3J0KGUpfXJldHVybiBuZXcgdGN0KHIsdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbiBTY3QoKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIE1jdCgpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksZT0tMTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3RbKytlXT10aGlzfSkpLHR9LG5vZGU6ZnVuY3Rpb24gRWN0KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPTAsbj10Lmxlbmd0aDtlPG47KytlKWZvcih2YXIgaT10W2VdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3Ipe3ZhciBhPWlbcl07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiBUY3QoKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9LGVtcHR5OmZ1bmN0aW9uIENjdCgpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbiBBY3QodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWZvcih2YXIgcixvPWVbbl0sYT0wLHM9by5sZW5ndGg7YTxzOysrYSkocj1vW2FdKSYmdC5jYWxsKHIsci5fX2RhdGFfXyxhLG8pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uIGtjdCh0LGUpe3ZhciBuPSRzdCh0KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBpPXRoaXMubm9kZSgpO3JldHVybiBuLmxvY2FsP2kuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTppLmdldEF0dHJpYnV0ZShuKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP24ubG9jYWw/dWx0OmNsdDoiZnVuY3Rpb24iPT10eXBlb2YgZT9uLmxvY2FsP2ZsdDpwbHQ6bi5sb2NhbD9kbHQ6aGx0KShuLGUpKX0sc3R5bGU6ZnVuY3Rpb24gTGN0KHQsZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9nbHQ6ImZ1bmN0aW9uIj09dHlwZW9mIGU/eWx0Ol9sdCkodCxlLG51bGw9PW4/IiI6bikpOnZsdCh0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24gUGN0KHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/Ymx0OiJmdW5jdGlvbiI9PXR5cGVvZiBlP3dsdDp4bHQpKHQsZSkpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uIE5jdCh0LGUpe3ZhciBuPVNsdCh0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaT1NbHQodGhpcy5ub2RlKCkpLHI9LTEsbz1uLmxlbmd0aDsrK3I8bzspaWYoIWkuY29udGFpbnMobltyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/TGx0OmU/QWx0OmtsdCkobixlKSl9LHRleHQ6ZnVuY3Rpb24gSWN0KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P1BsdDooImZ1bmN0aW9uIj09dHlwZW9mIHQ/SWx0Ok5sdCkodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uIFJjdCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9SbHQ6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P3psdDpPbHQpKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIE9jdCgpe3JldHVybiB0aGlzLmVhY2goRGx0KX0sbG93ZXI6ZnVuY3Rpb24gemN0KCl7cmV0dXJuIHRoaXMuZWFjaChCbHQpfSxhcHBlbmQ6ZnVuY3Rpb24gRGN0KHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SnN0KHQpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KSl9LGluc2VydDpmdW5jdGlvbiBCY3QodCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkpzdCh0KSxpPW51bGw9PWU/SGx0OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6dGx0KGUpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUobi5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSkpfSxyZW1vdmU6ZnVuY3Rpb24gSGN0KCl7cmV0dXJuIHRoaXMuZWFjaChGbHQpfSxjbG9uZTpmdW5jdGlvbiBGY3QodCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/VWx0OlZsdCl9LGRhdHVtOmZ1bmN0aW9uIFZjdCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmZ1bmN0aW9uIFVjdCh0LGUsbil7dmFyIGkscixvPVlsdCh0KyIiKSxhPW8ubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHM9ZT8kbHQ6WGx0LG51bGw9PW4mJihuPSExKSxpPTA7aTxhOysraSl0aGlzLmVhY2gocyhvW2ldLGUsbikpO3JldHVybiB0aGlzfXZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocylmb3IodmFyIGwsYz0wLHU9cy5sZW5ndGg7Yzx1OysrYylmb3IoaT0wLGw9c1tjXTtpPGE7KytpKWlmKChyPW9baV0pLnR5cGU9PT1sLnR5cGUmJnIubmFtZT09PWwubmFtZSlyZXR1cm4gbC52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24gamN0KHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/Smx0OlpsdCkodCxlKSl9fTt2YXIgR2N0PS43LFdjdD0xL0djdCxxY3Q9IlxccyooWystXT9cXGQrKVxccyoiLFljdD0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIixYY3Q9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLCRjdD0vXiMoWzAtOWEtZl17Myw4fSkkLyxLY3Q9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW3FjdCxxY3QscWN0XSsiXFwpJCIpLFpjdD1uZXcgUmVnRXhwKCJecmdiXFwoIitbWGN0LFhjdCxYY3RdKyJcXCkkIiksSmN0PW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbcWN0LHFjdCxxY3QsWWN0XSsiXFwpJCIpLFFjdD1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW1hjdCxYY3QsWGN0LFljdF0rIlxcKSQiKSx0dXQ9bmV3IFJlZ0V4cCgiXmhzbFxcKCIrW1ljdCxYY3QsWGN0XSsiXFwpJCIpLGV1dD1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW1ljdCxYY3QsWGN0LFljdF0rIlxcKSQiKSxudXQ9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH07ZnVuY3Rpb24gaXV0KCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gcnV0KCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gb3V0KHQpe3ZhciBlLG47cmV0dXJuIHQ9KHQrIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLChlPSRjdC5leGVjKHQpKT8obj1lWzFdLmxlbmd0aCxlPXBhcnNlSW50KGVbMV0sMTYpLDY9PT1uP2F1dChlKTozPT09bj9uZXcgdXV0KGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoMTUmZSk8PDR8MTUmZSwxKTo4PT09bj9zdXQoZT4+MjQmMjU1LGU+PjE2JjI1NSxlPj44JjI1NSwoMjU1JmUpLzI1NSk6ND09PW4/c3V0KGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9S2N0LmV4ZWModCkpP25ldyB1dXQoZVsxXSxlWzJdLGVbM10sMSk6KGU9WmN0LmV4ZWModCkpP25ldyB1dXQoMjU1KmVbMV0vMTAwLDI1NSplWzJdLzEwMCwyNTUqZVszXS8xMDAsMSk6KGU9SmN0LmV4ZWModCkpP3N1dChlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1RY3QuZXhlYyh0KSk/c3V0KDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLGVbNF0pOihlPXR1dC5leGVjKHQpKT9mdXQoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCwxKTooZT1ldXQuZXhlYyh0KSk/ZnV0KGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6bnV0Lmhhc093blByb3BlcnR5KHQpP2F1dChudXRbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyB1dXQoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBhdXQodCl7cmV0dXJuIG5ldyB1dXQodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIHN1dCh0LGUsbixpKXtyZXR1cm4gaTw9MCYmKHQ9ZT1uPU5hTiksbmV3IHV1dCh0LGUsbixpKX1mdW5jdGlvbiBsdXQodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBkY3R8fCh0PW91dCh0KSksdD9uZXcgdXV0KCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyB1dXR9ZnVuY3Rpb24gY3V0KHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9sdXQodCk6bmV3IHV1dCh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gdXV0KHQsZSxuLGkpe3RoaXMucj0rdCx0aGlzLmc9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBodXQoKXtyZXR1cm4iIyIrcHV0KHRoaXMucikrcHV0KHRoaXMuZykrcHV0KHRoaXMuYil9ZnVuY3Rpb24gZHV0KCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8icmdiKCI6InJnYmEoIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuZyl8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5iKXx8MCkpKygxPT09dD8iKSI6IiwgIit0KyIpIil9ZnVuY3Rpb24gcHV0KHQpe3JldHVybigodD1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHQpfHwwKSkpPDE2PyIwIjoiIikrdC50b1N0cmluZygxNil9ZnVuY3Rpb24gZnV0KHQsZSxuLGkpe3JldHVybiBpPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgZ3V0KHQsZSxuLGkpfWZ1bmN0aW9uIG11dCh0KXtpZih0IGluc3RhbmNlb2YgZ3V0KXJldHVybiBuZXcgZ3V0KHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIGRjdHx8KHQ9b3V0KHQpKSwhdClyZXR1cm4gbmV3IGd1dDtpZih0IGluc3RhbmNlb2YgZ3V0KXJldHVybiB0O3ZhciBlPSh0PXQucmdiKCkpLnIvMjU1LG49dC5nLzI1NSxpPXQuYi8yNTUscj1NYXRoLm1pbihlLG4saSksbz1NYXRoLm1heChlLG4saSksYT1OYU4scz1vLXIsbD0obytyKS8yO3JldHVybiBzPyhhPWU9PT1vPyhuLWkpL3MrNioobjxpKTpuPT09bz8oaS1lKS9zKzI6KGUtbikvcys0LHMvPWw8LjU/bytyOjItby1yLGEqPTYwKTpzPWw+MCYmbDwxPzA6YSxuZXcgZ3V0KGEscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gZ3V0KHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBfdXQodCxlLG4pe3JldHVybiAyNTUqKHQ8NjA/ZSsobi1lKSp0LzYwOnQ8MTgwP246dDwyNDA/ZSsobi1lKSooMjQwLXQpLzYwOmUpfWZ1bmN0aW9uIHl1dCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gdnV0KHQsZSl7dmFyIG49ZS10O3JldHVybiBuPyhmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0K24qZX19KSh0LG4pOnl1dChpc05hTih0KT9lOnQpfXVjdChkY3Qsb3V0LHtjb3B5OmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsdCl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4Oml1dCxmb3JtYXRIZXg6aXV0LGZvcm1hdEhzbDpmdW5jdGlvbiBidXQoKXtyZXR1cm4gbXV0KHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6cnV0LHRvU3RyaW5nOnJ1dH0pLHVjdCh1dXQsY3V0LGhjdChkY3Qse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/V2N0Ok1hdGgucG93KFdjdCx0KSxuZXcgdXV0KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P0djdDpNYXRoLnBvdyhHY3QsdCksbmV3IHV1dCh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4Omh1dCxmb3JtYXRIZXg6aHV0LGZvcm1hdFJnYjpkdXQsdG9TdHJpbmc6ZHV0fSkpLHVjdChndXQsKGZ1bmN0aW9uIHh1dCh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/bXV0KHQpOm5ldyBndXQodCxlLG4sbnVsbD09aT8xOmkpfSksaGN0KGRjdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9XY3Q6TWF0aC5wb3coV2N0LHQpLG5ldyBndXQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9HY3Q6TWF0aC5wb3coR2N0LHQpLG5ldyBndXQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyB1dXQoX3V0KHQ+PTI0MD90LTI0MDp0KzEyMCxyLGkpLF91dCh0LHIsaSksX3V0KHQ8MTIwP3QrMjQwOnQtMTIwLHIsaSksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGZvcm1hdEhzbDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PSh0PWlzTmFOKHQpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSk/ImhzbCgiOiJoc2xhKCIpKyh0aGlzLmh8fDApKyIsICIrMTAwKih0aGlzLnN8fDApKyIlLCAiKzEwMCoodGhpcy5sfHwwKSsiJSIrKDE9PT10PyIpIjoiLCAiK3QrIikiKX19KSk7dmFyIHd1dD0oZnVuY3Rpb24gdChlKXt2YXIgbj0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gMT09KHQ9K3QpP3Z1dDpmdW5jdGlvbihlLG4pe3JldHVybiBuLWU/KGZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiB0PU1hdGgucG93KHQsbiksZT1NYXRoLnBvdyhlLG4pLXQsbj0xL24sZnVuY3Rpb24oaSl7cmV0dXJuIE1hdGgucG93KHQraSplLG4pfX0pKGUsbix0KTp5dXQoaXNOYU4oZSk/bjplKX19KShlKTtmdW5jdGlvbiByKHQsZSl7dmFyIGk9bigodD1jdXQodCkpLnIsKGU9Y3V0KGUpKS5yKSxyPW4odC5nLGUuZyksbz1uKHQuYixlLmIpLGE9dnV0KHQub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5yPWkoZSksdC5nPXIoZSksdC5iPW8oZSksdC5vcGFjaXR5PWEoZSksdCsiIn19cmV0dXJuIHIuZ2FtbWE9dCxyfSkoMSk7ZnVuY3Rpb24gU3V0KHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihuKXtyZXR1cm4gdCooMS1uKStlKm59fXZhciBNdXQ9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLEV1dD1uZXcgUmVnRXhwKE11dC5zb3VyY2UsImciKTtmdW5jdGlvbiBUdXQodCxlKXt2YXIgbixpLHIsbz1NdXQubGFzdEluZGV4PUV1dC5sYXN0SW5kZXg9MCxhPS0xLHM9W10sbD1bXTtmb3IodCs9IiIsZSs9IiI7KG49TXV0LmV4ZWModCkpJiYoaT1FdXQuZXhlYyhlKSk7KShyPWkuaW5kZXgpPm8mJihyPWUuc2xpY2UobyxyKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLChuPW5bMF0pPT09KGk9aVswXSk/c1thXT9zW2FdKz1pOnNbKythXT1pOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OlN1dChuLGkpfSkpLG89RXV0Lmxhc3RJbmRleDtyZXR1cm4gbzxlLmxlbmd0aCYmKHI9ZS5zbGljZShvKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLHMubGVuZ3RoPDI/bFswXT8oZnVuY3Rpb24gYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSkrIiJ9fSkobFswXS54KTooZnVuY3Rpb24gdSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KShlKTooZT1sLmxlbmd0aCxmdW5jdGlvbih0KXtmb3IodmFyIG4saT0wO2k8ZTsrK2kpc1sobj1sW2ldKS5pXT1uLngodCk7cmV0dXJuIHMuam9pbigiIil9KX12YXIgQ3V0LEF1dCxrdXQsTHV0LFB1dD0xODAvTWF0aC5QSSxOdXQ9e3RyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX07ZnVuY3Rpb24gSXV0KHQsZSxuLGkscixvKXt2YXIgYSxzLGw7cmV0dXJuKGE9TWF0aC5zcXJ0KHQqdCtlKmUpKSYmKHQvPWEsZS89YSksKGw9dCpuK2UqaSkmJihuLT10KmwsaS09ZSpsKSwocz1NYXRoLnNxcnQobipuK2kqaSkpJiYobi89cyxpLz1zLGwvPXMpLHQqaTxlKm4mJih0PS10LGU9LWUsbD0tbCxhPS1hKSx7dHJhbnNsYXRlWDpyLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMihlLHQpKlB1dCxza2V3WDpNYXRoLmF0YW4obCkqUHV0LHNjYWxlWDphLHNjYWxlWTpzfX1mdW5jdGlvbiBSdXQodCxlLG4saSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKG8sYSl7dmFyIHM9W10sbD1bXTtyZXR1cm4gbz10KG8pLGE9dChhKSwoZnVuY3Rpb24gYyh0LGkscixvLGEscyl7aWYodCE9PXJ8fGkhPT1vKXt2YXIgbD1hLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsZSxudWxsLG4pO3MucHVzaCh7aTpsLTQseDpTdXQodCxyKX0se2k6bC0yLHg6U3V0KGksbyl9KX1lbHNlKHJ8fG8pJiZhLnB1c2goInRyYW5zbGF0ZSgiK3IrZStvK24pfSkoby50cmFuc2xhdGVYLG8udHJhbnNsYXRlWSxhLnRyYW5zbGF0ZVgsYS50cmFuc2xhdGVZLHMsbCksKGZ1bmN0aW9uIHUodCxlLG4sbyl7dCE9PWU/KHQtZT4xODA/ZSs9MzYwOmUtdD4xODAmJih0Kz0zNjApLG8ucHVzaCh7aTpuLnB1c2gocihuKSsicm90YXRlKCIsbnVsbCxpKS0yLHg6U3V0KHQsZSl9KSk6ZSYmbi5wdXNoKHIobikrInJvdGF0ZSgiK2UraSl9KShvLnJvdGF0ZSxhLnJvdGF0ZSxzLGwpLChmdW5jdGlvbiBoKHQsZSxuLG8pe3QhPT1lP28ucHVzaCh7aTpuLnB1c2gocihuKSsic2tld1goIixudWxsLGkpLTIseDpTdXQodCxlKX0pOmUmJm4ucHVzaChyKG4pKyJza2V3WCgiK2UraSl9KShvLnNrZXdYLGEuc2tld1gscyxsKSwoZnVuY3Rpb24gZCh0LGUsbixpLG8sYSl7aWYodCE9PW58fGUhPT1pKXt2YXIgcz1vLnB1c2gocihvKSsic2NhbGUoIixudWxsLCIsIixudWxsLCIpIik7YS5wdXNoKHtpOnMtNCx4OlN1dCh0LG4pfSx7aTpzLTIseDpTdXQoZSxpKX0pfWVsc2UgMT09PW4mJjE9PT1pfHxvLnB1c2gocihvKSsic2NhbGUoIituKyIsIitpKyIpIil9KShvLnNjYWxlWCxvLnNjYWxlWSxhLnNjYWxlWCxhLnNjYWxlWSxzLGwpLG89YT1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPS0xLGk9bC5sZW5ndGg7KytuPGk7KXNbKGU9bFtuXSkuaV09ZS54KHQpO3JldHVybiBzLmpvaW4oIiIpfX19dmFyIE91dD1SdXQoKGZ1bmN0aW9uIHp1dCh0KXtyZXR1cm4ibm9uZSI9PT10P051dDooQ3V0fHwoQ3V0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLEF1dD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsa3V0PWRvY3VtZW50LmRlZmF1bHRWaWV3KSxDdXQuc3R5bGUudHJhbnNmb3JtPXQsdD1rdXQuZ2V0Q29tcHV0ZWRTdHlsZShBdXQuYXBwZW5kQ2hpbGQoQ3V0KSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxBdXQucmVtb3ZlQ2hpbGQoQ3V0KSxJdXQoKyh0PXQuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSlbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0pLCJweCwgIiwicHgpIiwiZGVnKSIpLER1dD1SdXQoKGZ1bmN0aW9uIEJ1dCh0KXtyZXR1cm4gbnVsbD09dD9OdXQ6KEx1dHx8KEx1dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSxMdXQuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLHQpLCh0PUx1dC50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpKT9JdXQoKHQ9dC5tYXRyaXgpLmEsdC5iLHQuYyx0LmQsdC5lLHQuZik6TnV0KX0pLCIsICIsIikiLCIpIiksSHV0PU1hdGguU1FSVDI7ZnVuY3Rpb24gRnV0KHQpe3JldHVybigodD1NYXRoLmV4cCh0KSkrMS90KS8yfWZ1bmN0aW9uIFZ1dCh0LGUpe3ZhciBuLGkscj10WzBdLG89dFsxXSxhPXRbMl0scz1lWzJdLGw9ZVswXS1yLGM9ZVsxXS1vLHU9bCpsK2MqYztpZih1PDFlLTEyKWk9TWF0aC5sb2cocy9hKS9IdXQsbj1mdW5jdGlvbih0KXtyZXR1cm5bcit0Kmwsbyt0KmMsYSpNYXRoLmV4cChIdXQqdCppKV19O2Vsc2V7dmFyIGg9TWF0aC5zcXJ0KHUpLGQ9KHMqcy1hKmErNCp1KS8oMiphKjIqaCkscD0ocypzLWEqYS00KnUpLygyKnMqMipoKSxmPU1hdGgubG9nKE1hdGguc3FydChkKmQrMSktZCksbT1NYXRoLmxvZyhNYXRoLnNxcnQocCpwKzEpLXApO2k9KG0tZikvSHV0LG49ZnVuY3Rpb24odCl7dmFyIGU9dCppLG49RnV0KGYpLHM9YS8oMipoKSoobiooZnVuY3Rpb24gdSh0KXtyZXR1cm4oKHQ9TWF0aC5leHAoMip0KSktMSkvKHQrMSl9KShIdXQqZStmKS0oZnVuY3Rpb24gZCh0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpLTEvdCkvMn0pKGYpKTtyZXR1cm5bcitzKmwsbytzKmMsYSpuL0Z1dChIdXQqZStmKV19fXJldHVybiBuLmR1cmF0aW9uPTFlMyppLG59dmFyIFV1dCxqdXQsR3V0PTAsV3V0PTAscXV0PTAsWXV0PTAsWHV0PTAsJHV0PTAsS3V0PSJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLFp1dD0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KHQsMTcpfTtmdW5jdGlvbiBKdXQoKXtyZXR1cm4gWHV0fHwoWnV0KFF1dCksWHV0PUt1dC5ub3coKSskdXQpfWZ1bmN0aW9uIFF1dCgpe1h1dD0wfWZ1bmN0aW9uIHRodCgpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24gZWh0KHQsZSxuKXt2YXIgaT1uZXcgdGh0O3JldHVybiBpLnJlc3RhcnQodCxlLG4pLGl9ZnVuY3Rpb24gbmh0KCl7WHV0PShZdXQ9S3V0Lm5vdygpKSskdXQsR3V0PVd1dD0wO3RyeXshKGZ1bmN0aW9uIHQoKXtKdXQoKSwrK0d1dDtmb3IodmFyIHQsZT1VdXQ7ZTspKHQ9WHV0LWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS1HdXR9KSgpfWZpbmFsbHl7R3V0PTAsKGZ1bmN0aW9uIGUoKXtmb3IodmFyIHQsZSxuPVV1dCxpPTEvMDtuOyluLl9jYWxsPyhpPm4uX3RpbWUmJihpPW4uX3RpbWUpLHQ9bixuPW4uX25leHQpOihlPW4uX25leHQsbi5fbmV4dD1udWxsLG49dD90Ll9uZXh0PWU6VXV0PWUpO2p1dD10LHJodChpKX0pKCksWHV0PTB9fWZ1bmN0aW9uIGlodCgpe3ZhciB0PUt1dC5ub3coKSxlPXQtWXV0O2U+MWUzJiYoJHV0LT1lLFl1dD10KX1mdW5jdGlvbiByaHQodCl7R3V0fHwoV3V0JiYoV3V0PWNsZWFyVGltZW91dChXdXQpKSx0LVh1dD4yND8odDwxLzAmJihXdXQ9c2V0VGltZW91dChuaHQsdC1LdXQubm93KCktJHV0KSkscXV0JiYocXV0PWNsZWFySW50ZXJ2YWwocXV0KSkpOihxdXR8fChZdXQ9S3V0Lm5vdygpLHF1dD1zZXRJbnRlcnZhbChpaHQsMWUzKSksR3V0PTEsWnV0KG5odCkpKX1mdW5jdGlvbiBvaHQodCxlLG4pe3ZhciBpPW5ldyB0aHQ7cmV0dXJuIGkucmVzdGFydCgoZnVuY3Rpb24obil7aS5zdG9wKCksdChuK2UpfSksZT1udWxsPT1lPzA6K2UsbiksaX10aHQucHJvdG90eXBlPWVodC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnRodCxyZXN0YXJ0OmZ1bmN0aW9uKHQsZSxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO249KG51bGw9PW4/SnV0KCk6K24pKyhudWxsPT1lPzA6K2UpLHRoaXMuX25leHR8fGp1dD09PXRoaXN8fChqdXQ/anV0Ll9uZXh0PXRoaXM6VXV0PXRoaXMsanV0PXRoaXMpLHRoaXMuX2NhbGw9dCx0aGlzLl90aW1lPW4scmh0KCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLHJodCgpKX19O3ZhciBhaHQ9VXN0KCJzdGFydCIsImVuZCIsImNhbmNlbCIsImludGVycnVwdCIpLHNodD1bXTtmdW5jdGlvbiBsaHQodCxlLG4saSxyLG8pe3ZhciBhPXQuX190cmFuc2l0aW9uO2lmKGEpe2lmKG4gaW4gYSlyZXR1cm59ZWxzZSB0Ll9fdHJhbnNpdGlvbj17fTshKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBpLHI9dC5fX3RyYW5zaXRpb247ZnVuY3Rpb24gbyhsKXt2YXIgYyx1LGgsZDtpZigxIT09bi5zdGF0ZSlyZXR1cm4gcygpO2ZvcihjIGluIHIpaWYoKGQ9cltjXSkubmFtZT09PW4ubmFtZSl7aWYoMz09PWQuc3RhdGUpcmV0dXJuIG9odChvKTs0PT09ZC5zdGF0ZT8oZC5zdGF0ZT02LGQudGltZXIuc3RvcCgpLGQub24uY2FsbCgiaW50ZXJydXB0Iix0LHQuX19kYXRhX18sZC5pbmRleCxkLmdyb3VwKSxkZWxldGUgcltjXSk6K2M8ZSYmKGQuc3RhdGU9NixkLnRpbWVyLnN0b3AoKSxkLm9uLmNhbGwoImNhbmNlbCIsdCx0Ll9fZGF0YV9fLGQuaW5kZXgsZC5ncm91cCksZGVsZXRlIHJbY10pfWlmKG9odCgoZnVuY3Rpb24oKXszPT09bi5zdGF0ZSYmKG4uc3RhdGU9NCxuLnRpbWVyLnJlc3RhcnQoYSxuLmRlbGF5LG4udGltZSksYShsKSl9KSksbi5zdGF0ZT0yLG4ub24uY2FsbCgic3RhcnQiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLDI9PT1uLnN0YXRlKXtmb3Iobi5zdGF0ZT0zLGk9bmV3IEFycmF5KGg9bi50d2Vlbi5sZW5ndGgpLGM9MCx1PS0xO2M8aDsrK2MpKGQ9bi50d2VlbltjXS52YWx1ZS5jYWxsKHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApKSYmKGlbKyt1XT1kKTtpLmxlbmd0aD11KzF9fWZ1bmN0aW9uIGEoZSl7Zm9yKHZhciByPWU8bi5kdXJhdGlvbj9uLmVhc2UuY2FsbChudWxsLGUvbi5kdXJhdGlvbik6KG4udGltZXIucmVzdGFydChzKSxuLnN0YXRlPTUsMSksbz0tMSxhPWkubGVuZ3RoOysrbzxhOylpW29dLmNhbGwodCxyKTs1PT09bi5zdGF0ZSYmKG4ub24uY2FsbCgiZW5kIix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxzKCkpfWZ1bmN0aW9uIHMoKXtmb3IodmFyIGkgaW4gbi5zdGF0ZT02LG4udGltZXIuc3RvcCgpLGRlbGV0ZSByW2VdLHIpcmV0dXJuO2RlbGV0ZSB0Ll9fdHJhbnNpdGlvbn1yW2VdPW4sbi50aW1lcj1laHQoKGZ1bmN0aW9uIGwodCl7bi5zdGF0ZT0xLG4udGltZXIucmVzdGFydChvLG4uZGVsYXksbi50aW1lKSxuLmRlbGF5PD10JiZvKHQtbi5kZWxheSl9KSwwLG4udGltZSl9KSh0LG4se25hbWU6ZSxpbmRleDppLGdyb3VwOnIsb246YWh0LHR3ZWVuOnNodCx0aW1lOm8udGltZSxkZWxheTpvLmRlbGF5LGR1cmF0aW9uOm8uZHVyYXRpb24sZWFzZTpvLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTowfSl9ZnVuY3Rpb24gY2h0KHQsZSl7dmFyIG49aGh0KHQsZSk7aWYobi5zdGF0ZT4wKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgc2NoZWR1bGVkIik7cmV0dXJuIG59ZnVuY3Rpb24gdWh0KHQsZSl7dmFyIG49aGh0KHQsZSk7aWYobi5zdGF0ZT4zKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZyIpO3JldHVybiBufWZ1bmN0aW9uIGhodCh0LGUpe3ZhciBuPXQuX190cmFuc2l0aW9uO2lmKCFufHwhKG49bltlXSkpdGhyb3cgbmV3IEVycm9yKCJ0cmFuc2l0aW9uIG5vdCBmb3VuZCIpO3JldHVybiBufWZ1bmN0aW9uIGRodCh0LGUpe3ZhciBuLGkscixvPXQuX190cmFuc2l0aW9uLGE9ITA7aWYobyl7Zm9yKHIgaW4gZT1udWxsPT1lP251bGw6ZSsiIixvKShuPW9bcl0pLm5hbWU9PT1lPyhpPW4uc3RhdGU+MiYmbi5zdGF0ZTw1LG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxuLm9uLmNhbGwoaT8iaW50ZXJydXB0IjoiY2FuY2VsIix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxkZWxldGUgb1tyXSk6YT0hMTthJiZkZWxldGUgdC5fX3RyYW5zaXRpb259fWZ1bmN0aW9uIHBodCh0LGUpe3ZhciBuLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9dWh0KHRoaXMsdCksbz1yLnR3ZWVuO2lmKG8hPT1uKWZvcih2YXIgYT0wLHM9KGk9bj1vKS5sZW5ndGg7YTxzOysrYSlpZihpW2FdLm5hbWU9PT1lKXsoaT1pLnNsaWNlKCkpLnNwbGljZShhLDEpO2JyZWFrfXIudHdlZW49aX19ZnVuY3Rpb24gZmh0KHQsZSxuKXt2YXIgaSxyO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz11aHQodGhpcyx0KSxhPW8udHdlZW47aWYoYSE9PWkpe3I9KGk9YSkuc2xpY2UoKTtmb3IodmFyIHM9e25hbWU6ZSx2YWx1ZTpufSxsPTAsYz1yLmxlbmd0aDtsPGM7KytsKWlmKHJbbF0ubmFtZT09PWUpe3JbbF09czticmVha31sPT09YyYmci5wdXNoKHMpfW8udHdlZW49cn19ZnVuY3Rpb24gbWh0KHQsZSxuKXt2YXIgaT10Ll9pZDtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbigpe3ZhciB0PXVodCh0aGlzLGkpOyh0LnZhbHVlfHwodC52YWx1ZT17fSkpW2VdPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpfSkpLGZ1bmN0aW9uKHQpe3JldHVybiBoaHQodCxpKS52YWx1ZVtlXX19ZnVuY3Rpb24gZ2h0KHQsZSl7dmFyIG47cmV0dXJuKCJudW1iZXIiPT10eXBlb2YgZT9TdXQ6ZSBpbnN0YW5jZW9mIG91dD93dXQ6KG49b3V0KGUpKT8oZT1uLHd1dCk6VHV0KSh0LGUpfWZ1bmN0aW9uIF9odCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24geWh0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gdmh0KHQsZSxuKXt2YXIgaSxyLG89bisiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdldEF0dHJpYnV0ZSh0KTtyZXR1cm4gYT09PW8/bnVsbDphPT09aT9yOnI9ZShpPWEsbil9fWZ1bmN0aW9uIGJodCh0LGUsbil7dmFyIGkscixvPW4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19ZnVuY3Rpb24geGh0KHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEscyxsPW4odGhpcyk7aWYobnVsbCE9bClyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZSh0KSk9PT0ocz1sKyIiKT9udWxsOmE9PT1pJiZzPT09cj9vOihyPXMsbz1lKGk9YSxsKSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIHdodCh0LGUsbil7dmFyIGkscixvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhLHMsbD1uKHRoaXMpO2lmKG51bGwhPWwpcmV0dXJuKGE9dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpKT09PShzPWwrIiIpP251bGw6YT09PWkmJnM9PT1yP286KHI9cyxvPWUoaT1hLGwpKTt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIFNodCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUuY2FsbCh0aGlzLG4pKX19ZnVuY3Rpb24gTWh0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUuY2FsbCh0aGlzLG4pKX19ZnVuY3Rpb24gRWh0KHQsZSl7dmFyIG4saTtmdW5jdGlvbiByKCl7dmFyIHI9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHIhPT1pJiYobj0oaT1yKSYmTWh0KHQscikpLG59cmV0dXJuIHIuX3ZhbHVlPWUscn1mdW5jdGlvbiBUaHQodCxlKXt2YXIgbixpO2Z1bmN0aW9uIHIoKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gciE9PWkmJihuPShpPXIpJiZTaHQodCxyKSksbn1yZXR1cm4gci5fdmFsdWU9ZSxyfWZ1bmN0aW9uIENodCh0LGUpe3JldHVybiBmdW5jdGlvbigpe2NodCh0aGlzLHQpLmRlbGF5PStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gQWh0KHQsZSl7cmV0dXJuIGU9K2UsZnVuY3Rpb24oKXtjaHQodGhpcyx0KS5kZWxheT1lfX1mdW5jdGlvbiBraHQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt1aHQodGhpcyx0KS5kdXJhdGlvbj0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIExodCh0LGUpe3JldHVybiBlPStlLGZ1bmN0aW9uKCl7dWh0KHRoaXMsdCkuZHVyYXRpb249ZX19ZnVuY3Rpb24gUGh0KHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3VodCh0aGlzLHQpLmVhc2U9ZX19ZnVuY3Rpb24gTmh0KHQsZSxuKXt2YXIgaSxyLG89KGZ1bmN0aW9uIGEodCl7cmV0dXJuKHQrIiIpLnRyaW0oKS5zcGxpdCgvXnxccysvKS5ldmVyeSgoZnVuY3Rpb24odCl7dmFyIGU9dC5pbmRleE9mKCIuIik7cmV0dXJuIGU+PTAmJih0PXQuc2xpY2UoMCxlKSksIXR8fCJzdGFydCI9PT10fSkpfSkoZSk/Y2h0OnVodDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1vKHRoaXMsdCkscz1hLm9uO3MhPT1pJiYocj0oaT1zKS5jb3B5KCkpLm9uKGUsbiksYS5vbj1yfX12YXIgSWh0PWVjdC5wcm90b3R5cGUuY29uc3RydWN0b3I7ZnVuY3Rpb24gUmh0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIE9odCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLmNhbGwodGhpcyxpKSxuKX19ZnVuY3Rpb24gemh0KHQsZSxuKXt2YXIgaSxyO2Z1bmN0aW9uIG8oKXt2YXIgbz1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbyE9PXImJihpPShyPW8pJiZPaHQodCxvLG4pKSxpfXJldHVybiBvLl92YWx1ZT1lLG99ZnVuY3Rpb24gRGh0KHQpe3JldHVybiBmdW5jdGlvbihlKXt0aGlzLnRleHRDb250ZW50PXQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBCaHQodCl7dmFyIGUsbjtmdW5jdGlvbiBpKCl7dmFyIGk9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGkhPT1uJiYoZT0obj1pKSYmRGh0KGkpKSxlfXJldHVybiBpLl92YWx1ZT10LGl9dmFyIEhodD0wO2Z1bmN0aW9uIEZodCh0LGUsbixpKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWUsdGhpcy5fbmFtZT1uLHRoaXMuX2lkPWl9ZnVuY3Rpb24gVmh0KCl7cmV0dXJuKytIaHR9dmFyIFVodD1lY3QucHJvdG90eXBlO0ZodC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkZodCxzZWxlY3Q6ZnVuY3Rpb24gamh0KHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9dGx0KHQpKTtmb3IodmFyIGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz1uZXcgQXJyYXkociksYT0wO2E8cjsrK2EpZm9yKHZhciBzLGwsYz1pW2FdLHU9Yy5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1jW2RdKSYmKGw9dC5jYWxsKHMscy5fX2RhdGFfXyxkLGMpKSYmKCJfX2RhdGFfXyJpbiBzJiYobC5fX2RhdGFfXz1zLl9fZGF0YV9fKSxoW2RdPWwsbGh0KGhbZF0sZSxuLGQsaCxoaHQocyxuKSkpO3JldHVybiBuZXcgRmh0KG8sdGhpcy5fcGFyZW50cyxlLG4pfSxzZWxlY3RBbGw6ZnVuY3Rpb24gR2h0KHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9bmx0KHQpKTtmb3IodmFyIGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz1bXSxhPVtdLHM9MDtzPHI7KytzKWZvcih2YXIgbCxjPWlbc10sdT1jLmxlbmd0aCxoPTA7aDx1OysraClpZihsPWNbaF0pe2Zvcih2YXIgZCxwPXQuY2FsbChsLGwuX19kYXRhX18saCxjKSxmPWhodChsLG4pLG09MCxnPXAubGVuZ3RoO208ZzsrK20pKGQ9cFttXSkmJmxodChkLGUsbixtLHAsZik7by5wdXNoKHApLGEucHVzaChsKX1yZXR1cm4gbmV3IEZodChvLGEsZSxuKX0sZmlsdGVyOmZ1bmN0aW9uIFdodCh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9aWx0KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGE9ZVtyXSxzPWEubGVuZ3RoLGw9aVtyXT1bXSxjPTA7YzxzOysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZsLnB1c2gobyk7cmV0dXJuIG5ldyBGaHQoaSx0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfSxtZXJnZTpmdW5jdGlvbiBxaHQodCl7aWYodC5faWQhPT10aGlzLl9pZCl0aHJvdyBuZXcgRXJyb3I7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPXQuX2dyb3VwcyxpPWUubGVuZ3RoLHI9TWF0aC5taW4oaSxuLmxlbmd0aCksbz1uZXcgQXJyYXkoaSksYT0wO2E8cjsrK2EpZm9yKHZhciBzLGw9ZVthXSxjPW5bYV0sdT1sLmxlbmd0aCxoPW9bYV09bmV3IEFycmF5KHUpLGQ9MDtkPHU7KytkKShzPWxbZF18fGNbZF0pJiYoaFtkXT1zKTtmb3IoO2E8aTsrK2Epb1thXT1lW2FdO3JldHVybiBuZXcgRmh0KG8sdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uIFlodCgpe3JldHVybiBuZXcgSWh0KHRoaXMuX2dyb3Vwcyx0aGlzLl9wYXJlbnRzKX0sdHJhbnNpdGlvbjpmdW5jdGlvbiBYaHQoKXtmb3IodmFyIHQ9dGhpcy5fbmFtZSxlPXRoaXMuX2lkLG49Vmh0KCksaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPTA7bzxyOysrbylmb3IodmFyIGEscz1pW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpaWYoYT1zW2NdKXt2YXIgdT1oaHQoYSxlKTtsaHQoYSx0LG4sYyxzLHt0aW1lOnUudGltZSt1LmRlbGF5K3UuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjp1LmR1cmF0aW9uLGVhc2U6dS5lYXNlfSl9cmV0dXJuIG5ldyBGaHQoaSx0aGlzLl9wYXJlbnRzLHQsbil9LGNhbGw6VWh0LmNhbGwsbm9kZXM6VWh0Lm5vZGVzLG5vZGU6VWh0Lm5vZGUsc2l6ZTpVaHQuc2l6ZSxlbXB0eTpVaHQuZW1wdHksZWFjaDpVaHQuZWFjaCxvbjpmdW5jdGlvbiAkaHQodCxlKXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP2hodCh0aGlzLm5vZGUoKSxuKS5vbi5vbih0KTp0aGlzLmVhY2goTmh0KG4sdCxlKSl9LGF0dHI6ZnVuY3Rpb24gS2h0KHQsZSl7dmFyIG49JHN0KHQpLGk9InRyYW5zZm9ybSI9PT1uP0R1dDpnaHQ7cmV0dXJuIHRoaXMuYXR0clR3ZWVuKHQsImZ1bmN0aW9uIj09dHlwZW9mIGU/KG4ubG9jYWw/d2h0OnhodCkobixpLG1odCh0aGlzLCJhdHRyLiIrdCxlKSk6bnVsbD09ZT8obi5sb2NhbD95aHQ6X2h0KShuKToobi5sb2NhbD9iaHQ6dmh0KShuLGksZSkpfSxhdHRyVHdlZW46ZnVuY3Rpb24gWmh0KHQsZSl7dmFyIG49ImF0dHIuIit0O2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4obj10aGlzLnR3ZWVuKG4pKSYmbi5fdmFsdWU7aWYobnVsbD09ZSlyZXR1cm4gdGhpcy50d2VlbihuLG51bGwpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjt2YXIgaT0kc3QodCk7cmV0dXJuIHRoaXMudHdlZW4obiwoaS5sb2NhbD9FaHQ6VGh0KShpLGUpKX0sc3R5bGU6ZnVuY3Rpb24gSmh0KHQsZSxuKXt2YXIgaT0idHJhbnNmb3JtIj09KHQrPSIiKT9PdXQ6Z2h0O3JldHVybiBudWxsPT1lP3RoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiByKHQsZSl7dmFyIG4saSxyO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPXZsdCh0aGlzLHQpLGE9KHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCksdmx0KHRoaXMsdCkpO3JldHVybiBvPT09YT9udWxsOm89PT1uJiZhPT09aT9yOnI9ZShuPW8saT1hKX19KSh0LGkpKS5vbigiZW5kLnN0eWxlLiIrdCxSaHQodCkpOiJmdW5jdGlvbiI9PXR5cGVvZiBlP3RoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiBhKHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dmx0KHRoaXMsdCkscz1uKHRoaXMpLGw9cysiIjtyZXR1cm4gbnVsbD09cyYmKHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCksbD1zPXZsdCh0aGlzLHQpKSxhPT09bD9udWxsOmE9PT1pJiZsPT09cj9vOihyPWwsbz1lKGk9YSxzKSl9fSkodCxpLG1odCh0aGlzLCJzdHlsZS4iK3QsZSkpKS5lYWNoKChmdW5jdGlvbiBvKHQsZSl7dmFyIG4saSxyLG8sYT0ic3R5bGUuIitlLHM9ImVuZC4iK2E7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGw9dWh0KHRoaXMsdCksYz1sLm9uLHU9bnVsbD09bC52YWx1ZVthXT9vfHwobz1SaHQoZSkpOnZvaWQgMDtjPT09biYmcj09PXV8fChpPShuPWMpLmNvcHkoKSkub24ocyxyPXUpLGwub249aX19KSh0aGlzLl9pZCx0KSk6dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXZsdCh0aGlzLHQpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19KSh0LGksZSksbikub24oImVuZC5zdHlsZS4iK3QsbnVsbCl9LHN0eWxlVHdlZW46ZnVuY3Rpb24gUWh0KHQsZSxuKXt2YXIgaT0ic3R5bGUuIisodCs9IiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4oaT10aGlzLnR3ZWVuKGkpKSYmaS5fdmFsdWU7aWYobnVsbD09ZSlyZXR1cm4gdGhpcy50d2VlbihpLG51bGwpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2VlbihpLHpodCh0LGUsbnVsbD09bj8iIjpuKSl9LHRleHQ6ZnVuY3Rpb24gdGR0KHQpe3JldHVybiB0aGlzLnR3ZWVuKCJ0ZXh0IiwiZnVuY3Rpb24iPT10eXBlb2YgdD8oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10KHRoaXMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX0pKG1odCh0aGlzLCJ0ZXh0Iix0KSk6KGZ1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX0pKG51bGw9PXQ/IiI6dCsiIikpfSx0ZXh0VHdlZW46ZnVuY3Rpb24gZWR0KHQpe3ZhciBlPSJ0ZXh0IjtpZihhcmd1bWVudHMubGVuZ3RoPDEpcmV0dXJuKGU9dGhpcy50d2VlbihlKSkmJmUuX3ZhbHVlO2lmKG51bGw9PXQpcmV0dXJuIHRoaXMudHdlZW4oZSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oZSxCaHQodCkpfSxyZW1vdmU6ZnVuY3Rpb24gbmR0KCl7cmV0dXJuIHRoaXMub24oImVuZC5yZW1vdmUiLChmdW5jdGlvbiB0KGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTtmb3IodmFyIG4gaW4gdGhpcy5fX3RyYW5zaXRpb24paWYoK24hPT1lKXJldHVybjt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfX0pKHRoaXMuX2lkKSl9LHR3ZWVuOmZ1bmN0aW9uIGlkdCh0LGUpe3ZhciBuPXRoaXMuX2lkO2lmKHQrPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBpLHI9aGh0KHRoaXMubm9kZSgpLG4pLnR3ZWVuLG89MCxhPXIubGVuZ3RoO288YTsrK28paWYoKGk9cltvXSkubmFtZT09PXQpcmV0dXJuIGkudmFsdWU7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09ZT9waHQ6Zmh0KShuLHQsZSkpfSxkZWxheTpmdW5jdGlvbiByZHQodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9DaHQ6QWh0KShlLHQpKTpoaHQodGhpcy5ub2RlKCksZSkuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0aW9uIG9kdCh0KXt2YXIgZT10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiB0P2todDpMaHQpKGUsdCkpOmhodCh0aGlzLm5vZGUoKSxlKS5kdXJhdGlvbn0sZWFzZTpmdW5jdGlvbiBhZHQodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKFBodChlLHQpKTpoaHQodGhpcy5ub2RlKCksZSkuZWFzZX0sZW5kOmZ1bmN0aW9uIHNkdCgpe3ZhciB0LGUsbj10aGlzLGk9bi5faWQscj1uLnNpemUoKTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG8sYSl7dmFyIHM9e3ZhbHVlOmF9LGw9e3ZhbHVlOmZ1bmN0aW9uKCl7MD09LS1yJiZvKCl9fTtuLmVhY2goKGZ1bmN0aW9uKCl7dmFyIG49dWh0KHRoaXMsaSkscj1uLm9uO3IhPT10JiYoKGU9KHQ9cikuY29weSgpKS5fLmNhbmNlbC5wdXNoKHMpLGUuXy5pbnRlcnJ1cHQucHVzaChzKSxlLl8uZW5kLnB1c2gobCkpLG4ub249ZX0pKX0pKX19O3ZhciBsZHQ9e3RpbWU6bnVsbCxkZWxheTowLGR1cmF0aW9uOjI1MCxlYXNlOlRmfTtmdW5jdGlvbiBjZHQodCxlKXtmb3IodmFyIG47IShuPXQuX190cmFuc2l0aW9uKXx8IShuPW5bZV0pOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm4gbGR0LnRpbWU9SnV0KCksbGR0O3JldHVybiBufWZ1bmN0aW9uIHVkdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gaGR0KHQsZSxuKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1lLHRoaXMudHJhbnNmb3JtPW59ZnVuY3Rpb24gZGR0KHQsZSxuKXt0aGlzLms9dCx0aGlzLng9ZSx0aGlzLnk9bn1lY3QucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbiBwZHQodCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtkaHQodGhpcyx0KX0pKX0sZWN0LnByb3RvdHlwZS50cmFuc2l0aW9uPWZ1bmN0aW9uIGZkdCh0KXt2YXIgZSxuO3QgaW5zdGFuY2VvZiBGaHQ/KGU9dC5faWQsdD10Ll9uYW1lKTooZT1WaHQoKSwobj1sZHQpLnRpbWU9SnV0KCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykoYT1zW2NdKSYmbGh0KGEsdCxlLGMscyxufHxjZHQoYSxlKSk7cmV0dXJuIG5ldyBGaHQoaSx0aGlzLl9wYXJlbnRzLHQsZSl9LGRkdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmRkdCxzY2FsZTpmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQ/dGhpczpuZXcgZGR0KHRoaXMuayp0LHRoaXMueCx0aGlzLnkpfSx0cmFuc2xhdGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PXQmMD09PWU/dGhpczpuZXcgZGR0KHRoaXMuayx0aGlzLngrdGhpcy5rKnQsdGhpcy55K3RoaXMuayplKX0sYXBwbHk6ZnVuY3Rpb24odCl7cmV0dXJuW3RbMF0qdGhpcy5rK3RoaXMueCx0WzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24odCl7cmV0dXJuIHQqdGhpcy5rK3RoaXMueH0sYXBwbHlZOmZ1bmN0aW9uKHQpe3JldHVybiB0KnRoaXMuayt0aGlzLnl9LGludmVydDpmdW5jdGlvbih0KXtyZXR1cm5bKHRbMF0tdGhpcy54KS90aGlzLmssKHRbMV0tdGhpcy55KS90aGlzLmtdfSxpbnZlcnRYOmZ1bmN0aW9uKHQpe3JldHVybih0LXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKHQpe3JldHVybih0LXRoaXMueSkvdGhpcy5rfSxyZXNjYWxlWDpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KCkuZG9tYWluKHQucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRYLHRoaXMpLm1hcCh0LmludmVydCx0KSl9LHJlc2NhbGVZOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoKS5kb21haW4odC5yYW5nZSgpLm1hcCh0aGlzLmludmVydFksdGhpcykubWFwKHQuaW52ZXJ0LHQpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy54KyIsIit0aGlzLnkrIikgc2NhbGUoIit0aGlzLmsrIikifX07dmFyIG1kdD1uZXcgZGR0KDEsMCwwKTtmdW5jdGlvbiBnZHQodCl7cmV0dXJuIHQuX196b29tfHxtZHR9ZnVuY3Rpb24gX2R0KCl7R2x0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIHlkdCgpe0dsdC5wcmV2ZW50RGVmYXVsdCgpLEdsdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiB2ZHQoKXtyZXR1cm4hR2x0LmJ1dHRvbn1mdW5jdGlvbiBiZHQoKXt2YXIgdCxlLG49dGhpcztyZXR1cm4gbiBpbnN0YW5jZW9mIFNWR0VsZW1lbnQ/KHQ9KG49bi5vd25lclNWR0VsZW1lbnR8fG4pLndpZHRoLmJhc2VWYWwudmFsdWUsZT1uLmhlaWdodC5iYXNlVmFsLnZhbHVlKToodD1uLmNsaWVudFdpZHRoLGU9bi5jbGllbnRIZWlnaHQpLFtbMCwwXSxbdCxlXV19ZnVuY3Rpb24geGR0KCl7cmV0dXJuIHRoaXMuX196b29tfHxtZHR9ZnVuY3Rpb24gd2R0KCl7cmV0dXJuLUdsdC5kZWx0YVkqKEdsdC5kZWx0YU1vZGU/MTIwOjEpLzUwMH1mdW5jdGlvbiBTZHQoKXtyZXR1cm4ib250b3VjaHN0YXJ0ImluIHRoaXN9ZnVuY3Rpb24gTWR0KHQsZSxuKXt2YXIgaT10LmludmVydFgoZVswXVswXSktblswXVswXSxyPXQuaW52ZXJ0WChlWzFdWzBdKS1uWzFdWzBdLG89dC5pbnZlcnRZKGVbMF1bMV0pLW5bMF1bMV0sYT10LmludmVydFkoZVsxXVsxXSktblsxXVsxXTtyZXR1cm4gdC50cmFuc2xhdGUocj5pPyhpK3IpLzI6TWF0aC5taW4oMCxpKXx8TWF0aC5tYXgoMCxyKSxhPm8/KG8rYSkvMjpNYXRoLm1pbigwLG8pfHxNYXRoLm1heCgwLGEpKX1nZHQucHJvdG90eXBlPWRkdC5wcm90b3R5cGU7dmFyIEVkdD1iZShPYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCx2ZXJzaW9uOiI0LjEzLjAiLGJpc2VjdDpDTyxiaXNlY3RSaWdodDpDTyxiaXNlY3RMZWZ0OkFPLGFzY2VuZGluZzpNTyxiaXNlY3RvcjpFTyxjcm9zczpmdW5jdGlvbiBUZHQodCxlLG4pe3ZhciBpLHIsbyxhLHM9dC5sZW5ndGgsbD1lLmxlbmd0aCxjPW5ldyBBcnJheShzKmwpO2ZvcihudWxsPT1uJiYobj1rTyksaT1vPTA7aTxzOysraSlmb3IoYT10W2ldLHI9MDtyPGw7KytyLCsrbyljW29dPW4oYSxlW3JdKTtyZXR1cm4gY30sZGVzY2VuZGluZzpmdW5jdGlvbiBDZHQodCxlKXtyZXR1cm4gZTx0Py0xOmU+dD8xOmU+PXQ/MDpOYU59LGRldmlhdGlvbjpOTyxleHRlbnQ6SU8saGlzdG9ncmFtOmZ1bmN0aW9uIEFkdCgpe3ZhciB0PUJPLGU9SU8sbj1XTztmdW5jdGlvbiBpKGkpe3ZhciByLG8sYT1pLmxlbmd0aCxzPW5ldyBBcnJheShhKTtmb3Iocj0wO3I8YTsrK3Ipc1tyXT10KGlbcl0scixpKTt2YXIgbD1lKHMpLGM9bFswXSx1PWxbMV0saD1uKHMsYyx1KTtBcnJheS5pc0FycmF5KGgpfHwoaD1HTyhjLHUsaCksaD1ITyhNYXRoLmNlaWwoYy9oKSpoLE1hdGguZmxvb3IodS9oKSpoLGgpKTtmb3IodmFyIGQ9aC5sZW5ndGg7aFswXTw9YzspaC5zaGlmdCgpLC0tZDtmb3IoO2hbZC0xXT51OyloLnBvcCgpLC0tZDt2YXIgcCxmPW5ldyBBcnJheShkKzEpO2ZvcihyPTA7cjw9ZDsrK3IpKHA9ZltyXT1bXSkueDA9cj4wP2hbci0xXTpjLHAueDE9cjxkP2hbcl06dTtmb3Iocj0wO3I8YTsrK3IpYzw9KG89c1tyXSkmJm88PXUmJmZbQ08oaCxvLDAsZCldLnB1c2goaVtyXSk7cmV0dXJuIGZ9cmV0dXJuIGkudmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpETyhlKSxpKTp0fSxpLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkRPKFt0WzBdLHRbMV1dKSxpKTplfSxpLnRocmVzaG9sZHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpBcnJheS5pc0FycmF5KHQpP0RPKE9PLmNhbGwodCkpOkRPKHQpLGkpOm59LGl9LHRocmVzaG9sZEZyZWVkbWFuRGlhY29uaXM6ZnVuY3Rpb24ga2R0KHQsZSxuKXtyZXR1cm4gdD16Ty5jYWxsKHQsTE8pLnNvcnQoTU8pLE1hdGguY2VpbCgobi1lKS8oMioocU8odCwuNzUpLXFPKHQsLjI1KSkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdGhyZXNob2xkU2NvdHQ6ZnVuY3Rpb24gTGR0KHQsZSxuKXtyZXR1cm4gTWF0aC5jZWlsKChuLWUpLygzLjUqTk8odCkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdGhyZXNob2xkU3R1cmdlczpXTyxtYXg6ZnVuY3Rpb24gUGR0KHQsZSl7dmFyIG4saSxyPXQubGVuZ3RoLG89LTE7aWYobnVsbD09ZSl7Zm9yKDsrK288cjspaWYobnVsbCE9KG49dFtvXSkmJm4+PW4pZm9yKGk9bjsrK288cjspbnVsbCE9KG49dFtvXSkmJm4+aSYmKGk9bil9ZWxzZSBmb3IoOysrbzxyOylpZihudWxsIT0obj1lKHRbb10sbyx0KSkmJm4+PW4pZm9yKGk9bjsrK288cjspbnVsbCE9KG49ZSh0W29dLG8sdCkpJiZuPmkmJihpPW4pO3JldHVybiBpfSxtZWFuOmZ1bmN0aW9uIE5kdCh0LGUpe3ZhciBuLGk9dC5sZW5ndGgscj1pLG89LTEsYT0wO2lmKG51bGw9PWUpZm9yKDsrK288aTspaXNOYU4obj1MTyh0W29dKSk/LS1yOmErPW47ZWxzZSBmb3IoOysrbzxpOylpc05hTihuPUxPKGUodFtvXSxvLHQpKSk/LS1yOmErPW47aWYocilyZXR1cm4gYS9yfSxtZWRpYW46ZnVuY3Rpb24gSWR0KHQsZSl7dmFyIG4saT10Lmxlbmd0aCxyPS0xLG89W107aWYobnVsbD09ZSlmb3IoOysrcjxpOylpc05hTihuPUxPKHRbcl0pKXx8by5wdXNoKG4pO2Vsc2UgZm9yKDsrK3I8aTspaXNOYU4obj1MTyhlKHRbcl0scix0KSkpfHxvLnB1c2gobik7cmV0dXJuIHFPKG8uc29ydChNTyksLjUpfSxtZXJnZTpmdW5jdGlvbiBSZHQodCl7Zm9yKHZhciBlLG4saSxyPXQubGVuZ3RoLG89LTEsYT0wOysrbzxyOylhKz10W29dLmxlbmd0aDtmb3Iobj1uZXcgQXJyYXkoYSk7LS1yPj0wOylmb3IoZT0oaT10W3JdKS5sZW5ndGg7LS1lPj0wOyluWy0tYV09aVtlXTtyZXR1cm4gbn0sbWluOllPLHBhaXJzOmZ1bmN0aW9uIE9kdCh0LGUpe251bGw9PWUmJihlPWtPKTtmb3IodmFyIG49MCxpPXQubGVuZ3RoLTEscj10WzBdLG89bmV3IEFycmF5KGk8MD8wOmkpO248aTspb1tuXT1lKHIscj10Wysrbl0pO3JldHVybiBvfSxwZXJtdXRlOmZ1bmN0aW9uIHpkdCh0LGUpe2Zvcih2YXIgbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKTtuLS07KWlbbl09dFtlW25dXTtyZXR1cm4gaX0scXVhbnRpbGU6cU8scmFuZ2U6SE8sc2NhbjpmdW5jdGlvbiBEZHQodCxlKXtpZihuPXQubGVuZ3RoKXt2YXIgbixpLHI9MCxvPTAsYT10W29dO2ZvcihudWxsPT1lJiYoZT1NTyk7KytyPG47KShlKGk9dFtyXSxhKTwwfHwwIT09ZShhLGEpKSYmKGE9aSxvPXIpO3JldHVybiAwPT09ZShhLGEpP286dm9pZCAwfX0sc2h1ZmZsZTpmdW5jdGlvbiBCZHQodCxlLG4pe2Zvcih2YXIgaSxyLG89KG51bGw9PW4/dC5sZW5ndGg6biktKGU9bnVsbD09ZT8wOitlKTtvOylyPU1hdGgucmFuZG9tKCkqby0tfDAsaT10W28rZV0sdFtvK2VdPXRbcitlXSx0W3IrZV09aTtyZXR1cm4gdH0sc3VtOmZ1bmN0aW9uIEhkdCh0LGUpe3ZhciBuLGk9dC5sZW5ndGgscj0tMSxvPTA7aWYobnVsbD09ZSlmb3IoOysrcjxpOykobj0rdFtyXSkmJihvKz1uKTtlbHNlIGZvcig7KytyPGk7KShuPStlKHRbcl0scix0KSkmJihvKz1uKTtyZXR1cm4gb30sdGlja3M6ZnVuY3Rpb24gRmR0KHQsZSxuKXt2YXIgaSxyLG8sYSxzPS0xO2lmKG49K24sKHQ9K3QpPT0oZT0rZSkmJm4+MClyZXR1cm5bdF07aWYoKGk9ZTx0KSYmKHI9dCx0PWUsZT1yKSwwPT09KGE9ak8odCxlLG4pKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxlPU1hdGguZmxvb3IoZS9hKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbChlLXQrMSkpOysrczxyOylvW3NdPSh0K3MpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksZT1NYXRoLmNlaWwoZSphKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbCh0LWUrMSkpOysrczxyOylvW3NdPSh0LXMpL2E7cmV0dXJuIGkmJm8ucmV2ZXJzZSgpLG99LHRpY2tJbmNyZW1lbnQ6ak8sdGlja1N0ZXA6R08sdHJhbnNwb3NlOlhPLHZhcmlhbmNlOlBPLHppcDpmdW5jdGlvbiBWZHQoKXtyZXR1cm4gWE8oYXJndW1lbnRzKX0sYXhpc1RvcDpmdW5jdGlvbiBVZHQodCl7cmV0dXJuIHJ6KDEsdCl9LGF4aXNSaWdodDpmdW5jdGlvbiBqZHQodCl7cmV0dXJuIHJ6KDIsdCl9LGF4aXNCb3R0b206ZnVuY3Rpb24gR2R0KHQpe3JldHVybiByeigzLHQpfSxheGlzTGVmdDpmdW5jdGlvbiBXZHQodCl7cmV0dXJuIHJ6KDQsdCl9LGJydXNoOmZ1bmN0aW9uIHFkdCgpe3JldHVybiBLRihIRil9LGJydXNoWDpmdW5jdGlvbiBZZHQoKXtyZXR1cm4gS0YoREYpfSxicnVzaFk6ZnVuY3Rpb24gWGR0KCl7cmV0dXJuIEtGKEJGKX0sYnJ1c2hTZWxlY3Rpb246ZnVuY3Rpb24gJGR0KHQpe3ZhciBlPXQuX19icnVzaDtyZXR1cm4gZT9lLmRpbS5vdXRwdXQoZS5zZWxlY3Rpb24pOm51bGx9LGNob3JkOmZ1bmN0aW9uIEtkdCgpe3ZhciB0PTAsZT1udWxsLG49bnVsbCxpPW51bGw7ZnVuY3Rpb24gcihyKXt2YXIgbyxhLHMsbCxjLHUsaD1yLmxlbmd0aCxkPVtdLHA9SkYoaCksZj1bXSxtPVtdLGc9bS5ncm91cHM9bmV3IEFycmF5KGgpLF89bmV3IEFycmF5KGgqaCk7Zm9yKG89MCxjPS0xOysrYzxoOyl7Zm9yKGE9MCx1PS0xOysrdTxoOylhKz1yW2NdW3VdO2QucHVzaChhKSxmLnB1c2goSkYoaCkpLG8rPWF9Zm9yKGUmJnAuc29ydCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZShkW3RdLGRbbl0pfSkpLG4mJmYuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LnNvcnQoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIG4ocltlXVt0XSxyW2VdW2ldKX0pKX0pKSxsPShvPW9WKDAsclYtdCpoKS9vKT90OnJWL2gsYT0wLGM9LTE7KytjPGg7KXtmb3Iocz1hLHU9LTE7Kyt1PGg7KXt2YXIgeT1wW2NdLHY9Zlt5XVt1XSxiPXJbeV1bdl0seD1hLHc9YSs9YipvO19bdipoK3ldPXtpbmRleDp5LHN1YmluZGV4OnYsc3RhcnRBbmdsZTp4LGVuZEFuZ2xlOncsdmFsdWU6Yn19Z1t5XT17aW5kZXg6eSxzdGFydEFuZ2xlOnMsZW5kQW5nbGU6YSx2YWx1ZTpkW3ldfSxhKz1sfWZvcihjPS0xOysrYzxoOylmb3IodT1jLTE7Kyt1PGg7KXt2YXIgUz1fW3UqaCtjXSxNPV9bYypoK3VdOyhTLnZhbHVlfHxNLnZhbHVlKSYmbS5wdXNoKFMudmFsdWU8TS52YWx1ZT97c291cmNlOk0sdGFyZ2V0OlN9Ontzb3VyY2U6Uyx0YXJnZXQ6TX0pfXJldHVybiBpP20uc29ydChpKTptfXJldHVybiByLnBhZEFuZ2xlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW9WKDAsZSkscik6dH0sci5zb3J0R3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQscik6ZX0sci5zb3J0U3ViZ3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQscik6bn0sci5zb3J0Q2hvcmRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P2k9bnVsbDooaT1hVih0KSkuXz10LHIpOmkmJmkuX30scn0scmliYm9uOmZ1bmN0aW9uIFpkdCgpe3ZhciB0PW1WLGU9Z1Ysbj1fVixpPXlWLHI9dlYsbz1udWxsO2Z1bmN0aW9uIGEoKXt2YXIgYSxzPXNWLmNhbGwoYXJndW1lbnRzKSxsPXQuYXBwbHkodGhpcyxzKSxjPWUuYXBwbHkodGhpcyxzKSx1PStuLmFwcGx5KHRoaXMsKHNbMF09bCxzKSksaD1pLmFwcGx5KHRoaXMscyktaVYsZD1yLmFwcGx5KHRoaXMscyktaVYscD11KnRWKGgpLGY9dSplVihoKSxtPStuLmFwcGx5KHRoaXMsKHNbMF09YyxzKSksZz1pLmFwcGx5KHRoaXMscyktaVYsXz1yLmFwcGx5KHRoaXMscyktaVY7aWYob3x8KG89YT1mVigpKSxvLm1vdmVUbyhwLGYpLG8uYXJjKDAsMCx1LGgsZCksaD09PWcmJmQ9PT1ffHwoby5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCxtKnRWKGcpLG0qZVYoZykpLG8uYXJjKDAsMCxtLGcsXykpLG8ucXVhZHJhdGljQ3VydmVUbygwLDAscCxmKSxvLmNsb3NlUGF0aCgpLGEpcmV0dXJuIG89bnVsbCxhKyIifHxudWxsfXJldHVybiBhLnJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmxWKCt0KSxhKTpufSxhLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpsVigrdCksYSk6aX0sYS5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmxWKCt0KSxhKTpyfSxhLnNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLGEpOnR9LGEudGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsYSk6ZX0sYS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPW51bGw9PXQ/bnVsbDp0LGEpOm99LGF9LG5lc3Q6ZnVuY3Rpb24gSmR0KCl7dmFyIHQsZSxuLGk9W10scj1bXTtmdW5jdGlvbiBvKG4scixhLHMpe2lmKHI+PWkubGVuZ3RoKXJldHVybiBudWxsIT10JiZuLnNvcnQodCksbnVsbCE9ZT9lKG4pOm47Zm9yKHZhciBsLGMsdSxoPS0xLGQ9bi5sZW5ndGgscD1pW3IrK10sZj13VigpLG09YSgpOysraDxkOykodT1mLmdldChsPXAoYz1uW2hdKSsiIikpP3UucHVzaChjKTpmLnNldChsLFtjXSk7cmV0dXJuIGYuZWFjaCgoZnVuY3Rpb24odCxlKXtzKG0sZSxvKHQscixhLHMpKX0pKSxtfWZ1bmN0aW9uIGEodCxuKXtpZigrK24+aS5sZW5ndGgpcmV0dXJuIHQ7dmFyIG8scz1yW24tMV07cmV0dXJuIG51bGwhPWUmJm4+PWkubGVuZ3RoP289dC5lbnRyaWVzKCk6KG89W10sdC5lYWNoKChmdW5jdGlvbih0LGUpe28ucHVzaCh7a2V5OmUsdmFsdWVzOmEodCxuKX0pfSkpKSxudWxsIT1zP28uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gcyh0LmtleSxlLmtleSl9KSk6b31yZXR1cm4gbj17b2JqZWN0OmZ1bmN0aW9uKHQpe3JldHVybiBvKHQsMCxTVixNVil9LG1hcDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0LDAsRVYsVFYpfSxlbnRyaWVzOmZ1bmN0aW9uKHQpe3JldHVybiBhKG8odCwwLEVWLFRWKSwwKX0sa2V5OmZ1bmN0aW9uKHQpe3JldHVybiBpLnB1c2godCksbn0sc29ydEtleXM6ZnVuY3Rpb24odCl7cmV0dXJuIHJbaS5sZW5ndGgtMV09dCxufSxzb3J0VmFsdWVzOmZ1bmN0aW9uKGUpe3JldHVybiB0PWUsbn0scm9sbHVwOmZ1bmN0aW9uKHQpe3JldHVybiBlPXQsbn19fSxzZXQ6a1YsbWFwOndWLGtleXM6ZnVuY3Rpb24gUWR0KHQpe3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaChuKTtyZXR1cm4gZX0sdmFsdWVzOmZ1bmN0aW9uIHRwdCh0KXt2YXIgZT1bXTtmb3IodmFyIG4gaW4gdCllLnB1c2godFtuXSk7cmV0dXJuIGV9LGVudHJpZXM6ZnVuY3Rpb24gZXB0KHQpe3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaCh7a2V5Om4sdmFsdWU6dFtuXX0pO3JldHVybiBlfSxjb2xvcjpZVixyZ2I6WlYsaHNsOmVVLGxhYjpkVSxoY2w6dlUsY3ViZWhlbGl4OkVVLGRpc3BhdGNoOkFVLGRyYWc6ZnVuY3Rpb24gbnB0KCl7dmFyIHQsZSxuLGkscj1pRyxvPXJHLGE9b0cscz1hRyxsPXt9LGM9UlUoInN0YXJ0IiwiZHJhZyIsImVuZCIpLHU9MCxoPTA7ZnVuY3Rpb24gZCh0KXt0Lm9uKCJtb3VzZWRvd24uZHJhZyIscCkuZmlsdGVyKHMpLm9uKCJ0b3VjaHN0YXJ0LmRyYWciLGcpLm9uKCJ0b3VjaG1vdmUuZHJhZyIsXykub24oInRvdWNoZW5kLmRyYWcgdG91Y2hjYW5jZWwuZHJhZyIseSkuc3R5bGUoInRvdWNoLWFjdGlvbiIsIm5vbmUiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpfWZ1bmN0aW9uIHAoKXtpZighaSYmci5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBhPXYoIm1vdXNlIixvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwkaix0aGlzLGFyZ3VtZW50cyk7YSYmKHFqKFJqLnZpZXcpLm9uKCJtb3VzZW1vdmUuZHJhZyIsZiwhMCkub24oIm1vdXNldXAuZHJhZyIsbSwhMCksUWooUmoudmlldyksWmooKSxuPSExLHQ9UmouY2xpZW50WCxlPVJqLmNsaWVudFksYSgic3RhcnQiKSl9fWZ1bmN0aW9uIGYoKXtpZihKaigpLCFuKXt2YXIgaT1Sai5jbGllbnRYLXQscj1Sai5jbGllbnRZLWU7bj1pKmkrcipyPmh9bC5tb3VzZSgiZHJhZyIpfWZ1bmN0aW9uIG0oKXtxaihSai52aWV3KS5vbigibW91c2Vtb3ZlLmRyYWcgbW91c2V1cC5kcmFnIixudWxsKSx0RyhSai52aWV3LG4pLEpqKCksbC5tb3VzZSgiZW5kIil9ZnVuY3Rpb24gZygpe2lmKHIuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdCxlLG49UmouY2hhbmdlZFRvdWNoZXMsaT1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxhPW4ubGVuZ3RoO2Zvcih0PTA7dDxhOysrdCkoZT12KG5bdF0uaWRlbnRpZmllcixpLEtqLHRoaXMsYXJndW1lbnRzKSkmJihaaigpLGUoInN0YXJ0IikpfX1mdW5jdGlvbiBfKCl7dmFyIHQsZSxuPVJqLmNoYW5nZWRUb3VjaGVzLGk9bi5sZW5ndGg7Zm9yKHQ9MDt0PGk7Kyt0KShlPWxbblt0XS5pZGVudGlmaWVyXSkmJihKaigpLGUoImRyYWciKSl9ZnVuY3Rpb24geSgpe3ZhciB0LGUsbj1Sai5jaGFuZ2VkVG91Y2hlcyxyPW4ubGVuZ3RoO2ZvcihpJiZjbGVhclRpbWVvdXQoaSksaT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2k9bnVsbH0pLDUwMCksdD0wO3Q8cjsrK3QpKGU9bFtuW3RdLmlkZW50aWZpZXJdKSYmKFpqKCksZSgiZW5kIikpfWZ1bmN0aW9uIHYodCxlLG4saSxyKXt2YXIgbyxzLGgscD1uKGUsdCksZj1jLmNvcHkoKTtpZihGaihuZXcgbkcoZCwiYmVmb3Jlc3RhcnQiLG8sdCx1LHBbMF0scFsxXSwwLDAsZiksKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPShSai5zdWJqZWN0PW89YS5hcHBseShpLHIpKSYmKHM9by54LXBbMF18fDAsaD1vLnktcFsxXXx8MCwhMCl9KSkpcmV0dXJuIGZ1bmN0aW9uIGEoYyl7dmFyIG0sZz1wO3N3aXRjaChjKXtjYXNlInN0YXJ0IjpsW3RdPWEsbT11Kys7YnJlYWs7Y2FzZSJlbmQiOmRlbGV0ZSBsW3RdLC0tdTtjYXNlImRyYWciOnA9bihlLHQpLG09dX1GaihuZXcgbkcoZCxjLG8sdCxtLHBbMF0rcyxwWzFdK2gscFswXS1nWzBdLHBbMV0tZ1sxXSxmKSxmLmFwcGx5LGYsW2MsaSxyXSl9fXJldHVybiBkLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmVHKCEhdCksZCk6cn0sZC5jb250YWluZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDplRyh0KSxkKTpvfSxkLnN1YmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDplRyh0KSxkKTphfSxkLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmVHKCEhdCksZCk6c30sZC5vbj1mdW5jdGlvbigpe3ZhciB0PWMub24uYXBwbHkoYyxhcmd1bWVudHMpO3JldHVybiB0PT09Yz9kOnR9LGQuY2xpY2tEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD0odD0rdCkqdCxkKTpNYXRoLnNxcnQoaCl9LGR9LGRyYWdEaXNhYmxlOlFqLGRyYWdFbmFibGU6dEcsZHN2Rm9ybWF0OlZHLGNzdlBhcnNlOmpHLGNzdlBhcnNlUm93czpHRyxjc3ZGb3JtYXQ6V0csY3N2Rm9ybWF0Um93czpxRyx0c3ZQYXJzZTpYRyx0c3ZQYXJzZVJvd3M6JEcsdHN2Rm9ybWF0OktHLHRzdkZvcm1hdFJvd3M6WkcsZWFzZUxpbmVhcjpmdW5jdGlvbiBpcHQodCl7cmV0dXJuK3R9LGVhc2VRdWFkOkpHLGVhc2VRdWFkSW46ZnVuY3Rpb24gcnB0KHQpe3JldHVybiB0KnR9LGVhc2VRdWFkT3V0OmZ1bmN0aW9uIG9wdCh0KXtyZXR1cm4gdCooMi10KX0sZWFzZVF1YWRJbk91dDpKRyxlYXNlQ3ViaWM6UUcsZWFzZUN1YmljSW46ZnVuY3Rpb24gYXB0KHQpe3JldHVybiB0KnQqdH0sZWFzZUN1YmljT3V0OmZ1bmN0aW9uIHNwdCh0KXtyZXR1cm4tLXQqdCp0KzF9LGVhc2VDdWJpY0luT3V0OlFHLGVhc2VQb2x5Om5XLGVhc2VQb2x5SW46dFcsZWFzZVBvbHlPdXQ6ZVcsZWFzZVBvbHlJbk91dDpuVyxlYXNlU2luOm9XLGVhc2VTaW5JbjpmdW5jdGlvbiBscHQodCl7cmV0dXJuIDEtTWF0aC5jb3ModCpyVyl9LGVhc2VTaW5PdXQ6ZnVuY3Rpb24gY3B0KHQpe3JldHVybiBNYXRoLnNpbih0KnJXKX0sZWFzZVNpbkluT3V0Om9XLGVhc2VFeHA6YVcsZWFzZUV4cEluOmZ1bmN0aW9uIHVwdCh0KXtyZXR1cm4gTWF0aC5wb3coMiwxMCp0LTEwKX0sZWFzZUV4cE91dDpmdW5jdGlvbiBocHQodCl7cmV0dXJuIDEtTWF0aC5wb3coMiwtMTAqdCl9LGVhc2VFeHBJbk91dDphVyxlYXNlQ2lyY2xlOnNXLGVhc2VDaXJjbGVJbjpmdW5jdGlvbiBkcHQodCl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtdCp0KX0sZWFzZUNpcmNsZU91dDpmdW5jdGlvbiBwcHQodCl7cmV0dXJuIE1hdGguc3FydCgxLSAtLXQqdCl9LGVhc2VDaXJjbGVJbk91dDpzVyxlYXNlQm91bmNlOmNXLGVhc2VCb3VuY2VJbjpmdW5jdGlvbiBmcHQodCl7cmV0dXJuIDEtY1coMS10KX0sZWFzZUJvdW5jZU91dDpjVyxlYXNlQm91bmNlSW5PdXQ6ZnVuY3Rpb24gbXB0KHQpe3JldHVybigodCo9Mik8PTE/MS1jVygxLXQpOmNXKHQtMSkrMSkvMn0sZWFzZUJhY2s6cFcsZWFzZUJhY2tJbjpoVyxlYXNlQmFja091dDpkVyxlYXNlQmFja0luT3V0OnBXLGVhc2VFbGFzdGljOmdXLGVhc2VFbGFzdGljSW46bVcsZWFzZUVsYXN0aWNPdXQ6Z1csZWFzZUVsYXN0aWNJbk91dDpfVyxmb3JjZUNlbnRlcjpmdW5jdGlvbiBncHQodCxlKXt2YXIgbjtmdW5jdGlvbiBpKCl7dmFyIGkscixvPW4ubGVuZ3RoLGE9MCxzPTA7Zm9yKGk9MDtpPG87KytpKWErPShyPW5baV0pLngscys9ci55O2ZvcihhPWEvby10LHM9cy9vLWUsaT0wO2k8bzsrK2kpKHI9bltpXSkueC09YSxyLnktPXN9cmV0dXJuIG51bGw9PXQmJih0PTApLG51bGw9PWUmJihlPTApLGkuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtuPXR9LGkueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rZSxpKTp0fSxpLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3QsaSk6ZX0saX0sZm9yY2VDb2xsaWRlOmZ1bmN0aW9uIF9wdCh0KXt2YXIgZSxuLGk9MSxyPTE7ZnVuY3Rpb24gbygpe2Zvcih2YXIgdCxvLHMsbCxjLHUsaCxkPWUubGVuZ3RoLHA9MDtwPHI7KytwKWZvcihvPU1XKGUsQVcsa1cpLnZpc2l0QWZ0ZXIoYSksdD0wO3Q8ZDsrK3QpaD0odT1uWyhzPWVbdF0pLmluZGV4XSkqdSxsPXMueCtzLnZ4LGM9cy55K3Mudnksby52aXNpdChmKTtmdW5jdGlvbiBmKHQsZSxuLHIsbyl7dmFyIGE9dC5kYXRhLGQ9dC5yLHA9dStkO2lmKCFhKXJldHVybiBlPmwrcHx8cjxsLXB8fG4+YytwfHxvPGMtcDtpZihhLmluZGV4PnMuaW5kZXgpe3ZhciBmPWwtYS54LWEudngsbT1jLWEueS1hLnZ5LGc9ZipmK20qbTtnPHAqcCYmKDA9PT1mJiYoZys9KGY9dlcoKSkqZiksMD09PW0mJihnKz0obT12VygpKSptKSxnPShwLShnPU1hdGguc3FydChnKSkpL2cqaSxzLnZ4Kz0oZio9ZykqKHA9KGQqPWQpLyhoK2QpKSxzLnZ5Kz0obSo9ZykqcCxhLnZ4LT1mKihwPTEtcCksYS52eS09bSpwKX19fWZ1bmN0aW9uIGEodCl7aWYodC5kYXRhKXJldHVybiB0LnI9blt0LmRhdGEuaW5kZXhdO2Zvcih2YXIgZT10LnI9MDtlPDQ7KytlKXRbZV0mJnRbZV0ucj50LnImJih0LnI9dFtlXS5yKX1mdW5jdGlvbiBzKCl7aWYoZSl7dmFyIGkscixvPWUubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShvKSxpPTA7aTxvOysraSluWyhyPWVbaV0pLmluZGV4XT0rdChyLGksZSl9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD15VyhudWxsPT10PzE6K3QpKSxvLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7ZT10LHMoKX0sby5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LG8pOnJ9LG8uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3Qsbyk6aX0sby5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTp5VygrZSkscygpLG8pOnR9LG99LGZvcmNlTGluazpmdW5jdGlvbiB5cHQodCl7dmFyIGUsbixpLHIsbyxhPSRXLHM9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gMS9NYXRoLm1pbihyW3Quc291cmNlLmluZGV4XSxyW3QudGFyZ2V0LmluZGV4XSl9LGM9eVcoMzApLHU9MTtmdW5jdGlvbiBoKGkpe2Zvcih2YXIgcj0wLGE9dC5sZW5ndGg7cjx1Oysrcilmb3IodmFyIHMsbCxjLGgsZCxwLGYsbT0wO208YTsrK20paD0oYz0ocz10W21dKS50YXJnZXQpLngrYy52eC0obD1zLnNvdXJjZSkueC1sLnZ4fHx2VygpLGQ9Yy55K2MudnktbC55LWwudnl8fHZXKCksZCo9cD0oKHA9TWF0aC5zcXJ0KGgqaCtkKmQpKS1uW21dKS9wKmkqZVttXSxjLnZ4LT0oaCo9cCkqKGY9b1ttXSksYy52eS09ZCpmLGwudngrPWgqKGY9MS1mKSxsLnZ5Kz1kKmZ9ZnVuY3Rpb24gZCgpe2lmKGkpe3ZhciBzLGwsYz1pLmxlbmd0aCx1PXQubGVuZ3RoLGg9cVcoaSxhKTtmb3Iocz0wLHI9bmV3IEFycmF5KGMpO3M8dTsrK3MpKGw9dFtzXSkuaW5kZXg9cywib2JqZWN0IiE9dHlwZW9mIGwuc291cmNlJiYobC5zb3VyY2U9S1coaCxsLnNvdXJjZSkpLCJvYmplY3QiIT10eXBlb2YgbC50YXJnZXQmJihsLnRhcmdldD1LVyhoLGwudGFyZ2V0KSkscltsLnNvdXJjZS5pbmRleF09KHJbbC5zb3VyY2UuaW5kZXhdfHwwKSsxLHJbbC50YXJnZXQuaW5kZXhdPShyW2wudGFyZ2V0LmluZGV4XXx8MCkrMTtmb3Iocz0wLG89bmV3IEFycmF5KHUpO3M8dTsrK3Mpb1tzXT1yWyhsPXRbc10pLnNvdXJjZS5pbmRleF0vKHJbbC5zb3VyY2UuaW5kZXhdK3JbbC50YXJnZXQuaW5kZXhdKTtlPW5ldyBBcnJheSh1KSxwKCksbj1uZXcgQXJyYXkodSksZigpfX1mdW5jdGlvbiBwKCl7aWYoaSlmb3IodmFyIG49MCxyPXQubGVuZ3RoO248cjsrK24pZVtuXT0rcyh0W25dLG4sdCl9ZnVuY3Rpb24gZigpe2lmKGkpZm9yKHZhciBlPTAscj10Lmxlbmd0aDtlPHI7KytlKW5bZV09K2ModFtlXSxlLHQpfXJldHVybiBudWxsPT10JiYodD1bXSksaC5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2k9dCxkKCl9LGgubGlua3M9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxkKCksaCk6dH0saC5pZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LGgpOmF9LGguaXRlcmF0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0rdCxoKTp1fSxoLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eVcoK3QpLHAoKSxoKTpzfSxoLmRpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eVcoK3QpLGYoKSxoKTpjfSxofSxmb3JjZU1hbnlCb2R5OmZ1bmN0aW9uIHZwdCgpe3ZhciB0LGUsbixpLHI9eVcoLTMwKSxvPTEsYT0xLzAscz0uODE7ZnVuY3Rpb24gbChpKXt2YXIgcixvPXQubGVuZ3RoLGE9TVcodCxicSx4cSkudmlzaXRBZnRlcih1KTtmb3Iobj1pLHI9MDtyPG87KytyKWU9dFtyXSxhLnZpc2l0KGgpfWZ1bmN0aW9uIGMoKXtpZih0KXt2YXIgZSxuLG89dC5sZW5ndGg7Zm9yKGk9bmV3IEFycmF5KG8pLGU9MDtlPG87KytlKWlbKG49dFtlXSkuaW5kZXhdPStyKG4sZSx0KX19ZnVuY3Rpb24gdSh0KXt2YXIgZSxuLHIsbyxhLHM9MCxsPTA7aWYodC5sZW5ndGgpe2ZvcihyPW89YT0wO2E8NDsrK2EpKGU9dFthXSkmJihuPU1hdGguYWJzKGUudmFsdWUpKSYmKHMrPWUudmFsdWUsbCs9bixyKz1uKmUueCxvKz1uKmUueSk7dC54PXIvbCx0Lnk9by9sfWVsc2V7KGU9dCkueD1lLmRhdGEueCxlLnk9ZS5kYXRhLnk7ZG97cys9aVtlLmRhdGEuaW5kZXhdfXdoaWxlKGU9ZS5uZXh0KX10LnZhbHVlPXN9ZnVuY3Rpb24gaCh0LHIsbCxjKXtpZighdC52YWx1ZSlyZXR1cm4hMDt2YXIgdT10LngtZS54LGg9dC55LWUueSxkPWMtcixwPXUqdStoKmg7aWYoZCpkL3M8cClyZXR1cm4gcDxhJiYoMD09PXUmJihwKz0odT12VygpKSp1KSwwPT09aCYmKHArPShoPXZXKCkpKmgpLHA8byYmKHA9TWF0aC5zcXJ0KG8qcCkpLGUudngrPXUqdC52YWx1ZSpuL3AsZS52eSs9aCp0LnZhbHVlKm4vcCksITA7aWYoISh0Lmxlbmd0aHx8cD49YSkpeyh0LmRhdGEhPT1lfHx0Lm5leHQpJiYoMD09PXUmJihwKz0odT12VygpKSp1KSwwPT09aCYmKHArPShoPXZXKCkpKmgpLHA8byYmKHA9TWF0aC5zcXJ0KG8qcCkpKTtkb3t0LmRhdGEhPT1lJiYoZS52eCs9dSooZD1pW3QuZGF0YS5pbmRleF0qbi9wKSxlLnZ5Kz1oKmQpfXdoaWxlKHQ9dC5uZXh0KX19cmV0dXJuIGwuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0PWUsYygpfSxsLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eVcoK3QpLGMoKSxsKTpyfSxsLmRpc3RhbmNlTWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQqdCxsKTpNYXRoLnNxcnQobyl9LGwuZGlzdGFuY2VNYXg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dCp0LGwpOk1hdGguc3FydChhKX0sbC50aGV0YT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10KnQsbCk6TWF0aC5zcXJ0KHMpfSxsfSxmb3JjZVJhZGlhbDpmdW5jdGlvbiBicHQodCxlLG4pe3ZhciBpLHIsbyxhPXlXKC4xKTtmdW5jdGlvbiBzKHQpe2Zvcih2YXIgYT0wLHM9aS5sZW5ndGg7YTxzOysrYSl7dmFyIGw9aVthXSxjPWwueC1lfHwxZS02LHU9bC55LW58fDFlLTYsaD1NYXRoLnNxcnQoYypjK3UqdSksZD0ob1thXS1oKSpyW2FdKnQvaDtsLnZ4Kz1jKmQsbC52eSs9dSpkfX1mdW5jdGlvbiBsKCl7aWYoaSl7dmFyIGUsbj1pLmxlbmd0aDtmb3Iocj1uZXcgQXJyYXkobiksbz1uZXcgQXJyYXkobiksZT0wO2U8bjsrK2Upb1tlXT0rdChpW2VdLGUsaSkscltlXT1pc05hTihvW2VdKT8wOithKGlbZV0sZSxpKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXlXKCt0KSksbnVsbD09ZSYmKGU9MCksbnVsbD09biYmKG49MCkscy5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2k9dCxsKCl9LHMuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp5VygrdCksbCgpLHMpOmF9LHMucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6eVcoK2UpLGwoKSxzKTp0fSxzLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3Qscyk6ZX0scy55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LHMpOm59LHN9LGZvcmNlU2ltdWxhdGlvbjpmdW5jdGlvbiB4cHQodCl7dmFyIGUsbj0xLGk9LjAwMSxyPTEtTWF0aC5wb3coaSwxLzMwMCksbz0wLGE9LjYscz1xVygpLGw9Z3EodSksYz1KVygidGljayIsImVuZCIpO2Z1bmN0aW9uIHUoKXtoKCksYy5jYWxsKCJ0aWNrIixlKSxuPGkmJihsLnN0b3AoKSxjLmNhbGwoImVuZCIsZSkpfWZ1bmN0aW9uIGgoKXt2YXIgZSxpLGw9dC5sZW5ndGg7Zm9yKG4rPShvLW4pKnIscy5lYWNoKChmdW5jdGlvbih0KXt0KG4pfSkpLGU9MDtlPGw7KytlKW51bGw9PShpPXRbZV0pLmZ4P2kueCs9aS52eCo9YTooaS54PWkuZngsaS52eD0wKSxudWxsPT1pLmZ5P2kueSs9aS52eSo9YTooaS55PWkuZnksaS52eT0wKX1mdW5jdGlvbiBkKCl7Zm9yKHZhciBlLG49MCxpPXQubGVuZ3RoO248aTsrK24pe2lmKChlPXRbbl0pLmluZGV4PW4saXNOYU4oZS54KXx8aXNOYU4oZS55KSl7dmFyIHI9MTAqTWF0aC5zcXJ0KG4pLG89bipTcTtlLng9cipNYXRoLmNvcyhvKSxlLnk9cipNYXRoLnNpbihvKX0oaXNOYU4oZS52eCl8fGlzTmFOKGUudnkpKSYmKGUudng9ZS52eT0wKX19ZnVuY3Rpb24gcChlKXtyZXR1cm4gZS5pbml0aWFsaXplJiZlLmluaXRpYWxpemUodCksZX1yZXR1cm4gbnVsbD09dCYmKHQ9W10pLGQoKSxlPXt0aWNrOmgscmVzdGFydDpmdW5jdGlvbigpe3JldHVybiBsLnJlc3RhcnQodSksZX0sc3RvcDpmdW5jdGlvbigpe3JldHVybiBsLnN0b3AoKSxlfSxub2RlczpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uLGQoKSxzLmVhY2gocCksZSk6dH0sYWxwaGE6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3QsZSk6bn0sYWxwaGFNaW46ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3QsZSk6aX0sYWxwaGFEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdCxlKTorcn0sYWxwaGFUYXJnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3QsZSk6b30sdmVsb2NpdHlEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0xLXQsZSk6MS1hfSxmb3JjZTpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KG51bGw9PW4/cy5yZW1vdmUodCk6cy5zZXQodCxwKG4pKSxlKTpzLmdldCh0KX0sZmluZDpmdW5jdGlvbihlLG4saSl7dmFyIHIsbyxhLHMsbCxjPTAsdT10Lmxlbmd0aDtmb3IobnVsbD09aT9pPTEvMDppKj1pLGM9MDtjPHU7KytjKShhPShyPWUtKHM9dFtjXSkueCkqcisobz1uLXMueSkqbyk8aSYmKGw9cyxpPWEpO3JldHVybiBsfSxvbjpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGMub24odCxuKSxlKTpjLm9uKHQpfX19LGZvcmNlWDpmdW5jdGlvbiB3cHQodCl7dmFyIGUsbixpLHI9eVcoLjEpO2Z1bmN0aW9uIG8odCl7Zm9yKHZhciByLG89MCxhPWUubGVuZ3RoO288YTsrK28pKHI9ZVtvXSkudngrPShpW29dLXIueCkqbltvXSp0fWZ1bmN0aW9uIGEoKXtpZihlKXt2YXIgbyxhPWUubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShhKSxpPW5ldyBBcnJheShhKSxvPTA7bzxhOysrbyluW29dPWlzTmFOKGlbb109K3QoZVtvXSxvLGUpKT8wOityKGVbb10sbyxlKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXlXKG51bGw9PXQ/MDordCkpLG8uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtlPXQsYSgpfSxvLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eVcoK3QpLGEoKSxvKTpyfSxvLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTp5VygrZSksYSgpLG8pOnR9LG99LGZvcmNlWTpmdW5jdGlvbiBTcHQodCl7dmFyIGUsbixpLHI9eVcoLjEpO2Z1bmN0aW9uIG8odCl7Zm9yKHZhciByLG89MCxhPWUubGVuZ3RoO288YTsrK28pKHI9ZVtvXSkudnkrPShpW29dLXIueSkqbltvXSp0fWZ1bmN0aW9uIGEoKXtpZihlKXt2YXIgbyxhPWUubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShhKSxpPW5ldyBBcnJheShhKSxvPTA7bzxhOysrbyluW29dPWlzTmFOKGlbb109K3QoZVtvXSxvLGUpKT8wOityKGVbb10sbyxlKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXlXKG51bGw9PXQ/MDordCkpLG8uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtlPXQsYSgpfSxvLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6eVcoK3QpLGEoKSxvKTpyfSxvLnk9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTp5VygrZSksYSgpLG8pOnR9LG99LGZvcm1hdERlZmF1bHRMb2NhbGU6SHEsZ2V0IGZvcm1hdCgpe3JldHVybiBPcX0sZ2V0IGZvcm1hdFByZWZpeCgpe3JldHVybiB6cX0sZm9ybWF0TG9jYWxlOkJxLGZvcm1hdFNwZWNpZmllcjpQcSxwcmVjaXNpb25GaXhlZDpmdW5jdGlvbiBNcHQodCl7cmV0dXJuIE1hdGgubWF4KDAsLUVxKE1hdGguYWJzKHQpKSl9LHByZWNpc2lvblByZWZpeDpmdW5jdGlvbiBFcHQodCxlKXtyZXR1cm4gTWF0aC5tYXgoMCwzKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihFcShlKS8zKSkpLUVxKE1hdGguYWJzKHQpKSl9LHByZWNpc2lvblJvdW5kOmZ1bmN0aW9uIFRwdCh0LGUpe3JldHVybiB0PU1hdGguYWJzKHQpLGU9TWF0aC5hYnMoZSktdCxNYXRoLm1heCgwLEVxKGUpLUVxKHQpKSsxfSxnZW9BcmVhOmZ1bmN0aW9uIENwdCh0KXtyZXR1cm4gRVkucmVzZXQoKSx5WSh0LFRZKSwyKkVZfSxnZW9Cb3VuZHM6ZnVuY3Rpb24gQXB0KHQpe3ZhciBlLG4saSxyLG8sYSxzO2lmKFZZPUZZPS0oQlk9SFk9MS8wKSxxWT1bXSx5WSh0LGhYKSxuPXFZLmxlbmd0aCl7Zm9yKHFZLnNvcnQoYlgpLGU9MSxvPVtpPXFZWzBdXTtlPG47KytlKXhYKGksKHI9cVlbZV0pWzBdKXx8eFgoaSxyWzFdKT8odlgoaVswXSxyWzFdKT52WChpWzBdLGlbMV0pJiYoaVsxXT1yWzFdKSx2WChyWzBdLGlbMV0pPnZYKGlbMF0saVsxXSkmJihpWzBdPXJbMF0pKTpvLnB1c2goaT1yKTtmb3IoYT0tMS8wLGU9MCxpPW9bbj1vLmxlbmd0aC0xXTtlPD1uO2k9ciwrK2UpKHM9dlgoaVsxXSwocj1vW2VdKVswXSkpPmEmJihhPXMsQlk9clswXSxGWT1pWzFdKX1yZXR1cm4gcVk9WVk9bnVsbCxCWT09PTEvMHx8SFk9PT0xLzA/W1tOYU4sTmFOXSxbTmFOLE5hTl1dOltbQlksSFldLFtGWSxWWV1dfSxnZW9DZW50cm9pZDpmdW5jdGlvbiBrcHQodCl7WFk9JFk9S1k9Wlk9Slk9UVk9dFg9ZVg9blg9aVg9clg9MCx5WSh0LHdYKTt2YXIgZT1uWCxuPWlYLGk9clgscj1lKmUrbipuK2kqaTtyZXR1cm4gcjwxZS0xMiYmKGU9UVksbj10WCxpPWVYLCRZPEdxJiYoZT1LWSxuPVpZLGk9SlkpLChyPWUqZStuKm4raSppKTwxZS0xMik/W05hTixOYU5dOltRcShuLGUpKiRxLHVZKGkvc1kocikpKiRxXX0sZ2VvQ2lyY2xlOmZ1bmN0aW9uIExwdCgpe3ZhciB0LGUsbj1JWChbMCwwXSksaT1JWCg5MCkscj1JWCg2KSxvPXtwb2ludDpmdW5jdGlvbiBhKG4saSl7dC5wdXNoKG49ZShuLGkpKSxuWzBdKj0kcSxuWzFdKj0kcX19O2Z1bmN0aW9uIHMoKXt2YXIgYT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxzPWkuYXBwbHkodGhpcyxhcmd1bWVudHMpKktxLGw9ci5hcHBseSh0aGlzLGFyZ3VtZW50cykqS3E7cmV0dXJuIHQ9W10sZT16WCgtYVswXSpLcSwtYVsxXSpLcSwwKS5pbnZlcnQsVlgobyxzLGwsMSksYT17dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W3RdfSx0PWU9bnVsbCxhfXJldHVybiBzLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OklYKFsrdFswXSwrdFsxXV0pLHMpOm59LHMucmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SVgoK3QpLHMpOml9LHMucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SVgoK3QpLHMpOnJ9LHN9LGdlb0NsaXBBbnRpbWVyaWRpYW46aSQsZ2VvQ2xpcENpcmNsZTphJCxnZW9DbGlwRXh0ZW50OmZ1bmN0aW9uIFBwdCgpe3ZhciB0LGUsbixpPTAscj0wLG89OTYwLGE9NTAwO3JldHVybiBuPXtzdHJlYW06ZnVuY3Rpb24obil7cmV0dXJuIHQmJmU9PT1uP3Q6dD1jJChpLHIsbyxhKShlPW4pfSxleHRlbnQ6ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3NbMF1bMF0scj0rc1swXVsxXSxvPStzWzFdWzBdLGE9K3NbMV1bMV0sdD1lPW51bGwsbik6W1tpLHJdLFtvLGFdXX19fSxnZW9DbGlwUmVjdGFuZ2xlOmMkLGdlb0NvbnRhaW5zOmZ1bmN0aW9uIE5wdCh0LGUpe3JldHVybih0JiZTJC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP1MkW3QudHlwZV06RSQpKHQsZSl9LGdlb0Rpc3RhbmNlOnckLGdlb0dyYXRpY3VsZTpJJCxnZW9HcmF0aWN1bGUxMDpmdW5jdGlvbiBJcHQoKXtyZXR1cm4gSSQoKSgpfSxnZW9JbnRlcnBvbGF0ZTpmdW5jdGlvbiBScHQodCxlKXt2YXIgbj10WzBdKktxLGk9dFsxXSpLcSxyPWVbMF0qS3Esbz1lWzFdKktxLGE9dFkoaSkscz1vWShpKSxsPXRZKG8pLGM9b1kobyksdT1hKnRZKG4pLGg9YSpvWShuKSxkPWwqdFkocikscD1sKm9ZKHIpLGY9Mip1WShzWShoWShvLWkpK2EqbCpoWShyLW4pKSksbT1vWShmKSxnPWY/ZnVuY3Rpb24odCl7dmFyIGU9b1kodCo9ZikvbSxuPW9ZKGYtdCkvbSxpPW4qdStlKmQscj1uKmgrZSpwLG89bipzK2UqYztyZXR1cm5bUXEocixpKSokcSxRcShvLHNZKGkqaStyKnIpKSokcV19OmZ1bmN0aW9uKCl7cmV0dXJuW24qJHEsaSokcV19O3JldHVybiBnLmRpc3RhbmNlPWYsZ30sZ2VvTGVuZ3RoOnYkLGdlb1BhdGg6ZnVuY3Rpb24gT3B0KHQsZSl7dmFyIG4saSxyPTQuNTtmdW5jdGlvbiBvKHQpe3JldHVybiB0JiYoImZ1bmN0aW9uIj09dHlwZW9mIHImJmkucG9pbnRSYWRpdXMoK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKSx5WSh0LG4oaSkpKSxpLnJlc3VsdCgpfXJldHVybiBvLmFyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIHlZKHQsbihWJCkpLFYkLnJlc3VsdCgpfSxvLm1lYXN1cmU9ZnVuY3Rpb24odCl7cmV0dXJuIHlZKHQsbihBSykpLEFLLnJlc3VsdCgpfSxvLmJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4geVkodCxuKHRLKSksdEsucmVzdWx0KCl9LG8uY2VudHJvaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHlZKHQsbihoSykpLGhLLnJlc3VsdCgpfSxvLnByb2plY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09ZT8odD1udWxsLFIkKToodD1lKS5zdHJlYW0sbyk6dH0sby5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/KGU9bnVsbCxuZXcgUEspOm5ldyB4SyhlPXQpLCJmdW5jdGlvbiIhPXR5cGVvZiByJiZpLnBvaW50UmFkaXVzKHIpLG8pOmV9LG8ucG9pbnRSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDooaS5wb2ludFJhZGl1cygrdCksK3QpLG8pOnJ9LG8ucHJvamVjdGlvbih0KS5jb250ZXh0KGUpfSxnZW9BbGJlcnM6WEssZ2VvQWxiZXJzVXNhOmZ1bmN0aW9uIHpwdCgpe3ZhciB0LGUsbixpLHIsbyxhPVhLKCkscz1ZSygpLnJvdGF0ZShbMTU0LDBdKS5jZW50ZXIoWy0yLDU4LjVdKS5wYXJhbGxlbHMoWzU1LDY1XSksbD1ZSygpLnJvdGF0ZShbMTU3LDBdKS5jZW50ZXIoWy0zLDE5LjldKS5wYXJhbGxlbHMoWzgsMThdKSxjPXtwb2ludDpmdW5jdGlvbih0LGUpe289W3QsZV19fTtmdW5jdGlvbiB1KHQpe3ZhciBlPXRbMF0sYT10WzFdO3JldHVybiBvPW51bGwsbi5wb2ludChlLGEpLG98fChpLnBvaW50KGUsYSksbyl8fChyLnBvaW50KGUsYSksbyl9ZnVuY3Rpb24gaCgpe3JldHVybiB0PWU9bnVsbCx1fXJldHVybiB1LmludmVydD1mdW5jdGlvbih0KXt2YXIgZT1hLnNjYWxlKCksbj1hLnRyYW5zbGF0ZSgpLGk9KHRbMF0tblswXSkvZSxyPSh0WzFdLW5bMV0pL2U7cmV0dXJuKHI+PS4xMiYmcjwuMjM0JiZpPj0tLjQyNSYmaTwtLjIxND9zOnI+PS4xNjYmJnI8LjIzNCYmaT49LS4yMTQmJmk8LS4xMTU/bDphKS5pbnZlcnQodCl9LHUuc3RyZWFtPWZ1bmN0aW9uKG4pe3JldHVybiB0JiZlPT09bj90OnQ9KGZ1bmN0aW9uIGkodCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJue3BvaW50OmZ1bmN0aW9uKG4saSl7Zm9yKHZhciByPS0xOysrcjxlOyl0W3JdLnBvaW50KG4saSl9LHNwaGVyZTpmdW5jdGlvbigpe2Zvcih2YXIgbj0tMTsrK248ZTspdFtuXS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLnBvbHlnb25FbmQoKX19fSkoW2Euc3RyZWFtKGU9bikscy5zdHJlYW0obiksbC5zdHJlYW0obildKX0sdS5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGEucHJlY2lzaW9uKHQpLHMucHJlY2lzaW9uKHQpLGwucHJlY2lzaW9uKHQpLGgoKSk6YS5wcmVjaXNpb24oKX0sdS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYS5zY2FsZSh0KSxzLnNjYWxlKC4zNSp0KSxsLnNjYWxlKHQpLHUudHJhbnNsYXRlKGEudHJhbnNsYXRlKCkpKTphLnNjYWxlKCl9LHUudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBhLnRyYW5zbGF0ZSgpO3ZhciBlPWEuc2NhbGUoKSxvPSt0WzBdLHU9K3RbMV07cmV0dXJuIG49YS50cmFuc2xhdGUodCkuY2xpcEV4dGVudChbW28tLjQ1NSplLHUtLjIzOCplXSxbbysuNDU1KmUsdSsuMjM4KmVdXSkuc3RyZWFtKGMpLGk9cy50cmFuc2xhdGUoW28tLjMwNyplLHUrLjIwMSplXSkuY2xpcEV4dGVudChbW28tLjQyNSplK0dxLHUrLjEyKmUrR3FdLFtvLS4yMTQqZS1HcSx1Ky4yMzQqZS1HcV1dKS5zdHJlYW0oYykscj1sLnRyYW5zbGF0ZShbby0uMjA1KmUsdSsuMjEyKmVdKS5jbGlwRXh0ZW50KFtbby0uMjE0KmUrR3EsdSsuMTY2KmUrR3FdLFtvLS4xMTUqZS1HcSx1Ky4yMzQqZS1HcV1dKS5zdHJlYW0oYyksaCgpfSx1LmZpdEV4dGVudD1mdW5jdGlvbih0LGUpe3JldHVybiB6Syh1LHQsZSl9LHUuZml0U2l6ZT1mdW5jdGlvbih0LGUpe3JldHVybiBESyh1LHQsZSl9LHUuZml0V2lkdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gQksodSx0LGUpfSx1LmZpdEhlaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiBISyh1LHQsZSl9LHUuc2NhbGUoMTA3MCl9LGdlb0F6aW11dGhhbEVxdWFsQXJlYTpmdW5jdGlvbiBEcHQoKXtyZXR1cm4gaksoWkspLnNjYWxlKDEyNC43NSkuY2xpcEFuZ2xlKDE3OS45OTkpfSxnZW9BemltdXRoYWxFcXVhbEFyZWFSYXc6WkssZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnQ6ZnVuY3Rpb24gQnB0KCl7cmV0dXJuIGpLKEpLKS5zY2FsZSg3OS40MTg4KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LGdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3OkpLLGdlb0NvbmljQ29uZm9ybWFsOmZ1bmN0aW9uIEhwdCgpe3JldHVybiBXSyhuWikuc2NhbGUoMTA5LjUpLnBhcmFsbGVscyhbMzAsMzBdKX0sZ2VvQ29uaWNDb25mb3JtYWxSYXc6blosZ2VvQ29uaWNFcXVhbEFyZWE6WUssZ2VvQ29uaWNFcXVhbEFyZWFSYXc6cUssZ2VvQ29uaWNFcXVpZGlzdGFudDpmdW5jdGlvbiBGcHQoKXtyZXR1cm4gV0soclopLnNjYWxlKDEzMS4xNTQpLmNlbnRlcihbMCwxMy45Mzg5XSl9LGdlb0NvbmljRXF1aWRpc3RhbnRSYXc6closZ2VvRXF1aXJlY3Rhbmd1bGFyOmZ1bmN0aW9uIFZwdCgpe3JldHVybiBqSyhpWikuc2NhbGUoMTUyLjYzKX0sZ2VvRXF1aXJlY3Rhbmd1bGFyUmF3OmlaLGdlb0dub21vbmljOmZ1bmN0aW9uIFVwdCgpe3JldHVybiBqSyhvWikuc2NhbGUoMTQ0LjA0OSkuY2xpcEFuZ2xlKDYwKX0sZ2VvR25vbW9uaWNSYXc6b1osZ2VvSWRlbnRpdHk6ZnVuY3Rpb24ganB0KCl7dmFyIHQsZSxuLGkscixvLGE9MSxzPTAsbD0wLGM9MSx1PTEsaD1SJCxkPW51bGwscD1SJDtmdW5jdGlvbiBmKCl7cmV0dXJuIGk9cj1udWxsLG99cmV0dXJuIG89e3N0cmVhbTpmdW5jdGlvbih0KXtyZXR1cm4gaSYmcj09PXQ/aTppPWgocChyPXQpKX0scG9zdGNsaXA6ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9aSxkPXQ9ZT1uPW51bGwsZigpKTpwfSxjbGlwRXh0ZW50OmZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPW51bGw9PWk/KGQ9dD1lPW49bnVsbCxSJCk6YyQoZD0raVswXVswXSx0PStpWzBdWzFdLGU9K2lbMV1bMF0sbj0raVsxXVsxXSksZigpKTpudWxsPT1kP251bGw6W1tkLHRdLFtlLG5dXX0sc2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9YVooKGE9K3QpKmMsYSp1LHMsbCksZigpKTphfSx0cmFuc2xhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9YVooYSpjLGEqdSxzPSt0WzBdLGw9K3RbMV0pLGYoKSk6W3MsbF19LHJlZmxlY3RYOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPWFaKGEqKGM9dD8tMToxKSxhKnUscyxsKSxmKCkpOmM8MH0scmVmbGVjdFk6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9YVooYSpjLGEqKHU9dD8tMToxKSxzLGwpLGYoKSk6dTwwfSxmaXRFeHRlbnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4geksobyx0LGUpfSxmaXRTaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIERLKG8sdCxlKX0sZml0V2lkdGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gQksobyx0LGUpfSxmaXRIZWlnaHQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gSEsobyx0LGUpfX19LGdlb1Byb2plY3Rpb246akssZ2VvUHJvamVjdGlvbk11dGF0b3I6R0ssZ2VvTWVyY2F0b3I6ZnVuY3Rpb24gR3B0KCl7cmV0dXJuIHRaKFFLKS5zY2FsZSg5NjEvWHEpfSxnZW9NZXJjYXRvclJhdzpRSyxnZW9OYXR1cmFsRWFydGgxOmZ1bmN0aW9uIFdwdCgpe3JldHVybiBqSyhzWikuc2NhbGUoMTc1LjI5NSl9LGdlb05hdHVyYWxFYXJ0aDFSYXc6c1osZ2VvT3J0aG9ncmFwaGljOmZ1bmN0aW9uIHFwdCgpe3JldHVybiBqSyhsWikuc2NhbGUoMjQ5LjUpLmNsaXBBbmdsZSg5MC4wMDAwMDEpfSxnZW9PcnRob2dyYXBoaWNSYXc6bFosZ2VvU3RlcmVvZ3JhcGhpYzpmdW5jdGlvbiBZcHQoKXtyZXR1cm4gaksoY1opLnNjYWxlKDI1MCkuY2xpcEFuZ2xlKDE0Mil9LGdlb1N0ZXJlb2dyYXBoaWNSYXc6Y1osZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yOmZ1bmN0aW9uIFhwdCgpe3ZhciB0PXRaKHVaKSxlPXQuY2VudGVyLG49dC5yb3RhdGU7cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoWy10WzFdLHRbMF1dKTpbKHQ9ZSgpKVsxXSwtdFswXV19LHQucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oW3RbMF0sdFsxXSx0Lmxlbmd0aD4yP3RbMl0rOTA6OTBdKTpbKHQ9bigpKVswXSx0WzFdLHRbMl0tOTBdfSxuKFswLDAsOTBdKS5zY2FsZSgxNTkuMTU1KX0sZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yUmF3OnVaLGdlb1JvdGF0aW9uOkZYLGdlb1N0cmVhbTp5WSxnZW9UcmFuc2Zvcm06ZnVuY3Rpb24gJHB0KHQpe3JldHVybntzdHJlYW06SUsodCl9fSxjbHVzdGVyOmZ1bmN0aW9uIEtwdCgpe3ZhciB0PWhaLGU9MSxuPTEsaT0hMTtmdW5jdGlvbiByKHIpe3ZhciBvLGE9MDtyLmVhY2hBZnRlcigoZnVuY3Rpb24oZSl7dmFyIG49ZS5jaGlsZHJlbjtuPyhlLng9KGZ1bmN0aW9uIGkodCl7cmV0dXJuIHQucmVkdWNlKGRaLDApL3QubGVuZ3RofSkobiksZS55PShmdW5jdGlvbiByKHQpe3JldHVybiAxK3QucmVkdWNlKHBaLDApfSkobikpOihlLng9bz9hKz10KGUsbyk6MCxlLnk9MCxvPWUpfSkpO3ZhciBzPShmdW5jdGlvbiBsKHQpe2Zvcih2YXIgZTtlPXQuY2hpbGRyZW47KXQ9ZVswXTtyZXR1cm4gdH0pKHIpLGM9KGZ1bmN0aW9uIHUodCl7Zm9yKHZhciBlO2U9dC5jaGlsZHJlbjspdD1lW2UubGVuZ3RoLTFdO3JldHVybiB0fSkociksaD1zLngtdChzLGMpLzIsZD1jLngrdChjLHMpLzI7cmV0dXJuIHIuZWFjaEFmdGVyKGk/ZnVuY3Rpb24odCl7dC54PSh0Lngtci54KSplLHQueT0oci55LXQueSkqbn06ZnVuY3Rpb24odCl7dC54PSh0LngtaCkvKGQtaCkqZSx0Lnk9KDEtKHIueT90Lnkvci55OjEpKSpufSl9cmV0dXJuIHIuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLHIpOnR9LHIuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMSxlPSt0WzBdLG49K3RbMV0scik6aT9udWxsOltlLG5dfSxyLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEwLGU9K3RbMF0sbj0rdFsxXSxyKTppP1tlLG5dOm51bGx9LHJ9LGhpZXJhcmNoeTptWixwYWNrOmZ1bmN0aW9uIFpwdCgpe3ZhciB0PW51bGwsZT0xLG49MSxpPVhaO2Z1bmN0aW9uIHIocil7cmV0dXJuIHIueD1lLzIsci55PW4vMix0P3IuZWFjaEJlZm9yZShaWih0KSkuZWFjaEFmdGVyKEpaKGksLjUpKS5lYWNoQmVmb3JlKFFaKDEpKTpyLmVhY2hCZWZvcmUoWlooS1opKS5lYWNoQWZ0ZXIoSlooWFosMSkpLmVhY2hBZnRlcihKWihpLHIuci9NYXRoLm1pbihlLG4pKSkuZWFjaEJlZm9yZShRWihNYXRoLm1pbihlLG4pLygyKnIucikpKSxyfXJldHVybiByLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1xWihlKSxyKTp0fSxyLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0sbj0rdFsxXSxyKTpbZSxuXX0sci5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6JFooK3QpLHIpOml9LHJ9LHBhY2tTaWJsaW5nczpmdW5jdGlvbiBKcHQodCl7cmV0dXJuIFdaKHQpLHR9LHBhY2tFbmNsb3NlOklaLHBhcnRpdGlvbjpmdW5jdGlvbiBRcHQoKXt2YXIgdD0xLGU9MSxuPTAsaT0hMTtmdW5jdGlvbiByKHIpe3ZhciBvPXIuaGVpZ2h0KzE7cmV0dXJuIHIueDA9ci55MD1uLHIueDE9dCxyLnkxPWUvbyxyLmVhY2hCZWZvcmUoKGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gZnVuY3Rpb24oaSl7aS5jaGlsZHJlbiYmZUooaSxpLngwLHQqKGkuZGVwdGgrMSkvZSxpLngxLHQqKGkuZGVwdGgrMikvZSk7dmFyIHI9aS54MCxvPWkueTAsYT1pLngxLW4scz1pLnkxLW47YTxyJiYocj1hPShyK2EpLzIpLHM8byYmKG89cz0obytzKS8yKSxpLngwPXIsaS55MD1vLGkueDE9YSxpLnkxPXN9fSkoZSxvKSksaSYmci5lYWNoQmVmb3JlKHRKKSxyfXJldHVybiByLnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEhdCxyKTppfSxyLnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K25bMF0sZT0rblsxXSxyKTpbdCxlXX0sci5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LHIpOm59LHJ9LHN0cmF0aWZ5OmZ1bmN0aW9uIHRmdCgpe3ZhciB0PXJKLGU9b0o7ZnVuY3Rpb24gbihuKXt2YXIgaSxyLG8sYSxzLGwsYyx1PW4ubGVuZ3RoLGg9bmV3IEFycmF5KHUpLGQ9e307Zm9yKHI9MDtyPHU7KytyKXM9aFtyXT1uZXcgdlooaT1uW3JdKSxudWxsIT0obD10KGkscixuKSkmJihsKz0iIikmJihkW2M9IiQiKyhzLmlkPWwpXT1jIGluIGQ/aUo6cyk7Zm9yKHI9MDtyPHU7KytyKWlmKHM9aFtyXSxudWxsIT0obD1lKG5bcl0scixuKSkmJihsKz0iIikpe2lmKCEoYT1kWyIkIitsXSkpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2wpO2lmKGE9PT1pSil0aHJvdyBuZXcgRXJyb3IoImFtYmlndW91czogIitsKTthLmNoaWxkcmVuP2EuY2hpbGRyZW4ucHVzaChzKTphLmNoaWxkcmVuPVtzXSxzLnBhcmVudD1hfWVsc2V7aWYobyl0aHJvdyBuZXcgRXJyb3IoIm11bHRpcGxlIHJvb3RzIik7bz1zfWlmKCFvKXRocm93IG5ldyBFcnJvcigibm8gcm9vdCIpO2lmKG8ucGFyZW50PW5KLG8uZWFjaEJlZm9yZSgoZnVuY3Rpb24odCl7dC5kZXB0aD10LnBhcmVudC5kZXB0aCsxLC0tdX0pKS5lYWNoQmVmb3JlKHlaKSxvLnBhcmVudD1udWxsLHU+MCl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIik7cmV0dXJuIG99cmV0dXJuIG4uaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9WVooZSksbik6dH0sbi5wYXJlbnRJZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1ZWih0KSxuKTplfSxufSx0cmVlOmZ1bmN0aW9uIGVmdCgpe3ZhciB0PWFKLGU9MSxuPTEsaT1udWxsO2Z1bmN0aW9uIHIocil7dmFyIGw9KGZ1bmN0aW9uIGModCl7Zm9yKHZhciBlLG4saSxyLG8sYT1uZXcgaEoodCwwKSxzPVthXTtlPXMucG9wKCk7KWlmKGk9ZS5fLmNoaWxkcmVuKWZvcihlLmNoaWxkcmVuPW5ldyBBcnJheShvPWkubGVuZ3RoKSxyPW8tMTtyPj0wOy0tcilzLnB1c2gobj1lLmNoaWxkcmVuW3JdPW5ldyBoSihpW3JdLHIpKSxuLnBhcmVudD1lO3JldHVybihhLnBhcmVudD1uZXcgaEoobnVsbCwwKSkuY2hpbGRyZW49W2FdLGF9KShyKTtpZihsLmVhY2hBZnRlcihvKSxsLnBhcmVudC5tPS1sLnosbC5lYWNoQmVmb3JlKGEpLGkpci5lYWNoQmVmb3JlKHMpO2Vsc2V7dmFyIHU9cixoPXIsZD1yO3IuZWFjaEJlZm9yZSgoZnVuY3Rpb24odCl7dC54PHUueCYmKHU9dCksdC54PmgueCYmKGg9dCksdC5kZXB0aD5kLmRlcHRoJiYoZD10KX0pKTt2YXIgcD11PT09aD8xOnQodSxoKS8yLGY9cC11LngsbT1lLyhoLngrcCtmKSxnPW4vKGQuZGVwdGh8fDEpO3IuZWFjaEJlZm9yZSgoZnVuY3Rpb24odCl7dC54PSh0LngrZikqbSx0Lnk9dC5kZXB0aCpnfSkpfXJldHVybiByfWZ1bmN0aW9uIG8oZSl7dmFyIG49ZS5jaGlsZHJlbixpPWUucGFyZW50LmNoaWxkcmVuLHI9ZS5pP2lbZS5pLTFdOm51bGw7aWYobil7IShmdW5jdGlvbiBvKHQpe2Zvcih2YXIgZSxuPTAsaT0wLHI9dC5jaGlsZHJlbixvPXIubGVuZ3RoOy0tbz49MDspKGU9cltvXSkueis9bixlLm0rPW4sbis9ZS5zKyhpKz1lLmMpfSkoZSk7dmFyIGE9KG5bMF0ueituW24ubGVuZ3RoLTFdLnopLzI7cj8oZS56PXIueit0KGUuXyxyLl8pLGUubT1lLnotYSk6ZS56PWF9ZWxzZSByJiYoZS56PXIueit0KGUuXyxyLl8pKTtlLnBhcmVudC5BPShmdW5jdGlvbiBzKGUsbixpKXtpZihuKXtmb3IodmFyIHIsbz1lLGE9ZSxzPW4sbD1vLnBhcmVudC5jaGlsZHJlblswXSxjPW8ubSx1PWEubSxoPXMubSxkPWwubTtzPWxKKHMpLG89c0oobykscyYmbzspbD1zSihsKSwoYT1sSihhKSkuYT1lLChyPXMueitoLW8uei1jK3Qocy5fLG8uXykpPjAmJihjSih1SihzLGUsaSksZSxyKSxjKz1yLHUrPXIpLGgrPXMubSxjKz1vLm0sZCs9bC5tLHUrPWEubTtzJiYhbEooYSkmJihhLnQ9cyxhLm0rPWgtdSksbyYmIXNKKGwpJiYobC50PW8sbC5tKz1jLWQsaT1lKX1yZXR1cm4gaX0pKGUscixlLnBhcmVudC5BfHxpWzBdKX1mdW5jdGlvbiBhKHQpe3QuXy54PXQueit0LnBhcmVudC5tLHQubSs9dC5wYXJlbnQubX1mdW5jdGlvbiBzKHQpe3QueCo9ZSx0Lnk9dC5kZXB0aCpufXJldHVybiByLnNlcGFyYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxyKTp0fSxyLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ITEsZT0rdFswXSxuPSt0WzFdLHIpOmk/bnVsbDpbZSxuXX0sci5ub2RlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMCxlPSt0WzBdLG49K3RbMV0scik6aT9bZSxuXTpudWxsfSxyfSx0cmVlbWFwOmZ1bmN0aW9uIG5mdCgpe3ZhciB0PW1KLGU9ITEsbj0xLGk9MSxyPVswXSxvPVhaLGE9WFoscz1YWixsPVhaLGM9WFo7ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdC54MD10LnkwPTAsdC54MT1uLHQueTE9aSx0LmVhY2hCZWZvcmUoaCkscj1bMF0sZSYmdC5lYWNoQmVmb3JlKHRKKSx0fWZ1bmN0aW9uIGgoZSl7dmFyIG49cltlLmRlcHRoXSxpPWUueDArbix1PWUueTArbixoPWUueDEtbixkPWUueTEtbjtoPGkmJihpPWg9KGkraCkvMiksZDx1JiYodT1kPSh1K2QpLzIpLGUueDA9aSxlLnkwPXUsZS54MT1oLGUueTE9ZCxlLmNoaWxkcmVuJiYobj1yW2UuZGVwdGgrMV09byhlKS8yLGkrPWMoZSktbix1Kz1hKGUpLW4sKGgtPXMoZSktbik8aSYmKGk9aD0oaStoKS8yKSwoZC09bChlKS1uKTx1JiYodT1kPSh1K2QpLzIpLHQoZSxpLHUsaCxkKSl9cmV0dXJuIHUucm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ISF0LHUpOmV9LHUuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdFswXSxpPSt0WzFdLHUpOltuLGldfSx1LnRpbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9WVooZSksdSk6dH0sdS5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3UucGFkZGluZ0lubmVyKHQpLnBhZGRpbmdPdXRlcih0KTp1LnBhZGRpbmdJbm5lcigpfSx1LnBhZGRpbmdJbm5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OiRaKCt0KSx1KTpvfSx1LnBhZGRpbmdPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD91LnBhZGRpbmdUb3AodCkucGFkZGluZ1JpZ2h0KHQpLnBhZGRpbmdCb3R0b20odCkucGFkZGluZ0xlZnQodCk6dS5wYWRkaW5nVG9wKCl9LHUucGFkZGluZ1RvcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OiRaKCt0KSx1KTphfSx1LnBhZGRpbmdSaWdodD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OiRaKCt0KSx1KTpzfSx1LnBhZGRpbmdCb3R0b209ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDokWigrdCksdSk6bH0sdS5wYWRkaW5nTGVmdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OiRaKCt0KSx1KTpjfSx1fSx0cmVlbWFwQmluYXJ5OmZ1bmN0aW9uIGlmdCh0LGUsbixpLHIpe3ZhciBvLGEscz10LmNoaWxkcmVuLGw9cy5sZW5ndGgsYz1uZXcgQXJyYXkobCsxKTtmb3IoY1swXT1hPW89MDtvPGw7KytvKWNbbysxXT1hKz1zW29dLnZhbHVlOyEoZnVuY3Rpb24gdChlLG4saSxyLG8sYSxsKXtpZihlPj1uLTEpe3ZhciB1PXNbZV07cmV0dXJuIHUueDA9cix1LnkwPW8sdS54MT1hLHZvaWQodS55MT1sKX1mb3IodmFyIGg9Y1tlXSxkPWkvMitoLHA9ZSsxLGY9bi0xO3A8Zjspe3ZhciBtPXArZj4+PjE7Y1ttXTxkP3A9bSsxOmY9bX1kLWNbcC0xXTxjW3BdLWQmJmUrMTxwJiYtLXA7dmFyIGc9Y1twXS1oLF89aS1nO2lmKGEtcj5sLW8pe3ZhciB5PShyKl8rYSpnKS9pO3QoZSxwLGcscixvLHksbCksdChwLG4sXyx5LG8sYSxsKX1lbHNle3ZhciB2PShvKl8rbCpnKS9pO3QoZSxwLGcscixvLGEsdiksdChwLG4sXyxyLHYsYSxsKX19KSgwLGwsdC52YWx1ZSxlLG4saSxyKX0sdHJlZW1hcERpY2U6ZUosdHJlZW1hcFNsaWNlOmRKLHRyZWVtYXBTbGljZURpY2U6ZnVuY3Rpb24gcmZ0KHQsZSxuLGkscil7KDEmdC5kZXB0aD9kSjplSikodCxlLG4saSxyKX0sdHJlZW1hcFNxdWFyaWZ5Om1KLHRyZWVtYXBSZXNxdWFyaWZ5OmdKLGludGVycG9sYXRlOkJRLGludGVycG9sYXRlQXJyYXk6UFEsaW50ZXJwb2xhdGVCYXNpczp4USxpbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkOndRLGludGVycG9sYXRlRGF0ZTpOUSxpbnRlcnBvbGF0ZU51bWJlcjpJUSxpbnRlcnBvbGF0ZU9iamVjdDpSUSxpbnRlcnBvbGF0ZVJvdW5kOmZ1bmN0aW9uIG9mdCh0LGUpe3JldHVybiBlLT10PSt0LGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKHQrZSpuKX19LGludGVycG9sYXRlU3RyaW5nOkRRLGludGVycG9sYXRlVHJhbnNmb3JtQ3NzOllRLGludGVycG9sYXRlVHJhbnNmb3JtU3ZnOiRRLGludGVycG9sYXRlWm9vbTpmdW5jdGlvbiBhZnQodCxlKXt2YXIgbixpLHI9dFswXSxvPXRbMV0sYT10WzJdLHM9ZVsyXSxsPWVbMF0tcixjPWVbMV0tbyx1PWwqbCtjKmM7aWYodTwxZS0xMilpPU1hdGgubG9nKHMvYSkvWlEsbj1mdW5jdGlvbih0KXtyZXR1cm5bcit0Kmwsbyt0KmMsYSpNYXRoLmV4cChaUSp0KmkpXX07ZWxzZXt2YXIgaD1NYXRoLnNxcnQodSksZD0ocypzLWEqYSs0KnUpLygyKmEqMipoKSxwPShzKnMtYSphLTQqdSkvKDIqcyoyKmgpLGY9TWF0aC5sb2coTWF0aC5zcXJ0KGQqZCsxKS1kKSxtPU1hdGgubG9nKE1hdGguc3FydChwKnArMSktcCk7aT0obS1mKS9aUSxuPWZ1bmN0aW9uKHQpe3ZhciBlPXQqaSxuPUpRKGYpLHM9YS8oMipoKSoobiooZnVuY3Rpb24gdSh0KXtyZXR1cm4oKHQ9TWF0aC5leHAoMip0KSktMSkvKHQrMSl9KShaUSplK2YpLShmdW5jdGlvbiBkKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSktMS90KS8yfSkoZikpO3JldHVybltyK3MqbCxvK3MqYyxhKm4vSlEoWlEqZStmKV19fXJldHVybiBuLmR1cmF0aW9uPTFlMyppLG59LGludGVycG9sYXRlUmdiOkNRLGludGVycG9sYXRlUmdiQmFzaXM6a1EsaW50ZXJwb2xhdGVSZ2JCYXNpc0Nsb3NlZDpMUSxpbnRlcnBvbGF0ZUhzbDp0MSxpbnRlcnBvbGF0ZUhzbExvbmc6ZTEsaW50ZXJwb2xhdGVMYWI6ZnVuY3Rpb24gc2Z0KHQsZSl7dmFyIG49VFEoKHQ9clEodCkpLmwsKGU9clEoZSkpLmwpLGk9VFEodC5hLGUuYSkscj1UUSh0LmIsZS5iKSxvPVRRKHQub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5sPW4oZSksdC5hPWkoZSksdC5iPXIoZSksdC5vcGFjaXR5PW8oZSksdCsiIn19LGludGVycG9sYXRlSGNsOmkxLGludGVycG9sYXRlSGNsTG9uZzpyMSxpbnRlcnBvbGF0ZUN1YmVoZWxpeDphMSxpbnRlcnBvbGF0ZUN1YmVoZWxpeExvbmc6czEscXVhbnRpemU6ZnVuY3Rpb24gbGZ0KHQsZSl7Zm9yKHZhciBuPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSluW2ldPXQoaS8oZS0xKSk7cmV0dXJuIG59LHBhdGg6cDEscG9seWdvbkFyZWE6ZnVuY3Rpb24gY2Z0KHQpe2Zvcih2YXIgZSxuPS0xLGk9dC5sZW5ndGgscj10W2ktMV0sbz0wOysrbjxpOylvKz0oZT1yKVsxXSoocj10W25dKVswXS1lWzBdKnJbMV07cmV0dXJuIG8vMn0scG9seWdvbkNlbnRyb2lkOmZ1bmN0aW9uIHVmdCh0KXtmb3IodmFyIGUsbixpPS0xLHI9dC5sZW5ndGgsbz0wLGE9MCxzPXRbci0xXSxsPTA7KytpPHI7KWwrPW49KGU9cylbMF0qKHM9dFtpXSlbMV0tc1swXSplWzFdLG8rPShlWzBdK3NbMF0pKm4sYSs9KGVbMV0rc1sxXSkqbjtyZXR1cm5bby8obCo9MyksYS9sXX0scG9seWdvbkh1bGw6ZnVuY3Rpb24gaGZ0KHQpe2lmKChuPXQubGVuZ3RoKTwzKXJldHVybiBudWxsO3ZhciBlLG4saT1uZXcgQXJyYXkobikscj1uZXcgQXJyYXkobik7Zm9yKGU9MDtlPG47KytlKWlbZV09Wyt0W2VdWzBdLCt0W2VdWzFdLGVdO2ZvcihpLnNvcnQobTEpLGU9MDtlPG47KytlKXJbZV09W2lbZV1bMF0sLWlbZV1bMV1dO3ZhciBvPWcxKGkpLGE9ZzEocikscz1hWzBdPT09b1swXSxsPWFbYS5sZW5ndGgtMV09PT1vW28ubGVuZ3RoLTFdLGM9W107Zm9yKGU9by5sZW5ndGgtMTtlPj0wOy0tZSljLnB1c2godFtpW29bZV1dWzJdXSk7Zm9yKGU9K3M7ZTxhLmxlbmd0aC1sOysrZSljLnB1c2godFtpW2FbZV1dWzJdXSk7cmV0dXJuIGN9LHBvbHlnb25Db250YWluczpmdW5jdGlvbiBkZnQodCxlKXtmb3IodmFyIG4saSxyPXQubGVuZ3RoLG89dFtyLTFdLGE9ZVswXSxzPWVbMV0sbD1vWzBdLGM9b1sxXSx1PSExLGg9MDtoPHI7KytoKW49KG89dFtoXSlbMF0sKGk9b1sxXSk+cyE9Yz5zJiZhPChsLW4pKihzLWkpLyhjLWkpK24mJih1PSF1KSxsPW4sYz1pO3JldHVybiB1fSxwb2x5Z29uTGVuZ3RoOmZ1bmN0aW9uIHBmdCh0KXtmb3IodmFyIGUsbixpPS0xLHI9dC5sZW5ndGgsbz10W3ItMV0sYT1vWzBdLHM9b1sxXSxsPTA7KytpPHI7KWU9YSxuPXMsZS09YT0obz10W2ldKVswXSxuLT1zPW9bMV0sbCs9TWF0aC5zcXJ0KGUqZStuKm4pO3JldHVybiBsfSxxdWFkdHJlZTp4MSxxdWV1ZTpxMSxyYW5kb21Vbmlmb3JtOlgxLHJhbmRvbU5vcm1hbDokMSxyYW5kb21Mb2dOb3JtYWw6SzEscmFuZG9tQmF0ZXM6SjEscmFuZG9tSXJ3aW5IYWxsOloxLHJhbmRvbUV4cG9uZW50aWFsOlExLHJlcXVlc3Q6dDAsaHRtbDpuMCxqc29uOmkwLHRleHQ6cjAseG1sOm8wLGNzdjpsMCx0c3Y6YzAsc2NhbGVCYW5kOlAwLHNjYWxlUG9pbnQ6ZnVuY3Rpb24gZmZ0KCl7cmV0dXJuIE4wKFAwKCkucGFkZGluZ0lubmVyKDEpKX0sc2NhbGVJZGVudGl0eTpmdW5jdGlvbiB0KCl7dmFyIGU9WzAsMV07ZnVuY3Rpb24gbih0KXtyZXR1cm4rdH1yZXR1cm4gbi5pbnZlcnQ9bixuLmRvbWFpbj1uLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPUMwLmNhbGwodCxqMiksbik6ZS5zbGljZSgpfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLmRvbWFpbihlKX0sZDUobil9LHNjYWxlTGluZWFyOmZ1bmN0aW9uIHQoKXt2YXIgZT0kMihXMixOMik7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiBYMihlLHQoKSl9LGQ1KGUpfSxzY2FsZUxvZzpmdW5jdGlvbiB0KCl7dmFyIGU9JDIoZjUsbTUpLmRvbWFpbihbMSwxMF0pLG49ZS5kb21haW4saT0xMCxyPXk1KDEwKSxvPV81KDEwKTtmdW5jdGlvbiBhKCl7cmV0dXJuIHI9eTUoaSksbz1fNShpKSxuKClbMF08MCYmKHI9djUociksbz12NShvKSksZX1yZXR1cm4gZS5iYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0LGEoKSk6aX0sZS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG4odCksYSgpKTpuKCl9LGUudGlja3M9ZnVuY3Rpb24odCl7dmFyIGUsYT1uKCkscz1hWzBdLGw9YVthLmxlbmd0aC0xXTsoZT1sPHMpJiYoZD1zLHM9bCxsPWQpO3ZhciBjLHUsaCxkPXIocykscD1yKGwpLGY9bnVsbD09dD8xMDordCxtPVtdO2lmKCEoaSUxKSYmcC1kPGYpe2lmKGQ9TWF0aC5yb3VuZChkKS0xLHA9TWF0aC5yb3VuZChwKSsxLHM+MCl7Zm9yKDtkPHA7KytkKWZvcih1PTEsYz1vKGQpO3U8aTsrK3UpaWYoISgoaD1jKnUpPHMpKXtpZihoPmwpYnJlYWs7bS5wdXNoKGgpfX1lbHNlIGZvcig7ZDxwOysrZClmb3IodT1pLTEsYz1vKGQpO3U+PTE7LS11KWlmKCEoKGg9Yyp1KTxzKSl7aWYoaD5sKWJyZWFrO20ucHVzaChoKX19ZWxzZSBtPV8wKGQscCxNYXRoLm1pbihwLWQsZikpLm1hcChvKTtyZXR1cm4gZT9tLnJldmVyc2UoKTptfSxlLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxuKXtpZihudWxsPT1uJiYobj0xMD09PWk/Ii4wZSI6IiwiKSwiZnVuY3Rpb24iIT10eXBlb2YgbiYmKG49bDUobikpLHQ9PT0xLzApcmV0dXJuIG47bnVsbD09dCYmKHQ9MTApO3ZhciBhPU1hdGgubWF4KDEsaSp0L2UudGlja3MoKS5sZW5ndGgpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT10L28oTWF0aC5yb3VuZChyKHQpKSk7cmV0dXJuIGUqaTxpLS41JiYoZSo9aSksZTw9YT9uKHQpOiIifX0sZS5uaWNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4ocDUobigpLHtmbG9vcjpmdW5jdGlvbih0KXtyZXR1cm4gbyhNYXRoLmZsb29yKHIodCkpKX0sY2VpbDpmdW5jdGlvbih0KXtyZXR1cm4gbyhNYXRoLmNlaWwocih0KSkpfX0pKX0sZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIFgyKGUsdCgpLmJhc2UoaSkpfSxlfSxzY2FsZU9yZGluYWw6TDAsc2NhbGVJbXBsaWNpdDprMCxzY2FsZVBvdzp4NSxzY2FsZVNxcnQ6ZnVuY3Rpb24gbWZ0KCl7cmV0dXJuIHg1KCkuZXhwb25lbnQoLjUpfSxzY2FsZVF1YW50aWxlOmZ1bmN0aW9uIHQoKXt2YXIgZT1bXSxuPVtdLGk9W107ZnVuY3Rpb24gcigpe3ZhciB0PTAscj1NYXRoLm1heCgxLG4ubGVuZ3RoKTtmb3IoaT1uZXcgQXJyYXkoci0xKTsrK3Q8cjspaVt0LTFdPWIwKGUsdC9yKTtyZXR1cm4gb31mdW5jdGlvbiBvKHQpe2lmKCFpc05hTih0PSt0KSlyZXR1cm4gbltkMChpLHQpXX1yZXR1cm4gby5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIHI9bi5pbmRleE9mKHQpO3JldHVybiByPDA/W05hTixOYU5dOltyPjA/aVtyLTFdOmVbMF0scjxpLmxlbmd0aD9pW3JdOmVbZS5sZW5ndGgtMV1dfSxvLmRvbWFpbj1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZS5zbGljZSgpO2U9W107Zm9yKHZhciBuLGk9MCxvPXQubGVuZ3RoO2k8bzsrK2kpbnVsbD09KG49dFtpXSl8fGlzTmFOKG49K24pfHxlLnB1c2gobik7cmV0dXJuIGUuc29ydCh1MCkscigpfSxvLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPUEwLmNhbGwodCkscigpKTpuLnNsaWNlKCl9LG8ucXVhbnRpbGVzPWZ1bmN0aW9uKCl7cmV0dXJuIGkuc2xpY2UoKX0sby5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoKS5kb21haW4oZSkucmFuZ2Uobil9LG99LHNjYWxlUXVhbnRpemU6ZnVuY3Rpb24gdCgpe3ZhciBlPTAsbj0xLGk9MSxyPVsuNV0sbz1bMCwxXTtmdW5jdGlvbiBhKHQpe2lmKHQ8PXQpcmV0dXJuIG9bZDAocix0LDAsaSldfWZ1bmN0aW9uIHMoKXt2YXIgdD0tMTtmb3Iocj1uZXcgQXJyYXkoaSk7Kyt0PGk7KXJbdF09KCh0KzEpKm4tKHQtaSkqZSkvKGkrMSk7cmV0dXJuIGF9cmV0dXJuIGEuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLG49K3RbMV0scygpKTpbZSxuXX0sYS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0obz1BMC5jYWxsKHQpKS5sZW5ndGgtMSxzKCkpOm8uc2xpY2UoKX0sYS5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIGE9by5pbmRleE9mKHQpO3JldHVybiBhPDA/W05hTixOYU5dOmE8MT9bZSxyWzBdXTphPj1pP1tyW2ktMV0sbl06W3JbYS0xXSxyW2FdXX0sYS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoKS5kb21haW4oW2Usbl0pLnJhbmdlKG8pfSxkNShhKX0sc2NhbGVUaHJlc2hvbGQ6ZnVuY3Rpb24gdCgpe3ZhciBlPVsuNV0sbj1bMCwxXSxpPTE7ZnVuY3Rpb24gcih0KXtpZih0PD10KXJldHVybiBuW2QwKGUsdCwwLGkpXX1yZXR1cm4gci5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9QTAuY2FsbCh0KSxpPU1hdGgubWluKGUubGVuZ3RoLG4ubGVuZ3RoLTEpLHIpOmUuc2xpY2UoKX0sci5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1BMC5jYWxsKHQpLGk9TWF0aC5taW4oZS5sZW5ndGgsbi5sZW5ndGgtMSkscik6bi5zbGljZSgpfSxyLmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgaT1uLmluZGV4T2YodCk7cmV0dXJuW2VbaS0xXSxlW2ldXX0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoKS5kb21haW4oZSkucmFuZ2Uobil9LHJ9LHNjYWxlVGltZTpmdW5jdGlvbiBnZnQoKXtyZXR1cm4gQzQoajUsVjUsQjUsejUsTzUsUjUsSTUsQzUscjMpLmRvbWFpbihbbmV3IERhdGUoMmUzLDAsMSksbmV3IERhdGUoMmUzLDAsMildKX0sc2NhbGVVdGM6ZnVuY3Rpb24gX2Z0KCl7cmV0dXJuIEM0KFE1LFo1LFg1LHE1LFc1LEc1LEk1LEM1LG8zKS5kb21haW4oW0RhdGUuVVRDKDJlMywwLDEpLERhdGUuVVRDKDJlMywwLDIpXSl9LHNjaGVtZUNhdGVnb3J5MTA6azQsc2NoZW1lQ2F0ZWdvcnkyMGI6TDQsc2NoZW1lQ2F0ZWdvcnkyMGM6UDQsc2NoZW1lQ2F0ZWdvcnkyMDpONCxpbnRlcnBvbGF0ZUN1YmVoZWxpeERlZmF1bHQ6STQsaW50ZXJwb2xhdGVSYWluYm93OmZ1bmN0aW9uIHlmdCh0KXsodDwwfHx0PjEpJiYodC09TWF0aC5mbG9vcih0KSk7dmFyIGU9TWF0aC5hYnModC0uNSk7cmV0dXJuIHo0Lmg9MzYwKnQtMTAwLHo0LnM9MS41LTEuNSplLHo0Lmw9LjgtLjkqZSx6NCsiIn0saW50ZXJwb2xhdGVXYXJtOlI0LGludGVycG9sYXRlQ29vbDpPNCxpbnRlcnBvbGF0ZVZpcmlkaXM6QjQsaW50ZXJwb2xhdGVNYWdtYTpINCxpbnRlcnBvbGF0ZUluZmVybm86RjQsaW50ZXJwb2xhdGVQbGFzbWE6VjQsc2NhbGVTZXF1ZW50aWFsOmZ1bmN0aW9uIHQoZSl7dmFyIG49MCxpPTEscj0hMTtmdW5jdGlvbiBvKHQpe3ZhciBvPSh0LW4pLyhpLW4pO3JldHVybiBlKHI/TWF0aC5tYXgoMCxNYXRoLm1pbigxLG8pKTpvKX1yZXR1cm4gby5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3RbMF0saT0rdFsxXSxvKTpbbixpXX0sby5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0hIXQsbyk6cn0sby5pbnRlcnBvbGF0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxvKTplfSxvLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdChlKS5kb21haW4oW24saV0pLmNsYW1wKHIpfSxkNShvKX0sY3JlYXRlOmZ1bmN0aW9uIHZmdCh0KXtyZXR1cm4gdDkoWTQodCkuY2FsbChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX0sY3JlYXRvcjpZNCxsb2NhbDpOOSxtYXRjaGVyOmU2LG1vdXNlOmZ1bmN0aW9uIGJmdCh0KXt2YXIgZT1SOSgpO3JldHVybiBlLmNoYW5nZWRUb3VjaGVzJiYoZT1lLmNoYW5nZWRUb3VjaGVzWzBdKSxPOSh0LGUpfSxuYW1lc3BhY2U6RzQsbmFtZXNwYWNlczpqNCxjbGllbnRQb2ludDpPOSxzZWxlY3Q6dDksc2VsZWN0QWxsOmZ1bmN0aW9uIHhmdCh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/bmV3IEo2KFtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQpXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IEo2KFtudWxsPT10P1tdOnRdLFo2KX0sc2VsZWN0aW9uOlE2LHNlbGVjdG9yOiQ0LHNlbGVjdG9yQWxsOlo0LHN0eWxlOl82LHRvdWNoOmZ1bmN0aW9uIHdmdCh0LGUsbil7YXJndW1lbnRzLmxlbmd0aDwzJiYobj1lLGU9UjkoKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciBpLHI9MCxvPWU/ZS5sZW5ndGg6MDtyPG87KytyKWlmKChpPWVbcl0pLmlkZW50aWZpZXI9PT1uKXJldHVybiBPOSh0LGkpO3JldHVybiBudWxsfSx0b3VjaGVzOmZ1bmN0aW9uIFNmdCh0LGUpe251bGw9PWUmJihlPVI5KCkudG91Y2hlcyk7Zm9yKHZhciBuPTAsaT1lP2UubGVuZ3RoOjAscj1uZXcgQXJyYXkoaSk7bjxpOysrbilyW25dPU85KHQsZVtuXSk7cmV0dXJuIHJ9LHdpbmRvdzpwNixnZXQgZXZlbnQoKXtyZXR1cm4gVTZ9LGN1c3RvbUV2ZW50OmZ1bmN0aW9uIE1mdCh0LGUsbixpKXt2YXIgcj1VNjt0LnNvdXJjZUV2ZW50PVU2LFU2PXQ7dHJ5e3JldHVybiBlLmFwcGx5KG4saSl9ZmluYWxseXtVNj1yfX0sYXJjOmZ1bmN0aW9uIEVmdCgpe3ZhciB0PW44LGU9aTgsbj1VOSgwKSxpPW51bGwscj1yOCxvPW84LGE9YTgscz1udWxsO2Z1bmN0aW9uIGwoKXt2YXIgbCxjLHU9K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpLGg9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLGQ9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyktSjkscD1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1KOSxmPWo5KHAtZCksbT1wPmQ7aWYoc3x8KHM9bD1WOSgpKSxoPHUmJihjPWgsaD11LHU9YyksaD5LOSlpZihmPlE5LUs5KXMubW92ZVRvKGgqVzkoZCksaCpYOShkKSkscy5hcmMoMCwwLGgsZCxwLCFtKSx1Pks5JiYocy5tb3ZlVG8odSpXOShwKSx1Klg5KHApKSxzLmFyYygwLDAsdSxwLGQsbSkpO2Vsc2V7dmFyIGcsXyx5PWQsdj1wLGI9ZCx4PXAsdz1mLFM9ZixNPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsRT1NPks5JiYoaT8raS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6JDkodSp1K2gqaCkpLFQ9WTkoajkoaC11KS8yLCtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksQz1ULEE9VDtpZihFPks5KXt2YXIgaz1lOChFL3UqWDkoTSkpLEw9ZTgoRS9oKlg5KE0pKTsody09MiprKT5LOT8oYis9ayo9bT8xOi0xLHgtPWspOih3PTAsYj14PShkK3ApLzIpLChTLT0yKkwpPks5Pyh5Kz1MKj1tPzE6LTEsdi09TCk6KFM9MCx5PXY9KGQrcCkvMil9dmFyIFA9aCpXOSh5KSxOPWgqWDkoeSksST11Klc5KHgpLFI9dSpYOSh4KTtpZihUPks5KXt2YXIgTz1oKlc5KHYpLHo9aCpYOSh2KSxEPXUqVzkoYiksQj11Klg5KGIpO2lmKGY8Wjkpe3ZhciBIPXc+Szk/czgoUCxOLEQsQixPLHosSSxSKTpbSSxSXSxGPVAtSFswXSxWPU4tSFsxXSxVPU8tSFswXSxqPXotSFsxXSxHPTEvWDkodDgoKEYqVStWKmopLygkOShGKkYrVipWKSokOShVKlUraipqKSkpLzIpLFc9JDkoSFswXSpIWzBdK0hbMV0qSFsxXSk7Qz1ZOShULCh1LVcpLyhHLTEpKSxBPVk5KFQsKGgtVykvKEcrMSkpfX1TPks5P0E+Szk/KGc9bDgoRCxCLFAsTixoLEEsbSksXz1sOChPLHosSSxSLGgsQSxtKSxzLm1vdmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEE8VD9zLmFyYyhnLmN4LGcuY3ksQSxHOShnLnkwMSxnLngwMSksRzkoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEEsRzkoZy55MDEsZy54MDEpLEc5KGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLGgsRzkoZy5jeStnLnkxMSxnLmN4K2cueDExKSxHOShfLmN5K18ueTExLF8uY3grXy54MTEpLCFtKSxzLmFyYyhfLmN4LF8uY3ksQSxHOShfLnkxMSxfLngxMSksRzkoXy55MDEsXy54MDEpLCFtKSkpOihzLm1vdmVUbyhQLE4pLHMuYXJjKDAsMCxoLHksdiwhbSkpOnMubW92ZVRvKFAsTiksdT5LOSYmdz5LOT9DPks5PyhnPWw4KEksUixPLHosdSwtQyxtKSxfPWw4KFAsTixELEIsdSwtQyxtKSxzLmxpbmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEM8VD9zLmFyYyhnLmN4LGcuY3ksQyxHOShnLnkwMSxnLngwMSksRzkoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEMsRzkoZy55MDEsZy54MDEpLEc5KGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLHUsRzkoZy5jeStnLnkxMSxnLmN4K2cueDExKSxHOShfLmN5K18ueTExLF8uY3grXy54MTEpLG0pLHMuYXJjKF8uY3gsXy5jeSxDLEc5KF8ueTExLF8ueDExKSxHOShfLnkwMSxfLngwMSksIW0pKSk6cy5hcmMoMCwwLHUseCxiLG0pOnMubGluZVRvKEksUil9ZWxzZSBzLm1vdmVUbygwLDApO2lmKHMuY2xvc2VQYXRoKCksbClyZXR1cm4gcz1udWxsLGwrIiJ8fG51bGx9cmV0dXJuIGwuY2VudHJvaWQ9ZnVuY3Rpb24oKXt2YXIgbj0oK3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzIsaT0oK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArby5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzItWjkvMjtyZXR1cm5bVzkoaSkqbixYOShpKSpuXX0sbC5pbm5lclJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlU5KCtlKSxsKTp0fSxsLm91dGVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGwpOmV9LGwuY29ybmVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGwpOm59LGwucGFkUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxsKTppfSxsLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSgrdCksbCk6cn0sbC5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxsKTpvfSxsLnBhZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGwpOmF9LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1udWxsPT10P251bGw6dCxsKTpzfSxsfSxhcmVhOmY4LGxpbmU6cDgscGllOmZ1bmN0aW9uIFRmdCgpe3ZhciB0PWc4LGU9bTgsbj1udWxsLGk9VTkoMCkscj1VOShROSksbz1VOSgwKTtmdW5jdGlvbiBhKGEpe3ZhciBzLGwsYyx1LGgsZD1hLmxlbmd0aCxwPTAsZj1uZXcgQXJyYXkoZCksbT1uZXcgQXJyYXkoZCksZz0raS5hcHBseSh0aGlzLGFyZ3VtZW50cyksXz1NYXRoLm1pbihROSxNYXRoLm1heCgtUTksci5hcHBseSh0aGlzLGFyZ3VtZW50cyktZykpLHk9TWF0aC5taW4oTWF0aC5hYnMoXykvZCxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdj15KihfPDA/LTE6MSk7Zm9yKHM9MDtzPGQ7KytzKShoPW1bZltzXT1zXT0rdChhW3NdLHMsYSkpPjAmJihwKz1oKTtmb3IobnVsbCE9ZT9mLnNvcnQoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUobVt0XSxtW25dKX0pKTpudWxsIT1uJiZmLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oYVt0XSxhW2VdKX0pKSxzPTAsYz1wPyhfLWQqdikvcDowO3M8ZDsrK3MsZz11KW1bbD1mW3NdXT17ZGF0YTphW2xdLGluZGV4OnMsdmFsdWU6aD1tW2xdLHN0YXJ0QW5nbGU6ZyxlbmRBbmdsZTp1PWcrKGg+MD9oKmM6MCkrdixwYWRBbmdsZTp5fTtyZXR1cm4gbX1yZXR1cm4gYS52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlU5KCtlKSxhKTp0fSxhLnNvcnRWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuPW51bGwsYSk6ZX0sYS5zb3J0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsZT1udWxsLGEpOm59LGEuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxhKTppfSxhLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoK3QpLGEpOnJ9LGEucGFkQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSgrdCksYSk6b30sYX0sYXJlYVJhZGlhbDp3OCxyYWRpYWxBcmVhOnc4LGxpbmVSYWRpYWw6eDgscmFkaWFsTGluZTp4OCxwb2ludFJhZGlhbDpTOCxsaW5rSG9yaXpvbnRhbDpmdW5jdGlvbiBDZnQoKXtyZXR1cm4gQzgoQTgpfSxsaW5rVmVydGljYWw6ZnVuY3Rpb24gQWZ0KCl7cmV0dXJuIEM4KGs4KX0sbGlua1JhZGlhbDpmdW5jdGlvbiBrZnQoKXt2YXIgdD1DOChMOCk7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdH0sc3ltYm9sOmZ1bmN0aW9uIExmdCgpe3ZhciB0PVU5KFA4KSxlPVU5KDY0KSxuPW51bGw7ZnVuY3Rpb24gaSgpe3ZhciBpO2lmKG58fChuPWk9VjkoKSksdC5hcHBseSh0aGlzLGFyZ3VtZW50cykuZHJhdyhuLCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksaSlyZXR1cm4gbj1udWxsLGkrIiJ8fG51bGx9cmV0dXJuIGkudHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlU5KGUpLGkpOnR9LGkuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlU5KCt0KSxpKTplfSxpLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9udWxsOnQsaSk6bn0saX0sc3ltYm9sczpYOCxzeW1ib2xDaXJjbGU6UDgsc3ltYm9sQ3Jvc3M6Tjgsc3ltYm9sRGlhbW9uZDpPOCxzeW1ib2xTcXVhcmU6Rjgsc3ltYm9sU3RhcjpIOCxzeW1ib2xUcmlhbmdsZTpVOCxzeW1ib2xXeWU6WTgsY3VydmVCYXNpc0Nsb3NlZDpmdW5jdGlvbiBQZnQodCl7cmV0dXJuIG5ldyBKOCh0KX0sY3VydmVCYXNpc09wZW46ZnVuY3Rpb24gTmZ0KHQpe3JldHVybiBuZXcgUTgodCl9LGN1cnZlQmFzaXM6ZnVuY3Rpb24gSWZ0KHQpe3JldHVybiBuZXcgWjgodCl9LGN1cnZlQnVuZGxlOmU3LGN1cnZlQ2FyZGluYWxDbG9zZWQ6YTcsY3VydmVDYXJkaW5hbE9wZW46bDcsY3VydmVDYXJkaW5hbDpyNyxjdXJ2ZUNhdG11bGxSb21DbG9zZWQ6cDcsY3VydmVDYXRtdWxsUm9tT3BlbjptNyxjdXJ2ZUNhdG11bGxSb206aDcsY3VydmVMaW5lYXJDbG9zZWQ6ZnVuY3Rpb24gUmZ0KHQpe3JldHVybiBuZXcgZzcodCl9LGN1cnZlTGluZWFyOnU4LGN1cnZlTW9ub3RvbmVYOmZ1bmN0aW9uIE9mdCh0KXtyZXR1cm4gbmV3IHg3KHQpfSxjdXJ2ZU1vbm90b25lWTpmdW5jdGlvbiB6ZnQodCl7cmV0dXJuIG5ldyB3Nyh0KX0sY3VydmVOYXR1cmFsOmZ1bmN0aW9uIERmdCh0KXtyZXR1cm4gbmV3IE03KHQpfSxjdXJ2ZVN0ZXA6ZnVuY3Rpb24gQmZ0KHQpe3JldHVybiBuZXcgVDcodCwuNSl9LGN1cnZlU3RlcEFmdGVyOmZ1bmN0aW9uIEhmdCh0KXtyZXR1cm4gbmV3IFQ3KHQsMSl9LGN1cnZlU3RlcEJlZm9yZTpmdW5jdGlvbiBGZnQodCl7cmV0dXJuIG5ldyBUNyh0LDApfSxzdGFjazpmdW5jdGlvbiBWZnQoKXt2YXIgdD1VOShbXSksZT1BNyxuPUM3LGk9azc7ZnVuY3Rpb24gcihyKXt2YXIgbyxhLHM9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbD1yLmxlbmd0aCxjPXMubGVuZ3RoLHU9bmV3IEFycmF5KGMpO2ZvcihvPTA7bzxjOysrbyl7Zm9yKHZhciBoLGQ9c1tvXSxwPXVbb109bmV3IEFycmF5KGwpLGY9MDtmPGw7KytmKXBbZl09aD1bMCwraShyW2ZdLGQsZixyKV0saC5kYXRhPXJbZl07cC5rZXk9ZH1mb3Iobz0wLGE9ZSh1KTtvPGM7KytvKXVbYVtvXV0uaW5kZXg9bztyZXR1cm4gbih1LGEpLHV9cmV0dXJuIHIua2V5cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlU5KE04LmNhbGwoZSkpLHIpOnR9LHIudmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVOSgrdCkscik6aX0sci5vcmRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1udWxsPT10P0E3OiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTkoTTguY2FsbCh0KSkscik6ZX0sci5vZmZzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9DNzp0LHIpOm59LHJ9LHN0YWNrT2Zmc2V0RXhwYW5kOmZ1bmN0aW9uIFVmdCh0LGUpe2lmKChpPXQubGVuZ3RoKT4wKXtmb3IodmFyIG4saSxyLG89MCxhPXRbMF0ubGVuZ3RoO288YTsrK28pe2ZvcihyPW49MDtuPGk7KytuKXIrPXRbbl1bb11bMV18fDA7aWYocilmb3Iobj0wO248aTsrK24pdFtuXVtvXVsxXS89cn1DNyh0LGUpfX0sc3RhY2tPZmZzZXREaXZlcmdpbmc6ZnVuY3Rpb24gamZ0KHQsZSl7aWYoKHM9dC5sZW5ndGgpPjEpZm9yKHZhciBuLGkscixvLGEscyxsPTAsYz10W2VbMF1dLmxlbmd0aDtsPGM7KytsKWZvcihvPWE9MCxuPTA7bjxzOysrbikocj0oaT10W2Vbbl1dW2xdKVsxXS1pWzBdKT49MD8oaVswXT1vLGlbMV09bys9cik6cjwwPyhpWzFdPWEsaVswXT1hKz1yKTppWzBdPW99LHN0YWNrT2Zmc2V0Tm9uZTpDNyxzdGFja09mZnNldFNpbGhvdWV0dGU6ZnVuY3Rpb24gR2Z0KHQsZSl7aWYoKG49dC5sZW5ndGgpPjApe2Zvcih2YXIgbixpPTAscj10W2VbMF1dLG89ci5sZW5ndGg7aTxvOysraSl7Zm9yKHZhciBhPTAscz0wO2E8bjsrK2Epcys9dFthXVtpXVsxXXx8MDtyW2ldWzFdKz1yW2ldWzBdPS1zLzJ9QzcodCxlKX19LHN0YWNrT2Zmc2V0V2lnZ2xlOmZ1bmN0aW9uIFdmdCh0LGUpe2lmKChyPXQubGVuZ3RoKT4wJiYoaT0obj10W2VbMF1dKS5sZW5ndGgpPjApe2Zvcih2YXIgbixpLHIsbz0wLGE9MTthPGk7KythKXtmb3IodmFyIHM9MCxsPTAsYz0wO3M8cjsrK3Mpe2Zvcih2YXIgdT10W2Vbc11dLGg9dVthXVsxXXx8MCxkPShoLSh1W2EtMV1bMV18fDApKS8yLHA9MDtwPHM7KytwKXt2YXIgZj10W2VbcF1dO2QrPShmW2FdWzFdfHwwKS0oZlthLTFdWzFdfHwwKX1sKz1oLGMrPWQqaH1uW2EtMV1bMV0rPW5bYS0xXVswXT1vLGwmJihvLT1jL2wpfW5bYS0xXVsxXSs9blthLTFdWzBdPW8sQzcodCxlKX19LHN0YWNrT3JkZXJBc2NlbmRpbmc6TDcsc3RhY2tPcmRlckRlc2NlbmRpbmc6ZnVuY3Rpb24gcWZ0KHQpe3JldHVybiBMNyh0KS5yZXZlcnNlKCl9LHN0YWNrT3JkZXJJbnNpZGVPdXQ6ZnVuY3Rpb24gWWZ0KHQpe3ZhciBlLG4saT10Lmxlbmd0aCxyPXQubWFwKFA3KSxvPUE3KHQpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJbZV0tclt0XX0pKSxhPTAscz0wLGw9W10sYz1bXTtmb3IoZT0wO2U8aTsrK2Upbj1vW2VdLGE8cz8oYSs9cltuXSxsLnB1c2gobikpOihzKz1yW25dLGMucHVzaChuKSk7cmV0dXJuIGMucmV2ZXJzZSgpLmNvbmNhdChsKX0sc3RhY2tPcmRlck5vbmU6QTcsc3RhY2tPcmRlclJldmVyc2U6ZnVuY3Rpb24gWGZ0KHQpe3JldHVybiBBNyh0KS5yZXZlcnNlKCl9LHRpbWVJbnRlcnZhbDpSNyx0aW1lTWlsbGlzZWNvbmQ6TzcsdGltZU1pbGxpc2Vjb25kczp6Nyx1dGNNaWxsaXNlY29uZDpPNyx1dGNNaWxsaXNlY29uZHM6ejcsdGltZVNlY29uZDpVNyx0aW1lU2Vjb25kczpqNyx1dGNTZWNvbmQ6VTcsdXRjU2Vjb25kczpqNyx0aW1lTWludXRlOkc3LHRpbWVNaW51dGVzOlc3LHRpbWVIb3VyOnE3LHRpbWVIb3VyczpZNyx0aW1lRGF5Olg3LHRpbWVEYXlzOiQ3LHRpbWVXZWVrOlo3LHRpbWVXZWVrczpydHQsdGltZVN1bmRheTpaNyx0aW1lU3VuZGF5czpydHQsdGltZU1vbmRheTpKNyx0aW1lTW9uZGF5czpvdHQsdGltZVR1ZXNkYXk6UTcsdGltZVR1ZXNkYXlzOmF0dCx0aW1lV2VkbmVzZGF5OnR0dCx0aW1lV2VkbmVzZGF5czpzdHQsdGltZVRodXJzZGF5OmV0dCx0aW1lVGh1cnNkYXlzOmx0dCx0aW1lRnJpZGF5Om50dCx0aW1lRnJpZGF5czpjdHQsdGltZVNhdHVyZGF5Oml0dCx0aW1lU2F0dXJkYXlzOnV0dCx0aW1lTW9udGg6aHR0LHRpbWVNb250aHM6ZHR0LHRpbWVZZWFyOnB0dCx0aW1lWWVhcnM6ZnR0LHV0Y01pbnV0ZTptdHQsdXRjTWludXRlczpndHQsdXRjSG91cjpfdHQsdXRjSG91cnM6eXR0LHV0Y0RheTp2dHQsdXRjRGF5czpidHQsdXRjV2Vlazp3dHQsdXRjV2Vla3M6a3R0LHV0Y1N1bmRheTp3dHQsdXRjU3VuZGF5czprdHQsdXRjTW9uZGF5OlN0dCx1dGNNb25kYXlzOkx0dCx1dGNUdWVzZGF5Ok10dCx1dGNUdWVzZGF5czpQdHQsdXRjV2VkbmVzZGF5OkV0dCx1dGNXZWRuZXNkYXlzOk50dCx1dGNUaHVyc2RheTpUdHQsdXRjVGh1cnNkYXlzOkl0dCx1dGNGcmlkYXk6Q3R0LHV0Y0ZyaWRheXM6UnR0LHV0Y1NhdHVyZGF5OkF0dCx1dGNTYXR1cmRheXM6T3R0LHV0Y01vbnRoOnp0dCx1dGNNb250aHM6RHR0LHV0Y1llYXI6QnR0LHV0Y1llYXJzOkh0dCx0aW1lRm9ybWF0RGVmYXVsdExvY2FsZTpUbnQsZ2V0IHRpbWVGb3JtYXQoKXtyZXR1cm4gaGV0fSxnZXQgdGltZVBhcnNlKCl7cmV0dXJuIGRldH0sZ2V0IHV0Y0Zvcm1hdCgpe3JldHVybiBwZXR9LGdldCB1dGNQYXJzZSgpe3JldHVybiBmZXR9LHRpbWVGb3JtYXRMb2NhbGU6Y2V0LGlzb0Zvcm1hdDpMbnQsaXNvUGFyc2U6Tm50LG5vdzpVbnQsdGltZXI6V250LHRpbWVyRmx1c2g6cW50LHRpbWVvdXQ6ZnVuY3Rpb24gJGZ0KHQsZSxuKXt2YXIgaT1uZXcgR250O3JldHVybiBpLnJlc3RhcnQoKGZ1bmN0aW9uKG4pe2kuc3RvcCgpLHQobitlKX0pLGU9bnVsbD09ZT8wOitlLG4pLGl9LGludGVydmFsOmZ1bmN0aW9uIEtmdCh0LGUsbil7dmFyIGk9bmV3IEdudCxyPWU7cmV0dXJuIG51bGw9PWU/KGkucmVzdGFydCh0LGUsbiksaSk6KGU9K2Usbj1udWxsPT1uP1VudCgpOituLGkucmVzdGFydCgoZnVuY3Rpb24gbyhhKXthKz1yLGkucmVzdGFydChvLHIrPWUsbiksdChhKX0pLGUsbiksaSl9LHRyYW5zaXRpb246TmF0LGFjdGl2ZTpmdW5jdGlvbiBaZnQodCxlKXt2YXIgbixpLHI9dC5fX3RyYW5zaXRpb247aWYocilmb3IoaSBpbiBlPW51bGw9PWU/bnVsbDplKyIiLHIpaWYoKG49cltpXSkuc3RhdGU+MSYmbi5uYW1lPT09ZSlyZXR1cm4gbmV3IFBhdChbW3RdXSxuc3QsZSwraSk7cmV0dXJuIG51bGx9LGludGVycnVwdDpob3Qsdm9yb25vaTpmdW5jdGlvbiBKZnQoKXt2YXIgdD1yc3QsZT1vc3Qsbj1udWxsO2Z1bmN0aW9uIGkoaSl7cmV0dXJuIG5ldyBGc3QoaS5tYXAoKGZ1bmN0aW9uKG4scil7dmFyIG89W01hdGgucm91bmQodChuLHIsaSkvenN0KSp6c3QsTWF0aC5yb3VuZChlKG4scixpKS96c3QpKnpzdF07cmV0dXJuIG8uaW5kZXg9cixvLmRhdGE9bixvfSkpLG4pfXJldHVybiBpLnBvbHlnb25zPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpLnBvbHlnb25zKCl9LGkubGlua3M9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCkubGlua3MoKX0saS50cmlhbmdsZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCkudHJpYW5nbGVzKCl9LGkueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOmlzdCgrZSksaSk6dH0saS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6aXN0KCt0KSxpKTplfSxpLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P251bGw6W1srdFswXVswXSwrdFswXVsxXV0sWyt0WzFdWzBdLCt0WzFdWzFdXV0saSk6biYmW1tuWzBdWzBdLG5bMF1bMV1dLFtuWzFdWzBdLG5bMV1bMV1dXX0saS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/bnVsbDpbWzAsMF0sWyt0WzBdLCt0WzFdXV0saSk6biYmW25bMV1bMF0tblswXVswXSxuWzFdWzFdLW5bMF1bMV1dfSxpfSx6b29tOmZ1bmN0aW9uIFFmdCgpe3ZhciB0LGUsbj12ZHQsaT1iZHQscj1NZHQsbz13ZHQsYT1TZHQscz1bMCwxLzBdLGw9W1stMS8wLC0xLzBdLFsxLzAsMS8wXV0sYz0yNTAsdT1WdXQsaD1bXSxkPVVzdCgic3RhcnQiLCJ6b29tIiwiZW5kIikscD01MDAsZj0wO2Z1bmN0aW9uIG0odCl7dC5wcm9wZXJ0eSgiX196b29tIix4ZHQpLm9uKCJ3aGVlbC56b29tIix3KS5vbigibW91c2Vkb3duLnpvb20iLFMpLm9uKCJkYmxjbGljay56b29tIixNKS5maWx0ZXIoYSkub24oInRvdWNoc3RhcnQuem9vbSIsRSkub24oInRvdWNobW92ZS56b29tIixUKS5vbigidG91Y2hlbmQuem9vbSB0b3VjaGNhbmNlbC56b29tIixDKS5zdHlsZSgidG91Y2gtYWN0aW9uIiwibm9uZSIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIil9ZnVuY3Rpb24gZyh0LGUpe3JldHVybihlPU1hdGgubWF4KHNbMF0sTWF0aC5taW4oc1sxXSxlKSkpPT09dC5rP3Q6bmV3IGRkdChlLHQueCx0LnkpfWZ1bmN0aW9uIF8odCxlLG4pe3ZhciBpPWVbMF0tblswXSp0Lmsscj1lWzFdLW5bMV0qdC5rO3JldHVybiBpPT09dC54JiZyPT09dC55P3Q6bmV3IGRkdCh0LmssaSxyKX1mdW5jdGlvbiB5KHQpe3JldHVyblsoK3RbMF1bMF0rICt0WzFdWzBdKS8yLCgrdFswXVsxXSsgK3RbMV1bMV0pLzJdfWZ1bmN0aW9uIHYodCxlLG4pe3Qub24oInN0YXJ0Lnpvb20iLChmdW5jdGlvbigpe2IodGhpcyxhcmd1bWVudHMpLnN0YXJ0KCl9KSkub24oImludGVycnVwdC56b29tIGVuZC56b29tIiwoZnVuY3Rpb24oKXtiKHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pKS50d2Vlbigiem9vbSIsKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxyPWFyZ3VtZW50cyxvPWIodCxyKSxhPWkuYXBwbHkodCxyKSxzPW58fHkoYSksbD1NYXRoLm1heChhWzFdWzBdLWFbMF1bMF0sYVsxXVsxXS1hWzBdWzFdKSxjPXQuX196b29tLGg9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0LHIpOmUsZD11KGMuaW52ZXJ0KHMpLmNvbmNhdChsL2MuayksaC5pbnZlcnQocykuY29uY2F0KGwvaC5rKSk7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDE9PT10KXQ9aDtlbHNle3ZhciBlPWQodCksbj1sL2VbMl07dD1uZXcgZGR0KG4sc1swXS1lWzBdKm4sc1sxXS1lWzFdKm4pfW8uem9vbShudWxsLHQpfX0pKX1mdW5jdGlvbiBiKHQsZSl7Zm9yKHZhciBuLGk9MCxyPWgubGVuZ3RoO2k8cjsrK2kpaWYoKG49aFtpXSkudGhhdD09PXQpcmV0dXJuIG47cmV0dXJuIG5ldyB4KHQsZSl9ZnVuY3Rpb24geCh0LGUpe3RoaXMudGhhdD10LHRoaXMuYXJncz1lLHRoaXMuaW5kZXg9LTEsdGhpcy5hY3RpdmU9MCx0aGlzLmV4dGVudD1pLmFwcGx5KHQsZSl9ZnVuY3Rpb24gdygpe2lmKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdD1iKHRoaXMsYXJndW1lbnRzKSxlPXRoaXMuX196b29tLGk9TWF0aC5tYXgoc1swXSxNYXRoLm1pbihzWzFdLGUuaypNYXRoLnBvdygyLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKSkpLGE9b2N0KHRoaXMpO2lmKHQud2hlZWwpdC5tb3VzZVswXVswXT09PWFbMF0mJnQubW91c2VbMF1bMV09PT1hWzFdfHwodC5tb3VzZVsxXT1lLmludmVydCh0Lm1vdXNlWzBdPWEpKSxjbGVhclRpbWVvdXQodC53aGVlbCk7ZWxzZXtpZihlLms9PT1pKXJldHVybjt0Lm1vdXNlPVthLGUuaW52ZXJ0KGEpXSxkaHQodGhpcyksdC5zdGFydCgpfXlkdCgpLHQud2hlZWw9c2V0VGltZW91dChjLDE1MCksdC56b29tKCJtb3VzZSIscihfKGcoZSxpKSx0Lm1vdXNlWzBdLHQubW91c2VbMV0pLHQuZXh0ZW50LGwpKX1mdW5jdGlvbiBjKCl7dC53aGVlbD1udWxsLHQuZW5kKCl9fWZ1bmN0aW9uIFMoKXtpZighZSYmbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0PWIodGhpcyxhcmd1bWVudHMpLGk9bmN0KEdsdC52aWV3KS5vbigibW91c2Vtb3ZlLnpvb20iLGMsITApLm9uKCJtb3VzZXVwLnpvb20iLHUsITApLG89b2N0KHRoaXMpLGE9R2x0LmNsaWVudFgscz1HbHQuY2xpZW50WTtsY3QoR2x0LnZpZXcpLF9kdCgpLHQubW91c2U9W28sdGhpcy5fX3pvb20uaW52ZXJ0KG8pXSxkaHQodGhpcyksdC5zdGFydCgpfWZ1bmN0aW9uIGMoKXtpZih5ZHQoKSwhdC5tb3ZlZCl7dmFyIGU9R2x0LmNsaWVudFgtYSxuPUdsdC5jbGllbnRZLXM7dC5tb3ZlZD1lKmUrbipuPmZ9dC56b29tKCJtb3VzZSIscihfKHQudGhhdC5fX3pvb20sdC5tb3VzZVswXT1vY3QodC50aGF0KSx0Lm1vdXNlWzFdKSx0LmV4dGVudCxsKSl9ZnVuY3Rpb24gdSgpe2kub24oIm1vdXNlbW92ZS56b29tIG1vdXNldXAuem9vbSIsbnVsbCksY2N0KEdsdC52aWV3LHQubW92ZWQpLHlkdCgpLHQuZW5kKCl9fWZ1bmN0aW9uIE0oKXtpZihuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIHQ9dGhpcy5fX3pvb20sZT1vY3QodGhpcyksbz10LmludmVydChlKSxhPXQuayooR2x0LnNoaWZ0S2V5Py41OjIpLHM9cihfKGcodCxhKSxlLG8pLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpLGwpO3lkdCgpLGM+MD9uY3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKGMpLmNhbGwodixzLGUpOm5jdCh0aGlzKS5jYWxsKG0udHJhbnNmb3JtLHMpfX1mdW5jdGlvbiBFKCl7aWYobi5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBlLGkscixvLGE9Yih0aGlzLGFyZ3VtZW50cykscz1HbHQuY2hhbmdlZFRvdWNoZXMsbD1zLmxlbmd0aDtmb3IoX2R0KCksaT0wO2k8bDsrK2kpbz1bbz1hY3QodGhpcyxzLChyPXNbaV0pLmlkZW50aWZpZXIpLHRoaXMuX196b29tLmludmVydChvKSxyLmlkZW50aWZpZXJdLGEudG91Y2gwP2EudG91Y2gxfHwoYS50b3VjaDE9byk6KGEudG91Y2gwPW8sZT0hMCk7aWYodCYmKHQ9Y2xlYXJUaW1lb3V0KHQpLCFhLnRvdWNoMSkpcmV0dXJuIGEuZW5kKCksdm9pZCgobz1uY3QodGhpcykub24oImRibGNsaWNrLnpvb20iKSkmJm8uYXBwbHkodGhpcyxhcmd1bWVudHMpKTtlJiYodD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Q9bnVsbH0pLHApLGRodCh0aGlzKSxhLnN0YXJ0KCkpfX1mdW5jdGlvbiBUKCl7dmFyIGUsbixpLG8sYT1iKHRoaXMsYXJndW1lbnRzKSxzPUdsdC5jaGFuZ2VkVG91Y2hlcyxjPXMubGVuZ3RoO2Zvcih5ZHQoKSx0JiYodD1jbGVhclRpbWVvdXQodCkpLGU9MDtlPGM7KytlKWk9YWN0KHRoaXMscywobj1zW2VdKS5pZGVudGlmaWVyKSxhLnRvdWNoMCYmYS50b3VjaDBbMl09PT1uLmlkZW50aWZpZXI/YS50b3VjaDBbMF09aTphLnRvdWNoMSYmYS50b3VjaDFbMl09PT1uLmlkZW50aWZpZXImJihhLnRvdWNoMVswXT1pKTtpZihuPWEudGhhdC5fX3pvb20sYS50b3VjaDEpe3ZhciB1PWEudG91Y2gwWzBdLGg9YS50b3VjaDBbMV0sZD1hLnRvdWNoMVswXSxwPWEudG91Y2gxWzFdLGY9KGY9ZFswXS11WzBdKSpmKyhmPWRbMV0tdVsxXSkqZixtPShtPXBbMF0taFswXSkqbSsobT1wWzFdLWhbMV0pKm07bj1nKG4sTWF0aC5zcXJ0KGYvbSkpLGk9Wyh1WzBdK2RbMF0pLzIsKHVbMV0rZFsxXSkvMl0sbz1bKGhbMF0rcFswXSkvMiwoaFsxXStwWzFdKS8yXX1lbHNle2lmKCFhLnRvdWNoMClyZXR1cm47aT1hLnRvdWNoMFswXSxvPWEudG91Y2gwWzFdfWEuem9vbSgidG91Y2giLHIoXyhuLGksbyksYS5leHRlbnQsbCkpfWZ1bmN0aW9uIEMoKXt2YXIgdCxuLGk9Yih0aGlzLGFyZ3VtZW50cykscj1HbHQuY2hhbmdlZFRvdWNoZXMsbz1yLmxlbmd0aDtmb3IoX2R0KCksZSYmY2xlYXJUaW1lb3V0KGUpLGU9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlPW51bGx9KSxwKSx0PTA7dDxvOysrdCluPXJbdF0saS50b3VjaDAmJmkudG91Y2gwWzJdPT09bi5pZGVudGlmaWVyP2RlbGV0ZSBpLnRvdWNoMDppLnRvdWNoMSYmaS50b3VjaDFbMl09PT1uLmlkZW50aWZpZXImJmRlbGV0ZSBpLnRvdWNoMTtpLnRvdWNoMSYmIWkudG91Y2gwJiYoaS50b3VjaDA9aS50b3VjaDEsZGVsZXRlIGkudG91Y2gxKSxpLnRvdWNoMD9pLnRvdWNoMFsxXT10aGlzLl9fem9vbS5pbnZlcnQoaS50b3VjaDBbMF0pOmkuZW5kKCl9cmV0dXJuIG0udHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5zZWxlY3Rpb24/dC5zZWxlY3Rpb24oKTp0O24ucHJvcGVydHkoIl9fem9vbSIseGR0KSx0IT09bj92KHQsZSk6bi5pbnRlcnJ1cHQoKS5lYWNoKChmdW5jdGlvbigpe2IodGhpcyxhcmd1bWVudHMpLnN0YXJ0KCkuem9vbShudWxsLCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUpLmVuZCgpfSkpfSxtLnNjYWxlQnk9ZnVuY3Rpb24odCxlKXttLnNjYWxlVG8odCwoZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9fem9vbS5rLG49ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZTtyZXR1cm4gdCpufSkpfSxtLnNjYWxlVG89ZnVuY3Rpb24odCxlKXttLnRyYW5zZm9ybSh0LChmdW5jdGlvbigpe3ZhciB0PWkuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dGhpcy5fX3pvb20sbz15KHQpLGE9bi5pbnZlcnQobykscz0iZnVuY3Rpb24iPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplO3JldHVybiByKF8oZyhuLHMpLG8sYSksdCxsKX0pKX0sbS50cmFuc2xhdGVCeT1mdW5jdGlvbih0LGUsbil7bS50cmFuc2Zvcm0odCwoZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLl9fem9vbS50cmFuc2xhdGUoImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZSwiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpuKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxsKX0pKX0sbS50cmFuc2xhdGVUbz1mdW5jdGlvbih0LGUsbil7bS50cmFuc2Zvcm0odCwoZnVuY3Rpb24oKXt2YXIgdD1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvPXRoaXMuX196b29tLGE9eSh0KTtyZXR1cm4gcihtZHQudHJhbnNsYXRlKGFbMF0sYVsxXSkuc2NhbGUoby5rKS50cmFuc2xhdGUoImZ1bmN0aW9uIj09dHlwZW9mIGU/LWUuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1lLCJmdW5jdGlvbiI9PXR5cGVvZiBuPy1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTotbiksdCxsKX0pKX0seC5wcm90b3R5cGU9e3N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLmluZGV4PWgucHVzaCh0aGlzKS0xLHRoaXMuZW1pdCgic3RhcnQiKSksdGhpc30sem9vbTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm1vdXNlJiYibW91c2UiIT09dCYmKHRoaXMubW91c2VbMV09ZS5pbnZlcnQodGhpcy5tb3VzZVswXSkpLHRoaXMudG91Y2gwJiYidG91Y2giIT09dCYmKHRoaXMudG91Y2gwWzFdPWUuaW52ZXJ0KHRoaXMudG91Y2gwWzBdKSksdGhpcy50b3VjaDEmJiJ0b3VjaCIhPT10JiYodGhpcy50b3VjaDFbMV09ZS5pbnZlcnQodGhpcy50b3VjaDFbMF0pKSx0aGlzLnRoYXQuX196b29tPWUsdGhpcy5lbWl0KCJ6b29tIiksdGhpc30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PS0tdGhpcy5hY3RpdmUmJihoLnNwbGljZSh0aGlzLmluZGV4LDEpLHRoaXMuaW5kZXg9LTEsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXshKGZ1bmN0aW9uIGUodCxuLGkscil7dmFyIG89R2x0O3Quc291cmNlRXZlbnQ9R2x0LEdsdD10O3RyeXtuLmFwcGx5KGkscil9ZmluYWxseXtHbHQ9b319KShuZXcgaGR0KG0sdCx0aGlzLnRoYXQuX196b29tKSxkLmFwcGx5LGQsW3QsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sbS53aGVlbERlbHRhPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6dWR0KCt0KSxtKTpvfSxtLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnVkdCghIXQpLG0pOm59LG0udG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6dWR0KCEhdCksbSk6YX0sbS5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp1ZHQoW1srdFswXVswXSwrdFswXVsxXV0sWyt0WzFdWzBdLCt0WzFdWzFdXV0pLG0pOml9LG0uc2NhbGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHNbMF09K3RbMF0sc1sxXT0rdFsxXSxtKTpbc1swXSxzWzFdXX0sbS50cmFuc2xhdGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGxbMF1bMF09K3RbMF1bMF0sbFsxXVswXT0rdFsxXVswXSxsWzBdWzFdPSt0WzBdWzFdLGxbMV1bMV09K3RbMV1bMV0sbSk6W1tsWzBdWzBdLGxbMF1bMV1dLFtsWzFdWzBdLGxbMV1bMV1dXX0sbS5jb25zdHJhaW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxtKTpyfSxtLmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPSt0LG0pOmN9LG0uaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCxtKTp1fSxtLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9ZC5vbi5hcHBseShkLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1kP206dH0sbS5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPSh0PSt0KSp0LG0pOk1hdGguc3FydChmKX0sbX0sem9vbVRyYW5zZm9ybTpnZHQsem9vbUlkZW50aXR5Om1kdH0pKTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKgogICAgICogQGZpbGVvdmVydmlldyBtYW51YWxseSBhZGQgZDMtc2VsZWN0aW9uLW11bHRpIHRvIGQzIGRlZmF1bHQgYnVuZGxlLiBNb3N0IG9mIHRoaXMgY29kZSBpcwogICAgICogY29waWVkIGZyb20gZDMtc2VsZWN0aW9uLW11bHRpQDEuMC4wLgogICAgICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kMy9kMy1zZWxlY3Rpb24tbXVsdGkvaXNzdWVzLzExIGZvciB3aHkgd2UgaGF2ZSB0byBkbyB0aGlzCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdG10PUVkdCxlbXQ9RWR0O2Z1bmN0aW9uIG5tdCh0LGUpe3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj10bXQuc2VsZWN0KHRoaXMpO2Zvcih2YXIgaSBpbiB0KW4uYXR0cihpLHRbaV0pfSkpfWZ1bmN0aW9uIGltdCh0LGUpe2Zvcih2YXIgbiBpbiBlKXQuYXR0cihuLGVbbl0pO3JldHVybiB0fWZ1bmN0aW9uIHJtdCh0LGUsbil7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxpPXRtdC5zZWxlY3QodGhpcyk7Zm9yKHZhciByIGluIHQpaS5zdHlsZShyLHRbcl0sbil9KSl9ZnVuY3Rpb24gb210KHQsZSxuKXtmb3IodmFyIGkgaW4gZSl0LnN0eWxlKGksZVtpXSxuKTtyZXR1cm4gdH1mdW5jdGlvbiBhbXQodCxlKXtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbigpe3ZhciB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dG10LnNlbGVjdCh0aGlzKTtmb3IodmFyIGkgaW4gdCluLnByb3BlcnR5KGksdFtpXSl9KSl9ZnVuY3Rpb24gc210KHQsZSl7Zm9yKHZhciBuIGluIGUpdC5wcm9wZXJ0eShuLGVbbl0pO3JldHVybiB0fWZ1bmN0aW9uIGxtdCh0LGUpe3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksaT10bXQuc2VsZWN0KHRoaXMpLnRyYW5zaXRpb24odCk7Zm9yKHZhciByIGluIG4paS5hdHRyKHIsbltyXSl9KSl9ZnVuY3Rpb24gY210KHQsZSl7Zm9yKHZhciBuIGluIGUpdC5hdHRyKG4sZVtuXSk7cmV0dXJuIHR9ZnVuY3Rpb24gdW10KHQsZSxuKXtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbigpe3ZhciBpPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpLHI9dG10LnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKHQpO2Zvcih2YXIgbyBpbiBpKXIuc3R5bGUobyxpW29dLG4pfSkpfWZ1bmN0aW9uIGhtdCh0LGUsbil7Zm9yKHZhciBpIGluIGUpdC5zdHlsZShpLGVbaV0sbik7cmV0dXJuIHR9dG10LnNlbGVjdGlvbi5wcm90b3R5cGUuYXR0cnM9ZnVuY3Rpb24gZG10KHQpe3JldHVybigiZnVuY3Rpb24iPT10eXBlb2YgdD9ubXQ6aW10KSh0aGlzLHQpfSx0bXQuc2VsZWN0aW9uLnByb3RvdHlwZS5zdHlsZXM9ZnVuY3Rpb24gcG10KHQsZSl7cmV0dXJuKCJmdW5jdGlvbiI9PXR5cGVvZiB0P3JtdDpvbXQpKHRoaXMsdCxudWxsPT1lPyIiOmUpfSx0bXQuc2VsZWN0aW9uLnByb3RvdHlwZS5wcm9wZXJ0aWVzPWZ1bmN0aW9uIGZtdCh0KXtyZXR1cm4oImZ1bmN0aW9uIj09dHlwZW9mIHQ/YW10OnNtdCkodGhpcyx0KX0sZW10LnRyYW5zaXRpb24ucHJvdG90eXBlLmF0dHJzPWZ1bmN0aW9uIG1tdCh0KXtyZXR1cm4oImZ1bmN0aW9uIj09dHlwZW9mIHQ/bG10OmNtdCkodGhpcyx0KX0sZW10LnRyYW5zaXRpb24ucHJvdG90eXBlLnN0eWxlcz1mdW5jdGlvbiBnbXQodCxlKXtyZXR1cm4oImZ1bmN0aW9uIj09dHlwZW9mIHQ/dW10OmhtdCkodGhpcyx0LG51bGw9PWU/IiI6ZSl9O3ZhciBfbXQ9e30seW10PXt9LHZtdD1iZSh2bSksYm10PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShibXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB4bXQ9RWR0O2JtdC5jb2VyY2VFeHRlcm5hbEQzPWZ1bmN0aW9uIHdtdCh0KXtpZihudWxsPT10LmF0dHJzKXtpZihudWxsPT10Lm5vZGVzKXt2YXIgZT1bXTtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbigpe2UucHVzaCh0aGlzKX0pKSx4bXQuc2VsZWN0QWxsKGUpfXJldHVybiB4bXQuc2VsZWN0QWxsKHQubm9kZXMoKSl9cmV0dXJuIHR9O3ZhciBTbXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFNtdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksU210Lm1ha2VFbnVtPWZ1bmN0aW9uIE1tdCh0KXtyZXR1cm4gdC5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZV09ZSx0fSkse30pfSwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHltdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEVtdD1ibXQsVG10PXtsaW5lYXI6dm10LmVhc2VMaW5lYXIscXVhZDp2bXQuZWFzZVF1YWQscXVhZEluOnZtdC5lYXNlUXVhZEluLHF1YWRPdXQ6dm10LmVhc2VRdWFkT3V0LHF1YWRJbk91dDp2bXQuZWFzZVF1YWRJbk91dCxjdWJpYzp2bXQuZWFzZUN1YmljLGN1YmljSW46dm10LmVhc2VDdWJpY0luLGN1YmljT3V0OnZtdC5lYXNlQ3ViaWNPdXQsY3ViaWNJbk91dDp2bXQuZWFzZUN1YmljSW5PdXQscG9seTp2bXQuZWFzZVBvbHkscG9seUluOnZtdC5lYXNlUG9seUluLHBvbHlPdXQ6dm10LmVhc2VQb2x5T3V0LHBvbHlJbk91dDp2bXQuZWFzZVBvbHlJbk91dCxzaW46dm10LmVhc2VTaW4sc2luSW46dm10LmVhc2VTaW5JbixzaW5PdXQ6dm10LmVhc2VTaW5PdXQsc2luSW5PdXQ6dm10LmVhc2VTaW5Jbk91dCxleHA6dm10LmVhc2VFeHAsZXhwSW46dm10LmVhc2VFeHBJbixleHBPdXQ6dm10LmVhc2VFeHBPdXQsZXhwSW5PdXQ6dm10LmVhc2VFeHBJbk91dCxjaXJjbGU6dm10LmVhc2VDaXJjbGUsY2lyY2xlSW46dm10LmVhc2VDaXJjbGVJbixjaXJjbGVPdXQ6dm10LmVhc2VDaXJjbGVPdXQsY2lyY2xlSW5PdXQ6dm10LmVhc2VDaXJjbGVJbk91dCxib3VuY2U6dm10LmVhc2VCb3VuY2UsYm91bmNlSW46dm10LmVhc2VCb3VuY2VJbixib3VuY2VPdXQ6dm10LmVhc2VCb3VuY2VPdXQsYm91bmNlSW5PdXQ6dm10LmVhc2VCb3VuY2VJbk91dCxiYWNrOnZtdC5lYXNlQmFjayxiYWNrSW46dm10LmVhc2VCYWNrSW4sYmFja091dDp2bXQuZWFzZUJhY2tPdXQsYmFja0luT3V0OnZtdC5lYXNlQmFja0luT3V0LGVsYXN0aWM6dm10LmVhc2VFbGFzdGljLGVsYXN0aWNJbjp2bXQuZWFzZUVsYXN0aWNJbixlbGFzdGljT3V0OnZtdC5lYXNlRWxhc3RpY091dCxlbGFzdGljSW5PdXQ6dm10LmVhc2VFbGFzdGljSW5PdXR9O3ltdC5FYXNlTmFtZT1TbXQubWFrZUVudW0oWyJsaW5lYXIiLCJxdWFkIiwicXVhZEluIiwicXVhZE91dCIsInF1YWRJbk91dCIsImN1YmljIiwiY3ViaWNJbiIsImN1YmljT3V0IiwiY3ViaWNJbk91dCIsInBvbHkiLCJwb2x5SW4iLCJwb2x5T3V0IiwicG9seUluT3V0Iiwic2luIiwic2luSW4iLCJzaW5PdXQiLCJzaW5Jbk91dCIsImV4cCIsImV4cEluIiwiZXhwT3V0IiwiZXhwSW5PdXQiLCJjaXJjbGUiLCJjaXJjbGVJbiIsImNpcmNsZU91dCIsImNpcmNsZUluT3V0IiwiYm91bmNlIiwiYm91bmNlSW4iLCJib3VuY2VPdXQiLCJib3VuY2VJbk91dCIsImJhY2siLCJiYWNrSW4iLCJiYWNrT3V0IiwiYmFja0luT3V0IiwiZWxhc3RpYyIsImVsYXN0aWNJbiIsImVsYXN0aWNPdXQiLCJlbGFzdGljSW5PdXQiXSk7dmFyIENtdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fc3RhcnREZWxheT10Ll9ERUZBVUxUX1NUQVJUX0RFTEFZX01JTExJU0VDT05EUyx0aGlzLl9zdGVwRHVyYXRpb249dC5fREVGQVVMVF9TVEVQX0RVUkFUSU9OX01JTExJU0VDT05EUyx0aGlzLl9zdGVwRGVsYXk9dC5fREVGQVVMVF9JVEVSQVRJVkVfREVMQVlfTUlMTElTRUNPTkRTLHRoaXMuX21heFRvdGFsRHVyYXRpb249dC5fREVGQVVMVF9NQVhfVE9UQUxfRFVSQVRJT05fTUlMTElTRUNPTkRTLHRoaXMuX2Vhc2luZ01vZGU9dC5fREVGQVVMVF9FQVNJTkdfTU9ERX1yZXR1cm4gdC5wcm90b3R5cGUudG90YWxUaW1lPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2dldEFkanVzdGVkSXRlcmF0aXZlRGVsYXkodCk7cmV0dXJuIHRoaXMuc3RhcnREZWxheSgpK2UqTWF0aC5tYXgodC0xLDApK3RoaXMuc3RlcER1cmF0aW9uKCl9LHQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLGk9KHQ9RW10LmNvZXJjZUV4dGVybmFsRDModCkpLnNpemUoKSxyPXRoaXMuX2dldEFkanVzdGVkSXRlcmF0aXZlRGVsYXkoaSk7cmV0dXJuIHQudHJhbnNpdGlvbigpLmVhc2UodGhpcy5fZ2V0RWFzZUZhY3RvcnkoKSkuZHVyYXRpb24odGhpcy5zdGVwRHVyYXRpb24oKSkuZGVsYXkoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uc3RhcnREZWxheSgpK3IqZX0pKS5hdHRycyhlKX0sdC5wcm90b3R5cGUuc3RhcnREZWxheT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9zdGFydERlbGF5Oih0aGlzLl9zdGFydERlbGF5PXQsdGhpcyl9LHQucHJvdG90eXBlLnN0ZXBEdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9NYXRoLm1pbih0aGlzLl9zdGVwRHVyYXRpb24sdGhpcy5fbWF4VG90YWxEdXJhdGlvbik6KHRoaXMuX3N0ZXBEdXJhdGlvbj10LHRoaXMpfSx0LnByb3RvdHlwZS5zdGVwRGVsYXk9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fc3RlcERlbGF5Oih0aGlzLl9zdGVwRGVsYXk9dCx0aGlzKX0sdC5wcm90b3R5cGUubWF4VG90YWxEdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9tYXhUb3RhbER1cmF0aW9uOih0aGlzLl9tYXhUb3RhbER1cmF0aW9uPXQsdGhpcyl9LHQucHJvdG90eXBlLmVhc2luZ01vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZWFzaW5nTW9kZToodGhpcy5fZWFzaW5nTW9kZT10LHRoaXMpfSx0LnByb3RvdHlwZS5fZ2V0RWFzZUZhY3Rvcnk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVhc2luZ01vZGUoKTtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciBlPVRtdFt0XTtyZXR1cm4gbnVsbD09ZT9UbXQubGluZWFyOmV9cmV0dXJuIHR9LHQucHJvdG90eXBlLl9nZXRBZGp1c3RlZEl0ZXJhdGl2ZURlbGF5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWF4VG90YWxEdXJhdGlvbigpLXRoaXMuc3RlcER1cmF0aW9uKCksbj0oZT1NYXRoLm1heChlLDApKS9NYXRoLm1heCh0LTEsMSk7cmV0dXJuIE1hdGgubWluKHRoaXMuc3RlcERlbGF5KCksbil9LHQuX0RFRkFVTFRfU1RBUlRfREVMQVlfTUlMTElTRUNPTkRTPTAsdC5fREVGQVVMVF9TVEVQX0RVUkFUSU9OX01JTExJU0VDT05EUz0zMDAsdC5fREVGQVVMVF9JVEVSQVRJVkVfREVMQVlfTUlMTElTRUNPTkRTPTE1LHQuX0RFRkFVTFRfTUFYX1RPVEFMX0RVUkFUSU9OX01JTExJU0VDT05EUz0xLzAsdC5fREVGQVVMVF9FQVNJTkdfTU9ERT0iZXhwT3V0Iix0fSkoKTt5bXQuRWFzaW5nPUNtdDt2YXIgQW10PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShBbXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBrbXQ9Ym10LExtdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS50b3RhbFRpbWU9ZnVuY3Rpb24odCl7cmV0dXJuIDB9LHQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4odD1rbXQuY29lcmNlRXh0ZXJuYWxEMyh0KSkuYXR0cnMoZSl9LHR9KSgpO0FtdC5OdWxsPUxtdCwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT11TztlLl9fZXhwb3J0U3Rhcih5bXQsdCksZS5fX2V4cG9ydFN0YXIoQW10LHQpfSkoX210KTt2YXIgUG10PXt9LE5tdD17fSxJbXQ9e30sUm10PXt9LE9tdD17fSx6bXQ9e30sRG10PXt9LEJtdD17fSxIbXQ9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KEhtdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEZtdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuY2FjaGU9e30sdGhpcy5jb21wdXRlPXR9cmV0dXJuIHQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jYWNoZS5oYXNPd25Qcm9wZXJ0eSh0KXx8KHRoaXMuY2FjaGVbdF09dGhpcy5jb21wdXRlKHQpKSx0aGlzLmNhY2hlW3RdfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNhY2hlPXt9LHRoaXN9LHR9KSgpO0htdC5DYWNoZT1GbXQ7dmFyIFZtdD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVm10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgVW10PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQuYXJyYXlFcT1mdW5jdGlvbih0LGUpe2lmKG51bGw9PXR8fG51bGw9PWUpcmV0dXJuIHQ9PT1lO2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXSE9PWVbbl0pcmV0dXJuITE7cmV0dXJuITB9LHQub2JqRXE9ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lfHxudWxsPT1uKXJldHVybiBlPT09bjt2YXIgaT1PYmplY3Qua2V5cyhlKS5zb3J0KCkscj1PYmplY3Qua2V5cyhuKS5zb3J0KCksbz1pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19KSksYT1yLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG5bdF19KSk7cmV0dXJuIHQuYXJyYXlFcShpLHIpJiZ0LmFycmF5RXEobyxhKX0sdC5zdHJpY3RFcT1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sdC5kZWZhdWx0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTtpZihudWxsPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCIpO3ZhciBpPU9iamVjdCh0KTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbih0KXtpZihudWxsIT10KWZvcih2YXIgZSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpJiYoaVtlXT10W2VdKX0pKSxpfSx0fSkoKTtWbXQuTWV0aG9kcz1VbXQ7dmFyIGptdD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoam10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgR210PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQuY29tYmluZVdoaXRlc3BhY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvWyBcdF0rL2csIiAiKX0sdC5pc05vdEVtcHR5U3RyaW5nPWZ1bmN0aW9uKHQpe3JldHVybiB0JiYiIiE9PXQudHJpbSgpfSx0LnRyaW1TdGFydD1mdW5jdGlvbihlLG4pe2lmKCFlKXJldHVybiBlO3ZhciBpPWUuc3BsaXQoIiIpLHI9bj9mdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdChuKS5zb21lKHQuaXNOb3RFbXB0eVN0cmluZyl9OnQuaXNOb3RFbXB0eVN0cmluZztyZXR1cm4gaS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodCtlKT90K2U6dH0pLCIiKX0sdC50cmltRW5kPWZ1bmN0aW9uKGUsbil7aWYoIWUpcmV0dXJuIGU7dmFyIGk9ZS5zcGxpdCgiIik7cmV0dXJuIGkucmV2ZXJzZSgpLChpPXQudHJpbVN0YXJ0KGkuam9pbigiIiksbikuc3BsaXQoIiIpKS5yZXZlcnNlKCksaS5qb2luKCIiKX0sdH0pKCk7am10LlN0cmluZ01ldGhvZHM9R210O3ZhciBXbXQ9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KFdtdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHFtdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5Xb3JkRGl2aWRlclJlZ0V4cD1uZXcgUmVnRXhwKCJcXFciKSx0aGlzLldoaXRlc3BhY2VSZWdFeHA9bmV3IFJlZ0V4cCgiXFxzIil9cmV0dXJuIHQucHJvdG90eXBlLnRva2VuaXplPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQuc3BsaXQoIiIpLnJlZHVjZSgoZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5zbGljZSgwLC0xKS5jb25jYXQoZS5zaG91bGRDcmVhdGVOZXdUb2tlbih0W3QubGVuZ3RoLTFdLG4pKX0pLFsiIl0pfSx0LnByb3RvdHlwZS5zaG91bGRDcmVhdGVOZXdUb2tlbj1mdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybltlXTt2YXIgbj10W3QubGVuZ3RoLTFdO3JldHVybiB0aGlzLldoaXRlc3BhY2VSZWdFeHAudGVzdChuKSYmdGhpcy5XaGl0ZXNwYWNlUmVnRXhwLnRlc3QoZSk/W3QrZV06dGhpcy5XaGl0ZXNwYWNlUmVnRXhwLnRlc3Qobil8fHRoaXMuV2hpdGVzcGFjZVJlZ0V4cC50ZXN0KGUpP1t0LGVdOnRoaXMuV29yZERpdmlkZXJSZWdFeHAudGVzdChuKT9uPT09ZT9bdCtlXTpbdCxlXTpbdCtlXX0sdH0pKCk7V210LlRva2VuaXplcj1xbXQsKGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7Zm9yKHZhciBuIGluIGUpdC5oYXNPd25Qcm9wZXJ0eShuKXx8KHRbbl09ZVtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUoSG10KSxlKFZtdCksZShqbXQpLGUoV210KX0pKEJtdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KERtdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFltdD1CbXQsWG10PXt0ZXh0Um90YXRpb246MCx0ZXh0U2hlYXI6MCx4QWxpZ246ImxlZnQiLHlBbGlnbjoidG9wIn0sJG10PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3RoaXMuX21lYXN1cmVyPXQsdGhpcy5fcGVuRmFjdG9yeT1lLHRoaXMuX3dyYXBwZXI9bn1yZXR1cm4gdC5wcm90b3R5cGUubWVhc3VyZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21lYXN1cmVyPXQsdGhpc30sdC5wcm90b3R5cGUud3JhcHBlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fd3JhcHBlcj10LHRoaXN9LHQucHJvdG90eXBlLnBlbkZhY3Rvcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BlbkZhY3Rvcnk9dCx0aGlzfSx0LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlLG4saSxyLG8pe2lmKHZvaWQgMD09PXImJihyPXt9KSxyPVltdC5NZXRob2RzLmRlZmF1bHRzKHt9LFhtdCxyKSwtMT09PXQuU3VwcG9ydGVkUm90YXRpb24uaW5kZXhPZihyLnRleHRSb3RhdGlvbikpdGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCByb3RhdGlvbiAtICIrci50ZXh0Um90YXRpb24rIi4gU3VwcG9ydGVkIHJvdGF0aW9ucyBhcmUgIit0LlN1cHBvcnRlZFJvdGF0aW9uLmpvaW4oIiwgIikpO2lmKG51bGwhPXIudGV4dFNoZWFyJiZyLnRleHRTaGVhcjwtODB8fHIudGV4dFNoZWFyPjgwKXRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgc2hlYXIgYW5nbGUgLSAiK3IudGV4dFNoZWFyKyIuIE11c3QgYmUgYmV0d2VlbiAtODAgYW5kIDgwIik7dmFyIGE9TWF0aC5hYnMoTWF0aC5hYnMoci50ZXh0Um90YXRpb24pLTkwKT40NSxzPWE/bjppLGw9YT9pOm4sYz1yLnRleHRTaGVhcix1PWMqTWF0aC5QSS8xODAsaD10aGlzLl9tZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0LGQ9aCpNYXRoLnRhbih1KSxwPXMvTWF0aC5jb3ModSktTWF0aC5hYnMoZCksZj1sKk1hdGguY29zKHUpLG09WW10LlN0cmluZ01ldGhvZHMuY29tYmluZVdoaXRlc3BhY2UoZSksZz0odGhpcy5fd3JhcHBlcj90aGlzLl93cmFwcGVyLndyYXAobSx0aGlzLl9tZWFzdXJlcixwLGYpLndyYXBwZWRUZXh0Om0pLnNwbGl0KCJcbiIpLF89dC5YT2Zmc2V0RmFjdG9yW3IueEFsaWduXSpwKk1hdGguc2luKHUpLXQuWU9mZnNldEZhY3RvcltyLnlBbGlnbl0qKGYtZy5sZW5ndGgqaCkseT1bMCwwXSx2PXIudGV4dFJvdGF0aW9uK2M7c3dpdGNoKHIudGV4dFJvdGF0aW9uKXtjYXNlIDkwOnk9W24rXywwXTticmVhaztjYXNlLTkwOnk9Wy1fLGldO2JyZWFrO2Nhc2UgMTgwOnk9W24saStfXTticmVhaztkZWZhdWx0Onk9WzAsLV9dfXZhciBiPXRoaXMuX3BlbkZhY3RvcnkuY3JlYXRlUGVuKGUse3RyYW5zbGF0ZTp5LHJvdGF0ZTp2fSxvKTt0aGlzLndyaXRlTGluZXMoZyxiLHAsaCxkLHIueEFsaWduKSxudWxsIT1iLmRlc3Ryb3kmJmIuZGVzdHJveSgpfSx0LnByb3RvdHlwZS53cml0ZUxpbmVzPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt0LmZvckVhY2goKGZ1bmN0aW9uKHQsYSl7ZS53cml0ZSh0LG4sbyxyPjA/KGErMSkqcjphKnIsKGErMSkqaSl9KSl9LHR9KSgpOyRtdC5YT2Zmc2V0RmFjdG9yPXtjZW50ZXI6LjUsbGVmdDowLHJpZ2h0OjF9LCRtdC5ZT2Zmc2V0RmFjdG9yPXtib3R0b206MSxjZW50ZXI6LjUsdG9wOjB9LCRtdC5TdXBwb3J0ZWRSb3RhdGlvbj1bLTkwLDAsMTgwLDkwXSxEbXQuV3JpdGVyPSRtdCwoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLChmdW5jdGlvbiBlKG4pe2Zvcih2YXIgaSBpbiBuKXQuaGFzT3duUHJvcGVydHkoaSl8fCh0W2ldPW5baV0pfSkoRG10KX0pKHptdCk7dmFyIEttdD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoS210LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgWm10PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQuYXBwZW5kPWZ1bmN0aW9uKGUsbil7Zm9yKHZhciBpPVtdLHI9MjtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWlbci0yXT1hcmd1bWVudHNbcl07dmFyIG89dC5jcmVhdGUuYXBwbHkodCxbbl0uY29uY2F0KGkpKTtyZXR1cm4gZS5hcHBlbmRDaGlsZChvKSxvfSx0LmNyZWF0ZT1mdW5jdGlvbihlKXtmb3IodmFyIG49W10saT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspbltpLTFdPWFyZ3VtZW50c1tpXTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiB0LmFkZENsYXNzZXMuYXBwbHkodCxbcl0uY29uY2F0KG4pKSxyfSx0LmFkZENsYXNzZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbi0xXT1hcmd1bWVudHNbbl07ZT1lLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXR9KSksbnVsbCE9dC5jbGFzc0xpc3Q/ZS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LmNsYXNzTGlzdC5hZGQoZSl9KSk6dC5zZXRBdHRyaWJ1dGUoImNsYXNzIixlLmpvaW4oIiAiKSl9LHQuZ2V0RGltZW5zaW9ucz1mdW5jdGlvbih0KXtpZih0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl0cnl7dmFyIGU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57d2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHR9fWNhdGNoKHQpe31yZXR1cm57aGVpZ2h0OjAsd2lkdGg6MH19LHR9KSgpO0ttdC5IdG1sVXRpbHM9Wm10O3ZhciBKbXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7dm9pZCAwPT09biYmKG49ITEpO3ZhciBpPXRoaXM7dGhpcy5lbGVtZW50PXQsdGhpcy5jbGFzc05hbWU9ZSx0aGlzLmFkZFRpdGxlPW4sdGhpcy5jcmVhdGVSdWxlcj1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1abXQuYXBwZW5kKGkuZWxlbWVudCwic3BhbiIsInRleHQtdG1wIixpLmNsYXNzTmFtZSk7ZS50ZXh0Q29udGVudD10O3ZhciBuPVptdC5nZXREaW1lbnNpb25zKGUpO3JldHVybiBpLmVsZW1lbnQucmVtb3ZlQ2hpbGQoZSksbn19LHRoaXMuY3JlYXRlUGVuPWZ1bmN0aW9uKHQsZSxuKXtudWxsPT1uJiYobj1pLmVsZW1lbnQpO3ZhciByPVptdC5hcHBlbmQobiwiZGl2IiwidGV4dC1ibG9jayIsaS5jbGFzc05hbWUpO3JldHVybiByLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsci5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAtMWVtKSB0cmFuc2xhdGUoIitlLnRyYW5zbGF0ZVswXSsicHgsICIrZS50cmFuc2xhdGVbMV0rInB4KSByb3RhdGUoIitlLnJvdGF0ZSsiZGVnKSIsci5zdHlsZS50cmFuc2Zvcm1PcmlnaW49IjAgMS4yZW0iLGkuYWRkVGl0bGUmJnIuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdCksaS5jcmVhdGVIdG1sTGluZVBlbihyKX19cmV0dXJuIHQucHJvdG90eXBlLnNldEFkZFRpdGxlPWZ1bmN0aW9uKHQpe3RoaXMuYWRkVGl0bGU9dH0sdC5wcm90b3R5cGUuY3JlYXRlSHRtbExpbmVQZW49ZnVuY3Rpb24odCl7cmV0dXJue3dyaXRlOmZ1bmN0aW9uKGUsbixpLHIsbyl7dmFyIGE9Wm10LmFwcGVuZCh0LCJkaXYiLCJ0ZXh0LWxpbmUiKTthLnRleHRDb250ZW50PWUsYS5zdHlsZS53aWR0aD1uKyJweCIsYS5zdHlsZS50ZXh0QWxpZ249aSxhLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsYS5zdHlsZS53aGl0ZVNwYWNlPSJub3dyYXAiLGEuc3R5bGUudG9wPW8rInB4IixhLnN0eWxlLmxlZnQ9cisicHgifX19LHR9KSgpO0ttdC5IdG1sQ29udGV4dD1KbXQsT2JqZWN0LmRlZmluZVByb3BlcnR5KE9tdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFFtdD16bXQsdGd0PUttdCxlZ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5hcHBlbmQ9ZnVuY3Rpb24oZSxuKXtmb3IodmFyIGk9W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspaVtyLTJdPWFyZ3VtZW50c1tyXTt2YXIgbz10LmNyZWF0ZS5hcHBseSh0LFtuXS5jb25jYXQoaSkpO3JldHVybiBlLmFwcGVuZENoaWxkKG8pLG99LHQuY3JlYXRlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj1bXSxpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyluW2ktMV09YXJndW1lbnRzW2ldO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LlNWR19OUyxlKTtyZXR1cm4gdGd0Lkh0bWxVdGlscy5hZGRDbGFzc2VzLmFwcGx5KHRndC5IdG1sVXRpbHMsW3JdLmNvbmNhdChuKSkscn0sdC5nZXREaW1lbnNpb25zPWZ1bmN0aW9uKHQpe2lmKHQuZ2V0QkJveCl0cnl7dmFyIGU9dC5nZXRCQm94KCk7cmV0dXJue3dpZHRoOmUud2lkdGgsaGVpZ2h0OmUuaGVpZ2h0fX1jYXRjaCh0KXt9cmV0dXJue2hlaWdodDowLHdpZHRoOjB9fSx0fSkoKTtlZ3QuU1ZHX05TPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsT210LlN2Z1V0aWxzPWVndDt2YXIgbmd0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3ZvaWQgMD09PW4mJihuPSExKTt2YXIgaT10aGlzO3RoaXMuZWxlbWVudD10LHRoaXMuY2xhc3NOYW1lPWUsdGhpcy5hZGRUaXRsZUVsZW1lbnQ9bix0aGlzLmNyZWF0ZVJ1bGVyPWZ1bmN0aW9uKCl7dmFyIHQ9aS5nZXRUZXh0RWxlbWVudHMoaS5lbGVtZW50KSxlPXQucGFyZW50RWxlbWVudCxuPXQuY29udGFpbmVyRWxlbWVudCxyPXQudGV4dEVsZW1lbnQ7cmV0dXJuIGZ1bmN0aW9uKHQpe2UuYXBwZW5kQ2hpbGQobiksci50ZXh0Q29udGVudD10O3ZhciBpPWVndC5nZXREaW1lbnNpb25zKHIpO3JldHVybiBlLnJlbW92ZUNoaWxkKG4pLGl9fSx0aGlzLmNyZWF0ZVBlbj1mdW5jdGlvbih0LGUsbil7bnVsbD09biYmKG49aS5lbGVtZW50KTt2YXIgcj1lZ3QuYXBwZW5kKG4sImciLCJ0ZXh0LWNvbnRhaW5lciIsaS5jbGFzc05hbWUpO2kuYWRkVGl0bGVFbGVtZW50JiYoZWd0LmFwcGVuZChyLCJ0aXRsZSIpLnRleHRDb250ZW50PXQsci5zZXRBdHRyaWJ1dGUoInRpdGxlIix0KSk7dmFyIG89ZWd0LmFwcGVuZChyLCJnIiwidGV4dC1hcmVhIik7cmV0dXJuIG8uc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitlLnRyYW5zbGF0ZVswXSsiLCIrZS50cmFuc2xhdGVbMV0rIilyb3RhdGUoIitlLnJvdGF0ZSsiKSIpLGkuY3JlYXRlU3ZnTGluZVBlbihvKX19cmV0dXJuIHQucHJvdG90eXBlLnNldEFkZFRpdGxlRWxlbWVudD1mdW5jdGlvbih0KXt0aGlzLmFkZFRpdGxlRWxlbWVudD10fSx0LnByb3RvdHlwZS5jcmVhdGVTdmdMaW5lUGVuPWZ1bmN0aW9uKGUpe3JldHVybnt3cml0ZTpmdW5jdGlvbihuLGkscixvLGEpe28rPWkqUW10LldyaXRlci5YT2Zmc2V0RmFjdG9yW3JdO3ZhciBzPWVndC5hcHBlbmQoZSwidGV4dCIsInRleHQtbGluZSIpO3MudGV4dENvbnRlbnQ9bixzLnNldEF0dHJpYnV0ZSgidGV4dC1hbmNob3IiLHQuQW5jaG9yTWFwW3JdKSxzLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrbysiLCIrYSsiKSIpLHMuc2V0QXR0cmlidXRlKCJ5IiwiLTAuMjVlbSIpfX19LHQucHJvdG90eXBlLmdldFRleHRFbGVtZW50cz1mdW5jdGlvbih0KXtpZigidGV4dCI9PT10LnRhZ05hbWUpcmV0dXJuIG51bGw9PShlPXQucGFyZW50RWxlbWVudCkmJihlPXQucGFyZW50Tm9kZSksZS5yZW1vdmVDaGlsZCh0KSx7Y29udGFpbmVyRWxlbWVudDp0LHBhcmVudEVsZW1lbnQ6ZSx0ZXh0RWxlbWVudDp0fTt2YXIgZSxuPXQucXVlcnlTZWxlY3RvcigidGV4dCIpO2lmKG51bGwhPW4pcmV0dXJuIG51bGw9PShlPW4ucGFyZW50RWxlbWVudCkmJihlPW4ucGFyZW50Tm9kZSksZS5yZW1vdmVDaGlsZChuKSx7Y29udGFpbmVyRWxlbWVudDpuLHBhcmVudEVsZW1lbnQ6ZSx0ZXh0RWxlbWVudDpufTt2YXIgaT1lZ3QuY3JlYXRlKCJ0ZXh0Iix0aGlzLmNsYXNzTmFtZSk7cmV0dXJue2NvbnRhaW5lckVsZW1lbnQ6aSxwYXJlbnRFbGVtZW50OnQsdGV4dEVsZW1lbnQ6aX19LHR9KSgpO25ndC5BbmNob3JNYXA9e2NlbnRlcjoibWlkZGxlIixsZWZ0OiJzdGFydCIscmlnaHQ6ImVuZCJ9LE9tdC5TdmdDb250ZXh0PW5ndDt2YXIgaWd0PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShpZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByZ3Q9em10LG9ndD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt2b2lkIDA9PT1lJiYoZT0xMCksdm9pZCAwPT09biYmKG49e30pO3ZhciBpPXRoaXM7dGhpcy5jdHg9dCx0aGlzLmxpbmVIZWlnaHQ9ZSx0aGlzLnN0eWxlPW4sdGhpcy5jcmVhdGVSdWxlcj1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5jdHguZm9udD1pLnN0eWxlLmZvbnQse3dpZHRoOmkuY3R4Lm1lYXN1cmVUZXh0KHQpLndpZHRoLGhlaWdodDppLmxpbmVIZWlnaHR9fX0sdGhpcy5jcmVhdGVQZW49ZnVuY3Rpb24odCxlLG4pe3JldHVybiBudWxsPT1uJiYobj1pLmN0eCksbi5zYXZlKCksbi50cmFuc2xhdGUoZS50cmFuc2xhdGVbMF0sZS50cmFuc2xhdGVbMV0pLG4ucm90YXRlKGUucm90YXRlKk1hdGguUEkvMTgwKSxpLmNyZWF0ZUNhbnZhc1BlbihuKX0sdm9pZCAwPT09dGhpcy5zdHlsZS5maWxsJiYodGhpcy5zdHlsZS5maWxsPSIjNDQ0Iil9cmV0dXJuIHQucHJvdG90eXBlLmNyZWF0ZUNhbnZhc1Blbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybntkZXN0cm95OmZ1bmN0aW9uKCl7dC5yZXN0b3JlKCl9LHdyaXRlOmZ1bmN0aW9uKG4saSxyLG8sYSl7bys9aSpyZ3QuV3JpdGVyLlhPZmZzZXRGYWN0b3Jbcl0sdC50ZXh0QWxpZ249cixudWxsIT1lLnN0eWxlLmZvbnQmJih0LmZvbnQ9ZS5zdHlsZS5mb250KSxudWxsIT1lLnN0eWxlLmZpbGwmJih0LmZpbGxTdHlsZT1lLnN0eWxlLmZpbGwsdC5maWxsVGV4dChuLG8sYSkpLG51bGwhPWUuc3R5bGUuc3Ryb2tlJiYodC5zdHJva2VTdHlsZT1lLnN0eWxlLmZpbGwsdC5zdHJva2VUZXh0KG4sbyxhKSl9fX0sdH0pKCk7aWd0LkNhbnZhc0NvbnRleHQ9b2d0LChmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgbiBpbiBlKXQuaGFzT3duUHJvcGVydHkobil8fCh0W25dPWVbbl0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlKE9tdCksZShpZ3QpLGUoS210KX0pKFJtdCk7dmFyIGFndD17fSxzZ3Q9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KHNndCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGxndD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMucnVsZXI9bnVsbCE9dC5jcmVhdGVSdWxlcj90LmNyZWF0ZVJ1bGVyKCk6dH1yZXR1cm4gdC5wcm90b3R5cGUubWVhc3VyZT1mdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dC5IRUlHSFRfVEVYVCksdGhpcy5ydWxlcihlKX0sdH0pKCk7bGd0LkhFSUdIVF9URVhUPSJiZHBxbCIsc2d0LkFic3RyYWN0TWVhc3VyZXI9bGd0O3ZhciBjZ3Q9e30sdWd0PXt9LGhndD17fSxkZ3Q9dmUmJnZlLl9fZXh0ZW5kc3x8KGZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9O3JldHVybiBmdW5jdGlvbihlLG4pe2Z1bmN0aW9uIGkoKXt0aGlzLmNvbnN0cnVjdG9yPWV9dChlLG4pLGUucHJvdG90eXBlPW51bGw9PT1uP09iamVjdC5jcmVhdGUobik6KGkucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyBpKX19KSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShoZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBwZ3Q9c2d0LGZndD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3ZvaWQgMD09PW4mJihuPSExKTt2YXIgaT10LmNhbGwodGhpcyxlKXx8dGhpcztyZXR1cm4gaS51c2VHdWFyZHM9bixpfXJldHVybiBkZ3QoZSx0KSxlLnByb3RvdHlwZS5fYWRkR3VhcmRzPWZ1bmN0aW9uKHQpe3JldHVybiBwZ3QuQWJzdHJhY3RNZWFzdXJlci5IRUlHSFRfVEVYVCt0K3BndC5BYnN0cmFjdE1lYXN1cmVyLkhFSUdIVF9URVhUfSxlLnByb3RvdHlwZS5fbWVhc3VyZUxpbmU9ZnVuY3Rpb24oZSxuKXt2b2lkIDA9PT1uJiYobj0hMSk7dmFyIGk9dGhpcy51c2VHdWFyZHN8fG58fC9eW1x0IF0kLy50ZXN0KGUpLHI9aT90aGlzLl9hZGRHdWFyZHMoZSk6ZSxvPXQucHJvdG90eXBlLm1lYXN1cmUuY2FsbCh0aGlzLHIpO3JldHVybiBvLndpZHRoLT1pPzIqdGhpcy5nZXRHdWFyZFdpZHRoKCk6MCxvfSxlLnByb3RvdHlwZS5tZWFzdXJlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodm9pZCAwPT09dCYmKHQ9cGd0LkFic3RyYWN0TWVhc3VyZXIuSEVJR0hUX1RFWFQpLCIiPT09dC50cmltKCkpcmV0dXJue3dpZHRoOjAsaGVpZ2h0OjB9O3ZhciBuPXQudHJpbSgpLnNwbGl0KCJcbiIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX21lYXN1cmVMaW5lKHQpfSkpO3JldHVybntoZWlnaHQ6bi5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS5oZWlnaHR9KSwwKSx3aWR0aDpuLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5tYXgodCxlLndpZHRoKX0pLDApfX0sZS5wcm90b3R5cGUuZ2V0R3VhcmRXaWR0aD1mdW5jdGlvbigpe3JldHVybiBudWxsPT10aGlzLmd1YXJkV2lkdGgmJih0aGlzLmd1YXJkV2lkdGg9dC5wcm90b3R5cGUubWVhc3VyZS5jYWxsKHRoaXMpLndpZHRoKSx0aGlzLmd1YXJkV2lkdGh9LGV9KShwZ3QuQWJzdHJhY3RNZWFzdXJlcik7aGd0Lk1lYXN1cmVyPWZndDt2YXIgbWd0PXZlJiZ2ZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXQoZSxuKSxlLnByb3RvdHlwZT1udWxsPT09bj9PYmplY3QuY3JlYXRlKG4pOihpLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgaSl9fSkoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodWd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZ2d0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gbWd0KGUsdCksZS5wcm90b3R5cGUuX21lYXN1cmVDaGFyYWN0ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvdG90eXBlLl9tZWFzdXJlTGluZS5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9tZWFzdXJlTGluZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dC5zcGxpdCgiIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fbWVhc3VyZUNoYXJhY3Rlcih0KX0pKTtyZXR1cm57aGVpZ2h0Om4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUuaGVpZ2h0KX0pLDApLHdpZHRoOm4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2Uud2lkdGh9KSwwKX19LGV9KShoZ3QuTWVhc3VyZXIpO3VndC5DaGFyYWN0ZXJNZWFzdXJlcj1nZ3Q7dmFyIF9ndD12ZSYmdmUuX19leHRlbmRzfHwoZnVuY3Rpb24oKXt2YXIgdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX10KGUsbiksZS5wcm90b3R5cGU9bnVsbD09PW4/T2JqZWN0LmNyZWF0ZShuKTooaS5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IGkpfX0pKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGNndCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHlndD1CbXQsdmd0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dmFyIGk9dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gaS5jYWNoZT1uZXcgeWd0LkNhY2hlKChmdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUNoYXJhY3Rlck5vdEZyb21DYWNoZSh0KX0pKSxpfXJldHVybiBfZ3QoZSx0KSxlLnByb3RvdHlwZS5fbWVhc3VyZUNoYXJhY3Rlck5vdEZyb21DYWNoZT1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuX21lYXN1cmVDaGFyYWN0ZXIuY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5fbWVhc3VyZUNoYXJhY3Rlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jYWNoZS5nZXQodCl9LGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5jYWNoZS5jbGVhcigpfSxlfSkodWd0LkNoYXJhY3Rlck1lYXN1cmVyKTtjZ3QuQ2FjaGVDaGFyYWN0ZXJNZWFzdXJlcj12Z3Q7dmFyIGJndD17fSx4Z3Q9dmUmJnZlLl9fZXh0ZW5kc3x8KGZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9O3JldHVybiBmdW5jdGlvbihlLG4pe2Z1bmN0aW9uIGkoKXt0aGlzLmNvbnN0cnVjdG9yPWV9dChlLG4pLGUucHJvdG90eXBlPW51bGw9PT1uP09iamVjdC5jcmVhdGUobik6KGkucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyBpKX19KSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShiZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB3Z3Q9Qm10LFNndD1zZ3QsTWd0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBuLmRpbUNhY2hlPW5ldyB3Z3QuQ2FjaGUoKGZ1bmN0aW9uKHQpe3JldHVybiBuLl9tZWFzdXJlTm90RnJvbUNhY2hlKHQpfSkpLG59cmV0dXJuIHhndChlLHQpLGUucHJvdG90eXBlLl9tZWFzdXJlTm90RnJvbUNhY2hlPWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS5tZWFzdXJlLmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUubWVhc3VyZT1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9U2d0LkFic3RyYWN0TWVhc3VyZXIuSEVJR0hUX1RFWFQpLHRoaXMuZGltQ2FjaGUuZ2V0KHQpfSxlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZGltQ2FjaGUuY2xlYXIoKSx0LnByb3RvdHlwZS5yZXNldC5jYWxsKHRoaXMpfSxlfSkoY2d0LkNhY2hlQ2hhcmFjdGVyTWVhc3VyZXIpO2JndC5DYWNoZU1lYXN1cmVyPU1ndCwoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXtmb3IodmFyIG4gaW4gZSl0Lmhhc093blByb3BlcnR5KG4pfHwodFtuXT1lW25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZShzZ3QpLGUoY2d0KSxlKGJndCksZSh1Z3QpLGUoaGd0KX0pKGFndCk7dmFyIEVndD17fSxUZ3Q9e30sQ2d0PXt9LEFndD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoQWd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIga2d0PUJtdCxMZ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMubWF4TGluZXMoMS8wKSx0aGlzLnRleHRUcmltbWluZygiZWxsaXBzaXMiKSx0aGlzLmFsbG93QnJlYWtpbmdXb3JkcyghMSksdGhpcy5fdG9rZW5pemVyPW5ldyBrZ3QuVG9rZW5pemVyLHRoaXMuX2JyZWFraW5nQ2hhcmFjdGVyPSItIn1yZXR1cm4gdC5wcm90b3R5cGUubWF4TGluZXM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbWF4TGluZXM6KHRoaXMuX21heExpbmVzPXQsdGhpcyl9LHQucHJvdG90eXBlLnRleHRUcmltbWluZz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl90ZXh0VHJpbW1pbmc7aWYoImVsbGlwc2lzIiE9PXQmJiJub25lIiE9PXQpdGhyb3cgbmV3IEVycm9yKHQrIiAtIHVuc3VwcG9ydGVkIHRleHQgdHJpbW1pbmcgb3B0aW9uLiIpO3JldHVybiB0aGlzLl90ZXh0VHJpbW1pbmc9dCx0aGlzfSx0LnByb3RvdHlwZS5hbGxvd0JyZWFraW5nV29yZHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYWxsb3dCcmVha2luZ1dvcmRzOih0aGlzLl9hbGxvd0JyZWFraW5nV29yZHM9dCx0aGlzKX0sdC5wcm90b3R5cGUud3JhcD1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzO3ZvaWQgMD09PWkmJihpPTEvMCk7dmFyIG89e25vQnJva2VXb3JkczowLG5vTGluZXM6MCxvcmlnaW5hbFRleHQ6dCx0cnVuY2F0ZWRUZXh0OiIiLHdyYXBwZWRUZXh0OiIifSxhPXthdmFpbGFibGVMaW5lczpNYXRoLm1pbihNYXRoLmZsb29yKGkvZS5tZWFzdXJlKCkuaGVpZ2h0KSx0aGlzLl9tYXhMaW5lcyksYXZhaWxhYmxlV2lkdGg6bixjYW5GaXRUZXh0OiEwLGN1cnJlbnRMaW5lOiIiLHdyYXBwaW5nOm99LHM9dC5zcGxpdCgiXG4iKTtyZXR1cm4gcy5yZWR1Y2UoKGZ1bmN0aW9uKHQsbixpKXtyZXR1cm4gci5icmVha0xpbmVUb0ZpdFdpZHRoKHQsbixpIT09cy5sZW5ndGgtMSxlKX0pLGEpLndyYXBwaW5nfSx0LnByb3RvdHlwZS5icmVha0xpbmVUb0ZpdFdpZHRoPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPXRoaXM7dC5jYW5GaXRUZXh0fHwiIj09PXQud3JhcHBpbmcudHJ1bmNhdGVkVGV4dHx8KHQud3JhcHBpbmcudHJ1bmNhdGVkVGV4dCs9IlxuIiksdD10aGlzLl90b2tlbml6ZXIudG9rZW5pemUoZSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiByLndyYXBOZXh0VG9rZW4oZSx0LGkpfSksdCk7dmFyIG89a2d0LlN0cmluZ01ldGhvZHMudHJpbUVuZCh0LmN1cnJlbnRMaW5lKTtyZXR1cm4gdC53cmFwcGluZy5ub0xpbmVzKz0rKCIiIT09byksdC53cmFwcGluZy5ub0xpbmVzPT09dC5hdmFpbGFibGVMaW5lcyYmIm5vbmUiIT09dGhpcy5fdGV4dFRyaW1taW5nJiZuP3QuY2FuRml0VGV4dD0hMTp0LndyYXBwaW5nLndyYXBwZWRUZXh0Kz1vLHQuY3VycmVudExpbmU9IlxuIix0fSx0LnByb3RvdHlwZS5jYW5GaXRUb2tlbj1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcyxyPXQuc3BsaXQoIiIpLm1hcCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gbiE9PXQubGVuZ3RoLTE/ZStpLl9icmVha2luZ0NoYXJhY3RlcjplfSkpO3JldHVybiBuLm1lYXN1cmUodCkud2lkdGg8PWV8fHIuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiBuLm1lYXN1cmUodCkud2lkdGg8PWV9KSl9LHQucHJvdG90eXBlLmFkZEVsbGlwc2lzPWZ1bmN0aW9uKHQsZSxuKXtpZigibm9uZSI9PT10aGlzLl90ZXh0VHJpbW1pbmcpcmV0dXJue3JlbWFpbmluZ1Rva2VuOiIiLHdyYXBwZWRUb2tlbjp0fTt2YXIgaT10LnN1YnN0cmluZygwKS50cmltKCkscj1uLm1lYXN1cmUoaSkud2lkdGgsbz1uLm1lYXN1cmUoIi4uLiIpLndpZHRoLGE9dC5sZW5ndGg+MCYmIlxuIj09PXRbMF0/IlxuIjoiIjtpZihlPD1vKXt2YXIgcz1NYXRoLmZsb29yKGUvKG8vMykpO3JldHVybntyZW1haW5pbmdUb2tlbjp0LHdyYXBwZWRUb2tlbjphKyIuLi4iLnN1YnN0cigwLHMpfX1mb3IoO3Irbz5lOylpPWtndC5TdHJpbmdNZXRob2RzLnRyaW1FbmQoaS5zdWJzdHIoMCxpLmxlbmd0aC0xKSkscj1uLm1lYXN1cmUoaSkud2lkdGg7cmV0dXJue3JlbWFpbmluZ1Rva2VuOmtndC5TdHJpbmdNZXRob2RzLnRyaW1FbmQodC5zdWJzdHJpbmcoaS5sZW5ndGgpLCItIikudHJpbSgpLHdyYXBwZWRUb2tlbjphK2krIi4uLiJ9fSx0LnByb3RvdHlwZS53cmFwTmV4dFRva2VuPWZ1bmN0aW9uKHQsZSxuKXtpZighZS5jYW5GaXRUZXh0fHxlLmF2YWlsYWJsZUxpbmVzPT09ZS53cmFwcGluZy5ub0xpbmVzfHwhdGhpcy5jYW5GaXRUb2tlbih0LGUuYXZhaWxhYmxlV2lkdGgsbikpcmV0dXJuIHRoaXMuZmluaXNoV3JhcHBpbmcodCxlLG4pO2Zvcih2YXIgaT10O2k7KXt2YXIgcj10aGlzLmJyZWFrVG9rZW5Ub0ZpdEluV2lkdGgoaSxlLmN1cnJlbnRMaW5lLGUuYXZhaWxhYmxlV2lkdGgsbik7aWYoZS5jdXJyZW50TGluZT1yLmxpbmUsbnVsbCE9KGk9ci5yZW1haW5pbmdUb2tlbikpe2lmKGUud3JhcHBpbmcubm9Ccm9rZVdvcmRzKz0rci5icmVha1dvcmQsKytlLndyYXBwaW5nLm5vTGluZXMsZS5hdmFpbGFibGVMaW5lcz09PWUud3JhcHBpbmcubm9MaW5lcyl7dmFyIG89dGhpcy5hZGRFbGxpcHNpcyhlLmN1cnJlbnRMaW5lLGUuYXZhaWxhYmxlV2lkdGgsbik7cmV0dXJuIGUud3JhcHBpbmcud3JhcHBlZFRleHQrPW8ud3JhcHBlZFRva2VuLGUud3JhcHBpbmcudHJ1bmNhdGVkVGV4dCs9by5yZW1haW5pbmdUb2tlbitpLGUuY3VycmVudExpbmU9IlxuIixlfWUud3JhcHBpbmcud3JhcHBlZFRleHQrPWtndC5TdHJpbmdNZXRob2RzLnRyaW1FbmQoZS5jdXJyZW50TGluZSksZS5jdXJyZW50TGluZT0iXG4ifX1yZXR1cm4gZX0sdC5wcm90b3R5cGUuZmluaXNoV3JhcHBpbmc9ZnVuY3Rpb24odCxlLG4pe2lmKGUuY2FuRml0VGV4dCYmZS5hdmFpbGFibGVMaW5lcyE9PWUud3JhcHBpbmcubm9MaW5lcyYmIm5vbmUiIT09dGhpcy5fdGV4dFRyaW1taW5nKXt2YXIgaT10aGlzLmFkZEVsbGlwc2lzKGUuY3VycmVudExpbmUrdCxlLmF2YWlsYWJsZVdpZHRoLG4pO2Uud3JhcHBpbmcud3JhcHBlZFRleHQrPWkud3JhcHBlZFRva2VuLGUud3JhcHBpbmcudHJ1bmNhdGVkVGV4dCs9aS5yZW1haW5pbmdUb2tlbixlLndyYXBwaW5nLm5vQnJva2VXb3Jkcys9KyhpLnJlbWFpbmluZ1Rva2VuLmxlbmd0aDx0Lmxlbmd0aCksZS53cmFwcGluZy5ub0xpbmVzKz0rKGkud3JhcHBlZFRva2VuLmxlbmd0aD4wKSxlLmN1cnJlbnRMaW5lPSIifWVsc2UgZS53cmFwcGluZy50cnVuY2F0ZWRUZXh0Kz10O3JldHVybiBlLmNhbkZpdFRleHQ9ITEsZX0sdC5wcm90b3R5cGUuYnJlYWtUb2tlblRvRml0SW5XaWR0aD1mdW5jdGlvbih0LGUsbixpLHIpe2lmKHZvaWQgMD09PXImJihyPXRoaXMuX2JyZWFraW5nQ2hhcmFjdGVyKSxpLm1lYXN1cmUoZSt0KS53aWR0aDw9bilyZXR1cm57YnJlYWtXb3JkOiExLGxpbmU6ZSt0LHJlbWFpbmluZ1Rva2VuOm51bGx9O2lmKCIiPT09dC50cmltKCkpcmV0dXJue2JyZWFrV29yZDohMSxsaW5lOmUscmVtYWluaW5nVG9rZW46IiJ9O2lmKCF0aGlzLl9hbGxvd0JyZWFraW5nV29yZHMmJiIiIT09ZS50cmltKCkpcmV0dXJue2JyZWFrV29yZDohMSxsaW5lOmUscmVtYWluaW5nVG9rZW46dH07Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aCYmaS5tZWFzdXJlKGUrdC5zdWJzdHJpbmcoMCxvKzEpK3IpLndpZHRoPD1uOykrK287dmFyIGE9IiI7cmV0dXJuIG8+MCYmKGE9cikse2JyZWFrV29yZDpvPjAsbGluZTplK3Quc3Vic3RyaW5nKDAsbykrYSxyZW1haW5pbmdUb2tlbjp0LnN1YnN0cmluZyhvKX19LHR9KSgpO0FndC5XcmFwcGVyPUxndDt2YXIgUGd0PXZlJiZ2ZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXQoZSxuKSxlLnByb3RvdHlwZT1udWxsPT09bj9PYmplY3QuY3JlYXRlKG4pOihpLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgaSl9fSkoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoQ2d0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgTmd0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gUGd0KGUsdCksZS5wcm90b3R5cGUud3JhcD1mdW5jdGlvbihuLGkscixvKXt2YXIgYT10aGlzO2lmKHZvaWQgMD09PW8mJihvPTEvMCksbi5zcGxpdCgiXG4iKS5sZW5ndGg+MSl0aHJvdyBuZXcgRXJyb3IoIlNpbmdsZUxpbmVXcmFwcGVyIGlzIGRlc2lnbmVkIHRvIHdvcmsgb25seSBvbiBzaW5nbGUgbGluZSIpO3ZhciBzPWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS53cmFwLmNhbGwoYSxuLGksZSxvKX0sbD1zKHIpO2lmKGwubm9MaW5lczwyKXJldHVybiBsO2Zvcih2YXIgYz0wLHU9cixoPTA7aDxlLk5PX1dSQVBfSVRFUkFUSU9OUyYmdT5jOysraCl7dmFyIGQ9KHUrYykvMixwPXMoZCk7dGhpcy5hcmVTYW1lUmVzdWx0cyhsLHApPyh1PWQsbD1wKTpjPWR9cmV0dXJuIGx9LGUucHJvdG90eXBlLmFyZVNhbWVSZXN1bHRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubm9MaW5lcz09PWUubm9MaW5lcyYmdC50cnVuY2F0ZWRUZXh0PT09ZS50cnVuY2F0ZWRUZXh0fSxlfSkoQWd0LldyYXBwZXIpO05ndC5OT19XUkFQX0lURVJBVElPTlM9NSxDZ3QuU2luZ2xlTGluZVdyYXBwZXI9Tmd0LChmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgbiBpbiBlKXQuaGFzT3duUHJvcGVydHkobil8fCh0W25dPWVbbl0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlKENndCksZShBZ3QpfSkoVGd0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRWd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSWd0PVJtdCxSZ3Q9YWd0LE9ndD1UZ3Qsemd0PXptdCxEZ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLmNvbnRleHQ9dCx0aGlzLm1lYXN1cmVyPW5ldyBSZ3QuQ2FjaGVNZWFzdXJlcih0aGlzLmNvbnRleHQpLHRoaXMud3JhcHBlcj1uZXcgT2d0LldyYXBwZXIsdGhpcy53cml0ZXI9bmV3IHpndC5Xcml0ZXIodGhpcy5tZWFzdXJlcix0aGlzLmNvbnRleHQsdGhpcy53cmFwcGVyKX1yZXR1cm4gdC5zdmc9ZnVuY3Rpb24oZSxuLGkpe3JldHVybiBuZXcgdChuZXcgSWd0LlN2Z0NvbnRleHQoZSxuLGkpKX0sdC5jYW52YXM9ZnVuY3Rpb24oZSxuLGkpe3JldHVybiBuZXcgdChuZXcgSWd0LkNhbnZhc0NvbnRleHQoZSxuLGkpKX0sdC5odG1sPWZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gbmV3IHQobmV3IElndC5IdG1sQ29udGV4dChlLG4saSkpfSx0LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0LGUsbixpLHIpe3RoaXMud3JpdGVyLndyaXRlKHQsZSxuLGkscil9LHQucHJvdG90eXBlLmNsZWFyTWVhc3VyZXJDYWNoZT1mdW5jdGlvbigpe3RoaXMubWVhc3VyZXIucmVzZXQoKX0sdH0pKCk7RWd0LlR5cGVzZXR0ZXI9RGd0LChmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgbiBpbiBlKXQuaGFzT3duUHJvcGVydHkobil8fCh0W25dPWVbbl0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlKFJtdCksZShhZ3QpLGUoRWd0KSxlKEJtdCksZShUZ3QpLGUoem10KX0pKEltdCk7dmFyIEJndD17fSxIZ3Q9e30sRmd0PXt9LFZndD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KFZndCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFVndD1FZHQsamd0PXdpbmRvdy5BcnJheTtWZ3QuYWRkPWZ1bmN0aW9uIEdndCh0LGUpe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJhdHRlbXB0ZWQgdG8gYWRkIGFycmF5cyBvZiB1bmVxdWFsIGxlbmd0aCIpO3JldHVybiB0Lm1hcCgoZnVuY3Rpb24obixpKXtyZXR1cm4gdFtpXStlW2ldfSkpfSxWZ3QudW5pcT1mdW5jdGlvbiBXZ3QodCl7dmFyIGU9VWd0LnNldCgpLG49W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5oYXMoU3RyaW5nKHQpKXx8KGUuYWRkKFN0cmluZyh0KSksbi5wdXNoKHQpKX0pKSxufSxWZ3QuZmxhdHRlbj1mdW5jdGlvbiBxZ3QodCl7cmV0dXJuIGpndC5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLHQpfSxWZ3QuY3JlYXRlRmlsbGVkQXJyYXk9ZnVuY3Rpb24gWWd0KHQsZSl7Zm9yKHZhciBuPVtdLGk9MDtpPGU7aSsrKW5baV09ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChpKTp0O3JldHVybiBufTt2YXIgWGd0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShYZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciAkZ3Q9RWR0LEtndD13aW5kb3cuTWF0aDtmdW5jdGlvbiBaZ3QodCl7dmFyIGU9JGd0LnJnYih0KSxuPWZ1bmN0aW9uKHQpe3JldHVybih0Lz0yNTUpPD0uMDM5Mjg/dC8xMi45MjpLZ3QucG93KCh0Ky4wNTUpLzEuMDU1LDIuNCl9O3JldHVybi4yMTI2Km4oZS5yKSsuNzE1MipuKGUuZykrLjA3MjIqbihlLmIpfVhndC5jb250cmFzdD1mdW5jdGlvbiBKZ3QodCxlKXt2YXIgbj1aZ3QodCkrLjA1LGk9Wmd0KGUpKy4wNTtyZXR1cm4gbj5pP24vaTppL259LFhndC5saWdodGVuQ29sb3I9ZnVuY3Rpb24gUWd0KHQsZSl7cmV0dXJuICRndC5jb2xvcih0KS5icmlnaHRlcihlKS5yZ2IoKS50b1N0cmluZygpfSxYZ3QuY29sb3JUZXN0PWZ1bmN0aW9uIHRfdCh0LGUpe3QuY2xhc3NlZChlLCEwKTt2YXIgbj10LnN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIik7aWYoInRyYW5zcGFyZW50Ij09PW4pcmV0dXJuIG51bGw7dmFyIGk9L1woKC4rKVwpLy5leGVjKG4pO2lmKCFpKXJldHVybiBudWxsO3ZhciByPWlbMV0uc3BsaXQoIiwiKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSt0LG49ZS50b1N0cmluZygxNik7cmV0dXJuIGU8MTY/IjAiK246bn0pKTtpZig0PT09ci5sZW5ndGgmJiIwMCI9PT1yWzNdKXJldHVybiBudWxsO3ZhciBvPSIjIityLmpvaW4oIiIpO3JldHVybiB0LmNsYXNzZWQoZSwhMSksb307dmFyIGVfdD17fTshKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9RWR0LG49d2luZG93Lk1hdGg7ZnVuY3Rpb24gaSh0KXt2YXIgZTt0cnl7ZT10Lm5vZGUoKS5nZXRCQm94KCl9Y2F0Y2godCl7ZT17eDowLHk6MCx3aWR0aDowLGhlaWdodDowfX1yZXR1cm4gZX10LmNvbnRhaW5zPWZ1bmN0aW9uIHIodCxlKXtmb3IodmFyIG49ZTtudWxsIT1uJiZuIT09dDspbj1uLnBhcmVudE5vZGU7cmV0dXJuIG49PT10fSx0LmVsZW1lbnRCQm94PWksdC5lbnRpdHlCb3VuZHM9ZnVuY3Rpb24gbyh0KXtpZih0IGluc3RhbmNlb2YgU1ZHRWxlbWVudClyZXR1cm4gaShlLnNlbGVjdCh0KSk7aWYodCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXt2YXIgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4Om4ubGVmdCx5Om4udG9wLHdpZHRoOm4ud2lkdGgsaGVpZ2h0Om4uaGVpZ2h0fX1yZXR1cm57eDowLHk6MCx3aWR0aDowLGhlaWdodDowfX0sdC5TQ1JFRU5fUkVGUkVTSF9SQVRFX01JTExJU0VDT05EUz0xZTMvNjAsdC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVQb2x5ZmlsbD1mdW5jdGlvbiBhKGUpe251bGwhPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShlKTpzZXRUaW1lb3V0KGUsdC5TQ1JFRU5fUkVGUkVTSF9SQVRFX01JTExJU0VDT05EUyl9LHQuZWxlbWVudFdpZHRoPWZ1bmN0aW9uIHModCl7dmFyIG49dCBpbnN0YW5jZW9mIGUuc2VsZWN0aW9uP3Qubm9kZSgpOnQsaT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShuKTtyZXR1cm4gbShpLCJ3aWR0aCIpK20oaSwicGFkZGluZy1sZWZ0IikrbShpLCJwYWRkaW5nLXJpZ2h0IikrbShpLCJib3JkZXItbGVmdC13aWR0aCIpK20oaSwiYm9yZGVyLXJpZ2h0LXdpZHRoIil9LHQuZWxlbWVudEhlaWdodD1mdW5jdGlvbiBsKHQpe3ZhciBuPXQgaW5zdGFuY2VvZiBlLnNlbGVjdGlvbj90Lm5vZGUoKTp0LGk9d2luZG93LmdldENvbXB1dGVkU3R5bGUobik7cmV0dXJuIG0oaSwiaGVpZ2h0IikrbShpLCJwYWRkaW5nLXRvcCIpK20oaSwicGFkZGluZy1ib3R0b20iKSttKGksImJvcmRlci10b3Atd2lkdGgiKSttKGksImJvcmRlci1ib3R0b20td2lkdGgiKX07dmFyIGM9Iig/OlstK10/WzAtOV0qXFwuP1swLTldKykiLHU9Iig/Oig/OlxccyssP1xccyopfCg/OixcXHMqKSkiLGg9bmV3IFJlZ0V4cCgidHJhbnNsYXRlXFxzKlxcKFxccyooIitjKyIpKD86Iit1KyIoIitjKyIpKT9cXHMqXFwpIiksZD1uZXcgUmVnRXhwKCJyb3RhdGVcXHMqXFwoXFxzKigiK2MrIilcXHMqXFwpIikscD1uZXcgUmVnRXhwKCJzY2FsZVxccypcXChcXHMqKCIrYysiKSg/OiIrdSsiKCIrYysiKSk/XFxzKlxcKSIpO2Z1bmN0aW9uIGYodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybnttaW46dCxtYXg6dH07aWYodCBpbnN0YW5jZW9mIE9iamVjdCYmIm1pbiJpbiB0JiYibWF4ImluIHQpcmV0dXJuIHQ7dGhyb3cgbmV3IEVycm9yKCJpbnB1dCAnIit0KyInIGNhbid0IGJlIHBhcnNlZCBhcyBhbiBSYW5nZSIpfWZ1bmN0aW9uIG0odCxlKXt2YXIgbj10LmdldFByb3BlcnR5VmFsdWUoZSk7cmV0dXJuIHBhcnNlRmxvYXQobil8fDB9dC5nZXRUcmFuc2xhdGVWYWx1ZXM9ZnVuY3Rpb24gZyh0KXt2YXIgZT1oLmV4ZWModC5hdHRyKCJ0cmFuc2Zvcm0iKSk7aWYobnVsbCE9ZSl7dmFyIG49ZVsyXTtyZXR1cm5bK2VbMV0sKyh2b2lkIDA9PT1uPzA6bildfXJldHVyblswLDBdfSx0LmdldFJvdGF0ZT1mdW5jdGlvbiBfKHQpe3ZhciBlPWQuZXhlYyh0LmF0dHIoInRyYW5zZm9ybSIpKTtyZXR1cm4gbnVsbCE9ZT8rZVsxXTowfSx0LmdldFNjYWxlVmFsdWVzPWZ1bmN0aW9uIHkodCl7dmFyIGU9cC5leGVjKHQuYXR0cigidHJhbnNmb3JtIikpO2lmKG51bGwhPWUpe3ZhciBuPWVbMV0saT1lWzJdO3JldHVyblsrbixudWxsPT1pPytuOitpXX1yZXR1cm5bMCwwXX0sdC5jbGllbnRSZWN0c092ZXJsYXA9ZnVuY3Rpb24gdih0LGUpe3JldHVybiEobi5mbG9vcih0LnJpZ2h0KTw9bi5jZWlsKGUubGVmdCl8fG4uY2VpbCh0LmxlZnQpPj1uLmZsb29yKGUucmlnaHQpfHxuLmZsb29yKHQuYm90dG9tKTw9bi5jZWlsKGUudG9wKXx8bi5jZWlsKHQudG9wKT49bi5mbG9vcihlLmJvdHRvbSkpfSx0LmV4cGFuZFJlY3Q9ZnVuY3Rpb24gYih0LGUpe3JldHVybntsZWZ0OnQubGVmdC1lLHRvcDp0LnRvcC1lLHJpZ2h0OnQucmlnaHQrZSxib3R0b206dC5ib3R0b20rZSx3aWR0aDp0LndpZHRoKzIqZSxoZWlnaHQ6dC5oZWlnaHQrMiplfX0sdC5jbGllbnRSZWN0SW5zaWRlPWZ1bmN0aW9uIHgodCxlKXtyZXR1cm4gbi5mbG9vcihlLmxlZnQpPD1uLmNlaWwodC5sZWZ0KSYmbi5mbG9vcihlLnRvcCk8PW4uY2VpbCh0LnRvcCkmJm4uZmxvb3IodC5yaWdodCk8PW4uY2VpbChlLnJpZ2h0KSYmbi5mbG9vcih0LmJvdHRvbSk8PW4uY2VpbChlLmJvdHRvbSl9LHQuaW50ZXJzZWN0c0JCb3g9ZnVuY3Rpb24gdyh0LGUsbixpKXt2b2lkIDA9PT1pJiYoaT0uNSk7dmFyIHI9Zih0KSxvPWYoZSk7cmV0dXJuIG4ueCtuLndpZHRoPj1yLm1pbi1pJiZuLng8PXIubWF4K2kmJm4ueStuLmhlaWdodD49by5taW4taSYmbi55PD1vLm1heCtpfSx0LmdldEh0bWxFbGVtZW50QW5jZXN0b3JzPWZ1bmN0aW9uIFModCl7Zm9yKHZhciBlPVtdO3QmJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDspZS5wdXNoKHQpLHQ9dC5wYXJlbnRFbGVtZW50O3JldHVybiBlfSx0LmdldEVsZW1lbnRUcmFuc2Zvcm09ZnVuY3Rpb24gTSh0KXt2YXIgZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpO3JldHVybihmdW5jdGlvbiBuKHQpe2lmKG51bGw9PXR8fCJub25lIj09PXQpcmV0dXJuIG51bGw7dmFyIGU9dC5tYXRjaChFKTtpZihudWxsPT1lfHxlLmxlbmd0aDwyKXJldHVybiBudWxsO3ZhciBuPWVbMV0uc3BsaXQoVCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VGbG9hdCh0KX0pKTtyZXR1cm4gNiE9bi5sZW5ndGg/bnVsbDpufSkoZS5nZXRQcm9wZXJ0eVZhbHVlKCItd2Via2l0LXRyYW5zZm9ybSIpfHxlLmdldFByb3BlcnR5VmFsdWUoIi1tb3otdHJhbnNmb3JtIil8fGUuZ2V0UHJvcGVydHlWYWx1ZSgiLW1zLXRyYW5zZm9ybSIpfHxlLmdldFByb3BlcnR5VmFsdWUoIi1vLXRyYW5zZm9ybSIpfHxlLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpKX07dmFyIEU9L15tYXRyaXhcKChbXildKylcKSQvLFQ9L1ssIF0rL30pKGVfdCk7dmFyIG5fdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkobl90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaV90PUVkdCxyX3Q9ZV90LG9fdD13aW5kb3cuTWF0aCxhX3Q9WzEsMCwwLDEsMCwwXTtmdW5jdGlvbiBzX3QodCxlKXtyZXR1cm5bdFswXSplWzBdK3RbMl0qZVsxXSx0WzFdKmVbMF0rdFszXSplWzFdLHRbMF0qZVsyXSt0WzJdKmVbM10sdFsxXSplWzJdK3RbM10qZVszXSx0WzBdKmVbNF0rdFsyXSplWzVdK3RbNF0sdFsxXSplWzRdK3RbM10qZVs1XSt0WzVdXX1mdW5jdGlvbiBsX3QodCxlKXtyZXR1cm5bdFswXSx0WzFdLHRbMl0sdFszXSx0WzBdKmVbMF0rdFsyXSplWzFdK3RbNF0sdFsxXSplWzBdK3RbM10qZVsxXSt0WzVdXX1mdW5jdGlvbiBjX3QodCl7dmFyIGU9dFswXSp0WzNdLXRbMV0qdFsyXTtpZigwPT09ZSl0aHJvdyBuZXcgRXJyb3IoInNpbmd1bGFyIG1hdHJpeCIpO3ZhciBuPTEvZTtyZXR1cm5bbip0WzNdLG4qLXRbMV0sbiotdFsyXSxuKnRbMF0sbiooLXRbM10qdFs0XSt0WzJdKnRbNV0pLG4qKHRbMV0qdFs0XSstdFswXSp0WzVdKV19bl90LmluUmFuZ2U9ZnVuY3Rpb24gdV90KHQsZSxuKXtyZXR1cm4gb190Lm1pbihlLG4pPD10JiZ0PD1vX3QubWF4KGUsbil9LG5fdC5jbGFtcD1mdW5jdGlvbiBoX3QodCxlLG4pe3JldHVybiBvX3QubWluKG9fdC5tYXgoZSx0KSxuKX0sbl90Lm1heD1mdW5jdGlvbiBkX3QodCxlLG4pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6bnVsbCxyPW51bGw9PWk/ZTpuLG89bnVsbD09aT9pX3QubWF4KHQpOmlfdC5tYXgodCxpKTtyZXR1cm4gdm9pZCAwIT09bz9vOnJ9LG5fdC5taW49ZnVuY3Rpb24gcF90KHQsZSxuKXt2YXIgaT0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOm51bGwscj1udWxsPT1pP2U6bixvPW51bGw9PWk/aV90Lm1pbih0KTppX3QubWluKHQsaSk7cmV0dXJuIHZvaWQgMCE9PW8/bzpyfSxuX3QuaXNOYU49ZnVuY3Rpb24gZl90KHQpe3JldHVybiB0IT10fSxuX3QuaXNWYWxpZE51bWJlcj1mdW5jdGlvbiBtX3QodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0LXQ8MX0sbl90LnJhbmdlPWZ1bmN0aW9uIGdfdCh0LGUsbil7aWYodm9pZCAwPT09biYmKG49MSksMD09PW4pdGhyb3cgbmV3IEVycm9yKCJzdGVwIGNhbm5vdCBiZSAwIik7Zm9yKHZhciBpPW9fdC5tYXgob190LmNlaWwoKGUtdCkvbiksMCkscj1bXSxvPTA7bzxpOysrbylyW29dPXQrbipvO3JldHVybiByfSxuX3QuZGlzdGFuY2VTcXVhcmVkPWZ1bmN0aW9uIF9fdCh0LGUpe3JldHVybiBvX3QucG93KGUueS10LnksMikrb190LnBvdyhlLngtdC54LDIpfSxuX3QuZGVncmVlc1RvUmFkaWFucz1mdW5jdGlvbiB5X3QodCl7cmV0dXJuIHQvMzYwKm9fdC5QSSoyfSxuX3Qud2l0aGluPWZ1bmN0aW9uIHZfdCh0LGUpe3JldHVybiBlLnRvcExlZnQueDw9dC54JiZlLmJvdHRvbVJpZ2h0Lng+PXQueCYmZS50b3BMZWZ0Lnk8PXQueSYmZS5ib3R0b21SaWdodC55Pj10Lnl9LG5fdC5ib3VuZHNJbnRlcnNlY3RzPWZ1bmN0aW9uIGJfdCh0LGUsbixpLHIsbyxhLHMpe3JldHVybiB0PD1yK2EmJnI8PXQrbiYmZTw9bytzJiZvPD1lK2l9LG5fdC5nZXRDdW11bGF0aXZlVHJhbnNmb3JtPWZ1bmN0aW9uIHhfdCh0KXtmb3IodmFyIGU9cl90LmdldEh0bWxFbGVtZW50QW5jZXN0b3JzKHQpLG49YV90LGk9bnVsbCxyPTAsbz1lO3I8by5sZW5ndGg7cisrKXt2YXIgYT1vW3JdLHM9cl90LmdldEVsZW1lbnRUcmFuc2Zvcm0oYSk7aWYobnVsbCE9cyl7dmFyIGw9YS5jbGllbnRXaWR0aC8yLGM9YS5jbGllbnRIZWlnaHQvMjtuPWxfdChuLFtsLGNdKSxuPWxfdChuPXNfdChuLGNfdChzKSksWy1sLC1jXSl9dmFyIHU9YS5zY3JvbGxMZWZ0LGg9YS5zY3JvbGxUb3A7bnVsbCE9PWkmJmEhPT1pfHwodS09YS5vZmZzZXRMZWZ0K2EuY2xpZW50TGVmdCxoLT1hLm9mZnNldFRvcCthLmNsaWVudFRvcCxpPWEub2Zmc2V0UGFyZW50KSxuPWxfdChuLFt1LGhdKX1yZXR1cm4gbn0sbl90Lm11bHRpcGx5TWF0cml4PXNfdCxuX3QucHJlbXVsdGlwbHlUcmFuc2xhdGU9ZnVuY3Rpb24gd190KHQsZSl7cmV0dXJuW2VbMF0sZVsxXSxlWzJdLGVbM10sZVs0XSt0WzBdLGVbNV0rdFsxXV19LG5fdC5tdWx0aXBseVRyYW5zbGF0ZT1sX3Qsbl90LmludmVydE1hdHJpeD1jX3Qsbl90LmFwcGx5VHJhbnNmb3JtPWZ1bmN0aW9uIFNfdCh0LGUpe3JldHVybnt4OnRbMF0qZS54K3RbMl0qZS55K3RbNF0seTp0WzFdKmUueCt0WzNdKmUueSt0WzVdfX07dmFyIE1fdD17fSxFX3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTctcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBUX3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49TWF0aC5jZWlsKHQubGVuZ3RoLzIpLGk9MDtpPG47aSsrKWVbMF0uaW5zZXJ0KHRbaV0pO2ZvcihpPW47aTx0Lmxlbmd0aDtpKyspZVsxXS5pbnNlcnQodFtpXSl9LHR9KSgpO0VfdC5TcGxpdFN0cmF0ZWd5VHJpdmlhbD1UX3Q7dmFyIENfdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih0LGUpe2Zvcih0PXQuc2xpY2UoKSx0aGlzLmNob29zZUZpcnN0U3BsaXQodCxlKTt0Lmxlbmd0aD4wOyl0aGlzLmFkZE5leHQodCxlKX0sdC5wcm90b3R5cGUuY2hvb3NlRmlyc3RTcGxpdD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wLGk9MCxyPXQubGVuZ3RoLTEsbz10Lmxlbmd0aC0xLGE9MTthPHQubGVuZ3RoLTE7YSsrKXt2YXIgcz10W2FdO3MuYm91bmRzLnhsPnRbcl0uYm91bmRzLnhsP3I9YTpzLmJvdW5kcy54aDx0W25dLmJvdW5kcy54aCYmKG49YSkscy5ib3VuZHMueWw+dFtvXS5ib3VuZHMueWw/bz1hOnMuYm91bmRzLnloPHRbaV0uYm91bmRzLnloJiYoaT1hKX12YXIgbD1NYXRoLmFicyh0W25dLmJvdW5kcy54aC10W3JdLmJvdW5kcy54bCk+TWF0aC5hYnModFtpXS5ib3VuZHMueWgtdFtvXS5ib3VuZHMueWwpP1tuLHJdOltpLG9dLGM9bFswXSx1PWxbMV07Yz09PXUmJihjPTAsdT10Lmxlbmd0aC0xKSxlWzBdLmluc2VydCh0LnNwbGljZShNYXRoLm1heChjLHUpLDEpWzBdKSxlWzFdLmluc2VydCh0LnNwbGljZShNYXRoLm1pbihjLHUpLDEpWzBdKX0sdC5wcm90b3R5cGUuYWRkTmV4dD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1udWxsLGk9bnVsbCxyPW51bGwsbz0wO288dC5sZW5ndGg7bysrKXt2YXIgYT10W29dLHM9ZVswXS51bmlvbkFyZWFEaWZmZXJlbmNlKGEuYm91bmRzKSxsPWVbMV0udW5pb25BcmVhRGlmZmVyZW5jZShhLmJvdW5kcyk7KHM8aXx8bnVsbD09bikmJihuPW8saT1zLHI9ZVswXSksbDxpJiYobj1vLGk9bCxyPWVbMV0pfXIuaW5zZXJ0KHQuc3BsaWNlKG4sMSlbMF0pfSx0fSkoKTtFX3QuU3BsaXRTdHJhdGVneUxpbmVhcj1DX3QsKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE3LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGUsbj1uZXcgRV90LlNwbGl0U3RyYXRlZ3lMaW5lYXI7ZnVuY3Rpb24gaSh0LG4saSl7dmFyIHI9MS8wLG89MS8wO3JldHVybiBmdW5jdGlvbihhKXt2YXIgcz1uKGEuYm91bmRzLHQpLGw9aShhLmJvdW5kcyx0KTtyZXR1cm4gbnVsbCE9YS52YWx1ZT9zPHI/KHI9cyxvPWwsZS5QQVNTX0FORF9PVkVSV1JJVEUpOnM9PT1yP2UuUEFTUzplLkZBSUw6cz5vP2UuRkFJTDoobz1NYXRoLm1heChsLG8pLGUuUEFTUyl9fWZ1bmN0aW9uIHIodCxlKXtyZXR1cm4gZnVuY3Rpb24obixpKXtyZXR1cm4gZShpLmJvdW5kcyx0KS1lKG4uYm91bmRzLHQpfX0hKGZ1bmN0aW9uKHQpe3RbdC5QQVNTPTBdPSJQQVNTIix0W3QuRkFJTD0xXT0iRkFJTCIsdFt0LlBBU1NfQU5EX09WRVJXUklURT0yXT0iUEFTU19BTkRfT1ZFUldSSVRFIn0pKGU9dC5RdWVyeVByZWRpY2F0ZVJlc3VsdHx8KHQuUXVlcnlQcmVkaWNhdGVSZXN1bHQ9e30pKSx0LmNyZWF0ZU1pbmltaXppbmdOb2RlUHJlZGljYXRlPWksdC5jcmVhdGVOb2RlU29ydD1yO3ZhciBvPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt2b2lkIDA9PT10JiYodD01KSx2b2lkIDA9PT1lJiYoZT1uKSx0aGlzLm1heE5vZGVDaGlsZHJlbj10LHRoaXMuc3BsaXRTdHJhdGVneT1lLHRoaXMucm9vdD1uZXcgYSghMCksdGhpcy5zaXplPTB9cmV0dXJuIHQucHJvdG90eXBlLmdldFJvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290fSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMucm9vdD1uZXcgYSghMCksdGhpcy5zaXplPTB9LHQucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnJvb3Q7IW4ubGVhZjspbj1uLnN1YnRyZWUodCk7dmFyIGk9YS52YWx1ZU5vZGUodCxlKTtmb3Iobi5pbnNlcnQoaSksdGhpcy5zaXplKz0xO24ub3ZlcmZsb3codGhpcy5tYXhOb2RlQ2hpbGRyZW4pOyludWxsPT0obj1uLnNwbGl0KHRoaXMuc3BsaXRTdHJhdGVneSkpLnBhcmVudCYmKHRoaXMucm9vdD1uKTtyZXR1cm4gaX0sdC5wcm90b3R5cGUubG9jYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnF1ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gZS5jb250YWlucyh0KX0pKX0sdC5wcm90b3R5cGUubG9jYXRlTmVhcmVzdD1mdW5jdGlvbih0KXt2YXIgZT1pKHQscy5kaXN0YW5jZVNxdWFyZWRUb05lYXJFZGdlLHMuZGlzdGFuY2VTcXVhcmVkVG9GYXJFZGdlKTtyZXR1cm4gdGhpcy5xdWVyeU5vZGVzKGUpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWV9KSl9LHQucHJvdG90eXBlLmxvY2F0ZU5lYXJlc3RYPWZ1bmN0aW9uKHQpe3ZhciBlPWkodCxzLmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWCxzLmFic29sdXRlRGlzdGFuY2VUb0ZhckVkZ2VYKSxuPXRoaXMucXVlcnlOb2RlcyhlKTtyZXR1cm4gbi5zb3J0KHIodCxzLmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWSkpLG4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC52YWx1ZX0pKX0sdC5wcm90b3R5cGUubG9jYXRlTmVhcmVzdFk9ZnVuY3Rpb24odCl7dmFyIGU9aSh0LHMuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VZLHMuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVkpLG49dGhpcy5xdWVyeU5vZGVzKGUpO3JldHVybiBuLnNvcnQocih0LHMuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VYKSksbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlfSkpfSx0LnByb3RvdHlwZS5pbnRlcnNlY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucXVlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiBzLmlzQm91bmRzT3ZlcmxhcEJvdW5kcyhlLHQpfSkpfSx0LnByb3RvdHlwZS5pbnRlcnNlY3RYPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnF1ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gcy5pc0JvdW5kc092ZXJsYXBYKGUsdCl9KSl9LHQucHJvdG90eXBlLmludGVyc2VjdFk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucXVlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiBzLmlzQm91bmRzT3ZlcmxhcFkoZSx0KX0pKX0sdC5wcm90b3R5cGUucXVlcnk9ZnVuY3Rpb24odCl7dmFyIGU9W107aWYobnVsbCE9dGhpcy5yb290LmJvdW5kcyYmIXQodGhpcy5yb290LmJvdW5kcykpcmV0dXJuIGU7Zm9yKHZhciBuPVt0aGlzLnJvb3RdO24ubGVuZ3RoPjA7KWZvcih2YXIgaT1uLnNoaWZ0KCkscj0wO3I8aS5lbnRyaWVzLmxlbmd0aDtyKyspe3ZhciBvPWkuZW50cmllc1tyXTt0KG8uYm91bmRzKSYmKGkubGVhZj9lLnB1c2goby52YWx1ZSk6bi5wdXNoKG8pKX1yZXR1cm4gZX0sdC5wcm90b3R5cGUucXVlcnlOb2Rlcz1mdW5jdGlvbih0KXt2YXIgbj1bXTtpZihudWxsIT10aGlzLnJvb3QuYm91bmRzJiZ0KHRoaXMucm9vdCk9PT1lLkZBSUwpcmV0dXJuIG47Zm9yKHZhciBpPVt0aGlzLnJvb3RdO2kubGVuZ3RoPjA7KWZvcih2YXIgcj1pLnNoaWZ0KCksbz0wO288ci5lbnRyaWVzLmxlbmd0aDtvKyspe3ZhciBhPXIuZW50cmllc1tvXSxzPXQoYSk7cz09PWUuUEFTU19BTkRfT1ZFUldSSVRFJiYobj1bXSkscyE9PWUuUEFTUyYmcyE9PWUuUEFTU19BTkRfT1ZFUldSSVRFfHwoci5sZWFmP24ucHVzaChhKTppLnB1c2goYSkpfXJldHVybiBufSx0fSkoKTt0LlJUcmVlPW87dmFyIGE9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLmxlYWY9dCx0aGlzLmJvdW5kcz1udWxsLHRoaXMuZW50cmllcz1bXSx0aGlzLnBhcmVudD1udWxsLHRoaXMudmFsdWU9bnVsbH1yZXR1cm4gdC52YWx1ZU5vZGU9ZnVuY3Rpb24oZSxuKXt2YXIgaT1uZXcgdCghMCk7cmV0dXJuIGkuYm91bmRzPWUsaS52YWx1ZT1uLGl9LHQucHJvdG90eXBlLm92ZXJmbG93PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVudHJpZXMubGVuZ3RoPnR9LHQucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0KXt0aGlzLmVudHJpZXMucHVzaCh0KSx0LnBhcmVudD10aGlzO2Zvcih2YXIgZT10aGlzO251bGwhPWU7KWUuYm91bmRzPXMudW5pb25BbGwoW2UuYm91bmRzLHQuYm91bmRzXSksZT1lLnBhcmVudDtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZW50cmllcy5pbmRleE9mKHQpO2lmKGU+PTApe3RoaXMuZW50cmllcy5zcGxpY2UoZSwxKTtmb3IodmFyIG49dGhpcztudWxsIT1uOyluLmJvdW5kcz1zLnVuaW9uQWxsKG4uZW50cmllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmJvdW5kc30pKSksbj1uLnBhcmVudH1yZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuc3VidHJlZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MS8wLG49bnVsbCxpPTA7aTx0aGlzLmVudHJpZXMubGVuZ3RoO2krKyl7dmFyIHI9dGhpcy5lbnRyaWVzW2ldLG89ci51bmlvbkFyZWFEaWZmZXJlbmNlKHQpOyhvPGV8fG89PT1lJiZudWxsIT1uJiZyLmVudHJpZXMubGVuZ3RoPG4uZW50cmllcy5sZW5ndGgpJiYobj1yKX1yZXR1cm4gbn0sdC5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oZSl7bnVsbCE9dGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LnJlbW92ZSh0aGlzKTt2YXIgbj1bbmV3IHQodGhpcy5sZWFmKSxuZXcgdCh0aGlzLmxlYWYpXTtlLnNwbGl0KHRoaXMuZW50cmllcyxuKTt2YXIgaT1udWxsIT10aGlzLnBhcmVudD90aGlzLnBhcmVudDpuZXcgdCghMSk7cmV0dXJuIGkuaW5zZXJ0KG5bMF0pLGkuaW5zZXJ0KG5bMV0pLGkubGVhZj0hMSxpfSx0LnByb3RvdHlwZS51bmlvbkFyZWFEaWZmZXJlbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmFicyhzLnVuaW9uKHRoaXMuYm91bmRzLHQpLmFyZWEoKS10aGlzLmJvdW5kcy5hcmVhKCkpfSx0LnByb3RvdHlwZS5tYXhEZXB0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxlYWY/MToxK3RoaXMuZW50cmllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1heERlcHRoKCl9KSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUpfSkpfSx0fSkoKTt0LlJUcmVlTm9kZT1hO3ZhciBzPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4saSl7dGhpcy54bD10LHRoaXMueWw9ZSx0aGlzLnhoPW4sdGhpcy55aD1pLHRoaXMud2lkdGg9dGhpcy54aC10aGlzLnhsLHRoaXMuaGVpZ2h0PXRoaXMueWgtdGhpcy55bH1yZXR1cm4gdC54eXdoPWZ1bmN0aW9uKGUsbixpLHIpe3JldHVybiBuZXcgdChlLG4sZStpLG4rcil9LHQuZW50aXR5Qm91bmRzPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdChlLngsZS55LGUueCtlLndpZHRoLGUueStlLmhlaWdodCl9LHQuYm91bmRzPWZ1bmN0aW9uKGUpe3JldHVybiB0LnBvaW50UGFpcihlLnRvcExlZnQsZS5ib3R0b21SaWdodCl9LHQucG9pbnRQYWlyPWZ1bmN0aW9uKGUsbil7cmV0dXJuIG5ldyB0KE1hdGgubWluKGUueCxuLngpLE1hdGgubWluKGUueSxuLnkpLE1hdGgubWF4KGUueCxuLngpLE1hdGgubWF4KGUueSxuLnkpKX0sdC5wb2ludHM9ZnVuY3Rpb24oZSl7aWYoZS5sZW5ndGg8Mil0aHJvdyBuZXcgRXJyb3IoIm5lZWQgYXQgbGVhc3QgMiBwb2ludHMgdG8gY3JlYXRlIGJvdW5kcyIpO3ZhciBuPWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC54fSkpLGk9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnl9KSk7cmV0dXJuIG5ldyB0KG4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1pbih0LGUpfSkpLGkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1pbih0LGUpfSkpLG4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUpfSkpLGkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUpfSkpKX0sdC51bmlvbj1mdW5jdGlvbihlLG4pe3JldHVybiBuZXcgdChNYXRoLm1pbihlLnhsLG4ueGwpLE1hdGgubWluKGUueWwsbi55bCksTWF0aC5tYXgoZS54aCxuLnhoKSxNYXRoLm1heChlLnloLG4ueWgpKX0sdC51bmlvbkFsbD1mdW5jdGlvbihlKXtyZXR1cm4gMD09PShlPWUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH0pKSkubGVuZ3RoP251bGw6ZS5yZWR1Y2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQudW5pb24oZSxuKX0pKX0sdC5pc0JvdW5kc092ZXJsYXBCb3VuZHM9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5pc0JvdW5kc092ZXJsYXBYKGUsbikmJnQuaXNCb3VuZHNPdmVybGFwWShlLG4pfSx0LmlzQm91bmRzT3ZlcmxhcFg9ZnVuY3Rpb24odCxlKXtyZXR1cm4hKHQueGg8ZS54bHx8dC54bD5lLnhoKX0sdC5pc0JvdW5kc092ZXJsYXBZPWZ1bmN0aW9uKHQsZSl7cmV0dXJuISh0LnloPGUueWx8fHQueWw+ZS55aCl9LHQuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VYPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC53aWR0aC8yO3JldHVybiBNYXRoLm1heChNYXRoLmFicyhlLngtKHQueGwrbikpLW4sMCl9LHQuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VZPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5oZWlnaHQvMjtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnMoZS55LSh0LnlsK24pKS1uLDApfSx0LmFic29sdXRlRGlzdGFuY2VUb0ZhckVkZ2VYPWZ1bmN0aW9uKGUsbil7dmFyIGk9dC5hYnNvbHV0ZURpc3RhbmNlVG9OZWFyRWRnZVgoZSxuKTtyZXR1cm4gMD09PWk/MDppK2Uud2lkdGh9LHQuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVk9ZnVuY3Rpb24oZSxuKXt2YXIgaT10LmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWShlLG4pO3JldHVybiAwPT09aT8wOmkrZS5oZWlnaHR9LHQuZGlzdGFuY2VTcXVhcmVkVG9OZWFyRWRnZT1mdW5jdGlvbihlLG4pe3ZhciBpPXQuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VYKGUsbikscj10LmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWShlLG4pO3JldHVybiBpKmkrcipyfSx0LmRpc3RhbmNlU3F1YXJlZFRvRmFyRWRnZT1mdW5jdGlvbihlLG4pe3ZhciBpPXQuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVgoZSxuKSxyPXQuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVkoZSxuKTtyZXR1cm4gaSppK3Iqcn0sdC5wcm90b3R5cGUuYXJlYT1mdW5jdGlvbigpe3JldHVybiBudWxsPT10aGlzLmFyZWFDYWNoZWQmJih0aGlzLmFyZWFDYWNoZWQ9KHRoaXMueGgtdGhpcy54bCkqKHRoaXMueWgtdGhpcy55bCkpLHRoaXMuYXJlYUNhY2hlZH0sdC5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueGw8PXQueCYmdGhpcy54aD49dC54JiZ0aGlzLnlsPD10LnkmJnRoaXMueWg+PXQueX0sdH0pKCk7dC5SVHJlZUJvdW5kcz1zfSkoTV90KTt2YXIgQV90PXt9OyEoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT1FZHQsbj1TZS5leHBvcnRzLGk9Rmd0O3QuSVN0YWNraW5nT3JkZXI9U210Lm1ha2VFbnVtKFsidG9wZG93biIsImJvdHRvbXVwIl0pO3ZhciByPXdpbmRvdy5NYXRoO3Quc3RhY2s9ZnVuY3Rpb24gbyhuLHIsYSxzKXt2b2lkIDA9PT1zJiYocz0iYm90dG9tdXAiKTt2YXIgbD1lLm1hcCgpLGM9ZS5tYXAoKSx1PW5ldyBpLk1hcDsidG9wZG93biI9PT1zJiYobj1uLnNsaWNlKCkpLnJldmVyc2UoKTtmb3IodmFyIGg9MCxkPW47aDxkLmxlbmd0aDtoKyspe2Zvcih2YXIgcD1kW2hdLGY9bmV3IGkuTWFwLG09cC5kYXRhKCksZz1tLmxlbmd0aCxfPTA7XzxnO18rKyl7dmFyIHk9bVtfXSx2PXIoeSxfLHApLGI9dC5ub3JtYWxpemVLZXkodikseD0rYSh5LF8scCksdz12b2lkIDAsUz14Pj0wP2w6YztTLmhhcyhiKT8odz1TLmdldChiKSxTLnNldChiLHcreCkpOih3PTAsUy5zZXQoYix4KSksZi5zZXQoYix7b2Zmc2V0OncsdmFsdWU6eCxheGlzVmFsdWU6dixvcmlnaW5hbERhdHVtOnksb3JpZ2luYWxEYXRhc2V0OnAsb3JpZ2luYWxJbmRleDpffSl9dS5zZXQocCxmKX1yZXR1cm4gdX0sdC5zdGFja2VkRXh0ZW50cz1mdW5jdGlvbiBhKHQpe3ZhciBlPW5ldyBpLk1hcCxuPW5ldyBpLk1hcDtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmZvckVhY2goKGZ1bmN0aW9uKHQscil7dmFyIG89dC5vZmZzZXQrdC52YWx1ZSxhPWkuTWF0aC5tYXgoW28sdC5vZmZzZXRdLHQub2Zmc2V0KSxzPWkuTWF0aC5taW4oW28sdC5vZmZzZXRdLHQub2Zmc2V0KSxsPXQuYXhpc1ZhbHVlO2UuaGFzKHIpP2UuZ2V0KHIpLmV4dGVudDxhJiZlLnNldChyLHtleHRlbnQ6YSxheGlzVmFsdWU6bCxzdGFja2VkRGF0dW06dH0pOmUuc2V0KHIse2V4dGVudDphLGF4aXNWYWx1ZTpsLHN0YWNrZWREYXR1bTp0fSksbi5oYXMocik/bi5nZXQocikuZXh0ZW50PnMmJm4uc2V0KHIse2V4dGVudDpzLGF4aXNWYWx1ZTpsLHN0YWNrZWREYXR1bTp0fSk6bi5zZXQocix7ZXh0ZW50OnMsYXhpc1ZhbHVlOmwsc3RhY2tlZERhdHVtOnR9KX0pKX0pKSx7bWF4aW11bUV4dGVudHM6ZSxtaW5pbXVtRXh0ZW50czpufX0sdC5zdGFja2VkRXh0ZW50PWZ1bmN0aW9uIHMoZSxuLG8pe3ZhciBhPVtdO2UuZm9yRWFjaCgoZnVuY3Rpb24oZSxpKXtmb3IodmFyIHI9aS5kYXRhKCkscz1yLmxlbmd0aCxsPTA7bDxzO2wrKyl7dmFyIGM9cltsXTtpZihudWxsPT1vfHxvKGMsbCxpKSl7dmFyIHU9ZS5nZXQodC5ub3JtYWxpemVLZXkobihjLGwsaSkpKTthLnB1c2godS52YWx1ZSt1Lm9mZnNldCl9fX0pKTt2YXIgcz1pLk1hdGgubWF4KGEsMCksbD1pLk1hdGgubWluKGEsMCk7cmV0dXJuW3IubWluKGwsMCksci5tYXgoMCxzKV19LHQubm9ybWFsaXplS2V5PW4ubWVtb2l6ZSgoZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KX0pKX0pKEFfdCk7dmFyIGtfdD17fSxMX3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShMX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLExfdC5TSE9XX1dBUk5JTkdTPSEwLExfdC5BRERfVElUTEVfRUxFTUVOVFM9ITAsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShrX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBQX3Q9TF90O2Z1bmN0aW9uIE5fdCh0KXtQX3QuU0hPV19XQVJOSU5HUyYmY29uc29sZS53YXJuKHQpfWZ1bmN0aW9uIElfdCh0LGUpe2Zvcih2YXIgbj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKyluW2ktMl09YXJndW1lbnRzW2ldO3JldHVybiAwPT09ZT8odChuKSwtMSk6d2luZG93LnNldFRpbWVvdXQodCxlLG4pfWtfdC53YXJuPU5fdCxrX3Quc2V0VGltZW91dD1JX3Qsa190LmRlYm91bmNlPWZ1bmN0aW9uIFJfdCh0LGUsbil7dmFyIGk9bnVsbCxyPVtdLG89ZnVuY3Rpb24oKXtlLmFwcGx5KG4scil9O3JldHVybiBmdW5jdGlvbigpe3I9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxjbGVhclRpbWVvdXQoaSksaT1JX3Qobyx0KX19LGtfdC5kZXByZWNhdGVkPWZ1bmN0aW9uIE9fdCh0LGUsbil7dm9pZCAwPT09biYmKG49IiIpLE5fdCgiTWV0aG9kICIrdCsiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gdmVyc2lvbiAiK2UrIi4gUGxlYXNlIHJlZmVyIHRvIHRoZSByZWxlYXNlIG5vdGVzLiAiK24pfTt2YXIgel90PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE3LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eSh6X3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBEX3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7dGhpcy5lbnRyeUluZGV4PXQsdGhpcy5leGl0SW5kZXg9dCx0aGlzLm1pbkluZGV4PXQsdGhpcy5tYXhJbmRleD10LHRoaXMuYnVja2V0VmFsdWU9ZSx0aGlzLm1pblZhbHVlPW4sdGhpcy5tYXhWYWx1ZT1ufXJldHVybiB0LnByb3RvdHlwZS5pc0luQnVja2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0PT10aGlzLmJ1Y2tldFZhbHVlfSx0LnByb3RvdHlwZS5hZGRUb0J1Y2tldD1mdW5jdGlvbih0LGUpe3Q8dGhpcy5taW5WYWx1ZSYmKHRoaXMubWluVmFsdWU9dCx0aGlzLm1pbkluZGV4PWUpLHQ+dGhpcy5tYXhWYWx1ZSYmKHRoaXMubWF4VmFsdWU9dCx0aGlzLm1heEluZGV4PWUpLHRoaXMuZXhpdEluZGV4PWV9LHQucHJvdG90eXBlLmdldFVuaXF1ZUluZGljZXM9ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy5lbnRyeUluZGV4LHRoaXMubWF4SW5kZXgsdGhpcy5taW5JbmRleCx0aGlzLmV4aXRJbmRleF07cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbihlLG4pe3JldHVybiAwPT1ufHxlIT10W24tMV19KSl9LHR9KSgpO3pfdC5CdWNrZXQ9RF90O3ZhciBCX3Q9e30sSF90PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoSF90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgRl90PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LlNldD90aGlzLl9lczZTZXQ9bmV3IHdpbmRvdy5TZXQ6dGhpcy5fdmFsdWVzPVtdLHRoaXMuc2l6ZT0wfXJldHVybiB0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXRoaXMuX2VzNlNldD8odGhpcy5fZXM2U2V0LmFkZCh0KSx0aGlzLnNpemU9dGhpcy5fZXM2U2V0LnNpemUsdGhpcyk6KHRoaXMuaGFzKHQpfHwodGhpcy5fdmFsdWVzLnB1c2godCksdGhpcy5zaXplPXRoaXMuX3ZhbHVlcy5sZW5ndGgpLHRoaXMpfSx0LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7aWYobnVsbCE9dGhpcy5fZXM2U2V0KXt2YXIgZT10aGlzLl9lczZTZXQuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemU9dGhpcy5fZXM2U2V0LnNpemUsZX12YXIgbj10aGlzLl92YWx1ZXMuaW5kZXhPZih0KTtyZXR1cm4tMSE9PW4mJih0aGlzLl92YWx1ZXMuc3BsaWNlKG4sMSksdGhpcy5zaXplPXRoaXMuX3ZhbHVlcy5sZW5ndGgsITApfSx0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXRoaXMuX2VzNlNldD90aGlzLl9lczZTZXQuaGFzKHQpOi0xIT09dGhpcy5fdmFsdWVzLmluZGV4T2YodCl9LHQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO251bGw9PXRoaXMuX2VzNlNldD90aGlzLl92YWx1ZXMuZm9yRWFjaCgoZnVuY3Rpb24oaSl7dC5jYWxsKGUsaSxpLG4pfSkpOnRoaXMuX2VzNlNldC5mb3JFYWNoKChmdW5jdGlvbihpLHIpe3JldHVybiB0LmNhbGwoZSxpLHIsbil9KSxlKX0sdH0pKCk7SF90LlNldD1GX3QsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBWX3Q9dU8sVV90PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gVl90Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmNhbGxDYWxsYmFja3M9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxlPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKG4pe24uYXBwbHkodCxlKX0pKSx0aGlzfSxlfSkoSF90LlNldCk7Ql90LkNhbGxiYWNrU2V0PVVfdDt2YXIgal90PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShqX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBHX3Q9TV90LFdfdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fZW50aXRpZXM9W10sdGhpcy5fcnRyZWU9bmV3IEdfdC5SVHJlZX1yZXR1cm4gdC5wcm90b3R5cGUuYWRkQWxsPWZ1bmN0aW9uKHQsZSxuKXtpZih0aGlzLl9lbnRpdGllcz10aGlzLl9lbnRpdGllcy5jb25jYXQodCksdm9pZCAwIT09bilmb3IodmFyIGk9R190LlJUcmVlQm91bmRzLmJvdW5kcyhuKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPUdfdC5SVHJlZUJvdW5kcy5lbnRpdHlCb3VuZHMoZShhPXRbcl0pKTtHX3QuUlRyZWVCb3VuZHMuaXNCb3VuZHNPdmVybGFwQm91bmRzKGksbykmJnRoaXMuX3J0cmVlLmluc2VydChvLGEpfWVsc2UgZm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGE7bz1HX3QuUlRyZWVCb3VuZHMuZW50aXR5Qm91bmRzKGUoYT10W3JdKSksdGhpcy5fcnRyZWUuaW5zZXJ0KG8sYSl9fSx0LnByb3RvdHlwZS5lbnRpdHlOZWFyZXN0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ydHJlZS5sb2NhdGVOZWFyZXN0KHQpLnBvcCgpfSx0LnByb3RvdHlwZS5lbnRpdHlOZWFyZXN0WD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcnRyZWUubG9jYXRlTmVhcmVzdFgodCkucG9wKCl9LHQucHJvdG90eXBlLmVudGl0eU5lYXJlc3RZPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ydHJlZS5sb2NhdGVOZWFyZXN0WSh0KS5wb3AoKX0sdC5wcm90b3R5cGUuZW50aXRpZXNJbkJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcnRyZWUuaW50ZXJzZWN0KEdfdC5SVHJlZUJvdW5kcy5lbnRpdHlCb3VuZHModCkpfSx0LnByb3RvdHlwZS5lbnRpdGllc0luWEJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcnRyZWUuaW50ZXJzZWN0WChHX3QuUlRyZWVCb3VuZHMuZW50aXR5Qm91bmRzKHQpKX0sdC5wcm90b3R5cGUuZW50aXRpZXNJbllCb3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3J0cmVlLmludGVyc2VjdFkoR190LlJUcmVlQm91bmRzLmVudGl0eUJvdW5kcyh0KSl9LHQucHJvdG90eXBlLmVudGl0aWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VudGl0aWVzfSx0fSkoKTtqX3QuRW50aXR5U3RvcmU9V190O3ZhciBxX3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KHFfdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFlfdD1uX3QsWF90PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93Lk1hcD90aGlzLl9lczZNYXA9bmV3IHdpbmRvdy5NYXA6dGhpcy5fa2V5VmFsdWVQYWlycz1bXX1yZXR1cm4gdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7aWYoWV90LmlzTmFOKHQpKXRocm93IG5ldyBFcnJvcigiTmFOIG1heSBub3QgYmUgdXNlZCBhcyBhIGtleSB0byB0aGUgTWFwIik7aWYobnVsbCE9dGhpcy5fZXM2TWFwKXJldHVybiB0aGlzLl9lczZNYXAuc2V0KHQsZSksdGhpcztmb3IodmFyIG49MDtuPHRoaXMuX2tleVZhbHVlUGFpcnMubGVuZ3RoO24rKylpZih0aGlzLl9rZXlWYWx1ZVBhaXJzW25dLmtleT09PXQpcmV0dXJuIHRoaXMuX2tleVZhbHVlUGFpcnNbbl0udmFsdWU9ZSx0aGlzO3JldHVybiB0aGlzLl9rZXlWYWx1ZVBhaXJzLnB1c2goe2tleTp0LHZhbHVlOmV9KSx0aGlzfSx0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7aWYobnVsbCE9dGhpcy5fZXM2TWFwKXJldHVybiB0aGlzLl9lczZNYXAuZ2V0KHQpO2Zvcih2YXIgZT0wO2U8dGhpcy5fa2V5VmFsdWVQYWlycy5sZW5ndGg7ZSsrKWlmKHRoaXMuX2tleVZhbHVlUGFpcnNbZV0ua2V5PT09dClyZXR1cm4gdGhpcy5fa2V5VmFsdWVQYWlyc1tlXS52YWx1ZX0sdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXRoaXMuX2VzNk1hcClyZXR1cm4gdGhpcy5fZXM2TWFwLmhhcyh0KTtmb3IodmFyIGU9MDtlPHRoaXMuX2tleVZhbHVlUGFpcnMubGVuZ3RoO2UrKylpZih0aGlzLl9rZXlWYWx1ZVBhaXJzW2VdLmtleT09PXQpcmV0dXJuITA7cmV0dXJuITF9LHQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO251bGw9PXRoaXMuX2VzNk1hcD90aGlzLl9rZXlWYWx1ZVBhaXJzLmZvckVhY2goKGZ1bmN0aW9uKGkpe3QuY2FsbChlLGkudmFsdWUsaS5rZXksbil9KSk6dGhpcy5fZXM2TWFwLmZvckVhY2goKGZ1bmN0aW9uKGkscil7cmV0dXJuIHQuY2FsbChlLGkscixuKX0pLGUpfSx0LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7aWYobnVsbCE9dGhpcy5fZXM2TWFwKXJldHVybiB0aGlzLl9lczZNYXAuZGVsZXRlKHQpO2Zvcih2YXIgZT0wO2U8dGhpcy5fa2V5VmFsdWVQYWlycy5sZW5ndGg7ZSsrKWlmKHRoaXMuX2tleVZhbHVlUGFpcnNbZV0ua2V5PT09dClyZXR1cm4gdGhpcy5fa2V5VmFsdWVQYWlycy5zcGxpY2UoZSwxKSwhMDtyZXR1cm4hMX0sdH0pKCk7cV90Lk1hcD1YX3Q7dmFyICRfdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNy1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoJF90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwkX3QuYXNzaWduPWZ1bmN0aW9uIEtfdCgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtmb3IodmFyIG49e30saT0wLHI9dDtpPHIubGVuZ3RoO2krKylmb3IodmFyIG89cltpXSxhPU9iamVjdC5rZXlzKG8pLHM9MCxsPWE7czxsLmxlbmd0aDtzKyspe3ZhciBjPWxbc107bltjXT1vW2NdfXJldHVybiBufTt2YXIgWl90PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE3LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShaX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBKX3Q9Rmd0LFFfdD0iX19QbG90dGFibGVfQ2xpZW50VHJhbnNsYXRvciI7Wl90LmdldFRyYW5zbGF0b3I9ZnVuY3Rpb24gdHl0KHQpe3ZhciBlPXQucm9vdCgpLnJvb3RFbGVtZW50KCkubm9kZSgpLG49ZVtRX3RdO3JldHVybiBudWxsPT1uJiYobj1uZXcgZXl0KGUpLGVbUV90XT1uKSxufTt2YXIgZXl0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5fcm9vdEVsZW1lbnQ9dH1yZXR1cm4gdC5wcm90b3R5cGUuY29tcHV0ZVBvc2l0aW9uPWZ1bmN0aW9uKHQsZSl7dmFyIG49e3g6dCx5OmV9LGk9Sl90Lk1hdGguZ2V0Q3VtdWxhdGl2ZVRyYW5zZm9ybSh0aGlzLl9yb290RWxlbWVudCk7cmV0dXJuIG51bGw9PWk/bjpKX3QuTWF0aC5hcHBseVRyYW5zZm9ybShpLG4pfSx0LmlzRXZlbnRJbnNpZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gSl90LkRPTS5jb250YWlucyh0LnJvb3QoKS5yb290RWxlbWVudCgpLm5vZGUoKSxlLnRhcmdldCl9LHR9KSgpO1pfdC5UcmFuc2xhdG9yPWV5dCwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT11Tzt0LkFycmF5PVZndCx0LkNvbG9yPVhndCx0LkRPTT1lX3QsdC5NYXRoPW5fdCx0LlJUcmVlPU1fdCx0LlN0YWNraW5nPUFfdCx0LldpbmRvdz1rX3QsZS5fX2V4cG9ydFN0YXIoel90LHQpLGUuX19leHBvcnRTdGFyKEJfdCx0KSxlLl9fZXhwb3J0U3RhcihibXQsdCksZS5fX2V4cG9ydFN0YXIoal90LHQpLGUuX19leHBvcnRTdGFyKHFfdCx0KSxlLl9fZXhwb3J0U3RhcigkX3QsdCksZS5fX2V4cG9ydFN0YXIoSF90LHQpLGUuX19leHBvcnRTdGFyKFpfdCx0KX0pKEZndCk7dmFyIG55dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkobnl0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaXl0PUZndCxyeXQ9SGd0LG95dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtyeXQuZmx1c2goKX0sdH0pKCk7bnl0LkltbWVkaWF0ZT1veXQ7dmFyIGF5dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtpeXQuRE9NLnJlcXVlc3RBbmltYXRpb25GcmFtZVBvbHlmaWxsKHJ5dC5mbHVzaCl9LHR9KSgpO255dC5BbmltYXRpb25GcmFtZT1heXQ7dmFyIHN5dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fdGltZW91dE1zZWM9aXl0LkRPTS5TQ1JFRU5fUkVGUkVTSF9SQVRFX01JTExJU0VDT05EU31yZXR1cm4gdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7c2V0VGltZW91dChyeXQuZmx1c2gsdGhpcy5fdGltZW91dE1zZWMpfSx0fSkoKTtueXQuVGltZW91dD1zeXQsKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9Rmd0LG49U210LGk9bnl0LHI9bmV3IGUuU2V0LG89bmV3IGUuU2V0LGE9ITEscz0hMTt0LlBvbGljeT1uLm1ha2VFbnVtKFsiaW1tZWRpYXRlIiwiYW5pbWF0aW9uRnJhbWUiLCJ0aW1lb3V0Il0pO3ZhciBsPW5ldyBpLkFuaW1hdGlvbkZyYW1lO2Z1bmN0aW9uIGModCl7by5hZGQodCksci5hZGQodCksdSgpfWZ1bmN0aW9uIHUoKXthfHwoYT0hMCxsLnJlbmRlcigpKX10LnJlbmRlclBvbGljeT1mdW5jdGlvbiBoKG4pe2lmKG51bGw9PW4pcmV0dXJuIGw7c3dpdGNoKG4pe2Nhc2UgdC5Qb2xpY3kuaW1tZWRpYXRlOmw9bmV3IGkuSW1tZWRpYXRlO2JyZWFrO2Nhc2UgdC5Qb2xpY3kuYW5pbWF0aW9uRnJhbWU6bD1uZXcgaS5BbmltYXRpb25GcmFtZTticmVhaztjYXNlIHQuUG9saWN5LnRpbWVvdXQ6bD1uZXcgaS5UaW1lb3V0O2JyZWFrO2RlZmF1bHQ6ZS5XaW5kb3cud2FybigiVW5yZWNvZ25pemVkIHJlbmRlclBvbGljeTogIituKX19LHQucmVnaXN0ZXJUb1JlbmRlcj1mdW5jdGlvbiBkKHQpe3MmJmUuV2luZG93Lndhcm4oIlJlZ2lzdGVyZWQgdG8gcmVuZGVyIHdoaWxlIG90aGVyIGNvbXBvbmVudHMgYXJlIGZsdXNoaW5nOiByZXF1ZXN0IG1heSBiZSBpZ25vcmVkIiksci5hZGQodCksdSgpfSx0LnJlZ2lzdGVyVG9Db21wdXRlTGF5b3V0QW5kUmVuZGVyPWMsdC5yZWdpc3RlclRvQ29tcHV0ZUxheW91dD1mdW5jdGlvbiBwKHQpe2ModCl9LHQuZmx1c2g9ZnVuY3Rpb24gZigpe2lmKGEpe28uZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29tcHV0ZUxheW91dCgpfSkpLHIuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVuZGVyKCl9KSkscz0hMDt2YXIgdD1uZXcgZS5TZXQ7ci5mb3JFYWNoKChmdW5jdGlvbihlKXt0cnl7ZS5yZW5kZXJJbW1lZGlhdGVseSgpfWNhdGNoKG4pe3dpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Rocm93IG59KSwwKSx0LmFkZChlKX19KSksbz1uZXcgZS5TZXQscj10LGE9ITEscz0hMX19fSkoSGd0KSwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KEJndCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGx5dD1FZHQsY3l0PUhndCx1eXQ9Rmd0LGh5dD1TZS5leHBvcnRzLGR5dD1ibXQscHl0PVNtdDtCZ3QuWEFsaWdubWVudD1weXQubWFrZUVudW0oWyJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSksQmd0LllBbGlnbm1lbnQ9cHl0Lm1ha2VFbnVtKFsidG9wIiwiY2VudGVyIiwiYm90dG9tIl0pO3ZhciBmeXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuX292ZXJmbG93SGlkZGVuPSExLHRoaXMuX29yaWdpbj17eDowLHk6MH0sdGhpcy5feEFsaWdubWVudD0ibGVmdCIsdGhpcy5feUFsaWdubWVudD0idG9wIix0aGlzLl9pc1NldHVwPSExLHRoaXMuX2lzQW5jaG9yZWQ9ITEsdGhpcy5fY3NzQ2xhc3Nlcz1uZXcgdXl0LlNldCx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fb25BbmNob3JDYWxsYmFja3M9bmV3IHV5dC5DYWxsYmFja1NldCx0aGlzLl9vbkRldGFjaENhbGxiYWNrcz1uZXcgdXl0LkNhbGxiYWNrU2V0LHRoaXMuX2Nzc0NsYXNzZXMuYWRkKCJjb21wb25lbnQiKX1yZXR1cm4gdC5wcm90b3R5cGUuYW5jaG9yPWZ1bmN0aW9uKHQpe2lmKHQ9ZHl0LmNvZXJjZUV4dGVybmFsRDModCksdGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiQ2FuJ3QgcmV1c2UgZGVzdHJveSgpLWVkIENvbXBvbmVudHMhIik7cmV0dXJuIHRoaXMuaXNSb290KCkmJih0aGlzLl9yb290RWxlbWVudD10LHRoaXMuX3Jvb3RFbGVtZW50LmNsYXNzZWQoInBsb3R0YWJsZSIsITApKSxudWxsIT10aGlzLl9lbGVtZW50P3Qubm9kZSgpLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQubm9kZSgpKToodGhpcy5fZWxlbWVudD10LmFwcGVuZCgiZGl2IiksdGhpcy5fc2V0dXAoKSksdGhpcy5faXNBbmNob3JlZD0hMCx0aGlzLl9vbkFuY2hvckNhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMpLHRoaXN9LHQucHJvdG90eXBlLm9uQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pc0FuY2hvcmVkJiZ0KHRoaXMpLHRoaXMuX29uQW5jaG9yQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSx0LnByb3RvdHlwZS5vZmZBbmNob3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX29uQW5jaG9yQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSx0LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2lzU2V0dXB8fCh0aGlzLl9jc3NDbGFzc2VzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QuX2VsZW1lbnQuY2xhc3NlZChlLCEwKX0pKSx0aGlzLl9jc3NDbGFzc2VzPW5ldyB1eXQuU2V0LHRoaXMuX2JhY2tncm91bmRDb250YWluZXI9dGhpcy5fZWxlbWVudC5hcHBlbmQoInN2ZyIpLmNsYXNzZWQoImJhY2tncm91bmQtY29udGFpbmVyIiwhMCksdGhpcy5fY29udGVudD10aGlzLl9lbGVtZW50LmFwcGVuZCgic3ZnIikuY2xhc3NlZCgiY29udGVudCIsITApLHRoaXMuX2ZvcmVncm91bmRDb250YWluZXI9dGhpcy5fZWxlbWVudC5hcHBlbmQoInN2ZyIpLmNsYXNzZWQoImZvcmVncm91bmQtY29udGFpbmVyIiwhMCksdGhpcy5fY29udGVudC5jbGFzc2VkKHRoaXMuX292ZXJmbG93SGlkZGVuPyJjb21wb25lbnQtb3ZlcmZsb3ctaGlkZGVuIjoiY29tcG9uZW50LW92ZXJmbG93LXZpc2libGUiLCEwKSx0aGlzLl9pc1NldHVwPSEwKX0sdC5wcm90b3R5cGUucmVxdWVzdGVkU3BhY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm57bWluV2lkdGg6MCxtaW5IZWlnaHQ6MH19LHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24oZSxuLGkpe2lmKG51bGw9PWV8fG51bGw9PW58fG51bGw9PWkpe2lmKG51bGw9PXRoaXMuX2VsZW1lbnQpdGhyb3cgbmV3IEVycm9yKCJhbmNob3IoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgY29tcHV0ZUxheW91dCgpIik7aWYobnVsbD09dGhpcy5fcm9vdEVsZW1lbnQpdGhyb3cgbmV3IEVycm9yKCJudWxsIGFyZ3VtZW50cyBjYW5ub3QgYmUgcGFzc2VkIHRvIGNvbXB1dGVMYXlvdXQoKSBvbiBhIG5vbi1yb290LCB1bmFuY2hvcmVkIG5vZGUiKTtlPXt4OjAseTowfTt2YXIgcj10aGlzLl9yb290RWxlbWVudC5ub2RlKCk7bj11eXQuRE9NLmVsZW1lbnRXaWR0aChyKSxpPXV5dC5ET00uZWxlbWVudEhlaWdodChyKX12YXIgbz10aGlzLl9zaXplRnJvbU9mZmVyKG4saSksYT1vLmhlaWdodCxzPW8ud2lkdGg7cmV0dXJuIHRoaXMuc2V0Qm91bmRzKHMsYSxlLngrKG4tcykqdC5feEFsaWduVG9Qcm9wb3J0aW9uW3RoaXMuX3hBbGlnbm1lbnRdLGUueSsoaS1hKSp0Ll95QWxpZ25Ub1Byb3BvcnRpb25bdGhpcy5feUFsaWdubWVudF0pLHRoaXN9LHQucHJvdG90eXBlLnNldEJvdW5kcz1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gdm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09aSYmKGk9MCksdGhpcy5fd2lkdGg9dCx0aGlzLl9oZWlnaHQ9ZSx0aGlzLl9vcmlnaW49e3g6bix5Oml9LG51bGwhPXRoaXMuX2VsZW1lbnQmJnRoaXMuX2VsZW1lbnQuc3R5bGVzKHtsZWZ0Om4rInB4IixoZWlnaHQ6ZSsicHgiLHRvcDppKyJweCIsd2lkdGg6dCsicHgifSksbnVsbCE9dGhpcy5fcmVzaXplSGFuZGxlciYmdGhpcy5fcmVzaXplSGFuZGxlcih7d2lkdGg6dCxoZWlnaHQ6ZX0pLHRoaXN9LHQucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5yZXF1ZXN0ZWRTcGFjZSh0LGUpO3JldHVybnt3aWR0aDp0aGlzLmZpeGVkV2lkdGgoKT9NYXRoLm1pbih0LG4ubWluV2lkdGgpOnQsaGVpZ2h0OnRoaXMuZml4ZWRIZWlnaHQoKT9NYXRoLm1pbihlLG4ubWluSGVpZ2h0KTplfX0sdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzQW5jaG9yZWQmJnRoaXMuX2lzU2V0dXAmJnRoaXMud2lkdGgoKT49MCYmdGhpcy5oZWlnaHQoKT49MCYmY3l0LnJlZ2lzdGVyVG9SZW5kZXIodGhpcyksdGhpc30sdC5wcm90b3R5cGUucmVuZGVyTG93UHJpb3JpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZW5kZXIoKX0sdC5wcm90b3R5cGUuX3NjaGVkdWxlQ29tcHV0ZUxheW91dD1mdW5jdGlvbigpe3RoaXMuX2lzQW5jaG9yZWQmJnRoaXMuX2lzU2V0dXAmJmN5dC5yZWdpc3RlclRvQ29tcHV0ZUxheW91dEFuZFJlbmRlcih0aGlzKX0sdC5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3Jlc2l6ZUhhbmRsZXI9dCx0aGlzfSx0LnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5yZWRyYXc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNBbmNob3JlZCYmdGhpcy5faXNTZXR1cCYmKHRoaXMuaXNSb290KCk/dGhpcy5fc2NoZWR1bGVDb21wdXRlTGF5b3V0KCk6dGhpcy5wYXJlbnQoKS5yZWRyYXcoKSksdGhpc30sdC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7fSx0LnByb3RvdHlwZS5yZW5kZXJUbz1mdW5jdGlvbih0KXtpZih0aGlzLmRldGFjaCgpLG51bGwhPXQpe3ZhciBlPXZvaWQgMDtpZighKGU9InN0cmluZyI9PXR5cGVvZiB0fHxoeXQuaXNFbGVtZW50KHQpP2x5dC5zZWxlY3QodCk6ZHl0LmNvZXJjZUV4dGVybmFsRDModCkpLm5vZGUoKXx8bnVsbD09ZS5ub2RlKCkubm9kZU5hbWUpdGhyb3cgbmV3IEVycm9yKCJQbG90dGFibGUgcmVxdWlyZXMgYSB2YWxpZCBFbGVtZW50IHRvIHJlbmRlclRvIik7aWYoInN2ZyI9PT1lLm5vZGUoKS5ub2RlTmFtZSl0aHJvdyBuZXcgRXJyb3IoIlBsb3R0YWJsZSAzLnggYW5kIGxhdGVyIGNhbiBvbmx5IHJlbmRlclRvIGFuIEhUTUwgY29tcG9uZW50OyBwYXNzIGEgZGl2IGluc3RlYWQhIik7dGhpcy5hbmNob3IoZSl9aWYobnVsbD09dGhpcy5fZWxlbWVudCl0aHJvdyBuZXcgRXJyb3IoIklmIGEgQ29tcG9uZW50IGhhcyBuZXZlciBiZWVuIHJlbmRlcmVkIGJlZm9yZSwgdGhlbiByZW5kZXJUbyBtdXN0IGJlIGdpdmVuIGEgbm9kZSB0byByZW5kZXIgdG8sIG9yIGEgZDMuU2VsZWN0aW9uLCBvciBhIHNlbGVjdG9yIHN0cmluZyIpO3JldHVybiBjeXQucmVnaXN0ZXJUb0NvbXB1dGVMYXlvdXRBbmRSZW5kZXIodGhpcyksY3l0LmZsdXNoKCksdGhpc30sdC5wcm90b3R5cGUueEFsaWdubWVudD1mdW5jdGlvbihlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl94QWxpZ25tZW50O2lmKGU9ZS50b0xvd2VyQ2FzZSgpLG51bGw9PXQuX3hBbGlnblRvUHJvcG9ydGlvbltlXSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGFsaWdubWVudDogIitlKTtyZXR1cm4gdGhpcy5feEFsaWdubWVudD1lLHRoaXMucmVkcmF3KCksdGhpc30sdC5wcm90b3R5cGUueUFsaWdubWVudD1mdW5jdGlvbihlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl95QWxpZ25tZW50O2lmKGU9ZS50b0xvd2VyQ2FzZSgpLG51bGw9PXQuX3lBbGlnblRvUHJvcG9ydGlvbltlXSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGFsaWdubWVudDogIitlKTtyZXR1cm4gdGhpcy5feUFsaWdubWVudD1lLHRoaXMucmVkcmF3KCksdGhpc30sdC5wcm90b3R5cGUuaGFzQ2xhc3M9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJihudWxsPT10aGlzLl9lbGVtZW50P3RoaXMuX2Nzc0NsYXNzZXMuaGFzKHQpOnRoaXMuX2VsZW1lbnQuY2xhc3NlZCh0KSl9LHQucHJvdG90eXBlLmFkZENsYXNzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHwobnVsbD09dGhpcy5fZWxlbWVudD90aGlzLl9jc3NDbGFzc2VzLmFkZCh0KTp0aGlzLl9lbGVtZW50LmNsYXNzZWQodCwhMCkpLHRoaXN9LHQucHJvdG90eXBlLnJlbW92ZUNsYXNzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHwobnVsbD09dGhpcy5fZWxlbWVudD90aGlzLl9jc3NDbGFzc2VzLmRlbGV0ZSh0KTp0aGlzLl9lbGVtZW50LmNsYXNzZWQodCwhMSkpLHRoaXN9LHQucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sdC5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sdC5wcm90b3R5cGUuZGV0YWNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KG51bGwpLHRoaXMuX2lzQW5jaG9yZWQmJnRoaXMuX2VsZW1lbnQucmVtb3ZlKCksdGhpcy5faXNBbmNob3JlZD0hMSx0aGlzLl9vbkRldGFjaENhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMpLHRoaXN9LHQucHJvdG90eXBlLm9uRGV0YWNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9vbkRldGFjaENhbGxiYWNrcy5hZGQodCksdGhpc30sdC5wcm90b3R5cGUub2ZmRGV0YWNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9vbkRldGFjaENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sdC5wcm90b3R5cGUucGFyZW50PWZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpcmV0dXJuIHRoaXMuX3BhcmVudDtpZihudWxsIT09dCYmIXQuaGFzKHRoaXMpKXRocm93IG5ldyBFcnJvcigiUGFzc2VkIGludmFsaWQgcGFyZW50Iik7cmV0dXJuIHRoaXMuX3BhcmVudD10LHRoaXN9LHQucHJvdG90eXBlLmJvdW5kcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMub3JpZ2luKCk7cmV0dXJue3RvcExlZnQ6dCxib3R0b21SaWdodDp7eDp0LngrdGhpcy53aWR0aCgpLHk6dC55K3RoaXMuaGVpZ2h0KCl9fX0sdC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLmRldGFjaCgpfSx0LnByb3RvdHlwZS53aWR0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWR0aH0sdC5wcm90b3R5cGUuaGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hlaWdodH0sdC5wcm90b3R5cGUub3JpZ2luPWZ1bmN0aW9uKCl7cmV0dXJue3g6dGhpcy5fb3JpZ2luLngseTp0aGlzLl9vcmlnaW4ueX19LHQucHJvdG90eXBlLm9yaWdpblRvUm9vdD1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLm9yaWdpbigpLGU9dGhpcy5wYXJlbnQoKTtudWxsIT1lOyl7dmFyIG49ZS5vcmlnaW4oKTt0LngrPW4ueCx0LnkrPW4ueSxlPWUucGFyZW50KCl9cmV0dXJuIHR9LHQucHJvdG90eXBlLnJvb3Q9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpczshdC5pc1Jvb3QoKTspdD10LnBhcmVudCgpO3JldHVybiB0fSx0LnByb3RvdHlwZS5pc1Jvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09dGhpcy5wYXJlbnQoKX0sdC5wcm90b3R5cGUuZm9yZWdyb3VuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9mb3JlZ3JvdW5kQ29udGFpbmVyfSx0LnByb3RvdHlwZS5jb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbnRlbnR9LHQucHJvdG90eXBlLmVsZW1lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxlbWVudH0sdC5wcm90b3R5cGUucm9vdEVsZW1lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290KCkuX3Jvb3RFbGVtZW50fSx0LnByb3RvdHlwZS5iYWNrZ3JvdW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tncm91bmRDb250YWluZXJ9LHQuX3hBbGlnblRvUHJvcG9ydGlvbj17bGVmdDowLGNlbnRlcjouNSxyaWdodDoxfSx0Ll95QWxpZ25Ub1Byb3BvcnRpb249e3RvcDowLGNlbnRlcjouNSxib3R0b206MX0sdH0pKCk7Qmd0LkNvbXBvbmVudD1meXQ7dmFyIG15dD17fSxneXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShneXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBfeXQ9RWR0O2Z1bmN0aW9uIHl5dCh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9Myksdnl0KHQpLGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvRml4ZWQodCl9fWZ1bmN0aW9uIHZ5dCh0KXtpZih0PDB8fHQ+MjApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdHRlciBwcmVjaXNpb24gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwIik7aWYodCE9PU1hdGguZmxvb3IodCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdHRlciBwcmVjaXNpb24gbXVzdCBiZSBhbiBpbnRlZ2VyIil9Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovZ3l0LmN1cnJlbmN5PWZ1bmN0aW9uIGJ5dCh0LGUsbil7dm9pZCAwPT09dCYmKHQ9Miksdm9pZCAwPT09ZSYmKGU9IiQiKSx2b2lkIDA9PT1uJiYobj0hMCk7dmFyIGk9eXl0KHQpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgcj1pKE1hdGguYWJzKHQpKTtyZXR1cm4iIiE9PXImJihuP3I9ZStyOnIrPWUsdDwwJiYocj0iLSIrcikpLHJ9fSxneXQuZml4ZWQ9eXl0LGd5dC5nZW5lcmFsPWZ1bmN0aW9uIHh5dCh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9Myksdnl0KHQpLGZ1bmN0aW9uKGUpe2lmKCJudW1iZXIiPT10eXBlb2YgZSl7dmFyIG49TWF0aC5wb3coMTAsdCk7cmV0dXJuIFN0cmluZyhNYXRoLnJvdW5kKGUqbikvbil9cmV0dXJuIFN0cmluZyhlKX19LGd5dC5pZGVudGl0eT1mdW5jdGlvbiB3eXQoKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KX19LGd5dC5wZXJjZW50YWdlPWZ1bmN0aW9uIFN5dCh0KXt2b2lkIDA9PT10JiYodD0wKTt2YXIgZT15eXQodCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPTEwMCp0LGk9dC50b1N0cmluZygpLHI9TWF0aC5wb3coMTAsaS5sZW5ndGgtKGkuaW5kZXhPZigiLiIpKzEpKTtyZXR1cm4gbj1wYXJzZUludCgobipyKS50b1N0cmluZygpLDEwKS9yLGUobikrIiUifX0sZ3l0LnNpU3VmZml4PWZ1bmN0aW9uIE15dCh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9Myksdnl0KHQpLGZ1bmN0aW9uKGUpe3JldHVybiBfeXQuZm9ybWF0KCIuIit0KyJzIikoZSl9fSxneXQuc2hvcnRTY2FsZT1mdW5jdGlvbiBFeXQodCl7dm9pZCAwPT09dCYmKHQ9Myksdnl0KHQpO3ZhciBlPSJLTUJUUSIsbj1feXQuZm9ybWF0KCIuIit0KyJlIiksaT1feXQuZm9ybWF0KCIuIit0KyJmIikscj1NYXRoLnBvdygxMCwzKihlLmxlbmd0aCsxKSksbz1NYXRoLnBvdygxMCwtdCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBhPU1hdGguYWJzKHQpO2lmKChhPG98fGE+PXIpJiYwIT09YSlyZXR1cm4gbih0KTtmb3IodmFyIHM9LTE7YT49TWF0aC5wb3coMWUzLHMrMikmJnM8ZS5sZW5ndGgtMTspcysrO3ZhciBsPSIiO3JldHVybiBsPS0xPT09cz9pKHQpOmkodC9NYXRoLnBvdygxZTMscysxKSkrZVtzXSwodD4wJiYiMTAwMCI9PT1sLnN1YnN0cigwLDQpfHx0PDAmJiItMTAwMCI9PT1sLnN1YnN0cigwLDUpKSYmKHM8ZS5sZW5ndGgtMT8ocysrLGw9aSh0L01hdGgucG93KDFlMyxzKzEpKStlW3NdKTpsPW4odCkpLGx9fSxneXQubXVsdGlUaW1lPWZ1bmN0aW9uIFR5dCgpe3ZhciB0PVt7c3BlY2lmaWVyOiIuJUwiLHByZWRpY2F0ZTpmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQuZ2V0TWlsbGlzZWNvbmRzKCl9fSx7c3BlY2lmaWVyOiI6JVMiLHByZWRpY2F0ZTpmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQuZ2V0U2Vjb25kcygpfX0se3NwZWNpZmllcjoiJUk6JU0iLHByZWRpY2F0ZTpmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQuZ2V0TWludXRlcygpfX0se3NwZWNpZmllcjoiJUkgJXAiLHByZWRpY2F0ZTpmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQuZ2V0SG91cnMoKX19LHtzcGVjaWZpZXI6IiVhICVkIixwcmVkaWNhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIDAhPT10LmdldERheSgpJiYxIT09dC5nZXREYXRlKCl9fSx7c3BlY2lmaWVyOiIlYiAlZCIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiAxIT09dC5nZXREYXRlKCl9fSx7c3BlY2lmaWVyOiIlYiIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiAwIT09dC5nZXRNb250aCgpfX1dO3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj10LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQucHJlZGljYXRlKGUpfSkpO3JldHVybiBfeXQudGltZUZvcm1hdChuLmxlbmd0aD4wP25bMF0uc3BlY2lmaWVyOiIlWSIpKGUpfX0sZ3l0LnRpbWU9ZnVuY3Rpb24gQ3l0KHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPSExKSxlP195dC51dGNGb3JtYXQodCk6X3l0LnRpbWVGb3JtYXQodCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShteXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBBeXQ9dU8sa3l0PUVkdCxMeXQ9SW10LFB5dD1CZ3QsTnl0PWd5dCxJeXQ9Rmd0O215dC5BeGlzT3JpZW50YXRpb249U210Lm1ha2VFbnVtKFsiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwidG9wIl0pO3ZhciBSeXQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxuKXt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7aWYoaS5fZW5kVGlja0xlbmd0aD01LGkuX2lubmVyVGlja0xlbmd0aD01LGkuX3RpY2tMYWJlbFBhZGRpbmc9MTAsaS5fbWFyZ2luPTE1LGkuX3Nob3dFbmRUaWNrTGFiZWxzPSExLGkuX2Fubm90YXRpb25zRW5hYmxlZD0hMSxpLl9hbm5vdGF0aW9uVGllckNvdW50PTEsbnVsbD09ZXx8bnVsbD09bil0aHJvdyBuZXcgRXJyb3IoIkF4aXMgcmVxdWlyZXMgYSBzY2FsZSBhbmQgb3JpZW50YXRpb24iKTtyZXR1cm4gaS5fc2NhbGU9ZSxpLm9yaWVudGF0aW9uKG4pLGkuX3NldERlZmF1bHRBbGlnbm1lbnQoKSxpLmFkZENsYXNzKCJheGlzIiksaS5pc0hvcml6b250YWwoKT9pLmFkZENsYXNzKCJ4LWF4aXMiKTppLmFkZENsYXNzKCJ5LWF4aXMiKSxpLmZvcm1hdHRlcihOeXQuaWRlbnRpdHkoKSksaS5fcmVzY2FsZUNhbGxiYWNrPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9yZXNjYWxlKCl9LGkuX3NjYWxlLm9uVXBkYXRlKGkuX3Jlc2NhbGVDYWxsYmFjayksaS5fYW5ub3RhdGVkVGlja3M9W10saS5fYW5ub3RhdGlvbkZvcm1hdHRlcj1OeXQuaWRlbnRpdHkoKSxpfXJldHVybiBBeXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9zY2FsZS5vZmZVcGRhdGUodGhpcy5fcmVzY2FsZUNhbGxiYWNrKX0sZS5wcm90b3R5cGUudGlja0xhYmVsRGF0YU9uRWxlbWVudD1mdW5jdGlvbih0KXtpZihudWxsIT10KXtmb3IodmFyIG47bnVsbCE9dCYmdC5jbGFzc0xpc3QmJnZvaWQgMD09PW47KXQuY2xhc3NMaXN0LmNvbnRhaW5zKGUuVElDS19MQUJFTF9DTEFTUyk/bj10OnQ9dC5wYXJlbnROb2RlO3JldHVybiB2b2lkIDA9PT10P3ZvaWQgMDpreXQuc2VsZWN0KHQpLmRhdHVtKCl9fSxlLnByb3RvdHlwZS5fY29tcHV0ZVdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heExhYmVsVGlja0xlbmd0aCgpfSxlLnByb3RvdHlwZS5fY29tcHV0ZUhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKX0sZS5wcm90b3R5cGUucmVxdWVzdGVkU3BhY2U9ZnVuY3Rpb24odCxuKXt2YXIgaT0wLHI9MDtyZXR1cm4gdGhpcy5pc0hvcml6b250YWwoKT8ocj10aGlzLl9jb21wdXRlSGVpZ2h0KCkrdGhpcy5fbWFyZ2luLHRoaXMuYW5ub3RhdGlvbnNFbmFibGVkKCkmJihyKz0odGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQrMiplLl9BTk5PVEFUSU9OX0xBQkVMX1BBRERJTkcpKnRoaXMuYW5ub3RhdGlvblRpZXJDb3VudCgpKSk6KGk9dGhpcy5fY29tcHV0ZVdpZHRoKCkrdGhpcy5fbWFyZ2luLHRoaXMuYW5ub3RhdGlvbnNFbmFibGVkKCkmJihpKz0odGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQrMiplLl9BTk5PVEFUSU9OX0xBQkVMX1BBRERJTkcpKnRoaXMuYW5ub3RhdGlvblRpZXJDb3VudCgpKSkse21pbldpZHRoOmksbWluSGVpZ2h0OnJ9fSxlLnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSG9yaXpvbnRhbCgpfSxlLnByb3RvdHlwZS5maXhlZFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNIb3Jpem9udGFsKCl9LGUucHJvdG90eXBlLl9yZXNjYWxlPWZ1bmN0aW9uKCl7dGhpcy5yZW5kZXIoKX0sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKSx0aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMuX3NjYWxlLnJhbmdlKFswLHRoaXMud2lkdGgoKV0pOnRoaXMuX3NjYWxlLnJhbmdlKFt0aGlzLmhlaWdodCgpLDBdKSx0aGlzfSxlLnByb3RvdHlwZS5fc2l6ZUZyb21PZmZlcj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMucmVxdWVzdGVkU3BhY2UodCxlKTtyZXR1cm4gdGhpcy5pc0hvcml6b250YWwoKT97d2lkdGg6dCxoZWlnaHQ6bi5taW5IZWlnaHR9OntoZWlnaHQ6ZSx3aWR0aDpuLm1pbldpZHRofX0sZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fdGlja01hcmtDb250YWluZXI9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZChlLlRJQ0tfTUFSS19DTEFTUysiLWNvbnRhaW5lciIsITApLHRoaXMuX3RpY2tMYWJlbENvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKGUuVElDS19MQUJFTF9DTEFTUysiLWNvbnRhaW5lciIsITApLHRoaXMuX2Jhc2VsaW5lPXRoaXMuY29udGVudCgpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImJhc2VsaW5lIiwhMCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uLWNvbnRhaW5lciIsITApLHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiYW5ub3RhdGlvbi1saW5lLWNvbnRhaW5lciIsITApLHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiYW5ub3RhdGlvbi1jaXJjbGUtY29udGFpbmVyIiwhMCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uLXJlY3QtY29udGFpbmVyIiwhMCk7dmFyIG49dGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uLWxhYmVsLWNvbnRhaW5lciIsITApLGk9bmV3IEx5dC5TdmdDb250ZXh0KG4ubm9kZSgpKTt0aGlzLl9hbm5vdGF0aW9uTWVhc3VyZXI9bmV3IEx5dC5DYWNoZU1lYXN1cmVyKGkpLHRoaXMuX2Fubm90YXRpb25Xcml0ZXI9bmV3IEx5dC5Xcml0ZXIodGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyLGkpfSxlLnByb3RvdHlwZS5fZ2V0VGlja1ZhbHVlcz1mdW5jdGlvbigpe3JldHVybltdfSxlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldFRpY2tWYWx1ZXMoKSxuPXRoaXMuX3RpY2tNYXJrQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrZS5USUNLX01BUktfQ0xBU1MpLmRhdGEodCksaT1uLmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZChlLlRJQ0tfTUFSS19DTEFTUywhMCkubWVyZ2Uobik7cmV0dXJuIGkuYXR0cnModGhpcy5fZ2VuZXJhdGVUaWNrTWFya0F0dHJIYXNoKCkpLGt5dC5zZWxlY3QoaS5ub2RlcygpWzBdKS5jbGFzc2VkKGUuRU5EX1RJQ0tfTUFSS19DTEFTUywhMCkuYXR0cnModGhpcy5fZ2VuZXJhdGVUaWNrTWFya0F0dHJIYXNoKCEwKSksa3l0LnNlbGVjdChpLm5vZGVzKClbdC5sZW5ndGgtMV0pLmNsYXNzZWQoZS5FTkRfVElDS19NQVJLX0NMQVNTLCEwKS5hdHRycyh0aGlzLl9nZW5lcmF0ZVRpY2tNYXJrQXR0ckhhc2goITApKSxuLmV4aXQoKS5yZW1vdmUoKSx0aGlzLl9iYXNlbGluZS5hdHRycyh0aGlzLl9nZW5lcmF0ZUJhc2VsaW5lQXR0ckhhc2goKSksdGhpcy5hbm5vdGF0aW9uc0VuYWJsZWQoKT90aGlzLl9kcmF3QW5ub3RhdGlvbnMoKTp0aGlzLl9yZW1vdmVBbm5vdGF0aW9ucygpLHRoaXN9LGUucHJvdG90eXBlLmFubm90YXRlZFRpY2tzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2Fubm90YXRlZFRpY2tzOih0aGlzLl9hbm5vdGF0ZWRUaWNrcz10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmFubm90YXRpb25Gb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYW5ub3RhdGlvbkZvcm1hdHRlcjoodGhpcy5fYW5ub3RhdGlvbkZvcm1hdHRlcj10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmFubm90YXRpb25zRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9hbm5vdGF0aW9uc0VuYWJsZWQ6KHRoaXMuX2Fubm90YXRpb25zRW5hYmxlZD10LHRoaXMucmVkcmF3KCksdGhpcyl9LGUucHJvdG90eXBlLmFubm90YXRpb25UaWVyQ291bnQ9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fYW5ub3RhdGlvblRpZXJDb3VudDtpZih0PDApdGhyb3cgbmV3IEVycm9yKCJhbm5vdGF0aW9uVGllckNvdW50IGNhbm5vdCBiZSBuZWdhdGl2ZSIpO3JldHVybiB0aGlzLl9hbm5vdGF0aW9uVGllckNvdW50PXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5fZHJhd0Fubm90YXRpb25zPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWUuX0FOTk9UQVRJT05fTEFCRUxfUEFERElORyxpPW5ldyBJeXQuTWFwLHI9dGhpcy5fYW5ub3RhdGVkVGlja3NUb1JlbmRlcigpO3IuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9dC5fYW5ub3RhdGlvbk1lYXN1cmVyLm1lYXN1cmUodC5hbm5vdGF0aW9uRm9ybWF0dGVyKCkoZSkpO2kuc2V0KGUse3dpZHRoOnIud2lkdGgrMipuLGhlaWdodDpyLmhlaWdodCsyKm59KX0pKTt2YXIgbz10aGlzLl9hbm5vdGF0aW9uTWVhc3VyZXIubWVhc3VyZSgpLmhlaWdodCsyKm4sYT10aGlzLl9hbm5vdGF0aW9uVG9UaWVyKGkpLHM9bmV3IEl5dC5TZXQsbD10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMuaGVpZ2h0KCk6dGhpcy53aWR0aCgpLGM9dGhpcy5fY29yZVNpemUoKSx1PU1hdGgubWluKHRoaXMuYW5ub3RhdGlvblRpZXJDb3VudCgpLE1hdGguZmxvb3IoKGwtYykvbykpO2EuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXsoLTE9PT10fHx0Pj11KSYmcy5hZGQoZSl9KSk7dmFyIGgsZD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5zZWxlY3RBbGwoIi4iK24pLmRhdGEociksbz1pLmVudGVyKCkuYXBwZW5kKGUpLmNsYXNzZWQobiwhMCkubWVyZ2UoaSk7cmV0dXJuIGkuZXhpdCgpLnJlbW92ZSgpLG99LHA9ZnVuY3Rpb24oZSl7c3dpdGNoKHQub3JpZW50YXRpb24oKSl7Y2FzZSJib3R0b20iOmNhc2UicmlnaHQiOnJldHVybiBhLmdldChlKSpvK2M7Y2FzZSJ0b3AiOmNhc2UibGVmdCI6cmV0dXJuIGwtYy1hLmdldChlKSpvfX0sZj1mdW5jdGlvbihlKXtyZXR1cm4gdC5fc2NhbGUuc2NhbGUoZSl9LG09ZnVuY3Rpb24odCl7cmV0dXJuIHMuaGFzKHQpPyJoaWRkZW4iOiJ2aXNpYmxlIn07c3dpdGNoKHRoaXMub3JpZW50YXRpb24oKSl7Y2FzZSJib3R0b20iOmNhc2UicmlnaHQiOmg9MDticmVhaztjYXNlInRvcCI6aD10aGlzLmhlaWdodCgpO2JyZWFrO2Nhc2UibGVmdCI6aD10aGlzLndpZHRoKCl9dmFyIGc9dGhpcy5pc0hvcml6b250YWwoKTtkKHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0KCIuYW5ub3RhdGlvbi1saW5lLWNvbnRhaW5lciIpLCJsaW5lIixlLkFOTk9UQVRJT05fTElORV9DTEFTUykuYXR0cnMoe3gxOmc/ZjpoLHgyOmc/ZjpwLHkxOmc/aDpmLHkyOmc/cDpmLHZpc2liaWxpdHk6bX0pLGQodGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3QoIi5hbm5vdGF0aW9uLWNpcmNsZS1jb250YWluZXIiKSwiY2lyY2xlIixlLkFOTk9UQVRJT05fQ0lSQ0xFX0NMQVNTKS5hdHRycyh7Y3g6Zz9mOmgsY3k6Zz9oOmYscjozfSk7dmFyIF89ZnVuY3Rpb24oZSl7c3dpdGNoKHQub3JpZW50YXRpb24oKSl7Y2FzZSJib3R0b20iOmNhc2UicmlnaHQiOnJldHVybiBwKGUpO2Nhc2UidG9wIjpjYXNlImxlZnQiOnJldHVybiBwKGUpLWkuZ2V0KGUpLmhlaWdodH19O2QodGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3QoIi5hbm5vdGF0aW9uLXJlY3QtY29udGFpbmVyIiksInJlY3QiLGUuQU5OT1RBVElPTl9SRUNUX0NMQVNTKS5hdHRycyh7eDpnP2Y6Xyx5Omc/XzpmLHdpZHRoOmc/ZnVuY3Rpb24odCl7cmV0dXJuIGkuZ2V0KHQpLndpZHRofTpmdW5jdGlvbih0KXtyZXR1cm4gaS5nZXQodCkuaGVpZ2h0fSxoZWlnaHQ6Zz9mdW5jdGlvbih0KXtyZXR1cm4gaS5nZXQodCkuaGVpZ2h0fTpmdW5jdGlvbih0KXtyZXR1cm4gaS5nZXQodCkud2lkdGh9LHZpc2liaWxpdHk6bX0pO3ZhciB5PXRoaXMuX2Fubm90YXRpb25Xcml0ZXIsdj10aGlzLmFubm90YXRpb25Gb3JtYXR0ZXIoKSxiPWQodGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3QoIi5hbm5vdGF0aW9uLWxhYmVsLWNvbnRhaW5lciIpLCJnIixlLkFOTk9UQVRJT05fTEFCRUxfQ0xBU1MpO2Iuc2VsZWN0QWxsKCIudGV4dC1jb250YWluZXIiKS5yZW1vdmUoKSxiLmF0dHJzKHt0cmFuc2Zvcm06ZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgiKyhnP2YodCk6Xyh0KSkrIiwiKyhnP18odCk6Zih0KSkrIikifSx2aXNpYmlsaXR5Om19KS5lYWNoKChmdW5jdGlvbih0KXt5LndyaXRlKHYodCksZz9pLmdldCh0KS53aWR0aDppLmdldCh0KS5oZWlnaHQsZz9pLmdldCh0KS5oZWlnaHQ6aS5nZXQodCkud2lkdGgse3hBbGlnbjoiY2VudGVyIix5QWxpZ246ImNlbnRlciIsdGV4dFJvdGF0aW9uOmc/MDo5MH0sa3l0LnNlbGVjdCh0aGlzKS5ub2RlKCkpfSkpfSxlLnByb3RvdHlwZS5fYW5ub3RhdGVkVGlja3NUb1JlbmRlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLl9zY2FsZS5yYW5nZSgpO3JldHVybiBJeXQuQXJyYXkudW5pcSh0aGlzLmFubm90YXRlZFRpY2tzKCkuZmlsdGVyKChmdW5jdGlvbihuKXtyZXR1cm4gbnVsbCE9biYmSXl0Lk1hdGguaW5SYW5nZSh0Ll9zY2FsZS5zY2FsZShuKSxlWzBdLGVbMV0pfSkpKX0sZS5wcm90b3R5cGUuX2NvcmVTaXplPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pc0hvcml6b250YWwoKT90aGlzLmhlaWdodCgpOnRoaXMud2lkdGgoKSxlPXRoaXMuaXNIb3Jpem9udGFsKCk/dGhpcy5fY29tcHV0ZUhlaWdodCgpOnRoaXMuX2NvbXB1dGVXaWR0aCgpO3JldHVybiBNYXRoLm1pbihlLHQpfSxlLnByb3RvdHlwZS5fYW5ub3RhdGlvblRpZXJIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQrMiplLl9BTk5PVEFUSU9OX0xBQkVMX1BBRERJTkd9LGUucHJvdG90eXBlLl9hbm5vdGF0aW9uVG9UaWVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1bW11dLGk9bmV3IEl5dC5NYXAscj10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMud2lkdGgoKTp0aGlzLmhlaWdodCgpO3JldHVybiB0aGlzLl9hbm5vdGF0ZWRUaWNrc1RvUmVuZGVyKCkuZm9yRWFjaCgoZnVuY3Rpb24obyl7dmFyIGE9ZS5fc2NhbGUuc2NhbGUobykscz10LmdldChvKS53aWR0aDtpZihhPDB8fGErcz5yKWkuc2V0KG8sLTEpO2Vsc2V7Zm9yKHZhciBsPTA7bltsXS5zb21lKChmdW5jdGlvbihuKXt2YXIgaT1lLl9zY2FsZS5zY2FsZShuKSxyPXQuZ2V0KG4pLndpZHRoO3JldHVybiBhK3M+PWkmJmE8PWkrcn0pKTspbCsrLG4ubGVuZ3RoPT09bCYmbi5wdXNoKFtdKTtuW2xdLnB1c2gobyksaS5zZXQobyxsKX19KSksaX0sZS5wcm90b3R5cGUuX3JlbW92ZUFubm90YXRpb25zPWZ1bmN0aW9uKCl7dGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLWxpbmUiKS5yZW1vdmUoKSx0aGlzLl9hbm5vdGF0aW9uQ29udGFpbmVyLnNlbGVjdEFsbCgiLmFubm90YXRpb24tY2lyY2xlIikucmVtb3ZlKCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLXJlY3QiKS5yZW1vdmUoKSx0aGlzLl9hbm5vdGF0aW9uQ29udGFpbmVyLnNlbGVjdEFsbCgiLmFubm90YXRpb24tbGFiZWwiKS5yZW1vdmUoKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlQmFzZWxpbmVBdHRySGFzaD1mdW5jdGlvbigpe3ZhciB0PXt4MTowLHkxOjAseDI6MCx5MjowfTtzd2l0Y2godGhpcy5fb3JpZW50YXRpb24pe2Nhc2UiYm90dG9tIjp0LngyPXRoaXMud2lkdGgoKTticmVhaztjYXNlInRvcCI6dC54Mj10aGlzLndpZHRoKCksdC55MT10aGlzLmhlaWdodCgpLHQueTI9dGhpcy5oZWlnaHQoKTticmVhaztjYXNlImxlZnQiOnQueDE9dGhpcy53aWR0aCgpLHQueDI9dGhpcy53aWR0aCgpLHQueTI9dGhpcy5oZWlnaHQoKTticmVhaztjYXNlInJpZ2h0Ijp0LnkyPXRoaXMuaGVpZ2h0KCl9cmV0dXJuIHR9LGUucHJvdG90eXBlLl9nZW5lcmF0ZVRpY2tNYXJrQXR0ckhhc2g9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10JiYodD0hMSk7dmFyIG49e3gxOjAseTE6MCx4MjowLHkyOjB9LGk9ZnVuY3Rpb24odCl7cmV0dXJuIGUuX3NjYWxlLnNjYWxlKHQpfTt0aGlzLmlzSG9yaXpvbnRhbCgpPyhuLngxPWksbi54Mj1pKToobi55MT1pLG4ueTI9aSk7dmFyIHI9dD90aGlzLl9lbmRUaWNrTGVuZ3RoOnRoaXMuX2lubmVyVGlja0xlbmd0aDtzd2l0Y2godGhpcy5fb3JpZW50YXRpb24pe2Nhc2UiYm90dG9tIjpuLnkyPXI7YnJlYWs7Y2FzZSJ0b3AiOm4ueTE9dGhpcy5oZWlnaHQoKSxuLnkyPXRoaXMuaGVpZ2h0KCktcjticmVhaztjYXNlImxlZnQiOm4ueDE9dGhpcy53aWR0aCgpLG4ueDI9dGhpcy53aWR0aCgpLXI7YnJlYWs7Y2FzZSJyaWdodCI6bi54Mj1yfXJldHVybiBufSxlLnByb3RvdHlwZS5fc2V0RGVmYXVsdEFsaWdubWVudD1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9vcmllbnRhdGlvbil7Y2FzZSJib3R0b20iOnRoaXMueUFsaWdubWVudCgidG9wIik7YnJlYWs7Y2FzZSJ0b3AiOnRoaXMueUFsaWdubWVudCgiYm90dG9tIik7YnJlYWs7Y2FzZSJsZWZ0Ijp0aGlzLnhBbGlnbm1lbnQoInJpZ2h0Iik7YnJlYWs7Y2FzZSJyaWdodCI6dGhpcy54QWxpZ25tZW50KCJsZWZ0Iil9fSxlLnByb3RvdHlwZS5pc0hvcml6b250YWw9ZnVuY3Rpb24oKXtyZXR1cm4idG9wIj09PXRoaXMuX29yaWVudGF0aW9ufHwiYm90dG9tIj09PXRoaXMuX29yaWVudGF0aW9ufSxlLnByb3RvdHlwZS5nZXRTY2FsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zY2FsZX0sZS5wcm90b3R5cGUuZm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2Zvcm1hdHRlcjoodGhpcy5fZm9ybWF0dGVyPXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5wcm90b3R5cGUuaW5uZXJUaWNrTGVuZ3RoPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX2lubmVyVGlja0xlbmd0aDtpZih0PDApdGhyb3cgbmV3IEVycm9yKCJpbm5lciB0aWNrIGxlbmd0aCBtdXN0IGJlIHBvc2l0aXZlIik7cmV0dXJuIHRoaXMuX2lubmVyVGlja0xlbmd0aD10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUuZW5kVGlja0xlbmd0aD1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9lbmRUaWNrTGVuZ3RoO2lmKHQ8MCl0aHJvdyBuZXcgRXJyb3IoImVuZCB0aWNrIGxlbmd0aCBtdXN0IGJlIHBvc2l0aXZlIik7cmV0dXJuIHRoaXMuX2VuZFRpY2tMZW5ndGg9dCx0aGlzLnJlZHJhdygpLHRoaXN9LGUucHJvdG90eXBlLl9tYXhMYWJlbFRpY2tMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaG93RW5kVGlja0xhYmVscygpP01hdGgubWF4KHRoaXMuaW5uZXJUaWNrTGVuZ3RoKCksdGhpcy5lbmRUaWNrTGVuZ3RoKCkpOnRoaXMuaW5uZXJUaWNrTGVuZ3RoKCl9LGUucHJvdG90eXBlLnRpY2tMYWJlbFBhZGRpbmc9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fdGlja0xhYmVsUGFkZGluZztpZih0PDApdGhyb3cgbmV3IEVycm9yKCJ0aWNrIGxhYmVsIHBhZGRpbmcgbXVzdCBiZSBwb3NpdGl2ZSIpO3JldHVybiB0aGlzLl90aWNrTGFiZWxQYWRkaW5nPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5tYXJnaW49ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fbWFyZ2luO2lmKHQ8MCl0aHJvdyBuZXcgRXJyb3IoIm1hcmdpbiBzaXplIG11c3QgYmUgcG9zaXRpdmUiKTtyZXR1cm4gdGhpcy5fbWFyZ2luPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5vcmllbnRhdGlvbj1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9vcmllbnRhdGlvbjt2YXIgZT10LnRvTG93ZXJDYXNlKCk7aWYoInRvcCIhPT1lJiYiYm90dG9tIiE9PWUmJiJsZWZ0IiE9PWUmJiJyaWdodCIhPT1lKXRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgb3JpZW50YXRpb24iKTtyZXR1cm4gdGhpcy5fb3JpZW50YXRpb249ZSx0aGlzLnJlZHJhdygpLHRoaXN9LGUucHJvdG90eXBlLnNob3dFbmRUaWNrTGFiZWxzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3Nob3dFbmRUaWNrTGFiZWxzOih0aGlzLl9zaG93RW5kVGlja0xhYmVscz10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLl9zaG93QWxsVGlja01hcmtzPWZ1bmN0aW9uKCl7dGhpcy5fdGlja01hcmtDb250YWluZXIuc2VsZWN0QWxsKCIuIitlLlRJQ0tfTUFSS19DTEFTUykuZWFjaCgoZnVuY3Rpb24oKXtreXQuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaW5oZXJpdCIpfSkpfSxlLnByb3RvdHlwZS5fc2hvd0FsbFRpY2tMYWJlbHM9ZnVuY3Rpb24oKXt0aGlzLl90aWNrTGFiZWxDb250YWluZXIuc2VsZWN0QWxsKCIuIitlLlRJQ0tfTEFCRUxfQ0xBU1MpLmVhY2goKGZ1bmN0aW9uKCl7a3l0LnNlbGVjdCh0aGlzKS5zdHlsZSgidmlzaWJpbGl0eSIsImluaGVyaXQiKX0pKX0sZS5wcm90b3R5cGUuX2hpZGVPdmVyZmxvd2luZ1RpY2tMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQoKS5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10aGlzLl90aWNrTGFiZWxDb250YWluZXIuc2VsZWN0QWxsKCIuIitlLlRJQ0tfTEFCRUxfQ0xBU1MpO24uZW1wdHkoKXx8bi5lYWNoKChmdW5jdGlvbihlLG4pe0l5dC5ET00uY2xpZW50UmVjdEluc2lkZSh0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQpfHxreXQuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9KSl9LGUucHJvdG90eXBlLl9oaWRlVGlja01hcmtzV2l0aG91dExhYmVsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fdGlja01hcmtDb250YWluZXIuc2VsZWN0QWxsKCIuIitlLlRJQ0tfTUFSS19DTEFTUyksbj10aGlzLl90aWNrTGFiZWxDb250YWluZXIuc2VsZWN0QWxsKCIuIitlLlRJQ0tfTEFCRUxfQ0xBU1MpLmZpbHRlcigoZnVuY3Rpb24odCxlKXt2YXIgbj1reXQuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5Iik7cmV0dXJuImluaGVyaXQiPT09bnx8InZpc2libGUiPT09bn0pKS5kYXRhKCk7dC5lYWNoKChmdW5jdGlvbih0LGUpey0xPT09bi5pbmRleE9mKHQpJiZreXQuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9KSl9LGUucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZS5jYWxsKHRoaXMpLHRoaXMuX2Fubm90YXRpb25NZWFzdXJlci5yZXNldCgpfSxlLkVORF9USUNLX01BUktfQ0xBU1M9ImVuZC10aWNrLW1hcmsiLGUuVElDS19NQVJLX0NMQVNTPSJ0aWNrLW1hcmsiLGUuVElDS19MQUJFTF9DTEFTUz0idGljay1sYWJlbCIsZS5BTk5PVEFUSU9OX0xJTkVfQ0xBU1M9ImFubm90YXRpb24tbGluZSIsZS5BTk5PVEFUSU9OX1JFQ1RfQ0xBU1M9ImFubm90YXRpb24tcmVjdCIsZS5BTk5PVEFUSU9OX0NJUkNMRV9DTEFTUz0iYW5ub3RhdGlvbi1jaXJjbGUiLGUuQU5OT1RBVElPTl9MQUJFTF9DTEFTUz0iYW5ub3RhdGlvbi1sYWJlbCIsZS5fQU5OT1RBVElPTl9MQUJFTF9QQURESU5HPTQsZX0pKFB5dC5Db21wb25lbnQpO215dC5BeGlzPVJ5dCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KE5tdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIE95dD11Tyx6eXQ9RWR0LER5dD1JbXQsQnl0PUJndCxIeXQ9Rmd0LEZ5dD1teXQsVnl0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dm9pZCAwPT09biYmKG49ImJvdHRvbSIpO3ZhciBpPXQuY2FsbCh0aGlzLGUsbil8fHRoaXM7cmV0dXJuIGkuX3RpY2tMYWJlbEFuZ2xlPTAsaS5fdGlja0xhYmVsU2hlYXJBbmdsZT0wLGkuYWRkQ2xhc3MoImNhdGVnb3J5LWF4aXMiKSxpfXJldHVybiBPeXQuX19leHRlbmRzKGUsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJfd3JhcHBlciIse2dldDpmdW5jdGlvbigpe3ZhciB0PW5ldyBEeXQuV3JhcHBlcjtyZXR1cm4gbnVsbCE9dGhpcy5fdGlja0xhYmVsTWF4TGluZXMmJnQubWF4TGluZXModGhpcy5fdGlja0xhYmVsTWF4TGluZXMpLHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJfd3JpdGVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEeXQuV3JpdGVyKHRoaXMuX21lYXN1cmVyLHRoaXMuX3R5cGVzZXR0ZXJDb250ZXh0LHRoaXMuX3dyYXBwZXIpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3R5cGVzZXR0ZXJDb250ZXh0PW5ldyBEeXQuU3ZnQ29udGV4dCh0aGlzLl90aWNrTGFiZWxDb250YWluZXIubm9kZSgpKSx0aGlzLl9tZWFzdXJlcj1uZXcgRHl0LkNhY2hlTWVhc3VyZXIodGhpcy5fdHlwZXNldHRlckNvbnRleHQpfSxlLnByb3RvdHlwZS5fcmVzY2FsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlZHJhdygpfSxlLnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuaXNIb3Jpem9udGFsKCk/MDp0aGlzLl90aWNrU3BhY2VSZXF1aXJlZCgpK3RoaXMubWFyZ2luKCksaT10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCkrdGhpcy5tYXJnaW4oKTowO2lmKDA9PT10aGlzLl9zY2FsZS5kb21haW4oKS5sZW5ndGgpcmV0dXJue21pbldpZHRoOjAsbWluSGVpZ2h0OjB9O2lmKHRoaXMuYW5ub3RhdGlvbnNFbmFibGVkKCkpe3ZhciByPXRoaXMuX2Fubm90YXRpb25UaWVySGVpZ2h0KCkqdGhpcy5hbm5vdGF0aW9uVGllckNvdW50KCk7dGhpcy5pc0hvcml6b250YWwoKT9pKz1yOm4rPXJ9dmFyIG89dGhpcy5fbWVhc3VyZVRpY2tMYWJlbHModCxlKTtyZXR1cm57bWluV2lkdGg6by51c2VkV2lkdGgrbixtaW5IZWlnaHQ6by51c2VkSGVpZ2h0K2l9fSxlLnByb3RvdHlwZS5fY29yZVNpemU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMuaGVpZ2h0KCk6dGhpcy53aWR0aCgpLGU9dGhpcy5pc0hvcml6b250YWwoKT90aGlzLnJlcXVlc3RlZFNwYWNlKHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpKS5taW5IZWlnaHQ6dGhpcy5yZXF1ZXN0ZWRTcGFjZSh0aGlzLndpZHRoKCksdGhpcy5oZWlnaHQoKSkubWluV2lkdGgsbj10aGlzLm1hcmdpbigpK3RoaXMuX2Fubm90YXRpb25UaWVySGVpZ2h0KCk7cmV0dXJuIE1hdGgubWluKGUtbix0KX0sZS5wcm90b3R5cGUuX2dldFRpY2tWYWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXREb3duc2FtcGxlSW5mbygpLmRvbWFpbn0sZS5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gQnl0LkNvbXBvbmVudC5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXIuY2FsbCh0aGlzLHQsZSl9LGUucHJvdG90eXBlLmdldERvd25zYW1wbGVJbmZvPWZ1bmN0aW9uKHQsbil7dm9pZCAwPT09dCYmKHQ9dGhpcy5fc2NhbGUpLHZvaWQgMD09PW4mJihuPXQuaW52ZXJ0UmFuZ2UoKSk7dmFyIGk9MD09PXRoaXMuX3RpY2tMYWJlbEFuZ2xlPzE6MS9NYXRoLmNvcyh0aGlzLl90aWNrTGFiZWxTaGVhckFuZ2xlLzE4MCpNYXRoLlBJKSxyPU1hdGguY2VpbChlLl9NSU5JTVVNX1dJRFRIX1BFUl9MQUJFTF9QWCppL3Quc3RlcFdpZHRoKCkpO3JldHVybntkb21haW46bi5maWx0ZXIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUlcj09MH0pKSxzdGVwV2lkdGg6cip0LnN0ZXBXaWR0aCgpfX0sZS5wcm90b3R5cGUudGlja0xhYmVsQW5nbGU9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fdGlja0xhYmVsQW5nbGU7aWYoMCE9PXQmJjkwIT09dCYmLTkwIT09dCl0aHJvdyBuZXcgRXJyb3IoIkFuZ2xlICIrdCsiIG5vdCBzdXBwb3J0ZWQ7IG9ubHkgMCwgOTAsIGFuZCAtOTAgYXJlIHZhbGlkIHZhbHVlcyIpO3JldHVybiB0aGlzLl90aWNrTGFiZWxBbmdsZT10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUudGlja0xhYmVsU2hlYXJBbmdsZT1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl90aWNrTGFiZWxTaGVhckFuZ2xlO2lmKHQ8LTgwfHx0PjgwKXRocm93IG5ldyBFcnJvcigiQW5nbGUgIit0KyIgbm90IHN1cHBvcnRlZDsgTXVzdCBiZSBiZXR3ZWVuIFstODAsIDgwXSIpO3JldHVybiB0aGlzLl90aWNrTGFiZWxTaGVhckFuZ2xlPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS50aWNrTGFiZWxNYXhXaWR0aD1mdW5jdGlvbih0KXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5fdGlja0xhYmVsTWF4V2lkdGg6KHRoaXMuX3RpY2tMYWJlbE1heFdpZHRoPXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5wcm90b3R5cGUudGlja0xhYmVsTWF4TGluZXM9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX3RpY2tMYWJlbE1heExpbmVzOih0aGlzLl90aWNrTGFiZWxNYXhMaW5lcz10LHRoaXMucmVkcmF3KCksdGhpcyl9LGUucHJvdG90eXBlLl90aWNrU3BhY2VSZXF1aXJlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKSt0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKX0sZS5wcm90b3R5cGUuX2RyYXdUaWNrcz1mdW5jdGlvbih0LGUpe3ZhciBuLGkscj10aGlzO3N3aXRjaCh0aGlzLnRpY2tMYWJlbEFuZ2xlKCkpe2Nhc2UgMDpuPXtsZWZ0OiJyaWdodCIscmlnaHQ6ImxlZnQiLHRvcDoiY2VudGVyIixib3R0b206ImNlbnRlciJ9LGk9e2xlZnQ6ImNlbnRlciIscmlnaHQ6ImNlbnRlciIsdG9wOiJib3R0b20iLGJvdHRvbToidG9wIn07YnJlYWs7Y2FzZSA5MDpuPXtsZWZ0OiJjZW50ZXIiLHJpZ2h0OiJjZW50ZXIiLHRvcDoicmlnaHQiLGJvdHRvbToibGVmdCJ9LGk9e2xlZnQ6InRvcCIscmlnaHQ6ImJvdHRvbSIsdG9wOiJjZW50ZXIiLGJvdHRvbToiY2VudGVyIn07YnJlYWs7Y2FzZS05MDpuPXtsZWZ0OiJjZW50ZXIiLHJpZ2h0OiJjZW50ZXIiLHRvcDoibGVmdCIsYm90dG9tOiJyaWdodCJ9LGk9e2xlZnQ6ImJvdHRvbSIscmlnaHQ6InRvcCIsdG9wOiJjZW50ZXIiLGJvdHRvbToiY2VudGVyIn19ZS5lYWNoKChmdW5jdGlvbihlKXt2YXIgbz16eXQuc2VsZWN0KHRoaXMpLGE9ci5pc0hvcml6b250YWwoKT90OnIud2lkdGgoKS1yLl90aWNrU3BhY2VSZXF1aXJlZCgpLHM9ci5pc0hvcml6b250YWwoKT9yLmhlaWdodCgpLXIuX3RpY2tTcGFjZVJlcXVpcmVkKCk6dCxsPXt4QWxpZ246bltyLm9yaWVudGF0aW9uKCldLHlBbGlnbjppW3Iub3JpZW50YXRpb24oKV0sdGV4dFJvdGF0aW9uOnIudGlja0xhYmVsQW5nbGUoKSx0ZXh0U2hlYXI6ci50aWNrTGFiZWxTaGVhckFuZ2xlKCl9O2lmKG51bGwhPXIuX3RpY2tMYWJlbE1heFdpZHRoKXtpZigibGVmdCI9PT1yLm9yaWVudGF0aW9uKCkmJmE+ci5fdGlja0xhYmVsTWF4V2lkdGgpe3ZhciBjPWEtci5fdGlja0xhYmVsTWF4V2lkdGgsdT1vLmF0dHIoInRyYW5zZm9ybSIpKyIgdHJhbnNsYXRlKCIrYysiLCAwKSI7by5hdHRyKCJ0cmFuc2Zvcm0iLHUpfWE9TWF0aC5taW4oYSxyLl90aWNrTGFiZWxNYXhXaWR0aCl9ci5fd3JpdGVyLndyaXRlKHIuZm9ybWF0dGVyKCkoZSksYSxzLGwsby5ub2RlKCkpfSkpfSxlLnByb3RvdHlwZS5fbWVhc3VyZVRpY2tMYWJlbHM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLGk9dGhpcy5fc2NhbGUuY2xvbmVXaXRob3V0UHJvdmlkZXJzKCkucmFuZ2UoWzAsdGhpcy5pc0hvcml6b250YWwoKT90OmVdKSxyPXRoaXMuZ2V0RG93bnNhbXBsZUluZm8oaSksbz1yLmRvbWFpbixhPXIuc3RlcFdpZHRoLHM9dC10aGlzLl90aWNrU3BhY2VSZXF1aXJlZCgpO3RoaXMuaXNIb3Jpem9udGFsKCkmJihzPWEsMCE9PXRoaXMuX3RpY2tMYWJlbEFuZ2xlJiYocz1lLXRoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCkpLHM9TWF0aC5tYXgocywwKSk7dmFyIGw9YTt0aGlzLmlzSG9yaXpvbnRhbCgpJiYobD1lLXRoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCksMCE9PXRoaXMuX3RpY2tMYWJlbEFuZ2xlJiYobD10LXRoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCkpLGw9TWF0aC5tYXgobCwwKSksbnVsbCE9dGhpcy5fdGlja0xhYmVsTWF4V2lkdGgmJihzPU1hdGgubWluKHMsdGhpcy5fdGlja0xhYmVsTWF4V2lkdGgpKTt2YXIgYyx1PW8ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbi5fd3JhcHBlci53cmFwKG4uZm9ybWF0dGVyKCkodCksbi5fbWVhc3VyZXIscyxsKX0pKSxoPXRoaXMuaXNIb3Jpem9udGFsKCkmJjA9PT10aGlzLl90aWNrTGFiZWxBbmdsZT96eXQuc3VtOkh5dC5NYXRoLm1heCxkPXRoaXMuaXNIb3Jpem9udGFsKCkmJjA9PT10aGlzLl90aWNrTGFiZWxBbmdsZT9IeXQuTWF0aC5tYXg6enl0LnN1bSxwPWgodSwoZnVuY3Rpb24odCl7cmV0dXJuIG4uX21lYXN1cmVyLm1lYXN1cmUodC53cmFwcGVkVGV4dCkud2lkdGh9KSwwKSxmPWQodSwoZnVuY3Rpb24odCl7cmV0dXJuIG4uX21lYXN1cmVyLm1lYXN1cmUodC53cmFwcGVkVGV4dCkuaGVpZ2h0fSksMCk7cmV0dXJuIDAhPT10aGlzLl90aWNrTGFiZWxBbmdsZSYmKHA9KGM9W2YscF0pWzBdLGY9Y1sxXSkse3VzZWRXaWR0aDpwLHVzZWRIZWlnaHQ6Zn19LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0LnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpO3ZhciBuPXRoaXMuX3NjYWxlLGk9dGhpcy5nZXREb3duc2FtcGxlSW5mbyhuKSxyPWkuZG9tYWluLG89aS5zdGVwV2lkdGgsYT1vO3RoaXMuaXNIb3Jpem9udGFsKCkmJm51bGwhPXRoaXMuX3RpY2tMYWJlbE1heFdpZHRoJiYoYT1NYXRoLm1pbihhLHRoaXMuX3RpY2tMYWJlbE1heFdpZHRoKSk7dmFyIHM9dGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrRnl0LkF4aXMuVElDS19MQUJFTF9DTEFTUykuZGF0YShyKSxsPXMuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKEZ5dC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MsITApLm1lcmdlKHMpO3MuZXhpdCgpLnJlbW92ZSgpLGwuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCxpKXt2YXIgcj1uLnNjYWxlKHQpLWEvMjtyZXR1cm4idHJhbnNsYXRlKCIrKGUuaXNIb3Jpem9udGFsKCk/cjowKSsiLCIrKGUuaXNIb3Jpem9udGFsKCk/MDpyKSsiKSJ9KSksbC50ZXh0KCIiKSx0aGlzLl9kcmF3VGlja3MobyxsKTt2YXIgYz0icmlnaHQiPT09dGhpcy5vcmllbnRhdGlvbigpP3RoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCk6MCx1PSJib3R0b20iPT09dGhpcy5vcmllbnRhdGlvbigpP3RoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCk6MDtyZXR1cm4gdGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2MrIiwiK3UrIikiKSx0aGlzLl9zaG93QWxsVGlja01hcmtzKCksdGhpcy5fc2hvd0FsbFRpY2tMYWJlbHMoKSx0aGlzLl9oaWRlVGlja01hcmtzV2l0aG91dExhYmVsKCksdGhpc30sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKSx0aGlzLmlzSG9yaXpvbnRhbCgpfHx0aGlzLl9zY2FsZS5yYW5nZShbMCx0aGlzLmhlaWdodCgpXSksdGhpc30sZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sZS5fTUlOSU1VTV9XSURUSF9QRVJfTEFCRUxfUFg9MTUsZX0pKEZ5dC5BeGlzKTtObXQuQ2F0ZWdvcnk9Vnl0O3ZhciBVeXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFV5dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGp5dD11TyxHeXQ9RWR0LFd5dD1JbXQscXl0PWd5dCxZeXQ9Rmd0LFh5dD1teXQsJHl0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dmFyIGk9dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gaS5fdGlja0xhYmVsUG9zaXRpb25pbmc9ImNlbnRlciIsaS5fdXNlc1RleHRXaWR0aEFwcHJveGltYXRpb249ITEsaS5mb3JtYXR0ZXIocXl0LmdlbmVyYWwoKSksaX1yZXR1cm4ganl0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpO3ZhciBlPW5ldyBXeXQuU3ZnQ29udGV4dCh0aGlzLl90aWNrTGFiZWxDb250YWluZXIubm9kZSgpLFh5dC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpO3RoaXMuX21lYXN1cmVyPW5ldyBXeXQuQ2FjaGVNZWFzdXJlcihlKSx0aGlzLl93cmFwcGVyPShuZXcgV3l0LldyYXBwZXIpLm1heExpbmVzKDEpfSxlLnByb3RvdHlwZS5fY29tcHV0ZVdpZHRoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fdXNlc1RleHRXaWR0aEFwcHJveGltYXRpb24/dGhpcy5fY29tcHV0ZUFwcHJveGltYXRlVGV4dFdpZHRoKCk6dGhpcy5fY29tcHV0ZUV4YWN0VGV4dFdpZHRoKCk7cmV0dXJuImNlbnRlciI9PT10aGlzLl90aWNrTGFiZWxQb3NpdGlvbmluZz90aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKSt0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKSt0Ok1hdGgubWF4KHRoaXMuX21heExhYmVsVGlja0xlbmd0aCgpLHRoaXMudGlja0xhYmVsUGFkZGluZygpK3QpfSxlLnByb3RvdHlwZS5fY29tcHV0ZUV4YWN0VGV4dFdpZHRoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX2dldFRpY2tWYWx1ZXMoKS5tYXAoKGZ1bmN0aW9uKGUpe3ZhciBuPXQuZm9ybWF0dGVyKCkoZSk7cmV0dXJuIHQuX21lYXN1cmVyLm1lYXN1cmUobikud2lkdGh9KSk7cmV0dXJuIFl5dC5NYXRoLm1heChlLDApfSxlLnByb3RvdHlwZS5fY29tcHV0ZUFwcHJveGltYXRlVGV4dFdpZHRoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX2dldFRpY2tWYWx1ZXMoKSxuPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoIk0iKS53aWR0aCxpPWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5mb3JtYXR0ZXIoKShlKS5sZW5ndGgqbn0pKTtyZXR1cm4gWXl0Lk1hdGgubWF4KGksMCl9LGUucHJvdG90eXBlLl9jb21wdXRlSGVpZ2h0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbWVhc3VyZXIubWVhc3VyZSgpLmhlaWdodDtyZXR1cm4iY2VudGVyIj09PXRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nP3RoaXMuX21heExhYmVsVGlja0xlbmd0aCgpK3RoaXMudGlja0xhYmVsUGFkZGluZygpK3Q6TWF0aC5tYXgodGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCksdGhpcy50aWNrTGFiZWxQYWRkaW5nKCkrdCl9LGUucHJvdG90eXBlLl9nZXRUaWNrVmFsdWVzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc2NhbGUsZT10LmRvbWFpbigpLG49ZVswXTw9ZVsxXT9lWzBdOmVbMV0saT1lWzBdPj1lWzFdP2VbMF06ZVsxXTtyZXR1cm4gdC50aWNrcygpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQ+PW4mJnQ8PWl9KSl9LGUucHJvdG90eXBlLl9yZXNjYWxlPWZ1bmN0aW9uKCl7aWYodGhpcy5faXNTZXR1cCl7aWYoIXRoaXMuaXNIb3Jpem9udGFsKCkpe3ZhciB0PXRoaXMuX2NvbXB1dGVXaWR0aCgpO2lmKHQ+dGhpcy53aWR0aCgpfHx0PHRoaXMud2lkdGgoKS10aGlzLm1hcmdpbigpKXJldHVybiB2b2lkIHRoaXMucmVkcmF3KCl9dGhpcy5yZW5kZXIoKX19LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0LnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpO3ZhciBuPXt4OjAseTowLGR4OiIwZW0iLGR5OiIwLjNlbSJ9LGk9dGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCkscj10aGlzLnRpY2tMYWJlbFBhZGRpbmcoKSxvPSJtaWRkbGUiLGE9MCxzPTAsbD0wLGM9MDtpZih0aGlzLmlzSG9yaXpvbnRhbCgpKXN3aXRjaCh0aGlzLl90aWNrTGFiZWxQb3NpdGlvbmluZyl7Y2FzZSJsZWZ0IjpvPSJlbmQiLGE9LXIsYz1yO2JyZWFrO2Nhc2UiY2VudGVyIjpjPWkrcjticmVhaztjYXNlInJpZ2h0IjpvPSJzdGFydCIsYT1yLGM9cn1lbHNlIHN3aXRjaCh0aGlzLl90aWNrTGFiZWxQb3NpdGlvbmluZyl7Y2FzZSJ0b3AiOm4uZHk9Ii0wLjNlbSIsbD1yLHM9LXI7YnJlYWs7Y2FzZSJjZW50ZXIiOmw9aStyO2JyZWFrO2Nhc2UiYm90dG9tIjpuLmR5PSIxZW0iLGw9cixzPXJ9dmFyIHU9dGhpcy5fZ2VuZXJhdGVUaWNrTWFya0F0dHJIYXNoKCk7c3dpdGNoKHRoaXMub3JpZW50YXRpb24oKSl7Y2FzZSJib3R0b20iOm4ueD11LngxLG4uZHk9IjAuOTVlbSIscz11LnkxK2M7YnJlYWs7Y2FzZSJ0b3AiOm4ueD11LngxLG4uZHk9Ii0uMjVlbSIscz11LnkxLWM7YnJlYWs7Y2FzZSJsZWZ0IjpvPSJlbmQiLGE9dS54MS1sLG4ueT11LnkxO2JyZWFrO2Nhc2UicmlnaHQiOm89InN0YXJ0IixhPXUueDErbCxuLnk9dS55MX12YXIgaD10aGlzLl9nZXRUaWNrVmFsdWVzKCksZD10aGlzLl90aWNrTGFiZWxDb250YWluZXIuc2VsZWN0QWxsKCIuIitYeXQuQXhpcy5USUNLX0xBQkVMX0NMQVNTKS5kYXRhKGgpO3JldHVybiBkLmV4aXQoKS5yZW1vdmUoKSxkLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZChYeXQuQXhpcy5USUNLX0xBQkVMX0NMQVNTLCEwKS5tZXJnZShkKS5zdHlsZSgidGV4dC1hbmNob3IiLG8pLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaW5oZXJpdCIpLmF0dHJzKG4pLnRleHQoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmZvcm1hdHRlcigpKHQpfSkpLHRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIithKyIsICIrcysiKSIpLHRoaXMuX3Nob3dBbGxUaWNrTWFya3MoKSx0aGlzLnNob3dFbmRUaWNrTGFiZWxzKCl8fHRoaXMuX2hpZGVFbmRUaWNrTGFiZWxzKCksdGhpcy5faGlkZU92ZXJmbG93aW5nVGlja0xhYmVscygpLHRoaXMuX2hpZGVPdmVybGFwcGluZ1RpY2tMYWJlbHMoKSwiY2VudGVyIiE9PXRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nJiZ0aGlzLl9oaWRlVGlja01hcmtzV2l0aG91dExhYmVsKCksdGhpc30sZS5wcm90b3R5cGUudGlja0xhYmVsUG9zaXRpb249ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fdGlja0xhYmVsUG9zaXRpb25pbmc7dmFyIGU9dC50b0xvd2VyQ2FzZSgpO2lmKHRoaXMuaXNIb3Jpem9udGFsKCkpe2lmKCJsZWZ0IiE9PWUmJiJjZW50ZXIiIT09ZSYmInJpZ2h0IiE9PWUpdGhyb3cgbmV3IEVycm9yKGUrIiBpcyBub3QgYSB2YWxpZCB0aWNrIGxhYmVsIHBvc2l0aW9uIGZvciBhIGhvcml6b250YWwgTnVtZXJpY0F4aXMiKX1lbHNlIGlmKCJ0b3AiIT09ZSYmImNlbnRlciIhPT1lJiYiYm90dG9tIiE9PWUpdGhyb3cgbmV3IEVycm9yKGUrIiBpcyBub3QgYSB2YWxpZCB0aWNrIGxhYmVsIHBvc2l0aW9uIGZvciBhIHZlcnRpY2FsIE51bWVyaWNBeGlzIik7cmV0dXJuIHRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nPWUsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS51c2VzVGV4dFdpZHRoQXBwcm94aW1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl91c2VzVGV4dFdpZHRoQXBwcm94aW1hdGlvbjoodGhpcy5fdXNlc1RleHRXaWR0aEFwcHJveGltYXRpb249dCx0aGlzKX0sZS5wcm90b3R5cGUuX2hpZGVFbmRUaWNrTGFiZWxzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50KCkubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGU9dGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrWHl0LkF4aXMuVElDS19MQUJFTF9DTEFTUyk7aWYoMCE9PWUuc2l6ZSgpKXt2YXIgbj1lLm5vZGVzKClbMF07WXl0LkRPTS5jbGllbnRSZWN0SW5zaWRlKG4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdCl8fEd5dC5zZWxlY3Qobikuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKTt2YXIgaT1lLm5vZGVzKClbZS5zaXplKCktMV07WXl0LkRPTS5jbGllbnRSZWN0SW5zaWRlKGkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdCl8fEd5dC5zZWxlY3QoaSkuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKX19LGUucHJvdG90eXBlLl9oaWRlT3ZlcmxhcHBpbmdUaWNrTGFiZWxzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5zZWxlY3RBbGwoIi4iK1h5dC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpLmZpbHRlcigoZnVuY3Rpb24odCxlKXt2YXIgbj1HeXQuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5Iik7cmV0dXJuImluaGVyaXQiPT09bnx8InZpc2libGUiPT09bn0pKSxlPXQubm9kZXMoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfSkpLG49MTshdGhpcy5faGFzT3ZlcmxhcFdpdGhJbnRlcnZhbChuLGUpJiZuPGUubGVuZ3RoOyluKz0xO3QuZWFjaCgoZnVuY3Rpb24odCxlKXt2YXIgaT1HeXQuc2VsZWN0KHRoaXMpO2UlbiE9MCYmaS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpfSkpfSxlLnByb3RvdHlwZS5faGFzT3ZlcmxhcFdpdGhJbnRlcnZhbD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0iY2VudGVyIj09PXRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nP3RoaXMudGlja0xhYmVsUGFkZGluZygpOjMqdGhpcy50aWNrTGFiZWxQYWRkaW5nKCksaT1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFl5dC5ET00uZXhwYW5kUmVjdCh0LG4pfSkpLHI9MDtyPGkubGVuZ3RoLXQ7cis9dClpZihZeXQuRE9NLmNsaWVudFJlY3RzT3ZlcmxhcChpW3JdLGlbcit0XSkpcmV0dXJuITE7cmV0dXJuITB9LGUucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZS5jYWxsKHRoaXMpLHRoaXMuX21lYXN1cmVyLnJlc2V0KCl9LGV9KShYeXQuQXhpcyk7VXl0Lk51bWVyaWM9JHl0O3ZhciBLeXQ9e30sWnl0PXt9LEp5dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KEp5dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFF5dD1GZ3Q7Snl0LmludGVydmFsVGlja0dlbmVyYXRvcj1mdW5jdGlvbiB0dnQodCl7aWYodDw9MCl0aHJvdyBuZXcgRXJyb3IoImludGVydmFsIG11c3QgYmUgcG9zaXRpdmUgbnVtYmVyIik7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPWUuZG9tYWluKCksaT1NYXRoLm1pbihuWzBdLG5bMV0pLHI9TWF0aC5tYXgoblswXSxuWzFdKSxvPU1hdGguY2VpbChpL3QpKnQsYT1NYXRoLmZsb29yKChyLW8pL3QpKzEscz1pJXQ9PTA/W106W2ldLGw9UXl0Lk1hdGgucmFuZ2UoMCxhKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBvK2UqdH0pKSxjPXIldD09MD9bXTpbcl07cmV0dXJuIHMuY29uY2F0KGwpLmNvbmNhdChjKX19LEp5dC5pbnRlZ2VyVGlja0dlbmVyYXRvcj1mdW5jdGlvbiBldnQoKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9dC5kZWZhdWx0VGlja3MoKTtyZXR1cm4gZS5maWx0ZXIoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHQlMT09MHx8MD09PW58fG49PT1lLmxlbmd0aC0xfSkpfX07dmFyIG52dD17fSxpdnQ9e307ZnVuY3Rpb24gcnZ0KHQsZSxuKXtyZXR1cm4gbi0obi10KSplfWZ1bmN0aW9uIG92dCh0LGUsbil7cmV0dXJuKHQqZS1uKS8oZS0xKX1mdW5jdGlvbiBhdnQodCxlLG4saSl7dmFyIHI9ZT4xLG89cj9pOm47aWYobnVsbD09bylyZXR1cm4gZTt2YXIgYT10LmdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCkscz1NYXRoLmFicyhhWzFdLWFbMF0pO3JldHVybihyP01hdGgubWluOk1hdGgubWF4KShlLG8vcyl9ZnVuY3Rpb24gc3Z0KHQsZSxuLGkscil7aWYoZTw9MSlyZXR1cm57Y2VudGVyUG9pbnQ6bix6b29tQW1vdW50OmV9O2lmKG51bGw9PWkmJm51bGw9PXIpcmV0dXJue2NlbnRlclBvaW50Om4sem9vbUFtb3VudDplfTt2YXIgbz1sdnQodCksYT0oZnVuY3Rpb24gcyh0KXt2YXIgZT10LmdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCk7cmV0dXJuIGVbMV08ZVswXX0pKHQpO2k9bnVsbD09aT9hPzEvMDotMS8wOmkscj1udWxsPT1yP2E/LTEvMDoxLzA6cjt2YXIgbD10LmdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCksYz1sWzBdLHU9bFsxXSxoPXQuc2NhbGVUcmFuc2Zvcm1hdGlvbihyKSxkPXQuc2NhbGVUcmFuc2Zvcm1hdGlvbih1KSxwPXJ2dChkLGUsbiksZj10LnNjYWxlVHJhbnNmb3JtYXRpb24oaSksbT10LnNjYWxlVHJhbnNmb3JtYXRpb24oYyksZz1ydnQobSxlLG4pLF89TWF0aC5hYnMoaC1mKTtpZihNYXRoLmFicyhwLWcpPl8pe3ZhciB5PShoLWYpLyhkLW0pO3JldHVybiAxIT09eT97Y2VudGVyUG9pbnQ6b3Z0KGQseSxoKSx6b29tQW1vdW50Onl9OntjZW50ZXJQb2ludDpuLHpvb21BbW91bnQ6eX19cmV0dXJuIHA+aCE9bz97Y2VudGVyUG9pbnQ6b3Z0KGQsZSxoKSx6b29tQW1vdW50OmV9Omc8ZiE9bz97Y2VudGVyUG9pbnQ6b3Z0KG0sZSxmKSx6b29tQW1vdW50OmV9OntjZW50ZXJQb2ludDpuLHpvb21BbW91bnQ6ZX19ZnVuY3Rpb24gbHZ0KHQpe3ZhciBlPXQucmFuZ2UoKTtyZXR1cm4gZVsxXTxlWzBdfQovKioKICAgICAqIENvcHlyaWdodCAyMDE3LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoaXZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxpdnQuem9vbU91dD1ydnQsaXZ0LmNvbnN0cmFpbmVkWm9vbT1mdW5jdGlvbiBjdnQodCxlLG4saSxyLG8sYSl7cmV0dXJuIHN2dCh0LGU9YXZ0KHQsZSxpLHIpLG4sbyxhKX0saXZ0LmNvbnN0cmFpblpvb21FeHRlbnRzPWF2dCxpdnQuY29uc3RyYWluWm9vbVZhbHVlcz1zdnQsaXZ0LmNvbnN0cmFpbmVkVHJhbnNsYXRpb249ZnVuY3Rpb24gdXZ0KHQsZSxuLGkpe3ZhciByLG89dC5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpLGE9b1swXSxzPW9bMV0sbD1sdnQodCk7aWYoZT4wIT09bCl7aWYobnVsbCE9KHI9aSkpe3ZhciBjPXQuc2NhbGVUcmFuc2Zvcm1hdGlvbihzKSx1PXQuc2NhbGVUcmFuc2Zvcm1hdGlvbihyKTtlPShsP01hdGgubWF4Ok1hdGgubWluKShjK2UsdSktY319ZWxzZSBpZihudWxsIT0ocj1uKSl7dmFyIGg9dC5zY2FsZVRyYW5zZm9ybWF0aW9uKGEpLGQ9dC5zY2FsZVRyYW5zZm9ybWF0aW9uKHIpO2U9KGw/TWF0aC5taW46TWF0aC5tYXgpKGgrZSxkKS1ofXJldHVybiBlfTt2YXIgaHZ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShodnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBkdnQ9Rmd0LHB2dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fYXV0b0RvbWFpbkF1dG9tYXRpY2FsbHk9ITAsdGhpcy5fZG9tYWluTW9kaWZpY2F0aW9uSW5Qcm9ncmVzcz0hMSx0aGlzLl91cGRhdGVJZD0wLHRoaXMuX2NhbGxiYWNrcz1uZXcgZHZ0LkNhbGxiYWNrU2V0LHRoaXMuX2luY2x1ZGVkVmFsdWVzUHJvdmlkZXJzPW5ldyBkdnQuU2V0fXJldHVybiB0LnByb3RvdHlwZS5leHRlbnRPZlZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm5bXX0sdC5wcm90b3R5cGUuX2dldEFsbEluY2x1ZGVkVmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dm9pZCAwPT09dCYmKHQ9ITEpO3ZhciBuPVtdO3JldHVybiB0aGlzLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVycy5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgcj1pKGUsdCk7bj1uLmNvbmNhdChyKX0pKSxufSx0LnByb3RvdHlwZS5fZ2V0RXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuW119LHQucHJvdG90eXBlLm9uVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3MuYWRkKHQpLHRoaXN9LHQucHJvdG90eXBlLm9mZlVwZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSx0LnByb3RvdHlwZS5fZGlzcGF0Y2hVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVJZCsrLHRoaXMuX2NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMpfSx0LnByb3RvdHlwZS5hdXRvRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2F1dG9Eb21haW5BdXRvbWF0aWNhbGx5PSEwLHRoaXMuX3NldERvbWFpbih0aGlzLl9nZXRFeHRlbnQoKSksdGhpc30sdC5wcm90b3R5cGUuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZT1mdW5jdGlvbigpe3RoaXMuX2F1dG9Eb21haW5BdXRvbWF0aWNhbGx5JiZ0aGlzLmF1dG9Eb21haW4oKX0sdC5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBzY2FsZSIpfSx0LnByb3RvdHlwZS50aWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbWFpbigpfSx0LnByb3RvdHlwZS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZ2V0RG9tYWluKCk6KHRoaXMuX2F1dG9Eb21haW5BdXRvbWF0aWNhbGx5PSExLHRoaXMuX3NldERvbWFpbih0KSx0aGlzKX0sdC5wcm90b3R5cGUuX2dldERvbWFpbj1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX2dldERvbWFpbiIpfSx0LnByb3RvdHlwZS5fc2V0RG9tYWluPWZ1bmN0aW9uKHQpe3RoaXMuX2RvbWFpbk1vZGlmaWNhdGlvbkluUHJvZ3Jlc3N8fCh0aGlzLl9kb21haW5Nb2RpZmljYXRpb25JblByb2dyZXNzPSEwLHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbih0KSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpLHRoaXMuX2RvbWFpbk1vZGlmaWNhdGlvbkluUHJvZ3Jlc3M9ITEpfSx0LnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX2JhY2tpbmdEb21haW4iKX0sdC5wcm90b3R5cGUucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZ2V0UmFuZ2UoKToodGhpcy5fc2V0UmFuZ2UodCksdGhpcyl9LHQucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX2dldFJhbmdlIil9LHQucHJvdG90eXBlLl9zZXRSYW5nZT1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIF9zZXRSYW5nZSIpfSx0LnByb3RvdHlwZS5hZGRJbmNsdWRlZFZhbHVlc1Byb3ZpZGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVycy5hZGQodCksdGhpcy5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlKCksdGhpc30sdC5wcm90b3R5cGUucmVtb3ZlSW5jbHVkZWRWYWx1ZXNQcm92aWRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW5jbHVkZWRWYWx1ZXNQcm92aWRlcnMuZGVsZXRlKHQpLHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXN9LHQucHJvdG90eXBlLnVwZGF0ZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZUlkfSx0fSkoKTtodnQuU2NhbGU9cHZ0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkobnZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZnZ0PXVPLG12dD1FZHQsZ3Z0PWl2dCxfdnQ9Rmd0LHl2dD1bMCwxXSx2dnQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX3JhbmdlPVswLDFdLG4uX2QzU2NhbGU9bXZ0LnNjYWxlQmFuZCgpLG4uX2QzU2NhbGUucmFuZ2UoeXZ0KSxuLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGU9bXZ0LnNjYWxlTGluZWFyKCksbi5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmRvbWFpbih5dnQpLG4uX2lubmVyUGFkZGluZz1lLl9jb252ZXJ0VG9QbG90dGFibGVJbm5lclBhZGRpbmcoLjMpLG4uX291dGVyUGFkZGluZz1lLl9jb252ZXJ0VG9QbG90dGFibGVPdXRlclBhZGRpbmcoLjUsLjMpLG59cmV0dXJuIGZ2dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5jbG9uZVdpdGhvdXRQcm92aWRlcnM9ZnVuY3Rpb24oKXt2YXIgdD0obmV3IGUpLmRvbWFpbih0aGlzLmRvbWFpbigpKS5yYW5nZSh0aGlzLnJhbmdlKCkpLmlubmVyUGFkZGluZyh0aGlzLmlubmVyUGFkZGluZygpKS5vdXRlclBhZGRpbmcodGhpcy5vdXRlclBhZGRpbmcoKSk7cmV0dXJuIHQuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5kb21haW4odGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmRvbWFpbigpKSx0fSxlLnByb3RvdHlwZS5leHRlbnRPZlZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gX3Z0LkFycmF5LnVuaXEodCl9LGUucHJvdG90eXBlLl9nZXRFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gX3Z0LkFycmF5LnVuaXEodGhpcy5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXMoKSl9LGUucHJvdG90eXBlLmRvbWFpbj1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuZG9tYWluLmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUuaW52ZXJ0UmFuZ2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10JiYodD10aGlzLnJhbmdlKCkpO3ZhciBuPXRoaXMuX2QzU2NhbGUuYmFuZHdpZHRoKCksaT10aGlzLmludmVydGVkVHJhbnNmb3JtYXRpb24odFswXSkscj10aGlzLmludmVydGVkVHJhbnNmb3JtYXRpb24odFsxXSksbz10aGlzLl9kM1NjYWxlLmRvbWFpbigpLGE9by5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9kM1NjYWxlKHQpK24vMn0pKSxzPW12dC5iaXNlY3QoYSxpKSxsPW12dC5iaXNlY3QoYSxyKTtyZXR1cm4gby5zbGljZShzLGwpfSxlLnByb3RvdHlwZS5yYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUucmFuZ2UuY2FsbCh0aGlzLGUpfSxlLl9jb252ZXJ0VG9QbG90dGFibGVJbm5lclBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIDEvKDEtdCktMX0sZS5fY29udmVydFRvUGxvdHRhYmxlT3V0ZXJQYWRkaW5nPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQvKDEtZSl9LGUucHJvdG90eXBlLl9zZXRCYW5kcz1mdW5jdGlvbigpe3ZhciB0PTEtMS8oMSt0aGlzLmlubmVyUGFkZGluZygpKSxlPXRoaXMub3V0ZXJQYWRkaW5nKCkvKDErdGhpcy5pbm5lclBhZGRpbmcoKSk7dGhpcy5fZDNTY2FsZS5wYWRkaW5nSW5uZXIodCksdGhpcy5fZDNTY2FsZS5wYWRkaW5nT3V0ZXIoZSl9LGUucHJvdG90eXBlLnJhbmdlQmFuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZXNjYWxlQmFuZCh0aGlzLl9kM1NjYWxlLmJhbmR3aWR0aCgpKX0sZS5wcm90b3R5cGUuc3RlcFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jlc2NhbGVCYW5kKHRoaXMuX2QzU2NhbGUuYmFuZHdpZHRoKCkqKDErdGhpcy5pbm5lclBhZGRpbmcoKSkpfSxlLnByb3RvdHlwZS50aWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbWFpbigpfSxlLnByb3RvdHlwZS5pbm5lclBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5faW5uZXJQYWRkaW5nOih0aGlzLl9pbm5lclBhZGRpbmc9dCx0aGlzLnJhbmdlKHRoaXMucmFuZ2UoKSksdGhpcy5fZGlzcGF0Y2hVcGRhdGUoKSx0aGlzKX0sZS5wcm90b3R5cGUub3V0ZXJQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX291dGVyUGFkZGluZzoodGhpcy5fb3V0ZXJQYWRkaW5nPXQsdGhpcy5yYW5nZSh0aGlzLnJhbmdlKCkpLHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCksdGhpcyl9LGUucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2QzU2NhbGUodCkrdGhpcy5fZDNTY2FsZS5iYW5kd2lkdGgoKS8yO3JldHVybiB0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUoZSl9LGUucHJvdG90eXBlLnpvb209ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5kb21haW4odGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLnJhbmdlKCkubWFwKChmdW5jdGlvbihpKXtyZXR1cm4gbi5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmludmVydChndnQuem9vbU91dChpLHQsZSkpfSkpKSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpfSxlLnByb3RvdHlwZS5wYW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUuZG9tYWluKHRoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5yYW5nZSgpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIGUuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5pbnZlcnQobit0KX0pKSksdGhpcy5fZGlzcGF0Y2hVcGRhdGUoKX0sZS5wcm90b3R5cGUuc2NhbGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlKHQpfSxlLnByb3RvdHlwZS5pbnZlcnRlZFRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUuaW52ZXJ0KHQpfSxlLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkV4dGVudD1mdW5jdGlvbigpe3JldHVybiB5dnR9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5kb21haW4oKX0sZS5wcm90b3R5cGUuc2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24odCl7dGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmRvbWFpbih0KSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpfSxlLnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpfSxlLnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2QzU2NhbGUuZG9tYWluKCk6KHRoaXMuX2QzU2NhbGUuZG9tYWluKHQpLHRoaXMuX3NldEJhbmRzKCksdGhpcyl9LGUucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yYW5nZX0sZS5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX3JhbmdlPXQsdGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLnJhbmdlKHQpLHRoaXMuX3NldEJhbmRzKCl9LGUucHJvdG90eXBlLl9yZXNjYWxlQmFuZD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5hYnModGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlKHQpLXRoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZSgwKSl9LGV9KShodnQuU2NhbGUpO252dC5DYXRlZ29yeT12dnQ7dmFyIGJ2dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoYnZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgeHZ0PXVPLHd2dD1FZHQsU3Z0PUZndCxNdnQ9aHZ0LEV2dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5jb3VudD0wLHRoaXMudHJhY2tlcj17fX1yZXR1cm4gdC5wcm90b3R5cGUuZ2V0SW5kZXg9ZnVuY3Rpb24odCl7aWYobnVsbCE9dGhpcy50cmFja2VyW3RdKXJldHVybiB0aGlzLnRyYWNrZXJbdF07dmFyIGU9dGhpcy5jb3VudDtyZXR1cm4gdGhpcy50cmFja2VyW3RdPWUsdGhpcy5jb3VudCs9MSxlfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuY291bnQ9MCx0aGlzLnRyYWNrZXI9e319LHR9KSgpLFR2dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2YXIgaSxyPXQuY2FsbCh0aGlzKXx8dGhpcztzd2l0Y2goci5fcmFuZ2VMZW5ndGg9MSxyLl90cmFja2VyPW5ldyBFdnQsbil7Y2FzZSBudWxsOmNhc2Ugdm9pZCAwOm51bGw9PWUuX3Bsb3R0YWJsZUNvbG9yQ2FjaGUmJihlLl9wbG90dGFibGVDb2xvckNhY2hlPWUuX2dldFBsb3R0YWJsZUNvbG9ycygpKSxpPXd2dC5zY2FsZU9yZGluYWwoKS5yYW5nZShlLl9wbG90dGFibGVDb2xvckNhY2hlKTticmVhaztjYXNlIkNhdGVnb3J5MTAiOmNhc2UiY2F0ZWdvcnkxMCI6Y2FzZSIxMCI6aT13dnQuc2NhbGVPcmRpbmFsKHd2dC5zY2hlbWVDYXRlZ29yeTEwKTticmVhaztjYXNlIkNhdGVnb3J5MjAiOmNhc2UiY2F0ZWdvcnkyMCI6Y2FzZSIyMCI6aT13dnQuc2NhbGVPcmRpbmFsKHd2dC5zY2hlbWVDYXRlZ29yeTIwKTticmVhaztjYXNlIkNhdGVnb3J5MjBiIjpjYXNlImNhdGVnb3J5MjBiIjpjYXNlIjIwYiI6aT13dnQuc2NhbGVPcmRpbmFsKHd2dC5zY2hlbWVDYXRlZ29yeTIwYik7YnJlYWs7Y2FzZSJDYXRlZ29yeTIwYyI6Y2FzZSJjYXRlZ29yeTIwYyI6Y2FzZSIyMGMiOmk9d3Z0LnNjYWxlT3JkaW5hbCh3dnQuc2NoZW1lQ2F0ZWdvcnkyMGMpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBDb2xvclNjYWxlIHR5cGUiKX1yZXR1cm4gci5fZDNTY2FsZT1pLHIuX3JhbmdlTGVuZ3RoPXIuX2QzU2NhbGUucmFuZ2UoKS5sZW5ndGgscn1yZXR1cm4geHZ0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmV4dGVudE9mVmFsdWVzPWZ1bmN0aW9uKHQpe3JldHVybiBTdnQuQXJyYXkudW5pcSh0KX0sZS5wcm90b3R5cGUuX2dldEV4dGVudD1mdW5jdGlvbigpe3JldHVybiBTdnQuQXJyYXkudW5pcSh0aGlzLl9nZXRBbGxJbmNsdWRlZFZhbHVlcygpKX0sZS5pbnZhbGlkYXRlQ29sb3JDYWNoZT1mdW5jdGlvbigpe2UuX3Bsb3R0YWJsZUNvbG9yQ2FjaGU9bnVsbH0sZS5fZ2V0UGxvdHRhYmxlQ29sb3JzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9d3Z0LnNlbGVjdCgiYm9keSIpLmFwcGVuZCgicGxvdHRhYmxlLWNvbG9yLXRlc3RlciIpLG49U3Z0LkNvbG9yLmNvbG9yVGVzdChlLCIiKSxpPTAscj1TdnQuQ29sb3IuY29sb3JUZXN0KGUsInBsb3R0YWJsZS1jb2xvcnMtMCIpO251bGwhPXImJmk8dGhpcy5fTUFYSU1VTV9DT0xPUlNfRlJPTV9DU1MmJihyIT09bnx8ciE9PXRbdC5sZW5ndGgtMV0pOyl0LnB1c2gociksaSsrLHI9U3Z0LkNvbG9yLmNvbG9yVGVzdChlLCJwbG90dGFibGUtY29sb3JzLSIraSk7cmV0dXJuIGUucmVtb3ZlKCksdH0sZS5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5fZDNTY2FsZSh0KSxpPXRoaXMuX3RyYWNrZXIuZ2V0SW5kZXgodCkscj1NYXRoLmZsb29yKGkvdGhpcy5fcmFuZ2VMZW5ndGgpO2lmKDA9PT1yKXJldHVybiBuO3ZhciBvPU1hdGgubG9nKHIqZS5fTE9PUF9MSUdIVEVOX0ZBQ1RPUisxKTtyZXR1cm4gU3Z0LkNvbG9yLmxpZ2h0ZW5Db2xvcihuLG8pfSxlLnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpfSxlLnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2QzU2NhbGUuZG9tYWluKCk6KHRoaXMuX2QzU2NhbGUuZG9tYWluKHQpLHRoaXMuX3RyYWNrZXIuY2xlYXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUucmFuZ2UoKX0sZS5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX2QzU2NhbGUucmFuZ2UodCksdGhpcy5fcmFuZ2VMZW5ndGg9dC5sZW5ndGh9LGUuX0xPT1BfTElHSFRFTl9GQUNUT1I9MS42LGUuX01BWElNVU1fQ09MT1JTX0ZST01fQ1NTPTI1NixlfSkoTXZ0LlNjYWxlKTtidnQuQ29sb3I9VHZ0O3ZhciBDdnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEN2dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEF2dD11TyxrdnQ9RWR0LEx2dD1GZ3QsUHZ0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZvaWQgMD09PW4mJihuPSJsaW5lYXIiKTt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7c3dpdGNoKG4pe2Nhc2UibGluZWFyIjppLl9jb2xvclNjYWxlPWt2dC5zY2FsZUxpbmVhcigpO2JyZWFrO2Nhc2UibG9nIjppLl9jb2xvclNjYWxlPWt2dC5zY2FsZUxvZygpO2JyZWFrO2Nhc2Uic3FydCI6aS5fY29sb3JTY2FsZT1rdnQuc2NhbGVTcXJ0KCk7YnJlYWs7Y2FzZSJwb3ciOmkuX2NvbG9yU2NhbGU9a3Z0LnNjYWxlUG93KCl9aWYobnVsbD09aS5fY29sb3JTY2FsZSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gUXVhbnRpdGF0aXZlU2NhbGUgc2NhbGUgdHlwZSAiK24pO3JldHVybiBpLnJhbmdlKGUuUkVEUyksaX1yZXR1cm4gQXZ0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmV4dGVudE9mVmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciBlPWt2dC5leHRlbnQodCk7cmV0dXJuIG51bGw9PWVbMF18fG51bGw9PWVbMV0/W106ZX0sZS5wcm90b3R5cGUuX2QzSW50ZXJwb2xhdGVkU2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29sb3JTY2FsZS5yYW5nZShbMCwxXSkuaW50ZXJwb2xhdGUodGhpcy5faW50ZXJwb2xhdGVDb2xvcnMoKSl9LGUucHJvdG90eXBlLl9pbnRlcnBvbGF0ZUNvbG9ycz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbG9yUmFuZ2U7aWYodC5sZW5ndGg8Mil0aHJvdyBuZXcgRXJyb3IoIkNvbG9yIHNjYWxlIGFycmF5cyBtdXN0IGhhdmUgYXQgbGVhc3QgdHdvIGVsZW1lbnRzLiIpO3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj0oZT1NYXRoLm1heCgwLE1hdGgubWluKDEsZSkpKSoodC5sZW5ndGgtMSksaT1NYXRoLmZsb29yKG4pLHI9TWF0aC5jZWlsKG4pLG89bi1pO3JldHVybiBrdnQuaW50ZXJwb2xhdGVMYWIodFtpXSx0W3JdKShvKX19fSxlLnByb3RvdHlwZS5fcmVzZXRTY2FsZT1mdW5jdGlvbigpe3RoaXMuX2QzU2NhbGU9dGhpcy5fZDNJbnRlcnBvbGF0ZWRTY2FsZSgpLHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCl9LGUucHJvdG90eXBlLmF1dG9Eb21haW49ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9nZXRBbGxJbmNsdWRlZFZhbHVlcygpO3JldHVybiB0Lmxlbmd0aD4wJiZ0aGlzLl9zZXREb21haW4oW0x2dC5NYXRoLm1pbih0LDApLEx2dC5NYXRoLm1heCh0LDApXSksdGhpc30sZS5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUodCl9LGUucHJvdG90eXBlLl9nZXREb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKCl9LGUucHJvdG90eXBlLl9iYWNraW5nU2NhbGVEb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZDNTY2FsZS5kb21haW4oKToodGhpcy5fZDNTY2FsZS5kb21haW4odCksdGhpcyl9LGUucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb2xvclJhbmdlfSxlLnByb3RvdHlwZS5fc2V0UmFuZ2U9ZnVuY3Rpb24odCl7dGhpcy5fY29sb3JSYW5nZT10LHRoaXMuX3Jlc2V0U2NhbGUoKX0sZS5SRURTPVsiI0ZGRkZGRiIsIiNGRkY2RTEiLCIjRkVGNEMwIiwiI0ZFRDk3NiIsIiNGRUIyNEMiLCIjRkQ4RDNDIiwiI0ZDNEUyQSIsIiNFMzFBMUMiLCIjQjEwMDI2Il0sZS5CTFVFUz1bIiNGRkZGRkYiLCIjQ0NGRkZGIiwiI0E1RkZGRCIsIiM4NUY3RkIiLCIjNkVEM0VGIiwiIzU1QTdFMCIsIiM0MTdGRDAiLCIjMjU0NUQzIiwiIzBCMDJFMSJdLGUuUE9TTkVHPVsiIzBCMDJFMSIsIiMyNTQ1RDMiLCIjNDE3RkQwIiwiIzU1QTdFMCIsIiM2RUQzRUYiLCIjODVGN0ZCIiwiI0E1RkZGRCIsIiNDQ0ZGRkYiLCIjRkZGRkZGIiwiI0ZGRjZFMSIsIiNGRUY0QzAiLCIjRkVEOTc2IiwiI0ZFQjI0QyIsIiNGRDhEM0MiLCIjRkM0RTJBIiwiI0UzMUExQyIsIiNCMTAwMjYiXSxlfSkoaHZ0LlNjYWxlKTtDdnQuSW50ZXJwb2xhdGVkQ29sb3I9UHZ0O3ZhciBOdnQ9e30sSXZ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoSXZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgUnZ0PXVPLE92dD1FZHQsenZ0PWl2dCxEdnQ9Rmd0LEJ2dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fdGlja0dlbmVyYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gdC5kZWZhdWx0VGlja3MoKX0sZS5fcGFkUHJvcG9ydGlvbj0uMDUsZS5fc25hcHBpbmdEb21haW5FbmFibGVkPSEwLGUuX3BhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXJzPW5ldyBEdnQuU2V0LGV9cmV0dXJuIFJ2dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5hdXRvRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RvbWFpbk1pbj1udWxsLHRoaXMuX2RvbWFpbk1heD1udWxsLHQucHJvdG90eXBlLmF1dG9Eb21haW4uY2FsbCh0aGlzKSx0aGlzfSxlLnByb3RvdHlwZS5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlPWZ1bmN0aW9uKCl7aWYobnVsbD09dGhpcy5fZG9tYWluTWlufHxudWxsPT10aGlzLl9kb21haW5NYXgpe3ZhciBlPXRoaXMuX2dldEV4dGVudCgpO2lmKG51bGwhPXRoaXMuX2RvbWFpbk1pbil7dmFyIG49ZVsxXTtyZXR1cm4gdGhpcy5fZG9tYWluTWluPj1uJiYobj10aGlzLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbihbdGhpcy5fZG9tYWluTWluLHRoaXMuX2RvbWFpbk1pbl0pWzFdKSx2b2lkIHRoaXMuX3NldERvbWFpbihbdGhpcy5fZG9tYWluTWluLG5dKX1pZihudWxsIT10aGlzLl9kb21haW5NYXgpe3ZhciBpPWVbMF07cmV0dXJuIHRoaXMuX2RvbWFpbk1heDw9aSYmKGk9dGhpcy5fZXhwYW5kU2luZ2xlVmFsdWVEb21haW4oW3RoaXMuX2RvbWFpbk1heCx0aGlzLl9kb21haW5NYXhdKVswXSksdm9pZCB0aGlzLl9zZXREb21haW4oW2ksdGhpcy5fZG9tYWluTWF4XSl9dC5wcm90b3R5cGUuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZS5jYWxsKHRoaXMpfWVsc2UgdGhpcy5fc2V0RG9tYWluKFt0aGlzLl9kb21haW5NaW4sdGhpcy5fZG9tYWluTWF4XSl9LGUucHJvdG90eXBlLl9nZXRVbmJvdW5kZWRFeHRlbnQ9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9ITEpO3ZhciBlPXRoaXMuX2dldEFsbEluY2x1ZGVkVmFsdWVzKHQpLG49dGhpcy5fZGVmYXVsdEV4dGVudCgpO2lmKDAhPT1lLmxlbmd0aCl7dmFyIGk9W0R2dC5NYXRoLm1pbihlLG5bMF0pLER2dC5NYXRoLm1heChlLG5bMV0pXTtuPXRoaXMuX3BhZERvbWFpbihpKX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuX2dldEV4dGVudD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldFVuYm91bmRlZEV4dGVudCgpO3JldHVybiBudWxsIT10aGlzLl9kb21haW5NaW4mJih0WzBdPXRoaXMuX2RvbWFpbk1pbiksbnVsbCE9dGhpcy5fZG9tYWluTWF4JiYodFsxXT10aGlzLl9kb21haW5NYXgpLHR9LGUucHJvdG90eXBlLmFkZFBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXJzLmFkZCh0KSx0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzfSxlLnByb3RvdHlwZS5yZW1vdmVQYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVycy5kZWxldGUodCksdGhpcy5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlKCksdGhpc30sZS5wcm90b3R5cGUucGFkUHJvcG9ydGlvbj1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9wYWRQcm9wb3J0aW9uO2lmKHQ8MCl0aHJvdyBuZXcgRXJyb3IoInBhZFByb3BvcnRpb24gbXVzdCBiZSBub24tbmVnYXRpdmUiKTtyZXR1cm4gdGhpcy5fcGFkUHJvcG9ydGlvbj10LHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXN9LGUucHJvdG90eXBlLl9wYWREb21haW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0WzBdLnZhbHVlT2YoKT09PXRbMV0udmFsdWVPZigpKXJldHVybiB0aGlzLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbih0KTtpZigwPT09dGhpcy5fcGFkUHJvcG9ydGlvbilyZXR1cm4gdDt2YXIgbj10aGlzLl9wYWRQcm9wb3J0aW9uLzIsaT10WzBdLHI9dFsxXSxvPSExLGE9ITE7dGhpcy5fcGFkZGluZ0V4Y2VwdGlvbnNQcm92aWRlcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dChlKS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnZhbHVlT2YoKT09PWkudmFsdWVPZigpJiYobz0hMCksdC52YWx1ZU9mKCk9PT1yLnZhbHVlT2YoKSYmKGE9ITApfSkpfSkpO3ZhciBzPXRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpO3RoaXMuX2JhY2tpbmdTY2FsZURvbWFpbih0KTt2YXIgbD1vP2k6dGhpcy5pbnZlcnQodGhpcy5zY2FsZShpKS0odGhpcy5zY2FsZShyKS10aGlzLnNjYWxlKGkpKSpuKSxjPWE/cjp0aGlzLmludmVydCh0aGlzLnNjYWxlKHIpKyh0aGlzLnNjYWxlKHIpLXRoaXMuc2NhbGUoaSkpKm4pO3JldHVybiB0aGlzLl9iYWNraW5nU2NhbGVEb21haW4ocyksdGhpcy5fc25hcHBpbmdEb21haW5FbmFibGVkP3RoaXMuX25pY2VEb21haW4oW2wsY10pOltsLGNdfSxlLnByb3RvdHlwZS5zbmFwcGluZ0RvbWFpbkVuYWJsZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fc25hcHBpbmdEb21haW5FbmFibGVkOih0aGlzLl9zbmFwcGluZ0RvbWFpbkVuYWJsZWQ9dCx0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzKX0sZS5wcm90b3R5cGUuX2V4cGFuZFNpbmdsZVZhbHVlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxlLnByb3RvdHlwZS5pbnZlcnQ9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBpbnZlcnQiKX0sZS5wcm90b3R5cGUuZG9tYWluPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiYodGhpcy5fZG9tYWluTWluPWVbMF0sdGhpcy5fZG9tYWluTWF4PWVbMV0pLHQucHJvdG90eXBlLmRvbWFpbi5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLmRvbWFpbk1pbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLmRvbWFpbigpWzBdOih0aGlzLl9kb21haW5NaW49dCx0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzKX0sZS5wcm90b3R5cGUuZG9tYWluTWF4PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuZG9tYWluKClbMV06KHRoaXMuX2RvbWFpbk1heD10LHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5leHRlbnRPZlZhbHVlcz1mdW5jdGlvbih0KXt2YXIgZT1PdnQuZXh0ZW50KHQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gRHZ0Lk1hdGguaXNWYWxpZE51bWJlcigrdCl9KSkpO3JldHVybiBudWxsPT1lWzBdfHxudWxsPT1lWzFdP1tdOmV9LGUucHJvdG90eXBlLnpvb209ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMuZG9tYWluKHRoaXMucmFuZ2UoKS5tYXAoKGZ1bmN0aW9uKGkpe3JldHVybiBuLmludmVydCh6dnQuem9vbU91dChpLHQsZSkpfSkpKX0sZS5wcm90b3R5cGUucGFuPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5kb21haW4odGhpcy5yYW5nZSgpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIGUuaW52ZXJ0KG4rdCl9KSkpfSxlLnByb3RvdHlwZS5zY2FsZVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgc2NhbGVUcmFuc2Zvcm1hdGlvbiIpfSxlLnByb3RvdHlwZS5pbnZlcnRlZFRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbiIpfSxlLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkV4dGVudD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgZ2V0VHJhbnNmb3JtYXRpb25FeHRlbnQiKX0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIGdldFRyYW5zZm9ybWF0aW9uRG9tYWluIil9LGUucHJvdG90eXBlLnNldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgc2V0VHJhbnNmb3JtYXRpb25Eb21haW4iKX0sZS5wcm90b3R5cGUuX3NldERvbWFpbj1mdW5jdGlvbihlKXt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4gRHZ0Lk1hdGguaXNOYU4odCl8fHQ9PT0xLzB8fHQ9PT0tMS8wfTtuKGVbMF0pfHxuKGVbMV0pP0R2dC5XaW5kb3cud2FybigiV2FybmluZzogUXVhbnRpdGF0aXZlU2NhbGVzIGNhbm5vdCB0YWtlIE5hTiBvciBJbmZpbml0eSBhcyBhIGRvbWFpbiB2YWx1ZS4gSWdub3JpbmcuIik6dC5wcm90b3R5cGUuX3NldERvbWFpbi5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLmRlZmF1bHRUaWNrcz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX2dldERlZmF1bHRUaWNrcyIpfSxlLnByb3RvdHlwZS50aWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl90aWNrR2VuZXJhdG9yKHRoaXMpfSxlLnByb3RvdHlwZS5fbmljZURvbWFpbj1mdW5jdGlvbih0LGUpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX25pY2VEb21haW4iKX0sZS5wcm90b3R5cGUuX2RlZmF1bHRFeHRlbnQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIF9kZWZhdWx0RXh0ZW50Iil9LGUucHJvdG90eXBlLnRpY2tHZW5lcmF0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fdGlja0dlbmVyYXRvcjoodGhpcy5fdGlja0dlbmVyYXRvcj10LHRoaXMpfSxlLl9ERUZBVUxUX05VTV9USUNLUz0xMCxlfSkoaHZ0LlNjYWxlKTtJdnQuUXVhbnRpdGF0aXZlU2NhbGU9QnZ0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoTnZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSHZ0PXVPLEZ2dD1FZHQsVnZ0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9kM1NjYWxlPUZ2dC5zY2FsZUxpbmVhcigpLGV9cmV0dXJuIEh2dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fZGVmYXVsdEV4dGVudD1mdW5jdGlvbigpe3JldHVyblswLDFdfSxlLnByb3RvdHlwZS5fZXhwYW5kU2luZ2xlVmFsdWVEb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09PT10WzFdP1t0WzBdLTEsdFsxXSsxXTp0fSxlLnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZDNTY2FsZSh0KX0sZS5wcm90b3R5cGUuc2NhbGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zY2FsZSh0KX0sZS5wcm90b3R5cGUuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnZlcnQodCl9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2dldFVuYm91bmRlZEV4dGVudCghMCl9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tYWluKCl9LGUucHJvdG90eXBlLnNldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKHQpe3RoaXMuZG9tYWluKHQpfSxlLnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpfSxlLnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2QzU2NhbGUuZG9tYWluKCk6KHRoaXMuX2QzU2NhbGUuZG9tYWluKHQpLHRoaXMpfSxlLnByb3RvdHlwZS5fZ2V0UmFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5yYW5nZSgpfSxlLnByb3RvdHlwZS5fc2V0UmFuZ2U9ZnVuY3Rpb24odCl7dGhpcy5fZDNTY2FsZS5yYW5nZSh0KX0sZS5wcm90b3R5cGUuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1NjYWxlLmludmVydCh0KX0sZS5wcm90b3R5cGUuZGVmYXVsdFRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUudGlja3MoZS5fREVGQVVMVF9OVU1fVElDS1MpfSxlLnByb3RvdHlwZS5fbmljZURvbWFpbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9kM1NjYWxlLmNvcHkoKS5kb21haW4odCkubmljZShlKS5kb21haW4oKX0sZX0pKEl2dC5RdWFudGl0YXRpdmVTY2FsZSk7TnZ0LkxpbmVhcj1WdnQ7dmFyIFV2dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoVXZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIganZ0PXVPLEd2dD1FZHQsV3Z0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPTEwKTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX2QzU2NhbGU9R3Z0LnNjYWxlTG9nKCkuYmFzZShlKSxuLl9zZXREb21haW4obi5fZGVmYXVsdEV4dGVudCgpKSxufXJldHVybiBqdnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2RlZmF1bHRFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm5bMSx0aGlzLl9kM1NjYWxlLmJhc2UoKV19LGUucHJvdG90eXBlLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gdFswXT09PXRbMV0/W3RbMF0vdGhpcy5fZDNTY2FsZS5iYXNlKCksdFsxXSp0aGlzLl9kM1NjYWxlLmJhc2UoKV06dH0sZS5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUodCl9LGUucHJvdG90eXBlLnNjYWxlVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2NhbGUodCl9LGUucHJvdG90eXBlLmludmVydGVkVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW52ZXJ0KHQpfSxlLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkV4dGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9nZXRVbmJvdW5kZWRFeHRlbnQoITApfSxlLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbWFpbigpfSxlLnByb3RvdHlwZS5zZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbih0KXt0aGlzLmRvbWFpbih0KX0sZS5wcm90b3R5cGUuX2dldERvbWFpbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9iYWNraW5nU2NhbGVEb21haW4oKX0sZS5wcm90b3R5cGUuX2JhY2tpbmdTY2FsZURvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9kM1NjYWxlLmRvbWFpbigpOih0aGlzLl9kM1NjYWxlLmRvbWFpbih0KSx0aGlzKX0sZS5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUucmFuZ2UoKX0sZS5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX2QzU2NhbGUucmFuZ2UodCl9LGUucHJvdG90eXBlLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5pbnZlcnQodCl9LGUucHJvdG90eXBlLmRlZmF1bHRUaWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnRpY2tzKGUuX0RFRkFVTFRfTlVNX1RJQ0tTKX0sZS5wcm90b3R5cGUuX25pY2VEb21haW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5jb3B5KCkuZG9tYWluKHQpLm5pY2UoKS5kb21haW4oKX0sZX0pKEl2dC5RdWFudGl0YXRpdmVTY2FsZSk7VXZ0LkxvZz1XdnQ7dmFyIHF2dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkocXZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgWXZ0PXVPLFh2dD1FZHQsJHZ0PUZndCxLdnQ9Wnl0LFp2dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2b2lkIDA9PT1lJiYoZT0xMCk7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO2lmKG4uX2xvZ1RpY2tHZW5lcmF0b3I9ZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24odCxlLG4pe3JldHVyblt0LGUsbl0uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpWzFdfSxpPSR2dC5NYXRoLm1pbihuLl91bnRyYW5zZm9ybWVkRG9tYWluLDApLHI9JHZ0Lk1hdGgubWF4KG4uX3VudHJhbnNmb3JtZWREb21haW4sMCksbz1pLGE9ZShpLHIsLW4uX3Bpdm90KSxzPWUoaSxyLG4uX3Bpdm90KSxsPXIsYz1uLl9sb2dUaWNrcygtYSwtbykubWFwKChmdW5jdGlvbih0KXtyZXR1cm4tdH0pKS5yZXZlcnNlKCksdT1uLl9sb2dUaWNrcyhzLGwpLGg9TWF0aC5tYXgoaSwtbi5fcGl2b3QpLGQ9TWF0aC5taW4ocixuLl9waXZvdCkscD1YdnQuc2NhbGVMaW5lYXIoKS5kb21haW4oW2gsZF0pLnRpY2tzKG4uX2hvd01hbnlUaWNrcyhoLGQpKSxmPWMuY29uY2F0KHApLmNvbmNhdCh1KTtyZXR1cm4gZi5sZW5ndGg8PTEmJihmPVh2dC5zY2FsZUxpbmVhcigpLmRvbWFpbihbaSxyXSkudGlja3MoS3Z0Lk1vZGlmaWVkTG9nLl9ERUZBVUxUX05VTV9USUNLUykpLGZ9LG4uX2QzU2NhbGU9WHZ0LnNjYWxlTGluZWFyKCksbi5fYmFzZT1lLG4uX3Bpdm90PW4uX2Jhc2Usbi5fc2V0RG9tYWluKG4uX2RlZmF1bHRFeHRlbnQoKSksbi50aWNrR2VuZXJhdG9yKG4uX2xvZ1RpY2tHZW5lcmF0b3IpLGU8PTEpdGhyb3cgbmV3IEVycm9yKCJNb2RpZmllZExvZ1NjYWxlOiBUaGUgYmFzZSBtdXN0IGJlID4gMSIpO3JldHVybiBufXJldHVybiBZdnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2FkanVzdGVkTG9nPWZ1bmN0aW9uKHQpe3ZhciBlPXQ8MD8tMToxO3JldHVybih0Kj1lKTx0aGlzLl9waXZvdCYmKHQrPSh0aGlzLl9waXZvdC10KS90aGlzLl9waXZvdCksKHQ9TWF0aC5sb2codCkvTWF0aC5sb2codGhpcy5fYmFzZSkpKmV9LGUucHJvdG90eXBlLl9pbnZlcnRlZEFkanVzdGVkTG9nPWZ1bmN0aW9uKHQpe3ZhciBlPXQ8MD8tMToxO3JldHVybiB0Kj1lLCh0PU1hdGgucG93KHRoaXMuX2Jhc2UsdCkpPHRoaXMuX3Bpdm90JiYodD10aGlzLl9waXZvdCoodC0xKS8odGhpcy5fcGl2b3QtMSkpLHQqZX0sZS5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUodGhpcy5fYWRqdXN0ZWRMb2codCkpfSxlLnByb3RvdHlwZS5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludmVydGVkQWRqdXN0ZWRMb2codGhpcy5fZDNTY2FsZS5pbnZlcnQodCkpfSxlLnByb3RvdHlwZS5zY2FsZVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNjYWxlKHQpfSxlLnByb3RvdHlwZS5pbnZlcnRlZFRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmludmVydCh0KX0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25FeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZ2V0VW5ib3VuZGVkRXh0ZW50KCEwKX0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21haW4oKX0sZS5wcm90b3R5cGUuc2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24odCl7dGhpcy5kb21haW4odCl9LGUucHJvdG90eXBlLl9nZXREb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdW50cmFuc2Zvcm1lZERvbWFpbn0sZS5wcm90b3R5cGUuX3NldERvbWFpbj1mdW5jdGlvbihlKXt0aGlzLl91bnRyYW5zZm9ybWVkRG9tYWluPWU7dmFyIG49W3RoaXMuX2FkanVzdGVkTG9nKGVbMF0pLHRoaXMuX2FkanVzdGVkTG9nKGVbMV0pXTt0LnByb3RvdHlwZS5fc2V0RG9tYWluLmNhbGwodGhpcyxuKX0sZS5wcm90b3R5cGUuX2JhY2tpbmdTY2FsZURvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9kM1NjYWxlLmRvbWFpbigpOih0aGlzLl9kM1NjYWxlLmRvbWFpbih0KSx0aGlzKX0sZS5wcm90b3R5cGUuX2xvZ1RpY2tzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxpPXRoaXMuX2hvd01hbnlUaWNrcyh0LGUpO2lmKDA9PT1pKXJldHVybltdO3ZhciByPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5sb2codGhpcy5fYmFzZSkpLG89TWF0aC5jZWlsKE1hdGgubG9nKGUpL01hdGgubG9nKHRoaXMuX2Jhc2UpKSxhPVh2dC5yYW5nZShvLHIsLU1hdGguY2VpbCgoby1yKS9pKSkscz1YdnQucmFuZ2UodGhpcy5fYmFzZSwxLC0odGhpcy5fYmFzZS0xKSkubWFwKE1hdGguZmxvb3IpLGw9JHZ0LkFycmF5LnVuaXEocyksYz1hLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGwubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3cobi5fYmFzZSx0LTEpKmV9KSl9KSk7cmV0dXJuICR2dC5BcnJheS5mbGF0dGVuKGMpLmZpbHRlcigoZnVuY3Rpb24obil7cmV0dXJuIHQ8PW4mJm48PWV9KSkuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpfSxlLnByb3RvdHlwZS5faG93TWFueVRpY2tzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYWRqdXN0ZWRMb2coJHZ0Lk1hdGgubWluKHRoaXMuX3VudHJhbnNmb3JtZWREb21haW4sMCkpLGk9dGhpcy5fYWRqdXN0ZWRMb2coJHZ0Lk1hdGgubWF4KHRoaXMuX3VudHJhbnNmb3JtZWREb21haW4sMCkpLHI9dGhpcy5fYWRqdXN0ZWRMb2codCksbz10aGlzLl9hZGp1c3RlZExvZyhlKTtyZXR1cm4gTWF0aC5jZWlsKChvLXIpLyhpLW4pKkt2dC5Nb2RpZmllZExvZy5fREVGQVVMVF9OVU1fVElDS1MpfSxlLnByb3RvdHlwZS5fbmljZURvbWFpbj1mdW5jdGlvbih0LGUpe3JldHVybiB0fSxlLnByb3RvdHlwZS5fZGVmYXVsdEV4dGVudD1mdW5jdGlvbigpe3JldHVyblswLHRoaXMuX2Jhc2VdfSxlLnByb3RvdHlwZS5fZXhwYW5kU2luZ2xlVmFsdWVEb21haW49ZnVuY3Rpb24odCl7aWYodFswXT09PXRbMV0pe3ZhciBlPXRbMF07cmV0dXJuIGU+MD9bZS90aGlzLl9iYXNlLGUqdGhpcy5fYmFzZV06MD09PWU/Wy10aGlzLl9iYXNlLHRoaXMuX2Jhc2VdOltlKnRoaXMuX2Jhc2UsZS90aGlzLl9iYXNlXX1yZXR1cm4gdH0sZS5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUucmFuZ2UoKX0sZS5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX2QzU2NhbGUucmFuZ2UodCl9LGUucHJvdG90eXBlLmRlZmF1bHRUaWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnRpY2tzKEt2dC5Nb2RpZmllZExvZy5fREVGQVVMVF9OVU1fVElDS1MpfSxlfSkoSXZ0LlF1YW50aXRhdGl2ZVNjYWxlKTtxdnQuTW9kaWZpZWRMb2c9WnZ0O3ZhciBKdnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEp2dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFF2dD11Tyx0YnQ9RWR0LGVidD1LeXQsbmJ0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9kM1NjYWxlPXRidC5zY2FsZVRpbWUoKSxlLmF1dG9Eb21haW4oKSxlfXJldHVybiBRdnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUudGlja0ludGVydmFsPWZ1bmN0aW9uKHQsbixpKXt2b2lkIDA9PT1uJiYobj0xKSx2b2lkIDA9PT1pJiYoaT0hMSk7dmFyIHI9dGJ0LnNjYWxlVGltZSgpLG89ZS50aW1lSW50ZXJ2YWxUb0QzVGltZSh0LGkpLmV2ZXJ5KG4pO3JldHVybiByLmRvbWFpbih0aGlzLmRvbWFpbigpKSxyLnJhbmdlKHRoaXMucmFuZ2UoKSksci50aWNrcyhvKX0sZS5wcm90b3R5cGUuX3NldERvbWFpbj1mdW5jdGlvbihlKXtpZihlWzFdPGVbMF0pdGhyb3cgbmV3IEVycm9yKCJTY2FsZS5UaW1lIGRvbWFpbiB2YWx1ZXMgbXVzdCBiZSBpbiBjaHJvbm9sb2dpY2FsIG9yZGVyIik7cmV0dXJuIHQucHJvdG90eXBlLl9zZXREb21haW4uY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5fZGVmYXVsdEV4dGVudD1mdW5jdGlvbigpe3JldHVybltuZXcgRGF0ZSgiMTk3MC0wMS0wMSIpLG5ldyBEYXRlKCIxOTcwLTAxLTAyIildfSxlLnByb3RvdHlwZS5fZXhwYW5kU2luZ2xlVmFsdWVEb21haW49ZnVuY3Rpb24odCl7dmFyIGU9dFswXS5nZXRUaW1lKCksbj10WzFdLmdldFRpbWUoKTtpZihlPT09bil7dmFyIGk9bmV3IERhdGUoZSk7aS5zZXREYXRlKGkuZ2V0RGF0ZSgpLTEpO3ZhciByPW5ldyBEYXRlKG4pO3JldHVybiByLnNldERhdGUoci5nZXREYXRlKCkrMSksW2kscl19cmV0dXJuIHR9LGUucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1NjYWxlKHQpfSxlLnByb3RvdHlwZS5zY2FsZVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNjYWxlKG5ldyBEYXRlKHQpKX0sZS5wcm90b3R5cGUuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnZlcnQodCkuZ2V0VGltZSgpfSxlLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkV4dGVudD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldFVuYm91bmRlZEV4dGVudCghMCk7cmV0dXJuW3RbMF0udmFsdWVPZigpLHRbMV0udmFsdWVPZigpXX0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmRvbWFpbigpO3JldHVyblt0WzBdLnZhbHVlT2YoKSx0WzFdLnZhbHVlT2YoKV19LGUucHJvdG90eXBlLnNldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMV07dGhpcy5kb21haW4oW25ldyBEYXRlKHRbMF0pLG5ldyBEYXRlKGUpXSl9LGUucHJvdG90eXBlLl9nZXREb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKCl9LGUucHJvdG90eXBlLl9iYWNraW5nU2NhbGVEb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZDNTY2FsZS5kb21haW4oKToodGhpcy5fZDNTY2FsZS5kb21haW4odCksdGhpcyl9LGUucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnJhbmdlKCl9LGUucHJvdG90eXBlLl9zZXRSYW5nZT1mdW5jdGlvbih0KXt0aGlzLl9kM1NjYWxlLnJhbmdlKHQpfSxlLnByb3RvdHlwZS5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUuaW52ZXJ0KHQpfSxlLnByb3RvdHlwZS5kZWZhdWx0VGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS50aWNrcyhlLl9ERUZBVUxUX05VTV9USUNLUyl9LGUucHJvdG90eXBlLl9uaWNlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1NjYWxlLmNvcHkoKS5kb21haW4odCkubmljZSgpLmRvbWFpbigpfSxlLnRpbWVJbnRlcnZhbFRvRDNUaW1lPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQpe2Nhc2UgZWJ0LlRpbWVJbnRlcnZhbC5zZWNvbmQ6cmV0dXJuIGU/dGJ0LnV0Y1NlY29uZDp0YnQudGltZVNlY29uZDtjYXNlIGVidC5UaW1lSW50ZXJ2YWwubWludXRlOnJldHVybiBlP3RidC51dGNNaW51dGU6dGJ0LnRpbWVNaW51dGU7Y2FzZSBlYnQuVGltZUludGVydmFsLmhvdXI6cmV0dXJuIGU/dGJ0LnV0Y0hvdXI6dGJ0LnRpbWVIb3VyO2Nhc2UgZWJ0LlRpbWVJbnRlcnZhbC5kYXk6cmV0dXJuIGU/dGJ0LnV0Y0RheTp0YnQudGltZURheTtjYXNlIGVidC5UaW1lSW50ZXJ2YWwud2VlazpyZXR1cm4gZT90YnQudXRjV2Vlazp0YnQudGltZVdlZWs7Y2FzZSBlYnQuVGltZUludGVydmFsLm1vbnRoOnJldHVybiBlP3RidC51dGNNb250aDp0YnQudGltZU1vbnRoO2Nhc2UgZWJ0LlRpbWVJbnRlcnZhbC55ZWFyOnJldHVybiBlP3RidC51dGNZZWFyOnRidC50aW1lWWVhcjtkZWZhdWx0OnRocm93IEVycm9yKCJUaW1lSW50ZXJ2YWwgc3BlY2lmaWVkIGRvZXMgbm90IGV4aXN0OiAiK3QpfX0sZX0pKEl2dC5RdWFudGl0YXRpdmVTY2FsZSk7SnZ0LlRpbWU9bmJ0LChmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXVPO3QuVGlja0dlbmVyYXRvcnM9Snl0LGUuX19leHBvcnRTdGFyKG52dCx0KSxlLl9fZXhwb3J0U3RhcihidnQsdCksZS5fX2V4cG9ydFN0YXIoQ3Z0LHQpLGUuX19leHBvcnRTdGFyKE52dCx0KSxlLl9fZXhwb3J0U3RhcihVdnQsdCksZS5fX2V4cG9ydFN0YXIocXZ0LHQpLGUuX19leHBvcnRTdGFyKEp2dCx0KTt2YXIgbj1udnQsaT1JdnQ7dC5pc1RyYW5zZm9ybWFibGU9ZnVuY3Rpb24gcih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGkuUXVhbnRpdGF0aXZlU2NhbGV8fHQgaW5zdGFuY2VvZiBuLkNhdGVnb3J5fX0pKFp5dCksKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU8sbj1FZHQsaT1JbXQscj1neXQsbz1aeXQsYT1GZ3Qscz1TbXQsbD1teXQ7dC5UaW1lSW50ZXJ2YWw9cy5tYWtlRW51bShbInNlY29uZCIsIm1pbnV0ZSIsImhvdXIiLCJkYXkiLCJ3ZWVrIiwibW9udGgiLCJ5ZWFyIl0pLHQuVGltZUF4aXNPcmllbnRhdGlvbj1zLm1ha2VFbnVtKFsidG9wIiwiYm90dG9tIl0pLHQuVGllckxhYmVsUG9zaXRpb249cy5tYWtlRW51bShbImJldHdlZW4iLCJjZW50ZXIiXSk7dmFyIGMsdT0oZnVuY3Rpb24ocyl7ZnVuY3Rpb24gdSh0LGUsbil7dmFyIGk9cy5jYWxsKHRoaXMsdCxlKXx8dGhpcztyZXR1cm4gaS5fbWF4VGltZUludGVydmFsUHJlY2lzaW9uPW51bGwsaS5fdGllckxhYmVsUG9zaXRpb25zPVtdLGkuX3VzZVVUQz1uLGkuYWRkQ2xhc3MoInRpbWUtYXhpcyIpLGkudGlja0xhYmVsUGFkZGluZyg1KSxpLmF4aXNDb25maWd1cmF0aW9ucyh1Ll9ERUZBVUxUX1RJTUVfQVhJU19DT05GSUdVUkFUSU9OUyhpLl91c2VVVEMpKSxpLmFubm90YXRpb25Gb3JtYXR0ZXIoci50aW1lKCIlYSAlYiAlZCwgJVkiLGkuX3VzZVVUQykpLGl9cmV0dXJuIGUuX19leHRlbmRzKHUscyksdS5wcm90b3R5cGUudGllckxhYmVsUG9zaXRpb25zPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3RpZXJMYWJlbFBvc2l0aW9ucztpZighdC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuImJldHdlZW4iPT09dC50b0xvd2VyQ2FzZSgpfHwiY2VudGVyIj09PXQudG9Mb3dlckNhc2UoKX0pKSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHBvc2l0aW9uIGZvciB0aWVyIGxhYmVscyIpO3JldHVybiB0aGlzLl90aWVyTGFiZWxQb3NpdGlvbnM9dCx0aGlzLnJlZHJhdygpLHRoaXN9LHUucHJvdG90eXBlLm1heFRpbWVJbnRlcnZhbFByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9tYXhUaW1lSW50ZXJ2YWxQcmVjaXNpb246KHRoaXMuX21heFRpbWVJbnRlcnZhbFByZWNpc2lvbj10LHRoaXMucmVkcmF3KCksdGhpcyl9LHUucHJvdG90eXBlLmN1cnJlbnRBeGlzQ29uZmlndXJhdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnNbdGhpcy5fbW9zdFByZWNpc2VDb25maWdJbmRleF19LHUucHJvdG90eXBlLmF4aXNDb25maWd1cmF0aW9ucz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnM7dGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zPXQsdGhpcy5fbnVtVGllcnM9YS5NYXRoLm1heCh0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGh9KSksMCksdGhpcy5faXNBbmNob3JlZCYmdGhpcy5fc2V0dXBEb21FbGVtZW50cygpO2Zvcih2YXIgZT10aGlzLnRpZXJMYWJlbFBvc2l0aW9ucygpLG49W10saT0wO2k8dGhpcy5fbnVtVGllcnM7aSsrKW4ucHVzaChlW2ldfHwiYmV0d2VlbiIpO3JldHVybiB0aGlzLnRpZXJMYWJlbFBvc2l0aW9ucyhuKSx0aGlzLnJlZHJhdygpLHRoaXN9LHUucHJvdG90eXBlLl9nZXRNb3N0UHJlY2lzZUNvbmZpZ3VyYXRpb25JbmRleD1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnMubGVuZ3RoO3JldHVybiB0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24obixpKXtpPGUmJm4uZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9jaGVja1RpbWVBeGlzVGllckNvbmZpZ3VyYXRpb24oZSl9KSkmJihlPWkpfSkpLGU9PT10aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnMubGVuZ3RoJiYoYS5XaW5kb3cud2Fybigiem9vbWVkIG91dCB0b28gZmFyOiBjb3VsZCBub3QgZmluZCBzdWl0YWJsZSBpbnRlcnZhbCB0byBkaXNwbGF5IGxhYmVscyIpLC0tZSksZX0sdS5wcm90b3R5cGUub3JpZW50YXRpb249ZnVuY3Rpb24odCl7aWYodCYmKCJyaWdodCI9PT10LnRvTG93ZXJDYXNlKCl8fCJsZWZ0Ij09PXQudG9Mb3dlckNhc2UoKSkpdGhyb3cgbmV3IEVycm9yKHQrIiBpcyBub3QgYSBzdXBwb3J0ZWQgb3JpZW50YXRpb24gZm9yIFRpbWVBeGlzIC0gb25seSBob3Jpem9udGFsIG9yaWVudGF0aW9ucyBhcmUgc3VwcG9ydGVkIik7cmV0dXJuIHMucHJvdG90eXBlLm9yaWVudGF0aW9uLmNhbGwodGhpcyx0KX0sdS5wcm90b3R5cGUuX2NvbXB1dGVIZWlnaHQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0O3RoaXMuX3RpZXJIZWlnaHRzPVtdO2Zvcih2YXIgZT0wO2U8dGhpcy5fbnVtVGllcnM7ZSsrKXRoaXMuX3RpZXJIZWlnaHRzLnB1c2godCt0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKSsoImJldHdlZW4iPT09dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2VdPzA6dGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCkpKTtyZXR1cm4gbi5zdW0odGhpcy5fdGllckhlaWdodHMpfSx1LnByb3RvdHlwZS5fZ2V0SW50ZXJ2YWxMZW5ndGg9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fc2NhbGUuZG9tYWluKClbMF0sbj1vLlRpbWUudGltZUludGVydmFsVG9EM1RpbWUodC5pbnRlcnZhbCx0aGlzLl91c2VVVEMpLm9mZnNldChlLHQuc3RlcCk7cmV0dXJuIG4+dGhpcy5fc2NhbGUuZG9tYWluKClbMV0/dGhpcy53aWR0aCgpOk1hdGguYWJzKHRoaXMuX3NjYWxlLnNjYWxlKG4pLXRoaXMuX3NjYWxlLnNjYWxlKGUpKX0sdS5wcm90b3R5cGUuX21heFdpZHRoRm9ySW50ZXJ2YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21lYXN1cmVyLm1lYXN1cmUodC5mb3JtYXR0ZXIodS5fTE9OR19EQVRFKSkud2lkdGh9LHUucHJvdG90eXBlLl9jaGVja1RpbWVBeGlzVGllckNvbmZpZ3VyYXRpb249ZnVuY3Rpb24odCl7aWYobnVsbCE9dGhpcy5fbWF4VGltZUludGVydmFsUHJlY2lzaW9uKXt2YXIgZT11Ll9TT1JURURfVElNRV9JTlRFUlZBTF9JTkRFWFt0aGlzLl9tYXhUaW1lSW50ZXJ2YWxQcmVjaXNpb25dLG49dS5fU09SVEVEX1RJTUVfSU5URVJWQUxfSU5ERVhbdC5pbnRlcnZhbF07aWYobnVsbCE9ZSYmbnVsbCE9biYmbjxlKXJldHVybiExfXZhciBpPXRoaXMuX21heFdpZHRoRm9ySW50ZXJ2YWwodCkrMip0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKTtyZXR1cm4gTWF0aC5taW4odGhpcy5fZ2V0SW50ZXJ2YWxMZW5ndGgodCksdGhpcy53aWR0aCgpKT49aX0sdS5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj1zLnByb3RvdHlwZS5fc2l6ZUZyb21PZmZlci5jYWxsKHRoaXMsdCxlKSxpPXRoaXMuX3RpZXJIZWlnaHRzLnJlZHVjZSgoZnVuY3Rpb24odCxlLGkscil7cmV0dXJuIHQrZT5uLmhlaWdodD90OnQrZX0pKSxyPXRoaXMubWFyZ2luKCkrKHRoaXMuYW5ub3RhdGlvbnNFbmFibGVkKCk/dGhpcy5hbm5vdGF0aW9uVGllckNvdW50KCkqdGhpcy5fYW5ub3RhdGlvblRpZXJIZWlnaHQoKTowKTtyZXR1cm4gbi5oZWlnaHQ9TWF0aC5taW4obi5oZWlnaHQsaStyKSxufSx1LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXtzLnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9zZXR1cERvbUVsZW1lbnRzKCl9LHUucHJvdG90eXBlLl9zZXR1cERvbUVsZW1lbnRzPWZ1bmN0aW9uKCl7dGhpcy5jb250ZW50KCkuc2VsZWN0QWxsKCIuIit1LlRJTUVfQVhJU19USUVSX0NMQVNTKS5yZW1vdmUoKSx0aGlzLl90aWVyTGFiZWxDb250YWluZXJzPVtdLHRoaXMuX3RpZXJNYXJrQ29udGFpbmVycz1bXSx0aGlzLl90aWVyQmFzZWxpbmVzPVtdLHRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5yZW1vdmUoKSx0aGlzLl9iYXNlbGluZS5yZW1vdmUoKTtmb3IodmFyIHQ9MDt0PHRoaXMuX251bVRpZXJzOysrdCl7dmFyIGU9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCh1LlRJTUVfQVhJU19USUVSX0NMQVNTLCEwKTt0aGlzLl90aWVyTGFiZWxDb250YWluZXJzLnB1c2goZS5hcHBlbmQoImciKS5jbGFzc2VkKGwuQXhpcy5USUNLX0xBQkVMX0NMQVNTKyItY29udGFpbmVyIiwhMCkpLHRoaXMuX3RpZXJNYXJrQ29udGFpbmVycy5wdXNoKGUuYXBwZW5kKCJnIikuY2xhc3NlZChsLkF4aXMuVElDS19NQVJLX0NMQVNTKyItY29udGFpbmVyIiwhMCkpLHRoaXMuX3RpZXJCYXNlbGluZXMucHVzaChlLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImJhc2VsaW5lIiwhMCkpfXZhciBuPW5ldyBpLlN2Z0NvbnRleHQodGhpcy5fdGllckxhYmVsQ29udGFpbmVyc1swXS5ub2RlKCkpO3RoaXMuX21lYXN1cmVyPW5ldyBpLkNhY2hlTWVhc3VyZXIobil9LHUucHJvdG90eXBlLl9nZXRUaWNrSW50ZXJ2YWxWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3NjYWxlLnRpY2tJbnRlcnZhbCh0LmludGVydmFsLHQuc3RlcCx0aGlzLl91c2VVVEMpfSx1LnByb3RvdHlwZS5fZ2V0VGlja1ZhbHVlcz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3Bvc3NpYmxlVGltZUF4aXNDb25maWd1cmF0aW9uc1t0aGlzLl9tb3N0UHJlY2lzZUNvbmZpZ0luZGV4XS5yZWR1Y2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIGUuY29uY2F0KHQuX2dldFRpY2tJbnRlcnZhbFZhbHVlcyhuKSl9KSxbXSl9LHUucHJvdG90eXBlLl9jbGVhblRpZXJzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDx0aGlzLl90aWVyTGFiZWxDb250YWluZXJzLmxlbmd0aDt0KyspdGhpcy5fdGllckxhYmVsQ29udGFpbmVyc1t0XS5zZWxlY3RBbGwoIi4iK2wuQXhpcy5USUNLX0xBQkVMX0NMQVNTKS5yZW1vdmUoKSx0aGlzLl90aWVyTWFya0NvbnRhaW5lcnNbdF0uc2VsZWN0QWxsKCIuIitsLkF4aXMuVElDS19NQVJLX0NMQVNTKS5yZW1vdmUoKSx0aGlzLl90aWVyQmFzZWxpbmVzW3RdLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9LHUucHJvdG90eXBlLl9nZXRUaWNrVmFsdWVzRm9yQ29uZmlndXJhdGlvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9zY2FsZS50aWNrSW50ZXJ2YWwodC5pbnRlcnZhbCx0LnN0ZXAsdGhpcy5fdXNlVVRDKSxuPXRoaXMuX3NjYWxlLmRvbWFpbigpLGk9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlT2YoKX0pKTtyZXR1cm4tMT09PWkuaW5kZXhPZihuWzBdLnZhbHVlT2YoKSkmJmUudW5zaGlmdChuWzBdKSwtMT09PWkuaW5kZXhPZihuWzFdLnZhbHVlT2YoKSkmJmUucHVzaChuWzFdKSxlfSx1LnByb3RvdHlwZS5fcmVuZGVyVGllckxhYmVscz1mdW5jdGlvbih0LGUsaSl7dmFyIHI9dGhpcyxvPXRoaXMuX2dldFRpY2tWYWx1ZXNGb3JDb25maWd1cmF0aW9uKGUpLGE9W107ImJldHdlZW4iPT09dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2ldJiYxPT09ZS5zdGVwP28ubWFwKChmdW5jdGlvbih0LGUpe2UrMT49by5sZW5ndGh8fGEucHVzaChuZXcgRGF0ZSgob1tlKzFdLnZhbHVlT2YoKS1vW2VdLnZhbHVlT2YoKSkvMitvW2VdLnZhbHVlT2YoKSkpfSkpOmE9bzt2YXIgcz10LnNlbGVjdEFsbCgiLiIrbC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpLmRhdGEoYSwoZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0LnZhbHVlT2YoKSl9KSksYz1zLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChsLkF4aXMuVElDS19MQUJFTF9DTEFTUywhMCk7Yy5hcHBlbmQoInRleHQiKTt2YXIgdSxoPSJjZW50ZXIiPT09dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2ldfHwxPT09ZS5zdGVwPzA6dGhpcy50aWNrTGFiZWxQYWRkaW5nKCk7dT0iYm90dG9tIj09PXRoaXMub3JpZW50YXRpb24oKT9uLnN1bSh0aGlzLl90aWVySGVpZ2h0cy5zbGljZSgwLGkrMSkpLXRoaXMudGlja0xhYmVsUGFkZGluZygpOiJjZW50ZXIiPT09dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2ldP3RoaXMuaGVpZ2h0KCktbi5zdW0odGhpcy5fdGllckhlaWdodHMuc2xpY2UoMCxpKSktdGhpcy50aWNrTGFiZWxQYWRkaW5nKCktdGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCk6dGhpcy5oZWlnaHQoKS1uLnN1bSh0aGlzLl90aWVySGVpZ2h0cy5zbGljZSgwLGkpKS10aGlzLnRpY2tMYWJlbFBhZGRpbmcoKTt2YXIgZD1zLm1lcmdlKGMpLHA9ZC5zZWxlY3RBbGwoInRleHQiKTtwLnNpemUoKT4wJiZwLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2grIiwiK3UrIikiKSxzLmV4aXQoKS5yZW1vdmUoKSxkLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiJ0cmFuc2xhdGUoIityLl9zY2FsZS5zY2FsZSh0KSsiLDApIn0pKTt2YXIgZj0iY2VudGVyIj09PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tpXXx8MT09PWUuc3RlcD8ibWlkZGxlIjoic3RhcnQiO2Quc2VsZWN0QWxsKCJ0ZXh0IikudGV4dChlLmZvcm1hdHRlcikuc3R5bGUoInRleHQtYW5jaG9yIixmKX0sdS5wcm90b3R5cGUuX3JlbmRlclRpY2tNYXJrcz1mdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuX3RpZXJNYXJrQ29udGFpbmVyc1tlXS5zZWxlY3RBbGwoIi4iK2wuQXhpcy5USUNLX01BUktfQ0xBU1MpLmRhdGEodCkscj1pLmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZChsLkF4aXMuVElDS19NQVJLX0NMQVNTLCEwKS5tZXJnZShpKSxvPXRoaXMuX2dlbmVyYXRlVGlja01hcmtBdHRySGFzaCgpLGE9dGhpcy5fdGllckhlaWdodHMuc2xpY2UoMCxlKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pLDApOyJib3R0b20iPT09dGhpcy5vcmllbnRhdGlvbigpPyhvLnkxPWEsby55Mj1hKygiY2VudGVyIj09PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tlXT90aGlzLmlubmVyVGlja0xlbmd0aCgpOnRoaXMuX3RpZXJIZWlnaHRzW2VdKSk6KG8ueTE9dGhpcy5oZWlnaHQoKS1hLG8ueTI9dGhpcy5oZWlnaHQoKS0oYSsoImNlbnRlciI9PT10aGlzLl90aWVyTGFiZWxQb3NpdGlvbnNbZV0/dGhpcy5pbm5lclRpY2tMZW5ndGgoKTp0aGlzLl90aWVySGVpZ2h0c1tlXSkpKSxyLmF0dHJzKG8pLCJib3R0b20iPT09dGhpcy5vcmllbnRhdGlvbigpPyhvLnkxPWEsby55Mj1hKygiY2VudGVyIj09PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tlXT90aGlzLmVuZFRpY2tMZW5ndGgoKTp0aGlzLl90aWVySGVpZ2h0c1tlXSkpOihvLnkxPXRoaXMuaGVpZ2h0KCktYSxvLnkyPXRoaXMuaGVpZ2h0KCktKGErKCJjZW50ZXIiPT09dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2VdP3RoaXMuZW5kVGlja0xlbmd0aCgpOnRoaXMuX3RpZXJIZWlnaHRzW2VdKSkpLG4uc2VsZWN0KHIubm9kZXMoKVswXSkuYXR0cnMobyksbi5zZWxlY3Qoci5ub2RlcygpW3Iuc2l6ZSgpLTFdKS5hdHRycyhvKSxuLnNlbGVjdChyLm5vZGVzKClbMF0pLmNsYXNzZWQobC5BeGlzLkVORF9USUNLX01BUktfQ0xBU1MsITApLG4uc2VsZWN0KHIubm9kZXMoKVtyLnNpemUoKS0xXSkuY2xhc3NlZChsLkF4aXMuRU5EX1RJQ0tfTUFSS19DTEFTUywhMCksaS5leGl0KCkucmVtb3ZlKCl9LHUucHJvdG90eXBlLl9yZW5kZXJMYWJlbGxlc3NUaWNrTWFya3M9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGlja01hcmtDb250YWluZXIuc2VsZWN0QWxsKCIuIitsLkF4aXMuVElDS19NQVJLX0NMQVNTKS5kYXRhKHQpLG49ZS5lbnRlcigpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQobC5BeGlzLlRJQ0tfTUFSS19DTEFTUywhMCkubWVyZ2UoZSksaT10aGlzLl9nZW5lcmF0ZVRpY2tNYXJrQXR0ckhhc2goKTtpLnkyPSJib3R0b20iPT09dGhpcy5vcmllbnRhdGlvbigpP3RoaXMudGlja0xhYmVsUGFkZGluZygpOnRoaXMuaGVpZ2h0KCktdGhpcy50aWNrTGFiZWxQYWRkaW5nKCksbi5hdHRycyhpKSxlLmV4aXQoKS5yZW1vdmUoKX0sdS5wcm90b3R5cGUuX2dlbmVyYXRlTGFiZWxsZXNzVGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbW9zdFByZWNpc2VDb25maWdJbmRleDwxP1tdOnRoaXMuX2dldFRpY2tJbnRlcnZhbFZhbHVlcyh0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnNbdGhpcy5fbW9zdFByZWNpc2VDb25maWdJbmRleC0xXVswXSl9LHUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9tb3N0UHJlY2lzZUNvbmZpZ0luZGV4PXRoaXMuX2dldE1vc3RQcmVjaXNlQ29uZmlndXJhdGlvbkluZGV4KCk7dmFyIGU9dGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zW3RoaXMuX21vc3RQcmVjaXNlQ29uZmlnSW5kZXhdO3RoaXMuX2NsZWFuVGllcnMoKSxlLmZvckVhY2goKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQuX3JlbmRlclRpZXJMYWJlbHModC5fdGllckxhYmVsQ29udGFpbmVyc1tuXSxlLG4pfSkpO2Zvcih2YXIgbj1lLm1hcCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5fZ2V0VGlja1ZhbHVlc0ZvckNvbmZpZ3VyYXRpb24oZSl9KSksaT0wLHI9MDtyPE1hdGgubWF4KGUubGVuZ3RoLDEpOysrcil7dmFyIG89dGhpcy5fZ2VuZXJhdGVCYXNlbGluZUF0dHJIYXNoKCk7by55MSs9ImJvdHRvbSI9PT10aGlzLm9yaWVudGF0aW9uKCk/aTotaSxvLnkyPW8ueTEsdGhpcy5fdGllckJhc2VsaW5lc1tyXS5hdHRycyhvKS5zdHlsZSgidmlzaWJpbGl0eSIsImluaGVyaXQiKSxpKz10aGlzLl90aWVySGVpZ2h0c1tyXX12YXIgYT1bXSxzPXRoaXMuX3NjYWxlLmRvbWFpbigpLGw9dGhpcy5fc2NhbGUuc2NhbGUoc1sxXSktdGhpcy5fc2NhbGUuc2NhbGUoc1swXSk7Zm9yKDEuNSp0aGlzLl9nZXRJbnRlcnZhbExlbmd0aChlWzBdKT49bCYmKGE9dGhpcy5fZ2VuZXJhdGVMYWJlbGxlc3NUaWNrcygpKSx0aGlzLl9yZW5kZXJMYWJlbGxlc3NUaWNrTWFya3MoYSksdGhpcy5faGlkZU92ZXJmbG93aW5nVGllcnMoKSxyPTA7cjxlLmxlbmd0aDsrK3IpdGhpcy5fcmVuZGVyVGlja01hcmtzKG5bcl0sciksdGhpcy5faGlkZU92ZXJsYXBwaW5nQW5kQ3V0T2ZmTGFiZWxzKHIpO3JldHVybiB0aGlzLmFubm90YXRpb25zRW5hYmxlZCgpP3RoaXMuX2RyYXdBbm5vdGF0aW9ucygpOnRoaXMuX3JlbW92ZUFubm90YXRpb25zKCksdGhpc30sdS5wcm90b3R5cGUuX2hpZGVPdmVyZmxvd2luZ1RpZXJzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuaGVpZ2h0KCksbj0wO3RoaXMuY29udGVudCgpLnNlbGVjdEFsbCgiLiIrdS5USU1FX0FYSVNfVElFUl9DTEFTUykuYXR0cigidmlzaWJpbGl0eSIsKGZ1bmN0aW9uKGkscil7cmV0dXJuKG4rPXQuX3RpZXJIZWlnaHRzW3JdKTw9ZT8iaW5oZXJpdCI6ImhpZGRlbiJ9KSl9LHUucHJvdG90eXBlLl9oaWRlT3ZlcmxhcHBpbmdBbmRDdXRPZmZMYWJlbHM9ZnVuY3Rpb24odCl7dmFyIGUsaT10aGlzLHI9dGhpcy5lbGVtZW50KCkubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dGhpcy5fdGllck1hcmtDb250YWluZXJzW3RdLnNlbGVjdEFsbCgiLiIrbC5BeGlzLlRJQ0tfTUFSS19DTEFTUykuZmlsdGVyKChmdW5jdGlvbih0LGUpe3ZhciBpPW4uc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5Iik7cmV0dXJuInZpc2libGUiPT09aXx8ImluaGVyaXQiPT09aX0pKS5ub2RlcygpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9KSk7dGhpcy5fdGllckxhYmVsQ29udGFpbmVyc1t0XS5zZWxlY3RBbGwoIi4iK2wuQXhpcy5USUNLX0xBQkVMX0NMQVNTKS5maWx0ZXIoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9bi5zZWxlY3QodGhpcykuc3R5bGUoInZpc2liaWxpdHkiKTtyZXR1cm4idmlzaWJsZSI9PT1pfHwiaW5oZXJpdCI9PT1pfSkpLmVhY2goKGZ1bmN0aW9uKHQscyl7dmFyIGwsYz10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9bi5zZWxlY3QodGhpcyksaD1vW3NdLGQ9b1tzKzFdLHA9bnVsbCE9ZSYmYS5ET00uY2xpZW50UmVjdHNPdmVybGFwKGMsZSksZj1udWxsIT1oJiZhLkRPTS5jbGllbnRSZWN0c092ZXJsYXAoYyxoKSxtPW51bGwhPWQmJmEuRE9NLmNsaWVudFJlY3RzT3ZlcmxhcChjLGQpO2w9YywhKE1hdGguZmxvb3Ioci5sZWZ0KTw9TWF0aC5jZWlsKGwubGVmdCkmJk1hdGguZmxvb3Ioci50b3ApPD1NYXRoLmNlaWwobC50b3ApJiZNYXRoLmZsb29yKGwucmlnaHQpPD1NYXRoLmNlaWwoci5sZWZ0K2kud2lkdGgoKSkmJk1hdGguZmxvb3IobC5ib3R0b20pPD1NYXRoLmNlaWwoci50b3AraS5oZWlnaHQoKSkpfHxwfHxmfHxtP3Uuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKTooZT1jLHUuc3R5bGUoInZpc2liaWxpdHkiLCJpbmhlcml0IikpfSkpfSx1LnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGU9ZnVuY3Rpb24oKXtzLnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGUuY2FsbCh0aGlzKSx0aGlzLl9tZWFzdXJlci5yZXNldCgpfSx1LlRJTUVfQVhJU19USUVSX0NMQVNTPSJ0aW1lLWF4aXMtdGllciIsdS5fU09SVEVEX1RJTUVfSU5URVJWQUxfSU5ERVg9KChjPXt9KVt0LlRpbWVJbnRlcnZhbC5zZWNvbmRdPTAsY1t0LlRpbWVJbnRlcnZhbC5taW51dGVdPTEsY1t0LlRpbWVJbnRlcnZhbC5ob3VyXT0yLGNbdC5UaW1lSW50ZXJ2YWwuZGF5XT0zLGNbdC5UaW1lSW50ZXJ2YWwud2Vla109NCxjW3QuVGltZUludGVydmFsLm1vbnRoXT01LGNbdC5UaW1lSW50ZXJ2YWwueWVhcl09NixjKSx1Ll9ERUZBVUxUX1RJTUVfQVhJU19DT05GSUdVUkFUSU9OUz1mdW5jdGlvbihlKXt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4gci50aW1lKHQsZSl9O3JldHVybltbe2ludGVydmFsOnQuVGltZUludGVydmFsLnNlY29uZCxzdGVwOjEsZm9ybWF0dGVyOm4oIiVJOiVNOiVTICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuc2Vjb25kLHN0ZXA6NSxmb3JtYXR0ZXI6bigiJUk6JU06JVMgJXAiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5zZWNvbmQsc3RlcDoxMCxmb3JtYXR0ZXI6bigiJUk6JU06JVMgJXAiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5zZWNvbmQsc3RlcDoxNSxmb3JtYXR0ZXI6bigiJUk6JU06JVMgJXAiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5zZWNvbmQsc3RlcDozMCxmb3JtYXR0ZXI6bigiJUk6JU06JVMgJXAiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5taW51dGUsc3RlcDoxLGZvcm1hdHRlcjpuKCIlSTolTSAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLm1pbnV0ZSxzdGVwOjUsZm9ybWF0dGVyOm4oIiVJOiVNICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubWludXRlLHN0ZXA6MTAsZm9ybWF0dGVyOm4oIiVJOiVNICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubWludXRlLHN0ZXA6MTUsZm9ybWF0dGVyOm4oIiVJOiVNICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubWludXRlLHN0ZXA6MzAsZm9ybWF0dGVyOm4oIiVJOiVNICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuaG91cixzdGVwOjEsZm9ybWF0dGVyOm4oIiVJICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuaG91cixzdGVwOjMsZm9ybWF0dGVyOm4oIiVJICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuaG91cixzdGVwOjYsZm9ybWF0dGVyOm4oIiVJICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuaG91cixzdGVwOjEyLGZvcm1hdHRlcjpuKCIlSSAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVhICVlIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVlIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLm1vbnRoLHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDoxLGZvcm1hdHRlcjpuKCIlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjEsZm9ybWF0dGVyOm4oIiViIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MSxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubW9udGgsc3RlcDozLGZvcm1hdHRlcjpuKCIlYiIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLm1vbnRoLHN0ZXA6Nixmb3JtYXR0ZXI6bigiJWIiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDoxLGZvcm1hdHRlcjpuKCIlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MSxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEsZm9ybWF0dGVyOm4oIiV5Iil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDo1LGZvcm1hdHRlcjpuKCIlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MjUsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDo1MCxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEwMCxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjIwMCxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjUwMCxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjFlMyxmb3JtYXR0ZXI6bigiJVkiKX1dXX0sdS5fTE9OR19EQVRFPW5ldyBEYXRlKDk5OTksOCwyOSwxMiw1OSw5OTk5KSx1fSkobC5BeGlzKTt0LlRpbWU9dX0pKEt5dCksKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU87ZS5fX2V4cG9ydFN0YXIoTm10LHQpLGUuX19leHBvcnRTdGFyKFV5dCx0KSxlLl9fZXhwb3J0U3RhcihLeXQsdCl9KShQbXQpO3ZhciBpYnQ9e30scmJ0PXt9LG9idD17fSxhYnQ9e30sc2J0PXt9LGxidD17fSxjYnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB1YnQ9Rmd0LGhidD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbj17fSx0aGlzLl9ldmVudFRhcmdldD1kb2N1bWVudCx0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0PXt9LHRoaXMuX2Nvbm5lY3RlZD0hMX1yZXR1cm4gdC5wcm90b3R5cGUuX2hhc05vQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PU9iamVjdC5rZXlzKHRoaXMuX2V2ZW50TmFtZVRvQ2FsbGJhY2tTZXQpLGU9MDtlPHQubGVuZ3RoO2UrKylpZigwIT09dGhpcy5fZXZlbnROYW1lVG9DYWxsYmFja1NldFt0W2VdXS5zaXplKXJldHVybiExO3JldHVybiEwfSx0LnByb3RvdHlwZS5fY29ubmVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fY29ubmVjdGVkfHwoT2JqZWN0LmtleXModGhpcy5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dC5fZXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihlLHQuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZV0sIndoZWVsIj09PWU/e3Bhc3NpdmU6ITF9OnZvaWQgMCl9KSksdGhpcy5fY29ubmVjdGVkPSEwKX0sdC5wcm90b3R5cGUuX2Rpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2Nvbm5lY3RlZCYmdGhpcy5faGFzTm9DYWxsYmFja3MoKSYmKE9iamVjdC5rZXlzKHRoaXMuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb24pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QuX2V2ZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0Ll9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2VdKX0pKSx0aGlzLl9jb25uZWN0ZWQ9ITEpfSx0LnByb3RvdHlwZS5fYWRkQ2FsbGJhY2tGb3JFdmVudD1mdW5jdGlvbih0LGUpe251bGw9PXRoaXMuX2V2ZW50TmFtZVRvQ2FsbGJhY2tTZXRbdF0mJih0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0W3RdPW5ldyB1YnQuQ2FsbGJhY2tTZXQpLHRoaXMuX2V2ZW50TmFtZVRvQ2FsbGJhY2tTZXRbdF0uYWRkKGUpLHRoaXMuX2Nvbm5lY3QoKX0sdC5wcm90b3R5cGUuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQ9ZnVuY3Rpb24odCxlKXtudWxsIT10aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0W3RdJiZ0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0W3RdLmRlbGV0ZShlKSx0aGlzLl9kaXNjb25uZWN0KCl9LHQucHJvdG90eXBlLl9jYWxsQ2FsbGJhY2tzRm9yRXZlbnQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbi0xXT1hcmd1bWVudHNbbl07dmFyIGk9dGhpcy5fZXZlbnROYW1lVG9DYWxsYmFja1NldFt0XTtudWxsIT1pJiZpLmNhbGxDYWxsYmFja3MuYXBwbHkoaSxlKX0sdH0pKCk7Y2J0LkRpc3BhdGNoZXI9aGJ0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkobGJ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZGJ0PXVPLHBidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9LRVlET1dOX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBuLl9wcm9jZXNzS2V5ZG93bih0KX0sbi5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9LRVlVUF9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gbi5fcHJvY2Vzc0tleXVwKHQpfSxufXJldHVybiBkYnQuX19leHRlbmRzKGUsdCksZS5nZXREaXNwYXRjaGVyPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnRbZS5fRElTUEFUQ0hFUl9LRVldO3JldHVybiBudWxsPT10JiYodD1uZXcgZSxkb2N1bWVudFtlLl9ESVNQQVRDSEVSX0tFWV09dCksdH0sZS5wcm90b3R5cGUuX3Byb2Nlc3NLZXlkb3duPWZ1bmN0aW9uKHQpe3RoaXMuX2NhbGxDYWxsYmFja3NGb3JFdmVudChlLl9LRVlET1dOX0VWRU5UX05BTUUsdC5rZXlDb2RlLHQpfSxlLnByb3RvdHlwZS5fcHJvY2Vzc0tleXVwPWZ1bmN0aW9uKHQpe3RoaXMuX2NhbGxDYWxsYmFja3NGb3JFdmVudChlLl9LRVlVUF9FVkVOVF9OQU1FLHQua2V5Q29kZSx0KX0sZS5wcm90b3R5cGUub25LZXlEb3duPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX0tFWURPV05fRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZLZXlEb3duPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KGUuX0tFWURPV05fRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vbktleVVwPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX0tFWVVQX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub2ZmS2V5VXA9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fS0VZVVBfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLl9ESVNQQVRDSEVSX0tFWT0iX19QbG90dGFibGVfRGlzcGF0Y2hlcl9LZXkiLGUuX0tFWURPV05fRVZFTlRfTkFNRT0ia2V5ZG93biIsZS5fS0VZVVBfRVZFTlRfTkFNRT0ia2V5dXAiLGV9KShjYnQuRGlzcGF0Y2hlcik7bGJ0LktleT1wYnQ7dmFyIGZidD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoZmJ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbWJ0PXVPLGdidD1GZ3QsX2J0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztpLl9sYXN0TW91c2VQb3NpdGlvbj17eDotMSx5Oi0xfSxpLl90cmFuc2xhdG9yPWdidC5nZXRUcmFuc2xhdG9yKG4pO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX01PVVNFTU9WRV9FVkVOVF9OQU1FLCJwYWdlIil9O3JldHVybiBpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX01PVVNFT1ZFUl9FVkVOVF9OQU1FXT1yLGkuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZS5fTU9VU0VNT1ZFX0VWRU5UX05BTUVdPXIsaS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9NT1VTRU9VVF9FVkVOVF9OQU1FXT1yLGkuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZS5fTU9VU0VET1dOX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX01PVVNFRE9XTl9FVkVOVF9OQU1FKX0saS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9NT1VTRVVQX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX01PVVNFVVBfRVZFTlRfTkFNRSwicGFnZSIpfSxpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX1dIRUVMX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX1dIRUVMX0VWRU5UX05BTUUpfSxpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX0RCTENMSUNLX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX0RCTENMSUNLX0VWRU5UX05BTUUpfSxpfXJldHVybiBtYnQuX19leHRlbmRzKGUsdCksZS5nZXREaXNwYXRjaGVyPWZ1bmN0aW9uKHQpe3ZhciBuPXQucm9vdCgpLnJvb3RFbGVtZW50KCksaT1uW2UuX0RJU1BBVENIRVJfS0VZXTtyZXR1cm4gbnVsbD09aSYmKGk9bmV3IGUodCksbltlLl9ESVNQQVRDSEVSX0tFWV09aSksaX0sZS5wcm90b3R5cGUub25Nb3VzZU1vdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZENhbGxiYWNrRm9yRXZlbnQoZS5fTU9VU0VNT1ZFX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub2ZmTW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KGUuX01PVVNFTU9WRV9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uTW91c2VEb3duPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX01PVVNFRE9XTl9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZk1vdXNlRG93bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudChlLl9NT1VTRURPV05fRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vbk1vdXNlVXA9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZENhbGxiYWNrRm9yRXZlbnQoZS5fTU9VU0VVUF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZk1vdXNlVXA9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fTU9VU0VVUF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uV2hlZWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZENhbGxiYWNrRm9yRXZlbnQoZS5fV0hFRUxfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZXaGVlbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudChlLl9XSEVFTF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uRGJsQ2xpY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZENhbGxiYWNrRm9yRXZlbnQoZS5fREJMQ0xJQ0tfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEYmxDbGljaz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudChlLl9EQkxDTElDS19FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLl9tZWFzdXJlQW5kRGlzcGF0Y2g9ZnVuY3Rpb24odCxlLG4saSl7aWYodm9pZCAwPT09aSYmKGk9ImVsZW1lbnQiKSwicGFnZSIhPT1pJiYiZWxlbWVudCIhPT1pKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzY29wZSAnIitpKyInLCBtdXN0IGJlICdlbGVtZW50JyBvciAncGFnZSciKTtpZigicGFnZSI9PT1pfHx0aGlzLmV2ZW50SW5zaWRlKHQsZSkpe3ZhciByPXRoaXMuX3RyYW5zbGF0b3IuY29tcHV0ZVBvc2l0aW9uKGUuY2xpZW50WCxlLmNsaWVudFkpO3RoaXMuX2xhc3RNb3VzZVBvc2l0aW9uPXIsdGhpcy5fY2FsbENhbGxiYWNrc0ZvckV2ZW50KG4sdGhpcy5sYXN0TW91c2VQb3NpdGlvbigpLGUpfX0sZS5wcm90b3R5cGUuZXZlbnRJbnNpZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ2J0LlRyYW5zbGF0b3IuaXNFdmVudEluc2lkZSh0LGUpfSxlLnByb3RvdHlwZS5sYXN0TW91c2VQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYXN0TW91c2VQb3NpdGlvbn0sZS5fRElTUEFUQ0hFUl9LRVk9Il9fUGxvdHRhYmxlX0Rpc3BhdGNoZXJfTW91c2UiLGUuX01PVVNFT1ZFUl9FVkVOVF9OQU1FPSJtb3VzZW92ZXIiLGUuX01PVVNFTU9WRV9FVkVOVF9OQU1FPSJtb3VzZW1vdmUiLGUuX01PVVNFT1VUX0VWRU5UX05BTUU9Im1vdXNlb3V0IixlLl9NT1VTRURPV05fRVZFTlRfTkFNRT0ibW91c2Vkb3duIixlLl9NT1VTRVVQX0VWRU5UX05BTUU9Im1vdXNldXAiLGUuX1dIRUVMX0VWRU5UX05BTUU9IndoZWVsIixlLl9EQkxDTElDS19FVkVOVF9OQU1FPSJkYmxjbGljayIsZX0pKGNidC5EaXNwYXRjaGVyKTtmYnQuTW91c2U9X2J0O3ZhciB5YnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KHlidCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHZidD11TyxiYnQ9Rmd0LHhidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuX3RyYW5zbGF0b3I9YmJ0LmdldFRyYW5zbGF0b3IobiksaS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9UT1VDSFNUQVJUX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX1RPVUNIU1RBUlRfRVZFTlRfTkFNRSwicGFnZSIpfSxpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX1RPVUNITU9WRV9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUFuZERpc3BhdGNoKG4sdCxlLl9UT1VDSE1PVkVfRVZFTlRfTkFNRSwicGFnZSIpfSxpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX1RPVUNIRU5EX0VWRU5UX05BTUVdPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQW5kRGlzcGF0Y2gobix0LGUuX1RPVUNIRU5EX0VWRU5UX05BTUUsInBhZ2UiKX0saS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9UT1VDSENBTkNFTF9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUFuZERpc3BhdGNoKG4sdCxlLl9UT1VDSENBTkNFTF9FVkVOVF9OQU1FLCJwYWdlIil9LGl9cmV0dXJuIHZidC5fX2V4dGVuZHMoZSx0KSxlLmdldERpc3BhdGNoZXI9ZnVuY3Rpb24odCl7dmFyIG49dC5yb290KCkucm9vdEVsZW1lbnQoKSxpPW5bZS5fRElTUEFUQ0hFUl9LRVldO3JldHVybiBudWxsPT1pJiYoaT1uZXcgZSh0KSxuW2UuX0RJU1BBVENIRVJfS0VZXT1pKSxpfSxlLnByb3RvdHlwZS5vblRvdWNoU3RhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZENhbGxiYWNrRm9yRXZlbnQoZS5fVE9VQ0hTVEFSVF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZlRvdWNoU3RhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fVE9VQ0hTVEFSVF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uVG91Y2hNb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX1RPVUNITU9WRV9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZlRvdWNoTW92ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudChlLl9UT1VDSE1PVkVfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vblRvdWNoRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX1RPVUNIRU5EX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub2ZmVG91Y2hFbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fVE9VQ0hFTkRfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vblRvdWNoQ2FuY2VsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX1RPVUNIQ0FOQ0VMX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub2ZmVG91Y2hDYW5jZWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fVE9VQ0hDQU5DRUxfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5fbWVhc3VyZUFuZERpc3BhdGNoPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHZvaWQgMD09PWkmJihpPSJlbGVtZW50IiksInBhZ2UiIT09aSYmImVsZW1lbnQiIT09aSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2NvcGUgJyIraSsiJywgbXVzdCBiZSAnZWxlbWVudCcgb3IgJ3BhZ2UnIik7aWYoImVsZW1lbnQiIT09aXx8dGhpcy5ldmVudEluc2lkZSh0LGUpKXtmb3IodmFyIHI9ZS5jaGFuZ2VkVG91Y2hlcyxvPXt9LGE9W10scz0wO3M8ci5sZW5ndGg7cysrKXt2YXIgbD1yW3NdLGM9bC5pZGVudGlmaWVyLHU9dGhpcy5fdHJhbnNsYXRvci5jb21wdXRlUG9zaXRpb24obC5jbGllbnRYLGwuY2xpZW50WSk7bnVsbCE9dSYmKG9bY109dSxhLnB1c2goYykpfWEubGVuZ3RoPjAmJnRoaXMuX2NhbGxDYWxsYmFja3NGb3JFdmVudChuLGEsbyxlKX19LGUucHJvdG90eXBlLmV2ZW50SW5zaWRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGJidC5UcmFuc2xhdG9yLmlzRXZlbnRJbnNpZGUodCxlKX0sZS5fRElTUEFUQ0hFUl9LRVk9Il9fUGxvdHRhYmxlX0Rpc3BhdGNoZXJfVG91Y2giLGUuX1RPVUNIU1RBUlRfRVZFTlRfTkFNRT0idG91Y2hzdGFydCIsZS5fVE9VQ0hNT1ZFX0VWRU5UX05BTUU9InRvdWNobW92ZSIsZS5fVE9VQ0hFTkRfRVZFTlRfTkFNRT0idG91Y2hlbmQiLGUuX1RPVUNIQ0FOQ0VMX0VWRU5UX05BTUU9InRvdWNoY2FuY2VsIixlfSkoY2J0LkRpc3BhdGNoZXIpO3lidC5Ub3VjaD14YnQsKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU87ZS5fX2V4cG9ydFN0YXIobGJ0LHQpLGUuX19leHBvcnRTdGFyKGZidCx0KSxlLl9fZXhwb3J0U3Rhcih5YnQsdCl9KShzYnQpO3ZhciB3YnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KHdidCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFNidD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ9dGhpczt0aGlzLl9hbmNob3JDYWxsYmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdC5fYW5jaG9yKGUpfSx0aGlzLl9lbmFibGVkPSEwfXJldHVybiB0LnByb3RvdHlwZS5hdHRhY2hUbz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZGlzY29ubmVjdCgpLHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG89dCx0aGlzLl9jb25uZWN0KCksdGhpc30sdC5wcm90b3R5cGUuZGV0YWNoRnJvbT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kZXRhY2goKX0sdC5wcm90b3R5cGUuZGV0YWNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rpc2Nvbm5lY3QoKSx0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvPW51bGwsdGhpc30sdC5wcm90b3R5cGUuZW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9lbmFibGVkOih0aGlzLl9lbmFibGVkPXQsdGhpcy5fZW5hYmxlZD90aGlzLl9jb25uZWN0KCk6dGhpcy5fZGlzY29ubmVjdCgpLHRoaXMpfSx0LnByb3RvdHlwZS5fYW5jaG9yPWZ1bmN0aW9uKHQpe3RoaXMuX2lzQW5jaG9yZWQ9ITB9LHQucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe3RoaXMuX2lzQW5jaG9yZWQ9ITF9LHQucHJvdG90eXBlLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8ub3JpZ2luVG9Sb290KCk7cmV0dXJue3g6dC54LWUueCx5OnQueS1lLnl9fSx0LnByb3RvdHlwZS5faXNJbnNpZGVDb21wb25lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIDA8PXQueCYmMDw9dC55JiZ0Lng8PXRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8ud2lkdGgoKSYmdC55PD10aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLmhlaWdodCgpfSx0LnByb3RvdHlwZS5fY29ubmVjdD1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZCgpJiZudWxsIT10aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvJiYhdGhpcy5faXNBbmNob3JlZCYmdGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby5vbkFuY2hvcih0aGlzLl9hbmNob3JDYWxsYmFjayl9LHQucHJvdG90eXBlLl9kaXNjb25uZWN0PWZ1bmN0aW9uKCl7dGhpcy5faXNBbmNob3JlZCYmdGhpcy5fdW5hbmNob3IoKSxudWxsIT10aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvJiZ0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLm9mZkFuY2hvcih0aGlzLl9hbmNob3JDYWxsYmFjayl9LHR9KSgpO3didC5JbnRlcmFjdGlvbj1TYnQsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBNYnQ9dU8sRWJ0PXNidCxUYnQ9Rmd0LENidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fY2xpY2tlZERvd249ITEsZS5fZG91YmxlQ2xpY2tpbmc9ITEsZS5fb25DbGlja0NhbGxiYWNrcz1uZXcgVGJ0LkNhbGxiYWNrU2V0LGUuX29uRG91YmxlQ2xpY2tDYWxsYmFja3M9bmV3IFRidC5DYWxsYmFja1NldCxlLl9tb3VzZURvd25DYWxsYmFjaz1mdW5jdGlvbih0LG4pe3JldHVybiBlLl9oYW5kbGVDbGlja0Rvd24odCxuKX0sZS5fbW91c2VVcENhbGxiYWNrPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2hhbmRsZUNsaWNrVXAodCxuKX0sZS5fZGJsQ2xpY2tDYWxsYmFjaz1mdW5jdGlvbih0LG4pe3JldHVybiBlLl9oYW5kbGVEYmxDbGljayh0LG4pfSxlLl90b3VjaFN0YXJ0Q2FsbGJhY2s9ZnVuY3Rpb24odCxuLGkpe3JldHVybiBlLl9oYW5kbGVDbGlja0Rvd24oblt0WzBdXSxpKX0sZS5fdG91Y2hFbmRDYWxsYmFjaz1mdW5jdGlvbih0LG4saSl7cmV0dXJuIGUuX2hhbmRsZUNsaWNrVXAoblt0WzBdXSxpKX0sZS5fdG91Y2hDYW5jZWxDYWxsYmFjaz1mdW5jdGlvbih0LG4pe3JldHVybiBlLl9jbGlja2VkRG93bj0hMX0sZX1yZXR1cm4gTWJ0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9hbmNob3I9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuX2FuY2hvci5jYWxsKHRoaXMsZSksdGhpcy5fbW91c2VEaXNwYXRjaGVyPUVidC5Nb3VzZS5nZXREaXNwYXRjaGVyKGUpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbk1vdXNlRG93bih0aGlzLl9tb3VzZURvd25DYWxsYmFjayksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9uTW91c2VVcCh0aGlzLl9tb3VzZVVwQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbkRibENsaWNrKHRoaXMuX2RibENsaWNrQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlcj1FYnQuVG91Y2guZ2V0RGlzcGF0Y2hlcihlKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hFbmQodGhpcy5fdG91Y2hFbmRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hDYW5jZWwodGhpcy5fdG91Y2hDYW5jZWxDYWxsYmFjayl9LGUucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLl91bmFuY2hvci5jYWxsKHRoaXMpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZURvd24odGhpcy5fbW91c2VEb3duQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZVVwKHRoaXMuX21vdXNlVXBDYWxsYmFjayksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9mZkRibENsaWNrKHRoaXMuX2RibENsaWNrQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1udWxsLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9mZlRvdWNoRW5kKHRoaXMuX3RvdWNoRW5kQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaENhbmNlbCh0aGlzLl90b3VjaENhbmNlbENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9bnVsbH0sZS5wcm90b3R5cGUuX2hhbmRsZUNsaWNrRG93bj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodCk7dGhpcy5faXNJbnNpZGVDb21wb25lbnQobikmJih0aGlzLl9jbGlja2VkRG93bj0hMCx0aGlzLl9jbGlja2VkUG9pbnQ9bil9LGUucHJvdG90eXBlLl9oYW5kbGVDbGlja1VwPWZ1bmN0aW9uKHQsbil7dmFyIGk9dGhpcyxyPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodCk7dGhpcy5fY2xpY2tlZERvd24mJmUuX3BvaW50c0VxdWFsKHIsdGhpcy5fY2xpY2tlZFBvaW50KSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpLl9kb3VibGVDbGlja2luZ3x8aS5fb25DbGlja0NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHIsbil9KSwwKSx0aGlzLl9jbGlja2VkRG93bj0hMX0sZS5wcm90b3R5cGUuX2hhbmRsZURibENsaWNrPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxpPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodCk7dGhpcy5fZG91YmxlQ2xpY2tpbmc9ITAsdGhpcy5fb25Eb3VibGVDbGlja0NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKGksZSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gbi5fZG91YmxlQ2xpY2tpbmc9ITF9KSwwKX0sZS5fcG9pbnRzRXF1YWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC54PT09ZS54JiZ0Lnk9PT1lLnl9LGUucHJvdG90eXBlLm9uQ2xpY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX29uQ2xpY2tDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkNsaWNrPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9vbkNsaWNrQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vbkRvdWJsZUNsaWNrPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9vbkRvdWJsZUNsaWNrQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEb3VibGVDbGljaz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fb25Eb3VibGVDbGlja0NhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZX0pKHdidC5JbnRlcmFjdGlvbik7YWJ0LkNsaWNrPUNidDt2YXIgQWJ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShBYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBrYnQ9dU8sTGJ0PXNidCxQYnQ9Rmd0LE5idD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuX2RyYWdnaW5nPSExLGkuX2NvbnN0cmFpbmVkVG9Db21wb25lbnQ9ITAsaS5fbW91c2VGaWx0ZXI9ZS5fREVGQVVMVF9NT1VTRV9GSUxURVIsaS5fZHJhZ1N0YXJ0Q2FsbGJhY2tzPW5ldyBQYnQuQ2FsbGJhY2tTZXQsaS5fZHJhZ0NhbGxiYWNrcz1uZXcgUGJ0LkNhbGxiYWNrU2V0LGkuX2RyYWdFbmRDYWxsYmFja3M9bmV3IFBidC5DYWxsYmFja1NldCxpLl9tb3VzZURvd25DYWxsYmFjaz1mdW5jdGlvbih0LGUpe3JldHVybiBpLl9zdGFydERyYWcodCxlKX0saS5fbW91c2VNb3ZlQ2FsbGJhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5fZG9EcmFnKHQsZSl9LGkuX21vdXNlVXBDYWxsYmFjaz1mdW5jdGlvbih0LGUpe3JldHVybiBpLl9lbmREcmFnKHQsZSl9LGkuX3RvdWNoU3RhcnRDYWxsYmFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGkuX3N0YXJ0RHJhZyhlW3RbMF1dLG4pfSxpLl90b3VjaE1vdmVDYWxsYmFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGkuX2RvRHJhZyhlW3RbMF1dLG4pfSxpLl90b3VjaEVuZENhbGxiYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gaS5fZW5kRHJhZyhlW3RbMF1dLG4pfSxpLl9tb3VzZUJ1dHRvbj12b2lkIDAhPT1uP246MCxpfXJldHVybiBrYnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2FuY2hvcj1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5fYW5jaG9yLmNhbGwodGhpcyxlKSx0aGlzLl9tb3VzZURpc3BhdGNoZXI9TGJ0Lk1vdXNlLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9uTW91c2VEb3duKHRoaXMuX21vdXNlRG93bkNhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25Nb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbk1vdXNlVXAodGhpcy5fbW91c2VVcENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9TGJ0LlRvdWNoLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vblRvdWNoTW92ZSh0aGlzLl90b3VjaE1vdmVDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hFbmQodGhpcy5fdG91Y2hFbmRDYWxsYmFjayl9LGUucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLl91bmFuY2hvci5jYWxsKHRoaXMpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZURvd24odGhpcy5fbW91c2VEb3duQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZVVwKHRoaXMuX21vdXNlVXBDYWxsYmFjayksdGhpcy5fbW91c2VEaXNwYXRjaGVyPW51bGwsdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9mZlRvdWNoU3RhcnQodGhpcy5fdG91Y2hTdGFydENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hNb3ZlKHRoaXMuX3RvdWNoTW92ZUNhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hFbmQodGhpcy5fdG91Y2hFbmRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyPW51bGx9LGUucHJvdG90eXBlLl90cmFuc2xhdGVBbmRDb25zdHJhaW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZSh0KTtyZXR1cm4gdGhpcy5fY29uc3RyYWluZWRUb0NvbXBvbmVudD97eDpQYnQuTWF0aC5jbGFtcChlLngsMCx0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLndpZHRoKCkpLHk6UGJ0Lk1hdGguY2xhbXAoZS55LDAsdGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby5oZWlnaHQoKSl9OmV9LGUucHJvdG90eXBlLl9zdGFydERyYWc9ZnVuY3Rpb24odCxlKXtpZighKGUgaW5zdGFuY2VvZiBNb3VzZUV2ZW50KXx8dGhpcy5fbW91c2VGaWx0ZXIoZSkpe3ZhciBuPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodCk7dGhpcy5faXNJbnNpZGVDb21wb25lbnQobikmJihlLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZHJhZ2dpbmc9ITAsdGhpcy5fZHJhZ09yaWdpbj1uLHRoaXMuX2RyYWdTdGFydENhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMuX2RyYWdPcmlnaW4pKX19LGUucHJvdG90eXBlLl9kb0RyYWc9ZnVuY3Rpb24odCxlKXt0aGlzLl9kcmFnZ2luZyYmdGhpcy5fZHJhZ0NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMuX2RyYWdPcmlnaW4sdGhpcy5fdHJhbnNsYXRlQW5kQ29uc3RyYWluKHQpKX0sZS5wcm90b3R5cGUuX2VuZERyYWc9ZnVuY3Rpb24odCxlKXtlIGluc3RhbmNlb2YgTW91c2VFdmVudCYmZS5idXR0b24hPT10aGlzLl9tb3VzZUJ1dHRvbnx8dGhpcy5fZHJhZ2dpbmcmJih0aGlzLl9kcmFnZ2luZz0hMSx0aGlzLl9kcmFnRW5kQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3ModGhpcy5fZHJhZ09yaWdpbix0aGlzLl90cmFuc2xhdGVBbmRDb25zdHJhaW4odCkpKX0sZS5wcm90b3R5cGUuY29uc3RyYWluZWRUb0NvbXBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9jb25zdHJhaW5lZFRvQ29tcG9uZW50Oih0aGlzLl9jb25zdHJhaW5lZFRvQ29tcG9uZW50PXQsdGhpcyl9LGUucHJvdG90eXBlLm1vdXNlRmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl9tb3VzZUZpbHRlcjoodGhpcy5fbW91c2VGaWx0ZXI9dCx0aGlzKX0sZS5wcm90b3R5cGUub25EcmFnU3RhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdTdGFydENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmRHJhZ1N0YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnU3RhcnRDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLm9uRHJhZz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0NhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmRHJhZz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0NhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUub25EcmFnRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnRW5kQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEcmFnRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnRW5kQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLl9ERUZBVUxUX01PVVNFX0ZJTFRFUj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXQuYnV0dG9ufSxlfSkod2J0LkludGVyYWN0aW9uKTtBYnQuRHJhZz1OYnQ7dmFyIElidD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoSWJ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgUmJ0PXVPLE9idD1zYnQsemJ0PUZndCxEYnQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX2tleVByZXNzQ2FsbGJhY2tzPXt9LGUuX2tleVJlbGVhc2VDYWxsYmFja3M9e30sZS5fbW91c2VNb3ZlQ2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuITF9LGUuX2Rvd25lZEtleXM9bmV3IHpidC5TZXQsZS5fa2V5RG93bkNhbGxiYWNrPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2hhbmRsZUtleURvd25FdmVudCh0LG4pfSxlLl9rZXlVcENhbGxiYWNrPWZ1bmN0aW9uKHQpe3JldHVybiBlLl9oYW5kbGVLZXlVcEV2ZW50KHQpfSxlfXJldHVybiBSYnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2FuY2hvcj1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5fYW5jaG9yLmNhbGwodGhpcyxlKSx0aGlzLl9wb3NpdGlvbkRpc3BhdGNoZXI9T2J0Lk1vdXNlLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fcG9zaXRpb25EaXNwYXRjaGVyLm9uTW91c2VNb3ZlKHRoaXMuX21vdXNlTW92ZUNhbGxiYWNrKSx0aGlzLl9rZXlEaXNwYXRjaGVyPU9idC5LZXkuZ2V0RGlzcGF0Y2hlcigpLHRoaXMuX2tleURpc3BhdGNoZXIub25LZXlEb3duKHRoaXMuX2tleURvd25DYWxsYmFjayksdGhpcy5fa2V5RGlzcGF0Y2hlci5vbktleVVwKHRoaXMuX2tleVVwQ2FsbGJhY2spfSxlLnByb3RvdHlwZS5fdW5hbmNob3I9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fdW5hbmNob3IuY2FsbCh0aGlzKSx0aGlzLl9wb3NpdGlvbkRpc3BhdGNoZXIub2ZmTW91c2VNb3ZlKHRoaXMuX21vdXNlTW92ZUNhbGxiYWNrKSx0aGlzLl9wb3NpdGlvbkRpc3BhdGNoZXI9bnVsbCx0aGlzLl9rZXlEaXNwYXRjaGVyLm9mZktleURvd24odGhpcy5fa2V5RG93bkNhbGxiYWNrKSx0aGlzLl9rZXlEaXNwYXRjaGVyLm9mZktleVVwKHRoaXMuX2tleVVwQ2FsbGJhY2spLHRoaXMuX2tleURpc3BhdGNoZXI9bnVsbH0sZS5wcm90b3R5cGUuX2hhbmRsZUtleURvd25FdmVudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodGhpcy5fcG9zaXRpb25EaXNwYXRjaGVyLmxhc3RNb3VzZVBvc2l0aW9uKCkpO3RoaXMuX2lzSW5zaWRlQ29tcG9uZW50KG4pJiYhZS5yZXBlYXQmJih0aGlzLl9rZXlQcmVzc0NhbGxiYWNrc1t0XSYmdGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF0uY2FsbENhbGxiYWNrcyh0KSx0aGlzLl9kb3duZWRLZXlzLmFkZCh0KSl9LGUucHJvdG90eXBlLl9oYW5kbGVLZXlVcEV2ZW50PWZ1bmN0aW9uKHQpe3RoaXMuX2Rvd25lZEtleXMuaGFzKHQpJiZ0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3RdJiZ0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3RdLmNhbGxDYWxsYmFja3ModCksdGhpcy5fZG93bmVkS2V5cy5kZWxldGUodCl9LGUucHJvdG90eXBlLm9uS2V5UHJlc3M9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF18fCh0aGlzLl9rZXlQcmVzc0NhbGxiYWNrc1t0XT1uZXcgemJ0LkNhbGxiYWNrU2V0KSx0aGlzLl9rZXlQcmVzc0NhbGxiYWNrc1t0XS5hZGQoZSksdGhpc30sZS5wcm90b3R5cGUub2ZmS2V5UHJlc3M9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF0uZGVsZXRlKGUpLDA9PT10aGlzLl9rZXlQcmVzc0NhbGxiYWNrc1t0XS5zaXplJiZkZWxldGUgdGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF0sdGhpc30sZS5wcm90b3R5cGUub25LZXlSZWxlYXNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3NbdF18fCh0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3RdPW5ldyB6YnQuQ2FsbGJhY2tTZXQpLHRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3NbdF0uYWRkKGUpLHRoaXN9LGUucHJvdG90eXBlLm9mZktleVJlbGVhc2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fa2V5UmVsZWFzZUNhbGxiYWNrc1t0XS5kZWxldGUoZSksMD09PXRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3NbdF0uc2l6ZSYmZGVsZXRlIHRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3NbdF0sdGhpc30sZX0pKHdidC5JbnRlcmFjdGlvbik7SWJ0LktleT1EYnQ7dmFyIEJidD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoQmJ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSGJ0PXVPLEZidD1FZHQsVmJ0PXNidCxVYnQ9Wnl0LGpidD1GZ3QsR2J0PW9idCxXYnQ9aXZ0LHFidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gaS5fd2hlZWxGaWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuITB9LGkuX3doZWVsQ2FsbGJhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5faGFuZGxlV2hlZWxFdmVudCh0LGUpfSxpLl90b3VjaFN0YXJ0Q2FsbGJhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpLl9oYW5kbGVUb3VjaFN0YXJ0KHQsZSxuKX0saS5fdG91Y2hNb3ZlQ2FsbGJhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpLl9oYW5kbGVQaW5jaCh0LGUsbil9LGkuX3RvdWNoRW5kQ2FsbGJhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpLl9oYW5kbGVUb3VjaEVuZCh0LGUsbil9LGkuX3RvdWNoQ2FuY2VsQ2FsbGJhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpLl9oYW5kbGVUb3VjaEVuZCh0LGUsbil9LGkuX3BhbkVuZENhbGxiYWNrcz1uZXcgamJ0LkNhbGxiYWNrU2V0LGkuX3pvb21FbmRDYWxsYmFja3M9bmV3IGpidC5DYWxsYmFja1NldCxpLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzPW5ldyBqYnQuQ2FsbGJhY2tTZXQsaS5feFNjYWxlcz1uZXcgamJ0LlNldCxpLl95U2NhbGVzPW5ldyBqYnQuU2V0LGkuX2RyYWdJbnRlcmFjdGlvbj1uZXcgR2J0LkRyYWcsaS5fc2V0dXBEcmFnSW50ZXJhY3Rpb24oKSxpLl90b3VjaElkcz1GYnQubWFwKCksaS5fbWluRG9tYWluRXh0ZW50cz1uZXcgamJ0Lk1hcCxpLl9tYXhEb21haW5FeHRlbnRzPW5ldyBqYnQuTWFwLGkuX21pbkRvbWFpblZhbHVlcz1uZXcgamJ0Lk1hcCxpLl9tYXhEb21haW5WYWx1ZXM9bmV3IGpidC5NYXAsbnVsbCE9ZSYmaS5hZGRYU2NhbGUoZSksbnVsbCE9biYmaS5hZGRZU2NhbGUobiksaX1yZXR1cm4gSGJ0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmRyYWdJbnRlcmFjdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kcmFnSW50ZXJhY3Rpb259LGUucHJvdG90eXBlLndoZWVsRmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl93aGVlbEZpbHRlcjoodGhpcy5fd2hlZWxGaWx0ZXI9dCx0aGlzKX0sZS5wcm90b3R5cGUucGFuPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy54U2NhbGVzKCkuZm9yRWFjaCgoZnVuY3Rpb24obil7bi5wYW4oZS5fY29uc3RyYWluZWRUcmFuc2xhdGlvbihuLHQueCkpfSkpLHRoaXMueVNjYWxlcygpLmZvckVhY2goKGZ1bmN0aW9uKG4pe24ucGFuKGUuX2NvbnN0cmFpbmVkVHJhbnNsYXRpb24obix0LnkpKX0pKSx0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MoKX0sZS5wcm90b3R5cGUuem9vbT1mdW5jdGlvbih0LGUsbil7dmFyIGkscixvPXRoaXM7cmV0dXJuIHZvaWQgMD09PW4mJihuPSEwKSxudWxsIT1lJiYoaT1lLngscj1lLnksbiYmKHRoaXMueFNjYWxlcygpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPW8uX2NvbnN0cmFpbmVkWm9vbShlLHQsaSk7aT1uLmNlbnRlclBvaW50LHQ9bi56b29tQW1vdW50fSkpLHRoaXMueVNjYWxlcygpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPW8uX2NvbnN0cmFpbmVkWm9vbShlLHQscik7cj1uLmNlbnRlclBvaW50LHQ9bi56b29tQW1vdW50fSkpKSksdGhpcy54U2NhbGVzKCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5yYW5nZSgpO2Uuem9vbSh0LG51bGw9PWk/KG5bMV0rblswXSkvMjppKX0pKSx0aGlzLnlTY2FsZXMoKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1lLnJhbmdlKCk7ZS56b29tKHQsbnVsbD09cj8oblsxXStuWzBdKS8yOnIpfSkpLHRoaXMuX3Bhblpvb21VcGRhdGVDYWxsYmFja3MuY2FsbENhbGxiYWNrcygpLHt6b29tQW1vdW50OnQsY2VudGVyVmFsdWU6e2NlbnRlclg6aSxjZW50ZXJZOnJ9fX0sZS5wcm90b3R5cGUuX2FuY2hvcj1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5fYW5jaG9yLmNhbGwodGhpcyxlKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24uYXR0YWNoVG8oZSksdGhpcy5fbW91c2VEaXNwYXRjaGVyPVZidC5Nb3VzZS5nZXREaXNwYXRjaGVyKHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8pLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbldoZWVsKHRoaXMuX3doZWVsQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlcj1WYnQuVG91Y2guZ2V0RGlzcGF0Y2hlcih0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hNb3ZlKHRoaXMuX3RvdWNoTW92ZUNhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaEVuZCh0aGlzLl90b3VjaEVuZENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaENhbmNlbCh0aGlzLl90b3VjaENhbmNlbENhbGxiYWNrKX0sZS5wcm90b3R5cGUuX3VuYW5jaG9yPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3VuYW5jaG9yLmNhbGwodGhpcyksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9mZldoZWVsKHRoaXMuX3doZWVsQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1udWxsLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9mZlRvdWNoTW92ZSh0aGlzLl90b3VjaE1vdmVDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9mZlRvdWNoRW5kKHRoaXMuX3RvdWNoRW5kQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaENhbmNlbCh0aGlzLl90b3VjaENhbmNlbENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9bnVsbCx0aGlzLl9kcmFnSW50ZXJhY3Rpb24uZGV0YWNoKCl9LGUucHJvdG90eXBlLl9oYW5kbGVUb3VjaFN0YXJ0PWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9MDtpPHQubGVuZ3RoJiZ0aGlzLl90b3VjaElkcy5zaXplKCk8MjtpKyspe3ZhciByPXRbaV07dGhpcy5fdG91Y2hJZHMuc2V0KHIudG9TdHJpbmcoKSx0aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKGVbcl0pKX19LGUucHJvdG90eXBlLl9oYW5kbGVQaW5jaD1mdW5jdGlvbih0LG4saSl7dmFyIHI9dGhpcztpZighKHRoaXMuX3RvdWNoSWRzLnNpemUoKTwyKSl7dmFyIG89dGhpcy5fdG91Y2hJZHMudmFsdWVzKCk7aWYodGhpcy5faXNJbnNpZGVDb21wb25lbnQodGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZShvWzBdKSkmJnRoaXMuX2lzSW5zaWRlQ29tcG9uZW50KHRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2Uob1sxXSkpKXt2YXIgYT1lLl9wb2ludERpc3RhbmNlKG9bMF0sb1sxXSk7aWYoMCE9PWEpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7ci5fdG91Y2hJZHMuaGFzKHQudG9TdHJpbmcoKSkmJnIuX3RvdWNoSWRzLnNldCh0LnRvU3RyaW5nKCksci5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZShuW3RdKSl9KSk7dmFyIHM9dGhpcy5fdG91Y2hJZHMudmFsdWVzKCksbD1lLl9wb2ludERpc3RhbmNlKHNbMF0sc1sxXSk7aWYoMCE9PWwpe3ZhciBjPWEvbCx1PXMubWFwKChmdW5jdGlvbih0LGUpe3JldHVybnt4Oih0Lngtb1tlXS54KS9jLHk6KHQueS1vW2VdLnkpL2N9fSkpLGg9ZS5jZW50ZXJQb2ludChvWzBdLG9bMV0pLGQ9dGhpcy56b29tKGMsaCkscD1kLmNlbnRlclZhbHVlLGY9ZC56b29tQW1vdW50LG09cC5jZW50ZXJYLGc9cC5jZW50ZXJZLF89by5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3g6dVtlXS54KmYrdC54LHk6dVtlXS55KmYrdC55fX0pKTt0aGlzLnBhbih7eDptLShfWzBdLngrX1sxXS54KS8yLHk6Zy0oX1swXS55K19bMV0ueSkvMn0pfX19fX0sZS5jZW50ZXJQb2ludD1mdW5jdGlvbih0LGUpe3ZhciBuPU1hdGgubWluKHQueCxlLngpLGk9TWF0aC5tYXgodC54LGUueCkscj1NYXRoLm1pbih0LnksZS55KTtyZXR1cm57eDoobitpKS8yLHk6KE1hdGgubWF4KHQueSxlLnkpK3IpLzJ9fSxlLl9wb2ludERpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5taW4odC54LGUueCksaT1NYXRoLm1heCh0LngsZS54KSxyPU1hdGgubWluKHQueSxlLnkpLG89TWF0aC5tYXgodC55LGUueSk7cmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyhpLW4sMikrTWF0aC5wb3coby1yLDIpKX0sZS5wcm90b3R5cGUuX2hhbmRsZVRvdWNoRW5kPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7aS5fdG91Y2hJZHMucmVtb3ZlKHQudG9TdHJpbmcoKSl9KSksdGhpcy5fdG91Y2hJZHMuc2l6ZSgpPjAmJnRoaXMuX3pvb21FbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcygpfSxlLnByb3RvdHlwZS5faGFuZGxlV2hlZWxFdmVudD1mdW5jdGlvbih0LG4pe2lmKHRoaXMuX3doZWVsRmlsdGVyKG4pKXt2YXIgaT10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHQpO2lmKHRoaXMuX2lzSW5zaWRlQ29tcG9uZW50KGkpKXtuLnByZXZlbnREZWZhdWx0KCk7dmFyIHI9TWF0aC5wb3coMiwoMCE9PW4uZGVsdGFZP24uZGVsdGFZOm4uZGVsdGFYKSoobi5kZWx0YU1vZGU/ZS5fUElYRUxTX1BFUl9MSU5FOjEpKi4wMDIpO3RoaXMuem9vbShyLGkpLHRoaXMuX3pvb21FbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcygpfX19LGUucHJvdG90eXBlLl9jb25zdHJhaW5lZFpvb209ZnVuY3Rpb24odCxlLG4pe3JldHVybiBXYnQuY29uc3RyYWluZWRab29tKHQsZSxuLHRoaXMubWluRG9tYWluRXh0ZW50KHQpLHRoaXMubWF4RG9tYWluRXh0ZW50KHQpLHRoaXMubWluRG9tYWluVmFsdWUodCksdGhpcy5tYXhEb21haW5WYWx1ZSh0KSl9LGUucHJvdG90eXBlLl9jb25zdHJhaW5lZFRyYW5zbGF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFdidC5jb25zdHJhaW5lZFRyYW5zbGF0aW9uKHQsZSx0aGlzLm1pbkRvbWFpblZhbHVlKHQpLHRoaXMubWF4RG9tYWluVmFsdWUodCkpfSxlLnByb3RvdHlwZS5fc2V0dXBEcmFnSW50ZXJhY3Rpb249ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXM7dGhpcy5fZHJhZ0ludGVyYWN0aW9uLmNvbnN0cmFpbmVkVG9Db21wb25lbnQoITEpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWdTdGFydCgoZnVuY3Rpb24oKXtyZXR1cm4gdD1udWxsfSkpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWcoKGZ1bmN0aW9uKG4saSl7ZS5fdG91Y2hJZHMuc2l6ZSgpPj0yfHwoZS5wYW4oe3g6KG51bGw9PXQ/bi54OnQueCktaS54LHk6KG51bGw9PXQ/bi55OnQueSktaS55fSksdD1pKX0pKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnRW5kKChmdW5jdGlvbigpe3JldHVybiBlLl9wYW5FbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcygpfSkpfSxlLnByb3RvdHlwZS5fbm9uTGluZWFyU2NhbGVXaXRoRXh0ZW50cz1mdW5jdGlvbih0KXtyZXR1cm4hKG51bGw9PXRoaXMubWluRG9tYWluRXh0ZW50KHQpfHxudWxsPT10aGlzLm1heERvbWFpbkV4dGVudCh0KXx8dCBpbnN0YW5jZW9mIFVidC5MaW5lYXJ8fHQgaW5zdGFuY2VvZiBVYnQuVGltZSl9LGUucHJvdG90eXBlLnhTY2FsZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsPT10KXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5feFNjYWxlcy5mb3JFYWNoKChmdW5jdGlvbih0KXtuLnB1c2godCl9KSksbn1yZXR1cm4gdGhpcy5feFNjYWxlcz1uZXcgamJ0LlNldCx0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuYWRkWFNjYWxlKHQpfSkpLHRoaXN9LGUucHJvdG90eXBlLnlTY2FsZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsPT10KXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5feVNjYWxlcy5mb3JFYWNoKChmdW5jdGlvbih0KXtuLnB1c2godCl9KSksbn1yZXR1cm4gdGhpcy5feVNjYWxlcz1uZXcgamJ0LlNldCx0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuYWRkWVNjYWxlKHQpfSkpLHRoaXN9LGUucHJvdG90eXBlLmFkZFhTY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5feFNjYWxlcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUucmVtb3ZlWFNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl94U2NhbGVzLmRlbGV0ZSh0KSx0aGlzLl9taW5Eb21haW5FeHRlbnRzLmRlbGV0ZSh0KSx0aGlzLl9tYXhEb21haW5FeHRlbnRzLmRlbGV0ZSh0KSx0aGlzLl9taW5Eb21haW5WYWx1ZXMuZGVsZXRlKHQpLHRoaXMuX21heERvbWFpblZhbHVlcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUuYWRkWVNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl95U2NhbGVzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5yZW1vdmVZU2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3lTY2FsZXMuZGVsZXRlKHQpLHRoaXMuX21pbkRvbWFpbkV4dGVudHMuZGVsZXRlKHQpLHRoaXMuX21heERvbWFpbkV4dGVudHMuZGVsZXRlKHQpLHRoaXMuX21pbkRvbWFpblZhbHVlcy5kZWxldGUodCksdGhpcy5fbWF4RG9tYWluVmFsdWVzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5taW5Eb21haW5FeHRlbnQ9ZnVuY3Rpb24odCxlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl9taW5Eb21haW5FeHRlbnRzLmdldCh0KTtpZihlLnZhbHVlT2YoKTwwKXRocm93IG5ldyBFcnJvcigiZXh0ZW50IG11c3QgYmUgbm9uLW5lZ2F0aXZlIik7dmFyIG49dGhpcy5tYXhEb21haW5FeHRlbnQodCk7aWYobnVsbCE9biYmbi52YWx1ZU9mKCk8ZS52YWx1ZU9mKCkpdGhyb3cgbmV3IEVycm9yKCJtaW5Eb21haW5FeHRlbnQgbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4RG9tYWluRXh0ZW50IGZvciB0aGUgc2FtZSBTY2FsZSIpO3JldHVybiB0aGlzLl9ub25MaW5lYXJTY2FsZVdpdGhFeHRlbnRzKHQpJiZqYnQuV2luZG93Lndhcm4oIlBhbm5pbmcgYW5kIHpvb21pbmcgd2l0aCBleHRlbnRzIG9uIGEgbm9ubGluZWFyIHNjYWxlIG1heSBoYXZlIHVuaW50ZW5kZWQgYmVoYXZpb3IuIiksdGhpcy5fbWluRG9tYWluRXh0ZW50cy5zZXQodCxlKSx0aGlzfSxlLnByb3RvdHlwZS5tYXhEb21haW5FeHRlbnQ9ZnVuY3Rpb24odCxlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl9tYXhEb21haW5FeHRlbnRzLmdldCh0KTtpZihlLnZhbHVlT2YoKTw9MCl0aHJvdyBuZXcgRXJyb3IoImV4dGVudCBtdXN0IGJlIHBvc2l0aXZlIik7dmFyIG49dGhpcy5taW5Eb21haW5FeHRlbnQodCk7aWYobnVsbCE9biYmZS52YWx1ZU9mKCk8bi52YWx1ZU9mKCkpdGhyb3cgbmV3IEVycm9yKCJtYXhEb21haW5FeHRlbnQgbXVzdCBiZSBsYXJnZXIgdGhhbiBtaW5Eb21haW5FeHRlbnQgZm9yIHRoZSBzYW1lIFNjYWxlIik7cmV0dXJuIHRoaXMuX25vbkxpbmVhclNjYWxlV2l0aEV4dGVudHModCkmJmpidC5XaW5kb3cud2FybigiUGFubmluZyBhbmQgem9vbWluZyB3aXRoIGV4dGVudHMgb24gYSBub25saW5lYXIgc2NhbGUgbWF5IGhhdmUgdW5pbnRlbmRlZCBiZWhhdmlvci4iKSx0aGlzLl9tYXhEb21haW5FeHRlbnRzLnNldCh0LGUpLHRoaXN9LGUucHJvdG90eXBlLm1pbkRvbWFpblZhbHVlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PWU/dGhpcy5fbWluRG9tYWluVmFsdWVzLmdldCh0KToodGhpcy5fbWluRG9tYWluVmFsdWVzLnNldCh0LGUpLHRoaXMpfSxlLnByb3RvdHlwZS5tYXhEb21haW5WYWx1ZT1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1lP3RoaXMuX21heERvbWFpblZhbHVlcy5nZXQodCk6KHRoaXMuX21heERvbWFpblZhbHVlcy5zZXQodCxlKSx0aGlzKX0sZS5wcm90b3R5cGUuc2V0TWluTWF4RG9tYWluVmFsdWVzVG89ZnVuY3Rpb24odCl7dGhpcy5fbWluRG9tYWluVmFsdWVzLmRlbGV0ZSh0KSx0aGlzLl9tYXhEb21haW5WYWx1ZXMuZGVsZXRlKHQpO3ZhciBlPXQuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4oKSxuPWVbMV07cmV0dXJuIHRoaXMubWluRG9tYWluVmFsdWUodCxlWzBdKSx0aGlzLm1heERvbWFpblZhbHVlKHQsbiksdGhpc30sZS5wcm90b3R5cGUub25QYW5FbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhbkVuZENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmUGFuRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYW5FbmRDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLm9uWm9vbUVuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fem9vbUVuZENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmWm9vbUVuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fem9vbUVuZENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUub25QYW5ab29tVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZQYW5ab29tVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLl9QSVhFTFNfUEVSX0xJTkU9MTIwLGV9KSh3YnQuSW50ZXJhY3Rpb24pO0JidC5QYW5ab29tPXFidDt2YXIgWWJ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShZYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBYYnQ9dU8sJGJ0PXNidCxLYnQ9Rmd0LFpidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fb3ZlckNvbXBvbmVudD0hMSxlLl9wb2ludGVyRW50ZXJDYWxsYmFja3M9bmV3IEtidC5DYWxsYmFja1NldCxlLl9wb2ludGVyTW92ZUNhbGxiYWNrcz1uZXcgS2J0LkNhbGxiYWNrU2V0LGUuX3BvaW50ZXJFeGl0Q2FsbGJhY2tzPW5ldyBLYnQuQ2FsbGJhY2tTZXQsZS5fbW91c2VNb3ZlQ2FsbGJhY2s9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5faGFuZGxlTW91c2VFdmVudCh0LG4pfSxlLl90b3VjaFN0YXJ0Q2FsbGJhY2s9ZnVuY3Rpb24odCxuLGkpe3JldHVybiBlLl9oYW5kbGVUb3VjaEV2ZW50KG5bdFswXV0saSl9LGV9cmV0dXJuIFhidC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fYW5jaG9yPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLl9hbmNob3IuY2FsbCh0aGlzLGUpLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj0kYnQuTW91c2UuZ2V0RGlzcGF0Y2hlcih0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25Nb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlcj0kYnQuVG91Y2guZ2V0RGlzcGF0Y2hlcih0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayl9LGUucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLl91bmFuY2hvci5jYWxsKHRoaXMpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1udWxsLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyPW51bGx9LGUucHJvdG90eXBlLl9oYW5kbGVNb3VzZUV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fbW91c2VEaXNwYXRjaGVyLmV2ZW50SW5zaWRlKHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8sZSk7dGhpcy5faGFuZGxlUG9pbnRlckV2ZW50KHQsbil9LGUucHJvdG90eXBlLl9oYW5kbGVUb3VjaEV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fdG91Y2hEaXNwYXRjaGVyLmV2ZW50SW5zaWRlKHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8sZSk7dGhpcy5faGFuZGxlUG9pbnRlckV2ZW50KHQsbil9LGUucHJvdG90eXBlLl9oYW5kbGVQb2ludGVyRXZlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHQpLGk9dGhpcy5faXNJbnNpZGVDb21wb25lbnQobik7aSYmZT8odGhpcy5fb3ZlckNvbXBvbmVudHx8dGhpcy5fcG9pbnRlckVudGVyQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobiksdGhpcy5fcG9pbnRlck1vdmVDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhuKSk6dGhpcy5fb3ZlckNvbXBvbmVudCYmdGhpcy5fcG9pbnRlckV4aXRDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhuKSx0aGlzLl9vdmVyQ29tcG9uZW50PWkmJmV9LGUucHJvdG90eXBlLm9uUG9pbnRlckVudGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wb2ludGVyRW50ZXJDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZlBvaW50ZXJFbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcG9pbnRlckVudGVyQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vblBvaW50ZXJNb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wb2ludGVyTW92ZUNhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmUG9pbnRlck1vdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BvaW50ZXJNb3ZlQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vblBvaW50ZXJFeGl0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wb2ludGVyRXhpdENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmUG9pbnRlckV4aXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BvaW50ZXJFeGl0Q2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlfSkod2J0LkludGVyYWN0aW9uKTtZYnQuUG9pbnRlcj1aYnQsKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU87ZS5fX2V4cG9ydFN0YXIoYWJ0LHQpLGUuX19leHBvcnRTdGFyKEFidCx0KSxlLl9fZXhwb3J0U3RhcihJYnQsdCksZS5fX2V4cG9ydFN0YXIoQmJ0LHQpLGUuX19leHBvcnRTdGFyKFlidCx0KSx0Lnpvb21PdXQ9aXZ0Lnpvb21PdXR9KShvYnQpO3ZhciBKYnQ9e307IShmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlLG49dU8saT1GZ3Qscj1CZ3Q7IShmdW5jdGlvbih0KXt0W3QuVkFMVUU9MF09IlZBTFVFIix0W3QuUElYRUw9MV09IlBJWEVMIn0pKGU9dC5Qcm9wZXJ0eU1vZGV8fCh0LlByb3BlcnR5TW9kZT17fSkpO3ZhciBvPShmdW5jdGlvbih0KXtmdW5jdGlvbiByKCl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9ib3hWaXNpYmxlPSExLG4uX2JveEJvdW5kcz17dG9wTGVmdDp7eDowLHk6MH0sYm90dG9tUmlnaHQ6e3g6MCx5OjB9fSxuLl94Qm91bmRzTW9kZT1lLlBJWEVMLG4uX3lCb3VuZHNNb2RlPWUuUElYRUwsbi5hZGRDbGFzcygic2VsZWN0aW9uLWJveC1sYXllciIpLG4uX2FkanVzdEJvdW5kc0NhbGxiYWNrPWZ1bmN0aW9uKCl7bi5yZW5kZXIoKX0sbi5fb3ZlcmZsb3dIaWRkZW49ITAsbi5feEV4dGVudD1bdm9pZCAwLHZvaWQgMF0sbi5feUV4dGVudD1bdm9pZCAwLHZvaWQgMF0sbn1yZXR1cm4gbi5fX2V4dGVuZHMocix0KSxyLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9ib3g9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2VsZWN0aW9uLWJveCIsITApLnJlbW92ZSgpLHRoaXMuX2JveEFyZWE9dGhpcy5fYm94LmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoInNlbGVjdGlvbi1hcmVhIiwhMCl9LHIucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3dpZHRoOnQsaGVpZ2h0OmV9fSxyLnByb3RvdHlwZS5ib3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZ2V0Qm91bmRzKCk6KHRoaXMuX3NldEJvdW5kcyh0KSx0aGlzLl94Qm91bmRzTW9kZT1lLlBJWEVMLHRoaXMuX3lCb3VuZHNNb2RlPWUuUElYRUwsdGhpcy5yZW5kZXIoKSx0aGlzKX0sci5wcm90b3R5cGUuX3NldEJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT17eDpNYXRoLm1pbih0LnRvcExlZnQueCx0LmJvdHRvbVJpZ2h0LngpLHk6TWF0aC5taW4odC50b3BMZWZ0LnksdC5ib3R0b21SaWdodC55KX0sbj17eDpNYXRoLm1heCh0LnRvcExlZnQueCx0LmJvdHRvbVJpZ2h0LngpLHk6TWF0aC5tYXgodC50b3BMZWZ0LnksdC5ib3R0b21SaWdodC55KX07dGhpcy5fYm94Qm91bmRzPXt0b3BMZWZ0OmUsYm90dG9tUmlnaHQ6bn19LHIucHJvdG90eXBlLl9nZXRCb3VuZHM9ZnVuY3Rpb24oKXtyZXR1cm57dG9wTGVmdDp7eDp0aGlzLl94Qm91bmRzTW9kZT09PWUuUElYRUw/dGhpcy5fYm94Qm91bmRzLnRvcExlZnQueDpudWxsPT10aGlzLl94U2NhbGU/MDpNYXRoLm1pbih0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzBdKSx0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzFdKSkseTp0aGlzLl95Qm91bmRzTW9kZT09PWUuUElYRUw/dGhpcy5fYm94Qm91bmRzLnRvcExlZnQueTpudWxsPT10aGlzLl95U2NhbGU/MDpNYXRoLm1pbih0aGlzLnlTY2FsZSgpLnNjYWxlKHRoaXMueUV4dGVudCgpWzBdKSx0aGlzLnlTY2FsZSgpLnNjYWxlKHRoaXMueUV4dGVudCgpWzFdKSl9LGJvdHRvbVJpZ2h0Ont4OnRoaXMuX3hCb3VuZHNNb2RlPT09ZS5QSVhFTD90aGlzLl9ib3hCb3VuZHMuYm90dG9tUmlnaHQueDpudWxsPT10aGlzLl94U2NhbGU/MDpNYXRoLm1heCh0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzBdKSx0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzFdKSkseTp0aGlzLl95Qm91bmRzTW9kZT09PWUuUElYRUw/dGhpcy5fYm94Qm91bmRzLmJvdHRvbVJpZ2h0Lnk6bnVsbD09dGhpcy5feVNjYWxlPzA6TWF0aC5tYXgodGhpcy55U2NhbGUoKS5zY2FsZSh0aGlzLnlFeHRlbnQoKVswXSksdGhpcy55U2NhbGUoKS5zY2FsZSh0aGlzLnlFeHRlbnQoKVsxXSkpfX19LHIucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7aWYodC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKSx0aGlzLl9ib3hWaXNpYmxlKXt2YXIgZT10aGlzLmJvdW5kcygpLG49ZS50b3BMZWZ0Lnkscj1lLmJvdHRvbVJpZ2h0Lnksbz1lLnRvcExlZnQueCxhPWUuYm90dG9tUmlnaHQueDtpZighKGkuTWF0aC5pc1ZhbGlkTnVtYmVyKG4pJiZpLk1hdGguaXNWYWxpZE51bWJlcihyKSYmaS5NYXRoLmlzVmFsaWROdW1iZXIobykmJmkuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpKSl0aHJvdyBuZXcgRXJyb3IoImJvdW5kcyBoYXZlIG5vdCBiZWVuIHByb3Blcmx5IHNldCIpO3RoaXMuX2JveEFyZWEuYXR0cnMoe3g6byx5Om4sd2lkdGg6YS1vLGhlaWdodDpyLW59KSx0aGlzLmNvbnRlbnQoKS5ub2RlKCkuYXBwZW5kQ2hpbGQodGhpcy5fYm94Lm5vZGUoKSl9ZWxzZSB0aGlzLl9ib3gucmVtb3ZlKCk7cmV0dXJuIHRoaXN9LHIucHJvdG90eXBlLmJveFZpc2libGU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYm94VmlzaWJsZToodGhpcy5fYm94VmlzaWJsZT10LHRoaXMucmVuZGVyKCksdGhpcyl9LHIucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sci5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sci5wcm90b3R5cGUueFNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3hTY2FsZToobnVsbCE9dGhpcy5feFNjYWxlJiZ0aGlzLl94U2NhbGUub2ZmVXBkYXRlKHRoaXMuX2FkanVzdEJvdW5kc0NhbGxiYWNrKSx0aGlzLl94U2NhbGU9dCx0aGlzLl94Qm91bmRzTW9kZT1lLlZBTFVFLHRoaXMuX3hTY2FsZS5vblVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayksdGhpcy5yZW5kZXIoKSx0aGlzKX0sci5wcm90b3R5cGUueVNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3lTY2FsZToobnVsbCE9dGhpcy5feVNjYWxlJiZ0aGlzLl95U2NhbGUub2ZmVXBkYXRlKHRoaXMuX2FkanVzdEJvdW5kc0NhbGxiYWNrKSx0aGlzLl95U2NhbGU9dCx0aGlzLl95Qm91bmRzTW9kZT1lLlZBTFVFLHRoaXMuX3lTY2FsZS5vblVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayksdGhpcy5yZW5kZXIoKSx0aGlzKX0sci5wcm90b3R5cGUueEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9nZXRYRXh0ZW50KCk6KHRoaXMuX3NldFhFeHRlbnQodCksdGhpcy5feEJvdW5kc01vZGU9ZS5WQUxVRSx0aGlzLnJlbmRlcigpLHRoaXMpfSxyLnByb3RvdHlwZS5fZ2V0WEV4dGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl94Qm91bmRzTW9kZT09PWUuVkFMVUU/dGhpcy5feEV4dGVudDpudWxsPT10aGlzLl94U2NhbGU/W3ZvaWQgMCx2b2lkIDBdOlt0aGlzLl94U2NhbGUuaW52ZXJ0KHRoaXMuX2JveEJvdW5kcy50b3BMZWZ0LngpLHRoaXMuX3hTY2FsZS5pbnZlcnQodGhpcy5fYm94Qm91bmRzLmJvdHRvbVJpZ2h0LngpXX0sci5wcm90b3R5cGUuX3NldFhFeHRlbnQ9ZnVuY3Rpb24odCl7dGhpcy5feEV4dGVudD10fSxyLnByb3RvdHlwZS55RXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2dldFlFeHRlbnQoKToodGhpcy5fc2V0WUV4dGVudCh0KSx0aGlzLl95Qm91bmRzTW9kZT1lLlZBTFVFLHRoaXMucmVuZGVyKCksdGhpcyl9LHIucHJvdG90eXBlLl9nZXRZRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3lCb3VuZHNNb2RlPT09ZS5WQUxVRT90aGlzLl95RXh0ZW50Om51bGw9PXRoaXMuX3lTY2FsZT9bdm9pZCAwLHZvaWQgMF06W3RoaXMuX3lTY2FsZS5pbnZlcnQodGhpcy5fYm94Qm91bmRzLnRvcExlZnQueSksdGhpcy5feVNjYWxlLmludmVydCh0aGlzLl9ib3hCb3VuZHMuYm90dG9tUmlnaHQueSldfSxyLnByb3RvdHlwZS5fc2V0WUV4dGVudD1mdW5jdGlvbih0KXt0aGlzLl95RXh0ZW50PXR9LHIucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksbnVsbCE9dGhpcy5feFNjYWxlJiZ0aGlzLnhTY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayksbnVsbCE9dGhpcy5feVNjYWxlJiZ0aGlzLnlTY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayl9LHJ9KShyLkNvbXBvbmVudCk7dC5TZWxlY3Rpb25Cb3hMYXllcj1vfSkoSmJ0KSwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHJidCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFFidD11Tyx0eHQ9b2J0LGV4dD1GZ3Qsbnh0PWJtdCxpeHQ9aWJ0LHJ4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fZGV0ZWN0aW9uUmFkaXVzPTMsZS5fcmVzaXphYmxlPSExLGUuX21vdmFibGU9ITEsZS5faGFzQ29ybmVycz0hMCxlLmFkZENsYXNzKCJkcmFnLWJveC1sYXllciIpLGUuX2RyYWdJbnRlcmFjdGlvbj1uZXcgdHh0LkRyYWcsZS5fc2V0VXBDYWxsYmFja3MoKSxlLl9kcmFnSW50ZXJhY3Rpb24uYXR0YWNoVG8oZSksZS5fZHJhZ1N0YXJ0Q2FsbGJhY2tzPW5ldyBleHQuQ2FsbGJhY2tTZXQsZS5fZHJhZ0NhbGxiYWNrcz1uZXcgZXh0LkNhbGxiYWNrU2V0LGUuX2RyYWdFbmRDYWxsYmFja3M9bmV3IGV4dC5DYWxsYmFja1NldCxlfXJldHVybiBRYnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX3NldFVwQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLGkscj10aGlzLG89MCxhPWZ1bmN0aW9uKGEpe3Q9ci5fZ2V0UmVzaXppbmdFZGdlcyhhKTt2YXIgcz1yLmJvdW5kcygpLGw9cy50b3BMZWZ0Lng8PWEueCYmYS54PD1zLmJvdHRvbVJpZ2h0LngmJnMudG9wTGVmdC55PD1hLnkmJmEueTw9cy5ib3R0b21SaWdodC55O3IuYm94VmlzaWJsZSgpJiYodC50b3B8fHQuYm90dG9tfHx0LmxlZnR8fHQucmlnaHQpP289MTpyLmJveFZpc2libGUoKSYmci5tb3ZhYmxlKCkmJmw/bz0yOihvPTAsci5fc2V0Qm91bmRzKHt0b3BMZWZ0OmEsYm90dG9tUmlnaHQ6YX0pLHIuX3hCb3VuZHNNb2RlPT09aXh0LlByb3BlcnR5TW9kZS5WQUxVRSYmbnVsbCE9ci54U2NhbGUoKSYmci5fc2V0WEV4dGVudChbci54U2NhbGUoKS5pbnZlcnQoYS54KSxyLnhTY2FsZSgpLmludmVydChhLngpXSksci5feUJvdW5kc01vZGU9PT1peHQuUHJvcGVydHlNb2RlLlZBTFVFJiZudWxsIT1yLnlTY2FsZSgpJiZyLl9zZXRZRXh0ZW50KFtyLnlTY2FsZSgpLmludmVydChhLnkpLHIueVNjYWxlKCkuaW52ZXJ0KGEueSldKSxyLnJlbmRlcigpKSxyLmJveFZpc2libGUoITApLHM9ci5ib3VuZHMoKSxlPXt4OnMudG9wTGVmdC54LHk6cy50b3BMZWZ0Lnl9LG49e3g6cy5ib3R0b21SaWdodC54LHk6cy5ib3R0b21SaWdodC55fSxpPWEsci5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmNhbGxDYWxsYmFja3Mocyl9LHM9ZnVuY3Rpb24oYSxzKXtzd2l0Y2gobyl7Y2FzZSAwOm4ueD1zLngsbi55PXMueTticmVhaztjYXNlIDE6dC5ib3R0b20/bi55PXMueTp0LnRvcCYmKGUueT1zLnkpLHQucmlnaHQ/bi54PXMueDp0LmxlZnQmJihlLng9cy54KTticmVhaztjYXNlIDI6dmFyIGw9cy54LWkueCxjPXMueS1pLnk7ZS54Kz1sLGUueSs9YyxuLngrPWwsbi55Kz1jLGk9c31yLl9zZXRCb3VuZHMoe3RvcExlZnQ6ZSxib3R0b21SaWdodDpufSksci5feEJvdW5kc01vZGU9PT1peHQuUHJvcGVydHlNb2RlLlZBTFVFJiZudWxsIT1yLnhTY2FsZSgpJiZyLl9zZXRYRXh0ZW50KFtyLnhTY2FsZSgpLmludmVydChlLngpLHIueFNjYWxlKCkuaW52ZXJ0KG4ueCldKSxyLl95Qm91bmRzTW9kZT09PWl4dC5Qcm9wZXJ0eU1vZGUuVkFMVUUmJm51bGwhPXIueVNjYWxlKCkmJnIuX3NldFlFeHRlbnQoW3IueVNjYWxlKCkuaW52ZXJ0KGUueSksci55U2NhbGUoKS5pbnZlcnQobi55KV0pLHIucmVuZGVyKCksci5fZHJhZ0NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHIuYm91bmRzKCkpfSxsPWZ1bmN0aW9uKHQsZSl7MD09PW8mJnQueD09PWUueCYmdC55PT09ZS55JiZyLmJveFZpc2libGUoITEpLHIuX2RyYWdFbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhyLmJvdW5kcygpKX07dGhpcy5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ1N0YXJ0KGEpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWcocyksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ0VuZChsKSx0aGlzLl9kaXNjb25uZWN0SW50ZXJhY3Rpb249ZnVuY3Rpb24oKXtyLl9kcmFnSW50ZXJhY3Rpb24ub2ZmRHJhZ1N0YXJ0KGEpLHIuX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnKHMpLHIuX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnRW5kKGwpLHIuX2RyYWdJbnRlcmFjdGlvbi5kZXRhY2goKX19LGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyk7dmFyIG49ZnVuY3Rpb24oKXtyZXR1cm4gZS5fYm94LmFwcGVuZCgibGluZSIpLnN0eWxlcyh7b3BhY2l0eTowLHN0cm9rZToicGluayIsInBvaW50ZXItZXZlbnRzIjoidmlzaWJsZVN0cm9rZSJ9KX07aWYodGhpcy5fZGV0ZWN0aW9uRWRnZVQ9bigpLmNsYXNzZWQoImRyYWctZWRnZS10YiIsITApLHRoaXMuX2RldGVjdGlvbkVkZ2VCPW4oKS5jbGFzc2VkKCJkcmFnLWVkZ2UtdGIiLCEwKSx0aGlzLl9kZXRlY3Rpb25FZGdlTD1uKCkuY2xhc3NlZCgiZHJhZy1lZGdlLWxyIiwhMCksdGhpcy5fZGV0ZWN0aW9uRWRnZVI9bigpLmNsYXNzZWQoImRyYWctZWRnZS1sciIsITApLHRoaXMuX2hhc0Nvcm5lcnMpe3ZhciBpPWZ1bmN0aW9uKCl7cmV0dXJuIGUuX2JveC5hcHBlbmQoImNpcmNsZSIpLnN0eWxlcyh7b3BhY2l0eTowLGZpbGw6InBpbmsiLCJwb2ludGVyLWV2ZW50cyI6InZpc2libGVGaWxsIn0pfTt0aGlzLl9kZXRlY3Rpb25Db3JuZXJUTD1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItdGwiLCEwKSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJUUj1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItdHIiLCEwKSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJCTD1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItYmwiLCEwKSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJCUj1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItYnIiLCEwKX19LGUucHJvdG90eXBlLl9nZXRSZXNpemluZ0VkZ2VzPWZ1bmN0aW9uKHQpe3ZhciBlPXt0b3A6ITEsYm90dG9tOiExLGxlZnQ6ITEscmlnaHQ6ITF9O2lmKCF0aGlzLnJlc2l6YWJsZSgpKXJldHVybiBlO3ZhciBuPXRoaXMuYm91bmRzKCksaT1uLnRvcExlZnQueSxyPW4uYm90dG9tUmlnaHQueSxvPW4udG9wTGVmdC54LGE9bi5ib3R0b21SaWdodC54LHM9dGhpcy5fZGV0ZWN0aW9uUmFkaXVzO3JldHVybiBvLXM8PXQueCYmdC54PD1hK3MmJihlLnRvcD1pLXM8PXQueSYmdC55PD1pK3MsZS5ib3R0b209ci1zPD10LnkmJnQueTw9citzKSxpLXM8PXQueSYmdC55PD1yK3MmJihlLmxlZnQ9by1zPD10LngmJnQueDw9bytzLGUucmlnaHQ9YS1zPD10LngmJnQueDw9YStzKSxlfSxlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe2lmKHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5ib3hWaXNpYmxlKCkpe3ZhciBlPXRoaXMuYm91bmRzKCksbj1lLnRvcExlZnQueSxpPWUuYm90dG9tUmlnaHQueSxyPWUudG9wTGVmdC54LG89ZS5ib3R0b21SaWdodC54O3RoaXMuX2RldGVjdGlvbkVkZ2VULmF0dHJzKHt4MTpyLHkxOm4seDI6byx5MjpuLCJzdHJva2Utd2lkdGgiOjIqdGhpcy5fZGV0ZWN0aW9uUmFkaXVzfSksdGhpcy5fZGV0ZWN0aW9uRWRnZUIuYXR0cnMoe3gxOnIseTE6aSx4MjpvLHkyOmksInN0cm9rZS13aWR0aCI6Mip0aGlzLl9kZXRlY3Rpb25SYWRpdXN9KSx0aGlzLl9kZXRlY3Rpb25FZGdlTC5hdHRycyh7eDE6cix5MTpuLHgyOnIseTI6aSwic3Ryb2tlLXdpZHRoIjoyKnRoaXMuX2RldGVjdGlvblJhZGl1c30pLHRoaXMuX2RldGVjdGlvbkVkZ2VSLmF0dHJzKHt4MTpvLHkxOm4seDI6byx5MjppLCJzdHJva2Utd2lkdGgiOjIqdGhpcy5fZGV0ZWN0aW9uUmFkaXVzfSksdGhpcy5faGFzQ29ybmVycyYmKHRoaXMuX2RldGVjdGlvbkNvcm5lclRMLmF0dHJzKHtjeDpyLGN5Om4scjp0aGlzLl9kZXRlY3Rpb25SYWRpdXN9KSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJUUi5hdHRycyh7Y3g6byxjeTpuLHI6dGhpcy5fZGV0ZWN0aW9uUmFkaXVzfSksdGhpcy5fZGV0ZWN0aW9uQ29ybmVyQkwuYXR0cnMoe2N4OnIsY3k6aSxyOnRoaXMuX2RldGVjdGlvblJhZGl1c30pLHRoaXMuX2RldGVjdGlvbkNvcm5lckJSLmF0dHJzKHtjeDpvLGN5Omkscjp0aGlzLl9kZXRlY3Rpb25SYWRpdXN9KSl9cmV0dXJuIHRoaXN9LGUucHJvdG90eXBlLmRldGVjdGlvblJhZGl1cz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9kZXRlY3Rpb25SYWRpdXM7aWYodDwwKXRocm93IG5ldyBFcnJvcigiZGV0ZWN0aW9uIHJhZGl1cyBjYW5ub3QgYmUgbmVnYXRpdmUuIik7cmV0dXJuIHRoaXMuX2RldGVjdGlvblJhZGl1cz10LHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUucmVzaXphYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3Jlc2l6YWJsZToodGhpcy5fcmVzaXphYmxlPXQsdGhpcy5fc2V0UmVzaXphYmxlQ2xhc3Nlcyh0KSx0aGlzKX0sZS5wcm90b3R5cGUuX3NldFJlc2l6YWJsZUNsYXNzZXM9ZnVuY3Rpb24odCl7dCYmdGhpcy5lbmFibGVkKCk/KHRoaXMuYWRkQ2xhc3MoIngtcmVzaXphYmxlIiksdGhpcy5hZGRDbGFzcygieS1yZXNpemFibGUiKSk6KHRoaXMucmVtb3ZlQ2xhc3MoIngtcmVzaXphYmxlIiksdGhpcy5yZW1vdmVDbGFzcygieS1yZXNpemFibGUiKSl9LGUucHJvdG90eXBlLm1vdmFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbW92YWJsZToodGhpcy5fbW92YWJsZT10LHRoaXMuX3NldE1vdmFibGVDbGFzcygpLHRoaXMpfSxlLnByb3RvdHlwZS5fc2V0TW92YWJsZUNsYXNzPWZ1bmN0aW9uKCl7dGhpcy5tb3ZhYmxlKCkmJnRoaXMuZW5hYmxlZCgpP3RoaXMuYWRkQ2xhc3MoIm1vdmFibGUiKTp0aGlzLnJlbW92ZUNsYXNzKCJtb3ZhYmxlIil9LGUucHJvdG90eXBlLm9uRHJhZ1N0YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnU3RhcnRDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRyYWdTdGFydD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vbkRyYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRyYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLm9uRHJhZ0VuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmRHJhZ0VuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUuZHJhZ0ludGVyYWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RyYWdJbnRlcmFjdGlvbn0sZS5wcm90b3R5cGUuZW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9kcmFnSW50ZXJhY3Rpb24uZW5hYmxlZCgpOih0aGlzLl9kcmFnSW50ZXJhY3Rpb24uZW5hYmxlZCh0KSx0aGlzLl9zZXRSZXNpemFibGVDbGFzc2VzKHRoaXMucmVzaXphYmxlKCkpLHRoaXMuX3NldE1vdmFibGVDbGFzcygpLHRoaXMpfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZSh0KX0pKSx0aGlzLl9kcmFnQ2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZSh0KX0pKSx0aGlzLl9kcmFnRW5kQ2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9kcmFnRW5kQ2FsbGJhY2tzLmRlbGV0ZSh0KX0pKSx0aGlzLl9kaXNjb25uZWN0SW50ZXJhY3Rpb24oKX0sZS5wcm90b3R5cGUuZGV0YWNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jlc2V0U3RhdGUoKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24uZGV0YWNoKCksdC5wcm90b3R5cGUuZGV0YWNoLmNhbGwodGhpcyksdGhpc30sZS5wcm90b3R5cGUuYW5jaG9yPWZ1bmN0aW9uKGUpe3JldHVybiBlPW54dC5jb2VyY2VFeHRlcm5hbEQzKGUpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5hdHRhY2hUbyh0aGlzKSx0LnByb3RvdHlwZS5hbmNob3IuY2FsbCh0aGlzLGUpLHRoaXN9LGUucHJvdG90eXBlLl9yZXNldFN0YXRlPWZ1bmN0aW9uKCl7dGhpcy5ib3VuZHMoe3RvcExlZnQ6e3g6MCx5OjB9LGJvdHRvbVJpZ2h0Ont4OjAseTowfX0pfSxlfSkoSmJ0LlNlbGVjdGlvbkJveExheWVyKTtyYnQuRHJhZ0JveExheWVyPXJ4dDt2YXIgb3h0PXt9LGF4dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGF4dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHN4dCxseHQ9dU8sY3h0PUZndCx1eHQ9Qmd0OyEoZnVuY3Rpb24odCl7dFt0LlZBTFVFPTBdPSJWQUxVRSIsdFt0LlBJWEVMPTFdPSJQSVhFTCJ9KShzeHR8fChzeHQ9e30pKTt2YXIgaHh0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztpZihpLl9tb2RlPXN4dC5WQUxVRSxuIT09ZS5PUklFTlRBVElPTl9WRVJUSUNBTCYmbiE9PWUuT1JJRU5UQVRJT05fSE9SSVpPTlRBTCl0aHJvdyBuZXcgRXJyb3IobisiIGlzIG5vdCBhIHZhbGlkIG9yaWVudGF0aW9uIGZvciBHdWlkZUxpbmVMYXllciIpO3JldHVybiBpLl9vcmllbnRhdGlvbj1uLGkuX292ZXJmbG93SGlkZGVuPSEwLGkuYWRkQ2xhc3MoImd1aWRlLWxpbmUtbGF5ZXIiKSxpLl9pc1ZlcnRpY2FsKCk/aS5hZGRDbGFzcygidmVydGljYWwiKTppLmFkZENsYXNzKCJob3Jpem9udGFsIiksaS5fc2NhbGVVcGRhdGVDYWxsYmFjaz1mdW5jdGlvbigpe2kuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWUoKSxpLnJlbmRlcigpfSxpfXJldHVybiBseHQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fZ3VpZGVMaW5lPXRoaXMuY29udGVudCgpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImd1aWRlLWxpbmUiLCEwKX0sZS5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm57d2lkdGg6dCxoZWlnaHQ6ZX19LGUucHJvdG90eXBlLl9pc1ZlcnRpY2FsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9uPT09ZS5PUklFTlRBVElPTl9WRVJUSUNBTH0sZS5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3JldHVybiEwfSxlLnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiEwfSxlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gdC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsZSxuLGkpLG51bGwhPXRoaXMuc2NhbGUoKSYmKHRoaXMuX2lzVmVydGljYWwoKT90aGlzLnNjYWxlKCkucmFuZ2UoWzAsdGhpcy53aWR0aCgpXSk6dGhpcy5zY2FsZSgpLnJhbmdlKFt0aGlzLmhlaWdodCgpLDBdKSksdGhpc30sZS5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXtyZXR1cm4gdC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKSx0aGlzLl9zeW5jUGl4ZWxQb3NpdGlvbkFuZFZhbHVlKCksdGhpcy5fZ3VpZGVMaW5lLmF0dHJzKHt4MTp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5waXhlbFBvc2l0aW9uKCk6MCx5MTp0aGlzLl9pc1ZlcnRpY2FsKCk/MDp0aGlzLnBpeGVsUG9zaXRpb24oKSx4Mjp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5waXhlbFBvc2l0aW9uKCk6dGhpcy53aWR0aCgpLHkyOnRoaXMuX2lzVmVydGljYWwoKT90aGlzLmhlaWdodCgpOnRoaXMucGl4ZWxQb3NpdGlvbigpfSksdGhpc30sZS5wcm90b3R5cGUuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWU9ZnVuY3Rpb24oKXtudWxsIT10aGlzLnNjYWxlKCkmJih0aGlzLl9tb2RlPT09c3h0LlZBTFVFJiZudWxsIT10aGlzLnZhbHVlKCk/dGhpcy5fcGl4ZWxQb3NpdGlvbj10aGlzLnNjYWxlKCkuc2NhbGUodGhpcy52YWx1ZSgpKTp0aGlzLl9tb2RlPT09c3h0LlBJWEVMJiZudWxsIT10aGlzLnBpeGVsUG9zaXRpb24oKSYmKHRoaXMuX3ZhbHVlPXRoaXMuc2NhbGUoKS5pbnZlcnQodGhpcy5waXhlbFBvc2l0aW9uKCkpKSl9LGUucHJvdG90eXBlLl9zZXRQaXhlbFBvc2l0aW9uV2l0aG91dENoYW5naW5nTW9kZT1mdW5jdGlvbih0KXt0aGlzLl9waXhlbFBvc2l0aW9uPXQsbnVsbCE9dGhpcy5zY2FsZSgpJiYodGhpcy5fdmFsdWU9dGhpcy5zY2FsZSgpLmludmVydCh0aGlzLnBpeGVsUG9zaXRpb24oKSkpLHRoaXMucmVuZGVyKCl9LGUucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3NjYWxlO3ZhciBlPXRoaXMuX3NjYWxlO3JldHVybiBudWxsIT1lJiZlLm9mZlVwZGF0ZSh0aGlzLl9zY2FsZVVwZGF0ZUNhbGxiYWNrKSx0aGlzLl9zY2FsZT10LHRoaXMuX3NjYWxlLm9uVXBkYXRlKHRoaXMuX3NjYWxlVXBkYXRlQ2FsbGJhY2spLHRoaXMuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWUoKSx0aGlzLnJlZHJhdygpLHRoaXN9LGUucHJvdG90eXBlLnZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3ZhbHVlOih0aGlzLl92YWx1ZT10LHRoaXMuX21vZGU9c3h0LlZBTFVFLHRoaXMuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWUoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5waXhlbFBvc2l0aW9uPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3BpeGVsUG9zaXRpb247aWYoIWN4dC5NYXRoLmlzVmFsaWROdW1iZXIodCkpdGhyb3cgbmV3IEVycm9yKCJwaXhlbFBvc2l0aW9uIG11c3QgYmUgYSBmaW5pdGUgbnVtYmVyIik7cmV0dXJuIHRoaXMuX3BpeGVsUG9zaXRpb249dCx0aGlzLl9tb2RlPXN4dC5QSVhFTCx0aGlzLl9zeW5jUGl4ZWxQb3NpdGlvbkFuZFZhbHVlKCksdGhpcy5yZW5kZXIoKSx0aGlzfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLG51bGwhPXRoaXMuc2NhbGUoKSYmdGhpcy5zY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9zY2FsZVVwZGF0ZUNhbGxiYWNrKX0sZS5PUklFTlRBVElPTl9WRVJUSUNBTD0idmVydGljYWwiLGUuT1JJRU5UQVRJT05fSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCIsZX0pKHV4dC5Db21wb25lbnQpO2F4dC5HdWlkZUxpbmVMYXllcj1oeHQsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShveHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBkeHQ9dU8scHh0PW9idCxmeHQ9Rmd0LG14dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyxlKXx8dGhpcztuLl9kZXRlY3Rpb25SYWRpdXM9MyxuLl9lbmFibGVkPSEwLG4uYWRkQ2xhc3MoImRyYWctbGluZS1sYXllciIpLG4uYWRkQ2xhc3MoImVuYWJsZWQiKSxuLl9kcmFnSW50ZXJhY3Rpb249bmV3IHB4dC5EcmFnLG4uX2RyYWdJbnRlcmFjdGlvbi5hdHRhY2hUbyhuKTt2YXIgaT0hMSxyPWZ1bmN0aW9uKHQpeyhmdW5jdGlvbih0KXtyZXR1cm4gbi5faXNWZXJ0aWNhbCgpJiZuLnBpeGVsUG9zaXRpb24oKS1uLmRldGVjdGlvblJhZGl1cygpPD10LngmJnQueDw9bi5waXhlbFBvc2l0aW9uKCkrbi5kZXRlY3Rpb25SYWRpdXMoKXx8IW4uX2lzVmVydGljYWwoKSYmbi5waXhlbFBvc2l0aW9uKCktbi5kZXRlY3Rpb25SYWRpdXMoKTw9dC55JiZ0Lnk8PW4ucGl4ZWxQb3NpdGlvbigpK24uZGV0ZWN0aW9uUmFkaXVzKCl9KSh0KSYmKGk9ITAsbi5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobikpfTtuLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnU3RhcnQocik7dmFyIG89ZnVuY3Rpb24odCxlKXtpJiYobi5fc2V0UGl4ZWxQb3NpdGlvbldpdGhvdXRDaGFuZ2luZ01vZGUobi5faXNWZXJ0aWNhbCgpP2UueDplLnkpLG4uX2RyYWdDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhuKSl9O24uX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWcobyk7dmFyIGE9ZnVuY3Rpb24odCxlKXtpJiYoaT0hMSxuLl9kcmFnRW5kQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobikpfTtyZXR1cm4gbi5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ0VuZChhKSxuLl9kaXNjb25uZWN0SW50ZXJhY3Rpb249ZnVuY3Rpb24oKXtuLl9kcmFnSW50ZXJhY3Rpb24ub2ZmRHJhZ1N0YXJ0KHIpLG4uX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnKG8pLG4uX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnRW5kKGEpLG4uX2RyYWdJbnRlcmFjdGlvbi5kZXRhY2goKX0sbi5fZHJhZ1N0YXJ0Q2FsbGJhY2tzPW5ldyBmeHQuQ2FsbGJhY2tTZXQsbi5fZHJhZ0NhbGxiYWNrcz1uZXcgZnh0LkNhbGxiYWNrU2V0LG4uX2RyYWdFbmRDYWxsYmFja3M9bmV3IGZ4dC5DYWxsYmFja1NldCxufXJldHVybiBkeHQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fZGV0ZWN0aW9uRWRnZT10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImxpbmUiKS5zdHlsZXMoe29wYWNpdHk6MCxzdHJva2U6InBpbmsiLCJwb2ludGVyLWV2ZW50cyI6InZpc2libGVTdHJva2UifSkuY2xhc3NlZCgiZHJhZy1lZGdlIiwhMCl9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5fZGV0ZWN0aW9uRWRnZS5hdHRycyh7eDE6dGhpcy5faXNWZXJ0aWNhbCgpP3RoaXMucGl4ZWxQb3NpdGlvbigpOjAseTE6dGhpcy5faXNWZXJ0aWNhbCgpPzA6dGhpcy5waXhlbFBvc2l0aW9uKCkseDI6dGhpcy5faXNWZXJ0aWNhbCgpP3RoaXMucGl4ZWxQb3NpdGlvbigpOnRoaXMud2lkdGgoKSx5Mjp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5oZWlnaHQoKTp0aGlzLnBpeGVsUG9zaXRpb24oKSwic3Ryb2tlLXdpZHRoIjoyKnRoaXMuX2RldGVjdGlvblJhZGl1c30pLHRoaXN9LGUucHJvdG90eXBlLmRldGVjdGlvblJhZGl1cz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9kZXRlY3Rpb25SYWRpdXM7aWYodDwwKXRocm93IG5ldyBFcnJvcigiZGV0ZWN0aW9uIHJhZGl1cyBjYW5ub3QgYmUgbmVnYXRpdmUuIik7cmV0dXJuIHRoaXMuX2RldGVjdGlvblJhZGl1cz10LHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUuZW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9lbmFibGVkOih0aGlzLl9lbmFibGVkPXQsdD90aGlzLmFkZENsYXNzKCJlbmFibGVkIik6dGhpcy5yZW1vdmVDbGFzcygiZW5hYmxlZCIpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5lbmFibGVkKHQpLHRoaXMpfSxlLnByb3RvdHlwZS5vbkRyYWdTdGFydD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEcmFnU3RhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdTdGFydENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUub25EcmFnPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEcmFnPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vbkRyYWdFbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRyYWdFbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9kcmFnU3RhcnRDYWxsYmFja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2RyYWdTdGFydENhbGxiYWNrcy5kZWxldGUodCl9KSksdGhpcy5fZHJhZ0NhbGxiYWNrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fZHJhZ0NhbGxiYWNrcy5kZWxldGUodCl9KSksdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fZHJhZ0VuZENhbGxiYWNrcy5kZWxldGUodCl9KSksdGhpcy5fZGlzY29ubmVjdEludGVyYWN0aW9uKCl9LGV9KShheHQuR3VpZGVMaW5lTGF5ZXIpO294dC5EcmFnTGluZUxheWVyPW14dDt2YXIgZ3h0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShneHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBfeHQ9dU87ZnVuY3Rpb24geXh0KHQsZSxuKXt2YXIgaT17fTtpZih2b2lkIDAhPT1uKWZvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKWlbbltyXV09bltyLTFdO3JldHVybiBmdW5jdGlvbihuKXt2YXIgcixvPXQuc2NhbGUobik7aWYoIWUpcmV0dXJuIG87dmFyIGE9dm9pZCAwPT09aVtuXT92b2lkIDA6dC5zY2FsZShpW25dKTtyZXR1cm4gdm9pZCAwIT09YSYmKHI9YSsoby1hKS8yKSxyfX12YXIgdnh0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLmFkZENsYXNzKCJncmlkbGluZXMiKSxpLl94U2NhbGU9ZSxpLl95U2NhbGU9bixpLl9yZW5kZXJDYWxsYmFjaz1mdW5jdGlvbih0KXtyZXR1cm4gaS5yZW5kZXIoKX0saS5feFNjYWxlJiZpLl94U2NhbGUub25VcGRhdGUoaS5fcmVuZGVyQ2FsbGJhY2spLGkuX3lTY2FsZSYmaS5feVNjYWxlLm9uVXBkYXRlKGkuX3JlbmRlckNhbGxiYWNrKSxpfXJldHVybiBfeHQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuYmV0d2Vlblg9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5fYmV0d2Vlblg6KHQhPT10aGlzLl9iZXR3ZWVuWCYmKHRoaXMuX2JldHdlZW5YPXQsdGhpcy5yZW5kZXIoKSksdGhpcyl9LGUucHJvdG90eXBlLmJldHdlZW5ZPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P3RoaXMuX2JldHdlZW5ZOih0IT09dGhpcy5fYmV0d2VlblkmJih0aGlzLl9iZXR3ZWVuWT10LHRoaXMucmVuZGVyKCkpLHRoaXMpfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl94U2NhbGUmJnRoaXMuX3hTY2FsZS5vZmZVcGRhdGUodGhpcy5fcmVuZGVyQ2FsbGJhY2spLHRoaXMuX3lTY2FsZSYmdGhpcy5feVNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9yZW5kZXJDYWxsYmFjayksdGhpc30sZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5feExpbmVzQ29udGFpbmVyPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpLmNsYXNzZWQoIngtZ3JpZGxpbmVzIiwhMCksdGhpcy5feUxpbmVzQ29udGFpbmVyPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInktZ3JpZGxpbmVzIiwhMCl9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5fcmVkcmF3WExpbmVzKCksdGhpcy5fcmVkcmF3WUxpbmVzKCksdGhpc30sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKSxudWxsIT10aGlzLl94U2NhbGUmJnRoaXMuX3hTY2FsZS5yYW5nZShbMCx0aGlzLndpZHRoKCldKSxudWxsIT10aGlzLl95U2NhbGUmJnRoaXMuX3lTY2FsZS5yYW5nZShbdGhpcy5oZWlnaHQoKSwwXSksdGhpc30sZS5wcm90b3R5cGUuX3JlZHJhd1hMaW5lcz1mdW5jdGlvbigpe2lmKHRoaXMuX3hTY2FsZSl7dmFyIHQ9dGhpcy5iZXR3ZWVuWCgpLGU9dGhpcy5feFNjYWxlLnRpY2tzKCkuc2xpY2UodD8xOjApLG49dGhpcy5feExpbmVzQ29udGFpbmVyLnNlbGVjdEFsbCgibGluZSIpLmRhdGEoZSk7bi5lbnRlcigpLmFwcGVuZCgibGluZSIpLm1lcmdlKG4pLmF0dHIoIngxIix5eHQodGhpcy5feFNjYWxlLHQsdGhpcy5feFNjYWxlLnRpY2tzKCkpKS5hdHRyKCJ5MSIsMCkuYXR0cigieDIiLHl4dCh0aGlzLl94U2NhbGUsdCx0aGlzLl94U2NhbGUudGlja3MoKSkpLmF0dHIoInkyIix0aGlzLmhlaWdodCgpKS5jbGFzc2VkKCJiZXR3ZWVubGluZSIsdCkuY2xhc3NlZCgiemVyb2xpbmUiLChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXR9KSksbi5leGl0KCkucmVtb3ZlKCl9fSxlLnByb3RvdHlwZS5fcmVkcmF3WUxpbmVzPWZ1bmN0aW9uKCl7aWYodGhpcy5feVNjYWxlKXt2YXIgdD10aGlzLmJldHdlZW5ZKCksZT10aGlzLl95U2NhbGUudGlja3MoKS5zbGljZSh0PzE6MCksbj10aGlzLl95TGluZXNDb250YWluZXIuc2VsZWN0QWxsKCJsaW5lIikuZGF0YShlKTtuLmVudGVyKCkuYXBwZW5kKCJsaW5lIikubWVyZ2UobikuYXR0cigieDEiLDApLmF0dHIoInkxIix5eHQodGhpcy5feVNjYWxlLHQsdGhpcy5feVNjYWxlLnRpY2tzKCkpKS5hdHRyKCJ4MiIsdGhpcy53aWR0aCgpKS5hdHRyKCJ5MiIseXh0KHRoaXMuX3lTY2FsZSx0LHRoaXMuX3lTY2FsZS50aWNrcygpKSkuY2xhc3NlZCgiYmV0d2VlbmxpbmUiLHQpLmNsYXNzZWQoInplcm9saW5lIiwoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10fSkpLG4uZXhpdCgpLnJlbW92ZSgpfX0sZX0pKEJndC5Db21wb25lbnQpO2d4dC5HcmlkbGluZXM9dnh0O3ZhciBieHQ9e30seHh0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoeHh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgd3h0PXVPLFN4dD1ibXQsTXh0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9kZXRhY2hDYWxsYmFjaz1mdW5jdGlvbih0KXtyZXR1cm4gZS5yZW1vdmUodCl9LGV9cmV0dXJuIHd4dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5hbmNob3I9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gZT1TeHQuY29lcmNlRXh0ZXJuYWxEMyhlKSx0LnByb3RvdHlwZS5hbmNob3IuY2FsbCh0aGlzLGUpLHRoaXMuX2ZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFuY2hvcihuLmVsZW1lbnQoKSl9KSksdGhpc30sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbmRlcigpfSkpLHRoaXN9LGUucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoImhhcygpIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBDb21wb25lbnRDb250YWluZXIiKX0sZS5wcm90b3R5cGUuX2Fkb3B0QW5kQW5jaG9yPWZ1bmN0aW9uKHQpe3QucGFyZW50KHRoaXMpLHQub25EZXRhY2godGhpcy5fZGV0YWNoQ2FsbGJhY2spLHRoaXMuX2lzQW5jaG9yZWQmJnQuYW5jaG9yKHRoaXMuZWxlbWVudCgpKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhhcyh0KSYmKHQub2ZmRGV0YWNoKHRoaXMuX2RldGFjaENhbGxiYWNrKSx0aGlzLl9yZW1vdmUodCksdC5kZXRhY2goKSx0aGlzLnJlZHJhdygpKSx0aGlzfSxlLnByb3RvdHlwZS5fcmVtb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiExfSxlLnByb3RvdHlwZS5fZm9yRWFjaD1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIl9mb3JFYWNoKCkgaXMgbm90IGltcGxlbWVudGVkIG9uIENvbXBvbmVudENvbnRhaW5lciIpfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMuX2ZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRlc3Ryb3koKX0pKX0sZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dGhpcy5fZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaW52YWxpZGF0ZUNhY2hlKCl9KSl9LGV9KShCZ3QuQ29tcG9uZW50KTt4eHQuQ29tcG9uZW50Q29udGFpbmVyPU14dCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGJ4dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEV4dD11TyxUeHQ9Rmd0LEN4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2b2lkIDA9PT1lJiYoZT1bXSk7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9jb21wb25lbnRzPVtdLG4uYWRkQ2xhc3MoImNvbXBvbmVudC1ncm91cCIpLGUuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uYXBwZW5kKHQpfSkpLG59cmV0dXJuIEV4dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fZm9yRWFjaD1mdW5jdGlvbih0KXt0aGlzLmNvbXBvbmVudHMoKS5mb3JFYWNoKHQpfSxlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NvbXBvbmVudHMuaW5kZXhPZih0KT49MH0sZS5wcm90b3R5cGUucmVxdWVzdGVkU3BhY2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9jb21wb25lbnRzLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIG4ucmVxdWVzdGVkU3BhY2UodCxlKX0pKTtyZXR1cm57bWluV2lkdGg6VHh0Lk1hdGgubWF4KG4sKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1pbldpZHRofSksMCksbWluSGVpZ2h0OlR4dC5NYXRoLm1heChuLChmdW5jdGlvbih0KXtyZXR1cm4gdC5taW5IZWlnaHR9KSwwKX19LGUucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24oZSxuLGkpe3ZhciByPXRoaXM7cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKSx0aGlzLl9mb3JFYWNoKChmdW5jdGlvbih0KXt0LmNvbXB1dGVMYXlvdXQoe3g6MCx5OjB9LHIud2lkdGgoKSxyLmhlaWdodCgpKX0pKSx0aGlzfSxlLnByb3RvdHlwZS5fc2l6ZUZyb21PZmZlcj1mdW5jdGlvbih0LGUpe3JldHVybnt3aWR0aDp0LGhlaWdodDplfX0sZS5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21wb25lbnRzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5maXhlZFdpZHRoKCl9KSl9LGUucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbXBvbmVudHMuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmZpeGVkSGVpZ2h0KCl9KSl9LGUucHJvdG90eXBlLmNvbXBvbmVudHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tcG9uZW50cy5zbGljZSgpfSxlLnByb3RvdHlwZS5hcHBlbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXR8fHRoaXMuaGFzKHQpfHwodC5kZXRhY2goKSx0aGlzLl9jb21wb25lbnRzLnB1c2godCksdGhpcy5fYWRvcHRBbmRBbmNob3IodCksdGhpcy5yZWRyYXcoKSksdGhpc30sZS5wcm90b3R5cGUuX3JlbW92ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9jb21wb25lbnRzLmluZGV4T2YodCk7cmV0dXJuIGU+PTAmJih0aGlzLl9jb21wb25lbnRzLnNwbGljZShlLDEpLCEwKX0sZX0pKHh4dC5Db21wb25lbnRDb250YWluZXIpO2J4dC5Hcm91cD1DeHQ7dmFyIEF4dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoQXh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIga3h0PXVPLEx4dD1JbXQsUHh0PUxfdCxOeHQ9Z3l0LEl4dD1GZ3QsUnh0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztpZihuLl90ZXh0UGFkZGluZz01LG51bGw9PWUpdGhyb3cgbmV3IEVycm9yKCJJbnRlcnBvbGF0ZWRDb2xvckxlZ2VuZCByZXF1aXJlcyBhIGludGVycG9sYXRlZENvbG9yU2NhbGUiKTtyZXR1cm4gbi5fc2NhbGU9ZSxuLl9yZWRyYXdDYWxsYmFjaz1mdW5jdGlvbih0KXtyZXR1cm4gbi5yZWRyYXcoKX0sbi5fc2NhbGUub25VcGRhdGUobi5fcmVkcmF3Q2FsbGJhY2spLG4uX2Zvcm1hdHRlcj1OeHQuZ2VuZXJhbCgpLG4uX29yaWVudGF0aW9uPSJob3Jpem9udGFsIixuLl9leHBhbmRzPSExLG4uYWRkQ2xhc3MoImxlZ2VuZCIpLG4uYWRkQ2xhc3MoImludGVycG9sYXRlZC1jb2xvci1sZWdlbmQiKSxufXJldHVybiBreHQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9zY2FsZS5vZmZVcGRhdGUodGhpcy5fcmVkcmF3Q2FsbGJhY2spfSxlLnByb3RvdHlwZS5mb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5fZm9ybWF0dGVyOih0aGlzLl9mb3JtYXR0ZXI9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5leHBhbmRzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2V4cGFuZHM6KHRoaXMuX2V4cGFuZHM9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLl9lbnN1cmVPcmllbnRhdGlvbj1mdW5jdGlvbih0KXtpZigiaG9yaXpvbnRhbCI9PT0odD10LnRvTG93ZXJDYXNlKCkpfHwibGVmdCI9PT10fHwicmlnaHQiPT09dClyZXR1cm4gdDt0aHJvdyBuZXcgRXJyb3IoJyInK3QrJyIgaXMgbm90IGEgdmFsaWQgb3JpZW50YXRpb24gZm9yIEludGVycG9sYXRlZENvbG9yTGVnZW5kJyl9LGUucHJvdG90eXBlLm9yaWVudGF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX29yaWVudGF0aW9uOih0aGlzLl9vcmllbnRhdGlvbj1lLl9lbnN1cmVPcmllbnRhdGlvbih0KSx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5maXhlZFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZXhwYW5kcygpfHx0aGlzLl9pc1ZlcnRpY2FsKCl9LGUucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZXhwYW5kcygpfHwhdGhpcy5faXNWZXJ0aWNhbCgpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVUaWNrcz1mdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD1lLl9ERUZBVUxUX05VTV9TV0FUQ0hFUyk7dmFyIG49dGhpcy5fc2NhbGUuZG9tYWluKCk7aWYoMT09PXQpcmV0dXJuW25bMF1dO2Zvcih2YXIgaT0oblsxXS1uWzBdKS8odC0xKSxyPVtdLG89MDtvPHQ7bysrKXIucHVzaChuWzBdK2kqbyk7cmV0dXJuIHJ9LGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3N3YXRjaENvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzd2F0Y2gtY29udGFpbmVyIiwhMCksdGhpcy5fc3dhdGNoQm91bmRpbmdCb3g9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgic3dhdGNoLWJvdW5kaW5nLWJveCIsITApLHRoaXMuX2xvd2VyTGFiZWw9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZChlLkxFR0VORF9MQUJFTF9DTEFTUywhMCksdGhpcy5fdXBwZXJMYWJlbD10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKGUuTEVHRU5EX0xBQkVMX0NMQVNTLCEwKTt2YXIgbj1uZXcgTHh0LlN2Z0NvbnRleHQodGhpcy5jb250ZW50KCkubm9kZSgpKTt0aGlzLl9tZWFzdXJlcj1uZXcgTHh0Lk1lYXN1cmVyKG4pLHRoaXMuX3dyYXBwZXI9bmV3IEx4dC5XcmFwcGVyLHRoaXMuX3dyaXRlcj1uZXcgTHh0LldyaXRlcih0aGlzLl9tZWFzdXJlcixuLHRoaXMuX3dyYXBwZXIpfSxlLnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbih0LG4pe3ZhciBpLHIsbz10aGlzLGE9dGhpcy5fbWVhc3VyZXIubWVhc3VyZSgpLmhlaWdodCxzPWEsbD10aGlzLl9zY2FsZS5kb21haW4oKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvLl9tZWFzdXJlci5tZWFzdXJlKG8uX2Zvcm1hdHRlcih0KSkud2lkdGh9KSksYz1lLl9ERUZBVUxUX05VTV9TV0FUQ0hFUztpZih0aGlzLl9pc1ZlcnRpY2FsKCkpe3ZhciB1PUl4dC5NYXRoLm1heChsLDApO3I9cythK3RoaXMuX3RleHRQYWRkaW5nK3UrdGhpcy5fdGV4dFBhZGRpbmcsaT1jKmF9ZWxzZSBpPXMrYStzLHI9dGhpcy5fdGV4dFBhZGRpbmcrbFswXStjKmErbFsxXSt0aGlzLl90ZXh0UGFkZGluZztyZXR1cm57bWluV2lkdGg6cixtaW5IZWlnaHQ6aX19LGUucHJvdG90eXBlLl9pc1ZlcnRpY2FsPWZ1bmN0aW9uKCl7cmV0dXJuImhvcml6b250YWwiIT09dGhpcy5fb3JpZW50YXRpb259LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0LnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpO3ZhciBuLGkscixvLGEscyxsPXRoaXMuX3NjYWxlLmRvbWFpbigpLGM9dGhpcy5fZm9ybWF0dGVyKGxbMF0pLHU9dGhpcy5fbWVhc3VyZXIubWVhc3VyZShjKS53aWR0aCxoPXRoaXMuX2Zvcm1hdHRlcihsWzFdKSxkPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoaCkud2lkdGgscD10aGlzLl9tZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0LGY9dGhpcy5fdGV4dFBhZGRpbmcsbT17eDowLHk6MH0sZz17eDowLHk6MH0sXz17eEFsaWduOiJjZW50ZXIiLHlBbGlnbjoiY2VudGVyIix0ZXh0Um90YXRpb246MH0seT17eEFsaWduOiJjZW50ZXIiLHlBbGlnbjoiY2VudGVyIix0ZXh0Um90YXRpb246MH0sdj17eDowLHk6MCx3aWR0aDowLGhlaWdodDowfTtpZih0aGlzLl9pc1ZlcnRpY2FsKCkpe3M9TWF0aC5mbG9vcih0aGlzLmhlaWdodCgpKTt2YXIgYj1NYXRoLm1heCh1LGQpO2E9KHRoaXMud2lkdGgoKS1iLTIqdGhpcy5fdGV4dFBhZGRpbmcpLzIsbj1NYXRoLm1heCh0aGlzLndpZHRoKCktYS0yKmYtYiwwKSxpPTEsbz1mdW5jdGlvbih0LG4pe3JldHVybiBlLmhlaWdodCgpLShuKzEpfSx5LnlBbGlnbj0idG9wIixtLnk9MCxfLnlBbGlnbj0iYm90dG9tIixnLnk9MCwibGVmdCI9PT10aGlzLl9vcmllbnRhdGlvbj8ocj1mdW5jdGlvbih0LGUpe3JldHVybiBmK2IrZn0seS54QWxpZ249InJpZ2h0IixtLng9LShhK24rZiksXy54QWxpZ249InJpZ2h0IixnLng9LShhK24rZikpOihyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGF9LHkueEFsaWduPSJsZWZ0IixtLng9YStuK2YsXy54QWxpZ249ImxlZnQiLGcueD1hK24rZiksdi53aWR0aD1uLHYuaGVpZ2h0PXMqaX1lbHNlIGE9TWF0aC5tYXgoZiwodGhpcy5oZWlnaHQoKS1wKS8yKSxzPU1hdGgubWF4KE1hdGguZmxvb3IodGhpcy53aWR0aCgpLTQqZi11LWQpLDApLG49MSxpPU1hdGgubWF4KHRoaXMuaGVpZ2h0KCktMiphLDApLHI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5mbG9vcih1KzIqZikrZX0sbz1mdW5jdGlvbih0LGUpe3JldHVybiBhfSx5LnhBbGlnbj0icmlnaHQiLG0ueD0tZixfLnhBbGlnbj0ibGVmdCIsZy54PWYsdi55PWEsdi53aWR0aD1zKm4sdi5oZWlnaHQ9aTt2Lng9cihudWxsLDApLHRoaXMuX3VwcGVyTGFiZWwudGV4dCgiIiksdGhpcy5fd3JpdGVyLndyaXRlKGgsdGhpcy53aWR0aCgpLHRoaXMuaGVpZ2h0KCkseSx0aGlzLl91cHBlckxhYmVsLm5vZGUoKSksdGhpcy5fdXBwZXJMYWJlbC5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIittLngrIiwgIittLnkrIikiKSx0aGlzLl9sb3dlckxhYmVsLnRleHQoIiIpLHRoaXMuX3dyaXRlci53cml0ZShjLHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpLF8sdGhpcy5fbG93ZXJMYWJlbC5ub2RlKCkpLHRoaXMuX2xvd2VyTGFiZWwuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrZy54KyIsICIrZy55KyIpIiksdGhpcy5fc3dhdGNoQm91bmRpbmdCb3guYXR0cnModik7dmFyIHg9dGhpcy5fZ2VuZXJhdGVUaWNrcyhzKSx3PXRoaXMuX3N3YXRjaENvbnRhaW5lci5zZWxlY3RBbGwoInJlY3Quc3dhdGNoIikuZGF0YSh4KSxTPXcuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKCJzd2F0Y2giLCEwKSxNPXcubWVyZ2UoUyk7cmV0dXJuIHcuZXhpdCgpLnJlbW92ZSgpLE0uYXR0cnMoe2ZpbGw6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5fc2NhbGUuc2NhbGUodCl9LHdpZHRoOm4saGVpZ2h0OmkseDpyLHk6bywic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KSxQeHQuQUREX1RJVExFX0VMRU1FTlRTJiZTLmFwcGVuZCgidGl0bGUiKS50ZXh0KChmdW5jdGlvbih0KXtyZXR1cm4gZS5fZm9ybWF0dGVyKHQpfSkpLHRoaXN9LGUuX0RFRkFVTFRfTlVNX1NXQVRDSEVTPTExLGUuTEVHRU5EX0xBQkVMX0NMQVNTPSJsZWdlbmQtbGFiZWwiLGV9KShCZ3QuQ29tcG9uZW50KTtBeHQuSW50ZXJwb2xhdGVkQ29sb3JMZWdlbmQ9Unh0O3ZhciBPeHQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KE94dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHp4dD11TyxEeHQ9SW10LEJ4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3ZvaWQgMD09PWUmJihlPSIiKSx2b2lkIDA9PT1uJiYobj0wKTt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuYWRkQ2xhc3MoImxhYmVsIiksaS50ZXh0KGUpLGkuYW5nbGUobiksaS54QWxpZ25tZW50KCJjZW50ZXIiKS55QWxpZ25tZW50KCJjZW50ZXIiKSxpLl9wYWRkaW5nPTAsaX1yZXR1cm4genh0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fbWVhc3VyZXIubWVhc3VyZSh0aGlzLl90ZXh0KTtyZXR1cm57bWluV2lkdGg6KDA9PT10aGlzLmFuZ2xlKCk/bi53aWR0aDpuLmhlaWdodCkrMip0aGlzLnBhZGRpbmcoKSxtaW5IZWlnaHQ6KDA9PT10aGlzLmFuZ2xlKCk/bi5oZWlnaHQ6bi53aWR0aCkrMip0aGlzLnBhZGRpbmcoKX19LGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3RleHRDb250YWluZXI9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIik7dmFyIGU9bmV3IER4dC5TdmdDb250ZXh0KHRoaXMuX3RleHRDb250YWluZXIubm9kZSgpKTt0aGlzLl9tZWFzdXJlcj1uZXcgRHh0LkNhY2hlTWVhc3VyZXIoZSksdGhpcy5fd3JhcHBlcj1uZXcgRHh0LldyYXBwZXIsdGhpcy5fd3JpdGVyPW5ldyBEeHQuV3JpdGVyKHRoaXMuX21lYXN1cmVyLGUsdGhpcy5fd3JhcHBlciksdGhpcy50ZXh0KHRoaXMuX3RleHQpfSxlLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3RleHQ7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiTGFiZWwudGV4dCgpIG9ubHkgdGFrZXMgc3RyaW5ncyBhcyBpbnB1dCIpO3JldHVybiB0aGlzLl90ZXh0PXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5hbmdsZT1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9hbmdsZTtpZigodCU9MzYwKT4xODA/dC09MzYwOnQ8LTE4MCYmKHQrPTM2MCksLTkwIT09dCYmMCE9PXQmJjkwIT09dCl0aHJvdyBuZXcgRXJyb3IodCsiIGlzIG5vdCBhIHZhbGlkIGFuZ2xlIGZvciBMYWJlbCIpO3JldHVybiB0aGlzLl9hbmdsZT10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUucGFkZGluZz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9wYWRkaW5nO2lmKCh0PSt0KTwwKXRocm93IG5ldyBFcnJvcih0KyIgaXMgbm90IGEgdmFsaWQgcGFkZGluZyB2YWx1ZS4gQ2Fubm90IGJlIGxlc3MgdGhhbiAwLiIpO3JldHVybiB0aGlzLl9wYWRkaW5nPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5maXhlZFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGUucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuITB9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKSx0aGlzLl90ZXh0Q29udGFpbmVyLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpO3ZhciBlPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUodGhpcy5fdGV4dCksbj1NYXRoLm1heChNYXRoLm1pbigodGhpcy5oZWlnaHQoKS1lLmhlaWdodCkvMix0aGlzLnBhZGRpbmcoKSksMCksaT1NYXRoLm1heChNYXRoLm1pbigodGhpcy53aWR0aCgpLWUud2lkdGgpLzIsdGhpcy5wYWRkaW5nKCkpLDApO3RoaXMuX3RleHRDb250YWluZXIuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIraSsiLCIrbisiKSIpO3ZhciByPXRoaXMud2lkdGgoKS0yKmksbz10aGlzLmhlaWdodCgpLTIqbixhPXt4QWxpZ246dGhpcy54QWxpZ25tZW50KCkseUFsaWduOnRoaXMueUFsaWdubWVudCgpLHRleHRSb3RhdGlvbjp0aGlzLmFuZ2xlKCl9O3JldHVybiB0aGlzLl93cml0ZXIud3JpdGUodGhpcy5fdGV4dCxyLG8sYSksdGhpc30sZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sZX0pKEJndC5Db21wb25lbnQpO094dC5MYWJlbD1CeHQ7dmFyIEh4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuLGkpe3ZhciByPXQuY2FsbCh0aGlzLG4saSl8fHRoaXM7cmV0dXJuIHIuYWRkQ2xhc3MoZS5USVRMRV9MQUJFTF9DTEFTUykscn1yZXR1cm4genh0Ll9fZXh0ZW5kcyhlLHQpLGUuVElUTEVfTEFCRUxfQ0xBU1M9InRpdGxlLWxhYmVsIixlfSkoQnh0KTtPeHQuVGl0bGVMYWJlbD1IeHQ7dmFyIEZ4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuLGkpe3ZhciByPXQuY2FsbCh0aGlzLG4saSl8fHRoaXM7cmV0dXJuIHIuYWRkQ2xhc3MoZS5BWElTX0xBQkVMX0NMQVNTKSxyfXJldHVybiB6eHQuX19leHRlbmRzKGUsdCksZS5BWElTX0xBQkVMX0NMQVNTPSJheGlzLWxhYmVsIixlfSkoQnh0KTtPeHQuQXhpc0xhYmVsPUZ4dDt2YXIgVnh0PXt9LFV4dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KFV4dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGp4dD1FZHQ7VXh0LmNpcmNsZT1mdW5jdGlvbiBHeHQoKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGp4dC5zeW1ib2woKS50eXBlKGp4dC5zeW1ib2xDaXJjbGUpLnNpemUoTWF0aC5QSSpNYXRoLnBvdyh0LzIsMikpfX0sVXh0LnNxdWFyZT1mdW5jdGlvbiBXeHQoKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGp4dC5zeW1ib2woKS50eXBlKGp4dC5zeW1ib2xTcXVhcmUpLnNpemUoTWF0aC5wb3codCwyKSl9fSxVeHQuY3Jvc3M9ZnVuY3Rpb24gcXh0KCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBqeHQuc3ltYm9sKCkudHlwZShqeHQuc3ltYm9sQ3Jvc3MpLnNpemUoNS85Kk1hdGgucG93KHQsMikpfX0sVXh0LmRpYW1vbmQ9ZnVuY3Rpb24gWXh0KCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBqeHQuc3ltYm9sKCkudHlwZShqeHQuc3ltYm9sRGlhbW9uZCkuc2l6ZShNYXRoLnRhbihNYXRoLlBJLzYpKk1hdGgucG93KHQsMikvMil9fSxVeHQudHJpYW5nbGU9ZnVuY3Rpb24gWHh0KCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBqeHQuc3ltYm9sKCkudHlwZShqeHQuc3ltYm9sVHJpYW5nbGUpLnNpemUoTWF0aC5zcXJ0KDMpKk1hdGgucG93KHQvMiwyKSl9fSxVeHQuc3Rhcj1mdW5jdGlvbiAkeHQoKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGp4dC5zeW1ib2woKS50eXBlKGp4dC5zeW1ib2xTdGFyKS5zaXplKC44OTA4MTMwOTE1MjkyODUyKk1hdGgucG93KHQvMiwyKSl9fTt2YXIgS3h0PTMqKDEvTWF0aC5zcXJ0KDEyKS8yKzEpO1V4dC53eWU9ZnVuY3Rpb24gWnh0KCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBqeHQuc3ltYm9sKCkudHlwZShqeHQuc3ltYm9sV3llKS5zaXplKEt4dCpNYXRoLnBvdyh0LzIuNCwyKSl9fSwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ4dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEp4dD11TyxReHQ9RWR0LHR3dD1JbXQsZXd0PUxfdCxud3Q9Z3l0LGl3dD1VeHQscnd0PUZndCxvd3Q9Qmd0LGF3dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt2b2lkIDA9PT10JiYodD1bXSksdm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPT09biYmKG49MS8wKSx0aGlzLmNvbHVtbnM9dCx0aGlzLmJvdHRvbVBhZGRpbmc9ZSx0aGlzLm1heFdpZHRoPW59cmV0dXJuIHQucHJvdG90eXBlLmFkZENvbHVtbj1mdW5jdGlvbih0KXt2YXIgZT10LndpZHRoLG49dGhpcy5nZXRXaWR0aEF2YWlsYWJsZSgpO3Qud2lkdGg9TWF0aC5taW4obixlKSx0aGlzLmNvbHVtbnMucHVzaCh0KX0sdC5wcm90b3R5cGUuZ2V0Qm91bmRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmNvbHVtbnNbdF0sbj0wLGk9MDtpPHQ7aSsrKW4rPXRoaXMuY29sdW1uc1tpXS53aWR0aDtyZXR1cm57dG9wTGVmdDp7eDpuLHk6MH0sYm90dG9tUmlnaHQ6e3g6bitlLndpZHRoLHk6ZS5oZWlnaHR9fX0sdC5wcm90b3R5cGUuZ2V0SGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHJ3dC5NYXRoLm1heCh0aGlzLmNvbHVtbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5oZWlnaHR9KSksMCkrdGhpcy5ib3R0b21QYWRkaW5nfSx0LnByb3RvdHlwZS5nZXRXaWR0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLm1pbih0aGlzLmNvbHVtbnMucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2Uud2lkdGh9KSwwKSx0aGlzLm1heFdpZHRoKX0sdC5wcm90b3R5cGUuZ2V0V2lkdGhBdmFpbGFibGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldFdpZHRoKCk7cmV0dXJuIE1hdGgubWF4KHRoaXMubWF4V2lkdGgtdCwwKX0sdH0pKCksc3d0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4saSl7dm9pZCAwPT09dCYmKHQ9MS8wKSx2b2lkIDA9PT1lJiYoZT0xLzApLHZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PWkmJihpPVtdKSx0aGlzLm1heFdpZHRoPXQsdGhpcy5tYXhIZWlnaHQ9ZSx0aGlzLnBhZGRpbmc9bix0aGlzLnJvd3M9aX1yZXR1cm4gdC5wcm90b3R5cGUuYWRkUm93PWZ1bmN0aW9uKHQpe3QubWF4V2lkdGg9dGhpcy5tYXhXaWR0aC0yKnRoaXMucGFkZGluZyx0aGlzLnJvd3MucHVzaCh0KX0sdC5wcm90b3R5cGUuZ2V0Q29sdW1uQm91bmRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5nZXRSb3dCb3VuZHModCksaT10aGlzLnJvd3NbdF0uZ2V0Qm91bmRzKGUpO3JldHVybiBpLnRvcExlZnQueCs9bi50b3BMZWZ0LngsaS5ib3R0b21SaWdodC54Kz1uLnRvcExlZnQueCxpLnRvcExlZnQueSs9bi50b3BMZWZ0LnksaS5ib3R0b21SaWdodC55Kz1uLnRvcExlZnQueSxpfSx0LnByb3RvdHlwZS5nZXRSb3dCb3VuZHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMucGFkZGluZyxuPXRoaXMucGFkZGluZyxpPTA7aTx0O2krKyluKz10aGlzLnJvd3NbaV0uZ2V0SGVpZ2h0KCk7cmV0dXJue3RvcExlZnQ6e3g6ZSx5Om59LGJvdHRvbVJpZ2h0Ont4OmUrdGhpcy5yb3dzW3RdLmdldFdpZHRoKCkseTpuK3RoaXMucm93c1t0XS5nZXRIZWlnaHQoKX19fSx0LnByb3RvdHlwZS5nZXRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5taW4odGhpcy5yb3dzLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLmdldEhlaWdodCgpfSksMCkrMip0aGlzLnBhZGRpbmcsdGhpcy5tYXhIZWlnaHQpfSx0LnByb3RvdHlwZS5nZXRXaWR0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLm1pbihyd3QuTWF0aC5tYXgodGhpcy5yb3dzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0V2lkdGgoKX0pKSwwKSsyKnRoaXMucGFkZGluZyx0aGlzLm1heFdpZHRoKX0sdH0pKCksbHd0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztpZihuLl9wYWRkaW5nPTUsbi5fcm93Qm90dG9tUGFkZGluZz0zLG4uYWRkQ2xhc3MoImxlZ2VuZCIpLG4ubWF4RW50cmllc1BlclJvdygxKSxudWxsPT1lKXRocm93IG5ldyBFcnJvcigiTGVnZW5kIHJlcXVpcmVzIGEgY29sb3JTY2FsZSIpO3JldHVybiBuLl9jb2xvclNjYWxlPWUsbi5fcmVkcmF3Q2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIG4ucmVkcmF3KCl9LG4uX2NvbG9yU2NhbGUub25VcGRhdGUobi5fcmVkcmF3Q2FsbGJhY2spLG4uX2Zvcm1hdHRlcj1ud3QuaWRlbnRpdHkoKSxuLm1heExpbmVzUGVyRW50cnkoMSksbi54QWxpZ25tZW50KCJyaWdodCIpLnlBbGlnbm1lbnQoInRvcCIpLG4uY29tcGFyYXRvcigoZnVuY3Rpb24odCxlKXt2YXIgaT1uLl9jb2xvclNjYWxlLmRvbWFpbigpLnNsaWNlKCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbi5fZm9ybWF0dGVyKHQpfSkpO3JldHVybiBpLmluZGV4T2YodCktaS5pbmRleE9mKGUpfSkpLG4uX3N5bWJvbEZhY3RvcnlBY2Nlc3Nvcj1mdW5jdGlvbigpe3JldHVybiBpd3QuY2lyY2xlKCl9LG4uX3N5bWJvbE9wYWNpdHlBY2Nlc3Nvcj1mdW5jdGlvbigpe3JldHVybiAxfSxufXJldHVybiBKeHQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyk7dmFyIG49dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZChlLkxFR0VORF9ST1dfQ0xBU1MsITApO24uYXBwZW5kKCJnIikuY2xhc3NlZChlLkxFR0VORF9FTlRSWV9DTEFTUywhMCkuYXBwZW5kKCJ0ZXh0Iik7dmFyIGk9bmV3IHR3dC5TdmdDb250ZXh0KG4ubm9kZSgpLG51bGwsZXd0LkFERF9USVRMRV9FTEVNRU5UUyk7dGhpcy5fbWVhc3VyZXI9bmV3IHR3dC5DYWNoZU1lYXN1cmVyKGkpLHRoaXMuX3dyYXBwZXI9KG5ldyB0d3QuV3JhcHBlcikubWF4TGluZXModGhpcy5tYXhMaW5lc1BlckVudHJ5KCkpLHRoaXMuX3dyaXRlcj1uZXcgdHd0LldyaXRlcih0aGlzLl9tZWFzdXJlcixpLHRoaXMuX3dyYXBwZXIpfSxlLnByb3RvdHlwZS5mb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZm9ybWF0dGVyOih0aGlzLl9mb3JtYXR0ZXI9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5tYXhFbnRyaWVzUGVyUm93PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX21heEVudHJpZXNQZXJSb3c6KHRoaXMuX21heEVudHJpZXNQZXJSb3c9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5tYXhMaW5lc1BlckVudHJ5PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX21heExpbmVzUGVyRW50cnk6KHRoaXMuX21heExpbmVzUGVyRW50cnk9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5tYXhXaWR0aD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9tYXhXaWR0aDoodGhpcy5fbWF4V2lkdGg9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5jb21wYXJhdG9yPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2NvbXBhcmF0b3I6KHRoaXMuX2NvbXBhcmF0b3I9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5jb2xvclNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10Pyh0aGlzLl9jb2xvclNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9yZWRyYXdDYWxsYmFjayksdGhpcy5fY29sb3JTY2FsZT10LHRoaXMuX2NvbG9yU2NhbGUub25VcGRhdGUodGhpcy5fcmVkcmF3Q2FsbGJhY2spLHRoaXMucmVkcmF3KCksdGhpcyk6dGhpcy5fY29sb3JTY2FsZX0sZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9jb2xvclNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9yZWRyYXdDYWxsYmFjayl9LGUucHJvdG90eXBlLl9idWlsZExlZ2VuZFRhYmxlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxpPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQscj1uZXcgc3d0KHQsZSx0aGlzLl9wYWRkaW5nKSxvPXRoaXMuX2NvbG9yU2NhbGUuZG9tYWluKCkuc2xpY2UoKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBuLl9jb21wYXJhdG9yKG4uX2Zvcm1hdHRlcih0KSxuLl9mb3JtYXR0ZXIoZSkpfSkpLGE9bmV3IGF3dDtyZXR1cm4gci5hZGRSb3coYSksYS5ib3R0b21QYWRkaW5nPXRoaXMuX3Jvd0JvdHRvbVBhZGRpbmcsby5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2EuY29sdW1ucy5sZW5ndGgvMj09PW4ubWF4RW50cmllc1BlclJvdygpJiYoKGE9bmV3IGF3dCkuYm90dG9tUGFkZGluZz1uLl9yb3dCb3R0b21QYWRkaW5nLHIuYWRkUm93KGEpKTt2YXIgbz1hLmdldFdpZHRoQXZhaWxhYmxlKCkscz1uLl9mb3JtYXR0ZXIodCksbD1uLl9tZWFzdXJlci5tZWFzdXJlKHMpLndpZHRoO28taS1sPDAmJmEuY29sdW1ucy5sZW5ndGg+MSYmKChhPW5ldyBhd3QpLmJvdHRvbVBhZGRpbmc9bi5fcm93Qm90dG9tUGFkZGluZyxyLmFkZFJvdyhhKSksYS5hZGRDb2x1bW4oe3dpZHRoOmksaGVpZ2h0OmksZGF0YTp7bmFtZTp0LHR5cGU6InN5bWJvbCJ9fSksbz1hLmdldFdpZHRoQXZhaWxhYmxlKCk7dmFyIGM9TWF0aC5taW4obyxsKTtuLl93cmFwcGVyLm1heExpbmVzKG4ubWF4TGluZXNQZXJFbnRyeSgpKTt2YXIgdT1uLl93cmFwcGVyLndyYXAocyxuLl9tZWFzdXJlcixjKS5ub0xpbmVzO2EuYWRkQ29sdW1uKHt3aWR0aDpjLGhlaWdodDp1KmksZGF0YTp7bmFtZTp0LHR5cGU6InRleHQifX0pfSkpLHJ9LGUucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYnVpbGRMZWdlbmRUYWJsZShyd3QuTWF0aC5taW4oW3RoaXMubWF4V2lkdGgoKSx0XSx0KSxlKTtyZXR1cm57bWluSGVpZ2h0Om4uZ2V0SGVpZ2h0KCksbWluV2lkdGg6bi5nZXRXaWR0aCgpfX0sZS5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt2YXIgbj10aGlzO2lmKCF0aGlzLl9pc1NldHVwKXJldHVybltdO3ZhciBpPXRoaXMuX2J1aWxkTGVnZW5kVGFibGUodGhpcy53aWR0aCgpLHRoaXMuaGVpZ2h0KCkpO3JldHVybiBpLnJvd3MucmVkdWNlKChmdW5jdGlvbihyLG8sYSl7aWYoMCE9PXIubGVuZ3RoKXJldHVybiByO3ZhciBzPWkuZ2V0Um93Qm91bmRzKGEpO3JldHVybiByd3QuTWF0aC53aXRoaW4odCxzKT9vLmNvbHVtbnMucmVkdWNlKChmdW5jdGlvbihyLG8scyl7dmFyIGw9aS5nZXRDb2x1bW5Cb3VuZHMoYSxzKTtpZihyd3QuTWF0aC53aXRoaW4odCxsKSl7dmFyIGM9bi5jb250ZW50KCkuc2VsZWN0QWxsKCIuIitlLkxFR0VORF9ST1dfQ0xBU1MpLm5vZGVzKClbYV0sdT1ReHQuc2VsZWN0KGMpLnNlbGVjdEFsbCgiLiIrZS5MRUdFTkRfRU5UUllfQ0xBU1MpLm5vZGVzKClbTWF0aC5mbG9vcihzLzIpXSxoPVF4dC5zZWxlY3QodSkuc2VsZWN0KCIuIitlLkxFR0VORF9TWU1CT0xfQ0xBU1MpLGQ9cnd0LkRPTS5nZXRUcmFuc2xhdGVWYWx1ZXMoUXh0LnNlbGVjdChjKSkscD1yd3QuRE9NLmdldFRyYW5zbGF0ZVZhbHVlcyhoKTtyZXR1cm5be2JvdW5kczpyd3QuRE9NLmVsZW1lbnRCQm94KFF4dC5zZWxlY3QoYykpLGRhdHVtOm8uZGF0YS5uYW1lLHBvc2l0aW9uOnt4OmRbMF0rcFswXSx5OmRbMV0rcFsxXX0sc2VsZWN0aW9uOlF4dC5zZWxlY3QodSksY29tcG9uZW50Om59XX1yZXR1cm4gcn0pLHIpOnJ9KSxbXSl9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKTt2YXIgbj10aGlzLl9idWlsZExlZ2VuZFRhYmxlKHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpKTt0aGlzLmNvbnRlbnQoKS5zZWxlY3RBbGwoIioiKS5yZW1vdmUoKTt2YXIgaT10aGlzLmNvbnRlbnQoKS5zZWxlY3RBbGwoImcuIitlLkxFR0VORF9ST1dfQ0xBU1MpLmRhdGEobi5yb3dzKSxyPWkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKGUuTEVHRU5EX1JPV19DTEFTUywhMCkubWVyZ2UoaSk7aS5leGl0KCkucmVtb3ZlKCksci5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0LGUpe3ZhciBpPW4uZ2V0Um93Qm91bmRzKGUpO3JldHVybiJ0cmFuc2xhdGUoIitpLnRvcExlZnQueCsiLCAiK2kudG9wTGVmdC55KyIpIn0pKTt2YXIgbz10aGlzO3JldHVybiByLmVhY2goKGZ1bmN0aW9uKHQsaSl7Zm9yKHZhciByPVtdLGE9MDthPHQuY29sdW1ucy5sZW5ndGg7YSs9MilyLnB1c2goW3QuY29sdW1uc1thXSx0LmNvbHVtbnNbYSsxXV0pO3ZhciBzPVF4dC5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLiIrZS5MRUdFTkRfRU5UUllfQ0xBU1MpLmRhdGEociksbD1zLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChlLkxFR0VORF9FTlRSWV9DTEFTUywhMCkubWVyZ2Uocyk7bC5hcHBlbmQoInBhdGgiKS5hdHRyKCJkIiwoZnVuY3Rpb24odCxlKXt2YXIgbj10WzBdO3JldHVybiBvLnN5bWJvbCgpKG4uZGF0YS5uYW1lLGkpKC42Km4uaGVpZ2h0KShudWxsKX0pKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0LGUpe3ZhciByPXRbMF0sbz1uLnJvd3NbaV0uY29sdW1ucy5pbmRleE9mKHIpO3JldHVybiJ0cmFuc2xhdGUoIisobi5nZXRDb2x1bW5Cb3VuZHMoaSxvKS50b3BMZWZ0Lngrci53aWR0aC8yKSsiLCAiK3IuaGVpZ2h0LzIrIikifSkpLmF0dHIoImZpbGwiLChmdW5jdGlvbih0KXtyZXR1cm4gby5fY29sb3JTY2FsZS5zY2FsZSh0WzBdLmRhdGEubmFtZSl9KSkuYXR0cigib3BhY2l0eSIsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG8uc3ltYm9sT3BhY2l0eSgpKHRbMF0uZGF0YS5uYW1lLGkpfSkpLmNsYXNzZWQoZS5MRUdFTkRfU1lNQk9MX0NMQVNTLCEwKSxsLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRleHQtY29udGFpbmVyIiwhMCkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCxlKXt2YXIgcj1uLnJvd3NbaV0uY29sdW1ucy5pbmRleE9mKHRbMV0pO3JldHVybiJ0cmFuc2xhdGUoIituLmdldENvbHVtbkJvdW5kcyhpLHIpLnRvcExlZnQueCsiLCAwKSJ9KSkuZWFjaCgoZnVuY3Rpb24odCxlLG4pe3ZhciBpPVF4dC5zZWxlY3QodGhpcykscj10WzFdO28uX3dyaXRlci53cml0ZShvLl9mb3JtYXR0ZXIoci5kYXRhLm5hbWUpLHIud2lkdGgsby5oZWlnaHQoKSx7eEFsaWduOiJsZWZ0Iix5QWxpZ246InRvcCIsdGV4dFJvdGF0aW9uOjB9LGkubm9kZSgpKX0pKSxzLmV4aXQoKS5yZW1vdmUoKX0pKSx0aGlzfSxlLnByb3RvdHlwZS5zeW1ib2w9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fc3ltYm9sRmFjdG9yeUFjY2Vzc29yOih0aGlzLl9zeW1ib2xGYWN0b3J5QWNjZXNzb3I9dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5zeW1ib2xPcGFjaXR5PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3N5bWJvbE9wYWNpdHlBY2Nlc3NvcjoodGhpcy5fc3ltYm9sT3BhY2l0eUFjY2Vzc29yPSJudW1iZXIiPT10eXBlb2YgdD9mdW5jdGlvbigpe3JldHVybiB0fTp0LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZS5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sZS5MRUdFTkRfUk9XX0NMQVNTPSJsZWdlbmQtcm93IixlLkxFR0VORF9FTlRSWV9DTEFTUz0ibGVnZW5kLWVudHJ5IixlLkxFR0VORF9TWU1CT0xfQ0xBU1M9ImxlZ2VuZC1zeW1ib2wiLGV9KShvd3QuQ29tcG9uZW50KTtWeHQuTGVnZW5kPWx3dDt2YXIgY3d0PXt9LHV3dD17fSxod3Q9e307IShmdW5jdGlvbih0KXt2YXIgZTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLChlPXQuQW5pbWF0b3J8fCh0LkFuaW1hdG9yPXt9KSkuTUFJTj0ibWFpbiIsZS5SRVNFVD0icmVzZXQifSkoaHd0KTt2YXIgZHd0PXt9LHB3dD17fSxmd3Q9e307ZnVuY3Rpb24gbXd0KHQpe3JldHVybiEwPT09KGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG51bGwhPWUmJiJvYmplY3QiPT10eXBlb2YgZSYmITE9PT1BcnJheS5pc0FycmF5KGUpfSkodCkmJiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfXZhciBnd3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShnd3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBfd3Q9Rmd0LHl3dD0wLHZ3dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dm9pZCAwPT09dCYmKHQ9W10pLHZvaWQgMD09PWUmJihlPXt9KSx0aGlzLl91cGRhdGVJZD15d3QrKyx0aGlzLl9kYXRhPXQsdGhpcy5fbWV0YWRhdGE9ZSx0aGlzLl9jYWxsYmFja3M9bmV3IF93dC5DYWxsYmFja1NldH1yZXR1cm4gdC5wcm90b3R5cGUub25VcGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcy5hZGQodCksdGhpc30sdC5wcm90b3R5cGUub2ZmVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LHQucHJvdG90eXBlLmRhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZGF0YToodGhpcy5fZGF0YT10LHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCksdGhpcyl9LHQucHJvdG90eXBlLm1ldGFkYXRhPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX21ldGFkYXRhOih0aGlzLl9tZXRhZGF0YT10LHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCksdGhpcyl9LHQucHJvdG90eXBlLnVwZGF0ZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZUlkfSx0LnByb3RvdHlwZS5fZGlzcGF0Y2hVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVJZD15d3QrKyx0aGlzLl9jYWxsYmFja3MuY2FsbENhbGxiYWNrcyh0aGlzKX0sdH0pKCk7Z3d0LkRhdGFzZXQ9dnd0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqIEBmaWxlb3ZlcnZpZXcgSW1wbGVtZW50cyB0aGUgU2lnbmF0dXJlIEFQSSB0byBoZWxwIGluIGNvbXBhcmluZyB3aGVuIHR3bwogICAgICogUGxvdHRhYmxlIG9iamVjdHMgaGF2ZSAiY2hhbmdlZCIuCiAgICAgKgogICAgICogTWVtb2l6YXRpb24gaW4gUGxvdHRhYmxlIGlzIGNvbXBsaWNhdGVkIGJ5IG11dGFibGUgc2NhbGVzIGFuZCBkYXRhc2V0cy4gV2UgY2Fubm90IHNpbXBseQogICAgICogcmVmZXJlbmNlIGNvbXBhcmUgdHdvIGUuZy4gc2NhbGVzIHNpbmNlIGl0IG1heSBoYXZlIGludGVybmFsbHkgbXV0YXRlZC4gVG8gcmVzb2x2ZSB0aGlzLAogICAgICogd2Ugd3JpdGUgYSByZWN1cnNpdmUgU2lnbmF0dXJlIGludGVyZmFjZSB0aGF0IGhvbGRzIGFuIGltbXV0YWJsZSBzbmFwc2hvdCBvZiB3aGF0ZXZlcgogICAgICogc3RhdGUgdGhlIHNjYWxlL2RhdGEgd2FzIGluIGF0IHRoZSB0aW1lLiBUaGVuIG9uIG1lbW9pemVkIGZ1bmN0aW9uIGludm9jYXRpb24gd2Ugc2lnbiB0aGUKICAgICAqIG5ldyBpbnB1dHMgYW5kIGNvbXBhcmUgdGhlIHNpZ25hdHVyZXMgdG8gZGVjaWRlIGlmIHdlIHNob3VsZCByZWNvbXB1dGUuCiAgICAgKgogICAgICogV2UgbXVzdCBoYW5kLXdyaXRlIGEgc2lnbmF0dXJlIGZvciBlYWNoIGN1c3RvbSBjbGFzcyB3ZSB3aXNoIHRvIHN1cHBvcnQuCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGJ3dD11Tyx4d3Q9Z3d0LHd3dD1odnQ7ZnVuY3Rpb24gU3d0KHQpe3JldHVybiB0IGluc3RhbmNlb2Yga3d0P3Q6dCBpbnN0YW5jZW9mIERhdGU/VHd0KHQudmFsdWVPZigpKTp0IGluc3RhbmNlb2Ygd3d0LlNjYWxlP013dCh0KTp0IGluc3RhbmNlb2YgeHd0LkRhdGFzZXQ/RXd0KHQpOihmdW5jdGlvbiB0KGUpe3ZhciBuLGk7cmV0dXJuITEhPT1td3QoZSkmJiJmdW5jdGlvbiI9PXR5cGVvZihuPWUuY29uc3RydWN0b3IpJiYhMSE9PW13dChpPW4ucHJvdG90eXBlKSYmITEhPT1pLmhhc093blByb3BlcnR5KCJpc1Byb3RvdHlwZU9mIil9KSh0KT9Bd3QodCk6QXJyYXkuaXNBcnJheSh0KT9Dd3QodCk6VHd0KHQpfWZ1bmN0aW9uIE13dCh0KXtyZXR1cm4gQXd0KHtkb21haW46dC5kb21haW4oKSxyYW5nZTp0LnJhbmdlKCksdXBkYXRlSWQ6dC51cGRhdGVJZCgpLHJlZjpUd3QodCl9KX1mdW5jdGlvbiBFd3QodCl7cmV0dXJuIEF3dCh7cmVmOlR3dCh0KSx1cGRhdGVJZDp0LnVwZGF0ZUlkKCl9KX1mdW5jdGlvbiBUd3QodCl7cmV0dXJuIG5ldyBQd3QodCl9ZnVuY3Rpb24gQ3d0KHQpe3JldHVybiBuZXcgTHd0KHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gU3d0KHQpfSkpKX1mdW5jdGlvbiBBd3QodCl7dmFyIGU9e307Zm9yKHZhciBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmKGVbbl09U3d0KHRbbl0pKTtyZXR1cm4gbmV3IE53dChlKX1md3Quc2lnbj1Td3QsZnd0LnNpZ25TY2FsZT1Nd3QsZnd0LnNpZ25EYXRhc2V0PUV3dCxmd3Quc2lnblJlZj1Ud3QsZnd0LnNpZ25BcnJheT1Dd3QsZnd0LnNpZ25PYmo9QXd0O3ZhciBrd3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuaXNEaWZmZXJlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuISh0IGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcil8fHRoaXMuaXNTaWduYXR1cmVEaWZmZXJlbnQodCl9LHR9KSgpO2Z3dC5TaWduYXR1cmU9a3d0O3ZhciBMd3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLmFycmF5PWUsbn1yZXR1cm4gYnd0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmlzU2lnbmF0dXJlRGlmZmVyZW50PWZ1bmN0aW9uKHQpe2lmKHQuYXJyYXkubGVuZ3RoIT09dGhpcy5hcnJheS5sZW5ndGgpcmV0dXJuITA7Zm9yKHZhciBlPTA7ZTx0aGlzLmFycmF5Lmxlbmd0aDtlKyspaWYodGhpcy5hcnJheVtlXS5pc0RpZmZlcmVudCh0LmFycmF5W2VdKSlyZXR1cm4hMDtyZXR1cm4hMX0sZX0pKGt3dCk7Znd0LkFycmF5U2lnbmF0dXJlPUx3dDt2YXIgUHd0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5yZWY9ZSxufXJldHVybiBid3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuaXNTaWduYXR1cmVEaWZmZXJlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmVmIT09dC5yZWZ9LGV9KShrd3QpO2Z3dC5SZWZlcmVuY2VTaWduYXR1cmU9UHd0O3ZhciBOd3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLm9iaj1lLG59cmV0dXJuIGJ3dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5pc1NpZ25hdHVyZURpZmZlcmVudD1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3Qua2V5cyh0aGlzLm9iaiksbj1PYmplY3Qua2V5cyh0Lm9iaik7aWYoZS5sZW5ndGghPT1uLmxlbmd0aClyZXR1cm4hMDtmb3IodmFyIGk9MCxyPWU7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07aWYoIXQub2JqLmhhc093blByb3BlcnR5KG8pKXJldHVybiEwO2lmKHRoaXMub2JqW29dLmlzRGlmZmVyZW50KHQub2JqW29dKSlyZXR1cm4hMH1yZXR1cm4hMX0sZX0pKGt3dCk7Znd0Lk9iamVjdFNpZ25hdHVyZT1Od3QsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICogQGZpbGVvdmVydmlldyBJbXBsZW1lbnRzIGEgZnVuY3Rpb24gbWVtb2l6ZXIgdXNpbmcgdGhlIFNpZ25hdHVyZSBBUEkuCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHB3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEl3dD1md3Q7cHd0Lm1lbW9pemU9ZnVuY3Rpb24gUnd0KHQpe3ZhciBlLG49dm9pZCAwLGk9ITEscj0hMSxvPWZ1bmN0aW9uKCl7Zm9yKHZhciBvPVtdLGE9MDthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKW9bYV09YXJndW1lbnRzW2FdO2lmKGkpcmV0dXJuIGU7dmFyIHM9SXd0LnNpZ25BcnJheShvKTtyZXR1cm4gdm9pZCAwPT09bnx8bi5pc0RpZmZlcmVudChzKT8ociYmY29uc29sZS53YXJuKCJjYWNoZSBtaXNzISBjb21wdXRpbmciKSxuPXMsZT10LmFwcGx5KHRoaXMsbykpOnImJmNvbnNvbGUud2FybigiY2FjaGUgaGl0ISIpLGV9O3JldHVybiBvLmRvTG9ja2VkPWZ1bmN0aW9uKHQpe2lmKGkpdGhyb3cgbmV3IEVycm9yKCJMb2NraW5nIGFuIGFscmVhZHkgbG9ja2VkIG1lbW9pemUgZnVuY3Rpb24hIik7aT0hMDt2YXIgZT10LmFwcGx5KHRoaXMpO3JldHVybiBpPSExLGV9LG8ubG9nUGVyZm9ybWFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSEwKSxyPXQsdGhpc30sb307dmFyIE93dD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoT3d0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgend0PVNlLmV4cG9ydHMsRHd0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLm1hcD1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuZXhpc3RzPU9iamVjdC5jcmVhdGUobnVsbCl9cmV0dXJuIHQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gZGVsZXRlIHRoaXMubWFwW3RdLGRlbGV0ZSB0aGlzLmV4aXN0c1t0XSwhMH0sdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hcFt0XX0sdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiEhdGhpcy5leGlzdHNbdF19LHQucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm1hcFt0XT1lLHRoaXMuZXhpc3RzW3RdPSEwLHRoaXN9LHR9KSgpLEJ3dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5tYXA9bmV3IER3dH1yZXR1cm4gdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hcC5nZXQodFswXSkuZ2V0KHRbMV0pfSx0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFwLmhhcyh0WzBdKSYmdGhpcy5tYXAuZ2V0KHRbMF0pLmhhcyh0WzFdKX0sdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMubWFwLmhhcyh0WzBdKXx8dGhpcy5tYXAuc2V0KHRbMF0sbmV3IER3dCksdGhpcy5tYXAuZ2V0KHRbMF0pLnNldCh0WzFdLGUpLHRoaXN9LHQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXAuaGFzKHRbMF0pJiZ0aGlzLm1hcC5nZXQodFswXSkuZGVsZXRlKHRbMV0pLCEwfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMubWFwPW5ldyBEd3R9LHQucmVzb2x2ZXI9ZnVuY3Rpb24odCxlLG4pe3JldHVybltuLnVwZGF0ZUlkKCksZV19LHR9KSgpO2Z1bmN0aW9uIEh3dCh0KXt2YXIgZT16d3QubWVtb2l6ZSh0LEJ3dC5yZXNvbHZlcik7cmV0dXJuIGUuY2FjaGU9bmV3IEJ3dCxlfU93dC5tZW1vaXplUHJvamVjdG9yPUh3dCxPd3QubWVtb2l6ZVByb2plY3RvcnM9ZnVuY3Rpb24gRnd0KHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihlKXt0W2VdPUh3dCh0W2VdKX0pKSx0fTt2YXIgVnd0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqIEBmaWxlb3ZlcnZpZXcgSW1wbGVtZW50cyBhIGNvbnZlbmllbnQgdGh1bmsgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBjb21tb24gY2FzZQogICAgICogb2YgY3JlYXRpbmcgYSBtZW1vaXplZCBmdW5jdGlvbiB0aGF0IHRha2VzIGl0cyBpbnB1dHMgZnJvbSBtdXRhYmxlIGNsYXNzIHByb3BlcnRpZXMuCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoVnd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgVXd0PWR3dDtWd3QubWVtVGh1bms9ZnVuY3Rpb24gand0KCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPXQuc2xpY2UoMCwtMSksaT10W3QubGVuZ3RoLTFdLHI9VXd0Lm1lbW9pemUoaSksbz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1uLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYXBwbHkodCl9KSk7cmV0dXJuIHIuYXBwbHkodm9pZCAwLGUpfTtyZXR1cm4gb30sKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU87ZS5fX2V4cG9ydFN0YXIocHd0LHQpLGUuX19leHBvcnRTdGFyKE93dCx0KSxlLl9fZXhwb3J0U3RhcihWd3QsdCksdC5zaWduPWZ3dC5zaWdufSkoZHd0KTt2YXIgR3d0PXt9OyEoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT1FZHQsbj0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2RyYXdTdGVwPWV9cmV0dXJuIHQucHJvdG90eXBlLmdldERyYXdTdGVwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RyYXdTdGVwfSx0LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSl7dmFyIG49ZVtlLmxlbmd0aC0xXS5hdHRyVG9BcHBsaWVkUHJvamVjdG9yO3RoaXMuX2NvbnRleHQuc2F2ZSgpLHRoaXMuX2RyYXdTdGVwKHRoaXMuX2NvbnRleHQsdCxuKSx0aGlzLl9jb250ZXh0LnJlc3RvcmUoKX0sdC5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlcz1mdW5jdGlvbigpe3JldHVybltdfSx0LnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt9LHR9KSgpO2Z1bmN0aW9uIGkodCxlLG4saSl7Zm9yKHZhciByPXt9LG89MCxhPWU7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107dC5oYXNPd25Qcm9wZXJ0eShzKSYmKHJbc109dFtzXShuLGkpKX1yZXR1cm4gcn1mdW5jdGlvbiByKHQpe3JldHVybiBudWxsIT10WyJzdHJva2Utd2lkdGgiXT9wYXJzZUZsb2F0KHRbInN0cm9rZS13aWR0aCJdKToxfWZ1bmN0aW9uIG8odCl7dmFyIGU9dFsic3Ryb2tlLWRhc2hhcnJheSJdO2lmKG51bGwhPWUpdHJ5e3JldHVybiBlLnNwbGl0KC9bICxdKy8pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlSW50KHQsMTApfSkpfWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJnZXRTdHJva2VEYXNoQXJyYXkgZmFpbGVkIHdpdGg6ICIrdCksW119cmV0dXJuW119ZnVuY3Rpb24gYSh0LG4pe2lmKG4uc3Ryb2tlKXt0LmxpbmVXaWR0aD1yKG4pO3ZhciBpPWUuY29sb3Iobi5zdHJva2UpLGE9byhuKTt0LnNldExpbmVEYXNoKGEpLGkub3BhY2l0eSo9KGZ1bmN0aW9uIHModCl7dmFyIGU9bnVsbCE9dC5vcGFjaXR5P3BhcnNlRmxvYXQodC5vcGFjaXR5KToxO3JldHVybihudWxsIT10WyJzdHJva2Utb3BhY2l0eSJdP3BhcnNlRmxvYXQodFsic3Ryb2tlLW9wYWNpdHkiXSk6MSkqZX0pKG4pLHQuc3Ryb2tlU3R5bGU9aS50b1N0cmluZygpLHQuc3Ryb2tlKCl9aWYobi5maWxsKXt2YXIgbD1lLmNvbG9yKG4uZmlsbCk7bC5vcGFjaXR5Kj0oZnVuY3Rpb24gYyh0KXt2YXIgZT1udWxsIT10Lm9wYWNpdHk/cGFyc2VGbG9hdCh0Lm9wYWNpdHkpOjE7cmV0dXJuKG51bGwhPXRbImZpbGwtb3BhY2l0eSJdP3BhcnNlRmxvYXQodFsiZmlsbC1vcGFjaXR5Il0pOjEpKmV9KShuKSx0LmZpbGxTdHlsZT1sLnRvU3RyaW5nKCksdC5maWxsKCl9fXQuQ2FudmFzRHJhd2VyPW4sdC5Db250ZXh0U3R5bGVBdHRycz1bImZpbGwtb3BhY2l0eSIsImZpbGwiLCJvcGFjaXR5Iiwic3Ryb2tlLW9wYWNpdHkiLCJzdHJva2Utd2lkdGgiLCJzdHJva2UiLCJzdHJva2UtZGFzaGFycmF5Il0sdC5yZXNvbHZlQXR0cmlidXRlc1N1YnNldFdpdGhTdHlsZXM9ZnVuY3Rpb24gcyhlLG4scixvKXtyZXR1cm4gaShlLHQuQ29udGV4dFN0eWxlQXR0cnMuY29uY2F0KG4pLHIsbyl9LHQucmVzb2x2ZUF0dHJpYnV0ZXM9aSx0LmdldFN0cm9rZVdpZHRoPXIsdC5nZXRTdHJva2VEYXNoQXJyYXk9byx0LnJlbmRlckFyZWE9ZnVuY3Rpb24gbCh0LGUsbixpKXt0LnNhdmUoKSx0LmJlZ2luUGF0aCgpLGUuY29udGV4dCh0KSxlKG4pLHQubGluZUpvaW49InJvdW5kIixhKHQsaSksdC5yZXN0b3JlKCl9LHQucmVuZGVyTGluZT1mdW5jdGlvbiBjKHQsZSxuLGkpe3Quc2F2ZSgpLHQuYmVnaW5QYXRoKCksZS5jb250ZXh0KHQpLGUobiksdC5saW5lSm9pbj0icm91bmQiLGEodCxpKSx0LnJlc3RvcmUoKX0sdC5yZW5kZXJQYXRoV2l0aFN0eWxlPWF9KShHd3QpO3ZhciBXd3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFd3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHF3dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fc3ZnRHJhd2VyRmFjdG9yeT10LHRoaXMuX2NhbnZhc0RyYXdlckZhY3Rvcnk9ZX1yZXR1cm4gdC5wcm90b3R5cGUudXNlU1ZHPWZ1bmN0aW9uKHQpe251bGwhPXRoaXMuX2N1cnJlbnREcmF3ZXImJnRoaXMuX2N1cnJlbnREcmF3ZXIucmVtb3ZlKCk7dmFyIGU9dGhpcy5fc3ZnRHJhd2VyRmFjdG9yeSgpO2UuYXR0YWNoVG8odCksdGhpcy5fY3VycmVudERyYXdlcj1lfSx0LnByb3RvdHlwZS51c2VDYW52YXM9ZnVuY3Rpb24odCl7bnVsbCE9dGhpcy5fY3VycmVudERyYXdlciYmdGhpcy5fY3VycmVudERyYXdlci5yZW1vdmUoKSx0aGlzLl9jdXJyZW50RHJhd2VyPXRoaXMuX2NhbnZhc0RyYXdlckZhY3RvcnkodC5ub2RlKCkuZ2V0Q29udGV4dCgiMmQiKSl9LHQucHJvdG90eXBlLmdldERyYXdlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJyZW50RHJhd2VyfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXtudWxsIT10aGlzLl9jdXJyZW50RHJhd2VyJiZ0aGlzLl9jdXJyZW50RHJhd2VyLnJlbW92ZSgpfSx0LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSl7dGhpcy5fY3VycmVudERyYXdlci5kcmF3KHQsZSl9LHQucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudERyYXdlci5nZXRWaXN1YWxQcmltaXRpdmVzKCl9LHQucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZUF0SW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2N1cnJlbnREcmF3ZXIuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleCh0KX0sdH0pKCk7V3d0LlByb3h5RHJhd2VyPXF3dDt2YXIgWXd0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShZd3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBYd3Q9RWR0LCR3dD1GZ3QsS3d0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt0aGlzLl9yb290PVh3dC5zZWxlY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSksdGhpcy5fY2xhc3NOYW1lPWUsdGhpcy5fc3ZnRWxlbWVudE5hbWU9dH1yZXR1cm4gdC5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5fY3JlYXRlQW5kRGVzdHJveURPTUVsZW1lbnRzKHQpO2Zvcih2YXIgaT0wLHI9ZS5sZW5ndGgsbz1mdW5jdGlvbihyKXt2YXIgbz1lW3JdOyR3dC5XaW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gbi5fZHJhd1N0ZXAobyl9KSxpKSxpKz1vLmFuaW1hdG9yLnRvdGFsVGltZSh0Lmxlbmd0aCl9LGE9MDthPHI7YSsrKW8oYSl9LHQucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09dGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVzJiYodGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVzPXRoaXMuX3NlbGVjdGlvbi5ub2RlcygpKSx0aGlzLl9jYWNoZWRWaXN1YWxQcmltaXRpdmVzTm9kZXN9LHQucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZUF0SW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXRoaXMuX2NhY2hlZFZpc3VhbFByaW1pdGl2ZXNOb2RlTWFwP251bGw6dGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVNYXAuZ2V0KHQpfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLl9yb290LnJlbW92ZSgpfSx0LnByb3RvdHlwZS5hdHRhY2hUbz1mdW5jdGlvbih0KXt0Lm5vZGUoKS5hcHBlbmRDaGlsZCh0aGlzLl9yb290Lm5vZGUoKSl9LHQucHJvdG90eXBlLmdldFJvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdH0sdC5wcm90b3R5cGUuc2VsZWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3ZnRWxlbWVudE5hbWV9LHQucHJvdG90eXBlLl9hcHBseURlZmF1bHRBdHRyaWJ1dGVzPWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUuX2NyZWF0ZUFuZERlc3Ryb3lET01FbGVtZW50cz1mdW5jdGlvbih0KXt2YXIgZT10Lm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbCE9dD97ZDp0LGk6ZX06bnVsbH0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10fSkpLG49dGhpcy5fcm9vdC5zZWxlY3RBbGwodGhpcy5zZWxlY3RvcigpKS5kYXRhKGUpO3RoaXMuX3NlbGVjdGlvbj1uLmVudGVyKCkuYXBwZW5kKHRoaXMuX3N2Z0VsZW1lbnROYW1lKS5tZXJnZShuKSxuLmV4aXQoKS5yZW1vdmUoKTt2YXIgaT1uZXcgJHd0Lk1hcDt0aGlzLl9zZWxlY3Rpb24uZWFjaCgoZnVuY3Rpb24odCl7aS5zZXQodC5pLHRoaXMpfSkpLHRoaXMuX2NhY2hlZFZpc3VhbFByaW1pdGl2ZXNOb2RlTWFwPWksdGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVzPW51bGwsdGhpcy5fc2VsZWN0aW9uLmRhdGEodGhpcy5fc2VsZWN0aW9uLmRhdGEoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmR9KSkpLG51bGwhPXRoaXMuX2NsYXNzTmFtZSYmdGhpcy5fc2VsZWN0aW9uLmNsYXNzZWQodGhpcy5fY2xhc3NOYW1lLCEwKSx0aGlzLl9hcHBseURlZmF1bHRBdHRyaWJ1dGVzKHRoaXMuX3NlbGVjdGlvbil9LHQucHJvdG90eXBlLl9kcmF3U3RlcD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO1siZmlsbCIsInN0cm9rZSJdLmZvckVhY2goKGZ1bmN0aW9uKG4pe251bGwhPXQuYXR0clRvQXBwbGllZFByb2plY3RvcltuXSYmZS5fc2VsZWN0aW9uLmF0dHIobix0LmF0dHJUb0FwcGxpZWRQcm9qZWN0b3Jbbl0pfSkpLHQuYW5pbWF0b3IuYW5pbWF0ZSh0aGlzLl9zZWxlY3Rpb24sdC5hdHRyVG9BcHBsaWVkUHJvamVjdG9yKSxudWxsIT10aGlzLl9jbGFzc05hbWUmJnRoaXMuX3NlbGVjdGlvbi5jbGFzc2VkKHRoaXMuX2NsYXNzTmFtZSwhMCl9LHR9KSgpO1l3dC5TVkdEcmF3ZXI9S3d0O3ZhciBad3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTctcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFp3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEp3dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ9dGhpczt0aGlzLnNjYWxlPTAsdGhpcy50cmFuc2xhdGU9MCx0aGlzLmNhY2hlZERvbWFpbj1bbnVsbCxudWxsXSx0aGlzLmxhc3RTZWVuRG9tYWluPVtudWxsLG51bGxdLHRoaXMudXBkYXRlRG9tYWluPWZ1bmN0aW9uKGUpe3QubGFzdFNlZW5Eb21haW49ZS5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpO3ZhciBuPWUuc2NhbGVUcmFuc2Zvcm1hdGlvbih0LmNhY2hlZERvbWFpblsxXSktZS5zY2FsZVRyYW5zZm9ybWF0aW9uKHQuY2FjaGVkRG9tYWluWzBdKSxpPWUuc2NhbGVUcmFuc2Zvcm1hdGlvbih0Lmxhc3RTZWVuRG9tYWluWzFdKS1lLnNjYWxlVHJhbnNmb3JtYXRpb24odC5sYXN0U2VlbkRvbWFpblswXSk7dC5zY2FsZT1uL2l8fDEsdC50cmFuc2xhdGU9ZS5zY2FsZVRyYW5zZm9ybWF0aW9uKHQuY2FjaGVkRG9tYWluWzBdKS1lLnNjYWxlVHJhbnNmb3JtYXRpb24odC5sYXN0U2VlbkRvbWFpblswXSkqdC5zY2FsZXx8MH19cmV0dXJuIHQucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5zY2FsZT0xLHRoaXMudHJhbnNsYXRlPTAsdGhpcy5jYWNoZWREb21haW49dGhpcy5sYXN0U2VlbkRvbWFpbn0sdC5wcm90b3R5cGUuc2V0RG9tYWluPWZ1bmN0aW9uKHQpe3RoaXMuY2FjaGVkRG9tYWluPXQuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4oKX0sdH0pKCksUXd0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXt2YXIgaT10aGlzO3RoaXMucmVuZGVyQ2FsbGJhY2s9ZSx0aGlzLmFwcGx5VHJhbnNmb3JtQ2FsbGJhY2s9bix0aGlzLmRvbWFpblRyYW5zZm9ybVg9bmV3IEp3dCx0aGlzLmRvbWFpblRyYW5zZm9ybVk9bmV3IEp3dCx0aGlzLnJlbmRlckRlZmVycmVkPWZ1bmN0aW9uKCl7aS5hcHBseVRyYW5zZm9ybSgpLGNsZWFyVGltZW91dChpLnRpbWVvdXRUb2tlbiksaS50aW1lb3V0VG9rZW49c2V0VGltZW91dCgoZnVuY3Rpb24oKXtpLnJlbmRlckNhbGxiYWNrKCl9KSx0LkRFRkVSUkVEX1JFTkRFUklOR19ERUxBWSl9fXJldHVybiB0LnByb3RvdHlwZS5zZXREb21haW5zPWZ1bmN0aW9uKHQsZSl7dCYmdGhpcy5kb21haW5UcmFuc2Zvcm1YLnNldERvbWFpbih0KSxlJiZ0aGlzLmRvbWFpblRyYW5zZm9ybVkuc2V0RG9tYWluKGUpLHRoaXMucmVuZGVyRGVmZXJyZWQoKX0sdC5wcm90b3R5cGUudXBkYXRlRG9tYWlucz1mdW5jdGlvbih0LGUpe3QmJnRoaXMuZG9tYWluVHJhbnNmb3JtWC51cGRhdGVEb21haW4odCksZSYmdGhpcy5kb21haW5UcmFuc2Zvcm1ZLnVwZGF0ZURvbWFpbihlKSx0aGlzLnJlbmRlckRlZmVycmVkKCl9LHQucHJvdG90eXBlLnJlc2V0VHJhbnNmb3Jtcz1mdW5jdGlvbigpe3RoaXMuZG9tYWluVHJhbnNmb3JtWC5yZXNldCgpLHRoaXMuZG9tYWluVHJhbnNmb3JtWS5yZXNldCgpLHRoaXMuYXBwbHlUcmFuc2Zvcm0oKX0sdC5wcm90b3R5cGUuYXBwbHlUcmFuc2Zvcm09ZnVuY3Rpb24oKXt0aGlzLmFwcGx5VHJhbnNmb3JtQ2FsbGJhY2sodGhpcy5kb21haW5UcmFuc2Zvcm1YLnRyYW5zbGF0ZSx0aGlzLmRvbWFpblRyYW5zZm9ybVkudHJhbnNsYXRlLHRoaXMuZG9tYWluVHJhbnNmb3JtWC5zY2FsZSx0aGlzLmRvbWFpblRyYW5zZm9ybVkuc2NhbGUpfSx0LkRFRkVSUkVEX1JFTkRFUklOR19ERUxBWT0yMDAsdH0pKCk7Wnd0LkRlZmVycmVkUmVuZGVyZXI9UXd0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodXd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdFN0PXVPLGVTdD1FZHQsblN0PV9tdCxpU3Q9Rmd0LHJTdD1od3Qsb1N0PWR3dCxhU3Q9Qmd0LHNTdD1Hd3QsbFN0PVd3dCxjU3Q9WXd0LHVTdD1ibXQsaFN0PVp3dDt1d3QuUmVuZGVyZXI9U210Lm1ha2VFbnVtKFsic3ZnIiwiY2FudmFzIl0pO3ZhciBkU3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7bi5fZGF0YUNoYW5nZWQ9ITEsbi5fYXR0ckV4dGVudHM9e30sbi5fYW5pbWF0ZT0hMSxuLl9hbmltYXRvcnM9e30sbi5fcHJvcGVydHlFeHRlbnRzPXt9LG4uX3Jlc2V0RW50aXR5U3RvcmU9ZnVuY3Rpb24oKXtuLl9jYWNoZWRFbnRpdHlTdG9yZT12b2lkIDB9LG4uX292ZXJmbG93SGlkZGVuPSEwLG4uYWRkQ2xhc3MoInBsb3QiKSxuLl9kYXRhc2V0VG9EcmF3ZXI9bmV3IGlTdC5NYXAsbi5fYXR0ckJpbmRpbmdzPWVTdC5tYXAoKSxuLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uX2luY2x1ZGVkVmFsdWVzRm9yU2NhbGUodCxlKX0sbi5fcmVuZGVyQ2FsbGJhY2s9ZnVuY3Rpb24oKXtyZXR1cm4gbi5yZW5kZXIoKX0sbi5fb25EYXRhc2V0VXBkYXRlQ2FsbGJhY2s9ZnVuY3Rpb24oKXtyZXR1cm4gbi5fb25EYXRhc2V0VXBkYXRlKCl9LG4uX3Byb3BlcnR5QmluZGluZ3M9ZVN0Lm1hcCgpO3ZhciBpPShuZXcgblN0LkVhc2luZykubWF4VG90YWxEdXJhdGlvbihlLl9BTklNQVRJT05fTUFYX0RVUkFUSU9OKTtyZXR1cm4gbi5hbmltYXRvcihyU3QuQW5pbWF0b3IuTUFJTixpKSxuLmFuaW1hdG9yKHJTdC5BbmltYXRvci5SRVNFVCxuZXcgblN0Lk51bGwpLG4uX2RlZmVycmVkUmVzZXRFbnRpdHlTdG9yZT1pU3QuV2luZG93LmRlYm91bmNlKGhTdC5EZWZlcnJlZFJlbmRlcmVyLkRFRkVSUkVEX1JFTkRFUklOR19ERUxBWSxuLl9yZXNldEVudGl0eVN0b3JlKSxufXJldHVybiB0U3QuX19leHRlbmRzKGUsdCksZS5nZXRUb3RhbERyYXdUaW1lPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLG4pe3JldHVybiBlK24uYW5pbWF0b3IudG90YWxUaW1lKHQubGVuZ3RoKX0pLDApfSxlLmFwcGx5RHJhd1N0ZXBzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXt2YXIgbj10LmF0dHJUb1Byb2plY3RvcixpPXt9O3JldHVybiBPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbih0KXtpW3RdPWZ1bmN0aW9uKGkscil7cmV0dXJuIG5bdF0oaSxyLGUpfX0pKSx7YXR0clRvQXBwbGllZFByb2plY3RvcjppLGFuaW1hdG9yOnQuYW5pbWF0b3J9fSkpfSxlLnByb3RvdHlwZS5hbmNob3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9dVN0LmNvZXJjZUV4dGVybmFsRDMoZSksdC5wcm90b3R5cGUuYW5jaG9yLmNhbGwodGhpcyxlKSx0aGlzLl9kYXRhQ2hhbmdlZD0hMCx0aGlzLl9yZXNldEVudGl0eVN0b3JlKCksdGhpcy5fdXBkYXRlRXh0ZW50cygpLHRoaXN9LGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5faXNTZXR1cHx8KHQucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLG51bGwhPXRoaXMuX2NhbnZhcyYmdGhpcy5fYXBwZW5kQ2FudmFzTm9kZSgpLHRoaXMuX3JlbmRlckFyZWE9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCgicmVuZGVyLWFyZWEiLCEwKSx0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldCh0KX0pKSl9LGUucHJvdG90eXBlLl9hcHBlbmRDYW52YXNOb2RlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50KCkuc2VsZWN0KCIucGxvdC1jYW52YXMtY29udGFpbmVyIik7dC5lbXB0eSgpJiYodD10aGlzLmVsZW1lbnQoKS5hcHBlbmQoImRpdiIpLmNsYXNzZWQoInBsb3QtY2FudmFzLWNvbnRhaW5lciIsITApKS5ub2RlKCkuYXBwZW5kQ2hpbGQodGhpcy5fY2FudmFzLm5vZGUoKSl9LGUucHJvdG90eXBlLnNldEJvdW5kcz1mdW5jdGlvbihlLG4saSxyKXtpZih0LnByb3RvdHlwZS5zZXRCb3VuZHMuY2FsbCh0aGlzLGUsbixpLHIpLHRoaXMuX3VwZGF0ZUV4dGVudHMoKSxudWxsIT10aGlzLl9jYW52YXMpe2lmKHRoaXMuX2J1ZmZlckNhbnZhcyYmIXRoaXMuX2J1ZmZlckNhbnZhc1ZhbGlkKXt0aGlzLl9idWZmZXJDYW52YXMuYXR0cigid2lkdGgiLHRoaXMuX2NhbnZhcy5hdHRyKCJ3aWR0aCIpKSx0aGlzLl9idWZmZXJDYW52YXMuYXR0cigiaGVpZ2h0Iix0aGlzLl9jYW52YXMuYXR0cigiaGVpZ2h0IikpO3ZhciBvPXRoaXMuX2J1ZmZlckNhbnZhcy5ub2RlKCkuZ2V0Q29udGV4dCgiMmQiKTtpZihvKXt2YXIgYT10aGlzLl9jYW52YXMubm9kZSgpO2Eud2lkdGg+MCYmYS5oZWlnaHQ+MD9vLmNhbnZhcy53aWR0aD4wJiZvLmNhbnZhcy5oZWlnaHQ+MCYmby5kcmF3SW1hZ2UoYSwwLDApOmNvbnNvbGUud2FybigiRmFpbGVkIHRvIGZpbGwgYnVmZmVyIGNhbnZhcyB3aXRoIHdpdGggMHgwIGNhbnZhcyIpfXRoaXMuX2J1ZmZlckNhbnZhc1ZhbGlkPSEwfXZhciBzPW51bGwhPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvP3dpbmRvdy5kZXZpY2VQaXhlbFJhdGlvOjE7dGhpcy5fY2FudmFzLmF0dHIoIndpZHRoIixlKnMpLHRoaXMuX2NhbnZhcy5hdHRyKCJoZWlnaHQiLG4qcyk7dmFyIGw9dGhpcy5fY2FudmFzLm5vZGUoKS5nZXRDb250ZXh0KCIyZCIpO2lmKGwmJihsLnNldFRyYW5zZm9ybShzLDAsMCxzLDAsMCksdGhpcy5fYnVmZmVyQ2FudmFzKSl7dmFyIGM9dGhpcy5fYnVmZmVyQ2FudmFzLm5vZGUoKTtjLndpZHRoPjAmJmMuaGVpZ2h0PjA/bC5jYW52YXMud2lkdGg+MCYmbC5jYW52YXMuaGVpZ2h0PjAmJmwuZHJhd0ltYWdlKGMsMCwwLGUsbik6Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZmlsbCBjYW52YXMgd2l0aCAweDAgYnVmZmVyIGNhbnZhcyIpfX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMuX3NjYWxlcygpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm9mZlVwZGF0ZShlLl9yZW5kZXJDYWxsYmFjayl9KSksdGhpcy5kYXRhc2V0cyhbXSl9LGUucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZGF0YXNldFRvRHJhd2VyLmdldCh0KTtyZXR1cm4ic3ZnIj09PXRoaXMucmVuZGVyZXIoKT9lLnVzZVNWRyh0aGlzLl9yZW5kZXJBcmVhKTplLnVzZUNhbnZhcyh0aGlzLl9jYW52YXMpLGV9LGUucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBsU3QuUHJveHlEcmF3ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBjU3QuU1ZHRHJhd2VyKCJwYXRoIiwiIil9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBzU3QuQ2FudmFzRHJhd2VyKHQsKGZ1bmN0aW9uKCl7fSkpfSkpfSxlLnByb3RvdHlwZS5fZ2V0QW5pbWF0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FuaW1hdGVPbk5leHRSZW5kZXIoKSYmdGhpcy5fYW5pbWF0b3JzW3RdfHxuZXcgblN0Lk51bGx9LGUucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVFeHRlbnRzKCksdGhpcy5fZGF0YUNoYW5nZWQ9ITAsdGhpcy5fcmVzZXRFbnRpdHlTdG9yZSgpLHRoaXMucmVuZGVyTG93UHJpb3JpdHkoKX0sZS5wcm90b3R5cGUuYXR0cj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG51bGw9PWU/dGhpcy5fYXR0ckJpbmRpbmdzLmdldCh0KToodGhpcy5fYmluZEF0dHIodCxlLG4pLHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLl9iaW5kUHJvcGVydHk9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQodCksbz1udWxsIT1yP3Iuc2NhbGU6bnVsbDt0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLnNldCh0LHthY2Nlc3NvcjoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOmZ1bmN0aW9uKCl7cmV0dXJuIGV9LHNjYWxlOm4scG9zdFNjYWxlOml9KSxudWxsIT1vJiZ0aGlzLl91bmluc3RhbGxTY2FsZUZvcktleShvLHQpLG51bGwhPW4mJnRoaXMuX2luc3RhbGxTY2FsZUZvcktleShuLHQpLHRoaXMuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGUoKX0sZS5wcm90b3R5cGUuX2JpbmRBdHRyPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9hdHRyQmluZGluZ3MuZ2V0KHQpLHI9bnVsbCE9aT9pLnNjYWxlOm51bGw7dGhpcy5fYXR0ckJpbmRpbmdzLnNldCh0LHthY2Nlc3NvcjoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOmZ1bmN0aW9uKCl7cmV0dXJuIGV9LHNjYWxlOm59KSxudWxsIT1yJiZ0aGlzLl91bmluc3RhbGxTY2FsZUZvcktleShyLHQpLG51bGwhPW4mJnRoaXMuX2luc3RhbGxTY2FsZUZvcktleShuLHQpLHRoaXMuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGUoKX0sZS5wcm90b3R5cGUuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGU9ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5fY2FjaGVkQXR0clRvUHJvamVjdG9yfSxlLnByb3RvdHlwZS5fZ2V0QXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7aWYobnVsbD09dGhpcy5fY2FjaGVkQXR0clRvUHJvamVjdG9yKXt2YXIgdD10aGlzLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3RvcigpO2UuT1BUSU1JWkVfTUVNT0laRV9QUk9KRUNUT1JTJiYodD1vU3QubWVtb2l6ZVByb2plY3RvcnModCkpLHRoaXMuX2NhY2hlZEF0dHJUb1Byb2plY3Rvcj10fXJldHVybiBpU3QuYXNzaWduKHt9LHRoaXMuX2NhY2hlZEF0dHJUb1Byb2plY3Rvcil9LGUucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvcj1mdW5jdGlvbigpe3ZhciB0PXt9O3RoaXMuX2F0dHJCaW5kaW5ncy5lYWNoKChmdW5jdGlvbihuLGkpe3RbaV09ZS5fc2NhbGVkQWNjZXNzb3Iobil9KSk7dmFyIG49dGhpcy5fcHJvcGVydHlQcm9qZWN0b3JzKCk7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKGUpe251bGw9PXRbZV0mJih0W2VdPW5bZV0pfSkpLHR9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5faXNBbmNob3JlZCYmKHRoaXMuX3BhaW50KCksdGhpcy5fZGF0YUNoYW5nZWQ9ITEpLHRoaXN9LGUucHJvdG90eXBlLnJlbmRlckxvd1ByaW9yaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbmRlckNhbGxiYWNrKCksdGhpc30sZS5wcm90b3R5cGUuYW5pbWF0ZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYW5pbWF0ZToodGhpcy5fYW5pbWF0ZT10LHRoaXMpfSxlLnByb3RvdHlwZS5kZXRhY2g9ZnVuY3Rpb24oKXtyZXR1cm4gdC5wcm90b3R5cGUuZGV0YWNoLmNhbGwodGhpcyksdGhpcy5fdXBkYXRlRXh0ZW50cygpLHRoaXN9LGUucHJvdG90eXBlLl9zY2FsZXM9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5fYXR0ckJpbmRpbmdzLmVhY2goKGZ1bmN0aW9uKGUsbil7dmFyIGk9ZS5zY2FsZTtudWxsIT1pJiYtMT09PXQuaW5kZXhPZihpKSYmdC5wdXNoKGkpfSkpLHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZWFjaCgoZnVuY3Rpb24oZSxuKXt2YXIgaT1lLnNjYWxlO251bGwhPWkmJi0xPT09dC5pbmRleE9mKGkpJiZ0LnB1c2goaSl9KSksdH0sZS5wcm90b3R5cGUuX3VwZGF0ZUV4dGVudHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX3Jlc2V0RW50aXR5U3RvcmUoKSx0aGlzLl9zY2FsZXMoKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5hZGRJbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKHQuX2luY2x1ZGVkVmFsdWVzUHJvdmlkZXIpfSkpfSxlLnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHk9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLmdldEV4dGVudHNGb3JBdHRyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYobnVsbD09dGhpcy5fYXR0ckV4dGVudHNbdF0pe3ZhciBuPW9TdC5tZW1UaHVuaygoZnVuY3Rpb24oKXtyZXR1cm4gZS5kYXRhc2V0cygpfSksKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2F0dHJCaW5kaW5ncy5nZXQodCl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09ZXx8bnVsbD09ZS5hY2Nlc3Nvcj9udWxsOnQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcFN0KHQsZSxudWxsKX0pKX0pKTt0aGlzLl9hdHRyRXh0ZW50c1t0XT1ufXJldHVybiB0aGlzLl9hdHRyRXh0ZW50c1t0XSgpfSxlLnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsPT10aGlzLl9wcm9wZXJ0eUV4dGVudHNbdF0pe3ZhciBuPW9TdC5tZW1UaHVuaygoZnVuY3Rpb24oKXtyZXR1cm4gZS5kYXRhc2V0cygpfSksKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KHQpfSksKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2ZpbHRlckZvclByb3BlcnR5KHQpfSksKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbnVsbD09ZXx8bnVsbD09ZS5hY2Nlc3Nvcj9udWxsOnQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcFN0KHQsZSxuKX0pKX0pKTt0aGlzLl9wcm9wZXJ0eUV4dGVudHNbdF09bn1yZXR1cm4gdGhpcy5fcHJvcGVydHlFeHRlbnRzW3RdKCl9LGUucHJvdG90eXBlLl9pbmNsdWRlZFZhbHVlc0ZvclNjYWxlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpZighdGhpcy5faXNBbmNob3JlZCYmIWUpcmV0dXJuW107dmFyIGk9W107cmV0dXJuIHRoaXMuX2F0dHJCaW5kaW5ncy5lYWNoKChmdW5jdGlvbihlLHIpe2lmKGUuc2NhbGU9PT10KXt2YXIgbz1uLmdldEV4dGVudHNGb3JBdHRyKHIpO251bGwhPW8mJihpPWkuY29uY2F0KGVTdC5tZXJnZShvKSkpfX0pKSx0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmVhY2goKGZ1bmN0aW9uKGUscil7aWYoZS5zY2FsZT09PXQpe3ZhciBvPW4uZ2V0RXh0ZW50c0ZvclByb3BlcnR5KHIpO251bGwhPW8mJihpPWkuY29uY2F0KGVTdC5tZXJnZShvKSkpfX0pKSxpfSxlLnByb3RvdHlwZS5hbmltYXRvcj1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lP3RoaXMuX2FuaW1hdG9yc1t0XToodGhpcy5fYW5pbWF0b3JzW3RdPWUsdGhpcyl9LGUucHJvdG90eXBlLnJlbmRlcmVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHZvaWQgMD09PXQ/bnVsbD09dGhpcy5fY2FudmFzPyJzdmciOiJjYW52YXMiOihudWxsPT10aGlzLl9jYW52YXMmJiJjYW52YXMiPT09dD8odGhpcy5fY2FudmFzPWVTdC5zZWxlY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpLmNsYXNzZWQoInBsb3QtY2FudmFzIiwhMCksdGhpcy5fYnVmZmVyQ2FudmFzPWVTdC5zZWxlY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpLG51bGwhPXRoaXMuZWxlbWVudCgpJiZ0aGlzLl9hcHBlbmRDYW52YXNOb2RlKCksdGhpcy5fZGF0YXNldFRvRHJhd2VyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QudXNlQ2FudmFzKGUuX2NhbnZhcyl9KSksdGhpcy5yZW5kZXIoKSk6bnVsbCE9dGhpcy5fY2FudmFzJiYic3ZnIj09dCYmKHRoaXMuX2NhbnZhcy5yZW1vdmUoKSx0aGlzLl9jYW52YXM9bnVsbCx0aGlzLl9idWZmZXJDYW52YXM9bnVsbCx0aGlzLl9kYXRhc2V0VG9EcmF3ZXIuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC51c2VTVkcoZS5fcmVuZGVyQXJlYSl9KSksdGhpcy5yZW5kZXIoKSksdGhpcyl9LGUucHJvdG90eXBlLmFkZERhdGFzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FkZERhdGFzZXQodCksdGhpcy5fb25EYXRhc2V0VXBkYXRlKCksdGhpc30sZS5wcm90b3R5cGUuX2FkZERhdGFzZXQ9ZnVuY3Rpb24odCl7dGhpcy5fcmVtb3ZlRGF0YXNldCh0KTt2YXIgZT10aGlzLl9jcmVhdGVEcmF3ZXIodCk7cmV0dXJuIHRoaXMuX2RhdGFzZXRUb0RyYXdlci5zZXQodCxlKSx0aGlzLl9pc1NldHVwJiZ0aGlzLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQodCksdC5vblVwZGF0ZSh0aGlzLl9vbkRhdGFzZXRVcGRhdGVDYWxsYmFjayksdGhpc30sZS5wcm90b3R5cGUucmVtb3ZlRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlRGF0YXNldCh0KSx0aGlzLl9vbkRhdGFzZXRVcGRhdGUoKSx0aGlzfSxlLnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4tMT09PXRoaXMuZGF0YXNldHMoKS5pbmRleE9mKHQpfHwodGhpcy5fcmVtb3ZlRGF0YXNldE5vZGVzKHQpLHQub2ZmVXBkYXRlKHRoaXMuX29uRGF0YXNldFVwZGF0ZUNhbGxiYWNrKSx0aGlzLl9kYXRhc2V0VG9EcmF3ZXIuZGVsZXRlKHQpKSx0aGlzfSxlLnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldE5vZGVzPWZ1bmN0aW9uKHQpe3RoaXMuX2RhdGFzZXRUb0RyYXdlci5nZXQodCkucmVtb3ZlKCl9LGUucHJvdG90eXBlLmRhdGFzZXRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1bXTtyZXR1cm4gdGhpcy5fZGF0YXNldFRvRHJhd2VyLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4ucHVzaChlKX0pKSxudWxsPT10P246KG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX3JlbW92ZURhdGFzZXQodCl9KSksdC5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fYWRkRGF0YXNldCh0KX0pKSx0aGlzLl9vbkRhdGFzZXRVcGRhdGUoKSx0aGlzKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7cmV0dXJuW3thdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6bmV3IG5TdC5OdWxsfV19LGUucHJvdG90eXBlLl9hZGRpdGlvbmFsUGFpbnQ9ZnVuY3Rpb24odCl7fSxlLnByb3RvdHlwZS5fYnVpbGRMaWdodHdlaWdodFBsb3RFbnRpdGllcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXtmb3IodmFyIHI9ZS5fZGF0YXNldFRvRHJhd2VyLmdldCh0KSxvPTAsYT10LmRhdGEoKSxzPWEubGVuZ3RoLGw9ZnVuY3Rpb24ocyl7dmFyIGw9YVtzXSxjPWUuX3BpeGVsUG9pbnQobCxzLHQpO2lmKGlTdC5NYXRoLmlzTmFOKGMueCl8fGlTdC5NYXRoLmlzTmFOKGMueSkpcmV0dXJuImNvbnRpbnVlIjt2YXIgdT1lO24ucHVzaCh7ZGF0dW06bCxnZXQgcG9zaXRpb24oKXtyZXR1cm4gdS5fcGl4ZWxQb2ludC5jYWxsKHUsbCxzLHQpfSxpbmRleDpzLGRhdGFzZXQ6dCxkYXRhc2V0SW5kZXg6aSxjb21wb25lbnQ6ZSxkcmF3ZXI6cix2YWxpZERhdHVtSW5kZXg6b30pLG8rK30sYz0wO2M8cztjKyspbChjKX0pKSxufSxlLnByb3RvdHlwZS5fZ2V0RGF0YVRvRHJhdz1mdW5jdGlvbigpe3ZhciB0PW5ldyBpU3QuTWFwO3JldHVybiB0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2V0KGUsZS5kYXRhKCkpfSkpLHR9LGUucHJvdG90eXBlLl9wYWludD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7ZGVsZXRlIHRoaXMuX2NhY2hlZEF0dHJUb1Byb2plY3Rvcjt2YXIgbj10aGlzLl9nZW5lcmF0ZURyYXdTdGVwcygpLGk9dGhpcy5fZ2V0RGF0YVRvRHJhdygpLHI9dGhpcy5kYXRhc2V0cygpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuX2RhdGFzZXRUb0RyYXdlci5nZXQoZSl9KSk7aWYoImNhbnZhcyI9PT10aGlzLnJlbmRlcmVyKCkpe3ZhciBvPXRoaXMuX2NhbnZhcy5ub2RlKCk7by5nZXRDb250ZXh0KCIyZCIpLmNsZWFyUmVjdCgwLDAsby5jbGllbnRXaWR0aCxvLmNsaWVudEhlaWdodCksdGhpcy5fYnVmZmVyQ2FudmFzVmFsaWQ9ITF9dGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKHQsbyl7dmFyIGE9ZS5hcHBseURyYXdTdGVwcyhuLHQpO3Jbb10uZHJhdyhpLmdldCh0KSxhKX0pKTt2YXIgYT10aGlzLmRhdGFzZXRzKCkubWFwKChmdW5jdGlvbih0LHIpe3JldHVybiBlLmdldFRvdGFsRHJhd1RpbWUoaS5nZXQodCksbil9KSkscz1pU3QuTWF0aC5tYXgoYSwwKTt0aGlzLl9hZGRpdGlvbmFsUGFpbnQocyl9LGUucHJvdG90eXBlLnNlbGVjdGlvbnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih2b2lkIDA9PT10JiYodD10aGlzLmRhdGFzZXRzKCkpLCJjYW52YXMiPT09dGhpcy5yZW5kZXJlcigpKXJldHVybiBlU3Quc2VsZWN0QWxsKCk7dmFyIG49W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGk9ZS5fZGF0YXNldFRvRHJhd2VyLmdldCh0KTtpZihudWxsIT1pKXt2YXIgcj1pLmdldFZpc3VhbFByaW1pdGl2ZXMoKTtuLnB1c2guYXBwbHkobixyKX19KSksZVN0LnNlbGVjdEFsbChuKX0sZS5wcm90b3R5cGUuZW50aXRpZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5fZ2V0RW50aXR5U3RvcmUodCkuZW50aXRpZXMoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkodCl9KSl9LGUucHJvdG90eXBlLmZpbHRlckVudGl0aWVzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuX2dldEVudGl0eVN0b3JlKCkuZW50aXRpZXMoKS5maWx0ZXIodCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fbGlnaHR3ZWlnaHRQbG90RW50aXR5VG9QbG90RW50aXR5KHQpfSkpfSxlLnByb3RvdHlwZS5fZ2V0RW50aXR5U3RvcmU9ZnVuY3Rpb24odCl7dmFyIGUsbj10aGlzLGk9ZnVuY3Rpb24odCl7cmV0dXJuIG4uX2VudGl0eUJvdW5kcyh0KX07cmV0dXJuIHZvaWQgMCE9PXQ/KChlPW5ldyBpU3QuRW50aXR5U3RvcmUpLmFkZEFsbCh0aGlzLl9idWlsZExpZ2h0d2VpZ2h0UGxvdEVudGl0aWVzKHQpLGksdGhpcy5fbG9jYWxPcmlnaW5Cb3VuZHMoKSksZSk6KHZvaWQgMD09PXRoaXMuX2NhY2hlZEVudGl0eVN0b3JlJiYoKGU9bmV3IGlTdC5FbnRpdHlTdG9yZSkuYWRkQWxsKHRoaXMuX2J1aWxkTGlnaHR3ZWlnaHRQbG90RW50aXRpZXModGhpcy5kYXRhc2V0cygpKSxpLHRoaXMuX2xvY2FsT3JpZ2luQm91bmRzKCkpLHRoaXMuX2NhY2hlZEVudGl0eVN0b3JlPWUpLHRoaXMuX2NhY2hlZEVudGl0eVN0b3JlKX0sZS5wcm90b3R5cGUuX2xvY2FsT3JpZ2luQm91bmRzPWZ1bmN0aW9uKCl7cmV0dXJue3RvcExlZnQ6e3g6MCx5OjB9LGJvdHRvbVJpZ2h0Ont4OnRoaXMud2lkdGgoKSx5OnRoaXMuaGVpZ2h0KCl9fX0sZS5wcm90b3R5cGUuX2VudGl0eUJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9waXhlbFBvaW50KHQuZGF0dW0sdC5pbmRleCx0LmRhdGFzZXQpO3JldHVybnt4OmUueCx5OmUueSx3aWR0aDowLGhlaWdodDowfX0sZS5wcm90b3R5cGUuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eT1mdW5jdGlvbih0KXtyZXR1cm57Ym91bmRzOnRoaXMuX2VudGl0eUJvdW5kcyh0KSxjb21wb25lbnQ6dC5jb21wb25lbnQsZGF0YXNldDp0LmRhdGFzZXQsZGF0YXNldEluZGV4OnQuZGF0YXNldEluZGV4LGRhdHVtOnQuZGF0dW0saW5kZXg6dC5pbmRleCxwb3NpdGlvbjp0LnBvc2l0aW9uLHNlbGVjdGlvbjplU3Quc2VsZWN0KHQuZHJhd2VyLmdldFZpc3VhbFByaW1pdGl2ZUF0SW5kZXgodC52YWxpZERhdHVtSW5kZXgpKX19LGUucHJvdG90eXBlLmVudGl0aWVzQXQ9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwbG90cyBtdXN0IGltcGxlbWVudCBlbnRpdGllc0F0Iil9LGUucHJvdG90eXBlLmVudGl0eU5lYXJlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdHlOZWFyZXN0KHQpO3JldHVybiB2b2lkIDA9PT1lP3ZvaWQgMDp0aGlzLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkoZSl9LGUucHJvdG90eXBlLmVudGl0aWVzSW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5lbnRpdGllc0luQm91bmRzKG51bGw9PWU/e3g6dC50b3BMZWZ0LngseTp0LnRvcExlZnQueSx3aWR0aDp0LmJvdHRvbVJpZ2h0LngtdC50b3BMZWZ0LngsaGVpZ2h0OnQuYm90dG9tUmlnaHQueS10LnRvcExlZnQueX06e3g6dC5taW4seTplLm1pbix3aWR0aDp0Lm1heC10Lm1pbixoZWlnaHQ6ZS5tYXgtZS5taW59KX0sZS5wcm90b3R5cGUuZW50aXRpZXNJbkJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdGllc0luQm91bmRzKHQpO2lmKG4pcmV0dXJuIG4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fbGlnaHR3ZWlnaHRQbG90RW50aXR5VG9QbG90RW50aXR5KHQpfSkpfSxlLnByb3RvdHlwZS5lbnRpdGllc0luWEJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdGllc0luWEJvdW5kcyh0KTtpZihuKXJldHVybiBuLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eSh0KX0pKX0sZS5wcm90b3R5cGUuZW50aXRpZXNJbllCb3VuZHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuX2dldEVudGl0eVN0b3JlKCkuZW50aXRpZXNJbllCb3VuZHModCk7aWYobilyZXR1cm4gbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkodCl9KSl9LGUucHJvdG90eXBlLl91bmluc3RhbGxTY2FsZUZvcktleT1mdW5jdGlvbih0LGUpe3Qub2ZmVXBkYXRlKHRoaXMuX3JlbmRlckNhbGxiYWNrKSx0Lm9mZlVwZGF0ZSh0aGlzLl9kZWZlcnJlZFJlc2V0RW50aXR5U3RvcmUpLHQucmVtb3ZlSW5jbHVkZWRWYWx1ZXNQcm92aWRlcih0aGlzLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKX0sZS5wcm90b3R5cGUuX2luc3RhbGxTY2FsZUZvcktleT1mdW5jdGlvbih0LGUpe3Qub25VcGRhdGUodGhpcy5fcmVuZGVyQ2FsbGJhY2spLHQub25VcGRhdGUodGhpcy5fZGVmZXJyZWRSZXNldEVudGl0eVN0b3JlKSx0LmFkZEluY2x1ZGVkVmFsdWVzUHJvdmlkZXIodGhpcy5faW5jbHVkZWRWYWx1ZXNQcm92aWRlcil9LGUucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnM9ZnVuY3Rpb24oKXtyZXR1cm57fX0sZS5fc2NhbGVkQWNjZXNzb3I9ZnVuY3Rpb24odCl7dmFyIGU9dC5zY2FsZSxuPXQuYWNjZXNzb3IsaT10LnBvc3RTY2FsZSxyPW51bGw9PWU/bjpmdW5jdGlvbih0LGkscil7cmV0dXJuIGUuc2NhbGUobih0LGkscikpfTtyZXR1cm4gbnVsbD09aT9yOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gaShyKHQsZSxuKSx0LGUsbil9fSxlLnByb3RvdHlwZS5fcGl4ZWxQb2ludD1mdW5jdGlvbih0LGUsbil7cmV0dXJue3g6MCx5OjB9fSxlLnByb3RvdHlwZS5fYW5pbWF0ZU9uTmV4dFJlbmRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbmltYXRlJiZ0aGlzLl9kYXRhQ2hhbmdlZH0sZS5PUFRJTUlaRV9NRU1PSVpFX1BST0pFQ1RPUlM9ITEsZS5fQU5JTUFUSU9OX01BWF9EVVJBVElPTj02MDAsZX0pKGFTdC5Db21wb25lbnQpO2Z1bmN0aW9uIHBTdCh0LGUsbil7dmFyIGk9ZS5hY2Nlc3NvcixyPWUuc2NhbGU7aWYobnVsbD09cilyZXR1cm5bXTt2YXIgbz10LmRhdGEoKTtudWxsIT1uJiYobz1vLmZpbHRlcigoZnVuY3Rpb24oZSxpKXtyZXR1cm4gbihlLGksdCl9KSkpO3ZhciBhPW8ubWFwKChmdW5jdGlvbihlLG4pe3JldHVybiBpKGUsbix0KX0pKTtyZXR1cm4gci5leHRlbnRPZlZhbHVlcyhhKX0KLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi91d3QuUGxvdD1kU3QsT2JqZWN0LmRlZmluZVByb3BlcnR5KGN3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGZTdD11TyxtU3Q9dXd0LGdTdD1GZ3QsX1N0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gZlN0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmVudGl0eU5lYXJlc3Q9ZnVuY3Rpb24odCl7dmFyIGUsbj0xLzA7cmV0dXJuIHRoaXMuY29tcG9uZW50cygpLmZvckVhY2goKGZ1bmN0aW9uKGkpe3ZhciByPWkuZW50aXR5TmVhcmVzdCh0KTtpZihudWxsIT1yKXt2YXIgbz1nU3QuTWF0aC5kaXN0YW5jZVNxdWFyZWQoci5wb3NpdGlvbix0KTtvPD1uJiYobj1vLGU9cil9fSkpLGV9LGUucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbihlKXtpZihudWxsIT1lJiYhKGUgaW5zdGFuY2VvZiBtU3QuUGxvdCkpdGhyb3cgbmV3IEVycm9yKCJQbG90IEdyb3VwIG9ubHkgYWNjZXB0cyBwbG90cyIpO3JldHVybiB0LnByb3RvdHlwZS5hcHBlbmQuY2FsbCh0aGlzLGUpLHRoaXN9LGV9KShieHQuR3JvdXApO2N3dC5QbG90R3JvdXA9X1N0O3ZhciB5U3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KHlTdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHZTdD11TyxiU3Q9RWR0LHhTdD1GZ3Qsd1N0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPVtdKTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX3Jvd1BhZGRpbmc9MCxuLl9jb2x1bW5QYWRkaW5nPTAsbi5fcm93cz1bXSxuLl9yb3dXZWlnaHRzPVtdLG4uX2NvbHVtbldlaWdodHM9W10sbi5fblJvd3M9MCxuLl9uQ29scz0wLG4uX2NhbGN1bGF0ZWRMYXlvdXQ9bnVsbCxuLmFkZENsYXNzKCJ0YWJsZSIpLGUuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7bnVsbCE9dCYmbi5hZGQodCxlLGkpfSkpfSkpLG59cmV0dXJuIHZTdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fZm9yRWFjaD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHRoaXMuX25Sb3dzO2UrKylmb3IodmFyIG49MDtuPHRoaXMuX25Db2xzO24rKyludWxsIT10aGlzLl9yb3dzW2VdW25dJiZ0KHRoaXMuX3Jvd3NbZV1bbl0pfSxlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0aGlzLl9uUm93cztlKyspZm9yKHZhciBuPTA7bjx0aGlzLl9uQ29scztuKyspaWYodGhpcy5fcm93c1tlXVtuXT09PXQpcmV0dXJuITA7cmV0dXJuITF9LGUucHJvdG90eXBlLmNvbXBvbmVudEF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ8MHx8dD49dGhpcy5fblJvd3N8fGU8MHx8ZT49dGhpcy5fbkNvbHM/bnVsbDp0aGlzLl9yb3dzW3RdW2VdfSxlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCxlLG4pe2lmKG51bGw9PXQpdGhyb3cgRXJyb3IoIkNhbm5vdCBhZGQgbnVsbCB0byBhIHRhYmxlIGNlbGwiKTtpZighdGhpcy5oYXModCkpe2lmKG51bGwhPSh0aGlzLl9yb3dzW2VdJiZ0aGlzLl9yb3dzW2VdW25dKSl0aHJvdyBuZXcgRXJyb3IoImNlbGwgaXMgb2NjdXBpZWQiKTt0LmRldGFjaCgpLHRoaXMuX25Sb3dzPU1hdGgubWF4KGUrMSx0aGlzLl9uUm93cyksdGhpcy5fbkNvbHM9TWF0aC5tYXgobisxLHRoaXMuX25Db2xzKSx0aGlzLl9wYWRUYWJsZVRvU2l6ZSh0aGlzLl9uUm93cyx0aGlzLl9uQ29scyksdGhpcy5fcm93c1tlXVtuXT10LHRoaXMuX2Fkb3B0QW5kQW5jaG9yKHQpLHRoaXMucmVkcmF3KCl9cmV0dXJuIHRoaXN9LGUucHJvdG90eXBlLl9yZW1vdmU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0aGlzLl9uUm93cztlKyspZm9yKHZhciBuPTA7bjx0aGlzLl9uQ29scztuKyspaWYodGhpcy5fcm93c1tlXVtuXT09PXQpcmV0dXJuIHRoaXMuX3Jvd3NbZV1bbl09bnVsbCwhMDtyZXR1cm4hMX0sZS5wcm90b3R5cGUuX2l0ZXJhdGVMYXlvdXQ9ZnVuY3Rpb24odCxuLGkpe3ZvaWQgMD09PWkmJihpPSExKTtmb3IodmFyIHIsbyxhLHMsbCxjPXRoaXMuX3Jvd3MsdT1iU3QudHJhbnNwb3NlKHRoaXMuX3Jvd3MpLGg9dC10aGlzLl9jb2x1bW5QYWRkaW5nKih0aGlzLl9uQ29scy0xKSxkPW4tdGhpcy5fcm93UGFkZGluZyoodGhpcy5fblJvd3MtMSkscD1lLl9jYWxjQ29tcG9uZW50V2VpZ2h0cyh0aGlzLl9yb3dXZWlnaHRzLGMsKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHx0LmZpeGVkSGVpZ2h0KCl9KSksZj1lLl9jYWxjQ29tcG9uZW50V2VpZ2h0cyh0aGlzLl9jb2x1bW5XZWlnaHRzLHUsKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHx0LmZpeGVkV2lkdGgoKX0pKSxtPWYubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQ/LjU6dH0pKSxnPXAubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQ/LjU6dH0pKSxfPWUuX2NhbGNQcm9wb3J0aW9uYWxTcGFjZShtLGgpLHk9ZS5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKGcsZCksdj14U3QuQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoMCx0aGlzLl9uQ29scyksYj14U3QuQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoMCx0aGlzLl9uUm93cykseD0wOzspe3ZhciB3PXhTdC5BcnJheS5hZGQoYix5KSxTPXhTdC5BcnJheS5hZGQodixfKTt2PShhPXRoaXMuX2RldGVybWluZUd1YXJhbnRlZXMoUyx3LGkpKS5ndWFyYW50ZWVkV2lkdGhzLGI9YS5ndWFyYW50ZWVkSGVpZ2h0cyxzPWEud2FudHNXaWR0aEFyci5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSxsPWEud2FudHNIZWlnaHRBcnIuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSk7dmFyIE09cixFPW87cj1oLWJTdC5zdW0oYS5ndWFyYW50ZWVkV2lkdGhzKSxvPWQtYlN0LnN1bShhLmd1YXJhbnRlZWRIZWlnaHRzKTt2YXIgVD12b2lkIDA7cz8oVD1hLndhbnRzV2lkdGhBcnIubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdD8uMTowfSkpLFQ9eFN0LkFycmF5LmFkZChULGYpKTpUPWY7dmFyIEM9dm9pZCAwO2lmKGw/KEM9YS53YW50c0hlaWdodEFyci5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Py4xOjB9KSksQz14U3QuQXJyYXkuYWRkKEMscCkpOkM9cCxfPWUuX2NhbGNQcm9wb3J0aW9uYWxTcGFjZShULHIpLHk9ZS5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKEMsbykseCsrLCEocj4wJiZyIT09TXx8bz4wJiZvIT09RSkpYnJlYWs7aWYoeD41KWJyZWFrfXJldHVybiByPWgtYlN0LnN1bShhLmd1YXJhbnRlZWRXaWR0aHMpLG89ZC1iU3Quc3VtKGEuZ3VhcmFudGVlZEhlaWdodHMpLHtjb2xQcm9wb3J0aW9uYWxTcGFjZTpfPWUuX2NhbGNQcm9wb3J0aW9uYWxTcGFjZShmLHIpLHJvd1Byb3BvcnRpb25hbFNwYWNlOnk9ZS5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKHAsbyksZ3VhcmFudGVlZFdpZHRoczphLmd1YXJhbnRlZWRXaWR0aHMsZ3VhcmFudGVlZEhlaWdodHM6YS5ndWFyYW50ZWVkSGVpZ2h0cyx3YW50c1dpZHRoOnMsd2FudHNIZWlnaHQ6bH19LGUucHJvdG90eXBlLl9kZXRlcm1pbmVHdWFyYW50ZWVzPWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1uJiYobj0hMSk7dmFyIGk9eFN0LkFycmF5LmNyZWF0ZUZpbGxlZEFycmF5KDAsdGhpcy5fbkNvbHMpLHI9eFN0LkFycmF5LmNyZWF0ZUZpbGxlZEFycmF5KDAsdGhpcy5fblJvd3MpLG89eFN0LkFycmF5LmNyZWF0ZUZpbGxlZEFycmF5KCExLHRoaXMuX25Db2xzKSxhPXhTdC5BcnJheS5jcmVhdGVGaWxsZWRBcnJheSghMSx0aGlzLl9uUm93cyk7cmV0dXJuIHRoaXMuX3Jvd3MuZm9yRWFjaCgoZnVuY3Rpb24ocyxsKXtzLmZvckVhY2goKGZ1bmN0aW9uKHMsYyl7dmFyIHU7dT1udWxsIT1zP3MucmVxdWVzdGVkU3BhY2UodFtjXSxlW2xdKTp7bWluV2lkdGg6MCxtaW5IZWlnaHQ6MH07dmFyIGg9bj9NYXRoLm1pbih1Lm1pbldpZHRoLHRbY10pOnUubWluV2lkdGg7aVtjXT1NYXRoLm1heChpW2NdLGgpO3ZhciBkPW4/TWF0aC5taW4odS5taW5IZWlnaHQsZVtsXSk6dS5taW5IZWlnaHQ7cltsXT1NYXRoLm1heChyW2xdLGQpLG9bY109b1tjXXx8dS5taW5XaWR0aD50W2NdLGFbbF09YVtsXXx8dS5taW5IZWlnaHQ+ZVtsXX0pKX0pKSx7Z3VhcmFudGVlZFdpZHRoczppLGd1YXJhbnRlZWRIZWlnaHRzOnIsd2FudHNXaWR0aEFycjpvLHdhbnRzSGVpZ2h0QXJyOmF9fSxlLnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9jYWxjdWxhdGVkTGF5b3V0PXRoaXMuX2l0ZXJhdGVMYXlvdXQodCxlKSx7bWluV2lkdGg6YlN0LnN1bSh0aGlzLl9jYWxjdWxhdGVkTGF5b3V0Lmd1YXJhbnRlZWRXaWR0aHMpLG1pbkhlaWdodDpiU3Quc3VtKHRoaXMuX2NhbGN1bGF0ZWRMYXlvdXQuZ3VhcmFudGVlZEhlaWdodHMpfX0sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7dmFyIHI9dGhpczt0LnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxlLG4saSk7dmFyIG89YlN0LnN1bSh0aGlzLl9jYWxjdWxhdGVkTGF5b3V0Lmd1YXJhbnRlZWRXaWR0aHMpLGE9YlN0LnN1bSh0aGlzLl9jYWxjdWxhdGVkTGF5b3V0Lmd1YXJhbnRlZWRIZWlnaHRzKSxzPXRoaXMuX2NhbGN1bGF0ZWRMYXlvdXQ7KG8+dGhpcy53aWR0aCgpfHxhPnRoaXMuaGVpZ2h0KCkpJiYocz10aGlzLl9pdGVyYXRlTGF5b3V0KHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpLCEwKSk7dmFyIGw9MCxjPXhTdC5BcnJheS5hZGQocy5yb3dQcm9wb3J0aW9uYWxTcGFjZSxzLmd1YXJhbnRlZWRIZWlnaHRzKSx1PXhTdC5BcnJheS5hZGQocy5jb2xQcm9wb3J0aW9uYWxTcGFjZSxzLmd1YXJhbnRlZWRXaWR0aHMpO3JldHVybiB0aGlzLl9yb3dzLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dmFyIG49MDt0LmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7bnVsbCE9dCYmdC5jb21wdXRlTGF5b3V0KHt4Om4seTpsfSx1W2ldLGNbZV0pLG4rPXVbaV0rci5fY29sdW1uUGFkZGluZ30pKSxsKz1jW2VdK3IuX3Jvd1BhZGRpbmd9KSksdGhpc30sZS5wcm90b3R5cGUucm93UGFkZGluZz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9yb3dQYWRkaW5nO2lmKCF4U3QuTWF0aC5pc1ZhbGlkTnVtYmVyKHQpfHx0PDApdGhyb3cgRXJyb3IoInJvd1BhZGRpbmcgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBmaW5pdGUgdmFsdWUiKTtyZXR1cm4gdGhpcy5fcm93UGFkZGluZz10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUuY29sdW1uUGFkZGluZz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9jb2x1bW5QYWRkaW5nO2lmKCF4U3QuTWF0aC5pc1ZhbGlkTnVtYmVyKHQpfHx0PDApdGhyb3cgRXJyb3IoImNvbHVtblBhZGRpbmcgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBmaW5pdGUgdmFsdWUiKTtyZXR1cm4gdGhpcy5fY29sdW1uUGFkZGluZz10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUucm93V2VpZ2h0PWZ1bmN0aW9uKHQsZSl7aWYobnVsbD09ZSlyZXR1cm4gdGhpcy5fcm93V2VpZ2h0c1t0XTtpZigheFN0Lk1hdGguaXNWYWxpZE51bWJlcihlKXx8ZTwwKXRocm93IEVycm9yKCJyb3dXZWlnaHQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBmaW5pdGUgdmFsdWUiKTtyZXR1cm4gdGhpcy5fcm93V2VpZ2h0c1t0XT1lLHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUuY29sdW1uV2VpZ2h0PWZ1bmN0aW9uKHQsZSl7aWYobnVsbD09ZSlyZXR1cm4gdGhpcy5fY29sdW1uV2VpZ2h0c1t0XTtpZigheFN0Lk1hdGguaXNWYWxpZE51bWJlcihlKXx8ZTwwKXRocm93IEVycm9yKCJjb2x1bW5XZWlnaHQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBmaW5pdGUgdmFsdWUiKTtyZXR1cm4gdGhpcy5fY29sdW1uV2VpZ2h0c1t0XT1lLHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3ZhciB0PWJTdC50cmFuc3Bvc2UodGhpcy5fcm93cyk7cmV0dXJuIGUuX2ZpeGVkU3BhY2UodCwoZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXR8fHQuZml4ZWRXaWR0aCgpfSkpfSxlLnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiBlLl9maXhlZFNwYWNlKHRoaXMuX3Jvd3MsKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHx0LmZpeGVkSGVpZ2h0KCl9KSl9LGUucHJvdG90eXBlLl9wYWRUYWJsZVRvU2l6ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wO248dDtuKyspe3ZvaWQgMD09PXRoaXMuX3Jvd3Nbbl0mJih0aGlzLl9yb3dzW25dPVtdLHRoaXMuX3Jvd1dlaWdodHNbbl09bnVsbCk7Zm9yKHZhciBpPTA7aTxlO2krKyl2b2lkIDA9PT10aGlzLl9yb3dzW25dW2ldJiYodGhpcy5fcm93c1tuXVtpXT1udWxsKX1mb3IoaT0wO2k8ZTtpKyspdm9pZCAwPT09dGhpcy5fY29sdW1uV2VpZ2h0c1tpXSYmKHRoaXMuX2NvbHVtbldlaWdodHNbaV09bnVsbCl9LGUuX2NhbGNDb21wb25lbnRXZWlnaHRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIG51bGwhPXQ/dDplW2ldLm1hcChuKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQmJmV9KSwhMCk/MDoxfSkpfSxlLl9jYWxjUHJvcG9ydGlvbmFsU3BhY2U9ZnVuY3Rpb24odCxlKXt2YXIgbj1iU3Quc3VtKHQpO3JldHVybiAwPT09bj94U3QuQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoMCx0Lmxlbmd0aCk6dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlKnQvbn0pKX0sZS5fZml4ZWRTcGFjZT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmZX0pLCEwKX07cmV0dXJuIG4odC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBuKHQubWFwKGUpKX0pKSl9LGV9KSh4eHQuQ29tcG9uZW50Q29udGFpbmVyKTt5U3QuVGFibGU9d1N0O3ZhciBTU3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFNTdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIE1TdD11TyxFU3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX21heExpbmVzPTIsZX1yZXR1cm4gTVN0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHQsZSl7dGhpcy5fd3JhcHBlci5tYXhMaW5lcyh0aGlzLl9tYXhMaW5lcyk7dmFyIG49MD09PXRoaXMuYW5nbGUoKT90OmU7MD09PW4mJihuPTEvMCk7dmFyIGk9dGhpcy5fd3JhcHBlci53cmFwKHRoaXMuX3RleHQsdGhpcy5fbWVhc3VyZXIsbikscj10aGlzLl9tZWFzdXJlci5tZWFzdXJlKGkud3JhcHBlZFRleHQpO3JldHVybnttaW5XaWR0aDooMD09PXRoaXMuYW5nbGUoKT9yLndpZHRoOnIuaGVpZ2h0KSsyKnRoaXMucGFkZGluZygpLG1pbkhlaWdodDooMD09PXRoaXMuYW5nbGUoKT9yLmhlaWdodDpyLndpZHRoKSsyKnRoaXMucGFkZGluZygpfX0sZS5wcm90b3R5cGUubWF4TGluZXM9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX21heExpbmVzOih0aGlzLl9tYXhMaW5lcz10LHRoaXMucmVkcmF3KCksdGhpcyl9LGV9KShPeHQuTGFiZWwpO1NTdC5XcmFwcGVkTGFiZWw9RVN0O3ZhciBUU3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFRTdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIENTdD11TyxBU3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGUuYWRkQ2xhc3MoIngtZHJhZy1ib3gtbGF5ZXIiKSxlLl9oYXNDb3JuZXJzPSExLGV9cmV0dXJuIENTdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gdC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsZSxuLGkpLHRoaXMuX3NldEJvdW5kcyh0aGlzLmJvdW5kcygpKSx0aGlzfSxlLnByb3RvdHlwZS5fc2V0Qm91bmRzPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLl9zZXRCb3VuZHMuY2FsbCh0aGlzLHt0b3BMZWZ0Ont4OmUudG9wTGVmdC54LHk6MH0sYm90dG9tUmlnaHQ6e3g6ZS5ib3R0b21SaWdodC54LHk6dGhpcy5oZWlnaHQoKX19KX0sZS5wcm90b3R5cGUuX3NldFJlc2l6YWJsZUNsYXNzZXM9ZnVuY3Rpb24odCl7dCYmdGhpcy5lbmFibGVkKCk/dGhpcy5hZGRDbGFzcygieC1yZXNpemFibGUiKTp0aGlzLnJlbW92ZUNsYXNzKCJ4LXJlc2l6YWJsZSIpfSxlLnByb3RvdHlwZS55U2NhbGU9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4gdC5wcm90b3R5cGUueVNjYWxlLmNhbGwodGhpcyk7dGhyb3cgbmV3IEVycm9yKCJ5U2NhbGVzIGNhbm5vdCBiZSBzZXQgb24gYW4gWERyYWdCb3hMYXllciIpfSxlLnByb3RvdHlwZS55RXh0ZW50PWZ1bmN0aW9uKGUpe2lmKG51bGw9PWUpcmV0dXJuIHQucHJvdG90eXBlLnlFeHRlbnQuY2FsbCh0aGlzKTt0aHJvdyBuZXcgRXJyb3IoIlhEcmFnQm94TGF5ZXIgaGFzIG5vIHlFeHRlbnQiKX0sZX0pKHJidC5EcmFnQm94TGF5ZXIpO1RTdC5YRHJhZ0JveExheWVyPUFTdDt2YXIga1N0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShrU3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBMU3Q9dU8sUFN0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLmFkZENsYXNzKCJ5LWRyYWctYm94LWxheWVyIiksZS5faGFzQ29ybmVycz0hMSxlfXJldHVybiBMU3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKSx0aGlzLl9zZXRCb3VuZHModGhpcy5ib3VuZHMoKSksdGhpc30sZS5wcm90b3R5cGUuX3NldEJvdW5kcz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5fc2V0Qm91bmRzLmNhbGwodGhpcyx7dG9wTGVmdDp7eDowLHk6ZS50b3BMZWZ0Lnl9LGJvdHRvbVJpZ2h0Ont4OnRoaXMud2lkdGgoKSx5OmUuYm90dG9tUmlnaHQueX19KX0sZS5wcm90b3R5cGUuX3NldFJlc2l6YWJsZUNsYXNzZXM9ZnVuY3Rpb24odCl7dCYmdGhpcy5lbmFibGVkKCk/dGhpcy5hZGRDbGFzcygieS1yZXNpemFibGUiKTp0aGlzLnJlbW92ZUNsYXNzKCJ5LXJlc2l6YWJsZSIpfSxlLnByb3RvdHlwZS54U2NhbGU9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4gdC5wcm90b3R5cGUueFNjYWxlLmNhbGwodGhpcyk7dGhyb3cgbmV3IEVycm9yKCJ4U2NhbGVzIGNhbm5vdCBiZSBzZXQgb24gYW4gWURyYWdCb3hMYXllciIpfSxlLnByb3RvdHlwZS54RXh0ZW50PWZ1bmN0aW9uKGUpe2lmKG51bGw9PWUpcmV0dXJuIHQucHJvdG90eXBlLnhFeHRlbnQuY2FsbCh0aGlzKTt0aHJvdyBuZXcgRXJyb3IoIllEcmFnQm94TGF5ZXIgaGFzIG5vIHhFeHRlbnQiKX0sZX0pKHJidC5EcmFnQm94TGF5ZXIpO2tTdC5ZRHJhZ0JveExheWVyPVBTdCwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT11TztlLl9fZXhwb3J0U3RhcihyYnQsdCksZS5fX2V4cG9ydFN0YXIob3h0LHQpLGUuX19leHBvcnRTdGFyKGd4dCx0KSxlLl9fZXhwb3J0U3RhcihieHQsdCksZS5fX2V4cG9ydFN0YXIoYXh0LHQpLGUuX19leHBvcnRTdGFyKEF4dCx0KSxlLl9fZXhwb3J0U3RhcihPeHQsdCksZS5fX2V4cG9ydFN0YXIoVnh0LHQpLGUuX19leHBvcnRTdGFyKGN3dCx0KSxlLl9fZXhwb3J0U3RhcihKYnQsdCksZS5fX2V4cG9ydFN0YXIoeVN0LHQpLGUuX19leHBvcnRTdGFyKFNTdCx0KSxlLl9fZXhwb3J0U3RhcihUU3QsdCksZS5fX2V4cG9ydFN0YXIoa1N0LHQpfSkoaWJ0KTt2YXIgTlN0PXt9LElTdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KElTdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFJTdD11TyxPU3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gdC5jYWxsKHRoaXMsInBhdGgiLCJhcmMgZmlsbCIpfHx0aGlzfXJldHVybiBSU3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2FwcGx5RGVmYXVsdEF0dHJpYnV0ZXM9ZnVuY3Rpb24odCl7dC5zdHlsZSgic3Ryb2tlIiwibm9uZSIpfSxlfSkoWXd0LlNWR0RyYXdlcik7SVN0LkFyY1NWR0RyYXdlcj1PU3Q7dmFyIHpTdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoelN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgRFN0PXVPLEJTdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiB0LmNhbGwodGhpcywicGF0aCIsImFyYyBvdXRsaW5lIil8fHRoaXN9cmV0dXJuIERTdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fYXBwbHlEZWZhdWx0QXR0cmlidXRlcz1mdW5jdGlvbih0KXt0LnN0eWxlKCJmaWxsIiwibm9uZSIpfSxlfSkoWXd0LlNWR0RyYXdlcik7elN0LkFyY091dGxpbmVTVkdEcmF3ZXI9QlN0O3ZhciBIU3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEhTdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEZTdD11TyxWU3Q9R3d0LFVTdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiB0LmNhbGwodGhpcywicGF0aCIsImFyZWEiKXx8dGhpc31yZXR1cm4gRlN0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9hcHBseURlZmF1bHRBdHRyaWJ1dGVzPWZ1bmN0aW9uKHQpe3Quc3R5bGUoInN0cm9rZSIsIm5vbmUiKX0sZS5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleD1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleC5jYWxsKHRoaXMsMCl9LGV9KShZd3QuU1ZHRHJhd2VyKTtIU3QuQXJlYVNWR0RyYXdlcj1VU3Q7dmFyIGpTdD1bIm9wYWNpdHkiLCJmaWxsIiwiZmlsbC1vcGFjaXR5Il0sR1N0PVsib3BhY2l0eSIsInN0cm9rZSIsInN0cm9rZS13aWR0aCJdO0hTdC5tYWtlQXJlYUNhbnZhc0RyYXdTdGVwPWZ1bmN0aW9uIFdTdCh0LGUpe3JldHVybiBmdW5jdGlvbihuLGkscil7dmFyIG89VlN0LnJlc29sdmVBdHRyaWJ1dGVzKHIsalN0LGlbMF0sMCk7VlN0LnJlbmRlckFyZWEobix0KCksaVswXSxvKTt2YXIgYT1WU3QucmVzb2x2ZUF0dHJpYnV0ZXMocixHU3QsaVswXSwwKTtWU3QucmVuZGVyTGluZShuLGUoKSxpWzBdLGEpfX07dmFyIHFTdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkocVN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgWVN0PXVPLFhTdD1Hd3QsJFN0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuY2FsbCh0aGlzLCJwYXRoIiwibGluZSIpfHx0aGlzfXJldHVybiBZU3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2FwcGx5RGVmYXVsdEF0dHJpYnV0ZXM9ZnVuY3Rpb24odCl7dC5zdHlsZSgiZmlsbCIsIm5vbmUiKX0sZS5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleD1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleC5jYWxsKHRoaXMsMCl9LGV9KShZd3QuU1ZHRHJhd2VyKTtxU3QuTGluZVNWR0RyYXdlcj0kU3Q7dmFyIEtTdD1bIm9wYWNpdHkiLCJzdHJva2Utb3BhY2l0eSIsInN0cm9rZS13aWR0aCIsInN0cm9rZSIsInN0cm9rZS1kYXNoYXJyYXkiXTtxU3QubWFrZUxpbmVDYW52YXNEcmF3U3RlcD1mdW5jdGlvbiBaU3QodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXt2YXIgcj1YU3QucmVzb2x2ZUF0dHJpYnV0ZXMoaSxLU3QsblswXSwwKTtYU3QucmVuZGVyTGluZShlLHQoKSxuWzBdLHIpfX07dmFyIEpTdD17fTshKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU8sbj1Hd3QsaT0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlKXt2b2lkIDA9PT1lJiYoZT0iIik7dmFyIG49dC5jYWxsKHRoaXMsInJlY3QiLCIiKXx8dGhpcztyZXR1cm4gbi5fcm9vdENsYXNzTmFtZT1lLG4uX3Jvb3QuY2xhc3NlZChuLl9yb290Q2xhc3NOYW1lLCEwKSxufXJldHVybiBlLl9fZXh0ZW5kcyhuLHQpLG59KShZd3QuU1ZHRHJhd2VyKTt0LlJlY3RhbmdsZVNWR0RyYXdlcj1pO3ZhciByPW4uQ29udGV4dFN0eWxlQXR0cnMuY29uY2F0KFsieCIsInkiLCJ3aWR0aCIsImhlaWdodCJdKTt0LlJlY3RhbmdsZUNhbnZhc0RyYXdTdGVwPWZ1bmN0aW9uKHQsZSxpKXt0LnNhdmUoKTtmb3IodmFyIG89ZS5sZW5ndGgsYT0wO2E8bzthKyspe3ZhciBzPWVbYV07aWYobnVsbCE9cyl7dmFyIGw9bi5yZXNvbHZlQXR0cmlidXRlcyhpLHIscyxhKTt0LmJlZ2luUGF0aCgpLHQucmVjdChsLngsbC55LGwud2lkdGgsbC5oZWlnaHQpLG4ucmVuZGVyUGF0aFdpdGhTdHlsZSh0LGwpfX10LnJlc3RvcmUoKX07dmFyIG89KGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIGkoZSl7cmV0dXJuIG4uY2FsbCh0aGlzLGUsdC5SZWN0YW5nbGVDYW52YXNEcmF3U3RlcCl8fHRoaXN9cmV0dXJuIGUuX19leHRlbmRzKGksbiksaX0pKG4uQ2FudmFzRHJhd2VyKTt0LlJlY3RhbmdsZUNhbnZhc0RyYXdlcj1vfSkoSlN0KTt2YXIgUVN0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShRU3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0TXQ9dU8sZU10PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuY2FsbCh0aGlzLCJsaW5lIiwiIil8fHRoaXN9cmV0dXJuIHRNdC5fX2V4dGVuZHMoZSx0KSxlfSkoWXd0LlNWR0RyYXdlcik7UVN0LlNlZ21lbnRTVkdEcmF3ZXI9ZU10O3ZhciBuTXQ9e30saU10PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE3LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoaU10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgck10PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuLGkpe3ZvaWQgMD09PWkmJihpPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKSx0aGlzLnNjcmVlbldpZHRoPWUsdGhpcy5zY3JlZW5IZWlnaHQ9bix0aGlzLmRldmljZVBpeGVsUmF0aW89aSx0aGlzLnBpeGVsV2lkdGg9ZSppLHRoaXMucGl4ZWxIZWlnaHQ9bippLHRoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHRoaXMuY3R4PXRoaXMuY2FudmFzLmdldENvbnRleHQoIjJkIiksdC5zaXplUGl4ZWxzKHRoaXMuY3R4LGUsbixpKX1yZXR1cm4gdC5zaXplUGl4ZWxzPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPXQuY2FudmFzO3Iud2lkdGg9ZSppLHIuaGVpZ2h0PW4qaSxyLnN0eWxlLndpZHRoPWUrInB4IixyLnN0eWxlLmhlaWdodD1uKyJweCIsdC5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHQuc2NhbGUoaSxpKX0sdC5wcm90b3R5cGUuYmxpdD1mdW5jdGlvbih0LGUsbil7dm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPT09biYmKG49MCksdC5kcmF3SW1hZ2UodGhpcy5jYW52YXMsZSxuLHRoaXMuc2NyZWVuV2lkdGgsdGhpcy5zY3JlZW5IZWlnaHQpfSx0LnByb3RvdHlwZS5ibGl0Q2VudGVyPWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1lJiYoZT0wKSx2b2lkIDA9PT1uJiYobj0wKSx0aGlzLmJsaXQodCxNYXRoLmZsb29yKGUtdGhpcy5zY3JlZW5XaWR0aC8yKSxNYXRoLmZsb29yKG4tdGhpcy5zY3JlZW5IZWlnaHQvMikpfSx0LnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oZSxuLGkpe3ZvaWQgMD09PWkmJihpPSExKTt2YXIgcj10aGlzLmRldmljZVBpeGVsUmF0aW87cmV0dXJuIHRoaXMuc2NyZWVuV2lkdGg9ZSx0aGlzLnNjcmVlbkhlaWdodD1uLHRoaXMucGl4ZWxXaWR0aD1lKnIsdGhpcy5waXhlbEhlaWdodD1uKnIsdC5zaXplUGl4ZWxzKHRoaXMuY3R4LGUsbixyKSxpJiZ0aGlzLmN0eC50cmFuc2xhdGUoZS8yLGUvMiksdGhpc30sdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWUucGl4ZWxXaWR0aCxpPWUucGl4ZWxIZWlnaHQscj1lLmN0eDtyZXR1cm4gci5zYXZlKCksci5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLG51bGw9PXQ/ci5jbGVhclJlY3QoMCwwLG4saSk6KHIuZmlsbFN0eWxlPXQsci5maWxsUmVjdCgwLDAsbixpKSksci5yZXN0b3JlKCksdGhpc30sdC5wcm90b3R5cGUuZ2V0SW1hZ2VEYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3R4LmdldEltYWdlRGF0YSgwLDAsdGhpcy5waXhlbFdpZHRoLHRoaXMucGl4ZWxIZWlnaHQpfSx0fSkoKTtpTXQuQ2FudmFzQnVmZmVyPXJNdCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KG5NdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG9NdD11TyxhTXQ9R3d0LHNNdD1pTXQsbE10PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuY2FsbCh0aGlzLCJwYXRoIiwic3ltYm9sIil8fHRoaXN9cmV0dXJuIG9NdC5fX2V4dGVuZHMoZSx0KSxlfSkoWXd0LlNWR0RyYXdlcik7bk10LlN5bWJvbFNWR0RyYXdlcj1sTXQ7dmFyIGNNdD1hTXQuQ29udGV4dFN0eWxlQXR0cnMuY29uY2F0KFsieCIsInkiXSk7ZnVuY3Rpb24gdU10KHQsZSxuLGkscil7cmV0dXJuIG4rcj49MCYmbi1yPD10JiZpK3I+PTAmJmktcjw9ZX1mdW5jdGlvbiBoTXQodCxlLG4pe2lmKG51bGw9PXQpcmV0dXJuITE7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciByPW5baV07aWYodFtyXSE9ZVtyXSlyZXR1cm4hMX1yZXR1cm4hMH1uTXQubWFrZVN5bWJvbENhbnZhc0RyYXdTdGVwPWZ1bmN0aW9uIGRNdCh0LGUsbixpKXt2YXIgcj10aGlzO3JldHVybiBmdW5jdGlvbihvLGEscyl7Zm9yKHZhciBsPW8uY2FudmFzLGM9bC5jbGllbnRXaWR0aCx1PWwuY2xpZW50SGVpZ2h0LGg9dm9pZCAwPT09aT9uZXcgc010LkNhbnZhc0J1ZmZlcigwLDApOmksZD1lKCkscD1uKCksZj1udWxsLG09bnVsbCxnPW51bGwsXz0wO188YS5sZW5ndGg7XysrKXt2YXIgeT1hW19dO2lmKG51bGwhPXkpe3ZhciB2PWFNdC5yZXNvbHZlQXR0cmlidXRlcyhzLGNNdCx5LF8pLGI9cCh5LF8sdCk7aWYodU10KGMsdSx2Lngsdi55LGIpKXt2YXIgeD1oTXQoZix2LGFNdC5Db250ZXh0U3R5bGVBdHRycyksdz1kKHksXyxyLl9kYXRhc2V0KTtpZih4JiZnPT1iJiZtPT13KTtlbHNle3ZhciBTPWIrYU10LmdldFN0cm9rZVdpZHRoKHYpKzE7KFM+aC5zY3JlZW5XaWR0aHx8Uz5oLnNjcmVlbkhlaWdodCkmJmgucmVzaXplKFMsUywhMCksaC5jbGVhcigpO3ZhciBNPWguY3R4O00uYmVnaW5QYXRoKCksdyhiKS5jb250ZXh0KE0pKG51bGwpLE0uY2xvc2VQYXRoKCksYU10LnJlbmRlclBhdGhXaXRoU3R5bGUoTSx2KSxtPXcsZz1iLGY9dn1oLmJsaXRDZW50ZXIobyx2Lngsdi55KX19fX19LChmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXVPO2UuX19leHBvcnRTdGFyKElTdCx0KSxlLl9fZXhwb3J0U3Rhcih6U3QsdCksZS5fX2V4cG9ydFN0YXIoSFN0LHQpLGUuX19leHBvcnRTdGFyKEd3dCx0KSxlLl9fZXhwb3J0U3RhcihXd3QsdCksZS5fX2V4cG9ydFN0YXIocVN0LHQpLGUuX19leHBvcnRTdGFyKEpTdCx0KSxlLl9fZXhwb3J0U3RhcihRU3QsdCksZS5fX2V4cG9ydFN0YXIoWXd0LHQpLGUuX19leHBvcnRTdGFyKG5NdCx0KX0pKE5TdCk7dmFyIHBNdD17fSxmTXQ9e30sbU10PXt9LGdNdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGdNdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIF9NdD11Tyx5TXQ9Wnl0LHZNdD1GZ3QsYk10PVp3dCx4TXQ9dXd0LHdNdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fYXV0b0FkanVzdFhTY2FsZURvbWFpbj0hMSxlLl9hdXRvQWRqdXN0WVNjYWxlRG9tYWluPSExLGUuX2RlZmVycmVkUmVuZGVyaW5nPSExLGUuX2FwcGx5RGVmZXJyZWRSZW5kZXJpbmdUcmFuc2Zvcm09ZnVuY3Rpb24odCxuLGkscil7ZS5faXNBbmNob3JlZCYmKG51bGwhPWUuX3JlbmRlckFyZWEmJmUuX3JlbmRlckFyZWEuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrdCsiLCAiK24rIikgc2NhbGUoIitpKyIsICIrcisiKSIpLG51bGwhPWUuX2NhbnZhcyYmZS5fY2FudmFzLnN0eWxlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIit0KyJweCwgIituKyJweCkgc2NhbGUoIitpKyIsICIrcisiKSIpKX0sZS5hZGRDbGFzcygieHktcGxvdCIpLGUuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YQ2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIGUuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YKCl9LGUuX2FkanVzdFhEb21haW5PbkNoYW5nZUZyb21ZQ2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIGUuX2FkanVzdFhEb21haW5PbkNoYW5nZUZyb21ZKCl9LGUuX3JlbmRlckNhbGxiYWNrPWZ1bmN0aW9uKCl7aWYoZS5kZWZlcnJlZFJlbmRlcmluZygpKXt2YXIgdD1lLngoKSYmZS54KCkuc2NhbGUsbj1lLnkoKSYmZS55KCkuc2NhbGU7ZS5fZGVmZXJyZWRSZW5kZXJlci51cGRhdGVEb21haW5zKHQsbil9ZWxzZSBlLnJlbmRlcigpfSxlLl9kZWZlcnJlZFJlbmRlcmVyPW5ldyBiTXQuRGVmZXJyZWRSZW5kZXJlcigoZnVuY3Rpb24oKXtyZXR1cm4gZS5yZW5kZXIoKX0pLGUuX2FwcGx5RGVmZXJyZWRSZW5kZXJpbmdUcmFuc2Zvcm0pLGV9cmV0dXJuIF9NdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWZlcnJlZFJlbmRlcmluZygpJiZ0aGlzLl9kZWZlcnJlZFJlbmRlcmVyLnJlc2V0VHJhbnNmb3JtcygpLHQucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5kZWZlcnJlZFJlbmRlcmluZz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9kZWZlcnJlZFJlbmRlcmluZztpZih0KXt2YXIgZT10aGlzLngoKSYmdGhpcy54KCkuc2NhbGUsbj10aGlzLnkoKSYmdGhpcy55KCkuc2NhbGU7dGhpcy5fZGVmZXJyZWRSZW5kZXJlci5zZXREb21haW5zKGUsbil9cmV0dXJuIHRoaXMuX2RlZmVycmVkUmVuZGVyaW5nPXQsdGhpc30sZS5wcm90b3R5cGUueD1mdW5jdGlvbih0LG4saSl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fWF9LRVkpO3RoaXMuX2JpbmRQcm9wZXJ0eShlLl9YX0tFWSx0LG4saSk7dmFyIHI9dGhpcy53aWR0aCgpO3JldHVybiBudWxsIT1uJiZudWxsIT1yJiZuLnJhbmdlKFswLHJdKSx0aGlzLl9hdXRvQWRqdXN0WVNjYWxlRG9tYWluJiZ0aGlzLl91cGRhdGVZRXh0ZW50c0FuZEF1dG9kb21haW4oKSx0aGlzLnJlbmRlcigpLHRoaXN9LGUucHJvdG90eXBlLnk9ZnVuY3Rpb24odCxuLGkpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGUuX1lfS0VZKTt0aGlzLl9iaW5kUHJvcGVydHkoZS5fWV9LRVksdCxuLGkpO3ZhciByPXRoaXMuaGVpZ2h0KCk7cmV0dXJuIG51bGwhPW4mJm51bGwhPXImJm4ucmFuZ2UobiBpbnN0YW5jZW9mIHlNdC5DYXRlZ29yeT9bMCxyXTpbciwwXSksdGhpcy5fYXV0b0FkanVzdFhTY2FsZURvbWFpbiYmdGhpcy5fdXBkYXRlWEV4dGVudHNBbmRBdXRvZG9tYWluKCksdGhpcy5yZW5kZXIoKSx0aGlzfSxlLnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHk9ZnVuY3Rpb24odCl7cmV0dXJuIngiPT09dCYmdGhpcy5fYXV0b0FkanVzdFhTY2FsZURvbWFpbj90aGlzLl9tYWtlRmlsdGVyQnlQcm9wZXJ0eSgieSIpOiJ5IiE9PXQmJiJ5MCIhPT10fHwhdGhpcy5fYXV0b0FkanVzdFlTY2FsZURvbWFpbj9udWxsOnRoaXMuX21ha2VGaWx0ZXJCeVByb3BlcnR5KCJ4Iil9LGUucHJvdG90eXBlLl9tYWtlRmlsdGVyQnlQcm9wZXJ0eT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldCh0KTtpZihudWxsIT1lKXt2YXIgbj1lLmFjY2Vzc29yLGk9ZS5zY2FsZTtpZihudWxsIT1pKXJldHVybiBmdW5jdGlvbih0LGUscil7dmFyIG89aS5yYW5nZSgpO3JldHVybiB2TXQuTWF0aC5pblJhbmdlKGkuc2NhbGUobih0LGUscikpLG9bMF0sb1sxXSl9fXJldHVybiBudWxsfSxlLnByb3RvdHlwZS5fdW5pbnN0YWxsU2NhbGVGb3JLZXk9ZnVuY3Rpb24obixpKXt0LnByb3RvdHlwZS5fdW5pbnN0YWxsU2NhbGVGb3JLZXkuY2FsbCh0aGlzLG4saSksbi5vZmZVcGRhdGUoaT09PWUuX1hfS0VZP3RoaXMuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YQ2FsbGJhY2s6dGhpcy5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVlDYWxsYmFjayl9LGUucHJvdG90eXBlLl9pbnN0YWxsU2NhbGVGb3JLZXk9ZnVuY3Rpb24obixpKXt0LnByb3RvdHlwZS5faW5zdGFsbFNjYWxlRm9yS2V5LmNhbGwodGhpcyxuLGkpLG4ub25VcGRhdGUoaT09PWUuX1hfS0VZP3RoaXMuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YQ2FsbGJhY2s6dGhpcy5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVlDYWxsYmFjayl9LGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtyZXR1cm4gdC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMueCgpLnNjYWxlJiZ0aGlzLngoKS5zY2FsZS5vZmZVcGRhdGUodGhpcy5fYWRqdXN0WURvbWFpbk9uQ2hhbmdlRnJvbVhDYWxsYmFjayksdGhpcy55KCkuc2NhbGUmJnRoaXMueSgpLnNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RYRG9tYWluT25DaGFuZ2VGcm9tWUNhbGxiYWNrKSx0aGlzfSxlLnByb3RvdHlwZS5hdXRvcmFuZ2VNb2RlPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX2F1dG9BZGp1c3RYU2NhbGVEb21haW4/IngiOnRoaXMuX2F1dG9BZGp1c3RZU2NhbGVEb21haW4/InkiOiJub25lIjtzd2l0Y2godCl7Y2FzZSJ4Ijp0aGlzLl9hdXRvQWRqdXN0WFNjYWxlRG9tYWluPSEwLHRoaXMuX2F1dG9BZGp1c3RZU2NhbGVEb21haW49ITEsdGhpcy5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVkoKTticmVhaztjYXNlInkiOnRoaXMuX2F1dG9BZGp1c3RYU2NhbGVEb21haW49ITEsdGhpcy5fYXV0b0FkanVzdFlTY2FsZURvbWFpbj0hMCx0aGlzLl9hZGp1c3RZRG9tYWluT25DaGFuZ2VGcm9tWCgpO2JyZWFrO2Nhc2Uibm9uZSI6dGhpcy5fYXV0b0FkanVzdFhTY2FsZURvbWFpbj0hMSx0aGlzLl9hdXRvQWRqdXN0WVNjYWxlRG9tYWluPSExO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNjYWxlIG5hbWUgJyIrdCsiJywgbXVzdCBiZSAneCcsICd5JyBvciAnbm9uZSciKX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7dC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsZSxuLGkpO3ZhciByPXRoaXMueCgpLG89ciYmci5zY2FsZTtudWxsIT1vJiZvLnJhbmdlKFswLHRoaXMud2lkdGgoKV0pO3ZhciBhPXRoaXMueSgpLHM9YSYmYS5zY2FsZTtyZXR1cm4gbnVsbCE9cyYmcy5yYW5nZShzIGluc3RhbmNlb2YgeU10LkNhdGVnb3J5P1swLHRoaXMuaGVpZ2h0KCldOlt0aGlzLmhlaWdodCgpLDBdKSx0aGlzfSxlLnByb3RvdHlwZS5fdXBkYXRlWEV4dGVudHNBbmRBdXRvZG9tYWluPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy54KCkuc2NhbGU7bnVsbCE9dCYmdC5hdXRvRG9tYWluKCl9LGUucHJvdG90eXBlLl91cGRhdGVZRXh0ZW50c0FuZEF1dG9kb21haW49ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnkoKS5zY2FsZTtudWxsIT10JiZ0LmF1dG9Eb21haW4oKX0sZS5wcm90b3R5cGUuc2hvd0FsbERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXBkYXRlWEV4dGVudHNBbmRBdXRvZG9tYWluKCksdGhpcy5fdXBkYXRlWUV4dGVudHNBbmRBdXRvZG9tYWluKCksdGhpc30sZS5wcm90b3R5cGUuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YPWZ1bmN0aW9uKCl7dGhpcy5fcHJvamVjdG9yc1JlYWR5KCkmJnRoaXMuX2F1dG9BZGp1c3RZU2NhbGVEb21haW4mJnRoaXMuX3VwZGF0ZVlFeHRlbnRzQW5kQXV0b2RvbWFpbigpfSxlLnByb3RvdHlwZS5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVk9ZnVuY3Rpb24oKXt0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKSYmdGhpcy5fYXV0b0FkanVzdFhTY2FsZURvbWFpbiYmdGhpcy5fdXBkYXRlWEV4dGVudHNBbmRBdXRvZG9tYWluKCl9LGUucHJvdG90eXBlLl9wcm9qZWN0b3JzUmVhZHk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLngoKSxlPXRoaXMueSgpO3JldHVybiBudWxsIT10JiZudWxsIT10LmFjY2Vzc29yJiZudWxsIT1lJiZudWxsIT1lLmFjY2Vzc29yfSxlLnByb3RvdHlwZS5fcGl4ZWxQb2ludD1mdW5jdGlvbih0LGUsbil7dmFyIGk9eE10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxyPXhNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk7cmV0dXJue3g6aSh0LGUsbikseTpyKHQsZSxuKX19LGUucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXQucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3LmNhbGwodGhpcyksaT10aGlzLmF0dHIoImRlZmluZWQiKTtyZXR1cm4gdGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKHQpe24uc2V0KHQsbi5nZXQodCkuZmlsdGVyKChmdW5jdGlvbihuLHIpe3JldHVybihmdW5jdGlvbih0LG4scil7dmFyIG89eE10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKGUueCgpKSh0LG4sciksYT14TXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IoZS55KCkpKHQsbixyKTtyZXR1cm4oIWl8fCExIT09aS5hY2Nlc3Nvcih0LG4scikpJiZ2TXQuTWF0aC5pc1ZhbGlkTnVtYmVyKG8pJiZ2TXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpfSkobixyLHQpfSkpKX0pKSxufSxlLl9YX0tFWT0ieCIsZS5fWV9LRVk9InkiLGV9KSh4TXQuUGxvdCk7Z010LlhZUGxvdD13TXQsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShtTXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBTTXQ9dU8sTU10PUVkdCxFTXQ9X210LFRNdD1OU3QsQ010PVd3dCxBTXQ9cVN0LGtNdD1aeXQsTE10PUl2dCxQTXQ9Rmd0LE5NdD1wTXQsSU10PXV3dCxSTXQ9Z010LE9NdD17bGluZWFyOk1NdC5jdXJ2ZUxpbmVhcixsaW5lYXJDbG9zZWQ6TU10LmN1cnZlTGluZWFyQ2xvc2VkLHN0ZXA6TU10LmN1cnZlU3RlcCxzdGVwQmVmb3JlOk1NdC5jdXJ2ZVN0ZXBCZWZvcmUsc3RlcEFmdGVyOk1NdC5jdXJ2ZVN0ZXBBZnRlcixiYXNpczpNTXQuY3VydmVCYXNpcyxiYXNpc09wZW46TU10LmN1cnZlQmFzaXNPcGVuLGJhc2lzQ2xvc2VkOk1NdC5jdXJ2ZUJhc2lzQ2xvc2VkLGJ1bmRsZTpNTXQuY3VydmVCdW5kbGUsY2FyZGluYWw6TU10LmN1cnZlQ2FyZGluYWwsY2FyZGluYWxPcGVuOk1NdC5jdXJ2ZUNhcmRpbmFsT3BlbixjYXJkaW5hbENsb3NlZDpNTXQuY3VydmVDYXJkaW5hbENsb3NlZCxtb25vdG9uZTpNTXQuY3VydmVNb25vdG9uZVh9O21NdC5DdXJ2ZU5hbWU9U210Lm1ha2VFbnVtKFsibGluZWFyIiwibGluZWFyQ2xvc2VkIiwic3RlcCIsInN0ZXBCZWZvcmUiLCJzdGVwQWZ0ZXIiLCJiYXNpcyIsImJhc2lzT3BlbiIsImJhc2lzQ2xvc2VkIiwiYnVuZGxlIiwiY2FyZGluYWwiLCJjYXJkaW5hbE9wZW4iLCJjYXJkaW5hbENsb3NlZCIsIm1vbm90b25lIl0pO3ZhciB6TXQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7ZS5fY3VydmU9ImxpbmVhciIsZS5fYXV0b3JhbmdlU21vb3RoPSExLGUuX2Nyb3BwZWRSZW5kZXJpbmdFbmFibGVkPSEwLGUuX2NvbGxhcHNlRGVuc2VWZXJ0aWNhbExpbmVzRW5hYmxlZD0hMSxlLl9kb3duc2FtcGxpbmdFbmFibGVkPSExLGUuYWRkQ2xhc3MoImxpbmUtcGxvdCIpO3ZhciBuPW5ldyBFTXQuRWFzaW5nO3JldHVybiBuLnN0ZXBEdXJhdGlvbihJTXQuUGxvdC5fQU5JTUFUSU9OX01BWF9EVVJBVElPTiksbi5lYXNpbmdNb2RlKCJleHBJbk91dCIpLG4ubWF4VG90YWxEdXJhdGlvbihJTXQuUGxvdC5fQU5JTUFUSU9OX01BWF9EVVJBVElPTiksZS5hbmltYXRvcihOTXQuQW5pbWF0b3IuTUFJTixuKSxlLmF0dHIoInN0cm9rZSIsKG5ldyBrTXQuQ29sb3IpLnJhbmdlKClbMF0pLGUuYXR0cigic3Ryb2tlLXdpZHRoIiwiMnB4IiksZX1yZXR1cm4gU010Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLng9ZnVuY3Rpb24oZSxuLGkpe3JldHVybiBudWxsPT1lP3QucHJvdG90eXBlLnguY2FsbCh0aGlzKToodC5wcm90b3R5cGUueC5jYWxsKHRoaXMsZSxuLGkpLHRoaXMuX3NldFNjYWxlU25hcHBpbmcoKSx0aGlzKX0sZS5wcm90b3R5cGUueT1mdW5jdGlvbihlLG4saSl7cmV0dXJuIG51bGw9PWU/dC5wcm90b3R5cGUueS5jYWxsKHRoaXMpOih0LnByb3RvdHlwZS55LmNhbGwodGhpcyxlLG4saSksdGhpcy5fc2V0U2NhbGVTbmFwcGluZygpLHRoaXMpfSxlLnByb3RvdHlwZS5hdXRvcmFuZ2VNb2RlPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3QucHJvdG90eXBlLmF1dG9yYW5nZU1vZGUuY2FsbCh0aGlzKToodC5wcm90b3R5cGUuYXV0b3JhbmdlTW9kZS5jYWxsKHRoaXMsZSksdGhpcy5fc2V0U2NhbGVTbmFwcGluZygpLHRoaXMpfSxlLnByb3RvdHlwZS5hdXRvcmFuZ2VTbW9vdGg9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYXV0b3JhbmdlU21vb3RoOih0aGlzLl9hdXRvcmFuZ2VTbW9vdGg9dCx0aGlzLl9zZXRTY2FsZVNuYXBwaW5nKCksdGhpcyl9LGUucHJvdG90eXBlLl9zZXRTY2FsZVNuYXBwaW5nPWZ1bmN0aW9uKCl7IngiPT09dGhpcy5hdXRvcmFuZ2VNb2RlKCkmJnRoaXMueCgpJiZ0aGlzLngoKS5zY2FsZSYmdGhpcy54KCkuc2NhbGUgaW5zdGFuY2VvZiBMTXQuUXVhbnRpdGF0aXZlU2NhbGUmJnRoaXMueCgpLnNjYWxlLnNuYXBwaW5nRG9tYWluRW5hYmxlZCghdGhpcy5hdXRvcmFuZ2VTbW9vdGgoKSksInkiPT09dGhpcy5hdXRvcmFuZ2VNb2RlKCkmJnRoaXMueSgpJiZ0aGlzLnkoKS5zY2FsZSYmdGhpcy55KCkuc2NhbGUgaW5zdGFuY2VvZiBMTXQuUXVhbnRpdGF0aXZlU2NhbGUmJnRoaXMueSgpLnNjYWxlLnNuYXBwaW5nRG9tYWluRW5hYmxlZCghdGhpcy5hdXRvcmFuZ2VTbW9vdGgoKSl9LGUucHJvdG90eXBlLmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2N1cnZlOih0aGlzLl9jdXJ2ZT10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmRvd25zYW1wbGluZ0VuYWJsZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZG93bnNhbXBsaW5nRW5hYmxlZDoodGhpcy5fZG93bnNhbXBsaW5nRW5hYmxlZD10LHRoaXMpfSxlLnByb3RvdHlwZS5jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZDoodGhpcy5fY3JvcHBlZFJlbmRlcmluZ0VuYWJsZWQ9dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5jb2xsYXBzZURlbnNlTGluZXNFbmFibGVkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2NvbGxhcHNlRGVuc2VWZXJ0aWNhbExpbmVzRW5hYmxlZDoodGhpcy5fY29sbGFwc2VEZW5zZVZlcnRpY2FsTGluZXNFbmFibGVkPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBuZXcgQ010LlByb3h5RHJhd2VyKChmdW5jdGlvbigpe3JldHVybiBuZXcgQU10LkxpbmVTVkdEcmF3ZXJ9KSwoZnVuY3Rpb24obil7cmV0dXJuIG5ldyBUTXQuQ2FudmFzRHJhd2VyKG4sQU10Lm1ha2VMaW5lQ2FudmFzRHJhd1N0ZXAoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2QzTGluZUZhY3RvcnkodCl9KSkpfSkpfSxlLnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHk9ZnVuY3Rpb24oZSl7dmFyIG49dC5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvclByb3BlcnR5LmNhbGwodGhpcyxlKTtpZighdGhpcy5fYXV0b3JhbmdlU21vb3RoKXJldHVybiBuO2lmKHRoaXMuYXV0b3JhbmdlTW9kZSgpIT09ZSlyZXR1cm4gbjtpZigieCIhPT10aGlzLmF1dG9yYW5nZU1vZGUoKSYmInkiIT09dGhpcy5hdXRvcmFuZ2VNb2RlKCkpcmV0dXJuIG47dmFyIGkscj10aGlzLl9nZXRFZGdlSW50ZXJzZWN0aW9uUG9pbnRzKCk7cmV0dXJuIGk9InkiPT09dGhpcy5hdXRvcmFuZ2VNb2RlKCk/ci5sZWZ0LmNvbmNhdChyLnJpZ2h0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnl9KSk6ci50b3AuY29uY2F0KHIuYm90dG9tKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnh9KSksbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBNTXQuZXh0ZW50KE1NdC5tZXJnZShbdCxpXSkpfSkpfSxlLnByb3RvdHlwZS5fZ2V0RWRnZUludGVyc2VjdGlvblBvaW50cz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoISh0aGlzLnkoKS5zY2FsZSBpbnN0YW5jZW9mIExNdC5RdWFudGl0YXRpdmVTY2FsZSYmdGhpcy54KCkuc2NhbGUgaW5zdGFuY2VvZiBMTXQuUXVhbnRpdGF0aXZlU2NhbGUpKXJldHVybntsZWZ0OltdLHJpZ2h0OltdLHRvcDpbXSxib3R0b206W119O3ZhciBlPXRoaXMueSgpLnNjYWxlLG49dGhpcy54KCkuc2NhbGUsaT17bGVmdDpbXSxyaWdodDpbXSx0b3A6W10sYm90dG9tOltdfSxyPW4uc2NhbGUobi5kb21haW4oKVswXSksbz1uLnNjYWxlKG4uZG9tYWluKClbMV0pLGE9ZS5zY2FsZShlLmRvbWFpbigpWzBdKSxzPWUuc2NhbGUoZS5kb21haW4oKVsxXSk7cmV0dXJuIHRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihsKXtmb3IodmFyIGMsdSxoLGQscD1sLmRhdGEoKSxmPTE7ZjxwLmxlbmd0aDtmKyspYz1ofHxuLnNjYWxlKHQueCgpLmFjY2Vzc29yKHBbZi0xXSxmLTEsbCkpLHU9ZHx8ZS5zY2FsZSh0LnkoKS5hY2Nlc3NvcihwW2YtMV0sZi0xLGwpKSxoPW4uc2NhbGUodC54KCkuYWNjZXNzb3IocFtmXSxmLGwpKSxkPWUuc2NhbGUodC55KCkuYWNjZXNzb3IocFtmXSxmLGwpKSxjPHI9PXI8PWgmJmkubGVmdC5wdXNoKHt4OnIseTplLmludmVydCh1KyhyLWMpKihkLXUpLyhoLWMpKX0pLGM8bz09bzw9aCYmaS5yaWdodC5wdXNoKHt4Om8seTplLmludmVydCh1KyhvLWMpKihkLXUpLyhoLWMpKX0pLHU8cz09czw9ZCYmaS50b3AucHVzaCh7eDpuLmludmVydChjKyhzLXUpKihoLWMpLyhkLXUpKSx5OnN9KSx1PGE9PWE8PWQmJmkuYm90dG9tLnB1c2goe3g6bi5pbnZlcnQoYysoYS11KSooaC1jKS8oZC11KSkseTphfSl9KSksaX0sZS5wcm90b3R5cGUuX2dldFJlc2V0WUZ1bmN0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy55KCkuc2NhbGUuZG9tYWluKCksZT1NYXRoLm1heCh0WzBdLHRbMV0pLG49TWF0aC5taW4odFswXSx0WzFdKSxpPWU8MCYmZXx8bj4wJiZufHwwLHI9dGhpcy55KCkuc2NhbGUuc2NhbGUoaSk7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gcn19LGUucHJvdG90eXBlLl9nZW5lcmF0ZURyYXdTdGVwcz1mdW5jdGlvbigpe3ZhciB0PVtdO2lmKHRoaXMuX2FuaW1hdGVPbk5leHRSZW5kZXIoKSl7dmFyIGU9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7ZS5kPXRoaXMuX2NvbnN0cnVjdExpbmVQcm9qZWN0b3IoSU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSx0aGlzLl9nZXRSZXNldFlGdW5jdGlvbigpKSx0LnB1c2goe2F0dHJUb1Byb2plY3RvcjplLGFuaW1hdG9yOnRoaXMuX2dldEFuaW1hdG9yKE5NdC5BbmltYXRvci5SRVNFVCl9KX1yZXR1cm4gdC5wdXNoKHthdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoTk10LkFuaW1hdG9yLk1BSU4pfSksdH0sZS5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIGU9dC5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yLmNhbGwodGhpcyk7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCJkIiE9PXQpe3ZhciBuPWVbdF07ZVt0XT1mdW5jdGlvbih0LGUsaSl7cmV0dXJuIHQubGVuZ3RoPjA/bih0WzBdLGUsaSk6bnVsbH19fSkpLGV9LGUucHJvdG90eXBlLmVudGl0aWVzQXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5lbnRpdHlOZWFyZXN0QnlYVGhlblkodCk7cmV0dXJuIG51bGwhPWU/W2VdOltdfSxlLnByb3RvdHlwZS5lbnRpdHlOZWFyZXN0QnlYVGhlblk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MS8wLGk9MS8wLHI9dGhpcy5ib3VuZHMoKSxvPXRoaXMuZW50aXRpZXMoKSxhPW8ubGVuZ3RoLHM9MDtzPGE7cysrKXt2YXIgbD1vW3NdO2lmKFBNdC5NYXRoLndpdGhpbihsLnBvc2l0aW9uLHIpKXt2YXIgYz1NYXRoLmFicyh0LngtbC5wb3NpdGlvbi54KSx1PU1hdGguYWJzKHQueS1sLnBvc2l0aW9uLnkpOyhjPG58fGM9PT1uJiZ1PGkpJiYoZT1sLG49YyxpPXUpfX1yZXR1cm4gZX0sZS5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciBlPXQucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnMuY2FsbCh0aGlzKTtyZXR1cm4gZS5kPXRoaXMuX2NvbnN0cnVjdExpbmVQcm9qZWN0b3IoSU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxJTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpKSxlfSxlLnByb3RvdHlwZS5fY29uc3RydWN0TGluZVByb2plY3Rvcj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKGkscixvKXtyZXR1cm4gbi5fZDNMaW5lRmFjdG9yeShvLHQsZSkoaSl9fSxlLnByb3RvdHlwZS5fZDNMaW5lRmFjdG9yeT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PWUmJihlPUlNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSkpLHZvaWQgMD09PW4mJihuPUlNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkpLE1NdC5saW5lKCkueCgoZnVuY3Rpb24obixpKXtyZXR1cm4gZShuLGksdCl9KSkueSgoZnVuY3Rpb24oZSxpKXtyZXR1cm4gbihlLGksdCl9KSkuY3VydmUodGhpcy5fZ2V0Q3VydmVGYWN0b3J5KCkpLmRlZmluZWQoKGZ1bmN0aW9uKGkscil7cmV0dXJuKGZ1bmN0aW9uKHQsaSxyKXt2YXIgbz1lKHQsaSxyKSxhPW4odCxpLHIpO3JldHVybiBQTXQuTWF0aC5pc1ZhbGlkTnVtYmVyKG8pJiZQTXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpfSkoaSxyLHQpfSkpfSxlLnByb3RvdHlwZS5fZ2V0Q3VydmVGYWN0b3J5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jdXJ2ZSgpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9T010W3RdO3JldHVybiBudWxsPT1lP09NdC5saW5lYXI6ZX1yZXR1cm4gdH0sZS5wcm90b3R5cGUuX2dldERhdGFUb0RyYXc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9bmV3IFBNdC5NYXA7cmV0dXJuIHRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgaT1uLmRhdGEoKTtpZih0Ll9jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZHx8dC5fZG93bnNhbXBsaW5nRW5hYmxlZCl7Zm9yKHZhciByPVtdLG89aS5sZW5ndGgsYT0wO2E8bzthKyspclthXT1hO3QuX2Nyb3BwZWRSZW5kZXJpbmdFbmFibGVkJiYocj10Ll9maWx0ZXJDcm9wcGVkUmVuZGVyaW5nKG4scikpLHQuX2Rvd25zYW1wbGluZ0VuYWJsZWQmJihyPXQuX2ZpbHRlckRvd25zYW1wbGluZyhuLHIpKSx0Ll9jb2xsYXBzZURlbnNlVmVydGljYWxMaW5lc0VuYWJsZWQmJihyPXQuX2ZpbHRlckRlbnNlTGluZXMobixyKSk7dmFyIHM9W10sbD1yLmxlbmd0aDtmb3IoYT0wO2E8bDthKyspc1thXT1pW3JbYV1dO2Uuc2V0KG4sW3NdKX1lbHNlIGUuc2V0KG4sW2ldKX0pKSxlfSxlLnByb3RvdHlwZS5fZmlsdGVyQ3JvcHBlZFJlbmRlcmluZz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLGk9SU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxyPUlNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSksbz10LmRhdGEoKSxhPVtdLHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gUE10Lk1hdGguaW5SYW5nZSh0LDAsbi53aWR0aCgpKSYmUE10Lk1hdGguaW5SYW5nZShlLDAsbi5oZWlnaHQoKSl9LGw9MDtsPGUubGVuZ3RoO2wrKyl7dmFyIGM9cyhpKG9bZVtsXV0sZVtsXSx0KSxyKG9bZVtsXV0sZVtsXSx0KSk7aWYoIWMmJm51bGwhPWVbbC0xXSYmbnVsbCE9b1tlW2wtMV1dKXt2YXIgdT1pKG9bZVtsLTFdXSxlW2wtMV0sdCksaD1yKG9bZVtsLTFdXSxlW2wtMV0sdCk7Yz1jfHxzKHUsaCl9aWYoIWMmJm51bGwhPWVbbCsxXSYmbnVsbCE9b1tlW2wrMV1dKXt2YXIgZD1pKG9bZVtsKzFdXSxlW2wrMV0sdCkscD1yKG9bZVtsKzFdXSxlW2wrMV0sdCk7Yz1jfHxzKGQscCl9YyYmYS5wdXNoKGVbbF0pfXJldHVybiBhfSxlLnByb3RvdHlwZS5fZmlsdGVyRG93bnNhbXBsaW5nPWZ1bmN0aW9uKHQsZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO2Zvcih2YXIgbj10LmRhdGEoKSxpPUlNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSkscj1JTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpLG89W2VbMF1dLGE9ZnVuY3Rpb24obyxhKXt2YXIgcz1pKG5bZVtvXV0sZVtvXSx0KSxsPXIobltlW29dXSxlW29dLHQpLGM9aShuW2VbbysxXV0sZVtvKzFdLHQpLHU9cihuW2VbbysxXV0sZVtvKzFdLHQpO2lmKGE9PT0xLzApcmV0dXJuIE1hdGguZmxvb3Iocyk9PT1NYXRoLmZsb29yKGMpO3ZhciBoPWwrKGMtcykqYTtyZXR1cm4gTWF0aC5mbG9vcih1KT09PU1hdGguZmxvb3IoaCl9LHM9MDtzPGUubGVuZ3RoLTE7KXtmb3IodmFyIGw9ZVtzXSxjPWkobltlW3NdXSxlW3NdLHQpLHU9cihuW2Vbc11dLGVbc10sdCksaD1pKG5bZVtzKzFdXSxlW3MrMV0sdCksZD1yKG5bZVtzKzFdXSxlW3MrMV0sdCkscD1NYXRoLmZsb29yKGMpPT09TWF0aC5mbG9vcihoKT8xLzA6KGQtdSkvKGgtYyksZj1lW3NdLG09cD09PTEvMD91OmMsZz1mLF89bSx5PSEwO3M8ZS5sZW5ndGgtMSYmKHl8fGEocyxwKSk7KXtzKysseT0hMTt2YXIgdj1wPT09MS8wP3IobltlW3NdXSxlW3NdLHQpOmkobltlW3NdXSxlW3NdLHQpO3Y+XyYmKF89dixnPWVbc10pLHY8bSYmKG09dixmPWVbc10pfXZhciBiPWVbc107ZiE9PWwmJm8ucHVzaChmKSxnIT09ZiYmZyE9PWwmJm8ucHVzaChnKSxiIT09bCYmYiE9PWYmJmIhPT1nJiZvLnB1c2goYil9cmV0dXJuIG99LGUucHJvdG90eXBlLl9maWx0ZXJEZW5zZUxpbmVzPWZ1bmN0aW9uKHQsZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO3ZhciBuPXQuZGF0YSgpLGk9SU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxyPUlNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk7cmV0dXJuIHRoaXMuX2J1Y2tldEJ5WCh0LGUsKGZ1bmN0aW9uKGUpe3JldHVybiBpKG5bZV0sZSx0KX0pLChmdW5jdGlvbihlKXtyZXR1cm4gcihuW2VdLGUsdCl9KSl9LGUucHJvdG90eXBlLl9idWNrZXRCeVg9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPVtdLG89dC5kYXRhKCksYT1udWxsLHM9ZS5sZW5ndGgsbD0wO2w8PXM7KytsKXt2YXIgYz1lW2xdO2lmKG51bGwhPW9bY10pe3ZhciB1PU1hdGguZmxvb3IobihjKSksaD1pKGMpO251bGw9PWE/YT1uZXcgUE10LkJ1Y2tldChjLHUsaCk6YS5pc0luQnVja2V0KHUpP2EuYWRkVG9CdWNrZXQoaCxjKTooci5wdXNoLmFwcGx5KHIsYS5nZXRVbmlxdWVJbmRpY2VzKCkpLGE9bmV3IFBNdC5CdWNrZXQoYyx1LGgpKX19cmV0dXJuIG51bGwhPWEmJnIucHVzaC5hcHBseShyLGEuZ2V0VW5pcXVlSW5kaWNlcygpKSxyfSxlfSkoUk10LlhZUGxvdCk7bU10LkxpbmU9ek10LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZk10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgRE10PXVPLEJNdD1FZHQsSE10PVp5dCxGTXQ9Rmd0LFZNdD1OU3QsVU10PUhTdCxqTXQ9V3d0LEdNdD1xU3QsV010PXBNdCxxTXQ9dXd0LFlNdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5hZGRDbGFzcygiYXJlYS1wbG90IiksZS55MCgwKSxlLmF0dHIoImZpbGwtb3BhY2l0eSIsLjI1KSxlLmF0dHIoImZpbGwiLChuZXcgSE10LkNvbG9yKS5yYW5nZSgpWzBdKSxlLl9saW5lRHJhd2Vycz1uZXcgRk10Lk1hcCxlfXJldHVybiBETXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUueT1mdW5jdGlvbihuLGkpe2lmKG51bGw9PW4pcmV0dXJuIHQucHJvdG90eXBlLnkuY2FsbCh0aGlzKTtpZihudWxsPT1pP3QucHJvdG90eXBlLnkuY2FsbCh0aGlzLG4pOnQucHJvdG90eXBlLnkuY2FsbCh0aGlzLG4saSksbnVsbCE9aSl7dmFyIHI9dGhpcy55MCgpLmFjY2Vzc29yO251bGwhPXImJnRoaXMuX2JpbmRQcm9wZXJ0eShlLl9ZMF9LRVkscixpKSx0aGlzLl91cGRhdGVZU2NhbGUoKX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUueTA9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fWTBfS0VZKTt2YXIgbj10aGlzLnkoKTtyZXR1cm4gdGhpcy5fYmluZFByb3BlcnR5KGUuX1kwX0tFWSx0LG4mJm4uc2NhbGUpLHRoaXMuX3VwZGF0ZVlTY2FsZSgpLHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGUuY2FsbCh0aGlzKSx0aGlzLl91cGRhdGVZU2NhbGUoKX0sZS5wcm90b3R5cGUuX2FkZERhdGFzZXQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5fbGluZURyYXdlcnMuc2V0KGUsbmV3IFZNdC5Qcm94eURyYXdlcigoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEdNdC5MaW5lU1ZHRHJhd2VyfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgVk10LkNhbnZhc0RyYXdlcih0LEdNdC5tYWtlTGluZUNhbnZhc0RyYXdTdGVwKChmdW5jdGlvbigpe3ZhciB0PXFNdC5QbG90Ll9zY2FsZWRBY2Nlc3NvcihuLngoKSksaT1xTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3Iobi55KCkpO3JldHVybiBuLl9kM0xpbmVGYWN0b3J5KGUsdCxpKX0pKSl9KSkpLHQucHJvdG90eXBlLl9hZGREYXRhc2V0LmNhbGwodGhpcyxlKSx0aGlzfSxlLnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0PWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQuY2FsbCh0aGlzLGUpO3ZhciBuPXRoaXMuX2xpbmVEcmF3ZXJzLmdldChlKTtyZXR1cm4ic3ZnIj09PXRoaXMucmVuZGVyZXIoKT9uLnVzZVNWRyh0aGlzLl9yZW5kZXJBcmVhKTpuLnVzZUNhbnZhcyh0aGlzLl9jYW52YXMpLG59LGUucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXM9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcy5jYWxsKHRoaXMsZSksdGhpcy5fbGluZURyYXdlcnMuZ2V0KGUpLnJlbW92ZSgpfSxlLnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX2dlbmVyYXRlTGluZURyYXdTdGVwcygpLG49dGhpcy5fZ2V0RGF0YVRvRHJhdygpO3RoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgcj1xTXQuUGxvdC5hcHBseURyYXdTdGVwcyhlLGkpO3QuX2xpbmVEcmF3ZXJzLmdldChpKS5kcmF3KG4uZ2V0KGkpLHIpfSkpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVMaW5lRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7dmFyIHQ9W107aWYodGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpKXt2YXIgZT10aGlzLl9nZW5lcmF0ZUxpbmVBdHRyVG9Qcm9qZWN0b3IoKTtlLmQ9dGhpcy5fY29uc3RydWN0TGluZVByb2plY3RvcihxTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHRoaXMuX2dldFJlc2V0WUZ1bmN0aW9uKCkpLHQucHVzaCh7YXR0clRvUHJvamVjdG9yOmUsYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoV010LkFuaW1hdG9yLlJFU0VUKX0pfXJldHVybiB0LnB1c2goe2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZW5lcmF0ZUxpbmVBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihXTXQuQW5pbWF0b3IuTUFJTil9KSx0fSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVMaW5lQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7cmV0dXJuIHQuZD10aGlzLl9jb25zdHJ1Y3RMaW5lUHJvamVjdG9yKHFNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSkscU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKSksdH0sZS5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBuZXcgak10LlByb3h5RHJhd2VyKChmdW5jdGlvbigpe3JldHVybiBuZXcgVU10LkFyZWFTVkdEcmF3ZXJ9KSwoZnVuY3Rpb24obil7cmV0dXJuIG5ldyBWTXQuQ2FudmFzRHJhd2VyKG4sVU10Lm1ha2VBcmVhQ2FudmFzRHJhd1N0ZXAoKGZ1bmN0aW9uKCl7dmFyIG49ZS5fY29vcmRpbmF0ZVByb2plY3RvcnMoKSxpPW5bMF0scj1uWzFdLG89blsyXSxhPWUuX2NyZWF0ZURlZmluZWRQcm9qZWN0b3IoaSxyKTtyZXR1cm4gZS5fY3JlYXRlQXJlYUdlbmVyYXRvcihpLHIsbyxhLHQpfSksKGZ1bmN0aW9uKCl7dmFyIG49ZS5fY29vcmRpbmF0ZVByb2plY3RvcnMoKSxpPW5bMF0scj1uWzFdLG89ZS5fY3JlYXRlRGVmaW5lZFByb2plY3RvcihpLHIpO3JldHVybiBlLl9jcmVhdGVUb3BMaW5lR2VuZXJhdG9yKGkscixvLHQpfSkpKX0pKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7dmFyIHQ9W107aWYodGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpKXt2YXIgZT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKTtlLmQ9dGhpcy5fY29uc3RydWN0QXJlYVByb2plY3RvcihxTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHRoaXMuX2dldFJlc2V0WUZ1bmN0aW9uKCkscU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTAoKSkpLHQucHVzaCh7YXR0clRvUHJvamVjdG9yOmUsYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoV010LkFuaW1hdG9yLlJFU0VUKX0pfXJldHVybiB0LnB1c2goe2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihXTXQuQW5pbWF0b3IuTUFJTil9KSx0fSxlLnByb3RvdHlwZS5fdXBkYXRlWVNjYWxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRFeHRlbnRzRm9yUHJvcGVydHkoInkwIiksZT1GTXQuQXJyYXkuZmxhdHRlbih0KSxuPUZNdC5BcnJheS51bmlxKGUpLGk9MT09PW4ubGVuZ3RoP25bMF06bnVsbCxyPXRoaXMueSgpLG89ciYmci5zY2FsZTtudWxsIT1vJiYobnVsbCE9dGhpcy5fY29uc3RhbnRCYXNlbGluZVZhbHVlUHJvdmlkZXImJihvLnJlbW92ZVBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXIodGhpcy5fY29uc3RhbnRCYXNlbGluZVZhbHVlUHJvdmlkZXIpLHRoaXMuX2NvbnN0YW50QmFzZWxpbmVWYWx1ZVByb3ZpZGVyPW51bGwpLG51bGwhPWkmJih0aGlzLl9jb25zdGFudEJhc2VsaW5lVmFsdWVQcm92aWRlcj1mdW5jdGlvbigpe3JldHVybltpXX0sby5hZGRQYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVyKHRoaXMuX2NvbnN0YW50QmFzZWxpbmVWYWx1ZVByb3ZpZGVyKSkpfSxlLnByb3RvdHlwZS5fZ2V0UmVzZXRZRnVuY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gcU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTAoKSl9LGUucHJvdG90eXBlLl9jb29yZGluYXRlUHJvamVjdG9ycz1mdW5jdGlvbigpe3JldHVybltxTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHFNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkscU10LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTAoKSldfSxlLnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIGU9dC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpLG49dGhpcy5fY29vcmRpbmF0ZVByb2plY3RvcnMoKTtyZXR1cm4gZS5kPXRoaXMuX2NvbnN0cnVjdEFyZWFQcm9qZWN0b3IoblswXSxuWzFdLG5bMl0pLGV9LGUucHJvdG90eXBlLnNlbGVjdGlvbnM9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztpZih2b2lkIDA9PT1lJiYoZT10aGlzLmRhdGFzZXRzKCkpLCJjYW52YXMiPT09dGhpcy5yZW5kZXJlcigpKXJldHVybiBCTXQuc2VsZWN0QWxsKCk7dmFyIGk9dC5wcm90b3R5cGUuc2VsZWN0aW9ucy5jYWxsKHRoaXMsZSkubm9kZXMoKTtyZXR1cm4gZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBuLl9saW5lRHJhd2Vycy5nZXQodCl9KSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH0pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gaS5wdXNoLmFwcGx5KGksdC5nZXRWaXN1YWxQcmltaXRpdmVzKCkpfSkpLEJNdC5zZWxlY3RBbGwoaSl9LGUucHJvdG90eXBlLl9jb25zdHJ1Y3RBcmVhUHJvamVjdG9yPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLHI9dGhpcy5fY3JlYXRlRGVmaW5lZFByb2plY3RvcihxTXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHFNdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkpO3JldHVybiBmdW5jdGlvbihvLGEscyl7cmV0dXJuIGkuX2NyZWF0ZUFyZWFHZW5lcmF0b3IodCxlLG4scixzKShvKX19LGUucHJvdG90eXBlLl9jcmVhdGVEZWZpbmVkUHJvamVjdG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSxyKXt2YXIgbz10KG4saSxyKSxhPWUobixpLHIpO3JldHVybiBGTXQuTWF0aC5pc1ZhbGlkTnVtYmVyKG8pJiZGTXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpfX0sZS5wcm90b3R5cGUuX2NyZWF0ZUFyZWFHZW5lcmF0b3I9ZnVuY3Rpb24odCxlLG4saSxyKXt2YXIgbz10aGlzLl9nZXRDdXJ2ZUZhY3RvcnkoKTtyZXR1cm4gQk10LmFyZWEoKS54KChmdW5jdGlvbihlLG4pe3JldHVybiB0KGUsbixyKX0pKS55MSgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZSh0LG4scil9KSkueTAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxlLHIpfSkpLmN1cnZlKG8pLmRlZmluZWQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkodCxlLHIpfSkpfSxlLnByb3RvdHlwZS5fY3JlYXRlVG9wTGluZUdlbmVyYXRvcj1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzLl9nZXRDdXJ2ZUZhY3RvcnkoKTtyZXR1cm4gQk10LmxpbmUoKS54KChmdW5jdGlvbihlLG4pe3JldHVybiB0KGUsbixpKX0pKS55KChmdW5jdGlvbih0LG4pe3JldHVybiBlKHQsbixpKX0pKS5jdXJ2ZShyKS5kZWZpbmVkKChmdW5jdGlvbih0LGUpe3JldHVybiBuKHQsZSxpKX0pKX0sZS5fWTBfS0VZPSJ5MCIsZX0pKG1NdC5MaW5lKTtmTXQuQXJlYT1ZTXQ7dmFyIFhNdD17fTshKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU8sbj1FZHQsaT1JbXQscj1fbXQsbz1neXQsYT1OU3Qscz1Xd3QsbD1KU3QsYz1kd3QsdT1aeXQsaD1JdnQsZD1GZ3QscD1TbXQsZj1wTXQsbT11d3QsZz1nTXQ7dC5CYXJPcmllbnRhdGlvbj1wLm1ha2VFbnVtKFsidmVydGljYWwiLCJob3Jpem9udGFsIl0pLHQuTGFiZWxzUG9zaXRpb249cC5tYWtlRW51bShbInN0YXJ0IiwibWlkZGxlIiwiZW5kIiwib3V0c2lkZSJdKSx0LkJhckFsaWdubWVudD1wLm1ha2VFbnVtKFsic3RhcnQiLCJtaWRkbGUiLCJlbmQiXSk7dmFyIF89KGZ1bmN0aW9uKHApe2Z1bmN0aW9uIGcoZSl7dm9pZCAwPT09ZSYmKGU9InZlcnRpY2FsIik7dmFyIG49cC5jYWxsKHRoaXMpfHx0aGlzO2lmKG4uX2xhYmVsRm9ybWF0dGVyPW8uaWRlbnRpdHkoKSxuLl9sYWJlbHNFbmFibGVkPSExLG4uX2xhYmVsc1Bvc2l0aW9uPXQuTGFiZWxzUG9zaXRpb24uZW5kLG4uX2hpZGVCYXJzSWZBbnlBcmVUb29XaWRlPSEwLG4uX2JhckFsaWdubWVudD0ibWlkZGxlIixuLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3M9Yy5tZW1vaXplKHkpLG4uX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M9ITAsbi5hZGRDbGFzcygiYmFyLXBsb3QiKSwidmVydGljYWwiIT09ZSYmImhvcml6b250YWwiIT09ZSl0aHJvdyBuZXcgRXJyb3IoZSsiIGlzIG5vdCBhIHZhbGlkIG9yaWVudGF0aW9uIGZvciBQbG90cy5CYXIiKTtyZXR1cm4gbi5faXNWZXJ0aWNhbD0idmVydGljYWwiPT09ZSxuLmFuaW1hdG9yKCJiYXNlbGluZSIsbmV3IHIuTnVsbCksbi5hdHRyKCJmaWxsIiwobmV3IHUuQ29sb3IpLnJhbmdlKClbMF0pLG4uYXR0cihnLl9CQVJfVEhJQ0tORVNTX0tFWSwoZnVuY3Rpb24oKXtyZXR1cm4gbi5fYmFyUGl4ZWxUaGlja25lc3MoKX0pKSxuLl9sYWJlbENvbmZpZz1uZXcgZC5NYXAsbi5fYmFzZWxpbmVWYWx1ZVByb3ZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuW24uYmFzZWxpbmVWYWx1ZSgpXX0sbn1yZXR1cm4gZS5fX2V4dGVuZHMoZyxwKSxnLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gcC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsdCxlLG4pLHRoaXMuX3VwZGF0ZUV4dGVudHMoKSx0aGlzfSxnLnByb3RvdHlwZS54PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/cC5wcm90b3R5cGUueC5jYWxsKHRoaXMpOihudWxsPT1lP3AucHJvdG90eXBlLnguY2FsbCh0aGlzLHQpOnAucHJvdG90eXBlLnguY2FsbCh0aGlzLHQsZSksdGhpcy5fdXBkYXRlVGhpY2tuZXNzQXR0cigpLHRoaXMuX3VwZGF0ZUxlbmd0aFNjYWxlKCksdGhpcyl9LGcucHJvdG90eXBlLnk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD9wLnByb3RvdHlwZS55LmNhbGwodGhpcyk6KG51bGw9PWU/cC5wcm90b3R5cGUueS5jYWxsKHRoaXMsdCk6cC5wcm90b3R5cGUueS5jYWxsKHRoaXMsdCxlKSx0aGlzLl91cGRhdGVMZW5ndGhTY2FsZSgpLHRoaXMpfSxnLnByb3RvdHlwZS5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNWZXJ0aWNhbD90aGlzLnkoKTp0aGlzLngoKX0sZy5wcm90b3R5cGUucG9zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNWZXJ0aWNhbD90aGlzLngoKTp0aGlzLnkoKX0sZy5wcm90b3R5cGUuYmFyRW5kPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGcuX0JBUl9FTkRfS0VZKTt2YXIgZT10aGlzLnBvc2l0aW9uKCk7cmV0dXJuIHRoaXMuX2JpbmRQcm9wZXJ0eShnLl9CQVJfRU5EX0tFWSx0LGUmJmUuc2NhbGUpLHRoaXMuX3VwZGF0ZVRoaWNrbmVzc0F0dHIoKSx0aGlzLl91cGRhdGVMZW5ndGhTY2FsZSgpLHRoaXMucmVuZGVyKCksdGhpc30sZy5wcm90b3R5cGUuYmFyQWxpZ25tZW50PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2JhckFsaWdubWVudDoodGhpcy5fYmFyQWxpZ25tZW50PXQsdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpcyl9LGcucHJvdG90eXBlLm9yaWVudGF0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzVmVydGljYWw/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCJ9LGcucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHMuUHJveHlEcmF3ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBsLlJlY3RhbmdsZVNWR0RyYXdlcihnLl9CQVJfQVJFQV9DTEFTUyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBhLlJlY3RhbmdsZUNhbnZhc0RyYXdlcih0KX0pKX0sZy5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7cC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fYmFzZWxpbmU9dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKCJiYXNlbGluZSIsITApfSxnLnByb3RvdHlwZS5iYXNlbGluZVZhbHVlPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpe2lmKG51bGwhPXRoaXMuX2Jhc2VsaW5lVmFsdWUpcmV0dXJuIHRoaXMuX2Jhc2VsaW5lVmFsdWU7aWYoIXRoaXMuX3Byb2plY3RvcnNSZWFkeSgpKXJldHVybiAwO3ZhciBlPXRoaXMubGVuZ3RoKCkuc2NhbGU7cmV0dXJuIGUmJmUgaW5zdGFuY2VvZiB1LlRpbWU/bmV3IERhdGUoMCk6MH1yZXR1cm4gdGhpcy5fYmFzZWxpbmVWYWx1ZT10LHRoaXMuX3VwZGF0ZUxlbmd0aFNjYWxlKCksdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpc30sZy5wcm90b3R5cGUuYWRkRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gcC5wcm90b3R5cGUuYWRkRGF0YXNldC5jYWxsKHRoaXMsdCksdGhpc30sZy5wcm90b3R5cGUuX2FkZERhdGFzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHAucHJvdG90eXBlLl9hZGREYXRhc2V0LmNhbGwodGhpcyx0KSx0aGlzfSxnLnByb3RvdHlwZS5yZW1vdmVEYXRhc2V0PWZ1bmN0aW9uKHQpe3JldHVybiBwLnByb3RvdHlwZS5yZW1vdmVEYXRhc2V0LmNhbGwodGhpcyx0KSx0aGlzfSxnLnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gcC5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXQuY2FsbCh0aGlzLHQpLHRoaXN9LGcucHJvdG90eXBlLmRhdGFzZXRzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3AucHJvdG90eXBlLmRhdGFzZXRzLmNhbGwodGhpcyk6KHAucHJvdG90eXBlLmRhdGFzZXRzLmNhbGwodGhpcyx0KSx0aGlzKX0sZy5wcm90b3R5cGUubGFiZWxzRW5hYmxlZD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT10P3RoaXMuX2xhYmVsc0VuYWJsZWQ6KHRoaXMuX2xhYmVsc0VuYWJsZWQ9dCxudWxsIT1lJiYodGhpcy5fbGFiZWxzUG9zaXRpb249ZSksdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpcyl9LGcucHJvdG90eXBlLmxhYmVsRm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2xhYmVsRm9ybWF0dGVyOih0aGlzLl9sYWJlbEZvcm1hdHRlcj10LHRoaXMuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGUoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxnLnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXAucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQuY2FsbCh0aGlzLHQpLG49dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImciKS5jbGFzc2VkKGcuX0xBQkVMX0FSRUFfQ0xBU1MsITApLHI9bmV3IGkuU3ZnQ29udGV4dChuLm5vZGUoKSksbz1uZXcgaS5DYWNoZU1lYXN1cmVyKHIpLGE9bmV3IGkuV3JpdGVyKG8scik7cmV0dXJuIHRoaXMuX2xhYmVsQ29uZmlnLnNldCh0LHtsYWJlbEFyZWE6bixtZWFzdXJlcjpvLHdyaXRlcjphfSksZX0sZy5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcz1mdW5jdGlvbih0KXtwLnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldE5vZGVzLmNhbGwodGhpcyx0KTt2YXIgZT10aGlzLl9sYWJlbENvbmZpZy5nZXQodCk7bnVsbCE9ZSYmKGUubGFiZWxBcmVhLnJlbW92ZSgpLHRoaXMuX2xhYmVsQ29uZmlnLmRlbGV0ZSh0KSl9LGcucHJvdG90eXBlLmVudGl0eU5lYXJlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWZ1bmN0aW9uKCl7dmFyIG49ZS5faXNWZXJ0aWNhbD9lLl9nZXRFbnRpdHlTdG9yZSgpLmVudGl0eU5lYXJlc3RYKHQpOmUuX2dldEVudGl0eVN0b3JlKCkuZW50aXR5TmVhcmVzdFkodCk7cmV0dXJuIHZvaWQgMD09PW4/dm9pZCAwOmUuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eShuKX07cmV0dXJuIHRoaXMuX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M/dGhpcy5fY29tcHV0ZUJhclBpeGVsVGhpY2tuZXNzLmRvTG9ja2VkKG4pOm4oKX0sZy5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49ZnVuY3Rpb24oKXtyZXR1cm4gZS5fZW50aXRpZXNJbnRlcnNlY3RpbmcodC54LHQueSl9O3JldHVybiB0aGlzLl9maXhlZEJhclBpeGVsVGhpY2tuZXNzP3RoaXMuX2NvbXB1dGVCYXJQaXhlbFRoaWNrbmVzcy5kb0xvY2tlZChuKTpuKCl9LGcucHJvdG90eXBlLmVudGl0aWVzSW5Cb3VuZHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWZ1bmN0aW9uKCl7cmV0dXJuIHAucHJvdG90eXBlLmVudGl0aWVzSW5Cb3VuZHMuY2FsbChlLHQpfTtyZXR1cm4gdGhpcy5fZml4ZWRCYXJQaXhlbFRoaWNrbmVzcz90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3MuZG9Mb2NrZWQobik6bigpfSxnLnByb3RvdHlwZS5lbnRpdGllc0luWEJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49ZnVuY3Rpb24oKXtyZXR1cm4gcC5wcm90b3R5cGUuZW50aXRpZXNJblhCb3VuZHMuY2FsbChlLHQpfTtyZXR1cm4gdGhpcy5fZml4ZWRCYXJQaXhlbFRoaWNrbmVzcz90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3MuZG9Mb2NrZWQobik6bigpfSxnLnByb3RvdHlwZS5lbnRpdGllc0luWUJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49ZnVuY3Rpb24oKXtyZXR1cm4gcC5wcm90b3R5cGUuZW50aXRpZXNJbllCb3VuZHMuY2FsbChlLHQpfTtyZXR1cm4gdGhpcy5fZml4ZWRCYXJQaXhlbFRoaWNrbmVzcz90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3MuZG9Mb2NrZWQobik6bigpfSxnLnByb3RvdHlwZS5fZW50aXRpZXNJbnRlcnNlY3Rpbmc9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49W10saT10aGlzLl9nZXRFbnRpdHlTdG9yZSgpLmVudGl0aWVzKCkscj1pLmxlbmd0aCxvPTA7bzxyO28rKyl7dmFyIGE9aVtvXTtkLkRPTS5pbnRlcnNlY3RzQkJveCh0LGUsdGhpcy5fZW50aXR5Qm91bmRzKGEpKSYmbi5wdXNoKHRoaXMuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eShhKSl9cmV0dXJuIG59LGcucHJvdG90eXBlLl91cGRhdGVMZW5ndGhTY2FsZT1mdW5jdGlvbigpe2lmKHRoaXMuX3Byb2plY3RvcnNSZWFkeSgpKXt2YXIgdD10aGlzLmxlbmd0aCgpLnNjYWxlO3QgaW5zdGFuY2VvZiBoLlF1YW50aXRhdGl2ZVNjYWxlJiYodC5hZGRQYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVyKHRoaXMuX2Jhc2VsaW5lVmFsdWVQcm92aWRlciksdC5hZGRJbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKHRoaXMuX2Jhc2VsaW5lVmFsdWVQcm92aWRlcikpfX0sZy5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9iYXJQaXhlbFRoaWNrbmVzcygpLHRoaXMuX2NvbXB1dGVCYXJQaXhlbFRoaWNrbmVzcy5kb0xvY2tlZCgoZnVuY3Rpb24oKXtyZXR1cm4gcC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0KX0pKX0sZy5wcm90b3R5cGUuX2FkZGl0aW9uYWxQYWludD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5sZW5ndGgoKS5zY2FsZS5zY2FsZSh0aGlzLmJhc2VsaW5lVmFsdWUoKSksaT17eDE6dGhpcy5faXNWZXJ0aWNhbD8wOm4seTE6dGhpcy5faXNWZXJ0aWNhbD9uOjAseDI6dGhpcy5faXNWZXJ0aWNhbD90aGlzLndpZHRoKCk6bix5Mjp0aGlzLl9pc1ZlcnRpY2FsP246dGhpcy5oZWlnaHQoKX07dGhpcy5fZ2V0QW5pbWF0b3IoImJhc2VsaW5lIikuYW5pbWF0ZSh0aGlzLl9iYXNlbGluZSxpKSx0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2xhYmVsQ29uZmlnLmdldCh0KS5sYWJlbEFyZWEuc2VsZWN0QWxsKCJnIikucmVtb3ZlKCl9KSksdGhpcy5fbGFiZWxzRW5hYmxlZCYmZC5XaW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gZS5fZHJhd0xhYmVscygpfSksdCl9LGcucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eT1mdW5jdGlvbih0KXt2YXIgZSxpPXRoaXMscj1wLnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHkuY2FsbCh0aGlzLHQpO2lmKCJ4Ij09PXQmJnRoaXMuX2lzVmVydGljYWwpZT10aGlzLngoKTtlbHNle2lmKCJ5IiE9PXR8fHRoaXMuX2lzVmVydGljYWwpcmV0dXJuIHI7ZT10aGlzLnkoKX1pZighKGUmJmUuc2NhbGUmJmUuc2NhbGUgaW5zdGFuY2VvZiBoLlF1YW50aXRhdGl2ZVNjYWxlKSlyZXR1cm4gcjt2YXIgbz1lLnNjYWxlLGE9dGhpcy5fYmFyUGl4ZWxUaGlja25lc3MoKTtyZXR1cm4gci5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBuLmV4dGVudChbby5pbnZlcnQoaS5fZ2V0UG9zaXRpb25BdHRyKG8uc2NhbGUodFswXSksYSkpLG8uaW52ZXJ0KGkuX2dldFBvc2l0aW9uQXR0cihvLnNjYWxlKHRbMF0pLGEpK2EpLG8uaW52ZXJ0KGkuX2dldFBvc2l0aW9uQXR0cihvLnNjYWxlKHRbMV0pLGEpKSxvLmludmVydChpLl9nZXRQb3NpdGlvbkF0dHIoby5zY2FsZSh0WzFdKSxhKSthKV0pfSkpfSxnLnByb3RvdHlwZS5fZ2V0UG9zaXRpb25BdHRyPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX2lzVmVydGljYWx8fCh0LT1lLGUqPS0xKSx0aGlzLl9iYXJBbGlnbm1lbnQpe2Nhc2Uic3RhcnQiOnJldHVybiB0O2Nhc2UiZW5kIjpyZXR1cm4gdC1lO2Nhc2UibWlkZGxlIjpkZWZhdWx0OnJldHVybiB0LWUvMn19LGcucHJvdG90eXBlLl9kcmF3TGFiZWxzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX2dldERhdGFUb0RyYXcoKSxuPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGk9dGhpcy5kYXRhc2V0cygpLnNvbWUoKGZ1bmN0aW9uKGkpe3JldHVybiBlLmdldChpKS5zb21lKChmdW5jdGlvbihlLHIpe3JldHVybiBudWxsIT1lJiZ0Ll9kcmF3TGFiZWwoZSxyLGksbil9KSl9KSk7dGhpcy5faGlkZUJhcnNJZkFueUFyZVRvb1dpZGUmJmkmJnRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5fbGFiZWxDb25maWcuZ2V0KGUpLmxhYmVsQXJlYS5zZWxlY3RBbGwoImciKS5yZW1vdmUoKX0pKX0sZy5wcm90b3R5cGUuX2RyYXdMYWJlbD1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzLl9sYWJlbENvbmZpZy5nZXQobiksbz1yLmxhYmVsQXJlYSxhPXIubWVhc3VyZXIscz1yLndyaXRlcixsPSgwLHRoaXMubGVuZ3RoKCkuYWNjZXNzb3IpKHQsZSxuKSxjPXRoaXMubGVuZ3RoKCkuc2NhbGUsdT1udWxsIT1jP2Muc2NhbGUobCk6bCxoPW51bGwhPWM/Yy5zY2FsZSh0aGlzLmJhc2VsaW5lVmFsdWUoKSk6dGhpcy5iYXNlbGluZVZhbHVlKCksZD17eDppLngodCxlLG4pLHk6aS55KHQsZSxuKX0scD17d2lkdGg6aS53aWR0aCh0LGUsbiksaGVpZ2h0OmkuaGVpZ2h0KHQsZSxuKX0sZj10aGlzLl9sYWJlbEZvcm1hdHRlcihsLHQsZSxuKSxtPWEubWVhc3VyZShmKSxnPXRoaXMuX3Nob3VsZFNob3dMYWJlbE9uQmFyKGQscCxtKSxfPXRoaXMuX2NhbGN1bGF0ZUxhYmVsUHJvcGVydGllcyhkLHAsbSxnLHRoaXMuX2lzVmVydGljYWw/dTw9aDp1PGgpLHk9Xy5jb250YWluZXJEaW1lbnNpb25zLHY9Xy5sYWJlbENvbnRhaW5lck9yaWdpbixiPV8ubGFiZWxPcmlnaW4seD1fLmFsaWdubWVudCx3PWkuZmlsbCh0LGUsbiksUz10aGlzLl9jcmVhdGVMYWJlbENvbnRhaW5lcihvLHYsYixtLGcsdyk7cmV0dXJuIHMud3JpdGUoZix5LndpZHRoLHkuaGVpZ2h0LHt4QWxpZ246eC54LHlBbGlnbjp4Lnl9LFMubm9kZSgpKSx0aGlzLl9pc1ZlcnRpY2FsP3Aud2lkdGg8bS53aWR0aDpwLmhlaWdodDxtLmhlaWdodH0sZy5wcm90b3R5cGUuX3Nob3VsZFNob3dMYWJlbE9uQmFyPWZ1bmN0aW9uKGUsbixpKXtpZih0aGlzLl9sYWJlbHNQb3NpdGlvbj09PXQuTGFiZWxzUG9zaXRpb24ub3V0c2lkZSlyZXR1cm4hMTt2YXIgcj10aGlzLl9pc1ZlcnRpY2FsP2UueTplLngsbz10aGlzLl9pc1ZlcnRpY2FsP24uaGVpZ2h0Om4ud2lkdGgsYT10aGlzLl9pc1ZlcnRpY2FsP3RoaXMuaGVpZ2h0KCk6dGhpcy53aWR0aCgpLHM9citvLGw9bztyZXR1cm4gcz5hP2w9YS1yOnI8MCYmKGw9cyksKHRoaXMuX2lzVmVydGljYWw/aS5oZWlnaHQ6aS53aWR0aCkrZy5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVI8PWx9LGcucHJvdG90eXBlLl9jYWxjdWxhdGVMYWJlbFByb3BlcnRpZXM9ZnVuY3Rpb24oZSxuLGkscixvKXt2YXIgYT10aGlzLHM9dGhpcy5faXNWZXJ0aWNhbD9lLnk6ZS54LGw9dGhpcy5faXNWZXJ0aWNhbD9uLmhlaWdodDpuLndpZHRoLGM9dGhpcy5faXNWZXJ0aWNhbD9pLmhlaWdodDppLndpZHRoLHU9ImNlbnRlciIsaD1sLGQ9cyxwPXMsZj1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSJ0b3BMZWZ0IjpyZXR1cm4gdT1hLl9pc1ZlcnRpY2FsPyJ0b3AiOiJsZWZ0IixkKz1nLl9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUix2b2lkKHArPWcuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSKTtjYXNlImNlbnRlciI6cmV0dXJuIHZvaWQocCs9KGwrYykvMik7Y2FzZSJib3R0b21SaWdodCI6cmV0dXJuIHU9YS5faXNWZXJ0aWNhbD8iYm90dG9tIjoicmlnaHQiLGQtPWcuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSLHZvaWQocCs9aC1nLl9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUi1jKX19O2lmKHIpc3dpdGNoKHRoaXMuX2xhYmVsc1Bvc2l0aW9uKXtjYXNlIHQuTGFiZWxzUG9zaXRpb24uc3RhcnQ6ZihvPyJib3R0b21SaWdodCI6InRvcExlZnQiKTticmVhaztjYXNlIHQuTGFiZWxzUG9zaXRpb24ubWlkZGxlOmYoImNlbnRlciIpO2JyZWFrO2Nhc2UgdC5MYWJlbHNQb3NpdGlvbi5lbmQ6ZihvPyJ0b3BMZWZ0IjoiYm90dG9tUmlnaHQiKX1lbHNlIG8/KHU9dGhpcy5faXNWZXJ0aWNhbD8idG9wIjoibGVmdCIsaD1sK2cuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSK2MsZC09Zy5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVIrYyxwLT1nLl9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUitjKToodT10aGlzLl9pc1ZlcnRpY2FsPyJib3R0b20iOiJyaWdodCIsaD1sK2cuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSK2MscCs9bCtnLl9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUik7cmV0dXJue2NvbnRhaW5lckRpbWVuc2lvbnM6e3dpZHRoOnRoaXMuX2lzVmVydGljYWw/bi53aWR0aDpoLGhlaWdodDp0aGlzLl9pc1ZlcnRpY2FsP2g6bi5oZWlnaHR9LGxhYmVsQ29udGFpbmVyT3JpZ2luOnt4OnRoaXMuX2lzVmVydGljYWw/ZS54OmQseTp0aGlzLl9pc1ZlcnRpY2FsP2Q6ZS55fSxsYWJlbE9yaWdpbjp7eDp0aGlzLl9pc1ZlcnRpY2FsP2UueCtuLndpZHRoLzItaS53aWR0aC8yOnAseTp0aGlzLl9pc1ZlcnRpY2FsP3A6ZS55K24uaGVpZ2h0LzItaS5oZWlnaHQvMn0sYWxpZ25tZW50Ont4OnRoaXMuX2lzVmVydGljYWw/ImNlbnRlciI6dSx5OnRoaXMuX2lzVmVydGljYWw/dToiY2VudGVyIn19fSxnLnByb3RvdHlwZS5fY3JlYXRlTGFiZWxDb250YWluZXI9ZnVuY3Rpb24odCxlLG4saSxyLG8pe3ZhciBhPXQuYXBwZW5kKCJnIikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrZS54KyIsICIrZS55KyIpIik7aWYocil7YS5jbGFzc2VkKCJvbi1iYXItbGFiZWwiLCEwKTt2YXIgcz0xLjYqZC5Db2xvci5jb250cmFzdCgid2hpdGUiLG8pPGQuQ29sb3IuY29udHJhc3QoImJsYWNrIixvKTthLmNsYXNzZWQocz8iZGFyay1sYWJlbCI6ImxpZ2h0LWxhYmVsIiwhMCl9ZWxzZSBhLmNsYXNzZWQoIm9mZi1iYXItbGFiZWwiLCEwKTtyZXR1cm4gYX0sZy5wcm90b3R5cGUuX2dlbmVyYXRlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7dmFyIHQ9W107aWYodGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpKXt2YXIgZT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxuPXRoaXMubGVuZ3RoKCkuc2NhbGUuc2NhbGUodGhpcy5iYXNlbGluZVZhbHVlKCkpLGk9dGhpcy5faXNWZXJ0aWNhbD8iaGVpZ2h0Ijoid2lkdGgiO2VbdGhpcy5faXNWZXJ0aWNhbD8ieSI6IngiXT1mdW5jdGlvbigpe3JldHVybiBufSxlW2ldPWZ1bmN0aW9uKCl7cmV0dXJuIDB9LHQucHVzaCh7YXR0clRvUHJvamVjdG9yOmUsYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoZi5BbmltYXRvci5SRVNFVCl9KX1yZXR1cm4gdC5wdXNoKHthdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoZi5BbmltYXRvci5NQUlOKX0pLHR9LGcucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1wLnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3IuY2FsbCh0aGlzKSxuPXRoaXMubGVuZ3RoKCkuc2NhbGUuc2NhbGUodGhpcy5iYXNlbGluZVZhbHVlKCkpLGk9dGhpcy5faXNWZXJ0aWNhbD8ieSI6IngiLHI9dGhpcy5faXNWZXJ0aWNhbD8ieCI6InkiLG89bS5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnBvc2l0aW9uKCkpLGE9bS5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLmxlbmd0aCgpKSxzPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gTWF0aC5hYnMobi1hKHQsZSxpKSl9LGw9ZVtnLl9CQVJfVEhJQ0tORVNTX0tFWV0sYz1lLmdhcCx1PW51bGw9PWM/bDpmdW5jdGlvbih0LGUsbil7dmFyIGk9bCh0LGUsbik7cmV0dXJuIGk8Zy5fQkFSX0dBUExFU1NfVEhSRVNIT0xEX1BYP2k6aS1jKHQsZSxuKX07cmV0dXJuIGUud2lkdGg9dGhpcy5faXNWZXJ0aWNhbD91OnMsZS5oZWlnaHQ9dGhpcy5faXNWZXJ0aWNhbD9zOnUsZVtpXT1mdW5jdGlvbih0LGUsaSl7dmFyIHI9YSh0LGUsaSk7cmV0dXJuIHI+bj9uOnJ9LGVbcl09ZnVuY3Rpb24oZSxuLGkpe3JldHVybiB0Ll9nZXRQb3NpdGlvbkF0dHIobyhlLG4saSksbChlLG4saSkpfSxlfSxnLnByb3RvdHlwZS5fdXBkYXRlVGhpY2tuZXNzQXR0cj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLnBvc2l0aW9uKCksbj10aGlzLmJhckVuZCgpO251bGwhPWUmJm51bGwhPW4/KHRoaXMuX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M9ITEsdGhpcy5hdHRyKGcuX0JBUl9USElDS05FU1NfS0VZLChmdW5jdGlvbih0LGkscil7dmFyIG89ZS5hY2Nlc3Nvcih0LGksciksYT1uLmFjY2Vzc29yKHQsaSxyKTtyZXR1cm4gbz1lLnNjYWxlP2Uuc2NhbGUuc2NhbGUobyk6byxhPW4uc2NhbGU/bi5zY2FsZS5zY2FsZShhKTphLE1hdGguYWJzKGEtbyl9KSkpOih0aGlzLl9maXhlZEJhclBpeGVsVGhpY2tuZXNzPSEwLHRoaXMuYXR0cihnLl9CQVJfVEhJQ0tORVNTX0tFWSwoZnVuY3Rpb24oKXtyZXR1cm4gdC5fYmFyUGl4ZWxUaGlja25lc3MoKX0pKSl9LGcucHJvdG90eXBlLl9iYXJQaXhlbFRoaWNrbmVzcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9maXhlZEJhclBpeGVsVGhpY2tuZXNzJiZ0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKT90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3ModGhpcy5wb3NpdGlvbigpLHRoaXMuZGF0YXNldHMoKSx0aGlzLl9pc1ZlcnRpY2FsP3RoaXMud2lkdGgoKTp0aGlzLmhlaWdodCgpKTowfSxnLnByb3RvdHlwZS5lbnRpdGllcz1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9dGhpcy5kYXRhc2V0cygpKSx0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKT9wLnByb3RvdHlwZS5lbnRpdGllcy5jYWxsKHRoaXMsdCk6W119LGcucHJvdG90eXBlLl9lbnRpdHlCb3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BpeGVsQm91bmRzKHQuZGF0dW0sdC5pbmRleCx0LmRhdGFzZXQpfSxnLnByb3RvdHlwZS5fcGl4ZWxCb3VuZHM9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpO3JldHVybnt4OmkueCh0LGUsbikseTppLnkodCxlLG4pLHdpZHRoOmkud2lkdGgodCxlLG4pLGhlaWdodDppLmhlaWdodCh0LGUsbil9fSxnLnByb3RvdHlwZS5fcGl4ZWxQb2ludD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5fcGl4ZWxCb3VuZHModCxlLG4pLHI9bS5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLl9pc1ZlcnRpY2FsP3RoaXMueSgpOnRoaXMueCgpKSh0LGUsbiksbz0odGhpcy5faXNWZXJ0aWNhbD90aGlzLnkoKS5zY2FsZTp0aGlzLngoKS5zY2FsZSkuc2NhbGUodGhpcy5iYXNlbGluZVZhbHVlKCkpO3JldHVybiB0aGlzLl9waXhlbFBvaW50QmFyKHIsbyxpKX0sZy5wcm90b3R5cGUuX3BpeGVsUG9pbnRCYXI9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI7cmV0dXJuIHRoaXMuX2lzVmVydGljYWw/KGk9bi54K24ud2lkdGgvMixyPXQ8PWU/bi55Om4ueStuLmhlaWdodCk6KGk9dD49ZT9uLngrbi53aWR0aDpuLngscj1uLnkrbi5oZWlnaHQvMikse3g6aSx5OnJ9fSxnLnByb3RvdHlwZS5fdW5pbnN0YWxsU2NhbGVGb3JLZXk9ZnVuY3Rpb24odCxlKXtwLnByb3RvdHlwZS5fdW5pbnN0YWxsU2NhbGVGb3JLZXkuY2FsbCh0aGlzLHQsZSl9LGcucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPW5ldyBkLk1hcCxuPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGk9dGhpcy53aWR0aCgpLHI9dGhpcy5oZWlnaHQoKTtyZXR1cm4gdGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKG8pe3ZhciBhPW8uZGF0YSgpLm1hcCgoZnVuY3Rpb24oZSxhKXtyZXR1cm4gdC5faXNEYXR1bU9uU2NyZWVuKG4saSxyLGUsYSxvKT9lOm51bGx9KSk7ZS5zZXQobyxhKX0pKSxlfSxnLnByb3RvdHlwZS5faXNEYXR1bU9uU2NyZWVuPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt2YXIgYT10LngoaSxyLG8pLHM9dC55KGkscixvKSxsPXQud2lkdGgoaSxyLG8pLGM9dC5oZWlnaHQoaSxyLG8pO3JldHVybiEhKGQuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpJiZkLk1hdGguaXNWYWxpZE51bWJlcihzKSYmZC5NYXRoLmlzVmFsaWROdW1iZXIobCkmJmQuTWF0aC5pc1ZhbGlkTnVtYmVyKGMpKSYmZC5NYXRoLmJvdW5kc0ludGVyc2VjdHMoYSxzLGwsYywwLDAsZSxuKX0sZy5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztwLnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGUuY2FsbCh0aGlzKSx0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuX2xhYmVsQ29uZmlnLmdldChlKS5tZWFzdXJlci5yZXNldCgpfSkpfSxnLl9CQVJfVEhJQ0tORVNTX1JBVElPPS45NSxnLl9CQVJfR0FQTEVTU19USFJFU0hPTERfUFg9MyxnLl9TSU5HTEVfQkFSX0RJTUVOU0lPTl9SQVRJTz0uNCxnLl9CQVJfQVJFQV9DTEFTUz0iYmFyLWFyZWEiLGcuX0JBUl9FTkRfS0VZPSJiYXJFbmQiLGcuX0JBUl9USElDS05FU1NfS0VZPSJ3aWR0aCIsZy5fTEFCRUxfQVJFQV9DTEFTUz0iYmFyLWxhYmVsLXRleHQtYXJlYSIsZy5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVI9MTAsZ30pKGcuWFlQbG90KTtmdW5jdGlvbiB5KHQsZSxpKXt2YXIgcixvPXQuc2NhbGU7aWYobyBpbnN0YW5jZW9mIHUuQ2F0ZWdvcnkpcj1vLnJhbmdlQmFuZCgpO2Vsc2V7dmFyIGE9dC5hY2Nlc3NvcixzPW4uc2V0KGQuQXJyYXkuZmxhdHRlbihlLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YSgpLm1hcCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gYShlLG4sdCl9KSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlT2YoKX0pKX0pKSkpLnZhbHVlcygpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuK3R9KSk7cy5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSk7dmFyIGw9cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvLnNjYWxlKHQpfSkpLGM9bi5wYWlycyhsKTtyPWQuTWF0aC5taW4oYywoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5hYnModFsxXS10WzBdKX0pLGkqXy5fU0lOR0xFX0JBUl9ESU1FTlNJT05fUkFUSU8pLHIqPV8uX0JBUl9USElDS05FU1NfUkFUSU99cmV0dXJuIHJ9dC5CYXI9X30pKFhNdCk7dmFyICRNdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoJE10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgS010PXVPLFpNdD1aeXQsSk10PUZndCxRTXQ9WE10LHRFdD11d3QsZUV0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPSJ2ZXJ0aWNhbCIpO3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBuLl9jbHVzdGVyT2Zmc2V0cz1uZXcgSk10Lk1hcCxufXJldHVybiBLTXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXQucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvci5jYWxsKHRoaXMpLGk9dGhpcy5fbWFrZUlubmVyU2NhbGUoKSxyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkucmFuZ2VCYW5kKCl9O24ud2lkdGg9dGhpcy5faXNWZXJ0aWNhbD9yOm4ud2lkdGgsbi5oZWlnaHQ9dGhpcy5faXNWZXJ0aWNhbD9uLmhlaWdodDpyO3ZhciBvPW4ueCxhPW4ueTtyZXR1cm4gbi54PXRoaXMuX2lzVmVydGljYWw/ZnVuY3Rpb24odCxuLGkpe3JldHVybiBvKHQsbixpKStlLl9jbHVzdGVyT2Zmc2V0cy5nZXQoaSl9OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbyh0LGUsbil9LG4ueT10aGlzLl9pc1ZlcnRpY2FsP2Z1bmN0aW9uKHQsZSxuKXtyZXR1cm4gYSh0LGUsbil9OmZ1bmN0aW9uKHQsbixpKXtyZXR1cm4gYSh0LG4saSkrZS5fY2x1c3Rlck9mZnNldHMuZ2V0KGkpfSxufSxlLnByb3RvdHlwZS5fdXBkYXRlQ2x1c3RlclBvc2l0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX21ha2VJbm5lclNjYWxlKCk7dGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKG4saSl7cmV0dXJuIHQuX2NsdXN0ZXJPZmZzZXRzLnNldChuLGUuc2NhbGUoU3RyaW5nKGkpKS1lLnJhbmdlQmFuZCgpLzIpfSkpfSxlLnByb3RvdHlwZS5fbWFrZUlubmVyU2NhbGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgWk10LkNhdGVnb3J5O3QuZG9tYWluKHRoaXMuZGF0YXNldHMoKS5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIFN0cmluZyhlKX0pKSk7dmFyIGU9dEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuYXR0cihRTXQuQmFyLl9CQVJfVEhJQ0tORVNTX0tFWSkpO3JldHVybiB0LnJhbmdlKFswLGUobnVsbCwwLG51bGwpXSksdH0sZS5wcm90b3R5cGUuX2dldERhdGFUb0RyYXc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXBkYXRlQ2x1c3RlclBvc2l0aW9uKCksdC5wcm90b3R5cGUuX2dldERhdGFUb0RyYXcuY2FsbCh0aGlzKX0sZX0pKFFNdC5CYXIpOyRNdC5DbHVzdGVyZWRCYXI9ZUV0O3ZhciBuRXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KG5FdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGlFdD11TyxyRXQ9RWR0LG9FdD1JbXQsYUV0PV9tdCxzRXQ9Z3l0LGxFdD1aeXQsY0V0PUZndCx1RXQ9SVN0LGhFdD16U3QsZEV0PVd3dCxwRXQ9a190LGZFdD11d3QsbUV0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9zdGFydEFuZ2xlPTAsZS5fZW5kQW5nbGU9MipNYXRoLlBJLGUuX2xhYmVsRm9ybWF0dGVyPXNFdC5pZGVudGl0eSgpLGUuX2xhYmVsc0VuYWJsZWQ9ITEsZS5pbm5lclJhZGl1cygwKSxlLm91dGVyUmFkaXVzKChmdW5jdGlvbigpe3ZhciB0PWUuX3BpZUNlbnRlcigpO3JldHVybiBNYXRoLm1pbihNYXRoLm1heChlLndpZHRoKCktdC54LHQueCksTWF0aC5tYXgoZS5oZWlnaHQoKS10LnksdC55KSl9KSksZS5hZGRDbGFzcygicGllLXBsb3QiKSxlLmF0dHIoImZpbGwiLChmdW5jdGlvbih0LGUpe3JldHVybiBTdHJpbmcoZSl9KSxuZXcgbEV0LkNvbG9yKSxlLl9zdHJva2VEcmF3ZXJzPW5ldyBjRXQuTWFwLGV9cmV0dXJuIGlFdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3N0cm9rZURyYXdlcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYXR0YWNoVG8oZS5fcmVuZGVyQXJlYSl9KSl9LGUucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24oZSxuLGkpe3QucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKTt2YXIgcj10aGlzLl9waWVDZW50ZXIoKTt0aGlzLl9yZW5kZXJBcmVhLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3IueCsiLCIrci55KyIpIik7dmFyIG89TWF0aC5taW4oTWF0aC5tYXgodGhpcy53aWR0aCgpLXIueCxyLngpLE1hdGgubWF4KHRoaXMuaGVpZ2h0KCktci55LHIueSkpO3JldHVybiBudWxsIT10aGlzLmlubmVyUmFkaXVzKCkuc2NhbGUmJnRoaXMuaW5uZXJSYWRpdXMoKS5zY2FsZS5yYW5nZShbMCxvXSksbnVsbCE9dGhpcy5vdXRlclJhZGl1cygpLnNjYWxlJiZ0aGlzLm91dGVyUmFkaXVzKCkuc2NhbGUucmFuZ2UoWzAsb10pLHRoaXN9LGUucHJvdG90eXBlLmFkZERhdGFzZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvdG90eXBlLmFkZERhdGFzZXQuY2FsbCh0aGlzLGUpLHRoaXN9LGUucHJvdG90eXBlLl9hZGREYXRhc2V0PWZ1bmN0aW9uKGUpe2lmKDE9PT10aGlzLmRhdGFzZXRzKCkubGVuZ3RoKXJldHVybiBjRXQuV2luZG93Lndhcm4oIk9ubHkgb25lIGRhdGFzZXQgaXMgc3VwcG9ydGVkIGluIFBpZSBwbG90cyIpLHRoaXM7dGhpcy5fdXBkYXRlUGllQW5nbGVzKCksdC5wcm90b3R5cGUuX2FkZERhdGFzZXQuY2FsbCh0aGlzLGUpO3ZhciBuPW5ldyBoRXQuQXJjT3V0bGluZVNWR0RyYXdlcjtyZXR1cm4gdGhpcy5faXNTZXR1cCYmbi5hdHRhY2hUbyh0aGlzLl9yZW5kZXJBcmVhKSx0aGlzLl9zdHJva2VEcmF3ZXJzLnNldChlLG4pLHRoaXN9LGUucHJvdG90eXBlLnJlbW92ZURhdGFzZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvdG90eXBlLnJlbW92ZURhdGFzZXQuY2FsbCh0aGlzLGUpLHRoaXN9LGUucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXM9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcy5jYWxsKHRoaXMsZSksdGhpcy5fc3Ryb2tlRHJhd2Vycy5nZXQoZSkucmVtb3ZlKCl9LGUucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldC5jYWxsKHRoaXMsZSksdGhpcy5fc3Ryb2tlRHJhd2Vycy5kZWxldGUoZSksdGhpcy5fc3RhcnRBbmdsZXM9W10sdGhpcy5fZW5kQW5nbGVzPVtdLHRoaXN9LGUucHJvdG90eXBlLnNlbGVjdGlvbnM9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt2b2lkIDA9PT1lJiYoZT10aGlzLmRhdGFzZXRzKCkpO3ZhciBpPXQucHJvdG90eXBlLnNlbGVjdGlvbnMuY2FsbCh0aGlzLGUpLm5vZGVzKCk7cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bi5fc3Ryb2tlRHJhd2Vycy5nZXQodCk7bnVsbCE9ZSYmaS5wdXNoLmFwcGx5KGksZS5nZXRWaXN1YWxQcmltaXRpdmVzKCkpfSkpLHJFdC5zZWxlY3RBbGwoaSl9LGUucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fb25EYXRhc2V0VXBkYXRlLmNhbGwodGhpcyksdGhpcy5fdXBkYXRlUGllQW5nbGVzKCksdGhpcy5yZW5kZXIoKX0sZS5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgZEV0LlByb3h5RHJhd2VyKChmdW5jdGlvbigpe3JldHVybiBuZXcgdUV0LkFyY1NWR0RyYXdlcn0pLChmdW5jdGlvbigpe3JldHVybiBwRXQud2FybigiY2FudmFzIHJlbmRlcmVyIGlzIG5vdCBzdXBwb3J0ZWQgb24gUGllIFBsb3QhIiksbnVsbH0pKX0sZS5wcm90b3R5cGUuZW50aXRpZXM9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dGhpcy5kYXRhc2V0cygpKSx0LnByb3RvdHlwZS5lbnRpdGllcy5jYWxsKHRoaXMsZSkubWFwKChmdW5jdGlvbih0KXt0LnBvc2l0aW9uLngrPW4ud2lkdGgoKS8yLHQucG9zaXRpb24ueSs9bi5oZWlnaHQoKS8yO3ZhciBlPXJFdC5zZWxlY3Qobi5fc3Ryb2tlRHJhd2Vycy5nZXQodC5kYXRhc2V0KS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4KHQuaW5kZXgpKSxpPXQ7cmV0dXJuIGkuc3Ryb2tlU2VsZWN0aW9uPWUsaX0pKX0sZS5wcm90b3R5cGUuc2VjdG9yVmFsdWU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbnVsbD09dD90aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9TRUNUT1JfVkFMVUVfS0VZKToodGhpcy5fYmluZFByb3BlcnR5KGUuX1NFQ1RPUl9WQUxVRV9LRVksdCxuKSx0aGlzLl91cGRhdGVQaWVBbmdsZXMoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5pbm5lclJhZGl1cz1mdW5jdGlvbih0LG4pe3JldHVybiBudWxsPT10P3RoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGUuX0lOTkVSX1JBRElVU19LRVkpOih0aGlzLl9iaW5kUHJvcGVydHkoZS5fSU5ORVJfUkFESVVTX0tFWSx0LG4pLHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLm91dGVyUmFkaXVzPWZ1bmN0aW9uKHQsbil7cmV0dXJuIG51bGw9PXQ/dGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fT1VURVJfUkFESVVTX0tFWSk6KHRoaXMuX2JpbmRQcm9wZXJ0eShlLl9PVVRFUl9SQURJVVNfS0VZLHQsbiksdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9zdGFydEFuZ2xlOih0aGlzLl9zdGFydEFuZ2xlPXQsdGhpcy5fdXBkYXRlUGllQW5nbGVzKCksdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZW5kQW5nbGU6KHRoaXMuX2VuZEFuZ2xlPXQsdGhpcy5fdXBkYXRlUGllQW5nbGVzKCksdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUubGFiZWxzRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9sYWJlbHNFbmFibGVkOih0aGlzLl9sYWJlbHNFbmFibGVkPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUubGFiZWxGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbGFiZWxGb3JtYXR0ZXI6KHRoaXMuX2xhYmVsRm9ybWF0dGVyPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLndpZHRoKCkvMixuPXRoaXMuaGVpZ2h0KCkvMixpPXRoaXMuX3NsaWNlSW5kZXhGb3JQb2ludCh7eDp0LngtZSx5OnQueS1ufSk7cmV0dXJuIG51bGw9PWk/W106W3RoaXMuZW50aXRpZXMoKVtpXV19LGUucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49dC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpLGk9ZkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuaW5uZXJSYWRpdXMoKSkscj1mRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5vdXRlclJhZGl1cygpKTtyZXR1cm4gbi5kPWZ1bmN0aW9uKHQsbixvKXtyZXR1cm4gckV0LmFyYygpLmlubmVyUmFkaXVzKGkodCxuLG8pKS5vdXRlclJhZGl1cyhyKHQsbixvKSkuc3RhcnRBbmdsZShlLl9zdGFydEFuZ2xlc1tuXSkuZW5kQW5nbGUoZS5fZW5kQW5nbGVzW25dKSh0LG4pfSxufSxlLnByb3RvdHlwZS5fdXBkYXRlUGllQW5nbGVzPWZ1bmN0aW9uKCl7aWYobnVsbCE9dGhpcy5zZWN0b3JWYWx1ZSgpJiYwIT09dGhpcy5kYXRhc2V0cygpLmxlbmd0aCl7dmFyIHQ9ZkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuc2VjdG9yVmFsdWUoKSksZT10aGlzLmRhdGFzZXRzKClbMF0sbj10aGlzLl9nZXREYXRhVG9EcmF3KCkuZ2V0KGUpLGk9ckV0LnBpZSgpLnNvcnQobnVsbCkuc3RhcnRBbmdsZSh0aGlzLl9zdGFydEFuZ2xlKS5lbmRBbmdsZSh0aGlzLl9lbmRBbmdsZSkudmFsdWUoKGZ1bmN0aW9uKG4saSl7cmV0dXJuIHQobixpLGUpfSkpKG4pO3RoaXMuX3N0YXJ0QW5nbGVzPWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdGFydEFuZ2xlfSkpLHRoaXMuX2VuZEFuZ2xlcz1pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZW5kQW5nbGV9KSl9fSxlLnByb3RvdHlwZS5fcGllQ2VudGVyPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLGkscj10aGlzLl9zdGFydEFuZ2xlPHRoaXMuX2VuZEFuZ2xlP3RoaXMuX3N0YXJ0QW5nbGU6dGhpcy5fZW5kQW5nbGUsbz10aGlzLl9zdGFydEFuZ2xlPHRoaXMuX2VuZEFuZ2xlP3RoaXMuX2VuZEFuZ2xlOnRoaXMuX3N0YXJ0QW5nbGUsYT1NYXRoLnNpbihyKSxzPU1hdGguY29zKHIpLGw9TWF0aC5zaW4obyksYz1NYXRoLmNvcyhvKTtyZXR1cm4gYT49MCYmbD49MD9zPj0wJiZjPj0wPyh0PXMsZT0wLGk9MCxuPWwpOnM8MCYmYzwwPyh0PTAsZT0tYyxpPTAsbj1hKTpzPj0wJiZjPDA/KHQ9cyxlPS1jLGk9MCxuPWEpOnM8MCYmYz49MCYmKHQ9MSxlPTEsaT0xLG49TWF0aC5tYXgoYSxsKSk6YT49MCYmbDwwP3M+PTAmJmM+PTA/KHQ9TWF0aC5tYXgocyxjKSxlPTEsaT0xLG49MSk6czwwJiZjPDA/KHQ9MCxlPTEsaT0tbCxuPWEpOnM+PTAmJmM8MD8odD1zLGU9MSxpPS1sLG49MSk6czwwJiZjPj0wJiYodD1jLGU9MSxpPTEsbj1hKTphPDAmJmw+PTA/cz49MCYmYz49MD8odD0xLGU9MCxpPS1hLG49bCk6czwwJiZjPDA/KHQ9MSxlPU1hdGgubWF4KC1zLC1jKSxpPTEsbj0xKTpzPj0wJiZjPDA/KHQ9MSxlPS1jLGk9LWEsbj0xKTpzPDAmJmM+PTAmJih0PTEsZT0tcyxpPTEsbj1sKTphPDAmJmw8MCYmKHM+PTAmJmM+PTA/KHQ9YyxlPTAsaT0tYSxuPTApOnM8MCYmYzwwPyh0PTAsZT0tcyxpPS1sLG49MCk6cz49MCYmYzwwPyh0PTEsZT0xLGk9TWF0aC5tYXgocywtYyksbj0xKTpzPDAmJmM+PTAmJih0PWMsZT0tcyxpPTEsbj0wKSkse3g6aStuPT0wPzA6aS8oaStuKSp0aGlzLndpZHRoKCkseTp0K2U9PTA/MDp0Lyh0K2UpKnRoaXMuaGVpZ2h0KCl9fSxlLnByb3RvdHlwZS5fZ2V0RGF0YVRvRHJhdz1mdW5jdGlvbigpe3ZhciBuPXQucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3LmNhbGwodGhpcyk7aWYoMD09PXRoaXMuZGF0YXNldHMoKS5sZW5ndGgpcmV0dXJuIG47dmFyIGk9ZkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuc2VjdG9yVmFsdWUoKSkscj10aGlzLmRhdGFzZXRzKClbMF0sbz1uLmdldChyKS5maWx0ZXIoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2lzVmFsaWREYXRhKGkodCxuLHIpKX0pKTtyZXR1cm4gbi5zZXQocixvKSxufSxlLl9pc1ZhbGlkRGF0YT1mdW5jdGlvbih0KXtyZXR1cm4gY0V0Lk1hdGguaXNWYWxpZE51bWJlcih0KSYmdD49MH0sZS5wcm90b3R5cGUuX3BpeGVsUG9pbnQ9ZnVuY3Rpb24odCxuLGkpe3ZhciByPWZFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnNlY3RvclZhbHVlKCkpO2lmKCFlLl9pc1ZhbGlkRGF0YShyKHQsbixpKSkpcmV0dXJue3g6TmFOLHk6TmFOfTt2YXIgbz0oZkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuaW5uZXJSYWRpdXMoKSkodCxuLGkpK2ZFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLm91dGVyUmFkaXVzKCkpKHQsbixpKSkvMixhPXJFdC5waWUoKS5zb3J0KG51bGwpLnZhbHVlKChmdW5jdGlvbih0LG4pe3ZhciBvPXIodCxuLGkpO3JldHVybiBlLl9pc1ZhbGlkRGF0YShvKT9vOjB9KSkuc3RhcnRBbmdsZSh0aGlzLl9zdGFydEFuZ2xlKS5lbmRBbmdsZSh0aGlzLl9lbmRBbmdsZSkoaS5kYXRhKCkpLHM9KGFbbl0uc3RhcnRBbmdsZSthW25dLmVuZEFuZ2xlKS8yO3JldHVybnt4Om8qTWF0aC5zaW4ocykseTotbypNYXRoLmNvcyhzKX19LGUucHJvdG90eXBlLl9hZGRpdGlvbmFsUGFpbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9yZW5kZXJBcmVhLnNlbGVjdCgiLmxhYmVsLWFyZWEiKS5yZW1vdmUoKSx0aGlzLl9sYWJlbHNFbmFibGVkJiZjRXQuV2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2RyYXdMYWJlbHMoKX0pLHQpO3ZhciBuPXRoaXMuX2dlbmVyYXRlU3Ryb2tlRHJhd1N0ZXBzKCksaT10aGlzLl9nZXREYXRhVG9EcmF3KCk7dGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPWZFdC5QbG90LmFwcGx5RHJhd1N0ZXBzKG4sdCk7ZS5fc3Ryb2tlRHJhd2Vycy5nZXQodCkuZHJhdyhpLmdldCh0KSxyKX0pKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlU3Ryb2tlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7cmV0dXJuW3thdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6bmV3IGFFdC5OdWxsfV19LGUucHJvdG90eXBlLl9zbGljZUluZGV4Rm9yUG9pbnQ9ZnVuY3Rpb24odCl7dmFyIGUsbj1NYXRoLnNxcnQoTWF0aC5wb3codC54LDIpK01hdGgucG93KHQueSwyKSksaT1NYXRoLmFjb3MoLXQueS9uKTt0Lng8MCYmKGk9MipNYXRoLlBJLWkpO2Zvcih2YXIgcj0wO3I8dGhpcy5fc3RhcnRBbmdsZXMubGVuZ3RoO3IrKylpZih0aGlzLl9zdGFydEFuZ2xlc1tyXTxpJiZ0aGlzLl9lbmRBbmdsZXNbcl0+aSl7ZT1yO2JyZWFrfWlmKHZvaWQgMCE9PWUpe3ZhciBvPXRoaXMuZGF0YXNldHMoKVswXSxhPW8uZGF0YSgpW2VdLHM9dGhpcy5pbm5lclJhZGl1cygpLmFjY2Vzc29yKGEsZSxvKSxsPXRoaXMub3V0ZXJSYWRpdXMoKS5hY2Nlc3NvcihhLGUsbyk7aWYobj5zJiZuPGwpcmV0dXJuIGV9cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLl9kcmF3TGFiZWxzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxuPXRoaXMuX3JlbmRlckFyZWEuYXBwZW5kKCJnIikuY2xhc3NlZCgibGFiZWwtYXJlYSIsITApLGk9bmV3IG9FdC5TdmdDb250ZXh0KG4ubm9kZSgpKSxyPW5ldyBvRXQuQ2FjaGVNZWFzdXJlcihpKSxvPW5ldyBvRXQuV3JpdGVyKHIsaSksYT10aGlzLmRhdGFzZXRzKClbMF0scz10aGlzLl9nZXREYXRhVG9EcmF3KCkuZ2V0KGEpLGw9cy5sZW5ndGgsYz1mdW5jdGlvbihpKXt2YXIgbD1zW2ldLGM9dS5zZWN0b3JWYWx1ZSgpLmFjY2Vzc29yKGwsaSxhKTtpZighY0V0Lk1hdGguaXNWYWxpZE51bWJlcihjKSlyZXR1cm4iY29udGludWUiO2M9dS5fbGFiZWxGb3JtYXR0ZXIoYyxsLGksYSk7dmFyIGg9ci5tZWFzdXJlKGMpLGQ9KHUuX2VuZEFuZ2xlc1tpXSt1Ll9zdGFydEFuZ2xlc1tpXSkvMixwPXUub3V0ZXJSYWRpdXMoKS5hY2Nlc3NvcihsLGksYSk7dS5vdXRlclJhZGl1cygpLnNjYWxlJiYocD11Lm91dGVyUmFkaXVzKCkuc2NhbGUuc2NhbGUocCkpO3ZhciBmPXUuaW5uZXJSYWRpdXMoKS5hY2Nlc3NvcihsLGksYSk7dS5pbm5lclJhZGl1cygpLnNjYWxlJiYoZj11LmlubmVyUmFkaXVzKCkuc2NhbGUuc2NhbGUoZikpO3ZhciBtPShwK2YpLzIsZz1NYXRoLnNpbihkKSptLWgud2lkdGgvMixfPS1NYXRoLmNvcyhkKSptLWguaGVpZ2h0LzIseT1be3g6Zyx5Ol99LHt4OmcseTpfK2guaGVpZ2h0fSx7eDpnK2gud2lkdGgseTpffSx7eDpnK2gud2lkdGgseTpfK2guaGVpZ2h0fV0sdj15LmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5hYnMoZS54KTw9dC53aWR0aCgpLzImJk1hdGguYWJzKGUueSk8PXQuaGVpZ2h0KCkvMn0pKTt2JiYodj15Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuX3NsaWNlSW5kZXhGb3JQb2ludChlKX0pKS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1pfSkpKTt2YXIgYj1lLmZpbGwobCxpLGEpLHg9MS42KmNFdC5Db2xvci5jb250cmFzdCgid2hpdGUiLGIpPGNFdC5Db2xvci5jb250cmFzdCgiYmxhY2siLGIpLHc9bi5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitnKyIsIitfKyIpIik7dy5jbGFzc2VkKHg/ImRhcmstbGFiZWwiOiJsaWdodC1sYWJlbCIsITApLHcuc3R5bGUoInZpc2liaWxpdHkiLHY/ImluaGVyaXQiOiJoaWRkZW4iKSxvLndyaXRlKGMsaC53aWR0aCxoLmhlaWdodCx7eEFsaWduOiJjZW50ZXIiLHlBbGlnbjoiY2VudGVyIn0sdy5ub2RlKCkpfSx1PXRoaXMsaD0wO2g8bDtoKyspYyhoKX0sZS5fSU5ORVJfUkFESVVTX0tFWT0iaW5uZXItcmFkaXVzIixlLl9PVVRFUl9SQURJVVNfS0VZPSJvdXRlci1yYWRpdXMiLGUuX1NFQ1RPUl9WQUxVRV9LRVk9InNlY3Rvci12YWx1ZSIsZX0pKGZFdC5QbG90KTtuRXQuUGllPW1FdDt2YXIgZ0V0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShnRXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBfRXQ9dU8seUV0PUVkdCx2RXQ9SW10LGJFdD1fbXQseEV0PU5TdCx3RXQ9V3d0LFNFdD1KU3QsTUV0PVp5dCxFRXQ9Rmd0LFRFdD11d3QsQ0V0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9sYWJlbHNFbmFibGVkPSExLGUuX2xhYmVsPW51bGwsZS5hbmltYXRvcigicmVjdGFuZ2xlcyIsbmV3IGJFdC5OdWxsKSxlLmFkZENsYXNzKCJyZWN0YW5nbGUtcGxvdCIpLGUuYXR0cigiZmlsbCIsKG5ldyBNRXQuQ29sb3IpLnJhbmdlKClbMF0pLGV9cmV0dXJuIF9FdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fY3JlYXRlRHJhd2VyPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB3RXQuUHJveHlEcmF3ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBTRXQuUmVjdGFuZ2xlU1ZHRHJhd2VyfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgeEV0LlJlY3RhbmdsZUNhbnZhc0RyYXdlcih0KX0pKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIG49dGhpcyxpPXQucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvci5jYWxsKHRoaXMpLHI9VEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxvPWlbZS5fWDJfS0VZXSxhPVRFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkscz1pW2UuX1kyX0tFWV0sbD10aGlzLngoKS5zY2FsZSxjPXRoaXMueSgpLnNjYWxlO3JldHVybiBudWxsIT1vPyhpLndpZHRoPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTWF0aC5hYnMobyh0LGUsbiktcih0LGUsbikpfSxpLng9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNYXRoLm1pbihvKHQsZSxuKSxyKHQsZSxuKSl9KTooaS53aWR0aD1mdW5jdGlvbih0LGUsaSl7cmV0dXJuIG4uX3JlY3RhbmdsZVdpZHRoKGwpfSxpLng9ZnVuY3Rpb24odCxlLG4pe3JldHVybiByKHQsZSxuKS0uNSppLndpZHRoKHQsZSxuKX0pLG51bGwhPXM/KGkuaGVpZ2h0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTWF0aC5hYnMocyh0LGUsbiktYSh0LGUsbikpfSxpLnk9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNYXRoLm1heChzKHQsZSxuKSxhKHQsZSxuKSktaS5oZWlnaHQodCxlLG4pfSk6KGkuaGVpZ2h0PWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbi5fcmVjdGFuZ2xlV2lkdGgoYyl9LGkueT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGEodCxlLG4pLS41KmkuaGVpZ2h0KHQsZSxuKX0pLGRlbGV0ZSBpW2UuX1gyX0tFWV0sZGVsZXRlIGlbZS5fWTJfS0VZXSxpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVEcmF3U3RlcHM9ZnVuY3Rpb24oKXtyZXR1cm5be2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcigicmVjdGFuZ2xlcyIpfV19LGUucHJvdG90eXBlLl9maWx0ZXJGb3JQcm9wZXJ0eT1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuX2ZpbHRlckZvclByb3BlcnR5LmNhbGwodGhpcywieDIiPT09ZT8ieCI6InkyIj09PWU/InkiOmUpfSxlLnByb3RvdHlwZS54PWZ1bmN0aW9uKG4saSxyKXtpZihudWxsPT1uKXJldHVybiB0LnByb3RvdHlwZS54LmNhbGwodGhpcyk7aWYobnVsbD09aT90LnByb3RvdHlwZS54LmNhbGwodGhpcyxuKTp0LnByb3RvdHlwZS54LmNhbGwodGhpcyxuLGksciksbnVsbCE9aSl7dmFyIG89dGhpcy54MigpLGE9byYmby5hY2Nlc3NvcjtudWxsIT1hJiZ0aGlzLl9iaW5kUHJvcGVydHkoZS5fWDJfS0VZLGEsaSxvLnBvc3RTY2FsZSl9cmV0dXJuIGkgaW5zdGFuY2VvZiBNRXQuQ2F0ZWdvcnkmJmkuaW5uZXJQYWRkaW5nKDApLm91dGVyUGFkZGluZygwKSx0aGlzfSxlLnByb3RvdHlwZS54Mj1mdW5jdGlvbih0LG4pe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGUuX1gyX0tFWSk7dmFyIGk9dGhpcy54KCk7cmV0dXJuIHRoaXMuX2JpbmRQcm9wZXJ0eShlLl9YMl9LRVksdCxpJiZpLnNjYWxlLG4pLHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUueT1mdW5jdGlvbihuLGkscil7aWYobnVsbD09bilyZXR1cm4gdC5wcm90b3R5cGUueS5jYWxsKHRoaXMpO2lmKG51bGw9PWk/dC5wcm90b3R5cGUueS5jYWxsKHRoaXMsbik6dC5wcm90b3R5cGUueS5jYWxsKHRoaXMsbixpLHIpLG51bGwhPWkpe3ZhciBvPXRoaXMueTIoKSxhPW8mJm8uYWNjZXNzb3I7bnVsbCE9YSYmdGhpcy5fYmluZFByb3BlcnR5KGUuX1kyX0tFWSxhLGksby5wb3N0U2NhbGUpfXJldHVybiBpIGluc3RhbmNlb2YgTUV0LkNhdGVnb3J5JiZpLmlubmVyUGFkZGluZygwKS5vdXRlclBhZGRpbmcoMCksdGhpc30sZS5wcm90b3R5cGUueTI9ZnVuY3Rpb24odCxuKXtpZihudWxsPT10KXJldHVybiB0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9ZMl9LRVkpO3ZhciBpPXRoaXMueSgpO3JldHVybiB0aGlzLl9iaW5kUHJvcGVydHkoZS5fWTJfS0VZLHQsaSYmaS5zY2FsZSxuKSx0aGlzLnJlbmRlcigpLHRoaXN9LGUucHJvdG90eXBlLmVudGl0aWVzQXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7cmV0dXJuIHRoaXMuZW50aXRpZXMoKS5maWx0ZXIoKGZ1bmN0aW9uKG4pe3ZhciBpPW4uZGF0dW0scj1uLmluZGV4LG89bi5kYXRhc2V0LGE9ZS54KGkscixvKSxzPWUueShpLHIsbyksbD1lLndpZHRoKGkscixvKSxjPWUuaGVpZ2h0KGkscixvKTtyZXR1cm4gYTw9dC54JiZ0Lng8PWErbCYmczw9dC55JiZ0Lnk8PXMrY30pKX0sZS5wcm90b3R5cGUuX2VudGl0eUJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZW50aXR5QkJveCh0LmRhdHVtLHQuaW5kZXgsdC5kYXRhc2V0LHRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpKX0sZS5wcm90b3R5cGUuX2VudGl0eUJCb3g9ZnVuY3Rpb24odCxlLG4saSl7cmV0dXJue3g6aS54KHQsZSxuKSx5OmkueSh0LGUsbiksd2lkdGg6aS53aWR0aCh0LGUsbiksaGVpZ2h0OmkuaGVpZ2h0KHQsZSxuKX19LGUucHJvdG90eXBlLmxhYmVsPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2xhYmVsOih0aGlzLl9sYWJlbD10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmxhYmVsc0VuYWJsZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbGFiZWxzRW5hYmxlZDoodGhpcy5fbGFiZWxzRW5hYmxlZD10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnM9ZnVuY3Rpb24oKXt2YXIgZT10LnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzLmNhbGwodGhpcyk7cmV0dXJuIG51bGwhPXRoaXMueDIoKSYmKGUueDI9VEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueDIoKSkpLG51bGwhPXRoaXMueTIoKSYmKGUueTI9VEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTIoKSkpLGV9LGUucHJvdG90eXBlLl9waXhlbFBvaW50PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxyPWkueCh0LGUsbiksbz1pLnkodCxlLG4pO3JldHVybnt4OnIraS53aWR0aCh0LGUsbikvMix5Om8raS5oZWlnaHQodCxlLG4pLzJ9fSxlLnByb3RvdHlwZS5fcmVjdGFuZ2xlV2lkdGg9ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIE1FdC5DYXRlZ29yeSlyZXR1cm4gdC5yYW5nZUJhbmQoKTt2YXIgZT10PT09dGhpcy54KCkuc2NhbGU/dGhpcy54KCkuYWNjZXNzb3I6dGhpcy55KCkuYWNjZXNzb3Isbj15RXQuc2V0KEVFdC5BcnJheS5mbGF0dGVuKHRoaXMuZGF0YXNldHMoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRhdGEoKS5tYXAoKGZ1bmN0aW9uKG4saSl7cmV0dXJuIGUobixpLHQpLnZhbHVlT2YoKX0pKX0pKSkpLnZhbHVlcygpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuK3R9KSksaT1FRXQuTWF0aC5taW4obiwwKSxyPUVFdC5NYXRoLm1heChuLDApLG89dC5zY2FsZShpKTtyZXR1cm4odC5zY2FsZShyKS1vKS9NYXRoLmFicyhyLWkpfSxlLnByb3RvdHlwZS5fZ2V0RGF0YVRvRHJhdz1mdW5jdGlvbigpe3ZhciB0PW5ldyBFRXQuTWFwLGU9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7cmV0dXJuIHRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgaT1uLmRhdGEoKS5tYXAoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIEVFdC5NYXRoLmlzVmFsaWROdW1iZXIoZS54KHQsaSxuKSkmJkVFdC5NYXRoLmlzVmFsaWROdW1iZXIoZS55KHQsaSxuKSkmJkVFdC5NYXRoLmlzVmFsaWROdW1iZXIoZS53aWR0aCh0LGksbikpJiZFRXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGUuaGVpZ2h0KHQsaSxuKSk/dDpudWxsfSkpO3Quc2V0KG4saSl9KSksdH0sZS5wcm90b3R5cGUuX2FkZGl0aW9uYWxQYWludD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX3JlbmRlckFyZWEuc2VsZWN0QWxsKCIubGFiZWwtYXJlYSIpLnJlbW92ZSgpLHRoaXMuX2xhYmVsc0VuYWJsZWQmJm51bGwhPXRoaXMubGFiZWwoKSYmRUV0LldpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlLl9kcmF3TGFiZWxzKCl9KSx0KX0sZS5wcm90b3R5cGUuX2RyYXdMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5fZ2V0RGF0YVRvRHJhdygpO3RoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihuLGkpe3JldHVybiB0Ll9kcmF3TGFiZWwoZSxuLGkpfSkpfSxlLnByb3RvdHlwZS5fZHJhd0xhYmVsPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCkscj10aGlzLl9yZW5kZXJBcmVhLmFwcGVuZCgiZyIpLmNsYXNzZWQoImxhYmVsLWFyZWEiLCEwKSxvPW5ldyB2RXQuU3ZnQ29udGV4dChyLm5vZGUoKSksYT1uZXcgdkV0LkNhY2hlTWVhc3VyZXIobykscz1uZXcgdkV0LldyaXRlcihhLG8pLGw9dGhpcy54KCkuc2NhbGUucmFuZ2UoKSxjPXRoaXMueSgpLnNjYWxlLnJhbmdlKCksdT1NYXRoLm1pbi5hcHBseShudWxsLGwpLGg9TWF0aC5tYXguYXBwbHkobnVsbCxsKSxkPU1hdGgubWluLmFwcGx5KG51bGwsYykscD1NYXRoLm1heC5hcHBseShudWxsLGMpLGY9dC5nZXQoZSksbT1mLmxlbmd0aCxnPTA7ZzxtO2crKyl7dmFyIF89ZltnXTtpZihudWxsIT1fKXt2YXIgeT0iIit0aGlzLmxhYmVsKCkoXyxnLGUpLHY9YS5tZWFzdXJlKHkpLGI9aS54KF8sZyxlKSx4PWkueShfLGcsZSksdz1pLndpZHRoKF8sZyxlKSxTPWkuaGVpZ2h0KF8sZyxlKTtpZih2LmhlaWdodDw9UyYmdi53aWR0aDw9dyl7dmFyIE09e21pbjpiKz0ody12LndpZHRoKS8yLG1heDpiK3Yud2lkdGh9LEU9e21pbjp4Kz0oUy12LmhlaWdodCkvMixtYXg6eCt2LmhlaWdodH07aWYoTS5taW48dXx8TS5tYXg+aHx8RS5taW48ZHx8RS5tYXg+cCljb250aW51ZTtpZih0aGlzLl9vdmVybGF5TGFiZWwoTSxFLGcsbix0KSljb250aW51ZTt2YXIgVD1pLmZpbGwoXyxnLGUpLEM9MS42KkVFdC5Db2xvci5jb250cmFzdCgid2hpdGUiLFQpPEVFdC5Db2xvci5jb250cmFzdCgiYmxhY2siLFQpLEE9ci5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitiKyIsIit4KyIpIik7QS5jbGFzc2VkKEM/ImRhcmstbGFiZWwiOiJsaWdodC1sYWJlbCIsITApLHMud3JpdGUoeSx2LndpZHRoLHYuaGVpZ2h0LHt4QWxpZ246ImNlbnRlciIseUFsaWduOiJjZW50ZXIifSxBLm5vZGUoKSl9fX19LGUucHJvdG90eXBlLl9vdmVybGF5TGFiZWw9ZnVuY3Rpb24odCxlLG4saSxyKXtmb3IodmFyIG89dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYT10aGlzLmRhdGFzZXRzKCkscz1pO3M8YS5sZW5ndGg7cysrKWZvcih2YXIgbD1hW3NdLGM9ci5nZXQobCksdT1jLmxlbmd0aCxoPXM9PT1pP24rMTowO2g8dTtoKyspaWYoRUV0LkRPTS5pbnRlcnNlY3RzQkJveCh0LGUsdGhpcy5fZW50aXR5QkJveChjW2hdLGgsbCxvKSkpcmV0dXJuITA7cmV0dXJuITF9LGUuX1gyX0tFWT0ieDIiLGUuX1kyX0tFWT0ieTIiLGV9KShnTXQuWFlQbG90KTtnRXQuUmVjdGFuZ2xlPUNFdDt2YXIgQUV0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShBRXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBrRXQ9dU8sTEV0PUltdCxQRXQ9Z3l0LE5FdD1VeHQsSUV0PVd3dCxSRXQ9bk10LE9FdD1fbXQsekV0PU5TdCxERXQ9Wnl0LEJFdD1GZ3QsSEV0PXBNdCxGRXQ9dXd0LFZFdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztlLl9sYWJlbEZvcm1hdHRlcj1QRXQuaWRlbnRpdHkoKSxlLl9sYWJlbHNFbmFibGVkPSExLGUuYWRkQ2xhc3MoInNjYXR0ZXItcGxvdCIpO3ZhciBuPW5ldyBPRXQuRWFzaW5nO24uc3RhcnREZWxheSg1KSxuLnN0ZXBEdXJhdGlvbigyNTApLG4ubWF4VG90YWxEdXJhdGlvbihGRXQuUGxvdC5fQU5JTUFUSU9OX01BWF9EVVJBVElPTiksZS5hbmltYXRvcihIRXQuQW5pbWF0b3IuTUFJTixuKSxlLmF0dHIoIm9wYWNpdHkiLC42KSxlLmF0dHIoImZpbGwiLChuZXcgREV0LkNvbG9yKS5yYW5nZSgpWzBdKSxlLnNpemUoNik7dmFyIGk9TkV0LmNpcmNsZSgpO3JldHVybiBlLnN5bWJvbCgoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxlLl9sYWJlbENvbmZpZz1uZXcgQkV0Lk1hcCxlfXJldHVybiBrRXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2J1aWxkTGlnaHR3ZWlnaHRQbG90RW50aXRpZXM9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gdC5wcm90b3R5cGUuX2J1aWxkTGlnaHR3ZWlnaHRQbG90RW50aXRpZXMuY2FsbCh0aGlzLGUpLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9RkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKG4uc2l6ZSgpKSh0LmRhdHVtLHQuaW5kZXgsdC5kYXRhc2V0KTtyZXR1cm4gdC5kaWFtZXRlcj1lLHR9KSl9LGUucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IElFdC5Qcm94eURyYXdlcigoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFJFdC5TeW1ib2xTVkdEcmF3ZXJ9KSwoZnVuY3Rpb24obil7cmV0dXJuIG5ldyB6RXQuQ2FudmFzRHJhd2VyKG4sUkV0Lm1ha2VTeW1ib2xDYW52YXNEcmF3U3RlcCh0LChmdW5jdGlvbigpe3JldHVybiBGRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IoZS5zeW1ib2woKSl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gRkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKGUuc2l6ZSgpKX0pKSl9KSl9LGUucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbnVsbD09dD90aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9TSVpFX0tFWSk6KHRoaXMuX2JpbmRQcm9wZXJ0eShlLl9TSVpFX0tFWSx0LG4pLHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLnN5bWJvbD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9TWU1CT0xfS0VZKToodGhpcy5fcHJvcGVydHlCaW5kaW5ncy5zZXQoZS5fU1lNQk9MX0tFWSx7YWNjZXNzb3I6dH0pLHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLl9nZW5lcmF0ZURyYXdTdGVwcz1mdW5jdGlvbigpe3ZhciB0PVtdO2lmKHRoaXMuX2FuaW1hdGVPbk5leHRSZW5kZXIoKSl7dmFyIGU9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksbj1GRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zeW1ib2woKSk7ZS5kPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbih0LGUsaSkoMCkobnVsbCl9LHQucHVzaCh7YXR0clRvUHJvamVjdG9yOmUsYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoSEV0LkFuaW1hdG9yLlJFU0VUKX0pfXJldHVybiB0LnB1c2goe2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihIRXQuQW5pbWF0b3IuTUFJTil9KSx0fSxlLnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIGU9dC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpLG49RkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxpPUZFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk7cmV0dXJuIGUueD1uLGUueT1pLGUudHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4idHJhbnNsYXRlKCIrbih0LGUscikrIiwiK2kodCxlLHIpKyIpIn0sZS5kPXRoaXMuX2NvbnN0cnVjdFN5bWJvbEdlbmVyYXRvcigpLGV9LGUucHJvdG90eXBlLl9jb25zdHJ1Y3RTeW1ib2xHZW5lcmF0b3I9ZnVuY3Rpb24oKXt2YXIgdD1GRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zeW1ib2woKSksZT1GRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zaXplKCkpO3JldHVybiBmdW5jdGlvbihuLGkscil7cmV0dXJuIHQobixpLHIpKGUobixpLHIpKShudWxsKX19LGUucHJvdG90eXBlLl9lbnRpdHlCb3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJue3g6dC5wb3NpdGlvbi54LXQuZGlhbWV0ZXIvMix5OnQucG9zaXRpb24ueS10LmRpYW1ldGVyLzIsd2lkdGg6dC5kaWFtZXRlcixoZWlnaHQ6dC5kaWFtZXRlcn19LGUucHJvdG90eXBlLl9lbnRpdHlWaXNpYmxlT25QbG90PWZ1bmN0aW9uKHQsZSl7dmFyIG49e21pbjplLnRvcExlZnQueCxtYXg6ZS5ib3R0b21SaWdodC54fSxpPXttaW46ZS50b3BMZWZ0LnksbWF4OmUuYm90dG9tUmlnaHQueX0scj10aGlzLl9lbnRpdHlCb3VuZHModCk7cmV0dXJuIEJFdC5ET00uaW50ZXJzZWN0c0JCb3gobixpLHIpfSxlLnByb3RvdHlwZS5lbnRpdGllc0F0PWZ1bmN0aW9uKHQpe3ZhciBlPUZFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksbj1GRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpLGk9RkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuc2l6ZSgpKTtyZXR1cm4gdGhpcy5lbnRpdGllcygpLmZpbHRlcigoZnVuY3Rpb24ocil7dmFyIG89ci5kYXR1bSxhPXIuaW5kZXgscz1yLmRhdGFzZXQsbD1lKG8sYSxzKSxjPW4obyxhLHMpLHU9aShvLGEscyk7cmV0dXJuIGwtdS8yPD10LngmJnQueDw9bCt1LzImJmMtdS8yPD10LnkmJnQueTw9Yyt1LzJ9KSl9LGUucHJvdG90eXBlLmxhYmVsc0VuYWJsZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbGFiZWxzRW5hYmxlZDoodGhpcy5fbGFiZWxzRW5hYmxlZD10LHRoaXMuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGUoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0PWZ1bmN0aW9uKG4pe3ZhciBpPXQucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQuY2FsbCh0aGlzLG4pLHI9dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImciKS5jbGFzc2VkKGUuX0xBQkVMX0FSRUFfQ0xBU1MsITApLG89bmV3IExFdC5TdmdDb250ZXh0KHIubm9kZSgpKSxhPW5ldyBMRXQuQ2FjaGVNZWFzdXJlcihvKSxzPW5ldyBMRXQuV3JpdGVyKGEsbyk7cmV0dXJuIHRoaXMuX2xhYmVsQ29uZmlnLnNldChuLHtsYWJlbEFyZWE6cixtZWFzdXJlcjphLHdyaXRlcjpzfSksaX0sZS5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldE5vZGVzLmNhbGwodGhpcyxlKTt2YXIgbj10aGlzLl9sYWJlbENvbmZpZy5nZXQoZSk7bnVsbCE9biYmKG4ubGFiZWxBcmVhLnJlbW92ZSgpLHRoaXMuX2xhYmVsQ29uZmlnLmRlbGV0ZShlKSl9LGUucHJvdG90eXBlLl9hZGRpdGlvbmFsUGFpbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2xhYmVsQ29uZmlnLmdldCh0KS5sYWJlbEFyZWEuc2VsZWN0QWxsKCJnIikucmVtb3ZlKCl9KSksdGhpcy5fbGFiZWxzRW5hYmxlZCYmQkV0LldpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlLl9kcmF3TGFiZWxzKCl9KSx0KX0sZS5wcm90b3R5cGUuX2RyYXdMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5fZ2V0RGF0YVRvRHJhdygpLG49dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7dGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKGkpe2Zvcih2YXIgcj1lLmdldChpKSxvPXIubGVuZ3RoLGE9MDthPG87YSsrKXt2YXIgcz1yW2FdO251bGwhPXMmJnQuX2RyYXdMYWJlbChzLGEsaSxuKX19KSl9LGUucHJvdG90eXBlLl9kcmF3TGFiZWw9ZnVuY3Rpb24odCxlLG4saSl7aWYobnVsbCE9dC5sYWJlbCl7dmFyIHI9dGhpcy5fbGFiZWxDb25maWcuZ2V0KG4pLG89ci5sYWJlbEFyZWEsYT1yLm1lYXN1cmVyLHM9ci53cml0ZXIsbD17eDppLngodCxlLG4pLHk6aS55KHQsZSxuKX0sYz1GRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zaXplKCkpKHQsZSxuKSx1PXRoaXMuX2xhYmVsRm9ybWF0dGVyKHQubGFiZWwsdCxlLG4pLGg9YS5tZWFzdXJlKHUpLGQ9dGhpcy5fY2FsY3VsYXRlTGFiZWxQcm9wZXJ0aWVzKGwsYyxoKSxwPWQuY29udGFpbmVyRGltZW5zaW9ucyxmPWQuYWxpZ25tZW50LG09dGhpcy5fY3JlYXRlTGFiZWxDb250YWluZXIobyxkLmxhYmVsQ29udGFpbmVyT3JpZ2luLGQubGFiZWxPcmlnaW4saCk7cy53cml0ZSh1LHAud2lkdGgscC5oZWlnaHQse3hBbGlnbjpmLngseUFsaWduOmYueX0sbS5ub2RlKCkpfX0sZS5wcm90b3R5cGUuX2NhbGN1bGF0ZUxhYmVsUHJvcGVydGllcz1mdW5jdGlvbih0LG4saSl7cmV0dXJue2NvbnRhaW5lckRpbWVuc2lvbnM6e3dpZHRoOmkud2lkdGgsaGVpZ2h0OmkuaGVpZ2h0fSxsYWJlbENvbnRhaW5lck9yaWdpbjp7eDp0LngtaS53aWR0aC8yLHk6dC55LWkuaGVpZ2h0LzIrKG48aS5oZWlnaHQ/bi8yK2UuX0xBQkVMX01BUkdJTl9GUk9NX0JVQkJMRTowKX0sbGFiZWxPcmlnaW46e3g6dC54LHk6dC55fSxhbGlnbm1lbnQ6e3g6ImNlbnRlciIseToiY2VudGVyIn19fSxlLnByb3RvdHlwZS5fY3JlYXRlTGFiZWxDb250YWluZXI9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dC5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitlLngrIiwgIitlLnkrIikiKTtyZXR1cm4gci5jbGFzc2VkKCJvbi1iYXItbGFiZWwiLCEwKSxyfSxlLl9TSVpFX0tFWT0ic2l6ZSIsZS5fU1lNQk9MX0tFWT0ic3ltYm9sIixlLl9MQUJFTF9BUkVBX0NMQVNTPSJzY2F0dGVyLWxhYmVsLXRleHQtYXJlYSIsZS5fTEFCRUxfTUFSR0lOX0ZST01fQlVCQkxFPTE1LGV9KShnTXQuWFlQbG90KTtBRXQuU2NhdHRlcj1WRXQ7dmFyIFVFdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoVUV0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgakV0PXVPLEdFdD1fbXQsV0V0PVd3dCxxRXQ9UVN0LFlFdD1aeXQsWEV0PWtfdCwkRXQ9dXd0LEtFdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5hZGRDbGFzcygic2VnbWVudC1wbG90IiksZS5hdHRyKCJzdHJva2UiLChuZXcgWUV0LkNvbG9yKS5yYW5nZSgpWzBdKSxlLmF0dHIoInN0cm9rZS13aWR0aCIsIjJweCIpLGV9cmV0dXJuIGpFdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fY3JlYXRlRHJhd2VyPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXRXQuUHJveHlEcmF3ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBxRXQuU2VnbWVudFNWR0RyYXdlcn0pLChmdW5jdGlvbigpe3JldHVybiBYRXQud2FybigiY2FudmFzIHJlbmRlcmVyIGlzIG5vdCBzdXBwb3J0ZWQgb24gU2VnbWVudCBQbG90ISIpLG51bGx9KSl9LGUucHJvdG90eXBlLl9nZW5lcmF0ZURyYXdTdGVwcz1mdW5jdGlvbigpe3JldHVyblt7YXR0clRvUHJvamVjdG9yOnRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGFuaW1hdG9yOm5ldyBHRXQuTnVsbH1dfSxlLnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHk9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvdG90eXBlLl9maWx0ZXJGb3JQcm9wZXJ0eS5jYWxsKHRoaXMsIngyIj09PWU/IngiOiJ5MiI9PT1lPyJ5IjplKX0sZS5wcm90b3R5cGUueD1mdW5jdGlvbihuLGkpe2lmKG51bGw9PW4pcmV0dXJuIHQucHJvdG90eXBlLnguY2FsbCh0aGlzKTtpZihudWxsPT1pKXQucHJvdG90eXBlLnguY2FsbCh0aGlzLG4pO2Vsc2V7dC5wcm90b3R5cGUueC5jYWxsKHRoaXMsbixpKTt2YXIgcj10aGlzLngyKCksbz1yJiZyLmFjY2Vzc29yO251bGwhPW8mJnRoaXMuX2JpbmRQcm9wZXJ0eShlLl9YMl9LRVksbyxpKX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUueDI9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fWDJfS0VZKTt2YXIgbj10aGlzLngoKTtyZXR1cm4gdGhpcy5fYmluZFByb3BlcnR5KGUuX1gyX0tFWSx0LG4mJm4uc2NhbGUpLHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUueT1mdW5jdGlvbihuLGkpe2lmKG51bGw9PW4pcmV0dXJuIHQucHJvdG90eXBlLnkuY2FsbCh0aGlzKTtpZihudWxsPT1pKXQucHJvdG90eXBlLnkuY2FsbCh0aGlzLG4pO2Vsc2V7dC5wcm90b3R5cGUueS5jYWxsKHRoaXMsbixpKTt2YXIgcj10aGlzLnkyKCksbz1yJiZyLmFjY2Vzc29yO251bGwhPW8mJnRoaXMuX2JpbmRQcm9wZXJ0eShlLl9ZMl9LRVksbyxpKX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUueTI9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fWTJfS0VZKTt2YXIgbj10aGlzLnkoKTtyZXR1cm4gdGhpcy5fYmluZFByb3BlcnR5KGUuX1kyX0tFWSx0LG4mJm4uc2NhbGUpLHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciBlPXQucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnMuY2FsbCh0aGlzKTtyZXR1cm4gZS54MT0kRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLGUueDI9bnVsbD09dGhpcy54MigpPyRFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSk6JEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueDIoKSksZS55MT0kRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpLGUueTI9bnVsbD09dGhpcy55MigpPyRFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk6JEV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTIoKSksZX0sZS5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmVudGl0eU5lYXJlc3QodCk7cmV0dXJuIG51bGwhPWU/W2VdOltdfSxlLnByb3RvdHlwZS5lbnRpdGllc0luPWZ1bmN0aW9uKHQsZSl7dmFyIG4saTtyZXR1cm4gbnVsbD09ZT8obj17bWluOnQudG9wTGVmdC54LG1heDp0LmJvdHRvbVJpZ2h0Lnh9LGk9e21pbjp0LnRvcExlZnQueSxtYXg6dC5ib3R0b21SaWdodC55fSk6KG49dCxpPWUpLHRoaXMuX2VudGl0aWVzSW50ZXJzZWN0aW5nKG4saSl9LGUucHJvdG90eXBlLl9lbnRpdGllc0ludGVyc2VjdGluZz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1bXSxpPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLHI9dGhpcy5lbnRpdGllcygpLG89ci5sZW5ndGgsYT0wO2E8bzthKyspe3ZhciBzPXJbYV07dGhpcy5fbGluZUludGVyc2VjdHNCb3gocyx0LGUsaSkmJm4ucHVzaChzKX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuX2xpbmVJbnRlcnNlY3RzQm94PWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPXRoaXMsbz1pLngxKHQuZGF0dW0sdC5pbmRleCx0LmRhdGFzZXQpLGE9aS54Mih0LmRhdHVtLHQuaW5kZXgsdC5kYXRhc2V0KSxzPWkueTEodC5kYXR1bSx0LmluZGV4LHQuZGF0YXNldCksbD1pLnkyKHQuZGF0dW0sdC5pbmRleCx0LmRhdGFzZXQpO2lmKGUubWluPD1vJiZvPD1lLm1heCYmbi5taW48PXMmJnM8PW4ubWF4fHxlLm1pbjw9YSYmYTw9ZS5tYXgmJm4ubWluPD1sJiZsPD1uLm1heClyZXR1cm4hMDt2YXIgYz17eDpvLHk6c30sdT17eDphLHk6bH0saD1be3g6ZS5taW4seTpuLm1pbn0se3g6ZS5taW4seTpuLm1heH0se3g6ZS5tYXgseTpuLm1heH0se3g6ZS5tYXgseTpuLm1pbn1dO3JldHVybiBoLmZpbHRlcigoZnVuY3Rpb24odCxlKXtyZXR1cm4gMCE9PWUmJnIuX2xpbmVJbnRlcnNlY3RzU2VnbWVudChjLHUsdCxoW2UtMV0pJiZyLl9saW5lSW50ZXJzZWN0c1NlZ21lbnQodCxoW2UtMV0sYyx1KX0pKS5sZW5ndGg+MH0sZS5wcm90b3R5cGUuX2xpbmVJbnRlcnNlY3RzU2VnbWVudD1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj1mdW5jdGlvbih0LGUsbil7cmV0dXJuKGUueC10LngpKihuLnktZS55KS0oZS55LXQueSkqKG4ueC1lLngpfTtyZXR1cm4gcih0LGUsbikqcih0LGUsaSk8MH0sZS5fWDJfS0VZPSJ4MiIsZS5fWTJfS0VZPSJ5MiIsZX0pKGdNdC5YWVBsb3QpO1VFdC5TZWdtZW50PUtFdDt2YXIgWkV0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShaRXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBKRXQ9dU8sUUV0PUVkdCx0VHQ9X210LGVUdD1kd3QsblR0PUZndCxpVHQ9dXd0LHJUdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fc3RhY2tpbmdSZXN1bHQ9ZVR0Lm1lbVRodW5rKChmdW5jdGlvbigpe3JldHVybiBlLmRhdGFzZXRzKCl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS54KCkuYWNjZXNzb3J9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS55KCkuYWNjZXNzb3J9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS5fc3RhY2tpbmdPcmRlcn0pLChmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gblR0LlN0YWNraW5nLnN0YWNrKHQsZSxuLGkpfSkpLGUuX3N0YWNrZWRFeHRlbnQ9ZVR0Lm1lbVRodW5rKGUuX3N0YWNraW5nUmVzdWx0LChmdW5jdGlvbigpe3JldHVybiBlLngoKS5hY2Nlc3Nvcn0pLChmdW5jdGlvbigpe3JldHVybiBlLl9maWx0ZXJGb3JQcm9wZXJ0eSgieSIpfSksKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gblR0LlN0YWNraW5nLnN0YWNrZWRFeHRlbnQodCxlLG4pfSkpLGUuX2Jhc2VsaW5lVmFsdWU9MCxlLl9zdGFja2luZ09yZGVyPSJib3R0b211cCIsZS5hZGRDbGFzcygic3RhY2tlZC1hcmVhLXBsb3QiKSxlLl9iYXNlbGluZVZhbHVlUHJvdmlkZXI9ZnVuY3Rpb24oKXtyZXR1cm5bZS5fYmFzZWxpbmVWYWx1ZV19LGUuY3JvcHBlZFJlbmRlcmluZ0VuYWJsZWQoITEpLGV9cmV0dXJuIEpFdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT90LnByb3RvdHlwZS5jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZC5jYWxsKHRoaXMpOmU/KG5UdC5XaW5kb3cud2FybigiV2FybmluZzogU3RhY2tlZCBBcmVhIFBsb3QgZG9lcyBub3Qgc3VwcG9ydCBjcm9wcGVkIHJlbmRlcmluZy4iKSx0aGlzKTp0LnByb3RvdHlwZS5jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZC5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9nZXRBbmltYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHRUdC5OdWxsfSxlLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9iYXNlbGluZT10aGlzLl9yZW5kZXJBcmVhLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImJhc2VsaW5lIiwhMCl9LGUucHJvdG90eXBlLng9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbnVsbD09ZT90LnByb3RvdHlwZS54LmNhbGwodGhpcyk6KG51bGw9PW4/dC5wcm90b3R5cGUueC5jYWxsKHRoaXMsZSk6dC5wcm90b3R5cGUueC5jYWxsKHRoaXMsZSxuKSx0aGlzLl9jaGVja1NhbWVEb21haW4oKSx0aGlzKX0sZS5wcm90b3R5cGUueT1mdW5jdGlvbihlLG4pe3JldHVybiBudWxsPT1lP3QucHJvdG90eXBlLnkuY2FsbCh0aGlzKToobnVsbD09bj90LnByb3RvdHlwZS55LmNhbGwodGhpcyxlKTp0LnByb3RvdHlwZS55LmNhbGwodGhpcyxlLG4pLHRoaXMuX2NoZWNrU2FtZURvbWFpbigpLHRoaXMpfSxlLnByb3RvdHlwZS55T2Zmc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fc3RhY2tpbmdSZXN1bHQoKTtpZihudWxsIT1uKXt2YXIgaT1uLmdldCh0KTtpZihudWxsIT1pKXt2YXIgcj1pLmdldChTdHJpbmcoZSkpO2lmKG51bGwhPXIpcmV0dXJuIHIub2Zmc2V0fX19LGUucHJvdG90eXBlLnN0YWNraW5nT3JkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fc3RhY2tpbmdPcmRlcjoodGhpcy5fc3RhY2tpbmdPcmRlcj10LHRoaXMuX29uRGF0YXNldFVwZGF0ZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5kb3duc2FtcGxpbmdFbmFibGVkPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3QucHJvdG90eXBlLmRvd25zYW1wbGluZ0VuYWJsZWQuY2FsbCh0aGlzKTooblR0LldpbmRvdy53YXJuKCJXYXJuaW5nOiBTdGFja2VkIEFyZWEgUGxvdCBkb2VzIG5vdCBzdXBwb3J0IGRvd25zYW1wbGluZyIpLHRoaXMpfSxlLnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy55KCkuc2NhbGUuc2NhbGUodGhpcy5fYmFzZWxpbmVWYWx1ZSksZT17eDE6MCx5MTp0LHgyOnRoaXMud2lkdGgoKSx5Mjp0fTt0aGlzLl9nZXRBbmltYXRvcigiYmFzZWxpbmUiKS5hbmltYXRlKHRoaXMuX2Jhc2VsaW5lLGUpfSxlLnByb3RvdHlwZS5fdXBkYXRlWVNjYWxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy55KCksZT10JiZ0LnNjYWxlO251bGwhPWUmJihlLmFkZFBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXIodGhpcy5fYmFzZWxpbmVWYWx1ZVByb3ZpZGVyKSxlLmFkZEluY2x1ZGVkVmFsdWVzUHJvdmlkZXIodGhpcy5fYmFzZWxpbmVWYWx1ZVByb3ZpZGVyKSl9LGUucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2hlY2tTYW1lRG9tYWluKCksdC5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZS5jYWxsKHRoaXMpLHRoaXN9LGUucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eT1mdW5jdGlvbihlKXtyZXR1cm4ieSI9PT1lP1t0aGlzLl9zdGFja2VkRXh0ZW50KCldOnQucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eS5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9jaGVja1NhbWVEb21haW49ZnVuY3Rpb24oKXtpZih0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKSl7dmFyIHQ9dGhpcy5kYXRhc2V0cygpLG49dGhpcy54KCkuYWNjZXNzb3IsaT10Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFFFdC5zZXQodC5kYXRhKCkubWFwKChmdW5jdGlvbihlLGkpe3JldHVybiBuVHQuU3RhY2tpbmcubm9ybWFsaXplS2V5KG4oZSxpLHQpKX0pKSkudmFsdWVzKCl9KSkscj1lLl9kb21haW5LZXlzKHQsbik7aS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGghPT1yLmxlbmd0aH0pKSYmblR0LldpbmRvdy53YXJuKCJ0aGUgZG9tYWlucyBhY3Jvc3MgdGhlIGRhdGFzZXRzIGFyZSBub3QgdGhlIHNhbWUuIFBsb3QgbWF5IHByb2R1Y2UgdW5pbnRlbmRlZCBiZWhhdmlvci4iKX19LGUuX2RvbWFpbktleXM9ZnVuY3Rpb24odCxlKXt2YXIgbj1RRXQuc2V0KCk7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBpPXQuZGF0YSgpLHI9aS5sZW5ndGgsbz0wO288cjtvKyspbi5hZGQoZShpW29dLG8sdCkpfSkpLG4udmFsdWVzKCl9LGUucHJvdG90eXBlLl9jb29yZGluYXRlUHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1pVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLG49dGhpcy55KCkuYWNjZXNzb3IsaT10aGlzLngoKS5hY2Nlc3NvcixyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gblR0LlN0YWNraW5nLm5vcm1hbGl6ZUtleShpKHQsZSxuKSl9LG89dGhpcy5fc3RhY2tpbmdSZXN1bHQoKTtyZXR1cm5bZSxmdW5jdGlvbihlLGksYSl7dmFyIHM9K24oZSxpLGEpLGw9by5nZXQoYSkuZ2V0KHIoZSxpLGEpKS5vZmZzZXQ7cmV0dXJuIHQueSgpLnNjYWxlLnNjYWxlKHMrbCl9LGZ1bmN0aW9uKGUsbixpKXt2YXIgYT1vLmdldChpKS5nZXQocihlLG4saSkpLm9mZnNldDtyZXR1cm4gdC55KCkuc2NhbGUuc2NhbGUoYSl9XX0sZS5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciBlPXQucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnMuY2FsbCh0aGlzKSxuPXRoaXMuX2Nvb3JkaW5hdGVQcm9qZWN0b3JzKCk7cmV0dXJuIGUuZD10aGlzLl9jb25zdHJ1Y3RBcmVhUHJvamVjdG9yKG5bMF0sblsxXSxuWzJdKSxlfSxlLnByb3RvdHlwZS5fcGl4ZWxQb2ludD1mdW5jdGlvbihlLG4saSl7dmFyIHI9dC5wcm90b3R5cGUuX3BpeGVsUG9pbnQuY2FsbCh0aGlzLGUsbixpKSxvPXRoaXMueCgpLmFjY2Vzc29yKGUsbixpKSxhPXRoaXMueSgpLmFjY2Vzc29yKGUsbixpKSxzPXRoaXMueSgpLnNjYWxlLnNjYWxlKCthK3RoaXMuX3N0YWNraW5nUmVzdWx0KCkuZ2V0KGkpLmdldChuVHQuU3RhY2tpbmcubm9ybWFsaXplS2V5KG8pKS5vZmZzZXQpO3JldHVybnt4OnIueCx5OnN9fSxlfSkoZk10LkFyZWEpO1pFdC5TdGFja2VkQXJlYT1yVHQ7dmFyIG9UdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkob1R0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYVR0PXVPLHNUdD1JbXQsbFR0PWd5dCxjVHQ9ZHd0LHVUdD1GZ3QsaFR0PVhNdCxkVHQ9dXd0LHBUdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2b2lkIDA9PT1lJiYoZT0idmVydGljYWwiKTt2YXIgbj10LmNhbGwodGhpcyxlKXx8dGhpcztyZXR1cm4gbi5fZXh0cmVtYUZvcm1hdHRlcj1sVHQuaWRlbnRpdHkoKSxuLl9zdGFja2luZ1Jlc3VsdD1jVHQubWVtVGh1bmsoKGZ1bmN0aW9uKCl7cmV0dXJuIG4uZGF0YXNldHMoKX0pLChmdW5jdGlvbigpe3JldHVybiBuLnBvc2l0aW9uKCkuYWNjZXNzb3J9KSwoZnVuY3Rpb24oKXtyZXR1cm4gbi5sZW5ndGgoKS5hY2Nlc3Nvcn0pLChmdW5jdGlvbigpe3JldHVybiBuLl9zdGFja2luZ09yZGVyfSksKGZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiB1VHQuU3RhY2tpbmcuc3RhY2sodCxlLG4saSl9KSksbi5fc3RhY2tlZEV4dGVudD1jVHQubWVtVGh1bmsobi5fc3RhY2tpbmdSZXN1bHQsKGZ1bmN0aW9uKCl7cmV0dXJuIG4ucG9zaXRpb24oKS5hY2Nlc3Nvcn0pLChmdW5jdGlvbigpe3JldHVybiBuLl9maWx0ZXJGb3JQcm9wZXJ0eShuLl9pc1ZlcnRpY2FsPyJ5IjoieCIpfSksKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdVR0LlN0YWNraW5nLnN0YWNrZWRFeHRlbnQodCxlLG4pfSkpLG4uYWRkQ2xhc3MoInN0YWNrZWQtYmFyLXBsb3QiKSxuLl9zdGFja2luZ09yZGVyPSJib3R0b211cCIsbn1yZXR1cm4gYVR0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLnN0YWNraW5nT3JkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fc3RhY2tpbmdPcmRlcjoodGhpcy5fc3RhY2tpbmdPcmRlcj10LHRoaXMuX29uRGF0YXNldFVwZGF0ZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5leHRyZW1hRm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl9leHRyZW1hRm9ybWF0dGVyOih0aGlzLl9leHRyZW1hRm9ybWF0dGVyPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fbGFiZWxBcmVhPXRoaXMuX3JlbmRlckFyZWEuYXBwZW5kKCJnIikuY2xhc3NlZChoVHQuQmFyLl9MQUJFTF9BUkVBX0NMQVNTLCEwKTt2YXIgZT1uZXcgc1R0LlN2Z0NvbnRleHQodGhpcy5fbGFiZWxBcmVhLm5vZGUoKSk7dGhpcy5fbWVhc3VyZXI9bmV3IHNUdC5DYWNoZU1lYXN1cmVyKGUpLHRoaXMuX3dyaXRlcj1uZXcgc1R0LldyaXRlcih0aGlzLl9tZWFzdXJlcixlKX0sZS5wcm90b3R5cGUuX2RyYXdMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3QucHJvdG90eXBlLl9kcmF3TGFiZWxzLmNhbGwodGhpcyksdGhpcy5fbGFiZWxBcmVhLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpO3ZhciBpPSt0aGlzLmJhc2VsaW5lVmFsdWUoKSxyPXRoaXMucG9zaXRpb24oKS5zY2FsZSxvPXRoaXMubGVuZ3RoKCkuc2NhbGUsYT11VHQuU3RhY2tpbmcuc3RhY2tlZEV4dGVudHModGhpcy5fc3RhY2tpbmdSZXN1bHQoKSkscz1hLm1pbmltdW1FeHRlbnRzLGw9W10sYz1mdW5jdGlvbih0LGUpe3ZhciBhPW4uX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yKCkscz1uLndpZHRoKCksYz1uLmhlaWdodCgpO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7aWYodC5leHRlbnQhPT1pKXt2YXIgdT1uLmV4dHJlbWFGb3JtYXR0ZXIoKSh0LmV4dGVudCksaD1uLl9tZWFzdXJlci5tZWFzdXJlKHUpLGQ9dC5zdGFja2VkRGF0dW0scD1kLm9yaWdpbmFsRGF0dW0sZj1kLm9yaWdpbmFsSW5kZXgsbT1kLm9yaWdpbmFsRGF0YXNldDtpZighbi5faXNEYXR1bU9uU2NyZWVuKGEscyxjLHAsZixtKSlyZXR1cm47dmFyIGc9ZFR0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKG4uYXR0cihoVHQuQmFyLl9CQVJfVEhJQ0tORVNTX0tFWSkpKHAsZixtKSxfPW8uc2NhbGUodC5leHRlbnQpLHk9bi5fZ2V0UG9zaXRpb25BdHRyKHIuc2NhbGUodC5heGlzVmFsdWUpLGcpK2cvMix2PWUobi5faXNWZXJ0aWNhbD97eDp5LHk6X306e3g6Xyx5Onl9LGgsZyksYj0oZnVuY3Rpb24odCxlLGkpe3ZhciByPWUudG9wTGVmdCxvPXIueCxhPXIueSxzPWUuYm90dG9tUmlnaHQueC1lLnRvcExlZnQueCxsPWUuYm90dG9tUmlnaHQueS1lLnRvcExlZnQueSxjPW4uX2lzVmVydGljYWw/cz5pOmw+aTtpZighYyl7dmFyIHU9bi5fbGFiZWxBcmVhLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK28rIiwgIithKyIpIik7dS5jbGFzc2VkKCJzdGFja2VkLWJhci1sYWJlbCIsITApLG4uX3dyaXRlci53cml0ZSh0LHMsbCx7eEFsaWduOiJjZW50ZXIiLHlBbGlnbjoiY2VudGVyIn0sdS5ub2RlKCkpfXJldHVybiBjfSkodSx7dG9wTGVmdDp2LGJvdHRvbVJpZ2h0Ont4OnYueCtoLndpZHRoLHk6di55K2guaGVpZ2h0fX0sZyk7bC5wdXNoKGIpfX0pKX07YyhhLm1heGltdW1FeHRlbnRzLChmdW5jdGlvbih0LGkscil7dmFyIG89bi5faXNWZXJ0aWNhbD9pLndpZHRoOmkuaGVpZ2h0O3JldHVybnt4Om4uX2lzVmVydGljYWw/dC54LW8vMjp0LngrZS5fRVhUUkVNQV9MQUJFTF9NQVJHSU5fRlJPTV9CQVIseTpuLl9pc1ZlcnRpY2FsP3QueS0obi5faXNWZXJ0aWNhbD9pLmhlaWdodDppLndpZHRoKTp0Lnktby8yfX0pKSxjKHMsKGZ1bmN0aW9uKHQsaSxyKXt2YXIgbz1uLl9pc1ZlcnRpY2FsP2kud2lkdGg6aS5oZWlnaHQ7cmV0dXJue3g6bi5faXNWZXJ0aWNhbD90Lngtby8yOnQueC0obi5faXNWZXJ0aWNhbD9pLmhlaWdodDppLndpZHRoKSx5Om4uX2lzVmVydGljYWw/dC55K2UuX0VYVFJFTUFfTEFCRUxfTUFSR0lOX0ZST01fQkFSOnQueS1vLzJ9fSkpLGwuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSkmJnRoaXMuX2xhYmVsQXJlYS5zZWxlY3RBbGwoImciKS5yZW1vdmUoKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXQucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvci5jYWxsKHRoaXMpLGk9dGhpcy5faXNWZXJ0aWNhbD8ieSI6IngiLHI9dGhpcy5sZW5ndGgoKS5zY2FsZSxvPXRoaXMubGVuZ3RoKCkuYWNjZXNzb3IsYT10aGlzLnBvc2l0aW9uKCkuYWNjZXNzb3Iscz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHVUdC5TdGFja2luZy5ub3JtYWxpemVLZXkoYSh0LGUsbikpfSxsPXRoaXMuX3N0YWNraW5nUmVzdWx0KCksYz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHIuc2NhbGUobC5nZXQobikuZ2V0KHModCxlLG4pKS5vZmZzZXQpfSx1PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gci5zY2FsZSgrbyh0LGUsbikrbC5nZXQobikuZ2V0KHModCxlLG4pKS5vZmZzZXQpfSxoPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTWF0aC5hYnModSh0LGUsbiktYyh0LGUsbikpfTtuW3RoaXMuX2lzVmVydGljYWw/ImhlaWdodCI6IndpZHRoIl09aDt2YXIgZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuK28odCxlLG4pPDA/Yyh0LGUsbik6dSh0LGUsbil9O3JldHVybiBuW2ldPWZ1bmN0aW9uKHQsbixpKXtyZXR1cm4gZS5faXNWZXJ0aWNhbD9kKHQsbixpKTpkKHQsbixpKS1oKHQsbixpKX0sbn0sZS5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvclByb3BlcnR5PWZ1bmN0aW9uKGUpe3JldHVybiBlPT09KHRoaXMuX2lzVmVydGljYWw/InkiOiJ4Iik/W3RoaXMuX3N0YWNrZWRFeHRlbnQoKV06dC5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvclByb3BlcnR5LmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sZS5fRVhUUkVNQV9MQUJFTF9NQVJHSU5fRlJPTV9CQVI9NSxlfSkoaFR0LkJhcik7b1R0LlN0YWNrZWRCYXI9cFR0O3ZhciBmVHQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KGZUdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG1UdD11TyxnVHQ9Rmd0LF9UdD11d3QseVR0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9jb25uZWN0b3JzRW5hYmxlZD0hMSxlLmFkZENsYXNzKCJ3YXRlcmZhbGwtcGxvdCIpLGV9cmV0dXJuIG1UdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5jb25uZWN0b3JzRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9jb25uZWN0b3JzRW5hYmxlZDoodGhpcy5fY29ubmVjdG9yc0VuYWJsZWQ9dCx0aGlzKX0sZS5wcm90b3R5cGUudG90YWw9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fVE9UQUxfS0VZKToodGhpcy5fYmluZFByb3BlcnR5KGUuX1RPVEFMX0tFWSx0LG51bGwpLHRoaXMpfSxlLnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5fY29ubmVjdG9yQXJlYS5zZWxlY3RBbGwoImxpbmUiKS5yZW1vdmUoKSx0aGlzLl9jb25uZWN0b3JzRW5hYmxlZCYmZ1R0LldpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlLl9kcmF3Q29ubmVjdG9ycygpfSksdCl9LGUucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQ9ZnVuY3Rpb24obil7dmFyIGk9dC5wcm90b3R5cGUuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldC5jYWxsKHRoaXMsbik7cmV0dXJuIHRoaXMuX2Nvbm5lY3RvckFyZWE9dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImciKS5jbGFzc2VkKGUuX0NPTk5FQ1RPUl9BUkVBX0NMQVNTLCEwKSxpfSxlLnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHk9ZnVuY3Rpb24oZSl7cmV0dXJuInkiPT09ZT9bdGhpcy5fZXh0ZW50XTp0LnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHkuY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3I9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLGk9dC5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yLmNhbGwodGhpcykscj10aGlzLnkoKS5zY2FsZSxvPV9UdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnRvdGFsKCkpO3JldHVybiBudWxsPT10aGlzLmF0dHIoInkiKSYmKGkueT1mdW5jdGlvbih0LGUsaSl7dmFyIGE9bi55KCkuYWNjZXNzb3IodCxlLGkpO2lmKG8odCxlLGkpKXJldHVybiBNYXRoLm1pbihyLnNjYWxlKGEpLHIuc2NhbGUoMCkpO3ZhciBzPW4uX3N1YnRvdGFsc1tlXTtpZigwPT09ZSlyZXR1cm4gci5zY2FsZShhPDA/cy1hOnMpO3ZhciBsPW4uX3N1YnRvdGFsc1tlLTFdO3JldHVybiByLnNjYWxlKHM+bD9zOmwpfSksbnVsbD09dGhpcy5hdHRyKCJoZWlnaHQiKSYmKGkuaGVpZ2h0PWZ1bmN0aW9uKHQsZSxpKXt2YXIgYT1vKHQsZSxpKSxzPW4ueSgpLmFjY2Vzc29yKHQsZSxpKTtpZihhKXJldHVybiBNYXRoLmFicyhyLnNjYWxlKHMpLXIuc2NhbGUoMCkpO3ZhciBsPW4uX3N1YnRvdGFsc1tlXTtpZigwPT09ZSlyZXR1cm4gTWF0aC5hYnMoci5zY2FsZShsKS1yLnNjYWxlKGwtcykpO3ZhciBjPW4uX3N1YnRvdGFsc1tlLTFdO3JldHVybiBNYXRoLmFicyhyLnNjYWxlKGwpLXIuc2NhbGUoYykpfSksaS5jbGFzcz1mdW5jdGlvbih0LGkscil7dmFyIGE9IiI7cmV0dXJuIG51bGwhPW4uYXR0cigiY2xhc3MiKSYmKGE9bi5hdHRyKCJjbGFzcyIpLmFjY2Vzc29yKHQsaSxyKSsiICIpLG8odCxpLHIpP2ErZS5fQkFSX1RPVEFMX0NMQVNTOmErKG4ueSgpLmFjY2Vzc29yKHQsaSxyKT4wP2UuX0JBUl9HUk9XVEhfQ0xBU1M6ZS5fQkFSX0RFQ0xJTkVfQ0xBU1MpfSxpfSxlLnByb3RvdHlwZS5fb25EYXRhc2V0VXBkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZVN1YnRvdGFscygpLHQucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGUuY2FsbCh0aGlzKSx0aGlzfSxlLnByb3RvdHlwZS5fY2FsY3VsYXRlU3VidG90YWxzQW5kRXh0ZW50PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1OdW1iZXIuTUFYX1ZBTFVFLG49TnVtYmVyLk1JTl9WQUxVRSxpPTAscj0hMSxvPXQuZGF0YSgpLGE9by5sZW5ndGgscz0wO3M8YTtzKyspe3ZhciBsPW9bc10sYz10aGlzLnkoKS5hY2Nlc3NvcihsLHMsdCksdT10aGlzLnRvdGFsKCkuYWNjZXNzb3IobCxzLHQpO2lmKHUmJjAhPT1zfHwoaSs9YyksdGhpcy5fc3VidG90YWxzLnB1c2goaSksaTxlJiYoZT1pKSxpPm4mJihuPWkpLHUmJihjPGUmJihlPWMpLGM+biYmKG49YykpLCFyJiZ1KXtmb3IodmFyIGg9Yy1pLGQ9MDtkPHRoaXMuX3N1YnRvdGFscy5sZW5ndGg7ZCsrKXRoaXMuX3N1YnRvdGFsc1tkXSs9aDtyPSEwLGkrPWgsZSs9aCxuKz1ofX10aGlzLl9leHRlbnQ9W2Usbl19LGUucHJvdG90eXBlLl9kcmF3Q29ubmVjdG9ycz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxuPXRoaXMuZGF0YXNldHMoKVswXSxpPTE7aTxuLmRhdGEoKS5sZW5ndGg7aSsrKXt2YXIgcj1pLTEsbz1uLmRhdGEoKVtpXSxhPW4uZGF0YSgpW3JdLHM9dC54KGEscixuKSxsPXQueChvLGksbikrdC53aWR0aChvLGksbiksYz10LnkobyxpLG4pOyh0aGlzLl9zdWJ0b3RhbHNbaV0+MCYmdGhpcy5fc3VidG90YWxzW2ldPnRoaXMuX3N1YnRvdGFsc1tyXXx8dGhpcy5fc3VidG90YWxzW2ldPDAmJnRoaXMuX3N1YnRvdGFsc1tpXT49dGhpcy5fc3VidG90YWxzW3JdKSYmKGM9dC55KG8saSxuKSt0LmhlaWdodChvLGksbikpLHRoaXMuX2Nvbm5lY3RvckFyZWEuYXBwZW5kKCJsaW5lIikuY2xhc3NlZChlLl9DT05ORUNUT1JfQ0xBU1MsITApLmF0dHIoIngxIixzKS5hdHRyKCJ4MiIsbCkuYXR0cigieTEiLGMpLmF0dHIoInkyIixjKX19LGUucHJvdG90eXBlLl91cGRhdGVTdWJ0b3RhbHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmRhdGFzZXRzKCk7aWYodC5sZW5ndGg+MCl7dmFyIGU9dFt0Lmxlbmd0aC0xXTt0aGlzLl9zdWJ0b3RhbHM9bmV3IEFycmF5LHRoaXMuX2NhbGN1bGF0ZVN1YnRvdGFsc0FuZEV4dGVudChlKX19LGUuX0JBUl9ERUNMSU5FX0NMQVNTPSJ3YXRlcmZhbGwtZGVjbGluZSIsZS5fQkFSX0dST1dUSF9DTEFTUz0id2F0ZXJmYWxsLWdyb3d0aCIsZS5fQkFSX1RPVEFMX0NMQVNTPSJ3YXRlcmZhbGwtdG90YWwiLGUuX0NPTk5FQ1RPUl9DTEFTUz0iY29ubmVjdG9yIixlLl9DT05ORUNUT1JfQVJFQV9DTEFTUz0iY29ubmVjdG9yLWFyZWEiLGUuX1RPVEFMX0tFWT0idG90YWwiLGV9KShYTXQuQmFyKTtmVHQuV2F0ZXJmYWxsPXlUdCwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT11TztlLl9fZXhwb3J0U3RhcihmTXQsdCksZS5fX2V4cG9ydFN0YXIoWE10LHQpLGUuX19leHBvcnRTdGFyKGh3dCx0KSxlLl9fZXhwb3J0U3RhcigkTXQsdCksZS5fX2V4cG9ydFN0YXIobU10LHQpLGUuX19leHBvcnRTdGFyKG5FdCx0KSxlLl9fZXhwb3J0U3RhcihnRXQsdCksZS5fX2V4cG9ydFN0YXIoQUV0LHQpLGUuX19leHBvcnRTdGFyKFVFdCx0KSxlLl9fZXhwb3J0U3RhcihaRXQsdCksZS5fX2V4cG9ydFN0YXIob1R0LHQpLGUuX19leHBvcnRTdGFyKGZUdCx0KX0pKHBNdCk7dmFyIHZUdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkodlR0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx2VHQudmVyc2lvbj0iMy45LjAiLChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9dU87dC5BbmltYXRvcnM9X210LHQuQXhlcz1QbXQsdC5Db21wb25lbnRzPWlidCx0LkNvbmZpZ3M9TF90LHQuRm9ybWF0dGVycz1neXQsdC5SZW5kZXJDb250cm9sbGVyPUhndCx0LlJlbmRlclBvbGljaWVzPW55dCx0LlN5bWJvbEZhY3Rvcmllcz1VeHQsdC5EaXNwYXRjaGVycz1zYnQsdC5EcmF3ZXJzPU5TdCx0LkludGVyYWN0aW9ucz1vYnQsdC5QbG90cz1wTXQsdC5TY2FsZXM9Wnl0LHQuVXRpbHM9Rmd0LGUuX19leHBvcnRTdGFyKG15dCx0KSx0LlRpbWVJbnRlcnZhbD1LeXQuVGltZUludGVydmFsLGUuX19leHBvcnRTdGFyKEJndCx0KSxlLl9fZXhwb3J0U3Rhcih4eHQsdCksZS5fX2V4cG9ydFN0YXIoZ3d0LHQpLHQudmVyc2lvbj12VHQudmVyc2lvbixlLl9fZXhwb3J0U3RhcihjYnQsdCksZS5fX2V4cG9ydFN0YXIoV3d0LHQpLGUuX19leHBvcnRTdGFyKHdidCx0KSxlLl9fZXhwb3J0U3RhcihJYnQsdCksZS5fX2V4cG9ydFN0YXIoZ010LHQpLGUuX19leHBvcnRTdGFyKHV3dCx0KSxlLl9fZXhwb3J0U3RhcihJdnQsdCksZS5fX2V4cG9ydFN0YXIoaHZ0LHQpfSkock8pO2NvbnN0IGJUdD1be2NoYXJhY3Rlcjoi4pe8IixtZXRob2Q6ck8uU3ltYm9sRmFjdG9yaWVzLnNxdWFyZX0se2NoYXJhY3Rlcjoi4peGIixtZXRob2Q6ck8uU3ltYm9sRmFjdG9yaWVzLmRpYW1vbmR9LHtjaGFyYWN0ZXI6IuKWsiIsbWV0aG9kOnJPLlN5bWJvbEZhY3Rvcmllcy50cmlhbmdsZX0se2NoYXJhY3Rlcjoi4piFIixtZXRob2Q6ck8uU3ltYm9sRmFjdG9yaWVzLnN0YXJ9LHtjaGFyYWN0ZXI6IuKcmiIsbWV0aG9kOnJPLlN5bWJvbEZhY3Rvcmllcy5jcm9zc31dO3ZhciB4VHQ7ZnVuY3Rpb24gd1R0KHQpe3JldHVybiBlPT57bGV0IG4saT1NYXRoLmFicyhlKTtyZXR1cm4gaTwxZS0xNSYmKGk9MCksbj1teShpPj0xZTR8fGk+MCYmaTwuMDE/Ii4iK3QrIn5lIjoiLiIrdCsifmciKSxuKGUpfX0hKGZ1bmN0aW9uKHQpe3QuU1RFUD0ic3RlcCIsdC5SRUxBVElWRT0icmVsYXRpdmUiLHQuV0FMTF9USU1FPSJ3YWxsX3RpbWUifSkoeFR0fHwoeFR0PXt9KSk7Y29uc3QgU1R0PW15KCIuNH5zIik7ZnVuY3Rpb24gTVR0KCl7bGV0IHQ9bmV3IHJPLlNjYWxlcy5MaW5lYXI7dC50aWNrR2VuZXJhdG9yKHJPLlNjYWxlcy5UaWNrR2VuZXJhdG9ycy5pbnRlZ2VyVGlja0dlbmVyYXRvcigpKTtsZXQgZT1uZXcgck8uQXhlcy5OdW1lcmljKHQsImJvdHRvbSIpO3JldHVybiBlLmZvcm1hdHRlcihTVHQpLHtzY2FsZTp0LGF4aXM6ZSxhY2Nlc3Nvcjp0PT50LnN0ZXB9fWxldCBFVHQ9ck8uRm9ybWF0dGVycy50aW1lKCIlYSAlYiAlZSwgJUg6JU06JVMiKSxUVHQ9KHQsZSxuKT0+e2lmKG51bGwhPXQucmVsYXRpdmUpcmV0dXJuIHQucmVsYXRpdmU7bGV0IGk9bi5kYXRhKCk7cmV0dXJuKCt0LndhbGxfdGltZS0oaS5sZW5ndGg+MD8raVswXS53YWxsX3RpbWU6MCkpLzM2ZTV9LENUdD10PT57bGV0IGU9IiIsbj1NYXRoLmZsb29yKHQvMjQpO3QtPTI0Km4sbiYmKGUrPW4rImQgIik7bGV0IGk9TWF0aC5mbG9vcih0KTt0LT1pLHQqPTYwLChpfHxuKSYmKGUrPWkrImggIik7bGV0IHI9TWF0aC5mbG9vcih0KTtyZXR1cm4gdC09cix0Kj02MCwocnx8aXx8bikmJihlKz1yKyJtICIpLGUrTWF0aC5mbG9vcih0KSsicyJ9O2Z1bmN0aW9uIEFUdCh0KXtzd2l0Y2godCl7Y2FzZSB4VHQuU1RFUDpyZXR1cm4gTVR0KCk7Y2FzZSB4VHQuV0FMTF9USU1FOnJldHVybihmdW5jdGlvbiBlKCl7bGV0IHQ9bmV3IHJPLlNjYWxlcy5UaW1lO3JldHVybntzY2FsZTp0LGF4aXM6bmV3IHJPLkF4ZXMuVGltZSh0LCJib3R0b20iKSxhY2Nlc3Nvcjp0PT50LndhbGxfdGltZX19KSgpO2Nhc2UgeFR0LlJFTEFUSVZFOnJldHVybihmdW5jdGlvbiBuKCl7bGV0IHQ9bmV3IHJPLlNjYWxlcy5MaW5lYXI7cmV0dXJue3NjYWxlOnQsYXhpczpuZXcgck8uQXhlcy5OdW1lcmljKHQsImJvdHRvbSIpLGFjY2Vzc29yOlRUdH19KSgpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHhUeXBlOiAiK3QpfX12YXIga1R0O2Z1bmN0aW9uIExUdCh0KXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmxvYWRLZXk9IiIsdGhpcy5kYXRhVG9Mb2FkPVtdLHRoaXMuZ2V0RGF0YUxvYWROYW1lPXQ9PlN0cmluZyh0KSx0aGlzLmRhdGFMb2FkaW5nPSExLHRoaXMuZGF0YUxvYWRlZEF0TGVhc3RPbmNlPSExLHRoaXMuX2lzQ29ubmVjdGVkPSExLHRoaXMuX2RhdGFMb2FkU3RhdGU9bmV3IE1hcCx0aGlzLl9jYW5jZWxsZXI9bmV3IFhSLHRoaXMuX2xvYWREYXRhQXN5bmM9bnVsbCx0aGlzLl9sb2FkRGF0YT1TZS5leHBvcnRzLnRocm90dGxlKHRoaXMuX2xvYWREYXRhSW1wbCwxMDAse2xlYWRpbmc6ITAsdHJhaWxpbmc6ITB9KX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5faXNDb25uZWN0ZWQ9ITB9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX2lzQ29ubmVjdGVkPSExfXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnthY3RpdmU6e3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX2xvYWREYXRhSWZBY3RpdmUifSxfaXNDb25uZWN0ZWQ6e3R5cGU6Qm9vbGVhbn0sbG9hZEtleTp7dHlwZTpTdHJpbmd9LGRhdGFUb0xvYWQ6e3R5cGU6QXJyYXl9LGdldERhdGFMb2FkTmFtZTp7dHlwZTpPYmplY3R9LGxvYWREYXRhQ2FsbGJhY2s6e3R5cGU6T2JqZWN0fSxyZXF1ZXN0RGF0YTp7dHlwZTpPYmplY3R9fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2RhdGFUb0xvYWRDaGFuZ2VkKF9pc0Nvbm5lY3RlZCwgZGF0YVRvTG9hZC4qKSJdfW9uTG9hZEZpbmlzaCgpe31yZWxvYWQoKXt0aGlzLl9kYXRhTG9hZFN0YXRlLmNsZWFyKCksdGhpcy5fbG9hZERhdGEoKX1yZXNldCgpe251bGwhPXRoaXMuX2xvYWREYXRhQXN5bmMmJihjbGVhclRpbWVvdXQodGhpcy5fbG9hZERhdGFBc3luYyksdGhpcy5fbG9hZERhdGFBc3luYz1udWxsKSx0aGlzLl9jYW5jZWxsZXImJnRoaXMuX2NhbmNlbGxlci5jYW5jZWxBbGwoKSx0aGlzLl9kYXRhTG9hZFN0YXRlJiZ0aGlzLl9kYXRhTG9hZFN0YXRlLmNsZWFyKCksdGhpcy5faXNDb25uZWN0ZWQmJnRoaXMuX2xvYWREYXRhKCl9X2RhdGFUb0xvYWRDaGFuZ2VkKCl7dGhpcy5faXNDb25uZWN0ZWQmJnRoaXMuX2xvYWREYXRhKCl9ZGV0YWNoZWQoKXtudWxsIT10aGlzLl9sb2FkRGF0YUFzeW5jJiYoY2xlYXJUaW1lb3V0KHRoaXMuX2xvYWREYXRhQXN5bmMpLHRoaXMuX2xvYWREYXRhQXN5bmM9bnVsbCl9X2xvYWREYXRhSWZBY3RpdmUoKXt0aGlzLmFjdGl2ZSYmdGhpcy5fbG9hZERhdGEoKX1fbG9hZERhdGFJbXBsKCl7dGhpcy5hY3RpdmUmJihudWxsIT09dGhpcy5fbG9hZERhdGFBc3luYyYmY2xlYXJUaW1lb3V0KHRoaXMuX2xvYWREYXRhQXN5bmMpLHRoaXMuX2xvYWREYXRhQXN5bmM9c2V0VGltZW91dCh0aGlzLl9jYW5jZWxsZXIuY2FuY2VsbGFibGUoKHQ9PntpZih0LmNhbmNlbGxlZClyZXR1cm47dGhpcy5kYXRhTG9hZGluZz0hMDtjb25zdCBlPXRoaXMuZGF0YVRvTG9hZC5maWx0ZXIoKHQ9Pntjb25zdCBlPXRoaXMuZ2V0RGF0YUxvYWROYW1lKHQpO3JldHVybiF0aGlzLl9kYXRhTG9hZFN0YXRlLmhhcyhlKX0pKTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPXRoaXMuZ2V0RGF0YUxvYWROYW1lKHQpO3RoaXMuX2RhdGFMb2FkU3RhdGUuc2V0KGUsa1R0LkxPQURJTkcpfWNvbnN0IG49dGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT57aWYodC5jYW5jZWxsZWQpcmV0dXJuO2NvbnN0e2l0ZW06ZSxkYXRhOm59PXQudmFsdWUsaT10aGlzLmdldERhdGFMb2FkTmFtZShlKTt0aGlzLl9kYXRhTG9hZFN0YXRlLnNldChpLGtUdC5MT0FERUQpLHRoaXMubG9hZERhdGFDYWxsYmFjayh0aGlzLGUsbil9KSksaT10aGlzLl9jYW5jZWxsZXIuY2FuY2VsbGFibGUoKHQ9PntpZighdC5jYW5jZWxsZWQpe2NvbnN0IHQ9bmV3IFNldChlLm1hcCgodD0+dGhpcy5nZXREYXRhTG9hZE5hbWUodCkpKSk7dGhpcy5kYXRhVG9Mb2FkLnNvbWUoKGU9PnQuaGFzKHRoaXMuZ2V0RGF0YUxvYWROYW1lKGUpKSkpJiZ0aGlzLm9uTG9hZEZpbmlzaCgpLHRoaXMuX2xvYWREYXRhQXN5bmM9bnVsbCx0aGlzLmRhdGFMb2FkZWRBdExlYXN0T25jZT0hMH1BcnJheS5mcm9tKHRoaXMuX2RhdGFMb2FkU3RhdGUudmFsdWVzKCkpLmluY2x1ZGVzKGtUdC5MT0FESU5HKXx8KHRoaXMuZGF0YUxvYWRpbmc9ITEpfSkpO3RoaXMucmVxdWVzdERhdGEoZSxuLCgoKT0+aSh2b2lkIDApKSl9KSkpKX19fSEoZnVuY3Rpb24odCl7dFt0LkxPQURJTkc9MF09IkxPQURJTkciLHRbdC5MT0FERUQ9MV09IkxPQURFRCJ9KShrVHR8fChrVHQ9e30pKSxlbCh7bW9kdWxlTmFtZToicGxvdHRhYmxlLXN0eWxlIixzdHlsZUNvbnRlbnQ6IlxuICAgIFxuLnBsb3R0YWJsZS1jb2xvcnMtMCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1Mjc5Yzc7IC8qIElORElHTyAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkMzczZTsgLyogQ09SQUxfUkVEICovXG59XG5cbi5wbG90dGFibGUtY29sb3JzLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjNjMjYxOyAvKiBGRVJOICovXG59XG5cbi5wbG90dGFibGUtY29sb3JzLTMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFkNDE5OyAvKiBCUklHSFRfU1VOICovXG59XG5cbi5wbG90dGFibGUtY29sb3JzLTQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMyYjZmOyAvKiBKQUNBUlRBICovXG59XG5cbi5wbG90dGFibGUtY29sb3JzLTUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3OTM5OyAvKiBCVVJOSU5HX09SQU5HRSAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy02IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RiMmU2NTsgLyogQ0VSSVNFX1JFRCAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy03IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5Y2U1MDsgLyogQ09OSUZFUiAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy04IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk2MjU2NTsgLyogUk9ZQUxfSEVBVEggKi9cbn1cblxuLnBsb3R0YWJsZS1jb2xvcnMtOSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwNmNjY2M7IC8qIFJPQklOU19FR0dfQkxVRSAqL1xufVxuXG4vKipcbiAqIFVzZXItc3VwcGxpZWQgcmVuZGVyVG8gZWxlbWVudC5cbiAqL1xuLnBsb3R0YWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyAvKiBtdXN0IGJlIGJsb2NrIGVsZW1lbnRzIGZvciB3aWR0aC9oZWlnaHQgY2FsY3VsYXRpb25zIHRvIHdvcmsgaW4gRmlyZWZveC4gKi9cbiAgcG9pbnRlci1ldmVudHM6IHZpc2libGVGaWxsO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qKlxuICAgKiBQcmUgMy4wLCB1c2VycyBjb3VsZCBzZXQgdGhlIGRpbWVuc2lvbiBvZiB0aGUgcm9vdCBlbGVtZW50IGluIHR3byB3YXlzOiBlaXRoZXIgdXNpbmcgQ1NTXG4gICAqIChpbmxpbmUgb3IgdGhyb3VnaCBhIHN0eWxlc2hlZXQpLCBvciB1c2luZyB0aGUgU1ZHIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzLiBCeSBkZWZhdWx0LCB3ZVxuICAgKiBzZXQgdGhlIFNWRyB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcyB0byAxMDAlLlxuICAgKlxuICAgKiBQb3N0IDMuMCB0aGUgcm9vdCBlbGVtZW50IGlzIGFsd2F5cyBhIG5vcm1hbCBkaXYgYW5kIHRoZSBvbmx5IHdheSB0byBzZXQgdGhlIGRpbWVuc2lvbnMgaXNcbiAgICogdG8gdXNlIENTUy4gVG8gcmVwbGljYXRlIHRoZSBcIjEwMCUtYnktZGVmYXVsdFwiIGJlaGF2aW9yLCB3ZSBhcHBseSB3aWR0aC9oZWlnaHQgMTAwJS5cbiAgICovXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qKlxuICogVGhlIF9lbGVtZW50IHRoYXQgcm9vdHMgZWFjaCBDb21wb25lbnQncyBET00uXG4gKi9cbi5wbG90dGFibGUgLmNvbXBvbmVudCB7XG4gIC8qIEFsbG93IGNvbXBvbmVudHMgdG8gYmUgcG9zaXRpb25lZCB3aXRoIGV4cGxpY2l0IGxlZnQvdG9wL3dpZHRoL2hlaWdodCBzdHlsZXMgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4ucGxvdHRhYmxlIC5iYWNrZ3JvdW5kLWNvbnRhaW5lcixcbi5wbG90dGFibGUgLmNvbnRlbnQsXG4ucGxvdHRhYmxlIC5mb3JlZ3JvdW5kLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyoqXG4gKiBEb24ndCBhbGxvdyBzdmcgZWxlbWVudHMgYWJvdmUgdGhlIGNvbnRlbnQgdG8gc3RlYWwgZXZlbnRzXG4gKi9cbi5wbG90dGFibGUgLmZvcmVncm91bmQtY29udGFpbmVyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5wbG90dGFibGUgLmNvbXBvbmVudC1vdmVyZmxvdy1oaWRkZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucGxvdHRhYmxlIC5jb21wb25lbnQtb3ZlcmZsb3ctdmlzaWJsZSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ucGxvdHRhYmxlIC5wbG90LWNhbnZhcy1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucGxvdHRhYmxlIC5wbG90LWNhbnZhcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC8qKlxuICAgKiBQbGF5IHdlbGwgd2l0aCBkZWZlcnJlZCByZW5kZXJpbmcuXG4gICAqL1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwcHggMHB4IDBweDtcbn1cblxuLnBsb3R0YWJsZSB0ZXh0IHtcbiAgdGV4dC1yZW5kZXJpbmc6IGdlb21ldHJpY1ByZWNpc2lvbjtcbn1cblxuLnBsb3R0YWJsZSAubGFiZWwgdGV4dCB7XG4gIGZpbGw6ICMzMjMxM0Y7XG59XG5cbi5wbG90dGFibGUgLmJhci1sYWJlbC10ZXh0LWFyZWEgdGV4dCxcbi5wbG90dGFibGUgLnNjYXR0ZXItbGFiZWwtdGV4dC1hcmVhIHRleHQge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5wbG90dGFibGUgLmxhYmVsLWFyZWEgdGV4dCB7XG4gIGZpbGw6ICMzMjMxM0Y7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnBsb3R0YWJsZSAubGlnaHQtbGFiZWwgdGV4dCB7XG4gIGZpbGw6IHdoaXRlO1xufVxuXG4ucGxvdHRhYmxlIC5kYXJrLWxhYmVsIHRleHQge1xuICBmaWxsOiAjMzIzMTNGO1xufVxuXG4ucGxvdHRhYmxlIC5vZmYtYmFyLWxhYmVsIHRleHQge1xuICBmaWxsOiAjMzIzMTNGO1xufVxuXG4ucGxvdHRhYmxlIC5zdGFja2VkLWJhci1sYWJlbCB0ZXh0IHtcbiAgZmlsbDogIzMyMzEzRjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4ucGxvdHRhYmxlIC5zdGFja2VkLWJhci1wbG90IC5vZmYtYmFyLWxhYmVsIHtcbiAgLyogSEFDS0hBQ0sgIzI3OTU6IGNvcnJlY3Qgb2ZmLWJhciBsYWJlbCBsb2dpYyB0byBiZSBpbXBsZW1lbnRlZCBvbiBTdGFja2VkQmFyICovXG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4ucGxvdHRhYmxlIC5heGlzLWxhYmVsIHRleHQge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ucGxvdHRhYmxlIC50aXRsZS1sYWJlbCB0ZXh0IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnBsb3R0YWJsZSAuYXhpcyBsaW5lLmJhc2VsaW5lIHtcbiAgc3Ryb2tlOiAjQ0NDO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cblxuLnBsb3R0YWJsZSAuYXhpcyBsaW5lLnRpY2stbWFyayB7XG4gIHN0cm9rZTogI0NDQztcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG59XG5cbi5wbG90dGFibGUgLmF4aXMgdGV4dCB7XG4gIGZpbGw6ICMzMjMxM0Y7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnBsb3R0YWJsZSAuYXhpcyAuYW5ub3RhdGlvbi1jaXJjbGUge1xuICBmaWxsOiB3aGl0ZTtcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gIHN0cm9rZTogI0NDQztcbn1cblxuLnBsb3R0YWJsZSAuYXhpcyAuYW5ub3RhdGlvbi1saW5lIHtcbiAgc3Ryb2tlOiAjQ0NDO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cblxuLnBsb3R0YWJsZSAuYXhpcyAuYW5ub3RhdGlvbi1yZWN0IHtcbiAgc3Ryb2tlOiAjQ0NDO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbiAgZmlsbDogd2hpdGU7XG59XG5cbi5wbG90dGFibGUgLmJhci1wbG90IC5iYXNlbGluZSB7XG4gIHN0cm9rZTogIzk5OTtcbn1cblxuLnBsb3R0YWJsZSAuZ3JpZGxpbmVzIGxpbmUge1xuICBzdHJva2U6ICMzQzNDM0M7IC8qIGhhY2toYWNrOiBncmlkbGluZXMgc2hvdWxkIGJlIHNvbGlkOyBzZWUgIzgyMCAqL1xuICBvcGFjaXR5OiAwLjI1O1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cblxuLnBsb3R0YWJsZSAuc2VsZWN0aW9uLWJveC1sYXllciAuc2VsZWN0aW9uLWFyZWEge1xuICBmaWxsOiBibGFjaztcbiAgZmlsbC1vcGFjaXR5OiAwLjAzO1xuICBzdHJva2U6ICNDQ0M7XG59XG4vKiBEcmFnQm94TGF5ZXIgKi9cbi5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLngtcmVzaXphYmxlIC5kcmFnLWVkZ2UtbHIge1xuICBjdXJzb3I6IGV3LXJlc2l6ZTtcbn1cbi5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLnktcmVzaXphYmxlIC5kcmFnLWVkZ2UtdGIge1xuICBjdXJzb3I6IG5zLXJlc2l6ZTtcbn1cblxuLnBsb3R0YWJsZSAuZHJhZy1ib3gtbGF5ZXIueC1yZXNpemFibGUueS1yZXNpemFibGUgLmRyYWctY29ybmVyLXRsIHtcbiAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbn1cbi5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLngtcmVzaXphYmxlLnktcmVzaXphYmxlIC5kcmFnLWNvcm5lci10ciB7XG4gIGN1cnNvcjogbmVzdy1yZXNpemU7XG59XG4ucGxvdHRhYmxlIC5kcmFnLWJveC1sYXllci54LXJlc2l6YWJsZS55LXJlc2l6YWJsZSAuZHJhZy1jb3JuZXItYmwge1xuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xufVxuLnBsb3R0YWJsZSAuZHJhZy1ib3gtbGF5ZXIueC1yZXNpemFibGUueS1yZXNpemFibGUgLmRyYWctY29ybmVyLWJyIHtcbiAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbn1cblxuLnBsb3R0YWJsZSAuZHJhZy1ib3gtbGF5ZXIubW92YWJsZSAuc2VsZWN0aW9uLWFyZWEge1xuICBjdXJzb3I6IG1vdmU7IC8qIElFIGZhbGxiYWNrICovXG4gIGN1cnNvcjogLW1vei1ncmFiO1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG4ucGxvdHRhYmxlIC5kcmFnLWJveC1sYXllci5tb3ZhYmxlIC5zZWxlY3Rpb24tYXJlYTphY3RpdmUge1xuICBjdXJzb3I6IC1tb3otZ3JhYmJpbmc7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cbi8qIC9EcmFnQm94TGF5ZXIgKi9cblxuLnBsb3R0YWJsZSAuZ3VpZGUtbGluZS1sYXllciBsaW5lLmd1aWRlLWxpbmUge1xuICBzdHJva2U6ICNDQ0M7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xufVxuXG4ucGxvdHRhYmxlIC5kcmFnLWxpbmUtbGF5ZXIuZW5hYmxlZC52ZXJ0aWNhbCBsaW5lLmRyYWctZWRnZSB7XG4gIGN1cnNvcjogZXctcmVzaXplO1xufVxuXG4ucGxvdHRhYmxlIC5kcmFnLWxpbmUtbGF5ZXIuZW5hYmxlZC5ob3Jpem9udGFsIGxpbmUuZHJhZy1lZGdlIHtcbiAgY3Vyc29yOiBucy1yZXNpemU7XG59XG5cbi5wbG90dGFibGUgLmxlZ2VuZCB0ZXh0IHtcbiAgZmlsbDogIzMyMzEzRjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnBsb3R0YWJsZSAuaW50ZXJwb2xhdGVkLWNvbG9yLWxlZ2VuZCByZWN0LnN3YXRjaC1ib3VuZGluZy1ib3gge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6ICNDQ0M7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnBsb3R0YWJsZSAud2F0ZXJmYWxsLXBsb3QgbGluZS5jb25uZWN0b3Ige1xuICBzdHJva2U6ICNDQ0M7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xufVxuXG4ucGxvdHRhYmxlIC5waWUtcGxvdCAuYXJjLm91dGxpbmUge1xuICBzdHJva2UtbGluZWpvaW46IHJvdW5kO1xufVxuXG4ifSk7Y29uc3QgUFR0PVsxLDAsMCwxLDAsMF07Y2xhc3MgTlR0IGV4dGVuZHMgck8uVXRpbHMuVHJhbnNsYXRvcntjb21wdXRlUG9zaXRpb24odCxlKXtjb25zdCBuPXt4OnQseTplfSxpPShmdW5jdGlvbiByKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7Y29uc3QgZT1bXTtmb3IoO3QmJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDspaWYoZS5wdXNoKHQpLHQuYXNzaWduZWRTbG90KXQ9dC5hc3NpZ25lZFNsb3Q7ZWxzZSBpZih0LnBhcmVudEVsZW1lbnQpdD10LnBhcmVudEVsZW1lbnQ7ZWxzZXtjb25zdCBlPXQucGFyZW50Tm9kZTt0PWUgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50P2UuaG9zdDplIT09dD9lOm51bGx9cmV0dXJuIGV9KSh0KTtsZXQgaT1QVHQscj1udWxsO2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9ck8uVXRpbHMuRE9NLmdldEVsZW1lbnRUcmFuc2Zvcm0odCk7aWYobnVsbCE9ZSl7Y29uc3Qgbj10LmNsaWVudFdpZHRoLzIscj10LmNsaWVudEhlaWdodC8yO2k9ck8uVXRpbHMuTWF0aC5tdWx0aXBseVRyYW5zbGF0ZShpLFtuLHJdKSxpPXJPLlV0aWxzLk1hdGgubXVsdGlwbHlNYXRyaXgoaSxyTy5VdGlscy5NYXRoLmludmVydE1hdHJpeChlKSksaT1yTy5VdGlscy5NYXRoLm11bHRpcGx5VHJhbnNsYXRlKGksWy1uLC1yXSl9bGV0IG49dC5zY3JvbGxMZWZ0LG89dC5zY3JvbGxUb3A7bnVsbCE9PXImJnQhPT1yfHwobi09dC5vZmZzZXRMZWZ0K3QuY2xpZW50TGVmdCxvLT10Lm9mZnNldFRvcCt0LmNsaWVudFRvcCxyPXQub2Zmc2V0UGFyZW50KSxpPXJPLlV0aWxzLk1hdGgubXVsdGlwbHlUcmFuc2xhdGUoaSxbbixvXSl9cmV0dXJuIGl9KSh0aGlzLl9yb290RWxlbWVudCk7cmV0dXJuIG51bGw9PWk/bjpyTy5VdGlscy5NYXRoLmFwcGx5VHJhbnNmb3JtKGksbil9fWNsYXNzIElUdCBleHRlbmRzIHJPLkRpc3BhdGNoZXJzLk1vdXNle2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuX2V2ZW50VGFyZ2V0PXQucm9vdCgpLnJvb3RFbGVtZW50KCkubm9kZSgpLHRoaXMuX3RyYW5zbGF0b3I9bmV3IE5UdCh0LnJvb3QoKS5yb290RWxlbWVudCgpLm5vZGUoKSl9c3RhdGljIGdldERpc3BhdGNoZXIodCl7Y29uc3QgZT10LnJvb3QoKS5yb290RWxlbWVudCgpO2xldCBuPWVbSVR0Ll9ESVNQQVRDSEVSX0tFWV07cmV0dXJuIG58fChuPW5ldyBJVHQodCksZVtJVHQuX0RJU1BBVENIRVJfS0VZXT1uKSxufX1jbGFzcyBSVHQgZXh0ZW5kcyByTy5EaXNwYXRjaGVycy5Ub3VjaHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLl9ldmVudFRhcmdldD10LnJvb3QoKS5yb290RWxlbWVudCgpLm5vZGUoKSx0aGlzLl90cmFuc2xhdG9yPW5ldyBOVHQodC5yb290KCkucm9vdEVsZW1lbnQoKS5ub2RlKCkpfXN0YXRpYyBnZXREaXNwYXRjaGVyKHQpe2NvbnN0IGU9dC5yb290KCkucm9vdEVsZW1lbnQoKTtsZXQgbj1lW1JUdC5fRElTUEFUQ0hFUl9LRVldO3JldHVybiBufHwobj1uZXcgUlR0KHQpLGVbUlR0Ll9ESVNQQVRDSEVSX0tFWV09biksbn19ck8uSW50ZXJhY3Rpb24ucHJvdG90eXBlLl9pc0luc2lkZUNvbXBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4gMDw9dC54JiYwPD10LnkmJnQueDx0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLndpZHRoKCkmJnQueTx0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLmhlaWdodCgpfTtjbGFzcyBPVHQgZXh0ZW5kcyByTy5JbnRlcmFjdGlvbnMuUG9pbnRlcntfYW5jaG9yKHQpe2NvbnN0IGU9dGhpcztlLl9pc0FuY2hvcmVkPSEwLGUuX21vdXNlRGlzcGF0Y2hlcj1JVHQuZ2V0RGlzcGF0Y2hlcihlLl9jb21wb25lbnRBdHRhY2hlZFRvKSxlLl9tb3VzZURpc3BhdGNoZXIub25Nb3VzZU1vdmUoZS5fbW91c2VNb3ZlQ2FsbGJhY2spLGUuX3RvdWNoRGlzcGF0Y2hlcj1SVHQuZ2V0RGlzcGF0Y2hlcihlLl9jb21wb25lbnRBdHRhY2hlZFRvKSxlLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaFN0YXJ0KGUuX3RvdWNoU3RhcnRDYWxsYmFjayl9fXZhciB6VHQ7IShmdW5jdGlvbih0KXt0LkFVVE89ImF1dG8iLHQuQk9UVE9NPSJib3R0b20iLHQuUklHSFQ9InJpZ2h0In0pKHpUdHx8KHpUdD17fSkpO2NvbnN0IERUdD17Ym94U2hhZG93OiIwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAuMykiLG9wYWNpdHk6MCxwb3NpdGlvbjoiZml4ZWQiLHdpbGxDaGFuZ2U6InRyYW5zZm9ybSIsekluZGV4OjV9O2xldCBCVHQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnBvc2l0aW9uPXpUdC5BVVRPLHRoaXMubWluRGlzdEZyb21FZGdlPTE1LHRoaXMuX3N0eWxlQ2FjaGU9bnVsbCx0aGlzLl9yYWY9bnVsbCx0aGlzLl90dW5uZWw9bnVsbH1yZWFkeSgpe3RoaXMuX3N0eWxlQ2FjaGU9bnVsbCx0aGlzLl9yYWY9bnVsbCx0aGlzLl90dW5uZWw9bnVsbH1hdHRhY2hlZCgpe3RoaXMuX3R1bm5lbD10aGlzLl9jcmVhdGVUdW5uZWwoKSx0aGlzLl9oaWRlT25CbHVyPSgpPT57ZG9jdW1lbnQuaGlkZGVuJiZ0aGlzLmhpZGUoKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMuX2hpZGVPbkJsdXIpfWRldGFjaGVkKCl7dGhpcy5oaWRlKCksdGhpcy5fcmVtb3ZlVHVubmVsKHRoaXMuX3R1bm5lbCksdGhpcy5fdHVubmVsPW51bGwsd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMuX2hpZGVPbkJsdXIpfWNvbnRlbnQoKXtyZXR1cm4gdGhpcy5fdHVubmVsLnNoYWRvd1Jvb3R9aGlkZSgpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWYpLHRoaXMuX3N0eWxlQ2FjaGU9bnVsbCx0aGlzLl90dW5uZWwuc3R5bGUub3BhY2l0eT0wfXVwZGF0ZUFuZFBvc2l0aW9uKHQpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWYpLHRoaXMuX3JhZj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuaXNBdHRhY2hlZCYmdGhpcy5fcmVwb3NpdGlvbkltcGwodCl9KSl9X3JlcG9zaXRpb25JbXBsKHQpe2NvbnN0IGU9dGhpcy5fdHVubmVsLG49dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj13aW5kb3cuaW5uZXJIZWlnaHQsbz1kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoLGE9bi50b3Ascz1hK24uaGVpZ2h0LGw9aS5oZWlnaHQrMjA7bGV0IGM9bnVsbCx1PU1hdGgubWF4KHRoaXMubWluRGlzdEZyb21FZGdlLG4ubGVmdCksaD1udWxsLGQ9YTt0aGlzLnBvc2l0aW9uPT16VHQuUklHSFQ/dT1uLnJpZ2h0OihkPXMrMjAsbzx1K2kud2lkdGgrdGhpcy5taW5EaXN0RnJvbUVkZ2UmJih1PW51bGwsaD10aGlzLm1pbkRpc3RGcm9tRWRnZSkpLHRoaXMucG9zaXRpb249PXpUdC5BVVRPJiZuLnRvcC1sPjAmJnI8bi50b3Arbi5oZWlnaHQrbCYmKGQ9bnVsbCxjPXItYSsyMCk7Y29uc3QgcD17Y29udGFpbjoiY29udGVudCIsb3BhY2l0eToxLGxlZnQ6dT9gJHt1fXB4YDpudWxsLHJpZ2h0Omg/YCR7aH1weGA6bnVsbCx0b3A6ZD9gJHtkfXB4YDpudWxsLGJvdHRvbTpjP2Ake2N9cHhgOm51bGx9O1NlLmV4cG9ydHMuaXNFcXVhbCh0aGlzLl9zdHlsZUNhY2hlLHApfHwoT2JqZWN0LmFzc2lnbihlLnN0eWxlLHApLHRoaXMuX3N0eWxlQ2FjaGU9cCl9X2NyZWF0ZVR1bm5lbCgpe2lmKCF0aGlzLmNvbnRlbnRDb21wb25lbnROYW1lKXRocm93IG5ldyBSYW5nZUVycm9yKCJSZXF1aXJlIGBjb250ZW50Q29tcG9uZW50TmFtZWAgdG8gYmUgYSBuYW1lIG9mIGEgUG9seW1lciBjb21wb25lbnQiKTtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jb250ZW50Q29tcG9uZW50TmFtZSk7cmV0dXJuIE9iamVjdC5hc3NpZ24odC5zdHlsZSxEVHQpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksdH1fcmVtb3ZlVHVubmVsKHQpe2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCl9fTt0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxCVHQucHJvdG90eXBlLCJjb250ZW50Q29tcG9uZW50TmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxCVHQucHJvdG90eXBlLCJwb3NpdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxCVHQucHJvdG90eXBlLCJtaW5EaXN0RnJvbUVkZ2UiLHZvaWQgMCksQlR0PXQoW2koInZ6LWNoYXJ0LXRvb2x0aXAiKV0sQlR0KTtjb25zdCBIVHQ9bXkoIi4yfmUiKSxGVHQ9bXkoIi40fnIiKSxWVHQ9bXkoIix+Iik7ZnVuY3Rpb24gVVR0KHQpe2lmKDA9PT10KXJldHVybiIwIjtjb25zdCBlPU1hdGguYWJzKHQpO3JldHVybiBlPj0xZTR8fGU8LjAwMT9IVHQodCk6RlR0KHQpfWNvbnN0IGpUdD17Zm9ybWF0VGljazpVVHQsZm9ybWF0U2hvcnQ6VVR0LGZvcm1hdFJlYWRhYmxlKHQpe2NvbnN0IGU9TWF0aC5hYnModCk7cmV0dXJuIGU+PTFlNHx8ZTwuMDAxP0hUdCh0KTpWVHQodCl9LGZvcm1hdExvbmc6VlR0fTtteSgiMC4zfnMiKSxteSgiLC4zfmYiKSxteSgiLjR+Iik7Y29uc3QgR1R0PWNBKCkudGlja0Zvcm1hdCgpO2xldCBXVHQ7Y29uc3QgcVR0PXtmb3JtYXRUaWNrOnQ9PkdUdChuZXcgRGF0ZSh0KSksZm9ybWF0U2hvcnQ6dD0+bmV3IERhdGUodCkudG9Mb2NhbGVTdHJpbmcoV1R0LHt5ZWFyOiJudW1lcmljIixtb250aDoic2hvcnQiLGRheToibnVtZXJpYyIsaG91cjoibnVtZXJpYyIsbWludXRlOiJudW1lcmljIixzZWNvbmQ6Im51bWVyaWMifSksZm9ybWF0UmVhZGFibGU6dD0+bmV3IERhdGUodCkudG9Mb2NhbGVTdHJpbmcoV1R0LHt5ZWFyOiJudW1lcmljIixtb250aDoic2hvcnQiLGRheToibnVtZXJpYyIsaG91cjoibnVtZXJpYyIsbWludXRlOiJudW1lcmljIixzZWNvbmQ6Im51bWVyaWMiLHRpbWVab25lTmFtZToic2hvcnQifSksZm9ybWF0TG9uZzp0PT5uZXcgRGF0ZSh0KS50b0xvY2FsZVN0cmluZyhXVHQse3llYXI6Im51bWVyaWMiLG1vbnRoOiJsb25nIixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIix0aW1lWm9uZU5hbWU6InNob3J0IixmcmFjdGlvbmFsU2Vjb25kRGlnaXRzOjN9KX07dmFyIFlUdDshKGZ1bmN0aW9uKHQpe3RbdC5MSU5FQVI9MF09IkxJTkVBUiIsdFt0LkxPRzEwPTFdPSJMT0cxMCIsdFt0LlRJTUU9Ml09IlRJTUUifSkoWVR0fHwoWVR0PXt9KSk7Y2xhc3MgWFR0e2NvbnN0cnVjdG9yKCl7dGhpcy5kZWZhdWx0Rm9ybWF0dGVyPWpUdH10cmFuc2Zvcm0odCxlLG4pe2NvbnN0W2kscl09dCxvPXItaSxbYSxzXT1lO3JldHVybiAwPT09bz9hOihzLWEpL28qKG4taSkrYX1mb3J3YXJkKHQsZSxuKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0odCxlLG4pfXJldmVyc2UodCxlLG4pe3JldHVybiB0aGlzLnRyYW5zZm9ybShlLHQsbil9bmljZURvbWFpbih0KXtsZXRbZSxuXT10O2lmKG48ZSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW5wdXQ6IG1pbiBpcyBsYXJnZXIgdGhhbiBtYXgiKTtpZihuPT09ZSlyZXR1cm4gMD09PWU/Wy0xLDFdOmU8MD9bMiplLDBdOlswLDIqZV07Y29uc3QgaT1WTSgpLHI9LjA1KihuLWUrTnVtYmVyLkVQU0lMT04pLFtvLGFdPWkuZG9tYWluKFtlLXIsbityXSkubmljZSgpLmRvbWFpbigpO3JldHVybltvLGFdfXRpY2tzKHQsZSl7cmV0dXJuIFZNKCkuZG9tYWluKHQpLnRpY2tzKGUpfWlzU2FmZU51bWJlcih0KXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpfX1jbGFzcyAkVHR7Y29uc3RydWN0b3IoKXt0aGlzLmRlZmF1bHRGb3JtYXR0ZXI9alR0fXRyYW5zZm9ybSh0KXtyZXR1cm4gTWF0aC5sb2cxMCh0PjA/dDpOdW1iZXIuTUlOX1ZBTFVFKX11bnRyYW5zZm9ybSh0KXtyZXR1cm4gTWF0aC5leHAodC9NYXRoLkxPRzEwRSl9Zm9yd2FyZCh0LGUsbil7aWYobjw9MClyZXR1cm4gZVswXTtjb25zdFtpLHJdPXQsW28sYV09ZSxzPXRoaXMudHJhbnNmb3JtKGkpLGw9dGhpcy50cmFuc2Zvcm0ociktcyxjPWEtbztyZXR1cm4gbj10aGlzLnRyYW5zZm9ybShuKSxjLyhsK051bWJlci5FUFNJTE9OKSoobi1zKStvfXJldmVyc2UodCxlLG4pe2NvbnN0W2kscl09dCxbbyxhXT1lLHM9dGhpcy50cmFuc2Zvcm0oaSksbD10aGlzLnRyYW5zZm9ybShyKTtyZXR1cm4gdGhpcy51bnRyYW5zZm9ybSgobC1zKS8oYS1vK051bWJlci5FUFNJTE9OKSoobi1vKStzKX1uaWNlRG9tYWluKHQpe2NvbnN0W2Usbl09dDtpZihlPm4pdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGlucHV0OiBtaW4gaXMgbGFyZ2VyIHRoYW4gbWF4Iik7Y29uc3QgaT1NYXRoLm1heChlLE51bWJlci5NSU5fVkFMVUUpLHI9TWF0aC5tYXgobixOdW1iZXIuTUlOX1ZBTFVFKTtyZXR1cm4gbjw9MD9bTnVtYmVyLk1JTl9WQUxVRSwxXTpbTWF0aC5tYXgoTnVtYmVyLk1JTl9WQUxVRSwuNSppKSwyKnJdfXRpY2tzKHQsZSl7Y29uc3Qgbj10WzBdPD0wP051bWJlci5NSU5fVkFMVUU6dFswXSxpPXRbMV08PTA/TnVtYmVyLk1JTl9WQUxVRTp0WzFdLHI9S00oKS5kb21haW4oW24saV0pLnRpY2tzKGUpO3JldHVybiByLmxlbmd0aD9yOnR9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCkmJnQ+MH19Y2xhc3MgS1R0e2NvbnN0cnVjdG9yKCl7dGhpcy5zY2FsZT1jQSgpLHRoaXMuZGVmYXVsdEZvcm1hdHRlcj1xVHR9Zm9yd2FyZCh0LGUsbil7cmV0dXJuIHRoaXMuc2NhbGUuZG9tYWluKHQpLnJhbmdlKGUpKG4pfXJldmVyc2UodCxlLG4pe3JldHVybiB0aGlzLnNjYWxlLmRvbWFpbih0KS5yYW5nZShlKS5pbnZlcnQobikuZ2V0VGltZSgpfW5pY2VEb21haW4odCl7Y29uc3RbZSxuXT10aGlzLnNjYWxlLmRvbWFpbih0KS5uaWNlKCkuZG9tYWluKCk7cmV0dXJuW2UuZ2V0VGltZSgpLG4uZ2V0VGltZSgpXX10aWNrcyh0LGUpe3JldHVybiB0aGlzLnNjYWxlLmRvbWFpbih0KS50aWNrcyhlKS5tYXAoKHQ9PnQuZ2V0VGltZSgpKSl9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCl9fWNsYXNzIFpUdCBleHRlbmRzIHJPLlNjYWxlcy5MaW5lYXJ7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX2lnbm9yZU91dGxpZXI9ITEsdGhpcy5wYWRQcm9wb3J0aW9uKC4yKX1zZXRWYWx1ZVByb3ZpZGVyRm9yRG9tYWluKHQpe3JldHVybiB0aGlzLl92YWx1ZVByb3ZpZGVyRm9yRG9tYWluPXQsdGhpc31fbmljZURvbWFpbih0LGUpe2NvbnN0W24saV09dDtyZXR1cm4oZnVuY3Rpb24gcih0KXtzd2l0Y2godCl7Y2FzZSBZVHQuTElORUFSOnJldHVybiBuZXcgWFR0O2Nhc2UgWVR0LkxPRzEwOnJldHVybiBuZXcgJFR0O2Nhc2UgWVR0LlRJTUU6cmV0dXJuIG5ldyBLVHQ7ZGVmYXVsdDp0aHJvdyBuZXcgUmFuZ2VFcnJvcihgU2NhbGVUeXBlICR7dH0gbm90IHN1cHBvcnRlZC5gKX19KShZVHQuTElORUFSKS5uaWNlRG9tYWluKFtuLGldKX1fZ2V0VW5ib3VuZGVkRXh0ZW50KHQpe2NvbnN0IGU9dGhpcy5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXModCk7bGV0IG49dGhpcy5fZGVmYXVsdEV4dGVudCgpO2lmKDAhPT1lLmxlbmd0aCl7Y29uc3QgdD1bck8uVXRpbHMuTWF0aC5taW4oZSxuWzBdKSxyTy5VdGlscy5NYXRoLm1heChlLG5bMV0pXTtuPXRoaXMuX25pY2VEb21haW4odCl9cmV0dXJuIG59X2dldEFsbEluY2x1ZGVkVmFsdWVzKHQ9ITEpe2NvbnN0IGU9dGhpcy5fdmFsdWVQcm92aWRlckZvckRvbWFpbj90aGlzLl92YWx1ZVByb3ZpZGVyRm9yRG9tYWluKCk6W107cmV0dXJuIHRoaXMuZXh0ZW50T2ZWYWx1ZXMoZSl9ZXh0ZW50T2ZWYWx1ZXModCl7Y29uc3QgZT10LmZpbHRlcigodD0+ck8uVXRpbHMuTWF0aC5pc1ZhbGlkTnVtYmVyKHQpKSk7bGV0IG49ZTtpZih0aGlzLmlnbm9yZU91dGxpZXIoKSl7Y29uc3QgdD1lLnNvcnQoKCh0LGUpPT50LWUpKSxpPUdsKHQsLjA1KSxyPUdsKHQsLjk1KTtuPWUuZmlsdGVyKCh0PT50Pj1pJiZ0PD1yKSl9Y29uc3QgaT1MbChuKTtyZXR1cm4gbnVsbD09aVswXXx8bnVsbD09aVsxXT9bXTppfWlnbm9yZU91dGxpZXIodCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdD8odGhpcy5faWdub3JlT3V0bGllcj10LHRoaXMpOnRoaXMuX2lnbm9yZU91dGxpZXJ9fWNsYXNzIEpUdCBleHRlbmRzIHJPLlF1YW50aXRhdGl2ZVNjYWxle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9pZ25vcmVPdXRsaWVyPSExfXNldFZhbHVlUHJvdmlkZXJGb3JEb21haW4odCl7cmV0dXJuIHRoaXMuX3ZhbHVlUHJvdmlkZXJGb3JEb21haW49dCx0aGlzfWlnbm9yZU91dGxpZXIodCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdD8odGhpcy5faWdub3JlT3V0bGllcj10LHRoaXMpOnRoaXMuX2lnbm9yZU91dGxpZXJ9X2dldEFsbEluY2x1ZGVkVmFsdWVzKHQ9ITEpe2NvbnN0IGU9dGhpcy5fdmFsdWVQcm92aWRlckZvckRvbWFpbj90aGlzLl92YWx1ZVByb3ZpZGVyRm9yRG9tYWluKCk6W107cmV0dXJuIHRoaXMuZXh0ZW50T2ZWYWx1ZXMoZSl9fWNvbnN0IFFUdD1NYXRoLnBvdygyLC0xMDc0KTtmdW5jdGlvbiB0Q3QodCl7cmV0dXJuIE1hdGgubG9nMTAodCl9ZnVuY3Rpb24gZUN0KHQpe3JldHVybiBNYXRoLnBvdygxMCx0KX1jbGFzcyBuQ3QgZXh0ZW5kcyBKVHR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX2QzTG9nU2NhbGU9S00oKSx0aGlzLnBhZFByb3BvcnRpb24oLjIpfXNjYWxlKHQpe3JldHVybiB0PD0wP05hTjp0aGlzLl9kM0xvZ1NjYWxlKHQpfWludmVydCh0KXtyZXR1cm4gdGhpcy5fZDNMb2dTY2FsZS5pbnZlcnQodCl9c2NhbGVUcmFuc2Zvcm1hdGlvbih0KXtyZXR1cm4gdGhpcy5zY2FsZSh0KX1pbnZlcnRlZFRyYW5zZm9ybWF0aW9uKHQpe3JldHVybiB0aGlzLmludmVydCh0KX1nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpe3JldHVybiB0aGlzLmRvbWFpbigpfXNldFRyYW5zZm9ybWF0aW9uRG9tYWluKHQpe3RoaXMuZG9tYWluKHQpfWdldFRyYW5zZm9ybWF0aW9uRXh0ZW50KCl7cmV0dXJuIHRoaXMuX2dldFVuYm91bmRlZEV4dGVudCghMCl9X2dldERvbWFpbigpe3JldHVybiB0aGlzLl91bnRyYW5zZm9ybWVkRG9tYWlufV9zZXREb21haW4odCl7dGhpcy5fdW50cmFuc2Zvcm1lZERvbWFpbj10O2NvbnN0W2Usbl09dDtzdXBlci5fc2V0RG9tYWluKFtNYXRoLm1heChRVHQsZSksbl0pfV9uaWNlRG9tYWluKHQsZSl7Y29uc3RbbixpXT10LHI9TWF0aC5tYXgodEN0KFFUdCksdEN0KG4pKSxvPXRDdChpKSxhPW8tcixzPWE/YSp0aGlzLnBhZFByb3BvcnRpb24oKToxO3JldHVybltlQ3QoTWF0aC5tYXgodEN0KFFUdCksci1zKSksZUN0KG8rcyldfV9nZXRVbmJvdW5kZWRFeHRlbnQodCl7Y29uc3QgZT10aGlzLl9nZXRBbGxJbmNsdWRlZFZhbHVlcyh0KTtsZXQgbj10aGlzLl9kZWZhdWx0RXh0ZW50KCk7aWYoMCE9PWUubGVuZ3RoKXtjb25zdCB0PVtyTy5VdGlscy5NYXRoLm1pbihlLG5bMF0pLHJPLlV0aWxzLk1hdGgubWF4KGUsblsxXSldO249dGhpcy5fbmljZURvbWFpbih0KX1yZXR1cm4gbn1fZ2V0QWxsSW5jbHVkZWRWYWx1ZXModD0hMSl7cmV0dXJuIHN1cGVyLl9nZXRBbGxJbmNsdWRlZFZhbHVlcygpLm1hcCgodD0+dD4wP3Q6UVR0KSl9X2RlZmF1bHRFeHRlbnQoKXtyZXR1cm5bMSwxMF19X2JhY2tpbmdTY2FsZURvbWFpbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9kM0xvZ1NjYWxlLmRvbWFpbigpOih0aGlzLl9kM0xvZ1NjYWxlLmRvbWFpbih0KSx0aGlzKX1fZ2V0UmFuZ2UoKXtyZXR1cm4gdGhpcy5fZDNMb2dTY2FsZS5yYW5nZSgpfV9zZXRSYW5nZSh0KXt0aGlzLl9kM0xvZ1NjYWxlLnJhbmdlKHQpfWRlZmF1bHRUaWNrcygpe3JldHVybiB0aGlzLl9kM0xvZ1NjYWxlLnRpY2tzKDEpfXRpY2tzKCl7cmV0dXJuIHRoaXMuX2QzTG9nU2NhbGUudGlja3MoKX1leHRlbnRPZlZhbHVlcyh0KXtjb25zdCBlPXQuZmlsdGVyKCh0PT5yTy5VdGlscy5NYXRoLmlzVmFsaWROdW1iZXIodCkmJnQ+MCkpO2xldCBuPWU7aWYodGhpcy5pZ25vcmVPdXRsaWVyKCkpe2NvbnN0IHQ9ZS5tYXAodEN0KS5zb3J0KCgodCxlKT0+dC1lKSksaT1HbCh0LC4wNSkscj1HbCh0LC45NSk7bj10LmZpbHRlcigodD0+dD49aSYmdDw9cikpLm1hcChlQ3QpfWNvbnN0IGk9TGwobik7cmV0dXJuIG51bGw9PWlbMF18fG51bGw9PWlbMV0/W106aX19Y2xhc3MgaUN0IGV4dGVuZHMgck8uQ29tcG9uZW50cy5TZWxlY3Rpb25Cb3hMYXllcntjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLmVhc2VGbj1UZix0aGlzLl9hbmltYXRpb25UaW1lPTc1MCx0aGlzLnhTY2FsZSh0KSx0aGlzLnlTY2FsZShlKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb249bmV3IHJPLkludGVyYWN0aW9ucy5EcmFnLHRoaXMuX2RvdWJsZUNsaWNrSW50ZXJhY3Rpb249bmV3IHJPLkludGVyYWN0aW9ucy5DbGljayx0aGlzLnNldHVwQ2FsbGJhY2tzKCksdGhpcy51bnpvb21NZXRob2Q9bix0aGlzLm9uRGV0YWNoKCgoKT0+e3RoaXMuX2RvdWJsZUNsaWNrSW50ZXJhY3Rpb24uZGV0YWNoRnJvbSh0aGlzKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24uZGV0YWNoRnJvbSh0aGlzKX0pKSx0aGlzLm9uQW5jaG9yKCgoKT0+e3RoaXMuX2RvdWJsZUNsaWNrSW50ZXJhY3Rpb24uYXR0YWNoVG8odGhpcyksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLmF0dGFjaFRvKHRoaXMpfSkpfWludGVyYWN0aW9uU3RhcnQodCl7dGhpcy5vblN0YXJ0PXR9aW50ZXJhY3Rpb25FbmQodCl7dGhpcy5vbkVuZD10fWRyYWdJbnRlcmFjdGlvbigpe3JldHVybiB0aGlzLl9kcmFnSW50ZXJhY3Rpb259c2V0dXBDYWxsYmFja3MoKXtsZXQgdD0hMTt0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnU3RhcnQoKHQ9Pnt0aGlzLmJvdW5kcyh7dG9wTGVmdDp0LGJvdHRvbVJpZ2h0OnR9KSx0aGlzLm9uU3RhcnQoKX0pKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnKCgoZSxuKT0+e3RoaXMuYm91bmRzKHt0b3BMZWZ0OmUsYm90dG9tUmlnaHQ6bn0pLHRoaXMuYm94VmlzaWJsZSghMCksdD0hMH0pKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnRW5kKCgoZSxuKT0+e3RoaXMuYm94VmlzaWJsZSghMSksdGhpcy5ib3VuZHMoe3RvcExlZnQ6ZSxib3R0b21SaWdodDpufSksdD90aGlzLnpvb20oKTp0aGlzLm9uRW5kKCksdD0hMX0pKSx0aGlzLl9kb3VibGVDbGlja0ludGVyYWN0aW9uLm9uRG91YmxlQ2xpY2sodGhpcy51bnpvb20uYmluZCh0aGlzKSl9YW5pbWF0aW9uVGltZSh0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9hbmltYXRpb25UaW1lO2lmKHQ8MCl0aHJvdyBuZXcgRXJyb3IoImFuaW1hdGlvblRpbWUgY2Fubm90IGJlIG5lZ2F0aXZlIik7cmV0dXJuIHRoaXMuX2FuaW1hdGlvblRpbWU9dCx0aGlzfWVhc2UodCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJlYXNlIGZ1bmN0aW9uIG11c3QgYmUgYSBmdW5jdGlvbiIpO3JldHVybiAwPT09dCgwKSYmMT09PXQoMSl8fHJPLlV0aWxzLldpbmRvdy53YXJuKCJFYXNpbmcgZnVuY3Rpb24gZG9lcyBub3QgbWFpbnRhaW4gaW52YXJpYW50IGYoMCk9PTAgJiYgZigxKT09MS4gQmFkIGJlaGF2aW9yIG1heSByZXN1bHQuIiksdGhpcy5lYXNlRm49dCx0aGlzfXpvb20oKXtsZXQgdD10aGlzLnhFeHRlbnQoKVswXS52YWx1ZU9mKCksZT10aGlzLnhFeHRlbnQoKVsxXS52YWx1ZU9mKCksbj10aGlzLnlFeHRlbnQoKVsxXS52YWx1ZU9mKCksaT10aGlzLnlFeHRlbnQoKVswXS52YWx1ZU9mKCk7dCE9PWUmJm4hPT1pJiZ0aGlzLmludGVycG9sYXRlWm9vbSh0LGUsbixpKX11bnpvb20oKXtsZXQgdD10aGlzLnhTY2FsZSgpO3QuX2RvbWFpbk1pbj1udWxsLHQuX2RvbWFpbk1heD1udWxsO2xldCBlPXQuX2dldEV4dGVudCgpO3RoaXMueFNjYWxlKCkuZG9tYWluKGUpLHRoaXMudW56b29tTWV0aG9kKCl9aXNab29taW5nKHQpe3RoaXMuX2RyYWdJbnRlcmFjdGlvbi5lbmFibGVkKCF0KSx0aGlzLl9kb3VibGVDbGlja0ludGVyYWN0aW9uLmVuYWJsZWQoIXQpfWludGVycG9sYXRlWm9vbSh0LGUsbixpKXtsZXQgcj10aGlzLnhTY2FsZSgpLmRvbWFpbigpWzBdLnZhbHVlT2YoKSxvPXRoaXMueFNjYWxlKCkuZG9tYWluKClbMV0udmFsdWVPZigpLGE9dGhpcy55U2NhbGUoKS5kb21haW4oKVswXS52YWx1ZU9mKCkscz10aGlzLnlTY2FsZSgpLmRvbWFpbigpWzFdLnZhbHVlT2YoKSxsPXRoaXMuZWFzZUZuLGM9KHQsZSxuKT0+QmQodCxlKShsKG4pKTt0aGlzLmlzWm9vbWluZyghMCk7bGV0IHU9RGF0ZS5ub3coKSxoPSgpPT57bGV0IGw9RGF0ZS5ub3coKSxkPTA9PT10aGlzLl9hbmltYXRpb25UaW1lPzE6TWF0aC5taW4oMSwobC11KS90aGlzLl9hbmltYXRpb25UaW1lKSxwPWMocix0LGQpLGY9YyhvLGUsZCksbT1jKGEsbixkKSxnPWMocyxpLGQpO3RoaXMueFNjYWxlKCkuZG9tYWluKFtwLGZdKSx0aGlzLnlTY2FsZSgpLmRvbWFpbihbbSxnXSksZDwxP3JPLlV0aWxzLkRPTS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVQb2x5ZmlsbChoKToodGhpcy5vbkVuZCgpLHRoaXMuaXNab29taW5nKCExKSl9O2goKX19dmFyIHJDdCxvQ3QsYUN0LHNDdDshKGZ1bmN0aW9uKHQpe3RbdC5OT05FPTBdPSJOT05FIix0W3QuRFJBR19aT09NSU5HPTFdPSJEUkFHX1pPT01JTkciLHRbdC5QQU5OSU5HPTJdPSJQQU5OSU5HIn0pKHJDdHx8KHJDdD17fSkpO2NsYXNzIGxDdCBleHRlbmRzIHJPLkNvbXBvbmVudHMuR3JvdXB7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy5zdGF0ZT1yQ3QuTk9ORSx0aGlzLnBhblN0YXJ0Q2FsbGJhY2s9bmV3IHJPLlV0aWxzLkNhbGxiYWNrU2V0LHRoaXMucGFuRW5kQ2FsbGJhY2s9bmV3IHJPLlV0aWxzLkNhbGxiYWNrU2V0LHRoaXMucGFuWm9vbT1uZXcgck8uSW50ZXJhY3Rpb25zLlBhblpvb20odCxlKSx0aGlzLnBhblpvb20uZHJhZ0ludGVyYWN0aW9uKCkubW91c2VGaWx0ZXIoKHQ9PmxDdC5pc1BhbktleSh0KSYmMD09PXQuYnV0dG9uKSksdGhpcy5wYW5ab29tLndoZWVsRmlsdGVyKHRoaXMuY2FuU2Nyb2xsWm9vbSksdGhpcy5kcmFnWm9vbUxheWVyPW5ldyBpQ3QodCxlLG4pLHRoaXMuZHJhZ1pvb21MYXllci5kcmFnSW50ZXJhY3Rpb24oKS5tb3VzZUZpbHRlcigodD0+IWxDdC5pc1BhbktleSh0KSYmMD09PXQuYnV0dG9uKSksdGhpcy5hcHBlbmQodGhpcy5kcmFnWm9vbUxheWVyKTtjb25zdCBpPXRoaXMub25XaGVlbC5iaW5kKHRoaXMpO3RoaXMub25BbmNob3IoKCgpPT57dGhpcy5fbW91c2VEaXNwYXRjaGVyPXJPLkRpc3BhdGNoZXJzLk1vdXNlLmdldERpc3BhdGNoZXIodGhpcyksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9uV2hlZWwoaSksdGhpcy5wYW5ab29tLmF0dGFjaFRvKHRoaXMpfSkpLHRoaXMub25EZXRhY2goKCgpPT57dGhpcy5wYW5ab29tLmRldGFjaEZyb20odGhpcyksdGhpcy5fbW91c2VEaXNwYXRjaGVyJiYodGhpcy5fbW91c2VEaXNwYXRjaGVyLm9mZldoZWVsKGkpLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1udWxsKX0pKSx0aGlzLnBhblpvb20uZHJhZ0ludGVyYWN0aW9uKCkub25EcmFnU3RhcnQoKCgpPT57dGhpcy5zdGF0ZT09ckN0Lk5PTkUmJnRoaXMuc2V0U3RhdGUockN0LlBBTk5JTkcpfSkpLHRoaXMucGFuWm9vbS5kcmFnSW50ZXJhY3Rpb24oKS5vbkRyYWdFbmQoKCgpPT57dGhpcy5zdGF0ZT09ckN0LlBBTk5JTkcmJnRoaXMuc2V0U3RhdGUockN0Lk5PTkUpfSkpLHRoaXMuZHJhZ1pvb21MYXllci5kcmFnSW50ZXJhY3Rpb24oKS5vbkRyYWdTdGFydCgoKCk9Pnt0aGlzLnN0YXRlPT1yQ3QuTk9ORSYmdGhpcy5zZXRTdGF0ZShyQ3QuRFJBR19aT09NSU5HKX0pKSx0aGlzLmRyYWdab29tTGF5ZXIuZHJhZ0ludGVyYWN0aW9uKCkub25EcmFnRW5kKCgoKT0+e3RoaXMuc3RhdGU9PXJDdC5EUkFHX1pPT01JTkcmJnRoaXMuc2V0U3RhdGUockN0Lk5PTkUpfSkpfW9uV2hlZWwodCxlKXtpZih0aGlzLmNhblNjcm9sbFpvb20oZSkpcmV0dXJuO2NvbnN0IG49dGhpcy5lbGVtZW50KCk7aWYoIW4uc2VsZWN0KCIuaGVscCIpLmVtcHR5KCkpcmV0dXJuO2NvbnN0IGk9bi5hcHBlbmQoImRpdiIpLmNsYXNzZWQoImhlbHAiLCEwKTtpLmFwcGVuZCgic3BhbiIpLnRleHQoIkFsdCArIFNjcm9sbCB0byBab29tIiksaS5vbigiYW5pbWF0aW9uZW5kIiwoKCk9PntpLnJlbW92ZSgpfSkpfXN0YXRpYyBpc1BhbktleSh0KXtyZXR1cm4gQm9vbGVhbih0LmFsdEtleSl8fEJvb2xlYW4odC5zaGlmdEtleSl9Y2FuU2Nyb2xsWm9vbSh0KXtyZXR1cm4gdC5hbHRLZXl9c2V0U3RhdGUodCl7aWYodGhpcy5zdGF0ZT09dClyZXR1cm47Y29uc3QgZT10aGlzLnN0YXRlO3RoaXMuc3RhdGU9dCx0aGlzLnJvb3QoKS5yZW1vdmVDbGFzcyh0aGlzLnN0YXRlQ2xhc3NOYW1lKGUpKSx0aGlzLnJvb3QoKS5hZGRDbGFzcyh0aGlzLnN0YXRlQ2xhc3NOYW1lKHQpKSxlPT1yQ3QuUEFOTklORyYmdGhpcy5wYW5FbmRDYWxsYmFjay5jYWxsQ2FsbGJhY2tzKCksdD09ckN0LlBBTk5JTkcmJnRoaXMucGFuU3RhcnRDYWxsYmFjay5jYWxsQ2FsbGJhY2tzKCl9c3RhdGVDbGFzc05hbWUodCl7c3dpdGNoKHQpe2Nhc2UgckN0LlBBTk5JTkc6cmV0dXJuInBhbm5pbmciO2Nhc2UgckN0LkRSQUdfWk9PTUlORzpyZXR1cm4iZHJhZy16b29taW5nIjtjYXNlIHJDdC5OT05FOmRlZmF1bHQ6cmV0dXJuIiJ9fW9uUGFuU3RhcnQodCl7dGhpcy5wYW5TdGFydENhbGxiYWNrLmFkZCh0KX1vblBhbkVuZCh0KXt0aGlzLnBhbkVuZENhbGxiYWNrLmFkZCh0KX1vblNjcm9sbFpvb20odCl7dGhpcy5wYW5ab29tLm9uWm9vbUVuZCh0KX1vbkRyYWdab29tU3RhcnQodCl7dGhpcy5kcmFnWm9vbUxheWVyLmludGVyYWN0aW9uU3RhcnQodCl9b25EcmFnWm9vbUVuZCh0KXt0aGlzLmRyYWdab29tTGF5ZXIuaW50ZXJhY3Rpb25FbmQodCl9fSEoZnVuY3Rpb24odCl7dFt0LlRFWFQ9MF09IlRFWFQiLHRbdC5ET009MV09IkRPTSJ9KShvQ3R8fChvQ3Q9e30pKSwoZnVuY3Rpb24odCl7dC5MT0c9ImxvZyIsdC5MSU5FQVI9ImxpbmVhciJ9KShhQ3R8fChhQ3Q9e30pKTtjbGFzcyBjQ3R7Y29uc3RydWN0b3IodCxlLG4saSxyLG8sYSxzLGwsYyx1KXt0aGlzLmRpcnR5RGF0YXNldHM9bmV3IFNldCx0aGlzLnNlcmllc05hbWVzPVtdLHRoaXMubmFtZTJkYXRhc2V0cz17fSx0aGlzLmNvbG9yU2NhbGU9aSx0aGlzLnRvb2x0aXA9cix0aGlzLmRhdGFzZXRzPVtdLHRoaXMuX2lnbm9yZVlPdXRsaWVycz0hMSx0aGlzLmxhc3RQb2ludHNEYXRhc2V0PW5ldyByTy5EYXRhc2V0LHRoaXMubmFuRGF0YXNldD1uZXcgck8uRGF0YXNldCx0aGlzLnlWYWx1ZUFjY2Vzc29yPWUsdGhpcy5zeW1ib2xGdW5jdGlvbj1jLHRoaXMuX2RlZmF1bHRYUmFuZ2U9cyx0aGlzLl9kZWZhdWx0WVJhbmdlPWwsdGhpcy50b29sdGlwQ29sdW1ucz1vLHRoaXMuYnVpbGRDaGFydCh0LGUsbixhLHUpfWJ1aWxkQ2hhcnQodCxlLG4saSxyKXt0aGlzLmRlc3Ryb3koKTtjb25zdCBvPXQoKTt0aGlzLnhBY2Nlc3Nvcj1vLmFjY2Vzc29yLHRoaXMueFNjYWxlPW8uc2NhbGUsdGhpcy54QXhpcz1vLmF4aXMsdGhpcy54QXhpcy5tYXJnaW4oMSkudGlja0xhYmVsUGFkZGluZygzKSxyJiZ0aGlzLnhBeGlzLmZvcm1hdHRlcihyKSx0aGlzLnlTY2FsZT1jQ3QuZ2V0WVNjYWxlRnJvbVR5cGUobiksdGhpcy55U2NhbGUuc2V0VmFsdWVQcm92aWRlckZvckRvbWFpbigoKCk9PnRoaXMuZ2V0VmFsdWVzRm9yWUF4aXNEb21haW5Db21wdXRlKCkpKSx0aGlzLnlBeGlzPW5ldyByTy5BeGVzLk51bWVyaWModGhpcy55U2NhbGUsImxlZnQiKTtsZXQgYT13VHQoMyk7dGhpcy55QXhpcy5tYXJnaW4oMCkudGlja0xhYmVsUGFkZGluZyg1KS5mb3JtYXR0ZXIoYSksdGhpcy55QXhpcy51c2VzVGV4dFdpZHRoQXBwcm94aW1hdGlvbighMCksdGhpcy5maWxsQXJlYT1pO2NvbnN0IHM9bmV3IGxDdCh0aGlzLnhTY2FsZSx0aGlzLnlTY2FsZSwoKCk9PnRoaXMucmVzZXREb21haW4oKSkpO3RoaXMudG9vbHRpcEludGVyYWN0aW9uPXRoaXMuY3JlYXRlVG9vbHRpcEludGVyYWN0aW9uKHMpLHRoaXMudG9vbHRpcFBvaW50c0NvbXBvbmVudD1uZXcgck8uQ29tcG9uZW50O2NvbnN0IGw9dGhpcy5idWlsZFBsb3QodGhpcy54U2NhbGUsdGhpcy55U2NhbGUsaSk7dGhpcy5ncmlkbGluZXM9bmV3IHJPLkNvbXBvbmVudHMuR3JpZGxpbmVzKHRoaXMueFNjYWxlLHRoaXMueVNjYWxlKTtsZXQgYz1udWxsO24hPT1hQ3QuTE9HJiYoYz1uZXcgck8uQ29tcG9uZW50cy5HdWlkZUxpbmVMYXllcigiaG9yaXpvbnRhbCIpLGMuc2NhbGUodGhpcy55U2NhbGUpLnZhbHVlKDApKTtsZXQgdT1uZXcgck8uQ29tcG9uZW50cy5HdWlkZUxpbmVMYXllcigidmVydGljYWwiKTt1LnNjYWxlKHRoaXMueFNjYWxlKS52YWx1ZSgwKSx0aGlzLmNlbnRlcj1uZXcgck8uQ29tcG9uZW50cy5Hcm91cChbdGhpcy5ncmlkbGluZXMsYyx1LGwsdGhpcy50b29sdGlwUG9pbnRzQ29tcG9uZW50LHNdKSx0aGlzLmNlbnRlci5hZGRDbGFzcygibWFpbiIpLHRoaXMub3V0ZXI9bmV3IHJPLkNvbXBvbmVudHMuVGFibGUoW1t0aGlzLnlBeGlzLHRoaXMuY2VudGVyXSxbbnVsbCx0aGlzLnhBeGlzXV0pfWJ1aWxkUGxvdCh0LGUsbil7biYmKHRoaXMubWFyZ2luQXJlYVBsb3Q9bmV3IHJPLlBsb3RzLkFyZWEsdGhpcy5tYXJnaW5BcmVhUGxvdC54KHRoaXMueEFjY2Vzc29yLHQpLHRoaXMubWFyZ2luQXJlYVBsb3QueShuLmhpZ2hlckFjY2Vzc29yLGUpLHRoaXMubWFyZ2luQXJlYVBsb3QueTAobi5sb3dlckFjY2Vzc29yKSx0aGlzLm1hcmdpbkFyZWFQbG90LmF0dHIoImZpbGwiLCgodCxlLG4pPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUobi5tZXRhZGF0YSgpLm5hbWUpKSksdGhpcy5tYXJnaW5BcmVhUGxvdC5hdHRyKCJmaWxsLW9wYWNpdHkiLC4zKSx0aGlzLm1hcmdpbkFyZWFQbG90LmF0dHIoInN0cm9rZS13aWR0aCIsMCkpLHRoaXMuc21vb3RoZWRBY2Nlc3Nvcj10PT50LnNtb290aGVkO2xldCBpPW5ldyByTy5QbG90cy5MaW5lO2kueCh0aGlzLnhBY2Nlc3Nvcix0KSxpLnkodGhpcy55VmFsdWVBY2Nlc3NvcixlKSxpLmF0dHIoInN0cm9rZSIsKCh0LGUsbik9PnRoaXMuY29sb3JTY2FsZS5zY2FsZShuLm1ldGFkYXRhKCkubmFtZSkpKSx0aGlzLmxpbmVQbG90PWksdGhpcy5zZXR1cFRvb2x0aXBzKGkpO2xldCByPW5ldyByTy5QbG90cy5MaW5lO2lmKHIueCh0aGlzLnhBY2Nlc3Nvcix0KSxyLnkodGhpcy5zbW9vdGhlZEFjY2Vzc29yLGUpLHIuYXR0cigic3Ryb2tlIiwoKHQsZSxuKT0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKG4ubWV0YWRhdGEoKS5uYW1lKSkpLHRoaXMuc21vb3RoTGluZVBsb3Q9cix0aGlzLnN5bWJvbEZ1bmN0aW9uKXtjb25zdCBuPW5ldyByTy5QbG90cy5TY2F0dGVyO24ueCh0aGlzLnhBY2Nlc3Nvcix0KSxuLnkodGhpcy55VmFsdWVBY2Nlc3NvcixlKSxuLmF0dHIoImZpbGwiLCgodCxlLG4pPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUobi5tZXRhZGF0YSgpLm5hbWUpKSksbi5hdHRyKCJvcGFjaXR5IiwxKSxuLnNpemUoOCksbi5zeW1ib2woKCh0LGUsbik9PnRoaXMuc3ltYm9sRnVuY3Rpb24obi5tZXRhZGF0YSgpLm5hbWUpKSksdGhpcy5tYXJrZXJzU2NhdHRlclBsb3Q9bn1sZXQgbz1uZXcgck8uUGxvdHMuU2NhdHRlcjtvLngodGhpcy54QWNjZXNzb3IsdCksby55KHRoaXMueVZhbHVlQWNjZXNzb3IsZSksby5hdHRyKCJmaWxsIiwodD0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKHQubmFtZSkpKSxvLmF0dHIoIm9wYWNpdHkiLDEpLG8uc2l6ZSg4KSxvLmRhdGFzZXRzKFt0aGlzLmxhc3RQb2ludHNEYXRhc2V0XSksdGhpcy5zY2F0dGVyUGxvdD1vO2xldCBhPW5ldyByTy5QbG90cy5TY2F0dGVyO2EueCh0aGlzLnhBY2Nlc3Nvcix0KSxhLnkoKHQ9PnQuZGlzcGxheVkpLGUpLGEuYXR0cigiZmlsbCIsKHQ9PnRoaXMuY29sb3JTY2FsZS5zY2FsZSh0Lm5hbWUpKSksYS5hdHRyKCJvcGFjaXR5IiwxKSxhLnNpemUoMTIpLGEuZGF0YXNldHMoW3RoaXMubmFuRGF0YXNldF0pLGEuc3ltYm9sKHJPLlN5bWJvbEZhY3Rvcmllcy50cmlhbmdsZSksdGhpcy5uYW5EaXNwbGF5PWE7Y29uc3Qgcz1bYSxvLHIsaV07cmV0dXJuIHRoaXMubWFyZ2luQXJlYVBsb3QmJnMucHVzaCh0aGlzLm1hcmdpbkFyZWFQbG90KSx0aGlzLm1hcmtlcnNTY2F0dGVyUGxvdCYmcy5wdXNoKHRoaXMubWFya2Vyc1NjYXR0ZXJQbG90KSxuZXcgck8uQ29tcG9uZW50cy5Hcm91cChzKX1pZ25vcmVZT3V0bGllcnModCl7dCE9PXRoaXMuX2lnbm9yZVlPdXRsaWVycyYmKHRoaXMuX2lnbm9yZVlPdXRsaWVycz10LHRoaXMudXBkYXRlU3BlY2lhbERhdGFzZXRzKCksdGhpcy55U2NhbGUuaWdub3JlT3V0bGllcih0KSx0aGlzLnJlc2V0WURvbWFpbigpKX1nZXRWYWx1ZXNGb3JZQXhpc0RvbWFpbkNvbXB1dGUoKXtjb25zdCB0PXRoaXMuZ2V0QWNjZXNzb3JzRm9yQ29tcHV0aW5nWVJhbmdlKCk7cmV0dXJuIFNlLmV4cG9ydHMuZmxhdHRlbkRlZXAodGhpcy5kYXRhc2V0cy5tYXAoKGU9PnQubWFwKCh0PT5lLmRhdGEoKS5tYXAoKG49PnQobiwtMSxlKSkpKSkpKSkuZmlsdGVyKGlzRmluaXRlKX11cGRhdGVTcGVjaWFsRGF0YXNldHMoKXtjb25zdCB0PXRoaXMuZ2V0WUF4aXNBY2Nlc3NvcigpO2xldCBlPXRoaXMuZGF0YXNldHMubWFwKChlPT57bGV0IG49bnVsbCxpPWUuZGF0YSgpLmZpbHRlcigobj0+IWlzTmFOKHQobiwtMSxlKSkpKTtyZXR1cm4gaS5sZW5ndGg+MCYmKG49aVtpLmxlbmd0aC0xXSxuLm5hbWU9ZS5tZXRhZGF0YSgpLm5hbWUsbi5yZWxhdGl2ZT1UVHQobiwwLGUpKSxufSkpLmZpbHRlcigodD0+bnVsbCE9dCkpO3RoaXMubGFzdFBvaW50c0RhdGFzZXQuZGF0YShlKSx0aGlzLm1hcmtlcnNTY2F0dGVyUGxvdCYmdGhpcy5tYXJrZXJzU2NhdHRlclBsb3QuZGF0YXNldHModGhpcy5kYXRhc2V0cy5tYXAodGhpcy5jcmVhdGVTYW1wbGVkRGF0YXNldEZvck1hcmtlcnMpKTtsZXQgbj1TZS5leHBvcnRzLmZsYXR0ZW4odGhpcy5kYXRhc2V0cy5tYXAoKGU9PntsZXQgbj1udWxsLGk9ZS5kYXRhKCkscj0wO2Zvcig7cjxpLmxlbmd0aCYmbnVsbD09bjspaXNOYU4odChpW3JdLC0xLGUpKXx8KG49dChpW3JdLC0xLGUpKSxyKys7bnVsbD09biYmKG49MCk7bGV0IG89W107Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKylpc05hTih0KGlbcl0sLTEsZSkpPyhpW3JdLm5hbWU9ZS5tZXRhZGF0YSgpLm5hbWUsaVtyXS5kaXNwbGF5WT1uLGlbcl0ucmVsYXRpdmU9VFR0KGlbcl0sMCxlKSxvLnB1c2goaVtyXSkpOm49dChpW3JdLC0xLGUpO3JldHVybiBvfSkpKTt0aGlzLm5hbkRhdGFzZXQuZGF0YShuKX1yZXNldERvbWFpbigpe3RoaXMucmVzZXRYRG9tYWluKCksdGhpcy5yZXNldFlEb21haW4oKX1yZXNldFhEb21haW4oKXtsZXQgdDtpZihudWxsIT10aGlzLl9kZWZhdWx0WFJhbmdlKXQ9dGhpcy5fZGVmYXVsdFhSYW5nZTtlbHNle2NvbnN0IGU9dGhpcy54U2NhbGU7ZS5fZG9tYWluTWluPW51bGwsZS5fZG9tYWluTWF4PW51bGwsdD1lLl9nZXRFeHRlbnQoKX10aGlzLnhTY2FsZS5kb21haW4odCl9cmVzZXRZRG9tYWluKCl7bnVsbCE9dGhpcy5fZGVmYXVsdFlSYW5nZT90aGlzLnlTY2FsZS5kb21haW4odGhpcy5fZGVmYXVsdFlSYW5nZSk6KHRoaXMueVNjYWxlLmF1dG9Eb21haW4oKSx0aGlzLnlTY2FsZS5kb21haW4odGhpcy55U2NhbGUuZG9tYWluKCkpKX1nZXRBY2Nlc3NvcnNGb3JDb21wdXRpbmdZUmFuZ2UoKXtjb25zdCB0PVt0aGlzLmdldFlBeGlzQWNjZXNzb3IoKV07cmV0dXJuIHRoaXMuZmlsbEFyZWEmJnQucHVzaCh0aGlzLmZpbGxBcmVhLmxvd2VyQWNjZXNzb3IsdGhpcy5maWxsQXJlYS5oaWdoZXJBY2Nlc3NvciksdH1nZXRZQXhpc0FjY2Vzc29yKCl7cmV0dXJuIHRoaXMuc21vb3RoaW5nRW5hYmxlZD90aGlzLnNtb290aGVkQWNjZXNzb3I6dGhpcy55VmFsdWVBY2Nlc3Nvcn1jcmVhdGVUb29sdGlwSW50ZXJhY3Rpb24odCl7Y29uc3QgZT1uZXcgT1R0LG49KCk9PntlLmVuYWJsZWQoITEpLHRoaXMuaGlkZVRvb2x0aXBzKCl9LGk9KCk9PmUuZW5hYmxlZCghMCk7cmV0dXJuIHQub25QYW5TdGFydChuKSx0Lm9uRHJhZ1pvb21TdGFydChuKSx0Lm9uUGFuRW5kKGkpLHQub25EcmFnWm9vbUVuZChpKSx0Lm9uU2Nyb2xsWm9vbSgoKCk9PnRoaXMudXBkYXRlVG9vbHRpcENvbnRlbnQodGhpcy5fbGFzdE1vdXNlUG9zaXRpb24pKSksZS5vblBvaW50ZXJNb3ZlKCh0PT57dGhpcy5fbGFzdE1vdXNlUG9zaXRpb249dCx0aGlzLnVwZGF0ZVRvb2x0aXBDb250ZW50KHQpfSkpLGUub25Qb2ludGVyRXhpdCgoKCk9PnRoaXMuaGlkZVRvb2x0aXBzKCkpKSxlfXVwZGF0ZVRvb2x0aXBDb250ZW50KHQpe3RoaXMubGluZVBsb3QmJih3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fdG9vbHRpcFVwZGF0ZUFuaW1hdGlvbkZyYW1lKSx0aGlzLl90b29sdGlwVXBkYXRlQW5pbWF0aW9uRnJhbWU9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PntsZXQgZT17eDp0LngseTp0LnksZGF0dW06bnVsbCxkYXRhc2V0Om51bGx9LG49dGhpcy5ncmlkbGluZXMuY29udGVudCgpLm5vZGUoKS5nZXRCQm94KCksaT10aGlzLmxpbmVQbG90LmRhdGFzZXRzKCkubWFwKCh0PT50aGlzLmZpbmRDbG9zZXN0UG9pbnQoZSx0KSkpLmZpbHRlcihCb29sZWFuKSxyPXJPLlV0aWxzLkRPTS5pbnRlcnNlY3RzQkJveCxvPWkuZmlsdGVyKCh0PT5yKHQueCx0Lnksbil8fGlzTmFOKHRoaXMueVZhbHVlQWNjZXNzb3IodC5kYXR1bSwwLHQuZGF0YXNldCkpKSksYT1vLmZpbHRlcigodD0+IWlzTmFOKHRoaXMueVZhbHVlQWNjZXNzb3IodC5kYXR1bSwwLHQuZGF0YXNldCkpKSk7aWYoMCE9PWkubGVuZ3RoKXt0aGlzLnNjYXR0ZXJQbG90LmF0dHIoImRpc3BsYXkiLCJub25lIik7Y29uc3QgdD10aGlzLnRvb2x0aXBQb2ludHNDb21wb25lbnQuY29udGVudCgpLnNlbGVjdEFsbCgiLnBvaW50IikuZGF0YShhLCh0PT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lKSk7dC5lbnRlcigpLmFwcGVuZCgiY2lyY2xlIikuY2xhc3NlZCgicG9pbnQiLCEwKSx0LmF0dHIoInIiLDQpLmF0dHIoImN4IiwodD0+dC54KSkuYXR0cigiY3kiLCh0PT50LnkpKS5zdHlsZSgic3Ryb2tlIiwibm9uZSIpLmF0dHIoImZpbGwiLCh0PT50aGlzLmNvbG9yU2NhbGUuc2NhbGUodC5kYXRhc2V0Lm1ldGFkYXRhKCkubmFtZSkpKSx0LmV4aXQoKS5yZW1vdmUoKSx0aGlzLmRyYXdUb29sdGlwcyhvLGUsdGhpcy50b29sdGlwQ29sdW1ucyl9ZWxzZSB0aGlzLmhpZGVUb29sdGlwcygpfSkpKX1oaWRlVG9vbHRpcHMoKXt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fdG9vbHRpcFVwZGF0ZUFuaW1hdGlvbkZyYW1lKSx0aGlzLnRvb2x0aXAuaGlkZSgpLHRoaXMuc2NhdHRlclBsb3QuYXR0cigiZGlzcGxheSIsImJsb2NrIiksdGhpcy50b29sdGlwUG9pbnRzQ29tcG9uZW50LmNvbnRlbnQoKS5zZWxlY3RBbGwoIi5wb2ludCIpLnJlbW92ZSgpfXNldHVwVG9vbHRpcHModCl7dC5vbkRldGFjaCgoKCk9Pnt0aGlzLnRvb2x0aXBJbnRlcmFjdGlvbi5kZXRhY2hGcm9tKHQpLHRoaXMudG9vbHRpcEludGVyYWN0aW9uLmVuYWJsZWQoITEpfSkpLHQub25BbmNob3IoKCgpPT57dGhpcy50b29sdGlwSW50ZXJhY3Rpb24uYXR0YWNoVG8odCksdGhpcy50b29sdGlwSW50ZXJhY3Rpb24uZW5hYmxlZCghMCl9KSl9ZHJhd1Rvb2x0aXBzKHQsZSxuKXtpZighdC5sZW5ndGgpcmV0dXJuIHZvaWQgdGhpcy50b29sdGlwLmhpZGUoKTtjb25zdHtjb2xvclNjYWxlOml9PXRoaXM7bj1be3RpdGxlOiIiLHN0YXRpYzohMSxldmFsVHlwZTpvQ3QuRE9NLGV2YWx1YXRlKHQpe3JldHVybiBTdSh0aGlzKS5zZWxlY3QoInNwYW4iKS5zdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsKCgpPT5pLnNjYWxlKHQuZGF0YXNldC5tZXRhZGF0YSgpLm5hbWUpKSksIiJ9LGVudGVyKHQpe1N1KHRoaXMpLmFwcGVuZCgic3BhbiIpLmNsYXNzZWQoInN3YXRjaCIsITApLnN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwoKCk9Pmkuc2NhbGUodC5kYXRhc2V0Lm1ldGFkYXRhKCkubmFtZSkpKX19LC4uLm5dO2NvbnN0IHI9dD0+TWF0aC5wb3codC54LWUueCwyKStNYXRoLnBvdyh0LnktZS55LDIpLG89U2UuZXhwb3J0cy5taW4odC5tYXAocikpLGE9dGhpcy5zbW9vdGhpbmdFbmFibGVkP3RoaXMuc21vb3RoZWRBY2Nlc3Nvcjp0aGlzLnlWYWx1ZUFjY2Vzc29yO3Q9ImFzY2VuZGluZyI9PT10aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kP1NlLmV4cG9ydHMuc29ydEJ5KHQsKHQ9PmEodC5kYXR1bSwtMSx0LmRhdGFzZXQpKSk6ImRlc2NlbmRpbmciPT09dGhpcy50b29sdGlwU29ydGluZ01ldGhvZD9TZS5leHBvcnRzLnNvcnRCeSh0LCh0PT5hKHQuZGF0dW0sLTEsdC5kYXRhc2V0KSkpLnJldmVyc2UoKToibmVhcmVzdCI9PT10aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kP1NlLmV4cG9ydHMuc29ydEJ5KHQscik6dC5zbGljZSgwKS5yZXZlcnNlKCk7Y29uc3Qgcz10aGlzLGw9U3UodGhpcy50b29sdGlwLmNvbnRlbnQoKSkuc2VsZWN0KCJ0YWJsZSIpLGM9bC5zZWxlY3QoInRoZWFkIikuc2VsZWN0QWxsKCJ0aCIpLmRhdGEobiwoKHQsZSxuKT0+dC50aXRsZSkpO2MuZW50ZXIoKS5hcHBlbmQoInRoIikudGV4dCgodD0+dC50aXRsZSkpLm5vZGVzKCksYy5leGl0KCkucmVtb3ZlKCk7Y29uc3QgdT1sLnNlbGVjdCgidGJvZHkiKS5zZWxlY3RBbGwoInRyIikuZGF0YSh0LCgodCxlLG4pPT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lKSk7dS5jbGFzc2VkKCJkaXN0YW50IiwodD0+e2xldCBuPXQuZGF0YXNldC5kYXRhKClbMF0saT1TZS5leHBvcnRzLmxhc3QodC5kYXRhc2V0LmRhdGEoKSkscj10aGlzLnhTY2FsZS5zY2FsZSh0aGlzLnhBY2Nlc3NvcihuLDAsdC5kYXRhc2V0KSksbz10aGlzLnhTY2FsZS5zY2FsZSh0aGlzLnhBY2Nlc3NvcihpLDAsdC5kYXRhc2V0KSksYT10aGlzLnNtb290aGluZ0VuYWJsZWQ/dC5kYXR1bS5zbW9vdGhlZDp0aGlzLnlWYWx1ZUFjY2Vzc29yKHQuZGF0dW0sMCx0LmRhdGFzZXQpO3JldHVybiBlLng8cnx8ZS54Pm98fGlzTmFOKGEpfSkpLmNsYXNzZWQoImNsb3Nlc3QiLCh0PT5yKHQpPT09bykpLmVhY2goKGZ1bmN0aW9uKHQpe3MuZHJhd1Rvb2x0aXBSb3codGhpcyxuLHQpfSkpLm9yZGVyKCksdS5leGl0KCkucmVtb3ZlKCksdS5lbnRlcigpLmFwcGVuZCgidHIiKS5lYWNoKChmdW5jdGlvbih0KXtzLmRyYXdUb29sdGlwUm93KHRoaXMsbix0KX0pKS5ub2RlcygpLHRoaXMudG9vbHRpcC51cGRhdGVBbmRQb3NpdGlvbih0aGlzLnRhcmdldFNWRy5ub2RlKCkpfWRyYXdUb29sdGlwUm93KHQsZSxuKXtjb25zdCBpPXRoaXMscj1TdSh0KS5zZWxlY3RBbGwoInRkIikuZGF0YShlKTtyLmVhY2goKGZ1bmN0aW9uKHQpe3Quc3RhdGljfHxpLmRyYXdUb29sdGlwQ29sdW1uLmNhbGwoaSx0aGlzLHQsbil9KSksci5leGl0KCkucmVtb3ZlKCksci5lbnRlcigpLmFwcGVuZCgidGQiKS5lYWNoKChmdW5jdGlvbih0KXsiZW50ZXIiaW4gdCYmdC5lbnRlciYmdC5lbnRlci5jYWxsKHRoaXMsbiksaS5kcmF3VG9vbHRpcENvbHVtbi5jYWxsKGksdGhpcyx0LG4pfSkpfWRyYXdUb29sdGlwQ29sdW1uKHQsZSxuKXtjb25zdHtzbW9vdGhpbmdFbmFibGVkOml9PXRoaXM7ImV2YWxUeXBlImluIGUmJmUuZXZhbFR5cGU9PW9DdC5ET00/ZS5ldmFsdWF0ZS5jYWxsKHQsbix7c21vb3RoaW5nRW5hYmxlZDppfSk6U3UodCkudGV4dChlLmV2YWx1YXRlLmNhbGwodCxuLHtzbW9vdGhpbmdFbmFibGVkOml9KSl9ZmluZENsb3Nlc3RQb2ludCh0LGUpe2NvbnN0IG49ZS5kYXRhKCkubWFwKCgodCxuKT0+dGhpcy54U2NhbGUuc2NhbGUodGhpcy54QWNjZXNzb3IodCxuLGUpKSkpO2xldCBpPVNlLmV4cG9ydHMuc29ydGVkSW5kZXgobix0LngpO2lmKDA9PW4ubGVuZ3RoKXJldHVybiBudWxsO2k9PT1uLmxlbmd0aD9pLT0xOjAhPT1pJiYoaT1NYXRoLmFicyhuW2ktMV0tdC54KTxNYXRoLmFicyhuW2ldLXQueCk/aS0xOmkpO2NvbnN0IHI9ZS5kYXRhKClbaV0sbz10aGlzLnNtb290aGluZ0VuYWJsZWQ/dGhpcy5zbW9vdGhlZEFjY2Vzc29yKHIsaSxlKTp0aGlzLnlWYWx1ZUFjY2Vzc29yKHIsaSxlKTtyZXR1cm57eDpuW2ldLHk6dGhpcy55U2NhbGUuc2NhbGUobyksZGF0dW06cixkYXRhc2V0OmV9fXJlc21vb3RoRGF0YXNldCh0KXtsZXQgZT10LmRhdGEoKTtjb25zdCBuPXRoaXMuc21vb3RoaW5nV2VpZ2h0O2xldCBpPWUubGVuZ3RoPjA/MDpOYU4scj0wO2NvbnN0IG89ZS5tYXAoKChlLG4pPT50aGlzLnlWYWx1ZUFjY2Vzc29yKGUsbix0KSkpLGE9by5ldmVyeSgodD0+dD09b1swXSkpO2UuZm9yRWFjaCgoKHQsZSk9Pntjb25zdCBzPW9bZV07aWYoYXx8IU51bWJlci5pc0Zpbml0ZShzKSl0LnNtb290aGVkPXM7ZWxzZXtpPWkqbisoMS1uKSpzLHIrKztsZXQgZT0xOzEhPT1uJiYoZT0xLU1hdGgucG93KG4scikpLHQuc21vb3RoZWQ9aS9lfX0pKX1nZXREYXRhc2V0KHQpe3JldHVybiB2b2lkIDA9PT10aGlzLm5hbWUyZGF0YXNldHNbdF0mJih0aGlzLm5hbWUyZGF0YXNldHNbdF09bmV3IHJPLkRhdGFzZXQoW10se25hbWU6dCxtZXRhOm51bGx9KSksdGhpcy5uYW1lMmRhdGFzZXRzW3RdfXN0YXRpYyBnZXRZU2NhbGVGcm9tVHlwZSh0KXtpZih0PT09YUN0LkxPRylyZXR1cm4gbmV3IG5DdDtpZih0PT09YUN0LkxJTkVBUilyZXR1cm4gbmV3IFpUdDt0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB5U2NhbGUgdHlwZSAiK3QpfXNldFZpc2libGVTZXJpZXModCl7dGhpcy5kaXNhYmxlQ2hhbmdlcygpLCh0PXQuc29ydCgpKS5yZXZlcnNlKCksdGhpcy5zZXJpZXNOYW1lcz10fWRpc2FibGVDaGFuZ2VzKCl7dGhpcy5kaXJ0eURhdGFzZXRzLnNpemV8fCh0aGlzLmxpbmVQbG90LmRhdGFzZXRzKFtdKSx0aGlzLnNtb290aExpbmVQbG90JiZ0aGlzLnNtb290aExpbmVQbG90LmRhdGFzZXRzKFtdKSx0aGlzLm1hcmdpbkFyZWFQbG90JiZ0aGlzLm1hcmdpbkFyZWFQbG90LmRhdGFzZXRzKFtdKSl9Y29tbWl0Q2hhbmdlcygpe3RoaXMuZGF0YXNldHM9dGhpcy5zZXJpZXNOYW1lcy5tYXAoKHQ9PnRoaXMuZ2V0RGF0YXNldCh0KSkpLFsuLi50aGlzLmRpcnR5RGF0YXNldHNdLmZvckVhY2goKHQ9Pnt0aGlzLnNtb290aGluZ0VuYWJsZWQmJnRoaXMucmVzbW9vdGhEYXRhc2V0KHRoaXMuZ2V0RGF0YXNldCh0KSl9KSksdGhpcy51cGRhdGVTcGVjaWFsRGF0YXNldHMoKSx0aGlzLmxpbmVQbG90LmRhdGFzZXRzKHRoaXMuZGF0YXNldHMpLHRoaXMuc21vb3RoaW5nRW5hYmxlZCYmdGhpcy5zbW9vdGhMaW5lUGxvdC5kYXRhc2V0cyh0aGlzLmRhdGFzZXRzKSx0aGlzLm1hcmdpbkFyZWFQbG90JiZ0aGlzLm1hcmdpbkFyZWFQbG90LmRhdGFzZXRzKHRoaXMuZGF0YXNldHMpLHRoaXMubWVhc3VyZUJCb3hBbmRNYXliZUludmFsaWRhdGVMYXlvdXRJblJhZigpLHRoaXMuZGlydHlEYXRhc2V0cy5jbGVhcigpfWNyZWF0ZVNhbXBsZWREYXRhc2V0Rm9yTWFya2Vycyh0KXtjb25zdCBlPXQuZGF0YSgpO2lmKGUubGVuZ3RoPD0yMClyZXR1cm4gdDtjb25zdCBuPU1hdGguY2VpbChlLmxlbmd0aC8yMCksaT1uZXcgQXJyYXkoTWF0aC5mbG9vcihlLmxlbmd0aC9uKSk7Zm9yKGxldCB0PTAscj0wO3Q8aS5sZW5ndGg7dCsrLHIrPW4paVt0XT1lW3JdO3JldHVybiBuZXcgck8uRGF0YXNldChpLHQubWV0YWRhdGEoKSl9c2V0U2VyaWVzRGF0YSh0LGUpe3RoaXMuZGlzYWJsZUNoYW5nZXMoKSx0aGlzLmdldERhdGFzZXQodCkuZGF0YShlKSx0aGlzLmRpcnR5RGF0YXNldHMuYWRkKHQpfXNldFNlcmllc01ldGFkYXRhKHQsZSl7dGhpcy5kaXNhYmxlQ2hhbmdlcygpLHRoaXMuZ2V0RGF0YXNldCh0KS5tZXRhZGF0YShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5nZXREYXRhc2V0KHQpLm1ldGFkYXRhKCkpLHttZXRhOmV9KSksdGhpcy5kaXJ0eURhdGFzZXRzLmFkZCh0KX1zbW9vdGhpbmdVcGRhdGUodCl7dGhpcy5zbW9vdGhpbmdXZWlnaHQ9dCx0aGlzLmRhdGFzZXRzLmZvckVhY2goKHQ9PnRoaXMucmVzbW9vdGhEYXRhc2V0KHQpKSksdGhpcy5zbW9vdGhpbmdFbmFibGVkfHwodGhpcy5saW5lUGxvdC5hZGRDbGFzcygiZ2hvc3QiKSx0aGlzLnNjYXR0ZXJQbG90LnkodGhpcy5zbW9vdGhlZEFjY2Vzc29yLHRoaXMueVNjYWxlKSx0aGlzLnNtb290aGluZ0VuYWJsZWQ9ITAsdGhpcy5zbW9vdGhMaW5lUGxvdC5kYXRhc2V0cyh0aGlzLmRhdGFzZXRzKSksdGhpcy5tYXJrZXJzU2NhdHRlclBsb3QmJnRoaXMubWFya2Vyc1NjYXR0ZXJQbG90LnkodGhpcy5nZXRZQXhpc0FjY2Vzc29yKCksdGhpcy55U2NhbGUpLHRoaXMudXBkYXRlU3BlY2lhbERhdGFzZXRzKCl9c21vb3RoaW5nRGlzYWJsZSgpe3RoaXMuc21vb3RoaW5nRW5hYmxlZCYmKHRoaXMubGluZVBsb3QucmVtb3ZlQ2xhc3MoImdob3N0IiksdGhpcy5zY2F0dGVyUGxvdC55KHRoaXMueVZhbHVlQWNjZXNzb3IsdGhpcy55U2NhbGUpLHRoaXMuc21vb3RoTGluZVBsb3QuZGF0YXNldHMoW10pLHRoaXMuc21vb3RoaW5nRW5hYmxlZD0hMSx0aGlzLnVwZGF0ZVNwZWNpYWxEYXRhc2V0cygpKSx0aGlzLm1hcmtlcnNTY2F0dGVyUGxvdCYmdGhpcy5tYXJrZXJzU2NhdHRlclBsb3QueSh0aGlzLmdldFlBeGlzQWNjZXNzb3IoKSx0aGlzLnlTY2FsZSl9c2V0Q29sb3JTY2FsZSh0KXt0aGlzLmNvbG9yU2NhbGU9dH1zZXRUb29sdGlwQ29sdW1ucyh0KXt0aGlzLnRvb2x0aXBDb2x1bW5zPXR9c2V0VG9vbHRpcFNvcnRpbmdNZXRob2QodCl7dGhpcy50b29sdGlwU29ydGluZ01ldGhvZD10fXJlbmRlclRvKHQpe3RoaXMudGFyZ2V0U1ZHPXQsdGhpcy5vdXRlci5yZW5kZXJUbyh0KSxudWxsIT10aGlzLl9kZWZhdWx0WFJhbmdlJiZ0aGlzLnJlc2V0WERvbWFpbigpLG51bGwhPXRoaXMuX2RlZmF1bHRZUmFuZ2UmJnRoaXMucmVzZXRZRG9tYWluKCksdGhpcy5tZWFzdXJlQkJveEFuZE1heWJlSW52YWxpZGF0ZUxheW91dEluUmFmKCl9cmVkcmF3KCl7d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JlZHJhd1JhZiksdGhpcy5fcmVkcmF3UmFmPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5tZWFzdXJlQkJveEFuZE1heWJlSW52YWxpZGF0ZUxheW91dCgpLHRoaXMub3V0ZXIucmVkcmF3KCl9KSl9bWVhc3VyZUJCb3hBbmRNYXliZUludmFsaWRhdGVMYXlvdXRJblJhZigpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9pbnZhbGlkYXRlTGF5b3V0UmFmKSx0aGlzLl9pbnZhbGlkYXRlTGF5b3V0UmFmPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5tZWFzdXJlQkJveEFuZE1heWJlSW52YWxpZGF0ZUxheW91dCgpfSkpfW1lYXN1cmVCQm94QW5kTWF5YmVJbnZhbGlkYXRlTGF5b3V0KCl7aWYodGhpcy5fbGFzdERyYXdCQm94KXtjb25zdHt3aWR0aDp0fT10aGlzLl9sYXN0RHJhd0JCb3gse3dpZHRoOmV9PXRoaXMudGFyZ2V0U1ZHLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTswPT10JiZ0PGUmJnRoaXMub3V0ZXIuaW52YWxpZGF0ZUNhY2hlKCl9dGhpcy5fbGFzdERyYXdCQm94PXRoaXMudGFyZ2V0U1ZHLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1kZXN0cm95KCl7d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JlZHJhd1JhZiksd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2ludmFsaWRhdGVMYXlvdXRSYWYpLHRoaXMub3V0ZXImJnRoaXMub3V0ZXIuZGVzdHJveSgpfW9uQW5jaG9yKHQpe3RoaXMub3V0ZXImJnRoaXMub3V0ZXIub25BbmNob3IodCl9aXNEYXRhRml0VG9Eb21haW4oKXtyZXR1cm4gdCh0aGlzLnhBeGlzLmdldFNjYWxlKCkpJiZ0KHRoaXMueUF4aXMuZ2V0U2NhbGUoKSk7ZnVuY3Rpb24gdCh0KXtjb25zdCBlPXQuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4oKSxuPXQuZ2V0VHJhbnNmb3JtYXRpb25FeHRlbnQoKTtyZXR1cm4gblswXT09PWVbMF0mJm5bMV09PT1lWzFdfX19IShmdW5jdGlvbih0KXt0LkdST1VQPSJHIix0LkRJVj0iRElWIix0LlNWRz0iU1ZHIix0LlRFWFQ9IlRFWFQifSkoc0N0fHwoc0N0PXt9KSk7Y2xhc3MgdUN0IGV4dGVuZHMgY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy51bmlxdWVJZD0wLHRoaXMucm9vdD10fWV4cG9ydEFzU3RyaW5nKCl7Y29uc3QgdD10aGlzLmNvbnZlcnQodGhpcy5yb290KTtpZighdClyZXR1cm4iIjtjb25zdCBlPXRoaXMuY3JlYXRlUm9vdFN2ZygpO3JldHVybiBlLmFwcGVuZENoaWxkKHQpLGUub3V0ZXJIVE1MfWNyZWF0ZVVuaXF1ZUlkKHQpe3JldHVybmAke3R9XyR7dGhpcy51bmlxdWVJZCsrfWB9Z2V0U2l6ZSgpe3JldHVybiB0aGlzLnJvb3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y3JlYXRlUm9vdFN2Zygpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3ZnIiksZT10aGlzLmdldFNpemUoKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGVOUygic3ZnIiwidmlld0JveCIsYDAgMCAke2Uud2lkdGh9ICR7ZS5oZWlnaHR9YCksdC5zZXRBdHRyaWJ1dGUoInhtbG5zIiwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciKSx0fWNvbnZlcnQodCl7bGV0IGU9bnVsbDtjb25zdCBuPXQubm9kZU5hbWUudG9VcHBlckNhc2UoKTtpZih0Lm5vZGVUeXBlIT1Ob2RlLkVMRU1FTlRfTk9ERXx8biE9c0N0LkRJViYmbiE9c0N0LlNWRyllPXQuY2xvbmVOb2RlKCk7ZWxzZXtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoc0N0LkdST1VQKTtjb25zdCBuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLGk9cGFyc2VJbnQobi5sZWZ0LDEwKSxyPXBhcnNlSW50KG4udG9wLDEwKTtpZihpfHxyKXtjb25zdCB0PXRoaXMuY3JlYXRlVW5pcXVlSWQoImNsaXAiKTtlLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixgdHJhbnNsYXRlKCR7aX0sICR7cn0pYCksZS5zZXRBdHRyaWJ1dGUoImNsaXAtcGF0aCIsYHVybCgjJHt0fSlgKTtjb25zdCBvPXBhcnNlSW50KG4ud2lkdGgsMTApLGE9cGFyc2VJbnQobi5oZWlnaHQsMTApLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicmVjdCIpO3Muc2V0QXR0cmlidXRlKCJ3aWR0aCIsU3RyaW5nKG8pKSxzLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixTdHJpbmcoYSkpO2NvbnN0IGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJzdmciLCJjbGlwUGF0aCIpO2wuaWQ9dCxsLmFwcGVuZENoaWxkKHMpLGUuYXBwZW5kQ2hpbGQobCl9fXJldHVybiBBcnJheS5mcm9tKHQuY2hpbGROb2RlcykubWFwKCh0PT50aGlzLmNvbnZlcnQodCkpKS5maWx0ZXIoQm9vbGVhbikuZm9yRWFjaCgodD0+ZS5hcHBlbmRDaGlsZCh0KSkpLGUubm9kZU5hbWUudG9VcHBlckNhc2UoKT09c0N0LkdST1VQJiYhZS5oYXNDaGlsZE5vZGVzKCl8fHRoaXMuc2hvdWxkT21pdE5vZGUodCk/bnVsbDp0aGlzLnN0cmlwQ2xhc3ModGhpcy50cmFuc2ZlclN0eWxlKHQsZSkpfXN0cmlwQ2xhc3ModCl7cmV0dXJuIHQubm9kZVR5cGU9PU5vZGUuRUxFTUVOVF9OT0RFJiZ0LnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKSx0fXRyYW5zZmVyU3R5bGUodCxlKXtpZihlLm5vZGVUeXBlIT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4gZTtjb25zdCBuPWUsaT1lLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkscj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTtyZXR1cm4gaT09c0N0LlRFWFQmJk9iamVjdC5hc3NpZ24obi5zdHlsZSx7Zm9udEZhbWlseTpyLmZvbnRGYW1pbHksZm9udFNpemU6ci5mb250U2l6ZSxmb250V2VpZ2h0OnIuZm9udFdlaWdodH0pLGkhPXNDdC5HUk9VUCYmKG4uc2V0QXR0cmlidXRlKCJmaWxsIixyLmZpbGwpLG4uc2V0QXR0cmlidXRlKCJzdHJva2UiLHIuc3Ryb2tlKSxuLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIixyLnN0cm9rZVdpZHRoKSksIjEiIT1yLm9wYWNpdHkmJm4uc2V0QXR0cmlidXRlKCJvcGFjaXR5IixyLm9wYWNpdHkpLGV9c2hvdWxkT21pdE5vZGUodCl7cmV0dXJuITF9fXtzaG91bGRPbWl0Tm9kZSh0KXtyZXR1cm4gdC5ub2RlVHlwZT09Tm9kZS5FTEVNRU5UX05PREUmJnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJzY2F0dGVyLXBsb3QiKX19ZWwoe21vZHVsZU5hbWU6InZ6LXBhbi16b29tLXN0eWxlIixzdHlsZUNvbnRlbnQ6IlxuICAgIC5oZWxwIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDFzO1xuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlLW91dDtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzAsIDMwLCAzMCwgMC42KTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbGVmdDogMDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAuaGVscCA+IHNwYW4ge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGZhZGUtb3V0IHtcbiAgICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICAifSk7Y29uc3QgaEN0PXdUdCg0KSxkQ3Q9dD0+aXNOYU4odCk/Ik5hTiI6aEN0KHQpLHBDdD1be3RpdGxlOiJOYW1lIixldmFsdWF0ZTp0PT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lfSx7dGl0bGU6IlNtb290aGVkIixldmFsdWF0ZSh0LGUpe2NvbnN0e3Ntb290aGluZ0VuYWJsZWQ6bn09ZTtyZXR1cm4gZEN0KG4/dC5kYXR1bS5zbW9vdGhlZDp0LmRhdHVtLnNjYWxhcil9fSx7dGl0bGU6IlZhbHVlIixldmFsdWF0ZTp0PT5kQ3QodC5kYXR1bS5zY2FsYXIpfSx7dGl0bGU6IlN0ZXAiLGV2YWx1YXRlOnQ9PlNUdCh0LmRhdHVtLnN0ZXApfSx7dGl0bGU6IlRpbWUiLGV2YWx1YXRlOnQ9PkVUdCh0LmRhdHVtLndhbGxfdGltZSl9LHt0aXRsZToiUmVsYXRpdmUiLGV2YWx1YXRlOnQ9PkNUdChUVHQodC5kYXR1bSwwLHQuZGF0YXNldCkpfV07bGV0IGZDdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29sb3JTY2FsZT0obmV3IHJPLlNjYWxlcy5Db2xvcikucmFuZ2UoZ0Euc2xpY2UoMCkpLHRoaXMuc21vb3RoaW5nRW5hYmxlZD0hMSx0aGlzLnNtb290aGluZ1dlaWdodD0uNix0aGlzLnhUeXBlPW51bGwsdGhpcy54Q29tcG9uZW50c0NyZWF0aW9uTWV0aG9kPW51bGwsdGhpcy55VmFsdWVBY2Nlc3Nvcj10PT50LnNjYWxhcix0aGlzLnRvb2x0aXBDb2x1bW5zPXBDdCx0aGlzLnlTY2FsZVR5cGU9YUN0LkxJTkVBUix0aGlzLmlnbm9yZVlPdXRsaWVycz0hMSx0aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kPSJkZWZhdWx0Iix0aGlzLnRvb2x0aXBQb3NpdGlvbj16VHQuQk9UVE9NLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZT1bXSx0aGlzLl9zZXJpZXNEYXRhQ2FjaGU9e30sdGhpcy5fc2VyaWVzTWV0YWRhdGFDYWNoZT17fSx0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9bnVsbH1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5zY29wZVN1YnRyZWUodGhpcy4kLmNoYXJ0ZGl2LCEwKX1hdHRhY2hlZCgpe2NvbnN0IHQ9e2NhcHR1cmU6ITAscGFzc2l2ZTohMH07dGhpcy5fbGlzdGVuKHRoaXMsIm1vdXNlZG93biIsdGhpcy5fb25Nb3VzZURvd24uYmluZCh0aGlzKSx0KSx0aGlzLl9saXN0ZW4odGhpcywibW91c2V1cCIsdGhpcy5fb25Nb3VzZVVwLmJpbmQodGhpcyksdCksdGhpcy5fbGlzdGVuKHdpbmRvdywia2V5ZG93biIsdGhpcy5fb25LZXlEb3duLmJpbmQodGhpcyksdCksdGhpcy5fbGlzdGVuKHdpbmRvdywia2V5dXAiLHRoaXMuX29uS2V5VXAuYmluZCh0aGlzKSx0KX1kZXRhY2hlZCgpe3RoaXMuY2FuY2VsQXN5bmModGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkKSx0aGlzLl9jaGFydCYmKHRoaXMuX2NoYXJ0LmRlc3Ryb3koKSx0aGlzLl9jaGFydD12b2lkIDApLHRoaXMuX2xpc3RlbmVycyYmKHRoaXMuX2xpc3RlbmVycy5mb3JFYWNoKCgoe25vZGU6dCxldmVudE5hbWU6ZSxmdW5jOm4sb3B0aW9uOml9KT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4saSl9KSksdGhpcy5fbGlzdGVuZXJzLmNsZWFyKCkpfV9saXN0ZW4odCxlLG4saT17fSl7dGhpcy5fbGlzdGVuZXJzfHwodGhpcy5fbGlzdGVuZXJzPW5ldyBTZXQpLHRoaXMuX2xpc3RlbmVycy5hZGQoe25vZGU6dCxldmVudE5hbWU6ZSxmdW5jOm4sb3B0aW9uOml9KSx0LmFkZEV2ZW50TGlzdGVuZXIoZSxuLGkpfV9vbktleURvd24odCl7dGhpcy50b2dnbGVDbGFzcygicGFua2V5IixsQ3QuaXNQYW5LZXkodCkpfV9vbktleVVwKHQpe3RoaXMudG9nZ2xlQ2xhc3MoInBhbmtleSIsbEN0LmlzUGFuS2V5KHQpKX1fb25Nb3VzZURvd24odCl7dGhpcy50b2dnbGVDbGFzcygibW91c2Vkb3duIiwhMCl9X29uTW91c2VVcCh0KXt0aGlzLnRvZ2dsZUNsYXNzKCJtb3VzZWRvd24iLCExKX1pc0RhdGFGaXRUb0RvbWFpbigpe3JldHVybiF0aGlzLl9jaGFydHx8dGhpcy5fY2hhcnQuaXNEYXRhRml0VG9Eb21haW4oKX1zZXRWaXNpYmxlU2VyaWVzKHQpe1NlLmV4cG9ydHMuaXNFcXVhbCh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGUsdCl8fCh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGU9dCl9c2V0U2VyaWVzRGF0YSh0LGUpe3RoaXMuX3Nlcmllc0RhdGFDYWNoZVt0XT1lLHRoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5zZXRTZXJpZXNEYXRhKHQsZSl9c2V0U2VyaWVzTWV0YWRhdGEodCxlKXt0aGlzLl9zZXJpZXNNZXRhZGF0YUNhY2hlW3RdPWUsdGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0LnNldFNlcmllc01ldGFkYXRhKHQsZSl9Y29tbWl0Q2hhbmdlcygpe3RoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5jb21taXRDaGFuZ2VzKCl9cmVzZXREb21haW4oKXt0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQucmVzZXREb21haW4oKX1yZWRyYXcoKXt0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQucmVkcmF3KCl9X21ha2VDaGFydCgpe251bGwhPT10aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQmJih0aGlzLmNhbmNlbEFzeW5jKHRoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZCksdGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkPW51bGwpLHRoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZD10aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZD1udWxsO2xldCB0PXRoaXMueENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZDtpZih0aGlzLnhUeXBlfHx0P3RoaXMueFR5cGUmJih0PSgpPT5BVHQodGhpcy54VHlwZSkpOnQ9TVR0LHQmJnRoaXMueVZhbHVlQWNjZXNzb3ImJnRoaXMudG9vbHRpcENvbHVtbnMpe3ZhciBlPW5ldyBjQ3QodCx0aGlzLnlWYWx1ZUFjY2Vzc29yLHRoaXMueVNjYWxlVHlwZSx0aGlzLmNvbG9yU2NhbGUsdGhpcy4kLnRvb2x0aXAsdGhpcy50b29sdGlwQ29sdW1ucyx0aGlzLmZpbGxBcmVhLHRoaXMuZGVmYXVsdFhSYW5nZSx0aGlzLmRlZmF1bHRZUmFuZ2UsdGhpcy5zeW1ib2xGdW5jdGlvbix0aGlzLnhBeGlzRm9ybWF0dGVyKSxuPVN1KHRoaXMuJC5jaGFydGRpdik7ZS5yZW5kZXJUbyhuKSx0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQuZGVzdHJveSgpLHRoaXMuX2NoYXJ0PWUsdGhpcy5fY2hhcnQub25BbmNob3IoKCgpPT50aGlzLmZpcmUoImNoYXJ0LWF0dGFjaGVkIikpKX19KSwzNTApfV9yZWxvYWRGcm9tQ2FjaGUoKXt0aGlzLl9jaGFydCYmKHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZS5mb3JFYWNoKCh0PT57dGhpcy5fY2hhcnQuc2V0U2VyaWVzRGF0YSh0LHRoaXMuX3Nlcmllc0RhdGFDYWNoZVt0XXx8W10pfSkpLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZS5maWx0ZXIoKHQ9PnRoaXMuX3Nlcmllc01ldGFkYXRhQ2FjaGVbdF0pKS5mb3JFYWNoKCh0PT57dGhpcy5fY2hhcnQuc2V0U2VyaWVzTWV0YWRhdGEodCx0aGlzLl9zZXJpZXNNZXRhZGF0YUNhY2hlW3RdKX0pKSx0aGlzLl9jaGFydC5zZXRWaXNpYmxlU2VyaWVzKHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZSksdGhpcy5fY2hhcnQuY29tbWl0Q2hhbmdlcygpKX1fc21vb3RoaW5nQ2hhbmdlZCgpe3RoaXMuX2NoYXJ0JiYodGhpcy5zbW9vdGhpbmdFbmFibGVkP3RoaXMuX2NoYXJ0LnNtb290aGluZ1VwZGF0ZSh0aGlzLnNtb290aGluZ1dlaWdodCk6dGhpcy5fY2hhcnQuc21vb3RoaW5nRGlzYWJsZSgpKX1fb3V0bGllcnNDaGFuZ2VkKCl7dGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0Lmlnbm9yZVlPdXRsaWVycyh0aGlzLmlnbm9yZVlPdXRsaWVycyl9X2NvbG9yU2NhbGVDaGFuZ2VkKCl7dGhpcy5fY2hhcnQmJih0aGlzLl9jaGFydC5zZXRDb2xvclNjYWxlKHRoaXMuY29sb3JTY2FsZSksdGhpcy5fY2hhcnQucmVkcmF3KCkpfV90b29sdGlwQ29sdW1uc0NoYW5nZWQoKXt0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQuc2V0VG9vbHRpcENvbHVtbnModGhpcy50b29sdGlwQ29sdW1ucyl9X3Rvb2x0aXBTb3J0aW5nTWV0aG9kQ2hhbmdlZCgpe3RoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5zZXRUb29sdGlwU29ydGluZ01ldGhvZCh0aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kKX1nZXRFeHBvcnRlcigpe3JldHVybiBuZXcgdUN0KHRoaXMuJC5jaGFydGRpdil9fTtmQ3QudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGlkPSJjaGFydGRpdiI+PC9kaXY+CiAgICA8dnotY2hhcnQtdG9vbHRpcAogICAgICBpZD0idG9vbHRpcCIKICAgICAgcG9zaXRpb249IltbdG9vbHRpcFBvc2l0aW9uXV0iCiAgICAgIGNvbnRlbnQtY29tcG9uZW50LW5hbWU9InZ6LWxpbmUtY2hhcnQtdG9vbHRpcCIKICAgID48L3Z6LWNoYXJ0LXRvb2x0aXA+CiAgICA8c3R5bGUgaW5jbHVkZT0icGxvdHRhYmxlLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlIGluY2x1ZGU9InZ6LXBhbi16b29tLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQogICAgICBkaXYgewogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgIH0KCiAgICAgICNjaGFydGRpdiAubWFpbiB7CiAgICAgICAgY29udGFpbjogc3RyaWN0OwogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICA6aG9zdCgucGFua2V5KSAjY2hhcnRkaXYgOm5vdCguZHJhZy16b29taW5nKSAubWFpbiB7CiAgICAgICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7CiAgICAgICAgY3Vyc29yOiBncmFiOwogICAgICB9CgogICAgICA6aG9zdCgubW91c2Vkb3duKSAjY2hhcnRkaXYgLnBhbm5pbmcgLm1haW4gewogICAgICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZzsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICB9CgogICAgICAjY2hhcnRkaXYgewogICAgICAgIGNvbnRhaW46IHN0cmljdDsKICAgICAgfQoKICAgICAgI2NoYXJ0ZGl2IGxpbmUuZ3VpZGUtbGluZSB7CiAgICAgICAgc3Ryb2tlOiAjOTk5OwogICAgICAgIHN0cm9rZS13aWR0aDogMS41cHg7CiAgICAgIH0KICAgICAgI2NoYXJ0ZGl2OmhvdmVyIC5tYWluIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CgogICAgICAuZ2hvc3QgewogICAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgICBzdHJva2Utd2lkdGg6IDFweDsKICAgICAgfQoKICAgICAgLnBsb3R0YWJsZSAuYXhpcyB0ZXh0IHsKICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC5wbG90dGFibGUgLmdyaWRsaW5lcyBsaW5lIHsKICAgICAgICBzdHJva2U6IHZhcigtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHJPLlNjYWxlcy5Db2xvcildLGZDdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxmQ3QucHJvdG90eXBlLCJzeW1ib2xGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxmQ3QucHJvdG90eXBlLCJzbW9vdGhpbmdFbmFibGVkIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLGZDdC5wcm90b3R5cGUsInNtb290aGluZ1dlaWdodCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxmQ3QucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLGZDdC5wcm90b3R5cGUsInhDb21wb25lbnRzQ3JlYXRpb25NZXRob2QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxmQ3QucHJvdG90eXBlLCJ4QXhpc0Zvcm1hdHRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLGZDdC5wcm90b3R5cGUsInlWYWx1ZUFjY2Vzc29yIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxmQ3QucHJvdG90eXBlLCJ0b29sdGlwQ29sdW1ucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxmQ3QucHJvdG90eXBlLCJmaWxsQXJlYSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZkN0LnByb3RvdHlwZSwiZGVmYXVsdFhSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZkN0LnByb3RvdHlwZSwiZGVmYXVsdFlSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxmQ3QucHJvdG90eXBlLCJ5U2NhbGVUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZkN0LnByb3RvdHlwZSwiaWdub3JlWU91dGxpZXJzIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGZDdC5wcm90b3R5cGUsInRvb2x0aXBTb3J0aW5nTWV0aG9kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGZDdC5wcm90b3R5cGUsInRvb2x0aXBQb3NpdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxmQ3QucHJvdG90eXBlLCJfY2hhcnQiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLGZDdC5wcm90b3R5cGUsIl92aXNpYmxlU2VyaWVzQ2FjaGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZkN0LnByb3RvdHlwZSwiX3Nlcmllc0RhdGFDYWNoZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxmQ3QucHJvdG90eXBlLCJfc2VyaWVzTWV0YWRhdGFDYWNoZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmQ3QucHJvdG90eXBlLCJfbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkIix2b2lkIDApLHQoW2EoInhDb21wb25lbnRzQ3JlYXRpb25NZXRob2QiLCJ4VHlwZSIsInlWYWx1ZUFjY2Vzc29yIiwieVNjYWxlVHlwZSIsImlzQXR0YWNoZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl9tYWtlQ2hhcnQiLG51bGwpLHQoW2EoIl9jaGFydCIsIl92aXNpYmxlU2VyaWVzQ2FjaGUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl9yZWxvYWRGcm9tQ2FjaGUiLG51bGwpLHQoW2EoInNtb290aGluZ0VuYWJsZWQiLCJzbW9vdGhpbmdXZWlnaHQiLCJfY2hhcnQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl9zbW9vdGhpbmdDaGFuZ2VkIixudWxsKSx0KFthKCJpZ25vcmVZT3V0bGllcnMiLCJfY2hhcnQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl9vdXRsaWVyc0NoYW5nZWQiLG51bGwpLHQoW2EoImNvbG9yU2NhbGUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlQ2hhbmdlZCIsbnVsbCksdChbYSgidG9vbHRpcENvbHVtbnMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZDdC5wcm90b3R5cGUsIl90b29sdGlwQ29sdW1uc0NoYW5nZWQiLG51bGwpLHQoW2EoInRvb2x0aXBTb3J0aW5nTWV0aG9kIiwiX2NoYXJ0IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxmQ3QucHJvdG90eXBlLCJfdG9vbHRpcFNvcnRpbmdNZXRob2RDaGFuZ2VkIixudWxsKSxmQ3Q9dChbaSgidnotbGluZS1jaGFydDIiKV0sZkN0KTtsZXQgbUN0PWNsYXNzIGV4dGVuZHMgeWV7fTttQ3QudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgPHRhYmxlPgogICAgICAgIDx0aGVhZD48L3RoZWFkPgogICAgICAgIDx0Ym9keT48L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07CiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgIHRoZWFkIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIHRib2R5IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIxcHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICB9CgogICAgICAuc3dhdGNoIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICB9CgogICAgICAuY2xvc2VzdCAuc3dhdGNoIHsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggI2ZmZjsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgIH0KCiAgICAgIC5kaXN0YW50IHRkOm5vdCguc3dhdGNoKSB7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAuZ2hvc3QgewogICAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgICBzdHJva2Utd2lkdGg6IDFweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLG1DdD10KFtpKCJ2ei1saW5lLWNoYXJ0LXRvb2x0aXAiKV0sbUN0KTtjb25zdCBnQ3Q9W10sX0N0PVNlLmV4cG9ydHMudGhyb3R0bGUoKGZ1bmN0aW9uIHQoKXtpZigwPT1nQ3QubGVuZ3RoKXJldHVybjtjb25zdCBlPWdDdC5zaGlmdCgpO2UmJmUuYWN0aXZlJiYoZS5yZWRyYXcoKSxlLl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZT0hMSksd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKDApLHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9KSwxMDApO2xldCB5Q3Q9Y2xhc3MgZXh0ZW5kcyhMVHQoZXIoeWUpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3JlZHJhd1JhZj1udWxsLHRoaXMuYWN0aXZlPSExLHRoaXMubG9nU2NhbGVBY3RpdmU9ITEsdGhpcy5jb2xvclNjYWxlPXtzY2FsZTpHUn0sdGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkPSEwLHRoaXMuX21heWJlUmVuZGVyZWRJbkJhZFN0YXRlPSExfW9uTG9hZEZpbmlzaCgpe3RoaXMuY29tbWl0Q2hhbmdlcygpLHRoaXMuZGF0YVRvTG9hZC5sZW5ndGg+MCYmdGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkJiYodGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkPSExLHRoaXMuZ2V0Q2hhcnQoKS5yZXNldERvbWFpbigpKSx0aGlzLnJlZHJhdygpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxudWxsIT09dGhpcy5fcmVkcmF3UmFmJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yZWRyYXdSYWYpfWV4cG9ydEFzU3ZnU3RyaW5nKCl7cmV0dXJuIHRoaXMuZ2V0Q2hhcnQoKS5nZXRFeHBvcnRlcigpLmV4cG9ydEFzU3RyaW5nKCl9Z2V0Q2hhcnQoKXtyZXR1cm4gdGhpcy4kLmNoYXJ0fXJlc2V0RG9tYWluKCl7dGhpcy5nZXRDaGFydCgpLnJlc2V0RG9tYWluKCl9c2V0U2VyaWVzRGF0YSh0LGUpe3RoaXMuZ2V0Q2hhcnQoKS5zZXRTZXJpZXNEYXRhKHQsZSl9c2V0U2VyaWVzTWV0YWRhdGEodCxlKXt0aGlzLmdldENoYXJ0KCkuc2V0U2VyaWVzTWV0YWRhdGEodCxlKX1jb21taXRDaGFuZ2VzKCl7dGhpcy5nZXRDaGFydCgpLmNvbW1pdENoYW5nZXMoKX1yZWRyYXcoKXtudWxsIT09dGhpcy5fcmVkcmF3UmFmJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yZWRyYXdSYWYpLHRoaXMuX3JlZHJhd1JhZj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuYWN0aXZlP3RoaXMuZ2V0Q2hhcnQoKS5yZWRyYXcoKTp0aGlzLl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZT0hMH0pKX1fbG9hZEtleUNoYW5nZWQoKXt0aGlzLnJlc2V0KCksdGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkPSEwfV9kYXRhU2VyaWVzQ2hhbmdlZCgpe3RoaXMuZ2V0Q2hhcnQoKS5zZXRWaXNpYmxlU2VyaWVzKHRoaXMuZGF0YVNlcmllcyl9X2xvZ1NjYWxlQ2hhbmdlZCh0KXt0aGlzLmdldENoYXJ0KCkueVNjYWxlVHlwZT10P2FDdC5MT0c6YUN0LkxJTkVBUix0aGlzLnJlZHJhdygpfV9maXhCYWRTdGF0ZVdoZW5BY3RpdmUoKXt0aGlzLmFjdGl2ZSYmdGhpcy5fbWF5YmVSZW5kZXJlZEluQmFkU3RhdGUmJihnQ3QucHVzaCh0aGlzKSxfQ3QoKSl9X29uQ2hhcnRBdHRhY2hlZCgpe3RoaXMuYWN0aXZlfHwodGhpcy5fbWF5YmVSZW5kZXJlZEluQmFkU3RhdGU9ITApfX07eUN0LnRlbXBsYXRlPV9lYAogICAgPGRpdiBpZD0iY2hhcnQtYW5kLXNwaW5uZXItY29udGFpbmVyIj4KICAgICAgPHZ6LWxpbmUtY2hhcnQyCiAgICAgICAgaWQ9ImNoYXJ0IgogICAgICAgIGRhdGEtbG9hZGluZyQ9IltbZGF0YUxvYWRpbmddXSIKICAgICAgICBkYXRhLWxvYWRlZC1vbmNlJD0iW1tkYXRhTG9hZGVkQXRMZWFzdE9uY2VdXSIKICAgICAgICBjb2xvci1zY2FsZT0iW1tjb2xvclNjYWxlXV0iCiAgICAgICAgZGVmYXVsdC14LXJhbmdlPSJbW2RlZmF1bHRYUmFuZ2VdXSIKICAgICAgICBkZWZhdWx0LXktcmFuZ2U9IltbZGVmYXVsdFlSYW5nZV1dIgogICAgICAgIGZpbGwtYXJlYT0iW1tmaWxsQXJlYV1dIgogICAgICAgIGlnbm9yZS15LW91dGxpZXJzPSJbW2lnbm9yZVlPdXRsaWVyc11dIgogICAgICAgIG9uLWNoYXJ0LWF0dGFjaGVkPSJfb25DaGFydEF0dGFjaGVkIgogICAgICAgIHNtb290aGluZy1lbmFibGVkPSJbW3Ntb290aGluZ0VuYWJsZWRdXSIKICAgICAgICBzbW9vdGhpbmctd2VpZ2h0PSJbW3Ntb290aGluZ1dlaWdodF1dIgogICAgICAgIHN5bWJvbC1mdW5jdGlvbj0iW1tzeW1ib2xGdW5jdGlvbl1dIgogICAgICAgIHRvb2x0aXAtY29sdW1ucz0iW1t0b29sdGlwQ29sdW1uc11dIgogICAgICAgIHRvb2x0aXAtcG9zaXRpb249IltbdG9vbHRpcFBvc2l0aW9uXV0iCiAgICAgICAgdG9vbHRpcC1zb3J0aW5nLW1ldGhvZD0iW1t0b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgIHgtY29tcG9uZW50cy1jcmVhdGlvbi1tZXRob2Q9IltbeENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZF1dIgogICAgICAgIHgtdHlwZT0iW1t4VHlwZV1dIgogICAgICAgIHktdmFsdWUtYWNjZXNzb3I9IltbeVZhbHVlQWNjZXNzb3JdXSIKICAgICAgPjwvdnotbGluZS1jaGFydDI+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tkYXRhTG9hZGluZ11dIj4KICAgICAgICA8ZGl2IGlkPSJsb2FkaW5nLXNwaW5uZXItY29udGFpbmVyIj4KICAgICAgICAgIDxwYXBlci1zcGlubmVyLWxpdGUgYWN0aXZlPSIiPjwvcGFwZXItc3Bpbm5lci1saXRlPgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICA6aG9zdChbX21heWJlLXJlbmRlcmVkLWluLWJhZC1zdGF0ZV0pIHZ6LWxpbmUtY2hhcnQgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgI2NoYXJ0LWFuZC1zcGlubmVyLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAjbG9hZGluZy1zcGlubmVyLWNvbnRhaW5lciB7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgdnotbGluZS1jaGFydDIgewogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgdnotbGluZS1jaGFydDJbZGF0YS1sb2FkaW5nXSB7CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfZml4QmFkU3RhdGVXaGVuQWN0aXZlIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0seUN0LnByb3RvdHlwZSwiYWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSx5Q3QucHJvdG90eXBlLCJkYXRhU2VyaWVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0seUN0LnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfbG9nU2NhbGVDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0seUN0LnByb3RvdHlwZSwibG9nU2NhbGVBY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0seUN0LnByb3RvdHlwZSwieENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx5Q3QucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLHlDdC5wcm90b3R5cGUsInlWYWx1ZUFjY2Vzc29yIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHlDdC5wcm90b3R5cGUsImZpbGxBcmVhIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0seUN0LnByb3RvdHlwZSwic21vb3RoaW5nRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSx5Q3QucHJvdG90eXBlLCJzbW9vdGhpbmdXZWlnaHQiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLHlDdC5wcm90b3R5cGUsInRvb2x0aXBDb2x1bW5zIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHlDdC5wcm90b3R5cGUsInRvb2x0aXBTb3J0aW5nTWV0aG9kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHlDdC5wcm90b3R5cGUsInRvb2x0aXBQb3NpdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHlDdC5wcm90b3R5cGUsImlnbm9yZVlPdXRsaWVycyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0seUN0LnByb3RvdHlwZSwiZGVmYXVsdFhSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0seUN0LnByb3RvdHlwZSwiZGVmYXVsdFlSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLHlDdC5wcm90b3R5cGUsInN5bWJvbEZ1bmN0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHlDdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx5Q3QucHJvdG90eXBlLCJfcmVzZXREb21haW5Pbk5leHRMb2FkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHlDdC5wcm90b3R5cGUsIl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZSIsdm9pZCAwKSx0KFthKCJsb2FkS2V5IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx5Q3QucHJvdG90eXBlLCJfbG9hZEtleUNoYW5nZWQiLG51bGwpLHQoW2EoImRhdGFTZXJpZXMuKiIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0seUN0LnByb3RvdHlwZSwiX2RhdGFTZXJpZXNDaGFuZ2VkIixudWxsKSx5Q3Q9dChbaSgidGYtbGluZS1jaGFydC1kYXRhLWxvYWRlciIpXSx5Q3QpLGVsKHttb2R1bGVOYW1lOiJ0Zi1jdXN0b20tc2NhbGFyLWNhcmQtc3R5bGUiLHN0eWxlQ29udGVudDoiXG4gICAgOmhvc3Qge1xuICAgICAgbWFyZ2luOiA1cHggMTBweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAzMzBweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICB9XG5cbiAgICA6aG9zdChbX2V4cGFuZGVkXSkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgOmhvc3QoW19leHBhbmRlZF0pICN0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyLWNvbnRhaW5lciB7XG4gICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgI3RmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIHtcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAjYnV0dG9ucyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG5cbiAgICBwYXBlci1pY29uLWJ1dHRvbiB7XG4gICAgICBjb2xvcjogIzIxOTZmMztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICB3aWR0aDogMzJweDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIHBhZGRpbmc6IDRweDtcbiAgICB9XG5cbiAgICBwYXBlci1pY29uLWJ1dHRvbltzZWxlY3RlZF0ge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTtcbiAgICB9XG5cbiAgICAuZG93bmxvYWQtbGlua3Mge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICB9XG5cbiAgICAuZG93bmxvYWQtbGlua3MgYSB7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDJweDtcbiAgICB9XG5cbiAgICAuZG93bmxvYWQtbGlua3MgcGFwZXItZHJvcGRvd24tbWVudSB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbDoge1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICB9XG4gICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDoge1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICB9XG4gICAgfVxuICAifSk7Y2xhc3MgdkN0e2NvbnN0cnVjdG9yKHQsZSxuLGkscil7dGhpcy5ydW49dCx0aGlzLnRhZz1lLHRoaXMubmFtZT1uLHRoaXMuc2NhbGFyRGF0YT1pLHRoaXMuc3ltYm9sPXJ9Z2V0TmFtZSgpe3JldHVybiB0aGlzLm5hbWV9c2V0RGF0YSh0KXt0aGlzLnNjYWxhckRhdGE9dH1nZXREYXRhKCl7cmV0dXJuIHRoaXMuc2NhbGFyRGF0YX1nZXRSdW4oKXtyZXR1cm4gdGhpcy5ydW59Z2V0VGFnKCl7cmV0dXJuIHRoaXMudGFnfWdldFN5bWJvbCgpe3JldHVybiB0aGlzLnN5bWJvbH19ZnVuY3Rpb24gYkN0KHQsZSl7cmV0dXJuYCR7ZX0gKCR7dH0pYH1jbGFzcyB4Q3R7Y29uc3RydWN0b3IodCl7dGhpcy5ydW5CYXNlZENvbG9yU2NhbGU9dH1zY2FsZSh0KXtyZXR1cm4gdGhpcy5ydW5CYXNlZENvbG9yU2NhbGUuc2NhbGUodGhpcy5wYXJzZVJ1bk5hbWUodCkpfXBhcnNlUnVuTmFtZSh0KXtjb25zdCBlPXQubWF0Y2goL1woKC4qKVwpJC8pO3JldHVybiBlP2VbMV06IiJ9fWxldCB3Q3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmFjdGl2ZT0hMCx0aGlzLl9jb2xvclNjYWxlPW5ldyB4Q3Qoe3NjYWxlOkdSfSksdGhpcy5fbmFtZVRvRGF0YVNlcmllcz17fSx0aGlzLl9leHBhbmRlZD0hMSx0aGlzLl9yZXF1ZXN0RGF0YT0odCxlLG4pPT57Y29uc3QgaT1fcigpLnBsdWdpblJvdXRlKCJjdXN0b21fc2NhbGFycyIsIi9zY2FsYXJzIik7UHJvbWlzZS5hbGwodC5tYXAoKHQ9Pntjb25zdCBuPWlPKGkse3RhZzp0aGlzLl90YWdGaWx0ZXIscnVuOnR9KTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KG4pLnRoZW4oKG49PntlKHtpdGVtOnQsZGF0YTpufSl9KSl9KSkpLmZpbmFsbHkoKCgpPT57bigpfSkpfSx0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleD17fSx0aGlzLl9tYXRjaGVzTGlzdE9wZW5lZD0hMSx0aGlzLl9maWxsQXJlYT17bG93ZXJBY2Nlc3Nvcjp0PT50Lmxvd2VyLGhpZ2hlckFjY2Vzc29yOnQ9PnQudXBwZXJ9LHRoaXMuX3Rvb2x0aXBDb2x1bW5zPSgoKT0+e2NvbnN0IHQ9d1R0KDQpLGU9ZT0+aXNOYU4oZSk/Ik5hTiI6dChlKTtyZXR1cm5be3RpdGxlOiJOYW1lIixldmFsdWF0ZTp0PT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lfSx7dGl0bGU6IlZhbHVlIixldmFsdWF0ZTp0PT5lKHQuZGF0dW0uc2NhbGFyKX0se3RpdGxlOiJMb3dlciBNYXJnaW4iLGV2YWx1YXRlOnQ9PmUodC5kYXR1bS5sb3dlcil9LHt0aXRsZToiVXBwZXIgTWFyZ2luIixldmFsdWF0ZTp0PT5lKHQuZGF0dW0udXBwZXIpfSx7dGl0bGU6IlN0ZXAiLGV2YWx1YXRlOnQ9PlNUdCh0LmRhdHVtLnN0ZXApfSx7dGl0bGU6IlRpbWUiLGV2YWx1YXRlOnQ9PkVUdCh0LmRhdHVtLndhbGxfdGltZSl9LHt0aXRsZToiUmVsYXRpdmUiLGV2YWx1YXRlOnQ9PkNUdChUVHQodC5kYXR1bSwwLHQuZGF0YXNldCkpfV19KSgpLHRoaXMuX21pc3NpbmdUYWdzPVtdLHRoaXMuX21pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuZWQ9ITF9cmVsb2FkKCl7dGhpcy4kLmxvYWRlci5yZWxvYWQoKX1yZWRyYXcoKXt0aGlzLiQubG9hZGVyLnJlZHJhdygpfV90b2dnbGVFeHBhbmRlZCh0KXt0aGlzLnNldCgiX2V4cGFuZGVkIiwhdGhpcy5fZXhwYW5kZWQpLHRoaXMucmVkcmF3KCl9X3RvZ2dsZUxvZ1NjYWxlKCl7dGhpcy5zZXQoIl9sb2dTY2FsZUFjdGl2ZSIsIXRoaXMuX2xvZ1NjYWxlQWN0aXZlKX1fcmVzZXREb21haW4oKXtjb25zdCB0PXRoaXMuJC5sb2FkZXI7dCYmdC5yZXNldERvbWFpbigpfV9jc3ZVcmwodCxlKXtyZXR1cm4gZT9pTyh0aGlzLl9kb3dubG9hZERhdGFVcmwodCxlKSx7Zm9ybWF0OiJjc3YifSk6IiJ9X2pzb25VcmwodCxlKXtyZXR1cm4gZT9pTyh0aGlzLl9kb3dubG9hZERhdGFVcmwodCxlKSx7Zm9ybWF0OiJqc29uIn0pOiIifV9kb3dubG9hZERhdGFVcmwodCxlKXtjb25zdCBuPXRbZV0saT17dGFnOm4uZ2V0VGFnKCkscnVuOm4uZ2V0UnVuKCl9O3JldHVybiBpTyhfcigpLnBsdWdpblJvdXRlKCJjdXN0b21fc2NhbGFycyIsIi9kb3dubG9hZF9kYXRhIiksaSl9X2NyZWF0ZVByb2Nlc3NEYXRhRnVuY3Rpb24odCl7cmV0dXJuKGUsbixpKT0+e2lmKCFpLnJlZ2V4X3ZhbGlkKXJldHVybiB2b2lkIHRoaXMuc2V0KCJfdGFnRmlsdGVySW52YWxpZCIsITApO2NvbnN0IHI9U2UuZXhwb3J0cy5jbG9uZSh0aGlzLl9uYW1lVG9EYXRhU2VyaWVzKSxvPVtdO1NlLmV4cG9ydHMuZm9yRWFjaCh0LCh0PT57bGV0IGU9ITE7Y29uc3QgYT1pLnRhZ190b19ldmVudHNbdC52YWx1ZV0scz1pLnRhZ190b19ldmVudHNbdC5sb3dlcl0sbD1pLnRhZ190b19ldmVudHNbdC51cHBlcl07aWYoU2UuZXhwb3J0cy5pc1VuZGVmaW5lZChhKSYmKG8ucHVzaCh0LnZhbHVlKSxlPSEwKSxTZS5leHBvcnRzLmlzVW5kZWZpbmVkKHMpJiYoby5wdXNoKHQubG93ZXIpLGU9ITApLFNlLmV4cG9ydHMuaXNVbmRlZmluZWQobCkmJihvLnB1c2godC51cHBlciksZT0hMCksZSlyZXR1cm47Y29uc3QgYz10PT50WzFdLHU9dGhpcy5fZmluZFN0ZXBNaXNtYXRjaCh0LGEubWFwKGMpLHMubWFwKGMpLGwubWFwKGMpKTtpZih1KXJldHVybiB2b2lkIHRoaXMuc2V0KCJfc3RlcHNNaXNtYXRjaCIsdSk7Y29uc3QgaD10PT50WzJdLGQ9YS5tYXAoKCh0LGUpPT4oe3dhbGxfdGltZTpuZXcgRGF0ZSgxZTMqdFswXSksc3RlcDpjKHQpLHNjYWxhcjpoKHQpLGxvd2VyOmgoc1tlXSksdXBwZXI6aChsW2VdKX0pKSkscD1iQ3Qobix0LnZhbHVlKSxmPXJbcF07aWYoZilmLnNldERhdGEoZCk7ZWxzZXtjb25zdCBlPXRoaXMuX2NyZWF0ZU5ld0RhdGFTZXJpZXMobix0LnZhbHVlLHAsZCk7cltwXT1lfX0pKSx0aGlzLnNldCgiX25hbWVUb0RhdGFTZXJpZXMiLHIpO2NvbnN0IGE9U2UuZXhwb3J0cy5maW5kSW5kZXgodGhpcy5fbWlzc2luZ1RhZ3MsKHQ9PnQucnVuPT09bikpO2lmKG8ubGVuZ3RoJiYzIT1vLmxlbmd0aCl7Y29uc3QgdD17cnVuOm4sdGFnczpvfTthPj0wP3RoaXMuc3BsaWNlKCJfbWlzc2luZ1RhZ3MiLGEsMSx0KTp0aGlzLnB1c2goIl9taXNzaW5nVGFncyIsdCl9ZWxzZSBhPj0wJiZ0aGlzLnNwbGljZSgiX21pc3NpbmdUYWdzIixhLDEpfX1fZmluZFN0ZXBNaXNtYXRjaCh0LGUsbixpKXtyZXR1cm4gU2UuZXhwb3J0cy5pc0VxdWFsKG4sZSkmJlNlLmV4cG9ydHMuaXNFcXVhbChpLGUpP251bGw6e3Nlcmllc09iamVjdDp0LHZhbHVlU3RlcHM6ZSxsb3dlclN0ZXBzOm4sdXBwZXJTdGVwczppfX1fY3JlYXRlTmV3RGF0YVNlcmllcyh0LGUsbixpKXt0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFt0XXw9MDtjb25zdCByPW5ldyB2Q3QodCxlLG4saSxiVHRbdGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXhbdF1dKTtyZXR1cm4gdGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXhbdF09KHRoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4W3RdKzEpJWJUdC5sZW5ndGgscn1fdXBkYXRlQ2hhcnQoKXtTZS5leHBvcnRzLmZvck93bih0aGlzLl9uYW1lVG9EYXRhU2VyaWVzLCh0PT57dGhpcy4kLmxvYWRlci5zZXRTZXJpZXNEYXRhKHQuZ2V0TmFtZSgpLHQuZ2V0RGF0YSgpKX0pKSx0aGlzLiQubG9hZGVyLmNvbW1pdENoYW5nZXMoKX1nZXQgX3Nlcmllc05hbWVzKCl7Y29uc3QgdD1uZXcgU2V0KHRoaXMucnVucyk7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuX25hbWVUb0RhdGFTZXJpZXMpLmZpbHRlcigoKFtlLG5dKT0+dC5oYXMobi5ydW4pKSkubWFwKCgoW3RdKT0+dCkpfV9kZXRlcm1pbmVDb2xvcih0LGUpe3JldHVybiB0LnNjYWxlKGUpfV9yZWZyZXNoRGF0YVNlcmllcygpe3RoaXMuc2V0KCJfbmFtZVRvRGF0YVNlcmllcyIse30pfV9jcmVhdGVTeW1ib2xGdW5jdGlvbigpe3JldHVybiB0PT50aGlzLl9uYW1lVG9EYXRhU2VyaWVzW3RdLmdldFN5bWJvbCgpLm1ldGhvZCgpfV9kZXRlcm1pbmVTeW1ib2wodCxlKXtyZXR1cm4gdFtlXS5nZXRTeW1ib2woKS5jaGFyYWN0ZXJ9Z2V0IF90YWdGaWx0ZXIoKXtyZXR1cm4gU2UuZXhwb3J0cy5mbGF0dGVuKHRoaXMubWFyZ2luQ2hhcnRTZXJpZXMubWFwKCh0PT5bdC52YWx1ZSx0Lmxvd2VyLHQudXBwZXJdKSkpLm1hcCgodD0+IigiK3RoaXMuX2VzY2FwZVJlZ2V4Q2hhcmFjdGVycyh0KSsiKSIpKS5qb2luKCJ8Iil9X2VzY2FwZVJlZ2V4Q2hhcmFjdGVycyh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywiXFwkJiIpfV9nZXRUb2dnbGVDb2xsYXBzaWJsZUljb24odCl7cmV0dXJuIHQ/ImV4cGFuZC1sZXNzIjoiZXhwYW5kLW1vcmUifV90b2dnbGVNYXRjaGVzT3Blbigpe3RoaXMuc2V0KCJfbWF0Y2hlc0xpc3RPcGVuZWQiLCF0aGlzLl9tYXRjaGVzTGlzdE9wZW5lZCl9Z2V0IF90aXRsZURpc3BsYXlTdHJpbmcoKXtyZXR1cm4gdGhpcy50aXRsZXx8InVudGl0bGVkIn1fc2VwYXJhdGVXaXRoQ29tbWFzKHQpe3JldHVybiB0LmpvaW4oIiwgIil9X3RvZ2dsZU1pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuKCl7dGhpcy5zZXQoIl9taXNzaW5nVGFnc0NvbGxhcHNpYmxlT3BlbmVkIiwhdGhpcy5fbWlzc2luZ1RhZ3NDb2xsYXBzaWJsZU9wZW5lZCl9X21hdGNoTGlzdEVudHJ5Q29sb3JVcGRhdGVkKCl7Y29uc3QgdD10aGlzLiQkKCIjbWF0Y2gtbGlzdC1yZXBlYXQiKTt0JiZ0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgiLm1hdGNoLWxpc3QtZW50cnkiKS5mb3JFYWNoKChlPT57Y29uc3Qgbj10Lml0ZW1Gb3JFbGVtZW50KGUpO2Uuc3R5bGUuY29sb3I9dGhpcy5fZGV0ZXJtaW5lQ29sb3IodGhpcy5fY29sb3JTY2FsZSxuKX0pKX19O3dDdC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcgZGlzcGxheS1uYW1lPSJbW190aXRsZURpc3BsYXlTdHJpbmddXSI+PC90Zi1jYXJkLWhlYWRpbmc+CiAgICA8ZGl2IGlkPSJ0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyLWNvbnRhaW5lciI+CiAgICAgIDx0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyCiAgICAgICAgaWQ9ImxvYWRlciIKICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgY29sb3Itc2NhbGU9IltbX2NvbG9yU2NhbGVdXSIKICAgICAgICBkYXRhLXNlcmllcz0iW1tfc2VyaWVzTmFtZXNdXSIKICAgICAgICBmaWxsLWFyZWE9IltbX2ZpbGxBcmVhXV0iCiAgICAgICAgaWdub3JlLXktb3V0bGllcnM9IltbaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgbG9hZC1rZXk9IltbX3RhZ0ZpbHRlcl1dIgogICAgICAgIGRhdGEtdG8tbG9hZD0iW1tydW5zXV0iCiAgICAgICAgcmVxdWVzdC1kYXRhPSJbW19yZXF1ZXN0RGF0YV1dIgogICAgICAgIGxvZy1zY2FsZS1hY3RpdmU9IltbX2xvZ1NjYWxlQWN0aXZlXV0iCiAgICAgICAgbG9hZC1kYXRhLWNhbGxiYWNrPSJbW19jcmVhdGVQcm9jZXNzRGF0YUZ1bmN0aW9uKG1hcmdpbkNoYXJ0U2VyaWVzKV1dIgogICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tyZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgIHN5bWJvbC1mdW5jdGlvbj0iW1tfY3JlYXRlU3ltYm9sRnVuY3Rpb24oKV1dIgogICAgICAgIHRvb2x0aXAtY29sdW1ucz0iW1tfdG9vbHRpcENvbHVtbnNdXSIKICAgICAgICB0b29sdGlwLXNvcnRpbmctbWV0aG9kPSJbW3Rvb2x0aXBTb3J0aW5nTWV0aG9kXV0iCiAgICAgICAgeC10eXBlPSJbW3hUeXBlXV0iCiAgICAgID4KICAgICAgPC90Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJidXR0b25zIj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19leHBhbmRlZF1dIgogICAgICAgIGljb249ImZ1bGxzY3JlZW4iCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2xvZ1NjYWxlQWN0aXZlXV0iCiAgICAgICAgaWNvbj0ibGluZS13ZWlnaHQiCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlTG9nU2NhbGUiCiAgICAgICAgdGl0bGU9IlRvZ2dsZSB5LWF4aXMgbG9nIHNjYWxlIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgaWNvbj0ic2V0dGluZ3Mtb3ZlcnNjYW4iCiAgICAgICAgb24tdGFwPSJfcmVzZXREb21haW4iCiAgICAgICAgdGl0bGU9IkZpdCBkb21haW4gdG8gZGF0YSIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDxzcGFuIHN0eWxlPSJmbGV4LWdyb3c6IDEiPjwvc3Bhbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3Nob3dEb3dubG9hZExpbmtzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImRvd25sb2FkLWxpbmtzIj4KICAgICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICAgIG5vLWxhYmVsLWZsb2F0PSJ0cnVlIgogICAgICAgICAgICBsYWJlbD0ic2VyaWVzIHRvIGRvd25sb2FkIgogICAgICAgICAgICBzZWxlY3RlZC1pdGVtLWxhYmVsPSJ7e19kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWR9fSIKICAgICAgICAgID4KICAgICAgICAgICAgPHBhcGVyLWxpc3Rib3ggY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgICAgICBpdGVtcz0iW1tfc2VyaWVzTmFtZXNdXSIKICAgICAgICAgICAgICAgIGFzPSJkYXRhU2VyaWVzTmFtZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItaXRlbSBuby1sYWJlbC1mbG9hdD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPltbZGF0YVNlcmllc05hbWVdXTwvcGFwZXItaXRlbQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICAgIDwvcGFwZXItZHJvcGRvd24tbWVudT4KICAgICAgICAgIDxhCiAgICAgICAgICAgIGRvd25sb2FkPSJbW19kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWRdXS5jc3YiCiAgICAgICAgICAgIGhyZWY9IltbX2NzdlVybChfbmFtZVRvRGF0YVNlcmllcywgX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZCldXSIKICAgICAgICAgICAgPkNTVjwvYQogICAgICAgICAgPgogICAgICAgICAgPGEKICAgICAgICAgICAgZG93bmxvYWQ9IltbX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZF1dLmpzb24iCiAgICAgICAgICAgIGhyZWY9IltbX2pzb25VcmwoX25hbWVUb0RhdGFTZXJpZXMsIF9kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWQpXV0iCiAgICAgICAgICAgID5KU09OPC9hCiAgICAgICAgICA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2Rpdj4KCiAgICA8IS0tIGhlcmUgLS0+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX21pc3NpbmdUYWdzLmxlbmd0aF1dIj4KICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2libGUtbGlzdC10aXRsZSI+CiAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICBpY29uPSJbW19nZXRUb2dnbGVDb2xsYXBzaWJsZUljb24oX21pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuZWQpXV0iCiAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZU1pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuIgogICAgICAgICAgY2xhc3M9InRvZ2dsZS1jb2xsYXBzaWJsZS1idXR0b24iCiAgICAgICAgPgogICAgICAgIDwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNvbGxhcHNpYmxlLXRpdGxlLXRleHQiPgogICAgICAgICAgPGlyb24taWNvbiBpY29uPSJpY29uczplcnJvciI+PC9pcm9uLWljb24+IE1pc3NpbmcgVGFncwogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxpcm9uLWNvbGxhcHNlIG9wZW5lZD0iW1tfbWlzc2luZ1RhZ3NDb2xsYXBzaWJsZU9wZW5lZF1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1jb250ZW50Ij4KICAgICAgICAgIDxpcm9uLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imljb25zOmVycm9yIj48L2lyb24taWNvbj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX21pc3NpbmdUYWdzXV0iIGFzPSJtaXNzaW5nRW50cnkiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtaXNzaW5nLXRhZ3MtZm9yLXJ1bi1jb250YWluZXIiPgogICAgICAgICAgICAgIFJ1biAiW1ttaXNzaW5nRW50cnkucnVuXV0iIGxhY2tzIGRhdGEgZm9yIHRhZ3MKICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgICAgICAgIGl0ZW1zPSJbW21pc3NpbmdFbnRyeS50YWdzXV0iCiAgICAgICAgICAgICAgICAgIGFzPSJ0YWciCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxsaT5bW3RhZ11dPC9saT4KICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvZGl2PgogICAgICA8L2lyb24tY29sbGFwc2U+CiAgICA8L3RlbXBsYXRlPgoKICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfdGFnRmlsdGVySW52YWxpZF1dIj4KICAgICAgPGRpdiBjbGFzcz0iZXJyb3ItY29udGVudCI+CiAgICAgICAgPGlyb24taWNvbiBjbGFzcz0iZXJyb3ItaWNvbiIgaWNvbj0iaWNvbnM6ZXJyb3IiPjwvaXJvbi1pY29uPgogICAgICAgIFRoaXMgcmVndWxhciBleHByZXNpb24gaXMgaW52YWxpZDo8YnIgLz4KICAgICAgICA8c3BhbiBjbGFzcz0iaW52YWxpZC1yZWdleCI+W1tfdGFnRmlsdGVyXV08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC90ZW1wbGF0ZT4KCiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3N0ZXBzTWlzbWF0Y2hdXSI+CiAgICAgIDxkaXYgY2xhc3M9ImVycm9yLWNvbnRlbnQiPgogICAgICAgIDxpcm9uLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imljb25zOmVycm9yIj48L2lyb24taWNvbj4KICAgICAgICBUaGUgc3RlcHMgZm9yIHZhbHVlLCBsb3dlciwgYW5kIHVwcGVyIHRhZ3MgZG8gbm90IG1hdGNoOgogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhZy1uYW1lIj5bW19zdGVwc01pc21hdGNoLnNlcmllc09iamVjdC52YWx1ZV1dPC9zcGFuPjoKICAgICAgICAgICAgW1tfc2VwYXJhdGVXaXRoQ29tbWFzKF9zdGVwc01pc21hdGNoLnZhbHVlU3RlcHMpXV0KICAgICAgICAgIDwvbGk+CiAgICAgICAgICA8bGk+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWctbmFtZSI+W1tfc3RlcHNNaXNtYXRjaC5zZXJpZXNPYmplY3QubG93ZXJdXTwvc3Bhbj46CiAgICAgICAgICAgIFtbX3NlcGFyYXRlV2l0aENvbW1hcyhfc3RlcHNNaXNtYXRjaC5sb3dlclN0ZXBzKV1dCiAgICAgICAgICA8L2xpPgogICAgICAgICAgPGxpPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFnLW5hbWUiPltbX3N0ZXBzTWlzbWF0Y2guc2VyaWVzT2JqZWN0LnVwcGVyXV08L3NwYW4+OgogICAgICAgICAgICBbW19zZXBhcmF0ZVdpdGhDb21tYXMoX3N0ZXBzTWlzbWF0Y2gudXBwZXJTdGVwcyldXQogICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CgogICAgPGRpdiBpZD0ibWF0Y2hlcy1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJjb2xsYXBzaWJsZS1saXN0LXRpdGxlIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3Nlcmllc05hbWVzLmxlbmd0aF1dIj4KICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICBpY29uPSJbW19nZXRUb2dnbGVDb2xsYXBzaWJsZUljb24oX21hdGNoZXNMaXN0T3BlbmVkKV1dIgogICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZU1hdGNoZXNPcGVuIgogICAgICAgICAgICBjbGFzcz0idG9nZ2xlLW1hdGNoZXMtYnV0dG9uIgogICAgICAgICAgPgogICAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICA8c3BhbiBjbGFzcz0iY29sbGFwc2libGUtdGl0bGUtdGV4dCI+CiAgICAgICAgICBNYXRjaGVzIChbW19zZXJpZXNOYW1lcy5sZW5ndGhdXSkKICAgICAgICA8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3Nlcmllc05hbWVzLmxlbmd0aF1dIj4KICAgICAgICA8aXJvbi1jb2xsYXBzZSBvcGVuZWQ9IltbX21hdGNoZXNMaXN0T3BlbmVkXV0iPgogICAgICAgICAgPGRpdiBpZD0ibWF0Y2hlcy1saXN0Ij4KICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgICAgaXRlbXM9IltbX3Nlcmllc05hbWVzXV0iCiAgICAgICAgICAgICAgYXM9InNlcmllc05hbWUiCiAgICAgICAgICAgICAgaWQ9Im1hdGNoLWxpc3QtcmVwZWF0IgogICAgICAgICAgICAgIG9uLWRvbS1jaGFuZ2U9Il9tYXRjaExpc3RFbnRyeUNvbG9yVXBkYXRlZCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hdGNoLWxpc3QtZW50cnkiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1hdGNoLWVudHJ5LXN5bWJvbCI+CiAgICAgICAgICAgICAgICAgIFtbX2RldGVybWluZVN5bWJvbChfbmFtZVRvRGF0YVNlcmllcywgc2VyaWVzTmFtZSldXQogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgW1tzZXJpZXNOYW1lXV0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJ0Zi1jdXN0b20tc2NhbGFyLWNhcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5lcnJvci1jb250ZW50IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBtYXJnaW46IDEwcHggMCAwIDA7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgfQoKICAgICAgLmVycm9yLWljb24gewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZpbGw6ICNmZmY7CiAgICAgICAgbWFyZ2luOiAwIGF1dG8gNXB4IGF1dG87CiAgICAgIH0KCiAgICAgIC5pbnZhbGlkLXJlZ2V4IHsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQoKICAgICAgLmVycm9yLWNvbnRlbnQgdWwgewogICAgICAgIG1hcmdpbjogMXB4IDAgMCAwOwogICAgICAgIHBhZGRpbmc6IDAgMCAwIDE5cHg7CiAgICAgIH0KCiAgICAgIC50YWctbmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzaWJsZS1saXN0LXRpdGxlIHsKICAgICAgICBtYXJnaW46IDEwcHggMCA1cHggMDsKICAgICAgfQoKICAgICAgLmNvbGxhcHNpYmxlLXRpdGxlLXRleHQgewogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgICNtYXRjaGVzLWxpc3QgewogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIC5tYXRjaC1saXN0LWVudHJ5IHsKICAgICAgICBtYXJnaW46IDAgMCA1cHggMDsKICAgICAgfQoKICAgICAgLm1hdGNoLWVudHJ5LXN5bWJvbCB7CiAgICAgICAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgfQoKICAgICAgLm1pc3NpbmctdGFncy1mb3ItcnVuLWNvbnRhaW5lciB7CiAgICAgICAgbWFyZ2luOiA4cHggMCAwIDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sd0N0LnByb3RvdHlwZSwicnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx3Q3QucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHdDdC5wcm90b3R5cGUsImFjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx3Q3QucHJvdG90eXBlLCJ0aXRsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sd0N0LnByb3RvdHlwZSwibWFyZ2luQ2hhcnRTZXJpZXMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx3Q3QucHJvdG90eXBlLCJpZ25vcmVZT3V0bGllcnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsZHIpXSx3Q3QucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHdDdC5wcm90b3R5cGUsInNob3dEb3dubG9hZExpbmtzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHdDdC5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHdDdC5wcm90b3R5cGUsInRvb2x0aXBTb3J0aW5nTWV0aG9kIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHdDdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0N0LnByb3RvdHlwZSwiX3RhZ0ZpbHRlckludmFsaWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sd0N0LnByb3RvdHlwZSwiX25hbWVUb0RhdGFTZXJpZXMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0N0LnByb3RvdHlwZSwiX2V4cGFuZGVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0N0LnByb3RvdHlwZSwiX2xvZ1NjYWxlQWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sd0N0LnByb3RvdHlwZSwiX3JlcXVlc3REYXRhIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHdDdC5wcm90b3R5cGUsIl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHdDdC5wcm90b3R5cGUsIl9tYXRjaGVzTGlzdE9wZW5lZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx3Q3QucHJvdG90eXBlLCJfZmlsbEFyZWEiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLHdDdC5wcm90b3R5cGUsIl90b29sdGlwQ29sdW1ucyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sd0N0LnByb3RvdHlwZSwiX21pc3NpbmdUYWdzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0N0LnByb3RvdHlwZSwiX21pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sd0N0LnByb3RvdHlwZSwiX3N0ZXBzTWlzbWF0Y2giLHZvaWQgMCksdChbYSgiX25hbWVUb0RhdGFTZXJpZXMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHdDdC5wcm90b3R5cGUsIl91cGRhdGVDaGFydCIsbnVsbCksdChbcygiX25hbWVUb0RhdGFTZXJpZXMiLCJydW5zIiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sd0N0LnByb3RvdHlwZSwiX3Nlcmllc05hbWVzIixudWxsKSx0KFthKCJfdGFnRmlsdGVyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx3Q3QucHJvdG90eXBlLCJfcmVmcmVzaERhdGFTZXJpZXMiLG51bGwpLHQoW3MoIm1hcmdpbkNoYXJ0U2VyaWVzIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sd0N0LnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsbnVsbCksdChbcygidGl0bGUiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSx3Q3QucHJvdG90eXBlLCJfdGl0bGVEaXNwbGF5U3RyaW5nIixudWxsKSx3Q3Q9dChbaSgidGYtY3VzdG9tLXNjYWxhci1tYXJnaW4tY2hhcnQtY2FyZCIpXSx3Q3QpO3ZhciBTQ3Q9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsVFlQRVM6W10sZ2V0UnVuc05hbWVkOmZ1bmN0aW9uIE1DdCh0KXtyZXR1cm4gU2UuZXhwb3J0cy5rZXlzKHQpLnNvcnQobnIpfSxnZXRUYWdzOmFyLGZpbHRlclRhZ3M6ZnVuY3Rpb24gRUN0KHQsZSl7bGV0IG49W107cmV0dXJuIGUuZm9yRWFjaCgoZT0+bj1uLmNvbmNhdCh0W2VdKSkpLFNlLmV4cG9ydHMudW5pcShuKS5zb3J0KG5yKX0sTGlzdGVuS2V5OmZsLEJhc2VTdG9yZTptbCxDYW5jZWxsZXI6WFIsRW52aXJvbm1lbnRTdG9yZTpnbCxlbnZpcm9ubWVudFN0b3JlOl9sLEV4cGVyaW1lbnRzU3RvcmU6RlIsZXhwZXJpbWVudHNTdG9yZTpWUixSZXF1ZXN0Q2FuY2VsbGF0aW9uRXJyb3I6c3IsSW52YWxpZFJlcXVlc3RPcHRpb25zRXJyb3I6bHIsUmVxdWVzdE5ldHdvcmtFcnJvcjpjcixnZXQgSHR0cE1ldGhvZFR5cGUoKXtyZXR1cm4gdXJ9LFJlcXVlc3RPcHRpb25zOmhyLFJlcXVlc3RNYW5hZ2VyOmRyLGNyZWF0ZVJvdXRlcjpncixnZXRSb3V0ZXI6X3Isc2V0Um91dGVyOmZ1bmN0aW9uIFRDdCh0KXtpZihudWxsPT10KXRocm93IG5ldyBFcnJvcigiUm91dGVyIHJlcXVpcmVkLCBidXQgZ290OiAiK3QpO21yPXR9LGNyZWF0ZVNlYXJjaFBhcmFtOnZyLFJ1bnNTdG9yZTp5bCxydW5zU3RvcmU6dmwsYWRkUGFyYW1zOmlPfSk7bGV0IENDdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuYWN0aXZlPSEwLHRoaXMuX2NvbG9yU2NhbGU9bmV3IHhDdCh7c2NhbGU6R1J9KSx0aGlzLl9uYW1lVG9EYXRhU2VyaWVzPXt9LHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX3JlcXVlc3REYXRhPSh0LGUsbik9Pntjb25zdCBpPV9yKCkucGx1Z2luUm91dGUoImN1c3RvbV9zY2FsYXJzIiwiL3NjYWxhcnMiKTtQcm9taXNlLmFsbCh0Lm1hcCgodD0+e2NvbnN0IG49aU8oaSx7dGFnOnRoaXMuX3RhZ0ZpbHRlcixydW46dH0pO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QobikudGhlbigobj0+e2Uoe2l0ZW06dCxkYXRhOm59KX0pKX0pKSkuZmluYWxseSgoKCk9PntuKCl9KSl9LHRoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4PXt9LHRoaXMuX21hdGNoZXNMaXN0T3BlbmVkPSExfXJlbG9hZCgpe3RoaXMuJC5sb2FkZXIucmVsb2FkKCl9cmVkcmF3KCl7dGhpcy4kLmxvYWRlci5yZWRyYXcoKX1fdG9nZ2xlRXhwYW5kZWQodCl7dGhpcy5zZXQoIl9leHBhbmRlZCIsIXRoaXMuX2V4cGFuZGVkKSx0aGlzLnJlZHJhdygpfV90b2dnbGVMb2dTY2FsZSgpe3RoaXMuc2V0KCJfbG9nU2NhbGVBY3RpdmUiLCF0aGlzLl9sb2dTY2FsZUFjdGl2ZSl9X3Jlc2V0RG9tYWluKCl7Y29uc3QgdD10aGlzLiQubG9hZGVyO3QmJnQucmVzZXREb21haW4oKX1fY3N2VXJsKHQsZSl7cmV0dXJuIGU/aU8odGhpcy5fZG93bmxvYWREYXRhVXJsKHQsZSkse2Zvcm1hdDoiY3N2In0pOiIifV9qc29uVXJsKHQsZSl7cmV0dXJuIGU/aU8odGhpcy5fZG93bmxvYWREYXRhVXJsKHQsZSkse2Zvcm1hdDoianNvbiJ9KToiIn1fZG93bmxvYWREYXRhVXJsKHQsZSl7Y29uc3Qgbj10W2VdLGk9e3RhZzpuLmdldFRhZygpLHJ1bjpuLmdldFJ1bigpfTtyZXR1cm4gaU8oX3IoKS5wbHVnaW5Sb3V0ZSgiY3VzdG9tX3NjYWxhcnMiLCIvZG93bmxvYWRfZGF0YSIpLGkpfV9jcmVhdGVQcm9jZXNzRGF0YUZ1bmN0aW9uKCl7cmV0dXJuKHQsZSxuKT0+e2lmKG4ucmVnZXhfdmFsaWQpe2NvbnN0IHQ9U2UuZXhwb3J0cy5jbG9uZSh0aGlzLl9uYW1lVG9EYXRhU2VyaWVzKTtTZS5leHBvcnRzLmZvck93bihuLnRhZ190b19ldmVudHMsKChuLGkpPT57Y29uc3Qgcj1uLm1hcCgodD0+KHt3YWxsX3RpbWU6bmV3IERhdGUoMWUzKnRbMF0pLHN0ZXA6dFsxXSxzY2FsYXI6dFsyXX0pKSksbz1iQ3QoZSxpKSxhPXRbb107aWYoYSlhLnNldERhdGEocik7ZWxzZXtTZS5leHBvcnRzLmlzVW5kZWZpbmVkKHRoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4W2VdKSYmKHRoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4W2VdPTApO2NvbnN0IG49bmV3IHZDdChlLGksbyxyLGJUdFt0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFtlXV0pO3Rbb109bix0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFtlXT0odGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXhbZV0rMSklYlR0Lmxlbmd0aH19KSksdGhpcy5zZXQoIl9uYW1lVG9EYXRhU2VyaWVzIix0KX19fV91cGRhdGVDaGFydCgpe09iamVjdC5lbnRyaWVzKHRoaXMuX25hbWVUb0RhdGFTZXJpZXMpLmZvckVhY2goKChbdCxlXSk9Pnt0aGlzLiQubG9hZGVyLnNldFNlcmllc0RhdGEodCxlLmdldERhdGEoKSl9KSksdGhpcy4kLmxvYWRlci5jb21taXRDaGFuZ2VzKCl9X2NvbXB1dGVTZWxlY3RlZFJ1bnNTZXQodCl7Y29uc3QgZT17fTtyZXR1cm4gU2UuZXhwb3J0cy5mb3JFYWNoKHQsKHQ9PntlW3RdPTF9KSksZX1nZXQgX3Nlcmllc05hbWVzKCl7Y29uc3QgdD1uZXcgU2V0KHRoaXMucnVucyk7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuX25hbWVUb0RhdGFTZXJpZXMpLmZpbHRlcigoKFtlLG5dKT0+dC5oYXMobi5ydW4pKSkubWFwKCgoW3RdKT0+dCkpfV9kZXRlcm1pbmVDb2xvcih0LGUpe3JldHVybiB0LnNjYWxlKGUpfV9yZWZyZXNoRGF0YVNlcmllcygpe3RoaXMuc2V0KCJfbmFtZVRvRGF0YVNlcmllcyIse30pfV9jcmVhdGVTeW1ib2xGdW5jdGlvbigpe3JldHVybiB0PT50aGlzLl9uYW1lVG9EYXRhU2VyaWVzW3RdLmdldFN5bWJvbCgpLm1ldGhvZCgpfV9kZXRlcm1pbmVTeW1ib2wodCxlKXtyZXR1cm4gdFtlXS5nZXRTeW1ib2woKS5jaGFyYWN0ZXJ9Z2V0IF90YWdGaWx0ZXIoKXt2YXIgdD10aGlzLnRhZ1JlZ2V4ZXM7cmV0dXJuIDE9PT10Lmxlbmd0aD90WzBdOnQubWFwKCh0PT4iKCIrdCsiKSIpKS5qb2luKCJ8Iil9X2dldFRvZ2dsZU1hdGNoZXNJY29uKHQpe3JldHVybiB0PyJleHBhbmQtbGVzcyI6ImV4cGFuZC1tb3JlIn1fdG9nZ2xlTWF0Y2hlc09wZW4oKXt0aGlzLnNldCgiX21hdGNoZXNMaXN0T3BlbmVkIiwhdGhpcy5fbWF0Y2hlc0xpc3RPcGVuZWQpfWdldCBfdGl0bGVEaXNwbGF5U3RyaW5nKCl7cmV0dXJuIHRoaXMudGl0bGV8fCJ1bnRpdGxlZCJ9X21hdGNoTGlzdEVudHJ5Q29sb3JVcGRhdGVkKHQpe2NvbnN0IGU9dGhpcy4kJCgiI21hdGNoLWxpc3QtcmVwZWF0Iik7ZSYmdGhpcy5yb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tYXRjaC1saXN0LWVudHJ5IikuZm9yRWFjaCgodD0+e2NvbnN0IG49ZS5pdGVtRm9yRWxlbWVudCh0KTt0LnN0eWxlLmNvbG9yPXRoaXMuX2RldGVybWluZUNvbG9yKHRoaXMuX2NvbG9yU2NhbGUsbil9KSl9fTtDQ3QudGVtcGxhdGU9X2VgCiAgICA8dGYtY2FyZC1oZWFkaW5nIGRpc3BsYXktbmFtZT0iW1tfdGl0bGVEaXNwbGF5U3RyaW5nXV0iPjwvdGYtY2FyZC1oZWFkaW5nPgogICAgPGRpdiBpZD0idGYtbGluZS1jaGFydC1kYXRhLWxvYWRlci1jb250YWluZXIiPgogICAgICA8dGYtbGluZS1jaGFydC1kYXRhLWxvYWRlcgogICAgICAgIGlkPSJsb2FkZXIiCiAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgIGNvbG9yLXNjYWxlPSJbW19jb2xvclNjYWxlXV0iCiAgICAgICAgZGF0YS1zZXJpZXM9IltbX3Nlcmllc05hbWVzXV0iCiAgICAgICAgaWdub3JlLXktb3V0bGllcnM9IltbaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgbG9hZC1rZXk9IltbX3RhZ0ZpbHRlcl1dIgogICAgICAgIGRhdGEtdG8tbG9hZD0iW1tydW5zXV0iCiAgICAgICAgcmVxdWVzdC1kYXRhPSJbW19yZXF1ZXN0RGF0YV1dIgogICAgICAgIGxvZy1zY2FsZS1hY3RpdmU9IltbX2xvZ1NjYWxlQWN0aXZlXV0iCiAgICAgICAgbG9hZC1kYXRhLWNhbGxiYWNrPSJbW19jcmVhdGVQcm9jZXNzRGF0YUZ1bmN0aW9uKCldXSIKICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICBzbW9vdGhpbmctZW5hYmxlZD0iW1tzbW9vdGhpbmdFbmFibGVkXV0iCiAgICAgICAgc21vb3RoaW5nLXdlaWdodD0iW1tzbW9vdGhpbmdXZWlnaHRdXSIKICAgICAgICBzeW1ib2wtZnVuY3Rpb249IltbX2NyZWF0ZVN5bWJvbEZ1bmN0aW9uKCldXSIKICAgICAgICB0b29sdGlwLXNvcnRpbmctbWV0aG9kPSJbW3Rvb2x0aXBTb3J0aW5nTWV0aG9kXV0iCiAgICAgICAgeC10eXBlPSJbW3hUeXBlXV0iCiAgICAgID4KICAgICAgPC90Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJidXR0b25zIj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19leHBhbmRlZF1dIgogICAgICAgIGljb249ImZ1bGxzY3JlZW4iCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2xvZ1NjYWxlQWN0aXZlXV0iCiAgICAgICAgaWNvbj0ibGluZS13ZWlnaHQiCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlTG9nU2NhbGUiCiAgICAgICAgdGl0bGU9IlRvZ2dsZSB5LWF4aXMgbG9nIHNjYWxlIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgaWNvbj0ic2V0dGluZ3Mtb3ZlcnNjYW4iCiAgICAgICAgb24tdGFwPSJfcmVzZXREb21haW4iCiAgICAgICAgdGl0bGU9IkZpdCBkb21haW4gdG8gZGF0YSIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDxzcGFuIHN0eWxlPSJmbGV4LWdyb3c6IDEiPjwvc3Bhbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3Nob3dEb3dubG9hZExpbmtzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImRvd25sb2FkLWxpbmtzIj4KICAgICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICAgIG5vLWxhYmVsLWZsb2F0PSJ0cnVlIgogICAgICAgICAgICBsYWJlbD0ic2VyaWVzIHRvIGRvd25sb2FkIgogICAgICAgICAgICBzZWxlY3RlZC1pdGVtLWxhYmVsPSJ7e19kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWR9fSIKICAgICAgICAgID4KICAgICAgICAgICAgPHBhcGVyLWxpc3Rib3ggY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgICAgICBpdGVtcz0iW1tfc2VyaWVzTmFtZXNdXSIKICAgICAgICAgICAgICAgIGFzPSJkYXRhU2VyaWVzTmFtZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItaXRlbSBuby1sYWJlbC1mbG9hdD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPltbZGF0YVNlcmllc05hbWVdXTwvcGFwZXItaXRlbQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICAgIDwvcGFwZXItZHJvcGRvd24tbWVudT4KICAgICAgICAgIDxhCiAgICAgICAgICAgIGRvd25sb2FkPSJbW19kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWRdXS5jc3YiCiAgICAgICAgICAgIGhyZWY9IltbX2NzdlVybChfbmFtZVRvRGF0YVNlcmllcywgX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZCldXSIKICAgICAgICAgICAgPkNTVjwvYQogICAgICAgICAgPgogICAgICAgICAgPGEKICAgICAgICAgICAgZG93bmxvYWQ9IltbX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZF1dLmpzb24iCiAgICAgICAgICAgIGhyZWY9IltbX2pzb25VcmwoX25hbWVUb0RhdGFTZXJpZXMsIF9kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWQpXV0iCiAgICAgICAgICAgID5KU09OPC9hCiAgICAgICAgICA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9Im1hdGNoZXMtY29udGFpbmVyIj4KICAgICAgPGRpdiBpZD0ibWF0Y2hlcy1saXN0LXRpdGxlIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3Nlcmllc05hbWVzLmxlbmd0aF1dIj4KICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICBpY29uPSJbW19nZXRUb2dnbGVNYXRjaGVzSWNvbihfbWF0Y2hlc0xpc3RPcGVuZWQpXV0iCiAgICAgICAgICAgIG9uLWNsaWNrPSJfdG9nZ2xlTWF0Y2hlc09wZW4iCiAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtbWF0Y2hlcy1idXR0b24iCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgIDwvdGVtcGxhdGU+CgogICAgICAgIDxzcGFuIGNsYXNzPSJtYXRjaGVzLXRleHQiPiBNYXRjaGVzIChbW19zZXJpZXNOYW1lcy5sZW5ndGhdXSkgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zZXJpZXNOYW1lcy5sZW5ndGhdXSI+CiAgICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJbW19tYXRjaGVzTGlzdE9wZW5lZF1dIj4KICAgICAgICAgIDxkaXYgaWQ9Im1hdGNoZXMtbGlzdCI+CiAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICAgIGl0ZW1zPSJbW19zZXJpZXNOYW1lc11dIgogICAgICAgICAgICAgIGFzPSJzZXJpZXNOYW1lIgogICAgICAgICAgICAgIGlkPSJtYXRjaC1saXN0LXJlcGVhdCIKICAgICAgICAgICAgICBvbi1kb20tY2hhbmdlPSJfbWF0Y2hMaXN0RW50cnlDb2xvclVwZGF0ZWQiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXRjaC1saXN0LWVudHJ5Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtYXRjaC1lbnRyeS1zeW1ib2wiPgogICAgICAgICAgICAgICAgICBbW19kZXRlcm1pbmVTeW1ib2woX25hbWVUb0RhdGFTZXJpZXMsIHNlcmllc05hbWUpXV0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIFtbc2VyaWVzTmFtZV1dCiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2lyb24tY29sbGFwc2U+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2Rpdj4KCiAgICA8c3R5bGUgaW5jbHVkZT0idGYtY3VzdG9tLXNjYWxhci1jYXJkLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICAjbWF0Y2hlcy1saXN0LXRpdGxlIHsKICAgICAgICBtYXJnaW46IDEwcHggMCA1cHggMDsKICAgICAgfQoKICAgICAgI21hdGNoZXMtbGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLm1hdGNoLWxpc3QtZW50cnkgewogICAgICAgIG1hcmdpbjogMCAwIDVweCAwOwogICAgICB9CgogICAgICAubWF0Y2gtZW50cnktc3ltYm9sIHsKICAgICAgICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICB9CgogICAgICAubWF0Y2hlcy10ZXh0IHsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLENDdC5wcm90b3R5cGUsInJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQ0N0LnByb3RvdHlwZSwieFR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDQ3QucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQ0N0LnByb3RvdHlwZSwidGl0bGUiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLENDdC5wcm90b3R5cGUsInRhZ1JlZ2V4ZXMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDQ3QucHJvdG90eXBlLCJpZ25vcmVZT3V0bGllcnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsZHIpXSxDQ3QucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLENDdC5wcm90b3R5cGUsInNob3dEb3dubG9hZExpbmtzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQ0N0LnByb3RvdHlwZSwic21vb3RoaW5nRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxDQ3QucHJvdG90eXBlLCJzbW9vdGhpbmdXZWlnaHQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQ0N0LnByb3RvdHlwZSwidGFnTWV0YWRhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQ0N0LnByb3RvdHlwZSwidG9vbHRpcFNvcnRpbmdNZXRob2QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIseEN0KV0sQ0N0LnByb3RvdHlwZSwiX2NvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQ0N0LnByb3RvdHlwZSwiX25hbWVUb0RhdGFTZXJpZXMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQ0N0LnByb3RvdHlwZSwiX2V4cGFuZGVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQ0N0LnByb3RvdHlwZSwiX2xvZ1NjYWxlQWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sQ0N0LnByb3RvdHlwZSwiX3JlcXVlc3REYXRhIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLENDdC5wcm90b3R5cGUsIl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLENDdC5wcm90b3R5cGUsIl9tYXRjaGVzTGlzdE9wZW5lZCIsdm9pZCAwKSx0KFthKCJfbmFtZVRvRGF0YVNlcmllcyIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sQ0N0LnByb3RvdHlwZSwiX3VwZGF0ZUNoYXJ0IixudWxsKSx0KFtzKCJfbmFtZVRvRGF0YVNlcmllcyIsInJ1bnMiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxDQ3QucHJvdG90eXBlLCJfc2VyaWVzTmFtZXMiLG51bGwpLHQoW2EoIl90YWdGaWx0ZXIiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLENDdC5wcm90b3R5cGUsIl9yZWZyZXNoRGF0YVNlcmllcyIsbnVsbCksdChbcygidGFnUmVnZXhlcyIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLENDdC5wcm90b3R5cGUsIl90YWdGaWx0ZXIiLG51bGwpLHQoW3MoInRpdGxlIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sQ0N0LnByb3RvdHlwZSwiX3RpdGxlRGlzcGxheVN0cmluZyIsbnVsbCksQ0N0PXQoW2koInRmLWN1c3RvbS1zY2FsYXItbXVsdGktbGluZS1jaGFydC1jYXJkIildLENDdCk7bGV0IEFDdD1jbGFzcyBleHRlbmRzIHlle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9yZXF1ZXN0TWFuYWdlcj1uZXcgZHIoNTApLHRoaXMuX2NhbmNlbGxlcj1uZXcgWFIsdGhpcy5fc2hvd0Rvd25sb2FkTGlua3M9SHMoIl9zaG93RG93bmxvYWRMaW5rcyIse2RlZmF1bHRWYWx1ZTohMSx1c2VMb2NhbFN0b3JhZ2U6ITB9KS5jYWxsKHRoaXMpLHRoaXMuX3Ntb290aGluZ1dlaWdodD1HcygiX3Ntb290aGluZ1dlaWdodCIse2RlZmF1bHRWYWx1ZTouNn0pLmNhbGwodGhpcyksdGhpcy5faWdub3JlWU91dGxpZXJzPUhzKCJfaWdub3JlWU91dGxpZXJzIix7ZGVmYXVsdFZhbHVlOiEwLHVzZUxvY2FsU3RvcmFnZTohMH0pLmNhbGwodGhpcyksdGhpcy5feFR5cGU9InN0ZXAiLHRoaXMuX2FjdGl2ZT0hMCx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5fc2hvd0Rvd25sb2FkTGlua3NPYnNlcnZlcj1GcygiX3Nob3dEb3dubG9hZExpbmtzIix7ZGVmYXVsdFZhbHVlOiExLHVzZUxvY2FsU3RvcmFnZTohMH0pLHRoaXMuX3Ntb290aGluZ1dlaWdodE9ic2VydmVyPVdzKCJfc21vb3RoaW5nV2VpZ2h0Iix7ZGVmYXVsdFZhbHVlOi42fSksdGhpcy5faWdub3JlWU91dGxpZXJzT2JzZXJ2ZXI9RnMoIl9pZ25vcmVZT3V0bGllcnMiLHtkZWZhdWx0VmFsdWU6ITAsdXNlTG9jYWxTdG9yYWdlOiEwfSl9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMucmVsb2FkT25SZWFkeSYmdGhpcy5yZWxvYWQoKX1yZWxvYWQoKXtjb25zdCB0PV9yKCkucGx1Z2luc0xpc3RpbmcoKSxlPXRoaXMuX2NhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e3QuY2FuY2VsbGVkfHwodGhpcy5zZXQoIl9kYXRhTm90Rm91bmQiLCF0LnZhbHVlLmN1c3RvbV9zY2FsYXJzKSx0aGlzLl9kYXRhTm90Rm91bmR8fHRoaXMuX3JldHJpZXZlTGF5b3V0QW5kRGF0YSgpKX0pKTt0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oZSl9X3JlbG9hZENoYXJ0cygpe3RoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1jdXN0b20tc2NhbGFyLW1hcmdpbi1jaGFydC1jYXJkLCB0Zi1jdXN0b20tc2NhbGFyLW11bHRpLWxpbmUtY2hhcnQtY2FyZCIpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfV9yZXRyaWV2ZUxheW91dEFuZERhdGEoKXtjb25zdCB0PV9yKCkucGx1Z2luUm91dGUoImN1c3RvbV9zY2FsYXJzIiwiL2xheW91dCIpLGU9dGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT57dC5jYW5jZWxsZWR8fCh0aGlzLnNldCgiX2xheW91dCIsdC52YWx1ZSksdGhpcy5fZGF0YU5vdEZvdW5kfHx0aGlzLl9yZWxvYWRDaGFydHMoKSl9KSk7dGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKGUpfWdldCBfc21vb3RoaW5nRW5hYmxlZCgpe3JldHVybiB0aGlzLl9zbW9vdGhpbmdXZWlnaHQ+MH1nZXQgX2NhdGVnb3JpZXMoKXt2YXIgdD10aGlzLl9sYXlvdXQ7aWYoIXQuY2F0ZWdvcnkpcmV0dXJuW107bGV0IGU9ITE7cmV0dXJuIHRoaXMuX29wZW5lZENhdGVnb3JpZXN8fChlPSEwLHRoaXMuX29wZW5lZENhdGVnb3JpZXM9e30pLHQuY2F0ZWdvcnkubWFwKCh0PT4oZSYmIXQuY2xvc2VkJiYodGhpcy5fb3BlbmVkQ2F0ZWdvcmllc1t0LnRpdGxlXT0hMCkse25hbWU6dC50aXRsZSxpdGVtczp0LmNoYXJ0LG1ldGFkYXRhOnt0eXBlOmJyLlBSRUZJWF9HUk9VUCxvcGVuZWQ6ISF0aGlzLl9vcGVuZWRDYXRlZ29yaWVzW3QudGl0bGVdfX0pKSl9X2NhdGVnb3J5T3BlbmVkVG9nZ2xlZCh0KXtjb25zdCBlPXQudGFyZ2V0O2Uub3BlbmVkP3RoaXMuX29wZW5lZENhdGVnb3JpZXNbZS5jYXRlZ29yeS5uYW1lXT0hMDpkZWxldGUgdGhpcy5fb3BlbmVkQ2F0ZWdvcmllc1tlLmNhdGVnb3J5Lm5hbWVdfX07QUN0LnRlbXBsYXRlPV9lYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94IGNoZWNrZWQ9Int7X3Nob3dEb3dubG9hZExpbmtzfX0iCiAgICAgICAgICAgICAgICA+U2hvdyBkYXRhIGRvd25sb2FkIGxpbmtzPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94IGNoZWNrZWQ9Int7X2lnbm9yZVlPdXRsaWVyc319IgogICAgICAgICAgICAgICAgPklnbm9yZSBvdXRsaWVycyBpbiBjaGFydCBzY2FsaW5nPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgaWQ9InRvb2x0aXAtc29ydGluZyI+CiAgICAgICAgICAgICAgPGRpdiBpZD0idG9vbHRpcC1zb3J0aW5nLWxhYmVsIj5Ub29sdGlwIHNvcnRpbmcgbWV0aG9kOjwvZGl2PgogICAgICAgICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICAgICAgICBuby1sYWJlbC1mbG9hdD0iIgogICAgICAgICAgICAgICAgc2VsZWN0ZWQtaXRlbS1sYWJlbD0ie3tfdG9vbHRpcFNvcnRpbmdNZXRob2R9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9IjAiCiAgICAgICAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlZmF1bHQ8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlc2NlbmRpbmc8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmFzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+bmVhcmVzdDwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtc21vb3RoaW5nLWlucHV0CiAgICAgICAgICAgICAgd2VpZ2h0PSJ7e19zbW9vdGhpbmdXZWlnaHR9fSIKICAgICAgICAgICAgICBzdGVwPSIwLjAwMSIKICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICA+PC90Zi1zbW9vdGhpbmctaW5wdXQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDx0Zi1vcHRpb24tc2VsZWN0b3IKICAgICAgICAgICAgICBpZD0ieC10eXBlLXNlbGVjdG9yIgogICAgICAgICAgICAgIG5hbWU9Ikhvcml6b250YWwgQXhpcyIKICAgICAgICAgICAgICBzZWxlY3RlZC1pZD0ie3tfeFR5cGV9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InN0ZXAiPnN0ZXA8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID48IS0tCiAgICAgICAgICAgIC0tPjxwYXBlci1idXR0b24gaWQ9InJlbGF0aXZlIj5yZWxhdGl2ZTwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPjwhLS0KICAgICAgICAgICAgLS0+PHBhcGVyLWJ1dHRvbiBpZD0id2FsbF90aW1lIj53YWxsPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvdGYtb3B0aW9uLXNlbGVjdG9yPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3Igc2VsZWN0ZWQtcnVucz0ie3tfc2VsZWN0ZWRSdW5zfX0iPgogICAgICAgICAgPC90Zi1ydW5zLXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIiBzbG90PSJjZW50ZXIiIGlkPSJjYXRlZ29yaWVzLWNvbnRhaW5lciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+VGhlIGN1c3RvbSBzY2FsYXJzIGRhc2hib2FyZCBpcyBpbmFjdGl2ZS48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8b2w+CiAgICAgICAgICAgICAgPGxpPllvdSBoYXZlbid0IGxhaWQgb3V0IHRoZSBkYXNoYm9hcmQuPC9saT4KICAgICAgICAgICAgICA8bGk+WW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBzY2FsYXIgZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvb2w+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBUbyBsYXkgb3V0IHRoZSBkYXNoYm9hcmQsIHBhc3MgYSA8Y29kZT5MYXlvdXQ8L2NvZGU+IHByb3RvYnVmZmVyCiAgICAgICAgICAgICAgdG8gdGhlIDxjb2RlPnNldF9sYXlvdXQ8L2NvZGU+IG1ldGhvZC4gRm9yIGV4YW1wbGUsCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPHByZT4KZnJvbSB0ZW5zb3Jib2FyZCBpbXBvcnQgc3VtbWFyeQpmcm9tIHRlbnNvcmJvYXJkLnBsdWdpbnMuY3VzdG9tX3NjYWxhciBpbXBvcnQgbGF5b3V0X3BiMgouLi4KIyBUaGlzIGFjdGlvbiBkb2VzIG5vdCBoYXZlIHRvIGJlIHBlcmZvcm1lZCBhdCBldmVyeSBzdGVwLCBzbyB0aGUgYWN0aW9uIGlzIG5vdAojIHRha2VuIGNhcmUgb2YgYnkgYW4gb3AgaW4gdGhlIGdyYXBoLiBXZSBvbmx5IG5lZWQgdG8gc3BlY2lmeSB0aGUgbGF5b3V0IG9uY2UKIyAoaW5zdGVhZCBvZiBwZXIgc3RlcCkuCmxheW91dF9zdW1tYXJ5ID0gc3VtbWFyeV9saWIuY3VzdG9tX3NjYWxhcl9wYihsYXlvdXRfcGIyLkxheW91dCgKICBjYXRlZ29yeT1bCiAgICBsYXlvdXRfcGIyLkNhdGVnb3J5KAogICAgICB0aXRsZT0nbG9zc2VzJywKICAgICAgY2hhcnQ9WwogICAgICAgICAgbGF5b3V0X3BiMi5DaGFydCgKICAgICAgICAgICAgICB0aXRsZT0nbG9zc2VzJywKICAgICAgICAgICAgICBtdWx0aWxpbmU9bGF5b3V0X3BiMi5NdWx0aWxpbmVDaGFydENvbnRlbnQoCiAgICAgICAgICAgICAgICB0YWc9W3InbG9zcy4qJ10sCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICBsYXlvdXRfcGIyLkNoYXJ0KAogICAgICAgICAgICAgIHRpdGxlPSdiYXonLAogICAgICAgICAgICAgIG1hcmdpbj1sYXlvdXRfcGIyLk1hcmdpbkNoYXJ0Q29udGVudCgKICAgICAgICAgICAgICAgIHNlcmllcz1bCiAgICAgICAgICAgICAgICAgIGxheW91dF9wYjIuTWFyZ2luQ2hhcnRDb250ZW50LlNlcmllcygKICAgICAgICAgICAgICAgICAgICB2YWx1ZT0nbG9zcy9iYXovc2NhbGFyX3N1bW1hcnknLAogICAgICAgICAgICAgICAgICAgIGxvd2VyPSdiYXpfbG93ZXIvYmF6L3NjYWxhcl9zdW1tYXJ5JywKICAgICAgICAgICAgICAgICAgICB1cHBlcj0nYmF6X3VwcGVyL2Jhei9zY2FsYXJfc3VtbWFyeScpLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICApKSwKICAgICAgXSksCiAgICBsYXlvdXRfcGIyLkNhdGVnb3J5KAogICAgICB0aXRsZT0ndHJpZyBmdW5jdGlvbnMnLAogICAgICBjaGFydD1bCiAgICAgICAgICBsYXlvdXRfcGIyLkNoYXJ0KAogICAgICAgICAgICAgIHRpdGxlPSd3YXZlIHRyaWcgZnVuY3Rpb25zJywKICAgICAgICAgICAgICBtdWx0aWxpbmU9bGF5b3V0X3BiMi5NdWx0aWxpbmVDaGFydENvbnRlbnQoCiAgICAgICAgICAgICAgICB0YWc9W3IndHJpZ0Z1bmN0aW9ucy9jb3NpbmUnLCByJ3RyaWdGdW5jdGlvbnMvc2luZSddLAogICAgICAgICAgICAgICkpLAogICAgICAgICAgIyBUaGUgcmFuZ2Ugb2YgdGFuZ2VudCBpcyBkaWZmZXJlbnQuIExldCdzIGdpdmUgaXQgaXRzIG93biBjaGFydC4KICAgICAgICAgIGxheW91dF9wYjIuQ2hhcnQoCiAgICAgICAgICAgICAgdGl0bGU9J3RhbicsCiAgICAgICAgICAgICAgbXVsdGlsaW5lPWxheW91dF9wYjIuTXVsdGlsaW5lQ2hhcnRDb250ZW50KAogICAgICAgICAgICAgICAgdGFnPVtyJ3RyaWdGdW5jdGlvbnMvdGFuZ2VudCddLAogICAgICAgICAgICAgICkpLAogICAgICBdLAogICAgICAjIFRoaXMgY2F0ZWdvcnkgd2UgY2FyZSBsZXNzIGFib3V0LiBMZXQncyBtYWtlIGl0IGluaXRpYWxseSBjbG9zZWQuCiAgICAgIGNsb3NlZD1UcnVlKSwKICBdKSkKd3JpdGVyLmFkZF9zdW1tYXJ5KGxheW91dF9zdW1tYXJ5KQo8L3ByZQogICAgICAgICAgICA+CiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgYXM9ImNoYXJ0IgogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgZGlzYWJsZS1wYWdpbmF0aW9uCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbY2F0ZWdvcnkubWV0YWRhdGEub3BlbmVkXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbY2hhcnQubXVsdGlsaW5lXV0iPgogICAgICAgICAgICAgICAgICA8dGYtY3VzdG9tLXNjYWxhci1tdWx0aS1saW5lLWNoYXJ0LWNhcmQKICAgICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW19yZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgICAgICAgICAgICAgIHJ1bnM9IltbX3NlbGVjdGVkUnVuc11dIgogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJbW2NoYXJ0LnRpdGxlXV0iCiAgICAgICAgICAgICAgICAgICAgeC10eXBlPSJbW194VHlwZV1dIgogICAgICAgICAgICAgICAgICAgIHNtb290aGluZy1lbmFibGVkPSJbW19zbW9vdGhpbmdFbmFibGVkXV0iCiAgICAgICAgICAgICAgICAgICAgc21vb3RoaW5nLXdlaWdodD0iW1tfc21vb3RoaW5nV2VpZ2h0XV0iCiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcC1zb3J0aW5nLW1ldGhvZD0iW1t0b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgICAgICAgICAgICAgIGlnbm9yZS15LW91dGxpZXJzPSJbW19pZ25vcmVZT3V0bGllcnNdXSIKICAgICAgICAgICAgICAgICAgICBzaG93LWRvd25sb2FkLWxpbmtzPSJbW19zaG93RG93bmxvYWRMaW5rc11dIgogICAgICAgICAgICAgICAgICAgIHRhZy1yZWdleGVzPSJbW2NoYXJ0Lm11bHRpbGluZS50YWddXSIKICAgICAgICAgICAgICAgICAgPjwvdGYtY3VzdG9tLXNjYWxhci1tdWx0aS1saW5lLWNoYXJ0LWNhcmQ+CiAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2NoYXJ0Lm1hcmdpbl1dIj4KICAgICAgICAgICAgICAgICAgPHRmLWN1c3RvbS1zY2FsYXItbWFyZ2luLWNoYXJ0LWNhcmQKICAgICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW19yZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgICAgICAgICAgICAgIHJ1bnM9IltbX3NlbGVjdGVkUnVuc11dIgogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJbW2NoYXJ0LnRpdGxlXV0iCiAgICAgICAgICAgICAgICAgICAgeC10eXBlPSJbW194VHlwZV1dIgogICAgICAgICAgICAgICAgICAgIHRvb2x0aXAtc29ydGluZy1tZXRob2Q9IltbdG9vbHRpcFNvcnRpbmdNZXRob2RdXSIKICAgICAgICAgICAgICAgICAgICBpZ25vcmUteS1vdXRsaWVycz0iW1tfaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgICAgICAgICAgICAgc2hvdy1kb3dubG9hZC1saW5rcz0iW1tfc2hvd0Rvd25sb2FkTGlua3NdXSIKICAgICAgICAgICAgICAgICAgICBtYXJnaW4tY2hhcnQtc2VyaWVzPSJbW2NoYXJ0Lm1hcmdpbi5zZXJpZXNdXSIKICAgICAgICAgICAgICAgICAgPjwvdGYtY3VzdG9tLXNjYWxhci1tYXJnaW4tY2hhcnQtY2FyZD4KICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgI3Rvb2x0aXAtc29ydGluZyB7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICB9CiAgICAgICN0b29sdGlwLXNvcnRpbmcgcGFwZXItZHJvcGRvd24tbWVudSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItZm9jdXMtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIHdpZHRoOiAxMDVweDsKICAgICAgfQogICAgICAubGluZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nLXRvcDogNXB4OwogICAgICB9CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsZHIpXSxBQ3QucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsWFIpXSxBQ3QucHJvdG90eXBlLCJfY2FuY2VsbGVyIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxBQ3QucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixub3RpZnk6ITAsb2JzZXJ2ZXI6Il9zaG93RG93bmxvYWRMaW5rc09ic2VydmVyIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQUN0LnByb3RvdHlwZSwiX3Nob3dEb3dubG9hZExpbmtzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMCxvYnNlcnZlcjoiX3Ntb290aGluZ1dlaWdodE9ic2VydmVyIn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxBQ3QucHJvdG90eXBlLCJfc21vb3RoaW5nV2VpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX2lnbm9yZVlPdXRsaWVyc09ic2VydmVyIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQUN0LnByb3RvdHlwZSwiX2lnbm9yZVlPdXRsaWVycyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxBQ3QucHJvdG90eXBlLCJfeFR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQUN0LnByb3RvdHlwZSwiX2xheW91dCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEFDdC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQUN0LnByb3RvdHlwZSwiX29wZW5lZENhdGVnb3JpZXMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxBQ3QucHJvdG90eXBlLCJfYWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQUN0LnByb3RvdHlwZSwicmVsb2FkT25SZWFkeSIsdm9pZCAwKSx0KFtzKCJfc21vb3RoaW5nV2VpZ2h0IiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEFDdC5wcm90b3R5cGUsIl9zbW9vdGhpbmdFbmFibGVkIixudWxsKSx0KFtzKCJfbGF5b3V0IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxBQ3QucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCksQUN0PXQoW2koInRmLWN1c3RvbS1zY2FsYXItZGFzaGJvYXJkIildLEFDdCk7Y2xhc3Mga0N0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5ydW4yZGF0YXNldHM9e30sdGhpcy5jb2xvclNjYWxlPWUsdGhpcy5idWlsZENoYXJ0KHQpfWdldERhdGFzZXQodCl7cmV0dXJuIHZvaWQgMD09PXRoaXMucnVuMmRhdGFzZXRzW3RdJiYodGhpcy5ydW4yZGF0YXNldHNbdF09bmV3IHJPLkRhdGFzZXQoW10se3J1bjp0fSkpLHRoaXMucnVuMmRhdGFzZXRzW3RdfWJ1aWxkQ2hhcnQodCl7dGhpcy5vdXRlciYmdGhpcy5vdXRlci5kZXN0cm95KCk7bGV0IGU9QVR0KHQpO3RoaXMueEFjY2Vzc29yPWUuYWNjZXNzb3IsdGhpcy54U2NhbGU9ZS5zY2FsZSx0aGlzLnhBeGlzPWUuYXhpcyx0aGlzLnhBeGlzLm1hcmdpbigwKSx0aGlzLnhBeGlzLnRpY2tMYWJlbFBhZGRpbmcoMyksdGhpcy55U2NhbGU9bmV3IHJPLlNjYWxlcy5MaW5lYXIsdGhpcy55QXhpcz1uZXcgck8uQXhlcy5OdW1lcmljKHRoaXMueVNjYWxlLCJsZWZ0Iik7bGV0IG49d1R0KDMpO3RoaXMueUF4aXMubWFyZ2luKDApLnRpY2tMYWJlbFBhZGRpbmcoNSkuZm9ybWF0dGVyKG4pLHRoaXMueUF4aXMudXNlc1RleHRXaWR0aEFwcHJveGltYXRpb24oITApO2xldCBpPXRoaXMuYnVpbGRQbG90KHRoaXMueEFjY2Vzc29yLHRoaXMueFNjYWxlLHRoaXMueVNjYWxlKTt0aGlzLmdyaWRsaW5lcz1uZXcgck8uQ29tcG9uZW50cy5HcmlkbGluZXModGhpcy54U2NhbGUsdGhpcy55U2NhbGUpLHRoaXMuY2VudGVyPW5ldyByTy5Db21wb25lbnRzLkdyb3VwKFt0aGlzLmdyaWRsaW5lcyxpXSksdGhpcy5vdXRlcj1uZXcgck8uQ29tcG9uZW50cy5UYWJsZShbW3RoaXMueUF4aXMsdGhpcy5jZW50ZXJdLFtudWxsLHRoaXMueEF4aXNdXSl9YnVpbGRQbG90KHQsZSxuKXtsZXQgaT1bMCwyMjgsMTU4NywzMDg1LDVlMyw2OTE1LDg0MTMsOTc3MiwxZTRdLHI9U2UuZXhwb3J0cy5yYW5nZShpLmxlbmd0aC0xKS5tYXAoKHQ9PihpW3QrMV0taVt0XSkvMjUwMCkpLG89aS5tYXAoKCh0LGUpPT50PT50W2VdWzFdKSksYT1vWzRdLHM9U2UuZXhwb3J0cy5yYW5nZShvLmxlbmd0aC0xKS5tYXAoKGk9PntsZXQgYT1uZXcgck8uUGxvdHMuQXJlYTthLngodCxlKTtsZXQgcz1pPjQ/b1tpXTpvW2krMV07cmV0dXJuIGEueShpPjQ/b1tpKzFdOm9baV0sbiksYS55MChzKSxhLmF0dHIoImZpbGwiLCgodCxlLG4pPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUobi5tZXRhZGF0YSgpLnJ1bikpKSxhLmF0dHIoInN0cm9rZSIsKCh0LGUsbik9PnRoaXMuY29sb3JTY2FsZS5zY2FsZShuLm1ldGFkYXRhKCkucnVuKSkpLGEuYXR0cigic3Ryb2tlLXdlaWdodCIsKCh0LGUsbik9PiIwLjVweCIpKSxhLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwoKCk9PnJbaV0pKSxhLmF0dHIoImZpbGwtb3BhY2l0eSIsKCgpPT5yW2ldKSksYX0pKSxsPW5ldyByTy5QbG90cy5MaW5lO3JldHVybiBsLngodCxlKSxsLnkoYSxuKSxsLmF0dHIoInN0cm9rZSIsKCh0LGUsbik9PnRoaXMuY29sb3JTY2FsZS5zY2FsZShuLnJ1bikpKSx0aGlzLnBsb3RzPXMsbmV3IHJPLkNvbXBvbmVudHMuR3JvdXAocyl9c2V0VmlzaWJsZVNlcmllcyh0KXt0aGlzLnJ1bnM9dDtsZXQgZT10Lm1hcCgodD0+dGhpcy5nZXREYXRhc2V0KHQpKSk7dGhpcy5wbG90cy5mb3JFYWNoKCh0PT50LmRhdGFzZXRzKGUpKSl9c2V0U2VyaWVzRGF0YSh0LGUpe3RoaXMuZ2V0RGF0YXNldCh0KS5kYXRhKGUpfXJlbmRlclRvKHQpe3RoaXMudGFyZ2V0U1ZHPXQsdGhpcy5vdXRlci5yZW5kZXJUbyh0KX1yZWRyYXcoKXt0aGlzLm91dGVyLnJlZHJhdygpfWRlc3Ryb3koKXt0aGlzLm91dGVyLmRlc3Ryb3koKX19bGV0IExDdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29sb3JTY2FsZT0obmV3IHJPLlNjYWxlcy5Db2xvcikucmFuZ2UoZ0Euc2xpY2UoKSksdGhpcy54VHlwZT0ic3RlcCIsdGhpcy5fdmlzaWJsZVNlcmllc0NhY2hlPVtdLHRoaXMuX3Nlcmllc0RhdGFDYWNoZT17fSx0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9bnVsbH1zZXRWaXNpYmxlU2VyaWVzKHQpe3RoaXMuX3Zpc2libGVTZXJpZXNDYWNoZT10LHRoaXMuX2NoYXJ0JiYodGhpcy5fY2hhcnQuc2V0VmlzaWJsZVNlcmllcyh0KSx0aGlzLnJlZHJhdygpKX1zZXRTZXJpZXNEYXRhKHQsZSl7dGhpcy5fc2VyaWVzRGF0YUNhY2hlW3RdPWUsdGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0LnNldFNlcmllc0RhdGEodCxlKX1yZWRyYXcoKXt0aGlzLl9jaGFydC5yZWRyYXcoKX1fbWFrZUNoYXJ0KCl7dmFyIHQ9dGhpcy54VHlwZSxlPXRoaXMuY29sb3JTY2FsZSxuPXRoaXMuX2F0dGFjaGVkO251bGw9PT10aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQmJnRoaXMuY2FuY2VsQXN5bmModGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkKSx0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9dGhpcy5hc3luYygoZnVuY3Rpb24oKXtpZih0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9bnVsbCxuKXt0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQuZGVzdHJveSgpO3ZhciBpPW5ldyBrQ3QodCxlKSxyPVN1KHRoaXMuJC5jaGFydGRpdik7aS5yZW5kZXJUbyhyKSx0aGlzLl9jaGFydD1pfX0pLDM1MCl9X3JlbG9hZEZyb21DYWNoZSgpe3RoaXMuX2NoYXJ0JiYodGhpcy5fY2hhcnQuc2V0VmlzaWJsZVNlcmllcyh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGUpLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RoaXMuX2NoYXJ0LnNldFNlcmllc0RhdGEodCx0aGlzLl9zZXJpZXNEYXRhQ2FjaGVbdF18fFtdKX0uYmluZCh0aGlzKSkpfWF0dGFjaGVkKCl7dGhpcy5fYXR0YWNoZWQ9ITB9ZGV0YWNoZWQoKXt0aGlzLl9hdHRhY2hlZD0hMX19O0xDdC50ZW1wbGF0ZT1fZWAKICAgIDxzdHlsZSBpbmNsdWRlPSJwbG90dGFibGUtc3R5bGUiPjwvc3R5bGU+CiAgICA8ZGl2IGlkPSJjaGFydGRpdiI+PC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgI2NoYXJ0ZGl2IHsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgICB9CiAgICAgIC5wbG90dGFibGUgLmF4aXMgdGV4dCB7CiAgICAgICAgZmlsbDogY3VycmVudENvbG9yOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsck8uU2NhbGVzLkNvbG9yKV0sTEN0LnByb3RvdHlwZSwiY29sb3JTY2FsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxMQ3QucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLExDdC5wcm90b3R5cGUsIl9hdHRhY2hlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixrQ3QpXSxMQ3QucHJvdG90eXBlLCJfY2hhcnQiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLExDdC5wcm90b3R5cGUsIl92aXNpYmxlU2VyaWVzQ2FjaGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTEN0LnByb3RvdHlwZSwiX3Nlcmllc0RhdGFDYWNoZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxMQ3QucHJvdG90eXBlLCJfbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkIix2b2lkIDApLHQoW2EoInhUeXBlIiwiY29sb3JTY2FsZSIsIl9hdHRhY2hlZCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sTEN0LnByb3RvdHlwZSwiX21ha2VDaGFydCIsbnVsbCksdChbYSgiX2NoYXJ0IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxMQ3QucHJvdG90eXBlLCJfcmVsb2FkRnJvbUNhY2hlIixudWxsKSxMQ3Q9dChbaSgidnotZGlzdHJpYnV0aW9uLWNoYXJ0IildLExDdCk7bGV0IFBDdD1jbGFzcyBleHRlbmRzKExUdChlcih5ZSkpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5nZXREYXRhTG9hZE5hbWU9KHtydW46dH0pPT50LHRoaXMucmVxdWVzdERhdGE9KHQsZSxuKT0+e2NvbnN0IGk9X3IoKS5wbHVnaW5Sb3V0ZSgiZGlzdHJpYnV0aW9ucyIsIi9kaXN0cmlidXRpb25zIik7UHJvbWlzZS5hbGwodC5tYXAoKHQ9Pntjb25zdCBuPWlPKGkse3RhZzp0LnRhZyxydW46dC5ydW59KTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KG4pLnRoZW4oKG49PntlKHtpdGVtOnQsZGF0YTpufSl9KSl9KSkpLmZpbmFsbHkoKCgpPT57bigpfSkpfSx0aGlzLmxvYWREYXRhQ2FsbGJhY2s9KHQsZSxuKT0+e2NvbnN0IGk9bi5tYXAoKHQ9Pntjb25zdFtlLG4saV09dDtyZXR1cm4gaS53YWxsX3RpbWU9bmV3IERhdGUoMWUzKmUpLGkuc3RlcD1uLGl9KSkscj10aGlzLmdldERhdGFMb2FkTmFtZShlKTt0aGlzLiQuY2hhcnQuc2V0U2VyaWVzRGF0YShyLGkpLHRoaXMuJC5jaGFydC5zZXRWaXNpYmxlU2VyaWVzKFtyXSl9LHRoaXMuX2NvbG9yU2NhbGU9e3NjYWxlOkdSfSx0aGlzLl9leHBhbmRlZD0hMSx0aGlzLl9jYW5jZWxsZXI9bmV3IFhSfV9yZWxvYWRPblJ1blRhZ0NoYW5nZSgpe3RoaXMucmVsb2FkKCl9X3VwZGF0ZURhdGFUb0xvYWQoKXt0aGlzLmRhdGFUb0xvYWQ9W3tydW46dGhpcy5ydW4sdGFnOnRoaXMudGFnfV19Z2V0IF9ydW5Db2xvcigpe3JldHVybiB0aGlzLl9jb2xvclNjYWxlLnNjYWxlKHRoaXMucnVuKX1yZWRyYXcoKXt0aGlzLiQuY2hhcnQucmVkcmF3KCl9X3RvZ2dsZUV4cGFuZGVkKHQpe3RoaXMuc2V0KCJfZXhwYW5kZWQiLCF0aGlzLl9leHBhbmRlZCksdGhpcy5yZWRyYXcoKX19O1BDdC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBydW49IltbcnVuXV0iCiAgICAgIGRpc3BsYXktbmFtZT0iW1t0YWdNZXRhZGF0YS5kaXNwbGF5TmFtZV1dIgogICAgICBkZXNjcmlwdGlvbj0iW1t0YWdNZXRhZGF0YS5kZXNjcmlwdGlvbl1dIgogICAgICBjb2xvcj0iW1tfcnVuQ29sb3JdXSIKICAgID48L3RmLWNhcmQtaGVhZGluZz4KICAgIDwhLS0KICAgICAgVGhlIG1haW4gZGlzdHJpYnV0aW9uIHRoYXQgd2UgcmVuZGVyLiBEYXRhIGlzIHNldCBkaXJlY3RseSB3aXRoCiAgICAgIFxgc2V0U2VyaWVzRGF0YVxgLCBub3Qgd2l0aCBhIGJvdW5kIHByb3BlcnR5LgogICAgLS0+CiAgICA8dnotZGlzdHJpYnV0aW9uLWNoYXJ0CiAgICAgIGlkPSJjaGFydCIKICAgICAgeC10eXBlPSJbW3hUeXBlXV0iCiAgICAgIGNvbG9yLXNjYWxlPSJbW19jb2xvclNjYWxlXV0iCiAgICA+PC92ei1kaXN0cmlidXRpb24tY2hhcnQ+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyI+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIHNlbGVjdGVkJD0iW1tfZXhwYW5kZWRdXSIKICAgICAgICBpY29uPSJmdWxsc2NyZWVuIgogICAgICAgIG9uLXRhcD0iX3RvZ2dsZUV4cGFuZGVkIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHdpZHRoOiAzMzBweDsKICAgICAgICBoZWlnaHQ6IDIzNXB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CiAgICAgIDpob3N0KFtfZXhwYW5kZWRdKSB7CiAgICAgICAgd2lkdGg6IDcwMHB4OwogICAgICAgIGhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIHZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzIHsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIHBhcGVyLWljb24tYnV0dG9uIHsKICAgICAgICBjb2xvcjogIzIxOTZmMzsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KICAgICAgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CgogICAgICB0Zi1jYXJkLWhlYWRpbmcgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxQQ3QucHJvdG90eXBlLCJydW4iLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUEN0LnByb3RvdHlwZSwidGFnIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFBDdC5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFBDdC5wcm90b3R5cGUsInhUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFBDdC5wcm90b3R5cGUsImdldERhdGFMb2FkTmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQQ3QucHJvdG90eXBlLCJsb2FkRGF0YUNhbGxiYWNrIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFBDdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFBDdC5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLFBDdC5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLFhSKV0sUEN0LnByb3RvdHlwZSwiX2NhbmNlbGxlciIsdm9pZCAwKSx0KFthKCJydW4iLCJ0YWciKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFBDdC5wcm90b3R5cGUsIl9yZWxvYWRPblJ1blRhZ0NoYW5nZSIsbnVsbCksdChbYSgicnVuIiwidGFnIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxQQ3QucHJvdG90eXBlLCJfdXBkYXRlRGF0YVRvTG9hZCIsbnVsbCksdChbcygicnVuIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sUEN0LnByb3RvdHlwZSwiX3J1bkNvbG9yIixudWxsKSxQQ3Q9dChbaSgidGYtZGlzdHJpYnV0aW9uLWxvYWRlciIpXSxQQ3QpO2xldCBOQ3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5feFR5cGU9InN0ZXAiLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcn1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe3RoaXMuX2ZldGNoVGFncygpLnRoZW4oKCgpPT57dGhpcy5fcmVsb2FkRGlzdHJpYnV0aW9ucygpfSkpfV9mZXRjaFRhZ3MoKXtjb25zdCB0PV9yKCkucGx1Z2luUm91dGUoImRpc3RyaWJ1dGlvbnMiLCIvdGFncyIpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oKHQ9PntpZihTZS5leHBvcnRzLmlzRXF1YWwodCx0aGlzLl9ydW5Ub1RhZ0luZm8pKXJldHVybjtjb25zdCBlPVNlLmV4cG9ydHMubWFwVmFsdWVzKHQsKHQ9Pk9iamVjdC5rZXlzKHQpKSksbj1hcihlKTt0aGlzLnNldCgiX2RhdGFOb3RGb3VuZCIsMD09PW4ubGVuZ3RoKSx0aGlzLnNldCgiX3J1blRvVGFnIixlKSx0aGlzLnNldCgiX3J1blRvVGFnSW5mbyIsdCksdGhpcy5hc3luYygoKCk9Pnt0aGlzLnNldCgiX2NhdGVnb3JpZXNEb21SZWFkeSIsITApfSkpfSkpfV9yZWxvYWREaXN0cmlidXRpb25zKCl7dGhpcy5yb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLWRpc3RyaWJ1dGlvbi1sb2FkZXIiKS5mb3JFYWNoKCh0PT57dC5yZWxvYWQoKX0pKX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1nZXQgX2NhdGVnb3JpZXMoKXtyZXR1cm4gTXIodGhpcy5fcnVuVG9UYWcsdGhpcy5fc2VsZWN0ZWRSdW5zLHRoaXMuX3RhZ0ZpbHRlcil9X3RhZ01ldGFkYXRhKHQsZSxuKXtyZXR1cm4gdFtlXVtuXX19O05DdC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIiBzbG90PSJzaWRlYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtb3B0aW9uLXNlbGVjdG9yCiAgICAgICAgICAgICAgaWQ9InhUeXBlU2VsZWN0b3IiCiAgICAgICAgICAgICAgbmFtZT0iSG9yaXpvbnRhbCBheGlzIgogICAgICAgICAgICAgIHNlbGVjdGVkLWlkPSJ7e194VHlwZX19IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0ic3RlcCI+c3RlcDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InJlbGF0aXZlIj5yZWxhdGl2ZTwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9IndhbGxfdGltZSI+d2FsbDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L3RmLW9wdGlvbi1zZWxlY3Rvcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJjZW50ZXIiIHNsb3Q9ImNlbnRlciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+Tm8gZGlzdHJpYnV0aW9uIGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICBZb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IGhpc3RvZ3JhbSBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuCiAgICAgICAgICAgICAgICAoSGlzdG9ncmFtcyBhbmQgZGlzdHJpYnV0aW9ucyBib3RoIHVzZSB0aGUgaGlzdG9ncmFtIHN1bW1hcnkKICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4pCiAgICAgICAgICAgICAgPC9saT4KCiAgICAgICAgICAgICAgPGxpPlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0Zi10YWctZmlsdGVyZXIgdGFnLWZpbHRlcj0ie3tfdGFnRmlsdGVyfX0iPjwvdGYtdGFnLWZpbHRlcmVyPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY2F0ZWdvcmllc11dIiBhcz0iY2F0ZWdvcnkiPgogICAgICAgICAgICA8dGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXcKICAgICAgICAgICAgICBjYXRlZ29yeT0iW1tjYXRlZ29yeV1dIgogICAgICAgICAgICAgIGluaXRpYWwtb3BlbmVkPSJbW19zaG91bGRPcGVuKGluZGV4KV1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRmLWRpc3RyaWJ1dGlvbi1sb2FkZXIKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICBydW49IltbaXRlbS5ydW5dXSIKICAgICAgICAgICAgICAgICAgdGFnPSJbW2l0ZW0udGFnXV0iCiAgICAgICAgICAgICAgICAgIHRhZy1tZXRhZGF0YT0iW1tfdGFnTWV0YWRhdGEoX3J1blRvVGFnSW5mbywgaXRlbS5ydW4sIGl0ZW0udGFnKV1dIgogICAgICAgICAgICAgICAgICB4LXR5cGU9IltbX3hUeXBlXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgID48L3RmLWRpc3RyaWJ1dGlvbi1sb2FkZXI+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgLm5vLWRhdGEtd2FybmluZyB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE5DdC5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTkN0LnByb3RvdHlwZSwiX3hUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxOQ3QucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE5DdC5wcm90b3R5cGUsIl9ydW5Ub1RhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxOQ3QucHJvdG90eXBlLCJfcnVuVG9UYWdJbmZvIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sTkN0LnByb3RvdHlwZSwiX2RhdGFOb3RGb3VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxOQ3QucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sTkN0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLE5DdC5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtzKCJfcnVuVG9UYWciLCJfc2VsZWN0ZWRSdW5zIiwiX3RhZ0ZpbHRlciIsIl9jYXRlZ29yaWVzRG9tUmVhZHkiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLE5DdC5wcm90b3R5cGUsIl9jYXRlZ29yaWVzIixudWxsKSxOQ3Q9dChbaSgidGYtZGlzdHJpYnV0aW9uLWRhc2hib2FyZCIpXSxOQ3QpO3ZhciBJQ3Q9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsTGlzdGVuS2V5OmRzLGFkZEhhc2hMaXN0ZW5lcjptcyxhZGRTdG9yYWdlTGlzdGVuZXI6Z3MsZmlyZVN0b3JhZ2VDaGFuZ2VkOl9zLHJlbW92ZUhhc2hMaXN0ZW5lckJ5S2V5OnlzLHJlbW92ZVN0b3JhZ2VMaXN0ZW5lckJ5S2V5OnZzLGdldFVybEhhc2hEaWN0OmZ1bmN0aW9uIFJDdCgpe3JldHVybiBDc30sRElTQU1CSUdVQVRPUjoiZGlzYW1iaWd1YXRvciIsZ2V0U3RyaW5nOk5zLHNldFN0cmluZzpJcyxnZXRTdHJpbmdJbml0aWFsaXplcjpScyxnZXRTdHJpbmdPYnNlcnZlcjpPcyxkaXNwb3NlU3RyaW5nQmluZGluZzp6cyxnZXRCb29sZWFuOkRzLHNldEJvb2xlYW46QnMsZ2V0Qm9vbGVhbkluaXRpYWxpemVyOkhzLGdldEJvb2xlYW5PYnNlcnZlcjpGcyxkaXNwb3NlQm9vbGVhbkJpbmRpbmc6VnMsZ2V0TnVtYmVyOlVzLHNldE51bWJlcjpqcyxnZXROdW1iZXJJbml0aWFsaXplcjpHcyxnZXROdW1iZXJPYnNlcnZlcjpXcyxkaXNwb3NlTnVtYmVyQmluZGluZzpxcyxnZXRPYmplY3Q6WXMsc2V0T2JqZWN0OlhzLGdldE9iamVjdEluaXRpYWxpemVyOiRzLGdldE9iamVjdE9ic2VydmVyOktzLGRpc3Bvc2VPYmplY3RCaW5kaW5nOlpzLG1ha2VCaW5kaW5nczpKcyxtaWdyYXRlTGVnYWN5VVJMU2NoZW1lOmZ1bmN0aW9uIE9DdCgpe2NvbnN0IHQ9bmV3IFNldChbImV4YW1wbGVzUGF0aCIsImhpZGVNb2RlbFBhbmUyIiwibW9kZWxOYW1lMSIsIm1vZGVsTmFtZTIiLCJpbmZlcmVuY2VBZGRyZXNzMSIsImluZmVyZW5jZUFkZHJlc3MyIiwibW9kZWxUeXBlIiwibW9kZWxWZXJzaW9uMSIsIm1vZGVsVmVyc2lvbjIiLCJtb2RlbFNpZ25hdHVyZTEiLCJtb2RlbFNpZ25hdHVyZTIiLCJtYXhFeGFtcGxlcyIsImxhYmVsVm9jYWJQYXRoIiwibXVsdGlDbGFzcyIsInNlcXVlbmNlRXhhbXBsZXMiLCJtYXhDbGFzc2VzVG9EaXNwbGF5Iiwic2FtcGxpbmdPZGRzIiwidXNlUHJlZGljdEFwaSIsInByZWRpY3RJbnB1dFRlbnNvciIsInByZWRpY3RPdXRwdXRUZW5zb3IiXSksZT1rcyhBcygpKTtpZigid2hhdGlmIj09PWUuX190YWJfXylmb3IobGV0IG4gb2YgdCluIGluIGUmJihlW2BwLndoYXRpZi4ke259YF09ZVtuXSk7THMoUHMoZSkpLChmdW5jdGlvbiBuKHQpe0NzPXR9KShlKX19KSx6Q3Q9ZnVuY3Rpb24gREN0KHQsZSl7cmV0dXJuIHQ9PT1lfHx0IT10JiZlIT1lfSxCQ3Q9ekN0LEhDdD1mdW5jdGlvbiBGQ3QodCxlKXtmb3IodmFyIG49dC5sZW5ndGg7bi0tOylpZihCQ3QodFtuXVswXSxlKSlyZXR1cm4gbjtyZXR1cm4tMX0sVkN0PUhDdCxVQ3Q9QXJyYXkucHJvdG90eXBlLnNwbGljZSxqQ3Q9SEN0LEdDdD1IQ3QsV0N0PUhDdDtmdW5jdGlvbiBxQ3QodCl7dmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8bjspe3ZhciBpPXRbZV07dGhpcy5zZXQoaVswXSxpWzFdKX19cUN0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBZQ3QoKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSxxQ3QucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBYQ3QodCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPVZDdChlLHQpO3JldHVybiEobjwwfHwobj09ZS5sZW5ndGgtMT9lLnBvcCgpOlVDdC5jYWxsKGUsbiwxKSwtLXRoaXMuc2l6ZSwwKSl9LHFDdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uICRDdCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fLG49akN0KGUsdCk7cmV0dXJuIG48MD92b2lkIDA6ZVtuXVsxXX0scUN0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gS0N0KHQpe3JldHVybiBHQ3QodGhpcy5fX2RhdGFfXyx0KT4tMX0scUN0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24gWkN0KHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXyxpPVdDdChuLHQpO3JldHVybiBpPDA/KCsrdGhpcy5zaXplLG4ucHVzaChbdCxlXSkpOm5baV1bMV09ZSx0aGlzfTt2YXIgSkN0LFFDdD1xQ3QsdEF0PVFDdCxlQXQ9Im9iamVjdCI9PXR5cGVvZiB2ZSYmdmUmJnZlLk9iamVjdD09PU9iamVjdCYmdmUsbkF0PSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsaUF0PWVBdHx8bkF0fHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHJBdD1pQXQuU3ltYm9sLG9BdD1PYmplY3QucHJvdG90eXBlLGFBdD1vQXQuaGFzT3duUHJvcGVydHksc0F0PW9BdC50b1N0cmluZyxsQXQ9ckF0P3JBdC50b1N0cmluZ1RhZzp2b2lkIDAsY0F0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsdUF0PXJBdD9yQXQudG9TdHJpbmdUYWc6dm9pZCAwLGhBdD1mdW5jdGlvbiBkQXQodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD8iW29iamVjdCBVbmRlZmluZWRdIjoiW29iamVjdCBOdWxsXSI6dUF0JiZ1QXQgaW4gT2JqZWN0KHQpPyhmdW5jdGlvbiBlKHQpe3ZhciBlPWFBdC5jYWxsKHQsbEF0KSxuPXRbbEF0XTt0cnl7dFtsQXRdPXZvaWQgMDt2YXIgaT0hMH1jYXRjaCh0KXt9dmFyIHI9c0F0LmNhbGwodCk7cmV0dXJuIGkmJihlP3RbbEF0XT1uOmRlbGV0ZSB0W2xBdF0pLHJ9KSh0KTooZnVuY3Rpb24gbih0KXtyZXR1cm4gY0F0LmNhbGwodCl9KSh0KX0scEF0PWZ1bmN0aW9uIGZBdCh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1lfHwiZnVuY3Rpb24iPT1lKX0sbUF0PWhBdCxnQXQ9cEF0LF9BdD1mdW5jdGlvbiB5QXQodCl7aWYoIWdBdCh0KSlyZXR1cm4hMTt2YXIgZT1tQXQodCk7cmV0dXJuIltvYmplY3QgRnVuY3Rpb25dIj09ZXx8IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIj09ZXx8IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iPT1lfHwiW29iamVjdCBQcm94eV0iPT1lfSx2QXQ9aUF0WyJfX2NvcmUtanNfc2hhcmVkX18iXSxiQXQ9KEpDdD0vW14uXSskLy5leGVjKHZBdCYmdkF0LmtleXMmJnZBdC5rZXlzLklFX1BST1RPfHwiIikpPyJTeW1ib2woc3JjKV8xLiIrSkN0OiIiLHhBdD1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsd0F0PWZ1bmN0aW9uIFNBdCh0KXtpZihudWxsIT10KXt0cnl7cmV0dXJuIHhBdC5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn0sTUF0PV9BdCxFQXQ9cEF0LFRBdD13QXQsQ0F0PS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEFBdD1SZWdFeHAoIl4iK0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpLGtBdD1mdW5jdGlvbiBMQXQodCxlKXt2YXIgbj0oZnVuY3Rpb24gaSh0LGUpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W2VdfSkodCxlKTtyZXR1cm4oZnVuY3Rpb24gcih0KXtyZXR1cm4hKCFFQXQodCl8fChmdW5jdGlvbiBlKHQpe3JldHVybiEhYkF0JiZiQXQgaW4gdH0pKHQpKSYmKE1BdCh0KT9BQXQ6Q0F0KS50ZXN0KFRBdCh0KSl9KShuKT9uOnZvaWQgMH0sUEF0PWtBdChpQXQsIk1hcCIpLE5BdD1rQXQoT2JqZWN0LCJjcmVhdGUiKSxJQXQ9TkF0LFJBdD1OQXQsT0F0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksekF0PU5BdCxEQXQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxCQXQ9TkF0O2Z1bmN0aW9uIEhBdCh0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1IQXQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIEZBdCgpe3RoaXMuX19kYXRhX189SUF0P0lBdChudWxsKTp7fSx0aGlzLnNpemU9MH0sSEF0LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24gVkF0KHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxIQXQucHJvdG90eXBlLmdldD1mdW5jdGlvbiBVQXQodCl7dmFyIGU9dGhpcy5fX2RhdGFfXztpZihSQXQpe3ZhciBuPWVbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09bj92b2lkIDA6bn1yZXR1cm4gT0F0LmNhbGwoZSx0KT9lW3RdOnZvaWQgMH0sSEF0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gakF0KHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIHpBdD92b2lkIDAhPT1lW3RdOkRBdC5jYWxsKGUsdCl9LEhBdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIEdBdCh0LGUpe3ZhciBuPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXModCk/MDoxLG5bdF09QkF0JiZ2b2lkIDA9PT1lPyJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjplLHRoaXN9O3ZhciBXQXQ9SEF0LHFBdD1RQ3QsWUF0PVBBdCxYQXQ9ZnVuY3Rpb24gJEF0KHQsZSl7dmFyIG49dC5fX2RhdGFfXztyZXR1cm4oZnVuY3Rpb24gaSh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4ic3RyaW5nIj09ZXx8Im51bWJlciI9PWV8fCJzeW1ib2wiPT1lfHwiYm9vbGVhbiI9PWU/Il9fcHJvdG9fXyIhPT10Om51bGw9PT10fSkoZSk/blsic3RyaW5nIj09dHlwZW9mIGU/InN0cmluZyI6Imhhc2giXTpuLm1hcH0sS0F0PVhBdCxaQXQ9WEF0LEpBdD1YQXQsUUF0PVhBdDtmdW5jdGlvbiB0a3QodCl7dmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8bjspe3ZhciBpPXRbZV07dGhpcy5zZXQoaVswXSxpWzFdKX19dGt0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBla3QoKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBXQXQsbWFwOm5ldyhZQXR8fHFBdCksc3RyaW5nOm5ldyBXQXR9fSx0a3QucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBua3QodCl7dmFyIGU9S0F0KHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPWU/MTowLGV9LHRrdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIGlrdCh0KXtyZXR1cm4gWkF0KHRoaXMsdCkuZ2V0KHQpfSx0a3QucHJvdG90eXBlLmhhcz1mdW5jdGlvbiBya3QodCl7cmV0dXJuIEpBdCh0aGlzLHQpLmhhcyh0KX0sdGt0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24gb2t0KHQsZSl7dmFyIG49UUF0KHRoaXMsdCksaT1uLnNpemU7cmV0dXJuIG4uc2V0KHQsZSksdGhpcy5zaXplKz1uLnNpemU9PWk/MDoxLHRoaXN9O3ZhciBha3Q9dGt0LHNrdD1RQ3QsbGt0PVBBdCxja3Q9YWt0LHVrdD1RQ3Q7ZnVuY3Rpb24gaGt0KHQpe3ZhciBlPXRoaXMuX19kYXRhX189bmV3IHVrdCh0KTt0aGlzLnNpemU9ZS5zaXplfWhrdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gZGt0KCl7dGhpcy5fX2RhdGFfXz1uZXcgdEF0LHRoaXMuc2l6ZT0wfSxoa3QucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBwa3QodCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPWUuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemU9ZS5zaXplLG59LGhrdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIGZrdCh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQodCl9LGhrdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIG1rdCh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9LGhrdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIGdrdCh0LGUpe3ZhciBuPXRoaXMuX19kYXRhX187aWYobiBpbnN0YW5jZW9mIHNrdCl7dmFyIGk9bi5fX2RhdGFfXztpZighbGt0fHxpLmxlbmd0aDwxOTkpcmV0dXJuIGkucHVzaChbdCxlXSksdGhpcy5zaXplPSsrbi5zaXplLHRoaXM7bj10aGlzLl9fZGF0YV9fPW5ldyBja3QoaSl9cmV0dXJuIG4uc2V0KHQsZSksdGhpcy5zaXplPW4uc2l6ZSx0aGlzfTt2YXIgX2t0PWhrdCx5a3Q9ZnVuY3Rpb24gdmt0KHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoOysrbjxpJiYhMSE9PWUodFtuXSxuLHQpOyk7cmV0dXJuIHR9LGJrdD1rQXQseGt0PShmdW5jdGlvbigpe3RyeXt2YXIgdD1ia3QoT2JqZWN0LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiB0KHt9LCIiLHt9KSx0fWNhdGNoKHQpe319KSgpLHdrdD14a3QsU2t0PWZ1bmN0aW9uIE1rdCh0LGUsbil7Il9fcHJvdG9fXyI9PWUmJndrdD93a3QodCxlLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpuLHdyaXRhYmxlOiEwfSk6dFtlXT1ufSxFa3Q9U2t0LFRrdD16Q3QsQ2t0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksQWt0PWZ1bmN0aW9uIGtrdCh0LGUsbil7dmFyIGk9dFtlXTtDa3QuY2FsbCh0LGUpJiZUa3QoaSxuKSYmKHZvaWQgMCE9PW58fGUgaW4gdCl8fEVrdCh0LGUsbil9LExrdD1Ba3QsUGt0PVNrdCxOa3Q9ZnVuY3Rpb24gSWt0KHQsZSxuLGkpe3ZhciByPSFuO258fChuPXt9KTtmb3IodmFyIG89LTEsYT1lLmxlbmd0aDsrK288YTspe3ZhciBzPWVbb10sbD1pP2kobltzXSx0W3NdLHMsbix0KTp2b2lkIDA7dm9pZCAwPT09bCYmKGw9dFtzXSkscj9Qa3QobixzLGwpOkxrdChuLHMsbCl9cmV0dXJuIG59LFJrdD1mdW5jdGlvbiBPa3QodCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH0semt0PWhBdCxEa3Q9Umt0LEJrdD1mdW5jdGlvbiBIa3QodCl7cmV0dXJuIERrdCh0KSYmIltvYmplY3QgQXJndW1lbnRzXSI9PXprdCh0KX0sRmt0PVJrdCxWa3Q9T2JqZWN0LnByb3RvdHlwZSxVa3Q9Vmt0Lmhhc093blByb3BlcnR5LGprdD1Wa3QucHJvcGVydHlJc0VudW1lcmFibGUsR2t0PUJrdCgoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSkoKSk/Qmt0OmZ1bmN0aW9uKHQpe3JldHVybiBGa3QodCkmJlVrdC5jYWxsKHQsImNhbGxlZSIpJiYhamt0LmNhbGwodCwiY2FsbGVlIil9LFdrdD1BcnJheS5pc0FycmF5LHFrdD17ZXhwb3J0czp7fX0sWWt0PWZ1bmN0aW9uIFhrdCgpe3JldHVybiExfTshKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZSYmIWUubm9kZVR5cGUmJmUsaT1uJiZ0JiYhdC5ub2RlVHlwZSYmdCxyPWkmJmkuZXhwb3J0cz09PW4/aUF0LkJ1ZmZlcjp2b2lkIDA7dC5leHBvcnRzPShyP3IuaXNCdWZmZXI6dm9pZCAwKXx8WWt0fSkocWt0LHFrdC5leHBvcnRzKTt2YXIgJGt0PS9eKD86MHxbMS05XVxkKikkLyxLa3Q9ZnVuY3Rpb24gWmt0KHQsZSl7dmFyIG49dHlwZW9mIHQ7cmV0dXJuISEoZT1udWxsPT1lPzkwMDcxOTkyNTQ3NDA5OTE6ZSkmJigibnVtYmVyIj09bnx8InN5bWJvbCIhPW4mJiRrdC50ZXN0KHQpKSYmdD4tMSYmdCUxPT0wJiZ0PGV9LEprdD1mdW5jdGlvbiBRa3QodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PTkwMDcxOTkyNTQ3NDA5OTF9LHRMdD1oQXQsZUx0PUprdCxuTHQ9Umt0LGlMdD17fTtpTHRbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPWlMdFsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09aUx0WyJbb2JqZWN0IEludDhBcnJheV0iXT1pTHRbIltvYmplY3QgSW50MTZBcnJheV0iXT1pTHRbIltvYmplY3QgSW50MzJBcnJheV0iXT1pTHRbIltvYmplY3QgVWludDhBcnJheV0iXT1pTHRbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09aUx0WyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPWlMdFsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxpTHRbIltvYmplY3QgQXJndW1lbnRzXSJdPWlMdFsiW29iamVjdCBBcnJheV0iXT1pTHRbIltvYmplY3QgQXJyYXlCdWZmZXJdIl09aUx0WyJbb2JqZWN0IEJvb2xlYW5dIl09aUx0WyJbb2JqZWN0IERhdGFWaWV3XSJdPWlMdFsiW29iamVjdCBEYXRlXSJdPWlMdFsiW29iamVjdCBFcnJvcl0iXT1pTHRbIltvYmplY3QgRnVuY3Rpb25dIl09aUx0WyJbb2JqZWN0IE1hcF0iXT1pTHRbIltvYmplY3QgTnVtYmVyXSJdPWlMdFsiW29iamVjdCBPYmplY3RdIl09aUx0WyJbb2JqZWN0IFJlZ0V4cF0iXT1pTHRbIltvYmplY3QgU2V0XSJdPWlMdFsiW29iamVjdCBTdHJpbmddIl09aUx0WyJbb2JqZWN0IFdlYWtNYXBdIl09ITE7dmFyIHJMdD1mdW5jdGlvbiBvTHQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfX0sYUx0PXtleHBvcnRzOnt9fTshKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZSYmIWUubm9kZVR5cGUmJmUsaT1uJiZ0JiYhdC5ub2RlVHlwZSYmdCxyPWkmJmkuZXhwb3J0cz09PW4mJmVBdC5wcm9jZXNzLG89KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBpJiZpLnJlcXVpcmUmJmkucmVxdWlyZSgidXRpbCIpLnR5cGVzfHxyJiZyLmJpbmRpbmcmJnIuYmluZGluZygidXRpbCIpfWNhdGNoKHQpe319KSgpO3QuZXhwb3J0cz1vfSkoYUx0LGFMdC5leHBvcnRzKTt2YXIgc0x0PWFMdC5leHBvcnRzLGxMdD1zTHQmJnNMdC5pc1R5cGVkQXJyYXksY0x0PWxMdD9yTHQobEx0KTpmdW5jdGlvbiB1THQodCl7cmV0dXJuIG5MdCh0KSYmZUx0KHQubGVuZ3RoKSYmISFpTHRbdEx0KHQpXX0saEx0PUdrdCxkTHQ9V2t0LHBMdD1xa3QuZXhwb3J0cyxmTHQ9S2t0LG1MdD1jTHQsZ0x0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksX0x0PWZ1bmN0aW9uIHlMdCh0LGUpe3ZhciBuPWRMdCh0KSxpPSFuJiZoTHQodCkscj0hbiYmIWkmJnBMdCh0KSxvPSFuJiYhaSYmIXImJm1MdCh0KSxhPW58fGl8fHJ8fG8scz1hPyhmdW5jdGlvbiBsKHQsZSl7Zm9yKHZhciBuPS0xLGk9QXJyYXkodCk7KytuPHQ7KWlbbl09ZShuKTtyZXR1cm4gaX0pKHQubGVuZ3RoLFN0cmluZyk6W10sYz1zLmxlbmd0aDtmb3IodmFyIHUgaW4gdCkhZSYmIWdMdC5jYWxsKHQsdSl8fGEmJigibGVuZ3RoIj09dXx8ciYmKCJvZmZzZXQiPT11fHwicGFyZW50Ij09dSl8fG8mJigiYnVmZmVyIj09dXx8ImJ5dGVMZW5ndGgiPT11fHwiYnl0ZU9mZnNldCI9PXUpfHxmTHQodSxjKSl8fHMucHVzaCh1KTtyZXR1cm4gc30sdkx0PU9iamVjdC5wcm90b3R5cGUsYkx0PWZ1bmN0aW9uIHhMdCh0KXt2YXIgZT10JiZ0LmNvbnN0cnVjdG9yO3JldHVybiB0PT09KCJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLnByb3RvdHlwZXx8dkx0KX0sd0x0PWZ1bmN0aW9uIFNMdCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdChlKG4pKX19LE1MdD13THQoT2JqZWN0LmtleXMsT2JqZWN0KSxFTHQ9Ykx0LFRMdD1NTHQsQ0x0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksQUx0PWZ1bmN0aW9uIGtMdCh0KXtpZighRUx0KHQpKXJldHVybiBUTHQodCk7dmFyIGU9W107Zm9yKHZhciBuIGluIE9iamVjdCh0KSlDTHQuY2FsbCh0LG4pJiYiY29uc3RydWN0b3IiIT1uJiZlLnB1c2gobik7cmV0dXJuIGV9LExMdD1fQXQsUEx0PUprdCxOTHQ9ZnVuY3Rpb24gSUx0KHQpe3JldHVybiBudWxsIT10JiZQTHQodC5sZW5ndGgpJiYhTEx0KHQpfSxSTHQ9X0x0LE9MdD1BTHQsekx0PU5MdCxETHQ9ZnVuY3Rpb24gQkx0KHQpe3JldHVybiB6THQodCk/Ukx0KHQpOk9MdCh0KX0sSEx0PU5rdCxGTHQ9REx0LFZMdD1wQXQsVUx0PWJMdCxqTHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxHTHQ9X0x0LFdMdD1OTHQscUx0PWZ1bmN0aW9uIFlMdCh0KXtyZXR1cm4gV0x0KHQpP0dMdCh0LCEwKTooZnVuY3Rpb24gZSh0KXtpZighVkx0KHQpKXJldHVybihmdW5jdGlvbiBlKHQpe3ZhciBlPVtdO2lmKG51bGwhPXQpZm9yKHZhciBuIGluIE9iamVjdCh0KSllLnB1c2gobik7cmV0dXJuIGV9KSh0KTt2YXIgbj1VTHQodCksaT1bXTtmb3IodmFyIHIgaW4gdCkoImNvbnN0cnVjdG9yIiE9cnx8IW4mJmpMdC5jYWxsKHQscikpJiZpLnB1c2gocik7cmV0dXJuIGl9KSh0KX0sWEx0PU5rdCwkTHQ9cUx0LEtMdD17ZXhwb3J0czp7fX07IShmdW5jdGlvbih0LGUpe3ZhciBuPWUmJiFlLm5vZGVUeXBlJiZlLGk9biYmdCYmIXQubm9kZVR5cGUmJnQscj1pJiZpLmV4cG9ydHM9PT1uP2lBdC5CdWZmZXI6dm9pZCAwLG89cj9yLmFsbG9jVW5zYWZlOnZvaWQgMDt0LmV4cG9ydHM9ZnVuY3Rpb24gYSh0LGUpe2lmKGUpcmV0dXJuIHQuc2xpY2UoKTt2YXIgbj10Lmxlbmd0aCxpPW8/byhuKTpuZXcgdC5jb25zdHJ1Y3RvcihuKTtyZXR1cm4gdC5jb3B5KGkpLGl9fSkoS0x0LEtMdC5leHBvcnRzKTt2YXIgWkx0PWZ1bmN0aW9uIEpMdCh0LGUpe3ZhciBuPS0xLGk9dC5sZW5ndGg7Zm9yKGV8fChlPUFycmF5KGkpKTsrK248aTspZVtuXT10W25dO3JldHVybiBlfSxRTHQ9ZnVuY3Rpb24gdFB0KHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoLHI9MCxvPVtdOysrbjxpOyl7dmFyIGE9dFtuXTtlKGEsbix0KSYmKG9bcisrXT1hKX1yZXR1cm4gb30sZVB0PWZ1bmN0aW9uIG5QdCgpe3JldHVybltdfSxpUHQ9UUx0LHJQdD1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLG9QdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGFQdD1vUHQ/ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/W106KHQ9T2JqZWN0KHQpLGlQdChvUHQodCksKGZ1bmN0aW9uKGUpe3JldHVybiByUHQuY2FsbCh0LGUpfSkpKX06ZVB0LHNQdD1Oa3QsbFB0PWFQdCxjUHQ9ZnVuY3Rpb24gdVB0KHQsZSl7Zm9yKHZhciBuPS0xLGk9ZS5sZW5ndGgscj10Lmxlbmd0aDsrK248aTspdFtyK25dPWVbbl07cmV0dXJuIHR9LGhQdD13THQoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCksZFB0PWNQdCxwUHQ9aFB0LGZQdD1hUHQsbVB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdO3Q7KWRQdChlLGZQdCh0KSksdD1wUHQodCk7cmV0dXJuIGV9OmVQdCxnUHQ9Tmt0LF9QdD1tUHQseVB0PWNQdCx2UHQ9V2t0LGJQdD1mdW5jdGlvbiB4UHQodCxlLG4pe3ZhciBpPWUodCk7cmV0dXJuIHZQdCh0KT9pOnlQdChpLG4odCkpfSx3UHQ9YlB0LFNQdD1hUHQsTVB0PURMdCxFUHQ9ZnVuY3Rpb24gVFB0KHQpe3JldHVybiB3UHQodCxNUHQsU1B0KX0sQ1B0PWJQdCxBUHQ9bVB0LGtQdD1xTHQsTFB0PWtBdChpQXQsIkRhdGFWaWV3IiksUFB0PWtBdChpQXQsIlByb21pc2UiKSxOUHQ9a0F0KGlBdCwiU2V0IiksSVB0PUxQdCxSUHQ9UEF0LE9QdD1QUHQselB0PU5QdCxEUHQ9a0F0KGlBdCwiV2Vha01hcCIpLEJQdD1oQXQsSFB0PXdBdCxGUHQ9IltvYmplY3QgTWFwXSIsVlB0PSJbb2JqZWN0IFByb21pc2VdIixVUHQ9IltvYmplY3QgU2V0XSIsalB0PSJbb2JqZWN0IFdlYWtNYXBdIixHUHQ9IltvYmplY3QgRGF0YVZpZXddIixXUHQ9SFB0KElQdCkscVB0PUhQdChSUHQpLFlQdD1IUHQoT1B0KSxYUHQ9SFB0KHpQdCksJFB0PUhQdChEUHQpLEtQdD1CUHQ7KElQdCYmS1B0KG5ldyBJUHQobmV3IEFycmF5QnVmZmVyKDEpKSkhPUdQdHx8UlB0JiZLUHQobmV3IFJQdCkhPUZQdHx8T1B0JiZLUHQoT1B0LnJlc29sdmUoKSkhPVZQdHx8elB0JiZLUHQobmV3IHpQdCkhPVVQdHx8RFB0JiZLUHQobmV3IERQdCkhPWpQdCkmJihLUHQ9ZnVuY3Rpb24odCl7dmFyIGU9QlB0KHQpLG49IltvYmplY3QgT2JqZWN0XSI9PWU/dC5jb25zdHJ1Y3Rvcjp2b2lkIDAsaT1uP0hQdChuKToiIjtpZihpKXN3aXRjaChpKXtjYXNlIFdQdDpyZXR1cm4gR1B0O2Nhc2UgcVB0OnJldHVybiBGUHQ7Y2FzZSBZUHQ6cmV0dXJuIFZQdDtjYXNlIFhQdDpyZXR1cm4gVVB0O2Nhc2UgJFB0OnJldHVybiBqUHR9cmV0dXJuIGV9KTt2YXIgWlB0PUtQdCxKUHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxRUHQ9aUF0LlVpbnQ4QXJyYXksdE50PVFQdCxlTnQ9ZnVuY3Rpb24gbk50KHQpe3ZhciBlPW5ldyB0LmNvbnN0cnVjdG9yKHQuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyB0TnQoZSkuc2V0KG5ldyB0TnQodCkpLGV9LGlOdD1lTnQsck50PS9cdyokLyxvTnQ9ckF0P3JBdC5wcm90b3R5cGU6dm9pZCAwLGFOdD1vTnQ/b050LnZhbHVlT2Y6dm9pZCAwLHNOdD1lTnQsbE50PWZ1bmN0aW9uIGNOdCh0LGUpe3ZhciBuPWU/c050KHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3Iobix0LmJ5dGVPZmZzZXQsdC5sZW5ndGgpfSx1TnQ9ZU50LGhOdD1sTnQsZE50PXBBdCxwTnQ9T2JqZWN0LmNyZWF0ZSxmTnQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gZnVuY3Rpb24oZSl7aWYoIWROdChlKSlyZXR1cm57fTtpZihwTnQpcmV0dXJuIHBOdChlKTt0LnByb3RvdHlwZT1lO3ZhciBuPW5ldyB0O3JldHVybiB0LnByb3RvdHlwZT12b2lkIDAsbn19KSgpLG1OdD1mTnQsZ050PWhQdCxfTnQ9Ykx0LHlOdD1mdW5jdGlvbiB2TnQodCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQuY29uc3RydWN0b3J8fF9OdCh0KT97fTptTnQoZ050KHQpKX0sYk50PVpQdCx4TnQ9Umt0LHdOdD1hTHQuZXhwb3J0cyxTTnQ9d050JiZ3TnQuaXNNYXAsTU50PVNOdD9yTHQoU050KTpmdW5jdGlvbiBFTnQodCl7cmV0dXJuIHhOdCh0KSYmIltvYmplY3QgTWFwXSI9PWJOdCh0KX0sVE50PVpQdCxDTnQ9Umt0LEFOdD1hTHQuZXhwb3J0cyxrTnQ9QU50JiZBTnQuaXNTZXQsTE50PWtOdD9yTHQoa050KTpmdW5jdGlvbiBQTnQodCl7cmV0dXJuIENOdCh0KSYmIltvYmplY3QgU2V0XSI9PVROdCh0KX0sTk50PV9rdCxJTnQ9eWt0LFJOdD1Ba3QsT050PUtMdC5leHBvcnRzLHpOdD1aTHQsRE50PUVQdCxCTnQ9ZnVuY3Rpb24gSE50KHQpe3JldHVybiBDUHQodCxrUHQsQVB0KX0sRk50PVpQdCxWTnQ9eU50LFVOdD1Xa3Qsak50PXFrdC5leHBvcnRzLEdOdD1NTnQsV050PXBBdCxxTnQ9TE50LFlOdD1ETHQsWE50PXFMdCwkTnQ9IltvYmplY3QgQXJndW1lbnRzXSIsS050PSJbb2JqZWN0IEZ1bmN0aW9uXSIsWk50PSJbb2JqZWN0IE9iamVjdF0iLEpOdD17fTtKTnRbJE50XT1KTnRbIltvYmplY3QgQXJyYXldIl09Sk50WyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPUpOdFsiW29iamVjdCBEYXRhVmlld10iXT1KTnRbIltvYmplY3QgQm9vbGVhbl0iXT1KTnRbIltvYmplY3QgRGF0ZV0iXT1KTnRbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPUpOdFsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09Sk50WyJbb2JqZWN0IEludDhBcnJheV0iXT1KTnRbIltvYmplY3QgSW50MTZBcnJheV0iXT1KTnRbIltvYmplY3QgSW50MzJBcnJheV0iXT1KTnRbIltvYmplY3QgTWFwXSJdPUpOdFsiW29iamVjdCBOdW1iZXJdIl09Sk50W1pOdF09Sk50WyJbb2JqZWN0IFJlZ0V4cF0iXT1KTnRbIltvYmplY3QgU2V0XSJdPUpOdFsiW29iamVjdCBTdHJpbmddIl09Sk50WyJbb2JqZWN0IFN5bWJvbF0iXT1KTnRbIltvYmplY3QgVWludDhBcnJheV0iXT1KTnRbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09Sk50WyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPUpOdFsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxKTnRbIltvYmplY3QgRXJyb3JdIl09Sk50W0tOdF09Sk50WyJbb2JqZWN0IFdlYWtNYXBdIl09ITE7dmFyIFFOdD1mdW5jdGlvbiB0KGUsbixpLHIsbyxhKXt2YXIgcyxsPTEmbixjPTImbix1PTQmbjtpZihpJiYocz1vP2koZSxyLG8sYSk6aShlKSksdm9pZCAwIT09cylyZXR1cm4gcztpZighV050KGUpKXJldHVybiBlO3ZhciBoPVVOdChlKTtpZihoKXtpZihzPShmdW5jdGlvbiBkKHQpe3ZhciBlPXQubGVuZ3RoLG49bmV3IHQuY29uc3RydWN0b3IoZSk7cmV0dXJuIGUmJiJzdHJpbmciPT10eXBlb2YgdFswXSYmSlB0LmNhbGwodCwiaW5kZXgiKSYmKG4uaW5kZXg9dC5pbmRleCxuLmlucHV0PXQuaW5wdXQpLG59KShlKSwhbClyZXR1cm4gek50KGUscyl9ZWxzZXt2YXIgcD1GTnQoZSksZj1wPT1LTnR8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PXA7aWYoak50KGUpKXJldHVybiBPTnQoZSxsKTtpZihwPT1aTnR8fHA9PSROdHx8ZiYmIW8pe2lmKHM9Y3x8Zj97fTpWTnQoZSksIWwpcmV0dXJuIGM/KGZ1bmN0aW9uIGcodCxlKXtyZXR1cm4gZ1B0KHQsX1B0KHQpLGUpfSkoZSwoZnVuY3Rpb24gbSh0LGUpe3JldHVybiB0JiZYTHQoZSwkTHQoZSksdCl9KShzLGUpKTooZnVuY3Rpb24geSh0LGUpe3JldHVybiBzUHQodCxsUHQodCksZSl9KShlLChmdW5jdGlvbiBfKHQsZSl7cmV0dXJuIHQmJkhMdChlLEZMdChlKSx0KX0pKHMsZSkpfWVsc2V7aWYoIUpOdFtwXSlyZXR1cm4gbz9lOnt9O3M9KGZ1bmN0aW9uIHYodCxlLG4pe3ZhciBpPXQuY29uc3RydWN0b3I7c3dpdGNoKGUpe2Nhc2UiW29iamVjdCBBcnJheUJ1ZmZlcl0iOnJldHVybiB1TnQodCk7Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpjYXNlIltvYmplY3QgRGF0ZV0iOnJldHVybiBuZXcgaSgrdCk7Y2FzZSJbb2JqZWN0IERhdGFWaWV3XSI6cmV0dXJuKGZ1bmN0aW9uIHIodCxlKXt2YXIgbj1lP2lOdCh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKG4sdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCl9KSh0LG4pO2Nhc2UiW29iamVjdCBGbG9hdDMyQXJyYXldIjpjYXNlIltvYmplY3QgRmxvYXQ2NEFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDhBcnJheV0iOmNhc2UiW29iamVjdCBJbnQxNkFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDMyQXJyYXldIjpjYXNlIltvYmplY3QgVWludDhBcnJheV0iOmNhc2UiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MTZBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MzJBcnJheV0iOnJldHVybiBoTnQodCxuKTtjYXNlIltvYmplY3QgTWFwXSI6cmV0dXJuIG5ldyBpO2Nhc2UiW29iamVjdCBOdW1iZXJdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIG5ldyBpKHQpO2Nhc2UiW29iamVjdCBSZWdFeHBdIjpyZXR1cm4oZnVuY3Rpb24gbyh0KXt2YXIgZT1uZXcgdC5jb25zdHJ1Y3Rvcih0LnNvdXJjZSxyTnQuZXhlYyh0KSk7cmV0dXJuIGUubGFzdEluZGV4PXQubGFzdEluZGV4LGV9KSh0KTtjYXNlIltvYmplY3QgU2V0XSI6cmV0dXJuIG5ldyBpO2Nhc2UiW29iamVjdCBTeW1ib2xdIjpyZXR1cm4oZnVuY3Rpb24gYSh0KXtyZXR1cm4gYU50P09iamVjdChhTnQuY2FsbCh0KSk6e319KSh0KX19KShlLHAsbCl9fWF8fChhPW5ldyBOTnQpO3ZhciBiPWEuZ2V0KGUpO2lmKGIpcmV0dXJuIGI7YS5zZXQoZSxzKSxxTnQoZSk/ZS5mb3JFYWNoKChmdW5jdGlvbihyKXtzLmFkZCh0KHIsbixpLHIsZSxhKSl9KSk6R050KGUpJiZlLmZvckVhY2goKGZ1bmN0aW9uKHIsbyl7cy5zZXQobyx0KHIsbixpLG8sZSxhKSl9KSk7dmFyIHg9aD92b2lkIDA6KHU/Yz9CTnQ6RE50OmM/WE50OllOdCkoZSk7cmV0dXJuIElOdCh4fHxlLChmdW5jdGlvbihyLG8pe3gmJihyPWVbbz1yXSksUk50KHMsbyx0KHIsbixpLG8sZSxhKSl9KSksc30sdEl0PVFOdCxlSXQ9ZnVuY3Rpb24gbkl0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0saUl0PShmdW5jdGlvbiBySXQodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXtmb3IodmFyIHI9LTEsbz1PYmplY3QoZSksYT1pKGUpLHM9YS5sZW5ndGg7cy0tOyl7dmFyIGw9YVt0P3M6KytyXTtpZighMT09PW4ob1tsXSxsLG8pKWJyZWFrfXJldHVybiBlfX0pKCksb0l0PWlJdCxhSXQ9REx0LHNJdD1mdW5jdGlvbiBsSXQodCxlKXtyZXR1cm4gdCYmb0l0KHQsZSxhSXQpfSxjSXQ9Tkx0LHVJdD0oZnVuY3Rpb24gaEl0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7aWYobnVsbD09bilyZXR1cm4gbjtpZighY0l0KG4pKXJldHVybiB0KG4saSk7Zm9yKHZhciByPW4ubGVuZ3RoLG89ZT9yOi0xLGE9T2JqZWN0KG4pOyhlP28tLTorK288cikmJiExIT09aShhW29dLG8sYSk7KTtyZXR1cm4gbn19KShzSXQpLGRJdD1mdW5jdGlvbiBwSXQodCl7cmV0dXJuIHR9LGZJdD1kSXQsbUl0PWZ1bmN0aW9uIGdJdCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OmZJdH0sX0l0PXlrdCx5SXQ9dUl0LHZJdD1tSXQsYkl0PVdrdCx4SXQ9ZnVuY3Rpb24gd0l0KHQsZSl7cmV0dXJuKGJJdCh0KT9fSXQ6eUl0KSh0LHZJdChlKSl9LFNJdD14SXQsTUl0PXVJdCxFSXQ9YWt0O2Z1bmN0aW9uIFRJdCh0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5fX2RhdGFfXz1uZXcgRUl0OysrZTxuOyl0aGlzLmFkZCh0W2VdKX1USXQucHJvdG90eXBlLmFkZD1USXQucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24gQ0l0KHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldCh0LCJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIiksdGhpc30sVEl0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gQUl0KHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX07dmFyIGtJdD1USXQsTEl0PWZ1bmN0aW9uIFBJdCh0LGUpe3JldHVybiB0LmhhcyhlKX0sTkl0PWtJdCxJSXQ9ZnVuY3Rpb24gUkl0KHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoOysrbjxpOylpZihlKHRbbl0sbix0KSlyZXR1cm4hMDtyZXR1cm4hMX0sT0l0PUxJdCx6SXQ9ZnVuY3Rpb24gREl0KHQsZSxuLGkscixvKXt2YXIgYT0xJm4scz10Lmxlbmd0aCxsPWUubGVuZ3RoO2lmKHMhPWwmJiEoYSYmbD5zKSlyZXR1cm4hMTt2YXIgYz1vLmdldCh0KSx1PW8uZ2V0KGUpO2lmKGMmJnUpcmV0dXJuIGM9PWUmJnU9PXQ7dmFyIGg9LTEsZD0hMCxwPTImbj9uZXcgTkl0OnZvaWQgMDtmb3Ioby5zZXQodCxlKSxvLnNldChlLHQpOysraDxzOyl7dmFyIGY9dFtoXSxtPWVbaF07aWYoaSl2YXIgZz1hP2kobSxmLGgsZSx0LG8pOmkoZixtLGgsdCxlLG8pO2lmKHZvaWQgMCE9PWcpe2lmKGcpY29udGludWU7ZD0hMTticmVha31pZihwKXtpZighSUl0KGUsKGZ1bmN0aW9uKHQsZSl7aWYoIU9JdChwLGUpJiYoZj09PXR8fHIoZix0LG4saSxvKSkpcmV0dXJuIHAucHVzaChlKX0pKSl7ZD0hMTticmVha319ZWxzZSBpZihmIT09bSYmIXIoZixtLG4saSxvKSl7ZD0hMTticmVha319cmV0dXJuIG8uZGVsZXRlKHQpLG8uZGVsZXRlKGUpLGR9LEJJdD1mdW5jdGlvbiBISXQodCl7dmFyIGU9LTEsbj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe25bKytlXT10fSkpLG59LEZJdD1RUHQsVkl0PXpDdCxVSXQ9ekl0LGpJdD1mdW5jdGlvbiBHSXQodCl7dmFyIGU9LTEsbj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7blsrK2VdPVtpLHRdfSkpLG59LFdJdD1CSXQscUl0PXJBdD9yQXQucHJvdG90eXBlOnZvaWQgMCxZSXQ9cUl0P3FJdC52YWx1ZU9mOnZvaWQgMCxYSXQ9RVB0LCRJdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEtJdD1fa3QsWkl0PXpJdCxKSXQ9WlB0LFFJdD1Xa3QsdFJ0PXFrdC5leHBvcnRzLGVSdD1jTHQsblJ0PSJbb2JqZWN0IEFyZ3VtZW50c10iLGlSdD0iW29iamVjdCBBcnJheV0iLHJSdD0iW29iamVjdCBPYmplY3RdIixvUnQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxhUnQ9Umt0LHNSdD1mdW5jdGlvbiB0KGUsbixpLHIsbyl7cmV0dXJuIGU9PT1ufHwobnVsbD09ZXx8bnVsbD09bnx8IWFSdChlKSYmIWFSdChuKT9lIT1lJiZuIT1uOihmdW5jdGlvbiBhKHQsZSxuLGkscixvKXt2YXIgYT1RSXQodCkscz1RSXQoZSksbD1hP2lSdDpKSXQodCksYz1zP2lSdDpKSXQoZSksdT0obD1sPT1uUnQ/clJ0OmwpPT1yUnQsaD0oYz1jPT1uUnQ/clJ0OmMpPT1yUnQsZD1sPT1jO2lmKGQmJnRSdCh0KSl7aWYoIXRSdChlKSlyZXR1cm4hMTthPSEwLHU9ITF9aWYoZCYmIXUpcmV0dXJuIG98fChvPW5ldyBLSXQpLGF8fGVSdCh0KT9aSXQodCxlLG4saSxyLG8pOihmdW5jdGlvbiBwKHQsZSxuLGkscixvLGEpe3N3aXRjaChuKXtjYXNlIltvYmplY3QgRGF0YVZpZXddIjppZih0LmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8dC5ieXRlT2Zmc2V0IT1lLmJ5dGVPZmZzZXQpcmV0dXJuITE7dD10LmJ1ZmZlcixlPWUuYnVmZmVyO2Nhc2UiW29iamVjdCBBcnJheUJ1ZmZlcl0iOnJldHVybiEodC5ieXRlTGVuZ3RoIT1lLmJ5dGVMZW5ndGh8fCFvKG5ldyBGSXQodCksbmV3IEZJdChlKSkpO2Nhc2UiW29iamVjdCBCb29sZWFuXSI6Y2FzZSJbb2JqZWN0IERhdGVdIjpjYXNlIltvYmplY3QgTnVtYmVyXSI6cmV0dXJuIFZJdCgrdCwrZSk7Y2FzZSJbb2JqZWN0IEVycm9yXSI6cmV0dXJuIHQubmFtZT09ZS5uYW1lJiZ0Lm1lc3NhZ2U9PWUubWVzc2FnZTtjYXNlIltvYmplY3QgUmVnRXhwXSI6Y2FzZSJbb2JqZWN0IFN0cmluZ10iOnJldHVybiB0PT1lKyIiO2Nhc2UiW29iamVjdCBNYXBdIjp2YXIgcz1qSXQ7Y2FzZSJbb2JqZWN0IFNldF0iOmlmKHN8fChzPVdJdCksdC5zaXplIT1lLnNpemUmJiEoMSZpKSlyZXR1cm4hMTt2YXIgbD1hLmdldCh0KTtpZihsKXJldHVybiBsPT1lO2l8PTIsYS5zZXQodCxlKTt2YXIgYz1VSXQocyh0KSxzKGUpLGkscixvLGEpO3JldHVybiBhLmRlbGV0ZSh0KSxjO2Nhc2UiW29iamVjdCBTeW1ib2xdIjppZihZSXQpcmV0dXJuIFlJdC5jYWxsKHQpPT1ZSXQuY2FsbChlKX1yZXR1cm4hMX0pKHQsZSxsLG4saSxyLG8pO2lmKCEoMSZuKSl7dmFyIGY9dSYmb1J0LmNhbGwodCwiX193cmFwcGVkX18iKSxtPWgmJm9SdC5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYoZnx8bSl7dmFyIGc9Zj90LnZhbHVlKCk6dCxfPW0/ZS52YWx1ZSgpOmU7cmV0dXJuIG98fChvPW5ldyBLSXQpLHIoZyxfLG4saSxvKX19cmV0dXJuISFkJiYob3x8KG89bmV3IEtJdCksKGZ1bmN0aW9uIHkodCxlLG4saSxyLG8pe3ZhciBhPTEmbixzPVhJdCh0KSxsPXMubGVuZ3RoO2lmKGwhPVhJdChlKS5sZW5ndGgmJiFhKXJldHVybiExO2Zvcih2YXIgYz1sO2MtLTspe3ZhciB1PXNbY107aWYoIShhP3UgaW4gZTokSXQuY2FsbChlLHUpKSlyZXR1cm4hMX12YXIgaD1vLmdldCh0KSxkPW8uZ2V0KGUpO2lmKGgmJmQpcmV0dXJuIGg9PWUmJmQ9PXQ7dmFyIHA9ITA7by5zZXQodCxlKSxvLnNldChlLHQpO2Zvcih2YXIgZj1hOysrYzxsOyl7dmFyIG09dFt1PXNbY11dLGc9ZVt1XTtpZihpKXZhciBfPWE/aShnLG0sdSxlLHQsbyk6aShtLGcsdSx0LGUsbyk7aWYoISh2b2lkIDA9PT1fP209PT1nfHxyKG0sZyxuLGksbyk6Xykpe3A9ITE7YnJlYWt9Znx8KGY9ImNvbnN0cnVjdG9yIj09dSl9aWYocCYmIWYpe3ZhciB5PXQuY29uc3RydWN0b3Isdj1lLmNvbnN0cnVjdG9yO3k9PXZ8fCEoImNvbnN0cnVjdG9yImluIHQpfHwhKCJjb25zdHJ1Y3RvciJpbiBlKXx8ImZ1bmN0aW9uIj09dHlwZW9mIHkmJnkgaW5zdGFuY2VvZiB5JiYiZnVuY3Rpb24iPT10eXBlb2YgdiYmdiBpbnN0YW5jZW9mIHZ8fChwPSExKX1yZXR1cm4gby5kZWxldGUodCksby5kZWxldGUoZSkscH0pKHQsZSxuLGkscixvKSl9KShlLG4saSxyLHQsbykpfSxsUnQ9X2t0LGNSdD1zUnQsdVJ0PXBBdCxoUnQ9ZnVuY3Rpb24gZFJ0KHQpe3JldHVybiB0PT10JiYhdVJ0KHQpfSxwUnQ9aFJ0LGZSdD1ETHQsbVJ0PWZ1bmN0aW9uIGdSdCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbnVsbCE9biYmblt0XT09PWUmJih2b2lkIDAhPT1lfHx0IGluIE9iamVjdChuKSl9fSxfUnQ9bVJ0LHlSdD1oQXQsdlJ0PVJrdCxiUnQ9ZnVuY3Rpb24geFJ0KHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8dlJ0KHQpJiYiW29iamVjdCBTeW1ib2xdIj09eVJ0KHQpfSx3UnQ9V2t0LFNSdD1iUnQsTVJ0PS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLEVSdD0vXlx3KiQvLFRSdD1mdW5jdGlvbiBDUnQodCxlKXtpZih3UnQodCkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9biYmInN5bWJvbCIhPW4mJiJib29sZWFuIiE9biYmbnVsbCE9dCYmIVNSdCh0KSl8fEVSdC50ZXN0KHQpfHwhTVJ0LnRlc3QodCl8fG51bGwhPWUmJnQgaW4gT2JqZWN0KGUpfSxBUnQ9YWt0O2Z1bmN0aW9uIGtSdCh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0fHxudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZ1bmN0aW9uIik7dmFyIG49ZnVuY3Rpb24oKXt2YXIgaT1hcmd1bWVudHMscj1lP2UuYXBwbHkodGhpcyxpKTppWzBdLG89bi5jYWNoZTtpZihvLmhhcyhyKSlyZXR1cm4gby5nZXQocik7dmFyIGE9dC5hcHBseSh0aGlzLGkpO3JldHVybiBuLmNhY2hlPW8uc2V0KHIsYSl8fG8sYX07cmV0dXJuIG4uY2FjaGU9bmV3KGtSdC5DYWNoZXx8QVJ0KSxufWtSdC5DYWNoZT1BUnQ7dmFyIExSdCxQUnQ9a1J0LE5SdD0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxJUnQ9L1xcKFxcKT8vZyxSUnQ9KGZ1bmN0aW9uIE9SdCh0KXt2YXIgZT1QUnQodCwoZnVuY3Rpb24odCl7cmV0dXJuIDUwMD09PW4uc2l6ZSYmbi5jbGVhcigpLHR9KSksbj1lLmNhY2hlO3JldHVybiBlfSkoKGZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmZS5wdXNoKCIiKSx0LnJlcGxhY2UoTlJ0LChmdW5jdGlvbih0LG4saSxyKXtlLnB1c2goaT9yLnJlcGxhY2UoSVJ0LCIkMSIpOm58fHQpfSkpLGV9KSkselJ0PWZ1bmN0aW9uIERSdCh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aCxyPUFycmF5KGkpOysrbjxpOylyW25dPWUodFtuXSxuLHQpO3JldHVybiByfSxCUnQ9elJ0LEhSdD1Xa3QsRlJ0PWJSdCxWUnQ9ckF0P3JBdC5wcm90b3R5cGU6dm9pZCAwLFVSdD1WUnQ/VlJ0LnRvU3RyaW5nOnZvaWQgMCxqUnQ9ZnVuY3Rpb24gdChlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYoSFJ0KGUpKXJldHVybiBCUnQoZSx0KSsiIjtpZihGUnQoZSkpcmV0dXJuIFVSdD9VUnQuY2FsbChlKToiIjt2YXIgbj1lKyIiO3JldHVybiIwIj09biYmMS9lPT0tMS8wPyItMCI6bn0sR1J0PWZ1bmN0aW9uIFdSdCh0KXtyZXR1cm4gbnVsbD09dD8iIjpqUnQodCl9LHFSdD1Xa3QsWVJ0PVRSdCxYUnQ9UlJ0LCRSdD1HUnQsS1J0PWZ1bmN0aW9uIFpSdCh0LGUpe3JldHVybiBxUnQodCk/dDpZUnQodCxlKT9bdF06WFJ0KCRSdCh0KSl9LEpSdD1iUnQsUVJ0PWZ1bmN0aW9uIHRPdCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fEpSdCh0KSlyZXR1cm4gdDt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0tMS8wPyItMCI6ZX0sZU90PUtSdCxuT3Q9UVJ0LGlPdD1mdW5jdGlvbiByT3QodCxlKXtmb3IodmFyIG49MCxpPShlPWVPdChlLHQpKS5sZW5ndGg7bnVsbCE9dCYmbjxpOyl0PXRbbk90KGVbbisrXSldO3JldHVybiBuJiZuPT1pP3Q6dm9pZCAwfSxvT3Q9aU90LGFPdD1LUnQsc090PUdrdCxsT3Q9V2t0LGNPdD1La3QsdU90PUprdCxoT3Q9UVJ0LGRPdD1mdW5jdGlvbiBwT3QodCxlLG4pe2Zvcih2YXIgaT0tMSxyPShlPWFPdChlLHQpKS5sZW5ndGgsbz0hMTsrK2k8cjspe3ZhciBhPWhPdChlW2ldKTtpZighKG89bnVsbCE9dCYmbih0LGEpKSlicmVhazt0PXRbYV19cmV0dXJuIG98fCsraSE9cj9vOiEhKHI9bnVsbD09dD8wOnQubGVuZ3RoKSYmdU90KHIpJiZjT3QoYSxyKSYmKGxPdCh0KXx8c090KHQpKX0sZk90PWZ1bmN0aW9uIG1PdCh0LGUpe3JldHVybiBudWxsIT10JiZlIGluIE9iamVjdCh0KX0sZ090PWRPdCxfT3Q9ZnVuY3Rpb24geU90KHQsZSl7cmV0dXJuIG51bGwhPXQmJmdPdCh0LGUsZk90KX0sdk90PXNSdCxiT3Q9X090LHhPdD1UUnQsd090PWhSdCxTT3Q9bVJ0LE1PdD1RUnQsRU90PWZ1bmN0aW9uIFRPdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmVbdF19fSxDT3Q9aU90LEFPdD1FT3Qsa090PVRSdCxMT3Q9UVJ0LFBPdD1kSXQsTk90PVdrdCxJT3Q9ZnVuY3Rpb24gUk90KHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6bnVsbD09dD9QT3Q6Im9iamVjdCI9PXR5cGVvZiB0P05PdCh0KT8oZnVuY3Rpb24gZSh0LG4pe3JldHVybiB4T3QodCkmJndPdChuKT9TT3QoTU90KHQpLG4pOmZ1bmN0aW9uKGUpe3ZhciBpPShmdW5jdGlvbiByKHQsZSxuKXt2YXIgaT1udWxsPT10P3ZvaWQgMDpvT3QodCxlKTtyZXR1cm4gdm9pZCAwPT09aT9uOml9KShlLHQpO3JldHVybiB2b2lkIDA9PT1pJiZpPT09bj9iT3QoZSx0KTp2T3QobixpLDMpfX0pKHRbMF0sdFsxXSk6KGZ1bmN0aW9uIG4odCl7dmFyIGU9KGZ1bmN0aW9uIG4odCl7Zm9yKHZhciBlPWZSdCh0KSxuPWUubGVuZ3RoO24tLTspe3ZhciBpPWVbbl0scj10W2ldO2Vbbl09W2kscixwUnQocildfXJldHVybiBlfSkodCk7cmV0dXJuIDE9PWUubGVuZ3RoJiZlWzBdWzJdP19SdChlWzBdWzBdLGVbMF1bMV0pOmZ1bmN0aW9uKG4pe3JldHVybiBuPT09dHx8KGZ1bmN0aW9uIGkodCxlLG4scil7dmFyIG89bi5sZW5ndGgsYT1vLHM9IXI7aWYobnVsbD09dClyZXR1cm4hYTtmb3IodD1PYmplY3QodCk7by0tOyl7dmFyIGw9bltvXTtpZihzJiZsWzJdP2xbMV0hPT10W2xbMF1dOiEobFswXWluIHQpKXJldHVybiExfWZvcig7KytvPGE7KXt2YXIgYz0obD1uW29dKVswXSx1PXRbY10saD1sWzFdO2lmKHMmJmxbMl0pe2lmKHZvaWQgMD09PXUmJiEoYyBpbiB0KSlyZXR1cm4hMX1lbHNle3ZhciBkPW5ldyBsUnQ7aWYocil2YXIgcD1yKHUsaCxjLHQsZSxkKTtpZighKHZvaWQgMD09PXA/Y1J0KGgsdSwzLHIsZCk6cCkpcmV0dXJuITF9fXJldHVybiEwfSkobix0LGUpfX0pKHQpOihmdW5jdGlvbiBpKHQpe3JldHVybiBrT3QodCk/QU90KExPdCh0KSk6KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBDT3QoZSx0KX19KSh0KX0pKHQpfSxPT3Q9UUx0LHpPdD1mdW5jdGlvbiBET3QodCxlKXt2YXIgbj1bXTtyZXR1cm4gTUl0KHQsKGZ1bmN0aW9uKHQsaSxyKXtlKHQsaSxyKSYmbi5wdXNoKHQpfSkpLG59LEJPdD1JT3QsSE90PVdrdCxGT3Q9ZnVuY3Rpb24gVk90KHQsZSl7cmV0dXJuKEhPdCh0KT9PT3Q6ek90KSh0LEJPdChlKSl9LFVPdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGpPdD1mdW5jdGlvbiBHT3QodCxlKXtyZXR1cm4gbnVsbCE9dCYmVU90LmNhbGwodCxlKX0sV090PWRPdCxxT3Q9ZnVuY3Rpb24gWU90KHQsZSl7cmV0dXJuIG51bGwhPXQmJldPdCh0LGUsak90KX0sWE90PUFMdCwkT3Q9WlB0LEtPdD1Ha3QsWk90PVdrdCxKT3Q9Tkx0LFFPdD1xa3QuZXhwb3J0cyx0enQ9Ykx0LGV6dD1jTHQsbnp0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksaXp0PWZ1bmN0aW9uIHJ6dCh0KXtyZXR1cm4gdm9pZCAwPT09dH0sb3p0PXVJdCxhenQ9Tkx0LHN6dD1mdW5jdGlvbiBsenQodCxlKXt2YXIgbj0tMSxpPWF6dCh0KT9BcnJheSh0Lmxlbmd0aCk6W107cmV0dXJuIG96dCh0LChmdW5jdGlvbih0LHIsbyl7aVsrK25dPWUodCxyLG8pfSkpLGl9LGN6dD16UnQsdXp0PUlPdCxoenQ9c3p0LGR6dD1Xa3QscHp0PWZ1bmN0aW9uIGZ6dCh0LGUpe3JldHVybihkenQodCk/Y3p0Omh6dCkodCx1enQoZSkpfSxtenQ9ZnVuY3Rpb24gZ3p0KHQsZSxuLGkpe3ZhciByPS0xLG89bnVsbD09dD8wOnQubGVuZ3RoO2ZvcihpJiZvJiYobj10Wysrcl0pOysrcjxvOyluPWUobix0W3JdLHIsdCk7cmV0dXJuIG59LF96dD11SXQseXp0PUlPdCx2enQ9ZnVuY3Rpb24gYnp0KHQsZSxuLGkscil7cmV0dXJuIHIodCwoZnVuY3Rpb24odCxyLG8pe249aT8oaT0hMSx0KTplKG4sdCxyLG8pfSkpLG59LHh6dD1Xa3Qsd3p0PWZ1bmN0aW9uIFN6dCh0LGUsbil7dmFyIGk9eHp0KHQpP216dDp2enQscj1hcmd1bWVudHMubGVuZ3RoPDM7cmV0dXJuIGkodCx5enQoZSksbixyLF96dCl9LE16dD1oQXQsRXp0PVdrdCxUenQ9Umt0LEN6dD1FT3QoImxlbmd0aCIpLEF6dD1SZWdFeHAoIltcXHUyMDBkXFx1ZDgwMC1cXHVkZmZmXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXFx1ZmUwZVxcdWZlMGZdIiksa3p0PSJbXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXSIsTHp0PSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLFB6dD0iW15cXHVkODAwLVxcdWRmZmZdIixOenQ9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLEl6dD0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsUnp0PSIoPzoiK2t6dCsifCIrTHp0KyIpPyIsT3p0PSJbXFx1ZmUwZVxcdWZlMGZdPyIsenp0PU96dCtSenQrIig/OlxcdTIwMGQoPzoiK1tQenQsTnp0LEl6dF0uam9pbigifCIpKyIpIitPenQrUnp0KyIpKiIsRHp0PSIoPzoiK1tQenQra3p0KyI/IixrenQsTnp0LEl6dCwiW1xcdWQ4MDAtXFx1ZGZmZl0iXS5qb2luKCJ8IikrIikiLEJ6dD1SZWdFeHAoTHp0KyIoPz0iK0x6dCsiKXwiK0R6dCt6enQsImciKSxIenQ9Q3p0LEZ6dD1BTHQsVnp0PVpQdCxVenQ9Tkx0LGp6dD1mdW5jdGlvbiBHenQodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIEF6dC50ZXN0KHQpfSkodCk/KGZ1bmN0aW9uIG4odCl7Zm9yKHZhciBlPUJ6dC5sYXN0SW5kZXg9MDtCenQudGVzdCh0KTspKytlO3JldHVybiBlfSkodCk6SHp0KHQpfSxXenQ9eWt0LHF6dD1mTnQsWXp0PXNJdCxYenQ9SU90LCR6dD1oUHQsS3p0PVdrdCxaenQ9cWt0LmV4cG9ydHMsSnp0PV9BdCxRenQ9cEF0LHREdD1jTHQsZUR0PUdrdCxuRHQ9V2t0LGlEdD1yQXQ/ckF0LmlzQ29uY2F0U3ByZWFkYWJsZTp2b2lkIDAsckR0PWNQdCxvRHQ9ZnVuY3Rpb24gYUR0KHQpe3JldHVybiBuRHQodCl8fGVEdCh0KXx8ISEoaUR0JiZ0JiZ0W2lEdF0pfSxzRHQ9ZnVuY3Rpb24gdChlLG4saSxyLG8pe3ZhciBhPS0xLHM9ZS5sZW5ndGg7Zm9yKGl8fChpPW9EdCksb3x8KG89W10pOysrYTxzOyl7dmFyIGw9ZVthXTtuPjAmJmkobCk/bj4xP3QobCxuLTEsaSxyLG8pOnJEdChvLGwpOnJ8fChvW28ubGVuZ3RoXT1sKX1yZXR1cm4gb30sbER0PWZ1bmN0aW9uIGNEdCh0LGUsbil7c3dpdGNoKG4ubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHQuY2FsbChlKTtjYXNlIDE6cmV0dXJuIHQuY2FsbChlLG5bMF0pO2Nhc2UgMjpyZXR1cm4gdC5jYWxsKGUsblswXSxuWzFdKTtjYXNlIDM6cmV0dXJuIHQuY2FsbChlLG5bMF0sblsxXSxuWzJdKX1yZXR1cm4gdC5hcHBseShlLG4pfSx1RHQ9TWF0aC5tYXgsaER0PWZ1bmN0aW9uIGREdCh0LGUsbil7cmV0dXJuIGU9dUR0KHZvaWQgMD09PWU/dC5sZW5ndGgtMTplLDApLGZ1bmN0aW9uKCl7Zm9yKHZhciBpPWFyZ3VtZW50cyxyPS0xLG89dUR0KGkubGVuZ3RoLWUsMCksYT1BcnJheShvKTsrK3I8bzspYVtyXT1pW2Urcl07cj0tMTtmb3IodmFyIHM9QXJyYXkoZSsxKTsrK3I8ZTspc1tyXT1pW3JdO3JldHVybiBzW2VdPW4oYSksbER0KHQsdGhpcyxzKX19LHBEdD1lSXQsZkR0PXhrdCxtRHQ9RGF0ZS5ub3csZ0R0PShmdW5jdGlvbiBfRHQodCl7dmFyIGU9MCxuPTA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9bUR0KCkscj0xNi0oaS1uKTtpZihuPWkscj4wKXtpZigrK2U+PTgwMClyZXR1cm4gYXJndW1lbnRzWzBdfWVsc2UgZT0wO3JldHVybiB0LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX0pKGZEdD9mdW5jdGlvbih0LGUpe3JldHVybiBmRHQodCwidG9TdHJpbmciLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTpwRHQoZSksd3JpdGFibGU6ITB9KX06ZEl0KSx5RHQ9ZEl0LHZEdD1oRHQsYkR0PWdEdCx4RHQ9ZnVuY3Rpb24gd0R0KHQsZSl7cmV0dXJuIGJEdCh2RHQodCxlLHlEdCksdCsiIil9LFNEdD1mdW5jdGlvbiBNRHQodCxlLG4saSl7Zm9yKHZhciByPXQubGVuZ3RoLG89bisoaT8xOi0xKTtpP28tLTorK288cjspaWYoZSh0W29dLG8sdCkpcmV0dXJuIG87cmV0dXJuLTF9LEVEdD1TRHQsVER0PWZ1bmN0aW9uIENEdCh0KXtyZXR1cm4gdCE9dH0sQUR0PU5QdCxrRHQ9QUR0JiYxL0JJdChuZXcgQUR0KFssLTBdKSlbMV09PTEvMD9mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEFEdCh0KX06ZnVuY3Rpb24gTER0KCl7fSxQRHQ9a0l0LE5EdD1mdW5jdGlvbiBJRHQodCxlKXtyZXR1cm4hKG51bGw9PXR8fCF0Lmxlbmd0aCkmJihmdW5jdGlvbiBuKHQsZSxpKXtyZXR1cm4gZT09ZT8oZnVuY3Rpb24gcih0LGUsbil7Zm9yKHZhciBpPW4tMSxyPXQubGVuZ3RoOysraTxyOylpZih0W2ldPT09ZSlyZXR1cm4gaTtyZXR1cm4tMX0pKHQsZSxpKTpFRHQodCxURHQsaSl9KSh0LGUsMCk+LTF9LFJEdD1mdW5jdGlvbiBPRHQodCxlLG4pe2Zvcih2YXIgaT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK2k8cjspaWYobihlLHRbaV0pKXJldHVybiEwO3JldHVybiExfSx6RHQ9TEl0LEREdD1rRHQsQkR0PUJJdCxIRHQ9Tkx0LEZEdD1Sa3QsVkR0PWZ1bmN0aW9uIFVEdCh0KXtyZXR1cm4gRkR0KHQpJiZIRHQodCl9LGpEdD1zRHQsR0R0PVZEdCxXRHQ9eER0KChmdW5jdGlvbih0KXtyZXR1cm4oZnVuY3Rpb24gZSh0LG4saSl7dmFyIHI9LTEsbz1ORHQsYT10Lmxlbmd0aCxzPSEwLGw9W10sYz1sO2lmKGkpcz0hMSxvPVJEdDtlbHNlIGlmKGE+PTIwMCl7dmFyIHU9bj9udWxsOkREdCh0KTtpZih1KXJldHVybiBCRHQodSk7cz0hMSxvPXpEdCxjPW5ldyBQRHR9ZWxzZSBjPW4/W106bDt0OmZvcig7KytyPGE7KXt2YXIgaD10W3JdLGQ9bj9uKGgpOmg7aWYoaD1pfHwwIT09aD9oOjAscyYmZD09ZCl7Zm9yKHZhciBwPWMubGVuZ3RoO3AtLTspaWYoY1twXT09PWQpY29udGludWUgdDtuJiZjLnB1c2goZCksbC5wdXNoKGgpfWVsc2UgbyhjLGQsaSl8fChjIT09bCYmYy5wdXNoKGQpLGwucHVzaChoKSl9cmV0dXJuIGx9KShqRHQodCwxLEdEdCwhMCkpfSkpLHFEdD16UnQsWUR0PURMdCxYRHQ9ZnVuY3Rpb24gJER0KHQpe3JldHVybiBudWxsPT10P1tdOihmdW5jdGlvbiBlKHQsbil7cmV0dXJuIHFEdChuLChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKX0pKHQsWUR0KHQpKX07dHJ5e0xSdD17Y2xvbmU6ZnVuY3Rpb24gS0R0KHQpe3JldHVybiB0SXQodCw0KX0sY29uc3RhbnQ6ZUl0LGVhY2g6U0l0LGZpbHRlcjpGT3QsaGFzOnFPdCxpc0FycmF5OldrdCxpc0VtcHR5OmZ1bmN0aW9uIFpEdCh0KXtpZihudWxsPT10KXJldHVybiEwO2lmKEpPdCh0KSYmKFpPdCh0KXx8InN0cmluZyI9PXR5cGVvZiB0fHwiZnVuY3Rpb24iPT10eXBlb2YgdC5zcGxpY2V8fFFPdCh0KXx8ZXp0KHQpfHxLT3QodCkpKXJldHVybiF0Lmxlbmd0aDt2YXIgZT0kT3QodCk7aWYoIltvYmplY3QgTWFwXSI9PWV8fCJbb2JqZWN0IFNldF0iPT1lKXJldHVybiF0LnNpemU7aWYodHp0KHQpKXJldHVybiFYT3QodCkubGVuZ3RoO2Zvcih2YXIgbiBpbiB0KWlmKG56dC5jYWxsKHQsbikpcmV0dXJuITE7cmV0dXJuITB9LGlzRnVuY3Rpb246X0F0LGlzVW5kZWZpbmVkOml6dCxrZXlzOkRMdCxtYXA6cHp0LHJlZHVjZTp3enQsc2l6ZTpmdW5jdGlvbiBKRHQodCl7aWYobnVsbD09dClyZXR1cm4gMDtpZihVenQodCkpcmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHwhRXp0KHQpJiZUenQodCkmJiJbb2JqZWN0IFN0cmluZ10iPT1NenQodCl9KSh0KT9qenQodCk6dC5sZW5ndGg7dmFyIG49Vnp0KHQpO3JldHVybiJbb2JqZWN0IE1hcF0iPT1ufHwiW29iamVjdCBTZXRdIj09bj90LnNpemU6Rnp0KHQpLmxlbmd0aH0sdHJhbnNmb3JtOmZ1bmN0aW9uIFFEdCh0LGUsbil7dmFyIGk9S3p0KHQpLHI9aXx8Wnp0KHQpfHx0RHQodCk7aWYoZT1YenQoZSksbnVsbD09bil7dmFyIG89dCYmdC5jb25zdHJ1Y3RvcjtuPXI/aT9uZXcgbzpbXTpRenQodCkmJkp6dChvKT9xenQoJHp0KHQpKTp7fX1yZXR1cm4ocj9XenQ6WXp0KSh0LChmdW5jdGlvbih0LGkscil7cmV0dXJuIGUobix0LGkscil9KSksbn0sdW5pb246V0R0LHZhbHVlczpYRHR9fWNhdGNoKHQpe31MUnR8fChMUnQ9d2luZG93Ll8pO3ZhciB0QnQ9TFJ0LGVCdD10QnQsbkJ0PXJCdCxpQnQ9IlwwIjtmdW5jdGlvbiByQnQodCl7dGhpcy5faXNEaXJlY3RlZD0hZUJ0Lmhhcyh0LCJkaXJlY3RlZCIpfHx0LmRpcmVjdGVkLHRoaXMuX2lzTXVsdGlncmFwaD0hIWVCdC5oYXModCwibXVsdGlncmFwaCIpJiZ0Lm11bHRpZ3JhcGgsdGhpcy5faXNDb21wb3VuZD0hIWVCdC5oYXModCwiY29tcG91bmQiKSYmdC5jb21wb3VuZCx0aGlzLl9sYWJlbD12b2lkIDAsdGhpcy5fZGVmYXVsdE5vZGVMYWJlbEZuPWVCdC5jb25zdGFudCh2b2lkIDApLHRoaXMuX2RlZmF1bHRFZGdlTGFiZWxGbj1lQnQuY29uc3RhbnQodm9pZCAwKSx0aGlzLl9ub2Rlcz17fSx0aGlzLl9pc0NvbXBvdW5kJiYodGhpcy5fcGFyZW50PXt9LHRoaXMuX2NoaWxkcmVuPXt9LHRoaXMuX2NoaWxkcmVuWyJcMCJdPXt9KSx0aGlzLl9pbj17fSx0aGlzLl9wcmVkcz17fSx0aGlzLl9vdXQ9e30sdGhpcy5fc3Vjcz17fSx0aGlzLl9lZGdlT2Jqcz17fSx0aGlzLl9lZGdlTGFiZWxzPXt9fWZ1bmN0aW9uIG9CdCh0LGUpe3RbZV0/dFtlXSsrOnRbZV09MX1mdW5jdGlvbiBhQnQodCxlKXstLXRbZV18fGRlbGV0ZSB0W2VdfWZ1bmN0aW9uIHNCdCh0LGUsbixpKXt2YXIgcj0iIitlLG89IiIrbjtpZighdCYmcj5vKXt2YXIgYT1yO3I9byxvPWF9cmV0dXJuIHIrIgEiK28rIgEiKyhlQnQuaXNVbmRlZmluZWQoaSk/IlwwIjppKX1mdW5jdGlvbiBsQnQodCxlLG4saSl7dmFyIHI9IiIrZSxvPSIiK247aWYoIXQmJnI+byl7dmFyIGE9cjtyPW8sbz1hfXZhciBzPXt2OnIsdzpvfTtyZXR1cm4gaSYmKHMubmFtZT1pKSxzfWZ1bmN0aW9uIGNCdCh0LGUpe3JldHVybiBzQnQodCxlLnYsZS53LGUubmFtZSl9ckJ0LnByb3RvdHlwZS5fbm9kZUNvdW50PTAsckJ0LnByb3RvdHlwZS5fZWRnZUNvdW50PTAsckJ0LnByb3RvdHlwZS5pc0RpcmVjdGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzRGlyZWN0ZWR9LHJCdC5wcm90b3R5cGUuaXNNdWx0aWdyYXBoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzTXVsdGlncmFwaH0sckJ0LnByb3RvdHlwZS5pc0NvbXBvdW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzQ29tcG91bmR9LHJCdC5wcm90b3R5cGUuc2V0R3JhcGg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2xhYmVsPXQsdGhpc30sckJ0LnByb3RvdHlwZS5ncmFwaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYWJlbH0sckJ0LnByb3RvdHlwZS5zZXREZWZhdWx0Tm9kZUxhYmVsPWZ1bmN0aW9uKHQpe3JldHVybiBlQnQuaXNGdW5jdGlvbih0KXx8KHQ9ZUJ0LmNvbnN0YW50KHQpKSx0aGlzLl9kZWZhdWx0Tm9kZUxhYmVsRm49dCx0aGlzfSxyQnQucHJvdG90eXBlLm5vZGVDb3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ub2RlQ291bnR9LHJCdC5wcm90b3R5cGUubm9kZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZUJ0LmtleXModGhpcy5fbm9kZXMpfSxyQnQucHJvdG90eXBlLnNvdXJjZXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBlQnQuZmlsdGVyKHRoaXMubm9kZXMoKSwoZnVuY3Rpb24oZSl7cmV0dXJuIGVCdC5pc0VtcHR5KHQuX2luW2VdKX0pKX0sckJ0LnByb3RvdHlwZS5zaW5rcz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIGVCdC5maWx0ZXIodGhpcy5ub2RlcygpLChmdW5jdGlvbihlKXtyZXR1cm4gZUJ0LmlzRW1wdHkodC5fb3V0W2VdKX0pKX0sckJ0LnByb3RvdHlwZS5zZXROb2Rlcz1mdW5jdGlvbih0LGUpe3ZhciBuPWFyZ3VtZW50cyxpPXRoaXM7cmV0dXJuIGVCdC5lYWNoKHQsKGZ1bmN0aW9uKHQpe24ubGVuZ3RoPjE/aS5zZXROb2RlKHQsZSk6aS5zZXROb2RlKHQpfSkpLHRoaXN9LHJCdC5wcm90b3R5cGUuc2V0Tm9kZT1mdW5jdGlvbih0LGUpe3JldHVybiBlQnQuaGFzKHRoaXMuX25vZGVzLHQpPyhhcmd1bWVudHMubGVuZ3RoPjEmJih0aGlzLl9ub2Rlc1t0XT1lKSx0aGlzKToodGhpcy5fbm9kZXNbdF09YXJndW1lbnRzLmxlbmd0aD4xP2U6dGhpcy5fZGVmYXVsdE5vZGVMYWJlbEZuKHQpLHRoaXMuX2lzQ29tcG91bmQmJih0aGlzLl9wYXJlbnRbdF09aUJ0LHRoaXMuX2NoaWxkcmVuW3RdPXt9LHRoaXMuX2NoaWxkcmVuWyJcMCJdW3RdPSEwKSx0aGlzLl9pblt0XT17fSx0aGlzLl9wcmVkc1t0XT17fSx0aGlzLl9vdXRbdF09e30sdGhpcy5fc3Vjc1t0XT17fSwrK3RoaXMuX25vZGVDb3VudCx0aGlzKX0sckJ0LnByb3RvdHlwZS5ub2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ub2Rlc1t0XX0sckJ0LnByb3RvdHlwZS5oYXNOb2RlPWZ1bmN0aW9uKHQpe3JldHVybiBlQnQuaGFzKHRoaXMuX25vZGVzLHQpfSxyQnQucHJvdG90eXBlLnJlbW92ZU5vZGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihlQnQuaGFzKHRoaXMuX25vZGVzLHQpKXt2YXIgbj1mdW5jdGlvbih0KXtlLnJlbW92ZUVkZ2UoZS5fZWRnZU9ianNbdF0pfTtkZWxldGUgdGhpcy5fbm9kZXNbdF0sdGhpcy5faXNDb21wb3VuZCYmKHRoaXMuX3JlbW92ZUZyb21QYXJlbnRzQ2hpbGRMaXN0KHQpLGRlbGV0ZSB0aGlzLl9wYXJlbnRbdF0sZUJ0LmVhY2godGhpcy5jaGlsZHJlbih0KSwoZnVuY3Rpb24odCl7ZS5zZXRQYXJlbnQodCl9KSksZGVsZXRlIHRoaXMuX2NoaWxkcmVuW3RdKSxlQnQuZWFjaChlQnQua2V5cyh0aGlzLl9pblt0XSksbiksZGVsZXRlIHRoaXMuX2luW3RdLGRlbGV0ZSB0aGlzLl9wcmVkc1t0XSxlQnQuZWFjaChlQnQua2V5cyh0aGlzLl9vdXRbdF0pLG4pLGRlbGV0ZSB0aGlzLl9vdXRbdF0sZGVsZXRlIHRoaXMuX3N1Y3NbdF0sLS10aGlzLl9ub2RlQ291bnR9cmV0dXJuIHRoaXN9LHJCdC5wcm90b3R5cGUuc2V0UGFyZW50PWZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuX2lzQ29tcG91bmQpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2V0IHBhcmVudCBpbiBhIG5vbi1jb21wb3VuZCBncmFwaCIpO2lmKGVCdC5pc1VuZGVmaW5lZChlKSllPWlCdDtlbHNle2Zvcih2YXIgbj1lKz0iIjshZUJ0LmlzVW5kZWZpbmVkKG4pO249dGhpcy5wYXJlbnQobikpaWYobj09PXQpdGhyb3cgbmV3IEVycm9yKCJTZXR0aW5nICIrZSsiIGFzIHBhcmVudCBvZiAiK3QrIiB3b3VsZCBjcmVhdGUgYSBjeWNsZSIpO3RoaXMuc2V0Tm9kZShlKX1yZXR1cm4gdGhpcy5zZXROb2RlKHQpLHRoaXMuX3JlbW92ZUZyb21QYXJlbnRzQ2hpbGRMaXN0KHQpLHRoaXMuX3BhcmVudFt0XT1lLHRoaXMuX2NoaWxkcmVuW2VdW3RdPSEwLHRoaXN9LHJCdC5wcm90b3R5cGUuX3JlbW92ZUZyb21QYXJlbnRzQ2hpbGRMaXN0PWZ1bmN0aW9uKHQpe2RlbGV0ZSB0aGlzLl9jaGlsZHJlblt0aGlzLl9wYXJlbnRbdF1dW3RdfSxyQnQucHJvdG90eXBlLnBhcmVudD1mdW5jdGlvbih0KXtpZih0aGlzLl9pc0NvbXBvdW5kKXt2YXIgZT10aGlzLl9wYXJlbnRbdF07aWYoZSE9PWlCdClyZXR1cm4gZX19LHJCdC5wcm90b3R5cGUuY2hpbGRyZW49ZnVuY3Rpb24odCl7aWYoZUJ0LmlzVW5kZWZpbmVkKHQpJiYodD1pQnQpLHRoaXMuX2lzQ29tcG91bmQpe3ZhciBlPXRoaXMuX2NoaWxkcmVuW3RdO2lmKGUpcmV0dXJuIGVCdC5rZXlzKGUpfWVsc2V7aWYodD09PWlCdClyZXR1cm4gdGhpcy5ub2RlcygpO2lmKHRoaXMuaGFzTm9kZSh0KSlyZXR1cm5bXX19LHJCdC5wcm90b3R5cGUucHJlZGVjZXNzb3JzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ByZWRzW3RdO2lmKGUpcmV0dXJuIGVCdC5rZXlzKGUpfSxyQnQucHJvdG90eXBlLnN1Y2Nlc3NvcnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fc3Vjc1t0XTtpZihlKXJldHVybiBlQnQua2V5cyhlKX0sckJ0LnByb3RvdHlwZS5uZWlnaGJvcnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5wcmVkZWNlc3NvcnModCk7aWYoZSlyZXR1cm4gZUJ0LnVuaW9uKGUsdGhpcy5zdWNjZXNzb3JzKHQpKX0sckJ0LnByb3RvdHlwZS5pc0xlYWY9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT0odGhpcy5pc0RpcmVjdGVkKCk/dGhpcy5zdWNjZXNzb3JzKHQpOnRoaXMubmVpZ2hib3JzKHQpKS5sZW5ndGh9LHJCdC5wcm90b3R5cGUuZmlsdGVyTm9kZXM9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IHRoaXMuY29uc3RydWN0b3Ioe2RpcmVjdGVkOnRoaXMuX2lzRGlyZWN0ZWQsbXVsdGlncmFwaDp0aGlzLl9pc011bHRpZ3JhcGgsY29tcG91bmQ6dGhpcy5faXNDb21wb3VuZH0pO2Uuc2V0R3JhcGgodGhpcy5ncmFwaCgpKTt2YXIgbj10aGlzO2VCdC5lYWNoKHRoaXMuX25vZGVzLChmdW5jdGlvbihuLGkpe3QoaSkmJmUuc2V0Tm9kZShpLG4pfSkpLGVCdC5lYWNoKHRoaXMuX2VkZ2VPYmpzLChmdW5jdGlvbih0KXtlLmhhc05vZGUodC52KSYmZS5oYXNOb2RlKHQudykmJmUuc2V0RWRnZSh0LG4uZWRnZSh0KSl9KSk7dmFyIGk9e307ZnVuY3Rpb24gcih0KXt2YXIgbz1uLnBhcmVudCh0KTtyZXR1cm4gdm9pZCAwPT09b3x8ZS5oYXNOb2RlKG8pPyhpW3RdPW8sbyk6byBpbiBpP2lbb106cihvKX1yZXR1cm4gdGhpcy5faXNDb21wb3VuZCYmZUJ0LmVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXtlLnNldFBhcmVudCh0LHIodCkpfSkpLGV9LHJCdC5wcm90b3R5cGUuc2V0RGVmYXVsdEVkZ2VMYWJlbD1mdW5jdGlvbih0KXtyZXR1cm4gZUJ0LmlzRnVuY3Rpb24odCl8fCh0PWVCdC5jb25zdGFudCh0KSksdGhpcy5fZGVmYXVsdEVkZ2VMYWJlbEZuPXQsdGhpc30sckJ0LnByb3RvdHlwZS5lZGdlQ291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWRnZUNvdW50fSxyQnQucHJvdG90eXBlLmVkZ2VzPWZ1bmN0aW9uKCl7cmV0dXJuIGVCdC52YWx1ZXModGhpcy5fZWRnZU9ianMpfSxyQnQucHJvdG90eXBlLnNldFBhdGg9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLGk9YXJndW1lbnRzO3JldHVybiBlQnQucmVkdWNlKHQsKGZ1bmN0aW9uKHQscil7cmV0dXJuIGkubGVuZ3RoPjE/bi5zZXRFZGdlKHQscixlKTpuLnNldEVkZ2UodCxyKSxyfSkpLHRoaXN9LHJCdC5wcm90b3R5cGUuc2V0RWRnZT1mdW5jdGlvbigpe3ZhciB0LGUsbixpLHI9ITEsbz1hcmd1bWVudHNbMF07Im9iamVjdCI9PXR5cGVvZiBvJiZudWxsIT09byYmInYiaW4gbz8odD1vLnYsZT1vLncsbj1vLm5hbWUsMj09PWFyZ3VtZW50cy5sZW5ndGgmJihpPWFyZ3VtZW50c1sxXSxyPSEwKSk6KHQ9byxlPWFyZ3VtZW50c1sxXSxuPWFyZ3VtZW50c1szXSxhcmd1bWVudHMubGVuZ3RoPjImJihpPWFyZ3VtZW50c1syXSxyPSEwKSksdD0iIit0LGU9IiIrZSxlQnQuaXNVbmRlZmluZWQobil8fChuPSIiK24pO3ZhciBhPXNCdCh0aGlzLl9pc0RpcmVjdGVkLHQsZSxuKTtpZihlQnQuaGFzKHRoaXMuX2VkZ2VMYWJlbHMsYSkpcmV0dXJuIHImJih0aGlzLl9lZGdlTGFiZWxzW2FdPWkpLHRoaXM7aWYoIWVCdC5pc1VuZGVmaW5lZChuKSYmIXRoaXMuX2lzTXVsdGlncmFwaCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXQgYSBuYW1lZCBlZGdlIHdoZW4gaXNNdWx0aWdyYXBoID0gZmFsc2UiKTt0aGlzLnNldE5vZGUodCksdGhpcy5zZXROb2RlKGUpLHRoaXMuX2VkZ2VMYWJlbHNbYV09cj9pOnRoaXMuX2RlZmF1bHRFZGdlTGFiZWxGbih0LGUsbik7dmFyIHM9bEJ0KHRoaXMuX2lzRGlyZWN0ZWQsdCxlLG4pO3JldHVybiB0PXMudixlPXMudyxPYmplY3QuZnJlZXplKHMpLHRoaXMuX2VkZ2VPYmpzW2FdPXMsb0J0KHRoaXMuX3ByZWRzW2VdLHQpLG9CdCh0aGlzLl9zdWNzW3RdLGUpLHRoaXMuX2luW2VdW2FdPXMsdGhpcy5fb3V0W3RdW2FdPXMsdGhpcy5fZWRnZUNvdW50KyssdGhpc30sckJ0LnByb3RvdHlwZS5lZGdlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0xPT09YXJndW1lbnRzLmxlbmd0aD9jQnQodGhpcy5faXNEaXJlY3RlZCxhcmd1bWVudHNbMF0pOnNCdCh0aGlzLl9pc0RpcmVjdGVkLHQsZSxuKTtyZXR1cm4gdGhpcy5fZWRnZUxhYmVsc1tpXX0sckJ0LnByb3RvdHlwZS5oYXNFZGdlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0xPT09YXJndW1lbnRzLmxlbmd0aD9jQnQodGhpcy5faXNEaXJlY3RlZCxhcmd1bWVudHNbMF0pOnNCdCh0aGlzLl9pc0RpcmVjdGVkLHQsZSxuKTtyZXR1cm4gZUJ0Lmhhcyh0aGlzLl9lZGdlTGFiZWxzLGkpfSxyQnQucHJvdG90eXBlLnJlbW92ZUVkZ2U9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPTE9PT1hcmd1bWVudHMubGVuZ3RoP2NCdCh0aGlzLl9pc0RpcmVjdGVkLGFyZ3VtZW50c1swXSk6c0J0KHRoaXMuX2lzRGlyZWN0ZWQsdCxlLG4pLHI9dGhpcy5fZWRnZU9ianNbaV07cmV0dXJuIHImJih0PXIudixlPXIudyxkZWxldGUgdGhpcy5fZWRnZUxhYmVsc1tpXSxkZWxldGUgdGhpcy5fZWRnZU9ianNbaV0sYUJ0KHRoaXMuX3ByZWRzW2VdLHQpLGFCdCh0aGlzLl9zdWNzW3RdLGUpLGRlbGV0ZSB0aGlzLl9pbltlXVtpXSxkZWxldGUgdGhpcy5fb3V0W3RdW2ldLHRoaXMuX2VkZ2VDb3VudC0tKSx0aGlzfSxyQnQucHJvdG90eXBlLmluRWRnZXM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9pblt0XTtpZihuKXt2YXIgaT1lQnQudmFsdWVzKG4pO3JldHVybiBlP2VCdC5maWx0ZXIoaSwoZnVuY3Rpb24odCl7cmV0dXJuIHQudj09PWV9KSk6aX19LHJCdC5wcm90b3R5cGUub3V0RWRnZXM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9vdXRbdF07aWYobil7dmFyIGk9ZUJ0LnZhbHVlcyhuKTtyZXR1cm4gZT9lQnQuZmlsdGVyKGksKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnc9PT1lfSkpOml9fSxyQnQucHJvdG90eXBlLm5vZGVFZGdlcz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuaW5FZGdlcyh0LGUpO2lmKG4pcmV0dXJuIG4uY29uY2F0KHRoaXMub3V0RWRnZXModCxlKSl9O3ZhciB1QnQ9e0dyYXBoOm5CdCx2ZXJzaW9uOiIyLjEuOCJ9LGhCdD10QnQsZEJ0PW5CdCxwQnQ9e3dyaXRlOmZ1bmN0aW9uIGZCdCh0KXt2YXIgZT17b3B0aW9uczp7ZGlyZWN0ZWQ6dC5pc0RpcmVjdGVkKCksbXVsdGlncmFwaDp0LmlzTXVsdGlncmFwaCgpLGNvbXBvdW5kOnQuaXNDb21wb3VuZCgpfSxub2RlczpnQnQodCksZWRnZXM6X0J0KHQpfTtyZXR1cm4gaEJ0LmlzVW5kZWZpbmVkKHQuZ3JhcGgoKSl8fChlLnZhbHVlPWhCdC5jbG9uZSh0LmdyYXBoKCkpKSxlfSxyZWFkOmZ1bmN0aW9uIG1CdCh0KXt2YXIgZT1uZXcgZEJ0KHQub3B0aW9ucykuc2V0R3JhcGgodC52YWx1ZSk7cmV0dXJuIGhCdC5lYWNoKHQubm9kZXMsKGZ1bmN0aW9uKHQpe2Uuc2V0Tm9kZSh0LnYsdC52YWx1ZSksdC5wYXJlbnQmJmUuc2V0UGFyZW50KHQudix0LnBhcmVudCl9KSksaEJ0LmVhY2godC5lZGdlcywoZnVuY3Rpb24odCl7ZS5zZXRFZGdlKHt2OnQudix3OnQudyxuYW1lOnQubmFtZX0sdC52YWx1ZSl9KSksZX19O2Z1bmN0aW9uIGdCdCh0KXtyZXR1cm4gaEJ0Lm1hcCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe3ZhciBuPXQubm9kZShlKSxpPXQucGFyZW50KGUpLHI9e3Y6ZX07cmV0dXJuIGhCdC5pc1VuZGVmaW5lZChuKXx8KHIudmFsdWU9biksaEJ0LmlzVW5kZWZpbmVkKGkpfHwoci5wYXJlbnQ9aSkscn0pKX1mdW5jdGlvbiBfQnQodCl7cmV0dXJuIGhCdC5tYXAodC5lZGdlcygpLChmdW5jdGlvbihlKXt2YXIgbj10LmVkZ2UoZSksaT17djplLnYsdzplLnd9O3JldHVybiBoQnQuaXNVbmRlZmluZWQoZS5uYW1lKXx8KGkubmFtZT1lLm5hbWUpLGhCdC5pc1VuZGVmaW5lZChuKXx8KGkudmFsdWU9biksaX0pKX12YXIgeUJ0PXRCdCx2QnQ9dEJ0LGJCdD14QnQ7ZnVuY3Rpb24geEJ0KCl7dGhpcy5fYXJyPVtdLHRoaXMuX2tleUluZGljZXM9e319eEJ0LnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Fyci5sZW5ndGh9LHhCdC5wcm90b3R5cGUua2V5cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcnIubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXl9KSl9LHhCdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB2QnQuaGFzKHRoaXMuX2tleUluZGljZXMsdCl9LHhCdC5wcm90b3R5cGUucHJpb3JpdHk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fa2V5SW5kaWNlc1t0XTtpZih2b2lkIDAhPT1lKXJldHVybiB0aGlzLl9hcnJbZV0ucHJpb3JpdHl9LHhCdC5wcm90b3R5cGUubWluPWZ1bmN0aW9uKCl7aWYoMD09PXRoaXMuc2l6ZSgpKXRocm93IG5ldyBFcnJvcigiUXVldWUgdW5kZXJmbG93Iik7cmV0dXJuIHRoaXMuX2FyclswXS5rZXl9LHhCdC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fa2V5SW5kaWNlcztpZih0PVN0cmluZyh0KSwhdkJ0LmhhcyhuLHQpKXt2YXIgaT10aGlzLl9hcnIscj1pLmxlbmd0aDtyZXR1cm4gblt0XT1yLGkucHVzaCh7a2V5OnQscHJpb3JpdHk6ZX0pLHRoaXMuX2RlY3JlYXNlKHIpLCEwfXJldHVybiExfSx4QnQucHJvdG90eXBlLnJlbW92ZU1pbj1mdW5jdGlvbigpe3RoaXMuX3N3YXAoMCx0aGlzLl9hcnIubGVuZ3RoLTEpO3ZhciB0PXRoaXMuX2Fyci5wb3AoKTtyZXR1cm4gZGVsZXRlIHRoaXMuX2tleUluZGljZXNbdC5rZXldLHRoaXMuX2hlYXBpZnkoMCksdC5rZXl9LHhCdC5wcm90b3R5cGUuZGVjcmVhc2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9rZXlJbmRpY2VzW3RdO2lmKGU+dGhpcy5fYXJyW25dLnByaW9yaXR5KXRocm93IG5ldyBFcnJvcigiTmV3IHByaW9yaXR5IGlzIGdyZWF0ZXIgdGhhbiBjdXJyZW50IHByaW9yaXR5LiBLZXk6ICIrdCsiIE9sZDogIit0aGlzLl9hcnJbbl0ucHJpb3JpdHkrIiBOZXc6ICIrZSk7dGhpcy5fYXJyW25dLnByaW9yaXR5PWUsdGhpcy5fZGVjcmVhc2Uobil9LHhCdC5wcm90b3R5cGUuX2hlYXBpZnk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYXJyLG49Mip0LGk9bisxLHI9dDtuPGUubGVuZ3RoJiYocj1lW25dLnByaW9yaXR5PGVbcl0ucHJpb3JpdHk/bjpyLGk8ZS5sZW5ndGgmJihyPWVbaV0ucHJpb3JpdHk8ZVtyXS5wcmlvcml0eT9pOnIpLHIhPT10JiYodGhpcy5fc3dhcCh0LHIpLHRoaXMuX2hlYXBpZnkocikpKX0seEJ0LnByb3RvdHlwZS5fZGVjcmVhc2U9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dGhpcy5fYXJyLGk9blt0XS5wcmlvcml0eTswIT09dCYmIShuW2U9dD4+MV0ucHJpb3JpdHk8aSk7KXRoaXMuX3N3YXAodCxlKSx0PWV9LHhCdC5wcm90b3R5cGUuX3N3YXA9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9hcnIsaT10aGlzLl9rZXlJbmRpY2VzLHI9blt0XSxvPW5bZV07blt0XT1vLG5bZV09cixpW28ua2V5XT10LGlbci5rZXldPWV9O3ZhciB3QnQ9YkJ0LFNCdD1mdW5jdGlvbiBNQnQodCxlLG4saSl7cmV0dXJuKGZ1bmN0aW9uIHIodCxlLG4saSl7dmFyIHIsbyxhPXt9LHM9bmV3IHdCdCxsPWZ1bmN0aW9uKHQpe3ZhciBlPXQudiE9PXI/dC52OnQudyxpPWFbZV0sbD1uKHQpLGM9by5kaXN0YW5jZStsO2lmKGw8MCl0aHJvdyBuZXcgRXJyb3IoImRpamtzdHJhIGRvZXMgbm90IGFsbG93IG5lZ2F0aXZlIGVkZ2Ugd2VpZ2h0cy4gQmFkIGVkZ2U6ICIrdCsiIFdlaWdodDogIitsKTtjPGkuZGlzdGFuY2UmJihpLmRpc3RhbmNlPWMsaS5wcmVkZWNlc3Nvcj1yLHMuZGVjcmVhc2UoZSxjKSl9O2Zvcih0Lm5vZGVzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dD09PWU/MDpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7YVt0XT17ZGlzdGFuY2U6bn0scy5hZGQodCxuKX0pKTtzLnNpemUoKT4wJiYocj1zLnJlbW92ZU1pbigpLChvPWFbcl0pLmRpc3RhbmNlIT09TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTspaShyKS5mb3JFYWNoKGwpO3JldHVybiBhfSkodCxTdHJpbmcoZSksbnx8RUJ0LGl8fGZ1bmN0aW9uKGUpe3JldHVybiB0Lm91dEVkZ2VzKGUpfSl9LEVCdD10QnQuY29uc3RhbnQoMSksVEJ0PVNCdCxDQnQ9dEJ0LEFCdD10QnQsa0J0PWZ1bmN0aW9uIExCdCh0KXt2YXIgZT0wLG49W10saT17fSxyPVtdO2Z1bmN0aW9uIG8oYSl7dmFyIHM9aVthXT17b25TdGFjazohMCxsb3dsaW5rOmUsaW5kZXg6ZSsrfTtpZihuLnB1c2goYSksdC5zdWNjZXNzb3JzKGEpLmZvckVhY2goKGZ1bmN0aW9uKHQpe0FCdC5oYXMoaSx0KT9pW3RdLm9uU3RhY2smJihzLmxvd2xpbms9TWF0aC5taW4ocy5sb3dsaW5rLGlbdF0uaW5kZXgpKToobyh0KSxzLmxvd2xpbms9TWF0aC5taW4ocy5sb3dsaW5rLGlbdF0ubG93bGluaykpfSkpLHMubG93bGluaz09PXMuaW5kZXgpe3ZhciBsLGM9W107ZG97bD1uLnBvcCgpLGlbbF0ub25TdGFjaz0hMSxjLnB1c2gobCl9d2hpbGUoYSE9PWwpO3IucHVzaChjKX19cmV0dXJuIHQubm9kZXMoKS5mb3JFYWNoKChmdW5jdGlvbih0KXtBQnQuaGFzKGksdCl8fG8odCl9KSkscn0sUEJ0PXRCdCxOQnQ9a0J0LElCdD10QnQuY29uc3RhbnQoMSksUkJ0PXRCdCxPQnQ9ekJ0O2Z1bmN0aW9uIHpCdCh0KXt2YXIgZT17fSxuPXt9LGk9W107aWYoUkJ0LmVhY2godC5zaW5rcygpLChmdW5jdGlvbiByKG8pe2lmKFJCdC5oYXMobixvKSl0aHJvdyBuZXcgREJ0O1JCdC5oYXMoZSxvKXx8KG5bb109ITAsZVtvXT0hMCxSQnQuZWFjaCh0LnByZWRlY2Vzc29ycyhvKSxyKSxkZWxldGUgbltvXSxpLnB1c2gobykpfSkpLFJCdC5zaXplKGUpIT09dC5ub2RlQ291bnQoKSl0aHJvdyBuZXcgREJ0O3JldHVybiBpfWZ1bmN0aW9uIERCdCgpe316QnQuQ3ljbGVFeGNlcHRpb249REJ0LERCdC5wcm90b3R5cGU9bmV3IEVycm9yO3ZhciBCQnQ9T0J0LEhCdD10QnQsRkJ0PWZ1bmN0aW9uIFZCdCh0LGUsbil7SEJ0LmlzQXJyYXkoZSl8fChlPVtlXSk7dmFyIGk9KHQuaXNEaXJlY3RlZCgpP3Quc3VjY2Vzc29yczp0Lm5laWdoYm9ycykuYmluZCh0KSxyPVtdLG89e307cmV0dXJuIEhCdC5lYWNoKGUsKGZ1bmN0aW9uKGUpe2lmKCF0Lmhhc05vZGUoZSkpdGhyb3cgbmV3IEVycm9yKCJHcmFwaCBkb2VzIG5vdCBoYXZlIG5vZGU6ICIrZSk7VUJ0KHQsZSwicG9zdCI9PT1uLG8saSxyKX0pKSxyfTtmdW5jdGlvbiBVQnQodCxlLG4saSxyLG8pe0hCdC5oYXMoaSxlKXx8KGlbZV09ITAsbnx8by5wdXNoKGUpLEhCdC5lYWNoKHIoZSksKGZ1bmN0aW9uKGUpe1VCdCh0LGUsbixpLHIsbyl9KSksbiYmby5wdXNoKGUpKX12YXIgakJ0LEdCdD1GQnQsV0J0PUZCdCxxQnQ9dEJ0LFlCdD1uQnQsWEJ0PWJCdCwkQnQ9e0dyYXBoOnVCdC5HcmFwaCxqc29uOnBCdCxhbGc6e2NvbXBvbmVudHM6ZnVuY3Rpb24gS0J0KHQpe3ZhciBlLG49e30saT1bXTtmdW5jdGlvbiByKGkpe3lCdC5oYXMobixpKXx8KG5baV09ITAsZS5wdXNoKGkpLHlCdC5lYWNoKHQuc3VjY2Vzc29ycyhpKSxyKSx5QnQuZWFjaCh0LnByZWRlY2Vzc29ycyhpKSxyKSl9cmV0dXJuIHlCdC5lYWNoKHQubm9kZXMoKSwoZnVuY3Rpb24odCl7ZT1bXSxyKHQpLGUubGVuZ3RoJiZpLnB1c2goZSl9KSksaX0sZGlqa3N0cmE6U0J0LGRpamtzdHJhQWxsOmZ1bmN0aW9uIFpCdCh0LGUsbil7cmV0dXJuIENCdC50cmFuc2Zvcm0odC5ub2RlcygpLChmdW5jdGlvbihpLHIpe2lbcl09VEJ0KHQscixlLG4pfSkse30pfSxmaW5kQ3ljbGVzOmZ1bmN0aW9uIEpCdCh0KXtyZXR1cm4gUEJ0LmZpbHRlcihOQnQodCksKGZ1bmN0aW9uKGUpe3JldHVybiBlLmxlbmd0aD4xfHwxPT09ZS5sZW5ndGgmJnQuaGFzRWRnZShlWzBdLGVbMF0pfSkpfSxmbG95ZFdhcnNoYWxsOmZ1bmN0aW9uIFFCdCh0LGUsbil7cmV0dXJuKGZ1bmN0aW9uIGkodCxlLG4pe3ZhciBpPXt9LHI9dC5ub2RlcygpO3JldHVybiByLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lbdF09e30saVt0XVt0XT17ZGlzdGFuY2U6MH0sci5mb3JFYWNoKChmdW5jdGlvbihlKXt0IT09ZSYmKGlbdF1bZV09e2Rpc3RhbmNlOk51bWJlci5QT1NJVElWRV9JTkZJTklUWX0pfSkpLG4odCkuZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIHI9bi52PT09dD9uLnc6bi52LG89ZShuKTtpW3RdW3JdPXtkaXN0YW5jZTpvLHByZWRlY2Vzc29yOnR9fSkpfSkpLHIuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9aVt0XTtyLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBvPWlbbl07ci5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgaT1lW25dLHI9b1tuXSxhPW9bdF0uZGlzdGFuY2UraS5kaXN0YW5jZTthPHIuZGlzdGFuY2UmJihyLmRpc3RhbmNlPWEsci5wcmVkZWNlc3Nvcj1pLnByZWRlY2Vzc29yKX0pKX0pKX0pKSxpfSkodCxlfHxJQnQsbnx8ZnVuY3Rpb24oZSl7cmV0dXJuIHQub3V0RWRnZXMoZSl9KX0saXNBY3ljbGljOmZ1bmN0aW9uIHRIdCh0KXt0cnl7QkJ0KHQpfWNhdGNoKHQpe2lmKHQgaW5zdGFuY2VvZiBCQnQuQ3ljbGVFeGNlcHRpb24pcmV0dXJuITE7dGhyb3cgdH1yZXR1cm4hMH0scG9zdG9yZGVyOmZ1bmN0aW9uIGVIdCh0LGUpe3JldHVybiBHQnQodCxlLCJwb3N0Iil9LHByZW9yZGVyOmZ1bmN0aW9uIG5IdCh0LGUpe3JldHVybiBXQnQodCxlLCJwcmUiKX0scHJpbTpmdW5jdGlvbiBpSHQodCxlKXt2YXIgbixpPW5ldyBZQnQscj17fSxvPW5ldyBYQnQ7ZnVuY3Rpb24gYSh0KXt2YXIgaT10LnY9PT1uP3Qudzp0LnYsYT1vLnByaW9yaXR5KGkpO2lmKHZvaWQgMCE9PWEpe3ZhciBzPWUodCk7czxhJiYocltpXT1uLG8uZGVjcmVhc2UoaSxzKSl9fWlmKDA9PT10Lm5vZGVDb3VudCgpKXJldHVybiBpO3FCdC5lYWNoKHQubm9kZXMoKSwoZnVuY3Rpb24odCl7by5hZGQodCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLGkuc2V0Tm9kZSh0KX0pKSxvLmRlY3JlYXNlKHQubm9kZXMoKVswXSwwKTtmb3IodmFyIHM9ITE7by5zaXplKCk+MDspe2lmKG49by5yZW1vdmVNaW4oKSxxQnQuaGFzKHIsbikpaS5zZXRFZGdlKG4scltuXSk7ZWxzZXtpZihzKXRocm93IG5ldyBFcnJvcigiSW5wdXQgZ3JhcGggaXMgbm90IGNvbm5lY3RlZDogIit0KTtzPSEwfXQubm9kZUVkZ2VzKG4pLmZvckVhY2goYSl9cmV0dXJuIGl9LHRhcmphbjprQnQsdG9wc29ydDpPQnR9LHZlcnNpb246dUJ0LnZlcnNpb259O3RyeXtqQnQ9JEJ0fWNhdGNoKHQpe31qQnR8fChqQnQ9d2luZG93LmdyYXBobGliKTt2YXIgckh0LG9IdD1qQnQsYUh0PVFOdCxzSHQ9ekN0LGxIdD1OTHQsY0h0PUtrdCx1SHQ9cEF0LGhIdD1mdW5jdGlvbiBkSHQodCxlLG4pe2lmKCF1SHQobikpcmV0dXJuITE7dmFyIGk9dHlwZW9mIGU7cmV0dXJuISEoIm51bWJlciI9PWk/bEh0KG4pJiZjSHQoZSxuLmxlbmd0aCk6InN0cmluZyI9PWkmJmUgaW4gbikmJnNIdChuW2VdLHQpfSxwSHQ9ekN0LGZIdD1oSHQsbUh0PXFMdCxnSHQ9T2JqZWN0LnByb3RvdHlwZSxfSHQ9Z0h0Lmhhc093blByb3BlcnR5LHlIdD14RHQoKGZ1bmN0aW9uKHQsZSl7dD1PYmplY3QodCk7dmFyIG49LTEsaT1lLmxlbmd0aCxyPWk+Mj9lWzJdOnZvaWQgMDtmb3IociYmZkh0KGVbMF0sZVsxXSxyKSYmKGk9MSk7KytuPGk7KWZvcih2YXIgbz1lW25dLGE9bUh0KG8pLHM9LTEsbD1hLmxlbmd0aDsrK3M8bDspe3ZhciBjPWFbc10sdT10W2NdOyh2b2lkIDA9PT11fHxwSHQodSxnSHRbY10pJiYhX0h0LmNhbGwodCxjKSkmJih0W2NdPW9bY10pfXJldHVybiB0fSkpLHZIdD1JT3QsYkh0PU5MdCx4SHQ9REx0LHdIdD0vXHMvLFNIdD0vXlxzKy8sTUh0PXBBdCxFSHQ9YlJ0LFRIdD0vXlstK10weFswLTlhLWZdKyQvaSxDSHQ9L14wYlswMV0rJC9pLEFIdD0vXjBvWzAtN10rJC9pLGtIdD1wYXJzZUludCxMSHQ9ZnVuY3Rpb24gUEh0KHQpe3JldHVybiB0PzEvMD09PSh0PShmdW5jdGlvbiBlKHQpe2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdDtpZihFSHQodCkpcmV0dXJuIE5hTjtpZihNSHQodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PU1IdChlKT9lKyIiOmV9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9KGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQ/dC5zbGljZSgwLChmdW5jdGlvbiBlKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS0mJndIdC50ZXN0KHQuY2hhckF0KGUpKTspO3JldHVybiBlfSkodCkrMSkucmVwbGFjZShTSHQsIiIpOnR9KSh0KTt2YXIgaT1DSHQudGVzdCh0KTtyZXR1cm4gaXx8QUh0LnRlc3QodCk/a0h0KHQuc2xpY2UoMiksaT8yOjgpOlRIdC50ZXN0KHQpP05hTjordH0pKHQpKXx8dD09PS0xLzA/MTc5NzY5MzEzNDg2MjMxNTdlMjkyKih0PDA/LTE6MSk6dD09dD90OjA6MD09PXQ/dDowfSxOSHQ9TEh0LElIdD1TRHQsUkh0PUlPdCxPSHQ9TWF0aC5tYXgsekh0PShmdW5jdGlvbiBCSHQodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXt2YXIgcj1PYmplY3QoZSk7aWYoIWJIdChlKSl7dmFyIG89dkh0KG4pO2U9eEh0KGUpLG49ZnVuY3Rpb24odCl7cmV0dXJuIG8oclt0XSx0LHIpfX12YXIgYT10KGUsbixpKTtyZXR1cm4gYT4tMT9yW28/ZVthXTphXTp2b2lkIDB9fSkoKGZ1bmN0aW9uIERIdCh0LGUsbil7dmFyIGk9bnVsbD09dD8wOnQubGVuZ3RoO2lmKCFpKXJldHVybi0xO3ZhciByPW51bGw9PW4/MDooZnVuY3Rpb24gbyh0KXt2YXIgZT1OSHQodCksbj1lJTE7cmV0dXJuIGU9PWU/bj9lLW46ZTowfSkobik7cmV0dXJuIHI8MCYmKHI9T0h0KGkrciwwKSksSUh0KHQsUkh0KGUpLHIpfSkpLEhIdD1zRHQsRkh0PWZ1bmN0aW9uIFZIdCh0KXtyZXR1cm4gbnVsbCE9dCYmdC5sZW5ndGg/SEh0KHQsMSk6W119LFVIdD1pSXQsakh0PW1JdCxHSHQ9cUx0LFdIdD1Ta3QscUh0PXNJdCxZSHQ9SU90LFhIdD1iUnQsJEh0PWZ1bmN0aW9uIEtIdCh0LGUsbil7Zm9yKHZhciBpPS0xLHI9dC5sZW5ndGg7KytpPHI7KXt2YXIgbz10W2ldLGE9ZShvKTtpZihudWxsIT1hJiYodm9pZCAwPT09cz9hPT1hJiYhWEh0KGEpOm4oYSxzKSkpdmFyIHM9YSxsPW99cmV0dXJuIGx9LFpIdD0kSHQsSkh0PWZ1bmN0aW9uIFFIdCh0LGUpe3JldHVybiB0PmV9LHRGdD1kSXQsZUZ0PVNrdCxuRnQ9ekN0LGlGdD1mdW5jdGlvbiByRnQodCxlLG4peyh2b2lkIDAhPT1uJiYhbkZ0KHRbZV0sbil8fHZvaWQgMD09PW4mJiEoZSBpbiB0KSkmJmVGdCh0LGUsbil9LG9GdD1oQXQsYUZ0PWhQdCxzRnQ9Umt0LGxGdD1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsY0Z0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksdUZ0PWxGdC5jYWxsKE9iamVjdCksaEZ0PWZ1bmN0aW9uIGRGdCh0LGUpe2lmKCgiY29uc3RydWN0b3IiIT09ZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHRbZV0pJiYiX19wcm90b19fIiE9ZSlyZXR1cm4gdFtlXX0scEZ0PU5rdCxmRnQ9cUx0LG1GdD1pRnQsZ0Z0PUtMdC5leHBvcnRzLF9GdD1sTnQseUZ0PVpMdCx2RnQ9eU50LGJGdD1Ha3QseEZ0PVdrdCx3RnQ9VkR0LFNGdD1xa3QuZXhwb3J0cyxNRnQ9X0F0LEVGdD1wQXQsVEZ0PWNMdCxDRnQ9aEZ0LEFGdD1fa3Qsa0Z0PWlGdCxMRnQ9aUl0LFBGdD1wQXQsTkZ0PXFMdCxJRnQ9aEZ0LFJGdD14RHQsT0Z0PWhIdCx6RnQ9ZnVuY3Rpb24gdChlLG4saSxyLG8pe2UhPT1uJiZMRnQobiwoZnVuY3Rpb24oYSxzKXtpZihvfHwobz1uZXcgQUZ0KSxQRnQoYSkpIShmdW5jdGlvbiBsKHQsZSxuLGkscixvLGEpe3ZhciBzPUNGdCh0LG4pLGw9Q0Z0KGUsbiksYz1hLmdldChsKTtpZihjKW1GdCh0LG4sYyk7ZWxzZXt2YXIgdT1vP28ocyxsLG4rIiIsdCxlLGEpOnZvaWQgMCxoPXZvaWQgMD09PXU7aWYoaCl7dmFyIGQ9eEZ0KGwpLHA9IWQmJlNGdChsKSxmPSFkJiYhcCYmVEZ0KGwpO3U9bCxkfHxwfHxmP3hGdChzKT91PXM6d0Z0KHMpP3U9eUZ0KHMpOnA/KGg9ITEsdT1nRnQobCwhMCkpOmY/KGg9ITEsdT1fRnQobCwhMCkpOnU9W106KGZ1bmN0aW9uIG0odCl7aWYoIXNGdCh0KXx8IltvYmplY3QgT2JqZWN0XSIhPW9GdCh0KSlyZXR1cm4hMTt2YXIgZT1hRnQodCk7aWYobnVsbD09PWUpcmV0dXJuITA7dmFyIG49Y0Z0LmNhbGwoZSwiY29uc3RydWN0b3IiKSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgbiYmbiBpbnN0YW5jZW9mIG4mJmxGdC5jYWxsKG4pPT11RnR9KShsKXx8YkZ0KGwpPyh1PXMsYkZ0KHMpP3U9KGZ1bmN0aW9uIGcodCl7cmV0dXJuIHBGdCh0LGZGdCh0KSl9KShzKTpFRnQocykmJiFNRnQocyl8fCh1PXZGdChsKSkpOmg9ITF9aCYmKGEuc2V0KGwsdSkscih1LGwsaSxvLGEpLGEuZGVsZXRlKGwpKSxtRnQodCxuLHUpfX0pKGUsbixzLGksdCxyLG8pO2Vsc2V7dmFyIGM9cj9yKElGdChlLHMpLGEscysiIixlLG4sbyk6dm9pZCAwO3ZvaWQgMD09PWMmJihjPWEpLGtGdChlLHMsYyl9fSksTkZ0KX0sREZ0PShmdW5jdGlvbiBCRnQodCl7cmV0dXJuIFJGdCgoZnVuY3Rpb24oZSxuKXt2YXIgaT0tMSxyPW4ubGVuZ3RoLG89cj4xP25bci0xXTp2b2lkIDAsYT1yPjI/blsyXTp2b2lkIDA7Zm9yKG89dC5sZW5ndGg+MyYmImZ1bmN0aW9uIj09dHlwZW9mIG8/KHItLSxvKTp2b2lkIDAsYSYmT0Z0KG5bMF0sblsxXSxhKSYmKG89cjwzP3ZvaWQgMDpvLHI9MSksZT1PYmplY3QoZSk7KytpPHI7KXt2YXIgcz1uW2ldO3MmJnQoZSxzLGksbyl9cmV0dXJuIGV9KSl9KSgoZnVuY3Rpb24odCxlLG4pe3pGdCh0LGUsbil9KSksSEZ0PWZ1bmN0aW9uIEZGdCh0LGUpe3JldHVybiB0PGV9LFZGdD0kSHQsVUZ0PUhGdCxqRnQ9ZEl0LEdGdD0kSHQsV0Z0PUlPdCxxRnQ9SEZ0LFlGdD1pQXQsWEZ0PUFrdCwkRnQ9S1J0LEtGdD1La3QsWkZ0PXBBdCxKRnQ9UVJ0LFFGdD1pT3QsdFZ0PWZ1bmN0aW9uIGVWdCh0LGUsbixpKXtpZighWkZ0KHQpKXJldHVybiB0O2Zvcih2YXIgcj0tMSxvPShlPSRGdChlLHQpKS5sZW5ndGgsYT1vLTEscz10O251bGwhPXMmJisrcjxvOyl7dmFyIGw9SkZ0KGVbcl0pLGM9bjtpZigiX19wcm90b19fIj09PWx8fCJjb25zdHJ1Y3RvciI9PT1sfHwicHJvdG90eXBlIj09PWwpcmV0dXJuIHQ7aWYociE9YSl7dmFyIHU9c1tsXTt2b2lkIDA9PT0oYz1pP2kodSxsLHMpOnZvaWQgMCkmJihjPVpGdCh1KT91OktGdChlW3IrMV0pP1tdOnt9KX1YRnQocyxsLGMpLHM9c1tsXX1yZXR1cm4gdH0sblZ0PUtSdCxpVnQ9X090LHJWdD1GSHQsb1Z0PWhEdCxhVnQ9Z0R0LHNWdD0oZnVuY3Rpb24gbFZ0KHQpe3JldHVybiBhVnQob1Z0KHQsdm9pZCAwLHJWdCksdCsiIil9KSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD97fTooZnVuY3Rpb24gbih0LGUpe3JldHVybihmdW5jdGlvbiBuKHQsZSxpKXtmb3IodmFyIHI9LTEsbz1lLmxlbmd0aCxhPXt9OysrcjxvOyl7dmFyIHM9ZVtyXSxsPVFGdCh0LHMpO2kobCxzKSYmdFZ0KGEsblZ0KHMsdCksbCl9cmV0dXJuIGF9KSh0LGUsKGZ1bmN0aW9uKGUsbil7cmV0dXJuIGlWdCh0LG4pfSkpfSkodCxlKX0pKSxjVnQ9TWF0aC5jZWlsLHVWdD1NYXRoLm1heCxoVnQ9aEh0LGRWdD1MSHQscFZ0PShmdW5jdGlvbiBmVnQodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gaSYmIm51bWJlciIhPXR5cGVvZiBpJiZoVnQoZSxuLGkpJiYobj1pPXZvaWQgMCksZT1kVnQoZSksdm9pZCAwPT09bj8obj1lLGU9MCk6bj1kVnQobiksKGZ1bmN0aW9uIHIodCxlLG4saSl7Zm9yKHZhciByPS0xLG89dVZ0KGNWdCgoZS10KS8obnx8MSkpLDApLGE9QXJyYXkobyk7by0tOylhW2k/bzorK3JdPXQsdCs9bjtyZXR1cm4gYX0pKGUsbixpPXZvaWQgMD09PWk/ZTxuPzE6LTE6ZFZ0KGkpLHQpfX0pKCksbVZ0PWJSdCxnVnQ9ZnVuY3Rpb24gX1Z0KHQsZSl7aWYodCE9PWUpe3ZhciBuPXZvaWQgMCE9PXQsaT1udWxsPT09dCxyPXQ9PXQsbz1tVnQodCksYT12b2lkIDAhPT1lLHM9bnVsbD09PWUsbD1lPT1lLGM9bVZ0KGUpO2lmKCFzJiYhYyYmIW8mJnQ+ZXx8byYmYSYmbCYmIXMmJiFjfHxpJiZhJiZsfHwhbiYmbHx8IXIpcmV0dXJuIDE7aWYoIWkmJiFvJiYhYyYmdDxlfHxjJiZuJiZyJiYhaSYmIW98fHMmJm4mJnJ8fCFhJiZyfHwhbClyZXR1cm4tMX1yZXR1cm4gMH0seVZ0PXpSdCx2VnQ9aU90LGJWdD1JT3QseFZ0PXN6dCx3VnQ9ckx0LFNWdD1kSXQsTVZ0PVdrdCxFVnQ9c0R0LFRWdD1oSHQsQ1Z0PXhEdCgoZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybltdO3ZhciBuPWUubGVuZ3RoO3JldHVybiBuPjEmJlRWdCh0LGVbMF0sZVsxXSk/ZT1bXTpuPjImJlRWdChlWzBdLGVbMV0sZVsyXSkmJihlPVtlWzBdXSksKGZ1bmN0aW9uIGkodCxlLG4pe2U9ZS5sZW5ndGg/eVZ0KGUsKGZ1bmN0aW9uKHQpe3JldHVybiBNVnQodCk/ZnVuY3Rpb24oZSl7cmV0dXJuIHZWdChlLDE9PT10Lmxlbmd0aD90WzBdOnQpfTp0fSkpOltTVnRdO3ZhciBpPS0xO3JldHVybiBlPXlWdChlLHdWdChiVnQpKSwoZnVuY3Rpb24gcih0LGUpe3ZhciBuPXQubGVuZ3RoO2Zvcih0LnNvcnQoZSk7bi0tOyl0W25dPXRbbl0udmFsdWU7cmV0dXJuIHR9KSh4VnQodCwoZnVuY3Rpb24odCxuLHIpe3JldHVybntjcml0ZXJpYTp5VnQoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSksaW5kZXg6KytpLHZhbHVlOnR9fSkpLChmdW5jdGlvbih0LGUpe3JldHVybihmdW5jdGlvbiBpKHQsZSxuKXtmb3IodmFyIGk9LTEscj10LmNyaXRlcmlhLG89ZS5jcml0ZXJpYSxhPXIubGVuZ3RoLHM9bi5sZW5ndGg7KytpPGE7KXt2YXIgbD1nVnQocltpXSxvW2ldKTtpZihsKXJldHVybiBpPj1zP2w6bCooImRlc2MiPT1uW2ldPy0xOjEpfXJldHVybiB0LmluZGV4LWUuaW5kZXh9KSh0LGUsbil9KSl9KSh0LEVWdChlLDEpLFtdKX0pKSxBVnQ9R1J0LGtWdD0wLExWdD1Ba3Q7dHJ5e3JIdD17Y2xvbmVEZWVwOmZ1bmN0aW9uIFBWdCh0KXtyZXR1cm4gYUh0KHQsNSl9LGNvbnN0YW50OmVJdCxkZWZhdWx0czp5SHQsZWFjaDpTSXQsZmlsdGVyOkZPdCxmaW5kOnpIdCxmbGF0dGVuOkZIdCxmb3JFYWNoOnhJdCxmb3JJbjpmdW5jdGlvbiBOVnQodCxlKXtyZXR1cm4gbnVsbD09dD90OlVIdCh0LGpIdChlKSxHSHQpfSxoYXM6cU90LGlzVW5kZWZpbmVkOml6dCxsYXN0OmZ1bmN0aW9uIElWdCh0KXt2YXIgZT1udWxsPT10PzA6dC5sZW5ndGg7cmV0dXJuIGU/dFtlLTFdOnZvaWQgMH0sbWFwOnB6dCxtYXBWYWx1ZXM6ZnVuY3Rpb24gUlZ0KHQsZSl7dmFyIG49e307cmV0dXJuIGU9WUh0KGUpLHFIdCh0LChmdW5jdGlvbih0LGkscil7V0h0KG4saSxlKHQsaSxyKSl9KSksbn0sbWF4OmZ1bmN0aW9uIE9WdCh0KXtyZXR1cm4gdCYmdC5sZW5ndGg/Wkh0KHQsdEZ0LEpIdCk6dm9pZCAwfSxtZXJnZTpERnQsbWluOmZ1bmN0aW9uIHpWdCh0KXtyZXR1cm4gdCYmdC5sZW5ndGg/VkZ0KHQsakZ0LFVGdCk6dm9pZCAwfSxtaW5CeTpmdW5jdGlvbiBEVnQodCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg/R0Z0KHQsV0Z0KGUpLHFGdCk6dm9pZCAwfSxub3c6ZnVuY3Rpb24oKXtyZXR1cm4gWUZ0LkRhdGUubm93KCl9LHBpY2s6c1Z0LHJhbmdlOnBWdCxyZWR1Y2U6d3p0LHNvcnRCeTpDVnQsdW5pcXVlSWQ6ZnVuY3Rpb24gQlZ0KHQpe3ZhciBlPSsra1Z0O3JldHVybiBBVnQodCkrZX0sdmFsdWVzOlhEdCx6aXBPYmplY3Q6ZnVuY3Rpb24gSFZ0KHQsZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCxlLGkpe2Zvcih2YXIgcj0tMSxvPXQubGVuZ3RoLGE9ZS5sZW5ndGgscz17fTsrK3I8bzspaShzLHRbcl0scjxhP2Vbcl06dm9pZCAwKTtyZXR1cm4gc30pKHR8fFtdLGV8fFtdLExWdCl9fX1jYXRjaCh0KXt9ckh0fHwockh0PXdpbmRvdy5fKTt2YXIgRlZ0PXJIdCxWVnQ9VVZ0O2Z1bmN0aW9uIFVWdCgpe3ZhciB0PXt9O3QuX25leHQ9dC5fcHJldj10LHRoaXMuX3NlbnRpbmVsPXR9ZnVuY3Rpb24galZ0KHQpe3QuX3ByZXYuX25leHQ9dC5fbmV4dCx0Ll9uZXh0Ll9wcmV2PXQuX3ByZXYsZGVsZXRlIHQuX25leHQsZGVsZXRlIHQuX3ByZXZ9ZnVuY3Rpb24gR1Z0KHQsZSl7aWYoIl9uZXh0IiE9PXQmJiJfcHJldiIhPT10KXJldHVybiBlfVVWdC5wcm90b3R5cGUuZGVxdWV1ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3NlbnRpbmVsLGU9dC5fcHJldjtpZihlIT09dClyZXR1cm4galZ0KGUpLGV9LFVWdC5wcm90b3R5cGUuZW5xdWV1ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9zZW50aW5lbDt0Ll9wcmV2JiZ0Ll9uZXh0JiZqVnQodCksdC5fbmV4dD1lLl9uZXh0LGUuX25leHQuX3ByZXY9dCxlLl9uZXh0PXQsdC5fcHJldj1lfSxVVnQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9dGhpcy5fc2VudGluZWwsbj1lLl9wcmV2O24hPT1lOyl0LnB1c2goSlNPTi5zdHJpbmdpZnkobixHVnQpKSxuPW4uX3ByZXY7cmV0dXJuIlsiK3Quam9pbigiLCAiKSsiXSJ9O3ZhciBXVnQ9RlZ0LHFWdD1vSHQuR3JhcGgsWVZ0PVZWdCxYVnQ9V1Z0LmNvbnN0YW50KDEpO2Z1bmN0aW9uICRWdCh0LGUsbixpLHIpe3ZhciBvPXI/W106dm9pZCAwO3JldHVybiBXVnQuZm9yRWFjaCh0LmluRWRnZXMoaS52KSwoZnVuY3Rpb24oaSl7dmFyIGE9dC5lZGdlKGkpLHM9dC5ub2RlKGkudik7ciYmby5wdXNoKHt2Omkudix3Omkud30pLHMub3V0LT1hLEtWdChlLG4scyl9KSksV1Z0LmZvckVhY2godC5vdXRFZGdlcyhpLnYpLChmdW5jdGlvbihpKXt2YXIgcj10LmVkZ2UoaSksbz10Lm5vZGUoaS53KTtvLmluLT1yLEtWdChlLG4sbyl9KSksdC5yZW1vdmVOb2RlKGkudiksb31mdW5jdGlvbiBLVnQodCxlLG4pe24ub3V0P24uaW4/dFtuLm91dC1uLmluK2VdLmVucXVldWUobik6dFt0Lmxlbmd0aC0xXS5lbnF1ZXVlKG4pOnRbMF0uZW5xdWV1ZShuKX12YXIgWlZ0PUZWdCxKVnQ9e3J1bjpmdW5jdGlvbiBRVnQodCl7dmFyIGU9ImdyZWVkeSI9PT10LmdyYXBoKCkuYWN5Y2xpY2VyPyhmdW5jdGlvbiBpKHQsZSl7aWYodC5ub2RlQ291bnQoKTw9MSlyZXR1cm5bXTt2YXIgbj0oZnVuY3Rpb24gaSh0LGUpe3ZhciBuPW5ldyBxVnQsaT0wLHI9MDtXVnQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKHQpe24uc2V0Tm9kZSh0LHt2OnQsaW46MCxvdXQ6MH0pfSkpLFdWdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG89bi5lZGdlKHQudix0LncpfHwwLGE9ZSh0KTtuLnNldEVkZ2UodC52LHQudyxvK2EpLHI9TWF0aC5tYXgocixuLm5vZGUodC52KS5vdXQrPWEpLGk9TWF0aC5tYXgoaSxuLm5vZGUodC53KS5pbis9YSl9KSk7dmFyIG89V1Z0LnJhbmdlKHIraSszKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZVnR9KSksYT1pKzE7cmV0dXJuIFdWdC5mb3JFYWNoKG4ubm9kZXMoKSwoZnVuY3Rpb24odCl7S1Z0KG8sYSxuLm5vZGUodCkpfSkpLHtncmFwaDpuLGJ1Y2tldHM6byx6ZXJvSWR4OmF9fSkodCxlfHxYVnQpLHI9KGZ1bmN0aW9uIG8odCxlLG4pe2Zvcih2YXIgaSxyPVtdLG89ZVtlLmxlbmd0aC0xXSxhPWVbMF07dC5ub2RlQ291bnQoKTspe2Zvcig7aT1hLmRlcXVldWUoKTspJFZ0KHQsZSxuLGkpO2Zvcig7aT1vLmRlcXVldWUoKTspJFZ0KHQsZSxuLGkpO2lmKHQubm9kZUNvdW50KCkpZm9yKHZhciBzPWUubGVuZ3RoLTI7cz4wOy0tcylpZihpPWVbc10uZGVxdWV1ZSgpKXtyPXIuY29uY2F0KCRWdCh0LGUsbixpLCEwKSk7YnJlYWt9fXJldHVybiByfSkobi5ncmFwaCxuLmJ1Y2tldHMsbi56ZXJvSWR4KTtyZXR1cm4gV1Z0LmZsYXR0ZW4oV1Z0Lm1hcChyLChmdW5jdGlvbihlKXtyZXR1cm4gdC5vdXRFZGdlcyhlLnYsZS53KX0pKSwhMCl9KSh0LChmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5lZGdlKGUpLndlaWdodH19KSh0KSk6KGZ1bmN0aW9uIHIodCl7dmFyIGU9W10sbj17fSxpPXt9O3JldHVybiBaVnQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uIHIobyl7WlZ0LmhhcyhpLG8pfHwoaVtvXT0hMCxuW29dPSEwLFpWdC5mb3JFYWNoKHQub3V0RWRnZXMobyksKGZ1bmN0aW9uKHQpe1pWdC5oYXMobix0LncpP2UucHVzaCh0KTpyKHQudyl9KSksZGVsZXRlIG5bb10pfSkpLGV9KSh0KTtaVnQuZm9yRWFjaChlLChmdW5jdGlvbihlKXt2YXIgbj10LmVkZ2UoZSk7dC5yZW1vdmVFZGdlKGUpLG4uZm9yd2FyZE5hbWU9ZS5uYW1lLG4ucmV2ZXJzZWQ9ITAsdC5zZXRFZGdlKGUudyxlLnYsbixaVnQudW5pcXVlSWQoInJldiIpKX0pKX0sdW5kbzpmdW5jdGlvbiB0VXQodCl7WlZ0LmZvckVhY2godC5lZGdlcygpLChmdW5jdGlvbihlKXt2YXIgbj10LmVkZ2UoZSk7aWYobi5yZXZlcnNlZCl7dC5yZW1vdmVFZGdlKGUpO3ZhciBpPW4uZm9yd2FyZE5hbWU7ZGVsZXRlIG4ucmV2ZXJzZWQsZGVsZXRlIG4uZm9yd2FyZE5hbWUsdC5zZXRFZGdlKGUudyxlLnYsbixpKX19KSl9fSxlVXQ9RlZ0LG5VdD1vSHQuR3JhcGgsaVV0PXthZGREdW1teU5vZGU6Z1V0LHNpbXBsaWZ5OmZ1bmN0aW9uIHJVdCh0KXt2YXIgZT0obmV3IG5VdCkuc2V0R3JhcGgodC5ncmFwaCgpKTtyZXR1cm4gZVV0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihuKXtlLnNldE5vZGUobix0Lm5vZGUobikpfSkpLGVVdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24obil7dmFyIGk9ZS5lZGdlKG4udixuLncpfHx7d2VpZ2h0OjAsbWlubGVuOjF9LHI9dC5lZGdlKG4pO2Uuc2V0RWRnZShuLnYsbi53LHt3ZWlnaHQ6aS53ZWlnaHQrci53ZWlnaHQsbWlubGVuOk1hdGgubWF4KGkubWlubGVuLHIubWlubGVuKX0pfSkpLGV9LGFzTm9uQ29tcG91bmRHcmFwaDpmdW5jdGlvbiBvVXQodCl7dmFyIGU9bmV3IG5VdCh7bXVsdGlncmFwaDp0LmlzTXVsdGlncmFwaCgpfSkuc2V0R3JhcGgodC5ncmFwaCgpKTtyZXR1cm4gZVV0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihuKXt0LmNoaWxkcmVuKG4pLmxlbmd0aHx8ZS5zZXROb2RlKG4sdC5ub2RlKG4pKX0pKSxlVXQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKG4pe2Uuc2V0RWRnZShuLHQuZWRnZShuKSl9KSksZX0sc3VjY2Vzc29yV2VpZ2h0czpmdW5jdGlvbiBhVXQodCl7dmFyIGU9ZVV0Lm1hcCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe3ZhciBuPXt9O3JldHVybiBlVXQuZm9yRWFjaCh0Lm91dEVkZ2VzKGUpLChmdW5jdGlvbihlKXtuW2Uud109KG5bZS53XXx8MCkrdC5lZGdlKGUpLndlaWdodH0pKSxufSkpO3JldHVybiBlVXQuemlwT2JqZWN0KHQubm9kZXMoKSxlKX0scHJlZGVjZXNzb3JXZWlnaHRzOmZ1bmN0aW9uIHNVdCh0KXt2YXIgZT1lVXQubWFwKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7dmFyIG49e307cmV0dXJuIGVVdC5mb3JFYWNoKHQuaW5FZGdlcyhlKSwoZnVuY3Rpb24oZSl7bltlLnZdPShuW2Uudl18fDApK3QuZWRnZShlKS53ZWlnaHR9KSksbn0pKTtyZXR1cm4gZVV0LnppcE9iamVjdCh0Lm5vZGVzKCksZSl9LGludGVyc2VjdFJlY3Q6ZnVuY3Rpb24gbFV0KHQsZSl7dmFyIG4saSxyPXQueCxvPXQueSxhPWUueC1yLHM9ZS55LW8sbD10LndpZHRoLzIsYz10LmhlaWdodC8yO2lmKCFhJiYhcyl0aHJvdyBuZXcgRXJyb3IoIk5vdCBwb3NzaWJsZSB0byBmaW5kIGludGVyc2VjdGlvbiBpbnNpZGUgb2YgdGhlIHJlY3RhbmdsZSIpO3JldHVybiBNYXRoLmFicyhzKSpsPk1hdGguYWJzKGEpKmM/KHM8MCYmKGM9LWMpLG49YyphL3MsaT1jKTooYTwwJiYobD0tbCksbj1sLGk9bCpzL2EpLHt4OnIrbix5Om8raX19LGJ1aWxkTGF5ZXJNYXRyaXg6ZnVuY3Rpb24gY1V0KHQpe3ZhciBlPWVVdC5tYXAoZVV0LnJhbmdlKF9VdCh0KSsxKSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pKTtyZXR1cm4gZVV0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihuKXt2YXIgaT10Lm5vZGUobikscj1pLnJhbms7ZVV0LmlzVW5kZWZpbmVkKHIpfHwoZVtyXVtpLm9yZGVyXT1uKX0pKSxlfSxub3JtYWxpemVSYW5rczpmdW5jdGlvbiB1VXQodCl7dmFyIGU9ZVV0Lm1pbihlVXQubWFwKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7cmV0dXJuIHQubm9kZShlKS5yYW5rfSkpKTtlVXQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKG4pe3ZhciBpPXQubm9kZShuKTtlVXQuaGFzKGksInJhbmsiKSYmKGkucmFuay09ZSl9KSl9LHJlbW92ZUVtcHR5UmFua3M6ZnVuY3Rpb24gaFV0KHQpe3ZhciBlPWVVdC5taW4oZVV0Lm1hcCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5vZGUoZSkucmFua30pKSksbj1bXTtlVXQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGkpe3ZhciByPXQubm9kZShpKS5yYW5rLWU7bltyXXx8KG5bcl09W10pLG5bcl0ucHVzaChpKX0pKTt2YXIgaT0wLHI9dC5ncmFwaCgpLm5vZGVSYW5rRmFjdG9yO2VVdC5mb3JFYWNoKG4sKGZ1bmN0aW9uKGUsbil7ZVV0LmlzVW5kZWZpbmVkKGUpJiZuJXIhPTA/LS1pOmkmJmVVdC5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe3Qubm9kZShlKS5yYW5rKz1pfSkpfSkpfSxhZGRCb3JkZXJOb2RlOmZ1bmN0aW9uIGRVdCh0LGUsbixpKXt2YXIgcj17d2lkdGg6MCxoZWlnaHQ6MH07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+PTQmJihyLnJhbms9bixyLm9yZGVyPWkpLGdVdCh0LCJib3JkZXIiLHIsZSl9LG1heFJhbms6X1V0LHBhcnRpdGlvbjpmdW5jdGlvbiBwVXQodCxlKXt2YXIgbj17bGhzOltdLHJoczpbXX07cmV0dXJuIGVVdC5mb3JFYWNoKHQsKGZ1bmN0aW9uKHQpe2UodCk/bi5saHMucHVzaCh0KTpuLnJocy5wdXNoKHQpfSkpLG59LHRpbWU6ZnVuY3Rpb24gZlV0KHQsZSl7dmFyIG49ZVV0Lm5vdygpO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7Y29uc29sZS5sb2codCsiIHRpbWU6ICIrKGVVdC5ub3coKS1uKSsibXMiKX19LG5vdGltZTpmdW5jdGlvbiBtVXQodCxlKXtyZXR1cm4gZSgpfX07ZnVuY3Rpb24gZ1V0KHQsZSxuLGkpe3ZhciByO2Rve3I9ZVV0LnVuaXF1ZUlkKGkpfXdoaWxlKHQuaGFzTm9kZShyKSk7cmV0dXJuIG4uZHVtbXk9ZSx0LnNldE5vZGUocixuKSxyfWZ1bmN0aW9uIF9VdCh0KXtyZXR1cm4gZVV0Lm1heChlVXQubWFwKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7dmFyIG49dC5ub2RlKGUpLnJhbms7aWYoIWVVdC5pc1VuZGVmaW5lZChuKSlyZXR1cm4gbn0pKSl9dmFyIHlVdD1GVnQsdlV0PWlVdCxiVXQ9e3J1bjpmdW5jdGlvbiB4VXQodCl7dC5ncmFwaCgpLmR1bW15Q2hhaW5zPVtdLHlVdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24oZSl7IShmdW5jdGlvbiBuKHQsZSl7dmFyIG4saSxyLG89ZS52LGE9dC5ub2RlKG8pLnJhbmsscz1lLncsbD10Lm5vZGUocykucmFuayxjPWUubmFtZSx1PXQuZWRnZShlKSxoPXUubGFiZWxSYW5rO2lmKGwhPT1hKzEpe2Zvcih0LnJlbW92ZUVkZ2UoZSkscj0wLCsrYTthPGw7KytyLCsrYSl1LnBvaW50cz1bXSxuPXZVdC5hZGREdW1teU5vZGUodCwiZWRnZSIsaT17d2lkdGg6MCxoZWlnaHQ6MCxlZGdlTGFiZWw6dSxlZGdlT2JqOmUscmFuazphfSwiX2QiKSxhPT09aCYmKGkud2lkdGg9dS53aWR0aCxpLmhlaWdodD11LmhlaWdodCxpLmR1bW15PSJlZGdlLWxhYmVsIixpLmxhYmVscG9zPXUubGFiZWxwb3MpLHQuc2V0RWRnZShvLG4se3dlaWdodDp1LndlaWdodH0sYyksMD09PXImJnQuZ3JhcGgoKS5kdW1teUNoYWlucy5wdXNoKG4pLG89bjt0LnNldEVkZ2UobyxzLHt3ZWlnaHQ6dS53ZWlnaHR9LGMpfX0pKHQsZSl9KSl9LHVuZG86ZnVuY3Rpb24gd1V0KHQpe3lVdC5mb3JFYWNoKHQuZ3JhcGgoKS5kdW1teUNoYWlucywoZnVuY3Rpb24oZSl7dmFyIG4saT10Lm5vZGUoZSkscj1pLmVkZ2VMYWJlbDtmb3IodC5zZXRFZGdlKGkuZWRnZU9iaixyKTtpLmR1bW15OyluPXQuc3VjY2Vzc29ycyhlKVswXSx0LnJlbW92ZU5vZGUoZSksci5wb2ludHMucHVzaCh7eDppLngseTppLnl9KSwiZWRnZS1sYWJlbCI9PT1pLmR1bW15JiYoci54PWkueCxyLnk9aS55LHIud2lkdGg9aS53aWR0aCxyLmhlaWdodD1pLmhlaWdodCksaT10Lm5vZGUoZT1uKX0pKX19LFNVdD1GVnQsTVV0PWZ1bmN0aW9uIEVVdCh0KXt2YXIgZT17fTtTVXQuZm9yRWFjaCh0LnNvdXJjZXMoKSwoZnVuY3Rpb24gbihpKXt2YXIgcj10Lm5vZGUoaSk7aWYoU1V0LmhhcyhlLGkpKXJldHVybiByLnJhbms7ZVtpXT0hMDt2YXIgbz1TVXQubWluKFNVdC5tYXAodC5vdXRFZGdlcyhpKSwoZnVuY3Rpb24oZSl7cmV0dXJuIG4oZS53KS10LmVkZ2UoZSkubWlubGVufSkpKTtyZXR1cm4gbyE9PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSYmbnVsbCE9b3x8KG89MCksci5yYW5rPW99KSl9LFRVdD1mdW5jdGlvbiBDVXQodCxlKXtyZXR1cm4gdC5ub2RlKGUudykucmFuay10Lm5vZGUoZS52KS5yYW5rLXQuZWRnZShlKS5taW5sZW59LEFVdD1GVnQsa1V0PW9IdC5HcmFwaCxMVXQ9VFV0LFBVdD1mdW5jdGlvbiBOVXQodCl7dmFyIGUsbixpPW5ldyBrVXQoe2RpcmVjdGVkOiExfSkscj10Lm5vZGVzKClbMF0sbz10Lm5vZGVDb3VudCgpO2ZvcihpLnNldE5vZGUocix7fSk7SVV0KGksdCk8bzspZT1SVXQoaSx0KSxuPWkuaGFzTm9kZShlLnYpP0xVdCh0LGUpOi1MVXQodCxlKSxPVXQoaSx0LG4pO3JldHVybiBpfTtmdW5jdGlvbiBJVXQodCxlKXtyZXR1cm4gQVV0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbiBuKGkpe0FVdC5mb3JFYWNoKGUubm9kZUVkZ2VzKGkpLChmdW5jdGlvbihyKXt2YXIgbz1yLnYsYT1pPT09bz9yLnc6bzt0Lmhhc05vZGUoYSl8fExVdChlLHIpfHwodC5zZXROb2RlKGEse30pLHQuc2V0RWRnZShpLGEse30pLG4oYSkpfSkpfSkpLHQubm9kZUNvdW50KCl9ZnVuY3Rpb24gUlV0KHQsZSl7cmV0dXJuIEFVdC5taW5CeShlLmVkZ2VzKCksKGZ1bmN0aW9uKG4pe2lmKHQuaGFzTm9kZShuLnYpIT09dC5oYXNOb2RlKG4udykpcmV0dXJuIExVdChlLG4pfSkpfWZ1bmN0aW9uIE9VdCh0LGUsbil7QVV0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbih0KXtlLm5vZGUodCkucmFuays9bn0pKX12YXIgelV0PUZWdCxEVXQ9UFV0LEJVdD1UVXQsSFV0PU1VdCxGVXQ9b0h0LmFsZy5wcmVvcmRlcixWVXQ9b0h0LmFsZy5wb3N0b3JkZXIsVVV0PWlVdC5zaW1wbGlmeSxqVXQ9R1V0O2Z1bmN0aW9uIEdVdCh0KXt0PVVVdCh0KSxIVXQodCk7dmFyIGUsbj1EVXQodCk7Zm9yKFlVdChuKSxXVXQobix0KTtlPSRVdChuKTspWlV0KG4sdCxlLEtVdChuLHQsZSkpfWZ1bmN0aW9uIFdVdCh0LGUpe3ZhciBuPVZVdCh0LHQubm9kZXMoKSk7bj1uLnNsaWNlKDAsbi5sZW5ndGgtMSkselV0LmZvckVhY2gobiwoZnVuY3Rpb24obil7IShmdW5jdGlvbiBpKHQsZSxuKXt2YXIgaT10Lm5vZGUobik7dC5lZGdlKG4saS5wYXJlbnQpLmN1dHZhbHVlPXFVdCh0LGUsbil9KSh0LGUsbil9KSl9ZnVuY3Rpb24gcVV0KHQsZSxuKXt2YXIgaT10Lm5vZGUobikucGFyZW50LHI9ITAsbz1lLmVkZ2UobixpKSxhPTA7cmV0dXJuIG98fChyPSExLG89ZS5lZGdlKGksbikpLGE9by53ZWlnaHQselV0LmZvckVhY2goZS5ub2RlRWRnZXMobiksKGZ1bmN0aW9uKG8pe3ZhciBzPW8udj09PW4sbD1zP28udzpvLnY7aWYobCE9PWkpe3ZhciBjPXM9PT1yLHU9ZS5lZGdlKG8pLndlaWdodDtpZihhKz1jP3U6LXUsKGZ1bmN0aW9uIGgodCxlLG4pe3JldHVybiB0Lmhhc0VkZ2UoZSxuKX0pKHQsbixsKSl7dmFyIGQ9dC5lZGdlKG4sbCkuY3V0dmFsdWU7YSs9Yz8tZDpkfX19KSksYX1mdW5jdGlvbiBZVXQodCxlKXthcmd1bWVudHMubGVuZ3RoPDImJihlPXQubm9kZXMoKVswXSksWFV0KHQse30sMSxlKX1mdW5jdGlvbiBYVXQodCxlLG4saSxyKXt2YXIgbz1uLGE9dC5ub2RlKGkpO3JldHVybiBlW2ldPSEwLHpVdC5mb3JFYWNoKHQubmVpZ2hib3JzKGkpLChmdW5jdGlvbihyKXt6VXQuaGFzKGUscil8fChuPVhVdCh0LGUsbixyLGkpKX0pKSxhLmxvdz1vLGEubGltPW4rKyxyP2EucGFyZW50PXI6ZGVsZXRlIGEucGFyZW50LG59ZnVuY3Rpb24gJFV0KHQpe3JldHVybiB6VXQuZmluZCh0LmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3JldHVybiB0LmVkZ2UoZSkuY3V0dmFsdWU8MH0pKX1mdW5jdGlvbiBLVXQodCxlLG4pe3ZhciBpPW4udixyPW4udztlLmhhc0VkZ2UoaSxyKXx8KGk9bi53LHI9bi52KTt2YXIgbz10Lm5vZGUoaSksYT10Lm5vZGUocikscz1vLGw9ITE7by5saW0+YS5saW0mJihzPWEsbD0hMCk7dmFyIGM9elV0LmZpbHRlcihlLmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3JldHVybiBsPT09SlV0KDAsdC5ub2RlKGUudikscykmJmwhPT1KVXQoMCx0Lm5vZGUoZS53KSxzKX0pKTtyZXR1cm4gelV0Lm1pbkJ5KGMsKGZ1bmN0aW9uKHQpe3JldHVybiBCVXQoZSx0KX0pKX1mdW5jdGlvbiBaVXQodCxlLG4saSl7dC5yZW1vdmVFZGdlKG4udixuLncpLHQuc2V0RWRnZShpLnYsaS53LHt9KSxZVXQodCksV1V0KHQsZSksKGZ1bmN0aW9uIHIodCxlKXt2YXIgbj16VXQuZmluZCh0Lm5vZGVzKCksKGZ1bmN0aW9uKHQpe3JldHVybiFlLm5vZGUodCkucGFyZW50fSkpLGk9RlV0KHQsbik7aT1pLnNsaWNlKDEpLHpVdC5mb3JFYWNoKGksKGZ1bmN0aW9uKG4pe3ZhciBpPXQubm9kZShuKS5wYXJlbnQscj1lLmVkZ2UobixpKSxvPSExO3J8fChyPWUuZWRnZShpLG4pLG89ITApLGUubm9kZShuKS5yYW5rPWUubm9kZShpKS5yYW5rKyhvP3IubWlubGVuOi1yLm1pbmxlbil9KSl9KSh0LGUpfWZ1bmN0aW9uIEpVdCh0LGUsbil7cmV0dXJuIG4ubG93PD1lLmxpbSYmZS5saW08PW4ubGltfUdVdC5pbml0TG93TGltVmFsdWVzPVlVdCxHVXQuaW5pdEN1dFZhbHVlcz1XVXQsR1V0LmNhbGNDdXRWYWx1ZT1xVXQsR1V0LmxlYXZlRWRnZT0kVXQsR1V0LmVudGVyRWRnZT1LVXQsR1V0LmV4Y2hhbmdlRWRnZXM9WlV0O3ZhciBRVXQ9TVV0LHRqdD1QVXQsZWp0PWpVdCxuanQ9UVV0O2Z1bmN0aW9uIGlqdCh0KXtlanQodCl9dmFyIHJqdD1GVnQsb2p0PUZWdCxhanQ9aVV0O2Z1bmN0aW9uIHNqdCh0LGUsbixpLHIsbyxhKXt2YXIgcz10LmNoaWxkcmVuKGEpO2lmKHMubGVuZ3RoKXt2YXIgbD1hanQuYWRkQm9yZGVyTm9kZSh0LCJfYnQiKSxjPWFqdC5hZGRCb3JkZXJOb2RlKHQsIl9iYiIpLHU9dC5ub2RlKGEpO3Quc2V0UGFyZW50KGwsYSksdS5ib3JkZXJUb3A9bCx0LnNldFBhcmVudChjLGEpLHUuYm9yZGVyQm90dG9tPWMsb2p0LmZvckVhY2gocywoZnVuY3Rpb24ocyl7c2p0KHQsZSxuLGkscixvLHMpO3ZhciB1PXQubm9kZShzKSxoPXUuYm9yZGVyVG9wP3UuYm9yZGVyVG9wOnMsZD11LmJvcmRlckJvdHRvbT91LmJvcmRlckJvdHRvbTpzLHA9dS5ib3JkZXJUb3A/aToyKmksZj1oIT09ZD8xOnItb1thXSsxO3Quc2V0RWRnZShsLGgse3dlaWdodDpwLG1pbmxlbjpmLG5lc3RpbmdFZGdlOiEwfSksdC5zZXRFZGdlKGQsYyx7d2VpZ2h0OnAsbWlubGVuOmYsbmVzdGluZ0VkZ2U6ITB9KX0pKSx0LnBhcmVudChhKXx8dC5zZXRFZGdlKGUsbCx7d2VpZ2h0OjAsbWlubGVuOnIrb1thXX0pfWVsc2UgYSE9PWUmJnQuc2V0RWRnZShlLGEse3dlaWdodDowLG1pbmxlbjpufSl9dmFyIGxqdD1GVnQsY2p0PWlVdDtmdW5jdGlvbiB1anQodCxlLG4saSxyLG8pe3ZhciBhPXJbZV1bby0xXSxzPWNqdC5hZGREdW1teU5vZGUodCwiYm9yZGVyIix7d2lkdGg6MCxoZWlnaHQ6MCxyYW5rOm8sYm9yZGVyVHlwZTplfSxuKTtyW2VdW29dPXMsdC5zZXRQYXJlbnQocyxpKSxhJiZ0LnNldEVkZ2UoYSxzLHt3ZWlnaHQ6MX0pfXZhciBoanQ9RlZ0O2Z1bmN0aW9uIGRqdCh0KXtoanQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe3BqdCh0Lm5vZGUoZSkpfSkpLGhqdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24oZSl7cGp0KHQuZWRnZShlKSl9KSl9ZnVuY3Rpb24gcGp0KHQpe3ZhciBlPXQud2lkdGg7dC53aWR0aD10LmhlaWdodCx0LmhlaWdodD1lfWZ1bmN0aW9uIGZqdCh0KXt0Lnk9LXQueX1mdW5jdGlvbiBtanQodCl7dmFyIGU9dC54O3QueD10LnksdC55PWV9dmFyIGdqdD1GVnQsX2p0PUZWdDtmdW5jdGlvbiB5anQodCxlLG4pe2Zvcih2YXIgaT1fanQuemlwT2JqZWN0KG4sX2p0Lm1hcChuLChmdW5jdGlvbih0LGUpe3JldHVybiBlfSkpKSxyPV9qdC5mbGF0dGVuKF9qdC5tYXAoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIF9qdC5zb3J0QnkoX2p0Lm1hcCh0Lm91dEVkZ2VzKGUpLChmdW5jdGlvbihlKXtyZXR1cm57cG9zOmlbZS53XSx3ZWlnaHQ6dC5lZGdlKGUpLndlaWdodH19KSksInBvcyIpfSkpLCEwKSxvPTE7bzxuLmxlbmd0aDspbzw8PTE7dmFyIGE9MipvLTE7by09MTt2YXIgcz1fanQubWFwKG5ldyBBcnJheShhKSwoZnVuY3Rpb24oKXtyZXR1cm4gMH0pKSxsPTA7cmV0dXJuIF9qdC5mb3JFYWNoKHIuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC5wb3MrbztzW2VdKz10LndlaWdodDtmb3IodmFyIG49MDtlPjA7KWUlMiYmKG4rPXNbZSsxXSksc1tlPWUtMT4+MV0rPXQud2VpZ2h0O2wrPXQud2VpZ2h0Km59KSkpLGx9dmFyIHZqdD1GVnQsYmp0PUZWdCx4anQ9RlZ0LHdqdD1pVXQ7ZnVuY3Rpb24gU2p0KHQsZSxuKXtmb3IodmFyIGk7ZS5sZW5ndGgmJihpPXhqdC5sYXN0KGUpKS5pPD1uOyllLnBvcCgpLHQucHVzaChpLnZzKSxuKys7cmV0dXJuIG59dmFyIE1qdD1GVnQsRWp0PUZWdCxUanQ9b0h0LkdyYXBoLENqdD1GVnQsQWp0PUZWdCxranQ9ZnVuY3Rpb24gTGp0KHQsZSl7Zm9yKHZhciBuPTAsaT0xO2k8ZS5sZW5ndGg7KytpKW4rPXlqdCh0LGVbaS0xXSxlW2ldKTtyZXR1cm4gbn0sUGp0PWZ1bmN0aW9uIHQoZSxuLGkscil7dmFyIG89ZS5jaGlsZHJlbihuKSxhPWUubm9kZShuKSxzPWE/YS5ib3JkZXJMZWZ0OnZvaWQgMCxsPWE/YS5ib3JkZXJSaWdodDp2b2lkIDAsYz17fTtzJiYobz1NanQuZmlsdGVyKG8sKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09cyYmdCE9PWx9KSkpO3ZhciB1PShmdW5jdGlvbiBoKHQsZSl7cmV0dXJuIHZqdC5tYXAoZSwoZnVuY3Rpb24oZSl7dmFyIG49dC5pbkVkZ2VzKGUpO2lmKG4ubGVuZ3RoKXt2YXIgaT12anQucmVkdWNlKG4sKGZ1bmN0aW9uKGUsbil7dmFyIGk9dC5lZGdlKG4pLHI9dC5ub2RlKG4udik7cmV0dXJue3N1bTplLnN1bStpLndlaWdodCpyLm9yZGVyLHdlaWdodDplLndlaWdodCtpLndlaWdodH19KSx7c3VtOjAsd2VpZ2h0OjB9KTtyZXR1cm57djplLGJhcnljZW50ZXI6aS5zdW0vaS53ZWlnaHQsd2VpZ2h0Omkud2VpZ2h0fX1yZXR1cm57djplfX0pKX0pKGUsbyk7TWp0LmZvckVhY2godSwoZnVuY3Rpb24obil7aWYoZS5jaGlsZHJlbihuLnYpLmxlbmd0aCl7dmFyIG89dChlLG4udixpLHIpO2Nbbi52XT1vLE1qdC5oYXMobywiYmFyeWNlbnRlciIpJiYoZnVuY3Rpb24gYSh0LGUpe01qdC5pc1VuZGVmaW5lZCh0LmJhcnljZW50ZXIpPyh0LmJhcnljZW50ZXI9ZS5iYXJ5Y2VudGVyLHQud2VpZ2h0PWUud2VpZ2h0KToodC5iYXJ5Y2VudGVyPSh0LmJhcnljZW50ZXIqdC53ZWlnaHQrZS5iYXJ5Y2VudGVyKmUud2VpZ2h0KS8odC53ZWlnaHQrZS53ZWlnaHQpLHQud2VpZ2h0Kz1lLndlaWdodCl9KShuLG8pfX0pKTt2YXIgZD0oZnVuY3Rpb24gcCh0LGUpe3ZhciBuPXt9O3JldHVybiBianQuZm9yRWFjaCh0LChmdW5jdGlvbih0LGUpe3ZhciBpPW5bdC52XT17aW5kZWdyZWU6MCxpbjpbXSxvdXQ6W10sdnM6W3Qudl0saTplfTtianQuaXNVbmRlZmluZWQodC5iYXJ5Y2VudGVyKXx8KGkuYmFyeWNlbnRlcj10LmJhcnljZW50ZXIsaS53ZWlnaHQ9dC53ZWlnaHQpfSkpLGJqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIGU9blt0LnZdLGk9blt0LnddO2JqdC5pc1VuZGVmaW5lZChlKXx8Ymp0LmlzVW5kZWZpbmVkKGkpfHwoaS5pbmRlZ3JlZSsrLGUub3V0LnB1c2goblt0LnddKSl9KSksKGZ1bmN0aW9uIGkodCl7dmFyIGU9W107ZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5tZXJnZWR8fChianQuaXNVbmRlZmluZWQoZS5iYXJ5Y2VudGVyKXx8Ymp0LmlzVW5kZWZpbmVkKHQuYmFyeWNlbnRlcil8fGUuYmFyeWNlbnRlcj49dC5iYXJ5Y2VudGVyKSYmKGZ1bmN0aW9uIG4odCxlKXt2YXIgbj0wLGk9MDt0LndlaWdodCYmKG4rPXQuYmFyeWNlbnRlcip0LndlaWdodCxpKz10LndlaWdodCksZS53ZWlnaHQmJihuKz1lLmJhcnljZW50ZXIqZS53ZWlnaHQsaSs9ZS53ZWlnaHQpLHQudnM9ZS52cy5jb25jYXQodC52cyksdC5iYXJ5Y2VudGVyPW4vaSx0LndlaWdodD1pLHQuaT1NYXRoLm1pbihlLmksdC5pKSxlLm1lcmdlZD0hMH0pKHQsZSl9fWZ1bmN0aW9uIGkoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe24uaW4ucHVzaChlKSwwPT0tLW4uaW5kZWdyZWUmJnQucHVzaChuKX19Zm9yKDt0Lmxlbmd0aDspe3ZhciByPXQucG9wKCk7ZS5wdXNoKHIpLGJqdC5mb3JFYWNoKHIuaW4ucmV2ZXJzZSgpLG4ocikpLGJqdC5mb3JFYWNoKHIub3V0LGkocikpfXJldHVybiBianQubWFwKGJqdC5maWx0ZXIoZSwoZnVuY3Rpb24odCl7cmV0dXJuIXQubWVyZ2VkfSkpLChmdW5jdGlvbih0KXtyZXR1cm4gYmp0LnBpY2sodCxbInZzIiwiaSIsImJhcnljZW50ZXIiLCJ3ZWlnaHQiXSl9KSl9KShianQuZmlsdGVyKG4sKGZ1bmN0aW9uKHQpe3JldHVybiF0LmluZGVncmVlfSkpKX0pKHUsaSk7IShmdW5jdGlvbiBmKHQsZSl7TWp0LmZvckVhY2godCwoZnVuY3Rpb24odCl7dC52cz1NanQuZmxhdHRlbih0LnZzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF0/ZVt0XS52czp0fSkpLCEwKX0pKX0pKGQsYyk7dmFyIG09KGZ1bmN0aW9uIGcodCxlKXt2YXIgbj13anQucGFydGl0aW9uKHQsKGZ1bmN0aW9uKHQpe3JldHVybiB4anQuaGFzKHQsImJhcnljZW50ZXIiKX0pKSxpPW4ubGhzLHI9eGp0LnNvcnRCeShuLnJocywoZnVuY3Rpb24odCl7cmV0dXJuLXQuaX0pKSxvPVtdLGE9MCxzPTAsbD0wO2kuc29ydCgoZnVuY3Rpb24gYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gZS5iYXJ5Y2VudGVyPG4uYmFyeWNlbnRlcj8tMTplLmJhcnljZW50ZXI+bi5iYXJ5Y2VudGVyPzE6dD9uLmktZS5pOmUuaS1uLml9fSkoISFlKSksbD1TanQobyxyLGwpLHhqdC5mb3JFYWNoKGksKGZ1bmN0aW9uKHQpe2wrPXQudnMubGVuZ3RoLG8ucHVzaCh0LnZzKSxhKz10LmJhcnljZW50ZXIqdC53ZWlnaHQscys9dC53ZWlnaHQsbD1TanQobyxyLGwpfSkpO3ZhciB1PXt2czp4anQuZmxhdHRlbihvLCEwKX07cmV0dXJuIHMmJih1LmJhcnljZW50ZXI9YS9zLHUud2VpZ2h0PXMpLHV9KShkLHIpO2lmKHMmJihtLnZzPU1qdC5mbGF0dGVuKFtzLG0udnMsbF0sITApLGUucHJlZGVjZXNzb3JzKHMpLmxlbmd0aCkpe3ZhciBfPWUubm9kZShlLnByZWRlY2Vzc29ycyhzKVswXSkseT1lLm5vZGUoZS5wcmVkZWNlc3NvcnMobClbMF0pO01qdC5oYXMobSwiYmFyeWNlbnRlciIpfHwobS5iYXJ5Y2VudGVyPTAsbS53ZWlnaHQ9MCksbS5iYXJ5Y2VudGVyPShtLmJhcnljZW50ZXIqbS53ZWlnaHQrXy5vcmRlcit5Lm9yZGVyKS8obS53ZWlnaHQrMiksbS53ZWlnaHQrPTJ9cmV0dXJuIG19LE5qdD1vSHQuR3JhcGgsSWp0PWlVdDtmdW5jdGlvbiBSanQodCxlLG4pe3JldHVybiBBanQubWFwKGUsKGZ1bmN0aW9uKGUpe3JldHVybihmdW5jdGlvbiBpKHQsZSxuKXt2YXIgaT0oZnVuY3Rpb24gcih0KXtmb3IodmFyIGU7dC5oYXNOb2RlKGU9RWp0LnVuaXF1ZUlkKCJfcm9vdCIpKTspO3JldHVybiBlfSkodCksbz1uZXcgVGp0KHtjb21wb3VuZDohMH0pLnNldEdyYXBoKHtyb290Oml9KS5zZXREZWZhdWx0Tm9kZUxhYmVsKChmdW5jdGlvbihlKXtyZXR1cm4gdC5ub2RlKGUpfSkpO3JldHVybiBFanQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKHIpe3ZhciBhPXQubm9kZShyKSxzPXQucGFyZW50KHIpOyhhLnJhbms9PT1lfHxhLm1pblJhbms8PWUmJmU8PWEubWF4UmFuaykmJihvLnNldE5vZGUociksby5zZXRQYXJlbnQocixzfHxpKSxFanQuZm9yRWFjaCh0W25dKHIpLChmdW5jdGlvbihlKXt2YXIgbj1lLnY9PT1yP2UudzplLnYsaT1vLmVkZ2UobixyKSxhPUVqdC5pc1VuZGVmaW5lZChpKT8wOmkud2VpZ2h0O28uc2V0RWRnZShuLHIse3dlaWdodDp0LmVkZ2UoZSkud2VpZ2h0K2F9KX0pKSxFanQuaGFzKGEsIm1pblJhbmsiKSYmby5zZXROb2RlKHIse2JvcmRlckxlZnQ6YS5ib3JkZXJMZWZ0W2VdLGJvcmRlclJpZ2h0OmEuYm9yZGVyUmlnaHRbZV19KSl9KSksb30pKHQsZSxuKX0pKX1mdW5jdGlvbiBPanQodCxlKXt2YXIgbj1uZXcgTmp0O0FqdC5mb3JFYWNoKHQsKGZ1bmN0aW9uKHQpe3ZhciBpPXQuZ3JhcGgoKS5yb290LHI9UGp0KHQsaSxuLGUpO0FqdC5mb3JFYWNoKHIudnMsKGZ1bmN0aW9uKGUsbil7dC5ub2RlKGUpLm9yZGVyPW59KSksKGZ1bmN0aW9uIG8odCxlLG4pe3ZhciBpLHI9e307Q2p0LmZvckVhY2gobiwoZnVuY3Rpb24obil7Zm9yKHZhciBvLGEscz10LnBhcmVudChuKTtzOyl7aWYoKG89dC5wYXJlbnQocykpPyhhPXJbb10scltvXT1zKTooYT1pLGk9cyksYSYmYSE9PXMpcmV0dXJuIHZvaWQgZS5zZXRFZGdlKGEscyk7cz1vfX0pKX0pKHQsbixyLnZzKX0pKX1mdW5jdGlvbiB6anQodCxlKXtBanQuZm9yRWFjaChlLChmdW5jdGlvbihlKXtBanQuZm9yRWFjaChlLChmdW5jdGlvbihlLG4pe3Qubm9kZShlKS5vcmRlcj1ufSkpfSkpfXZhciBEanQ9RlZ0LEJqdD1vSHQuR3JhcGgsSGp0PWlVdDtmdW5jdGlvbiBGanQodCxlLG4pe2lmKGU+bil7dmFyIGk9ZTtlPW4sbj1pfXZhciByPXRbZV07cnx8KHRbZV09cj17fSkscltuXT0hMH1mdW5jdGlvbiBWanQodCxlLG4pe2lmKGU+bil7dmFyIGk9ZTtlPW4sbj1pfXJldHVybiBEanQuaGFzKHRbZV0sbil9dmFyIFVqdD1GVnQsamp0PWlVdCxHanQ9RlZ0LFdqdD1KVnQscWp0PWJVdCxZanQ9aVV0Lm5vcm1hbGl6ZVJhbmtzLFhqdD1pVXQucmVtb3ZlRW1wdHlSYW5rcywkanQ9ZnVuY3Rpb24gS2p0KHQpe3ZhciBlPWFqdC5hZGREdW1teU5vZGUodCwicm9vdCIse30sIl9yb290Iiksbj0oZnVuY3Rpb24gaSh0KXt2YXIgZT17fTtmdW5jdGlvbiBuKGkscil7dmFyIG89dC5jaGlsZHJlbihpKTtvJiZvLmxlbmd0aCYmb2p0LmZvckVhY2gobywoZnVuY3Rpb24odCl7bih0LHIrMSl9KSksZVtpXT1yfXJldHVybiBvanQuZm9yRWFjaCh0LmNoaWxkcmVuKCksKGZ1bmN0aW9uKHQpe24odCwxKX0pKSxlfSkodCkscj1vanQubWF4KG9qdC52YWx1ZXMobikpLTEsbz0yKnIrMTt0LmdyYXBoKCkubmVzdGluZ1Jvb3Q9ZSxvanQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3QuZWRnZShlKS5taW5sZW4qPW99KSk7dmFyIGE9KGZ1bmN0aW9uIHModCl7cmV0dXJuIG9qdC5yZWR1Y2UodC5lZGdlcygpLChmdW5jdGlvbihlLG4pe3JldHVybiBlK3QuZWRnZShuKS53ZWlnaHR9KSwwKX0pKHQpKzE7b2p0LmZvckVhY2godC5jaGlsZHJlbigpLChmdW5jdGlvbihpKXtzanQodCxlLG8sYSxyLG4saSl9KSksdC5ncmFwaCgpLm5vZGVSYW5rRmFjdG9yPW99LFpqdD1pVXQsSmp0PW9IdC5HcmFwaCxRanQ9WyJub2Rlc2VwIiwiZWRnZXNlcCIsInJhbmtzZXAiLCJtYXJnaW54IiwibWFyZ2lueSJdLHRHdD17cmFua3NlcDo1MCxlZGdlc2VwOjIwLG5vZGVzZXA6NTAscmFua2RpcjoidGIifSxlR3Q9WyJhY3ljbGljZXIiLCJyYW5rZXIiLCJyYW5rZGlyIiwiYWxpZ24iXSxuR3Q9WyJ3aWR0aCIsImhlaWdodCJdLGlHdD17d2lkdGg6MCxoZWlnaHQ6MH0sckd0PVsibWlubGVuIiwid2VpZ2h0Iiwid2lkdGgiLCJoZWlnaHQiLCJsYWJlbG9mZnNldCJdLG9HdD17bWlubGVuOjEsd2VpZ2h0OjEsd2lkdGg6MCxoZWlnaHQ6MCxsYWJlbG9mZnNldDoxMCxsYWJlbHBvczoiciJ9LGFHdD1bImxhYmVscG9zIl07ZnVuY3Rpb24gc0d0KHQsZSl7cmV0dXJuIEdqdC5tYXBWYWx1ZXMoR2p0LnBpY2sodCxlKSxOdW1iZXIpfWZ1bmN0aW9uIGxHdCh0KXt2YXIgZT17fTtyZXR1cm4gR2p0LmZvckVhY2godCwoZnVuY3Rpb24odCxuKXtlW24udG9Mb3dlckNhc2UoKV09dH0pKSxlfXZhciBjR3QsdUd0LGhHdD1GVnQsZEd0PWlVdCxwR3Q9b0h0LkdyYXBoLGZHdD17Z3JhcGhsaWI6b0h0LGxheW91dDpmdW5jdGlvbiBtR3QodCxlKXt2YXIgbj1lJiZlLmRlYnVnVGltaW5nP1pqdC50aW1lOlpqdC5ub3RpbWU7bigibGF5b3V0IiwoZnVuY3Rpb24oKXt2YXIgZT1uKCIgIGJ1aWxkTGF5b3V0R3JhcGgiLChmdW5jdGlvbigpe3JldHVybihmdW5jdGlvbiBlKHQpe3ZhciBlPW5ldyBKanQoe211bHRpZ3JhcGg6ITAsY29tcG91bmQ6ITB9KSxuPWxHdCh0LmdyYXBoKCkpO3JldHVybiBlLnNldEdyYXBoKEdqdC5tZXJnZSh7fSx0R3Qsc0d0KG4sUWp0KSxHanQucGljayhuLGVHdCkpKSxHanQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKG4pe3ZhciBpPWxHdCh0Lm5vZGUobikpO2Uuc2V0Tm9kZShuLEdqdC5kZWZhdWx0cyhzR3QoaSxuR3QpLGlHdCkpLGUuc2V0UGFyZW50KG4sdC5wYXJlbnQobikpfSkpLEdqdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24obil7dmFyIGk9bEd0KHQuZWRnZShuKSk7ZS5zZXRFZGdlKG4sR2p0Lm1lcmdlKHt9LG9HdCxzR3QoaSxyR3QpLEdqdC5waWNrKGksYUd0KSkpfSkpLGV9KSh0KX0pKTtuKCIgIHJ1bkxheW91dCIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUsbil7bigiICAgIG1ha2VTcGFjZUZvckVkZ2VMYWJlbHMiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1lLmdyYXBoKCk7bi5yYW5rc2VwLz0yLEdqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIGk9ZS5lZGdlKHQpO2kubWlubGVuKj0yLCJjIiE9PWkubGFiZWxwb3MudG9Mb3dlckNhc2UoKSYmKCJUQiI9PT1uLnJhbmtkaXJ8fCJCVCI9PT1uLnJhbmtkaXI/aS53aWR0aCs9aS5sYWJlbG9mZnNldDppLmhlaWdodCs9aS5sYWJlbG9mZnNldCl9KSl9KShlKX0pKSxuKCIgICAgcmVtb3ZlU2VsZkVkZ2VzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7R2p0LmZvckVhY2goZS5lZGdlcygpLChmdW5jdGlvbih0KXtpZih0LnY9PT10Lncpe3ZhciBuPWUubm9kZSh0LnYpO24uc2VsZkVkZ2VzfHwobi5zZWxmRWRnZXM9W10pLG4uc2VsZkVkZ2VzLnB1c2goe2U6dCxsYWJlbDplLmVkZ2UodCl9KSxlLnJlbW92ZUVkZ2UodCl9fSkpfSkoZSl9KSksbigiICAgIGFjeWNsaWMiLChmdW5jdGlvbigpe1dqdC5ydW4oZSl9KSksbigiICAgIG5lc3RpbmdHcmFwaC5ydW4iLChmdW5jdGlvbigpeyRqdChlKX0pKSxuKCIgICAgcmFuayIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe3N3aXRjaChlLmdyYXBoKCkucmFua2VyKXtjYXNlIm5ldHdvcmstc2ltcGxleCI6aWp0KGUpO2JyZWFrO2Nhc2UidGlnaHQtdHJlZSI6IShmdW5jdGlvbiBuKHQpe1FVdCh0KSx0anQodCl9KShlKTticmVhaztjYXNlImxvbmdlc3QtcGF0aCI6bmp0KGUpO2JyZWFrO2RlZmF1bHQ6aWp0KGUpfX0pKFpqdC5hc05vbkNvbXBvdW5kR3JhcGgoZSkpfSkpLG4oIiAgICBpbmplY3RFZGdlTGFiZWxQcm94aWVzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7R2p0LmZvckVhY2goZS5lZGdlcygpLChmdW5jdGlvbih0KXt2YXIgbj1lLmVkZ2UodCk7aWYobi53aWR0aCYmbi5oZWlnaHQpe3ZhciBpPWUubm9kZSh0LnYpLHI9ZS5ub2RlKHQudyk7Wmp0LmFkZER1bW15Tm9kZShlLCJlZGdlLXByb3h5Iix7cmFuazooci5yYW5rLWkucmFuaykvMitpLnJhbmssZTp0fSwiX2VwIil9fSkpfSkoZSl9KSksbigiICAgIHJlbW92ZUVtcHR5UmFua3MiLChmdW5jdGlvbigpe1hqdChlKX0pKSxuKCIgICAgbmVzdGluZ0dyYXBoLmNsZWFudXAiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1lLmdyYXBoKCk7ZS5yZW1vdmVOb2RlKG4ubmVzdGluZ1Jvb3QpLGRlbGV0ZSBuLm5lc3RpbmdSb290LG9qdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7ZS5lZGdlKHQpLm5lc3RpbmdFZGdlJiZlLnJlbW92ZUVkZ2UodCl9KSl9KShlKX0pKSxuKCIgICAgbm9ybWFsaXplUmFua3MiLChmdW5jdGlvbigpe1lqdChlKX0pKSxuKCIgICAgYXNzaWduUmFua01pbk1heCIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe3ZhciBuPTA7R2p0LmZvckVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXt2YXIgaT1lLm5vZGUodCk7aS5ib3JkZXJUb3AmJihpLm1pblJhbms9ZS5ub2RlKGkuYm9yZGVyVG9wKS5yYW5rLGkubWF4UmFuaz1lLm5vZGUoaS5ib3JkZXJCb3R0b20pLnJhbmssbj1HanQubWF4KG4saS5tYXhSYW5rKSl9KSksZS5ncmFwaCgpLm1heFJhbms9bn0pKGUpfSkpLG4oIiAgICByZW1vdmVFZGdlTGFiZWxQcm94aWVzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7R2p0LmZvckVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXt2YXIgbj1lLm5vZGUodCk7ImVkZ2UtcHJveHkiPT09bi5kdW1teSYmKGUuZWRnZShuLmUpLmxhYmVsUmFuaz1uLnJhbmssZS5yZW1vdmVOb2RlKHQpKX0pKX0pKGUpfSkpLG4oIiAgICBub3JtYWxpemUucnVuIiwoZnVuY3Rpb24oKXtxanQucnVuKGUpfSkpLG4oIiAgICBwYXJlbnREdW1teUNoYWlucyIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe3ZhciBuPShmdW5jdGlvbiBpKHQpe3ZhciBlPXt9LG49MDtyZXR1cm4gcmp0LmZvckVhY2godC5jaGlsZHJlbigpLChmdW5jdGlvbiBpKHIpe3ZhciBvPW47cmp0LmZvckVhY2godC5jaGlsZHJlbihyKSxpKSxlW3JdPXtsb3c6byxsaW06bisrfX0pKSxlfSkoZSk7cmp0LmZvckVhY2goZS5ncmFwaCgpLmR1bW15Q2hhaW5zLChmdW5jdGlvbih0KXtmb3IodmFyIGk9ZS5ub2RlKHQpLHI9aS5lZGdlT2JqLG89KGZ1bmN0aW9uIGEodCxlLG4saSl7dmFyIHIsbyxhPVtdLHM9W10sbD1NYXRoLm1pbihlW25dLmxvdyxlW2ldLmxvdyksYz1NYXRoLm1heChlW25dLmxpbSxlW2ldLmxpbSk7cj1uO2Rve3I9dC5wYXJlbnQociksYS5wdXNoKHIpfXdoaWxlKHImJihlW3JdLmxvdz5sfHxjPmVbcl0ubGltKSk7Zm9yKG89cixyPWk7KHI9dC5wYXJlbnQocikpIT09bzspcy5wdXNoKHIpO3JldHVybntwYXRoOmEuY29uY2F0KHMucmV2ZXJzZSgpKSxsY2E6b319KShlLG4sci52LHIudykscz1vLnBhdGgsbD1vLmxjYSxjPTAsdT1zW2NdLGg9ITA7dCE9PXIudzspe2lmKGk9ZS5ub2RlKHQpLGgpe2Zvcig7KHU9c1tjXSkhPT1sJiZlLm5vZGUodSkubWF4UmFuazxpLnJhbms7KWMrKzt1PT09bCYmKGg9ITEpfWlmKCFoKXtmb3IoO2M8cy5sZW5ndGgtMSYmZS5ub2RlKHU9c1tjKzFdKS5taW5SYW5rPD1pLnJhbms7KWMrKzt1PXNbY119ZS5zZXRQYXJlbnQodCx1KSx0PWUuc3VjY2Vzc29ycyh0KVswXX19KSl9KShlKX0pKSxuKCIgICAgYWRkQm9yZGVyU2VnbWVudHMiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXtsanQuZm9yRWFjaChlLmNoaWxkcmVuKCksKGZ1bmN0aW9uIHQobil7dmFyIGk9ZS5jaGlsZHJlbihuKSxyPWUubm9kZShuKTtpZihpLmxlbmd0aCYmbGp0LmZvckVhY2goaSx0KSxsanQuaGFzKHIsIm1pblJhbmsiKSl7ci5ib3JkZXJMZWZ0PVtdLHIuYm9yZGVyUmlnaHQ9W107Zm9yKHZhciBvPXIubWluUmFuayxhPXIubWF4UmFuaysxO288YTsrK28pdWp0KGUsImJvcmRlckxlZnQiLCJfYmwiLG4scixvKSx1anQoZSwiYm9yZGVyUmlnaHQiLCJfYnIiLG4scixvKX19KSl9KShlKX0pKSxuKCIgICAgb3JkZXIiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1JanQubWF4UmFuayhlKSxpPVJqdChlLEFqdC5yYW5nZSgxLG4rMSksImluRWRnZXMiKSxyPVJqdChlLEFqdC5yYW5nZShuLTEsLTEsLTEpLCJvdXRFZGdlcyIpLG89KGZ1bmN0aW9uIGEodCl7dmFyIGU9e30sbj1nanQuZmlsdGVyKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7cmV0dXJuIXQuY2hpbGRyZW4oZSkubGVuZ3RofSkpLGk9Z2p0Lm1heChnanQubWFwKG4sKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5vZGUoZSkucmFua30pKSkscj1nanQubWFwKGdqdC5yYW5nZShpKzEpLChmdW5jdGlvbigpe3JldHVybltdfSkpLG89Z2p0LnNvcnRCeShuLChmdW5jdGlvbihlKXtyZXR1cm4gdC5ub2RlKGUpLnJhbmt9KSk7cmV0dXJuIGdqdC5mb3JFYWNoKG8sKGZ1bmN0aW9uIG4oaSl7aWYoIWdqdC5oYXMoZSxpKSl7ZVtpXT0hMDt2YXIgbz10Lm5vZGUoaSk7cltvLnJhbmtdLnB1c2goaSksZ2p0LmZvckVhY2godC5zdWNjZXNzb3JzKGkpLG4pfX0pKSxyfSkoZSk7emp0KGUsbyk7Zm9yKHZhciBzLGw9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGM9MCx1PTA7dTw0OysrYywrK3Upe09qdChjJTI/aTpyLGMlND49Miksbz1JanQuYnVpbGRMYXllck1hdHJpeChlKTt2YXIgaD1ranQoZSxvKTtoPGwmJih1PTAscz1BanQuY2xvbmVEZWVwKG8pLGw9aCl9emp0KGUscyl9KShlKX0pKSxuKCIgICAgaW5zZXJ0U2VsZkVkZ2VzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7dmFyIG49Wmp0LmJ1aWxkTGF5ZXJNYXRyaXgoZSk7R2p0LmZvckVhY2gobiwoZnVuY3Rpb24odCl7dmFyIG49MDtHanQuZm9yRWFjaCh0LChmdW5jdGlvbih0LGkpe3ZhciByPWUubm9kZSh0KTtyLm9yZGVyPWkrbixHanQuZm9yRWFjaChyLnNlbGZFZGdlcywoZnVuY3Rpb24odCl7Wmp0LmFkZER1bW15Tm9kZShlLCJzZWxmZWRnZSIse3dpZHRoOnQubGFiZWwud2lkdGgsaGVpZ2h0OnQubGFiZWwuaGVpZ2h0LHJhbms6ci5yYW5rLG9yZGVyOmkrICsrbixlOnQuZSxsYWJlbDp0LmxhYmVsfSwiX3NlIil9KSksZGVsZXRlIHIuc2VsZkVkZ2VzfSkpfSkpfSkoZSl9KSksbigiICAgIGFkanVzdENvb3JkaW5hdGVTeXN0ZW0iLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1lLmdyYXBoKCkucmFua2Rpci50b0xvd2VyQ2FzZSgpOyJsciIhPT1uJiYicmwiIT09bnx8ZGp0KGUpfSkoZSl9KSksbigiICAgIHBvc2l0aW9uIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7KGZ1bmN0aW9uIG4odCl7dmFyIGU9amp0LmJ1aWxkTGF5ZXJNYXRyaXgodCksbj10LmdyYXBoKCkucmFua3NlcCxpPTA7VWp0LmZvckVhY2goZSwoZnVuY3Rpb24oZSl7dmFyIHI9VWp0Lm1heChVanQubWFwKGUsKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5vZGUoZSkuaGVpZ2h0fSkpKTtVanQuZm9yRWFjaChlLChmdW5jdGlvbihlKXt0Lm5vZGUoZSkueT1pK3IvMn0pKSxpKz1yK259KSl9KShlPWpqdC5hc05vbkNvbXBvdW5kR3JhcGgoZSkpLFVqdC5mb3JFYWNoKChmdW5jdGlvbiBpKHQpe3ZhciBlLG49SGp0LmJ1aWxkTGF5ZXJNYXRyaXgodCksaT1EanQubWVyZ2UoKGZ1bmN0aW9uIHIodCxlKXt2YXIgbj17fTtyZXR1cm4gRGp0LnJlZHVjZShlLChmdW5jdGlvbiBpKGUscil7dmFyIG89MCxhPTAscz1lLmxlbmd0aCxsPURqdC5sYXN0KHIpO3JldHVybiBEanQuZm9yRWFjaChyLChmdW5jdGlvbihlLGkpe3ZhciBjPShmdW5jdGlvbiB1KHQsZSl7aWYodC5ub2RlKGUpLmR1bW15KXJldHVybiBEanQuZmluZCh0LnByZWRlY2Vzc29ycyhlKSwoZnVuY3Rpb24oZSl7cmV0dXJuIHQubm9kZShlKS5kdW1teX0pKX0pKHQsZSksaD1jP3Qubm9kZShjKS5vcmRlcjpzOyhjfHxlPT09bCkmJihEanQuZm9yRWFjaChyLnNsaWNlKGEsaSsxKSwoZnVuY3Rpb24oZSl7RGp0LmZvckVhY2godC5wcmVkZWNlc3NvcnMoZSksKGZ1bmN0aW9uKGkpe3ZhciByPXQubm9kZShpKSxhPXIub3JkZXI7IShhPG98fGg8YSl8fHIuZHVtbXkmJnQubm9kZShlKS5kdW1teXx8Rmp0KG4saSxlKX0pKX0pKSxhPWkrMSxvPWgpfSkpLHJ9KSksbn0pKHQsbiksKGZ1bmN0aW9uIG8odCxlKXt2YXIgbj17fTtmdW5jdGlvbiBpKGUsaSxyLG8sYSl7dmFyIHM7RGp0LmZvckVhY2goRGp0LnJhbmdlKGksciksKGZ1bmN0aW9uKGkpe3Qubm9kZShzPWVbaV0pLmR1bW15JiZEanQuZm9yRWFjaCh0LnByZWRlY2Vzc29ycyhzKSwoZnVuY3Rpb24oZSl7dmFyIGk9dC5ub2RlKGUpO2kuZHVtbXkmJihpLm9yZGVyPG98fGkub3JkZXI+YSkmJkZqdChuLGUscyl9KSl9KSl9cmV0dXJuIERqdC5yZWR1Y2UoZSwoZnVuY3Rpb24gcihlLG4pe3ZhciByLG89LTEsYT0wO3JldHVybiBEanQuZm9yRWFjaChuLChmdW5jdGlvbihzLGwpe2lmKCJib3JkZXIiPT09dC5ub2RlKHMpLmR1bW15KXt2YXIgYz10LnByZWRlY2Vzc29ycyhzKTtjLmxlbmd0aCYmKHI9dC5ub2RlKGNbMF0pLm9yZGVyLGkobixhLGwsbyxyKSxhPWwsbz1yKX1pKG4sYSxuLmxlbmd0aCxyLGUubGVuZ3RoKX0pKSxufSkpLG59KSh0LG4pKSxhPXt9O0RqdC5mb3JFYWNoKFsidSIsImQiXSwoZnVuY3Rpb24ocil7ZT0idSI9PT1yP246RGp0LnZhbHVlcyhuKS5yZXZlcnNlKCksRGp0LmZvckVhY2goWyJsIiwiciJdLChmdW5jdGlvbihuKXsiciI9PT1uJiYoZT1EanQubWFwKGUsKGZ1bmN0aW9uKHQpe3JldHVybiBEanQudmFsdWVzKHQpLnJldmVyc2UoKX0pKSk7dmFyIG89KCJ1Ij09PXI/dC5wcmVkZWNlc3NvcnM6dC5zdWNjZXNzb3JzKS5iaW5kKHQpLHM9KGZ1bmN0aW9uIGwodCxlLG4saSl7dmFyIHI9e30sbz17fSxhPXt9O3JldHVybiBEanQuZm9yRWFjaChlLChmdW5jdGlvbih0KXtEanQuZm9yRWFjaCh0LChmdW5jdGlvbih0LGUpe3JbdF09dCxvW3RdPXQsYVt0XT1lfSkpfSkpLERqdC5mb3JFYWNoKGUsKGZ1bmN0aW9uKHQpe3ZhciBlPS0xO0RqdC5mb3JFYWNoKHQsKGZ1bmN0aW9uKHQpe3ZhciBzPWkodCk7aWYocy5sZW5ndGgpZm9yKHZhciBsPSgocz1EanQuc29ydEJ5KHMsKGZ1bmN0aW9uKHQpe3JldHVybiBhW3RdfSkpKS5sZW5ndGgtMSkvMixjPU1hdGguZmxvb3IobCksdT1NYXRoLmNlaWwobCk7Yzw9dTsrK2Mpe3ZhciBoPXNbY107b1t0XT09PXQmJmU8YVtoXSYmIVZqdChuLHQsaCkmJihvW2hdPXQsb1t0XT1yW3RdPXJbaF0sZT1hW2hdKX19KSl9KSkse3Jvb3Q6cixhbGlnbjpvfX0pKDAsZSxpLG8pLGM9KGZ1bmN0aW9uIHUodCxlLG4saSxyKXt2YXIgbz17fSxhPShmdW5jdGlvbiBzKHQsZSxuLGkpe3ZhciByPW5ldyBCanQsbz10LmdyYXBoKCksYT0oZnVuY3Rpb24gcyh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkscixvKXt2YXIgYSxzPWkubm9kZShyKSxsPWkubm9kZShvKSxjPTA7aWYoYys9cy53aWR0aC8yLERqdC5oYXMocywibGFiZWxwb3MiKSlzd2l0Y2gocy5sYWJlbHBvcy50b0xvd2VyQ2FzZSgpKXtjYXNlImwiOmE9LXMud2lkdGgvMjticmVhaztjYXNlInIiOmE9cy53aWR0aC8yfWlmKGEmJihjKz1uP2E6LWEpLGE9MCxjKz0ocy5kdW1teT9lOnQpLzIsYys9KGwuZHVtbXk/ZTp0KS8yLGMrPWwud2lkdGgvMixEanQuaGFzKGwsImxhYmVscG9zIikpc3dpdGNoKGwubGFiZWxwb3MudG9Mb3dlckNhc2UoKSl7Y2FzZSJsIjphPWwud2lkdGgvMjticmVhaztjYXNlInIiOmE9LWwud2lkdGgvMn1yZXR1cm4gYSYmKGMrPW4/YTotYSksYT0wLGN9fSkoby5ub2Rlc2VwLG8uZWRnZXNlcCxpKTtyZXR1cm4gRGp0LmZvckVhY2goZSwoZnVuY3Rpb24oZSl7dmFyIGk7RGp0LmZvckVhY2goZSwoZnVuY3Rpb24oZSl7dmFyIG89bltlXTtpZihyLnNldE5vZGUobyksaSl7dmFyIHM9bltpXSxsPXIuZWRnZShzLG8pO3Iuc2V0RWRnZShzLG8sTWF0aC5tYXgoYSh0LGUsaSksbHx8MCkpfWk9ZX0pKX0pKSxyfSkodCxlLG4sciksbD1yPyJib3JkZXJMZWZ0IjoiYm9yZGVyUmlnaHQiO2Z1bmN0aW9uIGModCxlKXtmb3IodmFyIG49YS5ub2RlcygpLGk9bi5wb3AoKSxyPXt9O2k7KXJbaV0/dChpKToocltpXT0hMCxuLnB1c2goaSksbj1uLmNvbmNhdChlKGkpKSksaT1uLnBvcCgpfXJldHVybiBjKChmdW5jdGlvbiB1KHQpe29bdF09YS5pbkVkZ2VzKHQpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5tYXgodCxvW2Uudl0rYS5lZGdlKGUpKX0pLDApfSksYS5wcmVkZWNlc3NvcnMuYmluZChhKSksYygoZnVuY3Rpb24gaChlKXt2YXIgbj1hLm91dEVkZ2VzKGUpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5taW4odCxvW2Uud10tYS5lZGdlKGUpKX0pLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksaT10Lm5vZGUoZSk7biE9PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSYmaS5ib3JkZXJUeXBlIT09bCYmKG9bZV09TWF0aC5tYXgob1tlXSxuKSl9KSxhLnN1Y2Nlc3NvcnMuYmluZChhKSksRGp0LmZvckVhY2goaSwoZnVuY3Rpb24odCl7b1t0XT1vW25bdF1dfSkpLG99KSh0LGUscy5yb290LHMuYWxpZ24sInIiPT09bik7InIiPT09biYmKGM9RGp0Lm1hcFZhbHVlcyhjLChmdW5jdGlvbih0KXtyZXR1cm4tdH0pKSksYVtyK25dPWN9KSl9KSk7dmFyIHM9KGZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gRGp0Lm1pbkJ5KERqdC52YWx1ZXMoZSksKGZ1bmN0aW9uKGUpe3ZhciBuPU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxpPU51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gRGp0LmZvckluKGUsKGZ1bmN0aW9uKGUscil7dmFyIG89KGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gdC5ub2RlKGUpLndpZHRofSkodCxyKS8yO249TWF0aC5tYXgoZStvLG4pLGk9TWF0aC5taW4oZS1vLGkpfSkpLG4taX0pKX0pKHQsYSk7cmV0dXJuKGZ1bmN0aW9uIGModCxlKXt2YXIgbj1EanQudmFsdWVzKGUpLGk9RGp0Lm1pbihuKSxyPURqdC5tYXgobik7RGp0LmZvckVhY2goWyJ1IiwiZCJdLChmdW5jdGlvbihuKXtEanQuZm9yRWFjaChbImwiLCJyIl0sKGZ1bmN0aW9uKG8pe3ZhciBhLHM9bitvLGw9dFtzXTtpZihsIT09ZSl7dmFyIGM9RGp0LnZhbHVlcyhsKTsoYT0ibCI9PT1vP2ktRGp0Lm1pbihjKTpyLURqdC5tYXgoYykpJiYodFtzXT1EanQubWFwVmFsdWVzKGwsKGZ1bmN0aW9uKHQpe3JldHVybiB0K2F9KSkpfX0pKX0pKX0pKGEscyksKGZ1bmN0aW9uIHUodCxlKXtyZXR1cm4gRGp0Lm1hcFZhbHVlcyh0LnVsLChmdW5jdGlvbihuLGkpe2lmKGUpcmV0dXJuIHRbZS50b0xvd2VyQ2FzZSgpXVtpXTt2YXIgcj1EanQuc29ydEJ5KERqdC5tYXAodCxpKSk7cmV0dXJuKHJbMV0rclsyXSkvMn0pKX0pKGEsdC5ncmFwaCgpLmFsaWduKX0pKGUpLChmdW5jdGlvbih0LG4pe2Uubm9kZShuKS54PXR9KSl9KShlKX0pKSxuKCIgICAgcG9zaXRpb25TZWxmRWRnZXMiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXtHanQuZm9yRWFjaChlLm5vZGVzKCksKGZ1bmN0aW9uKHQpe3ZhciBuPWUubm9kZSh0KTtpZigic2VsZmVkZ2UiPT09bi5kdW1teSl7dmFyIGk9ZS5ub2RlKG4uZS52KSxyPWkueCtpLndpZHRoLzIsbz1pLnksYT1uLngtcixzPWkuaGVpZ2h0LzI7ZS5zZXRFZGdlKG4uZSxuLmxhYmVsKSxlLnJlbW92ZU5vZGUodCksbi5sYWJlbC5wb2ludHM9W3t4OnIrMiphLzMseTpvLXN9LHt4OnIrNSphLzYseTpvLXN9LHt4OnIrYSx5Om99LHt4OnIrNSphLzYseTpvK3N9LHt4OnIrMiphLzMseTpvK3N9XSxuLmxhYmVsLng9bi54LG4ubGFiZWwueT1uLnl9fSkpfSkoZSl9KSksbigiICAgIHJlbW92ZUJvcmRlck5vZGVzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7R2p0LmZvckVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXtpZihlLmNoaWxkcmVuKHQpLmxlbmd0aCl7dmFyIG49ZS5ub2RlKHQpLGk9ZS5ub2RlKG4uYm9yZGVyVG9wKSxyPWUubm9kZShuLmJvcmRlckJvdHRvbSksbz1lLm5vZGUoR2p0Lmxhc3Qobi5ib3JkZXJMZWZ0KSksYT1lLm5vZGUoR2p0Lmxhc3Qobi5ib3JkZXJSaWdodCkpO24ud2lkdGg9TWF0aC5hYnMoYS54LW8ueCksbi5oZWlnaHQ9TWF0aC5hYnMoci55LWkueSksbi54PW8ueCtuLndpZHRoLzIsbi55PWkueStuLmhlaWdodC8yfX0pKSxHanQuZm9yRWFjaChlLm5vZGVzKCksKGZ1bmN0aW9uKHQpeyJib3JkZXIiPT09ZS5ub2RlKHQpLmR1bW15JiZlLnJlbW92ZU5vZGUodCl9KSl9KShlKX0pKSxuKCIgICAgbm9ybWFsaXplLnVuZG8iLChmdW5jdGlvbigpe3FqdC51bmRvKGUpfSkpLG4oIiAgICBmaXh1cEVkZ2VMYWJlbENvb3JkcyIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe0dqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG49ZS5lZGdlKHQpO2lmKEdqdC5oYXMobiwieCIpKXN3aXRjaCgibCIhPT1uLmxhYmVscG9zJiYiciIhPT1uLmxhYmVscG9zfHwobi53aWR0aC09bi5sYWJlbG9mZnNldCksbi5sYWJlbHBvcyl7Y2FzZSJsIjpuLngtPW4ud2lkdGgvMituLmxhYmVsb2Zmc2V0O2JyZWFrO2Nhc2UiciI6bi54Kz1uLndpZHRoLzIrbi5sYWJlbG9mZnNldH19KSl9KShlKX0pKSxuKCIgICAgdW5kb0Nvb3JkaW5hdGVTeXN0ZW0iLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1lLmdyYXBoKCkucmFua2Rpci50b0xvd2VyQ2FzZSgpOyJidCIhPT1uJiYicmwiIT09bnx8KGZ1bmN0aW9uIGkodCl7aGp0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihlKXtmanQodC5ub2RlKGUpKX0pKSxoanQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3ZhciBuPXQuZWRnZShlKTtoanQuZm9yRWFjaChuLnBvaW50cyxmanQpLGhqdC5oYXMobiwieSIpJiZmanQobil9KSl9KShlKSwibHIiIT09biYmInJsIiE9PW58fCgoZnVuY3Rpb24gcih0KXtoanQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe21qdCh0Lm5vZGUoZSkpfSkpLGhqdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24oZSl7dmFyIG49dC5lZGdlKGUpO2hqdC5mb3JFYWNoKG4ucG9pbnRzLG1qdCksaGp0LmhhcyhuLCJ4IikmJm1qdChuKX0pKX0pKGUpLGRqdChlKSl9KShlKX0pKSxuKCIgICAgdHJhbnNsYXRlR3JhcGgiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksaT0wLHI9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLG89MCxhPWUuZ3JhcGgoKSxzPWEubWFyZ2lueHx8MCxsPWEubWFyZ2lueXx8MDtmdW5jdGlvbiBjKHQpe3ZhciBlPXQueCxhPXQueSxzPXQud2lkdGgsbD10LmhlaWdodDtuPU1hdGgubWluKG4sZS1zLzIpLGk9TWF0aC5tYXgoaSxlK3MvMikscj1NYXRoLm1pbihyLGEtbC8yKSxvPU1hdGgubWF4KG8sYStsLzIpfUdqdC5mb3JFYWNoKGUubm9kZXMoKSwoZnVuY3Rpb24odCl7YyhlLm5vZGUodCkpfSkpLEdqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG49ZS5lZGdlKHQpO0dqdC5oYXMobiwieCIpJiZjKG4pfSkpLG4tPXMsci09bCxHanQuZm9yRWFjaChlLm5vZGVzKCksKGZ1bmN0aW9uKHQpe3ZhciBpPWUubm9kZSh0KTtpLngtPW4saS55LT1yfSkpLEdqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIGk9ZS5lZGdlKHQpO0dqdC5mb3JFYWNoKGkucG9pbnRzLChmdW5jdGlvbih0KXt0LngtPW4sdC55LT1yfSkpLEdqdC5oYXMoaSwieCIpJiYoaS54LT1uKSxHanQuaGFzKGksInkiKSYmKGkueS09cil9KSksYS53aWR0aD1pLW4rcyxhLmhlaWdodD1vLXIrbH0pKGUpfSkpLG4oIiAgICBhc3NpZ25Ob2RlSW50ZXJzZWN0cyIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe0dqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG4saSxyPWUuZWRnZSh0KSxvPWUubm9kZSh0LnYpLGE9ZS5ub2RlKHQudyk7ci5wb2ludHM/KG49ci5wb2ludHNbMF0saT1yLnBvaW50c1tyLnBvaW50cy5sZW5ndGgtMV0pOihyLnBvaW50cz1bXSxuPWEsaT1vKSxyLnBvaW50cy51bnNoaWZ0KFpqdC5pbnRlcnNlY3RSZWN0KG8sbikpLHIucG9pbnRzLnB1c2goWmp0LmludGVyc2VjdFJlY3QoYSxpKSl9KSl9KShlKX0pKSxuKCIgICAgcmV2ZXJzZVBvaW50cyIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe0dqdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG49ZS5lZGdlKHQpO24ucmV2ZXJzZWQmJm4ucG9pbnRzLnJldmVyc2UoKX0pKX0pKGUpfSkpLG4oIiAgICBhY3ljbGljLnVuZG8iLChmdW5jdGlvbigpe1dqdC51bmRvKGUpfSkpfSkoZSxuKX0pKSxuKCIgIHVwZGF0ZUlucHV0R3JhcGgiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gbih0LGUpe0dqdC5mb3JFYWNoKHQubm9kZXMoKSwoZnVuY3Rpb24obil7dmFyIGk9dC5ub2RlKG4pLHI9ZS5ub2RlKG4pO2kmJihpLng9ci54LGkueT1yLnksZS5jaGlsZHJlbihuKS5sZW5ndGgmJihpLndpZHRoPXIud2lkdGgsaS5oZWlnaHQ9ci5oZWlnaHQpKX0pKSxHanQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKG4pe3ZhciBpPXQuZWRnZShuKSxyPWUuZWRnZShuKTtpLnBvaW50cz1yLnBvaW50cyxHanQuaGFzKHIsIngiKSYmKGkueD1yLngsaS55PXIueSl9KSksdC5ncmFwaCgpLndpZHRoPWUuZ3JhcGgoKS53aWR0aCx0LmdyYXBoKCkuaGVpZ2h0PWUuZ3JhcGgoKS5oZWlnaHR9KSh0LGUpfSkpfSkpfSxkZWJ1Zzp7ZGVidWdPcmRlcmluZzpmdW5jdGlvbiBnR3QodCl7dmFyIGU9ZEd0LmJ1aWxkTGF5ZXJNYXRyaXgodCksbj1uZXcgcEd0KHtjb21wb3VuZDohMCxtdWx0aWdyYXBoOiEwfSkuc2V0R3JhcGgoe30pO3JldHVybiBoR3QuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe24uc2V0Tm9kZShlLHtsYWJlbDplfSksbi5zZXRQYXJlbnQoZSwibGF5ZXIiK3Qubm9kZShlKS5yYW5rKX0pKSxoR3QuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKHQpe24uc2V0RWRnZSh0LnYsdC53LHt9LHQubmFtZSl9KSksaEd0LmZvckVhY2goZSwoZnVuY3Rpb24odCxlKXtuLnNldE5vZGUoImxheWVyIitlLHtyYW5rOiJzYW1lIn0pLGhHdC5yZWR1Y2UodCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zZXRFZGdlKHQsZSx7c3R5bGU6ImludmlzIn0pLGV9KSl9KSksbn19LHV0aWw6e3RpbWU6aVV0LnRpbWUsbm90aW1lOmlVdC5ub3RpbWV9LHZlcnNpb246IjAuOC41In07IShmdW5jdGlvbih0KXt0LkZFVENIX1BCVFhUX0JZVEVTPSJGRVRDSF9QQlRYVF9CWVRFUyIsdC5GRVRDSF9QQlRYVF9CWVRFU19GUk9NX0ZJTEVTWVNURU09IkZFVENIX1BCVFhUX0JZVEVTX0ZST01fRklMRVNZU1RFTSIsdC5GRVRDSF9QQlRYVF9CWVRFU19GUk9NX1NFUlZFUj0iRkVUQ0hfUEJUWFRfQllURVNfRlJPTV9TRVJWRVIiLHQuUEFSU0VfUEJUWFRfSU5UT19PQkpFQ1Q9IlBBUlNFX1BCVFhUX0lOVE9fT0JKRUNUIix0LkZFVENIX01FVEFEQVRBX1BCVFhUX0JZVEVTPSJGRVRDSF9NRVRBREFUQV9QQlRYVF9CWVRFUyIsdC5QQVJTRV9NRVRBREFUQV9QQlRYVF9JTlRPX09CSkVDVD0iUEFSU0VfTUVUQURBVEFfUEJUWFRfSU5UT19PQkpFQ1QiLHQuTk9STUFMSVpJTkdfTkFNRVM9Ik5PUk1BTElaSU5HX05BTUVTIix0LkJVSUxEX1NMSU1fR1JBUEg9IkJVSUxEX1NMSU1fR1JBUEgiLHQuSElFUkFSQ0hZX0FERF9OT0RFUz0iSElFUkFSQ0hZX0FERF9OT0RFUyIsdC5ISUVSQVJDSFlfREVURUNUX1NFUklFUz0iSElFUkFSQ0hZX0RFVEVDVF9TRVJJRVMiLHQuSElFUkFSQ0hZX0FERF9FREdFUz0iSElFUkFSQ0hZX0FERF9FREdFUyIsdC5ISUVSQVJDSFlfRklORF9TSU1JTEFSX1NVQkdSQVBIUz0iSElFUkFSQ0hZX0ZJTkRfU0lNSUxBUl9TVUJHUkFQSFMiLHQuUkVOREVSX0JVSUxEX0hJRVJBUkNIWT0iUkVOREVSX0JVSUxEX0hJRVJBUkNIWSIsdC5SRU5ERVJfU0NFTkVfTEFZT1VUPSJSRU5ERVJfU0NFTkVfTEFZT1VUIix0LlJFTkRFUl9TQ0VORV9CVUlMRF9TQ0VORT0iUkVOREVSX1NDRU5FX0JVSUxEX1NDRU5FIix0LkdSQVBIX0xPQURfU1VDQ0VFREVEPSJHUkFQSF9MT0FEX1NVQ0NFRURFRCIsdC5HUkFQSF9MT0FEX0ZBSUxFRD0iR1JBUEhfTE9BRF9GQUlMRUQifSkoY0d0fHwoY0d0PXt9KSksKGZ1bmN0aW9uKHQpe3QuTk9ERV9FWFBBTlNJT05fVE9HR0xFRD0iTk9ERV9FWFBBTlNJT05fVE9HR0xFRCIsdC5OT0RFX1NFQVJDSF9SRVNVTFRfRk9DVVNFRD0iTk9ERV9TRUFSQ0hfUkVTVUxUX0ZPQ1VTRUQiLHQuTk9ERV9BVVhJTElBUllfRVhUUkFDVElPTl9DSEFOR0VEPSJOT0RFX0FVWElMSUFSWV9FWFRSQUNUSU9OX0NIQU5HRUQiLHQuR1JBUEhfVFlQRV9DSEFOR0VEPSJHUkFQSF9UWVBFX0NIQU5HRUQiLHQuVFJBQ0VfSU5QVVRfTU9ERV9UT0dHTEVEPSJUUkFDRV9JTlBVVF9NT0RFX1RPR0dMRUQiLHQuTk9ERV9DT0xPUl9NT0RFX0NIQU5HRUQ9Ik5PREVfQ09MT1JfTU9ERV9DSEFOR0VEIix0LlVQTE9BREVEX0dSQVBIX0ZST01fRklMRVNZU1RFTT0iVVBMT0FERURfR1JBUEhfRlJPTV9GSUxFU1lTVEVNIn0pKHVHdHx8KHVHdD17fSkpO2NvbnN0IF9HdD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY0d0KSx1R3QpO3ZhciB5R3Q7IShmdW5jdGlvbih0KXt0Lk9QX0dSQVBIPSJvcF9ncmFwaCIsdC5DT05DRVBUVUFMX0dSQVBIPSJjb25jZXB0dWFsX2dyYXBoIix0LlBST0ZJTEU9InByb2ZpbGUifSkoeUd0fHwoeUd0PXt9KSk7bGV0IHZHdD17Tm9kZTp7Q09OVEFJTkVSOiJub2RlcyIsR1JPVVA6Im5vZGUiLFNIQVBFOiJub2Rlc2hhcGUiLENPTE9SX1RBUkdFVDoibm9kZWNvbG9ydGFyZ2V0IixMQUJFTDoibm9kZWxhYmVsIixCVVRUT05fQ09OVEFJTkVSOiJidXR0b25jb250YWluZXIiLEJVVFRPTl9DSVJDTEU6ImJ1dHRvbmNpcmNsZSIsRVhQQU5EX0JVVFRPTjoiZXhwYW5kYnV0dG9uIixDT0xMQVBTRV9CVVRUT046ImNvbGxhcHNlYnV0dG9uIn0sRWRnZTp7Q09OVEFJTkVSOiJlZGdlcyIsR1JPVVA6ImVkZ2UiLExJTkU6ImVkZ2VsaW5lIixSRUZFUkVOQ0VfRURHRToicmVmZXJlbmNlZWRnZSIsUkVGX0xJTkU6InJlZmxpbmUiLFNFTEVDVEFCTEU6InNlbGVjdGFibGVlZGdlIixTRUxFQ1RFRDoic2VsZWN0ZWRlZGdlIixTVFJVQ1RVUkFMOiJzdHJ1Y3R1cmFsIn0sQW5ub3RhdGlvbjp7T1VUQk9YOiJvdXQtYW5ub3RhdGlvbnMiLElOQk9YOiJpbi1hbm5vdGF0aW9ucyIsR1JPVVA6ImFubm90YXRpb24iLE5PREU6ImFubm90YXRpb24tbm9kZSIsRURHRToiYW5ub3RhdGlvbi1lZGdlIixDT05UUk9MX0VER0U6ImFubm90YXRpb24tY29udHJvbC1lZGdlIixMQUJFTDoiYW5ub3RhdGlvbi1sYWJlbCIsRUxMSVBTSVM6ImFubm90YXRpb24tZWxsaXBzaXMifSxTY2VuZTp7R1JPVVA6InNjZW5lIixDT1JFOiJjb3JlIixGVU5DVElPTl9MSUJSQVJZOiJmdW5jdGlvbi1saWJyYXJ5IixJTkVYVFJBQ1Q6ImluLWV4dHJhY3QiLE9VVEVYVFJBQ1Q6Im91dC1leHRyYWN0In0sU3Vic2NlbmU6e0dST1VQOiJzdWJzY2VuZSJ9LE9QTk9ERToib3AiLE1FVEFOT0RFOiJtZXRhIixTRVJJRVNOT0RFOiJzZXJpZXMiLEJSSURHRU5PREU6ImJyaWRnZSIsRUxMSVBTSVNOT0RFOiJlbGxpcHNpcyJ9O2NvbnN0IGJHdD0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciO2Z1bmN0aW9uIHhHdCh0LGUsbil7bGV0IGk9dC5ub2RlKCkuY2hpbGROb2Rlcztmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyl7bGV0IHI9aVt0XTtpZihyLnRhZ05hbWU9PT1lKWlmKG4gaW5zdGFuY2VvZiBBcnJheSl7bGV0IHQ9ITA7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspdD10JiZyLmNsYXNzTGlzdC5jb250YWlucyhuW2VdKTtpZih0KXJldHVybiBTdShyKX1lbHNlIGlmKCFufHxyLmNsYXNzTGlzdC5jb250YWlucyhuKSlyZXR1cm4gU3Uocil9cmV0dXJuIFN1KG51bGwpfWZ1bmN0aW9uIHdHdCh0LGUsbixpKXtsZXQgcj14R3QodCxlLG4pO2lmKCFyLmVtcHR5KCkpcmV0dXJuIHI7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZSk7aWYobiBpbnN0YW5jZW9mIEFycmF5KWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKW8uY2xhc3NMaXN0LmFkZChuW3RdKTtlbHNlIG8uY2xhc3NMaXN0LmFkZChuKTtyZXR1cm4gaT90Lm5vZGUoKS5pbnNlcnRCZWZvcmUobyxpKTp0Lm5vZGUoKS5hcHBlbmRDaGlsZChvKSxTdShvKS5kYXR1bSh0LmRhdHVtKCkpfWNsYXNzIFNHdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnRvdGFsQnl0ZXM9MCx0aGlzLm91dHB1dFNpemU9dH1hZGRFeGVjdXRpb25UaW1lKHQsZSl7dGhpcy5zdGFydFRpbWU9bnVsbCE9dGhpcy5zdGFydFRpbWU/TWF0aC5taW4odGhpcy5zdGFydFRpbWUsdCk6dCx0aGlzLmVuZFRpbWU9bnVsbCE9dGhpcy5lbmRUaW1lP01hdGgubWF4KHRoaXMuZW5kVGltZSxlKTplfWFkZEJ5dGVzQWxsb2NhdGlvbih0KXt0aGlzLnRvdGFsQnl0ZXM9bnVsbCE9dGhpcy50b3RhbEJ5dGVzP01hdGgubWF4KHRoaXMudG90YWxCeXRlcyx0KTp0fWNvbWJpbmUodCl7bnVsbCE9dC50b3RhbEJ5dGVzJiYodGhpcy50b3RhbEJ5dGVzKz10LnRvdGFsQnl0ZXMpLG51bGwhPXQuZ2V0VG90YWxNaWNyb3MoKSYmdGhpcy5hZGRFeGVjdXRpb25UaW1lKHQuc3RhcnRUaW1lLHQuZW5kVGltZSl9Z2V0VG90YWxNaWNyb3MoKXtyZXR1cm4gbnVsbD09dGhpcy5zdGFydFRpbWV8fG51bGw9PXRoaXMuZW5kVGltZT9udWxsOnRoaXMuZW5kVGltZS10aGlzLnN0YXJ0VGltZX19Y29uc3QgTUd0PS43NSxFR3Q9ckUoKS5leHBvbmVudCguMykuZG9tYWluKFsxLDVlNl0pLnJhbmdlKFtNR3QsMTJdKS5jbGFtcCghMCk7ZnVuY3Rpb24gVEd0KHQpeyEoZnVuY3Rpb24gZSh0KXt0Lmhhc093blByb3BlcnR5KCJ0aW1pbmdJZCIpfSkodCl9ZnVuY3Rpb24gQ0d0KHQsZSxuKXtsZXQgaT1EYXRlLm5vdygpLHI9ZSgpO2NvbnN0IG89RGF0ZS5ub3coKS1pO3JldHVybiBjb25zb2xlLmxvZyh0LCI6IixvLCJtcyIpLG4mJlRHdCh7dGltaW5nSWQ6bixldmVudFZhbHVlOm99KSxyfWZ1bmN0aW9uIEFHdCh0KXtyZXR1cm57c2V0TWVzc2FnZTpmdW5jdGlvbihlKXt0LnNldCgicHJvZ3Jlc3MiLHt2YWx1ZTp0LnByb2dyZXNzLnZhbHVlLG1zZzplfSl9LHVwZGF0ZVByb2dyZXNzOmZ1bmN0aW9uKGUpe3Quc2V0KCJwcm9ncmVzcyIse3ZhbHVlOnQucHJvZ3Jlc3MudmFsdWUrZSxtc2c6dC5wcm9ncmVzcy5tc2d9KX0scmVwb3J0RXJyb3I6ZnVuY3Rpb24oZSxuKXtjb25zb2xlLmVycm9yKG4uc3RhY2spLHQuc2V0KCJwcm9ncmVzcyIse3ZhbHVlOnQucHJvZ3Jlc3MudmFsdWUsbXNnOmUsZXJyb3I6ITB9KX19fWZ1bmN0aW9uIGtHdCh0LGUsbil7cmV0dXJue3NldE1lc3NhZ2U6ZnVuY3Rpb24oZSl7dC5zZXRNZXNzYWdlKG4rIjogIitlKX0sdXBkYXRlUHJvZ3Jlc3M6ZnVuY3Rpb24obil7dC51cGRhdGVQcm9ncmVzcyhuKmUvMTAwKX0scmVwb3J0RXJyb3I6ZnVuY3Rpb24oZSxpKXt0LnJlcG9ydEVycm9yKG4rIjogIitlLGkpfX19ZnVuY3Rpb24gTEd0KHQsZSxuLGkscil7cmV0dXJuIG5ldyBQcm9taXNlKCgobyxhKT0+e2kuc2V0TWVzc2FnZSh0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3RyeXtsZXQgYT1DR3QodCxuLHIpO2kudXBkYXRlUHJvZ3Jlc3MoZSksbyhhKX1jYXRjaChlKXtpLnJlcG9ydEVycm9yKCJGYWlsZWQgIit0LGUpfX0pLDIwKX0pKX1mdW5jdGlvbiBQR3QodCxlLG4saSxyKXtyZXR1cm4gbmV3IFByb21pc2UoKChvLGEpPT57bGV0IHM9ZnVuY3Rpb24oZSl7aS5yZXBvcnRFcnJvcigiRmFpbGVkICIrdCxlKSxhKGUpfTtpLnNldE1lc3NhZ2UodCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0cnl7bGV0IGE9RGF0ZS5ub3coKTtuKCkudGhlbigoZnVuY3Rpb24obil7Y29uc3Qgcz1EYXRlLm5vdygpLWE7Y29uc29sZS5sb2codCwiOiIscywibXMiKSxpLnVwZGF0ZVByb2dyZXNzKGUpLFRHdCh7dGltaW5nSWQ6cixldmVudFZhbHVlOnN9KSxvKG4pfSkpLmNhdGNoKHMpfWNhdGNoKHQpe3ModCl9fSksMjApfSkpfWNvbnN0IE5HdD1be3N5bWJvbDoiQiJ9LHtzeW1ib2w6IktCIixudW1Vbml0czoxMDI0fSx7c3ltYm9sOiJNQiIsbnVtVW5pdHM6MTAyNH0se3N5bWJvbDoiR0IiLG51bVVuaXRzOjEwMjR9LHtzeW1ib2w6IlRCIixudW1Vbml0czoxMDI0fSx7c3ltYm9sOiJQQiIsbnVtVW5pdHM6MTAyNH1dLElHdD1be3N5bWJvbDoiwrVzIn0se3N5bWJvbDoibXMiLG51bVVuaXRzOjFlM30se3N5bWJvbDoicyIsbnVtVW5pdHM6MWUzfSx7c3ltYm9sOiJtaW4iLG51bVVuaXRzOjYwfSx7c3ltYm9sOiJociIsbnVtVW5pdHM6NjB9LHtzeW1ib2w6ImRheXMiLG51bVVuaXRzOjI0fV07ZnVuY3Rpb24gUkd0KHQsZSxuPTApe3JldHVybiBuKzE8ZS5sZW5ndGgmJnQ+PWVbbisxXS5udW1Vbml0cz9SR3QodC9lW24rMV0ubnVtVW5pdHMsZSxuKzEpOk51bWJlcih0LnRvUHJlY2lzaW9uKDMpKSsiICIrZVtuXS5zeW1ib2x9ZnVuY3Rpb24gT0d0KHQpe3JldHVybiEoIXR8fCEodC50b3RhbEJ5dGVzPjB8fHQuZ2V0VG90YWxNaWNyb3MoKT4wfHx0Lm91dHB1dFNpemUpKX1mdW5jdGlvbiB6R3QodCl7aWYodC5sZW5ndGg8MilyZXR1cm4gdDtsZXQgZT0wLG49MCxpPVNlLmV4cG9ydHMubWluKFNlLmV4cG9ydHMubWFwKHQsKHQ9PnQubGVuZ3RoKSkpO2Zvcig7Oyl7ZSsrO2xldCByPVNlLmV4cG9ydHMubWFwKHQsKHQ9PnQuc3Vic3RyaW5nKDAsZSkpKTtpZighci5ldmVyeSgoKHQsZSk9PjA9PT1lfHx0PT09cltlLTFdKSkpYnJlYWs7aWYoZT49aSlyZXR1cm4gdDtuPWV9cmV0dXJuIFNlLmV4cG9ydHMubWFwKHQsKHQ9PnQuc3Vic3RyaW5nKG4pKSl9Y29uc3QgREd0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7ZnVuY3Rpb24gQkd0KHQsZSl7cmV0dXJuIERHdC5mb250PWAke2V9cHggUm9ib3RvLCBzYW5zLXNlcmlmYCxER3QubWVhc3VyZVRleHQodCkud2lkdGh9Y29uc3QgSEd0PSIvIixGR3Q9Il9fcm9vdF9fIixWR3Q9Il9fZnVuY3Rpb25fbGlicmFyeV9fIjt2YXIgVUd0LGpHdCxHR3QsV0d0OyEoZnVuY3Rpb24odCl7dFt0LkZVTEw9MF09IkZVTEwiLHRbdC5FTUJFRERFRD0xXT0iRU1CRURERUQiLHRbdC5NRVRBPTJdPSJNRVRBIix0W3QuU0VSSUVTPTNdPSJTRVJJRVMiLHRbdC5DT1JFPTRdPSJDT1JFIix0W3QuU0hBRE9XPTVdPSJTSEFET1ciLHRbdC5CUklER0U9Nl09IkJSSURHRSIsdFt0LkVER0U9N109IkVER0UifSkoVUd0fHwoVUd0PXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5NRVRBPTBdPSJNRVRBIix0W3QuT1A9MV09Ik9QIix0W3QuU0VSSUVTPTJdPSJTRVJJRVMiLHRbdC5CUklER0U9M109IkJSSURHRSIsdFt0LkVMTElQU0lTPTRdPSJFTExJUFNJUyJ9KShqR3R8fChqR3Q9e30pKSwoZnVuY3Rpb24odCl7dFt0LklOQ0xVREU9MF09IklOQ0xVREUiLHRbdC5FWENMVURFPTFdPSJFWENMVURFIix0W3QuVU5TUEVDSUZJRUQ9Ml09IlVOU1BFQ0lGSUVEIn0pKEdHdHx8KEdHdD17fSkpLChmdW5jdGlvbih0KXt0W3QuR1JPVVA9MF09IkdST1VQIix0W3QuVU5HUk9VUD0xXT0iVU5HUk9VUCJ9KShXR3R8fChXR3Q9e30pKTtjbGFzcyBxR3R7Y29uc3RydWN0b3IoKXt0aGlzLm5vZGVzPXt9LHRoaXMuZWRnZXM9W119fWNsYXNzIFlHdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnR5cGU9akd0LkVMTElQU0lTLHRoaXMuaXNHcm91cE5vZGU9ITEsdGhpcy5jYXJkaW5hbGl0eT0xLHRoaXMucGFyZW50Tm9kZT1udWxsLHRoaXMuc3RhdHM9bnVsbCx0aGlzLnNldE51bU1vcmVOb2Rlcyh0KSx0aGlzLmluY2x1ZGU9R0d0LlVOU1BFQ0lGSUVEfXNldE51bU1vcmVOb2Rlcyh0KXt0aGlzLm51bU1vcmVOb2Rlcz10LHRoaXMubmFtZT0iLi4uICIrdCsiIG1vcmUifX1jbGFzcyBYR3R7Y29uc3RydWN0b3IodCl7dGhpcy5vcD10Lm9wLHRoaXMubmFtZT10Lm5hbWUsdGhpcy5kZXZpY2U9dC5kZXZpY2UsdGhpcy5hdHRyPXQuYXR0cix0aGlzLmlucHV0cz0oZnVuY3Rpb24gZSh0KXtjb25zdCBlPVtdO2xldCBuPW51bGw7Zm9yKGxldCBpIG9mIHR8fFtdKXtjb25zdCB0PWkuc3RhcnRzV2l0aCgiXiIpO3QmJihpPWkuc3Vic3RyaW5nKDEpKTtsZXQgcj1pLG89IjAiO2NvbnN0IGE9aS5pbmNsdWRlcygiOiIpJiZpLm1hdGNoKG5XdCk7YSYmKHI9YVsxXSxvPWFbMl0pLG4hPT1yJiYobj1yLGUucHVzaCh7bmFtZTpyLG91dHB1dFRlbnNvcktleTpvLGlzQ29udHJvbERlcGVuZGVuY3k6dH0pKX1yZXR1cm4gZX0pKHQuaW5wdXQpLHRoaXMub3V0cHV0U2hhcGVzPShmdW5jdGlvbiBuKHQpe2lmKCF0KXJldHVybiBudWxsO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXR7a2V5Om4sdmFsdWU6aX09dFtlXTtpZigiX291dHB1dF9zaGFwZXMiPT09bil7aWYoIWkubGlzdHx8IWkubGlzdC5zaGFwZSlyZXR1cm4gbnVsbDtsZXQgbj1pLmxpc3Quc2hhcGUubWFwKCh0PT50LnVua25vd25fcmFuaz9udWxsOm51bGw9PXQuZGltfHwxPT09dC5kaW0ubGVuZ3RoJiZudWxsPT10LmRpbVswXS5zaXplP1tdOnQuZGltLm1hcCgodD0+dC5zaXplKSkpKTtyZXR1cm4gdC5zcGxpY2UoZSwxKSxufX1yZXR1cm4gbnVsbH0pKHQuYXR0ciksdGhpcy54bGFDbHVzdGVyPShmdW5jdGlvbiBpKHQpe2lmKCF0KXJldHVybiBudWxsO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKCJfWGxhQ2x1c3RlciI9PT10W2VdLmtleSlyZXR1cm4gdFtlXS52YWx1ZS5zfHxudWxsO3JldHVybiBudWxsfSkodC5hdHRyKSx0aGlzLmNvbXBhdGlibGU9ITEsdGhpcy50eXBlPWpHdC5PUCx0aGlzLmlzR3JvdXBOb2RlPSExLHRoaXMuY2FyZGluYWxpdHk9MSx0aGlzLmluRW1iZWRkaW5ncz1bXSx0aGlzLm91dEVtYmVkZGluZ3M9W10sdGhpcy5wYXJlbnROb2RlPW51bGwsdGhpcy5pbmNsdWRlPUdHdC5VTlNQRUNJRklFRCx0aGlzLm93bmluZ1Nlcmllcz1udWxsfX1mdW5jdGlvbiAkR3QodCxlPXt9KXtyZXR1cm4gbmV3IEtHdCh0LGUpfWNsYXNzIEtHdHtjb25zdHJ1Y3Rvcih0LGU9e30pe3RoaXMubmFtZT10LHRoaXMudHlwZT1qR3QuTUVUQSx0aGlzLmRlcHRoPTEsdGhpcy5pc0dyb3VwTm9kZT0hMCx0aGlzLmNhcmRpbmFsaXR5PTAsdGhpcy5tZXRhZ3JhcGg9b1d0KHQsVUd0Lk1FVEEsZSksdGhpcy5icmlkZ2VncmFwaD1udWxsLHRoaXMub3BIaXN0b2dyYW09e30sdGhpcy5kZXZpY2VIaXN0b2dyYW09e30sdGhpcy54bGFDbHVzdGVySGlzdG9ncmFtPXt9LHRoaXMuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbT17Y29tcGF0aWJsZTowLGluY29tcGF0aWJsZTowfSx0aGlzLnRlbXBsYXRlSWQ9bnVsbCx0aGlzLnBhcmVudE5vZGU9bnVsbCx0aGlzLmhhc05vbkNvbnRyb2xFZGdlcz0hMSx0aGlzLmluY2x1ZGU9R0d0LlVOU1BFQ0lGSUVELHRoaXMuYXNzb2NpYXRlZEZ1bmN0aW9uPSIifWdldEZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5tZXRhZ3JhcGgubm9kZSh0aGlzLm1ldGFncmFwaC5ub2RlcygpWzBdKX1nZXRSb290T3AoKXtsZXQgdD10aGlzLm5hbWUuc3BsaXQoIi8iKTtyZXR1cm4gdGhpcy5tZXRhZ3JhcGgubm9kZSh0aGlzLm5hbWUrIi8oIit0W3QubGVuZ3RoLTFdKyIpIil9bGVhdmVzKCl7bGV0IHQsZT1bXSxuPVt0aGlzXTtmb3IoO24ubGVuZ3RoOyl7bGV0IGk9bi5zaGlmdCgpO2kuaXNHcm91cE5vZGU/KHQ9aS5tZXRhZ3JhcGgsU2UuZXhwb3J0cy5lYWNoKHQubm9kZXMoKSwoZT0+bi5wdXNoKHQubm9kZShlKSkpKSk6ZS5wdXNoKGkubmFtZSl9cmV0dXJuIGV9fWZ1bmN0aW9uIFpHdCh0LGUpe3JldHVybiBuZXcgSkd0KHQsZSl9Y2xhc3MgSkd0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy52PXQsdGhpcy53PWUsdGhpcy5iYXNlRWRnZUxpc3Q9W10sdGhpcy5pbmJvdW5kPW51bGwsdGhpcy5udW1SZWd1bGFyRWRnZXM9MCx0aGlzLm51bUNvbnRyb2xFZGdlcz0wLHRoaXMubnVtUmVmRWRnZXM9MCx0aGlzLnRvdGFsU2l6ZT0wfWFkZEJhc2VFZGdlKHQsZSl7dGhpcy5iYXNlRWRnZUxpc3QucHVzaCh0KSx0LmlzQ29udHJvbERlcGVuZGVuY3k/dGhpcy5udW1Db250cm9sRWRnZXMrPTE6dGhpcy5udW1SZWd1bGFyRWRnZXMrPTEsdC5pc1JlZmVyZW5jZUVkZ2UmJih0aGlzLm51bVJlZkVkZ2VzKz0xKSx0aGlzLnRvdGFsU2l6ZSs9Skd0LmNvbXB1dGVTaXplT2ZFZGdlKHQsZSksZS5tYXhNZXRhRWRnZVNpemU9TWF0aC5tYXgoZS5tYXhNZXRhRWRnZVNpemUsdGhpcy50b3RhbFNpemUpfXN0YXRpYyBjb21wdXRlU2l6ZU9mRWRnZSh0LGUpe2xldCBuPWUubm9kZSh0LnYpO2lmKCFuLm91dHB1dFNoYXBlcylyZXR1cm4gMTtlLmhhc1NoYXBlSW5mbz0hMDtjb25zdCBpPU9iamVjdC5rZXlzKG4ub3V0cHV0U2hhcGVzKS5tYXAoKHQ9Pm4ub3V0cHV0U2hhcGVzW3RdKSkubWFwKCh0PT5udWxsPT10PzE6dC5yZWR1Y2UoKCh0LGUpPT4oLTE9PT1lJiYoZT0xKSx0KmUpKSwxKSkpO3JldHVybiBTZS5leHBvcnRzLnN1bShpKX19ZnVuY3Rpb24gUUd0KHQsZSxuLGkscixvKXtyZXR1cm4gbmV3IGVXdCh0LGUsbixpLHIsbyl9ZnVuY3Rpb24gdFd0KHQsZSxuLGkscil7cmV0dXJuKG4/bisiLyI6IiIpK3QrKHZvaWQgMCE9PWkmJnZvaWQgMCE9PXI/IlsiK2krIi0iK3IrIl0iOiIjIikrZX1jbGFzcyBlV3R7Y29uc3RydWN0b3IodCxlLG4saSxyLG8pe3RoaXMubmFtZT1yfHx0V3QodCxlLG4pLHRoaXMudHlwZT1qR3QuU0VSSUVTLHRoaXMuaGFzTG9vcD0hMSx0aGlzLnByZWZpeD10LHRoaXMuc3VmZml4PWUsdGhpcy5jbHVzdGVySWQ9aSx0aGlzLmlkcz1bXSx0aGlzLnBhcmVudD1uLHRoaXMuaXNHcm91cE5vZGU9ITAsdGhpcy5jYXJkaW5hbGl0eT0wLHRoaXMubWV0YWdyYXBoPW9XdChyLFVHdC5TRVJJRVMsbyksdGhpcy5icmlkZ2VncmFwaD1udWxsLHRoaXMucGFyZW50Tm9kZT1udWxsLHRoaXMuZGV2aWNlSGlzdG9ncmFtPXt9LHRoaXMueGxhQ2x1c3Rlckhpc3RvZ3JhbT17fSx0aGlzLmNvbXBhdGliaWxpdHlIaXN0b2dyYW09e2NvbXBhdGlibGU6MCxpbmNvbXBhdGlibGU6MH0sdGhpcy5oYXNOb25Db250cm9sRWRnZXM9ITEsdGhpcy5pbmNsdWRlPUdHdC5VTlNQRUNJRklFRH19Y29uc3Qgbld0PS9eKFteOl0rKTooKFx3Kzp8KVxkKykkLztmdW5jdGlvbiBpV3QodCxlLG4saSxyLG8pe2UhPT1uLm5hbWUmJnQuZWRnZXMucHVzaCh7djplLHc6bi5uYW1lLG91dHB1dFRlbnNvcktleTppLm91dHB1dFRlbnNvcktleSxpc0NvbnRyb2xEZXBlbmRlbmN5OmkuaXNDb250cm9sRGVwZW5kZW5jeSxpc1JlZmVyZW5jZUVkZ2U6ITA9PT1yLnJlZkVkZ2VzW24ub3ArIiAiK29dfSl9Y29uc3Qgcld0PXtlbmFibGVFbWJlZGRpbmc6ITAsaW5FbWJlZGRpbmdUeXBlczpbIkNvbnN0Il0sb3V0RW1iZWRkaW5nVHlwZXM6WyJeW2EtekEtWl0rU3VtbWFyeSQiXSxyZWZFZGdlczp7IkFzc2lnbiAwIjohMCwiQXNzaWduQWRkIDAiOiEwLCJBc3NpZ25TdWIgMCI6ITAsImFzc2lnbiAwIjohMCwiYXNzaWduX2FkZCAwIjohMCwiYXNzaWduX3N1YiAwIjohMCwiY291bnRfdXBfdG8gMCI6ITAsIlNjYXR0ZXJBZGQgMCI6ITAsIlNjYXR0ZXJTdWIgMCI6ITAsIlNjYXR0ZXJVcGRhdGUgMCI6ITAsInNjYXR0ZXJfYWRkIDAiOiEwLCJzY2F0dGVyX3N1YiAwIjohMCwic2NhdHRlcl91cGRhdGUgMCI6ITB9fTtmdW5jdGlvbiBvV3QodCxlLG49e30pe2NvbnN0IGk9bmV3IGZHdC5ncmFwaGxpYi5HcmFwaChuKTtyZXR1cm4gaS5zZXRHcmFwaCh7bmFtZTp0LHJhbmtkaXI6bi5yYW5rZGlyfHwiQlQiLHR5cGU6ZX0pLGl9ZnVuY3Rpb24gYVd0KHQpe3JldHVybiBmdW5jdGlvbihlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7bGV0IGk9bmV3IFJlZ0V4cCh0W25dKTtpZigic3RyaW5nIj09dHlwZW9mIGUub3AmJmUub3AubWF0Y2goaSkpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHNXdCh0KXtsZXQgZT10LnNwbGl0KEhHdCk7cmV0dXJuIHQrSEd0KyIoIitlW2UubGVuZ3RoLTFdKyIpIn1mdW5jdGlvbiBsV3QodCl7bGV0IGU9dC5ub2RlcygpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQubmVpZ2hib3JzKGUpLmxlbmd0aH0pKTtyZXR1cm4gZS5zb3J0KCksZX1mdW5jdGlvbiBjV3QodCxlKXtsZXQgbj1bXSxpPXQuaW5kZXhPZihIR3QpO2Zvcig7aT49MDspbi5wdXNoKHQuc3Vic3RyaW5nKDAsaSkpLGk9dC5pbmRleE9mKEhHdCxpKzEpO2lmKGUpe2xldCBpPWVbdF07aSYmbi5wdXNoKGkpfXJldHVybiBuLnB1c2godCksbn1mdW5jdGlvbiB1V3QodCl7cmV0dXJuIHQ9PT1HR3QuRVhDTFVERT8iQWRkIHRvIG1haW4gZ3JhcGgiOiJSZW1vdmUgZnJvbSBtYWluIGdyYXBoIn1sZXQgaFd0PSIjMGY5ZDU4IixkV3Q9IiNkYjQ0MzciLHBXdD17REVGQVVMVF9GSUxMOiIjZDlkOWQ5IixERUZBVUxUX1NUUk9LRToiI2E2YTZhNiIsU0FUVVJBVElPTjouNixMSUdIVE5FU1M6Ljg1LEVYUEFOREVEX0NPTE9SOiIjZjBmMGYwIixIVUVTOlsyMjAsMTAwLDE4MCw0MCwyMCwzNDAsMjYwLDMwMCwxNDAsNjBdLFNUUlVDVFVSRV9QQUxFVFRFKHQsZSl7bGV0IG49cFd0LkhVRVMsaT1uW3Qlbi5sZW5ndGhdLHI9TWF0aC5zaW4oaSpNYXRoLlBJLzM2MCk7cmV0dXJuICRoKGksLjAxKihlPzMwOjkwLTYwKnIpLC4wMSooZT85NTo4MCkpLnRvU3RyaW5nKCl9LERFVklDRV9QQUxFVFRFOnQ9PnBXdC5TVFJVQ1RVUkVfUEFMRVRURSh0KSxYTEFfQ0xVU1RFUl9QQUxFVFRFOnQ9PnBXdC5TVFJVQ1RVUkVfUEFMRVRURSh0KSxVTktOT1dOOiIjZWVlIixHUkFESUVOVF9PVVRMSU5FOiIjODg4In07Y29uc3QgZld0PVsiTm9PcCJdLG1XdD1bXSxnV3Q9WyIjZmZmNWYwIiwiI2ZiNmE0YSJdLF9XdD1uZXcgUmVnRXhwKCJeKD86X19mdW5jdGlvbl9saWJyYXJ5X18pPyhcXHcrKV9bYS16MC05XXs4fSg/Ol9cXGQrKT8kIik7Y2xhc3MgeVd0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmhpZXJhcmNoeT10LHRoaXMuZGlzcGxheWluZ1N0YXRzPWUsdGhpcy5hdXRvRXh0cmFjdE5vZGVzPW4sdGhpcy5pbmRleD17fSx0aGlzLnJlbmRlcmVkT3BOYW1lcz1bXSx0aGlzLmNvbXB1dGVTY2FsZXMoKSx0aGlzLmhhc1N1YmhpZXJhcmNoeT17fSx0aGlzLnJvb3Q9bmV3IFRXdCh0LnJvb3QsdC5ncmFwaE9wdGlvbnMpLHRoaXMuaW5kZXhbdC5yb290Lm5hbWVdPXRoaXMucm9vdCx0aGlzLnJlbmRlcmVkT3BOYW1lcy5wdXNoKHQucm9vdC5uYW1lKSx0aGlzLmJ1aWxkU3ViaGllcmFyY2h5KHQucm9vdC5uYW1lKSx0aGlzLnJvb3QuZXhwYW5kZWQ9ITAsdGhpcy50cmFjZUlucHV0cz0hMX1jb21wdXRlU2NhbGVzKCl7dGhpcy5kZXZpY2VDb2xvck1hcD1FTSgpLmRvbWFpbih0aGlzLmhpZXJhcmNoeS5kZXZpY2VzKS5yYW5nZShTZS5leHBvcnRzLm1hcCh6bCh0aGlzLmhpZXJhcmNoeS5kZXZpY2VzLmxlbmd0aCkscFd0LkRFVklDRV9QQUxFVFRFKSksdGhpcy54bGFDbHVzdGVyQ29sb3JNYXA9RU0oKS5kb21haW4odGhpcy5oaWVyYXJjaHkueGxhQ2x1c3RlcnMpLnJhbmdlKFNlLmV4cG9ydHMubWFwKHpsKHRoaXMuaGllcmFyY2h5LnhsYUNsdXN0ZXJzLmxlbmd0aCkscFd0LlhMQV9DTFVTVEVSX1BBTEVUVEUpKTtsZXQgdD10aGlzLmhpZXJhcmNoeS5yb290Lm1ldGFncmFwaCxlPVdsKHQubm9kZXMoKSwoKGUsbik9PntsZXQgaT10Lm5vZGUoZSk7aWYobnVsbCE9aS5zdGF0cylyZXR1cm4gaS5zdGF0cy50b3RhbEJ5dGVzfSkpO3RoaXMubWVtb3J5VXNhZ2VTY2FsZT1WTSgpLmRvbWFpbihbMCxlXSkucmFuZ2UoZ1d0KTtsZXQgbj1XbCh0Lm5vZGVzKCksKChlLG4pPT57bGV0IGk9dC5ub2RlKGUpO2lmKG51bGwhPWkuc3RhdHMpcmV0dXJuIGkuc3RhdHMuZ2V0VG90YWxNaWNyb3MoKX0pKTt0aGlzLmNvbXB1dGVUaW1lU2NhbGU9Vk0oKS5kb21haW4oWzAsbl0pLnJhbmdlKGdXdCksdGhpcy5lZGdlV2lkdGhTaXplZEJhc2VkU2NhbGU9dGhpcy5oaWVyYXJjaHkuaGFzU2hhcGVJbmZvP0VHdDpWTSgpLmRvbWFpbihbMSx0aGlzLmhpZXJhcmNoeS5tYXhNZXRhRWRnZVNpemVdKS5yYW5nZShbTUd0LDEyXSl9Z2V0UmVuZGVyTm9kZUJ5TmFtZSh0KXtyZXR1cm4gdGhpcy5pbmRleFt0XX1nZXROb2RlQnlOYW1lKHQpe3JldHVybiB0aGlzLmhpZXJhcmNoeS5ub2RlKHQpfWNvbG9ySGlzdG9ncmFtKHQsZSl7aWYoT2JqZWN0LmtleXModCkubGVuZ3RoPjApe2NvbnN0IG49U2UuZXhwb3J0cy5zdW0oT2JqZWN0LmtleXModCkubWFwKChlPT50W2VdKSkpO3JldHVybiBPYmplY3Qua2V5cyh0KS5tYXAoKGk9Pih7Y29sb3I6ZShpKSxwcm9wb3J0aW9uOnRbaV0vbn0pKSl9cmV0dXJuIG51bGx9Z2V0T3JDcmVhdGVSZW5kZXJOb2RlQnlOYW1lKHQpe2lmKCF0KXJldHVybiBudWxsO2lmKHQgaW4gdGhpcy5pbmRleClyZXR1cm4gdGhpcy5pbmRleFt0XTtsZXQgZT10aGlzLmhpZXJhcmNoeS5ub2RlKHQpO2lmKCFlKXJldHVybiBudWxsO2xldCBuPWUuaXNHcm91cE5vZGU/bmV3IFRXdChlLHRoaXMuaGllcmFyY2h5LmdyYXBoT3B0aW9ucyk6bmV3IHdXdChlKTt0aGlzLmluZGV4W3RdPW4sdGhpcy5yZW5kZXJlZE9wTmFtZXMucHVzaCh0KSxlLnN0YXRzJiYobi5tZW1vcnlDb2xvcj10aGlzLm1lbW9yeVVzYWdlU2NhbGUoZS5zdGF0cy50b3RhbEJ5dGVzKSxuLmNvbXB1dGVUaW1lQ29sb3I9dGhpcy5jb21wdXRlVGltZVNjYWxlKGUuc3RhdHMuZ2V0VG90YWxNaWNyb3MoKSkpLG4uaXNGYWRlZE91dD10aGlzLmRpc3BsYXlpbmdTdGF0cyYmIU9HdChlLnN0YXRzKTt2YXIgaT1udWxsLHI9bnVsbCxvPW51bGw7aWYoZS5pc0dyb3VwTm9kZSl7aT1lLmRldmljZUhpc3RvZ3JhbSxyPWUueGxhQ2x1c3Rlckhpc3RvZ3JhbTtsZXQgdD1lLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZSxuPWUuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU7MD09dCYmMD09bnx8KG89dC8odCtuKSl9ZWxzZXtsZXQgdD1uLm5vZGUuZGV2aWNlO3QmJihpPXtbdF06MX0pO2xldCBlPW4ubm9kZS54bGFDbHVzdGVyO2UmJihyPXtbZV06MX0pLG4ubm9kZS50eXBlPT09akd0Lk9QJiYobz1uLm5vZGUuY29tcGF0aWJsZT8xOjApfXJldHVybiBpJiYobi5kZXZpY2VDb2xvcnM9dGhpcy5jb2xvckhpc3RvZ3JhbShpLHRoaXMuZGV2aWNlQ29sb3JNYXApKSxyJiYobi54bGFDbHVzdGVyQ29sb3JzPXRoaXMuY29sb3JIaXN0b2dyYW0ocix0aGlzLnhsYUNsdXN0ZXJDb2xvck1hcCkpLG51bGwhPW8mJihuLmNvbXBhdGliaWxpdHlDb2xvcnM9W3tjb2xvcjpoV3QscHJvcG9ydGlvbjpvfSx7Y29sb3I6ZFd0LHByb3BvcnRpb246MS1vfV0pLHRoaXMuaW5kZXhbdF19Z2V0TmVhcmVzdFZpc2libGVBbmNlc3Rvcih0KXtsZXQgZT1jV3QodCksbj0wLGk9bnVsbCxyPXQ7Zm9yKDtuPGUubGVuZ3RoJiYocj1lW25dLGk9dGhpcy5nZXRSZW5kZXJOb2RlQnlOYW1lKHIpLGkuZXhwYW5kZWQpO24rKyk7aWYobj09ZS5sZW5ndGgtMil7bGV0IHQ9ZVtuKzFdO2lmKGkuaW5Bbm5vdGF0aW9ucy5ub2RlTmFtZXNbdF0pcmV0dXJuIHQ7aWYoaS5vdXRBbm5vdGF0aW9ucy5ub2RlTmFtZXNbdF0pcmV0dXJuIHR9cmV0dXJuIHJ9c2V0RGVwdGgodCl7Q1d0KHRoaXMucm9vdCwrdCl9aXNOb2RlQXV4aWxpYXJ5KHQpe2xldCBlPXRoaXMuZ2V0UmVuZGVyTm9kZUJ5TmFtZSh0Lm5vZGUucGFyZW50Tm9kZS5uYW1lKSxuPVNlLmV4cG9ydHMuZmluZChlLmlzb2xhdGVkSW5FeHRyYWN0LChlPT5lLm5vZGUubmFtZT09PXQubm9kZS5uYW1lKSk7cmV0dXJuISFufHwobj1TZS5leHBvcnRzLmZpbmQoZS5pc29sYXRlZE91dEV4dHJhY3QsKGU9PmUubm9kZS5uYW1lPT09dC5ub2RlLm5hbWUpKSwhIW4pfWdldE5hbWVzT2ZSZW5kZXJlZE9wcygpe3JldHVybiB0aGlzLnJlbmRlcmVkT3BOYW1lc31jbG9uZUFuZEFkZEZ1bmN0aW9uT3BOb2RlKHQsZSxuLGkpe2NvbnN0IHI9bi5uYW1lLnJlcGxhY2UoZSxpKTtsZXQgbz10Lm1ldGFncmFwaC5ub2RlKHIpO2lmKG8pcmV0dXJuIG87bz1uZXcgWEd0KHtuYW1lOnIsaW5wdXQ6W10sZGV2aWNlOm4uZGV2aWNlLG9wOm4ub3AsYXR0cjpTZS5leHBvcnRzLmNsb25lRGVlcChuLmF0dHIpfSksby5jYXJkaW5hbGl0eT1uLmNhcmRpbmFsaXR5LG8uaW5jbHVkZT1uLmluY2x1ZGUsby5vdXRwdXRTaGFwZXM9U2UuZXhwb3J0cy5jbG9uZURlZXAobi5vdXRwdXRTaGFwZXMpLG8ueGxhQ2x1c3Rlcj1uLnhsYUNsdXN0ZXIsby5mdW5jdGlvbklucHV0SW5kZXg9bi5mdW5jdGlvbklucHV0SW5kZXgsby5mdW5jdGlvbk91dHB1dEluZGV4PW4uZnVuY3Rpb25PdXRwdXRJbmRleCxvLmlucHV0cz1uLmlucHV0cy5tYXAoKHQ9Pntjb25zdCBuPVNlLmV4cG9ydHMuY2xvbmUodCk7cmV0dXJuIG4ubmFtZT10Lm5hbWUucmVwbGFjZShlLGkpLG59KSksby5wYXJlbnROb2RlPXQsdC5tZXRhZ3JhcGguc2V0Tm9kZShvLm5hbWUsbyksdGhpcy5oaWVyYXJjaHkuc2V0Tm9kZShvLm5hbWUsbyk7Y29uc3QgYT1uPT50aGlzLmNsb25lQW5kQWRkRnVuY3Rpb25PcE5vZGUodCxlLG4saSk7cmV0dXJuIG8uaW5FbWJlZGRpbmdzPW4uaW5FbWJlZGRpbmdzLm1hcChhKSxvLm91dEVtYmVkZGluZ3M9bi5vdXRFbWJlZGRpbmdzLm1hcChhKSxvfWNsb25lRnVuY3Rpb25MaWJyYXJ5TWV0YW5vZGUodCxlLG4saSxyKXtjb25zdCBvPXt9LGE9dGhpcy5jbG9uZUZ1bmN0aW9uTGlicmFyeU1ldGFub2RlSGVscGVyKHQsZSxuLGkscixvKTtyZXR1cm4gU2UuZXhwb3J0cy5pc0VtcHR5KG8pfHx0aGlzLnBhdGNoRWRnZXNGcm9tRnVuY3Rpb25PdXRwdXRzKGUsbyksYX1jbG9uZUZ1bmN0aW9uTGlicmFyeU1ldGFub2RlSGVscGVyKHQsZSxuLGkscixvKXtjb25zdCBhPSRHdChuLm5hbWUucmVwbGFjZShpLHIpKTtyZXR1cm4gYS5kZXB0aD1uLmRlcHRoLGEuY2FyZGluYWxpdHk9bi5jYXJkaW5hbGl0eSxhLnRlbXBsYXRlSWQ9bi50ZW1wbGF0ZUlkLGEub3BIaXN0b2dyYW09U2UuZXhwb3J0cy5jbG9uZShuLm9wSGlzdG9ncmFtKSxhLmRldmljZUhpc3RvZ3JhbT1TZS5leHBvcnRzLmNsb25lKG4uZGV2aWNlSGlzdG9ncmFtKSxhLnhsYUNsdXN0ZXJIaXN0b2dyYW09U2UuZXhwb3J0cy5jbG9uZShuLnhsYUNsdXN0ZXJIaXN0b2dyYW0pLGEuaGFzTm9uQ29udHJvbEVkZ2VzPW4uaGFzTm9uQ29udHJvbEVkZ2VzLGEuaW5jbHVkZT1uLmluY2x1ZGUsYS5ub2RlQXR0cmlidXRlcz1TZS5leHBvcnRzLmNsb25lKG4ubm9kZUF0dHJpYnV0ZXMpLGEuYXNzb2NpYXRlZEZ1bmN0aW9uPW4uYXNzb2NpYXRlZEZ1bmN0aW9uLFNlLmV4cG9ydHMuZWFjaChuLm1ldGFncmFwaC5ub2RlcygpLChzPT57Y29uc3QgbD1uLm1ldGFncmFwaC5ub2RlKHMpO3N3aXRjaChsLnR5cGUpe2Nhc2Ugakd0Lk1FVEE6Y29uc3Qgbj10aGlzLmNsb25lRnVuY3Rpb25MaWJyYXJ5TWV0YW5vZGVIZWxwZXIodCxlLGwsaSxyLG8pO24ucGFyZW50Tm9kZT1hLGEubWV0YWdyYXBoLnNldE5vZGUobi5uYW1lLG4pLHRoaXMuaGllcmFyY2h5LnNldE5vZGUobi5uYW1lLG4pO2JyZWFrO2Nhc2Ugakd0Lk9QOmNvbnN0IHM9dGhpcy5jbG9uZUFuZEFkZEZ1bmN0aW9uT3BOb2RlKGEsaSxsLHIpO1NlLmV4cG9ydHMuaXNOdW1iZXIocy5mdW5jdGlvbklucHV0SW5kZXgpJiZ0aGlzLnBhdGNoRWRnZXNJbnRvRnVuY3Rpb25JbnB1dHMoZSxzKSxTZS5leHBvcnRzLmlzTnVtYmVyKHMuZnVuY3Rpb25PdXRwdXRJbmRleCkmJihvW3MuZnVuY3Rpb25PdXRwdXRJbmRleF09cyk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4obC5uYW1lKyIgaXMgb2RkbHkgbmVpdGhlciBhIG1ldGFub2RlIG5vciBhbiBvcG5vZGUuIil9fSkpLHRoaXMuY2xvbmVMaWJyYXJ5TWV0YW5vZGVFZGdlcyhuLGEsaSxyKSxhfWNsb25lTGlicmFyeU1ldGFub2RlRWRnZXModCxlLG4saSl7U2UuZXhwb3J0cy5lYWNoKHQubWV0YWdyYXBoLmVkZ2VzKCksKHI9Pntjb25zdCBvPXQubWV0YWdyYXBoLmVkZ2UociksYT1vLnYucmVwbGFjZShuLGkpLHM9by53LnJlcGxhY2UobixpKSxsPW5ldyBKR3QoYSxzKTtsLmluYm91bmQ9by5pbmJvdW5kLGwubnVtUmVndWxhckVkZ2VzPW8ubnVtUmVndWxhckVkZ2VzLGwubnVtQ29udHJvbEVkZ2VzPW8ubnVtQ29udHJvbEVkZ2VzLGwubnVtUmVmRWRnZXM9by5udW1SZWZFZGdlcyxsLnRvdGFsU2l6ZT1vLnRvdGFsU2l6ZSxvLmJhc2VFZGdlTGlzdCYmKGwuYmFzZUVkZ2VMaXN0PW8uYmFzZUVkZ2VMaXN0Lm1hcCgodD0+e2NvbnN0IGU9U2UuZXhwb3J0cy5jbG9uZSh0KTtyZXR1cm4gZS52PXQudi5yZXBsYWNlKG4saSksZS53PXQudy5yZXBsYWNlKG4saSksZX0pKSksZS5tZXRhZ3JhcGgubm9kZShzKT9lLm1ldGFncmFwaC5zZXRFZGdlKGEscyxsKTplLm1ldGFncmFwaC5zZXRFZGdlKHMsYSxsKX0pKX1wYXRjaEVkZ2VzSW50b0Z1bmN0aW9uSW5wdXRzKHQsZSl7bGV0IG49TWF0aC5taW4oZS5mdW5jdGlvbklucHV0SW5kZXgsdC5pbnB1dHMubGVuZ3RoLTEpLGk9U2UuZXhwb3J0cy5jbG9uZSh0LmlucHV0c1tuXSk7Zm9yKDtpLmlzQ29udHJvbERlcGVuZGVuY3k7KW4rKyxpPXQuaW5wdXRzW25dO2UuaW5wdXRzLnB1c2goaSk7Y29uc3Qgcj10aGlzLmhpZXJhcmNoeS5nZXRQcmVkZWNlc3NvcnModC5uYW1lKTtsZXQgbyxhPTA7U2UuZXhwb3J0cy5lYWNoKHIucmVndWxhciwodD0+e2lmKGErPXQubnVtUmVndWxhckVkZ2VzLGE+bilyZXR1cm4gbz10LCExfSkpLFNlLmV4cG9ydHMuZWFjaChvLmJhc2VFZGdlTGlzdCwobj0+e24udz09PXQubmFtZSYmKG4udz1lLm5hbWUpLG4udj09PXQubmFtZSYmKG4udj1lLm5hbWUpfSkpfXBhdGNoRWRnZXNGcm9tRnVuY3Rpb25PdXRwdXRzKHQsZSl7Y29uc3Qgbj10aGlzLmhpZXJhcmNoeS5nZXRTdWNjZXNzb3JzKHQubmFtZSk7U2UuZXhwb3J0cy5lYWNoKG4ucmVndWxhciwobj0+e1NlLmV4cG9ydHMuZWFjaChuLmJhc2VFZGdlTGlzdCwobj0+e2NvbnN0IGk9dGhpcy5oaWVyYXJjaHkubm9kZShuLncpO1NlLmV4cG9ydHMuZWFjaChpLmlucHV0cywoaT0+e2kubmFtZT09PXQubmFtZSYmKGkubmFtZT1lW2kub3V0cHV0VGVuc29yS2V5XS5uYW1lLGkub3V0cHV0VGVuc29yS2V5PW4ub3V0cHV0VGVuc29yS2V5KX0pKX0pKSxTZS5leHBvcnRzLmVhY2gobi5iYXNlRWRnZUxpc3QsKHQ9Pnt0LnY9ZVt0Lm91dHB1dFRlbnNvcktleV0ubmFtZSx0Lm91dHB1dFRlbnNvcktleT0iMCJ9KSl9KSl9YnVpbGRTdWJoaWVyYXJjaHkodCl7aWYodCBpbiB0aGlzLmhhc1N1YmhpZXJhcmNoeSlyZXR1cm47dGhpcy5oYXNTdWJoaWVyYXJjaHlbdF09ITA7bGV0IGU9dGhpcy5pbmRleFt0XTtpZihlLm5vZGUudHlwZSE9PWpHdC5NRVRBJiZlLm5vZGUudHlwZSE9PWpHdC5TRVJJRVMpcmV0dXJuO2xldCBuPWUsaT1uLm5vZGUubWV0YWdyYXBoLHI9bi5jb3JlR3JhcGg7Y29uc3Qgbz1bXSxhPVtdO1NlLmV4cG9ydHMuaXNFbXB0eSh0aGlzLmhpZXJhcmNoeS5saWJyYXJ5RnVuY3Rpb25zKXx8KFNlLmV4cG9ydHMuZWFjaChpLm5vZGVzKCksKHQ9Pntjb25zdCBlPWkubm9kZSh0KSxuPXRoaXMuaGllcmFyY2h5LmxpYnJhcnlGdW5jdGlvbnNbZS5vcF07aWYoIW4pcmV0dXJuO2lmKDA9PT10LmluZGV4T2YoVkd0KSlyZXR1cm47Y29uc3Qgcj10aGlzLmNsb25lRnVuY3Rpb25MaWJyYXJ5TWV0YW5vZGUoaSxlLG4ubm9kZSxuLm5vZGUubmFtZSxlLm5hbWUpO28ucHVzaChlKSxhLnB1c2gocil9KSksU2UuZXhwb3J0cy5lYWNoKGEsKCh0LGUpPT57Y29uc3Qgbj1vW2VdO3QucGFyZW50Tm9kZT1uLnBhcmVudE5vZGUsaS5zZXROb2RlKG4ubmFtZSx0KSx0aGlzLmhpZXJhcmNoeS5zZXROb2RlKG4ubmFtZSx0KX0pKSksU2UuZXhwb3J0cy5lYWNoKGkubm9kZXMoKSwodD0+e2xldCBlPXRoaXMuZ2V0T3JDcmVhdGVSZW5kZXJOb2RlQnlOYW1lKHQpLG49ZS5ub2RlO3Iuc2V0Tm9kZSh0LGUpLG4uaXNHcm91cE5vZGV8fChTZS5leHBvcnRzLmVhY2gobi5pbkVtYmVkZGluZ3MsKHQ9PntsZXQgbj1uZXcgU1d0KG51bGwpLGk9bmV3IHdXdCh0KTtNV3QoZSx0LGksbixiV3QuQ09OU1RBTlQpLHRoaXMuaW5kZXhbdC5uYW1lXT1pfSkpLFNlLmV4cG9ydHMuZWFjaChuLm91dEVtYmVkZGluZ3MsKHQ9PntsZXQgbj1uZXcgU1d0KG51bGwpLGk9bmV3IHdXdCh0KTtFV3QoZSx0LGksbixiV3QuU1VNTUFSWSksdGhpcy5pbmRleFt0Lm5hbWVdPWl9KSkpfSkpLFNlLmV4cG9ydHMuZWFjaChpLmVkZ2VzKCksKHQ9PntsZXQgZT1pLmVkZ2UodCksbj1uZXcgU1d0KGUpO24uaXNGYWRlZE91dD10aGlzLmluZGV4W3Qudl0uaXNGYWRlZE91dHx8dGhpcy5pbmRleFt0LnddLmlzRmFkZWRPdXQsci5zZXRFZGdlKHQudix0Lncsbil9KSksbi5ub2RlLnR5cGU9PT1qR3QuTUVUQSYmKGZ1bmN0aW9uIHModCxlKXsoZnVuY3Rpb24gbih0KXtsZXQgZT10LmNvcmVHcmFwaDtTZS5leHBvcnRzLmVhY2goZS5ub2RlcygpLChuPT57ZS5ub2RlKG4pLm5vZGUuaW5jbHVkZSE9PUdHdC5FWENMVURFfHxuLnN0YXJ0c1dpdGgoVkd0KXx8KHQuY29yZUdyYXBoLm91dEVkZ2VzKG4pLmxlbmd0aD50LmNvcmVHcmFwaC5pbkVkZ2VzKG4pLmxlbmd0aD9rV3QodCxuKTpMV3QodCxuKSl9KSl9KSh0KSxmV3QubGVuZ3RoJiYoZnVuY3Rpb24gaSh0KXtsZXQgZT10LmNvcmVHcmFwaDtTZS5leHBvcnRzLmVhY2goZS5ub2RlcygpLChuPT57bGV0IGk9ZS5ub2RlKG4pO2kubm9kZS5pbmNsdWRlPT09R0d0LlVOU1BFQ0lGSUVEJiZQV3QoaS5ub2RlLGZXdCkmJmtXdCh0LG4pfSkpfSkodCksbVd0Lmxlbmd0aCYmKGZ1bmN0aW9uIHIodCl7bGV0IGU9dC5jb3JlR3JhcGg7U2UuZXhwb3J0cy5lYWNoKGUubm9kZXMoKSwobj0+e2xldCBpPWUubm9kZShuKTtpLm5vZGUuaW5jbHVkZT09PUdHdC5VTlNQRUNJRklFRCYmUFd0KGkubm9kZSxtV3QpJiZMV3QodCxuKX0pKX0pKHQpLGUmJihmdW5jdGlvbiBvKHQpe2xldCBlPXQuY29yZUdyYXBoLG49e30saT17fSxyPTA7aWYoU2UuZXhwb3J0cy5lYWNoKGUubm9kZXMoKSwodD0+e2lmKGUubm9kZSh0KS5ub2RlLmluY2x1ZGUhPT1HR3QuVU5TUEVDSUZJRUQpcmV0dXJuO2xldCBvPVNlLmV4cG9ydHMucmVkdWNlKGUucHJlZGVjZXNzb3JzKHQpLCgobixpKT0+bisoZS5lZGdlKGksdCkubWV0YWVkZ2UubnVtUmVndWxhckVkZ2VzPzE6MCkpLDApOzA9PT1vJiZlLnByZWRlY2Vzc29ycyh0KS5sZW5ndGg+MCYmKG89ZS5wcmVkZWNlc3NvcnModCkubGVuZ3RoKTtsZXQgYT1TZS5leHBvcnRzLnJlZHVjZShlLnN1Y2Nlc3NvcnModCksKChuLGkpPT5uKyhlLmVkZ2UodCxpKS5tZXRhZWRnZS5udW1SZWd1bGFyRWRnZXM/MTowKSksMCk7MD09PWEmJmUuc3VjY2Vzc29ycyh0KS5sZW5ndGg+MCYmKGE9ZS5zdWNjZXNzb3JzKHQpLmxlbmd0aCksblt0XT1vLGlbdF09YSxyKyt9KSkscjwxNSlyZXR1cm47bGV0IG89TWF0aC5yb3VuZCguNzUqciksYT1NYXRoLnJvdW5kKC4yNSpyKSxzPU9iamVjdC5rZXlzKG4pLnNvcnQoKCh0LGUpPT5uW3RdLW5bZV0pKSxsPW5bc1tvXV0sYz1sK2wtbltzW2FdXTtjPU1hdGgubWF4KGMsNCk7Zm9yKGxldCBlPXItMTtuW3NbZV1dPmM7ZS0tKUxXdCh0LHNbZV0pO2xldCB1PU9iamVjdC5rZXlzKGkpLnNvcnQoKCh0LGUpPT5pW3RdLWlbZV0pKSxoPWlbdVtvXV0sZD1oKzQqKGgtaVt1W2FdXSk7ZD1NYXRoLm1heChkLDQpO2ZvcihsZXQgbj1yLTE7aVt1W25dXT5kO24tLSl7bGV0IGk9ZS5ub2RlKHVbbl0pO2kmJiFpLmlzSW5FeHRyYWN0JiZrV3QodCx1W25dKX19KSh0KSwoZnVuY3Rpb24gYSh0KXtsZXQgZT10LmNvcmVHcmFwaCxuPXt9O1NlLmV4cG9ydHMuZWFjaChlLmVkZ2VzKCksKHQ9PntlLmVkZ2UodCkubWV0YWVkZ2UubnVtUmVndWxhckVkZ2VzfHwoKG5bdC52XT1uW3Qudl18fFtdKS5wdXNoKHQpLChuW3Qud109blt0LnddfHxbXSkucHVzaCh0KSl9KSksU2UuZXhwb3J0cy5lYWNoKG4sKCh0LG4pPT57dC5sZW5ndGg+NCYmU2UuZXhwb3J0cy5lYWNoKHQsKHQ9PkFXdChlLHQudix0LncpKSl9KSl9KSh0KTtsZXQgcz10LmNvcmVHcmFwaDtTZS5leHBvcnRzLmVhY2gocy5ub2RlcygpLChlPT57bGV0IG49cy5ub2RlKGUpLGk9cy5uZWlnaGJvcnMoZSkubGVuZ3RoO2lmKG4ubm9kZS5pbmNsdWRlPT09R0d0LlVOU1BFQ0lGSUVEJiYwPT09aSl7bGV0IGk9bi5vdXRBbm5vdGF0aW9ucy5saXN0Lmxlbmd0aD4wLHI9bi5pbkFubm90YXRpb25zLmxpc3QubGVuZ3RoPjA7bi5pc0luRXh0cmFjdD8odC5pc29sYXRlZEluRXh0cmFjdC5wdXNoKG4pLG4ubm9kZS5pbmNsdWRlPUdHdC5FWENMVURFLHMucmVtb3ZlTm9kZShlKSk6bi5pc091dEV4dHJhY3Q/KHQuaXNvbGF0ZWRPdXRFeHRyYWN0LnB1c2gobiksbi5ub2RlLmluY2x1ZGU9R0d0LkVYQ0xVREUscy5yZW1vdmVOb2RlKGUpKTppJiYhcj8obi5pc0luRXh0cmFjdD0hMCx0Lmlzb2xhdGVkSW5FeHRyYWN0LnB1c2gobiksbi5ub2RlLmluY2x1ZGU9R0d0LkVYQ0xVREUscy5yZW1vdmVOb2RlKGUpKTpyJiYhaSYmKG4uaXNPdXRFeHRyYWN0PSEwLHQuaXNvbGF0ZWRPdXRFeHRyYWN0LnB1c2gobiksbi5ub2RlLmluY2x1ZGU9R0d0LkVYQ0xVREUscy5yZW1vdmVOb2RlKGUpKX19KSl9KShuLHRoaXMuYXV0b0V4dHJhY3ROb2RlcyksU2UuZXhwb3J0cy5pc0VtcHR5KHRoaXMuaGllcmFyY2h5LmxpYnJhcnlGdW5jdGlvbnMpfHx0aGlzLmJ1aWxkU3ViaGllcmFyY2hpZXNGb3JOZWVkZWRGdW5jdGlvbnMoaSksdD09PUZHdCYmU2UuZXhwb3J0cy5mb3JPd24odGhpcy5oaWVyYXJjaHkubGlicmFyeUZ1bmN0aW9ucywoKHQsZSk9Pntjb25zdCBpPXQubm9kZSxvPXRoaXMuZ2V0T3JDcmVhdGVSZW5kZXJOb2RlQnlOYW1lKGkubmFtZSk7bi5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdC5wdXNoKG8pLG8ubm9kZS5pbmNsdWRlPUdHdC5FWENMVURFLHIucmVtb3ZlTm9kZShpLm5hbWUpfSkpO2xldCBsPW4ubm9kZS5wYXJlbnROb2RlO2lmKCFsKXJldHVybjtsZXQgYz10aGlzLmluZGV4W2wubmFtZV0sdT0odCwuLi5lKT0+ZS5jb25jYXQoW3Q/IklOIjoiT1VUIl0pLmpvaW4oIn5+IiksaD10aGlzLmhpZXJhcmNoeS5nZXRCcmlkZ2VncmFwaCh0KSxkPXtpbjp7fSxvdXQ6e30sY29udHJvbDp7fX07U2UuZXhwb3J0cy5lYWNoKGguZWRnZXMoKSwodD0+e2xldCBlPSEhaS5ub2RlKHQudyksbj1lP3Qudjp0Lnc7aC5lZGdlKHQpLm51bVJlZ3VsYXJFZGdlcz9lP2Qub3V0W25dPShkLm91dFtuXXx8MCkrMTpkLmluW25dPShkLmluW25dfHwwKSsxOmQuY29udHJvbFtuXT0oZC5jb250cm9sW25dfHwwKSsxfSkpO2xldCBwPXRoaXMuaGllcmFyY2h5LmdldE5vZGVNYXAoKTtTZS5leHBvcnRzLmVhY2goaC5lZGdlcygpLChuPT57bGV0IG89aC5lZGdlKG4pLGE9ISFpLm5vZGUobi53KSxbcyxmXT1hP1tuLncsbi52XTpbbi52LG4ud10sbT10aGlzLmluZGV4W3NdLGc9dGhpcy5pbmRleFtmXSxfPWc/Zy5ub2RlOnBbZl0seT0hby5udW1SZWd1bGFyRWRnZXMmJmQuY29udHJvbFtmXT40LFssdl09YT9bZS5pbkFubm90YXRpb25zLG0uaW5Bbm5vdGF0aW9uc106W2Uub3V0QW5ub3RhdGlvbnMsbS5vdXRBbm5vdGF0aW9uc10sYj1udWxsLHg9ITE7aWYoISgoYT9kLm91dDpkLmluKVtmXT40KSYmIXkmJm0uaXNJbkNvcmUoKSl7bGV0IGU9ZT0+Yy5jb3JlR3JhcGguZWRnZShhP3t2OmUsdzp0fTp7djp0LHc6ZX0pO2I9ZShmKSxifHwoYj1lKHUoYSxmLGwubmFtZSkpKSx4PSEhYn1sZXQgdz0hMTtpZihiJiYhby5udW1SZWd1bGFyRWRnZXMpe2xldCB0PWIsZT1jLm5vZGU7Zm9yKDt0LmFkam9pbmluZ01ldGFlZGdlOyl0PXQuYWRqb2luaW5nTWV0YWVkZ2UsZT1lLnBhcmVudE5vZGU7bGV0IG49dGhpcy5oaWVyYXJjaHkuZ2V0VG9wb2xvZ2ljYWxPcmRlcmluZyhlLm5hbWUpLGk9dC5tZXRhZWRnZTt3PW5baS52XT5uW2kud119aWYoeD14JiYhdywheClyZXR1cm4gdm9pZCB2LnB1c2gobmV3IHZXdChfLGcsbmV3IFNXdChvKSxiV3QuU0hPUlRDVVQsYSkpO2xldCBTPXUoYSx0KSxNPXUoYSxmLHQpLEU9ci5ub2RlKE0pO2lmKCFFKXtsZXQgdD1yLm5vZGUoUyk7dHx8KHQ9bmV3IHdXdCh7bmFtZTpTLHR5cGU6akd0LkJSSURHRSxpc0dyb3VwTm9kZTohMSxjYXJkaW5hbGl0eTowLHBhcmVudE5vZGU6bnVsbCxzdGF0czpudWxsLGluY2x1ZGU6R0d0LlVOU1BFQ0lGSUVELGluYm91bmQ6YSxub2RlQXR0cmlidXRlczp7fX0pLHRoaXMuaW5kZXhbU109dCxyLnNldE5vZGUoUyx0KSksRT1uZXcgd1d0KHtuYW1lOk0sdHlwZTpqR3QuQlJJREdFLGlzR3JvdXBOb2RlOiExLGNhcmRpbmFsaXR5OjEscGFyZW50Tm9kZTpudWxsLHN0YXRzOm51bGwsaW5jbHVkZTpHR3QuVU5TUEVDSUZJRUQsaW5ib3VuZDphLG5vZGVBdHRyaWJ1dGVzOnt9fSksdGhpcy5pbmRleFtNXT1FLHIuc2V0Tm9kZShNLEUpLHIuc2V0UGFyZW50KE0sUyksdC5ub2RlLmNhcmRpbmFsaXR5Kyt9bGV0IFQ9bmV3IFNXdChvKTtULmFkam9pbmluZ01ldGFlZGdlPWIsYT9yLnNldEVkZ2UoTSxzLFQpOnIuc2V0RWRnZShzLE0sVCl9KSksU2UuZXhwb3J0cy5lYWNoKFshMCwhMV0sKGU9PntsZXQgbj11KGUsdCksaT1yLm5vZGUobik7aSYmU2UuZXhwb3J0cy5lYWNoKHIubm9kZXMoKSwobz0+e2lmKHIubm9kZShvKS5ub2RlLnR5cGU9PT1qR3QuQlJJREdFKXJldHVybjtpZighKGU/IXIucHJlZGVjZXNzb3JzKG8pLmxlbmd0aDohci5zdWNjZXNzb3JzKG8pLmxlbmd0aCkpcmV0dXJuO2xldCBhPXUoZSx0LCJTVFJVQ1RVUkFMX1RBUkdFVCIpLHM9ci5ub2RlKGEpO3N8fChzPW5ldyB3V3Qoe25hbWU6YSx0eXBlOmpHdC5CUklER0UsaXNHcm91cE5vZGU6ITEsY2FyZGluYWxpdHk6MSxwYXJlbnROb2RlOm51bGwsc3RhdHM6bnVsbCxpbmNsdWRlOkdHdC5VTlNQRUNJRklFRCxpbmJvdW5kOmUsbm9kZUF0dHJpYnV0ZXM6e319KSxzLnN0cnVjdHVyYWw9ITAsdGhpcy5pbmRleFthXT1zLHIuc2V0Tm9kZShhLHMpLGkubm9kZS5jYXJkaW5hbGl0eSsrLHIuc2V0UGFyZW50KGEsbikpO2xldCBsPW5ldyBTV3QobnVsbCk7bC5zdHJ1Y3R1cmFsPSEwLGwud2VpZ2h0LS0sZT9yLnNldEVkZ2UoYSxvLGwpOnIuc2V0RWRnZShvLGEsbCl9KSl9KSl9YnVpbGRTdWJoaWVyYXJjaGllc0Zvck5lZWRlZEZ1bmN0aW9ucyh0KXtTZS5leHBvcnRzLmVhY2godC5lZGdlcygpLChlPT57bGV0IG49dC5lZGdlKGUpLGk9bmV3IFNXdChuKTtTZS5leHBvcnRzLmZvckVhY2goaS5tZXRhZWRnZS5iYXNlRWRnZUxpc3QsKHQ9Pntjb25zdCBlPXQudi5zcGxpdChIR3QpO2ZvcihsZXQgdD1lLmxlbmd0aDt0Pj0wO3QtLSl7Y29uc3Qgbj1lLnNsaWNlKDAsdCksaT10aGlzLmhpZXJhcmNoeS5ub2RlKG4uam9pbihIR3QpKTtpZihpKXtpZihpLnR5cGU9PT1qR3QuT1AmJnRoaXMuaGllcmFyY2h5LmxpYnJhcnlGdW5jdGlvbnNbaS5vcF0pZm9yKGxldCB0PTE7dDxuLmxlbmd0aDt0Kyspe2NvbnN0IGU9bi5zbGljZSgwLHQpLmpvaW4oSEd0KTtlJiZ0aGlzLmJ1aWxkU3ViaGllcmFyY2h5KGUpfWJyZWFrfX19KSl9KSl9fWNsYXNzIHZXdHtjb25zdHJ1Y3Rvcih0LGUsbixpLHIpe3RoaXMubm9kZT10LHRoaXMucmVuZGVyTm9kZUluZm89ZSx0aGlzLnJlbmRlck1ldGFlZGdlSW5mbz1uLHRoaXMuYW5ub3RhdGlvblR5cGU9aSx0aGlzLmR4PTAsdGhpcy5keT0wLHRoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLG4mJm4ubWV0YWVkZ2UmJih0aGlzLnY9bi5tZXRhZWRnZS52LHRoaXMudz1uLm1ldGFlZGdlLncpLHRoaXMuaXNJbj1yLHRoaXMucG9pbnRzPVtdfX12YXIgYld0OyEoZnVuY3Rpb24odCl7dFt0LlNIT1JUQ1VUPTBdPSJTSE9SVENVVCIsdFt0LkNPTlNUQU5UPTFdPSJDT05TVEFOVCIsdFt0LlNVTU1BUlk9Ml09IlNVTU1BUlkiLHRbdC5FTExJUFNJUz0zXT0iRUxMSVBTSVMifSkoYld0fHwoYld0PXt9KSk7Y2xhc3MgeFd0e2NvbnN0cnVjdG9yKCl7dGhpcy5saXN0PVtdLHRoaXMubm9kZU5hbWVzPXt9fXB1c2godCl7aWYodC5ub2RlLm5hbWUgaW4gdGhpcy5ub2RlTmFtZXMpcmV0dXJuO2lmKHRoaXMubm9kZU5hbWVzW3Qubm9kZS5uYW1lXT0hMCx0aGlzLmxpc3QubGVuZ3RoPDUpcmV0dXJuIHZvaWQgdGhpcy5saXN0LnB1c2godCk7bGV0IGU9dGhpcy5saXN0W3RoaXMubGlzdC5sZW5ndGgtMV07aWYoZS5hbm5vdGF0aW9uVHlwZT09PWJXdC5FTExJUFNJUyl7bGV0IHQ9ZS5ub2RlO3JldHVybiB2b2lkIHQuc2V0TnVtTW9yZU5vZGVzKCsrdC5udW1Nb3JlTm9kZXMpfWxldCBuPW5ldyBZR3QoMSk7dGhpcy5saXN0LnB1c2gobmV3IHZXdChuLG5ldyB3V3QobiksbnVsbCxiV3QuRUxMSVBTSVMsdC5pc0luKSl9fWNsYXNzIHdXdHtjb25zdHJ1Y3Rvcih0KXtpZih0aGlzLm5vZGU9dCx0aGlzLmV4cGFuZGVkPSExLHRoaXMuaW5Bbm5vdGF0aW9ucz1uZXcgeFd0LHRoaXMub3V0QW5ub3RhdGlvbnM9bmV3IHhXdCx0aGlzLng9MCx0aGlzLnk9MCx0aGlzLndpZHRoPTAsdGhpcy5oZWlnaHQ9MCx0aGlzLmluYm94V2lkdGg9MCx0aGlzLm91dGJveFdpZHRoPTAsdGhpcy5leGNsdWRlZD0hMSx0aGlzLnN0cnVjdHVyYWw9ITEsdGhpcy5sYWJlbE9mZnNldD0wLHRoaXMucmFkaXVzPTAsdGhpcy5sYWJlbEhlaWdodD0wLHRoaXMucGFkZGluZ1RvcD0wLHRoaXMucGFkZGluZ0xlZnQ9MCx0aGlzLnBhZGRpbmdSaWdodD0wLHRoaXMucGFkZGluZ0JvdHRvbT0wLHRoaXMuaXNJbkV4dHJhY3Q9ITEsdGhpcy5pc091dEV4dHJhY3Q9ITEsdGhpcy5jb3JlQm94PXt3aWR0aDowLGhlaWdodDowfSx0aGlzLmlzRmFkZWRPdXQ9ITEsdGhpcy5kaXNwbGF5TmFtZT10Lm5hbWUuc3Vic3RyaW5nKHQubmFtZS5sYXN0SW5kZXhPZihIR3QpKzEpLHQudHlwZT09PWpHdC5NRVRBJiZ0LmFzc29jaWF0ZWRGdW5jdGlvbil7Y29uc3QgdD10aGlzLmRpc3BsYXlOYW1lLm1hdGNoKF9XdCk7dD90aGlzLmRpc3BsYXlOYW1lPXRbMV06U2UuZXhwb3J0cy5zdGFydHNXaXRoKHRoaXMuZGlzcGxheU5hbWUsVkd0KSYmKHRoaXMuZGlzcGxheU5hbWU9dGhpcy5kaXNwbGF5TmFtZS5zdWJzdHJpbmcoVkd0Lmxlbmd0aCkpfX1pc0luQ29yZSgpe3JldHVybiF0aGlzLmlzSW5FeHRyYWN0JiYhdGhpcy5pc091dEV4dHJhY3QmJiF0aGlzLmlzTGlicmFyeUZ1bmN0aW9ufX1jbGFzcyBTV3R7Y29uc3RydWN0b3IodCl7dGhpcy5tZXRhZWRnZT10LHRoaXMuYWRqb2luaW5nTWV0YWVkZ2U9bnVsbCx0aGlzLnN0cnVjdHVyYWw9ITEsdGhpcy53ZWlnaHQ9MSx0aGlzLmlzRmFkZWRPdXQ9ITF9fWZ1bmN0aW9uIE1XdCh0LGUsbixpLHIpe2xldCBvPW5ldyB2V3QoZSxuLGksciwhMCk7dC5pbkFubm90YXRpb25zLnB1c2gobyl9ZnVuY3Rpb24gRVd0KHQsZSxuLGkscil7bGV0IG89bmV3IHZXdChlLG4saSxyLCExKTt0Lm91dEFubm90YXRpb25zLnB1c2gobyl9Y2xhc3MgVFd0IGV4dGVuZHMgd1d0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCk7bGV0IG49dC5tZXRhZ3JhcGguZ3JhcGgoKTt0aGlzLmNvcmVHcmFwaD1vV3Qobi5uYW1lLFVHdC5DT1JFLGUpLHRoaXMuaW5FeHRyYWN0Qm94PXt3aWR0aDowLGhlaWdodDowfSx0aGlzLm91dEV4dHJhY3RCb3g9e3dpZHRoOjAsaGVpZ2h0OjB9LHRoaXMubGlicmFyeUZ1bmN0aW9uc0JveD17d2lkdGg6MCxoZWlnaHQ6MH0sdGhpcy5pc29sYXRlZEluRXh0cmFjdD1bXSx0aGlzLmlzb2xhdGVkT3V0RXh0cmFjdD1bXSx0aGlzLmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0PVtdfX1mdW5jdGlvbiBDV3QodCxlKXt0LmNvcmVHcmFwaCYmKGZ1bmN0aW9uIG4odCxlKXtTZS5leHBvcnRzLmVhY2godC5ub2RlcygpLChuPT57bGV0IGk9dC5ub2RlKG4pO2lmKGkuZXhwYW5kZWQ9ZT4xLGU+MClzd2l0Y2goaS5ub2RlLnR5cGUpe2Nhc2Ugakd0Lk1FVEE6Y2FzZSBqR3QuU0VSSUVTOkNXdChpLGUtMSl9fSkpfSkodC5jb3JlR3JhcGgsZSl9ZnVuY3Rpb24gQVd0KHQsZSxuKXtsZXQgaT10Lm5vZGUoZSkscj10Lm5vZGUobiksbz10LmVkZ2UoZSxuKTsoaS5ub2RlLmluY2x1ZGUhPT1HR3QuSU5DTFVERSYmci5ub2RlLmluY2x1ZGUhPT1HR3QuSU5DTFVERXx8aS5ub2RlLmluY2x1ZGU9PT1HR3QuRVhDTFVERXx8ci5ub2RlLmluY2x1ZGU9PT1HR3QuRVhDTFVERSkmJihFV3QoaSxyLm5vZGUscixvLGJXdC5TSE9SVENVVCksTVd0KHIsaS5ub2RlLGksbyxiV3QuU0hPUlRDVVQpLHQucmVtb3ZlRWRnZShlLG4pKX1mdW5jdGlvbiBrV3QodCxlLG4pe2xldCBpPXQuY29yZUdyYXBoLHI9aS5ub2RlKGUpO3IuaXNPdXRFeHRyYWN0PSEwLFNlLmV4cG9ydHMuZWFjaChpLnByZWRlY2Vzc29ycyhlKSwoKHQsbik9PntBV3QoaSx0LGUpfSkpLFNlLmV4cG9ydHMuZWFjaChpLnN1Y2Nlc3NvcnMoZSksKCh0LG4pPT57QVd0KGksZSx0KX0pKSwwPT09aS5uZWlnaGJvcnMoZSkubGVuZ3RoJiYoci5ub2RlLmluY2x1ZGU9R0d0LkVYQ0xVREUsdC5pc29sYXRlZE91dEV4dHJhY3QucHVzaChyKSxpLnJlbW92ZU5vZGUoZSkpfWZ1bmN0aW9uIExXdCh0LGUsbil7bGV0IGk9dC5jb3JlR3JhcGgscj1pLm5vZGUoZSk7ci5pc0luRXh0cmFjdD0hMCxTZS5leHBvcnRzLmVhY2goaS5zdWNjZXNzb3JzKGUpLCgodCxuKT0+e0FXdChpLGUsdCl9KSksU2UuZXhwb3J0cy5lYWNoKGkucHJlZGVjZXNzb3JzKGUpLCgodCxuKT0+e0FXdChpLHQsZSl9KSksMD09PWkubmVpZ2hib3JzKGUpLmxlbmd0aCYmKHIubm9kZS5pbmNsdWRlPUdHdC5FWENMVURFLHQuaXNvbGF0ZWRJbkV4dHJhY3QucHVzaChyKSxpLnJlbW92ZU5vZGUoZSkpfWZ1bmN0aW9uIFBXdCh0LGUpe2lmKHQudHlwZT09PWpHdC5PUCl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspaWYodC5vcD09PWVbbl0pcmV0dXJuITB9ZWxzZSBpZih0LnR5cGU9PT1qR3QuTUVUQSl7bGV0IG49dC5nZXRSb290T3AoKTtpZihuKWZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKG4ub3A9PT1lW3RdKXJldHVybiEwfXJldHVybiExfWNvbnN0IE5XdD17YW5pbWF0aW9uOntkdXJhdGlvbjoyNTB9LGdyYXBoOnttZXRhOntub2RlU2VwOjUscmFua1NlcDoyNSxlZGdlU2VwOjV9LHNlcmllczp7bm9kZVNlcDo1LHJhbmtTZXA6MjUsZWRnZVNlcDo1fSxwYWRkaW5nOntwYWRkaW5nVG9wOjQwLHBhZGRpbmdMZWZ0OjIwfX0sc3Vic2NlbmU6e21ldGE6e3BhZGRpbmdUb3A6MTAscGFkZGluZ0JvdHRvbToxMCxwYWRkaW5nTGVmdDoxMCxwYWRkaW5nUmlnaHQ6MTAsbGFiZWxIZWlnaHQ6MjAsZXh0cmFjdFhPZmZzZXQ6MTUsZXh0cmFjdFlPZmZzZXQ6MjB9LHNlcmllczp7cGFkZGluZ1RvcDoxMCxwYWRkaW5nQm90dG9tOjEwLHBhZGRpbmdMZWZ0OjEwLHBhZGRpbmdSaWdodDoxMCxsYWJlbEhlaWdodDoxMH19LG5vZGVTaXplOnttZXRhOntyYWRpdXM6NSx3aWR0aDo2MCxtYXhMYWJlbFdpZHRoOjUyLGhlaWdodDpWTSgpLmRvbWFpbihbMSwyMDBdKS5yYW5nZShbMTUsNjBdKS5jbGFtcCghMCksZXhwYW5kQnV0dG9uUmFkaXVzOjN9LG9wOnt3aWR0aDoxNSxoZWlnaHQ6NixyYWRpdXM6MyxsYWJlbE9mZnNldDotOCxtYXhMYWJlbFdpZHRoOjMwfSxzZXJpZXM6e2V4cGFuZGVkOntyYWRpdXM6MTAsbGFiZWxPZmZzZXQ6MH0sdmVydGljYWw6e3dpZHRoOjE2LGhlaWdodDoxMyxsYWJlbE9mZnNldDotMTN9LGhvcml6b250YWw6e3dpZHRoOjI0LGhlaWdodDo4LHJhZGl1czoxMCxsYWJlbE9mZnNldDotMTB9fSxicmlkZ2U6e3dpZHRoOjIwLGhlaWdodDoyMCxyYWRpdXM6MixsYWJlbE9mZnNldDowfX0sc2hvcnRjdXRTaXplOntvcDp7d2lkdGg6MTAsaGVpZ2h0OjR9LG1ldGE6e3dpZHRoOjEyLGhlaWdodDo0LHJhZGl1czoxfSxzZXJpZXM6e3dpZHRoOjE0LGhlaWdodDo0fX0sYW5ub3RhdGlvbnM6e2luYm94V2lkdGg6NTAsb3V0Ym94V2lkdGg6NTAseE9mZnNldDoxMCx5T2Zmc2V0OjMsbGFiZWxPZmZzZXQ6MixtYXhMYWJlbFdpZHRoOjQwfSxjb25zdGFudDp7c2l6ZTp7d2lkdGg6NCxoZWlnaHQ6NH19LHNlcmllczp7bWF4U3RhY2tDb3VudDozLHBhcmFsbGVsU3RhY2tPZmZzZXRSYXRpbzouMix0b3dlclN0YWNrT2Zmc2V0UmF0aW86LjV9LG1pbmltYXA6e3NpemU6MTUwfX0sSVd0PTE0MDtmdW5jdGlvbiBSV3QodCl7dC5ub2RlLmlzR3JvdXBOb2RlJiYoZnVuY3Rpb24gZSh0KXtsZXQgZT10LmNvcmVHcmFwaC5ub2RlcygpLm1hcCgoZT0+dC5jb3JlR3JhcGgubm9kZShlKSkpLmNvbmNhdCh0Lmlzb2xhdGVkSW5FeHRyYWN0LHQuaXNvbGF0ZWRPdXRFeHRyYWN0LHQubGlicmFyeUZ1bmN0aW9uc0V4dHJhY3QpO1NlLmV4cG9ydHMuZWFjaChlLCh0PT57c3dpdGNoKHQubm9kZS50eXBlKXtjYXNlIGpHdC5PUDpTZS5leHBvcnRzLmV4dGVuZCh0LE5XdC5ub2RlU2l6ZS5vcCk7YnJlYWs7Y2FzZSBqR3QuQlJJREdFOlNlLmV4cG9ydHMuZXh0ZW5kKHQsTld0Lm5vZGVTaXplLmJyaWRnZSk7YnJlYWs7Y2FzZSBqR3QuTUVUQTp0LmV4cGFuZGVkP1JXdCh0KTooU2UuZXhwb3J0cy5leHRlbmQodCxOV3Qubm9kZVNpemUubWV0YSksdC5oZWlnaHQ9Tld0Lm5vZGVTaXplLm1ldGEuaGVpZ2h0KHQubm9kZS5jYXJkaW5hbGl0eSkpO2JyZWFrO2Nhc2Ugakd0LlNFUklFUzp0LmV4cGFuZGVkPyhTZS5leHBvcnRzLmV4dGVuZCh0LE5XdC5ub2RlU2l6ZS5zZXJpZXMuZXhwYW5kZWQpLFJXdCh0KSk6U2UuZXhwb3J0cy5leHRlbmQodCx0Lm5vZGUuaGFzTm9uQ29udHJvbEVkZ2VzP05XdC5ub2RlU2l6ZS5zZXJpZXMudmVydGljYWw6Tld0Lm5vZGVTaXplLnNlcmllcy5ob3Jpem9udGFsKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJVbnJlY29nbml6ZWQgbm9kZSB0eXBlOiAiK3Qubm9kZS50eXBlKX10LmV4cGFuZGVkfHwoZnVuY3Rpb24gZSh0KXt0LmluYm94V2lkdGg9dC5pbkFubm90YXRpb25zLmxpc3QubGVuZ3RoPjA/Tld0LmFubm90YXRpb25zLmluYm94V2lkdGg6MCx0Lm91dGJveFdpZHRoPXQub3V0QW5ub3RhdGlvbnMubGlzdC5sZW5ndGg+MD9OV3QuYW5ub3RhdGlvbnMub3V0Ym94V2lkdGg6MCx0LmNvcmVCb3gud2lkdGg9dC53aWR0aCx0LmNvcmVCb3guaGVpZ2h0PXQuaGVpZ2h0LHQud2lkdGg9TWF0aC5tYXgodC5jb3JlQm94LndpZHRoK3QuaW5ib3hXaWR0aCt0Lm91dGJveFdpZHRoLDMqdC5kaXNwbGF5TmFtZS5sZW5ndGgpfSkodCksKGZ1bmN0aW9uIG4odCl7aWYodC5leHBhbmRlZClyZXR1cm47bGV0IGU9dC5pbkFubm90YXRpb25zLmxpc3Qsbj10Lm91dEFubm90YXRpb25zLmxpc3Q7U2UuZXhwb3J0cy5lYWNoKGUsKHQ9PnpXdCh0KSkpLFNlLmV4cG9ydHMuZWFjaChuLCh0PT56V3QodCkpKTtsZXQgaT1OV3QuYW5ub3RhdGlvbnMscj1TZS5leHBvcnRzLnJlZHVjZShlLCgoZSxuLHIpPT57bGV0IG89cj4wP2kueU9mZnNldDowO3JldHVybiBuLmR4PS0odC5jb3JlQm94LndpZHRoK24ud2lkdGgpLzItaS54T2Zmc2V0LG4uZHk9ZStvK24uaGVpZ2h0LzIsZStvK24uaGVpZ2h0fSksMCk7U2UuZXhwb3J0cy5lYWNoKGUsKHQ9Pnt0LmR5LT1yLzIsdC5sYWJlbE9mZnNldD1pLmxhYmVsT2Zmc2V0fSkpO2xldCBvPVNlLmV4cG9ydHMucmVkdWNlKG4sKChlLG4scik9PntsZXQgbz1yPjA/aS55T2Zmc2V0OjA7cmV0dXJuIG4uZHg9KHQuY29yZUJveC53aWR0aCtuLndpZHRoKS8yK2kueE9mZnNldCxuLmR5PWUrbytuLmhlaWdodC8yLGUrbytuLmhlaWdodH0pLDApO1NlLmV4cG9ydHMuZWFjaChuLCh0PT57dC5keS09by8yLHQubGFiZWxPZmZzZXQ9aS5sYWJlbE9mZnNldH0pKTtsZXQgYT1NYXRoLm1pbih0LmhlaWdodC8yLXQucmFkaXVzLHIvMik7YT1hPDA/MDphO2xldCBzPVZNKCkuZG9tYWluKFswLGUubGVuZ3RoLTFdKS5yYW5nZShbLWEsYV0pO1NlLmV4cG9ydHMuZWFjaChlLCgobixpKT0+e24ucG9pbnRzPVt7ZHg6bi5keCtuLndpZHRoLzIsZHk6bi5keX0se2R4Oi10LmNvcmVCb3gud2lkdGgvMixkeTplLmxlbmd0aD4xP3MoaSk6MH1dfSkpO2xldCBsPU1hdGgubWluKHQuaGVpZ2h0LzItdC5yYWRpdXMsby8yKTtsPWw8MD8wOmw7bGV0IGM9Vk0oKS5kb21haW4oWzAsbi5sZW5ndGgtMV0pLnJhbmdlKFstbCxsXSk7U2UuZXhwb3J0cy5lYWNoKG4sKChlLGkpPT57ZS5wb2ludHM9W3tkeDp0LmNvcmVCb3gud2lkdGgvMixkeTpuLmxlbmd0aD4xP2MoaSk6MH0se2R4OmUuZHgtZS53aWR0aC8yLGR5OmUuZHl9XX0pKSx0LmhlaWdodD1NYXRoLm1heCh0LmhlaWdodCxyLG8pfSkodCl9KSl9KSh0KSx0Lm5vZGUudHlwZT09PWpHdC5NRVRBPyhmdW5jdGlvbiBuKHQpe2xldCBlPU5XdC5zdWJzY2VuZS5tZXRhO1NlLmV4cG9ydHMuZXh0ZW5kKHQsZSksU2UuZXhwb3J0cy5leHRlbmQodC5jb3JlQm94LE9XdCh0LmNvcmVHcmFwaCxOV3QuZ3JhcGgubWV0YSkpO2xldCBuPXQuaXNvbGF0ZWRJbkV4dHJhY3QubGVuZ3RoP1NlLmV4cG9ydHMubWF4QnkodC5pc29sYXRlZEluRXh0cmFjdCwodD0+dC53aWR0aCkpLndpZHRoOm51bGw7dC5pbkV4dHJhY3RCb3gud2lkdGg9bnVsbCE9bj9uOjAsdC5pbkV4dHJhY3RCb3guaGVpZ2h0PVNlLmV4cG9ydHMucmVkdWNlKHQuaXNvbGF0ZWRJbkV4dHJhY3QsKCh0LG4saSk9PntsZXQgcj1pPjA/ZS5leHRyYWN0WU9mZnNldDowO3JldHVybiBuLng9MCxuLnk9dCtyK24uaGVpZ2h0LzIsdCtyK24uaGVpZ2h0fSksMCk7bGV0IGk9dC5pc29sYXRlZE91dEV4dHJhY3QubGVuZ3RoP1NlLmV4cG9ydHMubWF4QnkodC5pc29sYXRlZE91dEV4dHJhY3QsKHQ9PnQud2lkdGgpKS53aWR0aDpudWxsO3Qub3V0RXh0cmFjdEJveC53aWR0aD1udWxsIT1pP2k6MCx0Lm91dEV4dHJhY3RCb3guaGVpZ2h0PVNlLmV4cG9ydHMucmVkdWNlKHQuaXNvbGF0ZWRPdXRFeHRyYWN0LCgodCxuLGkpPT57bGV0IHI9aT4wP2UuZXh0cmFjdFlPZmZzZXQ6MDtyZXR1cm4gbi54PTAsbi55PXQrcituLmhlaWdodC8yLHQrcituLmhlaWdodH0pLDApO2xldCByPXQubGlicmFyeUZ1bmN0aW9uc0V4dHJhY3QubGVuZ3RoP1NlLmV4cG9ydHMubWF4QnkodC5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdCwodD0+dC53aWR0aCkpLndpZHRoOm51bGw7dC5saWJyYXJ5RnVuY3Rpb25zQm94LndpZHRoPW51bGwhPXI/cjowLHQubGlicmFyeUZ1bmN0aW9uc0JveC5oZWlnaHQ9U2UuZXhwb3J0cy5yZWR1Y2UodC5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdCwoKHQsbixpKT0+e2xldCByPWk+MD9lLmV4dHJhY3RZT2Zmc2V0OjA7cmV0dXJuIG4ueD0wLG4ueT10K3Irbi5oZWlnaHQvMix0K3Irbi5oZWlnaHR9KSwwKTtsZXQgbz0wO3QuaXNvbGF0ZWRJbkV4dHJhY3QubGVuZ3RoPjAmJm8rKyx0Lmlzb2xhdGVkT3V0RXh0cmFjdC5sZW5ndGg+MCYmbysrLHQubGlicmFyeUZ1bmN0aW9uc0V4dHJhY3QubGVuZ3RoPjAmJm8rKyx0LmNvcmVHcmFwaC5ub2RlQ291bnQoKT4wJiZvKys7bGV0IGE9bzw9MT8wOm8qTld0LnN1YnNjZW5lLm1ldGEuZXh0cmFjdFhPZmZzZXQ7Y29uc3Qgcz1NYXRoLm1heChJV3QsdC5pbkV4dHJhY3RCb3gud2lkdGgrdC5vdXRFeHRyYWN0Qm94LndpZHRoKTt0LmNvcmVCb3gud2lkdGgrPXMrYSt0LmxpYnJhcnlGdW5jdGlvbnNCb3gud2lkdGgrYSx0LmNvcmVCb3guaGVpZ2h0PWUubGFiZWxIZWlnaHQrTWF0aC5tYXgodC5pbkV4dHJhY3RCb3guaGVpZ2h0LHQuY29yZUJveC5oZWlnaHQsdC5saWJyYXJ5RnVuY3Rpb25zQm94LmhlaWdodCx0Lm91dEV4dHJhY3RCb3guaGVpZ2h0KSx0LndpZHRoPXQuY29yZUJveC53aWR0aCtlLnBhZGRpbmdMZWZ0K2UucGFkZGluZ1JpZ2h0LHQuaGVpZ2h0PXQucGFkZGluZ1RvcCt0LmNvcmVCb3guaGVpZ2h0K3QucGFkZGluZ0JvdHRvbX0pKHQpOnQubm9kZS50eXBlPT09akd0LlNFUklFUyYmKGZ1bmN0aW9uIGkodCl7bGV0IGU9dC5jb3JlR3JhcGgsbj1OV3Quc3Vic2NlbmUuc2VyaWVzO1NlLmV4cG9ydHMuZXh0ZW5kKHQsbiksU2UuZXhwb3J0cy5leHRlbmQodC5jb3JlQm94LE9XdCh0LmNvcmVHcmFwaCxOV3QuZ3JhcGguc2VyaWVzKSksU2UuZXhwb3J0cy5lYWNoKGUubm9kZXMoKSwodD0+e2Uubm9kZSh0KS5leGNsdWRlZD0hMX0pKSx0LndpZHRoPXQuY29yZUJveC53aWR0aCtuLnBhZGRpbmdMZWZ0K24ucGFkZGluZ1JpZ2h0LHQuaGVpZ2h0PXQuY29yZUJveC5oZWlnaHQrbi5wYWRkaW5nVG9wK24ucGFkZGluZ0JvdHRvbX0pKHQpfWZ1bmN0aW9uIE9XdCh0LGUpe1NlLmV4cG9ydHMuZXh0ZW5kKHQuZ3JhcGgoKSx7bm9kZXNlcDplLm5vZGVTZXAscmFua3NlcDplLnJhbmtTZXAsZWRnZXNlcDplLmVkZ2VTZXB9KTtsZXQgbj1bXTtpZihTZS5leHBvcnRzLmVhY2godC5ub2RlcygpLChlPT57dC5ub2RlKGUpLm5vZGUudHlwZT09PWpHdC5CUklER0V8fG4ucHVzaChlKX0pKSwhbi5sZW5ndGgpcmV0dXJue3dpZHRoOjAsaGVpZ2h0OjB9O2ZHdC5sYXlvdXQodCk7bGV0IGk9MS8wLHI9MS8wLG89LTEvMCxhPS0xLzA7cmV0dXJuIFNlLmV4cG9ydHMuZWFjaChuLChlPT57bGV0IG49dC5ub2RlKGUpLHM9LjUqbi53aWR0aCxsPW4ueC1zLGM9bi54K3M7aT1sPGk/bDppLG89Yz5vP2M6bztsZXQgdT0uNSpuLmhlaWdodCxoPW4ueS11LGQ9bi55K3U7cj1oPHI/aDpyLGE9ZD5hP2Q6YX0pKSxTZS5leHBvcnRzLmVhY2godC5lZGdlcygpLChlPT57bGV0IG49dC5lZGdlKGUpO2lmKG4uc3RydWN0dXJhbClyZXR1cm47bGV0IHM9dC5ub2RlKG4ubWV0YWVkZ2UudiksbD10Lm5vZGUobi5tZXRhZWRnZS53KTtpZigzPT09bi5wb2ludHMubGVuZ3RoJiYoZnVuY3Rpb24gYyh0KXtsZXQgZT1CV3QodFswXSx0WzFdKTtmb3IobGV0IG49MTtuPHQubGVuZ3RoLTE7bisrKXtsZXQgaT1CV3QodFtuXSx0W24rMV0pO2lmKE1hdGguYWJzKGktZSk+MSlyZXR1cm4hMTtlPWl9cmV0dXJuITB9KShuLnBvaW50cykpe2lmKG51bGwhPXMpe2xldCB0PXMuZXhwYW5kZWQ/cy54OkRXdChzKTtuLnBvaW50c1swXS54PXR9aWYobnVsbCE9bCl7bGV0IHQ9bC5leHBhbmRlZD9sLng6RFd0KGwpO24ucG9pbnRzWzJdLng9dH1uLnBvaW50cz1bbi5wb2ludHNbMF0sbi5wb2ludHNbMV1dfW51bGwhPWwmJihuLnBvaW50c1tuLnBvaW50cy5sZW5ndGgtMV09SFd0KG4ucG9pbnRzW24ucG9pbnRzLmxlbmd0aC0yXSxsKSksbnVsbCE9cyYmKG4ucG9pbnRzWzBdPUhXdChuLnBvaW50c1sxXSxzKSksU2UuZXhwb3J0cy5lYWNoKG4ucG9pbnRzLCh0PT57aT10Lng8aT90Lng6aSxvPXQueD5vP3QueDpvLHI9dC55PHI/dC55OnIsYT10Lnk+YT90Lnk6YX0pKX0pKSxTZS5leHBvcnRzLmVhY2godC5ub2RlcygpLChlPT57bGV0IG49dC5ub2RlKGUpO24ueC09aSxuLnktPXJ9KSksU2UuZXhwb3J0cy5lYWNoKHQuZWRnZXMoKSwoZT0+e1NlLmV4cG9ydHMuZWFjaCh0LmVkZ2UoZSkucG9pbnRzLCh0PT57dC54LT1pLHQueS09cn0pKX0pKSx7d2lkdGg6by1pLGhlaWdodDphLXJ9fWZ1bmN0aW9uIHpXdCh0KXtzd2l0Y2godC5hbm5vdGF0aW9uVHlwZSl7Y2FzZSBiV3QuQ09OU1RBTlQ6U2UuZXhwb3J0cy5leHRlbmQodCxOV3QuY29uc3RhbnQuc2l6ZSk7YnJlYWs7Y2FzZSBiV3QuU0hPUlRDVVQ6aWYodC5ub2RlLnR5cGU9PT1qR3QuT1ApU2UuZXhwb3J0cy5leHRlbmQodCxOV3Quc2hvcnRjdXRTaXplLm9wKTtlbHNlIGlmKHQubm9kZS50eXBlPT09akd0Lk1FVEEpU2UuZXhwb3J0cy5leHRlbmQodCxOV3Quc2hvcnRjdXRTaXplLm1ldGEpO2Vsc2V7aWYodC5ub2RlLnR5cGUhPT1qR3QuU0VSSUVTKXRocm93IEVycm9yKCJJbnZhbGlkIG5vZGUgdHlwZTogIit0Lm5vZGUudHlwZSk7U2UuZXhwb3J0cy5leHRlbmQodCxOV3Quc2hvcnRjdXRTaXplLnNlcmllcyl9YnJlYWs7Y2FzZSBiV3QuU1VNTUFSWTpTZS5leHBvcnRzLmV4dGVuZCh0LE5XdC5jb25zdGFudC5zaXplKX19ZnVuY3Rpb24gRFd0KHQpe3JldHVybiB0LmV4cGFuZGVkP3QueDp0LngtdC53aWR0aC8yKyh0LmluQW5ub3RhdGlvbnMubGlzdC5sZW5ndGg/dC5pbmJveFdpZHRoOjApK3QuY29yZUJveC53aWR0aC8yfWZ1bmN0aW9uIEJXdCh0LGUpe3JldHVybiAxODAqTWF0aC5hdGFuKChlLnktdC55KS8oZS54LXQueCkpL01hdGguUEl9ZnVuY3Rpb24gSFd0KHQsZSl7bGV0IG4saSxyPWUuZXhwYW5kZWQ/ZS54OkRXdChlKSxvPWUueSxhPXQueC1yLHM9dC55LW8sbD1lLmV4cGFuZGVkP2Uud2lkdGg6ZS5jb3JlQm94LndpZHRoLGM9ZS5leHBhbmRlZD9lLmhlaWdodDplLmNvcmVCb3guaGVpZ2h0O3JldHVybiBNYXRoLmFicyhzKSpsLzI+TWF0aC5hYnMoYSkqYy8yPyhzPDAmJihjPS1jKSxuPTA9PT1zPzA6Yy8yKmEvcyxpPWMvMik6KGE8MCYmKGw9LWwpLG49bC8yLGk9MD09PWE/MDpsLzIqcy9hKSx7eDpyK24seTpvK2l9fWNvbnN0IEZXdD14R3QsVld0PXZHdDtsZXQgVVd0PVt7YmFja2dyb3VuZF9jb2xvcjoiI0NDMkYyQyIsbGFiZWw6Ik5hTiJ9LHtiYWNrZ3JvdW5kX2NvbG9yOiIjRkY4RDAwIixsYWJlbDoiLeKIniJ9LHtiYWNrZ3JvdW5kX2NvbG9yOiIjRUFFQUVBIixsYWJlbDoiLSJ9LHtiYWNrZ3JvdW5kX2NvbG9yOiIjQTVBNUE1IixsYWJlbDoiMCJ9LHtiYWNrZ3JvdW5kX2NvbG9yOiIjMjYyNjI2IixsYWJlbDoiKyJ9LHtiYWNrZ3JvdW5kX2NvbG9yOiIjMDAzRUQ0IixsYWJlbDoiK+KIniJ9XTtmdW5jdGlvbiBqV3QodCxlLG4pe251bGwhPXQuYXR0cigidHJhbnNmb3JtIikmJih0PXQudHJhbnNpdGlvbigicG9zaXRpb24iKSksdC5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitlKyIsIituKyIpIil9ZnVuY3Rpb24gR1d0KHQsZSxuLGkscil7dC50cmFuc2l0aW9uKCkuYXR0cigieCIsZS1pLzIpLmF0dHIoInkiLG4tci8yKS5hdHRyKCJ3aWR0aCIsaSkuYXR0cigiaGVpZ2h0IixyKX1mdW5jdGlvbiBXV3QodCxlLG4saSxyKXt0LnRyYW5zaXRpb24oKS5hdHRyKCJjeCIsZSkuYXR0cigiY3kiLG4pLmF0dHIoInJ4IixpLzIpLmF0dHIoInJ5IixyLzIpfWZ1bmN0aW9uIHFXdCh0LGUpe3JldHVybiBlP3QudG9GaXhlZCgwKTpNYXRoLmFicyh0KT49MT90LnRvRml4ZWQoMSk6dC50b0V4cG9uZW50aWFsKDEpfWxldCBZV3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnNwZWNpZmljSGVhbHRoUGlsbFN0ZXA9MCx0aGlzLmhlYWx0aFBpbGxFbnRyaWVzPVVXdH1yZWFkeSgpe3N1cGVyLnJlYWR5KCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW5Db250YWluZXIiKSxlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInRmLWRhc2hib2FyZC1sYXlvdXQgLnNjcm9sbGJhciIpO3QmJmUmJih0LnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLGUuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpfV9oZWFsdGhQaWxsc0F2YWlsYWJsZSh0LGUpe3JldHVybiB0JiZlfV9jb21wdXRlVGVuc29yQ291bnRTdHJpbmcodCxlKXtyZXR1cm4gdD90W2VdLnRvRml4ZWQoMCk6IiJ9Z2V0IGhlYWx0aFBpbGxWYWx1ZXNGb3JTZWxlY3RlZE5vZGUoKXt2YXIgdD10aGlzLnNlbGVjdGVkTm9kZTtpZih0aGlzLmFyZUhlYWx0aFBpbGxzTG9hZGluZylyZXR1cm4gbnVsbDtpZighdClyZXR1cm4gbnVsbDtjb25zdCBlPXRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxsc1t0XTtpZighZSlyZXR1cm4gbnVsbDtjb25zdCBuPWVbdGhpcy5hbGxTdGVwc01vZGVFbmFibGVkPzA6dGhpcy5oZWFsdGhQaWxsU3RlcEluZGV4XTtyZXR1cm4gbj9uLnZhbHVlLnNsaWNlKDIsOCk6bnVsbH1nZXQgX2N1cnJlbnRTdGVwRGlzcGxheVZhbHVlKCl7dmFyIHQ9dGhpcy5ub2RlTmFtZXNUb0hlYWx0aFBpbGxzLGU9dGhpcy5oZWFsdGhQaWxsU3RlcEluZGV4LG49dGhpcy5hcmVIZWFsdGhQaWxsc0xvYWRpbmc7aWYodGhpcy5hbGxTdGVwc01vZGVFbmFibGVkKXJldHVybiB0aGlzLnNwZWNpZmljSGVhbHRoUGlsbFN0ZXAudG9GaXhlZCgwKTtpZihuKXJldHVybiAwO2ZvcihsZXQgbiBpbiB0KXJldHVybiB0W25dW2VdLnN0ZXAudG9GaXhlZCgwKTtyZXR1cm4gMH1nZXQgX2JpZ2dlc3RTdGVwRXZlclNlZW4oKXt2YXIgdD10aGlzLm5vZGVOYW1lc1RvSGVhbHRoUGlsbHM7Zm9yKGxldCBuIGluIHQpe3ZhciBlPXRbbl07cmV0dXJuIE1hdGgubWF4KHRoaXMuX2JpZ2dlc3RTdGVwRXZlclNlZW4sZVtlLmxlbmd0aC0xXS5zdGVwKX1yZXR1cm4gdGhpcy5fYmlnZ2VzdFN0ZXBFdmVyU2Vlbnx8MH1nZXQgX21heFN0ZXBJbmRleCgpe3ZhciB0PXRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxscztmb3IobGV0IGUgaW4gdClyZXR1cm4gdFtlXS5sZW5ndGgtMTtyZXR1cm4gMH1faGFzRGVidWdnZXJOdW1lcmljQWxlcnRzKHQpe3JldHVybiB0JiZ0Lmxlbmd0aH1fdXBkYXRlQWxlcnRzTGlzdCgpe3ZhciB0PXRoaXMuZGVidWdnZXJOdW1lcmljQWxlcnRzLGU9dGhpcy4kJCgiI251bWVyaWMtYWxlcnRzLWJvZHkiKTtpZihlKXtlLmlubmVyVGV4dD0iIjtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXSxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIiksbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpO28uaW5uZXJUZXh0PShmPWkuZmlyc3RfdGltZXN0YW1wLChtPStuZXcgRGF0ZS0rbmV3IERhdGUoZi8xZTMpKTwzZTQ/Imp1c3Qgbm93IjptPDZlND9NYXRoLmZsb29yKG0vMWUzKSsiIHNlY29uZHMgYWdvIjptPDEyZTQ/ImEgbWludXRlIGFnbyI6bTwzNmU1P01hdGguZmxvb3IobS82ZTQpKyIgbWludXRlcyBhZ28iOjE9PU1hdGguZmxvb3IobS8zNmU1KT8iYW4gaG91ciBhZ28iOm08ODY0ZTU/TWF0aC5mbG9vcihtLzM2ZTUpKyIgaG91cnMgYWdvIjptPDE3MjhlNT8ieWVzdGVyZGF5IjpNYXRoLmZsb29yKG0vODY0ZTUpKyIgZGF5cyBhZ28iKSxvLmNsYXNzTGlzdC5hZGQoImZpcnN0LW9mZmVuc2UtdGQiKSxyLmFwcGVuZENoaWxkKG8pO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7YS5jbGFzc0xpc3QuYWRkKCJ0ZW5zb3ItZGV2aWNlLXRkIik7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5jbGFzc0xpc3QuYWRkKCJ0ZW5zb3Itc2VjdGlvbi13aXRoaW4tdGFibGUiKSxzLmlubmVyVGV4dD1pLnRlbnNvcl9uYW1lLHRoaXMuX2FkZE9wRXhwYW5zaW9uTGlzdGVuZXIocyxpLnRlbnNvcl9uYW1lKSxhLmFwcGVuZENoaWxkKHMpO3ZhciBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wuY2xhc3NMaXN0LmFkZCgiZGV2aWNlLXNlY3Rpb24td2l0aGluLXRhYmxlIiksbC5pbm5lclRleHQ9IigiK2kuZGV2aWNlX25hbWUrIikiLGEuYXBwZW5kQ2hpbGQobCksci5hcHBlbmRDaGlsZChhKTt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtjLmNsYXNzTGlzdC5hZGQoIm1pbmktaGVhbHRoLXBpbGwiKTt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpO2lmKHUuY2xhc3NMaXN0LmFkZCgibWluaS1oZWFsdGgtcGlsbC10ZCIpLHUuYXBwZW5kQ2hpbGQoYyksci5hcHBlbmRDaGlsZCh1KSxpLm5lZ19pbmZfZXZlbnRfY291bnQpe3ZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2guY2xhc3NMaXN0LmFkZCgibmVnYXRpdmUtaW5mLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiIpLGguaW5uZXJUZXh0PWkubmVnX2luZl9ldmVudF9jb3VudCxoLnNldEF0dHJpYnV0ZSgidGl0bGUiLGkubmVnX2luZl9ldmVudF9jb3VudCsiIGV2ZW50cyB3aXRoIC3iiJ4iKSxjLmFwcGVuZENoaWxkKGgpfWlmKGkucG9zX2luZl9ldmVudF9jb3VudCl7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5jbGFzc0xpc3QuYWRkKCJwb3NpdGl2ZS1pbmYtbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIiksZC5pbm5lclRleHQ9aS5wb3NfaW5mX2V2ZW50X2NvdW50LGQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsaS5wb3NfaW5mX2V2ZW50X2NvdW50KyIgZXZlbnRzIHdpdGggK+KIniIpLGMuYXBwZW5kQ2hpbGQoZCl9aWYoaS5uYW5fZXZlbnRfY291bnQpe3ZhciBwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3AuY2xhc3NMaXN0LmFkZCgibmFuLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiIpLHAuaW5uZXJUZXh0PWkubmFuX2V2ZW50X2NvdW50LHAuc2V0QXR0cmlidXRlKCJ0aXRsZSIsaS5uYW5fZXZlbnRfY291bnQrIiBldmVudHMgd2l0aCBOYU4iKSxjLmFwcGVuZENoaWxkKHApfVlpKGUpLmFwcGVuZENoaWxkKHIpfXZhciBmLG19fV9hZGRPcEV4cGFuc2lvbkxpc3RlbmVyKHQsZSl7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCgpPT57dmFyIHQsbj0oZnVuY3Rpb24gaSh0LGUsbil7Y29uc3QgaT1uLnNwbGl0KCIvIikscj1pW2kubGVuZ3RoLTFdLm1hdGNoKC8oLiopOlx3Ky8pOzI9PT1yLmxlbmd0aCYmKGlbaS5sZW5ndGgtMV09clsxXSk7bGV0IG89aVswXSxhPWUuZ2V0UmVuZGVyTm9kZUJ5TmFtZShvKTtmb3IobGV0IG49MTtuPGkubGVuZ3RoJiZhLm5vZGUudHlwZSE9PWpHdC5PUDtuKyspZS5idWlsZFN1YmhpZXJhcmNoeShvKSxhLmV4cGFuZGVkPSEwLHQuc2V0Tm9kZUV4cGFuZGVkKGEpLG8rPSIvIitpW25dLGE9ZS5nZXRSZW5kZXJOb2RlQnlOYW1lKG8pO3JldHVybiBhLm5vZGUubmFtZX0pKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY2VuZSIpLHRoaXMucmVuZGVySGllcmFyY2h5LGUpLHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidGYtZ3JhcGgtaW5mbyNncmFwaC1pbmZvIik7ciYmKHQ9ci5zY3JvbGxIZWlnaHQtci5zY3JvbGxUb3ApO3ZhciBvPXRoaXMuc2VsZWN0ZWROb2RlO3RoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLG4pO3ZhciBhPSgpPT57ci5zY3JvbGxUb3A9ci5zY3JvbGxIZWlnaHQtdH07ciYmKG8/YSgpOndpbmRvdy5zZXRUaW1lb3V0KGEsMjApKX0pKX19O3ZhciBYV3Q7WVd0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBoMiB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtbGVnZW5kIHsKICAgICAgICBwYWRkaW5nOiAxNXB4OwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtbGVnZW5kIGgyIHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtZW50cnkgewogICAgICAgIG1hcmdpbjogMTBweCAxMHB4IDEwcHggMDsKICAgICAgfQoKICAgICAgLmhlYWx0aC1waWxsLWVudHJ5IC5jb2xvci1wcmV2aWV3IHsKICAgICAgICB3aWR0aDogMjZweDsKICAgICAgICBoZWlnaHQ6IDI2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW46IDAgMTBweCAwIDA7CiAgICAgIH0KCiAgICAgIC5oZWFsdGgtcGlsbC1lbnRyeSAuY29sb3ItbGFiZWwsCiAgICAgIC5oZWFsdGgtcGlsbC1lbnRyeSAudGVuc29yLWNvdW50IHsKICAgICAgICBjb2xvcjogIzc3NzsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMjJweDsKICAgICAgICBsaW5lLWhlaWdodDogMjZweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtZW50cnkgLnRlbnNvci1jb3VudCB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICB9CgogICAgICAjaGVhbHRoLXBpbGwtc3RlcC1zbGlkZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogMCAwIDAgLTE1cHg7CiAgICAgICAgLyogMzEgY29tZXMgZnJvbSBhZGRpbmcgYSBwYWRkaW5nIG9mIDE1cHggZnJvbSBib3RoIHNpZGVzIG9mIHRoZSBwYXBlci1zbGlkZXIsIHN1YnRyYWN0aW5nCiAgICogMXB4IHNvIHRoYXQgdGhlIHNsaWRlciB3aWR0aCBhbGlnbnMgd2l0aCB0aGUgaW1hZ2UgKHRoZSBsYXN0IHNsaWRlciBtYXJrZXIgdGFrZXMgdXAgMXB4KSwKICAgKiBhbmQgYWRkaW5nIDJweCB0byBhY2NvdW50IGZvciBhIGJvcmRlciBvZiAxcHggb24gYm90aCBzaWRlcyBvZiB0aGUgaW1hZ2UuIDMwIC0gMSArIDIuCiAgICogQXBwYXJlbnRseSwgdGhlIHBhcGVyLXNsaWRlciBsYWNrcyBhIG1peGluIGZvciB0aG9zZSBwYWRkaW5nIHZhbHVlcy4gKi8KICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMzFweCk7CiAgICAgIH0KCiAgICAgICNoZWFsdGgtcGlsbHMtbG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgICAgfQoKICAgICAgI2hlYWx0aC1waWxsLXN0ZXAtbnVtYmVyLWlucHV0IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgICAgfQoKICAgICAgI251bWVyaWMtYWxlcnRzLXRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgICNudW1lcmljLWFsZXJ0cy10YWJsZSB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQoKICAgICAgI251bWVyaWMtYWxlcnRzLXRhYmxlIHRkIHsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgICB9CgogICAgICAjbnVtZXJpYy1hbGVydHMtdGFibGUgLmZpcnN0LW9mZmVuc2UtdGQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmZpcnN0LW9mZmVuc2UtdGQgewogICAgICAgIHdpZHRoOiA4MHB4OwogICAgICB9CgogICAgICAudGVuc29yLWRldmljZS10ZCB7CiAgICAgICAgbWF4LXdpZHRoOiAxNDBweDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC50ZW5zb3Itc2VjdGlvbi13aXRoaW4tdGFibGUgewogICAgICAgIGNvbG9yOiAjMjY2MjM2OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC50ZW5zb3Itc2VjdGlvbi13aXRoaW4tdGFibGU6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5kZXZpY2Utc2VjdGlvbi13aXRoaW4tdGFibGUgewogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICB9CgogICAgICAubWluaS1oZWFsdGgtcGlsbCB7CiAgICAgICAgd2lkdGg6IDEzMHB4OwogICAgICB9CgogICAgICAubWluaS1oZWFsdGgtcGlsbCA+IGRpdiB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiA2MHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgI2V2ZW50LWNvdW50cy10aCB7CiAgICAgICAgcGFkZGluZzogMCAwIDAgMTBweDsKICAgICAgfQoKICAgICAgLm5lZ2F0aXZlLWluZi1taW5pLWhlYWx0aC1waWxsLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6IHJnYigyNTUsIDE0MSwgMCk7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wb3NpdGl2ZS1pbmYtbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoMCwgNjIsIDIxMik7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5uYW4tbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoMjA0LCA0NywgNDQpOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICB9CgogICAgICAubmVnYXRpdmUtaW5mLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiwKICAgICAgLnBvc2l0aXZlLWluZi1taW5pLWhlYWx0aC1waWxsLXNlY3Rpb24sCiAgICAgIC5uYW4tbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIG1hcmdpbjogMCAwIDAgMTBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5uby1udW1lcmljLWFsZXJ0cy1ub3RpZmljYXRpb24gewogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJjYXJkIGhlYWx0aC1waWxsLWxlZ2VuZCI+CiAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4KICAgICAgICBFbmFibGUgYWxsIChub3QganVzdCBzYW1wbGVkKSBzdGVwcy4gUmVxdWlyZXMgc2xvdyBkaXNrIHJlYWQuCiAgICAgIDwvZGl2PgogICAgICA8cGFwZXItdG9nZ2xlLWJ1dHRvbgogICAgICAgIGlkPSJlbmFibGVBbGxTdGVwc01vZGVUb2dnbGUiCiAgICAgICAgY2hlY2tlZD0ie3thbGxTdGVwc01vZGVFbmFibGVkfX0iCiAgICAgID4KICAgICAgPC9wYXBlci10b2dnbGUtYnV0dG9uPgogICAgICA8aDI+CiAgICAgICAgU3RlcCBvZiBIZWFsdGggUGlsbHM6CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2FsbFN0ZXBzTW9kZUVuYWJsZWRdXSI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgICAgICBpZD0iaGVhbHRoLXBpbGwtc3RlcC1udW1iZXItaW5wdXQiCiAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgbWF4PSJbW19iaWdnZXN0U3RlcEV2ZXJTZWVuXV0iCiAgICAgICAgICAgIHZhbHVlPSJ7e3NwZWNpZmljSGVhbHRoUGlsbFN0ZXA6OmlucHV0fX0iCiAgICAgICAgICAvPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFhbGxTdGVwc01vZGVFbmFibGVkXV0iPgogICAgICAgICAgW1tfY3VycmVudFN0ZXBEaXNwbGF5VmFsdWVdXQogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHBhcGVyLXNwaW5uZXItbGl0ZQogICAgICAgICAgYWN0aXZlCiAgICAgICAgICBoaWRkZW4kPSJbWyFhcmVIZWFsdGhQaWxsc0xvYWRpbmddXSIKICAgICAgICAgIGlkPSJoZWFsdGgtcGlsbHMtbG9hZGluZy1zcGlubmVyIgogICAgICAgID48L3BhcGVyLXNwaW5uZXItbGl0ZT4KICAgICAgPC9oMj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2FsbFN0ZXBzTW9kZUVuYWJsZWRdXSI+CiAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgaWQ9ImhlYWx0aC1waWxsLXN0ZXAtc2xpZGVyIgogICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e3NwZWNpZmljSGVhbHRoUGlsbFN0ZXB9fSIKICAgICAgICAgIG1heD0iW1tfYmlnZ2VzdFN0ZXBFdmVyU2Vlbl1dIgogICAgICAgICAgc25hcHMKICAgICAgICAgIHN0ZXA9IjEiCiAgICAgICAgICB2YWx1ZT0ie3tzcGVjaWZpY0hlYWx0aFBpbGxTdGVwfX0iCiAgICAgICAgPjwvcGFwZXItc2xpZGVyPgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIWFsbFN0ZXBzTW9kZUVuYWJsZWRdXSI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19tYXhTdGVwSW5kZXhdXSI+CiAgICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICAgIGlkPSJoZWFsdGgtcGlsbC1zdGVwLXNsaWRlciIKICAgICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e2hlYWx0aFBpbGxTdGVwSW5kZXh9fSIKICAgICAgICAgICAgbWF4PSJbW19tYXhTdGVwSW5kZXhdXSIKICAgICAgICAgICAgc25hcHMKICAgICAgICAgICAgc3RlcD0iMSIKICAgICAgICAgICAgdmFsdWU9Int7aGVhbHRoUGlsbFN0ZXBJbmRleH19IgogICAgICAgICAgPjwvcGFwZXItc2xpZGVyPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxoMj4KICAgICAgICBIZWFsdGggUGlsbAogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1toZWFsdGhQaWxsVmFsdWVzRm9yU2VsZWN0ZWROb2RlXV0iPgogICAgICAgICAgQ291bnRzIGZvciBTZWxlY3RlZCBOb2RlCiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIWhlYWx0aFBpbGxWYWx1ZXNGb3JTZWxlY3RlZE5vZGVdXSI+CiAgICAgICAgICBMZWdlbmQKICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2gyPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW2hlYWx0aFBpbGxFbnRyaWVzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWx0aC1waWxsLWVudHJ5Ij4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9ImNvbG9yLXByZXZpZXciCiAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kOltbaXRlbS5iYWNrZ3JvdW5kX2NvbG9yXV0iCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sYWJlbCI+W1tpdGVtLmxhYmVsXV08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRlbnNvci1jb3VudCI+CiAgICAgICAgICAgIFtbX2NvbXB1dGVUZW5zb3JDb3VudFN0cmluZyhoZWFsdGhQaWxsVmFsdWVzRm9yU2VsZWN0ZWROb2RlLAogICAgICAgICAgICBpbmRleCldXQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxkaXYgaGlkZGVuJD0iW1shX2hhc0RlYnVnZ2VyTnVtZXJpY0FsZXJ0cyhkZWJ1Z2dlck51bWVyaWNBbGVydHMpXV0iPgogICAgICAgIDxoMiBpZD0ibnVtZXJpYy1hbGVydHMtaGVhZGVyIj5OdW1lcmljIEFsZXJ0czwvaDI+CiAgICAgICAgPHA+QWxlcnRzIGFyZSBzb3J0ZWQgZnJvbSB0b3AgdG8gYm90dG9tIGJ5IGluY3JlYXNpbmcgdGltZXN0YW1wLjwvcD4KICAgICAgICA8ZGl2IGlkPSJudW1lcmljLWFsZXJ0cy10YWJsZS1jb250YWluZXIiPgogICAgICAgICAgPHRhYmxlIGlkPSJudW1lcmljLWFsZXJ0cy10YWJsZSI+CiAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGg+Rmlyc3QgT2ZmZW5zZTwvdGg+CiAgICAgICAgICAgICAgICA8dGg+VGVuc29yIChEZXZpY2UpPC90aD4KICAgICAgICAgICAgICAgIDx0aCBpZD0iZXZlbnQtY291bnRzLXRoIj5FdmVudCBDb3VudHM8L3RoPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgIDx0Ym9keSBpZD0ibnVtZXJpYy1hbGVydHMtYm9keSI+PC90Ym9keT4KICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8dGVtcGxhdGUKICAgICAgICBpcz0iZG9tLWlmIgogICAgICAgIGlmPSJbWyFfaGFzRGVidWdnZXJOdW1lcmljQWxlcnRzKGRlYnVnZ2VyTnVtZXJpY0FsZXJ0cyldXSIKICAgICAgPgogICAgICAgIDxwIGNsYXNzPSJuby1udW1lcmljLWFsZXJ0cy1ub3RpZmljYXRpb24iPgogICAgICAgICAgTm8gbnVtZXJpYyBhbGVydHMgc28gZmFyLiBUaGF0IGlzIGxpa2VseSBnb29kLiBBbGVydHMgaW5kaWNhdGUgdGhlCiAgICAgICAgICBwcmVzZW5jZSBvZiBOYU4gb3IgKCsvLSkgSW5maW5pdHkgdmFsdWVzLCB3aGljaCBtYXkgYmUgY29uY2VybmluZy4KICAgICAgICA8L3A+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3BhcGVyLW1hdGVyaWFsPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIseVd0KV0sWVd0LnByb3RvdHlwZSwicmVuZGVySGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXksbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFlXdC5wcm90b3R5cGUsImRlYnVnZ2VyTnVtZXJpY0FsZXJ0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxZV3QucHJvdG90eXBlLCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxZV3QucHJvdG90eXBlLCJoZWFsdGhQaWxsU3RlcEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxZV3QucHJvdG90eXBlLCJzcGVjaWZpY0hlYWx0aFBpbGxTdGVwIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxZV3QucHJvdG90eXBlLCJzZWxlY3RlZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFlXdC5wcm90b3R5cGUsImhpZ2hsaWdodGVkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWVd0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlSW5jbHVkZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWVd0LnByb3RvdHlwZSwiYXJlSGVhbHRoUGlsbHNMb2FkaW5nIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxZV3QucHJvdG90eXBlLCJoZWFsdGhQaWxsRW50cmllcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFlXdC5wcm90b3R5cGUsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLHZvaWQgMCksdChbcygibm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsImhlYWx0aFBpbGxTdGVwSW5kZXgiLCJzZWxlY3RlZE5vZGUiLCJhbGxTdGVwc01vZGVFbmFibGVkIiwiYXJlSGVhbHRoUGlsbHNMb2FkaW5nIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZV3QucHJvdG90eXBlLCJoZWFsdGhQaWxsVmFsdWVzRm9yU2VsZWN0ZWROb2RlIixudWxsKSx0KFtzKCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiwiaGVhbHRoUGlsbFN0ZXBJbmRleCIsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLCJzcGVjaWZpY0hlYWx0aFBpbGxTdGVwIiwiYXJlSGVhbHRoUGlsbHNMb2FkaW5nIiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sWVd0LnByb3RvdHlwZSwiX2N1cnJlbnRTdGVwRGlzcGxheVZhbHVlIixudWxsKSx0KFtzKCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sWVd0LnByb3RvdHlwZSwiX2JpZ2dlc3RTdGVwRXZlclNlZW4iLG51bGwpLHQoW3MoIm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMiKSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZV3QucHJvdG90eXBlLCJfbWF4U3RlcEluZGV4IixudWxsKSx0KFthKCJkZWJ1Z2dlck51bWVyaWNBbGVydHMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFlXdC5wcm90b3R5cGUsIl91cGRhdGVBbGVydHNMaXN0IixudWxsKSxZV3Q9dChbaSgidGYtZ3JhcGgtZGVidWdnZXItZGF0YS1jYXJkIildLFlXdCksKGZ1bmN0aW9uKHQpe3QuQ09OU1Q9IkNPTlNUIix0Lk1FVEE9Ik1FVEEiLHQuT1A9Ik9QIix0LlNFUklFUz0iU0VSSUVTIix0LlNVTU1BUlk9IlNVTU1BUlkifSkoWFd0fHwoWFd0PXt9KSk7bGV0ICRXdD1jbGFzcyBleHRlbmRzKGVyKGlsKHllKSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnZlcnRpY2FsPSExLHRoaXMuZmlsbE92ZXJyaWRlPW51bGwsdGhpcy5zdHJva2VPdmVycmlkZT1udWxsLHRoaXMuaGVpZ2h0PTIwLHRoaXMuZmFkZWQ9ITF9Z2V0U3ZnRGVmaW5hYmxlRWxlbWVudCgpe3JldHVybiB0aGlzLiQuc3ZnRGVmc31nZXQgX2ZpbGwoKXt2YXIgdD10aGlzLmZpbGxPdmVycmlkZTtpZihudWxsIT10KXJldHVybiB0O3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UgWFd0Lk1FVEE6cmV0dXJuIHBXdC5ERUZBVUxUX0ZJTEw7Y2FzZSBYV3QuU0VSSUVTOnJldHVybiJ3aGl0ZSI7ZGVmYXVsdDpyZXR1cm4iI2ZmZmZmZiJ9fWdldCBfc3Ryb2tlKCl7dmFyIHQ9dGhpcy5zdHJva2VPdmVycmlkZTtpZihudWxsIT10KXJldHVybiB0O3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UgWFd0Lk1FVEE6cmV0dXJuIHBXdC5ERUZBVUxUX1NUUk9LRTtjYXNlIFhXdC5TRVJJRVM6ZGVmYXVsdDpyZXR1cm4iI2IyYjJiMiJ9fV9pc1R5cGUodCxlKXtyZXR1cm4gdD09PWV9X2ZhZGVkQ2xhc3ModCxlKXtyZXR1cm4gdD8iZmFkZWQtIitlOiIifX07JFd0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1zaXplOiAwOwogICAgICB9CgogICAgICA6aG9zdCguZGFyay1tb2RlKSBzdmcgewogICAgICAgIGZpbHRlcjogaW52ZXJ0KDEpOwogICAgICB9CgogICAgICAuZmFkZWQtcmVjdCB7CiAgICAgICAgZmlsbDogdXJsKCNyZWN0SGF0Y2gpOwogICAgICB9CgogICAgICAuZmFkZWQtZWxsaXBzZSB7CiAgICAgICAgZmlsbDogdXJsKCNlbGxpcHNlSGF0Y2gpOwogICAgICB9CgogICAgICAuZmFkZWQtcmVjdCwKICAgICAgLmZhZGVkLWVsbGlwc2UsCiAgICAgIC5mYWRlZC1zZXJpZXMgewogICAgICAgIHN0cm9rZTogdmFyKC0tdGItZ3JhcGgtZmFkZWQpICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgI3JlY3RIYXRjaCBsaW5lLAogICAgICAjZWxsaXBzZUhhdGNoIGxpbmUgewogICAgICAgIGNvbG9yOiAjZTBkNGIzICFpbXBvcnRhbnQ7CiAgICAgICAgZmlsbDogd2hpdGU7CiAgICAgICAgc3Ryb2tlOiAjZTBkNGIzICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8IS0tIFNWRyBmb3IgZGVmaW5pdGlvbnMgLS0+CiAgICA8c3ZnIGhlaWdodD0iMCIgd2lkdGg9IjAiIGlkPSJzdmdEZWZzIj4KICAgICAgPGRlZnM+CiAgICAgICAgPCEtLSBIYXRjaCBwYXR0ZXJucyBmb3IgZmFkZWQgb3V0IG5vZGVzLiAtLT4KICAgICAgICA8cGF0dGVybgogICAgICAgICAgaWQ9InJlY3RIYXRjaCIKICAgICAgICAgIHBhdHRlcm5UcmFuc2Zvcm09InJvdGF0ZSg0NSAwIDApIgogICAgICAgICAgd2lkdGg9IjUiCiAgICAgICAgICBoZWlnaHQ9IjUiCiAgICAgICAgICBwYXR0ZXJuVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgID4KICAgICAgICAgIDxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAxIj48L2xpbmU+CiAgICAgICAgPC9wYXR0ZXJuPgogICAgICAgIDxwYXR0ZXJuCiAgICAgICAgICBpZD0iZWxsaXBzZUhhdGNoIgogICAgICAgICAgcGF0dGVyblRyYW5zZm9ybT0icm90YXRlKDQ1IDAgMCkiCiAgICAgICAgICB3aWR0aD0iMiIKICAgICAgICAgIGhlaWdodD0iMiIKICAgICAgICAgIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgPgogICAgICAgICAgPGxpbmUgeDE9IjAiIHkxPSIwIiB4Mj0iMCIgeTI9IjIiIHN0eWxlPSJzdHJva2Utd2lkdGg6IDEiPjwvbGluZT4KICAgICAgICA8L3BhdHRlcm4+CiAgICAgICAgPCEtLSBUZW1wbGF0ZSBmb3IgYW4gT3Agbm9kZSBlbGxpcHNlLiAtLT4KICAgICAgICA8ZWxsaXBzZQogICAgICAgICAgaWQ9Im9wLW5vZGUtc3RhbXAiCiAgICAgICAgICByeD0iNy41IgogICAgICAgICAgcnk9IjMiCiAgICAgICAgICBzdHJva2U9ImluaGVyaXQiCiAgICAgICAgICBmaWxsPSJpbmhlcml0IgogICAgICAgID48L2VsbGlwc2U+CiAgICAgICAgPCEtLSBUZW1wbGF0ZSBmb3IgYW4gT3Agbm9kZSBhbm5vdGF0aW9uIGVsbGlwc2UgKHNtYWxsZXIpLiAtLT4KICAgICAgICA8ZWxsaXBzZQogICAgICAgICAgaWQ9Im9wLW5vZGUtYW5ub3RhdGlvbi1zdGFtcCIKICAgICAgICAgIHJ4PSI1IgogICAgICAgICAgcnk9IjIiCiAgICAgICAgICBzdHJva2U9ImluaGVyaXQiCiAgICAgICAgICBmaWxsPSJpbmhlcml0IgogICAgICAgID48L2VsbGlwc2U+CiAgICAgICAgPCEtLSBWZXJ0aWNhbGx5IHN0YWNrZWQgc2VyaWVzIG9mIE9wIG5vZGVzIHdoZW4gdW5leHBhbmRlZC4gLS0+CiAgICAgICAgPGcgaWQ9Im9wLXNlcmllcy12ZXJ0aWNhbC1zdGFtcCI+CiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSI5Ij48L3VzZT4KICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjgiIHk9IjYiPjwvdXNlPgogICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIgeD0iOCIgeT0iMyI+PC91c2U+CiAgICAgICAgPC9nPgogICAgICAgIDxnIGlkPSJvcC1zZXJpZXMtaG9yaXpvbnRhbC1zdGFtcCI+CiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSIxNiIgeT0iNCI+PC91c2U+CiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSIxMiIgeT0iNCI+PC91c2U+CiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSI0Ij48L3VzZT4KICAgICAgICA8L2c+CiAgICAgICAgPGcKICAgICAgICAgIGlkPSJzdW1tYXJ5LWljb24iCiAgICAgICAgICBmaWxsPSIjODQ4NDg0IgogICAgICAgICAgaGVpZ2h0PSIxMiIKICAgICAgICAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgICAgICAgIHdpZHRoPSIxMiIKICAgICAgICA+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMTdIN3YtN2gydjd6bTQgMGgtMlY3aDJ2MTB6bTQgMGgtMnYtNGgydjR6IgogICAgICAgICAgPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICAgIDwvZGVmcz4KICAgIDwvc3ZnPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1R5cGUodHlwZSwgJ0NPTlNUJyldXSI+CiAgICAgIDxzdmcKICAgICAgICBoZWlnaHQkPSJbW2hlaWdodF1dIgogICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgdmlld0JveD0iMCAwIDEwIDEwIgogICAgICA+CiAgICAgICAgPGNpcmNsZQogICAgICAgICAgY3g9IjUiCiAgICAgICAgICBjeT0iNSIKICAgICAgICAgIHI9IjMiCiAgICAgICAgICBmaWxsJD0iW1tfZmlsbF1dIgogICAgICAgICAgc3Ryb2tlJD0iW1tfc3Ryb2tlXV0iCiAgICAgICAgPjwvY2lyY2xlPgogICAgICA8L3N2Zz4KICAgIDwvdGVtcGxhdGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzVHlwZSh0eXBlLCAnU1VNTUFSWScpXV0iPgogICAgICA8c3ZnCiAgICAgICAgd2lkdGgkPSJbW2hlaWdodF1dIgogICAgICAgIGhlaWdodCQ9IltbaGVpZ2h0XV0iCiAgICAgICAgdmlld0JveD0iMCAwIDI0IDI0IgogICAgICAgIGZpbGw9IiM4NDg0ODQiCiAgICAgID4KICAgICAgICA8cGF0aAogICAgICAgICAgZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE3SDd2LTdoMnY3em00IDBoLTJWN2gydjEwem00IDBoLTJ2LTRoMnY0eiIKICAgICAgICA+PC9wYXRoPgogICAgICA8L3N2Zz4KICAgIDwvdGVtcGxhdGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzVHlwZSh0eXBlLCAnT1AnKV1dIj4KICAgICAgPHN2ZwogICAgICAgIGhlaWdodCQ9IltbaGVpZ2h0XV0iCiAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICB2aWV3Qm94PSIwIDAgMTYgOCIKICAgICAgPgogICAgICAgIDx1c2UKICAgICAgICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgICAgICAgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiCiAgICAgICAgICBmaWxsJD0iW1tfZmlsbF1dIgogICAgICAgICAgc3Ryb2tlJD0iW1tfc3Ryb2tlXV0iCiAgICAgICAgICBjbGFzcyQ9Int7X2ZhZGVkQ2xhc3MoZmFkZWQsICdlbGxpcHNlJyl9fSIKICAgICAgICAgIHg9IjgiCiAgICAgICAgICB5PSI0IgogICAgICAgID48L3VzZT4KICAgICAgPC9zdmc+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1R5cGUodHlwZSwgJ01FVEEnKV1dIj4KICAgICAgPHN2ZwogICAgICAgIGhlaWdodCQ9IltbaGVpZ2h0XV0iCiAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICB2aWV3Qm94PSIwIDAgMzcgMTYiCiAgICAgID4KICAgICAgICA8cmVjdAogICAgICAgICAgeD0iMSIKICAgICAgICAgIHk9IjEiCiAgICAgICAgICBmaWxsJD0iW1tfZmlsbF1dIgogICAgICAgICAgc3Ryb2tlJD0iW1tfc3Ryb2tlXV0iCiAgICAgICAgICBjbGFzcyQ9Int7X2ZhZGVkQ2xhc3MoZmFkZWQsICdyZWN0Jyl9fSIKICAgICAgICAgIHN0cm9rZS13aWR0aD0iMnB4IgogICAgICAgICAgaGVpZ2h0PSIxNCIKICAgICAgICAgIHdpZHRoPSIzNSIKICAgICAgICAgIHJ4PSI1IgogICAgICAgICAgcnk9IjUiCiAgICAgICAgPjwvcmVjdD4KICAgICAgPC9zdmc+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1R5cGUodHlwZSwgJ1NFUklFUycpXV0iPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbdmVydGljYWxdXSI+CiAgICAgICAgPHN2ZwogICAgICAgICAgaGVpZ2h0JD0iW1toZWlnaHRdXSIKICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgICB2aWV3Qm94PSIwIDAgMTYgMTUiCiAgICAgICAgPgogICAgICAgICAgPHVzZQogICAgICAgICAgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgICAgICAgICAgeGxpbms6aHJlZj0iI29wLXNlcmllcy12ZXJ0aWNhbC1zdGFtcCIKICAgICAgICAgICAgZmlsbCQ9IltbX2ZpbGxdXSIKICAgICAgICAgICAgc3Ryb2tlJD0iW1tfc3Ryb2tlXV0iCiAgICAgICAgICAgIGNsYXNzJD0ie3tfZmFkZWRDbGFzcyhmYWRlZCwgJ3NlcmllcycpfX0iCiAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgIHk9IjIiCiAgICAgICAgICA+PC91c2U+CiAgICAgICAgPC9zdmc+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shdmVydGljYWxdXSI+CiAgICAgICAgPHN2ZwogICAgICAgICAgaGVpZ2h0JD0iW1toZWlnaHRdXSIKICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgICB2aWV3Qm94PSIwIDAgMjQgMTAiCiAgICAgICAgPgogICAgICAgICAgPHVzZQogICAgICAgICAgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgICAgICAgICAgeGxpbms6aHJlZj0iI29wLXNlcmllcy1ob3Jpem9udGFsLXN0YW1wIgogICAgICAgICAgICBmaWxsJD0iW1tfZmlsbF1dIgogICAgICAgICAgICBzdHJva2UkPSJbW19zdHJva2VdXSIKICAgICAgICAgICAgY2xhc3MkPSJ7e19mYWRlZENsYXNzKGZhZGVkLCAnc2VyaWVzJyl9fSIKICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgeT0iMSIKICAgICAgICAgID48L3VzZT4KICAgICAgICA8L3N2Zz4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvdGVtcGxhdGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSwkV3QucHJvdG90eXBlLCJ0eXBlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sJFd0LnByb3RvdHlwZSwidmVydGljYWwiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sJFd0LnByb3RvdHlwZSwiZmlsbE92ZXJyaWRlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLCRXdC5wcm90b3R5cGUsInN0cm9rZU92ZXJyaWRlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLCRXdC5wcm90b3R5cGUsImhlaWdodCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLCRXdC5wcm90b3R5cGUsImZhZGVkIix2b2lkIDApLHQoW3MoInR5cGUiLCJmaWxsT3ZlcnJpZGUiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSwkV3QucHJvdG90eXBlLCJfZmlsbCIsbnVsbCksdChbcygidHlwZSIsInN0cm9rZU92ZXJyaWRlIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sJFd0LnByb3RvdHlwZSwiX3N0cm9rZSIsbnVsbCksJFd0PXQoW2koInRmLWdyYXBoLWljb24iKV0sJFd0KTt2YXIgS1d0PU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGdldCBHcmFwaEljb25UeXBlKCl7cmV0dXJuIFhXdH19KTtmdW5jdGlvbiBaV3QodCxlKXtjb25zdCBuPXQuZ2V0Q29udGV4dE1lbnUoKSxpPVN1KHQuZ2V0Q29udGV4dE1lbnUoKSk7cmV0dXJuIGZ1bmN0aW9uKHIsbyl7bGV0IGE9dXU7Y29uc3Qgcz0oZnVuY3Rpb24gbCh0KXtsZXQgZT0wLG49MCxpPXQ7Zm9yKDtpJiZpLm9mZnNldExlZnQ+PTAmJmkub2Zmc2V0VG9wPj0wOyllKz1pLm9mZnNldExlZnQtaS5zY3JvbGxMZWZ0LG4rPWkub2Zmc2V0VG9wLWkuc2Nyb2xsVG9wLGk9aS5vZmZzZXRQYXJlbnQ7cmV0dXJue2xlZnQ6ZSx0b3A6bn19KSh0KTtmdW5jdGlvbiBjKHQpe3QmJnQuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXMobil8fChpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixjLHtjYXB0dXJlOiEwfSkpfWkuc3R5bGUoImRpc3BsYXkiLCJibG9jayIpLnN0eWxlKCJsZWZ0IixhLmNsaWVudFgtcy5sZWZ0KzErInB4Iikuc3R5bGUoInRvcCIsYS5jbGllbnRZLXMudG9wKzErInB4IiksYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCksZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGMse2NhcHR1cmU6ITB9KSxpLmh0bWwoIiIpLGkuYXBwZW5kKCJ1bCIpLnNlbGVjdEFsbCgibGkiKS5kYXRhKGUpLmVudGVyKCkuYXBwZW5kKCJsaSIpLm9uKCJjbGljayIsKCh0LGUpPT57dC5hY3Rpb24odGhpcyxyLG8pLGMoKX0pKS5odG1sKChmdW5jdGlvbih0KXtyZXR1cm4gdC50aXRsZShyKX0pKX19bGV0IEpXdD1hRSgpLmRvbWFpbihbTUd0LDEyXSkucmFuZ2UoWyJzbWFsbCIsIm1lZGl1bSIsImxhcmdlIiwieGxhcmdlIl0pO2Z1bmN0aW9uIFFXdCh0KXtyZXR1cm4gdC52KyItLSIrdC53fWZ1bmN0aW9uIHRxdCh0LGUpe2xldCBuPWUuZ2V0Tm9kZUJ5TmFtZSh0LnYpO2lmKG51bGw9PW4ub3V0cHV0U2hhcGVzfHxTZS5leHBvcnRzLmlzRW1wdHkobi5vdXRwdXRTaGFwZXMpKXJldHVybiBudWxsO2xldCBpPW4ub3V0cHV0U2hhcGVzW3Qub3V0cHV0VGVuc29yS2V5XTtyZXR1cm4gbnVsbD09aT9udWxsOjA9PT1pLmxlbmd0aD8ic2NhbGFyIjppLm1hcCgodD0+LTE9PT10PyI/Ijp0KSkuam9pbigiw5ciKX1mdW5jdGlvbiBlcXQodCxlKXtyZXR1cm4gZS5lZGdlTGFiZWxGdW5jdGlvbj9lLmVkZ2VMYWJlbEZ1bmN0aW9uKHQsZSk6dC5iYXNlRWRnZUxpc3QubGVuZ3RoPjE/dC5iYXNlRWRnZUxpc3QubGVuZ3RoKyIgdGVuc29ycyI6dHF0KHQuYmFzZUVkZ2VMaXN0WzBdLGUpfWZ1bmN0aW9uIG5xdCh0LGUsbil7Y29uc3QgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYkd0LCJwYXRoIik7Zm9yKGxldCByPTE7cjx0Lmxlbmd0aDtyKyspaWYoaS5zZXRBdHRyaWJ1dGUoImQiLG4odC5zbGljZSgwLHIpKSksaS5nZXRUb3RhbExlbmd0aCgpPmUpcmV0dXJuIHItMTtyZXR1cm4gdC5sZW5ndGgtMX1mdW5jdGlvbiBpcXQodCxlLG4pe2xldCBpPXVMKCkueCgodD0+dC54KSkueSgodD0+dC55KSkscj1TdShkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwicGF0aCIpKS5hdHRyKCJkIixpKHQpKSxvPStlLmF0dHIoIm1hcmtlcldpZHRoIiksYT1lLmF0dHIoInZpZXdCb3giKS5zcGxpdCgiICIpLm1hcChOdW1iZXIpLHM9YVsyXS1hWzBdLGw9K2UuYXR0cigicmVmWCIpLGM9ci5ub2RlKCk7aWYobil7Y29uc3QgZT1vKigxLWwvcyksbj1jLmdldFBvaW50QXRMZW5ndGgoZSkscj1ucXQodCxlLGkpO3JldHVybiB0W3ItMV09e3g6bi54LHk6bi55fSx0LnNsaWNlKHItMSl9e2NvbnN0IGU9MS1sL3Msbj1jLmdldFRvdGFsTGVuZ3RoKCktbyplLHI9Yy5nZXRQb2ludEF0TGVuZ3RoKG4pLGE9bnF0KHQsbixpKTtyZXR1cm4gdFthXT17eDpyLngseTpyLnl9LHQuc2xpY2UoMCxhKzEpfX1mdW5jdGlvbiBycXQodCxlLG4saSl7aT1pfHx2R3QuRWRnZS5MSU5FLGUubGFiZWwmJmUubGFiZWwuc3RydWN0dXJhbCYmKGkrPSIgIit2R3QuRWRnZS5TVFJVQ1RVUkFMKSxlLmxhYmVsJiZlLmxhYmVsLm1ldGFlZGdlJiZlLmxhYmVsLm1ldGFlZGdlLm51bVJlZkVkZ2VzJiYoaSs9IiAiK3ZHdC5FZGdlLlJFRkVSRU5DRV9FREdFKSxuLmhhbmRsZUVkZ2VTZWxlY3RlZCYmKGkrPSIgIit2R3QuRWRnZS5TRUxFQ1RBQkxFKTtsZXQgcixvPSJwYXRoXyIrUVd0KGUpO2lmKG4ucmVuZGVySGllcmFyY2h5LmVkZ2VXaWR0aEZ1bmN0aW9uKXI9bi5yZW5kZXJIaWVyYXJjaHkuZWRnZVdpZHRoRnVuY3Rpb24oZSxpKTtlbHNle2xldCB0PTE7bnVsbCE9ZS5sYWJlbCYmbnVsbCE9ZS5sYWJlbC5tZXRhZWRnZSYmKHQ9ZS5sYWJlbC5tZXRhZWRnZS50b3RhbFNpemUpLHI9bi5yZW5kZXJIaWVyYXJjaHkuZWRnZVdpZHRoU2l6ZWRCYXNlZFNjYWxlKHQpfWxldCBhPXQuYXBwZW5kKCJwYXRoIikuYXR0cigiaWQiLG8pLmF0dHIoImNsYXNzIixpKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixyKyJweCIpO2lmKGUubGFiZWwmJmUubGFiZWwubWV0YWVkZ2UpaWYoZS5sYWJlbC5tZXRhZWRnZS5udW1SZWZFZGdlcyl7Y29uc3QgdD1gcmVmZXJlbmNlLWFycm93aGVhZC0ke0pXdChyKX1gO2Euc3R5bGUoIm1hcmtlci1zdGFydCIsYHVybCgjJHt0fSlgKSxlLmxhYmVsLnN0YXJ0TWFya2VySWQ9dH1lbHNle2NvbnN0IHQ9YGRhdGFmbG93LWFycm93aGVhZC0ke0pXdChyKX1gO2Euc3R5bGUoIm1hcmtlci1lbmQiLGB1cmwoIyR7dH0pYCksZS5sYWJlbC5lbmRNYXJrZXJJZD10fWlmKG51bGw9PWUubGFiZWx8fG51bGw9PWUubGFiZWwubWV0YWVkZ2UpcmV0dXJuO2xldCBzPWVxdChlLmxhYmVsLm1ldGFlZGdlLG4ucmVuZGVySGllcmFyY2h5KTtudWxsIT1zJiZ0LmFwcGVuZCgidGV4dCIpLmFwcGVuZCgidGV4dFBhdGgiKS5hdHRyKCJ4bGluazpocmVmIiwiIyIrbykuYXR0cigic3RhcnRPZmZzZXQiLCI1MCUiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmF0dHIoImRvbWluYW50LWJhc2VsaW5lIiwiY2VudHJhbCIpLnRleHQocyl9bGV0IG9xdD11TCgpLmN1cnZlKCRMKS54KCh0PT50LngpKS55KCh0PT50LnkpKTt2YXIgYXF0O2Z1bmN0aW9uIHNxdCh0LGUsbil7bGV0IGk9d0d0KHQsImciLHZHdC5Ob2RlLkNPTlRBSU5FUikuc2VsZWN0QWxsKChmdW5jdGlvbigpe3JldHVybiB0aGlzLmNoaWxkTm9kZXN9KSkuZGF0YShlLCh0PT50Lm5vZGUubmFtZSsiOiIrdC5ub2RlLnR5cGUpKTtyZXR1cm4gaS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImRhdGEtbmFtZSIsKHQ9PnQubm9kZS5uYW1lKSkuZWFjaCgoZnVuY3Rpb24odCl7bGV0IGU9U3UodGhpcyk7bi5hZGROb2RlR3JvdXAodC5ub2RlLm5hbWUsZSl9KSkubWVyZ2UoaSkuYXR0cigiY2xhc3MiLCh0PT52R3QuTm9kZS5HUk9VUCsiICIreXF0KHQpKSkuZWFjaCgoZnVuY3Rpb24odCl7bGV0IGU9U3UodGhpcyk7QXF0KHdHdChlLCJnIix2R3QuQW5ub3RhdGlvbi5JTkJPWCksdC5pbkFubm90YXRpb25zLHQsbiksQXF0KHdHdChlLCJnIix2R3QuQW5ub3RhdGlvbi5PVVRCT1gpLHQub3V0QW5ub3RhdGlvbnMsdCxuKTtsZXQgaT1fcXQoZSx0LHZHdC5Ob2RlLlNIQVBFKTt0Lm5vZGUuaXNHcm91cE5vZGUmJihmdW5jdGlvbiByKHQsZSxuKXtsZXQgaT13R3QodCwiZyIsdkd0Lk5vZGUuQlVUVE9OX0NPTlRBSU5FUik7d0d0KGksImNpcmNsZSIsdkd0Lk5vZGUuQlVUVE9OX0NJUkNMRSksd0d0KGksInBhdGgiLHZHdC5Ob2RlLkVYUEFORF9CVVRUT04pLmF0dHIoImQiLCJNMCwtMi4yIFYyLjIgTS0yLjIsMCBIMi4yIiksd0d0KGksInBhdGgiLHZHdC5Ob2RlLkNPTExBUFNFX0JVVFRPTikuYXR0cigiZCIsIk0tMi4yLDAgSDIuMiIpLGkub24oImNsaWNrIiwodD0+e3V1LnN0b3BQcm9wYWdhdGlvbigpLG4uZmlyZSgibm9kZS10b2dnbGUtZXhwYW5kIix7bmFtZTp0Lm5vZGUubmFtZX0pfSkpLChmdW5jdGlvbiByKHQsZSl7bGV0IG49RFd0KGUpKyhlLmV4cGFuZGVkP2Uud2lkdGg6ZS5jb3JlQm94LndpZHRoKS8yLTYsaT1lLnktKGUuZXhwYW5kZWQ/ZS5oZWlnaHQ6ZS5jb3JlQm94LmhlaWdodCkvMis2O2Uubm9kZS50eXBlIT09akd0LlNFUklFU3x8ZS5leHBhbmRlZHx8KG4rPTEwLGktPTIpO2xldCByPSJ0cmFuc2xhdGUoIituKyIsIitpKyIpIjt0LnNlbGVjdEFsbCgicGF0aCIpLnRyYW5zaXRpb24oKS5hdHRyKCJ0cmFuc2Zvcm0iLHIpLHQuc2VsZWN0KCJjaXJjbGUiKS50cmFuc2l0aW9uKCkuYXR0cih7Y3g6bixjeTppLHI6Tld0Lm5vZGVTaXplLm1ldGEuZXhwYW5kQnV0dG9uUmFkaXVzfSl9KShpLGUpfSkoaSx0LG4pLGNxdChpLHQsbiksKGZ1bmN0aW9uIG8odCxlLG4pe2lmKGUubm9kZS5pc0dyb3VwTm9kZSl7aWYoZS5leHBhbmRlZClyZXR1cm4gTHF0KHQsZSxuLHZHdC5TdWJzY2VuZS5HUk9VUCk7Rld0KHQsImciLHZHdC5TdWJzY2VuZS5HUk9VUCkucmVtb3ZlKCl9fSkoZSx0LG4pLGNxdCgoZnVuY3Rpb24gYSh0LGUsbil7bGV0IGk9ZS5kaXNwbGF5TmFtZSxyPWUubm9kZS50eXBlPT09akd0Lk1FVEEmJiFlLmV4cGFuZGVkLG89d0d0KHQsInRleHQiLHZHdC5Ob2RlLkxBQkVMKSxhPW8ubm9kZSgpO2EucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChhKSxvLmF0dHIoImR5IiwiLjM1ZW0iKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpO2xldCBzPTg7c3dpdGNoKGUubm9kZS50eXBlKXtjYXNlIGpHdC5NRVRBOnM9ZS5leHBhbmRlZD85Ojg7YnJlYWs7Y2FzZSBqR3QuT1A6cz02fWlmKHIpe2kubGVuZ3RoPm4ubWF4TWV0YW5vZGVMYWJlbExlbmd0aCYmKGk9aS5zdWJzdHIoMCxuLm1heE1ldGFub2RlTGFiZWxMZW5ndGgtMikrIuKApiIpO2xldCB0PShmdW5jdGlvbiBsKHQpe3JldHVybiBtcXR8fChtcXQ9Vk0oKS5kb21haW4oW3QubWF4TWV0YW5vZGVMYWJlbExlbmd0aExhcmdlRm9udCx0Lm1heE1ldGFub2RlTGFiZWxMZW5ndGhdKS5yYW5nZShbdC5tYXhNZXRhbm9kZUxhYmVsTGVuZ3RoRm9udFNpemUsdC5taW5NZXRhbm9kZUxhYmVsTGVuZ3RoRm9udFNpemVdKS5jbGFtcCghMCkpLG1xdH0pKG4pO28uYXR0cigiZm9udC1zaXplIix0KGkubGVuZ3RoKSsicHgiKSxzPXQoaS5sZW5ndGgpfXJldHVybiBmcXQoby50ZXh0KGkpLGUubm9kZS50eXBlLHMsZSksb30pKGUsdCxuKSx0LG4sdC5ub2RlLnR5cGU9PT1qR3QuTUVUQSksd3F0KGUsdCxuKSwoZnVuY3Rpb24gcyh0LGUpe2xldCBuPUZXdCh0LCJnIix2R3QuTm9kZS5TSEFQRSksaT1EV3QoZSk7c3dpdGNoKGUubm9kZS50eXBlKXtjYXNlIGpHdC5PUDp7Y29uc3Qgcj1lLm5vZGU7U2UuZXhwb3J0cy5pc051bWJlcihyLmZ1bmN0aW9uSW5wdXRJbmRleCl8fFNlLmV4cG9ydHMuaXNOdW1iZXIoci5mdW5jdGlvbk91dHB1dEluZGV4KT8oZnVuY3Rpb24gcih0LGUsbixpLG8pe2NvbnN0IGE9by8yLHM9aS8yLGw9W1tlLG4tYV0sW2UrcyxuK2FdLFtlLXMsbithXV07dC50cmFuc2l0aW9uKCkuYXR0cigicG9pbnRzIixsLm1hcCgodD0+dC5qb2luKCIsIikpKS5qb2luKCIgIikpfSkoRld0KG4sInBvbHlnb24iKSxlLngsZS55LGUuY29yZUJveC53aWR0aCxlLmNvcmVCb3guaGVpZ2h0KTpXV3QoRld0KG4sImVsbGlwc2UiKSxpLGUueSxlLmNvcmVCb3gud2lkdGgsZS5jb3JlQm94LmhlaWdodCksZ3F0KHQsaSxlLnksZS5sYWJlbE9mZnNldCk7YnJlYWt9Y2FzZSBqR3QuTUVUQTp7bGV0IHI9bi5zZWxlY3RBbGwoInJlY3QiKTtlLmV4cGFuZGVkPyhHV3QocixlLngsZS55LGUud2lkdGgsZS5oZWlnaHQpLGxxdCh0LGUpLGdxdCh0LGksZS55LC1lLmhlaWdodC8yK2UubGFiZWxIZWlnaHQvMikpOihHV3QocixpLGUueSxlLmNvcmVCb3gud2lkdGgsZS5jb3JlQm94LmhlaWdodCksZ3F0KHQsaSxlLnksMCkpO2JyZWFrfWNhc2Ugakd0LlNFUklFUzp7bGV0IHI9Rld0KG4sInVzZSIpO2UuZXhwYW5kZWQ/KEdXdChyLGUueCxlLnksZS53aWR0aCxlLmhlaWdodCksbHF0KHQsZSksZ3F0KHQsaSxlLnksLWUuaGVpZ2h0LzIrZS5sYWJlbEhlaWdodC8yKSk6KEdXdChyLGksZS55LGUuY29yZUJveC53aWR0aCxlLmNvcmVCb3guaGVpZ2h0KSxncXQodCxpLGUueSxlLmxhYmVsT2Zmc2V0KSk7YnJlYWt9Y2FzZSBqR3QuQlJJREdFOkdXdChGV3QobiwicmVjdCIpLGUueCxlLnksZS53aWR0aCxlLmhlaWdodCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5yZWNvZ25pemVkIG5vZGUgdHlwZTogIitlLm5vZGUudHlwZSl9fSkoZSx0KX0pKSxpLmV4aXQoKS5lYWNoKChmdW5jdGlvbih0KXtuLnJlbW92ZU5vZGVHcm91cCh0Lm5vZGUubmFtZSk7bGV0IGU9U3UodGhpcyk7dC5pbkFubm90YXRpb25zLmxpc3QubGVuZ3RoPjAmJmUuc2VsZWN0KCIuIit2R3QuQW5ub3RhdGlvbi5JTkJPWCkuc2VsZWN0QWxsKCIuIit2R3QuQW5ub3RhdGlvbi5HUk9VUCkuZWFjaCgoZT0+e24ucmVtb3ZlQW5ub3RhdGlvbkdyb3VwKGUsdCl9KSksdC5vdXRBbm5vdGF0aW9ucy5saXN0Lmxlbmd0aD4wJiZlLnNlbGVjdCgiLiIrdkd0LkFubm90YXRpb24uT1VUQk9YKS5zZWxlY3RBbGwoIi4iK3ZHdC5Bbm5vdGF0aW9uLkdST1VQKS5lYWNoKChlPT57bi5yZW1vdmVBbm5vdGF0aW9uR3JvdXAoZSx0KX0pKX0pKS5yZW1vdmUoKSxpfWZ1bmN0aW9uIGxxdCh0LGUpe2xldCBuPWUueC1lLndpZHRoLzIrZS5wYWRkaW5nTGVmdCxpPWUueS1lLmhlaWdodC8yK2UucGFkZGluZ1RvcDtqV3QoRld0KHQsImciLHZHdC5TdWJzY2VuZS5HUk9VUCksbixpKX1mdW5jdGlvbiBjcXQodCxlLG4saSl7aWYoaSlyZXR1cm4gdm9pZCB0LmF0dHIoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpO2xldCByPVpXdChuLHVxdChlLm5vZGUsbikpO3Qub24oImRibGNsaWNrIiwodD0+e24uZmlyZSgibm9kZS10b2dnbGUtZXhwYW5kIix7bmFtZTp0Lm5vZGUubmFtZX0pfSkpLm9uKCJtb3VzZW92ZXIiLCh0PT57bi5pc05vZGVFeHBhbmRlZCh0KXx8bi5maXJlKCJub2RlLWhpZ2hsaWdodCIse25hbWU6dC5ub2RlLm5hbWV9KX0pKS5vbigibW91c2VvdXQiLCh0PT57bi5pc05vZGVFeHBhbmRlZCh0KXx8bi5maXJlKCJub2RlLXVuaGlnaGxpZ2h0Iix7bmFtZTp0Lm5vZGUubmFtZX0pfSkpLm9uKCJjbGljayIsKHQ9Pnt1dS5zdG9wUHJvcGFnYXRpb24oKSxuLmZpcmUoIm5vZGUtc2VsZWN0Iix7bmFtZTp0Lm5vZGUubmFtZX0pfSkpLm9uKCJjb250ZXh0bWVudSIsKCh0LGUpPT57bi5maXJlKCJub2RlLXNlbGVjdCIse25hbWU6dC5ub2RlLm5hbWV9KSxyLmNhbGwodCxlKX0pKX1mdW5jdGlvbiB1cXQodCxlKXtsZXQgbj1be3RpdGxlOmU9PnVXdCh0LmluY2x1ZGUpLGFjdGlvbjoobixpLHIpPT57ZS5maXJlKCJub2RlLXRvZ2dsZS1leHRyYWN0Iix7bmFtZTp0Lm5hbWV9KX19XTtyZXR1cm4gZS5ub2RlQ29udGV4dE1lbnVJdGVtcyYmKG49bi5jb25jYXQoZS5ub2RlQ29udGV4dE1lbnVJdGVtcykpLGhxdCh0KSYmbi5wdXNoKHt0aXRsZTplPT5wcXQodCksYWN0aW9uOihuLGkscik9PntlLmZpcmUoIm5vZGUtdG9nZ2xlLXNlcmllc2dyb3VwIix7bmFtZTpkcXQodCl9KX19KSxufWZ1bmN0aW9uIGhxdCh0KXtyZXR1cm4gbnVsbCE9PWRxdCh0KX1mdW5jdGlvbiBkcXQodCl7cmV0dXJuIHQ/dC50eXBlPT09akd0LlNFUklFUz90Lm5hbWU6dC50eXBlPT09akd0Lk9QP3Qub3duaW5nU2VyaWVzOm51bGw6bnVsbH1mdW5jdGlvbiBwcXQodCl7cmV0dXJuKGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQ9PT1XR3QuR1JPVVA/IlVuZ3JvdXAgdGhpcyBzZXJpZXMgb2Ygbm9kZXMiOiJHcm91cCB0aGlzIHNlcmllcyBvZiBub2RlcyJ9KShudWxsIT09KGZ1bmN0aW9uIGUodCl7bGV0IGU9bnVsbDtyZXR1cm4gdD8odC50eXBlPT09akd0LlNFUklFUz9lPXQ6dC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUudHlwZT09PWpHdC5TRVJJRVMmJihlPXQucGFyZW50Tm9kZSksZSk6bnVsbH0pKHQpP1dHdC5HUk9VUDpXR3QuVU5HUk9VUCl9ZnVuY3Rpb24gZnF0KHQsZSxuLGkpe2xldCByPXQubm9kZSgpLG89ci50ZXh0Q29udGVudCxhPW51bGw7c3dpdGNoKGUpe2Nhc2Ugakd0Lk1FVEE6aSYmIWkuZXhwYW5kZWQmJihhPU5XdC5ub2RlU2l6ZS5tZXRhLm1heExhYmVsV2lkdGgpO2JyZWFrO2Nhc2Ugakd0Lk9QOmE9Tld0Lm5vZGVTaXplLm9wLm1heExhYmVsV2lkdGg7YnJlYWs7Y2FzZS0xOmE9Tld0LmFubm90YXRpb25zLm1heExhYmVsV2lkdGh9aWYobnVsbCE9PWEpcmV0dXJuIHIudGV4dENvbnRlbnQ9KGZ1bmN0aW9uIHModCxlLG4pe2lmKCF0KXJldHVybiIiO2lmKEJHdCh0LGUpPD1uKXJldHVybiB0O2xldCBpPTAscj10Lmxlbmd0aDtmb3IoO2k8cjspe2NvbnN0IG89aStNYXRoLnJvdW5kKChyLWkpLzIpO0JHdCh0LnNsaWNlKDAsbykrIuKApiIsZSk8PW4/aT1vOnI9by0xfXJldHVybiAwPT09aT90WzBdOnQuc2xpY2UoMCxpKSsi4oCmIn0pKHIudGV4dENvbnRlbnQsbixhKSx0LmFwcGVuZCgidGl0bGUiKS50ZXh0KG8pfSEoZnVuY3Rpb24odCl7dC5OT05FPSJub25lIix0LkNPTVBVVEVfVElNRT0iY29tcHV0ZV90aW1lIix0LkRFVklDRT0iZGV2aWNlIix0Lk1FTU9SWT0ibWVtb3J5Iix0Lk9QX0NPTVBBVElCSUxJVFk9Im9wX2NvbXBhdGliaWxpdHkiLHQuU1RSVUNUVVJFPSJzdHJ1Y3R1cmUiLHQuWExBX0NMVVNURVI9InhsYV9jbHVzdGVyIn0pKGFxdHx8KGFxdD17fSkpO2xldCBtcXQ9bnVsbDtmdW5jdGlvbiBncXQodCxlLG4saSl7Rld0KHQsInRleHQiLHZHdC5Ob2RlLkxBQkVMKS50cmFuc2l0aW9uKCkuYXR0cigieCIsZSkuYXR0cigieSIsbitpKX1mdW5jdGlvbiBfcXQodCxlLG4pe2xldCBpPXdHdCh0LCJnIixuKTtzd2l0Y2goZS5ub2RlLnR5cGUpe2Nhc2Ugakd0Lk9QOmNvbnN0IHQ9ZS5ub2RlO2lmKFNlLmV4cG9ydHMuaXNOdW1iZXIodC5mdW5jdGlvbklucHV0SW5kZXgpfHxTZS5leHBvcnRzLmlzTnVtYmVyKHQuZnVuY3Rpb25PdXRwdXRJbmRleCkpe3dHdChpLCJwb2x5Z29uIix2R3QuTm9kZS5DT0xPUl9UQVJHRVQpO2JyZWFrfXdHdChpLCJlbGxpcHNlIix2R3QuTm9kZS5DT0xPUl9UQVJHRVQpO2JyZWFrO2Nhc2Ugakd0LlNFUklFUzpsZXQgbj0iYW5ub3RhdGlvbiIscj1lO3IuY29yZUdyYXBoJiYobj1yLm5vZGUuaGFzTm9uQ29udHJvbEVkZ2VzPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwiKTtsZXQgbz1bdkd0Lk5vZGUuQ09MT1JfVEFSR0VUXTtyLmlzRmFkZWRPdXQmJm8ucHVzaCgiZmFkZWQtZWxsaXBzZSIpLHdHdChpLCJ1c2UiLG8pLmF0dHIoInhsaW5rOmhyZWYiLCIjb3Atc2VyaWVzLSIrbisiLXN0YW1wIiksd0d0KGksInJlY3QiLHZHdC5Ob2RlLkNPTE9SX1RBUkdFVCkuYXR0cigicngiLGUucmFkaXVzKS5hdHRyKCJyeSIsZS5yYWRpdXMpO2JyZWFrO2Nhc2Ugakd0LkJSSURHRTpjYXNlIGpHdC5NRVRBOndHdChpLCJyZWN0Iix2R3QuTm9kZS5DT0xPUl9UQVJHRVQpLmF0dHIoInJ4IixlLnJhZGl1cykuYXR0cigicnkiLGUucmFkaXVzKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJVbnJlY29nbml6ZWQgbm9kZSB0eXBlOiAiK2Uubm9kZS50eXBlKX1yZXR1cm4gaX1mdW5jdGlvbiB5cXQodCl7c3dpdGNoKHQubm9kZS50eXBlKXtjYXNlIGpHdC5PUDpyZXR1cm4gdkd0Lk9QTk9ERTtjYXNlIGpHdC5NRVRBOnJldHVybiB2R3QuTUVUQU5PREU7Y2FzZSBqR3QuU0VSSUVTOnJldHVybiB2R3QuU0VSSUVTTk9ERTtjYXNlIGpHdC5CUklER0U6cmV0dXJuIHZHdC5CUklER0VOT0RFO2Nhc2Ugakd0LkVMTElQU0lTOnJldHVybiB2R3QuRUxMSVBTSVNOT0RFfXRocm93IEVycm9yKCJVbnJlY29nbml6ZWQgbm9kZSB0eXBlOiAiK3Qubm9kZS50eXBlKX1mdW5jdGlvbiB2cXQodCxlLG4pe2xldCBpPShmdW5jdGlvbiByKHQpe3JldHVybiB0LnJlcGxhY2UoLyhbOi5cW1xdLC9cXFwoXCldKS9nLCJcXCQxIil9KSh0KTtpZighbilyZXR1cm5gdXJsKCMke2l9KWA7bGV0IG89U3UobiksYT1vLnNlbGVjdCgiZGVmcyNfZ3JhcGgtZ3JhZGllbnRzIik7YS5lbXB0eSgpJiYoYT1vLmFwcGVuZCgiZGVmcyIpLmF0dHIoImlkIiwiX2dyYXBoLWdyYWRpZW50cyIpKTtsZXQgcz1hLnNlbGVjdCgibGluZWFyR3JhZGllbnQjIitpKTtpZihzLmVtcHR5KCkpe3M9YS5hcHBlbmQoImxpbmVhckdyYWRpZW50IikuYXR0cigiaWQiLHQpLHMuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCk7bGV0IG49MDtTZS5leHBvcnRzLmVhY2goZSwodD0+e2xldCBlPXQuY29sb3I7cy5hcHBlbmQoInN0b3AiKS5hdHRyKCJvZmZzZXQiLG4pLmF0dHIoInN0b3AtY29sb3IiLGUpLHMuYXBwZW5kKCJzdG9wIikuYXR0cigib2Zmc2V0IixuK3QucHJvcG9ydGlvbikuYXR0cigic3RvcC1jb2xvciIsZSksbis9dC5wcm9wb3J0aW9ufSkpfXJldHVybmB1cmwoIyR7aX0pYH1mdW5jdGlvbiBicXQodCl7U3UodCkuc2VsZWN0KCJkZWZzI19ncmFwaC1ncmFkaWVudHMiKS5yZW1vdmUoKX1mdW5jdGlvbiB4cXQodCxlLG4saSxyKXtsZXQgbz1wV3Q7c3dpdGNoKHQ9dHx8KCgpPT4wKSxlKXtjYXNlIGFxdC5OT05FOmNhc2UgYXF0LlNUUlVDVFVSRTppZihuLm5vZGUudHlwZT09PWpHdC5NRVRBKXtsZXQgcj1uLm5vZGUudGVtcGxhdGVJZDtyZXR1cm4gZT09PWFxdC5TVFJVQ1RVUkUmJm51bGwhPT1yP28uU1RSVUNUVVJFX1BBTEVUVEUodChyKSxpKTpvLlVOS05PV059cmV0dXJuIG4ubm9kZS50eXBlPT09akd0LlNFUklFUz9pP28uRVhQQU5ERURfQ09MT1I6IndoaXRlIjpuLm5vZGUudHlwZT09PWpHdC5CUklER0U/bi5zdHJ1Y3R1cmFsPyIjZjBlIjpuLm5vZGUuaW5ib3VuZD8iIzBlZiI6IiNmZTAiOlNlLmV4cG9ydHMuaXNOdW1iZXIobi5ub2RlLmZ1bmN0aW9uSW5wdXRJbmRleCk/IiM3OTU1NDgiOlNlLmV4cG9ydHMuaXNOdW1iZXIobi5ub2RlLmZ1bmN0aW9uT3V0cHV0SW5kZXgpPyIjMDA5Njg4Ijoid2hpdGUiO2Nhc2UgYXF0LkRFVklDRTpyZXR1cm4gbnVsbD09bi5kZXZpY2VDb2xvcnM/by5VTktOT1dOOmk/by5FWFBBTkRFRF9DT0xPUjp2cXQoImRldmljZS0iK24ubm9kZS5uYW1lLG4uZGV2aWNlQ29sb3JzLHIpO2Nhc2UgYXF0LlhMQV9DTFVTVEVSOnJldHVybiBudWxsPT1uLnhsYUNsdXN0ZXJDb2xvcnM/by5VTktOT1dOOmk/by5FWFBBTkRFRF9DT0xPUjp2cXQoInhsYS0iK24ubm9kZS5uYW1lLG4ueGxhQ2x1c3RlckNvbG9ycyxyKTtjYXNlIGFxdC5DT01QVVRFX1RJTUU6cmV0dXJuIGk/by5FWFBBTkRFRF9DT0xPUjpuLmNvbXB1dGVUaW1lQ29sb3J8fG8uVU5LTk9XTjtjYXNlIGFxdC5NRU1PUlk6cmV0dXJuIGk/by5FWFBBTkRFRF9DT0xPUjpuLm1lbW9yeUNvbG9yfHxvLlVOS05PV047Y2FzZSBhcXQuT1BfQ09NUEFUSUJJTElUWTpyZXR1cm4gbnVsbD09bi5jb21wYXRpYmlsaXR5Q29sb3JzP28uVU5LTk9XTjppP28uRVhQQU5ERURfQ09MT1I6dnF0KCJvcC1jb21wYXQtIituLm5vZGUubmFtZSxuLmNvbXBhdGliaWxpdHlDb2xvcnMscik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gY2FzZSB0byBjb2xvciBub2RlcyBieSIpfX1mdW5jdGlvbiB3cXQodCxlLG4saSl7aT1pfHx2R3QuTm9kZS5TSEFQRTtjb25zdCByPW4uaXNOb2RlSGlnaGxpZ2h0ZWQoZS5ub2RlLm5hbWUpLG89bi5pc05vZGVTZWxlY3RlZChlLm5vZGUubmFtZSksYT1lLmlzSW5FeHRyYWN0fHxlLmlzT3V0RXh0cmFjdHx8ZS5pc0xpYnJhcnlGdW5jdGlvbixzPWUuZXhwYW5kZWQmJmkhPT12R3QuQW5ub3RhdGlvbi5OT0RFLGw9ZS5pc0ZhZGVkT3V0O3QuY2xhc3NlZCgiaGlnaGxpZ2h0ZWQiLHIpLHQuY2xhc3NlZCgic2VsZWN0ZWQiLG8pLHQuY2xhc3NlZCgiZXh0cmFjdCIsYSksdC5jbGFzc2VkKCJleHBhbmRlZCIscyksdC5jbGFzc2VkKCJmYWRlZCIsbCk7Y29uc3QgYz10LnNlbGVjdCgiLiIraSsiIC4iK3ZHdC5Ob2RlLkNPTE9SX1RBUkdFVCksdT14cXQobi50ZW1wbGF0ZUluZGV4LG4uY29sb3JCeSxlLHMsbi5nZXRHcmFwaFN2Z1Jvb3QoKSk7Yy5zdHlsZSgiZmlsbCIsdSksYy5zdHlsZSgic3Ryb2tlIixvP251bGw6U3F0KHUpKX1mdW5jdGlvbiBTcXQodCl7cmV0dXJuInVybCI9PT10LnN1YnN0cmluZygwLDMpP3BXdC5HUkFESUVOVF9PVVRMSU5FOlVoKHQpLmRhcmtlcigpLnRvU3RyaW5nKCl9ZnVuY3Rpb24gTXF0KHQsZSxuLGkpe2NvbnN0IHI9U3UodCk7aWYoci5zZWxlY3RBbGwoIi5pbnB1dC1oaWdobGlnaHQiKS5jbGFzc2VkKCJpbnB1dC1oaWdobGlnaHQiLCExKSxyLnNlbGVjdEFsbCgiLm5vbi1pbnB1dCIpLmNsYXNzZWQoIm5vbi1pbnB1dCIsITEpLHIuc2VsZWN0QWxsKCIuaW5wdXQtcGFyZW50IikuY2xhc3NlZCgiaW5wdXQtcGFyZW50IiwhMSksci5zZWxlY3RBbGwoIi5pbnB1dC1jaGlsZCIpLmNsYXNzZWQoImlucHV0LWNoaWxkIiwhMSksci5zZWxlY3RBbGwoIi5pbnB1dC1lZGdlLWhpZ2hsaWdodCIpLmNsYXNzZWQoImlucHV0LWVkZ2UtaGlnaGxpZ2h0IiwhMSksci5zZWxlY3RBbGwoIi5ub24taW5wdXQtZWRnZS1oaWdobGlnaHQiKS5jbGFzc2VkKCJub24taW5wdXQtZWRnZS1oaWdobGlnaHQiLCExKSxyLnNlbGVjdEFsbCgiLmlucHV0LWhpZ2hsaWdodC1zZWxlY3RlZCIpLmNsYXNzZWQoImlucHV0LWhpZ2hsaWdodC1zZWxlY3RlZCIsITEpLCFlfHwhaXx8IW4pcmV0dXJuO2xldCBvPUVxdChuLGUpLGE9e307U2UuZXhwb3J0cy5lYWNoKG8sKGZ1bmN0aW9uKG4pe2E9VHF0KHQsZSxuLGEpfSkpO2xldCBzPU9iamVjdC5rZXlzKGEpLGw9KGZ1bmN0aW9uIGModCxlKXtsZXQgbj17fTtyZXR1cm4gU2UuZXhwb3J0cy5lYWNoKGUsKGZ1bmN0aW9uKGUpe2xldCBpPXQuZ2V0Tm9kZUJ5TmFtZShlKSxyPUNxdCh0LGkpO25bci5uYW1lXT1yfSkpLG59KShlLHMpOyEoZnVuY3Rpb24gdSh0LGUpe1NlLmV4cG9ydHMuZm9yT3duKGUsKGZ1bmN0aW9uKGUpe2xldCBuPWU7Zm9yKDtuLm5hbWUhPT1GR3Q7KXtjb25zdCBlPVN1KHQpLnNlbGVjdChgLm5vZGVbZGF0YS1uYW1lPSIke24ubmFtZX0iXWApOyFlLm5vZGVzKCkubGVuZ3RofHxlLmNsYXNzZWQoImlucHV0LWhpZ2hsaWdodCIpfHxlLmNsYXNzZWQoInNlbGVjdGVkIil8fGUuY2xhc3NlZCgib3AiKXx8ZS5jbGFzc2VkKCJpbnB1dC1wYXJlbnQiLCEwKSxuPW4ucGFyZW50Tm9kZX19KSl9KSh0LGwpLHIuc2VsZWN0QWxsKCJnLm5vZGU6bm90KC5zZWxlY3RlZCk6bm90KC5pbnB1dC1oaWdobGlnaHQpOm5vdCguaW5wdXQtcGFyZW50KTpub3QoLmlucHV0LWNoaWxkcmVuKSIpLmNsYXNzZWQoIm5vbi1pbnB1dCIsITApLmVhY2goKGZ1bmN0aW9uKHQpe3Iuc2VsZWN0QWxsKGBbZGF0YS1uYW1lPSIke3Qubm9kZS5uYW1lfSJdYCkuY2xhc3NlZCgibm9uLWlucHV0IiwhMCl9KSksci5zZWxlY3RBbGwoImcuZWRnZTpub3QoLmlucHV0LWVkZ2UtaGlnaGxpZ2h0KSIpLmNsYXNzZWQoIm5vbi1pbnB1dC1lZGdlLWhpZ2hsaWdodCIsITApfWZ1bmN0aW9uIEVxdCh0LGUpe2xldCBuPVtdLGk9ZS5nZXROb2RlQnlOYW1lKHQpO2lmKGkgaW5zdGFuY2VvZiBYR3QpcmV0dXJuW2ldLmNvbmNhdChpLmluRW1iZWRkaW5ncyk7bGV0IHI9aS5tZXRhZ3JhcGgubm9kZXMoKTtyZXR1cm4gU2UuZXhwb3J0cy5lYWNoKHIsKGZ1bmN0aW9uKHQpe249bi5jb25jYXQoRXF0KHQsZSkpfSkpLG59ZnVuY3Rpb24gVHF0KHQsZSxuLGkpe2lmKGlbbi5uYW1lXSlyZXR1cm4gaTtpW24ubmFtZV09ITA7bGV0IHI9bi5pbnB1dHMsbz1DcXQoZSxuKTtTdSh0KS5zZWxlY3QoYC5ub2RlW2RhdGEtbmFtZT0iJHtvLm5hbWV9Il1gKS5jbGFzc2VkKCJpbnB1dC1oaWdobGlnaHQiLCEwKTtsZXQgYT17fTtTZS5leHBvcnRzLmVhY2gociwoZnVuY3Rpb24odCl7bGV0IG49ZS5nZXROb2RlQnlOYW1lKHQubmFtZSk7aWYodm9pZCAwPT09bilyZXR1cm47aWYobiBpbnN0YW5jZW9mIEtHdCl7bGV0IHQ9c1d0KG4ubmFtZSk7bj1lLmdldE5vZGVCeU5hbWUodCl9bGV0IGk9Q3F0KGUsbikscj1hW2kubmFtZV07cj9yLm9wTm9kZXMucHVzaChuKTphW2kubmFtZV09e3Zpc2libGVQYXJlbnQ6aSxvcE5vZGVzOltuXX19KSk7bGV0IHM9e30sbD1bb107c1tvLm5hbWVdPXt0cmFjZWQ6ITEsaW5kZXg6MCxjb25uZWN0aW9uRW5kcG9pbnRzOltdfTtsZXQgYz1vO2ZvcihsZXQgdD0xO2MubmFtZSE9PUZHdDt0KyspYz1jLnBhcmVudE5vZGUsc1tjLm5hbWVdPXt0cmFjZWQ6ITEsaW5kZXg6dCxjb25uZWN0aW9uRW5kcG9pbnRzOltdfSxsW3RdPWM7cmV0dXJuIFNlLmV4cG9ydHMuZm9yT3duKGEsKGZ1bmN0aW9uKG4scil7bGV0IGE9bi52aXNpYmxlUGFyZW50O1NlLmV4cG9ydHMuZWFjaChuLm9wTm9kZXMsKGZ1bmN0aW9uKG4pe2k9VHF0KHQsZSxuLGkpfSkpLGEubmFtZSE9PW8ubmFtZSYmKGZ1bmN0aW9uIGModCxlLG4saSl7bGV0IHI9ZSxvPWUsYT1bXTtmb3IoOyFuW3IubmFtZV07KW8ubmFtZSE9PXIubmFtZSYmYS5wdXNoKFtvLHJdKSxvPXIscj1yLnBhcmVudE5vZGU7bGV0IHM9bltyLm5hbWVdLmluZGV4LGw9aVtNYXRoLm1heChzLTEsMCldLm5hbWUsYz1sLHU9by5uYW1lLGg9by5uYW1lO2NvbnN0IGQ9U3UodCk7ZC5zZWxlY3RBbGwoYFtkYXRhLWVkZ2U9IiR7aH0tLSR7bH0iXWApLmNsYXNzZWQoImlucHV0LWVkZ2UtaGlnaGxpZ2h0IiwhMCksU2UuZXhwb3J0cy5lYWNoKGEsKGZ1bmN0aW9uKHQpe2Quc2VsZWN0QWxsKGBbZGF0YS1lZGdlPSIke3RbMF0ubmFtZX0tLSR7Y31+fiR7dFsxXS5uYW1lfX5+T1VUIl1gKS5jbGFzc2VkKCJpbnB1dC1lZGdlLWhpZ2hsaWdodCIsITApfSkpO2ZvcihsZXQgdD0xO3Q8czt0KyspZC5zZWxlY3RBbGwoYFtkYXRhLWVkZ2U9IiR7dX1+fiR7aVt0XS5uYW1lfX5+SU4tLSR7aVt0LTFdLm5hbWV9Il1gKS5jbGFzc2VkKCJpbnB1dC1lZGdlLWhpZ2hsaWdodCIsITApfSkodCxhLHMsbCl9KSksaX1mdW5jdGlvbiBDcXQodCxlKXtsZXQgbj0hMSxpPWU7Zm9yKDshbjspaWYoaT0oZT1pKS5wYXJlbnROb2RlLHZvaWQgMD09PWkpbj0hMDtlbHNle2xldCBlPXQuZ2V0UmVuZGVyTm9kZUJ5TmFtZShpLm5hbWUpO2UmJihlLmV4cGFuZGVkfHxpIGluc3RhbmNlb2YgWEd0KSYmKG49ITApfXJldHVybiBlfWZ1bmN0aW9uIEFxdCh0LGUsbixpKXtsZXQgcj10LnNlbGVjdEFsbCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfSkpLmRhdGEoZS5saXN0LCh0PT50Lm5vZGUubmFtZSkpO3JldHVybiByLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiZGF0YS1uYW1lIiwodD0+dC5ub2RlLm5hbWUpKS5lYWNoKChmdW5jdGlvbih0KXtsZXQgZT1TdSh0aGlzKTtpLmFkZEFubm90YXRpb25Hcm91cCh0LG4sZSk7bGV0IHI9dkd0LkFubm90YXRpb24uRURHRSxvPXQucmVuZGVyTWV0YWVkZ2VJbmZvJiZ0LnJlbmRlck1ldGFlZGdlSW5mby5tZXRhZWRnZTtvJiYhby5udW1SZWd1bGFyRWRnZXMmJihyKz0iICIrdkd0LkFubm90YXRpb24uQ09OVFJPTF9FREdFKSxvJiZvLm51bVJlZkVkZ2VzJiYocis9IiAiK3ZHdC5FZGdlLlJFRl9MSU5FKSxycXQoZSx0LGksciksdC5hbm5vdGF0aW9uVHlwZSE9PWJXdC5FTExJUFNJUz8oKGZ1bmN0aW9uIGEodCxlKXtsZXQgbj1lLm5vZGUubmFtZS5zcGxpdCgiLyIpO2txdCh0LG5bbi5sZW5ndGgtMV0sZSxudWxsKX0pKGUsdCksKGZ1bmN0aW9uIHModCxlKXtlLmFubm90YXRpb25UeXBlPT09Yld0LlNVTU1BUlk/d0d0KHQsInVzZSIpLmF0dHIoImNsYXNzIiwic3VtbWFyeSIpLmF0dHIoInhsaW5rOmhyZWYiLCIjc3VtbWFyeS1pY29uIikuYXR0cigiY3Vyc29yIiwicG9pbnRlciIpOndHdChfcXQodCxlLHZHdC5Bbm5vdGF0aW9uLk5PREUpLCJ0aXRsZSIpLnRleHQoZS5ub2RlLm5hbWUpfSkoZSx0KSk6a3F0KGUsdC5ub2RlLm5hbWUsdCx2R3QuQW5ub3RhdGlvbi5FTExJUFNJUyl9KSkubWVyZ2UocikuYXR0cigiY2xhc3MiLCh0PT52R3QuQW5ub3RhdGlvbi5HUk9VUCsiICIrKGZ1bmN0aW9uIGUodCl7cmV0dXJuKGJXdFt0XXx8IiIpLnRvTG93ZXJDYXNlKCl8fG51bGx9KSh0LmFubm90YXRpb25UeXBlKSsiICIreXF0KHQpKSkuZWFjaCgoZnVuY3Rpb24odCl7bGV0IGU9U3UodGhpcyk7IShmdW5jdGlvbiByKHQsZSxuLGkpe2xldCByPURXdChlKTtuLnJlbmRlck5vZGVJbmZvJiZuLmFubm90YXRpb25UeXBlIT09Yld0LkVMTElQU0lTJiZ3cXQodCxuLnJlbmRlck5vZGVJbmZvLGksdkd0LkFubm90YXRpb24uTk9ERSksbi5hbm5vdGF0aW9uVHlwZT09PWJXdC5TVU1NQVJZJiYobi53aWR0aCs9MTApLHQuc2VsZWN0KCJ0ZXh0LiIrdkd0LkFubm90YXRpb24uTEFCRUwpLnRyYW5zaXRpb24oKS5hdHRyKCJ4IixyK24uZHgrKG4uaXNJbj8tMToxKSoobi53aWR0aC8yK24ubGFiZWxPZmZzZXQpKS5hdHRyKCJ5IixlLnkrbi5keSksdC5zZWxlY3QoInVzZS5zdW1tYXJ5IikudHJhbnNpdGlvbigpLmF0dHIoIngiLHIrbi5keC0zKS5hdHRyKCJ5IixlLnkrbi5keS02KSxXV3QodC5zZWxlY3QoIi4iK3ZHdC5Bbm5vdGF0aW9uLk5PREUrIiBlbGxpcHNlIikscituLmR4LGUueStuLmR5LG4ud2lkdGgsbi5oZWlnaHQpLEdXdCh0LnNlbGVjdCgiLiIrdkd0LkFubm90YXRpb24uTk9ERSsiIHJlY3QiKSxyK24uZHgsZS55K24uZHksbi53aWR0aCxuLmhlaWdodCksR1d0KHQuc2VsZWN0KCIuIit2R3QuQW5ub3RhdGlvbi5OT0RFKyIgdXNlIikscituLmR4LGUueStuLmR5LG4ud2lkdGgsbi5oZWlnaHQpLHQuc2VsZWN0KCJwYXRoLiIrdkd0LkFubm90YXRpb24uRURHRSkudHJhbnNpdGlvbigpLmF0dHIoImQiLCh0PT57bGV0IG49dC5wb2ludHMubWFwKCh0PT4oe3g6dC5keCtyLHk6dC5keStlLnl9KSkpO3JldHVybiBvcXQobil9KSl9KShlLG4sdCxpKSx0LmFubm90YXRpb25UeXBlIT09Yld0LkVMTElQU0lTJiYoZnVuY3Rpb24gbyh0LGUsbixpKXt0Lm9uKCJtb3VzZW92ZXIiLCh0PT57aS5maXJlKCJhbm5vdGF0aW9uLWhpZ2hsaWdodCIse25hbWU6dC5ub2RlLm5hbWUsaG9zdE5hbWU6ZS5ub2RlLm5hbWV9KX0pKS5vbigibW91c2VvdXQiLCh0PT57aS5maXJlKCJhbm5vdGF0aW9uLXVuaGlnaGxpZ2h0Iix7bmFtZTp0Lm5vZGUubmFtZSxob3N0TmFtZTplLm5vZGUubmFtZX0pfSkpLm9uKCJjbGljayIsKHQ9Pnt1dS5zdG9wUHJvcGFnYXRpb24oKSxpLmZpcmUoImFubm90YXRpb24tc2VsZWN0Iix7bmFtZTp0Lm5vZGUubmFtZSxob3N0TmFtZTplLm5vZGUubmFtZX0pfSkpLG4uYW5ub3RhdGlvblR5cGUhPT1iV3QuU1VNTUFSWSYmbi5hbm5vdGF0aW9uVHlwZSE9PWJXdC5DT05TVEFOVCYmdC5vbigiY29udGV4dG1lbnUiLFpXdChpLHVxdChuLm5vZGUsaSkpKX0pKGUsbix0LGkpfSkpLHIuZXhpdCgpLmVhY2goKGZ1bmN0aW9uKHQpe2kucmVtb3ZlQW5ub3RhdGlvbkdyb3VwKHQsbil9KSkucmVtb3ZlKCkscn1mdW5jdGlvbiBrcXQodCxlLG4saSl7bGV0IHI9dkd0LkFubm90YXRpb24uTEFCRUw7cmV0dXJuIGkmJihyKz0iICIraSksZnF0KHQuYXBwZW5kKCJ0ZXh0IikuYXR0cigiY2xhc3MiLHIpLmF0dHIoImR5IiwiLjM1ZW0iKS5hdHRyKCJ0ZXh0LWFuY2hvciIsbi5pc0luPyJlbmQiOiJzdGFydCIpLnRleHQoZSksLTEsNSl9ZnVuY3Rpb24gTHF0KHQsZSxuLGkpe2xldCByPXhHdCh0LCJnIixpPWl8fHZHdC5TY2VuZS5HUk9VUCkuZW1wdHkoKSxvPXdHdCh0LCJnIixpKSxhPXdHdChvLCJnIix2R3QuU2NlbmUuQ09SRSkscz1TZS5leHBvcnRzLnJlZHVjZShlLmNvcmVHcmFwaC5ub2RlcygpLCgodCxuKT0+e2xldCBpPWUuY29yZUdyYXBoLm5vZGUobik7cmV0dXJuIGkuZXhjbHVkZWR8fHQucHVzaChpKSx0fSksW10pO3JldHVybiBlLm5vZGUudHlwZT09PWpHdC5TRVJJRVMmJnMucmV2ZXJzZSgpLChmdW5jdGlvbiBsKHQsZSxuKXtjb25zdCBpPW47bGV0IHI9W107cj1TZS5leHBvcnRzLnJlZHVjZShlLmVkZ2VzKCksKCh0LG4pPT57bGV0IGk9ZS5lZGdlKG4pO3JldHVybiB0LnB1c2goe3Y6bi52LHc6bi53LGxhYmVsOml9KSx0fSkscik7bGV0IG89d0d0KHQsImciLHZHdC5FZGdlLkNPTlRBSU5FUikuc2VsZWN0QWxsKChmdW5jdGlvbigpe3JldHVybiB0aGlzLmNoaWxkTm9kZXN9KSkuZGF0YShyLFFXdCk7by5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIix2R3QuRWRnZS5HUk9VUCkuYXR0cigiZGF0YS1lZGdlIixRV3QpLmVhY2goKGZ1bmN0aW9uKHQpe2xldCBlPVN1KHRoaXMpO3QubGFiZWwuZWRnZUdyb3VwPWUsaS5fZWRnZUdyb3VwSW5kZXhbUVd0KHQpXT1lLGkuaGFuZGxlRWRnZVNlbGVjdGVkJiZlLm9uKCJjbGljayIsKHQ9Pnt1dS5zdG9wUHJvcGFnYXRpb24oKSxpLmZpcmUoImVkZ2Utc2VsZWN0Iix7ZWRnZURhdGE6dCxlZGdlR3JvdXA6ZX0pfSkpLHJxdChlLHQsaSl9KSkubWVyZ2UobykuZWFjaCgoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSxuKXtTdShuKS5zZWxlY3QoInBhdGguIit2R3QuRWRnZS5MSU5FKS50cmFuc2l0aW9uKCkuYXR0clR3ZWVuKCJkIiwoZnVuY3Rpb24odCxuLGkpe3JldHVybihmdW5jdGlvbiByKHQsZSxuLGksbyl7bGV0IGE9bi5sYWJlbCxzPWEuYWRqb2luaW5nTWV0YWVkZ2UsbD1hLnBvaW50cztjb25zdHtzaGFkb3dSb290OmN9PXQ7aWYobi5sYWJlbC5zdGFydE1hcmtlcklkJiYobD1pcXQobCxTdShjLnF1ZXJ5U2VsZWN0b3IoIiMiK24ubGFiZWwuc3RhcnRNYXJrZXJJZCkpLCEwKSksbi5sYWJlbC5lbmRNYXJrZXJJZCYmKGw9aXF0KGwsU3UoYy5xdWVyeVNlbGVjdG9yKCIjIituLmxhYmVsLmVuZE1hcmtlcklkKSksITEpKSwhcylyZXR1cm4gamQobyxvcXQobCkpO2xldCB1PXMuZWRnZUdyb3VwLm5vZGUoKS5maXJzdENoaWxkLGg9YS5tZXRhZWRnZS5pbmJvdW5kO3JldHVybiBmdW5jdGlvbih0KXtsZXQgbj11LmdldFBvaW50QXRMZW5ndGgoaD91LmdldFRvdGFsTGVuZ3RoKCk6MCkubWF0cml4VHJhbnNmb3JtKHUuZ2V0Q1RNKCkpLm1hdHJpeFRyYW5zZm9ybShlLmdldENUTSgpLmludmVyc2UoKSksaT1oPzA6bC5sZW5ndGgtMTtyZXR1cm4gbFtpXS54PW4ueCxsW2ldLnk9bi55LG9xdChsKX19KShlLHRoaXMsdCwwLGkpfSkpfSkobix0aGlzKX0pKS5lYWNoKChmdW5jdGlvbih0KXshKGZ1bmN0aW9uIGUodCxuLGkpe3QuY2xhc3NlZCgiZmFkZWQiLG4ubGFiZWwuaXNGYWRlZE91dCk7bGV0IHI9bi5sYWJlbC5tZXRhZWRnZTt0LnNlbGVjdCgicGF0aC4iK3ZHdC5FZGdlLkxJTkUpLmNsYXNzZWQoImNvbnRyb2wtZGVwIixyJiYhci5udW1SZWd1bGFyRWRnZXMpfSkoU3UodGhpcyksdCl9KSksby5leGl0KCkuZWFjaCgodD0+e2RlbGV0ZSBpLl9lZGdlR3JvdXBJbmRleFtRV3QodCldfSkpLnJlbW92ZSgpfSkoYSxlLmNvcmVHcmFwaCxuKSxzcXQoYSxzLG4pLGUuaXNvbGF0ZWRJbkV4dHJhY3QubGVuZ3RoPjA/c3F0KHdHdChvLCJnIix2R3QuU2NlbmUuSU5FWFRSQUNUKSxlLmlzb2xhdGVkSW5FeHRyYWN0LG4pOnhHdChvLCJnIix2R3QuU2NlbmUuSU5FWFRSQUNUKS5yZW1vdmUoKSxlLmlzb2xhdGVkT3V0RXh0cmFjdC5sZW5ndGg+MD9zcXQod0d0KG8sImciLHZHdC5TY2VuZS5PVVRFWFRSQUNUKSxlLmlzb2xhdGVkT3V0RXh0cmFjdCxuKTp4R3QobywiZyIsdkd0LlNjZW5lLk9VVEVYVFJBQ1QpLnJlbW92ZSgpLGUubGlicmFyeUZ1bmN0aW9uc0V4dHJhY3QubGVuZ3RoPjA/c3F0KHdHdChvLCJnIix2R3QuU2NlbmUuRlVOQ1RJT05fTElCUkFSWSksZS5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdCxuKTp4R3QobywiZyIsdkd0LlNjZW5lLkZVTkNUSU9OX0xJQlJBUlkpLnJlbW92ZSgpLChmdW5jdGlvbiBjKHQsZSl7bGV0IG49ZS5ub2RlLnR5cGU9PT1qR3QuU0VSSUVTPzA6Tld0LnN1YnNjZW5lLm1ldGEubGFiZWxIZWlnaHQ7ald0KEZXdCh0LCJnIixWV3QuU2NlbmUuQ09SRSksMCxuKTtsZXQgaT1lLmlzb2xhdGVkSW5FeHRyYWN0Lmxlbmd0aD4wLHI9ZS5pc29sYXRlZE91dEV4dHJhY3QubGVuZ3RoPjAsbz1lLmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0Lmxlbmd0aD4wLGE9Tld0LnN1YnNjZW5lLm1ldGEuZXh0cmFjdFhPZmZzZXQscz0wO2lmKGkmJihzKz1lLm91dEV4dHJhY3RCb3gud2lkdGgpLHImJihzKz1lLm91dEV4dHJhY3RCb3gud2lkdGgpLGkpe2xldCBpPWUuY29yZUJveC53aWR0aDtpPXM8SVd0P2ktSVd0K2UuaW5FeHRyYWN0Qm94LndpZHRoLzI6aS1lLmluRXh0cmFjdEJveC53aWR0aC8yLWUub3V0RXh0cmFjdEJveC53aWR0aC0ocj9hOjApLGk9aS1lLmxpYnJhcnlGdW5jdGlvbnNCb3gud2lkdGgtKG8/YTowKSxqV3QoRld0KHQsImciLFZXdC5TY2VuZS5JTkVYVFJBQ1QpLGksbil9aWYocil7bGV0IGk9ZS5jb3JlQm94LndpZHRoO3M8SVd0P2k9aS1JV3QrZS5vdXRFeHRyYWN0Qm94LndpZHRoLzI6aS09ZS5vdXRFeHRyYWN0Qm94LndpZHRoLzIsaT1pLWUubGlicmFyeUZ1bmN0aW9uc0JveC53aWR0aC0obz9hOjApLGpXdChGV3QodCwiZyIsVld0LlNjZW5lLk9VVEVYVFJBQ1QpLGksbil9aWYobyl7bGV0IGk9ZS5jb3JlQm94LndpZHRoLWUubGlicmFyeUZ1bmN0aW9uc0JveC53aWR0aC8yO2pXdChGV3QodCwiZyIsVld0LlNjZW5lLkZVTkNUSU9OX0xJQlJBUlkpLGksbil9fSkobyxlKSxyJiZvLmF0dHIoIm9wYWNpdHkiLDApLnRyYW5zaXRpb24oKS5hdHRyKCJvcGFjaXR5IiwxKSxvfWxldCBQcXQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm5vZGU9bnVsbCx0aGlzLnJlbmRlckluZm89bnVsbCx0aGlzLmNvbG9yQnk9YXF0LlNUUlVDVFVSRSx0aGlzLnRlbXBsYXRlSW5kZXg9bnVsbCx0aGlzLnR5cGU9bnVsbCx0aGlzLnZlcnRpY2FsPSExLHRoaXMuY29uc3Q9ITEsdGhpcy5zdW1tYXJ5PSExLHRoaXMuZmlsbD1udWxsLHRoaXMuaGVpZ2h0PTIwfV9jb21wdXRlRmlsbE92ZXJyaWRlKHQsZSxuLGkscil7cmV0dXJuIHQmJmUmJmk/eHF0KGksbixlLCExKTpyfV9nZXRTdHJva2VPdmVycmlkZSh0KXtyZXR1cm4gdD9TcXQodCk6bnVsbH1fZ2V0VHlwZSh0LGUsbixpKXtjb25zdHtHcmFwaEljb25UeXBlOnJ9PUtXdDtpZih0KXN3aXRjaCh0LnR5cGUpe2Nhc2Ugakd0Lk9QOntjb25zdCBpPXQub3A7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBpP3IuT1A6IkNvbnN0Ij09PWl8fG4/ci5DT05TVDppLmVuZHNXaXRoKCJTdW1tYXJ5Iil8fGU/ci5TVU1NQVJZOnIuT1B9Y2FzZSBqR3QuTUVUQTpyZXR1cm4gci5NRVRBO2Nhc2Ugakd0LlNFUklFUzpyZXR1cm4gci5TRVJJRVN9cmV0dXJuIGl9X2lzVmVydGljYWwodCxlKXtyZXR1cm4gdD90Lmhhc05vbkNvbnRyb2xFZGdlczohIWV9X2dldEZhZGVkKHQpe3JldHVybiB0JiZ0LmlzRmFkZWRPdXR9X29uRmlsbE92ZXJyaWRlQ2hhbmdlZCh0LGUpe2NvbnN0e25vZGU6bixyZW5kZXJJbmZvOmksY29sb3JCeTpyLHRlbXBsYXRlSW5kZXg6b309dGhpczt0IT09ZSYmYnF0KHRoaXMuJC5pY29uLmdldFN2Z0RlZmluYWJsZUVsZW1lbnQoKSksbiYmaSYmbyYmeHF0KG8scixpLCExLHRoaXMuJC5pY29uLmdldFN2Z0RlZmluYWJsZUVsZW1lbnQoKSl9fTtQcXQudGVtcGxhdGU9X2VgCiAgICA8c3R5bGU+CiAgICAgIHRmLWdyYXBoLWljb24gewogICAgICAgIC0tdGItZ3JhcGgtZmFkZWQ6IHZhcigtLXRiLWdyYXBoLWZhZGVkKTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDx0Zi1ncmFwaC1pY29uCiAgICAgIGlkPSJpY29uIgogICAgICB0eXBlPSJbW19nZXRUeXBlKG5vZGUsIHN1bW1hcnksIGNvbnN0LCB0eXBlKV1dIgogICAgICBoZWlnaHQ9IltbaGVpZ2h0XV0iCiAgICAgIGZpbGwtb3ZlcnJpZGU9IltbX2ZpbGxPdmVycmlkZV1dIgogICAgICBzdHJva2Utb3ZlcnJpZGU9IltbX2dldFN0cm9rZU92ZXJyaWRlKF9maWxsT3ZlcnJpZGUpXV0iCiAgICAgIGZhZGVkPSJbW19nZXRGYWRlZChyZW5kZXJJbmZvKV1dIgogICAgICB2ZXJ0aWNhbD0iW1tfaXNWZXJ0aWNhbChub2RlLCB2ZXJ0aWNhbCldXSIKICAgID48L3RmLWdyYXBoLWljb24+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQcXQucHJvdG90eXBlLCJub2RlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFBxdC5wcm90b3R5cGUsInJlbmRlckluZm8iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUHF0LnByb3RvdHlwZSwiY29sb3JCeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLFBxdC5wcm90b3R5cGUsInRlbXBsYXRlSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUHF0LnByb3RvdHlwZSwidHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFBxdC5wcm90b3R5cGUsInZlcnRpY2FsIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sUHF0LnByb3RvdHlwZSwiY29uc3QiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxQcXQucHJvdG90eXBlLCJzdW1tYXJ5Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFBxdC5wcm90b3R5cGUsImZpbGwiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sUHF0LnByb3RvdHlwZSwiaGVpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLGNvbXB1dGVkOiJfY29tcHV0ZUZpbGxPdmVycmlkZShub2RlLCByZW5kZXJJbmZvLCBjb2xvckJ5LCB0ZW1wbGF0ZUluZGV4LCBmaWxsKSIsb2JzZXJ2ZXI6Il9vbkZpbGxPdmVycmlkZUNoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFBxdC5wcm90b3R5cGUsIl9maWxsT3ZlcnJpZGUiLHZvaWQgMCksUHF0PXQoW2koInRmLW5vZGUtaWNvbiIpXSxQcXQpO2xldCBOcXQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe19pdGVtVHlwZUNoYW5nZWQoKXsic3Vibm9kZSIhPT10aGlzLml0ZW1UeXBlP3RoaXMuJFsibGlzdC1pdGVtIl0uY2xhc3NMaXN0LmFkZCgiY2xpY2thYmxlIik6dGhpcy4kWyJsaXN0LWl0ZW0iXS5jbGFzc0xpc3QucmVtb3ZlKCJjbGlja2FibGUiKX1fbm9kZUxpc3RlbmVyKHQpe3RoaXMuZmlyZSgibm9kZS1saXN0LWl0ZW0tIit0LnR5cGUse25vZGVOYW1lOnRoaXMubmFtZSx0eXBlOnRoaXMuaXRlbVR5cGV9KX1fZmFkZWRDbGFzcyh0KXtyZXR1cm4gdCYmdC5pc0ZhZGVkT3V0PyJmYWRlZCI6IiJ9fTtmdW5jdGlvbiBJcXQodCxlLG4pe3JldHVybiBTZS5leHBvcnRzLnNvcnRCeSh0LFt0PT5lLm5vZGUodCkub3AsdD0+ZS5ub2RlKHQpLnRlbXBsYXRlSWQsdD0+ZS5uZWlnaGJvcnModCkubGVuZ3RoLHQ9PmUucHJlZGVjZXNzb3JzKHQpLmxlbmd0aCx0PT5lLnN1Y2Nlc3NvcnModCkubGVuZ3RoLHQ9PnQuc3Vic3RyKG4ubGVuZ3RoKV0pfWZ1bmN0aW9uIFJxdCh0LGUpe2lmKCEoZnVuY3Rpb24gbih0LGUpe2xldCBuPWxXdCh0KSxpPWxXdChlKTtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKylpZihuW3RdIT09aVt0XSlyZXR1cm4hMTtyZXR1cm4hMH0pKHQsZSkpcmV0dXJuITE7bGV0IGk9dC5ncmFwaCgpLm5hbWUscj1lLmdyYXBoKCkubmFtZSxvPXt9LGE9e30scz1bXTtmdW5jdGlvbiBsKHQsZSl7bGV0IG49dC5zdWJzdHIoaS5sZW5ndGgpLGw9ZS5zdWJzdHIoci5sZW5ndGgpO3JldHVybiBvW25dXmFbbF0/KGNvbnNvbGUud2FybigiZGlmZmVyZW50IHZpc2l0IHBhdHRlcm4iLCJbIitpKyJdIixuLCJbIityKyJdIixsKSwhMCk6KG9bbl18fChvW25dPWFbbF09ITAscy5wdXNoKHtuMTp0LG4yOmV9KSksITEpfWxldCBjPXQuc291cmNlcygpLHU9ZS5zb3VyY2VzKCk7aWYoYy5sZW5ndGghPT11Lmxlbmd0aClyZXR1cm4gY29uc29sZS5sb2coImRpZmZlcmVudCBzb3VyY2UgbGVuZ3RoIiksITE7Yz1JcXQoYyx0LGkpLHU9SXF0KHUsZSxyKTtmb3IobGV0IHQ9MDt0PGMubGVuZ3RoO3QrKylpZihsKGNbdF0sdVt0XSkpcmV0dXJuITE7Zm9yKDtzLmxlbmd0aD4wOyl7bGV0IG49cy5wb3AoKTtpZighT3F0KHQubm9kZShuLm4xKSxlLm5vZGUobi5uMikpKXJldHVybiExO2xldCBvPXQuc3VjY2Vzc29ycyhuLm4xKSxhPWUuc3VjY2Vzc29ycyhuLm4yKTtpZihvLmxlbmd0aCE9PWEubGVuZ3RoKXJldHVybiBjb25zb2xlLmxvZygiIyBvZiBzdWNjZXNzb3JzIG1pc21hdGNoIixvLGEpLCExO289SXF0KG8sdCxpKSxhPUlxdChhLGUscik7Zm9yKGxldCB0PTA7dDxvLmxlbmd0aDt0KyspaWYobChvW3RdLGFbdF0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIE9xdCh0LGUpe2lmKHQudHlwZT09PWpHdC5NRVRBKXtsZXQgbj10LGk9ZTtyZXR1cm4gbi50ZW1wbGF0ZUlkJiZpLnRlbXBsYXRlSWQmJm4udGVtcGxhdGVJZD09PWkudGVtcGxhdGVJZH1pZih0LnR5cGU9PT1qR3QuT1AmJmUudHlwZT09PWpHdC5PUClyZXR1cm4gdC5vcD09PWUub3A7aWYodC50eXBlPT09akd0LlNFUklFUyYmZS50eXBlPT09akd0LlNFUklFUyl7bGV0IG49dCxpPWUscj1uLm1ldGFncmFwaC5ub2RlQ291bnQoKTtyZXR1cm4gcj09PWkubWV0YWdyYXBoLm5vZGVDb3VudCgpJiYoMD09PXJ8fG4ubWV0YWdyYXBoLm5vZGUobi5tZXRhZ3JhcGgubm9kZXMoKVswXSkub3A9PT1pLm1ldGFncmFwaC5ub2RlKGkubWV0YWdyYXBoLm5vZGVzKClbMF0pLm9wKX1yZXR1cm4hMX12YXIgenF0O05xdC50ZW1wbGF0ZT1fZWAKICAgIDxzdHlsZT4KICAgICAgI2xpc3QtaXRlbSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBmb250LXNpemU6IDExcHQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAjbGlzdC1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nb29nbGUteWVsbG93LTEwMCk7CiAgICAgIH0KCiAgICAgIC5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDBweDsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbS5leGNsdWRlZCBzcGFuIHsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuLmVkZ2UtbGFiZWwgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsKICAgICAgfQoKICAgICAgLm5vZGUtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMXB4OwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmZhZGVkIHNwYW4gewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1mYWRlZCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdgogICAgICBpZD0ibGlzdC1pdGVtIgogICAgICBvbi1tb3VzZW92ZXI9Il9ub2RlTGlzdGVuZXIiCiAgICAgIG9uLW1vdXNlb3V0PSJfbm9kZUxpc3RlbmVyIgogICAgICBvbi1jbGljaz0iX25vZGVMaXN0ZW5lciIKICAgID4KICAgICAgPGRpdiBjbGFzcyQ9Int7X2ZhZGVkQ2xhc3MoaXRlbVJlbmRlckluZm8pfX0iPgogICAgICAgIDx0Zi1ub2RlLWljb24KICAgICAgICAgIGNsYXNzPSJub2RlLWljb24iCiAgICAgICAgICBoZWlnaHQ9IjEyIgogICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgY29sb3ItYnktcGFyYW1zPSJbW2NvbG9yQnlQYXJhbXNdXSIKICAgICAgICAgIG5vZGU9IltbaXRlbU5vZGVdXSIKICAgICAgICAgIHJlbmRlci1pbmZvPSJbW2l0ZW1SZW5kZXJJbmZvXV0iCiAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1t0ZW1wbGF0ZUluZGV4XV0iCiAgICAgICAgPgogICAgICAgIDwvdGYtbm9kZS1pY29uPgogICAgICAgIDxzcGFuIHRpdGxlJD0iW1tuYW1lXV0iPltbbmFtZV1dPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTnF0LnByb3RvdHlwZSwiY2FyZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTnF0LnByb3RvdHlwZSwiaXRlbU5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTnF0LnByb3RvdHlwZSwiZWRnZUxhYmVsIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE5xdC5wcm90b3R5cGUsIml0ZW1SZW5kZXJJbmZvIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLE5xdC5wcm90b3R5cGUsIm5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9pdGVtVHlwZUNoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLE5xdC5wcm90b3R5cGUsIml0ZW1UeXBlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLE5xdC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTnF0LnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLE5xdC5wcm90b3R5cGUsInRlbXBsYXRlSW5kZXgiLHZvaWQgMCksTnF0PXQoW2koInRmLWdyYXBoLW9wLWNvbXBhdC1saXN0LWl0ZW0iKV0sTnF0KSwoZnVuY3Rpb24odCl7dFt0LlRFTVBMQVRFU19VUERBVEVEPTBdPSJURU1QTEFURVNfVVBEQVRFRCJ9KSh6cXR8fCh6cXQ9e30pKTtjbGFzcyBEcXQgZXh0ZW5kcyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZXZlbnRUeXBlVG9MaXN0ZW5lcnM9bmV3IE1hcH1nZXRMaXN0ZW5lcnModCl7cmV0dXJuIHRoaXMuZXZlbnRUeXBlVG9MaXN0ZW5lcnMuaGFzKHQpfHx0aGlzLmV2ZW50VHlwZVRvTGlzdGVuZXJzLnNldCh0LFtdKSx0aGlzLmV2ZW50VHlwZVRvTGlzdGVuZXJzLmdldCh0KX1hZGRMaXN0ZW5lcih0LGUpe3RoaXMuZ2V0TGlzdGVuZXJzKHQpLnB1c2goZSl9cmVtb3ZlTGlzdGVuZXIodCxlKXtjb25zdCBuPXRoaXMuZ2V0TGlzdGVuZXJzKHQpLmZpbHRlcigodD0+dCE9PWUpKTt0aGlzLmV2ZW50VHlwZVRvTGlzdGVuZXJzLnNldCh0LG4pfWRpc3BhdGNoRXZlbnQodCxlKXtmb3IoY29uc3QgbiBvZiB0aGlzLmdldExpc3RlbmVycyh0KSluKGUpfX17Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmhhc1NoYXBlSW5mbz0hMSx0aGlzLm1heE1ldGFFZGdlU2l6ZT0xLHRoaXMuZ3JhcGhPcHRpb25zPXt9LHRoaXMudGVtcGxhdGVzPW51bGwsdGhpcy5ncmFwaE9wdGlvbnMuY29tcG91bmQ9ITAsdGhpcy5ncmFwaE9wdGlvbnMucmFua2Rpcj10LnJhbmtEaXJlY3Rpb24sdGhpcy5yb290PSRHdChGR3QsdGhpcy5ncmFwaE9wdGlvbnMpLHRoaXMubGlicmFyeUZ1bmN0aW9ucz17fSx0aGlzLnNlcmllc0dyb3VwTWFwPW5ldyBNYXAodC5zZXJpZXNNYXApLHRoaXMuZGV2aWNlcz1udWxsLHRoaXMueGxhQ2x1c3RlcnM9bnVsbCx0aGlzLnZlcmlmeVRlbXBsYXRlPXQudmVyaWZ5VGVtcGxhdGUsdGhpcy5pbmRleD17fSx0aGlzLmluZGV4Ll9fcm9vdF9fPXRoaXMucm9vdCx0aGlzLm9yZGVyaW5ncz17fX1nZXRTZXJpZXNHcm91cFR5cGUodCl7dmFyIGU7cmV0dXJuIG51bGwhPT0oZT10aGlzLnNlcmllc0dyb3VwTWFwLmdldCh0KSkmJnZvaWQgMCE9PWU/ZTpXR3QuR1JPVVB9c2V0U2VyaWVzR3JvdXBUeXBlKHQsZSl7cmV0dXJuIHRoaXMuc2VyaWVzR3JvdXBNYXAuc2V0KHQsZSl9YnVpbGRTZXJpZXNHcm91cE1hcFRvZ2dsZWQodCl7Y29uc3QgZT10aGlzLmdldFNlcmllc0dyb3VwVHlwZSh0KT09PVdHdC5HUk9VUD9XR3QuVU5HUk9VUDpXR3QuR1JPVVA7cmV0dXJuIG5ldyBNYXAoWy4uLnRoaXMuc2VyaWVzR3JvdXBNYXAsW3QsZV1dKX1nZXROb2RlTWFwKCl7cmV0dXJuIHRoaXMuaW5kZXh9bm9kZSh0KXtyZXR1cm4gdGhpcy5pbmRleFt0XX1zZXROb2RlKHQsZSl7dGhpcy5pbmRleFt0XT1lfWdldEJyaWRnZWdyYXBoKHQpe2xldCBlPXRoaXMuaW5kZXhbdF07aWYoIWUpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIG5vZGUgaW4gaGllcmFyY2h5OiAiK3QpO2lmKCEoIm1ldGFncmFwaCJpbiBlKSlyZXR1cm4gbnVsbDtpZihlLmJyaWRnZWdyYXBoKXJldHVybiBlLmJyaWRnZWdyYXBoO2xldCBuPWUuYnJpZGdlZ3JhcGg9b1d0KCJCUklER0VHUkFQSCIsVUd0LkJSSURHRSx0aGlzLmdyYXBoT3B0aW9ucyk7aWYoIWUucGFyZW50Tm9kZXx8ISgibWV0YWdyYXBoImluIGUucGFyZW50Tm9kZSkpcmV0dXJuIG47bGV0IGk9ZS5wYXJlbnROb2RlLHI9aS5tZXRhZ3JhcGgsbz10aGlzLmdldEJyaWRnZWdyYXBoKGkubmFtZSk7cmV0dXJuIFNlLmV4cG9ydHMuZWFjaChbcixvXSwoZT0+e2UuZWRnZXMoKS5maWx0ZXIoKGU9PmUudj09PXR8fGUudz09PXQpKS5mb3JFYWNoKChpPT57bGV0IHI9aS53PT09dCxvPWUuZWRnZShpKTtTZS5leHBvcnRzLmVhY2goby5iYXNlRWRnZUxpc3QsKGU9PntsZXRbbyxhXT1yP1tlLncsaS52XTpbZS52LGkud10scz10aGlzLmdldENoaWxkTmFtZSh0LG8pLGw9e3Y6cj9hOnMsdzpyP3M6YX0sYz1uLmVkZ2UobCk7Y3x8KGM9Wkd0KGwudixsLncpLGMuaW5ib3VuZD1yLG4uc2V0RWRnZShsLnYsbC53LGMpKSxjLmFkZEJhc2VFZGdlKGUsdGhpcyl9KSl9KSl9KSksbn1nZXRDaGlsZE5hbWUodCxlKXtsZXQgbj10aGlzLmluZGV4W2VdO2Zvcig7bjspe2lmKG4ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLm5hbWU9PT10KXJldHVybiBuLm5hbWU7bj1uLnBhcmVudE5vZGV9dGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIGltbWVkaWF0ZSBjaGlsZCBmb3IgZGVzY2VuZGFudDogIitlKX1nZXRQcmVkZWNlc3NvcnModCl7bGV0IGU9dGhpcy5pbmRleFt0XTtpZighZSl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgbm9kZSB3aXRoIG5hbWU6ICIrdCk7bGV0IG49dGhpcy5nZXRPbmVXYXlFZGdlcyhlLCEwKTtyZXR1cm4gZS5pc0dyb3VwTm9kZXx8U2UuZXhwb3J0cy5lYWNoKGUuaW5FbWJlZGRpbmdzLChpPT57U2UuZXhwb3J0cy5lYWNoKGUuaW5wdXRzLChlPT57aWYoZS5uYW1lPT09aS5uYW1lKXtsZXQgcj1uZXcgSkd0KGkubmFtZSx0KTtyLmFkZEJhc2VFZGdlKHtpc0NvbnRyb2xEZXBlbmRlbmN5OmUuaXNDb250cm9sRGVwZW5kZW5jeSxvdXRwdXRUZW5zb3JLZXk6ZS5vdXRwdXRUZW5zb3JLZXksaXNSZWZlcmVuY2VFZGdlOiExLHY6aS5uYW1lLHc6dH0sdGhpcyksbi5yZWd1bGFyLnB1c2gocil9fSkpfSkpLG59Z2V0U3VjY2Vzc29ycyh0KXtsZXQgZT10aGlzLmluZGV4W3RdO2lmKCFlKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBub2RlIHdpdGggbmFtZTogIit0KTtsZXQgbj10aGlzLmdldE9uZVdheUVkZ2VzKGUsITEpO3JldHVybiBlLmlzR3JvdXBOb2RlfHxTZS5leHBvcnRzLmVhY2goZS5vdXRFbWJlZGRpbmdzLChlPT57U2UuZXhwb3J0cy5lYWNoKGUuaW5wdXRzLChpPT57aWYoaS5uYW1lPT09dCl7bGV0IHI9bmV3IEpHdCh0LGUubmFtZSk7ci5hZGRCYXNlRWRnZSh7aXNDb250cm9sRGVwZW5kZW5jeTppLmlzQ29udHJvbERlcGVuZGVuY3ksb3V0cHV0VGVuc29yS2V5Omkub3V0cHV0VGVuc29yS2V5LGlzUmVmZXJlbmNlRWRnZTohMSx2OnQsdzplLm5hbWV9LHRoaXMpLG4ucmVndWxhci5wdXNoKHIpfX0pKX0pKSxufWdldE9uZVdheUVkZ2VzKHQsZSl7bGV0IG49e2NvbnRyb2w6W10scmVndWxhcjpbXX07aWYoIXQucGFyZW50Tm9kZXx8IXQucGFyZW50Tm9kZS5pc0dyb3VwTm9kZSlyZXR1cm4gbjtsZXQgaT10LnBhcmVudE5vZGUscj1pLm1ldGFncmFwaCxvPXRoaXMuZ2V0QnJpZGdlZ3JhcGgoaS5uYW1lKTtyZXR1cm4gQnF0KHIsdCxlLG4pLEJxdChvLHQsZSxuKSxufWdldFRvcG9sb2dpY2FsT3JkZXJpbmcodCl7bGV0IGU9dGhpcy5pbmRleFt0XTtpZighZSl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgbm9kZSB3aXRoIG5hbWU6ICIrdCk7aWYoIWUuaXNHcm91cE5vZGUpcmV0dXJuIG51bGw7aWYodCBpbiB0aGlzLm9yZGVyaW5ncylyZXR1cm4gdGhpcy5vcmRlcmluZ3NbdF07bGV0IG49e30saT17fSxyPWUubWV0YWdyYXBoO1NlLmV4cG9ydHMuZWFjaChyLmVkZ2VzKCksKHQ9PntyLmVkZ2UodCkubnVtUmVndWxhckVkZ2VzJiYodC52IGluIG58fChuW3Qudl09W10pLG5bdC52XS5wdXNoKHQudyksaVt0LnddPSEwKX0pKTtsZXQgbz1TZS5leHBvcnRzLmRpZmZlcmVuY2UoU2UuZXhwb3J0cy5rZXlzKG4pLFNlLmV4cG9ydHMua2V5cyhpKSksYT10aGlzLm9yZGVyaW5nc1t0XT17fSxzPTA7Zm9yKDtvLmxlbmd0aDspe2xldCB0PW8uc2hpZnQoKTthW3RdPXMrKyxTZS5leHBvcnRzLmVhY2goblt0XSwodD0+by5wdXNoKHQpKSksZGVsZXRlIG5bdF19cmV0dXJuIGF9Z2V0VGVtcGxhdGVJbmRleCgpe2lmKCF0aGlzLnRlbXBsYXRlcylyZXR1cm4gbnVsbDtsZXQgdD1MZyh0aGlzLnRlbXBsYXRlcyk7aWYoIXQubGVuZ3RoKXJldHVybiBudWxsO2xldCBlPUVNKCkuZG9tYWluKHQpLnJhbmdlKHpsKDAsdC5sZW5ndGgpKTtyZXR1cm4gdD0+ZSh0KX11cGRhdGVUZW1wbGF0ZXMoKXtDR3QoIkZpbmRpbmcgc2ltaWxhciBzdWJncmFwaHMiLCgoKT0+e3RoaXMudGVtcGxhdGVzPShmdW5jdGlvbiB0KGUsbil7bGV0IGk9KGZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gU2UuZXhwb3J0cy5yZWR1Y2UodCwoZnVuY3Rpb24odCxuKXtsZXQgaT1uWzBdLHI9W107cmV0dXJuIG5bMV0ubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspaWYoIWV8fFJxdChyW25dLm1ldGFub2RlLm1ldGFncmFwaCx0Lm1ldGFncmFwaCkpcmV0dXJuIHQudGVtcGxhdGVJZD1yW25dLm1ldGFub2RlLnRlbXBsYXRlSWQsdm9pZCByW25dLm1lbWJlcnMucHVzaCh0Lm5hbWUpO3QudGVtcGxhdGVJZD1pKyJbIityLmxlbmd0aCsiXSIsci5wdXNoKHttZXRhbm9kZTp0LG1lbWJlcnM6W3QubmFtZV19KX0pKSxyLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RbZS5tZXRhbm9kZS50ZW1wbGF0ZUlkXT17bGV2ZWw6blsxXS5sZXZlbCxub2RlczplLm1lbWJlcnN9fSkpLHR9KSx7fSl9KSgoZnVuY3Rpb24gcih0KXtjb25zdCBlPXQuZ2V0Tm9kZU1hcCgpO2xldCBuPU9iamVjdC5rZXlzKGUpLnJlZHVjZSgoKHQsbik9Pntjb25zdCBpPWVbbl07aWYoaS50eXBlIT09akd0Lk1FVEEpcmV0dXJuIHQ7bGV0IHI9bi5zcGxpdCgiLyIpLmxlbmd0aC0xLG89KGZ1bmN0aW9uIGEodCl7cmV0dXJuIFNlLmV4cG9ydHMubWFwKHtkZXB0aDp0LmRlcHRoLCJ8VnwiOnQubWV0YWdyYXBoLm5vZGVzKCkubGVuZ3RoLCJ8RXwiOnQubWV0YWdyYXBoLmVkZ2VzKCkubGVuZ3RofSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZSsiPSIrdH0pKS5qb2luKCIgIikrIiBbb3BzXSAiK1NlLmV4cG9ydHMubWFwKHQub3BIaXN0b2dyYW0sKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUrIj0iK3R9KSkuam9pbigiLCIpfSkoaSkscz10W29dfHx7bm9kZXM6W10sbGV2ZWw6cn07cmV0dXJuIHRbb109cyxzLm5vZGVzLnB1c2goaSkscy5sZXZlbD5yJiYocy5sZXZlbD1yKSx0fSkse30pO3JldHVybiBPYmplY3Qua2V5cyhuKS5tYXAoKHQ9Plt0LG5bdF1dKSkuZmlsdGVyKCgoW3QsZV0pPT57Y29uc3R7bm9kZXM6bn09ZTtpZihuLmxlbmd0aD4xKXJldHVybiEwO2NvbnN0IGk9blswXTtyZXR1cm4gaS50eXBlPT09akd0Lk1FVEEmJmkuYXNzb2NpYXRlZEZ1bmN0aW9ufSkpLnNvcnQoKChbdCxlXSk9PmUubm9kZXNbMF0uZGVwdGgpKX0pKGUpLG4pO3JldHVybiBPYmplY3Qua2V5cyhpKS5zb3J0KCh0PT5pW3RdLmxldmVsKSkucmVkdWNlKCgodCxlKT0+KHRbZV09aVtlXSx0KSkse30pfSkodGhpcyx0aGlzLnZlcmlmeVRlbXBsYXRlKSx0aGlzLmRpc3BhdGNoRXZlbnQoenF0LlRFTVBMQVRFU19VUERBVEVEKX0pLF9HdC5ISUVSQVJDSFlfRklORF9TSU1JTEFSX1NVQkdSQVBIUyl9fWZ1bmN0aW9uIEJxdCh0LGUsbixpKXtsZXQgcj1uP3QuaW5FZGdlcyhlLm5hbWUpOnQub3V0RWRnZXMoZS5uYW1lKTtTZS5leHBvcnRzLmVhY2gociwoZT0+e2xldCBuPXQuZWRnZShlKTsobi5udW1SZWd1bGFyRWRnZXM/aS5yZWd1bGFyOmkuY29udHJvbCkucHVzaChuKX0pKX1jb25zdCBIcXQ9e3ZlcmlmeVRlbXBsYXRlOiEwLHNlcmllc05vZGVNaW5TaXplOjUsc2VyaWVzTWFwOm5ldyBNYXAscmFua0RpcmVjdGlvbjoiQlQiLHVzZUdlbmVyYWxpemVkU2VyaWVzUGF0dGVybnM6ITF9O2Z1bmN0aW9uIEZxdCh0LGUsbil7Y29uc3QgaT1uZXcgRHF0KGUpLHI9e307cmV0dXJuIExHdCgiQWRkaW5nIG5vZGVzIiwzMCwoKCk9PntsZXQgZT17fSxuPXt9O1NlLmV4cG9ydHMuZWFjaCh0Lm5vZGVzLCgodCxpKT0+e3QuZGV2aWNlJiYoZVt0LmRldmljZV09ITApLHQueGxhQ2x1c3RlciYmKG5bdC54bGFDbHVzdGVyXT0hMCl9KSksaS5kZXZpY2VzPVNlLmV4cG9ydHMua2V5cyhlKSxpLnhsYUNsdXN0ZXJzPVNlLmV4cG9ydHMua2V5cyhuKSwoZnVuY3Rpb24gcih0LGUpe2NvbnN0IG49e307U2UuZXhwb3J0cy5lYWNoKGUubm9kZXMsKChlLGkpPT57bGV0IHI9Y1d0KGUubmFtZSksbz10LnJvb3Q7by5kZXB0aD1NYXRoLm1heChyLmxlbmd0aCxvLmRlcHRoKSxuW2Uub3BdfHwobltlLm9wXT1bXSksbltlLm9wXS5wdXNoKGUpO2ZvcihsZXQgaT0wO2k8ci5sZW5ndGgmJihvLmRlcHRoPU1hdGgubWF4KG8uZGVwdGgsci5sZW5ndGgtaSksby5jYXJkaW5hbGl0eSs9ZS5jYXJkaW5hbGl0eSxvLm9wSGlzdG9ncmFtW2Uub3BdPShvLm9wSGlzdG9ncmFtW2Uub3BdfHwwKSsxLG51bGwhPWUuZGV2aWNlJiYoby5kZXZpY2VIaXN0b2dyYW1bZS5kZXZpY2VdPShvLmRldmljZUhpc3RvZ3JhbVtlLmRldmljZV18fDApKzEpLG51bGwhPWUueGxhQ2x1c3RlciYmKG8ueGxhQ2x1c3Rlckhpc3RvZ3JhbVtlLnhsYUNsdXN0ZXJdPShvLnhsYUNsdXN0ZXJIaXN0b2dyYW1bZS54bGFDbHVzdGVyXXx8MCkrMSksZS5jb21wYXRpYmxlP28uY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZXx8MCkrMTpvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlfHwwKSsxLFNlLmV4cG9ydHMuZWFjaChlLmluRW1iZWRkaW5ncywodD0+e3QuY29tcGF0aWJsZT9vLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZT0oby5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGV8fDApKzE6by5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZT0oby5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZXx8MCkrMX0pKSxTZS5leHBvcnRzLmVhY2goZS5vdXRFbWJlZGRpbmdzLCh0PT57dC5jb21wYXRpYmxlP28uY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZXx8MCkrMTpvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlfHwwKSsxfSkpLGkhPT1yLmxlbmd0aC0xKTtpKyspe2xldCBlPXJbaV0sYT10Lm5vZGUoZSk7aWYoIWEmJihhPSRHdChlLHQuZ3JhcGhPcHRpb25zKSxhLnBhcmVudE5vZGU9byx0LnNldE5vZGUoZSxhKSxvLm1ldGFncmFwaC5zZXROb2RlKGUsYSksMD09PWUuaW5kZXhPZihWR3QpJiZvLm5hbWU9PT1GR3QpKXtjb25zdCBpPWUuc3Vic3RyaW5nKFZHdC5sZW5ndGgpO25baV18fChuW2ldPVtdKSx0LmxpYnJhcnlGdW5jdGlvbnNbaV09e25vZGU6YSx1c2FnZXM6bltpXX0sYS5hc3NvY2lhdGVkRnVuY3Rpb249aX1vPWF9dC5zZXROb2RlKGUubmFtZSxlKSxlLnBhcmVudE5vZGU9byxvLm1ldGFncmFwaC5zZXROb2RlKGUubmFtZSxlKSxTZS5leHBvcnRzLmVhY2goZS5pbkVtYmVkZGluZ3MsKGZ1bmN0aW9uKG4pe3Quc2V0Tm9kZShuLm5hbWUsbiksbi5wYXJlbnROb2RlPWV9KSksU2UuZXhwb3J0cy5lYWNoKGUub3V0RW1iZWRkaW5ncywoZnVuY3Rpb24obil7dC5zZXROb2RlKG4ubmFtZSxuKSxuLnBhcmVudE5vZGU9ZX0pKX0pKX0pKGksdCl9KSxuLF9HdC5ISUVSQVJDSFlfQUREX05PREVTKS50aGVuKCgoKT0+TEd0KCJEZXRlY3Qgc2VyaWVzIiwzMCwoKCk9PntlLnNlcmllc05vZGVNaW5TaXplPjAmJlZxdChpLnJvb3QsaSxyLGUuc2VyaWVzTm9kZU1pblNpemUsZS5zZXJpZXNNYXAsZS51c2VHZW5lcmFsaXplZFNlcmllc1BhdHRlcm5zKX0pLG4sX0d0LkhJRVJBUkNIWV9ERVRFQ1RfU0VSSUVTKSkpLnRoZW4oKCgpPT5MR3QoIkFkZGluZyBlZGdlcyIsNDAsKCgpPT57IShmdW5jdGlvbiBlKHQsbixpKXtsZXQgcj10LmdldE5vZGVNYXAoKSxvPVtdLGE9W10scz0odCxlKT0+e2xldCBuPTA7Zm9yKDt0OyllW24rK109dC5uYW1lLHQ9dC5wYXJlbnROb2RlO3JldHVybiBuLTF9O1NlLmV4cG9ydHMuZWFjaChuLmVkZ2VzLChlPT57bGV0IGk9cyhuLm5vZGVzW2Uudl0sbyksbD1zKG4ubm9kZXNbZS53XSxhKTtpZigtMT09PWl8fC0xPT09bClyZXR1cm47Zm9yKDtvW2ldPT09YVtsXTspaWYoaS0tLGwtLSxpPDB8fGw8MCl0aHJvdyBFcnJvcigiTm8gZGlmZmVyZW5jZSBmb3VuZCBiZXR3ZWVuIGFuY2VzdG9yIHBhdGhzLiIpO2xldCBjPXJbb1tpKzFdXSx1PW9baV0saD1hW2xdLGQ9Yy5tZXRhZ3JhcGguZWRnZSh1LGgpO2R8fChkPVpHdCh1LGgpLGMubWV0YWdyYXBoLnNldEVkZ2UodSxoLGQpKSxjLmhhc05vbkNvbnRyb2xFZGdlc3x8ZS5pc0NvbnRyb2xEZXBlbmRlbmN5fHwoYy5oYXNOb25Db250cm9sRWRnZXM9ITApLGQuYWRkQmFzZUVkZ2UoZSx0KX0pKX0pKGksdCl9KSxuLF9HdC5ISUVSQVJDSFlfQUREX0VER0VTKSkpLnRoZW4oKCgpPT5pKSl9ZnVuY3Rpb24gVnF0KHQsZSxuLGkscixvKXtsZXQgYT10Lm1ldGFncmFwaDtTZS5leHBvcnRzLmVhY2goYS5ub2RlcygpLCh0PT57bGV0IHM9YS5ub2RlKHQpO3MudHlwZT09PWpHdC5NRVRBJiZWcXQocyxlLG4saSxyLG8pfSkpO2xldCBzPShmdW5jdGlvbiBsKHQpe3JldHVybiBTZS5leHBvcnRzLnJlZHVjZSh0Lm5vZGVzKCksKChlLG4pPT57bGV0IGk9dC5ub2RlKG4pO2lmKGkudHlwZT09PWpHdC5NRVRBKXJldHVybiBlO2xldCByPWkub3A7cmV0dXJuIHImJihlW3JdPWVbcl18fFtdLGVbcl0ucHVzaChpLm5hbWUpKSxlfSkse30pfSkoYSksYz0obz9qcXQ6VXF0KShzLGEsZS5ncmFwaE9wdGlvbnMpO1NlLmV4cG9ydHMuZWFjaChjLChmdW5jdGlvbih0LHIpe2xldCBvPXQubWV0YWdyYXBoLm5vZGVzKCk7U2UuZXhwb3J0cy5lYWNoKG8sKHQ9PntsZXQgZT1hLm5vZGUodCk7ZS5vd25pbmdTZXJpZXN8fChlLm93bmluZ1Nlcmllcz1yKX0pKSxvLmxlbmd0aDxpJiZlLmdldFNlcmllc0dyb3VwVHlwZSh0Lm5hbWUpPT09V0d0LkdST1VQJiZlLnNldFNlcmllc0dyb3VwVHlwZSh0Lm5hbWUsV0d0LlVOR1JPVVApLGUuZ2V0U2VyaWVzR3JvdXBUeXBlKHQubmFtZSkhPT1XR3QuVU5HUk9VUCYmKGUuc2V0Tm9kZShyLHQpLGEuc2V0Tm9kZShyLHQpLFNlLmV4cG9ydHMuZWFjaChvLChlPT57bGV0IGk9YS5ub2RlKGUpO3QubWV0YWdyYXBoLnNldE5vZGUoZSxpKSx0LnBhcmVudE5vZGU9aS5wYXJlbnROb2RlLHQuY2FyZGluYWxpdHkrKyxudWxsIT1pLmRldmljZSYmKHQuZGV2aWNlSGlzdG9ncmFtW2kuZGV2aWNlXT0odC5kZXZpY2VIaXN0b2dyYW1baS5kZXZpY2VdfHwwKSsxKSxudWxsIT1pLnhsYUNsdXN0ZXImJih0LnhsYUNsdXN0ZXJIaXN0b2dyYW1baS54bGFDbHVzdGVyXT0odC54bGFDbHVzdGVySGlzdG9ncmFtW2kueGxhQ2x1c3Rlcl18fDApKzEpLGkuY29tcGF0aWJsZT90LmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGV8fDApKzE6dC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZXx8MCkrMSxTZS5leHBvcnRzLmVhY2goaS5pbkVtYmVkZGluZ3MsKGU9PntlLmNvbXBhdGlibGU/dC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGU9KHQuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlfHwwKSsxOnQuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU9KHQuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGV8fDApKzF9KSksU2UuZXhwb3J0cy5lYWNoKGkub3V0RW1iZWRkaW5ncywoZT0+e2UuY29tcGF0aWJsZT90LmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGV8fDApKzE6dC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZXx8MCkrMX0pKSxpLnBhcmVudE5vZGU9dCxuW2VdPXIsYS5yZW1vdmVOb2RlKGUpfSkpKX0pKX1mdW5jdGlvbiBVcXQodCxlLG4pe2xldCBpPXt9O3JldHVybiBTZS5leHBvcnRzLmVhY2godCwoZnVuY3Rpb24odCxyKXtpZih0Lmxlbmd0aDw9MSlyZXR1cm47bGV0IG89e307U2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQpe2NvbnN0IGU9IioiPT09dC5jaGFyQXQodC5sZW5ndGgtMSksaT10LnNwbGl0KCIvIikscj1pW2kubGVuZ3RoLTFdLGE9aS5zbGljZSgwLGkubGVuZ3RoLTEpLmpvaW4oIi8iKSxzPXIubWF0Y2goL14oXEQqKShcZCspJC8pO2xldCBsLGMsdT0iIjtzPyhsPXNbMV0sYz1zWzJdKToobD1lP3Iuc3Vic3RyKDAsci5sZW5ndGgtMSk6cixjPTAsdT1lPyIqIjoiIik7Y29uc3QgaD10V3QobCx1LGEpO29baF09b1toXXx8W107Y29uc3QgZD1RR3QobCx1LGEsK2MsdCxuKTtvW2hdLnB1c2goZCl9KSksU2UuZXhwb3J0cy5lYWNoKG8sKGZ1bmN0aW9uKHQsbyl7aWYodC5sZW5ndGg8MilyZXR1cm47dC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybit0LmNsdXN0ZXJJZC0rZS5jbHVzdGVySWR9KSk7bGV0IGE9W3RbMF1dO2ZvcihsZXQgbz0xO288dC5sZW5ndGg7bysrKXtsZXQgcz10W29dO3MuY2x1c3RlcklkIT09YVthLmxlbmd0aC0xXS5jbHVzdGVySWQrMT8oR3F0KGEsaSwrcixlLG4pLGE9W3NdKTphLnB1c2gocyl9R3F0KGEsaSwrcixlLG4pfSkpfSkpLGl9ZnVuY3Rpb24ganF0KHQsZSxuKXtsZXQgaT17fTtyZXR1cm4gU2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQscil7aWYodC5sZW5ndGg8PTEpcmV0dXJuO2xldCBvPXt9LGE9e307U2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQpe2xldCBlPSIqIj09PXQuY2hhckF0KHQubGVuZ3RoLTEpLGk9dC5zcGxpdCgiLyIpLHI9aVtpLmxlbmd0aC0xXSxzPWkuc2xpY2UoMCxpLmxlbmd0aC0xKS5qb2luKCIvIik7Y29uc3QgbD0vKFxkKykvZztsZXQgYyx1LGgsZCxwLGY9MDtmb3IoO2M9bC5leGVjKHIpOykrK2YsdT1yLnNsaWNlKDAsYy5pbmRleCksaD1jWzBdLGQ9ci5zbGljZShjLmluZGV4K2NbMF0ubGVuZ3RoKSxwPXRXdCh1LGQscyksb1twXT1vW3BdLG9bcF18fChvW3BdPVFHdCh1LGQscywraCx0LG4pKSxvW3BdLmlkcy5wdXNoKGgpLGFbdF09YVt0XXx8W10sYVt0XS5wdXNoKFtwLGhdKTtmPDEmJih1PWU/ci5zdWJzdHIoMCxyLmxlbmd0aC0xKTpyLGg9MCxkPWU/IioiOiIiLHA9dFd0KHUsZCxzKSxvW3BdPW9bcF0sb1twXXx8KG9bcF09UUd0KHUsZCxzLCtoLHQsbikpLG9bcF0uaWRzLnB1c2goaCksYVt0XT1hW3RdfHxbXSxhW3RdLnB1c2goW3AsaF0pKX0pKTt2YXIgcz17fTtTZS5leHBvcnRzLmVhY2goYSwoZnVuY3Rpb24odCxlKXt0LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG9bZVswXV0uaWRzLmxlbmd0aC1vW3RbMF1dLmlkcy5sZW5ndGh9KSk7dmFyIGk9dFswXVswXSxyPXRbMF1bMV07c1tpXT1zW2ldfHxbXTtjb25zdCBhPWUuc3BsaXQoIi8iKSxsPWEuc2xpY2UoMCxhLmxlbmd0aC0xKS5qb2luKCIvIik7dmFyIGM9UUd0KG9baV0ucHJlZml4LG9baV0uc3VmZml4LGwsK3IsZSxuKTtzW2ldLnB1c2goYyl9KSksU2UuZXhwb3J0cy5lYWNoKHMsKGZ1bmN0aW9uKHQsbyl7aWYodC5sZW5ndGg8MilyZXR1cm47dC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybit0LmNsdXN0ZXJJZC0rZS5jbHVzdGVySWR9KSk7bGV0IGE9W3RbMF1dO2ZvcihsZXQgbz0xO288dC5sZW5ndGg7bysrKXtsZXQgcz10W29dO3MuY2x1c3RlcklkIT09YVthLmxlbmd0aC0xXS5jbHVzdGVySWQrMT8oR3F0KGEsaSwrcixlLG4pLGE9W3NdKTphLnB1c2gocyl9R3F0KGEsaSwrcixlLG4pfSkpfSkpLGl9ZnVuY3Rpb24gR3F0KHQsZSxuLGkscil7aWYodC5sZW5ndGg+MSl7bGV0IG89dFd0KHRbMF0ucHJlZml4LHRbMF0uc3VmZml4LHRbMF0ucGFyZW50LHRbMF0uY2x1c3RlcklkLHRbdC5sZW5ndGgtMV0uY2x1c3RlcklkKSxhPVFHdCh0WzBdLnByZWZpeCx0WzBdLnN1ZmZpeCx0WzBdLnBhcmVudCxuLG8scik7U2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQpe2EuaWRzLnB1c2godC5jbHVzdGVySWQpLGEubWV0YWdyYXBoLnNldE5vZGUodC5uYW1lLGkubm9kZSh0Lm5hbWUpKX0pKSxlW29dPWF9fWxldCBXcXQ9Y2xhc3MgZXh0ZW5kcyhlcihpbCh5ZSkpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZXhwYW5kZWQ9ITAsdGhpcy5fb3BDb21wYXRDb2xvcj1oV3QsdGhpcy5fb3BJbmNvbXBhdENvbG9yPWRXdCx0aGlzLl90ZW1wbGF0ZUluZGV4PW51bGx9X2dldE5vZGUodCxlKXtyZXR1cm4gZS5ub2RlKHQpfV9nZXRSZW5kZXJJbmZvKHQsZSl7cmV0dXJuIHRoaXMucmVuZGVySGllcmFyY2h5LmdldE9yQ3JlYXRlUmVuZGVyTm9kZUJ5TmFtZSh0KX1fdG9nZ2xlRXhwYW5kZWQoKXt0aGlzLl9leHBhbmRlZD0hdGhpcy5fZXhwYW5kZWR9X2dldFRvZ2dsZUljb24odCl7cmV0dXJuIHQ/ImV4cGFuZC1sZXNzIjoiZXhwYW5kLW1vcmUifV9yZXNpemVMaXN0KHQpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCk7ZSYmZS5maXJlKCJpcm9uLXJlc2l6ZSIpfWdldCBfaW5jb21wYXRpYmxlT3BOb2Rlcygpe2NvbnN0IHQ9dGhpcy5ncmFwaEhpZXJhcmNoeTtyZXR1cm4gdCYmdC5yb290Pyh0aGlzLmFzeW5jKHRoaXMuX3Jlc2l6ZUxpc3QuYmluZCh0aGlzLCIjaW5jb21wYXRpYmxlT3BzTGlzdCIpKSwoZnVuY3Rpb24gZSh0KXtjb25zdCBlPVtdLG49e307cmV0dXJuIFNlLmV4cG9ydHMuZWFjaCh0LnJvb3QubGVhdmVzKCksKGk9PntsZXQgcj10Lm5vZGUoaSk7aWYoci50eXBlPT1qR3QuT1Ape2xldCBpPXI7aWYoIWkuY29tcGF0aWJsZSlpZihpLm93bmluZ1Nlcmllcyl7aWYodC5nZXRTZXJpZXNHcm91cFR5cGUoaS5vd25pbmdTZXJpZXMpPT09V0d0LlVOR1JPVVApZS5wdXNoKGkpO2Vsc2UgaWYoIW5baS5vd25pbmdTZXJpZXNdKXtsZXQgcj10Lm5vZGUoaS5vd25pbmdTZXJpZXMpO3ImJihuW2kub3duaW5nU2VyaWVzXT1yLGUucHVzaChyKSl9fWVsc2UgZS5wdXNoKGkpO1NlLmV4cG9ydHMuZWFjaChpLmluRW1iZWRkaW5ncywodD0+e3QuY29tcGF0aWJsZXx8ZS5wdXNoKHQpfSkpLFNlLmV4cG9ydHMuZWFjaChpLm91dEVtYmVkZGluZ3MsKHQ9Pnt0LmNvbXBhdGlibGV8fGUucHVzaCh0KX0pKX19KSksZX0pKHQpKTpbXX1nZXQgX29wQ29tcGF0U2NvcmUoKXt2YXIgdD10aGlzLmdyYXBoSGllcmFyY2h5O2lmKHQmJnQucm9vdCl7dmFyIGU9dC5yb290LG49ZS5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGUsaT1lLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlO3JldHVybiAwPT1uJiYwPT1pPzA6TWF0aC5mbG9vcigxMDAqbi8obitpKSkvMTAwfXJldHVybiAwfWdldCBfb3BDb21wYXRTY29yZUxhYmVsKCl7dmFyIHQ9dGhpcy5fb3BDb21wYXRTY29yZTtyZXR1cm4gbXkoIi4wJSIpKHQpfWdldCBfdG90YWxJbmNvbXBhdE9wcygpe3ZhciB0PXRoaXMuZ3JhcGhIaWVyYXJjaHk7cmV0dXJuIHQmJnQucm9vdD90LnJvb3QuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU6MH1fZ3JhcGhIaWVyYXJjaHlDaGFuZ2VkKCl7dGhpcy5fdGVtcGxhdGVJbmRleD10aGlzLmdyYXBoSGllcmFyY2h5LmdldFRlbXBsYXRlSW5kZXgoKSx0aGlzLmdyYXBoSGllcmFyY2h5LmFkZExpc3RlbmVyKHpxdC5URU1QTEFURVNfVVBEQVRFRCwoKCk9Pnt0aGlzLl90ZW1wbGF0ZUluZGV4PXRoaXMuZ3JhcGhIaWVyYXJjaHkuZ2V0VGVtcGxhdGVJbmRleCgpfSkpfX07V3F0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIC5pbmNvbXBhdGlibGUtb3BzLWxpc3QgewogICAgICAgIGhlaWdodDogMzUwcHg7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgaXJvbi1saXN0IHsKICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICAgICAgfQoKICAgICAgcGFwZXItaXRlbSB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcik7CiAgICAgIH0KCiAgICAgIHBhcGVyLWl0ZW0tYm9keVt0d28tbGluZV0gewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggNHB4OwogICAgICB9CgogICAgICAuZXhwYW5kZWRJbmZvIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJwdDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLm5vZGUtbmFtZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgZm9udC1zaXplOiAxNHB0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBmb250LXNpemU6IDEycHQ7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYnV0dG9uIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgbWF4LWhlaWdodDogMjBweDsKICAgICAgICBtYXgtd2lkdGg6IDIwcHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLm5vbi1jb250cm9sLWxpc3QtaXRlbSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OwogICAgICB9CgogICAgICBkaXYub3AtY29tcGF0LWRpc3BsYXkgewogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAvKioKICAgICAgICogU2FkbHksIGJlY2F1c2UgdGhlIHdob2xlIGJvZHkgaXMgaW52ZXJ0ZWQgaW4gY29sb3IsIGxlZ2VuZHMgYWxzbyBuZWVkCiAgICAgICAqIHRvIGJlIGludmVydGVkLgogICAgICAgKiovCiAgICAgIDpob3N0KC5kYXJrLW1vZGUpIGRpdi5vcC1jb21wYXQtZGlzcGxheSB7CiAgICAgICAgZmlsdGVyOiBpbnZlcnQoMSk7CiAgICAgIH0KCiAgICAgIHN2Zy5vcC1jb21wYXQgewogICAgICAgIHdpZHRoOiAyNTBweDsKICAgICAgICBoZWlnaHQ6IDI1cHg7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgIH0KCiAgICAgIGRpdi5vcC1jb21wYXQtdmFsdWUgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiBibGFjazsKICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8cGFwZXItaXRlbT4KICAgICAgPHBhcGVyLWl0ZW0tYm9keSB0d28tbGluZT4KICAgICAgICA8ZGl2PgogICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgIGljb249Int7X2dldFRvZ2dsZUljb24oX2V4cGFuZGVkKX19IgogICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZUV4cGFuZGVkIgogICAgICAgICAgICBjbGFzcz0idG9nZ2xlLWJ1dHRvbiIKICAgICAgICAgID4KICAgICAgICAgIDwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJub2RlLW5hbWUiIGlkPSJub2RldGl0bGUiPltbbm9kZVRpdGxlXV08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNlY29uZGFyeT4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3AtY29tcGF0LWRpc3BsYXkiPgogICAgICAgICAgICAgIDxzdmcKICAgICAgICAgICAgICAgIGNsYXNzPSJvcC1jb21wYXQiCiAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pZCBtZWV0IgogICAgICAgICAgICAgICAgdmlld0JveD0iMCAwIDI1MCAyNSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVmcz4KICAgICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJvcC1jb21wYXQtZmlsbCI+CiAgICAgICAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yJD0iW1tfb3BDb21wYXRDb2xvcl1dIj48L3N0b3A+CiAgICAgICAgICAgICAgICAgICAgPHN0b3AKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCQ9IltbX29wQ29tcGF0U2NvcmVdXSIKICAgICAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3IkPSJbW19vcENvbXBhdENvbG9yXV0iCiAgICAgICAgICAgICAgICAgICAgPjwvc3RvcD4KICAgICAgICAgICAgICAgICAgICA8c3RvcAogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0JD0iW1tfb3BDb21wYXRTY29yZV1dIgogICAgICAgICAgICAgICAgICAgICAgc3RvcC1jb2xvciQ9IltbX29wSW5jb21wYXRDb2xvcl1dIgogICAgICAgICAgICAgICAgICAgID48L3N0b3A+CiAgICAgICAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yJD0iW1tfb3BJbmNvbXBhdENvbG9yIF1dIj48L3N0b3A+CiAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgICAgICAgICA8L2RlZnM+CiAgICAgICAgICAgICAgICA8cmVjdAogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjI1IgogICAgICAgICAgICAgICAgICB3aWR0aD0iMjUwIgogICAgICAgICAgICAgICAgICByeD0iNSIKICAgICAgICAgICAgICAgICAgcnk9IjUiCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiB1cmwoJyNvcC1jb21wYXQtZmlsbCcpOyIKICAgICAgICAgICAgICAgID48L3JlY3Q+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3AtY29tcGF0LXZhbHVlIj5bW19vcENvbXBhdFNjb3JlTGFiZWxdXTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3BhcGVyLWl0ZW0tYm9keT4KICAgIDwvcGFwZXItaXRlbT4KCiAgICA8aXJvbi1jb2xsYXBzZSBvcGVuZWQ9Int7X2V4cGFuZGVkfX0iPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Int7X2V4cGFuZGVkfX0iIHJlc3RhbXA9InRydWUiPgogICAgICAgIDxkaXYgY2xhc3M9ImV4cGFuZGVkSW5mbyI+CiAgICAgICAgICBJbmNvbXBhdGlibGUgT3BlcmF0aW9uczogKDxzcGFuPltbX3RvdGFsSW5jb21wYXRPcHNdXTwvc3Bhbj4pCiAgICAgICAgICA8aXJvbi1saXN0CiAgICAgICAgICAgIGNsYXNzPSJpbmNvbXBhdGlibGUtb3BzLWxpc3QiCiAgICAgICAgICAgIGlkPSJpbmNvbXBhdGlibGVPcHNMaXN0IgogICAgICAgICAgICBpdGVtcz0iW1tfaW5jb21wYXRpYmxlT3BOb2Rlc11dIgogICAgICAgICAgPgogICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgPHRmLWdyYXBoLW9wLWNvbXBhdC1saXN0LWl0ZW0KICAgICAgICAgICAgICAgIGNsYXNzPSJub24tY29udHJvbC1saXN0LWl0ZW0iCiAgICAgICAgICAgICAgICBpdGVtLW5vZGU9IltbaXRlbV1dIgogICAgICAgICAgICAgICAgaXRlbS1yZW5kZXItaW5mbz0iW1tfZ2V0UmVuZGVySW5mbyhpdGVtLm5hbWUsIHJlbmRlckhpZXJhcmNoeSldXSIKICAgICAgICAgICAgICAgIG5hbWU9IltbaXRlbS5uYW1lXV0iCiAgICAgICAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1tfdGVtcGxhdGVJbmRleF1dIgogICAgICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICAgICAgaXRlbS10eXBlPSJpbmNvbXBhdGlibGUtb3BzIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8L3RmLWdyYXBoLW9wLWNvbXBhdC1saXN0LWl0ZW0+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvaXJvbi1jb2xsYXBzZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLERxdCldLFdxdC5wcm90b3R5cGUsImdyYXBoSGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHlXdCldLFdxdC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxXcXQucHJvdG90eXBlLCJub2RlVGl0bGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxXcXQucHJvdG90eXBlLCJfZXhwYW5kZWQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sV3F0LnByb3RvdHlwZSwiX29wQ29tcGF0Q29sb3IiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sV3F0LnByb3RvdHlwZSwiX29wSW5jb21wYXRDb2xvciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLFdxdC5wcm90b3R5cGUsIl90ZW1wbGF0ZUluZGV4Iix2b2lkIDApLHQoW3MoImdyYXBoSGllcmFyY2h5IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxXcXQucHJvdG90eXBlLCJfaW5jb21wYXRpYmxlT3BOb2RlcyIsbnVsbCksdChbcygiZ3JhcGhIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxXcXQucHJvdG90eXBlLCJfb3BDb21wYXRTY29yZSIsbnVsbCksdChbcygiX29wQ29tcGF0U2NvcmUiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxXcXQucHJvdG90eXBlLCJfb3BDb21wYXRTY29yZUxhYmVsIixudWxsKSx0KFtzKCJncmFwaEhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFdxdC5wcm90b3R5cGUsIl90b3RhbEluY29tcGF0T3BzIixudWxsKSx0KFthKCJncmFwaEhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sV3F0LnByb3RvdHlwZSwiX2dyYXBoSGllcmFyY2h5Q2hhbmdlZCIsbnVsbCksV3F0PXQoW2koInRmLWdyYXBoLW9wLWNvbXBhdC1jYXJkIildLFdxdCk7bGV0IHFxdD1jbGFzcyBleHRlbmRzKGVyKGlsKHllKSkpe19pdGVtVHlwZUNoYW5nZWQoKXsic3Vibm9kZSIhPT10aGlzLml0ZW1UeXBlP3RoaXMuJFsibGlzdC1pdGVtIl0uY2xhc3NMaXN0LmFkZCgiY2xpY2thYmxlIik6dGhpcy4kWyJsaXN0LWl0ZW0iXS5jbGFzc0xpc3QucmVtb3ZlKCJjbGlja2FibGUiKX1fbm9kZUxpc3RlbmVyKHQpe3RoaXMuZmlyZSgibm9kZS1saXN0LWl0ZW0tIit0LnR5cGUse2NhcmROb2RlOnRoaXMuY2FyZE5vZGUubmFtZSxub2RlTmFtZTp0aGlzLm5hbWUsdHlwZTp0aGlzLml0ZW1UeXBlfSl9X2ZhZGVkQ2xhc3ModCl7cmV0dXJuIHQmJnQuaXNGYWRlZE91dD8iZmFkZWQiOiIifX07cXF0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICAjbGlzdC1pdGVtIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIGZvbnQtc2l6ZTogMTFwdDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgICNsaXN0LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdvb2dsZS15ZWxsb3ctMTAwKTsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgI2xpc3QtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXIteWVsbG93LTkwMCk7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgIH0KCiAgICAgIC5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDBweDsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbS5leGNsdWRlZCBzcGFuIHsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuLmVkZ2UtbGFiZWwgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsKICAgICAgfQoKICAgICAgLm5vZGUtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMXB4OwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmZhZGVkIHNwYW4gewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1mYWRlZCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2CiAgICAgIGlkPSJsaXN0LWl0ZW0iCiAgICAgIG9uLW1vdXNlb3Zlcj0iX25vZGVMaXN0ZW5lciIKICAgICAgb24tbW91c2VvdXQ9Il9ub2RlTGlzdGVuZXIiCiAgICAgIG9uLWNsaWNrPSJfbm9kZUxpc3RlbmVyIgogICAgPgogICAgICA8ZGl2IGNsYXNzJD0ie3tfZmFkZWRDbGFzcyhpdGVtUmVuZGVySW5mbyl9fSI+CiAgICAgICAgPHRmLW5vZGUtaWNvbgogICAgICAgICAgY2xhc3M9Im5vZGUtaWNvbiIKICAgICAgICAgIGhlaWdodD0iMTIiCiAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICBjb2xvci1ieS1wYXJhbXM9IltbY29sb3JCeVBhcmFtc11dIgogICAgICAgICAgbm9kZT0iW1tpdGVtTm9kZV1dIgogICAgICAgICAgcmVuZGVyLWluZm89IltbaXRlbVJlbmRlckluZm9dXSIKICAgICAgICAgIHRlbXBsYXRlLWluZGV4PSJbW3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICA+PC90Zi1ub2RlLWljb24+CiAgICAgICAgPHNwYW4gdGl0bGUkPSJbW25hbWVdXSI+W1tuYW1lXV08L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImVkZ2UtbGFiZWwiPltbZWRnZUxhYmVsXV08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxxcXQucHJvdG90eXBlLCJjYXJkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxxcXQucHJvdG90eXBlLCJpdGVtTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxxcXQucHJvdG90eXBlLCJlZGdlTGFiZWwiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0scXF0LnByb3RvdHlwZSwiaXRlbVJlbmRlckluZm8iLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0scXF0LnByb3RvdHlwZSwibmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxvYnNlcnZlcjoiX2l0ZW1UeXBlQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0scXF0LnByb3RvdHlwZSwiaXRlbVR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0scXF0LnByb3RvdHlwZSwiY29sb3JCeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxxcXQucHJvdG90eXBlLCJjb2xvckJ5UGFyYW1zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHFxdC5wcm90b3R5cGUsInRlbXBsYXRlSW5kZXgiLHZvaWQgMCkscXF0PXQoW2koInRmLW5vZGUtbGlzdC1pdGVtIildLHFxdCk7bGV0IFlxdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2V4cGFuZGVkPSEwLHRoaXMuX29wZW5lZENvbnRyb2xQcmVkPSExLHRoaXMuX29wZW5lZENvbnRyb2xTdWNjPSExLHRoaXMuX3RlbXBsYXRlSW5kZXg9bnVsbH1leHBhbmROb2RlKCl7dGhpcy5maXJlKCJfbm9kZS5leHBhbmQiLHRoaXMubm9kZSl9X2dldE5vZGUodCxlKXtyZXR1cm4gZS5ub2RlKHQpfV9nZXROb2RlU3RhdHModCxlKXt2YXIgbj10aGlzLl9nZXROb2RlKHQsZSk7cmV0dXJuIG4/bi5zdGF0czpudWxsfV9nZXRUb3RhbE1pY3Jvcyh0KXtyZXR1cm4gdD90LmdldFRvdGFsTWljcm9zKCk6MH1nZXQgX2hhc0Rpc3BsYXlhYmxlTm9kZVN0YXRzKCl7cmV0dXJuIE9HdCh0aGlzLl9ub2RlU3RhdHMpfWdldCBfbm9kZVN0YXRzRm9ybWF0dGVkQnl0ZXMoKXt2YXIgdD10aGlzLl9ub2RlU3RhdHM7aWYodCYmdC50b3RhbEJ5dGVzKXJldHVybiBSR3QodC50b3RhbEJ5dGVzLE5HdCl9Z2V0IF9ub2RlU3RhdHNGb3JtYXR0ZWRDb21wdXRlVGltZSgpe3ZhciB0PXRoaXMuX25vZGVTdGF0cztpZih0JiZ0LmdldFRvdGFsTWljcm9zKCkpcmV0dXJuIFJHdCh0LmdldFRvdGFsTWljcm9zKCksSUd0KX1nZXQgX25vZGVTdGF0c0Zvcm1hdHRlZE91dHB1dFNpemVzKCl7dmFyIHQ9dGhpcy5fbm9kZVN0YXRzO2lmKHQmJnQub3V0cHV0U2l6ZSYmdC5vdXRwdXRTaXplLmxlbmd0aClyZXR1cm4gU2UuZXhwb3J0cy5tYXAodC5vdXRwdXRTaXplLChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQubGVuZ3RoPyJzY2FsYXIiOiJbIit0LmpvaW4oIiwgIikrIl0ifSkpfV9nZXRSZW5kZXJJbmZvKHQsZSl7cmV0dXJuIHRoaXMucmVuZGVySGllcmFyY2h5LmdldE9yQ3JlYXRlUmVuZGVyTm9kZUJ5TmFtZSh0KX1nZXQgX2F0dHJpYnV0ZXMoKXt2YXIgdD10aGlzLl9ub2RlO2lmKHRoaXMuYXN5bmModGhpcy5fcmVzaXplTGlzdC5iaW5kKHRoaXMsIiNhdHRyaWJ1dGVzTGlzdCIpKSwhdHx8IXQuYXR0cilyZXR1cm5bXTt2YXIgZT1bXTtyZXR1cm4gU2UuZXhwb3J0cy5lYWNoKHQuYXR0ciwoZnVuY3Rpb24odCl7Il90b29fbGFyZ2VfYXR0cnMiPT09dC5rZXk/ZT1lLmNvbmNhdCh0LnZhbHVlLmxpc3Qucy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntrZXk6dCx2YWx1ZToiVG9vIGxhcmdlIHRvIHNob3cuLi4ifX0pKSk6ZS5wdXNoKHtrZXk6dC5rZXksdmFsdWU6SlNPTi5zdHJpbmdpZnkodC52YWx1ZSl9KX0pKSxlfWdldCBfZGV2aWNlKCl7dmFyIHQ9dGhpcy5fbm9kZTtyZXR1cm4gdD90LmRldmljZTpudWxsfWdldCBfc3VjY2Vzc29ycygpe3ZhciB0PXRoaXMuX25vZGUsZT10aGlzLmdyYXBoSGllcmFyY2h5O3JldHVybiB0aGlzLl9yZWZyZXNoTm9kZUl0ZW1MaXN0KCJpbnB1dHNMaXN0IiksdD90aGlzLl9jb252ZXJ0RWRnZUxpc3RUb0VkZ2VJbmZvTGlzdChlLmdldFN1Y2Nlc3NvcnModC5uYW1lKSwhMSx0LmlzR3JvdXBOb2RlKTp7cmVndWxhcjpbXSxjb250cm9sOltdfX1nZXQgX3ByZWRlY2Vzc29ycygpe3ZhciB0PXRoaXMuX25vZGUsZT10aGlzLmdyYXBoSGllcmFyY2h5O3JldHVybiB0aGlzLl9yZWZyZXNoTm9kZUl0ZW1MaXN0KCJvdXRwdXRzTGlzdCIpLHQ/dGhpcy5fY29udmVydEVkZ2VMaXN0VG9FZGdlSW5mb0xpc3QoZS5nZXRQcmVkZWNlc3NvcnModC5uYW1lKSwhMCx0LmlzR3JvdXBOb2RlKTp7cmVndWxhcjpbXSxjb250cm9sOltdfX1nZXQgX2Z1bmN0aW9uVXNhZ2VzKCl7dmFyIHQ9dGhpcy5fbm9kZSxlPXRoaXMuZ3JhcGhIaWVyYXJjaHk7aWYodGhpcy5fcmVmcmVzaE5vZGVJdGVtTGlzdCgiZnVuY3Rpb25Vc2FnZXNMaXN0IiksIXR8fHQudHlwZSE9PWpHdC5NRVRBKXJldHVybltdO2NvbnN0IG49ZS5saWJyYXJ5RnVuY3Rpb25zW3QuYXNzb2NpYXRlZEZ1bmN0aW9uXTtyZXR1cm4gbj9uLnVzYWdlczpbXX1fcmVmcmVzaE5vZGVJdGVtTGlzdCh0KXt0aGlzLmFzeW5jKHRoaXMuX3Jlc2l6ZUxpc3QuYmluZCh0aGlzLGAjJHt0fWApKX1fY29udmVydEVkZ2VMaXN0VG9FZGdlSW5mb0xpc3QodCxlLG4pe3ZhciBpPXQ9PlNlLmV4cG9ydHMubWFwKHQuYmFzZUVkZ2VMaXN0LCh0PT57dmFyIG49ZT90LnY6dC53O3JldHVybntuYW1lOm4sbm9kZTp0aGlzLl9nZXROb2RlKG4sdGhpcy5ncmFwaEhpZXJhcmNoeSksZWRnZUxhYmVsOnRxdCh0LHRoaXMucmVuZGVySGllcmFyY2h5KSxyZW5kZXJJbmZvOnRoaXMuX2dldFJlbmRlckluZm8obix0aGlzLnJlbmRlckhpZXJhcmNoeSl9fSkpLHI9ZnVuY3Rpb24odCl7dmFyIHI9W107cmV0dXJuIFNlLmV4cG9ydHMuZWFjaCh0LCh0PT57dmFyIG89ZT90LnY6dC53O24mJjEhPXQuYmFzZUVkZ2VMaXN0Lmxlbmd0aD9yLnB1c2goe25hbWU6byxub2RlOnRoaXMuX2dldE5vZGUobyx0aGlzLmdyYXBoSGllcmFyY2h5KSxlZGdlTGFiZWw6ZXF0KHQsdGhpcy5yZW5kZXJIaWVyYXJjaHkpLHJlbmRlckluZm86dGhpcy5fZ2V0UmVuZGVySW5mbyhvLHRoaXMucmVuZGVySGllcmFyY2h5KX0pOnI9ci5jb25jYXQoaSh0KSl9KSkscn0uYmluZCh0aGlzKTtyZXR1cm57cmVndWxhcjpyKHQucmVndWxhciksY29udHJvbDpyKHQuY29udHJvbCl9fWdldCBfc3Vibm9kZXMoKXt2YXIgdD10aGlzLl9ub2RlO3JldHVybiB0JiZ0Lm1ldGFncmFwaD90Lm1ldGFncmFwaC5ub2RlcygpOm51bGx9Z2V0IF90b3RhbFByZWRlY2Vzc29ycygpe3ZhciB0PXRoaXMuX3ByZWRlY2Vzc29ycztyZXR1cm4gdC5yZWd1bGFyLmxlbmd0aCt0LmNvbnRyb2wubGVuZ3RofWdldCBfdG90YWxTdWNjZXNzb3JzKCl7dmFyIHQ9dGhpcy5fc3VjY2Vzc29ycztyZXR1cm4gdC5yZWd1bGFyLmxlbmd0aCt0LmNvbnRyb2wubGVuZ3RofV90b2dnbGVDb250cm9sUHJlZCgpe3RoaXMuX29wZW5lZENvbnRyb2xQcmVkPSF0aGlzLl9vcGVuZWRDb250cm9sUHJlZH1fdG9nZ2xlQ29udHJvbFN1Y2MoKXt0aGlzLl9vcGVuZWRDb250cm9sU3VjYz0hdGhpcy5fb3BlbmVkQ29udHJvbFN1Y2N9X3RvZ2dsZUV4cGFuZGVkKCl7dGhpcy5fZXhwYW5kZWQ9IXRoaXMuX2V4cGFuZGVkfV9nZXRUb2dnbGVJY29uKHQpe3JldHVybiB0PyJleHBhbmQtbGVzcyI6ImV4cGFuZC1tb3JlIn1fcmVzZXRTdGF0ZSgpe3RoaXMuX29wZW5lZENvbnRyb2xQcmVkPSExLHRoaXMuX29wZW5lZENvbnRyb2xTdWNjPSExLHRoaXMuc2V0KCJfZ3JvdXBCdXR0b25UZXh0IixwcXQodGhpcy5fbm9kZSkpfV9yZXNpemVMaXN0KHQpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCk7ZSYmZS5maXJlKCJpcm9uLXJlc2l6ZSIpfV90b2dnbGVJbmNsdWRlKCl7dGhpcy5maXJlKCJub2RlLXRvZ2dsZS1pbmNsdXNpb24iLHtuYW1lOnRoaXMuZ3JhcGhOb2RlTmFtZX0pfV9ub2RlSW5jbHVkZVN0YXRlQ2hhbmdlZCh0LGUpe3RoaXMuc2V0KCJfYXV4QnV0dG9uVGV4dCIsdVd0KHQpKX1fdG9nZ2xlR3JvdXAoKXt2YXIgdD1kcXQodGhpcy5fbm9kZSk7dGhpcy5maXJlKCJub2RlLXRvZ2dsZS1zZXJpZXNncm91cCIse25hbWU6dH0pfV9pc0xpYnJhcnlGdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5uYW1lLnN0YXJ0c1dpdGgoVkd0KX1faXNJblNlcmllcyh0KXtyZXR1cm4gaHF0KHQpfV9ncmFwaEhpZXJhcmNoeUNoYW5nZWQoKXt0aGlzLl90ZW1wbGF0ZUluZGV4PXRoaXMuZ3JhcGhIaWVyYXJjaHkuZ2V0VGVtcGxhdGVJbmRleCgpLHRoaXMuZ3JhcGhIaWVyYXJjaHkuYWRkTGlzdGVuZXIoenF0LlRFTVBMQVRFU19VUERBVEVELCgoKT0+e3RoaXMuX3RlbXBsYXRlSW5kZXg9dGhpcy5ncmFwaEhpZXJhcmNoeS5nZXRUZW1wbGF0ZUluZGV4KCl9KSl9fTtZcXQudGVtcGxhdGU9X2VgCiAgICA8c3R5bGU+CiAgICAgIC5zdWItbGlzdC1ncm91cCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEycHQ7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLnN1Yi1saXN0IHsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgICAgIH0KCiAgICAgIC5hdHRyLWxlZnQgewogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICAgIHdpZHRoOiAzMCU7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZm9udC1zaXplOiAxMXB0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC5hdHRyLXJpZ2h0IHsKICAgICAgICBtYXJnaW4tbGVmdDogMzAlOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC5zdWItbGlzdC10YWJsZSB7CiAgICAgICAgZGlzcGxheTogdGFibGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5zdWItbGlzdC10YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdzsKICAgICAgfQoKICAgICAgLnN1Yi1saXN0LXRhYmxlLXJvdyAuc3ViLWxpc3QtdGFibGUtY2VsbDpsYXN0LWNoaWxkIHsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgfQoKICAgICAgLnN1Yi1saXN0LXRhYmxlLWNlbGwgewogICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsKICAgICAgICBmb250LXNpemU6IDExcHQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBtYXgtd2lkdGg6IDIwMHB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICB9CgogICAgICBwYXBlci1pdGVtIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcik7CiAgICAgIH0KCiAgICAgIHBhcGVyLWl0ZW0tYm9keVt0d28tbGluZV0gewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggNHB4OwogICAgICB9CgogICAgICAuZXhwYW5kZWRJbmZvIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgLmNvbnRyb2xEZXBzIHsKICAgICAgICBwYWRkaW5nOiAwIDAgMCA4cHg7CiAgICAgIH0KCiAgICAgIC5ub2RlLW5hbWUgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIGZvbnQtc2l6ZTogMTRwdDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubm9kZS1pY29uIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBmb250LXNpemU6IDEycHQ7CiAgICAgIH0KCiAgICAgIC5jb250cm9sTGluZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYnV0dG9uIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgbWF4LWhlaWdodDogMjBweDsKICAgICAgICBtYXgtd2lkdGg6IDIwcHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtdG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgbWF4LWhlaWdodDogMjBweDsKICAgICAgICBtYXgtd2lkdGg6IDIwcHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1pbmNsdWRlLWdyb3VwIHsKICAgICAgICBwYWRkaW5nLXRvcDogNHB4OwogICAgICB9CgogICAgICAudG9nZ2xlLWluY2x1ZGUgewogICAgICAgIG1hcmdpbjogNXB4IDZweDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKICAgICAgICBwYWRkaW5nOiA0cHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBwdDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICB9CgogICAgICAudG9nZ2xlLWluY2x1ZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdvb2dsZS15ZWxsb3ctMTAwKTsKICAgICAgfQoKICAgICAgLm5vbi1jb250cm9sLWxpc3QtaXRlbSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHBhcGVyLWl0ZW0+CiAgICAgIDxwYXBlci1pdGVtLWJvZHkgdHdvLWxpbmU+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICBpY29uPSJ7e19nZXRUb2dnbGVJY29uKF9leHBhbmRlZCl9fSIKICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVFeHBhbmRlZCIKICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1idXR0b24iCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm9kZS1uYW1lIj4KICAgICAgICAgICAgPHRmLXdici1zdHJpbmcgdmFsdWU9IltbX25vZGUubmFtZV1dIiBkZWxpbWl0ZXItcGF0dGVybj0iLyI+CiAgICAgICAgICAgIDwvdGYtd2JyLXN0cmluZz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2Vjb25kYXJ5PgogICAgICAgICAgPHRmLW5vZGUtaWNvbgogICAgICAgICAgICBjbGFzcz0ibm9kZS1pY29uIgogICAgICAgICAgICBub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgIHJlbmRlci1pbmZvPSJbW19nZXRSZW5kZXJJbmZvKGdyYXBoTm9kZU5hbWUsIHJlbmRlckhpZXJhcmNoeSldXSIKICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1tfdGVtcGxhdGVJbmRleF1dIgogICAgICAgICAgPjwvdGYtbm9kZS1pY29uPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJ7e19ub2RlLm9wfX0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+CiAgICAgICAgICAgICAgT3BlcmF0aW9uOgogICAgICAgICAgICAgIDxzcGFuPltbX25vZGUub3BdXTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJ7e19ub2RlLm1ldGFncmFwaH19Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPgogICAgICAgICAgICAgIFN1YmdyYXBoOgogICAgICAgICAgICAgIDxzcGFuPltbX25vZGUuY2FyZGluYWxpdHldXTwvc3Bhbj4gbm9kZXMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvZGl2PgogICAgICA8L3BhcGVyLWl0ZW0tYm9keT4KICAgIDwvcGFwZXItaXRlbT4KICAgIDxpcm9uLWNvbGxhcHNlIG9wZW5lZD0ie3tfZXhwYW5kZWR9fSI+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfZXhwYW5kZWR9fSIgcmVzdGFtcD0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZXhwYW5kZWRJbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LWdyb3VwIGF0dHJpYnV0ZXMiPgogICAgICAgICAgICBBdHRyaWJ1dGVzICg8c3Bhbj5bW19hdHRyaWJ1dGVzLmxlbmd0aF1dPC9zcGFuPikKICAgICAgICAgICAgPGlyb24tbGlzdAogICAgICAgICAgICAgIGNsYXNzPSJzdWItbGlzdCIKICAgICAgICAgICAgICBpZD0iYXR0cmlidXRlc0xpc3QiCiAgICAgICAgICAgICAgaXRlbXM9IltbX2F0dHJpYnV0ZXNdXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dHItbGVmdCI+W1tpdGVtLmtleV1dPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dHItcmlnaHQiPltbaXRlbS52YWx1ZV1dPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfZGV2aWNlfX0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItbGlzdC1ncm91cCBkZXZpY2UiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dHItbGVmdCI+RGV2aWNlPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXR0ci1yaWdodCI+W1tfZGV2aWNlXV08L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LWdyb3VwIHByZWRlY2Vzc29ycyI+CiAgICAgICAgICAgIElucHV0cyAoPHNwYW4+W1tfdG90YWxQcmVkZWNlc3NvcnNdXTwvc3Bhbj4pCiAgICAgICAgICAgIDxpcm9uLWxpc3QKICAgICAgICAgICAgICBjbGFzcz0ic3ViLWxpc3QiCiAgICAgICAgICAgICAgaWQ9ImlucHV0c0xpc3QiCiAgICAgICAgICAgICAgaXRlbXM9IltbX3ByZWRlY2Vzc29ycy5yZWd1bGFyXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtbm9kZS1saXN0LWl0ZW0KICAgICAgICAgICAgICAgICAgY2xhc3M9Im5vbi1jb250cm9sLWxpc3QtaXRlbSIKICAgICAgICAgICAgICAgICAgY2FyZC1ub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgICAgICAgIGl0ZW0tbm9kZT0iW1tpdGVtLm5vZGVdXSIKICAgICAgICAgICAgICAgICAgZWRnZS1sYWJlbD0iW1tpdGVtLmVkZ2VMYWJlbF1dIgogICAgICAgICAgICAgICAgICBpdGVtLXJlbmRlci1pbmZvPSJbW2l0ZW0ucmVuZGVySW5mb11dIgogICAgICAgICAgICAgICAgICBuYW1lPSJbW2l0ZW0ubmFtZV1dIgogICAgICAgICAgICAgICAgICBpdGVtLXR5cGU9InByZWRlY2Vzc29ycyIKICAgICAgICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1tfdGVtcGxhdGVJbmRleF1dIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPC90Zi1ub2RlLWxpc3QtaXRlbT4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19wcmVkZWNlc3NvcnMuY29udHJvbC5sZW5ndGhdXSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbERlcHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbExpbmUiPgogICAgICAgICAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgICAgICAgICBpY29uPSJ7e19nZXRUb2dnbGVJY29uKF9vcGVuZWRDb250cm9sUHJlZCl9fSIKICAgICAgICAgICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZUNvbnRyb2xQcmVkIgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLXRvZ2dsZS1idXR0b24iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgICAgICAgICAgQ29udHJvbCBkZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJ7e19vcGVuZWRDb250cm9sUHJlZH19IiBuby1hbmltYXRpb24+CiAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgICAgIGlzPSJkb20taWYiCiAgICAgICAgICAgICAgICAgICAgaWY9Int7X29wZW5lZENvbnRyb2xQcmVkfX0iCiAgICAgICAgICAgICAgICAgICAgcmVzdGFtcD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxpcm9uLWxpc3QKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJzdWItbGlzdCIKICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zPSJbW19wcmVkZWNlc3NvcnMuY29udHJvbF1dIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRmLW5vZGUtbGlzdC1pdGVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FyZC1ub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS1ub2RlPSJbW2l0ZW0ubm9kZV1dIgogICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tcmVuZGVyLWluZm89IltbaXRlbS5yZW5kZXJJbmZvXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iW1tpdGVtLm5hbWVdXSIKICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLXR5cGU9InByZWRlY2Vzc29ycyIKICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LWdyb3VwIHN1Y2Nlc3NvcnMiPgogICAgICAgICAgICBPdXRwdXRzICg8c3Bhbj5bW190b3RhbFN1Y2Nlc3NvcnNdXTwvc3Bhbj4pCiAgICAgICAgICAgIDxpcm9uLWxpc3QKICAgICAgICAgICAgICBjbGFzcz0ic3ViLWxpc3QiCiAgICAgICAgICAgICAgaWQ9Im91dHB1dHNMaXN0IgogICAgICAgICAgICAgIGl0ZW1zPSJbW19zdWNjZXNzb3JzLnJlZ3VsYXJdXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1ub2RlLWxpc3QtaXRlbQogICAgICAgICAgICAgICAgICBjbGFzcz0ibm9uLWNvbnRyb2wtbGlzdC1pdGVtIgogICAgICAgICAgICAgICAgICBjYXJkLW5vZGU9IltbX25vZGVdXSIKICAgICAgICAgICAgICAgICAgaXRlbS1ub2RlPSJbW2l0ZW0ubm9kZV1dIgogICAgICAgICAgICAgICAgICBlZGdlLWxhYmVsPSJbW2l0ZW0uZWRnZUxhYmVsXV0iCiAgICAgICAgICAgICAgICAgIGl0ZW0tcmVuZGVyLWluZm89IltbaXRlbS5yZW5kZXJJbmZvXV0iCiAgICAgICAgICAgICAgICAgIG5hbWU9IltbaXRlbS5uYW1lXV0iCiAgICAgICAgICAgICAgICAgIGl0ZW0tdHlwZT0ic3VjY2Vzc29yIgogICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgIHRlbXBsYXRlLWluZGV4PSJbW190ZW1wbGF0ZUluZGV4XV0iCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvaXJvbi1saXN0PgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3N1Y2Nlc3NvcnMuY29udHJvbC5sZW5ndGhdXSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbERlcHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbExpbmUiPgogICAgICAgICAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgICAgICAgICBpY29uPSJ7e19nZXRUb2dnbGVJY29uKF9vcGVuZWRDb250cm9sU3VjYyl9fSIKICAgICAgICAgICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZUNvbnRyb2xTdWNjIgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLXRvZ2dsZS1idXR0b24iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgICAgICAgICAgQ29udHJvbCBkZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJ7e19vcGVuZWRDb250cm9sU3VjY319IiBuby1hbmltYXRpb24+CiAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgICAgIGlzPSJkb20taWYiCiAgICAgICAgICAgICAgICAgICAgaWY9Int7X29wZW5lZENvbnRyb2xTdWNjfX0iCiAgICAgICAgICAgICAgICAgICAgcmVzdGFtcD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxpcm9uLWxpc3QgY2xhc3M9InN1Yi1saXN0IiBpdGVtcz0iW1tfc3VjY2Vzc29ycy5jb250cm9sXV0iPgogICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgICAgICAgICA8dGYtbm9kZS1saXN0LWl0ZW0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJkLW5vZGU9IltbX25vZGVdXSIKICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLW5vZGU9IltbaXRlbS5ub2RlXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS1yZW5kZXItaW5mbz0iW1tpdGVtLnJlbmRlckluZm9dXSIKICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJbW2l0ZW0ubmFtZV1dIgogICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tdHlwZT0ic3VjY2Vzc29ycyIKICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJ7e19oYXNEaXNwbGF5YWJsZU5vZGVTdGF0c319Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtZ3JvdXAgbm9kZS1zdGF0cyI+CiAgICAgICAgICAgICAgTm9kZSBTdGF0cwogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfbm9kZVN0YXRzLnRvdGFsQnl0ZXN9fSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+TWVtb3J5PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICBbW19ub2RlU3RhdHNGb3JtYXR0ZWRCeXRlc11dCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfZ2V0VG90YWxNaWNyb3MoX25vZGVTdGF0cyl9fSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+Q29tcHV0ZSBUaW1lPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICBbW19ub2RlU3RhdHNGb3JtYXR0ZWRDb21wdXRlVGltZV1dCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfbm9kZVN0YXRzLm91dHB1dFNpemV9fSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+VGVuc29yIE91dHB1dCBTaXplczwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLWNlbGwiPgogICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICAgICAgICAgICAgICBpdGVtcz0ie3tfbm9kZVN0YXRzRm9ybWF0dGVkT3V0cHV0U2l6ZXN9fSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgW1tpdGVtXV0gPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2Z1bmN0aW9uVXNhZ2VzLmxlbmd0aF1dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtZ3JvdXAgcHJlZGVjZXNzb3JzIj4KICAgICAgICAgICAgICBVc2FnZXMgb2YgdGhlIEZ1bmN0aW9uICg8c3Bhbj5bW19mdW5jdGlvblVzYWdlcy5sZW5ndGhdXTwvc3Bhbj4pCiAgICAgICAgICAgICAgPGlyb24tbGlzdAogICAgICAgICAgICAgICAgY2xhc3M9InN1Yi1saXN0IgogICAgICAgICAgICAgICAgaWQ9ImZ1bmN0aW9uVXNhZ2VzTGlzdCIKICAgICAgICAgICAgICAgIGl0ZW1zPSJbW19mdW5jdGlvblVzYWdlc11dIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgPHRmLW5vZGUtbGlzdC1pdGVtCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im5vbi1jb250cm9sLWxpc3QtaXRlbSIKICAgICAgICAgICAgICAgICAgICBjYXJkLW5vZGU9IltbX25vZGVdXSIKICAgICAgICAgICAgICAgICAgICBpdGVtLW5vZGU9IltbaXRlbV1dIgogICAgICAgICAgICAgICAgICAgIG5hbWU9IltbaXRlbS5uYW1lXV0iCiAgICAgICAgICAgICAgICAgICAgaXRlbS10eXBlPSJmdW5jdGlvblVzYWdlcyIKICAgICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2lzTGlicmFyeUZ1bmN0aW9uKF9ub2RlKV1dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLWluY2x1ZGUtZ3JvdXAiPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24KICAgICAgICAgICAgICAgIHJhaXNlZAogICAgICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1pbmNsdWRlIgogICAgICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVJbmNsdWRlIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuPltbX2F1eEJ1dHRvblRleHRdXTwvc3Bhbj4KICAgICAgICAgICAgICA8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfaXNJblNlcmllcyhfbm9kZSl9fSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1pbmNsdWRlLWdyb3VwIj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICByYWlzZWQKICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtaW5jbHVkZSIKICAgICAgICAgICAgICAgIG9uLWNsaWNrPSJfdG9nZ2xlR3JvdXAiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHNwYW4+W1tfZ3JvdXBCdXR0b25UZXh0XV08L3NwYW4+CiAgICAgICAgICAgICAgPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvaXJvbi1jb2xsYXBzZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFlxdC5wcm90b3R5cGUsImdyYXBoTm9kZU5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRHF0KV0sWXF0LnByb3RvdHlwZSwiZ3JhcGhIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWXF0LnByb3RvdHlwZSwicmVuZGVySGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFlxdC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3QsY29tcHV0ZWQ6Il9nZXROb2RlKGdyYXBoTm9kZU5hbWUsIGdyYXBoSGllcmFyY2h5KSIsb2JzZXJ2ZXI6Il9yZXNldFN0YXRlIn0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxZcXQucHJvdG90eXBlLCJfbm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxjb21wdXRlZDoiX2dldE5vZGVTdGF0cyhncmFwaE5vZGVOYW1lLCBncmFwaEhpZXJhcmNoeSkiLG9ic2VydmVyOiJfcmVzZXRTdGF0ZSJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWXF0LnByb3RvdHlwZSwiX25vZGVTdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixvYnNlcnZlcjoiX25vZGVJbmNsdWRlU3RhdGVDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxZcXQucHJvdG90eXBlLCJub2RlSW5jbHVkZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFlxdC5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFlxdC5wcm90b3R5cGUsIl9vcGVuZWRDb250cm9sUHJlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFlxdC5wcm90b3R5cGUsIl9vcGVuZWRDb250cm9sU3VjYyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxZcXQucHJvdG90eXBlLCJfYXV4QnV0dG9uVGV4dCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxZcXQucHJvdG90eXBlLCJfZ3JvdXBCdXR0b25UZXh0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sWXF0LnByb3RvdHlwZSwiX3RlbXBsYXRlSW5kZXgiLHZvaWQgMCksdChbcygiX25vZGVTdGF0cyIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZcXQucHJvdG90eXBlLCJfaGFzRGlzcGxheWFibGVOb2RlU3RhdHMiLG51bGwpLHQoW3MoIl9ub2RlU3RhdHMiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZcXQucHJvdG90eXBlLCJfbm9kZVN0YXRzRm9ybWF0dGVkQnl0ZXMiLG51bGwpLHQoW3MoIl9ub2RlU3RhdHMiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZcXQucHJvdG90eXBlLCJfbm9kZVN0YXRzRm9ybWF0dGVkQ29tcHV0ZVRpbWUiLG51bGwpLHQoW3MoIl9ub2RlU3RhdHMiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9ub2RlU3RhdHNGb3JtYXR0ZWRPdXRwdXRTaXplcyIsbnVsbCksdChbcygiX25vZGUiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9hdHRyaWJ1dGVzIixudWxsKSx0KFtzKCJfbm9kZSIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9kZXZpY2UiLG51bGwpLHQoW3MoIl9ub2RlIiwiZ3JhcGhIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZcXQucHJvdG90eXBlLCJfc3VjY2Vzc29ycyIsbnVsbCksdChbcygiX25vZGUiLCJncmFwaEhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixPYmplY3QpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9wcmVkZWNlc3NvcnMiLG51bGwpLHQoW3MoIl9ub2RlIiwiZ3JhcGhIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9mdW5jdGlvblVzYWdlcyIsbnVsbCksdChbcygiX25vZGUiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl9zdWJub2RlcyIsbnVsbCksdChbcygiX3ByZWRlY2Vzc29ycyIpLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFlxdC5wcm90b3R5cGUsIl90b3RhbFByZWRlY2Vzc29ycyIsbnVsbCksdChbcygiX3N1Y2Nlc3NvcnMiKSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxZcXQucHJvdG90eXBlLCJfdG90YWxTdWNjZXNzb3JzIixudWxsKSx0KFthKCJncmFwaEhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sWXF0LnByb3RvdHlwZSwiX2dyYXBoSGllcmFyY2h5Q2hhbmdlZCIsbnVsbCksWXF0PXQoW2koInRmLW5vZGUtaW5mbyIpXSxZcXQpO2xldCBYcXQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe3JlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtbGlzdC1pdGVtLWNsaWNrIix0aGlzLl9ub2RlTGlzdEl0ZW1DbGlja2VkLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS1saXN0LWl0ZW0tbW91c2VvdmVyIix0aGlzLl9ub2RlTGlzdEl0ZW1Nb3VzZW92ZXIuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJub2RlLWxpc3QtaXRlbS1tb3VzZW91dCIsdGhpcy5fbm9kZUxpc3RJdGVtTW91c2VvdXQuYmluZCh0aGlzKSl9X25vZGVMaXN0SXRlbUNsaWNrZWQodCl7dGhpcy5zZWxlY3RlZE5vZGU9dC5kZXRhaWwubm9kZU5hbWV9X25vZGVMaXN0SXRlbU1vdXNlb3Zlcih0KXt0aGlzLmhpZ2hsaWdodGVkTm9kZT10LmRldGFpbC5ub2RlTmFtZX1fbm9kZUxpc3RJdGVtTW91c2VvdXQoKXt0aGlzLmhpZ2hsaWdodGVkTm9kZT1udWxsfV9oZWFsdGhQaWxsc0F2YWlsYWJsZSh0LGUpe3JldHVybiB0JiZlJiZPYmplY3Qua2V5cyhlKS5sZW5ndGg+MH1fZXF1YWxzKHQsZSl7cmV0dXJuIHQ9PT1lfX07WHF0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3IpOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXgtaGVpZ2h0OiA2NTBweDsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgaDIgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tzZWxlY3RlZE5vZGV9fSI+CiAgICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJjYXJkIj4KICAgICAgICA8dGYtbm9kZS1pbmZvCiAgICAgICAgICBncmFwaC1oaWVyYXJjaHk9IltbZ3JhcGhIaWVyYXJjaHldXSIKICAgICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgICBmbGF0LWdyYXBoPSJbW2dyYXBoXV0iCiAgICAgICAgICBncmFwaC1ub2RlLW5hbWU9Iltbc2VsZWN0ZWROb2RlXV0iCiAgICAgICAgICBub2RlLWluY2x1ZGU9Iltbc2VsZWN0ZWROb2RlSW5jbHVkZV1dIgogICAgICAgICAgaGlnaGxpZ2h0ZWQtbm9kZT0ie3toaWdobGlnaHRlZE5vZGV9fSIKICAgICAgICAgIGNvbG9yLWJ5PSJbW2NvbG9yQnldXSIKICAgICAgICA+CiAgICAgICAgPC90Zi1ub2RlLWluZm8+CiAgICAgIDwvcGFwZXItbWF0ZXJpYWw+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19lcXVhbHMoY29sb3JCeSwgJ29wX2NvbXBhdGliaWxpdHknKV1dIj4KICAgICAgPHRmLWdyYXBoLW9wLWNvbXBhdC1jYXJkCiAgICAgICAgZ3JhcGgtaGllcmFyY2h5PSJbW2dyYXBoSGllcmFyY2h5XV0iCiAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0iW1tyZW5kZXJIaWVyYXJjaHldXSIKICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgbm9kZS10aXRsZT0iW1tjb21wYXROb2RlVGl0bGVdXSIKICAgICAgPgogICAgICA8L3RmLWdyYXBoLW9wLWNvbXBhdC1jYXJkPgogICAgPC90ZW1wbGF0ZT4KICAgIDx0ZW1wbGF0ZQogICAgICBpcz0iZG9tLWlmIgogICAgICBpZj0iW1tfaGVhbHRoUGlsbHNBdmFpbGFibGUoZGVidWdnZXJEYXRhRW5hYmxlZCwgbm9kZU5hbWVzVG9IZWFsdGhQaWxscyldXSIKICAgID4KICAgICAgPHRmLWdyYXBoLWRlYnVnZ2VyLWRhdGEtY2FyZAogICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgZGVidWdnZXItbnVtZXJpYy1hbGVydHM9IltbZGVidWdnZXJOdW1lcmljQWxlcnRzXV0iCiAgICAgICAgbm9kZS1uYW1lcy10by1oZWFsdGgtcGlsbHM9Iltbbm9kZU5hbWVzVG9IZWFsdGhQaWxsc11dIgogICAgICAgIHNlbGVjdGVkLW5vZGU9Int7c2VsZWN0ZWROb2RlfX0iCiAgICAgICAgaGlnaGxpZ2h0ZWQtbm9kZT0ie3toaWdobGlnaHRlZE5vZGV9fSIKICAgICAgICBhcmUtaGVhbHRoLXBpbGxzLWxvYWRpbmc9IltbYXJlSGVhbHRoUGlsbHNMb2FkaW5nXV0iCiAgICAgICAgYWxsLXN0ZXBzLW1vZGUtZW5hYmxlZD0ie3thbGxTdGVwc01vZGVFbmFibGVkfX0iCiAgICAgICAgc3BlY2lmaWMtaGVhbHRoLXBpbGwtc3RlcD0ie3tzcGVjaWZpY0hlYWx0aFBpbGxTdGVwfX0iCiAgICAgICAgaGVhbHRoLXBpbGwtc3RlcC1pbmRleD0ie3toZWFsdGhQaWxsU3RlcEluZGV4fX0iCiAgICAgID4KICAgICAgPC90Zi1ncmFwaC1kZWJ1Z2dlci1kYXRhLWNhcmQ+CiAgICA8L3RlbXBsYXRlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWHF0LnByb3RvdHlwZSwidGl0bGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRHF0KV0sWHF0LnByb3RvdHlwZSwiZ3JhcGhIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIscUd0KV0sWHF0LnByb3RvdHlwZSwiZ3JhcGgiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIseVd0KV0sWHF0LnByb3RvdHlwZSwicmVuZGVySGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFhxdC5wcm90b3R5cGUsIm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLFhxdC5wcm90b3R5cGUsImhlYWx0aFBpbGxTdGVwSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWHF0LnByb3RvdHlwZSwiY29sb3JCeSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxYcXQucHJvdG90eXBlLCJjb21wYXROb2RlVGl0bGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFhxdC5wcm90b3R5cGUsInNlbGVjdGVkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWHF0LnByb3RvdHlwZSwiaGlnaGxpZ2h0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxYcXQucHJvdG90eXBlLCJzZWxlY3RlZE5vZGVJbmNsdWRlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sWHF0LnByb3RvdHlwZSwiZGVidWdnZXJEYXRhRW5hYmxlZCIsdm9pZCAwKSxYcXQ9dChbaSgidGYtZ3JhcGgtaW5mbyIpXSxYcXQpO2NsYXNzICRxdHtjb25zdHJ1Y3Rvcih0LGUsbixpLHIsbyl7dGhpcy5zdmc9dCx0aGlzLmxhYmVsUGFkZGluZz1vLHRoaXMuem9vbUc9ZSx0aGlzLm1haW5ab29tPW4sdGhpcy5tYXhXYW5kSD1yO2xldCBhPVN1KGkuc2hhZG93Um9vdCkscz1hLnNlbGVjdCgic3ZnIiksbD1zLnNlbGVjdCgicmVjdCIpO3RoaXMudmlld3BvaW50Q29vcmQ9e3g6MCx5OjB9O2xldCBjPXZoKCkuc3ViamVjdChPYmplY3QpLm9uKCJkcmFnIiwodD0+e3RoaXMudmlld3BvaW50Q29vcmQueD11dS54LHRoaXMudmlld3BvaW50Q29vcmQueT11dS55LHRoaXMudXBkYXRlVmlld3BvaW50KCl9KSk7bC5kYXR1bSh0aGlzLnZpZXdwb2ludENvb3JkKS5jYWxsKGMpLHMub24oImNsaWNrIiwoKCk9PntpZih1dS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtsZXQgdD1OdW1iZXIobC5hdHRyKCJ3aWR0aCIpKSxlPU51bWJlcihsLmF0dHIoImhlaWdodCIpKSxuPWFoKHMubm9kZSgpKTt0aGlzLnZpZXdwb2ludENvb3JkLng9blswXS10LzIsdGhpcy52aWV3cG9pbnRDb29yZC55PW5bMV0tZS8yLHRoaXMudXBkYXRlVmlld3BvaW50KCl9KSksdGhpcy52aWV3cG9pbnQ9bC5ub2RlKCksdGhpcy5taW5pbWFwU3ZnPXMubm9kZSgpLHRoaXMubWluaW1hcD1pLHRoaXMuY2FudmFzPWEuc2VsZWN0KCJjYW52YXMuZmlyc3QiKS5ub2RlKCksdGhpcy5jYW52YXNCdWZmZXI9YS5zZWxlY3QoImNhbnZhcy5zZWNvbmQiKS5ub2RlKCksdGhpcy5kb3dubG9hZENhbnZhcz1hLnNlbGVjdCgiY2FudmFzLmRvd25sb2FkIikubm9kZSgpLFN1KHRoaXMuZG93bmxvYWRDYW52YXMpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLHRoaXMudXBkYXRlKCl9dXBkYXRlVmlld3BvaW50KCl7U3UodGhpcy52aWV3cG9pbnQpLmF0dHIoIngiLHRoaXMudmlld3BvaW50Q29vcmQueCkuYXR0cigieSIsdGhpcy52aWV3cG9pbnRDb29yZC55KTtsZXQgdD0tdGhpcy52aWV3cG9pbnRDb29yZC54KnRoaXMuc2NhbGVNYWluL3RoaXMuc2NhbGVNaW5pbWFwLGU9LXRoaXMudmlld3BvaW50Q29vcmQueSp0aGlzLnNjYWxlTWFpbi90aGlzLnNjYWxlTWluaW1hcDtTdSh0aGlzLnN2ZykuY2FsbCh0aGlzLm1haW5ab29tLnRyYW5zZm9ybSx2Ti50cmFuc2xhdGUodCxlKS5zY2FsZSh0aGlzLnNjYWxlTWFpbikpfWdldEltYWdlQmxvYigpe3JldHVybiBuZXcgUHJvbWlzZSgodD0+e3RoaXMuZG93bmxvYWRDYW52YXMudG9CbG9iKChlPT57dChlKX0pLCJpbWFnZS9wbmciKX0pKX11cGRhdGUoKXtsZXQgdD1udWxsO3RyeXtpZih0PXRoaXMuem9vbUcuZ2V0QkJveCgpLDA9PT10LndpZHRoKXJldHVybn1jYXRjaCh0KXtyZXR1cm59bGV0IGU9U3UodGhpcy5zdmcpLG49IiI7Y29uc3QgaT10aGlzLnN2ZyxyPShpLmdldFJvb3ROb2RlP2kuZ2V0Um9vdE5vZGUoKTp0aGlzLnN2Zy5wYXJlbnROb2RlKS5zdHlsZVNoZWV0cztmb3IobGV0IHQ9MDt0PHIubGVuZ3RoO3QrKyl0cnl7bGV0IGU9clt0XS5jc3NSdWxlc3x8clt0XS5ydWxlcztpZihudWxsPT1lKWNvbnRpbnVlO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW4rPWVbdF0uY3NzVGV4dC5yZXBsYWNlKC8gP3RmLVtcdy1dKyA/L2csIiIpKyJcbiJ9Y2F0Y2godCl7aWYoIlNlY3VyaXR5RXJyb3IiIT09dC5uYW1lKXRocm93IHR9bGV0IG89ZS5hcHBlbmQoInN0eWxlIik7by50ZXh0KG4pO2xldCBhPVN1KHRoaXMuem9vbUcpLHM9YS5hdHRyKCJ0cmFuc2Zvcm0iKTthLmF0dHIoInRyYW5zZm9ybSIsbnVsbCksdC5oZWlnaHQrPXQueSx0LndpZHRoKz10LngsdC5oZWlnaHQrPTIqdGhpcy5sYWJlbFBhZGRpbmcsdC53aWR0aCs9Mip0aGlzLmxhYmVsUGFkZGluZyxlLmF0dHIoIndpZHRoIix0LndpZHRoKS5hdHRyKCJoZWlnaHQiLHQuaGVpZ2h0KSx0aGlzLnNjYWxlTWluaW1hcD10aGlzLm1heFdhbmRIL01hdGgubWF4KHQud2lkdGgsdC5oZWlnaHQpLHRoaXMubWluaW1hcFNpemU9e3dpZHRoOnQud2lkdGgqdGhpcy5zY2FsZU1pbmltYXAsaGVpZ2h0OnQuaGVpZ2h0KnRoaXMuc2NhbGVNaW5pbWFwfSxTdSh0aGlzLm1pbmltYXBTdmcpLmF0dHIodGhpcy5taW5pbWFwU2l6ZSksU3UodGhpcy5jYW52YXNCdWZmZXIpLmF0dHIodGhpcy5taW5pbWFwU2l6ZSk7Y29uc3QgbD1TdSh0aGlzLmRvd25sb2FkQ2FudmFzKTtsLnN0eWxlKCJ3aWR0aCIsdC53aWR0aCksbC5zdHlsZSgiaGVpZ2h0Iix0LmhlaWdodCksbC5hdHRyKCJ3aWR0aCIsMyp0LndpZHRoKSxsLmF0dHIoImhlaWdodCIsMyp0LmhlaWdodCksbnVsbCE9dGhpcy50cmFuc2xhdGUmJm51bGwhPXRoaXMuem9vbSYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy56b29tKCkpKTtsZXQgYz0obmV3IFhNTFNlcmlhbGl6ZXIpLnNlcmlhbGl6ZVRvU3RyaW5nKHRoaXMuc3ZnKTtvLnJlbW92ZSgpLGUuYXR0cigid2lkdGgiLG51bGwpLmF0dHIoImhlaWdodCIsbnVsbCksYS5hdHRyKCJ0cmFuc2Zvcm0iLHMpO2xldCB1PW5ldyBJbWFnZTt1Lm9ubG9hZD0oKT0+e2xldCB0PXRoaXMuY2FudmFzQnVmZmVyLmdldENvbnRleHQoIjJkIik7dC5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzQnVmZmVyLndpZHRoLHRoaXMuY2FudmFzQnVmZmVyLmhlaWdodCksdC5kcmF3SW1hZ2UodSwwLDAsdGhpcy5taW5pbWFwU2l6ZS53aWR0aCx0aGlzLm1pbmltYXBTaXplLmhlaWdodCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e1N1KHRoaXMuY2FudmFzQnVmZmVyKS5zdHlsZSgiZGlzcGxheSIsbnVsbCksU3UodGhpcy5jYW52YXMpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLFt0aGlzLmNhbnZhcyx0aGlzLmNhbnZhc0J1ZmZlcl09W3RoaXMuY2FudmFzQnVmZmVyLHRoaXMuY2FudmFzXX0pKTtsZXQgZT10aGlzLmRvd25sb2FkQ2FudmFzLmdldENvbnRleHQoIjJkIik7ZS5jbGVhclJlY3QoMCwwLHRoaXMuZG93bmxvYWRDYW52YXMud2lkdGgsdGhpcy5kb3dubG9hZENhbnZhcy5oZWlnaHQpLGUuZHJhd0ltYWdlKHUsMCwwLHRoaXMuZG93bmxvYWRDYW52YXMud2lkdGgsdGhpcy5kb3dubG9hZENhbnZhcy5oZWlnaHQpfSx1Lm9uZXJyb3I9KCk9PntsZXQgdD1uZXcgQmxvYihbY10se3R5cGU6ImltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCJ9KTt1LnNyYz1VUkwuY3JlYXRlT2JqZWN0VVJMKHQpfSx1LnNyYz0iZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsIitlbmNvZGVVUklDb21wb25lbnQoYyl9em9vbSh0KXtpZihudWxsPT10aGlzLnNjYWxlTWluaW1hcClyZXR1cm47dCYmKHRoaXMudHJhbnNsYXRlPVt0LngsdC55XSx0aGlzLnNjYWxlTWFpbj10LmspO2xldCBlPXRoaXMuc3ZnLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49U3UodGhpcy52aWV3cG9pbnQpO3RoaXMudmlld3BvaW50Q29vcmQueD0tdGhpcy50cmFuc2xhdGVbMF0qdGhpcy5zY2FsZU1pbmltYXAvdGhpcy5zY2FsZU1haW4sdGhpcy52aWV3cG9pbnRDb29yZC55PS10aGlzLnRyYW5zbGF0ZVsxXSp0aGlzLnNjYWxlTWluaW1hcC90aGlzLnNjYWxlTWFpbjtsZXQgaT1lLndpZHRoKnRoaXMuc2NhbGVNaW5pbWFwL3RoaXMuc2NhbGVNYWluLHI9ZS5oZWlnaHQqdGhpcy5zY2FsZU1pbmltYXAvdGhpcy5zY2FsZU1haW47bi5hdHRyKCJ4Iix0aGlzLnZpZXdwb2ludENvb3JkLngpLmF0dHIoInkiLHRoaXMudmlld3BvaW50Q29vcmQueSkuYXR0cigid2lkdGgiLGkpLmF0dHIoImhlaWdodCIscik7bGV0IG89dGhpcy5taW5pbWFwU2l6ZS53aWR0aCxhPXRoaXMubWluaW1hcFNpemUuaGVpZ2h0LHM9dGhpcy52aWV3cG9pbnRDb29yZC54LGw9dGhpcy52aWV3cG9pbnRDb29yZC55OyhNYXRoLm1pbihNYXRoLm1heCgwLHMraSksbyktTWF0aC5taW4oTWF0aC5tYXgoMCxzKSxvKSkqKE1hdGgubWluKE1hdGgubWF4KDAsbCtyKSxhKS1NYXRoLm1pbihNYXRoLm1heCgwLGwpLGEpKS8obyphKTwuOD90aGlzLm1pbmltYXAuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6dGhpcy5taW5pbWFwLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfX1sZXQgS3F0PWNsYXNzIGV4dGVuZHMgeWV7aW5pdCh0LGUsbixpLHIpe3JldHVybiBuZXcgJHF0KHQsZSxuLHRoaXMsaSxyKX19O0txdC50ZW1wbGF0ZT1fZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXI7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KC5oaWRkZW4pIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICBjYW52YXMgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7CiAgICAgIH0KCiAgICAgIHJlY3QgewogICAgICAgIGZpbGw6IHdoaXRlOwogICAgICAgIHN0cm9rZTogIzExMTExMTsKICAgICAgICBzdHJva2Utd2lkdGg6IDFweDsKICAgICAgICBmaWxsLW9wYWNpdHk6IDA7CiAgICAgICAgZmlsdGVyOiB1cmwoI21pbmltYXBEcm9wU2hhZG93KTsKICAgICAgICBjdXJzb3I6IG1vdmU7CiAgICAgIH0KCiAgICAgIHN2ZyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHN2Zz4KICAgICAgPGRlZnM+CiAgICAgICAgPGZpbHRlcgogICAgICAgICAgaWQ9Im1pbmltYXBEcm9wU2hhZG93IgogICAgICAgICAgeD0iLTIwJSIKICAgICAgICAgIHk9Ii0yMCUiCiAgICAgICAgICB3aWR0aD0iMTUwJSIKICAgICAgICAgIGhlaWdodD0iMTUwJSIKICAgICAgICA+CiAgICAgICAgICA8ZmVPZmZzZXQgcmVzdWx0PSJvZmZPdXQiIGluPSJTb3VyY2VHcmFwaGljIiBkeD0iMSIgZHk9IjEiPjwvZmVPZmZzZXQ+CiAgICAgICAgICA8ZmVDb2xvck1hdHJpeAogICAgICAgICAgICByZXN1bHQ9Im1hdHJpeE91dCIKICAgICAgICAgICAgaW49Im9mZk91dCIKICAgICAgICAgICAgdHlwZT0ibWF0cml4IgogICAgICAgICAgICB2YWx1ZXM9IjAuMSAwIDAgMCAwIDAgMC4xIDAgMCAwIDAgMCAwLjEgMCAwIDAgMCAwIDAuNSAwIgogICAgICAgICAgPjwvZmVDb2xvck1hdHJpeD4KICAgICAgICAgIDxmZUdhdXNzaWFuQmx1cgogICAgICAgICAgICByZXN1bHQ9ImJsdXJPdXQiCiAgICAgICAgICAgIGluPSJtYXRyaXhPdXQiCiAgICAgICAgICAgIHN0ZERldmlhdGlvbj0iMiIKICAgICAgICAgID48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgPGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iYmx1ck91dCIgbW9kZT0ibm9ybWFsIj48L2ZlQmxlbmQ+CiAgICAgICAgPC9maWx0ZXI+CiAgICAgIDwvZGVmcz4KICAgICAgPHJlY3Q+PC9yZWN0PgogICAgPC9zdmc+CiAgICA8Y2FudmFzIGNsYXNzPSJmaXJzdCI+PC9jYW52YXM+CiAgICA8IS0tIEFkZGl0aW9uYWwgY2FudmFzIHRvIHVzZSBhcyBidWZmZXIgdG8gYXZvaWQgZmxpY2tlcmluZyBiZXR3ZWVuIHVwZGF0ZXMgLS0+CiAgICA8Y2FudmFzIGNsYXNzPSJzZWNvbmQiPjwvY2FudmFzPgogICAgPGNhbnZhcyBjbGFzcz0iZG93bmxvYWQiPjwvY2FudmFzPgogIGAsS3F0PXQoW2koInRmLWdyYXBoLW1pbmltYXAiKV0sS3F0KTtjb25zdCBacXQ9X2VgCiAgPHN0eWxlPgogICAgOmhvc3QoLmRhcmstbW9kZSkgewogICAgICBmaWx0ZXI6IGludmVydCgxKTsKICAgIH0KCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KCiAgICAjc3ZnIHsKICAgICAgZmxleDogMTsKICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KCiAgICAjaGlkZGVuIHsKICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICB0b3A6IDBweDsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgfQoKICAgIHRleHQgewogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgIH0KCiAgICAvKiAtLS0gTm9kZSBhbmQgYW5ub3RhdGlvbi1ub2RlIGZvciBNZXRhbm9kZSAtLS0gKi8KCiAgICAubWV0YSA+IC5ub2Rlc2hhcGUgPiByZWN0LAogICAgLm1ldGEgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZmlsbDogaHNsKDAsIDAlLCA3MCUpOwogICAgfQogICAgLm5vZGUubWV0YS5oaWdobGlnaHRlZCA+IC5ub2Rlc2hhcGUgPiByZWN0LAogICAgLm5vZGUubWV0YS5oaWdobGlnaHRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQogICAgLmFubm90YXRpb24ubWV0YS5oaWdobGlnaHRlZCA+IC5ub2Rlc2hhcGUgPiByZWN0LAogICAgLmFubm90YXRpb24ubWV0YS5oaWdobGlnaHRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgc3Ryb2tlLXdpZHRoOiAxOwogICAgfQogICAgLm1ldGEuc2VsZWN0ZWQgPiAubm9kZXNoYXBlID4gcmVjdCwKICAgIC5tZXRhLnNlbGVjdGVkID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQogICAgLm5vZGUubWV0YS5zZWxlY3RlZC5leHBhbmRlZCA+IC5ub2Rlc2hhcGUgPiByZWN0LAogICAgLm5vZGUubWV0YS5zZWxlY3RlZC5leHBhbmRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgc3Ryb2tlOiByZWQ7CiAgICAgIHN0cm9rZS13aWR0aDogMzsKICAgIH0KICAgIC5hbm5vdGF0aW9uLm1ldGEuc2VsZWN0ZWQgPiAubm9kZXNoYXBlID4gcmVjdCwKICAgIC5hbm5vdGF0aW9uLm1ldGEuc2VsZWN0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIHN0cm9rZTogcmVkOwogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CiAgICAubm9kZS5tZXRhLnNlbGVjdGVkLmV4cGFuZGVkLmhpZ2hsaWdodGVkID4gLm5vZGVzaGFwZSA+IHJlY3QsCiAgICAubm9kZS5tZXRhLnNlbGVjdGVkLmV4cGFuZGVkLmhpZ2hsaWdodGVkID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiA0OwogICAgfQoKICAgIC5mYWRlZCwKICAgIC5mYWRlZCByZWN0LAogICAgLmZhZGVkIGVsbGlwc2UsCiAgICAuZmFkZWQgcGF0aCwKICAgIC5mYWRlZCB1c2UsCiAgICAjcmVjdEhhdGNoIGxpbmUsCiAgICAjZWxsaXBzZUhhdGNoIGxpbmUgewogICAgICBjb2xvcjogI2UwZDRiMyAhaW1wb3J0YW50OwogICAgICBmaWxsOiB3aGl0ZTsKICAgICAgc3Ryb2tlOiAjZTBkNGIzICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZhZGVkIHBhdGggewogICAgICBzdHJva2Utd2lkdGg6IDFweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mYWRlZCByZWN0IHsKICAgICAgZmlsbDogdXJsKCNyZWN0SGF0Y2gpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZhZGVkIGVsbGlwc2UsCiAgICAuZmFkZWQgdXNlIHsKICAgICAgZmlsbDogdXJsKCNlbGxpcHNlSGF0Y2gpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZhZGVkIHRleHQgewogICAgICBvcGFjaXR5OiAwOwogICAgfQoKICAgIC8qIFJ1bGVzIHVzZWQgZm9yIGlucHV0LXRyYWNpbmcuICovCiAgICAuaW5wdXQtaGlnaGxpZ2h0ID4gKiA+IHJlY3QsCiAgICAuaW5wdXQtaGlnaGxpZ2h0ID4gKiA+IGVsbGlwc2UsCiAgICAuaW5wdXQtaGlnaGxpZ2h0ID4gKiA+IHVzZSB7CiAgICAgIGZpbGw6IHdoaXRlOwogICAgICBzdHJva2U6ICNmZjk4MDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAvKiAgLSBGYWRlZCBub24taW5wdXQgc3R5bGluZyAqLwogICAgLm5vbi1pbnB1dCA+ICogPiByZWN0LAoubm9uLWlucHV0ID4gKiA+IGVsbGlwc2UsCi5ub24taW5wdXQgPiAqID4gdXNlLAovKiBGb3IgQ29uc3Qgbm9kZXMuICovCi5ub24taW5wdXQgPiAqID4gLmNvbnN0YW50Om5vdChbY2xhc3MqPSJpbnB1dC1oaWdobGlnaHQiXSkgPgogIC5hbm5vdGF0aW9uLW5vZGUgPiBlbGxpcHNlLAovKiBGb3Igc3R5bGluZyBvZiBhbm5vdGF0aW9uIG5vZGVzIG9mIG5vbi1pbnB1dCBub2Rlcy4gKi8KLm5vbi1pbnB1dCA+IGcgPiAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgc3Ryb2tlOiAjZTBkNGIzICFpbXBvcnRhbnQ7CiAgICAgIHN0cm9rZS13aWR0aDogaW5oZXJpdDsKICAgICAgc3Ryb2tlLWRhc2hhcnJheTogaW5oZXJpdDsKICAgIH0KCiAgICAubm9uLWlucHV0IHBhdGggewogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICB9CgogICAgLm5vbi1pbnB1dCA+IC5ub2Rlc2hhcGUgPiByZWN0LAoubm9uLWlucHV0ID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QsCi8qIEZvciBzdHlsaW5nIG9mIGFubm90YXRpb24gbm9kZXMgb2Ygbm9uLWlucHV0IG5vZGVzLiAqLwoubm9uLWlucHV0ID4gZyA+IC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBmaWxsOiB1cmwoI3JlY3RIYXRjaCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAubm9uLWlucHV0IGVsbGlwc2UsCiAgICAubm9uLWlucHV0IHVzZSB7CiAgICAgIGZpbGw6IHVybCgjZWxsaXBzZUhhdGNoKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ub24taW5wdXQgPiB0ZXh0IHsKICAgICAgb3BhY2l0eTogMDsKICAgIH0KCiAgICAubm9uLWlucHV0IC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tZWRnZSB7CiAgICAgIG1hcmtlci1lbmQ6IHVybCgjYW5ub3RhdGlvbi1hcnJvd2hlYWQtZmFkZWQpOwogICAgfQoKICAgIC5ub24taW5wdXQgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1lZGdlLnJlZmxpbmUgewogICAgICBtYXJrZXItc3RhcnQ6IHVybCgjcmVmLWFubm90YXRpb24tYXJyb3doZWFkLWZhZGVkKTsKICAgIH0KCiAgICAvKiBJbnB1dCBlZGdlcy4gKi8KICAgIC5pbnB1dC1lZGdlLWhpZ2hsaWdodCA+IHRleHQgewogICAgICBmaWxsOiBibGFjayAhaW1wb3J0YW50OwogICAgfQogICAgLmlucHV0LWhpZ2hsaWdodCA+IC5pbi1hbm5vdGF0aW9ucyA+IC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tZWRnZSwKICAgIC5pbnB1dC1oaWdobGlnaHQtc2VsZWN0ZWQKICAgICAgPiAuaW4tYW5ub3RhdGlvbnMKICAgICAgPiAuYW5ub3RhdGlvbgogICAgICA+IC5hbm5vdGF0aW9uLWVkZ2UgewogICAgICBzdHJva2U6ICM5OTkgIWltcG9ydGFudDsKICAgIH0KCiAgICAvKiBOb24taW5wdXQgZWRnZXMuICovCiAgICAubm9uLWlucHV0LWVkZ2UtaGlnaGxpZ2h0LAoubm9uLWlucHV0ID4gZyA+IC5hbm5vdGF0aW9uID4gcGF0aCwKLyogQW5ub3RhdGlvbiBzdHlsZXMgKGxhYmVsIGFuZCBlZGdlcyByZXNwZWN0aXZlbHkpLiAqLwoubm9uLWlucHV0ID4gZyA+Ci5hbm5vdGF0aW9uOm5vdCguaW5wdXQtaGlnaGxpZ2h0KTpub3QoLmlucHV0LWhpZ2hsaWdodC1zZWxlY3RlZCkgPgouYW5ub3RhdGlvbi1sYWJlbAovKi5hbm5vdGF0aW9uLWVkZ2UqLyB7CiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIH0KCiAgICAvKiAtLS0gT3AgTm9kZSAtLS0gKi8KCiAgICAub3AgPiAubm9kZXNoYXBlID4gLm5vZGVjb2xvcnRhcmdldCwKICAgIC5vcCA+IC5hbm5vdGF0aW9uLW5vZGUgPiAubm9kZWNvbG9ydGFyZ2V0IHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBmaWxsOiAjZmZmOwogICAgICBzdHJva2U6ICNjY2M7CiAgICB9CgogICAgLm9wLnNlbGVjdGVkID4gLm5vZGVzaGFwZSA+IC5ub2RlY29sb3J0YXJnZXQsCiAgICAub3Auc2VsZWN0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gLm5vZGVjb2xvcnRhcmdldCB7CiAgICAgIHN0cm9rZTogcmVkOwogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CgogICAgLm9wLmhpZ2hsaWdodGVkID4gLm5vZGVzaGFwZSA+IC5ub2RlY29sb3J0YXJnZXQsCiAgICAub3AuaGlnaGxpZ2h0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gLm5vZGVjb2xvcnRhcmdldCB7CiAgICAgIHN0cm9rZS13aWR0aDogMjsKICAgIH0KCiAgICAvKiAtLS0gU2VyaWVzIE5vZGUgLS0tICovCgogICAgLyogQnkgZGVmYXVsdCwgZG9uJ3Qgc2hvdyB0aGUgc2VyaWVzIGJhY2tncm91bmQgPHJlY3Q+LiAqLwogICAgLnNlcmllcyA+IC5ub2Rlc2hhcGUgPiByZWN0IHsKICAgICAgZmlsbDogaHNsKDAsIDAlLCA3MCUpOwogICAgICBmaWxsLW9wYWNpdHk6IDA7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDUsIDU7CiAgICAgIHN0cm9rZS1vcGFjaXR5OiAwOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLyogT25jZSBleHBhbmRlZCwgc2hvdyB0aGUgc2VyaWVzIGJhY2tncm91bmQgPHJlY3Q+IGFuZCBoaWRlIHRoZSA8dXNlPi4gKi8KICAgIC5zZXJpZXMuZXhwYW5kZWQgPiAubm9kZXNoYXBlID4gcmVjdCB7CiAgICAgIGZpbGwtb3BhY2l0eTogMC4xNTsKICAgICAgc3Ryb2tlOiBoc2woMCwgMCUsIDcwJSk7CiAgICAgIHN0cm9rZS1vcGFjaXR5OiAxOwogICAgfQogICAgLnNlcmllcy5leHBhbmRlZCA+IC5ub2Rlc2hhcGUgPiB1c2UgewogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICB9CgogICAgLyoqCiAqIFRPRE86IFNpbXBsaWZ5IHRoaXMgYnkgYXBwbHlpbmcgYSBzdGFibGUgY2xhc3MgbmFtZSB0byBhbGwgPGc+CiAqIGVsZW1lbnRzIHRoYXQgY3VycmVudGx5IGhhdmUgZWl0aGVyIHRoZSBub2Rlc2hhcGUgb3IgYW5ub3RhdGlvbi1ub2RlIGNsYXNzZXMuCiAqLwogICAgLnNlcmllcyA+IC5ub2Rlc2hhcGUgPiB1c2UsCiAgICAuc2VyaWVzID4gLmFubm90YXRpb24tbm9kZSA+IHVzZSB7CiAgICAgIHN0cm9rZTogI2NjYzsKICAgIH0KICAgIC5zZXJpZXMuaGlnaGxpZ2h0ZWQgPiAubm9kZXNoYXBlID4gdXNlLAogICAgLnNlcmllcy5oaWdobGlnaHRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiB1c2UgewogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CiAgICAuc2VyaWVzLnNlbGVjdGVkID4gLm5vZGVzaGFwZSA+IHVzZSwKICAgIC5zZXJpZXMuc2VsZWN0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gdXNlIHsKICAgICAgc3Ryb2tlOiByZWQ7CiAgICAgIHN0cm9rZS13aWR0aDogMjsKICAgIH0KCiAgICAuc2VyaWVzLnNlbGVjdGVkID4gLm5vZGVzaGFwZSA+IHJlY3QgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQoKICAgIC5hbm5vdGF0aW9uLnNlcmllcy5zZWxlY3RlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiB1c2UgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQoKICAgIC8qIC0tLSBCcmlkZ2UgTm9kZSAtLS0gKi8KICAgIC5icmlkZ2UgPiAubm9kZXNoYXBlID4gcmVjdCB7CiAgICAgIHN0cm9rZTogI2YwZjsKICAgICAgb3BhY2l0eTogMC4yOwogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC8qIC0tLSBTdHJ1Y3R1cmFsIEVsZW1lbnRzIC0tLSAqLwogICAgLmVkZ2UgPiBwYXRoLmVkZ2VsaW5lLnN0cnVjdHVyYWwgewogICAgICBzdHJva2U6ICNmMGY7CiAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAvKiBSZWZlcmVuY2UgRWRnZSAqLwogICAgLmVkZ2UgPiBwYXRoLmVkZ2VsaW5lLnJlZmVyZW5jZWVkZ2UgewogICAgICBzdHJva2U6ICNmZmI3NGQ7CiAgICAgIG9wYWNpdHk6IDE7CiAgICB9CgogICAgLyogLS0tIFNlcmllcyBOb2RlcyAtLS0gKi8KCiAgICAvKiBIaWRlIHRoZSByZWN0IGZvciBhIHNlcmllcycgYW5ub3RhdGlvbi4gKi8KICAgIC5zZXJpZXMgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLyogLS0tIE5vZGUgbGFiZWwgLS0tICovCgogICAgLm5vZGUgewogICAgICAvKiBQcm92aWRlIGEgaGludCB0byBicm93c2VycyB0byBhdm9pZCB1c2luZyB0aGVpciBzdGF0aWMgcmFzdGVyaXphdGlvbgogICAgICBhdCBpbml0aWFsIHNjYWxlLCB3aGljaCBsb29rcyB2ZXJ5IHBpeGVsYXRlZCBvbiBDaHJvbWl1bSB3aGVuIHpvb21lZCBpbi4KICAgICAgTm90ZSB0aGF0IHdlIGludGVudGlvbmFsbHkgZG8gKm5vdCogdXNlICd3aWxsLWNoYW5nZTogdHJhbnNmb3JtJyBhbmQKICAgICAgJ3RyYW5zbGF0ZVooMCkgaGVyZSwgd2hpY2ggaW50cm9kdWNlIGJsdXJyaW5lc3Mgb24gRmlyZWZveC4KICAgICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2lzc3Vlcy80NzQ0ICovCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigxcHgpOwogICAgfQoKICAgIC5ub2RlID4gdGV4dC5ub2RlbGFiZWwgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGZpbGw6ICM0NDQ7CiAgICB9CgogICAgLm1ldGEuZXhwYW5kZWQgPiB0ZXh0Lm5vZGVsYWJlbCB7CiAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgfQoKICAgIC5zZXJpZXMgPiB0ZXh0Lm5vZGVsYWJlbCB7CiAgICAgIGZvbnQtc2l6ZTogOHB4OwogICAgfQoKICAgIC5vcCA+IHRleHQubm9kZWxhYmVsIHsKICAgICAgZm9udC1zaXplOiA2cHg7CiAgICB9CgogICAgLmJyaWRnZSA+IHRleHQubm9kZWxhYmVsIHsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAubm9kZS5tZXRhLmV4cGFuZGVkID4gdGV4dC5ub2RlbGFiZWwgewogICAgICBjdXJzb3I6IG5vcm1hbDsKICAgIH0KCiAgICAuYW5ub3RhdGlvbi5tZXRhLmhpZ2hsaWdodGVkID4gdGV4dC5hbm5vdGF0aW9uLWxhYmVsIHsKICAgICAgZmlsbDogIzUwYTNmNzsKICAgIH0KCiAgICAuYW5ub3RhdGlvbi5tZXRhLnNlbGVjdGVkID4gdGV4dC5hbm5vdGF0aW9uLWxhYmVsIHsKICAgICAgZmlsbDogIzQyODVmNDsKICAgIH0KCiAgICAvKiAtLS0gQW5ub3RhdGlvbiAtLS0gKi8KCiAgICAvKiBvbmx5IGFwcGxpZWQgZm9yIGFubm90YXRpb25zIHRoYXQgYXJlIG5vdCBzdW1tYXJ5IG9yIGNvbnN0YW50LgooLnN1bW1hcnksIC5jb25zdGFudCBnZXRzIG92ZXJyaWRkZW4gYmVsb3cpICovCiAgICAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLW5vZGUgPiAqIHsKICAgICAgc3Ryb2tlLXdpZHRoOiAwLjU7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDE7CiAgICB9CgogICAgLmFubm90YXRpb24uc3VtbWFyeSA+IC5hbm5vdGF0aW9uLW5vZGUgPiAqLAogICAgLmFubm90YXRpb24uY29uc3RhbnQgPiAuYW5ub3RhdGlvbi1ub2RlID4gKiB7CiAgICAgIHN0cm9rZS13aWR0aDogMTsKICAgICAgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsKICAgIH0KCiAgICAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWVkZ2UgewogICAgICBmaWxsOiBub25lOwogICAgICBzdHJva2U6ICNhYWE7CiAgICAgIHN0cm9rZS13aWR0aDogMC41OwogICAgICBtYXJrZXItZW5kOiB1cmwoI2Fubm90YXRpb24tYXJyb3doZWFkKTsKICAgIH0KCiAgICAuZmFkZWQgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1lZGdlIHsKICAgICAgbWFya2VyLWVuZDogdXJsKCNhbm5vdGF0aW9uLWFycm93aGVhZC1mYWRlZCk7CiAgICB9CgogICAgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1lZGdlLnJlZmxpbmUgewogICAgICBtYXJrZXItc3RhcnQ6IHVybCgjcmVmLWFubm90YXRpb24tYXJyb3doZWFkKTsKICAgIH0KCiAgICAuZmFkZWQgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1lZGdlLnJlZmxpbmUgewogICAgICBtYXJrZXItc3RhcnQ6IHVybCgjcmVmLWFubm90YXRpb24tYXJyb3doZWFkLWZhZGVkKTsKICAgIH0KCiAgICAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWNvbnRyb2wtZWRnZSB7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDE7CiAgICB9CgogICAgI2Fubm90YXRpb24tYXJyb3doZWFkIHsKICAgICAgZmlsbDogI2FhYTsKICAgIH0KCiAgICAjYW5ub3RhdGlvbi1hcnJvd2hlYWQtZmFkZWQgewogICAgICBmaWxsOiAjZTBkNGIzOwogICAgfQoKICAgICNyZWYtYW5ub3RhdGlvbi1hcnJvd2hlYWQgewogICAgICBmaWxsOiAjYWFhOwogICAgfQoKICAgICNyZWYtYW5ub3RhdGlvbi1hcnJvd2hlYWQtZmFkZWQgewogICAgICBmaWxsOiAjZTBkNGIzOwogICAgfQoKICAgIC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tbGFiZWwgewogICAgICBmb250LXNpemU6IDVweDsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQogICAgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1sYWJlbC5hbm5vdGF0aW9uLWVsbGlwc2lzIHsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgfQoKICAgIC8qIEhpZGUgYW5ub3RhdGlvbnMgb24gZXhwYW5kZWQgbWV0YSBub2RlcyBzaW5jZSB0aGV5J3JlIHJlZHVuZGFudC4gKi8KICAgIC5leHBhbmRlZCA+IC5pbi1hbm5vdGF0aW9ucywKICAgIC5leHBhbmRlZCA+IC5vdXQtYW5ub3RhdGlvbnMgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC8qIC0tLSBBbm5vdGF0aW9uOiBDb25zdGFudCAtLS0gKi8KCiAgICAuY29uc3RhbnQgPiAuYW5ub3RhdGlvbi1ub2RlID4gZWxsaXBzZSB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZmlsbDogd2hpdGU7CiAgICAgIHN0cm9rZTogIzg0ODQ4NDsKICAgIH0KCiAgICAuY29uc3RhbnQuc2VsZWN0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gZWxsaXBzZSB7CiAgICAgIGZpbGw6IHdoaXRlOwogICAgICBzdHJva2U6IHJlZDsKICAgIH0KCiAgICAuY29uc3RhbnQuaGlnaGxpZ2h0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gZWxsaXBzZSB7CiAgICAgIHN0cm9rZS13aWR0aDogMS41OwogICAgfQoKICAgIC8qIC0tLSBBbm5vdGF0aW9uOiBTdW1tYXJ5IC0tLSAqLwoKICAgIC5zdW1tYXJ5ID4gLmFubm90YXRpb24tbm9kZSA+IGVsbGlwc2UgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGZpbGw6ICNkYjQ0Mzc7CiAgICAgIHN0cm9rZTogI2RiNDQzNzsKICAgIH0KCiAgICAuc3VtbWFyeS5zZWxlY3RlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiBlbGxpcHNlIHsKICAgICAgZmlsbDogI2E1MjcxNDsKICAgICAgc3Ryb2tlOiAjYTUyNzE0OwogICAgfQoKICAgIC5zdW1tYXJ5LmhpZ2hsaWdodGVkID4gLmFubm90YXRpb24tbm9kZSA+IGVsbGlwc2UgewogICAgICBzdHJva2Utd2lkdGg6IDEuNTsKICAgIH0KCiAgICAvKiAtLS0gRWRnZSAtLS0gKi8KCiAgICAuZWRnZSA+IHBhdGguZWRnZWxpbmUgewogICAgICBmaWxsOiBub25lOwogICAgICBzdHJva2U6ICNiYmI7CiAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAwLjc1OwogICAgfQoKICAgIC5lZGdlIC5zZWxlY3RhYmxlZWRnZSB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KCiAgICAuc2VsZWN0ZWRlZGdlID4gcGF0aC5lZGdlbGluZSB7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgc3Ryb2tlOiAjZjAwOwogICAgfQoKICAgIC5lZGdlLnNlbGVjdGVkZWRnZSB0ZXh0IHsKICAgICAgZmlsbDogIzAwMDsKICAgIH0KCiAgICAvKiBMYWJlbHMgc2hvd2luZyB0ZW5zb3Igc2hhcGVzIG9uIGVkZ2VzICovCiAgICAuZWRnZSA+IHRleHQgewogICAgICBmb250LXNpemU6IDMuNXB4OwogICAgICBmaWxsOiAjNjY2OwogICAgfQoKICAgIC5kYXRhZmxvdy1hcnJvd2hlYWQgewogICAgICBmaWxsOiAjYmJiOwogICAgfQoKICAgIC5yZWZlcmVuY2UtYXJyb3doZWFkIHsKICAgICAgZmlsbDogI2ZmYjc0ZDsKICAgIH0KCiAgICAuc2VsZWN0ZWQtYXJyb3doZWFkIHsKICAgICAgZmlsbDogI2YwMDsKICAgIH0KCiAgICAuZWRnZSAuY29udHJvbC1kZXAgewogICAgICBzdHJva2UtZGFzaGFycmF5OiAyLCAyOwogICAgfQoKICAgIC8qIC0tLSBHcm91cCBub2RlIGV4cGFuZC9jb2xsYXBzZSBidXR0b24gLS0tICovCgogICAgLyogSGlkZXMgZXhwYW5kL2NvbGxhcHNlIGJ1dHRvbnMgd2hlbiBhIG5vZGUgaXNuJ3QgZXhwYW5kZWQgb3IgaGlnaGxpZ2h0ZWQuIFVzaW5nCiAgIGluY3JlZGlibHkgc21hbGwgb3BhY2l0eSBzbyB0aGF0IHRoZSBib3VuZGluZyBib3ggb2YgdGhlIDxnPiBwYXJlbnQgc3RpbGwgdGFrZXMKICAgdGhpcyBjb250YWluZXIgaW50byBhY2NvdW50IGV2ZW4gd2hlbiBpdCBpc24ndCB2aXNpYmxlICovCiAgICAubm9kZTpub3QoLmhpZ2hsaWdodGVkKTpub3QoLmV4cGFuZGVkKSA+IC5ub2Rlc2hhcGUgPiAuYnV0dG9uY29udGFpbmVyIHsKICAgICAgb3BhY2l0eTogMC4wMTsKICAgIH0KICAgIC5ub2RlLmhpZ2hsaWdodGVkID4gLm5vZGVzaGFwZSA+IC5idXR0b25jb250YWluZXIgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CiAgICAuYnV0dG9uY2lyY2xlIHsKICAgICAgZmlsbDogI2U3ODExZDsKICAgIH0KICAgIC5idXR0b25jaXJjbGU6aG92ZXIgewogICAgICBmaWxsOiAjYjk2NzE3OwogICAgfQogICAgLmV4cGFuZGJ1dHRvbiwKICAgIC5jb2xsYXBzZWJ1dHRvbiB7CiAgICAgIHN0cm9rZTogd2hpdGU7CiAgICB9CiAgICAvKiBEbyBub3QgbGV0IHRoZSBwYXRoIGVsZW1lbnRzIGluIHRoZSBidXR0b24gdGFrZSBwb2ludGVyIGZvY3VzICovCiAgICAubm9kZSA+IC5ub2Rlc2hhcGUgPiAuYnV0dG9uY29udGFpbmVyID4gLmV4cGFuZGJ1dHRvbiwKICAgIC5ub2RlID4gLm5vZGVzaGFwZSA+IC5idXR0b25jb250YWluZXIgPiAuY29sbGFwc2VidXR0b24gewogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KICAgIC8qIE9ubHkgc2hvdyB0aGUgZXhwYW5kIGJ1dHRvbiB3aGVuIGEgbm9kZSBpcyBjb2xsYXBzZWQgYW5kIG9ubHkgc2hvdyB0aGUKICAgY29sbGFwc2UgYnV0dG9uIHdoZW4gYSBub2RlIGlzIGV4cGFuZGVkLiAqLwogICAgLm5vZGUuZXhwYW5kZWQgPiAubm9kZXNoYXBlID4gLmJ1dHRvbmNvbnRhaW5lciA+IC5leHBhbmRidXR0b24gewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLm5vZGU6bm90KC5leHBhbmRlZCkgPiAubm9kZXNoYXBlID4gLmJ1dHRvbmNvbnRhaW5lciA+IC5jb2xsYXBzZWJ1dHRvbiB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLmhlYWx0aC1waWxsLXN0YXRzIHsKICAgICAgZm9udC1zaXplOiA0cHg7CiAgICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7CiAgICB9CgogICAgLmhlYWx0aC1waWxsIHJlY3QgewogICAgICBmaWx0ZXI6IHVybCgjaGVhbHRoLXBpbGwtc2hhZG93KTsKICAgICAgcng6IDM7CiAgICAgIHJ5OiAzOwogICAgfQoKICAgIC50aXRsZUNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgdG9wOiAyMHB4OwogICAgfQoKICAgIC50aXRsZSwKICAgIC5hdXhUaXRsZSwKICAgIC5mdW5jdGlvbkxpYnJhcnlUaXRsZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIH0KCiAgICAjbWluaW1hcCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgcmlnaHQ6IDIwcHg7CiAgICAgIGJvdHRvbTogMjBweDsKICAgIH0KCiAgICAuY29udGV4dC1tZW51IHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBkaXNwbGF5OiBub25lOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyOwogICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgbWluLXdpZHRoOiAxNTBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Q0ZDRkNDsKICAgIH0KCiAgICAuY29udGV4dC1tZW51IHVsIHsKICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIH0KCiAgICAuY29udGV4dC1tZW51IHVsIGxpIHsKICAgICAgcGFkZGluZzogNHB4IDE2cHg7CiAgICB9CgogICAgLmNvbnRleHQtbWVudSB1bCBsaTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMzkxM2U7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9InRpdGxlQ29udGFpbmVyIj4KICAgIDxkaXYgaWQ9InRpdGxlIiBjbGFzcz0idGl0bGUiPk1haW4gR3JhcGg8L2Rpdj4KICAgIDxkaXYgaWQ9ImF1eFRpdGxlIiBjbGFzcz0iYXV4VGl0bGUiPkF1eGlsaWFyeSBOb2RlczwvZGl2PgogICAgPGRpdiBpZD0iZnVuY3Rpb25MaWJyYXJ5VGl0bGUiIGNsYXNzPSJmdW5jdGlvbkxpYnJhcnlUaXRsZSI+RnVuY3Rpb25zPC9kaXY+CiAgPC9kaXY+CiAgPHN2ZyBpZD0ic3ZnIj4KICAgIDxkZWZzPgogICAgICA8IS0tIEFycm93IGhlYWRzIGZvciByZWZlcmVuY2UgZWRnZSBwYXRocyBvZiBkaWZmZXJlbnQgcHJlZGVmaW5lZCBzaXplcyBwZXIgY29sb3IuIC0tPgogICAgICA8cGF0aAogICAgICAgIGlkPSJyZWZlcmVuY2UtYXJyb3doZWFkLXBhdGgiCiAgICAgICAgZD0iTSAwLDAgTCAxMCw1IEwgMCwxMCBDIDMsNyAzLDMgMCwwIgogICAgICA+PC9wYXRoPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9InJlZmVyZW5jZS1hcnJvd2hlYWQiCiAgICAgICAgaWQ9InJlZmVyZW5jZS1hcnJvd2hlYWQtc21hbGwiCiAgICAgICAgdmlld0JveD0iMCAwIDEwIDEwIgogICAgICAgIG1hcmtlcldpZHRoPSI1IgogICAgICAgIG1hcmtlckhlaWdodD0iNSIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcmVmZXJlbmNlLWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0icmVmZXJlbmNlLWFycm93aGVhZCIKICAgICAgICBpZD0icmVmZXJlbmNlLWFycm93aGVhZC1tZWRpdW0iCiAgICAgICAgdmlld0JveD0iMCAwIDEwIDEwIgogICAgICAgIG1hcmtlcldpZHRoPSIxMyIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjEzIgogICAgICAgIHJlZlg9IjIiCiAgICAgICAgcmVmWT0iNSIKICAgICAgICBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSIKICAgICAgICBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgID4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNyZWZlcmVuY2UtYXJyb3doZWFkLXBhdGgiPjwvdXNlPgogICAgICA8L21hcmtlcj4KICAgICAgPG1hcmtlcgogICAgICAgIGNsYXNzPSJyZWZlcmVuY2UtYXJyb3doZWFkIgogICAgICAgIGlkPSJyZWZlcmVuY2UtYXJyb3doZWFkLWxhcmdlIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iMTYiCiAgICAgICAgbWFya2VySGVpZ2h0PSIxNiIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcmVmZXJlbmNlLWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0icmVmZXJlbmNlLWFycm93aGVhZCIKICAgICAgICBpZD0icmVmZXJlbmNlLWFycm93aGVhZC14bGFyZ2UiCiAgICAgICAgdmlld0JveD0iMCAwIDEwIDEwIgogICAgICAgIG1hcmtlcldpZHRoPSIyMCIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjIwIgogICAgICAgIHJlZlg9IjIiCiAgICAgICAgcmVmWT0iNSIKICAgICAgICBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSIKICAgICAgICBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgID4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNyZWZlcmVuY2UtYXJyb3doZWFkLXBhdGgiPjwvdXNlPgogICAgICA8L21hcmtlcj4KCiAgICAgIDwhLS0gQXJyb3cgaGVhZHMgZm9yIGRhdGFmbG93IGVkZ2UgcGF0aHMgb2YgZGlmZmVyZW50IHByZWRlZmluZWQgc2l6ZXMgcGVyIGNvbG9yLiAtLT4KICAgICAgPHBhdGgKICAgICAgICBpZD0iZGF0YWZsb3ctYXJyb3doZWFkLXBhdGgiCiAgICAgICAgZD0iTSAwLDAgTCAxMCw1IEwgMCwxMCBDIDMsNyAzLDMgMCwwIgogICAgICA+PC9wYXRoPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9ImRhdGFmbG93LWFycm93aGVhZCIKICAgICAgICBpZD0iZGF0YWZsb3ctYXJyb3doZWFkLXNtYWxsIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iNSIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjUiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2RhdGFmbG93LWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0iZGF0YWZsb3ctYXJyb3doZWFkIgogICAgICAgIGlkPSJkYXRhZmxvdy1hcnJvd2hlYWQtbWVkaXVtIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iMTMiCiAgICAgICAgbWFya2VySGVpZ2h0PSIxMyIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjZGF0YWZsb3ctYXJyb3doZWFkLXBhdGgiPjwvdXNlPgogICAgICA8L21hcmtlcj4KICAgICAgPG1hcmtlcgogICAgICAgIGNsYXNzPSJkYXRhZmxvdy1hcnJvd2hlYWQiCiAgICAgICAgaWQ9ImRhdGFmbG93LWFycm93aGVhZC1sYXJnZSIKICAgICAgICB2aWV3Qm94PSIwIDAgMTAgMTAiCiAgICAgICAgbWFya2VyV2lkdGg9IjE2IgogICAgICAgIG1hcmtlckhlaWdodD0iMTYiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2RhdGFmbG93LWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0iZGF0YWZsb3ctYXJyb3doZWFkIgogICAgICAgIGlkPSJkYXRhZmxvdy1hcnJvd2hlYWQteGxhcmdlIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iMjAiCiAgICAgICAgbWFya2VySGVpZ2h0PSIyMCIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjZGF0YWZsb3ctYXJyb3doZWFkLXBhdGgiPjwvdXNlPgogICAgICA8L21hcmtlcj4KCiAgICAgIDwhLS0gQXJyb3cgaGVhZCBmb3IgYW5ub3RhdGlvbiBlZGdlIHBhdGhzLiAtLT4KICAgICAgPG1hcmtlcgogICAgICAgIGlkPSJhbm5vdGF0aW9uLWFycm93aGVhZCIKICAgICAgICBtYXJrZXJXaWR0aD0iNSIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjUiCiAgICAgICAgcmVmWD0iNSIKICAgICAgICByZWZZPSIyLjUiCiAgICAgICAgb3JpZW50PSJhdXRvIgogICAgICA+CiAgICAgICAgPHBhdGggZD0iTSAwLDAgTCA1LDIuNSBMIDAsNSBMIDAsMCI+PC9wYXRoPgogICAgICA8L21hcmtlcj4KICAgICAgPG1hcmtlcgogICAgICAgIGlkPSJhbm5vdGF0aW9uLWFycm93aGVhZC1mYWRlZCIKICAgICAgICBtYXJrZXJXaWR0aD0iNSIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjUiCiAgICAgICAgcmVmWD0iNSIKICAgICAgICByZWZZPSIyLjUiCiAgICAgICAgb3JpZW50PSJhdXRvIgogICAgICA+CiAgICAgICAgPHBhdGggZD0iTSAwLDAgTCA1LDIuNSBMIDAsNSBMIDAsMCI+PC9wYXRoPgogICAgICA8L21hcmtlcj4KICAgICAgPG1hcmtlcgogICAgICAgIGlkPSJyZWYtYW5ub3RhdGlvbi1hcnJvd2hlYWQiCiAgICAgICAgbWFya2VyV2lkdGg9IjUiCiAgICAgICAgbWFya2VySGVpZ2h0PSI1IgogICAgICAgIHJlZlg9IjAiCiAgICAgICAgcmVmWT0iMi41IgogICAgICAgIG9yaWVudD0iYXV0byIKICAgICAgPgogICAgICAgIDxwYXRoIGQ9Ik0gNSwwIEwgMCwyLjUgTCA1LDUgTCA1LDAiPjwvcGF0aD4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBpZD0icmVmLWFubm90YXRpb24tYXJyb3doZWFkLWZhZGVkIgogICAgICAgIG1hcmtlcldpZHRoPSI1IgogICAgICAgIG1hcmtlckhlaWdodD0iNSIKICAgICAgICByZWZYPSIwIgogICAgICAgIHJlZlk9IjIuNSIKICAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgID4KICAgICAgICA8cGF0aCBkPSJNIDUsMCBMIDAsMi41IEwgNSw1IEwgNSwwIj48L3BhdGg+CiAgICAgIDwvbWFya2VyPgogICAgICA8IS0tIFRlbXBsYXRlIGZvciBhbiBPcCBub2RlIGVsbGlwc2UuIC0tPgogICAgICA8ZWxsaXBzZQogICAgICAgIGlkPSJvcC1ub2RlLXN0YW1wIgogICAgICAgIHJ4PSI3LjUiCiAgICAgICAgcnk9IjMiCiAgICAgICAgc3Ryb2tlPSJpbmhlcml0IgogICAgICAgIGZpbGw9ImluaGVyaXQiCiAgICAgID48L2VsbGlwc2U+CiAgICAgIDwhLS0gVGVtcGxhdGUgZm9yIGFuIE9wIG5vZGUgYW5ub3RhdGlvbiBlbGxpcHNlIChzbWFsbGVyKS4gLS0+CiAgICAgIDxlbGxpcHNlCiAgICAgICAgaWQ9Im9wLW5vZGUtYW5ub3RhdGlvbi1zdGFtcCIKICAgICAgICByeD0iNSIKICAgICAgICByeT0iMiIKICAgICAgICBzdHJva2U9ImluaGVyaXQiCiAgICAgICAgZmlsbD0iaW5oZXJpdCIKICAgICAgPjwvZWxsaXBzZT4KICAgICAgPCEtLSBWZXJ0aWNhbGx5IHN0YWNrZWQgc2VyaWVzIG9mIE9wIG5vZGVzIHdoZW4gdW5leHBhbmRlZC4gLS0+CiAgICAgIDxnIGlkPSJvcC1zZXJpZXMtdmVydGljYWwtc3RhbXAiPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjgiIHk9IjkiPjwvdXNlPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjgiIHk9IjYiPjwvdXNlPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjgiIHk9IjMiPjwvdXNlPgogICAgICA8L2c+CiAgICAgIDwhLS0gSG9yaXpvbnRhbGx5IHN0YWNrZWQgc2VyaWVzIG9mIE9wIG5vZGVzIHdoZW4gdW5leHBhbmRlZC4gLS0+CiAgICAgIDxnIGlkPSJvcC1zZXJpZXMtaG9yaXpvbnRhbC1zdGFtcCI+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIgeD0iMTYiIHk9IjQiPjwvdXNlPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjEyIiB5PSI0Ij48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSI0Ij48L3VzZT4KICAgICAgPC9nPgogICAgICA8IS0tIEhvcml6b250YWxseSBzdGFja2VkIHNlcmllcyBvZiBPcCBub2RlcyBmb3IgYW5ub3RhdGlvbi4gLS0+CiAgICAgIDxnIGlkPSJvcC1zZXJpZXMtYW5ub3RhdGlvbi1zdGFtcCI+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1hbm5vdGF0aW9uLXN0YW1wIiB4PSI5IiB5PSIyIj48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLWFubm90YXRpb24tc3RhbXAiIHg9IjciIHk9IjIiPjwvdXNlPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtYW5ub3RhdGlvbi1zdGFtcCIgeD0iNSIgeT0iMiI+PC91c2U+CiAgICAgIDwvZz4KICAgICAgPHN2ZwogICAgICAgIGlkPSJzdW1tYXJ5LWljb24iCiAgICAgICAgZmlsbD0iIzg0ODQ4NCIKICAgICAgICBoZWlnaHQ9IjEyIgogICAgICAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgICAgICB3aWR0aD0iMTIiCiAgICAgID4KICAgICAgICA8cGF0aAogICAgICAgICAgZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE3SDd2LTdoMnY3em00IDBoLTJWN2gydjEwem00IDBoLTJ2LTRoMnY0eiIKICAgICAgICA+PC9wYXRoPgogICAgICA8L3N2Zz4KCiAgICAgIDwhLS0gSGF0Y2ggcGF0dGVybnMgZm9yIGZhZGVkIG91dCBub2Rlcy4gLS0+CiAgICAgIDxwYXR0ZXJuCiAgICAgICAgaWQ9InJlY3RIYXRjaCIKICAgICAgICBwYXR0ZXJuVHJhbnNmb3JtPSJyb3RhdGUoNDUgMCAwKSIKICAgICAgICB3aWR0aD0iNSIKICAgICAgICBoZWlnaHQ9IjUiCiAgICAgICAgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAxIj48L2xpbmU+CiAgICAgIDwvcGF0dGVybj4KICAgICAgPHBhdHRlcm4KICAgICAgICBpZD0iZWxsaXBzZUhhdGNoIgogICAgICAgIHBhdHRlcm5UcmFuc2Zvcm09InJvdGF0ZSg0NSAwIDApIgogICAgICAgIHdpZHRoPSIyIgogICAgICAgIGhlaWdodD0iMiIKICAgICAgICBwYXR0ZXJuVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPGxpbmUgeDE9IjAiIHkxPSIwIiB4Mj0iMCIgeTI9IjIiIHN0eWxlPSJzdHJva2Utd2lkdGg6IDEiPjwvbGluZT4KICAgICAgPC9wYXR0ZXJuPgoKICAgICAgPCEtLSBBIHNoYWRvdyBmb3IgaGVhbHRoIHBpbGxzLiAtLT4KICAgICAgPGZpbHRlcgogICAgICAgIGlkPSJoZWFsdGgtcGlsbC1zaGFkb3ciCiAgICAgICAgeD0iLTQwJSIKICAgICAgICB5PSItNDAlIgogICAgICAgIHdpZHRoPSIxODAlIgogICAgICAgIGhlaWdodD0iMTgwJSIKICAgICAgPgogICAgICAgIDxmZUdhdXNzaWFuQmx1ciBpbj0iU291cmNlQWxwaGEiIHN0ZERldmlhdGlvbj0iMC44Ij48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjAiIHJlc3VsdD0ib2Zmc2V0Ymx1ciI+PC9mZU9mZnNldD4KICAgICAgICA8ZmVGbG9vZCBmbG9vZC1jb2xvcj0iIzAwMDAwMCI+PC9mZUZsb29kPgogICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9Im9mZnNldGJsdXIiIG9wZXJhdG9yPSJpbiI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICA8ZmVNZXJnZT4KICAgICAgICAgIDxmZU1lcmdlTm9kZT48L2ZlTWVyZ2VOb2RlPgogICAgICAgICAgPGZlTWVyZ2VOb2RlIGluPSJTb3VyY2VHcmFwaGljIj48L2ZlTWVyZ2VOb2RlPgogICAgICAgIDwvZmVNZXJnZT4KICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8IS0tIE1ha2UgYSBsYXJnZSByZWN0YW5nbGUgdGhhdCBmaWxscyB0aGUgc3ZnIHNwYWNlIHNvIHRoYXQKICB6b29tIGV2ZW50cyBnZXQgY2FwdHVyZWQgb24gc2FmYXJpIC0tPgogICAgPHJlY3QgZmlsbD0id2hpdGUiIHdpZHRoPSIxMDAwMCIgaGVpZ2h0PSIxMDAwMCI+PC9yZWN0PgogICAgPGcgaWQ9InJvb3QiPjwvZz4KICA8L3N2Zz4KICA8dGYtZ3JhcGgtbWluaW1hcCBpZD0ibWluaW1hcCI+PC90Zi1ncmFwaC1taW5pbWFwPgogIDxkaXYgaWQ9ImNvbnRleHRNZW51IiBjbGFzcz0iY29udGV4dC1tZW51Ij48L2Rpdj4KYDtsZXQgSnF0PWNsYXNzIGV4dGVuZHMoZXIoaWwoeWUpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3pvb21lZD0hMSx0aGlzLl96b29tU3RhcnRDb29yZHM9bnVsbCx0aGlzLl96b29tVHJhbnNmb3JtPW51bGwsdGhpcy5fbWF4Wm9vbURpc3RhbmNlRm9yQ2xpY2s9MjAsdGhpcy5fbm9kZUdyb3VwSW5kZXg9e30sdGhpcy5fYW5ub3RhdGlvbkdyb3VwSW5kZXg9e30sdGhpcy5fZWRnZUdyb3VwSW5kZXg9e30sdGhpcy5tYXhNZXRhbm9kZUxhYmVsTGVuZ3RoRm9udFNpemU9OSx0aGlzLm1pbk1ldGFub2RlTGFiZWxMZW5ndGhGb250U2l6ZT02LHRoaXMubWF4TWV0YW5vZGVMYWJlbExlbmd0aExhcmdlRm9udD0xMSx0aGlzLm1heE1ldGFub2RlTGFiZWxMZW5ndGg9MTh9Z2V0Tm9kZSh0KXtyZXR1cm4gdGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0UmVuZGVyTm9kZUJ5TmFtZSh0KX1pc05vZGVFeHBhbmRlZCh0KXtyZXR1cm4gdC5leHBhbmRlZH1zZXROb2RlRXhwYW5kZWQodCl7dGhpcy5fYnVpbGQodGhpcy5yZW5kZXJIaWVyYXJjaHkpLHRoaXMuX3VwZGF0ZUxhYmVscyghdGhpcy5fem9vbWVkKX1wYW5Ub05vZGUodCl7KGZ1bmN0aW9uIGUodCxuLGkscil7Y29uc3Qgbz1TdShuKS5zZWxlY3QoYFtkYXRhLW5hbWU9IiR7dH0iXWApLm5vZGUoKTtpZighbylyZXR1cm4gY29uc29sZS53YXJuKGBwYW5Ub05vZGUoKSBmYWlsZWQgZm9yIG5vZGUgbmFtZSAiJHt0fSJgKSwhMTtsZXQgYT1vLmdldEJCb3goKSxzPW8uZ2V0U2NyZWVuQ1RNKCksbD1uLmNyZWF0ZVNWR1BvaW50KCksYz1uLmNyZWF0ZVNWR1BvaW50KCk7bC54PWEueCxsLnk9YS55LGMueD1hLngrYS53aWR0aCxjLnk9YS55K2EuaGVpZ2h0LGw9bC5tYXRyaXhUcmFuc2Zvcm0ocyksYz1jLm1hdHJpeFRyYW5zZm9ybShzKTtsZXQgdT0odCxlLG4saSk9PiEodD5uJiZlPGkpLGg9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjb25zdCBkPWgudG9wK2guaGVpZ2h0LTE1MDtpZih1KGwueCxjLngsaC5sZWZ0LGgubGVmdCtoLndpZHRoLTMyMCl8fHUobC55LGMueSxoLnRvcCxkKSl7bGV0IHQ9aC5sZWZ0K2gud2lkdGgvMi0obC54K2MueCkvMixlPWgudG9wK2guaGVpZ2h0LzItKGwueStjLnkpLzI7Y29uc3QgaT1iTihuKTtyZXR1cm4gU3UobikudHJhbnNpdGlvbigpLmR1cmF0aW9uKDUwMCkuY2FsbChyLnRyYW5zbGF0ZUJ5LHQvaS5rLGUvaS5rKSwhMH1yZXR1cm4hMX0pKHQsdGhpcy4kLnN2ZywwLHRoaXMuX3pvb20pJiYodGhpcy5fem9vbWVkPSEwKX1nZXRHcmFwaFN2Z1Jvb3QoKXtyZXR1cm4gdGhpcy4kLnN2Z31nZXRDb250ZXh0TWVudSgpe3JldHVybiB0aGlzLiQuY29udGV4dE1lbnV9X3Jlc2V0U3RhdGUoKXt0aGlzLl9ub2RlR3JvdXBJbmRleD17fSx0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleD17fSx0aGlzLl9lZGdlR3JvdXBJbmRleD17fSx0aGlzLl91cGRhdGVMYWJlbHMoITEpLFN1KHRoaXMuJC5zdmcpLnNlbGVjdCgiI3Jvb3QiKS5zZWxlY3RBbGwoIioiKS5yZW1vdmUoKSxicXQodGhpcy4kLnN2Zyl9X2J1aWxkKHQpe3RoaXMudGVtcGxhdGVJbmRleD10LmhpZXJhcmNoeS5nZXRUZW1wbGF0ZUluZGV4KCksQ0d0KCJ0Zi1ncmFwaC1zY2VuZSAobGF5b3V0KToiLGZ1bmN0aW9uKCl7Uld0KHQucm9vdCl9LmJpbmQodGhpcyksX0d0LlJFTkRFUl9TQ0VORV9MQVlPVVQpLENHdCgidGYtZ3JhcGgtc2NlbmUgKGJ1aWxkIHNjZW5lKToiLGZ1bmN0aW9uKCl7THF0KFN1KHRoaXMuJC5yb290KSx0LnJvb3QsdGhpcyksKGZ1bmN0aW9uIGUodCxuKXtTdSh0KS5vbigiY2xpY2siLCgoKT0+e24uZmlyZSgiZ3JhcGgtc2VsZWN0Iil9KSl9KSh0aGlzLiQuc3ZnLHRoaXMpLHRoaXMuX3VwZGF0ZUlucHV0VHJhY2UoKX0uYmluZCh0aGlzKSxfR3QuUkVOREVSX1NDRU5FX0JVSUxEX1NDRU5FKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlSGVhbHRoUGlsbHModGhpcy5ub2RlTmFtZXNUb0hlYWx0aFBpbGxzLHRoaXMuaGVhbHRoUGlsbFN0ZXBJbmRleCksdGhpcy5taW5pbWFwLnVwZGF0ZSgpfS5iaW5kKHRoaXMpLE5XdC5hbmltYXRpb24uZHVyYXRpb24pfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLl96b29tPWtOKCkub24oImVuZCIsZnVuY3Rpb24oKXt0aGlzLl96b29tU3RhcnRDb29yZHMmJihNYXRoLnNxcnQoTWF0aC5wb3codGhpcy5fem9vbVN0YXJ0Q29vcmRzLngtdGhpcy5fem9vbVRyYW5zZm9ybS54LDIpK01hdGgucG93KHRoaXMuX3pvb21TdGFydENvb3Jkcy55LXRoaXMuX3pvb21UcmFuc2Zvcm0ueSwyKSk8dGhpcy5fbWF4Wm9vbURpc3RhbmNlRm9yQ2xpY2s/dGhpcy5fZmlyZUVuYWJsZUNsaWNrKCk6c2V0VGltZW91dCh0aGlzLl9maXJlRW5hYmxlQ2xpY2suYmluZCh0aGlzKSw1MCkpLHRoaXMuX3pvb21TdGFydENvb3Jkcz1udWxsfS5iaW5kKHRoaXMpKS5vbigiem9vbSIsZnVuY3Rpb24oKXt0aGlzLl96b29tVHJhbnNmb3JtPXV1LnRyYW5zZm9ybSx0aGlzLl96b29tU3RhcnRDb29yZHN8fCh0aGlzLl96b29tU3RhcnRDb29yZHM9dGhpcy5fem9vbVRyYW5zZm9ybSx0aGlzLmZpcmUoImRpc2FibGUtY2xpY2siKSksdGhpcy5fem9vbWVkPSEwLFN1KHRoaXMuJC5yb290KS5hdHRyKCJ0cmFuc2Zvcm0iLHV1LnRyYW5zZm9ybSksdGhpcy5taW5pbWFwLnpvb20odXUudHJhbnNmb3JtKX0uYmluZCh0aGlzKSksU3UodGhpcy4kLnN2ZykuY2FsbCh0aGlzLl96b29tKS5vbigiZGJsY2xpY2suem9vbSIsbnVsbCksU3Uod2luZG93KS5vbigicmVzaXplIixmdW5jdGlvbigpe3RoaXMubWluaW1hcC56b29tKCl9LmJpbmQodGhpcykpLHRoaXMubWluaW1hcD10aGlzLiQubWluaW1hcC5pbml0KHRoaXMuJC5zdmcsdGhpcy4kLnJvb3QsdGhpcy5fem9vbSxOV3QubWluaW1hcC5zaXplLE5XdC5zdWJzY2VuZS5tZXRhLmxhYmVsSGVpZ2h0KX1hdHRhY2hlZCgpe3RoaXMuc2V0KCJfaXNBdHRhY2hlZCIsITApfWRldGFjaGVkKCl7dGhpcy5zZXQoIl9pc0F0dGFjaGVkIiwhMSl9X3JlbmRlckhpZXJhcmNoeUNoYW5nZWQoKXt2YXIgdD10aGlzLnJlbmRlckhpZXJhcmNoeTt0aGlzLl9oYXNSZW5kZXJIaWVyYXJjaHlCZWVuRml0T25jZT0hMSx0aGlzLl9yZXNldFN0YXRlKCksdGhpcy5fYnVpbGQodCl9X2FuaW1hdGVBbmRGaXQoKXshdGhpcy5faGFzUmVuZGVySGllcmFyY2h5QmVlbkZpdE9uY2UmJnRoaXMuX2lzQXR0YWNoZWQmJnNldFRpbWVvdXQodGhpcy5maXQuYmluZCh0aGlzKSxOV3QuYW5pbWF0aW9uLmR1cmF0aW9uKX1fdXBkYXRlTGFiZWxzKHQpe3ZhciBlPXRoaXMuJCQoIi50aXRsZSIpLG49ZS5zdHlsZSxpPXRoaXMuJCQoIi5hdXhUaXRsZSIpLHI9aS5zdHlsZSxvPXRoaXMuJCQoIi5mdW5jdGlvbkxpYnJhcnlUaXRsZSIpLnN0eWxlO2NvbnN0IGE9U3UodGhpcy4kLnN2Zyk7dmFyIHM9YS5zZWxlY3QoIi4iK1ZXdC5TY2VuZS5HUk9VUCsiPi4iK1ZXdC5TY2VuZS5DT1JFKS5ub2RlKCk7aWYodCYmcyYmdGhpcy5wcm9ncmVzcyYmMTAwPT09dGhpcy5wcm9ncmVzcy52YWx1ZSl7dmFyIGw9YS5zZWxlY3QoIi4iK1ZXdC5TY2VuZS5HUk9VUCsiPi4iK1ZXdC5TY2VuZS5JTkVYVFJBQ1QpLm5vZGUoKXx8YS5zZWxlY3QoIi4iK1ZXdC5TY2VuZS5HUk9VUCsiPi4iK1ZXdC5TY2VuZS5PVVRFWFRSQUNUKS5ub2RlKCksYz1zLmdldENUTSgpLmUsdT1sP2wuZ2V0Q1RNKCkuZTpudWxsO24uZGlzcGxheT0iaW5saW5lIixuLmxlZnQ9YysicHgiLG51bGwhPT11JiZ1IT09Yz8oci5kaXNwbGF5PSJpbmxpbmUiLHU9TWF0aC5tYXgoYytlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLHUpLHIubGVmdD11KyJweCIpOnIuZGlzcGxheT0ibm9uZSI7bGV0IHQ9YS5zZWxlY3QoIi4iK1ZXdC5TY2VuZS5HUk9VUCsiPi4iK1ZXdC5TY2VuZS5GVU5DVElPTl9MSUJSQVJZKS5ub2RlKCksaD10P3QuZ2V0Q1RNKCkuZTpudWxsO251bGwhPT1oJiZoIT09dT8oby5kaXNwbGF5PSJpbmxpbmUiLGg9TWF0aC5tYXgodStpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLGgpLG8ubGVmdD1oKyJweCIpOm8uZGlzcGxheT0ibm9uZSJ9ZWxzZSBuLmRpc3BsYXk9Im5vbmUiLHIuZGlzcGxheT0ibm9uZSIsby5kaXNwbGF5PSJub25lIn1ub2RlQ29sb3JzQ2hhbmdlZCgpe251bGwhPXRoaXMucmVuZGVySGllcmFyY2h5JiYodGhpcy50ZW1wbGF0ZUluZGV4PXRoaXMucmVuZGVySGllcmFyY2h5LmhpZXJhcmNoeS5nZXRUZW1wbGF0ZUluZGV4KCksU2UuZXhwb3J0cy5lYWNoKHRoaXMuX25vZGVHcm91cEluZGV4LCgodCxlKT0+e3RoaXMuX3VwZGF0ZU5vZGVTdGF0ZShlKX0pKSx0aGlzLm1pbmltYXAudXBkYXRlKCkpfWZpdCgpe3RoaXMuX2hhc1JlbmRlckhpZXJhcmNoeUJlZW5GaXRPbmNlPSEwLChmdW5jdGlvbiB0KGUsbixpLHIpe2xldCBvPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1udWxsO3RyeXtpZihhPW4uZ2V0QkJveCgpLDA9PT1hLndpZHRoKXJldHVybn1jYXRjaCh0KXtyZXR1cm59bGV0IHM9LjkqTWF0aC5taW4oby53aWR0aC9hLndpZHRoLG8uaGVpZ2h0L2EuaGVpZ2h0LDIpLGw9Tld0LmdyYXBoO2NvbnN0IGM9dk4uc2NhbGUocykudHJhbnNsYXRlKGwucGFkZGluZy5wYWRkaW5nTGVmdCxsLnBhZGRpbmcucGFkZGluZ1RvcCk7U3UoZSkudHJhbnNpdGlvbigpLmR1cmF0aW9uKDUwMCkuY2FsbChpLnRyYW5zZm9ybSxjKS5vbigiZW5kLmZpdHRlZCIsKCgpPT57aS5vbigiZW5kLmZpdHRlZCIsbnVsbCkscigpfSkpfSkodGhpcy4kLnN2Zyx0aGlzLiQucm9vdCx0aGlzLl96b29tLGZ1bmN0aW9uKCl7dGhpcy5fem9vbWVkPSExfS5iaW5kKHRoaXMpKX1nZXRJbWFnZUJsb2IoKXtyZXR1cm4gdGhpcy5taW5pbWFwLmdldEltYWdlQmxvYigpfWlzTm9kZVNlbGVjdGVkKHQpe3JldHVybiB0PT09dGhpcy5zZWxlY3RlZE5vZGV9aXNOb2RlSGlnaGxpZ2h0ZWQodCl7cmV0dXJuIHQ9PT10aGlzLmhpZ2hsaWdodGVkTm9kZX1hZGRBbm5vdGF0aW9uR3JvdXAodCxlLG4pe3ZhciBpPXQubm9kZS5uYW1lO3RoaXMuX2Fubm90YXRpb25Hcm91cEluZGV4W2ldPXRoaXMuX2Fubm90YXRpb25Hcm91cEluZGV4W2ldfHx7fSx0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleFtpXVtlLm5vZGUubmFtZV09bn1nZXRBbm5vdGF0aW9uR3JvdXBzSW5kZXgodCl7cmV0dXJuIHRoaXMuX2Fubm90YXRpb25Hcm91cEluZGV4W3RdfXJlbW92ZUFubm90YXRpb25Hcm91cCh0LGUpe2RlbGV0ZSB0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleFt0Lm5vZGUubmFtZV1bZS5ub2RlLm5hbWVdfWFkZE5vZGVHcm91cCh0LGUpe3RoaXMuX25vZGVHcm91cEluZGV4W3RdPWV9Z2V0Tm9kZUdyb3VwKHQpe3JldHVybiB0aGlzLl9ub2RlR3JvdXBJbmRleFt0XX1yZW1vdmVOb2RlR3JvdXAodCl7ZGVsZXRlIHRoaXMuX25vZGVHcm91cEluZGV4W3RdfWFkZEVkZ2VHcm91cCh0LGUpe3RoaXMuX2VkZ2VHcm91cEluZGV4W3RdPWV9Z2V0RWRnZUdyb3VwKHQpe3JldHVybiB0aGlzLl9lZGdlR3JvdXBJbmRleFt0XX1fdXBkYXRlSGVhbHRoUGlsbHMoKXshKGZ1bmN0aW9uIHQoZSxuLGkpe2lmKCFuKXJldHVybjtsZXQgcj0xO1N1KGUpLnNlbGVjdEFsbCgiZy5ub2Rlc2hhcGUiKS5lYWNoKChmdW5jdGlvbih0KXtjb25zdCBlPW5bdC5ub2RlLm5hbWVdOyEoZnVuY3Rpb24gbyh0LGUsbixpLHI9NjAsYT0xMCxzPTAsbCl7aWYoU3UodC5wYXJlbnROb2RlKS5zZWxlY3RBbGwoIi5oZWFsdGgtcGlsbCIpLnJlbW92ZSgpLCFlKXJldHVybjtjb25zdCBjPWUudmFsdWUsdT1jLnNsaWNlKDIsOCksaD11WzBdLGQ9dVsxXSxwPXVbNV07bGV0IGY9Y1sxXTtjb25zdCBtPXttaW46Y1s4XSxtYXg6Y1s5XSxtZWFuOmNbMTBdLHN0ZGRldjpNYXRoLnNxcnQoY1sxMV0pfTtudWxsPT1yJiYocj02MCksbnVsbD09YSYmKGE9MTApLG51bGw9PXMmJihzPTApLG51bGwhPW4mJm4ubm9kZS50eXBlPT09akd0Lk9QJiYoci89MixhLz0yKTtsZXQgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYkd0LCJnIik7Zy5jbGFzc0xpc3QuYWRkKCJoZWFsdGgtcGlsbCIpO2xldCBfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhiR3QsImRlZnMiKTtnLmFwcGVuZENoaWxkKF8pO2xldCB5PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhiR3QsImxpbmVhckdyYWRpZW50Iik7Y29uc3Qgdj0iaGVhbHRoLXBpbGwtZ3JhZGllbnQtIitpO3kuc2V0QXR0cmlidXRlKCJpZCIsdik7bGV0IGI9MCx4PSIwJSI7Zm9yKGxldCB0PTA7dDx1Lmxlbmd0aDt0Kyspe2lmKCF1W3RdKWNvbnRpbnVlO2IrPXVbdF07bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGJHdCwic3RvcCIpO2Uuc2V0QXR0cmlidXRlKCJvZmZzZXQiLHgpLGUuc2V0QXR0cmlidXRlKCJzdG9wLWNvbG9yIixVV3RbdF0uYmFja2dyb3VuZF9jb2xvcikseS5hcHBlbmRDaGlsZChlKTtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYkd0LCJzdG9wIiksaT0xMDAqYi9mKyIlIjtuLnNldEF0dHJpYnV0ZSgib2Zmc2V0IixpKSxuLnNldEF0dHJpYnV0ZSgic3RvcC1jb2xvciIsVVd0W3RdLmJhY2tncm91bmRfY29sb3IpLHkuYXBwZW5kQ2hpbGQobikseD1pfV8uYXBwZW5kQ2hpbGQoeSk7bGV0IHc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGJHdCwicmVjdCIpO3cuc2V0QXR0cmlidXRlKCJmaWxsIiwidXJsKCMiK3YrIikiKSx3LnNldEF0dHJpYnV0ZSgid2lkdGgiLFN0cmluZyhyKSksdy5zZXRBdHRyaWJ1dGUoImhlaWdodCIsU3RyaW5nKGEpKSx3LnNldEF0dHJpYnV0ZSgieSIsU3RyaW5nKHMpKSxnLmFwcGVuZENoaWxkKHcpO2xldCBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhiR3QsInRpdGxlIik7Uy50ZXh0Q29udGVudD0oZnVuY3Rpb24gTSh0LGUsbixpKXtsZXQgcj0iRGV2aWNlOiAiK3QuZGV2aWNlX25hbWUrIlxuIjtyKz0iZHR5cGU6ICIrdC5kdHlwZSsiXG4iO2xldCBvPSIoc2NhbGFyKSI7dC5zaGFwZS5sZW5ndGg+MCYmKG89IigiK3Quc2hhcGUuam9pbigiLCIpKyIpIikscis9Ilxuc2hhcGU6ICIrbysiXG5cbiIscis9IiMoZWxlbWVudHMpOiAiK2UrIlxuIjtjb25zdCBhPVtdO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKW5bdF0+MCYmYS5wdXNoKCIjKCIrVVd0W3RdLmxhYmVsKyIpOiAiK25bdF0pO3JldHVybiByKz1hLmpvaW4oIiwgIikrIlxuXG4iLGkubWF4Pj1pLm1pbiYmKHIrPSJtaW46ICIraS5taW4rIiwgbWF4OiAiK2kubWF4KyJcbiIscis9Im1lYW46ICIraS5tZWFuKyIsIHN0ZGRldjogIitpLnN0ZGRldikscn0pKGUsZix1LG0pLGcuYXBwZW5kQ2hpbGQoUyk7bGV0IEU9ITE7aWYobnVsbCE9bil7bGV0IHQ9bi55LWEtbi5oZWlnaHQvMi0yO2lmKG4ubGFiZWxPZmZzZXQ8MCYmKHQrPW4ubGFiZWxPZmZzZXQpLGcuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIisobi54LXIvMikrIiwgIit0KyIpIiksdVsyXXx8dVszXXx8dVs0XSl7bGV0IHQ9bi5ub2RlLmF0dHI7aWYodCYmdC5sZW5ndGgpZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYoIlQiPT09dFtlXS5rZXkpe2xldCBuPXRbZV0udmFsdWUudHlwZTtFPW4mJi9eRFRfKEJPT0x8SU5UfFVJTlQpLy50ZXN0KG4pO2JyZWFrfX19bGV0IFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGJHdCwidGV4dCIpO2lmKE51bWJlci5pc0Zpbml0ZShtLm1pbikmJk51bWJlci5pc0Zpbml0ZShtLm1heCkpe2NvbnN0IHQ9cVd0KG0ubWluLEUpLGU9cVd0KG0ubWF4LEUpO2lmKFQudGV4dENvbnRlbnQ9Zj4xP3QrIiB+ICIrZTp0LGg+MHx8ZD4wfHxwPjApe1QudGV4dENvbnRlbnQrPSIgKCI7Y29uc3QgdD1bXTtoPjAmJnQucHVzaChgTmFOw5cke2h9YCksZD4wJiZ0LnB1c2goYC3iiJ7DlyR7ZH1gKSxwPjAmJnQucHVzaChgK+KInsOXJHtwfWApLFQudGV4dENvbnRlbnQrPXQuam9pbigiOyAiKSsiKSJ9fWVsc2UgVC50ZXh0Q29udGVudD0iKE5vIGZpbml0ZSBlbGVtZW50cykiO1QuY2xhc3NMaXN0LmFkZCgiaGVhbHRoLXBpbGwtc3RhdHMiKSxudWxsPT1sJiYobD1yLzIpLFQuc2V0QXR0cmlidXRlKCJ4IixTdHJpbmcobCkpLFQuc2V0QXR0cmlidXRlKCJ5IixTdHJpbmcocy0yKSksZy5hcHBlbmRDaGlsZChUKSxZaSh0LnBhcmVudE5vZGUpLmFwcGVuZENoaWxkKGcpfSkodGhpcyxlP2VbaV06bnVsbCx0LHIrKyl9KSl9KSh0aGlzLiQuc3ZnLHRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxscyx0aGlzLmhlYWx0aFBpbGxTdGVwSW5kZXgpfV91cGRhdGVOb2RlU3RhdGUodCl7dmFyIGU9dGhpcy5nZXROb2RlKHQpLG49dGhpcy5nZXROb2RlR3JvdXAodCk7biYmd3F0KG4sZSx0aGlzKSxlLm5vZGUudHlwZT09PWpHdC5NRVRBJiZlLm5vZGUuYXNzb2NpYXRlZEZ1bmN0aW9uJiYhZS5pc0xpYnJhcnlGdW5jdGlvbiYmd3F0KFN1KCIuIitWV3QuU2NlbmUuR1JPVVArIj4uIitWV3QuU2NlbmUuRlVOQ1RJT05fTElCUkFSWSsnIGdbZGF0YS1uYW1lPSInKyhWR3QrZS5ub2RlLmFzc29jaWF0ZWRGdW5jdGlvbikrJyJdJyksZSx0aGlzKTt2YXIgaT10aGlzLmdldEFubm90YXRpb25Hcm91cHNJbmRleCh0KTtTZS5leHBvcnRzLmVhY2goaSwoKHQsbik9Pnt3cXQodCxlLHRoaXMsVld0LkFubm90YXRpb24uTk9ERSl9KSl9X3NlbGVjdGVkTm9kZUNoYW5nZWQodCxlKXtpZih0IT09ZSYmKGUmJnRoaXMuX3VwZGF0ZU5vZGVTdGF0ZShlKSx0KSl7dGhpcy5taW5pbWFwLnVwZGF0ZSgpO2Zvcih2YXIgbixpPXRoaXMucmVuZGVySGllcmFyY2h5LmhpZXJhcmNoeS5ub2RlKHQpLHI9W107bnVsbCE9aS5wYXJlbnROb2RlJiZpLnBhcmVudE5vZGUubmFtZSE9Rkd0OylyLnB1c2goKGk9aS5wYXJlbnROb2RlKS5uYW1lKTtTZS5leHBvcnRzLmZvckVhY2hSaWdodChyLCh0PT57dGhpcy5yZW5kZXJIaWVyYXJjaHkuYnVpbGRTdWJoaWVyYXJjaHkodCk7dmFyIGU9dGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0UmVuZGVyTm9kZUJ5TmFtZSh0KTtlLm5vZGUuaXNHcm91cE5vZGUmJiFlLmV4cGFuZGVkJiYoZS5leHBhbmRlZD0hMCxufHwobj1lKSl9KSksbiYmKHRoaXMuc2V0Tm9kZUV4cGFuZGVkKG4pLHRoaXMuX3pvb21lZD0hMCksdCYmdGhpcy5fdXBkYXRlTm9kZVN0YXRlKHQpLHNldFRpbWVvdXQoKCgpPT57dGhpcy5wYW5Ub05vZGUodCl9KSxOV3QuYW5pbWF0aW9uLmR1cmF0aW9uKX19X2hpZ2hsaWdodGVkTm9kZUNoYW5nZWQodCxlKXt0IT09ZSYmKHQmJnRoaXMuX3VwZGF0ZU5vZGVTdGF0ZSh0KSxlJiZ0aGlzLl91cGRhdGVOb2RlU3RhdGUoZSkpfV9vblpvb21DaGFuZ2VkKCl7dGhpcy5fdXBkYXRlTGFiZWxzKCF0aGlzLl96b29tZWQpfV9maXJlRW5hYmxlQ2xpY2soKXt0aGlzLmZpcmUoImVuYWJsZS1jbGljayIpfV91cGRhdGVJbnB1dFRyYWNlKCl7TXF0KHRoaXMuZ2V0R3JhcGhTdmdSb290KCksdGhpcy5yZW5kZXJIaWVyYXJjaHksdGhpcy5zZWxlY3RlZE5vZGUsdGhpcy50cmFjZUlucHV0cyl9fTtKcXQudGVtcGxhdGU9WnF0LHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHlXdCldLEpxdC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxKcXQucHJvdG90eXBlLCJuYW1lIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEpxdC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxKcXQucHJvdG90eXBlLCJ0cmFjZUlucHV0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEpxdC5wcm90b3R5cGUsIl9oYXNSZW5kZXJIaWVyYXJjaHlCZWVuRml0T25jZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEpxdC5wcm90b3R5cGUsIl9pc0F0dGFjaGVkIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpxdC5wcm90b3R5cGUsIl96b29tIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfaGlnaGxpZ2h0ZWROb2RlQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sSnF0LnByb3RvdHlwZSwiaGlnaGxpZ2h0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfc2VsZWN0ZWROb2RlQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sSnF0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpxdC5wcm90b3R5cGUsImhhbmRsZUVkZ2VTZWxlY3RlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9vblpvb21DaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSnF0LnByb3RvdHlwZSwiX3pvb21lZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxKcXQucHJvdG90eXBlLCJfem9vbVN0YXJ0Q29vcmRzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpxdC5wcm90b3R5cGUsIl96b29tVHJhbnNmb3JtIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpxdC5wcm90b3R5cGUsIl9tYXhab29tRGlzdGFuY2VGb3JDbGljayIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLEpxdC5wcm90b3R5cGUsInRlbXBsYXRlSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSnF0LnByb3RvdHlwZSwiX25vZGVHcm91cEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpxdC5wcm90b3R5cGUsIl9hbm5vdGF0aW9uR3JvdXBJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxKcXQucHJvdG90eXBlLCJfZWRnZUdyb3VwSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sSnF0LnByb3RvdHlwZSwibWF4TWV0YW5vZGVMYWJlbExlbmd0aEZvbnRTaXplIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpxdC5wcm90b3R5cGUsIm1pbk1ldGFub2RlTGFiZWxMZW5ndGhGb250U2l6ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxKcXQucHJvdG90eXBlLCJtYXhNZXRhbm9kZUxhYmVsTGVuZ3RoTGFyZ2VGb250Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEpxdC5wcm90b3R5cGUsIm1heE1ldGFub2RlTGFiZWxMZW5ndGgiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSnF0LnByb3RvdHlwZSwicHJvZ3Jlc3MiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLEpxdC5wcm90b3R5cGUsIm5vZGVDb250ZXh0TWVudUl0ZW1zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpxdC5wcm90b3R5cGUsIm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sSnF0LnByb3RvdHlwZSwiaGVhbHRoUGlsbFN0ZXBJbmRleCIsdm9pZCAwKSx0KFthKCJyZW5kZXJIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEpxdC5wcm90b3R5cGUsIl9yZW5kZXJIaWVyYXJjaHlDaGFuZ2VkIixudWxsKSx0KFthKCJfaXNBdHRhY2hlZCIsInJlbmRlckhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sSnF0LnByb3RvdHlwZSwiX2FuaW1hdGVBbmRGaXQiLG51bGwpLHQoW2EoImNvbG9yQnkiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEpxdC5wcm90b3R5cGUsIm5vZGVDb2xvcnNDaGFuZ2VkIixudWxsKSx0KFthKCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiwiaGVhbHRoUGlsbFN0ZXBJbmRleCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sSnF0LnByb3RvdHlwZSwiX3VwZGF0ZUhlYWx0aFBpbGxzIixudWxsKSx0KFthKCJ0cmFjZUlucHV0cyIsInNlbGVjdGVkTm9kZSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sSnF0LnByb3RvdHlwZSwiX3VwZGF0ZUlucHV0VHJhY2UiLG51bGwpLEpxdD10KFtpKCJ0Zi1ncmFwaC1zY2VuZSIpXSxKcXQpO2xldCBRcXQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9yZW5kZXJEZXB0aD0xLHRoaXMuX2FsbG93R3JhcGhTZWxlY3Q9ITAsdGhpcy5lZGdlV2lkdGhGdW5jdGlvbj0iIix0aGlzLmhhbmRsZU5vZGVTZWxlY3RlZD0iIix0aGlzLmVkZ2VMYWJlbEZ1bmN0aW9uPSIiLHRoaXMuaGFuZGxlRWRnZVNlbGVjdGVkPSIifXBhblRvTm9kZSh0KXt0aGlzLiQkKCJ0Zi1ncmFwaC1zY2VuZSIpLnBhblRvTm9kZSh0KX1fYXV0b0V4dHJhY3ROb2Rlc0NoYW5nZWQoKXt2YXIgdD10aGlzLmdyYXBoSGllcmFyY2h5O2lmKHQpe2Zvcihjb25zdCBlIG9mIE9iamVjdC52YWx1ZXModC5nZXROb2RlTWFwKCkpKWUuaW5jbHVkZT1HR3QuVU5TUEVDSUZJRUQ7dGhpcy5fYnVpbGRSZW5kZXJIaWVyYXJjaHkodCl9fV9idWlsZE5ld1JlbmRlckhpZXJhcmNoeSgpe3ZhciB0PXRoaXMuZ3JhcGhIaWVyYXJjaHk7dCYmdGhpcy5fYnVpbGRSZW5kZXJIaWVyYXJjaHkodCl9X3N0YXRzQ2hhbmdlZCgpe3ZhciB0PXRoaXMuc3RhdHMsZT10aGlzLmRldmljZXNGb3JTdGF0czt0aGlzLmdyYXBoSGllcmFyY2h5JiYodCYmZSYmKChmdW5jdGlvbiBuKHQsZSxpKXtTZS5leHBvcnRzLmVhY2godC5ub2RlcywodD0+e3Quc3RhdHM9bnVsbH0pKSxTZS5leHBvcnRzLmVhY2goZS5kZXZfc3RhdHMsKGU9PntpJiYhaVtlLmRldmljZV18fFNlLmV4cG9ydHMuZWFjaChlLm5vZGVfc3RhdHMsKG49PntsZXQgaT1uLm5vZGVfbmFtZSBpbiB0Lm5vZGVzP24ubm9kZV9uYW1lOnNXdChuLm5vZGVfbmFtZSk7aWYoIShpIGluIHQubm9kZXMpKXJldHVybjtsZXQgcj0wO24ubWVtb3J5JiZTZS5leHBvcnRzLmVhY2gobi5tZW1vcnksKHQ9Pnt0LnRvdGFsX2J5dGVzJiYodC50b3RhbF9ieXRlcz4wP3IrPU51bWJlcih0LnRvdGFsX2J5dGVzKTpjb25zb2xlLmxvZygiaWdub3JpbmcgbmVnYXRpdmUgbWVtb3J5IGFsbG9jYXRpb24gZm9yICIraSkpfSkpO2xldCBvPW51bGw7bi5vdXRwdXQmJihvPVNlLmV4cG9ydHMubWFwKG4ub3V0cHV0LCh0PT5TZS5leHBvcnRzLm1hcCh0LnRlbnNvcl9kZXNjcmlwdGlvbi5zaGFwZS5kaW0sKHQ9Pk51bWJlcih0LnNpemUpKSkpKSksdC5ub2Rlc1tpXS5kZXZpY2U9ZS5kZXZpY2UsbnVsbD09dC5ub2Rlc1tpXS5zdGF0cyYmKHQubm9kZXNbaV0uc3RhdHM9bmV3IFNHdChvKSksdC5ub2Rlc1tpXS5zdGF0cy5hZGRCeXRlc0FsbG9jYXRpb24ociksbi5hbGxfZW5kX3JlbF9taWNyb3MmJihuLmFsbF9lbmRfcmVsX21pY3Jvcz4wP3Qubm9kZXNbaV0uc3RhdHMuYWRkRXhlY3V0aW9uVGltZShuLmFsbF9zdGFydF9taWNyb3Msbi5hbGxfc3RhcnRfbWljcm9zK24uYWxsX2VuZF9yZWxfbWljcm9zKTpjb25zb2xlLmxvZygiaWdub3JpbmcgbmVnYXRpdmUgcnVudGltZSBmb3IgIitpKSl9KSl9KSl9KSh0aGlzLmJhc2ljR3JhcGgsdCxlKSwoZnVuY3Rpb24gaSh0LGUpe2xldCBuPXt9LGk9e307U2UuZXhwb3J0cy5lYWNoKHQucm9vdC5sZWF2ZXMoKSwoZT0+e2xldCByPXQubm9kZShlKTtudWxsIT1yLmRldmljZSYmKG5bci5kZXZpY2VdPSEwKSxudWxsIT1yLnhsYUNsdXN0ZXImJihpW3IueGxhQ2x1c3Rlcl09ITApfSkpLHQuZGV2aWNlcz1TZS5leHBvcnRzLmtleXMobiksdC54bGFDbHVzdGVycz1TZS5leHBvcnRzLmtleXMoaSksU2UuZXhwb3J0cy5lYWNoKHQuZ2V0Tm9kZU1hcCgpLCgodCxlKT0+e3QuaXNHcm91cE5vZGUmJih0LnN0YXRzPW5ldyBTR3QobnVsbCksdC5kZXZpY2VIaXN0b2dyYW09e30pfSkpLFNlLmV4cG9ydHMuZWFjaCh0LnJvb3QubGVhdmVzKCksKGU9PntsZXQgbj10Lm5vZGUoZSksaT1uO2Zvcig7bnVsbCE9aS5wYXJlbnROb2RlOyl7aWYobnVsbCE9bi5kZXZpY2Upe2xldCB0PWkucGFyZW50Tm9kZS5kZXZpY2VIaXN0b2dyYW07dFtuLmRldmljZV09KHRbbi5kZXZpY2VdfHwwKSsxfWlmKG51bGwhPW4ueGxhQ2x1c3Rlcil7bGV0IHQ9aS5wYXJlbnROb2RlLnhsYUNsdXN0ZXJIaXN0b2dyYW07dFtuLnhsYUNsdXN0ZXJdPSh0W24ueGxhQ2x1c3Rlcl18fDApKzF9bnVsbCE9bi5zdGF0cyYmaS5wYXJlbnROb2RlLnN0YXRzLmNvbWJpbmUobi5zdGF0cyksaT1pLnBhcmVudE5vZGV9fSkpfSkodGhpcy5ncmFwaEhpZXJhcmNoeSkpLHRoaXMuX2J1aWxkUmVuZGVySGllcmFyY2h5KHRoaXMuZ3JhcGhIaWVyYXJjaHkpKX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJncmFwaC1zZWxlY3QiLHRoaXMuX2dyYXBoU2VsZWN0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJkaXNhYmxlLWNsaWNrIix0aGlzLl9kaXNhYmxlQ2xpY2suYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJlbmFibGUtY2xpY2siLHRoaXMuX2VuYWJsZUNsaWNrLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS10b2dnbGUtZXhwYW5kIix0aGlzLl9ub2RlVG9nZ2xlRXhwYW5kLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS1zZWxlY3QiLHRoaXMuX25vZGVTZWxlY3RlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtaGlnaGxpZ2h0Iix0aGlzLl9ub2RlSGlnaGxpZ2h0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJub2RlLXVuaGlnaGxpZ2h0Iix0aGlzLl9ub2RlVW5oaWdobGlnaHRlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtdG9nZ2xlLWV4dHJhY3QiLHRoaXMuX25vZGVUb2dnbGVFeHRyYWN0LmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS10b2dnbGUtc2VyaWVzZ3JvdXAiLHRoaXMuX25vZGVUb2dnbGVTZXJpZXNHcm91cC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImVkZ2Utc2VsZWN0Iix0aGlzLl9lZGdlU2VsZWN0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJhbm5vdGF0aW9uLXNlbGVjdCIsdGhpcy5fbm9kZVNlbGVjdGVkLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYW5ub3RhdGlvbi1oaWdobGlnaHQiLHRoaXMuX25vZGVIaWdobGlnaHRlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImFubm90YXRpb24tdW5oaWdobGlnaHQiLHRoaXMuX25vZGVVbmhpZ2hsaWdodGVkLmJpbmQodGhpcykpfV9idWlsZFJlbmRlckhpZXJhcmNoeSh0KXtpZih0LnJvb3QudHlwZSE9PWpHdC5NRVRBKXJldHVybjtjb25zdCBlPXRoaXMsbj1DR3QoIm5ldyB0Zl9ncmFwaF9yZW5kZXIuSGllcmFyY2h5IiwoKCk9Pntjb25zdCBuPW5ldyB5V3QodCwhIXRoaXMuc3RhdHMsdGhpcy5hdXRvRXh0cmFjdE5vZGVzKTtmdW5jdGlvbiBpKHQpe3JldHVybnttaW5WYWx1ZTp0LmRvbWFpbigpWzBdLG1heFZhbHVlOnQuZG9tYWluKClbMV0sc3RhcnRDb2xvcjp0LnJhbmdlKClbMF0sZW5kQ29sb3I6dC5yYW5nZSgpWzFdfX1yZXR1cm4gbi5lZGdlTGFiZWxGdW5jdGlvbj10aGlzLmVkZ2VMYWJlbEZ1bmN0aW9uLG4uZWRnZVdpZHRoRnVuY3Rpb249dGhpcy5lZGdlV2lkdGhGdW5jdGlvbixlLl9zZXRDb2xvckJ5UGFyYW1zKHtjb21wdXRlX3RpbWU6aShuLmNvbXB1dGVUaW1lU2NhbGUpLG1lbW9yeTppKG4ubWVtb3J5VXNhZ2VTY2FsZSksZGV2aWNlOlNlLmV4cG9ydHMubWFwKG4uZGV2aWNlQ29sb3JNYXAuZG9tYWluKCksKGZ1bmN0aW9uKHQpe3JldHVybntkZXZpY2U6dCxjb2xvcjpuLmRldmljZUNvbG9yTWFwKHQpfX0pKSx4bGFfY2x1c3RlcjpTZS5leHBvcnRzLm1hcChuLnhsYUNsdXN0ZXJDb2xvck1hcC5kb21haW4oKSwoZnVuY3Rpb24odCl7cmV0dXJue3hsYV9jbHVzdGVyOnQsY29sb3I6bi54bGFDbHVzdGVyQ29sb3JNYXAodCl9fSkpfSksbn0pLF9HdC5SRU5ERVJfQlVJTERfSElFUkFSQ0hZKTtlLl9zZXRSZW5kZXJIaWVyYXJjaHkobil9X2dldFZpc2libGUodCl7cmV0dXJuIHQ/dGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0TmVhcmVzdFZpc2libGVBbmNlc3Rvcih0KTp0fWZpdCgpe3RoaXMuJC5zY2VuZS5maXQoKX1nZXRJbWFnZUJsb2IoKXtyZXR1cm4gdGhpcy4kLnNjZW5lLmdldEltYWdlQmxvYigpfV9ncmFwaENoYW5nZWQoKXt0aGlzLmdyYXBoSGllcmFyY2h5JiYodGhpcy5ncmFwaEhpZXJhcmNoeS5hZGRMaXN0ZW5lcih6cXQuVEVNUExBVEVTX1VQREFURUQsKCgpPT57dGhpcy4kLnNjZW5lLm5vZGVDb2xvcnNDaGFuZ2VkKCl9KSksdGhpcy5maXJlKCJncmFwaC1zZWxlY3QiKSl9X2dyYXBoU2VsZWN0ZWQodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdCYmKHRoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLG51bGwpLHRoaXMuc2V0KCJzZWxlY3RlZEVkZ2UiLG51bGwpKSx0aGlzLl9hbGxvd0dyYXBoU2VsZWN0PSEwfV9kaXNhYmxlQ2xpY2sodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdD0hMX1fZW5hYmxlQ2xpY2sodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdD0hMH1fc2VsZWN0ZWROb2RlQ2hhbmdlZCgpe3RoaXMuaGFuZGxlTm9kZVNlbGVjdGVkJiZ0aGlzLmhhbmRsZU5vZGVTZWxlY3RlZCh0aGlzLnNlbGVjdGVkTm9kZSl9X3NlbGVjdGVkRWRnZUNoYW5nZWQoKXt2YXIgdD10aGlzLnNlbGVjdGVkRWRnZTt0aGlzLl9kZXNlbGVjdFByZXZpb3VzRWRnZSgpLHQmJih0aGlzLl9sYXN0U2VsZWN0ZWRFZGdlR3JvdXAuY2xhc3NlZChWV3QuRWRnZS5TRUxFQ1RFRCwhMCksdGhpcy5fdXBkYXRlTWFya2VyT2ZTZWxlY3RlZEVkZ2UodCkpLHRoaXMuaGFuZGxlRWRnZVNlbGVjdGVkJiZ0aGlzLmhhbmRsZUVkZ2VTZWxlY3RlZCh0KX1fbm9kZVNlbGVjdGVkKHQpe3RoaXMuX2FsbG93R3JhcGhTZWxlY3QmJnRoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLHQuZGV0YWlsLm5hbWUpLHRoaXMuX2FsbG93R3JhcGhTZWxlY3Q9ITB9X2VkZ2VTZWxlY3RlZCh0KXt0aGlzLl9hbGxvd0dyYXBoU2VsZWN0JiYodGhpcy5zZXQoIl9sYXN0U2VsZWN0ZWRFZGdlR3JvdXAiLHQuZGV0YWlsLmVkZ2VHcm91cCksdGhpcy5zZXQoInNlbGVjdGVkRWRnZSIsdC5kZXRhaWwuZWRnZURhdGEpKSx0aGlzLl9hbGxvd0dyYXBoU2VsZWN0PSEwfV9ub2RlSGlnaGxpZ2h0ZWQodCl7dGhpcy5zZXQoImhpZ2hsaWdodGVkTm9kZSIsdC5kZXRhaWwubmFtZSl9X25vZGVVbmhpZ2hsaWdodGVkKHQpe3RoaXMuc2V0KCJoaWdobGlnaHRlZE5vZGUiLG51bGwpfV9ub2RlVG9nZ2xlRXhwYW5kKHQpe3RoaXMuX25vZGVTZWxlY3RlZCh0KTt2YXIgZT10LmRldGFpbC5uYW1lLG49dGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0UmVuZGVyTm9kZUJ5TmFtZShlKTtuLm5vZGUudHlwZSE9PWpHdC5PUCYmKHRoaXMucmVuZGVySGllcmFyY2h5LmJ1aWxkU3ViaGllcmFyY2h5KGUpLG4uZXhwYW5kZWQ9IW4uZXhwYW5kZWQsdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLiQuc2NlbmUuc2V0Tm9kZUV4cGFuZGVkKG4pfSksNzUpLFRHdCh7YWN0aW9uSWQ6X0d0Lk5PREVfRVhQQU5TSU9OX1RPR0dMRUQsZXZlbnRMYWJlbDpuLmV4cGFuZGVkPyJleHBhbmRlZCI6ImNvbGxhcHNlZCJ9KSl9X25vZGVUb2dnbGVFeHRyYWN0KHQpe3RoaXMubm9kZVRvZ2dsZUV4dHJhY3QodC5kZXRhaWwubmFtZSl9bm9kZVRvZ2dsZUV4dHJhY3QodCl7Y29uc3QgZT10aGlzLnJlbmRlckhpZXJhcmNoeS5nZXRSZW5kZXJOb2RlQnlOYW1lKHQpO2Uubm9kZS5pbmNsdWRlPWUubm9kZS5pbmNsdWRlPT1HR3QuSU5DTFVERT9HR3QuRVhDTFVERTplLm5vZGUuaW5jbHVkZT09R0d0LkVYQ0xVREV8fHRoaXMucmVuZGVySGllcmFyY2h5LmlzTm9kZUF1eGlsaWFyeShlKT9HR3QuSU5DTFVERTpHR3QuRVhDTFVERSx0aGlzLl9idWlsZFJlbmRlckhpZXJhcmNoeSh0aGlzLmdyYXBoSGllcmFyY2h5KSxUR3Qoe2FjdGlvbklkOl9HdC5OT0RFX0FVWElMSUFSWV9FWFRSQUNUSU9OX0NIQU5HRUQsZXZlbnRMYWJlbDplLm5vZGUuaW5jbHVkZT09PUdHdC5JTkNMVURFPyJBdXhpbGlhcnkgdG8gTWFpbiI6Ik1haW4gdG8gQXV4aWxpYXJ5In0pfV9ub2RlVG9nZ2xlU2VyaWVzR3JvdXAodCl7dGhpcy5ub2RlVG9nZ2xlU2VyaWVzR3JvdXAodC5kZXRhaWwubmFtZSl9bm9kZVRvZ2dsZVNlcmllc0dyb3VwKHQpe3RoaXMuc2V0KCJwcm9ncmVzcyIse3ZhbHVlOjAsbXNnOiIifSk7dmFyIGU9a0d0KEFHdCh0aGlzKSwxMDAsIk5hbWVzcGFjZSBoaWVyYXJjaHkiKTtjb25zdCBuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmhpZXJhcmNoeVBhcmFtcykse3Nlcmllc01hcDp0aGlzLmdyYXBoSGllcmFyY2h5LmJ1aWxkU2VyaWVzR3JvdXBNYXBUb2dnbGVkKHQpfSk7RnF0KHRoaXMuYmFzaWNHcmFwaCxuLGUpLnRoZW4oZnVuY3Rpb24odCl7dGhpcy5zZXQoImdyYXBoSGllcmFyY2h5Iix0KSx0aGlzLl9idWlsZFJlbmRlckhpZXJhcmNoeSh0aGlzLmdyYXBoSGllcmFyY2h5KX0uYmluZCh0aGlzKSl9X2Rlc2VsZWN0UHJldmlvdXNFZGdlKCl7U3UoIi4iK1ZXdC5FZGdlLlNFTEVDVEVEKS5jbGFzc2VkKFZXdC5FZGdlLlNFTEVDVEVELCExKS5lYWNoKCgodCxlKT0+e2lmKHQubGFiZWwpe2NvbnN0IGU9U3UodGhpcykuc2VsZWN0QWxsKCJwYXRoLmVkZ2VsaW5lIik7dC5sYWJlbC5zdGFydE1hcmtlcklkJiZlLnN0eWxlKCJtYXJrZXItc3RhcnQiLGB1cmwoIyR7dC5sYWJlbC5zdGFydE1hcmtlcklkfSlgKSx0LmxhYmVsLmVuZE1hcmtlcklkJiZlLnN0eWxlKCJtYXJrZXItZW5kIixgdXJsKCMke3QubGFiZWwuZW5kTWFya2VySWR9KWApfX0pKX1fdXBkYXRlTWFya2VyT2ZTZWxlY3RlZEVkZ2UodCl7aWYodC5sYWJlbCl7Y29uc3QgZT10LmxhYmVsLnN0YXJ0TWFya2VySWR8fHQubGFiZWwuZW5kTWFya2VySWQ7aWYoZSl7Y29uc3Qgbj1lLnJlcGxhY2UoImRhdGFmbG93LSIsInNlbGVjdGVkLSIpO2xldCBpPXRoaXMuJCQoIiMiK24pO2lmKCFpKXtjb25zdCB0PXRoaXMuJC5zY2VuZS5xdWVyeVNlbGVjdG9yKCIjIitlKTtpPXQuY2xvbmVOb2RlKCEwKSxpLnNldEF0dHJpYnV0ZSgiaWQiLG4pLGkuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQtYXJyb3doZWFkIiksdC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGkpfWNvbnN0IHI9dC5sYWJlbC5zdGFydE1hcmtlcklkPyJtYXJrZXItc3RhcnQiOiJtYXJrZXItZW5kIjt0aGlzLl9sYXN0U2VsZWN0ZWRFZGdlR3JvdXAuc2VsZWN0QWxsKCJwYXRoLmVkZ2VsaW5lIikuc3R5bGUocixgdXJsKCMke259KWApfX19bm90KHQpe3JldHVybiF0fX07UXF0LnRlbXBsYXRlPV9lYAogICAgPHN0eWxlPgogICAgICAuY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXZlcnRpY2FsOwogICAgICB9CgogICAgICAuYXV0byB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtYXV0bzsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtdmVydGljYWw7CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIHBhcGVyLWJ1dHRvbiB7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3RpdGxlXV0iPgogICAgICAgICAgPGgyPltbdGl0bGVdXTwvaDI+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGYtZ3JhcGgtc2NlbmUKICAgICAgICAgIGlkPSJzY2VuZSIKICAgICAgICAgIGNsYXNzPSJhdXRvIgogICAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0iW1tyZW5kZXJIaWVyYXJjaHldXSIKICAgICAgICAgIGhpZ2hsaWdodGVkLW5vZGU9IltbX2dldFZpc2libGUoaGlnaGxpZ2h0ZWROb2RlKV1dIgogICAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tzZWxlY3RlZE5vZGV9fSIKICAgICAgICAgIHNlbGVjdGVkLWVkZ2U9Int7c2VsZWN0ZWRFZGdlfX0iCiAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICBwcm9ncmVzcz0iW1twcm9ncmVzc11dIgogICAgICAgICAgbm9kZS1jb250ZXh0LW1lbnUtaXRlbXM9Iltbbm9kZUNvbnRleHRNZW51SXRlbXNdXSIKICAgICAgICAgIG5vZGUtbmFtZXMtdG8taGVhbHRoLXBpbGxzPSJbW25vZGVOYW1lc1RvSGVhbHRoUGlsbHNdXSIKICAgICAgICAgIGhlYWx0aC1waWxsLXN0ZXAtaW5kZXg9Int7aGVhbHRoUGlsbFN0ZXBJbmRleH19IgogICAgICAgICAgaGFuZGxlLWVkZ2Utc2VsZWN0ZWQ9IltbaGFuZGxlRWRnZVNlbGVjdGVkXV0iCiAgICAgICAgICB0cmFjZS1pbnB1dHM9IltbdHJhY2VJbnB1dHNdXSIKICAgICAgICA+PC90Zi1ncmFwaC1zY2VuZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMCxvYnNlcnZlcjoiX2dyYXBoQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsRHF0KV0sUXF0LnByb3RvdHlwZSwiZ3JhcGhIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIscUd0KV0sUXF0LnByb3RvdHlwZSwiYmFzaWNHcmFwaCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJzdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJkZXZpY2VzRm9yU3RhdHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sUXF0LnByb3RvdHlwZSwiaGllcmFyY2h5UGFyYW1zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJwcm9ncmVzcyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxRcXQucHJvdG90eXBlLCJ0aXRsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUXF0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJzZWxlY3RlZEVkZ2UiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sUXF0LnByb3RvdHlwZSwiX2xhc3RTZWxlY3RlZEVkZ2VHcm91cCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUXF0LnByb3RvdHlwZSwiaGlnaGxpZ2h0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFFxdC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLHJlYWRPbmx5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFFxdC5wcm90b3R5cGUsImNvbG9yQnlQYXJhbXMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3QscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLHlXdCldLFFxdC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFFxdC5wcm90b3R5cGUsInRyYWNlSW5wdXRzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sUXF0LnByb3RvdHlwZSwiYXV0b0V4dHJhY3ROb2RlcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sUXF0LnByb3RvdHlwZSwibm9kZUNvbnRleHRNZW51SXRlbXMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sUXF0LnByb3RvdHlwZSwiX3JlbmRlckRlcHRoIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sUXF0LnByb3RvdHlwZSwiX2FsbG93R3JhcGhTZWxlY3QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sUXF0LnByb3RvdHlwZSwibm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxRcXQucHJvdG90eXBlLCJoZWFsdGhQaWxsU3RlcEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFFxdC5wcm90b3R5cGUsImVkZ2VXaWR0aEZ1bmN0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFFxdC5wcm90b3R5cGUsImhhbmRsZU5vZGVTZWxlY3RlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJlZGdlTGFiZWxGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcXQucHJvdG90eXBlLCJoYW5kbGVFZGdlU2VsZWN0ZWQiLHZvaWQgMCksdChbYSgiYXV0b0V4dHJhY3ROb2RlcyIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sUXF0LnByb3RvdHlwZSwiX2F1dG9FeHRyYWN0Tm9kZXNDaGFuZ2VkIixudWxsKSx0KFthKCJncmFwaEhpZXJhcmNoeSIsImVkZ2VXaWR0aEZ1bmN0aW9uIiwiaGFuZGxlTm9kZVNlbGVjdGVkIiwiZWRnZUxhYmVsRnVuY3Rpb24iLCJoYW5kbGVFZGdlU2VsZWN0ZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFFxdC5wcm90b3R5cGUsIl9idWlsZE5ld1JlbmRlckhpZXJhcmNoeSIsbnVsbCksdChbYSgic3RhdHMiLCJkZXZpY2VzRm9yU3RhdHMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFFxdC5wcm90b3R5cGUsIl9zdGF0c0NoYW5nZWQiLG51bGwpLHQoW2EoInNlbGVjdGVkTm9kZSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sUXF0LnByb3RvdHlwZSwiX3NlbGVjdGVkTm9kZUNoYW5nZWQiLG51bGwpLHQoW2EoInNlbGVjdGVkRWRnZSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sUXF0LnByb3RvdHlwZSwiX3NlbGVjdGVkRWRnZUNoYW5nZWQiLG51bGwpLFFxdD10KFtpKCJ0Zi1ncmFwaCIpXSxRcXQpO2NvbnN0IHRZdD17TUFYX05PREVfQ09VTlQ6MWU0LE1BWF9FREdFX0NPVU5UOjFlNH07bGV0IGVZdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuaGllcmFyY2h5UGFyYW1zPUhxdCx0aGlzLmFsbFN0ZXBzTW9kZUVuYWJsZWQ9ITEsdGhpcy5zcGVjaWZpY0hlYWx0aFBpbGxTdGVwPTAsdGhpcy5jb21wYXROb2RlVGl0bGU9IlRQVSBDb21wYXRpYmlsaXR5In1maXQoKXt0aGlzLiQuZ3JhcGguZml0KCl9ZG93bmxvYWRBc0ltYWdlKHQpe3JldHVybiBuKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT15aWVsZCB0aGlzLiQuZ3JhcGguZ2V0SW1hZ2VCbG9iKCksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7bi5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoZSksbi5kb3dubG9hZD10LG4uY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKG4uaHJlZil9KSl9X2lzTm90Q29tcGxldGUodCl7cmV0dXJuIHQudmFsdWU8MTAwfV9nZXRDb250YWluZXJDbGFzcyh0KXt2YXIgZT0iY29udGFpbmVyIjtyZXR1cm4gdC5lcnJvciYmKGUrPSIgZXJyb3IiKSx0aGlzLl9pc05vdENvbXBsZXRlKHQpJiYoZSs9IiBsb2FkaW5nIiksZX1fb25Ob2RlSW5jbHVzaW9uVG9nZ2xlZCh0KXt0aGlzLiQuZ3JhcGgubm9kZVRvZ2dsZUV4dHJhY3QodC5kZXRhaWwubmFtZSl9X29uTm9kZVNlcmllc0dyb3VwVG9nZ2xlZCh0KXt0aGlzLiQuZ3JhcGgubm9kZVRvZ2dsZVNlcmllc0dyb3VwKHQuZGV0YWlsLm5hbWUpfV91cGRhdGVOb2RlSW5jbHVkZSgpe2NvbnN0IHQ9dGhpcy5yZW5kZXJIaWVyYXJjaHk/dGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0Tm9kZUJ5TmFtZSh0aGlzLnNlbGVjdGVkTm9kZSk6bnVsbDt0aGlzLl9zZWxlY3RlZE5vZGVJbmNsdWRlPXQ/dC5pbmNsdWRlOkdHdC5VTlNQRUNJRklFRH1fc2xpbUdyYXBoQ2hhbmdlZCgpe2lmKCF0aGlzLmdyYXBoKXJldHVybjtjb25zdHtNQVhfTk9ERV9DT1VOVDp0LE1BWF9FREdFX0NPVU5UOmV9PXRZdDtPYmplY3Qua2V5cyh0aGlzLmdyYXBoLm5vZGVzKS5sZW5ndGg+dCYmdGhpcy5ncmFwaC5lZGdlcy5sZW5ndGg+ZSYmdGhpcy5jb2xvckJ5PT09YXF0LlNUUlVDVFVSRSYmKHRoaXMuY29sb3JCeT1hcXQuTk9ORSl9X2Vuc3VyZVRlbXBsYXRlcygpe3RoaXMuZ3JhcGhIaWVyYXJjaHkmJnRoaXMuY29sb3JCeT09PWFxdC5TVFJVQ1RVUkUmJih0aGlzLmdyYXBoSGllcmFyY2h5LmdldFRlbXBsYXRlSW5kZXgoKXx8dGhpcy5ncmFwaEhpZXJhcmNoeS51cGRhdGVUZW1wbGF0ZXMoKSl9fTtlWXQudGVtcGxhdGU9X2VgCiAgICA8c3R5bGU+CiAgICAgIDo6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC9kZWVwLyAuY2xvc2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgbGVmdDogMTVweDsKICAgICAgICBib3R0b206IDE1cHg7CiAgICAgIH0KCiAgICAgIC5jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuY29udGFpbmVyLmxvYWRpbmcgewogICAgICAgIGN1cnNvcjogcHJvZ3Jlc3M7CiAgICAgICAgb3BhY2l0eTogMC4xOwogICAgICB9CgogICAgICAuY29udGFpbmVyLmxvYWRpbmcuZXJyb3IgewogICAgICAgIGN1cnNvcjogYXV0bzsKICAgICAgfQoKICAgICAgI2luZm8gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogNXB4OwogICAgICAgIHRvcDogNXB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBtYXgtd2lkdGg6IDM4MHB4OwogICAgICAgIG1pbi13aWR0aDogMzIwcHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOwogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMmRwOwogICAgICB9CgogICAgICAjbWFpbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAjcHJvZ3Jlc3MtYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0MHB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAjcHJvZ3Jlc3MtbXNnIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdpZHRoOiA0MDBweDsKICAgICAgfQoKICAgICAgcGFwZXItcHJvZ3Jlc3MgewogICAgICAgIHdpZHRoOiA0MDBweDsKICAgICAgICAtLXBhcGVyLXByb2dyZXNzLWhlaWdodDogNnB4OwogICAgICAgIC0tcGFwZXItcHJvZ3Jlc3MtYWN0aXZlLWNvbG9yOiAjZjM5MTNlOwogICAgICB9CgogICAgICAuY29udGV4dC1tZW51IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWluLXdpZHRoOiAxNTBweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDRkNGQ0OwogICAgICB9CgogICAgICAvZGVlcC8gLmNvbnRleHQtbWVudSB1bCB7CiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgL2RlZXAvIC5jb250ZXh0LW1lbnUgdWwgbGkgewogICAgICAgIHBhZGRpbmc6IDRweCAxNnB4OwogICAgICB9CgogICAgICAvZGVlcC8gLmNvbnRleHQtbWVudSB1bCBsaTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YzOTEzZTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzTm90Q29tcGxldGUocHJvZ3Jlc3MpXV0iPgogICAgICA8ZGl2IGlkPSJwcm9ncmVzcy1iYXIiPgogICAgICAgIDxkaXYgaWQ9InByb2dyZXNzLW1zZyI+W1twcm9ncmVzcy5tc2ddXTwvZGl2PgogICAgICAgIDxwYXBlci1wcm9ncmVzcyB2YWx1ZT0iW1twcm9ncmVzcy52YWx1ZV1dIj48L3BhcGVyLXByb2dyZXNzPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CiAgICA8ZGl2IGNsYXNzJD0iW1tfZ2V0Q29udGFpbmVyQ2xhc3MocHJvZ3Jlc3MpXV0iPgogICAgICA8ZGl2IGlkPSJtYWluIj4KICAgICAgICA8dGYtZ3JhcGgKICAgICAgICAgIGlkPSJncmFwaCIKICAgICAgICAgIGdyYXBoLWhpZXJhcmNoeT0ie3tncmFwaEhpZXJhcmNoeX19IgogICAgICAgICAgYmFzaWMtZ3JhcGg9IltbZ3JhcGhdXSIKICAgICAgICAgIGhpZXJhcmNoeS1wYXJhbXM9IltbaGllcmFyY2h5UGFyYW1zXV0iCiAgICAgICAgICByZW5kZXItaGllcmFyY2h5PSJ7e3JlbmRlckhpZXJhcmNoeX19IgogICAgICAgICAgZGV2aWNlcy1mb3Itc3RhdHM9IltbZGV2aWNlc0ZvclN0YXRzXV0iCiAgICAgICAgICBzdGF0cz0iW1tzdGF0c11dIgogICAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tzZWxlY3RlZE5vZGV9fSIKICAgICAgICAgIGhpZ2hsaWdodGVkLW5vZGU9Int7X2hpZ2hsaWdodGVkTm9kZX19IgogICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgY29sb3ItYnktcGFyYW1zPSJ7e2NvbG9yQnlQYXJhbXN9fSIKICAgICAgICAgIHByb2dyZXNzPSJ7e3Byb2dyZXNzfX0iCiAgICAgICAgICBlZGdlLWxhYmVsLWZ1bmN0aW9uPSJbW2VkZ2VMYWJlbEZ1bmN0aW9uXV0iCiAgICAgICAgICBlZGdlLXdpZHRoLWZ1bmN0aW9uPSJbW2VkZ2VXaWR0aEZ1bmN0aW9uXV0iCiAgICAgICAgICBub2RlLW5hbWVzLXRvLWhlYWx0aC1waWxscz0iW1tub2RlTmFtZXNUb0hlYWx0aFBpbGxzXV0iCiAgICAgICAgICBoZWFsdGgtcGlsbC1zdGVwLWluZGV4PSJbW2hlYWx0aFBpbGxTdGVwSW5kZXhdXSIKICAgICAgICAgIGhhbmRsZS1ub2RlLXNlbGVjdGVkPSJbW2hhbmRsZU5vZGVTZWxlY3RlZF1dIgogICAgICAgICAgaGFuZGxlLWVkZ2Utc2VsZWN0ZWQ9IltbaGFuZGxlRWRnZVNlbGVjdGVkXV0iCiAgICAgICAgICB0cmFjZS1pbnB1dHM9IltbdHJhY2VJbnB1dHNdXSIKICAgICAgICAgIGF1dG8tZXh0cmFjdC1ub2Rlcz0iW1thdXRvRXh0cmFjdE5vZGVzXV0iCiAgICAgICAgPjwvdGYtZ3JhcGg+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGlkPSJpbmZvIj4KICAgICAgICA8dGYtZ3JhcGgtaW5mbwogICAgICAgICAgaWQ9ImdyYXBoLWluZm8iCiAgICAgICAgICB0aXRsZT0ic2VsZWN0ZWQiCiAgICAgICAgICBncmFwaC1oaWVyYXJjaHk9IltbZ3JhcGhIaWVyYXJjaHldXSIKICAgICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgICBncmFwaD0iW1tncmFwaF1dIgogICAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tzZWxlY3RlZE5vZGV9fSIKICAgICAgICAgIHNlbGVjdGVkLW5vZGUtaW5jbHVkZT0ie3tfc2VsZWN0ZWROb2RlSW5jbHVkZX19IgogICAgICAgICAgaGlnaGxpZ2h0ZWQtbm9kZT0ie3tfaGlnaGxpZ2h0ZWROb2RlfX0iCiAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICBjb2xvci1ieS1wYXJhbXM9IltbY29sb3JCeVBhcmFtc11dIgogICAgICAgICAgZGVidWdnZXItZGF0YS1lbmFibGVkPSJbW2RlYnVnZ2VyRGF0YUVuYWJsZWRdXSIKICAgICAgICAgIGFyZS1oZWFsdGgtcGlsbHMtbG9hZGluZz0iW1thcmVIZWFsdGhQaWxsc0xvYWRpbmddXSIKICAgICAgICAgIGRlYnVnZ2VyLW51bWVyaWMtYWxlcnRzPSJbW2RlYnVnZ2VyTnVtZXJpY0FsZXJ0c11dIgogICAgICAgICAgbm9kZS1uYW1lcy10by1oZWFsdGgtcGlsbHM9Iltbbm9kZU5hbWVzVG9IZWFsdGhQaWxsc11dIgogICAgICAgICAgYWxsLXN0ZXBzLW1vZGUtZW5hYmxlZD0ie3thbGxTdGVwc01vZGVFbmFibGVkfX0iCiAgICAgICAgICBzcGVjaWZpYy1oZWFsdGgtcGlsbC1zdGVwPSJ7e3NwZWNpZmljSGVhbHRoUGlsbFN0ZXB9fSIKICAgICAgICAgIGhlYWx0aC1waWxsLXN0ZXAtaW5kZXg9Int7aGVhbHRoUGlsbFN0ZXBJbmRleH19IgogICAgICAgICAgY29tcGF0LW5vZGUtdGl0bGU9IltbY29tcGF0Tm9kZVRpdGxlXV0iCiAgICAgICAgICBvbi1ub2RlLXRvZ2dsZS1pbmNsdXNpb249Il9vbk5vZGVJbmNsdXNpb25Ub2dnbGVkIgogICAgICAgICAgb24tbm9kZS10b2dnbGUtc2VyaWVzZ3JvdXA9Il9vbk5vZGVTZXJpZXNHcm91cFRvZ2dsZWQiCiAgICAgICAgPjwvdGYtZ3JhcGgtaW5mbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLERxdCldLGVZdC5wcm90b3R5cGUsImdyYXBoSGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHFHdCldLGVZdC5wcm90b3R5cGUsImdyYXBoIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGVZdC5wcm90b3R5cGUsImhpZXJhcmNoeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJzdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJwcm9ncmVzcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGVZdC5wcm90b3R5cGUsInRyYWNlSW5wdXRzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZVl0LnByb3RvdHlwZSwiYXV0b0V4dHJhY3ROb2RlcyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZVl0LnByb3RvdHlwZSwiY29sb3JCeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZVl0LnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIseVd0KV0sZVl0LnByb3RvdHlwZSwicmVuZGVySGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZVl0LnByb3RvdHlwZSwiZGVidWdnZXJEYXRhRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGVZdC5wcm90b3R5cGUsImFyZUhlYWx0aFBpbGxzTG9hZGluZyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLGVZdC5wcm90b3R5cGUsImRlYnVnZ2VyTnVtZXJpY0FsZXJ0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGVZdC5wcm90b3R5cGUsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLGVZdC5wcm90b3R5cGUsInNwZWNpZmljSGVhbHRoUGlsbFN0ZXAiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sZVl0LnByb3RvdHlwZSwiaGVhbHRoUGlsbFN0ZXBJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZVl0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGVZdC5wcm90b3R5cGUsImNvbXBhdE5vZGVUaXRsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJlZGdlV2lkdGhGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxlWXQucHJvdG90eXBlLCJfc2VsZWN0ZWROb2RlSW5jbHVkZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxlWXQucHJvdG90eXBlLCJfaGlnaGxpZ2h0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGVZdC5wcm90b3R5cGUsImhhbmRsZU5vZGVTZWxlY3RlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJlZGdlTGFiZWxGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlWXQucHJvdG90eXBlLCJoYW5kbGVFZGdlU2VsZWN0ZWQiLHZvaWQgMCksdChbYSgic2VsZWN0ZWROb2RlIiwicmVuZGVySGllcmFyY2h5IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxlWXQucHJvdG90eXBlLCJfdXBkYXRlTm9kZUluY2x1ZGUiLG51bGwpLHQoW2EoImdyYXBoIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxlWXQucHJvdG90eXBlLCJfc2xpbUdyYXBoQ2hhbmdlZCIsbnVsbCksdChbYSgiY29sb3JCeSIsImdyYXBoSGllcmFyY2h5IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxlWXQucHJvdG90eXBlLCJfZW5zdXJlVGVtcGxhdGVzIixudWxsKSxlWXQ9dChbaSgidGYtZ3JhcGgtYm9hcmQiKV0sZVl0KTtsZXQgbll0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fcmF3UmVnZXhJbnB1dD0iIix0aGlzLl9wcmV2aW91c1JlZ2V4SW5wdXQ9IiIsdGhpcy5fc2VhcmNoVGltZW91dERlbGF5PTE1MCx0aGlzLl9tYXhSZWdleFJlc3VsdHM9NDJ9Z2V0IF9yZWdleElucHV0KCl7cmV0dXJuIHRoaXMuX3Jhd1JlZ2V4SW5wdXQudHJpbSgpfV9yZWdleElucHV0Q2hhbmdlZCgpe3RoaXMuX3JlcXVlc3RTZWFyY2goKX1fY2xlYXJTZWFyY2hSZXN1bHRzKCl7dGhpcy5zZXQoIl9yZWdleE1hdGNoZXMiLFtdKX1fcmVxdWVzdFNlYXJjaCgpe3RoaXMuX3NlYXJjaFBlbmRpbmd8fCh0aGlzLl9yZWdleElucHV0IT09dGhpcy5fcHJldmlvdXNSZWdleElucHV0Pyh0aGlzLl9zZWFyY2hQZW5kaW5nPSEwLHRoaXMuX2V4ZWN1dGVTZWFyY2goKSx0aGlzLmFzeW5jKCgoKT0+e3RoaXMuX3NlYXJjaFBlbmRpbmc9ITEsdGhpcy5fcmVxdWVzdFNlYXJjaCgpfSksdGhpcy5fc2VhcmNoVGltZW91dERlbGF5KSk6dGhpcy5fc2VhcmNoUGVuZGluZz0hMSl9X2V4ZWN1dGVTZWFyY2goKXtpZih0aGlzLl9wcmV2aW91c1JlZ2V4SW5wdXQ9dGhpcy5fcmVnZXhJbnB1dCwhdGhpcy5fcmVnZXhJbnB1dClyZXR1cm4gdm9pZCB0aGlzLl9jbGVhclNlYXJjaFJlc3VsdHMoKTt0cnl7dmFyIHQ9bmV3IFJlZ0V4cCh0aGlzLl9yZWdleElucHV0KX1jYXRjaCh0KXtyZXR1cm4gdm9pZCB0aGlzLl9jbGVhclNlYXJjaFJlc3VsdHMoKX1jb25zdCBlPVtdLG49dGhpcy5yZW5kZXJIaWVyYXJjaHkuaGllcmFyY2h5LmdldE5vZGVNYXAoKTtTZS5leHBvcnRzLmVhY2gobiwoKG4saSk9PntpZihlLmxlbmd0aD49dGhpcy5fbWF4UmVnZXhSZXN1bHRzKXJldHVybiExO3QudGVzdChpKSYmZS5wdXNoKGkpfSkpLHRoaXMuc2V0KCJfcmVnZXhNYXRjaGVzIixlKX1fbWF0Y2hDbGlja2VkKHQpe3RoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLHQubW9kZWwuaXRlbSksVEd0KHthY3Rpb25JZDpfR3QuTk9ERV9TRUFSQ0hfUkVTVUxUX0ZPQ1VTRUR9KX19O25ZdC50ZW1wbGF0ZT1fZWAKICAgIDxkaXYgaWQ9InNlYXJjaC1jb250YWluZXIiPgogICAgICA8cGFwZXItaW5wdXQKICAgICAgICBpZD0icnVucy1yZWdleCIKICAgICAgICBsYWJlbD0iU2VhcmNoIG5vZGVzIChyZWdleCkiCiAgICAgICAgdmFsdWU9Int7X3Jhd1JlZ2V4SW5wdXR9fSIKICAgICAgPgogICAgICA8L3BhcGVyLWlucHV0PgogICAgICA8ZGl2IGlkPSJzZWFyY2gtcmVzdWx0cy1hbmNob3IiPgogICAgICAgIDxkaXYgaWQ9InNlYXJjaC1yZXN1bHRzIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX3JlZ2V4TWF0Y2hlc11dIj4KICAgICAgICAgICAgPGRpdiBpZD0ic2VhcmNoLW1hdGNoIiBvbi1jbGljaz0iX21hdGNoQ2xpY2tlZCI+W1tpdGVtXV08L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgICNzZWFyY2gtY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgfQoKICAgICAgI3J1bnMtcmVnZXggewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAjc2VhcmNoLXJlc3VsdHMtYW5jaG9yIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgICNzZWFyY2gtcmVzdWx0cyB7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAjc2VhcmNoLW1hdGNoIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICBwYWRkaW5nOiAzcHg7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgZGlyZWN0aW9uOiBydGw7CiAgICAgIH0KCiAgICAgICNzZWFyY2gtbWF0Y2g6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRiLW9yYW5nZS13ZWFrKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxuWXQucHJvdG90eXBlLCJyZW5kZXJIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLG5ZdC5wcm90b3R5cGUsInNlbGVjdGVkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxuWXQucHJvdG90eXBlLCJfcmF3UmVnZXhJbnB1dCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxuWXQucHJvdG90eXBlLCJfcHJldmlvdXNSZWdleElucHV0Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLG5ZdC5wcm90b3R5cGUsIl9zZWFyY2hUaW1lb3V0RGVsYXkiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxuWXQucHJvdG90eXBlLCJfc2VhcmNoUGVuZGluZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxuWXQucHJvdG90eXBlLCJfbWF4UmVnZXhSZXN1bHRzIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxuWXQucHJvdG90eXBlLCJfcmVnZXhNYXRjaGVzIix2b2lkIDApLHQoW3MoInJlbmRlckhpZXJhcmNoeSIsIl9yYXdSZWdleElucHV0IiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sbll0LnByb3RvdHlwZSwiX3JlZ2V4SW5wdXQiLG51bGwpLHQoW2EoIl9yZWdleElucHV0IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxuWXQucHJvdG90eXBlLCJfcmVnZXhJbnB1dENoYW5nZWQiLG51bGwpLG5ZdD10KFtpKCJ0Zi1ncmFwaC1ub2RlLXNlYXJjaCIpXSxuWXQpO2NvbnN0IGlZdD0vZGV2aWNlOihbXjpdKzpbMC05XSspJC8scll0PVt7cmVnZXg6aVl0fV0sb1l0PVtdLGFZdD1uZXcgU2V0KFthcXQuQ09NUFVURV9USU1FLGFxdC5NRU1PUlldKTtsZXQgc1l0PWNsYXNzIGV4dGVuZHMoZXIoaWwoeWUpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuQ29sb3JCeT1hcXQsdGhpcy5zdGF0cz1udWxsLHRoaXMuZGV2aWNlc0ZvclN0YXRzPW51bGwsdGhpcy5jb2xvckJ5PWFxdC5TVFJVQ1RVUkUsdGhpcy5kYXRhc2V0cz1bXSx0aGlzLl9zZWxlY3RlZFJ1bkluZGV4PTAsdGhpcy50cmFjZUlucHV0cz0hMSx0aGlzLmF1dG9FeHRyYWN0Tm9kZXM9ITAsdGhpcy5fc2VsZWN0ZWRUYWdJbmRleD0wLHRoaXMuX3NlbGVjdGVkR3JhcGhUeXBlPXlHdC5PUF9HUkFQSCx0aGlzLnNob3dTZXNzaW9uUnVuc0Ryb3Bkb3duPSEwLHRoaXMuc2hvd1VwbG9hZEJ1dHRvbj0hMCx0aGlzLl9sZWdlbmRPcGVuZWQ9ITAsdGhpcy5fZG93bmxvYWRGaWxlbmFtZT0iZ3JhcGgucG5nIn1fb25HcmFwaFR5cGVDaGFuZ2VkQnlVc2VyR2VzdHVyZSgpe1RHdCh7YWN0aW9uSWQ6X0d0LkdSQVBIX1RZUEVfQ0hBTkdFRCxldmVudExhYmVsOnRoaXMuX3NlbGVjdGVkR3JhcGhUeXBlfSl9X29uQ29sb3JCeUNoYW5nZWRCeVVzZXJHZXN0dXJlKCl7VEd0KHthY3Rpb25JZDpfR3QuTk9ERV9DT0xPUl9NT0RFX0NIQU5HRUQsZXZlbnRMYWJlbDp0aGlzLmNvbG9yQnl9KX1fb25UcmFjZUlucHV0c0NoYW5nZWRCeVVzZXJHZXN0dXJlKCl7VEd0KHthY3Rpb25JZDpfR3QuVFJBQ0VfSU5QVVRfTU9ERV9UT0dHTEVEfSl9X3hsYUNsdXN0ZXJzUHJvdmlkZWQodCl7cmV0dXJuIHQmJnQuaGllcmFyY2h5JiZ0LmhpZXJhcmNoeS54bGFDbHVzdGVycy5sZW5ndGg+MH1fc3RhdHNDaGFuZ2VkKHQpe2lmKG51bGwhPXQpe3ZhciBlPXt9O1NlLmV4cG9ydHMuZWFjaCh0LmRldl9zdGF0cywoZnVuY3Rpb24odCl7dmFyIG49U2UuZXhwb3J0cy5zb21lKHJZdCwoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVnZXgudGVzdCh0LmRldmljZSl9KSksaT1TZS5leHBvcnRzLnNvbWUob1l0LChmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWdleC50ZXN0KHQuZGV2aWNlKX0pKTtuJiYhaSYmKGVbdC5kZXZpY2VdPSEwKX0pKSx0aGlzLnNldCgiZGV2aWNlc0ZvclN0YXRzIixlKX19Z2V0IF9jdXJyZW50RGV2aWNlcygpe3ZhciB0PXRoaXMuZGV2aWNlc0ZvclN0YXRzO2NvbnN0IGU9dGhpcy5zdGF0cyxuPShlP2UuZGV2X3N0YXRzOltdKS5tYXAoKHQ9PnQuZGV2aWNlKSkuZmlsdGVyKCh0PT5yWXQuc29tZSgoZT0+ZS5yZWdleC50ZXN0KHQpKSkpKSxpPXpHdChuKTtpZigxPT1pLmxlbmd0aCl7Y29uc3QgdD1pWzBdLm1hdGNoKGlZdCk7dCYmKGlbMF09dFsxXSl9cmV0dXJuIG4ubWFwKCgoZSxuKT0+e2xldCByPW51bGw7cmV0dXJuIG9ZdC5mb3JFYWNoKCh0PT57dC5yZWdleC50ZXN0KGUpJiYocj10Lm1zZyl9KSkse2RldmljZTplLHN1ZmZpeDppW25dLHVzZWQ6dFtlXSxpZ25vcmVkTXNnOnJ9fSkpfV9kZXZpY2VDaGVja2JveENsaWNrZWQodCl7Y29uc3QgZT10LnRhcmdldCxuPU9iamVjdC5hc3NpZ24oe30sdGhpcy5kZXZpY2VzRm9yU3RhdHMpLGk9ZS52YWx1ZTtlLmNoZWNrZWQ/bltpXT0hMDpkZWxldGUgbltpXSx0aGlzLnNldCgiZGV2aWNlc0ZvclN0YXRzIixuKX1fbnVtVGFncyh0LGUpe3JldHVybiB0aGlzLl9nZXRUYWdzKHQsZSkubGVuZ3RofV9nZXRUYWdzKHQsZSl7cmV0dXJuIHQmJnRbZV0/dFtlXS50YWdzOltdfV9maXQoKXt0aGlzLmZpcmUoImZpdC10YXAiKX1faXNHcmFkaWVudENvbG9yaW5nKHQsZSl7cmV0dXJuIGFZdC5oYXMoZSkmJm51bGwhPXR9X2VxdWFscyh0LGUpe3JldHVybiB0PT09ZX1nZXQgX2N1cnJlbnREZXZpY2VQYXJhbXMoKXtjb25zdCB0PXRoaXMuY29sb3JCeVBhcmFtcy5kZXZpY2UuZmlsdGVyKCh0PT5yWXQuc29tZSgoZT0+ZS5yZWdleC50ZXN0KHQuZGV2aWNlKSkpKSksZT16R3QodC5tYXAoKHQ9PnQuZGV2aWNlKSkpO2lmKDE9PWUubGVuZ3RoKXt2YXIgbj1lWzBdLm1hdGNoKGlZdCk7biYmKGVbMF09blsxXSl9cmV0dXJuIHQubWFwKCgodCxuKT0+KHtkZXZpY2U6ZVtuXSxjb2xvcjp0LmNvbG9yfSkpKX1nZXQgX2N1cnJlbnRYbGFDbHVzdGVyUGFyYW1zKCl7cmV0dXJuIHRoaXMuY29sb3JCeVBhcmFtcy54bGFfY2x1c3Rlcn1nZXQgX2N1cnJlbnRHcmFkaWVudFBhcmFtcygpe3ZhciB0PXRoaXMuY29sb3JCeVBhcmFtcyxlPXRoaXMuY29sb3JCeTtpZighdGhpcy5faXNHcmFkaWVudENvbG9yaW5nKHRoaXMuc3RhdHMsZSkpcmV0dXJuO2NvbnN0IG49dFtlXTtsZXQgaT1uLm1pblZhbHVlLHI9bi5tYXhWYWx1ZTtyZXR1cm4gZT09PWFxdC5NRU1PUlk/KGk9Ukd0KGksTkd0KSxyPVJHdChyLE5HdCkpOmU9PT1hcXQuQ09NUFVURV9USU1FJiYoaT1SR3QoaSxJR3QpLHI9Ukd0KHIsSUd0KSkse21pblZhbHVlOmksbWF4VmFsdWU6cixzdGFydENvbG9yOm4uc3RhcnRDb2xvcixlbmRDb2xvcjpuLmVuZENvbG9yfX1kb3dubG9hZCgpe3RoaXMuZmlyZSgiZG93bmxvYWQtaW1hZ2UtcmVxdWVzdGVkIix0aGlzLl9kb3dubG9hZEZpbGVuYW1lKX1fdXBkYXRlRmlsZUlucHV0KHQpe2NvbnN0IGU9dC50YXJnZXQuZmlsZXNbMF07aWYoIWUpcmV0dXJuO2xldCBuPWUubmFtZTtjb25zdCBpPW4ubGFzdEluZGV4T2YoIi4iKTtpPj0wJiYobj1uLnN1YnN0cmluZygwLGkpKTtjb25zdCByPW4ubGFzdEluZGV4T2YoIi8iKTtyPj0wJiYobj1uLnN1YnN0cmluZyhyKzEpKSx0aGlzLl9zZXREb3dubG9hZEZpbGVuYW1lKG4pLHRoaXMuc2V0KCJzZWxlY3RlZEZpbGUiLHQpLFRHdCh7YWN0aW9uSWQ6X0d0LlVQTE9BREVEX0dSQVBIX0ZST01fRklMRVNZU1RFTX0pfV9kYXRhc2V0c0NoYW5nZWQodCxlKXt2YXIgbjtudWxsIT1lJiYodGhpcy5fc2VsZWN0ZWRSdW5JbmRleD0wKSx0aGlzLl9zZXREb3dubG9hZEZpbGVuYW1lKG51bGw9PT0obj10aGlzLmRhdGFzZXRzW3RoaXMuX3NlbGVjdGVkUnVuSW5kZXhdKXx8dm9pZCAwPT09bj92b2lkIDA6bi5uYW1lKX1fY29tcHV0ZVNlbGVjdGlvbih0LGUsbixpKXtyZXR1cm4gdFtlXSYmdFtlXS50YWdzW25dP3tydW46dFtlXS5uYW1lLHRhZzp0W2VdLnRhZ3Nbbl0udGFnLHR5cGU6aX06bnVsbH1fc2VsZWN0ZWRSdW5JbmRleENoYW5nZWQodCl7dmFyIGU7dGhpcy5kYXRhc2V0cyYmKHRoaXMuY29sb3JCeT1hcXQuU1RSVUNUVVJFLHRoaXMuX3NlbGVjdGVkVGFnSW5kZXg9MCx0aGlzLl9zZWxlY3RlZEdyYXBoVHlwZT10aGlzLl9nZXREZWZhdWx0U2VsZWN0aW9uVHlwZSgpLHRoaXMudHJhY2VJbnB1dHM9ITEsdGhpcy5fc2V0RG93bmxvYWRGaWxlbmFtZShudWxsPT09KGU9dGhpcy5kYXRhc2V0c1t0XSl8fHZvaWQgMD09PWU/dm9pZCAwOmUubmFtZSkpfV9zZWxlY3RlZFRhZ0luZGV4Q2hhbmdlZCgpe3RoaXMuX3NlbGVjdGVkR3JhcGhUeXBlPXRoaXMuX2dldERlZmF1bHRTZWxlY3Rpb25UeXBlKCl9X2dldERlZmF1bHRTZWxlY3Rpb25UeXBlKCl7Y29uc3R7ZGF0YXNldHM6dCxfc2VsZWN0ZWRSdW5JbmRleDplLF9zZWxlY3RlZFRhZ0luZGV4Om59PXRoaXM7aWYoIXR8fCF0W2VdfHwhdFtlXS50YWdzW25dfHx0W2VdLnRhZ3Nbbl0ub3BHcmFwaClyZXR1cm4geUd0Lk9QX0dSQVBIO2NvbnN0IGk9dFtlXTtyZXR1cm4gaS50YWdzW25dLnByb2ZpbGU/eUd0LlBST0ZJTEU6aS50YWdzW25dLmNvbmNlcHR1YWxHcmFwaD95R3QuQ09OQ0VQVFVBTF9HUkFQSDp5R3QuT1BfR1JBUEh9X2dldEZpbGUoKXt0aGlzLiQkKCIjZmlsZSIpLmNsaWNrKCl9X3NldERvd25sb2FkRmlsZW5hbWUodCl7dGhpcy5fZG93bmxvYWRGaWxlbmFtZT0odHx8ImdyYXBoIikrIi5wbmcifV9zdGF0c05vdE51bGwodCl7cmV0dXJuIG51bGwhPT10fV90b2dnbGVMZWdlbmRPcGVuKCl7dGhpcy5zZXQoIl9sZWdlbmRPcGVuZWQiLCF0aGlzLl9sZWdlbmRPcGVuZWQpfV9nZXRUb2dnbGVMZWdlbmRJY29uKHQpe3JldHVybiB0PyJleHBhbmQtbW9yZSI6ImV4cGFuZC1sZXNzIn1fZ2V0U2VsZWN0aW9uT3BHcmFwaERpc2FibGVkKHQsZSxuKXtyZXR1cm4hdFtlXXx8IXRbZV0udGFnc1tuXXx8IXRbZV0udGFnc1tuXS5vcEdyYXBofV9nZXRTZWxlY3Rpb25Qcm9maWxlRGlzYWJsZWQodCxlLG4pe3JldHVybiF0W2VdfHwhdFtlXS50YWdzW25dfHwhdFtlXS50YWdzW25dLnByb2ZpbGV9X2dldFNlbGVjdGlvbkNvbmNlcHR1YWxHcmFwaERpc2FibGVkKHQsZSxuKXtyZXR1cm4hdFtlXXx8IXRbZV0udGFnc1tuXXx8IXRbZV0udGFnc1tuXS5jb25jZXB0dWFsR3JhcGh9fTtzWXQudGVtcGxhdGU9X2VgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogIzU1NTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIC0tdGItZ3JhcGgtY29udHJvbHMtdGl0bGUtY29sb3I6ICMwMDA7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy1sZWdlbmQtdGV4dC1jb2xvcjogIzAwMDsKICAgICAgICAtLXRiLWdyYXBoLWNvbnRyb2xzLXRleHQtY29sb3I6ICM1NTU7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy10aXRsZS1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy1zdWJ0aXRsZS1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItc2hhcmVkLWlucHV0LXN0eWxlXy1fZm9udC1zaXplOiAxNHB4OwogICAgICAgIC0tcGFwZXItZm9udC1zdWJoZWFkXy1fZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICA6aG9zdCguZGFyay1tb2RlKSB7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy10aXRsZS1jb2xvcjogI2ZmZjsKICAgICAgICAtLXRiLWdyYXBoLWNvbnRyb2xzLWxlZ2VuZC10ZXh0LWNvbG9yOiAjZjNmM2YzOwogICAgICAgIC0tdGItZ3JhcGgtY29udHJvbHMtdGV4dC1jb2xvcjogI2VlZTsKICAgICAgfQoKICAgICAgcGFwZXItZHJvcGRvd24tbWVudSB7CiAgICAgICAgLS1wYXBlci1kcm9wZG93bi1tZW51LWlucHV0OiB7CiAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgY29sb3I6IGdyYXk7CiAgICAgICAgfQogICAgICAgIC0taXJvbi1pY29uLXdpZHRoOiAxNXB4OwogICAgICAgIC0taXJvbi1pY29uLWhlaWdodDogMTVweDsKICAgICAgICAtLXByaW1hcnktdGV4dC1jb2xvcjogZ3JheTsKICAgICAgICAtLXBhcGVyLWl0ZW0tbWluLWhlaWdodDogMzBweDsKICAgICAgfQoKICAgICAgcGFwZXItYnV0dG9uW3JhaXNlZF0ua2V5Ym9hcmQtZm9jdXMgewogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC5ydW4tZHJvcGRvd24gewogICAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyOiB7CiAgICAgICAgICBwYWRkaW5nOiA1cHggMCA1cHggNXB4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7CiAgICAgIH0KCiAgICAgIHRhYmxlIHRyIHsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmFsbGNvbnRyb2xzIHsKICAgICAgICBwYWRkaW5nOiAwIDIwcHggMjBweDsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmxlZ2VuZC1ob2xkZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy10ZXh0LWNvbG9yKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmxlZ2VuZC10b29sYmFyIHsKICAgICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tdGItZ3JhcGgtY29udHJvbHMtbGVnZW5kLXRleHQtY29sb3IpOwogICAgICAgIGZvbnQ6IGluaGVyaXQ7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmxlZ2VuZC10b29sYmFyLAogICAgICAubGVnZW5kLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDhweCAyMHB4OwogICAgICB9CgogICAgICAudG9nZ2xlLWxlZ2VuZC1idXR0b24gewogICAgICAgIG1heC1oZWlnaHQ6IDIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtbGVnZW5kLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGItZ3JhcGgtY29udHJvbHMtc3VidGl0bGUtZm9udC1zaXplKTsKICAgICAgfQoKICAgICAgcGFwZXItcmFkaW8tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA1cHg7CiAgICAgIH0KICAgICAgc3ZnLmljb24sCiAgICAgIHRmLWdyYXBoLWljb24gewogICAgICAgIHdpZHRoOiA2MHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQogICAgICAuZG9tYWluVmFsdWVzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIHdpZHRoOiAxNjVweDsKICAgICAgfQogICAgICAuZG9tYWluU3RhcnQgewogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICB9CiAgICAgIC5kb21haW5FbmQgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgfQogICAgICAuY29sb3JCb3ggewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICB9CgogICAgICAuaW1hZ2UtaWNvbiB7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICB9CgogICAgICAuaGVscC1pY29uIHsKICAgICAgICBoZWlnaHQ6IDE1cHg7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5ncmF5IHsKICAgICAgICBjb2xvcjogIzY2NjsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXRiLWdyYXBoLWNvbnRyb2xzLXRpdGxlLWZvbnQtc2l6ZSk7CiAgICAgICAgbWFyZ2luOiA4cHggNXB4IDhweCAwOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy10aXRsZS1jb2xvcik7CiAgICAgIH0KICAgICAgLnRpdGxlIHNtYWxsIHsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICB9CiAgICAgIC5kZXZpY2VMaXN0LAogICAgICAueGxhQ2x1c3Rlckxpc3QgewogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgICNmaWxlIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLmNvbG9yLWxlZ2VuZC1yb3cgewogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY2xlYXI6IGJvdGg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNXB4OwogICAgICB9CgogICAgICAuY29sb3ItbGVnZW5kLXJvdyAubGFiZWwsCiAgICAgIC5jb2xvci1sZWdlbmQtcm93IHN2ZywKICAgICAgLmNvbG9yLWxlZ2VuZC1yb3cgdGYtZ3JhcGgtaWNvbiB7CiAgICAgICAgZmxleDogMCAwIDQwcHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAuZGV2aWNlcy1jaGVja2JveCBpbnB1dCB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAuY29udHJvbC1ob2xkZXIgLmljb24tYnV0dG9uIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXRiLWdyYXBoLWNvbnRyb2xzLXN1YnRpdGxlLWZvbnQtc2l6ZSk7CiAgICAgICAgbWFyZ2luOiAwIC01cHg7CiAgICAgICAgcGFkZGluZzogNXB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy10ZXh0LWNvbG9yKTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi10ZXh0IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICAgIH0KCiAgICAgIC51cGxvYWQtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMTY1cHg7CiAgICAgICAgaGVpZ2h0OiAyNXB4OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1pY29uIHsKICAgICAgICB3aWR0aDogMjZweDsKICAgICAgICBoZWlnaHQ6IDI2cHg7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS01MDApOwogICAgICB9CgogICAgICAuaGlkZGVuLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAuYWxsY29udHJvbHMgLmNvbnRyb2wtaG9sZGVyIHsKICAgICAgICBjbGVhcjogYm90aDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLmFsbGNvbnRyb2xzIC5jb250cm9sLWhvbGRlci5jb250cm9sLW9wdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDAgMCAxNXB4IDE1cHg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLmFsbGNvbnRyb2xzIC5jb250cm9sLWhvbGRlciBwYXBlci10b2dnbGUtYnV0dG9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgIH0KCiAgICAgIHNwYW4uY291bnRlciB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy1zdWJ0aXRsZS1mb250LXNpemUpOwogICAgICAgIGNvbG9yOiBncmF5OwogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7CiAgICAgIH0KCiAgICAgIC5ydW5zLXJvdyAudGl0bGUsCiAgICAgIC50YWdzLXJvdyAudGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICB9CgogICAgICAucnVucy1yb3cgcGFwZXItaXRlbSwKICAgICAgLnRhZ3Mtcm93IHBhcGVyLWl0ZW0gewogICAgICAgIC0tcGFwZXItaXRlbTogewogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIHRhYmxlLmNvbnRyb2wtaG9sZGVyIHsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgfQoKICAgICAgdGFibGUudGYtZ3JhcGgtY29udHJvbHMgdGQuaW5wdXQtZWxlbWVudC10YWJsZS1kYXRhIHsKICAgICAgICBwYWRkaW5nOiAwIDAgMCAyMHB4OwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xvci10ZXh0IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuY29sb3ItdGV4dC5ncmFkaWVudC1jb250YWluZXIgewogICAgICAgIG1hcmdpbjogMCA1cHg7CiAgICAgIH0KCiAgICAgIC8qKiBPdmVycmlkZSBpbmxpbmUgc3R5bGVzIHRoYXQgc3VwcHJlc3MgcG9pbnRlciBldmVudHMgZm9yIGRpc2FibGVkIGJ1dHRvbnMuIE90aGVyd2lzZSwgdGhlICovCiAgICAgIC8qICB0b29sdGlwcyBkbyBub3QgYXBwZWFyLiAqLwogICAgICBwYXBlci1yYWRpby1ncm91cCBwYXBlci1yYWRpby1idXR0b24gewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZWdlbmQtY2xhcmlmaWVyIHsKICAgICAgICBjb2xvcjogIzI2NjIzNjsKICAgICAgICBjdXJzb3I6IGhlbHA7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAubGVnZW5kLWNsYXJpZmllciBwYXBlci10b29sdGlwIHsKICAgICAgICB3aWR0aDogMTUwcHg7CiAgICAgIH0KCiAgICAgIC8qKiBPdGhlcndpc2UsIHBvbHltZXIgVUkgY29udHJvbHMgYXBwZWFyIGF0b3Agbm9kZSBzZWFyY2guICovCiAgICAgIHRmLWdyYXBoLW5vZGUtc2VhcmNoIHsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBwYXBlci1kcm9wZG93bi1tZW51IHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iYWxsY29udHJvbHMiPgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciI+CiAgICAgICAgPHRmLWdyYXBoLW5vZGUtc2VhcmNoCiAgICAgICAgICBzZWxlY3RlZC1ub2RlPSJ7e3NlbGVjdGVkTm9kZX19IgogICAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0iW1tyZW5kZXJIaWVyYXJjaHldXSIKICAgICAgICA+PC90Zi1ncmFwaC1ub2RlLXNlYXJjaD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIj4KICAgICAgICA8cGFwZXItYnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgb24tdGFwPSJfZml0IiBhbHQ9IkZpdCB0byBzY3JlZW4iPgogICAgICAgICAgPGlyb24taWNvbiBpY29uPSJhc3BlY3QtcmF0aW8iIGNsYXNzPSJidXR0b24taWNvbiI+PC9pcm9uLWljb24+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYnV0dG9uLXRleHQiPkZpdCB0byBzY3JlZW48L3NwYW4+CiAgICAgICAgPC9wYXBlci1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciI+CiAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgY2xhc3M9Imljb24tYnV0dG9uIgogICAgICAgICAgb24tY2xpY2s9ImRvd25sb2FkIgogICAgICAgICAgYWx0PSJEb3dubG9hZCBQTkciCiAgICAgICAgPgogICAgICAgICAgPGlyb24taWNvbiBpY29uPSJmaWxlLWRvd25sb2FkIiBjbGFzcz0iYnV0dG9uLWljb24iPjwvaXJvbi1pY29uPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImJ1dHRvbi10ZXh0Ij5Eb3dubG9hZCBQTkc8L3NwYW4+CiAgICAgICAgPC9wYXBlci1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Iltbc2hvd1VwbG9hZEJ1dHRvbl1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciI+CiAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgIGNsYXNzPSJpY29uLWJ1dHRvbiIKICAgICAgICAgICAgb24tY2xpY2s9Il9nZXRGaWxlIgogICAgICAgICAgICBhbHQ9IlVwbG9hZCBmaWxlIgogICAgICAgICAgICB0aXRsZT0iVXBsb2FkIGEgcGJ0eHQgZmlsZSB0byB2aWV3IGEgZ3JhcGggZnJvbSB0aGUgbG9jYWwgZmlsZXN5c3RlbSIKICAgICAgICAgID4KICAgICAgICAgICAgPGlyb24taWNvbiBpY29uPSJmaWxlLXVwbG9hZCIgY2xhc3M9ImJ1dHRvbi1pY29uIj48L2lyb24taWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJ1dHRvbi10ZXh0Ij5VcGxvYWQgZmlsZTwvc3Bhbj4KICAgICAgICAgIDwvcGFwZXItYnV0dG9uPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImhpZGRlbi1pbnB1dCI+CiAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgIHR5cGU9ImZpbGUiCiAgICAgICAgICAgICAgaWQ9ImZpbGUiCiAgICAgICAgICAgICAgbmFtZT0iZmlsZSIKICAgICAgICAgICAgICBvbi1jaGFuZ2U9Il91cGRhdGVGaWxlSW5wdXQiCiAgICAgICAgICAgICAgYWNjZXB0PSIucGJ0eHQiCiAgICAgICAgICAgIC8+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIgcnVucy1yb3ciPgogICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4KICAgICAgICAgIFJ1biA8c3BhbiBjbGFzcz0iY291bnRlciI+KFtbZGF0YXNldHMubGVuZ3RoXV0pPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICBuby1sYWJlbC1mbG9hdAogICAgICAgICAgbm8tYW5pbWF0aW9ucwogICAgICAgICAgbm9pbmsKICAgICAgICAgIGhvcml6b250YWwtYWxpZ249ImxlZnQiCiAgICAgICAgICBjbGFzcz0icnVuLWRyb3Bkb3duIgogICAgICAgID4KICAgICAgICAgIDxwYXBlci1saXN0Ym94CiAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICBzZWxlY3RlZD0ie3tfc2VsZWN0ZWRSdW5JbmRleH19IgogICAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW2RhdGFzZXRzXV0iPgogICAgICAgICAgICAgIDxwYXBlci1pdGVtPltbaXRlbS5uYW1lXV08L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8L3BhcGVyLWxpc3Rib3g+CiAgICAgICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgogICAgICA8L2Rpdj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3Nob3dTZXNzaW9uUnVuc0Ryb3Bkb3duXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIHRhZ3Mtcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4KICAgICAgICAgICAgVGFnCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudGVyIgogICAgICAgICAgICAgID4oW1tfbnVtVGFncyhkYXRhc2V0cywgX3NlbGVjdGVkUnVuSW5kZXgpXV0pPC9zcGFuCiAgICAgICAgICAgID4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgICAgbm8tbGFiZWwtZmxvYXQKICAgICAgICAgICAgbm8tYW5pbWF0aW9ucwogICAgICAgICAgICBob3Jpem9udGFsLWFsaWduPSJsZWZ0IgogICAgICAgICAgICBub2luawogICAgICAgICAgICBjbGFzcz0icnVuLWRyb3Bkb3duIgogICAgICAgICAgPgogICAgICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICAgIHNlbGVjdGVkPSJ7e19zZWxlY3RlZFRhZ0luZGV4fX0iCiAgICAgICAgICAgICAgc2xvdD0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgICAgICBpdGVtcz0iW1tfZ2V0VGFncyhkYXRhc2V0cywgX3NlbGVjdGVkUnVuSW5kZXgpXV0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+W1tpdGVtLmRpc3BsYXlOYW1lXV08L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC9wYXBlci1saXN0Ym94PgogICAgICAgICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+R3JhcGggdHlwZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciBjb250cm9sLW9wdGlvbnMiPgogICAgICAgIDxwYXBlci1yYWRpby1ncm91cAogICAgICAgICAgc2VsZWN0ZWQ9Int7X3NlbGVjdGVkR3JhcGhUeXBlfX0iCiAgICAgICAgICBvbi1wYXBlci1yYWRpby1ncm91cC1jaGFuZ2VkPSJfb25HcmFwaFR5cGVDaGFuZ2VkQnlVc2VyR2VzdHVyZSIKICAgICAgICA+CiAgICAgICAgICA8IS0tIE5vdGUgdGhhdCB0aGUgbmFtZSBoYXMgdG8gbWF0Y2ggdGhhdCBvZiB0Zl9ncmFwaF9jb21tb24uU2VsZWN0aW9uVHlwZS4gLS0+CiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIG5hbWU9Im9wX2dyYXBoIgogICAgICAgICAgICBkaXNhYmxlZD0iW1tfZ2V0U2VsZWN0aW9uT3BHcmFwaERpc2FibGVkKGRhdGFzZXRzLCBfc2VsZWN0ZWRSdW5JbmRleCwgX3NlbGVjdGVkVGFnSW5kZXgpXV0iCiAgICAgICAgICAgID5PcCBncmFwaDwvcGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICA+CiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIG5hbWU9ImNvbmNlcHR1YWxfZ3JhcGgiCiAgICAgICAgICAgIGRpc2FibGVkPSJbW19nZXRTZWxlY3Rpb25Db25jZXB0dWFsR3JhcGhEaXNhYmxlZChkYXRhc2V0cywgX3NlbGVjdGVkUnVuSW5kZXgsIF9zZWxlY3RlZFRhZ0luZGV4KV1dIgogICAgICAgICAgICA+Q29uY2VwdHVhbCBncmFwaDwvcGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICA+CiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIG5hbWU9InByb2ZpbGUiCiAgICAgICAgICAgIGRpc2FibGVkPSJbW19nZXRTZWxlY3Rpb25Qcm9maWxlRGlzYWJsZWQoZGF0YXNldHMsIF9zZWxlY3RlZFJ1bkluZGV4LCBfc2VsZWN0ZWRUYWdJbmRleCldXSIKICAgICAgICAgICAgPlByb2ZpbGU8L3BhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgPgogICAgICAgIDwvcGFwZXItcmFkaW8tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+Tm9kZSBvcHRpb25zPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIGNvbnRyb2wtb3B0aW9ucyI+CiAgICAgICAgPHBhcGVyLXRvZ2dsZS1idXR0b24KICAgICAgICAgIGNoZWNrZWQ9Int7dHJhY2VJbnB1dHN9fSIKICAgICAgICAgIG9uLWNoYW5nZT0iX29uVHJhY2VJbnB1dHNDaGFuZ2VkQnlVc2VyR2VzdHVyZSIKICAgICAgICA+CiAgICAgICAgICBUcmFjZSBpbnB1dHMKICAgICAgICA8L3BhcGVyLXRvZ2dsZS1idXR0b24+CiAgICAgICAgPHBhcGVyLXRvZ2dsZS1idXR0b24gY2hlY2tlZD0ie3thdXRvRXh0cmFjdE5vZGVzfX0iPgogICAgICAgICAgQXV0by1leHRyYWN0IGhpZ2gtZGVncmVlIG5vZGVzCiAgICAgICAgPC9wYXBlci10b2dnbGUtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2hlYWx0aFBpbGxzRmVhdHVyZUVuYWJsZWRdXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIiPgogICAgICAgICAgPHBhcGVyLXRvZ2dsZS1idXR0b24gY2hlY2tlZD0ie3toZWFsdGhQaWxsc1RvZ2dsZWRPbn19IgogICAgICAgICAgICA+U2hvdyBoZWFsdGggcGlsbHM8L3BhcGVyLXRvZ2dsZS1idXR0b24KICAgICAgICAgID4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPkNvbG9yIGJ5PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIGNvbnRyb2wtb3B0aW9ucyI+CiAgICAgICAgPHBhcGVyLXJhZGlvLWdyb3VwCiAgICAgICAgICBzZWxlY3RlZD0ie3tjb2xvckJ5fX0iCiAgICAgICAgICBvbi1wYXBlci1yYWRpby1ncm91cC1jaGFuZ2VkPSJfb25Db2xvckJ5Q2hhbmdlZEJ5VXNlckdlc3R1cmUiCiAgICAgICAgPgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbiBuYW1lPSJbW0NvbG9yQnkuTk9ORV1dIj5Ob25lPC9wYXBlci1yYWRpby1idXR0b24+CgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbiBuYW1lPSJbW0NvbG9yQnkuU1RSVUNUVVJFXV0iCiAgICAgICAgICAgID5TdHJ1Y3R1cmU8L3BhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgPgoKICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24gbmFtZT0iW1tDb2xvckJ5LkRFVklDRV1dIgogICAgICAgICAgICA+RGV2aWNlPC9wYXBlci1yYWRpby1idXR0b24KICAgICAgICAgID4KCiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIGlkPSJ4bGEtY2x1c3Rlci1yYWRpby1idXR0b24iCiAgICAgICAgICAgIG5hbWU9IltbQ29sb3JCeS5YTEFfQ0xVU1RFUl1dIgogICAgICAgICAgICBkaXNhYmxlZD0iW1shX3hsYUNsdXN0ZXJzUHJvdmlkZWQocmVuZGVySGllcmFyY2h5KV1dIgogICAgICAgICAgPgogICAgICAgICAgICBYTEEgY2x1c3RlcgogICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgIGZvcj0ieGxhLWNsdXN0ZXItcmFkaW8tYnV0dG9uIgogICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgID4KICAgICAgICAgICAgQ29sb3JpbmcgYnkgWExBIGNsdXN0ZXIgaXMgb25seSBlbmFibGVkIGlmIGF0IGxlYXN0IDEgb3Agc3BlY2lmaWVzCiAgICAgICAgICAgIGFuIFhMQSBjbHVzdGVyLgogICAgICAgICAgPC9wYXBlci10b29sdGlwPgoKICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24KICAgICAgICAgICAgaWQ9ImNvbXB1dGUtdGltZS1yYWRpby1idXR0b24iCiAgICAgICAgICAgIG5hbWU9IltbQ29sb3JCeS5DT01QVVRFX1RJTUVdXSIKICAgICAgICAgICAgZGlzYWJsZWQ9IltbIXN0YXRzXV0iCiAgICAgICAgICA+CiAgICAgICAgICAgIENvbXB1dGUgdGltZQogICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgIGZvcj0iY29tcHV0ZS10aW1lLXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICA+CiAgICAgICAgICAgIENvbG9yaW5nIGJ5IGNvbXB1dGUgdGltZSBpcyBvbmx5IGVuYWJsZWQgaWYgdGhlIFJ1bk1ldGFkYXRhIHByb3RvIGlzCiAgICAgICAgICAgIHBhc3NlZCB0byB0aGUgRmlsZVdyaXRlciB3aGVuIGEgc3BlY2lmaWMgc2Vzc2lvbiBpcyBydW4uCiAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgICBpZD0ibWVtb3J5LXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgbmFtZT0iW1tDb2xvckJ5Lk1FTU9SWV1dIgogICAgICAgICAgICBkaXNhYmxlZD0iW1shc3RhdHNdXSIKICAgICAgICAgID4KICAgICAgICAgICAgTWVtb3J5CiAgICAgICAgICA8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgZm9yPSJtZW1vcnktcmFkaW8tYnV0dG9uIgogICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgID4KICAgICAgICAgICAgQ29sb3JpbmcgYnkgbWVtb3J5IGlzIG9ubHkgZW5hYmxlZCBpZiB0aGUgUnVuTWV0YWRhdGEgcHJvdG8gaXMKICAgICAgICAgICAgcGFzc2VkIHRvIHRoZSBGaWxlV3JpdGVyIHdoZW4gYSBzcGVjaWZpYyBzZXNzaW9uIGlzIHJ1bi4KICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KCiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIGlkPSJ0cHUtY29tcGF0aWJpbGl0eS1yYWRpby1idXR0b24iCiAgICAgICAgICAgIG5hbWU9IltbQ29sb3JCeS5PUF9DT01QQVRJQklMSVRZXV0iCiAgICAgICAgICA+CiAgICAgICAgICAgIFRQVSBjb21wYXRpYmlsaXR5CiAgICAgICAgICA8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgZm9yPSJ0cHUtY29tcGF0aWJpbGl0eS1yYWRpby1idXR0b24iCiAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgPgogICAgICAgICAgICBDb2xvcmluZyBieSB3aGV0aGVyIGFuIG9wZXJhdGlvbiBpcyBjb21wYXRpYmxlIGZvciB0aGUgVFBVIGRldmljZS4KICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICA8L3BhcGVyLXJhZGlvLWdyb3VwPgogICAgICAgIDxzcGFuIGNsYXNzPSJzcGFjZXIiPjwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1ob2xkZXIiPgogICAgICA8YnV0dG9uIGNsYXNzPSJsZWdlbmQtdG9vbGJhciIgb24tY2xpY2s9Il90b2dnbGVMZWdlbmRPcGVuIj4KICAgICAgICA8c3BhbiBjbGFzcz0idG9nZ2xlLWxlZ2VuZC10ZXh0Ij5MZWdlbmQ8L3NwYW4+CiAgICAgICAgPGlyb24taWNvbgogICAgICAgICAgaWNvbj0iW1tfZ2V0VG9nZ2xlTGVnZW5kSWNvbihfbGVnZW5kT3BlbmVkKV1dIgogICAgICAgICAgY2xhc3M9InRvZ2dsZS1sZWdlbmQtYnV0dG9uIgogICAgICAgID4KICAgICAgICA8L2lyb24taWNvbj4KICAgICAgPC9idXR0b24+CiAgICAgIDxpcm9uLWNvbGxhcHNlIG9wZW5lZD0iW1tfbGVnZW5kT3BlbmVkXV0iIGNsYXNzPSJsZWdlbmQtY29udGVudCI+CiAgICAgICAgPCEtLSBDb2xvci1tb2RlLXNwZWNpZmljIGxlZ2VuZCBpdGVtcyAtLT4KICAgICAgICA8ZGl2PgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc0dyYWRpZW50Q29sb3Jpbmcoc3RhdHMsIGNvbG9yQnkpXV0iPgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNDAiIGhlaWdodD0iMjAiIGNsYXNzPSJjb2xvci10ZXh0IGdyYWRpZW50LWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQKICAgICAgICAgICAgICAgICAgaWQ9ImxpbmVhckdyYWRpZW50IgogICAgICAgICAgICAgICAgICB4MT0iMCUiCiAgICAgICAgICAgICAgICAgIHkxPSIwJSIKICAgICAgICAgICAgICAgICAgeDI9IjEwMCUiCiAgICAgICAgICAgICAgICAgIHkyPSIwJSIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPHN0b3AKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ic3RhcnQiCiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwJSIKICAgICAgICAgICAgICAgICAgICBzdG9wLWNvbG9yJD0iW1tfY3VycmVudEdyYWRpZW50UGFyYW1zLnN0YXJ0Q29sb3JdXSIKICAgICAgICAgICAgICAgICAgPjwvc3RvcD4KICAgICAgICAgICAgICAgICAgPHN0b3AKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZW5kIgogICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMTAwJSIKICAgICAgICAgICAgICAgICAgICBzdG9wLWNvbG9yJD0iW1tfY3VycmVudEdyYWRpZW50UGFyYW1zLmVuZENvbG9yXV0iCiAgICAgICAgICAgICAgICAgID48L3N0b3A+CiAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgICAgICA8cmVjdAogICAgICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICAgICB3aWR0aD0iMTM1IgogICAgICAgICAgICAgICAgaGVpZ2h0PSIyMCIKICAgICAgICAgICAgICAgIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQpIgogICAgICAgICAgICAgICAgc3Ryb2tlPSJibGFjayIKICAgICAgICAgICAgICA+PC9yZWN0PgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9tYWluVmFsdWVzIGNvbG9yLXRleHQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpblN0YXJ0Ij5bW19jdXJyZW50R3JhZGllbnRQYXJhbXMubWluVmFsdWVdXTwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpbkVuZCI+W1tfY3VycmVudEdyYWRpZW50UGFyYW1zLm1heFZhbHVlXV08L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxiciBzdHlsZT0iY2xlYXI6IGJvdGgiIC8+CiAgICAgICAgICAgIDxkaXY+RGV2aWNlcyBpbmNsdWRlZCBpbiBzdGF0czo8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV2aWNlTGlzdCI+CiAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY3VycmVudERldmljZXNdXSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93IGRldmljZXMtY2hlY2tib3giPgogICAgICAgICAgICAgICAgICA8c3BhbgogICAgICAgICAgICAgICAgICAgID48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgICAgICAgdmFsdWUkPSJbW2l0ZW0uZGV2aWNlXV0iCiAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkJD0iW1tpdGVtLnVzZWRdXSIKICAgICAgICAgICAgICAgICAgICAgIG9uLWNsaWNrPSJfZGV2aWNlQ2hlY2tib3hDbGlja2VkIgogICAgICAgICAgICAgICAgICAvPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+W1tpdGVtLnN1ZmZpeF1dPC9zcGFuPgogICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbaXRlbS5pZ25vcmVkTXNnXV0iPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgaWNvbj0iaGVscCIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJoZWxwLWljb24iCiAgICAgICAgICAgICAgICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgID5bW2l0ZW0uaWdub3JlZE1zZ11dPC9wYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19lcXVhbHMoY29sb3JCeSwgJ3N0cnVjdHVyZScpXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci10ZXh0Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCI+IGNvbG9ycyA8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj5zYW1lIHN1YnN0cnVjdHVyZTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uCiAgICAgICAgICAgICAgICAgIHR5cGU9Ik1FVEEiCiAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTYiCiAgICAgICAgICAgICAgICAgIGZpbGwtb3ZlcnJpZGU9IiNlZWUiCiAgICAgICAgICAgICAgICAgIHN0cm9rZS1vdmVycmlkZT0iI2E2YTZhNiIKICAgICAgICAgICAgICAgID48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj51bmlxdWUgc3Vic3RydWN0dXJlPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2VxdWFscyhjb2xvckJ5LCAnZGV2aWNlJyldXSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY3VycmVudERldmljZVBhcmFtc11dIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbgogICAgICAgICAgICAgICAgICAgIHR5cGU9Ik1FVEEiCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNiIKICAgICAgICAgICAgICAgICAgICBmaWxsLW92ZXJyaWRlPSJbW2l0ZW0uY29sb3JdXSIKICAgICAgICAgICAgICAgICAgICBzdHJva2Utb3ZlcnJpZGU9IiNhNmE2YTYiCiAgICAgICAgICAgICAgICAgID48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2xvci1sZWdlbmQtdmFsdWUiPltbaXRlbS5kZXZpY2VdXTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyI+CiAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbgogICAgICAgICAgICAgICAgICB0eXBlPSJNRVRBIgogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE2IgogICAgICAgICAgICAgICAgICBmaWxsLW92ZXJyaWRlPSIjZWVlIgogICAgICAgICAgICAgICAgICBzdHJva2Utb3ZlcnJpZGU9IiNhNmE2YTYiCiAgICAgICAgICAgICAgICA+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+dW5rbm93biBkZXZpY2U8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZXF1YWxzKGNvbG9yQnksICd4bGFfY2x1c3RlcicpXV0iPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2N1cnJlbnRYbGFDbHVzdGVyUGFyYW1zXV0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzdmc+CiAgICAgICAgICAgICAgICAgICAgPHVzZQogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgICAgICAgICAgICAgICAgICAgICB4bGluazpocmVmPSIjdW5maWxsZWQtcmVjdCIKICAgICAgICAgICAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6W1tpdGVtLmNvbG9yXV0iCiAgICAgICAgICAgICAgICAgICAgPjwvdXNlPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+W1tpdGVtLnhsYV9jbHVzdGVyXV08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgICAgPHN2Zz4KICAgICAgICAgICAgICAgICAgPHVzZQogICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgICAgICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNncmV5LXJlY3QiCiAgICAgICAgICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgICAgICA+PC91c2U+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2xvci1sZWdlbmQtdmFsdWUiPnVua25vd24gWExBIGNsdXN0ZXI8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZXF1YWxzKGNvbG9yQnksICdvcF9jb21wYXRpYmlsaXR5JyldXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLXRleHQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24KICAgICAgICAgICAgICAgICAgdHlwZT0iT1AiCiAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTYiCiAgICAgICAgICAgICAgICAgIGZpbGwtb3ZlcnJpZGU9IiMwZjlkNTgiCiAgICAgICAgICAgICAgICAgIHN0cm9rZS1vdmVycmlkZT0iI2NjYyIKICAgICAgICAgICAgICAgID48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj5WYWxpZCBPcDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uCiAgICAgICAgICAgICAgICAgIHR5cGU9Ik9QIgogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE2IgogICAgICAgICAgICAgICAgICBmaWxsLW92ZXJyaWRlPSIjZGI0NDM3IgogICAgICAgICAgICAgICAgICBzdHJva2Utb3ZlcnJpZGU9IiNjY2MiCiAgICAgICAgICAgICAgICA+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+SW52YWxpZCBPcDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zdGF0c05vdE51bGwoc3RhdHMpXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbiB0eXBlPSJNRVRBIiBoZWlnaHQ9IjE2IiBmYWRlZD48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+dW51c2VkIHN1YnN0cnVjdHVyZTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIENvbW1vbiBsZWdlbmQgaXRlbXMgLS0+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgPHRkPigqID0gZXhwYW5kYWJsZSk8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbgogICAgICAgICAgICAgICAgICAgIHR5cGU9Ik1FVEEiCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNiIKICAgICAgICAgICAgICAgICAgICBmaWxsLW92ZXJyaWRlPSIjZDlkOWQ5IgogICAgICAgICAgICAgICAgICAgIHN0cm9rZS1vdmVycmlkZT0iI2NjYyIKICAgICAgICAgICAgICAgICAgPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIE5hbWVzcGFjZTxzcGFuIGNsYXNzPSJncmF5Ij4qPC9zcGFuPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgRW5jYXBzdWxhdGVzIGEgc2V0IG9mIG5vZGVzLiBOYW1lc3BhY2UgaXMgaGllcmFyY2hpY2FsIGFuZAogICAgICAgICAgICAgICAgICAgICAgYmFzZWQgb24gc2NvcGUuCiAgICAgICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uIHR5cGU9Ik9QIiBoZWlnaHQ9IjE2Ij48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICBPcE5vZGUKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLWNsYXJpZmllciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Pzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIE5vZGUgdGhhdCBwZXJmb3JtcyBhbiBvcGVyYXRpb24uIFRoZXNlIG5vZGVzIGNhbm5vdAogICAgICAgICAgICAgICAgICAgICAgZXhwYW5kLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbiB0eXBlPSJTRVJJRVMiIGhlaWdodD0iMTYiPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIFVuY29ubmVjdGVkIHNlcmllczxzcGFuIGNsYXNzPSJncmF5Ij4qPC9zcGFuPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgU2VxdWVuY2Ugb2YgbnVtYmVyZWQgbm9kZXMgdGhhdCBhcmUgbm90IGNvbm5lY3RlZCB0byBlYWNoCiAgICAgICAgICAgICAgICAgICAgICBvdGhlci4KICAgICAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24KICAgICAgICAgICAgICAgICAgICB0eXBlPSJTRVJJRVMiCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNiIKICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbAogICAgICAgICAgICAgICAgICA+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgQ29ubmVjdGVkIHNlcmllczxzcGFuIGNsYXNzPSJncmF5Ij4qPC9zcGFuPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgU2VxdWVuY2Ugb2YgbnVtYmVyZWQgbm9kZXMgdGhhdCBhcmUgY29ubmVjdGVkIHRvIGVhY2gKICAgICAgICAgICAgICAgICAgICAgIG90aGVyLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIj4KICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlCiAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJ3aGl0ZSIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT0iIzg0ODQ4NCIKICAgICAgICAgICAgICAgICAgICAgIGN4PSIxMCIKICAgICAgICAgICAgICAgICAgICAgIGN5PSIxMCIKICAgICAgICAgICAgICAgICAgICAgIHI9IjUiCiAgICAgICAgICAgICAgICAgICAgPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIENvbnN0YW50CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBOb2RlIHRoYXQgb3V0cHV0cyBhIGNvbnN0YW50IHZhbHVlLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbiB0eXBlPSJTVU1NQVJZIiBoZWlnaHQ9IjIwIj48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICBTdW1tYXJ5CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBOb2RlIHRoYXQgY29sbGVjdHMgZGF0YSBmb3IgdmlzdWFsaXphdGlvbiB3aXRoaW4KICAgICAgICAgICAgICAgICAgICAgIFRlbnNvckJvYXJkLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8c3ZnCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imljb24iCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNXB4IgogICAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgICAgICAgICAgICAgdmlld0JveD0iMCAwIDE1IDE1IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICAgICAgICA8bWFya2VyCiAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJkYXRhZmxvdy1hcnJvd2hlYWQtbGVnZW5kIgogICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSIjYmJiIgogICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJXaWR0aD0iMTAiCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtlckhlaWdodD0iMTAiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZlg9IjkiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZlk9IjUiCiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNIDAsMCBMIDEwLDUgTCAwLDEwIEMgMyw3IDMsMyAwLDAiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgIDwvbWFya2VyPgogICAgICAgICAgICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgbWFya2VyLWVuZD0idXJsKCNkYXRhZmxvdy1hcnJvd2hlYWQtbGVnZW5kKSIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT0iI2JiYiIKICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0yIDkgbCAyOSAwIgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogICAgICAgICAgICAgICAgICAgID48L3BhdGg+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgRGF0YWZsb3cgZWRnZQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgRWRnZSBzaG93aW5nIHRoZSBkYXRhIGZsb3cgYmV0d2VlbiBvcGVyYXRpb25zLiBFZGdlcyBmbG93CiAgICAgICAgICAgICAgICAgICAgICB1cHdhcmRzIHVubGVzcyBhcnJvd2hlYWRzIHNwZWNpZnkgb3RoZXJ3aXNlLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8c3ZnCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imljb24iCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNXB4IgogICAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgICAgICAgICAgICAgdmlld0JveD0iMCAwIDE1IDE1IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT0iI2JiYiIKICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0yIDkgbCAyOSAwIgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hhcnJheT0iMiwgMiIKICAgICAgICAgICAgICAgICAgICA+PC9wYXRoPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIENvbnRyb2wgZGVwZW5kZW5jeSBlZGdlCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBFZGdlIHNob3dpbmcgdGhlIGNvbnRyb2wgZGVwZW5kZW5jeSBiZXR3ZWVuIG9wZXJhdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxzdmcKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiIKICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE1cHgiCiAgICAgICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PSIwIDAgMTUgMTUiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8ZGVmcz4KICAgICAgICAgICAgICAgICAgICAgIDxtYXJrZXIKICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InJlZmVyZW5jZS1hcnJvd2hlYWQtbGVnZW5kIgogICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSIjRkZCNzREIgogICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJXaWR0aD0iMTAiCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtlckhlaWdodD0iMTAiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZlg9IjkiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZlk9IjUiCiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNIDAsMCBMIDEwLDUgTCAwLDEwIEMgMyw3IDMsMyAwLDAiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgIDwvbWFya2VyPgogICAgICAgICAgICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgbWFya2VyLWVuZD0idXJsKCNyZWZlcmVuY2UtYXJyb3doZWFkLWxlZ2VuZCkiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9IiNGRkI3NEQiCiAgICAgICAgICAgICAgICAgICAgICBkPSJNMiA5IGwgMjkgMCIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICAgICAgICAgICAgICAgICAgICA+PC9wYXRoPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZSBlZGdlCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBFZGdlIHNob3dpbmcgdGhhdCB0aGUgb3V0Z29pbmcgb3BlcmF0aW9uIG5vZGUgY2FuIG11dGF0ZQogICAgICAgICAgICAgICAgICAgICAgdGhlIGluY29taW5nIHRlbnNvci4KICAgICAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9pcm9uLWNvbGxhcHNlPgogICAgPC9kaXY+CiAgYCx0KFtvKHt0eXBlOk9iamVjdCxvYnNlcnZlcjoiX3N0YXRzQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sc1l0LnByb3RvdHlwZSwic3RhdHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHNZdC5wcm90b3R5cGUsImRldmljZXNGb3JTdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sc1l0LnByb3RvdHlwZSwiY29sb3JCeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sc1l0LnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5LG9ic2VydmVyOiJfZGF0YXNldHNDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxzWXQucHJvdG90eXBlLCJkYXRhc2V0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIix5V3QpXSxzWXQucHJvdG90eXBlLCJyZW5kZXJIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLHJlYWRPbmx5OiEwLGNvbXB1dGVkOiJfY29tcHV0ZVNlbGVjdGlvbihkYXRhc2V0cywgX3NlbGVjdGVkUnVuSW5kZXgsIF9zZWxlY3RlZFRhZ0luZGV4LCBfc2VsZWN0ZWRHcmFwaFR5cGUpIn0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxzWXQucHJvdG90eXBlLCJzZWxlY3Rpb24iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHNZdC5wcm90b3R5cGUsInNlbGVjdGVkRmlsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixvYnNlcnZlcjoiX3NlbGVjdGVkUnVuSW5kZXhDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxzWXQucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5JbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxzWXQucHJvdG90eXBlLCJ0cmFjZUlucHV0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxzWXQucHJvdG90eXBlLCJhdXRvRXh0cmFjdE5vZGVzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG9ic2VydmVyOiJfc2VsZWN0ZWRUYWdJbmRleENoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLHNZdC5wcm90b3R5cGUsIl9zZWxlY3RlZFRhZ0luZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHNZdC5wcm90b3R5cGUsIl9zZWxlY3RlZEdyYXBoVHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sc1l0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sc1l0LnByb3RvdHlwZSwic2hvd1Nlc3Npb25SdW5zRHJvcGRvd24iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxzWXQucHJvdG90eXBlLCJzaG93VXBsb2FkQnV0dG9uIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sc1l0LnByb3RvdHlwZSwiaGVhbHRoUGlsbHNGZWF0dXJlRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxzWXQucHJvdG90eXBlLCJoZWFsdGhQaWxsc1RvZ2dsZWRPbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHNZdC5wcm90b3R5cGUsIl9sZWdlbmRPcGVuZWQiLHZvaWQgMCksdChbcygiZGV2aWNlc0ZvclN0YXRzIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxzWXQucHJvdG90eXBlLCJfY3VycmVudERldmljZXMiLG51bGwpLHQoW3MoImNvbG9yQnlQYXJhbXMiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHNZdC5wcm90b3R5cGUsIl9jdXJyZW50RGV2aWNlUGFyYW1zIixudWxsKSx0KFtzKCJjb2xvckJ5UGFyYW1zIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxzWXQucHJvdG90eXBlLCJfY3VycmVudFhsYUNsdXN0ZXJQYXJhbXMiLG51bGwpLHQoW3MoImNvbG9yQnlQYXJhbXMiLCJjb2xvckJ5IiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sc1l0LnByb3RvdHlwZSwiX2N1cnJlbnRHcmFkaWVudFBhcmFtcyIsbnVsbCksc1l0PXQoW2koInRmLWdyYXBoLWNvbnRyb2xzIildLHNZdCk7Y2xhc3MgbFl0e2lzTm90VHB1T3AodCl7cmV0dXJuLTEhPXQudG9Mb3dlckNhc2UoKS5zZWFyY2goImNwdToiKXx8LTEhPXQudG9Mb3dlckNhc2UoKS5zZWFyY2goImdwdToiKXx8LTE9PXQudG9Mb3dlckNhc2UoKS5zZWFyY2goInRwdSIpfW9wVmFsaWQodCl7cmV0dXJuIDA9PXQubmFtZS5zZWFyY2goVkd0KXx8IXQub3B8fCEoIXQuZGV2aWNlfHwhdGhpcy5pc05vdFRwdU9wKHQuZGV2aWNlKSl8fCEoIXQuZGV2aWNlfHwtMT09dC5kZXZpY2Uuc2VhcmNoKCJUUFVfU1lTVEVNIikpfHxTZS5leHBvcnRzLmluY2x1ZGVzKGxZdC5XSElURUxJU1QsdC5vcCl9fWZ1bmN0aW9uIGNZdCh0KXtyZXR1cm4gbmV3IFByb21pc2UoKChlLG4pPT57ZmV0Y2godCkudGhlbigodD0+e3Qub2s/dC5hcnJheUJ1ZmZlcigpLnRoZW4oZSxuKTp0LnRleHQoKS50aGVuKG4sbil9KSl9KSl9bFl0LldISVRFTElTVD1bIkFicyIsIkFjb3MiLCJBY29zaCIsIkFkZCIsIkFkZE4iLCJBZGRWMiIsIkFkanVzdENvbnRyYXN0djIiLCJBZGp1c3RIdWUiLCJBZGp1c3RTYXR1cmF0aW9uIiwiQWxsIiwiQWxsVG9BbGwiLCJBbmdsZSIsIkFueSIsIkFwcHJveGltYXRlRXF1YWwiLCJBcmdNYXgiLCJBcmdNaW4iLCJBc2luIiwiQXNpbmgiLCJBc3NlcnQiLCJBc3NpZ25BZGRWYXJpYWJsZU9wIiwiQXNzaWduU3ViVmFyaWFibGVPcCIsIkFzc2lnblZhcmlhYmxlT3AiLCJBdGFuIiwiQXRhbjIiLCJBdGFuaCIsIkF2Z1Bvb2wiLCJBdmdQb29sM0QiLCJBdmdQb29sM0RHcmFkIiwiQXZnUG9vbEdyYWQiLCJCYXRjaE1hdE11bCIsIkJhdGNoTWF0TXVsVjIiLCJCYXRjaFRvU3BhY2UiLCJCYXRjaFRvU3BhY2VORCIsIkJlc3NlbEkwZSIsIkJlc3NlbEkxZSIsIkJldGFpbmMiLCJCaWFzQWRkIiwiQmlhc0FkZEdyYWQiLCJCaWFzQWRkVjEiLCJCaXRjYXN0IiwiQml0d2lzZUFuZCIsIkJpdHdpc2VPciIsIkJpdHdpc2VYb3IiLCJCcm9hZGNhc3RBcmdzIiwiQnJvYWRjYXN0R3JhZGllbnRBcmdzIiwiQnJvYWRjYXN0VG8iLCJCdWNrZXRpemUiLCJDYXNlIiwiQ2FzdCIsIkNlaWwiLCJDaGVja051bWVyaWNzIiwiQ2hvbGVza3kiLCJDbGlwQnlWYWx1ZSIsIkNvbGxlY3RpdmVQZXJtdXRlIiwiQ29sbGVjdGl2ZVJlZHVjZVYyIiwiQ29tcGxleCIsIkNvbXBsZXhBYnMiLCJDb25jYXQiLCJDb25jYXRPZmZzZXQiLCJDb25jYXRWMiIsIkNvbmoiLCJDb25qdWdhdGVUcmFuc3Bvc2UiLCJDb25zdCIsIkNvbnRyb2xUcmlnZ2VyIiwiQ29udjJEIiwiQ29udjJEQmFja3Byb3BGaWx0ZXIiLCJDb252MkRCYWNrcHJvcElucHV0IiwiQ29udjNEIiwiQ29udjNEQmFja3Byb3BGaWx0ZXJWMiIsIkNvbnYzREJhY2twcm9wSW5wdXRWMiIsIkNvcyIsIkNvc2giLCJDcm9zcyIsIkNyb3NzUmVwbGljYVN1bSIsIkN1bXByb2QiLCJDdW1zdW0iLCJEYXRhRm9ybWF0RGltTWFwIiwiRGF0YUZvcm1hdFZlY1Blcm11dGUiLCJEZXB0aFRvU3BhY2UiLCJEZXB0aHdpc2VDb252MmROYXRpdmUiLCJEZXB0aHdpc2VDb252MmROYXRpdmVCYWNrcHJvcEZpbHRlciIsIkRlcHRod2lzZUNvbnYyZE5hdGl2ZUJhY2twcm9wSW5wdXQiLCJEZXF1YW50aXplIiwiRGV2aWNlSW5kZXgiLCJEaWFnIiwiRGlhZ1BhcnQiLCJEaWdhbW1hIiwiRGl2IiwiRGl2Tm9OYW4iLCJEeW5hbWljU3RpdGNoIiwiRWluc3VtIiwiRWx1IiwiRWx1R3JhZCIsIkVtcHR5IiwiRW1wdHlUZW5zb3JMaXN0IiwiRW5zdXJlU2hhcGUiLCJFcXVhbCIsIkVyZiIsIkVyZmMiLCJFcmZpbnYiLCJFeHAiLCJFeHBhbmREaW1zIiwiRXhwbTEiLCJFeHRyYWN0SW1hZ2VQYXRjaGVzIiwiRkZUIiwiRkZUMkQiLCJGRlQzRCIsIkZha2VQYXJhbSIsIkZha2VRdWFudFdpdGhNaW5NYXhBcmdzIiwiRmFrZVF1YW50V2l0aE1pbk1heEFyZ3NHcmFkaWVudCIsIkZha2VRdWFudFdpdGhNaW5NYXhWYXJzIiwiRmFrZVF1YW50V2l0aE1pbk1heFZhcnNHcmFkaWVudCIsIkZpbGwiLCJGbG9vciIsIkZsb29yRGl2IiwiRmxvb3JNb2QiLCJGdXNlZEJhdGNoTm9ybSIsIkZ1c2VkQmF0Y2hOb3JtR3JhZCIsIkZ1c2VkQmF0Y2hOb3JtR3JhZFYyIiwiRnVzZWRCYXRjaE5vcm1HcmFkVjMiLCJGdXNlZEJhdGNoTm9ybVYyIiwiRnVzZWRCYXRjaE5vcm1WMyIsIkdhdGhlciIsIkdhdGhlck5kIiwiR2F0aGVyVjIiLCJHZXRJdGVtIiwiR3JlYXRlciIsIkdyZWF0ZXJFcXVhbCIsIkhTVlRvUkdCIiwiSUZGVCIsIklGRlQyRCIsIklGRlQzRCIsIklSRkZUIiwiSVJGRlQyRCIsIklSRkZUM0QiLCJJZGVudGl0eSIsIklkZW50aXR5TiIsIklmIiwiSWdhbW1hIiwiSWdhbW1hR3JhZEEiLCJJZ2FtbWFjIiwiSW1hZyIsIkluVG9wS1YyIiwiSW5mZWVkRGVxdWV1ZSIsIkluZmVlZERlcXVldWVUdXBsZSIsIklucGxhY2VBZGQiLCJJbnBsYWNlVXBkYXRlIiwiSW52IiwiSW52ZXJ0IiwiSW52ZXJ0UGVybXV0YXRpb24iLCJJc0Zpbml0ZSIsIklzSW5mIiwiSXNOYW4iLCJLdGhPcmRlclN0YXRpc3RpYyIsIkwyTG9zcyIsIkxSTiIsIkxSTkdyYWQiLCJMZWFreVJlbHUiLCJMZWFreVJlbHVHcmFkIiwiTGVmdFNoaWZ0IiwiTGVzcyIsIkxlc3NFcXVhbCIsIkxnYW1tYSIsIkxpblNwYWNlIiwiTGlzdERpZmYiLCJMb2ciLCJMb2cxcCIsIkxvZ1NvZnRtYXgiLCJMb2dpY2FsQW5kIiwiTG9naWNhbE5vdCIsIkxvZ2ljYWxPciIsIkxvd2VyQm91bmQiLCJNYWtlVW5pcXVlIiwiTWF0TXVsIiwiTWF0cml4QmFuZFBhcnQiLCJNYXRyaXhEaWFnIiwiTWF0cml4RGlhZ1BhcnQiLCJNYXRyaXhEaWFnUGFydFYyIiwiTWF0cml4RGlhZ1BhcnRWMyIsIk1hdHJpeERpYWdWMiIsIk1hdHJpeERpYWdWMyIsIk1hdHJpeEludmVyc2UiLCJNYXRyaXhTZXREaWFnIiwiTWF0cml4U2V0RGlhZ1YyIiwiTWF0cml4U2V0RGlhZ1YzIiwiTWF0cml4U29sdmUiLCJNYXRyaXhUcmlhbmd1bGFyU29sdmUiLCJNYXgiLCJNYXhQb29sIiwiTWF4UG9vbDNEIiwiTWF4UG9vbDNER3JhZCIsIk1heFBvb2wzREdyYWRHcmFkIiwiTWF4UG9vbEdyYWQiLCJNYXhQb29sR3JhZEdyYWQiLCJNYXhQb29sR3JhZEdyYWRWMiIsIk1heFBvb2xHcmFkVjIiLCJNYXhQb29sVjIiLCJNYXhpbXVtIiwiTWVhbiIsIk1pbiIsIk1pbmltdW0iLCJNaXJyb3JQYWQiLCJNaXJyb3JQYWRHcmFkIiwiTW9kIiwiTXVsIiwiTXVsTm9OYW4iLCJNdWx0aW5vbWlhbCIsIk5kdHJpIiwiTmVnIiwiTmV4dEFmdGVyIiwiTm9PcCIsIk5vbk1heFN1cHByZXNzaW9uVjQiLCJOb3RFcXVhbCIsIk9uZUhvdCIsIk9uZXNMaWtlIiwiT3V0ZmVlZEVucXVldWUiLCJPdXRmZWVkRW5xdWV1ZVR1cGxlIiwiUGFjayIsIlBhZCIsIlBhZFYyIiwiUGFyYWxsZWxEeW5hbWljU3RpdGNoIiwiUGFyYW1ldGVyaXplZFRydW5jYXRlZE5vcm1hbCIsIlBhcnRpdGlvbmVkQ2FsbCIsIlBsYWNlaG9sZGVyV2l0aERlZmF1bHQiLCJQb2x5Z2FtbWEiLCJQb3B1bGF0aW9uQ291bnQiLCJQb3ciLCJQcmV2ZW50R3JhZGllbnQiLCJQcm9kIiwiUXIiLCJRdWFudGl6ZUFuZERlcXVhbnRpemVWMiIsIlF1YW50aXplQW5kRGVxdWFudGl6ZVYzIiwiUkZGVCIsIlJGRlQyRCIsIlJGRlQzRCIsIlJHQlRvSFNWIiwiUmFuZG9tR2FtbWFHcmFkIiwiUmFuZG9tU2h1ZmZsZSIsIlJhbmRvbVN0YW5kYXJkTm9ybWFsIiwiUmFuZG9tVW5pZm9ybSIsIlJhbmRvbVVuaWZvcm1JbnQiLCJSYW5nZSIsIlJhbmsiLCJSZWFkVmFyaWFibGVPcCIsIlJlYWwiLCJSZWFsRGl2IiwiUmVjaXByb2NhbCIsIlJlY2lwcm9jYWxHcmFkIiwiUmVsdSIsIlJlbHU2IiwiUmVsdTZHcmFkIiwiUmVsdUdyYWQiLCJSZXNoYXBlIiwiUmVzaXplQmlsaW5lYXIiLCJSZXNpemVCaWxpbmVhckdyYWQiLCJSZXNpemVOZWFyZXN0TmVpZ2hib3IiLCJSZXNpemVOZWFyZXN0TmVpZ2hib3JHcmFkIiwiUmVzb3VyY2VBcHBseUFkYU1heCIsIlJlc291cmNlQXBwbHlBZGFkZWx0YSIsIlJlc291cmNlQXBwbHlBZGFncmFkIiwiUmVzb3VyY2VBcHBseUFkYWdyYWREQSIsIlJlc291cmNlQXBwbHlBZGFncmFkVjIiLCJSZXNvdXJjZUFwcGx5QWRhbSIsIlJlc291cmNlQXBwbHlBZGRTaWduIiwiUmVzb3VyY2VBcHBseUNlbnRlcmVkUk1TUHJvcCIsIlJlc291cmNlQXBwbHlGdHJsIiwiUmVzb3VyY2VBcHBseUZ0cmxWMiIsIlJlc291cmNlQXBwbHlHcmFkaWVudERlc2NlbnQiLCJSZXNvdXJjZUFwcGx5S2VyYXNNb21lbnR1bSIsIlJlc291cmNlQXBwbHlNb21lbnR1bSIsIlJlc291cmNlQXBwbHlQb3dlclNpZ24iLCJSZXNvdXJjZUFwcGx5UHJveGltYWxBZGFncmFkIiwiUmVzb3VyY2VBcHBseVByb3hpbWFsR3JhZGllbnREZXNjZW50IiwiUmVzb3VyY2VBcHBseVJNU1Byb3AiLCJSZXNvdXJjZUdhdGhlciIsIlJlc291cmNlU2NhdHRlckFkZCIsIlJlc291cmNlU2NhdHRlckRpdiIsIlJlc291cmNlU2NhdHRlck1heCIsIlJlc291cmNlU2NhdHRlck1pbiIsIlJlc291cmNlU2NhdHRlck11bCIsIlJlc291cmNlU2NhdHRlck5kQWRkIiwiUmVzb3VyY2VTY2F0dGVyTmRTdWIiLCJSZXNvdXJjZVNjYXR0ZXJOZFVwZGF0ZSIsIlJlc291cmNlU2NhdHRlclN1YiIsIlJlc291cmNlU2NhdHRlclVwZGF0ZSIsIlJlc291cmNlU3RyaWRlZFNsaWNlQXNzaWduIiwiUmV2ZXJzZSIsIlJldmVyc2VTZXF1ZW5jZSIsIlJldmVyc2VWMiIsIlJpZ2h0U2hpZnQiLCJSaW50IiwiUm5nUmVhZEFuZFNraXAiLCJSbmdTa2lwIiwiUm9sbCIsIlJvdW5kIiwiUnNxcnQiLCJSc3FydEdyYWQiLCJTY2F0dGVyTmQiLCJTZWxlY3QiLCJTZWxlY3RWMiIsIlNlbGZBZGpvaW50RWlnVjIiLCJTZWx1IiwiU2VsdUdyYWQiLCJTaGFwZSIsIlNoYXBlTiIsIlNpZ21vaWQiLCJTaWdtb2lkR3JhZCIsIlNpZ24iLCJTaW4iLCJTaW5oIiwiU2l6ZSIsIlNsaWNlIiwiU25hcHNob3QiLCJTb2Z0bWF4IiwiU29mdG1heENyb3NzRW50cm9weVdpdGhMb2dpdHMiLCJTb2Z0cGx1cyIsIlNvZnRwbHVzR3JhZCIsIlNvZnRzaWduIiwiU29mdHNpZ25HcmFkIiwiU3BhY2VUb0JhdGNoIiwiU3BhY2VUb0JhdGNoTkQiLCJTcGFjZVRvRGVwdGgiLCJTcGFyc2VNYXRNdWwiLCJTcGFyc2VTb2Z0bWF4Q3Jvc3NFbnRyb3B5V2l0aExvZ2l0cyIsIlNwYXJzZVRvRGVuc2UiLCJTcGxpdCIsIlNwbGl0ViIsIlNxcnQiLCJTcXJ0R3JhZCIsIlNxdWFyZSIsIlNxdWFyZWREaWZmZXJlbmNlIiwiU3F1ZWV6ZSIsIlN0YWNrQ2xvc2VWMiIsIlN0YWNrUG9wVjIiLCJTdGFja1B1c2hWMiIsIlN0YWNrVjIiLCJTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbCIsIlN0YXRlZnVsU3RhbmRhcmROb3JtYWxWMiIsIlN0YXRlZnVsVHJ1bmNhdGVkTm9ybWFsIiwiU3RhdGVmdWxVbmlmb3JtIiwiU3RhdGVmdWxVbmlmb3JtRnVsbEludCIsIlN0YXRlZnVsVW5pZm9ybUludCIsIlN0YXRlbGVzc0Nhc2UiLCJTdGF0ZWxlc3NJZiIsIlN0YXRlbGVzc011bHRpbm9taWFsIiwiU3RhdGVsZXNzUmFuZG9tR2V0QWxnIiwiU3RhdGVsZXNzUmFuZG9tR2V0S2V5Q291bnRlciIsIlN0YXRlbGVzc1JhbmRvbUdldEtleUNvdW50ZXJBbGciLCJTdGF0ZWxlc3NSYW5kb21Ob3JtYWwiLCJTdGF0ZWxlc3NSYW5kb21Ob3JtYWxWMiIsIlN0YXRlbGVzc1JhbmRvbVVuaWZvcm0iLCJTdGF0ZWxlc3NSYW5kb21Vbmlmb3JtRnVsbEludCIsIlN0YXRlbGVzc1JhbmRvbVVuaWZvcm1GdWxsSW50VjIiLCJTdGF0ZWxlc3NSYW5kb21Vbmlmb3JtSW50IiwiU3RhdGVsZXNzUmFuZG9tVW5pZm9ybUludFYyIiwiU3RhdGVsZXNzUmFuZG9tVW5pZm9ybVYyIiwiU3RhdGVsZXNzVHJ1bmNhdGVkTm9ybWFsIiwiU3RhdGVsZXNzVHJ1bmNhdGVkTm9ybWFsVjIiLCJTdGF0ZWxlc3NXaGlsZSIsIlN0b3BHcmFkaWVudCIsIlN0cmlkZWRTbGljZSIsIlN0cmlkZWRTbGljZUdyYWQiLCJTdWIiLCJTdW0iLCJTdmQiLCJTeW1ib2xpY0dyYWRpZW50IiwiVFBVRW1iZWRkaW5nQWN0aXZhdGlvbnMiLCJUYW4iLCJUYW5oIiwiVGFuaEdyYWQiLCJUZW5zb3JBcnJheUNsb3NlVjMiLCJUZW5zb3JBcnJheUNvbmNhdFYzIiwiVGVuc29yQXJyYXlHYXRoZXJWMyIsIlRlbnNvckFycmF5R3JhZFYzIiwiVGVuc29yQXJyYXlSZWFkVjMiLCJUZW5zb3JBcnJheVNjYXR0ZXJWMyIsIlRlbnNvckFycmF5U2l6ZVYzIiwiVGVuc29yQXJyYXlTcGxpdFYzIiwiVGVuc29yQXJyYXlWMyIsIlRlbnNvckFycmF5V3JpdGVWMyIsIlRlbnNvckxpc3RDb25jYXRWMiIsIlRlbnNvckxpc3RFbGVtZW50U2hhcGUiLCJUZW5zb3JMaXN0RnJvbVRlbnNvciIsIlRlbnNvckxpc3RHYXRoZXIiLCJUZW5zb3JMaXN0R2V0SXRlbSIsIlRlbnNvckxpc3RMZW5ndGgiLCJUZW5zb3JMaXN0UG9wQmFjayIsIlRlbnNvckxpc3RQdXNoQmFjayIsIlRlbnNvckxpc3RSZXNlcnZlIiwiVGVuc29yTGlzdFNldEl0ZW0iLCJUZW5zb3JMaXN0U3BsaXQiLCJUZW5zb3JMaXN0U3RhY2siLCJUZW5zb3JTY2F0dGVyQWRkIiwiVGVuc29yU2NhdHRlck1heCIsIlRlbnNvclNjYXR0ZXJNaW4iLCJUZW5zb3JTY2F0dGVyU3ViIiwiVGVuc29yU2NhdHRlclVwZGF0ZSIsIlRlbnNvclN0cmlkZWRTbGljZVVwZGF0ZSIsIlRpbGUiLCJUb3BLVW5pcXVlIiwiVG9wS1YyIiwiVG9wS1dpdGhVbmlxdWUiLCJUcmFuc3Bvc2UiLCJUcmlkaWFnb25hbFNvbHZlIiwiVHJ1bmNhdGVEaXYiLCJUcnVuY2F0ZU1vZCIsIlRydW5jYXRlZE5vcm1hbCIsIlVuaXF1ZSIsIlVucGFjayIsIlVuc29ydGVkU2VnbWVudE1heCIsIlVuc29ydGVkU2VnbWVudE1pbiIsIlVuc29ydGVkU2VnbWVudFByb2QiLCJVbnNvcnRlZFNlZ21lbnRTdW0iLCJVcHBlckJvdW5kIiwiVmFySXNJbml0aWFsaXplZE9wIiwiVmFyaWFibGVTaGFwZSIsIldoZXJlIiwiV2hpbGUiLCJYZGl2eSIsIlhsYUJyb2FkY2FzdEhlbHBlciIsIlhsYUNvbnYiLCJYbGFDb252VjIiLCJYbGFEZXF1YW50aXplIiwiWGxhRG90IiwiWGxhRG90VjIiLCJYbGFEeW5hbWljU2xpY2UiLCJYbGFEeW5hbWljVXBkYXRlU2xpY2UiLCJYbGFFaW5zdW0iLCJYbGFHYXRoZXIiLCJYbGFIb3N0Q29tcHV0ZSIsIlhsYUlmIiwiWGxhS2V5VmFsdWVTb3J0IiwiWGxhUGFkIiwiWGxhUmVjdiIsIlhsYVJlY3ZGcm9tSG9zdCIsIlhsYVJlZHVjZSIsIlhsYVJlZHVjZVdpbmRvdyIsIlhsYVJlcGxpY2FJZCIsIlhsYVNjYXR0ZXIiLCJYbGFTZWxlY3RBbmRTY2F0dGVyIiwiWGxhU2VsZkFkam9pbnRFaWciLCJYbGFTZW5kIiwiWGxhU2VuZFRvSG9zdCIsIlhsYVNldEJvdW5kIiwiWGxhU2V0RHluYW1pY0RpbWVuc2lvblNpemUiLCJYbGFTaGFyZGluZyIsIlhsYVNvcnQiLCJYbGFTcG1kRnVsbFRvU2hhcmRTaGFwZSIsIlhsYVNwbWRTaGFyZFRvRnVsbFNoYXBlIiwiWGxhU3ZkIiwiWGxhVmFyaWFkaWNSZWR1Y2UiLCJYbGFWYXJpYWRpY1NvcnQiLCJYbGFXaGlsZSIsIlhsb2cxcHkiLCJYbG9neSIsIlplcm9zTGlrZSIsIlpldGEiLCJFbnRlciIsIkV4aXQiLCJMb29wQ29uZCIsIk1lcmdlIiwiTmV4dEl0ZXJhdGlvbiIsIlN3aXRjaCIsIl9BcmciLCJfQXJyYXlUb0xpc3QiLCJfRnVzZWRCYXRjaE5vcm1FeCIsIl9MaXN0VG9BcnJheSIsIl9QYXJhbGxlbENvbmNhdFVwZGF0ZSIsIl9SZWN2VFBVRW1iZWRkaW5nQWN0aXZhdGlvbnMiLCJfUmVjdlRQVUVtYmVkZGluZ0RlZHVwbGljYXRpb25EYXRhIiwiX1JldHZhbCIsIl9TZW5kVFBVRW1iZWRkaW5nR3JhZGllbnRzIiwiX1RQVUNvbXBpbGUiLCJfVFBVRXhlY3V0ZSIsIl9VbmFyeU9wc0NvbXBvc2l0aW9uIiwiVFBVQ29tcGlsYXRpb25SZXN1bHQiLCJUUFVSZXBsaWNhdGVkSW5wdXQiLCJUUFVSZXBsaWNhdGVkT3V0cHV0IiwiVFBVUmVwbGljYXRlTWV0YWRhdGEiLCJNZXJnZVYyQ2hlY2twb2ludHMiLCJSZXN0b3JlVjIiLCJTYXZlVjIiLCJBYm9ydCIsIkFzc2VydCIsIkFzc2lnbiIsIlBsYWNlaG9sZGVyIiwiUGxhY2Vob2xkZXJWMiIsIlNoYXJkZWRGaWxlbmFtZSIsIlN0cmluZ0pvaW4iLCJWYXJpYWJsZSIsIlZhcmlhYmxlVjIiLCJWYXJIYW5kbGVPcCIsIkF1ZGlvU3VtbWFyeSIsIkF1ZGlvU3VtbWFyeVYyIiwiRGVidWdOdW1lcmljU3VtbWFyeSIsIkhpc3RvZ3JhbVN1bW1hcnkiLCJJbWFnZVN1bW1hcnkiLCJNZXJnZVN1bW1hcnkiLCJTY2FsYXJTdW1tYXJ5IiwiU3RhdHNBZ2dyZWdhdG9yU3VtbWFyeSJdO2NvbnN0IHVZdD17ImxpYnJhcnkuZnVuY3Rpb24iOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5pbnB1dCI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ciI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS5saXN0LmIiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC5mIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3QuZnVuYyI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS5saXN0LmkiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC5zIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3Quc2hhcGUiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC5zaGFwZS5kaW0iOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC50ZW5zb3IiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC50eXBlIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLnNoYXBlLmRpbSI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS50ZW5zb3Iuc3RyaW5nX3ZhbCI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS50ZW5zb3IudGVuc29yX3NoYXBlLmRpbSI6ITAsImxpYnJhcnkuZnVuY3Rpb24uc2lnbmF0dXJlLmlucHV0X2FyZyI6ITAsImxpYnJhcnkuZnVuY3Rpb24uc2lnbmF0dXJlLm91dHB1dF9hcmciOiEwLCJsaWJyYXJ5LnZlcnNpb25zIjohMCxub2RlOiEwLCJub2RlLmlucHV0IjohMCwibm9kZS5hdHRyIjohMCwibm9kZS5hdHRyLnZhbHVlLmxpc3QuYiI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LmYiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC5mdW5jIjohMCwibm9kZS5hdHRyLnZhbHVlLmxpc3QuaSI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LnMiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC5zaGFwZSI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LnNoYXBlLmRpbSI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LnRlbnNvciI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LnR5cGUiOiEwLCJub2RlLmF0dHIudmFsdWUuc2hhcGUuZGltIjohMCwibm9kZS5hdHRyLnZhbHVlLnRlbnNvci5zdHJpbmdfdmFsIjohMCwibm9kZS5hdHRyLnZhbHVlLnRlbnNvci50ZW5zb3Jfc2hhcGUuZGltIjohMH0saFl0PXsic3RlcF9zdGF0cy5kZXZfc3RhdHMiOiEwLCJzdGVwX3N0YXRzLmRldl9zdGF0cy5ub2RlX3N0YXRzIjohMCwic3RlcF9zdGF0cy5kZXZfc3RhdHMubm9kZV9zdGF0cy5vdXRwdXQiOiEwLCJzdGVwX3N0YXRzLmRldl9zdGF0cy5ub2RlX3N0YXRzLm1lbW9yeSI6ITAsInN0ZXBfc3RhdHMuZGV2X3N0YXRzLm5vZGVfc3RhdHMub3V0cHV0LnRlbnNvcl9kZXNjcmlwdGlvbi5zaGFwZS5kaW0iOiEwfTtmdW5jdGlvbiBkWXQodCxlKXtsZXQgbj17fSxpPVtdLHI9W10sbz1uO2Z1bmN0aW9uIGEodCxuLGkscil7bGV0IG89dFtuXTtudWxsPT1vP3Rbbl09ci5qb2luKCIuIilpbiBlP1tpXTppOkFycmF5LmlzQXJyYXkobyk/by5wdXNoKGkpOnRbbl09W28saV19cmV0dXJuKGZ1bmN0aW9uIHModCxlLG49MWU2LGk9IlxuIil7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8peyEoZnVuY3Rpb24gYShzLGwsYyl7Y29uc3QgdT1jPj10LmJ5dGVMZW5ndGgsaD1sLnNwbGl0KGkpO2hbMF09cytoWzBdO2NvbnN0IGQ9dT8iIjpoLnBvcCgpO2ZvcihsZXQgdCBvZiBoKXRyeXtlKHQpfWNhdGNoKHQpe3JldHVybiB2b2lkIG8odCl9aWYodSlyZXR1cm4gdm9pZCByKCEwKTtjb25zdCBwPW5ldyBCbG9iKFt0LnNsaWNlKGMsYytuKV0pLGY9bmV3IEZpbGVSZWFkZXI7Zi5vbmxvYWQ9ZnVuY3Rpb24odCl7YShkLHQudGFyZ2V0LnJlc3VsdCxjK24pfSxmLnJlYWRBc1RleHQocCl9KSgiIiwiIiwwKX0pKX0pKHQsKGZ1bmN0aW9uKHQpe2lmKHQ9dC50cmltKCkpc3dpdGNoKHRbdC5sZW5ndGgtMV0pe2Nhc2UieyI6bGV0IGU9dC5zdWJzdHJpbmcoMCx0Lmxlbmd0aC0yKS50cmltKCksbj17fTtpLnB1c2gobyksci5wdXNoKGUpLGEobyxlLG4sciksbz1uO2JyZWFrO2Nhc2UifSI6bz1pLnBvcCgpLHIucG9wKCk7YnJlYWs7ZGVmYXVsdDpsZXQgcz0oZnVuY3Rpb24gZSh0KXtsZXQgZT10LmluZGV4T2YoIjoiKTtyZXR1cm57bmFtZTp0LnN1YnN0cmluZygwLGUpLnRyaW0oKSx2YWx1ZTooZnVuY3Rpb24gbih0KXtpZigidHJ1ZSI9PT10KXJldHVybiEwO2lmKCJmYWxzZSI9PT10KXJldHVybiExO2lmKCciJz09PXRbMF0pcmV0dXJuIHQuc3Vic3RyaW5nKDEsdC5sZW5ndGgtMSk7bGV0IGU9cGFyc2VGbG9hdCh0KTtyZXR1cm4gaXNOYU4oZSk/dDplfSkodC5zdWJzdHJpbmcoZSsyKS50cmltKCkpfX0pKHQpO2EobyxzLm5hbWUscy52YWx1ZSxyLmNvbmNhdChzLm5hbWUpKX19KSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gbn0pKX1sZXQgcFl0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb21wYXRpYmlsaXR5UHJvdmlkZXI9bmV3IGxZdCx0aGlzLmhpZXJhcmNoeVBhcmFtcz1IcXQsdGhpcy5fdGVtcGxhdGU9bnVsbH1fc2VsZWN0aW9uQ2hhbmdlZCgpe3RoaXMuc2VsZWN0aW9uJiZ0aGlzLmRlYm91bmNlKCJzZWxlY3Rpb25jaGFuZ2UiLCgoKT0+e3RoaXMuX2xvYWQodGhpcy5zZWxlY3Rpb24pfSkpfV9sb2FkKHQpe2NvbnN0e3J1bjplLHRhZzpuLHR5cGU6aX09dDtzd2l0Y2goaSl7Y2FzZSB5R3QuT1BfR1JBUEg6Y2FzZSB5R3QuQ09OQ0VQVFVBTF9HUkFQSDp7KGZ1bmN0aW9uKCl7dGhpcy5fc2V0T3V0U3RhdHMobnVsbCl9KS5iaW5kKHRoaXMpKCk7Y29uc3QgdD1uZXcgVVJMU2VhcmNoUGFyYW1zO3Quc2V0KCJydW4iLGUpLHQuc2V0KCJjb25jZXB0dWFsIixTdHJpbmcoaT09PXlHdC5DT05DRVBUVUFMX0dSQVBIKSksbiYmdC5zZXQoInRhZyIsbik7Y29uc3Qgcj1fcigpLnBsdWdpblJvdXRlKCJncmFwaHMiLCIvZ3JhcGgiLHQpO3JldHVybiB0aGlzLl9mZXRjaEFuZENvbnN0cnVjdEhpZXJhcmNoaWNhbEdyYXBoKHIpLnRoZW4oKCgpPT57dGhpcy5fZ3JhcGhSdW5UYWc9e3J1bjplLHRhZzpufX0pKX1jYXNlIHlHdC5QUk9GSUxFOntjb25zdHt0YWdzOnR9PXRoaXMuZGF0YXNldHMuZmluZCgoKHtuYW1lOnR9KT0+dD09PWUpKSxpPXQuZmluZCgodD0+dC50YWc9PT1uKSkub3BHcmFwaD9uOm51bGw7Y29uc29sZS5hc3NlcnQodC5maW5kKCh0PT50LnRhZz09PWkpKSxgUmVxdWlyZWQgdGFnICgke2l9KSBpcyBtaXNzaW5nLmApO2NvbnN0IHI9dGhpcy5fZ3JhcGhSdW5UYWcmJnRoaXMuX2dyYXBoUnVuVGFnLnJ1bj09PWUmJnRoaXMuX2dyYXBoUnVuVGFnLnRhZz09PWk/UHJvbWlzZS5yZXNvbHZlKCk6dGhpcy5fbG9hZCh7cnVuOmUsdGFnOmksdHlwZTp5R3QuT1BfR1JBUEh9KSxvPW5ldyBVUkxTZWFyY2hQYXJhbXM7by5zZXQoInRhZyIsbiksby5zZXQoInJ1biIsZSk7Y29uc3QgYT1fcigpLnBsdWdpblJvdXRlKCJncmFwaHMiLCIvcnVuX21ldGFkYXRhIixvKTtyZXR1cm4gci50aGVuKCgoKT0+dGhpcy5fcmVhZEFuZFBhcnNlTWV0YWRhdGEoYSkpKX1kZWZhdWx0OnJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoYFVua25vd24gc2VsZWN0aW9uIHR5cGU6ICR7aX1gKSl9fV9yZWFkQW5kUGFyc2VNZXRhZGF0YSh0KXt0aGlzLnNldCgicHJvZ3Jlc3MiLHt2YWx1ZTowLG1zZzoiIn0pLChmdW5jdGlvbiBlKHQsbil7cmV0dXJuKGZ1bmN0aW9uIGkodCxlLG4scixvKXtyLnNldE1lc3NhZ2UodCk7dHJ5e2xldCBpPUNHdCh0LG4sbyk7cmV0dXJuIHIudXBkYXRlUHJvZ3Jlc3MoZSksaX1jYXRjaChlKXtyLnJlcG9ydEVycm9yKCJGYWlsZWQgIit0LGUpfX0pKCJSZWFkaW5nIG1ldGFkYXRhIHBidHh0Iiw0MCwoKCk9Pm51bGw9PXQ/UHJvbWlzZS5yZXNvbHZlKG51bGwpOmNZdCh0KSksbixfR3QuRkVUQ0hfTUVUQURBVEFfUEJUWFRfQllURVMpLnRoZW4oKHQ9PlBHdCgiUGFyc2luZyBtZXRhZGF0YS5wYnR4dCIsNjAsKCgpPT5udWxsIT10PyhmdW5jdGlvbiBlKHQpe3JldHVybiBkWXQodCxoWXQpLnRoZW4oKHQ9PnQuc3RlcF9zdGF0cykpfSkodCk6UHJvbWlzZS5yZXNvbHZlKG51bGwpKSxuLF9HdC5QQVJTRV9NRVRBREFUQV9QQlRYVF9JTlRPX09CSkVDVCkpKX0pKHQsQUd0KHRoaXMpKS50aGVuKGZ1bmN0aW9uKHQpe3RoaXMuX3NldE91dFN0YXRzKHQpfS5iaW5kKHRoaXMpKX1fZmV0Y2hBbmRDb25zdHJ1Y3RIaWVyYXJjaGljYWxHcmFwaCh0LGUpe3JldHVybiB0aGlzLnNldCgicHJvZ3Jlc3MiLHt2YWx1ZTowLG1zZzoiIn0pLChmdW5jdGlvbiBpKHQsZSxyLG89bmV3IGxZdCxhPUhxdCl7Y29uc3Qgcz1rR3QodCwzMCwiRGF0YSIpLGw9a0d0KHQsMjAsIkdyYXBoIiksYz1rR3QodCw1MCwiTmFtZXNwYWNlIGhpZXJhcmNoeSIpLHU9RGF0ZS5ub3coKTtyZXR1cm4oZnVuY3Rpb24gaCh0LGUsaSl7cmV0dXJuIFBHdCgiUmVhZGluZyBncmFwaCBwYnR4dCIsNDAsKCgpPT5uKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3Qgbj1EYXRlLm5vdygpO2lmKGUpe2NvbnN0IHQ9eWllbGQgbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsbil7bGV0IGk9bmV3IEZpbGVSZWFkZXI7aS5vbmxvYWQ9KCk9PnQoaS5yZXN1bHQpLGkub25lcnJvcj0oKT0+bihpLmVycm9yKSxpLnJlYWRBc0FycmF5QnVmZmVyKGUpfSkpO3JldHVybiBUR3Qoe3RpbWluZ0lkOl9HdC5GRVRDSF9QQlRYVF9CWVRFU19GUk9NX0ZJTEVTWVNURU0sZXZlbnRWYWx1ZTpEYXRlLm5vdygpLW59KSx0fWNvbnN0IGk9eWllbGQgY1l0KHQpO3JldHVybiBUR3Qoe3RpbWluZ0lkOl9HdC5GRVRDSF9QQlRYVF9CWVRFU19GUk9NX1NFUlZFUixldmVudFZhbHVlOkRhdGUubm93KCktbn0pLGl9KSkpLGksX0d0LkZFVENIX1BCVFhUX0JZVEVTKS50aGVuKCh0PT5QR3QoIlBhcnNpbmcgZ3JhcGgucGJ0eHQiLDYwLCgoKT0+KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGRZdCh0LHVZdCl9KSh0KSksaSxfR3QuUEFSU0VfUEJUWFRfSU5UT19PQkpFQ1QpKSl9KShlLHIscykudGhlbigoZnVuY3Rpb24odCl7aWYoIXQubm9kZSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBncmFwaCBpcyBlbXB0eS4gVGhpcyBjYW4gaGFwcGVuIHdoZW4gVGVuc29yRmxvdyBjb3VsZCBub3QgdHJhY2UgYW55IGdyYXBoLiBQbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvaXNzdWVzLzE5NjEgZm9yIG1vcmUgaW5mb3JtYXRpb24uIik7cmV0dXJuKGZ1bmN0aW9uIGUodCxuLGkpe2xldCByPXt9LG89e30sYT17fSxzPWFXdChuLmluRW1iZWRkaW5nVHlwZXMpLGw9YVd0KG4ub3V0RW1iZWRkaW5nVHlwZXMpLGM9W10sdT10Lm5vZGUsaD1uZXcgQXJyYXkodS5sZW5ndGgpO3JldHVybiBMR3QoIk5vcm1hbGl6aW5nIG5hbWVzIiwzMCwoKCk9PntsZXQgZT1uZXcgQXJyYXkodS5sZW5ndGgpLG49MDtjb25zdCBpPXQ9PntsZXQgaT1uZXcgWEd0KHQpO3JldHVybiBzKGkpPyhjLnB1c2goaS5uYW1lKSxyW2kubmFtZV09aSxpKTpsKGkpPyhjLnB1c2goaS5uYW1lKSxvW2kubmFtZV09aSxTZS5leHBvcnRzLmVhY2goaS5pbnB1dHMsKHQ9PntsZXQgZT10Lm5hbWU7YVtlXT1hW2VdfHxbXSxhW2VdLnB1c2goaSl9KSksaSk6KGVbbl09aSxoW25dPWkubmFtZSxuKyssaSl9O3JldHVybiBTZS5leHBvcnRzLmVhY2godSxpKSx0LmxpYnJhcnkmJnQubGlicmFyeS5mdW5jdGlvbiYmU2UuZXhwb3J0cy5lYWNoKHQubGlicmFyeS5mdW5jdGlvbiwodD0+e2NvbnN0IGU9Vkd0K3Quc2lnbmF0dXJlLm5hbWU7aWYoaSh7bmFtZTplLGlucHV0OltdLGRldmljZToiIixvcDoiIixhdHRyOltdfSksdC5zaWduYXR1cmUuaW5wdXRfYXJnKXtsZXQgbj0wO2NvbnN0IHI9dD0+e2koe25hbWU6ZStIR3QrdC5uYW1lLGlucHV0OltdLGRldmljZToiIixvcDoiaW5wdXRfYXJnIixhdHRyOlt7a2V5OiJUIix2YWx1ZTp7dHlwZTp0LnR5cGV9fV19KS5mdW5jdGlvbklucHV0SW5kZXg9bixuKyt9O3Quc2lnbmF0dXJlLmlucHV0X2FyZy5uYW1lP3IodC5zaWduYXR1cmUuaW5wdXRfYXJnKTpTZS5leHBvcnRzLmVhY2godC5zaWduYXR1cmUuaW5wdXRfYXJnLHIpfWxldCBuPTA7Y29uc3Qgcj17fTtpZih0LnNpZ25hdHVyZS5vdXRwdXRfYXJnKXtjb25zdCBpPXQ9PntyW2UrSEd0K3QubmFtZV09bixuKyt9O3Quc2lnbmF0dXJlLm91dHB1dF9hcmcubmFtZT9pKHQuc2lnbmF0dXJlLm91dHB1dF9hcmcpOlNlLmV4cG9ydHMuZWFjaCh0LnNpZ25hdHVyZS5vdXRwdXRfYXJnLGkpfVNlLmV4cG9ydHMuZWFjaCh0Lm5vZGVfZGVmLCh0PT57dC5uYW1lPWUrIi8iK3QubmFtZSwic3RyaW5nIj09dHlwZW9mIHQuaW5wdXQmJih0LmlucHV0PVt0LmlucHV0XSk7Y29uc3Qgbj1pKHQpO1NlLmV4cG9ydHMuaXNOdW1iZXIoclt0Lm5hbWVdKSYmKG4uZnVuY3Rpb25PdXRwdXRJbmRleD1yW3QubmFtZV0pLFNlLmV4cG9ydHMuZWFjaChuLmlucHV0cywodD0+e3QubmFtZT1lK0hHdCt0Lm5hbWV9KSl9KSl9KSksZS5zcGxpY2UobiksaC5zcGxpY2UobiksZX0pLGksX0d0Lk5PUk1BTElaSU5HX05BTUVTKS50aGVuKCh0PT5MR3QoIkJ1aWxkaW5nIHRoZSBkYXRhIHN0cnVjdHVyZSIsNzAsKCgpPT57bGV0IGU9KGZ1bmN0aW9uIGkodCxlKXtsZXQgbj17fSxpPXt9O3Quc29ydCgpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGgtMTsrK2Upe2xldCByPXRbZV07U2UuZXhwb3J0cy5lYWNoKGNXdChyKS5zbGljZSgwLC0xKSwodD0+e2lbdF09ITB9KSk7Zm9yKGxldCBpPWUrMTtpPHQubGVuZ3RoOysraSl7bGV0IGU9dFtpXTtpZighU2UuZXhwb3J0cy5zdGFydHNXaXRoKGUscikpYnJlYWs7aWYoZS5sZW5ndGg+ci5sZW5ndGgmJmUuY2hhckF0KHIubGVuZ3RoKT09PUhHdCl7bltyXT1zV3Qocik7YnJlYWt9fX1yZXR1cm4gU2UuZXhwb3J0cy5lYWNoKGUsKHQ9Pnt0IGluIGkmJihuW3RdPXNXdCh0KSl9KSksbn0pKGgsYykscz1uZXcgcUd0O3JldHVybiBTZS5leHBvcnRzLmVhY2godCwodD0+e2xldCBuPWVbdC5uYW1lXXx8dC5uYW1lO3Mubm9kZXNbbl09dCx0Lm5hbWUgaW4gYSYmKHQub3V0RW1iZWRkaW5ncz1hW3QubmFtZV0sU2UuZXhwb3J0cy5lYWNoKHQub3V0RW1iZWRkaW5ncywodD0+e3QubmFtZT1lW3QubmFtZV18fHQubmFtZX0pKSksdC5uYW1lPW59KSksU2UuZXhwb3J0cy5lYWNoKHQsKHQ9PntTZS5leHBvcnRzLmVhY2godC5pbnB1dHMsKChpLGEpPT57bGV0IGw9aS5uYW1lO2lmKGwgaW4gcil7bGV0IGk9cltsXTt0LmluRW1iZWRkaW5ncy5wdXNoKGkpO2ZvcihsZXQgciBvZiBpLmlucHV0cylpV3QocyxlW3IubmFtZV18fHIubmFtZSx0LHIsbixhKX1lbHNlIGlmKGwgaW4gbyl7bGV0IHI9b1tsXTtmb3IobGV0IG8gb2Ygci5pbnB1dHMpaVd0KHMsZVtvLm5hbWVdfHxvLm5hbWUsdCxpLG4sYSl9ZWxzZSBpV3QocyxlW2xdfHxsLHQsaSxuLGEpfSkpfSkpLFNlLmV4cG9ydHMuZWFjaChyLCgodCxuKT0+e3QubmFtZT1lW3QubmFtZV18fHQubmFtZX0pKSxzfSksaSxfR3QuQlVJTERfU0xJTV9HUkFQSCkpKX0pKHQscld0LGwpfSksKCgpPT57dGhyb3cgbmV3IEVycm9yKCJNYWxmb3JtZWQgR3JhcGhEZWYuIFRoaXMgY2FuIHNvbWV0aW1lcyBiZSBjYXVzZWQgYnkgYSBiYWQgbmV0d29yayBjb25uZWN0aW9uIG9yIGRpZmZpY3VsdHkgcmVjb25jaWxpbmcgbXVsdGlwbGUgR3JhcGhEZWZzOyBmb3IgdGhlIGxhdHRlciBjYXNlLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvaXNzdWVzLzE5MjkuIil9KSkudGhlbigodD0+bih0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpeyEoZnVuY3Rpb24gZSh0LG4pe2lmKG51bGw9PT1uKXRocm93IG5ldyBFcnJvcigiQ29tcGF0aWJpbGl0eSBwcm92aWRlciByZXF1aXJlZCwgYnV0IGdvdDogIituKTtTZS5leHBvcnRzLmVhY2godC5ub2RlcywodD0+e3QuY29tcGF0aWJsZT1uLm9wVmFsaWQodCksU2UuZXhwb3J0cy5lYWNoKHQuaW5FbWJlZGRpbmdzLCh0PT57dC5jb21wYXRpYmxlPW4ub3BWYWxpZCh0KX0pKSxTZS5leHBvcnRzLmVhY2godC5vdXRFbWJlZGRpbmdzLCh0PT57dC5jb21wYXRpYmxlPW4ub3BWYWxpZCh0KX0pKX0pKX0pKHQsbyk7Y29uc3Qgbj15aWVsZCBGcXQodCxhLGMpO3JldHVybiBUR3Qoe3RpbWluZ0lkOl9HdC5HUkFQSF9MT0FEX1NVQ0NFRURFRCxldmVudFZhbHVlOkRhdGUubm93KCktdX0pLHtncmFwaDp0LGdyYXBoSGllcmFyY2h5Om59fSkpKSkuY2F0Y2goKGU9Pnt0aHJvdyB0LnJlcG9ydEVycm9yKGBHcmFwaCB2aXN1YWxpemF0aW9uIGZhaWxlZC5cblxuJHtlfWAsZSksVEd0KHt0aW1pbmdJZDpfR3QuR1JBUEhfTE9BRF9GQUlMRUQsZXZlbnRWYWx1ZTpEYXRlLm5vdygpLXV9KSxlfSkpfSkoQUd0KHRoaXMpLHQsZSx0aGlzLmNvbXBhdGliaWxpdHlQcm92aWRlcix0aGlzLmhpZXJhcmNoeVBhcmFtcykudGhlbihmdW5jdGlvbih7Z3JhcGg6dCxncmFwaEhpZXJhcmNoeTplfSl7dGhpcy5fc2V0T3V0R3JhcGgodCksdGhpcy5fc2V0T3V0R3JhcGhIaWVyYXJjaHkoZSl9LmJpbmQodGhpcykpfV9zZWxlY3RlZEZpbGVDaGFuZ2VkKCl7dmFyIHQ9dGhpcy5zZWxlY3RlZEZpbGU7aWYoIXQpcmV0dXJuO2NvbnN0IGU9dC50YXJnZXQsbj1lLmZpbGVzWzBdO24mJihlLnZhbHVlPSIiLHRoaXMuX2ZldGNoQW5kQ29uc3RydWN0SGllcmFyY2hpY2FsR3JhcGgobnVsbCxuKSl9fTt0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0scFl0LnByb3RvdHlwZSwiZGF0YXNldHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHBZdC5wcm90b3R5cGUsInByb2dyZXNzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHBZdC5wcm90b3R5cGUsInNlbGVjdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxwWXQucHJvdG90eXBlLCJzZWxlY3RlZEZpbGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0scFl0LnByb3RvdHlwZSwiY29tcGF0aWJpbGl0eVByb3ZpZGVyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHBZdC5wcm90b3R5cGUsImhpZXJhcmNoeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxyZWFkT25seTohMCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsRHF0KV0scFl0LnByb3RvdHlwZSwib3V0R3JhcGhIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3QscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLHFHdCldLHBZdC5wcm90b3R5cGUsIm91dEdyYXBoIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LHJlYWRPbmx5OiEwLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxwWXQucHJvdG90eXBlLCJvdXRTdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxwWXQucHJvdG90eXBlLCJfZ3JhcGhSdW5UYWciLHZvaWQgMCksdChbYSgic2VsZWN0aW9uIiwiY29tcGF0aWJpbGl0eVByb3ZpZGVyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxwWXQucHJvdG90eXBlLCJfc2VsZWN0aW9uQ2hhbmdlZCIsbnVsbCksdChbYSgic2VsZWN0ZWRGaWxlIiwiY29tcGF0aWJpbGl0eVByb3ZpZGVyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxwWXQucHJvdG90eXBlLCJfc2VsZWN0ZWRGaWxlQ2hhbmdlZCIsbnVsbCkscFl0PXQoW2koInRmLWdyYXBoLWRhc2hib2FyZC1sb2FkZXIiKV0scFl0KTtsZXQgZll0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZGF0YXNldHM9W10sdGhpcy5fZGF0YXNldHNGZXRjaGVkPSExLHRoaXMuX3NlbGVjdGVkRGF0YXNldD0wLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcix0aGlzLl9jYW5jZWxsZXI9bmV3IFhSLHRoaXMuc3BlY2lmaWNIZWFsdGhQaWxsU3RlcD0wLHRoaXMuaGVhbHRoUGlsbHNUb2dnbGVkT249ITEsdGhpcy5fZGVidWdnZXJOdW1lcmljQWxlcnRzPVtdLHRoaXMuX25vZGVOYW1lc1RvSGVhbHRoUGlsbHM9e30sdGhpcy5faGVhbHRoUGlsbFJlcXVlc3RJZD0xLHRoaXMuX2hlYWx0aFBpbGxTdGVwUmVxdWVzdFRpbWVyRGVsYXk9NTAwLHRoaXMucnVuPVJzKCJydW4iLHtkZWZhdWx0VmFsdWU6IiIsdXNlTG9jYWxTdG9yYWdlOiExfSkuY2FsbCh0aGlzKSx0aGlzLl9ydW5PYnNlcnZlcj1PcygicnVuIix7ZGVmYXVsdFZhbHVlOiIiLHBvbHltZXJQcm9wZXJ0eToicnVuIix1c2VMb2NhbFN0b3JhZ2U6ITF9KX1hdHRhY2hlZCgpe3RoaXMuc2V0KCJfaXNBdHRhY2hlZCIsITApfWRldGFjaGVkKCl7dGhpcy5zZXQoIl9pc0F0dGFjaGVkIiwhMSl9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS10b2dnbGUtZXhwYW5kIix0aGlzLl9oYW5kbGVOb2RlVG9nZ2xlRXhwYW5kLmJpbmQodGhpcykpfXJlbG9hZCgpe3RoaXMuX2RlYnVnZ2VyRGF0YUVuYWJsZWR8fHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QoX3IoKS5wbHVnaW5zTGlzdGluZygpKS50aGVuKHRoaXMuX2NhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e3QuY2FuY2VsbGVkfHx0LnZhbHVlLmRlYnVnZ2VyJiZ0aGlzLnNldCgiX2RlYnVnZ2VyRGF0YUVuYWJsZWQiLCEwKX0pKSksdGhpcy5fbWF5YmVGZXRjaEhlYWx0aFBpbGxzKCl9X2ZpdCgpe3RoaXMuJCQoIiNncmFwaGJvYXJkIikuZml0KCl9X29uRG93bmxvYWRJbWFnZVJlcXVlc3RlZCh0KXt0aGlzLiQkKCIjZ3JhcGhib2FyZCIpLmRvd25sb2FkQXNJbWFnZSh0LmRldGFpbCl9X2dldEdyYXBoRGlzcGxheUNsYXNzTmFtZSh0LGUpe3JldHVybiB0fHxlLmxlbmd0aD8iIjoibm8tZ3JhcGgifV9mZXRjaERhdGFzZXQoKXtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdChfcigpLnBsdWdpblJvdXRlKCJncmFwaHMiLCIvaW5mbyIpKX1fZmV0Y2hIZWFsdGhQaWxscyh0LGUpe2NvbnN0IG49e25vZGVfbmFtZXM6SlNPTi5zdHJpbmdpZnkodCkscnVuOiJfX2RlYnVnZ2VyX2RhdGFfXyJ9O3ZvaWQgMCE9PWUmJihuLnN0ZXA9ZSk7Y29uc3QgaT1fcigpLnBsdWdpblJvdXRlKCJkZWJ1Z2dlciIsIi9oZWFsdGhfcGlsbHMiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdChpLG4pfV9mZXRjaERlYnVnZ2VyTnVtZXJpY3NBbGVydHMoKXtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdChfcigpLnBsdWdpblJvdXRlKCJkZWJ1Z2dlciIsIi9udW1lcmljc19hbGVydF9yZXBvcnQiKSl9X2dyYXBoVXJsKHQsZSxuKXtyZXR1cm4gX3IoKS5wbHVnaW5Sb3V0ZSgiZ3JhcGhzIiwiL2dyYXBoIixuZXcgVVJMU2VhcmNoUGFyYW1zKHtydW46dCxsaW1pdF9hdHRyX3NpemU6ZSxsYXJnZV9hdHRyc19rZXk6bn0pKX1fc2hvdWxkUmVxdWVzdEhlYWx0aFBpbGxzKCl7cmV0dXJuIHRoaXMuX2RlYnVnZ2VyRGF0YUVuYWJsZWQmJnRoaXMuaGVhbHRoUGlsbHNUb2dnbGVkT24mJnRoaXMuX3JlbmRlckhpZXJhcmNoeSYmdGhpcy5fZGF0YXNldHNTdGF0ZSh0aGlzLl9kYXRhc2V0c0ZldGNoZWQsdGhpcy5fZGF0YXNldHMsIlBSRVNFTlQiKX1fbWF5YmVJbml0aWFsaXplRGFzaGJvYXJkKCl7IXRoaXMuX2luaXRpYWxpemVkJiZ0aGlzLl9pc0F0dGFjaGVkJiYodGhpcy5zZXQoIl9jb21wYXRpYmlsaXR5UHJvdmlkZXIiLG5ldyBsWXQpLHRoaXMuX2luaXRpYWxpemVkPSEwLHRoaXMuX2ZldGNoRGF0YXNldCgpLnRoZW4oKHQ9Pntjb25zdCBlPU9iamVjdC5rZXlzKHQpO3RoaXMuX2RhdGFzZXRzPWUuc29ydChucikubWFwKChlPT57Y29uc3Qgbj10W2VdLGk9T2JqZWN0LmtleXMobi50YWdzKS5zb3J0KG5yKS5tYXAoKHQ9Pm4udGFnc1t0XSkpLm1hcCgoKHt0YWc6dCxjb25jZXB0dWFsX2dyYXBoOmUsb3BfZ3JhcGg6bixwcm9maWxlOml9KT0+KHt0YWc6dCxkaXNwbGF5TmFtZTp0LGNvbmNlcHR1YWxHcmFwaDplLG9wR3JhcGg6bixwcm9maWxlOml9KSkpO3JldHVybntuYW1lOmUsdGFnczpuLnJ1bl9ncmFwaD9be3RhZzpudWxsLGRpc3BsYXlOYW1lOiJEZWZhdWx0Iixjb25jZXB0dWFsR3JhcGg6ITEsb3BHcmFwaDohMCxwcm9maWxlOiExfSwuLi5pXTppfX0pKSx0aGlzLl9kYXRhc2V0c0ZldGNoZWQ9ITB9KSkpfV9kZXRlcm1pbmVTZWxlY3RlZERhdGFzZXQoKXt2YXIgdD10aGlzLl9kYXRhc2V0c0ZldGNoZWQsZT10aGlzLl9kYXRhc2V0cyxuPXRoaXMucnVuO2lmKCFuKXJldHVybiB2b2lkIHRoaXMuc2V0KCJfc2VsZWN0ZWREYXRhc2V0IiwwKTtjb25zdCBpPWUuZmluZEluZGV4KCh0PT50Lm5hbWU9PT1uKSk7aWYoLTEhPT1pKXRoaXMuc2V0KCJfc2VsZWN0ZWREYXRhc2V0IixpKTtlbHNlIGlmKHQpe2NvbnN0IHQ9dGhpcy4kJCgiI2Vycm9yLWRpYWxvZyIpO3QudGV4dENvbnRlbnQ9YE5vIGRhdGFzZXQgbmFtZWQgIiR7bn0iIGNvdWxkIGJlIGZvdW5kLmAsdC5vcGVuKCl9fV91cGRhdGVTZWxlY3RlZERhdGFzZXROYW1lKCl7dmFyIHQ9dGhpcy5fZGF0YXNldHMsZT10aGlzLl9zZWxlY3RlZERhdGFzZXQ7dGhpcy5fZGF0YXNldHNGZXRjaGVkJiYodC5sZW5ndGg8PWV8fHRoaXMuc2V0KCJydW4iLHRbZV0ubmFtZSkpfV9yZXF1ZXN0SGVhbHRoUGlsbHMoKXt0aGlzLnNldCgiX2FyZUhlYWx0aFBpbGxzTG9hZGluZyIsITApO3ZhciB0PSsrdGhpcy5faGVhbHRoUGlsbFJlcXVlc3RJZDtudWxsIT09dGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZCYmKHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZCksdGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZD1udWxsKSx0aGlzLmFsbFN0ZXBzTW9kZUVuYWJsZWQ/dGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZD1udWxsLHRoaXMuX2luaXRpYXRlTmV0d29ya1JlcXVlc3RGb3JIZWFsdGhQaWxscyh0KX0uYmluZCh0aGlzKSx0aGlzLl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lckRlbGF5KTp0aGlzLl9pbml0aWF0ZU5ldHdvcmtSZXF1ZXN0Rm9ySGVhbHRoUGlsbHModCl9X2luaXRpYXRlTmV0d29ya1JlcXVlc3RGb3JIZWFsdGhQaWxscyh0KXtpZih0aGlzLl9oZWFsdGhQaWxsUmVxdWVzdElkIT09dClyZXR1cm47Y29uc3QgZT10aGlzLmFsbFN0ZXBzTW9kZUVuYWJsZWQ/dGhpcy5zcGVjaWZpY0hlYWx0aFBpbGxTdGVwOnZvaWQgMCxuPXRoaXMuX2ZldGNoSGVhbHRoUGlsbHModGhpcy5fcmVuZGVySGllcmFyY2h5LmdldE5hbWVzT2ZSZW5kZXJlZE9wcygpLGUpLGk9dGhpcy5fZmV0Y2hEZWJ1Z2dlck51bWVyaWNzQWxlcnRzKCk7UHJvbWlzZS5hbGwoW24saV0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIG49ZVswXSxpPWVbMV07aWYodGhpcy5oZWFsdGhQaWxsc1RvZ2dsZWRPbiYmdD09PXRoaXMuX2hlYWx0aFBpbGxSZXF1ZXN0SWQpe2Zvcih2YXIgciBpbiBuKXt0aGlzLnNldCgiX2hlYWx0aFBpbGxTdGVwSW5kZXgiLG5bcl0ubGVuZ3RoLTEpO2JyZWFrfXRoaXMuc2V0KCJfZGVidWdnZXJOdW1lcmljQWxlcnRzIixpKSx0aGlzLnNldCgiX25vZGVOYW1lc1RvSGVhbHRoUGlsbHMiLG4pLHRoaXMuc2V0KCJfYXJlSGVhbHRoUGlsbHNMb2FkaW5nIiwhMSksdGhpcy5zZXQoIl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lcklkIixudWxsKX19LmJpbmQodGhpcykpfV9kYXRhc2V0c1N0YXRlKHQsZSxuKXtyZXR1cm4gdD9lJiZlLmxlbmd0aD8iUFJFU0VOVCI9PT1uOiJFTVBUWSI9PT1uOiJOT1RfTE9BREVEIj09PW59X3JlbmRlckhpZXJhcmNoeUNoYW5nZWQodCl7dGhpcy5yZWxvYWQoKX1faGFuZGxlTm9kZVRvZ2dsZUV4cGFuZCgpe3RoaXMuX21heWJlRmV0Y2hIZWFsdGhQaWxscygpfV9oZWFsdGhQaWxsc1RvZ2dsZWRPbkNoYW5nZWQodCl7dD90aGlzLnJlbG9hZCgpOnRoaXMuc2V0KCJfbm9kZU5hbWVzVG9IZWFsdGhQaWxscyIse30pfV9tYXliZUZldGNoSGVhbHRoUGlsbHMoKXt0aGlzLl9zaG91bGRSZXF1ZXN0SGVhbHRoUGlsbHMoKSYmdGhpcy5fcmVxdWVzdEhlYWx0aFBpbGxzKCl9fTtmWXQudGVtcGxhdGU9X2VgCiAgICA8cGFwZXItZGlhbG9nIGlkPSJlcnJvci1kaWFsb2ciIHdpdGgtYmFja2Ryb3A+PC9wYXBlci1kaWFsb2c+CiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPHRmLWdyYXBoLWNvbnRyb2xzCiAgICAgICAgaWQ9ImNvbnRyb2xzIgogICAgICAgIGNsYXNzPSJzaWRlYmFyIgogICAgICAgIHNsb3Q9InNpZGViYXIiCiAgICAgICAgZGV2aWNlcy1mb3Itc3RhdHM9Int7X2RldmljZXNGb3JTdGF0c319IgogICAgICAgIGNvbG9yLWJ5LXBhcmFtcz0iW1tfY29sb3JCeVBhcmFtc11dIgogICAgICAgIHN0YXRzPSJbW19zdGF0c11dIgogICAgICAgIGNvbG9yLWJ5PSJ7e19jb2xvckJ5fX0iCiAgICAgICAgZGF0YXNldHM9IltbX2RhdGFzZXRzXV0iCiAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0iW1tfcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgc2VsZWN0aW9uPSJ7e19zZWxlY3Rpb259fSIKICAgICAgICBzZWxlY3RlZC1maWxlPSJ7e19zZWxlY3RlZEZpbGV9fSIKICAgICAgICBzZWxlY3RlZC1ub2RlPSJ7e19zZWxlY3RlZE5vZGV9fSIKICAgICAgICBoZWFsdGgtcGlsbHMtZmVhdHVyZS1lbmFibGVkPSJbW19kZWJ1Z2dlckRhdGFFbmFibGVkXV0iCiAgICAgICAgaGVhbHRoLXBpbGxzLXRvZ2dsZWQtb249Int7aGVhbHRoUGlsbHNUb2dnbGVkT259fSIKICAgICAgICBvbi1maXQtdGFwPSJfZml0IgogICAgICAgIHRyYWNlLWlucHV0cz0ie3tfdHJhY2VJbnB1dHN9fSIKICAgICAgICBhdXRvLWV4dHJhY3Qtbm9kZXM9Int7X2F1dG9FeHRyYWN0Tm9kZXN9fSIKICAgICAgICBvbi1kb3dubG9hZC1pbWFnZS1yZXF1ZXN0ZWQ9Il9vbkRvd25sb2FkSW1hZ2VSZXF1ZXN0ZWQiCiAgICAgID48L3RmLWdyYXBoLWNvbnRyb2xzPgogICAgICA8ZGl2CiAgICAgICAgY2xhc3MkPSJjZW50ZXIgW1tfZ2V0R3JhcGhEaXNwbGF5Q2xhc3NOYW1lKF9zZWxlY3RlZEZpbGUsIF9kYXRhc2V0cyldXSIKICAgICAgICBzbG90PSJjZW50ZXIiCiAgICAgID4KICAgICAgICA8dGYtZ3JhcGgtZGFzaGJvYXJkLWxvYWRlcgogICAgICAgICAgaWQ9ImxvYWRlciIKICAgICAgICAgIGRhdGFzZXRzPSJbW19kYXRhc2V0c11dIgogICAgICAgICAgc2VsZWN0aW9uPSJbW19zZWxlY3Rpb25dXSIKICAgICAgICAgIHNlbGVjdGVkLWZpbGU9IltbX3NlbGVjdGVkRmlsZV1dIgogICAgICAgICAgb3V0LWdyYXBoLWhpZXJhcmNoeT0ie3tfZ3JhcGhIaWVyYXJjaHl9fSIKICAgICAgICAgIG91dC1ncmFwaD0ie3tfZ3JhcGh9fSIKICAgICAgICAgIG91dC1zdGF0cz0ie3tfc3RhdHN9fSIKICAgICAgICAgIHByb2dyZXNzPSJ7e19wcm9ncmVzc319IgogICAgICAgICAgaGllcmFyY2h5LXBhcmFtcz0iW1tfaGllcmFyY2h5UGFyYW1zXV0iCiAgICAgICAgICBjb21wYXRpYmlsaXR5LXByb3ZpZGVyPSJbW19jb21wYXRpYmlsaXR5UHJvdmlkZXJdXSIKICAgICAgICA+PC90Zi1ncmFwaC1kYXNoYm9hcmQtbG9hZGVyPgogICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtbWVzc2FnZSI+CiAgICAgICAgICA8aDM+Tm8gZ3JhcGggZGVmaW5pdGlvbiBmaWxlcyB3ZXJlIGZvdW5kLjwvaDM+CiAgICAgICAgICA8cD4KICAgICAgICAgICAgVG8gc3RvcmUgYSBncmFwaCwgY3JlYXRlIGEKICAgICAgICAgICAgPGNvZGU+dGYuc3VtbWFyeS5GaWxlV3JpdGVyPC9jb2RlPgogICAgICAgICAgICBhbmQgcGFzcyB0aGUgZ3JhcGggZWl0aGVyIHZpYSB0aGUgY29uc3RydWN0b3IsIG9yIGJ5IGNhbGxpbmcgaXRzCiAgICAgICAgICAgIDxjb2RlPmFkZF9ncmFwaCgpPC9jb2RlPiBtZXRob2QuIFlvdSBtYXkgd2FudCB0byBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL3RlbnNvcmJvYXJkL2dyYXBocyIKICAgICAgICAgICAgICA+ZXhhbWluaW5nIHRoZSBUZW5zb3JGbG93IGdyYXBoIHR1dG9yaWFsPC9hCiAgICAgICAgICAgID4uCiAgICAgICAgICA8L3A+CgogICAgICAgICAgPHA+CiAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvIGFkZAogICAgICAgICAgICBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgID4KICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgPi4KICAgICAgICAgIDwvcD4KCiAgICAgICAgICA8cD4KICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgPGEKICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgID4KICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JhcGhib2FyZCI+CiAgICAgICAgICA8dGYtZ3JhcGgtYm9hcmQKICAgICAgICAgICAgaWQ9ImdyYXBoYm9hcmQiCiAgICAgICAgICAgIGRldmljZXMtZm9yLXN0YXRzPSJbW19kZXZpY2VzRm9yU3RhdHNdXSIKICAgICAgICAgICAgY29sb3ItYnk9Int7X2NvbG9yQnl9fSIKICAgICAgICAgICAgY29sb3ItYnktcGFyYW1zPSJ7e19jb2xvckJ5UGFyYW1zfX0iCiAgICAgICAgICAgIGdyYXBoLWhpZXJhcmNoeT0iW1tfZ3JhcGhIaWVyYXJjaHldXSIKICAgICAgICAgICAgZ3JhcGg9IltbX2dyYXBoXV0iCiAgICAgICAgICAgIGhpZXJhcmNoeS1wYXJhbXM9IltbX2hpZXJhcmNoeVBhcmFtc11dIgogICAgICAgICAgICBwcm9ncmVzcz0iW1tfcHJvZ3Jlc3NdXSIKICAgICAgICAgICAgZGVidWdnZXItZGF0YS1lbmFibGVkPSJbW19kZWJ1Z2dlckRhdGFFbmFibGVkXV0iCiAgICAgICAgICAgIGFyZS1oZWFsdGgtcGlsbHMtbG9hZGluZz0iW1tfYXJlSGVhbHRoUGlsbHNMb2FkaW5nXV0iCiAgICAgICAgICAgIGRlYnVnZ2VyLW51bWVyaWMtYWxlcnRzPSJbW19kZWJ1Z2dlck51bWVyaWNBbGVydHNdXSIKICAgICAgICAgICAgbm9kZS1uYW1lcy10by1oZWFsdGgtcGlsbHM9IltbX25vZGVOYW1lc1RvSGVhbHRoUGlsbHNdXSIKICAgICAgICAgICAgYWxsLXN0ZXBzLW1vZGUtZW5hYmxlZD0ie3thbGxTdGVwc01vZGVFbmFibGVkfX0iCiAgICAgICAgICAgIHNwZWNpZmljLWhlYWx0aC1waWxsLXN0ZXA9Int7c3BlY2lmaWNIZWFsdGhQaWxsU3RlcH19IgogICAgICAgICAgICBoZWFsdGgtcGlsbC1zdGVwLWluZGV4PSJbW19oZWFsdGhQaWxsU3RlcEluZGV4XV0iCiAgICAgICAgICAgIHJlbmRlci1oaWVyYXJjaHk9Int7X3JlbmRlckhpZXJhcmNoeX19IgogICAgICAgICAgICBzZWxlY3RlZC1ub2RlPSJ7e19zZWxlY3RlZE5vZGV9fSIKICAgICAgICAgICAgc3RhdHM9IltbX3N0YXRzXV0iCiAgICAgICAgICAgIHRyYWNlLWlucHV0cz0iW1tfdHJhY2VJbnB1dHNdXSIKICAgICAgICAgICAgYXV0by1leHRyYWN0LW5vZGVzPSJbW19hdXRvRXh0cmFjdE5vZGVzXV0iCiAgICAgICAgICA+PC90Zi1ncmFwaC1ib2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IC9kZWVwLyB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuc2lkZWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jZW50ZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIHBhcGVyLWRpYWxvZyB7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgfQoKICAgICAgLm5vLWRhdGEtbWVzc2FnZSB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KCiAgICAgIC5ncmFwaGJvYXJkIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5uby1ncmFwaCAuZ3JhcGhib2FyZCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmNlbnRlcjpub3QoLm5vLWdyYXBoKSAubm8tZGF0YS1tZXNzYWdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICBhIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItbGluayk7CiAgICAgIH0KCiAgICAgIGE6dmlzaXRlZCB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLWxpbmstdmlzaXRlZCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZll0LnByb3RvdHlwZSwiX2RhdGFzZXRzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZll0LnByb3RvdHlwZSwiX2RhdGFzZXRzRmV0Y2hlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmWXQucHJvdG90eXBlLCJfc2VsZWN0ZWREYXRhc2V0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfcmVuZGVySGllcmFyY2h5Q2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIseVd0KV0sZll0LnByb3RvdHlwZSwiX3JlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLGZZdC5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixYUildLGZZdC5wcm90b3R5cGUsIl9jYW5jZWxsZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxmWXQucHJvdG90eXBlLCJfZGVidWdnZXJEYXRhRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGZZdC5wcm90b3R5cGUsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sZll0LnByb3RvdHlwZSwic3BlY2lmaWNIZWFsdGhQaWxsU3RlcCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9oZWFsdGhQaWxsc1RvZ2dsZWRPbkNoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxmWXQucHJvdG90eXBlLCJoZWFsdGhQaWxsc1RvZ2dsZWRPbiIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZll0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZll0LnByb3RvdHlwZSwiX2lzQXR0YWNoZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxmWXQucHJvdG90eXBlLCJfaW5pdGlhbGl6ZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxmWXQucHJvdG90eXBlLCJfYXJlSGVhbHRoUGlsbHNMb2FkaW5nIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXksbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZll0LnByb3RvdHlwZSwiX2RlYnVnZ2VyTnVtZXJpY0FsZXJ0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxmWXQucHJvdG90eXBlLCJfbm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmWXQucHJvdG90eXBlLCJfaGVhbHRoUGlsbFN0ZXBJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmWXQucHJvdG90eXBlLCJfaGVhbHRoUGlsbFJlcXVlc3RJZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmWXQucHJvdG90eXBlLCJfaGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmWXQucHJvdG90eXBlLCJfaGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJEZWxheSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZll0LnByb3RvdHlwZSwicnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITAsb2JzZXJ2ZXI6Il9ydW5PYnNlcnZlciJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZll0LnByb3RvdHlwZSwicnVuIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGZZdC5wcm90b3R5cGUsIl9zZWxlY3Rpb24iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZll0LnByb3RvdHlwZSwiX2NvbXBhdGliaWxpdHlQcm92aWRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGZZdC5wcm90b3R5cGUsIl90cmFjZUlucHV0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGZZdC5wcm90b3R5cGUsIl9hdXRvRXh0cmFjdE5vZGVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGZZdC5wcm90b3R5cGUsIl9zZWxlY3RlZEZpbGUiLHZvaWQgMCksdChbYSgiX2lzQXR0YWNoZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZZdC5wcm90b3R5cGUsIl9tYXliZUluaXRpYWxpemVEYXNoYm9hcmQiLG51bGwpLHQoW2EoIl9kYXRhc2V0c0ZldGNoZWQiLCJfZGF0YXNldHMiLCJydW4iKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZZdC5wcm90b3R5cGUsIl9kZXRlcm1pbmVTZWxlY3RlZERhdGFzZXQiLG51bGwpLHQoW2EoIl9kYXRhc2V0c0ZldGNoZWQiLCJfZGF0YXNldHMiLCJfc2VsZWN0ZWREYXRhc2V0IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxmWXQucHJvdG90eXBlLCJfdXBkYXRlU2VsZWN0ZWREYXRhc2V0TmFtZSIsbnVsbCksZll0PXQoW2koInRmLWdyYXBoLWRhc2hib2FyZCIpXSxmWXQpO2NvbnN0IG1ZdD1MTjtsZXQgZ1l0PWNsYXNzIGV4dGVuZHMoZXIoaWwoeWUpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMubW9kZT0ib2Zmc2V0Iix0aGlzLnRpbWVQcm9wZXJ0eT0ic3RlcCIsdGhpcy5iaW5zPSJiaW5zIix0aGlzLng9IngiLHRoaXMuZHg9ImR4Iix0aGlzLnk9InkiLHRoaXMuY29sb3JTY2FsZT1tWXQuc2NhbGVPcmRpbmFsKG1ZdC5zY2hlbWVDYXRlZ29yeTEwKSx0aGlzLm1vZGVUcmFuc2l0aW9uRHVyYXRpb249NTAwLHRoaXMuX25hbWU9bnVsbCx0aGlzLl9kYXRhPW51bGx9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuc2NvcGVTdWJ0cmVlKHRoaXMuJC5zdmcsITApfWF0dGFjaGVkKCl7dGhpcy5fYXR0YWNoZWQ9ITB9ZGV0YWNoZWQoKXt0aGlzLl9hdHRhY2hlZD0hMX1zZXRTZXJpZXNEYXRhKHQsZSl7dGhpcy5fbmFtZT10LHRoaXMuX2RhdGE9ZSx0aGlzLnJlZHJhdygpfV9yZWRyYXdPbkNoYW5nZSgpe3RoaXMucmVkcmF3KCl9cmVkcmF3KCl7dGhpcy5fZHJhdygwKX1fbW9kZVJlZHJhdygpe3RoaXMuX2RyYXcodGhpcy5tb2RlVHJhbnNpdGlvbkR1cmF0aW9uKX1fZHJhdyh0KXtpZighdGhpcy5fYXR0YWNoZWR8fCF0aGlzLl9kYXRhKXJldHVybjtpZih2b2lkIDA9PT10KXRocm93IG5ldyBFcnJvcigidnotaGlzdG9ncmFtLXRpbWVzZXJpZXMgX2RyYXcgbmVlZHMgZHVyYXRpb24iKTtpZih0aGlzLl9kYXRhLmxlbmd0aDw9MCl0aHJvdyBuZXcgRXJyb3IoIk5vdCBlbm91Z2ggc3RlcHMgaW4gdGhlIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXS5oYXNPd25Qcm9wZXJ0eSh0aGlzLmJpbnMpKXRocm93IG5ldyBFcnJvcigiTm8gYmlucyBwcm9wZXJ0eSBvZiAnIit0aGlzLmJpbnMrIicgaW4gZGF0YSIpO2lmKHRoaXMuX2RhdGFbMF1bdGhpcy5iaW5zXS5sZW5ndGg8PTApdGhyb3cgbmV3IEVycm9yKCJNdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGJpbiBpbiBiaW5zIGluIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXVt0aGlzLmJpbnNdWzBdLmhhc093blByb3BlcnR5KHRoaXMueCkpdGhyb3cgbmV3IEVycm9yKCJObyB4IHByb3BlcnR5ICciK3RoaXMueCsiJyBvbiBiaW5zIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXVt0aGlzLmJpbnNdWzBdLmhhc093blByb3BlcnR5KHRoaXMuZHgpKXRocm93IG5ldyBFcnJvcigiTm8gZHggcHJvcGVydHkgJyIrdGhpcy5keCsiJyBvbiBiaW5zIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXVt0aGlzLmJpbnNdWzBdLmhhc093blByb3BlcnR5KHRoaXMueSkpdGhyb3cgbmV3IEVycm9yKCJObyB5IHByb3BlcnR5ICciK3RoaXMueSsiJyBvbiBiaW5zIGRhdGEiKTt2YXIgZT10aGlzLnRpbWVQcm9wZXJ0eSxuPXRoaXMueCxpPXRoaXMuYmlucyxyPXRoaXMuZHgsbz10aGlzLnksYT10aGlzLl9kYXRhLHM9dGhpcy5tb2RlLGw9bVl0LmhjbCh0aGlzLmNvbG9yU2NhbGUodGhpcy5fbmFtZSkpLGM9bVl0LnNlbGVjdCh0aGlzLiQudG9vbHRpcCksdT1mdW5jdGlvbih0KXtyZXR1cm4gdFtuXX0saD1mdW5jdGlvbih0KXtyZXR1cm4gdFtvXX0sZD1mdW5jdGlvbih0KXtyZXR1cm4gdFtuXSt0W3JdfSxwPWZ1bmN0aW9uKHQpe3JldHVybiB0W2VdfTsicmVsYXRpdmUiPT09ZSYmKHA9ZnVuY3Rpb24odCl7cmV0dXJuIHQud2FsbF90aW1lLWFbMF0ud2FsbF90aW1lfSk7dmFyIGYsbT10aGlzLiQuc3ZnLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGc9bS53aWR0aCxfPW0uaGVpZ2h0LHk9e3RvcDo1LHJpZ2h0OjYwLGJvdHRvbToyMCxsZWZ0OjI0fTsib2Zmc2V0Ij09PXM/eS50b3A9NSsoZj1fLzIuNSk6Zj1fLXkudG9wLXkuYm90dG9tO3ZhciB2PWcteS5sZWZ0LXkucmlnaHQsYj1fLXkudG9wLXkuYm90dG9tO21ZdC5taW4oYSx1KSxtWXQubWF4KGEsZCk7dmFyIHg9bVl0LmZvcm1hdCgiLjNuIiksdz1tWXQuZm9ybWF0KCIuMGYiKTsid2FsbF90aW1lIj09PWU/dz1tWXQudGltZUZvcm1hdCgiJW0vJWQgJVgiKToicmVsYXRpdmUiPT09ZSYmKHc9ZnVuY3Rpb24odCl7cmV0dXJuIG1ZdC5mb3JtYXQoIi4xciIpKHQvMzZlNSkrImgifSk7dmFyIFM9YS5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuW21ZdC5taW4odFtpXSx1KSxtWXQubWF4KHRbaV0sZCldfSkpLE09YS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBtWXQuZXh0ZW50KHRbaV0saCl9KSksRT01MDAsVD1tWXQuZXh0ZW50KGEscCksQz0oIndhbGxfdGltZSI9PT1lP21ZdC5zY2FsZVRpbWUoKTptWXQuc2NhbGVMaW5lYXIoKSkuZG9tYWluKFQpLnJhbmdlKFswLCJvZmZzZXQiPT09cz9iOjBdKSxBPW1ZdC5zY2FsZUxpbmVhcigpLmRvbWFpbihbMCxtWXQubWF4KGEsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1bZV1bMV19KSldKS5yYW5nZShbZiwwXSksaz1tWXQuc2NhbGVMaW5lYXIoKS5kb21haW4oQS5kb21haW4oKSkucmFuZ2UoW0UsMF0pLEw9bVl0LnNjYWxlTGluZWFyKCkuZG9tYWluKFttWXQubWluKGEsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIFNbZV1bMF19KSksbVl0Lm1heChhLChmdW5jdGlvbih0LGUpe3JldHVybiBTW2VdWzFdfSkpXSkubmljZSgpLnJhbmdlKFswLHZdKSxQPW1ZdC5zY2FsZUxpbmVhcigpLmRvbWFpbihMLmRvbWFpbigpKS5yYW5nZShbMCxFXSk7Y29uc3QgTj1tWXQuc2NhbGVMaW5lYXIoKS5kb21haW4obVl0LmV4dGVudChhLHApKS5yYW5nZShbbC5icmlnaHRlcigpLGwuZGFya2VyKCldKS5pbnRlcnBvbGF0ZShtWXQuaW50ZXJwb2xhdGVIY2wpO3ZhciBJPW1ZdC5heGlzQm90dG9tKEwpLnRpY2tzKE1hdGgubWF4KDIsdi8yMCkpLFI9bVl0LmF4aXNSaWdodChDKS50aWNrcyhNYXRoLm1heCgyLGIvMTUpKS50aWNrRm9ybWF0KHcpLE89bVl0LmF4aXNSaWdodChBKS50aWNrcyhNYXRoLm1heCgyLGIvMTUpKS50aWNrU2l6ZSh2KzUpLnRpY2tGb3JtYXQoeCksej1mdW5jdGlvbih0KXtyZXR1cm4gdFtuXSt0W3JdLzJ9LEQ9bVl0LmxpbmUoKS54KChmdW5jdGlvbih0KXtyZXR1cm4gUCh6KHQpKX0pKS55KChmdW5jdGlvbih0KXtyZXR1cm4gayh0W29dKX0pKSxCPXRoaXMuJC5zdmcsSD1tWXQuc2VsZWN0KEIpLEY9SC50cmFuc2l0aW9uKCkuZHVyYXRpb24odCksVj1ILnNlbGVjdCgiZyIpLmNsYXNzZWQoInNtYWxsIiwoZnVuY3Rpb24oKXtyZXR1cm4gdj4wJiZ2PD0xNTB9KSkuY2xhc3NlZCgibWVkaXVtIiwoZnVuY3Rpb24oKXtyZXR1cm4gdj4xNTAmJnY8PTMwMH0pKS5jbGFzc2VkKCJsYXJnZSIsKGZ1bmN0aW9uKCl7cmV0dXJuIHY+MzAwfSkpLFU9Ri5zZWxlY3QoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIit5LmxlZnQrIiwiK3kudG9wKyIpIiksaj1tWXQuYmlzZWN0b3IoZCkubGVmdCxHPVYuc2VsZWN0KCIuc3RhZ2UiKS5vbigibW91c2VvdmVyIiwoZnVuY3Rpb24oKXtKLnN0eWxlKCJvcGFjaXR5IiwxKSxldC5zdHlsZSgib3BhY2l0eSIsMSkscnQuc3R5bGUoIm9wYWNpdHkiLDEpLHN0LnN0eWxlKCJvcGFjaXR5IiwxKSxjLnN0eWxlKCJvcGFjaXR5IiwxKX0pKS5vbigibW91c2VvdXQiLChmdW5jdGlvbigpe0ouc3R5bGUoIm9wYWNpdHkiLDApLGV0LnN0eWxlKCJvcGFjaXR5IiwwKSxydC5zdHlsZSgib3BhY2l0eSIsMCksc3Quc3R5bGUoIm9wYWNpdHkiLDApLEouY2xhc3NlZCgiaG92ZXItY2xvc2VzdCIsITEpLEsuY2xhc3NlZCgib3V0bGluZS1ob3ZlciIsITEpLGMuc3R5bGUoIm9wYWNpdHkiLDApfSkpLm9uKCJtb3VzZW1vdmUiLChmdW5jdGlvbiBXKCl7dmFyIHQsYT1tWXQubW91c2UodGhpcyksbD1MLmludmVydChhWzBdKTtmdW5jdGlvbiB1KHQpe3JldHVybiBNYXRoLm1pbih0W2ldLmxlbmd0aC0xLGoodFtpXSxsKSl9Qy5pbnZlcnQoYVsxXSk7dmFyIGgsZD0xLzA7Si5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbihlLGwpe3ZhciBjPXUoZSk7aD1lO3ZhciBtPUwoZVtpXVtjXVtuXStlW2ldW2NdW3JdLzIpLGc9QShlW2ldW2NdW29dKSxfPSJvZmZzZXQiPT09cz9DKHAoZSkpLShmLWcpOmcseT1NYXRoLmFicyhhWzFdLV8pO3JldHVybiB5PGQmJihkPXksdD1lKSwidHJhbnNsYXRlKCIrbSsiLCIrZysiKSJ9KSksSi5zZWxlY3QoInRleHQiKS50ZXh0KChmdW5jdGlvbih0KXt2YXIgZT11KHQpO3JldHVybiB0W2ldW2VdW29dfSkpLEouY2xhc3NlZCgiaG92ZXItY2xvc2VzdCIsKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dH0pKSxLLmNsYXNzZWQoIm91dGxpbmUtaG92ZXIiLChmdW5jdGlvbihlKXtyZXR1cm4gZT09PXR9KSk7dmFyIG09dShoKTtldC5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrTChoW2ldW21dW25dK2hbaV1bbV1bcl0vMikrIiwgIitiKyIpIn0pKS5zZWxlY3QoInRleHQiKS50ZXh0KChmdW5jdGlvbih0KXtyZXR1cm4geChoW2ldW21dW25dK2hbaV1bbV1bcl0vMil9KSk7dmFyIGc9Ui50aWNrRm9ybWF0KCk7cnQuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24oZSl7cmV0dXJuInRyYW5zbGF0ZSgiK3YrIiwgIisoIm9mZnNldCI9PT1zP0MocCh0KSk6MCkrIikifSkpLnN0eWxlKCJkaXNwbGF5Iiwib2Zmc2V0Ij09PXM/IiI6Im5vbmUiKS5zZWxlY3QoInRleHQiKS50ZXh0KChmdW5jdGlvbihlKXtyZXR1cm4gZyhwKHQpKX0pKTt2YXIgXz1PLnRpY2tGb3JtYXQoKTtzdC5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbihlKXtyZXR1cm4idHJhbnNsYXRlKCIrdisiLCAiKygib2Zmc2V0Ij09PXM/MDpBKHRbaV1bbV1bb10pKSsiKSJ9KSkuc3R5bGUoImRpc3BsYXkiLCJvZmZzZXQiPT09cz8ibm9uZSI6IiIpLnNlbGVjdCgidGV4dCIpLnRleHQoKGZ1bmN0aW9uKGUpe3JldHVybiBfKHRbaV1bbV1bb10pfSkpO3ZhciB5PW1ZdC5tb3VzZShCKTtjLnN0eWxlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIisoeVswXSsxNSkrInB4LCIrKHlbMV0tMTUpKyJweCkiKS5zZWxlY3QoInNwYW4iKS50ZXh0KCJvZmZzZXQiPT09cz9fKHRbaV1bbV1bb10pOigic3RlcCI9PT1lPyJzdGVwICI6IiIpK2cocCh0KSkpfSkpO0cuc2VsZWN0KCIuYmFja2dyb3VuZCIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiKy15LmxlZnQrIiwiKy15LnRvcCsiKSIpLmF0dHIoIndpZHRoIixnKS5hdHRyKCJoZWlnaHQiLF8pO3ZhciBxPUcuc2VsZWN0QWxsKCIuaGlzdG9ncmFtIikuZGF0YShhKTtxLmV4aXQoKS5yZW1vdmUoKTt2YXIgWT1xLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJoaXN0b2dyYW0iKSxYPVkubWVyZ2UocSkuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gcCh0KS1wKGUpfSkpLCQ9VS5zZWxlY3RBbGwoIi5oaXN0b2dyYW0iKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKDAsICIrKCJvZmZzZXQiPT09cz9DKHAodCkpLWY6MCkrIikifSkpO1kuYXBwZW5kKCJsaW5lIikuYXR0cigiY2xhc3MiLCJiYXNlbGluZSIpLCQuc2VsZWN0KCIuYmFzZWxpbmUiKS5zdHlsZSgic3Ryb2tlLW9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4ib2Zmc2V0Ij09PXM/LjE6MH0pKS5hdHRyKCJ5MSIsZikuYXR0cigieTIiLGYpLmF0dHIoIngyIix2KSxZLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwib3V0bGluZSIpO3ZhciBLPVguc2VsZWN0KCIub3V0bGluZSIpLmF0dHIoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKS5hdHRyKCJkIiwoZnVuY3Rpb24odCl7cmV0dXJuKGZ1bmN0aW9uKHQpe3JldHVybiJNIitQKHoodFswXSkpKyIsIitrKDApKyJMIitEKHQpLnNsaWNlKDEpKyJMIitQKHoodFt0Lmxlbmd0aC0xXSkpKyIsIitrKDApfSkodFtpXSl9KSkuc3R5bGUoInN0cm9rZS13aWR0aCIsMSk7JC5zZWxlY3QoIi5vdXRsaW5lIikuYXR0cigidHJhbnNmb3JtIiwic2NhbGUoIit2L0UrIiwgIitmL0UrIikiKS5zdHlsZSgic3Ryb2tlIiwoZnVuY3Rpb24odCl7cmV0dXJuIm9mZnNldCI9PT1zPyIiOk4ocCh0KSl9KSkuc3R5bGUoImZpbGwtb3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiJvZmZzZXQiPT09cz8xOjB9KSkuc3R5bGUoImZpbGwiLChmdW5jdGlvbih0KXtyZXR1cm4gTihwKHQpKX0pKTt2YXIgWj1ZLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiaG92ZXIiKSxKPVguc2VsZWN0KCIuaG92ZXIiKS5zdHlsZSgiZmlsbCIsKGZ1bmN0aW9uKHQpe3JldHVybiBOKHAodCkpfSkpO1ouYXBwZW5kKCJjaXJjbGUiKS5hdHRyKCJyIiwyKSxaLmFwcGVuZCgidGV4dCIpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLmF0dHIoImR4Iiw0KTt2YXIgUT1WLnNlbGVjdCgiLngtYXhpcy1ob3ZlciIpLnNlbGVjdEFsbCgiLmxhYmVsIikuZGF0YShbIngiXSksdHQ9US5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwibGFiZWwiKSxldD1RLm1lcmdlKHR0KTt0dC5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4IiwtMjApLmF0dHIoInkiLDYpLmF0dHIoIndpZHRoIiw0MCkuYXR0cigiaGVpZ2h0IiwxNCksdHQuYXBwZW5kKCJsaW5lIikuYXR0cigieDEiLDApLmF0dHIoIngyIiwwKS5hdHRyKCJ5MSIsMCkuYXR0cigieTIiLDYpLHR0LmFwcGVuZCgidGV4dCIpLmF0dHIoImR5IiwxOCk7dmFyIG50PVYuc2VsZWN0KCIueS1heGlzLWhvdmVyIikuc2VsZWN0QWxsKCIubGFiZWwiKS5kYXRhKFsieSJdKSxpdD1udC5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwibGFiZWwiKSxydD1udC5tZXJnZShpdCk7aXQuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsOCkuYXR0cigieSIsLTYpLmF0dHIoIndpZHRoIiw0MCkuYXR0cigiaGVpZ2h0IiwxNCksaXQuYXBwZW5kKCJsaW5lIikuYXR0cigieDEiLDApLmF0dHIoIngyIiw2KS5hdHRyKCJ5MSIsMCkuYXR0cigieTIiLDApLGl0LmFwcGVuZCgidGV4dCIpLmF0dHIoImR4Iiw4KS5hdHRyKCJkeSIsNCk7dmFyIG90PVYuc2VsZWN0KCIueS1zbGljZS1heGlzLWhvdmVyIikuc2VsZWN0QWxsKCIubGFiZWwiKS5kYXRhKFsieSJdKSxhdD1vdC5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwibGFiZWwiKSxzdD1vdC5tZXJnZShhdCk7YXQuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsOCkuYXR0cigieSIsLTYpLmF0dHIoIndpZHRoIiw0MCkuYXR0cigiaGVpZ2h0IiwxNCksYXQuYXBwZW5kKCJsaW5lIikuYXR0cigieDEiLDApLmF0dHIoIngyIiw2KS5hdHRyKCJ5MSIsMCkuYXR0cigieTIiLDApLGF0LmFwcGVuZCgidGV4dCIpLmF0dHIoImR4Iiw4KS5hdHRyKCJkeSIsNCksVS5zZWxlY3QoIi55LmF4aXMuc2xpY2UiKS5zdHlsZSgib3BhY2l0eSIsIm9mZnNldCI9PT1zPzA6MSkuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKDAsICIrKCJvZmZzZXQiPT09cz8tZjowKSsiKSIpLmNhbGwoTyksVS5zZWxlY3QoIi54LmF4aXMiKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMCwgIitiKyIpIikuY2FsbChJKSxVLnNlbGVjdCgiLnkuYXhpcyIpLnN0eWxlKCJvcGFjaXR5Iiwib2Zmc2V0Ij09PXM/MTowKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIit2KyIsICIrKCJvZmZzZXQiPT09cz8wOmIpKyIpIikuY2FsbChSKSxVLnNlbGVjdEFsbCgiLnRpY2sgdGV4dCIpLmF0dHIoImZpbGwiLCIjYWFhIiksVS5zZWxlY3RBbGwoIi5heGlzIHBhdGguZG9tYWluIikuYXR0cigic3Ryb2tlIiwibm9uZSIpfX07ZnVuY3Rpb24gX1l0KHQpe2NvbnN0W2UsbixpXT10O3JldHVybnt3YWxsX3RpbWU6ZSxzdGVwOm4sbWluOllsKGkubWFwKCgoW3QsLF0pPT50KSkpLG1heDpXbChpLm1hcCgoKFssdF0pPT50KSkpLGJ1Y2tldHM6aS5tYXAoKChbdCxlLG5dKT0+KHtsZWZ0OnQscmlnaHQ6ZSxjb3VudDpufSkpKX19ZnVuY3Rpb24geVl0KHQsZSxuLGk9MzApe249PT1lJiYobj0xLjEqZSsxLGU9ZS8xLjEtMSk7Y29uc3Qgcj0obi1lKS9pO2xldCBvPTA7cmV0dXJuIHpsKGUsbixyKS5tYXAoKGk9Pntjb25zdCBhPWkrcjtsZXQgcz0wO2Zvcig7bzx0LmJ1Y2tldHMubGVuZ3RoOyl7Y29uc3Qgcj1NYXRoLm1pbihuLHQuYnVja2V0c1tvXS5yaWdodCksbD1NYXRoLm1heChlLHQuYnVja2V0c1tvXS5sZWZ0KSxjPU1hdGgubWluKHIsYSktTWF0aC5tYXgobCxpKSx1PWMvKHItbCkqdC5idWNrZXRzW29dLmNvdW50O2lmKHMrPWM+MD91OjAscj5hKWJyZWFrO28rK31yZXR1cm57eDppLGR4OnIseTpzfX0pKX1nWXQudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGlkPSJ0b29sdGlwIj48c3Bhbj48L3NwYW4+PC9kaXY+CiAgICA8c3ZnIGlkPSJzdmciPgogICAgICA8Zz4KICAgICAgICA8ZyBjbGFzcz0iYXhpcyB4Ij48L2c+CiAgICAgICAgPGcgY2xhc3M9ImF4aXMgeSI+PC9nPgogICAgICAgIDxnIGNsYXNzPSJheGlzIHkgc2xpY2UiPjwvZz4KICAgICAgICA8ZyBjbGFzcz0ic3RhZ2UiPgogICAgICAgICAgPHJlY3QgY2xhc3M9ImJhY2tncm91bmQiPjwvcmVjdD4KICAgICAgICA8L2c+CiAgICAgICAgPGcgY2xhc3M9IngtYXhpcy1ob3ZlciI+PC9nPgogICAgICAgIDxnIGNsYXNzPSJ5LWF4aXMtaG92ZXIiPjwvZz4KICAgICAgICA8ZyBjbGFzcz0ieS1zbGljZS1heGlzLWhvdmVyIj48L2c+CiAgICAgIDwvZz4KICAgIDwvc3ZnPgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAjYWFhOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItYmctY29sb3I6ICNmZmY7CiAgICAgICAgLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1vdXRsaW5lLWNvbG9yOiAjZmZmOwogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItb3V0bGluZS1jb2xvcjogIzAwMDsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgewogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItYmctY29sb3I6IHZhcigKICAgICAgICAgIC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yCiAgICAgICAgKTsKICAgICAgICAtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLW91dGxpbmUtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNjAwKTsKICAgICAgICAtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLWhvdmVyLW91dGxpbmUtY29sb3I6ICNmZmY7CiAgICAgIH0KCiAgICAgIHN2ZyB7CiAgICAgICAgZm9udC1mYW1pbHk6IHJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgIH0KCiAgICAgIHRleHQgewogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgI3Rvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLmJhY2tncm91bmQgewogICAgICAgIGZpbGwtb3BhY2l0eTogMDsKICAgICAgICBmaWxsOiByZWQ7CiAgICAgIH0KCiAgICAgIC5oaXN0b2dyYW0gewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuaG92ZXIgewogICAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgICAgIGRvbWluYW50LWJhc2VsaW5lOiBtaWRkbGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLmhvdmVyIGNpcmNsZSB7CiAgICAgICAgc3Ryb2tlOiB3aGl0ZTsKICAgICAgICBzdHJva2Utb3BhY2l0eTogMC41OwogICAgICAgIHN0cm9rZS13aWR0aDogMXB4OwogICAgICB9CgogICAgICAuaG92ZXIgdGV4dCB7CiAgICAgICAgZmlsbDogYmxhY2s7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLmhvdmVyLmhvdmVyLWNsb3Nlc3QgY2lyY2xlIHsKICAgICAgICBmaWxsOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1ob3Zlci1vdXRsaW5lLWNvbG9yKSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaG92ZXIuaG92ZXItY2xvc2VzdCB0ZXh0IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuYmFzZWxpbmUgewogICAgICAgIHN0cm9rZTogYmxhY2s7CiAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTsKICAgICAgfQoKICAgICAgLm91dGxpbmUgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1vdXRsaW5lLWNvbG9yKTsKICAgICAgICBzdHJva2Utb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAub3V0bGluZS5vdXRsaW5lLWhvdmVyIHsKICAgICAgICBzdHJva2U6IHZhcigtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLWhvdmVyLW91dGxpbmUtY29sb3IpICFpbXBvcnRhbnQ7CiAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC54LWF4aXMtaG92ZXIsCiAgICAgIC55LWF4aXMtaG92ZXIsCiAgICAgIC55LXNsaWNlLWF4aXMtaG92ZXIgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIC5sYWJlbCwKICAgICAgLnktYXhpcy1ob3ZlciAubGFiZWwsCiAgICAgIC55LXNsaWNlLWF4aXMtaG92ZXIgLmxhYmVsIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB0ZXh0LWFuY2hvcjogZW5kOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIHRleHQgewogICAgICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC55LWF4aXMtaG92ZXIgdGV4dCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciB0ZXh0IHsKICAgICAgICB0ZXh0LWFuY2hvcjogc3RhcnQ7CiAgICAgIH0KCiAgICAgIC54LWF4aXMtaG92ZXIgbGluZSwKICAgICAgLnktYXhpcy1ob3ZlciBsaW5lLAogICAgICAueS1zbGljZS1heGlzLWhvdmVyIGxpbmUgewogICAgICAgIHN0cm9rZTogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIHJlY3QsCiAgICAgIC55LWF4aXMtaG92ZXIgcmVjdCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciByZWN0IHsKICAgICAgICBmaWxsOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1ob3Zlci1iZy1jb2xvcik7CiAgICAgIH0KCiAgICAgICN0b29sdGlwLAogICAgICAueC1heGlzLWhvdmVyIHRleHQsCiAgICAgIC55LWF4aXMtaG92ZXIgdGV4dCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciB0ZXh0IHsKICAgICAgICBjb2xvcjogdmFyKC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItb3V0bGluZS1jb2xvcik7CiAgICAgIH0KCiAgICAgIC5heGlzIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC5heGlzIHBhdGguZG9tYWluIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICB9CgogICAgICAuYXhpcyAudGljayBsaW5lIHsKICAgICAgICBzdHJva2U6ICNkZGQ7CiAgICAgIH0KCiAgICAgIC5heGlzLnNsaWNlIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAuYXhpcy5zbGljZSAudGljayBsaW5lIHsKICAgICAgICBzdHJva2UtZGFzaGFycmF5OiAyOwogICAgICB9CgogICAgICAuc21hbGwgLmF4aXMgdGV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICAuc21hbGwgLmF4aXMgLnRpY2s6Zmlyc3Qtb2YtdHlwZSB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAuc21hbGwgLmF4aXMgLnRpY2s6bGFzdC1vZi10eXBlIHRleHQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5tZWRpdW0gLmF4aXMgdGV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICAubWVkaXVtIC5heGlzIC50aWNrOm50aC1jaGlsZCgybiArIDEpIHRleHQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5sYXJnZSAuYXhpcyB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICAgIC5sYXJnZSAuYXhpcyAudGljazpudGgtY2hpbGQoMm4gKyAxKSB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGdZdC5wcm90b3R5cGUsIm1vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZ1l0LnByb3RvdHlwZSwidGltZVByb3BlcnR5Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGdZdC5wcm90b3R5cGUsImJpbnMiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZ1l0LnByb3RvdHlwZSwieCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxnWXQucHJvdG90eXBlLCJkeCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxnWXQucHJvdG90eXBlLCJ5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGdZdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sZ1l0LnByb3RvdHlwZSwibW9kZVRyYW5zaXRpb25EdXJhdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGdZdC5wcm90b3R5cGUsIl9hdHRhY2hlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxnWXQucHJvdG90eXBlLCJfbmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZ1l0LnByb3RvdHlwZSwiX2RhdGEiLHZvaWQgMCksdChbYSgidGltZVByb3BlcnR5IiwiY29sb3JTY2FsZSIsIl9hdHRhY2hlZCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sZ1l0LnByb3RvdHlwZSwiX3JlZHJhd09uQ2hhbmdlIixudWxsKSx0KFthKCJtb2RlIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxnWXQucHJvdG90eXBlLCJfbW9kZVJlZHJhdyIsbnVsbCksZ1l0PXQoW2koInZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzIildLGdZdCk7bGV0IHZZdD1jbGFzcyBleHRlbmRzKExUdChlcih5ZSkpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5nZXREYXRhTG9hZE5hbWU9KHtydW46dH0pPT50LHRoaXMucmVxdWVzdERhdGE9KHQsZSxuKT0+e2NvbnN0IGk9X3IoKS5wbHVnaW5Sb3V0ZSgiaGlzdG9ncmFtcyIsIi9oaXN0b2dyYW1zIik7UHJvbWlzZS5hbGwodC5tYXAoKHQ9Pntjb25zdCBuPWlPKGkse3RhZzp0LnRhZyxydW46dC5ydW59KTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KG4pLnRoZW4oKG49PntlKHtpdGVtOnQsZGF0YTpufSl9KSl9KSkpLmZpbmFsbHkoKCgpPT57bigpfSkpfSx0aGlzLmxvYWREYXRhQ2FsbGJhY2s9KHQsZSxuKT0+e2NvbnN0IGk9KGZ1bmN0aW9uIHIodCl7Y29uc3QgZT10Lm1hcChfWXQpLG49WWwoZSwodD0+dC5taW4pKSxpPVdsKGUsKHQ9PnQubWF4KSk7cmV0dXJuIGUubWFwKCh0PT4oe3dhbGxfdGltZTp0LndhbGxfdGltZSxzdGVwOnQuc3RlcCxiaW5zOnlZdCh0LG4saSl9KSkpfSkobiksbz10aGlzLmdldERhdGFMb2FkTmFtZShlKTt0aGlzLiQuY2hhcnQuc2V0U2VyaWVzRGF0YShvLGkpfSx0aGlzLl9jb2xvclNjYWxlRnVuY3Rpb249R1IsdGhpcy5fZXhwYW5kZWQ9ITF9X3JlbG9hZE9uUnVuVGFnUmVxdWVzdE1hbmFnZXJDaGFuZ2UoKXt0aGlzLnJlbG9hZCgpfV91cGRhdGVEYXRhVG9Mb2FkKCl7dGhpcy5kYXRhVG9Mb2FkPVt7cnVuOnRoaXMucnVuLHRhZzp0aGlzLnRhZ31dfWdldCBfcnVuQ29sb3IoKXtyZXR1cm4gdGhpcy5fY29sb3JTY2FsZUZ1bmN0aW9uKHRoaXMucnVuKX1yZWRyYXcoKXt0aGlzLiQuY2hhcnQucmVkcmF3KCl9X3RvZ2dsZUV4cGFuZGVkKHQpe3RoaXMuc2V0KCJfZXhwYW5kZWQiLCF0aGlzLl9leHBhbmRlZCksdGhpcy5yZWRyYXcoKX19O3ZZdC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBydW49IltbcnVuXV0iCiAgICAgIGRpc3BsYXktbmFtZT0iW1t0YWdNZXRhZGF0YS5kaXNwbGF5TmFtZV1dIgogICAgICBkZXNjcmlwdGlvbj0iW1t0YWdNZXRhZGF0YS5kZXNjcmlwdGlvbl1dIgogICAgICBjb2xvcj0iW1tfcnVuQ29sb3JdXSIKICAgID48L3RmLWNhcmQtaGVhZGluZz4KICAgIDwhLS0KICAgICAgVGhlIG1haW4gaGlzdG9ncmFtIHRoYXQgd2UgcmVuZGVyLiBEYXRhIGlzIHNldCBkaXJlY3RseSB3aXRoCiAgICAgIFxgc2V0U2VyaWVzRGF0YVxgLCBub3Qgd2l0aCBhIGJvdW5kIHByb3BlcnR5LgogICAgLS0+CiAgICA8dnotaGlzdG9ncmFtLXRpbWVzZXJpZXMKICAgICAgaWQ9ImNoYXJ0IgogICAgICB0aW1lLXByb3BlcnR5PSJbW3RpbWVQcm9wZXJ0eV1dIgogICAgICBtb2RlPSJbW2hpc3RvZ3JhbU1vZGVdXSIKICAgICAgY29sb3Itc2NhbGU9IltbX2NvbG9yU2NhbGVGdW5jdGlvbl1dIgogICAgPjwvdnotaGlzdG9ncmFtLXRpbWVzZXJpZXM+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyI+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIHNlbGVjdGVkJD0iW1tfZXhwYW5kZWRdXSIKICAgICAgICBpY29uPSJmdWxsc2NyZWVuIgogICAgICAgIG9uLXRhcD0iX3RvZ2dsZUV4cGFuZGVkIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHdpZHRoOiAzMzBweDsKICAgICAgICBoZWlnaHQ6IDIzNXB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CiAgICAgIDpob3N0KFtfZXhwYW5kZWRdKSB7CiAgICAgICAgd2lkdGg6IDcwMHB4OwogICAgICAgIGhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIHZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzIHsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGNvbG9yOiAjMjE5NmYzOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CgogICAgICB0Zi1jYXJkLWhlYWRpbmcgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgd2lkdGg6IDkwJTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHZZdC5wcm90b3R5cGUsInJ1biIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx2WXQucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdll0LnByb3RvdHlwZSwiZ2V0RGF0YUxvYWROYW1lIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0sdll0LnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdll0LnByb3RvdHlwZSwibG9hZERhdGFDYWxsYmFjayIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx2WXQucHJvdG90eXBlLCJ0YWdNZXRhZGF0YSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx2WXQucHJvdG90eXBlLCJ0aW1lUHJvcGVydHkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sdll0LnByb3RvdHlwZSwiaGlzdG9ncmFtTW9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLHZZdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlRnVuY3Rpb24iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sdll0LnByb3RvdHlwZSwiX2V4cGFuZGVkIix2b2lkIDApLHQoW2EoInJ1biIsInRhZyIsInJlcXVlc3RNYW5hZ2VyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx2WXQucHJvdG90eXBlLCJfcmVsb2FkT25SdW5UYWdSZXF1ZXN0TWFuYWdlckNoYW5nZSIsbnVsbCksdChbYSgicnVuIiwidGFnIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx2WXQucHJvdG90eXBlLCJfdXBkYXRlRGF0YVRvTG9hZCIsbnVsbCksdChbcygicnVuIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sdll0LnByb3RvdHlwZSwiX3J1bkNvbG9yIixudWxsKSx2WXQ9dChbaSgidGYtaGlzdG9ncmFtLWxvYWRlciIpXSx2WXQpO2xldCBiWXQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5faGlzdG9ncmFtTW9kZT0ib2Zmc2V0Iix0aGlzLl90aW1lUHJvcGVydHk9InN0ZXAiLHRoaXMuX3Jlc3RhbXA9ITEsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IGRyfV9yZWRyYXdDYXRlZ29yeVBhbmUodCxlKXtlJiZ0LnRhcmdldC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1oaXN0b2dyYW0tbG9hZGVyIikuZm9yRWFjaCgodD0+dC5yZWRyYXcoKSkpfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKCk9Pnt0aGlzLl9yZWxvYWRIaXN0b2dyYW1zKCl9KSl9X2ZldGNoVGFncygpe2NvbnN0IHQ9X3IoKS5wbHVnaW5Sb3V0ZSgiaGlzdG9ncmFtcyIsIi90YWdzIik7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbigodD0+e2lmKFNlLmV4cG9ydHMuaXNFcXVhbCh0LHRoaXMuX3J1blRvVGFnSW5mbykpcmV0dXJuO2NvbnN0IGU9U2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+T2JqZWN0LmtleXModCkpKSxuPWFyKGUpO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIiwwPT09bi5sZW5ndGgpLHRoaXMuc2V0KCJfcnVuVG9UYWciLGUpLHRoaXMuc2V0KCJfcnVuVG9UYWdJbmZvIix0KSx0aGlzLmFzeW5jKCgoKT0+e3RoaXMuc2V0KCJfY2F0ZWdvcmllc0RvbVJlYWR5IiwhMCl9KSl9KSl9X3JlbG9hZEhpc3RvZ3JhbXMoKXt0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtaGlzdG9ncmFtLWxvYWRlciIpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfWdldCBfY2F0ZWdvcmllcygpe3JldHVybiBNcih0aGlzLl9ydW5Ub1RhZyx0aGlzLl9zZWxlY3RlZFJ1bnMsdGhpcy5fdGFnRmlsdGVyKX1fdGFnTWV0YWRhdGEodCxlLG4pe3JldHVybiB0W2VdW25dfX07ZnVuY3Rpb24geFl0KHQpe3JldHVybiIiIT09dC5kaXNwbGF5TmFtZSYmdm9pZCAwIT09dC5kaXNwbGF5TmFtZT90LmRpc3BsYXlOYW1lOnQubmFtZX1mdW5jdGlvbiB3WXQodCl7aWYoIiIhPT10LmRpc3BsYXlOYW1lJiZ2b2lkIDAhPT10LmRpc3BsYXlOYW1lKXJldHVybiB0LmRpc3BsYXlOYW1lO2xldCBlPXQubmFtZS5ncm91cCxuPXQubmFtZS50YWc7cmV0dXJuIHZvaWQgMD09PWUmJihlPSIiKSx2b2lkIDA9PT1uJiYobj0iIiksIiI9PT1lP246ZSsiLiIrbn1mdW5jdGlvbiBTWXQodCxlKXtyZXR1cm4gZTx0LmhwYXJhbUNvbHVtbnMubGVuZ3RoP3hZdCh0LmhwYXJhbUNvbHVtbnNbZV0uaHBhcmFtSW5mbyk6d1l0KHQubWV0cmljQ29sdW1uc1tlLXQuaHBhcmFtQ29sdW1ucy5sZW5ndGhdLm1ldHJpY0luZm8pfWZ1bmN0aW9uIE1ZdCh0KXtyZXR1cm4gdC5ocGFyYW1Db2x1bW5zLmxlbmd0aH1mdW5jdGlvbiBFWXQodCl7cmV0dXJuIHQubWV0cmljQ29sdW1ucy5sZW5ndGh9ZnVuY3Rpb24gVFl0KHQpe3JldHVybiBNWXQodCkrRVl0KHQpfWZ1bmN0aW9uIENZdCh0LGUpe3JldHVybiB0W2VdfWZ1bmN0aW9uIEFZdCh0LGUpe3JldHVybiB0LmZpbmQoKHQ9PlNlLmV4cG9ydHMuaXNFcXVhbCh0Lm5hbWUsZSkpKX1mdW5jdGlvbiBrWXQodCxlLG4pe3JldHVybiBlLmhwYXJhbXNbdC5ocGFyYW1Db2x1bW5zW25dLmhwYXJhbUluZm8ubmFtZV19ZnVuY3Rpb24gTFl0KHQsZSxuKXtjb25zdCBpPUFZdChlLm1ldHJpY1ZhbHVlcyx0Lm1ldHJpY0NvbHVtbnNbbl0ubWV0cmljSW5mby5uYW1lKTtyZXR1cm4gdm9pZCAwPT09aT92b2lkIDA6aS52YWx1ZX1mdW5jdGlvbiBQWXQodCxlLG4pe3JldHVybiBuPHQuaHBhcmFtQ29sdW1ucy5sZW5ndGg/a1l0KHQsZSxuKTpMWXQodCxlLG4tdC5ocGFyYW1Db2x1bW5zLmxlbmd0aCl9ZnVuY3Rpb24gTll0KHQsZSxuKXtyZXR1cm4gTGwoZSwoZT0+UFl0KHQsZSxuKSkpfWZ1bmN0aW9uIElZdCh0LGUsbil7bGV0IGk7aWYobjxlLmhwYXJhbUluZm9zLmxlbmd0aClpPXQuaHBhcmFtQ29sdW1ucy5maW5kSW5kZXgoKHQ9PnQuaHBhcmFtSW5mby5uYW1lPT09ZS5ocGFyYW1JbmZvc1tuXS5uYW1lKSk7ZWxzZXtjb25zdCByPWUubWV0cmljSW5mb3Nbbi1lLmhwYXJhbUluZm9zLmxlbmd0aF0ubmFtZTtpPXQuaHBhcmFtQ29sdW1ucy5sZW5ndGgrdC5tZXRyaWNDb2x1bW5zLmZpbmRJbmRleCgodD0+dC5tZXRyaWNJbmZvLm5hbWU9PT1yKSl9cmV0dXJuIGNvbnNvbGUuYXNzZXJ0KC0xIT09aSksaX1mdW5jdGlvbiBSWXQodCl7cmV0dXJuIHQuaHBhcmFtSW5mb3MubGVuZ3RofWZ1bmN0aW9uIE9ZdCh0KXtyZXR1cm4gdC5tZXRyaWNJbmZvcy5sZW5ndGh9ZnVuY3Rpb24gell0KHQsZSxuKXtyZXR1cm4gTGwoZSwoZT0+Rll0KHQsZSxuKSkpfWZ1bmN0aW9uIERZdCh0LGUpe3JldHVybiB0LmZpbmQoKHQ9PnQubmFtZT09PWUpKX1mdW5jdGlvbiBCWXQodCxlLG4pe3JldHVybiBlLmhwYXJhbXNbdC5ocGFyYW1JbmZvc1tuXS5uYW1lXX1mdW5jdGlvbiBIWXQodCxlLG4pe2NvbnN0IGk9QVl0KGUubWV0cmljVmFsdWVzLHQubWV0cmljSW5mb3Nbbl0ubmFtZSk7cmV0dXJuIHZvaWQgMD09PWk/dm9pZCAwOmkudmFsdWV9ZnVuY3Rpb24gRll0KHQsZSxuKXtyZXR1cm4gbjx0LmhwYXJhbUluZm9zLmxlbmd0aD9CWXQodCxlLG4pOkhZdCh0LGUsbi10LmhwYXJhbUluZm9zLmxlbmd0aCl9ZnVuY3Rpb24gVll0KHQpe3JldHVybiBTZS5leHBvcnRzLmlzTnVtYmVyKHQpP3QudG9QcmVjaXNpb24oNSk6dm9pZCAwPT09dD8iIjp0LnRvU3RyaW5nKCl9ZnVuY3Rpb24gVVl0KHQsZSl7cmV0dXJuIHQqdCtlKmV9ZnVuY3Rpb24gall0KHQsZSxuLGkpe3JldHVybiBNYXRoLnNxcnQoVVl0KHQtbixlLWkpKX1mdW5jdGlvbiBHWXQodCxlLG4saSxyLG8pe2lmKHQ8biYmZTxpKXJldHVybiBqWXQodCxlLG4saSk7aWYobjw9dCYmdDxyJiZlPGkpcmV0dXJuIGktZTtpZihyPD10JiZlPGkpcmV0dXJuIGpZdCh0LGUscixpKTtpZih0PG4mJmk8PWUmJmU8bylyZXR1cm4gbi10O2lmKG48PXQmJnQ8ciYmaTw9ZSYmZTxvKXJldHVybiAwO2lmKHI8PXQmJmk8PWUmJmU8bylyZXR1cm4gdC1yO2lmKHQ8biYmbzw9ZSlyZXR1cm4gall0KHQsZSxuLG8pO2lmKG48PXQmJnQ8ciYmbzw9ZSlyZXR1cm4gZS1vO2lmKHI8PXQmJm88PWUpcmV0dXJuIGpZdCh0LGUscixvKTt0aHJvdyJQb2ludCAoeCx5KSBtdXN0IGJlIGluIG9uZSBvZiB0aGUgcmVnaW9ucyBkZWZpbmVkIGFib3ZlLiJ9ZnVuY3Rpb24gV1l0KHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/InRyYW5zbGF0ZSgiK3QrIikiOiJ0cmFuc2xhdGUoIit0KyIsIitlKyIpIn1mdW5jdGlvbiBxWXQodCxlLG4pe2NvbnN0IGk9dC5nZXQoZSx0KTtBcnJheS5pc0FycmF5KGkpP3Quc3BsaWNlLmFwcGx5KHQsW2UsMCxpLmxlbmd0aF0uY29uY2F0KG4pKTp0LnNldChlLG4pfWZ1bmN0aW9uIFlZdCh0KXtsZXQgZT0wO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7KytuKWU9MzEqZSt0LmNoYXJDb2RlQXQobikmNDI5NDk2NzI5NTtyZXR1cm4gZStNYXRoLnBvdygyLDMxKX1iWXQudGVtcGxhdGU9X2VgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBzbG90PSJzaWRlYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtb3B0aW9uLXNlbGVjdG9yCiAgICAgICAgICAgICAgaWQ9Imhpc3RvZ3JhbU1vZGVTZWxlY3RvciIKICAgICAgICAgICAgICBuYW1lPSJIaXN0b2dyYW0gbW9kZSIKICAgICAgICAgICAgICBzZWxlY3RlZC1pZD0ie3tfaGlzdG9ncmFtTW9kZX19IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0ib3ZlcmxheSI+b3ZlcmxheTwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9Im9mZnNldCI+b2Zmc2V0PC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvdGYtb3B0aW9uLXNlbGVjdG9yPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtb3B0aW9uLXNlbGVjdG9yCiAgICAgICAgICAgICAgaWQ9InRpbWVQcm9wZXJ0eVNlbGVjdG9yIgogICAgICAgICAgICAgIG5hbWU9Ik9mZnNldCB0aW1lIGF4aXMiCiAgICAgICAgICAgICAgc2VsZWN0ZWQtaWQ9Int7X3RpbWVQcm9wZXJ0eX19IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0ic3RlcCI+c3RlcDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InJlbGF0aXZlIj5yZWxhdGl2ZTwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9IndhbGxfdGltZSI+d2FsbDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L3RmLW9wdGlvbi1zZWxlY3Rvcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBoaXN0b2dyYW0gZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIFlvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgaGlzdG9ncmFtIGRhdGEgdG8geW91ciBldmVudCBmaWxlcy4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UZW5zb3JCb2FyZCBjYW7igJl0IGZpbmQgeW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8KICAgICAgICAgICAgICBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICAgID4uCiAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8dGYtdGFnLWZpbHRlcmVyIHRhZy1maWx0ZXI9Int7X3RhZ0ZpbHRlcn19Ij48L3RmLXRhZy1maWx0ZXJlcj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgY2F0ZWdvcnk9IltbY2F0ZWdvcnldXSIKICAgICAgICAgICAgICBpbml0aWFsLW9wZW5lZD0iW1tfc2hvdWxkT3BlbihpbmRleCldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1oaXN0b2dyYW0tbG9hZGVyCiAgICAgICAgICAgICAgICAgIHJ1bj0iW1tpdGVtLnJ1bl1dIgogICAgICAgICAgICAgICAgICB0YWc9IltbaXRlbS50YWddXSIKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICB0YWctbWV0YWRhdGE9IltbX3RhZ01ldGFkYXRhKF9ydW5Ub1RhZ0luZm8sIGl0ZW0ucnVuLCBpdGVtLnRhZyldXSIKICAgICAgICAgICAgICAgICAgdGltZS1wcm9wZXJ0eT0iW1tfdGltZVByb3BlcnR5XV0iCiAgICAgICAgICAgICAgICAgIGhpc3RvZ3JhbS1tb2RlPSJbW19oaXN0b2dyYW1Nb2RlXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgID48L3RmLWhpc3RvZ3JhbS1sb2FkZXI+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgLm5vLWRhdGEtd2FybmluZyB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGJZdC5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sYll0LnByb3RvdHlwZSwiX2hpc3RvZ3JhbU1vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sYll0LnByb3RvdHlwZSwiX3RpbWVQcm9wZXJ0eSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sYll0LnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxiWXQucHJvdG90eXBlLCJfcnVuVG9UYWciLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sYll0LnByb3RvdHlwZSwiX3J1blRvVGFnSW5mbyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGJZdC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sYll0LnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGJZdC5wcm90b3R5cGUsIl9yZXN0YW1wIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sYll0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLGJZdC5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtzKCJfcnVuVG9UYWciLCJfc2VsZWN0ZWRSdW5zIiwiX3RhZ0ZpbHRlciIsIl9jYXRlZ29yaWVzRG9tUmVhZHkiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGJZdC5wcm90b3R5cGUsIl9jYXRlZ29yaWVzIixudWxsKSxiWXQ9dChbaSgidGYtaGlzdG9ncmFtLWRhc2hib2FyZCIpXSxiWXQpO3ZhciBYWXQ9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsaHBhcmFtTmFtZTp4WXQsbWV0cmljTmFtZTp3WXQsc2NoZW1hQ29sdW1uTmFtZTpTWXQsbnVtSFBhcmFtczpNWXQsbnVtTWV0cmljczpFWXQsbnVtQ29sdW1uczpUWXQsaHBhcmFtVmFsdWVCeU5hbWU6Q1l0LG1ldHJpY1ZhbHVlQnlOYW1lOkFZdCxocGFyYW1WYWx1ZUJ5SW5kZXg6a1l0LG1ldHJpY1ZhbHVlQnlJbmRleDpMWXQsY29sdW1uVmFsdWVCeUluZGV4OlBZdCxudW1lcmljQ29sdW1uRXh0ZW50Ok5ZdCxnZXRBYnNvbHV0ZUNvbHVtbkluZGV4OklZdCxzY2hlbWFWaXNpYmxlQ29sdW1uTmFtZTpmdW5jdGlvbiAkWXQodCxlKXtyZXR1cm4gZTx0LmhwYXJhbUluZm9zLmxlbmd0aD94WXQodC5ocGFyYW1JbmZvc1tlXSk6d1l0KHQubWV0cmljSW5mb3NbZS10LmhwYXJhbUluZm9zLmxlbmd0aF0pfSxudW1WaXNpYmxlSFBhcmFtczpSWXQsbnVtVmlzaWJsZU1ldHJpY3M6T1l0LG51bVZpc2libGVDb2x1bW5zOmZ1bmN0aW9uIEtZdCh0KXtyZXR1cm4gUll0KHQpK09ZdCh0KX0sdmlzaWJsZU51bWVyaWNDb2x1bW5FeHRlbnQ6ell0LHByZXR0eVByaW50SFBhcmFtVmFsdWVCeU5hbWU6ZnVuY3Rpb24gWll0KHQsZSl7cmV0dXJuIFZZdChDWXQodCxlKSl9LHByZXR0eVByaW50TWV0cmljVmFsdWVCeU5hbWU6ZnVuY3Rpb24gSll0KHQsZSl7cmV0dXJuIFZZdChBWXQodCxlKSl9LHNlc3Npb25Hcm91cFdpdGhOYW1lOkRZdCxocGFyYW1WYWx1ZUJ5VmlzaWJsZUluZGV4OkJZdCxtZXRyaWNWYWx1ZUJ5VmlzaWJsZUluZGV4OkhZdCxjb2x1bW5WYWx1ZUJ5VmlzaWJsZUluZGV4OkZZdCxwcmV0dHlQcmludDpWWXQsbDJOb3JtU3F1YXJlZDpVWXQsZXVjbGlkZWFuRGlzdDpqWXQscG9pbnRUb1JlY3RhbmdsZURpc3Q6R1l0LHRyYW5zbGF0ZVN0cjpXWXQscm90YXRlU3RyOmZ1bmN0aW9uIFFZdCh0LGUsbil7bGV0IGk9InJvdGF0ZSgiK3Q7cmV0dXJuIHZvaWQgMCE9PWUmJnZvaWQgMCE9PW4mJihpPWkrIiwiK2UrIiwiK24pLGkrPSIpIixpfSxpc051bGxPclVuZGVmaW5lZDpmdW5jdGlvbiB0WHQodCl7cmV0dXJuIG51bGw9PXR9LHF1YWRUcmVlVmlzaXRQb2ludHNJblJlY3Q6ZnVuY3Rpb24gZVh0KHQsZSxuLGkscixvKXt0LnZpc2l0KCgoYSxzLGwsYyx1KT0+e2lmKHZvaWQgMD09PWEubGVuZ3RoKXtkb3tjb25zdCBzPXQueCgpKGEuZGF0YSksbD10LnkoKShhLmRhdGEpO2U8PXMmJnM8aSYmbjw9bCYmbDxyJiZvKGEuZGF0YSl9d2hpbGUoYT1hLm5leHQpO3JldHVybiEwfXJldHVybiBzPj1pfHxjPD1lfHxsPj1yfHx1PD1ufSkpfSxxdWFkVHJlZVZpc2l0UG9pbnRzSW5EaXNrOmZ1bmN0aW9uIG5YdCh0LGUsbixpLHIpe3QudmlzaXQoKChvLGEscyxsLGMpPT57aWYodm9pZCAwPT09by5sZW5ndGgpe2Rve2NvbnN0IGE9dC54KCkoby5kYXRhKSxzPXQueSgpKG8uZGF0YSksbD1qWXQoZSxuLGEscyk7bDw9aSYmcihvLmRhdGEsbCl9d2hpbGUobz1vLm5leHQpO3JldHVybiEwfXJldHVybiBHWXQoZSxuLGEscyxsLGMpPml9KSl9LGZpbHRlclNldDpmdW5jdGlvbiBpWHQodCxlKXtjb25zdCBuPW5ldyBTZXQ7cmV0dXJuIHQuZm9yRWFjaCgodD0+e2UodCkmJm4uYWRkKHQpfSkpLG59LHNldEFycmF5T2JzZXJ2YWJseTpxWXQsaGFzaE9mU3RyaW5nOllZdH0pO2xldCByWHQ9Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5vcmllbnRhdGlvbj0iaG9yaXpvbnRhbCJ9fTtyWHQudGVtcGxhdGU9X2VgCiAgICA8c2xvdCBuYW1lPSJjb250ZW50Ij48L3Nsb3Q+CgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIDpob3N0IHNsb3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICA6aG9zdCA6OnNsb3R0ZWQoKikgewogICAgICAgIGZsZXg6IDAgMCBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbb3JpZW50YXRpb249J2hvcml6b250YWwnXSkgc2xvdCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pIHNsb3QgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QgOjpzbG90dGVkKCo6bm90KDpsYXN0LWNoaWxkKSkgewogICAgICAgIGJvcmRlcjogMCBzb2xpZCB2YXIoLS1kaXZpZGVyLWNvbG9yLCAjY2NjKTsKICAgICAgfQoKICAgICAgOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddKSA6OnNsb3R0ZWQoKjpub3QoOmxhc3QtY2hpbGQpKSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogNXB4OwogICAgICB9CgogICAgICA6aG9zdChbb3JpZW50YXRpb249J2hvcml6b250YWwnXSkgOjpzbG90dGVkKCo6bm90KDpsYXN0LWNoaWxkKSkgewogICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogNXB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmcscmVmbGVjdFRvQXR0cmlidXRlOiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHJYdC5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix2b2lkIDApLHJYdD10KFtpKCJocGFyYW1zLXNwbGl0LWxheW91dCIpXSxyWHQpO2xldCBvWHQ9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvbmZpZ3VyYXRpb249e3NjaGVtYTp7aHBhcmFtQ29sdW1uczpbXSxtZXRyaWNDb2x1bW5zOltdfSxjb2x1bW5zVmlzaWJpbGl0eTpbXSx2aXNpYmxlU2NoZW1hOntocGFyYW1JbmZvczpbXSxtZXRyaWNJbmZvczpbXX19LHRoaXMuc2Vzc2lvbkdyb3Vwcz1bXSx0aGlzLmRhdGFMb2FkZWRXaXRoTm9uRW1wdHlIcGFyYW1zPSExLHRoaXMuZGF0YUxvYWRlZFdpdGhFbXB0eUhwYXJhbXM9ITEsdGhpcy5fc3RhdHVzZXM9W3t2YWx1ZToiU1RBVFVTX1VOS05PV04iLGRpc3BsYXlOYW1lOiJVbmtub3duIixhbGxvd2VkOiEwfSx7dmFsdWU6IlNUQVRVU19TVUNDRVNTIixkaXNwbGF5TmFtZToiU3VjY2VzcyIsYWxsb3dlZDohMH0se3ZhbHVlOiJTVEFUVVNfRkFJTFVSRSIsZGlzcGxheU5hbWU6IkZhaWx1cmUiLGFsbG93ZWQ6ITB9LHt2YWx1ZToiU1RBVFVTX1JVTk5JTkciLGRpc3BsYXlOYW1lOiJSdW5uaW5nIixhbGxvd2VkOiEwfV0sdGhpcy5fZ2V0RXhwZXJpbWVudFJlc29sdmVkPW5ldyBQcm9taXNlKCh0PT57dGhpcy5fcmVzb2x2ZUdldEV4cGVyaW1lbnQ9dH0pKSx0aGlzLl9saXN0U2Vzc2lvbkdyb3Vwc0NhbmNlbGxlcj1uZXcgWFIsdGhpcy5fcGFnZVNpemVJbnB1dD17dmFsdWU6IjEwMCIsaW52YWxpZDohMX0sdGhpcy5fcGFnZU51bWJlcklucHV0PXt2YWx1ZToiMSIsaW52YWxpZDohMX0sdGhpcy5fcGFnZUNvdW50U3RyPSI/Iix0aGlzLl9ocGFyYW1OYW1lPXhZdCx0aGlzLl9tZXRyaWNOYW1lPXdZdCx0aGlzLl9wcmV0dHlQcmludD1WWXR9cmVsb2FkKCl7dGhpcy5fcXVlcnlTZXJ2ZXIoKX1fY3N2VXJsKHQsZSl7cmV0dXJuIHRoaXMuX2Rvd25sb2FkRGF0YVVybCh0LGUsImNzdiIpfV9qc29uVXJsKHQsZSl7cmV0dXJuIHRoaXMuX2Rvd25sb2FkRGF0YVVybCh0LGUsImpzb24iKX1fbGF0ZXhVcmwodCxlKXtyZXR1cm4gdGhpcy5fZG93bmxvYWREYXRhVXJsKHQsZSwibGF0ZXgiKX1fZG93bmxvYWREYXRhVXJsKHQsZSxuKXtyZXR1cm4gdGhpcy5iYWNrZW5kLmdldERvd25sb2FkVXJsKG4sdCxlLmNvbHVtbnNWaXNpYmlsaXR5KX1fY29tcHV0ZUV4cGVyaW1lbnRBbmRSZWxhdGVkUHJvcHMoKXtjb25zdCB0PVhZdDt0LmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuYmFja2VuZCl8fHQuaXNOdWxsT3JVbmRlZmluZWQodGhpcy5leHBlcmltZW50TmFtZSl8fHRoaXMuYmFja2VuZC5nZXRFeHBlcmltZW50KHtleHBlcmltZW50TmFtZTp0aGlzLmV4cGVyaW1lbnROYW1lfSkudGhlbigodD0+e1NlLmV4cG9ydHMuaXNFcXVhbCh0LHRoaXMuX2V4cGVyaW1lbnQpfHwodGhpcy5zZXQoIl9leHBlcmltZW50Iix0KSx0aGlzLl9jb21wdXRlSFBhcmFtcygpLHRoaXMuX2NvbXB1dGVNZXRyaWNzKCksdGhpcy5fcXVlcnlTZXJ2ZXIoKSx0aGlzLl9yZXNvbHZlR2V0RXhwZXJpbWVudCgpKX0pKS5maW5hbGx5KCgoKT0+e3RoaXMuX2NvbXB1dGVEYXRhRm91bmQoKX0pKX1fY29tcHV0ZURhdGFGb3VuZCgpe2NvbnN0IHQ9Qm9vbGVhbih0aGlzLl9leHBlcmltZW50JiZ0aGlzLl9leHBlcmltZW50LmhwYXJhbUluZm9zJiZ0aGlzLl9leHBlcmltZW50LmhwYXJhbUluZm9zLmxlbmd0aD4wJiZ0aGlzLl9leHBlcmltZW50Lm1ldHJpY0luZm9zJiZ0aGlzLl9leHBlcmltZW50Lm1ldHJpY0luZm9zLmxlbmd0aD4wKTt0aGlzLnNldCgiZGF0YUxvYWRlZFdpdGhOb25FbXB0eUhwYXJhbXMiLHQpLHRoaXMuc2V0KCJkYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtcyIsIXQpfV9jb21wdXRlSFBhcmFtcygpe2NvbnN0IHQ9W107dGhpcy5fZXhwZXJpbWVudC5ocGFyYW1JbmZvcy5mb3JFYWNoKCgoZSxuKT0+e2NvbnN0IGk9e2luZm86ZSxkaXNwbGF5ZWQ6bjw1LGZpbHRlcjp7fX07aS5pbmZvLmhhc093blByb3BlcnR5KCJkb21haW5EaXNjcmV0ZSIpPyhpLmZpbHRlci5kb21haW5EaXNjcmV0ZT1bXSxpLmluZm8uZG9tYWluRGlzY3JldGUuZm9yRWFjaCgodD0+e2kuZmlsdGVyLmRvbWFpbkRpc2NyZXRlLnB1c2goe3ZhbHVlOnQsY2hlY2tlZDohMH0pfSkpKToiREFUQV9UWVBFX0JPT0wiPT09aS5pbmZvLnR5cGU/aS5maWx0ZXIuZG9tYWluRGlzY3JldGU9W3t2YWx1ZTohMSxjaGVja2VkOiEwfSx7dmFsdWU6ITAsY2hlY2tlZDohMH1dOiJEQVRBX1RZUEVfRkxPQVQ2NCI9PT1pLmluZm8udHlwZT9pLmZpbHRlci5pbnRlcnZhbD17bWluOnt2YWx1ZToiIixpbnZhbGlkOiExfSxtYXg6e3ZhbHVlOiIiLGludmFsaWQ6ITF9fToiREFUQV9UWVBFX1NUUklORyI9PT1pLmluZm8udHlwZT9pLmZpbHRlci5yZWdleHA9IiI6Y29uc29sZS53YXJuKCJ1bmtub3duIGhwYXJhbS5pbmZvLnR5cGU6ICVzIixpLmluZm8udHlwZSksdC5wdXNoKGkpfSkpLHRoaXMuc2V0KCJfaHBhcmFtcyIsdCl9X2NvbXB1dGVNZXRyaWNzKCl7Y29uc3QgdD1bXTt0aGlzLl9leHBlcmltZW50Lm1ldHJpY0luZm9zLmZvckVhY2goKChlLG4pPT57dC5wdXNoKHtpbmZvOmUsZmlsdGVyOntpbnRlcnZhbDp7bWluOnt2YWx1ZToiIixpbnZhbGlkOiExfSxtYXg6e3ZhbHVlOiIiLGludmFsaWQ6ITF9fX0sZGlzcGxheWVkOm48NX0pfSkpLHRoaXMuc2V0KCJfbWV0cmljcyIsdCl9X2NvbXB1dGVTY2hlbWEoKXtyZXR1cm4gdGhpcy5faHBhcmFtcyYmdGhpcy5fbWV0cmljcz97aHBhcmFtQ29sdW1uczp0aGlzLl9ocGFyYW1zLm1hcCgodD0+KHtocGFyYW1JbmZvOnQuaW5mb30pKSksbWV0cmljQ29sdW1uczp0aGlzLl9tZXRyaWNzLm1hcCgodD0+KHttZXRyaWNJbmZvOnQuaW5mb30pKSl9OntocGFyYW1Db2x1bW5zOltdLG1ldHJpY0NvbHVtbnM6W119fV91cGRhdGVDb25maWd1cmF0aW9uKCl7dGhpcy5kZWJvdW5jZSgiX3VwZGF0ZUNvbmZpZ3VyYXRpb24iLCgoKT0+e3RoaXMuY29uZmlndXJhdGlvbj17c2NoZW1hOnRoaXMuX2NvbXB1dGVTY2hlbWEoKSxjb2x1bW5zVmlzaWJpbGl0eTp0aGlzLl9jb21wdXRlQ29sdW1uc1Zpc2liaWxpdHkoKSx2aXNpYmxlU2NoZW1hOnRoaXMuX2NvbXB1dGVWaXNpYmxlU2NoZW1hKCl9fSkpfV9jb21wdXRlQ29sdW1uc1Zpc2liaWxpdHkoKXtyZXR1cm4gdGhpcy5faHBhcmFtcyYmdGhpcy5fbWV0cmljcz90aGlzLl9ocGFyYW1zLm1hcCgodD0+dC5kaXNwbGF5ZWQpKS5jb25jYXQodGhpcy5fbWV0cmljcy5tYXAoKHQ9PnQuZGlzcGxheWVkKSkpOltdfV9jb21wdXRlVmlzaWJsZVNjaGVtYSgpe3JldHVybiB0aGlzLl9ocGFyYW1zJiZ0aGlzLl9tZXRyaWNzP3tocGFyYW1JbmZvczp0aGlzLl9ocGFyYW1zLmZpbHRlcigodD0+dC5kaXNwbGF5ZWQpKS5tYXAoKHQ9PnQuaW5mbykpLG1ldHJpY0luZm9zOnRoaXMuX21ldHJpY3MuZmlsdGVyKCh0PT50LmRpc3BsYXllZCkpLm1hcCgodD0+dC5pbmZvKSl9OntocGFyYW1JbmZvczpbXSxtZXRyaWNJbmZvczpbXX19X3F1ZXJ5U2VydmVyKCl7dGhpcy5kZWJvdW5jZSgicXVlcnlTZXJ2ZXIiLCgoKT0+dGhpcy5fcXVlcnlTZXJ2ZXJOb0RlYm91bmNlKCkpLDEwMCl9X3F1ZXJ5U2VydmVyTm9EZWJvdW5jZSgpe2lmKHRoaXMuX2hwYXJhbXMmJnRoaXMuX21ldHJpY3MpcmV0dXJuIHRoaXMuX3NlbmRMaXN0U2Vzc2lvbkdyb3Vwc1JlcXVlc3QoKS50aGVuKHRoaXMuX2xpc3RTZXNzaW9uR3JvdXBzQ2FuY2VsbGVyLmNhbmNlbGxhYmxlKCgoe3ZhbHVlOnQsY2FuY2VsbGVkOmV9KT0+e2V8fCh0LnRvdGFsU2l6ZT49MD8odGhpcy5zZXQoIl9wYWdlQ291bnRTdHIiLFN0cmluZyhNYXRoLmNlaWwodC50b3RhbFNpemUvK3RoaXMuX3BhZ2VTaXplSW5wdXQudmFsdWUpKSksdGhpcy5zZXQoIl90b3RhbFNlc3Npb25Hcm91cHNDb3VudFN0ciIsdC50b3RhbFNpemUpKToodGhpcy5zZXQoIl9wYWdlQ291bnRTdHIiLCI/IiksdGhpcy5zZXQoIl90b3RhbFNlc3Npb25Hcm91cHNDb3VudFN0ciIsIlVua25vd24iKSkscVl0KHRoaXMsInNlc3Npb25Hcm91cHMiLHQuc2Vzc2lvbkdyb3VwcykpfSkpKX1fc2VuZExpc3RTZXNzaW9uR3JvdXBzUmVxdWVzdCgpe2NvbnN0IHQ9dGhpcy5fYnVpbGRMaXN0U2Vzc2lvbkdyb3Vwc1JlcXVlc3QoKTtpZihudWxsIT09dClyZXR1cm4gdGhpcy5zZXQoIl9zZXNzaW9uR3JvdXBzUmVxdWVzdCIsdCksdGhpcy5fbGlzdFNlc3Npb25Hcm91cHNDYW5jZWxsZXIuY2FuY2VsQWxsKCksdGhpcy5iYWNrZW5kLmxpc3RTZXNzaW9uR3JvdXBzKHQpfV9idWlsZExpc3RTZXNzaW9uR3JvdXBzUmVxdWVzdCgpe2NvbnN0IHQ9dGhpcztsZXQgZT0hMDtmdW5jdGlvbiBuKG4pe2NvbnN0IGk9dC5nZXQobisiLm1pbi52YWx1ZSIpO2NvbnNvbGUuYXNzZXJ0KHZvaWQgMCE9PWkpO2NvbnN0IHI9IiI9PT1pPyItSW5maW5pdHkiOitpO3Quc2V0KG4rIi5taW4uaW52YWxpZCIsaXNOYU4ocikpLGU9ZSYmIWlzTmFOKHIpO2NvbnN0IG89dC5nZXQobisiLm1heC52YWx1ZSIpO2NvbnNvbGUuYXNzZXJ0KHZvaWQgMCE9PW8pO2NvbnN0IGE9IiI9PT1vPyJJbmZpbml0eSI6K287cmV0dXJuIHQuc2V0KG4rIi5tYXguaW52YWxpZCIsaXNOYU4oYSkpLGU9ZSYmIWlzTmFOKGEpLGlzTmFOKHIpfHxpc05hTihhKT9udWxsOnttaW5WYWx1ZTpyLG1heFZhbHVlOmF9fWZ1bmN0aW9uIGkobil7Y29uc3QgaT10LmdldChuKyIudmFsdWUiKTtjb25zb2xlLmFzc2VydCh2b2lkIDAhPT1pKTtjb25zdCByPStpLG89TnVtYmVyLmlzSW50ZWdlcihyKSYmcj4wO3JldHVybiB0LnNldChuKyIuaW52YWxpZCIsIW8pLGU9ZSYmbyxvP3I6bnVsbH1jb25zdCByPXRoaXMuX3N0YXR1c2VzLmZpbHRlcigodD0+dC5hbGxvd2VkKSkubWFwKCh0PT50LnZhbHVlKSk7bGV0IG89W107aWYodGhpcy5faHBhcmFtcy5mb3JFYWNoKCgodCxlKT0+e2xldCBpPXtocGFyYW06dC5pbmZvLm5hbWV9O2lmKHQuZmlsdGVyLmRvbWFpbkRpc2NyZXRlKWkuZmlsdGVyRGlzY3JldGU9W10sdC5maWx0ZXIuZG9tYWluRGlzY3JldGUuZm9yRWFjaCgodD0+e3QuY2hlY2tlZCYmaS5maWx0ZXJEaXNjcmV0ZS5wdXNoKHQudmFsdWUpfSkpO2Vsc2UgaWYodC5maWx0ZXIuaW50ZXJ2YWwpaS5maWx0ZXJJbnRlcnZhbD1uKCJfaHBhcmFtcy4iK2UrIi5maWx0ZXIuaW50ZXJ2YWwiKTtlbHNle2lmKCF0LmZpbHRlci5yZWdleHApcmV0dXJuIGNvbnNvbGUuZXJyb3IoImhwYXJhbS5maWx0ZXIgd2l0aCBubyBkb21haW5EaXNjcmV0ZSwgaW50ZXJ2YWwgb3IgcmVnZXhwIHByb3BlcnRpZXMgc2V0OiAlcyIsdCksbnVsbDtpLmZpbHRlclJlZ2V4cD10LmZpbHRlci5yZWdleHB9by5wdXNoKGkpfSkpLHRoaXMuX21ldHJpY3MuZm9yRWFjaCgoKHQsZSk9PntsZXQgaT17bWV0cmljOnQuaW5mby5uYW1lLGZpbHRlckludGVydmFsOm4oIl9tZXRyaWNzLiIrZSsiLmZpbHRlci5pbnRlcnZhbCIpfTtvLnB1c2goaSl9KSksdm9pZCAwIT09dGhpcy5fc29ydEJ5SW5kZXgmJnZvaWQgMCE9PXRoaXMuX3NvcnREaXJlY3Rpb24pe2lmKCEodGhpcy5fc29ydEJ5SW5kZXggaW4gbykpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIk5vIGNvbHVtbiBpbiBjb2xQYXJhbXMgd2l0aCBpbmRleCBzb3J0QnlJbmRleDogJXMiLHRoaXMuX3NvcnRCeUluZGV4KSxudWxsO29bdGhpcy5fc29ydEJ5SW5kZXhdLm9yZGVyPTA9PT10aGlzLl9zb3J0RGlyZWN0aW9uPyJPUkRFUl9BU0MiOiJPUkRFUl9ERVNDIn1jb25zdCBhPWkoIl9wYWdlTnVtYmVySW5wdXQiKSxzPWkoIl9wYWdlU2l6ZUlucHV0Iik7cmV0dXJuIGU/e2V4cGVyaW1lbnROYW1lOnRoaXMuZXhwZXJpbWVudE5hbWUsYWxsb3dlZFN0YXR1c2VzOnIsY29sUGFyYW1zOm8sc3RhcnRJbmRleDpzKihhLTEpLHNsaWNlU2l6ZTpzfTpudWxsfV9tZXRyaWNTb3J0QnlJbmRleCh0KXtyZXR1cm4gdCt0aGlzLl9ocGFyYW1zLmxlbmd0aH19O29YdC50ZW1wbGF0ZT1fZWAKICAgIDxocGFyYW1zLXNwbGl0LWxheW91dCBvcmllbnRhdGlvbj0idmVydGljYWwiPgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIGNsYXNzPSJzZWN0aW9uIGh5cGVycGFyYW1ldGVycyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SHlwZXJwYXJhbWV0ZXJzPC9kaXY+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0ie3tfaHBhcmFtc319IiBhcz0iaHBhcmFtIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhwYXJhbSI+CiAgICAgICAgICAgIDxwYXBlci1jaGVja2JveAogICAgICAgICAgICAgIGNoZWNrZWQ9Int7aHBhcmFtLmRpc3BsYXllZH19IgogICAgICAgICAgICAgIGNsYXNzPSJocGFyYW0tY2hlY2tib3giCiAgICAgICAgICAgID4KICAgICAgICAgICAgICBbW19ocGFyYW1OYW1lKGhwYXJhbS5pbmZvKV1dCiAgICAgICAgICAgIDwvcGFwZXItY2hlY2tib3g+CiAgICAgICAgICAgIDwhLS0gUHJlY2lzZWx5IG9uZSBvZiB0aGUgdGVtcGxhdGVzIGJlbG93IHdpbGwgYmUgc3RhbXBlZC4tLT4KICAgICAgICAgICAgPCEtLSAxLiBBIGxpc3Qgb2YgY2hlY2tib3hlcyAtLT4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2hwYXJhbS5maWx0ZXIuZG9tYWluRGlzY3JldGVdXSI+CiAgICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICAgICAgICAgIGl0ZW1zPSJbW2hwYXJhbS5maWx0ZXIuZG9tYWluRGlzY3JldGVdXSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICAgICAgY2hlY2tlZD0ie3tpdGVtLmNoZWNrZWR9fSIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImRpc2NyZXRlLXZhbHVlLWNoZWNrYm94IgogICAgICAgICAgICAgICAgICBvbi1jaGFuZ2U9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgW1tfcHJldHR5UHJpbnQoaXRlbS52YWx1ZSldXQogICAgICAgICAgICAgICAgPC9wYXBlci1jaGVja2JveD4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8IS0tIDIuIEEgbnVtZXJpYyBpbnRlcnZhbCAtLT4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2hwYXJhbS5maWx0ZXIuaW50ZXJ2YWxdXSI+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWluIgogICAgICAgICAgICAgICAgdmFsdWU9Int7aHBhcmFtLmZpbHRlci5pbnRlcnZhbC5taW4udmFsdWV9fSIKICAgICAgICAgICAgICAgIGFsbG93ZWRfcGF0dGVybj0iWzAtOS5lXFwtXSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJbW2hwYXJhbS5maWx0ZXIuaW50ZXJ2YWwubWluLmludmFsaWRdXSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSItaW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWF4IgogICAgICAgICAgICAgICAgdmFsdWU9Int7aHBhcmFtLmZpbHRlci5pbnRlcnZhbC5tYXgudmFsdWV9fSIKICAgICAgICAgICAgICAgIGFsbG93ZWRfcGF0dGVybj0iWzAtOS5lXFwtXSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJbW2hwYXJhbS5maWx0ZXIuaW50ZXJ2YWwubWF4LmludmFsaWRdXSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIraW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwhLS0gMy4gQSByZWdleHAgLS0+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tocGFyYW0uZmlsdGVyLnJlZ2V4cF1dIj4KICAgICAgICAgICAgICA8cGFwZXItaW5wdXQKICAgICAgICAgICAgICAgIGxhYmVsPSJSZWd1bGFyIGV4cHJlc3Npb24iCiAgICAgICAgICAgICAgICB2YWx1ZT0ie3tocGFyYW0uZmlsdGVyLnJlZ2V4cH19IgogICAgICAgICAgICAgICAgb24tdmFsdWUtY2hhbmdlZD0iX3F1ZXJ5U2VydmVyIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8L3BhcGVyLWlucHV0PgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgY2xhc3M9InNlY3Rpb24gbWV0cmljcyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWV0cmljczwvZGl2PgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9Int7X21ldHJpY3N9fSIgYXM9Im1ldHJpYyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPgogICAgICAgICAgICA8IS0tIFRPRE8oZXJleik6IE1ha2UgaXQgZWFzaWVyIHRvIGhhbmRsZSBhIGxhcmdlIG51bWJlciBvZgogICAgICAgICAgICAgICAgICBtZXRyaWNzOgogICAgICAgICAgICAgICAgICAxLiBBZGQgYW4gJ2lzb2xhdG9yJyByYWRpby1idXR0b24gdG8gc2VsZWN0IGp1c3Qgb25lCiAgICAgICAgICAgICAgICAgIG1ldHJpYyBhbmQKICAgICAgICAgICAgICAgICAgaGlkZSBhbGwgdGhlIHJlc3QKICAgICAgICAgICAgICAgICAgMi4gQWRkIGEgJ3RvZ2dsZS1hbGwnIGJ1dHRvbiB0aGF0IHdpbGwgaGlkZS91bmhpZGUKICAgICAgICAgICAgICAgICAgICBhbGwgdGhlCiAgICAgICAgICAgICAgICAgIG1ldHJpY3MuCiAgICAgICAgICAgICAgICAgIFVzZSBzaW1pbGFyIGxvZ2ljL2FwcGVhcmFuY2UgdG8gdGhlIHJ1bi1zZWxlY3RvciBvZgogICAgICAgICAgICAgICAgICBzY2FsYXJzLi0tPgogICAgICAgICAgICA8cGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICBjaGVja2VkPSJ7e21ldHJpYy5kaXNwbGF5ZWR9fSIKICAgICAgICAgICAgICBjbGFzcz0ibWV0cmljLWNoZWNrYm94IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgW1tfbWV0cmljTmFtZShtZXRyaWMuaW5mbyldXQogICAgICAgICAgICA8L3BhcGVyLWNoZWNrYm94PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCI+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWluIgogICAgICAgICAgICAgICAgdmFsdWU9Int7bWV0cmljLmZpbHRlci5pbnRlcnZhbC5taW4udmFsdWV9fSIKICAgICAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOS5lXFwtXSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJ7e21ldHJpYy5maWx0ZXIuaW50ZXJ2YWwubWluLmludmFsaWR9fSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSItaW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCI+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWF4IgogICAgICAgICAgICAgICAgYWxsb3dlZC1wYXR0ZXJuPSJbMC05LmVcXC1dIgogICAgICAgICAgICAgICAgdmFsdWU9Int7bWV0cmljLmZpbHRlci5pbnRlcnZhbC5tYXgudmFsdWV9fSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJ7e21ldHJpYy5maWx0ZXIuaW50ZXJ2YWwubWF4LmludmFsaWR9fSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIraW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgY2xhc3M9InNlY3Rpb24gc3RhdHVzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdGF0dXM8L2Rpdj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19zdGF0dXNlc11dIiBhcz0ic3RhdHVzIj4KICAgICAgICAgIDxwYXBlci1jaGVja2JveCBjaGVja2VkPSJ7e3N0YXR1cy5hbGxvd2VkfX0iIG9uLWNoYW5nZT0iX3F1ZXJ5U2VydmVyIj4KICAgICAgICAgICAgW1tzdGF0dXMuZGlzcGxheU5hbWVdXQogICAgICAgICAgPC9wYXBlci1jaGVja2JveD4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBjbGFzcz0ic2VjdGlvbiBzb3J0aW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Tb3J0aW5nPC9kaXY+CiAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgIGxhYmVsPSJTb3J0IGJ5IgogICAgICAgICAgb24tc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICBob3Jpem9udGFsLWFsaWduPSJsZWZ0IgogICAgICAgID4KICAgICAgICAgIDxwYXBlci1saXN0Ym94CiAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICBzZWxlY3RlZD0ie3tfc29ydEJ5SW5kZXh9fSIKICAgICAgICAgICAgb24tc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICA+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2hwYXJhbXNdXSIgYXM9ImhwYXJhbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+IFtbX2hwYXJhbU5hbWUoaHBhcmFtLmluZm8pXV0gPC9wYXBlci1pdGVtPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19tZXRyaWNzXV0iIGFzPSJtZXRyaWMiPgogICAgICAgICAgICAgIDxwYXBlci1pdGVtPiBbW19tZXRyaWNOYW1lKG1ldHJpYy5pbmZvKV1dIDwvcGFwZXItaXRlbT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgIGxhYmVsPSJEaXJlY3Rpb24iCiAgICAgICAgICBvbi1zZWxlY3RlZC1pdGVtLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgIGhvcml6b250YWwtYWxpZ249ImxlZnQiCiAgICAgICAgPgogICAgICAgICAgPHBhcGVyLWxpc3Rib3gKICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgIHNlbGVjdGVkPSJ7e19zb3J0RGlyZWN0aW9ufX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxwYXBlci1pdGVtPkFzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgICAgPHBhcGVyLWl0ZW0+RGVzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIGNsYXNzPSJzZWN0aW9uIHBhZ2luZyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UGFnaW5nPC9kaXY+CiAgICAgICAgPGRpdj4KICAgICAgICAgIE51bWJlciBvZiBtYXRjaGluZyBzZXNzaW9uIGdyb3VwczogW1tfdG90YWxTZXNzaW9uR3JvdXBzQ291bnRTdHJdXQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImlubGluZS1lbGVtZW50IHBhZ2UtbnVtYmVyLWlucHV0Ij4KICAgICAgICAgIDxwYXBlci1pbnB1dAogICAgICAgICAgICBsYWJlbD0iUGFnZSAjIgogICAgICAgICAgICB2YWx1ZT0ie3tfcGFnZU51bWJlcklucHV0LnZhbHVlfX0iCiAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOV0iCiAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgIGludmFsaWQ9IltbX3BhZ2VOdW1iZXJJbnB1dC5pbnZhbGlkXV0iCiAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBzbG90PSJzdWZmaXgiIGNsYXNzPSJwYWdlLXN1ZmZpeCI+LyBbW19wYWdlQ291bnRTdHJdXTwvZGl2PgogICAgICAgICAgPC9wYXBlci1pbnB1dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCBwYWdlLXNpemUtaW5wdXQiPgogICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgIGxhYmVsPSJNYXggIyBvZiBzZXNzaW9uIGdyb3VwcyBwZXIgcGFnZToiCiAgICAgICAgICAgIHZhbHVlPSJ7e19wYWdlU2l6ZUlucHV0LnZhbHVlfX0iCiAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOV0iCiAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgIGludmFsaWQ9IltbX3BhZ2VTaXplSW5wdXQuaW52YWxpZF1dIgogICAgICAgICAgICBvbi12YWx1ZS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWlucHV0PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBjbGFzcz0ic2VjdGlvbiBkb3dubG9hZCI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zZXNzaW9uR3JvdXBzUmVxdWVzdF1dIj4KICAgICAgICAgIERvd25sb2FkIGRhdGEgYXMKICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGlkPSJjc3ZMaW5rIgogICAgICAgICAgICAgIGRvd25sb2FkPSJocGFyYW1zX3RhYmxlLmNzdiIKICAgICAgICAgICAgICBocmVmPSJbW19jc3ZVcmwoX3Nlc3Npb25Hcm91cHNSZXF1ZXN0LCBjb25maWd1cmF0aW9uKV1dIgogICAgICAgICAgICAgID5DU1Y8L2EKICAgICAgICAgICAgPgogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGlkPSJqc29uTGluayIKICAgICAgICAgICAgICBkb3dubG9hZD0iaHBhcmFtc190YWJsZS5qc29uIgogICAgICAgICAgICAgIGhyZWY9IltbX2pzb25VcmwoX3Nlc3Npb25Hcm91cHNSZXF1ZXN0LCBjb25maWd1cmF0aW9uKV1dIgogICAgICAgICAgICAgID5KU09OPC9hCiAgICAgICAgICAgID4KICAgICAgICAgICAgPGEKICAgICAgICAgICAgICBpZD0ibGF0ZXhMaW5rIgogICAgICAgICAgICAgIGRvd25sb2FkPSJocGFyYW1zX3RhYmxlLnRleCIKICAgICAgICAgICAgICBocmVmPSJbW19sYXRleFVybChfc2Vzc2lvbkdyb3Vwc1JlcXVlc3QsIGNvbmZpZ3VyYXRpb24pXV0iCiAgICAgICAgICAgICAgPkxhVGVYPC9hCiAgICAgICAgICAgID4KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvaHBhcmFtcy1zcGxpdC1sYXlvdXQ+CiAgICA8c3R5bGU+CiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA3cHg7CiAgICAgIH0KICAgICAgLmRpc2NyZXRlLXZhbHVlLWNoZWNrYm94LAogICAgICAubWV0cmljLWNoZWNrYm94LAogICAgICAuaHBhcmFtLWNoZWNrYm94IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAuZGlzY3JldGUtdmFsdWUtY2hlY2tib3ggewogICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4OwogICAgICB9CiAgICAgIC5ocGFyYW0sCiAgICAgIC5tZXRyaWMgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5pbmxpbmUtZWxlbWVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHdpZHRoOiA0MCU7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICAgIH0KICAgICAgLnBhZ2UtbnVtYmVyLWlucHV0IHsKICAgICAgICB3aWR0aDogMjAlOwogICAgICB9CiAgICAgIC5wYWdlLXNpemUtaW5wdXQgewogICAgICAgIHdpZHRoOiA2MCU7CiAgICAgIH0KICAgICAgdmFhZGluLXNwbGl0LWxheW91dCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIHBhcGVyLWxpc3Rib3ggewogICAgICAgIG1heC1oZWlnaHQ6IDE1ZW07CiAgICAgIH0KICAgICAgLnBhZ2Utc3VmZml4IHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sb1h0LnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLG9YdC5wcm90b3R5cGUsImNvbmZpZ3VyYXRpb24iLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheSxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sb1h0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxvWHQucHJvdG90eXBlLCJkYXRhTG9hZGVkV2l0aE5vbkVtcHR5SHBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxvWHQucHJvdG90eXBlLCJkYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxvWHQucHJvdG90eXBlLCJfZXhwZXJpbWVudCIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sb1h0LnByb3RvdHlwZSwiX2hwYXJhbXMiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLG9YdC5wcm90b3R5cGUsIl9tZXRyaWNzIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sb1h0LnByb3RvdHlwZSwiX3N0YXR1c2VzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLG9YdC5wcm90b3R5cGUsIl9nZXRFeHBlcmltZW50UmVzb2x2ZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxvWHQucHJvdG90eXBlLCJfcmVzb2x2ZUdldEV4cGVyaW1lbnQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sb1h0LnByb3RvdHlwZSwiX2xpc3RTZXNzaW9uR3JvdXBzQ2FuY2VsbGVyIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLG9YdC5wcm90b3R5cGUsIl9zb3J0QnlJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxvWHQucHJvdG90eXBlLCJfc29ydERpcmVjdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxvWHQucHJvdG90eXBlLCJfcGFnZVNpemVJbnB1dCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxvWHQucHJvdG90eXBlLCJfcGFnZU51bWJlcklucHV0Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLG9YdC5wcm90b3R5cGUsIl9wYWdlQ291bnRTdHIiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sb1h0LnByb3RvdHlwZSwiX3RvdGFsU2Vzc2lvbkdyb3Vwc0NvdW50U3RyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLG9YdC5wcm90b3R5cGUsIl9zZXNzaW9uR3JvdXBzUmVxdWVzdCIsdm9pZCAwKSx0KFthKCJiYWNrZW5kIiwiZXhwZXJpbWVudE5hbWUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLG9YdC5wcm90b3R5cGUsIl9jb21wdXRlRXhwZXJpbWVudEFuZFJlbGF0ZWRQcm9wcyIsbnVsbCksdChbYSgiX2hwYXJhbXMuKiIsIl9tZXRyaWNzLioiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLG9YdC5wcm90b3R5cGUsIl91cGRhdGVDb25maWd1cmF0aW9uIixudWxsKSxvWHQ9dChbaSgidGYtaHBhcmFtcy1xdWVyeS1wYW5lIildLG9YdCk7bGV0IGFYdD1jbGFzcyBleHRlbmRzIHlle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm9wdGlvbnM9bnVsbH1fY29uZmlndXJhdGlvbkNoYW5nZWQoKXtjb25zdCB0PXRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLGU9dGhpcy5jb25maWd1cmF0aW9uLnNjaGVtYSxuPXtjb2x1bW5zOnQuaHBhcmFtSW5mb3MubWFwKCgobixpKT0+KHtuYW1lOnhZdChuKSxpbmRleDppLGFic29sdXRlSW5kZXg6SVl0KGUsdCxpKSxzY2FsZTp0aGlzLl9pc051bWVyaWNDb2x1bW4oaSk/IkxJTkVBUiI6Ik5PTl9OVU1FUklDIn0pKSkuY29uY2F0KHQubWV0cmljSW5mb3MubWFwKCgobixpKT0+e2NvbnN0IHI9aSt0LmhwYXJhbUluZm9zLmxlbmd0aDtyZXR1cm57c2NhbGU6IkxJTkVBUiIsbmFtZTp3WXQobiksaW5kZXg6cixhYnNvbHV0ZUluZGV4OklZdChlLHQscil9fSkpKSxtaW5Db2xvcjoiIzAwMDBGRiIsbWF4Q29sb3I6IiNGRjAwMDAiLGNvbmZpZ3VyYXRpb246dGhpcy5jb25maWd1cmF0aW9ufTt0aGlzLnNldCgib3B0aW9ucyIsbiksRGkoKSx0aGlzLnNldCgib3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXgiLHRoaXMuX2RlZmF1bHRDb2xvckJ5Q29sdW1uSW5kZXgoKSl9X3Vuc2VsZWN0RGlzYWJsZWRMb2dTY2FsZXMoKXtudWxsIT09dGhpcy5vcHRpb25zJiZ0aGlzLm9wdGlvbnMuY29sdW1ucy5mb3JFYWNoKCh0PT57Y29uc3QgZT0ib3B0aW9ucy5jb2x1bW5zLiIrdC5pbmRleDt0aGlzLl9hbGxvd0xvZ1NjYWxlKHQpfHwiTE9HIiE9PXQuc2NhbGV8fHRoaXMuc2V0KGUrIi5zY2FsZSIsIkxJTkVBUiIpfSkpfV9hbGxvd0xvZ1NjYWxlKHQpe2lmKCF0aGlzLl9pc051bWVyaWNDb2x1bW4odC5pbmRleCl8fCF0aGlzLnNlc3Npb25Hcm91cHMpcmV0dXJuITE7Y29uc3RbZSxuXT16WXQodGhpcy5jb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWEsdGhpcy5zZXNzaW9uR3JvdXBzLHQuaW5kZXgpO3JldHVybiBlPjB8fG48MH1faXNOdW1lcmljQ29sdW1uKHQpe3JldHVybiB0Pj10aGlzLmNvbmZpZ3VyYXRpb24udmlzaWJsZVNjaGVtYS5ocGFyYW1JbmZvcy5sZW5ndGh8fCJEQVRBX1RZUEVfRkxPQVQ2NCI9PT10aGlzLmNvbmZpZ3VyYXRpb24udmlzaWJsZVNjaGVtYS5ocGFyYW1JbmZvc1t0XS50eXBlfV9kZWZhdWx0Q29sb3JCeUNvbHVtbkluZGV4KCl7aWYodGhpcy5jb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWEubWV0cmljSW5mb3MubGVuZ3RoPjApcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLmhwYXJhbUluZm9zLmxlbmd0aDtjb25zdCB0PXRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLmhwYXJhbUluZm9zLmZpbmRJbmRleCgodD0+IkRBVEFfVFlQRV9GTE9BVDY0Ij09PXQudHlwZSkpO3JldHVybi0xIT09dD90OnZvaWQgMH19O2FYdC50ZW1wbGF0ZT1fZWAKICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtcGFuZWwiPgogICAgICA8IS0tICdDb2xvciBieScgZHJvcCBkb3duIG1lbnUgLS0+CiAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgbGFiZWw9IkNvbG9yIGJ5IgogICAgICAgIGlkPSJjb2xvckJ5RHJvcERvd25NZW51IgogICAgICAgIGhvcml6b250YWwtYWxpZ249ImxlZnQiCiAgICAgID4KICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgc2VsZWN0ZWQ9Int7b3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXh9fSIKICAgICAgICAgIGlkPSJjb2xvckJ5TGlzdEJveCIKICAgICAgICA+CiAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgIGl0ZW1zPSJbW29wdGlvbnMuY29sdW1uc11dIgogICAgICAgICAgICBhcz0iY29sdW1uIgogICAgICAgICAgICBpZD0iY29sb3JCeUNvbHVtblRlbXBsYXRlIgogICAgICAgICAgPgogICAgICAgICAgICA8cGFwZXItaXRlbSBkaXNhYmxlZD0iW1shX2lzTnVtZXJpY0NvbHVtbihjb2x1bW4uaW5kZXgpXV0iPgogICAgICAgICAgICAgIFtbY29sdW1uLm5hbWVdXQogICAgICAgICAgICA8L3BhcGVyLWl0ZW0+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgoKICAgICAgPCEtLSBDb2x1bW5zIHNjYWxlcyAtLT4KICAgICAgPGRpdiBjbGFzcz0iY29sdW1ucy1jb250YWluZXIiPgogICAgICAgIDwhLS0gU2NhbGUgb3B0aW9ucyBmb3IgZWFjaCBudW1lcmljIGZlYXR1cmUgLS0+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0ie3tvcHRpb25zLmNvbHVtbnN9fSIgYXM9ImNvbHVtbiI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzTnVtZXJpY0NvbHVtbihjb2x1bW4uaW5kZXgpXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbi10aXRsZSI+W1tjb2x1bW4ubmFtZV1dPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxwYXBlci1yYWRpby1ncm91cAogICAgICAgICAgICAgICAgICBjbGFzcz0ic2NhbGUtcmFkaW8tZ3JvdXAiCiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPSJ7e2NvbHVtbi5zY2FsZX19IgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIG5hbWU9IkxJTkVBUiI+CiAgICAgICAgICAgICAgICAgICAgTGluZWFyCiAgICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgICA8IS0tIFRoZSBpZCBoZXJlIGlzIHVzZWQgdG8gYWNjZXNzIHRoaXMgYnV0dG9uIGluIHVuaXQKICAgICAgICAgICAgICAgICAgICAgICB0ZXN0cy4tLT4KICAgICAgICAgICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgICAgICAgICAgIGlkPSJsb2dTY2FsZUJ1dHRvbl9bW2NvbHVtbi5uYW1lXV0iCiAgICAgICAgICAgICAgICAgICAgbmFtZT0iTE9HIgogICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPSJbWyFfYWxsb3dMb2dTY2FsZShjb2x1bW4sIHNlc3Npb25Hcm91cHMuKildXSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIExvZ2FyaXRobWljCiAgICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIG5hbWU9IlFVQU5USUxFIj4KICAgICAgICAgICAgICAgICAgICBRdWFudGlsZQogICAgICAgICAgICAgICAgICA8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tZ3JvdXA+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5jb250cm9sLXBhbmVsIHsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQogICAgICAuY29sdW1uIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7CiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2dyYXk7CiAgICAgICAgcGFkZGluZzogM3B4OwogICAgICB9CiAgICAgIC5jb2x1bW4tdGl0bGUgewogICAgICAgIC8qIEZpdCBldmVyeSB0aXRsZSBpbiBvbmUgbGluZSBzbyB0aGUgcmFkaW8gYm94ZXMgYWxpZ24gdmVydGljYWxseS4gKi8KICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIC5jb2x1bW5zLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CiAgICAgIC5zY2FsZS1yYWRpby1ncm91cCBwYXBlci1yYWRpby1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDJweDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICBwYXBlci1saXN0Ym94IHsKICAgICAgICBtYXgtaGVpZ2h0OiAxNWVtOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sYVh0LnByb3RvdHlwZSwiY29uZmlndXJhdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sYVh0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sYVh0LnByb3RvdHlwZSwib3B0aW9ucyIsdm9pZCAwKSx0KFthKCJjb25maWd1cmF0aW9uLioiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGFYdC5wcm90b3R5cGUsIl9jb25maWd1cmF0aW9uQ2hhbmdlZCIsbnVsbCksdChbYSgic2Vzc2lvbkdyb3Vwcy4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxhWHQucHJvdG90eXBlLCJfdW5zZWxlY3REaXNhYmxlZExvZ1NjYWxlcyIsbnVsbCksYVh0PXQoW2koInRmLWhwYXJhbXMtc2NhbGUtYW5kLWNvbG9yLWNvbnRyb2xzIildLGFYdCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8KY29uc3Qgc1h0PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZudWxsIT13aW5kb3cuY3VzdG9tRWxlbWVudHMmJnZvaWQgMCE9PXdpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrLGxYdD0odCxlLG49bnVsbCk9Pntmb3IoO2UhPT1uOyl7Y29uc3Qgbj1lLm5leHRTaWJsaW5nO3QucmVtb3ZlQ2hpbGQoZSksZT1ufX0sY1h0PWB7e2xpdC0ke1N0cmluZyhNYXRoLnJhbmRvbSgpKS5zbGljZSgyKX19fWAsdVh0PWBceDNjIS0tJHtjWHR9LS1ceDNlYCxoWHQ9bmV3IFJlZ0V4cChgJHtjWHR9fCR7dVh0fWApLGRYdD0iJGxpdCQiO2NsYXNzIHBYdHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMucGFydHM9W10sdGhpcy5lbGVtZW50PWU7Y29uc3Qgbj1bXSxpPVtdLHI9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihlLmNvbnRlbnQsMTMzLG51bGwsITEpO2xldCBvPTAsYT0tMSxzPTA7Y29uc3R7c3RyaW5nczpsLHZhbHVlczp7bGVuZ3RoOmN9fT10O2Zvcig7czxjOyl7Y29uc3QgdD1yLm5leHROb2RlKCk7aWYobnVsbCE9PXQpe2lmKGErKywxPT09dC5ub2RlVHlwZSl7aWYodC5oYXNBdHRyaWJ1dGVzKCkpe2NvbnN0IGU9dC5hdHRyaWJ1dGVzLHtsZW5ndGg6bn09ZTtsZXQgaT0wO2ZvcihsZXQgdD0wO3Q8bjt0KyspZlh0KGVbdF0ubmFtZSxkWHQpJiZpKys7Zm9yKDtpLS0gPjA7KXtjb25zdCBlPV9YdC5leGVjKGxbc10pWzJdLG49ZS50b0xvd2VyQ2FzZSgpK2RYdCxpPXQuZ2V0QXR0cmlidXRlKG4pO3QucmVtb3ZlQXR0cmlidXRlKG4pO2NvbnN0IHI9aS5zcGxpdChoWHQpO3RoaXMucGFydHMucHVzaCh7dHlwZToiYXR0cmlidXRlIixpbmRleDphLG5hbWU6ZSxzdHJpbmdzOnJ9KSxzKz1yLmxlbmd0aC0xfX0iVEVNUExBVEUiPT09dC50YWdOYW1lJiYoaS5wdXNoKHQpLHIuY3VycmVudE5vZGU9dC5jb250ZW50KX1lbHNlIGlmKDM9PT10Lm5vZGVUeXBlKXtjb25zdCBlPXQuZGF0YTtpZihlLmluZGV4T2YoY1h0KT49MCl7Y29uc3QgaT10LnBhcmVudE5vZGUscj1lLnNwbGl0KGhYdCksbz1yLmxlbmd0aC0xO2ZvcihsZXQgZT0wO2U8bztlKyspe2xldCBuLG89cltlXTtpZigiIj09PW8pbj1nWHQoKTtlbHNle2NvbnN0IHQ9X1h0LmV4ZWMobyk7bnVsbCE9PXQmJmZYdCh0WzJdLGRYdCkmJihvPW8uc2xpY2UoMCx0LmluZGV4KSt0WzFdK3RbMl0uc2xpY2UoMCwtZFh0Lmxlbmd0aCkrdFszXSksbj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShvKX1pLmluc2VydEJlZm9yZShuLHQpLHRoaXMucGFydHMucHVzaCh7dHlwZToibm9kZSIsaW5kZXg6KythfSl9IiI9PT1yW29dPyhpLmluc2VydEJlZm9yZShnWHQoKSx0KSxuLnB1c2godCkpOnQuZGF0YT1yW29dLHMrPW99fWVsc2UgaWYoOD09PXQubm9kZVR5cGUpaWYodC5kYXRhPT09Y1h0KXtjb25zdCBlPXQucGFyZW50Tm9kZTtudWxsIT09dC5wcmV2aW91c1NpYmxpbmcmJmEhPT1vfHwoYSsrLGUuaW5zZXJ0QmVmb3JlKGdYdCgpLHQpKSxvPWEsdGhpcy5wYXJ0cy5wdXNoKHt0eXBlOiJub2RlIixpbmRleDphfSksbnVsbD09PXQubmV4dFNpYmxpbmc/dC5kYXRhPSIiOihuLnB1c2godCksYS0tKSxzKyt9ZWxzZXtsZXQgZT0tMTtmb3IoOy0xIT09KGU9dC5kYXRhLmluZGV4T2YoY1h0LGUrMSkpOyl0aGlzLnBhcnRzLnB1c2goe3R5cGU6Im5vZGUiLGluZGV4Oi0xfSkscysrfX1lbHNlIHIuY3VycmVudE5vZGU9aS5wb3AoKX1mb3IoY29uc3QgdCBvZiBuKXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX19Y29uc3QgZlh0PSh0LGUpPT57Y29uc3Qgbj10Lmxlbmd0aC1lLmxlbmd0aDtyZXR1cm4gbj49MCYmdC5zbGljZShuKT09PWV9LG1YdD10PT4tMSE9PXQuaW5kZXgsZ1h0PSgpPT5kb2N1bWVudC5jcmVhdGVDb21tZW50KCIiKSxfWHQ9LyhbIFx4MDlceDBhXHgwY1x4MGRdKShbXlwwLVx4MUZceDdGLVx4OUYgIic+PS9dKykoWyBceDA5XHgwYVx4MGNceDBkXSo9WyBceDA5XHgwYVx4MGNceDBkXSooPzpbXiBceDA5XHgwYVx4MGNceDBkIidgPD49XSp8IlteIl0qfCdbXiddKikpJC87ZnVuY3Rpb24geVh0KHQsZSl7Y29uc3R7ZWxlbWVudDp7Y29udGVudDpufSxwYXJ0czppfT10LHI9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihuLDEzMyxudWxsLCExKTtsZXQgbz1iWHQoaSksYT1pW29dLHM9LTEsbD0wO2NvbnN0IGM9W107bGV0IHU9bnVsbDtmb3IoO3IubmV4dE5vZGUoKTspe3MrKztjb25zdCB0PXIuY3VycmVudE5vZGU7Zm9yKHQucHJldmlvdXNTaWJsaW5nPT09dSYmKHU9bnVsbCksZS5oYXModCkmJihjLnB1c2godCksbnVsbD09PXUmJih1PXQpKSxudWxsIT09dSYmbCsrO3ZvaWQgMCE9PWEmJmEuaW5kZXg9PT1zOylhLmluZGV4PW51bGwhPT11Py0xOmEuaW5kZXgtbCxvPWJYdChpLG8pLGE9aVtvXX1jLmZvckVhY2goKHQ9PnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSkpfWNvbnN0IHZYdD10PT57bGV0IGU9MTE9PT10Lm5vZGVUeXBlPzA6MTtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodCwxMzMsbnVsbCwhMSk7Zm9yKDtuLm5leHROb2RlKCk7KWUrKztyZXR1cm4gZX0sYlh0PSh0LGU9LTEpPT57Zm9yKGxldCBuPWUrMTtuPHQubGVuZ3RoO24rKylpZihtWHQodFtuXSkpcmV0dXJuIG47cmV0dXJuLTF9LHhYdD1uZXcgV2Vha01hcCx3WHQ9e30sU1h0PXt9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgICogQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgICAqIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovCmNsYXNzIE1YdHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fX3BhcnRzPVtdLHRoaXMudGVtcGxhdGU9dCx0aGlzLnByb2Nlc3Nvcj1lLHRoaXMub3B0aW9ucz1ufXVwZGF0ZSh0KXtsZXQgZT0wO2Zvcihjb25zdCBuIG9mIHRoaXMuX19wYXJ0cyl2b2lkIDAhPT1uJiZuLnNldFZhbHVlKHRbZV0pLGUrKztmb3IoY29uc3QgdCBvZiB0aGlzLl9fcGFydHMpdm9pZCAwIT09dCYmdC5jb21taXQoKX1fY2xvbmUoKXtjb25zdCB0PXNYdD90aGlzLnRlbXBsYXRlLmVsZW1lbnQuY29udGVudC5jbG9uZU5vZGUoITApOmRvY3VtZW50LmltcG9ydE5vZGUodGhpcy50ZW1wbGF0ZS5lbGVtZW50LmNvbnRlbnQsITApLGU9W10sbj10aGlzLnRlbXBsYXRlLnBhcnRzLGk9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0LDEzMyxudWxsLCExKTtsZXQgcixvPTAsYT0wLHM9aS5uZXh0Tm9kZSgpO2Zvcig7bzxuLmxlbmd0aDspaWYocj1uW29dLG1YdChyKSl7Zm9yKDthPHIuaW5kZXg7KWErKywiVEVNUExBVEUiPT09cy5ub2RlTmFtZSYmKGUucHVzaChzKSxpLmN1cnJlbnROb2RlPXMuY29udGVudCksbnVsbD09PShzPWkubmV4dE5vZGUoKSkmJihpLmN1cnJlbnROb2RlPWUucG9wKCkscz1pLm5leHROb2RlKCkpO2lmKCJub2RlIj09PXIudHlwZSl7Y29uc3QgdD10aGlzLnByb2Nlc3Nvci5oYW5kbGVUZXh0RXhwcmVzc2lvbih0aGlzLm9wdGlvbnMpO3QuaW5zZXJ0QWZ0ZXJOb2RlKHMucHJldmlvdXNTaWJsaW5nKSx0aGlzLl9fcGFydHMucHVzaCh0KX1lbHNlIHRoaXMuX19wYXJ0cy5wdXNoKC4uLnRoaXMucHJvY2Vzc29yLmhhbmRsZUF0dHJpYnV0ZUV4cHJlc3Npb25zKHMsci5uYW1lLHIuc3RyaW5ncyx0aGlzLm9wdGlvbnMpKTtvKyt9ZWxzZSB0aGlzLl9fcGFydHMucHVzaCh2b2lkIDApLG8rKztyZXR1cm4gc1h0JiYoZG9jdW1lbnQuYWRvcHROb2RlKHQpLGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUodCkpLHR9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgICogQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgICAqIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovY29uc3QgRVh0PXdpbmRvdy50cnVzdGVkVHlwZXMmJnRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDp0PT50fSksVFh0PWAgJHtjWHR9IGA7Y2xhc3MgQ1h0e2NvbnN0cnVjdG9yKHQpe3RoaXMudmFsdWU9dm9pZCAwLHRoaXMuX19wZW5kaW5nVmFsdWU9dm9pZCAwLHRoaXMub3B0aW9ucz10fWFwcGVuZEludG8odCl7dGhpcy5zdGFydE5vZGU9dC5hcHBlbmRDaGlsZChnWHQoKSksdGhpcy5lbmROb2RlPXQuYXBwZW5kQ2hpbGQoZ1h0KCkpfWluc2VydEFmdGVyTm9kZSh0KXt0aGlzLnN0YXJ0Tm9kZT10LHRoaXMuZW5kTm9kZT10Lm5leHRTaWJsaW5nfWFwcGVuZEludG9QYXJ0KHQpe3QuX19pbnNlcnQodGhpcy5zdGFydE5vZGU9Z1h0KCkpLHQuX19pbnNlcnQodGhpcy5lbmROb2RlPWdYdCgpKX1pbnNlcnRBZnRlclBhcnQodCl7dC5fX2luc2VydCh0aGlzLnN0YXJ0Tm9kZT1nWHQoKSksdGhpcy5lbmROb2RlPXQuZW5kTm9kZSx0LmVuZE5vZGU9dGhpcy5zdGFydE5vZGV9c2V0VmFsdWUodCl7dGhpcy5fX3BlbmRpbmdWYWx1ZT10fWNvbW1pdCgpe2lmKG51bGw9PT10aGlzLnN0YXJ0Tm9kZS5wYXJlbnROb2RlKXJldHVybjtmb3IoOyJmdW5jdGlvbiI9PXR5cGVvZih0PXRoaXMuX19wZW5kaW5nVmFsdWUpJiZ4WHQuaGFzKHQpOyl7Y29uc3QgdD10aGlzLl9fcGVuZGluZ1ZhbHVlO3RoaXMuX19wZW5kaW5nVmFsdWU9d1h0LHQodGhpcyl9dmFyIHQ7Y29uc3QgZT10aGlzLl9fcGVuZGluZ1ZhbHVlO2UhPT13WHQmJigodD0+bnVsbD09PXR8fCEoIm9iamVjdCI9PXR5cGVvZiB0fHwiZnVuY3Rpb24iPT10eXBlb2YgdCkpKGUpP2UhPT10aGlzLnZhbHVlJiZ0aGlzLl9fY29tbWl0VGV4dChlKTplIGluc3RhbmNlb2YgY2xhc3N7Y29uc3RydWN0b3IodCxlLG4saSl7dGhpcy5zdHJpbmdzPXQsdGhpcy52YWx1ZXM9ZSx0aGlzLnR5cGU9bix0aGlzLnByb2Nlc3Nvcj1pfWdldEhUTUwoKXtjb25zdCB0PXRoaXMuc3RyaW5ncy5sZW5ndGgtMTtsZXQgZT0iIixuPSExO2ZvcihsZXQgaT0wO2k8dDtpKyspe2NvbnN0IHQ9dGhpcy5zdHJpbmdzW2ldLHI9dC5sYXN0SW5kZXhPZigiXHgzYyEtLSIpO249KHI+LTF8fG4pJiYtMT09PXQuaW5kZXhPZigiLS1ceDNlIixyKzEpO2NvbnN0IG89X1h0LmV4ZWModCk7ZSs9bnVsbD09PW8/dCsobj9UWHQ6dVh0KTp0LnN1YnN0cigwLG8uaW5kZXgpK29bMV0rb1syXStkWHQrb1szXStjWHR9cmV0dXJuIGUrPXRoaXMuc3RyaW5nc1t0XSxlfWdldFRlbXBsYXRlRWxlbWVudCgpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtsZXQgZT10aGlzLmdldEhUTUwoKTtyZXR1cm4gdm9pZCAwIT09RVh0JiYoZT1FWHQuY3JlYXRlSFRNTChlKSksdC5pbm5lckhUTUw9ZSx0fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgICAqIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICAgKiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqLz90aGlzLl9fY29tbWl0VGVtcGxhdGVSZXN1bHQoZSk6ZSBpbnN0YW5jZW9mIE5vZGU/dGhpcy5fX2NvbW1pdE5vZGUoZSk6KHQ9PkFycmF5LmlzQXJyYXkodCl8fCEoIXR8fCF0W1N5bWJvbC5pdGVyYXRvcl0pKShlKT90aGlzLl9fY29tbWl0SXRlcmFibGUoZSk6ZT09PVNYdD8odGhpcy52YWx1ZT1TWHQsdGhpcy5jbGVhcigpKTp0aGlzLl9fY29tbWl0VGV4dChlKSl9X19pbnNlcnQodCl7dGhpcy5lbmROb2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsdGhpcy5lbmROb2RlKX1fX2NvbW1pdE5vZGUodCl7dGhpcy52YWx1ZSE9PXQmJih0aGlzLmNsZWFyKCksdGhpcy5fX2luc2VydCh0KSx0aGlzLnZhbHVlPXQpfV9fY29tbWl0VGV4dCh0KXtjb25zdCBlPXRoaXMuc3RhcnROb2RlLm5leHRTaWJsaW5nLG49InN0cmluZyI9PXR5cGVvZih0PW51bGw9PXQ/IiI6dCk/dDpTdHJpbmcodCk7ZT09PXRoaXMuZW5kTm9kZS5wcmV2aW91c1NpYmxpbmcmJjM9PT1lLm5vZGVUeXBlP2UuZGF0YT1uOnRoaXMuX19jb21taXROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG4pKSx0aGlzLnZhbHVlPXR9X19jb21taXRUZW1wbGF0ZVJlc3VsdCh0KXtjb25zdCBlPXRoaXMub3B0aW9ucy50ZW1wbGF0ZUZhY3RvcnkodCk7aWYodGhpcy52YWx1ZSBpbnN0YW5jZW9mIE1YdCYmdGhpcy52YWx1ZS50ZW1wbGF0ZT09PWUpdGhpcy52YWx1ZS51cGRhdGUodC52YWx1ZXMpO2Vsc2V7Y29uc3Qgbj1uZXcgTVh0KGUsdC5wcm9jZXNzb3IsdGhpcy5vcHRpb25zKSxpPW4uX2Nsb25lKCk7bi51cGRhdGUodC52YWx1ZXMpLHRoaXMuX19jb21taXROb2RlKGkpLHRoaXMudmFsdWU9bn19X19jb21taXRJdGVyYWJsZSh0KXtBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpfHwodGhpcy52YWx1ZT1bXSx0aGlzLmNsZWFyKCkpO2NvbnN0IGU9dGhpcy52YWx1ZTtsZXQgbixpPTA7Zm9yKGNvbnN0IHIgb2YgdCluPWVbaV0sdm9pZCAwPT09biYmKG49bmV3IENYdCh0aGlzLm9wdGlvbnMpLGUucHVzaChuKSwwPT09aT9uLmFwcGVuZEludG9QYXJ0KHRoaXMpOm4uaW5zZXJ0QWZ0ZXJQYXJ0KGVbaS0xXSkpLG4uc2V0VmFsdWUociksbi5jb21taXQoKSxpKys7aTxlLmxlbmd0aCYmKGUubGVuZ3RoPWksdGhpcy5jbGVhcihuJiZuLmVuZE5vZGUpKX1jbGVhcih0PXRoaXMuc3RhcnROb2RlKXtsWHQodGhpcy5zdGFydE5vZGUucGFyZW50Tm9kZSx0Lm5leHRTaWJsaW5nLHRoaXMuZW5kTm9kZSl9fWxldCBBWHQ9ITE7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8KZnVuY3Rpb24ga1h0KHQpe2xldCBlPUxYdC5nZXQodC50eXBlKTt2b2lkIDA9PT1lJiYoZT17c3RyaW5nc0FycmF5Om5ldyBXZWFrTWFwLGtleVN0cmluZzpuZXcgTWFwfSxMWHQuc2V0KHQudHlwZSxlKSk7bGV0IG49ZS5zdHJpbmdzQXJyYXkuZ2V0KHQuc3RyaW5ncyk7aWYodm9pZCAwIT09bilyZXR1cm4gbjtjb25zdCBpPXQuc3RyaW5ncy5qb2luKGNYdCk7cmV0dXJuIG49ZS5rZXlTdHJpbmcuZ2V0KGkpLHZvaWQgMD09PW4mJihuPW5ldyBwWHQodCx0LmdldFRlbXBsYXRlRWxlbWVudCgpKSxlLmtleVN0cmluZy5zZXQoaSxuKSksZS5zdHJpbmdzQXJyYXkuc2V0KHQuc3RyaW5ncyxuKSxufSgoKT0+e3RyeXtjb25zdCB0PXtnZXQgY2FwdHVyZSgpe3JldHVybiBBWHQ9ITAsITF9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsdCx0KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsdCx0KX1jYXRjaCh0KXt9fSkoKTtjb25zdCBMWHQ9bmV3IE1hcCxQWHQ9bmV3IFdlYWtNYXA7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgICAqIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICAgKiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqLwoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5saXRIdG1sVmVyc2lvbnN8fCh3aW5kb3cubGl0SHRtbFZlcnNpb25zPVtdKSkucHVzaCgiMS40LjEiKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgICAqIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICAgKiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqL2NvbnN0IE5YdD0odCxlKT0+YCR7dH0tLSR7ZX1gO2xldCBJWHQ9ITA7dm9pZCAwPT09d2luZG93LlNoYWR5Q1NTP0lYdD0hMTp2b2lkIDA9PT13aW5kb3cuU2hhZHlDU1MucHJlcGFyZVRlbXBsYXRlRG9tJiYoY29uc29sZS53YXJuKCJJbmNvbXBhdGlibGUgU2hhZHlDU1MgdmVyc2lvbiBkZXRlY3RlZC4gUGxlYXNlIHVwZGF0ZSB0byBhdCBsZWFzdCBAd2ViY29tcG9uZW50cy93ZWJjb21wb25lbnRzanNAMi4wLjIgYW5kIEB3ZWJjb21wb25lbnRzL3NoYWR5Y3NzQDEuMy4xLiIpLElYdD0hMSk7Y29uc3QgUlh0PXQ9PmU9Pntjb25zdCBuPU5YdChlLnR5cGUsdCk7bGV0IGk9TFh0LmdldChuKTt2b2lkIDA9PT1pJiYoaT17c3RyaW5nc0FycmF5Om5ldyBXZWFrTWFwLGtleVN0cmluZzpuZXcgTWFwfSxMWHQuc2V0KG4saSkpO2xldCByPWkuc3RyaW5nc0FycmF5LmdldChlLnN0cmluZ3MpO2lmKHZvaWQgMCE9PXIpcmV0dXJuIHI7Y29uc3Qgbz1lLnN0cmluZ3Muam9pbihjWHQpO2lmKHI9aS5rZXlTdHJpbmcuZ2V0KG8pLHZvaWQgMD09PXIpe2NvbnN0IG49ZS5nZXRUZW1wbGF0ZUVsZW1lbnQoKTtJWHQmJndpbmRvdy5TaGFkeUNTUy5wcmVwYXJlVGVtcGxhdGVEb20obix0KSxyPW5ldyBwWHQoZSxuKSxpLmtleVN0cmluZy5zZXQobyxyKX1yZXR1cm4gaS5zdHJpbmdzQXJyYXkuc2V0KGUuc3RyaW5ncyxyKSxyfSxPWHQ9WyJodG1sIiwic3ZnIl0selh0PW5ldyBTZXQ7d2luZG93LkpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHk9KHQsZSk9PnQ7Y29uc3QgRFh0PXt0b0F0dHJpYnV0ZSh0LGUpe3N3aXRjaChlKXtjYXNlIEJvb2xlYW46cmV0dXJuIHQ/IiI6bnVsbDtjYXNlIE9iamVjdDpjYXNlIEFycmF5OnJldHVybiBudWxsPT10P3Q6SlNPTi5zdHJpbmdpZnkodCl9cmV0dXJuIHR9LGZyb21BdHRyaWJ1dGUodCxlKXtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnJldHVybiBudWxsIT09dDtjYXNlIE51bWJlcjpyZXR1cm4gbnVsbD09PXQ/bnVsbDpOdW1iZXIodCk7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTpyZXR1cm4gSlNPTi5wYXJzZSh0KX1yZXR1cm4gdH19LEJYdD0odCxlKT0+ZSE9PXQmJihlPT1lfHx0PT10KSxIWHQ9e2F0dHJpYnV0ZTohMCx0eXBlOlN0cmluZyxjb252ZXJ0ZXI6RFh0LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpCWHR9O2NsYXNzIEZYdCBleHRlbmRzIEhUTUxFbGVtZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmluaXRpYWxpemUoKX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3RoaXMuZmluYWxpemUoKTtjb25zdCB0PVtdO3JldHVybiB0aGlzLl9jbGFzc1Byb3BlcnRpZXMuZm9yRWFjaCgoKGUsbik9Pntjb25zdCBpPXRoaXMuX2F0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eShuLGUpO3ZvaWQgMCE9PWkmJih0aGlzLl9hdHRyaWJ1dGVUb1Byb3BlcnR5TWFwLnNldChpLG4pLHQucHVzaChpKSl9KSksdH1zdGF0aWMgX2Vuc3VyZUNsYXNzUHJvcGVydGllcygpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9jbGFzc1Byb3BlcnRpZXMiLHRoaXMpKSl7dGhpcy5fY2xhc3NQcm9wZXJ0aWVzPW5ldyBNYXA7Y29uc3QgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2NsYXNzUHJvcGVydGllczt2b2lkIDAhPT10JiZ0LmZvckVhY2goKCh0LGUpPT50aGlzLl9jbGFzc1Byb3BlcnRpZXMuc2V0KGUsdCkpKX19c3RhdGljIGNyZWF0ZVByb3BlcnR5KHQsZT1IWHQpe2lmKHRoaXMuX2Vuc3VyZUNsYXNzUHJvcGVydGllcygpLHRoaXMuX2NsYXNzUHJvcGVydGllcy5zZXQodCxlKSxlLm5vQWNjZXNzb3J8fHRoaXMucHJvdG90eXBlLmhhc093blByb3BlcnR5KHQpKXJldHVybjtjb25zdCBuPSJzeW1ib2wiPT10eXBlb2YgdD9TeW1ib2woKTpgX18ke3R9YCxpPXRoaXMuZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHQsbixlKTt2b2lkIDAhPT1pJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5wcm90b3R5cGUsdCxpKX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHQsZSxuKXtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbZV19LHNldChpKXtjb25zdCByPXRoaXNbdF07dGhpc1tlXT1pLHRoaXMucmVxdWVzdFVwZGF0ZUludGVybmFsKHQscixuKX0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9fXN0YXRpYyBnZXRQcm9wZXJ0eU9wdGlvbnModCl7cmV0dXJuIHRoaXMuX2NsYXNzUHJvcGVydGllcyYmdGhpcy5fY2xhc3NQcm9wZXJ0aWVzLmdldCh0KXx8SFh0fXN0YXRpYyBmaW5hbGl6ZSgpe2NvbnN0IHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO2lmKHQuaGFzT3duUHJvcGVydHkoImZpbmFsaXplZCIpfHx0LmZpbmFsaXplKCksdGhpcy5maW5hbGl6ZWQ9ITAsdGhpcy5fZW5zdXJlQ2xhc3NQcm9wZXJ0aWVzKCksdGhpcy5fYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcD1uZXcgTWFwLHRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgicHJvcGVydGllcyIsdGhpcykpKXtjb25zdCB0PXRoaXMucHJvcGVydGllcyxlPVsuLi5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KSwuLi4iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpOltdXTtmb3IoY29uc3QgbiBvZiBlKXRoaXMuY3JlYXRlUHJvcGVydHkobix0W25dKX19c3RhdGljIF9hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkodCxlKXtjb25zdCBuPWUuYXR0cmlidXRlO3JldHVybiExPT09bj92b2lkIDA6InN0cmluZyI9PXR5cGVvZiBuP246InN0cmluZyI9PXR5cGVvZiB0P3QudG9Mb3dlckNhc2UoKTp2b2lkIDB9c3RhdGljIF92YWx1ZUhhc0NoYW5nZWQodCxlLG49Qlh0KXtyZXR1cm4gbih0LGUpfXN0YXRpYyBfcHJvcGVydHlWYWx1ZUZyb21BdHRyaWJ1dGUodCxlKXtjb25zdCBuPWUuY29udmVydGVyfHxEWHQsaT0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOm4uZnJvbUF0dHJpYnV0ZTtyZXR1cm4gaT9pKHQsZS50eXBlKTp0fXN0YXRpYyBfcHJvcGVydHlWYWx1ZVRvQXR0cmlidXRlKHQsZSl7aWYodm9pZCAwPT09ZS5yZWZsZWN0KXJldHVybjtjb25zdCBuPWUuY29udmVydGVyO3JldHVybihuJiZuLnRvQXR0cmlidXRlfHxEWHQudG9BdHRyaWJ1dGUpKHQsZS50eXBlKX1pbml0aWFsaXplKCl7dGhpcy5fdXBkYXRlU3RhdGU9MCx0aGlzLl91cGRhdGVQcm9taXNlPW5ldyBQcm9taXNlKCh0PT50aGlzLl9lbmFibGVVcGRhdGluZ1Jlc29sdmVyPXQpKSx0aGlzLl9jaGFuZ2VkUHJvcGVydGllcz1uZXcgTWFwLHRoaXMuX3NhdmVJbnN0YW5jZVByb3BlcnRpZXMoKSx0aGlzLnJlcXVlc3RVcGRhdGVJbnRlcm5hbCgpfV9zYXZlSW5zdGFuY2VQcm9wZXJ0aWVzKCl7dGhpcy5jb25zdHJ1Y3Rvci5fY2xhc3NQcm9wZXJ0aWVzLmZvckVhY2goKCh0LGUpPT57aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShlKSl7Y29uc3QgdD10aGlzW2VdO2RlbGV0ZSB0aGlzW2VdLHRoaXMuX2luc3RhbmNlUHJvcGVydGllc3x8KHRoaXMuX2luc3RhbmNlUHJvcGVydGllcz1uZXcgTWFwKSx0aGlzLl9pbnN0YW5jZVByb3BlcnRpZXMuc2V0KGUsdCl9fSkpfV9hcHBseUluc3RhbmNlUHJvcGVydGllcygpe3RoaXMuX2luc3RhbmNlUHJvcGVydGllcy5mb3JFYWNoKCgodCxlKT0+dGhpc1tlXT10KSksdGhpcy5faW5zdGFuY2VQcm9wZXJ0aWVzPXZvaWQgMH1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuZW5hYmxlVXBkYXRpbmcoKX1lbmFibGVVcGRhdGluZygpe3ZvaWQgMCE9PXRoaXMuX2VuYWJsZVVwZGF0aW5nUmVzb2x2ZXImJih0aGlzLl9lbmFibGVVcGRhdGluZ1Jlc29sdmVyKCksdGhpcy5fZW5hYmxlVXBkYXRpbmdSZXNvbHZlcj12b2lkIDApfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7fWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbil7ZSE9PW4mJnRoaXMuX2F0dHJpYnV0ZVRvUHJvcGVydHkodCxuKX1fcHJvcGVydHlUb0F0dHJpYnV0ZSh0LGUsbj1IWHQpe2NvbnN0IGk9dGhpcy5jb25zdHJ1Y3RvcixyPWkuX2F0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eSh0LG4pO2lmKHZvaWQgMCE9PXIpe2NvbnN0IHQ9aS5fcHJvcGVydHlWYWx1ZVRvQXR0cmlidXRlKGUsbik7aWYodm9pZCAwPT09dClyZXR1cm47dGhpcy5fdXBkYXRlU3RhdGU9OHx0aGlzLl91cGRhdGVTdGF0ZSxudWxsPT10P3RoaXMucmVtb3ZlQXR0cmlidXRlKHIpOnRoaXMuc2V0QXR0cmlidXRlKHIsdCksdGhpcy5fdXBkYXRlU3RhdGU9LTkmdGhpcy5fdXBkYXRlU3RhdGV9fV9hdHRyaWJ1dGVUb1Byb3BlcnR5KHQsZSl7aWYoOCZ0aGlzLl91cGRhdGVTdGF0ZSlyZXR1cm47Y29uc3Qgbj10aGlzLmNvbnN0cnVjdG9yLGk9bi5fYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5nZXQodCk7aWYodm9pZCAwIT09aSl7Y29uc3QgdD1uLmdldFByb3BlcnR5T3B0aW9ucyhpKTt0aGlzLl91cGRhdGVTdGF0ZT0xNnx0aGlzLl91cGRhdGVTdGF0ZSx0aGlzW2ldPW4uX3Byb3BlcnR5VmFsdWVGcm9tQXR0cmlidXRlKGUsdCksdGhpcy5fdXBkYXRlU3RhdGU9LTE3JnRoaXMuX3VwZGF0ZVN0YXRlfX1yZXF1ZXN0VXBkYXRlSW50ZXJuYWwodCxlLG4pe2xldCBpPSEwO2lmKHZvaWQgMCE9PXQpe2NvbnN0IHI9dGhpcy5jb25zdHJ1Y3RvcjtuPW58fHIuZ2V0UHJvcGVydHlPcHRpb25zKHQpLHIuX3ZhbHVlSGFzQ2hhbmdlZCh0aGlzW3RdLGUsbi5oYXNDaGFuZ2VkKT8odGhpcy5fY2hhbmdlZFByb3BlcnRpZXMuaGFzKHQpfHx0aGlzLl9jaGFuZ2VkUHJvcGVydGllcy5zZXQodCxlKSwhMCE9PW4ucmVmbGVjdHx8MTYmdGhpcy5fdXBkYXRlU3RhdGV8fCh2b2lkIDA9PT10aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcyYmKHRoaXMuX3JlZmxlY3RpbmdQcm9wZXJ0aWVzPW5ldyBNYXApLHRoaXMuX3JlZmxlY3RpbmdQcm9wZXJ0aWVzLnNldCh0LG4pKSk6aT0hMX0hdGhpcy5faGFzUmVxdWVzdGVkVXBkYXRlJiZpJiYodGhpcy5fdXBkYXRlUHJvbWlzZT10aGlzLl9lbnF1ZXVlVXBkYXRlKCkpfXJlcXVlc3RVcGRhdGUodCxlKXtyZXR1cm4gdGhpcy5yZXF1ZXN0VXBkYXRlSW50ZXJuYWwodCxlKSx0aGlzLnVwZGF0ZUNvbXBsZXRlfWFzeW5jIF9lbnF1ZXVlVXBkYXRlKCl7dGhpcy5fdXBkYXRlU3RhdGU9NHx0aGlzLl91cGRhdGVTdGF0ZTt0cnl7YXdhaXQgdGhpcy5fdXBkYXRlUHJvbWlzZX1jYXRjaCh0KXt9Y29uc3QgdD10aGlzLnBlcmZvcm1VcGRhdGUoKTtyZXR1cm4gbnVsbCE9dCYmYXdhaXQgdCwhdGhpcy5faGFzUmVxdWVzdGVkVXBkYXRlfWdldCBfaGFzUmVxdWVzdGVkVXBkYXRlKCl7cmV0dXJuIDQmdGhpcy5fdXBkYXRlU3RhdGV9Z2V0IGhhc1VwZGF0ZWQoKXtyZXR1cm4gMSZ0aGlzLl91cGRhdGVTdGF0ZX1wZXJmb3JtVXBkYXRlKCl7aWYoIXRoaXMuX2hhc1JlcXVlc3RlZFVwZGF0ZSlyZXR1cm47dGhpcy5faW5zdGFuY2VQcm9wZXJ0aWVzJiZ0aGlzLl9hcHBseUluc3RhbmNlUHJvcGVydGllcygpO2xldCB0PSExO2NvbnN0IGU9dGhpcy5fY2hhbmdlZFByb3BlcnRpZXM7dHJ5e3Q9dGhpcy5zaG91bGRVcGRhdGUoZSksdD90aGlzLnVwZGF0ZShlKTp0aGlzLl9tYXJrVXBkYXRlZCgpfWNhdGNoKGUpe3Rocm93IHQ9ITEsdGhpcy5fbWFya1VwZGF0ZWQoKSxlfXQmJigxJnRoaXMuX3VwZGF0ZVN0YXRlfHwodGhpcy5fdXBkYXRlU3RhdGU9MXx0aGlzLl91cGRhdGVTdGF0ZSx0aGlzLmZpcnN0VXBkYXRlZChlKSksdGhpcy51cGRhdGVkKGUpKX1fbWFya1VwZGF0ZWQoKXt0aGlzLl9jaGFuZ2VkUHJvcGVydGllcz1uZXcgTWFwLHRoaXMuX3VwZGF0ZVN0YXRlPS01JnRoaXMuX3VwZGF0ZVN0YXRlfWdldCB1cGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl9nZXRVcGRhdGVDb21wbGV0ZSgpfV9nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLmdldFVwZGF0ZUNvbXBsZXRlKCl9Z2V0VXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5fdXBkYXRlUHJvbWlzZX1zaG91bGRVcGRhdGUodCl7cmV0dXJuITB9dXBkYXRlKHQpe3ZvaWQgMCE9PXRoaXMuX3JlZmxlY3RpbmdQcm9wZXJ0aWVzJiZ0aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcy5zaXplPjAmJih0aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcy5mb3JFYWNoKCgodCxlKT0+dGhpcy5fcHJvcGVydHlUb0F0dHJpYnV0ZShlLHRoaXNbZV0sdCkpKSx0aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcz12b2lkIDApLHRoaXMuX21hcmtVcGRhdGVkKCl9dXBkYXRlZCh0KXt9Zmlyc3RVcGRhdGVkKHQpe319Rlh0LmZpbmFsaXplZD0hMDsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IFZYdD13aW5kb3cuU2hhZG93Um9vdCYmKHZvaWQgMD09PXdpbmRvdy5TaGFkeUNTU3x8d2luZG93LlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNoZWV0LnByb3RvdHlwZSxVWHQ9U3ltYm9sKCk7Y2xhc3Mgalh0e2NvbnN0cnVjdG9yKHQsZSl7aWYoZSE9PVVYdCl0aHJvdyBuZXcgRXJyb3IoIkNTU1Jlc3VsdCBpcyBub3QgY29uc3RydWN0YWJsZS4gVXNlIGB1bnNhZmVDU1NgIG9yIGBjc3NgIGluc3RlYWQuIik7dGhpcy5jc3NUZXh0PXR9Z2V0IHN0eWxlU2hlZXQoKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5fc3R5bGVTaGVldCYmKFZYdD8odGhpcy5fc3R5bGVTaGVldD1uZXcgQ1NTU3R5bGVTaGVldCx0aGlzLl9zdHlsZVNoZWV0LnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCkpOnRoaXMuX3N0eWxlU2hlZXQ9bnVsbCksdGhpcy5fc3R5bGVTaGVldH10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc1RleHR9fWNvbnN0IEdYdD0odCwuLi5lKT0+e2NvbnN0IG49ZS5yZWR1Y2UoKChlLG4saSk9PmUrKHQ9PntpZih0IGluc3RhbmNlb2Ygalh0KXJldHVybiB0LmNzc1RleHQ7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O3Rocm93IG5ldyBFcnJvcihgVmFsdWUgcGFzc2VkIHRvICdjc3MnIGZ1bmN0aW9uIG11c3QgYmUgYSAnY3NzJyBmdW5jdGlvbiByZXN1bHQ6ICR7dH0uIFVzZSAndW5zYWZlQ1NTJyB0byBwYXNzIG5vbi1saXRlcmFsIHZhbHVlcywgYnV0XG4gICAgICAgICAgICB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuYCl9KShuKSt0W2krMV0pLHRbMF0pO3JldHVybiBuZXcgalh0KG4sVVh0KX07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8KKHdpbmRvdy5saXRFbGVtZW50VmVyc2lvbnN8fCh3aW5kb3cubGl0RWxlbWVudFZlcnNpb25zPVtdKSkucHVzaCgiMi41LjEiKTtjb25zdCBXWHQ9e307Y2xhc3MgcVh0IGV4dGVuZHMgRlh0e3N0YXRpYyBnZXRTdHlsZXMoKXtyZXR1cm4gdGhpcy5zdHlsZXN9c3RhdGljIF9nZXRVbmlxdWVTdHlsZXMoKXtpZih0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9zdHlsZXMiLHRoaXMpKSlyZXR1cm47Y29uc3QgdD10aGlzLmdldFN0eWxlcygpO2lmKEFycmF5LmlzQXJyYXkodCkpe2NvbnN0IGU9KHQsbik9PnQucmVkdWNlUmlnaHQoKCh0LG4pPT5BcnJheS5pc0FycmF5KG4pP2Uobix0KToodC5hZGQobiksdCkpLG4pLG49ZSh0LG5ldyBTZXQpLGk9W107bi5mb3JFYWNoKCh0PT5pLnVuc2hpZnQodCkpKSx0aGlzLl9zdHlsZXM9aX1lbHNlIHRoaXMuX3N0eWxlcz12b2lkIDA9PT10P1tdOlt0XTt0aGlzLl9zdHlsZXM9dGhpcy5fc3R5bGVzLm1hcCgodD0+dCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQmJiFWWHQ/KHQ9Pm5ldyBqWHQoU3RyaW5nKHQpLFVYdCkpKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQuY3NzUnVsZXMpLnJlZHVjZSgoKHQsZSk9PnQrZS5jc3NUZXh0KSwiIikpOnQpKX1pbml0aWFsaXplKCl7c3VwZXIuaW5pdGlhbGl6ZSgpLHRoaXMuY29uc3RydWN0b3IuX2dldFVuaXF1ZVN0eWxlcygpLHRoaXMucmVuZGVyUm9vdD10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx3aW5kb3cuU2hhZG93Um9vdCYmdGhpcy5yZW5kZXJSb290IGluc3RhbmNlb2Ygd2luZG93LlNoYWRvd1Jvb3QmJnRoaXMuYWRvcHRTdHlsZXMoKX1jcmVhdGVSZW5kZXJSb290KCl7cmV0dXJuIHRoaXMuYXR0YWNoU2hhZG93KHRoaXMuY29uc3RydWN0b3Iuc2hhZG93Um9vdE9wdGlvbnMpfWFkb3B0U3R5bGVzKCl7Y29uc3QgdD10aGlzLmNvbnN0cnVjdG9yLl9zdHlsZXM7MCE9PXQubGVuZ3RoJiYodm9pZCAwPT09d2luZG93LlNoYWR5Q1NTfHx3aW5kb3cuU2hhZHlDU1MubmF0aXZlU2hhZG93P1ZYdD90aGlzLnJlbmRlclJvb3QuYWRvcHRlZFN0eWxlU2hlZXRzPXQubWFwKCh0PT50IGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD90OnQuc3R5bGVTaGVldCkpOnRoaXMuX25lZWRzU2hpbUFkb3B0ZWRTdHlsZVNoZWV0cz0hMDp3aW5kb3cuU2hhZHlDU1MuU2NvcGluZ1NoaW0ucHJlcGFyZUFkb3B0ZWRDc3NUZXh0KHQubWFwKCh0PT50LmNzc1RleHQpKSx0aGlzLmxvY2FsTmFtZSkpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhc1VwZGF0ZWQmJnZvaWQgMCE9PXdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLnN0eWxlRWxlbWVudCh0aGlzKX11cGRhdGUodCl7Y29uc3QgZT10aGlzLnJlbmRlcigpO3N1cGVyLnVwZGF0ZSh0KSxlIT09V1h0JiZ0aGlzLmNvbnN0cnVjdG9yLnJlbmRlcihlLHRoaXMucmVuZGVyUm9vdCx7c2NvcGVOYW1lOnRoaXMubG9jYWxOYW1lLGV2ZW50Q29udGV4dDp0aGlzfSksdGhpcy5fbmVlZHNTaGltQWRvcHRlZFN0eWxlU2hlZXRzJiYodGhpcy5fbmVlZHNTaGltQWRvcHRlZFN0eWxlU2hlZXRzPSExLHRoaXMuY29uc3RydWN0b3IuX3N0eWxlcy5mb3JFYWNoKCh0PT57Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2UudGV4dENvbnRlbnQ9dC5jc3NUZXh0LHRoaXMucmVuZGVyUm9vdC5hcHBlbmRDaGlsZChlKX0pKSl9cmVuZGVyKCl7cmV0dXJuIFdYdH19cVh0LmZpbmFsaXplZD0hMCxxWHQucmVuZGVyPSh0LGUsbik9PntpZighbnx8Im9iamVjdCIhPXR5cGVvZiBufHwhbi5zY29wZU5hbWUpdGhyb3cgbmV3IEVycm9yKCJUaGUgYHNjb3BlTmFtZWAgb3B0aW9uIGlzIHJlcXVpcmVkLiIpO2NvbnN0IGk9bi5zY29wZU5hbWUscj1QWHQuaGFzKGUpLG89SVh0JiYxMT09PWUubm9kZVR5cGUmJiEhZS5ob3N0LGE9byYmIXpYdC5oYXMoaSkscz1hP2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTplO2lmKCgodCxlLG4pPT57bGV0IGk9UFh0LmdldChlKTt2b2lkIDA9PT1pJiYobFh0KGUsZS5maXJzdENoaWxkKSxQWHQuc2V0KGUsaT1uZXcgQ1h0KE9iamVjdC5hc3NpZ24oe3RlbXBsYXRlRmFjdG9yeTprWHR9LG4pKSksaS5hcHBlbmRJbnRvKGUpKSxpLnNldFZhbHVlKHQpLGkuY29tbWl0KCl9KSh0LHMsT2JqZWN0LmFzc2lnbih7dGVtcGxhdGVGYWN0b3J5OlJYdChpKX0sbikpLGEpe2NvbnN0IHQ9UFh0LmdldChzKTtQWHQuZGVsZXRlKHMpLCgodCxlLG4pPT57elh0LmFkZCh0KTtjb25zdCBpPW4/bi5lbGVtZW50OmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIikscj1lLnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIikse2xlbmd0aDpvfT1yO2lmKDA9PT1vKXJldHVybiB2b2lkIHdpbmRvdy5TaGFkeUNTUy5wcmVwYXJlVGVtcGxhdGVTdHlsZXMoaSx0KTtjb25zdCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Zm9yKGxldCB0PTA7dDxvO3QrKyl7Y29uc3QgZT1yW3RdO2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxhLnRleHRDb250ZW50Kz1lLnRleHRDb250ZW50fSh0PT57T1h0LmZvckVhY2goKGU9Pntjb25zdCBuPUxYdC5nZXQoTlh0KGUsdCkpO3ZvaWQgMCE9PW4mJm4ua2V5U3RyaW5nLmZvckVhY2goKHQ9Pntjb25zdHtlbGVtZW50Ontjb250ZW50OmV9fT10LG49bmV3IFNldDtBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgic3R5bGUiKSkuZm9yRWFjaCgodD0+e24uYWRkKHQpfSkpLHlYdCh0LG4pfSkpfSkpfSkodCk7Y29uc3Qgcz1pLmNvbnRlbnQ7bj8oZnVuY3Rpb24gbCh0LGUsbj1udWxsKXtjb25zdHtlbGVtZW50Ontjb250ZW50Oml9LHBhcnRzOnJ9PXQ7aWYobnVsbD09bilyZXR1cm4gdm9pZCBpLmFwcGVuZENoaWxkKGUpO2NvbnN0IG89ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihpLDEzMyxudWxsLCExKTtsZXQgYT1iWHQocikscz0wLGw9LTE7Zm9yKDtvLm5leHROb2RlKCk7KWZvcihsKyssby5jdXJyZW50Tm9kZT09PW4mJihzPXZYdChlKSxuLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsbikpOy0xIT09YSYmclthXS5pbmRleD09PWw7KXtpZihzPjApe2Zvcig7LTEhPT1hOylyW2FdLmluZGV4Kz1zLGE9Ylh0KHIsYSk7cmV0dXJufWE9Ylh0KHIsYSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgICogQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgICAqIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovKShuLGEscy5maXJzdENoaWxkKTpzLmluc2VydEJlZm9yZShhLHMuZmlyc3RDaGlsZCksd2luZG93LlNoYWR5Q1NTLnByZXBhcmVUZW1wbGF0ZVN0eWxlcyhpLHQpO2NvbnN0IGM9cy5xdWVyeVNlbGVjdG9yKCJzdHlsZSIpO2lmKHdpbmRvdy5TaGFkeUNTUy5uYXRpdmVTaGFkb3cmJm51bGwhPT1jKWUuaW5zZXJ0QmVmb3JlKGMuY2xvbmVOb2RlKCEwKSxlLmZpcnN0Q2hpbGQpO2Vsc2UgaWYobil7cy5pbnNlcnRCZWZvcmUoYSxzLmZpcnN0Q2hpbGQpO2NvbnN0IHQ9bmV3IFNldDt0LmFkZChhKSx5WHQobix0KX19KShpLHMsdC52YWx1ZSBpbnN0YW5jZW9mIE1YdD90LnZhbHVlLnRlbXBsYXRlOnZvaWQgMCksbFh0KGUsZS5maXJzdENoaWxkKSxlLmFwcGVuZENoaWxkKHMpLFBYdC5zZXQoZSx0KX0hciYmbyYmd2luZG93LlNoYWR5Q1NTLnN0eWxlRWxlbWVudChlLmhvc3QpfSxxWHQuc2hhZG93Um9vdE9wdGlvbnM9e21vZGU6Im9wZW4ifTtsZXQgWVh0PTA7Y29uc3QgWFh0PXt9LCRYdD0odCxlLG4pPT57Y29uc3QgaT1uJiZuLm1vZHVsZUlkfHwiY3VzdG9tLXN0eWxlLW1vZHVsZS0iK1lYdCsrO0FycmF5LmlzQXJyYXkoZSl8fChlPWU/W2VdOltdKSxlLmZvckVhY2goKHQ9PntpZighKHQgaW5zdGFuY2VvZiBqWHQpKXRocm93IG5ldyBFcnJvcigiQW4gaXRlbSBpbiBzdHlsZXMgaXMgbm90IG9mIHR5cGUgQ1NTUmVzdWx0LiBVc2UgYHVuc2FmZUNTU2Agb3IgYGNzc2AuIik7aWYoIVhYdFt0XSl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkb20tbW9kdWxlIik7ZS5pbm5lckhUTUw9YFxuICAgICAgICA8dGVtcGxhdGU+XG4gICAgICAgICAgPHN0eWxlPiR7dC50b1N0cmluZygpfTwvc3R5bGU+XG4gICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICBgO2NvbnN0IG49ImN1c3RvbS1zdHlsZS1tb2R1bGUtIitZWHQrKztlLnJlZ2lzdGVyKG4pLFhYdFt0XT1ufX0pKTtjb25zdCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRvbS1tb2R1bGUiKTtpZih0KXtjb25zdCBlPWN1c3RvbUVsZW1lbnRzLmdldCh0KTtlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwiX19maW5hbGl6ZWQiKSYmY29uc29sZS53YXJuKGBUaGUgY3VzdG9tIGVsZW1lbnQgZGVmaW5pdGlvbiBmb3IgIiR7dH0iXG4gICAgICB3YXMgZmluYWxpemVkIGJlZm9yZSBhIHN0eWxlIG1vZHVsZSB3YXMgcmVnaXN0ZXJlZC5cbiAgICAgIE1ha2Ugc3VyZSB0byBhZGQgY29tcG9uZW50IHNwZWNpZmljIHN0eWxlIG1vZHVsZXMgYmVmb3JlXG4gICAgICBpbXBvcnRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgY3VzdG9tIGVsZW1lbnQuYCksci5zZXRBdHRyaWJ1dGUoInRoZW1lLWZvciIsdCl9ci5pbm5lckhUTUw9YFxuICAgIDx0ZW1wbGF0ZT5cbiAgICAgICR7KG4mJm4uaW5jbHVkZXx8W10pLm1hcCgodD0+YDxzdHlsZSBpbmNsdWRlPSR7dH0+PC9zdHlsZT5gKSl9XG4gICAgICAke2UubWFwKCh0PT5gPHN0eWxlIGluY2x1ZGU9JHtYWHRbdF19Pjwvc3R5bGU+YCkpfVxuICAgIDwvdGVtcGxhdGU+XG4gIGAsci5yZWdpc3RlcihpKX07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovCmNsYXNzIEtYdCBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpYyBnZXQgdmVyc2lvbigpe3JldHVybiIyMC4wLjIifX1jdXN0b21FbGVtZW50cy5kZWZpbmUoInZhYWRpbi1sdW1vLXN0eWxlcyIsS1h0KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgWlh0PUdYdGAKICA6aG9zdCB7CiAgICAvKiBCYXNlIChiYWNrZ3JvdW5kKSAqLwogICAgLS1sdW1vLWJhc2UtY29sb3I6ICNmZmY7CgogICAgLyogVGludCAqLwogICAgLS1sdW1vLXRpbnQtNXBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC4zKTsKICAgIC0tbHVtby10aW50LTEwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjM3KTsKICAgIC0tbHVtby10aW50LTIwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjQ0KTsKICAgIC0tbHVtby10aW50LTMwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjUpOwogICAgLS1sdW1vLXRpbnQtNDBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNTcpOwogICAgLS1sdW1vLXRpbnQtNTBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNjQpOwogICAgLS1sdW1vLXRpbnQtNjBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNyk7CiAgICAtLWx1bW8tdGludC03MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC43Nyk7CiAgICAtLWx1bW8tdGludC04MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC44NCk7CiAgICAtLWx1bW8tdGludC05MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC45KTsKICAgIC0tbHVtby10aW50OiAjZmZmOwoKICAgIC8qIFNoYWRlICovCiAgICAtLWx1bW8tc2hhZGUtNXBjdDogaHNsYSgyMTQsIDYxJSwgMjUlLCAwLjA1KTsKICAgIC0tbHVtby1zaGFkZS0xMHBjdDogaHNsYSgyMTQsIDU3JSwgMjQlLCAwLjEpOwogICAgLS1sdW1vLXNoYWRlLTIwcGN0OiBoc2xhKDIxNCwgNTMlLCAyMyUsIDAuMTYpOwogICAgLS1sdW1vLXNoYWRlLTMwcGN0OiBoc2xhKDIxNCwgNTAlLCAyMiUsIDAuMjYpOwogICAgLS1sdW1vLXNoYWRlLTQwcGN0OiBoc2xhKDIxNCwgNDclLCAyMSUsIDAuMzgpOwogICAgLS1sdW1vLXNoYWRlLTUwcGN0OiBoc2xhKDIxNCwgNDUlLCAyMCUsIDAuNSk7CiAgICAtLWx1bW8tc2hhZGUtNjBwY3Q6IGhzbGEoMjE0LCA0MyUsIDE5JSwgMC42MSk7CiAgICAtLWx1bW8tc2hhZGUtNzBwY3Q6IGhzbGEoMjE0LCA0MiUsIDE4JSwgMC43Mik7CiAgICAtLWx1bW8tc2hhZGUtODBwY3Q6IGhzbGEoMjE0LCA0MSUsIDE3JSwgMC44Myk7CiAgICAtLWx1bW8tc2hhZGUtOTBwY3Q6IGhzbGEoMjE0LCA0MCUsIDE2JSwgMC45NCk7CiAgICAtLWx1bW8tc2hhZGU6IGhzbCgyMTQsIDM1JSwgMTUlKTsKCiAgICAvKiBDb250cmFzdCAqLwogICAgLS1sdW1vLWNvbnRyYXN0LTVwY3Q6IHZhcigtLWx1bW8tc2hhZGUtNXBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtMTBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtMTBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTIwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC0zMHBjdDogdmFyKC0tbHVtby1zaGFkZS0zMHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtNDBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtNDBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTUwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTUwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC02MHBjdDogdmFyKC0tbHVtby1zaGFkZS02MHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtNzBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtNzBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTgwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTgwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC05MHBjdDogdmFyKC0tbHVtby1zaGFkZS05MHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3Q6IHZhcigtLWx1bW8tc2hhZGUpOwoKICAgIC8qIFRleHQgKi8KICAgIC0tbHVtby1oZWFkZXItdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdCk7CiAgICAtLWx1bW8tYm9keS10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTkwcGN0KTsKICAgIC0tbHVtby1zZWNvbmRhcnktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC03MHBjdCk7CiAgICAtLWx1bW8tdGVydGlhcnktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC01MHBjdCk7CiAgICAtLWx1bW8tZGlzYWJsZWQtdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CgogICAgLyogUHJpbWFyeSAqLwogICAgLS1sdW1vLXByaW1hcnktY29sb3I6IGhzbCgyMTQsIDkwJSwgNTIlKTsKICAgIC0tbHVtby1wcmltYXJ5LWNvbG9yLTUwcGN0OiBoc2xhKDIxNCwgOTAlLCA1MiUsIDAuNSk7CiAgICAtLWx1bW8tcHJpbWFyeS1jb2xvci0xMHBjdDogaHNsYSgyMTQsIDkwJSwgNTIlLCAwLjEpOwogICAgLS1sdW1vLXByaW1hcnktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yKTsKICAgIC0tbHVtby1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yOiAjZmZmOwoKICAgIC8qIEVycm9yICovCiAgICAtLWx1bW8tZXJyb3ItY29sb3I6IGhzbCgzLCAxMDAlLCA2MSUpOwogICAgLS1sdW1vLWVycm9yLWNvbG9yLTUwcGN0OiBoc2xhKDMsIDEwMCUsIDYwJSwgMC41KTsKICAgIC0tbHVtby1lcnJvci1jb2xvci0xMHBjdDogaHNsYSgzLCAxMDAlLCA2MCUsIDAuMSk7CiAgICAtLWx1bW8tZXJyb3ItdGV4dC1jb2xvcjogaHNsKDMsIDkyJSwgNTMlKTsKICAgIC0tbHVtby1lcnJvci1jb250cmFzdC1jb2xvcjogI2ZmZjsKCiAgICAvKiBTdWNjZXNzICovCiAgICAtLWx1bW8tc3VjY2Vzcy1jb2xvcjogaHNsKDE0NSwgODAlLCA0MiUpOyAvKiBoc2woMTQ0LDgyJSwzNyUpOyAqLwogICAgLS1sdW1vLXN1Y2Nlc3MtY29sb3ItNTBwY3Q6IGhzbGEoMTQ1LCA3NiUsIDQ0JSwgMC41NSk7CiAgICAtLWx1bW8tc3VjY2Vzcy1jb2xvci0xMHBjdDogaHNsYSgxNDUsIDc2JSwgNDQlLCAwLjEyKTsKICAgIC0tbHVtby1zdWNjZXNzLXRleHQtY29sb3I6IGhzbCgxNDUsIDEwMCUsIDMyJSk7CiAgICAtLWx1bW8tc3VjY2Vzcy1jb250cmFzdC1jb2xvcjogI2ZmZjsKICB9CmAsSlh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7Slh0LmlubmVySFRNTD1gPHN0eWxlPiR7Wlh0LnRvU3RyaW5nKCkucmVwbGFjZSgiOmhvc3QiLCJodG1sIil9PC9zdHlsZT5gLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoSlh0LmNvbnRlbnQpLCRYdCgiIixHWHRgCiAgW3RoZW1lfj0nZGFyayddIHsKICAgIC8qIEJhc2UgKGJhY2tncm91bmQpICovCiAgICAtLWx1bW8tYmFzZS1jb2xvcjogaHNsKDIxNCwgMzUlLCAyMSUpOwoKICAgIC8qIFRpbnQgKi8KICAgIC0tbHVtby10aW50LTVwY3Q6IGhzbGEoMjE0LCA2NSUsIDg1JSwgMC4wNik7CiAgICAtLWx1bW8tdGludC0xMHBjdDogaHNsYSgyMTQsIDYwJSwgODAlLCAwLjE0KTsKICAgIC0tbHVtby10aW50LTIwcGN0OiBoc2xhKDIxNCwgNjQlLCA4MiUsIDAuMjMpOwogICAgLS1sdW1vLXRpbnQtMzBwY3Q6IGhzbGEoMjE0LCA2OSUsIDg0JSwgMC4zMik7CiAgICAtLWx1bW8tdGludC00MHBjdDogaHNsYSgyMTQsIDczJSwgODYlLCAwLjQxKTsKICAgIC0tbHVtby10aW50LTUwcGN0OiBoc2xhKDIxNCwgNzglLCA4OCUsIDAuNSk7CiAgICAtLWx1bW8tdGludC02MHBjdDogaHNsYSgyMTQsIDgyJSwgOTAlLCAwLjYpOwogICAgLS1sdW1vLXRpbnQtNzBwY3Q6IGhzbGEoMjE0LCA4NyUsIDkyJSwgMC43KTsKICAgIC0tbHVtby10aW50LTgwcGN0OiBoc2xhKDIxNCwgOTElLCA5NCUsIDAuOCk7CiAgICAtLWx1bW8tdGludC05MHBjdDogaHNsYSgyMTQsIDk2JSwgOTYlLCAwLjkpOwogICAgLS1sdW1vLXRpbnQ6IGhzbCgyMTQsIDEwMCUsIDk4JSk7CgogICAgLyogU2hhZGUgKi8KICAgIC0tbHVtby1zaGFkZS01cGN0OiBoc2xhKDIxNCwgMCUsIDAlLCAwLjA3KTsKICAgIC0tbHVtby1zaGFkZS0xMHBjdDogaHNsYSgyMTQsIDQlLCAyJSwgMC4xNSk7CiAgICAtLWx1bW8tc2hhZGUtMjBwY3Q6IGhzbGEoMjE0LCA4JSwgNCUsIDAuMjMpOwogICAgLS1sdW1vLXNoYWRlLTMwcGN0OiBoc2xhKDIxNCwgMTIlLCA2JSwgMC4zMik7CiAgICAtLWx1bW8tc2hhZGUtNDBwY3Q6IGhzbGEoMjE0LCAxNiUsIDglLCAwLjQxKTsKICAgIC0tbHVtby1zaGFkZS01MHBjdDogaHNsYSgyMTQsIDIwJSwgMTAlLCAwLjUpOwogICAgLS1sdW1vLXNoYWRlLTYwcGN0OiBoc2xhKDIxNCwgMjQlLCAxMiUsIDAuNik7CiAgICAtLWx1bW8tc2hhZGUtNzBwY3Q6IGhzbGEoMjE0LCAyOCUsIDEzJSwgMC43KTsKICAgIC0tbHVtby1zaGFkZS04MHBjdDogaHNsYSgyMTQsIDMyJSwgMTMlLCAwLjgpOwogICAgLS1sdW1vLXNoYWRlLTkwcGN0OiBoc2xhKDIxNCwgMzMlLCAxMyUsIDAuOSk7CiAgICAtLWx1bW8tc2hhZGU6IGhzbCgyMTQsIDMzJSwgMTMlKTsKCiAgICAvKiBDb250cmFzdCAqLwogICAgLS1sdW1vLWNvbnRyYXN0LTVwY3Q6IHZhcigtLWx1bW8tdGludC01cGN0KTsKICAgIC0tbHVtby1jb250cmFzdC0xMHBjdDogdmFyKC0tbHVtby10aW50LTEwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC0yMHBjdDogdmFyKC0tbHVtby10aW50LTIwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC0zMHBjdDogdmFyKC0tbHVtby10aW50LTMwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC00MHBjdDogdmFyKC0tbHVtby10aW50LTQwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC01MHBjdDogdmFyKC0tbHVtby10aW50LTUwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC02MHBjdDogdmFyKC0tbHVtby10aW50LTYwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC03MHBjdDogdmFyKC0tbHVtby10aW50LTcwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC04MHBjdDogdmFyKC0tbHVtby10aW50LTgwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC05MHBjdDogdmFyKC0tbHVtby10aW50LTkwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdDogdmFyKC0tbHVtby10aW50KTsKCiAgICAvKiBUZXh0ICovCiAgICAtLWx1bW8taGVhZGVyLXRleHQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QpOwogICAgLS1sdW1vLWJvZHktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC05MHBjdCk7CiAgICAtLWx1bW8tc2Vjb25kYXJ5LXRleHQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtNzBwY3QpOwogICAgLS1sdW1vLXRlcnRpYXJ5LXRleHQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtNTBwY3QpOwogICAgLS1sdW1vLWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMzBwY3QpOwoKICAgIC8qIFByaW1hcnkgKi8KICAgIC0tbHVtby1wcmltYXJ5LWNvbG9yOiBoc2woMjE0LCA4NiUsIDU1JSk7CiAgICAtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdDogaHNsYSgyMTQsIDg2JSwgNTUlLCAwLjUpOwogICAgLS1sdW1vLXByaW1hcnktY29sb3ItMTBwY3Q6IGhzbGEoMjE0LCA5MCUsIDYzJSwgMC4xKTsKICAgIC0tbHVtby1wcmltYXJ5LXRleHQtY29sb3I6IGhzbCgyMTQsIDEwMCUsIDcwJSk7CiAgICAtLWx1bW8tcHJpbWFyeS1jb250cmFzdC1jb2xvcjogI2ZmZjsKCiAgICAvKiBFcnJvciAqLwogICAgLS1sdW1vLWVycm9yLWNvbG9yOiBoc2woMywgOTAlLCA2MyUpOwogICAgLS1sdW1vLWVycm9yLWNvbG9yLTUwcGN0OiBoc2xhKDMsIDkwJSwgNjMlLCAwLjUpOwogICAgLS1sdW1vLWVycm9yLWNvbG9yLTEwcGN0OiBoc2xhKDMsIDkwJSwgNjMlLCAwLjEpOwogICAgLS1sdW1vLWVycm9yLXRleHQtY29sb3I6IGhzbCgzLCAxMDAlLCA2NyUpOwoKICAgIC8qIFN1Y2Nlc3MgKi8KICAgIC0tbHVtby1zdWNjZXNzLWNvbG9yOiBoc2woMTQ1LCA2NSUsIDQyJSk7CiAgICAtLWx1bW8tc3VjY2Vzcy1jb2xvci01MHBjdDogaHNsYSgxNDUsIDY1JSwgNDIlLCAwLjUpOwogICAgLS1sdW1vLXN1Y2Nlc3MtY29sb3ItMTBwY3Q6IGhzbGEoMTQ1LCA2NSUsIDQyJSwgMC4xKTsKICAgIC0tbHVtby1zdWNjZXNzLXRleHQtY29sb3I6IGhzbCgxNDUsIDg1JSwgNDclKTsKICB9CgogIGh0bWwgewogICAgY29sb3I6IHZhcigtLWx1bW8tYm9keS10ZXh0LWNvbG9yKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tYmFzZS1jb2xvcik7CiAgfQoKICBbdGhlbWV+PSdkYXJrJ10gewogICAgY29sb3I6IHZhcigtLWx1bW8tYm9keS10ZXh0LWNvbG9yKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tYmFzZS1jb2xvcik7CiAgfQoKICBoMSwKICBoMiwKICBoMywKICBoNCwKICBoNSwKICBoNiB7CiAgICBjb2xvcjogdmFyKC0tbHVtby1oZWFkZXItdGV4dC1jb2xvcik7CiAgfQoKICBhIHsKICAgIGNvbG9yOiB2YXIoLS1sdW1vLXByaW1hcnktdGV4dC1jb2xvcik7CiAgfQoKICBibG9ja3F1b3RlIHsKICAgIGNvbG9yOiB2YXIoLS1sdW1vLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICB9CgogIGNvZGUsCiAgcHJlIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMTBwY3QpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLW0pOwogIH0KYCx7bW9kdWxlSWQ6Imx1bW8tY29sb3IifSksJFh0KCIiLEdYdGAKICA6aG9zdCB7CiAgICBjb2xvcjogdmFyKC0tbHVtby1ib2R5LXRleHQtY29sb3IpICFpbXBvcnRhbnQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWJhc2UtY29sb3IpICFpbXBvcnRhbnQ7CiAgfQpgLHttb2R1bGVJZDoibHVtby1jb2xvci1sZWdhY3kiLGluY2x1ZGU6WyJsdW1vLWNvbG9yIl19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgUVh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7UVh0LmlubmVySFRNTD0nXG4gIDxzdHlsZT5cbiAgICBAZm9udC1mYWNlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcJ2x1bW8taWNvbnNcJztcbiAgICAgIHNyYzogdXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFCRWNBQXNBQUFBQUlpd0FBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCSFUxVkNBQUFCQ0FBQUFEc0FBQUJVSUlzbGVrOVRMeklBQUFGRUFBQUFRd0FBQUZaQUlVdUtZMjFoY0FBQUFZZ0FBQUQ0QUFBRHJzQ1U4ZDVuYkhsbUFBQUNnQUFBQzJNQUFCZDRoOVRvMldobFlXUUFBQTNrQUFBQU1BQUFBRFphLzZTc2FHaGxZUUFBRGhRQUFBQWRBQUFBSkFicEEzNW9iWFI0QUFBT05BQUFBQkFBQUFDc3BCQUFBR3h2WTJFQUFBNUVBQUFBV0FBQUFGaDU1SUFzYldGNGNBQUFEcHdBQUFBZkFBQUFJQUZLQVhCdVlXMWxBQUFPdkFBQUFURUFBQUl1VVVKWkNIQnZjM1FBQUEvd0FBQUJLd0FBQWVsbThTelZlSnhqWUdSZ1lPQmlNR0N3WTJCeWNmTUpZZURMU1N6Slk1QmlZR0dBQUpBOE1wc3hKek05a1lFRHhnUEtzWUJwRGlCbWc0Z0NBQ1k3QlVnQWVKeGpZR1MreURpQmdaV0JnYW1LYVE4REEwTVBoR1o4d0dESXlBUVVaV0JsWnNBS0F0SmNVeGdjWGpHKzBtSU8rcC9GRU1VY3hEQU5LTXdJa2dNQUJuOE1MUUI0bk8zU1dXNkRNQUJGMFV0d0NFbklQTS96aExLOExxaGZYUnliU1AxNFhVWXRIVjloR1lRd1FCTklvM2NVSVBraFFlTTdyaWIxZWtxblhnOTgxWHVDMXF2eTg0bHpvamxlaDNwdXhMMGhQakdqUlU0NzN0ZWxvRWVmQVVOR2pKa3daY2FjQlV0V3JObXdaY2VlQTBkT25MbHc1Y2FkQjA5ZWxQR2hHZitqME5USS82NUtmWGVyVDZKaHFLbnBSS3RnT3B1cWFUcnRLalBVbHFIbWh0bzIxSTdwTDZpNmhscVkzcTdxR1dyZlVBZUdPalRVa2FHT0RYVmlxRk5EblJucTNGQVhocm8wMUpXaHJnMTFZNmhiUTkwWjZ0NVFENFo2Tk5TVG9aNE45V0tvVjBPOUdlcmRVQitHK2pUVWw2R1dSdmtMMjRCa0VYaWN0Vmg5YkZ2VkZiL254dmJ6KzdSZi9ONnpIY2QyYkNmUCtXZ2MxWjlOMGpwTm5FTDZrYlJWUzZIQTJoUVlHaDlUR1IxQ2JDcWEyclhyV09rUUUvc0hOSmdtdFp2b1ZOWnFFMUIxRE5IeHpUUXhDZWhVVFlpSlRReUVOdWkwcVNMZXpyM1BkdXlRZmdtUldPZmRlOCs5NTUxejdybm4vTzRqTG9KL2JSUDBVYUtRTUxGSmpwQkF2cGhMWkMzRGswb2s3V0J6UjIvdXBKczdSeXcvbmZGYmxuL3V1Ti9hcEN2d3JLTHJTdlVxUnVmYm01cG4wZnMwdzRnWXhuR1ZQNnFIbk80YldpRFFHUWd3dFM2bG0zbEIzUW9YMU0ydndFbXV6aXJGMzl5K0VzMitESjhkMXBreXFCSXFvemUzRDErWno0RHJGb2F6eEk4ZFd3TXJEbFoyRE1xUUFSOUFST3NKVSsyY21sVFBhelRjbzUyRjF4VGEyYTIrSzh2dnE5MmRWSG10TG9QZVFYL0FaUFJZR3RoRFlPZVpqQmpLb0ZzVkd1bFIzbFdVOTVXZUNLNDRxSFU3TWhXVUdVS1pEVDNvS1VjRzJHV3VoK0VERGZVWUEvamhBaGwwVE9zSk5ZU0V1N21RbWkzVXpmWHdaS0E0QnNWc0hMWFFZR2dSVzk1dUV0cEoxVmZuOVhpTHJpUkJsRkVxeHNEakEwOXlDTlVvUXh4d2Q3S1dTVHQyeTNHVEtpZmxxSFJTb1daYzNtMTFXYS9mSmRGZ1hENHNTWWZsZUpCS2Q4R016N0o4ZFpuL2NHUkNjS0dEbkEyR2UzZkt6Y3ZsblRETnRoR1dMWHpYL1dhWHRVQW1SZ2VMbEhTcjMwcjBHOVVUWE1iMEF0bXd6T295NzNma1NsSFprZHV3L1RZdVU5Y0FENFl1dFBveFRUc0EzNzk3d1ZyNFovMU5DNXpBUkhyNHZ0eEpqeElmaVpNaE1rYldrKzE0Qm5KWkt3cUdad0Rmc3dMeXhXRFNnMTFyRkxKRjdOb3B4amQxaDEvUU9UK29lemdmdTNZcStIaytkdWY1eCs0MG8xR1RrYUlnaWtLL0lFbkM2YVl4Q1VCYVpKU040WFRZRmpVL1lNTklLcUp3aERHT0NDSThGRFhuWG1YanRHaEdKeVNocWpBT25CT2tXMkpHOVM3R2dZZU1XQVU1SnpobldtQk9hT00rQ0tFUG9xU2ZGREMyVW5xK0RMbFVnVVZVRkZMWkdKZzZqdGxvanNkc2E4a1BPYlB1SmRpNWRuQmRCc0xKTUdUV0RhNHQySnZ0d3VQbzlzK1k4NnN1di9XMzNRRzFyQWFPQVVWK3Z4NEs2ZjJEMDRQVktsQzdXTFNyWnpBaTQ1WlY2bElDN1dvWHFtUnl2VXFvVndyelVvVnNJamVUWFdRditSSDVHVGxCWGlCL0luOGxuMEliQkNBRk9hakFKcmdaWXlPSFdxT2ZVZS9hSGpJMTJSNk9RbzFqQ2d0MjE1bCs0ZjZYUGIrME1Ob3UwVis0M24yRjc3dFNmUmIyNGQ3eml0Z25LbXZZSHM2OXp1Z2FQdkJ3djZpb1hrYjJMZEw2NUF0dzUxdUxrWGx1MWJoTU1SY1hTUGNZb3FLSVJsaDM0bFFQOC81SmJ1VUZ5ZTR2eEQ2LzZNeEZGMTFDMHVWTHI5VWxndzQ0dFMzcE1WaU5MVUV4YnljRmdMSWN0K1FETWliUmlteDF5ZFV6OEZYWml1T0lEQk9NVlgyblVaYytodU5FNVhVSjgxdWlKb2lhYndxYVZGMHVhY0tiYXUvcGw0UjJWVzBYWGxKcmE2Ym9WcllHNjQ2VEY1Tll6d3k0dmpFTlZyRGxjTnBaUGw4REg2WFg4WFdDeDBtdldWWlk2S0ZMcnZzWTY2L3pQaWN0NUZueGFOVVIvanV2WkNNM1R2RDYwRTJXMXRaaXpiWFRQRHVhYmNtMG5iYnpwV0twbUExYXlCUThnaWVkTFVNK0Ewa05qQmpRam11WXo3WXJnSVhZdm1GNjNaTEJ3U1hycG45VGI5d3dkZC9VMUgwUE1RSzNYY084dWwzV1Q3UHlQUGRweTBUZW1LeE5SY0pOYXVpWEpublVEcFVwcFFXczRTblVJeTBFRVNHWXFKWVFMR0h4emFHV3dWSWFTNlk3bVFGTThaallEUTNheGpmNjFTV2pVMzNKd09aQTFwd2FHMUw5bXpmNzFhSFJkWDFKSHc2RnAwYVhoTndicXllR05nNE5iZHpHQ0J4b3o0WlhqeTROdTY5WnI2c0RZNnZNckxVNW5BMVA4SmtiZFdYSjZFUmZNcnl2TmgxSmZROStUNGRJaEd2Szl3M2R4akJCemF0c1EvTWxPSFZJRG5ZcER6Nm9kQVhsUTAxdDJQYTVJYWZkOE1NcHhBZURLUDBDNkNqZ1ZMVDVvc0I2aWNVeDAxbFdqWHh6VC9HeVJGMndlbEVNNVovN2pHM1ZqUTFTck5uNUlieXpPRzVkb2JCMy9RSHh5WnZzWGNvejhJb0V3UzdwbENnK3p4SFFrNDI0cTlCZkVwa0VTSmJGSFF1c0RCU1dGa3VCa29QTzBrTEt3UlZZanhHWGxIVGNURFFNSi9INlRYOWFma083bW5yYVRPMWZlVG5aQVhMdTRjcDdIQVhNbU5HMXllRms5VGdTL05IaFpSLzRRb0JUci9aQis2aENneWwxNU5xMVViTjZuRTEvWm5QMVUyY2l6Q0JwdnM4Y0pRWko0TGtZeDVOL3laUEFVWk5RUTBWNGYzQlFsbFdySzNZUnpsMzBkT1Q2UlZuMnVwTnVyNndvU2E4Q3FwZFQvYUtuQk00bzNqTnVyOWQ5eHF0VVQ2dmVCRXQ5Q2E5YXQrRVJ6RUVoVWtSOHNhNW1RNGFWdkpvVmVFQTh6STRlaTVtVUxYRkd5VTd6LzZUQWVZTFZjcHpTV1pZOFBZWUY1eXJUVjYwc1QwK1hWMTQxdlgrK1dmMTZWMmJGZUdWUFpYeEZwa3Z5ZUtUV0xsemZXMG1uS3hzWTZZMzI5NC8wOTk4U0NmWDFibG01cGJjdkZHbHEvcjA3TVJBTWhZSURpVzVKRktXVzN2ZHJFcENzWlNKRytvbTdadS9QU1NjWkpoTmtMYm1XNVdzcjEycFdxVzV6S3Rsd1JTNGJGT3hVdzE3bUN6eTZsc2tDRGwxV1lPR1dEWXJBRHJNQTdCRER3ZVdXTmQ1a29pSm5SMWR6K3l0TFAycTBTcVBCMWxuSzJjY0I3UlllNEZTb1BrczNpQjN0NHR4VFNIY3RiMnN5MWl2azBwdkh1Q05tNncxZjZ3eHYzK09DZ043OExxZFFuVVZoN1Iwb1RBcDB6T2YycmJXNzcwVnU1QzJkSXlHZFRuSG84elNqaTdkcHBqMFVTb1ZDeitsaFJNVGg1M1RlcTlWYkdmYmp1U2JBb29TZFhheVk0UFlIZzM3NEM2ZjdnbDFCL0RYdUo0L1FYeE9CZEpGSnNwRnNJM2VncG9XVVVDamxUSUZuTllObCtaeVpLbUJlWUtHSGtEMVF5RGxoYUtiS3dLY0lKcUo0VExKMk9tZFkvSldYYWU0RGRHQnc4SFo3ZVhjZ0ZGMnpyMlNvYWxEcnk1aUtxb2EwUHVoZTNoUFEyczNlbFRZTStNSStuM3JLMEtnTDcvTGEzR2VNTHQ2bTd1OTEydkdudnRPUmlJYTBxQm1ocVZpK1hXOVhOQm1xYjhlVmdLeklIZkdJNWJOb0c3WDBVQ3plSVNtcUljTy9uWThGSDdVOGF2WDlmeC9TVCtoeDBzZXpQdzlReThNdW0zR1dmMk40VXkveUlZR1ZCWGJKSFdJWnA3ZGZUY3B0ZE1UcjlRbXE3RGFpSy91a3FDTDRrdDRSVWZTNVhQbk10bVQyMi9tUUZxRjdlbVNxdHJsdThTVkVseERSSnJaT0RrcHV3ZTBWZlRmamRFcDFmN0E3ditmb3pOQlhVSi82V1R1SzJUdEZscEZWWkFaM0xjRnZVaTFaMnAyWVQrRU1Ba0dKVlN0T3pMVEFQZzRJcVdJQWx6UlNqT0JrbDJ6eGozVEt5Y3B6VC9NbnZYM3VhU01XTStnVTBya1hqb2hoZWZWUk1hcHMzL2tMTVNLdjIzbFQyM3V4UXJrUWp5T0psZU1Ec2RoQW5ENlpHRWxXWjVNakNYekNFL2hrV1grV0Y0a256R2hWT3lLMmVRWmVrVjNleW8wekw4a3VZV0NuREN2ampoQWtjVFBPQkRYVmRvYXYzSFZjRm5Rakx2dFY5UzJwMHpBNkplZ1B3TVF4dCt5RmIzbGw5ekdscS81ZFJLYjNjRXlRWW9hTllwaGFySjd4Q0I3QVd4c0xZM2pqWlhZMFhzWmowV2p3YzlJNlBQL2RLQUJuQ1phcUhwYVpFQUN4azRaZUxaU0tOZ1pBQmwrbFlRWDFzSlFPU1gzbjZyNDEwZXZjb3VkNUplQUdVWFZQOUgxdFpPS2VqVHE0T25vMHowZXJybzFGcm5PcG9odmExZC9oVGR0VnNRZEtONVc5UmxUM05qRDBuem55S05UZ0tBTWZXTldjeW9kVjBJR0xQSUhPRjBvNEp5cXVmYUs0ejZXSUl6dUdoM2Q4Yzhjd1FnOEVSK09WeHlyamRtOHZOdWh0czRMb09paEd4SU11VWRnendpWU43eGhoMStvWm5KTnVURzdnUVp2dTRYV1o5R0FaWmpHRXVid2VQcVlodEtEVEgrOVZRa2wxNy9pR3lic25KKzgrc0t0eVByY2xsOXR5NjVac2RzdC85aXFwRUtoN001VmRCeGgzY3NPZE5jNnRXM0kxdXlNMVB6T1hlZ1NPckxGc0ZOSTJPMjdNK1RGMkFwbk45TVV2NXVkNkxqeEl2RVFuSFJ6eEl1NElzQTlNTEZrSm4ydGNab1o3T043ZFhlN3VqcmM4SHJ1c1BLYW1scVh3ZDc3bFFVdUxwaWxhdTRQVU1hcHVlQmI3aXJVNFJvVVhFWVh1VnVJR2xSR21PcCsybE5rYVJQVnppT3FtbGFadmFxRzRkRmdTajBqeEVKV3J2MTJJVVdudG13K3JmUWFyUkUwQXBoNG9jSTZubFVsR3FzK3UzLytUL2V0aFc2MlBwSHAyZUhiWnN0bmgvd09POTV5REFIaWNZMkJrWUdBQTRwbUo2UUh4L0RaZkdiaVpYd0JGR0dwVU56UWk2UCt2bWFjeTNRSnlPUmlZUUtJQU5vVUxWWGljWTJCa1lHQU8rcDhGSkY4d0FBSHpWQVpHQmxTZ0RRQlc5Z052QUFBQWVKeGpZR0JnWUg0eE5EQUF6d1FtandBQUFBQUFUZ0NhQU9nQkNnRXNBVTRCY0FHYUFjUUI3Z0lhQXB3QzZBU2FCTHdFMWdUeUJRNEZLZ1Y2QmRBRi9nWkVCbVlHdGdjWUI1QUlHQWhTQ0dvSS9nbEdDYjRKMmdvRUNqd0tnZ3E0Q3ZBTFVBdVdDN3g0bkdOZ1pHQmcwR1pNWVJCbEFBRW1JT1lDUWdhRy8yQStBd0FZbEFHOEFIaWNiWkU5VHNNd0dJYmY5QS9SU2dnRVltSHhBZ3RxK2pOMlpHajNEdDNUMUdsVE9YSGt1Qlc5QXlmZ0VCeUNnVE53Q0E3QlcvTkpsVkJ0eWQvangrOFhLd21BYTN3aHduRkU2SWIxT0JxNDRPNlBtNlFiNFJiNVFiaU5IaDZGTy9SRDRTNmVNUkh1NFJhYVQ0aGFselIzZUJWdTRBcHZ3azM2ZCtFVytVTzRqWHQ4Q25mb3Y0VzdXT0JIdUllbjZNWHNDdHZQVTF2V2M3M2VtY1NkeElrVzJ0VzVMZFVvSHA3a1RKZmFKVjZ2MVBLZzZ2MTY3SDJtTW1jTE5iV2wxOFpZVlRtNzFhbVBOOTVYazhFZ0V4K250b0RCRGdVcytzaVJzcGFvTWVmN3J1a05Fcml6aVhOdXdTN0htb2U5d2dneHYrZTU1SXpKTXFRVGVOWVYwMHNjdU5iWTgrWXhyVWZHZmNhTVpiL0NOUFFlMDRiVDBsVGhiRXVUMHNmWWhLNksvMjNBbWYzTHgrSDI0aGNqNEdTY0FBQUFlSnh0anRsdWd6QVFSYmtKVUVKSXV1Lzd2cVI4bEdOUEFjV3gwWUFiNWUvTGtsUjk2RWdlblN1ZkdZMDM4UHFLdmY5cmhnR0c4QkVneEE0aWpCQmpqQVFUVExHTFBlempBSWM0d2pGT2NJb3puT01DbDdqQ05XNXdpenZjNHdHUGVNSXpYdkNLTjd6akF6Tjhlb25RUldaU1NhWW1qdnVnNmFzZTk4aEZsdGV4TUptbVZObVYyV0J2ZE5nWlVjK3VqQVd6WFczVURudTF3NDNhc1N0SGM4R3B6QVhYL3B5MGpxVFFaSlRna2N4SkxwYUNGMGxEMzJ4TnQrNDN0QXNuMjlEZnQwMnVES1MyY2pHVU5nc2syNnFLMmxGdGhZb1UyN0lOUHFtaURxZzVnb2UwcHFSNXFTb3FNZGVrL0NVWkZ5d0w0NnJFc2lJbWxlcWlxb015dDRiYVhsdS8xR0xkTkZmNXpiY05tZHIxWVVXQ1plNDdvK3pVbWIvRG9TdGJ3M2NWc2VmOUFMamppUFFBKSBmb3JtYXQoXCd3b2ZmXCcpO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB9XG5cbiAgICBodG1sIHtcbiAgICAgIC0tbHVtby1pY29ucy1hbGlnbi1jZW50ZXI6ICJcXGVhMDEiO1xuICAgICAgLS1sdW1vLWljb25zLWFsaWduLWxlZnQ6ICJcXGVhMDIiO1xuICAgICAgLS1sdW1vLWljb25zLWFsaWduLXJpZ2h0OiAiXFxlYTAzIjtcbiAgICAgIC0tbHVtby1pY29ucy1hbmdsZS1kb3duOiAiXFxlYTA0IjtcbiAgICAgIC0tbHVtby1pY29ucy1hbmdsZS1sZWZ0OiAiXFxlYTA1IjtcbiAgICAgIC0tbHVtby1pY29ucy1hbmdsZS1yaWdodDogIlxcZWEwNiI7XG4gICAgICAtLWx1bW8taWNvbnMtYW5nbGUtdXA6ICJcXGVhMDciO1xuICAgICAgLS1sdW1vLWljb25zLWFycm93LWRvd246ICJcXGVhMDgiO1xuICAgICAgLS1sdW1vLWljb25zLWFycm93LWxlZnQ6ICJcXGVhMDkiO1xuICAgICAgLS1sdW1vLWljb25zLWFycm93LXJpZ2h0OiAiXFxlYTBhIjtcbiAgICAgIC0tbHVtby1pY29ucy1hcnJvdy11cDogIlxcZWEwYiI7XG4gICAgICAtLWx1bW8taWNvbnMtYmFyLWNoYXJ0OiAiXFxlYTBjIjtcbiAgICAgIC0tbHVtby1pY29ucy1iZWxsOiAiXFxlYTBkIjtcbiAgICAgIC0tbHVtby1pY29ucy1jYWxlbmRhcjogIlxcZWEwZSI7XG4gICAgICAtLWx1bW8taWNvbnMtY2hlY2ttYXJrOiAiXFxlYTBmIjtcbiAgICAgIC0tbHVtby1pY29ucy1jaGV2cm9uLWRvd246ICJcXGVhMTAiO1xuICAgICAgLS1sdW1vLWljb25zLWNoZXZyb24tbGVmdDogIlxcZWExMSI7XG4gICAgICAtLWx1bW8taWNvbnMtY2hldnJvbi1yaWdodDogIlxcZWExMiI7XG4gICAgICAtLWx1bW8taWNvbnMtY2hldnJvbi11cDogIlxcZWExMyI7XG4gICAgICAtLWx1bW8taWNvbnMtY2xvY2s6ICJcXGVhMTQiO1xuICAgICAgLS1sdW1vLWljb25zLWNvZzogIlxcZWExNSI7XG4gICAgICAtLWx1bW8taWNvbnMtY3Jvc3M6ICJcXGVhMTYiO1xuICAgICAgLS1sdW1vLWljb25zLWRvd25sb2FkOiAiXFxlYTE3IjtcbiAgICAgIC0tbHVtby1pY29ucy1kcm9wZG93bjogIlxcZWExOCI7XG4gICAgICAtLWx1bW8taWNvbnMtZWRpdDogIlxcZWExOSI7XG4gICAgICAtLWx1bW8taWNvbnMtZXJyb3I6ICJcXGVhMWEiO1xuICAgICAgLS1sdW1vLWljb25zLWV5ZTogIlxcZWExYiI7XG4gICAgICAtLWx1bW8taWNvbnMtZXllLWRpc2FibGVkOiAiXFxlYTFjIjtcbiAgICAgIC0tbHVtby1pY29ucy1tZW51OiAiXFxlYTFkIjtcbiAgICAgIC0tbHVtby1pY29ucy1taW51czogIlxcZWExZSI7XG4gICAgICAtLWx1bW8taWNvbnMtb3JkZXJlZC1saXN0OiAiXFxlYTFmIjtcbiAgICAgIC0tbHVtby1pY29ucy1waG9uZTogIlxcZWEyMCI7XG4gICAgICAtLWx1bW8taWNvbnMtcGhvdG86ICJcXGVhMjEiO1xuICAgICAgLS1sdW1vLWljb25zLXBsYXk6ICJcXGVhMjIiO1xuICAgICAgLS1sdW1vLWljb25zLXBsdXM6ICJcXGVhMjMiO1xuICAgICAgLS1sdW1vLWljb25zLXJlZG86ICJcXGVhMjQiO1xuICAgICAgLS1sdW1vLWljb25zLXJlbG9hZDogIlxcZWEyNSI7XG4gICAgICAtLWx1bW8taWNvbnMtc2VhcmNoOiAiXFxlYTI2IjtcbiAgICAgIC0tbHVtby1pY29ucy11bmRvOiAiXFxlYTI3IjtcbiAgICAgIC0tbHVtby1pY29ucy11bm9yZGVyZWQtbGlzdDogIlxcZWEyOCI7XG4gICAgICAtLWx1bW8taWNvbnMtdXBsb2FkOiAiXFxlYTI5IjtcbiAgICAgIC0tbHVtby1pY29ucy11c2VyOiAiXFxlYTJhIjtcbiAgICB9XG4gIDwvc3R5bGU+XG4nLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoUVh0LmNvbnRlbnQpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLwpjb25zdCB0JHQ9R1h0YAogIDpob3N0IHsKICAgIC0tbHVtby1zaXplLXhzOiAxLjYyNXJlbTsKICAgIC0tbHVtby1zaXplLXM6IDEuODc1cmVtOwogICAgLS1sdW1vLXNpemUtbTogMi4yNXJlbTsKICAgIC0tbHVtby1zaXplLWw6IDIuNzVyZW07CiAgICAtLWx1bW8tc2l6ZS14bDogMy41cmVtOwoKICAgIC8qIEljb25zICovCiAgICAtLWx1bW8taWNvbi1zaXplLXM6IDEuMjVlbTsKICAgIC0tbHVtby1pY29uLXNpemUtbTogMS41ZW07CiAgICAtLWx1bW8taWNvbi1zaXplLWw6IDIuMjVlbTsKICAgIC8qIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAqLwogICAgLS1sdW1vLWljb24tc2l6ZTogdmFyKC0tbHVtby1pY29uLXNpemUtbSk7CiAgfQpgLGUkdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO2UkdC5pbm5lckhUTUw9YDxzdHlsZT4ke3QkdC50b1N0cmluZygpLnJlcGxhY2UoIjpob3N0IiwiaHRtbCIpfTwvc3R5bGU+YCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGUkdC5jb250ZW50KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgbiR0PUdYdGAKICA6aG9zdCB7CiAgICAvKiBTcXVhcmUgKi8KICAgIC0tbHVtby1zcGFjZS14czogMC4yNXJlbTsKICAgIC0tbHVtby1zcGFjZS1zOiAwLjVyZW07CiAgICAtLWx1bW8tc3BhY2UtbTogMXJlbTsKICAgIC0tbHVtby1zcGFjZS1sOiAxLjVyZW07CiAgICAtLWx1bW8tc3BhY2UteGw6IDIuNXJlbTsKCiAgICAvKiBXaWRlICovCiAgICAtLWx1bW8tc3BhY2Utd2lkZS14czogY2FsYyh2YXIoLS1sdW1vLXNwYWNlLXhzKSAvIDIpIHZhcigtLWx1bW8tc3BhY2UteHMpOwogICAgLS1sdW1vLXNwYWNlLXdpZGUtczogY2FsYyh2YXIoLS1sdW1vLXNwYWNlLXMpIC8gMikgdmFyKC0tbHVtby1zcGFjZS1zKTsKICAgIC0tbHVtby1zcGFjZS13aWRlLW06IGNhbGModmFyKC0tbHVtby1zcGFjZS1tKSAvIDIpIHZhcigtLWx1bW8tc3BhY2UtbSk7CiAgICAtLWx1bW8tc3BhY2Utd2lkZS1sOiBjYWxjKHZhcigtLWx1bW8tc3BhY2UtbCkgLyAyKSB2YXIoLS1sdW1vLXNwYWNlLWwpOwogICAgLS1sdW1vLXNwYWNlLXdpZGUteGw6IGNhbGModmFyKC0tbHVtby1zcGFjZS14bCkgLyAyKSB2YXIoLS1sdW1vLXNwYWNlLXhsKTsKCiAgICAvKiBUYWxsICovCiAgICAtLWx1bW8tc3BhY2UtdGFsbC14czogdmFyKC0tbHVtby1zcGFjZS14cykgY2FsYyh2YXIoLS1sdW1vLXNwYWNlLXhzKSAvIDIpOwogICAgLS1sdW1vLXNwYWNlLXRhbGwtczogdmFyKC0tbHVtby1zcGFjZS1zKSBjYWxjKHZhcigtLWx1bW8tc3BhY2UtcykgLyAyKTsKICAgIC0tbHVtby1zcGFjZS10YWxsLW06IHZhcigtLWx1bW8tc3BhY2UtbSkgY2FsYyh2YXIoLS1sdW1vLXNwYWNlLW0pIC8gMik7CiAgICAtLWx1bW8tc3BhY2UtdGFsbC1sOiB2YXIoLS1sdW1vLXNwYWNlLWwpIGNhbGModmFyKC0tbHVtby1zcGFjZS1sKSAvIDIpOwogICAgLS1sdW1vLXNwYWNlLXRhbGwteGw6IHZhcigtLWx1bW8tc3BhY2UteGwpIGNhbGModmFyKC0tbHVtby1zcGFjZS14bCkgLyAyKTsKICB9CmAsaSR0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7aSR0LmlubmVySFRNTD1gPHN0eWxlPiR7biR0LnRvU3RyaW5nKCkucmVwbGFjZSgiOmhvc3QiLCJodG1sIil9PC9zdHlsZT5gLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoaSR0LmNvbnRlbnQpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLwpjb25zdCByJHQ9R1h0YAogIDpob3N0IHsKICAgIC8qIEJvcmRlciByYWRpdXMgKi8KICAgIC0tbHVtby1ib3JkZXItcmFkaXVzLXM6IDAuMjVlbTsgLyogQ2hlY2tib3gsIGJhZGdlLCBkYXRlLXBpY2tlciB5ZWFyIGluZGljYXRvciwgZXRjICovCiAgICAtLWx1bW8tYm9yZGVyLXJhZGl1cy1tOiB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMsIDAuMjVlbSk7IC8qIEJ1dHRvbiwgdGV4dCBmaWVsZCwgbWVudSBvdmVybGF5LCBldGMgKi8KICAgIC0tbHVtby1ib3JkZXItcmFkaXVzLWw6IDAuNWVtOyAvKiBEaWFsb2csIG5vdGlmaWNhdGlvbiwgZXRjICovCiAgICAtLWx1bW8tYm9yZGVyLXJhZGl1czogMC4yNWVtOyAvKiBEZXByZWNhdGVkICovCgogICAgLyogU2hhZG93ICovCiAgICAtLWx1bW8tYm94LXNoYWRvdy14czogMCAxcHggNHB4IC0xcHggdmFyKC0tbHVtby1zaGFkZS01MHBjdCk7CiAgICAtLWx1bW8tYm94LXNoYWRvdy1zOiAwIDJweCA0cHggLTFweCB2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KSwgMCAzcHggMTJweCAtMXB4IHZhcigtLWx1bW8tc2hhZGUtMzBwY3QpOwogICAgLS1sdW1vLWJveC1zaGFkb3ctbTogMCAycHggNnB4IC0xcHggdmFyKC0tbHVtby1zaGFkZS0yMHBjdCksIDAgOHB4IDI0cHggLTRweCB2YXIoLS1sdW1vLXNoYWRlLTQwcGN0KTsKICAgIC0tbHVtby1ib3gtc2hhZG93LWw6IDAgM3B4IDE4cHggLTJweCB2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KSwgMCAxMnB4IDQ4cHggLTZweCB2YXIoLS1sdW1vLXNoYWRlLTQwcGN0KTsKICAgIC0tbHVtby1ib3gtc2hhZG93LXhsOiAwIDRweCAyNHB4IC0zcHggdmFyKC0tbHVtby1zaGFkZS0yMHBjdCksIDAgMThweCA2NHB4IC04cHggdmFyKC0tbHVtby1zaGFkZS00MHBjdCk7CgogICAgLyogQ2xpY2thYmxlIGVsZW1lbnQgY3Vyc29yICovCiAgICAtLWx1bW8tY2xpY2thYmxlLWN1cnNvcjogZGVmYXVsdDsKICB9CmAsbyR0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7byR0LmlubmVySFRNTD1gPHN0eWxlPiR7ciR0LnRvU3RyaW5nKCkucmVwbGFjZSgiOmhvc3QiLCJodG1sIil9PC9zdHlsZT5gLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobyR0LmNvbnRlbnQpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLwpjb25zdCBhJHQ9R1h0YAogIDpob3N0IHsKICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqLwogICAgLS1sdW1vLWZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdSb2JvdG8nLCAnU2Vnb2UgVUknLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCAnQXBwbGUgQ29sb3IgRW1vamknLCAnU2Vnb2UgVUkgRW1vamknLCAnU2Vnb2UgVUkgU3ltYm9sJzsKCiAgICAvKiBGb250IHNpemVzICovCiAgICAtLWx1bW8tZm9udC1zaXplLXh4czogMC43NXJlbTsKICAgIC0tbHVtby1mb250LXNpemUteHM6IDAuODEyNXJlbTsKICAgIC0tbHVtby1mb250LXNpemUtczogMC44NzVyZW07CiAgICAtLWx1bW8tZm9udC1zaXplLW06IDFyZW07CiAgICAtLWx1bW8tZm9udC1zaXplLWw6IDEuMTI1cmVtOwogICAgLS1sdW1vLWZvbnQtc2l6ZS14bDogMS4zNzVyZW07CiAgICAtLWx1bW8tZm9udC1zaXplLXh4bDogMS43NXJlbTsKICAgIC0tbHVtby1mb250LXNpemUteHh4bDogMi41cmVtOwoKICAgIC8qIExpbmUgaGVpZ2h0cyAqLwogICAgLS1sdW1vLWxpbmUtaGVpZ2h0LXhzOiAxLjI1OwogICAgLS1sdW1vLWxpbmUtaGVpZ2h0LXM6IDEuMzc1OwogICAgLS1sdW1vLWxpbmUtaGVpZ2h0LW06IDEuNjI1OwogIH0KYCxzJHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtzJHQuaW5uZXJIVE1MPWA8c3R5bGU+JHthJHQudG9TdHJpbmcoKS5yZXBsYWNlKCI6aG9zdCIsImh0bWwiKX08L3N0eWxlPmAsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzJHQuY29udGVudCksJFh0KCIiLEdYdGAKICBodG1sIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1sdW1vLWZvbnQtZmFtaWx5KTsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUsIHZhcigtLWx1bW8tZm9udC1zaXplLW0pKTsKICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1sdW1vLWxpbmUtaGVpZ2h0LW0pOwogICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogIH0KCiAgLyogQ2Fu4oCZdCBjb21iaW5lIHdpdGggdGhlIGFib3ZlIHNlbGVjdG9yIGJlY2F1c2UgdGhhdCBkb2VzbuKAmXQgd29yayBpbiBicm93c2VycyB3aXRob3V0IG5hdGl2ZSBzaGFkb3cgZG9tICovCiAgOmhvc3QgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWx1bW8tZm9udC1mYW1pbHkpOwogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZSwgdmFyKC0tbHVtby1mb250LXNpemUtbSkpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLWx1bW8tbGluZS1oZWlnaHQtbSk7CiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAgfQoKICBzbWFsbCwKICBbdGhlbWV+PSdmb250LXNpemUtcyddIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUtcyk7CiAgICBsaW5lLWhlaWdodDogdmFyKC0tbHVtby1saW5lLWhlaWdodC1zKTsKICB9CgogIFt0aGVtZX49J2ZvbnQtc2l6ZS14cyddIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUteHMpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLWx1bW8tbGluZS1oZWlnaHQteHMpOwogIH0KCiAgaDEsCiAgaDIsCiAgaDMsCiAgaDQsCiAgaDUsCiAgaDYgewogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1sdW1vLWxpbmUtaGVpZ2h0LXhzKTsKICAgIG1hcmdpbi10b3A6IDEuMjVlbTsKICB9CgogIGgxIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUteHh4bCk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjc1ZW07CiAgfQoKICBoMiB7CiAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLXh4bCk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKICB9CgogIGgzIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUteGwpOwogICAgbWFyZ2luLWJvdHRvbTogMC41ZW07CiAgfQoKICBoNCB7CiAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLWwpOwogICAgbWFyZ2luLWJvdHRvbTogMC41ZW07CiAgfQoKICBoNSB7CiAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLW0pOwogICAgbWFyZ2luLWJvdHRvbTogMC4yNWVtOwogIH0KCiAgaDYgewogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS14cyk7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07CiAgfQoKICBwLAogIGJsb2NrcXVvdGUgewogICAgbWFyZ2luLXRvcDogMC41ZW07CiAgICBtYXJnaW4tYm90dG9tOiAwLjc1ZW07CiAgfQoKICBhIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB9CgogIGE6aG92ZXIgewogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgfQoKICBociB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICBoZWlnaHQ6IDFweDsKICAgIGJvcmRlcjogMDsKICAgIHBhZGRpbmc6IDA7CiAgICBtYXJnaW46IHZhcigtLWx1bW8tc3BhY2UtcykgY2FsYyh2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtbSkgLyAyKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMTBwY3QpOwogIH0KCiAgYmxvY2txdW90ZSB7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWx1bW8tY29udHJhc3QtMzBwY3QpOwogIH0KCiAgYiwKICBzdHJvbmcgewogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC8qIFJUTCBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgYmxvY2txdW90ZVtkaXI9J3J0bCddIHsKICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CiAgfQpgLHttb2R1bGVJZDoibHVtby10eXBvZ3JhcGh5In0pLCRYdCgidmFhZGluLWNoZWNrYm94IixHWHRgCiAgICA6aG9zdCB7CiAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgW3BhcnQ9J2xhYmVsJ106bm90KFtlbXB0eV0pIHsKICAgICAgbWFyZ2luOiAwLjE4NzVlbSAwLjg3NWVtIDAuMTg3NWVtIDAuMzc1ZW07CiAgICB9CgogICAgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICB3aWR0aDogY2FsYygxZW0gKyAycHgpOwogICAgICBoZWlnaHQ6IGNhbGMoMWVtICsgMnB4KTsKICAgICAgbWFyZ2luOiAwLjE4NzVlbTsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtcyk7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMjBwY3QpOwogICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC4xMiwgMC4zMiwgMC41NCwgMiksIGJhY2tncm91bmQtY29sb3IgMC4xNXM7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgfQoKICAgIDpob3N0KFtpbmRldGVybWluYXRlXSkgW3BhcnQ9J2NoZWNrYm94J10sCiAgICA6aG9zdChbY2hlY2tlZF0pIFtwYXJ0PSdjaGVja2JveCddIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yKTsKICAgIH0KCiAgICAvKiBOZWVkZWQgdG8gYWxpZ24gdGhlIGNoZWNrYm94IG5pY2VseSBvbiB0aGUgYmFzZWxpbmUgKi8KICAgIFtwYXJ0PSdjaGVja2JveCddOjpiZWZvcmUgewogICAgICBjb250ZW50OiAnXFwyMDAzJzsKICAgIH0KCiAgICAvKiBDaGVja21hcmsgKi8KICAgIFtwYXJ0PSdjaGVja2JveCddOjphZnRlciB7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIHdpZHRoOiAwOwogICAgICBoZWlnaHQ6IDA7CiAgICAgIGJvcmRlcjogMCBzb2xpZCB2YXIoLS1sdW1vLXByaW1hcnktY29udHJhc3QtY29sb3IpOwogICAgICBib3JkZXItd2lkdGg6IDAuMTg3NWVtIDAgMCAwLjE4NzVlbTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMC44MTI1ZW07CiAgICAgIGxlZnQ6IDAuNWVtOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNTUpIHJvdGF0ZSgtMTM1ZGVnKTsKICAgICAgb3BhY2l0eTogMDsKICAgIH0KCiAgICA6aG9zdChbY2hlY2tlZF0pIFtwYXJ0PSdjaGVja2JveCddOjphZnRlciB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIHdpZHRoOiAwLjYyNWVtOwogICAgICBoZWlnaHQ6IDEuMDYyNWVtOwogICAgfQoKICAgIC8qIEluZGV0ZXJtaW5hdGUgY2hlY2ttYXJrICovCiAgICA6aG9zdChbaW5kZXRlcm1pbmF0ZV0pIFtwYXJ0PSdjaGVja2JveCddOjphZnRlciB7CiAgICAgIHRyYW5zZm9ybTogbm9uZTsKICAgICAgb3BhY2l0eTogMTsKICAgICAgdG9wOiA0NSU7CiAgICAgIGhlaWdodDogMTAlOwogICAgICBsZWZ0OiAyMiU7CiAgICAgIHJpZ2h0OiAyMiU7CiAgICAgIHdpZHRoOiBhdXRvOwogICAgICBib3JkZXI6IDA7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tcHJpbWFyeS1jb250cmFzdC1jb2xvcik7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXM7CiAgICB9CgogICAgLyogRm9jdXMgcmluZyAqLwogICAgOmhvc3QoW2ZvY3VzLXJpbmddKSBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS1sdW1vLXByaW1hcnktY29sb3ItNTBwY3QpOwogICAgfQoKICAgIC8qIERpc2FibGVkICovCiAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBjb2xvcjogdmFyKC0tbHVtby1kaXNhYmxlZC10ZXh0LWNvbG9yKTsKICAgIH0KCiAgICA6aG9zdChbZGlzYWJsZWRdKSBbcGFydD0nbGFiZWwnXSA6OnNsb3R0ZWQoKikgewogICAgICBjb2xvcjogaW5oZXJpdDsKICAgIH0KCiAgICA6aG9zdChbZGlzYWJsZWRdKSBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMTBwY3QpOwogICAgfQoKICAgIDpob3N0KFtkaXNhYmxlZF0pIFtwYXJ0PSdjaGVja2JveCddOjphZnRlciB7CiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CiAgICB9CgogICAgOmhvc3QoW2luZGV0ZXJtaW5hdGVdW2Rpc2FibGVkXSkgW3BhcnQ9J2NoZWNrYm94J106OmFmdGVyIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CiAgICB9CgogICAgLyogUlRMIHNwZWNpZmljIHN0eWxlcyAqLwogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtwYXJ0PSdsYWJlbCddOm5vdChbZW1wdHldKSB7CiAgICAgIG1hcmdpbjogMC4xODc1ZW0gMC4zNzVlbSAwLjE4NzVlbSAwLjg3NWVtOwogICAgfQoKICAgIC8qIFRyYW5zaXRpb24gdGhlIGNoZWNrbWFyayBpZiBhY3RpdmF0ZWQgd2l0aCB0aGUgbW91c2UgKGRpc2FibGVkIGZvciBncmlkIHNlbGVjdC1hbGwgdGhpcyB3YXkpICovCiAgICA6aG9zdCg6aG92ZXIpIFtwYXJ0PSdjaGVja2JveCddOjphZnRlciB7CiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMXMsIGhlaWdodCAwLjI1czsKICAgIH0KCiAgICAvKiBVc2VkIGZvciBhY3RpdmF0aW9uICJoYWxvIiAqLwogICAgW3BhcnQ9J2NoZWNrYm94J106OmJlZm9yZSB7CiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNCk7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjFzLCBvcGFjaXR5IDAuOHM7CiAgICB9CgogICAgLyogSG92ZXIgKi8KICAgIDpob3N0KDpub3QoW2NoZWNrZWRdKTpub3QoW2luZGV0ZXJtaW5hdGVdKTpub3QoW2Rpc2FibGVkXSk6aG92ZXIpIFtwYXJ0PSdjaGVja2JveCddIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CiAgICB9CgogICAgLyogRGlzYWJsZSBob3ZlciBmb3IgdG91Y2ggZGV2aWNlcyAqLwogICAgQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHsKICAgICAgOmhvc3QoOm5vdChbY2hlY2tlZF0pOm5vdChbaW5kZXRlcm1pbmF0ZV0pOm5vdChbZGlzYWJsZWRdKTpob3ZlcikgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMjBwY3QpOwogICAgICB9CiAgICB9CgogICAgLyogQWN0aXZlICovCiAgICA6aG9zdChbYWN0aXZlXSkgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDVzOwogICAgfQoKICAgIDpob3N0KFthY3RpdmVdW2NoZWNrZWRdKSBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgIH0KCiAgICA6aG9zdChbYWN0aXZlXTpub3QoW2NoZWNrZWRdKSkgW3BhcnQ9J2NoZWNrYm94J106OmJlZm9yZSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDFzLCAwLjAxczsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgb3BhY2l0eTogMC40OwogICAgfQogIGAse21vZHVsZUlkOiJsdW1vLWNoZWNrYm94In0pO2NvbnN0IGwkdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3RoZW1lOnt0eXBlOlN0cmluZyxyZWFkT25seTohMH19fWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbil7c3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuKSwidGhlbWUiPT09dCYmdGhpcy5fc2V0VGhlbWUobil9fSxjJHQ9dD0+Y2xhc3MgZXh0ZW5kcyhsJHQodCkpe3N0YXRpYyBmaW5hbGl6ZSgpe3N1cGVyLmZpbmFsaXplKCk7Y29uc3QgdD10aGlzLnByb3RvdHlwZS5fdGVtcGxhdGUsZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcy5wcm90b3R5cGUpLl90ZW1wbGF0ZTtlJiZBcnJheS5mcm9tKGUuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZVtpbmNsdWRlXSIpKS5mb3JFYWNoKChlPT57dGhpcy5faW5jbHVkZVN0eWxlKGUuZ2V0QXR0cmlidXRlKCJpbmNsdWRlIiksdCl9KSksdGhpcy5faW5jbHVkZU1hdGNoaW5nVGhlbWVzKHQpfXN0YXRpYyBfaW5jbHVkZU1hdGNoaW5nVGhlbWVzKHQpe2NvbnN0IGU9Qi5wcm90b3R5cGUubW9kdWxlcztsZXQgbj0hMTtjb25zdCBpPXRoaXMuaXMrIi1kZWZhdWx0LXRoZW1lIjtPYmplY3Qua2V5cyhlKS5zb3J0KCgodCxlKT0+e2NvbnN0IG49MD09PXQuaW5kZXhPZigidmFhZGluLSIpLGk9MD09PWUuaW5kZXhPZigidmFhZGluLSIpLHI9WyJsdW1vLSIsIm1hdGVyaWFsLSJdLG89ci5maWx0ZXIoKGU9PjA9PT10LmluZGV4T2YoZSkpKS5sZW5ndGg+MCxhPXIuZmlsdGVyKCh0PT4wPT09ZS5pbmRleE9mKHQpKSkubGVuZ3RoPjA7cmV0dXJuIG4hPT1pP24/LTE6MTpvIT09YT9vPy0xOjE6MH0pKS5mb3JFYWNoKChyPT57aWYociE9PWkpe2NvbnN0IGk9ZVtyXS5nZXRBdHRyaWJ1dGUoInRoZW1lLWZvciIpO2kmJmkuc3BsaXQoIiAiKS5mb3JFYWNoKChlPT57bmV3IFJlZ0V4cCgiXiIrZS5zcGxpdCgiKiIpLmpvaW4oIi4qIikrIiQiKS50ZXN0KHRoaXMuaXMpJiYobj0hMCx0aGlzLl9pbmNsdWRlU3R5bGUocix0KSl9KSl9fSkpLCFuJiZlW2ldJiZ0aGlzLl9pbmNsdWRlU3R5bGUoaSx0KX1zdGF0aWMgX2luY2x1ZGVTdHlsZSh0LGUpe2lmKGUmJiFlLmNvbnRlbnQucXVlcnlTZWxlY3Rvcihgc3R5bGVbaW5jbHVkZT0iJHt0fSJdYCkpe2NvbnN0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtuLnNldEF0dHJpYnV0ZSgiaW5jbHVkZSIsdCksZS5jb250ZW50LmFwcGVuZENoaWxkKG4pfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovO2xldCB1JHQ9ITE7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCgoKT0+e3UkdD0hMH0pLHtjYXB0dXJlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsKCgpPT57dSR0PSExfSkse2NhcHR1cmU6ITB9KTtjb25zdCBoJHQ9dD0+Y2xhc3MgZXh0ZW5kcygodD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnt0YWJpbmRleDp7dHlwZTpOdW1iZXIsdmFsdWU6MCxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il90YWJpbmRleENoYW5nZWQifX19fSkodCkpe3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnthdXRvZm9jdXM6e3R5cGU6Qm9vbGVhbn0sX3ByZXZpb3VzVGFiSW5kZXg6e3R5cGU6TnVtYmVyfSxkaXNhYmxlZDp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfZGlzYWJsZWRDaGFuZ2VkIixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LF9pc1NoaWZ0VGFiYmluZzp7dHlwZTpCb29sZWFufX19cmVhZHkoKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCh0PT57dC5jb21wb3NlZFBhdGgoKVswXT09PXRoaXM/dGhpcy5jb250YWlucyh0LnJlbGF0ZWRUYXJnZXQpfHx0aGlzLl9mb2N1cygpOi0xPT09dC5jb21wb3NlZFBhdGgoKS5pbmRleE9mKHRoaXMuZm9jdXNFbGVtZW50KXx8dGhpcy5kaXNhYmxlZHx8dGhpcy5fc2V0Rm9jdXNlZCghMCl9KSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsKCgpPT50aGlzLl9zZXRGb2N1c2VkKCExKSkpLHN1cGVyLnJlYWR5KCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwodD0+eyF0LmRlZmF1bHRQcmV2ZW50ZWQmJjk9PT10LmtleUNvZGUmJnQuc2hpZnRLZXkmJih0aGlzLl9pc1NoaWZ0VGFiYmluZz0hMCxIVE1MRWxlbWVudC5wcm90b3R5cGUuZm9jdXMuYXBwbHkodGhpcyksdGhpcy5fc2V0Rm9jdXNlZCghMSksc2V0VGltZW91dCgoKCk9PnRoaXMuX2lzU2hpZnRUYWJiaW5nPSExKSwwKSl9KSksdGhpcy5hdXRvZm9jdXMmJiF0aGlzLmRpc2FibGVkJiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuX2ZvY3VzKCksdGhpcy5fc2V0Rm9jdXNlZCghMCksdGhpcy5zZXRBdHRyaWJ1dGUoImZvY3VzLXJpbmciLCIiKX0pKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5oYXNBdHRyaWJ1dGUoImZvY3VzZWQiKSYmdGhpcy5fc2V0Rm9jdXNlZCghMSl9X3NldEZvY3VzZWQodCl7dD90aGlzLnNldEF0dHJpYnV0ZSgiZm9jdXNlZCIsIiIpOnRoaXMucmVtb3ZlQXR0cmlidXRlKCJmb2N1c2VkIiksdCYmdSR0P3RoaXMuc2V0QXR0cmlidXRlKCJmb2N1cy1yaW5nIiwiIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImZvY3VzLXJpbmciKX1nZXQgZm9jdXNFbGVtZW50KCl7cmV0dXJuIHdpbmRvdy5jb25zb2xlLndhcm4oYFBsZWFzZSBpbXBsZW1lbnQgdGhlICdmb2N1c0VsZW1lbnQnIHByb3BlcnR5IGluIDwke3RoaXMubG9jYWxOYW1lfT5gKSx0aGlzfV9mb2N1cygpe3RoaXMuZm9jdXNFbGVtZW50JiYhdGhpcy5faXNTaGlmdFRhYmJpbmcmJih0aGlzLmZvY3VzRWxlbWVudC5mb2N1cygpLHRoaXMuX3NldEZvY3VzZWQoITApKX1mb2N1cygpe3RoaXMuZm9jdXNFbGVtZW50JiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuZm9jdXNFbGVtZW50LmZvY3VzKCksdGhpcy5fc2V0Rm9jdXNlZCghMCkpfWJsdXIoKXt0aGlzLmZvY3VzRWxlbWVudCYmKHRoaXMuZm9jdXNFbGVtZW50LmJsdXIoKSx0aGlzLl9zZXRGb2N1c2VkKCExKSl9X2Rpc2FibGVkQ2hhbmdlZCh0KXt0aGlzLmZvY3VzRWxlbWVudC5kaXNhYmxlZD10LHQ/KHRoaXMuYmx1cigpLHRoaXMuX3ByZXZpb3VzVGFiSW5kZXg9dGhpcy50YWJpbmRleCx0aGlzLnRhYmluZGV4PS0xLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpKToodm9pZCAwIT09dGhpcy5fcHJldmlvdXNUYWJJbmRleCYmKHRoaXMudGFiaW5kZXg9dGhpcy5fcHJldmlvdXNUYWJJbmRleCksdGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiKSl9X3RhYmluZGV4Q2hhbmdlZCh0KXt2b2lkIDAhPT10JiYodGhpcy5mb2N1c0VsZW1lbnQudGFiSW5kZXg9dCksdGhpcy5kaXNhYmxlZCYmdGhpcy50YWJpbmRleCYmKC0xIT09dGhpcy50YWJpbmRleCYmKHRoaXMuX3ByZXZpb3VzVGFiSW5kZXg9dGhpcy50YWJpbmRleCksdGhpcy50YWJpbmRleD10PXZvaWQgMCl9Y2xpY2soKXt0aGlzLmRpc2FibGVkfHxzdXBlci5jbGljaygpfX0sZCR0PS9cL1wqXCpccyt2YWFkaW4tZGV2LW1vZGU6c3RhcnQoW1xzXFNdKil2YWFkaW4tZGV2LW1vZGU6ZW5kXHMrXCpcKlwvL2kscCR0PXdpbmRvdy5WYWFkaW4mJndpbmRvdy5WYWFkaW4uRmxvdyYmd2luZG93LlZhYWRpbi5GbG93LmNsaWVudHM7ZnVuY3Rpb24gZiR0KHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpcmV0dXJuO2NvbnN0IG49ZCR0LmV4ZWModC50b1N0cmluZygpKTtpZihuKXRyeXt0PW5ldyBGdW5jdGlvbihuWzFdKX1jYXRjaCh0KXtjb25zb2xlLmxvZygidmFhZGluLWRldmVsb3BtZW50LW1vZGUtZGV0ZWN0b3I6IHVuY29tbWVudEFuZFJ1bigpIGZhaWxlZCIsdCl9cmV0dXJuIHQoZSl9ZnVuY3Rpb24gbSR0KCl7fXdpbmRvdy5WYWFkaW49d2luZG93LlZhYWRpbnx8e30sdm9pZCAwPT09d2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGUmJih3aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZT0oZnVuY3Rpb24gZyR0KCl7dHJ5e3JldHVybiEhKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oInZhYWRpbi5kZXZlbG9wbWVudG1vZGUuZm9yY2UiKX0pKCl8fCEhKGZ1bmN0aW9uIGUoKXtyZXR1cm5bImxvY2FsaG9zdCIsIjEyNy4wLjAuMSJdLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT49MH0pKCkmJihwJHQ/IShmdW5jdGlvbiBuKCl7cmV0dXJuISEocCR0JiZPYmplY3Qua2V5cyhwJHQpLm1hcCgodD0+cCR0W3RdKSkuZmlsdGVyKCh0PT50LnByb2R1Y3Rpb25Nb2RlKSkubGVuZ3RoPjApfSkoKTohKGZ1bmN0aW9uIGkoKXtyZXR1cm4gZiR0KChmdW5jdGlvbiB0KCl7cmV0dXJuITB9KSl9KSgpKX1jYXRjaCh0KXtyZXR1cm4hMX19KSgpKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY2xhc3MgXyR0e3N0YXRpYyBkZXRlY3RTY3JvbGxUeXBlKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LnRleHRDb250ZW50PSJBQkNEIix0LmRpcj0icnRsIix0LnN0eWxlLmZvbnRTaXplPSIxNHB4Iix0LnN0eWxlLndpZHRoPSI0cHgiLHQuc3R5bGUuaGVpZ2h0PSIxcHgiLHQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0LnN0eWxlLnRvcD0iLTEwMDBweCIsdC5zdHlsZS5vdmVyZmxvdz0ic2Nyb2xsIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO2xldCBlPSJyZXZlcnNlIjtyZXR1cm4gdC5zY3JvbGxMZWZ0PjA/ZT0iZGVmYXVsdCI6KHQuc2Nyb2xsTGVmdD0yLHQuc2Nyb2xsTGVmdDwyJiYoZT0ibmVnYXRpdmUiKSksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KSxlfXN0YXRpYyBnZXROb3JtYWxpemVkU2Nyb2xsTGVmdCh0LGUsbil7Y29uc3R7c2Nyb2xsTGVmdDppfT1uO2lmKCJydGwiIT09ZXx8IXQpcmV0dXJuIGk7c3dpdGNoKHQpe2Nhc2UibmVnYXRpdmUiOnJldHVybiBuLnNjcm9sbFdpZHRoLW4uY2xpZW50V2lkdGgraTtjYXNlInJldmVyc2UiOnJldHVybiBuLnNjcm9sbFdpZHRoLW4uY2xpZW50V2lkdGgtaX1yZXR1cm4gaX1zdGF0aWMgc2V0Tm9ybWFsaXplZFNjcm9sbExlZnQodCxlLG4saSl7aWYoInJ0bCI9PT1lJiZ0KXN3aXRjaCh0KXtjYXNlIm5lZ2F0aXZlIjpuLnNjcm9sbExlZnQ9bi5jbGllbnRXaWR0aC1uLnNjcm9sbFdpZHRoK2k7YnJlYWs7Y2FzZSJyZXZlcnNlIjpuLnNjcm9sbExlZnQ9bi5zY3JvbGxXaWR0aC1uLmNsaWVudFdpZHRoLWk7YnJlYWs7ZGVmYXVsdDpuLnNjcm9sbExlZnQ9aX1lbHNlIG4uc2Nyb2xsTGVmdD1pfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi9jb25zdCB5JHQ9W107bGV0IHYkdDtuZXcgTXV0YXRpb25PYnNlcnZlcigoZnVuY3Rpb24oKXtjb25zdCB0PXgkdCgpO3kkdC5mb3JFYWNoKChlPT57YiR0KGUsdCl9KSl9KSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiZGlyIl19KTtjb25zdCBiJHQ9ZnVuY3Rpb24odCxlLG49dC5nZXRBdHRyaWJ1dGUoImRpciIpKXtlP3Quc2V0QXR0cmlidXRlKCJkaXIiLGUpOm51bGwhPW4mJnQucmVtb3ZlQXR0cmlidXRlKCJkaXIiKX0seCR0PWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRpciIpfSx3JHQ9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntkaXI6e3R5cGU6U3RyaW5nLHZhbHVlOiIiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH19fXN0YXRpYyBmaW5hbGl6ZSgpe3N1cGVyLmZpbmFsaXplKCksdiR0fHwodiR0PV8kdC5kZXRlY3RTY3JvbGxUeXBlKCkpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhc0F0dHJpYnV0ZSgiZGlyIil8fCh0aGlzLl9fc3Vic2NyaWJlKCksYiR0KHRoaXMseCR0KCksbnVsbCkpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbil7aWYoc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuKSwiZGlyIiE9PXQpcmV0dXJuO2NvbnN0IGk9eCR0KCkscj1uPT09aSYmLTE9PT15JHQuaW5kZXhPZih0aGlzKSxvPSFuJiZlJiYtMT09PXkkdC5pbmRleE9mKHRoaXMpLGE9biE9PWkmJmU9PT1pO3J8fG8/KHRoaXMuX19zdWJzY3JpYmUoKSxiJHQodGhpcyxpLG4pKTphJiZ0aGlzLl9fc3Vic2NyaWJlKCExKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fX3N1YnNjcmliZSghMSksdGhpcy5yZW1vdmVBdHRyaWJ1dGUoImRpciIpfV92YWx1ZVRvTm9kZUF0dHJpYnV0ZSh0LGUsbil7KCJkaXIiIT09bnx8IiIhPT1lfHx0Lmhhc0F0dHJpYnV0ZSgiZGlyIikpJiZzdXBlci5fdmFsdWVUb05vZGVBdHRyaWJ1dGUodCxlLG4pfV9hdHRyaWJ1dGVUb1Byb3BlcnR5KHQsZSxuKXsiZGlyIiE9PXR8fGU/c3VwZXIuX2F0dHJpYnV0ZVRvUHJvcGVydHkodCxlLG4pOnRoaXMuZGlyPSIifV9fc3Vic2NyaWJlKHQ9ITApe3Q/LTE9PT15JHQuaW5kZXhPZih0aGlzKSYmeSR0LnB1c2godGhpcyk6eSR0LmluZGV4T2YodGhpcyk+LTEmJnkkdC5zcGxpY2UoeSR0LmluZGV4T2YodGhpcyksMSl9X19nZXROb3JtYWxpemVkU2Nyb2xsTGVmdCh0KXtyZXR1cm4gXyR0LmdldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHYkdCx0aGlzLmdldEF0dHJpYnV0ZSgiZGlyIil8fCJsdHIiLHQpfV9fc2V0Tm9ybWFsaXplZFNjcm9sbExlZnQodCxlKXtyZXR1cm4gXyR0LnNldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHYkdCx0aGlzLmdldEF0dHJpYnV0ZSgiZGlyIil8fCJsdHIiLHQsZSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLztsZXQgUyR0O3dpbmRvdy5WYWFkaW49d2luZG93LlZhYWRpbnx8e30sd2luZG93LlZhYWRpbi5yZWdpc3RyYXRpb25zPXdpbmRvdy5WYWFkaW4ucmVnaXN0cmF0aW9uc3x8W10sd2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGVDYWxsYmFjaz13aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZUNhbGxiYWNrfHx7fSx3aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZUNhbGxiYWNrWyJ2YWFkaW4tdXNhZ2Utc3RhdGlzdGljcyJdPWZ1bmN0aW9uKCl7dmFyIHQ7dD1tJHQsd2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGUmJmYkdCh0LHZvaWQgMCl9O2NvbnN0IE0kdD1uZXcgU2V0LEUkdD10PT5jbGFzcyBleHRlbmRzKHckdCh0KSl7c3RhdGljIGZpbmFsaXplKCl7c3VwZXIuZmluYWxpemUoKTtjb25zdHtpczp0fT10aGlzO3QmJiFNJHQuaGFzKHQpJiYod2luZG93LlZhYWRpbi5yZWdpc3RyYXRpb25zLnB1c2godGhpcyksTSR0LmFkZCh0KSx3aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZUNhbGxiYWNrJiYoUyR0PVRuLmRlYm91bmNlKFMkdCx5dCwoKCk9Pnt3aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZUNhbGxiYWNrWyJ2YWFkaW4tdXNhZ2Utc3RhdGlzdGljcyJdKCl9KSksQW4oUyR0KSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxudWxsPT09ZG9jdW1lbnQuZG9jdHlwZSYmY29uc29sZS53YXJuKCdWYWFkaW4gY29tcG9uZW50cyByZXF1aXJlIHRoZSAic3RhbmRhcmRzIG1vZGUiIGRlY2xhcmF0aW9uLiBQbGVhc2UgYWRkIDwhRE9DVFlQRSBodG1sPiB0byB0aGUgSFRNTCBkb2N1bWVudC4nKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovO2NsYXNzIFQkdCBleHRlbmRzKEUkdChoJHQoYyR0KHBpKHllKSkpKSl7c3RhdGljIGdldCB0ZW1wbGF0ZSgpe3JldHVybiBfZWAKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgfQoKICAgICAgICBsYWJlbCB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBmbGV4OiBub25lOwogICAgICAgIH0KCiAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICBjdXJzb3I6IGluaGVyaXQ7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxsYWJlbD4KICAgICAgICA8c3BhbiBwYXJ0PSJjaGVja2JveCI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgIGNoZWNrZWQ9Int7Y2hlY2tlZDo6Y2hhbmdlfX0iCiAgICAgICAgICAgIGRpc2FibGVkJD0iW1tkaXNhYmxlZF1dIgogICAgICAgICAgICBpbmRldGVybWluYXRlPSJ7e2luZGV0ZXJtaW5hdGU6OmNoYW5nZX19IgogICAgICAgICAgICByb2xlPSJwcmVzZW50YXRpb24iCiAgICAgICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICAgIC8+CiAgICAgICAgPC9zcGFuPgoKICAgICAgICA8c3BhbiBwYXJ0PSJsYWJlbCI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2xhYmVsPgogICAgYH1zdGF0aWMgZ2V0IGlzKCl7cmV0dXJuInZhYWRpbi1jaGVja2JveCJ9c3RhdGljIGdldCB2ZXJzaW9uKCl7cmV0dXJuIjIwLjAuMiJ9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2NoZWNrZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITAsb2JzZXJ2ZXI6Il9jaGVja2VkQ2hhbmdlZCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxpbmRldGVybWluYXRlOnt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwLG9ic2VydmVyOiJfaW5kZXRlcm1pbmF0ZUNoYW5nZWQiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx2YWx1ZTohMX0sdmFsdWU6e3R5cGU6U3RyaW5nLHZhbHVlOiJvbiJ9LF9uYXRpdmVDaGVja2JveDp7dHlwZTpPYmplY3R9fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5jaGVja2VkP3RoaXMuX3N0b3JlZE5hbWU6IiJ9c2V0IG5hbWUodCl7dGhpcy5fc3RvcmVkTmFtZT10fXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsImNoZWNrYm94IiksdGhpcy5fbmF0aXZlQ2hlY2tib3g9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il0nKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVDbGljay5iaW5kKHRoaXMpKSx0aGlzLl9hZGRBY3RpdmVMaXN0ZW5lcnMoKTtjb25zdCB0PXRoaXMuZ2V0QXR0cmlidXRlKCJuYW1lIik7dCYmKHRoaXMubmFtZT10KSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignW3BhcnR+PSJsYWJlbCJdJykucXVlcnlTZWxlY3Rvcigic2xvdCIpLmFkZEV2ZW50TGlzdGVuZXIoInNsb3RjaGFuZ2UiLHRoaXMuX3VwZGF0ZUxhYmVsQXR0cmlidXRlLmJpbmQodGhpcykpLHRoaXMuX3VwZGF0ZUxhYmVsQXR0cmlidXRlKCl9X3VwZGF0ZUxhYmVsQXR0cmlidXRlKCl7Y29uc3QgdD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignW3BhcnR+PSJsYWJlbCJdJyksZT10LmZpcnN0RWxlbWVudENoaWxkLmFzc2lnbmVkTm9kZXMoKTt0aGlzLl9pc0Fzc2lnbmVkTm9kZXNFbXB0eShlKT90LnNldEF0dHJpYnV0ZSgiZW1wdHkiLCIiKTp0LnJlbW92ZUF0dHJpYnV0ZSgiZW1wdHkiKX1faXNBc3NpZ25lZE5vZGVzRW1wdHkodCl7cmV0dXJuIDA9PT10Lmxlbmd0aHx8MT09dC5sZW5ndGgmJnRbMF0ubm9kZVR5cGU9PU5vZGUuVEVYVF9OT0RFJiYiIj09PXRbMF0udGV4dENvbnRlbnQudHJpbSgpfV9jaGVja2VkQ2hhbmdlZCh0KXt0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1jaGVja2VkIix0aGlzLmluZGV0ZXJtaW5hdGU/Im1peGVkIjpCb29sZWFuKHQpKX1faW5kZXRlcm1pbmF0ZUNoYW5nZWQodCl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsdD8ibWl4ZWQiOnRoaXMuY2hlY2tlZCl9X2FkZEFjdGl2ZUxpc3RlbmVycygpe3RoaXMuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodGhpcywiZG93biIsKHQ9Pnt0aGlzLl9faW50ZXJhY3Rpb25zQWxsb3dlZCh0KSYmdGhpcy5zZXRBdHRyaWJ1dGUoImFjdGl2ZSIsIiIpfSkpLHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodGhpcywidXAiLCgoKT0+dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFjdGl2ZSIpKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwodD0+e3RoaXMuX19pbnRlcmFjdGlvbnNBbGxvd2VkKHQpJiYzMj09PXQua2V5Q29kZSYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLnNldEF0dHJpYnV0ZSgiYWN0aXZlIiwiIikpfSkpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCh0PT57dGhpcy5fX2ludGVyYWN0aW9uc0FsbG93ZWQodCkmJjMyPT09dC5rZXlDb2RlJiYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX3RvZ2dsZUNoZWNrZWQoKSx0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYWN0aXZlIiksdGhpcy5pbmRldGVybWluYXRlJiYodGhpcy5pbmRldGVybWluYXRlPSExKSl9KSl9Z2V0IGZvY3VzRWxlbWVudCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKX1fX2ludGVyYWN0aW9uc0FsbG93ZWQodCl7cmV0dXJuIXRoaXMuZGlzYWJsZWQmJiJhIiE9PXQudGFyZ2V0LmxvY2FsTmFtZX1faGFuZGxlQ2xpY2sodCl7dGhpcy5fX2ludGVyYWN0aW9uc0FsbG93ZWQodCkmJih0aGlzLmluZGV0ZXJtaW5hdGU/KHRoaXMuaW5kZXRlcm1pbmF0ZT0hMSx0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fdG9nZ2xlQ2hlY2tlZCgpKTp0LmNvbXBvc2VkUGF0aCgpWzBdIT09dGhpcy5fbmF0aXZlQ2hlY2tib3gmJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fdG9nZ2xlQ2hlY2tlZCgpKSl9X3RvZ2dsZUNoZWNrZWQoKXt0aGlzLmNoZWNrZWQ9IXRoaXMuY2hlY2tlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtjb21wb3NlZDohMSxidWJibGVzOiEwfSkpfX1jdXN0b21FbGVtZW50cy5kZWZpbmUoVCR0LmlzLFQkdCksJFh0KCJ2YWFkaW4tZ3JpZCIsR1h0YAogICAgOmhvc3QgewogICAgICBmb250LWZhbWlseTogdmFyKC0tbHVtby1mb250LWZhbWlseSk7CiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUtbSk7CiAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1sdW1vLWxpbmUtaGVpZ2h0LXMpOwogICAgICBjb2xvcjogdmFyKC0tbHVtby1ib2R5LXRleHQtY29sb3IpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWJhc2UtY29sb3IpOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwoKICAgICAgLyogRm9yIGludGVybmFsIHVzZSBvbmx5ICovCiAgICAgIC0tX2x1bW8tZ3JpZC1ib3JkZXItY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMjBwY3QpOwogICAgICAtLV9sdW1vLWdyaWQtc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0xMHBjdCk7CiAgICAgIC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGg6IDFweDsKICAgICAgLS1fbHVtby1ncmlkLXNlbGVjdGVkLXJvdy1jb2xvcjogdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yLTEwcGN0KTsKICAgIH0KCiAgICAvKiBObyAob3V0ZXIpIGJvcmRlciAqLwoKICAgIDpob3N0KDpub3QoW3RoZW1lfj0nbm8tYm9yZGVyJ10pKSB7CiAgICAgIGJvcmRlcjogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLWNvbG9yKTsKICAgIH0KCiAgICAvKiBDZWxsIHN0eWxlcyAqLwoKICAgIFtwYXJ0fj0nY2VsbCddIHsKICAgICAgbWluLWhlaWdodDogdmFyKC0tbHVtby1zaXplLW0pOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWJhc2UtY29sb3IpOwogICAgfQoKICAgIFtwYXJ0fj0nY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpIHsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICBwYWRkaW5nOiB2YXIoLS1sdW1vLXNwYWNlLXhzKSB2YXIoLS1sdW1vLXNwYWNlLW0pOwogICAgfQoKICAgIC8qIEFwcGx5IHJvdyBib3JkZXJzIGJ5IGRlZmF1bHQgYW5kIGludHJvZHVjZSB0aGUgIm5vLXJvdy1ib3JkZXJzIiB2YXJpYW50ICovCiAgICA6aG9zdCg6bm90KFt0aGVtZX49J25vLXJvdy1ib3JkZXJzJ10pKSBbcGFydH49J2NlbGwnXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBib3JkZXItdG9wOiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tX2x1bW8tZ3JpZC1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTsKICAgIH0KCiAgICAvKiBIaWRlIGZpcnN0IGJvZHkgcm93IHRvcCBib3JkZXIgKi8KICAgIDpob3N0KDpub3QoW3RoZW1lfj0nbm8tcm93LWJvcmRlcnMnXSkpIFtwYXJ0PSdyb3cnXVtmaXJzdF0gW3BhcnR+PSdjZWxsJ106bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pIHsKICAgICAgYm9yZGVyLXRvcDogMDsKICAgICAgbWluLWhlaWdodDogY2FsYyh2YXIoLS1sdW1vLXNpemUtbSkgLSB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkpOwogICAgfQoKICAgIC8qIEZvY3VzLXJpbmcgKi8KCiAgICBbcGFydH49J2NlbGwnXTpmb2N1cyB7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgOmhvc3QoW25hdmlnYXRpbmddKSBbcGFydH49J2NlbGwnXTpmb2N1czo6YmVmb3JlIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBsZWZ0OiAwOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdCk7CiAgICB9CgogICAgLyogRHJhZyBhbmQgRHJvcCBzdHlsZXMgKi8KICAgIDpob3N0KFtkcmFnb3Zlcl0pOjphZnRlciB7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgdG9wOiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBsZWZ0OiAwOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdCk7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnb3Zlcl0gewogICAgICB6LWluZGV4OiAxMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdvdmVyXSBbcGFydH49J2NlbGwnXSB7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ292ZXJdIFtwYXJ0fj0nY2VsbCddOjphZnRlciB7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSArIDJweCk7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1sdW1vLXByaW1hcnktY29sb3ItNTBwY3QpOwogICAgfQoKICAgIDpob3N0KFt0aGVtZX49J25vLXJvdy1ib3JkZXJzJ10pIFtkcmFnb3Zlcl0gW3BhcnR+PSdjZWxsJ106OmFmdGVyIHsKICAgICAgaGVpZ2h0OiAycHg7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnb3Zlcj0nYmVsb3cnXSBbcGFydH49J2NlbGwnXTo6YWZ0ZXIgewogICAgICB0b3A6IDEwMCU7CiAgICAgIGJvdHRvbTogYXV0bzsKICAgICAgbWFyZ2luLXRvcDogLTFweDsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdvdmVyPSdhYm92ZSddIFtwYXJ0fj0nY2VsbCddOjphZnRlciB7CiAgICAgIHRvcDogYXV0bzsKICAgICAgYm90dG9tOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAtMXB4OwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZGV0YWlscy1vcGVuZWRdW2RyYWdvdmVyPSdiZWxvdyddIFtwYXJ0fj0nY2VsbCddOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKTo6YWZ0ZXIsCiAgICBbcGFydH49J3JvdyddW2RldGFpbHMtb3BlbmVkXVtkcmFnb3Zlcj0nYWJvdmUnXSBbcGFydH49J2RldGFpbHMtY2VsbCddOjphZnRlciB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnb3Zlcl1bZHJhZ292ZXI9J29uLXRvcCddIFtwYXJ0fj0nY2VsbCddOjphZnRlciB7CiAgICAgIGhlaWdodDogMTAwJTsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdzdGFydF0gewogICAgICAvKiBBZGQgYm90dG9tLXNwYWNlIHRvIHRoZSByb3cgc28gdGhlIGRyYWcgbnVtYmVyIGRvZXNuJ3QgZ2V0IGNsaXBwZWQuIE5lZWRlZCBmb3IgSUUvRWRnZSAqLwogICAgICBib3JkZXItYm90dG9tOiAxMDBweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgei1pbmRleDogMTAwICFpbXBvcnRhbnQ7CiAgICAgIG9wYWNpdHk6IDAuOTsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdzdGFydF0gW3BhcnR+PSdjZWxsJ10gewogICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ3N0YXJ0XSBbcGFydH49J2NlbGwnXVtsYXN0LWNvbHVtbl0gewogICAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKSB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtcykgMDsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdzdGFydF0gW3BhcnR+PSdjZWxsJ11bZmlyc3QtY29sdW1uXSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKSAwIDAgdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpOwogICAgfQoKICAgIFtpb3NdIFtwYXJ0fj0ncm93J11bZHJhZ3N0YXJ0XSBbcGFydH49J2NlbGwnXSB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdCk7CiAgICB9CgogICAgI3Njcm9sbGVyOm5vdChbaW9zXSkgW3BhcnR+PSdyb3cnXVtkcmFnc3RhcnRdOm5vdChbZHJhZ3N0YXJ0PScnXSk6OmFmdGVyIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgbGVmdDogdmFyKC0tX2dyaWQtZHJhZy1zdGFydC14KTsKICAgICAgdG9wOiB2YXIoLS1fZ3JpZC1kcmFnLXN0YXJ0LXkpOwogICAgICB6LWluZGV4OiAxMDA7CiAgICAgIGNvbnRlbnQ6IGF0dHIoZHJhZ3N0YXJ0KTsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tbHVtby1zcGFjZS14cykgKiAwLjgpOwogICAgICBjb2xvcjogdmFyKC0tbHVtby1lcnJvci1jb250cmFzdC1jb2xvcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tZXJyb3ItY29sb3IpOwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtbSk7CiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1sdW1vLWZvbnQtZmFtaWx5KTsKICAgICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS14eHMpOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7CiAgICAgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsOwogICAgICBtaW4td2lkdGg6IGNhbGModmFyKC0tbHVtby1zaXplLXMpICogMC43KTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQoKICAgIC8qIEhlYWRlcnMgYW5kIGZvb3RlcnMgKi8KCiAgICBbcGFydH49J2hlYWRlci1jZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCksCiAgICBbcGFydH49J2Zvb3Rlci1jZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCksCiAgICBbcGFydH49J3Jlb3JkZXItZ2hvc3QnXSB7CiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUtcyk7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgW3BhcnR+PSdmb290ZXItY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpIHsKICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIH0KCiAgICBbcGFydD0ncm93J106b25seS1jaGlsZCBbcGFydH49J2hlYWRlci1jZWxsJ10gewogICAgICBtaW4taGVpZ2h0OiB2YXIoLS1sdW1vLXNpemUteGwpOwogICAgfQoKICAgIC8qIEhlYWRlciBib3JkZXJzICovCgogICAgLyogSGlkZSBmaXJzdCBoZWFkZXIgcm93IHRvcCBib3JkZXIgKi8KICAgIDpob3N0KDpub3QoW3RoZW1lfj0nbm8tcm93LWJvcmRlcnMnXSkpIFtwYXJ0PSdyb3cnXTpmaXJzdC1jaGlsZCBbcGFydH49J2hlYWRlci1jZWxsJ10gewogICAgICBib3JkZXItdG9wOiAwOwogICAgfQoKICAgIFtwYXJ0PSdyb3cnXTpsYXN0LWNoaWxkIFtwYXJ0fj0naGVhZGVyLWNlbGwnXSB7CiAgICAgIGJvcmRlci1ib3R0b206IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSBzb2xpZCB0cmFuc3BhcmVudDsKICAgIH0KCiAgICA6aG9zdCg6bm90KFt0aGVtZX49J25vLXJvdy1ib3JkZXJzJ10pKSBbcGFydD0ncm93J106bGFzdC1jaGlsZCBbcGFydH49J2hlYWRlci1jZWxsJ10gewogICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1fbHVtby1ncmlkLXNlY29uZGFyeS1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIE92ZXJmbG93IHVzZXMgYSBzdHJvbmdlciBib3JkZXIgY29sb3IgKi8KICAgIDpob3N0KFtvdmVyZmxvd349J3RvcCddKSBbcGFydD0ncm93J106bGFzdC1jaGlsZCBbcGFydH49J2hlYWRlci1jZWxsJ10gewogICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci1jb2xvcik7CiAgICB9CgogICAgLyogRm9vdGVyIGJvcmRlcnMgKi8KCiAgICBbcGFydD0ncm93J106Zmlyc3QtY2hpbGQgW3BhcnR+PSdmb290ZXItY2VsbCddIHsKICAgICAgYm9yZGVyLXRvcDogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50OwogICAgfQoKICAgIDpob3N0KDpub3QoW3RoZW1lfj0nbm8tcm93LWJvcmRlcnMnXSkpIFtwYXJ0PSdyb3cnXTpmaXJzdC1jaGlsZCBbcGFydH49J2Zvb3Rlci1jZWxsJ10gewogICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1fbHVtby1ncmlkLXNlY29uZGFyeS1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIE92ZXJmbG93IHVzZXMgYSBzdHJvbmdlciBib3JkZXIgY29sb3IgKi8KICAgIDpob3N0KFtvdmVyZmxvd349J2JvdHRvbSddKSBbcGFydD0ncm93J106Zmlyc3QtY2hpbGQgW3BhcnR+PSdmb290ZXItY2VsbCddIHsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIENvbHVtbiByZW9yZGVyaW5nICovCgogICAgOmhvc3QoW3Jlb3JkZXJpbmddKSBbcGFydH49J2NlbGwnXSB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KSwgdmFyKC0tbHVtby1zaGFkZS0yMHBjdCkpIHZhcigtLWx1bW8tYmFzZS1jb2xvcik7CiAgICB9CgogICAgOmhvc3QoW3Jlb3JkZXJpbmddKSBbcGFydH49J2NlbGwnXVtyZW9yZGVyLXN0YXR1cz0nYWxsb3dlZCddIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tbHVtby1iYXNlLWNvbG9yKTsKICAgIH0KCiAgICA6aG9zdChbcmVvcmRlcmluZ10pIFtwYXJ0fj0nY2VsbCddW3Jlb3JkZXItc3RhdHVzPSdkcmFnZ2luZyddIHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWx1bW8tY29udHJhc3QtNXBjdCksIHZhcigtLWx1bW8tY29udHJhc3QtNXBjdCkpIHZhcigtLWx1bW8tYmFzZS1jb2xvcik7CiAgICB9CgogICAgW3BhcnR+PSdyZW9yZGVyLWdob3N0J10gewogICAgICBvcGFjaXR5OiAwLjg1OwogICAgICBib3gtc2hhZG93OiB2YXIoLS1sdW1vLWJveC1zaGFkb3ctcyk7CiAgICAgIC8qIFRPRE8gVXNlIHRoZSBzYW1lIHN0eWxlcyBhcyBmb3IgdGhlIGNlbGwgZWxlbWVudCAocmVvcmRlci1naG9zdCBjb3BpZXMgc3R5bGVzIGZyb20gdGhlIGNlbGwgZWxlbWVudCkgKi8KICAgICAgcGFkZGluZzogdmFyKC0tbHVtby1zcGFjZS1zKSB2YXIoLS1sdW1vLXNwYWNlLW0pICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLyogQ29sdW1uIHJlc2l6aW5nICovCgogICAgW3BhcnQ9J3Jlc2l6ZS1oYW5kbGUnXSB7CiAgICAgIHdpZHRoOiAzcHg7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdCk7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgIH0KCiAgICA6aG9zdCg6bm90KFtyZW9yZGVyaW5nXSkpICo6bm90KFtjb2x1bW4tcmVzaXppbmddKSBbcGFydH49J2NlbGwnXTpob3ZlciBbcGFydD0ncmVzaXplLWhhbmRsZSddLAogICAgW3BhcnQ9J3Jlc2l6ZS1oYW5kbGUnXTphY3RpdmUgewogICAgICBvcGFjaXR5OiAxOwogICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjE1czsKICAgIH0KCiAgICAvKiBDb2x1bW4gYm9yZGVycyAqLwoKICAgIDpob3N0KFt0aGVtZX49J2NvbHVtbi1ib3JkZXJzJ10pIFtwYXJ0fj0nY2VsbCddOm5vdChbbGFzdC1jb2x1bW5dKTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBib3JkZXItcmlnaHQ6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1fbHVtby1ncmlkLXNlY29uZGFyeS1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIEZyb3plbiBjb2x1bW5zICovCgogICAgW2xhc3QtZnJvemVuXSB7CiAgICAgIGJvcmRlci1yaWdodDogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIDpob3N0KFtvdmVyZmxvd349J2xlZnQnXSkgW3BhcnR+PSdjZWxsJ11bbGFzdC1mcm96ZW5dOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIFJvdyBzdHJpcGVzICovCgogICAgOmhvc3QoW3RoZW1lfj0ncm93LXN0cmlwZXMnXSkgW3BhcnR+PSdyb3cnXTpub3QoW29kZF0pIFtwYXJ0fj0nYm9keS1jZWxsJ10sCiAgICA6aG9zdChbdGhlbWV+PSdyb3ctc3RyaXBlcyddKSBbcGFydH49J3JvdyddOm5vdChbb2RkXSkgW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSB7CiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1sdW1vLWNvbnRyYXN0LTVwY3QpLCB2YXIoLS1sdW1vLWNvbnRyYXN0LTVwY3QpKTsKICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14OwogICAgfQoKICAgIC8qIFNlbGVjdGVkIHJvdyAqLwoKICAgIC8qIFJhaXNlIHRoZSBzZWxlY3RlZCByb3dzIGFib3ZlIHVuc2VsZWN0ZWQgcm93cyAoc28gdGhhdCBib3gtc2hhZG93IGNhbiBjb3ZlciB1bnNlbGVjdGVkIHJvd3MpICovCiAgICA6aG9zdCg6bm90KFtyZW9yZGVyaW5nXSkpIFtwYXJ0fj0ncm93J11bc2VsZWN0ZWRdIHsKICAgICAgei1pbmRleDogMTsKICAgIH0KCiAgICA6aG9zdCg6bm90KFtyZW9yZGVyaW5nXSkpIFtwYXJ0fj0ncm93J11bc2VsZWN0ZWRdIFtwYXJ0fj0nYm9keS1jZWxsJ106bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pIHsKICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHZhcigtLV9sdW1vLWdyaWQtc2VsZWN0ZWQtcm93LWNvbG9yKSwgdmFyKC0tX2x1bW8tZ3JpZC1zZWxlY3RlZC1yb3ctY29sb3IpKTsKICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDsKICAgIH0KCiAgICAvKiBDb3ZlciB0aGUgYm9yZGVyIG9mIGFuIHVuc2VsZWN0ZWQgcm93ICovCiAgICA6aG9zdCg6bm90KFt0aGVtZX49J25vLXJvdy1ib3JkZXJzJ10pKSBbcGFydH49J3JvdyddW3NlbGVjdGVkXSBbcGFydH49J2NlbGwnXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBib3gtc2hhZG93OiAwIHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSAwIDAgdmFyKC0tX2x1bW8tZ3JpZC1zZWxlY3RlZC1yb3ctY29sb3IpOwogICAgfQoKICAgIC8qIENvbXBhY3QgKi8KCiAgICA6aG9zdChbdGhlbWV+PSdjb21wYWN0J10pIFtwYXJ0PSdyb3cnXTpvbmx5LWNoaWxkIFtwYXJ0fj0naGVhZGVyLWNlbGwnXSB7CiAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWx1bW8tc2l6ZS1tKTsKICAgIH0KCiAgICA6aG9zdChbdGhlbWV+PSdjb21wYWN0J10pIFtwYXJ0fj0nY2VsbCddIHsKICAgICAgbWluLWhlaWdodDogdmFyKC0tbHVtby1zaXplLXMpOwogICAgfQoKICAgIDpob3N0KFt0aGVtZX49J2NvbXBhY3QnXSkgW3BhcnQ9J3JvdyddW2ZpcnN0XSBbcGFydH49J2NlbGwnXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLWx1bW8tc2l6ZS1zKSAtIHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSk7CiAgICB9CgogICAgOmhvc3QoW3RoZW1lfj0nY29tcGFjdCddKSBbcGFydH49J2NlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSB7CiAgICAgIHBhZGRpbmc6IHZhcigtLWx1bW8tc3BhY2UteHMpIHZhcigtLWx1bW8tc3BhY2Utcyk7CiAgICB9CgogICAgLyogV3JhcCBjZWxsIGNvbnRlbnRzICovCgogICAgOmhvc3QoW3RoZW1lfj0nd3JhcC1jZWxsLWNvbnRlbnQnXSkgW3BhcnR+PSdjZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCkgewogICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwogICAgfQoKICAgIC8qIFJUTCBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW3BhcnR+PSdyb3cnXVtkcmFnc3RhcnRdIFtwYXJ0fj0nY2VsbCddW2xhc3QtY29sdW1uXSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKSAwIDAgdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpOwogICAgfQoKICAgIDpob3N0KFtkaXI9J3J0bCddKSBbcGFydH49J3JvdyddW2RyYWdzdGFydF0gW3BhcnR+PSdjZWxsJ11bZmlyc3QtY29sdW1uXSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpIHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKSAwOwogICAgfQoKICAgIDpob3N0KFtkaXI9J3J0bCddW3RoZW1lfj0nY29sdW1uLWJvcmRlcnMnXSkgW3BhcnR+PSdjZWxsJ106bm90KFtsYXN0LWNvbHVtbl0pOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgYm9yZGVyLWxlZnQ6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1fbHVtby1ncmlkLXNlY29uZGFyeS1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIDpob3N0KFtkaXI9J3J0bCddKSBbbGFzdC1mcm96ZW5dIHsKICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICBib3JkZXItbGVmdDogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50OwogICAgfQoKICAgIDpob3N0KFtkaXI9J3J0bCddW292ZXJmbG93fj0ncmlnaHQnXSkgW3BhcnR+PSdjZWxsJ11bbGFzdC1mcm96ZW5dOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci1jb2xvcik7CiAgICB9CiAgYCx7bW9kdWxlSWQ6Imx1bW8tZ3JpZCJ9KSwkWHQoInZhYWRpbi1jaGVja2JveCIsR1h0YAogICAgOmhvc3QoLnZhYWRpbi1ncmlkLXNlbGVjdC1hbGwtY2hlY2tib3gpIHsKICAgICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS1tKTsKICAgIH0KICBgLHttb2R1bGVJZDoidmFhZGluLWdyaWQtc2VsZWN0LWFsbC1jaGVja2JveC1sdW1vIn0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTYgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBDJHQ9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvaVAoPzpob25lfGFkOyg/OiBVOyk/IENQVSkgT1MgKFxkKykvKSxBJHQ9QyR0JiZDJHRbMV0+PTgsayR0PUlyKHtiZWhhdmlvcnM6W2dvLERvXSxfcmF0aW86LjUsX3Njcm9sbGVyUGFkZGluZ1RvcDowLF9zY3JvbGxQb3NpdGlvbjowLF9waHlzaWNhbFNpemU6MCxfcGh5c2ljYWxBdmVyYWdlOjAsX3BoeXNpY2FsQXZlcmFnZUNvdW50OjAsX3BoeXNpY2FsVG9wOjAsX3ZpcnR1YWxDb3VudDowLF9lc3RTY3JvbGxIZWlnaHQ6MCxfc2Nyb2xsSGVpZ2h0OjAsX3ZpZXdwb3J0SGVpZ2h0OjAsX3ZpZXdwb3J0V2lkdGg6MCxfcGh5c2ljYWxJdGVtczpudWxsLF9waHlzaWNhbFNpemVzOm51bGwsX2ZpcnN0VmlzaWJsZUluZGV4VmFsOm51bGwsX2xhc3RWaXNpYmxlSW5kZXhWYWw6bnVsbCxfbWF4UGFnZXM6MixfZm9jdXNlZFZpcnR1YWxJbmRleDotMSxfdGVtcGxhdGVDb3N0OjAsZ2V0IF9waHlzaWNhbEJvdHRvbSgpe3JldHVybiB0aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9waHlzaWNhbFNpemV9LGdldCBfc2Nyb2xsQm90dG9tKCl7cmV0dXJuIHRoaXMuX3Njcm9sbFBvc2l0aW9uK3RoaXMuX3ZpZXdwb3J0SGVpZ2h0fSxnZXQgX3ZpcnR1YWxFbmQoKXtyZXR1cm4gdGhpcy5fdmlydHVhbFN0YXJ0K3RoaXMuX3BoeXNpY2FsQ291bnQtMX0sZ2V0IF9oaWRkZW5Db250ZW50U2l6ZSgpe3JldHVybiB0aGlzLl9waHlzaWNhbFNpemUtdGhpcy5fdmlld3BvcnRIZWlnaHR9LGdldCBfbWF4U2Nyb2xsVG9wKCl7cmV0dXJuIHRoaXMuX2VzdFNjcm9sbEhlaWdodC10aGlzLl92aWV3cG9ydEhlaWdodCt0aGlzLl9zY3JvbGxPZmZzZXR9LGdldCBfbWF4VmlydHVhbFN0YXJ0KCl7cmV0dXJuIE1hdGgubWF4KDAsdGhpcy5fdmlydHVhbENvdW50LXRoaXMuX3BoeXNpY2FsQ291bnQpfSxzZXQgX3ZpcnR1YWxTdGFydCh0KXt0PXRoaXMuX2NsYW1wKHQsMCx0aGlzLl9tYXhWaXJ0dWFsU3RhcnQpLHRoaXMuX3ZpcnR1YWxTdGFydFZhbD10fSxnZXQgX3ZpcnR1YWxTdGFydCgpe3JldHVybiB0aGlzLl92aXJ0dWFsU3RhcnRWYWx8fDB9LHNldCBfcGh5c2ljYWxTdGFydCh0KXsodCU9dGhpcy5fcGh5c2ljYWxDb3VudCk8MCYmKHQ9dGhpcy5fcGh5c2ljYWxDb3VudCt0KSx0aGlzLl9waHlzaWNhbFN0YXJ0VmFsPXR9LGdldCBfcGh5c2ljYWxTdGFydCgpe3JldHVybiB0aGlzLl9waHlzaWNhbFN0YXJ0VmFsfHwwfSxnZXQgX3BoeXNpY2FsRW5kKCl7cmV0dXJuKHRoaXMuX3BoeXNpY2FsU3RhcnQrdGhpcy5fcGh5c2ljYWxDb3VudC0xKSV0aGlzLl9waHlzaWNhbENvdW50fSxzZXQgX3BoeXNpY2FsQ291bnQodCl7dGhpcy5fcGh5c2ljYWxDb3VudFZhbD10fSxnZXQgX3BoeXNpY2FsQ291bnQoKXtyZXR1cm4gdGhpcy5fcGh5c2ljYWxDb3VudFZhbHx8MH0sZ2V0IF9vcHRQaHlzaWNhbFNpemUoKXtyZXR1cm4gMD09PXRoaXMuX3ZpZXdwb3J0SGVpZ2h0PzEvMDp0aGlzLl92aWV3cG9ydEhlaWdodCp0aGlzLl9tYXhQYWdlc30sZ2V0IF9pc1Zpc2libGUoKXtyZXR1cm4gQm9vbGVhbih0aGlzLm9mZnNldFdpZHRofHx0aGlzLm9mZnNldEhlaWdodCl9LGdldCBmaXJzdFZpc2libGVJbmRleCgpe2xldCB0PXRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsO2lmKG51bGw9PXQpe2xldCBlPXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldDt0PXRoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24odCxuKXtpZihlKz10aGlzLl9waHlzaWNhbFNpemVzW3RdLGU+dGhpcy5fc2Nyb2xsUG9zaXRpb24pcmV0dXJuIG59KSl8fDAsdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9dH1yZXR1cm4gdH0sZ2V0IGxhc3RWaXNpYmxlSW5kZXgoKXtsZXQgdD10aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsO2lmKG51bGw9PXQpe2xldCBlPXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldDt0aGlzLl9pdGVyYXRlSXRlbXMoKGZ1bmN0aW9uKG4saSl7ZTx0aGlzLl9zY3JvbGxCb3R0b20mJih0PWkpLGUrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbbl19KSksdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD10fXJldHVybiB0fSxnZXQgX3Njcm9sbE9mZnNldCgpe3JldHVybiB0aGlzLl9zY3JvbGxlclBhZGRpbmdUb3B9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLHRoaXMuX3JlbmRlcixfdCksdGhpcy5saXN0ZW4odGhpcywiaXJvbi1yZXNpemUiLCJfcmVzaXplSGFuZGxlciIpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMudW5saXN0ZW4odGhpcywiaXJvbi1yZXNpemUiLCJfcmVzaXplSGFuZGxlciIpfSx1cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXM6ZnVuY3Rpb24oKXtjb25zdCB0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpO3RoaXMuX3Njcm9sbGVyUGFkZGluZ1RvcD10aGlzLnNjcm9sbFRhcmdldD09PXRoaXM/MDpwYXJzZUludCh0WyJwYWRkaW5nLXRvcCJdLDEwKSx0aGlzLl9pc1JUTD1Cb29sZWFuKCJydGwiPT09dC5kaXJlY3Rpb24pLHRoaXMuX3ZpZXdwb3J0V2lkdGg9dGhpcy4kLml0ZW1zLm9mZnNldFdpZHRoLHRoaXMuX3ZpZXdwb3J0SGVpZ2h0PXRoaXMuX3Njcm9sbFRhcmdldEhlaWdodH0sX3Njcm9sbEhhbmRsZXI6ZnVuY3Rpb24oKXtjb25zdCB0PU1hdGgubWF4KDAsTWF0aC5taW4odGhpcy5fbWF4U2Nyb2xsVG9wLHRoaXMuX3Njcm9sbFRvcCkpO2xldCBlPXQtdGhpcy5fc2Nyb2xsUG9zaXRpb247Y29uc3Qgbj1lPj0wO2lmKHRoaXMuX3Njcm9sbFBvc2l0aW9uPXQsdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPW51bGwsTWF0aC5hYnMoZSk+dGhpcy5fcGh5c2ljYWxTaXplJiZ0aGlzLl9waHlzaWNhbFNpemU+MCl7ZS09dGhpcy5fc2Nyb2xsT2Zmc2V0O2NvbnN0IHQ9TWF0aC5yb3VuZChlL3RoaXMuX3BoeXNpY2FsQXZlcmFnZSk7dGhpcy5fdmlydHVhbFN0YXJ0PXRoaXMuX3ZpcnR1YWxTdGFydCt0LHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCt0LHRoaXMuX3BoeXNpY2FsVG9wPU1hdGguZmxvb3IodGhpcy5fdmlydHVhbFN0YXJ0KSp0aGlzLl9waHlzaWNhbEF2ZXJhZ2UsdGhpcy5fdXBkYXRlKCl9ZWxzZSBpZih0aGlzLl9waHlzaWNhbENvdW50PjApe2NvbnN0e3BoeXNpY2FsVG9wOnQsaW5kZXhlczplfT10aGlzLl9nZXRSZXVzYWJsZXMobik7bj8odGhpcy5fcGh5c2ljYWxUb3A9dCx0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0K2UubGVuZ3RoLHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCtlLmxlbmd0aCk6KHRoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQtZS5sZW5ndGgsdGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0LWUubGVuZ3RoKSx0aGlzLl91cGRhdGUoZSxuP251bGw6ZSksdGhpcy5fZGVib3VuY2UoIl9pbmNyZWFzZVBvb2xJZk5lZWRlZCIsdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQuYmluZCh0aGlzLDApLHZ0KX19LF9nZXRSZXVzYWJsZXM6ZnVuY3Rpb24odCl7bGV0IGUsbixpO2NvbnN0IHI9W10sbz10aGlzLl9oaWRkZW5Db250ZW50U2l6ZSp0aGlzLl9yYXRpbyxhPXRoaXMuX3ZpcnR1YWxTdGFydCxzPXRoaXMuX3ZpcnR1YWxFbmQsbD10aGlzLl9waHlzaWNhbENvdW50O2xldCBjPXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldDtjb25zdCB1PXRoaXMuX3Njcm9sbFRvcCxoPXRoaXMuX3Njcm9sbEJvdHRvbTtmb3IodD8oZT10aGlzLl9waHlzaWNhbFN0YXJ0LG49dS1jKTooZT10aGlzLl9waHlzaWNhbEVuZCxuPXRoaXMuX3BoeXNpY2FsQm90dG9tK3RoaXMuX3Njcm9sbE9mZnNldC1oKTtpPXRoaXMuX3BoeXNpY2FsU2l6ZXNbZV0sbi09aSwhKHIubGVuZ3RoPj1sfHxuPD1vKTspaWYodCl7aWYocytyLmxlbmd0aCsxPj10aGlzLl92aXJ0dWFsQ291bnQpYnJlYWs7aWYoYytpPj11LXRoaXMuX3Njcm9sbE9mZnNldClicmVhaztyLnB1c2goZSksYys9aSxlPShlKzEpJWx9ZWxzZXtpZihhLXIubGVuZ3RoPD0wKWJyZWFrO2lmKGMrdGhpcy5fcGh5c2ljYWxTaXplLWk8PWgpYnJlYWs7ci5wdXNoKGUpLGMtPWksZT0wPT09ZT9sLTE6ZS0xfXJldHVybntpbmRleGVzOnIscGh5c2ljYWxUb3A6Yy10aGlzLl9zY3JvbGxPZmZzZXR9fSxfdXBkYXRlOmZ1bmN0aW9uKHQsZSl7aWYoISh0JiYwPT09dC5sZW5ndGh8fDA9PT10aGlzLl9waHlzaWNhbENvdW50KSl7aWYodGhpcy5fYXNzaWduTW9kZWxzKHQpLHRoaXMuX3VwZGF0ZU1ldHJpY3ModCksZSlmb3IoO2UubGVuZ3RoOyl7Y29uc3QgdD1lLnBvcCgpO3RoaXMuX3BoeXNpY2FsVG9wLT10aGlzLl9waHlzaWNhbFNpemVzW3RdfXRoaXMuX3Bvc2l0aW9uSXRlbXMoKSx0aGlzLl91cGRhdGVTY3JvbGxlclNpemUoKX19LF9pc0NsaWVudEZ1bGw6ZnVuY3Rpb24oKXtyZXR1cm4gMCE9dGhpcy5fc2Nyb2xsQm90dG9tJiZ0aGlzLl9waHlzaWNhbEJvdHRvbS0xPj10aGlzLl9zY3JvbGxCb3R0b20mJnRoaXMuX3BoeXNpY2FsVG9wPD10aGlzLl9zY3JvbGxQb3NpdGlvbn0sX2luY3JlYXNlUG9vbElmTmVlZGVkOmZ1bmN0aW9uKHQpe2NvbnN0IGU9dGhpcy5fY2xhbXAodGhpcy5fcGh5c2ljYWxDb3VudCt0LDMsdGhpcy5fdmlydHVhbENvdW50LXRoaXMuX3ZpcnR1YWxTdGFydCktdGhpcy5fcGh5c2ljYWxDb3VudDtsZXQgbj1NYXRoLnJvdW5kKC41KnRoaXMuX3BoeXNpY2FsQ291bnQpO2lmKCEoZTwwKSl7aWYoZT4wKXtjb25zdCB0PXdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTtbXS5wdXNoLmFwcGx5KHRoaXMuX3BoeXNpY2FsSXRlbXMsdGhpcy5fY3JlYXRlUG9vbChlKSk7Zm9yKGxldCB0PTA7dDxlO3QrKyl0aGlzLl9waHlzaWNhbFNpemVzLnB1c2goMCk7dGhpcy5fcGh5c2ljYWxDb3VudD10aGlzLl9waHlzaWNhbENvdW50K2UsdGhpcy5fcGh5c2ljYWxTdGFydD50aGlzLl9waHlzaWNhbEVuZCYmdGhpcy5faXNJbmRleFJlbmRlcmVkKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgpJiZ0aGlzLl9nZXRQaHlzaWNhbEluZGV4KHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgpPHRoaXMuX3BoeXNpY2FsRW5kJiYodGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0K2UpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX3RlbXBsYXRlQ29zdD0od2luZG93LnBlcmZvcm1hbmNlLm5vdygpLXQpL2Usbj1NYXRoLnJvdW5kKC41KnRoaXMuX3BoeXNpY2FsQ291bnQpfXRoaXMuX3ZpcnR1YWxFbmQ+PXRoaXMuX3ZpcnR1YWxDb3VudC0xfHwwPT09bnx8KHRoaXMuX2lzQ2xpZW50RnVsbCgpP3RoaXMuX3BoeXNpY2FsU2l6ZTx0aGlzLl9vcHRQaHlzaWNhbFNpemUmJnRoaXMuX2RlYm91bmNlKCJfaW5jcmVhc2VQb29sSWZOZWVkZWQiLHRoaXMuX2luY3JlYXNlUG9vbElmTmVlZGVkLmJpbmQodGhpcyx0aGlzLl9jbGFtcChNYXRoLnJvdW5kKDUwL3RoaXMuX3RlbXBsYXRlQ29zdCksMSxuKSkseXQpOnRoaXMuX2RlYm91bmNlKCJfaW5jcmVhc2VQb29sSWZOZWVkZWQiLHRoaXMuX2luY3JlYXNlUG9vbElmTmVlZGVkLmJpbmQodGhpcyxuKSx2dCkpfX0sX3JlbmRlcjpmdW5jdGlvbigpe2lmKHRoaXMuaXNBdHRhY2hlZCYmdGhpcy5faXNWaXNpYmxlKWlmKDAhPT10aGlzLl9waHlzaWNhbENvdW50KXtjb25zdHtwaHlzaWNhbFRvcDp0LGluZGV4ZXM6ZX09dGhpcy5fZ2V0UmV1c2FibGVzKCEwKTt0aGlzLl9waHlzaWNhbFRvcD10LHRoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQrZS5sZW5ndGgsdGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0K2UubGVuZ3RoLHRoaXMuX3VwZGF0ZShlKSx0aGlzLl91cGRhdGUoKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKX1lbHNlIHRoaXMuX3ZpcnR1YWxDb3VudD4wJiYodGhpcy51cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXMoKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgzKSl9LF9pdGVtc0NoYW5nZWQ6ZnVuY3Rpb24odCl7Iml0ZW1zIj09PXQucGF0aCYmKHRoaXMuX3ZpcnR1YWxTdGFydD0wLHRoaXMuX3BoeXNpY2FsVG9wPTAsdGhpcy5fdmlydHVhbENvdW50PXRoaXMuaXRlbXM/dGhpcy5pdGVtcy5sZW5ndGg6MCx0aGlzLl9waHlzaWNhbEluZGV4Rm9yS2V5PXt9LHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX3BoeXNpY2FsQ291bnQ9dGhpcy5fcGh5c2ljYWxDb3VudHx8MCx0aGlzLl9waHlzaWNhbEl0ZW1zPXRoaXMuX3BoeXNpY2FsSXRlbXN8fFtdLHRoaXMuX3BoeXNpY2FsU2l6ZXM9dGhpcy5fcGh5c2ljYWxTaXplc3x8W10sdGhpcy5fcGh5c2ljYWxTdGFydD0wLHRoaXMuX3Njcm9sbFRvcD50aGlzLl9zY3JvbGxPZmZzZXQmJnRoaXMuX3Jlc2V0U2Nyb2xsUG9zaXRpb24oMCksdGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLHRoaXMuX3JlbmRlcixfdCkpfSxfaXRlcmF0ZUl0ZW1zOmZ1bmN0aW9uKHQsZSl7bGV0IG4saSxyLG87aWYoMj09PWFyZ3VtZW50cy5sZW5ndGgmJmUpe2ZvcihvPTA7bzxlLmxlbmd0aDtvKyspaWYobj1lW29dLGk9dGhpcy5fY29tcHV0ZVZpZHgobiksbnVsbCE9KHI9dC5jYWxsKHRoaXMsbixpKSkpcmV0dXJuIHJ9ZWxzZXtmb3Iobj10aGlzLl9waHlzaWNhbFN0YXJ0LGk9dGhpcy5fdmlydHVhbFN0YXJ0O248dGhpcy5fcGh5c2ljYWxDb3VudDtuKyssaSsrKWlmKG51bGwhPShyPXQuY2FsbCh0aGlzLG4saSkpKXJldHVybiByO2ZvcihuPTA7bjx0aGlzLl9waHlzaWNhbFN0YXJ0O24rKyxpKyspaWYobnVsbCE9KHI9dC5jYWxsKHRoaXMsbixpKSkpcmV0dXJuIHJ9fSxfY29tcHV0ZVZpZHg6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PXRoaXMuX3BoeXNpY2FsU3RhcnQ/dGhpcy5fdmlydHVhbFN0YXJ0Kyh0LXRoaXMuX3BoeXNpY2FsU3RhcnQpOnRoaXMuX3ZpcnR1YWxTdGFydCsodGhpcy5fcGh5c2ljYWxDb3VudC10aGlzLl9waHlzaWNhbFN0YXJ0KSt0fSxfdXBkYXRlTWV0cmljczpmdW5jdGlvbih0KXtpZighdGhpcy5faXNWaXNpYmxlKXJldHVybjtEaSgpO2xldCBlPTAsbj0wO2NvbnN0IGk9dGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQscj10aGlzLl9waHlzaWNhbEF2ZXJhZ2U7dGhpcy5faXRlcmF0ZUl0ZW1zKChmdW5jdGlvbih0KXtuKz10aGlzLl9waHlzaWNhbFNpemVzW3RdLHRoaXMuX3BoeXNpY2FsU2l6ZXNbdF09dGhpcy5fcGh5c2ljYWxJdGVtc1t0XS5vZmZzZXRIZWlnaHQsZSs9dGhpcy5fcGh5c2ljYWxTaXplc1t0XSx0aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudCs9dGhpcy5fcGh5c2ljYWxTaXplc1t0XT8xOjB9KSx0KSx0aGlzLl9waHlzaWNhbFNpemU9dGhpcy5fcGh5c2ljYWxTaXplK2Utbix0aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudCE9PWkmJih0aGlzLl9waHlzaWNhbEF2ZXJhZ2U9TWF0aC5yb3VuZCgocippK2UpL3RoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50KSl9LF9wb3NpdGlvbkl0ZW1zOmZ1bmN0aW9uKCl7dGhpcy5fYWRqdXN0U2Nyb2xsUG9zaXRpb24oKTtsZXQgdD10aGlzLl9waHlzaWNhbFRvcDt0aGlzLl9pdGVyYXRlSXRlbXMoKGZ1bmN0aW9uKGUpe3RoaXMudHJhbnNsYXRlM2QoMCx0KyJweCIsMCx0aGlzLl9waHlzaWNhbEl0ZW1zW2VdKSx0Kz10aGlzLl9waHlzaWNhbFNpemVzW2VdfSkpfSxfYWRqdXN0U2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24oKXtjb25zdCB0PTA9PT10aGlzLl92aXJ0dWFsU3RhcnQ/dGhpcy5fcGh5c2ljYWxUb3A6TWF0aC5taW4odGhpcy5fc2Nyb2xsUG9zaXRpb24rdGhpcy5fcGh5c2ljYWxUb3AsMCk7aWYoMCE9PXQpe3RoaXMuX3BoeXNpY2FsVG9wPXRoaXMuX3BoeXNpY2FsVG9wLXQ7Y29uc3QgZT10aGlzLl9zY3JvbGxUb3A7IUEkdCYmZT4wJiZ0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKGUtdCl9fSxfcmVzZXRTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbih0KXt0aGlzLnNjcm9sbFRhcmdldCYmdD49MCYmKHRoaXMuX3Njcm9sbFRvcD10LHRoaXMuX3Njcm9sbFBvc2l0aW9uPXRoaXMuX3Njcm9sbFRvcCl9LF91cGRhdGVTY3JvbGxlclNpemU6ZnVuY3Rpb24odCl7dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0PXRoaXMuX3BoeXNpY2FsQm90dG9tK01hdGgubWF4KHRoaXMuX3ZpcnR1YWxDb3VudC10aGlzLl9waHlzaWNhbENvdW50LXRoaXMuX3ZpcnR1YWxTdGFydCwwKSp0aGlzLl9waHlzaWNhbEF2ZXJhZ2UsKCh0PSh0PXR8fDA9PT10aGlzLl9zY3JvbGxIZWlnaHQpfHx0aGlzLl9zY3JvbGxQb3NpdGlvbj49dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0LXRoaXMuX3BoeXNpY2FsU2l6ZSl8fE1hdGguYWJzKHRoaXMuX2VzdFNjcm9sbEhlaWdodC10aGlzLl9zY3JvbGxIZWlnaHQpPj10aGlzLl92aWV3cG9ydEhlaWdodCkmJih0aGlzLiQuaXRlbXMuc3R5bGUuaGVpZ2h0PXRoaXMuX2VzdFNjcm9sbEhlaWdodCsicHgiLHRoaXMuX3Njcm9sbEhlaWdodD10aGlzLl9lc3RTY3JvbGxIZWlnaHQpfSxzY3JvbGxUb0luZGV4OmZ1bmN0aW9uKHQpe2lmKCJudW1iZXIiIT10eXBlb2YgdHx8dDwwfHx0PnRoaXMuaXRlbXMubGVuZ3RoLTEpcmV0dXJuO2lmKERpKCksMD09PXRoaXMuX3BoeXNpY2FsQ291bnQpcmV0dXJuO3Q9dGhpcy5fY2xhbXAodCwwLHRoaXMuX3ZpcnR1YWxDb3VudC0xKSwoIXRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0KXx8dD49dGhpcy5fbWF4VmlydHVhbFN0YXJ0KSYmKHRoaXMuX3ZpcnR1YWxTdGFydD10LTEpLHRoaXMuX2Fzc2lnbk1vZGVscygpLHRoaXMuX3VwZGF0ZU1ldHJpY3MoKSx0aGlzLl9waHlzaWNhbFRvcD1NYXRoLmZsb29yKHRoaXMuX3ZpcnR1YWxTdGFydCkqdGhpcy5fcGh5c2ljYWxBdmVyYWdlO2xldCBlPXRoaXMuX3BoeXNpY2FsU3RhcnQsbj10aGlzLl92aXJ0dWFsU3RhcnQsaT0wO2NvbnN0IHI9dGhpcy5faGlkZGVuQ29udGVudFNpemU7Zm9yKDtuPHQmJmk8PXI7KWkrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbZV0sZT0oZSsxKSV0aGlzLl9waHlzaWNhbENvdW50LG4rKzt0aGlzLl91cGRhdGVTY3JvbGxlclNpemUoITApLHRoaXMuX3Bvc2l0aW9uSXRlbXMoKSx0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKHRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldCtpKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKSx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbH0sX3Jlc2V0QXZlcmFnZTpmdW5jdGlvbigpe3RoaXMuX3BoeXNpY2FsQXZlcmFnZT0wLHRoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50PTB9LF9yZXNpemVIYW5kbGVyOmZ1bmN0aW9uKCl7dGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLChmdW5jdGlvbigpe3RoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMudXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzKCksdGhpcy5faXNWaXNpYmxlPyh0aGlzLnRvZ2dsZVNjcm9sbExpc3RlbmVyKCEwKSx0aGlzLl9yZXNldEF2ZXJhZ2UoKSx0aGlzLl9yZW5kZXIoKSk6dGhpcy50b2dnbGVTY3JvbGxMaXN0ZW5lcighMSl9KSxfdCl9LF9pc0luZGV4UmVuZGVyZWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PXRoaXMuX3ZpcnR1YWxTdGFydCYmdDw9dGhpcy5fdmlydHVhbEVuZH0sX2dldFBoeXNpY2FsSW5kZXg6ZnVuY3Rpb24odCl7cmV0dXJuKHRoaXMuX3BoeXNpY2FsU3RhcnQrKHQtdGhpcy5fdmlydHVhbFN0YXJ0KSkldGhpcy5fcGh5c2ljYWxDb3VudH0sX2NsYW1wOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTWF0aC5taW4obixNYXRoLm1heChlLHQpKX0sX2RlYm91bmNlOmZ1bmN0aW9uKHQsZSxuKXt0aGlzLl9kZWJvdW5jZXJzPXRoaXMuX2RlYm91bmNlcnN8fHt9LHRoaXMuX2RlYm91bmNlcnNbdF09VG4uZGVib3VuY2UodGhpcy5fZGVib3VuY2Vyc1t0XSxuLGUuYmluZCh0aGlzKSksQW4odGhpcy5fZGVib3VuY2Vyc1t0XSl9fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovCmNsYXNzIEwkdCBleHRlbmRzIGskdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57c2l6ZTp7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSxfdmlkeE9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MH19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfZWZmZWN0aXZlU2l6ZUNoYW5nZWQoX2VmZmVjdGl2ZVNpemUpIl19Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX3Njcm9sbEhhbmRsZXIoKX1fdXBkYXRlU2Nyb2xsZXJJdGVtKCl7fV9hZnRlclNjcm9sbCgpe31fZ2V0Um93VGFyZ2V0KCl7fV9jcmVhdGVTY3JvbGxlclJvd3MoKXt9X2NhblBvcHVsYXRlKCl7fXNjcm9sbFRvSW5kZXgodCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3MoInNjcm9sbFRvSW5kZXgiKSx0aGlzLl9zY3JvbGxpbmdUb0luZGV4PSEwLHQ9TWF0aC5taW4oTWF0aC5tYXgodCwwKSx0aGlzLl9lZmZlY3RpdmVTaXplLTEpLHRoaXMuJC50YWJsZS5zY3JvbGxUb3A9dC90aGlzLl9lZmZlY3RpdmVTaXplKih0aGlzLiQudGFibGUuc2Nyb2xsSGVpZ2h0LXRoaXMuJC50YWJsZS5vZmZzZXRIZWlnaHQpLHRoaXMuX3Njcm9sbEhhbmRsZXIoKSx0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKCk9PnRoaXMuX21heFNjcm9sbFRvcCkpJiZ0aGlzLl92aXJ0dWFsQ291bnQ8dGhpcy5fZWZmZWN0aXZlU2l6ZSYmdGhpcy5fYWRqdXN0VmlydHVhbEluZGV4T2Zmc2V0KDFlNiksdGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCgpPT5zdXBlci5zY3JvbGxUb0luZGV4KHQtdGhpcy5fdmlkeE9mZnNldCkpKSx0aGlzLl9zY3JvbGxIYW5kbGVyKCk7Y29uc3QgZT1BcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKChlPT5lLmluZGV4PT09dCkpWzBdO2lmKGUpe2NvbnN0IHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AtdGhpcy4kLmhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b207TWF0aC5hYnModCk+MSYmKHRoaXMuJC50YWJsZS5zY3JvbGxUb3ArPXQsdGhpcy5fc2Nyb2xsSGFuZGxlcigpKX10aGlzLl9zY3JvbGxpbmdUb0luZGV4PSExfV9lZmZlY3RpdmVTaXplQ2hhbmdlZCh0KXtsZXQgZSxuPTA7dGhpcy5faXRlcmF0ZUl0ZW1zKCgodCxpKT0+e2lmKGk9PT10aGlzLl9maXJzdFZpc2libGVJbmRleCl7Y29uc3QgaT10aGlzLl9waHlzaWNhbEl0ZW1zW3RdO2U9aS5pbmRleCxuPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wfX0pKSx0aGlzLml0ZW1zJiZ0PHRoaXMuaXRlbXMubGVuZ3RoJiYodGhpcy5fc2Nyb2xsVG9wPTApLEFycmF5LmlzQXJyYXkodGhpcy5pdGVtcyl8fCh0aGlzLml0ZW1zPXtsZW5ndGg6TWF0aC5taW4odCwxZTUpfSksdGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCgpPT5zdXBlci5faXRlbXNDaGFuZ2VkKHtwYXRoOiJpdGVtcyJ9KSkpLHRoaXMuX3ZpcnR1YWxDb3VudD1NYXRoLm1pbih0aGlzLml0ZW1zLmxlbmd0aCx0KXx8MCwwPT09dGhpcy5fc2Nyb2xsVG9wJiYodGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCgpPT50aGlzLl9zY3JvbGxUb0luZGV4KE1hdGgubWluKHQtMSxlKSkpKSx0aGlzLl9pdGVyYXRlSXRlbXMoKHQ9Pntjb25zdCBpPXRoaXMuX3BoeXNpY2FsSXRlbXNbdF07aWYoaS5pbmRleD09PWUmJih0aGlzLiQudGFibGUuc2Nyb2xsVG9wKz1NYXRoLnJvdW5kKGkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLW4pKSxpLmluZGV4PT09dGhpcy5fZm9jdXNlZEl0ZW1JbmRleCYmdGhpcy5faXRlbXNGb2N1c2FibGUmJnRoaXMuJC5pdGVtcy5jb250YWlucyh0aGlzLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCkpe2NvbnN0IHQ9QXJyYXkuZnJvbSh0aGlzLl9pdGVtc0ZvY3VzYWJsZS5wYXJlbnRFbGVtZW50LmNoaWxkcmVuKS5pbmRleE9mKHRoaXMuX2l0ZW1zRm9jdXNhYmxlKTtpLmNoaWxkcmVuW3RdLmZvY3VzKCl9fSkpKSx0aGlzLl9hc3NpZ25Nb2RlbHMoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLl91cGRhdGUoKSkpLHRoaXMuX191cGRhdGVGb290ZXJQb3NpdGlvbmluZygpfV9wb3NpdGlvbkl0ZW1zKCl7bGV0IHQ7dGhpcy5fYWRqdXN0U2Nyb2xsUG9zaXRpb24oKSxpc05hTih0aGlzLl9waHlzaWNhbFRvcCkmJih0PSEwLHRoaXMuX3BoeXNpY2FsVG9wPTApO2xldCBlPXRoaXMuX3BoeXNpY2FsVG9wO3RoaXMuX2l0ZXJhdGVJdGVtcygodD0+e3RoaXMuX3BoeXNpY2FsSXRlbXNbdF0uc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVZKCR7ZX1weClgLGUrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbdF19KSksdCYmdGhpcy5fc2Nyb2xsVG9JbmRleCgwKX1faW5jcmVhc2VQb29sSWZOZWVkZWQodCl7MD09PXQmJnRoaXMuX3Njcm9sbGluZ1RvSW5kZXh8fCF0aGlzLl9jYW5Qb3B1bGF0ZSgpfHwhdGhpcy5fZWZmZWN0aXZlU2l6ZXx8KHRoaXMuX2luaXRpYWxQb29sQ3JlYXRlZD90aGlzLl9vcHRQaHlzaWNhbFNpemUhPT0xLzAmJih0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbD1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbCxfdCwoKCk9Pnt0aGlzLl91cGRhdGVNZXRyaWNzKCk7bGV0IHQ9TWF0aC5jZWlsKCh0aGlzLl9vcHRQaHlzaWNhbFNpemUtdGhpcy5fcGh5c2ljYWxTaXplKS90aGlzLl9waHlzaWNhbEF2ZXJhZ2UpO3RoaXMuX3BoeXNpY2FsQ291bnQrdD50aGlzLl9lZmZlY3RpdmVTaXplJiYodD1NYXRoLm1heCgwLHRoaXMuX2VmZmVjdGl2ZVNpemUtdGhpcy5fcGh5c2ljYWxDb3VudCkpLHRoaXMuX3BoeXNpY2FsU2l6ZSYmdD4wJiZ0aGlzLl9vcHRQaHlzaWNhbFNpemUhPT0xLzAmJihzdXBlci5faW5jcmVhc2VQb29sSWZOZWVkZWQodCksdGhpcy5fX3Jlb3JkZXJDaGlsZE5vZGVzKCkpfSkpKToodGhpcy5faW5pdGlhbFBvb2xDcmVhdGVkPSEwLHN1cGVyLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgyNSkpKX1fX3Jlb3JkZXJDaGlsZE5vZGVzKCl7Y29uc3QgdD1BcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZE5vZGVzKTt0LnJlZHVjZSgoKHQsZSxuLGkpPT57aWYoMD09PW58fGlbbi0xXS5pbmRleD09PWUuaW5kZXgtMSlyZXR1cm4gdH0pLCEwKXx8dC5zb3J0KCgodCxlKT0+dC5pbmRleC1lLmluZGV4KSkuZm9yRWFjaCgodD0+dGhpcy4kLml0ZW1zLmFwcGVuZENoaWxkKHQpKSl9X2NyZWF0ZVBvb2wodCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksbj10aGlzLl9jcmVhdGVTY3JvbGxlclJvd3ModCk7bi5mb3JFYWNoKCh0PT5lLmFwcGVuZENoaWxkKHQpKSksdGhpcy5fZ2V0Um93VGFyZ2V0KCkuYXBwZW5kQ2hpbGQoZSk7Y29uc3QgaT10aGlzLnF1ZXJ5U2VsZWN0b3IoIltzbG90XSIpO2lmKGkpe2NvbnN0IHQ9aS5nZXRBdHRyaWJ1dGUoInNsb3QiKTtpLnNldEF0dHJpYnV0ZSgic2xvdCIsImZvby1iYXIiKSxpLnNldEF0dHJpYnV0ZSgic2xvdCIsdCl9cmV0dXJuIExpKHRoaXMsKCgpPT50aGlzLm5vdGlmeVJlc2l6ZSgpKSksbn1fYXNzaWduTW9kZWxzKHQpe3RoaXMuX2l0ZXJhdGVJdGVtcygoKHQsZSk9Pntjb25zdCBuPXRoaXMuX3BoeXNpY2FsSXRlbXNbdF07dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJoaWRkZW4iLGU+PXRoaXMuX2VmZmVjdGl2ZVNpemUsbiksdGhpcy5fdXBkYXRlU2Nyb2xsZXJJdGVtKG4sZSsodGhpcy5fdmlkeE9mZnNldHx8MCkpfSksdCl9X3Njcm9sbEhhbmRsZXIoKXtjb25zdCB0PXRoaXMuJC50YWJsZS5zY3JvbGxUb3AtdGhpcy5fc2Nyb2xsUG9zaXRpb247dGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoc3VwZXIuX3Njcm9sbEhhbmRsZXIpO2NvbnN0IGU9dGhpcy5fdmlkeE9mZnNldDt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKCk9PnRoaXMuX21heFNjcm9sbFRvcCkpJiZ0aGlzLl92aXJ0dWFsQ291bnQ8dGhpcy5fZWZmZWN0aXZlU2l6ZT90aGlzLl9hZGp1c3RWaXJ0dWFsSW5kZXhPZmZzZXQodCk6dGhpcy5fdmlkeE9mZnNldD0wLHRoaXMuX3ZpZHhPZmZzZXQhPT1lJiZ0aGlzLl91cGRhdGUoKSx0aGlzLl9hZnRlclNjcm9sbCgpfV9hZGp1c3RWaXJ0dWFsSW5kZXhPZmZzZXQodCl7aWYoTWF0aC5hYnModCk+MWU0KXtpZih0aGlzLl9ub1NjYWxlKXJldHVybiB2b2lkKHRoaXMuX25vU2NhbGU9ITEpO2NvbnN0IHQ9dGhpcy4kLnRhYmxlLnNjcm9sbFRvcC8odGhpcy4kLnRhYmxlLnNjcm9sbEhlaWdodC10aGlzLiQudGFibGUub2Zmc2V0SGVpZ2h0KTt0aGlzLl92aWR4T2Zmc2V0PU1hdGgucm91bmQodCp0aGlzLl9lZmZlY3RpdmVTaXplLXQqdGhpcy5fdmlydHVhbENvdW50KX1lbHNle2NvbnN0IHQ9dGhpcy5fdmlkeE9mZnNldHx8MCxlPTFlMyxuPTEwMDswPT09dGhpcy5fc2Nyb2xsVG9wPyh0aGlzLl92aWR4T2Zmc2V0PTAsdCE9PXRoaXMuX3ZpZHhPZmZzZXQmJnN1cGVyLnNjcm9sbFRvSW5kZXgoMCkpOnRoaXMuZmlyc3RWaXNpYmxlSW5kZXg8ZSYmdGhpcy5fdmlkeE9mZnNldD4wJiYodGhpcy5fdmlkeE9mZnNldC09TWF0aC5taW4odGhpcy5fdmlkeE9mZnNldCxuKSx0IT09dGhpcy5fdmlkeE9mZnNldCYmc3VwZXIuc2Nyb2xsVG9JbmRleCh0aGlzLmZpcnN0VmlzaWJsZUluZGV4Kyh0LXRoaXMuX3ZpZHhPZmZzZXQpKSx0aGlzLl9ub1NjYWxlPSEwKTtjb25zdCBpPXRoaXMuX2VmZmVjdGl2ZVNpemUtdGhpcy5fdmlydHVhbENvdW50O3RoaXMuX3Njcm9sbFRvcD49dGhpcy5fbWF4U2Nyb2xsVG9wJiZ0aGlzLl9tYXhTY3JvbGxUb3A+MD8odGhpcy5fdmlkeE9mZnNldD1pLHQhPT10aGlzLl92aWR4T2Zmc2V0JiZzdXBlci5zY3JvbGxUb0luZGV4KHRoaXMuX3ZpcnR1YWxDb3VudCkpOnRoaXMuZmlyc3RWaXNpYmxlSW5kZXg+dGhpcy5fdmlydHVhbENvdW50LWUmJnRoaXMuX3ZpZHhPZmZzZXQ8aSYmKHRoaXMuX3ZpZHhPZmZzZXQrPU1hdGgubWluKGktdGhpcy5fdmlkeE9mZnNldCxuKSx0IT09dGhpcy5fdmlkeE9mZnNldCYmc3VwZXIuc2Nyb2xsVG9JbmRleCh0aGlzLmZpcnN0VmlzaWJsZUluZGV4LSh0aGlzLl92aWR4T2Zmc2V0LXQpKSx0aGlzLl9ub1NjYWxlPSEwKX19X2FjY2Vzc0lyb25MaXN0QVBJKHQpe3RoaXMuX3dhcm5Qcml2YXRlQVBJQWNjZXNzQXN5bmNFbmFibGVkPSExO2NvbnN0IGU9dC5hcHBseSh0aGlzKTtyZXR1cm4gdGhpcy5fZGVib3VuY2VyV2FyblByaXZhdGVBUElBY2Nlc3M9VG4uZGVib3VuY2UodGhpcy5fZGVib3VuY2VyV2FyblByaXZhdGVBUElBY2Nlc3MsX3QsKCgpPT50aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2Vzc0FzeW5jRW5hYmxlZD0hMCkpLGV9X2RlYm91bmNlUmVuZGVyKHQsZSl7c3VwZXIuX2RlYm91bmNlUmVuZGVyKCgoKT0+dGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkodCkpLGUpfV93YXJuUHJpdmF0ZUFQSUFjY2Vzcyh0KXt0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2Vzc0FzeW5jRW5hYmxlZCYmY29uc29sZS53YXJuKGBBY2Nlc3NpbmcgcHJpdmF0ZSBBUEkgKCR7dH0pIWApfV9yZW5kZXIoKXt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSShzdXBlci5fcmVuZGVyKX1faXRlbXNDaGFuZ2VkKCl7fWdldCBfZmlyc3RWaXNpYmxlSW5kZXgoKXtyZXR1cm4gdGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCgpPT5zdXBlci5maXJzdFZpc2libGVJbmRleCkpfWdldCBfbGFzdFZpc2libGVJbmRleCgpe3JldHVybiB0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKCk9PnN1cGVyLmxhc3RWaXNpYmxlSW5kZXgpKX1fc2Nyb2xsVG9JbmRleCh0KXt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKCk9PnRoaXMuc2Nyb2xsVG9JbmRleCh0KSkpfWdldCBmaXJzdFZpc2libGVJbmRleCgpe3JldHVybiB0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2VzcygiZmlyc3RWaXNpYmxlSW5kZXgiKSxzdXBlci5maXJzdFZpc2libGVJbmRleH1zZXQgZmlyc3RWaXNpYmxlSW5kZXgodCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3MoImZpcnN0VmlzaWJsZUluZGV4Iiksc3VwZXIuZmlyc3RWaXNpYmxlSW5kZXg9dH1nZXQgbGFzdFZpc2libGVJbmRleCgpe3JldHVybiB0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2VzcygibGFzdFZpc2libGVJbmRleCIpLHN1cGVyLmxhc3RWaXNpYmxlSW5kZXh9c2V0IGxhc3RWaXNpYmxlSW5kZXgodCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3MoImxhc3RWaXNpYmxlSW5kZXgiKSxzdXBlci5sYXN0VmlzaWJsZUluZGV4PXR9dXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzKCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3MoInVwZGF0ZVZpZXdwb3J0Qm91bmRhcmllcyIpLHN1cGVyLnVwZGF0ZVZpZXdwb3J0Qm91bmRhcmllcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9X3Jlc2l6ZUhhbmRsZXIoKXtzdXBlci5fcmVzaXplSGFuZGxlcigpLERpKCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqL2NvbnN0IFAkdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9hMTF5VXBkYXRlR3JpZFNpemUoc2l6ZSwgX2NvbHVtblRyZWUsIF9jb2x1bW5UcmVlLiopIl19X2ExMXlHZXRIZWFkZXJSb3dDb3VudCh0KXtyZXR1cm4gdC5maWx0ZXIoKHQ9PnQuc29tZSgodD0+dC5faGVhZGVyVGVtcGxhdGV8fHQuaGVhZGVyUmVuZGVyZXJ8fHQucGF0aHx8dC5oZWFkZXIpKSkpLmxlbmd0aH1fYTExeUdldEZvb3RlclJvd0NvdW50KHQpe3JldHVybiB0LmZpbHRlcigodD0+dC5zb21lKCh0PT50Ll9oZWFkZXJUZW1wbGF0ZXx8dC5oZWFkZXJSZW5kZXJlcikpKSkubGVuZ3RofV9hMTF5VXBkYXRlR3JpZFNpemUodCxlKXtpZih2b2lkIDA9PT10fHx2b2lkIDA9PT1lKXJldHVybjtjb25zdCBuPWVbZS5sZW5ndGgtMV07dGhpcy4kLnRhYmxlLnNldEF0dHJpYnV0ZSgiYXJpYS1yb3djb3VudCIsdCt0aGlzLl9hMTF5R2V0SGVhZGVyUm93Q291bnQoZSkrdGhpcy5fYTExeUdldEZvb3RlclJvd0NvdW50KGUpKSx0aGlzLiQudGFibGUuc2V0QXR0cmlidXRlKCJhcmlhLWNvbGNvdW50IixuJiZuLmxlbmd0aHx8MCksdGhpcy5fYTExeVVwZGF0ZUhlYWRlclJvd3MoKSx0aGlzLl9hMTF5VXBkYXRlRm9vdGVyUm93cygpfV9hMTF5VXBkYXRlSGVhZGVyUm93cygpe0FycmF5LmZyb20odGhpcy4kLmhlYWRlci5jaGlsZHJlbikuZm9yRWFjaCgoKHQsZSk9PnQuc2V0QXR0cmlidXRlKCJhcmlhLXJvd2luZGV4IixlKzEpKSl9X2ExMXlVcGRhdGVGb290ZXJSb3dzKCl7QXJyYXkuZnJvbSh0aGlzLiQuZm9vdGVyLmNoaWxkcmVuKS5mb3JFYWNoKCgodCxlKT0+dC5zZXRBdHRyaWJ1dGUoImFyaWEtcm93aW5kZXgiLHRoaXMuX2ExMXlHZXRIZWFkZXJSb3dDb3VudCh0aGlzLl9jb2x1bW5UcmVlKSt0aGlzLnNpemUrZSsxKSkpfV9hMTF5VXBkYXRlUm93Um93aW5kZXgodCxlKXt0LnNldEF0dHJpYnV0ZSgiYXJpYS1yb3dpbmRleCIsZSt0aGlzLl9hMTF5R2V0SGVhZGVyUm93Q291bnQodGhpcy5fY29sdW1uVHJlZSkrMSl9X2ExMXlVcGRhdGVSb3dTZWxlY3RlZCh0LGUpe3Quc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixCb29sZWFuKGUpKSxBcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2goKHQ9PnQuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixCb29sZWFuKGUpKSkpfV9hMTF5VXBkYXRlUm93TGV2ZWwodCxlKXt0LnNldEF0dHJpYnV0ZSgiYXJpYS1sZXZlbCIsZSsxKX1fYTExeVVwZGF0ZVJvd0RldGFpbHNPcGVuZWQodCxlKXtBcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2goKHQ9PnsiYm9vbGVhbiI9PXR5cGVvZiBlP3Quc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixlKTp0Lmhhc0F0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIpJiZ0LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIpfSkpfV9hMTF5U2V0Um93RGV0YWlsc0NlbGwodCxlKXtBcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pnt0IT09ZSYmdC5zZXRBdHRyaWJ1dGUoImFyaWEtY29udHJvbHMiLGUuaWQpfSkpfV9hMTF5VXBkYXRlQ2VsbENvbHNwYW4odCxlKXt0LnNldEF0dHJpYnV0ZSgiYXJpYS1jb2xzcGFuIixOdW1iZXIoZSkpfV9hMTF5VXBkYXRlU29ydGVycygpe0FycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsKCJ2YWFkaW4tZ3JpZC1zb3J0ZXIiKSkuZm9yRWFjaCgodD0+e2xldCBlPXQucGFyZW50Tm9kZTtmb3IoO2UmJiJ2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQiIT09ZS5sb2NhbE5hbWU7KWU9ZS5wYXJlbnROb2RlO2UmJmUuYXNzaWduZWRTbG90JiZlLmFzc2lnbmVkU2xvdC5wYXJlbnROb2RlLnNldEF0dHJpYnV0ZSgiYXJpYS1zb3J0Iix7YXNjOiJhc2NlbmRpbmciLGRlc2M6ImRlc2NlbmRpbmcifVtTdHJpbmcodC5kaXJlY3Rpb24pXXx8Im5vbmUiKX0pKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLE4kdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2FjdGl2ZUl0ZW06e3R5cGU6T2JqZWN0LG5vdGlmeTohMCx2YWx1ZTpudWxsfX19cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuJC5zY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fb25DbGljay5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNlbGwtYWN0aXZhdGUiLHRoaXMuX2FjdGl2YXRlSXRlbS5iaW5kKHRoaXMpKX1fYWN0aXZhdGVJdGVtKHQpe2NvbnN0IGU9dC5kZXRhaWwubW9kZWwsbj1lP2UuaXRlbTpudWxsO24mJih0aGlzLmFjdGl2ZUl0ZW09dGhpcy5faXRlbXNFcXVhbCh0aGlzLmFjdGl2ZUl0ZW0sbik/bnVsbDpuKX1fb25DbGljayh0KXtpZih0LmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2NvbnN0IGU9dC5jb21wb3NlZFBhdGgoKSxuPWVbZS5pbmRleE9mKHRoaXMuJC50YWJsZSktM107aWYoIW58fG4uZ2V0QXR0cmlidXRlKCJwYXJ0IikuaW5kZXhPZigiZGV0YWlscy1jZWxsIik+LTEpcmV0dXJuO2NvbnN0IGk9bi5fY29udGVudCxyPXRoaXMuZ2V0Um9vdE5vZGUoKS5hY3RpdmVFbGVtZW50O2kuY29udGFpbnMocil8fHRoaXMuX2lzRm9jdXNhYmxlKHQudGFyZ2V0KXx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2VsbC1hY3RpdmF0ZSIse2RldGFpbDp7bW9kZWw6dGhpcy5fX2dldFJvd01vZGVsKG4ucGFyZW50RWxlbWVudCl9fSkpfV9pc0ZvY3VzYWJsZSh0KXtyZXR1cm4gSSR0KHQpfX0sSSR0PXQ9PntpZighdC5wYXJlbnROb2RlKXJldHVybiExO2NvbnN0IGU9LTEhPT1BcnJheS5mcm9tKHQucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKCJbdGFiaW5kZXhdLCBidXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBvYmplY3QsIGlmcmFtZSwgbGFiZWwsIGFbaHJlZl0sIGFyZWFbaHJlZl0iKSkuZmlsdGVyKCh0PT4iY2VsbCBib2R5LWNlbGwiIT09dC5nZXRBdHRyaWJ1dGUoInBhcnQiKSkpLmluZGV4T2YodCk7cmV0dXJuIXQuZGlzYWJsZWQmJmV9LFIkdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2l0ZW1zOkFycmF5fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2l0ZW1zQ2hhbmdlZChpdGVtcywgaXRlbXMuKiwgaXNBdHRhY2hlZCkiXX1faXRlbXNDaGFuZ2VkKHQsZSxuKXtpZihuKXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gbnVsbD09dCYmKHRoaXMuc2l6ZT0wKSx2b2lkKHRoaXMuZGF0YVByb3ZpZGVyPT09dGhpcy5fYXJyYXlEYXRhUHJvdmlkZXImJih0aGlzLmRhdGFQcm92aWRlcj12b2lkIDApKTt0aGlzLnNpemU9dC5sZW5ndGgsdGhpcy5kYXRhUHJvdmlkZXI9dGhpcy5kYXRhUHJvdmlkZXJ8fHRoaXMuX2FycmF5RGF0YVByb3ZpZGVyLHRoaXMuY2xlYXJDYWNoZSgpLHRoaXMuX2Vuc3VyZUZpcnN0UGFnZUxvYWRlZCgpfX1fYXJyYXlEYXRhUHJvdmlkZXIodCxlKXtsZXQgbj0oQXJyYXkuaXNBcnJheSh0aGlzLml0ZW1zKT90aGlzLml0ZW1zOltdKS5zbGljZSgwKTt0aGlzLl9maWx0ZXJzJiZ0aGlzLl9jaGVja1BhdGhzKHRoaXMuX2ZpbHRlcnMsImZpbHRlcmluZyIsbikmJihuPXRoaXMuX2ZpbHRlcihuKSksdGhpcy5zaXplPW4ubGVuZ3RoLHQuc29ydE9yZGVycy5sZW5ndGgmJnRoaXMuX2NoZWNrUGF0aHModGhpcy5fc29ydGVycywic29ydGluZyIsbikmJihuPW4uc29ydCh0aGlzLl9tdWx0aVNvcnQuYmluZCh0aGlzKSkpO2NvbnN0IGk9dC5wYWdlKnQucGFnZVNpemU7ZShuLnNsaWNlKGksaSt0LnBhZ2VTaXplKSxuLmxlbmd0aCl9X2NoZWNrUGF0aHModCxlLG4pe2lmKCFuLmxlbmd0aClyZXR1cm4hMTtsZXQgaT0hMDtmb3IobGV0IHIgaW4gdCl7Y29uc3Qgbz10W3JdLnBhdGg7aWYoIW98fC0xPT09by5pbmRleE9mKCIuIikpY29udGludWU7Y29uc3QgYT1vLnJlcGxhY2UoL1wuW14uXSokLywiIik7dm9pZCAwPT09Zm8uZ2V0KGEsblswXSkmJihjb25zb2xlLndhcm4oYFBhdGggIiR7b30iIHVzZWQgZm9yICR7ZX0gZG9lcyBub3QgZXhpc3QgaW4gYWxsIG9mIHRoZSBpdGVtcywgJHtlfSBpcyBkaXNhYmxlZC5gKSxpPSExKX1yZXR1cm4gaX1fbXVsdGlTb3J0KHQsZSl7cmV0dXJuIHRoaXMuX3NvcnRlcnMubWFwKChuPT4iYXNjIj09PW4uZGlyZWN0aW9uP3RoaXMuX2NvbXBhcmUoZm8uZ2V0KG4ucGF0aCx0KSxmby5nZXQobi5wYXRoLGUpKToiZGVzYyI9PT1uLmRpcmVjdGlvbj90aGlzLl9jb21wYXJlKGZvLmdldChuLnBhdGgsZSksZm8uZ2V0KG4ucGF0aCx0KSk6MCkpLnJlZHVjZSgoKHQsZSk9PnR8fGUpLDApfV9ub3JtYWxpemVFbXB0eVZhbHVlKHQpe3JldHVyblt2b2lkIDAsbnVsbF0uaW5kZXhPZih0KT49MD8iIjppc05hTih0KT90LnRvU3RyaW5nKCk6dH1fY29tcGFyZSh0LGUpe3JldHVybih0PXRoaXMuX25vcm1hbGl6ZUVtcHR5VmFsdWUodCkpPChlPXRoaXMuX25vcm1hbGl6ZUVtcHR5VmFsdWUoZSkpPy0xOnQ+ZT8xOjB9X2ZpbHRlcih0KXtyZXR1cm4gdC5maWx0ZXIoKHQ9PjA9PT10aGlzLl9maWx0ZXJzLmZpbHRlcigoZT0+e2NvbnN0IG49dGhpcy5fbm9ybWFsaXplRW1wdHlWYWx1ZShmby5nZXQoZS5wYXRoLHQpKSxpPXRoaXMuX25vcm1hbGl6ZUVtcHR5VmFsdWUoZS52YWx1ZSkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO3JldHVybi0xPT09bi50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihpKX0pKS5sZW5ndGgpKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLE8kdD10PT5jbGFzcyBleHRlbmRzKHBpKHQpKXtyZWFkeSgpe3N1cGVyLnJlYWR5KCk7Y29uc3QgdD10aGlzLiQuc2Nyb2xsZXI7aWkodCwidHJhY2siLHRoaXMuX29uSGVhZGVyVHJhY2suYmluZCh0aGlzKSksdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLChlPT50Lmhhc0F0dHJpYnV0ZSgiY29sdW1uLXJlc2l6aW5nIikmJmUucHJldmVudERlZmF1bHQoKSkpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCh0PT4icmVzaXplLWhhbmRsZSI9PXQudGFyZ2V0LmdldEF0dHJpYnV0ZSgicGFydCIpJiZ0LnByZXZlbnREZWZhdWx0KCkpKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsKHQ9PiJyZXNpemUtaGFuZGxlIj09PXQudGFyZ2V0LmdldEF0dHJpYnV0ZSgicGFydCIpJiZ0LnByZXZlbnREZWZhdWx0KCkpKX1fb25IZWFkZXJUcmFjayh0KXtjb25zdCBlPXQudGFyZ2V0O2lmKCJyZXNpemUtaGFuZGxlIj09PWUuZ2V0QXR0cmlidXRlKCJwYXJ0Iikpe2xldCBuPWUucGFyZW50RWxlbWVudC5fY29sdW1uO2Zvcih0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImNvbHVtbi1yZXNpemluZyIsITAsdGhpcy4kLnNjcm9sbGVyKTsidmFhZGluLWdyaWQtY29sdW1uLWdyb3VwIj09PW4ubG9jYWxOYW1lOyluPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4uX2NoaWxkQ29sdW1ucywwKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9vcmRlci1lLl9vcmRlcn0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LmhpZGRlbn0pKS5wb3AoKTtjb25zdCBpPUFycmF5LmZyb20odGhpcy4kLmhlYWRlci5xdWVyeVNlbGVjdG9yQWxsKCdbcGFydH49InJvdyJdOmxhc3QtY2hpbGQgW3BhcnR+PSJjZWxsIl0nKSkscj1pLmZpbHRlcigodD0+dC5fY29sdW1uPT09bikpWzBdO2lmKHIub2Zmc2V0V2lkdGgpe2NvbnN0IGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUociksaT0xMCtwYXJzZUludChlLnBhZGRpbmdMZWZ0KStwYXJzZUludChlLnBhZGRpbmdSaWdodCkrcGFyc2VJbnQoZS5ib3JkZXJMZWZ0V2lkdGgpK3BhcnNlSW50KGUuYm9yZGVyUmlnaHRXaWR0aCkrcGFyc2VJbnQoZS5tYXJnaW5MZWZ0KStwYXJzZUludChlLm1hcmdpblJpZ2h0KSxvPXIub2Zmc2V0V2lkdGgrKHRoaXMuX19pc1JUTD9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtdC5kZXRhaWwueDp0LmRldGFpbC54LXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQpO24ud2lkdGg9TWF0aC5tYXgoaSxvKSsicHgiLG4uZmxleEdyb3c9MH1pLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX2NvbHVtbi5fb3JkZXItZS5fY29sdW1uLl9vcmRlcn0pKS5mb3JFYWNoKChmdW5jdGlvbih0LGUsbil7ZTxuLmluZGV4T2YocikmJih0Ll9jb2x1bW4ud2lkdGg9dC5vZmZzZXRXaWR0aCsicHgiLHQuX2NvbHVtbi5mbGV4R3Jvdz0wKX0pKSwiZW5kIj09PXQuZGV0YWlsLnN0YXRlJiYodGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJjb2x1bW4tcmVzaXppbmciLCExLHRoaXMuJC5zY3JvbGxlciksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sdW1uLXJlc2l6ZSIse2RldGFpbDp7cmVzaXplZENvbHVtbjpufX0pKSksdGhpcy5fcmVzaXplSGFuZGxlcigpfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLHokdD1jbGFzcyB0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmdyaWQ9dCx0aGlzLnBhcmVudENhY2hlPWUsdGhpcy5wYXJlbnRJdGVtPW4sdGhpcy5pdGVtQ2FjaGVzPXt9LHRoaXMuaXRlbXM9e30sdGhpcy5lZmZlY3RpdmVTaXplPTAsdGhpcy5zaXplPTAsdGhpcy5wZW5kaW5nUmVxdWVzdHM9e319aXNMb2FkaW5nKCl7cmV0dXJuIEJvb2xlYW4oT2JqZWN0LmtleXModGhpcy5wZW5kaW5nUmVxdWVzdHMpLmxlbmd0aHx8T2JqZWN0LmtleXModGhpcy5pdGVtQ2FjaGVzKS5maWx0ZXIoKHQ9PnRoaXMuaXRlbUNhY2hlc1t0XS5pc0xvYWRpbmcoKSkpWzBdKX1nZXRJdGVtRm9ySW5kZXgodCl7Y29uc3R7Y2FjaGU6ZSxzY2FsZWRJbmRleDpufT10aGlzLmdldENhY2hlQW5kSW5kZXgodCk7cmV0dXJuIGUuaXRlbXNbbl19dXBkYXRlU2l6ZSgpe3RoaXMuZWZmZWN0aXZlU2l6ZT0hdGhpcy5wYXJlbnRJdGVtfHx0aGlzLmdyaWQuX2lzRXhwYW5kZWQodGhpcy5wYXJlbnRJdGVtKT90aGlzLnNpemUrT2JqZWN0LmtleXModGhpcy5pdGVtQ2FjaGVzKS5yZWR1Y2UoKCh0LGUpPT57Y29uc3Qgbj10aGlzLml0ZW1DYWNoZXNbZV07cmV0dXJuIG4udXBkYXRlU2l6ZSgpLHQrbi5lZmZlY3RpdmVTaXplfSksMCk6MH1lbnN1cmVTdWJDYWNoZUZvclNjYWxlZEluZGV4KGUpe2lmKCF0aGlzLml0ZW1DYWNoZXNbZV0pe2NvbnN0IG49bmV3IHQodGhpcy5ncmlkLHRoaXMsdGhpcy5pdGVtc1tlXSk7dGhpcy5pdGVtQ2FjaGVzW2VdPW4sdGhpcy5ncmlkLl9sb2FkUGFnZSgwLG4pfX1nZXRDYWNoZUFuZEluZGV4KHQpe2xldCBlPXQ7Y29uc3Qgbj1PYmplY3Qua2V5cyh0aGlzLml0ZW1DYWNoZXMpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtjb25zdCBpPU51bWJlcihuW3RdKSxyPXRoaXMuaXRlbUNhY2hlc1tpXTtpZihlPD1pKXJldHVybntjYWNoZTp0aGlzLHNjYWxlZEluZGV4OmV9O2lmKGU8PWkrci5lZmZlY3RpdmVTaXplKXJldHVybiByLmdldENhY2hlQW5kSW5kZXgoZS1pLTEpO2UtPXIuZWZmZWN0aXZlU2l6ZX1yZXR1cm57Y2FjaGU6dGhpcyxzY2FsZWRJbmRleDplfX19LEQkdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3BhZ2VTaXplOnt0eXBlOk51bWJlcix2YWx1ZTo1MCxvYnNlcnZlcjoiX3BhZ2VTaXplQ2hhbmdlZCJ9LGRhdGFQcm92aWRlcjp7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLG9ic2VydmVyOiJfZGF0YVByb3ZpZGVyQ2hhbmdlZCJ9LGxvYWRpbmc6e3R5cGU6Qm9vbGVhbixub3RpZnk6ITAscmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxfY2FjaGU6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB6JHQodGhpcyl9fSxpdGVtSWRQYXRoOnt0eXBlOlN0cmluZyx2YWx1ZTpudWxsfSxleHBhbmRlZEl0ZW1zOnt0eXBlOk9iamVjdCxub3RpZnk6ITAsdmFsdWU6KCk9PltdfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9zaXplQ2hhbmdlZChzaXplKSIsIl9pdGVtSWRQYXRoQ2hhbmdlZChpdGVtSWRQYXRoKSIsIl9leHBhbmRlZEl0ZW1zQ2hhbmdlZChleHBhbmRlZEl0ZW1zLiopIl19X3NpemVDaGFuZ2VkKHQpe2NvbnN0IGU9dC10aGlzLl9jYWNoZS5zaXplO3RoaXMuX2NhY2hlLnNpemUrPWUsdGhpcy5fY2FjaGUuZWZmZWN0aXZlU2l6ZSs9ZSx0aGlzLl9lZmZlY3RpdmVTaXplPXRoaXMuX2NhY2hlLmVmZmVjdGl2ZVNpemUsdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoMCksdGhpcy5fZGVib3VuY2VJbmNyZWFzZVBvb2wmJnRoaXMuX2RlYm91bmNlSW5jcmVhc2VQb29sLmZsdXNoKCl9X2dldEl0ZW0odCxlKXtpZih0Pj10aGlzLl9lZmZlY3RpdmVTaXplKXJldHVybjtlLmluZGV4PXQ7Y29uc3R7Y2FjaGU6bixzY2FsZWRJbmRleDppfT10aGlzLl9jYWNoZS5nZXRDYWNoZUFuZEluZGV4KHQpLHI9bi5pdGVtc1tpXTtyPyh0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImxvYWRpbmciLCExLGUpLHRoaXMuX3VwZGF0ZUl0ZW0oZSxyKSx0aGlzLl9pc0V4cGFuZGVkKHIpJiZuLmVuc3VyZVN1YkNhY2hlRm9yU2NhbGVkSW5kZXgoaSkpOih0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImxvYWRpbmciLCEwLGUpLHRoaXMuX2xvYWRQYWdlKHRoaXMuX2dldFBhZ2VGb3JJbmRleChpKSxuKSl9X2V4cGFuZGVkSW5zdGFuY2VDaGFuZ2VkQ2FsbGJhY2sodCxlKXt2b2lkIDAhPT10Lml0ZW0mJihlP3RoaXMuZXhwYW5kSXRlbSh0Lml0ZW0pOnRoaXMuY29sbGFwc2VJdGVtKHQuaXRlbSkpfWdldEl0ZW1JZCh0KXtyZXR1cm4gdGhpcy5pdGVtSWRQYXRoP3RoaXMuZ2V0KHRoaXMuaXRlbUlkUGF0aCx0KTp0fV9pc0V4cGFuZGVkKHQpe3JldHVybiB0aGlzLl9fZXhwYW5kZWRLZXlzLmhhcyh0aGlzLmdldEl0ZW1JZCh0KSl9X2V4cGFuZGVkSXRlbXNDaGFuZ2VkKCl7dGhpcy5fX2NhY2hlRXhwYW5kZWRLZXlzKCksdGhpcy5fY2FjaGUudXBkYXRlU2l6ZSgpLHRoaXMuX2VmZmVjdGl2ZVNpemU9dGhpcy5fY2FjaGUuZWZmZWN0aXZlU2l6ZSx0aGlzLl9hc3NpZ25Nb2RlbHMoKX1faXRlbUlkUGF0aENoYW5nZWQoKXt0aGlzLl9fY2FjaGVFeHBhbmRlZEtleXMoKX1fX2NhY2hlRXhwYW5kZWRLZXlzKCl7dGhpcy5leHBhbmRlZEl0ZW1zJiYodGhpcy5fX2V4cGFuZGVkS2V5cz1uZXcgU2V0LHRoaXMuZXhwYW5kZWRJdGVtcy5mb3JFYWNoKCh0PT57dGhpcy5fX2V4cGFuZGVkS2V5cy5hZGQodGhpcy5nZXRJdGVtSWQodCkpfSkpKX1leHBhbmRJdGVtKHQpe3RoaXMuX2lzRXhwYW5kZWQodCl8fCh0aGlzLmV4cGFuZGVkSXRlbXM9Wy4uLnRoaXMuZXhwYW5kZWRJdGVtcyx0XSl9Y29sbGFwc2VJdGVtKHQpe3RoaXMuX2lzRXhwYW5kZWQodCkmJih0aGlzLmV4cGFuZGVkSXRlbXM9dGhpcy5leHBhbmRlZEl0ZW1zLmZpbHRlcigoZT0+IXRoaXMuX2l0ZW1zRXF1YWwoZSx0KSkpKX1fZ2V0SW5kZXhMZXZlbCh0KXtsZXR7Y2FjaGU6ZX09dGhpcy5fY2FjaGUuZ2V0Q2FjaGVBbmRJbmRleCh0KSxuPTA7Zm9yKDtlLnBhcmVudENhY2hlOyllPWUucGFyZW50Q2FjaGUsbisrO3JldHVybiBufV9jYW5Qb3B1bGF0ZSgpe3JldHVybiBCb29sZWFuKHRoaXMuX2hhc0RhdGEmJnRoaXMuX2NvbHVtblRyZWUpfV9sb2FkUGFnZSh0LGUpe2lmKCFlLnBlbmRpbmdSZXF1ZXN0c1t0XSYmdGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMuX3NldExvYWRpbmcoITApLGUucGVuZGluZ1JlcXVlc3RzW3RdPSEwO2NvbnN0IG49e3BhZ2U6dCxwYWdlU2l6ZTp0aGlzLnBhZ2VTaXplLHNvcnRPcmRlcnM6dGhpcy5fbWFwU29ydGVycygpLGZpbHRlcnM6dGhpcy5fbWFwRmlsdGVycygpLHBhcmVudEl0ZW06ZS5wYXJlbnRJdGVtfTt0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbCYmdGhpcy5fZGVib3VuY2VJbmNyZWFzZVBvb2wuZmx1c2goKSx0aGlzLmRhdGFQcm92aWRlcihuLCgoaSxyKT0+e3ZvaWQgMCE9PXI/ZS5zaXplPXI6bi5wYXJlbnRJdGVtJiYoZS5zaXplPWkubGVuZ3RoKTtjb25zdCBvPUFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5tYXAoKHQ9PnQuX2l0ZW0pKTtpLmZvckVhY2goKChuLGkpPT57Y29uc3Qgcj10KnRoaXMucGFnZVNpemUraTtlLml0ZW1zW3JdPW4sdGhpcy5faXNFeHBhbmRlZChuKSYmby5pbmRleE9mKG4pPi0xJiZlLmVuc3VyZVN1YkNhY2hlRm9yU2NhbGVkSW5kZXgocil9KSksdGhpcy5faGFzRGF0YT0hMCxkZWxldGUgZS5wZW5kaW5nUmVxdWVzdHNbdF0sdGhpcy5fZGVib3VuY2VyQXBwbHlDYWNoZWREYXRhPVRuLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlckFwcGx5Q2FjaGVkRGF0YSxndC5hZnRlcigwKSwoKCk9Pnt0aGlzLl9zZXRMb2FkaW5nKCExKSx0aGlzLl9jYWNoZS51cGRhdGVTaXplKCksdGhpcy5fZWZmZWN0aXZlU2l6ZT10aGlzLl9jYWNoZS5lZmZlY3RpdmVTaXplLEFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpLmZvckVhY2goKHQ9Pnt0aGlzLl9jYWNoZS5nZXRJdGVtRm9ySW5kZXgodC5pbmRleCkmJnRoaXMuX2dldEl0ZW0odC5pbmRleCx0KX0pKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKSx0aGlzLl9fc2Nyb2xsVG9QZW5kaW5nSW5kZXgoKX0pKSx0aGlzLl9jYWNoZS5pc0xvYWRpbmcoKXx8dGhpcy5fZGVib3VuY2VyQXBwbHlDYWNoZWREYXRhLmZsdXNoKCksdGhpcy5fX2l0ZW1zUmVjZWl2ZWQoKX0pKX19X2dldFBhZ2VGb3JJbmRleCh0KXtyZXR1cm4gTWF0aC5mbG9vcih0L3RoaXMucGFnZVNpemUpfWNsZWFyQ2FjaGUoKXt0aGlzLl9jYWNoZT1uZXcgeiR0KHRoaXMpLEFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5mb3JFYWNoKCh0PT57QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5mb3JFYWNoKCh0PT57dC5faW5zdGFuY2UmJnQuX2luc3RhbmNlLl9zZXRQZW5kaW5nUHJvcGVydHkoIml0ZW0iLHt9LCExKX0pKX0pKSx0aGlzLl9jYWNoZS5zaXplPXRoaXMuc2l6ZXx8MCx0aGlzLl9jYWNoZS51cGRhdGVTaXplKCksdGhpcy5faGFzRGF0YT0hMSx0aGlzLl9hc3NpZ25Nb2RlbHMoKSx0aGlzLl9lZmZlY3RpdmVTaXplJiZ0aGlzLl9pbml0aWFsUG9vbENyZWF0ZWR8fHRoaXMuX2xvYWRQYWdlKDAsdGhpcy5fY2FjaGUpfV9wYWdlU2l6ZUNoYW5nZWQodCxlKXt2b2lkIDAhPT1lJiZ0IT09ZSYmdGhpcy5jbGVhckNhY2hlKCl9X2NoZWNrU2l6ZSgpe3ZvaWQgMD09PXRoaXMuc2l6ZSYmMD09PXRoaXMuX2VmZmVjdGl2ZVNpemUmJmNvbnNvbGUud2FybigiVGhlIDx2YWFkaW4tZ3JpZD4gbmVlZHMgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyBpbiBvcmRlciB0byBkaXNwbGF5IHJvd3MuIFNldCB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIHRvIHRoZSBgc2l6ZWAgcHJvcGVydHksIG9yIHByb3ZpZGUgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHRoZSBgZGF0YVByb3ZpZGVyYOKAmXMgYGNhbGxiYWNrYCBjYWxsLiIpfV9kYXRhUHJvdmlkZXJDaGFuZ2VkKHQsZSl7dm9pZCAwIT09ZSYmdGhpcy5jbGVhckNhY2hlKCksdCYmdGhpcy5pdGVtcyYmdGhpcy5pdGVtcy5sZW5ndGgmJnRoaXMuX3Njcm9sbFRvSW5kZXgodGhpcy5fZmlyc3RWaXNpYmxlSW5kZXgpLHRoaXMuX2Vuc3VyZUZpcnN0UGFnZUxvYWRlZCgpLHRoaXMuX2RlYm91bmNlckNoZWNrU2l6ZT1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJDaGVja1NpemUsZ3QuYWZ0ZXIoMmUzKSx0aGlzLl9jaGVja1NpemUuYmluZCh0aGlzKSksdGhpcy5fc2Nyb2xsSGFuZGxlcigpfV9lbnN1cmVGaXJzdFBhZ2VMb2FkZWQoKXt0aGlzLl9oYXNEYXRhfHx0aGlzLl9sb2FkUGFnZSgwLHRoaXMuX2NhY2hlKX1faXRlbXNFcXVhbCh0LGUpe3JldHVybiB0aGlzLmdldEl0ZW1JZCh0KT09PXRoaXMuZ2V0SXRlbUlkKGUpfV9nZXRJdGVtSW5kZXhJbkFycmF5KHQsZSl7bGV0IG49LTE7cmV0dXJuIGUuZm9yRWFjaCgoKGUsaSk9Pnt0aGlzLl9pdGVtc0VxdWFsKGUsdCkmJihuPWkpfSkpLG59c2Nyb2xsVG9JbmRleCh0KXtzdXBlci5zY3JvbGxUb0luZGV4KHQpLGlzTmFOKHQpfHwhdGhpcy5fY2FjaGUuaXNMb2FkaW5nKCkmJnRoaXMuY2xpZW50SGVpZ2h0fHwodGhpcy5fX3BlbmRpbmdTY3JvbGxUb0luZGV4PXQpfV9fc2Nyb2xsVG9QZW5kaW5nSW5kZXgoKXtpZih0aGlzLl9fcGVuZGluZ1Njcm9sbFRvSW5kZXgmJnRoaXMuJC5pdGVtcy5jaGlsZHJlbi5sZW5ndGgpe2NvbnN0IHQ9dGhpcy5fX3BlbmRpbmdTY3JvbGxUb0luZGV4O2RlbGV0ZSB0aGlzLl9fcGVuZGluZ1Njcm9sbFRvSW5kZXgsdGhpcy5fZGVib3VuY2VJbmNyZWFzZVBvb2wmJnRoaXMuX2RlYm91bmNlSW5jcmVhc2VQb29sLmZsdXNoKCksdGhpcy5zY3JvbGxUb0luZGV4KHQpfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLEIkdD10PT5jbGFzcyBleHRlbmRzIHR7cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuX2FkZE5vZGVPYnNlcnZlcigpfV9oYXNDb2x1bW5Hcm91cHModCl7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYoInZhYWRpbi1ncmlkLWNvbHVtbi1ncm91cCI9PT10W2VdLmxvY2FsTmFtZSlyZXR1cm4hMDtyZXR1cm4hMX1fZ2V0Q2hpbGRDb2x1bW5zKHQpe3JldHVybiB6aS5nZXRGbGF0dGVuZWROb2Rlcyh0KS5maWx0ZXIodGhpcy5faXNDb2x1bW5FbGVtZW50KX1fZmxhdHRlbkNvbHVtbkdyb3Vwcyh0KXtyZXR1cm4gdC5tYXAoKHQ9PiJ2YWFkaW4tZ3JpZC1jb2x1bW4tZ3JvdXAiPT09dC5sb2NhbE5hbWU/dGhpcy5fZ2V0Q2hpbGRDb2x1bW5zKHQpOlt0XSkpLnJlZHVjZSgoKHQsZSk9PnQuY29uY2F0KGUpKSxbXSl9X2dldENvbHVtblRyZWUoKXtjb25zdCB0PVtdO2ZvcihsZXQgZT16aS5nZXRGbGF0dGVuZWROb2Rlcyh0aGlzKS5maWx0ZXIodGhpcy5faXNDb2x1bW5FbGVtZW50KTt0LnB1c2goZSksdGhpcy5faGFzQ29sdW1uR3JvdXBzKGUpOyllPXRoaXMuX2ZsYXR0ZW5Db2x1bW5Hcm91cHMoZSk7cmV0dXJuIHR9X3VwZGF0ZUNvbHVtblRyZWUoKXtjb25zdCB0PXRoaXMuX2dldENvbHVtblRyZWUoKTt0aGlzLl9hcnJheUVxdWFscyh0LHRoaXMuX2NvbHVtblRyZWUpfHwodGhpcy5fY29sdW1uVHJlZT10KX1fYWRkTm9kZU9ic2VydmVyKCl7dGhpcy5fb2JzZXJ2ZXI9bmV3IHppKHRoaXMsKHQ9Pntjb25zdCBlPXQuYWRkZWROb2Rlcy5maWx0ZXIoKHQ9PiJ0ZW1wbGF0ZSI9PT10LmxvY2FsTmFtZSYmdC5jbGFzc0xpc3QuY29udGFpbnMoInJvdy1kZXRhaWxzIikpKVswXTtlJiZ0aGlzLl9yb3dEZXRhaWxzVGVtcGxhdGUhPT1lJiYodGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlPWUpO2NvbnN0IG49dD0+dC5maWx0ZXIodGhpcy5faXNDb2x1bW5FbGVtZW50KS5sZW5ndGg+MDtpZihuKHQuYWRkZWROb2Rlcyl8fG4odC5yZW1vdmVkTm9kZXMpKXtjb25zdCBlPXQucmVtb3ZlZE5vZGVzLmZsYXRNYXAoKHQ9PnQuX2FsbENlbGxzKSksbj10PT5lLmZpbHRlcigoZT0+ZS5fY29udGVudC5jb250YWlucyh0KSkpLmxlbmd0aDt0aGlzLl9fcmVtb3ZlU29ydGVycyh0aGlzLl9zb3J0ZXJzLmZpbHRlcihuKSksdGhpcy5fX3JlbW92ZUZpbHRlcnModGhpcy5fZmlsdGVycy5maWx0ZXIobikpLHRoaXMuX3VwZGF0ZUNvbHVtblRyZWUoKX10aGlzLl9kZWJvdW5jZXJDaGVja0ltcG9ydHM9VG4uZGVib3VuY2UodGhpcy5fZGVib3VuY2VyQ2hlY2tJbXBvcnRzLGd0LmFmdGVyKDJlMyksdGhpcy5fY2hlY2tJbXBvcnRzLmJpbmQodGhpcykpLHRoaXMuX2Vuc3VyZUZpcnN0UGFnZUxvYWRlZCgpfSkpfV9hcnJheUVxdWFscyh0LGUpe2lmKCF0fHwhZXx8dC5sZW5ndGghPWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgbj0wLGk9dC5sZW5ndGg7bjxpO24rKylpZih0W25daW5zdGFuY2VvZiBBcnJheSYmZVtuXWluc3RhbmNlb2YgQXJyYXkpe2lmKCF0aGlzLl9hcnJheUVxdWFscyh0W25dLGVbbl0pKXJldHVybiExfWVsc2UgaWYodFtuXSE9ZVtuXSlyZXR1cm4hMTtyZXR1cm4hMH1fY2hlY2tJbXBvcnRzKCl7WyJ2YWFkaW4tZ3JpZC1jb2x1bW4tZ3JvdXAiLCJ2YWFkaW4tZ3JpZC1maWx0ZXIiLCJ2YWFkaW4tZ3JpZC1maWx0ZXItY29sdW1uIiwidmFhZGluLWdyaWQtdHJlZS10b2dnbGUiLCJ2YWFkaW4tZ3JpZC1zZWxlY3Rpb24tY29sdW1uIiwidmFhZGluLWdyaWQtc29ydC1jb2x1bW4iLCJ2YWFkaW4tZ3JpZC1zb3J0ZXIiXS5mb3JFYWNoKCh0PT57Y29uc3QgZT10aGlzLnF1ZXJ5U2VsZWN0b3IodCk7IWV8fGUgaW5zdGFuY2VvZiB5ZXx8Y29uc29sZS53YXJuKGBNYWtlIHN1cmUgeW91IGhhdmUgaW1wb3J0ZWQgdGhlIHJlcXVpcmVkIG1vZHVsZSBmb3IgPCR7dH0+IGVsZW1lbnQuYCl9KSl9X3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbigpe0FycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRyIikpLmZvckVhY2goKHQ9PnRoaXMuX3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbkZvclJvdyh0KSkpfV91cGRhdGVGaXJzdEFuZExhc3RDb2x1bW5Gb3JSb3codCl7QXJyYXkuZnJvbSh0LnF1ZXJ5U2VsZWN0b3JBbGwoJ1twYXJ0fj0iY2VsbCJdOm5vdChbcGFydH49ImRldGFpbHMtY2VsbCJdKScpKS5zb3J0KCgodCxlKT0+dC5fY29sdW1uLl9vcmRlci1lLl9jb2x1bW4uX29yZGVyKSkuZm9yRWFjaCgoKHQsZSxuKT0+e3RoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZmlyc3QtY29sdW1uIiwwPT09ZSx0KSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImxhc3QtY29sdW1uIixlPT09bi5sZW5ndGgtMSx0KX0pKX1faXNDb2x1bW5FbGVtZW50KHQpe3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJi9cYmNvbHVtblxiLy50ZXN0KHQubG9jYWxOYW1lKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLEgkdD10PT5jbGFzcyBleHRlbmRzIHR7Z2V0RXZlbnRDb250ZXh0KHQpe2NvbnN0IGU9e30sbj10LmNvbXBvc2VkUGF0aCgpLGk9bltuLmluZGV4T2YodGhpcy4kLnRhYmxlKS0zXTtyZXR1cm4gaT8oZS5zZWN0aW9uPVsiYm9keSIsImhlYWRlciIsImZvb3RlciIsImRldGFpbHMiXS5maWx0ZXIoKHQ9PmkuZ2V0QXR0cmlidXRlKCJwYXJ0IikuaW5kZXhPZih0KT4tMSkpWzBdLGkuX2NvbHVtbiYmKGUuY29sdW1uPWkuX2NvbHVtbiksImJvZHkiIT09ZS5zZWN0aW9uJiYiZGV0YWlscyIhPT1lLnNlY3Rpb258fE9iamVjdC5hc3NpZ24oZSx0aGlzLl9fZ2V0Um93TW9kZWwoaS5wYXJlbnRFbGVtZW50KSksZSk6ZX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLEYkdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue19maWx0ZXJzOnt0eXBlOkFycmF5LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fX19cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZmlsdGVyLWNoYW5nZWQiLHRoaXMuX2ZpbHRlckNoYW5nZWQuYmluZCh0aGlzKSl9X2ZpbHRlckNoYW5nZWQodCl7dC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9fYWRkRmlsdGVyKHQudGFyZ2V0KSx0aGlzLl9fYXBwbHlGaWx0ZXJzKCl9X19yZW1vdmVGaWx0ZXJzKHQpezAhPXQubGVuZ3RoJiYodGhpcy5fZmlsdGVycz10aGlzLl9maWx0ZXJzLmZpbHRlcigoZT0+dC5pbmRleE9mKGUpPDApKSx0aGlzLl9fYXBwbHlGaWx0ZXJzKCkpfV9fYWRkRmlsdGVyKHQpey0xPT09dGhpcy5fZmlsdGVycy5pbmRleE9mKHQpJiZ0aGlzLl9maWx0ZXJzLnB1c2godCl9X19hcHBseUZpbHRlcnMoKXt0aGlzLmRhdGFQcm92aWRlciYmdGhpcy5pc0F0dGFjaGVkJiZ0aGlzLmNsZWFyQ2FjaGUoKX1fbWFwRmlsdGVycygpe3JldHVybiB0aGlzLl9maWx0ZXJzLm1hcCgodD0+KHtwYXRoOnQucGF0aCx2YWx1ZTp0LnZhbHVlfSkpKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovO2NsYXNzIFYkdCBleHRlbmRzIHlle3N0YXRpYyBnZXQgaXMoKXtyZXR1cm4idmFhZGluLWdyaWQtdGVtcGxhdGl6ZXIifXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntkYXRhSG9zdDpPYmplY3QsdGVtcGxhdGU6T2JqZWN0LF90ZW1wbGF0ZUluc3RhbmNlczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX0sX3BhcmVudFBhdGhWYWx1ZXM6e3ZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue319fSxfZ3JpZDpPYmplY3R9fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfdGVtcGxhdGVJbnN0YW5jZXNDaGFuZ2VkKF90ZW1wbGF0ZUluc3RhbmNlcy4qLCBfcGFyZW50UGF0aFZhbHVlcy4qKSJdfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9pbnN0YW5jZVByb3BzPXtkZXRhaWxzT3BlbmVkOiEwLGluZGV4OiEwLGl0ZW06ITAsc2VsZWN0ZWQ6ITAsZXhwYW5kZWQ6ITAsbGV2ZWw6ITB9fWNyZWF0ZUluc3RhbmNlKCl7dGhpcy5fZW5zdXJlVGVtcGxhdGl6ZWQoKTtjb25zdCB0PW5ldyB0aGlzLl9UZW1wbGF0ZUNsYXNzKHt9KTtyZXR1cm4gdGhpcy5hZGRJbnN0YW5jZSh0KSx0fWFkZEluc3RhbmNlKHQpey0xPT09dGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMuaW5kZXhPZih0KSYmKHRoaXMuX3RlbXBsYXRlSW5zdGFuY2VzLnB1c2godCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy5ub3RpZnlQYXRoKCJfdGVtcGxhdGVJbnN0YW5jZXMuKiIsdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMpKSkpfXJlbW92ZUluc3RhbmNlKHQpe2NvbnN0IGU9dGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMuaW5kZXhPZih0KTt0aGlzLnNwbGljZSgiX3RlbXBsYXRlSW5zdGFuY2VzIixlLDEpfV9lbnN1cmVUZW1wbGF0aXplZCgpe3RoaXMuX1RlbXBsYXRlQ2xhc3N8fCh0aGlzLl9UZW1wbGF0ZUNsYXNzPSRyKHRoaXMudGVtcGxhdGUsdGhpcyx7aW5zdGFuY2VQcm9wczp0aGlzLl9pbnN0YW5jZVByb3BzLHBhcmVudE1vZGVsOiEwLGZvcndhcmRIb3N0UHJvcDpmdW5jdGlvbih0LGUpe3RoaXMuX2ZvcndhcmRQYXJlbnRQcm9wKHQsZSksdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMmJnRoaXMuX3RlbXBsYXRlSW5zdGFuY2VzLmZvckVhY2goKG49Pm4ubm90aWZ5UGF0aCh0LGUpKSl9LG5vdGlmeUluc3RhbmNlUHJvcDpmdW5jdGlvbih0LGUsbil7aWYoImluZGV4Ij09PWV8fCJpdGVtIj09PWUpcmV0dXJuO2NvbnN0IGk9YF9fJHtlfV9fYDtpZih0W2ldPT09bilyZXR1cm47dFtpXT1uO2NvbnN0IHI9QXJyYXkuZnJvbSh0aGlzLl9ncmlkLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigoZT0+dGhpcy5fZ3JpZC5faXRlbXNFcXVhbChlLl9pdGVtLHQuaXRlbSkpKVswXTtyJiZBcnJheS5mcm9tKHIuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pnt0Ll9pbnN0YW5jZSYmKHQuX2luc3RhbmNlW2ldPW4sdC5faW5zdGFuY2Uubm90aWZ5UGF0aChlLG4pKX0pKTtjb25zdCBvPSJpdGVtLiI7aWYoQXJyYXkuaXNBcnJheSh0aGlzLl9ncmlkLml0ZW1zKSYmMD09PWUuaW5kZXhPZihvKSl7Y29uc3QgaT10aGlzLl9ncmlkLml0ZW1zLmluZGV4T2YodC5pdGVtKSxyPWUuc2xpY2Uoby5sZW5ndGgpO3RoaXMuX2dyaWQubm90aWZ5UGF0aChgaXRlbXMuJHtpfS4ke3J9YCxuKX1jb25zdCBhPWBfJHtlfUluc3RhbmNlQ2hhbmdlZENhbGxiYWNrYDt0aGlzLl9ncmlkJiZ0aGlzLl9ncmlkW2FdJiZ0aGlzLl9ncmlkW2FdKHQsbil9fSkpfV9mb3J3YXJkUGFyZW50UHJvcCh0LGUpe3RoaXMuX3BhcmVudFBhdGhWYWx1ZXNbdF09ZSx0aGlzLl90ZW1wbGF0ZUluc3RhbmNlcy5mb3JFYWNoKChuPT5uLm5vdGlmeVBhdGgodCxlKSkpfV90ZW1wbGF0ZUluc3RhbmNlc0NoYW5nZWQodCl7bGV0IGUsbjtpZigiX3RlbXBsYXRlSW5zdGFuY2VzIj09PXQucGF0aCllPTAsbj10aGlzLl90ZW1wbGF0ZUluc3RhbmNlcy5sZW5ndGg7ZWxzZXtpZigiX3RlbXBsYXRlSW5zdGFuY2VzLnNwbGljZXMiIT09dC5wYXRoKXJldHVybjtlPXQudmFsdWUuaW5kZXgsbj10LnZhbHVlLmFkZGVkQ291bnR9T2JqZWN0LmtleXModGhpcy5fcGFyZW50UGF0aFZhbHVlc3x8e30pLmZvckVhY2goKHQ9Pntmb3IobGV0IGk9ZTtpPGUrbjtpKyspdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXNbaV0uc2V0KHQsdGhpcy5fcGFyZW50UGF0aFZhbHVlc1t0XSl9KSl9fWN1c3RvbUVsZW1lbnRzLmRlZmluZShWJHQuaXMsViR0KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgVSR0PXQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57ZGV0YWlsc09wZW5lZEl0ZW1zOnt0eXBlOkFycmF5LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxfcm93RGV0YWlsc1RlbXBsYXRlOk9iamVjdCxyb3dEZXRhaWxzUmVuZGVyZXI6RnVuY3Rpb24sX2RldGFpbHNDZWxsczp7dHlwZTpBcnJheX19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfZGV0YWlsc09wZW5lZEl0ZW1zQ2hhbmdlZChkZXRhaWxzT3BlbmVkSXRlbXMuKiwgX3Jvd0RldGFpbHNUZW1wbGF0ZSwgcm93RGV0YWlsc1JlbmRlcmVyKSIsIl9yb3dEZXRhaWxzVGVtcGxhdGVPclJlbmRlcmVyQ2hhbmdlZChfcm93RGV0YWlsc1RlbXBsYXRlLCByb3dEZXRhaWxzUmVuZGVyZXIpIl19X3Jvd0RldGFpbHNUZW1wbGF0ZU9yUmVuZGVyZXJDaGFuZ2VkKHQsZSl7aWYodCYmZSl0aHJvdyBuZXcgRXJyb3IoIllvdSBzaG91bGQgb25seSB1c2UgZWl0aGVyIGEgcmVuZGVyZXIgb3IgYSB0ZW1wbGF0ZSBmb3Igcm93IGRldGFpbHMiKTtpZih0fHxlKXtpZih0JiYhdC50ZW1wbGF0aXplcil7Y29uc3QgZT1uZXcgViR0O2UuX2dyaWQ9dGhpcyxlLmRhdGFIb3N0PXRoaXMuZGF0YUhvc3QsZS50ZW1wbGF0ZT10LHQudGVtcGxhdGl6ZXI9ZX10aGlzLl9jb2x1bW5UcmVlJiZBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaCgodD0+e3QucXVlcnlTZWxlY3RvcigiW3BhcnR+PWRldGFpbHMtY2VsbF0iKXx8KHRoaXMuX3VwZGF0ZVJvdyh0LHRoaXMuX2NvbHVtblRyZWVbdGhpcy5fY29sdW1uVHJlZS5sZW5ndGgtMV0pLHRoaXMuX2ExMXlVcGRhdGVSb3dEZXRhaWxzT3BlbmVkKHQsITEpKSxkZWxldGUgdC5xdWVyeVNlbGVjdG9yKCJbcGFydH49ZGV0YWlscy1jZWxsXSIpLl9pbnN0YW5jZX0pKSx0aGlzLmRldGFpbHNPcGVuZWRJdGVtcy5sZW5ndGgmJihBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaCh0aGlzLl90b2dnbGVEZXRhaWxzQ2VsbCx0aGlzKSx0aGlzLl91cGRhdGUoKSl9fV9kZXRhaWxzT3BlbmVkSXRlbXNDaGFuZ2VkKHQpeyJkZXRhaWxzT3BlbmVkSXRlbXMubGVuZ3RoIiE9PXQucGF0aCYmdC52YWx1ZSYmQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pnt0aGlzLl90b2dnbGVEZXRhaWxzQ2VsbCh0LHQuX2l0ZW0pLHRoaXMuX2ExMXlVcGRhdGVSb3dEZXRhaWxzT3BlbmVkKHQsdGhpcy5faXNEZXRhaWxzT3BlbmVkKHQuX2l0ZW0pKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImRldGFpbHMtb3BlbmVkIix0aGlzLl9pc0RldGFpbHNPcGVuZWQodC5faXRlbSksdCl9KSl9X2NvbmZpZ3VyZURldGFpbHNDZWxsKHQpe3Quc2V0QXR0cmlidXRlKCJwYXJ0IiwiY2VsbCBkZXRhaWxzLWNlbGwiKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImZyb3plbiIsITAsdCl9X3RvZ2dsZURldGFpbHNDZWxsKHQsZSl7Y29uc3Qgbj10LnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKTtpZighbilyZXR1cm47Y29uc3QgaT0hdGhpcy5faXNEZXRhaWxzT3BlbmVkKGUpLHI9ISFuLmhpZGRlbiE9PWk7KG4uX2luc3RhbmNlfHxuLl9yZW5kZXJlcikmJm4uaGlkZGVuPT09aXx8KG4uaGlkZGVuPWksaT90LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIpOih0aGlzLnJvd0RldGFpbHNSZW5kZXJlcj8obi5fcmVuZGVyZXI9dGhpcy5yb3dEZXRhaWxzUmVuZGVyZXIsbi5fcmVuZGVyZXIuY2FsbCh0aGlzLG4uX2NvbnRlbnQsdGhpcyx7aW5kZXg6dC5pbmRleCxpdGVtOmV9KSk6dGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlJiYhbi5faW5zdGFuY2UmJihuLl9pbnN0YW5jZT10aGlzLl9yb3dEZXRhaWxzVGVtcGxhdGUudGVtcGxhdGl6ZXIuY3JlYXRlSW5zdGFuY2UoKSxuLl9jb250ZW50LmlubmVySFRNTD0iIixuLl9jb250ZW50LmFwcGVuZENoaWxkKG4uX2luc3RhbmNlLnJvb3QpLHRoaXMuX3VwZGF0ZUl0ZW0odCxlKSksRGkoKSx0LnN0eWxlLnNldFByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIsYCR7bi5vZmZzZXRIZWlnaHR9cHhgKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLm5vdGlmeVJlc2l6ZSgpKSkpKSxyJiYodGhpcy5fdXBkYXRlTWV0cmljcygpLHRoaXMuX3Bvc2l0aW9uSXRlbXMoKSl9X3VwZGF0ZURldGFpbHNDZWxsSGVpZ2h0cygpe0FycmF5LmZyb20odGhpcy4kLml0ZW1zLnF1ZXJ5U2VsZWN0b3JBbGwoJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl06bm90KFtoaWRkZW5dKScpKS5mb3JFYWNoKCh0PT57dC5wYXJlbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIsYCR7dC5vZmZzZXRIZWlnaHR9cHhgKX0pKX1faXNEZXRhaWxzT3BlbmVkKHQpe3JldHVybiB0aGlzLmRldGFpbHNPcGVuZWRJdGVtcyYmLTEhPT10aGlzLl9nZXRJdGVtSW5kZXhJbkFycmF5KHQsdGhpcy5kZXRhaWxzT3BlbmVkSXRlbXMpfW9wZW5JdGVtRGV0YWlscyh0KXt0aGlzLl9pc0RldGFpbHNPcGVuZWQodCl8fCh0aGlzLmRldGFpbHNPcGVuZWRJdGVtcz1bLi4udGhpcy5kZXRhaWxzT3BlbmVkSXRlbXMsdF0pfWNsb3NlSXRlbURldGFpbHModCl7dGhpcy5faXNEZXRhaWxzT3BlbmVkKHQpJiYodGhpcy5kZXRhaWxzT3BlbmVkSXRlbXM9dGhpcy5kZXRhaWxzT3BlbmVkSXRlbXMuZmlsdGVyKChlPT4hdGhpcy5faXRlbXNFcXVhbChlLHQpKSkpfV9kZXRhaWxzT3BlbmVkSW5zdGFuY2VDaGFuZ2VkQ2FsbGJhY2sodCxlKXtlP3RoaXMub3Blbkl0ZW1EZXRhaWxzKHQuaXRlbSk6dGhpcy5jbG9zZUl0ZW1EZXRhaWxzKHQuaXRlbSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyxqJHQ9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntfZnJvemVuQ2VsbHM6e3R5cGU6QXJyYXksdmFsdWU6KCk9PltdfSxfcm93V2l0aEZvY3VzZWRFbGVtZW50OkVsZW1lbnQsX2RlbHRhWUFjYzp7dHlwZTpOdW1iZXIsdmFsdWU6MH0sX3VzZVN0aWNreTp7dHlwZTpCb29sZWFuLHZhbHVlOndpbmRvdy5DU1MmJndpbmRvdy5DU1Muc3VwcG9ydHMmJih3aW5kb3cuQ1NTLnN1cHBvcnRzKCJwb3NpdGlvbiIsInN0aWNreSIpfHx3aW5kb3cuQ1NTLnN1cHBvcnRzKCJwb3NpdGlvbiIsIi13ZWJraXQtc3RpY2t5IikpfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9zY3JvbGxWaWV3cG9ydEhlaWdodFVwZGF0ZWQoX3ZpZXdwb3J0SGVpZ2h0KSJdfXNldCBfc2Nyb2xsVG9wKHQpe3RoaXMuJC50YWJsZS5zY3JvbGxUb3A9dH1nZXQgX3Njcm9sbFRvcCgpe3JldHVybiB0aGlzLiQudGFibGUuc2Nyb2xsVG9wfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9zY3JvbGxMaW5lSGVpZ2h0PXRoaXMuX2dldFNjcm9sbExpbmVIZWlnaHQoKX1fZ2V0U2Nyb2xsTGluZUhlaWdodCgpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5zdHlsZS5mb250U2l6ZT0iaW5pdGlhbCIsdC5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO2NvbnN0IGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZm9udFNpemU7cmV0dXJuIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCksZT93aW5kb3cucGFyc2VJbnQoZSk6dm9pZCAwfV9zY3JvbGxWaWV3cG9ydEhlaWdodFVwZGF0ZWQodCl7dGhpcy5fc2Nyb2xsUGFnZUhlaWdodD10LXRoaXMuJC5oZWFkZXIuY2xpZW50SGVpZ2h0LXRoaXMuJC5mb290ZXIuY2xpZW50SGVpZ2h0LXRoaXMuX3Njcm9sbExpbmVIZWlnaHR9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuJC5vdXRlcnNjcm9sbGVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuc2Nyb2xsVGFyZ2V0PXRoaXMuJC50YWJsZSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLl9vbldoZWVsKSx0aGlzLiQuaXRlbXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsKHQ9Pntjb25zdCBlPXQuY29tcG9zZWRQYXRoKCkuaW5kZXhPZih0aGlzLiQuaXRlbXMpO3RoaXMuX3Jvd1dpdGhGb2N1c2VkRWxlbWVudD10LmNvbXBvc2VkUGF0aCgpW2UtMV19KSksdGhpcy4kLml0ZW1zLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IiwoKCk9PnRoaXMuX3Jvd1dpdGhGb2N1c2VkRWxlbWVudD12b2lkIDApKSx0aGlzLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCgoKT0+dGhpcy5fX21vdXNlRG93bj0hMCkpLHRoaXMuc2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCgoKT0+e3RoaXMuX19tb3VzZURvd249ITEsdGhpcy5fX3BlbmRpbmdSZW9yZGVyJiYodGhpcy5fX3BlbmRpbmdSZW9yZGVyPSExLHNldFRpbWVvdXQoKCgpPT50aGlzLl9yZW9yZGVyUm93cygpKSw1MDApKX0pKX1zY3JvbGxUb0luZGV4KHQpe3RoaXMuX2FjY2Vzc0lyb25MaXN0QVBJKCgoKT0+c3VwZXIuc2Nyb2xsVG9JbmRleCh0KSkpfV9vbldoZWVsKHQpe2lmKHQuY3RybEtleXx8dGhpcy5faGFzU2Nyb2xsZWRBbmNlc3Rvcih0LnRhcmdldCx0LmRlbHRhWCx0LmRlbHRhWSkpcmV0dXJuO2NvbnN0IGU9dGhpcy4kLnRhYmxlO2xldCBuPXQuZGVsdGFZO2lmKHQuZGVsdGFNb2RlPT09V2hlZWxFdmVudC5ET01fREVMVEFfTElORT9uKj10aGlzLl9zY3JvbGxMaW5lSGVpZ2h0OnQuZGVsdGFNb2RlPT09V2hlZWxFdmVudC5ET01fREVMVEFfUEFHRSYmKG4qPXRoaXMuX3Njcm9sbFBhZ2VIZWlnaHQpLHRoaXMuX3doZWVsQW5pbWF0aW9uRnJhbWUpcmV0dXJuIHRoaXMuX2RlbHRhWUFjYys9bix2b2lkIHQucHJldmVudERlZmF1bHQoKTtuKz10aGlzLl9kZWx0YVlBY2MsdGhpcy5fZGVsdGFZQWNjPTAsdGhpcy5fd2hlZWxBbmltYXRpb25GcmFtZT0hMCx0aGlzLl9kZWJvdW5jZXJXaGVlbEFuaW1hdGlvbkZyYW1lPVRuLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlcldoZWVsQW5pbWF0aW9uRnJhbWUsX3QsKCgpPT50aGlzLl93aGVlbEFuaW1hdGlvbkZyYW1lPSExKSk7Y29uc3QgaT1NYXRoLmFicyh0LmRlbHRhWCkrTWF0aC5hYnMobik7dGhpcy5fY2FuU2Nyb2xsKGUsdC5kZWx0YVgsbik/KHQucHJldmVudERlZmF1bHQoKSxlLnNjcm9sbFRvcCs9bixlLnNjcm9sbExlZnQrPXQuZGVsdGFYLHRoaXMuX3Njcm9sbEhhbmRsZXIoKSx0aGlzLl9oYXNSZXNpZHVhbE1vbWVudHVtPSEwLHRoaXMuX2lnbm9yZU5ld1doZWVsPSEwLHRoaXMuX2RlYm91bmNlcklnbm9yZU5ld1doZWVsPVRuLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlcklnbm9yZU5ld1doZWVsLGd0LmFmdGVyKDUwMCksKCgpPT50aGlzLl9pZ25vcmVOZXdXaGVlbD0hMSkpKTp0aGlzLl9oYXNSZXNpZHVhbE1vbWVudHVtJiZpPD10aGlzLl9wcmV2aW91c01vbWVudHVtfHx0aGlzLl9pZ25vcmVOZXdXaGVlbD90LnByZXZlbnREZWZhdWx0KCk6aT50aGlzLl9wcmV2aW91c01vbWVudHVtJiYodGhpcy5faGFzUmVzaWR1YWxNb21lbnR1bT0hMSksdGhpcy5fcHJldmlvdXNNb21lbnR1bT1pfV9oYXNTY3JvbGxlZEFuY2VzdG9yKHQsZSxuKXtyZXR1cm4idmFhZGluLWdyaWQtY2VsbC1jb250ZW50IiE9PXQubG9jYWxOYW1lJiYoISghdGhpcy5fY2FuU2Nyb2xsKHQsZSxuKXx8LTE9PT1bImF1dG8iLCJzY3JvbGwiXS5pbmRleE9mKGdldENvbXB1dGVkU3R5bGUodCkub3ZlcmZsb3cpKXx8KHQhPT10aGlzJiZ0LnBhcmVudEVsZW1lbnQ/dGhpcy5faGFzU2Nyb2xsZWRBbmNlc3Rvcih0LnBhcmVudEVsZW1lbnQsZSxuKTp2b2lkIDApKX1fY2FuU2Nyb2xsKHQsZSxuKXtyZXR1cm4gbj4wJiZ0LnNjcm9sbFRvcDx0LnNjcm9sbEhlaWdodC10Lm9mZnNldEhlaWdodHx8bjwwJiZ0LnNjcm9sbFRvcD4wfHxlPjAmJnQuc2Nyb2xsTGVmdDx0LnNjcm9sbFdpZHRoLXQub2Zmc2V0V2lkdGh8fGU8MCYmdC5zY3JvbGxMZWZ0PjB9X3NjaGVkdWxlU2Nyb2xsaW5nKCl7dGhpcy5fc2Nyb2xsaW5nRnJhbWV8fCh0aGlzLl9zY3JvbGxpbmdGcmFtZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLl90b2dnbGVBdHRyaWJ1dGUoInNjcm9sbGluZyIsITAsdGhpcy4kLnNjcm9sbGVyKSkpKSx0aGlzLl9kZWJvdW5jZVNjcm9sbGluZz1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZVNjcm9sbGluZyxndC5hZnRlcig1MDApLCgoKT0+e2NhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3Njcm9sbGluZ0ZyYW1lKSxkZWxldGUgdGhpcy5fc2Nyb2xsaW5nRnJhbWUsdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJzY3JvbGxpbmciLCExLHRoaXMuJC5zY3JvbGxlciksdGhpcy5fcmVvcmRlclJvd3MoKX0pKX1fYWZ0ZXJTY3JvbGwoKXt0aGlzLl90cmFuc2xhdGVTdGF0aW9uYXJ5RWxlbWVudHMoKSx0aGlzLmhhc0F0dHJpYnV0ZSgicmVvcmRlcmluZyIpfHx0aGlzLl9zY2hlZHVsZVNjcm9sbGluZygpLHRoaXMuX3VwZGF0ZU92ZXJmbG93KCl9X3VwZGF0ZU92ZXJmbG93KCl7bGV0IHQ9IiI7Y29uc3QgZT10aGlzLiQudGFibGU7ZS5zY3JvbGxUb3A8ZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQmJih0Kz0iIGJvdHRvbSIpLGUuc2Nyb2xsVG9wPjAmJih0Kz0iIHRvcCIpLGUuc2Nyb2xsTGVmdDxlLnNjcm9sbFdpZHRoLWUuY2xpZW50V2lkdGgmJih0Kz0iIHJpZ2h0IiksZS5zY3JvbGxMZWZ0PjAmJih0Kz0iIGxlZnQiKSx0aGlzLl9kZWJvdW5jZU92ZXJmbG93PVRuLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlT3ZlcmZsb3csX3QsKCgpPT57Y29uc3QgZT10LnRyaW0oKTtlLmxlbmd0aD4wJiZ0aGlzLmdldEF0dHJpYnV0ZSgib3ZlcmZsb3ciKSE9PWU/dGhpcy5zZXRBdHRyaWJ1dGUoIm92ZXJmbG93IixlKTowPT1lLmxlbmd0aCYmdGhpcy5oYXNBdHRyaWJ1dGUoIm92ZXJmbG93IikmJnRoaXMucmVtb3ZlQXR0cmlidXRlKCJvdmVyZmxvdyIpfSkpfV9yZW9yZGVyUm93cygpe2lmKHRoaXMuX19tb3VzZURvd24pcmV0dXJuIHZvaWQodGhpcy5fX3BlbmRpbmdSZW9yZGVyPSEwKTtjb25zdCB0PXRoaXMuJC5pdGVtcyxlPXQucXVlcnlTZWxlY3RvckFsbCgidHIiKTtpZighZS5sZW5ndGgpcmV0dXJuO2NvbnN0IG49dGhpcy5fdmlydHVhbFN0YXJ0K3RoaXMuX3ZpZHhPZmZzZXQsaT10aGlzLl9yb3dXaXRoRm9jdXNlZEVsZW1lbnR8fEFycmF5LmZyb20oZSkuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKVswXTtpZighaSlyZXR1cm47Y29uc3Qgcj1pLmluZGV4LW4sbz1BcnJheS5mcm9tKGUpLmluZGV4T2YoaSktcjtpZihvPjApZm9yKGxldCBuPTA7bjxvO24rKyl0LmFwcGVuZENoaWxkKGVbbl0pO2Vsc2UgaWYobzwwKWZvcihsZXQgbj1lLmxlbmd0aCtvO248ZS5sZW5ndGg7bisrKXQuaW5zZXJ0QmVmb3JlKGVbbl0sZVswXSk7aWYodGhpcy5fc2FmYXJpKXtjb25zdHt0cmFuc2Zvcm06dH09dGhpcy4kLmhlYWRlci5zdHlsZTt0aGlzLiQuaGVhZGVyLnN0eWxlLnRyYW5zZm9ybT0iIixzZXRUaW1lb3V0KCgoKT0+dGhpcy4kLmhlYWRlci5zdHlsZS50cmFuc2Zvcm09dCkpfX1fZnJvemVuQ2VsbHNDaGFuZ2VkKCl7dGhpcy5fZGVib3VuY2VyQ2FjaGVFbGVtZW50cz1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJDYWNoZUVsZW1lbnRzLHZ0LCgoKT0+e0FycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ1twYXJ0fj0iY2VsbCJdJykpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Quc3R5bGUudHJhbnNmb3JtPSIifSkpLHRoaXMuX2Zyb3plbkNlbGxzPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuJC50YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCJbZnJvemVuXSIpKSx0aGlzLl91cGRhdGVTY3JvbGxlck1lYXN1cmVtZW50cygpLHRoaXMuX3RyYW5zbGF0ZVN0YXRpb25hcnlFbGVtZW50cygpfSkpLHRoaXMuX3VwZGF0ZUxhc3RGcm96ZW4oKX1fdXBkYXRlU2Nyb2xsZXJNZWFzdXJlbWVudHMoKXt0aGlzLl9mcm96ZW5DZWxscy5sZW5ndGg+MCYmdGhpcy5fX2lzUlRMJiYodGhpcy5fX3Njcm9sbGVyTWV0cmljcz17c2Nyb2xsV2lkdGg6dGhpcy4kLnRhYmxlLnNjcm9sbFdpZHRoLGNsaWVudFdpZHRoOnRoaXMuJC50YWJsZS5jbGllbnRXaWR0aH0pfV91cGRhdGVMYXN0RnJvemVuKCl7aWYoIXRoaXMuX2NvbHVtblRyZWUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fY29sdW1uVHJlZVt0aGlzLl9jb2x1bW5UcmVlLmxlbmd0aC0xXS5zbGljZSgwKTt0LnNvcnQoKCh0LGUpPT50Ll9vcmRlci1lLl9vcmRlcikpO2NvbnN0IGU9dC5yZWR1Y2UoKCh0LGUsbik9PihlLl9sYXN0RnJvemVuPSExLGUuZnJvemVuJiYhZS5oaWRkZW4/bjp0KSksdm9pZCAwKTt2b2lkIDAhPT1lJiYodFtlXS5fbGFzdEZyb3plbj0hMCl9X3RyYW5zbGF0ZVN0YXRpb25hcnlFbGVtZW50cygpe2NvbnN0IHQ9TWF0aC5tYXgoMCx0aGlzLl9zY3JvbGxMZWZ0KSxlPU1hdGgubWF4KDAsdGhpcy5fc2Nyb2xsVG9wKTtsZXQgbj0wLGk9MCxyPTA7aWYodGhpcy5fdXNlU3RpY2t5fHwobj10LGk9ZSxyPXRoaXMuJC50YWJsZS5jbGllbnRIZWlnaHQtdGhpcy4kLmZvb3Rlci5vZmZzZXRIZWlnaHQtdGhpcy4kLmZvb3Rlci5vZmZzZXRUb3ApLHRoaXMuJC5oZWFkZXIuc3R5bGUudHJhbnNmb3JtPXRoaXMuX2dldFRyYW5zbGF0ZSgtdCtuLGkpLHRoaXMuJC5mb290ZXIuc3R5bGUudHJhbnNmb3JtPXRoaXMuX2dldFRyYW5zbGF0ZSgtdCtuLGkrciksdGhpcy4kLml0ZW1zLnN0eWxlLnRyYW5zZm9ybT10aGlzLl9nZXRUcmFuc2xhdGUoLXQrbiwwKSx0aGlzLl9mcm96ZW5DZWxscy5sZW5ndGg+MCl7Y29uc3QgdD10aGlzLl9faXNSVEw/dGhpcy5fX2dldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHRoaXMuJC50YWJsZSkrdGhpcy5fX3Njcm9sbGVyTWV0cmljcy5jbGllbnRXaWR0aC10aGlzLl9fc2Nyb2xsZXJNZXRyaWNzLnNjcm9sbFdpZHRoOnRoaXMuX3Njcm9sbExlZnQsZT10aGlzLl9nZXRUcmFuc2xhdGUodCwwKTtmb3IobGV0IHQ9MDt0PHRoaXMuX2Zyb3plbkNlbGxzLmxlbmd0aDt0KyspdGhpcy5fZnJvemVuQ2VsbHNbdF0uc3R5bGUudHJhbnNmb3JtPWV9fV9nZXRUcmFuc2xhdGUodCxlKXtyZXR1cm5gdHJhbnNsYXRlKCR7dH1weCwgJHtlfXB4KWB9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyxHJHQ9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntzZWxlY3RlZEl0ZW1zOnt0eXBlOk9iamVjdCxub3RpZnk6ITAsdmFsdWU6KCk9PltdfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9zZWxlY3RlZEl0ZW1zQ2hhbmdlZChzZWxlY3RlZEl0ZW1zLiopIl19X2lzU2VsZWN0ZWQodCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcyYmdGhpcy5fZ2V0SXRlbUluZGV4SW5BcnJheSh0LHRoaXMuc2VsZWN0ZWRJdGVtcyk+LTF9c2VsZWN0SXRlbSh0KXt0aGlzLl9pc1NlbGVjdGVkKHQpfHwodGhpcy5zZWxlY3RlZEl0ZW1zPVsuLi50aGlzLnNlbGVjdGVkSXRlbXMsdF0pfWRlc2VsZWN0SXRlbSh0KXt0aGlzLl9pc1NlbGVjdGVkKHQpJiYodGhpcy5zZWxlY3RlZEl0ZW1zPXRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGU9PiF0aGlzLl9pdGVtc0VxdWFsKGUsdCkpKSl9X3RvZ2dsZUl0ZW0odCl7LTE9PT10aGlzLl9nZXRJdGVtSW5kZXhJbkFycmF5KHQsdGhpcy5zZWxlY3RlZEl0ZW1zKT90aGlzLnNlbGVjdEl0ZW0odCk6dGhpcy5kZXNlbGVjdEl0ZW0odCl9X3NlbGVjdGVkSXRlbXNDaGFuZ2VkKHQpeyF0aGlzLiQuaXRlbXMuY2hpbGRyZW4ubGVuZ3RofHwic2VsZWN0ZWRJdGVtcyIhPT10LnBhdGgmJiJzZWxlY3RlZEl0ZW1zLnNwbGljZXMiIT09dC5wYXRofHxBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaCgodD0+e3RoaXMuX3VwZGF0ZUl0ZW0odCx0Ll9pdGVtKX0pKX1fc2VsZWN0ZWRJbnN0YW5jZUNoYW5nZWRDYWxsYmFjayh0LGUpe2U/dGhpcy5zZWxlY3RJdGVtKHQuaXRlbSk6dGhpcy5kZXNlbGVjdEl0ZW0odC5pdGVtKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLFckdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue211bHRpU29ydDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfc29ydGVyczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX0sX3ByZXZpb3VzU29ydGVyczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX19fXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInNvcnRlci1jaGFuZ2VkIix0aGlzLl9vblNvcnRlckNoYW5nZWQpfV9vblNvcnRlckNoYW5nZWQodCl7Y29uc3QgZT10LnRhcmdldDt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX191cGRhdGVTb3J0ZXIoZSksdGhpcy5fX2FwcGx5U29ydGVycygpfV9fcmVtb3ZlU29ydGVycyh0KXswIT10Lmxlbmd0aCYmKHRoaXMuX3NvcnRlcnM9dGhpcy5fc29ydGVycy5maWx0ZXIoKGU9PnQuaW5kZXhPZihlKTwwKSksdGhpcy5tdWx0aVNvcnQmJnRoaXMuX191cGRhdGVTb3J0T3JkZXJzKCksdGhpcy5fX2FwcGx5U29ydGVycygpKX1fX3VwZGF0ZVNvcnRPcmRlcnMoKXt0aGlzLl9zb3J0ZXJzLmZvckVhY2goKCh0LGUpPT50Ll9vcmRlcj10aGlzLl9zb3J0ZXJzLmxlbmd0aD4xP2U6bnVsbCksdGhpcyl9X191cGRhdGVTb3J0ZXIodCl7aWYodC5kaXJlY3Rpb258fC0xIT09dGhpcy5fc29ydGVycy5pbmRleE9mKHQpKWlmKHQuX29yZGVyPW51bGwsdGhpcy5tdWx0aVNvcnQpdGhpcy5fcmVtb3ZlQXJyYXlJdGVtKHRoaXMuX3NvcnRlcnMsdCksdC5kaXJlY3Rpb24mJnRoaXMuX3NvcnRlcnMudW5zaGlmdCh0KSx0aGlzLl9fdXBkYXRlU29ydE9yZGVycygpO2Vsc2UgaWYodC5kaXJlY3Rpb24pe2NvbnN0IGU9dGhpcy5fc29ydGVycy5maWx0ZXIoKGU9PmUhPXQpKTt0aGlzLl9zb3J0ZXJzPVt0XSxlLmZvckVhY2goKHQ9Pnt0Ll9vcmRlcj1udWxsLHQuZGlyZWN0aW9uPW51bGx9KSl9fV9fYXBwbHlTb3J0ZXJzKCl7dGhpcy5kYXRhUHJvdmlkZXImJnRoaXMuaXNBdHRhY2hlZCYmSlNPTi5zdHJpbmdpZnkodGhpcy5fcHJldmlvdXNTb3J0ZXJzKSE9PUpTT04uc3RyaW5naWZ5KHRoaXMuX21hcFNvcnRlcnMoKSkmJnRoaXMuY2xlYXJDYWNoZSgpLHRoaXMuX2ExMXlVcGRhdGVTb3J0ZXJzKCksdGhpcy5fcHJldmlvdXNTb3J0ZXJzPXRoaXMuX21hcFNvcnRlcnMoKX1fbWFwU29ydGVycygpe3JldHVybiB0aGlzLl9zb3J0ZXJzLm1hcCgodD0+KHtwYXRoOnQucGF0aCxkaXJlY3Rpb246dC5kaXJlY3Rpb259KSkpfV9yZW1vdmVBcnJheUl0ZW0odCxlKXtjb25zdCBuPXQuaW5kZXhPZihlKTtuPi0xJiZ0LnNwbGljZShuLDEpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8scSR0PXQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57Y2VsbENsYXNzTmFtZUdlbmVyYXRvcjpGdW5jdGlvbn19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9fY2VsbENsYXNzTmFtZUdlbmVyYXRvckNoYW5nZWQoY2VsbENsYXNzTmFtZUdlbmVyYXRvcikiXX1fX2NlbGxDbGFzc05hbWVHZW5lcmF0b3JDaGFuZ2VkKCl7dGhpcy5nZW5lcmF0ZUNlbGxDbGFzc05hbWVzKCl9Z2VuZXJhdGVDZWxsQ2xhc3NOYW1lcygpe0FycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpLmZvckVhY2goKHQ9PnRoaXMuX2dlbmVyYXRlQ2VsbENsYXNzTmFtZXModCx0aGlzLl9fZ2V0Um93TW9kZWwodCkpKSl9X2dlbmVyYXRlQ2VsbENsYXNzTmFtZXModCxlKXtBcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2goKHQ9PntpZih0Ll9fZ2VuZXJhdGVkQ2xhc3NlcyYmdC5fX2dlbmVyYXRlZENsYXNzZXMuZm9yRWFjaCgoZT0+dC5jbGFzc0xpc3QucmVtb3ZlKGUpKSksdGhpcy5jZWxsQ2xhc3NOYW1lR2VuZXJhdG9yKXtjb25zdCBuPXRoaXMuY2VsbENsYXNzTmFtZUdlbmVyYXRvcih0Ll9jb2x1bW4sZSk7dC5fX2dlbmVyYXRlZENsYXNzZXM9biYmbi5zcGxpdCgiICIpLmZpbHRlcigodD0+dC5sZW5ndGg+MCkpLHQuX19nZW5lcmF0ZWRDbGFzc2VzJiZ0Ll9fZ2VuZXJhdGVkQ2xhc3Nlcy5mb3JFYWNoKChlPT50LmNsYXNzTGlzdC5hZGQoZSkpKX19KSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyxZJHQ9ImJldHdlZW4iLFgkdD0ib24tdG9wLW9yLWJldHdlZW4iLCQkdD0iYWJvdmUiLEskdD0iYmVsb3ciLFokdD0iZW1wdHkiLEokdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2Ryb3BNb2RlOlN0cmluZyxyb3dzRHJhZ2dhYmxlOkJvb2xlYW4sZHJhZ0ZpbHRlcjpGdW5jdGlvbixkcm9wRmlsdGVyOkZ1bmN0aW9uLF9fZG5kQXV0b1Njcm9sbFRocmVzaG9sZDp7dmFsdWU6NTB9fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2RyYWdEcm9wQWNjZXNzQ2hhbmdlZChyb3dzRHJhZ2dhYmxlLCBkcm9wTW9kZSwgZHJhZ0ZpbHRlciwgZHJvcEZpbHRlcikiXX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsdGhpcy5fb25EcmFnU3RhcnQuYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuX29uRHJhZ0VuZC5iaW5kKHRoaXMpKSx0aGlzLiQudGFibGUuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuX29uRHJhZ092ZXIuYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsdGhpcy5fb25EcmFnTGVhdmUuYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLHRoaXMuX29uRHJvcC5iaW5kKHRoaXMpKSx0aGlzLiQudGFibGUuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwodD0+e3RoaXMuZHJvcE1vZGUmJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSl9KSl9X29uRHJhZ1N0YXJ0KHQpe2lmKHRoaXMucm93c0RyYWdnYWJsZSl7bGV0IGU9dC50YXJnZXQ7aWYoInZhYWRpbi1ncmlkLWNlbGwtY29udGVudCI9PT1lLmxvY2FsTmFtZSYmKGU9ZS5hc3NpZ25lZFNsb3QucGFyZW50Tm9kZS5wYXJlbnROb2RlKSxlLnBhcmVudE5vZGUhPT10aGlzLiQuaXRlbXMpcmV0dXJuO2lmKHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJkcmFnZ2luZy1yb3dzIiwhMCx0aGlzKSx0aGlzLl9zYWZhcmkpe2NvbnN0IHQ9ZS5zdHlsZS50cmFuc2Zvcm07ZS5zdHlsZS50b3A9L3RyYW5zbGF0ZVlcKCguKilcKS8uZXhlYyh0KVsxXSxlLnN0eWxlLnRyYW5zZm9ybT0ibm9uZSIscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e2Uuc3R5bGUudG9wPSIiLGUuc3R5bGUudHJhbnNmb3JtPXR9KSl9Y29uc3Qgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuX2lvcz90LmRhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UoZSk6dC5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKGUsdC5jbGllbnRYLW4ubGVmdCx0LmNsaWVudFktbi50b3ApO2xldCBpPVtlXTt0aGlzLl9pc1NlbGVjdGVkKGUuX2l0ZW0pJiYoaT10aGlzLl9fZ2V0Vmlld3BvcnRSb3dzKCkuZmlsdGVyKCh0PT50aGlzLl9pc1NlbGVjdGVkKHQuX2l0ZW0pKSkuZmlsdGVyKCh0PT4hdGhpcy5kcmFnRmlsdGVyfHx0aGlzLmRyYWdGaWx0ZXIodGhpcy5fX2dldFJvd01vZGVsKHQpKSkpKSx0LmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0Iix0aGlzLl9fZm9ybWF0RGVmYXVsdFRyYW5zZmVyRGF0YShpKSksZS5zZXRBdHRyaWJ1dGUoImRyYWdzdGFydCIsaS5sZW5ndGg+MT9pLmxlbmd0aDoiIiksdGhpcy51cGRhdGVTdHlsZXMoeyItLV9ncmlkLWRyYWctc3RhcnQteCI6dC5jbGllbnRYLW4ubGVmdCsyMCsicHgiLCItLV9ncmlkLWRyYWctc3RhcnQteSI6dC5jbGllbnRZLW4udG9wKzEwKyJweCJ9KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57ZS5yZW1vdmVBdHRyaWJ1dGUoImRyYWdzdGFydCIpLHRoaXMudXBkYXRlU3R5bGVzKHsiLS1fZ3JpZC1kcmFnLXN0YXJ0LXgiOiIiLCItLV9ncmlkLWRyYWctc3RhcnQteSI6IiJ9KX0pKTtjb25zdCByPW5ldyBDdXN0b21FdmVudCgiZ3JpZC1kcmFnc3RhcnQiLHtkZXRhaWw6e2RyYWdnZWRJdGVtczppLm1hcCgodD0+dC5faXRlbSkpLHNldERyYWdEYXRhOihlLG4pPT50LmRhdGFUcmFuc2Zlci5zZXREYXRhKGUsbiksc2V0RHJhZ2dlZEl0ZW1zQ291bnQ6dD0+ZS5zZXRBdHRyaWJ1dGUoImRyYWdzdGFydCIsdCl9fSk7ci5vcmlnaW5hbEV2ZW50PXQsdGhpcy5kaXNwYXRjaEV2ZW50KHIpfX1fb25EcmFnRW5kKHQpe3RoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZHJhZ2dpbmctcm93cyIsITEsdGhpcyksdC5zdG9wUHJvcGFnYXRpb24oKTtjb25zdCBlPW5ldyBDdXN0b21FdmVudCgiZ3JpZC1kcmFnZW5kIik7ZS5vcmlnaW5hbEV2ZW50PXQsdGhpcy5kaXNwYXRjaEV2ZW50KGUpfV9vbkRyYWdMZWF2ZSh0KXt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX2NsZWFyRHJhZ1N0eWxlcygpfV9vbkRyYWdPdmVyKHQpe2lmKHRoaXMuZHJvcE1vZGUpe2lmKHRoaXMuX2Ryb3BMb2NhdGlvbj12b2lkIDAsdGhpcy5fZHJhZ092ZXJJdGVtPXZvaWQgMCx0aGlzLl9fZG5kQXV0b1Njcm9sbCh0LmNsaWVudFkpKXJldHVybiB2b2lkIHRoaXMuX2NsZWFyRHJhZ1N0eWxlcygpO2xldCBlPXQuY29tcG9zZWRQYXRoKCkuZmlsdGVyKCh0PT4idHIiPT09dC5sb2NhbE5hbWUpKVswXTtpZih0aGlzLl9lZmZlY3RpdmVTaXplJiYib24tZ3JpZCIhPT10aGlzLmRyb3BNb2RlKWlmKGUmJmUucGFyZW50Tm9kZT09PXRoaXMuJC5pdGVtcyl7Y29uc3Qgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuX2Ryb3BMb2NhdGlvbj0ib24tdG9wIix0aGlzLmRyb3BNb2RlPT09WSR0P3RoaXMuX2Ryb3BMb2NhdGlvbj10LmNsaWVudFktbi50b3A8bi5ib3R0b20tdC5jbGllbnRZPyQkdDpLJHQ6dGhpcy5kcm9wTW9kZT09PVgkdCYmKHQuY2xpZW50WS1uLnRvcDxuLmhlaWdodC8zP3RoaXMuX2Ryb3BMb2NhdGlvbj0kJHQ6dC5jbGllbnRZLW4udG9wPm4uaGVpZ2h0LzMqMiYmKHRoaXMuX2Ryb3BMb2NhdGlvbj1LJHQpKX1lbHNle2lmKGUpcmV0dXJuO2lmKHRoaXMuZHJvcE1vZGUhPT1ZJHQmJnRoaXMuZHJvcE1vZGUhPT1YJHQpcmV0dXJuO2U9QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigodD0+IXQuaGlkZGVuKSkucG9wKCksdGhpcy5fZHJvcExvY2F0aW9uPUskdH1lbHNlIHRoaXMuX2Ryb3BMb2NhdGlvbj1aJHQ7aWYoZSYmZS5oYXNBdHRyaWJ1dGUoImRyb3AtZGlzYWJsZWQiKSlyZXR1cm4gdm9pZCh0aGlzLl9kcm9wTG9jYXRpb249dm9pZCAwKTt0LnN0b3BQcm9wYWdhdGlvbigpLHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9kcm9wTG9jYXRpb249PT1aJHQ/dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJkcmFnb3ZlciIsITAsdGhpcyk6ZT8odGhpcy5fZHJhZ092ZXJJdGVtPWUuX2l0ZW0sZS5nZXRBdHRyaWJ1dGUoImRyYWdvdmVyIikhPT10aGlzLl9kcm9wTG9jYXRpb24mJmUuc2V0QXR0cmlidXRlKCJkcmFnb3ZlciIsdGhpcy5fZHJvcExvY2F0aW9uKSk6dGhpcy5fY2xlYXJEcmFnU3R5bGVzKCl9fV9fZG5kQXV0b1Njcm9sbCh0KXtpZih0aGlzLl9fZG5kQXV0b1Njcm9sbGluZylyZXR1cm4hMDtjb25zdCBlPXRoaXMuJC5oZWFkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLG49dGhpcy4kLmZvb3Rlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsaT1lLXQrdGhpcy5fX2RuZEF1dG9TY3JvbGxUaHJlc2hvbGQscj10LW4rdGhpcy5fX2RuZEF1dG9TY3JvbGxUaHJlc2hvbGQ7bGV0IG89MDtpZihyPjA/bz0yKnI6aT4wJiYobz0yKi1pKSxvKXtjb25zdCB0PXRoaXMuJC50YWJsZS5zY3JvbGxUb3A7aWYodGhpcy4kLnRhYmxlLnNjcm9sbFRvcCs9byx0IT09dGhpcy4kLnRhYmxlLnNjcm9sbFRvcClyZXR1cm4gdGhpcy5fX2RuZEF1dG9TY3JvbGxpbmc9ITAsc2V0VGltZW91dCgoKCk9PnRoaXMuX19kbmRBdXRvU2Nyb2xsaW5nPSExKSwyMCksdGhpcy5fc2Nyb2xsSGFuZGxlcigpLCEwfX1fX2dldFZpZXdwb3J0Um93cygpe2NvbnN0IHQ9dGhpcy4kLmhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20sZT10aGlzLiQuZm9vdGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigobj0+e2NvbnN0IGk9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gaS5ib3R0b20+dCYmaS50b3A8ZX0pKX1fY2xlYXJEcmFnU3R5bGVzKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImRyYWdvdmVyIiksQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZvckVhY2goKHQ9PnQucmVtb3ZlQXR0cmlidXRlKCJkcmFnb3ZlciIpKSl9X29uRHJvcCh0KXtpZih0aGlzLmRyb3BNb2RlKXt0LnN0b3BQcm9wYWdhdGlvbigpLHQucHJldmVudERlZmF1bHQoKTtjb25zdCBlPXQuZGF0YVRyYW5zZmVyLnR5cGVzJiZBcnJheS5mcm9tKHQuZGF0YVRyYW5zZmVyLnR5cGVzKS5tYXAoKGU9Pih7dHlwZTplLGRhdGE6dC5kYXRhVHJhbnNmZXIuZ2V0RGF0YShlKX0pKSk7dGhpcy5fY2xlYXJEcmFnU3R5bGVzKCk7Y29uc3Qgbj1uZXcgQ3VzdG9tRXZlbnQoImdyaWQtZHJvcCIse2J1YmJsZXM6dC5idWJibGVzLGNhbmNlbGFibGU6dC5jYW5jZWxhYmxlLGRldGFpbDp7ZHJvcFRhcmdldEl0ZW06dGhpcy5fZHJhZ092ZXJJdGVtLGRyb3BMb2NhdGlvbjp0aGlzLl9kcm9wTG9jYXRpb24sZHJhZ0RhdGE6ZX19KTtuLm9yaWdpbmFsRXZlbnQ9dCx0aGlzLmRpc3BhdGNoRXZlbnQobil9fV9fZm9ybWF0RGVmYXVsdFRyYW5zZmVyRGF0YSh0KXtyZXR1cm4gdC5tYXAoKHQ9PkFycmF5LmZyb20odC5jaGlsZHJlbikuZmlsdGVyKCh0PT4hdC5oaWRkZW4mJi0xPT09dC5nZXRBdHRyaWJ1dGUoInBhcnQiKS5pbmRleE9mKCJkZXRhaWxzLWNlbGwiKSkpLnNvcnQoKCh0LGUpPT50Ll9jb2x1bW4uX29yZGVyPmUuX2NvbHVtbi5fb3JkZXI/MTotMSkpLm1hcCgodD0+dC5fY29udGVudC50ZXh0Q29udGVudC50cmltKCkpKS5maWx0ZXIoKHQ9PnQpKS5qb2luKCJcdCIpKSkuam9pbigiXG4iKX1fZHJhZ0Ryb3BBY2Nlc3NDaGFuZ2VkKCl7dGhpcy5maWx0ZXJEcmFnQW5kRHJvcCgpfWZpbHRlckRyYWdBbmREcm9wKCl7QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigodD0+IXQuaGlkZGVuKSkuZm9yRWFjaCgodD0+e3RoaXMuX2ZpbHRlckRyYWdBbmREcm9wKHQsdGhpcy5fX2dldFJvd01vZGVsKHQpKX0pKX1fZmlsdGVyRHJhZ0FuZERyb3AodCxlKXtjb25zdCBuPSF0aGlzLnJvd3NEcmFnZ2FibGV8fHRoaXMuZHJhZ0ZpbHRlciYmIXRoaXMuZHJhZ0ZpbHRlcihlKSxpPSF0aGlzLmRyb3BNb2RlfHx0aGlzLmRyb3BGaWx0ZXImJiF0aGlzLmRyb3BGaWx0ZXIoZSk7QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5tYXAoKHQ9PnQuX2NvbnRlbnQpKS5mb3JFYWNoKCh0PT57bj90LnJlbW92ZUF0dHJpYnV0ZSgiZHJhZ2dhYmxlIik6dC5zZXRBdHRyaWJ1dGUoImRyYWdnYWJsZSIsITApfSkpLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZHJhZy1kaXNhYmxlZCIsbix0KSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImRyb3AtZGlzYWJsZWQiLGksdCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyxRJHQ9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntfaGVhZGVyRm9jdXNhYmxlOnt0eXBlOk9iamVjdCxvYnNlcnZlcjoiX2ZvY3VzYWJsZUNoYW5nZWQifSxfaXRlbXNGb2N1c2FibGU6e3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfZm9jdXNhYmxlQ2hhbmdlZCJ9LF9mb290ZXJGb2N1c2FibGU6e3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfZm9jdXNhYmxlQ2hhbmdlZCJ9LF9uYXZpZ2F0aW5nSXNIaWRkZW46Qm9vbGVhbixfZm9jdXNlZEl0ZW1JbmRleDp7dHlwZTpOdW1iZXIsdmFsdWU6MH0sX2ZvY3VzZWRDb2x1bW5PcmRlcjpOdW1iZXIsaW50ZXJhY3Rpbmc6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAscmVhZE9ubHk6ITAsb2JzZXJ2ZXI6Il9pbnRlcmFjdGluZ0NoYW5nZWQifX19cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuX2lvc3x8dGhpcy5fYW5kcm9pZHx8KHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fb25LZXlEb3duKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLl9vbktleVVwKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLHRoaXMuX29uRm9jdXNJbiksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsdGhpcy5fb25Gb2N1c091dCksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLHRoaXMuX29uQ2VsbEZvY3VzSW4uYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0Iix0aGlzLl9vbkNlbGxGb2N1c091dC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsKCgpPT57dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMSx0aGlzKSx0aGlzLl9pc01vdXNlZG93bj0hMH0pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCgoKT0+dGhpcy5faXNNb3VzZWRvd249ITEpKSl9X2ZvY3VzYWJsZUNoYW5nZWQodCxlKXtlJiZlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLHQmJnRoaXMuX3VwZGF0ZUdyaWRTZWN0aW9uRm9jdXNUYXJnZXQodCl9X2ludGVyYWN0aW5nQ2hhbmdlZCgpe3RoaXMuX3VwZGF0ZUdyaWRTZWN0aW9uRm9jdXNUYXJnZXQodGhpcy5faGVhZGVyRm9jdXNhYmxlKSx0aGlzLl91cGRhdGVHcmlkU2VjdGlvbkZvY3VzVGFyZ2V0KHRoaXMuX2l0ZW1zRm9jdXNhYmxlKSx0aGlzLl91cGRhdGVHcmlkU2VjdGlvbkZvY3VzVGFyZ2V0KHRoaXMuX2Zvb3RlckZvY3VzYWJsZSl9X29uS2V5RG93bih0KXtjb25zdCBlPXQua2V5O2xldCBuO3N3aXRjaChlKXtjYXNlIkFycm93VXAiOmNhc2UiQXJyb3dEb3duIjpjYXNlIkFycm93TGVmdCI6Y2FzZSJBcnJvd1JpZ2h0IjpjYXNlIlBhZ2VVcCI6Y2FzZSJQYWdlRG93biI6Y2FzZSJIb21lIjpjYXNlIkVuZCI6bj0iTmF2aWdhdGlvbiI7YnJlYWs7Y2FzZSJFbnRlciI6Y2FzZSJFc2NhcGUiOmNhc2UiRjIiOm49IkludGVyYWN0aW9uIjticmVhaztjYXNlIlRhYiI6bj0iVGFiIjticmVhaztjYXNlIiAiOm49IlNwYWNlIn10aGlzLl9kZXRlY3RJbnRlcmFjdGluZyh0KSx0aGlzLmludGVyYWN0aW5nJiYiSW50ZXJhY3Rpb24iIT09biYmKG49dm9pZCAwKSxuJiZ0aGlzW2Bfb24ke259S2V5RG93bmBdKHQsZSl9X2Vuc3VyZVNjcm9sbGVkVG9JbmRleCh0KXtBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKChlPT5lLmluZGV4PT09dCkpWzBdfHx0aGlzLl9zY3JvbGxUb0luZGV4KHQpfV9vbk5hdmlnYXRpb25LZXlEb3duKHQsZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0LnBhcmVudE5vZGUuY2hpbGRyZW4sdCl9dGhpcy5fc2Nyb2xsSGFuZGxlcigpLHQucHJldmVudERlZmF1bHQoKTtjb25zdCBpPXRoaXMuX2xhc3RWaXNpYmxlSW5kZXgtdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXgtMTtsZXQgcj0wLG89MDtzd2l0Y2goZSl7Y2FzZSJBcnJvd1JpZ2h0IjpyPXRoaXMuX19pc1JUTD8tMToxO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0IjpyPXRoaXMuX19pc1JUTD8xOi0xO2JyZWFrO2Nhc2UiSG9tZSI6cj0tMS8wLHQuY3RybEtleSYmKG89LTEvMCk7YnJlYWs7Y2FzZSJFbmQiOnI9MS8wLHQuY3RybEtleSYmKG89MS8wKTticmVhaztjYXNlIkFycm93RG93biI6bz0xO2JyZWFrO2Nhc2UiQXJyb3dVcCI6bz0tMTticmVhaztjYXNlIlBhZ2VEb3duIjpvPWk7YnJlYWs7Y2FzZSJQYWdlVXAiOm89LWl9Y29uc3QgYT10LmNvbXBvc2VkUGF0aCgpWzBdLHM9bihhKSxsPXRoaXMuX2VsZW1lbnRNYXRjaGVzKGEsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSxjPWEucGFyZW50Tm9kZSx1PWMucGFyZW50Tm9kZSxoPSh1PT09dGhpcy4kLml0ZW1zP3RoaXMuX2VmZmVjdGl2ZVNpemU6dS5jaGlsZHJlbi5sZW5ndGgpLTEsZD11PT09dGhpcy4kLml0ZW1zP3ZvaWQgMCE9PXRoaXMuX2ZvY3VzZWRJdGVtSW5kZXg/dGhpcy5fZm9jdXNlZEl0ZW1JbmRleDpjLmluZGV4Om4oYyk7bGV0IHA9TWF0aC5tYXgoMCxNYXRoLm1pbihkK28saCkpLGY9ITE7aWYodT09PXRoaXMuJC5pdGVtcyl7Y29uc3QgdD1jLl9pdGVtLGU9dGhpcy5fY2FjaGUuZ2V0SXRlbUZvckluZGV4KHApO2Y9bD8wPT09bzoxPT09byYmdGhpcy5faXNEZXRhaWxzT3BlbmVkKHQpfHwtMT09PW8mJnAhPT1kJiZ0aGlzLl9pc0RldGFpbHNPcGVuZWQoZSksZiE9PWwmJigxPT09byYmZnx8LTE9PT1vJiYhZikmJihwPWQpfWlmKHUhPT10aGlzLiQuaXRlbXMpaWYocD5kKWZvcig7cDxoJiZ1LmNoaWxkcmVuW3BdLmhpZGRlbjspcCsrO2Vsc2UgaWYocDxkKWZvcig7cD4wJiZ1LmNoaWxkcmVuW3BdLmhpZGRlbjspcC0tO3ZvaWQgMD09PXRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlciYmKHRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlcj1sPzA6dGhpcy5fZ2V0Q29sdW1ucyh1LGQpLmZpbHRlcigodD0+IXQuaGlkZGVuKSlbc10uX29yZGVyKTtjb25zdCBtPXRoaXMuX2dldENvbHVtbnModSxwKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpLGc9bS5tYXAoKHQ9PnQuX29yZGVyKSkuc29ydCgoKHQsZSk9PnQtZSkpLF89Zy5sZW5ndGgtMSx5PWcuaW5kZXhPZihnLnNsaWNlKDApLnNvcnQoKCh0LGUpPT5NYXRoLmFicyh0LXRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlciktTWF0aC5hYnMoZS10aGlzLl9mb2N1c2VkQ29sdW1uT3JkZXIpKSlbMF0pLHY9MD09PW8mJmw/eTpNYXRoLm1heCgwLE1hdGgubWluKHkrcixfKSk7diE9PXkmJih0aGlzLl9mb2N1c2VkQ29sdW1uT3JkZXI9dm9pZCAwKSx1PT09dGhpcy4kLml0ZW1zJiZ0aGlzLl9lbnN1cmVTY3JvbGxlZFRvSW5kZXgocCksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMCx0aGlzKTtjb25zdCBiPW0ucmVkdWNlKCgodCxlLG4pPT4odFtlLl9vcmRlcl09bix0KSkse30pW2dbdl1dLHg9dT09PXRoaXMuJC5pdGVtcz9BcnJheS5mcm9tKHUuY2hpbGRyZW4pLmZpbHRlcigodD0+dC5pbmRleD09PXApKVswXTp1LmNoaWxkcmVuW3BdO2lmKCF4KXJldHVybjtjb25zdCB3PWY/QXJyYXkuZnJvbSh4LmNoaWxkcmVuKS5maWx0ZXIoKHQ9PnRoaXMuX2VsZW1lbnRNYXRjaGVzKHQsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSkpWzBdOnguY2hpbGRyZW5bYl07aWYodGhpcy5fc2Nyb2xsSG9yaXpvbnRhbGx5VG9DZWxsKHcpLHU9PT10aGlzLiQuaXRlbXMmJih0aGlzLl9mb2N1c2VkSXRlbUluZGV4PXApLHU9PT10aGlzLiQuaXRlbXMpe2NvbnN0IHQ9dy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlPXRoaXMuJC5mb290ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLG49dGhpcy4kLmhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b207dC5ib3R0b20+ZT8odGhpcy4kLnRhYmxlLnNjcm9sbFRvcCs9dC5ib3R0b20tZSx0aGlzLl9zY3JvbGxIYW5kbGVyKCkpOnQudG9wPG4mJih0aGlzLiQudGFibGUuc2Nyb2xsVG9wLT1uLXQudG9wLHRoaXMuX3Njcm9sbEhhbmRsZXIoKSl9dy5mb2N1cygpfV9vbkludGVyYWN0aW9uS2V5RG93bih0LGUpe2NvbnN0IG49dC5jb21wb3NlZFBhdGgoKVswXSxpPSJpbnB1dCI9PT1uLmxvY2FsTmFtZSYmIS9eKGJ1dHRvbnxjaGVja2JveHxjb2xvcnxmaWxlfGltYWdlfHJhZGlvfHJhbmdlfHJlc2V0fHN1Ym1pdCkkL2kudGVzdChuLnR5cGUpO2xldCByO3N3aXRjaChlKXtjYXNlIkVudGVyIjpyPSF0aGlzLmludGVyYWN0aW5nfHwhaTticmVhaztjYXNlIkVzY2FwZSI6cj0hMTticmVhaztjYXNlIkYyIjpyPSF0aGlzLmludGVyYWN0aW5nfWNvbnN0e2NlbGw6b309dGhpcy5fZ2V0R3JpZEV2ZW50TG9jYXRpb24odCk7aWYodGhpcy5pbnRlcmFjdGluZyE9PXImJm51bGwhPT1vKWlmKHIpe2NvbnN0IGU9by5fY29udGVudC5xdWVyeVNlbGVjdG9yKCJbZm9jdXMtdGFyZ2V0XSIpfHxvLl9jb250ZW50LmZpcnN0RWxlbWVudENoaWxkO2UmJih0LnByZXZlbnREZWZhdWx0KCksZS5mb2N1cygpLHRoaXMuX3NldEludGVyYWN0aW5nKCEwKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCExLHRoaXMpKX1lbHNlIHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9mb2N1c2VkQ29sdW1uT3JkZXI9dm9pZCAwLG8uZm9jdXMoKSx0aGlzLl9zZXRJbnRlcmFjdGluZyghMSksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMCx0aGlzKX1fcHJlZGljdEZvY3VzU3RlcFRhcmdldCh0LGUpe2NvbnN0IG49W3RoaXMuJC50YWJsZSx0aGlzLl9oZWFkZXJGb2N1c2FibGUsdGhpcy5faXRlbXNGb2N1c2FibGUsdGhpcy5fZm9vdGVyRm9jdXNhYmxlLHRoaXMuJC5mb2N1c2V4aXRdO2xldCBpPW4uaW5kZXhPZih0KTtmb3IoaSs9ZTtpPj0wJiZpPD1uLmxlbmd0aC0xJiYoIW5baV18fG5baV0ucGFyZW50Tm9kZS5oaWRkZW4pOylpKz1lO3JldHVybiBuW2ldfV9vblRhYktleURvd24odCl7Y29uc3QgZT10aGlzLl9wcmVkaWN0Rm9jdXNTdGVwVGFyZ2V0KHQuY29tcG9zZWRQYXRoKClbMF0sdC5zaGlmdEtleT8tMToxKTtpZihlPT09dGhpcy4kLnRhYmxlKXRoaXMuJC50YWJsZS5mb2N1cygpO2Vsc2UgaWYoZT09PXRoaXMuJC5mb2N1c2V4aXQpdGhpcy4kLmZvY3VzZXhpdC5mb2N1cygpO2Vsc2UgaWYoZT09PXRoaXMuX2l0ZW1zRm9jdXNhYmxlKXtsZXQgbj1lO2NvbnN0IGk9dGhpcy5faXRlbXNGb2N1c2FibGUucGFyZW50Tm9kZTtpZih0aGlzLl9lbnN1cmVTY3JvbGxlZFRvSW5kZXgodGhpcy5fZm9jdXNlZEl0ZW1JbmRleCksaS5pbmRleCE9PXRoaXMuX2ZvY3VzZWRJdGVtSW5kZXgpe2NvbnN0IHQ9QXJyYXkuZnJvbShpLmNoaWxkcmVuKS5pbmRleE9mKHRoaXMuX2l0ZW1zRm9jdXNhYmxlKSxlPUFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5maWx0ZXIoKHQ9PnQuaW5kZXg9PT10aGlzLl9mb2N1c2VkSXRlbUluZGV4KSlbMF07ZSYmKG49ZS5jaGlsZHJlblt0XSl9dC5wcmV2ZW50RGVmYXVsdCgpLG4uZm9jdXMoKX1lbHNlIHQucHJldmVudERlZmF1bHQoKSxlLmZvY3VzKCk7dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMCx0aGlzKX1fb25TcGFjZUtleURvd24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGU9dC5jb21wb3NlZFBhdGgoKVswXTtlLl9jb250ZW50JiZlLl9jb250ZW50LmZpcnN0RWxlbWVudENoaWxkfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsLWFjdGl2YXRlIix7ZGV0YWlsOnttb2RlbDp0aGlzLl9fZ2V0Um93TW9kZWwoZS5wYXJlbnRFbGVtZW50KX19KSl9X29uS2V5VXAodCl7aWYoIS9eKCB8U3BhY2VCYXIpJC8udGVzdCh0LmtleSkpcmV0dXJuO3QucHJldmVudERlZmF1bHQoKTtjb25zdCBlPXQuY29tcG9zZWRQYXRoKClbMF07aWYoZS5fY29udGVudCYmZS5fY29udGVudC5maXJzdEVsZW1lbnRDaGlsZCl7Y29uc3QgdD10aGlzLmhhc0F0dHJpYnV0ZSgibmF2aWdhdGluZyIpO2UuX2NvbnRlbnQuZmlyc3RFbGVtZW50Q2hpbGQuY2xpY2soKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLHQsdGhpcyl9fV9vbkZvY3VzSW4odCl7dGhpcy5faXNNb3VzZWRvd258fHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibmF2aWdhdGluZyIsITAsdGhpcyk7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpWzBdO2U9PT10aGlzLiQudGFibGV8fGU9PT10aGlzLiQuZm9jdXNleGl0Pyh0aGlzLl9wcmVkaWN0Rm9jdXNTdGVwVGFyZ2V0KGUsZT09PXRoaXMuJC50YWJsZT8xOi0xKS5mb2N1cygpLHRoaXMuX3NldEludGVyYWN0aW5nKCExKSk6dGhpcy5fZGV0ZWN0SW50ZXJhY3RpbmcodCl9X29uRm9jdXNPdXQodCl7dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMSx0aGlzKSx0aGlzLl9kZXRlY3RJbnRlcmFjdGluZyh0KX1fb25DZWxsRm9jdXNJbih0KXtjb25zdHtzZWN0aW9uOmUsY2VsbDpufT10aGlzLl9nZXRHcmlkRXZlbnRMb2NhdGlvbih0KTt0aGlzLl9kZXRlY3RJbnRlcmFjdGluZyh0KSxlJiZuJiYodGhpcy5fYWN0aXZlUm93R3JvdXA9ZSx0aGlzLiQuaGVhZGVyPT09ZT90aGlzLl9oZWFkZXJGb2N1c2FibGU9bjp0aGlzLiQuaXRlbXM9PT1lP3RoaXMuX2l0ZW1zRm9jdXNhYmxlPW46dGhpcy4kLmZvb3Rlcj09PWUmJih0aGlzLl9mb290ZXJGb2N1c2FibGU9biksbi5fY29udGVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2VsbC1mb2N1c2luIix7YnViYmxlczohMX0pKSxuLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsLWZvY3VzIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKSksdGhpcy5fZGV0ZWN0Rm9jdXNlZEl0ZW1JbmRleCh0KX1fb25DZWxsRm9jdXNPdXQodCl7Mz09PXQuY29tcG9zZWRQYXRoKCkuaW5kZXhPZih0aGlzLiQudGFibGUpJiZ0LmNvbXBvc2VkUGF0aCgpWzBdLl9jb250ZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsLWZvY3Vzb3V0Iix7YnViYmxlczohMX0pKX1fZGV0ZWN0SW50ZXJhY3RpbmcodCl7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpLnNvbWUoKHQ9PiJ2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQiPT09dC5sb2NhbE5hbWUpKTt0aGlzLl9zZXRJbnRlcmFjdGluZyhlKX1fZGV0ZWN0Rm9jdXNlZEl0ZW1JbmRleCh0KXtjb25zdHtzZWN0aW9uOmUscm93Om59PXRoaXMuX2dldEdyaWRFdmVudExvY2F0aW9uKHQpO2U9PT10aGlzLiQuaXRlbXMmJih0aGlzLl9mb2N1c2VkSXRlbUluZGV4PW4uaW5kZXgpfV91cGRhdGVHcmlkU2VjdGlvbkZvY3VzVGFyZ2V0KHQpe2lmKCF0KXJldHVybjtjb25zdCBlPXRoaXMuX2dldEdyaWRTZWN0aW9uRnJvbUZvY3VzVGFyZ2V0KHQpO3QudGFiSW5kZXg9dGhpcy5pbnRlcmFjdGluZyYmZT09PXRoaXMuX2FjdGl2ZVJvd0dyb3VwPy0xOjB9X3ByZXZlbnRTY3JvbGxlclJvdGF0aW5nQ2VsbEZvY3VzKHQsZSl7dC5pbmRleD09PXRoaXMuX2ZvY3VzZWRJdGVtSW5kZXgmJnRoaXMuaGFzQXR0cmlidXRlKCJuYXZpZ2F0aW5nIikmJnRoaXMuX2FjdGl2ZVJvd0dyb3VwPT09dGhpcy4kLml0ZW1zJiYodGhpcy5fbmF2aWdhdGluZ0lzSGlkZGVuPSEwLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibmF2aWdhdGluZyIsITEsdGhpcykpLGU9PT10aGlzLl9mb2N1c2VkSXRlbUluZGV4JiZ0aGlzLl9uYXZpZ2F0aW5nSXNIaWRkZW4mJih0aGlzLl9uYXZpZ2F0aW5nSXNIaWRkZW49ITEsdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMCx0aGlzKSl9X2dldENvbHVtbnModCxlKXtsZXQgbj10aGlzLl9jb2x1bW5UcmVlLmxlbmd0aC0xO3JldHVybiB0PT09dGhpcy4kLmhlYWRlcj9uPWU6dD09PXRoaXMuJC5mb290ZXImJihuPXRoaXMuX2NvbHVtblRyZWUubGVuZ3RoLTEtZSksdGhpcy5fY29sdW1uVHJlZVtuXX1fcmVzZXRLZXlib2FyZE5hdmlnYXRpb24oKXtpZih0aGlzLiQuaGVhZGVyLmZpcnN0RWxlbWVudENoaWxkJiYodGhpcy5faGVhZGVyRm9jdXNhYmxlPUFycmF5LmZyb20odGhpcy4kLmhlYWRlci5maXJzdEVsZW1lbnRDaGlsZC5jaGlsZHJlbikuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKVswXSksdGhpcy4kLml0ZW1zLmZpcnN0RWxlbWVudENoaWxkKXtjb25zdCB0PXRoaXMuX2l0ZXJhdGVJdGVtcygoKHQsZSk9PntpZih0aGlzLl9maXJzdFZpc2libGVJbmRleD09PWUpcmV0dXJuIHRoaXMuJC5pdGVtcy5jaGlsZHJlblt0XX0pKTt0JiYodGhpcy5faXRlbXNGb2N1c2FibGU9QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpWzBdKX10aGlzLiQuZm9vdGVyLmZpcnN0RWxlbWVudENoaWxkJiYodGhpcy5fZm9vdGVyRm9jdXNhYmxlPUFycmF5LmZyb20odGhpcy4kLmZvb3Rlci5maXJzdEVsZW1lbnRDaGlsZC5jaGlsZHJlbikuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKVswXSl9X3Njcm9sbEhvcml6b250YWxseVRvQ2VsbCh0KXtpZih0Lmhhc0F0dHJpYnV0ZSgiZnJvemVuIil8fHRoaXMuX2VsZW1lbnRNYXRjaGVzKHQsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSlyZXR1cm47Y29uc3QgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49dC5wYXJlbnROb2RlLGk9QXJyYXkuZnJvbShuLmNoaWxkcmVuKS5pbmRleE9mKHQpLHI9dGhpcy4kLnRhYmxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBvPXIubGVmdCxhPXIucmlnaHQ7Zm9yKGxldCB0PWktMTt0Pj0wO3QtLSl7Y29uc3QgZT1uLmNoaWxkcmVuW3RdO2lmKCFlLmhhc0F0dHJpYnV0ZSgiaGlkZGVuIikmJiF0aGlzLl9lbGVtZW50TWF0Y2hlcyhlLCdbcGFydH49ImRldGFpbHMtY2VsbCJdJykmJmUuaGFzQXR0cmlidXRlKCJmcm96ZW4iKSl7bz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0O2JyZWFrfX1mb3IobGV0IHQ9aSsxO3Q8bi5jaGlsZHJlbi5sZW5ndGg7dCsrKXtjb25zdCBlPW4uY2hpbGRyZW5bdF07aWYoIWUuaGFzQXR0cmlidXRlKCJoaWRkZW4iKSYmIXRoaXMuX2VsZW1lbnRNYXRjaGVzKGUsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSYmZS5oYXNBdHRyaWJ1dGUoImZyb3plbiIpKXthPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDticmVha319ZS5sZWZ0PG8mJih0aGlzLiQudGFibGUuc2Nyb2xsTGVmdCs9TWF0aC5yb3VuZChlLmxlZnQtbykpLGUucmlnaHQ+YSYmKHRoaXMuJC50YWJsZS5zY3JvbGxMZWZ0Kz1NYXRoLnJvdW5kKGUucmlnaHQtYSkpfV9lbGVtZW50TWF0Y2hlcyh0LGUpe3JldHVybiB0Lm1hdGNoZXM/dC5tYXRjaGVzKGUpOi0xIT09QXJyYXkuZnJvbSh0LnBhcmVudE5vZGUucXVlcnlTZWxlY3RvckFsbChlKSkuaW5kZXhPZih0KX1fZ2V0R3JpZEV2ZW50TG9jYXRpb24odCl7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpLG49ZS5pbmRleE9mKHRoaXMuJC50YWJsZSk7cmV0dXJue3NlY3Rpb246bj49MT9lW24tMV06bnVsbCxyb3c6bj49Mj9lW24tMl06bnVsbCxjZWxsOm4+PTM/ZVtuLTNdOm51bGx9fV9nZXRHcmlkU2VjdGlvbkZyb21Gb2N1c1RhcmdldCh0KXtyZXR1cm4gdD09PXRoaXMuX2hlYWRlckZvY3VzYWJsZT90aGlzLiQuaGVhZGVyOnQ9PT10aGlzLl9pdGVtc0ZvY3VzYWJsZT90aGlzLiQuaXRlbXM6dD09PXRoaXMuX2Zvb3RlckZvY3VzYWJsZT90aGlzLiQuZm9vdGVyOm51bGx9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyx0S3Q9dD0+Y2xhc3MgZXh0ZW5kcyhwaSh0KSl7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2NvbHVtblJlb3JkZXJpbmdBbGxvd2VkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9vcmRlckJhc2VTY29wZTp7dHlwZTpOdW1iZXIsdmFsdWU6MWU3fX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl91cGRhdGVPcmRlcnMoX2NvbHVtblRyZWUsIF9jb2x1bW5UcmVlLiopIl19cmVhZHkoKXtzdXBlci5yZWFkeSgpLGlpKHRoaXMsInRyYWNrIix0aGlzLl9vblRyYWNrRXZlbnQpLHRoaXMuX3Jlb3JkZXJHaG9zdD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignW3BhcnQ9InJlb3JkZXItZ2hvc3QiXScpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fb25Ub3VjaFN0YXJ0LmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9vblRvdWNoTW92ZS5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9vblRvdWNoRW5kLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMuX29uQ29udGV4dE1lbnUuYmluZCh0aGlzKSl9X29uQ29udGV4dE1lbnUodCl7dGhpcy5oYXNBdHRyaWJ1dGUoInJlb3JkZXJpbmciKSYmdC5wcmV2ZW50RGVmYXVsdCgpfV9vblRvdWNoU3RhcnQodCl7dGhpcy5fc3RhcnRUb3VjaFJlb3JkZXJUaW1lb3V0PXNldFRpbWVvdXQoKCgpPT57dGhpcy5fb25UcmFja1N0YXJ0KHtkZXRhaWw6e3g6dC50b3VjaGVzWzBdLmNsaWVudFgseTp0LnRvdWNoZXNbMF0uY2xpZW50WX19KX0pLDEwMCl9X29uVG91Y2hNb3ZlKHQpe3RoaXMuX2RyYWdnZWRDb2x1bW4mJnQucHJldmVudERlZmF1bHQoKSxjbGVhclRpbWVvdXQodGhpcy5fc3RhcnRUb3VjaFJlb3JkZXJUaW1lb3V0KX1fb25Ub3VjaEVuZCgpe2NsZWFyVGltZW91dCh0aGlzLl9zdGFydFRvdWNoUmVvcmRlclRpbWVvdXQpLHRoaXMuX29uVHJhY2tFbmQoKX1fb25UcmFja0V2ZW50KHQpe2lmKCJzdGFydCI9PT10LmRldGFpbC5zdGF0ZSl7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpLG49ZVtlLmluZGV4T2YodGhpcy4kLmhlYWRlciktMl07aWYoIW58fCFuLl9jb250ZW50KXJldHVybjtpZihuLl9jb250ZW50LmNvbnRhaW5zKHRoaXMuZ2V0Um9vdE5vZGUoKS5hY3RpdmVFbGVtZW50KSlyZXR1cm47aWYodGhpcy4kLnNjcm9sbGVyLmhhc0F0dHJpYnV0ZSgiY29sdW1uLXJlc2l6aW5nIikpcmV0dXJuO3RoaXMuX3RvdWNoRGV2aWNlfHx0aGlzLl9vblRyYWNrU3RhcnQodCl9ZWxzZSJ0cmFjayI9PT10LmRldGFpbC5zdGF0ZT90aGlzLl9vblRyYWNrKHQpOiJlbmQiPT09dC5kZXRhaWwuc3RhdGUmJnRoaXMuX29uVHJhY2tFbmQodCl9X29uVHJhY2tTdGFydCh0KXtpZighdGhpcy5jb2x1bW5SZW9yZGVyaW5nQWxsb3dlZClyZXR1cm47Y29uc3QgZT10LmNvbXBvc2VkUGF0aCYmdC5jb21wb3NlZFBhdGgoKTtpZihlJiZlLmZpbHRlcigodD0+dC5oYXNBdHRyaWJ1dGUmJnQuaGFzQXR0cmlidXRlKCJkcmFnZ2FibGUiKSkpWzBdKXJldHVybjtjb25zdCBuPXRoaXMuX2NlbGxGcm9tUG9pbnQodC5kZXRhaWwueCx0LmRldGFpbC55KTtpZihuJiYtMSE9PW4uZ2V0QXR0cmlidXRlKCJwYXJ0IikuaW5kZXhPZigiaGVhZGVyLWNlbGwiKSl7Zm9yKHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgicmVvcmRlcmluZyIsITAsdGhpcyksdGhpcy5fZHJhZ2dlZENvbHVtbj1uLl9jb2x1bW47MT09PXRoaXMuX2RyYWdnZWRDb2x1bW4ucGFyZW50RWxlbWVudC5jaGlsZEVsZW1lbnRDb3VudDspdGhpcy5fZHJhZ2dlZENvbHVtbj10aGlzLl9kcmFnZ2VkQ29sdW1uLnBhcmVudEVsZW1lbnQ7dGhpcy5fc2V0U2libGluZ3NSZW9yZGVyU3RhdHVzKHRoaXMuX2RyYWdnZWRDb2x1bW4sImFsbG93ZWQiKSx0aGlzLl9kcmFnZ2VkQ29sdW1uLl9yZW9yZGVyU3RhdHVzPSJkcmFnZ2luZyIsdGhpcy5fdXBkYXRlR2hvc3QobiksdGhpcy5fcmVvcmRlckdob3N0LnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiLHRoaXMuX3VwZGF0ZUdob3N0UG9zaXRpb24odC5kZXRhaWwueCx0aGlzLl90b3VjaERldmljZT90LmRldGFpbC55LTUwOnQuZGV0YWlsLnkpLHRoaXMuX2F1dG9TY3JvbGxlcigpfX1fb25UcmFjayh0KXtpZighdGhpcy5fZHJhZ2dlZENvbHVtbilyZXR1cm47Y29uc3QgZT10aGlzLl9jZWxsRnJvbVBvaW50KHQuZGV0YWlsLngsdC5kZXRhaWwueSk7aWYoIWUpcmV0dXJuO2NvbnN0IG49dGhpcy5fZ2V0VGFyZ2V0Q29sdW1uKGUsdGhpcy5fZHJhZ2dlZENvbHVtbik7dGhpcy5faXNTd2FwQWxsb3dlZCh0aGlzLl9kcmFnZ2VkQ29sdW1uLG4pJiZ0aGlzLl9pc1N3YXBwYWJsZUJ5UG9zaXRpb24obix0LmRldGFpbC54KSYmdGhpcy5fc3dhcENvbHVtbk9yZGVycyh0aGlzLl9kcmFnZ2VkQ29sdW1uLG4pLHRoaXMuX3VwZGF0ZUdob3N0UG9zaXRpb24odC5kZXRhaWwueCx0aGlzLl90b3VjaERldmljZT90LmRldGFpbC55LTUwOnQuZGV0YWlsLnkpLHRoaXMuX2xhc3REcmFnQ2xpZW50WD10LmRldGFpbC54fV9vblRyYWNrRW5kKCl7dGhpcy5fZHJhZ2dlZENvbHVtbiYmKHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgicmVvcmRlcmluZyIsITEsdGhpcyksdGhpcy5fZHJhZ2dlZENvbHVtbi5fcmVvcmRlclN0YXR1cz0iIix0aGlzLl9zZXRTaWJsaW5nc1Jlb3JkZXJTdGF0dXModGhpcy5fZHJhZ2dlZENvbHVtbiwiIiksdGhpcy5fZHJhZ2dlZENvbHVtbj1udWxsLHRoaXMuX2xhc3REcmFnQ2xpZW50WD1udWxsLHRoaXMuX3Jlb3JkZXJHaG9zdC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbHVtbi1yZW9yZGVyIix7ZGV0YWlsOntjb2x1bW5zOnRoaXMuX2dldENvbHVtbnNJbk9yZGVyKCl9fSkpKX1fZ2V0Q29sdW1uc0luT3JkZXIoKXtyZXR1cm4gdGhpcy5fY29sdW1uVHJlZS5zbGljZSgwKS5wb3AoKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpLnNvcnQoKCh0LGUpPT50Ll9vcmRlci1lLl9vcmRlcikpfV9jZWxsRnJvbVBvaW50KHQsZSl7dD10fHwwLGU9ZXx8MCx0aGlzLl9kcmFnZ2VkQ29sdW1ufHx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5vLWNvbnRlbnQtcG9pbnRlci1ldmVudHMiLCEwLHRoaXMuJC5zY3JvbGxlcik7Y29uc3Qgbj10aGlzLnNoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludCh0LGUpO2lmKHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibm8tY29udGVudC1wb2ludGVyLWV2ZW50cyIsITEsdGhpcy4kLnNjcm9sbGVyKSxuJiZuLl9jb2x1bW4pcmV0dXJuIG59X3VwZGF0ZUdob3N0UG9zaXRpb24odCxlKXtjb25zdCBuPXRoaXMuX3Jlb3JkZXJHaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXQtbi53aWR0aC8yLHI9ZS1uLmhlaWdodC8yLG89cGFyc2VJbnQodGhpcy5fcmVvcmRlckdob3N0Ll9sZWZ0fHwwKSxhPXBhcnNlSW50KHRoaXMuX3Jlb3JkZXJHaG9zdC5fdG9wfHwwKTt0aGlzLl9yZW9yZGVyR2hvc3QuX2xlZnQ9by0obi5sZWZ0LWkpLHRoaXMuX3Jlb3JkZXJHaG9zdC5fdG9wPWEtKG4udG9wLXIpLHRoaXMuX3Jlb3JkZXJHaG9zdC5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZSgke3RoaXMuX3Jlb3JkZXJHaG9zdC5fbGVmdH1weCwgJHt0aGlzLl9yZW9yZGVyR2hvc3QuX3RvcH1weClgfV91cGRhdGVHaG9zdCh0KXtjb25zdCBlPXRoaXMuX3Jlb3JkZXJHaG9zdDtlLnRleHRDb250ZW50PXQuX2NvbnRlbnQuaW5uZXJUZXh0O2NvbnN0IG49d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7cmV0dXJuWyJib3hTaXppbmciLCJkaXNwbGF5Iiwid2lkdGgiLCJoZWlnaHQiLCJiYWNrZ3JvdW5kIiwiYWxpZ25JdGVtcyIsInBhZGRpbmciLCJib3JkZXIiLCJmbGV4LWRpcmVjdGlvbiIsIm92ZXJmbG93Il0uZm9yRWFjaCgodD0+ZS5zdHlsZVt0XT1uW3RdKSksZX1fdXBkYXRlT3JkZXJzKHQsZSl7dm9pZCAwIT09dCYmdm9pZCAwIT09ZSYmKHRbMF0uZm9yRWFjaCgodD0+dC5fb3JkZXI9MCkpLChmdW5jdGlvbiBuKHQsZSxpKXtsZXQgcj0xO3QuZm9yRWFjaCgodD0+e3IlMTA9PTAmJnIrKyx0Ll9vcmRlcj1pK3IqZSxyKyt9KSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovKSh0WzBdLHRoaXMuX29yZGVyQmFzZVNjb3BlLDApKX1fc2V0U2libGluZ3NSZW9yZGVyU3RhdHVzKHQsZSl7QXJyYXkuZnJvbSh0LnBhcmVudE5vZGUuY2hpbGRyZW4pLmZpbHRlcigoZT0+L2NvbHVtbi8udGVzdChlLmxvY2FsTmFtZSkmJnRoaXMuX2lzU3dhcEFsbG93ZWQoZSx0KSkpLmZvckVhY2goKHQ9PnQuX3Jlb3JkZXJTdGF0dXM9ZSkpfV9hdXRvU2Nyb2xsZXIoKXtpZih0aGlzLl9sYXN0RHJhZ0NsaWVudFgpe2NvbnN0IHQ9dGhpcy5fbGFzdERyYWdDbGllbnRYLXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQrNTAsZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtdGhpcy5fbGFzdERyYWdDbGllbnRYKzUwO3Q+MD90aGlzLiQudGFibGUuc2Nyb2xsTGVmdCs9dC8xMDplPjAmJih0aGlzLiQudGFibGUuc2Nyb2xsTGVmdC09ZS8xMCksdGhpcy5fc2Nyb2xsSGFuZGxlcigpfXRoaXMuX2RyYWdnZWRDb2x1bW4mJnRoaXMuYXN5bmModGhpcy5fYXV0b1Njcm9sbGVyLDEwKX1faXNTd2FwQWxsb3dlZCh0LGUpe2lmKHQmJmUpe2NvbnN0IG49dC5wYXJlbnRFbGVtZW50PT09ZS5wYXJlbnRFbGVtZW50LGk9dC5mcm96ZW49PT1lLmZyb3plbjtyZXR1cm4gdCE9PWUmJm4mJml9fV9pc1N3YXBwYWJsZUJ5UG9zaXRpb24odCxlKXtjb25zdCBuPUFycmF5LmZyb20odGhpcy4kLmhlYWRlci5xdWVyeVNlbGVjdG9yQWxsKCd0cjpub3QoW2hpZGRlbl0pIFtwYXJ0fj0iY2VsbCJdJykpLmZpbHRlcigoZT0+dC5jb250YWlucyhlLl9jb2x1bW4pKSlbMF0saT10aGlzLiQuaGVhZGVyLnF1ZXJ5U2VsZWN0b3IoInRyOm5vdChbaGlkZGVuXSkgW3Jlb3JkZXItc3RhdHVzPWRyYWdnaW5nXSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gci5sZWZ0PmkubGVmdD9lPnIucmlnaHQtaS53aWR0aDplPHIubGVmdCtpLndpZHRofV9zd2FwQ29sdW1uT3JkZXJzKHQsZSl7Y29uc3Qgbj10Ll9vcmRlcjt0Ll9vcmRlcj1lLl9vcmRlcixlLl9vcmRlcj1uLHRoaXMuX3VwZGF0ZUxhc3RGcm96ZW4oKSx0aGlzLl91cGRhdGVGaXJzdEFuZExhc3RDb2x1bW4oKX1fZ2V0VGFyZ2V0Q29sdW1uKHQsZSl7aWYodCYmZSl7bGV0IG49dC5fY29sdW1uO2Zvcig7bi5wYXJlbnRFbGVtZW50IT09ZS5wYXJlbnRFbGVtZW50JiZuIT09dGhpczspbj1uLnBhcmVudEVsZW1lbnQ7cmV0dXJuIG4ucGFyZW50RWxlbWVudD09PWUucGFyZW50RWxlbWVudD9uOnQuX2NvbHVtbn19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyxlS3Q9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntyZXNpemFibGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTpmdW5jdGlvbigpe2lmKCJ2YWFkaW4tZ3JpZC1jb2x1bW4tZ3JvdXAiPT09dGhpcy5sb2NhbE5hbWUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5wYXJlbnROb2RlO3JldHVybiB0JiYidmFhZGluLWdyaWQtY29sdW1uLWdyb3VwIj09PXQubG9jYWxOYW1lJiZ0LnJlc2l6YWJsZXx8ITF9fSxfaGVhZGVyVGVtcGxhdGU6e3R5cGU6T2JqZWN0fSxfZm9vdGVyVGVtcGxhdGU6e3R5cGU6T2JqZWN0fSxmcm96ZW46e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saGlkZGVuOnt0eXBlOkJvb2xlYW59LGhlYWRlcjp7dHlwZTpTdHJpbmd9LHRleHRBbGlnbjp7dHlwZTpTdHJpbmd9LF9sYXN0RnJvemVuOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9vcmRlcjpOdW1iZXIsX3Jlb3JkZXJTdGF0dXM6Qm9vbGVhbixfZW1wdHlDZWxsczpBcnJheSxfaGVhZGVyQ2VsbDpPYmplY3QsX2Zvb3RlckNlbGw6T2JqZWN0LF9ncmlkOk9iamVjdCxoZWFkZXJSZW5kZXJlcjpGdW5jdGlvbixmb290ZXJSZW5kZXJlcjpGdW5jdGlvbn19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl93aWR0aENoYW5nZWQod2lkdGgsIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCwgX2NlbGxzLiopIiwiX2Zyb3plbkNoYW5nZWQoZnJvemVuLCBfaGVhZGVyQ2VsbCwgX2Zvb3RlckNlbGwsIF9jZWxscy4qKSIsIl9mbGV4R3Jvd0NoYW5nZWQoZmxleEdyb3csIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCwgX2NlbGxzLiopIiwiX3BhdGhPckhlYWRlckNoYW5nZWQocGF0aCwgaGVhZGVyLCBfaGVhZGVyQ2VsbCwgX2Zvb3RlckNlbGwsIF9jZWxscy4qLCByZW5kZXJlciwgaGVhZGVyUmVuZGVyZXIsIF9ib2R5VGVtcGxhdGUsIF9oZWFkZXJUZW1wbGF0ZSkiLCJfdGV4dEFsaWduQ2hhbmdlZCh0ZXh0QWxpZ24sIF9jZWxscy4qLCBfaGVhZGVyQ2VsbCwgX2Zvb3RlckNlbGwpIiwiX29yZGVyQ2hhbmdlZChfb3JkZXIsIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCwgX2NlbGxzLiopIiwiX2xhc3RGcm96ZW5DaGFuZ2VkKF9sYXN0RnJvemVuKSIsIl9zZXRCb2R5VGVtcGxhdGVPclJlbmRlcmVyKF9ib2R5VGVtcGxhdGUsIHJlbmRlcmVyLCBfY2VsbHMsIF9jZWxscy4qKSIsIl9zZXRIZWFkZXJUZW1wbGF0ZU9yUmVuZGVyZXIoX2hlYWRlclRlbXBsYXRlLCBoZWFkZXJSZW5kZXJlciwgX2hlYWRlckNlbGwpIiwiX3NldEZvb3RlclRlbXBsYXRlT3JSZW5kZXJlcihfZm9vdGVyVGVtcGxhdGUsIGZvb3RlclJlbmRlcmVyLCBfZm9vdGVyQ2VsbCkiLCJfcmVzaXphYmxlQ2hhbmdlZChyZXNpemFibGUsIF9oZWFkZXJDZWxsKSIsIl9yZW9yZGVyU3RhdHVzQ2hhbmdlZChfcmVvcmRlclN0YXR1cywgX2hlYWRlckNlbGwsIF9mb290ZXJDZWxsLCBfY2VsbHMuKikiLCJfaGlkZGVuQ2hhbmdlZChoaWRkZW4sIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCwgX2NlbGxzLiopIl19Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX2JvZHlUZW1wbGF0ZSYmKHRoaXMuX2JvZHlUZW1wbGF0ZS50ZW1wbGF0aXplci5fZ3JpZD10aGlzLl9ncmlkKSx0aGlzLl9oZWFkZXJUZW1wbGF0ZSYmKHRoaXMuX2hlYWRlclRlbXBsYXRlLnRlbXBsYXRpemVyLl9ncmlkPXRoaXMuX2dyaWQpLHRoaXMuX2Zvb3RlclRlbXBsYXRlJiYodGhpcy5fZm9vdGVyVGVtcGxhdGUudGVtcGxhdGl6ZXIuX2dyaWQ9dGhpcy5fZ3JpZCksdGhpcy5fdGVtcGxhdGVPYnNlcnZlci5mbHVzaCgpLHRoaXMuX2JvZHlUZW1wbGF0ZXx8dGhpcy5fdGVtcGxhdGVPYnNlcnZlci5jYWxsYmFjaygpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLl9hbGxDZWxscy5mb3JFYWNoKCh0PT57dC5fY29udGVudC5wYXJlbnROb2RlfHx0aGlzLl9ncmlkJiZ0aGlzLl9ncmlkLmFwcGVuZENoaWxkKHQuX2NvbnRlbnQpfSkpfSkpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5fZmluZEhvc3RHcmlkKCl8fHRoaXMuX2FsbENlbGxzLmZvckVhY2goKHQ9Pnt0Ll9jb250ZW50LnBhcmVudE5vZGUmJnQuX2NvbnRlbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0Ll9jb250ZW50KX0pKX0pKSx0aGlzLl9ncmlkVmFsdWU9dm9pZCAwfV9maW5kSG9zdEdyaWQoKXtsZXQgdD10aGlzO2Zvcig7dCYmIS9edmFhZGluLipncmlkKC1wcm8pPyQvLnRlc3QodC5sb2NhbE5hbWUpOyl0PXQuYXNzaWduZWRTbG90P3QuYXNzaWduZWRTbG90LnBhcmVudE5vZGU6dC5wYXJlbnROb2RlO3JldHVybiB0fHx2b2lkIDB9Z2V0IF9ncmlkKCl7cmV0dXJuIHRoaXMuX2dyaWRWYWx1ZXx8KHRoaXMuX2dyaWRWYWx1ZT10aGlzLl9maW5kSG9zdEdyaWQoKSksdGhpcy5fZ3JpZFZhbHVlfWdldCBfYWxsQ2VsbHMoKXtyZXR1cm5bXS5jb25jYXQodGhpcy5fY2VsbHN8fFtdKS5jb25jYXQodGhpcy5fZW1wdHlDZWxsc3x8W10pLmNvbmNhdCh0aGlzLl9oZWFkZXJDZWxsKS5jb25jYXQodGhpcy5fZm9vdGVyQ2VsbCkuZmlsdGVyKCh0PT50KSl9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX3RlbXBsYXRlT2JzZXJ2ZXI9bmV3IHppKHRoaXMsKCgpPT57dGhpcy5faGVhZGVyVGVtcGxhdGU9dGhpcy5fcHJlcGFyZUhlYWRlclRlbXBsYXRlKCksdGhpcy5fZm9vdGVyVGVtcGxhdGU9dGhpcy5fcHJlcGFyZUZvb3RlclRlbXBsYXRlKCksdGhpcy5fYm9keVRlbXBsYXRlPXRoaXMuX3ByZXBhcmVCb2R5VGVtcGxhdGUoKX0pKX1fcHJlcGFyZUhlYWRlclRlbXBsYXRlKCl7cmV0dXJuIHRoaXMuX3ByZXBhcmVUZW1wbGF0aXplcih0aGlzLl9maW5kVGVtcGxhdGUoITApfHxudWxsLHt9KX1fcHJlcGFyZUZvb3RlclRlbXBsYXRlKCl7cmV0dXJuIHRoaXMuX3ByZXBhcmVUZW1wbGF0aXplcih0aGlzLl9maW5kVGVtcGxhdGUoITEsITApfHxudWxsLHt9KX1fcHJlcGFyZUJvZHlUZW1wbGF0ZSgpe3JldHVybiB0aGlzLl9wcmVwYXJlVGVtcGxhdGl6ZXIodGhpcy5fZmluZFRlbXBsYXRlKCl8fG51bGwpfV9wcmVwYXJlVGVtcGxhdGl6ZXIodCxlKXtpZih0JiYhdC50ZW1wbGF0aXplcil7Y29uc3Qgbj1uZXcgViR0O24uX2dyaWQ9dGhpcy5fZ3JpZCxuLmRhdGFIb3N0PXRoaXMuZGF0YUhvc3Qsbi5faW5zdGFuY2VQcm9wcz1lfHxuLl9pbnN0YW5jZVByb3BzLG4udGVtcGxhdGU9dCx0LnRlbXBsYXRpemVyPW59cmV0dXJuIHR9X3JlbmRlckhlYWRlckFuZEZvb3Rlcigpe3RoaXMuaGVhZGVyUmVuZGVyZXImJnRoaXMuX2hlYWRlckNlbGwmJnRoaXMuX19ydW5SZW5kZXJlcih0aGlzLmhlYWRlclJlbmRlcmVyLHRoaXMuX2hlYWRlckNlbGwpLHRoaXMuZm9vdGVyUmVuZGVyZXImJnRoaXMuX2Zvb3RlckNlbGwmJnRoaXMuX19ydW5SZW5kZXJlcih0aGlzLmZvb3RlclJlbmRlcmVyLHRoaXMuX2Zvb3RlckNlbGwpfV9fcnVuUmVuZGVyZXIodCxlLG4pe2NvbnN0IGk9W2UuX2NvbnRlbnQsdGhpc107biYmbi5pdGVtJiZpLnB1c2gobiksdC5hcHBseSh0aGlzLGkpfV9fc2V0Q29sdW1uVGVtcGxhdGVPclJlbmRlcmVyKHQsZSxuKXtpZighdGhpcy5oaWRkZW4pe2lmKHQmJmUpdGhyb3cgbmV3IEVycm9yKCJZb3Ugc2hvdWxkIG9ubHkgdXNlIGVpdGhlciBhIHJlbmRlcmVyIG9yIGEgdGVtcGxhdGUiKTtuLmZvckVhY2goKG49Pntjb25zdCBpPXRoaXMuX2dyaWQuX19nZXRSb3dNb2RlbChuLnBhcmVudEVsZW1lbnQpO2lmKGUpbi5fcmVuZGVyZXI9ZSwoaS5pdGVtfHxlPT09dGhpcy5oZWFkZXJSZW5kZXJlcnx8ZT09PXRoaXMuZm9vdGVyUmVuZGVyZXIpJiZ0aGlzLl9fcnVuUmVuZGVyZXIoZSxuLGkpO2Vsc2UgaWYobi5fdGVtcGxhdGUhPT10KXtuLl90ZW1wbGF0ZT10LG4uX2NvbnRlbnQuaW5uZXJIVE1MPSIiLHQudGVtcGxhdGl6ZXIuX2dyaWQ9dC50ZW1wbGF0aXplci5fZ3JpZHx8dGhpcy5fZ3JpZDtjb25zdCBlPXQudGVtcGxhdGl6ZXIuY3JlYXRlSW5zdGFuY2UoKTtuLl9jb250ZW50LmFwcGVuZENoaWxkKGUucm9vdCksbi5faW5zdGFuY2U9ZSxpLml0ZW0mJm4uX2luc3RhbmNlLnNldFByb3BlcnRpZXMoaSl9fSkpfX1fc2V0Qm9keVRlbXBsYXRlT3JSZW5kZXJlcih0LGUsbil7KHR8fGUpJiZuJiZ0aGlzLl9fc2V0Q29sdW1uVGVtcGxhdGVPclJlbmRlcmVyKHQsZSxuKX1fc2V0SGVhZGVyVGVtcGxhdGVPclJlbmRlcmVyKHQsZSxuKXsodHx8ZSkmJm4mJnRoaXMuX19zZXRDb2x1bW5UZW1wbGF0ZU9yUmVuZGVyZXIodCxlLFtuXSl9X3NldEZvb3RlclRlbXBsYXRlT3JSZW5kZXJlcih0LGUsbil7KHR8fGUpJiZuJiYodGhpcy5fX3NldENvbHVtblRlbXBsYXRlT3JSZW5kZXJlcih0LGUsW25dKSx0aGlzLl9ncmlkLl9fdXBkYXRlSGVhZGVyRm9vdGVyUm93VmlzaWJpbGl0eShuLnBhcmVudEVsZW1lbnQpKX1fc2VsZWN0Rmlyc3RUZW1wbGF0ZSh0PSExLGU9ITEpe3JldHVybiB6aS5nZXRGbGF0dGVuZWROb2Rlcyh0aGlzKS5maWx0ZXIoKG49PiJ0ZW1wbGF0ZSI9PT1uLmxvY2FsTmFtZSYmbi5jbGFzc0xpc3QuY29udGFpbnMoImhlYWRlciIpPT09dCYmbi5jbGFzc0xpc3QuY29udGFpbnMoImZvb3RlciIpPT09ZSkpWzBdfV9maW5kVGVtcGxhdGUodCxlKXtjb25zdCBuPXRoaXMuX3NlbGVjdEZpcnN0VGVtcGxhdGUodCxlKTtyZXR1cm4gbiYmdGhpcy5kYXRhSG9zdCYmKG4uX3Jvb3REYXRhSG9zdD10aGlzLmRhdGFIb3N0Ll9yb290RGF0YUhvc3R8fHRoaXMuZGF0YUhvc3QpLG59X2ZsZXhHcm93Q2hhbmdlZCh0KXt0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQoImZsZXhHcm93IiksdGhpcy5fYWxsQ2VsbHMuZm9yRWFjaCgoZT0+ZS5zdHlsZS5mbGV4R3Jvdz10KSl9X29yZGVyQ2hhbmdlZCh0KXt0aGlzLl9hbGxDZWxscy5mb3JFYWNoKChlPT5lLnN0eWxlLm9yZGVyPXQpKX1fd2lkdGhDaGFuZ2VkKHQpe3RoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCgid2lkdGgiKSx0aGlzLl9hbGxDZWxscy5mb3JFYWNoKChlPT5lLnN0eWxlLndpZHRoPXQpKSx0aGlzLl9ncmlkJiZ0aGlzLl9ncmlkLl9fZm9yY2VSZWZsb3cmJnRoaXMuX2dyaWQuX19mb3JjZVJlZmxvdygpfV9mcm96ZW5DaGFuZ2VkKHQpe3RoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCgiZnJvemVuIix0KSx0aGlzLl9hbGxDZWxscy5mb3JFYWNoKChlPT50aGlzLl90b2dnbGVBdHRyaWJ1dGUoImZyb3plbiIsdCxlKSkpLHRoaXMuX2dyaWQmJnRoaXMuX2dyaWQuX2Zyb3plbkNlbGxzQ2hhbmdlZCYmdGhpcy5fZ3JpZC5fZnJvemVuQ2VsbHNDaGFuZ2VkKCl9X2xhc3RGcm96ZW5DaGFuZ2VkKHQpe3RoaXMuX2FsbENlbGxzLmZvckVhY2goKGU9PnRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibGFzdC1mcm96ZW4iLHQsZSkpKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQmJih0aGlzLnBhcmVudEVsZW1lbnQuX2xhc3RGcm96ZW49dCl9X3BhdGhPckhlYWRlckNoYW5nZWQodCxlLG4saSxyLG8sYSxzLGwpe2NvbnN0IGM9dm9pZCAwIT09ZTshYSYmIWwmJmMmJm4mJnRoaXMuX19zZXRUZXh0Q29udGVudChuLl9jb250ZW50LGUpLHQmJnIudmFsdWUmJihvfHxzfHx0aGlzLl9fc2V0Q29sdW1uVGVtcGxhdGVPclJlbmRlcmVyKHZvaWQgMCwoKGUsbix7aXRlbTppfSk9PnRoaXMuX19zZXRUZXh0Q29udGVudChlLHRoaXMuZ2V0KHQsaSkpKSxyLnZhbHVlKSxhfHxsfHxjfHwhbnx8bnVsbD09PWV8fHRoaXMuX19zZXRUZXh0Q29udGVudChuLl9jb250ZW50LHRoaXMuX2dlbmVyYXRlSGVhZGVyKHQpKSksbiYmdGhpcy5fZ3JpZC5fX3VwZGF0ZUhlYWRlckZvb3RlclJvd1Zpc2liaWxpdHkobi5wYXJlbnRFbGVtZW50KX1fX3NldFRleHRDb250ZW50KHQsZSl7dC50ZXh0Q29udGVudCE9PWUmJih0LnRleHRDb250ZW50PWUpfV9nZW5lcmF0ZUhlYWRlcih0KXtyZXR1cm4gdC5zdWJzdHIodC5sYXN0SW5kZXhPZigiLiIpKzEpLnJlcGxhY2UoLyhbQS1aXSkvZywiLSQxIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8tL2csIiAiKS5yZXBsYWNlKC9eLi8sKHQ9PnQudG9VcHBlckNhc2UoKSkpfV90b2dnbGVBdHRyaWJ1dGUodCxlLG4pe24uaGFzQXR0cmlidXRlKHQpPT09IWUmJihlP24uc2V0QXR0cmlidXRlKHQsIiIpOm4ucmVtb3ZlQXR0cmlidXRlKHQpKX1fcmVvcmRlclN0YXR1c0NoYW5nZWQodCl7dGhpcy5fYWxsQ2VsbHMuZm9yRWFjaCgoZT0+ZS5zZXRBdHRyaWJ1dGUoInJlb3JkZXItc3RhdHVzIix0KSkpfV9yZXNpemFibGVDaGFuZ2VkKHQsZSl7dm9pZCAwIT09dCYmdm9pZCAwIT09ZSYmZSYmW2VdLmNvbmNhdCh0aGlzLl9lbXB0eUNlbGxzKS5mb3JFYWNoKChlPT57aWYoZSl7Y29uc3Qgbj1lLnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0fj0icmVzaXplLWhhbmRsZSJdJyk7aWYobiYmZS5yZW1vdmVDaGlsZChuKSx0KXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Quc2V0QXR0cmlidXRlKCJwYXJ0IiwicmVzaXplLWhhbmRsZSIpLGUuYXBwZW5kQ2hpbGQodCl9fX0pKX1fdGV4dEFsaWduQ2hhbmdlZCh0KXtpZih2b2lkIDA9PT10KXJldHVybjtpZigtMT09PVsic3RhcnQiLCJlbmQiLCJjZW50ZXIiXS5pbmRleE9mKHQpKXJldHVybiB2b2lkIGNvbnNvbGUud2FybigndGV4dEFsaWduIGNhbiBvbmx5IGJlIHNldCBhcyAic3RhcnQiLCAiZW5kIiBvciAiY2VudGVyIicpO2xldCBlOyJsdHIiPT09Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9ncmlkKS5kaXJlY3Rpb24/InN0YXJ0Ij09PXQ/ZT0ibGVmdCI6ImVuZCI9PT10JiYoZT0icmlnaHQiKToic3RhcnQiPT09dD9lPSJyaWdodCI6ImVuZCI9PT10JiYoZT0ibGVmdCIpLHRoaXMuX2FsbENlbGxzLmZvckVhY2goKG49PntuLl9jb250ZW50LnN0eWxlLnRleHRBbGlnbj10LGdldENvbXB1dGVkU3R5bGUobi5fY29udGVudCkudGV4dEFsaWduIT09dCYmKG4uX2NvbnRlbnQuc3R5bGUudGV4dEFsaWduPWUpfSkpfV9oaWRkZW5DaGFuZ2VkKHQpe3RoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCgiaGlkZGVuIix0KSwhIXQhPSEhdGhpcy5fcHJldmlvdXNIaWRkZW4mJnRoaXMuX2dyaWQmJighMD09PXQmJnRoaXMuX2FsbENlbGxzLmZvckVhY2goKHQ9Pnt0Ll9jb250ZW50LnBhcmVudE5vZGUmJnQuX2NvbnRlbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0Ll9jb250ZW50KX0pKSx0aGlzLl9ncmlkLl9kZWJvdW5jZXJIaWRkZW5DaGFuZ2VkPVRuLmRlYm91bmNlKHRoaXMuX2dyaWQuX2RlYm91bmNlckhpZGRlbkNoYW5nZWQsX3QsKCgpPT57dGhpcy5fZ3JpZCYmdGhpcy5fZ3JpZC5fcmVuZGVyQ29sdW1uVHJlZSYmdGhpcy5fZ3JpZC5fcmVuZGVyQ29sdW1uVHJlZSh0aGlzLl9ncmlkLl9jb2x1bW5UcmVlKX0pKSx0aGlzLl9ncmlkLl91cGRhdGVMYXN0RnJvemVuJiZ0aGlzLl9ncmlkLl91cGRhdGVMYXN0RnJvemVuKCksdGhpcy5fZ3JpZC5ub3RpZnlSZXNpemUmJnRoaXMuX2dyaWQubm90aWZ5UmVzaXplKCksdGhpcy5fZ3JpZC5fcmVzZXRLZXlib2FyZE5hdmlnYXRpb24mJnRoaXMuX2dyaWQuX3Jlc2V0S2V5Ym9hcmROYXZpZ2F0aW9uKCkpLHRoaXMuX3ByZXZpb3VzSGlkZGVuPXR9fTtjbGFzcyBuS3QgZXh0ZW5kcyhlS3QodyR0KHllKSkpe3N0YXRpYyBnZXQgaXMoKXtyZXR1cm4idmFhZGluLWdyaWQtY29sdW1uIn1zdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57d2lkdGg6e3R5cGU6U3RyaW5nLHZhbHVlOiIxMDBweCJ9LGZsZXhHcm93Ont0eXBlOk51bWJlcix2YWx1ZToxfSxyZW5kZXJlcjpGdW5jdGlvbixwYXRoOnt0eXBlOlN0cmluZ30sYXV0b1dpZHRoOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9ib2R5VGVtcGxhdGU6e3R5cGU6T2JqZWN0fSxfY2VsbHM6QXJyYXl9fX1jdXN0b21FbGVtZW50cy5kZWZpbmUobkt0LmlzLG5LdCksCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovCiRYdCgidmFhZGluLWdyaWQiLEdYdGAKICAgIEBrZXlmcmFtZXMgdmFhZGluLWdyaWQtYXBwZWFyIHsKICAgICAgdG8gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgIH0KCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBhbmltYXRpb246IDFtcyB2YWFkaW4tZ3JpZC1hcHBlYXI7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgIGZsZXg6IDEgMSBhdXRvOwogICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgICNzY3JvbGxlciB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgIHdpZHRoOiBhdXRvOwogICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBsZWZ0OiAwOwogICAgfQoKICAgIDpob3N0KFtoZWlnaHQtYnktcm93c10pIHsKICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICBmbGV4LWdyb3c6IDA7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgIDpob3N0KFtoZWlnaHQtYnktcm93c10pICNzY3JvbGxlciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAjdGFibGUgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdXRsaW5lOiBub25lOwogICAgICAvKiBXb3JrYXJvdW5kIGZvciBhIERlc2t0b3AgU2FmYXJpIGJ1ZzogbmV3IHN0YWNraW5nIGNvbnRleHQgaGVyZSBwcmV2ZW50cyB0aGUgc2Nyb2xsYmFyIGZyb20gZ2V0dGluZyBoaWRkZW4gKi8KICAgICAgei1pbmRleDogMDsKICAgIH0KCiAgICAjaGVhZGVyLAogICAgI2Zvb3RlciB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7CiAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgIGxlZnQ6IDA7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgei1pbmRleDogMTsKICAgIH0KCiAgICAjaGVhZGVyIHsKICAgICAgdG9wOiAwOwogICAgfQoKICAgIHRoIHsKICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDsKICAgIH0KCiAgICAvKiBTYWZhcmkgZG9lc24ndCB3b3JrIHdpdGggImluaGVyaXQiICovCiAgICBbc2FmYXJpXSB0aCB7CiAgICAgIHRleHQtYWxpZ246IGluaXRpYWw7CiAgICB9CgogICAgI2Zvb3RlciB7CiAgICAgIGJvdHRvbTogMDsKICAgIH0KCiAgICAjaXRlbXMgewogICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5OwogICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbGVmdDogMDsKICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXSB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBtYXJnaW46IDA7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtsb2FkaW5nXSBbcGFydH49J2JvZHktY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpIHsKICAgICAgb3BhY2l0eTogMDsKICAgIH0KCiAgICAjaXRlbXMgW3BhcnR+PSdyb3cnXSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIH0KCiAgICAjaXRlbXMgW3BhcnR+PSdyb3cnXTplbXB0eSB7CiAgICAgIGhlaWdodDogMWVtOwogICAgfQoKICAgIFtwYXJ0fj0nY2VsbCddOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CgogICAgW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiAwOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgcGFkZGluZzogMDsKICAgIH0KCiAgICBbcGFydH49J2NlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB9CgogICAgW2hpZGRlbl0gewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgW2Zyb3plbl0gewogICAgICB6LWluZGV4OiAyOwogICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgfQoKICAgIFtuby1zY3JvbGxiYXJzXVtzYWZhcmldICN0YWJsZSwKICAgIFtuby1zY3JvbGxiYXJzXVtmaXJlZm94XSAjdGFibGUgewogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC8qIFJlb3JkZXJpbmcgc3R5bGVzICovCiAgICA6aG9zdChbcmVvcmRlcmluZ10pIFtwYXJ0fj0nY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpLAogICAgOmhvc3QoW3Jlb3JkZXJpbmddKSBbcGFydH49J3Jlc2l6ZS1oYW5kbGUnXSwKICAgICNzY3JvbGxlcltuby1jb250ZW50LXBvaW50ZXItZXZlbnRzXSBbcGFydH49J2NlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSB7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIFtwYXJ0fj0ncmVvcmRlci1naG9zdCddIHsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBvcGFjaXR5OiAwLjU7CgogICAgICAvKiBQcmV2ZW50IG92ZXJmbG93aW5nIHRoZSBncmlkIGluIEZpcmVmb3ggKi8KICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgfQoKICAgIDpob3N0KFtyZW9yZGVyaW5nXSkgewogICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgIH0KCiAgICAvKiBSZXNpemluZyBzdHlsZXMgKi8KICAgIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgei1pbmRleDogMTsKICAgIH0KCiAgICBbcGFydH49J3Jlc2l6ZS1oYW5kbGUnXTo6YmVmb3JlIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBjb250ZW50OiAnJzsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB3aWR0aDogMzVweDsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgfQoKICAgIFtsYXN0LWNvbHVtbl0gW3BhcnR+PSdyZXNpemUtaGFuZGxlJ106OmJlZm9yZSwKICAgIFtsYXN0LWZyb3plbl0gW3BhcnR+PSdyZXNpemUtaGFuZGxlJ106OmJlZm9yZSB7CiAgICAgIHdpZHRoOiAxOHB4OwogICAgICB0cmFuc2Zvcm06IG5vbmU7CiAgICAgIHJpZ2h0OiAwOwogICAgfQoKICAgICNzY3JvbGxlcltjb2x1bW4tcmVzaXppbmddIHsKICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgIH0KCiAgICAvKiBTaXplciBzdHlsZXMgKi8KICAgICNzaXplciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgfQoKICAgICNzaXplciBbcGFydH49J2RldGFpbHMtY2VsbCddIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgICNzaXplciBbcGFydH49J2NlbGwnXVtoaWRkZW5dIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgICNzaXplciBbcGFydH49J2NlbGwnXSB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBmbGV4LXNocmluazogMDsKICAgICAgbGluZS1oZWlnaHQ6IDA7CiAgICAgIGhlaWdodDogMCAhaW1wb3J0YW50OwogICAgICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIG1heC1oZWlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAjc2l6ZXIgW3BhcnR+PSdjZWxsJ106OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICctJzsKICAgIH0KCiAgICAjc2l6ZXIgW3BhcnR+PSdjZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCkgewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLyogUlRMIHNwZWNpZmljIHN0eWxlcyAqLwoKICAgIDpob3N0KFtkaXI9J3J0bCddKSAjaXRlbXMsCiAgICA6aG9zdChbZGlyPSdydGwnXSkgI2hlYWRlciwKICAgIDpob3N0KFtkaXI9J3J0bCddKSAjZm9vdGVyIHsKICAgICAgbGVmdDogYXV0bzsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW3BhcnR+PSdyZW9yZGVyLWdob3N0J10gewogICAgICBsZWZ0OiBhdXRvOwogICAgICByaWdodDogMDsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW3BhcnR+PSdyZXNpemUtaGFuZGxlJ10gewogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogYXV0bzsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW3BhcnR+PSdyZXNpemUtaGFuZGxlJ106OmJlZm9yZSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpOwogICAgfQoKICAgIDpob3N0KFtkaXI9J3J0bCddKSBbbGFzdC1jb2x1bW5dIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddOjpiZWZvcmUsCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW2xhc3QtZnJvemVuXSBbcGFydH49J3Jlc2l6ZS1oYW5kbGUnXTo6YmVmb3JlIHsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IGF1dG87CiAgICB9CiAgYCx7bW9kdWxlSWQ6InZhYWRpbi1ncmlkLXN0eWxlcyJ9KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgaUt0PSgoKT0+e3RyeXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIlRvdWNoRXZlbnQiKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KSgpO2NsYXNzIHJLdCBleHRlbmRzKEUkdChjJHQoRCR0KFIkdChCJHQoTiR0KGokdChHJHQoVyR0KFUkdChRJHQoUCR0KEYkdCh0S3QoTyR0KEgkdChKJHQocSR0KEwkdCkpKSkpKSkpKSkpKSkpKSkpKSl7c3RhdGljIGdldCB0ZW1wbGF0ZSgpe3JldHVybiBfZWAKICAgICAgPGRpdgogICAgICAgIGlkPSJzY3JvbGxlciIKICAgICAgICBzYWZhcmkkPSJbW19zYWZhcmldXSIKICAgICAgICBpb3MkPSJbW19pb3NdXSIKICAgICAgICBsb2FkaW5nJD0iW1tsb2FkaW5nXV0iCiAgICAgICAgY29sdW1uLXJlb3JkZXJpbmctYWxsb3dlZCQ9IltbY29sdW1uUmVvcmRlcmluZ0FsbG93ZWRdXSIKICAgICAgPgogICAgICAgIDx0YWJsZSBpZD0idGFibGUiIHJvbGU9ImdyaWQiIGFyaWEtbXVsdGlzZWxlY3RhYmxlPSJ0cnVlIiB0YWJpbmRleD0iMCI+CiAgICAgICAgICA8Y2FwdGlvbiBpZD0ic2l6ZXIiIHBhcnQ9InJvdyI+PC9jYXB0aW9uPgogICAgICAgICAgPHRoZWFkIGlkPSJoZWFkZXIiIHJvbGU9InJvd2dyb3VwIj48L3RoZWFkPgogICAgICAgICAgPHRib2R5IGlkPSJpdGVtcyIgcm9sZT0icm93Z3JvdXAiPjwvdGJvZHk+CiAgICAgICAgICA8dGZvb3QgaWQ9ImZvb3RlciIgcm9sZT0icm93Z3JvdXAiPjwvdGZvb3Q+CiAgICAgICAgPC90YWJsZT4KCiAgICAgICAgPGRpdiBwYXJ0PSJyZW9yZGVyLWdob3N0Ij48L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGlkPSJmb2N1c2V4aXQiIHRhYmluZGV4PSIwIj48L2Rpdj4KICAgIGB9c3RhdGljIGdldCBpcygpe3JldHVybiJ2YWFkaW4tZ3JpZCJ9c3RhdGljIGdldCB2ZXJzaW9uKCl7cmV0dXJuIjIwLjAuMiJ9c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9jb2x1bW5UcmVlQ2hhbmdlZChfY29sdW1uVHJlZSwgX2NvbHVtblRyZWUuKikiXX1zdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57X3NhZmFyaTp7dHlwZTpCb29sZWFuLHZhbHVlOi9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCl9LF9pb3M6e3R5cGU6Qm9vbGVhbix2YWx1ZTovaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXdpbmRvdy5NU1N0cmVhbXx8Ik1hY0ludGVsIj09PW5hdmlnYXRvci5wbGF0Zm9ybSYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjF9LF9maXJlZm94Ont0eXBlOkJvb2xlYW4sdmFsdWU6bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImZpcmVmb3giKT4tMX0sX2FuZHJvaWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTovYW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCl9LF90b3VjaERldmljZTp7dHlwZTpCb29sZWFuLHZhbHVlOmlLdH0saGVpZ2h0QnlSb3dzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVmbGVjdFRvQXR0cmlidXRlOiEwLG9ic2VydmVyOiJfaGVpZ2h0QnlSb3dzQ2hhbmdlZCJ9LF9yZWNhbGN1bGF0ZUNvbHVtbldpZHRoT25jZUxvYWRpbmdGaW5pc2hlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiEwfX19Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uZW5kIix0aGlzLl9vbkFuaW1hdGlvbkVuZCl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVjYWxjdWxhdGVDb2x1bW5XaWR0aHMoKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4pe3N1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbiksImRpciI9PT10JiYodGhpcy5fX2lzUlRMPSJydGwiPT09bix0aGlzLl91cGRhdGVTY3JvbGxlck1lYXN1cmVtZW50cygpKX1fX2hhc1Jvd3NXaXRoQ2xpZW50SGVpZ2h0KCl7cmV0dXJuISFBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKCh0PT50LmNsaWVudEhlaWdodCkpLmxlbmd0aH1fX2l0ZW1zUmVjZWl2ZWQoKXt0aGlzLl9yZWNhbGN1bGF0ZUNvbHVtbldpZHRoT25jZUxvYWRpbmdGaW5pc2hlZCYmIXRoaXMuX2NhY2hlLmlzTG9hZGluZygpJiZ0aGlzLl9faGFzUm93c1dpdGhDbGllbnRIZWlnaHQoKSYmKHRoaXMuX3JlY2FsY3VsYXRlQ29sdW1uV2lkdGhPbmNlTG9hZGluZ0ZpbmlzaGVkPSExLHRoaXMucmVjYWxjdWxhdGVDb2x1bW5XaWR0aHMoKSl9X3JlY2FsY3VsYXRlQ29sdW1uV2lkdGhzKHQpe3QuZm9yRWFjaCgodD0+e3Qud2lkdGg9ImF1dG8iLHQuX29yaWdGbGV4R3Jvdz10LmZsZXhHcm93LHQuZmxleEdyb3c9MH0pKSx0LmZvckVhY2goKHQ9Pnt0Ll9jdXJyZW50V2lkdGg9MCx0Ll9hbGxDZWxscy5mb3JFYWNoKChlPT57dC5fY3VycmVudFdpZHRoPU1hdGgubWF4KHQuX2N1cnJlbnRXaWR0aCxlLm9mZnNldFdpZHRoKzEpfSkpfSkpLHQuZm9yRWFjaCgodD0+e3Qud2lkdGg9YCR7dC5fY3VycmVudFdpZHRofXB4YCx0LmZsZXhHcm93PXQuX29yaWdGbGV4R3Jvdyx0Ll9jdXJyZW50V2lkdGg9dm9pZCAwLHQuX29yaWdGbGV4R3Jvdz12b2lkIDB9KSl9cmVjYWxjdWxhdGVDb2x1bW5XaWR0aHMoKXtpZih0aGlzLl9jb2x1bW5UcmVlKWlmKHRoaXMuX2NhY2hlLmlzTG9hZGluZygpKXRoaXMuX3JlY2FsY3VsYXRlQ29sdW1uV2lkdGhPbmNlTG9hZGluZ0ZpbmlzaGVkPSEwO2Vsc2V7Y29uc3QgdD10aGlzLl9nZXRDb2x1bW5zKCkuZmlsdGVyKCh0PT4hdC5oaWRkZW4mJnQuYXV0b1dpZHRoKSk7dGhpcy5fcmVjYWxjdWxhdGVDb2x1bW5XaWR0aHModCl9fV9jcmVhdGVTY3JvbGxlclJvd3ModCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPHQ7bisrKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7dC5zZXRBdHRyaWJ1dGUoInBhcnQiLCJyb3ciKSx0LnNldEF0dHJpYnV0ZSgicm9sZSIsInJvdyIpLHRoaXMuX2NvbHVtblRyZWUmJnRoaXMuX3VwZGF0ZVJvdyh0LHRoaXMuX2NvbHVtblRyZWVbdGhpcy5fY29sdW1uVHJlZS5sZW5ndGgtMV0sImJvZHkiLCExLCEwKSxlLnB1c2godCl9cmV0dXJuIHRoaXMuX2NvbHVtblRyZWUmJnRoaXMuX2NvbHVtblRyZWVbdGhpcy5fY29sdW1uVHJlZS5sZW5ndGgtMV0uZm9yRWFjaCgodD0+dC5pc0Nvbm5lY3RlZCYmdC5ub3RpZnlQYXRoJiZ0Lm5vdGlmeVBhdGgoIl9jZWxscy4qIix0Ll9jZWxscykpKSwoZnVuY3Rpb24gbih0LGUsaSl7RWl8fEFpKCksVGkucHVzaChbdCxlLGldKX0pKHRoaXMsKCgpPT57dGhpcy5fdXBkYXRlRmlyc3RBbmRMYXN0Q29sdW1uKCksdGhpcy5fcmVzZXRLZXlib2FyZE5hdmlnYXRpb24oKX0pKSxlfV9nZXRSb3dUYXJnZXQoKXtyZXR1cm4gdGhpcy4kLml0ZW1zfV9jcmVhdGVDZWxsKHQpe2NvbnN0IGU9InZhYWRpbi1ncmlkLWNlbGwtY29udGVudC0iKyh0aGlzLl9jb250ZW50SW5kZXg9dGhpcy5fY29udGVudEluZGV4KzF8fDApLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmFhZGluLWdyaWQtY2VsbC1jb250ZW50Iik7bi5zZXRBdHRyaWJ1dGUoInNsb3QiLGUpO2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KTtpLmlkPWUucmVwbGFjZSgiLWNvbnRlbnQtIiwiLSIpLGkuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksaS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJ0ZCI9PT10PyJncmlkY2VsbCI6ImNvbHVtbmhlYWRlciIpO2NvbnN0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpO3JldHVybiByLnNldEF0dHJpYnV0ZSgibmFtZSIsZSksaS5hcHBlbmRDaGlsZChyKSxpLl9jb250ZW50PW4sbi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCgoKT0+e2lmKHdpbmRvdy5jaHJvbWUpe2NvbnN0IHQ9KCk9PntuLmNvbnRhaW5zKHRoaXMuZ2V0Um9vdE5vZGUoKS5hY3RpdmVFbGVtZW50KXx8aS5mb2N1cygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHQsITApfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0LCEwKX1lbHNlIHNldFRpbWVvdXQoKCgpPT57bi5jb250YWlucyh0aGlzLmdldFJvb3ROb2RlKCkuYWN0aXZlRWxlbWVudCl8fGkuZm9jdXMoKX0pKX0pKSxpfV91cGRhdGVSb3codCxlLG4saSxyKXtuPW58fCJib2R5Ijtjb25zdCBvPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtBcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2goKHQ9PnQuX3ZhY2FudD0hMCkpLHQuaW5uZXJIVE1MPSIiLCJzaXplciIhPT10LmlkJiYodC5oaWRkZW49ITApLGUuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKS5mb3JFYWNoKCgoZSxhLHMpPT57bGV0IGw7aWYoImJvZHkiPT09bil7aWYoZS5fY2VsbHM9ZS5fY2VsbHN8fFtdLGw9ZS5fY2VsbHMuZmlsdGVyKCh0PT50Ll92YWNhbnQpKVswXSxsfHwobD10aGlzLl9jcmVhdGVDZWxsKCJ0ZCIpLGUuX2NlbGxzLnB1c2gobCkpLGwuc2V0QXR0cmlidXRlKCJwYXJ0IiwiY2VsbCBib2R5LWNlbGwiKSx0LmFwcGVuZENoaWxkKGwpLGE9PT1zLmxlbmd0aC0xJiYodGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlfHx0aGlzLnJvd0RldGFpbHNSZW5kZXJlcikpe3RoaXMuX2RldGFpbHNDZWxscz10aGlzLl9kZXRhaWxzQ2VsbHN8fFtdO2NvbnN0IGU9dGhpcy5fZGV0YWlsc0NlbGxzLmZpbHRlcigodD0+dC5fdmFjYW50KSlbMF18fHRoaXMuX2NyZWF0ZUNlbGwoInRkIik7LTE9PT10aGlzLl9kZXRhaWxzQ2VsbHMuaW5kZXhPZihlKSYmdGhpcy5fZGV0YWlsc0NlbGxzLnB1c2goZSksZS5fY29udGVudC5wYXJlbnRFbGVtZW50fHxvLmFwcGVuZENoaWxkKGUuX2NvbnRlbnQpLHRoaXMuX2NvbmZpZ3VyZURldGFpbHNDZWxsKGUpLHQuYXBwZW5kQ2hpbGQoZSksdGhpcy5fYTExeVNldFJvd0RldGFpbHNDZWxsKHQsZSksZS5fdmFjYW50PSExfWUubm90aWZ5UGF0aCYmIXImJmUubm90aWZ5UGF0aCgiX2NlbGxzLioiLGUuX2NlbGxzKX1lbHNle2NvbnN0IHI9ImhlYWRlciI9PT1uPyJ0aCI6InRkIjtpfHwidmFhZGluLWdyaWQtY29sdW1uLWdyb3VwIj09PWUubG9jYWxOYW1lPyhsPWVbYF8ke259Q2VsbGBdfHx0aGlzLl9jcmVhdGVDZWxsKHIpLGwuX2NvbHVtbj1lLHQuYXBwZW5kQ2hpbGQobCksZVtgXyR7bn1DZWxsYF09bCk6KGUuX2VtcHR5Q2VsbHM9ZS5fZW1wdHlDZWxsc3x8W10sbD1lLl9lbXB0eUNlbGxzLmZpbHRlcigodD0+dC5fdmFjYW50KSlbMF18fHRoaXMuX2NyZWF0ZUNlbGwociksbC5fY29sdW1uPWUsdC5hcHBlbmRDaGlsZChsKSwtMT09PWUuX2VtcHR5Q2VsbHMuaW5kZXhPZihsKSYmZS5fZW1wdHlDZWxscy5wdXNoKGwpKSxsLnNldEF0dHJpYnV0ZSgicGFydCIsYGNlbGwgJHtufS1jZWxsYCksdGhpcy5fX3VwZGF0ZUhlYWRlckZvb3RlclJvd1Zpc2liaWxpdHkodCl9bC5fY29udGVudC5wYXJlbnRFbGVtZW50fHxvLmFwcGVuZENoaWxkKGwuX2NvbnRlbnQpLGwuX3ZhY2FudD0hMSxsLl9jb2x1bW49ZX0pKSx0aGlzLmFwcGVuZENoaWxkKG8pLHRoaXMuX2Zyb3plbkNlbGxzQ2hhbmdlZCgpLHRoaXMuX3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbkZvclJvdyh0KX1fX3VwZGF0ZUhlYWRlckZvb3RlclJvd1Zpc2liaWxpdHkodCl7aWYoIXQpcmV0dXJuO2NvbnN0IGU9QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5maWx0ZXIoKGU9Pntjb25zdCBuPWUuX2NvbHVtbjtpZihuLl9lbXB0eUNlbGxzJiZuLl9lbXB0eUNlbGxzLmluZGV4T2YoZSk+LTEpcmV0dXJuITE7aWYodC5wYXJlbnRFbGVtZW50PT09dGhpcy4kLmhlYWRlcil7aWYobi5oZWFkZXJSZW5kZXJlcnx8bi5faGVhZGVyVGVtcGxhdGUpcmV0dXJuITA7aWYobnVsbD09PW4uaGVhZGVyKXJldHVybiExO2lmKG4ucGF0aHx8dm9pZCAwIT09bi5oZWFkZXIpcmV0dXJuITB9ZWxzZSBpZihuLmZvb3RlclJlbmRlcmVyfHxuLl9mb290ZXJUZW1wbGF0ZSlyZXR1cm4hMH0pKTt0LmhpZGRlbiE9PSFlLmxlbmd0aCYmKHQuaGlkZGVuPSFlLmxlbmd0aCx0aGlzLm5vdGlmeVJlc2l6ZSgpKX1fdXBkYXRlU2Nyb2xsZXJJdGVtKHQsZSl7dGhpcy5fcHJldmVudFNjcm9sbGVyUm90YXRpbmdDZWxsRm9jdXModCxlKSx0aGlzLl9jb2x1bW5UcmVlJiYodGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJmaXJzdCIsMD09PWUsdCksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJvZGQiLGUlMix0KSx0aGlzLl9hMTF5VXBkYXRlUm93Um93aW5kZXgodCxlKSx0aGlzLl9nZXRJdGVtKGUsdCkpfV9jb2x1bW5UcmVlQ2hhbmdlZCh0KXt0aGlzLl9yZW5kZXJDb2x1bW5UcmVlKHQpLHRoaXMucmVjYWxjdWxhdGVDb2x1bW5XaWR0aHMoKX1fcmVuZGVyQ29sdW1uVHJlZSh0KXtmb3IoQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZvckVhY2goKGU9PnRoaXMuX3VwZGF0ZVJvdyhlLHRbdC5sZW5ndGgtMV0sbnVsbCwhMSwhMCkpKTt0aGlzLiQuaGVhZGVyLmNoaWxkcmVuLmxlbmd0aDx0Lmxlbmd0aDspe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTt0LnNldEF0dHJpYnV0ZSgicGFydCIsInJvdyIpLHQuc2V0QXR0cmlidXRlKCJyb2xlIiwicm93IiksdGhpcy4kLmhlYWRlci5hcHBlbmRDaGlsZCh0KTtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7ZS5zZXRBdHRyaWJ1dGUoInBhcnQiLCJyb3ciKSxlLnNldEF0dHJpYnV0ZSgicm9sZSIsInJvdyIpLHRoaXMuJC5mb290ZXIuYXBwZW5kQ2hpbGQoZSl9Zm9yKDt0aGlzLiQuaGVhZGVyLmNoaWxkcmVuLmxlbmd0aD50Lmxlbmd0aDspdGhpcy4kLmhlYWRlci5yZW1vdmVDaGlsZCh0aGlzLiQuaGVhZGVyLmZpcnN0RWxlbWVudENoaWxkKSx0aGlzLiQuZm9vdGVyLnJlbW92ZUNoaWxkKHRoaXMuJC5mb290ZXIuZmlyc3RFbGVtZW50Q2hpbGQpO0FycmF5LmZyb20odGhpcy4kLmhlYWRlci5jaGlsZHJlbikuZm9yRWFjaCgoKGUsbik9PnRoaXMuX3VwZGF0ZVJvdyhlLHRbbl0sImhlYWRlciIsbj09PXQubGVuZ3RoLTEpKSksQXJyYXkuZnJvbSh0aGlzLiQuZm9vdGVyLmNoaWxkcmVuKS5mb3JFYWNoKCgoZSxuKT0+dGhpcy5fdXBkYXRlUm93KGUsdFt0Lmxlbmd0aC0xLW5dLCJmb290ZXIiLDA9PT1uKSkpLHRoaXMuX3VwZGF0ZVJvdyh0aGlzLiQuc2l6ZXIsdFt0Lmxlbmd0aC0xXSksdGhpcy5fcmVzaXplSGFuZGxlcigpLHRoaXMuX2Zyb3plbkNlbGxzQ2hhbmdlZCgpLHRoaXMuX3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbigpLHRoaXMuX3Jlc2V0S2V5Ym9hcmROYXZpZ2F0aW9uKCksdGhpcy5fYTExeVVwZGF0ZUhlYWRlclJvd3MoKSx0aGlzLl9hMTF5VXBkYXRlRm9vdGVyUm93cygpLHRoaXMuX191cGRhdGVGb290ZXJQb3NpdGlvbmluZygpfV9fdXBkYXRlRm9vdGVyUG9zaXRpb25pbmcoKXt0aGlzLl9maXJlZm94JiYodGhpcy4kLml0ZW1zLnN0eWxlLnBhZGRpbmdCb3R0b209MCx0aGlzLmhlaWdodEJ5Um93c3x8KHRoaXMuJC5pdGVtcy5zdHlsZS5wYWRkaW5nQm90dG9tPWAke3RoaXMuJC5mb290ZXIub2Zmc2V0SGVpZ2h0fXB4YCkpLHRoaXMuX2lvcyYmIXdpbmRvdy5DU1Muc3VwcG9ydHMoInBvc2l0aW9uIiwic3RpY2t5IikmJih0aGlzLiQudGFibGUuc3R5bGUuaGVpZ2h0PSIiLHRoaXMuJC50YWJsZS5zdHlsZS5taW5IZWlnaHQ9IjEwMCUiLHRoaXMuJC50YWJsZS5zdHlsZS5tYXhIZWlnaHQ9IjEwMCUiLHNldFRpbWVvdXQoKCgpPT50aGlzLiQudGFibGUuc3R5bGUuaGVpZ2h0PWAke3RoaXMuJC5zY3JvbGxlci5vZmZzZXRIZWlnaHR9cHhgKSkpfV91cGRhdGVJdGVtKHQsZSl7dC5faXRlbT1lO2NvbnN0IG49dGhpcy5fX2dldFJvd01vZGVsKHQpO3RoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgic2VsZWN0ZWQiLG4uc2VsZWN0ZWQsdCksdGhpcy5fYTExeVVwZGF0ZVJvd1NlbGVjdGVkKHQsbi5zZWxlY3RlZCksdGhpcy5fYTExeVVwZGF0ZVJvd0xldmVsKHQsbi5sZXZlbCksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJleHBhbmRlZCIsbi5leHBhbmRlZCx0KSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImRldGFpbHMtb3BlbmVkIix0aGlzLl9pc0RldGFpbHNPcGVuZWQoZSksdCksKHRoaXMuX3Jvd0RldGFpbHNUZW1wbGF0ZXx8dGhpcy5yb3dEZXRhaWxzUmVuZGVyZXIpJiZ0aGlzLl90b2dnbGVEZXRhaWxzQ2VsbCh0LGUpLHRoaXMuX2dlbmVyYXRlQ2VsbENsYXNzTmFtZXModCxuKSx0aGlzLl9maWx0ZXJEcmFnQW5kRHJvcCh0LG4pLEFycmF5LmZyb20odC5jaGlsZHJlbikuZm9yRWFjaCgodD0+e2lmKHQuX3JlbmRlcmVyKXtjb25zdCBlPXQuX2NvbHVtbnx8dGhpczt0Ll9yZW5kZXJlci5jYWxsKGUsdC5fY29udGVudCxlLG4pfWVsc2UgdC5faW5zdGFuY2UmJih0Ll9pbnN0YW5jZS5fX2RldGFpbHNPcGVuZWRfXz1uLmRldGFpbHNPcGVuZWQsdC5faW5zdGFuY2UuX19zZWxlY3RlZF9fPW4uc2VsZWN0ZWQsdC5faW5zdGFuY2UuX19sZXZlbF9fPW4ubGV2ZWwsdC5faW5zdGFuY2UuX19leHBhbmRlZF9fPW4uZXhwYW5kZWQsdC5faW5zdGFuY2Uuc2V0UHJvcGVydGllcyhuKSl9KSksdGhpcy5fZGVib3VuY2VyVXBkYXRlSGVpZ2h0cz1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJVcGRhdGVIZWlnaHRzLGd0LmFmdGVyKDEpLCgoKT0+e3RoaXMuX3VwZGF0ZU1ldHJpY3MoKSx0aGlzLl9wb3NpdGlvbkl0ZW1zKCksdGhpcy5fdXBkYXRlU2Nyb2xsZXJTaXplKCl9KSl9X3Jlc2l6ZUhhbmRsZXIoKXt0aGlzLl91cGRhdGVEZXRhaWxzQ2VsbEhlaWdodHMoKSx0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSShzdXBlci5fcmVzaXplSGFuZGxlciwhMCksdGhpcy5fdXBkYXRlU2Nyb2xsZXJNZWFzdXJlbWVudHMoKSx0aGlzLl9fdXBkYXRlRm9vdGVyUG9zaXRpb25pbmcoKX1fb25BbmltYXRpb25FbmQodCl7MD09PXQuYW5pbWF0aW9uTmFtZS5pbmRleE9mKCJ2YWFkaW4tZ3JpZC1hcHBlYXIiKSYmKHRoaXMuX3JlbmRlcigpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5ub3RpZnlSZXNpemUoKSx0aGlzLl9faXRlbXNSZWNlaXZlZCgpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLl9fc2Nyb2xsVG9QZW5kaW5nSW5kZXgoKSx0aGlzLiQudGFibGUuc3R5bGUud2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc9InRvdWNoIn0pKSl9X3RvZ2dsZUF0dHJpYnV0ZSh0LGUsbil7bi5oYXNBdHRyaWJ1dGUodCk9PT0hZSYmKGU/bi5zZXRBdHRyaWJ1dGUodCwiIik6bi5yZW1vdmVBdHRyaWJ1dGUodCkpfV9fZ2V0Um93TW9kZWwodCl7cmV0dXJue2luZGV4OnQuaW5kZXgsaXRlbTp0Ll9pdGVtLGxldmVsOnRoaXMuX2dldEluZGV4TGV2ZWwodC5pbmRleCksZXhwYW5kZWQ6dGhpcy5faXNFeHBhbmRlZCh0Ll9pdGVtKSxzZWxlY3RlZDp0aGlzLl9pc1NlbGVjdGVkKHQuX2l0ZW0pLGRldGFpbHNPcGVuZWQ6ISghdGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlJiYhdGhpcy5yb3dEZXRhaWxzUmVuZGVyZXIpJiZ0aGlzLl9pc0RldGFpbHNPcGVuZWQodC5faXRlbSl9fXJlbmRlcigpe3RoaXMuX2NvbHVtblRyZWUmJih0aGlzLl9jb2x1bW5UcmVlLmZvckVhY2goKHQ9Pnt0LmZvckVhY2goKHQ9PnQuX3JlbmRlckhlYWRlckFuZEZvb3RlcigpKSl9KSksdGhpcy5fdXBkYXRlKCkpfW5vdGlmeVJlc2l6ZSgpe3N1cGVyLm5vdGlmeVJlc2l6ZSgpfV9oZWlnaHRCeVJvd3NDaGFuZ2VkKHQsZSl7KHR8fGUpJiZ0aGlzLm5vdGlmeVJlc2l6ZSgpfV9fZm9yY2VSZWZsb3coKXt0aGlzLl9kZWJvdW5jZXJGb3JjZVJlZmxvdz1Ubi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJGb3JjZVJlZmxvdyxfdCwoKCk9Pnt0aGlzLiQuc2Nyb2xsZXIuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsc2V0VGltZW91dCgoKCk9PnRoaXMuJC5zY3JvbGxlci5zdHlsZS5vdmVyZmxvdz0iIikpfSkpfX1jdXN0b21FbGVtZW50cy5kZWZpbmUockt0LmlzLHJLdCk7bGV0IG9LdD1jbGFzcyBleHRlbmRzIHlle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9ydW49IiJ9X2NzdlVybCh0LGUsbil7cmV0dXJuIGU/aU8obih0LGUpLHtmb3JtYXQ6ImNzdiJ9KToiIn1fanNvblVybCh0LGUsbil7cmV0dXJuIGU/bih0LGUpOiIifV9jc3ZOYW1lKHQsZSl7cmV0dXJuIGU/YHJ1bi0ke2V9LXRhZy0ke3R9LmNzdmA6IiJ9X2pzb25OYW1lKHQsZSl7cmV0dXJuIGU/YHJ1bi0ke2V9LXRhZy0ke3R9Lmpzb25gOiIifX07b0t0LnRlbXBsYXRlPV9lYAogICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgbm8tbGFiZWwtZmxvYXQ9InRydWUiCiAgICAgIGxhYmVsPSJydW4gdG8gZG93bmxvYWQiCiAgICAgIHNlbGVjdGVkLWl0ZW0tbGFiZWw9Int7X3J1bn19IgogICAgPgogICAgICA8cGFwZXItbGlzdGJveCBzbG90PSJkcm9wZG93bi1jb250ZW50Ij4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW3J1bnNdXSI+CiAgICAgICAgICA8cGFwZXItaXRlbSBuby1sYWJlbC1mbG9hdD0idHJ1ZSI+W1tpdGVtXV08L3BhcGVyLWl0ZW0+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9wYXBlci1saXN0Ym94PgogICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19ydW5dXSI+CiAgICAgIDxhIGRvd25sb2FkPSJbW19jc3ZOYW1lKHRhZywgX3J1bildXSIgaHJlZj0iW1tfY3N2VXJsKHRhZywgX3J1biwgdXJsRm4pXV0iCiAgICAgICAgPkNTVjwvYQogICAgICA+PCEtLQogICAgICAtLT48YQogICAgICAgIGRvd25sb2FkPSJbW19qc29uTmFtZSh0YWcsIF9ydW4pXV0iCiAgICAgICAgaHJlZj0iW1tfanNvblVybCh0YWcsIF9ydW4sIHVybEZuKV1dIgogICAgICAgID5KU09OPC9hCiAgICAgID4KICAgIDwvdGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICB9CiAgICAgIHBhcGVyLWRyb3Bkb3duLW1lbnUgewogICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgfQogICAgICBhIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbWFyZ2luOiAwIDAuMmVtOwogICAgICB9CiAgICAgIHBhcGVyLWlucHV0IHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxvS3QucHJvdG90eXBlLCJfcnVuIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxvS3QucHJvdG90eXBlLCJydW5zIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLG9LdC5wcm90b3R5cGUsInRhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxvS3QucHJvdG90eXBlLCJ1cmxGbiIsdm9pZCAwKSxvS3Q9dChbaSgidGYtZG93bmxvYWRlciIpXSxvS3QpLG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7bGV0IGFLdD1jbGFzcyBleHRlbmRzIHlle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvbG9yU2NhbGU9bnVsbCx0aGlzLl9sb2FkRGF0YUNhbGxiYWNrPSh0LGUsbik9PntpZihudWxsPT1uKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBsb2FkIGRhdGEgZm9yOiIsZSk7Y29uc3QgaT1uLm1hcCgodD0+KHt3YWxsX3RpbWU6bmV3IERhdGUoMWUzKnRbMF0pLHN0ZXA6dFsxXSxzY2FsYXI6dFsyXX0pKSkscj10aGlzLl9nZXRTZXJpZXNOYW1lRnJvbURhdHVtKGUpO3Quc2V0U2VyaWVzTWV0YWRhdGEocixlKSx0LnNldFNlcmllc0RhdGEocixpKX0sdGhpcy5nZXREYXRhTG9hZFVybD0oe3RhZzp0LHJ1bjplfSk9Pl9yKCkucGx1Z2luUm91dGUoInNjYWxhcnMiLCIvc2NhbGFycyIsbmV3IFVSTFNlYXJjaFBhcmFtcyh7dGFnOnQscnVuOmV9KSksdGhpcy5fZG93bmxvYWRVcmxGbj0odCxlKT0+dGhpcy5nZXREYXRhTG9hZFVybCh7dGFnOnQscnVuOmV9KSx0aGlzLnJlcXVlc3REYXRhPSh0LGUsbik9PnRoaXMuaW5Db2xhYj90aGlzLl9yZXF1ZXN0RGF0YUdldCh0LGUsbik6dGhpcy5fcmVxdWVzdERhdGFQb3N0KHQsZSxuKSx0aGlzLl9yZXF1ZXN0RGF0YUdldD0odCxlLG4pPT57Y29uc3QgaT1fcigpLnBsdWdpblJvdXRlKCJzY2FsYXJzIiwiL3NjYWxhcnMiKTtQcm9taXNlLmFsbCh0Lm1hcCgodD0+e2NvbnN0IG49aU8oaSx7dGFnOnQudGFnLHJ1bjp0LnJ1bn0pO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QobikudGhlbigobj0+e2Uoe2l0ZW06dCxkYXRhOm59KX0pKX0pKSkuZmluYWxseSgoKCk9PntuKCl9KSl9LHRoaXMuX3JlcXVlc3REYXRhUG9zdD0odCxlLG4pPT57dmFyIGk7Y29uc3Qgcj1fcigpLnBsdWdpblJvdXRlKCJzY2FsYXJzIiwiL3NjYWxhcnNfbXVsdGlydW4iKSxvPW5ldyBNYXA7Zm9yKGNvbnN0e3RhZzplLHJ1bjpufW9mIHQpe2xldCB0PW8uZ2V0KGUpO251bGw9PXQmJm8uc2V0KGUsdD1bXSksdC5wdXNoKG4pfWNvbnN0IGE9bnVsbCE9PShpPXRoaXMuYmF0Y2hTaXplKSYmdm9pZCAwIT09aT9pOjY0LHM9W107Zm9yKGNvbnN0W3QsZV1vZiBvKWZvcihsZXQgbj0wO248ZS5sZW5ndGg7bis9YSlzLnB1c2goe3RhZzp0LHJ1bnM6ZS5zbGljZShuLG4rYSl9KTtQcm9taXNlLmFsbChzLm1hcCgoKHt0YWc6dCxydW5zOm59KT0+dGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHIse3RhZzp0LHJ1bnM6bn0pLnRoZW4oKGk9Pntmb3IoY29uc3QgciBvZiBuKXtjb25zdCBuPXt0YWc6dCxydW46cn07T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGkscik/ZSh7aXRlbTpuLGRhdGE6aVtyXX0pOmUoe2l0ZW06bixkYXRhOm51bGx9KX19KSkpKSkuZmluYWxseSgoKCk9PntuKCl9KSl9LHRoaXMuX2dldERhdGFMb2FkTmFtZT10PT50aGlzLl9nZXRTZXJpZXNOYW1lRnJvbURhdHVtKHQpLHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX3Rvb2x0aXBDb2x1bW5zPSgoKT0+e2NvbnN0IHQ9cEN0LnNsaWNlKCksZT10LmZpbmRJbmRleCgodD0+Ik5hbWUiPT10LnRpdGxlKSk7cmV0dXJuIHQuc3BsaWNlKGUsMSx7dGl0bGU6Ik5hbWUiLGV2YWx1YXRlOnQ9Pntjb25zdCBlPXQuZGF0YXNldC5tZXRhZGF0YSgpLm1ldGE7cmV0dXJuIHRoaXMuX2dldFNlcmllc0Rpc3BsYXlOYW1lRnJvbURhdHVtKGUpfX0pLHR9KSgpfV9nZXRDaGFydERhdGFMb2FkZXIoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoInRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIiKX1yZWxvYWQoKXt0aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKS5yZWxvYWQoKX1yZWRyYXcoKXt0aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKS5yZWRyYXcoKX1fdG9nZ2xlRXhwYW5kZWQodCl7dGhpcy5zZXQoIl9leHBhbmRlZCIsIXRoaXMuX2V4cGFuZGVkKSx0aGlzLnJlZHJhdygpfV90b2dnbGVMb2dTY2FsZSgpe3RoaXMuc2V0KCJfbG9nU2NhbGVBY3RpdmUiLCF0aGlzLl9sb2dTY2FsZUFjdGl2ZSl9X3Jlc2V0RG9tYWluKCl7Y29uc3QgdD10aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKTt0JiZ0LnJlc2V0RG9tYWluKCl9X3VwZGF0ZURvd25sb2FkTGluaygpe2NvbnN0IHQ9dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCkuZXhwb3J0QXNTdmdTdHJpbmcoKTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiI3N2Z0xpbmsiKS5ocmVmPWBkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCR7YnRvYSh0KX1gfV9ydW5zRnJvbURhdGEodCl7cmV0dXJuIHQubWFwKCh0PT50LnJ1bikpfV9nZXREYXRhU2VyaWVzKCl7cmV0dXJuIHRoaXMuZGF0YVRvTG9hZC5tYXAoKHQ9PnRoaXMuX2dldFNlcmllc05hbWVGcm9tRGF0dW0odCkpKX1fZ2V0U2VyaWVzTmFtZUZyb21EYXR1bSh7cnVuOnQsZXhwZXJpbWVudDplPXtuYW1lOiJfZGVmYXVsdCJ9fSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFtlLm5hbWUsdF0pfV9nZXRTZXJpZXNEaXNwbGF5TmFtZUZyb21EYXR1bSh0KXtyZXR1cm4gdC5ydW59X2dldENvbG9yU2NhbGUoKXtyZXR1cm4gbnVsbCE9PXRoaXMuY29sb3JTY2FsZT90aGlzLmNvbG9yU2NhbGU6e3NjYWxlOnQ9Pntjb25zdFssZV09SlNPTi5wYXJzZSh0KTtyZXR1cm4gR1IoZSl9fX19O2FLdC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBkaXNwbGF5LW5hbWU9IltbdGFnTWV0YWRhdGEuZGlzcGxheU5hbWVdXSIKICAgICAgZGVzY3JpcHRpb249IltbdGFnTWV0YWRhdGEuZGVzY3JpcHRpb25dXSIKICAgID48L3RmLWNhcmQtaGVhZGluZz4KICAgIDxkaXYgaWQ9InRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIj4KICAgICAgPHRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIKICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgY29sb3Itc2NhbGU9IltbX2dldENvbG9yU2NhbGUoY29sb3JTY2FsZSldXSIKICAgICAgICBkYXRhLXNlcmllcz0iW1tfZ2V0RGF0YVNlcmllcyhkYXRhVG9Mb2FkLiopXV0iCiAgICAgICAgZGF0YS10by1sb2FkPSJbW2RhdGFUb0xvYWRdXSIKICAgICAgICBnZXQtZGF0YS1sb2FkLW5hbWU9IltbX2dldERhdGFMb2FkTmFtZV1dIgogICAgICAgIGdldC1kYXRhLWxvYWQtdXJsPSJbW2dldERhdGFMb2FkVXJsXV0iCiAgICAgICAgcmVxdWVzdC1kYXRhPSJbW3JlcXVlc3REYXRhXV0iCiAgICAgICAgaWdub3JlLXktb3V0bGllcnM9IltbaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgbG9hZC1kYXRhLWNhbGxiYWNrPSJbW19sb2FkRGF0YUNhbGxiYWNrXV0iCiAgICAgICAgbG9hZC1rZXk9IltbdGFnXV0iCiAgICAgICAgbG9nLXNjYWxlLWFjdGl2ZT0iW1tfbG9nU2NhbGVBY3RpdmVdXSIKICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICBzbW9vdGhpbmctZW5hYmxlZD0iW1tzbW9vdGhpbmdFbmFibGVkXV0iCiAgICAgICAgc21vb3RoaW5nLXdlaWdodD0iW1tzbW9vdGhpbmdXZWlnaHRdXSIKICAgICAgICB0YWctbWV0YWRhdGE9IltbdGFnTWV0YWRhdGFdXSIKICAgICAgICB0b29sdGlwLWNvbHVtbnM9IltbX3Rvb2x0aXBDb2x1bW5zXV0iCiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj0iYXV0byIKICAgICAgICB0b29sdGlwLXNvcnRpbmctbWV0aG9kPSJbW3Rvb2x0aXBTb3J0aW5nTWV0aG9kXV0iCiAgICAgICAgeC10eXBlPSJbW3hUeXBlXV0iCiAgICAgID4KICAgICAgPC90Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJidXR0b25zIj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19leHBhbmRlZF1dIgogICAgICAgIGljb249ImZ1bGxzY3JlZW4iCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2xvZ1NjYWxlQWN0aXZlXV0iCiAgICAgICAgaWNvbj0ibGluZS13ZWlnaHQiCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlTG9nU2NhbGUiCiAgICAgICAgdGl0bGU9IlRvZ2dsZSB5LWF4aXMgbG9nIHNjYWxlIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgaWNvbj0ic2V0dGluZ3Mtb3ZlcnNjYW4iCiAgICAgICAgb24tdGFwPSJfcmVzZXREb21haW4iCiAgICAgICAgdGl0bGU9IkZpdCBkb21haW4gdG8gZGF0YSIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tzaG93RG93bmxvYWRMaW5rc11dIj4KICAgICAgICA8cGFwZXItbWVudS1idXR0b24gb24tcGFwZXItZHJvcGRvd24tb3Blbj0iX3VwZGF0ZURvd25sb2FkTGluayI+CiAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLXRyaWdnZXIiCiAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLXRyaWdnZXIiCiAgICAgICAgICAgIGljb249ImZpbGUtZG93bmxvYWQiCiAgICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgIDxwYXBlci1saXN0Ym94IGNsYXNzPSJkcm9wZG93bi1jb250ZW50IiBzbG90PSJkcm9wZG93bi1jb250ZW50Ij4KICAgICAgICAgICAgPHBhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgPGEgaWQ9InN2Z0xpbmsiIGRvd25sb2FkPSJbW3RhZ11dLnN2ZyI+CiAgICAgICAgICAgICAgICBEb3dubG9hZCBDdXJyZW50IENoYXJ0IGFzIFNWRwogICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9wYXBlci1pdGVtPgogICAgICAgICAgPC9wYXBlci1saXN0Ym94PgogICAgICAgIDwvcGFwZXItbWVudS1idXR0b24+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxzcGFuIHN0eWxlPSJmbGV4LWdyb3c6IDEiPjwvc3Bhbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3Nob3dEb3dubG9hZExpbmtzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImRvd25sb2FkLWxpbmtzIj4KICAgICAgICAgIDx0Zi1kb3dubG9hZGVyCiAgICAgICAgICAgIHJ1bnM9IltbX3J1bnNGcm9tRGF0YShkYXRhVG9Mb2FkKV1dIgogICAgICAgICAgICB0YWc9IltbdGFnXV0iCiAgICAgICAgICAgIHVybC1mbj0iW1tfZG93bmxvYWRVcmxGbl1dIgogICAgICAgICAgPjwvdGYtZG93bmxvYWRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgbWFyZ2luOiA1cHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDMzMHB4OwogICAgICB9CgogICAgICA6aG9zdChbX2V4cGFuZGVkXSkgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICA6aG9zdChbX2V4cGFuZGVkXSkgI3RmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIHsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICB9CgogICAgICAjdGYtbGluZS1jaGFydC1kYXRhLWxvYWRlci1jb250YWluZXIgewogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIHRmLWNhcmQtaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgfQoKICAgICAgI2J1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGNvbG9yOiAjMjE5NmYzOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CgogICAgICAuZG93bmxvYWQtbGlua3MgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAuZG93bmxvYWQtbGlua3MgYSB7CiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBtYXJnaW46IDJweDsKICAgICAgfQoKICAgICAgLmRvd25sb2FkLWxpbmtzIHBhcGVyLWRyb3Bkb3duLW1lbnUgewogICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgcGFwZXItbWVudS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgcGFwZXItaXRlbSBhIHsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGFLdC5wcm90b3R5cGUsInRhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sYUt0LnByb3RvdHlwZSwiZGF0YVRvTG9hZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxhS3QucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGFLdC5wcm90b3R5cGUsImFjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGFLdC5wcm90b3R5cGUsImlnbm9yZVlPdXRsaWVycyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLGFLdC5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sYUt0LnByb3RvdHlwZSwic2hvd0Rvd25MaW5rcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGFLdC5wcm90b3R5cGUsInNtb290aGluZ0VuYWJsZWQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sYUt0LnByb3RvdHlwZSwic21vb3RoaW5nV2VpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGFLdC5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGFLdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sYUt0LnByb3RvdHlwZSwidG9vbHRpcFNvcnRpbmdNZXRob2QiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sYUt0LnByb3RvdHlwZSwiYmF0Y2hTaXplIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxhS3QucHJvdG90eXBlLCJpbkNvbGFiIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGFLdC5wcm90b3R5cGUsIl9sb2FkRGF0YUNhbGxiYWNrIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sYUt0LnByb3RvdHlwZSwiZ2V0RGF0YUxvYWRVcmwiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sYUt0LnByb3RvdHlwZSwiX2Rvd25sb2FkVXJsRm4iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxhS3QucHJvdG90eXBlLCJyZXF1ZXN0RGF0YSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxhS3QucHJvdG90eXBlLCJfZ2V0RGF0YUxvYWROYW1lIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGFLdC5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGFLdC5wcm90b3R5cGUsIl9sb2dTY2FsZUFjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sYUt0LnByb3RvdHlwZSwiX3Rvb2x0aXBDb2x1bW5zIix2b2lkIDApLGFLdD10KFtpKCJ0Zi1zY2FsYXItY2FyZCIpXSxhS3QpO2xldCBzS3Q9Y2xhc3MgZXh0ZW5kcygoZnVuY3Rpb24gdChlLG4pe3JldHVybihmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIE5yKHt9LGVyKGUpLHQpfSkoZSxuKX0pKFtfb10seWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zZXNzaW9uR3JvdXA9bnVsbCx0aGlzLl94VHlwZT14VHQuU1RFUCx0aGlzLl9ub011bHRpRXhwZXJpbWVudHM9ITEsdGhpcy5fcmVxdWVzdERhdGE9KHQsZSxuKT0+e1Byb21pc2UuYWxsKHQubWFwKCh0PT50aGlzLmJhY2tlbmQubGlzdE1ldHJpY0V2YWxzKHtleHBlcmltZW50TmFtZTp0aGlzLmV4cGVyaW1lbnROYW1lLHNlc3Npb25OYW1lOnQucnVuLG1ldHJpY05hbWU6dC50YWd9KS50aGVuKChuPT57ZSh7aXRlbTp0LGRhdGE6bn0pfSkpKSkpLmZpbmFsbHkoKCgpPT57bigpfSkpfSx0aGlzLl9jb2xvclNjYWxlPXtzY2FsZTp0PT57Y29uc3QgZT1KU09OLnBhcnNlKHQpWzFdLG49dGhpcy5faW5kZXhPZlNlc3Npb24uZ2V0KGUpO3JldHVybiBIUlsodGhpcy5fc2Vzc2lvbkdyb3VwTmFtZUhhc2grbiklSFIubGVuZ3RoXX19fWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImlyb24tcmVzaXplIix0aGlzLnJlZHJhdy5iaW5kKHRoaXMpKX1yZWRyYXcoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtc2NhbGFyLWNhcmQiKS5mb3JFYWNoKCh0PT50LnJlZHJhdygpKSl9X3Nlc3Npb25Hcm91cENoYW5nZWQoKXt0aGlzLnNlc3Npb25Hcm91cCYmMCE9T2JqZWN0LmtleXModGhpcy5zZXNzaW9uR3JvdXApLmxlbmd0aD8odGhpcy5faW5kZXhPZlNlc3Npb249bmV3IE1hcCh0aGlzLnNlc3Npb25Hcm91cC5zZXNzaW9ucy5tYXAoKCh0LGUpPT5bdC5uYW1lLGVdKSkpLHRoaXMuX3Nlc3Npb25Hcm91cE5hbWVIYXNoPVlZdCh0aGlzLnNlc3Npb25Hcm91cC5uYW1lKSk6KHRoaXMuX2luZGV4T2ZTZXNzaW9uPW5ldyBNYXAsdGhpcy5fc2Vzc2lvbkdyb3VwTmFtZUhhc2g9MCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLXNjYWxhci1jYXJkIikuZm9yRWFjaCgodD0+e2NvbnN0IGU9dCxuPWUuZ2V0KCJ0YWciKTtlLnNldCgidGFnIiwiIiksZS5zZXQoInRhZyIsbil9KSl9X2hhdmVNZXRyaWNzKCl7cmV0dXJuIHRoaXMudmlzaWJsZVNjaGVtYSYmQXJyYXkuaXNBcnJheSh0aGlzLnZpc2libGVTY2hlbWEubWV0cmljSW5mb3MpJiZ0aGlzLnZpc2libGVTY2hlbWEubWV0cmljSW5mb3MubGVuZ3RoPjB9X2hhdmVNZXRyaWNzQW5kU2Vzc2lvbkdyb3VwKCl7cmV0dXJuIHRoaXMuc2Vzc2lvbkdyb3VwJiZ0aGlzLl9oYXZlTWV0cmljcygpfV9jb21wdXRlU2VyaWVzRm9yU2Vzc2lvbkdyb3VwTWV0cmljKHQsZSl7cmV0dXJuIG51bGw9PT10fHwwPT1PYmplY3Qua2V5cyh0KS5sZW5ndGh8fG51bGw9PT1lP1tdOnQuc2Vzc2lvbnMuZmlsdGVyKCh0PT52b2lkIDAhPT1BWXQodC5tZXRyaWNWYWx1ZXMsZS5uYW1lKSkpLm1hcCgodD0+KHt0YWc6ZS5uYW1lLHJ1bjp0Lm5hbWV9KSkpfV9jb21wdXRlVGFnTWV0YWRhdGEodCl7cmV0dXJue2Rpc3BsYXlOYW1lOndZdCh0KSxkZXNjcmlwdGlvbjp0LmRlc2NyaXB0aW9ufHwiIn19fTtzS3QudGVtcGxhdGU9X2VgCiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIXNlc3Npb25Hcm91cF1dIj4KICAgICAgPGRpdj4KICAgICAgICA8aDM+Tm8gc2Vzc2lvbiBncm91cCBzZWxlY3RlZDwvaDM+CiAgICAgICAgPHA+UGxlYXNlIHNlbGVjdCBhIHNlc3Npb24gZ3JvdXAgdG8gc2VlIGl0cyBtZXRyaWMtZ3JhcGhzIGhlcmUuPC9wPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9oYXZlTWV0cmljcyh2aXNpYmxlU2NoZW1hLiopXV0iPgogICAgICA8ZGl2PgogICAgICAgIDxoMz5ObyBtZXRyaWNzIGFyZSBlbmFibGVkPC9oMz4KICAgICAgICA8cD5QbGVhc2UgZW5hYmxlIHNvbWUgbWV0cmljcyB0byBzZWUgY29udGVudCBoZXJlLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L3RlbXBsYXRlPgogICAgPGRpdiBjbGFzcz0ibGF5b3V0IGhvcml6b250YWwgd3JhcCBzZXNzaW9uLWdyb3VwLWRldGFpbHMiPgogICAgICA8dGVtcGxhdGUKICAgICAgICBpcz0iZG9tLWlmIgogICAgICAgIGlmPSJbW19oYXZlTWV0cmljc0FuZFNlc3Npb25Hcm91cCh2aXNpYmxlU2NoZW1hLiosIHNlc3Npb25Hcm91cCldXSIKICAgICAgPgogICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICBpdGVtcz0iW1t2aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zXV0iCiAgICAgICAgICBhcz0ibWV0cmljSW5mbyIKICAgICAgICA+CiAgICAgICAgICA8IS0tIE5vdGUgdGhhdCB3ZSBkbyBub3QgcHJvdmlkZSBhIHJlcXVlc3QtbWFuYWdlciBhdHRyaWJ1dGUgc2luY2UKICAgICAgICAgICAgICAgd2UgcHJvdmlkZSBhIGZ1bmN0aW9uIGluIHJlcXVlc3QtZGF0YSBmb3IgY2FsbGluZyB0aGUgYmFja2VuZAogICAgICAgICAgICAgICB0byBnZXQgdGhlIG1ldHJpY3MgZGF0YS4KICAgICAgICAgICAgLS0+CiAgICAgICAgICA8dGYtc2NhbGFyLWNhcmQKICAgICAgICAgICAgY2xhc3M9InNjYWxhci1jYXJkIgogICAgICAgICAgICBjb2xvci1zY2FsZT0iW1tfY29sb3JTY2FsZV1dIgogICAgICAgICAgICBkYXRhLXRvLWxvYWQ9IltbX2NvbXB1dGVTZXJpZXNGb3JTZXNzaW9uR3JvdXBNZXRyaWMoc2Vzc2lvbkdyb3VwLCBtZXRyaWNJbmZvKV1dIgogICAgICAgICAgICB0YWc9IltbbWV0cmljSW5mby5uYW1lLnRhZ11dIgogICAgICAgICAgICB0YWctbWV0YWRhdGE9IltbX2NvbXB1dGVUYWdNZXRhZGF0YShtZXRyaWNJbmZvKV1dIgogICAgICAgICAgICB4LXR5cGU9IltbX3hUeXBlXV0iCiAgICAgICAgICAgIG11bHRpLWV4cGVyaW1lbnRzPSJbW19ub011bHRpRXhwZXJpbWVudHNdXSIKICAgICAgICAgICAgcmVxdWVzdC1kYXRhPSJbW19yZXF1ZXN0RGF0YV1dIgogICAgICAgICAgICBhY3RpdmUKICAgICAgICAgID4KICAgICAgICAgIDwvdGYtc2NhbGFyLWNhcmQ+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgogICAgPCEtLSAiaXJvbi1mbGV4IiBpcyBuZWVkZWQgdG8gdXNlIHRoZSBsYXlvdXQgY2xhc3NlcyBpbiB0aGUgZGl2IGFib3ZlIC0tPgogICAgPHN0eWxlIGluY2x1ZGU9Imlyb24tZmxleCI+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHNLdC5wcm90b3R5cGUsImJhY2tlbmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sc0t0LnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sc0t0LnByb3RvdHlwZSwidmlzaWJsZVNjaGVtYSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxzS3QucHJvdG90eXBlLCJzZXNzaW9uR3JvdXAiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sc0t0LnByb3RvdHlwZSwiX3hUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sc0t0LnByb3RvdHlwZSwiX25vTXVsdGlFeHBlcmltZW50cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxzS3QucHJvdG90eXBlLCJfaW5kZXhPZlNlc3Npb24iLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sc0t0LnByb3RvdHlwZSwiX3Nlc3Npb25Hcm91cE5hbWVIYXNoIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sc0t0LnByb3RvdHlwZSwiX3JlcXVlc3REYXRhIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHNLdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlIix2b2lkIDApLHQoW2EoInNlc3Npb25Hcm91cC4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxzS3QucHJvdG90eXBlLCJfc2Vzc2lvbkdyb3VwQ2hhbmdlZCIsbnVsbCksc0t0PXQoW2koInRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzIildLHNLdCk7bGV0IGxLdD1jbGFzcyBleHRlbmRzKGVyKGlsKHllKSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9ocGFyYW1OYW1lPXhZdCx0aGlzLl9tZXRyaWNOYW1lPXdZdH1fdmlzaWJsZVNjaGVtYU9yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQoKXtjb25zdCB0PXRoaXMuJC5zZXNzaW9uR3JvdXBzVGFibGUuZ2V0KCJkZXRhaWxzT3BlbmVkSXRlbXMiKTt0aGlzLiQuc2Vzc2lvbkdyb3Vwc1RhYmxlLnNldCgiZGV0YWlsc09wZW5lZEl0ZW1zIixbXSksRGkoKTtjb25zdCBlPW5ldyBNYXA7dGhpcy5zZXNzaW9uR3JvdXBzLmZvckVhY2goKHQ9PntlLnNldCh0Lm5hbWUsdCl9KSksdGhpcy4kLnNlc3Npb25Hcm91cHNUYWJsZS5zZXQoImRldGFpbHNPcGVuZWRJdGVtcyIsdC5tYXAoKHQ9PmUuZ2V0KHQubmFtZSkpKS5maWx0ZXIoQm9vbGVhbikpfV9zZXNzaW9uR3JvdXBIUGFyYW0odCxlKXtyZXR1cm4gbnVsbCE9dCYmMCE9T2JqZWN0LmtleXModCkubGVuZ3RoJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodC5ocGFyYW1zLGUpP1ZZdCh0LmhwYXJhbXNbZV0pOiIifV9zZXNzaW9uR3JvdXBNZXRyaWModCxlKXtpZihudWxsPT10fHwwPT1PYmplY3Qua2V5cyh0KS5sZW5ndGgpcmV0dXJuIiI7Zm9yKGxldCBuPTA7bjx0Lm1ldHJpY1ZhbHVlcy5sZW5ndGg7KytuKXtsZXQgaT10Lm1ldHJpY1ZhbHVlc1tuXTtpZihpLm5hbWUuZ3JvdXA9PT1lLmdyb3VwJiZpLm5hbWUudGFnPT1lLnRhZylyZXR1cm4gVll0KGkudmFsdWUpfXJldHVybiIifV9yb3dOdW1iZXIodCl7cmV0dXJuIHQrMX19O2xLdC50ZW1wbGF0ZT1fZWAKICAgIDx2YWFkaW4tZ3JpZAogICAgICBjbGFzcz0ic2Vzc2lvbi1ncm91cC10YWJsZSIKICAgICAgaWQ9InNlc3Npb25Hcm91cHNUYWJsZSIKICAgICAgY29sdW1uLXJlb3JkZXJpbmctYWxsb3dlZD0iIgogICAgICBpdGVtcz0iW1tzZXNzaW9uR3JvdXBzXV0iCiAgICA+CiAgICAgIDx2YWFkaW4tZ3JpZC1jb2x1bW4gZmxleC1ncm93PSIwIiB3aWR0aD0iMTBlbSIgcmVzaXphYmxlPSIiPgogICAgICAgIDx0ZW1wbGF0ZSBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciB0YWJsZS1jZWxsIj5UcmlhbCBJRDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtY2VsbCI+W1tpdGVtLm5hbWVdXTwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvdmFhZGluLWdyaWQtY29sdW1uPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbZW5hYmxlU2hvd01ldHJpY3NdXSI+CiAgICAgICAgPHZhYWRpbi1ncmlkLWNvbHVtbiBmbGV4LWdyb3c9IjAiIGF1dG9XaWR0aD0iIiByZXNpemFibGU9IiI+CiAgICAgICAgICA8dGVtcGxhdGUgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciB0YWJsZS1jZWxsIj5TaG93IE1ldHJpY3M8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgIDxwYXBlci1jaGVja2JveCBjbGFzcz0idGFibGUtY2VsbCIgY2hlY2tlZD0ie3tkZXRhaWxzT3BlbmVkfX0iPgogICAgICAgICAgICA8L3BhcGVyLWNoZWNrYm94PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3ZhYWRpbi1ncmlkLWNvbHVtbj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlCiAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgaXRlbXM9IltbdmlzaWJsZVNjaGVtYS5ocGFyYW1JbmZvc11dIgogICAgICAgIGFzPSJocGFyYW1JbmZvIgogICAgICAgIGluZGV4LWFzPSJocGFyYW1JbmRleCIKICAgICAgPgogICAgICAgIDx2YWFkaW4tZ3JpZC1jb2x1bW4gZmxleC1ncm93PSIyIiB3aWR0aD0iMTBlbSIgcmVzaXphYmxlPSIiPgogICAgICAgICAgPHRlbXBsYXRlIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIgdGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgW1tfaHBhcmFtTmFtZShocGFyYW1JbmZvKV1dCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgW1tfc2Vzc2lvbkdyb3VwSFBhcmFtKGl0ZW0sIGhwYXJhbUluZm8ubmFtZSldXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC92YWFkaW4tZ3JpZC1jb2x1bW4+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZQogICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgIGl0ZW1zPSJ7e3Zpc2libGVTY2hlbWEubWV0cmljSW5mb3N9fSIKICAgICAgICBhcz0ibWV0cmljSW5mbyIKICAgICAgICBpbmRleC1hcz0ibWV0cmljSW5kZXgiCiAgICAgID4KICAgICAgICA8dmFhZGluLWdyaWQtY29sdW1uIGZsZXgtZ3Jvdz0iMiIgd2lkdGg9IjEwZW0iIHJlc2l6YWJsZT0iIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIHRhYmxlLWNlbGwiPgogICAgICAgICAgICAgIFtbX21ldHJpY05hbWUobWV0cmljSW5mbyldXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWNlbGwiPgogICAgICAgICAgICAgIFtbX3Nlc3Npb25Hcm91cE1ldHJpYyhpdGVtLCBtZXRyaWNJbmZvLm5hbWUpXV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdmFhZGluLWdyaWQtY29sdW1uPgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUgY2xhc3M9InJvdy1kZXRhaWxzIj4KICAgICAgICA8dGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLWRldGFpbHMKICAgICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgICAgZXhwZXJpbWVudC1uYW1lPSJbW2V4cGVyaW1lbnROYW1lXV0iCiAgICAgICAgICBzZXNzaW9uLWdyb3VwPSJbW2l0ZW1dXSIKICAgICAgICAgIHZpc2libGUtc2NoZW1hPSJbW3Zpc2libGVTY2hlbWFdXSIKICAgICAgICAgIGNsYXNzPSJzZXNzaW9uLWdyb3VwLWRldGFpbHMiCiAgICAgICAgPgogICAgICAgIDwvdGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLWRldGFpbHM+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3ZhYWRpbi1ncmlkPgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZTsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgewogICAgICAgIC0tbHVtby1iYXNlLWNvbG9yOiAjMzAzMDMwOwogICAgICAgIC0tbHVtby1ib2R5LXRleHQtY29sb3I6ICNmZmY7CiAgICAgIH0KCiAgICAgIDpob3N0KC5kYXJrLW1vZGUpIHZhYWRpbi1ncmlkIHsKICAgICAgICAtLV9sdW1vLWdyaWQtc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogIzUwNTA1MDsKICAgICAgfQoKICAgICAgLnRhYmxlLWNlbGwgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAudGFibGUtaGVhZGVyIHsKICAgICAgICAvKiBsaW5lLWJyZWFrIG92ZXJmbG93aW5nIGNvbHVtbiBoZWFkZXJzICovCiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOwogICAgICB9CiAgICAgIC5zZXNzaW9uLWdyb3VwLXRhYmxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLnNlc3Npb24tZ3JvdXAtZGV0YWlscyB7CiAgICAgICAgaGVpZ2h0OiAzNjBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbEt0LnByb3RvdHlwZSwidmlzaWJsZVNjaGVtYSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sbEt0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGxLdC5wcm90b3R5cGUsImVuYWJsZVNob3dNZXRyaWNzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGxLdC5wcm90b3R5cGUsImJhY2tlbmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sbEt0LnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCksdChbYSgidmlzaWJsZVNjaGVtYS4qIiwic2Vzc2lvbkdyb3Vwcy4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxsS3QucHJvdG90eXBlLCJfdmlzaWJsZVNjaGVtYU9yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQiLG51bGwpLGxLdD10KFtpKCJ0Zi1ocGFyYW1zLXRhYmxlLXZpZXciKV0sbEt0KTtsZXQgY0t0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc2Vzc2lvbkdyb3VwPW51bGwsdGhpcy52aXNpYmxlU2NoZW1hPW51bGx9X3Byb3BlcnRpZXNBcmVQb3B1bGF0ZWQodCxlKXtyZXR1cm4gbnVsbCE9dCYmbnVsbCE9ZX1fc2luZ2xldG9uU2Vzc2lvbkdyb3Vwcyh0KXtyZXR1cm4gbnVsbD09dD9bXTpbdF19fTtmdW5jdGlvbiB1S3QodCxlLG4pe2Z1bmN0aW9uIGkoKXtpZigwPT09dC5sZW5ndGgpcmV0dXJuWzEsMl07Y29uc3RbZSxuXT1MbCh0KTtyZXR1cm4gZSE9PW4/W2Usbl06ZT4wP1suNSplLDEuNSplXTplPDA/WzEuNSplLC41KmVdOlstMSwxXX1pZigiTElORUFSIj09PW4pcmV0dXJuIFZNKCkuZG9tYWluKGkoKSkucmFuZ2UoW2UsMF0pO2lmKCJMT0ciPT09bil7Y29uc3Qgbj1pKCk7cmV0dXJuIG5bMF08PTAmJm5bMV0+PTA/dUt0KHQsZSwiTElORUFSIik6S00oKS5kb21haW4obikucmFuZ2UoW2UsMF0pfWlmKCJRVUFOVElMRSI9PT1uKXtjb25zdCBuPTIwLGk9emwobikubWFwKCh0PT5lLXQqZS8obi0xKSkpO3JldHVybiAwPT09dC5sZW5ndGgmJih0PVsxXSksb0UoKS5kb21haW4oU2UuZXhwb3J0cy51bmlxKHQpKS5yYW5nZShpKX1pZigiTk9OX05VTUVSSUMiPT09bilyZXR1cm4gQU0oKS5kb21haW4oU2UuZXhwb3J0cy51bmlxKHQuc29ydCgpKSkucmFuZ2UoW2UsMF0pLnBhZGRpbmcoLjEpO3Rocm93IFJhbmdlRXJyb3IoIlVua25vd24gc2NhbGU6ICIrbil9dmFyIGhLdCxkS3Q7Y0t0LnRlbXBsYXRlPV9lYAogICAgPCEtLSBJZiBzZXNzaW9uR3JvdXAgb3IgdmlzaWJsZVNjaGVtYSBhcmUgbm90IHBvcHVsYXRlZCwgZG8gbm90IGRpc3BsYXkKICAgICAgICAgYW55dGhpbmcuCiAgICAgIC0tPgogICAgPHRlbXBsYXRlCiAgICAgIGlzPSJkb20taWYiCiAgICAgIGlmPSJbW19wcm9wZXJ0aWVzQXJlUG9wdWxhdGVkKHZpc2libGVTY2hlbWEsIHNlc3Npb25Hcm91cCldXSIKICAgID4KICAgICAgPCEtLSBEaXNwbGF5IG9uZSByb3cgd2l0aG91dCBhICJzaG93LW1ldHJpY3MiIGNvbHVtbiAtLT4KICAgICAgPHRmLWhwYXJhbXMtdGFibGUtdmlldwogICAgICAgIHZpc2libGUtc2NoZW1hPSJbW3Zpc2libGVTY2hlbWFdXSIKICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tfc2luZ2xldG9uU2Vzc2lvbkdyb3VwcyhzZXNzaW9uR3JvdXApXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXRhYmxlLXZpZXc+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlCiAgICAgIGlzPSJkb20taWYiCiAgICAgIGlmPSJbWyFfcHJvcGVydGllc0FyZVBvcHVsYXRlZCh2aXNpYmxlU2NoZW1hLCBzZXNzaW9uR3JvdXApXV0iCiAgICA+CiAgICAgIDxkaXY+Q2xpY2sgb3IgaG92ZXIgb3ZlciBhIHNlc3Npb24gZ3JvdXAgdG8gZGlzcGxheSBpdHMgdmFsdWVzIGhlcmUuPC9kaXY+CiAgICA8L3RlbXBsYXRlPgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sY0t0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGNLdC5wcm90b3R5cGUsInZpc2libGVTY2hlbWEiLHZvaWQgMCksY0t0PXQoW2koInRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC12YWx1ZXMiKV0sY0t0KSwoZnVuY3Rpb24odCl7dC5MSU5FQVI9IkxJTkVBUiIsdC5MT0c9IkxPRyIsdC5RVUFOVElMRT0iUVVBTlRJTEUiLHQuTk9OX05VTUVSSUM9Ik5PTl9OVU1FUklDIn0pKGhLdHx8KGhLdD17fSkpO2NsYXNzIHBLdHtpc1Bhc3NpbmcodCl7cmV0dXJuITB9fWNsYXNzIGZLdHtjb25zdHJ1Y3Rvcih0LGUsbixpKXt0aGlzLl9sb3dlcj10LHRoaXMuX3VwcGVyPWUsdGhpcy5fbG93ZXJPcGVuPW4sdGhpcy5fdXBwZXJPcGVuPWl9aXNQYXNzaW5nKHQpe2NvbnN0IGU9dDtyZXR1cm4gdGhpcy5fYmVmb3JlKHRoaXMuX2xvd2VyLGUsIXRoaXMuX2xvd2VyT3BlbikmJnRoaXMuX2JlZm9yZShlLHRoaXMuX3VwcGVyLCF0aGlzLl91cHBlck9wZW4pfV9iZWZvcmUodCxlLG4pe3JldHVybiBuP3Q8PWU6dDxlfX1jbGFzcyBtS3R7Y29uc3RydWN0b3IodCl7dGhpcy5fZG9tYWluU2V0PXR9aXNQYXNzaW5nKHQpe3JldHVybi0xIT09dGhpcy5fZG9tYWluU2V0LmZpbmRJbmRleCgoZT0+ZT09PXQpKX19Y2xhc3MgZ0t0e2NvbnN0cnVjdG9yKHQsZSxuLGkpe3RoaXMuX3N2Z1Byb3BzPXQsdGhpcy5fc2NoZW1hPWUsdGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyPW4sdGhpcy5fY29sSW5kZXg9aSx0aGlzLl9pc0Rpc3BsYXllZD0hMSx0aGlzLl95U2NhbGU9bnVsbCx0aGlzLl9zY2FsZVR5cGU9bnVsbCx0aGlzLnNldEJydXNoU2VsZWN0aW9uKG51bGwpfWNvbEluZGV4KCl7cmV0dXJuIHRoaXMuX2NvbEluZGV4fXlTY2FsZSgpe3JldHVybiB0aGlzLl95U2NhbGV9c2NhbGVUeXBlKCl7cmV0dXJuIHRoaXMuX3NjYWxlVHlwZX1icnVzaFNlbGVjdGlvbigpe3JldHVybiB0aGlzLl9icnVzaFNlbGVjdGlvbn1pc0Rpc3BsYXllZCgpe3JldHVybiB0aGlzLl9pc0Rpc3BsYXllZH1zZXRCcnVzaFNlbGVjdGlvbih0KXt0aGlzLl9icnVzaFNlbGVjdGlvbj10LHRoaXMuX2JydXNoRmlsdGVyPXRoaXMuX2J1aWxkQnJ1c2hGaWx0ZXIodGhpcy5icnVzaFNlbGVjdGlvbigpLHRoaXMuc2NhbGVUeXBlKCksdGhpcy55U2NhbGUoKSl9c2V0RG9tYWluQW5kU2NhbGUodCxlKXt0aGlzLl9zY2FsZVR5cGU9ZSx0aGlzLl95U2NhbGU9dUt0KHQuc2xpY2UoKSx0aGlzLl9zdmdQcm9wcy5oZWlnaHQsdGhpcy5zY2FsZVR5cGUoKSksdGhpcy5fYnJ1c2hGaWx0ZXI9dGhpcy5fYnVpbGRCcnVzaEZpbHRlcih0aGlzLmJydXNoU2VsZWN0aW9uKCksdGhpcy5zY2FsZVR5cGUoKSx0aGlzLnlTY2FsZSgpKX1icnVzaEZpbHRlcigpe3JldHVybiB0aGlzLl9icnVzaEZpbHRlcn11cGRhdGVET00odCl7bGV0IGU9YWModGhpcy55U2NhbGUoKSk7dGhpcy5zY2FsZVR5cGUoKT09PWhLdC5RVUFOVElMRSYmKGU9ZS50aWNrVmFsdWVzKHRoaXMueVNjYWxlKCkucXVhbnRpbGVzKCkpLnRpY2tGb3JtYXQobXkoIi0uNmciKSkpO2NvbnN0IG49U3UodCk7bi5zZWxlY3RBbGwoImciKS5yZW1vdmUoKSxuLmFwcGVuZCgiZyIpLmNsYXNzZWQoImF4aXMiLCEwKS5jYWxsKGUpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoImF4aXMtdGl0bGUiLCEwKS5zdHlsZSgiY3Vyc29yIiwibW92ZSIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmF0dHIoInkiLC05KS50ZXh0KCh0PT5TWXQodGhpcy5fc2NoZW1hLHQpKSksbi5jYWxsKHZoKCkub24oInN0YXJ0IiwoKCk9Pnt0LnNldEF0dHJpYnV0ZSgiaXMtZHJhZ2dpbmciLCIiKSx0aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXIub25EcmFnU3RhcnQodGhpcy5jb2xJbmRleCgpKX0pKS5vbigiZHJhZyIsKCgpPT50aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXIub25EcmFnKHV1LngpKSkub24oImVuZCIsKCgpPT57dGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uRHJhZ0VuZCgpLHQucmVtb3ZlQXR0cmlidXRlKCJpcy1kcmFnZ2luZyIpfSkpKTtjb25zdCBpPVptKCkuZXh0ZW50KFtbLTgsMF0sWzgsdGhpcy5fc3ZnUHJvcHMuaGVpZ2h0KzFdXSkub24oInN0YXJ0IiwoKCk9Pnt5S3QodXUpJiYodC5zZXRBdHRyaWJ1dGUoImlzLWJydXNoaW5nIiwiIiksdGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uQnJ1c2hDaGFuZ2VkKHRoaXMuY29sSW5kZXgoKSx1dS5zZWxlY3Rpb24pKX0pKS5vbigiYnJ1c2giLCgoKT0+e3lLdCh1dSkmJnRoaXMuX2ludGVyYWN0aW9uTWFuYWdlci5vbkJydXNoQ2hhbmdlZCh0aGlzLmNvbEluZGV4KCksdXUuc2VsZWN0aW9uKX0pKS5vbigiZW5kIiwoKCk9Pnt5S3QodXUpJiYodGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uQnJ1c2hDaGFuZ2VkKHRoaXMuY29sSW5kZXgoKSx1dS5zZWxlY3Rpb24pLHQucmVtb3ZlQXR0cmlidXRlKCJpcy1icnVzaGluZyIpKX0pKSxyPVN1KHQpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImJydXNoIiwhMCk7ci5jYWxsKGkpLGkubW92ZShyLHRoaXMuYnJ1c2hTZWxlY3Rpb24oKSl9c2V0RGlzcGxheWVkKHQpe3RoaXMuX2lzRGlzcGxheWVkPXR9X2J1aWxkQnJ1c2hGaWx0ZXIodCxlLG4pe2lmKG51bGw9PT10KXJldHVybiBuZXcgcEt0O2lmKG51bGw9PT1lKXJldHVybiBjb25zb2xlLmVycm9yKCJTY2FsZSB0eXBlIGlzIG51bGwsIGJ1dCBicnVzaFNlbGVjdGlvbiBpc24ndDogIix0KSxuZXcgcEt0O3N3aXRjaChlKXtjYXNlIGhLdC5MSU5FQVI6Y2FzZSBoS3QuTE9HOntjb25zdFtlLGldPShmdW5jdGlvbiByKHQsZSxuKXtyZXR1cm5bdC5pbnZlcnQoZSksdC5pbnZlcnQobildLnNvcnQoKCh0LGUpPT50LWUpKX0pKG4sdFswXSx0WzFdKTtyZXR1cm4gbmV3IGZLdChlLGksITEsITEpfWNhc2UgaEt0LlFVQU5USUxFOntjb25zdFtlLGldPShmdW5jdGlvbiByKHQsZSxuKXtjb25zdCBpPXQucmFuZ2UoKSxyPWkuZmlsdGVyKCh0PT5lPD10JiZ0PD1uKSkubWFwKChlPT57Y29uc3Qgbj10LmludmVydEV4dGVudChlKTtyZXR1cm4gZT09PWlbaS5sZW5ndGgtMV0/W25bMF0sblsxXSsxXTpufSkpO3JldHVybiAwPT1yLmxlbmd0aD9bMCwwXTpMbChxbChyKSl9KShuLHRbMF0sdFsxXSk7cmV0dXJuIG5ldyBmS3QoZSxpLCExLCEwKX1jYXNlIGhLdC5OT05fTlVNRVJJQzpyZXR1cm4gbmV3IG1LdCgoZnVuY3Rpb24gZSh0LG4saSl7cmV0dXJuIHQuZG9tYWluKCkuZmlsdGVyKChlPT57Y29uc3Qgcj10KGUpO3JldHVybiBuPD1yJiZyPD1pfSkpfSkobix0WzBdLHRbMV0pKX1yZXR1cm4gY29uc29sZS5lcnJvcigiVW5rbm93biBzY2FsZSB0eXBlOiAiLGUpLG5ldyBwS3R9fWNsYXNzIF9LdHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fc3ZnUHJvcHM9dCx0aGlzLl9zY2hlbWE9ZSx0aGlzLl9heGVzPXRoaXMuX2NyZWF0ZUF4ZXMobiksdGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnM9QU0oKS5yYW5nZShbMSx0aGlzLl9zdmdQcm9wcy53aWR0aC0xXSkucGFkZGluZyguNSksdGhpcy5fZHJhZ2dlZEF4aXM9bnVsbCx0aGlzLl9zdmdQcm9wcy5zdmdHLnNlbGVjdEFsbCgiZy5heGlzLXBhcmVudCIpLnJlbW92ZSgpLHRoaXMuX3BhcmVudHNTZWw9dGhpcy5fc3ZnUHJvcHMuc3ZnRy5zZWxlY3RBbGwoIi5heGlzLXBhcmVudCIpfXVwZGF0ZUF4ZXModCxlKXtjb25zb2xlLmFzc2VydCghdGhpcy5pc0F4aXNEcmFnZ2luZygpKTtjb25zdCBuPW5ldyBTZXQ7dC5jb2x1bW5zLmZvckVhY2goKHQ9Pntjb25zdCBpPXQuYWJzb2x1dGVJbmRleDtsZXQgcj10aGlzLl9heGVzW2ldO3Iuc2V0RGlzcGxheWVkKCEwKTtjb25zdCBvPWUubWFwKCh0PT5QWXQodGhpcy5fc2NoZW1hLHQsaSkpKTtyLnNldERvbWFpbkFuZFNjYWxlKG8sdC5zY2FsZSksbi5hZGQoaSl9KSksdGhpcy5fYXhlcy5mb3JFYWNoKCh0PT57bi5oYXModC5jb2xJbmRleCgpKXx8dC5zZXREaXNwbGF5ZWQoITEpfSkpLHRoaXMuX3VwZGF0ZVN0YXRpb25hcnlBeGVzUG9zaXRpb25zKG4pLHRoaXMuX3BhcmVudHNTZWw9dGhpcy5fcGFyZW50c1NlbC5kYXRhKEFycmF5LmZyb20obiksKHQ9PnQpKSx0aGlzLl9wYXJlbnRzU2VsLmV4aXQoKS5yZW1vdmUoKSx0aGlzLl9wYXJlbnRzU2VsPXRoaXMuX3BhcmVudHNTZWwuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJheGlzLXBhcmVudCIsITApLm1lcmdlKHRoaXMuX3BhcmVudHNTZWwpO2NvbnN0IGk9dGhpczt0aGlzLl9wYXJlbnRzU2VsLmNhbGwoKHQ9PnRoaXMuX3VwZGF0ZUF4ZXNQb3NpdGlvbnNJbkRPTSh0KSkpLmVhY2goKGZ1bmN0aW9uKHQpe2kuX2F4ZXNbdF0udXBkYXRlRE9NKHRoaXMpfSkpfW1hcFZpc2libGVBeGVzKHQpe3JldHVybiB0aGlzLl9zdGF0aW9uYXJ5QXhlc1Bvc2l0aW9ucy5kb21haW4oKS5tYXAoKGU9PnQodGhpcy5nZXRBeGlzUG9zaXRpb24oZSksdGhpcy5fYXhlc1tlXSkpKX1hbGxWaXNpYmxlQXhlc1NhdGlzZnkodCl7cmV0dXJuIHRoaXMuX3N0YXRpb25hcnlBeGVzUG9zaXRpb25zLmRvbWFpbigpLmV2ZXJ5KChlPT50KHRoaXMuZ2V0QXhpc1Bvc2l0aW9uKGUpLHRoaXMuX2F4ZXNbZV0pKSl9Z2V0QXhpc0ZvckNvbEluZGV4KHQpe3JldHVybiB0aGlzLl9heGVzW3RdfWRyYWdTdGFydCh0KXtjb25zb2xlLmFzc2VydCghdGhpcy5pc0F4aXNEcmFnZ2luZygpKSxjb25zb2xlLmFzc2VydCh0aGlzLl9heGVzW3RdLmlzRGlzcGxheWVkKCkpLHRoaXMuX2RyYWdnZWRBeGlzPXRoaXMuX2F4ZXNbdF0sdGhpcy5fZHJhZ2dlZEF4aXNQb3NpdGlvbj10aGlzLl9zdGF0aW9uYXJ5QXhlc1Bvc2l0aW9ucyh0KX1kcmFnKHQpe3Q9TWF0aC5taW4oTWF0aC5tYXgodCwwKSx0aGlzLl9zdmdQcm9wcy53aWR0aCksdGhpcy5fZHJhZ2dlZEF4aXNQb3NpdGlvbj10O2xldCBlPXRoaXMuX3N0YXRpb25hcnlBeGVzUG9zaXRpb25zLmRvbWFpbigpO2Uuc29ydCgoKHQsZSk9PnRoaXMuZ2V0QXhpc1Bvc2l0aW9uKHQpLXRoaXMuZ2V0QXhpc1Bvc2l0aW9uKGUpKSksdGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKGUpLHRoaXMuX3VwZGF0ZUF4ZXNQb3NpdGlvbnNJbkRPTSh0aGlzLl9wYXJlbnRzU2VsKX1kcmFnRW5kKHQpe2NvbnNvbGUuYXNzZXJ0KHRoaXMuaXNBeGlzRHJhZ2dpbmcoKSksdGhpcy5fZHJhZ2dlZEF4aXNQb3NpdGlvbj1udWxsLHRoaXMuX2RyYWdnZWRBeGlzPW51bGwsdGhpcy5fdXBkYXRlQXhlc1Bvc2l0aW9uc0luRE9NKHRoaXMuX3BhcmVudHNTZWwudHJhbnNpdGlvbigpLmR1cmF0aW9uKHQpKX1pc0F4aXNEcmFnZ2luZygpe3JldHVybiBudWxsIT09dGhpcy5fZHJhZ2dlZEF4aXN9Z2V0QXhpc1Bvc2l0aW9uKHQpe3JldHVybiBudWxsIT09dGhpcy5fZHJhZ2dlZEF4aXMmJnRoaXMuX2RyYWdnZWRBeGlzLmNvbEluZGV4KCk9PT10P3RoaXMuX2RyYWdnZWRBeGlzUG9zaXRpb246dGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnModCl9X3VwZGF0ZVN0YXRpb25hcnlBeGVzUG9zaXRpb25zKHQpe2NvbnN0IGU9dGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKCkuZmlsdGVyKChlPT50LmhhcyhlKSkpLG49QXJyYXkuZnJvbShuZXcgU2V0KFsuLi5lLC4uLkFycmF5LmZyb20odCldKSk7dGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKG4pfV91cGRhdGVBeGVzUG9zaXRpb25zSW5ET00odCl7dC5hdHRyKCJ0cmFuc2Zvcm0iLCh0PT5XWXQodGhpcy5nZXRBeGlzUG9zaXRpb24odCkpKSl9X2NyZWF0ZUF4ZXModCl7cmV0dXJuIHpsKFRZdCh0aGlzLl9zY2hlbWEpKS5tYXAoKGU9Pm5ldyBnS3QodGhpcy5fc3ZnUHJvcHMsdGhpcy5fc2NoZW1hLHQsZSkpKX19ZnVuY3Rpb24geUt0KHQpe3JldHVybiBudWxsIT09dC5zb3VyY2VFdmVudH0hKGZ1bmN0aW9uKHQpe3RbdC5GT1JFR1JPVU5EPTBdPSJGT1JFR1JPVU5EIix0W3QuQkFDS0dST1VORD0xXT0iQkFDS0dST1VORCJ9KShkS3R8fChkS3Q9e30pKTtjbGFzcyB2S3R7Y29uc3RydWN0b3IodCl7dm9pZCAwPT09dCYmKHQ9c2gobnVsbCkpLGNvbnNvbGUuYXNzZXJ0KHQuc2l6ZSgpPD0xKSx0aGlzLl9zZXNzaW9uR3JvdXBTZWw9dH1zZXNzaW9uR3JvdXAoKXtyZXR1cm4gMT09PXRoaXMuX3Nlc3Npb25Hcm91cFNlbC5zaXplKCk/dGhpcy5fc2Vzc2lvbkdyb3VwU2VsLmRhdHVtKCk6bnVsbH1pc051bGwoKXtyZXR1cm4gbnVsbD09PXRoaXMuc2Vzc2lvbkdyb3VwKCl9c2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuX3Nlc3Npb25Hcm91cFNlbH1lcXVhbHNUbyh0KXtyZXR1cm4gdGhpcy5pc051bGwoKT90LmlzTnVsbCgpOiF0LmlzTnVsbCgpJiZ0LnNlc3Npb25Hcm91cCgpLm5hbWU9PXRoaXMuc2Vzc2lvbkdyb3VwKCkubmFtZX19Y2xhc3MgYkt0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9zdmdQcm9wcz10LHRoaXMuX3NjaGVtYT1lLHRoaXMuX2F4ZXNDb2xsZWN0aW9uPW4sdGhpcy5fc2Vzc2lvbkdyb3Vwcz1bXSx0aGlzLl9zdmdQcm9wcy5zdmdHLnNlbGVjdEFsbCgiZy5iYWNrZ3JvdW5kIikucmVtb3ZlKCksdGhpcy5fc3ZnUHJvcHMuc3ZnRy5zZWxlY3RBbGwoImcuZm9yZWdyb3VuZCIpLnJlbW92ZSgpLHRoaXMuX2JnUGF0aHNTZWw9dGhpcy5fc3ZnUHJvcHMuc3ZnRy5hcHBlbmQoImciKS5jbGFzc2VkKCJiYWNrZ3JvdW5kIiwhMCkuc2VsZWN0QWxsKCJwYXRoIiksdGhpcy5fZmdQYXRoc1NlbD10aGlzLl9zdmdQcm9wcy5zdmdHLmFwcGVuZCgiZyIpLmNsYXNzZWQoImZvcmVncm91bmQiLCEwKS5zZWxlY3RBbGwoInBhdGgiKSx0aGlzLl91cGRhdGVWaXNpYmxlRmdQYXRoc1NlbCgpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cEhhbmRsZT1uZXcgdkt0LHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwSGFuZGxlPW5ldyB2S3QsdGhpcy5fZDNsaW5lPXVMKCkuY3VydmUoc0wpfWdldFNlc3Npb25Hcm91cEhhbmRsZSh0KXtyZXR1cm4gbnVsbD09dD9uZXcgdkt0Om5ldyB2S3QodGhpcy5fZmdQYXRoc1NlbC5maWx0ZXIoKGU9PmUubmFtZT09PXQubmFtZSkpKX1oaWRlQmFja2dyb3VuZExpbmVzKCl7dGhpcy5fYmdQYXRoc1NlbC5hdHRyKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9c2hvd0JhY2tncm91bmRMaW5lcygpe3RoaXMuX2JnUGF0aHNTZWwuYXR0cigidmlzaWJpbGl0eSIsbnVsbCl9cGVha2VkU2Vzc2lvbkdyb3VwSGFuZGxlKCl7cmV0dXJuIHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cEhhbmRsZX1zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpe3JldHVybiB0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZX1yZWNvbXB1dGVDb250cm9sUG9pbnRzKHQsZT0wKXsodD09PWRLdC5GT1JFR1JPVU5EP3RoaXMuX2ZnUGF0aHNTZWw6dGhpcy5fYmdQYXRoc1NlbCkudHJhbnNpdGlvbigpLmR1cmF0aW9uKGUpLmF0dHIoImQiLCh0PT50aGlzLl9wYXRoREF0dHJpYnV0ZSh0KSkpLHQ9PT1kS3QuRk9SRUdST1VORCYmd2luZG93LnNldFRpbWVvdXQoKCgpPT57Y29uc3QgdD10aGlzO3RoaXMuX2ZnUGF0aHNTZWwuZWFjaCgoZnVuY3Rpb24oZSl7dC5fc2V0Q29udHJvbFBvaW50c1Byb3BlcnR5KHRoaXMsZSl9KSl9KSl9cmVjb21wdXRlRm9yZWdyb3VuZExpbmVzVmlzaWJpbGl0eSgpe3RoaXMuX2ZnUGF0aHNTZWwuY2xhc3NlZCgiaW52aXNpYmxlLXBhdGgiLCh0PT4hdGhpcy5fYXhlc0NvbGxlY3Rpb24uYWxsVmlzaWJsZUF4ZXNTYXRpc2Z5KCgoZSxuKT0+bi5icnVzaEZpbHRlcigpLmlzUGFzc2luZyhQWXQodGhpcy5fc2NoZW1hLHQsbi5jb2xJbmRleCgpKSkpKSkpLHRoaXMuX3VwZGF0ZVZpc2libGVGZ1BhdGhzU2VsKCl9c2V0Rm9yZWdyb3VuZExpbmVzQ29sb3IodCxlLG4pe2NvbnN0IGk9dGhpcy5fY3JlYXRlTGluZUNvbG9yRnVuY3Rpb24odCxlLG4pO3RoaXMuX2ZnUGF0aHNTZWwuYXR0cigic3Ryb2tlIixpKX1yZWRyYXcodCxlLG4saSl7Y29uc3Qgcj10aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2Vzc2lvbkdyb3VwKCksbz10aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZS5zZXNzaW9uR3JvdXAoKTt0aGlzLl9zZXNzaW9uR3JvdXBzPXQsdGhpcy5fZmdQYXRoc1NlbD10aGlzLl9yZWNvbXB1dGVQYXRoU2VsZWN0aW9uKHRoaXMuX2ZnUGF0aHNTZWwpLHRoaXMuX2JnUGF0aHNTZWw9dGhpcy5fcmVjb21wdXRlUGF0aFNlbGVjdGlvbih0aGlzLl9iZ1BhdGhzU2VsKSx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGU9dGhpcy5nZXRTZXNzaW9uR3JvdXBIYW5kbGUociksdGhpcy5fc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGU9dGhpcy5nZXRTZXNzaW9uR3JvdXBIYW5kbGUobyksdGhpcy5yZWNvbXB1dGVDb250cm9sUG9pbnRzKGRLdC5GT1JFR1JPVU5EKSx0aGlzLnJlY29tcHV0ZUNvbnRyb2xQb2ludHMoZEt0LkJBQ0tHUk9VTkQpLHRoaXMucmVjb21wdXRlRm9yZWdyb3VuZExpbmVzVmlzaWJpbGl0eSgpLHRoaXMuc2V0Rm9yZWdyb3VuZExpbmVzQ29sb3IoZSxuLGkpfXVwZGF0ZVBlYWtlZFNlc3Npb25Hcm91cCh0KXt0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2VsZWN0aW9uKCkuY2xhc3NlZCgicGVha2VkLXBhdGgiLCExKSx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGU9dCx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2VsZWN0aW9uKCkuY2xhc3NlZCgicGVha2VkLXBhdGgiLCEwKX1jbGVhclBlYWtlZFNlc3Npb25Hcm91cCgpe3RoaXMudXBkYXRlUGVha2VkU2Vzc2lvbkdyb3VwKG5ldyB2S3QpfXVwZGF0ZVNlbGVjdGVkU2Vzc2lvbkdyb3VwKHQpe3RoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwSGFuZGxlLnNlbGVjdGlvbigpLmNsYXNzZWQoInNlbGVjdGVkLXBhdGgiLCExKSx0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZT10LHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwSGFuZGxlLnNlbGVjdGlvbigpLmNsYXNzZWQoInNlbGVjdGVkLXBhdGgiLCEwKX1maW5kQ2xvc2VzdFNlc3Npb25Hcm91cCh0LGUpe2NvbnN0IG49dGhpcy5fYXhlc0NvbGxlY3Rpb24ubWFwVmlzaWJsZUF4ZXMoKCh0LGUpPT50KSksaT0oZnVuY3Rpb24gcih0LGUsbixpKXtpZihlLmxlbmd0aDwyKXJldHVybiBjb25zb2xlLmVycm9yKCJMZXNzIHRoYW4gdHdvIGF4ZXMgaW4gcGFyYWxsZWwgY29vcmRpbmF0ZXMgcGxvdC4iKSxudWxsO2NvbnN0IHI9blswXSxvPW5bMV07aWYocjw9ZVswXXx8cj49ZVtlLmxlbmd0aC0xXSlyZXR1cm4gbnVsbDtjb25zdCBhPVNlLmV4cG9ydHMuc29ydGVkSW5kZXgoZSxyKTtjb25zb2xlLmFzc2VydChhPjApLGNvbnNvbGUuYXNzZXJ0KGE8ZS5sZW5ndGgpO2NvbnN0IHM9YS0xO2xldCBsPW51bGwsYz1udWxsO3JldHVybiB0LmZvckVhY2goKHQ9Pntjb25zdCBlPShmdW5jdGlvbiBuKHQsZSxpLGEpe2NvbnN0IHM9dC1pLGw9ZS1hLGM9ci1pLHU9by1hLGg9KHMqYytsKnUpLyhzKnMrbCpsKTtyZXR1cm4gaDw9MD9VWXQoYyx1KTpoPj0xP1VZdCh0LXIsZS1vKTpVWXQoYy1oKnMsdS1oKmwpfSkodC5jb250cm9sUG9pbnRzW3NdWzBdLHQuY29udHJvbFBvaW50c1tzXVsxXSx0LmNvbnRyb2xQb2ludHNbYV1bMF0sdC5jb250cm9sUG9pbnRzW2FdWzFdKTtlPml8fChudWxsPT09bHx8ZTxsKSYmKGw9ZSxjPXQpfSkpLGN9KSh0aGlzLl92aXNpYmxlRmdQYXRoc1NlbC5ub2RlcygpLG4sW3QsZV0sMTAwKTtyZXR1cm4gbnVsbD09PWk/bmV3IHZLdDpuZXcgdkt0KFN1KGkpKX1fY3JlYXRlTGluZUNvbG9yRnVuY3Rpb24odCxlLG4pe2lmKG51bGw9PT10KXJldHVybigpPT4icmVkIjtjb25zdCBpPVZNKCkuZG9tYWluKE5ZdCh0aGlzLl9zY2hlbWEsdGhpcy5fc2Vzc2lvbkdyb3Vwcyx0KSkucmFuZ2UoW2Usbl0pLmludGVycG9sYXRlKGNwKTtyZXR1cm4gZT0+aShQWXQodGhpcy5fc2NoZW1hLGUsdCkpfV9yZWNvbXB1dGVQYXRoU2VsZWN0aW9uKHQpe3JldHVybih0PXQuZGF0YSh0aGlzLl9zZXNzaW9uR3JvdXBzLCh0PT50Lm5hbWUpKSkuZXhpdCgpLnJlbW92ZSgpLHQuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5tZXJnZSh0KX1fc2V0Q29udHJvbFBvaW50c1Byb3BlcnR5KHQsZSl7dC5jb250cm9sUG9pbnRzPXRoaXMuX2NvbXB1dGVDb250cm9sUG9pbnRzKGUpfV9jb21wdXRlQ29udHJvbFBvaW50cyh0KXtyZXR1cm4gdGhpcy5fYXhlc0NvbGxlY3Rpb24ubWFwVmlzaWJsZUF4ZXMoKChlLG4pPT5bZSxuLnlTY2FsZSgpKFBZdCh0aGlzLl9zY2hlbWEsdCxuLmNvbEluZGV4KCkpKV0pKX1fcGF0aERBdHRyaWJ1dGUodCl7cmV0dXJuIHRoaXMuX2QzbGluZSh0aGlzLl9jb21wdXRlQ29udHJvbFBvaW50cyh0KSl9X3VwZGF0ZVZpc2libGVGZ1BhdGhzU2VsKCl7dGhpcy5fdmlzaWJsZUZnUGF0aHNTZWw9dGhpcy5fZmdQYXRoc1NlbC5maWx0ZXIoIjpub3QoLmludmlzaWJsZS1wYXRoKSIpfX1jbGFzcyB4S3R7Y29uc3RydWN0b3IodCxlKXt0aGlzLnN2Zz1TdSh0KTtjb25zdCBuPTEwMCplKzEwKzEwO3RoaXMuc3ZnLmF0dHIoInZpZXdCb3giLGAwIDAgJHtufSAyNDBgKSx0aGlzLnN2Zy5hdHRyKCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwieE1pZFlNaWQiKSx0aGlzLnN2Zy5zdHlsZSgibWluLXdpZHRoIixuKyJweCIpLHRoaXMuc3ZnLnN0eWxlKCJtaW4taGVpZ2h0IiwiMjQwcHgiKSx0aGlzLndpZHRoPW4tMTAtMTAsdGhpcy5oZWlnaHQ9MjAwLHRoaXMuc3ZnRz10aGlzLnN2Zy5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLFdZdCgxMCwzMCkpfX1jbGFzcyB3S3R7Y29uc3RydWN0b3IodCxlLG4saSl7dGhpcy5fc3ZnUHJvcHM9dCx0aGlzLl9zY2hlbWE9ZSx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBDaGFuZ2VkQ0I9bix0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWRDQj1pLHRoaXMuX2F4ZXNDb2xsZWN0aW9uPW5ldyBfS3QodCxlLHRoaXMpLHRoaXMuX2xpbmVzQ29sbGVjdGlvbj1uZXcgYkt0KHQsZSx0aGlzLl9heGVzQ29sbGVjdGlvbiksdGhpcy5fc3ZnUHJvcHMuc3ZnLm9uKCJjbGljayIsKCgpPT50aGlzLm9uQ2xpY2soKSkpLm9uKCJtb3VzZW1vdmUgbW91c2VlbnRlciIsKCgpPT57Y29uc3RbdCxlXT1haCh0aGlzLl9zdmdQcm9wcy5zdmdHLm5vZGUoKSk7dGhpcy5vbk1vdXNlTW92ZWQodCxlKX0pKS5vbigibW91c2VsZWF2ZSIsKCgpPT50aGlzLm9uTW91c2VMZWF2ZSgpKSl9b25EcmFnU3RhcnQodCl7dGhpcy5fYXhlc0NvbGxlY3Rpb24uZHJhZ1N0YXJ0KHQpLHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5oaWRlQmFja2dyb3VuZExpbmVzKCl9b25EcmFnKHQpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLmRyYWcodCksdGhpcy5fbGluZXNDb2xsZWN0aW9uLnJlY29tcHV0ZUNvbnRyb2xQb2ludHMoZEt0LkZPUkVHUk9VTkQpfW9uRHJhZ0VuZCgpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLmRyYWdFbmQoNTAwKSx0aGlzLl9saW5lc0NvbGxlY3Rpb24ucmVjb21wdXRlQ29udHJvbFBvaW50cyhkS3QuRk9SRUdST1VORCw1MDApLHdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5yZWNvbXB1dGVDb250cm9sUG9pbnRzKGRLdC5CQUNLR1JPVU5EKSx0aGlzLl9saW5lc0NvbGxlY3Rpb24uc2hvd0JhY2tncm91bmRMaW5lcygpfSksNTAwKX1vbkJydXNoQ2hhbmdlZCh0LGUpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLmdldEF4aXNGb3JDb2xJbmRleCh0KS5zZXRCcnVzaFNlbGVjdGlvbihlKSx0aGlzLl9saW5lc0NvbGxlY3Rpb24ucmVjb21wdXRlRm9yZWdyb3VuZExpbmVzVmlzaWJpbGl0eSgpfW9uTW91c2VNb3ZlZCh0LGUpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi51cGRhdGVQZWFrZWRTZXNzaW9uR3JvdXAodGhpcy5fbGluZXNDb2xsZWN0aW9uLmZpbmRDbG9zZXN0U2Vzc2lvbkdyb3VwKHQsZSkpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cENoYW5nZWRDQih0aGlzLl9saW5lc0NvbGxlY3Rpb24ucGVha2VkU2Vzc2lvbkdyb3VwSGFuZGxlKCkuc2Vzc2lvbkdyb3VwKCkpfW9uTW91c2VMZWF2ZSgpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5pc051bGwoKXx8KHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5jbGVhclBlYWtlZFNlc3Npb25Hcm91cCgpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cENoYW5nZWRDQihudWxsKSl9b25DbGljaygpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5zZXNzaW9uR3JvdXAoKT09PXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpLnNlc3Npb25Hcm91cCgpP3RoaXMuX2xpbmVzQ29sbGVjdGlvbi51cGRhdGVTZWxlY3RlZFNlc3Npb25Hcm91cChuZXcgdkt0KTp0aGlzLl9saW5lc0NvbGxlY3Rpb24udXBkYXRlU2VsZWN0ZWRTZXNzaW9uR3JvdXAodGhpcy5fbGluZXNDb2xsZWN0aW9uLnBlYWtlZFNlc3Npb25Hcm91cEhhbmRsZSgpKSx0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWRDQih0aGlzLl9saW5lc0NvbGxlY3Rpb24uc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5zZXNzaW9uR3JvdXAoKSl9b25PcHRpb25zT3JTZXNzaW9uR3JvdXBzQ2hhbmdlZCh0LGUpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLnVwZGF0ZUF4ZXModCxlKTtjb25zdCBuPXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKSxpPXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpO3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5yZWRyYXcoZSx2b2lkIDAhPT10LmNvbG9yQnlDb2x1bW5JbmRleD90LmNvbHVtbnNbdC5jb2xvckJ5Q29sdW1uSW5kZXhdLmFic29sdXRlSW5kZXg6bnVsbCx0Lm1pbkNvbG9yLHQubWF4Q29sb3IpLG4uZXF1YWxzVG8odGhpcy5fbGluZXNDb2xsZWN0aW9uLnBlYWtlZFNlc3Npb25Hcm91cEhhbmRsZSgpKXx8dGhpcy5fcGVha2VkU2Vzc2lvbkdyb3VwQ2hhbmdlZENCKHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5zZXNzaW9uR3JvdXAoKSksaS5lcXVhbHNUbyh0aGlzLl9saW5lc0NvbGxlY3Rpb24uc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGUoKSl8fHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwQ2hhbmdlZENCKHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpLnNlc3Npb25Hcm91cCgpKX1zY2hlbWEoKXtyZXR1cm4gdGhpcy5fc2NoZW1hfX1sZXQgU0t0PWNsYXNzIGV4dGVuZHMoZXIoaWwoeWUpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc2VsZWN0ZWRTZXNzaW9uR3JvdXA9bnVsbCx0aGlzLmNsb3Nlc3RTZXNzaW9uR3JvdXA9bnVsbCx0aGlzLnJlZHJhd0NvdW50PTB9X29wdGlvbnNPclNlc3Npb25Hcm91cHNDaGFuZ2VkKCl7dmFyIHQ7aWYoIXRoaXMub3B0aW9ucylyZXR1cm47Y29uc3R7Y29uZmlndXJhdGlvbjplfT1udWxsIT09KHQ9dGhpcy5fcHJldk9wdGlvbnMpJiZ2b2lkIDAhPT10P3Q6e30se2NvbmZpZ3VyYXRpb246bn09dGhpcy5vcHRpb25zO2lmKHZvaWQgMD09PXRoaXMuX2ludGVyYWN0aW9uTWFuYWdlcnx8IVNlLmV4cG9ydHMuaXNFcXVhbChlLnNjaGVtYSxuLnNjaGVtYSl8fCFTZS5leHBvcnRzLmlzRXF1YWwoZS5jb2x1bW5zVmlzaWJpbGl0eSxuLmNvbHVtbnNWaXNpYmlsaXR5KSl7U3UodGhpcy4kLnN2Zykuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCk7Y29uc3QgdD1uZXcgeEt0KHRoaXMuJC5zdmcsbi5jb2x1bW5zVmlzaWJpbGl0eS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoKTt0aGlzLnNjb3BlU3VidHJlZSh0aGlzLiQuc3ZnLCEwKSx0aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXI9bmV3IHdLdCh0LG4uc2NoZW1hLCh0PT50aGlzLmNsb3Nlc3RTZXNzaW9uR3JvdXBDaGFuZ2VkKHQpKSwodD0+dGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWQodCkpKX10aGlzLl9jb21wdXRlVmFsaWRTZXNzaW9uR3JvdXBzKCksdGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uT3B0aW9uc09yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQodGhpcy5vcHRpb25zLHRoaXMuX3ZhbGlkU2Vzc2lvbkdyb3VwcyksdGhpcy5yZWRyYXdDb3VudCsrLHRoaXMuX3ByZXZPcHRpb25zPXRoaXMub3B0aW9uc31jbG9zZXN0U2Vzc2lvbkdyb3VwQ2hhbmdlZCh0KXt0aGlzLmNsb3Nlc3RTZXNzaW9uR3JvdXA9dH1zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWQodCl7dGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cD10fV9jb21wdXRlVmFsaWRTZXNzaW9uR3JvdXBzKCl7Y29uc3QgdD1YWXQ7aWYodm9pZCAwPT09dGhpcy5zZXNzaW9uR3JvdXBzKXJldHVybiB2b2lkKHRoaXMuX3ZhbGlkU2Vzc2lvbkdyb3Vwcz12b2lkIDApO2NvbnN0IGU9dGhpcy5vcHRpb25zLmNvbmZpZ3VyYXRpb24uc2NoZW1hO3RoaXMuX3ZhbGlkU2Vzc2lvbkdyb3Vwcz10aGlzLnNlc3Npb25Hcm91cHMuZmlsdGVyKChuPT57Zm9yKGxldCBpPTA7aTx0Lm51bUNvbHVtbnMoZSk7KytpKWlmKHRoaXMub3B0aW9ucy5jb25maWd1cmF0aW9uLmNvbHVtbnNWaXNpYmlsaXR5W2ldJiZ2b2lkIDA9PT10LmNvbHVtblZhbHVlQnlJbmRleChlLG4saSkpcmV0dXJuITE7cmV0dXJuITB9KSl9fTtTS3QudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGlkPSJjb250YWluZXIiPgogICAgICA8c3ZnIGlkPSJzdmciPjwvc3ZnPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAtLXRmLWhwYXJhbXMtcGFyYWxsZWwtY29vcmRzLXBsb3QtYXhpcy1zaGFkb3c6IDAgMXB4IDAgI2ZmZiwKICAgICAgICAgIDFweCAwIDAgI2ZmZiwgMCAtMXB4IDAgI2ZmZiwgLTFweCAwIDAgI2ZmZjsKICAgICAgfQogICAgICA6aG9zdCguZGFyay1tb2RlKSB7CiAgICAgICAgLS10Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy1wbG90LWF4aXMtc2hhZG93OiAwIDFweCAwICMwMDAsCiAgICAgICAgICAxcHggMCAwICMwMDAsIDAgLTFweCAwICMwMDAsIC0xcHggMCAwICMwMDA7CiAgICAgIH0KICAgICAgc3ZnIHsKICAgICAgICBmb250OiAxMHB4IHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5iYWNrZ3JvdW5kIHBhdGggewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiAjZGRkOwogICAgICAgIHNoYXBlLXJlbmRlcmluZzogY3Jpc3BFZGdlczsKICAgICAgfQoKICAgICAgLmZvcmVncm91bmQgcGF0aCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2Utb3BhY2l0eTogMC43OwogICAgICAgIHN0cm9rZS13aWR0aDogMTsKICAgICAgfQoKICAgICAgLyogV2lsbCBiZSBzZXQgb24gZm9yZWdyb3VuZCBwYXRocyB0aGF0IGFyZSBub3QgImNvbnRhaW5lZCIgaW4gdGhlIGN1cnJlbnQKICAgICAgICAgYXhlcyBicnVzaGVzLiBJZiBubyBicnVzaGVzIGFyZSBzZXQsIG5vIHBhdGggd2lsbCBoYXZlIHRoaXMgY2xhc3MuICovCiAgICAgIC5mb3JlZ3JvdW5kIC5pbnZpc2libGUtcGF0aCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogU3R5bGUgZm9yIHRoZSBwYXRoIGNsb3Nlc3QgdG8gdGhlIG1vdXNlIHBvaW50ZXIgKHR5cGljYWxseSB3aWxsIGJlY29tZQogICAgICB0aGUgc2VsZWN0ZWQgcGF0aCB3aGVuIHRoZSB1c2VyIGNsaWNrcykuICovCiAgICAgIC5mb3JlZ3JvdW5kIC5wZWFrZWQtcGF0aCB7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICB9CgogICAgICAvKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHBhdGggY2xhc3MuIFdlIHVzZSAhaW1wb3J0YW50IHRvIG92ZXJyaWRlIHRoZQogICAgICAgICBpbmxpbmUgc3R5bGUgdGhhdCBzZXRzIHRoZSByZWd1bGFyIGNvbG9yIG9mIGEgcGF0aC4gKi8KICAgICAgLmZvcmVncm91bmQgLnNlbGVjdGVkLXBhdGggewogICAgICAgIHN0cm9rZS13aWR0aDogMyAhaW1wb3J0YW50OwogICAgICAgIHN0cm9rZTogIzBmMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAjY29udGFpbmVyIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIHN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuYXhpcyB0ZXh0IHsKICAgICAgICB0ZXh0LXNoYWRvdzogdmFyKC0tdGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtcGxvdC1heGlzLXNoYWRvdyk7CiAgICAgICAgZmlsbDogY3VycmVudENvbG9yOwogICAgICAgIGN1cnNvcjogbW92ZTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxTS3QucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFNLdC5wcm90b3R5cGUsIm9wdGlvbnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFNLdC5wcm90b3R5cGUsInNlbGVjdGVkU2Vzc2lvbkdyb3VwIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxTS3QucHJvdG90eXBlLCJjbG9zZXN0U2Vzc2lvbkdyb3VwIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLFNLdC5wcm90b3R5cGUsInJlZHJhd0NvdW50Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxTS3QucHJvdG90eXBlLCJfdmFsaWRTZXNzaW9uR3JvdXBzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFNLdC5wcm90b3R5cGUsIl9pbnRlcmFjdGlvbk1hbmFnZXIiLHZvaWQgMCksdChbYSgib3B0aW9ucy4qIiwic2Vzc2lvbkdyb3Vwcy4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxTS3QucHJvdG90eXBlLCJfb3B0aW9uc09yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQiLG51bGwpLFNLdD10KFtpKCJ0Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy1wbG90IildLFNLdCk7bGV0IE1LdD1jbGFzcyBleHRlbmRzIHlle19jbG9zZXN0T3JTZWxlY3RlZCh0LGUpe3JldHVybiBudWxsIT09dD90OmV9fTtNS3QudGVtcGxhdGU9X2VgCiAgICA8IS0tIENvbnRyb2xzIGJlaGF2aW9yIG9mIHBhcmFsbGVsIGNvb3JkaW5hdGVzIHBsb3QKICAgICAgICAgb3V0cHV0cyBzZXQgb3B0aW9ucyB0byB0aGUgX29wdGlvbnMgcHJvcGVydHkuCiAgICAgIC0tPgogICAgPGhwYXJhbXMtc3BsaXQtbGF5b3V0IG9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI+CiAgICAgIDwhLS0gVGhlIHNjYWxlIGFuZCBjb2xvciBjb250cm9scy4gLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scwogICAgICAgIGlkPSJjb250cm9scyIKICAgICAgICBzbG90PSJjb250ZW50IgogICAgICAgIGNsYXNzPSJzZWN0aW9uIgogICAgICAgIGNvbmZpZ3VyYXRpb249IltbY29uZmlndXJhdGlvbl1dIgogICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICBvcHRpb25zPSJ7e19vcHRpb25zfX0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scz4KICAgICAgPCEtLSBUaGUgYWN0dWFsIHBhcmFsbGVsIGNvb3JkaW5hdGVzIHBsb3QgLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy1wbG90CiAgICAgICAgaWQ9InBsb3QiCiAgICAgICAgc2xvdD0iY29udGVudCIKICAgICAgICBjbGFzcz0ic2VjdGlvbiIKICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tzZXNzaW9uR3JvdXBzXV0iCiAgICAgICAgc2VsZWN0ZWQtc2Vzc2lvbi1ncm91cD0ie3tfc2VsZWN0ZWRHcm91cH19IgogICAgICAgIGNsb3Nlc3Qtc2Vzc2lvbi1ncm91cD0ie3tfY2xvc2VzdEdyb3VwfX0iCiAgICAgICAgb3B0aW9ucz0iW1tfb3B0aW9uc11dIgogICAgICA+CiAgICAgIDwvdGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtcGxvdD4KICAgICAgPHRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC12YWx1ZXMKICAgICAgICBpZD0idmFsdWVzIgogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgICAgc2Vzc2lvbi1ncm91cD0iW1tfY2xvc2VzdE9yU2VsZWN0ZWQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Nsb3Nlc3RHcm91cCwgX3NlbGVjdGVkR3JvdXApXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtdmFsdWVzPgogICAgICA8dGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLWRldGFpbHMKICAgICAgICBpZD0iZGV0YWlscyIKICAgICAgICBzbG90PSJjb250ZW50IgogICAgICAgIGNsYXNzPSJzZWN0aW9uIgogICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgIHNlc3Npb24tZ3JvdXA9IltbX3NlbGVjdGVkR3JvdXBdXSIKICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1tjb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWFdXSIKICAgICAgPgogICAgICA8L3RmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzPgogICAgPC9ocGFyYW1zLXNwbGl0LWxheW91dD4KCiAgICA8c3R5bGU+CiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CiAgICAgICN2YWx1ZXMgewogICAgICAgIGhlaWdodDogMTE1cHg7CiAgICAgIH0KICAgICAgI2RldGFpbHMgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE1LdC5wcm90b3R5cGUsImJhY2tlbmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTUt0LnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTUt0LnByb3RvdHlwZSwiY29uZmlndXJhdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sTUt0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSxNS3Q9dChbaSgidGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtdmlldyIpXSxNS3QpO2xldCBFS3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwPW51bGwsdGhpcy5jbG9zZXN0U2Vzc2lvbkdyb3VwPW51bGwsdGhpcy5fY29udGFpbmVyPW51bGwsdGhpcy5fc3ZnPW51bGwsdGhpcy53aWR0aD0wLHRoaXMuaGVpZ2h0PTAsdGhpcy5fYnJ1c2hlZENlbGxJbmRleD1udWxsLHRoaXMuX2JydXNoU2VsZWN0aW9uPW51bGx9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuX2NvbnRhaW5lcj10aGlzLiQuY29udGFpbmVyLHRoaXMuX3N2Zz1TdSh0aGlzLiQuc3ZnKSx0aGlzLl9yZWRyYXcoKX1fc2Vzc2lvbkdyb3Vwc0NoYW5nZWQoKXtudWxsIT09dGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cCYmKHRoaXMuc2VsZWN0ZWRTZXNzaW9uR3JvdXA9RFl0KHRoaXMuc2Vzc2lvbkdyb3Vwcyx0aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwLm5hbWUpfHxudWxsKSx0aGlzLl9yZWRyYXcoKX1fdmlzaWJsZVNjaGVtYUNoYW5nZWQoKXt0aGlzLl9icnVzaGVkQ2VsbEluZGV4PW51bGwsdGhpcy5fYnJ1c2hTZWxlY3Rpb249bnVsbCx0aGlzLl9yZWRyYXcoKX1fcmVkcmF3KCl7dGhpcy5kZWJvdW5jZSgiX3JlZHJhdyIsKCgpPT57Y29uc3QgdD1YWXQ7dGhpcy53aWR0aD1NYXRoLm1heCgxNTAqdC5udW1WaXNpYmxlQ29sdW1ucyh0aGlzLnZpc2libGVTY2hlbWEpLDEyMDApLHRoaXMuaGVpZ2h0PU1hdGgubWF4KDExMi41KnQubnVtVmlzaWJsZU1ldHJpY3ModGhpcy52aXNpYmxlU2NoZW1hKSw0ODApLHRoaXMuX2NvbnRhaW5lci5zdHlsZS53aWR0aD10aGlzLndpZHRoKyJweCIsdGhpcy5fY29udGFpbmVyLnN0eWxlLmhlaWdodD10aGlzLmhlaWdodCsicHgiLHRoaXMuX3N2Zy5hdHRyKCJ3aWR0aCIsdGhpcy53aWR0aCkuYXR0cigiaGVpZ2h0Iix0aGlzLmhlaWdodCksdGhpcy5fc3ZnLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpLHRoaXMuX2RyYXcoKX0pLDEwMCl9X2RyYXcoKXtjb25zdCB0PVhZdCxlPXRoaXM7aWYoIXRoaXMuc2Vzc2lvbkdyb3Vwc3x8MD09dGhpcy5zZXNzaW9uR3JvdXBzLmxlbmd0aHx8IXRoaXMudmlzaWJsZVNjaGVtYXx8MD09dGhpcy52aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zLmxlbmd0aClyZXR1cm47Y29uc3Qgbj16bCh0Lm51bVZpc2libGVDb2x1bW5zKGUudmlzaWJsZVNjaGVtYSkpLGk9emwodC5udW1WaXNpYmxlTWV0cmljcyhlLnZpc2libGVTY2hlbWEpKSxyPVRNKCkuZG9tYWluKG4pLnJhbmdlKFs4NSx0aGlzLndpZHRoLTEtNV0pLnBhZGRpbmdJbm5lciguMSksbz1UTSgpLmRvbWFpbihpKS5yYW5nZShbdGhpcy5oZWlnaHQtMS01LTUwLDVdKS5wYWRkaW5nSW5uZXIoLjEpLGE9ci5iYW5kd2lkdGgoKSxzPW8uYmFuZHdpZHRoKCksbD1uLm1hcCgodD0+ZS5fY2VsbFNjYWxlKHQsWzAsYS0xXSkpKSxjPWkubWFwKChuPT5lLl9jZWxsU2NhbGUobit0Lm51bVZpc2libGVIUGFyYW1zKGUudmlzaWJsZVNjaGVtYSksW3MtMSwwXSkpKSx1PXRoaXMuX3N2Zy5zZWxlY3RBbGwoIi54LWF4aXMiKS5kYXRhKG4pLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgieC1heGlzIiwhMCkuYXR0cigidHJhbnNmb3JtIiwoZT0+dC50cmFuc2xhdGVTdHIocihlKSwwKSkpO2Z1bmN0aW9uIGgodCl7cmV0dXJuIngtYXhpcy1jbGlwLXBhdGgtIit0fWZ1bmN0aW9uIGQodCl7cmV0dXJuIngtbGFiZWwtY2xpcC1wYXRoLSIrdH11LmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsaCkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsLTUpLmF0dHIoInkiLDApLmF0dHIoIndpZHRoIixhKzEwKS5hdHRyKCJoZWlnaHQiLGUuaGVpZ2h0LTI1KSx1LmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsZCkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsMCkuYXR0cigieSIsZS5oZWlnaHQtMjUpLmF0dHIoIndpZHRoIixhKS5hdHRyKCJoZWlnaHQiLDI1KSx1LmFwcGVuZCgiZyIpLmF0dHIoImNsaXAtcGF0aCIsKHQ9PiJ1cmwoIyIraCh0KSsiKSIpKS5lYWNoKChmdW5jdGlvbih0KXtTdSh0aGlzKS5jYWxsKGcsb2MobFt0XSkudGlja1NpemUoZS5oZWlnaHQtNTApLGEsNDAsZS5vcHRpb25zLmNvbHVtbnNbdF0uc2NhbGUpfSkpLHUuYXBwZW5kKCJnIikuY2xhc3NlZCgieC1heGlzLWxhYmVsIiwhMCkuYXR0cigiY2xpcC1wYXRoIiwodD0+InVybCgjIitkKHQpKyIpIikpLmFwcGVuZCgidGV4dCIpLmF0dHIoInRleHQtYW5jaG9yIiwibWlkZGxlIikuYXR0cigieCIsYS8yKS5hdHRyKCJ5IixlLmhlaWdodC0xLTEyLjUpLnRleHQoKG49PnQuc2NoZW1hVmlzaWJsZUNvbHVtbk5hbWUoZS52aXNpYmxlU2NoZW1hLG4pKSkuYXBwZW5kKCJ0aXRsZSIpLnRleHQoKG49PnQuc2NoZW1hVmlzaWJsZUNvbHVtbk5hbWUoZS52aXNpYmxlU2NoZW1hLG4pKSk7Y29uc3QgcD10aGlzLl9zdmcuc2VsZWN0QWxsKCIueS1heGlzIikuZGF0YShpKS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInktYXhpcyIsITApLmF0dHIoInRyYW5zZm9ybSIsKG49PnQudHJhbnNsYXRlU3RyKGUud2lkdGgtMSxvKG4pKSkpO2Z1bmN0aW9uIGYodCl7cmV0dXJuInktYXhpcy1jbGlwLXBhdGgtIit0fWZ1bmN0aW9uIG0odCl7cmV0dXJuInktbGFiZWwtY2xpcC1wYXRoLSIrdH1mdW5jdGlvbiBnKHQsZSxuLGkscil7Y29uc3Qgbz1NYXRoLmZsb29yKG4vaSksYT1lLnNjYWxlKCk7aWYoIlFVQU5USUxFIj09PXIpe2xldCB0PWEucXVhbnRpbGVzKCk7Y29uc3Qgbj1NYXRoLmNlaWwodC5sZW5ndGgvbyk7dD16bCgwLHQubGVuZ3RoLG4pLm1hcCgoZT0+dFtlXSkpLGUudGlja1ZhbHVlcyh0KS50aWNrRm9ybWF0KG15KCItLjJnIikpfSJMSU5FQVIiIT09ciYmIkxPRyIhPT1yfHxlLnRpY2tzKG8pLHQuY2FsbChlKSx0LnNlbGVjdEFsbCgiLmRvbWFpbiIpLnJlbW92ZSgpLHQuc2VsZWN0QWxsKCIudGljayBsaW5lIikuYXR0cigic3Ryb2tlIiwiI2RkZCIpfXAuYXBwZW5kKCJjbGlwUGF0aCIpLmF0dHIoImlkIixmKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4IiwtKGUud2lkdGgtNDAtMSkpLmF0dHIoInkiLC01KS5hdHRyKCJ3aWR0aCIsZS53aWR0aC00MCkuYXR0cigiaGVpZ2h0IixzKzEwKSxwLmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsbSkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsLShlLndpZHRoLTEpKS5hdHRyKCJ5IiwwKS5hdHRyKCJ3aWR0aCIsNDApLmF0dHIoImhlaWdodCIscykscC5hcHBlbmQoImciKS5hdHRyKCJjbGlwLXBhdGgiLCh0PT4idXJsKCMiK2YodCkrIikiKSkuZWFjaCgoZnVuY3Rpb24obil7U3UodGhpcykuY2FsbChnLGFjKGNbbl0pLnRpY2tTaXplKGUud2lkdGgtODApLHMsMjAsZS5vcHRpb25zLmNvbHVtbnNbbit0Lm51bVZpc2libGVIUGFyYW1zKGUudmlzaWJsZVNjaGVtYSldLnNjYWxlKX0pKSxwLmFwcGVuZCgiZyIpLmNsYXNzZWQoInktYXhpcy1sYWJlbCIsITApLmF0dHIoImNsaXAtcGF0aCIsKHQ9PiJ1cmwoIyIrbSh0KSsiKSIpKS5hcHBlbmQoInRleHQiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmF0dHIoIngiLC0oZS53aWR0aC0yMC0xKSkuYXR0cigieSIscy8yKS5hdHRyKCJ0cmFuc2Zvcm0iLHQucm90YXRlU3RyKDkwLC0oZS53aWR0aC0yMC0xKSxzLzIpKS50ZXh0KChuPT50Lm1ldHJpY05hbWUoZS52aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zW25dKSkpLmFwcGVuZCgidGl0bGUiKS50ZXh0KChuPT50Lm1ldHJpY05hbWUoZS52aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zW25dKSkpO2NvbnN0IF89dGhpcy5fc3ZnLnNlbGVjdEFsbCgiLmNlbGwiKS5kYXRhKFRsKG4saSkpLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2VsbCIsITApLmF0dHIoInRyYW5zZm9ybSIsKChbZSxuXSk9PnQudHJhbnNsYXRlU3RyKHIoZSksbyhuKSkpKTtfLmFwcGVuZCgiZyIpLmNsYXNzZWQoImZyYW1lIiwhMCkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsLTUpLmF0dHIoInkiLC01KS5hdHRyKCJ3aWR0aCIsYSsxMCkuYXR0cigiaGVpZ2h0IixzKzEwKS5hdHRyKCJzdHJva2UiLCIjMDAwIikuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIik7bGV0IHk9bnVsbDt2b2lkIDAhPT1lLm9wdGlvbnMuY29sb3JCeUNvbHVtbkluZGV4JiYoeT1WTSgpLmRvbWFpbih0aGlzLl9jb2xFeHRlbnQodGhpcy5vcHRpb25zLmNvbG9yQnlDb2x1bW5JbmRleCkpLnJhbmdlKFt0aGlzLm9wdGlvbnMubWluQ29sb3IsdGhpcy5vcHRpb25zLm1heENvbG9yXSkuaW50ZXJwb2xhdGUoY3ApKTtjb25zdCB2PXZvaWQgMD09PWUub3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXg/KCk9PiJyZWQiOih7c2Vzc2lvbkdyb3VwOnR9KT0+eSh0aGlzLl9jb2xWYWx1ZSh0LGUub3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXgpKTtmdW5jdGlvbiBiKHQsbil7cmV0dXJuIGxbbl0oZS5fY29sVmFsdWUodCxuKSl9ZnVuY3Rpb24geCh0LG4pe3JldHVybiBjW25dKGUuX21ldHJpY1ZhbHVlKHQsbikpfWNvbnN0W3csUyxNXT0oZnVuY3Rpb24gRSh0LHIpe2NvbnN0IG89dC5zZWxlY3RBbGwoIi5kYXRhLW1hcmtlciIpLmRhdGEoKChbdCxuXSk9PmUuc2Vzc2lvbkdyb3Vwcy5maWx0ZXIoKGk9PnZvaWQgMCE9PWUuX2NvbFZhbHVlKGksdCkmJnZvaWQgMCE9PWUuX21ldHJpY1ZhbHVlKGksbikpKS5tYXAoKGU9Pih7Y29sOnQsbWV0cmljOm4sc2Vzc2lvbkdyb3VwOmUseDpiKGUsdCkseTp4KGUsbiksc2Vzc2lvbkdyb3VwTWFya2VyczpudWxsfSkpKSkpLmVudGVyKCkuYXBwZW5kKCJjaXJjbGUiKS5jbGFzc2VkKCJkYXRhLW1hcmtlciIsITApLmF0dHIoImN4IiwoKHt4OnR9KT0+dCkpLmF0dHIoImN5IiwoKHt5OnR9KT0+dCkpLmF0dHIoInIiLDIpLmF0dHIoImZpbGwiLHIpLGE9bmV3IE1hcDtlLnNlc3Npb25Hcm91cHMuZm9yRWFjaCgodD0+e2Euc2V0KHQsW10pfSkpLG8uZWFjaCgoZnVuY3Rpb24odCl7YS5nZXQodC5zZXNzaW9uR3JvdXApLnB1c2godGhpcyl9KSksby5lYWNoKCh0PT57Y29uc3QgZT1hLmdldCh0LnNlc3Npb25Hcm91cCk7dC5zZXNzaW9uR3JvdXBNYXJrZXJzPW5ldyBTZXQoZSl9KSk7Y29uc3Qgcz1uLm1hcCgodD0+aS5tYXAoKGU9Pm8uZmlsdGVyKChuPT5uLmNvbD09dCYmbi5tZXRyaWM9PWUpKSkpKSk7cmV0dXJuW28scyxhXX0pKF8uYXBwZW5kKCJnIiksdiksVD1uLm1hcCgodD0+aS5tYXAoKGU9PihmdW5jdGlvbiBuKHQsZSl7Y29uc3Qgbj1bXTtyZXR1cm4gU1t0XVtlXS5lYWNoKChmdW5jdGlvbigpe24ucHVzaCh0aGlzKX0pKSxOXygpLngoKHQ9PlN1KHQpLmRhdHVtKCkueCkpLnkoKHQ9PlN1KHQpLmRhdHVtKCkueSkpLmFkZEFsbChuKX0pKHQsZSkpKSkpO2xldCBDPW51bGw7TigpJiYoQz1fLmZpbHRlcigodD0+U2UuZXhwb3J0cy5pc0VxdWFsKHQsZS5fYnJ1c2hlZENlbGxJbmRleCkpKSxjb25zb2xlLmFzc2VydCgxPT1DLnNpemUoKSxDKSk7bGV0IEE9bmV3IFNldCh3Lm5vZGVzKCkpO2Z1bmN0aW9uIGsoKXtsZXQgbj1uZXcgU2V0KHcubm9kZXMoKSk7KGZ1bmN0aW9uIGkoKXtyZXR1cm4hTigpfHxlLl9icnVzaFNlbGVjdGlvblswXVswXT09PWUuX2JydXNoU2VsZWN0aW9uWzFdWzBdfHxlLl9icnVzaFNlbGVjdGlvblswXVsxXT09PWUuX2JydXNoU2VsZWN0aW9uWzFdWzFdfSkoKXx8KG49KGZ1bmN0aW9uIHIoZSxuKXtjb25zb2xlLmFzc2VydChudWxsIT09ZSksY29uc29sZS5hc3NlcnQobnVsbCE9PW4pO2NvbnN0W2kscl09ZSxvPW5ldyBTZXQ7cmV0dXJuIHQucXVhZFRyZWVWaXNpdFBvaW50c0luUmVjdChUW2ldW3JdLG5bMF1bMF0sblswXVsxXSxuWzFdWzBdLG5bMV1bMV0sKHQ9PntTdSh0KS5kYXR1bSgpLnNlc3Npb25Hcm91cE1hcmtlcnMuZm9yRWFjaCgodD0+e28uYWRkKHQpfSkpfSkpLG99KShlLl9icnVzaGVkQ2VsbEluZGV4LGUuX2JydXNoU2VsZWN0aW9uKSksc2goQXJyYXkuZnJvbSh0LmZpbHRlclNldChuLCh0PT4hQS5oYXModCkpKSkpLmF0dHIoImZpbGwiLHYpLHNoKEFycmF5LmZyb20odC5maWx0ZXJTZXQoQSwodD0+IW4uaGFzKHQpKSkpKS5hdHRyKCJmaWxsIiwiI2RkZCIpLEE9bn1rKCk7Y29uc3QgTD1KbSgpLmV4dGVudChbWy00LC00XSxbYS0xKzUtMSxzLTErNS0xXV0pLm9uKCJzdGFydCIsKGZ1bmN0aW9uKCl7TigpJiZDLm5vZGUoKSE9dGhpcyYmTC5tb3ZlKEMsbnVsbCksUCh0aGlzKX0pKS5vbigiYnJ1c2giLChmdW5jdGlvbigpe1AodGhpcyl9KSkub24oImVuZCIsKGZ1bmN0aW9uKCl7UCh0aGlzKX0pKTtmdW5jdGlvbiBQKHQpe2NvbnN0IG49S20odCk7IU4oKSYmbnVsbD09PW58fE4oKSYmdD09PUMubm9kZSgpJiZTZS5leHBvcnRzLmlzRXF1YWwobixlLl9icnVzaFNlbGVjdGlvbil8fChlLl9icnVzaFNlbGVjdGlvbj1uLG51bGwhPT1uPyhDPVN1KHQpLGUuX2JydXNoZWRDZWxsSW5kZXg9Qy5kYXR1bSgpKTooQz1udWxsLGUuX2JydXNoZWRDZWxsSW5kZXg9bnVsbCksaygpKX1mdW5jdGlvbiBOKCl7cmV0dXJuIG51bGwhPT1lLl9icnVzaGVkQ2VsbEluZGV4JiZudWxsIT09ZS5fYnJ1c2hTZWxlY3Rpb259Xy5jYWxsKEwpLE4oKSYmTC5tb3ZlKEMsZS5fYnJ1c2hTZWxlY3Rpb24pO2xldCBJPW51bGwsUj1udWxsO251bGwhPT10aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwJiYoUj1zaChNLmdldCh0aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwKSkuY2xhc3NlZCgic2VsZWN0ZWQtbWFya2VyIiwhMCkpLF8ub24oImNsaWNrIiwoZnVuY3Rpb24oKXtjb25zdCB0PUk9PT1SP251bGw6STtpZih0PT09UilyZXR1cm47bnVsbCE9PVImJlIuY2xhc3NlZCgic2VsZWN0ZWQtbWFya2VyIiwhMSksUj10LG51bGwhPT1SJiZSLmNsYXNzZWQoInNlbGVjdGVkLW1hcmtlciIsITApO2NvbnN0IG49bnVsbD09PVI/bnVsbDpSLmRhdHVtKCkuc2Vzc2lvbkdyb3VwO2Uuc2VsZWN0ZWRTZXNzaW9uR3JvdXA9bn0pKS5vbigibW91c2Vtb3ZlIG1vdXNlZW50ZXIiLChmdW5jdGlvbihbbixpXSl7Y29uc3RbcixvXT1haCh0aGlzKSxhPShmdW5jdGlvbiBzKGUsbixpLHIsbyl7bGV0IGE9MS8wLHM9bnVsbDtyZXR1cm4gdC5xdWFkVHJlZVZpc2l0UG9pbnRzSW5EaXNrKFRbZV1bbl0saSxyLG8sKCh0LGUpPT57aWYoQS5oYXModCkmJmU8YSl7Y29uc3Qgbj1TdSh0KS5kYXR1bSgpO2E9ZSxzPW4uc2Vzc2lvbkdyb3VwfX0pKSxudWxsPT09cz9udWxsOnNoKE0uZ2V0KHMpKX0pKG4saSxyLG8sMjApO0khPT1hJiYobnVsbCE9PUkmJkkuY2xhc3NlZCgiY2xvc2VzdC1tYXJrZXIiLCExKSxJPWEsbnVsbCE9PUk/KEkuY2xhc3NlZCgiY2xvc2VzdC1tYXJrZXIiLCEwKSxlLmNsb3Nlc3RTZXNzaW9uR3JvdXA9SS5kYXR1bSgpLnNlc3Npb25Hcm91cCk6ZS5jbG9zZXN0U2Vzc2lvbkdyb3VwPW51bGwpfSkpLm9uKCJtb3VzZWxlYXZlIiwoZnVuY3Rpb24oW3Qsbl0pe251bGwhPT1JJiYoSS5jbGFzc2VkKCJjbG9zZXN0LW1hcmtlciIsITEpLEk9bnVsbCxlLmNsb3Nlc3RTZXNzaW9uR3JvdXA9bnVsbCl9KSksdGhpcy5fc3ZnLnNlbGVjdEFsbCgiKiIpLmNsYXNzZWQoInRmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC1wbG90IiwhMCl9X2NlbGxTY2FsZSh0LGUpe2NvbnN0IG49dGhpcy5fY29sRXh0ZW50KHQpLGk9Vk0oKS5kb21haW4obikucmFuZ2UoZSk7aWYoIkxJTkVBUiI9PT10aGlzLm9wdGlvbnMuY29sdW1uc1t0XS5zY2FsZSlyZXR1cm4gaTtpZigiTE9HIj09PXRoaXMub3B0aW9ucy5jb2x1bW5zW3RdLnNjYWxlKXJldHVybiBuWzBdPD0wJiZuWzFdPj0wP2k6S00oKS5kb21haW4obikucmFuZ2UoZSk7aWYoIlFVQU5USUxFIj09PXRoaXMub3B0aW9ucy5jb2x1bW5zW3RdLnNjYWxlKXtjb25zdCBuPShlWzFdLWVbMF0pLzE5LGk9emwoMjApLm1hcCgodD0+ZVswXStuKnQpKTtyZXR1cm4gb0UoKS5kb21haW4oU2UuZXhwb3J0cy51bmlxKHRoaXMuc2Vzc2lvbkdyb3Vwcy5tYXAoKGU9PnRoaXMuX2NvbFZhbHVlKGUsdCkpKSkpLnJhbmdlKGkpfWlmKCJOT05fTlVNRVJJQyI9PT10aGlzLm9wdGlvbnMuY29sdW1uc1t0XS5zY2FsZSlyZXR1cm4gQU0oKS5kb21haW4oU2UuZXhwb3J0cy51bmlxKHRoaXMuc2Vzc2lvbkdyb3Vwcy5tYXAoKGU9PnRoaXMuX2NvbFZhbHVlKGUsdCkpKS5zb3J0KCkpKS5yYW5nZShlKS5wYWRkaW5nKC4xKTt0aHJvdyJVbmtub3duIHNjYWxlIGZvciBjb2x1bW46ICIrdCsiLiBvcHRpb25zOiAiK3RoaXMub3B0aW9uc31fY29sVmFsdWUodCxlKXtyZXR1cm4gRll0KHRoaXMudmlzaWJsZVNjaGVtYSx0LGUpfV9tZXRyaWNWYWx1ZSh0LGUpe3JldHVybiBIWXQodGhpcy52aXNpYmxlU2NoZW1hLHQsZSl9X2NvbEV4dGVudCh0KXtyZXR1cm4gell0KHRoaXMudmlzaWJsZVNjaGVtYSx0aGlzLnNlc3Npb25Hcm91cHMsdCl9fTtFS3QudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGlkPSJjb250YWluZXIiPgogICAgICA8c3ZnIGlkPSJzdmciPjwvc3ZnPgogICAgPC9kaXY+CgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgc3ZnIHsKICAgICAgICBmb250OiAxMHB4IHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIHRleHQgewogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLmZyYW1lIHJlY3QgewogICAgICAgIHN0cm9rZTogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAvKiBUaGUgY2xvc2VzdCBkYXRhIHBvaW50IG1hcmtlciB0byB0aGUgbW91c2UgcG9pbnRlci4gV2UgdXNlICFpbXBvcnRhbnQKICAgICAgICAgdG8gb3ZlcnJpZGUgdGhlIGlubGluZSBzdHlsZSB0aGF0IHNldHMgdGhlIHJlZ3VsYXIgc3R5bGUgb2YgYSBtYXJrZXIuCiAgICAgICovCiAgICAgIC5jbG9zZXN0LW1hcmtlciB7CiAgICAgICAgcjogNiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAvKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGEgcG9pbnQgbWFya2VyLiBXZSB1c2UgIWltcG9ydGFudCB0bwogICAgICAgICBvdmVycmlkZSB0aGUgaW5saW5lIHN0eWxlIHRoYXQgc2V0cyB0aGUgcmVndWxhciBzdHlsZSBvZiBhIG1hcmtlci4gKi8KICAgICAgLnNlbGVjdGVkLW1hcmtlciB7CiAgICAgICAgcjogNiAhaW1wb3J0YW50OwogICAgICAgIGZpbGw6ICMwZjAgIWltcG9ydGFudDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEVLdC5wcm90b3R5cGUsInZpc2libGVTY2hlbWEiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLEVLdC5wcm90b3R5cGUsInNlc3Npb25Hcm91cHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRUt0LnByb3RvdHlwZSwib3B0aW9ucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRUt0LnByb3RvdHlwZSwic2VsZWN0ZWRTZXNzaW9uR3JvdXAiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEVLdC5wcm90b3R5cGUsImNsb3Nlc3RTZXNzaW9uR3JvdXAiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsSFRNTEVsZW1lbnQpXSxFS3QucHJvdG90eXBlLCJfY29udGFpbmVyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEVLdC5wcm90b3R5cGUsIl9zdmciLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sRUt0LnByb3RvdHlwZSwid2lkdGgiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sRUt0LnByb3RvdHlwZSwiaGVpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEVLdC5wcm90b3R5cGUsIl9icnVzaGVkQ2VsbEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEVLdC5wcm90b3R5cGUsIl9icnVzaFNlbGVjdGlvbiIsdm9pZCAwKSx0KFthKCJzZXNzaW9uR3JvdXBzLioiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEVLdC5wcm90b3R5cGUsIl9zZXNzaW9uR3JvdXBzQ2hhbmdlZCIsbnVsbCksdChbYSgidmlzaWJsZVNjaGVtYS4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxFS3QucHJvdG90eXBlLCJfdmlzaWJsZVNjaGVtYUNoYW5nZWQiLG51bGwpLHQoW2EoIm9wdGlvbnMuKiIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sRUt0LnByb3RvdHlwZSwiX3JlZHJhdyIsbnVsbCksRUt0PXQoW2koInRmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC1wbG90IildLEVLdCk7bGV0IFRLdD1jbGFzcyBleHRlbmRzIHlle19jbG9zZXN0T3JTZWxlY3RlZCh0LGUpe3JldHVybiBudWxsIT09dD90OmV9fTtUS3QudGVtcGxhdGU9X2VgCiAgICA8aHBhcmFtcy1zcGxpdC1sYXlvdXQgb3JpZW50YXRpb249InZlcnRpY2FsIj4KICAgICAgPCEtLSBDb250cm9scyBiZWhhdmlvciBvZiB0aGUgc2NhdHRlciBwbG90IG1hdHJpeAogICAgICAgICAgICAgb3V0cHV0cyB0aGUgY29uZmlndXJlZCBvcHRpb25zIHRvIHRoZSBfb3B0aW9ucyBwcm9wZXJ0eS4gLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scwogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgaWQ9ImNvbnRyb2xzIgogICAgICAgIGNvbmZpZ3VyYXRpb249IltbY29uZmlndXJhdGlvbl1dIgogICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICBvcHRpb25zPSJ7e19vcHRpb25zfX0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scz4KICAgICAgPCEtLSBUaGUgYWN0dWFsIHNjYXR0ZXIgcGxvdCBtYXRyaXggLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXNjYXR0ZXItcGxvdC1tYXRyaXgtcGxvdAogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgaWQ9InBsb3QiCiAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgICAgc2Vzc2lvbi1ncm91cHM9Iltbc2Vzc2lvbkdyb3Vwc11dIgogICAgICAgIHNlbGVjdGVkLXNlc3Npb24tZ3JvdXA9Int7X3NlbGVjdGVkR3JvdXB9fSIKICAgICAgICBjbG9zZXN0LXNlc3Npb24tZ3JvdXA9Int7X2Nsb3Nlc3RHcm91cH19IgogICAgICAgIG9wdGlvbnM9IltbX29wdGlvbnNdXSIKICAgICAgPgogICAgICA8L3RmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC1wbG90PgogICAgICA8dGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLXZhbHVlcwogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgaWQ9InZhbHVlcyIKICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1tjb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWFdXSIKICAgICAgICBzZXNzaW9uLWdyb3VwPSJbW19jbG9zZXN0T3JTZWxlY3RlZCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Nsb3Nlc3RHcm91cCwgX3NlbGVjdGVkR3JvdXApXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtdmFsdWVzPgogICAgICA8IS0tIFNob3dzIHNlc3Npb24gZ3JvdXAgZGV0YWlscyBmb3IgdGhlIGNsaWNrZWQgbWFya2VyLiAtLT4KICAgICAgPHRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzCiAgICAgICAgc2xvdD0iY29udGVudCIKICAgICAgICBjbGFzcz0ic2VjdGlvbiIKICAgICAgICBpZD0iZGV0YWlscyIKICAgICAgICBiYWNrZW5kPSJbW2JhY2tlbmRdXSIKICAgICAgICBleHBlcmltZW50LW5hbWU9IltbZXhwZXJpbWVudE5hbWVdXSIKICAgICAgICBzZXNzaW9uLWdyb3VwPSJbW19zZWxlY3RlZEdyb3VwXV0iCiAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtZGV0YWlscz4KICAgIDwvaHBhcmFtcy1zcGxpdC1sYXlvdXQ+CiAgICA8c3R5bGU+CiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CiAgICAgICNjb250cm9scyB7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWF4LWhlaWdodDogZml0LWNvbnRlbnQ7CiAgICAgIH0KICAgICAgI3Bsb3QgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBmbGV4LWJhc2lzOiBhdXRvOwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG1heC1oZWlnaHQ6IGZpdC1jb250ZW50OwogICAgICB9CiAgICAgICN2YWx1ZXMgewogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmbGV4LWJhc2lzOiBhdXRvOwogICAgICAgIGhlaWdodDogMTE1cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDsKICAgICAgfQogICAgICAjZGV0YWlscyB7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgICAgIGZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWF4LWhlaWdodDogZml0LWNvbnRlbnQ7CiAgICAgIH0KICAgICAgdmFhZGluLXNwbGl0LWxheW91dCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVEt0LnByb3RvdHlwZSwiYmFja2VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxUS3QucHJvdG90eXBlLCJleHBlcmltZW50TmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxUS3QucHJvdG90eXBlLCJjb25maWd1cmF0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxUS3QucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApLFRLdD10KFtpKCJ0Zi1ocGFyYW1zLXNjYXR0ZXItcGxvdC1tYXRyaXgtdmlldyIpXSxUS3QpO2xldCBDS3Q9Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fc2VsZWN0ZWRUYWI9MH19O0NLdC50ZW1wbGF0ZT1fZWAKICAgIDxwYXBlci1oZWFkZXItcGFuZWw+CiAgICAgIDxwYXBlci10b29sYmFyIHNsb3Q9ImhlYWRlciIgY2xhc3M9InRhYi1iYXIiPgogICAgICAgIDxwYXBlci10YWJzIHNlbGVjdGVkPSJ7e19zZWxlY3RlZFRhYn19IiBzbG90PSJ0b3AiPgogICAgICAgICAgPCEtLSB2aWV3LWlkIGNhbiBiZSB1c2VkIGJ5IGludGVncmF0aW9uIHRlc3RzIHRvIGxvY2F0ZSBhIHRhYi4KICAgICAgICAgICAgICAgSXQgc2hvdWxkIGJlIHRoZSBuYW1lIG9mIHRoZSByb290IGVsZW1lbnQgaW1wbGVtZW50aW5nIHRoZSB2aWV3CiAgICAgICAgICAgICAgIHdpdGhvdXQgdGhlICd0Zi1ocGFyYW1zLScgcHJlZml4LiAtLT4KICAgICAgICAgIDxwYXBlci10YWIgdmlldy1pZD0idGFibGUtdmlldyI+IFRBQkxFIFZJRVcgPC9wYXBlci10YWI+CiAgICAgICAgICA8cGFwZXItdGFiIHZpZXctaWQ9InBhcmFsbGVsLWNvb3Jkcy12aWV3Ij4KICAgICAgICAgICAgUEFSQUxMRUwgQ09PUkRJTkFURVMgVklFVwogICAgICAgICAgPC9wYXBlci10YWI+CiAgICAgICAgICA8cGFwZXItdGFiIHZpZXctaWQ9InNjYXR0ZXItcGxvdC1tYXRyaXgtdmlldyI+CiAgICAgICAgICAgIFNDQVRURVIgUExPVCBNQVRSSVggVklFVwogICAgICAgICAgPC9wYXBlci10YWI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWxwLWFuZC1mZWVkYmFjayI+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tidWdSZXBvcnRVcmxdXSI+CiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWYkPSJbW2J1Z1JlcG9ydFVybF1dIgogICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiCiAgICAgICAgICAgICAgICByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICAgICAgICBpZD0iYnVnLXJlcG9ydCIKICAgICAgICAgICAgICAgICAgcmFpc2VkCiAgICAgICAgICAgICAgICAgIHRpdGxlPSJTZW5kIGEgYnVnIHJlcG9ydCBvciBmZWF0dXJlIHJlcXVlc3QiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIEJ1ZyBSZXBvcnQgLyBGZWF0dXJlIFJlcXVlc3QKICAgICAgICAgICAgICAgIDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2hlbHBVcmxdXSI+CiAgICAgICAgICAgICAgPGEgaHJlZiQ9IltbaGVscFVybF1dIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj4KICAgICAgICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICAgICAgICBpY29uPSJoZWxwLW91dGxpbmUiCiAgICAgICAgICAgICAgICAgIHRpdGxlPSJWaWV3IGRvY3VtZW50YXRpb24iCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvcGFwZXItdGFicz4KICAgICAgPC9wYXBlci10b29sYmFyPgogICAgICA8aXJvbi1wYWdlcyBzZWxlY3RlZD0iW1tfc2VsZWN0ZWRUYWJdXSIgY2xhc3M9ImZpdCB0YWItdmlldyI+CiAgICAgICAgPGRpdiBpZD0iMCIgY2xhc3M9InRhYiI+CiAgICAgICAgICA8dGYtaHBhcmFtcy10YWJsZS12aWV3CiAgICAgICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgICAgICBleHBlcmltZW50LW5hbWU9IltbZXhwZXJpbWVudE5hbWVdXSIKICAgICAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICAgICAgZW5hYmxlLXNob3ctbWV0cmljcwogICAgICAgICAgPgogICAgICAgICAgPC90Zi1ocGFyYW1zLXRhYmxlLXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0iMSIgY2xhc3M9InRhYiI+CiAgICAgICAgICA8dGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtdmlldwogICAgICAgICAgICBiYWNrZW5kPSJbW2JhY2tlbmRdXSIKICAgICAgICAgICAgZXhwZXJpbWVudC1uYW1lPSJbW2V4cGVyaW1lbnROYW1lXV0iCiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249IltbY29uZmlndXJhdGlvbl1dIgogICAgICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tzZXNzaW9uR3JvdXBzXV0iCiAgICAgICAgICA+CiAgICAgICAgICA8L3RmLWhwYXJhbXMtcGFyYWxsZWwtY29vcmRzLXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0iMiIgY2xhc3M9InRhYiI+CiAgICAgICAgICA8dGYtaHBhcmFtcy1zY2F0dGVyLXBsb3QtbWF0cml4LXZpZXcKICAgICAgICAgICAgYmFja2VuZD0iW1tiYWNrZW5kXV0iCiAgICAgICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgICAgICBjb25maWd1cmF0aW9uPSJbW2NvbmZpZ3VyYXRpb25dXSIKICAgICAgICAgICAgc2Vzc2lvbi1ncm91cHM9Iltbc2Vzc2lvbkdyb3Vwc11dIgogICAgICAgICAgPgogICAgICAgICAgPC90Zi1ocGFyYW1zLXNjYXR0ZXItcGxvdC1tYXRyaXgtdmlldz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9pcm9uLXBhZ2VzPgogICAgPC9wYXBlci1oZWFkZXItcGFuZWw+CgogICAgPHN0eWxlPgogICAgICAudGFiLXZpZXcgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgICAudGFiLWJhciB7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKAogICAgICAgICAgLS10Yi10b29sYmFyLWJhY2tncm91bmQtY29sb3IsCiAgICAgICAgICB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKQogICAgICAgICk7CiAgICAgIH0KICAgICAgLnRhYiB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIHBhcGVyLXRhYnMgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgLS1wYXBlci10YWJzLXNlbGVjdGlvbi1iYXItY29sb3I6IHdoaXRlOwogICAgICAgIC0tcGFwZXItdGFicy1jb250ZW50OiB7CiAgICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgICAgICB9CiAgICAgIH0KICAgICAgdGYtaHBhcmFtcy10YWJsZS12aWV3IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLmhlbHAtYW5kLWZlZWRiYWNrIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgLyogRW5zdXJlIHRoYXQgaWNvbnMgc3RheSBhbGlnbmVkICovCiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQogICAgICAjYnVnLXJlcG9ydCB7CiAgICAgICAgYm9yZGVyOiBzb2xpZCBibGFjazsKICAgICAgICBiYWNrZ3JvdW5kOiByZWQ7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkczsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbWF4LXdpZHRoOiAxNTBweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICB9CiAgICAgIC5oZWxwLWFuZC1mZWVkYmFjayBhIHsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQ0t0LnByb3RvdHlwZSwiYmFja2VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxDS3QucHJvdG90eXBlLCJoZWxwVXJsIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLENLdC5wcm90b3R5cGUsImJ1Z1JlcG9ydFVybCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxDS3QucHJvdG90eXBlLCJleHBlcmltZW50TmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxDS3QucHJvdG90eXBlLCJjb25maWd1cmF0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxDS3QucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLENLdC5wcm90b3R5cGUsIl9zZWxlY3RlZFRhYiIsdm9pZCAwKSxDS3Q9dChbaSgidGYtaHBhcmFtcy1zZXNzaW9ucy1wYW5lIildLENLdCk7Y2xhc3MgQUt0e2NvbnN0cnVjdG9yKHQsZSxuPSEwKXt0aGlzLl9hcGlVcmw9dCx0aGlzLl9yZXF1ZXN0TWFuYWdlcj1lLHRoaXMuX3VzZUh0dHBHZXQ9bn1nZXRFeHBlcmltZW50KHQpe3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgiZXhwZXJpbWVudCIsdCl9Z2V0RG93bmxvYWRVcmwodCxlLG4pe3JldHVybiB0aGlzLl9hcGlVcmwrIi9kb3dubG9hZF9kYXRhPyIrbmV3IFVSTFNlYXJjaFBhcmFtcyh7Zm9ybWF0OnQsY29sdW1uc1Zpc2liaWxpdHk6SlNPTi5zdHJpbmdpZnkobikscmVxdWVzdDpKU09OLnN0cmluZ2lmeShlKX0pfWxpc3RTZXNzaW9uR3JvdXBzKHQpe3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgic2Vzc2lvbl9ncm91cHMiLHQpfWxpc3RNZXRyaWNFdmFscyh0KXtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoIm1ldHJpY19ldmFscyIsdCl9X3NlbmRSZXF1ZXN0KHQsZSl7aWYodGhpcy5fdXNlSHR0cEdldCl7Y29uc3Qgbj1lbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZSkpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHRoaXMuX2FwaVVybCsiLyIrdCsiP3JlcXVlc3Q9IituKX1jb25zdCBuPW5ldyBocjtyZXR1cm4gbi53aXRoQ3JlZGVudGlhbHM9ITAsbi5tZXRob2RUeXBlPXVyLlBPU1Qsbi5jb250ZW50VHlwZT0idGV4dC9wbGFpbiIsbi5ib2R5PUpTT04uc3RyaW5naWZ5KGUpLHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3RXaXRoT3B0aW9ucyh0aGlzLl9hcGlVcmwrIi8iK3Qsbil9fWxldCBrS3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe3JlbG9hZCgpe3RoaXMuJFsicXVlcnktcGFuZSJdLnJlbG9hZCgpfX07a0t0LnRlbXBsYXRlPV9lYAogICAgPGhwYXJhbXMtc3BsaXQtbGF5b3V0PgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIGNsYXNzPSJzaWRlYmFyIj4KICAgICAgICA8dGYtaHBhcmFtcy1xdWVyeS1wYW5lCiAgICAgICAgICBpZD0icXVlcnktcGFuZSIKICAgICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgICAgZXhwZXJpbWVudC1uYW1lPSJbW2V4cGVyaW1lbnROYW1lXV0iCiAgICAgICAgICBjb25maWd1cmF0aW9uPSJ7e19jb25maWd1cmF0aW9ufX0iCiAgICAgICAgICBzZXNzaW9uLWdyb3Vwcz0ie3tfc2Vzc2lvbkdyb3Vwc319IgogICAgICAgICAgZGF0YS1sb2FkZWQtd2l0aC1ub24tZW1wdHktaHBhcmFtcz0ie3tfZGF0YUxvYWRlZFdpdGhOb25FbXB0eUhwYXJhbXN9fSIKICAgICAgICAgIGRhdGEtbG9hZGVkLXdpdGgtZW1wdHktaHBhcmFtcz0ie3tfZGF0YUxvYWRlZFdpdGhFbXB0eUhwYXJhbXN9fSIKICAgICAgICA+CiAgICAgICAgPC90Zi1ocGFyYW1zLXF1ZXJ5LXBhbmU+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIGNsYXNzPSJjZW50ZXIiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YUxvYWRlZFdpdGhFbXB0eUhwYXJhbXNdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+Tm8gaHBhcmFtcyBkYXRhIHdhcyBmb3VuZC48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPllvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgaHBhcmFtcyBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICBFdmVudCBmaWxlcyBhcmUgc3RpbGwgYmVpbmcgbG9hZGVkICh0cnkgcmVsb2FkaW5nIHRoaXMgcGFnZSkuCiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YUxvYWRlZFdpdGhOb25FbXB0eUhwYXJhbXNdXSI+CiAgICAgICAgICA8dGYtaHBhcmFtcy1zZXNzaW9ucy1wYW5lCiAgICAgICAgICAgIGlkPSJzZXNzaW9ucy1wYW5lIgogICAgICAgICAgICBiYWNrZW5kPSJbW2JhY2tlbmRdXSIKICAgICAgICAgICAgaGVscC11cmw9IltbaGVscFVybF1dIgogICAgICAgICAgICBidWctcmVwb3J0LXVybD0iW1tidWdSZXBvcnRVcmxdXSIKICAgICAgICAgICAgZXhwZXJpbWVudC1uYW1lPSJbW2V4cGVyaW1lbnROYW1lXV0iCiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249IltbX2NvbmZpZ3VyYXRpb25dXSIKICAgICAgICAgICAgc2Vzc2lvbi1ncm91cHM9IltbX3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICAgID4KICAgICAgICAgIDwvdGYtaHBhcmFtcy1zZXNzaW9ucy1wYW5lPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC9ocGFyYW1zLXNwbGl0LWxheW91dD4KICAgIDxzdHlsZT4KICAgICAgaHBhcmFtcy1zcGxpdC1sYXlvdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuc2lkZWJhciB7CiAgICAgICAgd2lkdGg6IDIwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG1pbi13aWR0aDogMTAlOwogICAgICB9CgogICAgICAuY2VudGVyIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CgogICAgICBhIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItbGluayk7CiAgICAgIH0KCiAgICAgIGE6dmlzaXRlZCB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLWxpbmstdmlzaXRlZCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixBS3QpXSxrS3QucHJvdG90eXBlLCJiYWNrZW5kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGtLdC5wcm90b3R5cGUsImV4cGVyaW1lbnROYW1lIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGtLdC5wcm90b3R5cGUsImhlbHBVcmwiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sa0t0LnByb3RvdHlwZSwiYnVnUmVwb3J0VXJsIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGtLdC5wcm90b3R5cGUsIl9jb25maWd1cmF0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxrS3QucHJvdG90eXBlLCJfc2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGtLdC5wcm90b3R5cGUsIl9kYXRhTG9hZGVkV2l0aE5vbkVtcHR5SHBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGtLdC5wcm90b3R5cGUsIl9kYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtcyIsdm9pZCAwKSxrS3Q9dChbaSgidGYtaHBhcmFtcy1tYWluIildLGtLdCk7Y29uc3QgTEt0PSJ0cnVlIj09PW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KCJ0ZW5zb3Jib2FyZENvbGFiIik7bGV0IFBLdD1jbGFzcyBleHRlbmRzKGVyKHllKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2JhY2tlbmQ9bmV3IEFLdChfcigpLnBsdWdpblJvdXRlKCJocGFyYW1zIiwiIiksbmV3IGRyLExLdCl9cmVsb2FkKCl7dGhpcy4kWyJocGFyYW1zLW1haW4iXS5yZWxvYWQoKX19O1BLdC50ZW1wbGF0ZT1fZWAKICAgIDwhLS0gVGVuc29yQm9hcmQgZG9lcyBub3Qgc3BlY2lmeSBhbiBleHBlcmltZW50TmFtZS4gQ3VycmVudGx5IGl0IG9ubHkKICAgICAgICAgc3VwcG9ydHMgb25lIGV4cGVyaW1lbnQgcGVyIGludm9jYXRpb24uIC0tPgogICAgPHRmLWhwYXJhbXMtbWFpbgogICAgICBpZD0iaHBhcmFtcy1tYWluIgogICAgICBiYWNrZW5kPSJbW19iYWNrZW5kXV0iCiAgICAgIGV4cGVyaW1lbnQtbmFtZT0iIgogICAgPgogICAgPC90Zi1ocGFyYW1zLW1haW4+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQS3QucHJvdG90eXBlLCJfYmFja2VuZCIsdm9pZCAwKSxQS3Q9dChbaSgidGYtaHBhcmFtcy1kYXNoYm9hcmQiKV0sUEt0KTtsZXQgTkt0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5hY3R1YWxTaXplPSExLHRoaXMuYnJpZ2h0bmVzc0FkanVzdG1lbnQ9LjUsdGhpcy5jb250cmFzdFBlcmNlbnRhZ2U9MCx0aGlzLl9tZXRhZGF0YUNhbmNlbGxlcj1uZXcgWFIsdGhpcy5faW1hZ2VDYW5jZWxsZXI9bmV3IFhSLHRoaXMuX3N0ZXBzPVtdLHRoaXMuX2lzSW1hZ2VMb2FkaW5nPSExfWdldCBfcnVuQ29sb3IoKXtyZXR1cm4gR1IodGhpcy5ydW4pfWdldCBfaGFzQXRMZWFzdE9uZVN0ZXAoKXt2YXIgdD10aGlzLl9zdGVwcztyZXR1cm4hIXQmJnQubGVuZ3RoPjB9Z2V0IF9oYXNNdWx0aXBsZVN0ZXBzKCl7dmFyIHQ9dGhpcy5fc3RlcHM7cmV0dXJuISF0JiZ0Lmxlbmd0aD4xfWdldCBfY3VycmVudFN0ZXAoKXtyZXR1cm4gdGhpcy5fc3RlcHNbdGhpcy5fc3RlcEluZGV4XXx8bnVsbH1nZXQgX3N0ZXBWYWx1ZSgpe3ZhciB0PXRoaXMuX2N1cnJlbnRTdGVwO3JldHVybiB0P3Quc3RlcDowfWdldCBfY3VycmVudFdhbGxUaW1lKCl7dmFyIHQ9dGhpcy5fY3VycmVudFN0ZXA7cmV0dXJuIHQ/S1IodC53YWxsX3RpbWUpOiIifWdldCBfbWF4U3RlcEluZGV4KCl7cmV0dXJuIHRoaXMuX3N0ZXBzLmxlbmd0aC0xfWdldCBfc2FtcGxlVGV4dCgpe3JldHVybmAke3RoaXMuc2FtcGxlKzF9YH1nZXQgX2hhc011bHRpcGxlU2FtcGxlcygpe3JldHVybiB0aGlzLm9mU2FtcGxlcz4xfV9nZXRBcmlhRXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5hY3R1YWxTaXplPyJ0cnVlIjoiZmFsc2UifWF0dGFjaGVkKCl7dGhpcy5yZWxvYWQoKX1yZWxvYWQoKXtpZighdGhpcy5pc0F0dGFjaGVkKXJldHVybjt0aGlzLl9tZXRhZGF0YUNhbmNlbGxlci5jYW5jZWxBbGwoKTtjb25zdCB0PWlPKF9yKCkucGx1Z2luUm91dGUoImltYWdlcyIsIi9pbWFnZXMiKSx7dGFnOnRoaXMudGFnLHJ1bjp0aGlzLnJ1bixzYW1wbGU6dGhpcy5zYW1wbGV9KSxlPXRoaXMuX21ldGFkYXRhQ2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT57aWYodC5jYW5jZWxsZWQpcmV0dXJuO2NvbnN0IGU9dC52YWx1ZS5tYXAodGhpcy5fY3JlYXRlU3RlcERhdHVtLmJpbmQodGhpcykpO3RoaXMuc2V0KCJfc3RlcHMiLGUpLHRoaXMuc2V0KCJfc3RlcEluZGV4IixlLmxlbmd0aC0xKX0pKTt0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbihlKX1fY3JlYXRlU3RlcERhdHVtKHQpe2xldCBlPV9yKCkucGx1Z2luUm91dGUoImltYWdlcyIsIi9pbmRpdmlkdWFsSW1hZ2UiKTtyZXR1cm4gZT1pTyhlLHt0czp0LndhbGxfdGltZX0pLGUrPSImIit0LnF1ZXJ5LHt3YWxsX3RpbWU6bmV3IERhdGUoMWUzKnQud2FsbF90aW1lKSxzdGVwOnQuc3RlcCx1cmw6ZX19X3VwZGF0ZUltYWdlVXJsKCl7dmFyIHQ9dGhpcy5fY3VycmVudFN0ZXAsZT10aGlzLmJyaWdodG5lc3NBZGp1c3RtZW50LG49dGhpcy5jb250cmFzdFBlcmNlbnRhZ2U7aWYoIXQpcmV0dXJuO2NvbnN0IGk9bmV3IEltYWdlO3RoaXMuX2ltYWdlQ2FuY2VsbGVyLmNhbmNlbEFsbCgpLGkub25sb2FkPWkub25lcnJvcj10aGlzLl9pbWFnZUNhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e2lmKHQuY2FuY2VsbGVkKXJldHVybjtjb25zdCBlPXRoaXMuJCQoIiNtYWluLWltYWdlLWNvbnRhaW5lciIpO2UudGV4dENvbnRlbnQ9IiIsWWkoZSkuYXBwZW5kQ2hpbGQoaSksdGhpcy5zZXQoIl9pc0ltYWdlTG9hZGluZyIsITEpfSkpLmJpbmQodGhpcyksaS5zdHlsZS5maWx0ZXI9YGNvbnRyYXN0KCR7bn0lKSBgLGkuc3R5bGUuZmlsdGVyKz1gYnJpZ2h0bmVzcygke2V9KWAsdGhpcy5zZXQoIl9pc0ltYWdlTG9hZGluZyIsITApLGkuc3JjPXQudXJsfV9oYW5kbGVUYXAodCl7dGhpcy5zZXQoImFjdHVhbFNpemUiLCF0aGlzLmFjdHVhbFNpemUpfV90b0xvY2FsZVN0cmluZyh0KXtyZXR1cm4gdC50b0xvY2FsZVN0cmluZygpfX07Tkt0LnRlbXBsYXRlPV9lYAogICAgPHRmLWNhcmQtaGVhZGluZwogICAgICB0YWc9IltbdGFnXV0iCiAgICAgIHJ1bj0iW1tydW5dXSIKICAgICAgZGlzcGxheS1uYW1lPSJbW3RhZ01ldGFkYXRhLmRpc3BsYXlOYW1lXV0iCiAgICAgIGRlc2NyaXB0aW9uPSJbW3RhZ01ldGFkYXRhLmRlc2NyaXB0aW9uXV0iCiAgICAgIGNvbG9yPSJbW19ydW5Db2xvcl1dIgogICAgPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2hhc011bHRpcGxlU2FtcGxlc11dIj4KICAgICAgICA8ZGl2PnNhbXBsZTogW1tfc2FtcGxlVGV4dF1dIG9mIFtbb2ZTYW1wbGVzXV08L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNBdExlYXN0T25lU3RlcF1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIj4KICAgICAgICAgICAgc3RlcAogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQiCiAgICAgICAgICAgICAgPltbX3RvTG9jYWxlU3RyaW5nKF9zdGVwVmFsdWUpXV08L3NwYW4KICAgICAgICAgICAgPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIGhlYWRpbmctcmlnaHQgZGF0ZXRpbWUiPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2N1cnJlbnRXYWxsVGltZV1dIj4KICAgICAgICAgICAgICBbW19jdXJyZW50V2FsbFRpbWVdXQogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbCByaWdodCI+CiAgICAgICAgICAgIDxwYXBlci1zcGlubmVyLWxpdGUgYWN0aXZlIGhpZGRlbiQ9IltbIV9pc0ltYWdlTG9hZGluZ11dIj4KICAgICAgICAgICAgPC9wYXBlci1zcGlubmVyLWxpdGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZVN0ZXBzXV0iPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICAgIGlkPSJzdGVwcyIKICAgICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e19zdGVwSW5kZXh9fSIKICAgICAgICAgICAgbWF4PSJbW19tYXhTdGVwSW5kZXhdXSIKICAgICAgICAgICAgbWF4LW1hcmtlcnM9IltbX21heFN0ZXBJbmRleF1dIgogICAgICAgICAgICBzbmFwcwogICAgICAgICAgICBzdGVwPSIxIgogICAgICAgICAgICB2YWx1ZT0ie3tfc3RlcEluZGV4fX0iCiAgICAgICAgICA+PC9wYXBlci1zbGlkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3RmLWNhcmQtaGVhZGluZz4KCiAgICA8IS0tIFNlbWFudGljYWxseSBhIGJ1dHRvbiBidXQgPGltZz4gaW5zaWRlIGEgPGJ1dHRvbj4gZGlzYWxsb3dzIHVzZXIgdG8gZG8KICAgIGFuIGludGVyZXN0aW5nIG9wZXJhdGlvbiBsaWtlICJDb3B5IEltYWdlIiBpbiBub24tQ2hyb21pdW0gYnJvd3NlcnMuIC0tPgogICAgPGEKICAgICAgaWQ9Im1haW4taW1hZ2UtY29udGFpbmVyIgogICAgICByb2xlPSJidXR0b24iCiAgICAgIGFyaWEtbGFiZWw9IlRvZ2dsZSBhY3R1YWwgc2l6ZSIKICAgICAgYXJpYS1leHBhbmRlZCQ9IltbX2dldEFyaWFFeHBhbmRlZChhY3R1YWxTaXplKV1dIgogICAgICBvbi10YXA9Il9oYW5kbGVUYXAiCiAgICA+PC9hPgoKICAgIDxzdHlsZSBpbmNsdWRlPSJ0Zi1jYXJkLWhlYWRpbmctc3R5bGUiPgogICAgICAvKiogTWFrZSBidXR0b24gYSBkaXYuICovCiAgICAgIGJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLyoqIEZpcmVmb3g6IEdldCByaWQgb2YgZG90dGVkIGxpbmUgaW5zaWRlIGJ1dHRvbi4gKi8KICAgICAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLyoqIEZpcmVmb3g6IFNpbXVsYXRlIENocm9tZSdzIG91dGVyIGdsb3cgb24gYnV0dG9uIHdoZW4gZm9jdXNlZC4gKi8KICAgICAgYnV0dG9uOi1tb3otZm9jdXNyaW5nIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMXB4IDJweCBIaWdobGlnaHQ7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMzUwcHg7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDAgMTVweCA0MHB4IDA7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLyoqIFdoZW4gYWN0dWFsIHNpemUgc2hvd24gaXMgb24sIHVzZSB0aGUgYWN0dWFsIGltYWdlIHdpZHRoLiAqLwogICAgICA6aG9zdChbYWN0dWFsLXNpemVdKSB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIHdpZHRoOiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbYWN0dWFsLXNpemVdKSAjbWFpbi1pbWFnZS1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgd2lkdGg6IGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFthY3R1YWwtc2l6ZV0pICNtYWluLWltYWdlLWNvbnRhaW5lciBpbWcgewogICAgICAgIHdpZHRoOiBhdXRvOwogICAgICB9CgogICAgICBwYXBlci1zcGlubmVyLWxpdGUgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207CiAgICAgICAgLS1wYXBlci1zcGlubmVyLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgfQoKICAgICAgI3N0ZXBzIHsKICAgICAgICBoZWlnaHQ6IDE1cHg7CiAgICAgICAgbWFyZ2luOiAwIDAgMCAtMTVweDsKICAgICAgICAvKgogICAgICAgICAqIDMxIGNvbWVzIGZyb20gYWRkaW5nIGEgcGFkZGluZyBvZiAxNXB4IGZyb20gYm90aCBzaWRlcyBvZiB0aGUKICAgICAgICAgKiBwYXBlci1zbGlkZXIsIHN1YnRyYWN0aW5nIDFweCBzbyB0aGF0IHRoZSBzbGlkZXIgd2lkdGggYWxpZ25zCiAgICAgICAgICogd2l0aCB0aGUgaW1hZ2UgKHRoZSBsYXN0IHNsaWRlciBtYXJrZXIgdGFrZXMgdXAgMXB4KSwgYW5kCiAgICAgICAgICogYWRkaW5nIDJweCB0byBhY2NvdW50IGZvciBhIGJvcmRlciBvZiAxcHggb24gYm90aCBzaWRlcyBvZgogICAgICAgICAqIHRoZSBpbWFnZS4gMzAgLSAxICsgMi4KICAgICAgICAgKi8KICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMzFweCk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItYWN0aXZlLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWJvcmRlci1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItbWFya2Vycy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1waW4tc3RhcnQtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICB9CgogICAgICAjbWFpbi1pbWFnZS1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IDEwMjRweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgI21haW4taW1hZ2UtY29udGFpbmVyIGltZyB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlczsKICAgICAgICBpbWFnZS1yZW5kZXJpbmc6IHBpeGVsYXRlZDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIH0KCiAgICAgIHBhcGVyLWljb24tYnV0dG9uIHsKICAgICAgICBjb2xvcjogIzIxOTZmMzsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KICAgICAgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CiAgICAgIFtoaWRkZW5dIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTkt0LnByb3RvdHlwZSwicnVuIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLE5LdC5wcm90b3R5cGUsInRhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxOS3QucHJvdG90eXBlLCJzYW1wbGUiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sTkt0LnByb3RvdHlwZSwib2ZTYW1wbGVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE5LdC5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE5LdC5wcm90b3R5cGUsImFjdHVhbFNpemUiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sTkt0LnByb3RvdHlwZSwiYnJpZ2h0bmVzc0FkanVzdG1lbnQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sTkt0LnByb3RvdHlwZSwiY29udHJhc3RQZXJjZW50YWdlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0sTkt0LnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTkt0LnByb3RvdHlwZSwiX21ldGFkYXRhQ2FuY2VsbGVyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE5LdC5wcm90b3R5cGUsIl9pbWFnZUNhbmNlbGxlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLE5LdC5wcm90b3R5cGUsIl9zdGVwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sTkt0LnByb3RvdHlwZSwiX3N0ZXBJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE5LdC5wcm90b3R5cGUsIl9pc0ltYWdlTG9hZGluZyIsdm9pZCAwKSx0KFtzKCJydW4iKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxOS3QucHJvdG90eXBlLCJfcnVuQ29sb3IiLG51bGwpLHQoW3MoIl9zdGVwcyIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxOS3QucHJvdG90eXBlLCJfaGFzQXRMZWFzdE9uZVN0ZXAiLG51bGwpLHQoW3MoIl9zdGVwcyIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxOS3QucHJvdG90eXBlLCJfaGFzTXVsdGlwbGVTdGVwcyIsbnVsbCksdChbcygiX3N0ZXBzIiwiX3N0ZXBJbmRleCIpLGUoImRlc2lnbjp0eXBlIixPYmplY3QpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLE5LdC5wcm90b3R5cGUsIl9jdXJyZW50U3RlcCIsbnVsbCksdChbcygiX2N1cnJlbnRTdGVwIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sTkt0LnByb3RvdHlwZSwiX3N0ZXBWYWx1ZSIsbnVsbCksdChbcygiX2N1cnJlbnRTdGVwIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sTkt0LnByb3RvdHlwZSwiX2N1cnJlbnRXYWxsVGltZSIsbnVsbCksdChbcygiX3N0ZXBzIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sTkt0LnByb3RvdHlwZSwiX21heFN0ZXBJbmRleCIsbnVsbCksdChbcygic2FtcGxlIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sTkt0LnByb3RvdHlwZSwiX3NhbXBsZVRleHQiLG51bGwpLHQoW3MoIm9mU2FtcGxlcyIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxOS3QucHJvdG90eXBlLCJfaGFzTXVsdGlwbGVTYW1wbGVzIixudWxsKSx0KFthKCJydW4iLCJ0YWciKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLE5LdC5wcm90b3R5cGUsInJlbG9hZCIsbnVsbCksdChbYSgiX2N1cnJlbnRTdGVwIiwiYnJpZ2h0bmVzc0FkanVzdG1lbnQiLCJjb250cmFzdFBlcmNlbnRhZ2UiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLE5LdC5wcm90b3R5cGUsIl91cGRhdGVJbWFnZVVybCIsbnVsbCksTkt0PXQoW2koInRmLWltYWdlLWxvYWRlciIpXSxOS3QpO2xldCBJS3Q9Y2xhc3MgZXh0ZW5kcyhlcih5ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5fZGVmYXVsdEJyaWdodG5lc3NBZGp1c3RtZW50PTEsdGhpcy5fZGVmYXVsdENvbnRyYXN0UGVyY2VudGFnZT0xMDAsdGhpcy5fYnJpZ2h0bmVzc0FkanVzdG1lbnQ9MSx0aGlzLl9jb250cmFzdFBlcmNlbnRhZ2U9MTAwLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcn1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe3RoaXMuX2ZldGNoVGFncygpLnRoZW4oKCgpPT57dGhpcy5fcmVsb2FkSW1hZ2VzKCl9KSl9X2ZldGNoVGFncygpe2NvbnN0IHQ9X3IoKS5wbHVnaW5Sb3V0ZSgiaW1hZ2VzIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoU2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47Y29uc3QgZT1hcihTZS5leHBvcnRzLm1hcFZhbHVlcyh0LCh0PT5PYmplY3Qua2V5cyh0KSkpKTt0aGlzLnNldCgiX2RhdGFOb3RGb3VuZCIsMD09PWUubGVuZ3RoKSx0aGlzLnNldCgiX3J1blRvVGFnSW5mbyIsdCksdGhpcy5hc3luYygoKCk9Pnt0aGlzLnNldCgiX2NhdGVnb3JpZXNEb21SZWFkeSIsITApfSkpfSkpfV9yZWxvYWRJbWFnZXMoKXt0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtaW1hZ2UtbG9hZGVyIikuZm9yRWFjaCgodD0+e3QucmVsb2FkKCl9KSl9X3Nob3VsZE9wZW4odCl7cmV0dXJuIHQ8PTJ9X3Jlc2V0QnJpZ2h0bmVzcygpe3RoaXMuX2JyaWdodG5lc3NBZGp1c3RtZW50PXRoaXMuX2RlZmF1bHRCcmlnaHRuZXNzQWRqdXN0bWVudH1fcmVzZXRDb250cmFzdCgpe3RoaXMuX2NvbnRyYXN0UGVyY2VudGFnZT10aGlzLl9kZWZhdWx0Q29udHJhc3RQZXJjZW50YWdlfWdldCBfYnJpZ2h0bmVzc0lzRGVmYXVsdCgpe3JldHVybiB0aGlzLl9icmlnaHRuZXNzQWRqdXN0bWVudD09PXRoaXMuX2RlZmF1bHRCcmlnaHRuZXNzQWRqdXN0bWVudH1nZXQgX2NvbnRyYXN0SXNEZWZhdWx0KCl7cmV0dXJuIHRoaXMuX2NvbnRyYXN0UGVyY2VudGFnZT09PXRoaXMuX2RlZmF1bHRDb250cmFzdFBlcmNlbnRhZ2V9Z2V0IF9jYXRlZ29yaWVzKCl7dmFyIHQ9dGhpcy5fcnVuVG9UYWdJbmZvLGU9dGhpcy5fc2VsZWN0ZWRSdW5zLG49dGhpcy5fdGFnRmlsdGVyO2Z1bmN0aW9uIGkoZSl7Y29uc3Qgbj10W2UucnVuXVtlLnRhZ10uc2FtcGxlcztyZXR1cm4gU2UuZXhwb3J0cy5yYW5nZShuKS5tYXAoKHQ9Pk9iamVjdC5hc3NpZ24oe30sZSx7c2FtcGxlOnQsb2ZTYW1wbGVzOm59KSkpfXJldHVybiBNcihTZS5leHBvcnRzLm1hcFZhbHVlcyh0LCh0PT5PYmplY3Qua2V5cyh0KSkpLGUsbikubWFwKCh0PT5PYmplY3QuYXNzaWduKHt9LHQse2l0ZW1zOltdLmNvbmNhdC5hcHBseShbXSx0Lml0ZW1zLm1hcChpKSl9KSkpfV90YWdNZXRhZGF0YSh0LGUsbil7cmV0dXJuIHRbZV1bbl19fTt2YXIgUkt0LE9LdCx6S3Q7SUt0LnRlbXBsYXRlPV9lYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94IGNoZWNrZWQ9Int7X2FjdHVhbFNpemV9fSIKICAgICAgICAgICAgICAgID5TaG93IGFjdHVhbCBpbWFnZSBzaXplPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxoMyBjbGFzcz0idG9vbHRpcC1jb250YWluZXIiPkJyaWdodG5lc3MgYWRqdXN0bWVudDwvaDM+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlc2V0dGFibGUtc2xpZGVyLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgICAgICAgbWluPSIwIgogICAgICAgICAgICAgICAgbWF4PSIyIgogICAgICAgICAgICAgICAgc25hcHMKICAgICAgICAgICAgICAgIHBpbgogICAgICAgICAgICAgICAgc3RlcD0iMC4wMSIKICAgICAgICAgICAgICAgIHZhbHVlPSJ7e19icmlnaHRuZXNzQWRqdXN0bWVudH19IgogICAgICAgICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e19icmlnaHRuZXNzQWRqdXN0bWVudH19IgogICAgICAgICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0ieC1idXR0b24iCiAgICAgICAgICAgICAgICBvbi10YXA9Il9yZXNldEJyaWdodG5lc3MiCiAgICAgICAgICAgICAgICBkaXNhYmxlZD0iW1tfYnJpZ2h0bmVzc0lzRGVmYXVsdF1dIgogICAgICAgICAgICAgICAgPlJlc2V0PC9wYXBlci1idXR0b24KICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8aDMgY2xhc3M9InRvb2x0aXAtY29udGFpbmVyIj5Db250cmFzdCBhZGp1c3RtZW50PC9oMz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVzZXR0YWJsZS1zbGlkZXItY29udGFpbmVyIj4KICAgICAgICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICBtYXg9IjUwMCIKICAgICAgICAgICAgICAgIHNuYXBzCiAgICAgICAgICAgICAgICBwaW4KICAgICAgICAgICAgICAgIHN0ZXA9IjEiCiAgICAgICAgICAgICAgICB2YWx1ZT0ie3tfY29udHJhc3RQZXJjZW50YWdlfX0iCiAgICAgICAgICAgICAgICBpbW1lZGlhdGUtdmFsdWU9Int7X2NvbnRyYXN0UGVyY2VudGFnZX19IgogICAgICAgICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0ieC1idXR0b24iCiAgICAgICAgICAgICAgICBvbi10YXA9Il9yZXNldENvbnRyYXN0IgogICAgICAgICAgICAgICAgZGlzYWJsZWQ9IltbX2NvbnRyYXN0SXNEZWZhdWx0XV0iCiAgICAgICAgICAgICAgICA+UmVzZXQ8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24gcnVucy1zZWxlY3RvciI+CiAgICAgICAgICA8dGYtcnVucy1zZWxlY3RvcgogICAgICAgICAgICBpZD0icnVucy1zZWxlY3RvciIKICAgICAgICAgICAgc2VsZWN0ZWQtcnVucz0ie3tfc2VsZWN0ZWRSdW5zfX0iCiAgICAgICAgICA+PC90Zi1ydW5zLXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIiBzbG90PSJjZW50ZXIiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm8tZGF0YS13YXJuaW5nIj4KICAgICAgICAgICAgPGgzPk5vIGltYWdlIGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+WW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBpbWFnZSBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtaW1hZ2UtbG9hZGVyCiAgICAgICAgICAgICAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgICAgICAgICAgICAgICAgcnVuPSJbW2l0ZW0ucnVuXV0iCiAgICAgICAgICAgICAgICAgIHRhZz0iW1tpdGVtLnRhZ11dIgogICAgICAgICAgICAgICAgICBzYW1wbGU9IltbaXRlbS5zYW1wbGVdXSIKICAgICAgICAgICAgICAgICAgb2Ytc2FtcGxlcz0iW1tpdGVtLm9mU2FtcGxlc11dIgogICAgICAgICAgICAgICAgICB0YWctbWV0YWRhdGE9IltbX3RhZ01ldGFkYXRhKF9ydW5Ub1RhZ0luZm8sIGl0ZW0ucnVuLCBpdGVtLnRhZyldXSIKICAgICAgICAgICAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW19yZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgICAgICAgICAgICBhY3R1YWwtc2l6ZT0iW1tfYWN0dWFsU2l6ZV1dIgogICAgICAgICAgICAgICAgICBicmlnaHRuZXNzLWFkanVzdG1lbnQ9IltbX2JyaWdodG5lc3NBZGp1c3RtZW50XV0iCiAgICAgICAgICAgICAgICAgIGNvbnRyYXN0LXBlcmNlbnRhZ2U9IltbX2NvbnRyYXN0UGVyY2VudGFnZV1dIgogICAgICAgICAgICAgICAgPjwvdGYtaW1hZ2UtbG9hZGVyPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgLnJlc2V0dGFibGUtc2xpZGVyLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQogICAgICAucmVzZXR0YWJsZS1zbGlkZXItY29udGFpbmVyIHBhcGVyLXNsaWRlciB7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICB9CiAgICAgIC5yZXNldHRhYmxlLXNsaWRlci1jb250YWluZXIgcGFwZXItYnV0dG9uIHsKICAgICAgICBmbGV4LWdyb3c6IDA7CiAgICAgIH0KICAgICAgLnJlc2V0dGFibGUtc2xpZGVyLWNvbnRhaW5lciBwYXBlci1idXR0b25bZGlzYWJsZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKICAgICAgfQogICAgICAueC1idXR0b24gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi11aS1kYXJrLWFjY2VudCk7CiAgICAgIH0KICAgICAgLm5vLWRhdGEtd2FybmluZyB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KICAgICAgcGFwZXItc2xpZGVyIHsKICAgICAgICAtLXBhcGVyLXNsaWRlci1hY3RpdmUtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2ItY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtYm9yZGVyLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1tYXJrZXJzLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1waW4tY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLXBpbi1zdGFydC1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLElLdC5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLElLdC5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSUt0LnByb3RvdHlwZSwiX3J1blRvVGFnSW5mbyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLElLdC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxJS3QucHJvdG90eXBlLCJfYWN0dWFsU2l6ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxJS3QucHJvdG90eXBlLCJfZGVmYXVsdEJyaWdodG5lc3NBZGp1c3RtZW50Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLElLdC5wcm90b3R5cGUsIl9kZWZhdWx0Q29udHJhc3RQZXJjZW50YWdlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLElLdC5wcm90b3R5cGUsIl9icmlnaHRuZXNzQWRqdXN0bWVudCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxJS3QucHJvdG90eXBlLCJfY29udHJhc3RQZXJjZW50YWdlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLElLdC5wcm90b3R5cGUsIl90YWdGaWx0ZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxJS3QucHJvdG90eXBlLCJfY2F0ZWdvcmllc0RvbVJlYWR5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLElLdC5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtzKCJfYnJpZ2h0bmVzc0FkanVzdG1lbnQiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSUt0LnByb3RvdHlwZSwiX2JyaWdodG5lc3NJc0RlZmF1bHQiLG51bGwpLHQoW3MoIl9jb250cmFzdFBlcmNlbnRhZ2UiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSUt0LnByb3RvdHlwZSwiX2NvbnRyYXN0SXNEZWZhdWx0IixudWxsKSx0KFtzKCJfcnVuVG9UYWdJbmZvIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiLCJfY2F0ZWdvcmllc0RvbVJlYWR5IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxJS3QucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCksSUt0PXQoW2koInRmLWltYWdlLWRhc2hib2FyZCIpXSxJS3QpLChmdW5jdGlvbih0KXt0W3QuQ0FOQ0VMTEVEPTFdPSJDQU5DRUxMRUQifSkoUkt0fHwoUkt0PXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5WRVJURVg9MV09IlZFUlRFWCIsdFt0LkZBQ0U9Ml09IkZBQ0UiLHRbdC5DT0xPUj0zXT0iQ09MT1IifSkoT0t0fHwoT0t0PXt9KSksKGZ1bmN0aW9uKHQpe3QuVkVSVEVYPSJmbG9hdDMyIix0LkZBQ0U9ImludDMyIix0LkNPTE9SPSJ1aW50OCJ9KSh6S3R8fCh6S3Q9e30pKTtjbGFzcyBES3R7Y29uc3RydWN0b3IodCl7dGhpcy5fY2FuY2VsbGVyPW5ldyBYUix0aGlzLl9yZXF1ZXN0TWFuYWdlcj10fXJlbG9hZCh0LGUsbil7cmV0dXJuIHRoaXMuX2NhbmNlbGxlci5jYW5jZWxBbGwoKSx0aGlzLl9mZXRjaE1ldGFkYXRhKHQsZSxuKX1fZmV0Y2hEYXRhQnlTdGVwKHQsZSxuLGkscixvKXtjb25zdCBhPV9yKCkucGx1Z2luUm91dGUoIm1lc2giLCIvZGF0YSIsbmV3IFVSTFNlYXJjaFBhcmFtcyh7dGFnOmUscnVuOnQsY29udGVudF90eXBlOm4sc2FtcGxlOlN0cmluZyhpKSxzdGVwOlN0cmluZyhyKX0pKSxzPWZ1bmN0aW9uKHQpe2xldCBlPVtdO2ZvcihsZXQgbj0wO248dC5sZW5ndGgvMztuKyspe2xldCBpPVtdO2ZvcihsZXQgZT0wO2U8MztlKyspaS5wdXNoKHRbMypuK2VdKTtlLnB1c2goaSl9cmV0dXJuIGV9LGw9dGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT57aWYodC5jYW5jZWxsZWQpcmV0dXJuIFByb21pc2UucmVqZWN0KHtjb2RlOlJLdC5DQU5DRUxMRUQsbWVzc2FnZToiUmVzcG9uc2Ugd2FzIGludmFsaWRhdGVkLiJ9KTtsZXQgZT10LnZhbHVlO3N3aXRjaChuKXtjYXNlIlZFUlRFWCI6by52ZXJ0aWNlcz1zKG5ldyBGbG9hdDMyQXJyYXkoZSkpO2JyZWFrO2Nhc2UiRkFDRSI6by5mYWNlcz1zKG5ldyBJbnQzMkFycmF5KGUpKTticmVhaztjYXNlIkNPTE9SIjpvLmNvbG9ycz1zKG5ldyBVaW50OEFycmF5KGUpKX1yZXR1cm4gb30pKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIuZmV0Y2goYSx7bWV0aG9kOiJHRVQiLGhlYWRlcnM6e3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLGNvbnRlbnRUeXBlOnpLdFtuXX19KS50aGVuKCh0PT50LmFycmF5QnVmZmVyKCkpKS50aGVuKGwpfWZldGNoRGF0YSh0LGUsbixpKXtsZXQgcj1bXSxvPW5ldyBNYXA7cmV0dXJuIE9iamVjdC5rZXlzKE9LdCkuZm9yRWFjaCgoYT0+e3QuY29tcG9uZW50cyYxPDxPS3RbYV0mJnIucHVzaCh0aGlzLl9mZXRjaERhdGFCeVN0ZXAoZSxuLGEsaSx0LnN0ZXAsbykpfSkpLFByb21pc2UuYWxsKHIpfV9mZXRjaE1ldGFkYXRhKHQsZSxuKXt0aGlzLl9jYW5jZWxsZXIuY2FuY2VsQWxsKCk7Y29uc3QgaT1fcigpLnBsdWdpblJvdXRlKCJtZXNoIiwiL21lc2hlcyIsbmV3IFVSTFNlYXJjaFBhcmFtcyh7dGFnOmUscnVuOnQsc2FtcGxlOm59KSkscj10aGlzLl9jYW5jZWxsZXIuY2FuY2VsbGFibGUoKHQ9PnQuY2FuY2VsbGVkP1Byb21pc2UucmVqZWN0KHtjb2RlOlJLdC5DQU5DRUxMRUQsbWVzc2FnZToiUmVzcG9uc2Ugd2FzIGludmFsaWRhdGVkLiJ9KTp0LnZhbHVlKSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLmZldGNoKGkpLnRoZW4oKHQ9PnQuanNvbigpKSkudGhlbihyKS50aGVuKHRoaXMuX3Byb2Nlc3NNZXRhZGF0YS5iaW5kKHRoaXMpKX1fcHJvY2Vzc01ldGFkYXRhKHQpe2lmKCF0KXJldHVybjtjb25zdCBlPW5ldyBNYXA7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2xldCBpPXRbbl07ZS5oYXMoaS5zdGVwKXx8ZS5zZXQoaS5zdGVwLFtdKSxlLmdldChpLnN0ZXApLnB1c2goaSl9bGV0IG49W107cmV0dXJuIGUuZm9yRWFjaCgodD0+e2xldCBlPXRoaXMuX2NyZWF0ZVN0ZXBEYXR1bSh0WzBdKTtuLnB1c2goZSl9KSksbn1fY3JlYXRlU3RlcERhdHVtKHQpe3JldHVybnt3YWxsX3RpbWU6bmV3IERhdGUoMWUzKnQud2FsbF90aW1lKSxzdGVwOnQuc3RlcCxjb25maWc6dC5jb25maWcsY29udGVudF90eXBlOnQuY29udGVudF90eXBlLGNvbXBvbmVudHM6dC5jb21wb25lbnRzfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAyMDEwLTIwMjEgVGhyZWUuanMgQXV0aG9ycwogICAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAogICAgICovY29uc3QgQkt0PSIxMzEiLEhLdD17TEVGVDowLE1JRERMRToxLFJJR0hUOjIsUk9UQVRFOjAsRE9MTFk6MSxQQU46Mn0sRkt0PXtST1RBVEU6MCxQQU46MSxET0xMWV9QQU46MixET0xMWV9ST1RBVEU6M30sVkt0PTEwMCxVS3Q9MzAwLGpLdD0zMDEsR0t0PTMwMixXS3Q9MzAzLHFLdD0zMDQsWUt0PTMwNixYS3Q9MzA3LCRLdD0xZTMsS0t0PTEwMDEsWkt0PTEwMDIsSkt0PTEwMDMsUUt0PTEwMDQsdFp0PTEwMDUsZVp0PTEwMDYsblp0PTEwMDcsaVp0PTEwMDgsclp0PTEwMDksb1p0PTEwMTIsYVp0PTEwMTQsc1p0PTEwMTUsbFp0PTEwMTYsY1p0PTEwMjAsdVp0PTEwMjIsaFp0PTEwMjMsZFp0PTEwMjYscFp0PTEwMjcsZlp0PTMzNzc2LG1adD0zMzc3NyxnWnQ9MzM3NzgsX1p0PTMzNzc5LHladD0zNTg0MCx2WnQ9MzU4NDEsYlp0PTM1ODQyLHhadD0zNTg0Myx3WnQ9Mzc0OTIsU1p0PTM3NDk2LE1adD0yMzAwLEVadD0yMzAxLFRadD0yMzAyLENadD0yNDAwLEFadD0yNDAxLGtadD0yNDAyLExadD0yNTAwLFBadD0yNTAxLE5adD0zZTMsSVp0PTMwMDEsUlp0PTMwMDcsT1p0PTMwMDIselp0PTMwMDQsRFp0PTMwMDUsQlp0PTMwMDYsSFp0PTc2ODAsRlp0PTM1MDQ0LFZadD0zNTA0OCxVWnQ9IjMwMCBlcyI7Y2xhc3Mgalp0e2FkZEV2ZW50TGlzdGVuZXIodCxlKXt2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMmJih0aGlzLl9saXN0ZW5lcnM9e30pO2NvbnN0IG49dGhpcy5fbGlzdGVuZXJzO3ZvaWQgMD09PW5bdF0mJihuW3RdPVtdKSwtMT09PW5bdF0uaW5kZXhPZihlKSYmblt0XS5wdXNoKGUpfWhhc0V2ZW50TGlzdGVuZXIodCxlKXtpZih2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMpcmV0dXJuITE7Y29uc3Qgbj10aGlzLl9saXN0ZW5lcnM7cmV0dXJuIHZvaWQgMCE9PW5bdF0mJi0xIT09blt0XS5pbmRleE9mKGUpfXJlbW92ZUV2ZW50TGlzdGVuZXIodCxlKXtpZih2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2NvbnN0IG49dGhpcy5fbGlzdGVuZXJzW3RdO2lmKHZvaWQgMCE9PW4pe2NvbnN0IHQ9bi5pbmRleE9mKGUpOy0xIT09dCYmbi5zcGxpY2UodCwxKX19ZGlzcGF0Y2hFdmVudCh0KXtpZih2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2NvbnN0IGU9dGhpcy5fbGlzdGVuZXJzW3QudHlwZV07aWYodm9pZCAwIT09ZSl7dC50YXJnZXQ9dGhpcztjb25zdCBuPWUuc2xpY2UoMCk7Zm9yKGxldCBlPTAsaT1uLmxlbmd0aDtlPGk7ZSsrKW5bZV0uY2FsbCh0aGlzLHQpO3QudGFyZ2V0PW51bGx9fX1jb25zdCBHWnQ9W107Zm9yKGxldCB0PTA7dDwyNTY7dCsrKUdadFt0XT0odDwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpO2xldCBXWnQ9MTIzNDU2Nztjb25zdCBxWnQ9TWF0aC5QSS8xODAsWVp0PTE4MC9NYXRoLlBJO2Z1bmN0aW9uIFhadCgpe2NvbnN0IHQ9NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDAsZT00Mjk0OTY3Mjk1Kk1hdGgucmFuZG9tKCl8MCxuPTQyOTQ5NjcyOTUqTWF0aC5yYW5kb20oKXwwLGk9NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDA7cmV0dXJuKEdadFsyNTUmdF0rR1p0W3Q+PjgmMjU1XStHWnRbdD4+MTYmMjU1XStHWnRbdD4+MjQmMjU1XSsiLSIrR1p0WzI1NSZlXStHWnRbZT4+OCYyNTVdKyItIitHWnRbZT4+MTYmMTV8NjRdK0dadFtlPj4yNCYyNTVdKyItIitHWnRbNjMmbnwxMjhdK0dadFtuPj44JjI1NV0rIi0iK0dadFtuPj4xNiYyNTVdK0dadFtuPj4yNCYyNTVdK0dadFsyNTUmaV0rR1p0W2k+PjgmMjU1XStHWnRbaT4+MTYmMjU1XStHWnRbaT4+MjQmMjU1XSkudG9VcHBlckNhc2UoKX1mdW5jdGlvbiAkWnQodCxlLG4pe3JldHVybiBNYXRoLm1heChlLE1hdGgubWluKG4sdCkpfWZ1bmN0aW9uIEtadCh0LGUpe3JldHVybih0JWUrZSklZX1mdW5jdGlvbiBaWnQodCxlLG4pe3JldHVybigxLW4pKnQrbiplfWZ1bmN0aW9uIEpadCh0KXtyZXR1cm4gMD09KHQmdC0xKSYmMCE9PXR9ZnVuY3Rpb24gUVp0KHQpe3JldHVybiBNYXRoLnBvdygyLE1hdGguY2VpbChNYXRoLmxvZyh0KS9NYXRoLkxOMikpfWZ1bmN0aW9uIHRKdCh0KXtyZXR1cm4gTWF0aC5wb3coMixNYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4yKSl9dmFyIGVKdD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxERUcyUkFEOnFadCxSQUQyREVHOlladCxnZW5lcmF0ZVVVSUQ6WFp0LGNsYW1wOiRadCxldWNsaWRlYW5Nb2R1bG86S1p0LG1hcExpbmVhcjpmdW5jdGlvbiBuSnQodCxlLG4saSxyKXtyZXR1cm4gaSsodC1lKSooci1pKS8obi1lKX0saW52ZXJzZUxlcnA6ZnVuY3Rpb24gaUp0KHQsZSxuKXtyZXR1cm4gdCE9PWU/KG4tdCkvKGUtdCk6MH0sbGVycDpaWnQsZGFtcDpmdW5jdGlvbiBySnQodCxlLG4saSl7cmV0dXJuIFpadCh0LGUsMS1NYXRoLmV4cCgtbippKSl9LHBpbmdwb25nOmZ1bmN0aW9uIG9KdCh0LGU9MSl7cmV0dXJuIGUtTWF0aC5hYnMoS1p0KHQsMiplKS1lKX0sc21vb3Roc3RlcDpmdW5jdGlvbiBhSnQodCxlLG4pe3JldHVybiB0PD1lPzA6dD49bj8xOih0PSh0LWUpLyhuLWUpKSp0KigzLTIqdCl9LHNtb290aGVyc3RlcDpmdW5jdGlvbiBzSnQodCxlLG4pe3JldHVybiB0PD1lPzA6dD49bj8xOih0PSh0LWUpLyhuLWUpKSp0KnQqKHQqKDYqdC0xNSkrMTApfSxyYW5kSW50OmZ1bmN0aW9uIGxKdCh0LGUpe3JldHVybiB0K01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KzEpKX0scmFuZEZsb2F0OmZ1bmN0aW9uIGNKdCh0LGUpe3JldHVybiB0K01hdGgucmFuZG9tKCkqKGUtdCl9LHJhbmRGbG9hdFNwcmVhZDpmdW5jdGlvbiB1SnQodCl7cmV0dXJuIHQqKC41LU1hdGgucmFuZG9tKCkpfSxzZWVkZWRSYW5kb206ZnVuY3Rpb24gaEp0KHQpe3JldHVybiB2b2lkIDAhPT10JiYoV1p0PXQlMjE0NzQ4MzY0NyksV1p0PTE2ODA3KldadCUyMTQ3NDgzNjQ3LChXWnQtMSkvMjE0NzQ4MzY0Nn0sZGVnVG9SYWQ6ZnVuY3Rpb24gZEp0KHQpe3JldHVybiB0KnFadH0scmFkVG9EZWc6ZnVuY3Rpb24gcEp0KHQpe3JldHVybiB0KlladH0saXNQb3dlck9mVHdvOkpadCxjZWlsUG93ZXJPZlR3bzpRWnQsZmxvb3JQb3dlck9mVHdvOnRKdCxzZXRRdWF0ZXJuaW9uRnJvbVByb3BlckV1bGVyOmZ1bmN0aW9uIGZKdCh0LGUsbixpLHIpe2NvbnN0IG89TWF0aC5jb3MsYT1NYXRoLnNpbixzPW8obi8yKSxsPWEobi8yKSxjPW8oKGUraSkvMiksdT1hKChlK2kpLzIpLGg9bygoZS1pKS8yKSxkPWEoKGUtaSkvMikscD1vKChpLWUpLzIpLGY9YSgoaS1lKS8yKTtzd2l0Y2gocil7Y2FzZSJYWVgiOnQuc2V0KHMqdSxsKmgsbCpkLHMqYyk7YnJlYWs7Y2FzZSJZWlkiOnQuc2V0KGwqZCxzKnUsbCpoLHMqYyk7YnJlYWs7Y2FzZSJaWFoiOnQuc2V0KGwqaCxsKmQscyp1LHMqYyk7YnJlYWs7Y2FzZSJYWlgiOnQuc2V0KHMqdSxsKmYsbCpwLHMqYyk7YnJlYWs7Y2FzZSJZWFkiOnQuc2V0KGwqcCxzKnUsbCpmLHMqYyk7YnJlYWs7Y2FzZSJaWVoiOnQuc2V0KGwqZixsKnAscyp1LHMqYyk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oIlRIUkVFLk1hdGhVdGlsczogLnNldFF1YXRlcm5pb25Gcm9tUHJvcGVyRXVsZXIoKSBlbmNvdW50ZXJlZCBhbiB1bmtub3duIG9yZGVyOiAiK3IpfX19KTtjbGFzcyBtSnR7Y29uc3RydWN0b3IodD0wLGU9MCl7dGhpcy54PXQsdGhpcy55PWV9Z2V0IHdpZHRoKCl7cmV0dXJuIHRoaXMueH1zZXQgd2lkdGgodCl7dGhpcy54PXR9Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLnl9c2V0IGhlaWdodCh0KXt0aGlzLnk9dH1zZXQodCxlKXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PWUsdGhpc31zZXRTY2FsYXIodCl7cmV0dXJuIHRoaXMueD10LHRoaXMueT10LHRoaXN9c2V0WCh0KXtyZXR1cm4gdGhpcy54PXQsdGhpc31zZXRZKHQpe3JldHVybiB0aGlzLnk9dCx0aGlzfXNldENvbXBvbmVudCh0LGUpe3N3aXRjaCh0KXtjYXNlIDA6dGhpcy54PWU7YnJlYWs7Y2FzZSAxOnRoaXMueT1lO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9cmV0dXJuIHRoaXN9Z2V0Q29tcG9uZW50KHQpe3N3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHRoaXMueDtjYXNlIDE6cmV0dXJuIHRoaXMueTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLngsdGhpcy55KX1jb3B5KHQpe3JldHVybiB0aGlzLng9dC54LHRoaXMueT10LnksdGhpc31hZGQodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAuYWRkKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuYWRkVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5hZGRWZWN0b3JzKHQsZSkpOih0aGlzLngrPXQueCx0aGlzLnkrPXQueSx0aGlzKX1hZGRTY2FsYXIodCl7cmV0dXJuIHRoaXMueCs9dCx0aGlzLnkrPXQsdGhpc31hZGRWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngrZS54LHRoaXMueT10LnkrZS55LHRoaXN9YWRkU2NhbGVkVmVjdG9yKHQsZSl7cmV0dXJuIHRoaXMueCs9dC54KmUsdGhpcy55Kz10LnkqZSx0aGlzfXN1Yih0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5zdWIoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5zdWJWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLnN1YlZlY3RvcnModCxlKSk6KHRoaXMueC09dC54LHRoaXMueS09dC55LHRoaXMpfXN1YlNjYWxhcih0KXtyZXR1cm4gdGhpcy54LT10LHRoaXMueS09dCx0aGlzfXN1YlZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueC1lLngsdGhpcy55PXQueS1lLnksdGhpc31tdWx0aXBseSh0KXtyZXR1cm4gdGhpcy54Kj10LngsdGhpcy55Kj10LnksdGhpc31tdWx0aXBseVNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kj10LHRoaXMueSo9dCx0aGlzfWRpdmlkZSh0KXtyZXR1cm4gdGhpcy54Lz10LngsdGhpcy55Lz10LnksdGhpc31kaXZpZGVTY2FsYXIodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlTY2FsYXIoMS90KX1hcHBseU1hdHJpeDModCl7Y29uc3QgZT10aGlzLngsbj10aGlzLnksaT10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9aVswXSplK2lbM10qbitpWzZdLHRoaXMueT1pWzFdKmUraVs0XSpuK2lbN10sdGhpc31taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpc31tYXgodCl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5tYXgodGhpcy55LHQueSksdGhpc31jbGFtcCh0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodC54LE1hdGgubWluKGUueCx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodC55LE1hdGgubWluKGUueSx0aGlzLnkpKSx0aGlzfWNsYW1wU2NhbGFyKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnkpKSx0aGlzfWNsYW1wTGVuZ3RoKHQsZSl7Y29uc3Qgbj10aGlzLmxlbmd0aCgpO3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcihufHwxKS5tdWx0aXBseVNjYWxhcihNYXRoLm1heCh0LE1hdGgubWluKGUsbikpKX1mbG9vcigpe3JldHVybiB0aGlzLng9TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT1NYXRoLmZsb29yKHRoaXMueSksdGhpc31jZWlsKCl7cmV0dXJuIHRoaXMueD1NYXRoLmNlaWwodGhpcy54KSx0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSksdGhpc31yb3VuZCgpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpc31yb3VuZFRvWmVybygpe3JldHVybiB0aGlzLng9dGhpcy54PDA/TWF0aC5jZWlsKHRoaXMueCk6TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT10aGlzLnk8MD9NYXRoLmNlaWwodGhpcy55KTpNYXRoLmZsb29yKHRoaXMueSksdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy54PS10aGlzLngsdGhpcy55PS10aGlzLnksdGhpc31kb3QodCl7cmV0dXJuIHRoaXMueCp0LngrdGhpcy55KnQueX1jcm9zcyh0KXtyZXR1cm4gdGhpcy54KnQueS10aGlzLnkqdC54fWxlbmd0aFNxKCl7cmV0dXJuIHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueX1sZW5ndGgoKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSl9bWFuaGF0dGFuTGVuZ3RoKCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueCkrTWF0aC5hYnModGhpcy55KX1ub3JtYWxpemUoKXtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIodGhpcy5sZW5ndGgoKXx8MSl9YW5nbGUoKXtyZXR1cm4gTWF0aC5hdGFuMigtdGhpcy55LC10aGlzLngpK01hdGguUEl9ZGlzdGFuY2VUbyh0KXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuZGlzdGFuY2VUb1NxdWFyZWQodCkpfWRpc3RhbmNlVG9TcXVhcmVkKHQpe2NvbnN0IGU9dGhpcy54LXQueCxuPXRoaXMueS10Lnk7cmV0dXJuIGUqZStuKm59bWFuaGF0dGFuRGlzdGFuY2VUbyh0KXtyZXR1cm4gTWF0aC5hYnModGhpcy54LXQueCkrTWF0aC5hYnModGhpcy55LXQueSl9c2V0TGVuZ3RoKHQpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHQpfWxlcnAodCxlKXtyZXR1cm4gdGhpcy54Kz0odC54LXRoaXMueCkqZSx0aGlzLnkrPSh0LnktdGhpcy55KSplLHRoaXN9bGVycFZlY3RvcnModCxlLG4pe3JldHVybiB0aGlzLng9dC54KyhlLngtdC54KSpuLHRoaXMueT10LnkrKGUueS10LnkpKm4sdGhpc31lcXVhbHModCl7cmV0dXJuIHQueD09PXRoaXMueCYmdC55PT09dGhpcy55fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMueD10W2VdLHRoaXMueT10W2UrMV0sdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLngsdFtlKzFdPXRoaXMueSx0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLG4pe3JldHVybiB2b2lkIDAhPT1uJiZjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IG9mZnNldCBoYXMgYmVlbiByZW1vdmVkIGZyb20gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLng9dC5nZXRYKGUpLHRoaXMueT10LmdldFkoZSksdGhpc31yb3RhdGVBcm91bmQodCxlKXtjb25zdCBuPU1hdGguY29zKGUpLGk9TWF0aC5zaW4oZSkscj10aGlzLngtdC54LG89dGhpcy55LXQueTtyZXR1cm4gdGhpcy54PXIqbi1vKmkrdC54LHRoaXMueT1yKmkrbypuK3QueSx0aGlzfXJhbmRvbSgpe3JldHVybiB0aGlzLng9TWF0aC5yYW5kb20oKSx0aGlzLnk9TWF0aC5yYW5kb20oKSx0aGlzfX1tSnQucHJvdG90eXBlLmlzVmVjdG9yMj0hMDtjbGFzcyBnSnR7Y29uc3RydWN0b3IoKXt0aGlzLmVsZW1lbnRzPVsxLDAsMCwwLDEsMCwwLDAsMV0sYXJndW1lbnRzLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXgzOiB0aGUgY29uc3RydWN0b3Igbm8gbG9uZ2VyIHJlYWRzIGFyZ3VtZW50cy4gdXNlIC5zZXQoKSBpbnN0ZWFkLiIpfXNldCh0LGUsbixpLHIsbyxhLHMsbCl7Y29uc3QgYz10aGlzLmVsZW1lbnRzO3JldHVybiBjWzBdPXQsY1sxXT1pLGNbMl09YSxjWzNdPWUsY1s0XT1yLGNbNV09cyxjWzZdPW4sY1s3XT1vLGNbOF09bCx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDEsMCwwLDAsMSwwLDAsMCwxKSx0aGlzfWNvcHkodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztyZXR1cm4gZVswXT1uWzBdLGVbMV09blsxXSxlWzJdPW5bMl0sZVszXT1uWzNdLGVbNF09bls0XSxlWzVdPW5bNV0sZVs2XT1uWzZdLGVbN109bls3XSxlWzhdPW5bOF0sdGhpc31leHRyYWN0QmFzaXModCxlLG4pe3JldHVybiB0LnNldEZyb21NYXRyaXgzQ29sdW1uKHRoaXMsMCksZS5zZXRGcm9tTWF0cml4M0NvbHVtbih0aGlzLDEpLG4uc2V0RnJvbU1hdHJpeDNDb2x1bW4odGhpcywyKSx0aGlzfXNldEZyb21NYXRyaXg0KHQpe2NvbnN0IGU9dC5lbGVtZW50cztyZXR1cm4gdGhpcy5zZXQoZVswXSxlWzRdLGVbOF0sZVsxXSxlWzVdLGVbOV0sZVsyXSxlWzZdLGVbMTBdKSx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLm11bHRpcGx5TWF0cmljZXModGhpcyx0KX1wcmVtdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5tdWx0aXBseU1hdHJpY2VzKHQsdGhpcyl9bXVsdGlwbHlNYXRyaWNlcyh0LGUpe2NvbnN0IG49dC5lbGVtZW50cyxpPWUuZWxlbWVudHMscj10aGlzLmVsZW1lbnRzLG89blswXSxhPW5bM10scz1uWzZdLGw9blsxXSxjPW5bNF0sdT1uWzddLGg9blsyXSxkPW5bNV0scD1uWzhdLGY9aVswXSxtPWlbM10sZz1pWzZdLF89aVsxXSx5PWlbNF0sdj1pWzddLGI9aVsyXSx4PWlbNV0sdz1pWzhdO3JldHVybiByWzBdPW8qZithKl8rcypiLHJbM109byptK2EqeStzKngscls2XT1vKmcrYSp2K3MqdyxyWzFdPWwqZitjKl8rdSpiLHJbNF09bCptK2MqeSt1Kngscls3XT1sKmcrYyp2K3UqdyxyWzJdPWgqZitkKl8rcCpiLHJbNV09aCptK2QqeStwKngscls4XT1oKmcrZCp2K3Aqdyx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cztyZXR1cm4gZVswXSo9dCxlWzNdKj10LGVbNl0qPXQsZVsxXSo9dCxlWzRdKj10LGVbN10qPXQsZVsyXSo9dCxlWzVdKj10LGVbOF0qPXQsdGhpc31kZXRlcm1pbmFudCgpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cyxlPXRbMF0sbj10WzFdLGk9dFsyXSxyPXRbM10sbz10WzRdLGE9dFs1XSxzPXRbNl0sbD10WzddLGM9dFs4XTtyZXR1cm4gZSpvKmMtZSphKmwtbipyKmMrbiphKnMraSpyKmwtaSpvKnN9aW52ZXJ0KCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxuPXRbMV0saT10WzJdLHI9dFszXSxvPXRbNF0sYT10WzVdLHM9dFs2XSxsPXRbN10sYz10WzhdLHU9YypvLWEqbCxoPWEqcy1jKnIsZD1sKnItbypzLHA9ZSp1K24qaCtpKmQ7aWYoMD09PXApcmV0dXJuIHRoaXMuc2V0KDAsMCwwLDAsMCwwLDAsMCwwKTtjb25zdCBmPTEvcDtyZXR1cm4gdFswXT11KmYsdFsxXT0oaSpsLWMqbikqZix0WzJdPShhKm4taSpvKSpmLHRbM109aCpmLHRbNF09KGMqZS1pKnMpKmYsdFs1XT0oaSpyLWEqZSkqZix0WzZdPWQqZix0WzddPShuKnMtbCplKSpmLHRbOF09KG8qZS1uKnIpKmYsdGhpc310cmFuc3Bvc2UoKXtsZXQgdDtjb25zdCBlPXRoaXMuZWxlbWVudHM7cmV0dXJuIHQ9ZVsxXSxlWzFdPWVbM10sZVszXT10LHQ9ZVsyXSxlWzJdPWVbNl0sZVs2XT10LHQ9ZVs1XSxlWzVdPWVbN10sZVs3XT10LHRoaXN9Z2V0Tm9ybWFsTWF0cml4KHQpe3JldHVybiB0aGlzLnNldEZyb21NYXRyaXg0KHQpLmludmVydCgpLnRyYW5zcG9zZSgpfXRyYW5zcG9zZUludG9BcnJheSh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbM10sdFsyXT1lWzZdLHRbM109ZVsxXSx0WzRdPWVbNF0sdFs1XT1lWzddLHRbNl09ZVsyXSx0WzddPWVbNV0sdFs4XT1lWzhdLHRoaXN9c2V0VXZUcmFuc2Zvcm0odCxlLG4saSxyLG8sYSl7Y29uc3Qgcz1NYXRoLmNvcyhyKSxsPU1hdGguc2luKHIpO3JldHVybiB0aGlzLnNldChuKnMsbipsLC1uKihzKm8rbCphKStvK3QsLWkqbCxpKnMsLWkqKC1sKm8rcyphKSthK2UsMCwwLDEpLHRoaXN9c2NhbGUodCxlKXtjb25zdCBuPXRoaXMuZWxlbWVudHM7cmV0dXJuIG5bMF0qPXQsblszXSo9dCxuWzZdKj10LG5bMV0qPWUsbls0XSo9ZSxuWzddKj1lLHRoaXN9cm90YXRlKHQpe2NvbnN0IGU9TWF0aC5jb3ModCksbj1NYXRoLnNpbih0KSxpPXRoaXMuZWxlbWVudHMscj1pWzBdLG89aVszXSxhPWlbNl0scz1pWzFdLGw9aVs0XSxjPWlbN107cmV0dXJuIGlbMF09ZSpyK24qcyxpWzNdPWUqbytuKmwsaVs2XT1lKmErbipjLGlbMV09LW4qcitlKnMsaVs0XT0tbipvK2UqbCxpWzddPS1uKmErZSpjLHRoaXN9dHJhbnNsYXRlKHQsZSl7Y29uc3Qgbj10aGlzLmVsZW1lbnRzO3JldHVybiBuWzBdKz10Km5bMl0sblszXSs9dCpuWzVdLG5bNl0rPXQqbls4XSxuWzFdKz1lKm5bMl0sbls0XSs9ZSpuWzVdLG5bN10rPWUqbls4XSx0aGlzfWVxdWFscyh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzO2ZvcihsZXQgdD0wO3Q8OTt0KyspaWYoZVt0XSE9PW5bdF0pcmV0dXJuITE7cmV0dXJuITB9ZnJvbUFycmF5KHQsZT0wKXtmb3IobGV0IG49MDtuPDk7bisrKXRoaXMuZWxlbWVudHNbbl09dFtuK2VdO3JldHVybiB0aGlzfXRvQXJyYXkodD1bXSxlPTApe2NvbnN0IG49dGhpcy5lbGVtZW50cztyZXR1cm4gdFtlXT1uWzBdLHRbZSsxXT1uWzFdLHRbZSsyXT1uWzJdLHRbZSszXT1uWzNdLHRbZSs0XT1uWzRdLHRbZSs1XT1uWzVdLHRbZSs2XT1uWzZdLHRbZSs3XT1uWzddLHRbZSs4XT1uWzhdLHR9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmZyb21BcnJheSh0aGlzLmVsZW1lbnRzKX19bGV0IF9KdDtnSnQucHJvdG90eXBlLmlzTWF0cml4Mz0hMDtjbGFzcyB5SnR7c3RhdGljIGdldERhdGFVUkwodCl7aWYoL15kYXRhOi9pLnRlc3QodC5zcmMpKXJldHVybiB0LnNyYztpZigidW5kZWZpbmVkIj09dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50KXJldHVybiB0LnNyYztsZXQgZTtpZih0IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQpZT10O2Vsc2V7dm9pZCAwPT09X0p0JiYoX0p0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImNhbnZhcyIpKSxfSnQud2lkdGg9dC53aWR0aCxfSnQuaGVpZ2h0PXQuaGVpZ2h0O2NvbnN0IG49X0p0LmdldENvbnRleHQoIjJkIik7dCBpbnN0YW5jZW9mIEltYWdlRGF0YT9uLnB1dEltYWdlRGF0YSh0LDAsMCk6bi5kcmF3SW1hZ2UodCwwLDAsdC53aWR0aCx0LmhlaWdodCksZT1fSnR9cmV0dXJuIGUud2lkdGg+MjA0OHx8ZS5oZWlnaHQ+MjA0OD8oY29uc29sZS53YXJuKCJUSFJFRS5JbWFnZVV0aWxzLmdldERhdGFVUkw6IEltYWdlIGNvbnZlcnRlZCB0byBqcGcgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMiLHQpLGUudG9EYXRhVVJMKCJpbWFnZS9qcGVnIiwuNikpOmUudG9EYXRhVVJMKCJpbWFnZS9wbmciKX19bGV0IHZKdD0wO2NsYXNzIGJKdCBleHRlbmRzIGpadHtjb25zdHJ1Y3Rvcih0PWJKdC5ERUZBVUxUX0lNQUdFLGU9Ykp0LkRFRkFVTFRfTUFQUElORyxuPTEwMDEsaT0xMDAxLHI9MTAwNixvPTEwMDgsYT0xMDIzLHM9MTAwOSxsPTEsYz0zZTMpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6dkp0Kyt9KSx0aGlzLnV1aWQ9WFp0KCksdGhpcy5uYW1lPSIiLHRoaXMuaW1hZ2U9dCx0aGlzLm1pcG1hcHM9W10sdGhpcy5tYXBwaW5nPWUsdGhpcy53cmFwUz1uLHRoaXMud3JhcFQ9aSx0aGlzLm1hZ0ZpbHRlcj1yLHRoaXMubWluRmlsdGVyPW8sdGhpcy5hbmlzb3Ryb3B5PWwsdGhpcy5mb3JtYXQ9YSx0aGlzLmludGVybmFsRm9ybWF0PW51bGwsdGhpcy50eXBlPXMsdGhpcy5vZmZzZXQ9bmV3IG1KdCgwLDApLHRoaXMucmVwZWF0PW5ldyBtSnQoMSwxKSx0aGlzLmNlbnRlcj1uZXcgbUp0KDAsMCksdGhpcy5yb3RhdGlvbj0wLHRoaXMubWF0cml4QXV0b1VwZGF0ZT0hMCx0aGlzLm1hdHJpeD1uZXcgZ0p0LHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSEwLHRoaXMucHJlbXVsdGlwbHlBbHBoYT0hMSx0aGlzLmZsaXBZPSEwLHRoaXMudW5wYWNrQWxpZ25tZW50PTQsdGhpcy5lbmNvZGluZz1jLHRoaXMudmVyc2lvbj0wLHRoaXMub25VcGRhdGU9bnVsbCx0aGlzLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT0hMX11cGRhdGVNYXRyaXgoKXt0aGlzLm1hdHJpeC5zZXRVdlRyYW5zZm9ybSh0aGlzLm9mZnNldC54LHRoaXMub2Zmc2V0LnksdGhpcy5yZXBlYXQueCx0aGlzLnJlcGVhdC55LHRoaXMucm90YXRpb24sdGhpcy5jZW50ZXIueCx0aGlzLmNlbnRlci55KX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLm5hbWU9dC5uYW1lLHRoaXMuaW1hZ2U9dC5pbWFnZSx0aGlzLm1pcG1hcHM9dC5taXBtYXBzLnNsaWNlKDApLHRoaXMubWFwcGluZz10Lm1hcHBpbmcsdGhpcy53cmFwUz10LndyYXBTLHRoaXMud3JhcFQ9dC53cmFwVCx0aGlzLm1hZ0ZpbHRlcj10Lm1hZ0ZpbHRlcix0aGlzLm1pbkZpbHRlcj10Lm1pbkZpbHRlcix0aGlzLmFuaXNvdHJvcHk9dC5hbmlzb3Ryb3B5LHRoaXMuZm9ybWF0PXQuZm9ybWF0LHRoaXMuaW50ZXJuYWxGb3JtYXQ9dC5pbnRlcm5hbEZvcm1hdCx0aGlzLnR5cGU9dC50eXBlLHRoaXMub2Zmc2V0LmNvcHkodC5vZmZzZXQpLHRoaXMucmVwZWF0LmNvcHkodC5yZXBlYXQpLHRoaXMuY2VudGVyLmNvcHkodC5jZW50ZXIpLHRoaXMucm90YXRpb249dC5yb3RhdGlvbix0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4LmNvcHkodC5tYXRyaXgpLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPXQuZ2VuZXJhdGVNaXBtYXBzLHRoaXMucHJlbXVsdGlwbHlBbHBoYT10LnByZW11bHRpcGx5QWxwaGEsdGhpcy5mbGlwWT10LmZsaXBZLHRoaXMudW5wYWNrQWxpZ25tZW50PXQudW5wYWNrQWxpZ25tZW50LHRoaXMuZW5jb2Rpbmc9dC5lbmNvZGluZyx0aGlzfXRvSlNPTih0KXtjb25zdCBlPXZvaWQgMD09PXR8fCJzdHJpbmciPT10eXBlb2YgdDtpZighZSYmdm9pZCAwIT09dC50ZXh0dXJlc1t0aGlzLnV1aWRdKXJldHVybiB0LnRleHR1cmVzW3RoaXMudXVpZF07Y29uc3Qgbj17bWV0YWRhdGE6e3ZlcnNpb246NC41LHR5cGU6IlRleHR1cmUiLGdlbmVyYXRvcjoiVGV4dHVyZS50b0pTT04ifSx1dWlkOnRoaXMudXVpZCxuYW1lOnRoaXMubmFtZSxtYXBwaW5nOnRoaXMubWFwcGluZyxyZXBlYXQ6W3RoaXMucmVwZWF0LngsdGhpcy5yZXBlYXQueV0sb2Zmc2V0Olt0aGlzLm9mZnNldC54LHRoaXMub2Zmc2V0LnldLGNlbnRlcjpbdGhpcy5jZW50ZXIueCx0aGlzLmNlbnRlci55XSxyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHdyYXA6W3RoaXMud3JhcFMsdGhpcy53cmFwVF0sZm9ybWF0OnRoaXMuZm9ybWF0LHR5cGU6dGhpcy50eXBlLGVuY29kaW5nOnRoaXMuZW5jb2RpbmcsbWluRmlsdGVyOnRoaXMubWluRmlsdGVyLG1hZ0ZpbHRlcjp0aGlzLm1hZ0ZpbHRlcixhbmlzb3Ryb3B5OnRoaXMuYW5pc290cm9weSxmbGlwWTp0aGlzLmZsaXBZLHByZW11bHRpcGx5QWxwaGE6dGhpcy5wcmVtdWx0aXBseUFscGhhLHVucGFja0FsaWdubWVudDp0aGlzLnVucGFja0FsaWdubWVudH07aWYodm9pZCAwIT09dGhpcy5pbWFnZSl7Y29uc3QgaT10aGlzLmltYWdlO2lmKHZvaWQgMD09PWkudXVpZCYmKGkudXVpZD1YWnQoKSksIWUmJnZvaWQgMD09PXQuaW1hZ2VzW2kudXVpZF0pe2xldCBlO2lmKEFycmF5LmlzQXJyYXkoaSkpe2U9W107Zm9yKGxldCB0PTAsbj1pLmxlbmd0aDt0PG47dCsrKWUucHVzaCh4SnQoaVt0XS5pc0RhdGFUZXh0dXJlP2lbdF0uaW1hZ2U6aVt0XSkpfWVsc2UgZT14SnQoaSk7dC5pbWFnZXNbaS51dWlkXT17dXVpZDppLnV1aWQsdXJsOmV9fW4uaW1hZ2U9aS51dWlkfXJldHVybiBlfHwodC50ZXh0dXJlc1t0aGlzLnV1aWRdPW4pLG59ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX10cmFuc2Zvcm1Vdih0KXtpZih0aGlzLm1hcHBpbmchPT1VS3QpcmV0dXJuIHQ7aWYodC5hcHBseU1hdHJpeDModGhpcy5tYXRyaXgpLHQueDwwfHx0Lng+MSlzd2l0Y2godGhpcy53cmFwUyl7Y2FzZSAkS3Q6dC54PXQueC1NYXRoLmZsb29yKHQueCk7YnJlYWs7Y2FzZSBLS3Q6dC54PXQueDwwPzA6MTticmVhaztjYXNlIFpLdDp0Lng9MT09PU1hdGguYWJzKE1hdGguZmxvb3IodC54KSUyKT9NYXRoLmNlaWwodC54KS10Lng6dC54LU1hdGguZmxvb3IodC54KX1pZih0Lnk8MHx8dC55PjEpc3dpdGNoKHRoaXMud3JhcFQpe2Nhc2UgJEt0OnQueT10LnktTWF0aC5mbG9vcih0LnkpO2JyZWFrO2Nhc2UgS0t0OnQueT10Lnk8MD8wOjE7YnJlYWs7Y2FzZSBaS3Q6dC55PTE9PT1NYXRoLmFicyhNYXRoLmZsb29yKHQueSklMik/TWF0aC5jZWlsKHQueSktdC55OnQueS1NYXRoLmZsb29yKHQueSl9cmV0dXJuIHRoaXMuZmxpcFkmJih0Lnk9MS10LnkpLHR9c2V0IG5lZWRzVXBkYXRlKHQpeyEwPT09dCYmdGhpcy52ZXJzaW9uKyt9fWZ1bmN0aW9uIHhKdCh0KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxJbWFnZUVsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnR8fCJ1bmRlZmluZWQiIT10eXBlb2YgSW1hZ2VCaXRtYXAmJnQgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcD95SnQuZ2V0RGF0YVVSTCh0KTp0LmRhdGE/e2RhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodC5kYXRhKSx3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodCx0eXBlOnQuZGF0YS5jb25zdHJ1Y3Rvci5uYW1lfTooY29uc29sZS53YXJuKCJUSFJFRS5UZXh0dXJlOiBVbmFibGUgdG8gc2VyaWFsaXplIFRleHR1cmUuIikse30pfWJKdC5ERUZBVUxUX0lNQUdFPXZvaWQgMCxiSnQuREVGQVVMVF9NQVBQSU5HPVVLdCxiSnQucHJvdG90eXBlLmlzVGV4dHVyZT0hMDtjbGFzcyB3SnR7Y29uc3RydWN0b3IodD0wLGU9MCxuPTAsaT0xKXt0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9bix0aGlzLnc9aX1nZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy56fXNldCB3aWR0aCh0KXt0aGlzLno9dH1nZXQgaGVpZ2h0KCl7cmV0dXJuIHRoaXMud31zZXQgaGVpZ2h0KHQpe3RoaXMudz10fXNldCh0LGUsbixpKXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PWUsdGhpcy56PW4sdGhpcy53PWksdGhpc31zZXRTY2FsYXIodCl7cmV0dXJuIHRoaXMueD10LHRoaXMueT10LHRoaXMuej10LHRoaXMudz10LHRoaXN9c2V0WCh0KXtyZXR1cm4gdGhpcy54PXQsdGhpc31zZXRZKHQpe3JldHVybiB0aGlzLnk9dCx0aGlzfXNldFoodCl7cmV0dXJuIHRoaXMuej10LHRoaXN9c2V0Vyh0KXtyZXR1cm4gdGhpcy53PXQsdGhpc31zZXRDb21wb25lbnQodCxlKXtzd2l0Y2godCl7Y2FzZSAwOnRoaXMueD1lO2JyZWFrO2Nhc2UgMTp0aGlzLnk9ZTticmVhaztjYXNlIDI6dGhpcy56PWU7YnJlYWs7Y2FzZSAzOnRoaXMudz1lO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9cmV0dXJuIHRoaXN9Z2V0Q29tcG9uZW50KHQpe3N3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHRoaXMueDtjYXNlIDE6cmV0dXJuIHRoaXMueTtjYXNlIDI6cmV0dXJuIHRoaXMuejtjYXNlIDM6cmV0dXJuIHRoaXMudztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLngsdGhpcy55LHRoaXMueix0aGlzLncpfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzLno9dC56LHRoaXMudz12b2lkIDAhPT10Lnc/dC53OjEsdGhpc31hZGQodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiAuYWRkKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuYWRkVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5hZGRWZWN0b3JzKHQsZSkpOih0aGlzLngrPXQueCx0aGlzLnkrPXQueSx0aGlzLnorPXQueix0aGlzLncrPXQudyx0aGlzKX1hZGRTY2FsYXIodCl7cmV0dXJuIHRoaXMueCs9dCx0aGlzLnkrPXQsdGhpcy56Kz10LHRoaXMudys9dCx0aGlzfWFkZFZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCtlLngsdGhpcy55PXQueStlLnksdGhpcy56PXQueitlLnosdGhpcy53PXQudytlLncsdGhpc31hZGRTY2FsZWRWZWN0b3IodCxlKXtyZXR1cm4gdGhpcy54Kz10LngqZSx0aGlzLnkrPXQueSplLHRoaXMueis9dC56KmUsdGhpcy53Kz10LncqZSx0aGlzfXN1Yih0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5zdWIoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5zdWJWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLnN1YlZlY3RvcnModCxlKSk6KHRoaXMueC09dC54LHRoaXMueS09dC55LHRoaXMuei09dC56LHRoaXMudy09dC53LHRoaXMpfXN1YlNjYWxhcih0KXtyZXR1cm4gdGhpcy54LT10LHRoaXMueS09dCx0aGlzLnotPXQsdGhpcy53LT10LHRoaXN9c3ViVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54LWUueCx0aGlzLnk9dC55LWUueSx0aGlzLno9dC56LWUueix0aGlzLnc9dC53LWUudyx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLngqPXQueCx0aGlzLnkqPXQueSx0aGlzLnoqPXQueix0aGlzLncqPXQudyx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLngqPXQsdGhpcy55Kj10LHRoaXMueio9dCx0aGlzLncqPXQsdGhpc31hcHBseU1hdHJpeDQodCl7Y29uc3QgZT10aGlzLngsbj10aGlzLnksaT10aGlzLnoscj10aGlzLncsbz10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9b1swXSplK29bNF0qbitvWzhdKmkrb1sxMl0qcix0aGlzLnk9b1sxXSplK29bNV0qbitvWzldKmkrb1sxM10qcix0aGlzLno9b1syXSplK29bNl0qbitvWzEwXSppK29bMTRdKnIsdGhpcy53PW9bM10qZStvWzddKm4rb1sxMV0qaStvWzE1XSpyLHRoaXN9ZGl2aWRlU2NhbGFyKHQpe3JldHVybiB0aGlzLm11bHRpcGx5U2NhbGFyKDEvdCl9c2V0QXhpc0FuZ2xlRnJvbVF1YXRlcm5pb24odCl7dGhpcy53PTIqTWF0aC5hY29zKHQudyk7Y29uc3QgZT1NYXRoLnNxcnQoMS10LncqdC53KTtyZXR1cm4gZTwxZS00Pyh0aGlzLng9MSx0aGlzLnk9MCx0aGlzLno9MCk6KHRoaXMueD10LngvZSx0aGlzLnk9dC55L2UsdGhpcy56PXQuei9lKSx0aGlzfXNldEF4aXNBbmdsZUZyb21Sb3RhdGlvbk1hdHJpeCh0KXtsZXQgZSxuLGkscjtjb25zdCBvPS4wMSxhPS4xLHM9dC5lbGVtZW50cyxsPXNbMF0sYz1zWzRdLHU9c1s4XSxoPXNbMV0sZD1zWzVdLHA9c1s5XSxmPXNbMl0sbT1zWzZdLGc9c1sxMF07aWYoTWF0aC5hYnMoYy1oKTxvJiZNYXRoLmFicyh1LWYpPG8mJk1hdGguYWJzKHAtbSk8byl7aWYoTWF0aC5hYnMoYytoKTxhJiZNYXRoLmFicyh1K2YpPGEmJk1hdGguYWJzKHArbSk8YSYmTWF0aC5hYnMobCtkK2ctMyk8YSlyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCksdGhpcztlPU1hdGguUEk7Y29uc3QgdD0obCsxKS8yLHM9KGQrMSkvMixfPShnKzEpLzIseT0oYytoKS80LHY9KHUrZikvNCxiPShwK20pLzQ7cmV0dXJuIHQ+cyYmdD5fP3Q8bz8obj0wLGk9LjcwNzEwNjc4MSxyPS43MDcxMDY3ODEpOihuPU1hdGguc3FydCh0KSxpPXkvbixyPXYvbik6cz5fP3M8bz8obj0uNzA3MTA2NzgxLGk9MCxyPS43MDcxMDY3ODEpOihpPU1hdGguc3FydChzKSxuPXkvaSxyPWIvaSk6XzxvPyhuPS43MDcxMDY3ODEsaT0uNzA3MTA2NzgxLHI9MCk6KHI9TWF0aC5zcXJ0KF8pLG49di9yLGk9Yi9yKSx0aGlzLnNldChuLGkscixlKSx0aGlzfWxldCBfPU1hdGguc3FydCgobS1wKSoobS1wKSsodS1mKSoodS1mKSsoaC1jKSooaC1jKSk7cmV0dXJuIE1hdGguYWJzKF8pPC4wMDEmJihfPTEpLHRoaXMueD0obS1wKS9fLHRoaXMueT0odS1mKS9fLHRoaXMuej0oaC1jKS9fLHRoaXMudz1NYXRoLmFjb3MoKGwrZCtnLTEpLzIpLHRoaXN9bWluKHQpe3JldHVybiB0aGlzLng9TWF0aC5taW4odGhpcy54LHQueCksdGhpcy55PU1hdGgubWluKHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1pbih0aGlzLnosdC56KSx0aGlzLnc9TWF0aC5taW4odGhpcy53LHQudyksdGhpc31tYXgodCl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5tYXgodGhpcy55LHQueSksdGhpcy56PU1hdGgubWF4KHRoaXMueix0LnopLHRoaXMudz1NYXRoLm1heCh0aGlzLncsdC53KSx0aGlzfWNsYW1wKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LngsTWF0aC5taW4oZS54LHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LnksTWF0aC5taW4oZS55LHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LnosTWF0aC5taW4oZS56LHRoaXMueikpLHRoaXMudz1NYXRoLm1heCh0LncsTWF0aC5taW4oZS53LHRoaXMudykpLHRoaXN9Y2xhbXBTY2FsYXIodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy56KSksdGhpcy53PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLncpKSx0aGlzfWNsYW1wTGVuZ3RoKHQsZSl7Y29uc3Qgbj10aGlzLmxlbmd0aCgpO3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcihufHwxKS5tdWx0aXBseVNjYWxhcihNYXRoLm1heCh0LE1hdGgubWluKGUsbikpKX1mbG9vcigpe3JldHVybiB0aGlzLng9TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT1NYXRoLmZsb29yKHRoaXMueSksdGhpcy56PU1hdGguZmxvb3IodGhpcy56KSx0aGlzLnc9TWF0aC5mbG9vcih0aGlzLncpLHRoaXN9Y2VpbCgpe3JldHVybiB0aGlzLng9TWF0aC5jZWlsKHRoaXMueCksdGhpcy55PU1hdGguY2VpbCh0aGlzLnkpLHRoaXMuej1NYXRoLmNlaWwodGhpcy56KSx0aGlzLnc9TWF0aC5jZWlsKHRoaXMudyksdGhpc31yb3VuZCgpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpcy56PU1hdGgucm91bmQodGhpcy56KSx0aGlzLnc9TWF0aC5yb3VuZCh0aGlzLncpLHRoaXN9cm91bmRUb1plcm8oKXtyZXR1cm4gdGhpcy54PXRoaXMueDwwP01hdGguY2VpbCh0aGlzLngpOk1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9dGhpcy55PDA/TWF0aC5jZWlsKHRoaXMueSk6TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej10aGlzLno8MD9NYXRoLmNlaWwodGhpcy56KTpNYXRoLmZsb29yKHRoaXMueiksdGhpcy53PXRoaXMudzwwP01hdGguY2VpbCh0aGlzLncpOk1hdGguZmxvb3IodGhpcy53KSx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLng9LXRoaXMueCx0aGlzLnk9LXRoaXMueSx0aGlzLno9LXRoaXMueix0aGlzLnc9LXRoaXMudyx0aGlzfWRvdCh0KXtyZXR1cm4gdGhpcy54KnQueCt0aGlzLnkqdC55K3RoaXMueip0LnordGhpcy53KnQud31sZW5ndGhTcSgpe3JldHVybiB0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMueit0aGlzLncqdGhpcy53fWxlbmd0aCgpe3JldHVybiBNYXRoLnNxcnQodGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnordGhpcy53KnRoaXMudyl9bWFuaGF0dGFuTGVuZ3RoKCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueCkrTWF0aC5hYnModGhpcy55KStNYXRoLmFicyh0aGlzLnopK01hdGguYWJzKHRoaXMudyl9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKHRoaXMubGVuZ3RoKCl8fDEpfXNldExlbmd0aCh0KXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0KX1sZXJwKHQsZSl7cmV0dXJuIHRoaXMueCs9KHQueC10aGlzLngpKmUsdGhpcy55Kz0odC55LXRoaXMueSkqZSx0aGlzLnorPSh0LnotdGhpcy56KSplLHRoaXMudys9KHQudy10aGlzLncpKmUsdGhpc31sZXJwVmVjdG9ycyh0LGUsbil7cmV0dXJuIHRoaXMueD10LngrKGUueC10LngpKm4sdGhpcy55PXQueSsoZS55LXQueSkqbix0aGlzLno9dC56KyhlLnotdC56KSpuLHRoaXMudz10LncrKGUudy10LncpKm4sdGhpc31lcXVhbHModCl7cmV0dXJuIHQueD09PXRoaXMueCYmdC55PT09dGhpcy55JiZ0Lno9PT10aGlzLnomJnQudz09PXRoaXMud31mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLng9dFtlXSx0aGlzLnk9dFtlKzFdLHRoaXMuej10W2UrMl0sdGhpcy53PXRbZSszXSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMueCx0W2UrMV09dGhpcy55LHRbZSsyXT10aGlzLnosdFtlKzNdPXRoaXMudyx0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLG4pe3JldHVybiB2b2lkIDAhPT1uJiZjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IG9mZnNldCBoYXMgYmVlbiByZW1vdmVkIGZyb20gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLng9dC5nZXRYKGUpLHRoaXMueT10LmdldFkoZSksdGhpcy56PXQuZ2V0WihlKSx0aGlzLnc9dC5nZXRXKGUpLHRoaXN9cmFuZG9tKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJhbmRvbSgpLHRoaXMueT1NYXRoLnJhbmRvbSgpLHRoaXMuej1NYXRoLnJhbmRvbSgpLHRoaXMudz1NYXRoLnJhbmRvbSgpLHRoaXN9fXdKdC5wcm90b3R5cGUuaXNWZWN0b3I0PSEwO2NsYXNzIFNKdCBleHRlbmRzIGpadHtjb25zdHJ1Y3Rvcih0LGUsbj17fSl7c3VwZXIoKSx0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLmRlcHRoPTEsdGhpcy5zY2lzc29yPW5ldyB3SnQoMCwwLHQsZSksdGhpcy5zY2lzc29yVGVzdD0hMSx0aGlzLnZpZXdwb3J0PW5ldyB3SnQoMCwwLHQsZSksdGhpcy50ZXh0dXJlPW5ldyBiSnQodm9pZCAwLG4ubWFwcGluZyxuLndyYXBTLG4ud3JhcFQsbi5tYWdGaWx0ZXIsbi5taW5GaWx0ZXIsbi5mb3JtYXQsbi50eXBlLG4uYW5pc290cm9weSxuLmVuY29kaW5nKSx0aGlzLnRleHR1cmUuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSEwLHRoaXMudGV4dHVyZS5pbWFnZT17d2lkdGg6dCxoZWlnaHQ6ZSxkZXB0aDoxfSx0aGlzLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPXZvaWQgMCE9PW4uZ2VuZXJhdGVNaXBtYXBzJiZuLmdlbmVyYXRlTWlwbWFwcyx0aGlzLnRleHR1cmUubWluRmlsdGVyPXZvaWQgMCE9PW4ubWluRmlsdGVyP24ubWluRmlsdGVyOmVadCx0aGlzLmRlcHRoQnVmZmVyPXZvaWQgMD09PW4uZGVwdGhCdWZmZXJ8fG4uZGVwdGhCdWZmZXIsdGhpcy5zdGVuY2lsQnVmZmVyPXZvaWQgMCE9PW4uc3RlbmNpbEJ1ZmZlciYmbi5zdGVuY2lsQnVmZmVyLHRoaXMuZGVwdGhUZXh0dXJlPXZvaWQgMCE9PW4uZGVwdGhUZXh0dXJlP24uZGVwdGhUZXh0dXJlOm51bGx9c2V0VGV4dHVyZSh0KXt0LmltYWdlPXt3aWR0aDp0aGlzLndpZHRoLGhlaWdodDp0aGlzLmhlaWdodCxkZXB0aDp0aGlzLmRlcHRofSx0aGlzLnRleHR1cmU9dH1zZXRTaXplKHQsZSxuPTEpe3RoaXMud2lkdGg9PT10JiZ0aGlzLmhlaWdodD09PWUmJnRoaXMuZGVwdGg9PT1ufHwodGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PWUsdGhpcy5kZXB0aD1uLHRoaXMudGV4dHVyZS5pbWFnZS53aWR0aD10LHRoaXMudGV4dHVyZS5pbWFnZS5oZWlnaHQ9ZSx0aGlzLnRleHR1cmUuaW1hZ2UuZGVwdGg9bix0aGlzLmRpc3Bvc2UoKSksdGhpcy52aWV3cG9ydC5zZXQoMCwwLHQsZSksdGhpcy5zY2lzc29yLnNldCgwLDAsdCxlKX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLndpZHRoPXQud2lkdGgsdGhpcy5oZWlnaHQ9dC5oZWlnaHQsdGhpcy5kZXB0aD10LmRlcHRoLHRoaXMudmlld3BvcnQuY29weSh0LnZpZXdwb3J0KSx0aGlzLnRleHR1cmU9dC50ZXh0dXJlLmNsb25lKCksdGhpcy50ZXh0dXJlLmltYWdlPXsuLi50aGlzLnRleHR1cmUuaW1hZ2V9LHRoaXMuZGVwdGhCdWZmZXI9dC5kZXB0aEJ1ZmZlcix0aGlzLnN0ZW5jaWxCdWZmZXI9dC5zdGVuY2lsQnVmZmVyLHRoaXMuZGVwdGhUZXh0dXJlPXQuZGVwdGhUZXh0dXJlLHRoaXN9ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX19U0p0LnByb3RvdHlwZS5pc1dlYkdMUmVuZGVyVGFyZ2V0PSEwO2NsYXNzIE1KdCBleHRlbmRzIFNKdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlKTtjb25zdCBpPXRoaXMudGV4dHVyZTt0aGlzLnRleHR1cmU9W107Zm9yKGxldCB0PTA7dDxuO3QrKyl0aGlzLnRleHR1cmVbdF09aS5jbG9uZSgpfXNldFNpemUodCxlLG49MSl7aWYodGhpcy53aWR0aCE9PXR8fHRoaXMuaGVpZ2h0IT09ZXx8dGhpcy5kZXB0aCE9PW4pe3RoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMuZGVwdGg9bjtmb3IobGV0IGk9MCxyPXRoaXMudGV4dHVyZS5sZW5ndGg7aTxyO2krKyl0aGlzLnRleHR1cmVbaV0uaW1hZ2Uud2lkdGg9dCx0aGlzLnRleHR1cmVbaV0uaW1hZ2UuaGVpZ2h0PWUsdGhpcy50ZXh0dXJlW2ldLmltYWdlLmRlcHRoPW47dGhpcy5kaXNwb3NlKCl9cmV0dXJuIHRoaXMudmlld3BvcnQuc2V0KDAsMCx0LGUpLHRoaXMuc2Npc3Nvci5zZXQoMCwwLHQsZSksdGhpc31jb3B5KHQpe3RoaXMuZGlzcG9zZSgpLHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzLmRlcHRoPXQuZGVwdGgsdGhpcy52aWV3cG9ydC5zZXQoMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpLHRoaXMuc2Npc3Nvci5zZXQoMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpLHRoaXMuZGVwdGhCdWZmZXI9dC5kZXB0aEJ1ZmZlcix0aGlzLnN0ZW5jaWxCdWZmZXI9dC5zdGVuY2lsQnVmZmVyLHRoaXMuZGVwdGhUZXh0dXJlPXQuZGVwdGhUZXh0dXJlLHRoaXMudGV4dHVyZS5sZW5ndGg9MDtmb3IobGV0IGU9MCxuPXQudGV4dHVyZS5sZW5ndGg7ZTxuO2UrKyl0aGlzLnRleHR1cmVbZV09dC50ZXh0dXJlW2VdLmNsb25lKCk7cmV0dXJuIHRoaXN9fU1KdC5wcm90b3R5cGUuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cz0hMDtjbGFzcyBFSnQgZXh0ZW5kcyBTSnR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSxuKSx0aGlzLnNhbXBsZXM9NH1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5LmNhbGwodGhpcyx0KSx0aGlzLnNhbXBsZXM9dC5zYW1wbGVzLHRoaXN9fUVKdC5wcm90b3R5cGUuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0PSEwO2NsYXNzIFRKdHtjb25zdHJ1Y3Rvcih0PTAsZT0wLG49MCxpPTEpe3RoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1uLHRoaXMuX3c9aX1zdGF0aWMgc2xlcnAodCxlLG4saSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogU3RhdGljIC5zbGVycCgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBxbS5zbGVycFF1YXRlcm5pb25zKCBxYSwgcWIsIHQgKSBpbnN0ZWFkLiIpLG4uc2xlcnBRdWF0ZXJuaW9ucyh0LGUsaSl9c3RhdGljIHNsZXJwRmxhdCh0LGUsbixpLHIsbyxhKXtsZXQgcz1uW2krMF0sbD1uW2krMV0sYz1uW2krMl0sdT1uW2krM107Y29uc3QgaD1yW28rMF0sZD1yW28rMV0scD1yW28rMl0sZj1yW28rM107aWYoMD09PWEpcmV0dXJuIHRbZSswXT1zLHRbZSsxXT1sLHRbZSsyXT1jLHZvaWQodFtlKzNdPXUpO2lmKDE9PT1hKXJldHVybiB0W2UrMF09aCx0W2UrMV09ZCx0W2UrMl09cCx2b2lkKHRbZSszXT1mKTtpZih1IT09Znx8cyE9PWh8fGwhPT1kfHxjIT09cCl7bGV0IHQ9MS1hO2NvbnN0IGU9cypoK2wqZCtjKnArdSpmLG49ZT49MD8xOi0xLGk9MS1lKmU7aWYoaT5OdW1iZXIuRVBTSUxPTil7Y29uc3Qgcj1NYXRoLnNxcnQoaSksbz1NYXRoLmF0YW4yKHIsZSpuKTt0PU1hdGguc2luKHQqbykvcixhPU1hdGguc2luKGEqbykvcn1jb25zdCByPWEqbjtpZihzPXMqdCtoKnIsbD1sKnQrZCpyLGM9Yyp0K3Aqcix1PXUqdCtmKnIsdD09PTEtYSl7Y29uc3QgdD0xL01hdGguc3FydChzKnMrbCpsK2MqYyt1KnUpO3MqPXQsbCo9dCxjKj10LHUqPXR9fXRbZV09cyx0W2UrMV09bCx0W2UrMl09Yyx0W2UrM109dX1zdGF0aWMgbXVsdGlwbHlRdWF0ZXJuaW9uc0ZsYXQodCxlLG4saSxyLG8pe2NvbnN0IGE9bltpXSxzPW5baSsxXSxsPW5baSsyXSxjPW5baSszXSx1PXJbb10saD1yW28rMV0sZD1yW28rMl0scD1yW28rM107cmV0dXJuIHRbZV09YSpwK2MqdStzKmQtbCpoLHRbZSsxXT1zKnArYypoK2wqdS1hKmQsdFtlKzJdPWwqcCtjKmQrYSpoLXMqdSx0W2UrM109YypwLWEqdS1zKmgtbCpkLHR9Z2V0IHgoKXtyZXR1cm4gdGhpcy5feH1zZXQgeCh0KXt0aGlzLl94PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB5KCl7cmV0dXJuIHRoaXMuX3l9c2V0IHkodCl7dGhpcy5feT10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeigpe3JldHVybiB0aGlzLl96fXNldCB6KHQpe3RoaXMuX3o9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHcoKXtyZXR1cm4gdGhpcy5fd31zZXQgdyh0KXt0aGlzLl93PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfXNldCh0LGUsbixpKXtyZXR1cm4gdGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl96PW4sdGhpcy5fdz1pLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuX3gsdGhpcy5feSx0aGlzLl96LHRoaXMuX3cpfWNvcHkodCl7cmV0dXJuIHRoaXMuX3g9dC54LHRoaXMuX3k9dC55LHRoaXMuX3o9dC56LHRoaXMuX3c9dC53LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21FdWxlcih0LGUpe2lmKCF0fHwhdC5pc0V1bGVyKXRocm93IG5ldyBFcnJvcigiVEhSRUUuUXVhdGVybmlvbjogLnNldEZyb21FdWxlcigpIG5vdyBleHBlY3RzIGFuIEV1bGVyIHJvdGF0aW9uIHJhdGhlciB0aGFuIGEgVmVjdG9yMyBhbmQgb3JkZXIuIik7Y29uc3Qgbj10Ll94LGk9dC5feSxyPXQuX3osbz10Ll9vcmRlcixhPU1hdGguY29zLHM9TWF0aC5zaW4sbD1hKG4vMiksYz1hKGkvMiksdT1hKHIvMiksaD1zKG4vMiksZD1zKGkvMikscD1zKHIvMik7c3dpdGNoKG8pe2Nhc2UiWFlaIjp0aGlzLl94PWgqYyp1K2wqZCpwLHRoaXMuX3k9bCpkKnUtaCpjKnAsdGhpcy5fej1sKmMqcCtoKmQqdSx0aGlzLl93PWwqYyp1LWgqZCpwO2JyZWFrO2Nhc2UiWVhaIjp0aGlzLl94PWgqYyp1K2wqZCpwLHRoaXMuX3k9bCpkKnUtaCpjKnAsdGhpcy5fej1sKmMqcC1oKmQqdSx0aGlzLl93PWwqYyp1K2gqZCpwO2JyZWFrO2Nhc2UiWlhZIjp0aGlzLl94PWgqYyp1LWwqZCpwLHRoaXMuX3k9bCpkKnUraCpjKnAsdGhpcy5fej1sKmMqcCtoKmQqdSx0aGlzLl93PWwqYyp1LWgqZCpwO2JyZWFrO2Nhc2UiWllYIjp0aGlzLl94PWgqYyp1LWwqZCpwLHRoaXMuX3k9bCpkKnUraCpjKnAsdGhpcy5fej1sKmMqcC1oKmQqdSx0aGlzLl93PWwqYyp1K2gqZCpwO2JyZWFrO2Nhc2UiWVpYIjp0aGlzLl94PWgqYyp1K2wqZCpwLHRoaXMuX3k9bCpkKnUraCpjKnAsdGhpcy5fej1sKmMqcC1oKmQqdSx0aGlzLl93PWwqYyp1LWgqZCpwO2JyZWFrO2Nhc2UiWFpZIjp0aGlzLl94PWgqYyp1LWwqZCpwLHRoaXMuX3k9bCpkKnUtaCpjKnAsdGhpcy5fej1sKmMqcCtoKmQqdSx0aGlzLl93PWwqYyp1K2gqZCpwO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAuc2V0RnJvbUV1bGVyKCkgZW5jb3VudGVyZWQgYW4gdW5rbm93biBvcmRlcjogIitvKX1yZXR1cm4hMSE9PWUmJnRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21BeGlzQW5nbGUodCxlKXtjb25zdCBuPWUvMixpPU1hdGguc2luKG4pO3JldHVybiB0aGlzLl94PXQueCppLHRoaXMuX3k9dC55KmksdGhpcy5fej10LnoqaSx0aGlzLl93PU1hdGguY29zKG4pLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21Sb3RhdGlvbk1hdHJpeCh0KXtjb25zdCBlPXQuZWxlbWVudHMsbj1lWzBdLGk9ZVs0XSxyPWVbOF0sbz1lWzFdLGE9ZVs1XSxzPWVbOV0sbD1lWzJdLGM9ZVs2XSx1PWVbMTBdLGg9bithK3U7aWYoaD4wKXtjb25zdCB0PS41L01hdGguc3FydChoKzEpO3RoaXMuX3c9LjI1L3QsdGhpcy5feD0oYy1zKSp0LHRoaXMuX3k9KHItbCkqdCx0aGlzLl96PShvLWkpKnR9ZWxzZSBpZihuPmEmJm4+dSl7Y29uc3QgdD0yKk1hdGguc3FydCgxK24tYS11KTt0aGlzLl93PShjLXMpL3QsdGhpcy5feD0uMjUqdCx0aGlzLl95PShpK28pL3QsdGhpcy5fej0ocitsKS90fWVsc2UgaWYoYT51KXtjb25zdCB0PTIqTWF0aC5zcXJ0KDErYS1uLXUpO3RoaXMuX3c9KHItbCkvdCx0aGlzLl94PShpK28pL3QsdGhpcy5feT0uMjUqdCx0aGlzLl96PShzK2MpL3R9ZWxzZXtjb25zdCB0PTIqTWF0aC5zcXJ0KDErdS1uLWEpO3RoaXMuX3c9KG8taSkvdCx0aGlzLl94PShyK2wpL3QsdGhpcy5feT0ocytjKS90LHRoaXMuX3o9LjI1KnR9cmV0dXJuIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21Vbml0VmVjdG9ycyh0LGUpe2xldCBuPXQuZG90KGUpKzE7cmV0dXJuIG48TnVtYmVyLkVQU0lMT04/KG49MCxNYXRoLmFicyh0LngpPk1hdGguYWJzKHQueik/KHRoaXMuX3g9LXQueSx0aGlzLl95PXQueCx0aGlzLl96PTAsdGhpcy5fdz1uKToodGhpcy5feD0wLHRoaXMuX3k9LXQueix0aGlzLl96PXQueSx0aGlzLl93PW4pKToodGhpcy5feD10LnkqZS56LXQueiplLnksdGhpcy5feT10LnoqZS54LXQueCplLnosdGhpcy5fej10LngqZS55LXQueSplLngsdGhpcy5fdz1uKSx0aGlzLm5vcm1hbGl6ZSgpfWFuZ2xlVG8odCl7cmV0dXJuIDIqTWF0aC5hY29zKE1hdGguYWJzKCRadCh0aGlzLmRvdCh0KSwtMSwxKSkpfXJvdGF0ZVRvd2FyZHModCxlKXtjb25zdCBuPXRoaXMuYW5nbGVUbyh0KTtpZigwPT09bilyZXR1cm4gdGhpcztjb25zdCBpPU1hdGgubWluKDEsZS9uKTtyZXR1cm4gdGhpcy5zbGVycCh0LGkpLHRoaXN9aWRlbnRpdHkoKXtyZXR1cm4gdGhpcy5zZXQoMCwwLDAsMSl9aW52ZXJ0KCl7cmV0dXJuIHRoaXMuY29uanVnYXRlKCl9Y29uanVnYXRlKCl7cmV0dXJuIHRoaXMuX3gqPS0xLHRoaXMuX3kqPS0xLHRoaXMuX3oqPS0xLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfWRvdCh0KXtyZXR1cm4gdGhpcy5feCp0Ll94K3RoaXMuX3kqdC5feSt0aGlzLl96KnQuX3ordGhpcy5fdyp0Ll93fWxlbmd0aFNxKCl7cmV0dXJuIHRoaXMuX3gqdGhpcy5feCt0aGlzLl95KnRoaXMuX3krdGhpcy5feip0aGlzLl96K3RoaXMuX3cqdGhpcy5fd31sZW5ndGgoKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuX3gqdGhpcy5feCt0aGlzLl95KnRoaXMuX3krdGhpcy5feip0aGlzLl96K3RoaXMuX3cqdGhpcy5fdyl9bm9ybWFsaXplKCl7bGV0IHQ9dGhpcy5sZW5ndGgoKTtyZXR1cm4gMD09PXQ/KHRoaXMuX3g9MCx0aGlzLl95PTAsdGhpcy5fej0wLHRoaXMuX3c9MSk6KHQ9MS90LHRoaXMuX3g9dGhpcy5feCp0LHRoaXMuX3k9dGhpcy5feSp0LHRoaXMuX3o9dGhpcy5feip0LHRoaXMuX3c9dGhpcy5fdyp0KSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31tdWx0aXBseSh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IC5tdWx0aXBseSgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLm11bHRpcGx5UXVhdGVybmlvbnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyh0LGUpKTp0aGlzLm11bHRpcGx5UXVhdGVybmlvbnModGhpcyx0KX1wcmVtdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVF1YXRlcm5pb25zKHQsdGhpcyl9bXVsdGlwbHlRdWF0ZXJuaW9ucyh0LGUpe2NvbnN0IG49dC5feCxpPXQuX3kscj10Ll96LG89dC5fdyxhPWUuX3gscz1lLl95LGw9ZS5feixjPWUuX3c7cmV0dXJuIHRoaXMuX3g9bipjK28qYStpKmwtcipzLHRoaXMuX3k9aSpjK28qcytyKmEtbipsLHRoaXMuX3o9cipjK28qbCtuKnMtaSphLHRoaXMuX3c9bypjLW4qYS1pKnMtcipsLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNsZXJwKHQsZSl7aWYoMD09PWUpcmV0dXJuIHRoaXM7aWYoMT09PWUpcmV0dXJuIHRoaXMuY29weSh0KTtjb25zdCBuPXRoaXMuX3gsaT10aGlzLl95LHI9dGhpcy5feixvPXRoaXMuX3c7bGV0IGE9byp0Ll93K24qdC5feCtpKnQuX3krcip0Ll96O2lmKGE8MD8odGhpcy5fdz0tdC5fdyx0aGlzLl94PS10Ll94LHRoaXMuX3k9LXQuX3ksdGhpcy5fej0tdC5feixhPS1hKTp0aGlzLmNvcHkodCksYT49MSlyZXR1cm4gdGhpcy5fdz1vLHRoaXMuX3g9bix0aGlzLl95PWksdGhpcy5fej1yLHRoaXM7Y29uc3Qgcz0xLWEqYTtpZihzPD1OdW1iZXIuRVBTSUxPTil7Y29uc3QgdD0xLWU7cmV0dXJuIHRoaXMuX3c9dCpvK2UqdGhpcy5fdyx0aGlzLl94PXQqbitlKnRoaXMuX3gsdGhpcy5feT10KmkrZSp0aGlzLl95LHRoaXMuX3o9dCpyK2UqdGhpcy5feix0aGlzLm5vcm1hbGl6ZSgpLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfWNvbnN0IGw9TWF0aC5zcXJ0KHMpLGM9TWF0aC5hdGFuMihsLGEpLHU9TWF0aC5zaW4oKDEtZSkqYykvbCxoPU1hdGguc2luKGUqYykvbDtyZXR1cm4gdGhpcy5fdz1vKnUrdGhpcy5fdypoLHRoaXMuX3g9bip1K3RoaXMuX3gqaCx0aGlzLl95PWkqdSt0aGlzLl95KmgsdGhpcy5fej1yKnUrdGhpcy5feipoLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNsZXJwUXVhdGVybmlvbnModCxlLG4pe3RoaXMuY29weSh0KS5zbGVycChlLG4pfWVxdWFscyh0KXtyZXR1cm4gdC5feD09PXRoaXMuX3gmJnQuX3k9PT10aGlzLl95JiZ0Ll96PT09dGhpcy5feiYmdC5fdz09PXRoaXMuX3d9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy5feD10W2VdLHRoaXMuX3k9dFtlKzFdLHRoaXMuX3o9dFtlKzJdLHRoaXMuX3c9dFtlKzNdLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMuX3gsdFtlKzFdPXRoaXMuX3ksdFtlKzJdPXRoaXMuX3osdFtlKzNdPXRoaXMuX3csdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSl7cmV0dXJuIHRoaXMuX3g9dC5nZXRYKGUpLHRoaXMuX3k9dC5nZXRZKGUpLHRoaXMuX3o9dC5nZXRaKGUpLHRoaXMuX3c9dC5nZXRXKGUpLHRoaXN9X29uQ2hhbmdlKHQpe3JldHVybiB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrPXQsdGhpc31fb25DaGFuZ2VDYWxsYmFjaygpe319VEp0LnByb3RvdHlwZS5pc1F1YXRlcm5pb249ITA7Y2xhc3MgQ0p0e2NvbnN0cnVjdG9yKHQ9MCxlPTAsbj0wKXt0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9bn1zZXQodCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj10aGlzLnopLHRoaXMueD10LHRoaXMueT1lLHRoaXMuej1uLHRoaXN9c2V0U2NhbGFyKHQpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9dCx0aGlzLno9dCx0aGlzfXNldFgodCl7cmV0dXJuIHRoaXMueD10LHRoaXN9c2V0WSh0KXtyZXR1cm4gdGhpcy55PXQsdGhpc31zZXRaKHQpe3JldHVybiB0aGlzLno9dCx0aGlzfXNldENvbXBvbmVudCh0LGUpe3N3aXRjaCh0KXtjYXNlIDA6dGhpcy54PWU7YnJlYWs7Y2FzZSAxOnRoaXMueT1lO2JyZWFrO2Nhc2UgMjp0aGlzLno9ZTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfXJldHVybiB0aGlzfWdldENvbXBvbmVudCh0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiB0aGlzLng7Y2FzZSAxOnJldHVybiB0aGlzLnk7Y2FzZSAyOnJldHVybiB0aGlzLno7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX19Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy54LHRoaXMueSx0aGlzLnopfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzLno9dC56LHRoaXN9YWRkKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmFkZCgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmFkZFZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuYWRkVmVjdG9ycyh0LGUpKToodGhpcy54Kz10LngsdGhpcy55Kz10LnksdGhpcy56Kz10LnosdGhpcyl9YWRkU2NhbGFyKHQpe3JldHVybiB0aGlzLngrPXQsdGhpcy55Kz10LHRoaXMueis9dCx0aGlzfWFkZFZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCtlLngsdGhpcy55PXQueStlLnksdGhpcy56PXQueitlLnosdGhpc31hZGRTY2FsZWRWZWN0b3IodCxlKXtyZXR1cm4gdGhpcy54Kz10LngqZSx0aGlzLnkrPXQueSplLHRoaXMueis9dC56KmUsdGhpc31zdWIodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuc3ViKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuc3ViVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5zdWJWZWN0b3JzKHQsZSkpOih0aGlzLngtPXQueCx0aGlzLnktPXQueSx0aGlzLnotPXQueix0aGlzKX1zdWJTY2FsYXIodCl7cmV0dXJuIHRoaXMueC09dCx0aGlzLnktPXQsdGhpcy56LT10LHRoaXN9c3ViVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54LWUueCx0aGlzLnk9dC55LWUueSx0aGlzLno9dC56LWUueix0aGlzfW11bHRpcGx5KHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLm11bHRpcGx5VmVjdG9ycyh0LGUpKToodGhpcy54Kj10LngsdGhpcy55Kj10LnksdGhpcy56Kj10LnosdGhpcyl9bXVsdGlwbHlTY2FsYXIodCl7cmV0dXJuIHRoaXMueCo9dCx0aGlzLnkqPXQsdGhpcy56Kj10LHRoaXN9bXVsdGlwbHlWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngqZS54LHRoaXMueT10LnkqZS55LHRoaXMuej10LnoqZS56LHRoaXN9YXBwbHlFdWxlcih0KXtyZXR1cm4gdCYmdC5pc0V1bGVyfHxjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuYXBwbHlFdWxlcigpIG5vdyBleHBlY3RzIGFuIEV1bGVyIHJvdGF0aW9uIHJhdGhlciB0aGFuIGEgVmVjdG9yMyBhbmQgb3JkZXIuIiksdGhpcy5hcHBseVF1YXRlcm5pb24oa0p0LnNldEZyb21FdWxlcih0KSl9YXBwbHlBeGlzQW5nbGUodCxlKXtyZXR1cm4gdGhpcy5hcHBseVF1YXRlcm5pb24oa0p0LnNldEZyb21BeGlzQW5nbGUodCxlKSl9YXBwbHlNYXRyaXgzKHQpe2NvbnN0IGU9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LHI9dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PXJbMF0qZStyWzNdKm4rcls2XSppLHRoaXMueT1yWzFdKmUrcls0XSpuK3JbN10qaSx0aGlzLno9clsyXSplK3JbNV0qbityWzhdKmksdGhpc31hcHBseU5vcm1hbE1hdHJpeCh0KXtyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDModCkubm9ybWFsaXplKCl9YXBwbHlNYXRyaXg0KHQpe2NvbnN0IGU9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LHI9dC5lbGVtZW50cyxvPTEvKHJbM10qZStyWzddKm4rclsxMV0qaStyWzE1XSk7cmV0dXJuIHRoaXMueD0oclswXSplK3JbNF0qbityWzhdKmkrclsxMl0pKm8sdGhpcy55PShyWzFdKmUrcls1XSpuK3JbOV0qaStyWzEzXSkqbyx0aGlzLno9KHJbMl0qZStyWzZdKm4rclsxMF0qaStyWzE0XSkqbyx0aGlzfWFwcGx5UXVhdGVybmlvbih0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxpPXRoaXMueixyPXQueCxvPXQueSxhPXQueixzPXQudyxsPXMqZStvKmktYSpuLGM9cypuK2EqZS1yKmksdT1zKmkrcipuLW8qZSxoPS1yKmUtbypuLWEqaTtyZXR1cm4gdGhpcy54PWwqcytoKi1yK2MqLWEtdSotbyx0aGlzLnk9YypzK2gqLW8rdSotci1sKi1hLHRoaXMuej11KnMraCotYStsKi1vLWMqLXIsdGhpc31wcm9qZWN0KHQpe3JldHVybiB0aGlzLmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkSW52ZXJzZSkuYXBwbHlNYXRyaXg0KHQucHJvamVjdGlvbk1hdHJpeCl9dW5wcm9qZWN0KHQpe3JldHVybiB0aGlzLmFwcGx5TWF0cml4NCh0LnByb2plY3Rpb25NYXRyaXhJbnZlcnNlKS5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCl9dHJhbnNmb3JtRGlyZWN0aW9uKHQpe2NvbnN0IGU9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LHI9dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PXJbMF0qZStyWzRdKm4rcls4XSppLHRoaXMueT1yWzFdKmUrcls1XSpuK3JbOV0qaSx0aGlzLno9clsyXSplK3JbNl0qbityWzEwXSppLHRoaXMubm9ybWFsaXplKCl9ZGl2aWRlKHQpe3JldHVybiB0aGlzLngvPXQueCx0aGlzLnkvPXQueSx0aGlzLnovPXQueix0aGlzfWRpdmlkZVNjYWxhcih0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVNjYWxhcigxL3QpfW1pbih0KXtyZXR1cm4gdGhpcy54PU1hdGgubWluKHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1pbih0aGlzLnksdC55KSx0aGlzLno9TWF0aC5taW4odGhpcy56LHQueiksdGhpc31tYXgodCl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5tYXgodGhpcy55LHQueSksdGhpcy56PU1hdGgubWF4KHRoaXMueix0LnopLHRoaXN9Y2xhbXAodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQueCxNYXRoLm1pbihlLngsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQueSxNYXRoLm1pbihlLnksdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQueixNYXRoLm1pbihlLnosdGhpcy56KSksdGhpc31jbGFtcFNjYWxhcih0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnopKSx0aGlzfWNsYW1wTGVuZ3RoKHQsZSl7Y29uc3Qgbj10aGlzLmxlbmd0aCgpO3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcihufHwxKS5tdWx0aXBseVNjYWxhcihNYXRoLm1heCh0LE1hdGgubWluKGUsbikpKX1mbG9vcigpe3JldHVybiB0aGlzLng9TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT1NYXRoLmZsb29yKHRoaXMueSksdGhpcy56PU1hdGguZmxvb3IodGhpcy56KSx0aGlzfWNlaWwoKXtyZXR1cm4gdGhpcy54PU1hdGguY2VpbCh0aGlzLngpLHRoaXMueT1NYXRoLmNlaWwodGhpcy55KSx0aGlzLno9TWF0aC5jZWlsKHRoaXMueiksdGhpc31yb3VuZCgpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpcy56PU1hdGgucm91bmQodGhpcy56KSx0aGlzfXJvdW5kVG9aZXJvKCl7cmV0dXJuIHRoaXMueD10aGlzLng8MD9NYXRoLmNlaWwodGhpcy54KTpNYXRoLmZsb29yKHRoaXMueCksdGhpcy55PXRoaXMueTwwP01hdGguY2VpbCh0aGlzLnkpOk1hdGguZmxvb3IodGhpcy55KSx0aGlzLno9dGhpcy56PDA/TWF0aC5jZWlsKHRoaXMueik6TWF0aC5mbG9vcih0aGlzLnopLHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMueD0tdGhpcy54LHRoaXMueT0tdGhpcy55LHRoaXMuej0tdGhpcy56LHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLngqdC54K3RoaXMueSp0LnkrdGhpcy56KnQuen1sZW5ndGhTcSgpe3JldHVybiB0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMuen1sZW5ndGgoKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSt0aGlzLnoqdGhpcy56KX1tYW5oYXR0YW5MZW5ndGgoKXtyZXR1cm4gTWF0aC5hYnModGhpcy54KStNYXRoLmFicyh0aGlzLnkpK01hdGguYWJzKHRoaXMueil9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKHRoaXMubGVuZ3RoKCl8fDEpfXNldExlbmd0aCh0KXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0KX1sZXJwKHQsZSl7cmV0dXJuIHRoaXMueCs9KHQueC10aGlzLngpKmUsdGhpcy55Kz0odC55LXRoaXMueSkqZSx0aGlzLnorPSh0LnotdGhpcy56KSplLHRoaXN9bGVycFZlY3RvcnModCxlLG4pe3JldHVybiB0aGlzLng9dC54KyhlLngtdC54KSpuLHRoaXMueT10LnkrKGUueS10LnkpKm4sdGhpcy56PXQueisoZS56LXQueikqbix0aGlzfWNyb3NzKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmNyb3NzKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuY3Jvc3NWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmNyb3NzVmVjdG9ycyh0LGUpKTp0aGlzLmNyb3NzVmVjdG9ycyh0aGlzLHQpfWNyb3NzVmVjdG9ycyh0LGUpe2NvbnN0IG49dC54LGk9dC55LHI9dC56LG89ZS54LGE9ZS55LHM9ZS56O3JldHVybiB0aGlzLng9aSpzLXIqYSx0aGlzLnk9cipvLW4qcyx0aGlzLno9biphLWkqbyx0aGlzfXByb2plY3RPblZlY3Rvcih0KXtjb25zdCBlPXQubGVuZ3RoU3EoKTtpZigwPT09ZSlyZXR1cm4gdGhpcy5zZXQoMCwwLDApO2NvbnN0IG49dC5kb3QodGhpcykvZTtyZXR1cm4gdGhpcy5jb3B5KHQpLm11bHRpcGx5U2NhbGFyKG4pfXByb2plY3RPblBsYW5lKHQpe3JldHVybiBBSnQuY29weSh0aGlzKS5wcm9qZWN0T25WZWN0b3IodCksdGhpcy5zdWIoQUp0KX1yZWZsZWN0KHQpe3JldHVybiB0aGlzLnN1YihBSnQuY29weSh0KS5tdWx0aXBseVNjYWxhcigyKnRoaXMuZG90KHQpKSl9YW5nbGVUbyh0KXtjb25zdCBlPU1hdGguc3FydCh0aGlzLmxlbmd0aFNxKCkqdC5sZW5ndGhTcSgpKTtpZigwPT09ZSlyZXR1cm4gTWF0aC5QSS8yO2NvbnN0IG49dGhpcy5kb3QodCkvZTtyZXR1cm4gTWF0aC5hY29zKCRadChuLC0xLDEpKX1kaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLnNxcnQodGhpcy5kaXN0YW5jZVRvU3F1YXJlZCh0KSl9ZGlzdGFuY2VUb1NxdWFyZWQodCl7Y29uc3QgZT10aGlzLngtdC54LG49dGhpcy55LXQueSxpPXRoaXMuei10Lno7cmV0dXJuIGUqZStuKm4raSppfW1hbmhhdHRhbkRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueC10LngpK01hdGguYWJzKHRoaXMueS10LnkpK01hdGguYWJzKHRoaXMuei10LnopfXNldEZyb21TcGhlcmljYWwodCl7cmV0dXJuIHRoaXMuc2V0RnJvbVNwaGVyaWNhbENvb3Jkcyh0LnJhZGl1cyx0LnBoaSx0LnRoZXRhKX1zZXRGcm9tU3BoZXJpY2FsQ29vcmRzKHQsZSxuKXtjb25zdCBpPU1hdGguc2luKGUpKnQ7cmV0dXJuIHRoaXMueD1pKk1hdGguc2luKG4pLHRoaXMueT1NYXRoLmNvcyhlKSp0LHRoaXMuej1pKk1hdGguY29zKG4pLHRoaXN9c2V0RnJvbUN5bGluZHJpY2FsKHQpe3JldHVybiB0aGlzLnNldEZyb21DeWxpbmRyaWNhbENvb3Jkcyh0LnJhZGl1cyx0LnRoZXRhLHQueSl9c2V0RnJvbUN5bGluZHJpY2FsQ29vcmRzKHQsZSxuKXtyZXR1cm4gdGhpcy54PXQqTWF0aC5zaW4oZSksdGhpcy55PW4sdGhpcy56PXQqTWF0aC5jb3MoZSksdGhpc31zZXRGcm9tTWF0cml4UG9zaXRpb24odCl7Y29uc3QgZT10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9ZVsxMl0sdGhpcy55PWVbMTNdLHRoaXMuej1lWzE0XSx0aGlzfXNldEZyb21NYXRyaXhTY2FsZSh0KXtjb25zdCBlPXRoaXMuc2V0RnJvbU1hdHJpeENvbHVtbih0LDApLmxlbmd0aCgpLG49dGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMSkubGVuZ3RoKCksaT10aGlzLnNldEZyb21NYXRyaXhDb2x1bW4odCwyKS5sZW5ndGgoKTtyZXR1cm4gdGhpcy54PWUsdGhpcy55PW4sdGhpcy56PWksdGhpc31zZXRGcm9tTWF0cml4Q29sdW1uKHQsZSl7cmV0dXJuIHRoaXMuZnJvbUFycmF5KHQuZWxlbWVudHMsNCplKX1zZXRGcm9tTWF0cml4M0NvbHVtbih0LGUpe3JldHVybiB0aGlzLmZyb21BcnJheSh0LmVsZW1lbnRzLDMqZSl9ZXF1YWxzKHQpe3JldHVybiB0Lng9PT10aGlzLngmJnQueT09PXRoaXMueSYmdC56PT09dGhpcy56fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMueD10W2VdLHRoaXMueT10W2UrMV0sdGhpcy56PXRbZSsyXSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMueCx0W2UrMV09dGhpcy55LHRbZSsyXT10aGlzLnosdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKXtyZXR1cm4gdm9pZCAwIT09biYmY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiBvZmZzZXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy54PXQuZ2V0WChlKSx0aGlzLnk9dC5nZXRZKGUpLHRoaXMuej10LmdldFooZSksdGhpc31yYW5kb20oKXtyZXR1cm4gdGhpcy54PU1hdGgucmFuZG9tKCksdGhpcy55PU1hdGgucmFuZG9tKCksdGhpcy56PU1hdGgucmFuZG9tKCksdGhpc319Q0p0LnByb3RvdHlwZS5pc1ZlY3RvcjM9ITA7Y29uc3QgQUp0PW5ldyBDSnQsa0p0PW5ldyBUSnQ7Y2xhc3MgTEp0e2NvbnN0cnVjdG9yKHQ9bmV3IENKdCgxLzAsMS8wLDEvMCksZT1uZXcgQ0p0KC0xLzAsLTEvMCwtMS8wKSl7dGhpcy5taW49dCx0aGlzLm1heD1lfXNldCh0LGUpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQpLHRoaXMubWF4LmNvcHkoZSksdGhpc31zZXRGcm9tQXJyYXkodCl7bGV0IGU9MS8wLG49MS8wLGk9MS8wLHI9LTEvMCxvPS0xLzAsYT0tMS8wO2ZvcihsZXQgcz0wLGw9dC5sZW5ndGg7czxsO3MrPTMpe2NvbnN0IGw9dFtzXSxjPXRbcysxXSx1PXRbcysyXTtsPGUmJihlPWwpLGM8biYmKG49YyksdTxpJiYoaT11KSxsPnImJihyPWwpLGM+byYmKG89YyksdT5hJiYoYT11KX1yZXR1cm4gdGhpcy5taW4uc2V0KGUsbixpKSx0aGlzLm1heC5zZXQocixvLGEpLHRoaXN9c2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KXtsZXQgZT0xLzAsbj0xLzAsaT0xLzAscj0tMS8wLG89LTEvMCxhPS0xLzA7Zm9yKGxldCBzPTAsbD10LmNvdW50O3M8bDtzKyspe2NvbnN0IGw9dC5nZXRYKHMpLGM9dC5nZXRZKHMpLHU9dC5nZXRaKHMpO2w8ZSYmKGU9bCksYzxuJiYobj1jKSx1PGkmJihpPXUpLGw+ciYmKHI9bCksYz5vJiYobz1jKSx1PmEmJihhPXUpfXJldHVybiB0aGlzLm1pbi5zZXQoZSxuLGkpLHRoaXMubWF4LnNldChyLG8sYSksdGhpc31zZXRGcm9tUG9pbnRzKHQpe3RoaXMubWFrZUVtcHR5KCk7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXRoaXMuZXhwYW5kQnlQb2ludCh0W2VdKTtyZXR1cm4gdGhpc31zZXRGcm9tQ2VudGVyQW5kU2l6ZSh0LGUpe2NvbnN0IG49Tkp0LmNvcHkoZSkubXVsdGlwbHlTY2FsYXIoLjUpO3JldHVybiB0aGlzLm1pbi5jb3B5KHQpLnN1YihuKSx0aGlzLm1heC5jb3B5KHQpLmFkZChuKSx0aGlzfXNldEZyb21PYmplY3QodCl7cmV0dXJuIHRoaXMubWFrZUVtcHR5KCksdGhpcy5leHBhbmRCeU9iamVjdCh0KX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQubWluKSx0aGlzLm1heC5jb3B5KHQubWF4KSx0aGlzfW1ha2VFbXB0eSgpe3JldHVybiB0aGlzLm1pbi54PXRoaXMubWluLnk9dGhpcy5taW4uej0xLzAsdGhpcy5tYXgueD10aGlzLm1heC55PXRoaXMubWF4Lno9LTEvMCx0aGlzfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5tYXgueDx0aGlzLm1pbi54fHx0aGlzLm1heC55PHRoaXMubWluLnl8fHRoaXMubWF4Lno8dGhpcy5taW4uen1nZXRDZW50ZXIodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3Quc2V0KDAsMCwwKTp0LmFkZFZlY3RvcnModGhpcy5taW4sdGhpcy5tYXgpLm11bHRpcGx5U2NhbGFyKC41KX1nZXRTaXplKHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90LnNldCgwLDAsMCk6dC5zdWJWZWN0b3JzKHRoaXMubWF4LHRoaXMubWluKX1leHBhbmRCeVBvaW50KHQpe3JldHVybiB0aGlzLm1pbi5taW4odCksdGhpcy5tYXgubWF4KHQpLHRoaXN9ZXhwYW5kQnlWZWN0b3IodCl7cmV0dXJuIHRoaXMubWluLnN1Yih0KSx0aGlzLm1heC5hZGQodCksdGhpc31leHBhbmRCeVNjYWxhcih0KXtyZXR1cm4gdGhpcy5taW4uYWRkU2NhbGFyKC10KSx0aGlzLm1heC5hZGRTY2FsYXIodCksdGhpc31leHBhbmRCeU9iamVjdCh0KXt0LnVwZGF0ZVdvcmxkTWF0cml4KCExLCExKTtjb25zdCBlPXQuZ2VvbWV0cnk7dm9pZCAwIT09ZSYmKG51bGw9PT1lLmJvdW5kaW5nQm94JiZlLmNvbXB1dGVCb3VuZGluZ0JveCgpLElKdC5jb3B5KGUuYm91bmRpbmdCb3gpLElKdC5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy51bmlvbihJSnQpKTtjb25zdCBuPXQuY2hpbGRyZW47Zm9yKGxldCB0PTAsZT1uLmxlbmd0aDt0PGU7dCsrKXRoaXMuZXhwYW5kQnlPYmplY3Qoblt0XSk7cmV0dXJuIHRoaXN9Y29udGFpbnNQb2ludCh0KXtyZXR1cm4hKHQueDx0aGlzLm1pbi54fHx0Lng+dGhpcy5tYXgueHx8dC55PHRoaXMubWluLnl8fHQueT50aGlzLm1heC55fHx0Lno8dGhpcy5taW4uenx8dC56PnRoaXMubWF4LnopfWNvbnRhaW5zQm94KHQpe3JldHVybiB0aGlzLm1pbi54PD10Lm1pbi54JiZ0Lm1heC54PD10aGlzLm1heC54JiZ0aGlzLm1pbi55PD10Lm1pbi55JiZ0Lm1heC55PD10aGlzLm1heC55JiZ0aGlzLm1pbi56PD10Lm1pbi56JiZ0Lm1heC56PD10aGlzLm1heC56fWdldFBhcmFtZXRlcih0LGUpe3JldHVybiBlLnNldCgodC54LXRoaXMubWluLngpLyh0aGlzLm1heC54LXRoaXMubWluLngpLCh0LnktdGhpcy5taW4ueSkvKHRoaXMubWF4LnktdGhpcy5taW4ueSksKHQuei10aGlzLm1pbi56KS8odGhpcy5tYXguei10aGlzLm1pbi56KSl9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4hKHQubWF4Lng8dGhpcy5taW4ueHx8dC5taW4ueD50aGlzLm1heC54fHx0Lm1heC55PHRoaXMubWluLnl8fHQubWluLnk+dGhpcy5tYXgueXx8dC5tYXguejx0aGlzLm1pbi56fHx0Lm1pbi56PnRoaXMubWF4LnopfWludGVyc2VjdHNTcGhlcmUodCl7cmV0dXJuIHRoaXMuY2xhbXBQb2ludCh0LmNlbnRlcixOSnQpLE5KdC5kaXN0YW5jZVRvU3F1YXJlZCh0LmNlbnRlcik8PXQucmFkaXVzKnQucmFkaXVzfWludGVyc2VjdHNQbGFuZSh0KXtsZXQgZSxuO3JldHVybiB0Lm5vcm1hbC54PjA/KGU9dC5ub3JtYWwueCp0aGlzLm1pbi54LG49dC5ub3JtYWwueCp0aGlzLm1heC54KTooZT10Lm5vcm1hbC54KnRoaXMubWF4Lngsbj10Lm5vcm1hbC54KnRoaXMubWluLngpLHQubm9ybWFsLnk+MD8oZSs9dC5ub3JtYWwueSp0aGlzLm1pbi55LG4rPXQubm9ybWFsLnkqdGhpcy5tYXgueSk6KGUrPXQubm9ybWFsLnkqdGhpcy5tYXgueSxuKz10Lm5vcm1hbC55KnRoaXMubWluLnkpLHQubm9ybWFsLno+MD8oZSs9dC5ub3JtYWwueip0aGlzLm1pbi56LG4rPXQubm9ybWFsLnoqdGhpcy5tYXgueik6KGUrPXQubm9ybWFsLnoqdGhpcy5tYXgueixuKz10Lm5vcm1hbC56KnRoaXMubWluLnopLGU8PS10LmNvbnN0YW50JiZuPj0tdC5jb25zdGFudH1pbnRlcnNlY3RzVHJpYW5nbGUodCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuITE7dGhpcy5nZXRDZW50ZXIoRkp0KSxWSnQuc3ViVmVjdG9ycyh0aGlzLm1heCxGSnQpLFJKdC5zdWJWZWN0b3JzKHQuYSxGSnQpLE9KdC5zdWJWZWN0b3JzKHQuYixGSnQpLHpKdC5zdWJWZWN0b3JzKHQuYyxGSnQpLERKdC5zdWJWZWN0b3JzKE9KdCxSSnQpLEJKdC5zdWJWZWN0b3JzKHpKdCxPSnQpLEhKdC5zdWJWZWN0b3JzKFJKdCx6SnQpO2xldCBlPVswLC1ESnQueixESnQueSwwLC1CSnQueixCSnQueSwwLC1ISnQueixISnQueSxESnQueiwwLC1ESnQueCxCSnQueiwwLC1CSnQueCxISnQueiwwLC1ISnQueCwtREp0LnksREp0LngsMCwtQkp0LnksQkp0LngsMCwtSEp0LnksSEp0LngsMF07cmV0dXJuISFHSnQoZSxSSnQsT0p0LHpKdCxWSnQpJiYoZT1bMSwwLDAsMCwxLDAsMCwwLDFdLCEhR0p0KGUsUkp0LE9KdCx6SnQsVkp0KSYmKFVKdC5jcm9zc1ZlY3RvcnMoREp0LEJKdCksZT1bVUp0LngsVUp0LnksVUp0LnpdLEdKdChlLFJKdCxPSnQsekp0LFZKdCkpKX1jbGFtcFBvaW50KHQsZSl7cmV0dXJuIGUuY29weSh0KS5jbGFtcCh0aGlzLm1pbix0aGlzLm1heCl9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiBOSnQuY29weSh0KS5jbGFtcCh0aGlzLm1pbix0aGlzLm1heCkuc3ViKHQpLmxlbmd0aCgpfWdldEJvdW5kaW5nU3BoZXJlKHQpe3JldHVybiB0aGlzLmdldENlbnRlcih0LmNlbnRlciksdC5yYWRpdXM9LjUqdGhpcy5nZXRTaXplKE5KdCkubGVuZ3RoKCksdH1pbnRlcnNlY3QodCl7cmV0dXJuIHRoaXMubWluLm1heCh0Lm1pbiksdGhpcy5tYXgubWluKHQubWF4KSx0aGlzLmlzRW1wdHkoKSYmdGhpcy5tYWtlRW1wdHkoKSx0aGlzfXVuaW9uKHQpe3JldHVybiB0aGlzLm1pbi5taW4odC5taW4pLHRoaXMubWF4Lm1heCh0Lm1heCksdGhpc31hcHBseU1hdHJpeDQodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpfHwoUEp0WzBdLnNldCh0aGlzLm1pbi54LHRoaXMubWluLnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLFBKdFsxXS5zZXQodGhpcy5taW4ueCx0aGlzLm1pbi55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSxQSnRbMl0uc2V0KHRoaXMubWluLngsdGhpcy5tYXgueSx0aGlzLm1pbi56KS5hcHBseU1hdHJpeDQodCksUEp0WzNdLnNldCh0aGlzLm1pbi54LHRoaXMubWF4LnksdGhpcy5tYXgueikuYXBwbHlNYXRyaXg0KHQpLFBKdFs0XS5zZXQodGhpcy5tYXgueCx0aGlzLm1pbi55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxQSnRbNV0uc2V0KHRoaXMubWF4LngsdGhpcy5taW4ueSx0aGlzLm1heC56KS5hcHBseU1hdHJpeDQodCksUEp0WzZdLnNldCh0aGlzLm1heC54LHRoaXMubWF4LnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLFBKdFs3XS5zZXQodGhpcy5tYXgueCx0aGlzLm1heC55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSx0aGlzLnNldEZyb21Qb2ludHMoUEp0KSksdGhpc310cmFuc2xhdGUodCl7cmV0dXJuIHRoaXMubWluLmFkZCh0KSx0aGlzLm1heC5hZGQodCksdGhpc31lcXVhbHModCl7cmV0dXJuIHQubWluLmVxdWFscyh0aGlzLm1pbikmJnQubWF4LmVxdWFscyh0aGlzLm1heCl9fUxKdC5wcm90b3R5cGUuaXNCb3gzPSEwO2NvbnN0IFBKdD1bbmV3IENKdCxuZXcgQ0p0LG5ldyBDSnQsbmV3IENKdCxuZXcgQ0p0LG5ldyBDSnQsbmV3IENKdCxuZXcgQ0p0XSxOSnQ9bmV3IENKdCxJSnQ9bmV3IExKdCxSSnQ9bmV3IENKdCxPSnQ9bmV3IENKdCx6SnQ9bmV3IENKdCxESnQ9bmV3IENKdCxCSnQ9bmV3IENKdCxISnQ9bmV3IENKdCxGSnQ9bmV3IENKdCxWSnQ9bmV3IENKdCxVSnQ9bmV3IENKdCxqSnQ9bmV3IENKdDtmdW5jdGlvbiBHSnQodCxlLG4saSxyKXtmb3IobGV0IG89MCxhPXQubGVuZ3RoLTM7bzw9YTtvKz0zKXtqSnQuZnJvbUFycmF5KHQsbyk7Y29uc3QgYT1yLngqTWF0aC5hYnMoakp0LngpK3IueSpNYXRoLmFicyhqSnQueSkrci56Kk1hdGguYWJzKGpKdC56KSxzPWUuZG90KGpKdCksbD1uLmRvdChqSnQpLGM9aS5kb3Qoakp0KTtpZihNYXRoLm1heCgtTWF0aC5tYXgocyxsLGMpLE1hdGgubWluKHMsbCxjKSk+YSlyZXR1cm4hMX1yZXR1cm4hMH1jb25zdCBXSnQ9bmV3IExKdCxxSnQ9bmV3IENKdCxZSnQ9bmV3IENKdCxYSnQ9bmV3IENKdDtjbGFzcyAkSnR7Y29uc3RydWN0b3IodD1uZXcgQ0p0LGU9LTEpe3RoaXMuY2VudGVyPXQsdGhpcy5yYWRpdXM9ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5jZW50ZXIuY29weSh0KSx0aGlzLnJhZGl1cz1lLHRoaXN9c2V0RnJvbVBvaW50cyh0LGUpe2NvbnN0IG49dGhpcy5jZW50ZXI7dm9pZCAwIT09ZT9uLmNvcHkoZSk6V0p0LnNldEZyb21Qb2ludHModCkuZ2V0Q2VudGVyKG4pO2xldCBpPTA7Zm9yKGxldCBlPTAscj10Lmxlbmd0aDtlPHI7ZSsrKWk9TWF0aC5tYXgoaSxuLmRpc3RhbmNlVG9TcXVhcmVkKHRbZV0pKTtyZXR1cm4gdGhpcy5yYWRpdXM9TWF0aC5zcXJ0KGkpLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpc31pc0VtcHR5KCl7cmV0dXJuIHRoaXMucmFkaXVzPDB9bWFrZUVtcHR5KCl7cmV0dXJuIHRoaXMuY2VudGVyLnNldCgwLDAsMCksdGhpcy5yYWRpdXM9LTEsdGhpc31jb250YWluc1BvaW50KHQpe3JldHVybiB0LmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuY2VudGVyKTw9dGhpcy5yYWRpdXMqdGhpcy5yYWRpdXN9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiB0LmRpc3RhbmNlVG8odGhpcy5jZW50ZXIpLXRoaXMucmFkaXVzfWludGVyc2VjdHNTcGhlcmUodCl7Y29uc3QgZT10aGlzLnJhZGl1cyt0LnJhZGl1cztyZXR1cm4gdC5jZW50ZXIuZGlzdGFuY2VUb1NxdWFyZWQodGhpcy5jZW50ZXIpPD1lKmV9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzU3BoZXJlKHRoaXMpfWludGVyc2VjdHNQbGFuZSh0KXtyZXR1cm4gTWF0aC5hYnModC5kaXN0YW5jZVRvUG9pbnQodGhpcy5jZW50ZXIpKTw9dGhpcy5yYWRpdXN9Y2xhbXBQb2ludCh0LGUpe2NvbnN0IG49dGhpcy5jZW50ZXIuZGlzdGFuY2VUb1NxdWFyZWQodCk7cmV0dXJuIGUuY29weSh0KSxuPnRoaXMucmFkaXVzKnRoaXMucmFkaXVzJiYoZS5zdWIodGhpcy5jZW50ZXIpLm5vcm1hbGl6ZSgpLGUubXVsdGlwbHlTY2FsYXIodGhpcy5yYWRpdXMpLmFkZCh0aGlzLmNlbnRlcikpLGV9Z2V0Qm91bmRpbmdCb3godCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpPyh0Lm1ha2VFbXB0eSgpLHQpOih0LnNldCh0aGlzLmNlbnRlcix0aGlzLmNlbnRlciksdC5leHBhbmRCeVNjYWxhcih0aGlzLnJhZGl1cyksdCl9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLmNlbnRlci5hcHBseU1hdHJpeDQodCksdGhpcy5yYWRpdXM9dGhpcy5yYWRpdXMqdC5nZXRNYXhTY2FsZU9uQXhpcygpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLmNlbnRlci5hZGQodCksdGhpc31leHBhbmRCeVBvaW50KHQpe1hKdC5zdWJWZWN0b3JzKHQsdGhpcy5jZW50ZXIpO2NvbnN0IGU9WEp0Lmxlbmd0aFNxKCk7aWYoZT50aGlzLnJhZGl1cyp0aGlzLnJhZGl1cyl7Y29uc3QgdD1NYXRoLnNxcnQoZSksbj0uNSoodC10aGlzLnJhZGl1cyk7dGhpcy5jZW50ZXIuYWRkKFhKdC5tdWx0aXBseVNjYWxhcihuL3QpKSx0aGlzLnJhZGl1cys9bn1yZXR1cm4gdGhpc311bmlvbih0KXtyZXR1cm4gWUp0LnN1YlZlY3RvcnModC5jZW50ZXIsdGhpcy5jZW50ZXIpLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHQucmFkaXVzKSx0aGlzLmV4cGFuZEJ5UG9pbnQocUp0LmNvcHkodC5jZW50ZXIpLmFkZChZSnQpKSx0aGlzLmV4cGFuZEJ5UG9pbnQocUp0LmNvcHkodC5jZW50ZXIpLnN1YihZSnQpKSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5jZW50ZXIuZXF1YWxzKHRoaXMuY2VudGVyKSYmdC5yYWRpdXM9PT10aGlzLnJhZGl1c31jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19Y29uc3QgS0p0PW5ldyBDSnQsWkp0PW5ldyBDSnQsSkp0PW5ldyBDSnQsUUp0PW5ldyBDSnQsdFF0PW5ldyBDSnQsZVF0PW5ldyBDSnQsblF0PW5ldyBDSnQ7Y2xhc3MgaVF0e2NvbnN0cnVjdG9yKHQ9bmV3IENKdCxlPW5ldyBDSnQoMCwwLC0xKSl7dGhpcy5vcmlnaW49dCx0aGlzLmRpcmVjdGlvbj1lfXNldCh0LGUpe3JldHVybiB0aGlzLm9yaWdpbi5jb3B5KHQpLHRoaXMuZGlyZWN0aW9uLmNvcHkoZSksdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm9yaWdpbi5jb3B5KHQub3JpZ2luKSx0aGlzLmRpcmVjdGlvbi5jb3B5KHQuZGlyZWN0aW9uKSx0aGlzfWF0KHQsZSl7cmV0dXJuIGUuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIodCkuYWRkKHRoaXMub3JpZ2luKX1sb29rQXQodCl7cmV0dXJuIHRoaXMuZGlyZWN0aW9uLmNvcHkodCkuc3ViKHRoaXMub3JpZ2luKS5ub3JtYWxpemUoKSx0aGlzfXJlY2FzdCh0KXtyZXR1cm4gdGhpcy5vcmlnaW4uY29weSh0aGlzLmF0KHQsS0p0KSksdGhpc31jbG9zZXN0UG9pbnRUb1BvaW50KHQsZSl7ZS5zdWJWZWN0b3JzKHQsdGhpcy5vcmlnaW4pO2NvbnN0IG49ZS5kb3QodGhpcy5kaXJlY3Rpb24pO3JldHVybiBuPDA/ZS5jb3B5KHRoaXMub3JpZ2luKTplLmNvcHkodGhpcy5kaXJlY3Rpb24pLm11bHRpcGx5U2NhbGFyKG4pLmFkZCh0aGlzLm9yaWdpbil9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiBNYXRoLnNxcnQodGhpcy5kaXN0YW5jZVNxVG9Qb2ludCh0KSl9ZGlzdGFuY2VTcVRvUG9pbnQodCl7Y29uc3QgZT1LSnQuc3ViVmVjdG9ycyh0LHRoaXMub3JpZ2luKS5kb3QodGhpcy5kaXJlY3Rpb24pO3JldHVybiBlPDA/dGhpcy5vcmlnaW4uZGlzdGFuY2VUb1NxdWFyZWQodCk6KEtKdC5jb3B5KHRoaXMuZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcihlKS5hZGQodGhpcy5vcmlnaW4pLEtKdC5kaXN0YW5jZVRvU3F1YXJlZCh0KSl9ZGlzdGFuY2VTcVRvU2VnbWVudCh0LGUsbixpKXtaSnQuY29weSh0KS5hZGQoZSkubXVsdGlwbHlTY2FsYXIoLjUpLEpKdC5jb3B5KGUpLnN1Yih0KS5ub3JtYWxpemUoKSxRSnQuY29weSh0aGlzLm9yaWdpbikuc3ViKFpKdCk7Y29uc3Qgcj0uNSp0LmRpc3RhbmNlVG8oZSksbz0tdGhpcy5kaXJlY3Rpb24uZG90KEpKdCksYT1RSnQuZG90KHRoaXMuZGlyZWN0aW9uKSxzPS1RSnQuZG90KEpKdCksbD1RSnQubGVuZ3RoU3EoKSxjPU1hdGguYWJzKDEtbypvKTtsZXQgdSxoLGQscDtpZihjPjApaWYodT1vKnMtYSxoPW8qYS1zLHA9cipjLHU+PTApaWYoaD49LXApaWYoaDw9cCl7Y29uc3QgdD0xL2M7dSo9dCxoKj10LGQ9dSoodStvKmgrMiphKStoKihvKnUraCsyKnMpK2x9ZWxzZSBoPXIsdT1NYXRoLm1heCgwLC0obypoK2EpKSxkPS11KnUraCooaCsyKnMpK2w7ZWxzZSBoPS1yLHU9TWF0aC5tYXgoMCwtKG8qaCthKSksZD0tdSp1K2gqKGgrMipzKStsO2Vsc2UgaDw9LXA/KHU9TWF0aC5tYXgoMCwtKC1vKnIrYSkpLGg9dT4wPy1yOk1hdGgubWluKE1hdGgubWF4KC1yLC1zKSxyKSxkPS11KnUraCooaCsyKnMpK2wpOmg8PXA/KHU9MCxoPU1hdGgubWluKE1hdGgubWF4KC1yLC1zKSxyKSxkPWgqKGgrMipzKStsKToodT1NYXRoLm1heCgwLC0obypyK2EpKSxoPXU+MD9yOk1hdGgubWluKE1hdGgubWF4KC1yLC1zKSxyKSxkPS11KnUraCooaCsyKnMpK2wpO2Vsc2UgaD1vPjA/LXI6cix1PU1hdGgubWF4KDAsLShvKmgrYSkpLGQ9LXUqdStoKihoKzIqcykrbDtyZXR1cm4gbiYmbi5jb3B5KHRoaXMuZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcih1KS5hZGQodGhpcy5vcmlnaW4pLGkmJmkuY29weShKSnQpLm11bHRpcGx5U2NhbGFyKGgpLmFkZChaSnQpLGR9aW50ZXJzZWN0U3BoZXJlKHQsZSl7S0p0LnN1YlZlY3RvcnModC5jZW50ZXIsdGhpcy5vcmlnaW4pO2NvbnN0IG49S0p0LmRvdCh0aGlzLmRpcmVjdGlvbiksaT1LSnQuZG90KEtKdCktbipuLHI9dC5yYWRpdXMqdC5yYWRpdXM7aWYoaT5yKXJldHVybiBudWxsO2NvbnN0IG89TWF0aC5zcXJ0KHItaSksYT1uLW8scz1uK287cmV0dXJuIGE8MCYmczwwP251bGw6dGhpcy5hdChhPDA/czphLGUpfWludGVyc2VjdHNTcGhlcmUodCl7cmV0dXJuIHRoaXMuZGlzdGFuY2VTcVRvUG9pbnQodC5jZW50ZXIpPD10LnJhZGl1cyp0LnJhZGl1c31kaXN0YW5jZVRvUGxhbmUodCl7Y29uc3QgZT10Lm5vcm1hbC5kb3QodGhpcy5kaXJlY3Rpb24pO2lmKDA9PT1lKXJldHVybiAwPT09dC5kaXN0YW5jZVRvUG9pbnQodGhpcy5vcmlnaW4pPzA6bnVsbDtjb25zdCBuPS0odGhpcy5vcmlnaW4uZG90KHQubm9ybWFsKSt0LmNvbnN0YW50KS9lO3JldHVybiBuPj0wP246bnVsbH1pbnRlcnNlY3RQbGFuZSh0LGUpe2NvbnN0IG49dGhpcy5kaXN0YW5jZVRvUGxhbmUodCk7cmV0dXJuIG51bGw9PT1uP251bGw6dGhpcy5hdChuLGUpfWludGVyc2VjdHNQbGFuZSh0KXtjb25zdCBlPXQuZGlzdGFuY2VUb1BvaW50KHRoaXMub3JpZ2luKTtyZXR1cm4gMD09PWV8fHQubm9ybWFsLmRvdCh0aGlzLmRpcmVjdGlvbikqZTwwfWludGVyc2VjdEJveCh0LGUpe2xldCBuLGkscixvLGEscztjb25zdCBsPTEvdGhpcy5kaXJlY3Rpb24ueCxjPTEvdGhpcy5kaXJlY3Rpb24ueSx1PTEvdGhpcy5kaXJlY3Rpb24ueixoPXRoaXMub3JpZ2luO3JldHVybiBsPj0wPyhuPSh0Lm1pbi54LWgueCkqbCxpPSh0Lm1heC54LWgueCkqbCk6KG49KHQubWF4LngtaC54KSpsLGk9KHQubWluLngtaC54KSpsKSxjPj0wPyhyPSh0Lm1pbi55LWgueSkqYyxvPSh0Lm1heC55LWgueSkqYyk6KHI9KHQubWF4LnktaC55KSpjLG89KHQubWluLnktaC55KSpjKSxuPm98fHI+aT9udWxsOigocj5ufHxuIT1uKSYmKG49ciksKG88aXx8aSE9aSkmJihpPW8pLHU+PTA/KGE9KHQubWluLnotaC56KSp1LHM9KHQubWF4LnotaC56KSp1KTooYT0odC5tYXguei1oLnopKnUscz0odC5taW4uei1oLnopKnUpLG4+c3x8YT5pP251bGw6KChhPm58fG4hPW4pJiYobj1hKSwoczxpfHxpIT1pKSYmKGk9cyksaTwwP251bGw6dGhpcy5hdChuPj0wP246aSxlKSkpfWludGVyc2VjdHNCb3godCl7cmV0dXJuIG51bGwhPT10aGlzLmludGVyc2VjdEJveCh0LEtKdCl9aW50ZXJzZWN0VHJpYW5nbGUodCxlLG4saSxyKXt0UXQuc3ViVmVjdG9ycyhlLHQpLGVRdC5zdWJWZWN0b3JzKG4sdCksblF0LmNyb3NzVmVjdG9ycyh0UXQsZVF0KTtsZXQgbyxhPXRoaXMuZGlyZWN0aW9uLmRvdChuUXQpO2lmKGE+MCl7aWYoaSlyZXR1cm4gbnVsbDtvPTF9ZWxzZXtpZighKGE8MCkpcmV0dXJuIG51bGw7bz0tMSxhPS1hfVFKdC5zdWJWZWN0b3JzKHRoaXMub3JpZ2luLHQpO2NvbnN0IHM9byp0aGlzLmRpcmVjdGlvbi5kb3QoZVF0LmNyb3NzVmVjdG9ycyhRSnQsZVF0KSk7aWYoczwwKXJldHVybiBudWxsO2NvbnN0IGw9byp0aGlzLmRpcmVjdGlvbi5kb3QodFF0LmNyb3NzKFFKdCkpO2lmKGw8MClyZXR1cm4gbnVsbDtpZihzK2w+YSlyZXR1cm4gbnVsbDtjb25zdCBjPS1vKlFKdC5kb3QoblF0KTtyZXR1cm4gYzwwP251bGw6dGhpcy5hdChjL2Escil9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLm9yaWdpbi5hcHBseU1hdHJpeDQodCksdGhpcy5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm9yaWdpbi5lcXVhbHModGhpcy5vcmlnaW4pJiZ0LmRpcmVjdGlvbi5lcXVhbHModGhpcy5kaXJlY3Rpb24pfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX1jbGFzcyByUXR7Y29uc3RydWN0b3IoKXt0aGlzLmVsZW1lbnRzPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSxhcmd1bWVudHMubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IHRoZSBjb25zdHJ1Y3RvciBubyBsb25nZXIgcmVhZHMgYXJndW1lbnRzLiB1c2UgLnNldCgpIGluc3RlYWQuIil9c2V0KHQsZSxuLGkscixvLGEscyxsLGMsdSxoLGQscCxmLG0pe2NvbnN0IGc9dGhpcy5lbGVtZW50cztyZXR1cm4gZ1swXT10LGdbNF09ZSxnWzhdPW4sZ1sxMl09aSxnWzFdPXIsZ1s1XT1vLGdbOV09YSxnWzEzXT1zLGdbMl09bCxnWzZdPWMsZ1sxMF09dSxnWzE0XT1oLGdbM109ZCxnWzddPXAsZ1sxMV09ZixnWzE1XT1tLHRoaXN9aWRlbnRpdHkoKXtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMSksdGhpc31jbG9uZSgpe3JldHVybihuZXcgclF0KS5mcm9tQXJyYXkodGhpcy5lbGVtZW50cyl9Y29weSh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzO3JldHVybiBlWzBdPW5bMF0sZVsxXT1uWzFdLGVbMl09blsyXSxlWzNdPW5bM10sZVs0XT1uWzRdLGVbNV09bls1XSxlWzZdPW5bNl0sZVs3XT1uWzddLGVbOF09bls4XSxlWzldPW5bOV0sZVsxMF09blsxMF0sZVsxMV09blsxMV0sZVsxMl09blsxMl0sZVsxM109blsxM10sZVsxNF09blsxNF0sZVsxNV09blsxNV0sdGhpc31jb3B5UG9zaXRpb24odCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztyZXR1cm4gZVsxMl09blsxMl0sZVsxM109blsxM10sZVsxNF09blsxNF0sdGhpc31zZXRGcm9tTWF0cml4Myh0KXtjb25zdCBlPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMuc2V0KGVbMF0sZVszXSxlWzZdLDAsZVsxXSxlWzRdLGVbN10sMCxlWzJdLGVbNV0sZVs4XSwwLDAsMCwwLDEpLHRoaXN9ZXh0cmFjdEJhc2lzKHQsZSxuKXtyZXR1cm4gdC5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMCksZS5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMSksbi5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMiksdGhpc31tYWtlQmFzaXModCxlLG4pe3JldHVybiB0aGlzLnNldCh0LngsZS54LG4ueCwwLHQueSxlLnksbi55LDAsdC56LGUueixuLnosMCwwLDAsMCwxKSx0aGlzfWV4dHJhY3RSb3RhdGlvbih0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzLGk9MS9vUXQuc2V0RnJvbU1hdHJpeENvbHVtbih0LDApLmxlbmd0aCgpLHI9MS9vUXQuc2V0RnJvbU1hdHJpeENvbHVtbih0LDEpLmxlbmd0aCgpLG89MS9vUXQuc2V0RnJvbU1hdHJpeENvbHVtbih0LDIpLmxlbmd0aCgpO3JldHVybiBlWzBdPW5bMF0qaSxlWzFdPW5bMV0qaSxlWzJdPW5bMl0qaSxlWzNdPTAsZVs0XT1uWzRdKnIsZVs1XT1uWzVdKnIsZVs2XT1uWzZdKnIsZVs3XT0wLGVbOF09bls4XSpvLGVbOV09bls5XSpvLGVbMTBdPW5bMTBdKm8sZVsxMV09MCxlWzEyXT0wLGVbMTNdPTAsZVsxNF09MCxlWzE1XT0xLHRoaXN9bWFrZVJvdGF0aW9uRnJvbUV1bGVyKHQpe3QmJnQuaXNFdWxlcnx8Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLm1ha2VSb3RhdGlvbkZyb21FdWxlcigpIG5vdyBleHBlY3RzIGEgRXVsZXIgcm90YXRpb24gcmF0aGVyIHRoYW4gYSBWZWN0b3IzIGFuZCBvcmRlci4iKTtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LngsaT10Lnkscj10Lnosbz1NYXRoLmNvcyhuKSxhPU1hdGguc2luKG4pLHM9TWF0aC5jb3MoaSksbD1NYXRoLnNpbihpKSxjPU1hdGguY29zKHIpLHU9TWF0aC5zaW4ocik7aWYoIlhZWiI9PT10Lm9yZGVyKXtjb25zdCB0PW8qYyxuPW8qdSxpPWEqYyxyPWEqdTtlWzBdPXMqYyxlWzRdPS1zKnUsZVs4XT1sLGVbMV09bitpKmwsZVs1XT10LXIqbCxlWzldPS1hKnMsZVsyXT1yLXQqbCxlWzZdPWkrbipsLGVbMTBdPW8qc31lbHNlIGlmKCJZWFoiPT09dC5vcmRlcil7Y29uc3QgdD1zKmMsbj1zKnUsaT1sKmMscj1sKnU7ZVswXT10K3IqYSxlWzRdPWkqYS1uLGVbOF09bypsLGVbMV09byp1LGVbNV09bypjLGVbOV09LWEsZVsyXT1uKmEtaSxlWzZdPXIrdCphLGVbMTBdPW8qc31lbHNlIGlmKCJaWFkiPT09dC5vcmRlcil7Y29uc3QgdD1zKmMsbj1zKnUsaT1sKmMscj1sKnU7ZVswXT10LXIqYSxlWzRdPS1vKnUsZVs4XT1pK24qYSxlWzFdPW4raSphLGVbNV09bypjLGVbOV09ci10KmEsZVsyXT0tbypsLGVbNl09YSxlWzEwXT1vKnN9ZWxzZSBpZigiWllYIj09PXQub3JkZXIpe2NvbnN0IHQ9bypjLG49byp1LGk9YSpjLHI9YSp1O2VbMF09cypjLGVbNF09aSpsLW4sZVs4XT10KmwrcixlWzFdPXMqdSxlWzVdPXIqbCt0LGVbOV09bipsLWksZVsyXT0tbCxlWzZdPWEqcyxlWzEwXT1vKnN9ZWxzZSBpZigiWVpYIj09PXQub3JkZXIpe2NvbnN0IHQ9bypzLG49bypsLGk9YSpzLHI9YSpsO2VbMF09cypjLGVbNF09ci10KnUsZVs4XT1pKnUrbixlWzFdPXUsZVs1XT1vKmMsZVs5XT0tYSpjLGVbMl09LWwqYyxlWzZdPW4qdStpLGVbMTBdPXQtcip1fWVsc2UgaWYoIlhaWSI9PT10Lm9yZGVyKXtjb25zdCB0PW8qcyxuPW8qbCxpPWEqcyxyPWEqbDtlWzBdPXMqYyxlWzRdPS11LGVbOF09bCpjLGVbMV09dCp1K3IsZVs1XT1vKmMsZVs5XT1uKnUtaSxlWzJdPWkqdS1uLGVbNl09YSpjLGVbMTBdPXIqdSt0fXJldHVybiBlWzNdPTAsZVs3XT0wLGVbMTFdPTAsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTAsZVsxNV09MSx0aGlzfW1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpe3JldHVybiB0aGlzLmNvbXBvc2Uoc1F0LHQsbFF0KX1sb29rQXQodCxlLG4pe2NvbnN0IGk9dGhpcy5lbGVtZW50cztyZXR1cm4gaFF0LnN1YlZlY3RvcnModCxlKSwwPT09aFF0Lmxlbmd0aFNxKCkmJihoUXQuej0xKSxoUXQubm9ybWFsaXplKCksY1F0LmNyb3NzVmVjdG9ycyhuLGhRdCksMD09PWNRdC5sZW5ndGhTcSgpJiYoMT09PU1hdGguYWJzKG4ueik/aFF0LngrPTFlLTQ6aFF0LnorPTFlLTQsaFF0Lm5vcm1hbGl6ZSgpLGNRdC5jcm9zc1ZlY3RvcnMobixoUXQpKSxjUXQubm9ybWFsaXplKCksdVF0LmNyb3NzVmVjdG9ycyhoUXQsY1F0KSxpWzBdPWNRdC54LGlbNF09dVF0LngsaVs4XT1oUXQueCxpWzFdPWNRdC55LGlbNV09dVF0LnksaVs5XT1oUXQueSxpWzJdPWNRdC56LGlbNl09dVF0LnosaVsxMF09aFF0LnosdGhpc31tdWx0aXBseSh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseSgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLm11bHRpcGx5TWF0cmljZXMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0LGUpKTp0aGlzLm11bHRpcGx5TWF0cmljZXModGhpcyx0KX1wcmVtdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5tdWx0aXBseU1hdHJpY2VzKHQsdGhpcyl9bXVsdGlwbHlNYXRyaWNlcyh0LGUpe2NvbnN0IG49dC5lbGVtZW50cyxpPWUuZWxlbWVudHMscj10aGlzLmVsZW1lbnRzLG89blswXSxhPW5bNF0scz1uWzhdLGw9blsxMl0sYz1uWzFdLHU9bls1XSxoPW5bOV0sZD1uWzEzXSxwPW5bMl0sZj1uWzZdLG09blsxMF0sZz1uWzE0XSxfPW5bM10seT1uWzddLHY9blsxMV0sYj1uWzE1XSx4PWlbMF0sdz1pWzRdLFM9aVs4XSxNPWlbMTJdLEU9aVsxXSxUPWlbNV0sQz1pWzldLEE9aVsxM10saz1pWzJdLEw9aVs2XSxQPWlbMTBdLE49aVsxNF0sST1pWzNdLFI9aVs3XSxPPWlbMTFdLHo9aVsxNV07cmV0dXJuIHJbMF09byp4K2EqRStzKmsrbCpJLHJbNF09byp3K2EqVCtzKkwrbCpSLHJbOF09bypTK2EqQytzKlArbCpPLHJbMTJdPW8qTSthKkErcypOK2wqeixyWzFdPWMqeCt1KkUraCprK2QqSSxyWzVdPWMqdyt1KlQraCpMK2QqUixyWzldPWMqUyt1KkMraCpQK2QqTyxyWzEzXT1jKk0rdSpBK2gqTitkKnosclsyXT1wKngrZipFK20qaytnKkkscls2XT1wKncrZipUK20qTCtnKlIsclsxMF09cCpTK2YqQyttKlArZypPLHJbMTRdPXAqTStmKkErbSpOK2cqeixyWzNdPV8qeCt5KkUrdiprK2IqSSxyWzddPV8qdyt5KlQrdipMK2IqUixyWzExXT1fKlMreSpDK3YqUCtiKk8sclsxNV09XypNK3kqQSt2Kk4rYip6LHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzO3JldHVybiBlWzBdKj10LGVbNF0qPXQsZVs4XSo9dCxlWzEyXSo9dCxlWzFdKj10LGVbNV0qPXQsZVs5XSo9dCxlWzEzXSo9dCxlWzJdKj10LGVbNl0qPXQsZVsxMF0qPXQsZVsxNF0qPXQsZVszXSo9dCxlWzddKj10LGVbMTFdKj10LGVbMTVdKj10LHRoaXN9ZGV0ZXJtaW5hbnQoKXtjb25zdCB0PXRoaXMuZWxlbWVudHMsZT10WzBdLG49dFs0XSxpPXRbOF0scj10WzEyXSxvPXRbMV0sYT10WzVdLHM9dFs5XSxsPXRbMTNdLGM9dFsyXSx1PXRbNl0saD10WzEwXSxkPXRbMTRdO3JldHVybiB0WzNdKigrcipzKnUtaSpsKnUtciphKmgrbipsKmgraSphKmQtbipzKmQpK3RbN10qKCtlKnMqZC1lKmwqaCtyKm8qaC1pKm8qZCtpKmwqYy1yKnMqYykrdFsxMV0qKCtlKmwqdS1lKmEqZC1yKm8qdStuKm8qZCtyKmEqYy1uKmwqYykrdFsxNV0qKC1pKmEqYy1lKnMqdStlKmEqaCtpKm8qdS1uKm8qaCtuKnMqYyl9dHJhbnNwb3NlKCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzO2xldCBlO3JldHVybiBlPXRbMV0sdFsxXT10WzRdLHRbNF09ZSxlPXRbMl0sdFsyXT10WzhdLHRbOF09ZSxlPXRbNl0sdFs2XT10WzldLHRbOV09ZSxlPXRbM10sdFszXT10WzEyXSx0WzEyXT1lLGU9dFs3XSx0WzddPXRbMTNdLHRbMTNdPWUsZT10WzExXSx0WzExXT10WzE0XSx0WzE0XT1lLHRoaXN9c2V0UG9zaXRpb24odCxlLG4pe2NvbnN0IGk9dGhpcy5lbGVtZW50cztyZXR1cm4gdC5pc1ZlY3RvcjM/KGlbMTJdPXQueCxpWzEzXT10LnksaVsxNF09dC56KTooaVsxMl09dCxpWzEzXT1lLGlbMTRdPW4pLHRoaXN9aW52ZXJ0KCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxuPXRbMV0saT10WzJdLHI9dFszXSxvPXRbNF0sYT10WzVdLHM9dFs2XSxsPXRbN10sYz10WzhdLHU9dFs5XSxoPXRbMTBdLGQ9dFsxMV0scD10WzEyXSxmPXRbMTNdLG09dFsxNF0sZz10WzE1XSxfPXUqbSpsLWYqaCpsK2YqcypkLWEqbSpkLXUqcypnK2EqaCpnLHk9cCpoKmwtYyptKmwtcCpzKmQrbyptKmQrYypzKmctbypoKmcsdj1jKmYqbC1wKnUqbCtwKmEqZC1vKmYqZC1jKmEqZytvKnUqZyxiPXAqdSpzLWMqZipzLXAqYSpoK28qZipoK2MqYSptLW8qdSptLHg9ZSpfK24qeStpKnYrcipiO2lmKDA9PT14KXJldHVybiB0aGlzLnNldCgwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwKTtjb25zdCB3PTEveDtyZXR1cm4gdFswXT1fKncsdFsxXT0oZipoKnItdSptKnItZippKmQrbiptKmQrdSppKmctbipoKmcpKncsdFsyXT0oYSptKnItZipzKnIrZippKmwtbiptKmwtYSppKmcrbipzKmcpKncsdFszXT0odSpzKnItYSpoKnItdSppKmwrbipoKmwrYSppKmQtbipzKmQpKncsdFs0XT15KncsdFs1XT0oYyptKnItcCpoKnIrcCppKmQtZSptKmQtYyppKmcrZSpoKmcpKncsdFs2XT0ocCpzKnItbyptKnItcCppKmwrZSptKmwrbyppKmctZSpzKmcpKncsdFs3XT0obypoKnItYypzKnIrYyppKmwtZSpoKmwtbyppKmQrZSpzKmQpKncsdFs4XT12KncsdFs5XT0ocCp1KnItYypmKnItcCpuKmQrZSpmKmQrYypuKmctZSp1KmcpKncsdFsxMF09KG8qZipyLXAqYSpyK3AqbipsLWUqZipsLW8qbipnK2UqYSpnKSp3LHRbMTFdPShjKmEqci1vKnUqci1jKm4qbCtlKnUqbCtvKm4qZC1lKmEqZCkqdyx0WzEyXT1iKncsdFsxM109KGMqZippLXAqdSppK3AqbipoLWUqZipoLWMqbiptK2UqdSptKSp3LHRbMTRdPShwKmEqaS1vKmYqaS1wKm4qcytlKmYqcytvKm4qbS1lKmEqbSkqdyx0WzE1XT0obyp1KmktYyphKmkrYypuKnMtZSp1KnMtbypuKmgrZSphKmgpKncsdGhpc31zY2FsZSh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LngsaT10Lnkscj10Lno7cmV0dXJuIGVbMF0qPW4sZVs0XSo9aSxlWzhdKj1yLGVbMV0qPW4sZVs1XSo9aSxlWzldKj1yLGVbMl0qPW4sZVs2XSo9aSxlWzEwXSo9cixlWzNdKj1uLGVbN10qPWksZVsxMV0qPXIsdGhpc31nZXRNYXhTY2FsZU9uQXhpcygpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cztyZXR1cm4gTWF0aC5zcXJ0KE1hdGgubWF4KHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdLHRbNF0qdFs0XSt0WzVdKnRbNV0rdFs2XSp0WzZdLHRbOF0qdFs4XSt0WzldKnRbOV0rdFsxMF0qdFsxMF0pKX1tYWtlVHJhbnNsYXRpb24odCxlLG4pe3JldHVybiB0aGlzLnNldCgxLDAsMCx0LDAsMSwwLGUsMCwwLDEsbiwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvblgodCl7Y29uc3QgZT1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpO3JldHVybiB0aGlzLnNldCgxLDAsMCwwLDAsZSwtbiwwLDAsbixlLDAsMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25ZKHQpe2NvbnN0IGU9TWF0aC5jb3ModCksbj1NYXRoLnNpbih0KTtyZXR1cm4gdGhpcy5zZXQoZSwwLG4sMCwwLDEsMCwwLC1uLDAsZSwwLDAsMCwwLDEpLHRoaXN9bWFrZVJvdGF0aW9uWih0KXtjb25zdCBlPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCk7cmV0dXJuIHRoaXMuc2V0KGUsLW4sMCwwLG4sZSwwLDAsMCwwLDEsMCwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvbkF4aXModCxlKXtjb25zdCBuPU1hdGguY29zKGUpLGk9TWF0aC5zaW4oZSkscj0xLW4sbz10LngsYT10Lnkscz10LnosbD1yKm8sYz1yKmE7cmV0dXJuIHRoaXMuc2V0KGwqbytuLGwqYS1pKnMsbCpzK2kqYSwwLGwqYStpKnMsYyphK24sYypzLWkqbywwLGwqcy1pKmEsYypzK2kqbyxyKnMqcytuLDAsMCwwLDAsMSksdGhpc31tYWtlU2NhbGUodCxlLG4pe3JldHVybiB0aGlzLnNldCh0LDAsMCwwLDAsZSwwLDAsMCwwLG4sMCwwLDAsMCwxKSx0aGlzfW1ha2VTaGVhcih0LGUsbixpLHIsbyl7cmV0dXJuIHRoaXMuc2V0KDEsbixyLDAsdCwxLG8sMCxlLGksMSwwLDAsMCwwLDEpLHRoaXN9Y29tcG9zZSh0LGUsbil7Y29uc3QgaT10aGlzLmVsZW1lbnRzLHI9ZS5feCxvPWUuX3ksYT1lLl96LHM9ZS5fdyxsPXIrcixjPW8rbyx1PWErYSxoPXIqbCxkPXIqYyxwPXIqdSxmPW8qYyxtPW8qdSxnPWEqdSxfPXMqbCx5PXMqYyx2PXMqdSxiPW4ueCx4PW4ueSx3PW4uejtyZXR1cm4gaVswXT0oMS0oZitnKSkqYixpWzFdPShkK3YpKmIsaVsyXT0ocC15KSpiLGlbM109MCxpWzRdPShkLXYpKngsaVs1XT0oMS0oaCtnKSkqeCxpWzZdPShtK18pKngsaVs3XT0wLGlbOF09KHAreSkqdyxpWzldPShtLV8pKncsaVsxMF09KDEtKGgrZikpKncsaVsxMV09MCxpWzEyXT10LngsaVsxM109dC55LGlbMTRdPXQueixpWzE1XT0xLHRoaXN9ZGVjb21wb3NlKHQsZSxuKXtjb25zdCBpPXRoaXMuZWxlbWVudHM7bGV0IHI9b1F0LnNldChpWzBdLGlbMV0saVsyXSkubGVuZ3RoKCk7Y29uc3Qgbz1vUXQuc2V0KGlbNF0saVs1XSxpWzZdKS5sZW5ndGgoKSxhPW9RdC5zZXQoaVs4XSxpWzldLGlbMTBdKS5sZW5ndGgoKTt0aGlzLmRldGVybWluYW50KCk8MCYmKHI9LXIpLHQueD1pWzEyXSx0Lnk9aVsxM10sdC56PWlbMTRdLGFRdC5jb3B5KHRoaXMpO2NvbnN0IHM9MS9yLGw9MS9vLGM9MS9hO3JldHVybiBhUXQuZWxlbWVudHNbMF0qPXMsYVF0LmVsZW1lbnRzWzFdKj1zLGFRdC5lbGVtZW50c1syXSo9cyxhUXQuZWxlbWVudHNbNF0qPWwsYVF0LmVsZW1lbnRzWzVdKj1sLGFRdC5lbGVtZW50c1s2XSo9bCxhUXQuZWxlbWVudHNbOF0qPWMsYVF0LmVsZW1lbnRzWzldKj1jLGFRdC5lbGVtZW50c1sxMF0qPWMsZS5zZXRGcm9tUm90YXRpb25NYXRyaXgoYVF0KSxuLng9cixuLnk9byxuLno9YSx0aGlzfW1ha2VQZXJzcGVjdGl2ZSh0LGUsbixpLHIsbyl7dm9pZCAwPT09byYmY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubWFrZVBlcnNwZWN0aXZlKCkgaGFzIGJlZW4gcmVkZWZpbmVkIGFuZCBoYXMgYSBuZXcgc2lnbmF0dXJlLiBQbGVhc2UgY2hlY2sgdGhlIGRvY3MuIik7Y29uc3QgYT10aGlzLmVsZW1lbnRzLHM9MipyLyhuLWkpLGw9KGUrdCkvKGUtdCksYz0obitpKS8obi1pKSx1PS0obytyKS8oby1yKSxoPS0yKm8qci8oby1yKTtyZXR1cm4gYVswXT0yKnIvKGUtdCksYVs0XT0wLGFbOF09bCxhWzEyXT0wLGFbMV09MCxhWzVdPXMsYVs5XT1jLGFbMTNdPTAsYVsyXT0wLGFbNl09MCxhWzEwXT11LGFbMTRdPWgsYVszXT0wLGFbN109MCxhWzExXT0tMSxhWzE1XT0wLHRoaXN9bWFrZU9ydGhvZ3JhcGhpYyh0LGUsbixpLHIsbyl7Y29uc3QgYT10aGlzLmVsZW1lbnRzLHM9MS8oZS10KSxsPTEvKG4taSksYz0xLyhvLXIpLHU9KGUrdCkqcyxoPShuK2kpKmwsZD0obytyKSpjO3JldHVybiBhWzBdPTIqcyxhWzRdPTAsYVs4XT0wLGFbMTJdPS11LGFbMV09MCxhWzVdPTIqbCxhWzldPTAsYVsxM109LWgsYVsyXT0wLGFbNl09MCxhWzEwXT0tMipjLGFbMTRdPS1kLGFbM109MCxhWzddPTAsYVsxMV09MCxhWzE1XT0xLHRoaXN9ZXF1YWxzKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7Zm9yKGxldCB0PTA7dDwxNjt0KyspaWYoZVt0XSE9PW5bdF0pcmV0dXJuITE7cmV0dXJuITB9ZnJvbUFycmF5KHQsZT0wKXtmb3IobGV0IG49MDtuPDE2O24rKyl0aGlzLmVsZW1lbnRzW25dPXRbbitlXTtyZXR1cm4gdGhpc310b0FycmF5KHQ9W10sZT0wKXtjb25zdCBuPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbZV09blswXSx0W2UrMV09blsxXSx0W2UrMl09blsyXSx0W2UrM109blszXSx0W2UrNF09bls0XSx0W2UrNV09bls1XSx0W2UrNl09bls2XSx0W2UrN109bls3XSx0W2UrOF09bls4XSx0W2UrOV09bls5XSx0W2UrMTBdPW5bMTBdLHRbZSsxMV09blsxMV0sdFtlKzEyXT1uWzEyXSx0W2UrMTNdPW5bMTNdLHRbZSsxNF09blsxNF0sdFtlKzE1XT1uWzE1XSx0fX1yUXQucHJvdG90eXBlLmlzTWF0cml4ND0hMDtjb25zdCBvUXQ9bmV3IENKdCxhUXQ9bmV3IHJRdCxzUXQ9bmV3IENKdCgwLDAsMCksbFF0PW5ldyBDSnQoMSwxLDEpLGNRdD1uZXcgQ0p0LHVRdD1uZXcgQ0p0LGhRdD1uZXcgQ0p0LGRRdD1uZXcgclF0LHBRdD1uZXcgVEp0O2NsYXNzIGZRdHtjb25zdHJ1Y3Rvcih0PTAsZT0wLG49MCxpPWZRdC5EZWZhdWx0T3JkZXIpe3RoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1uLHRoaXMuX29yZGVyPWl9Z2V0IHgoKXtyZXR1cm4gdGhpcy5feH1zZXQgeCh0KXt0aGlzLl94PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB5KCl7cmV0dXJuIHRoaXMuX3l9c2V0IHkodCl7dGhpcy5feT10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeigpe3JldHVybiB0aGlzLl96fXNldCB6KHQpe3RoaXMuX3o9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IG9yZGVyKCl7cmV0dXJuIHRoaXMuX29yZGVyfXNldCBvcmRlcih0KXt0aGlzLl9vcmRlcj10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1zZXQodCxlLG4saT10aGlzLl9vcmRlcil7cmV0dXJuIHRoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1uLHRoaXMuX29yZGVyPWksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5feCx0aGlzLl95LHRoaXMuX3osdGhpcy5fb3JkZXIpfWNvcHkodCl7cmV0dXJuIHRoaXMuX3g9dC5feCx0aGlzLl95PXQuX3ksdGhpcy5fej10Ll96LHRoaXMuX29yZGVyPXQuX29yZGVyLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21Sb3RhdGlvbk1hdHJpeCh0LGU9dGhpcy5fb3JkZXIsbj0hMCl7Y29uc3QgaT10LmVsZW1lbnRzLHI9aVswXSxvPWlbNF0sYT1pWzhdLHM9aVsxXSxsPWlbNV0sYz1pWzldLHU9aVsyXSxoPWlbNl0sZD1pWzEwXTtzd2l0Y2goZSl7Y2FzZSJYWVoiOnRoaXMuX3k9TWF0aC5hc2luKCRadChhLC0xLDEpKSxNYXRoLmFicyhhKTwuOTk5OTk5OT8odGhpcy5feD1NYXRoLmF0YW4yKC1jLGQpLHRoaXMuX3o9TWF0aC5hdGFuMigtbyxyKSk6KHRoaXMuX3g9TWF0aC5hdGFuMihoLGwpLHRoaXMuX3o9MCk7YnJlYWs7Y2FzZSJZWFoiOnRoaXMuX3g9TWF0aC5hc2luKC0kWnQoYywtMSwxKSksTWF0aC5hYnMoYyk8Ljk5OTk5OTk/KHRoaXMuX3k9TWF0aC5hdGFuMihhLGQpLHRoaXMuX3o9TWF0aC5hdGFuMihzLGwpKToodGhpcy5feT1NYXRoLmF0YW4yKC11LHIpLHRoaXMuX3o9MCk7YnJlYWs7Y2FzZSJaWFkiOnRoaXMuX3g9TWF0aC5hc2luKCRadChoLC0xLDEpKSxNYXRoLmFicyhoKTwuOTk5OTk5OT8odGhpcy5feT1NYXRoLmF0YW4yKC11LGQpLHRoaXMuX3o9TWF0aC5hdGFuMigtbyxsKSk6KHRoaXMuX3k9MCx0aGlzLl96PU1hdGguYXRhbjIocyxyKSk7YnJlYWs7Y2FzZSJaWVgiOnRoaXMuX3k9TWF0aC5hc2luKC0kWnQodSwtMSwxKSksTWF0aC5hYnModSk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMihoLGQpLHRoaXMuX3o9TWF0aC5hdGFuMihzLHIpKToodGhpcy5feD0wLHRoaXMuX3o9TWF0aC5hdGFuMigtbyxsKSk7YnJlYWs7Y2FzZSJZWlgiOnRoaXMuX3o9TWF0aC5hc2luKCRadChzLC0xLDEpKSxNYXRoLmFicyhzKTwuOTk5OTk5OT8odGhpcy5feD1NYXRoLmF0YW4yKC1jLGwpLHRoaXMuX3k9TWF0aC5hdGFuMigtdSxyKSk6KHRoaXMuX3g9MCx0aGlzLl95PU1hdGguYXRhbjIoYSxkKSk7YnJlYWs7Y2FzZSJYWlkiOnRoaXMuX3o9TWF0aC5hc2luKC0kWnQobywtMSwxKSksTWF0aC5hYnMobyk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMihoLGwpLHRoaXMuX3k9TWF0aC5hdGFuMihhLHIpKToodGhpcy5feD1NYXRoLmF0YW4yKC1jLGQpLHRoaXMuX3k9MCk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oIlRIUkVFLkV1bGVyOiAuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgZW5jb3VudGVyZWQgYW4gdW5rbm93biBvcmRlcjogIitlKX1yZXR1cm4gdGhpcy5fb3JkZXI9ZSwhMD09PW4mJnRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21RdWF0ZXJuaW9uKHQsZSxuKXtyZXR1cm4gZFF0Lm1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpLHRoaXMuc2V0RnJvbVJvdGF0aW9uTWF0cml4KGRRdCxlLG4pfXNldEZyb21WZWN0b3IzKHQsZT10aGlzLl9vcmRlcil7cmV0dXJuIHRoaXMuc2V0KHQueCx0LnksdC56LGUpfXJlb3JkZXIodCl7cmV0dXJuIHBRdC5zZXRGcm9tRXVsZXIodGhpcyksdGhpcy5zZXRGcm9tUXVhdGVybmlvbihwUXQsdCl9ZXF1YWxzKHQpe3JldHVybiB0Ll94PT09dGhpcy5feCYmdC5feT09PXRoaXMuX3kmJnQuX3o9PT10aGlzLl96JiZ0Ll9vcmRlcj09PXRoaXMuX29yZGVyfWZyb21BcnJheSh0KXtyZXR1cm4gdGhpcy5feD10WzBdLHRoaXMuX3k9dFsxXSx0aGlzLl96PXRbMl0sdm9pZCAwIT09dFszXSYmKHRoaXMuX29yZGVyPXRbM10pLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMuX3gsdFtlKzFdPXRoaXMuX3ksdFtlKzJdPXRoaXMuX3osdFtlKzNdPXRoaXMuX29yZGVyLHR9dG9WZWN0b3IzKHQpe3JldHVybiB0P3Quc2V0KHRoaXMuX3gsdGhpcy5feSx0aGlzLl96KTpuZXcgQ0p0KHRoaXMuX3gsdGhpcy5feSx0aGlzLl96KX1fb25DaGFuZ2UodCl7cmV0dXJuIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2s9dCx0aGlzfV9vbkNoYW5nZUNhbGxiYWNrKCl7fX1mUXQucHJvdG90eXBlLmlzRXVsZXI9ITAsZlF0LkRlZmF1bHRPcmRlcj0iWFlaIixmUXQuUm90YXRpb25PcmRlcnM9WyJYWVoiLCJZWlgiLCJaWFkiLCJYWlkiLCJZWFoiLCJaWVgiXTtjbGFzcyBtUXR7Y29uc3RydWN0b3IoKXt0aGlzLm1hc2s9MX1zZXQodCl7dGhpcy5tYXNrPTE8PHR8MH1lbmFibGUodCl7dGhpcy5tYXNrfD0xPDx0fDB9ZW5hYmxlQWxsKCl7dGhpcy5tYXNrPS0xfXRvZ2dsZSh0KXt0aGlzLm1hc2tePTE8PHR8MH1kaXNhYmxlKHQpe3RoaXMubWFzayY9figxPDx0fDApfWRpc2FibGVBbGwoKXt0aGlzLm1hc2s9MH10ZXN0KHQpe3JldHVybiAwIT0odGhpcy5tYXNrJnQubWFzayl9fWxldCBnUXQ9MDtjb25zdCBfUXQ9bmV3IENKdCx5UXQ9bmV3IFRKdCx2UXQ9bmV3IHJRdCxiUXQ9bmV3IENKdCx4UXQ9bmV3IENKdCx3UXQ9bmV3IENKdCxTUXQ9bmV3IFRKdCxNUXQ9bmV3IENKdCgxLDAsMCksRVF0PW5ldyBDSnQoMCwxLDApLFRRdD1uZXcgQ0p0KDAsMCwxKSxDUXQ9e3R5cGU6ImFkZGVkIn0sQVF0PXt0eXBlOiJyZW1vdmVkIn07Y2xhc3Mga1F0IGV4dGVuZHMgalp0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTpnUXQrK30pLHRoaXMudXVpZD1YWnQoKSx0aGlzLm5hbWU9IiIsdGhpcy50eXBlPSJPYmplY3QzRCIsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuPVtdLHRoaXMudXA9a1F0LkRlZmF1bHRVcC5jbG9uZSgpO2NvbnN0IHQ9bmV3IENKdCxlPW5ldyBmUXQsbj1uZXcgVEp0LGk9bmV3IENKdCgxLDEsMSk7ZS5fb25DaGFuZ2UoKGZ1bmN0aW9uIHIoKXtuLnNldEZyb21FdWxlcihlLCExKX0pKSxuLl9vbkNoYW5nZSgoZnVuY3Rpb24gbygpe2Uuc2V0RnJvbVF1YXRlcm5pb24obix2b2lkIDAsITEpfSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse3Bvc2l0aW9uOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTp0fSxyb3RhdGlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZX0scXVhdGVybmlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6bn0sc2NhbGU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOml9LG1vZGVsVmlld01hdHJpeDp7dmFsdWU6bmV3IHJRdH0sbm9ybWFsTWF0cml4Ont2YWx1ZTpuZXcgZ0p0fX0pLHRoaXMubWF0cml4PW5ldyByUXQsdGhpcy5tYXRyaXhXb3JsZD1uZXcgclF0LHRoaXMubWF0cml4QXV0b1VwZGF0ZT1rUXQuRGVmYXVsdE1hdHJpeEF1dG9VcGRhdGUsdGhpcy5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSExLHRoaXMubGF5ZXJzPW5ldyBtUXQsdGhpcy52aXNpYmxlPSEwLHRoaXMuY2FzdFNoYWRvdz0hMSx0aGlzLnJlY2VpdmVTaGFkb3c9ITEsdGhpcy5mcnVzdHVtQ3VsbGVkPSEwLHRoaXMucmVuZGVyT3JkZXI9MCx0aGlzLmFuaW1hdGlvbnM9W10sdGhpcy51c2VyRGF0YT17fX1vbkJlZm9yZVJlbmRlcigpe31vbkFmdGVyUmVuZGVyKCl7fWFwcGx5TWF0cml4NCh0KXt0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksdGhpcy5tYXRyaXgucHJlbXVsdGlwbHkodCksdGhpcy5tYXRyaXguZGVjb21wb3NlKHRoaXMucG9zaXRpb24sdGhpcy5xdWF0ZXJuaW9uLHRoaXMuc2NhbGUpfWFwcGx5UXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy5xdWF0ZXJuaW9uLnByZW11bHRpcGx5KHQpLHRoaXN9c2V0Um90YXRpb25Gcm9tQXhpc0FuZ2xlKHQsZSl7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21BeGlzQW5nbGUodCxlKX1zZXRSb3RhdGlvbkZyb21FdWxlcih0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbUV1bGVyKHQsITApfXNldFJvdGF0aW9uRnJvbU1hdHJpeCh0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KHQpfXNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCl7dGhpcy5xdWF0ZXJuaW9uLmNvcHkodCl9cm90YXRlT25BeGlzKHQsZSl7cmV0dXJuIHlRdC5zZXRGcm9tQXhpc0FuZ2xlKHQsZSksdGhpcy5xdWF0ZXJuaW9uLm11bHRpcGx5KHlRdCksdGhpc31yb3RhdGVPbldvcmxkQXhpcyh0LGUpe3JldHVybiB5UXQuc2V0RnJvbUF4aXNBbmdsZSh0LGUpLHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseSh5UXQpLHRoaXN9cm90YXRlWCh0KXtyZXR1cm4gdGhpcy5yb3RhdGVPbkF4aXMoTVF0LHQpfXJvdGF0ZVkodCl7cmV0dXJuIHRoaXMucm90YXRlT25BeGlzKEVRdCx0KX1yb3RhdGVaKHQpe3JldHVybiB0aGlzLnJvdGF0ZU9uQXhpcyhUUXQsdCl9dHJhbnNsYXRlT25BeGlzKHQsZSl7cmV0dXJuIF9RdC5jb3B5KHQpLmFwcGx5UXVhdGVybmlvbih0aGlzLnF1YXRlcm5pb24pLHRoaXMucG9zaXRpb24uYWRkKF9RdC5tdWx0aXBseVNjYWxhcihlKSksdGhpc310cmFuc2xhdGVYKHQpe3JldHVybiB0aGlzLnRyYW5zbGF0ZU9uQXhpcyhNUXQsdCl9dHJhbnNsYXRlWSh0KXtyZXR1cm4gdGhpcy50cmFuc2xhdGVPbkF4aXMoRVF0LHQpfXRyYW5zbGF0ZVoodCl7cmV0dXJuIHRoaXMudHJhbnNsYXRlT25BeGlzKFRRdCx0KX1sb2NhbFRvV29ybGQodCl7cmV0dXJuIHQuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpfXdvcmxkVG9Mb2NhbCh0KXtyZXR1cm4gdC5hcHBseU1hdHJpeDQodlF0LmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCkpfWxvb2tBdCh0LGUsbil7dC5pc1ZlY3RvcjM/YlF0LmNvcHkodCk6YlF0LnNldCh0LGUsbik7Y29uc3QgaT10aGlzLnBhcmVudDt0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx4UXQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubWF0cml4V29ybGQpLHRoaXMuaXNDYW1lcmF8fHRoaXMuaXNMaWdodD92UXQubG9va0F0KHhRdCxiUXQsdGhpcy51cCk6dlF0Lmxvb2tBdChiUXQseFF0LHRoaXMudXApLHRoaXMucXVhdGVybmlvbi5zZXRGcm9tUm90YXRpb25NYXRyaXgodlF0KSxpJiYodlF0LmV4dHJhY3RSb3RhdGlvbihpLm1hdHJpeFdvcmxkKSx5UXQuc2V0RnJvbVJvdGF0aW9uTWF0cml4KHZRdCksdGhpcy5xdWF0ZXJuaW9uLnByZW11bHRpcGx5KHlRdC5pbnZlcnQoKSkpfWFkZCh0KXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2ZvcihsZXQgdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspdGhpcy5hZGQoYXJndW1lbnRzW3RdKTtyZXR1cm4gdGhpc31yZXR1cm4gdD09PXRoaXM/KGNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNELmFkZDogb2JqZWN0IGNhbid0IGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgaXRzZWxmLiIsdCksdGhpcyk6KHQmJnQuaXNPYmplY3QzRD8obnVsbCE9PXQucGFyZW50JiZ0LnBhcmVudC5yZW1vdmUodCksdC5wYXJlbnQ9dGhpcyx0aGlzLmNoaWxkcmVuLnB1c2godCksdC5kaXNwYXRjaEV2ZW50KENRdCkpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNELmFkZDogb2JqZWN0IG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5PYmplY3QzRC4iLHQpLHRoaXMpfXJlbW92ZSh0KXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2ZvcihsZXQgdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspdGhpcy5yZW1vdmUoYXJndW1lbnRzW3RdKTtyZXR1cm4gdGhpc31jb25zdCBlPXRoaXMuY2hpbGRyZW4uaW5kZXhPZih0KTtyZXR1cm4tMSE9PWUmJih0LnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW4uc3BsaWNlKGUsMSksdC5kaXNwYXRjaEV2ZW50KEFRdCkpLHRoaXN9cmVtb3ZlRnJvbVBhcmVudCgpe2NvbnN0IHQ9dGhpcy5wYXJlbnQ7cmV0dXJuIG51bGwhPT10JiZ0LnJlbW92ZSh0aGlzKSx0aGlzfWNsZWFyKCl7Zm9yKGxldCB0PTA7dDx0aGlzLmNoaWxkcmVuLmxlbmd0aDt0Kyspe2NvbnN0IGU9dGhpcy5jaGlsZHJlblt0XTtlLnBhcmVudD1udWxsLGUuZGlzcGF0Y2hFdmVudChBUXQpfXJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD0wLHRoaXN9YXR0YWNoKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx2UXQuY29weSh0aGlzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKSxudWxsIT09dC5wYXJlbnQmJih0LnBhcmVudC51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksdlF0Lm11bHRpcGx5KHQucGFyZW50Lm1hdHJpeFdvcmxkKSksdC5hcHBseU1hdHJpeDQodlF0KSx0aGlzLmFkZCh0KSx0LnVwZGF0ZVdvcmxkTWF0cml4KCExLCEwKSx0aGlzfWdldE9iamVjdEJ5SWQodCl7cmV0dXJuIHRoaXMuZ2V0T2JqZWN0QnlQcm9wZXJ0eSgiaWQiLHQpfWdldE9iamVjdEJ5TmFtZSh0KXtyZXR1cm4gdGhpcy5nZXRPYmplY3RCeVByb3BlcnR5KCJuYW1lIix0KX1nZXRPYmplY3RCeVByb3BlcnR5KHQsZSl7aWYodGhpc1t0XT09PWUpcmV0dXJuIHRoaXM7Zm9yKGxldCBuPTAsaT10aGlzLmNoaWxkcmVuLmxlbmd0aDtuPGk7bisrKXtjb25zdCBpPXRoaXMuY2hpbGRyZW5bbl0uZ2V0T2JqZWN0QnlQcm9wZXJ0eSh0LGUpO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGl9fWdldFdvcmxkUG9zaXRpb24odCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubWF0cml4V29ybGQpfWdldFdvcmxkUXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksdGhpcy5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoeFF0LHQsd1F0KSx0fWdldFdvcmxkU2NhbGUodCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4V29ybGQuZGVjb21wb3NlKHhRdCxTUXQsdCksdH1nZXRXb3JsZERpcmVjdGlvbih0KXt0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKTtjb25zdCBlPXRoaXMubWF0cml4V29ybGQuZWxlbWVudHM7cmV0dXJuIHQuc2V0KGVbOF0sZVs5XSxlWzEwXSkubm9ybWFsaXplKCl9cmF5Y2FzdCgpe310cmF2ZXJzZSh0KXt0KHRoaXMpO2NvbnN0IGU9dGhpcy5jaGlsZHJlbjtmb3IobGV0IG49MCxpPWUubGVuZ3RoO248aTtuKyspZVtuXS50cmF2ZXJzZSh0KX10cmF2ZXJzZVZpc2libGUodCl7aWYoITE9PT10aGlzLnZpc2libGUpcmV0dXJuO3QodGhpcyk7Y29uc3QgZT10aGlzLmNoaWxkcmVuO2ZvcihsZXQgbj0wLGk9ZS5sZW5ndGg7bjxpO24rKyllW25dLnRyYXZlcnNlVmlzaWJsZSh0KX10cmF2ZXJzZUFuY2VzdG9ycyh0KXtjb25zdCBlPXRoaXMucGFyZW50O251bGwhPT1lJiYodChlKSxlLnRyYXZlcnNlQW5jZXN0b3JzKHQpKX11cGRhdGVNYXRyaXgoKXt0aGlzLm1hdHJpeC5jb21wb3NlKHRoaXMucG9zaXRpb24sdGhpcy5xdWF0ZXJuaW9uLHRoaXMuc2NhbGUpLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH11cGRhdGVNYXRyaXhXb3JsZCh0KXt0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksKHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZXx8dCkmJihudWxsPT09dGhpcy5wYXJlbnQ/dGhpcy5tYXRyaXhXb3JsZC5jb3B5KHRoaXMubWF0cml4KTp0aGlzLm1hdHJpeFdvcmxkLm11bHRpcGx5TWF0cmljZXModGhpcy5wYXJlbnQubWF0cml4V29ybGQsdGhpcy5tYXRyaXgpLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMSx0PSEwKTtjb25zdCBlPXRoaXMuY2hpbGRyZW47Zm9yKGxldCBuPTAsaT1lLmxlbmd0aDtuPGk7bisrKWVbbl0udXBkYXRlTWF0cml4V29ybGQodCl9dXBkYXRlV29ybGRNYXRyaXgodCxlKXtjb25zdCBuPXRoaXMucGFyZW50O2lmKCEwPT09dCYmbnVsbCE9PW4mJm4udXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4QXV0b1VwZGF0ZSYmdGhpcy51cGRhdGVNYXRyaXgoKSxudWxsPT09dGhpcy5wYXJlbnQ/dGhpcy5tYXRyaXhXb3JsZC5jb3B5KHRoaXMubWF0cml4KTp0aGlzLm1hdHJpeFdvcmxkLm11bHRpcGx5TWF0cmljZXModGhpcy5wYXJlbnQubWF0cml4V29ybGQsdGhpcy5tYXRyaXgpLCEwPT09ZSl7Y29uc3QgdD10aGlzLmNoaWxkcmVuO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl0W2VdLnVwZGF0ZVdvcmxkTWF0cml4KCExLCEwKX19dG9KU09OKHQpe2NvbnN0IGU9dm9pZCAwPT09dHx8InN0cmluZyI9PXR5cGVvZiB0LG49e307ZSYmKHQ9e2dlb21ldHJpZXM6e30sbWF0ZXJpYWxzOnt9LHRleHR1cmVzOnt9LGltYWdlczp7fSxzaGFwZXM6e30sc2tlbGV0b25zOnt9LGFuaW1hdGlvbnM6e319LG4ubWV0YWRhdGE9e3ZlcnNpb246NC41LHR5cGU6Ik9iamVjdCIsZ2VuZXJhdG9yOiJPYmplY3QzRC50b0pTT04ifSk7Y29uc3QgaT17fTtmdW5jdGlvbiByKGUsbil7cmV0dXJuIHZvaWQgMD09PWVbbi51dWlkXSYmKGVbbi51dWlkXT1uLnRvSlNPTih0KSksbi51dWlkfWlmKGkudXVpZD10aGlzLnV1aWQsaS50eXBlPXRoaXMudHlwZSwiIiE9PXRoaXMubmFtZSYmKGkubmFtZT10aGlzLm5hbWUpLCEwPT09dGhpcy5jYXN0U2hhZG93JiYoaS5jYXN0U2hhZG93PSEwKSwhMD09PXRoaXMucmVjZWl2ZVNoYWRvdyYmKGkucmVjZWl2ZVNoYWRvdz0hMCksITE9PT10aGlzLnZpc2libGUmJihpLnZpc2libGU9ITEpLCExPT09dGhpcy5mcnVzdHVtQ3VsbGVkJiYoaS5mcnVzdHVtQ3VsbGVkPSExKSwwIT09dGhpcy5yZW5kZXJPcmRlciYmKGkucmVuZGVyT3JkZXI9dGhpcy5yZW5kZXJPcmRlciksInt9IiE9PUpTT04uc3RyaW5naWZ5KHRoaXMudXNlckRhdGEpJiYoaS51c2VyRGF0YT10aGlzLnVzZXJEYXRhKSxpLmxheWVycz10aGlzLmxheWVycy5tYXNrLGkubWF0cml4PXRoaXMubWF0cml4LnRvQXJyYXkoKSwhMT09PXRoaXMubWF0cml4QXV0b1VwZGF0ZSYmKGkubWF0cml4QXV0b1VwZGF0ZT0hMSksdGhpcy5pc0luc3RhbmNlZE1lc2gmJihpLnR5cGU9Ikluc3RhbmNlZE1lc2giLGkuY291bnQ9dGhpcy5jb3VudCxpLmluc3RhbmNlTWF0cml4PXRoaXMuaW5zdGFuY2VNYXRyaXgudG9KU09OKCksbnVsbCE9PXRoaXMuaW5zdGFuY2VDb2xvciYmKGkuaW5zdGFuY2VDb2xvcj10aGlzLmluc3RhbmNlQ29sb3IudG9KU09OKCkpKSx0aGlzLmlzU2NlbmUpdGhpcy5iYWNrZ3JvdW5kJiYodGhpcy5iYWNrZ3JvdW5kLmlzQ29sb3I/aS5iYWNrZ3JvdW5kPXRoaXMuYmFja2dyb3VuZC50b0pTT04oKTp0aGlzLmJhY2tncm91bmQuaXNUZXh0dXJlJiYoaS5iYWNrZ3JvdW5kPXRoaXMuYmFja2dyb3VuZC50b0pTT04odCkudXVpZCkpLHRoaXMuZW52aXJvbm1lbnQmJnRoaXMuZW52aXJvbm1lbnQuaXNUZXh0dXJlJiYoaS5lbnZpcm9ubWVudD10aGlzLmVudmlyb25tZW50LnRvSlNPTih0KS51dWlkKTtlbHNlIGlmKHRoaXMuaXNNZXNofHx0aGlzLmlzTGluZXx8dGhpcy5pc1BvaW50cyl7aS5nZW9tZXRyeT1yKHQuZ2VvbWV0cmllcyx0aGlzLmdlb21ldHJ5KTtjb25zdCBlPXRoaXMuZ2VvbWV0cnkucGFyYW1ldGVycztpZih2b2lkIDAhPT1lJiZ2b2lkIDAhPT1lLnNoYXBlcyl7Y29uc3Qgbj1lLnNoYXBlcztpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgZT0wLGk9bi5sZW5ndGg7ZTxpO2UrKylyKHQuc2hhcGVzLG5bZV0pO2Vsc2Ugcih0LnNoYXBlcyxuKX19aWYodGhpcy5pc1NraW5uZWRNZXNoJiYoaS5iaW5kTW9kZT10aGlzLmJpbmRNb2RlLGkuYmluZE1hdHJpeD10aGlzLmJpbmRNYXRyaXgudG9BcnJheSgpLHZvaWQgMCE9PXRoaXMuc2tlbGV0b24mJihyKHQuc2tlbGV0b25zLHRoaXMuc2tlbGV0b24pLGkuc2tlbGV0b249dGhpcy5za2VsZXRvbi51dWlkKSksdm9pZCAwIT09dGhpcy5tYXRlcmlhbClpZihBcnJheS5pc0FycmF5KHRoaXMubWF0ZXJpYWwpKXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wLGk9dGhpcy5tYXRlcmlhbC5sZW5ndGg7bjxpO24rKyllLnB1c2gocih0Lm1hdGVyaWFscyx0aGlzLm1hdGVyaWFsW25dKSk7aS5tYXRlcmlhbD1lfWVsc2UgaS5tYXRlcmlhbD1yKHQubWF0ZXJpYWxzLHRoaXMubWF0ZXJpYWwpO2lmKHRoaXMuY2hpbGRyZW4ubGVuZ3RoPjApe2kuY2hpbGRyZW49W107Zm9yKGxldCBlPTA7ZTx0aGlzLmNoaWxkcmVuLmxlbmd0aDtlKyspaS5jaGlsZHJlbi5wdXNoKHRoaXMuY2hpbGRyZW5bZV0udG9KU09OKHQpLm9iamVjdCl9aWYodGhpcy5hbmltYXRpb25zLmxlbmd0aD4wKXtpLmFuaW1hdGlvbnM9W107Zm9yKGxldCBlPTA7ZTx0aGlzLmFuaW1hdGlvbnMubGVuZ3RoO2UrKylpLmFuaW1hdGlvbnMucHVzaChyKHQuYW5pbWF0aW9ucyx0aGlzLmFuaW1hdGlvbnNbZV0pKX1pZihlKXtjb25zdCBlPW8odC5nZW9tZXRyaWVzKSxpPW8odC5tYXRlcmlhbHMpLHI9byh0LnRleHR1cmVzKSxhPW8odC5pbWFnZXMpLHM9byh0LnNoYXBlcyksbD1vKHQuc2tlbGV0b25zKSxjPW8odC5hbmltYXRpb25zKTtlLmxlbmd0aD4wJiYobi5nZW9tZXRyaWVzPWUpLGkubGVuZ3RoPjAmJihuLm1hdGVyaWFscz1pKSxyLmxlbmd0aD4wJiYobi50ZXh0dXJlcz1yKSxhLmxlbmd0aD4wJiYobi5pbWFnZXM9YSkscy5sZW5ndGg+MCYmKG4uc2hhcGVzPXMpLGwubGVuZ3RoPjAmJihuLnNrZWxldG9ucz1sKSxjLmxlbmd0aD4wJiYobi5hbmltYXRpb25zPWMpfXJldHVybiBuLm9iamVjdD1pLG47ZnVuY3Rpb24gbyh0KXtjb25zdCBlPVtdO2Zvcihjb25zdCBuIGluIHQpe2NvbnN0IGk9dFtuXTtkZWxldGUgaS5tZXRhZGF0YSxlLnB1c2goaSl9cmV0dXJuIGV9fWNsb25lKHQpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzLHQpfWNvcHkodCxlPSEwKXtpZih0aGlzLm5hbWU9dC5uYW1lLHRoaXMudXAuY29weSh0LnVwKSx0aGlzLnBvc2l0aW9uLmNvcHkodC5wb3NpdGlvbiksdGhpcy5yb3RhdGlvbi5vcmRlcj10LnJvdGF0aW9uLm9yZGVyLHRoaXMucXVhdGVybmlvbi5jb3B5KHQucXVhdGVybmlvbiksdGhpcy5zY2FsZS5jb3B5KHQuc2NhbGUpLHRoaXMubWF0cml4LmNvcHkodC5tYXRyaXgpLHRoaXMubWF0cml4V29ybGQuY29weSh0Lm1hdHJpeFdvcmxkKSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT10Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGUsdGhpcy5sYXllcnMubWFzaz10LmxheWVycy5tYXNrLHRoaXMudmlzaWJsZT10LnZpc2libGUsdGhpcy5jYXN0U2hhZG93PXQuY2FzdFNoYWRvdyx0aGlzLnJlY2VpdmVTaGFkb3c9dC5yZWNlaXZlU2hhZG93LHRoaXMuZnJ1c3R1bUN1bGxlZD10LmZydXN0dW1DdWxsZWQsdGhpcy5yZW5kZXJPcmRlcj10LnJlbmRlck9yZGVyLHRoaXMudXNlckRhdGE9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0LnVzZXJEYXRhKSksITA9PT1lKWZvcihsZXQgZT0wO2U8dC5jaGlsZHJlbi5sZW5ndGg7ZSsrKXRoaXMuYWRkKHQuY2hpbGRyZW5bZV0uY2xvbmUoKSk7cmV0dXJuIHRoaXN9fWtRdC5EZWZhdWx0VXA9bmV3IENKdCgwLDEsMCksa1F0LkRlZmF1bHRNYXRyaXhBdXRvVXBkYXRlPSEwLGtRdC5wcm90b3R5cGUuaXNPYmplY3QzRD0hMDtjb25zdCBMUXQ9bmV3IENKdCxQUXQ9bmV3IENKdCxOUXQ9bmV3IENKdCxJUXQ9bmV3IENKdCxSUXQ9bmV3IENKdCxPUXQ9bmV3IENKdCx6UXQ9bmV3IENKdCxEUXQ9bmV3IENKdCxCUXQ9bmV3IENKdCxIUXQ9bmV3IENKdDtjbGFzcyBGUXR7Y29uc3RydWN0b3IodD1uZXcgQ0p0LGU9bmV3IENKdCxuPW5ldyBDSnQpe3RoaXMuYT10LHRoaXMuYj1lLHRoaXMuYz1ufXN0YXRpYyBnZXROb3JtYWwodCxlLG4saSl7aS5zdWJWZWN0b3JzKG4sZSksTFF0LnN1YlZlY3RvcnModCxlKSxpLmNyb3NzKExRdCk7Y29uc3Qgcj1pLmxlbmd0aFNxKCk7cmV0dXJuIHI+MD9pLm11bHRpcGx5U2NhbGFyKDEvTWF0aC5zcXJ0KHIpKTppLnNldCgwLDAsMCl9c3RhdGljIGdldEJhcnljb29yZCh0LGUsbixpLHIpe0xRdC5zdWJWZWN0b3JzKGksZSksUFF0LnN1YlZlY3RvcnMobixlKSxOUXQuc3ViVmVjdG9ycyh0LGUpO2NvbnN0IG89TFF0LmRvdChMUXQpLGE9TFF0LmRvdChQUXQpLHM9TFF0LmRvdChOUXQpLGw9UFF0LmRvdChQUXQpLGM9UFF0LmRvdChOUXQpLHU9bypsLWEqYTtpZigwPT09dSlyZXR1cm4gci5zZXQoLTIsLTEsLTEpO2NvbnN0IGg9MS91LGQ9KGwqcy1hKmMpKmgscD0obypjLWEqcykqaDtyZXR1cm4gci5zZXQoMS1kLXAscCxkKX1zdGF0aWMgY29udGFpbnNQb2ludCh0LGUsbixpKXtyZXR1cm4gdGhpcy5nZXRCYXJ5Y29vcmQodCxlLG4saSxJUXQpLElRdC54Pj0wJiZJUXQueT49MCYmSVF0LngrSVF0Lnk8PTF9c3RhdGljIGdldFVWKHQsZSxuLGkscixvLGEscyl7cmV0dXJuIHRoaXMuZ2V0QmFyeWNvb3JkKHQsZSxuLGksSVF0KSxzLnNldCgwLDApLHMuYWRkU2NhbGVkVmVjdG9yKHIsSVF0LngpLHMuYWRkU2NhbGVkVmVjdG9yKG8sSVF0LnkpLHMuYWRkU2NhbGVkVmVjdG9yKGEsSVF0LnopLHN9c3RhdGljIGlzRnJvbnRGYWNpbmcodCxlLG4saSl7cmV0dXJuIExRdC5zdWJWZWN0b3JzKG4sZSksUFF0LnN1YlZlY3RvcnModCxlKSxMUXQuY3Jvc3MoUFF0KS5kb3QoaSk8MH1zZXQodCxlLG4pe3JldHVybiB0aGlzLmEuY29weSh0KSx0aGlzLmIuY29weShlKSx0aGlzLmMuY29weShuKSx0aGlzfXNldEZyb21Qb2ludHNBbmRJbmRpY2VzKHQsZSxuLGkpe3JldHVybiB0aGlzLmEuY29weSh0W2VdKSx0aGlzLmIuY29weSh0W25dKSx0aGlzLmMuY29weSh0W2ldKSx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMuYS5jb3B5KHQuYSksdGhpcy5iLmNvcHkodC5iKSx0aGlzLmMuY29weSh0LmMpLHRoaXN9Z2V0QXJlYSgpe3JldHVybiBMUXQuc3ViVmVjdG9ycyh0aGlzLmMsdGhpcy5iKSxQUXQuc3ViVmVjdG9ycyh0aGlzLmEsdGhpcy5iKSwuNSpMUXQuY3Jvc3MoUFF0KS5sZW5ndGgoKX1nZXRNaWRwb2ludCh0KXtyZXR1cm4gdC5hZGRWZWN0b3JzKHRoaXMuYSx0aGlzLmIpLmFkZCh0aGlzLmMpLm11bHRpcGx5U2NhbGFyKDEvMyl9Z2V0Tm9ybWFsKHQpe3JldHVybiBGUXQuZ2V0Tm9ybWFsKHRoaXMuYSx0aGlzLmIsdGhpcy5jLHQpfWdldFBsYW5lKHQpe3JldHVybiB0LnNldEZyb21Db3BsYW5hclBvaW50cyh0aGlzLmEsdGhpcy5iLHRoaXMuYyl9Z2V0QmFyeWNvb3JkKHQsZSl7cmV0dXJuIEZRdC5nZXRCYXJ5Y29vcmQodCx0aGlzLmEsdGhpcy5iLHRoaXMuYyxlKX1nZXRVVih0LGUsbixpLHIpe3JldHVybiBGUXQuZ2V0VVYodCx0aGlzLmEsdGhpcy5iLHRoaXMuYyxlLG4saSxyKX1jb250YWluc1BvaW50KHQpe3JldHVybiBGUXQuY29udGFpbnNQb2ludCh0LHRoaXMuYSx0aGlzLmIsdGhpcy5jKX1pc0Zyb250RmFjaW5nKHQpe3JldHVybiBGUXQuaXNGcm9udEZhY2luZyh0aGlzLmEsdGhpcy5iLHRoaXMuYyx0KX1pbnRlcnNlY3RzQm94KHQpe3JldHVybiB0LmludGVyc2VjdHNUcmlhbmdsZSh0aGlzKX1jbG9zZXN0UG9pbnRUb1BvaW50KHQsZSl7Y29uc3Qgbj10aGlzLmEsaT10aGlzLmIscj10aGlzLmM7bGV0IG8sYTtSUXQuc3ViVmVjdG9ycyhpLG4pLE9RdC5zdWJWZWN0b3JzKHIsbiksRFF0LnN1YlZlY3RvcnModCxuKTtjb25zdCBzPVJRdC5kb3QoRFF0KSxsPU9RdC5kb3QoRFF0KTtpZihzPD0wJiZsPD0wKXJldHVybiBlLmNvcHkobik7QlF0LnN1YlZlY3RvcnModCxpKTtjb25zdCBjPVJRdC5kb3QoQlF0KSx1PU9RdC5kb3QoQlF0KTtpZihjPj0wJiZ1PD1jKXJldHVybiBlLmNvcHkoaSk7Y29uc3QgaD1zKnUtYypsO2lmKGg8PTAmJnM+PTAmJmM8PTApcmV0dXJuIG89cy8ocy1jKSxlLmNvcHkobikuYWRkU2NhbGVkVmVjdG9yKFJRdCxvKTtIUXQuc3ViVmVjdG9ycyh0LHIpO2NvbnN0IGQ9UlF0LmRvdChIUXQpLHA9T1F0LmRvdChIUXQpO2lmKHA+PTAmJmQ8PXApcmV0dXJuIGUuY29weShyKTtjb25zdCBmPWQqbC1zKnA7aWYoZjw9MCYmbD49MCYmcDw9MClyZXR1cm4gYT1sLyhsLXApLGUuY29weShuKS5hZGRTY2FsZWRWZWN0b3IoT1F0LGEpO2NvbnN0IG09YypwLWQqdTtpZihtPD0wJiZ1LWM+PTAmJmQtcD49MClyZXR1cm4gelF0LnN1YlZlY3RvcnMocixpKSxhPSh1LWMpLyh1LWMrKGQtcCkpLGUuY29weShpKS5hZGRTY2FsZWRWZWN0b3IoelF0LGEpO2NvbnN0IGc9MS8obStmK2gpO3JldHVybiBvPWYqZyxhPWgqZyxlLmNvcHkobikuYWRkU2NhbGVkVmVjdG9yKFJRdCxvKS5hZGRTY2FsZWRWZWN0b3IoT1F0LGEpfWVxdWFscyh0KXtyZXR1cm4gdC5hLmVxdWFscyh0aGlzLmEpJiZ0LmIuZXF1YWxzKHRoaXMuYikmJnQuYy5lcXVhbHModGhpcy5jKX19bGV0IFZRdD0wO2NsYXNzIFVRdCBleHRlbmRzIGpadHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6VlF0Kyt9KSx0aGlzLnV1aWQ9WFp0KCksdGhpcy5uYW1lPSIiLHRoaXMudHlwZT0iTWF0ZXJpYWwiLHRoaXMuZm9nPSEwLHRoaXMuYmxlbmRpbmc9MSx0aGlzLnNpZGU9MCx0aGlzLnZlcnRleENvbG9ycz0hMSx0aGlzLm9wYWNpdHk9MSx0aGlzLnRyYW5zcGFyZW50PSExLHRoaXMuYmxlbmRTcmM9MjA0LHRoaXMuYmxlbmREc3Q9MjA1LHRoaXMuYmxlbmRFcXVhdGlvbj1WS3QsdGhpcy5ibGVuZFNyY0FscGhhPW51bGwsdGhpcy5ibGVuZERzdEFscGhhPW51bGwsdGhpcy5ibGVuZEVxdWF0aW9uQWxwaGE9bnVsbCx0aGlzLmRlcHRoRnVuYz0zLHRoaXMuZGVwdGhUZXN0PSEwLHRoaXMuZGVwdGhXcml0ZT0hMCx0aGlzLnN0ZW5jaWxXcml0ZU1hc2s9MjU1LHRoaXMuc3RlbmNpbEZ1bmM9NTE5LHRoaXMuc3RlbmNpbFJlZj0wLHRoaXMuc3RlbmNpbEZ1bmNNYXNrPTI1NSx0aGlzLnN0ZW5jaWxGYWlsPUhadCx0aGlzLnN0ZW5jaWxaRmFpbD1IWnQsdGhpcy5zdGVuY2lsWlBhc3M9SFp0LHRoaXMuc3RlbmNpbFdyaXRlPSExLHRoaXMuY2xpcHBpbmdQbGFuZXM9bnVsbCx0aGlzLmNsaXBJbnRlcnNlY3Rpb249ITEsdGhpcy5jbGlwU2hhZG93cz0hMSx0aGlzLnNoYWRvd1NpZGU9bnVsbCx0aGlzLmNvbG9yV3JpdGU9ITAsdGhpcy5wcmVjaXNpb249bnVsbCx0aGlzLnBvbHlnb25PZmZzZXQ9ITEsdGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yPTAsdGhpcy5wb2x5Z29uT2Zmc2V0VW5pdHM9MCx0aGlzLmRpdGhlcmluZz0hMSx0aGlzLmFscGhhVGVzdD0wLHRoaXMuYWxwaGFUb0NvdmVyYWdlPSExLHRoaXMucHJlbXVsdGlwbGllZEFscGhhPSExLHRoaXMudmlzaWJsZT0hMCx0aGlzLnRvbmVNYXBwZWQ9ITAsdGhpcy51c2VyRGF0YT17fSx0aGlzLnZlcnNpb249MH1vbkJ1aWxkKCl7fW9uQmVmb3JlQ29tcGlsZSgpe31jdXN0b21Qcm9ncmFtQ2FjaGVLZXkoKXtyZXR1cm4gdGhpcy5vbkJlZm9yZUNvbXBpbGUudG9TdHJpbmcoKX1zZXRWYWx1ZXModCl7aWYodm9pZCAwIT09dClmb3IoY29uc3QgZSBpbiB0KXtjb25zdCBuPXRbZV07aWYodm9pZCAwPT09bil7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogJyIrZSsiJyBwYXJhbWV0ZXIgaXMgdW5kZWZpbmVkLiIpO2NvbnRpbnVlfWlmKCJzaGFkaW5nIj09PWUpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnNoYWRpbmcgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHRoZSBib29sZWFuIC5mbGF0U2hhZGluZyBpbnN0ZWFkLiIpLHRoaXMuZmxhdFNoYWRpbmc9MT09PW47Y29udGludWV9Y29uc3QgaT10aGlzW2VdO3ZvaWQgMCE9PWk/aSYmaS5pc0NvbG9yP2kuc2V0KG4pOmkmJmkuaXNWZWN0b3IzJiZuJiZuLmlzVmVjdG9yMz9pLmNvcHkobik6dGhpc1tlXT1uOmNvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogJyIrZSsiJyBpcyBub3QgYSBwcm9wZXJ0eSBvZiB0aGlzIG1hdGVyaWFsLiIpfX10b0pTT04odCl7Y29uc3QgZT12b2lkIDA9PT10fHwic3RyaW5nIj09dHlwZW9mIHQ7ZSYmKHQ9e3RleHR1cmVzOnt9LGltYWdlczp7fX0pO2NvbnN0IG49e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJNYXRlcmlhbCIsZ2VuZXJhdG9yOiJNYXRlcmlhbC50b0pTT04ifX07ZnVuY3Rpb24gaSh0KXtjb25zdCBlPVtdO2Zvcihjb25zdCBuIGluIHQpe2NvbnN0IGk9dFtuXTtkZWxldGUgaS5tZXRhZGF0YSxlLnB1c2goaSl9cmV0dXJuIGV9aWYobi51dWlkPXRoaXMudXVpZCxuLnR5cGU9dGhpcy50eXBlLCIiIT09dGhpcy5uYW1lJiYobi5uYW1lPXRoaXMubmFtZSksdGhpcy5jb2xvciYmdGhpcy5jb2xvci5pc0NvbG9yJiYobi5jb2xvcj10aGlzLmNvbG9yLmdldEhleCgpKSx2b2lkIDAhPT10aGlzLnJvdWdobmVzcyYmKG4ucm91Z2huZXNzPXRoaXMucm91Z2huZXNzKSx2b2lkIDAhPT10aGlzLm1ldGFsbmVzcyYmKG4ubWV0YWxuZXNzPXRoaXMubWV0YWxuZXNzKSx0aGlzLnNoZWVuJiZ0aGlzLnNoZWVuLmlzQ29sb3ImJihuLnNoZWVuPXRoaXMuc2hlZW4uZ2V0SGV4KCkpLHRoaXMuZW1pc3NpdmUmJnRoaXMuZW1pc3NpdmUuaXNDb2xvciYmKG4uZW1pc3NpdmU9dGhpcy5lbWlzc2l2ZS5nZXRIZXgoKSksdGhpcy5lbWlzc2l2ZUludGVuc2l0eSYmMSE9PXRoaXMuZW1pc3NpdmVJbnRlbnNpdHkmJihuLmVtaXNzaXZlSW50ZW5zaXR5PXRoaXMuZW1pc3NpdmVJbnRlbnNpdHkpLHRoaXMuc3BlY3VsYXImJnRoaXMuc3BlY3VsYXIuaXNDb2xvciYmKG4uc3BlY3VsYXI9dGhpcy5zcGVjdWxhci5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5zcGVjdWxhckludGVuc2l0eSYmKG4uc3BlY3VsYXJJbnRlbnNpdHk9dGhpcy5zcGVjdWxhckludGVuc2l0eSksdGhpcy5zcGVjdWxhclRpbnQmJnRoaXMuc3BlY3VsYXJUaW50LmlzQ29sb3ImJihuLnNwZWN1bGFyVGludD10aGlzLnNwZWN1bGFyVGludC5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5zaGluaW5lc3MmJihuLnNoaW5pbmVzcz10aGlzLnNoaW5pbmVzcyksdm9pZCAwIT09dGhpcy5jbGVhcmNvYXQmJihuLmNsZWFyY29hdD10aGlzLmNsZWFyY29hdCksdm9pZCAwIT09dGhpcy5jbGVhcmNvYXRSb3VnaG5lc3MmJihuLmNsZWFyY29hdFJvdWdobmVzcz10aGlzLmNsZWFyY29hdFJvdWdobmVzcyksdGhpcy5jbGVhcmNvYXRNYXAmJnRoaXMuY2xlYXJjb2F0TWFwLmlzVGV4dHVyZSYmKG4uY2xlYXJjb2F0TWFwPXRoaXMuY2xlYXJjb2F0TWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcCYmdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXAuaXNUZXh0dXJlJiYobi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9dGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwJiZ0aGlzLmNsZWFyY29hdE5vcm1hbE1hcC5pc1RleHR1cmUmJihuLmNsZWFyY29hdE5vcm1hbE1hcD10aGlzLmNsZWFyY29hdE5vcm1hbE1hcC50b0pTT04odCkudXVpZCxuLmNsZWFyY29hdE5vcm1hbFNjYWxlPXRoaXMuY2xlYXJjb2F0Tm9ybWFsU2NhbGUudG9BcnJheSgpKSx0aGlzLm1hcCYmdGhpcy5tYXAuaXNUZXh0dXJlJiYobi5tYXA9dGhpcy5tYXAudG9KU09OKHQpLnV1aWQpLHRoaXMubWF0Y2FwJiZ0aGlzLm1hdGNhcC5pc1RleHR1cmUmJihuLm1hdGNhcD10aGlzLm1hdGNhcC50b0pTT04odCkudXVpZCksdGhpcy5hbHBoYU1hcCYmdGhpcy5hbHBoYU1hcC5pc1RleHR1cmUmJihuLmFscGhhTWFwPXRoaXMuYWxwaGFNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMubGlnaHRNYXAmJnRoaXMubGlnaHRNYXAuaXNUZXh0dXJlJiYobi5saWdodE1hcD10aGlzLmxpZ2h0TWFwLnRvSlNPTih0KS51dWlkLG4ubGlnaHRNYXBJbnRlbnNpdHk9dGhpcy5saWdodE1hcEludGVuc2l0eSksdGhpcy5hb01hcCYmdGhpcy5hb01hcC5pc1RleHR1cmUmJihuLmFvTWFwPXRoaXMuYW9NYXAudG9KU09OKHQpLnV1aWQsbi5hb01hcEludGVuc2l0eT10aGlzLmFvTWFwSW50ZW5zaXR5KSx0aGlzLmJ1bXBNYXAmJnRoaXMuYnVtcE1hcC5pc1RleHR1cmUmJihuLmJ1bXBNYXA9dGhpcy5idW1wTWFwLnRvSlNPTih0KS51dWlkLG4uYnVtcFNjYWxlPXRoaXMuYnVtcFNjYWxlKSx0aGlzLm5vcm1hbE1hcCYmdGhpcy5ub3JtYWxNYXAuaXNUZXh0dXJlJiYobi5ub3JtYWxNYXA9dGhpcy5ub3JtYWxNYXAudG9KU09OKHQpLnV1aWQsbi5ub3JtYWxNYXBUeXBlPXRoaXMubm9ybWFsTWFwVHlwZSxuLm5vcm1hbFNjYWxlPXRoaXMubm9ybWFsU2NhbGUudG9BcnJheSgpKSx0aGlzLmRpc3BsYWNlbWVudE1hcCYmdGhpcy5kaXNwbGFjZW1lbnRNYXAuaXNUZXh0dXJlJiYobi5kaXNwbGFjZW1lbnRNYXA9dGhpcy5kaXNwbGFjZW1lbnRNYXAudG9KU09OKHQpLnV1aWQsbi5kaXNwbGFjZW1lbnRTY2FsZT10aGlzLmRpc3BsYWNlbWVudFNjYWxlLG4uZGlzcGxhY2VtZW50Qmlhcz10aGlzLmRpc3BsYWNlbWVudEJpYXMpLHRoaXMucm91Z2huZXNzTWFwJiZ0aGlzLnJvdWdobmVzc01hcC5pc1RleHR1cmUmJihuLnJvdWdobmVzc01hcD10aGlzLnJvdWdobmVzc01hcC50b0pTT04odCkudXVpZCksdGhpcy5tZXRhbG5lc3NNYXAmJnRoaXMubWV0YWxuZXNzTWFwLmlzVGV4dHVyZSYmKG4ubWV0YWxuZXNzTWFwPXRoaXMubWV0YWxuZXNzTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmVtaXNzaXZlTWFwJiZ0aGlzLmVtaXNzaXZlTWFwLmlzVGV4dHVyZSYmKG4uZW1pc3NpdmVNYXA9dGhpcy5lbWlzc2l2ZU1hcC50b0pTT04odCkudXVpZCksdGhpcy5zcGVjdWxhck1hcCYmdGhpcy5zcGVjdWxhck1hcC5pc1RleHR1cmUmJihuLnNwZWN1bGFyTWFwPXRoaXMuc3BlY3VsYXJNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXAmJnRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXAuaXNUZXh0dXJlJiYobi5zcGVjdWxhckludGVuc2l0eU1hcD10aGlzLnNwZWN1bGFySW50ZW5zaXR5TWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLnNwZWN1bGFyVGludE1hcCYmdGhpcy5zcGVjdWxhclRpbnRNYXAuaXNUZXh0dXJlJiYobi5zcGVjdWxhclRpbnRNYXA9dGhpcy5zcGVjdWxhclRpbnRNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuZW52TWFwJiZ0aGlzLmVudk1hcC5pc1RleHR1cmUmJihuLmVudk1hcD10aGlzLmVudk1hcC50b0pTT04odCkudXVpZCx2b2lkIDAhPT10aGlzLmNvbWJpbmUmJihuLmNvbWJpbmU9dGhpcy5jb21iaW5lKSksdm9pZCAwIT09dGhpcy5lbnZNYXBJbnRlbnNpdHkmJihuLmVudk1hcEludGVuc2l0eT10aGlzLmVudk1hcEludGVuc2l0eSksdm9pZCAwIT09dGhpcy5yZWZsZWN0aXZpdHkmJihuLnJlZmxlY3Rpdml0eT10aGlzLnJlZmxlY3Rpdml0eSksdm9pZCAwIT09dGhpcy5yZWZyYWN0aW9uUmF0aW8mJihuLnJlZnJhY3Rpb25SYXRpbz10aGlzLnJlZnJhY3Rpb25SYXRpbyksdGhpcy5ncmFkaWVudE1hcCYmdGhpcy5ncmFkaWVudE1hcC5pc1RleHR1cmUmJihuLmdyYWRpZW50TWFwPXRoaXMuZ3JhZGllbnRNYXAudG9KU09OKHQpLnV1aWQpLHZvaWQgMCE9PXRoaXMudHJhbnNtaXNzaW9uJiYobi50cmFuc21pc3Npb249dGhpcy50cmFuc21pc3Npb24pLHRoaXMudHJhbnNtaXNzaW9uTWFwJiZ0aGlzLnRyYW5zbWlzc2lvbk1hcC5pc1RleHR1cmUmJihuLnRyYW5zbWlzc2lvbk1hcD10aGlzLnRyYW5zbWlzc2lvbk1hcC50b0pTT04odCkudXVpZCksdm9pZCAwIT09dGhpcy50aGlja25lc3MmJihuLnRoaWNrbmVzcz10aGlzLnRoaWNrbmVzcyksdGhpcy50aGlja25lc3NNYXAmJnRoaXMudGhpY2tuZXNzTWFwLmlzVGV4dHVyZSYmKG4udGhpY2tuZXNzTWFwPXRoaXMudGhpY2tuZXNzTWFwLnRvSlNPTih0KS51dWlkKSx2b2lkIDAhPT10aGlzLmF0dGVudWF0aW9uRGlzdGFuY2UmJihuLmF0dGVudWF0aW9uRGlzdGFuY2U9dGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlKSx2b2lkIDAhPT10aGlzLmF0dGVudWF0aW9uVGludCYmKG4uYXR0ZW51YXRpb25UaW50PXRoaXMuYXR0ZW51YXRpb25UaW50LmdldEhleCgpKSx2b2lkIDAhPT10aGlzLnNpemUmJihuLnNpemU9dGhpcy5zaXplKSxudWxsIT09dGhpcy5zaGFkb3dTaWRlJiYobi5zaGFkb3dTaWRlPXRoaXMuc2hhZG93U2lkZSksdm9pZCAwIT09dGhpcy5zaXplQXR0ZW51YXRpb24mJihuLnNpemVBdHRlbnVhdGlvbj10aGlzLnNpemVBdHRlbnVhdGlvbiksMSE9PXRoaXMuYmxlbmRpbmcmJihuLmJsZW5kaW5nPXRoaXMuYmxlbmRpbmcpLDAhPT10aGlzLnNpZGUmJihuLnNpZGU9dGhpcy5zaWRlKSx0aGlzLnZlcnRleENvbG9ycyYmKG4udmVydGV4Q29sb3JzPSEwKSx0aGlzLm9wYWNpdHk8MSYmKG4ub3BhY2l0eT10aGlzLm9wYWNpdHkpLCEwPT09dGhpcy50cmFuc3BhcmVudCYmKG4udHJhbnNwYXJlbnQ9dGhpcy50cmFuc3BhcmVudCksbi5kZXB0aEZ1bmM9dGhpcy5kZXB0aEZ1bmMsbi5kZXB0aFRlc3Q9dGhpcy5kZXB0aFRlc3Qsbi5kZXB0aFdyaXRlPXRoaXMuZGVwdGhXcml0ZSxuLmNvbG9yV3JpdGU9dGhpcy5jb2xvcldyaXRlLG4uc3RlbmNpbFdyaXRlPXRoaXMuc3RlbmNpbFdyaXRlLG4uc3RlbmNpbFdyaXRlTWFzaz10aGlzLnN0ZW5jaWxXcml0ZU1hc2ssbi5zdGVuY2lsRnVuYz10aGlzLnN0ZW5jaWxGdW5jLG4uc3RlbmNpbFJlZj10aGlzLnN0ZW5jaWxSZWYsbi5zdGVuY2lsRnVuY01hc2s9dGhpcy5zdGVuY2lsRnVuY01hc2ssbi5zdGVuY2lsRmFpbD10aGlzLnN0ZW5jaWxGYWlsLG4uc3RlbmNpbFpGYWlsPXRoaXMuc3RlbmNpbFpGYWlsLG4uc3RlbmNpbFpQYXNzPXRoaXMuc3RlbmNpbFpQYXNzLHRoaXMucm90YXRpb24mJjAhPT10aGlzLnJvdGF0aW9uJiYobi5yb3RhdGlvbj10aGlzLnJvdGF0aW9uKSwhMD09PXRoaXMucG9seWdvbk9mZnNldCYmKG4ucG9seWdvbk9mZnNldD0hMCksMCE9PXRoaXMucG9seWdvbk9mZnNldEZhY3RvciYmKG4ucG9seWdvbk9mZnNldEZhY3Rvcj10aGlzLnBvbHlnb25PZmZzZXRGYWN0b3IpLDAhPT10aGlzLnBvbHlnb25PZmZzZXRVbml0cyYmKG4ucG9seWdvbk9mZnNldFVuaXRzPXRoaXMucG9seWdvbk9mZnNldFVuaXRzKSx0aGlzLmxpbmV3aWR0aCYmMSE9PXRoaXMubGluZXdpZHRoJiYobi5saW5ld2lkdGg9dGhpcy5saW5ld2lkdGgpLHZvaWQgMCE9PXRoaXMuZGFzaFNpemUmJihuLmRhc2hTaXplPXRoaXMuZGFzaFNpemUpLHZvaWQgMCE9PXRoaXMuZ2FwU2l6ZSYmKG4uZ2FwU2l6ZT10aGlzLmdhcFNpemUpLHZvaWQgMCE9PXRoaXMuc2NhbGUmJihuLnNjYWxlPXRoaXMuc2NhbGUpLCEwPT09dGhpcy5kaXRoZXJpbmcmJihuLmRpdGhlcmluZz0hMCksdGhpcy5hbHBoYVRlc3Q+MCYmKG4uYWxwaGFUZXN0PXRoaXMuYWxwaGFUZXN0KSwhMD09PXRoaXMuYWxwaGFUb0NvdmVyYWdlJiYobi5hbHBoYVRvQ292ZXJhZ2U9dGhpcy5hbHBoYVRvQ292ZXJhZ2UpLCEwPT09dGhpcy5wcmVtdWx0aXBsaWVkQWxwaGEmJihuLnByZW11bHRpcGxpZWRBbHBoYT10aGlzLnByZW11bHRpcGxpZWRBbHBoYSksITA9PT10aGlzLndpcmVmcmFtZSYmKG4ud2lyZWZyYW1lPXRoaXMud2lyZWZyYW1lKSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD4xJiYobi53aXJlZnJhbWVMaW5ld2lkdGg9dGhpcy53aXJlZnJhbWVMaW5ld2lkdGgpLCJyb3VuZCIhPT10aGlzLndpcmVmcmFtZUxpbmVjYXAmJihuLndpcmVmcmFtZUxpbmVjYXA9dGhpcy53aXJlZnJhbWVMaW5lY2FwKSwicm91bmQiIT09dGhpcy53aXJlZnJhbWVMaW5lam9pbiYmKG4ud2lyZWZyYW1lTGluZWpvaW49dGhpcy53aXJlZnJhbWVMaW5lam9pbiksITA9PT10aGlzLmZsYXRTaGFkaW5nJiYobi5mbGF0U2hhZGluZz10aGlzLmZsYXRTaGFkaW5nKSwhMT09PXRoaXMudmlzaWJsZSYmKG4udmlzaWJsZT0hMSksITE9PT10aGlzLnRvbmVNYXBwZWQmJihuLnRvbmVNYXBwZWQ9ITEpLCJ7fSIhPT1KU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJEYXRhKSYmKG4udXNlckRhdGE9dGhpcy51c2VyRGF0YSksZSl7Y29uc3QgZT1pKHQudGV4dHVyZXMpLHI9aSh0LmltYWdlcyk7ZS5sZW5ndGg+MCYmKG4udGV4dHVyZXM9ZSksci5sZW5ndGg+MCYmKG4uaW1hZ2VzPXIpfXJldHVybiBufWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7dGhpcy5uYW1lPXQubmFtZSx0aGlzLmZvZz10LmZvZyx0aGlzLmJsZW5kaW5nPXQuYmxlbmRpbmcsdGhpcy5zaWRlPXQuc2lkZSx0aGlzLnZlcnRleENvbG9ycz10LnZlcnRleENvbG9ycyx0aGlzLm9wYWNpdHk9dC5vcGFjaXR5LHRoaXMudHJhbnNwYXJlbnQ9dC50cmFuc3BhcmVudCx0aGlzLmJsZW5kU3JjPXQuYmxlbmRTcmMsdGhpcy5ibGVuZERzdD10LmJsZW5kRHN0LHRoaXMuYmxlbmRFcXVhdGlvbj10LmJsZW5kRXF1YXRpb24sdGhpcy5ibGVuZFNyY0FscGhhPXQuYmxlbmRTcmNBbHBoYSx0aGlzLmJsZW5kRHN0QWxwaGE9dC5ibGVuZERzdEFscGhhLHRoaXMuYmxlbmRFcXVhdGlvbkFscGhhPXQuYmxlbmRFcXVhdGlvbkFscGhhLHRoaXMuZGVwdGhGdW5jPXQuZGVwdGhGdW5jLHRoaXMuZGVwdGhUZXN0PXQuZGVwdGhUZXN0LHRoaXMuZGVwdGhXcml0ZT10LmRlcHRoV3JpdGUsdGhpcy5zdGVuY2lsV3JpdGVNYXNrPXQuc3RlbmNpbFdyaXRlTWFzayx0aGlzLnN0ZW5jaWxGdW5jPXQuc3RlbmNpbEZ1bmMsdGhpcy5zdGVuY2lsUmVmPXQuc3RlbmNpbFJlZix0aGlzLnN0ZW5jaWxGdW5jTWFzaz10LnN0ZW5jaWxGdW5jTWFzayx0aGlzLnN0ZW5jaWxGYWlsPXQuc3RlbmNpbEZhaWwsdGhpcy5zdGVuY2lsWkZhaWw9dC5zdGVuY2lsWkZhaWwsdGhpcy5zdGVuY2lsWlBhc3M9dC5zdGVuY2lsWlBhc3MsdGhpcy5zdGVuY2lsV3JpdGU9dC5zdGVuY2lsV3JpdGU7Y29uc3QgZT10LmNsaXBwaW5nUGxhbmVzO2xldCBuPW51bGw7aWYobnVsbCE9PWUpe2NvbnN0IHQ9ZS5sZW5ndGg7bj1uZXcgQXJyYXkodCk7Zm9yKGxldCBpPTA7aSE9PXQ7KytpKW5baV09ZVtpXS5jbG9uZSgpfXJldHVybiB0aGlzLmNsaXBwaW5nUGxhbmVzPW4sdGhpcy5jbGlwSW50ZXJzZWN0aW9uPXQuY2xpcEludGVyc2VjdGlvbix0aGlzLmNsaXBTaGFkb3dzPXQuY2xpcFNoYWRvd3MsdGhpcy5zaGFkb3dTaWRlPXQuc2hhZG93U2lkZSx0aGlzLmNvbG9yV3JpdGU9dC5jb2xvcldyaXRlLHRoaXMucHJlY2lzaW9uPXQucHJlY2lzaW9uLHRoaXMucG9seWdvbk9mZnNldD10LnBvbHlnb25PZmZzZXQsdGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yPXQucG9seWdvbk9mZnNldEZhY3Rvcix0aGlzLnBvbHlnb25PZmZzZXRVbml0cz10LnBvbHlnb25PZmZzZXRVbml0cyx0aGlzLmRpdGhlcmluZz10LmRpdGhlcmluZyx0aGlzLmFscGhhVGVzdD10LmFscGhhVGVzdCx0aGlzLmFscGhhVG9Db3ZlcmFnZT10LmFscGhhVG9Db3ZlcmFnZSx0aGlzLnByZW11bHRpcGxpZWRBbHBoYT10LnByZW11bHRpcGxpZWRBbHBoYSx0aGlzLnZpc2libGU9dC52aXNpYmxlLHRoaXMudG9uZU1hcHBlZD10LnRvbmVNYXBwZWQsdGhpcy51c2VyRGF0YT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQudXNlckRhdGEpKSx0aGlzfWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9c2V0IG5lZWRzVXBkYXRlKHQpeyEwPT09dCYmdGhpcy52ZXJzaW9uKyt9fVVRdC5wcm90b3R5cGUuaXNNYXRlcmlhbD0hMDtjb25zdCBqUXQ9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH0sR1F0PXtoOjAsczowLGw6MH0sV1F0PXtoOjAsczowLGw6MH07ZnVuY3Rpb24gcVF0KHQsZSxuKXtyZXR1cm4gbjwwJiYobis9MSksbj4xJiYobi09MSksbjwxLzY/dCs2KihlLXQpKm46bjwuNT9lOm48Mi8zP3QrNiooZS10KSooMi8zLW4pOnR9ZnVuY3Rpb24gWVF0KHQpe3JldHVybiB0PC4wNDA0NT8uMDc3Mzk5MzgwOCp0Ok1hdGgucG93KC45NDc4NjcyOTg2KnQrLjA1MjEzMjcwMTQsMi40KX1mdW5jdGlvbiBYUXQodCl7cmV0dXJuIHQ8LjAwMzEzMDg/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LC40MTY2NiktLjA1NX1jbGFzcyAkUXR7Y29uc3RydWN0b3IodCxlLG4pe3JldHVybiB2b2lkIDA9PT1lJiZ2b2lkIDA9PT1uP3RoaXMuc2V0KHQpOnRoaXMuc2V0UkdCKHQsZSxuKX1zZXQodCl7cmV0dXJuIHQmJnQuaXNDb2xvcj90aGlzLmNvcHkodCk6Im51bWJlciI9PXR5cGVvZiB0P3RoaXMuc2V0SGV4KHQpOiJzdHJpbmciPT10eXBlb2YgdCYmdGhpcy5zZXRTdHlsZSh0KSx0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy5yPXQsdGhpcy5nPXQsdGhpcy5iPXQsdGhpc31zZXRIZXgodCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSx0aGlzLnI9KHQ+PjE2JjI1NSkvMjU1LHRoaXMuZz0odD4+OCYyNTUpLzI1NSx0aGlzLmI9KDI1NSZ0KS8yNTUsdGhpc31zZXRSR0IodCxlLG4pe3JldHVybiB0aGlzLnI9dCx0aGlzLmc9ZSx0aGlzLmI9bix0aGlzfXNldEhTTCh0LGUsbil7aWYodD1LWnQodCwxKSxlPSRadChlLDAsMSksbj0kWnQobiwwLDEpLDA9PT1lKXRoaXMucj10aGlzLmc9dGhpcy5iPW47ZWxzZXtjb25zdCBpPW48PS41P24qKDErZSk6bitlLW4qZSxyPTIqbi1pO3RoaXMucj1xUXQocixpLHQrMS8zKSx0aGlzLmc9cVF0KHIsaSx0KSx0aGlzLmI9cVF0KHIsaSx0LTEvMyl9cmV0dXJuIHRoaXN9c2V0U3R5bGUodCl7ZnVuY3Rpb24gZShlKXt2b2lkIDAhPT1lJiZwYXJzZUZsb2F0KGUpPDEmJmNvbnNvbGUud2FybigiVEhSRUUuQ29sb3I6IEFscGhhIGNvbXBvbmVudCBvZiAiK3QrIiB3aWxsIGJlIGlnbm9yZWQuIil9bGV0IG47aWYobj0vXigoPzpyZ2J8aHNsKWE/KVwoKFteXCldKilcKS8uZXhlYyh0KSl7bGV0IHQ7Y29uc3QgaT1uWzJdO3N3aXRjaChuWzFdKXtjYXNlInJnYiI6Y2FzZSJyZ2JhIjppZih0PS9eXHMqKFxkKylccyosXHMqKFxkKylccyosXHMqKFxkKylccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMoaSkpcmV0dXJuIHRoaXMucj1NYXRoLm1pbigyNTUscGFyc2VJbnQodFsxXSwxMCkpLzI1NSx0aGlzLmc9TWF0aC5taW4oMjU1LHBhcnNlSW50KHRbMl0sMTApKS8yNTUsdGhpcy5iPU1hdGgubWluKDI1NSxwYXJzZUludCh0WzNdLDEwKSkvMjU1LGUodFs0XSksdGhpcztpZih0PS9eXHMqKFxkKylcJVxzKixccyooXGQrKVwlXHMqLFxzKihcZCspXCVccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMoaSkpcmV0dXJuIHRoaXMucj1NYXRoLm1pbigxMDAscGFyc2VJbnQodFsxXSwxMCkpLzEwMCx0aGlzLmc9TWF0aC5taW4oMTAwLHBhcnNlSW50KHRbMl0sMTApKS8xMDAsdGhpcy5iPU1hdGgubWluKDEwMCxwYXJzZUludCh0WzNdLDEwKSkvMTAwLGUodFs0XSksdGhpczticmVhaztjYXNlImhzbCI6Y2FzZSJoc2xhIjppZih0PS9eXHMqKFxkKlwuP1xkKylccyosXHMqKFxkKylcJVxzKixccyooXGQrKVwlXHMqKD86LFxzKihcZCpcLj9cZCspXHMqKT8kLy5leGVjKGkpKXtjb25zdCBuPXBhcnNlRmxvYXQodFsxXSkvMzYwLGk9cGFyc2VJbnQodFsyXSwxMCkvMTAwLHI9cGFyc2VJbnQodFszXSwxMCkvMTAwO3JldHVybiBlKHRbNF0pLHRoaXMuc2V0SFNMKG4saSxyKX19fWVsc2UgaWYobj0vXlwjKFtBLUZhLWZcZF0rKSQvLmV4ZWModCkpe2NvbnN0IHQ9blsxXSxlPXQubGVuZ3RoO2lmKDM9PT1lKXJldHVybiB0aGlzLnI9cGFyc2VJbnQodC5jaGFyQXQoMCkrdC5jaGFyQXQoMCksMTYpLzI1NSx0aGlzLmc9cGFyc2VJbnQodC5jaGFyQXQoMSkrdC5jaGFyQXQoMSksMTYpLzI1NSx0aGlzLmI9cGFyc2VJbnQodC5jaGFyQXQoMikrdC5jaGFyQXQoMiksMTYpLzI1NSx0aGlzO2lmKDY9PT1lKXJldHVybiB0aGlzLnI9cGFyc2VJbnQodC5jaGFyQXQoMCkrdC5jaGFyQXQoMSksMTYpLzI1NSx0aGlzLmc9cGFyc2VJbnQodC5jaGFyQXQoMikrdC5jaGFyQXQoMyksMTYpLzI1NSx0aGlzLmI9cGFyc2VJbnQodC5jaGFyQXQoNCkrdC5jaGFyQXQoNSksMTYpLzI1NSx0aGlzfXJldHVybiB0JiZ0Lmxlbmd0aD4wP3RoaXMuc2V0Q29sb3JOYW1lKHQpOnRoaXN9c2V0Q29sb3JOYW1lKHQpe2NvbnN0IGU9alF0W3QudG9Mb3dlckNhc2UoKV07cmV0dXJuIHZvaWQgMCE9PWU/dGhpcy5zZXRIZXgoZSk6Y29uc29sZS53YXJuKCJUSFJFRS5Db2xvcjogVW5rbm93biBjb2xvciAiK3QpLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5yLHRoaXMuZyx0aGlzLmIpfWNvcHkodCl7cmV0dXJuIHRoaXMucj10LnIsdGhpcy5nPXQuZyx0aGlzLmI9dC5iLHRoaXN9Y29weUdhbW1hVG9MaW5lYXIodCxlPTIpe3JldHVybiB0aGlzLnI9TWF0aC5wb3codC5yLGUpLHRoaXMuZz1NYXRoLnBvdyh0LmcsZSksdGhpcy5iPU1hdGgucG93KHQuYixlKSx0aGlzfWNvcHlMaW5lYXJUb0dhbW1hKHQsZT0yKXtjb25zdCBuPWU+MD8xL2U6MTtyZXR1cm4gdGhpcy5yPU1hdGgucG93KHQucixuKSx0aGlzLmc9TWF0aC5wb3codC5nLG4pLHRoaXMuYj1NYXRoLnBvdyh0LmIsbiksdGhpc31jb252ZXJ0R2FtbWFUb0xpbmVhcih0KXtyZXR1cm4gdGhpcy5jb3B5R2FtbWFUb0xpbmVhcih0aGlzLHQpLHRoaXN9Y29udmVydExpbmVhclRvR2FtbWEodCl7cmV0dXJuIHRoaXMuY29weUxpbmVhclRvR2FtbWEodGhpcyx0KSx0aGlzfWNvcHlTUkdCVG9MaW5lYXIodCl7cmV0dXJuIHRoaXMucj1ZUXQodC5yKSx0aGlzLmc9WVF0KHQuZyksdGhpcy5iPVlRdCh0LmIpLHRoaXN9Y29weUxpbmVhclRvU1JHQih0KXtyZXR1cm4gdGhpcy5yPVhRdCh0LnIpLHRoaXMuZz1YUXQodC5nKSx0aGlzLmI9WFF0KHQuYiksdGhpc31jb252ZXJ0U1JHQlRvTGluZWFyKCl7cmV0dXJuIHRoaXMuY29weVNSR0JUb0xpbmVhcih0aGlzKSx0aGlzfWNvbnZlcnRMaW5lYXJUb1NSR0IoKXtyZXR1cm4gdGhpcy5jb3B5TGluZWFyVG9TUkdCKHRoaXMpLHRoaXN9Z2V0SGV4KCl7cmV0dXJuIDI1NSp0aGlzLnI8PDE2XjI1NSp0aGlzLmc8PDheMjU1KnRoaXMuYjw8MH1nZXRIZXhTdHJpbmcoKXtyZXR1cm4oIjAwMDAwMCIrdGhpcy5nZXRIZXgoKS50b1N0cmluZygxNikpLnNsaWNlKC02KX1nZXRIU0wodCl7Y29uc3QgZT10aGlzLnIsbj10aGlzLmcsaT10aGlzLmIscj1NYXRoLm1heChlLG4saSksbz1NYXRoLm1pbihlLG4saSk7bGV0IGEscztjb25zdCBsPShvK3IpLzI7aWYobz09PXIpYT0wLHM9MDtlbHNle2NvbnN0IHQ9ci1vO3N3aXRjaChzPWw8PS41P3QvKHIrbyk6dC8oMi1yLW8pLHIpe2Nhc2UgZTphPShuLWkpL3QrKG48aT82OjApO2JyZWFrO2Nhc2UgbjphPShpLWUpL3QrMjticmVhaztjYXNlIGk6YT0oZS1uKS90KzR9YS89Nn1yZXR1cm4gdC5oPWEsdC5zPXMsdC5sPWwsdH1nZXRTdHlsZSgpe3JldHVybiJyZ2IoIisoMjU1KnRoaXMucnwwKSsiLCIrKDI1NSp0aGlzLmd8MCkrIiwiKygyNTUqdGhpcy5ifDApKyIpIn1vZmZzZXRIU0wodCxlLG4pe3JldHVybiB0aGlzLmdldEhTTChHUXQpLEdRdC5oKz10LEdRdC5zKz1lLEdRdC5sKz1uLHRoaXMuc2V0SFNMKEdRdC5oLEdRdC5zLEdRdC5sKSx0aGlzfWFkZCh0KXtyZXR1cm4gdGhpcy5yKz10LnIsdGhpcy5nKz10LmcsdGhpcy5iKz10LmIsdGhpc31hZGRDb2xvcnModCxlKXtyZXR1cm4gdGhpcy5yPXQucitlLnIsdGhpcy5nPXQuZytlLmcsdGhpcy5iPXQuYitlLmIsdGhpc31hZGRTY2FsYXIodCl7cmV0dXJuIHRoaXMucis9dCx0aGlzLmcrPXQsdGhpcy5iKz10LHRoaXN9c3ViKHQpe3JldHVybiB0aGlzLnI9TWF0aC5tYXgoMCx0aGlzLnItdC5yKSx0aGlzLmc9TWF0aC5tYXgoMCx0aGlzLmctdC5nKSx0aGlzLmI9TWF0aC5tYXgoMCx0aGlzLmItdC5iKSx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLnIqPXQucix0aGlzLmcqPXQuZyx0aGlzLmIqPXQuYix0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLnIqPXQsdGhpcy5nKj10LHRoaXMuYio9dCx0aGlzfWxlcnAodCxlKXtyZXR1cm4gdGhpcy5yKz0odC5yLXRoaXMucikqZSx0aGlzLmcrPSh0LmctdGhpcy5nKSplLHRoaXMuYis9KHQuYi10aGlzLmIpKmUsdGhpc31sZXJwQ29sb3JzKHQsZSxuKXtyZXR1cm4gdGhpcy5yPXQucisoZS5yLXQucikqbix0aGlzLmc9dC5nKyhlLmctdC5nKSpuLHRoaXMuYj10LmIrKGUuYi10LmIpKm4sdGhpc31sZXJwSFNMKHQsZSl7dGhpcy5nZXRIU0woR1F0KSx0LmdldEhTTChXUXQpO2NvbnN0IG49Wlp0KEdRdC5oLFdRdC5oLGUpLGk9Wlp0KEdRdC5zLFdRdC5zLGUpLHI9Wlp0KEdRdC5sLFdRdC5sLGUpO3JldHVybiB0aGlzLnNldEhTTChuLGksciksdGhpc31lcXVhbHModCl7cmV0dXJuIHQucj09PXRoaXMuciYmdC5nPT09dGhpcy5nJiZ0LmI9PT10aGlzLmJ9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy5yPXRbZV0sdGhpcy5nPXRbZSsxXSx0aGlzLmI9dFtlKzJdLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy5yLHRbZSsxXT10aGlzLmcsdFtlKzJdPXRoaXMuYix0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxlKXtyZXR1cm4gdGhpcy5yPXQuZ2V0WChlKSx0aGlzLmc9dC5nZXRZKGUpLHRoaXMuYj10LmdldFooZSksITA9PT10Lm5vcm1hbGl6ZWQmJih0aGlzLnIvPTI1NSx0aGlzLmcvPTI1NSx0aGlzLmIvPTI1NSksdGhpc310b0pTT04oKXtyZXR1cm4gdGhpcy5nZXRIZXgoKX19JFF0Lk5BTUVTPWpRdCwkUXQucHJvdG90eXBlLmlzQ29sb3I9ITAsJFF0LnByb3RvdHlwZS5yPTEsJFF0LnByb3RvdHlwZS5nPTEsJFF0LnByb3RvdHlwZS5iPTE7Y2xhc3MgS1F0IGV4dGVuZHMgVVF0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoQmFzaWNNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgJFF0KDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLnNwZWN1bGFyTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5jb21iaW5lPTAsdGhpcy5yZWZsZWN0aXZpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX1LUXQucHJvdG90eXBlLmlzTWVzaEJhc2ljTWF0ZXJpYWw9ITA7Y29uc3QgWlF0PW5ldyBDSnQsSlF0PW5ldyBtSnQ7Y2xhc3MgUVF0e2NvbnN0cnVjdG9yKHQsZSxuKXtpZihBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogYXJyYXkgc2hvdWxkIGJlIGEgVHlwZWQgQXJyYXkuIik7dGhpcy5uYW1lPSIiLHRoaXMuYXJyYXk9dCx0aGlzLml0ZW1TaXplPWUsdGhpcy5jb3VudD12b2lkIDAhPT10P3QubGVuZ3RoL2U6MCx0aGlzLm5vcm1hbGl6ZWQ9ITA9PT1uLHRoaXMudXNhZ2U9Rlp0LHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MH1vblVwbG9hZENhbGxiYWNrKCl7fXNldCBuZWVkc1VwZGF0ZSh0KXshMD09PXQmJnRoaXMudmVyc2lvbisrfXNldFVzYWdlKHQpe3JldHVybiB0aGlzLnVzYWdlPXQsdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm5hbWU9dC5uYW1lLHRoaXMuYXJyYXk9bmV3IHQuYXJyYXkuY29uc3RydWN0b3IodC5hcnJheSksdGhpcy5pdGVtU2l6ZT10Lml0ZW1TaXplLHRoaXMuY291bnQ9dC5jb3VudCx0aGlzLm5vcm1hbGl6ZWQ9dC5ub3JtYWxpemVkLHRoaXMudXNhZ2U9dC51c2FnZSx0aGlzfWNvcHlBdCh0LGUsbil7dCo9dGhpcy5pdGVtU2l6ZSxuKj1lLml0ZW1TaXplO2ZvcihsZXQgaT0wLHI9dGhpcy5pdGVtU2l6ZTtpPHI7aSsrKXRoaXMuYXJyYXlbdCtpXT1lLmFycmF5W24raV07cmV0dXJuIHRoaXN9Y29weUFycmF5KHQpe3JldHVybiB0aGlzLmFycmF5LnNldCh0KSx0aGlzfWNvcHlDb2xvcnNBcnJheSh0KXtjb25zdCBlPXRoaXMuYXJyYXk7bGV0IG49MDtmb3IobGV0IGk9MCxyPXQubGVuZ3RoO2k8cjtpKyspe2xldCByPXRbaV07dm9pZCAwPT09ciYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlDb2xvcnNBcnJheSgpOiBjb2xvciBpcyB1bmRlZmluZWQiLGkpLHI9bmV3ICRRdCksZVtuKytdPXIucixlW24rK109ci5nLGVbbisrXT1yLmJ9cmV0dXJuIHRoaXN9Y29weVZlY3RvcjJzQXJyYXkodCl7Y29uc3QgZT10aGlzLmFycmF5O2xldCBuPTA7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKXtsZXQgcj10W2ldO3ZvaWQgMD09PXImJihjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZS5jb3B5VmVjdG9yMnNBcnJheSgpOiB2ZWN0b3IgaXMgdW5kZWZpbmVkIixpKSxyPW5ldyBtSnQpLGVbbisrXT1yLngsZVtuKytdPXIueX1yZXR1cm4gdGhpc31jb3B5VmVjdG9yM3NBcnJheSh0KXtjb25zdCBlPXRoaXMuYXJyYXk7bGV0IG49MDtmb3IobGV0IGk9MCxyPXQubGVuZ3RoO2k8cjtpKyspe2xldCByPXRbaV07dm9pZCAwPT09ciYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3Izc0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLGkpLHI9bmV3IENKdCksZVtuKytdPXIueCxlW24rK109ci55LGVbbisrXT1yLnp9cmV0dXJuIHRoaXN9Y29weVZlY3RvcjRzQXJyYXkodCl7Y29uc3QgZT10aGlzLmFycmF5O2xldCBuPTA7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKXtsZXQgcj10W2ldO3ZvaWQgMD09PXImJihjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZS5jb3B5VmVjdG9yNHNBcnJheSgpOiB2ZWN0b3IgaXMgdW5kZWZpbmVkIixpKSxyPW5ldyB3SnQpLGVbbisrXT1yLngsZVtuKytdPXIueSxlW24rK109ci56LGVbbisrXT1yLnd9cmV0dXJuIHRoaXN9YXBwbHlNYXRyaXgzKHQpe2lmKDI9PT10aGlzLml0ZW1TaXplKWZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKUpRdC5mcm9tQnVmZmVyQXR0cmlidXRlKHRoaXMsZSksSlF0LmFwcGx5TWF0cml4Myh0KSx0aGlzLnNldFhZKGUsSlF0LngsSlF0LnkpO2Vsc2UgaWYoMz09PXRoaXMuaXRlbVNpemUpZm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspWlF0LmZyb21CdWZmZXJBdHRyaWJ1dGUodGhpcyxlKSxaUXQuYXBwbHlNYXRyaXgzKHQpLHRoaXMuc2V0WFlaKGUsWlF0LngsWlF0LnksWlF0LnopO3JldHVybiB0aGlzfWFwcGx5TWF0cml4NCh0KXtmb3IobGV0IGU9MCxuPXRoaXMuY291bnQ7ZTxuO2UrKylaUXQueD10aGlzLmdldFgoZSksWlF0Lnk9dGhpcy5nZXRZKGUpLFpRdC56PXRoaXMuZ2V0WihlKSxaUXQuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKGUsWlF0LngsWlF0LnksWlF0LnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKVpRdC54PXRoaXMuZ2V0WChlKSxaUXQueT10aGlzLmdldFkoZSksWlF0Lno9dGhpcy5nZXRaKGUpLFpRdC5hcHBseU5vcm1hbE1hdHJpeCh0KSx0aGlzLnNldFhZWihlLFpRdC54LFpRdC55LFpRdC56KTtyZXR1cm4gdGhpc310cmFuc2Zvcm1EaXJlY3Rpb24odCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspWlF0Lng9dGhpcy5nZXRYKGUpLFpRdC55PXRoaXMuZ2V0WShlKSxaUXQuej10aGlzLmdldFooZSksWlF0LnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzLnNldFhZWihlLFpRdC54LFpRdC55LFpRdC56KTtyZXR1cm4gdGhpc31zZXQodCxlPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LGUpLHRoaXN9Z2V0WCh0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemVdfXNldFgodCxlKXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemVdPWUsdGhpc31nZXRZKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsxXX1zZXRZKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzFdPWUsdGhpc31nZXRaKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsyXX1zZXRaKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzJdPWUsdGhpc31nZXRXKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSszXX1zZXRXKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzNdPWUsdGhpc31zZXRYWSh0LGUsbil7cmV0dXJuIHRoaXMuYXJyYXlbMCsodCo9dGhpcy5pdGVtU2l6ZSldPWUsdGhpcy5hcnJheVt0KzFdPW4sdGhpc31zZXRYWVoodCxlLG4saSl7cmV0dXJuIHRoaXMuYXJyYXlbMCsodCo9dGhpcy5pdGVtU2l6ZSldPWUsdGhpcy5hcnJheVt0KzFdPW4sdGhpcy5hcnJheVt0KzJdPWksdGhpc31zZXRYWVpXKHQsZSxuLGkscil7cmV0dXJuIHRoaXMuYXJyYXlbMCsodCo9dGhpcy5pdGVtU2l6ZSldPWUsdGhpcy5hcnJheVt0KzFdPW4sdGhpcy5hcnJheVt0KzJdPWksdGhpcy5hcnJheVt0KzNdPXIsdGhpc31vblVwbG9hZCh0KXtyZXR1cm4gdGhpcy5vblVwbG9hZENhbGxiYWNrPXQsdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLmFycmF5LHRoaXMuaXRlbVNpemUpLmNvcHkodGhpcyl9dG9KU09OKCl7Y29uc3QgdD17aXRlbVNpemU6dGhpcy5pdGVtU2l6ZSx0eXBlOnRoaXMuYXJyYXkuY29uc3RydWN0b3IubmFtZSxhcnJheTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLmFycmF5KSxub3JtYWxpemVkOnRoaXMubm9ybWFsaXplZH07cmV0dXJuIiIhPT10aGlzLm5hbWUmJih0Lm5hbWU9dGhpcy5uYW1lKSx0aGlzLnVzYWdlIT09Rlp0JiYodC51c2FnZT10aGlzLnVzYWdlKSwwPT09dGhpcy51cGRhdGVSYW5nZS5vZmZzZXQmJi0xPT09dGhpcy51cGRhdGVSYW5nZS5jb3VudHx8KHQudXBkYXRlUmFuZ2U9dGhpcy51cGRhdGVSYW5nZSksdH19UVF0LnByb3RvdHlwZS5pc0J1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyB0MXQgZXh0ZW5kcyBRUXR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBJbnQ4QXJyYXkodCksZSxuKX19Y2xhc3MgZTF0IGV4dGVuZHMgUVF0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgVWludDhBcnJheSh0KSxlLG4pfX1jbGFzcyBuMXQgZXh0ZW5kcyBRUXR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBVaW50OENsYW1wZWRBcnJheSh0KSxlLG4pfX1jbGFzcyBpMXQgZXh0ZW5kcyBRUXR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBJbnQxNkFycmF5KHQpLGUsbil9fWNsYXNzIHIxdCBleHRlbmRzIFFRdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IFVpbnQxNkFycmF5KHQpLGUsbil9fWNsYXNzIG8xdCBleHRlbmRzIFFRdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IEludDMyQXJyYXkodCksZSxuKX19Y2xhc3MgYTF0IGV4dGVuZHMgUVF0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgVWludDMyQXJyYXkodCksZSxuKX19Y2xhc3MgczF0IGV4dGVuZHMgUVF0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgVWludDE2QXJyYXkodCksZSxuKX19czF0LnByb3RvdHlwZS5pc0Zsb2F0MTZCdWZmZXJBdHRyaWJ1dGU9ITA7Y2xhc3MgbDF0IGV4dGVuZHMgUVF0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgRmxvYXQzMkFycmF5KHQpLGUsbil9fWNsYXNzIGMxdCBleHRlbmRzIFFRdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IEZsb2F0NjRBcnJheSh0KSxlLG4pfX1mdW5jdGlvbiB1MXQodCl7aWYoMD09PXQubGVuZ3RoKXJldHVybi0xLzA7bGV0IGU9dFswXTtmb3IobGV0IG49MSxpPXQubGVuZ3RoO248aTsrK24pdFtuXT5lJiYoZT10W25dKTtyZXR1cm4gZX1jb25zdCBoMXQ9e0ludDhBcnJheTpJbnQ4QXJyYXksVWludDhBcnJheTpVaW50OEFycmF5LFVpbnQ4Q2xhbXBlZEFycmF5OlVpbnQ4Q2xhbXBlZEFycmF5LEludDE2QXJyYXk6SW50MTZBcnJheSxVaW50MTZBcnJheTpVaW50MTZBcnJheSxJbnQzMkFycmF5OkludDMyQXJyYXksVWludDMyQXJyYXk6VWludDMyQXJyYXksRmxvYXQzMkFycmF5OkZsb2F0MzJBcnJheSxGbG9hdDY0QXJyYXk6RmxvYXQ2NEFycmF5fTtmdW5jdGlvbiBkMXQodCxlKXtyZXR1cm4gbmV3IGgxdFt0XShlKX1sZXQgcDF0PTA7Y29uc3QgZjF0PW5ldyByUXQsbTF0PW5ldyBrUXQsZzF0PW5ldyBDSnQsXzF0PW5ldyBMSnQseTF0PW5ldyBMSnQsdjF0PW5ldyBDSnQ7Y2xhc3MgYjF0IGV4dGVuZHMgalp0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTpwMXQrK30pLHRoaXMudXVpZD1YWnQoKSx0aGlzLm5hbWU9IiIsdGhpcy50eXBlPSJCdWZmZXJHZW9tZXRyeSIsdGhpcy5pbmRleD1udWxsLHRoaXMuYXR0cmlidXRlcz17fSx0aGlzLm1vcnBoQXR0cmlidXRlcz17fSx0aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPSExLHRoaXMuZ3JvdXBzPVtdLHRoaXMuYm91bmRpbmdCb3g9bnVsbCx0aGlzLmJvdW5kaW5nU3BoZXJlPW51bGwsdGhpcy5kcmF3UmFuZ2U9e3N0YXJ0OjAsY291bnQ6MS8wfSx0aGlzLnVzZXJEYXRhPXt9fWdldEluZGV4KCl7cmV0dXJuIHRoaXMuaW5kZXh9c2V0SW5kZXgodCl7cmV0dXJuIHRoaXMuaW5kZXg9QXJyYXkuaXNBcnJheSh0KT9uZXcodTF0KHQpPjY1NTM1P2ExdDpyMXQpKHQsMSk6dCx0aGlzfWdldEF0dHJpYnV0ZSh0KXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW3RdfXNldEF0dHJpYnV0ZSh0LGUpe3JldHVybiB0aGlzLmF0dHJpYnV0ZXNbdF09ZSx0aGlzfWRlbGV0ZUF0dHJpYnV0ZSh0KXtyZXR1cm4gZGVsZXRlIHRoaXMuYXR0cmlidXRlc1t0XSx0aGlzfWhhc0F0dHJpYnV0ZSh0KXtyZXR1cm4gdm9pZCAwIT09dGhpcy5hdHRyaWJ1dGVzW3RdfWFkZEdyb3VwKHQsZSxuPTApe3RoaXMuZ3JvdXBzLnB1c2goe3N0YXJ0OnQsY291bnQ6ZSxtYXRlcmlhbEluZGV4Om59KX1jbGVhckdyb3Vwcygpe3RoaXMuZ3JvdXBzPVtdfXNldERyYXdSYW5nZSh0LGUpe3RoaXMuZHJhd1JhbmdlLnN0YXJ0PXQsdGhpcy5kcmF3UmFuZ2UuY291bnQ9ZX1hcHBseU1hdHJpeDQodCl7Y29uc3QgZT10aGlzLmF0dHJpYnV0ZXMucG9zaXRpb247dm9pZCAwIT09ZSYmKGUuYXBwbHlNYXRyaXg0KHQpLGUubmVlZHNVcGRhdGU9ITApO2NvbnN0IG49dGhpcy5hdHRyaWJ1dGVzLm5vcm1hbDtpZih2b2lkIDAhPT1uKXtjb25zdCBlPShuZXcgZ0p0KS5nZXROb3JtYWxNYXRyaXgodCk7bi5hcHBseU5vcm1hbE1hdHJpeChlKSxuLm5lZWRzVXBkYXRlPSEwfWNvbnN0IGk9dGhpcy5hdHRyaWJ1dGVzLnRhbmdlbnQ7cmV0dXJuIHZvaWQgMCE9PWkmJihpLnRyYW5zZm9ybURpcmVjdGlvbih0KSxpLm5lZWRzVXBkYXRlPSEwKSxudWxsIT09dGhpcy5ib3VuZGluZ0JveCYmdGhpcy5jb21wdXRlQm91bmRpbmdCb3goKSxudWxsIT09dGhpcy5ib3VuZGluZ1NwaGVyZSYmdGhpcy5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSx0aGlzfWFwcGx5UXVhdGVybmlvbih0KXtyZXR1cm4gZjF0Lm1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpLHRoaXMuYXBwbHlNYXRyaXg0KGYxdCksdGhpc31yb3RhdGVYKHQpe3JldHVybiBmMXQubWFrZVJvdGF0aW9uWCh0KSx0aGlzLmFwcGx5TWF0cml4NChmMXQpLHRoaXN9cm90YXRlWSh0KXtyZXR1cm4gZjF0Lm1ha2VSb3RhdGlvblkodCksdGhpcy5hcHBseU1hdHJpeDQoZjF0KSx0aGlzfXJvdGF0ZVoodCl7cmV0dXJuIGYxdC5tYWtlUm90YXRpb25aKHQpLHRoaXMuYXBwbHlNYXRyaXg0KGYxdCksdGhpc310cmFuc2xhdGUodCxlLG4pe3JldHVybiBmMXQubWFrZVRyYW5zbGF0aW9uKHQsZSxuKSx0aGlzLmFwcGx5TWF0cml4NChmMXQpLHRoaXN9c2NhbGUodCxlLG4pe3JldHVybiBmMXQubWFrZVNjYWxlKHQsZSxuKSx0aGlzLmFwcGx5TWF0cml4NChmMXQpLHRoaXN9bG9va0F0KHQpe3JldHVybiBtMXQubG9va0F0KHQpLG0xdC51cGRhdGVNYXRyaXgoKSx0aGlzLmFwcGx5TWF0cml4NChtMXQubWF0cml4KSx0aGlzfWNlbnRlcigpe3JldHVybiB0aGlzLmNvbXB1dGVCb3VuZGluZ0JveCgpLHRoaXMuYm91bmRpbmdCb3guZ2V0Q2VudGVyKGcxdCkubmVnYXRlKCksdGhpcy50cmFuc2xhdGUoZzF0LngsZzF0LnksZzF0LnopLHRoaXN9c2V0RnJvbVBvaW50cyh0KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wLGk9dC5sZW5ndGg7bjxpO24rKyl7Y29uc3QgaT10W25dO2UucHVzaChpLngsaS55LGkuenx8MCl9cmV0dXJuIHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdChlLDMpKSx0aGlzfWNvbXB1dGVCb3VuZGluZ0JveCgpe251bGw9PT10aGlzLmJvdW5kaW5nQm94JiYodGhpcy5ib3VuZGluZ0JveD1uZXcgTEp0KTtjb25zdCB0PXRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbixlPXRoaXMubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uO2lmKHQmJnQuaXNHTEJ1ZmZlckF0dHJpYnV0ZSlyZXR1cm4gY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk6IEdMQnVmZmVyQXR0cmlidXRlIHJlcXVpcmVzIGEgbWFudWFsIGJvdW5kaW5nIGJveC4gQWx0ZXJuYXRpdmVseSBzZXQgIm1lc2guZnJ1c3R1bUN1bGxlZCIgdG8gImZhbHNlIi4nLHRoaXMpLHZvaWQgdGhpcy5ib3VuZGluZ0JveC5zZXQobmV3IENKdCgtMS8wLC0xLzAsLTEvMCksbmV3IENKdCgxLzAsMS8wLDEvMCkpO2lmKHZvaWQgMCE9PXQpe2lmKHRoaXMuYm91bmRpbmdCb3guc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KSxlKWZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKylfMXQuc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZShlW3RdKSx0aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPyh2MXQuYWRkVmVjdG9ycyh0aGlzLmJvdW5kaW5nQm94Lm1pbixfMXQubWluKSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQodjF0KSx2MXQuYWRkVmVjdG9ycyh0aGlzLmJvdW5kaW5nQm94Lm1heCxfMXQubWF4KSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQodjF0KSk6KHRoaXMuYm91bmRpbmdCb3guZXhwYW5kQnlQb2ludChfMXQubWluKSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQoXzF0Lm1heCkpfWVsc2UgdGhpcy5ib3VuZGluZ0JveC5tYWtlRW1wdHkoKTsoaXNOYU4odGhpcy5ib3VuZGluZ0JveC5taW4ueCl8fGlzTmFOKHRoaXMuYm91bmRpbmdCb3gubWluLnkpfHxpc05hTih0aGlzLmJvdW5kaW5nQm94Lm1pbi56KSkmJmNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpOiBDb21wdXRlZCBtaW4vbWF4IGhhdmUgTmFOIHZhbHVlcy4gVGhlICJwb3NpdGlvbiIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJyx0aGlzKX1jb21wdXRlQm91bmRpbmdTcGhlcmUoKXtudWxsPT09dGhpcy5ib3VuZGluZ1NwaGVyZSYmKHRoaXMuYm91bmRpbmdTcGhlcmU9bmV3ICRKdCk7Y29uc3QgdD10aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24sZT10aGlzLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbjtpZih0JiZ0LmlzR0xCdWZmZXJBdHRyaWJ1dGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiBHTEJ1ZmZlckF0dHJpYnV0ZSByZXF1aXJlcyBhIG1hbnVhbCBib3VuZGluZyBzcGhlcmUuIEFsdGVybmF0aXZlbHkgc2V0ICJtZXNoLmZydXN0dW1DdWxsZWQiIHRvICJmYWxzZSIuJyx0aGlzKSx2b2lkIHRoaXMuYm91bmRpbmdTcGhlcmUuc2V0KG5ldyBDSnQsMS8wKTtpZih0KXtjb25zdCBuPXRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyO2lmKF8xdC5zZXRGcm9tQnVmZmVyQXR0cmlidXRlKHQpLGUpZm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKXkxdC5zZXRGcm9tQnVmZmVyQXR0cmlidXRlKGVbdF0pLHRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU/KHYxdC5hZGRWZWN0b3JzKF8xdC5taW4seTF0Lm1pbiksXzF0LmV4cGFuZEJ5UG9pbnQodjF0KSx2MXQuYWRkVmVjdG9ycyhfMXQubWF4LHkxdC5tYXgpLF8xdC5leHBhbmRCeVBvaW50KHYxdCkpOihfMXQuZXhwYW5kQnlQb2ludCh5MXQubWluKSxfMXQuZXhwYW5kQnlQb2ludCh5MXQubWF4KSk7XzF0LmdldENlbnRlcihuKTtsZXQgaT0wO2ZvcihsZXQgZT0wLHI9dC5jb3VudDtlPHI7ZSsrKXYxdC5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSksaT1NYXRoLm1heChpLG4uZGlzdGFuY2VUb1NxdWFyZWQodjF0KSk7aWYoZSlmb3IobGV0IHI9MCxvPWUubGVuZ3RoO3I8bztyKyspe2NvbnN0IG89ZVtyXSxhPXRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU7Zm9yKGxldCBlPTAscj1vLmNvdW50O2U8cjtlKyspdjF0LmZyb21CdWZmZXJBdHRyaWJ1dGUobyxlKSxhJiYoZzF0LmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlKSx2MXQuYWRkKGcxdCkpLGk9TWF0aC5tYXgoaSxuLmRpc3RhbmNlVG9TcXVhcmVkKHYxdCkpfXRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzPU1hdGguc3FydChpKSxpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykmJmNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiBDb21wdXRlZCByYWRpdXMgaXMgTmFOLiBUaGUgInBvc2l0aW9uIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nLHRoaXMpfX1jb21wdXRlRmFjZU5vcm1hbHMoKXt9Y29tcHV0ZVRhbmdlbnRzKCl7Y29uc3QgdD10aGlzLmluZGV4LGU9dGhpcy5hdHRyaWJ1dGVzO2lmKG51bGw9PT10fHx2b2lkIDA9PT1lLnBvc2l0aW9ufHx2b2lkIDA9PT1lLm5vcm1hbHx8dm9pZCAwPT09ZS51dilyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmNvbXB1dGVUYW5nZW50cygpIGZhaWxlZC4gTWlzc2luZyByZXF1aXJlZCBhdHRyaWJ1dGVzIChpbmRleCwgcG9zaXRpb24sIG5vcm1hbCBvciB1dikiKTtjb25zdCBuPXQuYXJyYXksaT1lLnBvc2l0aW9uLmFycmF5LHI9ZS5ub3JtYWwuYXJyYXksbz1lLnV2LmFycmF5LGE9aS5sZW5ndGgvMzt2b2lkIDA9PT1lLnRhbmdlbnQmJnRoaXMuc2V0QXR0cmlidXRlKCJ0YW5nZW50IixuZXcgUVF0KG5ldyBGbG9hdDMyQXJyYXkoNCphKSw0KSk7Y29uc3Qgcz1lLnRhbmdlbnQuYXJyYXksbD1bXSxjPVtdO2ZvcihsZXQgdD0wO3Q8YTt0KyspbFt0XT1uZXcgQ0p0LGNbdF09bmV3IENKdDtjb25zdCB1PW5ldyBDSnQsaD1uZXcgQ0p0LGQ9bmV3IENKdCxwPW5ldyBtSnQsZj1uZXcgbUp0LG09bmV3IG1KdCxnPW5ldyBDSnQsXz1uZXcgQ0p0O2Z1bmN0aW9uIHkodCxlLG4pe3UuZnJvbUFycmF5KGksMyp0KSxoLmZyb21BcnJheShpLDMqZSksZC5mcm9tQXJyYXkoaSwzKm4pLHAuZnJvbUFycmF5KG8sMip0KSxmLmZyb21BcnJheShvLDIqZSksbS5mcm9tQXJyYXkobywyKm4pLGguc3ViKHUpLGQuc3ViKHUpLGYuc3ViKHApLG0uc3ViKHApO2NvbnN0IHI9MS8oZi54Km0ueS1tLngqZi55KTtpc0Zpbml0ZShyKSYmKGcuY29weShoKS5tdWx0aXBseVNjYWxhcihtLnkpLmFkZFNjYWxlZFZlY3RvcihkLC1mLnkpLm11bHRpcGx5U2NhbGFyKHIpLF8uY29weShkKS5tdWx0aXBseVNjYWxhcihmLngpLmFkZFNjYWxlZFZlY3RvcihoLC1tLngpLm11bHRpcGx5U2NhbGFyKHIpLGxbdF0uYWRkKGcpLGxbZV0uYWRkKGcpLGxbbl0uYWRkKGcpLGNbdF0uYWRkKF8pLGNbZV0uYWRkKF8pLGNbbl0uYWRkKF8pKX1sZXQgdj10aGlzLmdyb3VwczswPT09di5sZW5ndGgmJih2PVt7c3RhcnQ6MCxjb3VudDpuLmxlbmd0aH1dKTtmb3IobGV0IHQ9MCxlPXYubGVuZ3RoO3Q8ZTsrK3Qpe2NvbnN0IGU9dlt0XSxpPWUuc3RhcnQ7Zm9yKGxldCB0PWkscj1pK2UuY291bnQ7dDxyO3QrPTMpeShuW3QrMF0sblt0KzFdLG5bdCsyXSl9Y29uc3QgYj1uZXcgQ0p0LHg9bmV3IENKdCx3PW5ldyBDSnQsUz1uZXcgQ0p0O2Z1bmN0aW9uIE0odCl7dy5mcm9tQXJyYXkociwzKnQpLFMuY29weSh3KTtjb25zdCBlPWxbdF07Yi5jb3B5KGUpLGIuc3ViKHcubXVsdGlwbHlTY2FsYXIody5kb3QoZSkpKS5ub3JtYWxpemUoKSx4LmNyb3NzVmVjdG9ycyhTLGUpO2NvbnN0IG49eC5kb3QoY1t0XSk8MD8tMToxO3NbNCp0XT1iLngsc1s0KnQrMV09Yi55LHNbNCp0KzJdPWIueixzWzQqdCszXT1ufWZvcihsZXQgdD0wLGU9di5sZW5ndGg7dDxlOysrdCl7Y29uc3QgZT12W3RdLGk9ZS5zdGFydDtmb3IobGV0IHQ9aSxyPWkrZS5jb3VudDt0PHI7dCs9MylNKG5bdCswXSksTShuW3QrMV0pLE0oblt0KzJdKX19Y29tcHV0ZVZlcnRleE5vcm1hbHMoKXtjb25zdCB0PXRoaXMuaW5kZXgsZT10aGlzLmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKTtpZih2b2lkIDAhPT1lKXtsZXQgbj10aGlzLmdldEF0dHJpYnV0ZSgibm9ybWFsIik7aWYodm9pZCAwPT09biluPW5ldyBRUXQobmV3IEZsb2F0MzJBcnJheSgzKmUuY291bnQpLDMpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG4pO2Vsc2UgZm9yKGxldCB0PTAsZT1uLmNvdW50O3Q8ZTt0Kyspbi5zZXRYWVoodCwwLDAsMCk7Y29uc3QgaT1uZXcgQ0p0LHI9bmV3IENKdCxvPW5ldyBDSnQsYT1uZXcgQ0p0LHM9bmV3IENKdCxsPW5ldyBDSnQsYz1uZXcgQ0p0LHU9bmV3IENKdDtpZih0KWZvcihsZXQgaD0wLGQ9dC5jb3VudDtoPGQ7aCs9Myl7Y29uc3QgZD10LmdldFgoaCswKSxwPXQuZ2V0WChoKzEpLGY9dC5nZXRYKGgrMik7aS5mcm9tQnVmZmVyQXR0cmlidXRlKGUsZCksci5mcm9tQnVmZmVyQXR0cmlidXRlKGUscCksby5mcm9tQnVmZmVyQXR0cmlidXRlKGUsZiksYy5zdWJWZWN0b3JzKG8sciksdS5zdWJWZWN0b3JzKGksciksYy5jcm9zcyh1KSxhLmZyb21CdWZmZXJBdHRyaWJ1dGUobixkKSxzLmZyb21CdWZmZXJBdHRyaWJ1dGUobixwKSxsLmZyb21CdWZmZXJBdHRyaWJ1dGUobixmKSxhLmFkZChjKSxzLmFkZChjKSxsLmFkZChjKSxuLnNldFhZWihkLGEueCxhLnksYS56KSxuLnNldFhZWihwLHMueCxzLnkscy56KSxuLnNldFhZWihmLGwueCxsLnksbC56KX1lbHNlIGZvcihsZXQgdD0wLGE9ZS5jb3VudDt0PGE7dCs9MylpLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx0KzApLHIuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQrMSksby5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCsyKSxjLnN1YlZlY3RvcnMobyxyKSx1LnN1YlZlY3RvcnMoaSxyKSxjLmNyb3NzKHUpLG4uc2V0WFlaKHQrMCxjLngsYy55LGMueiksbi5zZXRYWVoodCsxLGMueCxjLnksYy56KSxuLnNldFhZWih0KzIsYy54LGMueSxjLnopO3RoaXMubm9ybWFsaXplTm9ybWFscygpLG4ubmVlZHNVcGRhdGU9ITB9fW1lcmdlKHQsZSl7aWYoIXR8fCF0LmlzQnVmZmVyR2VvbWV0cnkpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnkubWVyZ2UoKTogZ2VvbWV0cnkgbm90IGFuIGluc3RhbmNlIG9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5LiIsdCk7dm9pZCAwPT09ZSYmKGU9MCxjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5Lm1lcmdlKCk6IE92ZXJ3cml0aW5nIG9yaWdpbmFsIGdlb21ldHJ5LCBzdGFydGluZyBhdCBvZmZzZXQ9MC4gVXNlIEJ1ZmZlckdlb21ldHJ5VXRpbHMubWVyZ2VCdWZmZXJHZW9tZXRyaWVzKCkgZm9yIGxvc3NsZXNzIG1lcmdlLiIpKTtjb25zdCBuPXRoaXMuYXR0cmlidXRlcztmb3IoY29uc3QgaSBpbiBuKXtpZih2b2lkIDA9PT10LmF0dHJpYnV0ZXNbaV0pY29udGludWU7Y29uc3Qgcj1uW2ldLmFycmF5LG89dC5hdHRyaWJ1dGVzW2ldLGE9by5hcnJheSxzPW8uaXRlbVNpemUqZSxsPU1hdGgubWluKGEubGVuZ3RoLHIubGVuZ3RoLXMpO2ZvcihsZXQgdD0wLGU9czt0PGw7dCsrLGUrKylyW2VdPWFbdF19cmV0dXJuIHRoaXN9bm9ybWFsaXplTm9ybWFscygpe2NvbnN0IHQ9dGhpcy5hdHRyaWJ1dGVzLm5vcm1hbDtmb3IobGV0IGU9MCxuPXQuY291bnQ7ZTxuO2UrKyl2MXQuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpLHYxdC5ub3JtYWxpemUoKSx0LnNldFhZWihlLHYxdC54LHYxdC55LHYxdC56KX10b05vbkluZGV4ZWQoKXtmdW5jdGlvbiB0KHQsZSl7Y29uc3Qgbj10LmFycmF5LGk9dC5pdGVtU2l6ZSxyPXQubm9ybWFsaXplZCxvPW5ldyBuLmNvbnN0cnVjdG9yKGUubGVuZ3RoKmkpO2xldCBhPTAscz0wO2ZvcihsZXQgcj0wLGw9ZS5sZW5ndGg7cjxsO3IrKyl7YT10LmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU/ZVtyXSp0LmRhdGEuc3RyaWRlK3Qub2Zmc2V0OmVbcl0qaTtmb3IobGV0IHQ9MDt0PGk7dCsrKW9bcysrXT1uW2ErK119cmV0dXJuIG5ldyBRUXQobyxpLHIpfWlmKG51bGw9PT10aGlzLmluZGV4KXJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5LnRvTm9uSW5kZXhlZCgpOiBCdWZmZXJHZW9tZXRyeSBpcyBhbHJlYWR5IG5vbi1pbmRleGVkLiIpLHRoaXM7Y29uc3QgZT1uZXcgYjF0LG49dGhpcy5pbmRleC5hcnJheSxpPXRoaXMuYXR0cmlidXRlcztmb3IoY29uc3QgciBpbiBpKXtjb25zdCBvPXQoaVtyXSxuKTtlLnNldEF0dHJpYnV0ZShyLG8pfWNvbnN0IHI9dGhpcy5tb3JwaEF0dHJpYnV0ZXM7Zm9yKGNvbnN0IGkgaW4gcil7Y29uc3Qgbz1bXSxhPXJbaV07Zm9yKGxldCBlPTAsaT1hLmxlbmd0aDtlPGk7ZSsrKXtjb25zdCBpPXQoYVtlXSxuKTtvLnB1c2goaSl9ZS5tb3JwaEF0dHJpYnV0ZXNbaV09b31lLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPXRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU7Y29uc3Qgbz10aGlzLmdyb3Vwcztmb3IobGV0IHQ9MCxuPW8ubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49b1t0XTtlLmFkZEdyb3VwKG4uc3RhcnQsbi5jb3VudCxuLm1hdGVyaWFsSW5kZXgpfXJldHVybiBlfXRvSlNPTigpe2NvbnN0IHQ9e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJCdWZmZXJHZW9tZXRyeSIsZ2VuZXJhdG9yOiJCdWZmZXJHZW9tZXRyeS50b0pTT04ifX07aWYodC51dWlkPXRoaXMudXVpZCx0LnR5cGU9dGhpcy50eXBlLCIiIT09dGhpcy5uYW1lJiYodC5uYW1lPXRoaXMubmFtZSksT2JqZWN0LmtleXModGhpcy51c2VyRGF0YSkubGVuZ3RoPjAmJih0LnVzZXJEYXRhPXRoaXMudXNlckRhdGEpLHZvaWQgMCE9PXRoaXMucGFyYW1ldGVycyl7Y29uc3QgZT10aGlzLnBhcmFtZXRlcnM7Zm9yKGNvbnN0IG4gaW4gZSl2b2lkIDAhPT1lW25dJiYodFtuXT1lW25dKTtyZXR1cm4gdH10LmRhdGE9e2F0dHJpYnV0ZXM6e319O2NvbnN0IGU9dGhpcy5pbmRleDtudWxsIT09ZSYmKHQuZGF0YS5pbmRleD17dHlwZTplLmFycmF5LmNvbnN0cnVjdG9yLm5hbWUsYXJyYXk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZS5hcnJheSl9KTtjb25zdCBuPXRoaXMuYXR0cmlidXRlcztmb3IoY29uc3QgZSBpbiBuKXQuZGF0YS5hdHRyaWJ1dGVzW2VdPW5bZV0udG9KU09OKHQuZGF0YSk7Y29uc3QgaT17fTtsZXQgcj0hMTtmb3IoY29uc3QgZSBpbiB0aGlzLm1vcnBoQXR0cmlidXRlcyl7Y29uc3Qgbj10aGlzLm1vcnBoQXR0cmlidXRlc1tlXSxvPVtdO2ZvcihsZXQgZT0wLGk9bi5sZW5ndGg7ZTxpO2UrKylvLnB1c2gobltlXS50b0pTT04odC5kYXRhKSk7by5sZW5ndGg+MCYmKGlbZV09byxyPSEwKX1yJiYodC5kYXRhLm1vcnBoQXR0cmlidXRlcz1pLHQuZGF0YS5tb3JwaFRhcmdldHNSZWxhdGl2ZT10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlKTtjb25zdCBvPXRoaXMuZ3JvdXBzO28ubGVuZ3RoPjAmJih0LmRhdGEuZ3JvdXBzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobykpKTtjb25zdCBhPXRoaXMuYm91bmRpbmdTcGhlcmU7cmV0dXJuIG51bGwhPT1hJiYodC5kYXRhLmJvdW5kaW5nU3BoZXJlPXtjZW50ZXI6YS5jZW50ZXIudG9BcnJheSgpLHJhZGl1czphLnJhZGl1c30pLHR9Y2xvbmUoKXtyZXR1cm4obmV3IGIxdCkuY29weSh0aGlzKX1jb3B5KHQpe3RoaXMuaW5kZXg9bnVsbCx0aGlzLmF0dHJpYnV0ZXM9e30sdGhpcy5tb3JwaEF0dHJpYnV0ZXM9e30sdGhpcy5ncm91cHM9W10sdGhpcy5ib3VuZGluZ0JveD1udWxsLHRoaXMuYm91bmRpbmdTcGhlcmU9bnVsbDtjb25zdCBlPXt9O3RoaXMubmFtZT10Lm5hbWU7Y29uc3Qgbj10LmluZGV4O251bGwhPT1uJiZ0aGlzLnNldEluZGV4KG4uY2xvbmUoZSkpO2NvbnN0IGk9dC5hdHRyaWJ1dGVzO2Zvcihjb25zdCB0IGluIGkpdGhpcy5zZXRBdHRyaWJ1dGUodCxpW3RdLmNsb25lKGUpKTtjb25zdCByPXQubW9ycGhBdHRyaWJ1dGVzO2Zvcihjb25zdCB0IGluIHIpe2NvbnN0IG49W10saT1yW3RdO2ZvcihsZXQgdD0wLHI9aS5sZW5ndGg7dDxyO3QrKyluLnB1c2goaVt0XS5jbG9uZShlKSk7dGhpcy5tb3JwaEF0dHJpYnV0ZXNbdF09bn10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPXQubW9ycGhUYXJnZXRzUmVsYXRpdmU7Y29uc3Qgbz10Lmdyb3Vwcztmb3IobGV0IHQ9MCxlPW8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9b1t0XTt0aGlzLmFkZEdyb3VwKGUuc3RhcnQsZS5jb3VudCxlLm1hdGVyaWFsSW5kZXgpfWNvbnN0IGE9dC5ib3VuZGluZ0JveDtudWxsIT09YSYmKHRoaXMuYm91bmRpbmdCb3g9YS5jbG9uZSgpKTtjb25zdCBzPXQuYm91bmRpbmdTcGhlcmU7cmV0dXJuIG51bGwhPT1zJiYodGhpcy5ib3VuZGluZ1NwaGVyZT1zLmNsb25lKCkpLHRoaXMuZHJhd1JhbmdlLnN0YXJ0PXQuZHJhd1JhbmdlLnN0YXJ0LHRoaXMuZHJhd1JhbmdlLmNvdW50PXQuZHJhd1JhbmdlLmNvdW50LHRoaXMudXNlckRhdGE9dC51c2VyRGF0YSx0aGlzfWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9fWIxdC5wcm90b3R5cGUuaXNCdWZmZXJHZW9tZXRyeT0hMDtjb25zdCB4MXQ9bmV3IHJRdCx3MXQ9bmV3IGlRdCxTMXQ9bmV3ICRKdCxNMXQ9bmV3IENKdCxFMXQ9bmV3IENKdCxUMXQ9bmV3IENKdCxDMXQ9bmV3IENKdCxBMXQ9bmV3IENKdCxrMXQ9bmV3IENKdCxMMXQ9bmV3IENKdCxQMXQ9bmV3IENKdCxOMXQ9bmV3IENKdCxJMXQ9bmV3IG1KdCxSMXQ9bmV3IG1KdCxPMXQ9bmV3IG1KdCx6MXQ9bmV3IENKdCxEMXQ9bmV3IENKdDtjbGFzcyBCMXQgZXh0ZW5kcyBrUXR7Y29uc3RydWN0b3IodD1uZXcgYjF0LGU9bmV3IEtRdCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2giLHRoaXMuZ2VvbWV0cnk9dCx0aGlzLm1hdGVyaWFsPWUsdGhpcy51cGRhdGVNb3JwaFRhcmdldHMoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHZvaWQgMCE9PXQubW9ycGhUYXJnZXRJbmZsdWVuY2VzJiYodGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9dC5tb3JwaFRhcmdldEluZmx1ZW5jZXMuc2xpY2UoKSksdm9pZCAwIT09dC5tb3JwaFRhcmdldERpY3Rpb25hcnkmJih0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT1PYmplY3QuYXNzaWduKHt9LHQubW9ycGhUYXJnZXREaWN0aW9uYXJ5KSksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXMuZ2VvbWV0cnk9dC5nZW9tZXRyeSx0aGlzfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IGU9dC5tb3JwaEF0dHJpYnV0ZXMsbj1PYmplY3Qua2V5cyhlKTtpZihuLmxlbmd0aD4wKXtjb25zdCB0PWVbblswXV07aWYodm9pZCAwIT09dCl7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9W10sdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9e307Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0ubmFtZXx8U3RyaW5nKGUpO3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnB1c2goMCksdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnlbbl09ZX19fX1lbHNle2NvbnN0IGU9dC5tb3JwaFRhcmdldHM7dm9pZCAwIT09ZSYmZS5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuTWVzaC51cGRhdGVNb3JwaFRhcmdldHMoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX1yYXljYXN0KHQsZSl7Y29uc3Qgbj10aGlzLmdlb21ldHJ5LGk9dGhpcy5tYXRlcmlhbCxyPXRoaXMubWF0cml4V29ybGQ7aWYodm9pZCAwPT09aSlyZXR1cm47aWYobnVsbD09PW4uYm91bmRpbmdTcGhlcmUmJm4uY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCksUzF0LmNvcHkobi5ib3VuZGluZ1NwaGVyZSksUzF0LmFwcGx5TWF0cml4NChyKSwhMT09PXQucmF5LmludGVyc2VjdHNTcGhlcmUoUzF0KSlyZXR1cm47aWYoeDF0LmNvcHkocikuaW52ZXJ0KCksdzF0LmNvcHkodC5yYXkpLmFwcGx5TWF0cml4NCh4MXQpLG51bGwhPT1uLmJvdW5kaW5nQm94JiYhMT09PXcxdC5pbnRlcnNlY3RzQm94KG4uYm91bmRpbmdCb3gpKXJldHVybjtsZXQgbztpZihuLmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IHI9bi5pbmRleCxhPW4uYXR0cmlidXRlcy5wb3NpdGlvbixzPW4ubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLGw9bi5tb3JwaFRhcmdldHNSZWxhdGl2ZSxjPW4uYXR0cmlidXRlcy51dix1PW4uYXR0cmlidXRlcy51djIsaD1uLmdyb3VwcyxkPW4uZHJhd1JhbmdlO2lmKG51bGwhPT1yKWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBuPTAscD1oLmxlbmd0aDtuPHA7bisrKXtjb25zdCBwPWhbbl0sZj1pW3AubWF0ZXJpYWxJbmRleF07Zm9yKGxldCBuPU1hdGgubWF4KHAuc3RhcnQsZC5zdGFydCksaT1NYXRoLm1pbihwLnN0YXJ0K3AuY291bnQsZC5zdGFydCtkLmNvdW50KTtuPGk7bis9Myl7Y29uc3QgaT1yLmdldFgobiksaD1yLmdldFgobisxKSxkPXIuZ2V0WChuKzIpO289SDF0KHRoaXMsZix0LHcxdCxhLHMsbCxjLHUsaSxoLGQpLG8mJihvLmZhY2VJbmRleD1NYXRoLmZsb29yKG4vMyksby5mYWNlLm1hdGVyaWFsSW5kZXg9cC5tYXRlcmlhbEluZGV4LGUucHVzaChvKSl9fWVsc2UgZm9yKGxldCBuPU1hdGgubWF4KDAsZC5zdGFydCksaD1NYXRoLm1pbihyLmNvdW50LGQuc3RhcnQrZC5jb3VudCk7bjxoO24rPTMpe2NvbnN0IGg9ci5nZXRYKG4pLGQ9ci5nZXRYKG4rMSkscD1yLmdldFgobisyKTtvPUgxdCh0aGlzLGksdCx3MXQsYSxzLGwsYyx1LGgsZCxwKSxvJiYoby5mYWNlSW5kZXg9TWF0aC5mbG9vcihuLzMpLGUucHVzaChvKSl9ZWxzZSBpZih2b2lkIDAhPT1hKWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBuPTAscj1oLmxlbmd0aDtuPHI7bisrKXtjb25zdCByPWhbbl0scD1pW3IubWF0ZXJpYWxJbmRleF07Zm9yKGxldCBuPU1hdGgubWF4KHIuc3RhcnQsZC5zdGFydCksaT1NYXRoLm1pbihyLnN0YXJ0K3IuY291bnQsZC5zdGFydCtkLmNvdW50KTtuPGk7bis9MylvPUgxdCh0aGlzLHAsdCx3MXQsYSxzLGwsYyx1LG4sbisxLG4rMiksbyYmKG8uZmFjZUluZGV4PU1hdGguZmxvb3Iobi8zKSxvLmZhY2UubWF0ZXJpYWxJbmRleD1yLm1hdGVyaWFsSW5kZXgsZS5wdXNoKG8pKX1lbHNlIGZvcihsZXQgbj1NYXRoLm1heCgwLGQuc3RhcnQpLHI9TWF0aC5taW4oYS5jb3VudCxkLnN0YXJ0K2QuY291bnQpO248cjtuKz0zKW89SDF0KHRoaXMsaSx0LHcxdCxhLHMsbCxjLHUsbixuKzEsbisyKSxvJiYoby5mYWNlSW5kZXg9TWF0aC5mbG9vcihuLzMpLGUucHVzaChvKSl9ZWxzZSBuLmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2gucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9fWZ1bmN0aW9uIEgxdCh0LGUsbixpLHIsbyxhLHMsbCxjLHUsaCl7TTF0LmZyb21CdWZmZXJBdHRyaWJ1dGUocixjKSxFMXQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLHUpLFQxdC5mcm9tQnVmZmVyQXR0cmlidXRlKHIsaCk7Y29uc3QgZD10Lm1vcnBoVGFyZ2V0SW5mbHVlbmNlcztpZihvJiZkKXtMMXQuc2V0KDAsMCwwKSxQMXQuc2V0KDAsMCwwKSxOMXQuc2V0KDAsMCwwKTtmb3IobGV0IHQ9MCxlPW8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9ZFt0XSxuPW9bdF07MCE9PWUmJihDMXQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShuLGMpLEExdC5mcm9tQnVmZmVyQXR0cmlidXRlKG4sdSksazF0LmZyb21CdWZmZXJBdHRyaWJ1dGUobixoKSxhPyhMMXQuYWRkU2NhbGVkVmVjdG9yKEMxdCxlKSxQMXQuYWRkU2NhbGVkVmVjdG9yKEExdCxlKSxOMXQuYWRkU2NhbGVkVmVjdG9yKGsxdCxlKSk6KEwxdC5hZGRTY2FsZWRWZWN0b3IoQzF0LnN1YihNMXQpLGUpLFAxdC5hZGRTY2FsZWRWZWN0b3IoQTF0LnN1YihFMXQpLGUpLE4xdC5hZGRTY2FsZWRWZWN0b3IoazF0LnN1YihUMXQpLGUpKSl9TTF0LmFkZChMMXQpLEUxdC5hZGQoUDF0KSxUMXQuYWRkKE4xdCl9dC5pc1NraW5uZWRNZXNoJiYodC5ib25lVHJhbnNmb3JtKGMsTTF0KSx0LmJvbmVUcmFuc2Zvcm0odSxFMXQpLHQuYm9uZVRyYW5zZm9ybShoLFQxdCkpO2NvbnN0IHA9KGZ1bmN0aW9uIGYodCxlLG4saSxyLG8sYSxzKXtsZXQgbDtpZihsPTE9PT1lLnNpZGU/aS5pbnRlcnNlY3RUcmlhbmdsZShhLG8sciwhMCxzKTppLmludGVyc2VjdFRyaWFuZ2xlKHIsbyxhLDIhPT1lLnNpZGUscyksbnVsbD09PWwpcmV0dXJuIG51bGw7RDF0LmNvcHkocyksRDF0LmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkKTtjb25zdCBjPW4ucmF5Lm9yaWdpbi5kaXN0YW5jZVRvKEQxdCk7cmV0dXJuIGM8bi5uZWFyfHxjPm4uZmFyP251bGw6e2Rpc3RhbmNlOmMscG9pbnQ6RDF0LmNsb25lKCksb2JqZWN0OnR9fSkodCxlLG4saSxNMXQsRTF0LFQxdCx6MXQpO2lmKHApe3MmJihJMXQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShzLGMpLFIxdC5mcm9tQnVmZmVyQXR0cmlidXRlKHMsdSksTzF0LmZyb21CdWZmZXJBdHRyaWJ1dGUocyxoKSxwLnV2PUZRdC5nZXRVVih6MXQsTTF0LEUxdCxUMXQsSTF0LFIxdCxPMXQsbmV3IG1KdCkpLGwmJihJMXQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShsLGMpLFIxdC5mcm9tQnVmZmVyQXR0cmlidXRlKGwsdSksTzF0LmZyb21CdWZmZXJBdHRyaWJ1dGUobCxoKSxwLnV2Mj1GUXQuZ2V0VVYoejF0LE0xdCxFMXQsVDF0LEkxdCxSMXQsTzF0LG5ldyBtSnQpKTtjb25zdCB0PXthOmMsYjp1LGM6aCxub3JtYWw6bmV3IENKdCxtYXRlcmlhbEluZGV4OjB9O0ZRdC5nZXROb3JtYWwoTTF0LEUxdCxUMXQsdC5ub3JtYWwpLHAuZmFjZT10fXJldHVybiBwfUIxdC5wcm90b3R5cGUuaXNNZXNoPSEwO2NsYXNzIEYxdCBleHRlbmRzIGIxdHtjb25zdHJ1Y3Rvcih0PTEsZT0xLG49MSxpPTEscj0xLG89MSl7c3VwZXIoKSx0aGlzLnR5cGU9IkJveEdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3dpZHRoOnQsaGVpZ2h0OmUsZGVwdGg6bix3aWR0aFNlZ21lbnRzOmksaGVpZ2h0U2VnbWVudHM6cixkZXB0aFNlZ21lbnRzOm99O2NvbnN0IGE9dGhpcztpPU1hdGguZmxvb3IoaSkscj1NYXRoLmZsb29yKHIpLG89TWF0aC5mbG9vcihvKTtjb25zdCBzPVtdLGw9W10sYz1bXSx1PVtdO2xldCBoPTAsZD0wO2Z1bmN0aW9uIHAodCxlLG4saSxyLG8scCxmLG0sZyxfKXtjb25zdCB5PW8vbSx2PXAvZyxiPW8vMix4PXAvMix3PWYvMixTPW0rMSxNPWcrMTtsZXQgRT0wLFQ9MDtjb25zdCBDPW5ldyBDSnQ7Zm9yKGxldCBvPTA7bzxNO28rKyl7Y29uc3QgYT1vKnYteDtmb3IobGV0IHM9MDtzPFM7cysrKUNbdF09KHMqeS1iKSppLENbZV09YSpyLENbbl09dyxsLnB1c2goQy54LEMueSxDLnopLENbdF09MCxDW2VdPTAsQ1tuXT1mPjA/MTotMSxjLnB1c2goQy54LEMueSxDLnopLHUucHVzaChzL20pLHUucHVzaCgxLW8vZyksRSs9MX1mb3IobGV0IHQ9MDt0PGc7dCsrKWZvcihsZXQgZT0wO2U8bTtlKyspe2NvbnN0IG49aCtlK1MqKHQrMSksaT1oKyhlKzEpK1MqKHQrMSkscj1oKyhlKzEpK1MqdDtzLnB1c2goaCtlK1MqdCxuLHIpLHMucHVzaChuLGksciksVCs9Nn1hLmFkZEdyb3VwKGQsVCxfKSxkKz1ULGgrPUV9cCgieiIsInkiLCJ4IiwtMSwtMSxuLGUsdCxvLHIsMCkscCgieiIsInkiLCJ4IiwxLC0xLG4sZSwtdCxvLHIsMSkscCgieCIsInoiLCJ5IiwxLDEsdCxuLGUsaSxvLDIpLHAoIngiLCJ6IiwieSIsMSwtMSx0LG4sLWUsaSxvLDMpLHAoIngiLCJ5IiwieiIsMSwtMSx0LGUsbixpLHIsNCkscCgieCIsInkiLCJ6IiwtMSwtMSx0LGUsLW4saSxyLDUpLHRoaXMuc2V0SW5kZXgocyksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KGwsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBsMXQoYywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgbDF0KHUsMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IEYxdCh0LndpZHRoLHQuaGVpZ2h0LHQuZGVwdGgsdC53aWR0aFNlZ21lbnRzLHQuaGVpZ2h0U2VnbWVudHMsdC5kZXB0aFNlZ21lbnRzKX19ZnVuY3Rpb24gVjF0KHQpe2NvbnN0IGU9e307Zm9yKGNvbnN0IG4gaW4gdCl7ZVtuXT17fTtmb3IoY29uc3QgaSBpbiB0W25dKXtjb25zdCByPXRbbl1baV07ZVtuXVtpXT1yJiYoci5pc0NvbG9yfHxyLmlzTWF0cml4M3x8ci5pc01hdHJpeDR8fHIuaXNWZWN0b3IyfHxyLmlzVmVjdG9yM3x8ci5pc1ZlY3RvcjR8fHIuaXNUZXh0dXJlfHxyLmlzUXVhdGVybmlvbik/ci5jbG9uZSgpOkFycmF5LmlzQXJyYXkocik/ci5zbGljZSgpOnJ9fXJldHVybiBlfWZ1bmN0aW9uIFUxdCh0KXtjb25zdCBlPXt9O2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtjb25zdCBpPVYxdCh0W25dKTtmb3IoY29uc3QgdCBpbiBpKWVbdF09aVt0XX1yZXR1cm4gZX1jb25zdCBqMXQ9e2Nsb25lOlYxdCxtZXJnZTpVMXR9O2NsYXNzIEcxdCBleHRlbmRzIFVRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iU2hhZGVyTWF0ZXJpYWwiLHRoaXMuZGVmaW5lcz17fSx0aGlzLnVuaWZvcm1zPXt9LHRoaXMudmVydGV4U2hhZGVyPSJ2b2lkIG1haW4oKSB7XG5cdGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtcbn0iLHRoaXMuZnJhZ21lbnRTaGFkZXI9InZvaWQgbWFpbigpIHtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggMS4wLCAwLjAsIDAuMCwgMS4wICk7XG59Iix0aGlzLmxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy5mb2c9ITEsdGhpcy5saWdodHM9ITEsdGhpcy5jbGlwcGluZz0hMSx0aGlzLmV4dGVuc2lvbnM9e2Rlcml2YXRpdmVzOiExLGZyYWdEZXB0aDohMSxkcmF3QnVmZmVyczohMSxzaGFkZXJUZXh0dXJlTE9EOiExfSx0aGlzLmRlZmF1bHRBdHRyaWJ1dGVWYWx1ZXM9e2NvbG9yOlsxLDEsMV0sdXY6WzAsMF0sdXYyOlswLDBdfSx0aGlzLmluZGV4MEF0dHJpYnV0ZU5hbWU9dm9pZCAwLHRoaXMudW5pZm9ybXNOZWVkVXBkYXRlPSExLHRoaXMuZ2xzbFZlcnNpb249bnVsbCx2b2lkIDAhPT10JiYodm9pZCAwIT09dC5hdHRyaWJ1dGVzJiZjb25zb2xlLmVycm9yKCJUSFJFRS5TaGFkZXJNYXRlcmlhbDogYXR0cmlidXRlcyBzaG91bGQgbm93IGJlIGRlZmluZWQgaW4gVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKSx0aGlzLnNldFZhbHVlcyh0KSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmZyYWdtZW50U2hhZGVyPXQuZnJhZ21lbnRTaGFkZXIsdGhpcy52ZXJ0ZXhTaGFkZXI9dC52ZXJ0ZXhTaGFkZXIsdGhpcy51bmlmb3Jtcz1WMXQodC51bmlmb3JtcyksdGhpcy5kZWZpbmVzPU9iamVjdC5hc3NpZ24oe30sdC5kZWZpbmVzKSx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmxpZ2h0cz10LmxpZ2h0cyx0aGlzLmNsaXBwaW5nPXQuY2xpcHBpbmcsdGhpcy5leHRlbnNpb25zPU9iamVjdC5hc3NpZ24oe30sdC5leHRlbnNpb25zKSx0aGlzLmdsc2xWZXJzaW9uPXQuZ2xzbFZlcnNpb24sdGhpc310b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7ZS5nbHNsVmVyc2lvbj10aGlzLmdsc2xWZXJzaW9uLGUudW5pZm9ybXM9e307Zm9yKGNvbnN0IG4gaW4gdGhpcy51bmlmb3Jtcyl7Y29uc3QgaT10aGlzLnVuaWZvcm1zW25dLnZhbHVlO2UudW5pZm9ybXNbbl09aSYmaS5pc1RleHR1cmU/e3R5cGU6InQiLHZhbHVlOmkudG9KU09OKHQpLnV1aWR9OmkmJmkuaXNDb2xvcj97dHlwZToiYyIsdmFsdWU6aS5nZXRIZXgoKX06aSYmaS5pc1ZlY3RvcjI/e3R5cGU6InYyIix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc1ZlY3RvcjM/e3R5cGU6InYzIix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc1ZlY3RvcjQ/e3R5cGU6InY0Iix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc01hdHJpeDM/e3R5cGU6Im0zIix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc01hdHJpeDQ/e3R5cGU6Im00Iix2YWx1ZTppLnRvQXJyYXkoKX06e3ZhbHVlOml9fU9iamVjdC5rZXlzKHRoaXMuZGVmaW5lcykubGVuZ3RoPjAmJihlLmRlZmluZXM9dGhpcy5kZWZpbmVzKSxlLnZlcnRleFNoYWRlcj10aGlzLnZlcnRleFNoYWRlcixlLmZyYWdtZW50U2hhZGVyPXRoaXMuZnJhZ21lbnRTaGFkZXI7Y29uc3Qgbj17fTtmb3IoY29uc3QgdCBpbiB0aGlzLmV4dGVuc2lvbnMpITA9PT10aGlzLmV4dGVuc2lvbnNbdF0mJihuW3RdPSEwKTtyZXR1cm4gT2JqZWN0LmtleXMobikubGVuZ3RoPjAmJihlLmV4dGVuc2lvbnM9biksZX19RzF0LnByb3RvdHlwZS5pc1NoYWRlck1hdGVyaWFsPSEwO2NsYXNzIFcxdCBleHRlbmRzIGtRdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJDYW1lcmEiLHRoaXMubWF0cml4V29ybGRJbnZlcnNlPW5ldyByUXQsdGhpcy5wcm9qZWN0aW9uTWF0cml4PW5ldyByUXQsdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZT1uZXcgclF0fWNvcHkodCxlKXtyZXR1cm4gc3VwZXIuY29weSh0LGUpLHRoaXMubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodC5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMucHJvamVjdGlvbk1hdHJpeC5jb3B5KHQucHJvamVjdGlvbk1hdHJpeCksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHQucHJvamVjdGlvbk1hdHJpeEludmVyc2UpLHRoaXN9Z2V0V29ybGREaXJlY3Rpb24odCl7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSk7Y29uc3QgZT10aGlzLm1hdHJpeFdvcmxkLmVsZW1lbnRzO3JldHVybiB0LnNldCgtZVs4XSwtZVs5XSwtZVsxMF0pLm5vcm1hbGl6ZSgpfXVwZGF0ZU1hdHJpeFdvcmxkKHQpe3N1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpLHRoaXMubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCl9dXBkYXRlV29ybGRNYXRyaXgodCxlKXtzdXBlci51cGRhdGVXb3JsZE1hdHJpeCh0LGUpLHRoaXMubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9fVcxdC5wcm90b3R5cGUuaXNDYW1lcmE9ITA7Y2xhc3MgcTF0IGV4dGVuZHMgVzF0e2NvbnN0cnVjdG9yKHQ9NTAsZT0xLG49LjEsaT0yZTMpe3N1cGVyKCksdGhpcy50eXBlPSJQZXJzcGVjdGl2ZUNhbWVyYSIsdGhpcy5mb3Y9dCx0aGlzLnpvb209MSx0aGlzLm5lYXI9bix0aGlzLmZhcj1pLHRoaXMuZm9jdXM9MTAsdGhpcy5hc3BlY3Q9ZSx0aGlzLnZpZXc9bnVsbCx0aGlzLmZpbG1HYXVnZT0zNSx0aGlzLmZpbG1PZmZzZXQ9MCx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1jb3B5KHQsZSl7cmV0dXJuIHN1cGVyLmNvcHkodCxlKSx0aGlzLmZvdj10LmZvdix0aGlzLnpvb209dC56b29tLHRoaXMubmVhcj10Lm5lYXIsdGhpcy5mYXI9dC5mYXIsdGhpcy5mb2N1cz10LmZvY3VzLHRoaXMuYXNwZWN0PXQuYXNwZWN0LHRoaXMudmlldz1udWxsPT09dC52aWV3P251bGw6T2JqZWN0LmFzc2lnbih7fSx0LnZpZXcpLHRoaXMuZmlsbUdhdWdlPXQuZmlsbUdhdWdlLHRoaXMuZmlsbU9mZnNldD10LmZpbG1PZmZzZXQsdGhpc31zZXRGb2NhbExlbmd0aCh0KXtjb25zdCBlPS41KnRoaXMuZ2V0RmlsbUhlaWdodCgpL3Q7dGhpcy5mb3Y9MipZWnQqTWF0aC5hdGFuKGUpLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWdldEZvY2FsTGVuZ3RoKCl7Y29uc3QgdD1NYXRoLnRhbiguNSpxWnQqdGhpcy5mb3YpO3JldHVybi41KnRoaXMuZ2V0RmlsbUhlaWdodCgpL3R9Z2V0RWZmZWN0aXZlRk9WKCl7cmV0dXJuIDIqWVp0Kk1hdGguYXRhbihNYXRoLnRhbiguNSpxWnQqdGhpcy5mb3YpL3RoaXMuem9vbSl9Z2V0RmlsbVdpZHRoKCl7cmV0dXJuIHRoaXMuZmlsbUdhdWdlKk1hdGgubWluKHRoaXMuYXNwZWN0LDEpfWdldEZpbG1IZWlnaHQoKXtyZXR1cm4gdGhpcy5maWxtR2F1Z2UvTWF0aC5tYXgodGhpcy5hc3BlY3QsMSl9c2V0Vmlld09mZnNldCh0LGUsbixpLHIsbyl7dGhpcy5hc3BlY3Q9dC9lLG51bGw9PT10aGlzLnZpZXcmJih0aGlzLnZpZXc9e2VuYWJsZWQ6ITAsZnVsbFdpZHRoOjEsZnVsbEhlaWdodDoxLG9mZnNldFg6MCxvZmZzZXRZOjAsd2lkdGg6MSxoZWlnaHQ6MX0pLHRoaXMudmlldy5lbmFibGVkPSEwLHRoaXMudmlldy5mdWxsV2lkdGg9dCx0aGlzLnZpZXcuZnVsbEhlaWdodD1lLHRoaXMudmlldy5vZmZzZXRYPW4sdGhpcy52aWV3Lm9mZnNldFk9aSx0aGlzLnZpZXcud2lkdGg9cix0aGlzLnZpZXcuaGVpZ2h0PW8sdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y2xlYXJWaWV3T2Zmc2V0KCl7bnVsbCE9PXRoaXMudmlldyYmKHRoaXMudmlldy5lbmFibGVkPSExKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX11cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl7Y29uc3QgdD10aGlzLm5lYXI7bGV0IGU9dCpNYXRoLnRhbiguNSpxWnQqdGhpcy5mb3YpL3RoaXMuem9vbSxuPTIqZSxpPXRoaXMuYXNwZWN0Km4scj0tLjUqaTtjb25zdCBvPXRoaXMudmlldztpZihudWxsIT09dGhpcy52aWV3JiZ0aGlzLnZpZXcuZW5hYmxlZCl7Y29uc3QgdD1vLmZ1bGxXaWR0aCxhPW8uZnVsbEhlaWdodDtyKz1vLm9mZnNldFgqaS90LGUtPW8ub2Zmc2V0WSpuL2EsaSo9by53aWR0aC90LG4qPW8uaGVpZ2h0L2F9Y29uc3QgYT10aGlzLmZpbG1PZmZzZXQ7MCE9PWEmJihyKz10KmEvdGhpcy5nZXRGaWxtV2lkdGgoKSksdGhpcy5wcm9qZWN0aW9uTWF0cml4Lm1ha2VQZXJzcGVjdGl2ZShyLHIraSxlLGUtbix0LHRoaXMuZmFyKSx0aGlzLnByb2plY3Rpb25NYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5wcm9qZWN0aW9uTWF0cml4KS5pbnZlcnQoKX10b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LmZvdj10aGlzLmZvdixlLm9iamVjdC56b29tPXRoaXMuem9vbSxlLm9iamVjdC5uZWFyPXRoaXMubmVhcixlLm9iamVjdC5mYXI9dGhpcy5mYXIsZS5vYmplY3QuZm9jdXM9dGhpcy5mb2N1cyxlLm9iamVjdC5hc3BlY3Q9dGhpcy5hc3BlY3QsbnVsbCE9PXRoaXMudmlldyYmKGUub2JqZWN0LnZpZXc9T2JqZWN0LmFzc2lnbih7fSx0aGlzLnZpZXcpKSxlLm9iamVjdC5maWxtR2F1Z2U9dGhpcy5maWxtR2F1Z2UsZS5vYmplY3QuZmlsbU9mZnNldD10aGlzLmZpbG1PZmZzZXQsZX19cTF0LnByb3RvdHlwZS5pc1BlcnNwZWN0aXZlQ2FtZXJhPSEwO2NvbnN0IFkxdD05MDtjbGFzcyBYMXQgZXh0ZW5kcyBrUXR7Y29uc3RydWN0b3IodCxlLG4pe2lmKHN1cGVyKCksdGhpcy50eXBlPSJDdWJlQ2FtZXJhIiwhMCE9PW4uaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuQ3ViZUNhbWVyYTogVGhlIGNvbnN0cnVjdG9yIG5vdyBleHBlY3RzIGFuIGluc3RhbmNlIG9mIFdlYkdMQ3ViZVJlbmRlclRhcmdldCBhcyB0aGlyZCBwYXJhbWV0ZXIuIik7dGhpcy5yZW5kZXJUYXJnZXQ9bjtjb25zdCBpPW5ldyBxMXQoWTF0LDEsdCxlKTtpLmxheWVycz10aGlzLmxheWVycyxpLnVwLnNldCgwLC0xLDApLGkubG9va0F0KG5ldyBDSnQoMSwwLDApKSx0aGlzLmFkZChpKTtjb25zdCByPW5ldyBxMXQoWTF0LDEsdCxlKTtyLmxheWVycz10aGlzLmxheWVycyxyLnVwLnNldCgwLC0xLDApLHIubG9va0F0KG5ldyBDSnQoLTEsMCwwKSksdGhpcy5hZGQocik7Y29uc3Qgbz1uZXcgcTF0KFkxdCwxLHQsZSk7by5sYXllcnM9dGhpcy5sYXllcnMsby51cC5zZXQoMCwwLDEpLG8ubG9va0F0KG5ldyBDSnQoMCwxLDApKSx0aGlzLmFkZChvKTtjb25zdCBhPW5ldyBxMXQoWTF0LDEsdCxlKTthLmxheWVycz10aGlzLmxheWVycyxhLnVwLnNldCgwLDAsLTEpLGEubG9va0F0KG5ldyBDSnQoMCwtMSwwKSksdGhpcy5hZGQoYSk7Y29uc3Qgcz1uZXcgcTF0KFkxdCwxLHQsZSk7cy5sYXllcnM9dGhpcy5sYXllcnMscy51cC5zZXQoMCwtMSwwKSxzLmxvb2tBdChuZXcgQ0p0KDAsMCwxKSksdGhpcy5hZGQocyk7Y29uc3QgbD1uZXcgcTF0KFkxdCwxLHQsZSk7bC5sYXllcnM9dGhpcy5sYXllcnMsbC51cC5zZXQoMCwtMSwwKSxsLmxvb2tBdChuZXcgQ0p0KDAsMCwtMSkpLHRoaXMuYWRkKGwpfXVwZGF0ZSh0LGUpe251bGw9PT10aGlzLnBhcmVudCYmdGhpcy51cGRhdGVNYXRyaXhXb3JsZCgpO2NvbnN0IG49dGhpcy5yZW5kZXJUYXJnZXQsW2kscixvLGEscyxsXT10aGlzLmNoaWxkcmVuLGM9dC54ci5lbmFibGVkLHU9dC5nZXRSZW5kZXJUYXJnZXQoKTt0LnhyLmVuYWJsZWQ9ITE7Y29uc3QgaD1uLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzO24udGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ITEsdC5zZXRSZW5kZXJUYXJnZXQobiwwKSx0LnJlbmRlcihlLGkpLHQuc2V0UmVuZGVyVGFyZ2V0KG4sMSksdC5yZW5kZXIoZSxyKSx0LnNldFJlbmRlclRhcmdldChuLDIpLHQucmVuZGVyKGUsbyksdC5zZXRSZW5kZXJUYXJnZXQobiwzKSx0LnJlbmRlcihlLGEpLHQuc2V0UmVuZGVyVGFyZ2V0KG4sNCksdC5yZW5kZXIoZSxzKSxuLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPWgsdC5zZXRSZW5kZXJUYXJnZXQobiw1KSx0LnJlbmRlcihlLGwpLHQuc2V0UmVuZGVyVGFyZ2V0KHUpLHQueHIuZW5hYmxlZD1jfX1jbGFzcyAkMXQgZXh0ZW5kcyBiSnR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8sYSxzLGwsYyl7c3VwZXIodD12b2lkIDAhPT10P3Q6W10sZT12b2lkIDAhPT1lP2U6akt0LG4saSxyLG8sYT12b2lkIDAhPT1hP2E6dVp0LHMsbCxjKSx0aGlzLmZsaXBZPSExfWdldCBpbWFnZXMoKXtyZXR1cm4gdGhpcy5pbWFnZX1zZXQgaW1hZ2VzKHQpe3RoaXMuaW1hZ2U9dH19JDF0LnByb3RvdHlwZS5pc0N1YmVUZXh0dXJlPSEwO2NsYXNzIEsxdCBleHRlbmRzIFNKdHtjb25zdHJ1Y3Rvcih0LGUsbil7TnVtYmVyLmlzSW50ZWdlcihlKSYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xDdWJlUmVuZGVyVGFyZ2V0OiBjb25zdHJ1Y3RvciBzaWduYXR1cmUgaXMgbm93IFdlYkdMQ3ViZVJlbmRlclRhcmdldCggc2l6ZSwgb3B0aW9ucyApIiksZT1uKSxzdXBlcih0LHQsZSksdGhpcy50ZXh0dXJlPW5ldyAkMXQodm9pZCAwLChlPWV8fHt9KS5tYXBwaW5nLGUud3JhcFMsZS53cmFwVCxlLm1hZ0ZpbHRlcixlLm1pbkZpbHRlcixlLmZvcm1hdCxlLnR5cGUsZS5hbmlzb3Ryb3B5LGUuZW5jb2RpbmcpLHRoaXMudGV4dHVyZS5pc1JlbmRlclRhcmdldFRleHR1cmU9ITAsdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz12b2lkIDAhPT1lLmdlbmVyYXRlTWlwbWFwcyYmZS5nZW5lcmF0ZU1pcG1hcHMsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj12b2lkIDAhPT1lLm1pbkZpbHRlcj9lLm1pbkZpbHRlcjplWnQsdGhpcy50ZXh0dXJlLl9uZWVkc0ZsaXBFbnZNYXA9ITF9ZnJvbUVxdWlyZWN0YW5ndWxhclRleHR1cmUodCxlKXt0aGlzLnRleHR1cmUudHlwZT1lLnR5cGUsdGhpcy50ZXh0dXJlLmZvcm1hdD1oWnQsdGhpcy50ZXh0dXJlLmVuY29kaW5nPWUuZW5jb2RpbmcsdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz1lLmdlbmVyYXRlTWlwbWFwcyx0aGlzLnRleHR1cmUubWluRmlsdGVyPWUubWluRmlsdGVyLHRoaXMudGV4dHVyZS5tYWdGaWx0ZXI9ZS5tYWdGaWx0ZXI7Y29uc3Qgbj1uZXcgRjF0KDUsNSw1KSxpPW5ldyBHMXQoe25hbWU6IkN1YmVtYXBGcm9tRXF1aXJlY3QiLHVuaWZvcm1zOlYxdCh7dEVxdWlyZWN0Ont2YWx1ZTpudWxsfX0pLHZlcnRleFNoYWRlcjoiXG5cblx0XHRcdFx0dmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcblxuXHRcdFx0XHR2ZWMzIHRyYW5zZm9ybURpcmVjdGlvbiggaW4gdmVjMyBkaXIsIGluIG1hdDQgbWF0cml4ICkge1xuXG5cdFx0XHRcdFx0cmV0dXJuIG5vcm1hbGl6ZSggKCBtYXRyaXggKiB2ZWM0KCBkaXIsIDAuMCApICkueHl6ICk7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHRcdHZXb3JsZERpcmVjdGlvbiA9IHRyYW5zZm9ybURpcmVjdGlvbiggcG9zaXRpb24sIG1vZGVsTWF0cml4ICk7XG5cblx0XHRcdFx0XHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHRcdFx0XHRcdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblxuXHRcdFx0XHR9XG5cdFx0XHQiLGZyYWdtZW50U2hhZGVyOiJcblxuXHRcdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCB0RXF1aXJlY3Q7XG5cblx0XHRcdFx0dmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcblxuXHRcdFx0XHQjaW5jbHVkZSA8Y29tbW9uPlxuXG5cdFx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHRcdHZlYzMgZGlyZWN0aW9uID0gbm9ybWFsaXplKCB2V29ybGREaXJlY3Rpb24gKTtcblxuXHRcdFx0XHRcdHZlYzIgc2FtcGxlVVYgPSBlcXVpcmVjdFV2KCBkaXJlY3Rpb24gKTtcblxuXHRcdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCggdEVxdWlyZWN0LCBzYW1wbGVVViApO1xuXG5cdFx0XHRcdH1cblx0XHRcdCIsc2lkZToxLGJsZW5kaW5nOjB9KTtpLnVuaWZvcm1zLnRFcXVpcmVjdC52YWx1ZT1lO2NvbnN0IHI9bmV3IEIxdChuLGkpLG89ZS5taW5GaWx0ZXI7cmV0dXJuIGUubWluRmlsdGVyPT09aVp0JiYoZS5taW5GaWx0ZXI9ZVp0KSxuZXcgWDF0KDEsMTAsdGhpcykudXBkYXRlKHQsciksZS5taW5GaWx0ZXI9byxyLmdlb21ldHJ5LmRpc3Bvc2UoKSxyLm1hdGVyaWFsLmRpc3Bvc2UoKSx0aGlzfWNsZWFyKHQsZSxuLGkpe2NvbnN0IHI9dC5nZXRSZW5kZXJUYXJnZXQoKTtmb3IobGV0IHI9MDtyPDY7cisrKXQuc2V0UmVuZGVyVGFyZ2V0KHRoaXMsciksdC5jbGVhcihlLG4saSk7dC5zZXRSZW5kZXJUYXJnZXQocil9fUsxdC5wcm90b3R5cGUuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ9ITA7Y29uc3QgWjF0PW5ldyBDSnQsSjF0PW5ldyBDSnQsUTF0PW5ldyBnSnQ7Y2xhc3MgdDB0e2NvbnN0cnVjdG9yKHQ9bmV3IENKdCgxLDAsMCksZT0wKXt0aGlzLm5vcm1hbD10LHRoaXMuY29uc3RhbnQ9ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5ub3JtYWwuY29weSh0KSx0aGlzLmNvbnN0YW50PWUsdGhpc31zZXRDb21wb25lbnRzKHQsZSxuLGkpe3JldHVybiB0aGlzLm5vcm1hbC5zZXQodCxlLG4pLHRoaXMuY29uc3RhbnQ9aSx0aGlzfXNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KHQsZSl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodCksdGhpcy5jb25zdGFudD0tZS5kb3QodGhpcy5ub3JtYWwpLHRoaXN9c2V0RnJvbUNvcGxhbmFyUG9pbnRzKHQsZSxuKXtjb25zdCBpPVoxdC5zdWJWZWN0b3JzKG4sZSkuY3Jvc3MoSjF0LnN1YlZlY3RvcnModCxlKSkubm9ybWFsaXplKCk7cmV0dXJuIHRoaXMuc2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQoaSx0KSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodC5ub3JtYWwpLHRoaXMuY29uc3RhbnQ9dC5jb25zdGFudCx0aGlzfW5vcm1hbGl6ZSgpe2NvbnN0IHQ9MS90aGlzLm5vcm1hbC5sZW5ndGgoKTtyZXR1cm4gdGhpcy5ub3JtYWwubXVsdGlwbHlTY2FsYXIodCksdGhpcy5jb25zdGFudCo9dCx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLmNvbnN0YW50Kj0tMSx0aGlzLm5vcm1hbC5uZWdhdGUoKSx0aGlzfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gdGhpcy5ub3JtYWwuZG90KHQpK3RoaXMuY29uc3RhbnR9ZGlzdGFuY2VUb1NwaGVyZSh0KXtyZXR1cm4gdGhpcy5kaXN0YW5jZVRvUG9pbnQodC5jZW50ZXIpLXQucmFkaXVzfXByb2plY3RQb2ludCh0LGUpe3JldHVybiBlLmNvcHkodGhpcy5ub3JtYWwpLm11bHRpcGx5U2NhbGFyKC10aGlzLmRpc3RhbmNlVG9Qb2ludCh0KSkuYWRkKHQpfWludGVyc2VjdExpbmUodCxlKXtjb25zdCBuPXQuZGVsdGEoWjF0KSxpPXRoaXMubm9ybWFsLmRvdChuKTtpZigwPT09aSlyZXR1cm4gMD09PXRoaXMuZGlzdGFuY2VUb1BvaW50KHQuc3RhcnQpP2UuY29weSh0LnN0YXJ0KTpudWxsO2NvbnN0IHI9LSh0LnN0YXJ0LmRvdCh0aGlzLm5vcm1hbCkrdGhpcy5jb25zdGFudCkvaTtyZXR1cm4gcjwwfHxyPjE/bnVsbDplLmNvcHkobikubXVsdGlwbHlTY2FsYXIocikuYWRkKHQuc3RhcnQpfWludGVyc2VjdHNMaW5lKHQpe2NvbnN0IGU9dGhpcy5kaXN0YW5jZVRvUG9pbnQodC5zdGFydCksbj10aGlzLmRpc3RhbmNlVG9Qb2ludCh0LmVuZCk7cmV0dXJuIGU8MCYmbj4wfHxuPDAmJmU+MH1pbnRlcnNlY3RzQm94KHQpe3JldHVybiB0LmludGVyc2VjdHNQbGFuZSh0aGlzKX1pbnRlcnNlY3RzU3BoZXJlKHQpe3JldHVybiB0LmludGVyc2VjdHNQbGFuZSh0aGlzKX1jb3BsYW5hclBvaW50KHQpe3JldHVybiB0LmNvcHkodGhpcy5ub3JtYWwpLm11bHRpcGx5U2NhbGFyKC10aGlzLmNvbnN0YW50KX1hcHBseU1hdHJpeDQodCxlKXtjb25zdCBuPWV8fFExdC5nZXROb3JtYWxNYXRyaXgodCksaT10aGlzLmNvcGxhbmFyUG9pbnQoWjF0KS5hcHBseU1hdHJpeDQodCkscj10aGlzLm5vcm1hbC5hcHBseU1hdHJpeDMobikubm9ybWFsaXplKCk7cmV0dXJuIHRoaXMuY29uc3RhbnQ9LWkuZG90KHIpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLmNvbnN0YW50LT10LmRvdCh0aGlzLm5vcm1hbCksdGhpc31lcXVhbHModCl7cmV0dXJuIHQubm9ybWFsLmVxdWFscyh0aGlzLm5vcm1hbCkmJnQuY29uc3RhbnQ9PT10aGlzLmNvbnN0YW50fWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX10MHQucHJvdG90eXBlLmlzUGxhbmU9ITA7Y29uc3QgZTB0PW5ldyAkSnQsbjB0PW5ldyBDSnQ7Y2xhc3MgaTB0e2NvbnN0cnVjdG9yKHQ9bmV3IHQwdCxlPW5ldyB0MHQsbj1uZXcgdDB0LGk9bmV3IHQwdCxyPW5ldyB0MHQsbz1uZXcgdDB0KXt0aGlzLnBsYW5lcz1bdCxlLG4saSxyLG9dfXNldCh0LGUsbixpLHIsbyl7Y29uc3QgYT10aGlzLnBsYW5lcztyZXR1cm4gYVswXS5jb3B5KHQpLGFbMV0uY29weShlKSxhWzJdLmNvcHkobiksYVszXS5jb3B5KGkpLGFbNF0uY29weShyKSxhWzVdLmNvcHkobyksdGhpc31jb3B5KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXM7Zm9yKGxldCBuPTA7bjw2O24rKyllW25dLmNvcHkodC5wbGFuZXNbbl0pO3JldHVybiB0aGlzfXNldEZyb21Qcm9qZWN0aW9uTWF0cml4KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXMsbj10LmVsZW1lbnRzLGk9blswXSxyPW5bMV0sbz1uWzJdLGE9blszXSxzPW5bNF0sbD1uWzVdLGM9bls2XSx1PW5bN10saD1uWzhdLGQ9bls5XSxwPW5bMTBdLGY9blsxMV0sbT1uWzEyXSxnPW5bMTNdLF89blsxNF0seT1uWzE1XTtyZXR1cm4gZVswXS5zZXRDb21wb25lbnRzKGEtaSx1LXMsZi1oLHktbSkubm9ybWFsaXplKCksZVsxXS5zZXRDb21wb25lbnRzKGEraSx1K3MsZitoLHkrbSkubm9ybWFsaXplKCksZVsyXS5zZXRDb21wb25lbnRzKGErcix1K2wsZitkLHkrZykubm9ybWFsaXplKCksZVszXS5zZXRDb21wb25lbnRzKGEtcix1LWwsZi1kLHktZykubm9ybWFsaXplKCksZVs0XS5zZXRDb21wb25lbnRzKGEtbyx1LWMsZi1wLHktXykubm9ybWFsaXplKCksZVs1XS5zZXRDb21wb25lbnRzKGErbyx1K2MsZitwLHkrXykubm9ybWFsaXplKCksdGhpc31pbnRlcnNlY3RzT2JqZWN0KHQpe2NvbnN0IGU9dC5nZW9tZXRyeTtyZXR1cm4gbnVsbD09PWUuYm91bmRpbmdTcGhlcmUmJmUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCksZTB0LmNvcHkoZS5ib3VuZGluZ1NwaGVyZSkuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZShlMHQpfWludGVyc2VjdHNTcHJpdGUodCl7cmV0dXJuIGUwdC5jZW50ZXIuc2V0KDAsMCwwKSxlMHQucmFkaXVzPS43MDcxMDY3ODExODY1NDc2LGUwdC5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKGUwdCl9aW50ZXJzZWN0c1NwaGVyZSh0KXtjb25zdCBlPXRoaXMucGxhbmVzLG49dC5jZW50ZXIsaT0tdC5yYWRpdXM7Zm9yKGxldCB0PTA7dDw2O3QrKylpZihlW3RdLmRpc3RhbmNlVG9Qb2ludChuKTxpKXJldHVybiExO3JldHVybiEwfWludGVyc2VjdHNCb3godCl7Y29uc3QgZT10aGlzLnBsYW5lcztmb3IobGV0IG49MDtuPDY7bisrKXtjb25zdCBpPWVbbl07aWYobjB0Lng9aS5ub3JtYWwueD4wP3QubWF4Lng6dC5taW4ueCxuMHQueT1pLm5vcm1hbC55PjA/dC5tYXgueTp0Lm1pbi55LG4wdC56PWkubm9ybWFsLno+MD90Lm1heC56OnQubWluLnosaS5kaXN0YW5jZVRvUG9pbnQobjB0KTwwKXJldHVybiExfXJldHVybiEwfWNvbnRhaW5zUG9pbnQodCl7Y29uc3QgZT10aGlzLnBsYW5lcztmb3IobGV0IG49MDtuPDY7bisrKWlmKGVbbl0uZGlzdGFuY2VUb1BvaW50KHQpPDApcmV0dXJuITE7cmV0dXJuITB9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9fWZ1bmN0aW9uIHIwdCgpe2xldCB0PW51bGwsZT0hMSxuPW51bGwsaT1udWxsO2Z1bmN0aW9uIHIoZSxvKXtuKGUsbyksaT10LnJlcXVlc3RBbmltYXRpb25GcmFtZShyKX1yZXR1cm57c3RhcnQ6ZnVuY3Rpb24oKXshMCE9PWUmJm51bGwhPT1uJiYoaT10LnJlcXVlc3RBbmltYXRpb25GcmFtZShyKSxlPSEwKX0sc3RvcDpmdW5jdGlvbigpe3QuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaSksZT0hMX0sc2V0QW5pbWF0aW9uTG9vcDpmdW5jdGlvbih0KXtuPXR9LHNldENvbnRleHQ6ZnVuY3Rpb24oZSl7dD1lfX19ZnVuY3Rpb24gbzB0KHQsZSl7Y29uc3Qgbj1lLmlzV2ViR0wyLGk9bmV3IFdlYWtNYXA7cmV0dXJue2dldDpmdW5jdGlvbiByKHQpe3JldHVybiB0LmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUmJih0PXQuZGF0YSksaS5nZXQodCl9LHJlbW92ZTpmdW5jdGlvbiBvKGUpe2UuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSYmKGU9ZS5kYXRhKTtjb25zdCBuPWkuZ2V0KGUpO24mJih0LmRlbGV0ZUJ1ZmZlcihuLmJ1ZmZlciksaS5kZWxldGUoZSkpfSx1cGRhdGU6ZnVuY3Rpb24gYShlLHIpe2lmKGUuaXNHTEJ1ZmZlckF0dHJpYnV0ZSl7Y29uc3QgdD1pLmdldChlKTtyZXR1cm4gdm9pZCgoIXR8fHQudmVyc2lvbjxlLnZlcnNpb24pJiZpLnNldChlLHtidWZmZXI6ZS5idWZmZXIsdHlwZTplLnR5cGUsYnl0ZXNQZXJFbGVtZW50OmUuZWxlbWVudFNpemUsdmVyc2lvbjplLnZlcnNpb259KSl9ZS5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlJiYoZT1lLmRhdGEpO2NvbnN0IG89aS5nZXQoZSk7dm9pZCAwPT09bz9pLnNldChlLChmdW5jdGlvbiBhKGUsaSl7Y29uc3Qgcj1lLmFycmF5LG89ZS51c2FnZSxhPXQuY3JlYXRlQnVmZmVyKCk7dC5iaW5kQnVmZmVyKGksYSksdC5idWZmZXJEYXRhKGkscixvKSxlLm9uVXBsb2FkQ2FsbGJhY2soKTtsZXQgcz01MTI2O3JldHVybiByIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5P3M9NTEyNjpyIGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5P2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xBdHRyaWJ1dGVzOiBVbnN1cHBvcnRlZCBkYXRhIGJ1ZmZlciBmb3JtYXQ6IEZsb2F0NjRBcnJheS4iKTpyIGluc3RhbmNlb2YgVWludDE2QXJyYXk/ZS5pc0Zsb2F0MTZCdWZmZXJBdHRyaWJ1dGU/bj9zPTUxMzE6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTEF0dHJpYnV0ZXM6IFVzYWdlIG9mIEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGUgcmVxdWlyZXMgV2ViR0wyLiIpOnM9NTEyMzpyIGluc3RhbmNlb2YgSW50MTZBcnJheT9zPTUxMjI6ciBpbnN0YW5jZW9mIFVpbnQzMkFycmF5P3M9NTEyNTpyIGluc3RhbmNlb2YgSW50MzJBcnJheT9zPTUxMjQ6ciBpbnN0YW5jZW9mIEludDhBcnJheT9zPTUxMjA6KHIgaW5zdGFuY2VvZiBVaW50OEFycmF5fHxyIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpJiYocz01MTIxKSx7YnVmZmVyOmEsdHlwZTpzLGJ5dGVzUGVyRWxlbWVudDpyLkJZVEVTX1BFUl9FTEVNRU5ULHZlcnNpb246ZS52ZXJzaW9ufX0pKGUscikpOm8udmVyc2lvbjxlLnZlcnNpb24mJigoZnVuY3Rpb24gcyhlLGkscil7Y29uc3Qgbz1pLmFycmF5LGE9aS51cGRhdGVSYW5nZTt0LmJpbmRCdWZmZXIocixlKSwtMT09PWEuY291bnQ/dC5idWZmZXJTdWJEYXRhKHIsMCxvKToobj90LmJ1ZmZlclN1YkRhdGEocixhLm9mZnNldCpvLkJZVEVTX1BFUl9FTEVNRU5ULG8sYS5vZmZzZXQsYS5jb3VudCk6dC5idWZmZXJTdWJEYXRhKHIsYS5vZmZzZXQqby5CWVRFU19QRVJfRUxFTUVOVCxvLnN1YmFycmF5KGEub2Zmc2V0LGEub2Zmc2V0K2EuY291bnQpKSxhLmNvdW50PS0xKX0pKG8uYnVmZmVyLGUsciksby52ZXJzaW9uPWUudmVyc2lvbil9fX1jbGFzcyBhMHQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodD0xLGU9MSxuPTEsaT0xKXtzdXBlcigpLHRoaXMudHlwZT0iUGxhbmVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXt3aWR0aDp0LGhlaWdodDplLHdpZHRoU2VnbWVudHM6bixoZWlnaHRTZWdtZW50czppfTtjb25zdCByPXQvMixvPWUvMixhPU1hdGguZmxvb3Iobikscz1NYXRoLmZsb29yKGkpLGw9YSsxLGM9cysxLHU9dC9hLGg9ZS9zLGQ9W10scD1bXSxmPVtdLG09W107Zm9yKGxldCB0PTA7dDxjO3QrKyl7Y29uc3QgZT10Kmgtbztmb3IobGV0IG49MDtuPGw7bisrKXAucHVzaChuKnUtciwtZSwwKSxmLnB1c2goMCwwLDEpLG0ucHVzaChuL2EpLG0ucHVzaCgxLXQvcyl9Zm9yKGxldCB0PTA7dDxzO3QrKylmb3IobGV0IGU9MDtlPGE7ZSsrKXtjb25zdCBuPWUrbCoodCsxKSxpPWUrMStsKih0KzEpLHI9ZSsxK2wqdDtkLnB1c2goZStsKnQsbixyKSxkLnB1c2gobixpLHIpfXRoaXMuc2V0SW5kZXgoZCksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KHAsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBsMXQoZiwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgbDF0KG0sMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGEwdCh0LndpZHRoLHQuaGVpZ2h0LHQud2lkdGhTZWdtZW50cyx0LmhlaWdodFNlZ21lbnRzKX19Y29uc3QgczB0PXthbHBoYW1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9BTFBIQU1BUFxuXHRkaWZmdXNlQ29sb3IuYSAqPSB0ZXh0dXJlMkQoIGFscGhhTWFwLCB2VXYgKS5nO1xuI2VuZGlmIixhbHBoYW1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0FMUEhBTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGFscGhhTWFwO1xuI2VuZGlmIixhbHBoYXRlc3RfZnJhZ21lbnQ6IiNpZmRlZiBBTFBIQVRFU1Rcblx0aWYgKCBkaWZmdXNlQ29sb3IuYSA8IEFMUEhBVEVTVCApIGRpc2NhcmQ7XG4jZW5kaWYiLGFvbWFwX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0FPTUFQXG5cdGZsb2F0IGFtYmllbnRPY2NsdXNpb24gPSAoIHRleHR1cmUyRCggYW9NYXAsIHZVdjIgKS5yIC0gMS4wICkgKiBhb01hcEludGVuc2l0eSArIDEuMDtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICo9IGFtYmllbnRPY2NsdXNpb247XG5cdCNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgJiYgZGVmaW5lZCggU1RBTkRBUkQgKVxuXHRcdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyICkgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICo9IGNvbXB1dGVTcGVjdWxhck9jY2x1c2lvbiggZG90TlYsIGFtYmllbnRPY2NsdXNpb24sIG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzICk7XG5cdCNlbmRpZlxuI2VuZGlmIixhb21hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0FPTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGFvTWFwO1xuXHR1bmlmb3JtIGZsb2F0IGFvTWFwSW50ZW5zaXR5O1xuI2VuZGlmIixiZWdpbl92ZXJ0ZXg6InZlYzMgdHJhbnNmb3JtZWQgPSB2ZWMzKCBwb3NpdGlvbiApOyIsYmVnaW5ub3JtYWxfdmVydGV4OiJ2ZWMzIG9iamVjdE5vcm1hbCA9IHZlYzMoIG5vcm1hbCApO1xuI2lmZGVmIFVTRV9UQU5HRU5UXG5cdHZlYzMgb2JqZWN0VGFuZ2VudCA9IHZlYzMoIHRhbmdlbnQueHl6ICk7XG4jZW5kaWYiLGJzZGZzOiJ2ZWMyIGludGVncmF0ZVNwZWN1bGFyQlJERiggY29uc3QgaW4gZmxvYXQgZG90TlYsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0Y29uc3QgdmVjNCBjMCA9IHZlYzQoIC0gMSwgLSAwLjAyNzUsIC0gMC41NzIsIDAuMDIyICk7XG5cdGNvbnN0IHZlYzQgYzEgPSB2ZWM0KCAxLCAwLjA0MjUsIDEuMDQsIC0gMC4wNCApO1xuXHR2ZWM0IHIgPSByb3VnaG5lc3MgKiBjMCArIGMxO1xuXHRmbG9hdCBhMDA0ID0gbWluKCByLnggKiByLngsIGV4cDIoIC0gOS4yOCAqIGRvdE5WICkgKSAqIHIueCArIHIueTtcblx0cmV0dXJuIHZlYzIoIC0xLjA0LCAxLjA0ICkgKiBhMDA0ICsgci56dztcbn1cbmZsb2F0IHB1bmN0dWFsTGlnaHRJbnRlbnNpdHlUb0lycmFkaWFuY2VGYWN0b3IoIGNvbnN0IGluIGZsb2F0IGxpZ2h0RGlzdGFuY2UsIGNvbnN0IGluIGZsb2F0IGN1dG9mZkRpc3RhbmNlLCBjb25zdCBpbiBmbG9hdCBkZWNheUV4cG9uZW50ICkge1xuI2lmIGRlZmluZWQgKCBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTIClcblx0ZmxvYXQgZGlzdGFuY2VGYWxsb2ZmID0gMS4wIC8gbWF4KCBwb3coIGxpZ2h0RGlzdGFuY2UsIGRlY2F5RXhwb25lbnQgKSwgMC4wMSApO1xuXHRpZiggY3V0b2ZmRGlzdGFuY2UgPiAwLjAgKSB7XG5cdFx0ZGlzdGFuY2VGYWxsb2ZmICo9IHBvdzIoIHNhdHVyYXRlKCAxLjAgLSBwb3c0KCBsaWdodERpc3RhbmNlIC8gY3V0b2ZmRGlzdGFuY2UgKSApICk7XG5cdH1cblx0cmV0dXJuIGRpc3RhbmNlRmFsbG9mZjtcbiNlbHNlXG5cdGlmKCBjdXRvZmZEaXN0YW5jZSA+IDAuMCAmJiBkZWNheUV4cG9uZW50ID4gMC4wICkge1xuXHRcdHJldHVybiBwb3coIHNhdHVyYXRlKCAtbGlnaHREaXN0YW5jZSAvIGN1dG9mZkRpc3RhbmNlICsgMS4wICksIGRlY2F5RXhwb25lbnQgKTtcblx0fVxuXHRyZXR1cm4gMS4wO1xuI2VuZGlmXG59XG52ZWMzIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBjb25zdCBpbiB2ZWMzIGRpZmZ1c2VDb2xvciApIHtcblx0cmV0dXJuIFJFQ0lQUk9DQUxfUEkgKiBkaWZmdXNlQ29sb3I7XG59XG52ZWMzIEZfU2NobGljayggY29uc3QgaW4gdmVjMyBmMCwgY29uc3QgaW4gdmVjMyBmOTAsIGNvbnN0IGluIGZsb2F0IGRvdFZIICkge1xuXHRmbG9hdCBmcmVzbmVsID0gZXhwMiggKCAtNS41NTQ3MyAqIGRvdFZIIC0gNi45ODMxNiApICogZG90VkggKTtcblx0cmV0dXJuICggZjkwIC0gZjAgKSAqIGZyZXNuZWwgKyBmMDtcbn1cbnZlYzMgRl9TY2hsaWNrX1JvdWdobmVzc0RlcGVuZGVudCggY29uc3QgaW4gdmVjMyBGMCwgY29uc3QgaW4gZmxvYXQgZG90TlYsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0ZmxvYXQgZnJlc25lbCA9IGV4cDIoICggLTUuNTU0NzMgKiBkb3ROViAtIDYuOTgzMTYgKSAqIGRvdE5WICk7XG5cdHZlYzMgRnIgPSBtYXgoIHZlYzMoIDEuMCAtIHJvdWdobmVzcyApLCBGMCApIC0gRjA7XG5cdHJldHVybiBGciAqIGZyZXNuZWwgKyBGMDtcbn1cbmZsb2F0IEdfR0dYX1NtaXRoKCBjb25zdCBpbiBmbG9hdCBhbHBoYSwgY29uc3QgaW4gZmxvYXQgZG90TkwsIGNvbnN0IGluIGZsb2F0IGRvdE5WICkge1xuXHRmbG9hdCBhMiA9IHBvdzIoIGFscGhhICk7XG5cdGZsb2F0IGdsID0gZG90TkwgKyBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5MICkgKTtcblx0ZmxvYXQgZ3YgPSBkb3ROViArIHNxcnQoIGEyICsgKCAxLjAgLSBhMiApICogcG93MiggZG90TlYgKSApO1xuXHRyZXR1cm4gMS4wIC8gKCBnbCAqIGd2ICk7XG59XG5mbG9hdCBHX0dHWF9TbWl0aENvcnJlbGF0ZWQoIGNvbnN0IGluIGZsb2F0IGFscGhhLCBjb25zdCBpbiBmbG9hdCBkb3ROTCwgY29uc3QgaW4gZmxvYXQgZG90TlYgKSB7XG5cdGZsb2F0IGEyID0gcG93MiggYWxwaGEgKTtcblx0ZmxvYXQgZ3YgPSBkb3ROTCAqIHNxcnQoIGEyICsgKCAxLjAgLSBhMiApICogcG93MiggZG90TlYgKSApO1xuXHRmbG9hdCBnbCA9IGRvdE5WICogc3FydCggYTIgKyAoIDEuMCAtIGEyICkgKiBwb3cyKCBkb3ROTCApICk7XG5cdHJldHVybiAwLjUgLyBtYXgoIGd2ICsgZ2wsIEVQU0lMT04gKTtcbn1cbmZsb2F0IERfR0dYKCBjb25zdCBpbiBmbG9hdCBhbHBoYSwgY29uc3QgaW4gZmxvYXQgZG90TkggKSB7XG5cdGZsb2F0IGEyID0gcG93MiggYWxwaGEgKTtcblx0ZmxvYXQgZGVub20gPSBwb3cyKCBkb3ROSCApICogKCBhMiAtIDEuMCApICsgMS4wO1xuXHRyZXR1cm4gUkVDSVBST0NBTF9QSSAqIGEyIC8gcG93MiggZGVub20gKTtcbn1cbnZlYzMgQlJERl9TcGVjdWxhcl9HR1goIGNvbnN0IGluIEluY2lkZW50TGlnaHQgaW5jaWRlbnRMaWdodCwgY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gdmVjMyBmMCwgY29uc3QgaW4gdmVjMyBmOTAsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0ZmxvYXQgYWxwaGEgPSBwb3cyKCByb3VnaG5lc3MgKTtcblx0dmVjMyBoYWxmRGlyID0gbm9ybWFsaXplKCBpbmNpZGVudExpZ2h0LmRpcmVjdGlvbiArIHZpZXdEaXIgKTtcblx0ZmxvYXQgZG90TkwgPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIGluY2lkZW50TGlnaHQuZGlyZWN0aW9uICkgKTtcblx0ZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIHZpZXdEaXIgKSApO1xuXHRmbG9hdCBkb3ROSCA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgaGFsZkRpciApICk7XG5cdGZsb2F0IGRvdExIID0gc2F0dXJhdGUoIGRvdCggaW5jaWRlbnRMaWdodC5kaXJlY3Rpb24sIGhhbGZEaXIgKSApO1xuXHR2ZWMzIEYgPSBGX1NjaGxpY2soIGYwLCBmOTAsIGRvdExIICk7XG5cdGZsb2F0IEcgPSBHX0dHWF9TbWl0aENvcnJlbGF0ZWQoIGFscGhhLCBkb3ROTCwgZG90TlYgKTtcblx0ZmxvYXQgRCA9IERfR0dYKCBhbHBoYSwgZG90TkggKTtcblx0cmV0dXJuIEYgKiAoIEcgKiBEICk7XG59XG52ZWMyIExUQ19VdiggY29uc3QgaW4gdmVjMyBOLCBjb25zdCBpbiB2ZWMzIFYsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0Y29uc3QgZmxvYXQgTFVUX1NJWkUgPSA2NC4wO1xuXHRjb25zdCBmbG9hdCBMVVRfU0NBTEUgPSAoIExVVF9TSVpFIC0gMS4wICkgLyBMVVRfU0laRTtcblx0Y29uc3QgZmxvYXQgTFVUX0JJQVMgPSAwLjUgLyBMVVRfU0laRTtcblx0ZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBOLCBWICkgKTtcblx0dmVjMiB1diA9IHZlYzIoIHJvdWdobmVzcywgc3FydCggMS4wIC0gZG90TlYgKSApO1xuXHR1diA9IHV2ICogTFVUX1NDQUxFICsgTFVUX0JJQVM7XG5cdHJldHVybiB1djtcbn1cbmZsb2F0IExUQ19DbGlwcGVkU3BoZXJlRm9ybUZhY3RvciggY29uc3QgaW4gdmVjMyBmICkge1xuXHRmbG9hdCBsID0gbGVuZ3RoKCBmICk7XG5cdHJldHVybiBtYXgoICggbCAqIGwgKyBmLnogKSAvICggbCArIDEuMCApLCAwLjAgKTtcbn1cbnZlYzMgTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb25zdCBpbiB2ZWMzIHYxLCBjb25zdCBpbiB2ZWMzIHYyICkge1xuXHRmbG9hdCB4ID0gZG90KCB2MSwgdjIgKTtcblx0ZmxvYXQgeSA9IGFicyggeCApO1xuXHRmbG9hdCBhID0gMC44NTQzOTg1ICsgKCAwLjQ5NjUxNTUgKyAwLjAxNDUyMDYgKiB5ICkgKiB5O1xuXHRmbG9hdCBiID0gMy40MTc1OTQwICsgKCA0LjE2MTY3MjQgKyB5ICkgKiB5O1xuXHRmbG9hdCB2ID0gYSAvIGI7XG5cdGZsb2F0IHRoZXRhX3NpbnRoZXRhID0gKCB4ID4gMC4wICkgPyB2IDogMC41ICogaW52ZXJzZXNxcnQoIG1heCggMS4wIC0geCAqIHgsIDFlLTcgKSApIC0gdjtcblx0cmV0dXJuIGNyb3NzKCB2MSwgdjIgKSAqIHRoZXRhX3NpbnRoZXRhO1xufVxudmVjMyBMVENfRXZhbHVhdGUoIGNvbnN0IGluIHZlYzMgTiwgY29uc3QgaW4gdmVjMyBWLCBjb25zdCBpbiB2ZWMzIFAsIGNvbnN0IGluIG1hdDMgbUludiwgY29uc3QgaW4gdmVjMyByZWN0Q29vcmRzWyA0IF0gKSB7XG5cdHZlYzMgdjEgPSByZWN0Q29vcmRzWyAxIF0gLSByZWN0Q29vcmRzWyAwIF07XG5cdHZlYzMgdjIgPSByZWN0Q29vcmRzWyAzIF0gLSByZWN0Q29vcmRzWyAwIF07XG5cdHZlYzMgbGlnaHROb3JtYWwgPSBjcm9zcyggdjEsIHYyICk7XG5cdGlmKCBkb3QoIGxpZ2h0Tm9ybWFsLCBQIC0gcmVjdENvb3Jkc1sgMCBdICkgPCAwLjAgKSByZXR1cm4gdmVjMyggMC4wICk7XG5cdHZlYzMgVDEsIFQyO1xuXHRUMSA9IG5vcm1hbGl6ZSggViAtIE4gKiBkb3QoIFYsIE4gKSApO1xuXHRUMiA9IC0gY3Jvc3MoIE4sIFQxICk7XG5cdG1hdDMgbWF0ID0gbUludiAqIHRyYW5zcG9zZU1hdDMoIG1hdDMoIFQxLCBUMiwgTiApICk7XG5cdHZlYzMgY29vcmRzWyA0IF07XG5cdGNvb3Jkc1sgMCBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAwIF0gLSBQICk7XG5cdGNvb3Jkc1sgMSBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAxIF0gLSBQICk7XG5cdGNvb3Jkc1sgMiBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAyIF0gLSBQICk7XG5cdGNvb3Jkc1sgMyBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAzIF0gLSBQICk7XG5cdGNvb3Jkc1sgMCBdID0gbm9ybWFsaXplKCBjb29yZHNbIDAgXSApO1xuXHRjb29yZHNbIDEgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAxIF0gKTtcblx0Y29vcmRzWyAyIF0gPSBub3JtYWxpemUoIGNvb3Jkc1sgMiBdICk7XG5cdGNvb3Jkc1sgMyBdID0gbm9ybWFsaXplKCBjb29yZHNbIDMgXSApO1xuXHR2ZWMzIHZlY3RvckZvcm1GYWN0b3IgPSB2ZWMzKCAwLjAgKTtcblx0dmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMCBdLCBjb29yZHNbIDEgXSApO1xuXHR2ZWN0b3JGb3JtRmFjdG9yICs9IExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29vcmRzWyAxIF0sIGNvb3Jkc1sgMiBdICk7XG5cdHZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDIgXSwgY29vcmRzWyAzIF0gKTtcblx0dmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMyBdLCBjb29yZHNbIDAgXSApO1xuXHRmbG9hdCByZXN1bHQgPSBMVENfQ2xpcHBlZFNwaGVyZUZvcm1GYWN0b3IoIHZlY3RvckZvcm1GYWN0b3IgKTtcblx0cmV0dXJuIHZlYzMoIHJlc3VsdCApO1xufVxudmVjMyBCUkRGX1NwZWN1bGFyX0dHWF9FbnZpcm9ubWVudCggY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gdmVjMyBzcGVjdWxhckNvbG9yLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCB2aWV3RGlyICkgKTtcblx0dmVjMiBicmRmID0gaW50ZWdyYXRlU3BlY3VsYXJCUkRGKCBkb3ROViwgcm91Z2huZXNzICk7XG5cdHJldHVybiBzcGVjdWxhckNvbG9yICogYnJkZi54ICsgYnJkZi55O1xufVxudm9pZCBCUkRGX1NwZWN1bGFyX011bHRpc2NhdHRlcmluZ19FbnZpcm9ubWVudCggY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gdmVjMyBzcGVjdWxhckNvbG9yLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGlub3V0IHZlYzMgc2luZ2xlU2NhdHRlciwgaW5vdXQgdmVjMyBtdWx0aVNjYXR0ZXIgKSB7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyICkgKTtcblx0dmVjMyBGID0gRl9TY2hsaWNrX1JvdWdobmVzc0RlcGVuZGVudCggc3BlY3VsYXJDb2xvciwgZG90TlYsIHJvdWdobmVzcyApO1xuXHR2ZWMyIGJyZGYgPSBpbnRlZ3JhdGVTcGVjdWxhckJSREYoIGRvdE5WLCByb3VnaG5lc3MgKTtcblx0dmVjMyBGc3NFc3MgPSBGICogYnJkZi54ICsgYnJkZi55O1xuXHRmbG9hdCBFc3MgPSBicmRmLnggKyBicmRmLnk7XG5cdGZsb2F0IEVtcyA9IDEuMCAtIEVzcztcblx0dmVjMyBGYXZnID0gc3BlY3VsYXJDb2xvciArICggMS4wIC0gc3BlY3VsYXJDb2xvciApICogMC4wNDc2MTk7XHR2ZWMzIEZtcyA9IEZzc0VzcyAqIEZhdmcgLyAoIDEuMCAtIEVtcyAqIEZhdmcgKTtcblx0c2luZ2xlU2NhdHRlciArPSBGc3NFc3M7XG5cdG11bHRpU2NhdHRlciArPSBGbXMgKiBFbXM7XG59XG5mbG9hdCBHX0JsaW5uUGhvbmdfSW1wbGljaXQoICkge1xuXHRyZXR1cm4gMC4yNTtcbn1cbmZsb2F0IERfQmxpbm5QaG9uZyggY29uc3QgaW4gZmxvYXQgc2hpbmluZXNzLCBjb25zdCBpbiBmbG9hdCBkb3ROSCApIHtcblx0cmV0dXJuIFJFQ0lQUk9DQUxfUEkgKiAoIHNoaW5pbmVzcyAqIDAuNSArIDEuMCApICogcG93KCBkb3ROSCwgc2hpbmluZXNzICk7XG59XG52ZWMzIEJSREZfU3BlY3VsYXJfQmxpbm5QaG9uZyggY29uc3QgaW4gSW5jaWRlbnRMaWdodCBpbmNpZGVudExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiB2ZWMzIHNwZWN1bGFyQ29sb3IsIGNvbnN0IGluIGZsb2F0IHNoaW5pbmVzcyApIHtcblx0dmVjMyBoYWxmRGlyID0gbm9ybWFsaXplKCBpbmNpZGVudExpZ2h0LmRpcmVjdGlvbiArIGdlb21ldHJ5LnZpZXdEaXIgKTtcblx0ZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5ub3JtYWwsIGhhbGZEaXIgKSApO1xuXHRmbG9hdCBkb3RMSCA9IHNhdHVyYXRlKCBkb3QoIGluY2lkZW50TGlnaHQuZGlyZWN0aW9uLCBoYWxmRGlyICkgKTtcblx0dmVjMyBGID0gRl9TY2hsaWNrKCBzcGVjdWxhckNvbG9yLCB2ZWMzKCAxLjAgKSwgZG90TEggKTtcblx0ZmxvYXQgRyA9IEdfQmxpbm5QaG9uZ19JbXBsaWNpdCggKTtcblx0ZmxvYXQgRCA9IERfQmxpbm5QaG9uZyggc2hpbmluZXNzLCBkb3ROSCApO1xuXHRyZXR1cm4gRiAqICggRyAqIEQgKTtcbn1cbmZsb2F0IEdHWFJvdWdobmVzc1RvQmxpbm5FeHBvbmVudCggY29uc3QgaW4gZmxvYXQgZ2d4Um91Z2huZXNzICkge1xuXHRyZXR1cm4gKCAyLjAgLyBwb3cyKCBnZ3hSb3VnaG5lc3MgKyAwLjAwMDEgKSAtIDIuMCApO1xufVxuZmxvYXQgQmxpbm5FeHBvbmVudFRvR0dYUm91Z2huZXNzKCBjb25zdCBpbiBmbG9hdCBibGlubkV4cG9uZW50ICkge1xuXHRyZXR1cm4gc3FydCggMi4wIC8gKCBibGlubkV4cG9uZW50ICsgMi4wICkgKTtcbn1cbiNpZiBkZWZpbmVkKCBVU0VfU0hFRU4gKVxuZmxvYXQgRF9DaGFybGllKGZsb2F0IHJvdWdobmVzcywgZmxvYXQgTm9IKSB7XG5cdGZsb2F0IGludkFscGhhID0gMS4wIC8gcm91Z2huZXNzO1xuXHRmbG9hdCBjb3MyaCA9IE5vSCAqIE5vSDtcblx0ZmxvYXQgc2luMmggPSBtYXgoMS4wIC0gY29zMmgsIDAuMDA3ODEyNSk7XHRyZXR1cm4gKDIuMCArIGludkFscGhhKSAqIHBvdyhzaW4yaCwgaW52QWxwaGEgKiAwLjUpIC8gKDIuMCAqIFBJKTtcbn1cbmZsb2F0IFZfTmV1YmVsdChmbG9hdCBOb1YsIGZsb2F0IE5vTCkge1xuXHRyZXR1cm4gc2F0dXJhdGUoMS4wIC8gKDQuMCAqIChOb0wgKyBOb1YgLSBOb0wgKiBOb1YpKSk7XG59XG52ZWMzIEJSREZfU3BlY3VsYXJfU2hlZW4oIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcywgY29uc3QgaW4gdmVjMyBMLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCB2ZWMzIHNwZWN1bGFyQ29sb3IgKSB7XG5cdHZlYzMgTiA9IGdlb21ldHJ5Lm5vcm1hbDtcblx0dmVjMyBWID0gZ2VvbWV0cnkudmlld0Rpcjtcblx0dmVjMyBIID0gbm9ybWFsaXplKCBWICsgTCApO1xuXHRmbG9hdCBkb3ROSCA9IHNhdHVyYXRlKCBkb3QoIE4sIEggKSApO1xuXHRyZXR1cm4gc3BlY3VsYXJDb2xvciAqIERfQ2hhcmxpZSggcm91Z2huZXNzLCBkb3ROSCApICogVl9OZXViZWx0KCBkb3QoTiwgViksIGRvdChOLCBMKSApO1xufVxuI2VuZGlmIixidW1wbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQlVNUE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBidW1wTWFwO1xuXHR1bmlmb3JtIGZsb2F0IGJ1bXBTY2FsZTtcblx0dmVjMiBkSGR4eV9md2QoKSB7XG5cdFx0dmVjMiBkU1RkeCA9IGRGZHgoIHZVdiApO1xuXHRcdHZlYzIgZFNUZHkgPSBkRmR5KCB2VXYgKTtcblx0XHRmbG9hdCBIbGwgPSBidW1wU2NhbGUgKiB0ZXh0dXJlMkQoIGJ1bXBNYXAsIHZVdiApLng7XG5cdFx0ZmxvYXQgZEJ4ID0gYnVtcFNjYWxlICogdGV4dHVyZTJEKCBidW1wTWFwLCB2VXYgKyBkU1RkeCApLnggLSBIbGw7XG5cdFx0ZmxvYXQgZEJ5ID0gYnVtcFNjYWxlICogdGV4dHVyZTJEKCBidW1wTWFwLCB2VXYgKyBkU1RkeSApLnggLSBIbGw7XG5cdFx0cmV0dXJuIHZlYzIoIGRCeCwgZEJ5ICk7XG5cdH1cblx0dmVjMyBwZXJ0dXJiTm9ybWFsQXJiKCB2ZWMzIHN1cmZfcG9zLCB2ZWMzIHN1cmZfbm9ybSwgdmVjMiBkSGR4eSwgZmxvYXQgZmFjZURpcmVjdGlvbiApIHtcblx0XHR2ZWMzIHZTaWdtYVggPSB2ZWMzKCBkRmR4KCBzdXJmX3Bvcy54ICksIGRGZHgoIHN1cmZfcG9zLnkgKSwgZEZkeCggc3VyZl9wb3MueiApICk7XG5cdFx0dmVjMyB2U2lnbWFZID0gdmVjMyggZEZkeSggc3VyZl9wb3MueCApLCBkRmR5KCBzdXJmX3Bvcy55ICksIGRGZHkoIHN1cmZfcG9zLnogKSApO1xuXHRcdHZlYzMgdk4gPSBzdXJmX25vcm07XG5cdFx0dmVjMyBSMSA9IGNyb3NzKCB2U2lnbWFZLCB2TiApO1xuXHRcdHZlYzMgUjIgPSBjcm9zcyggdk4sIHZTaWdtYVggKTtcblx0XHRmbG9hdCBmRGV0ID0gZG90KCB2U2lnbWFYLCBSMSApICogZmFjZURpcmVjdGlvbjtcblx0XHR2ZWMzIHZHcmFkID0gc2lnbiggZkRldCApICogKCBkSGR4eS54ICogUjEgKyBkSGR4eS55ICogUjIgKTtcblx0XHRyZXR1cm4gbm9ybWFsaXplKCBhYnMoIGZEZXQgKSAqIHN1cmZfbm9ybSAtIHZHcmFkICk7XG5cdH1cbiNlbmRpZiIsY2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50OiIjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDBcblx0dmVjNCBwbGFuZTtcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBVTklPTl9DTElQUElOR19QTEFORVM7IGkgKysgKSB7XG5cdFx0cGxhbmUgPSBjbGlwcGluZ1BsYW5lc1sgaSBdO1xuXHRcdGlmICggZG90KCB2Q2xpcFBvc2l0aW9uLCBwbGFuZS54eXogKSA+IHBsYW5lLncgKSBkaXNjYXJkO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNpZiBVTklPTl9DTElQUElOR19QTEFORVMgPCBOVU1fQ0xJUFBJTkdfUExBTkVTXG5cdFx0Ym9vbCBjbGlwcGVkID0gdHJ1ZTtcblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdFx0Zm9yICggaW50IGkgPSBVTklPTl9DTElQUElOR19QTEFORVM7IGkgPCBOVU1fQ0xJUFBJTkdfUExBTkVTOyBpICsrICkge1xuXHRcdFx0cGxhbmUgPSBjbGlwcGluZ1BsYW5lc1sgaSBdO1xuXHRcdFx0Y2xpcHBlZCA9ICggZG90KCB2Q2xpcFBvc2l0aW9uLCBwbGFuZS54eXogKSA+IHBsYW5lLncgKSAmJiBjbGlwcGVkO1xuXHRcdH1cblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHRcdGlmICggY2xpcHBlZCApIGRpc2NhcmQ7XG5cdCNlbmRpZlxuI2VuZGlmIixjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudDoiI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwXG5cdHZhcnlpbmcgdmVjMyB2Q2xpcFBvc2l0aW9uO1xuXHR1bmlmb3JtIHZlYzQgY2xpcHBpbmdQbGFuZXNbIE5VTV9DTElQUElOR19QTEFORVMgXTtcbiNlbmRpZiIsY2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4OiIjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDBcblx0dmFyeWluZyB2ZWMzIHZDbGlwUG9zaXRpb247XG4jZW5kaWYiLGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg6IiNpZiBOVU1fQ0xJUFBJTkdfUExBTkVTID4gMFxuXHR2Q2xpcFBvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcbiNlbmRpZiIsY29sb3JfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHRkaWZmdXNlQ29sb3IgKj0gdkNvbG9yO1xuI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SIClcblx0ZGlmZnVzZUNvbG9yLnJnYiAqPSB2Q29sb3I7XG4jZW5kaWYiLGNvbG9yX3BhcnNfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHR2YXJ5aW5nIHZlYzQgdkNvbG9yO1xuI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SIClcblx0dmFyeWluZyB2ZWMzIHZDb2xvcjtcbiNlbmRpZiIsY29sb3JfcGFyc192ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHR2YXJ5aW5nIHZlYzQgdkNvbG9yO1xuI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkgfHwgZGVmaW5lZCggVVNFX0lOU1RBTkNJTkdfQ09MT1IgKVxuXHR2YXJ5aW5nIHZlYzMgdkNvbG9yO1xuI2VuZGlmIixjb2xvcl92ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHR2Q29sb3IgPSB2ZWM0KCAxLjAgKTtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApIHx8IGRlZmluZWQoIFVTRV9JTlNUQU5DSU5HX0NPTE9SIClcblx0dkNvbG9yID0gdmVjMyggMS4wICk7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQ09MT1Jcblx0dkNvbG9yICo9IGNvbG9yO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0lOU1RBTkNJTkdfQ09MT1Jcblx0dkNvbG9yLnh5eiAqPSBpbnN0YW5jZUNvbG9yLnh5ejtcbiNlbmRpZiIsY29tbW9uOiIjZGVmaW5lIFBJIDMuMTQxNTkyNjUzNTg5NzkzXG4jZGVmaW5lIFBJMiA2LjI4MzE4NTMwNzE3OTU4NlxuI2RlZmluZSBQSV9IQUxGIDEuNTcwNzk2MzI2Nzk0ODk2NlxuI2RlZmluZSBSRUNJUFJPQ0FMX1BJIDAuMzE4MzA5ODg2MTgzNzkwN1xuI2RlZmluZSBSRUNJUFJPQ0FMX1BJMiAwLjE1OTE1NDk0MzA5MTg5NTM1XG4jZGVmaW5lIEVQU0lMT04gMWUtNlxuI2lmbmRlZiBzYXR1cmF0ZVxuI2RlZmluZSBzYXR1cmF0ZShhKSBjbGFtcCggYSwgMC4wLCAxLjAgKVxuI2VuZGlmXG4jZGVmaW5lIHdoaXRlQ29tcGxlbWVudChhKSAoIDEuMCAtIHNhdHVyYXRlKCBhICkgKVxuZmxvYXQgcG93MiggY29uc3QgaW4gZmxvYXQgeCApIHsgcmV0dXJuIHgqeDsgfVxuZmxvYXQgcG93MyggY29uc3QgaW4gZmxvYXQgeCApIHsgcmV0dXJuIHgqeCp4OyB9XG5mbG9hdCBwb3c0KCBjb25zdCBpbiBmbG9hdCB4ICkgeyBmbG9hdCB4MiA9IHgqeDsgcmV0dXJuIHgyKngyOyB9XG5mbG9hdCBhdmVyYWdlKCBjb25zdCBpbiB2ZWMzIGNvbG9yICkgeyByZXR1cm4gZG90KCBjb2xvciwgdmVjMyggMC4zMzMzICkgKTsgfVxuaGlnaHAgZmxvYXQgcmFuZCggY29uc3QgaW4gdmVjMiB1diApIHtcblx0Y29uc3QgaGlnaHAgZmxvYXQgYSA9IDEyLjk4OTgsIGIgPSA3OC4yMzMsIGMgPSA0Mzc1OC41NDUzO1xuXHRoaWdocCBmbG9hdCBkdCA9IGRvdCggdXYueHksIHZlYzIoIGEsYiApICksIHNuID0gbW9kKCBkdCwgUEkgKTtcblx0cmV0dXJuIGZyYWN0KHNpbihzbikgKiBjKTtcbn1cbiNpZmRlZiBISUdIX1BSRUNJU0lPTlxuXHRmbG9hdCBwcmVjaXNpb25TYWZlTGVuZ3RoKCB2ZWMzIHYgKSB7IHJldHVybiBsZW5ndGgoIHYgKTsgfVxuI2Vsc2Vcblx0ZmxvYXQgbWF4MyggdmVjMyB2ICkgeyByZXR1cm4gbWF4KCBtYXgoIHYueCwgdi55ICksIHYueiApOyB9XG5cdGZsb2F0IHByZWNpc2lvblNhZmVMZW5ndGgoIHZlYzMgdiApIHtcblx0XHRmbG9hdCBtYXhDb21wb25lbnQgPSBtYXgzKCBhYnMoIHYgKSApO1xuXHRcdHJldHVybiBsZW5ndGgoIHYgLyBtYXhDb21wb25lbnQgKSAqIG1heENvbXBvbmVudDtcblx0fVxuI2VuZGlmXG5zdHJ1Y3QgSW5jaWRlbnRMaWdodCB7XG5cdHZlYzMgY29sb3I7XG5cdHZlYzMgZGlyZWN0aW9uO1xuXHRib29sIHZpc2libGU7XG59O1xuc3RydWN0IFJlZmxlY3RlZExpZ2h0IHtcblx0dmVjMyBkaXJlY3REaWZmdXNlO1xuXHR2ZWMzIGRpcmVjdFNwZWN1bGFyO1xuXHR2ZWMzIGluZGlyZWN0RGlmZnVzZTtcblx0dmVjMyBpbmRpcmVjdFNwZWN1bGFyO1xufTtcbnN0cnVjdCBHZW9tZXRyaWNDb250ZXh0IHtcblx0dmVjMyBwb3NpdGlvbjtcblx0dmVjMyBub3JtYWw7XG5cdHZlYzMgdmlld0RpcjtcbiNpZmRlZiBDTEVBUkNPQVRcblx0dmVjMyBjbGVhcmNvYXROb3JtYWw7XG4jZW5kaWZcbn07XG52ZWMzIHRyYW5zZm9ybURpcmVjdGlvbiggaW4gdmVjMyBkaXIsIGluIG1hdDQgbWF0cml4ICkge1xuXHRyZXR1cm4gbm9ybWFsaXplKCAoIG1hdHJpeCAqIHZlYzQoIGRpciwgMC4wICkgKS54eXogKTtcbn1cbnZlYzMgaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggaW4gdmVjMyBkaXIsIGluIG1hdDQgbWF0cml4ICkge1xuXHRyZXR1cm4gbm9ybWFsaXplKCAoIHZlYzQoIGRpciwgMC4wICkgKiBtYXRyaXggKS54eXogKTtcbn1cbnZlYzMgcHJvamVjdE9uUGxhbmUoaW4gdmVjMyBwb2ludCwgaW4gdmVjMyBwb2ludE9uUGxhbmUsIGluIHZlYzMgcGxhbmVOb3JtYWwgKSB7XG5cdGZsb2F0IGRpc3RhbmNlID0gZG90KCBwbGFuZU5vcm1hbCwgcG9pbnQgLSBwb2ludE9uUGxhbmUgKTtcblx0cmV0dXJuIC0gZGlzdGFuY2UgKiBwbGFuZU5vcm1hbCArIHBvaW50O1xufVxuZmxvYXQgc2lkZU9mUGxhbmUoIGluIHZlYzMgcG9pbnQsIGluIHZlYzMgcG9pbnRPblBsYW5lLCBpbiB2ZWMzIHBsYW5lTm9ybWFsICkge1xuXHRyZXR1cm4gc2lnbiggZG90KCBwb2ludCAtIHBvaW50T25QbGFuZSwgcGxhbmVOb3JtYWwgKSApO1xufVxudmVjMyBsaW5lUGxhbmVJbnRlcnNlY3QoIGluIHZlYzMgcG9pbnRPbkxpbmUsIGluIHZlYzMgbGluZURpcmVjdGlvbiwgaW4gdmVjMyBwb2ludE9uUGxhbmUsIGluIHZlYzMgcGxhbmVOb3JtYWwgKSB7XG5cdHJldHVybiBsaW5lRGlyZWN0aW9uICogKCBkb3QoIHBsYW5lTm9ybWFsLCBwb2ludE9uUGxhbmUgLSBwb2ludE9uTGluZSApIC8gZG90KCBwbGFuZU5vcm1hbCwgbGluZURpcmVjdGlvbiApICkgKyBwb2ludE9uTGluZTtcbn1cbm1hdDMgdHJhbnNwb3NlTWF0MyggY29uc3QgaW4gbWF0MyBtICkge1xuXHRtYXQzIHRtcDtcblx0dG1wWyAwIF0gPSB2ZWMzKCBtWyAwIF0ueCwgbVsgMSBdLngsIG1bIDIgXS54ICk7XG5cdHRtcFsgMSBdID0gdmVjMyggbVsgMCBdLnksIG1bIDEgXS55LCBtWyAyIF0ueSApO1xuXHR0bXBbIDIgXSA9IHZlYzMoIG1bIDAgXS56LCBtWyAxIF0ueiwgbVsgMiBdLnogKTtcblx0cmV0dXJuIHRtcDtcbn1cbmZsb2F0IGxpbmVhclRvUmVsYXRpdmVMdW1pbmFuY2UoIGNvbnN0IGluIHZlYzMgY29sb3IgKSB7XG5cdHZlYzMgd2VpZ2h0cyA9IHZlYzMoIDAuMjEyNiwgMC43MTUyLCAwLjA3MjIgKTtcblx0cmV0dXJuIGRvdCggd2VpZ2h0cywgY29sb3IucmdiICk7XG59XG5ib29sIGlzUGVyc3BlY3RpdmVNYXRyaXgoIG1hdDQgbSApIHtcblx0cmV0dXJuIG1bIDIgXVsgMyBdID09IC0gMS4wO1xufVxudmVjMiBlcXVpcmVjdFV2KCBpbiB2ZWMzIGRpciApIHtcblx0ZmxvYXQgdSA9IGF0YW4oIGRpci56LCBkaXIueCApICogUkVDSVBST0NBTF9QSTIgKyAwLjU7XG5cdGZsb2F0IHYgPSBhc2luKCBjbGFtcCggZGlyLnksIC0gMS4wLCAxLjAgKSApICogUkVDSVBST0NBTF9QSSArIDAuNTtcblx0cmV0dXJuIHZlYzIoIHUsIHYgKTtcbn0iLGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudDoiI2lmZGVmIEVOVk1BUF9UWVBFX0NVQkVfVVZcblx0I2RlZmluZSBjdWJlVVZfbWF4TWlwTGV2ZWwgOC4wXG5cdCNkZWZpbmUgY3ViZVVWX21pbk1pcExldmVsIDQuMFxuXHQjZGVmaW5lIGN1YmVVVl9tYXhUaWxlU2l6ZSAyNTYuMFxuXHQjZGVmaW5lIGN1YmVVVl9taW5UaWxlU2l6ZSAxNi4wXG5cdGZsb2F0IGdldEZhY2UoIHZlYzMgZGlyZWN0aW9uICkge1xuXHRcdHZlYzMgYWJzRGlyZWN0aW9uID0gYWJzKCBkaXJlY3Rpb24gKTtcblx0XHRmbG9hdCBmYWNlID0gLSAxLjA7XG5cdFx0aWYgKCBhYnNEaXJlY3Rpb24ueCA+IGFic0RpcmVjdGlvbi56ICkge1xuXHRcdFx0aWYgKCBhYnNEaXJlY3Rpb24ueCA+IGFic0RpcmVjdGlvbi55IClcblx0XHRcdFx0ZmFjZSA9IGRpcmVjdGlvbi54ID4gMC4wID8gMC4wIDogMy4wO1xuXHRcdFx0ZWxzZVxuXHRcdFx0XHRmYWNlID0gZGlyZWN0aW9uLnkgPiAwLjAgPyAxLjAgOiA0LjA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmICggYWJzRGlyZWN0aW9uLnogPiBhYnNEaXJlY3Rpb24ueSApXG5cdFx0XHRcdGZhY2UgPSBkaXJlY3Rpb24ueiA+IDAuMCA/IDIuMCA6IDUuMDtcblx0XHRcdGVsc2Vcblx0XHRcdFx0ZmFjZSA9IGRpcmVjdGlvbi55ID4gMC4wID8gMS4wIDogNC4wO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFjZTtcblx0fVxuXHR2ZWMyIGdldFVWKCB2ZWMzIGRpcmVjdGlvbiwgZmxvYXQgZmFjZSApIHtcblx0XHR2ZWMyIHV2O1xuXHRcdGlmICggZmFjZSA9PSAwLjAgKSB7XG5cdFx0XHR1diA9IHZlYzIoIGRpcmVjdGlvbi56LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueCApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMS4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCAtIGRpcmVjdGlvbi56ICkgLyBhYnMoIGRpcmVjdGlvbi55ICk7XG5cdFx0fSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7XG5cdFx0XHR1diA9IHZlYzIoIC0gZGlyZWN0aW9uLngsIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi56ICk7XG5cdFx0fSBlbHNlIGlmICggZmFjZSA9PSAzLjAgKSB7XG5cdFx0XHR1diA9IHZlYzIoIC0gZGlyZWN0aW9uLnosIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi54ICk7XG5cdFx0fSBlbHNlIGlmICggZmFjZSA9PSA0LjAgKSB7XG5cdFx0XHR1diA9IHZlYzIoIC0gZGlyZWN0aW9uLngsIGRpcmVjdGlvbi56ICkgLyBhYnMoIGRpcmVjdGlvbi55ICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHV2ID0gdmVjMiggZGlyZWN0aW9uLngsIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi56ICk7XG5cdFx0fVxuXHRcdHJldHVybiAwLjUgKiAoIHV2ICsgMS4wICk7XG5cdH1cblx0dmVjMyBiaWxpbmVhckN1YmVVViggc2FtcGxlcjJEIGVudk1hcCwgdmVjMyBkaXJlY3Rpb24sIGZsb2F0IG1pcEludCApIHtcblx0XHRmbG9hdCBmYWNlID0gZ2V0RmFjZSggZGlyZWN0aW9uICk7XG5cdFx0ZmxvYXQgZmlsdGVySW50ID0gbWF4KCBjdWJlVVZfbWluTWlwTGV2ZWwgLSBtaXBJbnQsIDAuMCApO1xuXHRcdG1pcEludCA9IG1heCggbWlwSW50LCBjdWJlVVZfbWluTWlwTGV2ZWwgKTtcblx0XHRmbG9hdCBmYWNlU2l6ZSA9IGV4cDIoIG1pcEludCApO1xuXHRcdGZsb2F0IHRleGVsU2l6ZSA9IDEuMCAvICggMy4wICogY3ViZVVWX21heFRpbGVTaXplICk7XG5cdFx0dmVjMiB1diA9IGdldFVWKCBkaXJlY3Rpb24sIGZhY2UgKSAqICggZmFjZVNpemUgLSAxLjAgKTtcblx0XHR2ZWMyIGYgPSBmcmFjdCggdXYgKTtcblx0XHR1diArPSAwLjUgLSBmO1xuXHRcdGlmICggZmFjZSA+IDIuMCApIHtcblx0XHRcdHV2LnkgKz0gZmFjZVNpemU7XG5cdFx0XHRmYWNlIC09IDMuMDtcblx0XHR9XG5cdFx0dXYueCArPSBmYWNlICogZmFjZVNpemU7XG5cdFx0aWYgKCBtaXBJbnQgPCBjdWJlVVZfbWF4TWlwTGV2ZWwgKSB7XG5cdFx0XHR1di55ICs9IDIuMCAqIGN1YmVVVl9tYXhUaWxlU2l6ZTtcblx0XHR9XG5cdFx0dXYueSArPSBmaWx0ZXJJbnQgKiAyLjAgKiBjdWJlVVZfbWluVGlsZVNpemU7XG5cdFx0dXYueCArPSAzLjAgKiBtYXgoIDAuMCwgY3ViZVVWX21heFRpbGVTaXplIC0gMi4wICogZmFjZVNpemUgKTtcblx0XHR1diAqPSB0ZXhlbFNpemU7XG5cdFx0dmVjMyB0bCA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCggZW52TWFwLCB1diApICkucmdiO1xuXHRcdHV2LnggKz0gdGV4ZWxTaXplO1xuXHRcdHZlYzMgdHIgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCB0ZXh0dXJlMkQoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHR1di55ICs9IHRleGVsU2l6ZTtcblx0XHR2ZWMzIGJyID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEKCBlbnZNYXAsIHV2ICkgKS5yZ2I7XG5cdFx0dXYueCAtPSB0ZXhlbFNpemU7XG5cdFx0dmVjMyBibCA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCggZW52TWFwLCB1diApICkucmdiO1xuXHRcdHZlYzMgdG0gPSBtaXgoIHRsLCB0ciwgZi54ICk7XG5cdFx0dmVjMyBibSA9IG1peCggYmwsIGJyLCBmLnggKTtcblx0XHRyZXR1cm4gbWl4KCB0bSwgYm0sIGYueSApO1xuXHR9XG5cdCNkZWZpbmUgcjAgMS4wXG5cdCNkZWZpbmUgdjAgMC4zMzlcblx0I2RlZmluZSBtMCAtIDIuMFxuXHQjZGVmaW5lIHIxIDAuOFxuXHQjZGVmaW5lIHYxIDAuMjc2XG5cdCNkZWZpbmUgbTEgLSAxLjBcblx0I2RlZmluZSByNCAwLjRcblx0I2RlZmluZSB2NCAwLjA0NlxuXHQjZGVmaW5lIG00IDIuMFxuXHQjZGVmaW5lIHI1IDAuMzA1XG5cdCNkZWZpbmUgdjUgMC4wMTZcblx0I2RlZmluZSBtNSAzLjBcblx0I2RlZmluZSByNiAwLjIxXG5cdCNkZWZpbmUgdjYgMC4wMDM4XG5cdCNkZWZpbmUgbTYgNC4wXG5cdGZsb2F0IHJvdWdobmVzc1RvTWlwKCBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdFx0ZmxvYXQgbWlwID0gMC4wO1xuXHRcdGlmICggcm91Z2huZXNzID49IHIxICkge1xuXHRcdFx0bWlwID0gKCByMCAtIHJvdWdobmVzcyApICogKCBtMSAtIG0wICkgLyAoIHIwIC0gcjEgKSArIG0wO1xuXHRcdH0gZWxzZSBpZiAoIHJvdWdobmVzcyA+PSByNCApIHtcblx0XHRcdG1pcCA9ICggcjEgLSByb3VnaG5lc3MgKSAqICggbTQgLSBtMSApIC8gKCByMSAtIHI0ICkgKyBtMTtcblx0XHR9IGVsc2UgaWYgKCByb3VnaG5lc3MgPj0gcjUgKSB7XG5cdFx0XHRtaXAgPSAoIHI0IC0gcm91Z2huZXNzICkgKiAoIG01IC0gbTQgKSAvICggcjQgLSByNSApICsgbTQ7XG5cdFx0fSBlbHNlIGlmICggcm91Z2huZXNzID49IHI2ICkge1xuXHRcdFx0bWlwID0gKCByNSAtIHJvdWdobmVzcyApICogKCBtNiAtIG01ICkgLyAoIHI1IC0gcjYgKSArIG01O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtaXAgPSAtIDIuMCAqIGxvZzIoIDEuMTYgKiByb3VnaG5lc3MgKTtcdFx0fVxuXHRcdHJldHVybiBtaXA7XG5cdH1cblx0dmVjNCB0ZXh0dXJlQ3ViZVVWKCBzYW1wbGVyMkQgZW52TWFwLCB2ZWMzIHNhbXBsZURpciwgZmxvYXQgcm91Z2huZXNzICkge1xuXHRcdGZsb2F0IG1pcCA9IGNsYW1wKCByb3VnaG5lc3NUb01pcCggcm91Z2huZXNzICksIG0wLCBjdWJlVVZfbWF4TWlwTGV2ZWwgKTtcblx0XHRmbG9hdCBtaXBGID0gZnJhY3QoIG1pcCApO1xuXHRcdGZsb2F0IG1pcEludCA9IGZsb29yKCBtaXAgKTtcblx0XHR2ZWMzIGNvbG9yMCA9IGJpbGluZWFyQ3ViZVVWKCBlbnZNYXAsIHNhbXBsZURpciwgbWlwSW50ICk7XG5cdFx0aWYgKCBtaXBGID09IDAuMCApIHtcblx0XHRcdHJldHVybiB2ZWM0KCBjb2xvcjAsIDEuMCApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR2ZWMzIGNvbG9yMSA9IGJpbGluZWFyQ3ViZVVWKCBlbnZNYXAsIHNhbXBsZURpciwgbWlwSW50ICsgMS4wICk7XG5cdFx0XHRyZXR1cm4gdmVjNCggbWl4KCBjb2xvcjAsIGNvbG9yMSwgbWlwRiApLCAxLjAgKTtcblx0XHR9XG5cdH1cbiNlbmRpZiIsZGVmYXVsdG5vcm1hbF92ZXJ0ZXg6InZlYzMgdHJhbnNmb3JtZWROb3JtYWwgPSBvYmplY3ROb3JtYWw7XG4jaWZkZWYgVVNFX0lOU1RBTkNJTkdcblx0bWF0MyBtID0gbWF0MyggaW5zdGFuY2VNYXRyaXggKTtcblx0dHJhbnNmb3JtZWROb3JtYWwgLz0gdmVjMyggZG90KCBtWyAwIF0sIG1bIDAgXSApLCBkb3QoIG1bIDEgXSwgbVsgMSBdICksIGRvdCggbVsgMiBdLCBtWyAyIF0gKSApO1xuXHR0cmFuc2Zvcm1lZE5vcm1hbCA9IG0gKiB0cmFuc2Zvcm1lZE5vcm1hbDtcbiNlbmRpZlxudHJhbnNmb3JtZWROb3JtYWwgPSBub3JtYWxNYXRyaXggKiB0cmFuc2Zvcm1lZE5vcm1hbDtcbiNpZmRlZiBGTElQX1NJREVEXG5cdHRyYW5zZm9ybWVkTm9ybWFsID0gLSB0cmFuc2Zvcm1lZE5vcm1hbDtcbiNlbmRpZlxuI2lmZGVmIFVTRV9UQU5HRU5UXG5cdHZlYzMgdHJhbnNmb3JtZWRUYW5nZW50ID0gKCBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBvYmplY3RUYW5nZW50LCAwLjAgKSApLnh5ejtcblx0I2lmZGVmIEZMSVBfU0lERURcblx0XHR0cmFuc2Zvcm1lZFRhbmdlbnQgPSAtIHRyYW5zZm9ybWVkVGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWYiLGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgZGlzcGxhY2VtZW50TWFwO1xuXHR1bmlmb3JtIGZsb2F0IGRpc3BsYWNlbWVudFNjYWxlO1xuXHR1bmlmb3JtIGZsb2F0IGRpc3BsYWNlbWVudEJpYXM7XG4jZW5kaWYiLGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg6IiNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQXG5cdHRyYW5zZm9ybWVkICs9IG5vcm1hbGl6ZSggb2JqZWN0Tm9ybWFsICkgKiAoIHRleHR1cmUyRCggZGlzcGxhY2VtZW50TWFwLCB2VXYgKS54ICogZGlzcGxhY2VtZW50U2NhbGUgKyBkaXNwbGFjZW1lbnRCaWFzICk7XG4jZW5kaWYiLGVtaXNzaXZlbWFwX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0VNSVNTSVZFTUFQXG5cdHZlYzQgZW1pc3NpdmVDb2xvciA9IHRleHR1cmUyRCggZW1pc3NpdmVNYXAsIHZVdiApO1xuXHRlbWlzc2l2ZUNvbG9yLnJnYiA9IGVtaXNzaXZlTWFwVGV4ZWxUb0xpbmVhciggZW1pc3NpdmVDb2xvciApLnJnYjtcblx0dG90YWxFbWlzc2l2ZVJhZGlhbmNlICo9IGVtaXNzaXZlQ29sb3IucmdiO1xuI2VuZGlmIixlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0VNSVNTSVZFTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGVtaXNzaXZlTWFwO1xuI2VuZGlmIixlbmNvZGluZ3NfZnJhZ21lbnQ6ImdsX0ZyYWdDb2xvciA9IGxpbmVhclRvT3V0cHV0VGV4ZWwoIGdsX0ZyYWdDb2xvciApOyIsZW5jb2RpbmdzX3BhcnNfZnJhZ21lbnQ6IlxudmVjNCBMaW5lYXJUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSApIHtcblx0cmV0dXJuIHZhbHVlO1xufVxudmVjNCBHYW1tYVRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlLCBpbiBmbG9hdCBnYW1tYUZhY3RvciApIHtcblx0cmV0dXJuIHZlYzQoIHBvdyggdmFsdWUucmdiLCB2ZWMzKCBnYW1tYUZhY3RvciApICksIHZhbHVlLmEgKTtcbn1cbnZlYzQgTGluZWFyVG9HYW1tYSggaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgZ2FtbWFGYWN0b3IgKSB7XG5cdHJldHVybiB2ZWM0KCBwb3coIHZhbHVlLnJnYiwgdmVjMyggMS4wIC8gZ2FtbWFGYWN0b3IgKSApLCB2YWx1ZS5hICk7XG59XG52ZWM0IHNSR0JUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSApIHtcblx0cmV0dXJuIHZlYzQoIG1peCggcG93KCB2YWx1ZS5yZ2IgKiAwLjk0Nzg2NzI5ODYgKyB2ZWMzKCAwLjA1MjEzMjcwMTQgKSwgdmVjMyggMi40ICkgKSwgdmFsdWUucmdiICogMC4wNzczOTkzODA4LCB2ZWMzKCBsZXNzVGhhbkVxdWFsKCB2YWx1ZS5yZ2IsIHZlYzMoIDAuMDQwNDUgKSApICkgKSwgdmFsdWUuYSApO1xufVxudmVjNCBMaW5lYXJUb3NSR0IoIGluIHZlYzQgdmFsdWUgKSB7XG5cdHJldHVybiB2ZWM0KCBtaXgoIHBvdyggdmFsdWUucmdiLCB2ZWMzKCAwLjQxNjY2ICkgKSAqIDEuMDU1IC0gdmVjMyggMC4wNTUgKSwgdmFsdWUucmdiICogMTIuOTIsIHZlYzMoIGxlc3NUaGFuRXF1YWwoIHZhbHVlLnJnYiwgdmVjMyggMC4wMDMxMzA4ICkgKSApICksIHZhbHVlLmEgKTtcbn1cbnZlYzQgUkdCRVRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlICkge1xuXHRyZXR1cm4gdmVjNCggdmFsdWUucmdiICogZXhwMiggdmFsdWUuYSAqIDI1NS4wIC0gMTI4LjAgKSwgMS4wICk7XG59XG52ZWM0IExpbmVhclRvUkdCRSggaW4gdmVjNCB2YWx1ZSApIHtcblx0ZmxvYXQgbWF4Q29tcG9uZW50ID0gbWF4KCBtYXgoIHZhbHVlLnIsIHZhbHVlLmcgKSwgdmFsdWUuYiApO1xuXHRmbG9hdCBmRXhwID0gY2xhbXAoIGNlaWwoIGxvZzIoIG1heENvbXBvbmVudCApICksIC0xMjguMCwgMTI3LjAgKTtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAvIGV4cDIoIGZFeHAgKSwgKCBmRXhwICsgMTI4LjAgKSAvIDI1NS4wICk7XG59XG52ZWM0IFJHQk1Ub0xpbmVhciggaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgbWF4UmFuZ2UgKSB7XG5cdHJldHVybiB2ZWM0KCB2YWx1ZS5yZ2IgKiB2YWx1ZS5hICogbWF4UmFuZ2UsIDEuMCApO1xufVxudmVjNCBMaW5lYXJUb1JHQk0oIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IG1heFJhbmdlICkge1xuXHRmbG9hdCBtYXhSR0IgPSBtYXgoIHZhbHVlLnIsIG1heCggdmFsdWUuZywgdmFsdWUuYiApICk7XG5cdGZsb2F0IE0gPSBjbGFtcCggbWF4UkdCIC8gbWF4UmFuZ2UsIDAuMCwgMS4wICk7XG5cdE0gPSBjZWlsKCBNICogMjU1LjAgKSAvIDI1NS4wO1xuXHRyZXR1cm4gdmVjNCggdmFsdWUucmdiIC8gKCBNICogbWF4UmFuZ2UgKSwgTSApO1xufVxudmVjNCBSR0JEVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IG1heFJhbmdlICkge1xuXHRyZXR1cm4gdmVjNCggdmFsdWUucmdiICogKCAoIG1heFJhbmdlIC8gMjU1LjAgKSAvIHZhbHVlLmEgKSwgMS4wICk7XG59XG52ZWM0IExpbmVhclRvUkdCRCggaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgbWF4UmFuZ2UgKSB7XG5cdGZsb2F0IG1heFJHQiA9IG1heCggdmFsdWUuciwgbWF4KCB2YWx1ZS5nLCB2YWx1ZS5iICkgKTtcblx0ZmxvYXQgRCA9IG1heCggbWF4UmFuZ2UgLyBtYXhSR0IsIDEuMCApO1xuXHREID0gY2xhbXAoIGZsb29yKCBEICkgLyAyNTUuMCwgMC4wLCAxLjAgKTtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAqICggRCAqICggMjU1LjAgLyBtYXhSYW5nZSApICksIEQgKTtcbn1cbmNvbnN0IG1hdDMgY0xvZ0x1dk0gPSBtYXQzKCAwLjIyMDksIDAuMzM5MCwgMC40MTg0LCAwLjExMzgsIDAuNjc4MCwgMC43MzE5LCAwLjAxMDIsIDAuMTEzMCwgMC4yOTY5ICk7XG52ZWM0IExpbmVhclRvTG9nTHV2KCBpbiB2ZWM0IHZhbHVlICkge1xuXHR2ZWMzIFhwX1lfWFlacCA9IGNMb2dMdXZNICogdmFsdWUucmdiO1xuXHRYcF9ZX1hZWnAgPSBtYXgoIFhwX1lfWFlacCwgdmVjMyggMWUtNiwgMWUtNiwgMWUtNiApICk7XG5cdHZlYzQgdlJlc3VsdDtcblx0dlJlc3VsdC54eSA9IFhwX1lfWFlacC54eSAvIFhwX1lfWFlacC56O1xuXHRmbG9hdCBMZSA9IDIuMCAqIGxvZzIoWHBfWV9YWVpwLnkpICsgMTI3LjA7XG5cdHZSZXN1bHQudyA9IGZyYWN0KCBMZSApO1xuXHR2UmVzdWx0LnogPSAoIExlIC0gKCBmbG9vciggdlJlc3VsdC53ICogMjU1LjAgKSApIC8gMjU1LjAgKSAvIDI1NS4wO1xuXHRyZXR1cm4gdlJlc3VsdDtcbn1cbmNvbnN0IG1hdDMgY0xvZ0x1dkludmVyc2VNID0gbWF0MyggNi4wMDE0LCAtMi43MDA4LCAtMS43OTk2LCAtMS4zMzIwLCAzLjEwMjksIC01Ljc3MjEsIDAuMzAwOCwgLTEuMDg4MiwgNS42MjY4ICk7XG52ZWM0IExvZ0x1dlRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlICkge1xuXHRmbG9hdCBMZSA9IHZhbHVlLnogKiAyNTUuMCArIHZhbHVlLnc7XG5cdHZlYzMgWHBfWV9YWVpwO1xuXHRYcF9ZX1hZWnAueSA9IGV4cDIoICggTGUgLSAxMjcuMCApIC8gMi4wICk7XG5cdFhwX1lfWFlacC56ID0gWHBfWV9YWVpwLnkgLyB2YWx1ZS55O1xuXHRYcF9ZX1hZWnAueCA9IHZhbHVlLnggKiBYcF9ZX1hZWnAuejtcblx0dmVjMyB2UkdCID0gY0xvZ0x1dkludmVyc2VNICogWHBfWV9YWVpwLnJnYjtcblx0cmV0dXJuIHZlYzQoIG1heCggdlJHQiwgMC4wICksIDEuMCApO1xufSIsZW52bWFwX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0VOVk1BUFxuXHQjaWZkZWYgRU5WX1dPUkxEUE9TXG5cdFx0dmVjMyBjYW1lcmFUb0ZyYWc7XG5cdFx0aWYgKCBpc09ydGhvZ3JhcGhpYyApIHtcblx0XHRcdGNhbWVyYVRvRnJhZyA9IG5vcm1hbGl6ZSggdmVjMyggLSB2aWV3TWF0cml4WyAwIF1bIDIgXSwgLSB2aWV3TWF0cml4WyAxIF1bIDIgXSwgLSB2aWV3TWF0cml4WyAyIF1bIDIgXSApICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNhbWVyYVRvRnJhZyA9IG5vcm1hbGl6ZSggdldvcmxkUG9zaXRpb24gLSBjYW1lcmFQb3NpdGlvbiApO1xuXHRcdH1cblx0XHR2ZWMzIHdvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggbm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdFx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRkxFQ1RJT05cblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZmxlY3QoIGNhbWVyYVRvRnJhZywgd29ybGROb3JtYWwgKTtcblx0XHQjZWxzZVxuXHRcdFx0dmVjMyByZWZsZWN0VmVjID0gcmVmcmFjdCggY2FtZXJhVG9GcmFnLCB3b3JsZE5vcm1hbCwgcmVmcmFjdGlvblJhdGlvICk7XG5cdFx0I2VuZGlmXG5cdCNlbHNlXG5cdFx0dmVjMyByZWZsZWN0VmVjID0gdlJlZmxlY3Q7XG5cdCNlbmRpZlxuXHQjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRVxuXHRcdHZlYzQgZW52Q29sb3IgPSB0ZXh0dXJlQ3ViZSggZW52TWFwLCB2ZWMzKCBmbGlwRW52TWFwICogcmVmbGVjdFZlYy54LCByZWZsZWN0VmVjLnl6ICkgKTtcblx0I2VsaWYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApXG5cdFx0dmVjNCBlbnZDb2xvciA9IHRleHR1cmVDdWJlVVYoIGVudk1hcCwgcmVmbGVjdFZlYywgMC4wICk7XG5cdCNlbHNlXG5cdFx0dmVjNCBlbnZDb2xvciA9IHZlYzQoIDAuMCApO1xuXHQjZW5kaWZcblx0I2lmbmRlZiBFTlZNQVBfVFlQRV9DVUJFX1VWXG5cdFx0ZW52Q29sb3IgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCBlbnZDb2xvciApO1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVk1BUF9CTEVORElOR19NVUxUSVBMWVxuXHRcdG91dGdvaW5nTGlnaHQgPSBtaXgoIG91dGdvaW5nTGlnaHQsIG91dGdvaW5nTGlnaHQgKiBlbnZDb2xvci54eXosIHNwZWN1bGFyU3RyZW5ndGggKiByZWZsZWN0aXZpdHkgKTtcblx0I2VsaWYgZGVmaW5lZCggRU5WTUFQX0JMRU5ESU5HX01JWCApXG5cdFx0b3V0Z29pbmdMaWdodCA9IG1peCggb3V0Z29pbmdMaWdodCwgZW52Q29sb3IueHl6LCBzcGVjdWxhclN0cmVuZ3RoICogcmVmbGVjdGl2aXR5ICk7XG5cdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9CTEVORElOR19BREQgKVxuXHRcdG91dGdvaW5nTGlnaHQgKz0gZW52Q29sb3IueHl6ICogc3BlY3VsYXJTdHJlbmd0aCAqIHJlZmxlY3Rpdml0eTtcblx0I2VuZGlmXG4jZW5kaWYiLGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0dW5pZm9ybSBmbG9hdCBlbnZNYXBJbnRlbnNpdHk7XG5cdHVuaWZvcm0gZmxvYXQgZmxpcEVudk1hcDtcblx0dW5pZm9ybSBpbnQgbWF4TWlwTGV2ZWw7XG5cdCNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFXG5cdFx0dW5pZm9ybSBzYW1wbGVyQ3ViZSBlbnZNYXA7XG5cdCNlbHNlXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgZW52TWFwO1xuXHQjZW5kaWZcblx0XG4jZW5kaWYiLGVudm1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0VOVk1BUFxuXHR1bmlmb3JtIGZsb2F0IHJlZmxlY3Rpdml0eTtcblx0I2lmIGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVVNFX05PUk1BTE1BUCApIHx8IGRlZmluZWQoIFBIT05HIClcblx0XHQjZGVmaW5lIEVOVl9XT1JMRFBPU1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdHZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcblx0XHR1bmlmb3JtIGZsb2F0IHJlZnJhY3Rpb25SYXRpbztcblx0I2Vsc2Vcblx0XHR2YXJ5aW5nIHZlYzMgdlJlZmxlY3Q7XG5cdCNlbmRpZlxuI2VuZGlmIixlbnZtYXBfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdCNpZiBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFVTRV9OT1JNQUxNQVAgKSB8fGRlZmluZWQoIFBIT05HIClcblx0XHQjZGVmaW5lIEVOVl9XT1JMRFBPU1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdFxuXHRcdHZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcblx0I2Vsc2Vcblx0XHR2YXJ5aW5nIHZlYzMgdlJlZmxlY3Q7XG5cdFx0dW5pZm9ybSBmbG9hdCByZWZyYWN0aW9uUmF0aW87XG5cdCNlbmRpZlxuI2VuZGlmIixlbnZtYXBfcGh5c2ljYWxfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKVxuXHQjaWZkZWYgRU5WTUFQX01PREVfUkVGUkFDVElPTlxuXHRcdHVuaWZvcm0gZmxvYXQgcmVmcmFjdGlvblJhdGlvO1xuXHQjZW5kaWZcblx0dmVjMyBnZXRMaWdodFByb2JlSW5kaXJlY3RJcnJhZGlhbmNlKCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBpbnQgbWF4TUlQTGV2ZWwgKSB7XG5cdFx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIGdlb21ldHJ5Lm5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRcdCNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFXG5cdFx0XHR2ZWMzIHF1ZXJ5VmVjID0gdmVjMyggZmxpcEVudk1hcCAqIHdvcmxkTm9ybWFsLngsIHdvcmxkTm9ybWFsLnl6ICk7XG5cdFx0XHQjaWZkZWYgVEVYVFVSRV9MT0RfRVhUXG5cdFx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZUxvZEVYVCggZW52TWFwLCBxdWVyeVZlYywgZmxvYXQoIG1heE1JUExldmVsICkgKTtcblx0XHRcdCNlbHNlXG5cdFx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZSggZW52TWFwLCBxdWVyeVZlYywgZmxvYXQoIG1heE1JUExldmVsICkgKTtcblx0XHRcdCNlbmRpZlxuXHRcdFx0ZW52TWFwQ29sb3IucmdiID0gZW52TWFwVGV4ZWxUb0xpbmVhciggZW52TWFwQ29sb3IgKS5yZ2I7XG5cdFx0I2VsaWYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApXG5cdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmVVViggZW52TWFwLCB3b3JsZE5vcm1hbCwgMS4wICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB2ZWM0KCAwLjAgKTtcblx0XHQjZW5kaWZcblx0XHRyZXR1cm4gUEkgKiBlbnZNYXBDb2xvci5yZ2IgKiBlbnZNYXBJbnRlbnNpdHk7XG5cdH1cblx0ZmxvYXQgZ2V0U3BlY3VsYXJNSVBMZXZlbCggY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiBpbnQgbWF4TUlQTGV2ZWwgKSB7XG5cdFx0ZmxvYXQgbWF4TUlQTGV2ZWxTY2FsYXIgPSBmbG9hdCggbWF4TUlQTGV2ZWwgKTtcblx0XHRmbG9hdCBzaWdtYSA9IFBJICogcm91Z2huZXNzICogcm91Z2huZXNzIC8gKCAxLjAgKyByb3VnaG5lc3MgKTtcblx0XHRmbG9hdCBkZXNpcmVkTUlQTGV2ZWwgPSBtYXhNSVBMZXZlbFNjYWxhciArIGxvZzIoIHNpZ21hICk7XG5cdFx0cmV0dXJuIGNsYW1wKCBkZXNpcmVkTUlQTGV2ZWwsIDAuMCwgbWF4TUlQTGV2ZWxTY2FsYXIgKTtcblx0fVxuXHR2ZWMzIGdldExpZ2h0UHJvYmVJbmRpcmVjdFJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIGludCBtYXhNSVBMZXZlbCApIHtcblx0XHQjaWZkZWYgRU5WTUFQX01PREVfUkVGTEVDVElPTlxuXHRcdFx0dmVjMyByZWZsZWN0VmVjID0gcmVmbGVjdCggLXZpZXdEaXIsIG5vcm1hbCApO1xuXHRcdFx0cmVmbGVjdFZlYyA9IG5vcm1hbGl6ZSggbWl4KCByZWZsZWN0VmVjLCBub3JtYWwsIHJvdWdobmVzcyAqIHJvdWdobmVzcykgKTtcblx0XHQjZWxzZVxuXHRcdFx0dmVjMyByZWZsZWN0VmVjID0gcmVmcmFjdCggLXZpZXdEaXIsIG5vcm1hbCwgcmVmcmFjdGlvblJhdGlvICk7XG5cdFx0I2VuZGlmXG5cdFx0cmVmbGVjdFZlYyA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIHJlZmxlY3RWZWMsIHZpZXdNYXRyaXggKTtcblx0XHRmbG9hdCBzcGVjdWxhck1JUExldmVsID0gZ2V0U3BlY3VsYXJNSVBMZXZlbCggcm91Z2huZXNzLCBtYXhNSVBMZXZlbCApO1xuXHRcdCNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFXG5cdFx0XHR2ZWMzIHF1ZXJ5UmVmbGVjdFZlYyA9IHZlYzMoIGZsaXBFbnZNYXAgKiByZWZsZWN0VmVjLngsIHJlZmxlY3RWZWMueXogKTtcblx0XHRcdCNpZmRlZiBURVhUVVJFX0xPRF9FWFRcblx0XHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlTG9kRVhUKCBlbnZNYXAsIHF1ZXJ5UmVmbGVjdFZlYywgc3BlY3VsYXJNSVBMZXZlbCApO1xuXHRcdFx0I2Vsc2Vcblx0XHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlKCBlbnZNYXAsIHF1ZXJ5UmVmbGVjdFZlYywgc3BlY3VsYXJNSVBMZXZlbCApO1xuXHRcdFx0I2VuZGlmXG5cdFx0XHRlbnZNYXBDb2xvci5yZ2IgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCBlbnZNYXBDb2xvciApLnJnYjtcblx0XHQjZWxpZiBkZWZpbmVkKCBFTlZNQVBfVFlQRV9DVUJFX1VWIClcblx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZVVWKCBlbnZNYXAsIHJlZmxlY3RWZWMsIHJvdWdobmVzcyApO1xuXHRcdCNlbmRpZlxuXHRcdHJldHVybiBlbnZNYXBDb2xvci5yZ2IgKiBlbnZNYXBJbnRlbnNpdHk7XG5cdH1cbiNlbmRpZiIsZW52bWFwX3ZlcnRleDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdHZXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbi54eXo7XG5cdCNlbHNlXG5cdFx0dmVjMyBjYW1lcmFUb1ZlcnRleDtcblx0XHRpZiAoIGlzT3J0aG9ncmFwaGljICkge1xuXHRcdFx0Y2FtZXJhVG9WZXJ0ZXggPSBub3JtYWxpemUoIHZlYzMoIC0gdmlld01hdHJpeFsgMCBdWyAyIF0sIC0gdmlld01hdHJpeFsgMSBdWyAyIF0sIC0gdmlld01hdHJpeFsgMiBdWyAyIF0gKSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjYW1lcmFUb1ZlcnRleCA9IG5vcm1hbGl6ZSggd29ybGRQb3NpdGlvbi54eXogLSBjYW1lcmFQb3NpdGlvbiApO1xuXHRcdH1cblx0XHR2ZWMzIHdvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggdHJhbnNmb3JtZWROb3JtYWwsIHZpZXdNYXRyaXggKTtcblx0XHQjaWZkZWYgRU5WTUFQX01PREVfUkVGTEVDVElPTlxuXHRcdFx0dlJlZmxlY3QgPSByZWZsZWN0KCBjYW1lcmFUb1ZlcnRleCwgd29ybGROb3JtYWwgKTtcblx0XHQjZWxzZVxuXHRcdFx0dlJlZmxlY3QgPSByZWZyYWN0KCBjYW1lcmFUb1ZlcnRleCwgd29ybGROb3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApO1xuXHRcdCNlbmRpZlxuXHQjZW5kaWZcbiNlbmRpZiIsZm9nX3ZlcnRleDoiI2lmZGVmIFVTRV9GT0dcblx0Zm9nRGVwdGggPSAtIG12UG9zaXRpb24uejtcbiNlbmRpZiIsZm9nX3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX0ZPR1xuXHR2YXJ5aW5nIGZsb2F0IGZvZ0RlcHRoO1xuI2VuZGlmIixmb2dfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRk9HXG5cdCNpZmRlZiBGT0dfRVhQMlxuXHRcdGZsb2F0IGZvZ0ZhY3RvciA9IDEuMCAtIGV4cCggLSBmb2dEZW5zaXR5ICogZm9nRGVuc2l0eSAqIGZvZ0RlcHRoICogZm9nRGVwdGggKTtcblx0I2Vsc2Vcblx0XHRmbG9hdCBmb2dGYWN0b3IgPSBzbW9vdGhzdGVwKCBmb2dOZWFyLCBmb2dGYXIsIGZvZ0RlcHRoICk7XG5cdCNlbmRpZlxuXHRnbF9GcmFnQ29sb3IucmdiID0gbWl4KCBnbF9GcmFnQ29sb3IucmdiLCBmb2dDb2xvciwgZm9nRmFjdG9yICk7XG4jZW5kaWYiLGZvZ19wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0ZPR1xuXHR1bmlmb3JtIHZlYzMgZm9nQ29sb3I7XG5cdHZhcnlpbmcgZmxvYXQgZm9nRGVwdGg7XG5cdCNpZmRlZiBGT0dfRVhQMlxuXHRcdHVuaWZvcm0gZmxvYXQgZm9nRGVuc2l0eTtcblx0I2Vsc2Vcblx0XHR1bmlmb3JtIGZsb2F0IGZvZ05lYXI7XG5cdFx0dW5pZm9ybSBmbG9hdCBmb2dGYXI7XG5cdCNlbmRpZlxuI2VuZGlmIixncmFkaWVudG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0dSQURJRU5UTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGdyYWRpZW50TWFwO1xuI2VuZGlmXG52ZWMzIGdldEdyYWRpZW50SXJyYWRpYW5jZSggdmVjMyBub3JtYWwsIHZlYzMgbGlnaHREaXJlY3Rpb24gKSB7XG5cdGZsb2F0IGRvdE5MID0gZG90KCBub3JtYWwsIGxpZ2h0RGlyZWN0aW9uICk7XG5cdHZlYzIgY29vcmQgPSB2ZWMyKCBkb3ROTCAqIDAuNSArIDAuNSwgMC4wICk7XG5cdCNpZmRlZiBVU0VfR1JBRElFTlRNQVBcblx0XHRyZXR1cm4gdGV4dHVyZTJEKCBncmFkaWVudE1hcCwgY29vcmQgKS5yZ2I7XG5cdCNlbHNlXG5cdFx0cmV0dXJuICggY29vcmQueCA8IDAuNyApID8gdmVjMyggMC43ICkgOiB2ZWMzKCAxLjAgKTtcblx0I2VuZGlmXG59IixsaWdodG1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9MSUdIVE1BUFxuXHR2ZWM0IGxpZ2h0TWFwVGV4ZWw9IHRleHR1cmUyRCggbGlnaHRNYXAsIHZVdjIgKTtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IFBJICogbGlnaHRNYXBUZXhlbFRvTGluZWFyKCBsaWdodE1hcFRleGVsICkucmdiICogbGlnaHRNYXBJbnRlbnNpdHk7XG4jZW5kaWYiLGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTElHSFRNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbGlnaHRNYXA7XG5cdHVuaWZvcm0gZmxvYXQgbGlnaHRNYXBJbnRlbnNpdHk7XG4jZW5kaWYiLGxpZ2h0c19sYW1iZXJ0X3ZlcnRleDoidmVjMyBkaWZmdXNlID0gdmVjMyggMS4wICk7XG5HZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5O1xuZ2VvbWV0cnkucG9zaXRpb24gPSBtdlBvc2l0aW9uLnh5ejtcbmdlb21ldHJ5Lm5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcbmdlb21ldHJ5LnZpZXdEaXIgPSAoIGlzT3J0aG9ncmFwaGljICkgPyB2ZWMzKCAwLCAwLCAxICkgOiBub3JtYWxpemUoIC1tdlBvc2l0aW9uLnh5eiApO1xuR2VvbWV0cmljQ29udGV4dCBiYWNrR2VvbWV0cnk7XG5iYWNrR2VvbWV0cnkucG9zaXRpb24gPSBnZW9tZXRyeS5wb3NpdGlvbjtcbmJhY2tHZW9tZXRyeS5ub3JtYWwgPSAtZ2VvbWV0cnkubm9ybWFsO1xuYmFja0dlb21ldHJ5LnZpZXdEaXIgPSBnZW9tZXRyeS52aWV3RGlyO1xudkxpZ2h0RnJvbnQgPSB2ZWMzKCAwLjAgKTtcbnZJbmRpcmVjdEZyb250ID0gdmVjMyggMC4wICk7XG4jaWZkZWYgRE9VQkxFX1NJREVEXG5cdHZMaWdodEJhY2sgPSB2ZWMzKCAwLjAgKTtcblx0dkluZGlyZWN0QmFjayA9IHZlYzMoIDAuMCApO1xuI2VuZGlmXG5JbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0O1xuZmxvYXQgZG90Tkw7XG52ZWMzIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcbnZJbmRpcmVjdEZyb250ICs9IGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGFtYmllbnRMaWdodENvbG9yICk7XG52SW5kaXJlY3RGcm9udCArPSBnZXRMaWdodFByb2JlSXJyYWRpYW5jZSggbGlnaHRQcm9iZSwgZ2VvbWV0cnkgKTtcbiNpZmRlZiBET1VCTEVfU0lERURcblx0dkluZGlyZWN0QmFjayArPSBnZXRBbWJpZW50TGlnaHRJcnJhZGlhbmNlKCBhbWJpZW50TGlnaHRDb2xvciApO1xuXHR2SW5kaXJlY3RCYWNrICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBiYWNrR2VvbWV0cnkgKTtcbiNlbmRpZlxuI2lmIE5VTV9QT0lOVF9MSUdIVFMgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1BPSU5UX0xJR0hUUzsgaSArKyApIHtcblx0XHRnZXRQb2ludERpcmVjdExpZ2h0SXJyYWRpYW5jZSggcG9pbnRMaWdodHNbIGkgXSwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0ZG90TkwgPSBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICk7XG5cdFx0ZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlID0gUEkgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0XHR2TGlnaHRGcm9udCArPSBzYXR1cmF0ZSggZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0XHR2TGlnaHRCYWNrICs9IHNhdHVyYXRlKCAtZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjZW5kaWZcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgTlVNX1NQT1RfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUUzsgaSArKyApIHtcblx0XHRnZXRTcG90RGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBzcG90TGlnaHRzWyBpIF0sIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdGRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZSA9IFBJICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdFx0dkxpZ2h0RnJvbnQgKz0gc2F0dXJhdGUoIGRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdFx0dkxpZ2h0QmFjayArPSBzYXR1cmF0ZSggLWRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2VuZGlmXG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmIE5VTV9ESVJfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9ESVJfTElHSFRTOyBpICsrICkge1xuXHRcdGdldERpcmVjdGlvbmFsRGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBkaXJlY3Rpb25hbExpZ2h0c1sgaSBdLCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHRkb3ROTCA9IGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKTtcblx0XHRkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2UgPSBQSSAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHRcdHZMaWdodEZyb250ICs9IHNhdHVyYXRlKCBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHZMaWdodEJhY2sgKz0gc2F0dXJhdGUoIC1kb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNlbmRpZlxuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiBOVU1fSEVNSV9MSUdIVFMgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0hFTUlfTElHSFRTOyBpICsrICkge1xuXHRcdHZJbmRpcmVjdEZyb250ICs9IGdldEhlbWlzcGhlcmVMaWdodElycmFkaWFuY2UoIGhlbWlzcGhlcmVMaWdodHNbIGkgXSwgZ2VvbWV0cnkgKTtcblx0XHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0XHR2SW5kaXJlY3RCYWNrICs9IGdldEhlbWlzcGhlcmVMaWdodElycmFkaWFuY2UoIGhlbWlzcGhlcmVMaWdodHNbIGkgXSwgYmFja0dlb21ldHJ5ICk7XG5cdFx0I2VuZGlmXG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZiIsbGlnaHRzX3BhcnNfYmVnaW46InVuaWZvcm0gYm9vbCByZWNlaXZlU2hhZG93O1xudW5pZm9ybSB2ZWMzIGFtYmllbnRMaWdodENvbG9yO1xudW5pZm9ybSB2ZWMzIGxpZ2h0UHJvYmVbIDkgXTtcbnZlYzMgc2hHZXRJcnJhZGlhbmNlQXQoIGluIHZlYzMgbm9ybWFsLCBpbiB2ZWMzIHNoQ29lZmZpY2llbnRzWyA5IF0gKSB7XG5cdGZsb2F0IHggPSBub3JtYWwueCwgeSA9IG5vcm1hbC55LCB6ID0gbm9ybWFsLno7XG5cdHZlYzMgcmVzdWx0ID0gc2hDb2VmZmljaWVudHNbIDAgXSAqIDAuODg2MjI3O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDEgXSAqIDIuMCAqIDAuNTExNjY0ICogeTtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyAyIF0gKiAyLjAgKiAwLjUxMTY2NCAqIHo7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgMyBdICogMi4wICogMC41MTE2NjQgKiB4O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDQgXSAqIDIuMCAqIDAuNDI5MDQzICogeCAqIHk7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgNSBdICogMi4wICogMC40MjkwNDMgKiB5ICogejtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA2IF0gKiAoIDAuNzQzMTI1ICogeiAqIHogLSAwLjI0NzcwOCApO1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDcgXSAqIDIuMCAqIDAuNDI5MDQzICogeCAqIHo7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgOCBdICogMC40MjkwNDMgKiAoIHggKiB4IC0geSAqIHkgKTtcblx0cmV0dXJuIHJlc3VsdDtcbn1cbnZlYzMgZ2V0TGlnaHRQcm9iZUlycmFkaWFuY2UoIGNvbnN0IGluIHZlYzMgbGlnaHRQcm9iZVsgOSBdLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5ICkge1xuXHR2ZWMzIHdvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggZ2VvbWV0cnkubm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IHNoR2V0SXJyYWRpYW5jZUF0KCB3b3JsZE5vcm1hbCwgbGlnaHRQcm9iZSApO1xuXHRyZXR1cm4gaXJyYWRpYW5jZTtcbn1cbnZlYzMgZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gdmVjMyBhbWJpZW50TGlnaHRDb2xvciApIHtcblx0dmVjMyBpcnJhZGlhbmNlID0gYW1iaWVudExpZ2h0Q29sb3I7XG5cdCNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xuXHRcdGlycmFkaWFuY2UgKj0gUEk7XG5cdCNlbmRpZlxuXHRyZXR1cm4gaXJyYWRpYW5jZTtcbn1cbiNpZiBOVU1fRElSX0xJR0hUUyA+IDBcblx0c3RydWN0IERpcmVjdGlvbmFsTGlnaHQge1xuXHRcdHZlYzMgZGlyZWN0aW9uO1xuXHRcdHZlYzMgY29sb3I7XG5cdH07XG5cdHVuaWZvcm0gRGlyZWN0aW9uYWxMaWdodCBkaXJlY3Rpb25hbExpZ2h0c1sgTlVNX0RJUl9MSUdIVFMgXTtcblx0dm9pZCBnZXREaXJlY3Rpb25hbERpcmVjdExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gRGlyZWN0aW9uYWxMaWdodCBkaXJlY3Rpb25hbExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBvdXQgSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCApIHtcblx0XHRkaXJlY3RMaWdodC5jb2xvciA9IGRpcmVjdGlvbmFsTGlnaHQuY29sb3I7XG5cdFx0ZGlyZWN0TGlnaHQuZGlyZWN0aW9uID0gZGlyZWN0aW9uYWxMaWdodC5kaXJlY3Rpb247XG5cdFx0ZGlyZWN0TGlnaHQudmlzaWJsZSA9IHRydWU7XG5cdH1cbiNlbmRpZlxuI2lmIE5VTV9QT0lOVF9MSUdIVFMgPiAwXG5cdHN0cnVjdCBQb2ludExpZ2h0IHtcblx0XHR2ZWMzIHBvc2l0aW9uO1xuXHRcdHZlYzMgY29sb3I7XG5cdFx0ZmxvYXQgZGlzdGFuY2U7XG5cdFx0ZmxvYXQgZGVjYXk7XG5cdH07XG5cdHVuaWZvcm0gUG9pbnRMaWdodCBwb2ludExpZ2h0c1sgTlVNX1BPSU5UX0xJR0hUUyBdO1xuXHR2b2lkIGdldFBvaW50RGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBjb25zdCBpbiBQb2ludExpZ2h0IHBvaW50TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIG91dCBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0ICkge1xuXHRcdHZlYzMgbFZlY3RvciA9IHBvaW50TGlnaHQucG9zaXRpb24gLSBnZW9tZXRyeS5wb3NpdGlvbjtcblx0XHRkaXJlY3RMaWdodC5kaXJlY3Rpb24gPSBub3JtYWxpemUoIGxWZWN0b3IgKTtcblx0XHRmbG9hdCBsaWdodERpc3RhbmNlID0gbGVuZ3RoKCBsVmVjdG9yICk7XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgPSBwb2ludExpZ2h0LmNvbG9yO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yICo9IHB1bmN0dWFsTGlnaHRJbnRlbnNpdHlUb0lycmFkaWFuY2VGYWN0b3IoIGxpZ2h0RGlzdGFuY2UsIHBvaW50TGlnaHQuZGlzdGFuY2UsIHBvaW50TGlnaHQuZGVjYXkgKTtcblx0XHRkaXJlY3RMaWdodC52aXNpYmxlID0gKCBkaXJlY3RMaWdodC5jb2xvciAhPSB2ZWMzKCAwLjAgKSApO1xuXHR9XG4jZW5kaWZcbiNpZiBOVU1fU1BPVF9MSUdIVFMgPiAwXG5cdHN0cnVjdCBTcG90TGlnaHQge1xuXHRcdHZlYzMgcG9zaXRpb247XG5cdFx0dmVjMyBkaXJlY3Rpb247XG5cdFx0dmVjMyBjb2xvcjtcblx0XHRmbG9hdCBkaXN0YW5jZTtcblx0XHRmbG9hdCBkZWNheTtcblx0XHRmbG9hdCBjb25lQ29zO1xuXHRcdGZsb2F0IHBlbnVtYnJhQ29zO1xuXHR9O1xuXHR1bmlmb3JtIFNwb3RMaWdodCBzcG90TGlnaHRzWyBOVU1fU1BPVF9MSUdIVFMgXTtcblx0dm9pZCBnZXRTcG90RGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBjb25zdCBpbiBTcG90TGlnaHQgc3BvdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBvdXQgSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCApIHtcblx0XHR2ZWMzIGxWZWN0b3IgPSBzcG90TGlnaHQucG9zaXRpb24gLSBnZW9tZXRyeS5wb3NpdGlvbjtcblx0XHRkaXJlY3RMaWdodC5kaXJlY3Rpb24gPSBub3JtYWxpemUoIGxWZWN0b3IgKTtcblx0XHRmbG9hdCBsaWdodERpc3RhbmNlID0gbGVuZ3RoKCBsVmVjdG9yICk7XG5cdFx0ZmxvYXQgYW5nbGVDb3MgPSBkb3QoIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiwgc3BvdExpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGlmICggYW5nbGVDb3MgPiBzcG90TGlnaHQuY29uZUNvcyApIHtcblx0XHRcdGZsb2F0IHNwb3RFZmZlY3QgPSBzbW9vdGhzdGVwKCBzcG90TGlnaHQuY29uZUNvcywgc3BvdExpZ2h0LnBlbnVtYnJhQ29zLCBhbmdsZUNvcyApO1xuXHRcdFx0ZGlyZWN0TGlnaHQuY29sb3IgPSBzcG90TGlnaHQuY29sb3I7XG5cdFx0XHRkaXJlY3RMaWdodC5jb2xvciAqPSBzcG90RWZmZWN0ICogcHVuY3R1YWxMaWdodEludGVuc2l0eVRvSXJyYWRpYW5jZUZhY3RvciggbGlnaHREaXN0YW5jZSwgc3BvdExpZ2h0LmRpc3RhbmNlLCBzcG90TGlnaHQuZGVjYXkgKTtcblx0XHRcdGRpcmVjdExpZ2h0LnZpc2libGUgPSB0cnVlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRkaXJlY3RMaWdodC5jb2xvciA9IHZlYzMoIDAuMCApO1xuXHRcdFx0ZGlyZWN0TGlnaHQudmlzaWJsZSA9IGZhbHNlO1xuXHRcdH1cblx0fVxuI2VuZGlmXG4jaWYgTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwXG5cdHN0cnVjdCBSZWN0QXJlYUxpZ2h0IHtcblx0XHR2ZWMzIGNvbG9yO1xuXHRcdHZlYzMgcG9zaXRpb247XG5cdFx0dmVjMyBoYWxmV2lkdGg7XG5cdFx0dmVjMyBoYWxmSGVpZ2h0O1xuXHR9O1xuXHR1bmlmb3JtIHNhbXBsZXIyRCBsdGNfMTtcdHVuaWZvcm0gc2FtcGxlcjJEIGx0Y18yO1xuXHR1bmlmb3JtIFJlY3RBcmVhTGlnaHQgcmVjdEFyZWFMaWdodHNbIE5VTV9SRUNUX0FSRUFfTElHSFRTIF07XG4jZW5kaWZcbiNpZiBOVU1fSEVNSV9MSUdIVFMgPiAwXG5cdHN0cnVjdCBIZW1pc3BoZXJlTGlnaHQge1xuXHRcdHZlYzMgZGlyZWN0aW9uO1xuXHRcdHZlYzMgc2t5Q29sb3I7XG5cdFx0dmVjMyBncm91bmRDb2xvcjtcblx0fTtcblx0dW5pZm9ybSBIZW1pc3BoZXJlTGlnaHQgaGVtaXNwaGVyZUxpZ2h0c1sgTlVNX0hFTUlfTElHSFRTIF07XG5cdHZlYzMgZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gSGVtaXNwaGVyZUxpZ2h0IGhlbWlMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSApIHtcblx0XHRmbG9hdCBkb3ROTCA9IGRvdCggZ2VvbWV0cnkubm9ybWFsLCBoZW1pTGlnaHQuZGlyZWN0aW9uICk7XG5cdFx0ZmxvYXQgaGVtaURpZmZ1c2VXZWlnaHQgPSAwLjUgKiBkb3ROTCArIDAuNTtcblx0XHR2ZWMzIGlycmFkaWFuY2UgPSBtaXgoIGhlbWlMaWdodC5ncm91bmRDb2xvciwgaGVtaUxpZ2h0LnNreUNvbG9yLCBoZW1pRGlmZnVzZVdlaWdodCApO1xuXHRcdCNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xuXHRcdFx0aXJyYWRpYW5jZSAqPSBQSTtcblx0XHQjZW5kaWZcblx0XHRyZXR1cm4gaXJyYWRpYW5jZTtcblx0fVxuI2VuZGlmIixsaWdodHNfdG9vbl9mcmFnbWVudDoiVG9vbk1hdGVyaWFsIG1hdGVyaWFsO1xubWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYjsiLGxpZ2h0c190b29uX3BhcnNfZnJhZ21lbnQ6InZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcbiNlbmRpZlxuc3RydWN0IFRvb25NYXRlcmlhbCB7XG5cdHZlYzMgZGlmZnVzZUNvbG9yO1xufTtcbnZvaWQgUkVfRGlyZWN0X1Rvb24oIGNvbnN0IGluIEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFRvb25NYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGdldEdyYWRpZW50SXJyYWRpYW5jZSggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRpcnJhZGlhbmNlICo9IFBJO1xuXHQjZW5kaWZcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxudm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfVG9vbiggY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBUb29uTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcbn1cbiNkZWZpbmUgUkVfRGlyZWN0XHRcdFx0XHRSRV9EaXJlY3RfVG9vblxuI2RlZmluZSBSRV9JbmRpcmVjdERpZmZ1c2VcdFx0UkVfSW5kaXJlY3REaWZmdXNlX1Rvb25cbiNkZWZpbmUgTWF0ZXJpYWxfTGlnaHRQcm9iZUxPRCggbWF0ZXJpYWwgKVx0KDApIixsaWdodHNfcGhvbmdfZnJhZ21lbnQ6IkJsaW5uUGhvbmdNYXRlcmlhbCBtYXRlcmlhbDtcbm1hdGVyaWFsLmRpZmZ1c2VDb2xvciA9IGRpZmZ1c2VDb2xvci5yZ2I7XG5tYXRlcmlhbC5zcGVjdWxhckNvbG9yID0gc3BlY3VsYXI7XG5tYXRlcmlhbC5zcGVjdWxhclNoaW5pbmVzcyA9IHNoaW5pbmVzcztcbm1hdGVyaWFsLnNwZWN1bGFyU3RyZW5ndGggPSBzcGVjdWxhclN0cmVuZ3RoOyIsbGlnaHRzX3Bob25nX3BhcnNfZnJhZ21lbnQ6InZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcbiNlbmRpZlxuc3RydWN0IEJsaW5uUGhvbmdNYXRlcmlhbCB7XG5cdHZlYzMgZGlmZnVzZUNvbG9yO1xuXHR2ZWMzIHNwZWN1bGFyQ29sb3I7XG5cdGZsb2F0IHNwZWN1bGFyU2hpbmluZXNzO1xuXHRmbG9hdCBzcGVjdWxhclN0cmVuZ3RoO1xufTtcbnZvaWQgUkVfRGlyZWN0X0JsaW5uUGhvbmcoIGNvbnN0IGluIEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIEJsaW5uUGhvbmdNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdGZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSApO1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBkb3ROTCAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRpcnJhZGlhbmNlICo9IFBJO1xuXHQjZW5kaWZcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xuXHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBpcnJhZGlhbmNlICogQlJERl9TcGVjdWxhcl9CbGlublBob25nKCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IsIG1hdGVyaWFsLnNwZWN1bGFyU2hpbmluZXNzICkgKiBtYXRlcmlhbC5zcGVjdWxhclN0cmVuZ3RoO1xufVxudm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfQmxpbm5QaG9uZyggY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcbn1cbiNkZWZpbmUgUkVfRGlyZWN0XHRcdFx0XHRSRV9EaXJlY3RfQmxpbm5QaG9uZ1xuI2RlZmluZSBSRV9JbmRpcmVjdERpZmZ1c2VcdFx0UkVfSW5kaXJlY3REaWZmdXNlX0JsaW5uUGhvbmdcbiNkZWZpbmUgTWF0ZXJpYWxfTGlnaHRQcm9iZUxPRCggbWF0ZXJpYWwgKVx0KDApIixsaWdodHNfcGh5c2ljYWxfZnJhZ21lbnQ6IlBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWw7XG5tYXRlcmlhbC5kaWZmdXNlQ29sb3IgPSBkaWZmdXNlQ29sb3IucmdiICogKCAxLjAgLSBtZXRhbG5lc3NGYWN0b3IgKTtcbnZlYzMgZHh5ID0gbWF4KCBhYnMoIGRGZHgoIGdlb21ldHJ5Tm9ybWFsICkgKSwgYWJzKCBkRmR5KCBnZW9tZXRyeU5vcm1hbCApICkgKTtcbmZsb2F0IGdlb21ldHJ5Um91Z2huZXNzID0gbWF4KCBtYXgoIGR4eS54LCBkeHkueSApLCBkeHkueiApO1xubWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MgPSBtYXgoIHJvdWdobmVzc0ZhY3RvciwgMC4wNTI1ICk7bWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MgKz0gZ2VvbWV0cnlSb3VnaG5lc3M7XG5tYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcyA9IG1pbiggbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MsIDEuMCApO1xuI2lmZGVmIFJFRkxFQ1RJVklUWVxuXHQjaWZkZWYgU1BFQ1VMQVJcblx0XHR2ZWMzIHNwZWN1bGFySW50ZW5zaXR5RmFjdG9yID0gdmVjMyggc3BlY3VsYXJJbnRlbnNpdHkgKTtcblx0XHR2ZWMzIHNwZWN1bGFyVGludEZhY3RvciA9IHNwZWN1bGFyVGludDtcblx0XHQjaWZkZWYgVVNFX1NQRUNVTEFSSU5URU5TSVRZTUFQXG5cdFx0XHRzcGVjdWxhckludGVuc2l0eUZhY3RvciAqPSB0ZXh0dXJlMkQoIHNwZWN1bGFySW50ZW5zaXR5TWFwLCB2VXYgKS5hO1xuXHRcdCNlbmRpZlxuXHRcdCNpZmRlZiBVU0VfU1BFQ1VMQVJUSU5UTUFQXG5cdFx0XHRzcGVjdWxhclRpbnRGYWN0b3IgKj0gc3BlY3VsYXJUaW50TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEKCBzcGVjdWxhclRpbnRNYXAsIHZVdiApICkucmdiO1xuXHRcdCNlbmRpZlxuXHRcdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3JGOTAgPSBtaXgoIHNwZWN1bGFySW50ZW5zaXR5RmFjdG9yLCB2ZWMzKCAxLjAgKSwgbWV0YWxuZXNzRmFjdG9yICk7XG5cdCNlbHNlXG5cdFx0dmVjMyBzcGVjdWxhckludGVuc2l0eUZhY3RvciA9IHZlYzMoIDEuMCApO1xuXHRcdHZlYzMgc3BlY3VsYXJUaW50RmFjdG9yID0gdmVjMyggMS4wICk7XG5cdFx0bWF0ZXJpYWwuc3BlY3VsYXJDb2xvckY5MCA9IHZlYzMoIDEuMCApO1xuXHQjZW5kaWZcblx0bWF0ZXJpYWwuc3BlY3VsYXJDb2xvciA9IG1peCggbWluKCB2ZWMzKCBNQVhJTVVNX1NQRUNVTEFSX0NPRUZGSUNJRU5UICogcG93MiggcmVmbGVjdGl2aXR5ICkgKSAqIHNwZWN1bGFyVGludEZhY3RvciwgdmVjMyggMS4wICkgKSAqIHNwZWN1bGFySW50ZW5zaXR5RmFjdG9yLCBkaWZmdXNlQ29sb3IucmdiLCBtZXRhbG5lc3NGYWN0b3IgKTtcbiNlbHNlXG5cdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgPSBtaXgoIHZlYzMoIERFRkFVTFRfU1BFQ1VMQVJfQ09FRkZJQ0lFTlQgKSwgZGlmZnVzZUNvbG9yLnJnYiwgbWV0YWxuZXNzRmFjdG9yICk7XG5cdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3JGOTAgPSB2ZWMzKCAxLjAgKTtcbiNlbmRpZlxuI2lmZGVmIENMRUFSQ09BVFxuXHRtYXRlcmlhbC5jbGVhcmNvYXQgPSBjbGVhcmNvYXQ7XG5cdG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyA9IGNsZWFyY29hdFJvdWdobmVzcztcblx0I2lmZGVmIFVTRV9DTEVBUkNPQVRNQVBcblx0XHRtYXRlcmlhbC5jbGVhcmNvYXQgKj0gdGV4dHVyZTJEKCBjbGVhcmNvYXRNYXAsIHZVdiApLng7XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVBcblx0XHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKj0gdGV4dHVyZTJEKCBjbGVhcmNvYXRSb3VnaG5lc3NNYXAsIHZVdiApLnk7XG5cdCNlbmRpZlxuXHRtYXRlcmlhbC5jbGVhcmNvYXQgPSBzYXR1cmF0ZSggbWF0ZXJpYWwuY2xlYXJjb2F0ICk7XHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgPSBtYXgoIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgMC4wNTI1ICk7XG5cdG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyArPSBnZW9tZXRyeVJvdWdobmVzcztcblx0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzID0gbWluKCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIDEuMCApO1xuI2VuZGlmXG4jaWZkZWYgVVNFX1NIRUVOXG5cdG1hdGVyaWFsLnNoZWVuQ29sb3IgPSBzaGVlbjtcbiNlbmRpZiIsbGlnaHRzX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ6InN0cnVjdCBQaHlzaWNhbE1hdGVyaWFsIHtcblx0dmVjMyBkaWZmdXNlQ29sb3I7XG5cdGZsb2F0IHNwZWN1bGFyUm91Z2huZXNzO1xuXHR2ZWMzIHNwZWN1bGFyQ29sb3I7XG5cdHZlYzMgc3BlY3VsYXJDb2xvckY5MDtcbiNpZmRlZiBDTEVBUkNPQVRcblx0ZmxvYXQgY2xlYXJjb2F0O1xuXHRmbG9hdCBjbGVhcmNvYXRSb3VnaG5lc3M7XG4jZW5kaWZcbiNpZmRlZiBVU0VfU0hFRU5cblx0dmVjMyBzaGVlbkNvbG9yO1xuI2VuZGlmXG59O1xuI2RlZmluZSBNQVhJTVVNX1NQRUNVTEFSX0NPRUZGSUNJRU5UIDAuMTZcbiNkZWZpbmUgREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCAwLjA0XG5mbG9hdCBjbGVhcmNvYXRESFJBcHByb3goIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcywgY29uc3QgaW4gZmxvYXQgZG90TkwgKSB7XG5cdHJldHVybiBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UICsgKCAxLjAgLSBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UICkgKiAoIHBvdyggMS4wIC0gZG90TkwsIDUuMCApICogcG93KCAxLjAgLSByb3VnaG5lc3MsIDIuMCApICk7XG59XG4jaWYgTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwXG5cdHZvaWQgUkVfRGlyZWN0X1JlY3RBcmVhX1BoeXNpY2FsKCBjb25zdCBpbiBSZWN0QXJlYUxpZ2h0IHJlY3RBcmVhTGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRcdHZlYzMgbm9ybWFsID0gZ2VvbWV0cnkubm9ybWFsO1xuXHRcdHZlYzMgdmlld0RpciA9IGdlb21ldHJ5LnZpZXdEaXI7XG5cdFx0dmVjMyBwb3NpdGlvbiA9IGdlb21ldHJ5LnBvc2l0aW9uO1xuXHRcdHZlYzMgbGlnaHRQb3MgPSByZWN0QXJlYUxpZ2h0LnBvc2l0aW9uO1xuXHRcdHZlYzMgaGFsZldpZHRoID0gcmVjdEFyZWFMaWdodC5oYWxmV2lkdGg7XG5cdFx0dmVjMyBoYWxmSGVpZ2h0ID0gcmVjdEFyZWFMaWdodC5oYWxmSGVpZ2h0O1xuXHRcdHZlYzMgbGlnaHRDb2xvciA9IHJlY3RBcmVhTGlnaHQuY29sb3I7XG5cdFx0ZmxvYXQgcm91Z2huZXNzID0gbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3M7XG5cdFx0dmVjMyByZWN0Q29vcmRzWyA0IF07XG5cdFx0cmVjdENvb3Jkc1sgMCBdID0gbGlnaHRQb3MgKyBoYWxmV2lkdGggLSBoYWxmSGVpZ2h0O1x0XHRyZWN0Q29vcmRzWyAxIF0gPSBsaWdodFBvcyAtIGhhbGZXaWR0aCAtIGhhbGZIZWlnaHQ7XG5cdFx0cmVjdENvb3Jkc1sgMiBdID0gbGlnaHRQb3MgLSBoYWxmV2lkdGggKyBoYWxmSGVpZ2h0O1xuXHRcdHJlY3RDb29yZHNbIDMgXSA9IGxpZ2h0UG9zICsgaGFsZldpZHRoICsgaGFsZkhlaWdodDtcblx0XHR2ZWMyIHV2ID0gTFRDX1V2KCBub3JtYWwsIHZpZXdEaXIsIHJvdWdobmVzcyApO1xuXHRcdHZlYzQgdDEgPSB0ZXh0dXJlMkQoIGx0Y18xLCB1diApO1xuXHRcdHZlYzQgdDIgPSB0ZXh0dXJlMkQoIGx0Y18yLCB1diApO1xuXHRcdG1hdDMgbUludiA9IG1hdDMoXG5cdFx0XHR2ZWMzKCB0MS54LCAwLCB0MS55ICksXG5cdFx0XHR2ZWMzKCAgICAwLCAxLCAgICAwICksXG5cdFx0XHR2ZWMzKCB0MS56LCAwLCB0MS53IClcblx0XHQpO1xuXHRcdHZlYzMgZnJlc25lbCA9ICggbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciAqIHQyLnggKyAoIHZlYzMoIDEuMCApIC0gbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciApICogdDIueSApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9IGxpZ2h0Q29sb3IgKiBmcmVzbmVsICogTFRDX0V2YWx1YXRlKCBub3JtYWwsIHZpZXdEaXIsIHBvc2l0aW9uLCBtSW52LCByZWN0Q29vcmRzICk7XG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArPSBsaWdodENvbG9yICogbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICogTFRDX0V2YWx1YXRlKCBub3JtYWwsIHZpZXdEaXIsIHBvc2l0aW9uLCBtYXQzKCAxLjAgKSwgcmVjdENvb3JkcyApO1xuXHR9XG4jZW5kaWZcbnZvaWQgUkVfRGlyZWN0X1BoeXNpY2FsKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0ZmxvYXQgZG90TkwgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApICk7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGRvdE5MICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdCNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xuXHRcdGlycmFkaWFuY2UgKj0gUEk7XG5cdCNlbmRpZlxuXHQjaWZkZWYgQ0xFQVJDT0FUXG5cdFx0ZmxvYXQgY2NEb3ROTCA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKTtcblx0XHR2ZWMzIGNjSXJyYWRpYW5jZSA9IGNjRG90TkwgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0XHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRcdGNjSXJyYWRpYW5jZSAqPSBQSTtcblx0XHQjZW5kaWZcblx0XHRmbG9hdCBjbGVhcmNvYXRESFIgPSBtYXRlcmlhbC5jbGVhcmNvYXQgKiBjbGVhcmNvYXRESFJBcHByb3goIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgY2NEb3ROTCApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9IGNjSXJyYWRpYW5jZSAqIG1hdGVyaWFsLmNsZWFyY29hdCAqIEJSREZfU3BlY3VsYXJfR0dYKCBkaXJlY3RMaWdodCwgZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCB2ZWMzKCBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UICksIHZlYzMoIDEuMCApLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKTtcblx0I2Vsc2Vcblx0XHRmbG9hdCBjbGVhcmNvYXRESFIgPSAwLjA7XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX1NIRUVOXG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gKCAxLjAgLSBjbGVhcmNvYXRESFIgKSAqIGlycmFkaWFuY2UgKiBCUkRGX1NwZWN1bGFyX1NoZWVuKFxuXHRcdFx0bWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MsXG5cdFx0XHRkaXJlY3RMaWdodC5kaXJlY3Rpb24sXG5cdFx0XHRnZW9tZXRyeSxcblx0XHRcdG1hdGVyaWFsLnNoZWVuQ29sb3Jcblx0XHQpO1xuXHQjZWxzZVxuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9ICggMS4wIC0gY2xlYXJjb2F0REhSICkgKiBpcnJhZGlhbmNlICogQlJERl9TcGVjdWxhcl9HR1goIGRpcmVjdExpZ2h0LCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5ub3JtYWwsIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IsIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3JGOTAsIG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzKTtcblx0I2VuZGlmXG5cdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gKCAxLjAgLSBjbGVhcmNvYXRESFIgKSAqIGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG52b2lkIFJFX0luZGlyZWN0RGlmZnVzZV9QaHlzaWNhbCggY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG52b2lkIFJFX0luZGlyZWN0U3BlY3VsYXJfUGh5c2ljYWwoIGNvbnN0IGluIHZlYzMgcmFkaWFuY2UsIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gdmVjMyBjbGVhcmNvYXRSYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQpIHtcblx0I2lmZGVmIENMRUFSQ09BVFxuXHRcdGZsb2F0IGNjRG90TlYgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIGdlb21ldHJ5LnZpZXdEaXIgKSApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKz0gY2xlYXJjb2F0UmFkaWFuY2UgKiBtYXRlcmlhbC5jbGVhcmNvYXQgKiBCUkRGX1NwZWN1bGFyX0dHWF9FbnZpcm9ubWVudCggZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCB2ZWMzKCBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UICksIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyApO1xuXHRcdGZsb2F0IGNjRG90TkwgPSBjY0RvdE5WO1xuXHRcdGZsb2F0IGNsZWFyY29hdERIUiA9IG1hdGVyaWFsLmNsZWFyY29hdCAqIGNsZWFyY29hdERIUkFwcHJveCggbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzLCBjY0RvdE5MICk7XG5cdCNlbHNlXG5cdFx0ZmxvYXQgY2xlYXJjb2F0REhSID0gMC4wO1xuXHQjZW5kaWZcblx0ZmxvYXQgY2xlYXJjb2F0SW52ID0gMS4wIC0gY2xlYXJjb2F0REhSO1xuXHR2ZWMzIHNpbmdsZVNjYXR0ZXJpbmcgPSB2ZWMzKCAwLjAgKTtcblx0dmVjMyBtdWx0aVNjYXR0ZXJpbmcgPSB2ZWMzKCAwLjAgKTtcblx0dmVjMyBjb3NpbmVXZWlnaHRlZElycmFkaWFuY2UgPSBpcnJhZGlhbmNlICogUkVDSVBST0NBTF9QSTtcblx0QlJERl9TcGVjdWxhcl9NdWx0aXNjYXR0ZXJpbmdfRW52aXJvbm1lbnQoIGdlb21ldHJ5LCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcywgc2luZ2xlU2NhdHRlcmluZywgbXVsdGlTY2F0dGVyaW5nICk7XG5cdHZlYzMgZGlmZnVzZSA9IG1hdGVyaWFsLmRpZmZ1c2VDb2xvciAqICggMS4wIC0gKCBzaW5nbGVTY2F0dGVyaW5nICsgbXVsdGlTY2F0dGVyaW5nICkgKTtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3RTcGVjdWxhciArPSBjbGVhcmNvYXRJbnYgKiByYWRpYW5jZSAqIHNpbmdsZVNjYXR0ZXJpbmc7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKz0gbXVsdGlTY2F0dGVyaW5nICogY29zaW5lV2VpZ2h0ZWRJcnJhZGlhbmNlO1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gZGlmZnVzZSAqIGNvc2luZVdlaWdodGVkSXJyYWRpYW5jZTtcbn1cbiNkZWZpbmUgUkVfRGlyZWN0XHRcdFx0XHRSRV9EaXJlY3RfUGh5c2ljYWxcbiNkZWZpbmUgUkVfRGlyZWN0X1JlY3RBcmVhXHRcdFJFX0RpcmVjdF9SZWN0QXJlYV9QaHlzaWNhbFxuI2RlZmluZSBSRV9JbmRpcmVjdERpZmZ1c2VcdFx0UkVfSW5kaXJlY3REaWZmdXNlX1BoeXNpY2FsXG4jZGVmaW5lIFJFX0luZGlyZWN0U3BlY3VsYXJcdFx0UkVfSW5kaXJlY3RTcGVjdWxhcl9QaHlzaWNhbFxuZmxvYXQgY29tcHV0ZVNwZWN1bGFyT2NjbHVzaW9uKCBjb25zdCBpbiBmbG9hdCBkb3ROViwgY29uc3QgaW4gZmxvYXQgYW1iaWVudE9jY2x1c2lvbiwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkge1xuXHRyZXR1cm4gc2F0dXJhdGUoIHBvdyggZG90TlYgKyBhbWJpZW50T2NjbHVzaW9uLCBleHAyKCAtIDE2LjAgKiByb3VnaG5lc3MgLSAxLjAgKSApIC0gMS4wICsgYW1iaWVudE9jY2x1c2lvbiApO1xufSIsbGlnaHRzX2ZyYWdtZW50X2JlZ2luOiJcbkdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnk7XG5nZW9tZXRyeS5wb3NpdGlvbiA9IC0gdlZpZXdQb3NpdGlvbjtcbmdlb21ldHJ5Lm5vcm1hbCA9IG5vcm1hbDtcbmdlb21ldHJ5LnZpZXdEaXIgPSAoIGlzT3J0aG9ncmFwaGljICkgPyB2ZWMzKCAwLCAwLCAxICkgOiBub3JtYWxpemUoIHZWaWV3UG9zaXRpb24gKTtcbiNpZmRlZiBDTEVBUkNPQVRcblx0Z2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsID0gY2xlYXJjb2F0Tm9ybWFsO1xuI2VuZGlmXG5JbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0O1xuI2lmICggTlVNX1BPSU5UX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3QgKVxuXHRQb2ludExpZ2h0IHBvaW50TGlnaHQ7XG5cdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodFNoYWRvdztcblx0I2VuZGlmXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1BPSU5UX0xJR0hUUzsgaSArKyApIHtcblx0XHRwb2ludExpZ2h0ID0gcG9pbnRMaWdodHNbIGkgXTtcblx0XHRnZXRQb2ludERpcmVjdExpZ2h0SXJyYWRpYW5jZSggcG9pbnRMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyApXG5cdFx0cG9pbnRMaWdodFNoYWRvdyA9IHBvaW50TGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgKj0gYWxsKCBidmVjMiggZGlyZWN0TGlnaHQudmlzaWJsZSwgcmVjZWl2ZVNoYWRvdyApICkgPyBnZXRQb2ludFNoYWRvdyggcG9pbnRTaGFkb3dNYXBbIGkgXSwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dNYXBTaXplLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd0JpYXMsIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93UmFkaXVzLCB2UG9pbnRTaGFkb3dDb29yZFsgaSBdLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd0NhbWVyYU5lYXIsIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93Q2FtZXJhRmFyICkgOiAxLjA7XG5cdFx0I2VuZGlmXG5cdFx0UkVfRGlyZWN0KCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiAoIE5VTV9TUE9UX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3QgKVxuXHRTcG90TGlnaHQgc3BvdExpZ2h0O1xuXHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFNwb3RMaWdodFNoYWRvdyBzcG90TGlnaHRTaGFkb3c7XG5cdCNlbmRpZlxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUUzsgaSArKyApIHtcblx0XHRzcG90TGlnaHQgPSBzcG90TGlnaHRzWyBpIF07XG5cdFx0Z2V0U3BvdERpcmVjdExpZ2h0SXJyYWRpYW5jZSggc3BvdExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmICggVU5ST0xMRURfTE9PUF9JTkRFWCA8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgKVxuXHRcdHNwb3RMaWdodFNoYWRvdyA9IHNwb3RMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRkaXJlY3RMaWdodC5jb2xvciAqPSBhbGwoIGJ2ZWMyKCBkaXJlY3RMaWdodC52aXNpYmxlLCByZWNlaXZlU2hhZG93ICkgKSA/IGdldFNoYWRvdyggc3BvdFNoYWRvd01hcFsgaSBdLCBzcG90TGlnaHRTaGFkb3cuc2hhZG93TWFwU2l6ZSwgc3BvdExpZ2h0U2hhZG93LnNoYWRvd0JpYXMsIHNwb3RMaWdodFNoYWRvdy5zaGFkb3dSYWRpdXMsIHZTcG90U2hhZG93Q29vcmRbIGkgXSApIDogMS4wO1xuXHRcdCNlbmRpZlxuXHRcdFJFX0RpcmVjdCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgKCBOVU1fRElSX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3QgKVxuXHREaXJlY3Rpb25hbExpZ2h0IGRpcmVjdGlvbmFsTGlnaHQ7XG5cdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMFxuXHREaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3c7XG5cdCNlbmRpZlxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9ESVJfTElHSFRTOyBpICsrICkge1xuXHRcdGRpcmVjdGlvbmFsTGlnaHQgPSBkaXJlY3Rpb25hbExpZ2h0c1sgaSBdO1xuXHRcdGdldERpcmVjdGlvbmFsRGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBkaXJlY3Rpb25hbExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmICggVU5ST0xMRURfTE9PUF9JTkRFWCA8IE5VTV9ESVJfTElHSFRfU0hBRE9XUyApXG5cdFx0ZGlyZWN0aW9uYWxMaWdodFNoYWRvdyA9IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgKj0gYWxsKCBidmVjMiggZGlyZWN0TGlnaHQudmlzaWJsZSwgcmVjZWl2ZVNoYWRvdyApICkgPyBnZXRTaGFkb3coIGRpcmVjdGlvbmFsU2hhZG93TWFwWyBpIF0sIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cuc2hhZG93TWFwU2l6ZSwgZGlyZWN0aW9uYWxMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBkaXJlY3Rpb25hbExpZ2h0U2hhZG93LnNoYWRvd1JhZGl1cywgdkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIGkgXSApIDogMS4wO1xuXHRcdCNlbmRpZlxuXHRcdFJFX0RpcmVjdCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgKCBOVU1fUkVDVF9BUkVBX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3RfUmVjdEFyZWEgKVxuXHRSZWN0QXJlYUxpZ2h0IHJlY3RBcmVhTGlnaHQ7XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1JFQ1RfQVJFQV9MSUdIVFM7IGkgKysgKSB7XG5cdFx0cmVjdEFyZWFMaWdodCA9IHJlY3RBcmVhTGlnaHRzWyBpIF07XG5cdFx0UkVfRGlyZWN0X1JlY3RBcmVhKCByZWN0QXJlYUxpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0RGlmZnVzZSApXG5cdHZlYzMgaWJsSXJyYWRpYW5jZSA9IHZlYzMoIDAuMCApO1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBnZXRBbWJpZW50TGlnaHRJcnJhZGlhbmNlKCBhbWJpZW50TGlnaHRDb2xvciApO1xuXHRpcnJhZGlhbmNlICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBnZW9tZXRyeSApO1xuXHQjaWYgKCBOVU1fSEVNSV9MSUdIVFMgPiAwIClcblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdFx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0hFTUlfTElHSFRTOyBpICsrICkge1xuXHRcdFx0aXJyYWRpYW5jZSArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGdlb21ldHJ5ICk7XG5cdFx0fVxuXHRcdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuI2VuZGlmXG4jaWYgZGVmaW5lZCggUkVfSW5kaXJlY3RTcGVjdWxhciApXG5cdHZlYzMgcmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTtcblx0dmVjMyBjbGVhcmNvYXRSYWRpYW5jZSA9IHZlYzMoIDAuMCApO1xuI2VuZGlmIixsaWdodHNfZnJhZ21lbnRfbWFwczoiI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0RGlmZnVzZSApXG5cdCNpZmRlZiBVU0VfTElHSFRNQVBcblx0XHR2ZWM0IGxpZ2h0TWFwVGV4ZWw9IHRleHR1cmUyRCggbGlnaHRNYXAsIHZVdjIgKTtcblx0XHR2ZWMzIGxpZ2h0TWFwSXJyYWRpYW5jZSA9IGxpZ2h0TWFwVGV4ZWxUb0xpbmVhciggbGlnaHRNYXBUZXhlbCApLnJnYiAqIGxpZ2h0TWFwSW50ZW5zaXR5O1xuXHRcdCNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xuXHRcdFx0bGlnaHRNYXBJcnJhZGlhbmNlICo9IFBJO1xuXHRcdCNlbmRpZlxuXHRcdGlycmFkaWFuY2UgKz0gbGlnaHRNYXBJcnJhZGlhbmNlO1xuXHQjZW5kaWZcblx0I2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSAmJiBkZWZpbmVkKCBTVEFOREFSRCApICYmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKVxuXHRcdGlibElycmFkaWFuY2UgKz0gZ2V0TGlnaHRQcm9iZUluZGlyZWN0SXJyYWRpYW5jZSggZ2VvbWV0cnksIG1heE1pcExldmVsICk7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApICYmIGRlZmluZWQoIFJFX0luZGlyZWN0U3BlY3VsYXIgKVxuXHRyYWRpYW5jZSArPSBnZXRMaWdodFByb2JlSW5kaXJlY3RSYWRpYW5jZSggZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkubm9ybWFsLCBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcywgbWF4TWlwTGV2ZWwgKTtcblx0I2lmZGVmIENMRUFSQ09BVFxuXHRcdGNsZWFyY29hdFJhZGlhbmNlICs9IGdldExpZ2h0UHJvYmVJbmRpcmVjdFJhZGlhbmNlKCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgbWF4TWlwTGV2ZWwgKTtcblx0I2VuZGlmXG4jZW5kaWYiLGxpZ2h0c19mcmFnbWVudF9lbmQ6IiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdERpZmZ1c2UgKVxuXHRSRV9JbmRpcmVjdERpZmZ1c2UoIGlycmFkaWFuY2UsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0U3BlY3VsYXIgKVxuXHRSRV9JbmRpcmVjdFNwZWN1bGFyKCByYWRpYW5jZSwgaWJsSXJyYWRpYW5jZSwgY2xlYXJjb2F0UmFkaWFuY2UsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcbiNlbmRpZiIsbG9nZGVwdGhidWZfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfTE9HREVQVEhCVUYgKSAmJiBkZWZpbmVkKCBVU0VfTE9HREVQVEhCVUZfRVhUIClcblx0Z2xfRnJhZ0RlcHRoRVhUID0gdklzUGVyc3BlY3RpdmUgPT0gMC4wID8gZ2xfRnJhZ0Nvb3JkLnogOiBsb2cyKCB2RnJhZ0RlcHRoICkgKiBsb2dEZXB0aEJ1ZkZDICogMC41O1xuI2VuZGlmIixsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGICkgJiYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGX0VYVCApXG5cdHVuaWZvcm0gZmxvYXQgbG9nRGVwdGhCdWZGQztcblx0dmFyeWluZyBmbG9hdCB2RnJhZ0RlcHRoO1xuXHR2YXJ5aW5nIGZsb2F0IHZJc1BlcnNwZWN0aXZlO1xuI2VuZGlmIixsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9MT0dERVBUSEJVRlxuXHQjaWZkZWYgVVNFX0xPR0RFUFRIQlVGX0VYVFxuXHRcdHZhcnlpbmcgZmxvYXQgdkZyYWdEZXB0aDtcblx0XHR2YXJ5aW5nIGZsb2F0IHZJc1BlcnNwZWN0aXZlO1xuXHQjZWxzZVxuXHRcdHVuaWZvcm0gZmxvYXQgbG9nRGVwdGhCdWZGQztcblx0I2VuZGlmXG4jZW5kaWYiLGxvZ2RlcHRoYnVmX3ZlcnRleDoiI2lmZGVmIFVTRV9MT0dERVBUSEJVRlxuXHQjaWZkZWYgVVNFX0xPR0RFUFRIQlVGX0VYVFxuXHRcdHZGcmFnRGVwdGggPSAxLjAgKyBnbF9Qb3NpdGlvbi53O1xuXHRcdHZJc1BlcnNwZWN0aXZlID0gZmxvYXQoIGlzUGVyc3BlY3RpdmVNYXRyaXgoIHByb2plY3Rpb25NYXRyaXggKSApO1xuXHQjZWxzZVxuXHRcdGlmICggaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApICkge1xuXHRcdFx0Z2xfUG9zaXRpb24ueiA9IGxvZzIoIG1heCggRVBTSUxPTiwgZ2xfUG9zaXRpb24udyArIDEuMCApICkgKiBsb2dEZXB0aEJ1ZkZDIC0gMS4wO1xuXHRcdFx0Z2xfUG9zaXRpb24ueiAqPSBnbF9Qb3NpdGlvbi53O1xuXHRcdH1cblx0I2VuZGlmXG4jZW5kaWYiLG1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9NQVBcblx0dmVjNCB0ZXhlbENvbG9yID0gdGV4dHVyZTJEKCBtYXAsIHZVdiApO1xuXHR0ZXhlbENvbG9yID0gbWFwVGV4ZWxUb0xpbmVhciggdGV4ZWxDb2xvciApO1xuXHRkaWZmdXNlQ29sb3IgKj0gdGV4ZWxDb2xvcjtcbiNlbmRpZiIsbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIG1hcDtcbiNlbmRpZiIsbWFwX3BhcnRpY2xlX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX01BUCApIHx8IGRlZmluZWQoIFVTRV9BTFBIQU1BUCApXG5cdHZlYzIgdXYgPSAoIHV2VHJhbnNmb3JtICogdmVjMyggZ2xfUG9pbnRDb29yZC54LCAxLjAgLSBnbF9Qb2ludENvb3JkLnksIDEgKSApLnh5O1xuI2VuZGlmXG4jaWZkZWYgVVNFX01BUFxuXHR2ZWM0IG1hcFRleGVsID0gdGV4dHVyZTJEKCBtYXAsIHV2ICk7XG5cdGRpZmZ1c2VDb2xvciAqPSBtYXBUZXhlbFRvTGluZWFyKCBtYXBUZXhlbCApO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0FMUEhBTUFQXG5cdGRpZmZ1c2VDb2xvci5hICo9IHRleHR1cmUyRCggYWxwaGFNYXAsIHV2ICkuZztcbiNlbmRpZiIsbWFwX3BhcnRpY2xlX3BhcnNfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfTUFQICkgfHwgZGVmaW5lZCggVVNFX0FMUEhBTUFQIClcblx0dW5pZm9ybSBtYXQzIHV2VHJhbnNmb3JtO1xuI2VuZGlmXG4jaWZkZWYgVVNFX01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBtYXA7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQUxQSEFNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgYWxwaGFNYXA7XG4jZW5kaWYiLG1ldGFsbmVzc21hcF9mcmFnbWVudDoiZmxvYXQgbWV0YWxuZXNzRmFjdG9yID0gbWV0YWxuZXNzO1xuI2lmZGVmIFVTRV9NRVRBTE5FU1NNQVBcblx0dmVjNCB0ZXhlbE1ldGFsbmVzcyA9IHRleHR1cmUyRCggbWV0YWxuZXNzTWFwLCB2VXYgKTtcblx0bWV0YWxuZXNzRmFjdG9yICo9IHRleGVsTWV0YWxuZXNzLmI7XG4jZW5kaWYiLG1ldGFsbmVzc21hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX01FVEFMTkVTU01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBtZXRhbG5lc3NNYXA7XG4jZW5kaWYiLG1vcnBobm9ybWFsX3ZlcnRleDoiI2lmZGVmIFVTRV9NT1JQSE5PUk1BTFNcblx0b2JqZWN0Tm9ybWFsICo9IG1vcnBoVGFyZ2V0QmFzZUluZmx1ZW5jZTtcblx0b2JqZWN0Tm9ybWFsICs9IG1vcnBoTm9ybWFsMCAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMCBdO1xuXHRvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwxICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAxIF07XG5cdG9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDIgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDIgXTtcblx0b2JqZWN0Tm9ybWFsICs9IG1vcnBoTm9ybWFsMyAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMyBdO1xuI2VuZGlmIixtb3JwaHRhcmdldF9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9NT1JQSFRBUkdFVFNcblx0dW5pZm9ybSBmbG9hdCBtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2U7XG5cdCNpZm5kZWYgVVNFX01PUlBITk9STUFMU1xuXHRcdHVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA4IF07XG5cdCNlbHNlXG5cdFx0dW5pZm9ybSBmbG9hdCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDQgXTtcblx0I2VuZGlmXG4jZW5kaWYiLG1vcnBodGFyZ2V0X3ZlcnRleDoiI2lmZGVmIFVTRV9NT1JQSFRBUkdFVFNcblx0dHJhbnNmb3JtZWQgKj0gbW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlO1xuXHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDAgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDAgXTtcblx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQxICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAxIF07XG5cdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MiAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMiBdO1xuXHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDMgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDMgXTtcblx0I2lmbmRlZiBVU0VfTU9SUEhOT1JNQUxTXG5cdFx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ0ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA0IF07XG5cdFx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ1ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA1IF07XG5cdFx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ2ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA2IF07XG5cdFx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ3ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA3IF07XG5cdCNlbmRpZlxuI2VuZGlmIixub3JtYWxfZnJhZ21lbnRfYmVnaW46ImZsb2F0IGZhY2VEaXJlY3Rpb24gPSBnbF9Gcm9udEZhY2luZyA/IDEuMCA6IC0gMS4wO1xuI2lmZGVmIEZMQVRfU0hBREVEXG5cdHZlYzMgZmR4ID0gdmVjMyggZEZkeCggdlZpZXdQb3NpdGlvbi54ICksIGRGZHgoIHZWaWV3UG9zaXRpb24ueSApLCBkRmR4KCB2Vmlld1Bvc2l0aW9uLnogKSApO1xuXHR2ZWMzIGZkeSA9IHZlYzMoIGRGZHkoIHZWaWV3UG9zaXRpb24ueCApLCBkRmR5KCB2Vmlld1Bvc2l0aW9uLnkgKSwgZEZkeSggdlZpZXdQb3NpdGlvbi56ICkgKTtcblx0dmVjMyBub3JtYWwgPSBub3JtYWxpemUoIGNyb3NzKCBmZHgsIGZkeSApICk7XG4jZWxzZVxuXHR2ZWMzIG5vcm1hbCA9IG5vcm1hbGl6ZSggdk5vcm1hbCApO1xuXHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0bm9ybWFsID0gbm9ybWFsICogZmFjZURpcmVjdGlvbjtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZlYzMgdGFuZ2VudCA9IG5vcm1hbGl6ZSggdlRhbmdlbnQgKTtcblx0XHR2ZWMzIGJpdGFuZ2VudCA9IG5vcm1hbGl6ZSggdkJpdGFuZ2VudCApO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHRhbmdlbnQgPSB0YW5nZW50ICogZmFjZURpcmVjdGlvbjtcblx0XHRcdGJpdGFuZ2VudCA9IGJpdGFuZ2VudCAqIGZhY2VEaXJlY3Rpb247XG5cdFx0I2VuZGlmXG5cdFx0I2lmIGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCApXG5cdFx0XHRtYXQzIHZUQk4gPSBtYXQzKCB0YW5nZW50LCBiaXRhbmdlbnQsIG5vcm1hbCApO1xuXHRcdCNlbmRpZlxuXHQjZW5kaWZcbiNlbmRpZlxudmVjMyBnZW9tZXRyeU5vcm1hbCA9IG5vcm1hbDsiLG5vcm1hbF9mcmFnbWVudF9tYXBzOiIjaWZkZWYgT0JKRUNUU1BBQ0VfTk9STUFMTUFQXG5cdG5vcm1hbCA9IHRleHR1cmUyRCggbm9ybWFsTWFwLCB2VXYgKS54eXogKiAyLjAgLSAxLjA7XG5cdCNpZmRlZiBGTElQX1NJREVEXG5cdFx0bm9ybWFsID0gLSBub3JtYWw7XG5cdCNlbmRpZlxuXHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0bm9ybWFsID0gbm9ybWFsICogZmFjZURpcmVjdGlvbjtcblx0I2VuZGlmXG5cdG5vcm1hbCA9IG5vcm1hbGl6ZSggbm9ybWFsTWF0cml4ICogbm9ybWFsICk7XG4jZWxpZiBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIClcblx0dmVjMyBtYXBOID0gdGV4dHVyZTJEKCBub3JtYWxNYXAsIHZVdiApLnh5eiAqIDIuMCAtIDEuMDtcblx0bWFwTi54eSAqPSBub3JtYWxTY2FsZTtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0bm9ybWFsID0gbm9ybWFsaXplKCB2VEJOICogbWFwTiApO1xuXHQjZWxzZVxuXHRcdG5vcm1hbCA9IHBlcnR1cmJOb3JtYWwyQXJiKCAtdlZpZXdQb3NpdGlvbiwgbm9ybWFsLCBtYXBOLCBmYWNlRGlyZWN0aW9uICk7XG5cdCNlbmRpZlxuI2VsaWYgZGVmaW5lZCggVVNFX0JVTVBNQVAgKVxuXHRub3JtYWwgPSBwZXJ0dXJiTm9ybWFsQXJiKCAtdlZpZXdQb3NpdGlvbiwgbm9ybWFsLCBkSGR4eV9md2QoKSwgZmFjZURpcmVjdGlvbiApO1xuI2VuZGlmIixub3JtYWxtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9OT1JNQUxNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbm9ybWFsTWFwO1xuXHR1bmlmb3JtIHZlYzIgbm9ybWFsU2NhbGU7XG4jZW5kaWZcbiNpZmRlZiBPQkpFQ1RTUEFDRV9OT1JNQUxNQVBcblx0dW5pZm9ybSBtYXQzIG5vcm1hbE1hdHJpeDtcbiNlbmRpZlxuI2lmICEgZGVmaW5lZCAoIFVTRV9UQU5HRU5UICkgJiYgKCBkZWZpbmVkICggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApIHx8IGRlZmluZWQgKCBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCApIClcblx0dmVjMyBwZXJ0dXJiTm9ybWFsMkFyYiggdmVjMyBleWVfcG9zLCB2ZWMzIHN1cmZfbm9ybSwgdmVjMyBtYXBOLCBmbG9hdCBmYWNlRGlyZWN0aW9uICkge1xuXHRcdHZlYzMgcTAgPSB2ZWMzKCBkRmR4KCBleWVfcG9zLnggKSwgZEZkeCggZXllX3Bvcy55ICksIGRGZHgoIGV5ZV9wb3MueiApICk7XG5cdFx0dmVjMyBxMSA9IHZlYzMoIGRGZHkoIGV5ZV9wb3MueCApLCBkRmR5KCBleWVfcG9zLnkgKSwgZEZkeSggZXllX3Bvcy56ICkgKTtcblx0XHR2ZWMyIHN0MCA9IGRGZHgoIHZVdi5zdCApO1xuXHRcdHZlYzIgc3QxID0gZEZkeSggdlV2LnN0ICk7XG5cdFx0dmVjMyBOID0gc3VyZl9ub3JtO1xuXHRcdHZlYzMgcTFwZXJwID0gY3Jvc3MoIHExLCBOICk7XG5cdFx0dmVjMyBxMHBlcnAgPSBjcm9zcyggTiwgcTAgKTtcblx0XHR2ZWMzIFQgPSBxMXBlcnAgKiBzdDAueCArIHEwcGVycCAqIHN0MS54O1xuXHRcdHZlYzMgQiA9IHExcGVycCAqIHN0MC55ICsgcTBwZXJwICogc3QxLnk7XG5cdFx0ZmxvYXQgZGV0ID0gbWF4KCBkb3QoIFQsIFQgKSwgZG90KCBCLCBCICkgKTtcblx0XHRmbG9hdCBzY2FsZSA9ICggZGV0ID09IDAuMCApID8gMC4wIDogZmFjZURpcmVjdGlvbiAqIGludmVyc2VzcXJ0KCBkZXQgKTtcblx0XHRyZXR1cm4gbm9ybWFsaXplKCBUICogKCBtYXBOLnggKiBzY2FsZSApICsgQiAqICggbWFwTi55ICogc2NhbGUgKSArIE4gKiBtYXBOLnogKTtcblx0fVxuI2VuZGlmIixjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X2JlZ2luOiIjaWZkZWYgQ0xFQVJDT0FUXG5cdHZlYzMgY2xlYXJjb2F0Tm9ybWFsID0gZ2VvbWV0cnlOb3JtYWw7XG4jZW5kaWYiLGNsZWFyY29hdF9ub3JtYWxfZnJhZ21lbnRfbWFwczoiI2lmZGVmIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQXG5cdHZlYzMgY2xlYXJjb2F0TWFwTiA9IHRleHR1cmUyRCggY2xlYXJjb2F0Tm9ybWFsTWFwLCB2VXYgKS54eXogKiAyLjAgLSAxLjA7XG5cdGNsZWFyY29hdE1hcE4ueHkgKj0gY2xlYXJjb2F0Tm9ybWFsU2NhbGU7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdGNsZWFyY29hdE5vcm1hbCA9IG5vcm1hbGl6ZSggdlRCTiAqIGNsZWFyY29hdE1hcE4gKTtcblx0I2Vsc2Vcblx0XHRjbGVhcmNvYXROb3JtYWwgPSBwZXJ0dXJiTm9ybWFsMkFyYiggLSB2Vmlld1Bvc2l0aW9uLCBjbGVhcmNvYXROb3JtYWwsIGNsZWFyY29hdE1hcE4sIGZhY2VEaXJlY3Rpb24gKTtcblx0I2VuZGlmXG4jZW5kaWYiLGNsZWFyY29hdF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0NMRUFSQ09BVE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBjbGVhcmNvYXRNYXA7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQ0xFQVJDT0FUX1JPVUdITkVTU01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBjbGVhcmNvYXRSb3VnaG5lc3NNYXA7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBjbGVhcmNvYXROb3JtYWxNYXA7XG5cdHVuaWZvcm0gdmVjMiBjbGVhcmNvYXROb3JtYWxTY2FsZTtcbiNlbmRpZiIscGFja2luZzoidmVjMyBwYWNrTm9ybWFsVG9SR0IoIGNvbnN0IGluIHZlYzMgbm9ybWFsICkge1xuXHRyZXR1cm4gbm9ybWFsaXplKCBub3JtYWwgKSAqIDAuNSArIDAuNTtcbn1cbnZlYzMgdW5wYWNrUkdCVG9Ob3JtYWwoIGNvbnN0IGluIHZlYzMgcmdiICkge1xuXHRyZXR1cm4gMi4wICogcmdiLnh5eiAtIDEuMDtcbn1cbmNvbnN0IGZsb2F0IFBhY2tVcHNjYWxlID0gMjU2LiAvIDI1NS47Y29uc3QgZmxvYXQgVW5wYWNrRG93bnNjYWxlID0gMjU1LiAvIDI1Ni47XG5jb25zdCB2ZWMzIFBhY2tGYWN0b3JzID0gdmVjMyggMjU2LiAqIDI1Ni4gKiAyNTYuLCAyNTYuICogMjU2LiwgMjU2LiApO1xuY29uc3QgdmVjNCBVbnBhY2tGYWN0b3JzID0gVW5wYWNrRG93bnNjYWxlIC8gdmVjNCggUGFja0ZhY3RvcnMsIDEuICk7XG5jb25zdCBmbG9hdCBTaGlmdFJpZ2h0OCA9IDEuIC8gMjU2LjtcbnZlYzQgcGFja0RlcHRoVG9SR0JBKCBjb25zdCBpbiBmbG9hdCB2ICkge1xuXHR2ZWM0IHIgPSB2ZWM0KCBmcmFjdCggdiAqIFBhY2tGYWN0b3JzICksIHYgKTtcblx0ci55encgLT0gci54eXogKiBTaGlmdFJpZ2h0ODtcdHJldHVybiByICogUGFja1Vwc2NhbGU7XG59XG5mbG9hdCB1bnBhY2tSR0JBVG9EZXB0aCggY29uc3QgaW4gdmVjNCB2ICkge1xuXHRyZXR1cm4gZG90KCB2LCBVbnBhY2tGYWN0b3JzICk7XG59XG52ZWM0IHBhY2sySGFsZlRvUkdCQSggdmVjMiB2ICkge1xuXHR2ZWM0IHIgPSB2ZWM0KCB2LngsIGZyYWN0KCB2LnggKiAyNTUuMCApLCB2LnksIGZyYWN0KCB2LnkgKiAyNTUuMCApKTtcblx0cmV0dXJuIHZlYzQoIHIueCAtIHIueSAvIDI1NS4wLCByLnksIHIueiAtIHIudyAvIDI1NS4wLCByLncpO1xufVxudmVjMiB1bnBhY2tSR0JBVG8ySGFsZiggdmVjNCB2ICkge1xuXHRyZXR1cm4gdmVjMiggdi54ICsgKCB2LnkgLyAyNTUuMCApLCB2LnogKyAoIHYudyAvIDI1NS4wICkgKTtcbn1cbmZsb2F0IHZpZXdaVG9PcnRob2dyYXBoaWNEZXB0aCggY29uc3QgaW4gZmxvYXQgdmlld1osIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHtcblx0cmV0dXJuICggdmlld1ogKyBuZWFyICkgLyAoIG5lYXIgLSBmYXIgKTtcbn1cbmZsb2F0IG9ydGhvZ3JhcGhpY0RlcHRoVG9WaWV3WiggY29uc3QgaW4gZmxvYXQgbGluZWFyQ2xpcFosIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHtcblx0cmV0dXJuIGxpbmVhckNsaXBaICogKCBuZWFyIC0gZmFyICkgLSBuZWFyO1xufVxuZmxvYXQgdmlld1pUb1BlcnNwZWN0aXZlRGVwdGgoIGNvbnN0IGluIGZsb2F0IHZpZXdaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7XG5cdHJldHVybiAoKCBuZWFyICsgdmlld1ogKSAqIGZhciApIC8gKCggZmFyIC0gbmVhciApICogdmlld1ogKTtcbn1cbmZsb2F0IHBlcnNwZWN0aXZlRGVwdGhUb1ZpZXdaKCBjb25zdCBpbiBmbG9hdCBpbnZDbGlwWiwgY29uc3QgaW4gZmxvYXQgbmVhciwgY29uc3QgaW4gZmxvYXQgZmFyICkge1xuXHRyZXR1cm4gKCBuZWFyICogZmFyICkgLyAoICggZmFyIC0gbmVhciApICogaW52Q2xpcFogLSBmYXIgKTtcbn0iLHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ6IiNpZmRlZiBQUkVNVUxUSVBMSUVEX0FMUEhBXG5cdGdsX0ZyYWdDb2xvci5yZ2IgKj0gZ2xfRnJhZ0NvbG9yLmE7XG4jZW5kaWYiLHByb2plY3RfdmVydGV4OiJ2ZWM0IG12UG9zaXRpb24gPSB2ZWM0KCB0cmFuc2Zvcm1lZCwgMS4wICk7XG4jaWZkZWYgVVNFX0lOU1RBTkNJTkdcblx0bXZQb3NpdGlvbiA9IGluc3RhbmNlTWF0cml4ICogbXZQb3NpdGlvbjtcbiNlbmRpZlxubXZQb3NpdGlvbiA9IG1vZGVsVmlld01hdHJpeCAqIG12UG9zaXRpb247XG5nbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtdlBvc2l0aW9uOyIsZGl0aGVyaW5nX2ZyYWdtZW50OiIjaWZkZWYgRElUSEVSSU5HXG5cdGdsX0ZyYWdDb2xvci5yZ2IgPSBkaXRoZXJpbmcoIGdsX0ZyYWdDb2xvci5yZ2IgKTtcbiNlbmRpZiIsZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBESVRIRVJJTkdcblx0dmVjMyBkaXRoZXJpbmcoIHZlYzMgY29sb3IgKSB7XG5cdFx0ZmxvYXQgZ3JpZF9wb3NpdGlvbiA9IHJhbmQoIGdsX0ZyYWdDb29yZC54eSApO1xuXHRcdHZlYzMgZGl0aGVyX3NoaWZ0X1JHQiA9IHZlYzMoIDAuMjUgLyAyNTUuMCwgLTAuMjUgLyAyNTUuMCwgMC4yNSAvIDI1NS4wICk7XG5cdFx0ZGl0aGVyX3NoaWZ0X1JHQiA9IG1peCggMi4wICogZGl0aGVyX3NoaWZ0X1JHQiwgLTIuMCAqIGRpdGhlcl9zaGlmdF9SR0IsIGdyaWRfcG9zaXRpb24gKTtcblx0XHRyZXR1cm4gY29sb3IgKyBkaXRoZXJfc2hpZnRfUkdCO1xuXHR9XG4jZW5kaWYiLHJvdWdobmVzc21hcF9mcmFnbWVudDoiZmxvYXQgcm91Z2huZXNzRmFjdG9yID0gcm91Z2huZXNzO1xuI2lmZGVmIFVTRV9ST1VHSE5FU1NNQVBcblx0dmVjNCB0ZXhlbFJvdWdobmVzcyA9IHRleHR1cmUyRCggcm91Z2huZXNzTWFwLCB2VXYgKTtcblx0cm91Z2huZXNzRmFjdG9yICo9IHRleGVsUm91Z2huZXNzLmc7XG4jZW5kaWYiLHJvdWdobmVzc21hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX1JPVUdITkVTU01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCByb3VnaG5lc3NNYXA7XG4jZW5kaWYiLHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX1NIQURPV01BUFxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIGRpcmVjdGlvbmFsU2hhZG93TWFwWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBEaXJlY3Rpb25hbExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBEaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG5cdCNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHNwb3RTaGFkb3dNYXBbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdlNwb3RTaGFkb3dDb29yZFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBTcG90TGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0fTtcblx0XHR1bmlmb3JtIFNwb3RMaWdodFNoYWRvdyBzcG90TGlnaHRTaGFkb3dzWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHQjaWYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgcG9pbnRTaGFkb3dNYXBbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZQb2ludFNoYWRvd0Nvb3JkWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBQb2ludExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdFx0ZmxvYXQgc2hhZG93Q2FtZXJhTmVhcjtcblx0XHRcdGZsb2F0IHNoYWRvd0NhbWVyYUZhcjtcblx0XHR9O1xuXHRcdHVuaWZvcm0gUG9pbnRMaWdodFNoYWRvdyBwb2ludExpZ2h0U2hhZG93c1sgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG5cdGZsb2F0IHRleHR1cmUyRENvbXBhcmUoIHNhbXBsZXIyRCBkZXB0aHMsIHZlYzIgdXYsIGZsb2F0IGNvbXBhcmUgKSB7XG5cdFx0cmV0dXJuIHN0ZXAoIGNvbXBhcmUsIHVucGFja1JHQkFUb0RlcHRoKCB0ZXh0dXJlMkQoIGRlcHRocywgdXYgKSApICk7XG5cdH1cblx0dmVjMiB0ZXh0dXJlMkREaXN0cmlidXRpb24oIHNhbXBsZXIyRCBzaGFkb3csIHZlYzIgdXYgKSB7XG5cdFx0cmV0dXJuIHVucGFja1JHQkFUbzJIYWxmKCB0ZXh0dXJlMkQoIHNoYWRvdywgdXYgKSApO1xuXHR9XG5cdGZsb2F0IFZTTVNoYWRvdyAoc2FtcGxlcjJEIHNoYWRvdywgdmVjMiB1diwgZmxvYXQgY29tcGFyZSApe1xuXHRcdGZsb2F0IG9jY2x1c2lvbiA9IDEuMDtcblx0XHR2ZWMyIGRpc3RyaWJ1dGlvbiA9IHRleHR1cmUyRERpc3RyaWJ1dGlvbiggc2hhZG93LCB1diApO1xuXHRcdGZsb2F0IGhhcmRfc2hhZG93ID0gc3RlcCggY29tcGFyZSAsIGRpc3RyaWJ1dGlvbi54ICk7XG5cdFx0aWYgKGhhcmRfc2hhZG93ICE9IDEuMCApIHtcblx0XHRcdGZsb2F0IGRpc3RhbmNlID0gY29tcGFyZSAtIGRpc3RyaWJ1dGlvbi54IDtcblx0XHRcdGZsb2F0IHZhcmlhbmNlID0gbWF4KCAwLjAwMDAwLCBkaXN0cmlidXRpb24ueSAqIGRpc3RyaWJ1dGlvbi55ICk7XG5cdFx0XHRmbG9hdCBzb2Z0bmVzc19wcm9iYWJpbGl0eSA9IHZhcmlhbmNlIC8gKHZhcmlhbmNlICsgZGlzdGFuY2UgKiBkaXN0YW5jZSApO1x0XHRcdHNvZnRuZXNzX3Byb2JhYmlsaXR5ID0gY2xhbXAoICggc29mdG5lc3NfcHJvYmFiaWxpdHkgLSAwLjMgKSAvICggMC45NSAtIDAuMyApLCAwLjAsIDEuMCApO1x0XHRcdG9jY2x1c2lvbiA9IGNsYW1wKCBtYXgoIGhhcmRfc2hhZG93LCBzb2Z0bmVzc19wcm9iYWJpbGl0eSApLCAwLjAsIDEuMCApO1xuXHRcdH1cblx0XHRyZXR1cm4gb2NjbHVzaW9uO1xuXHR9XG5cdGZsb2F0IGdldFNoYWRvdyggc2FtcGxlcjJEIHNoYWRvd01hcCwgdmVjMiBzaGFkb3dNYXBTaXplLCBmbG9hdCBzaGFkb3dCaWFzLCBmbG9hdCBzaGFkb3dSYWRpdXMsIHZlYzQgc2hhZG93Q29vcmQgKSB7XG5cdFx0ZmxvYXQgc2hhZG93ID0gMS4wO1xuXHRcdHNoYWRvd0Nvb3JkLnh5eiAvPSBzaGFkb3dDb29yZC53O1xuXHRcdHNoYWRvd0Nvb3JkLnogKz0gc2hhZG93Qmlhcztcblx0XHRidmVjNCBpbkZydXN0dW1WZWMgPSBidmVjNCAoIHNoYWRvd0Nvb3JkLnggPj0gMC4wLCBzaGFkb3dDb29yZC54IDw9IDEuMCwgc2hhZG93Q29vcmQueSA+PSAwLjAsIHNoYWRvd0Nvb3JkLnkgPD0gMS4wICk7XG5cdFx0Ym9vbCBpbkZydXN0dW0gPSBhbGwoIGluRnJ1c3R1bVZlYyApO1xuXHRcdGJ2ZWMyIGZydXN0dW1UZXN0VmVjID0gYnZlYzIoIGluRnJ1c3R1bSwgc2hhZG93Q29vcmQueiA8PSAxLjAgKTtcblx0XHRib29sIGZydXN0dW1UZXN0ID0gYWxsKCBmcnVzdHVtVGVzdFZlYyApO1xuXHRcdGlmICggZnJ1c3R1bVRlc3QgKSB7XG5cdFx0I2lmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRiApXG5cdFx0XHR2ZWMyIHRleGVsU2l6ZSA9IHZlYzIoIDEuMCApIC8gc2hhZG93TWFwU2l6ZTtcblx0XHRcdGZsb2F0IGR4MCA9IC0gdGV4ZWxTaXplLnggKiBzaGFkb3dSYWRpdXM7XG5cdFx0XHRmbG9hdCBkeTAgPSAtIHRleGVsU2l6ZS55ICogc2hhZG93UmFkaXVzO1xuXHRcdFx0ZmxvYXQgZHgxID0gKyB0ZXhlbFNpemUueCAqIHNoYWRvd1JhZGl1cztcblx0XHRcdGZsb2F0IGR5MSA9ICsgdGV4ZWxTaXplLnkgKiBzaGFkb3dSYWRpdXM7XG5cdFx0XHRmbG9hdCBkeDIgPSBkeDAgLyAyLjA7XG5cdFx0XHRmbG9hdCBkeTIgPSBkeTAgLyAyLjA7XG5cdFx0XHRmbG9hdCBkeDMgPSBkeDEgLyAyLjA7XG5cdFx0XHRmbG9hdCBkeTMgPSBkeTEgLyAyLjA7XG5cdFx0XHRzaGFkb3cgPSAoXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDAsIGR5MCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MSwgZHkwICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDIsIGR5MiApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTIgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MywgZHkyICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDAsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgyLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MywgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDEsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgyLCBkeTMgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkzICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDMsIGR5MyApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgwLCBkeTEgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkxICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDEsIGR5MSApLCBzaGFkb3dDb29yZC56IClcblx0XHRcdCkgKiAoIDEuMCAvIDE3LjAgKTtcblx0XHQjZWxpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0ZfU09GVCApXG5cdFx0XHR2ZWMyIHRleGVsU2l6ZSA9IHZlYzIoIDEuMCApIC8gc2hhZG93TWFwU2l6ZTtcblx0XHRcdGZsb2F0IGR4ID0gdGV4ZWxTaXplLng7XG5cdFx0XHRmbG9hdCBkeSA9IHRleGVsU2l6ZS55O1xuXHRcdFx0dmVjMiB1diA9IHNoYWRvd0Nvb3JkLnh5O1xuXHRcdFx0dmVjMiBmID0gZnJhY3QoIHV2ICogc2hhZG93TWFwU2l6ZSArIDAuNSApO1xuXHRcdFx0dXYgLT0gZiAqIHRleGVsU2l6ZTtcblx0XHRcdHNoYWRvdyA9IChcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIGR4LCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDAuMCwgZHkgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHRleGVsU2l6ZSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0bWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCAwLjAgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHQgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCAwLjAgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdCBmLnggKSArXG5cdFx0XHRcdG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgZHkgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHQgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCBkeSApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0IGYueCApICtcblx0XHRcdFx0bWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMC4wLCAtZHkgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHQgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDAuMCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdCBmLnkgKSArXG5cdFx0XHRcdG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIGR4LCAtZHkgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHQgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIGR4LCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0IGYueSApICtcblx0XHRcdFx0bWl4KCBtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAtZHgsIC1keSApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdFx0ICB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIC1keSApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0XHQgIGYueCApLFxuXHRcdFx0XHRcdCBtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAtZHgsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0XHQgIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdFx0ICBmLnggKSxcblx0XHRcdFx0XHQgZi55IClcblx0XHRcdCkgKiAoIDEuMCAvIDkuMCApO1xuXHRcdCNlbGlmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1ZTTSApXG5cdFx0XHRzaGFkb3cgPSBWU01TaGFkb3coIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHksIHNoYWRvd0Nvb3JkLnogKTtcblx0XHQjZWxzZVxuXHRcdFx0c2hhZG93ID0gdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSwgc2hhZG93Q29vcmQueiApO1xuXHRcdCNlbmRpZlxuXHRcdH1cblx0XHRyZXR1cm4gc2hhZG93O1xuXHR9XG5cdHZlYzIgY3ViZVRvVVYoIHZlYzMgdiwgZmxvYXQgdGV4ZWxTaXplWSApIHtcblx0XHR2ZWMzIGFic1YgPSBhYnMoIHYgKTtcblx0XHRmbG9hdCBzY2FsZVRvQ3ViZSA9IDEuMCAvIG1heCggYWJzVi54LCBtYXgoIGFic1YueSwgYWJzVi56ICkgKTtcblx0XHRhYnNWICo9IHNjYWxlVG9DdWJlO1xuXHRcdHYgKj0gc2NhbGVUb0N1YmUgKiAoIDEuMCAtIDIuMCAqIHRleGVsU2l6ZVkgKTtcblx0XHR2ZWMyIHBsYW5hciA9IHYueHk7XG5cdFx0ZmxvYXQgYWxtb3N0QVRleGVsID0gMS41ICogdGV4ZWxTaXplWTtcblx0XHRmbG9hdCBhbG1vc3RPbmUgPSAxLjAgLSBhbG1vc3RBVGV4ZWw7XG5cdFx0aWYgKCBhYnNWLnogPj0gYWxtb3N0T25lICkge1xuXHRcdFx0aWYgKCB2LnogPiAwLjAgKVxuXHRcdFx0XHRwbGFuYXIueCA9IDQuMCAtIHYueDtcblx0XHR9IGVsc2UgaWYgKCBhYnNWLnggPj0gYWxtb3N0T25lICkge1xuXHRcdFx0ZmxvYXQgc2lnblggPSBzaWduKCB2LnggKTtcblx0XHRcdHBsYW5hci54ID0gdi56ICogc2lnblggKyAyLjAgKiBzaWduWDtcblx0XHR9IGVsc2UgaWYgKCBhYnNWLnkgPj0gYWxtb3N0T25lICkge1xuXHRcdFx0ZmxvYXQgc2lnblkgPSBzaWduKCB2LnkgKTtcblx0XHRcdHBsYW5hci54ID0gdi54ICsgMi4wICogc2lnblkgKyAyLjA7XG5cdFx0XHRwbGFuYXIueSA9IHYueiAqIHNpZ25ZIC0gMi4wO1xuXHRcdH1cblx0XHRyZXR1cm4gdmVjMiggMC4xMjUsIDAuMjUgKSAqIHBsYW5hciArIHZlYzIoIDAuMzc1LCAwLjc1ICk7XG5cdH1cblx0ZmxvYXQgZ2V0UG9pbnRTaGFkb3coIHNhbXBsZXIyRCBzaGFkb3dNYXAsIHZlYzIgc2hhZG93TWFwU2l6ZSwgZmxvYXQgc2hhZG93QmlhcywgZmxvYXQgc2hhZG93UmFkaXVzLCB2ZWM0IHNoYWRvd0Nvb3JkLCBmbG9hdCBzaGFkb3dDYW1lcmFOZWFyLCBmbG9hdCBzaGFkb3dDYW1lcmFGYXIgKSB7XG5cdFx0dmVjMiB0ZXhlbFNpemUgPSB2ZWMyKCAxLjAgKSAvICggc2hhZG93TWFwU2l6ZSAqIHZlYzIoIDQuMCwgMi4wICkgKTtcblx0XHR2ZWMzIGxpZ2h0VG9Qb3NpdGlvbiA9IHNoYWRvd0Nvb3JkLnh5ejtcblx0XHRmbG9hdCBkcCA9ICggbGVuZ3RoKCBsaWdodFRvUG9zaXRpb24gKSAtIHNoYWRvd0NhbWVyYU5lYXIgKSAvICggc2hhZG93Q2FtZXJhRmFyIC0gc2hhZG93Q2FtZXJhTmVhciApO1x0XHRkcCArPSBzaGFkb3dCaWFzO1xuXHRcdHZlYzMgYmQzRCA9IG5vcm1hbGl6ZSggbGlnaHRUb1Bvc2l0aW9uICk7XG5cdFx0I2lmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRiApIHx8IGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRl9TT0ZUICkgfHwgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfVlNNIClcblx0XHRcdHZlYzIgb2Zmc2V0ID0gdmVjMiggLSAxLCAxICkgKiBzaGFkb3dSYWRpdXMgKiB0ZXhlbFNpemUueTtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueHl5LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eXksIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh5eCwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXl4LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueHh5LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eHksIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh4eCwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXh4LCB0ZXhlbFNpemUueSApLCBkcCApXG5cdFx0XHQpICogKCAxLjAgLyA5LjAgKTtcblx0XHQjZWxzZVxuXHRcdFx0cmV0dXJuIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QsIHRleGVsU2l6ZS55ICksIGRwICk7XG5cdFx0I2VuZGlmXG5cdH1cbiNlbmRpZiIsc2hhZG93bWFwX3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX1NIQURPV01BUFxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gbWF0NCBkaXJlY3Rpb25hbFNoYWRvd01hdHJpeFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgRGlyZWN0aW9uYWxMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHR9O1xuXHRcdHVuaWZvcm0gRGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHQjaWYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIG1hdDQgc3BvdFNoYWRvd01hdHJpeFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2U3BvdFNoYWRvd0Nvb3JkWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IFNwb3RMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHR9O1xuXHRcdHVuaWZvcm0gU3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodFNoYWRvd3NbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG5cdCNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIG1hdDQgcG9pbnRTaGFkb3dNYXRyaXhbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZQb2ludFNoYWRvd0Nvb3JkWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBQb2ludExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdFx0ZmxvYXQgc2hhZG93Q2FtZXJhTmVhcjtcblx0XHRcdGZsb2F0IHNoYWRvd0NhbWVyYUZhcjtcblx0XHR9O1xuXHRcdHVuaWZvcm0gUG9pbnRMaWdodFNoYWRvdyBwb2ludExpZ2h0U2hhZG93c1sgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG4jZW5kaWYiLHNoYWRvd21hcF92ZXJ0ZXg6IiNpZmRlZiBVU0VfU0hBRE9XTUFQXG5cdCNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwIHx8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwIHx8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHZlYzMgc2hhZG93V29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCB0cmFuc2Zvcm1lZE5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRcdHZlYzQgc2hhZG93V29ybGRQb3NpdGlvbjtcblx0I2VuZGlmXG5cdCNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0RJUl9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHNoYWRvd1dvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uICsgdmVjNCggc2hhZG93V29ybGROb3JtYWwgKiBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgaSBdLnNoYWRvd05vcm1hbEJpYXMsIDAgKTtcblx0XHR2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgaSBdID0gZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXhbIGkgXSAqIHNoYWRvd1dvcmxkUG9zaXRpb247XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0c2hhZG93V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24gKyB2ZWM0KCBzaGFkb3dXb3JsZE5vcm1hbCAqIHNwb3RMaWdodFNoYWRvd3NbIGkgXS5zaGFkb3dOb3JtYWxCaWFzLCAwICk7XG5cdFx0dlNwb3RTaGFkb3dDb29yZFsgaSBdID0gc3BvdFNoYWRvd01hdHJpeFsgaSBdICogc2hhZG93V29ybGRQb3NpdGlvbjtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcblx0I2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHNoYWRvd1dvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uICsgdmVjNCggc2hhZG93V29ybGROb3JtYWwgKiBwb2ludExpZ2h0U2hhZG93c1sgaSBdLnNoYWRvd05vcm1hbEJpYXMsIDAgKTtcblx0XHR2UG9pbnRTaGFkb3dDb29yZFsgaSBdID0gcG9pbnRTaGFkb3dNYXRyaXhbIGkgXSAqIHNoYWRvd1dvcmxkUG9zaXRpb247XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG4jZW5kaWYiLHNoYWRvd21hc2tfcGFyc19mcmFnbWVudDoiZmxvYXQgZ2V0U2hhZG93TWFzaygpIHtcblx0ZmxvYXQgc2hhZG93ID0gMS4wO1xuXHQjaWZkZWYgVVNFX1NIQURPV01BUFxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMFxuXHREaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHQ7XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0RJUl9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdGRpcmVjdGlvbmFsTGlnaHQgPSBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdHNoYWRvdyAqPSByZWNlaXZlU2hhZG93ID8gZ2V0U2hhZG93KCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgaSBdLCBkaXJlY3Rpb25hbExpZ2h0LnNoYWRvd01hcFNpemUsIGRpcmVjdGlvbmFsTGlnaHQuc2hhZG93QmlhcywgZGlyZWN0aW9uYWxMaWdodC5zaGFkb3dSYWRpdXMsIHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcblx0I2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFNwb3RMaWdodFNoYWRvdyBzcG90TGlnaHQ7XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1NQT1RfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRzcG90TGlnaHQgPSBzcG90TGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0c2hhZG93ICo9IHJlY2VpdmVTaGFkb3cgPyBnZXRTaGFkb3coIHNwb3RTaGFkb3dNYXBbIGkgXSwgc3BvdExpZ2h0LnNoYWRvd01hcFNpemUsIHNwb3RMaWdodC5zaGFkb3dCaWFzLCBzcG90TGlnaHQuc2hhZG93UmFkaXVzLCB2U3BvdFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcblx0I2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHQ7XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0cG9pbnRMaWdodCA9IHBvaW50TGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0c2hhZG93ICo9IHJlY2VpdmVTaGFkb3cgPyBnZXRQb2ludFNoYWRvdyggcG9pbnRTaGFkb3dNYXBbIGkgXSwgcG9pbnRMaWdodC5zaGFkb3dNYXBTaXplLCBwb2ludExpZ2h0LnNoYWRvd0JpYXMsIHBvaW50TGlnaHQuc2hhZG93UmFkaXVzLCB2UG9pbnRTaGFkb3dDb29yZFsgaSBdLCBwb2ludExpZ2h0LnNoYWRvd0NhbWVyYU5lYXIsIHBvaW50TGlnaHQuc2hhZG93Q2FtZXJhRmFyICkgOiAxLjA7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNlbmRpZlxuXHRyZXR1cm4gc2hhZG93O1xufSIsc2tpbmJhc2VfdmVydGV4OiIjaWZkZWYgVVNFX1NLSU5OSU5HXG5cdG1hdDQgYm9uZU1hdFggPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgueCApO1xuXHRtYXQ0IGJvbmVNYXRZID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LnkgKTtcblx0bWF0NCBib25lTWF0WiA9IGdldEJvbmVNYXRyaXgoIHNraW5JbmRleC56ICk7XG5cdG1hdDQgYm9uZU1hdFcgPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgudyApO1xuI2VuZGlmIixza2lubmluZ19wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9TS0lOTklOR1xuXHR1bmlmb3JtIG1hdDQgYmluZE1hdHJpeDtcblx0dW5pZm9ybSBtYXQ0IGJpbmRNYXRyaXhJbnZlcnNlO1xuXHQjaWZkZWYgQk9ORV9URVhUVVJFXG5cdFx0dW5pZm9ybSBoaWdocCBzYW1wbGVyMkQgYm9uZVRleHR1cmU7XG5cdFx0dW5pZm9ybSBpbnQgYm9uZVRleHR1cmVTaXplO1xuXHRcdG1hdDQgZ2V0Qm9uZU1hdHJpeCggY29uc3QgaW4gZmxvYXQgaSApIHtcblx0XHRcdGZsb2F0IGogPSBpICogNC4wO1xuXHRcdFx0ZmxvYXQgeCA9IG1vZCggaiwgZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApICk7XG5cdFx0XHRmbG9hdCB5ID0gZmxvb3IoIGogLyBmbG9hdCggYm9uZVRleHR1cmVTaXplICkgKTtcblx0XHRcdGZsb2F0IGR4ID0gMS4wIC8gZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApO1xuXHRcdFx0ZmxvYXQgZHkgPSAxLjAgLyBmbG9hdCggYm9uZVRleHR1cmVTaXplICk7XG5cdFx0XHR5ID0gZHkgKiAoIHkgKyAwLjUgKTtcblx0XHRcdHZlYzQgdjEgPSB0ZXh0dXJlMkQoIGJvbmVUZXh0dXJlLCB2ZWMyKCBkeCAqICggeCArIDAuNSApLCB5ICkgKTtcblx0XHRcdHZlYzQgdjIgPSB0ZXh0dXJlMkQoIGJvbmVUZXh0dXJlLCB2ZWMyKCBkeCAqICggeCArIDEuNSApLCB5ICkgKTtcblx0XHRcdHZlYzQgdjMgPSB0ZXh0dXJlMkQoIGJvbmVUZXh0dXJlLCB2ZWMyKCBkeCAqICggeCArIDIuNSApLCB5ICkgKTtcblx0XHRcdHZlYzQgdjQgPSB0ZXh0dXJlMkQoIGJvbmVUZXh0dXJlLCB2ZWMyKCBkeCAqICggeCArIDMuNSApLCB5ICkgKTtcblx0XHRcdG1hdDQgYm9uZSA9IG1hdDQoIHYxLCB2MiwgdjMsIHY0ICk7XG5cdFx0XHRyZXR1cm4gYm9uZTtcblx0XHR9XG5cdCNlbHNlXG5cdFx0dW5pZm9ybSBtYXQ0IGJvbmVNYXRyaWNlc1sgTUFYX0JPTkVTIF07XG5cdFx0bWF0NCBnZXRCb25lTWF0cml4KCBjb25zdCBpbiBmbG9hdCBpICkge1xuXHRcdFx0bWF0NCBib25lID0gYm9uZU1hdHJpY2VzWyBpbnQoaSkgXTtcblx0XHRcdHJldHVybiBib25lO1xuXHRcdH1cblx0I2VuZGlmXG4jZW5kaWYiLHNraW5uaW5nX3ZlcnRleDoiI2lmZGVmIFVTRV9TS0lOTklOR1xuXHR2ZWM0IHNraW5WZXJ0ZXggPSBiaW5kTWF0cml4ICogdmVjNCggdHJhbnNmb3JtZWQsIDEuMCApO1xuXHR2ZWM0IHNraW5uZWQgPSB2ZWM0KCAwLjAgKTtcblx0c2tpbm5lZCArPSBib25lTWF0WCAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lng7XG5cdHNraW5uZWQgKz0gYm9uZU1hdFkgKiBza2luVmVydGV4ICogc2tpbldlaWdodC55O1xuXHRza2lubmVkICs9IGJvbmVNYXRaICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQuejtcblx0c2tpbm5lZCArPSBib25lTWF0VyAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lnc7XG5cdHRyYW5zZm9ybWVkID0gKCBiaW5kTWF0cml4SW52ZXJzZSAqIHNraW5uZWQgKS54eXo7XG4jZW5kaWYiLHNraW5ub3JtYWxfdmVydGV4OiIjaWZkZWYgVVNFX1NLSU5OSU5HXG5cdG1hdDQgc2tpbk1hdHJpeCA9IG1hdDQoIDAuMCApO1xuXHRza2luTWF0cml4ICs9IHNraW5XZWlnaHQueCAqIGJvbmVNYXRYO1xuXHRza2luTWF0cml4ICs9IHNraW5XZWlnaHQueSAqIGJvbmVNYXRZO1xuXHRza2luTWF0cml4ICs9IHNraW5XZWlnaHQueiAqIGJvbmVNYXRaO1xuXHRza2luTWF0cml4ICs9IHNraW5XZWlnaHQudyAqIGJvbmVNYXRXO1xuXHRza2luTWF0cml4ID0gYmluZE1hdHJpeEludmVyc2UgKiBza2luTWF0cml4ICogYmluZE1hdHJpeDtcblx0b2JqZWN0Tm9ybWFsID0gdmVjNCggc2tpbk1hdHJpeCAqIHZlYzQoIG9iamVjdE5vcm1hbCwgMC4wICkgKS54eXo7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdG9iamVjdFRhbmdlbnQgPSB2ZWM0KCBza2luTWF0cml4ICogdmVjNCggb2JqZWN0VGFuZ2VudCwgMC4wICkgKS54eXo7XG5cdCNlbmRpZlxuI2VuZGlmIixzcGVjdWxhcm1hcF9mcmFnbWVudDoiZmxvYXQgc3BlY3VsYXJTdHJlbmd0aDtcbiNpZmRlZiBVU0VfU1BFQ1VMQVJNQVBcblx0dmVjNCB0ZXhlbFNwZWN1bGFyID0gdGV4dHVyZTJEKCBzcGVjdWxhck1hcCwgdlV2ICk7XG5cdHNwZWN1bGFyU3RyZW5ndGggPSB0ZXhlbFNwZWN1bGFyLnI7XG4jZWxzZVxuXHRzcGVjdWxhclN0cmVuZ3RoID0gMS4wO1xuI2VuZGlmIixzcGVjdWxhcm1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX1NQRUNVTEFSTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIHNwZWN1bGFyTWFwO1xuI2VuZGlmIix0b25lbWFwcGluZ19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFRPTkVfTUFQUElORyApXG5cdGdsX0ZyYWdDb2xvci5yZ2IgPSB0b25lTWFwcGluZyggZ2xfRnJhZ0NvbG9yLnJnYiApO1xuI2VuZGlmIix0b25lbWFwcGluZ19wYXJzX2ZyYWdtZW50OiIjaWZuZGVmIHNhdHVyYXRlXG4jZGVmaW5lIHNhdHVyYXRlKGEpIGNsYW1wKCBhLCAwLjAsIDEuMCApXG4jZW5kaWZcbnVuaWZvcm0gZmxvYXQgdG9uZU1hcHBpbmdFeHBvc3VyZTtcbnZlYzMgTGluZWFyVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7XG5cdHJldHVybiB0b25lTWFwcGluZ0V4cG9zdXJlICogY29sb3I7XG59XG52ZWMzIFJlaW5oYXJkVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7XG5cdGNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmU7XG5cdHJldHVybiBzYXR1cmF0ZSggY29sb3IgLyAoIHZlYzMoIDEuMCApICsgY29sb3IgKSApO1xufVxudmVjMyBPcHRpbWl6ZWRDaW5lb25Ub25lTWFwcGluZyggdmVjMyBjb2xvciApIHtcblx0Y29sb3IgKj0gdG9uZU1hcHBpbmdFeHBvc3VyZTtcblx0Y29sb3IgPSBtYXgoIHZlYzMoIDAuMCApLCBjb2xvciAtIDAuMDA0ICk7XG5cdHJldHVybiBwb3coICggY29sb3IgKiAoIDYuMiAqIGNvbG9yICsgMC41ICkgKSAvICggY29sb3IgKiAoIDYuMiAqIGNvbG9yICsgMS43ICkgKyAwLjA2ICksIHZlYzMoIDIuMiApICk7XG59XG52ZWMzIFJSVEFuZE9EVEZpdCggdmVjMyB2ICkge1xuXHR2ZWMzIGEgPSB2ICogKCB2ICsgMC4wMjQ1Nzg2ICkgLSAwLjAwMDA5MDUzNztcblx0dmVjMyBiID0gdiAqICggMC45ODM3MjkgKiB2ICsgMC40MzI5NTEwICkgKyAwLjIzODA4MTtcblx0cmV0dXJuIGEgLyBiO1xufVxudmVjMyBBQ0VTRmlsbWljVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7XG5cdGNvbnN0IG1hdDMgQUNFU0lucHV0TWF0ID0gbWF0Myhcblx0XHR2ZWMzKCAwLjU5NzE5LCAwLjA3NjAwLCAwLjAyODQwICksXHRcdHZlYzMoIDAuMzU0NTgsIDAuOTA4MzQsIDAuMTMzODMgKSxcblx0XHR2ZWMzKCAwLjA0ODIzLCAwLjAxNTY2LCAwLjgzNzc3IClcblx0KTtcblx0Y29uc3QgbWF0MyBBQ0VTT3V0cHV0TWF0ID0gbWF0Myhcblx0XHR2ZWMzKCAgMS42MDQ3NSwgLTAuMTAyMDgsIC0wLjAwMzI3ICksXHRcdHZlYzMoIC0wLjUzMTA4LCAgMS4xMDgxMywgLTAuMDcyNzYgKSxcblx0XHR2ZWMzKCAtMC4wNzM2NywgLTAuMDA2MDUsICAxLjA3NjAyIClcblx0KTtcblx0Y29sb3IgKj0gdG9uZU1hcHBpbmdFeHBvc3VyZSAvIDAuNjtcblx0Y29sb3IgPSBBQ0VTSW5wdXRNYXQgKiBjb2xvcjtcblx0Y29sb3IgPSBSUlRBbmRPRFRGaXQoIGNvbG9yICk7XG5cdGNvbG9yID0gQUNFU091dHB1dE1hdCAqIGNvbG9yO1xuXHRyZXR1cm4gc2F0dXJhdGUoIGNvbG9yICk7XG59XG52ZWMzIEN1c3RvbVRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkgeyByZXR1cm4gY29sb3I7IH0iLHRyYW5zbWlzc2lvbl9mcmFnbWVudDoiI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0ZmxvYXQgdHJhbnNtaXNzaW9uRmFjdG9yID0gdHJhbnNtaXNzaW9uO1xuXHRmbG9hdCB0aGlja25lc3NGYWN0b3IgPSB0aGlja25lc3M7XG5cdCNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OTUFQXG5cdFx0dHJhbnNtaXNzaW9uRmFjdG9yICo9IHRleHR1cmUyRCggdHJhbnNtaXNzaW9uTWFwLCB2VXYgKS5yO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9USElDS05FU1NNQVBcblx0XHR0aGlja25lc3NGYWN0b3IgKj0gdGV4dHVyZTJEKCB0aGlja25lc3NNYXAsIHZVdiApLmc7XG5cdCNlbmRpZlxuXHR2ZWMzIHBvcyA9IHZXb3JsZFBvc2l0aW9uLnh5eiAvIHZXb3JsZFBvc2l0aW9uLnc7XG5cdHZlYzMgdiA9IG5vcm1hbGl6ZSggY2FtZXJhUG9zaXRpb24gLSBwb3MgKTtcblx0dmVjMyBuID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggbm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdGZsb2F0IGlvciA9ICggMS4wICsgMC40ICogcmVmbGVjdGl2aXR5ICkgLyAoIDEuMCAtIDAuNCAqIHJlZmxlY3Rpdml0eSApO1xuXHR2ZWMzIHRyYW5zbWlzc2lvbiA9IHRyYW5zbWlzc2lvbkZhY3RvciAqIGdldElCTFZvbHVtZVJlZnJhY3Rpb24oXG5cdFx0biwgdiwgcm91Z2huZXNzRmFjdG9yLCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IsIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IsXG5cdFx0cG9zLCBtb2RlbE1hdHJpeCwgdmlld01hdHJpeCwgcHJvamVjdGlvbk1hdHJpeCwgaW9yLCB0aGlja25lc3NGYWN0b3IsXG5cdFx0YXR0ZW51YXRpb25UaW50LCBhdHRlbnVhdGlvbkRpc3RhbmNlICk7XG5cdHRvdGFsRGlmZnVzZSA9IG1peCggdG90YWxEaWZmdXNlLCB0cmFuc21pc3Npb24sIHRyYW5zbWlzc2lvbkZhY3RvciApO1xuI2VuZGlmIix0cmFuc21pc3Npb25fcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0I2lmZGVmIFVTRV9UUkFOU01JU1NJT05NQVBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCB0cmFuc21pc3Npb25NYXA7XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX1RISUNLTkVTU01BUFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHRoaWNrbmVzc01hcDtcblx0I2VuZGlmXG5cdHVuaWZvcm0gdmVjMiB0cmFuc21pc3Npb25TYW1wbGVyU2l6ZTtcblx0dW5pZm9ybSBzYW1wbGVyMkQgdHJhbnNtaXNzaW9uU2FtcGxlck1hcDtcblx0dW5pZm9ybSBtYXQ0IG1vZGVsTWF0cml4O1xuXHR1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDtcblx0dmFyeWluZyB2ZWM0IHZXb3JsZFBvc2l0aW9uO1xuXHR2ZWMzIGdldFZvbHVtZVRyYW5zbWlzc2lvblJheSh2ZWMzIG4sIHZlYzMgdiwgZmxvYXQgdGhpY2tuZXNzLCBmbG9hdCBpb3IsIG1hdDQgbW9kZWxNYXRyaXgpIHtcblx0XHR2ZWMzIHJlZnJhY3Rpb25WZWN0b3IgPSByZWZyYWN0KC12LCBub3JtYWxpemUobiksIDEuMCAvIGlvcik7XG5cdFx0dmVjMyBtb2RlbFNjYWxlO1xuXHRcdG1vZGVsU2NhbGUueCA9IGxlbmd0aCh2ZWMzKG1vZGVsTWF0cml4WzBdLnh5eikpO1xuXHRcdG1vZGVsU2NhbGUueSA9IGxlbmd0aCh2ZWMzKG1vZGVsTWF0cml4WzFdLnh5eikpO1xuXHRcdG1vZGVsU2NhbGUueiA9IGxlbmd0aCh2ZWMzKG1vZGVsTWF0cml4WzJdLnh5eikpO1xuXHRcdHJldHVybiBub3JtYWxpemUocmVmcmFjdGlvblZlY3RvcikgKiB0aGlja25lc3MgKiBtb2RlbFNjYWxlO1xuXHR9XG5cdGZsb2F0IGFwcGx5SW9yVG9Sb3VnaG5lc3MoZmxvYXQgcm91Z2huZXNzLCBmbG9hdCBpb3IpIHtcblx0XHRyZXR1cm4gcm91Z2huZXNzICogY2xhbXAoaW9yICogMi4wIC0gMi4wLCAwLjAsIDEuMCk7XG5cdH1cblx0dmVjMyBnZXRUcmFuc21pc3Npb25TYW1wbGUodmVjMiBmcmFnQ29vcmQsIGZsb2F0IHJvdWdobmVzcywgZmxvYXQgaW9yKSB7XG5cdFx0ZmxvYXQgZnJhbWVidWZmZXJMb2QgPSBsb2cyKHRyYW5zbWlzc2lvblNhbXBsZXJTaXplLngpICogYXBwbHlJb3JUb1JvdWdobmVzcyhyb3VnaG5lc3MsIGlvcik7XG5cdFx0cmV0dXJuIHRleHR1cmUyRExvZEVYVCh0cmFuc21pc3Npb25TYW1wbGVyTWFwLCBmcmFnQ29vcmQueHksIGZyYW1lYnVmZmVyTG9kKS5yZ2I7XG5cdH1cblx0dmVjMyBhcHBseVZvbHVtZUF0dGVudWF0aW9uKHZlYzMgcmFkaWFuY2UsIGZsb2F0IHRyYW5zbWlzc2lvbkRpc3RhbmNlLCB2ZWMzIGF0dGVudWF0aW9uQ29sb3IsIGZsb2F0IGF0dGVudWF0aW9uRGlzdGFuY2UpIHtcblx0XHRpZiAoYXR0ZW51YXRpb25EaXN0YW5jZSA9PSAwLjApIHtcblx0XHRcdHJldHVybiByYWRpYW5jZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dmVjMyBhdHRlbnVhdGlvbkNvZWZmaWNpZW50ID0gLWxvZyhhdHRlbnVhdGlvbkNvbG9yKSAvIGF0dGVudWF0aW9uRGlzdGFuY2U7XG5cdFx0XHR2ZWMzIHRyYW5zbWl0dGFuY2UgPSBleHAoLWF0dGVudWF0aW9uQ29lZmZpY2llbnQgKiB0cmFuc21pc3Npb25EaXN0YW5jZSk7XHRcdFx0cmV0dXJuIHRyYW5zbWl0dGFuY2UgKiByYWRpYW5jZTtcblx0XHR9XG5cdH1cblx0dmVjMyBnZXRJQkxWb2x1bWVSZWZyYWN0aW9uKHZlYzMgbiwgdmVjMyB2LCBmbG9hdCBwZXJjZXB0dWFsUm91Z2huZXNzLCB2ZWMzIGJhc2VDb2xvciwgdmVjMyBzcGVjdWxhckNvbG9yLFxuXHRcdHZlYzMgcG9zaXRpb24sIG1hdDQgbW9kZWxNYXRyaXgsIG1hdDQgdmlld01hdHJpeCwgbWF0NCBwcm9qTWF0cml4LCBmbG9hdCBpb3IsIGZsb2F0IHRoaWNrbmVzcyxcblx0XHR2ZWMzIGF0dGVudWF0aW9uQ29sb3IsIGZsb2F0IGF0dGVudWF0aW9uRGlzdGFuY2UpIHtcblx0XHR2ZWMzIHRyYW5zbWlzc2lvblJheSA9IGdldFZvbHVtZVRyYW5zbWlzc2lvblJheShuLCB2LCB0aGlja25lc3MsIGlvciwgbW9kZWxNYXRyaXgpO1xuXHRcdHZlYzMgcmVmcmFjdGVkUmF5RXhpdCA9IHBvc2l0aW9uICsgdHJhbnNtaXNzaW9uUmF5O1xuXHRcdHZlYzQgbmRjUG9zID0gcHJvak1hdHJpeCAqIHZpZXdNYXRyaXggKiB2ZWM0KHJlZnJhY3RlZFJheUV4aXQsIDEuMCk7XG5cdFx0dmVjMiByZWZyYWN0aW9uQ29vcmRzID0gbmRjUG9zLnh5IC8gbmRjUG9zLnc7XG5cdFx0cmVmcmFjdGlvbkNvb3JkcyArPSAxLjA7XG5cdFx0cmVmcmFjdGlvbkNvb3JkcyAvPSAyLjA7XG5cdFx0dmVjMyB0cmFuc21pdHRlZExpZ2h0ID0gZ2V0VHJhbnNtaXNzaW9uU2FtcGxlKHJlZnJhY3Rpb25Db29yZHMsIHBlcmNlcHR1YWxSb3VnaG5lc3MsIGlvcik7XG5cdFx0dmVjMyBhdHRlbnVhdGVkQ29sb3IgPSBhcHBseVZvbHVtZUF0dGVudWF0aW9uKHRyYW5zbWl0dGVkTGlnaHQsIGxlbmd0aCh0cmFuc21pc3Npb25SYXkpLCBhdHRlbnVhdGlvbkNvbG9yLCBhdHRlbnVhdGlvbkRpc3RhbmNlKTtcblx0XHRyZXR1cm4gKDEuMCAtIHNwZWN1bGFyQ29sb3IpICogYXR0ZW51YXRlZENvbG9yICogYmFzZUNvbG9yO1xuXHR9XG4jZW5kaWYiLHV2X3BhcnNfZnJhZ21lbnQ6IiNpZiAoIGRlZmluZWQoIFVTRV9VViApICYmICEgZGVmaW5lZCggVVZTX1ZFUlRFWF9PTkxZICkgKVxuXHR2YXJ5aW5nIHZlYzIgdlV2O1xuI2VuZGlmIix1dl9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9VVlxuXHQjaWZkZWYgVVZTX1ZFUlRFWF9PTkxZXG5cdFx0dmVjMiB2VXY7XG5cdCNlbHNlXG5cdFx0dmFyeWluZyB2ZWMyIHZVdjtcblx0I2VuZGlmXG5cdHVuaWZvcm0gbWF0MyB1dlRyYW5zZm9ybTtcbiNlbmRpZiIsdXZfdmVydGV4OiIjaWZkZWYgVVNFX1VWXG5cdHZVdiA9ICggdXZUcmFuc2Zvcm0gKiB2ZWMzKCB1diwgMSApICkueHk7XG4jZW5kaWYiLHV2Ml9wYXJzX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0xJR0hUTUFQICkgfHwgZGVmaW5lZCggVVNFX0FPTUFQIClcblx0dmFyeWluZyB2ZWMyIHZVdjI7XG4jZW5kaWYiLHV2Ml9wYXJzX3ZlcnRleDoiI2lmIGRlZmluZWQoIFVTRV9MSUdIVE1BUCApIHx8IGRlZmluZWQoIFVTRV9BT01BUCApXG5cdGF0dHJpYnV0ZSB2ZWMyIHV2Mjtcblx0dmFyeWluZyB2ZWMyIHZVdjI7XG5cdHVuaWZvcm0gbWF0MyB1djJUcmFuc2Zvcm07XG4jZW5kaWYiLHV2Ml92ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfTElHSFRNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQU9NQVAgKVxuXHR2VXYyID0gKCB1djJUcmFuc2Zvcm0gKiB2ZWMzKCB1djIsIDEgKSApLnh5O1xuI2VuZGlmIix3b3JsZHBvc192ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgfHwgZGVmaW5lZCggRElTVEFOQ0UgKSB8fCBkZWZpbmVkICggVVNFX1NIQURPV01BUCApIHx8IGRlZmluZWQgKCBVU0VfVFJBTlNNSVNTSU9OIClcblx0dmVjNCB3b3JsZFBvc2l0aW9uID0gdmVjNCggdHJhbnNmb3JtZWQsIDEuMCApO1xuXHQjaWZkZWYgVVNFX0lOU1RBTkNJTkdcblx0XHR3b3JsZFBvc2l0aW9uID0gaW5zdGFuY2VNYXRyaXggKiB3b3JsZFBvc2l0aW9uO1xuXHQjZW5kaWZcblx0d29ybGRQb3NpdGlvbiA9IG1vZGVsTWF0cml4ICogd29ybGRQb3NpdGlvbjtcbiNlbmRpZiIsYmFja2dyb3VuZF9mcmFnOiJ1bmlmb3JtIHNhbXBsZXIyRCB0MkQ7XG52YXJ5aW5nIHZlYzIgdlV2O1xudm9pZCBtYWluKCkge1xuXHR2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKCB0MkQsIHZVdiApO1xuXHRnbF9GcmFnQ29sb3IgPSBtYXBUZXhlbFRvTGluZWFyKCB0ZXhDb2xvciApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG59IixiYWNrZ3JvdW5kX3ZlcnQ6InZhcnlpbmcgdmVjMiB2VXY7XG51bmlmb3JtIG1hdDMgdXZUcmFuc2Zvcm07XG52b2lkIG1haW4oKSB7XG5cdHZVdiA9ICggdXZUcmFuc2Zvcm0gKiB2ZWMzKCB1diwgMSApICkueHk7XG5cdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24ueHksIDEuMCwgMS4wICk7XG59IixjdWJlX2ZyYWc6IiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG52YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uO1xuI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0dmVjMyB2UmVmbGVjdCA9IHZXb3JsZERpcmVjdGlvbjtcblx0I2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD5cblx0Z2xfRnJhZ0NvbG9yID0gZW52Q29sb3I7XG5cdGdsX0ZyYWdDb2xvci5hICo9IG9wYWNpdHk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cbn0iLGN1YmVfdmVydDoidmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG52b2lkIG1haW4oKSB7XG5cdHZXb3JsZERpcmVjdGlvbiA9IHRyYW5zZm9ybURpcmVjdGlvbiggcG9zaXRpb24sIG1vZGVsTWF0cml4ICk7XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0Z2xfUG9zaXRpb24ueiA9IGdsX1Bvc2l0aW9uLnc7XG59IixkZXB0aF9mcmFnOiIjaWYgREVQVEhfUEFDS0lORyA9PSAzMjAwXG5cdHVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50PlxudmFyeWluZyB2ZWMyIHZIaWdoUHJlY2lzaW9uWlc7XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggMS4wICk7XG5cdCNpZiBERVBUSF9QQUNLSU5HID09IDMyMDBcblx0XHRkaWZmdXNlQ29sb3IuYSA9IG9wYWNpdHk7XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0ZmxvYXQgZnJhZ0Nvb3JkWiA9IDAuNSAqIHZIaWdoUHJlY2lzaW9uWldbMF0gLyB2SGlnaFByZWNpc2lvblpXWzFdICsgMC41O1xuXHQjaWYgREVQVEhfUEFDS0lORyA9PSAzMjAwXG5cdFx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggdmVjMyggMS4wIC0gZnJhZ0Nvb3JkWiApLCBvcGFjaXR5ICk7XG5cdCNlbGlmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMVxuXHRcdGdsX0ZyYWdDb2xvciA9IHBhY2tEZXB0aFRvUkdCQSggZnJhZ0Nvb3JkWiApO1xuXHQjZW5kaWZcbn0iLGRlcHRoX3ZlcnQ6IiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZhcnlpbmcgdmVjMiB2SGlnaFByZWNpc2lvblpXO1xudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaWZkZWYgVVNFX0RJU1BMQUNFTUVOVE1BUFxuXHRcdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0dkhpZ2hQcmVjaXNpb25aVyA9IGdsX1Bvc2l0aW9uLnp3O1xufSIsZGlzdGFuY2VSR0JBX2ZyYWc6IiNkZWZpbmUgRElTVEFOQ0VcbnVuaWZvcm0gdmVjMyByZWZlcmVuY2VQb3NpdGlvbjtcbnVuaWZvcm0gZmxvYXQgbmVhckRpc3RhbmNlO1xudW5pZm9ybSBmbG9hdCBmYXJEaXN0YW5jZTtcbnZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4gKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIDEuMCApO1xuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdGZsb2F0IGRpc3QgPSBsZW5ndGgoIHZXb3JsZFBvc2l0aW9uIC0gcmVmZXJlbmNlUG9zaXRpb24gKTtcblx0ZGlzdCA9ICggZGlzdCAtIG5lYXJEaXN0YW5jZSApIC8gKCBmYXJEaXN0YW5jZSAtIG5lYXJEaXN0YW5jZSApO1xuXHRkaXN0ID0gc2F0dXJhdGUoIGRpc3QgKTtcblx0Z2xfRnJhZ0NvbG9yID0gcGFja0RlcHRoVG9SR0JBKCBkaXN0ICk7XG59IixkaXN0YW5jZVJHQkFfdmVydDoiI2RlZmluZSBESVNUQU5DRVxudmFyeWluZyB2ZWMzIHZXb3JsZFBvc2l0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaWZkZWYgVVNFX0RJU1BMQUNFTUVOVE1BUFxuXHRcdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0dldvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uLnh5ejtcbn0iLGVxdWlyZWN0X2ZyYWc6InVuaWZvcm0gc2FtcGxlcjJEIHRFcXVpcmVjdDtcbnZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxudm9pZCBtYWluKCkge1xuXHR2ZWMzIGRpcmVjdGlvbiA9IG5vcm1hbGl6ZSggdldvcmxkRGlyZWN0aW9uICk7XG5cdHZlYzIgc2FtcGxlVVYgPSBlcXVpcmVjdFV2KCBkaXJlY3Rpb24gKTtcblx0dmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRCggdEVxdWlyZWN0LCBzYW1wbGVVViApO1xuXHRnbF9GcmFnQ29sb3IgPSBtYXBUZXhlbFRvTGluZWFyKCB0ZXhDb2xvciApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG59IixlcXVpcmVjdF92ZXJ0OiJ2YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbnZvaWQgbWFpbigpIHtcblx0dldvcmxkRGlyZWN0aW9uID0gdHJhbnNmb3JtRGlyZWN0aW9uKCBwb3NpdGlvbiwgbW9kZWxNYXRyaXggKTtcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxufSIsbGluZWRhc2hlZF9mcmFnOiJ1bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbnVuaWZvcm0gZmxvYXQgZGFzaFNpemU7XG51bmlmb3JtIGZsb2F0IHRvdGFsU2l6ZTtcbnZhcnlpbmcgZmxvYXQgdkxpbmVEaXN0YW5jZTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHRpZiAoIG1vZCggdkxpbmVEaXN0YW5jZSwgdG90YWxTaXplICkgPiBkYXNoU2l6ZSApIHtcblx0XHRkaXNjYXJkO1xuXHR9XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHZlYzMoIDAuMCApO1xuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdG91dGdvaW5nTGlnaHQgPSBkaWZmdXNlQ29sb3IucmdiO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxufSIsbGluZWRhc2hlZF92ZXJ0OiJ1bmlmb3JtIGZsb2F0IHNjYWxlO1xuYXR0cmlidXRlIGZsb2F0IGxpbmVEaXN0YW5jZTtcbnZhcnlpbmcgZmxvYXQgdkxpbmVEaXN0YW5jZTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0dkxpbmVEaXN0YW5jZSA9IHNjYWxlICogbGluZURpc3RhbmNlO1xuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2hiYXNpY19mcmFnOiJ1bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPHNwZWN1bGFybWFwX2ZyYWdtZW50PlxuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHQjaWZkZWYgVVNFX0xJR0hUTUFQXG5cdFxuXHRcdHZlYzQgbGlnaHRNYXBUZXhlbD0gdGV4dHVyZTJEKCBsaWdodE1hcCwgdlV2MiApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBsaWdodE1hcFRleGVsVG9MaW5lYXIoIGxpZ2h0TWFwVGV4ZWwgKS5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTtcblx0I2Vsc2Vcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gdmVjMyggMS4wICk7XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSAqPSBkaWZmdXNlQ29sb3IucmdiO1xuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2U7XG5cdCNpbmNsdWRlIDxlbnZtYXBfZnJhZ21lbnQ+XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNoYmFzaWNfdmVydDoiI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaWYgZGVmaW5lZCAoIFVTRV9FTlZNQVAgKSB8fCBkZWZpbmVkICggVVNFX1NLSU5OSU5HIClcblx0XHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaGxhbWJlcnRfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIHZlYzMgZW1pc3NpdmU7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG52YXJ5aW5nIHZlYzMgdkxpZ2h0RnJvbnQ7XG52YXJ5aW5nIHZlYzMgdkluZGlyZWN0RnJvbnQ7XG4jaWZkZWYgRE9VQkxFX1NJREVEXG5cdHZhcnlpbmcgdmVjMyB2TGlnaHRCYWNrO1xuXHR2YXJ5aW5nIHZlYzMgdkluZGlyZWN0QmFjaztcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFza19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ID0gUmVmbGVjdGVkTGlnaHQoIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApICk7XG5cdHZlYzMgdG90YWxFbWlzc2l2ZVJhZGlhbmNlID0gZW1pc3NpdmU7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxzcGVjdWxhcm1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PlxuXHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9ICggZ2xfRnJvbnRGYWNpbmcgKSA/IHZJbmRpcmVjdEZyb250IDogdkluZGlyZWN0QmFjaztcblx0I2Vsc2Vcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gdkluZGlyZWN0RnJvbnQ7XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8bGlnaHRtYXBfZnJhZ21lbnQ+XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSAqPSBCUkRGX0RpZmZ1c2VfTGFtYmVydCggZGlmZnVzZUNvbG9yLnJnYiApO1xuXHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSA9ICggZ2xfRnJvbnRGYWNpbmcgKSA/IHZMaWdodEZyb250IDogdkxpZ2h0QmFjaztcblx0I2Vsc2Vcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlID0gdkxpZ2h0RnJvbnQ7XG5cdCNlbmRpZlxuXHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICo9IEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBkaWZmdXNlQ29sb3IucmdiICkgKiBnZXRTaGFkb3dNYXNrKCk7XG5cdCNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD5cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArIHRvdGFsRW1pc3NpdmVSYWRpYW5jZTtcblx0I2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD5cblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD5cbn0iLG1lc2hsYW1iZXJ0X3ZlcnQ6IiNkZWZpbmUgTEFNQkVSVFxudmFyeWluZyB2ZWMzIHZMaWdodEZyb250O1xudmFyeWluZyB2ZWMzIHZJbmRpcmVjdEZyb250O1xuI2lmZGVmIERPVUJMRV9TSURFRFxuXHR2YXJ5aW5nIHZlYzMgdkxpZ2h0QmFjaztcblx0dmFyeWluZyB2ZWMzIHZJbmRpcmVjdEJhY2s7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZW52bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGxpZ2h0c19sYW1iZXJ0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaG1hdGNhcF9mcmFnOiIjZGVmaW5lIE1BVENBUFxudW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG51bmlmb3JtIHNhbXBsZXIyRCBtYXRjYXA7XG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdHZlYzMgdmlld0RpciA9IG5vcm1hbGl6ZSggdlZpZXdQb3NpdGlvbiApO1xuXHR2ZWMzIHggPSBub3JtYWxpemUoIHZlYzMoIHZpZXdEaXIueiwgMC4wLCAtIHZpZXdEaXIueCApICk7XG5cdHZlYzMgeSA9IGNyb3NzKCB2aWV3RGlyLCB4ICk7XG5cdHZlYzIgdXYgPSB2ZWMyKCBkb3QoIHgsIG5vcm1hbCApLCBkb3QoIHksIG5vcm1hbCApICkgKiAwLjQ5NSArIDAuNTtcblx0I2lmZGVmIFVTRV9NQVRDQVBcblx0XHR2ZWM0IG1hdGNhcENvbG9yID0gdGV4dHVyZTJEKCBtYXRjYXAsIHV2ICk7XG5cdFx0bWF0Y2FwQ29sb3IgPSBtYXRjYXBUZXhlbFRvTGluZWFyKCBtYXRjYXBDb2xvciApO1xuXHQjZWxzZVxuXHRcdHZlYzQgbWF0Y2FwQ29sb3IgPSB2ZWM0KCAxLjAgKTtcblx0I2VuZGlmXG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2IgKiBtYXRjYXBDb2xvci5yZ2I7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNobWF0Y2FwX3ZlcnQ6IiNkZWZpbmUgTUFUQ0FQXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuXHQjaWZuZGVmIEZMQVRfU0hBREVEXG5cdFx0dk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcblx0XHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHRcdHZUYW5nZW50ID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZFRhbmdlbnQgKTtcblx0XHRcdHZCaXRhbmdlbnQgPSBub3JtYWxpemUoIGNyb3NzKCB2Tm9ybWFsLCB2VGFuZ2VudCApICogdGFuZ2VudC53ICk7XG5cdFx0I2VuZGlmXG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG5cdHZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xufSIsbWVzaHRvb25fZnJhZzoiI2RlZmluZSBUT09OXG51bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gdmVjMyBlbWlzc2l2ZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxncmFkaWVudG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPGxpZ2h0c190b29uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c190b29uX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfZW5kPlxuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNodG9vbl92ZXJ0OiIjZGVmaW5lIFRPT05cbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8dXYyX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZOb3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG4jZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixtZXNocGhvbmdfZnJhZzoiI2RlZmluZSBQSE9OR1xudW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIHZlYzMgZW1pc3NpdmU7XG51bmlmb3JtIHZlYzMgc3BlY3VsYXI7XG51bmlmb3JtIGZsb2F0IHNoaW5pbmVzcztcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPGxpZ2h0c19waG9uZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzcGVjdWxhcm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8c3BlY3VsYXJtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX3Bob25nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfZW5kPlxuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdCNpbmNsdWRlIDxlbnZtYXBfZnJhZ21lbnQ+XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNocGhvbmdfdmVydDoiI2RlZmluZSBQSE9OR1xudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8dXYyX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZOb3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG4jZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZW52bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaHBoeXNpY2FsX2ZyYWc6IiNkZWZpbmUgU1RBTkRBUkRcbiNpZmRlZiBQSFlTSUNBTFxuXHQjZGVmaW5lIFJFRkxFQ1RJVklUWVxuXHQjZGVmaW5lIENMRUFSQ09BVFxuXHQjZGVmaW5lIFNQRUNVTEFSXG4jZW5kaWZcbnVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSB2ZWMzIGVtaXNzaXZlO1xudW5pZm9ybSBmbG9hdCByb3VnaG5lc3M7XG51bmlmb3JtIGZsb2F0IG1ldGFsbmVzcztcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5cdHVuaWZvcm0gZmxvYXQgdHJhbnNtaXNzaW9uO1xuXHR1bmlmb3JtIGZsb2F0IHRoaWNrbmVzcztcblx0dW5pZm9ybSBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlO1xuXHR1bmlmb3JtIHZlYzMgYXR0ZW51YXRpb25UaW50O1xuI2VuZGlmXG4jaWZkZWYgUkVGTEVDVElWSVRZXG5cdHVuaWZvcm0gZmxvYXQgcmVmbGVjdGl2aXR5O1xuI2VuZGlmXG4jaWZkZWYgU1BFQ1VMQVJcblx0dW5pZm9ybSBmbG9hdCBzcGVjdWxhckludGVuc2l0eTtcblx0dW5pZm9ybSB2ZWMzIHNwZWN1bGFyVGludDtcblx0I2lmZGVmIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHNwZWN1bGFySW50ZW5zaXR5TWFwO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9TUEVDVUxBUlRJTlRNQVBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBzcGVjdWxhclRpbnRNYXA7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaWZkZWYgQ0xFQVJDT0FUXG5cdHVuaWZvcm0gZmxvYXQgY2xlYXJjb2F0O1xuXHR1bmlmb3JtIGZsb2F0IGNsZWFyY29hdFJvdWdobmVzcztcbiNlbmRpZlxuI2lmZGVmIFVTRV9TSEVFTlxuXHR1bmlmb3JtIHZlYzMgc2hlZW47XG4jZW5kaWZcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmFyeWluZyB2ZWMzIHZUYW5nZW50O1xuXHRcdHZhcnlpbmcgdmVjMyB2Qml0YW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPHRyYW5zbWlzc2lvbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8bGlnaHRzX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsZWFyY29hdF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHJvdWdobmVzc21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1ldGFsbmVzc21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cm91Z2huZXNzbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWV0YWxuZXNzbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8Y2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfcGh5c2ljYWxfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9lbmQ+XG5cdCNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD5cblx0dmVjMyB0b3RhbERpZmZ1c2UgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlO1xuXHR2ZWMzIHRvdGFsU3BlY3VsYXIgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXI7XG5cdCNpbmNsdWRlIDx0cmFuc21pc3Npb25fZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHRvdGFsRGlmZnVzZSArIHRvdGFsU3BlY3VsYXIgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNocGh5c2ljYWxfdmVydDoiI2RlZmluZSBTVEFOREFSRFxudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaWZkZWYgVVNFX1RSQU5TTUlTU0lPTlxuXHR2YXJ5aW5nIHZlYzQgdldvcmxkUG9zaXRpb247XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2VGFuZ2VudCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWRUYW5nZW50ICk7XG5cdFx0dkJpdGFuZ2VudCA9IG5vcm1hbGl6ZSggY3Jvc3MoIHZOb3JtYWwsIHZUYW5nZW50ICkgKiB0YW5nZW50LncgKTtcblx0I2VuZGlmXG4jZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG4jaWZkZWYgVVNFX1RSQU5TTUlTU0lPTlxuXHR2V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb247XG4jZW5kaWZcbn0iLG5vcm1hbF9mcmFnOiIjZGVmaW5lIE5PUk1BTFxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2lmIGRlZmluZWQoIEZMQVRfU0hBREVEICkgfHwgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIClcblx0dmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jZW5kaWZcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBwYWNrTm9ybWFsVG9SR0IoIG5vcm1hbCApLCBvcGFjaXR5ICk7XG59Iixub3JtYWxfdmVydDoiI2RlZmluZSBOT1JNQUxcbiNpZiBkZWZpbmVkKCBGTEFUX1NIQURFRCApIHx8IGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApXG5cdHZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2VuZGlmXG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2VGFuZ2VudCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWRUYW5nZW50ICk7XG5cdFx0dkJpdGFuZ2VudCA9IG5vcm1hbGl6ZSggY3Jvc3MoIHZOb3JtYWwsIHZUYW5nZW50ICkgKiB0YW5nZW50LncgKTtcblx0I2VuZGlmXG4jZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG4jaWYgZGVmaW5lZCggRkxBVF9TSEFERUQgKSB8fCBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKVxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcbiNlbmRpZlxufSIscG9pbnRzX2ZyYWc6InVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJ0aWNsZV9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHZlYzMoIDAuMCApO1xuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX3BhcnRpY2xlX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdG91dGdvaW5nTGlnaHQgPSBkaWZmdXNlQ29sb3IucmdiO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxufSIscG9pbnRzX3ZlcnQ6InVuaWZvcm0gZmxvYXQgc2l6ZTtcbnVuaWZvcm0gZmxvYXQgc2NhbGU7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0Z2xfUG9pbnRTaXplID0gc2l6ZTtcblx0I2lmZGVmIFVTRV9TSVpFQVRURU5VQVRJT05cblx0XHRib29sIGlzUGVyc3BlY3RpdmUgPSBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICk7XG5cdFx0aWYgKCBpc1BlcnNwZWN0aXZlICkgZ2xfUG9pbnRTaXplICo9ICggc2NhbGUgLyAtIG12UG9zaXRpb24ueiApO1xuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsc2hhZG93X2ZyYWc6InVuaWZvcm0gdmVjMyBjb2xvcjtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzaGFkb3dtYXNrX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIGNvbG9yLCBvcGFjaXR5ICogKCAxLjAgLSBnZXRTaGFkb3dNYXNrKCkgKSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG59IixzaGFkb3dfdmVydDoiI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixzcHJpdGVfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTtcblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHRvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxufSIsc3ByaXRlX3ZlcnQ6InVuaWZvcm0gZmxvYXQgcm90YXRpb247XG51bmlmb3JtIHZlYzIgY2VudGVyO1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHR2ZWM0IG12UG9zaXRpb24gPSBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCAwLjAsIDAuMCwgMC4wLCAxLjAgKTtcblx0dmVjMiBzY2FsZTtcblx0c2NhbGUueCA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDAgXS54LCBtb2RlbE1hdHJpeFsgMCBdLnksIG1vZGVsTWF0cml4WyAwIF0ueiApICk7XG5cdHNjYWxlLnkgPSBsZW5ndGgoIHZlYzMoIG1vZGVsTWF0cml4WyAxIF0ueCwgbW9kZWxNYXRyaXhbIDEgXS55LCBtb2RlbE1hdHJpeFsgMSBdLnogKSApO1xuXHQjaWZuZGVmIFVTRV9TSVpFQVRURU5VQVRJT05cblx0XHRib29sIGlzUGVyc3BlY3RpdmUgPSBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICk7XG5cdFx0aWYgKCBpc1BlcnNwZWN0aXZlICkgc2NhbGUgKj0gLSBtdlBvc2l0aW9uLno7XG5cdCNlbmRpZlxuXHR2ZWMyIGFsaWduZWRQb3NpdGlvbiA9ICggcG9zaXRpb24ueHkgLSAoIGNlbnRlciAtIHZlYzIoIDAuNSApICkgKSAqIHNjYWxlO1xuXHR2ZWMyIHJvdGF0ZWRQb3NpdGlvbjtcblx0cm90YXRlZFBvc2l0aW9uLnggPSBjb3MoIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueCAtIHNpbiggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi55O1xuXHRyb3RhdGVkUG9zaXRpb24ueSA9IHNpbiggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi54ICsgY29zKCByb3RhdGlvbiApICogYWxpZ25lZFBvc2l0aW9uLnk7XG5cdG12UG9zaXRpb24ueHkgKz0gcm90YXRlZFBvc2l0aW9uO1xuXHRnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtdlBvc2l0aW9uO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59In0sbDB0PXtjb21tb246e2RpZmZ1c2U6e3ZhbHVlOm5ldyAkUXQoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxtYXA6e3ZhbHVlOm51bGx9LHV2VHJhbnNmb3JtOnt2YWx1ZTpuZXcgZ0p0fSx1djJUcmFuc2Zvcm06e3ZhbHVlOm5ldyBnSnR9LGFscGhhTWFwOnt2YWx1ZTpudWxsfX0sc3BlY3VsYXJtYXA6e3NwZWN1bGFyTWFwOnt2YWx1ZTpudWxsfX0sZW52bWFwOntlbnZNYXA6e3ZhbHVlOm51bGx9LGZsaXBFbnZNYXA6e3ZhbHVlOi0xfSxyZWZsZWN0aXZpdHk6e3ZhbHVlOjF9LHJlZnJhY3Rpb25SYXRpbzp7dmFsdWU6Ljk4fSxtYXhNaXBMZXZlbDp7dmFsdWU6MH19LGFvbWFwOnthb01hcDp7dmFsdWU6bnVsbH0sYW9NYXBJbnRlbnNpdHk6e3ZhbHVlOjF9fSxsaWdodG1hcDp7bGlnaHRNYXA6e3ZhbHVlOm51bGx9LGxpZ2h0TWFwSW50ZW5zaXR5Ont2YWx1ZToxfX0sZW1pc3NpdmVtYXA6e2VtaXNzaXZlTWFwOnt2YWx1ZTpudWxsfX0sYnVtcG1hcDp7YnVtcE1hcDp7dmFsdWU6bnVsbH0sYnVtcFNjYWxlOnt2YWx1ZToxfX0sbm9ybWFsbWFwOntub3JtYWxNYXA6e3ZhbHVlOm51bGx9LG5vcm1hbFNjYWxlOnt2YWx1ZTpuZXcgbUp0KDEsMSl9fSxkaXNwbGFjZW1lbnRtYXA6e2Rpc3BsYWNlbWVudE1hcDp7dmFsdWU6bnVsbH0sZGlzcGxhY2VtZW50U2NhbGU6e3ZhbHVlOjF9LGRpc3BsYWNlbWVudEJpYXM6e3ZhbHVlOjB9fSxyb3VnaG5lc3NtYXA6e3JvdWdobmVzc01hcDp7dmFsdWU6bnVsbH19LG1ldGFsbmVzc21hcDp7bWV0YWxuZXNzTWFwOnt2YWx1ZTpudWxsfX0sZ3JhZGllbnRtYXA6e2dyYWRpZW50TWFwOnt2YWx1ZTpudWxsfX0sZm9nOntmb2dEZW5zaXR5Ont2YWx1ZToyNWUtNX0sZm9nTmVhcjp7dmFsdWU6MX0sZm9nRmFyOnt2YWx1ZToyZTN9LGZvZ0NvbG9yOnt2YWx1ZTpuZXcgJFF0KDE2Nzc3MjE1KX19LGxpZ2h0czp7YW1iaWVudExpZ2h0Q29sb3I6e3ZhbHVlOltdfSxsaWdodFByb2JlOnt2YWx1ZTpbXX0sZGlyZWN0aW9uYWxMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2RpcmVjdGlvbjp7fSxjb2xvcjp7fX19LGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntzaGFkb3dCaWFzOnt9LHNoYWRvd05vcm1hbEJpYXM6e30sc2hhZG93UmFkaXVzOnt9LHNoYWRvd01hcFNpemU6e319fSxkaXJlY3Rpb25hbFNoYWRvd01hcDp7dmFsdWU6W119LGRpcmVjdGlvbmFsU2hhZG93TWF0cml4Ont2YWx1ZTpbXX0sc3BvdExpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7Y29sb3I6e30scG9zaXRpb246e30sZGlyZWN0aW9uOnt9LGRpc3RhbmNlOnt9LGNvbmVDb3M6e30scGVudW1icmFDb3M6e30sZGVjYXk6e319fSxzcG90TGlnaHRTaGFkb3dzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntzaGFkb3dCaWFzOnt9LHNoYWRvd05vcm1hbEJpYXM6e30sc2hhZG93UmFkaXVzOnt9LHNoYWRvd01hcFNpemU6e319fSxzcG90U2hhZG93TWFwOnt2YWx1ZTpbXX0sc3BvdFNoYWRvd01hdHJpeDp7dmFsdWU6W119LHBvaW50TGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntjb2xvcjp7fSxwb3NpdGlvbjp7fSxkZWNheTp7fSxkaXN0YW5jZTp7fX19LHBvaW50TGlnaHRTaGFkb3dzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntzaGFkb3dCaWFzOnt9LHNoYWRvd05vcm1hbEJpYXM6e30sc2hhZG93UmFkaXVzOnt9LHNoYWRvd01hcFNpemU6e30sc2hhZG93Q2FtZXJhTmVhcjp7fSxzaGFkb3dDYW1lcmFGYXI6e319fSxwb2ludFNoYWRvd01hcDp7dmFsdWU6W119LHBvaW50U2hhZG93TWF0cml4Ont2YWx1ZTpbXX0saGVtaXNwaGVyZUxpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7ZGlyZWN0aW9uOnt9LHNreUNvbG9yOnt9LGdyb3VuZENvbG9yOnt9fX0scmVjdEFyZWFMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2NvbG9yOnt9LHBvc2l0aW9uOnt9LHdpZHRoOnt9LGhlaWdodDp7fX19LGx0Y18xOnt2YWx1ZTpudWxsfSxsdGNfMjp7dmFsdWU6bnVsbH19LHBvaW50czp7ZGlmZnVzZTp7dmFsdWU6bmV3ICRRdCgxNjc3NzIxNSl9LG9wYWNpdHk6e3ZhbHVlOjF9LHNpemU6e3ZhbHVlOjF9LHNjYWxlOnt2YWx1ZToxfSxtYXA6e3ZhbHVlOm51bGx9LGFscGhhTWFwOnt2YWx1ZTpudWxsfSx1dlRyYW5zZm9ybTp7dmFsdWU6bmV3IGdKdH19LHNwcml0ZTp7ZGlmZnVzZTp7dmFsdWU6bmV3ICRRdCgxNjc3NzIxNSl9LG9wYWNpdHk6e3ZhbHVlOjF9LGNlbnRlcjp7dmFsdWU6bmV3IG1KdCguNSwuNSl9LHJvdGF0aW9uOnt2YWx1ZTowfSxtYXA6e3ZhbHVlOm51bGx9LGFscGhhTWFwOnt2YWx1ZTpudWxsfSx1dlRyYW5zZm9ybTp7dmFsdWU6bmV3IGdKdH19fSxjMHQ9e2Jhc2ljOnt1bmlmb3JtczpVMXQoW2wwdC5jb21tb24sbDB0LnNwZWN1bGFybWFwLGwwdC5lbnZtYXAsbDB0LmFvbWFwLGwwdC5saWdodG1hcCxsMHQuZm9nXSksdmVydGV4U2hhZGVyOnMwdC5tZXNoYmFzaWNfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQubWVzaGJhc2ljX2ZyYWd9LGxhbWJlcnQ6e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuc3BlY3VsYXJtYXAsbDB0LmVudm1hcCxsMHQuYW9tYXAsbDB0LmxpZ2h0bWFwLGwwdC5lbWlzc2l2ZW1hcCxsMHQuZm9nLGwwdC5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgJFF0KDApfX1dKSx2ZXJ0ZXhTaGFkZXI6czB0Lm1lc2hsYW1iZXJ0X3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0Lm1lc2hsYW1iZXJ0X2ZyYWd9LHBob25nOnt1bmlmb3JtczpVMXQoW2wwdC5jb21tb24sbDB0LnNwZWN1bGFybWFwLGwwdC5lbnZtYXAsbDB0LmFvbWFwLGwwdC5saWdodG1hcCxsMHQuZW1pc3NpdmVtYXAsbDB0LmJ1bXBtYXAsbDB0Lm5vcm1hbG1hcCxsMHQuZGlzcGxhY2VtZW50bWFwLGwwdC5mb2csbDB0LmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyAkUXQoMCl9LHNwZWN1bGFyOnt2YWx1ZTpuZXcgJFF0KDExMTg0ODEpfSxzaGluaW5lc3M6e3ZhbHVlOjMwfX1dKSx2ZXJ0ZXhTaGFkZXI6czB0Lm1lc2hwaG9uZ192ZXJ0LGZyYWdtZW50U2hhZGVyOnMwdC5tZXNocGhvbmdfZnJhZ30sc3RhbmRhcmQ6e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuZW52bWFwLGwwdC5hb21hcCxsMHQubGlnaHRtYXAsbDB0LmVtaXNzaXZlbWFwLGwwdC5idW1wbWFwLGwwdC5ub3JtYWxtYXAsbDB0LmRpc3BsYWNlbWVudG1hcCxsMHQucm91Z2huZXNzbWFwLGwwdC5tZXRhbG5lc3NtYXAsbDB0LmZvZyxsMHQubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3ICRRdCgwKX0scm91Z2huZXNzOnt2YWx1ZToxfSxtZXRhbG5lc3M6e3ZhbHVlOjB9LGVudk1hcEludGVuc2l0eTp7dmFsdWU6MX19XSksdmVydGV4U2hhZGVyOnMwdC5tZXNocGh5c2ljYWxfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQubWVzaHBoeXNpY2FsX2ZyYWd9LHRvb246e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuYW9tYXAsbDB0LmxpZ2h0bWFwLGwwdC5lbWlzc2l2ZW1hcCxsMHQuYnVtcG1hcCxsMHQubm9ybWFsbWFwLGwwdC5kaXNwbGFjZW1lbnRtYXAsbDB0LmdyYWRpZW50bWFwLGwwdC5mb2csbDB0LmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyAkUXQoMCl9fV0pLHZlcnRleFNoYWRlcjpzMHQubWVzaHRvb25fdmVydCxmcmFnbWVudFNoYWRlcjpzMHQubWVzaHRvb25fZnJhZ30sbWF0Y2FwOnt1bmlmb3JtczpVMXQoW2wwdC5jb21tb24sbDB0LmJ1bXBtYXAsbDB0Lm5vcm1hbG1hcCxsMHQuZGlzcGxhY2VtZW50bWFwLGwwdC5mb2cse21hdGNhcDp7dmFsdWU6bnVsbH19XSksdmVydGV4U2hhZGVyOnMwdC5tZXNobWF0Y2FwX3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0Lm1lc2htYXRjYXBfZnJhZ30scG9pbnRzOnt1bmlmb3JtczpVMXQoW2wwdC5wb2ludHMsbDB0LmZvZ10pLHZlcnRleFNoYWRlcjpzMHQucG9pbnRzX3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0LnBvaW50c19mcmFnfSxkYXNoZWQ6e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuZm9nLHtzY2FsZTp7dmFsdWU6MX0sZGFzaFNpemU6e3ZhbHVlOjF9LHRvdGFsU2l6ZTp7dmFsdWU6Mn19XSksdmVydGV4U2hhZGVyOnMwdC5saW5lZGFzaGVkX3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0LmxpbmVkYXNoZWRfZnJhZ30sZGVwdGg6e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuZGlzcGxhY2VtZW50bWFwXSksdmVydGV4U2hhZGVyOnMwdC5kZXB0aF92ZXJ0LGZyYWdtZW50U2hhZGVyOnMwdC5kZXB0aF9mcmFnfSxub3JtYWw6e3VuaWZvcm1zOlUxdChbbDB0LmNvbW1vbixsMHQuYnVtcG1hcCxsMHQubm9ybWFsbWFwLGwwdC5kaXNwbGFjZW1lbnRtYXAse29wYWNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjpzMHQubm9ybWFsX3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0Lm5vcm1hbF9mcmFnfSxzcHJpdGU6e3VuaWZvcm1zOlUxdChbbDB0LnNwcml0ZSxsMHQuZm9nXSksdmVydGV4U2hhZGVyOnMwdC5zcHJpdGVfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQuc3ByaXRlX2ZyYWd9LGJhY2tncm91bmQ6e3VuaWZvcm1zOnt1dlRyYW5zZm9ybTp7dmFsdWU6bmV3IGdKdH0sdDJEOnt2YWx1ZTpudWxsfX0sdmVydGV4U2hhZGVyOnMwdC5iYWNrZ3JvdW5kX3ZlcnQsZnJhZ21lbnRTaGFkZXI6czB0LmJhY2tncm91bmRfZnJhZ30sY3ViZTp7dW5pZm9ybXM6VTF0KFtsMHQuZW52bWFwLHtvcGFjaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6czB0LmN1YmVfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQuY3ViZV9mcmFnfSxlcXVpcmVjdDp7dW5pZm9ybXM6e3RFcXVpcmVjdDp7dmFsdWU6bnVsbH19LHZlcnRleFNoYWRlcjpzMHQuZXF1aXJlY3RfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQuZXF1aXJlY3RfZnJhZ30sZGlzdGFuY2VSR0JBOnt1bmlmb3JtczpVMXQoW2wwdC5jb21tb24sbDB0LmRpc3BsYWNlbWVudG1hcCx7cmVmZXJlbmNlUG9zaXRpb246e3ZhbHVlOm5ldyBDSnR9LG5lYXJEaXN0YW5jZTp7dmFsdWU6MX0sZmFyRGlzdGFuY2U6e3ZhbHVlOjFlM319XSksdmVydGV4U2hhZGVyOnMwdC5kaXN0YW5jZVJHQkFfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQuZGlzdGFuY2VSR0JBX2ZyYWd9LHNoYWRvdzp7dW5pZm9ybXM6VTF0KFtsMHQubGlnaHRzLGwwdC5mb2cse2NvbG9yOnt2YWx1ZTpuZXcgJFF0KDApfSxvcGFjaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6czB0LnNoYWRvd192ZXJ0LGZyYWdtZW50U2hhZGVyOnMwdC5zaGFkb3dfZnJhZ319O2Z1bmN0aW9uIHUwdCh0LGUsbixpLHIpe2NvbnN0IG89bmV3ICRRdCgwKTtsZXQgYSxzLGw9MCxjPW51bGwsdT0wLGg9bnVsbDtmdW5jdGlvbiBkKHQsZSl7bi5idWZmZXJzLmNvbG9yLnNldENsZWFyKHQucix0LmcsdC5iLGUscil9cmV0dXJue2dldENsZWFyQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gb30sc2V0Q2xlYXJDb2xvcjpmdW5jdGlvbih0LGU9MSl7by5zZXQodCksbD1lLGQobyxsKX0sZ2V0Q2xlYXJBbHBoYTpmdW5jdGlvbigpe3JldHVybiBsfSxzZXRDbGVhckFscGhhOmZ1bmN0aW9uKHQpe2w9dCxkKG8sbCl9LHJlbmRlcjpmdW5jdGlvbiBwKG4scil7bGV0IHA9ITEsZj0hMD09PXIuaXNTY2VuZT9yLmJhY2tncm91bmQ6bnVsbDtmJiZmLmlzVGV4dHVyZSYmKGY9ZS5nZXQoZikpO2NvbnN0IG09dC54cixnPW0uZ2V0U2Vzc2lvbiYmbS5nZXRTZXNzaW9uKCk7ZyYmImFkZGl0aXZlIj09PWcuZW52aXJvbm1lbnRCbGVuZE1vZGUmJihmPW51bGwpLG51bGw9PT1mP2QobyxsKTpmJiZmLmlzQ29sb3ImJihkKGYsMSkscD0hMCksKHQuYXV0b0NsZWFyfHxwKSYmdC5jbGVhcih0LmF1dG9DbGVhckNvbG9yLHQuYXV0b0NsZWFyRGVwdGgsdC5hdXRvQ2xlYXJTdGVuY2lsKSxmJiYoZi5pc0N1YmVUZXh0dXJlfHxmLm1hcHBpbmc9PT1ZS3QpPyh2b2lkIDA9PT1zJiYocz1uZXcgQjF0KG5ldyBGMXQoMSwxLDEpLG5ldyBHMXQoe25hbWU6IkJhY2tncm91bmRDdWJlTWF0ZXJpYWwiLHVuaWZvcm1zOlYxdChjMHQuY3ViZS51bmlmb3JtcyksdmVydGV4U2hhZGVyOmMwdC5jdWJlLnZlcnRleFNoYWRlcixmcmFnbWVudFNoYWRlcjpjMHQuY3ViZS5mcmFnbWVudFNoYWRlcixzaWRlOjEsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITEsZm9nOiExfSkpLHMuZ2VvbWV0cnkuZGVsZXRlQXR0cmlidXRlKCJub3JtYWwiKSxzLmdlb21ldHJ5LmRlbGV0ZUF0dHJpYnV0ZSgidXYiKSxzLm9uQmVmb3JlUmVuZGVyPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLm1hdHJpeFdvcmxkLmNvcHlQb3NpdGlvbihuLm1hdHJpeFdvcmxkKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHMubWF0ZXJpYWwsImVudk1hcCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVuaWZvcm1zLmVudk1hcC52YWx1ZX19KSxpLnVwZGF0ZShzKSkscy5tYXRlcmlhbC51bmlmb3Jtcy5lbnZNYXAudmFsdWU9ZixzLm1hdGVyaWFsLnVuaWZvcm1zLmZsaXBFbnZNYXAudmFsdWU9Zi5pc0N1YmVUZXh0dXJlJiYhMT09PWYuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPy0xOjEsYz09PWYmJnU9PT1mLnZlcnNpb24mJmg9PT10LnRvbmVNYXBwaW5nfHwocy5tYXRlcmlhbC5uZWVkc1VwZGF0ZT0hMCxjPWYsdT1mLnZlcnNpb24saD10LnRvbmVNYXBwaW5nKSxuLnVuc2hpZnQocyxzLmdlb21ldHJ5LHMubWF0ZXJpYWwsMCwwLG51bGwpKTpmJiZmLmlzVGV4dHVyZSYmKHZvaWQgMD09PWEmJihhPW5ldyBCMXQobmV3IGEwdCgyLDIpLG5ldyBHMXQoe25hbWU6IkJhY2tncm91bmRNYXRlcmlhbCIsdW5pZm9ybXM6VjF0KGMwdC5iYWNrZ3JvdW5kLnVuaWZvcm1zKSx2ZXJ0ZXhTaGFkZXI6YzB0LmJhY2tncm91bmQudmVydGV4U2hhZGVyLGZyYWdtZW50U2hhZGVyOmMwdC5iYWNrZ3JvdW5kLmZyYWdtZW50U2hhZGVyLHNpZGU6MCxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMSxmb2c6ITF9KSksYS5nZW9tZXRyeS5kZWxldGVBdHRyaWJ1dGUoIm5vcm1hbCIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLm1hdGVyaWFsLCJtYXAiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51bmlmb3Jtcy50MkQudmFsdWV9fSksaS51cGRhdGUoYSkpLGEubWF0ZXJpYWwudW5pZm9ybXMudDJELnZhbHVlPWYsITA9PT1mLm1hdHJpeEF1dG9VcGRhdGUmJmYudXBkYXRlTWF0cml4KCksYS5tYXRlcmlhbC51bmlmb3Jtcy51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KGYubWF0cml4KSxjPT09ZiYmdT09PWYudmVyc2lvbiYmaD09PXQudG9uZU1hcHBpbmd8fChhLm1hdGVyaWFsLm5lZWRzVXBkYXRlPSEwLGM9Zix1PWYudmVyc2lvbixoPXQudG9uZU1hcHBpbmcpLG4udW5zaGlmdChhLGEuZ2VvbWV0cnksYS5tYXRlcmlhbCwwLDAsbnVsbCkpfX19ZnVuY3Rpb24gaDB0KHQsZSxuLGkpe2NvbnN0IHI9dC5nZXRQYXJhbWV0ZXIoMzQ5MjEpLG89aS5pc1dlYkdMMj9udWxsOmUuZ2V0KCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpLGE9aS5pc1dlYkdMMnx8bnVsbCE9PW8scz17fSxsPWQobnVsbCk7bGV0IGM9bDtmdW5jdGlvbiB1KGUpe3JldHVybiBpLmlzV2ViR0wyP3QuYmluZFZlcnRleEFycmF5KGUpOm8uYmluZFZlcnRleEFycmF5T0VTKGUpfWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGkuaXNXZWJHTDI/dC5kZWxldGVWZXJ0ZXhBcnJheShlKTpvLmRlbGV0ZVZlcnRleEFycmF5T0VTKGUpfWZ1bmN0aW9uIGQodCl7Y29uc3QgZT1bXSxuPVtdLGk9W107Zm9yKGxldCB0PTA7dDxyO3QrKyllW3RdPTAsblt0XT0wLGlbdF09MDtyZXR1cm57Z2VvbWV0cnk6bnVsbCxwcm9ncmFtOm51bGwsd2lyZWZyYW1lOiExLG5ld0F0dHJpYnV0ZXM6ZSxlbmFibGVkQXR0cmlidXRlczpuLGF0dHJpYnV0ZURpdmlzb3JzOmksb2JqZWN0OnQsYXR0cmlidXRlczp7fSxpbmRleDpudWxsfX1mdW5jdGlvbiBwKCl7Y29uc3QgdD1jLm5ld0F0dHJpYnV0ZXM7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXRbZV09MH1mdW5jdGlvbiBmKHQpe20odCwwKX1mdW5jdGlvbiBtKG4scil7Y29uc3Qgbz1jLmVuYWJsZWRBdHRyaWJ1dGVzLGE9Yy5hdHRyaWJ1dGVEaXZpc29ycztjLm5ld0F0dHJpYnV0ZXNbbl09MSwwPT09b1tuXSYmKHQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkobiksb1tuXT0xKSxhW25dIT09ciYmKChpLmlzV2ViR0wyP3Q6ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSlbaS5pc1dlYkdMMj8idmVydGV4QXR0cmliRGl2aXNvciI6InZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRSJdKG4sciksYVtuXT1yKX1mdW5jdGlvbiBnKCl7Y29uc3QgZT1jLm5ld0F0dHJpYnV0ZXMsbj1jLmVuYWJsZWRBdHRyaWJ1dGVzO2ZvcihsZXQgaT0wLHI9bi5sZW5ndGg7aTxyO2krKyluW2ldIT09ZVtpXSYmKHQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGkpLG5baV09MCl9ZnVuY3Rpb24gXyhlLG4scixvLGEscyl7ITAhPT1pLmlzV2ViR0wyfHw1MTI0IT09ciYmNTEyNSE9PXI/dC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGUsbixyLG8sYSxzKTp0LnZlcnRleEF0dHJpYklQb2ludGVyKGUsbixyLGEscyl9ZnVuY3Rpb24geSgpe3YoKSxjIT09bCYmKGM9bCx1KGMub2JqZWN0KSl9ZnVuY3Rpb24gdigpe2wuZ2VvbWV0cnk9bnVsbCxsLnByb2dyYW09bnVsbCxsLndpcmVmcmFtZT0hMX1yZXR1cm57c2V0dXA6ZnVuY3Rpb24gYihyLGwsaCx5LHYpe2xldCBiPSExO2lmKGEpe2NvbnN0IGU9KGZ1bmN0aW9uIHgoZSxuLHIpe2NvbnN0IGE9ITA9PT1yLndpcmVmcmFtZTtsZXQgbD1zW2UuaWRdO3ZvaWQgMD09PWwmJihsPXt9LHNbZS5pZF09bCk7bGV0IGM9bFtuLmlkXTt2b2lkIDA9PT1jJiYoYz17fSxsW24uaWRdPWMpO2xldCB1PWNbYV07cmV0dXJuIHZvaWQgMD09PXUmJih1PWQoKGZ1bmN0aW9uIGgoKXtyZXR1cm4gaS5pc1dlYkdMMj90LmNyZWF0ZVZlcnRleEFycmF5KCk6by5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpfSkoKSksY1thXT11KSx1fSkoeSxoLGwpO2MhPT1lJiYoYz1lLHUoYy5vYmplY3QpKSxiPShmdW5jdGlvbiB3KHQsZSl7Y29uc3Qgbj1jLmF0dHJpYnV0ZXMsaT10LmF0dHJpYnV0ZXM7bGV0IHI9MDtmb3IoY29uc3QgdCBpbiBpKXtjb25zdCBlPW5bdF0sbz1pW3RdO2lmKHZvaWQgMD09PWUpcmV0dXJuITA7aWYoZS5hdHRyaWJ1dGUhPT1vKXJldHVybiEwO2lmKGUuZGF0YSE9PW8uZGF0YSlyZXR1cm4hMDtyKyt9cmV0dXJuIGMuYXR0cmlidXRlc051bSE9PXJ8fGMuaW5kZXghPT1lfSkoeSx2KSxiJiYoZnVuY3Rpb24gUyh0LGUpe2NvbnN0IG49e30saT10LmF0dHJpYnV0ZXM7bGV0IHI9MDtmb3IoY29uc3QgdCBpbiBpKXtjb25zdCBlPWlbdF0sbz17fTtvLmF0dHJpYnV0ZT1lLGUuZGF0YSYmKG8uZGF0YT1lLmRhdGEpLG5bdF09byxyKyt9Yy5hdHRyaWJ1dGVzPW4sYy5hdHRyaWJ1dGVzTnVtPXIsYy5pbmRleD1lfSkoeSx2KX1lbHNle2NvbnN0IHQ9ITA9PT1sLndpcmVmcmFtZTtjLmdlb21ldHJ5PT09eS5pZCYmYy5wcm9ncmFtPT09aC5pZCYmYy53aXJlZnJhbWU9PT10fHwoYy5nZW9tZXRyeT15LmlkLGMucHJvZ3JhbT1oLmlkLGMud2lyZWZyYW1lPXQsYj0hMCl9ITA9PT1yLmlzSW5zdGFuY2VkTWVzaCYmKGI9ITApLG51bGwhPT12JiZuLnVwZGF0ZSh2LDM0OTYzKSxiJiYoKGZ1bmN0aW9uIE0ocixvLGEscyl7aWYoITE9PT1pLmlzV2ViR0wyJiYoci5pc0luc3RhbmNlZE1lc2h8fHMuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSkmJm51bGw9PT1lLmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpKXJldHVybjtwKCk7Y29uc3QgbD1zLmF0dHJpYnV0ZXMsYz1hLmdldEF0dHJpYnV0ZXMoKSx1PW8uZGVmYXVsdEF0dHJpYnV0ZVZhbHVlcztmb3IoY29uc3QgZSBpbiBjKXtjb25zdCBpPWNbZV07aWYoaT49MCl7Y29uc3Qgbz1sW2VdO2lmKHZvaWQgMCE9PW8pe2NvbnN0IGU9by5ub3JtYWxpemVkLHI9by5pdGVtU2l6ZSxhPW4uZ2V0KG8pO2lmKHZvaWQgMD09PWEpY29udGludWU7Y29uc3QgbD1hLmJ1ZmZlcixjPWEudHlwZSx1PWEuYnl0ZXNQZXJFbGVtZW50O2lmKG8uaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSl7Y29uc3Qgbj1vLmRhdGEsYT1uLnN0cmlkZSxoPW8ub2Zmc2V0O24mJm4uaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj8obShpLG4ubWVzaFBlckF0dHJpYnV0ZSksdm9pZCAwPT09cy5fbWF4SW5zdGFuY2VDb3VudCYmKHMuX21heEluc3RhbmNlQ291bnQ9bi5tZXNoUGVyQXR0cmlidXRlKm4uY291bnQpKTpmKGkpLHQuYmluZEJ1ZmZlcigzNDk2MixsKSxfKGkscixjLGUsYSp1LGgqdSl9ZWxzZSBvLmlzSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlPyhtKGksby5tZXNoUGVyQXR0cmlidXRlKSx2b2lkIDA9PT1zLl9tYXhJbnN0YW5jZUNvdW50JiYocy5fbWF4SW5zdGFuY2VDb3VudD1vLm1lc2hQZXJBdHRyaWJ1dGUqby5jb3VudCkpOmYoaSksdC5iaW5kQnVmZmVyKDM0OTYyLGwpLF8oaSxyLGMsZSwwLDApfWVsc2UgaWYoImluc3RhbmNlTWF0cml4Ij09PWUpe2NvbnN0IGU9bi5nZXQoci5pbnN0YW5jZU1hdHJpeCk7aWYodm9pZCAwPT09ZSljb250aW51ZTtjb25zdCBvPWUuYnVmZmVyLGE9ZS50eXBlO20oaSswLDEpLG0oaSsxLDEpLG0oaSsyLDEpLG0oaSszLDEpLHQuYmluZEJ1ZmZlcigzNDk2MixvKSx0LnZlcnRleEF0dHJpYlBvaW50ZXIoaSswLDQsYSwhMSw2NCwwKSx0LnZlcnRleEF0dHJpYlBvaW50ZXIoaSsxLDQsYSwhMSw2NCwxNiksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGkrMiw0LGEsITEsNjQsMzIpLHQudmVydGV4QXR0cmliUG9pbnRlcihpKzMsNCxhLCExLDY0LDQ4KX1lbHNlIGlmKCJpbnN0YW5jZUNvbG9yIj09PWUpe2NvbnN0IGU9bi5nZXQoci5pbnN0YW5jZUNvbG9yKTtpZih2b2lkIDA9PT1lKWNvbnRpbnVlO2NvbnN0IG89ZS5idWZmZXIsYT1lLnR5cGU7bShpLDEpLHQuYmluZEJ1ZmZlcigzNDk2MixvKSx0LnZlcnRleEF0dHJpYlBvaW50ZXIoaSwzLGEsITEsMTIsMCl9ZWxzZSBpZih2b2lkIDAhPT11KXtjb25zdCBuPXVbZV07aWYodm9pZCAwIT09bilzd2l0Y2gobi5sZW5ndGgpe2Nhc2UgMjp0LnZlcnRleEF0dHJpYjJmdihpLG4pO2JyZWFrO2Nhc2UgMzp0LnZlcnRleEF0dHJpYjNmdihpLG4pO2JyZWFrO2Nhc2UgNDp0LnZlcnRleEF0dHJpYjRmdihpLG4pO2JyZWFrO2RlZmF1bHQ6dC52ZXJ0ZXhBdHRyaWIxZnYoaSxuKX19fX1nKCl9KShyLGwsaCx5KSxudWxsIT09diYmdC5iaW5kQnVmZmVyKDM0OTYzLG4uZ2V0KHYpLmJ1ZmZlcikpfSxyZXNldDp5LHJlc2V0RGVmYXVsdFN0YXRlOnYsZGlzcG9zZTpmdW5jdGlvbiB4KCl7eSgpO2Zvcihjb25zdCB0IGluIHMpe2NvbnN0IGU9c1t0XTtmb3IoY29uc3QgdCBpbiBlKXtjb25zdCBuPWVbdF07Zm9yKGNvbnN0IHQgaW4gbiloKG5bdF0ub2JqZWN0KSxkZWxldGUgblt0XTtkZWxldGUgZVt0XX1kZWxldGUgc1t0XX19LHJlbGVhc2VTdGF0ZXNPZkdlb21ldHJ5OmZ1bmN0aW9uIHcodCl7aWYodm9pZCAwPT09c1t0LmlkXSlyZXR1cm47Y29uc3QgZT1zW3QuaWRdO2Zvcihjb25zdCB0IGluIGUpe2NvbnN0IG49ZVt0XTtmb3IoY29uc3QgdCBpbiBuKWgoblt0XS5vYmplY3QpLGRlbGV0ZSBuW3RdO2RlbGV0ZSBlW3RdfWRlbGV0ZSBzW3QuaWRdfSxyZWxlYXNlU3RhdGVzT2ZQcm9ncmFtOmZ1bmN0aW9uIFModCl7Zm9yKGNvbnN0IGUgaW4gcyl7Y29uc3Qgbj1zW2VdO2lmKHZvaWQgMD09PW5bdC5pZF0pY29udGludWU7Y29uc3QgaT1uW3QuaWRdO2Zvcihjb25zdCB0IGluIGkpaChpW3RdLm9iamVjdCksZGVsZXRlIGlbdF07ZGVsZXRlIG5bdC5pZF19fSxpbml0QXR0cmlidXRlczpwLGVuYWJsZUF0dHJpYnV0ZTpmLGRpc2FibGVVbnVzZWRBdHRyaWJ1dGVzOmd9fWZ1bmN0aW9uIGQwdCh0LGUsbixpKXtjb25zdCByPWkuaXNXZWJHTDI7bGV0IG87dGhpcy5zZXRNb2RlPWZ1bmN0aW9uIGEodCl7bz10fSx0aGlzLnJlbmRlcj1mdW5jdGlvbiBzKGUsaSl7dC5kcmF3QXJyYXlzKG8sZSxpKSxuLnVwZGF0ZShpLG8sMSl9LHRoaXMucmVuZGVySW5zdGFuY2VzPWZ1bmN0aW9uIGwoaSxhLHMpe2lmKDA9PT1zKXJldHVybjtsZXQgbCxjO2lmKHIpbD10LGM9ImRyYXdBcnJheXNJbnN0YW5jZWQiO2Vsc2UgaWYobD1lLmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpLGM9ImRyYXdBcnJheXNJbnN0YW5jZWRBTkdMRSIsbnVsbD09PWwpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xCdWZmZXJSZW5kZXJlcjogdXNpbmcgVEhSRUUuSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkgYnV0IGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgZXh0ZW5zaW9uIEFOR0xFX2luc3RhbmNlZF9hcnJheXMuIik7bFtjXShvLGksYSxzKSxuLnVwZGF0ZShhLG8scyl9fWZ1bmN0aW9uIHAwdCh0LGUsbil7bGV0IGk7ZnVuY3Rpb24gcihlKXtpZigiaGlnaHAiPT09ZSl7aWYodC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzMsMzYzMzgpLnByZWNpc2lvbj4wJiZ0LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMiwzNjMzOCkucHJlY2lzaW9uPjApcmV0dXJuImhpZ2hwIjtlPSJtZWRpdW1wIn1yZXR1cm4ibWVkaXVtcCI9PT1lJiZ0LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMywzNjMzNykucHJlY2lzaW9uPjAmJnQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KDM1NjMyLDM2MzM3KS5wcmVjaXNpb24+MD8ibWVkaXVtcCI6Imxvd3AifWNvbnN0IG89InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0JiZ0IGluc3RhbmNlb2YgV2ViR0wyUmVuZGVyaW5nQ29udGV4dHx8InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJHTDJDb21wdXRlUmVuZGVyaW5nQ29udGV4dCYmdCBpbnN0YW5jZW9mIFdlYkdMMkNvbXB1dGVSZW5kZXJpbmdDb250ZXh0O2xldCBhPXZvaWQgMCE9PW4ucHJlY2lzaW9uP24ucHJlY2lzaW9uOiJoaWdocCI7Y29uc3Qgcz1yKGEpO3MhPT1hJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiIsYSwibm90IHN1cHBvcnRlZCwgdXNpbmciLHMsImluc3RlYWQuIiksYT1zKTtjb25zdCBsPW98fGUuaGFzKCJXRUJHTF9kcmF3X2J1ZmZlcnMiKSxjPSEwPT09bi5sb2dhcml0aG1pY0RlcHRoQnVmZmVyLHU9dC5nZXRQYXJhbWV0ZXIoMzQ5MzApLGg9dC5nZXRQYXJhbWV0ZXIoMzU2NjApLGQ9dC5nZXRQYXJhbWV0ZXIoMzM3OSkscD10LmdldFBhcmFtZXRlcigzNDA3NiksZj10LmdldFBhcmFtZXRlcigzNDkyMSksbT10LmdldFBhcmFtZXRlcigzNjM0NyksZz10LmdldFBhcmFtZXRlcigzNjM0OCksXz10LmdldFBhcmFtZXRlcigzNjM0OSkseT1oPjAsdj1vfHxlLmhhcygiT0VTX3RleHR1cmVfZmxvYXQiKTtyZXR1cm57aXNXZWJHTDI6byxkcmF3QnVmZmVyczpsLGdldE1heEFuaXNvdHJvcHk6ZnVuY3Rpb24gYigpe2lmKHZvaWQgMCE9PWkpcmV0dXJuIGk7aWYoITA9PT1lLmhhcygiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpe2NvbnN0IG49ZS5nZXQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO2k9dC5nZXRQYXJhbWV0ZXIobi5NQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpfWVsc2UgaT0wO3JldHVybiBpfSxnZXRNYXhQcmVjaXNpb246cixwcmVjaXNpb246YSxsb2dhcml0aG1pY0RlcHRoQnVmZmVyOmMsbWF4VGV4dHVyZXM6dSxtYXhWZXJ0ZXhUZXh0dXJlczpoLG1heFRleHR1cmVTaXplOmQsbWF4Q3ViZW1hcFNpemU6cCxtYXhBdHRyaWJ1dGVzOmYsbWF4VmVydGV4VW5pZm9ybXM6bSxtYXhWYXJ5aW5nczpnLG1heEZyYWdtZW50VW5pZm9ybXM6Xyx2ZXJ0ZXhUZXh0dXJlczp5LGZsb2F0RnJhZ21lbnRUZXh0dXJlczp2LGZsb2F0VmVydGV4VGV4dHVyZXM6eSYmdixtYXhTYW1wbGVzOm8/dC5nZXRQYXJhbWV0ZXIoMzYxODMpOjB9fWZ1bmN0aW9uIGYwdCh0KXtjb25zdCBlPXRoaXM7bGV0IG49bnVsbCxpPTAscj0hMSxvPSExO2NvbnN0IGE9bmV3IHQwdCxzPW5ldyBnSnQsbD17dmFsdWU6bnVsbCxuZWVkc1VwZGF0ZTohMX07ZnVuY3Rpb24gYygpe2wudmFsdWUhPT1uJiYobC52YWx1ZT1uLGwubmVlZHNVcGRhdGU9aT4wKSxlLm51bVBsYW5lcz1pLGUubnVtSW50ZXJzZWN0aW9uPTB9ZnVuY3Rpb24gdSh0LG4saSxyKXtjb25zdCBvPW51bGwhPT10P3QubGVuZ3RoOjA7bGV0IGM9bnVsbDtpZigwIT09byl7aWYoYz1sLnZhbHVlLCEwIT09cnx8bnVsbD09PWMpe2NvbnN0IGU9aSs0Km8scj1uLm1hdHJpeFdvcmxkSW52ZXJzZTtzLmdldE5vcm1hbE1hdHJpeChyKSwobnVsbD09PWN8fGMubGVuZ3RoPGUpJiYoYz1uZXcgRmxvYXQzMkFycmF5KGUpKTtmb3IobGV0IGU9MCxuPWk7ZSE9PW87KytlLG4rPTQpYS5jb3B5KHRbZV0pLmFwcGx5TWF0cml4NChyLHMpLGEubm9ybWFsLnRvQXJyYXkoYyxuKSxjW24rM109YS5jb25zdGFudH1sLnZhbHVlPWMsbC5uZWVkc1VwZGF0ZT0hMH1yZXR1cm4gZS5udW1QbGFuZXM9byxlLm51bUludGVyc2VjdGlvbj0wLGN9dGhpcy51bmlmb3JtPWwsdGhpcy5udW1QbGFuZXM9MCx0aGlzLm51bUludGVyc2VjdGlvbj0wLHRoaXMuaW5pdD1mdW5jdGlvbih0LGUsbyl7Y29uc3QgYT0wIT09dC5sZW5ndGh8fGV8fDAhPT1pfHxyO3JldHVybiByPWUsbj11KHQsbywwKSxpPXQubGVuZ3RoLGF9LHRoaXMuYmVnaW5TaGFkb3dzPWZ1bmN0aW9uKCl7bz0hMCx1KG51bGwpfSx0aGlzLmVuZFNoYWRvd3M9ZnVuY3Rpb24oKXtvPSExLGMoKX0sdGhpcy5zZXRTdGF0ZT1mdW5jdGlvbihlLGEscyl7Y29uc3QgaD1lLmNsaXBwaW5nUGxhbmVzLGQ9ZS5jbGlwSW50ZXJzZWN0aW9uLHA9ZS5jbGlwU2hhZG93cyxmPXQuZ2V0KGUpO2lmKCFyfHxudWxsPT09aHx8MD09PWgubGVuZ3RofHxvJiYhcClvP3UobnVsbCk6YygpO2Vsc2V7Y29uc3QgdD1vPzA6aSxlPTQqdDtsZXQgcj1mLmNsaXBwaW5nU3RhdGV8fG51bGw7bC52YWx1ZT1yLHI9dShoLGEsZSxzKTtmb3IobGV0IHQ9MDt0IT09ZTsrK3Qpclt0XT1uW3RdO2YuY2xpcHBpbmdTdGF0ZT1yLHRoaXMubnVtSW50ZXJzZWN0aW9uPWQ/dGhpcy5udW1QbGFuZXM6MCx0aGlzLm51bVBsYW5lcys9dH19fWZ1bmN0aW9uIG0wdCh0KXtsZXQgZT1uZXcgV2Vha01hcDtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGU9PT1XS3Q/dC5tYXBwaW5nPWpLdDplPT09cUt0JiYodC5tYXBwaW5nPUdLdCksdH1mdW5jdGlvbiBpKHQpe2NvbnN0IG49dC50YXJnZXQ7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixpKTtjb25zdCByPWUuZ2V0KG4pO3ZvaWQgMCE9PXImJihlLmRlbGV0ZShuKSxyLmRpc3Bvc2UoKSl9cmV0dXJue2dldDpmdW5jdGlvbiByKG8pe2lmKG8mJm8uaXNUZXh0dXJlJiYhMT09PW8uaXNSZW5kZXJUYXJnZXRUZXh0dXJlKXtjb25zdCByPW8ubWFwcGluZztpZihyPT09V0t0fHxyPT09cUt0KXtpZihlLmhhcyhvKSlyZXR1cm4gbihlLmdldChvKS50ZXh0dXJlLG8ubWFwcGluZyk7e2NvbnN0IHI9by5pbWFnZTtpZihyJiZyLmhlaWdodD4wKXtjb25zdCBhPXQuZ2V0UmVuZGVyVGFyZ2V0KCkscz1uZXcgSzF0KHIuaGVpZ2h0LzIpO3JldHVybiBzLmZyb21FcXVpcmVjdGFuZ3VsYXJUZXh0dXJlKHQsbyksZS5zZXQobyxzKSx0LnNldFJlbmRlclRhcmdldChhKSxvLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGkpLG4ocy50ZXh0dXJlLG8ubWFwcGluZyl9cmV0dXJuIG51bGx9fX1yZXR1cm4gb30sZGlzcG9zZTpmdW5jdGlvbiBvKCl7ZT1uZXcgV2Vha01hcH19fWMwdC5waHlzaWNhbD17dW5pZm9ybXM6VTF0KFtjMHQuc3RhbmRhcmQudW5pZm9ybXMse2NsZWFyY29hdDp7dmFsdWU6MH0sY2xlYXJjb2F0TWFwOnt2YWx1ZTpudWxsfSxjbGVhcmNvYXRSb3VnaG5lc3M6e3ZhbHVlOjB9LGNsZWFyY29hdFJvdWdobmVzc01hcDp7dmFsdWU6bnVsbH0sY2xlYXJjb2F0Tm9ybWFsU2NhbGU6e3ZhbHVlOm5ldyBtSnQoMSwxKX0sY2xlYXJjb2F0Tm9ybWFsTWFwOnt2YWx1ZTpudWxsfSxzaGVlbjp7dmFsdWU6bmV3ICRRdCgwKX0sdHJhbnNtaXNzaW9uOnt2YWx1ZTowfSx0cmFuc21pc3Npb25NYXA6e3ZhbHVlOm51bGx9LHRyYW5zbWlzc2lvblNhbXBsZXJTaXplOnt2YWx1ZTpuZXcgbUp0fSx0cmFuc21pc3Npb25TYW1wbGVyTWFwOnt2YWx1ZTpudWxsfSx0aGlja25lc3M6e3ZhbHVlOjB9LHRoaWNrbmVzc01hcDp7dmFsdWU6bnVsbH0sYXR0ZW51YXRpb25EaXN0YW5jZTp7dmFsdWU6MH0sYXR0ZW51YXRpb25UaW50Ont2YWx1ZTpuZXcgJFF0KDApfSxzcGVjdWxhckludGVuc2l0eTp7dmFsdWU6MH0sc3BlY3VsYXJJbnRlbnNpdHlNYXA6e3ZhbHVlOm51bGx9LHNwZWN1bGFyVGludDp7dmFsdWU6bmV3ICRRdCgxLDEsMSl9LHNwZWN1bGFyVGludE1hcDp7dmFsdWU6bnVsbH19XSksdmVydGV4U2hhZGVyOnMwdC5tZXNocGh5c2ljYWxfdmVydCxmcmFnbWVudFNoYWRlcjpzMHQubWVzaHBoeXNpY2FsX2ZyYWd9O2NsYXNzIGcwdCBleHRlbmRzIFcxdHtjb25zdHJ1Y3Rvcih0PS0xLGU9MSxuPTEsaT0tMSxyPS4xLG89MmUzKXtzdXBlcigpLHRoaXMudHlwZT0iT3J0aG9ncmFwaGljQ2FtZXJhIix0aGlzLnpvb209MSx0aGlzLnZpZXc9bnVsbCx0aGlzLmxlZnQ9dCx0aGlzLnJpZ2h0PWUsdGhpcy50b3A9bix0aGlzLmJvdHRvbT1pLHRoaXMubmVhcj1yLHRoaXMuZmFyPW8sdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksdGhpcy5sZWZ0PXQubGVmdCx0aGlzLnJpZ2h0PXQucmlnaHQsdGhpcy50b3A9dC50b3AsdGhpcy5ib3R0b209dC5ib3R0b20sdGhpcy5uZWFyPXQubmVhcix0aGlzLmZhcj10LmZhcix0aGlzLnpvb209dC56b29tLHRoaXMudmlldz1udWxsPT09dC52aWV3P251bGw6T2JqZWN0LmFzc2lnbih7fSx0LnZpZXcpLHRoaXN9c2V0Vmlld09mZnNldCh0LGUsbixpLHIsbyl7bnVsbD09PXRoaXMudmlldyYmKHRoaXMudmlldz17ZW5hYmxlZDohMCxmdWxsV2lkdGg6MSxmdWxsSGVpZ2h0OjEsb2Zmc2V0WDowLG9mZnNldFk6MCx3aWR0aDoxLGhlaWdodDoxfSksdGhpcy52aWV3LmVuYWJsZWQ9ITAsdGhpcy52aWV3LmZ1bGxXaWR0aD10LHRoaXMudmlldy5mdWxsSGVpZ2h0PWUsdGhpcy52aWV3Lm9mZnNldFg9bix0aGlzLnZpZXcub2Zmc2V0WT1pLHRoaXMudmlldy53aWR0aD1yLHRoaXMudmlldy5oZWlnaHQ9byx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1jbGVhclZpZXdPZmZzZXQoKXtudWxsIT09dGhpcy52aWV3JiYodGhpcy52aWV3LmVuYWJsZWQ9ITEpLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfXVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKXtjb25zdCB0PSh0aGlzLnJpZ2h0LXRoaXMubGVmdCkvKDIqdGhpcy56b29tKSxlPSh0aGlzLnRvcC10aGlzLmJvdHRvbSkvKDIqdGhpcy56b29tKSxuPSh0aGlzLnJpZ2h0K3RoaXMubGVmdCkvMixpPSh0aGlzLnRvcCt0aGlzLmJvdHRvbSkvMjtsZXQgcj1uLXQsbz1uK3QsYT1pK2Uscz1pLWU7aWYobnVsbCE9PXRoaXMudmlldyYmdGhpcy52aWV3LmVuYWJsZWQpe2NvbnN0IHQ9KHRoaXMucmlnaHQtdGhpcy5sZWZ0KS90aGlzLnZpZXcuZnVsbFdpZHRoL3RoaXMuem9vbSxlPSh0aGlzLnRvcC10aGlzLmJvdHRvbSkvdGhpcy52aWV3LmZ1bGxIZWlnaHQvdGhpcy56b29tO3IrPXQqdGhpcy52aWV3Lm9mZnNldFgsbz1yK3QqdGhpcy52aWV3LndpZHRoLGEtPWUqdGhpcy52aWV3Lm9mZnNldFkscz1hLWUqdGhpcy52aWV3LmhlaWdodH10aGlzLnByb2plY3Rpb25NYXRyaXgubWFrZU9ydGhvZ3JhcGhpYyhyLG8sYSxzLHRoaXMubmVhcix0aGlzLmZhciksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMucHJvamVjdGlvbk1hdHJpeCkuaW52ZXJ0KCl9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC56b29tPXRoaXMuem9vbSxlLm9iamVjdC5sZWZ0PXRoaXMubGVmdCxlLm9iamVjdC5yaWdodD10aGlzLnJpZ2h0LGUub2JqZWN0LnRvcD10aGlzLnRvcCxlLm9iamVjdC5ib3R0b209dGhpcy5ib3R0b20sZS5vYmplY3QubmVhcj10aGlzLm5lYXIsZS5vYmplY3QuZmFyPXRoaXMuZmFyLG51bGwhPT10aGlzLnZpZXcmJihlLm9iamVjdC52aWV3PU9iamVjdC5hc3NpZ24oe30sdGhpcy52aWV3KSksZX19ZzB0LnByb3RvdHlwZS5pc09ydGhvZ3JhcGhpY0NhbWVyYT0hMDtjbGFzcyBfMHQgZXh0ZW5kcyBHMXR7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy50eXBlPSJSYXdTaGFkZXJNYXRlcmlhbCJ9fV8wdC5wcm90b3R5cGUuaXNSYXdTaGFkZXJNYXRlcmlhbD0hMDtjb25zdCB5MHQ9TWF0aC5wb3coMiw4KSx2MHQ9Wy4xMjUsLjIxNSwuMzUsLjQ0NiwuNTI2LC41ODJdLGIwdD01K3YwdC5sZW5ndGgseDB0PXtbTlp0XTowLFtJWnRdOjEsW09adF06Mixbelp0XTozLFtEWnRdOjQsW0JadF06NSxbUlp0XTo2fSx3MHQ9bmV3IEtRdCh7c2lkZToxLGRlcHRoV3JpdGU6ITEsZGVwdGhUZXN0OiExfSksUzB0PW5ldyBCMXQobmV3IEYxdCx3MHQpLE0wdD1uZXcgZzB0LHtfbG9kUGxhbmVzOkUwdCxfc2l6ZUxvZHM6VDB0LF9zaWdtYXM6QzB0fT16MHQoKSxBMHQ9bmV3ICRRdDtsZXQgazB0PW51bGw7Y29uc3QgTDB0PSgxK01hdGguc3FydCg1KSkvMixQMHQ9MS9MMHQsTjB0PVtuZXcgQ0p0KDEsMSwxKSxuZXcgQ0p0KC0xLDEsMSksbmV3IENKdCgxLDEsLTEpLG5ldyBDSnQoLTEsMSwtMSksbmV3IENKdCgwLEwwdCxQMHQpLG5ldyBDSnQoMCxMMHQsLVAwdCksbmV3IENKdChQMHQsMCxMMHQpLG5ldyBDSnQoLVAwdCwwLEwwdCksbmV3IENKdChMMHQsUDB0LDApLG5ldyBDSnQoLUwwdCxQMHQsMCldO2Z1bmN0aW9uIEkwdCh0KXtjb25zdCBlPU1hdGgubWF4KHQucix0LmcsdC5iKSxuPU1hdGgubWluKE1hdGgubWF4KE1hdGguY2VpbChNYXRoLmxvZzIoZSkpLC0xMjgpLDEyNyk7cmV0dXJuIHQubXVsdGlwbHlTY2FsYXIoTWF0aC5wb3coMiwtbikpLChuKzEyOCkvMjU1fWNsYXNzIFIwdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9yZW5kZXJlcj10LHRoaXMuX3BpbmdQb25nUmVuZGVyVGFyZ2V0PW51bGwsdGhpcy5fYmx1ck1hdGVyaWFsPShmdW5jdGlvbiBlKHQpe2NvbnN0IGU9bmV3IEZsb2F0MzJBcnJheSh0KSxuPW5ldyBDSnQoMCwxLDApO3JldHVybiBuZXcgXzB0KHtuYW1lOiJTcGhlcmljYWxHYXVzc2lhbkJsdXIiLGRlZmluZXM6e246dH0sdW5pZm9ybXM6e2Vudk1hcDp7dmFsdWU6bnVsbH0sc2FtcGxlczp7dmFsdWU6MX0sd2VpZ2h0czp7dmFsdWU6ZX0sbGF0aXR1ZGluYWw6e3ZhbHVlOiExfSxkVGhldGE6e3ZhbHVlOjB9LG1pcEludDp7dmFsdWU6MH0scG9sZUF4aXM6e3ZhbHVlOm59LGlucHV0RW5jb2Rpbmc6e3ZhbHVlOngwdFszZTNdfSxvdXRwdXRFbmNvZGluZzp7dmFsdWU6eDB0WzNlM119fSx2ZXJ0ZXhTaGFkZXI6IlxuXG5cdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0cHJlY2lzaW9uIG1lZGl1bXAgaW50O1xuXG5cdFx0YXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5cdFx0YXR0cmlidXRlIHZlYzIgdXY7XG5cdFx0YXR0cmlidXRlIGZsb2F0IGZhY2VJbmRleDtcblxuXHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0Ly8gUkggY29vcmRpbmF0ZSBzeXN0ZW07IFBNUkVNIGZhY2UtaW5kZXhpbmcgY29udmVudGlvblxuXHRcdHZlYzMgZ2V0RGlyZWN0aW9uKCB2ZWMyIHV2LCBmbG9hdCBmYWNlICkge1xuXG5cdFx0XHR1diA9IDIuMCAqIHV2IC0gMS4wO1xuXG5cdFx0XHR2ZWMzIGRpcmVjdGlvbiA9IHZlYzMoIHV2LCAxLjAgKTtcblxuXHRcdFx0aWYgKCBmYWNlID09IDAuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24uenl4OyAvLyAoIDEsIHYsIHUgKSBwb3MgeFxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDEuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24ueHp5O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHogKj0gLTEuMDsgLy8gKCAtdSwgMSwgLXYgKSBwb3MgeVxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDIuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24ueCAqPSAtMS4wOyAvLyAoIC11LCB2LCAxICkgcG9zIHpcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAzLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDtcblx0XHRcdFx0ZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLTEsIHYsIC11ICkgbmVnIHhcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSA0LjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnh6eTtcblx0XHRcdFx0ZGlyZWN0aW9uLnh5ICo9IC0xLjA7IC8vICggLXUsIC0xLCB2ICkgbmVnIHlcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSA1LjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uLnogKj0gLTEuMDsgLy8gKCB1LCB2LCAtMSApIG5lZyB6XG5cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGRpcmVjdGlvbjtcblxuXHRcdH1cblxuXHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0dk91dHB1dERpcmVjdGlvbiA9IGdldERpcmVjdGlvbiggdXYsIGZhY2VJbmRleCApO1xuXHRcdFx0Z2xfUG9zaXRpb24gPSB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7XG5cblx0XHR9XG5cdCIsZnJhZ21lbnRTaGFkZXI6IlxuXG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdFx0dmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247XG5cblx0XHRcdHVuaWZvcm0gc2FtcGxlcjJEIGVudk1hcDtcblx0XHRcdHVuaWZvcm0gaW50IHNhbXBsZXM7XG5cdFx0XHR1bmlmb3JtIGZsb2F0IHdlaWdodHNbIG4gXTtcblx0XHRcdHVuaWZvcm0gYm9vbCBsYXRpdHVkaW5hbDtcblx0XHRcdHVuaWZvcm0gZmxvYXQgZFRoZXRhO1xuXHRcdFx0dW5pZm9ybSBmbG9hdCBtaXBJbnQ7XG5cdFx0XHR1bmlmb3JtIHZlYzMgcG9sZUF4aXM7XG5cblx0XHRcdFxuXG5cdFx0dW5pZm9ybSBpbnQgaW5wdXRFbmNvZGluZztcblx0XHR1bmlmb3JtIGludCBvdXRwdXRFbmNvZGluZztcblxuXHRcdCNpbmNsdWRlIDxlbmNvZGluZ3NfcGFyc19mcmFnbWVudD5cblxuXHRcdHZlYzQgaW5wdXRUZXhlbFRvTGluZWFyKCB2ZWM0IHZhbHVlICkge1xuXG5cdFx0XHRpZiAoIGlucHV0RW5jb2RpbmcgPT0gMCApIHtcblxuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMSApIHtcblxuXHRcdFx0XHRyZXR1cm4gc1JHQlRvTGluZWFyKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDIgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQkVUb0xpbmVhciggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAzICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JNVG9MaW5lYXIoIHZhbHVlLCA3LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSA0ICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JNVG9MaW5lYXIoIHZhbHVlLCAxNi4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gNSApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCRFRvTGluZWFyKCB2YWx1ZSwgMjU2LjAgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRyZXR1cm4gR2FtbWFUb0xpbmVhciggdmFsdWUsIDIuMiApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHR2ZWM0IGxpbmVhclRvT3V0cHV0VGV4ZWwoIHZlYzQgdmFsdWUgKSB7XG5cblx0XHRcdGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMCApIHtcblxuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDEgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvc1JHQiggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMiApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JFKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAzICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQk0oIHZhbHVlLCA3LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gNCApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JNKCB2YWx1ZSwgMTYuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSA1ICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQkQoIHZhbHVlLCAyNTYuMCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb0dhbW1hKCB2YWx1ZSwgMi4yICk7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdHZlYzQgZW52TWFwVGV4ZWxUb0xpbmVhciggdmVjNCBjb2xvciApIHtcblxuXHRcdFx0cmV0dXJuIGlucHV0VGV4ZWxUb0xpbmVhciggY29sb3IgKTtcblxuXHRcdH1cblx0XG5cblx0XHRcdCNkZWZpbmUgRU5WTUFQX1RZUEVfQ1VCRV9VVlxuXHRcdFx0I2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cblxuXHRcdFx0dmVjMyBnZXRTYW1wbGUoIGZsb2F0IHRoZXRhLCB2ZWMzIGF4aXMgKSB7XG5cblx0XHRcdFx0ZmxvYXQgY29zVGhldGEgPSBjb3MoIHRoZXRhICk7XG5cdFx0XHRcdC8vIFJvZHJpZ3VlcycgYXhpcy1hbmdsZSByb3RhdGlvblxuXHRcdFx0XHR2ZWMzIHNhbXBsZURpcmVjdGlvbiA9IHZPdXRwdXREaXJlY3Rpb24gKiBjb3NUaGV0YVxuXHRcdFx0XHRcdCsgY3Jvc3MoIGF4aXMsIHZPdXRwdXREaXJlY3Rpb24gKSAqIHNpbiggdGhldGEgKVxuXHRcdFx0XHRcdCsgYXhpcyAqIGRvdCggYXhpcywgdk91dHB1dERpcmVjdGlvbiApICogKCAxLjAgLSBjb3NUaGV0YSApO1xuXG5cdFx0XHRcdHJldHVybiBiaWxpbmVhckN1YmVVViggZW52TWFwLCBzYW1wbGVEaXJlY3Rpb24sIG1pcEludCApO1xuXG5cdFx0XHR9XG5cblx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHR2ZWMzIGF4aXMgPSBsYXRpdHVkaW5hbCA/IHBvbGVBeGlzIDogY3Jvc3MoIHBvbGVBeGlzLCB2T3V0cHV0RGlyZWN0aW9uICk7XG5cblx0XHRcdFx0aWYgKCBhbGwoIGVxdWFsKCBheGlzLCB2ZWMzKCAwLjAgKSApICkgKSB7XG5cblx0XHRcdFx0XHRheGlzID0gdmVjMyggdk91dHB1dERpcmVjdGlvbi56LCAwLjAsIC0gdk91dHB1dERpcmVjdGlvbi54ICk7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGF4aXMgPSBub3JtYWxpemUoIGF4aXMgKTtcblxuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCAwLjAsIDAuMCwgMC4wLCAxLjAgKTtcblx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyAwIF0gKiBnZXRTYW1wbGUoIDAuMCwgYXhpcyApO1xuXG5cdFx0XHRcdGZvciAoIGludCBpID0gMTsgaSA8IG47IGkrKyApIHtcblxuXHRcdFx0XHRcdGlmICggaSA+PSBzYW1wbGVzICkge1xuXG5cdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGZsb2F0IHRoZXRhID0gZFRoZXRhICogZmxvYXQoIGkgKTtcblx0XHRcdFx0XHRnbF9GcmFnQ29sb3IucmdiICs9IHdlaWdodHNbIGkgXSAqIGdldFNhbXBsZSggLTEuMCAqIHRoZXRhLCBheGlzICk7XG5cdFx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyBpIF0gKiBnZXRTYW1wbGUoIHRoZXRhLCBheGlzICk7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IGxpbmVhclRvT3V0cHV0VGV4ZWwoIGdsX0ZyYWdDb2xvciApO1xuXG5cdFx0XHR9XG5cdFx0IixibGVuZGluZzowLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExfSl9KSgyMCksdGhpcy5fZXF1aXJlY3RTaGFkZXI9bnVsbCx0aGlzLl9jdWJlbWFwU2hhZGVyPW51bGwsdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2JsdXJNYXRlcmlhbCl9ZnJvbVNjZW5lKHQsZT0wLG49LjEsaT0xMDApe2swdD10aGlzLl9yZW5kZXJlci5nZXRSZW5kZXJUYXJnZXQoKTtjb25zdCByPXRoaXMuX2FsbG9jYXRlVGFyZ2V0cygpO3JldHVybiB0aGlzLl9zY2VuZVRvQ3ViZVVWKHQsbixpLHIpLGU+MCYmdGhpcy5fYmx1cihyLDAsMCxlKSx0aGlzLl9hcHBseVBNUkVNKHIpLHRoaXMuX2NsZWFudXAocikscn1mcm9tRXF1aXJlY3Rhbmd1bGFyKHQpe3JldHVybiB0aGlzLl9mcm9tVGV4dHVyZSh0KX1mcm9tQ3ViZW1hcCh0KXtyZXR1cm4gdGhpcy5fZnJvbVRleHR1cmUodCl9Y29tcGlsZUN1YmVtYXBTaGFkZXIoKXtudWxsPT09dGhpcy5fY3ViZW1hcFNoYWRlciYmKHRoaXMuX2N1YmVtYXBTaGFkZXI9RjB0KCksdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2N1YmVtYXBTaGFkZXIpKX1jb21waWxlRXF1aXJlY3Rhbmd1bGFyU2hhZGVyKCl7bnVsbD09PXRoaXMuX2VxdWlyZWN0U2hhZGVyJiYodGhpcy5fZXF1aXJlY3RTaGFkZXI9SDB0KCksdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2VxdWlyZWN0U2hhZGVyKSl9ZGlzcG9zZSgpe3RoaXMuX2JsdXJNYXRlcmlhbC5kaXNwb3NlKCksbnVsbCE9PXRoaXMuX2N1YmVtYXBTaGFkZXImJnRoaXMuX2N1YmVtYXBTaGFkZXIuZGlzcG9zZSgpLG51bGwhPT10aGlzLl9lcXVpcmVjdFNoYWRlciYmdGhpcy5fZXF1aXJlY3RTaGFkZXIuZGlzcG9zZSgpO2ZvcihsZXQgdD0wO3Q8RTB0Lmxlbmd0aDt0KyspRTB0W3RdLmRpc3Bvc2UoKX1fY2xlYW51cCh0KXt0aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldC5kaXNwb3NlKCksdGhpcy5fcmVuZGVyZXIuc2V0UmVuZGVyVGFyZ2V0KGswdCksdC5zY2lzc29yVGVzdD0hMSxCMHQodCwwLDAsdC53aWR0aCx0LmhlaWdodCl9X2Zyb21UZXh0dXJlKHQpe2swdD10aGlzLl9yZW5kZXJlci5nZXRSZW5kZXJUYXJnZXQoKTtjb25zdCBlPXRoaXMuX2FsbG9jYXRlVGFyZ2V0cyh0KTtyZXR1cm4gdGhpcy5fdGV4dHVyZVRvQ3ViZVVWKHQsZSksdGhpcy5fYXBwbHlQTVJFTShlKSx0aGlzLl9jbGVhbnVwKGUpLGV9X2FsbG9jYXRlVGFyZ2V0cyh0KXtjb25zdCBlPXttYWdGaWx0ZXI6Skt0LG1pbkZpbHRlcjpKS3QsZ2VuZXJhdGVNaXBtYXBzOiExLHR5cGU6clp0LGZvcm1hdDoxMDIzLGVuY29kaW5nOk8wdCh0KT90LmVuY29kaW5nOk9adCxkZXB0aEJ1ZmZlcjohMX0sbj1EMHQoZSk7cmV0dXJuIG4uZGVwdGhCdWZmZXI9IXQsdGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ9RDB0KGUpLG59X2NvbXBpbGVNYXRlcmlhbCh0KXtjb25zdCBlPW5ldyBCMXQoRTB0WzBdLHQpO3RoaXMuX3JlbmRlcmVyLmNvbXBpbGUoZSxNMHQpfV9zY2VuZVRvQ3ViZVVWKHQsZSxuLGkpe2NvbnN0IHI9bmV3IHExdCg5MCwxLGUsbiksbz1bMSwtMSwxLDEsMSwxXSxhPVsxLDEsMSwtMSwtMSwtMV0scz10aGlzLl9yZW5kZXJlcixsPXMuYXV0b0NsZWFyLGM9cy5vdXRwdXRFbmNvZGluZyx1PXMudG9uZU1hcHBpbmc7cy5nZXRDbGVhckNvbG9yKEEwdCkscy50b25lTWFwcGluZz0wLHMub3V0cHV0RW5jb2Rpbmc9Tlp0LHMuYXV0b0NsZWFyPSExO2xldCBoPSExO2NvbnN0IGQ9dC5iYWNrZ3JvdW5kO2lmKGQpe2lmKGQuaXNDb2xvcil7dzB0LmNvbG9yLmNvcHkoZCkuY29udmVydFNSR0JUb0xpbmVhcigpLHQuYmFja2dyb3VuZD1udWxsO2NvbnN0IGU9STB0KHcwdC5jb2xvcik7dzB0Lm9wYWNpdHk9ZSxoPSEwfX1lbHNle3cwdC5jb2xvci5jb3B5KEEwdCkuY29udmVydFNSR0JUb0xpbmVhcigpO2NvbnN0IHQ9STB0KHcwdC5jb2xvcik7dzB0Lm9wYWNpdHk9dCxoPSEwfWZvcihsZXQgZT0wO2U8NjtlKyspe2NvbnN0IG49ZSUzOzA9PW4/KHIudXAuc2V0KDAsb1tlXSwwKSxyLmxvb2tBdChhW2VdLDAsMCkpOjE9PW4/KHIudXAuc2V0KDAsMCxvW2VdKSxyLmxvb2tBdCgwLGFbZV0sMCkpOihyLnVwLnNldCgwLG9bZV0sMCksci5sb29rQXQoMCwwLGFbZV0pKSxCMHQoaSxuKnkwdCxlPjI/eTB0OjAseTB0LHkwdCkscy5zZXRSZW5kZXJUYXJnZXQoaSksaCYmcy5yZW5kZXIoUzB0LHIpLHMucmVuZGVyKHQscil9cy50b25lTWFwcGluZz11LHMub3V0cHV0RW5jb2Rpbmc9YyxzLmF1dG9DbGVhcj1sfV90ZXh0dXJlVG9DdWJlVVYodCxlKXtjb25zdCBuPXRoaXMuX3JlbmRlcmVyO3QuaXNDdWJlVGV4dHVyZT9udWxsPT10aGlzLl9jdWJlbWFwU2hhZGVyJiYodGhpcy5fY3ViZW1hcFNoYWRlcj1GMHQoKSk6bnVsbD09dGhpcy5fZXF1aXJlY3RTaGFkZXImJih0aGlzLl9lcXVpcmVjdFNoYWRlcj1IMHQoKSk7Y29uc3QgaT10LmlzQ3ViZVRleHR1cmU/dGhpcy5fY3ViZW1hcFNoYWRlcjp0aGlzLl9lcXVpcmVjdFNoYWRlcixyPW5ldyBCMXQoRTB0WzBdLGkpLG89aS51bmlmb3JtcztvLmVudk1hcC52YWx1ZT10LHQuaXNDdWJlVGV4dHVyZXx8by50ZXhlbFNpemUudmFsdWUuc2V0KDEvdC5pbWFnZS53aWR0aCwxL3QuaW1hZ2UuaGVpZ2h0KSxvLmlucHV0RW5jb2RpbmcudmFsdWU9eDB0W3QuZW5jb2RpbmddLG8ub3V0cHV0RW5jb2RpbmcudmFsdWU9eDB0W2UudGV4dHVyZS5lbmNvZGluZ10sQjB0KGUsMCwwLDMqeTB0LDIqeTB0KSxuLnNldFJlbmRlclRhcmdldChlKSxuLnJlbmRlcihyLE0wdCl9X2FwcGx5UE1SRU0odCl7Y29uc3QgZT10aGlzLl9yZW5kZXJlcixuPWUuYXV0b0NsZWFyO2UuYXV0b0NsZWFyPSExO2ZvcihsZXQgZT0xO2U8YjB0O2UrKyl7Y29uc3Qgbj1NYXRoLnNxcnQoQzB0W2VdKkMwdFtlXS1DMHRbZS0xXSpDMHRbZS0xXSk7dGhpcy5fYmx1cih0LGUtMSxlLG4sTjB0WyhlLTEpJU4wdC5sZW5ndGhdKX1lLmF1dG9DbGVhcj1ufV9ibHVyKHQsZSxuLGkscil7Y29uc3Qgbz10aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldDt0aGlzLl9oYWxmQmx1cih0LG8sZSxuLGksImxhdGl0dWRpbmFsIixyKSx0aGlzLl9oYWxmQmx1cihvLHQsbixuLGksImxvbmdpdHVkaW5hbCIscil9X2hhbGZCbHVyKHQsZSxuLGkscixvLGEpe2NvbnN0IHM9dGhpcy5fcmVuZGVyZXIsbD10aGlzLl9ibHVyTWF0ZXJpYWw7ImxhdGl0dWRpbmFsIiE9PW8mJiJsb25naXR1ZGluYWwiIT09byYmY29uc29sZS5lcnJvcigiYmx1ciBkaXJlY3Rpb24gbXVzdCBiZSBlaXRoZXIgbGF0aXR1ZGluYWwgb3IgbG9uZ2l0dWRpbmFsISIpO2NvbnN0IGM9bmV3IEIxdChFMHRbaV0sbCksdT1sLnVuaWZvcm1zLGg9VDB0W25dLTEsZD1pc0Zpbml0ZShyKT9NYXRoLlBJLygyKmgpOjIqTWF0aC5QSS8zOSxwPXIvZCxmPWlzRmluaXRlKHIpPzErTWF0aC5mbG9vcigzKnApOjIwO2Y+MjAmJmNvbnNvbGUud2Fybihgc2lnbWFSYWRpYW5zLCAke3J9LCBpcyB0b28gbGFyZ2UgYW5kIHdpbGwgY2xpcCwgYXMgaXQgcmVxdWVzdGVkICR7Zn0gc2FtcGxlcyB3aGVuIHRoZSBtYXhpbXVtIGlzIHNldCB0byAyMGApO2NvbnN0IG09W107bGV0IGc9MDtmb3IobGV0IHQ9MDt0PDIwOysrdCl7Y29uc3QgZT10L3Asbj1NYXRoLmV4cCgtZSplLzIpO20ucHVzaChuKSwwPT10P2crPW46dDxmJiYoZys9MipuKX1mb3IobGV0IHQ9MDt0PG0ubGVuZ3RoO3QrKyltW3RdPW1bdF0vZzt1LmVudk1hcC52YWx1ZT10LnRleHR1cmUsdS5zYW1wbGVzLnZhbHVlPWYsdS53ZWlnaHRzLnZhbHVlPW0sdS5sYXRpdHVkaW5hbC52YWx1ZT0ibGF0aXR1ZGluYWwiPT09byxhJiYodS5wb2xlQXhpcy52YWx1ZT1hKSx1LmRUaGV0YS52YWx1ZT1kLHUubWlwSW50LnZhbHVlPTgtbix1LmlucHV0RW5jb2RpbmcudmFsdWU9eDB0W3QudGV4dHVyZS5lbmNvZGluZ10sdS5vdXRwdXRFbmNvZGluZy52YWx1ZT14MHRbdC50ZXh0dXJlLmVuY29kaW5nXTtjb25zdCBfPVQwdFtpXTtCMHQoZSwzKk1hdGgubWF4KDAseTB0LTIqXyksKDA9PT1pPzA6Mip5MHQpKzIqXyooaT40P2ktOCs0OjApLDMqXywyKl8pLHMuc2V0UmVuZGVyVGFyZ2V0KGUpLHMucmVuZGVyKGMsTTB0KX19ZnVuY3Rpb24gTzB0KHQpe3JldHVybiB2b2lkIDAhPT10JiZ0LnR5cGU9PT1yWnQmJih0LmVuY29kaW5nPT09Tlp0fHx0LmVuY29kaW5nPT09SVp0fHx0LmVuY29kaW5nPT09Ulp0KX1mdW5jdGlvbiB6MHQoKXtjb25zdCB0PVtdLGU9W10sbj1bXTtsZXQgaT04O2ZvcihsZXQgcj0wO3I8YjB0O3IrKyl7Y29uc3Qgbz1NYXRoLnBvdygyLGkpO2UucHVzaChvKTtsZXQgYT0xL287cj40P2E9djB0W3ItOCs0LTFdOjA9PXImJihhPTApLG4ucHVzaChhKTtjb25zdCBzPTEvKG8tMSksbD0tcy8yLGM9MStzLzIsdT1bbCxsLGMsbCxjLGMsbCxsLGMsYyxsLGNdLGg9NixkPTYscD0zLGY9MixtPTEsZz1uZXcgRmxvYXQzMkFycmF5KHAqZCpoKSxfPW5ldyBGbG9hdDMyQXJyYXkoZipkKmgpLHk9bmV3IEZsb2F0MzJBcnJheShtKmQqaCk7Zm9yKGxldCB0PTA7dDxoO3QrKyl7Y29uc3QgZT10JTMqMi8zLTEsbj10PjI/MDotMTtnLnNldChbZSxuLDAsZSsyLzMsbiwwLGUrMi8zLG4rMSwwLGUsbiwwLGUrMi8zLG4rMSwwLGUsbisxLDBdLHAqZCp0KSxfLnNldCh1LGYqZCp0KSx5LnNldChbdCx0LHQsdCx0LHRdLG0qZCp0KX1jb25zdCB2PW5ldyBiMXQ7di5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgUVF0KGcscCkpLHYuc2V0QXR0cmlidXRlKCJ1diIsbmV3IFFRdChfLGYpKSx2LnNldEF0dHJpYnV0ZSgiZmFjZUluZGV4IixuZXcgUVF0KHksbSkpLHQucHVzaCh2KSxpPjQmJmktLX1yZXR1cm57X2xvZFBsYW5lczp0LF9zaXplTG9kczplLF9zaWdtYXM6bn19ZnVuY3Rpb24gRDB0KHQpe2NvbnN0IGU9bmV3IFNKdCgzKnkwdCwzKnkwdCx0KTtyZXR1cm4gZS50ZXh0dXJlLm1hcHBpbmc9WUt0LGUudGV4dHVyZS5uYW1lPSJQTVJFTS5jdWJlVXYiLGUuc2Npc3NvclRlc3Q9ITAsZX1mdW5jdGlvbiBCMHQodCxlLG4saSxyKXt0LnZpZXdwb3J0LnNldChlLG4saSxyKSx0LnNjaXNzb3Iuc2V0KGUsbixpLHIpfWZ1bmN0aW9uIEgwdCgpe2NvbnN0IHQ9bmV3IG1KdCgxLDEpO3JldHVybiBuZXcgXzB0KHtuYW1lOiJFcXVpcmVjdGFuZ3VsYXJUb0N1YmVVViIsdW5pZm9ybXM6e2Vudk1hcDp7dmFsdWU6bnVsbH0sdGV4ZWxTaXplOnt2YWx1ZTp0fSxpbnB1dEVuY29kaW5nOnt2YWx1ZTp4MHRbM2UzXX0sb3V0cHV0RW5jb2Rpbmc6e3ZhbHVlOngwdFszZTNdfX0sdmVydGV4U2hhZGVyOiJcblxuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdGF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXHRcdGF0dHJpYnV0ZSB2ZWMyIHV2O1xuXHRcdGF0dHJpYnV0ZSBmbG9hdCBmYWNlSW5kZXg7XG5cblx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdC8vIFJIIGNvb3JkaW5hdGUgc3lzdGVtOyBQTVJFTSBmYWNlLWluZGV4aW5nIGNvbnZlbnRpb25cblx0XHR2ZWMzIGdldERpcmVjdGlvbiggdmVjMiB1diwgZmxvYXQgZmFjZSApIHtcblxuXHRcdFx0dXYgPSAyLjAgKiB1diAtIDEuMDtcblxuXHRcdFx0dmVjMyBkaXJlY3Rpb24gPSB2ZWMzKCB1diwgMS4wICk7XG5cblx0XHRcdGlmICggZmFjZSA9PSAwLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDsgLy8gKCAxLCB2LCB1ICkgcG9zIHhcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAxLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnh6eTtcblx0XHRcdFx0ZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLXUsIDEsIC12ICkgcG9zIHlcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uLnggKj0gLTEuMDsgLy8gKCAtdSwgdiwgMSApIHBvcyB6XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC0xLCB2LCAtdSApIG5lZyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eSAqPSAtMS4wOyAvLyAoIC11LCAtMSwgdiApIG5lZyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi56ICo9IC0xLjA7IC8vICggdSwgdiwgLTEgKSBuZWcgelxuXG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBkaXJlY3Rpb247XG5cblx0XHR9XG5cblx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdHZPdXRwdXREaXJlY3Rpb24gPSBnZXREaXJlY3Rpb24oIHV2LCBmYWNlSW5kZXggKTtcblx0XHRcdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApO1xuXG5cdFx0fVxuXHQiLGZyYWdtZW50U2hhZGVyOiJcblxuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7XG5cdFx0XHR1bmlmb3JtIHZlYzIgdGV4ZWxTaXplO1xuXG5cdFx0XHRcblxuXHRcdHVuaWZvcm0gaW50IGlucHV0RW5jb2Rpbmc7XG5cdFx0dW5pZm9ybSBpbnQgb3V0cHV0RW5jb2Rpbmc7XG5cblx0XHQjaW5jbHVkZSA8ZW5jb2RpbmdzX3BhcnNfZnJhZ21lbnQ+XG5cblx0XHR2ZWM0IGlucHV0VGV4ZWxUb0xpbmVhciggdmVjNCB2YWx1ZSApIHtcblxuXHRcdFx0aWYgKCBpbnB1dEVuY29kaW5nID09IDAgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDEgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHNSR0JUb0xpbmVhciggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAyICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JFVG9MaW5lYXIoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMyApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCTVRvTGluZWFyKCB2YWx1ZSwgNy4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gNCApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCTVRvTGluZWFyKCB2YWx1ZSwgMTYuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDUgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQkRUb0xpbmVhciggdmFsdWUsIDI1Ni4wICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0cmV0dXJuIEdhbW1hVG9MaW5lYXIoIHZhbHVlLCAyLjIgKTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0dmVjNCBsaW5lYXJUb091dHB1dFRleGVsKCB2ZWM0IHZhbHVlICkge1xuXG5cdFx0XHRpZiAoIG91dHB1dEVuY29kaW5nID09IDAgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAxICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb3NSR0IoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDIgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCRSggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMyApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JNKCB2YWx1ZSwgNy4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCTSggdmFsdWUsIDE2LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gNSApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JEKCB2YWx1ZSwgMjU2LjAgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9HYW1tYSggdmFsdWUsIDIuMiApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHR2ZWM0IGVudk1hcFRleGVsVG9MaW5lYXIoIHZlYzQgY29sb3IgKSB7XG5cblx0XHRcdHJldHVybiBpbnB1dFRleGVsVG9MaW5lYXIoIGNvbG9yICk7XG5cblx0XHR9XG5cdFxuXG5cdFx0XHQjaW5jbHVkZSA8Y29tbW9uPlxuXG5cdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggMC4wLCAwLjAsIDAuMCwgMS4wICk7XG5cblx0XHRcdFx0dmVjMyBvdXRwdXREaXJlY3Rpb24gPSBub3JtYWxpemUoIHZPdXRwdXREaXJlY3Rpb24gKTtcblx0XHRcdFx0dmVjMiB1diA9IGVxdWlyZWN0VXYoIG91dHB1dERpcmVjdGlvbiApO1xuXG5cdFx0XHRcdHZlYzIgZiA9IGZyYWN0KCB1diAvIHRleGVsU2l6ZSAtIDAuNSApO1xuXHRcdFx0XHR1diAtPSBmICogdGV4ZWxTaXplO1xuXHRcdFx0XHR2ZWMzIHRsID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXHRcdFx0XHR1di54ICs9IHRleGVsU2l6ZS54O1xuXHRcdFx0XHR2ZWMzIHRyID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXHRcdFx0XHR1di55ICs9IHRleGVsU2l6ZS55O1xuXHRcdFx0XHR2ZWMzIGJyID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXHRcdFx0XHR1di54IC09IHRleGVsU2l6ZS54O1xuXHRcdFx0XHR2ZWMzIGJsID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXG5cdFx0XHRcdHZlYzMgdG0gPSBtaXgoIHRsLCB0ciwgZi54ICk7XG5cdFx0XHRcdHZlYzMgYm0gPSBtaXgoIGJsLCBiciwgZi54ICk7XG5cdFx0XHRcdGdsX0ZyYWdDb2xvci5yZ2IgPSBtaXgoIHRtLCBibSwgZi55ICk7XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gbGluZWFyVG9PdXRwdXRUZXhlbCggZ2xfRnJhZ0NvbG9yICk7XG5cblx0XHRcdH1cblx0XHQiLGJsZW5kaW5nOjAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITF9KX1mdW5jdGlvbiBGMHQoKXtyZXR1cm4gbmV3IF8wdCh7bmFtZToiQ3ViZW1hcFRvQ3ViZVVWIix1bmlmb3Jtczp7ZW52TWFwOnt2YWx1ZTpudWxsfSxpbnB1dEVuY29kaW5nOnt2YWx1ZTp4MHRbM2UzXX0sb3V0cHV0RW5jb2Rpbmc6e3ZhbHVlOngwdFszZTNdfX0sdmVydGV4U2hhZGVyOiJcblxuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdGF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXHRcdGF0dHJpYnV0ZSB2ZWMyIHV2O1xuXHRcdGF0dHJpYnV0ZSBmbG9hdCBmYWNlSW5kZXg7XG5cblx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdC8vIFJIIGNvb3JkaW5hdGUgc3lzdGVtOyBQTVJFTSBmYWNlLWluZGV4aW5nIGNvbnZlbnRpb25cblx0XHR2ZWMzIGdldERpcmVjdGlvbiggdmVjMiB1diwgZmxvYXQgZmFjZSApIHtcblxuXHRcdFx0dXYgPSAyLjAgKiB1diAtIDEuMDtcblxuXHRcdFx0dmVjMyBkaXJlY3Rpb24gPSB2ZWMzKCB1diwgMS4wICk7XG5cblx0XHRcdGlmICggZmFjZSA9PSAwLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDsgLy8gKCAxLCB2LCB1ICkgcG9zIHhcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAxLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnh6eTtcblx0XHRcdFx0ZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLXUsIDEsIC12ICkgcG9zIHlcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uLnggKj0gLTEuMDsgLy8gKCAtdSwgdiwgMSApIHBvcyB6XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC0xLCB2LCAtdSApIG5lZyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eSAqPSAtMS4wOyAvLyAoIC11LCAtMSwgdiApIG5lZyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi56ICo9IC0xLjA7IC8vICggdSwgdiwgLTEgKSBuZWcgelxuXG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBkaXJlY3Rpb247XG5cblx0XHR9XG5cblx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdHZPdXRwdXREaXJlY3Rpb24gPSBnZXREaXJlY3Rpb24oIHV2LCBmYWNlSW5kZXggKTtcblx0XHRcdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApO1xuXG5cdFx0fVxuXHQiLGZyYWdtZW50U2hhZGVyOiJcblxuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0XHR1bmlmb3JtIHNhbXBsZXJDdWJlIGVudk1hcDtcblxuXHRcdFx0XG5cblx0XHR1bmlmb3JtIGludCBpbnB1dEVuY29kaW5nO1xuXHRcdHVuaWZvcm0gaW50IG91dHB1dEVuY29kaW5nO1xuXG5cdFx0I2luY2x1ZGUgPGVuY29kaW5nc19wYXJzX2ZyYWdtZW50PlxuXG5cdFx0dmVjNCBpbnB1dFRleGVsVG9MaW5lYXIoIHZlYzQgdmFsdWUgKSB7XG5cblx0XHRcdGlmICggaW5wdXRFbmNvZGluZyA9PSAwICkge1xuXG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAxICkge1xuXG5cdFx0XHRcdHJldHVybiBzUkdCVG9MaW5lYXIoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMiApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCRVRvTGluZWFyKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDMgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQk1Ub0xpbmVhciggdmFsdWUsIDcuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQk1Ub0xpbmVhciggdmFsdWUsIDE2LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSA1ICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JEVG9MaW5lYXIoIHZhbHVlLCAyNTYuMCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHJldHVybiBHYW1tYVRvTGluZWFyKCB2YWx1ZSwgMi4yICk7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdHZlYzQgbGluZWFyVG9PdXRwdXRUZXhlbCggdmVjNCB2YWx1ZSApIHtcblxuXHRcdFx0aWYgKCBvdXRwdXRFbmNvZGluZyA9PSAwICkge1xuXG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMSApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9zUkdCKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAyICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQkUoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDMgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCTSggdmFsdWUsIDcuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSA0ICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQk0oIHZhbHVlLCAxNi4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDUgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCRCggdmFsdWUsIDI1Ni4wICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvR2FtbWEoIHZhbHVlLCAyLjIgKTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0dmVjNCBlbnZNYXBUZXhlbFRvTGluZWFyKCB2ZWM0IGNvbG9yICkge1xuXG5cdFx0XHRyZXR1cm4gaW5wdXRUZXhlbFRvTGluZWFyKCBjb2xvciApO1xuXG5cdFx0fVxuXHRcblxuXHRcdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApO1xuXHRcdFx0XHRnbF9GcmFnQ29sb3IucmdiID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZUN1YmUoIGVudk1hcCwgdmVjMyggLSB2T3V0cHV0RGlyZWN0aW9uLngsIHZPdXRwdXREaXJlY3Rpb24ueXogKSApICkucmdiO1xuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSBsaW5lYXJUb091dHB1dFRleGVsKCBnbF9GcmFnQ29sb3IgKTtcblxuXHRcdFx0fVxuXHRcdCIsYmxlbmRpbmc6MCxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMX0pfWZ1bmN0aW9uIFYwdCh0KXtsZXQgZT1uZXcgV2Vha01hcCxuPW51bGw7ZnVuY3Rpb24gaSh0KXtjb25zdCBuPXQudGFyZ2V0O24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsaSk7Y29uc3Qgcj1lLmdldChuKTt2b2lkIDAhPT1yJiYoci5kZWxldGUobiksci5kaXNwb3NlKCkpfXJldHVybntnZXQ6ZnVuY3Rpb24gcihvKXtpZihvJiZvLmlzVGV4dHVyZSYmITE9PT1vLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZSl7Y29uc3Qgcj1vLm1hcHBpbmcsYT1yPT09V0t0fHxyPT09cUt0LHM9cj09PWpLdHx8cj09PUdLdDtpZihhfHxzKXtpZihlLmhhcyhvKSlyZXR1cm4gZS5nZXQobykudGV4dHVyZTt7Y29uc3Qgcj1vLmltYWdlO2lmKGEmJnImJnIuaGVpZ2h0PjB8fHMmJnImJihmdW5jdGlvbiBhKHQpe2xldCBlPTA7Zm9yKGxldCBuPTA7bjw2O24rKyl2b2lkIDAhPT10W25dJiZlKys7cmV0dXJuIDY9PT1lfSkocikpe2NvbnN0IHI9dC5nZXRSZW5kZXJUYXJnZXQoKTtudWxsPT09biYmKG49bmV3IFIwdCh0KSk7Y29uc3Qgcz1hP24uZnJvbUVxdWlyZWN0YW5ndWxhcihvKTpuLmZyb21DdWJlbWFwKG8pO3JldHVybiBlLnNldChvLHMpLHQuc2V0UmVuZGVyVGFyZ2V0KHIpLG8uYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsaSkscy50ZXh0dXJlfXJldHVybiBudWxsfX19cmV0dXJuIG99LGRpc3Bvc2U6ZnVuY3Rpb24gbygpe2U9bmV3IFdlYWtNYXAsbnVsbCE9PW4mJihuLmRpc3Bvc2UoKSxuPW51bGwpfX19ZnVuY3Rpb24gVTB0KHQpe2NvbnN0IGU9e307ZnVuY3Rpb24gbihuKXtpZih2b2lkIDAhPT1lW25dKXJldHVybiBlW25dO2xldCBpO3N3aXRjaChuKXtjYXNlIldFQkdMX2RlcHRoX3RleHR1cmUiOmk9dC5nZXRFeHRlbnNpb24oIldFQkdMX2RlcHRoX3RleHR1cmUiKXx8dC5nZXRFeHRlbnNpb24oIk1PWl9XRUJHTF9kZXB0aF90ZXh0dXJlIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfV0VCR0xfZGVwdGhfdGV4dHVyZSIpO2JyZWFrO2Nhc2UiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIjppPXQuZ2V0RXh0ZW5zaW9uKCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKXx8dC5nZXRFeHRlbnNpb24oIk1PWl9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKXx8dC5nZXRFeHRlbnNpb24oIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTticmVhaztjYXNlIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIjppPXQuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpfHx0LmdldEV4dGVuc2lvbigiTU9aX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKTticmVhaztjYXNlIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyI6aT10LmdldEV4dGVuc2lvbigiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIik7YnJlYWs7ZGVmYXVsdDppPXQuZ2V0RXh0ZW5zaW9uKG4pfXJldHVybiBlW25dPWksaX1yZXR1cm57aGFzOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09bih0KX0saW5pdDpmdW5jdGlvbih0KXt0LmlzV2ViR0wyP24oIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKToobigiV0VCR0xfZGVwdGhfdGV4dHVyZSIpLG4oIk9FU190ZXh0dXJlX2Zsb2F0IiksbigiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpLG4oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIiksbigiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIiksbigiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpLG4oIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IiksbigiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpKSxuKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSxuKCJFWFRfY29sb3JfYnVmZmVyX2hhbGZfZmxvYXQiKX0sZ2V0OmZ1bmN0aW9uKHQpe2NvbnN0IGU9bih0KTtyZXR1cm4gbnVsbD09PWUmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogIit0KyIgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQuIiksZX19fWZ1bmN0aW9uIGowdCh0LGUsbixpKXtjb25zdCByPXt9LG89bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYSh0KXtjb25zdCBzPXQudGFyZ2V0O251bGwhPT1zLmluZGV4JiZlLnJlbW92ZShzLmluZGV4KTtmb3IoY29uc3QgdCBpbiBzLmF0dHJpYnV0ZXMpZS5yZW1vdmUocy5hdHRyaWJ1dGVzW3RdKTtzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpLGRlbGV0ZSByW3MuaWRdO2NvbnN0IGw9by5nZXQocyk7bCYmKGUucmVtb3ZlKGwpLG8uZGVsZXRlKHMpKSxpLnJlbGVhc2VTdGF0ZXNPZkdlb21ldHJ5KHMpLCEwPT09cy5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5JiZkZWxldGUgcy5fbWF4SW5zdGFuY2VDb3VudCxuLm1lbW9yeS5nZW9tZXRyaWVzLS19ZnVuY3Rpb24gcyh0KXtjb25zdCBuPVtdLGk9dC5pbmRleCxyPXQuYXR0cmlidXRlcy5wb3NpdGlvbjtsZXQgYT0wO2lmKG51bGwhPT1pKXtjb25zdCB0PWkuYXJyYXk7YT1pLnZlcnNpb247Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Myl7Y29uc3QgaT10W2UrMF0scj10W2UrMV0sbz10W2UrMl07bi5wdXNoKGkscixyLG8sbyxpKX19ZWxzZXthPXIudmVyc2lvbjtmb3IobGV0IHQ9MCxlPXIuYXJyYXkubGVuZ3RoLzMtMTt0PGU7dCs9Myl7Y29uc3QgZT10KzAsaT10KzEscj10KzI7bi5wdXNoKGUsaSxpLHIscixlKX19Y29uc3Qgcz1uZXcodTF0KG4pPjY1NTM1P2ExdDpyMXQpKG4sMSk7cy52ZXJzaW9uPWE7Y29uc3QgbD1vLmdldCh0KTtsJiZlLnJlbW92ZShsKSxvLnNldCh0LHMpfXJldHVybntnZXQ6ZnVuY3Rpb24gbCh0LGUpe3JldHVybiEwPT09cltlLmlkXXx8KGUuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsYSkscltlLmlkXT0hMCxuLm1lbW9yeS5nZW9tZXRyaWVzKyspLGV9LHVwZGF0ZTpmdW5jdGlvbiBjKHQpe2NvbnN0IG49dC5hdHRyaWJ1dGVzO2Zvcihjb25zdCB0IGluIG4pZS51cGRhdGUoblt0XSwzNDk2Mik7Y29uc3QgaT10Lm1vcnBoQXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiBpKXtjb25zdCBuPWlbdF07Zm9yKGxldCB0PTAsaT1uLmxlbmd0aDt0PGk7dCsrKWUudXBkYXRlKG5bdF0sMzQ5NjIpfX0sZ2V0V2lyZWZyYW1lQXR0cmlidXRlOmZ1bmN0aW9uIHUodCl7Y29uc3QgZT1vLmdldCh0KTtpZihlKXtjb25zdCBuPXQuaW5kZXg7bnVsbCE9PW4mJmUudmVyc2lvbjxuLnZlcnNpb24mJnModCl9ZWxzZSBzKHQpO3JldHVybiBvLmdldCh0KX19fWZ1bmN0aW9uIEcwdCh0LGUsbixpKXtjb25zdCByPWkuaXNXZWJHTDI7bGV0IG8sYSxzO3RoaXMuc2V0TW9kZT1mdW5jdGlvbiBsKHQpe289dH0sdGhpcy5zZXRJbmRleD1mdW5jdGlvbiBjKHQpe2E9dC50eXBlLHM9dC5ieXRlc1BlckVsZW1lbnR9LHRoaXMucmVuZGVyPWZ1bmN0aW9uIHUoZSxpKXt0LmRyYXdFbGVtZW50cyhvLGksYSxlKnMpLG4udXBkYXRlKGksbywxKX0sdGhpcy5yZW5kZXJJbnN0YW5jZXM9ZnVuY3Rpb24gaChpLGwsYyl7aWYoMD09PWMpcmV0dXJuO2xldCB1LGg7aWYocil1PXQsaD0iZHJhd0VsZW1lbnRzSW5zdGFuY2VkIjtlbHNlIGlmKHU9ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSxoPSJkcmF3RWxlbWVudHNJbnN0YW5jZWRBTkdMRSIsbnVsbD09PXUpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xJbmRleGVkQnVmZmVyUmVuZGVyZXI6IHVzaW5nIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5IGJ1dCBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IGV4dGVuc2lvbiBBTkdMRV9pbnN0YW5jZWRfYXJyYXlzLiIpO3VbaF0obyxsLGEsaSpzLGMpLG4udXBkYXRlKGwsbyxjKX19ZnVuY3Rpb24gVzB0KHQpe2NvbnN0IGU9e2ZyYW1lOjAsY2FsbHM6MCx0cmlhbmdsZXM6MCxwb2ludHM6MCxsaW5lczowfTtyZXR1cm57bWVtb3J5OntnZW9tZXRyaWVzOjAsdGV4dHVyZXM6MH0scmVuZGVyOmUscHJvZ3JhbXM6bnVsbCxhdXRvUmVzZXQ6ITAscmVzZXQ6ZnVuY3Rpb24gbigpe2UuZnJhbWUrKyxlLmNhbGxzPTAsZS50cmlhbmdsZXM9MCxlLnBvaW50cz0wLGUubGluZXM9MH0sdXBkYXRlOmZ1bmN0aW9uIGkodCxuLHIpe3N3aXRjaChlLmNhbGxzKyssbil7Y2FzZSA0OmUudHJpYW5nbGVzKz1yKih0LzMpO2JyZWFrO2Nhc2UgMTplLmxpbmVzKz1yKih0LzIpO2JyZWFrO2Nhc2UgMzplLmxpbmVzKz1yKih0LTEpO2JyZWFrO2Nhc2UgMjplLmxpbmVzKz1yKnQ7YnJlYWs7Y2FzZSAwOmUucG9pbnRzKz1yKnQ7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTEluZm86IFVua25vd24gZHJhdyBtb2RlOiIsbil9fX19ZnVuY3Rpb24gcTB0KHQsZSl7cmV0dXJuIHRbMF0tZVswXX1mdW5jdGlvbiBZMHQodCxlKXtyZXR1cm4gTWF0aC5hYnMoZVsxXSktTWF0aC5hYnModFsxXSl9ZnVuY3Rpb24gWDB0KHQpe2NvbnN0IGU9e30sbj1uZXcgRmxvYXQzMkFycmF5KDgpLGk9W107Zm9yKGxldCB0PTA7dDw4O3QrKylpW3RdPVt0LDBdO3JldHVybnt1cGRhdGU6ZnVuY3Rpb24gcihvLGEscyxsKXtjb25zdCBjPW8ubW9ycGhUYXJnZXRJbmZsdWVuY2VzLHU9dm9pZCAwPT09Yz8wOmMubGVuZ3RoO2xldCBoPWVbYS5pZF07aWYodm9pZCAwPT09aHx8aC5sZW5ndGghPT11KXtoPVtdO2ZvcihsZXQgdD0wO3Q8dTt0KyspaFt0XT1bdCwwXTtlW2EuaWRdPWh9Zm9yKGxldCB0PTA7dDx1O3QrKyl7Y29uc3QgZT1oW3RdO2VbMF09dCxlWzFdPWNbdF19aC5zb3J0KFkwdCk7Zm9yKGxldCB0PTA7dDw4O3QrKyl0PHUmJmhbdF1bMV0/KGlbdF1bMF09aFt0XVswXSxpW3RdWzFdPWhbdF1bMV0pOihpW3RdWzBdPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLGlbdF1bMV09MCk7aS5zb3J0KHEwdCk7Y29uc3QgZD1hLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbixwPWEubW9ycGhBdHRyaWJ1dGVzLm5vcm1hbDtsZXQgZj0wO2ZvcihsZXQgdD0wO3Q8ODt0Kyspe2NvbnN0IGU9aVt0XSxyPWVbMF0sbz1lWzFdO3IhPT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUiYmbz8oZCYmYS5nZXRBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0Iit0KSE9PWRbcl0mJmEuc2V0QXR0cmlidXRlKCJtb3JwaFRhcmdldCIrdCxkW3JdKSxwJiZhLmdldEF0dHJpYnV0ZSgibW9ycGhOb3JtYWwiK3QpIT09cFtyXSYmYS5zZXRBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0LHBbcl0pLG5bdF09byxmKz1vKTooZCYmITA9PT1hLmhhc0F0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK3QpJiZhLmRlbGV0ZUF0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK3QpLHAmJiEwPT09YS5oYXNBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0KSYmYS5kZWxldGVBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0KSxuW3RdPTApfWNvbnN0IG09YS5tb3JwaFRhcmdldHNSZWxhdGl2ZT8xOjEtZjtsLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUodCwibW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlIixtKSxsLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUodCwibW9ycGhUYXJnZXRJbmZsdWVuY2VzIixuKX19fWZ1bmN0aW9uICQwdCh0LGUsbixpKXtsZXQgcj1uZXcgV2Vha01hcDtmdW5jdGlvbiBvKHQpe2NvbnN0IGU9dC50YXJnZXQ7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixvKSxuLnJlbW92ZShlLmluc3RhbmNlTWF0cml4KSxudWxsIT09ZS5pbnN0YW5jZUNvbG9yJiZuLnJlbW92ZShlLmluc3RhbmNlQ29sb3IpfXJldHVybnt1cGRhdGU6ZnVuY3Rpb24gYSh0KXtjb25zdCBhPWkucmVuZGVyLmZyYW1lLHM9ZS5nZXQodCx0Lmdlb21ldHJ5KTtyZXR1cm4gci5nZXQocykhPT1hJiYoZS51cGRhdGUocyksci5zZXQocyxhKSksdC5pc0luc3RhbmNlZE1lc2gmJighMT09PXQuaGFzRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbykmJnQuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbyksbi51cGRhdGUodC5pbnN0YW5jZU1hdHJpeCwzNDk2MiksbnVsbCE9PXQuaW5zdGFuY2VDb2xvciYmbi51cGRhdGUodC5pbnN0YW5jZUNvbG9yLDM0OTYyKSksc30sZGlzcG9zZTpmdW5jdGlvbiBzKCl7cj1uZXcgV2Vha01hcH19fWNsYXNzIEswdCBleHRlbmRzIGJKdHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxpPTEpe3N1cGVyKG51bGwpLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpuLGRlcHRoOml9LHRoaXMubWFnRmlsdGVyPUpLdCx0aGlzLm1pbkZpbHRlcj1KS3QsdGhpcy53cmFwUj1LS3QsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fUswdC5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZTJEQXJyYXk9ITA7Y2xhc3MgWjB0IGV4dGVuZHMgYkp0e2NvbnN0cnVjdG9yKHQ9bnVsbCxlPTEsbj0xLGk9MSl7c3VwZXIobnVsbCksdGhpcy5pbWFnZT17ZGF0YTp0LHdpZHRoOmUsaGVpZ2h0Om4sZGVwdGg6aX0sdGhpcy5tYWdGaWx0ZXI9Skt0LHRoaXMubWluRmlsdGVyPUpLdCx0aGlzLndyYXBSPUtLdCx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMSx0aGlzLmZsaXBZPSExLHRoaXMudW5wYWNrQWxpZ25tZW50PTEsdGhpcy5uZWVkc1VwZGF0ZT0hMH19WjB0LnByb3RvdHlwZS5pc0RhdGFUZXh0dXJlM0Q9ITA7Y29uc3QgSjB0PW5ldyBiSnQsUTB0PW5ldyBLMHQsdDJ0PW5ldyBaMHQsZTJ0PW5ldyAkMXQsbjJ0PVtdLGkydD1bXSxyMnQ9bmV3IEZsb2F0MzJBcnJheSgxNiksbzJ0PW5ldyBGbG9hdDMyQXJyYXkoOSksYTJ0PW5ldyBGbG9hdDMyQXJyYXkoNCk7ZnVuY3Rpb24gczJ0KHQsZSxuKXtjb25zdCBpPXRbMF07aWYoaTw9MHx8aT4wKXJldHVybiB0O2NvbnN0IHI9ZSpuO2xldCBvPW4ydFtyXTtpZih2b2lkIDA9PT1vJiYobz1uZXcgRmxvYXQzMkFycmF5KHIpLG4ydFtyXT1vKSwwIT09ZSl7aS50b0FycmF5KG8sMCk7Zm9yKGxldCBpPTEscj0wO2khPT1lOysraSlyKz1uLHRbaV0udG9BcnJheShvLHIpfXJldHVybiBvfWZ1bmN0aW9uIGwydCh0LGUpe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKWlmKHRbbl0hPT1lW25dKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGMydCh0LGUpe2ZvcihsZXQgbj0wLGk9ZS5sZW5ndGg7bjxpO24rKyl0W25dPWVbbl19ZnVuY3Rpb24gdTJ0KHQsZSl7bGV0IG49aTJ0W2VdO3ZvaWQgMD09PW4mJihuPW5ldyBJbnQzMkFycmF5KGUpLGkydFtlXT1uKTtmb3IobGV0IGk9MDtpIT09ZTsrK2kpbltpXT10LmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtyZXR1cm4gbn1mdW5jdGlvbiBoMnQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7blswXSE9PWUmJih0LnVuaWZvcm0xZih0aGlzLmFkZHIsZSksblswXT1lKX1mdW5jdGlvbiBkMnQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7aWYodm9pZCAwIT09ZS54KW5bMF09PT1lLngmJm5bMV09PT1lLnl8fCh0LnVuaWZvcm0yZih0aGlzLmFkZHIsZS54LGUueSksblswXT1lLngsblsxXT1lLnkpO2Vsc2V7aWYobDJ0KG4sZSkpcmV0dXJuO3QudW5pZm9ybTJmdih0aGlzLmFkZHIsZSksYzJ0KG4sZSl9fWZ1bmN0aW9uIHAydCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtpZih2b2lkIDAhPT1lLngpblswXT09PWUueCYmblsxXT09PWUueSYmblsyXT09PWUuenx8KHQudW5pZm9ybTNmKHRoaXMuYWRkcixlLngsZS55LGUueiksblswXT1lLngsblsxXT1lLnksblsyXT1lLnopO2Vsc2UgaWYodm9pZCAwIT09ZS5yKW5bMF09PT1lLnImJm5bMV09PT1lLmcmJm5bMl09PT1lLmJ8fCh0LnVuaWZvcm0zZih0aGlzLmFkZHIsZS5yLGUuZyxlLmIpLG5bMF09ZS5yLG5bMV09ZS5nLG5bMl09ZS5iKTtlbHNle2lmKGwydChuLGUpKXJldHVybjt0LnVuaWZvcm0zZnYodGhpcy5hZGRyLGUpLGMydChuLGUpfX1mdW5jdGlvbiBmMnQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7aWYodm9pZCAwIT09ZS54KW5bMF09PT1lLngmJm5bMV09PT1lLnkmJm5bMl09PT1lLnomJm5bM109PT1lLnd8fCh0LnVuaWZvcm00Zih0aGlzLmFkZHIsZS54LGUueSxlLnosZS53KSxuWzBdPWUueCxuWzFdPWUueSxuWzJdPWUueixuWzNdPWUudyk7ZWxzZXtpZihsMnQobixlKSlyZXR1cm47dC51bmlmb3JtNGZ2KHRoaXMuYWRkcixlKSxjMnQobixlKX19ZnVuY3Rpb24gbTJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlLGk9ZS5lbGVtZW50cztpZih2b2lkIDA9PT1pKXtpZihsMnQobixlKSlyZXR1cm47dC51bmlmb3JtTWF0cml4MmZ2KHRoaXMuYWRkciwhMSxlKSxjMnQobixlKX1lbHNle2lmKGwydChuLGkpKXJldHVybjthMnQuc2V0KGkpLHQudW5pZm9ybU1hdHJpeDJmdih0aGlzLmFkZHIsITEsYTJ0KSxjMnQobixpKX19ZnVuY3Rpb24gZzJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlLGk9ZS5lbGVtZW50cztpZih2b2lkIDA9PT1pKXtpZihsMnQobixlKSlyZXR1cm47dC51bmlmb3JtTWF0cml4M2Z2KHRoaXMuYWRkciwhMSxlKSxjMnQobixlKX1lbHNle2lmKGwydChuLGkpKXJldHVybjtvMnQuc2V0KGkpLHQudW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEsbzJ0KSxjMnQobixpKX19ZnVuY3Rpb24gXzJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlLGk9ZS5lbGVtZW50cztpZih2b2lkIDA9PT1pKXtpZihsMnQobixlKSlyZXR1cm47dC51bmlmb3JtTWF0cml4NGZ2KHRoaXMuYWRkciwhMSxlKSxjMnQobixlKX1lbHNle2lmKGwydChuLGkpKXJldHVybjtyMnQuc2V0KGkpLHQudW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEscjJ0KSxjMnQobixpKX19ZnVuY3Rpb24geTJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO25bMF0hPT1lJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLGUpLG5bMF09ZSl9ZnVuY3Rpb24gdjJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2wydChuLGUpfHwodC51bmlmb3JtMml2KHRoaXMuYWRkcixlKSxjMnQobixlKSl9ZnVuY3Rpb24gYjJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2wydChuLGUpfHwodC51bmlmb3JtM2l2KHRoaXMuYWRkcixlKSxjMnQobixlKSl9ZnVuY3Rpb24geDJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2wydChuLGUpfHwodC51bmlmb3JtNGl2KHRoaXMuYWRkcixlKSxjMnQobixlKSl9ZnVuY3Rpb24gdzJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO25bMF0hPT1lJiYodC51bmlmb3JtMXVpKHRoaXMuYWRkcixlKSxuWzBdPWUpfWZ1bmN0aW9uIFMydCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtsMnQobixlKXx8KHQudW5pZm9ybTJ1aXYodGhpcy5hZGRyLGUpLGMydChuLGUpKX1mdW5jdGlvbiBNMnQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7bDJ0KG4sZSl8fCh0LnVuaWZvcm0zdWl2KHRoaXMuYWRkcixlKSxjMnQobixlKSl9ZnVuY3Rpb24gRTJ0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2wydChuLGUpfHwodC51bmlmb3JtNHVpdih0aGlzLmFkZHIsZSksYzJ0KG4sZSkpfWZ1bmN0aW9uIFQydCh0LGUsbil7Y29uc3QgaT10aGlzLmNhY2hlLHI9bi5hbGxvY2F0ZVRleHR1cmVVbml0KCk7aVswXSE9PXImJih0LnVuaWZvcm0xaSh0aGlzLmFkZHIsciksaVswXT1yKSxuLnNhZmVTZXRUZXh0dXJlMkQoZXx8SjB0LHIpfWZ1bmN0aW9uIEMydCh0LGUsbil7Y29uc3QgaT10aGlzLmNhY2hlLHI9bi5hbGxvY2F0ZVRleHR1cmVVbml0KCk7aVswXSE9PXImJih0LnVuaWZvcm0xaSh0aGlzLmFkZHIsciksaVswXT1yKSxuLnNldFRleHR1cmUzRChlfHx0MnQscil9ZnVuY3Rpb24gQTJ0KHQsZSxuKXtjb25zdCBpPXRoaXMuY2FjaGUscj1uLmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtpWzBdIT09ciYmKHQudW5pZm9ybTFpKHRoaXMuYWRkcixyKSxpWzBdPXIpLG4uc2FmZVNldFRleHR1cmVDdWJlKGV8fGUydCxyKX1mdW5jdGlvbiBrMnQodCxlLG4pe2NvbnN0IGk9dGhpcy5jYWNoZSxyPW4uYWxsb2NhdGVUZXh0dXJlVW5pdCgpO2lbMF0hPT1yJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLHIpLGlbMF09ciksbi5zZXRUZXh0dXJlMkRBcnJheShlfHxRMHQscil9ZnVuY3Rpb24gTDJ0KHQsZSl7dC51bmlmb3JtMWZ2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBQMnQodCxlKXtjb25zdCBuPXMydChlLHRoaXMuc2l6ZSwyKTt0LnVuaWZvcm0yZnYodGhpcy5hZGRyLG4pfWZ1bmN0aW9uIE4ydCh0LGUpe2NvbnN0IG49czJ0KGUsdGhpcy5zaXplLDMpO3QudW5pZm9ybTNmdih0aGlzLmFkZHIsbil9ZnVuY3Rpb24gSTJ0KHQsZSl7Y29uc3Qgbj1zMnQoZSx0aGlzLnNpemUsNCk7dC51bmlmb3JtNGZ2KHRoaXMuYWRkcixuKX1mdW5jdGlvbiBSMnQodCxlKXtjb25zdCBuPXMydChlLHRoaXMuc2l6ZSw0KTt0LnVuaWZvcm1NYXRyaXgyZnYodGhpcy5hZGRyLCExLG4pfWZ1bmN0aW9uIE8ydCh0LGUpe2NvbnN0IG49czJ0KGUsdGhpcy5zaXplLDkpO3QudW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEsbil9ZnVuY3Rpb24gejJ0KHQsZSl7Y29uc3Qgbj1zMnQoZSx0aGlzLnNpemUsMTYpO3QudW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEsbil9ZnVuY3Rpb24gRDJ0KHQsZSl7dC51bmlmb3JtMWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBCMnQodCxlKXt0LnVuaWZvcm0yaXYodGhpcy5hZGRyLGUpfWZ1bmN0aW9uIEgydCh0LGUpe3QudW5pZm9ybTNpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gRjJ0KHQsZSl7dC51bmlmb3JtNGl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBWMnQodCxlKXt0LnVuaWZvcm0xdWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBVMnQodCxlKXt0LnVuaWZvcm0ydWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBqMnQodCxlKXt0LnVuaWZvcm0zdWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBHMnQodCxlKXt0LnVuaWZvcm00dWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBXMnQodCxlLG4pe2NvbnN0IGk9ZS5sZW5ndGgscj11MnQobixpKTt0LnVuaWZvcm0xaXYodGhpcy5hZGRyLHIpO2ZvcihsZXQgdD0wO3QhPT1pOysrdCluLnNhZmVTZXRUZXh0dXJlMkQoZVt0XXx8SjB0LHJbdF0pfWZ1bmN0aW9uIHEydCh0LGUsbil7Y29uc3QgaT1lLmxlbmd0aCxyPXUydChuLGkpO3QudW5pZm9ybTFpdih0aGlzLmFkZHIscik7Zm9yKGxldCB0PTA7dCE9PWk7Kyt0KW4uc2FmZVNldFRleHR1cmVDdWJlKGVbdF18fGUydCxyW3RdKX1mdW5jdGlvbiBZMnQodCxlLG4pe3RoaXMuaWQ9dCx0aGlzLmFkZHI9bix0aGlzLmNhY2hlPVtdLHRoaXMuc2V0VmFsdWU9KGZ1bmN0aW9uIGkodCl7c3dpdGNoKHQpe2Nhc2UgNTEyNjpyZXR1cm4gaDJ0O2Nhc2UgMzU2NjQ6cmV0dXJuIGQydDtjYXNlIDM1NjY1OnJldHVybiBwMnQ7Y2FzZSAzNTY2NjpyZXR1cm4gZjJ0O2Nhc2UgMzU2NzQ6cmV0dXJuIG0ydDtjYXNlIDM1Njc1OnJldHVybiBnMnQ7Y2FzZSAzNTY3NjpyZXR1cm4gXzJ0O2Nhc2UgNTEyNDpjYXNlIDM1NjcwOnJldHVybiB5MnQ7Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOnJldHVybiB2MnQ7Y2FzZSAzNTY2ODpjYXNlIDM1NjcyOnJldHVybiBiMnQ7Y2FzZSAzNTY2OTpjYXNlIDM1NjczOnJldHVybiB4MnQ7Y2FzZSA1MTI1OnJldHVybiB3MnQ7Y2FzZSAzNjI5NDpyZXR1cm4gUzJ0O2Nhc2UgMzYyOTU6cmV0dXJuIE0ydDtjYXNlIDM2Mjk2OnJldHVybiBFMnQ7Y2FzZSAzNTY3ODpjYXNlIDM2MTk4OmNhc2UgMzYyOTg6Y2FzZSAzNjMwNjpjYXNlIDM1NjgyOnJldHVybiBUMnQ7Y2FzZSAzNTY3OTpjYXNlIDM2Mjk5OmNhc2UgMzYzMDc6cmV0dXJuIEMydDtjYXNlIDM1NjgwOmNhc2UgMzYzMDA6Y2FzZSAzNjMwODpjYXNlIDM2MjkzOnJldHVybiBBMnQ7Y2FzZSAzNjI4OTpjYXNlIDM2MzAzOmNhc2UgMzYzMTE6Y2FzZSAzNjI5MjpyZXR1cm4gazJ0fX0pKGUudHlwZSl9ZnVuY3Rpb24gWDJ0KHQsZSxuKXt0aGlzLmlkPXQsdGhpcy5hZGRyPW4sdGhpcy5jYWNoZT1bXSx0aGlzLnNpemU9ZS5zaXplLHRoaXMuc2V0VmFsdWU9KGZ1bmN0aW9uIGkodCl7c3dpdGNoKHQpe2Nhc2UgNTEyNjpyZXR1cm4gTDJ0O2Nhc2UgMzU2NjQ6cmV0dXJuIFAydDtjYXNlIDM1NjY1OnJldHVybiBOMnQ7Y2FzZSAzNTY2NjpyZXR1cm4gSTJ0O2Nhc2UgMzU2NzQ6cmV0dXJuIFIydDtjYXNlIDM1Njc1OnJldHVybiBPMnQ7Y2FzZSAzNTY3NjpyZXR1cm4gejJ0O2Nhc2UgNTEyNDpjYXNlIDM1NjcwOnJldHVybiBEMnQ7Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOnJldHVybiBCMnQ7Y2FzZSAzNTY2ODpjYXNlIDM1NjcyOnJldHVybiBIMnQ7Y2FzZSAzNTY2OTpjYXNlIDM1NjczOnJldHVybiBGMnQ7Y2FzZSA1MTI1OnJldHVybiBWMnQ7Y2FzZSAzNjI5NDpyZXR1cm4gVTJ0O2Nhc2UgMzYyOTU6cmV0dXJuIGoydDtjYXNlIDM2Mjk2OnJldHVybiBHMnQ7Y2FzZSAzNTY3ODpjYXNlIDM2MTk4OmNhc2UgMzYyOTg6Y2FzZSAzNjMwNjpjYXNlIDM1NjgyOnJldHVybiBXMnQ7Y2FzZSAzNTY4MDpjYXNlIDM2MzAwOmNhc2UgMzYzMDg6Y2FzZSAzNjI5MzpyZXR1cm4gcTJ0fX0pKGUudHlwZSl9ZnVuY3Rpb24gJDJ0KHQpe3RoaXMuaWQ9dCx0aGlzLnNlcT1bXSx0aGlzLm1hcD17fX1YMnQucHJvdG90eXBlLnVwZGF0ZUNhY2hlPWZ1bmN0aW9uKHQpe2NvbnN0IGU9dGhpcy5jYWNoZTt0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5JiZlLmxlbmd0aCE9PXQubGVuZ3RoJiYodGhpcy5jYWNoZT1uZXcgRmxvYXQzMkFycmF5KHQubGVuZ3RoKSksYzJ0KGUsdCl9LCQydC5wcm90b3R5cGUuc2V0VmFsdWU9ZnVuY3Rpb24odCxlLG4pe2NvbnN0IGk9dGhpcy5zZXE7Zm9yKGxldCByPTAsbz1pLmxlbmd0aDtyIT09bzsrK3Ipe2NvbnN0IG89aVtyXTtvLnNldFZhbHVlKHQsZVtvLmlkXSxuKX19O2NvbnN0IEsydD0vKFx3KykoXF0pPyhcW3xcLik/L2c7ZnVuY3Rpb24gWjJ0KHQsZSl7dC5zZXEucHVzaChlKSx0Lm1hcFtlLmlkXT1lfWZ1bmN0aW9uIEoydCh0LGUsbil7Y29uc3QgaT10Lm5hbWUscj1pLmxlbmd0aDtmb3IoSzJ0Lmxhc3RJbmRleD0wOzspe2NvbnN0IG89SzJ0LmV4ZWMoaSksYT1LMnQubGFzdEluZGV4O2xldCBzPW9bMV07Y29uc3QgbD1vWzNdO2lmKCJdIj09PW9bMl0mJihzfD0wKSx2b2lkIDA9PT1sfHwiWyI9PT1sJiZhKzI9PT1yKXtaMnQobix2b2lkIDA9PT1sP25ldyBZMnQocyx0LGUpOm5ldyBYMnQocyx0LGUpKTticmVha317bGV0IHQ9bi5tYXBbc107dm9pZCAwPT09dCYmKHQ9bmV3ICQydChzKSxaMnQobix0KSksbj10fX19ZnVuY3Rpb24gUTJ0KHQsZSl7dGhpcy5zZXE9W10sdGhpcy5tYXA9e307Y29uc3Qgbj10LmdldFByb2dyYW1QYXJhbWV0ZXIoZSwzNTcxOCk7Zm9yKGxldCBpPTA7aTxuOysraSl7Y29uc3Qgbj10LmdldEFjdGl2ZVVuaWZvcm0oZSxpKTtKMnQobix0LmdldFVuaWZvcm1Mb2NhdGlvbihlLG4ubmFtZSksdGhpcyl9fWZ1bmN0aW9uIHQ1dCh0LGUsbil7Y29uc3QgaT10LmNyZWF0ZVNoYWRlcihlKTtyZXR1cm4gdC5zaGFkZXJTb3VyY2UoaSxuKSx0LmNvbXBpbGVTaGFkZXIoaSksaX1RMnQucHJvdG90eXBlLnNldFZhbHVlPWZ1bmN0aW9uKHQsZSxuLGkpe2NvbnN0IHI9dGhpcy5tYXBbZV07dm9pZCAwIT09ciYmci5zZXRWYWx1ZSh0LG4saSl9LFEydC5wcm90b3R5cGUuc2V0T3B0aW9uYWw9ZnVuY3Rpb24odCxlLG4pe2NvbnN0IGk9ZVtuXTt2b2lkIDAhPT1pJiZ0aGlzLnNldFZhbHVlKHQsbixpKX0sUTJ0LnVwbG9hZD1mdW5jdGlvbih0LGUsbixpKXtmb3IobGV0IHI9MCxvPWUubGVuZ3RoO3IhPT1vOysrcil7Y29uc3Qgbz1lW3JdLGE9bltvLmlkXTshMSE9PWEubmVlZHNVcGRhdGUmJm8uc2V0VmFsdWUodCxhLnZhbHVlLGkpfX0sUTJ0LnNlcVdpdGhWYWx1ZT1mdW5jdGlvbih0LGUpe2NvbnN0IG49W107Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpIT09cjsrK2kpe2NvbnN0IHI9dFtpXTtyLmlkIGluIGUmJm4ucHVzaChyKX1yZXR1cm4gbn07bGV0IGU1dD0wO2Z1bmN0aW9uIG41dCh0KXtzd2l0Y2godCl7Y2FzZSBOWnQ6cmV0dXJuWyJMaW5lYXIiLCIoIHZhbHVlICkiXTtjYXNlIEladDpyZXR1cm5bInNSR0IiLCIoIHZhbHVlICkiXTtjYXNlIE9adDpyZXR1cm5bIlJHQkUiLCIoIHZhbHVlICkiXTtjYXNlIHpadDpyZXR1cm5bIlJHQk0iLCIoIHZhbHVlLCA3LjAgKSJdO2Nhc2UgRFp0OnJldHVyblsiUkdCTSIsIiggdmFsdWUsIDE2LjAgKSJdO2Nhc2UgQlp0OnJldHVyblsiUkdCRCIsIiggdmFsdWUsIDI1Ni4wICkiXTtjYXNlIFJadDpyZXR1cm5bIkdhbW1hIiwiKCB2YWx1ZSwgZmxvYXQoIEdBTU1BX0ZBQ1RPUiApICkiXTtjYXNlIDMwMDM6cmV0dXJuWyJMb2dMdXYiLCIoIHZhbHVlICkiXTtkZWZhdWx0OnJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbTogVW5zdXBwb3J0ZWQgZW5jb2Rpbmc6Iix0KSxbIkxpbmVhciIsIiggdmFsdWUgKSJdfX1mdW5jdGlvbiBpNXQodCxlLG4pe2NvbnN0IGk9dC5nZXRTaGFkZXJQYXJhbWV0ZXIoZSwzNTcxMykscj10LmdldFNoYWRlckluZm9Mb2coZSkudHJpbSgpO3JldHVybiBpJiYiIj09PXI/IiI6IlRIUkVFLldlYkdMU2hhZGVyOiBnbC5nZXRTaGFkZXJJbmZvTG9nKCkgIituKyJcbiIrcisoZnVuY3Rpb24gbyh0KXtjb25zdCBlPXQuc3BsaXQoIlxuIik7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XT10KzErIjogIitlW3RdO3JldHVybiBlLmpvaW4oIlxuIil9KSh0LmdldFNoYWRlclNvdXJjZShlKSl9ZnVuY3Rpb24gcjV0KHQsZSl7Y29uc3Qgbj1uNXQoZSk7cmV0dXJuInZlYzQgIit0KyIoIHZlYzQgdmFsdWUgKSB7IHJldHVybiAiK25bMF0rIlRvTGluZWFyIituWzFdKyI7IH0ifWZ1bmN0aW9uIG81dCh0LGUpe2NvbnN0IG49bjV0KGUpO3JldHVybiJ2ZWM0ICIrdCsiKCB2ZWM0IHZhbHVlICkgeyByZXR1cm4gTGluZWFyVG8iK25bMF0rblsxXSsiOyB9In1mdW5jdGlvbiBhNXQodCxlKXtsZXQgbjtzd2l0Y2goZSl7Y2FzZSAxOm49IkxpbmVhciI7YnJlYWs7Y2FzZSAyOm49IlJlaW5oYXJkIjticmVhaztjYXNlIDM6bj0iT3B0aW1pemVkQ2luZW9uIjticmVhaztjYXNlIDQ6bj0iQUNFU0ZpbG1pYyI7YnJlYWs7Y2FzZSA1Om49IkN1c3RvbSI7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbTogVW5zdXBwb3J0ZWQgdG9uZU1hcHBpbmc6IixlKSxuPSJMaW5lYXIifXJldHVybiJ2ZWMzICIrdCsiKCB2ZWMzIGNvbG9yICkgeyByZXR1cm4gIituKyJUb25lTWFwcGluZyggY29sb3IgKTsgfSJ9ZnVuY3Rpb24gczV0KHQpe3JldHVybiIiIT09dH1mdW5jdGlvbiBsNXQodCxlKXtyZXR1cm4gdC5yZXBsYWNlKC9OVU1fRElSX0xJR0hUUy9nLGUubnVtRGlyTGlnaHRzKS5yZXBsYWNlKC9OVU1fU1BPVF9MSUdIVFMvZyxlLm51bVNwb3RMaWdodHMpLnJlcGxhY2UoL05VTV9SRUNUX0FSRUFfTElHSFRTL2csZS5udW1SZWN0QXJlYUxpZ2h0cykucmVwbGFjZSgvTlVNX1BPSU5UX0xJR0hUUy9nLGUubnVtUG9pbnRMaWdodHMpLnJlcGxhY2UoL05VTV9IRU1JX0xJR0hUUy9nLGUubnVtSGVtaUxpZ2h0cykucmVwbGFjZSgvTlVNX0RJUl9MSUdIVF9TSEFET1dTL2csZS5udW1EaXJMaWdodFNoYWRvd3MpLnJlcGxhY2UoL05VTV9TUE9UX0xJR0hUX1NIQURPV1MvZyxlLm51bVNwb3RMaWdodFNoYWRvd3MpLnJlcGxhY2UoL05VTV9QT0lOVF9MSUdIVF9TSEFET1dTL2csZS5udW1Qb2ludExpZ2h0U2hhZG93cyl9ZnVuY3Rpb24gYzV0KHQsZSl7cmV0dXJuIHQucmVwbGFjZSgvTlVNX0NMSVBQSU5HX1BMQU5FUy9nLGUubnVtQ2xpcHBpbmdQbGFuZXMpLnJlcGxhY2UoL1VOSU9OX0NMSVBQSU5HX1BMQU5FUy9nLGUubnVtQ2xpcHBpbmdQbGFuZXMtZS5udW1DbGlwSW50ZXJzZWN0aW9uKX1jb25zdCB1NXQ9L15bIFx0XSojaW5jbHVkZSArPChbXHdcZC4vXSspPi9nbTtmdW5jdGlvbiBoNXQodCl7cmV0dXJuIHQucmVwbGFjZSh1NXQsZDV0KX1mdW5jdGlvbiBkNXQodCxlKXtjb25zdCBuPXMwdFtlXTtpZih2b2lkIDA9PT1uKXRocm93IG5ldyBFcnJvcigiQ2FuIG5vdCByZXNvbHZlICNpbmNsdWRlIDwiK2UrIj4iKTtyZXR1cm4gaDV0KG4pfWNvbnN0IHA1dD0vI3ByYWdtYSB1bnJvbGxfbG9vcFtcc10rP2ZvciBcKCBpbnQgaSBcPSAoXGQrKVw7IGkgPCAoXGQrKVw7IGkgXCtcKyBcKSBceyhbXHNcU10rPykoPz1cfSlcfS9nLGY1dD0vI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxzK2ZvclxzKlwoXHMqaW50XHMraVxzKj1ccyooXGQrKVxzKjtccyppXHMqPFxzKihcZCspXHMqO1xzKmlccypcK1wrXHMqXClccyp7KFtcc1xTXSs/KX1ccysjcHJhZ21hIHVucm9sbF9sb29wX2VuZC9nO2Z1bmN0aW9uIG01dCh0KXtyZXR1cm4gdC5yZXBsYWNlKGY1dCxfNXQpLnJlcGxhY2UocDV0LGc1dCl9ZnVuY3Rpb24gZzV0KHQsZSxuLGkpe3JldHVybiBjb25zb2xlLndhcm4oIldlYkdMUHJvZ3JhbTogI3ByYWdtYSB1bnJvbGxfbG9vcCBzaGFkZXIgc3ludGF4IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydCBzeW50YXggaW5zdGVhZC4iKSxfNXQoMCxlLG4saSl9ZnVuY3Rpb24gXzV0KHQsZSxuLGkpe2xldCByPSIiO2ZvcihsZXQgdD1wYXJzZUludChlKTt0PHBhcnNlSW50KG4pO3QrKylyKz1pLnJlcGxhY2UoL1xbXHMqaVxzKlxdL2csIlsgIit0KyIgXSIpLnJlcGxhY2UoL1VOUk9MTEVEX0xPT1BfSU5ERVgvZyx0KTtyZXR1cm4gcn1mdW5jdGlvbiB5NXQodCl7bGV0IGU9InByZWNpc2lvbiAiK3QucHJlY2lzaW9uKyIgZmxvYXQ7XG5wcmVjaXNpb24gIit0LnByZWNpc2lvbisiIGludDsiO3JldHVybiJoaWdocCI9PT10LnByZWNpc2lvbj9lKz0iXG4jZGVmaW5lIEhJR0hfUFJFQ0lTSU9OIjoibWVkaXVtcCI9PT10LnByZWNpc2lvbj9lKz0iXG4jZGVmaW5lIE1FRElVTV9QUkVDSVNJT04iOiJsb3dwIj09PXQucHJlY2lzaW9uJiYoZSs9IlxuI2RlZmluZSBMT1dfUFJFQ0lTSU9OIiksZX1mdW5jdGlvbiB2NXQodCxlLG4saSl7Y29uc3Qgcj10LmdldENvbnRleHQoKSxvPW4uZGVmaW5lcztsZXQgYT1uLnZlcnRleFNoYWRlcixzPW4uZnJhZ21lbnRTaGFkZXI7Y29uc3QgbD0oZnVuY3Rpb24gYyh0KXtsZXQgZT0iU0hBRE9XTUFQX1RZUEVfQkFTSUMiO3JldHVybiAxPT09dC5zaGFkb3dNYXBUeXBlP2U9IlNIQURPV01BUF9UWVBFX1BDRiI6Mj09PXQuc2hhZG93TWFwVHlwZT9lPSJTSEFET1dNQVBfVFlQRV9QQ0ZfU09GVCI6Mz09PXQuc2hhZG93TWFwVHlwZSYmKGU9IlNIQURPV01BUF9UWVBFX1ZTTSIpLGV9KShuKSx1PShmdW5jdGlvbiBoKHQpe2xldCBlPSJFTlZNQVBfVFlQRV9DVUJFIjtpZih0LmVudk1hcClzd2l0Y2godC5lbnZNYXBNb2RlKXtjYXNlIGpLdDpjYXNlIEdLdDplPSJFTlZNQVBfVFlQRV9DVUJFIjticmVhaztjYXNlIFlLdDpjYXNlIFhLdDplPSJFTlZNQVBfVFlQRV9DVUJFX1VWIn1yZXR1cm4gZX0pKG4pLGQ9KGZ1bmN0aW9uIHAodCl7bGV0IGU9IkVOVk1BUF9NT0RFX1JFRkxFQ1RJT04iO2lmKHQuZW52TWFwKXN3aXRjaCh0LmVudk1hcE1vZGUpe2Nhc2UgR0t0OmNhc2UgWEt0OmU9IkVOVk1BUF9NT0RFX1JFRlJBQ1RJT04ifXJldHVybiBlfSkobiksZj0oZnVuY3Rpb24gbSh0KXtsZXQgZT0iRU5WTUFQX0JMRU5ESU5HX05PTkUiO2lmKHQuZW52TWFwKXN3aXRjaCh0LmNvbWJpbmUpe2Nhc2UgMDplPSJFTlZNQVBfQkxFTkRJTkdfTVVMVElQTFkiO2JyZWFrO2Nhc2UgMTplPSJFTlZNQVBfQkxFTkRJTkdfTUlYIjticmVhaztjYXNlIDI6ZT0iRU5WTUFQX0JMRU5ESU5HX0FERCJ9cmV0dXJuIGV9KShuKSxnPXQuZ2FtbWFGYWN0b3I+MD90LmdhbW1hRmFjdG9yOjEsXz1uLmlzV2ViR0wyPyIiOihmdW5jdGlvbiB5KHQpe3JldHVyblt0LmV4dGVuc2lvbkRlcml2YXRpdmVzfHx0LmVudk1hcEN1YmVVVnx8dC5idW1wTWFwfHx0LnRhbmdlbnRTcGFjZU5vcm1hbE1hcHx8dC5jbGVhcmNvYXROb3JtYWxNYXB8fHQuZmxhdFNoYWRpbmd8fCJwaHlzaWNhbCI9PT10LnNoYWRlcklEPyIjZXh0ZW5zaW9uIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyA6IGVuYWJsZSI6IiIsKHQuZXh0ZW5zaW9uRnJhZ0RlcHRofHx0LmxvZ2FyaXRobWljRGVwdGhCdWZmZXIpJiZ0LnJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoPyIjZXh0ZW5zaW9uIEdMX0VYVF9mcmFnX2RlcHRoIDogZW5hYmxlIjoiIix0LmV4dGVuc2lvbkRyYXdCdWZmZXJzJiZ0LnJlbmRlcmVyRXh0ZW5zaW9uRHJhd0J1ZmZlcnM/IiNleHRlbnNpb24gR0xfRVhUX2RyYXdfYnVmZmVycyA6IHJlcXVpcmUiOiIiLCh0LmV4dGVuc2lvblNoYWRlclRleHR1cmVMT0R8fHQuZW52TWFwfHx0LnRyYW5zbWlzc2lvbj4wKSYmdC5yZW5kZXJlckV4dGVuc2lvblNoYWRlclRleHR1cmVMb2Q/IiNleHRlbnNpb24gR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCA6IGVuYWJsZSI6IiJdLmZpbHRlcihzNXQpLmpvaW4oIlxuIil9KShuKSx2PShmdW5jdGlvbiBiKHQpe2NvbnN0IGU9W107Zm9yKGNvbnN0IG4gaW4gdCl7Y29uc3QgaT10W25dOyExIT09aSYmZS5wdXNoKCIjZGVmaW5lICIrbisiICIraSl9cmV0dXJuIGUuam9pbigiXG4iKX0pKG8pLHg9ci5jcmVhdGVQcm9ncmFtKCk7bGV0IHcsUyxNPW4uZ2xzbFZlcnNpb24/IiN2ZXJzaW9uICIrbi5nbHNsVmVyc2lvbisiXG4iOiIiO24uaXNSYXdTaGFkZXJNYXRlcmlhbD8odz1bdl0uZmlsdGVyKHM1dCkuam9pbigiXG4iKSx3Lmxlbmd0aD4wJiYodys9IlxuIiksUz1bXyx2XS5maWx0ZXIoczV0KS5qb2luKCJcbiIpLFMubGVuZ3RoPjAmJihTKz0iXG4iKSk6KHc9W3k1dChuKSwiI2RlZmluZSBTSEFERVJfTkFNRSAiK24uc2hhZGVyTmFtZSx2LG4uaW5zdGFuY2luZz8iI2RlZmluZSBVU0VfSU5TVEFOQ0lORyI6IiIsbi5pbnN0YW5jaW5nQ29sb3I/IiNkZWZpbmUgVVNFX0lOU1RBTkNJTkdfQ09MT1IiOiIiLG4uc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcz8iI2RlZmluZSBWRVJURVhfVEVYVFVSRVMiOiIiLCIjZGVmaW5lIEdBTU1BX0ZBQ1RPUiAiK2csIiNkZWZpbmUgTUFYX0JPTkVTICIrbi5tYXhCb25lcyxuLnVzZUZvZyYmbi5mb2c/IiNkZWZpbmUgVVNFX0ZPRyI6IiIsbi51c2VGb2cmJm4uZm9nRXhwMj8iI2RlZmluZSBGT0dfRVhQMiI6IiIsbi5tYXA/IiNkZWZpbmUgVVNFX01BUCI6IiIsbi5lbnZNYXA/IiNkZWZpbmUgVVNFX0VOVk1BUCI6IiIsbi5lbnZNYXA/IiNkZWZpbmUgIitkOiIiLG4ubGlnaHRNYXA/IiNkZWZpbmUgVVNFX0xJR0hUTUFQIjoiIixuLmFvTWFwPyIjZGVmaW5lIFVTRV9BT01BUCI6IiIsbi5lbWlzc2l2ZU1hcD8iI2RlZmluZSBVU0VfRU1JU1NJVkVNQVAiOiIiLG4uYnVtcE1hcD8iI2RlZmluZSBVU0VfQlVNUE1BUCI6IiIsbi5ub3JtYWxNYXA/IiNkZWZpbmUgVVNFX05PUk1BTE1BUCI6IiIsbi5ub3JtYWxNYXAmJm4ub2JqZWN0U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgT0JKRUNUU1BBQ0VfTk9STUFMTUFQIjoiIixuLm5vcm1hbE1hcCYmbi50YW5nZW50U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgVEFOR0VOVFNQQUNFX05PUk1BTE1BUCI6IiIsbi5jbGVhcmNvYXRNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVE1BUCI6IiIsbi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVAiOiIiLG4uY2xlYXJjb2F0Tm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQIjoiIixuLmRpc3BsYWNlbWVudE1hcCYmbi5zdXBwb3J0c1ZlcnRleFRleHR1cmVzPyIjZGVmaW5lIFVTRV9ESVNQTEFDRU1FTlRNQVAiOiIiLG4uc3BlY3VsYXJNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSTUFQIjoiIixuLnNwZWN1bGFySW50ZW5zaXR5TWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUCI6IiIsbi5zcGVjdWxhclRpbnRNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSVElOVE1BUCI6IiIsbi5yb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX1JPVUdITkVTU01BUCI6IiIsbi5tZXRhbG5lc3NNYXA/IiNkZWZpbmUgVVNFX01FVEFMTkVTU01BUCI6IiIsbi5hbHBoYU1hcD8iI2RlZmluZSBVU0VfQUxQSEFNQVAiOiIiLG4udHJhbnNtaXNzaW9uPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT04iOiIiLG4udHJhbnNtaXNzaW9uTWFwPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT05NQVAiOiIiLG4udGhpY2tuZXNzTWFwPyIjZGVmaW5lIFVTRV9USElDS05FU1NNQVAiOiIiLG4udmVydGV4VGFuZ2VudHM/IiNkZWZpbmUgVVNFX1RBTkdFTlQiOiIiLG4udmVydGV4Q29sb3JzPyIjZGVmaW5lIFVTRV9DT0xPUiI6IiIsbi52ZXJ0ZXhBbHBoYXM/IiNkZWZpbmUgVVNFX0NPTE9SX0FMUEhBIjoiIixuLnZlcnRleFV2cz8iI2RlZmluZSBVU0VfVVYiOiIiLG4udXZzVmVydGV4T25seT8iI2RlZmluZSBVVlNfVkVSVEVYX09OTFkiOiIiLG4uZmxhdFNoYWRpbmc/IiNkZWZpbmUgRkxBVF9TSEFERUQiOiIiLG4uc2tpbm5pbmc/IiNkZWZpbmUgVVNFX1NLSU5OSU5HIjoiIixuLnVzZVZlcnRleFRleHR1cmU/IiNkZWZpbmUgQk9ORV9URVhUVVJFIjoiIixuLm1vcnBoVGFyZ2V0cz8iI2RlZmluZSBVU0VfTU9SUEhUQVJHRVRTIjoiIixuLm1vcnBoTm9ybWFscyYmITE9PT1uLmZsYXRTaGFkaW5nPyIjZGVmaW5lIFVTRV9NT1JQSE5PUk1BTFMiOiIiLG4uZG91YmxlU2lkZWQ/IiNkZWZpbmUgRE9VQkxFX1NJREVEIjoiIixuLmZsaXBTaWRlZD8iI2RlZmluZSBGTElQX1NJREVEIjoiIixuLnNoYWRvd01hcEVuYWJsZWQ/IiNkZWZpbmUgVVNFX1NIQURPV01BUCI6IiIsbi5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lICIrbDoiIixuLnNpemVBdHRlbnVhdGlvbj8iI2RlZmluZSBVU0VfU0laRUFUVEVOVUFUSU9OIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXI/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJm4ucmVuZGVyZXJFeHRlbnNpb25GcmFnRGVwdGg/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGX0VYVCI6IiIsInVuaWZvcm0gbWF0NCBtb2RlbE1hdHJpeDsiLCJ1bmlmb3JtIG1hdDQgbW9kZWxWaWV3TWF0cml4OyIsInVuaWZvcm0gbWF0NCBwcm9qZWN0aW9uTWF0cml4OyIsInVuaWZvcm0gbWF0NCB2aWV3TWF0cml4OyIsInVuaWZvcm0gbWF0MyBub3JtYWxNYXRyaXg7IiwidW5pZm9ybSB2ZWMzIGNhbWVyYVBvc2l0aW9uOyIsInVuaWZvcm0gYm9vbCBpc09ydGhvZ3JhcGhpYzsiLCIjaWZkZWYgVVNFX0lOU1RBTkNJTkciLCJcdGF0dHJpYnV0ZSBtYXQ0IGluc3RhbmNlTWF0cml4OyIsIiNlbmRpZiIsIiNpZmRlZiBVU0VfSU5TVEFOQ0lOR19DT0xPUiIsIlx0YXR0cmlidXRlIHZlYzMgaW5zdGFuY2VDb2xvcjsiLCIjZW5kaWYiLCJhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjsiLCJhdHRyaWJ1dGUgdmVjMyBub3JtYWw7IiwiYXR0cmlidXRlIHZlYzIgdXY7IiwiI2lmZGVmIFVTRV9UQU5HRU5UIiwiXHRhdHRyaWJ1dGUgdmVjNCB0YW5nZW50OyIsIiNlbmRpZiIsIiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKSIsIlx0YXR0cmlidXRlIHZlYzQgY29sb3I7IiwiI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkiLCJcdGF0dHJpYnV0ZSB2ZWMzIGNvbG9yOyIsIiNlbmRpZiIsIiNpZmRlZiBVU0VfTU9SUEhUQVJHRVRTIiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDA7IiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDE7IiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDI7IiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDM7IiwiXHQjaWZkZWYgVVNFX01PUlBITk9STUFMUyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDA7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMTsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhOb3JtYWwyOyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDM7IiwiXHQjZWxzZSIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDQ7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NTsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQ2OyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDc7IiwiXHQjZW5kaWYiLCIjZW5kaWYiLCIjaWZkZWYgVVNFX1NLSU5OSU5HIiwiXHRhdHRyaWJ1dGUgdmVjNCBza2luSW5kZXg7IiwiXHRhdHRyaWJ1dGUgdmVjNCBza2luV2VpZ2h0OyIsIiNlbmRpZiIsIlxuIl0uZmlsdGVyKHM1dCkuam9pbigiXG4iKSxTPVtfLHk1dChuKSwiI2RlZmluZSBTSEFERVJfTkFNRSAiK24uc2hhZGVyTmFtZSx2LG4uYWxwaGFUZXN0PyIjZGVmaW5lIEFMUEhBVEVTVCAiK24uYWxwaGFUZXN0KyhuLmFscGhhVGVzdCUxPyIiOiIuMCIpOiIiLCIjZGVmaW5lIEdBTU1BX0ZBQ1RPUiAiK2csbi51c2VGb2cmJm4uZm9nPyIjZGVmaW5lIFVTRV9GT0ciOiIiLG4udXNlRm9nJiZuLmZvZ0V4cDI/IiNkZWZpbmUgRk9HX0VYUDIiOiIiLG4ubWFwPyIjZGVmaW5lIFVTRV9NQVAiOiIiLG4ubWF0Y2FwPyIjZGVmaW5lIFVTRV9NQVRDQVAiOiIiLG4uZW52TWFwPyIjZGVmaW5lIFVTRV9FTlZNQVAiOiIiLG4uZW52TWFwPyIjZGVmaW5lICIrdToiIixuLmVudk1hcD8iI2RlZmluZSAiK2Q6IiIsbi5lbnZNYXA/IiNkZWZpbmUgIitmOiIiLG4ubGlnaHRNYXA/IiNkZWZpbmUgVVNFX0xJR0hUTUFQIjoiIixuLmFvTWFwPyIjZGVmaW5lIFVTRV9BT01BUCI6IiIsbi5lbWlzc2l2ZU1hcD8iI2RlZmluZSBVU0VfRU1JU1NJVkVNQVAiOiIiLG4uYnVtcE1hcD8iI2RlZmluZSBVU0VfQlVNUE1BUCI6IiIsbi5ub3JtYWxNYXA/IiNkZWZpbmUgVVNFX05PUk1BTE1BUCI6IiIsbi5ub3JtYWxNYXAmJm4ub2JqZWN0U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgT0JKRUNUU1BBQ0VfTk9STUFMTUFQIjoiIixuLm5vcm1hbE1hcCYmbi50YW5nZW50U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgVEFOR0VOVFNQQUNFX05PUk1BTE1BUCI6IiIsbi5jbGVhcmNvYXRNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVE1BUCI6IiIsbi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVAiOiIiLG4uY2xlYXJjb2F0Tm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQIjoiIixuLnNwZWN1bGFyTWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUk1BUCI6IiIsbi5zcGVjdWxhckludGVuc2l0eU1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVAiOiIiLG4uc3BlY3VsYXJUaW50TWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUlRJTlRNQVAiOiIiLG4ucm91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9ST1VHSE5FU1NNQVAiOiIiLG4ubWV0YWxuZXNzTWFwPyIjZGVmaW5lIFVTRV9NRVRBTE5FU1NNQVAiOiIiLG4uYWxwaGFNYXA/IiNkZWZpbmUgVVNFX0FMUEhBTUFQIjoiIixuLnNoZWVuPyIjZGVmaW5lIFVTRV9TSEVFTiI6IiIsbi50cmFuc21pc3Npb24/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTiI6IiIsbi50cmFuc21pc3Npb25NYXA/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTk1BUCI6IiIsbi50aGlja25lc3NNYXA/IiNkZWZpbmUgVVNFX1RISUNLTkVTU01BUCI6IiIsbi52ZXJ0ZXhUYW5nZW50cz8iI2RlZmluZSBVU0VfVEFOR0VOVCI6IiIsbi52ZXJ0ZXhDb2xvcnN8fG4uaW5zdGFuY2luZ0NvbG9yPyIjZGVmaW5lIFVTRV9DT0xPUiI6IiIsbi52ZXJ0ZXhBbHBoYXM/IiNkZWZpbmUgVVNFX0NPTE9SX0FMUEhBIjoiIixuLnZlcnRleFV2cz8iI2RlZmluZSBVU0VfVVYiOiIiLG4udXZzVmVydGV4T25seT8iI2RlZmluZSBVVlNfVkVSVEVYX09OTFkiOiIiLG4uZ3JhZGllbnRNYXA/IiNkZWZpbmUgVVNFX0dSQURJRU5UTUFQIjoiIixuLmZsYXRTaGFkaW5nPyIjZGVmaW5lIEZMQVRfU0hBREVEIjoiIixuLmRvdWJsZVNpZGVkPyIjZGVmaW5lIERPVUJMRV9TSURFRCI6IiIsbi5mbGlwU2lkZWQ/IiNkZWZpbmUgRkxJUF9TSURFRCI6IiIsbi5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lIFVTRV9TSEFET1dNQVAiOiIiLG4uc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSAiK2w6IiIsbi5wcmVtdWx0aXBsaWVkQWxwaGE/IiNkZWZpbmUgUFJFTVVMVElQTElFRF9BTFBIQSI6IiIsbi5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cz8iI2RlZmluZSBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXI/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJm4ucmVuZGVyZXJFeHRlbnNpb25GcmFnRGVwdGg/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGX0VYVCI6IiIsKG4uZXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxPRHx8bi5lbnZNYXApJiZuLnJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZD8iI2RlZmluZSBURVhUVVJFX0xPRF9FWFQiOiIiLCJ1bmlmb3JtIG1hdDQgdmlld01hdHJpeDsiLCJ1bmlmb3JtIHZlYzMgY2FtZXJhUG9zaXRpb247IiwidW5pZm9ybSBib29sIGlzT3J0aG9ncmFwaGljOyIsMCE9PW4udG9uZU1hcHBpbmc/IiNkZWZpbmUgVE9ORV9NQVBQSU5HIjoiIiwwIT09bi50b25lTWFwcGluZz9zMHQudG9uZW1hcHBpbmdfcGFyc19mcmFnbWVudDoiIiwwIT09bi50b25lTWFwcGluZz9hNXQoInRvbmVNYXBwaW5nIixuLnRvbmVNYXBwaW5nKToiIixuLmRpdGhlcmluZz8iI2RlZmluZSBESVRIRVJJTkciOiIiLHMwdC5lbmNvZGluZ3NfcGFyc19mcmFnbWVudCxuLm1hcD9yNXQoIm1hcFRleGVsVG9MaW5lYXIiLG4ubWFwRW5jb2RpbmcpOiIiLG4ubWF0Y2FwP3I1dCgibWF0Y2FwVGV4ZWxUb0xpbmVhciIsbi5tYXRjYXBFbmNvZGluZyk6IiIsbi5lbnZNYXA/cjV0KCJlbnZNYXBUZXhlbFRvTGluZWFyIixuLmVudk1hcEVuY29kaW5nKToiIixuLmVtaXNzaXZlTWFwP3I1dCgiZW1pc3NpdmVNYXBUZXhlbFRvTGluZWFyIixuLmVtaXNzaXZlTWFwRW5jb2RpbmcpOiIiLG4uc3BlY3VsYXJUaW50TWFwP3I1dCgic3BlY3VsYXJUaW50TWFwVGV4ZWxUb0xpbmVhciIsbi5zcGVjdWxhclRpbnRNYXBFbmNvZGluZyk6IiIsbi5saWdodE1hcD9yNXQoImxpZ2h0TWFwVGV4ZWxUb0xpbmVhciIsbi5saWdodE1hcEVuY29kaW5nKToiIixvNXQoImxpbmVhclRvT3V0cHV0VGV4ZWwiLG4ub3V0cHV0RW5jb2RpbmcpLG4uZGVwdGhQYWNraW5nPyIjZGVmaW5lIERFUFRIX1BBQ0tJTkcgIituLmRlcHRoUGFja2luZzoiIiwiXG4iXS5maWx0ZXIoczV0KS5qb2luKCJcbiIpKSxhPWg1dChhKSxhPWw1dChhLG4pLGE9YzV0KGEsbikscz1oNXQocykscz1sNXQocyxuKSxzPWM1dChzLG4pLGE9bTV0KGEpLHM9bTV0KHMpLG4uaXNXZWJHTDImJiEwIT09bi5pc1Jhd1NoYWRlck1hdGVyaWFsJiYoTT0iI3ZlcnNpb24gMzAwIGVzXG4iLHc9WyIjZGVmaW5lIGF0dHJpYnV0ZSBpbiIsIiNkZWZpbmUgdmFyeWluZyBvdXQiLCIjZGVmaW5lIHRleHR1cmUyRCB0ZXh0dXJlIl0uam9pbigiXG4iKSsiXG4iK3csUz1bIiNkZWZpbmUgdmFyeWluZyBpbiIsbi5nbHNsVmVyc2lvbj09PVVadD8iIjoib3V0IGhpZ2hwIHZlYzQgcGNfZnJhZ0NvbG9yOyIsbi5nbHNsVmVyc2lvbj09PVVadD8iIjoiI2RlZmluZSBnbF9GcmFnQ29sb3IgcGNfZnJhZ0NvbG9yIiwiI2RlZmluZSBnbF9GcmFnRGVwdGhFWFQgZ2xfRnJhZ0RlcHRoIiwiI2RlZmluZSB0ZXh0dXJlMkQgdGV4dHVyZSIsIiNkZWZpbmUgdGV4dHVyZUN1YmUgdGV4dHVyZSIsIiNkZWZpbmUgdGV4dHVyZTJEUHJvaiB0ZXh0dXJlUHJvaiIsIiNkZWZpbmUgdGV4dHVyZTJETG9kRVhUIHRleHR1cmVMb2QiLCIjZGVmaW5lIHRleHR1cmUyRFByb2pMb2RFWFQgdGV4dHVyZVByb2pMb2QiLCIjZGVmaW5lIHRleHR1cmVDdWJlTG9kRVhUIHRleHR1cmVMb2QiLCIjZGVmaW5lIHRleHR1cmUyREdyYWRFWFQgdGV4dHVyZUdyYWQiLCIjZGVmaW5lIHRleHR1cmUyRFByb2pHcmFkRVhUIHRleHR1cmVQcm9qR3JhZCIsIiNkZWZpbmUgdGV4dHVyZUN1YmVHcmFkRVhUIHRleHR1cmVHcmFkIl0uam9pbigiXG4iKSsiXG4iK1MpO2NvbnN0IEU9TStTK3MsVD10NXQociwzNTYzMyxNK3crYSksQz10NXQociwzNTYzMixFKTtpZihyLmF0dGFjaFNoYWRlcih4LFQpLHIuYXR0YWNoU2hhZGVyKHgsQyksdm9pZCAwIT09bi5pbmRleDBBdHRyaWJ1dGVOYW1lP3IuYmluZEF0dHJpYkxvY2F0aW9uKHgsMCxuLmluZGV4MEF0dHJpYnV0ZU5hbWUpOiEwPT09bi5tb3JwaFRhcmdldHMmJnIuYmluZEF0dHJpYkxvY2F0aW9uKHgsMCwicG9zaXRpb24iKSxyLmxpbmtQcm9ncmFtKHgpLHQuZGVidWcuY2hlY2tTaGFkZXJFcnJvcnMpe2NvbnN0IHQ9ci5nZXRQcm9ncmFtSW5mb0xvZyh4KS50cmltKCksZT1yLmdldFNoYWRlckluZm9Mb2coVCkudHJpbSgpLG49ci5nZXRTaGFkZXJJbmZvTG9nKEMpLnRyaW0oKTtsZXQgaT0hMCxvPSEwO2lmKCExPT09ci5nZXRQcm9ncmFtUGFyYW1ldGVyKHgsMzU3MTQpKXtpPSExO2NvbnN0IGU9aTV0KHIsVCwidmVydGV4Iiksbj1pNXQocixDLCJmcmFnbWVudCIpO2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUHJvZ3JhbTogc2hhZGVyIGVycm9yOiAiLHIuZ2V0RXJyb3IoKSwiMzU3MTUiLHIuZ2V0UHJvZ3JhbVBhcmFtZXRlcih4LDM1NzE1KSwiZ2wuZ2V0UHJvZ3JhbUluZm9Mb2ciLHQsZSxuKX1lbHNlIiIhPT10P2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xQcm9ncmFtOiBnbC5nZXRQcm9ncmFtSW5mb0xvZygpIix0KToiIiE9PWUmJiIiIT09bnx8KG89ITEpO28mJih0aGlzLmRpYWdub3N0aWNzPXtydW5uYWJsZTppLHByb2dyYW1Mb2c6dCx2ZXJ0ZXhTaGFkZXI6e2xvZzplLHByZWZpeDp3fSxmcmFnbWVudFNoYWRlcjp7bG9nOm4scHJlZml4OlN9fSl9bGV0IEEsaztyZXR1cm4gci5kZWxldGVTaGFkZXIoVCksci5kZWxldGVTaGFkZXIoQyksdGhpcy5nZXRVbmlmb3Jtcz1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1BJiYoQT1uZXcgUTJ0KHIseCkpLEF9LHRoaXMuZ2V0QXR0cmlidXRlcz1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1rJiYoaz0oZnVuY3Rpb24gdChlLG4pe2NvbnN0IGk9e30scj1lLmdldFByb2dyYW1QYXJhbWV0ZXIobiwzNTcyMSk7Zm9yKGxldCB0PTA7dDxyO3QrKyl7Y29uc3Qgcj1lLmdldEFjdGl2ZUF0dHJpYihuLHQpLm5hbWU7aVtyXT1lLmdldEF0dHJpYkxvY2F0aW9uKG4scil9cmV0dXJuIGl9KShyLHgpKSxrfSx0aGlzLmRlc3Ryb3k9ZnVuY3Rpb24oKXtpLnJlbGVhc2VTdGF0ZXNPZlByb2dyYW0odGhpcyksci5kZWxldGVQcm9ncmFtKHgpLHRoaXMucHJvZ3JhbT12b2lkIDB9LHRoaXMubmFtZT1uLnNoYWRlck5hbWUsdGhpcy5pZD1lNXQrKyx0aGlzLmNhY2hlS2V5PWUsdGhpcy51c2VkVGltZXM9MSx0aGlzLnByb2dyYW09eCx0aGlzLnZlcnRleFNoYWRlcj1ULHRoaXMuZnJhZ21lbnRTaGFkZXI9Qyx0aGlzfWZ1bmN0aW9uIGI1dCh0LGUsbixpLHIsbyxhKXtjb25zdCBzPVtdLGw9ci5pc1dlYkdMMixjPXIubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcix1PXIuZmxvYXRWZXJ0ZXhUZXh0dXJlcyxoPXIubWF4VmVydGV4VW5pZm9ybXMsZD1yLnZlcnRleFRleHR1cmVzO2xldCBwPXIucHJlY2lzaW9uO2NvbnN0IGY9e01lc2hEZXB0aE1hdGVyaWFsOiJkZXB0aCIsTWVzaERpc3RhbmNlTWF0ZXJpYWw6ImRpc3RhbmNlUkdCQSIsTWVzaE5vcm1hbE1hdGVyaWFsOiJub3JtYWwiLE1lc2hCYXNpY01hdGVyaWFsOiJiYXNpYyIsTWVzaExhbWJlcnRNYXRlcmlhbDoibGFtYmVydCIsTWVzaFBob25nTWF0ZXJpYWw6InBob25nIixNZXNoVG9vbk1hdGVyaWFsOiJ0b29uIixNZXNoU3RhbmRhcmRNYXRlcmlhbDoicGh5c2ljYWwiLE1lc2hQaHlzaWNhbE1hdGVyaWFsOiJwaHlzaWNhbCIsTWVzaE1hdGNhcE1hdGVyaWFsOiJtYXRjYXAiLExpbmVCYXNpY01hdGVyaWFsOiJiYXNpYyIsTGluZURhc2hlZE1hdGVyaWFsOiJkYXNoZWQiLFBvaW50c01hdGVyaWFsOiJwb2ludHMiLFNoYWRvd01hdGVyaWFsOiJzaGFkb3ciLFNwcml0ZU1hdGVyaWFsOiJzcHJpdGUifSxtPVsicHJlY2lzaW9uIiwiaXNXZWJHTDIiLCJzdXBwb3J0c1ZlcnRleFRleHR1cmVzIiwib3V0cHV0RW5jb2RpbmciLCJpbnN0YW5jaW5nIiwiaW5zdGFuY2luZ0NvbG9yIiwibWFwIiwibWFwRW5jb2RpbmciLCJtYXRjYXAiLCJtYXRjYXBFbmNvZGluZyIsImVudk1hcCIsImVudk1hcE1vZGUiLCJlbnZNYXBFbmNvZGluZyIsImVudk1hcEN1YmVVViIsImxpZ2h0TWFwIiwibGlnaHRNYXBFbmNvZGluZyIsImFvTWFwIiwiZW1pc3NpdmVNYXAiLCJlbWlzc2l2ZU1hcEVuY29kaW5nIiwiYnVtcE1hcCIsIm5vcm1hbE1hcCIsIm9iamVjdFNwYWNlTm9ybWFsTWFwIiwidGFuZ2VudFNwYWNlTm9ybWFsTWFwIiwiY2xlYXJjb2F0TWFwIiwiY2xlYXJjb2F0Um91Z2huZXNzTWFwIiwiY2xlYXJjb2F0Tm9ybWFsTWFwIiwiZGlzcGxhY2VtZW50TWFwIiwic3BlY3VsYXJNYXAiLCJzcGVjdWxhckludGVuc2l0eU1hcCIsInNwZWN1bGFyVGludE1hcCIsInNwZWN1bGFyVGludE1hcEVuY29kaW5nIiwicm91Z2huZXNzTWFwIiwibWV0YWxuZXNzTWFwIiwiZ3JhZGllbnRNYXAiLCJhbHBoYU1hcCIsImNvbWJpbmUiLCJ2ZXJ0ZXhDb2xvcnMiLCJ2ZXJ0ZXhBbHBoYXMiLCJ2ZXJ0ZXhUYW5nZW50cyIsInZlcnRleFV2cyIsInV2c1ZlcnRleE9ubHkiLCJmb2ciLCJ1c2VGb2ciLCJmb2dFeHAyIiwiZmxhdFNoYWRpbmciLCJzaXplQXR0ZW51YXRpb24iLCJsb2dhcml0aG1pY0RlcHRoQnVmZmVyIiwic2tpbm5pbmciLCJtYXhCb25lcyIsInVzZVZlcnRleFRleHR1cmUiLCJtb3JwaFRhcmdldHMiLCJtb3JwaE5vcm1hbHMiLCJwcmVtdWx0aXBsaWVkQWxwaGEiLCJudW1EaXJMaWdodHMiLCJudW1Qb2ludExpZ2h0cyIsIm51bVNwb3RMaWdodHMiLCJudW1IZW1pTGlnaHRzIiwibnVtUmVjdEFyZWFMaWdodHMiLCJudW1EaXJMaWdodFNoYWRvd3MiLCJudW1Qb2ludExpZ2h0U2hhZG93cyIsIm51bVNwb3RMaWdodFNoYWRvd3MiLCJzaGFkb3dNYXBFbmFibGVkIiwic2hhZG93TWFwVHlwZSIsInRvbmVNYXBwaW5nIiwicGh5c2ljYWxseUNvcnJlY3RMaWdodHMiLCJhbHBoYVRlc3QiLCJkb3VibGVTaWRlZCIsImZsaXBTaWRlZCIsIm51bUNsaXBwaW5nUGxhbmVzIiwibnVtQ2xpcEludGVyc2VjdGlvbiIsImRlcHRoUGFja2luZyIsImRpdGhlcmluZyIsInNoZWVuIiwidHJhbnNtaXNzaW9uIiwidHJhbnNtaXNzaW9uTWFwIiwidGhpY2tuZXNzTWFwIl07ZnVuY3Rpb24gZyh0KXtsZXQgZTtyZXR1cm4gdCYmdC5pc1RleHR1cmU/ZT10LmVuY29kaW5nOnQmJnQuaXNXZWJHTFJlbmRlclRhcmdldD8oY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW1zLmdldFRleHR1cmVFbmNvZGluZ0Zyb21NYXA6IGRvbid0IHVzZSByZW5kZXIgdGFyZ2V0cyBhcyB0ZXh0dXJlcy4gVXNlIHRoZWlyIC50ZXh0dXJlIHByb3BlcnR5IGluc3RlYWQuIiksZT10LnRleHR1cmUuZW5jb2RpbmcpOmU9Tlp0LGV9cmV0dXJue2dldFBhcmFtZXRlcnM6ZnVuY3Rpb24gXyhvLHMsbSx5LHYpe2NvbnN0IGI9eS5mb2cseD0oby5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP246ZSkuZ2V0KG8uZW52TWFwfHwoby5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP3kuZW52aXJvbm1lbnQ6bnVsbCkpLHc9ZltvLnR5cGVdLFM9di5pc1NraW5uZWRNZXNoPyhmdW5jdGlvbiBNKHQpe2NvbnN0IGU9dC5za2VsZXRvbi5ib25lcztpZih1KXJldHVybiAxMDI0O3tjb25zdCB0PU1hdGguZmxvb3IoKGgtMjApLzQpLG49TWF0aC5taW4odCxlLmxlbmd0aCk7cmV0dXJuIG48ZS5sZW5ndGg/KGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogU2tlbGV0b24gaGFzICIrZS5sZW5ndGgrIiBib25lcy4gVGhpcyBHUFUgc3VwcG9ydHMgIituKyIuIiksMCk6bn19KSh2KTowO2xldCBFLFQ7aWYobnVsbCE9PW8ucHJlY2lzaW9uJiYocD1yLmdldE1heFByZWNpc2lvbihvLnByZWNpc2lvbikscCE9PW8ucHJlY2lzaW9uJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbS5nZXRQYXJhbWV0ZXJzOiIsby5wcmVjaXNpb24sIm5vdCBzdXBwb3J0ZWQsIHVzaW5nIixwLCJpbnN0ZWFkLiIpKSx3KXtjb25zdCB0PWMwdFt3XTtFPXQudmVydGV4U2hhZGVyLFQ9dC5mcmFnbWVudFNoYWRlcn1lbHNlIEU9by52ZXJ0ZXhTaGFkZXIsVD1vLmZyYWdtZW50U2hhZGVyO2NvbnN0IEM9dC5nZXRSZW5kZXJUYXJnZXQoKTtyZXR1cm57aXNXZWJHTDI6bCxzaGFkZXJJRDp3LHNoYWRlck5hbWU6by50eXBlLHZlcnRleFNoYWRlcjpFLGZyYWdtZW50U2hhZGVyOlQsZGVmaW5lczpvLmRlZmluZXMsaXNSYXdTaGFkZXJNYXRlcmlhbDohMD09PW8uaXNSYXdTaGFkZXJNYXRlcmlhbCxnbHNsVmVyc2lvbjpvLmdsc2xWZXJzaW9uLHByZWNpc2lvbjpwLGluc3RhbmNpbmc6ITA9PT12LmlzSW5zdGFuY2VkTWVzaCxpbnN0YW5jaW5nQ29sb3I6ITA9PT12LmlzSW5zdGFuY2VkTWVzaCYmbnVsbCE9PXYuaW5zdGFuY2VDb2xvcixzdXBwb3J0c1ZlcnRleFRleHR1cmVzOmQsb3V0cHV0RW5jb2Rpbmc6bnVsbCE9PUM/ZyhDLnRleHR1cmUpOnQub3V0cHV0RW5jb2RpbmcsbWFwOiEhby5tYXAsbWFwRW5jb2Rpbmc6ZyhvLm1hcCksbWF0Y2FwOiEhby5tYXRjYXAsbWF0Y2FwRW5jb2Rpbmc6ZyhvLm1hdGNhcCksZW52TWFwOiEheCxlbnZNYXBNb2RlOngmJngubWFwcGluZyxlbnZNYXBFbmNvZGluZzpnKHgpLGVudk1hcEN1YmVVVjohIXgmJih4Lm1hcHBpbmc9PT1ZS3R8fHgubWFwcGluZz09PVhLdCksbGlnaHRNYXA6ISFvLmxpZ2h0TWFwLGxpZ2h0TWFwRW5jb2Rpbmc6ZyhvLmxpZ2h0TWFwKSxhb01hcDohIW8uYW9NYXAsZW1pc3NpdmVNYXA6ISFvLmVtaXNzaXZlTWFwLGVtaXNzaXZlTWFwRW5jb2Rpbmc6ZyhvLmVtaXNzaXZlTWFwKSxidW1wTWFwOiEhby5idW1wTWFwLG5vcm1hbE1hcDohIW8ubm9ybWFsTWFwLG9iamVjdFNwYWNlTm9ybWFsTWFwOjE9PT1vLm5vcm1hbE1hcFR5cGUsdGFuZ2VudFNwYWNlTm9ybWFsTWFwOjA9PT1vLm5vcm1hbE1hcFR5cGUsY2xlYXJjb2F0TWFwOiEhby5jbGVhcmNvYXRNYXAsY2xlYXJjb2F0Um91Z2huZXNzTWFwOiEhby5jbGVhcmNvYXRSb3VnaG5lc3NNYXAsY2xlYXJjb2F0Tm9ybWFsTWFwOiEhby5jbGVhcmNvYXROb3JtYWxNYXAsZGlzcGxhY2VtZW50TWFwOiEhby5kaXNwbGFjZW1lbnRNYXAscm91Z2huZXNzTWFwOiEhby5yb3VnaG5lc3NNYXAsbWV0YWxuZXNzTWFwOiEhby5tZXRhbG5lc3NNYXAsc3BlY3VsYXJNYXA6ISFvLnNwZWN1bGFyTWFwLHNwZWN1bGFySW50ZW5zaXR5TWFwOiEhby5zcGVjdWxhckludGVuc2l0eU1hcCxzcGVjdWxhclRpbnRNYXA6ISFvLnNwZWN1bGFyVGludE1hcCxzcGVjdWxhclRpbnRNYXBFbmNvZGluZzpnKG8uc3BlY3VsYXJUaW50TWFwKSxhbHBoYU1hcDohIW8uYWxwaGFNYXAsZ3JhZGllbnRNYXA6ISFvLmdyYWRpZW50TWFwLHNoZWVuOiEhby5zaGVlbix0cmFuc21pc3Npb246ISFvLnRyYW5zbWlzc2lvbix0cmFuc21pc3Npb25NYXA6ISFvLnRyYW5zbWlzc2lvbk1hcCx0aGlja25lc3NNYXA6ISFvLnRoaWNrbmVzc01hcCxjb21iaW5lOm8uY29tYmluZSx2ZXJ0ZXhUYW5nZW50czohIW8ubm9ybWFsTWFwJiYhIXYuZ2VvbWV0cnkmJiEhdi5nZW9tZXRyeS5hdHRyaWJ1dGVzLnRhbmdlbnQsdmVydGV4Q29sb3JzOm8udmVydGV4Q29sb3JzLHZlcnRleEFscGhhczohMD09PW8udmVydGV4Q29sb3JzJiYhIXYuZ2VvbWV0cnkmJiEhdi5nZW9tZXRyeS5hdHRyaWJ1dGVzLmNvbG9yJiY0PT09di5nZW9tZXRyeS5hdHRyaWJ1dGVzLmNvbG9yLml0ZW1TaXplLHZlcnRleFV2czohIShvLm1hcHx8by5idW1wTWFwfHxvLm5vcm1hbE1hcHx8by5zcGVjdWxhck1hcHx8by5hbHBoYU1hcHx8by5lbWlzc2l2ZU1hcHx8by5yb3VnaG5lc3NNYXB8fG8ubWV0YWxuZXNzTWFwfHxvLmNsZWFyY29hdE1hcHx8by5jbGVhcmNvYXRSb3VnaG5lc3NNYXB8fG8uY2xlYXJjb2F0Tm9ybWFsTWFwfHxvLmRpc3BsYWNlbWVudE1hcHx8by50cmFuc21pc3Npb25NYXB8fG8udGhpY2tuZXNzTWFwfHxvLnNwZWN1bGFySW50ZW5zaXR5TWFwfHxvLnNwZWN1bGFyVGludE1hcCksdXZzVmVydGV4T25seTohKG8ubWFwfHxvLmJ1bXBNYXB8fG8ubm9ybWFsTWFwfHxvLnNwZWN1bGFyTWFwfHxvLmFscGhhTWFwfHxvLmVtaXNzaXZlTWFwfHxvLnJvdWdobmVzc01hcHx8by5tZXRhbG5lc3NNYXB8fG8uY2xlYXJjb2F0Tm9ybWFsTWFwfHxvLnRyYW5zbWlzc2lvbnx8by50cmFuc21pc3Npb25NYXB8fG8udGhpY2tuZXNzTWFwfHxvLnNwZWN1bGFySW50ZW5zaXR5TWFwfHxvLnNwZWN1bGFyVGludE1hcHx8IW8uZGlzcGxhY2VtZW50TWFwKSxmb2c6ISFiLHVzZUZvZzpvLmZvZyxmb2dFeHAyOmImJmIuaXNGb2dFeHAyLGZsYXRTaGFkaW5nOiEhby5mbGF0U2hhZGluZyxzaXplQXR0ZW51YXRpb246by5zaXplQXR0ZW51YXRpb24sbG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcjpjLHNraW5uaW5nOiEwPT09di5pc1NraW5uZWRNZXNoJiZTPjAsbWF4Qm9uZXM6Uyx1c2VWZXJ0ZXhUZXh0dXJlOnUsbW9ycGhUYXJnZXRzOiEhdi5nZW9tZXRyeSYmISF2Lmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbixtb3JwaE5vcm1hbHM6ISF2Lmdlb21ldHJ5JiYhIXYuZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzLm5vcm1hbCxudW1EaXJMaWdodHM6cy5kaXJlY3Rpb25hbC5sZW5ndGgsbnVtUG9pbnRMaWdodHM6cy5wb2ludC5sZW5ndGgsbnVtU3BvdExpZ2h0czpzLnNwb3QubGVuZ3RoLG51bVJlY3RBcmVhTGlnaHRzOnMucmVjdEFyZWEubGVuZ3RoLG51bUhlbWlMaWdodHM6cy5oZW1pLmxlbmd0aCxudW1EaXJMaWdodFNoYWRvd3M6cy5kaXJlY3Rpb25hbFNoYWRvd01hcC5sZW5ndGgsbnVtUG9pbnRMaWdodFNoYWRvd3M6cy5wb2ludFNoYWRvd01hcC5sZW5ndGgsbnVtU3BvdExpZ2h0U2hhZG93czpzLnNwb3RTaGFkb3dNYXAubGVuZ3RoLG51bUNsaXBwaW5nUGxhbmVzOmEubnVtUGxhbmVzLG51bUNsaXBJbnRlcnNlY3Rpb246YS5udW1JbnRlcnNlY3Rpb24sZGl0aGVyaW5nOm8uZGl0aGVyaW5nLHNoYWRvd01hcEVuYWJsZWQ6dC5zaGFkb3dNYXAuZW5hYmxlZCYmbS5sZW5ndGg+MCxzaGFkb3dNYXBUeXBlOnQuc2hhZG93TWFwLnR5cGUsdG9uZU1hcHBpbmc6by50b25lTWFwcGVkP3QudG9uZU1hcHBpbmc6MCxwaHlzaWNhbGx5Q29ycmVjdExpZ2h0czp0LnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzLHByZW11bHRpcGxpZWRBbHBoYTpvLnByZW11bHRpcGxpZWRBbHBoYSxhbHBoYVRlc3Q6by5hbHBoYVRlc3QsZG91YmxlU2lkZWQ6Mj09PW8uc2lkZSxmbGlwU2lkZWQ6MT09PW8uc2lkZSxkZXB0aFBhY2tpbmc6dm9pZCAwIT09by5kZXB0aFBhY2tpbmcmJm8uZGVwdGhQYWNraW5nLGluZGV4MEF0dHJpYnV0ZU5hbWU6by5pbmRleDBBdHRyaWJ1dGVOYW1lLGV4dGVuc2lvbkRlcml2YXRpdmVzOm8uZXh0ZW5zaW9ucyYmby5leHRlbnNpb25zLmRlcml2YXRpdmVzLGV4dGVuc2lvbkZyYWdEZXB0aDpvLmV4dGVuc2lvbnMmJm8uZXh0ZW5zaW9ucy5mcmFnRGVwdGgsZXh0ZW5zaW9uRHJhd0J1ZmZlcnM6by5leHRlbnNpb25zJiZvLmV4dGVuc2lvbnMuZHJhd0J1ZmZlcnMsZXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxPRDpvLmV4dGVuc2lvbnMmJm8uZXh0ZW5zaW9ucy5zaGFkZXJUZXh0dXJlTE9ELHJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoOmx8fGkuaGFzKCJFWFRfZnJhZ19kZXB0aCIpLHJlbmRlcmVyRXh0ZW5zaW9uRHJhd0J1ZmZlcnM6bHx8aS5oYXMoIldFQkdMX2RyYXdfYnVmZmVycyIpLHJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZDpsfHxpLmhhcygiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpLGN1c3RvbVByb2dyYW1DYWNoZUtleTpvLmN1c3RvbVByb2dyYW1DYWNoZUtleSgpfX0sZ2V0UHJvZ3JhbUNhY2hlS2V5OmZ1bmN0aW9uIHkoZSl7Y29uc3Qgbj1bXTtpZihlLnNoYWRlcklEP24ucHVzaChlLnNoYWRlcklEKToobi5wdXNoKGUuZnJhZ21lbnRTaGFkZXIpLG4ucHVzaChlLnZlcnRleFNoYWRlcikpLHZvaWQgMCE9PWUuZGVmaW5lcylmb3IoY29uc3QgdCBpbiBlLmRlZmluZXMpbi5wdXNoKHQpLG4ucHVzaChlLmRlZmluZXNbdF0pO2lmKCExPT09ZS5pc1Jhd1NoYWRlck1hdGVyaWFsKXtmb3IobGV0IHQ9MDt0PG0ubGVuZ3RoO3QrKyluLnB1c2goZVttW3RdXSk7bi5wdXNoKHQub3V0cHV0RW5jb2RpbmcpLG4ucHVzaCh0LmdhbW1hRmFjdG9yKX1yZXR1cm4gbi5wdXNoKGUuY3VzdG9tUHJvZ3JhbUNhY2hlS2V5KSxuLmpvaW4oKX0sZ2V0VW5pZm9ybXM6ZnVuY3Rpb24gdih0KXtjb25zdCBlPWZbdC50eXBlXTtsZXQgbjtyZXR1cm4gbj1lP2oxdC5jbG9uZShjMHRbZV0udW5pZm9ybXMpOnQudW5pZm9ybXMsbn0sYWNxdWlyZVByb2dyYW06ZnVuY3Rpb24gYihlLG4pe2xldCBpO2ZvcihsZXQgdD0wLGU9cy5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1zW3RdO2lmKGUuY2FjaGVLZXk9PT1uKXtpPWUsKytpLnVzZWRUaW1lczticmVha319cmV0dXJuIHZvaWQgMD09PWkmJihpPW5ldyB2NXQodCxuLGUsbykscy5wdXNoKGkpKSxpfSxyZWxlYXNlUHJvZ3JhbTpmdW5jdGlvbiB4KHQpe2lmKDA9PS0tdC51c2VkVGltZXMpe2NvbnN0IGU9cy5pbmRleE9mKHQpO3NbZV09c1tzLmxlbmd0aC0xXSxzLnBvcCgpLHQuZGVzdHJveSgpfX0scHJvZ3JhbXM6c319ZnVuY3Rpb24geDV0KCl7bGV0IHQ9bmV3IFdlYWtNYXA7cmV0dXJue2dldDpmdW5jdGlvbiBlKG4pe2xldCBpPXQuZ2V0KG4pO3JldHVybiB2b2lkIDA9PT1pJiYoaT17fSx0LnNldChuLGkpKSxpfSxyZW1vdmU6ZnVuY3Rpb24gbihlKXt0LmRlbGV0ZShlKX0sdXBkYXRlOmZ1bmN0aW9uIGkoZSxuLHIpe3QuZ2V0KGUpW25dPXJ9LGRpc3Bvc2U6ZnVuY3Rpb24gcigpe3Q9bmV3IFdlYWtNYXB9fX1mdW5jdGlvbiB3NXQodCxlKXtyZXR1cm4gdC5ncm91cE9yZGVyIT09ZS5ncm91cE9yZGVyP3QuZ3JvdXBPcmRlci1lLmdyb3VwT3JkZXI6dC5yZW5kZXJPcmRlciE9PWUucmVuZGVyT3JkZXI/dC5yZW5kZXJPcmRlci1lLnJlbmRlck9yZGVyOnQucHJvZ3JhbSE9PWUucHJvZ3JhbT90LnByb2dyYW0uaWQtZS5wcm9ncmFtLmlkOnQubWF0ZXJpYWwuaWQhPT1lLm1hdGVyaWFsLmlkP3QubWF0ZXJpYWwuaWQtZS5tYXRlcmlhbC5pZDp0LnohPT1lLno/dC56LWUuejp0LmlkLWUuaWR9ZnVuY3Rpb24gUzV0KHQsZSl7cmV0dXJuIHQuZ3JvdXBPcmRlciE9PWUuZ3JvdXBPcmRlcj90Lmdyb3VwT3JkZXItZS5ncm91cE9yZGVyOnQucmVuZGVyT3JkZXIhPT1lLnJlbmRlck9yZGVyP3QucmVuZGVyT3JkZXItZS5yZW5kZXJPcmRlcjp0LnohPT1lLno/ZS56LXQuejp0LmlkLWUuaWR9ZnVuY3Rpb24gTTV0KHQpe2NvbnN0IGU9W107bGV0IG49MDtjb25zdCBpPVtdLHI9W10sbz1bXSxhPXtpZDotMX07ZnVuY3Rpb24gcyhpLHIsbyxzLGwsYyl7bGV0IHU9ZVtuXTtjb25zdCBoPXQuZ2V0KG8pO3JldHVybiB2b2lkIDA9PT11Pyh1PXtpZDppLmlkLG9iamVjdDppLGdlb21ldHJ5OnIsbWF0ZXJpYWw6byxwcm9ncmFtOmgucHJvZ3JhbXx8YSxncm91cE9yZGVyOnMscmVuZGVyT3JkZXI6aS5yZW5kZXJPcmRlcix6OmwsZ3JvdXA6Y30sZVtuXT11KToodS5pZD1pLmlkLHUub2JqZWN0PWksdS5nZW9tZXRyeT1yLHUubWF0ZXJpYWw9byx1LnByb2dyYW09aC5wcm9ncmFtfHxhLHUuZ3JvdXBPcmRlcj1zLHUucmVuZGVyT3JkZXI9aS5yZW5kZXJPcmRlcix1Lno9bCx1Lmdyb3VwPWMpLG4rKyx1fXJldHVybntvcGFxdWU6aSx0cmFuc21pc3NpdmU6cix0cmFuc3BhcmVudDpvLGluaXQ6ZnVuY3Rpb24gbCgpe249MCxpLmxlbmd0aD0wLHIubGVuZ3RoPTAsby5sZW5ndGg9MH0scHVzaDpmdW5jdGlvbiBjKHQsZSxuLGEsbCx1KXtjb25zdCBoPXModCxlLG4sYSxsLHUpO24udHJhbnNtaXNzaW9uPjA/ci5wdXNoKGgpOiEwPT09bi50cmFuc3BhcmVudD9vLnB1c2goaCk6aS5wdXNoKGgpfSx1bnNoaWZ0OmZ1bmN0aW9uIHUodCxlLG4sYSxsLGMpe2NvbnN0IHU9cyh0LGUsbixhLGwsYyk7bi50cmFuc21pc3Npb24+MD9yLnVuc2hpZnQodSk6ITA9PT1uLnRyYW5zcGFyZW50P28udW5zaGlmdCh1KTppLnVuc2hpZnQodSl9LGZpbmlzaDpmdW5jdGlvbiBoKCl7Zm9yKGxldCB0PW4saT1lLmxlbmd0aDt0PGk7dCsrKXtjb25zdCBuPWVbdF07aWYobnVsbD09PW4uaWQpYnJlYWs7bi5pZD1udWxsLG4ub2JqZWN0PW51bGwsbi5nZW9tZXRyeT1udWxsLG4ubWF0ZXJpYWw9bnVsbCxuLnByb2dyYW09bnVsbCxuLmdyb3VwPW51bGx9fSxzb3J0OmZ1bmN0aW9uIGQodCxlKXtpLmxlbmd0aD4xJiZpLnNvcnQodHx8dzV0KSxyLmxlbmd0aD4xJiZyLnNvcnQoZXx8UzV0KSxvLmxlbmd0aD4xJiZvLnNvcnQoZXx8UzV0KX19fWZ1bmN0aW9uIEU1dCh0KXtsZXQgZT1uZXcgV2Vha01hcDtyZXR1cm57Z2V0OmZ1bmN0aW9uIG4oaSxyKXtsZXQgbztyZXR1cm4hMT09PWUuaGFzKGkpPyhvPW5ldyBNNXQodCksZS5zZXQoaSxbb10pKTpyPj1lLmdldChpKS5sZW5ndGg/KG89bmV3IE01dCh0KSxlLmdldChpKS5wdXNoKG8pKTpvPWUuZ2V0KGkpW3JdLG99LGRpc3Bvc2U6ZnVuY3Rpb24gaSgpe2U9bmV3IFdlYWtNYXB9fX1mdW5jdGlvbiBUNXQoKXtjb25zdCB0PXt9O3JldHVybntnZXQ6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09dFtlLmlkXSlyZXR1cm4gdFtlLmlkXTtsZXQgbjtzd2l0Y2goZS50eXBlKXtjYXNlIkRpcmVjdGlvbmFsTGlnaHQiOm49e2RpcmVjdGlvbjpuZXcgQ0p0LGNvbG9yOm5ldyAkUXR9O2JyZWFrO2Nhc2UiU3BvdExpZ2h0IjpuPXtwb3NpdGlvbjpuZXcgQ0p0LGRpcmVjdGlvbjpuZXcgQ0p0LGNvbG9yOm5ldyAkUXQsZGlzdGFuY2U6MCxjb25lQ29zOjAscGVudW1icmFDb3M6MCxkZWNheTowfTticmVhaztjYXNlIlBvaW50TGlnaHQiOm49e3Bvc2l0aW9uOm5ldyBDSnQsY29sb3I6bmV3ICRRdCxkaXN0YW5jZTowLGRlY2F5OjB9O2JyZWFrO2Nhc2UiSGVtaXNwaGVyZUxpZ2h0IjpuPXtkaXJlY3Rpb246bmV3IENKdCxza3lDb2xvcjpuZXcgJFF0LGdyb3VuZENvbG9yOm5ldyAkUXR9O2JyZWFrO2Nhc2UiUmVjdEFyZWFMaWdodCI6bj17Y29sb3I6bmV3ICRRdCxwb3NpdGlvbjpuZXcgQ0p0LGhhbGZXaWR0aDpuZXcgQ0p0LGhhbGZIZWlnaHQ6bmV3IENKdH19cmV0dXJuIHRbZS5pZF09bixufX19bGV0IEM1dD0wO2Z1bmN0aW9uIEE1dCh0LGUpe3JldHVybihlLmNhc3RTaGFkb3c/MTowKS0odC5jYXN0U2hhZG93PzE6MCl9ZnVuY3Rpb24gazV0KHQsZSl7Y29uc3Qgbj1uZXcgVDV0LGk9KGZ1bmN0aW9uIHIoKXtjb25zdCB0PXt9O3JldHVybntnZXQ6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09dFtlLmlkXSlyZXR1cm4gdFtlLmlkXTtsZXQgbjtzd2l0Y2goZS50eXBlKXtjYXNlIkRpcmVjdGlvbmFsTGlnaHQiOmNhc2UiU3BvdExpZ2h0IjpuPXtzaGFkb3dCaWFzOjAsc2hhZG93Tm9ybWFsQmlhczowLHNoYWRvd1JhZGl1czoxLHNoYWRvd01hcFNpemU6bmV3IG1KdH07YnJlYWs7Y2FzZSJQb2ludExpZ2h0IjpuPXtzaGFkb3dCaWFzOjAsc2hhZG93Tm9ybWFsQmlhczowLHNoYWRvd1JhZGl1czoxLHNoYWRvd01hcFNpemU6bmV3IG1KdCxzaGFkb3dDYW1lcmFOZWFyOjEsc2hhZG93Q2FtZXJhRmFyOjFlM319cmV0dXJuIHRbZS5pZF09bixufX19KSgpLG89e3ZlcnNpb246MCxoYXNoOntkaXJlY3Rpb25hbExlbmd0aDotMSxwb2ludExlbmd0aDotMSxzcG90TGVuZ3RoOi0xLHJlY3RBcmVhTGVuZ3RoOi0xLGhlbWlMZW5ndGg6LTEsbnVtRGlyZWN0aW9uYWxTaGFkb3dzOi0xLG51bVBvaW50U2hhZG93czotMSxudW1TcG90U2hhZG93czotMX0sYW1iaWVudDpbMCwwLDBdLHByb2JlOltdLGRpcmVjdGlvbmFsOltdLGRpcmVjdGlvbmFsU2hhZG93OltdLGRpcmVjdGlvbmFsU2hhZG93TWFwOltdLGRpcmVjdGlvbmFsU2hhZG93TWF0cml4OltdLHNwb3Q6W10sc3BvdFNoYWRvdzpbXSxzcG90U2hhZG93TWFwOltdLHNwb3RTaGFkb3dNYXRyaXg6W10scmVjdEFyZWE6W10scmVjdEFyZWFMVEMxOm51bGwscmVjdEFyZWFMVEMyOm51bGwscG9pbnQ6W10scG9pbnRTaGFkb3c6W10scG9pbnRTaGFkb3dNYXA6W10scG9pbnRTaGFkb3dNYXRyaXg6W10saGVtaTpbXX07Zm9yKGxldCB0PTA7dDw5O3QrKylvLnByb2JlLnB1c2gobmV3IENKdCk7Y29uc3QgYT1uZXcgQ0p0LHM9bmV3IHJRdCxsPW5ldyByUXQ7cmV0dXJue3NldHVwOmZ1bmN0aW9uIGMocil7bGV0IGE9MCxzPTAsbD0wO2ZvcihsZXQgdD0wO3Q8OTt0Kyspby5wcm9iZVt0XS5zZXQoMCwwLDApO2xldCBjPTAsdT0wLGg9MCxkPTAscD0wLGY9MCxtPTAsZz0wO3Iuc29ydChBNXQpO2ZvcihsZXQgdD0wLGU9ci5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1yW3RdLF89ZS5jb2xvcix5PWUuaW50ZW5zaXR5LHY9ZS5kaXN0YW5jZSxiPWUuc2hhZG93JiZlLnNoYWRvdy5tYXA/ZS5zaGFkb3cubWFwLnRleHR1cmU6bnVsbDtpZihlLmlzQW1iaWVudExpZ2h0KWErPV8ucip5LHMrPV8uZyp5LGwrPV8uYip5O2Vsc2UgaWYoZS5pc0xpZ2h0UHJvYmUpZm9yKGxldCB0PTA7dDw5O3QrKylvLnByb2JlW3RdLmFkZFNjYWxlZFZlY3RvcihlLnNoLmNvZWZmaWNpZW50c1t0XSx5KTtlbHNlIGlmKGUuaXNEaXJlY3Rpb25hbExpZ2h0KXtjb25zdCB0PW4uZ2V0KGUpO2lmKHQuY29sb3IuY29weShlLmNvbG9yKS5tdWx0aXBseVNjYWxhcihlLmludGVuc2l0eSksZS5jYXN0U2hhZG93KXtjb25zdCB0PWUuc2hhZG93LG49aS5nZXQoZSk7bi5zaGFkb3dCaWFzPXQuYmlhcyxuLnNoYWRvd05vcm1hbEJpYXM9dC5ub3JtYWxCaWFzLG4uc2hhZG93UmFkaXVzPXQucmFkaXVzLG4uc2hhZG93TWFwU2l6ZT10Lm1hcFNpemUsby5kaXJlY3Rpb25hbFNoYWRvd1tjXT1uLG8uZGlyZWN0aW9uYWxTaGFkb3dNYXBbY109YixvLmRpcmVjdGlvbmFsU2hhZG93TWF0cml4W2NdPWUuc2hhZG93Lm1hdHJpeCxmKyt9by5kaXJlY3Rpb25hbFtjXT10LGMrK31lbHNlIGlmKGUuaXNTcG90TGlnaHQpe2NvbnN0IHQ9bi5nZXQoZSk7aWYodC5wb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oZS5tYXRyaXhXb3JsZCksdC5jb2xvci5jb3B5KF8pLm11bHRpcGx5U2NhbGFyKHkpLHQuZGlzdGFuY2U9dix0LmNvbmVDb3M9TWF0aC5jb3MoZS5hbmdsZSksdC5wZW51bWJyYUNvcz1NYXRoLmNvcyhlLmFuZ2xlKigxLWUucGVudW1icmEpKSx0LmRlY2F5PWUuZGVjYXksZS5jYXN0U2hhZG93KXtjb25zdCB0PWUuc2hhZG93LG49aS5nZXQoZSk7bi5zaGFkb3dCaWFzPXQuYmlhcyxuLnNoYWRvd05vcm1hbEJpYXM9dC5ub3JtYWxCaWFzLG4uc2hhZG93UmFkaXVzPXQucmFkaXVzLG4uc2hhZG93TWFwU2l6ZT10Lm1hcFNpemUsby5zcG90U2hhZG93W2hdPW4sby5zcG90U2hhZG93TWFwW2hdPWIsby5zcG90U2hhZG93TWF0cml4W2hdPWUuc2hhZG93Lm1hdHJpeCxnKyt9by5zcG90W2hdPXQsaCsrfWVsc2UgaWYoZS5pc1JlY3RBcmVhTGlnaHQpe2NvbnN0IHQ9bi5nZXQoZSk7dC5jb2xvci5jb3B5KF8pLm11bHRpcGx5U2NhbGFyKHkpLHQuaGFsZldpZHRoLnNldCguNSplLndpZHRoLDAsMCksdC5oYWxmSGVpZ2h0LnNldCgwLC41KmUuaGVpZ2h0LDApLG8ucmVjdEFyZWFbZF09dCxkKyt9ZWxzZSBpZihlLmlzUG9pbnRMaWdodCl7Y29uc3QgdD1uLmdldChlKTtpZih0LmNvbG9yLmNvcHkoZS5jb2xvcikubXVsdGlwbHlTY2FsYXIoZS5pbnRlbnNpdHkpLHQuZGlzdGFuY2U9ZS5kaXN0YW5jZSx0LmRlY2F5PWUuZGVjYXksZS5jYXN0U2hhZG93KXtjb25zdCB0PWUuc2hhZG93LG49aS5nZXQoZSk7bi5zaGFkb3dCaWFzPXQuYmlhcyxuLnNoYWRvd05vcm1hbEJpYXM9dC5ub3JtYWxCaWFzLG4uc2hhZG93UmFkaXVzPXQucmFkaXVzLG4uc2hhZG93TWFwU2l6ZT10Lm1hcFNpemUsbi5zaGFkb3dDYW1lcmFOZWFyPXQuY2FtZXJhLm5lYXIsbi5zaGFkb3dDYW1lcmFGYXI9dC5jYW1lcmEuZmFyLG8ucG9pbnRTaGFkb3dbdV09bixvLnBvaW50U2hhZG93TWFwW3VdPWIsby5wb2ludFNoYWRvd01hdHJpeFt1XT1lLnNoYWRvdy5tYXRyaXgsbSsrfW8ucG9pbnRbdV09dCx1Kyt9ZWxzZSBpZihlLmlzSGVtaXNwaGVyZUxpZ2h0KXtjb25zdCB0PW4uZ2V0KGUpO3Quc2t5Q29sb3IuY29weShlLmNvbG9yKS5tdWx0aXBseVNjYWxhcih5KSx0Lmdyb3VuZENvbG9yLmNvcHkoZS5ncm91bmRDb2xvcikubXVsdGlwbHlTY2FsYXIoeSksby5oZW1pW3BdPXQscCsrfX1kPjAmJihlLmlzV2ViR0wyfHwhMD09PXQuaGFzKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKT8oby5yZWN0QXJlYUxUQzE9bDB0LkxUQ19GTE9BVF8xLG8ucmVjdEFyZWFMVEMyPWwwdC5MVENfRkxPQVRfMik6ITA9PT10LmhhcygiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKT8oby5yZWN0QXJlYUxUQzE9bDB0LkxUQ19IQUxGXzEsby5yZWN0QXJlYUxUQzI9bDB0LkxUQ19IQUxGXzIpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXI6IFVuYWJsZSB0byB1c2UgUmVjdEFyZWFMaWdodC4gTWlzc2luZyBXZWJHTCBleHRlbnNpb25zLiIpKSxvLmFtYmllbnRbMF09YSxvLmFtYmllbnRbMV09cyxvLmFtYmllbnRbMl09bDtjb25zdCBfPW8uaGFzaDtfLmRpcmVjdGlvbmFsTGVuZ3RoPT09YyYmXy5wb2ludExlbmd0aD09PXUmJl8uc3BvdExlbmd0aD09PWgmJl8ucmVjdEFyZWFMZW5ndGg9PT1kJiZfLmhlbWlMZW5ndGg9PT1wJiZfLm51bURpcmVjdGlvbmFsU2hhZG93cz09PWYmJl8ubnVtUG9pbnRTaGFkb3dzPT09bSYmXy5udW1TcG90U2hhZG93cz09PWd8fChvLmRpcmVjdGlvbmFsLmxlbmd0aD1jLG8uc3BvdC5sZW5ndGg9aCxvLnJlY3RBcmVhLmxlbmd0aD1kLG8ucG9pbnQubGVuZ3RoPXUsby5oZW1pLmxlbmd0aD1wLG8uZGlyZWN0aW9uYWxTaGFkb3cubGVuZ3RoPWYsby5kaXJlY3Rpb25hbFNoYWRvd01hcC5sZW5ndGg9ZixvLnBvaW50U2hhZG93Lmxlbmd0aD1tLG8ucG9pbnRTaGFkb3dNYXAubGVuZ3RoPW0sby5zcG90U2hhZG93Lmxlbmd0aD1nLG8uc3BvdFNoYWRvd01hcC5sZW5ndGg9ZyxvLmRpcmVjdGlvbmFsU2hhZG93TWF0cml4Lmxlbmd0aD1mLG8ucG9pbnRTaGFkb3dNYXRyaXgubGVuZ3RoPW0sby5zcG90U2hhZG93TWF0cml4Lmxlbmd0aD1nLF8uZGlyZWN0aW9uYWxMZW5ndGg9YyxfLnBvaW50TGVuZ3RoPXUsXy5zcG90TGVuZ3RoPWgsXy5yZWN0QXJlYUxlbmd0aD1kLF8uaGVtaUxlbmd0aD1wLF8ubnVtRGlyZWN0aW9uYWxTaGFkb3dzPWYsXy5udW1Qb2ludFNoYWRvd3M9bSxfLm51bVNwb3RTaGFkb3dzPWcsby52ZXJzaW9uPUM1dCsrKX0sc2V0dXBWaWV3OmZ1bmN0aW9uIHUodCxlKXtsZXQgbj0wLGk9MCxyPTAsYz0wLHU9MDtjb25zdCBoPWUubWF0cml4V29ybGRJbnZlcnNlO2ZvcihsZXQgZT0wLGQ9dC5sZW5ndGg7ZTxkO2UrKyl7Y29uc3QgZD10W2VdO2lmKGQuaXNEaXJlY3Rpb25hbExpZ2h0KXtjb25zdCB0PW8uZGlyZWN0aW9uYWxbbl07dC5kaXJlY3Rpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGQubWF0cml4V29ybGQpLGEuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGQudGFyZ2V0Lm1hdHJpeFdvcmxkKSx0LmRpcmVjdGlvbi5zdWIoYSksdC5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKGgpLG4rK31lbHNlIGlmKGQuaXNTcG90TGlnaHQpe2NvbnN0IHQ9by5zcG90W3JdO3QucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGQubWF0cml4V29ybGQpLHQucG9zaXRpb24uYXBwbHlNYXRyaXg0KGgpLHQuZGlyZWN0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihkLm1hdHJpeFdvcmxkKSxhLnNldEZyb21NYXRyaXhQb3NpdGlvbihkLnRhcmdldC5tYXRyaXhXb3JsZCksdC5kaXJlY3Rpb24uc3ViKGEpLHQuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbihoKSxyKyt9ZWxzZSBpZihkLmlzUmVjdEFyZWFMaWdodCl7Y29uc3QgdD1vLnJlY3RBcmVhW2NdO3QucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGQubWF0cml4V29ybGQpLHQucG9zaXRpb24uYXBwbHlNYXRyaXg0KGgpLGwuaWRlbnRpdHkoKSxzLmNvcHkoZC5tYXRyaXhXb3JsZCkscy5wcmVtdWx0aXBseShoKSxsLmV4dHJhY3RSb3RhdGlvbihzKSx0LmhhbGZXaWR0aC5zZXQoLjUqZC53aWR0aCwwLDApLHQuaGFsZkhlaWdodC5zZXQoMCwuNSpkLmhlaWdodCwwKSx0LmhhbGZXaWR0aC5hcHBseU1hdHJpeDQobCksdC5oYWxmSGVpZ2h0LmFwcGx5TWF0cml4NChsKSxjKyt9ZWxzZSBpZihkLmlzUG9pbnRMaWdodCl7Y29uc3QgdD1vLnBvaW50W2ldO3QucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGQubWF0cml4V29ybGQpLHQucG9zaXRpb24uYXBwbHlNYXRyaXg0KGgpLGkrK31lbHNlIGlmKGQuaXNIZW1pc3BoZXJlTGlnaHQpe2NvbnN0IHQ9by5oZW1pW3VdO3QuZGlyZWN0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihkLm1hdHJpeFdvcmxkKSx0LmRpcmVjdGlvbi50cmFuc2Zvcm1EaXJlY3Rpb24oaCksdC5kaXJlY3Rpb24ubm9ybWFsaXplKCksdSsrfX19LHN0YXRlOm99fWZ1bmN0aW9uIEw1dCh0LGUpe2NvbnN0IG49bmV3IGs1dCh0LGUpLGk9W10scj1bXTtyZXR1cm57aW5pdDpmdW5jdGlvbiBvKCl7aS5sZW5ndGg9MCxyLmxlbmd0aD0wfSxzdGF0ZTp7bGlnaHRzQXJyYXk6aSxzaGFkb3dzQXJyYXk6cixsaWdodHM6bn0sc2V0dXBMaWdodHM6ZnVuY3Rpb24gYSgpe24uc2V0dXAoaSl9LHNldHVwTGlnaHRzVmlldzpmdW5jdGlvbiBzKHQpe24uc2V0dXBWaWV3KGksdCl9LHB1c2hMaWdodDpmdW5jdGlvbiBsKHQpe2kucHVzaCh0KX0scHVzaFNoYWRvdzpmdW5jdGlvbiBjKHQpe3IucHVzaCh0KX19fWZ1bmN0aW9uIFA1dCh0LGUpe2xldCBuPW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24gaShyLG89MCl7bGV0IGE7cmV0dXJuITE9PT1uLmhhcyhyKT8oYT1uZXcgTDV0KHQsZSksbi5zZXQocixbYV0pKTpvPj1uLmdldChyKS5sZW5ndGg/KGE9bmV3IEw1dCh0LGUpLG4uZ2V0KHIpLnB1c2goYSkpOmE9bi5nZXQocilbb10sYX0sZGlzcG9zZTpmdW5jdGlvbiByKCl7bj1uZXcgV2Vha01hcH19fWNsYXNzIE41dCBleHRlbmRzIFVRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaERlcHRoTWF0ZXJpYWwiLHRoaXMuZGVwdGhQYWNraW5nPTMyMDAsdGhpcy5tYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLmZvZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGVwdGhQYWNraW5nPXQuZGVwdGhQYWNraW5nLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzfX1ONXQucHJvdG90eXBlLmlzTWVzaERlcHRoTWF0ZXJpYWw9ITA7Y2xhc3MgSTV0IGV4dGVuZHMgVVF0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoRGlzdGFuY2VNYXRlcmlhbCIsdGhpcy5yZWZlcmVuY2VQb3NpdGlvbj1uZXcgQ0p0LHRoaXMubmVhckRpc3RhbmNlPTEsdGhpcy5mYXJEaXN0YW5jZT0xZTMsdGhpcy5tYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5mb2c9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnJlZmVyZW5jZVBvc2l0aW9uLmNvcHkodC5yZWZlcmVuY2VQb3NpdGlvbiksdGhpcy5uZWFyRGlzdGFuY2U9dC5uZWFyRGlzdGFuY2UsdGhpcy5mYXJEaXN0YW5jZT10LmZhckRpc3RhbmNlLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzfX1mdW5jdGlvbiBSNXQodCxlLG4pe2xldCBpPW5ldyBpMHQ7Y29uc3Qgcj1uZXcgbUp0LG89bmV3IG1KdCxhPW5ldyB3SnQscz1uZXcgTjV0KHtkZXB0aFBhY2tpbmc6MzIwMX0pLGw9bmV3IEk1dCxjPXt9LHU9bi5tYXhUZXh0dXJlU2l6ZSxoPXswOjEsMTowLDI6Mn0sZD1uZXcgRzF0KHtkZWZpbmVzOntTQU1QTEVfUkFURToyLzgsSEFMRl9TQU1QTEVfUkFURToxLzh9LHVuaWZvcm1zOntzaGFkb3dfcGFzczp7dmFsdWU6bnVsbH0scmVzb2x1dGlvbjp7dmFsdWU6bmV3IG1KdH0scmFkaXVzOnt2YWx1ZTo0fX0sdmVydGV4U2hhZGVyOiJ2b2lkIG1haW4oKSB7XG5cdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApO1xufSIsZnJhZ21lbnRTaGFkZXI6InVuaWZvcm0gc2FtcGxlcjJEIHNoYWRvd19wYXNzO1xudW5pZm9ybSB2ZWMyIHJlc29sdXRpb247XG51bmlmb3JtIGZsb2F0IHJhZGl1cztcbiNpbmNsdWRlIDxwYWNraW5nPlxudm9pZCBtYWluKCkge1xuXHRmbG9hdCBtZWFuID0gMC4wO1xuXHRmbG9hdCBzcXVhcmVkX21lYW4gPSAwLjA7XG5cdGZsb2F0IGRlcHRoID0gdW5wYWNrUkdCQVRvRGVwdGgoIHRleHR1cmUyRCggc2hhZG93X3Bhc3MsICggZ2xfRnJhZ0Nvb3JkLnh5ICkgLyByZXNvbHV0aW9uICkgKTtcblx0Zm9yICggZmxvYXQgaSA9IC0xLjA7IGkgPCAxLjAgOyBpICs9IFNBTVBMRV9SQVRFKSB7XG5cdFx0I2lmZGVmIEhPUklaT05UQUxfUEFTU1xuXHRcdFx0dmVjMiBkaXN0cmlidXRpb24gPSB1bnBhY2tSR0JBVG8ySGFsZiggdGV4dHVyZTJEKCBzaGFkb3dfcGFzcywgKCBnbF9GcmFnQ29vcmQueHkgKyB2ZWMyKCBpLCAwLjAgKSAqIHJhZGl1cyApIC8gcmVzb2x1dGlvbiApICk7XG5cdFx0XHRtZWFuICs9IGRpc3RyaWJ1dGlvbi54O1xuXHRcdFx0c3F1YXJlZF9tZWFuICs9IGRpc3RyaWJ1dGlvbi55ICogZGlzdHJpYnV0aW9uLnkgKyBkaXN0cmlidXRpb24ueCAqIGRpc3RyaWJ1dGlvbi54O1xuXHRcdCNlbHNlXG5cdFx0XHRmbG9hdCBkZXB0aCA9IHVucGFja1JHQkFUb0RlcHRoKCB0ZXh0dXJlMkQoIHNoYWRvd19wYXNzLCAoIGdsX0ZyYWdDb29yZC54eSArIHZlYzIoIDAuMCwgaSApICogcmFkaXVzICkgLyByZXNvbHV0aW9uICkgKTtcblx0XHRcdG1lYW4gKz0gZGVwdGg7XG5cdFx0XHRzcXVhcmVkX21lYW4gKz0gZGVwdGggKiBkZXB0aDtcblx0XHQjZW5kaWZcblx0fVxuXHRtZWFuID0gbWVhbiAqIEhBTEZfU0FNUExFX1JBVEU7XG5cdHNxdWFyZWRfbWVhbiA9IHNxdWFyZWRfbWVhbiAqIEhBTEZfU0FNUExFX1JBVEU7XG5cdGZsb2F0IHN0ZF9kZXYgPSBzcXJ0KCBzcXVhcmVkX21lYW4gLSBtZWFuICogbWVhbiApO1xuXHRnbF9GcmFnQ29sb3IgPSBwYWNrMkhhbGZUb1JHQkEoIHZlYzIoIG1lYW4sIHN0ZF9kZXYgKSApO1xufSJ9KSxwPWQuY2xvbmUoKTtwLmRlZmluZXMuSE9SSVpPTlRBTF9QQVNTPTE7Y29uc3QgZj1uZXcgYjF0O2Yuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IFFRdChuZXcgRmxvYXQzMkFycmF5KFstMSwtMSwuNSwzLC0xLC41LC0xLDMsLjVdKSwzKSk7Y29uc3QgbT1uZXcgQjF0KGYsZCksZz10aGlzO2Z1bmN0aW9uIF8obixpKXtjb25zdCByPWUudXBkYXRlKG0pO2QudW5pZm9ybXMuc2hhZG93X3Bhc3MudmFsdWU9bi5tYXAudGV4dHVyZSxkLnVuaWZvcm1zLnJlc29sdXRpb24udmFsdWU9bi5tYXBTaXplLGQudW5pZm9ybXMucmFkaXVzLnZhbHVlPW4ucmFkaXVzLHQuc2V0UmVuZGVyVGFyZ2V0KG4ubWFwUGFzcyksdC5jbGVhcigpLHQucmVuZGVyQnVmZmVyRGlyZWN0KGksbnVsbCxyLGQsbSxudWxsKSxwLnVuaWZvcm1zLnNoYWRvd19wYXNzLnZhbHVlPW4ubWFwUGFzcy50ZXh0dXJlLHAudW5pZm9ybXMucmVzb2x1dGlvbi52YWx1ZT1uLm1hcFNpemUscC51bmlmb3Jtcy5yYWRpdXMudmFsdWU9bi5yYWRpdXMsdC5zZXRSZW5kZXJUYXJnZXQobi5tYXApLHQuY2xlYXIoKSx0LnJlbmRlckJ1ZmZlckRpcmVjdChpLG51bGwscixwLG0sbnVsbCl9ZnVuY3Rpb24geShlLG4saSxyLG8sYSx1KXtsZXQgZD1udWxsO2NvbnN0IHA9ITA9PT1yLmlzUG9pbnRMaWdodD9lLmN1c3RvbURpc3RhbmNlTWF0ZXJpYWw6ZS5jdXN0b21EZXB0aE1hdGVyaWFsO2lmKGQ9dm9pZCAwIT09cD9wOiEwPT09ci5pc1BvaW50TGlnaHQ/bDpzLHQubG9jYWxDbGlwcGluZ0VuYWJsZWQmJiEwPT09aS5jbGlwU2hhZG93cyYmMCE9PWkuY2xpcHBpbmdQbGFuZXMubGVuZ3RoKXtjb25zdCB0PWQudXVpZCxlPWkudXVpZDtsZXQgbj1jW3RdO3ZvaWQgMD09PW4mJihuPXt9LGNbdF09bik7bGV0IHI9bltlXTt2b2lkIDA9PT1yJiYocj1kLmNsb25lKCksbltlXT1yKSxkPXJ9cmV0dXJuIGQudmlzaWJsZT1pLnZpc2libGUsZC53aXJlZnJhbWU9aS53aXJlZnJhbWUsZC5zaWRlPTM9PT11P251bGwhPT1pLnNoYWRvd1NpZGU/aS5zaGFkb3dTaWRlOmkuc2lkZTpudWxsIT09aS5zaGFkb3dTaWRlP2kuc2hhZG93U2lkZTpoW2kuc2lkZV0sZC5jbGlwU2hhZG93cz1pLmNsaXBTaGFkb3dzLGQuY2xpcHBpbmdQbGFuZXM9aS5jbGlwcGluZ1BsYW5lcyxkLmNsaXBJbnRlcnNlY3Rpb249aS5jbGlwSW50ZXJzZWN0aW9uLGQud2lyZWZyYW1lTGluZXdpZHRoPWkud2lyZWZyYW1lTGluZXdpZHRoLGQubGluZXdpZHRoPWkubGluZXdpZHRoLCEwPT09ci5pc1BvaW50TGlnaHQmJiEwPT09ZC5pc01lc2hEaXN0YW5jZU1hdGVyaWFsJiYoZC5yZWZlcmVuY2VQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oci5tYXRyaXhXb3JsZCksZC5uZWFyRGlzdGFuY2U9byxkLmZhckRpc3RhbmNlPWEpLGR9ZnVuY3Rpb24gdihuLHIsbyxhLHMpe2lmKCExPT09bi52aXNpYmxlKXJldHVybjtpZihuLmxheWVycy50ZXN0KHIubGF5ZXJzKSYmKG4uaXNNZXNofHxuLmlzTGluZXx8bi5pc1BvaW50cykmJihuLmNhc3RTaGFkb3d8fG4ucmVjZWl2ZVNoYWRvdyYmMz09PXMpJiYoIW4uZnJ1c3R1bUN1bGxlZHx8aS5pbnRlcnNlY3RzT2JqZWN0KG4pKSl7bi5tb2RlbFZpZXdNYXRyaXgubXVsdGlwbHlNYXRyaWNlcyhvLm1hdHJpeFdvcmxkSW52ZXJzZSxuLm1hdHJpeFdvcmxkKTtjb25zdCBpPWUudXBkYXRlKG4pLHI9bi5tYXRlcmlhbDtpZihBcnJheS5pc0FycmF5KHIpKXtjb25zdCBlPWkuZ3JvdXBzO2ZvcihsZXQgbD0wLGM9ZS5sZW5ndGg7bDxjO2wrKyl7Y29uc3QgYz1lW2xdLHU9cltjLm1hdGVyaWFsSW5kZXhdO2lmKHUmJnUudmlzaWJsZSl7Y29uc3QgZT15KG4sMCx1LGEsby5uZWFyLG8uZmFyLHMpO3QucmVuZGVyQnVmZmVyRGlyZWN0KG8sbnVsbCxpLGUsbixjKX19fWVsc2UgaWYoci52aXNpYmxlKXtjb25zdCBlPXkobiwwLHIsYSxvLm5lYXIsby5mYXIscyk7dC5yZW5kZXJCdWZmZXJEaXJlY3QobyxudWxsLGksZSxuLG51bGwpfX1jb25zdCBsPW4uY2hpbGRyZW47Zm9yKGxldCB0PTAsZT1sLmxlbmd0aDt0PGU7dCsrKXYobFt0XSxyLG8sYSxzKX10aGlzLmVuYWJsZWQ9ITEsdGhpcy5hdXRvVXBkYXRlPSEwLHRoaXMubmVlZHNVcGRhdGU9ITEsdGhpcy50eXBlPTEsdGhpcy5yZW5kZXI9ZnVuY3Rpb24oZSxuLHMpe2lmKCExPT09Zy5lbmFibGVkKXJldHVybjtpZighMT09PWcuYXV0b1VwZGF0ZSYmITE9PT1nLm5lZWRzVXBkYXRlKXJldHVybjtpZigwPT09ZS5sZW5ndGgpcmV0dXJuO2NvbnN0IGw9dC5nZXRSZW5kZXJUYXJnZXQoKSxjPXQuZ2V0QWN0aXZlQ3ViZUZhY2UoKSxoPXQuZ2V0QWN0aXZlTWlwbWFwTGV2ZWwoKSxkPXQuc3RhdGU7ZC5zZXRCbGVuZGluZygwKSxkLmJ1ZmZlcnMuY29sb3Iuc2V0Q2xlYXIoMSwxLDEsMSksZC5idWZmZXJzLmRlcHRoLnNldFRlc3QoITApLGQuc2V0U2Npc3NvclRlc3QoITEpO2ZvcihsZXQgbD0wLGM9ZS5sZW5ndGg7bDxjO2wrKyl7Y29uc3QgYz1lW2xdLGg9Yy5zaGFkb3c7aWYodm9pZCAwPT09aCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFNoYWRvd01hcDoiLGMsImhhcyBubyBzaGFkb3cuIik7Y29udGludWV9aWYoITE9PT1oLmF1dG9VcGRhdGUmJiExPT09aC5uZWVkc1VwZGF0ZSljb250aW51ZTtyLmNvcHkoaC5tYXBTaXplKTtjb25zdCBwPWguZ2V0RnJhbWVFeHRlbnRzKCk7aWYoci5tdWx0aXBseShwKSxvLmNvcHkoaC5tYXBTaXplKSwoci54PnV8fHIueT51KSYmKHIueD51JiYoby54PU1hdGguZmxvb3IodS9wLngpLHIueD1vLngqcC54LGgubWFwU2l6ZS54PW8ueCksci55PnUmJihvLnk9TWF0aC5mbG9vcih1L3AueSksci55PW8ueSpwLnksaC5tYXBTaXplLnk9by55KSksbnVsbD09PWgubWFwJiYhaC5pc1BvaW50TGlnaHRTaGFkb3cmJjM9PT10aGlzLnR5cGUpe2NvbnN0IHQ9e21pbkZpbHRlcjplWnQsbWFnRmlsdGVyOmVadCxmb3JtYXQ6aFp0fTtoLm1hcD1uZXcgU0p0KHIueCxyLnksdCksaC5tYXAudGV4dHVyZS5uYW1lPWMubmFtZSsiLnNoYWRvd01hcCIsaC5tYXBQYXNzPW5ldyBTSnQoci54LHIueSx0KSxoLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9bnVsbD09PWgubWFwJiYoaC5tYXA9bmV3IFNKdChyLngsci55LHttaW5GaWx0ZXI6Skt0LG1hZ0ZpbHRlcjpKS3QsZm9ybWF0OmhadH0pLGgubWFwLnRleHR1cmUubmFtZT1jLm5hbWUrIi5zaGFkb3dNYXAiLGguY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSksdC5zZXRSZW5kZXJUYXJnZXQoaC5tYXApLHQuY2xlYXIoKTtjb25zdCBmPWguZ2V0Vmlld3BvcnRDb3VudCgpO2ZvcihsZXQgdD0wO3Q8Zjt0Kyspe2NvbnN0IGU9aC5nZXRWaWV3cG9ydCh0KTthLnNldChvLngqZS54LG8ueSplLnksby54KmUueixvLnkqZS53KSxkLnZpZXdwb3J0KGEpLGgudXBkYXRlTWF0cmljZXMoYyx0KSxpPWguZ2V0RnJ1c3R1bSgpLHYobixzLGguY2FtZXJhLGMsdGhpcy50eXBlKX1oLmlzUG9pbnRMaWdodFNoYWRvd3x8MyE9PXRoaXMudHlwZXx8XyhoLHMpLGgubmVlZHNVcGRhdGU9ITF9Zy5uZWVkc1VwZGF0ZT0hMSx0LnNldFJlbmRlclRhcmdldChsLGMsaCl9fWZ1bmN0aW9uIE81dCh0LGUsbil7Y29uc3QgaT1uLmlzV2ViR0wyLHI9bmV3KGZ1bmN0aW9uIG8oKXtsZXQgZT0hMTtjb25zdCBuPW5ldyB3SnQ7bGV0IGk9bnVsbDtjb25zdCByPW5ldyB3SnQoMCwwLDAsMCk7cmV0dXJue3NldE1hc2s6ZnVuY3Rpb24obil7aT09PW58fGV8fCh0LmNvbG9yTWFzayhuLG4sbixuKSxpPW4pfSxzZXRMb2NrZWQ6ZnVuY3Rpb24odCl7ZT10fSxzZXRDbGVhcjpmdW5jdGlvbihlLGksbyxhLHMpeyEwPT09cyYmKGUqPWEsaSo9YSxvKj1hKSxuLnNldChlLGksbyxhKSwhMT09PXIuZXF1YWxzKG4pJiYodC5jbGVhckNvbG9yKGUsaSxvLGEpLHIuY29weShuKSl9LHJlc2V0OmZ1bmN0aW9uKCl7ZT0hMSxpPW51bGwsci5zZXQoLTEsMCwwLDApfX19KSxhPW5ldyhmdW5jdGlvbiBzKCl7bGV0IGU9ITEsbj1udWxsLGk9bnVsbCxyPW51bGw7cmV0dXJue3NldFRlc3Q6ZnVuY3Rpb24odCl7dD9GKDI5MjkpOlYoMjkyOSl9LHNldE1hc2s6ZnVuY3Rpb24oaSl7bj09PWl8fGV8fCh0LmRlcHRoTWFzayhpKSxuPWkpfSxzZXRGdW5jOmZ1bmN0aW9uKGUpe2lmKGkhPT1lKXtpZihlKXN3aXRjaChlKXtjYXNlIDA6dC5kZXB0aEZ1bmMoNTEyKTticmVhaztjYXNlIDE6dC5kZXB0aEZ1bmMoNTE5KTticmVhaztjYXNlIDI6dC5kZXB0aEZ1bmMoNTEzKTticmVhaztjYXNlIDM6dC5kZXB0aEZ1bmMoNTE1KTticmVhaztjYXNlIDQ6dC5kZXB0aEZ1bmMoNTE0KTticmVhaztjYXNlIDU6dC5kZXB0aEZ1bmMoNTE4KTticmVhaztjYXNlIDY6dC5kZXB0aEZ1bmMoNTE2KTticmVhaztjYXNlIDc6dC5kZXB0aEZ1bmMoNTE3KTticmVhaztkZWZhdWx0OnQuZGVwdGhGdW5jKDUxNSl9ZWxzZSB0LmRlcHRoRnVuYyg1MTUpO2k9ZX19LHNldExvY2tlZDpmdW5jdGlvbih0KXtlPXR9LHNldENsZWFyOmZ1bmN0aW9uKGUpe3IhPT1lJiYodC5jbGVhckRlcHRoKGUpLHI9ZSl9LHJlc2V0OmZ1bmN0aW9uKCl7ZT0hMSxuPW51bGwsaT1udWxsLHI9bnVsbH19fSksbD1uZXcoZnVuY3Rpb24gYygpe2xldCBlPSExLG49bnVsbCxpPW51bGwscj1udWxsLG89bnVsbCxhPW51bGwscz1udWxsLGw9bnVsbCxjPW51bGw7cmV0dXJue3NldFRlc3Q6ZnVuY3Rpb24odCl7ZXx8KHQ/RigyOTYwKTpWKDI5NjApKX0sc2V0TWFzazpmdW5jdGlvbihpKXtuPT09aXx8ZXx8KHQuc3RlbmNpbE1hc2soaSksbj1pKX0sc2V0RnVuYzpmdW5jdGlvbihlLG4sYSl7aT09PWUmJnI9PT1uJiZvPT09YXx8KHQuc3RlbmNpbEZ1bmMoZSxuLGEpLGk9ZSxyPW4sbz1hKX0sc2V0T3A6ZnVuY3Rpb24oZSxuLGkpe2E9PT1lJiZzPT09biYmbD09PWl8fCh0LnN0ZW5jaWxPcChlLG4saSksYT1lLHM9bixsPWkpfSxzZXRMb2NrZWQ6ZnVuY3Rpb24odCl7ZT10fSxzZXRDbGVhcjpmdW5jdGlvbihlKXtjIT09ZSYmKHQuY2xlYXJTdGVuY2lsKGUpLGM9ZSl9LHJlc2V0OmZ1bmN0aW9uKCl7ZT0hMSxuPW51bGwsaT1udWxsLHI9bnVsbCxvPW51bGwsYT1udWxsLHM9bnVsbCxsPW51bGwsYz1udWxsfX19KTtsZXQgdT17fSxoPW51bGwsZD17fSxwPW51bGwsZj0hMSxtPW51bGwsZz1udWxsLF89bnVsbCx5PW51bGwsdj1udWxsLGI9bnVsbCx4PW51bGwsdz0hMSxTPW51bGwsTT1udWxsLEU9bnVsbCxUPW51bGwsQz1udWxsO2NvbnN0IEE9dC5nZXRQYXJhbWV0ZXIoMzU2NjEpO2xldCBrPSExLEw9MDtjb25zdCBQPXQuZ2V0UGFyYW1ldGVyKDc5MzgpOy0xIT09UC5pbmRleE9mKCJXZWJHTCIpPyhMPXBhcnNlRmxvYXQoL15XZWJHTCAoXGQpLy5leGVjKFApWzFdKSxrPUw+PTEpOi0xIT09UC5pbmRleE9mKCJPcGVuR0wgRVMiKSYmKEw9cGFyc2VGbG9hdCgvXk9wZW5HTCBFUyAoXGQpLy5leGVjKFApWzFdKSxrPUw+PTIpO2xldCBOPW51bGwsST17fTtjb25zdCBSPXQuZ2V0UGFyYW1ldGVyKDMwODgpLE89dC5nZXRQYXJhbWV0ZXIoMjk3OCksej0obmV3IHdKdCkuZnJvbUFycmF5KFIpLEQ9KG5ldyB3SnQpLmZyb21BcnJheShPKTtmdW5jdGlvbiBCKGUsbixpKXtjb25zdCByPW5ldyBVaW50OEFycmF5KDQpLG89dC5jcmVhdGVUZXh0dXJlKCk7dC5iaW5kVGV4dHVyZShlLG8pLHQudGV4UGFyYW1ldGVyaShlLDEwMjQxLDk3MjgpLHQudGV4UGFyYW1ldGVyaShlLDEwMjQwLDk3MjgpO2ZvcihsZXQgZT0wO2U8aTtlKyspdC50ZXhJbWFnZTJEKG4rZSwwLDY0MDgsMSwxLDAsNjQwOCw1MTIxLHIpO3JldHVybiBvfWNvbnN0IEg9e307ZnVuY3Rpb24gRihlKXshMCE9PXVbZV0mJih0LmVuYWJsZShlKSx1W2VdPSEwKX1mdW5jdGlvbiBWKGUpeyExIT09dVtlXSYmKHQuZGlzYWJsZShlKSx1W2VdPSExKX1IWzM1NTNdPUIoMzU1MywzNTUzLDEpLEhbMzQwNjddPUIoMzQwNjcsMzQwNjksNiksci5zZXRDbGVhcigwLDAsMCwxKSxhLnNldENsZWFyKDEpLGwuc2V0Q2xlYXIoMCksRigyOTI5KSxhLnNldEZ1bmMoMyksVyghMSkscSgxKSxGKDI4ODQpLEcoMCk7Y29uc3QgVT17W1ZLdF06MzI3NzQsMTAxOjMyNzc4LDEwMjozMjc3OX07aWYoaSlVWzEwM109MzI3NzUsVVsxMDRdPTMyNzc2O2Vsc2V7Y29uc3QgdD1lLmdldCgiRVhUX2JsZW5kX21pbm1heCIpO251bGwhPT10JiYoVVsxMDNdPXQuTUlOX0VYVCxVWzEwNF09dC5NQVhfRVhUKX1jb25zdCBqPXsyMDA6MCwyMDE6MSwyMDI6NzY4LDIwNDo3NzAsMjEwOjc3NiwyMDg6Nzc0LDIwNjo3NzIsMjAzOjc2OSwyMDU6NzcxLDIwOTo3NzUsMjA3Ojc3M307ZnVuY3Rpb24gRyhlLG4saSxyLG8sYSxzLGwpe2lmKDAhPT1lKXtpZighMT09PWYmJihGKDMwNDIpLGY9ITApLDU9PT1lKW89b3x8bixhPWF8fGkscz1zfHxyLG49PT1nJiZvPT09dnx8KHQuYmxlbmRFcXVhdGlvblNlcGFyYXRlKFVbbl0sVVtvXSksZz1uLHY9byksaT09PV8mJnI9PT15JiZhPT09YiYmcz09PXh8fCh0LmJsZW5kRnVuY1NlcGFyYXRlKGpbaV0saltyXSxqW2FdLGpbc10pLF89aSx5PXIsYj1hLHg9cyksbT1lLHc9bnVsbDtlbHNlIGlmKGUhPT1tfHxsIT09dyl7aWYoZz09PVZLdCYmdj09PVZLdHx8KHQuYmxlbmRFcXVhdGlvbigzMjc3NCksZz1WS3Qsdj1WS3QpLGwpc3dpdGNoKGUpe2Nhc2UgMTp0LmJsZW5kRnVuY1NlcGFyYXRlKDEsNzcxLDEsNzcxKTticmVhaztjYXNlIDI6dC5ibGVuZEZ1bmMoMSwxKTticmVhaztjYXNlIDM6dC5ibGVuZEZ1bmNTZXBhcmF0ZSgwLDAsNzY5LDc3MSk7YnJlYWs7Y2FzZSA0OnQuYmxlbmRGdW5jU2VwYXJhdGUoMCw3NjgsMCw3NzApO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZTogSW52YWxpZCBibGVuZGluZzogIixlKX1lbHNlIHN3aXRjaChlKXtjYXNlIDE6dC5ibGVuZEZ1bmNTZXBhcmF0ZSg3NzAsNzcxLDEsNzcxKTticmVhaztjYXNlIDI6dC5ibGVuZEZ1bmMoNzcwLDEpO2JyZWFrO2Nhc2UgMzp0LmJsZW5kRnVuYygwLDc2OSk7YnJlYWs7Y2FzZSA0OnQuYmxlbmRGdW5jKDAsNzY4KTticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IEludmFsaWQgYmxlbmRpbmc6ICIsZSl9Xz1udWxsLHk9bnVsbCxiPW51bGwseD1udWxsLG09ZSx3PWx9fWVsc2UhMD09PWYmJihWKDMwNDIpLGY9ITEpfWZ1bmN0aW9uIFcoZSl7UyE9PWUmJih0LmZyb250RmFjZShlPzIzMDQ6MjMwNSksUz1lKX1mdW5jdGlvbiBxKGUpezAhPT1lPyhGKDI4ODQpLGUhPT1NJiZ0LmN1bGxGYWNlKDE9PT1lPzEwMjk6Mj09PWU/MTAyODoxMDMyKSk6VigyODg0KSxNPWV9ZnVuY3Rpb24gWShlLG4saSl7ZT8oRigzMjgyMyksVD09PW4mJkM9PT1pfHwodC5wb2x5Z29uT2Zmc2V0KG4saSksVD1uLEM9aSkpOlYoMzI4MjMpfWZ1bmN0aW9uIFgoZSl7dm9pZCAwPT09ZSYmKGU9MzM5ODQrQS0xKSxOIT09ZSYmKHQuYWN0aXZlVGV4dHVyZShlKSxOPWUpfXJldHVybntidWZmZXJzOntjb2xvcjpyLGRlcHRoOmEsc3RlbmNpbDpsfSxlbmFibGU6RixkaXNhYmxlOlYsYmluZEZyYW1lYnVmZmVyOmZ1bmN0aW9uICQoZSxuKXtyZXR1cm4gbnVsbD09PW4mJm51bGwhPT1oJiYobj1oKSxkW2VdIT09biYmKHQuYmluZEZyYW1lYnVmZmVyKGUsbiksZFtlXT1uLGkmJigzNjAwOT09PWUmJihkWzM2MTYwXT1uKSwzNjE2MD09PWUmJihkWzM2MDA5XT1uKSksITApfSxiaW5kWFJGcmFtZWJ1ZmZlcjpmdW5jdGlvbiBLKGUpe2UhPT1oJiYodC5iaW5kRnJhbWVidWZmZXIoMzYxNjAsZSksaD1lKX0sdXNlUHJvZ3JhbTpmdW5jdGlvbiBaKGUpe3JldHVybiBwIT09ZSYmKHQudXNlUHJvZ3JhbShlKSxwPWUsITApfSxzZXRCbGVuZGluZzpHLHNldE1hdGVyaWFsOmZ1bmN0aW9uIEoodCxlKXsyPT09dC5zaWRlP1YoMjg4NCk6RigyODg0KTtsZXQgbj0xPT09dC5zaWRlO2UmJihuPSFuKSxXKG4pLDE9PT10LmJsZW5kaW5nJiYhMT09PXQudHJhbnNwYXJlbnQ/RygwKTpHKHQuYmxlbmRpbmcsdC5ibGVuZEVxdWF0aW9uLHQuYmxlbmRTcmMsdC5ibGVuZERzdCx0LmJsZW5kRXF1YXRpb25BbHBoYSx0LmJsZW5kU3JjQWxwaGEsdC5ibGVuZERzdEFscGhhLHQucHJlbXVsdGlwbGllZEFscGhhKSxhLnNldEZ1bmModC5kZXB0aEZ1bmMpLGEuc2V0VGVzdCh0LmRlcHRoVGVzdCksYS5zZXRNYXNrKHQuZGVwdGhXcml0ZSksci5zZXRNYXNrKHQuY29sb3JXcml0ZSk7Y29uc3QgaT10LnN0ZW5jaWxXcml0ZTtsLnNldFRlc3QoaSksaSYmKGwuc2V0TWFzayh0LnN0ZW5jaWxXcml0ZU1hc2spLGwuc2V0RnVuYyh0LnN0ZW5jaWxGdW5jLHQuc3RlbmNpbFJlZix0LnN0ZW5jaWxGdW5jTWFzayksbC5zZXRPcCh0LnN0ZW5jaWxGYWlsLHQuc3RlbmNpbFpGYWlsLHQuc3RlbmNpbFpQYXNzKSksWSh0LnBvbHlnb25PZmZzZXQsdC5wb2x5Z29uT2Zmc2V0RmFjdG9yLHQucG9seWdvbk9mZnNldFVuaXRzKSwhMD09PXQuYWxwaGFUb0NvdmVyYWdlP0YoMzI5MjYpOlYoMzI5MjYpfSxzZXRGbGlwU2lkZWQ6VyxzZXRDdWxsRmFjZTpxLHNldExpbmVXaWR0aDpmdW5jdGlvbiBRKGUpe2UhPT1FJiYoayYmdC5saW5lV2lkdGgoZSksRT1lKX0sc2V0UG9seWdvbk9mZnNldDpZLHNldFNjaXNzb3JUZXN0OmZ1bmN0aW9uIHR0KHQpe3Q/RigzMDg5KTpWKDMwODkpfSxhY3RpdmVUZXh0dXJlOlgsYmluZFRleHR1cmU6ZnVuY3Rpb24gZXQoZSxuKXtudWxsPT09TiYmWCgpO2xldCBpPUlbTl07dm9pZCAwPT09aSYmKGk9e3R5cGU6dm9pZCAwLHRleHR1cmU6dm9pZCAwfSxJW05dPWkpLGkudHlwZT09PWUmJmkudGV4dHVyZT09PW58fCh0LmJpbmRUZXh0dXJlKGUsbnx8SFtlXSksaS50eXBlPWUsaS50ZXh0dXJlPW4pfSx1bmJpbmRUZXh0dXJlOmZ1bmN0aW9uIG50KCl7Y29uc3QgZT1JW05dO3ZvaWQgMCE9PWUmJnZvaWQgMCE9PWUudHlwZSYmKHQuYmluZFRleHR1cmUoZS50eXBlLG51bGwpLGUudHlwZT12b2lkIDAsZS50ZXh0dXJlPXZvaWQgMCl9LGNvbXByZXNzZWRUZXhJbWFnZTJEOmZ1bmN0aW9uIGl0KCl7dHJ5e3QuY29tcHJlc3NlZFRleEltYWdlMkQuYXBwbHkodCxhcmd1bWVudHMpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6Iix0KX19LHRleEltYWdlMkQ6ZnVuY3Rpb24gcnQoKXt0cnl7dC50ZXhJbWFnZTJELmFwcGx5KHQsYXJndW1lbnRzKX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsdCl9fSx0ZXhJbWFnZTNEOmZ1bmN0aW9uIG90KCl7dHJ5e3QudGV4SW1hZ2UzRC5hcHBseSh0LGFyZ3VtZW50cyl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLHQpfX0sc2Npc3NvcjpmdW5jdGlvbiBhdChlKXshMT09PXouZXF1YWxzKGUpJiYodC5zY2lzc29yKGUueCxlLnksZS56LGUudyksei5jb3B5KGUpKX0sdmlld3BvcnQ6ZnVuY3Rpb24gc3QoZSl7ITE9PT1ELmVxdWFscyhlKSYmKHQudmlld3BvcnQoZS54LGUueSxlLnosZS53KSxELmNvcHkoZSkpfSxyZXNldDpmdW5jdGlvbiBsdCgpe3QuZGlzYWJsZSgzMDQyKSx0LmRpc2FibGUoMjg4NCksdC5kaXNhYmxlKDI5MjkpLHQuZGlzYWJsZSgzMjgyMyksdC5kaXNhYmxlKDMwODkpLHQuZGlzYWJsZSgyOTYwKSx0LmRpc2FibGUoMzI5MjYpLHQuYmxlbmRFcXVhdGlvbigzMjc3NCksdC5ibGVuZEZ1bmMoMSwwKSx0LmJsZW5kRnVuY1NlcGFyYXRlKDEsMCwxLDApLHQuY29sb3JNYXNrKCEwLCEwLCEwLCEwKSx0LmNsZWFyQ29sb3IoMCwwLDAsMCksdC5kZXB0aE1hc2soITApLHQuZGVwdGhGdW5jKDUxMyksdC5jbGVhckRlcHRoKDEpLHQuc3RlbmNpbE1hc2soNDI5NDk2NzI5NSksdC5zdGVuY2lsRnVuYyg1MTksMCw0Mjk0OTY3Mjk1KSx0LnN0ZW5jaWxPcCg3NjgwLDc2ODAsNzY4MCksdC5jbGVhclN0ZW5jaWwoMCksdC5jdWxsRmFjZSgxMDI5KSx0LmZyb250RmFjZSgyMzA1KSx0LnBvbHlnb25PZmZzZXQoMCwwKSx0LmFjdGl2ZVRleHR1cmUoMzM5ODQpLHQuYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpLCEwPT09aSYmKHQuYmluZEZyYW1lYnVmZmVyKDM2MDA5LG51bGwpLHQuYmluZEZyYW1lYnVmZmVyKDM2MDA4LG51bGwpKSx0LnVzZVByb2dyYW0obnVsbCksdC5saW5lV2lkdGgoMSksdC5zY2lzc29yKDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLHQudmlld3BvcnQoMCwwLHQuY2FudmFzLndpZHRoLHQuY2FudmFzLmhlaWdodCksdT17fSxOPW51bGwsST17fSxoPW51bGwsZD17fSxwPW51bGwsZj0hMSxtPW51bGwsZz1udWxsLF89bnVsbCx5PW51bGwsdj1udWxsLGI9bnVsbCx4PW51bGwsdz0hMSxTPW51bGwsTT1udWxsLEU9bnVsbCxUPW51bGwsQz1udWxsLHouc2V0KDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLEQuc2V0KDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLHIucmVzZXQoKSxhLnJlc2V0KCksbC5yZXNldCgpfX19ZnVuY3Rpb24gejV0KHQsZSxuLGkscixvLGEpe2NvbnN0IHM9ci5pc1dlYkdMMixsPXIubWF4VGV4dHVyZXMsYz1yLm1heEN1YmVtYXBTaXplLHU9ci5tYXhUZXh0dXJlU2l6ZSxoPXIubWF4U2FtcGxlcyxkPW5ldyBXZWFrTWFwO2xldCBwLGY9ITE7dHJ5e2Y9InVuZGVmaW5lZCIhPXR5cGVvZiBPZmZzY3JlZW5DYW52YXMmJm51bGwhPT1uZXcgT2Zmc2NyZWVuQ2FudmFzKDEsMSkuZ2V0Q29udGV4dCgiMmQiKX1jYXRjaCh0KXt9ZnVuY3Rpb24gbSh0LGUpe3JldHVybiBmP25ldyBPZmZzY3JlZW5DYW52YXModCxlKTpkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJjYW52YXMiKX1mdW5jdGlvbiBnKHQsZSxuLGkpe2xldCByPTE7aWYoKHQud2lkdGg+aXx8dC5oZWlnaHQ+aSkmJihyPWkvTWF0aC5tYXgodC53aWR0aCx0LmhlaWdodCkpLHI8MXx8ITA9PT1lKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxJbWFnZUVsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnR8fCJ1bmRlZmluZWQiIT10eXBlb2YgSW1hZ2VCaXRtYXAmJnQgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcCl7Y29uc3QgaT1lP3RKdDpNYXRoLmZsb29yLG89aShyKnQud2lkdGgpLGE9aShyKnQuaGVpZ2h0KTt2b2lkIDA9PT1wJiYocD1tKG8sYSkpO2NvbnN0IHM9bj9tKG8sYSk6cDtyZXR1cm4gcy53aWR0aD1vLHMuaGVpZ2h0PWEscy5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZSh0LDAsMCxvLGEpLGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBoYXMgYmVlbiByZXNpemVkIGZyb20gKCIrdC53aWR0aCsieCIrdC5oZWlnaHQrIikgdG8gKCIrbysieCIrYSsiKS4iKSxzfXJldHVybiJkYXRhImluIHQmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogSW1hZ2UgaW4gRGF0YVRleHR1cmUgaXMgdG9vIGJpZyAoIit0LndpZHRoKyJ4Iit0LmhlaWdodCsiKS4iKSx0fXJldHVybiB0fWZ1bmN0aW9uIF8odCl7cmV0dXJuIEpadCh0LndpZHRoKSYmSlp0KHQuaGVpZ2h0KX1mdW5jdGlvbiB5KHQsZSl7cmV0dXJuIHQuZ2VuZXJhdGVNaXBtYXBzJiZlJiZ0Lm1pbkZpbHRlciE9PUpLdCYmdC5taW5GaWx0ZXIhPT1lWnR9ZnVuY3Rpb24gdihlLG4scixvLGE9MSl7dC5nZW5lcmF0ZU1pcG1hcChlKSxpLmdldChuKS5fX21heE1pcExldmVsPU1hdGgubG9nMihNYXRoLm1heChyLG8sYSkpfWZ1bmN0aW9uIGIobixpLHIpe2lmKCExPT09cylyZXR1cm4gaTtpZihudWxsIT09bil7aWYodm9pZCAwIT09dFtuXSlyZXR1cm4gdFtuXTtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gdXNlIG5vbi1leGlzdGluZyBXZWJHTCBpbnRlcm5hbCBmb3JtYXQgJyIrbisiJyIpfWxldCBvPWk7cmV0dXJuIDY0MDM9PT1pJiYoNTEyNj09PXImJihvPTMzMzI2KSw1MTMxPT09ciYmKG89MzMzMjUpLDUxMjE9PT1yJiYobz0zMzMyMSkpLDY0MDc9PT1pJiYoNTEyNj09PXImJihvPTM0ODM3KSw1MTMxPT09ciYmKG89MzQ4NDMpLDUxMjE9PT1yJiYobz0zMjg0OSkpLDY0MDg9PT1pJiYoNTEyNj09PXImJihvPTM0ODM2KSw1MTMxPT09ciYmKG89MzQ4NDIpLDUxMjE9PT1yJiYobz0zMjg1NikpLDMzMzI1IT09byYmMzMzMjYhPT1vJiYzNDg0MiE9PW8mJjM0ODM2IT09b3x8ZS5nZXQoIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKSxvfWZ1bmN0aW9uIHgodCl7cmV0dXJuIHQ9PT1KS3R8fHQ9PT1RS3R8fHQ9PT10WnQ/OTcyODo5NzI5fWZ1bmN0aW9uIHcoZSl7Y29uc3Qgbj1lLnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHcpLChmdW5jdGlvbiByKGUpe2NvbnN0IG49aS5nZXQoZSk7dm9pZCAwIT09bi5fX3dlYmdsSW5pdCYmKHQuZGVsZXRlVGV4dHVyZShuLl9fd2ViZ2xUZXh0dXJlKSxpLnJlbW92ZShlKSl9KShuKSxuLmlzVmlkZW9UZXh0dXJlJiZkLmRlbGV0ZShuKSxhLm1lbW9yeS50ZXh0dXJlcy0tfWZ1bmN0aW9uIFMoZSl7Y29uc3Qgbj1lLnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLFMpLChmdW5jdGlvbiByKGUpe2NvbnN0IG49ZS50ZXh0dXJlLHI9aS5nZXQoZSksbz1pLmdldChuKTtpZihlKXtpZih2b2lkIDAhPT1vLl9fd2ViZ2xUZXh0dXJlJiYodC5kZWxldGVUZXh0dXJlKG8uX193ZWJnbFRleHR1cmUpLGEubWVtb3J5LnRleHR1cmVzLS0pLGUuZGVwdGhUZXh0dXJlJiZlLmRlcHRoVGV4dHVyZS5kaXNwb3NlKCksZS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldClmb3IobGV0IGU9MDtlPDY7ZSsrKXQuZGVsZXRlRnJhbWVidWZmZXIoci5fX3dlYmdsRnJhbWVidWZmZXJbZV0pLHIuX193ZWJnbERlcHRoYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihyLl9fd2ViZ2xEZXB0aGJ1ZmZlcltlXSk7ZWxzZSB0LmRlbGV0ZUZyYW1lYnVmZmVyKHIuX193ZWJnbEZyYW1lYnVmZmVyKSxyLl9fd2ViZ2xEZXB0aGJ1ZmZlciYmdC5kZWxldGVSZW5kZXJidWZmZXIoci5fX3dlYmdsRGVwdGhidWZmZXIpLHIuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyJiZ0LmRlbGV0ZUZyYW1lYnVmZmVyKHIuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKSxyLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciYmdC5kZWxldGVSZW5kZXJidWZmZXIoci5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpLHIuX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihyLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcik7aWYoZS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzKWZvcihsZXQgZT0wLHI9bi5sZW5ndGg7ZTxyO2UrKyl7Y29uc3Qgcj1pLmdldChuW2VdKTtyLl9fd2ViZ2xUZXh0dXJlJiYodC5kZWxldGVUZXh0dXJlKHIuX193ZWJnbFRleHR1cmUpLGEubWVtb3J5LnRleHR1cmVzLS0pLGkucmVtb3ZlKG5bZV0pfWkucmVtb3ZlKG4pLGkucmVtb3ZlKGUpfX0pKG4pfWxldCBNPTA7ZnVuY3Rpb24gRSh0LGUpe2NvbnN0IHI9aS5nZXQodCk7aWYodC5pc1ZpZGVvVGV4dHVyZSYmKGZ1bmN0aW9uIG8odCl7Y29uc3QgZT1hLnJlbmRlci5mcmFtZTtkLmdldCh0KSE9PWUmJihkLnNldCh0LGUpLHQudXBkYXRlKCkpfSkodCksdC52ZXJzaW9uPjAmJnIuX192ZXJzaW9uIT09dC52ZXJzaW9uKXtjb25zdCBuPXQuaW1hZ2U7aWYodm9pZCAwPT09biljb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgbWFya2VkIGZvciB1cGRhdGUgYnV0IGltYWdlIGlzIHVuZGVmaW5lZCIpO2Vsc2V7aWYoITEhPT1uLmNvbXBsZXRlKXJldHVybiB2b2lkIFAocix0LGUpO2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBtYXJrZWQgZm9yIHVwZGF0ZSBidXQgaW1hZ2UgaXMgaW5jb21wbGV0ZSIpfX1uLmFjdGl2ZVRleHR1cmUoMzM5ODQrZSksbi5iaW5kVGV4dHVyZSgzNTUzLHIuX193ZWJnbFRleHR1cmUpfWZ1bmN0aW9uIFQoZSxyKXtjb25zdCBhPWkuZ2V0KGUpO2UudmVyc2lvbj4wJiZhLl9fdmVyc2lvbiE9PWUudmVyc2lvbj8oZnVuY3Rpb24gbChlLGkscil7aWYoNiE9PWkuaW1hZ2UubGVuZ3RoKXJldHVybjtMKGUsaSksbi5hY3RpdmVUZXh0dXJlKDMzOTg0K3IpLG4uYmluZFRleHR1cmUoMzQwNjcsZS5fX3dlYmdsVGV4dHVyZSksdC5waXhlbFN0b3JlaSgzNzQ0MCxpLmZsaXBZKSx0LnBpeGVsU3RvcmVpKDM3NDQxLGkucHJlbXVsdGlwbHlBbHBoYSksdC5waXhlbFN0b3JlaSgzMzE3LGkudW5wYWNrQWxpZ25tZW50KSx0LnBpeGVsU3RvcmVpKDM3NDQzLDApO2NvbnN0IGE9aSYmKGkuaXNDb21wcmVzc2VkVGV4dHVyZXx8aS5pbWFnZVswXS5pc0NvbXByZXNzZWRUZXh0dXJlKSxsPWkuaW1hZ2VbMF0mJmkuaW1hZ2VbMF0uaXNEYXRhVGV4dHVyZSx1PVtdO2ZvcihsZXQgdD0wO3Q8Njt0KyspdVt0XT1hfHxsP2w/aS5pbWFnZVt0XS5pbWFnZTppLmltYWdlW3RdOmcoaS5pbWFnZVt0XSwhMSwhMCxjKTtjb25zdCBoPXVbMF0sZD1fKGgpfHxzLHA9by5jb252ZXJ0KGkuZm9ybWF0KSxmPW8uY29udmVydChpLnR5cGUpLG09YihpLmludGVybmFsRm9ybWF0LHAsZik7bGV0IHg7aWYoaygzNDA2NyxpLGQpLGEpe2ZvcihsZXQgdD0wO3Q8Njt0Kyspe3g9dVt0XS5taXBtYXBzO2ZvcihsZXQgZT0wO2U8eC5sZW5ndGg7ZSsrKXtjb25zdCByPXhbZV07aS5mb3JtYXQhPT1oWnQmJmkuZm9ybWF0IT09dVp0P251bGwhPT1wP24uY29tcHJlc3NlZFRleEltYWdlMkQoMzQwNjkrdCxlLG0sci53aWR0aCxyLmhlaWdodCwwLHIuZGF0YSk6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBBdHRlbXB0IHRvIGxvYWQgdW5zdXBwb3J0ZWQgY29tcHJlc3NlZCB0ZXh0dXJlIGZvcm1hdCBpbiAuc2V0VGV4dHVyZUN1YmUoKSIpOm4udGV4SW1hZ2UyRCgzNDA2OSt0LGUsbSxyLndpZHRoLHIuaGVpZ2h0LDAscCxmLHIuZGF0YSl9fWUuX19tYXhNaXBMZXZlbD14Lmxlbmd0aC0xfWVsc2V7eD1pLm1pcG1hcHM7Zm9yKGxldCB0PTA7dDw2O3QrKylpZihsKXtuLnRleEltYWdlMkQoMzQwNjkrdCwwLG0sdVt0XS53aWR0aCx1W3RdLmhlaWdodCwwLHAsZix1W3RdLmRhdGEpO2ZvcihsZXQgZT0wO2U8eC5sZW5ndGg7ZSsrKXtjb25zdCBpPXhbZV0uaW1hZ2VbdF0uaW1hZ2U7bi50ZXhJbWFnZTJEKDM0MDY5K3QsZSsxLG0saS53aWR0aCxpLmhlaWdodCwwLHAsZixpLmRhdGEpfX1lbHNle24udGV4SW1hZ2UyRCgzNDA2OSt0LDAsbSxwLGYsdVt0XSk7Zm9yKGxldCBlPTA7ZTx4Lmxlbmd0aDtlKyspbi50ZXhJbWFnZTJEKDM0MDY5K3QsZSsxLG0scCxmLHhbZV0uaW1hZ2VbdF0pfWUuX19tYXhNaXBMZXZlbD14Lmxlbmd0aH15KGksZCkmJnYoMzQwNjcsaSxoLndpZHRoLGguaGVpZ2h0KSxlLl9fdmVyc2lvbj1pLnZlcnNpb24saS5vblVwZGF0ZSYmaS5vblVwZGF0ZShpKX0pKGEsZSxyKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K3IpLG4uYmluZFRleHR1cmUoMzQwNjcsYS5fX3dlYmdsVGV4dHVyZSkpfWNvbnN0IEM9e1skS3RdOjEwNDk3LFtLS3RdOjMzMDcxLFtaS3RdOjMzNjQ4fSxBPXtbSkt0XTo5NzI4LFtRS3RdOjk5ODQsW3RadF06OTk4NixbZVp0XTo5NzI5LFtuWnRdOjk5ODUsW2ladF06OTk4N307ZnVuY3Rpb24gayhuLG8sYSl7aWYoYT8odC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDIsQ1tvLndyYXBTXSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsQ1tvLndyYXBUXSksMzI4NzkhPT1uJiYzNTg2NiE9PW58fHQudGV4UGFyYW1ldGVyaShuLDMyODgyLENbby53cmFwUl0pLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLEFbby5tYWdGaWx0ZXJdKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSxBW28ubWluRmlsdGVyXSkpOih0LnRleFBhcmFtZXRlcmkobiwxMDI0MiwzMzA3MSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsMzMwNzEpLDMyODc5IT09biYmMzU4NjYhPT1ufHx0LnRleFBhcmFtZXRlcmkobiwzMjg4MiwzMzA3MSksby53cmFwUz09PUtLdCYmby53cmFwVD09PUtLdHx8Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIGlzIG5vdCBwb3dlciBvZiB0d28uIFRleHR1cmUud3JhcFMgYW5kIFRleHR1cmUud3JhcFQgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nLiIpLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLHgoby5tYWdGaWx0ZXIpKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSx4KG8ubWluRmlsdGVyKSksby5taW5GaWx0ZXIhPT1KS3QmJm8ubWluRmlsdGVyIT09ZVp0JiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaXMgbm90IHBvd2VyIG9mIHR3by4gVGV4dHVyZS5taW5GaWx0ZXIgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5OZWFyZXN0RmlsdGVyIG9yIFRIUkVFLkxpbmVhckZpbHRlci4iKSksITA9PT1lLmhhcygiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpe2NvbnN0IGE9ZS5nZXQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO2lmKG8udHlwZT09PXNadCYmITE9PT1lLmhhcygiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpcmV0dXJuO2lmKCExPT09cyYmby50eXBlPT09bFp0JiYhMT09PWUuaGFzKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKXJldHVybjsoby5hbmlzb3Ryb3B5PjF8fGkuZ2V0KG8pLl9fY3VycmVudEFuaXNvdHJvcHkpJiYodC50ZXhQYXJhbWV0ZXJmKG4sYS5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCxNYXRoLm1pbihvLmFuaXNvdHJvcHksci5nZXRNYXhBbmlzb3Ryb3B5KCkpKSxpLmdldChvKS5fX2N1cnJlbnRBbmlzb3Ryb3B5PW8uYW5pc290cm9weSl9fWZ1bmN0aW9uIEwoZSxuKXt2b2lkIDA9PT1lLl9fd2ViZ2xJbml0JiYoZS5fX3dlYmdsSW5pdD0hMCxuLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHcpLGUuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksYS5tZW1vcnkudGV4dHVyZXMrKyl9ZnVuY3Rpb24gUChlLGkscil7bGV0IGE9MzU1MztpLmlzRGF0YVRleHR1cmUyREFycmF5JiYoYT0zNTg2NiksaS5pc0RhdGFUZXh0dXJlM0QmJihhPTMyODc5KSxMKGUsaSksbi5hY3RpdmVUZXh0dXJlKDMzOTg0K3IpLG4uYmluZFRleHR1cmUoYSxlLl9fd2ViZ2xUZXh0dXJlKSx0LnBpeGVsU3RvcmVpKDM3NDQwLGkuZmxpcFkpLHQucGl4ZWxTdG9yZWkoMzc0NDEsaS5wcmVtdWx0aXBseUFscGhhKSx0LnBpeGVsU3RvcmVpKDMzMTcsaS51bnBhY2tBbGlnbm1lbnQpLHQucGl4ZWxTdG9yZWkoMzc0NDMsMCk7Y29uc3QgbD0oZnVuY3Rpb24gYyh0KXtyZXR1cm4hcyYmKHQud3JhcFMhPT1LS3R8fHQud3JhcFQhPT1LS3R8fHQubWluRmlsdGVyIT09Skt0JiZ0Lm1pbkZpbHRlciE9PWVadCl9KShpKSYmITE9PT1fKGkuaW1hZ2UpLGg9ZyhpLmltYWdlLGwsITEsdSksZD1fKGgpfHxzLHA9by5jb252ZXJ0KGkuZm9ybWF0KTtsZXQgZixtPW8uY29udmVydChpLnR5cGUpLHg9YihpLmludGVybmFsRm9ybWF0LHAsbSk7ayhhLGksZCk7Y29uc3Qgdz1pLm1pcG1hcHM7aWYoaS5pc0RlcHRoVGV4dHVyZSl4PTY0MDIscz94PWkudHlwZT09PXNadD8zNjAxMjppLnR5cGU9PT1hWnQ/MzMxOTA6aS50eXBlPT09Y1p0PzM1MDU2OjMzMTg5OmkudHlwZT09PXNadCYmY29uc29sZS5lcnJvcigiV2ViR0xSZW5kZXJlcjogRmxvYXRpbmcgcG9pbnQgZGVwdGggdGV4dHVyZSByZXF1aXJlcyBXZWJHTDIuIiksaS5mb3JtYXQ9PT1kWnQmJjY0MDI9PT14JiZpLnR5cGUhPT1vWnQmJmkudHlwZSE9PWFadCYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVXNlIFVuc2lnbmVkU2hvcnRUeXBlIG9yIFVuc2lnbmVkSW50VHlwZSBmb3IgRGVwdGhGb3JtYXQgRGVwdGhUZXh0dXJlLiIpLGkudHlwZT1vWnQsbT1vLmNvbnZlcnQoaS50eXBlKSksaS5mb3JtYXQ9PT1wWnQmJjY0MDI9PT14JiYoeD0zNDA0MSxpLnR5cGUhPT1jWnQmJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFVzZSBVbnNpZ25lZEludDI0OFR5cGUgZm9yIERlcHRoU3RlbmNpbEZvcm1hdCBEZXB0aFRleHR1cmUuIiksaS50eXBlPWNadCxtPW8uY29udmVydChpLnR5cGUpKSksbi50ZXhJbWFnZTJEKDM1NTMsMCx4LGgud2lkdGgsaC5oZWlnaHQsMCxwLG0sbnVsbCk7ZWxzZSBpZihpLmlzRGF0YVRleHR1cmUpaWYody5sZW5ndGg+MCYmZCl7Zm9yKGxldCB0PTAsZT13Lmxlbmd0aDt0PGU7dCsrKWY9d1t0XSxuLnRleEltYWdlMkQoMzU1Myx0LHgsZi53aWR0aCxmLmhlaWdodCwwLHAsbSxmLmRhdGEpO2kuZ2VuZXJhdGVNaXBtYXBzPSExLGUuX19tYXhNaXBMZXZlbD13Lmxlbmd0aC0xfWVsc2Ugbi50ZXhJbWFnZTJEKDM1NTMsMCx4LGgud2lkdGgsaC5oZWlnaHQsMCxwLG0saC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKGkuaXNDb21wcmVzc2VkVGV4dHVyZSl7Zm9yKGxldCB0PTAsZT13Lmxlbmd0aDt0PGU7dCsrKWY9d1t0XSxpLmZvcm1hdCE9PWhadCYmaS5mb3JtYXQhPT11WnQ/bnVsbCE9PXA/bi5jb21wcmVzc2VkVGV4SW1hZ2UyRCgzNTUzLHQseCxmLndpZHRoLGYuaGVpZ2h0LDAsZi5kYXRhKTpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gbG9hZCB1bnN1cHBvcnRlZCBjb21wcmVzc2VkIHRleHR1cmUgZm9ybWF0IGluIC51cGxvYWRUZXh0dXJlKCkiKTpuLnRleEltYWdlMkQoMzU1Myx0LHgsZi53aWR0aCxmLmhlaWdodCwwLHAsbSxmLmRhdGEpO2UuX19tYXhNaXBMZXZlbD13Lmxlbmd0aC0xfWVsc2UgaWYoaS5pc0RhdGFUZXh0dXJlMkRBcnJheSluLnRleEltYWdlM0QoMzU4NjYsMCx4LGgud2lkdGgsaC5oZWlnaHQsaC5kZXB0aCwwLHAsbSxoLmRhdGEpLGUuX19tYXhNaXBMZXZlbD0wO2Vsc2UgaWYoaS5pc0RhdGFUZXh0dXJlM0Qpbi50ZXhJbWFnZTNEKDMyODc5LDAseCxoLndpZHRoLGguaGVpZ2h0LGguZGVwdGgsMCxwLG0saC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKHcubGVuZ3RoPjAmJmQpe2ZvcihsZXQgdD0wLGU9dy5sZW5ndGg7dDxlO3QrKylmPXdbdF0sbi50ZXhJbWFnZTJEKDM1NTMsdCx4LHAsbSxmKTtpLmdlbmVyYXRlTWlwbWFwcz0hMSxlLl9fbWF4TWlwTGV2ZWw9dy5sZW5ndGgtMX1lbHNlIG4udGV4SW1hZ2UyRCgzNTUzLDAseCxwLG0saCksZS5fX21heE1pcExldmVsPTA7eShpLGQpJiZ2KGEsaSxoLndpZHRoLGguaGVpZ2h0KSxlLl9fdmVyc2lvbj1pLnZlcnNpb24saS5vblVwZGF0ZSYmaS5vblVwZGF0ZShpKX1mdW5jdGlvbiBOKGUscixhLHMsbCl7Y29uc3QgYz1vLmNvbnZlcnQoYS5mb3JtYXQpLHU9by5jb252ZXJ0KGEudHlwZSksaD1iKGEuaW50ZXJuYWxGb3JtYXQsYyx1KTszMjg3OT09PWx8fDM1ODY2PT09bD9uLnRleEltYWdlM0QobCwwLGgsci53aWR0aCxyLmhlaWdodCxyLmRlcHRoLDAsYyx1LG51bGwpOm4udGV4SW1hZ2UyRChsLDAsaCxyLndpZHRoLHIuaGVpZ2h0LDAsYyx1LG51bGwpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLGUpLHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAscyxsLGkuZ2V0KGEpLl9fd2ViZ2xUZXh0dXJlLDApLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWZ1bmN0aW9uIEkoZSxuLGkpe2lmKHQuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxlKSxuLmRlcHRoQnVmZmVyJiYhbi5zdGVuY2lsQnVmZmVyKXtsZXQgcj0zMzE4OTtpZihpKXtjb25zdCBlPW4uZGVwdGhUZXh0dXJlO2UmJmUuaXNEZXB0aFRleHR1cmUmJihlLnR5cGU9PT1zWnQ/cj0zNjAxMjplLnR5cGU9PT1hWnQmJihyPTMzMTkwKSk7Y29uc3QgaT1SKG4pO3QucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLGkscixuLndpZHRoLG4uaGVpZ2h0KX1lbHNlIHQucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxyLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzYwOTYsMzYxNjEsZSl9ZWxzZSBpZihuLmRlcHRoQnVmZmVyJiZuLnN0ZW5jaWxCdWZmZXIpe2lmKGkpe2NvbnN0IGU9UihuKTt0LnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSgzNjE2MSxlLDM1MDU2LG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLDM0MDQxLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzMzMDYsMzYxNjEsZSl9ZWxzZXtjb25zdCBlPSEwPT09bi5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzP24udGV4dHVyZVswXTpuLnRleHR1cmUscj1vLmNvbnZlcnQoZS5mb3JtYXQpLGE9by5jb252ZXJ0KGUudHlwZSkscz1iKGUuaW50ZXJuYWxGb3JtYXQscixhKTtpZihpKXtjb25zdCBlPVIobik7dC5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoMzYxNjEsZSxzLG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLHMsbi53aWR0aCxuLmhlaWdodCl9dC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpfWZ1bmN0aW9uIFIodCl7cmV0dXJuIHMmJnQuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0P01hdGgubWluKGgsdC5zYW1wbGVzKTowfWxldCBPPSExLHo9ITE7dGhpcy5hbGxvY2F0ZVRleHR1cmVVbml0PWZ1bmN0aW9uIEQoKXtjb25zdCB0PU07cmV0dXJuIHQ+PWwmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xUZXh0dXJlczogVHJ5aW5nIHRvIHVzZSAiK3QrIiB0ZXh0dXJlIHVuaXRzIHdoaWxlIHRoaXMgR1BVIHN1cHBvcnRzIG9ubHkgIitsKSxNKz0xLHR9LHRoaXMucmVzZXRUZXh0dXJlVW5pdHM9ZnVuY3Rpb24gQigpe009MH0sdGhpcy5zZXRUZXh0dXJlMkQ9RSx0aGlzLnNldFRleHR1cmUyREFycmF5PWZ1bmN0aW9uIEgodCxlKXtjb25zdCByPWkuZ2V0KHQpO3QudmVyc2lvbj4wJiZyLl9fdmVyc2lvbiE9PXQudmVyc2lvbj9QKHIsdCxlKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K2UpLG4uYmluZFRleHR1cmUoMzU4NjYsci5fX3dlYmdsVGV4dHVyZSkpfSx0aGlzLnNldFRleHR1cmUzRD1mdW5jdGlvbiBGKHQsZSl7Y29uc3Qgcj1pLmdldCh0KTt0LnZlcnNpb24+MCYmci5fX3ZlcnNpb24hPT10LnZlcnNpb24/UChyLHQsZSk6KG4uYWN0aXZlVGV4dHVyZSgzMzk4NCtlKSxuLmJpbmRUZXh0dXJlKDMyODc5LHIuX193ZWJnbFRleHR1cmUpKX0sdGhpcy5zZXRUZXh0dXJlQ3ViZT1ULHRoaXMuc2V0dXBSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24gVihlKXtjb25zdCBsPWUudGV4dHVyZSxjPWkuZ2V0KGUpLHU9aS5nZXQobCk7ZS5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIixTKSwhMCE9PWUuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyYmKHUuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksdS5fX3ZlcnNpb249bC52ZXJzaW9uLGEubWVtb3J5LnRleHR1cmVzKyspO2NvbnN0IGg9ITA9PT1lLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0LGQ9ITA9PT1lLmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMscD0hMD09PWUuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0LGY9bC5pc0RhdGFUZXh0dXJlM0R8fGwuaXNEYXRhVGV4dHVyZTJEQXJyYXksbT1fKGUpfHxzO2lmKCFzfHxsLmZvcm1hdCE9PXVadHx8bC50eXBlIT09c1p0JiZsLnR5cGUhPT1sWnR8fChsLmZvcm1hdD1oWnQsY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBSZW5kZXJpbmcgdG8gdGV4dHVyZXMgd2l0aCBSR0IgZm9ybWF0IGlzIG5vdCBzdXBwb3J0ZWQuIFVzaW5nIFJHQkEgZm9ybWF0IGluc3RlYWQuIikpLGgpe2MuX193ZWJnbEZyYW1lYnVmZmVyPVtdO2ZvcihsZXQgZT0wO2U8NjtlKyspYy5fX3dlYmdsRnJhbWVidWZmZXJbZV09dC5jcmVhdGVGcmFtZWJ1ZmZlcigpfWVsc2UgaWYoYy5fX3dlYmdsRnJhbWVidWZmZXI9dC5jcmVhdGVGcmFtZWJ1ZmZlcigpLGQpaWYoci5kcmF3QnVmZmVycyl7Y29uc3Qgbj1lLnRleHR1cmU7Zm9yKGxldCBlPTAscj1uLmxlbmd0aDtlPHI7ZSsrKXtjb25zdCByPWkuZ2V0KG5bZV0pO3ZvaWQgMD09PXIuX193ZWJnbFRleHR1cmUmJihyLl9fd2ViZ2xUZXh0dXJlPXQuY3JlYXRlVGV4dHVyZSgpLGEubWVtb3J5LnRleHR1cmVzKyspfX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMiBvciBXRUJHTF9kcmF3X2J1ZmZlcnMgZXh0ZW5zaW9uLiIpO2Vsc2UgaWYocClpZihzKXtjLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcj10LmNyZWF0ZUZyYW1lYnVmZmVyKCksYy5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXI9dC5jcmVhdGVSZW5kZXJidWZmZXIoKSx0LmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsYy5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpO2NvbnN0IGk9by5jb252ZXJ0KGwuZm9ybWF0KSxyPW8uY29udmVydChsLnR5cGUpLGE9YihsLmludGVybmFsRm9ybWF0LGkscikscz1SKGUpO3QucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLHMsYSxlLndpZHRoLGUuaGVpZ2h0KSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxjLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlciksdC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigzNjE2MCwzNjA2NCwzNjE2MSxjLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciksdC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpLGUuZGVwdGhCdWZmZXImJihjLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLEkoYy5fX3dlYmdsRGVwdGhSZW5kZXJidWZmZXIsZSwhMCkpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIik7aWYoaCl7bi5iaW5kVGV4dHVyZSgzNDA2Nyx1Ll9fd2ViZ2xUZXh0dXJlKSxrKDM0MDY3LGwsbSk7Zm9yKGxldCB0PTA7dDw2O3QrKylOKGMuX193ZWJnbEZyYW1lYnVmZmVyW3RdLGUsbCwzNjA2NCwzNDA2OSt0KTt5KGwsbSkmJnYoMzQwNjcsbCxlLndpZHRoLGUuaGVpZ2h0KSxuLmJpbmRUZXh0dXJlKDM0MDY3LG51bGwpfWVsc2UgaWYoZCl7Y29uc3QgdD1lLnRleHR1cmU7Zm9yKGxldCByPTAsbz10Lmxlbmd0aDtyPG87cisrKXtjb25zdCBvPXRbcl0sYT1pLmdldChvKTtuLmJpbmRUZXh0dXJlKDM1NTMsYS5fX3dlYmdsVGV4dHVyZSksaygzNTUzLG8sbSksTihjLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlLG8sMzYwNjQrciwzNTUzKSx5KG8sbSkmJnYoMzU1MyxvLGUud2lkdGgsZS5oZWlnaHQpfW4uYmluZFRleHR1cmUoMzU1MyxudWxsKX1lbHNle2xldCB0PTM1NTM7ZiYmKHM/dD1sLmlzRGF0YVRleHR1cmUzRD8zMjg3OTozNTg2Njpjb25zb2xlLndhcm4oIlRIUkVFLkRhdGFUZXh0dXJlM0QgYW5kIFRIUkVFLkRhdGFUZXh0dXJlMkRBcnJheSBvbmx5IHN1cHBvcnRlZCB3aXRoIFdlYkdMMi4iKSksbi5iaW5kVGV4dHVyZSh0LHUuX193ZWJnbFRleHR1cmUpLGsodCxsLG0pLE4oYy5fX3dlYmdsRnJhbWVidWZmZXIsZSxsLDM2MDY0LHQpLHkobCxtKSYmdih0LGwsZS53aWR0aCxlLmhlaWdodCxlLmRlcHRoKSxuLmJpbmRUZXh0dXJlKHQsbnVsbCl9ZS5kZXB0aEJ1ZmZlciYmKGZ1bmN0aW9uIGcoZSl7Y29uc3Qgcj1pLmdldChlKSxvPSEwPT09ZS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldDtpZihlLmRlcHRoVGV4dHVyZSl7aWYobyl0aHJvdyBuZXcgRXJyb3IoInRhcmdldC5kZXB0aFRleHR1cmUgbm90IHN1cHBvcnRlZCBpbiBDdWJlIHJlbmRlciB0YXJnZXRzIik7IShmdW5jdGlvbiBhKGUscil7aWYociYmci5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldCl0aHJvdyBuZXcgRXJyb3IoIkRlcHRoIFRleHR1cmUgd2l0aCBjdWJlIHJlbmRlciB0YXJnZXRzIGlzIG5vdCBzdXBwb3J0ZWQiKTtpZihuLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxlKSwhci5kZXB0aFRleHR1cmV8fCFyLmRlcHRoVGV4dHVyZS5pc0RlcHRoVGV4dHVyZSl0aHJvdyBuZXcgRXJyb3IoInJlbmRlclRhcmdldC5kZXB0aFRleHR1cmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBUSFJFRS5EZXB0aFRleHR1cmUiKTtpLmdldChyLmRlcHRoVGV4dHVyZSkuX193ZWJnbFRleHR1cmUmJnIuZGVwdGhUZXh0dXJlLmltYWdlLndpZHRoPT09ci53aWR0aCYmci5kZXB0aFRleHR1cmUuaW1hZ2UuaGVpZ2h0PT09ci5oZWlnaHR8fChyLmRlcHRoVGV4dHVyZS5pbWFnZS53aWR0aD1yLndpZHRoLHIuZGVwdGhUZXh0dXJlLmltYWdlLmhlaWdodD1yLmhlaWdodCxyLmRlcHRoVGV4dHVyZS5uZWVkc1VwZGF0ZT0hMCksRShyLmRlcHRoVGV4dHVyZSwwKTtjb25zdCBvPWkuZ2V0KHIuZGVwdGhUZXh0dXJlKS5fX3dlYmdsVGV4dHVyZTtpZihyLmRlcHRoVGV4dHVyZS5mb3JtYXQ9PT1kWnQpdC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLG8sMCk7ZWxzZXtpZihyLmRlcHRoVGV4dHVyZS5mb3JtYXQhPT1wWnQpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoVGV4dHVyZSBmb3JtYXQiKTt0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDMzMzA2LDM1NTMsbywwKX19KShyLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlKX1lbHNlIGlmKG8pe3IuX193ZWJnbERlcHRoYnVmZmVyPVtdO2ZvcihsZXQgaT0wO2k8NjtpKyspbi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsci5fX3dlYmdsRnJhbWVidWZmZXJbaV0pLHIuX193ZWJnbERlcHRoYnVmZmVyW2ldPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCksSShyLl9fd2ViZ2xEZXB0aGJ1ZmZlcltpXSxlLCExKX1lbHNlIG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLHIuX193ZWJnbEZyYW1lYnVmZmVyKSxyLl9fd2ViZ2xEZXB0aGJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLEkoci5fX3dlYmdsRGVwdGhidWZmZXIsZSwhMSk7bi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9KShlKX0sdGhpcy51cGRhdGVSZW5kZXJUYXJnZXRNaXBtYXA9ZnVuY3Rpb24gVSh0KXtjb25zdCBlPV8odCl8fHMscj0hMD09PXQuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cz90LnRleHR1cmU6W3QudGV4dHVyZV07Zm9yKGxldCBvPTAsYT1yLmxlbmd0aDtvPGE7bysrKXtjb25zdCBhPXJbb107aWYoeShhLGUpKXtjb25zdCBlPXQuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ/MzQwNjc6MzU1MyxyPWkuZ2V0KGEpLl9fd2ViZ2xUZXh0dXJlO24uYmluZFRleHR1cmUoZSxyKSx2KGUsYSx0LndpZHRoLHQuaGVpZ2h0KSxuLmJpbmRUZXh0dXJlKGUsbnVsbCl9fX0sdGhpcy51cGRhdGVNdWx0aXNhbXBsZVJlbmRlclRhcmdldD1mdW5jdGlvbiBqKGUpe2lmKGUuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KWlmKHMpe2NvbnN0IHI9ZS53aWR0aCxvPWUuaGVpZ2h0O2xldCBhPTE2Mzg0O2UuZGVwdGhCdWZmZXImJihhfD0yNTYpLGUuc3RlbmNpbEJ1ZmZlciYmKGF8PTEwMjQpO2NvbnN0IHM9aS5nZXQoZSk7bi5iaW5kRnJhbWVidWZmZXIoMzYwMDgscy5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXIpLG4uYmluZEZyYW1lYnVmZmVyKDM2MDA5LHMuX193ZWJnbEZyYW1lYnVmZmVyKSx0LmJsaXRGcmFtZWJ1ZmZlcigwLDAscixvLDAsMCxyLG8sYSw5NzI4KSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxudWxsKSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOSxzLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcil9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFdlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMi4iKX0sdGhpcy5zYWZlU2V0VGV4dHVyZTJEPWZ1bmN0aW9uIEcodCxlKXt0JiZ0LmlzV2ViR0xSZW5kZXJUYXJnZXQmJighMT09PU8mJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMVGV4dHVyZXMuc2FmZVNldFRleHR1cmUyRDogZG9uJ3QgdXNlIHJlbmRlciB0YXJnZXRzIGFzIHRleHR1cmVzLiBVc2UgdGhlaXIgLnRleHR1cmUgcHJvcGVydHkgaW5zdGVhZC4iKSxPPSEwKSx0PXQudGV4dHVyZSksRSh0LGUpfSx0aGlzLnNhZmVTZXRUZXh0dXJlQ3ViZT1mdW5jdGlvbiBXKHQsZSl7dCYmdC5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldCYmKCExPT09eiYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xUZXh0dXJlcy5zYWZlU2V0VGV4dHVyZUN1YmU6IGRvbid0IHVzZSBjdWJlIHJlbmRlciB0YXJnZXRzIGFzIHRleHR1cmVzLiBVc2UgdGhlaXIgLnRleHR1cmUgcHJvcGVydHkgaW5zdGVhZC4iKSx6PSEwKSx0PXQudGV4dHVyZSksVCh0LGUpfX1mdW5jdGlvbiBENXQodCxlLG4pe2NvbnN0IGk9bi5pc1dlYkdMMjtyZXR1cm57Y29udmVydDpmdW5jdGlvbiByKHQpe2xldCBuO2lmKHQ9PT1yWnQpcmV0dXJuIDUxMjE7aWYoMTAxNz09PXQpcmV0dXJuIDMyODE5O2lmKDEwMTg9PT10KXJldHVybiAzMjgyMDtpZigxMDE5PT09dClyZXR1cm4gMzM2MzU7aWYoMTAxMD09PXQpcmV0dXJuIDUxMjA7aWYoMTAxMT09PXQpcmV0dXJuIDUxMjI7aWYodD09PW9adClyZXR1cm4gNTEyMztpZigxMDEzPT09dClyZXR1cm4gNTEyNDtpZih0PT09YVp0KXJldHVybiA1MTI1O2lmKHQ9PT1zWnQpcmV0dXJuIDUxMjY7aWYodD09PWxadClyZXR1cm4gaT81MTMxOihuPWUuZ2V0KCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiksbnVsbCE9PW4/bi5IQUxGX0ZMT0FUX09FUzpudWxsKTtpZigxMDIxPT09dClyZXR1cm4gNjQwNjtpZih0PT09dVp0KXJldHVybiA2NDA3O2lmKHQ9PT1oWnQpcmV0dXJuIDY0MDg7aWYoMTAyND09PXQpcmV0dXJuIDY0MDk7aWYoMTAyNT09PXQpcmV0dXJuIDY0MTA7aWYodD09PWRadClyZXR1cm4gNjQwMjtpZih0PT09cFp0KXJldHVybiAzNDA0MTtpZigxMDI4PT09dClyZXR1cm4gNjQwMztpZigxMDI5PT09dClyZXR1cm4gMzYyNDQ7aWYoMTAzMD09PXQpcmV0dXJuIDMzMzE5O2lmKDEwMzE9PT10KXJldHVybiAzMzMyMDtpZigxMDMyPT09dClyZXR1cm4gMzYyNDg7aWYoMTAzMz09PXQpcmV0dXJuIDM2MjQ5O2lmKHQ9PT1mWnR8fHQ9PT1tWnR8fHQ9PT1nWnR8fHQ9PT1fWnQpe2lmKG49ZS5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIiksbnVsbD09PW4pcmV0dXJuIG51bGw7aWYodD09PWZadClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUO2lmKHQ9PT1tWnQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQ7aWYodD09PWdadClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQzX0VYVDtpZih0PT09X1p0KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDVfRVhUfWlmKHQ9PT15WnR8fHQ9PT12WnR8fHQ9PT1iWnR8fHQ9PT14WnQpe2lmKG49ZS5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpLG51bGw9PT1uKXJldHVybiBudWxsO2lmKHQ9PT15WnQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JfUFZSVENfNEJQUFYxX0lNRztpZih0PT09dlp0KXJldHVybiBuLkNPTVBSRVNTRURfUkdCX1BWUlRDXzJCUFBWMV9JTUc7aWYodD09PWJadClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRztpZih0PT09eFp0KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQV9QVlJUQ18yQlBQVjFfSU1HfWlmKDM2MTk2PT09dClyZXR1cm4gbj1lLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2V0YzEiKSxudWxsIT09bj9uLkNPTVBSRVNTRURfUkdCX0VUQzFfV0VCR0w6bnVsbDtpZigodD09PXdadHx8dD09PVNadCkmJihuPWUuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfZXRjIiksbnVsbCE9PW4pKXtpZih0PT09d1p0KXJldHVybiBuLkNPTVBSRVNTRURfUkdCOF9FVEMyO2lmKHQ9PT1TWnQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBOF9FVEMyX0VBQ31yZXR1cm4gMzc4MDg9PT10fHwzNzgwOT09PXR8fDM3ODEwPT09dHx8Mzc4MTE9PT10fHwzNzgxMj09PXR8fDM3ODEzPT09dHx8Mzc4MTQ9PT10fHwzNzgxNT09PXR8fDM3ODE2PT09dHx8Mzc4MTc9PT10fHwzNzgxOD09PXR8fDM3ODE5PT09dHx8Mzc4MjA9PT10fHwzNzgyMT09PXR8fDM3ODQwPT09dHx8Mzc4NDE9PT10fHwzNzg0Mj09PXR8fDM3ODQzPT09dHx8Mzc4NDQ9PT10fHwzNzg0NT09PXR8fDM3ODQ2PT09dHx8Mzc4NDc9PT10fHwzNzg0OD09PXR8fDM3ODQ5PT09dHx8Mzc4NTA9PT10fHwzNzg1MT09PXR8fDM3ODUyPT09dHx8Mzc4NTM9PT10PyhuPWUuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXN0YyIpLG51bGwhPT1uP3Q6bnVsbCk6MzY0OTI9PT10PyhuPWUuZ2V0KCJFWFRfdGV4dHVyZV9jb21wcmVzc2lvbl9icHRjIiksbnVsbCE9PW4/dDpudWxsKTp0PT09Y1p0P2k/MzQwNDI6KG49ZS5nZXQoIldFQkdMX2RlcHRoX3RleHR1cmUiKSxudWxsIT09bj9uLlVOU0lHTkVEX0lOVF8yNF84X1dFQkdMOm51bGwpOnZvaWQgMH19fUk1dC5wcm90b3R5cGUuaXNNZXNoRGlzdGFuY2VNYXRlcmlhbD0hMDtjbGFzcyBCNXQgZXh0ZW5kcyBxMXR7Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoKSx0aGlzLmNhbWVyYXM9dH19QjV0LnByb3RvdHlwZS5pc0FycmF5Q2FtZXJhPSEwO2NsYXNzIEg1dCBleHRlbmRzIGtRdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJHcm91cCJ9fUg1dC5wcm90b3R5cGUuaXNHcm91cD0hMDtjb25zdCBGNXQ9e3R5cGU6Im1vdmUifTtjbGFzcyBWNXR7Y29uc3RydWN0b3IoKXt0aGlzLl90YXJnZXRSYXk9bnVsbCx0aGlzLl9ncmlwPW51bGwsdGhpcy5faGFuZD1udWxsfWdldEhhbmRTcGFjZSgpe3JldHVybiBudWxsPT09dGhpcy5faGFuZCYmKHRoaXMuX2hhbmQ9bmV3IEg1dCx0aGlzLl9oYW5kLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5faGFuZC52aXNpYmxlPSExLHRoaXMuX2hhbmQuam9pbnRzPXt9LHRoaXMuX2hhbmQuaW5wdXRTdGF0ZT17cGluY2hpbmc6ITF9KSx0aGlzLl9oYW5kfWdldFRhcmdldFJheVNwYWNlKCl7cmV0dXJuIG51bGw9PT10aGlzLl90YXJnZXRSYXkmJih0aGlzLl90YXJnZXRSYXk9bmV3IEg1dCx0aGlzLl90YXJnZXRSYXkubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLl90YXJnZXRSYXkudmlzaWJsZT0hMSx0aGlzLl90YXJnZXRSYXkuaGFzTGluZWFyVmVsb2NpdHk9ITEsdGhpcy5fdGFyZ2V0UmF5LmxpbmVhclZlbG9jaXR5PW5ldyBDSnQsdGhpcy5fdGFyZ2V0UmF5Lmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSx0aGlzLl90YXJnZXRSYXkuYW5ndWxhclZlbG9jaXR5PW5ldyBDSnQpLHRoaXMuX3RhcmdldFJheX1nZXRHcmlwU3BhY2UoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2dyaXAmJih0aGlzLl9ncmlwPW5ldyBINXQsdGhpcy5fZ3JpcC5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX2dyaXAudmlzaWJsZT0hMSx0aGlzLl9ncmlwLmhhc0xpbmVhclZlbG9jaXR5PSExLHRoaXMuX2dyaXAubGluZWFyVmVsb2NpdHk9bmV3IENKdCx0aGlzLl9ncmlwLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSx0aGlzLl9ncmlwLmFuZ3VsYXJWZWxvY2l0eT1uZXcgQ0p0KSx0aGlzLl9ncmlwfWRpc3BhdGNoRXZlbnQodCl7cmV0dXJuIG51bGwhPT10aGlzLl90YXJnZXRSYXkmJnRoaXMuX3RhcmdldFJheS5kaXNwYXRjaEV2ZW50KHQpLG51bGwhPT10aGlzLl9ncmlwJiZ0aGlzLl9ncmlwLmRpc3BhdGNoRXZlbnQodCksbnVsbCE9PXRoaXMuX2hhbmQmJnRoaXMuX2hhbmQuZGlzcGF0Y2hFdmVudCh0KSx0aGlzfWRpc2Nvbm5lY3QodCl7cmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzY29ubmVjdGVkIixkYXRhOnR9KSxudWxsIT09dGhpcy5fdGFyZ2V0UmF5JiYodGhpcy5fdGFyZ2V0UmF5LnZpc2libGU9ITEpLG51bGwhPT10aGlzLl9ncmlwJiYodGhpcy5fZ3JpcC52aXNpYmxlPSExKSxudWxsIT09dGhpcy5faGFuZCYmKHRoaXMuX2hhbmQudmlzaWJsZT0hMSksdGhpc311cGRhdGUodCxlLG4pe2xldCBpPW51bGwscj1udWxsLG89bnVsbDtjb25zdCBhPXRoaXMuX3RhcmdldFJheSxzPXRoaXMuX2dyaXAsbD10aGlzLl9oYW5kO2lmKHQmJiJ2aXNpYmxlLWJsdXJyZWQiIT09ZS5zZXNzaW9uLnZpc2liaWxpdHlTdGF0ZSlpZihudWxsIT09YSYmKGk9ZS5nZXRQb3NlKHQudGFyZ2V0UmF5U3BhY2UsbiksbnVsbCE9PWkmJihhLm1hdHJpeC5mcm9tQXJyYXkoaS50cmFuc2Zvcm0ubWF0cml4KSxhLm1hdHJpeC5kZWNvbXBvc2UoYS5wb3NpdGlvbixhLnJvdGF0aW9uLGEuc2NhbGUpLGkubGluZWFyVmVsb2NpdHk/KGEuaGFzTGluZWFyVmVsb2NpdHk9ITAsYS5saW5lYXJWZWxvY2l0eS5jb3B5KGkubGluZWFyVmVsb2NpdHkpKTphLmhhc0xpbmVhclZlbG9jaXR5PSExLGkuYW5ndWxhclZlbG9jaXR5PyhhLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMCxhLmFuZ3VsYXJWZWxvY2l0eS5jb3B5KGkuYW5ndWxhclZlbG9jaXR5KSk6YS5oYXNBbmd1bGFyVmVsb2NpdHk9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KEY1dCkpKSxsJiZ0LmhhbmQpe289ITA7Zm9yKGNvbnN0IGkgb2YgdC5oYW5kLnZhbHVlcygpKXtjb25zdCB0PWUuZ2V0Sm9pbnRQb3NlKGksbik7aWYodm9pZCAwPT09bC5qb2ludHNbaS5qb2ludE5hbWVdKXtjb25zdCB0PW5ldyBINXQ7dC5tYXRyaXhBdXRvVXBkYXRlPSExLHQudmlzaWJsZT0hMSxsLmpvaW50c1tpLmpvaW50TmFtZV09dCxsLmFkZCh0KX1jb25zdCByPWwuam9pbnRzW2kuam9pbnROYW1lXTtudWxsIT09dCYmKHIubWF0cml4LmZyb21BcnJheSh0LnRyYW5zZm9ybS5tYXRyaXgpLHIubWF0cml4LmRlY29tcG9zZShyLnBvc2l0aW9uLHIucm90YXRpb24sci5zY2FsZSksci5qb2ludFJhZGl1cz10LnJhZGl1cyksci52aXNpYmxlPW51bGwhPT10fWNvbnN0IGk9bC5qb2ludHNbImluZGV4LWZpbmdlci10aXAiXS5wb3NpdGlvbi5kaXN0YW5jZVRvKGwuam9pbnRzWyJ0aHVtYi10aXAiXS5wb3NpdGlvbikscj0uMDIsYT0uMDA1O2wuaW5wdXRTdGF0ZS5waW5jaGluZyYmaT5yK2E/KGwuaW5wdXRTdGF0ZS5waW5jaGluZz0hMSx0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6InBpbmNoZW5kIixoYW5kZWRuZXNzOnQuaGFuZGVkbmVzcyx0YXJnZXQ6dGhpc30pKTohbC5pbnB1dFN0YXRlLnBpbmNoaW5nJiZpPD1yLWEmJihsLmlucHV0U3RhdGUucGluY2hpbmc9ITAsdGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJwaW5jaHN0YXJ0IixoYW5kZWRuZXNzOnQuaGFuZGVkbmVzcyx0YXJnZXQ6dGhpc30pKX1lbHNlIG51bGwhPT1zJiZ0LmdyaXBTcGFjZSYmKHI9ZS5nZXRQb3NlKHQuZ3JpcFNwYWNlLG4pLG51bGwhPT1yJiYocy5tYXRyaXguZnJvbUFycmF5KHIudHJhbnNmb3JtLm1hdHJpeCkscy5tYXRyaXguZGVjb21wb3NlKHMucG9zaXRpb24scy5yb3RhdGlvbixzLnNjYWxlKSxyLmxpbmVhclZlbG9jaXR5PyhzLmhhc0xpbmVhclZlbG9jaXR5PSEwLHMubGluZWFyVmVsb2NpdHkuY29weShyLmxpbmVhclZlbG9jaXR5KSk6cy5oYXNMaW5lYXJWZWxvY2l0eT0hMSxyLmFuZ3VsYXJWZWxvY2l0eT8ocy5oYXNBbmd1bGFyVmVsb2NpdHk9ITAscy5hbmd1bGFyVmVsb2NpdHkuY29weShyLmFuZ3VsYXJWZWxvY2l0eSkpOnMuaGFzQW5ndWxhclZlbG9jaXR5PSExKSk7cmV0dXJuIG51bGwhPT1hJiYoYS52aXNpYmxlPW51bGwhPT1pKSxudWxsIT09cyYmKHMudmlzaWJsZT1udWxsIT09ciksbnVsbCE9PWwmJihsLnZpc2libGU9bnVsbCE9PW8pLHRoaXN9fWNsYXNzIFU1dCBleHRlbmRzIGpadHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCk7Y29uc3Qgbj10aGlzLGk9dC5zdGF0ZTtsZXQgcj1udWxsLG89MSxhPW51bGwscz0ibG9jYWwtZmxvb3IiLGw9bnVsbCxjPW51bGwsdT1udWxsLGg9bnVsbCxkPW51bGw7Y29uc3QgcD1bXSxmPW5ldyBNYXAsbT1uZXcgcTF0O20ubGF5ZXJzLmVuYWJsZSgxKSxtLnZpZXdwb3J0PW5ldyB3SnQ7Y29uc3QgZz1uZXcgcTF0O2cubGF5ZXJzLmVuYWJsZSgyKSxnLnZpZXdwb3J0PW5ldyB3SnQ7Y29uc3QgXz1bbSxnXSx5PW5ldyBCNXQ7eS5sYXllcnMuZW5hYmxlKDEpLHkubGF5ZXJzLmVuYWJsZSgyKTtsZXQgdj1udWxsLGI9bnVsbDtmdW5jdGlvbiB4KHQpe2NvbnN0IGU9Zi5nZXQodC5pbnB1dFNvdXJjZSk7ZSYmZS5kaXNwYXRjaEV2ZW50KHt0eXBlOnQudHlwZSxkYXRhOnQuaW5wdXRTb3VyY2V9KX1mdW5jdGlvbiB3KCl7Zi5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3QuZGlzY29ubmVjdChlKX0pKSxmLmNsZWFyKCksdj1udWxsLGI9bnVsbCxpLmJpbmRYUkZyYW1lYnVmZmVyKG51bGwpLHQuc2V0UmVuZGVyVGFyZ2V0KHQuZ2V0UmVuZGVyVGFyZ2V0KCkpLEEuc3RvcCgpLG4uaXNQcmVzZW50aW5nPSExLG4uZGlzcGF0Y2hFdmVudCh7dHlwZToic2Vzc2lvbmVuZCJ9KX1mdW5jdGlvbiBTKHQpe2NvbnN0IGU9ci5pbnB1dFNvdXJjZXM7Zm9yKGxldCB0PTA7dDxwLmxlbmd0aDt0KyspZi5zZXQoZVt0XSxwW3RdKTtmb3IobGV0IGU9MDtlPHQucmVtb3ZlZC5sZW5ndGg7ZSsrKXtjb25zdCBuPXQucmVtb3ZlZFtlXSxpPWYuZ2V0KG4pO2kmJihpLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc2Nvbm5lY3RlZCIsZGF0YTpufSksZi5kZWxldGUobikpfWZvcihsZXQgZT0wO2U8dC5hZGRlZC5sZW5ndGg7ZSsrKXtjb25zdCBuPXQuYWRkZWRbZV0saT1mLmdldChuKTtpJiZpLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImNvbm5lY3RlZCIsZGF0YTpufSl9fXRoaXMuY2FtZXJhQXV0b1VwZGF0ZT0hMCx0aGlzLmVuYWJsZWQ9ITEsdGhpcy5pc1ByZXNlbnRpbmc9ITEsdGhpcy5nZXRDb250cm9sbGVyPWZ1bmN0aW9uKHQpe2xldCBlPXBbdF07cmV0dXJuIHZvaWQgMD09PWUmJihlPW5ldyBWNXQscFt0XT1lKSxlLmdldFRhcmdldFJheVNwYWNlKCl9LHRoaXMuZ2V0Q29udHJvbGxlckdyaXA9ZnVuY3Rpb24odCl7bGV0IGU9cFt0XTtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9bmV3IFY1dCxwW3RdPWUpLGUuZ2V0R3JpcFNwYWNlKCl9LHRoaXMuZ2V0SGFuZD1mdW5jdGlvbih0KXtsZXQgZT1wW3RdO3JldHVybiB2b2lkIDA9PT1lJiYoZT1uZXcgVjV0LHBbdF09ZSksZS5nZXRIYW5kU3BhY2UoKX0sdGhpcy5zZXRGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yPWZ1bmN0aW9uKHQpe289dCwhMD09PW4uaXNQcmVzZW50aW5nJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYlhSTWFuYWdlcjogQ2Fubm90IGNoYW5nZSBmcmFtZWJ1ZmZlciBzY2FsZSB3aGlsZSBwcmVzZW50aW5nLiIpfSx0aGlzLnNldFJlZmVyZW5jZVNwYWNlVHlwZT1mdW5jdGlvbih0KXtzPXQsITA9PT1uLmlzUHJlc2VudGluZyYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJYUk1hbmFnZXI6IENhbm5vdCBjaGFuZ2UgcmVmZXJlbmNlIHNwYWNlIHR5cGUgd2hpbGUgcHJlc2VudGluZy4iKX0sdGhpcy5nZXRSZWZlcmVuY2VTcGFjZT1mdW5jdGlvbigpe3JldHVybiBhfSx0aGlzLmdldFNlc3Npb249ZnVuY3Rpb24oKXtyZXR1cm4gcn0sdGhpcy5zZXRTZXNzaW9uPWFzeW5jIGZ1bmN0aW9uKHQpe2lmKHI9dCxudWxsIT09cil7ci5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3QiLHgpLHIuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0c3RhcnQiLHgpLHIuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZW5kIix4KSxyLmFkZEV2ZW50TGlzdGVuZXIoInNxdWVlemUiLHgpLHIuYWRkRXZlbnRMaXN0ZW5lcigic3F1ZWV6ZXN0YXJ0Iix4KSxyLmFkZEV2ZW50TGlzdGVuZXIoInNxdWVlemVlbmQiLHgpLHIuYWRkRXZlbnRMaXN0ZW5lcigiZW5kIix3KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0c291cmNlc2NoYW5nZSIsUyk7Y29uc3QgdD1lLmdldENvbnRleHRBdHRyaWJ1dGVzKCk7aWYoITAhPT10LnhyQ29tcGF0aWJsZSYmYXdhaXQgZS5tYWtlWFJDb21wYXRpYmxlKCksdm9pZCAwPT09ci5yZW5kZXJTdGF0ZS5sYXllcnMpZD1uZXcgWFJXZWJHTExheWVyKHIsZSx7YW50aWFsaWFzOnQuYW50aWFsaWFzLGFscGhhOnQuYWxwaGEsZGVwdGg6dC5kZXB0aCxzdGVuY2lsOnQuc3RlbmNpbCxmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yOm99KSxyLnVwZGF0ZVJlbmRlclN0YXRlKHtiYXNlTGF5ZXI6ZH0pO2Vsc2V7bGV0IG49MDtpZih0LmFudGlhbGlhcylkPW5ldyBYUldlYkdMTGF5ZXIocixlLHthbnRpYWxpYXM6ITAsYWxwaGE6dC5hbHBoYSxkZXB0aDp0LmRlcHRoLHN0ZW5jaWw6dC5zdGVuY2lsLGZyYW1lYnVmZmVyU2NhbGVGYWN0b3I6b30pLHIudXBkYXRlUmVuZGVyU3RhdGUoe2xheWVyczpbZF19KTtlbHNle3QuZGVwdGgmJihuPXQuc3RlbmNpbD8zNDA0MTo2NDAyKTtjb25zdCBpPXtjb2xvckZvcm1hdDp0LmFscGhhPzY0MDg6NjQwNyxkZXB0aEZvcm1hdDpuLHNjYWxlRmFjdG9yOm99O2M9bmV3IFhSV2ViR0xCaW5kaW5nKHIsZSksaD1jLmNyZWF0ZVByb2plY3Rpb25MYXllcihpKSx1PWUuY3JlYXRlRnJhbWVidWZmZXIoKSxyLnVwZGF0ZVJlbmRlclN0YXRlKHtsYXllcnM6W2hdfSl9fWE9YXdhaXQgci5yZXF1ZXN0UmVmZXJlbmNlU3BhY2UocyksQS5zZXRDb250ZXh0KHIpLEEuc3RhcnQoKSxuLmlzUHJlc2VudGluZz0hMCxuLmRpc3BhdGNoRXZlbnQoe3R5cGU6InNlc3Npb25zdGFydCJ9KX19O2NvbnN0IE09bmV3IENKdCxFPW5ldyBDSnQ7ZnVuY3Rpb24gVCh0LGUpe251bGw9PT1lP3QubWF0cml4V29ybGQuY29weSh0Lm1hdHJpeCk6dC5tYXRyaXhXb3JsZC5tdWx0aXBseU1hdHJpY2VzKGUubWF0cml4V29ybGQsdC5tYXRyaXgpLHQubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodC5tYXRyaXhXb3JsZCkuaW52ZXJ0KCl9dGhpcy51cGRhdGVDYW1lcmE9ZnVuY3Rpb24odCl7aWYobnVsbD09PXIpcmV0dXJuO3kubmVhcj1nLm5lYXI9bS5uZWFyPXQubmVhcix5LmZhcj1nLmZhcj1tLmZhcj10LmZhcix2PT09eS5uZWFyJiZiPT09eS5mYXJ8fChyLnVwZGF0ZVJlbmRlclN0YXRlKHtkZXB0aE5lYXI6eS5uZWFyLGRlcHRoRmFyOnkuZmFyfSksdj15Lm5lYXIsYj15LmZhcik7Y29uc3QgZT10LnBhcmVudCxuPXkuY2FtZXJhcztUKHksZSk7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0KyspVChuW3RdLGUpO3kubWF0cml4V29ybGQuZGVjb21wb3NlKHkucG9zaXRpb24seS5xdWF0ZXJuaW9uLHkuc2NhbGUpLHQucG9zaXRpb24uY29weSh5LnBvc2l0aW9uKSx0LnF1YXRlcm5pb24uY29weSh5LnF1YXRlcm5pb24pLHQuc2NhbGUuY29weSh5LnNjYWxlKSx0Lm1hdHJpeC5jb3B5KHkubWF0cml4KSx0Lm1hdHJpeFdvcmxkLmNvcHkoeS5tYXRyaXhXb3JsZCk7Y29uc3QgaT10LmNoaWxkcmVuO2ZvcihsZXQgdD0wLGU9aS5sZW5ndGg7dDxlO3QrKylpW3RdLnVwZGF0ZU1hdHJpeFdvcmxkKCEwKTsyPT09bi5sZW5ndGg/KGZ1bmN0aW9uIG8odCxlLG4pe00uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGUubWF0cml4V29ybGQpLEUuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKG4ubWF0cml4V29ybGQpO2NvbnN0IGk9TS5kaXN0YW5jZVRvKEUpLHI9ZS5wcm9qZWN0aW9uTWF0cml4LmVsZW1lbnRzLG89bi5wcm9qZWN0aW9uTWF0cml4LmVsZW1lbnRzLGE9clsxNF0vKHJbMTBdLTEpLHM9clsxNF0vKHJbMTBdKzEpLGw9KHJbOV0rMSkvcls1XSxjPShyWzldLTEpL3JbNV0sdT0ocls4XS0xKS9yWzBdLGg9KG9bOF0rMSkvb1swXSxkPWEqdSxwPWEqaCxmPWkvKC11K2gpLG09ZiotdTtlLm1hdHJpeFdvcmxkLmRlY29tcG9zZSh0LnBvc2l0aW9uLHQucXVhdGVybmlvbix0LnNjYWxlKSx0LnRyYW5zbGF0ZVgobSksdC50cmFuc2xhdGVaKGYpLHQubWF0cml4V29ybGQuY29tcG9zZSh0LnBvc2l0aW9uLHQucXVhdGVybmlvbix0LnNjYWxlKSx0Lm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHQubWF0cml4V29ybGQpLmludmVydCgpO2NvbnN0IGc9YStmLF89cytmO3QucHJvamVjdGlvbk1hdHJpeC5tYWtlUGVyc3BlY3RpdmUoZC1tLHArKGktbSksbCpzL18qZyxjKnMvXypnLGcsXyl9KSh5LG0sZyk6eS5wcm9qZWN0aW9uTWF0cml4LmNvcHkobS5wcm9qZWN0aW9uTWF0cml4KX0sdGhpcy5nZXRDYW1lcmE9ZnVuY3Rpb24oKXtyZXR1cm4geX0sdGhpcy5nZXRGb3ZlYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PWg/aC5maXhlZEZvdmVhdGlvbjpudWxsIT09ZD9kLmZpeGVkRm92ZWF0aW9uOnZvaWQgMH0sdGhpcy5zZXRGb3ZlYXRpb249ZnVuY3Rpb24odCl7bnVsbCE9PWgmJihoLmZpeGVkRm92ZWF0aW9uPXQpLG51bGwhPT1kJiZ2b2lkIDAhPT1kLmZpeGVkRm92ZWF0aW9uJiYoZC5maXhlZEZvdmVhdGlvbj10KX07bGV0IEM9bnVsbDtjb25zdCBBPW5ldyByMHQ7QS5zZXRBbmltYXRpb25Mb29wKChmdW5jdGlvbiBrKHQsbil7aWYobD1uLmdldFZpZXdlclBvc2UoYSksbnVsbCE9PWwpe2NvbnN0IHQ9bC52aWV3cztudWxsIT09ZCYmaS5iaW5kWFJGcmFtZWJ1ZmZlcihkLmZyYW1lYnVmZmVyKTtsZXQgbj0hMTt0Lmxlbmd0aCE9PXkuY2FtZXJhcy5sZW5ndGgmJih5LmNhbWVyYXMubGVuZ3RoPTAsbj0hMCk7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspe2NvbnN0IG89dFtyXTtsZXQgYT1udWxsO2lmKG51bGwhPT1kKWE9ZC5nZXRWaWV3cG9ydChvKTtlbHNle2NvbnN0IHQ9Yy5nZXRWaWV3U3ViSW1hZ2UoaCxvKTtpLmJpbmRYUkZyYW1lYnVmZmVyKHUpLHZvaWQgMCE9PXQuZGVwdGhTdGVuY2lsVGV4dHVyZSYmZS5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLHQuZGVwdGhTdGVuY2lsVGV4dHVyZSwwKSxlLmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDM2MDY0LDM1NTMsdC5jb2xvclRleHR1cmUsMCksYT10LnZpZXdwb3J0fWNvbnN0IHM9X1tyXTtzLm1hdHJpeC5mcm9tQXJyYXkoby50cmFuc2Zvcm0ubWF0cml4KSxzLnByb2plY3Rpb25NYXRyaXguZnJvbUFycmF5KG8ucHJvamVjdGlvbk1hdHJpeCkscy52aWV3cG9ydC5zZXQoYS54LGEueSxhLndpZHRoLGEuaGVpZ2h0KSwwPT09ciYmeS5tYXRyaXguY29weShzLm1hdHJpeCksITA9PT1uJiZ5LmNhbWVyYXMucHVzaChzKX19Y29uc3Qgbz1yLmlucHV0U291cmNlcztmb3IobGV0IHQ9MDt0PHAubGVuZ3RoO3QrKylwW3RdLnVwZGF0ZShvW3RdLG4sYSk7QyYmQyh0LG4pfSkpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcD1mdW5jdGlvbih0KXtDPXR9LHRoaXMuZGlzcG9zZT1mdW5jdGlvbigpe319fWZ1bmN0aW9uIGo1dCh0KXtmdW5jdGlvbiBlKGUsbil7ZS5vcGFjaXR5LnZhbHVlPW4ub3BhY2l0eSxuLmNvbG9yJiZlLmRpZmZ1c2UudmFsdWUuY29weShuLmNvbG9yKSxuLmVtaXNzaXZlJiZlLmVtaXNzaXZlLnZhbHVlLmNvcHkobi5lbWlzc2l2ZSkubXVsdGlwbHlTY2FsYXIobi5lbWlzc2l2ZUludGVuc2l0eSksbi5tYXAmJihlLm1hcC52YWx1ZT1uLm1hcCksbi5hbHBoYU1hcCYmKGUuYWxwaGFNYXAudmFsdWU9bi5hbHBoYU1hcCksbi5zcGVjdWxhck1hcCYmKGUuc3BlY3VsYXJNYXAudmFsdWU9bi5zcGVjdWxhck1hcCk7Y29uc3QgaT10LmdldChuKS5lbnZNYXA7aWYoaSl7ZS5lbnZNYXAudmFsdWU9aSxlLmZsaXBFbnZNYXAudmFsdWU9aS5pc0N1YmVUZXh0dXJlJiYhMT09PWkuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPy0xOjEsZS5yZWZsZWN0aXZpdHkudmFsdWU9bi5yZWZsZWN0aXZpdHksZS5yZWZyYWN0aW9uUmF0aW8udmFsdWU9bi5yZWZyYWN0aW9uUmF0aW87Y29uc3Qgcj10LmdldChpKS5fX21heE1pcExldmVsO3ZvaWQgMCE9PXImJihlLm1heE1pcExldmVsLnZhbHVlPXIpfWxldCByLG87bi5saWdodE1hcCYmKGUubGlnaHRNYXAudmFsdWU9bi5saWdodE1hcCxlLmxpZ2h0TWFwSW50ZW5zaXR5LnZhbHVlPW4ubGlnaHRNYXBJbnRlbnNpdHkpLG4uYW9NYXAmJihlLmFvTWFwLnZhbHVlPW4uYW9NYXAsZS5hb01hcEludGVuc2l0eS52YWx1ZT1uLmFvTWFwSW50ZW5zaXR5KSxuLm1hcD9yPW4ubWFwOm4uc3BlY3VsYXJNYXA/cj1uLnNwZWN1bGFyTWFwOm4uZGlzcGxhY2VtZW50TWFwP3I9bi5kaXNwbGFjZW1lbnRNYXA6bi5ub3JtYWxNYXA/cj1uLm5vcm1hbE1hcDpuLmJ1bXBNYXA/cj1uLmJ1bXBNYXA6bi5yb3VnaG5lc3NNYXA/cj1uLnJvdWdobmVzc01hcDpuLm1ldGFsbmVzc01hcD9yPW4ubWV0YWxuZXNzTWFwOm4uYWxwaGFNYXA/cj1uLmFscGhhTWFwOm4uZW1pc3NpdmVNYXA/cj1uLmVtaXNzaXZlTWFwOm4uY2xlYXJjb2F0TWFwP3I9bi5jbGVhcmNvYXRNYXA6bi5jbGVhcmNvYXROb3JtYWxNYXA/cj1uLmNsZWFyY29hdE5vcm1hbE1hcDpuLmNsZWFyY29hdFJvdWdobmVzc01hcD9yPW4uY2xlYXJjb2F0Um91Z2huZXNzTWFwOm4uc3BlY3VsYXJJbnRlbnNpdHlNYXA/cj1uLnNwZWN1bGFySW50ZW5zaXR5TWFwOm4uc3BlY3VsYXJUaW50TWFwJiYocj1uLnNwZWN1bGFyVGludE1hcCksdm9pZCAwIT09ciYmKHIuaXNXZWJHTFJlbmRlclRhcmdldCYmKHI9ci50ZXh0dXJlKSwhMD09PXIubWF0cml4QXV0b1VwZGF0ZSYmci51cGRhdGVNYXRyaXgoKSxlLnV2VHJhbnNmb3JtLnZhbHVlLmNvcHkoci5tYXRyaXgpKSxuLmFvTWFwP289bi5hb01hcDpuLmxpZ2h0TWFwJiYobz1uLmxpZ2h0TWFwKSx2b2lkIDAhPT1vJiYoby5pc1dlYkdMUmVuZGVyVGFyZ2V0JiYobz1vLnRleHR1cmUpLCEwPT09by5tYXRyaXhBdXRvVXBkYXRlJiZvLnVwZGF0ZU1hdHJpeCgpLGUudXYyVHJhbnNmb3JtLnZhbHVlLmNvcHkoby5tYXRyaXgpKX1mdW5jdGlvbiBuKGUsbil7ZS5yb3VnaG5lc3MudmFsdWU9bi5yb3VnaG5lc3MsZS5tZXRhbG5lc3MudmFsdWU9bi5tZXRhbG5lc3Msbi5yb3VnaG5lc3NNYXAmJihlLnJvdWdobmVzc01hcC52YWx1ZT1uLnJvdWdobmVzc01hcCksbi5tZXRhbG5lc3NNYXAmJihlLm1ldGFsbmVzc01hcC52YWx1ZT1uLm1ldGFsbmVzc01hcCksbi5lbWlzc2l2ZU1hcCYmKGUuZW1pc3NpdmVNYXAudmFsdWU9bi5lbWlzc2l2ZU1hcCksbi5idW1wTWFwJiYoZS5idW1wTWFwLnZhbHVlPW4uYnVtcE1hcCxlLmJ1bXBTY2FsZS52YWx1ZT1uLmJ1bXBTY2FsZSwxPT09bi5zaWRlJiYoZS5idW1wU2NhbGUudmFsdWUqPS0xKSksbi5ub3JtYWxNYXAmJihlLm5vcm1hbE1hcC52YWx1ZT1uLm5vcm1hbE1hcCxlLm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkobi5ub3JtYWxTY2FsZSksMT09PW4uc2lkZSYmZS5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksbi5kaXNwbGFjZW1lbnRNYXAmJihlLmRpc3BsYWNlbWVudE1hcC52YWx1ZT1uLmRpc3BsYWNlbWVudE1hcCxlLmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPW4uZGlzcGxhY2VtZW50U2NhbGUsZS5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPW4uZGlzcGxhY2VtZW50QmlhcyksdC5nZXQobikuZW52TWFwJiYoZS5lbnZNYXBJbnRlbnNpdHkudmFsdWU9bi5lbnZNYXBJbnRlbnNpdHkpfXJldHVybntyZWZyZXNoRm9nVW5pZm9ybXM6ZnVuY3Rpb24gaSh0LGUpe3QuZm9nQ29sb3IudmFsdWUuY29weShlLmNvbG9yKSxlLmlzRm9nPyh0LmZvZ05lYXIudmFsdWU9ZS5uZWFyLHQuZm9nRmFyLnZhbHVlPWUuZmFyKTplLmlzRm9nRXhwMiYmKHQuZm9nRGVuc2l0eS52YWx1ZT1lLmRlbnNpdHkpfSxyZWZyZXNoTWF0ZXJpYWxVbmlmb3JtczpmdW5jdGlvbiByKHQsaSxvLGEscyl7aS5pc01lc2hCYXNpY01hdGVyaWFsP2UodCxpKTppLmlzTWVzaExhbWJlcnRNYXRlcmlhbD8oZSh0LGkpLChmdW5jdGlvbiBsKHQsZSl7ZS5lbWlzc2l2ZU1hcCYmKHQuZW1pc3NpdmVNYXAudmFsdWU9ZS5lbWlzc2l2ZU1hcCl9KSh0LGkpKTppLmlzTWVzaFRvb25NYXRlcmlhbD8oZSh0LGkpLChmdW5jdGlvbiBjKHQsZSl7ZS5ncmFkaWVudE1hcCYmKHQuZ3JhZGllbnRNYXAudmFsdWU9ZS5ncmFkaWVudE1hcCksZS5lbWlzc2l2ZU1hcCYmKHQuZW1pc3NpdmVNYXAudmFsdWU9ZS5lbWlzc2l2ZU1hcCksZS5idW1wTWFwJiYodC5idW1wTWFwLnZhbHVlPWUuYnVtcE1hcCx0LmJ1bXBTY2FsZS52YWx1ZT1lLmJ1bXBTY2FsZSwxPT09ZS5zaWRlJiYodC5idW1wU2NhbGUudmFsdWUqPS0xKSksZS5ub3JtYWxNYXAmJih0Lm5vcm1hbE1hcC52YWx1ZT1lLm5vcm1hbE1hcCx0Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5ub3JtYWxTY2FsZSksMT09PWUuc2lkZSYmdC5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LGkpKTppLmlzTWVzaFBob25nTWF0ZXJpYWw/KGUodCxpKSwoZnVuY3Rpb24gdSh0LGUpe3Quc3BlY3VsYXIudmFsdWUuY29weShlLnNwZWN1bGFyKSx0LnNoaW5pbmVzcy52YWx1ZT1NYXRoLm1heChlLnNoaW5pbmVzcywxZS00KSxlLmVtaXNzaXZlTWFwJiYodC5lbWlzc2l2ZU1hcC52YWx1ZT1lLmVtaXNzaXZlTWFwKSxlLmJ1bXBNYXAmJih0LmJ1bXBNYXAudmFsdWU9ZS5idW1wTWFwLHQuYnVtcFNjYWxlLnZhbHVlPWUuYnVtcFNjYWxlLDE9PT1lLnNpZGUmJih0LmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSxlLm5vcm1hbE1hcCYmKHQubm9ybWFsTWFwLnZhbHVlPWUubm9ybWFsTWFwLHQubm9ybWFsU2NhbGUudmFsdWUuY29weShlLm5vcm1hbFNjYWxlKSwxPT09ZS5zaWRlJiZ0Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSxlLmRpc3BsYWNlbWVudE1hcCYmKHQuZGlzcGxhY2VtZW50TWFwLnZhbHVlPWUuZGlzcGxhY2VtZW50TWFwLHQuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9ZS5kaXNwbGFjZW1lbnRTY2FsZSx0LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9ZS5kaXNwbGFjZW1lbnRCaWFzKX0pKHQsaSkpOmkuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD8oZSh0LGkpLGkuaXNNZXNoUGh5c2ljYWxNYXRlcmlhbD8oZnVuY3Rpb24gaCh0LGUsaSl7bih0LGUpLHQucmVmbGVjdGl2aXR5LnZhbHVlPWUucmVmbGVjdGl2aXR5LHQuY2xlYXJjb2F0LnZhbHVlPWUuY2xlYXJjb2F0LHQuY2xlYXJjb2F0Um91Z2huZXNzLnZhbHVlPWUuY2xlYXJjb2F0Um91Z2huZXNzLGUuc2hlZW4mJnQuc2hlZW4udmFsdWUuY29weShlLnNoZWVuKSxlLmNsZWFyY29hdE1hcCYmKHQuY2xlYXJjb2F0TWFwLnZhbHVlPWUuY2xlYXJjb2F0TWFwKSxlLmNsZWFyY29hdFJvdWdobmVzc01hcCYmKHQuY2xlYXJjb2F0Um91Z2huZXNzTWFwLnZhbHVlPWUuY2xlYXJjb2F0Um91Z2huZXNzTWFwKSxlLmNsZWFyY29hdE5vcm1hbE1hcCYmKHQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUudmFsdWUuY29weShlLmNsZWFyY29hdE5vcm1hbFNjYWxlKSx0LmNsZWFyY29hdE5vcm1hbE1hcC52YWx1ZT1lLmNsZWFyY29hdE5vcm1hbE1hcCwxPT09ZS5zaWRlJiZ0LmNsZWFyY29hdE5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSx0LnRyYW5zbWlzc2lvbi52YWx1ZT1lLnRyYW5zbWlzc2lvbixlLnRyYW5zbWlzc2lvbk1hcCYmKHQudHJhbnNtaXNzaW9uTWFwLnZhbHVlPWUudHJhbnNtaXNzaW9uTWFwKSxlLnRyYW5zbWlzc2lvbj4wJiYodC50cmFuc21pc3Npb25TYW1wbGVyTWFwLnZhbHVlPWkudGV4dHVyZSx0LnRyYW5zbWlzc2lvblNhbXBsZXJTaXplLnZhbHVlLnNldChpLndpZHRoLGkuaGVpZ2h0KSksdC50aGlja25lc3MudmFsdWU9ZS50aGlja25lc3MsZS50aGlja25lc3NNYXAmJih0LnRoaWNrbmVzc01hcC52YWx1ZT1lLnRoaWNrbmVzc01hcCksdC5hdHRlbnVhdGlvbkRpc3RhbmNlLnZhbHVlPWUuYXR0ZW51YXRpb25EaXN0YW5jZSx0LmF0dGVudWF0aW9uVGludC52YWx1ZS5jb3B5KGUuYXR0ZW51YXRpb25UaW50KSx0LnNwZWN1bGFySW50ZW5zaXR5LnZhbHVlPWUuc3BlY3VsYXJJbnRlbnNpdHksdC5zcGVjdWxhclRpbnQudmFsdWUuY29weShlLnNwZWN1bGFyVGludCksZS5zcGVjdWxhckludGVuc2l0eU1hcCYmKHQuc3BlY3VsYXJJbnRlbnNpdHlNYXAudmFsdWU9ZS5zcGVjdWxhckludGVuc2l0eU1hcCksZS5zcGVjdWxhclRpbnRNYXAmJih0LnNwZWN1bGFyVGludE1hcC52YWx1ZT1lLnNwZWN1bGFyVGludE1hcCl9KSh0LGkscyk6bih0LGkpKTppLmlzTWVzaE1hdGNhcE1hdGVyaWFsPyhlKHQsaSksKGZ1bmN0aW9uIGQodCxlKXtlLm1hdGNhcCYmKHQubWF0Y2FwLnZhbHVlPWUubWF0Y2FwKSxlLmJ1bXBNYXAmJih0LmJ1bXBNYXAudmFsdWU9ZS5idW1wTWFwLHQuYnVtcFNjYWxlLnZhbHVlPWUuYnVtcFNjYWxlLDE9PT1lLnNpZGUmJih0LmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSxlLm5vcm1hbE1hcCYmKHQubm9ybWFsTWFwLnZhbHVlPWUubm9ybWFsTWFwLHQubm9ybWFsU2NhbGUudmFsdWUuY29weShlLm5vcm1hbFNjYWxlKSwxPT09ZS5zaWRlJiZ0Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSxlLmRpc3BsYWNlbWVudE1hcCYmKHQuZGlzcGxhY2VtZW50TWFwLnZhbHVlPWUuZGlzcGxhY2VtZW50TWFwLHQuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9ZS5kaXNwbGFjZW1lbnRTY2FsZSx0LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9ZS5kaXNwbGFjZW1lbnRCaWFzKX0pKHQsaSkpOmkuaXNNZXNoRGVwdGhNYXRlcmlhbD8oZSh0LGkpLChmdW5jdGlvbiBwKHQsZSl7ZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LGkpKTppLmlzTWVzaERpc3RhbmNlTWF0ZXJpYWw/KGUodCxpKSwoZnVuY3Rpb24gZih0LGUpe2UuZGlzcGxhY2VtZW50TWFwJiYodC5kaXNwbGFjZW1lbnRNYXAudmFsdWU9ZS5kaXNwbGFjZW1lbnRNYXAsdC5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1lLmRpc3BsYWNlbWVudFNjYWxlLHQuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1lLmRpc3BsYWNlbWVudEJpYXMpLHQucmVmZXJlbmNlUG9zaXRpb24udmFsdWUuY29weShlLnJlZmVyZW5jZVBvc2l0aW9uKSx0Lm5lYXJEaXN0YW5jZS52YWx1ZT1lLm5lYXJEaXN0YW5jZSx0LmZhckRpc3RhbmNlLnZhbHVlPWUuZmFyRGlzdGFuY2V9KSh0LGkpKTppLmlzTWVzaE5vcm1hbE1hdGVyaWFsPyhlKHQsaSksKGZ1bmN0aW9uIG0odCxlKXtlLmJ1bXBNYXAmJih0LmJ1bXBNYXAudmFsdWU9ZS5idW1wTWFwLHQuYnVtcFNjYWxlLnZhbHVlPWUuYnVtcFNjYWxlLDE9PT1lLnNpZGUmJih0LmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSxlLm5vcm1hbE1hcCYmKHQubm9ybWFsTWFwLnZhbHVlPWUubm9ybWFsTWFwLHQubm9ybWFsU2NhbGUudmFsdWUuY29weShlLm5vcm1hbFNjYWxlKSwxPT09ZS5zaWRlJiZ0Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSxlLmRpc3BsYWNlbWVudE1hcCYmKHQuZGlzcGxhY2VtZW50TWFwLnZhbHVlPWUuZGlzcGxhY2VtZW50TWFwLHQuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9ZS5kaXNwbGFjZW1lbnRTY2FsZSx0LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9ZS5kaXNwbGFjZW1lbnRCaWFzKX0pKHQsaSkpOmkuaXNMaW5lQmFzaWNNYXRlcmlhbD8oKGZ1bmN0aW9uIGcodCxlKXt0LmRpZmZ1c2UudmFsdWUuY29weShlLmNvbG9yKSx0Lm9wYWNpdHkudmFsdWU9ZS5vcGFjaXR5fSkodCxpKSxpLmlzTGluZURhc2hlZE1hdGVyaWFsJiYoZnVuY3Rpb24gXyh0LGUpe3QuZGFzaFNpemUudmFsdWU9ZS5kYXNoU2l6ZSx0LnRvdGFsU2l6ZS52YWx1ZT1lLmRhc2hTaXplK2UuZ2FwU2l6ZSx0LnNjYWxlLnZhbHVlPWUuc2NhbGV9KSh0LGkpKTppLmlzUG9pbnRzTWF0ZXJpYWw/KGZ1bmN0aW9uIHkodCxlLG4saSl7bGV0IHI7dC5kaWZmdXNlLnZhbHVlLmNvcHkoZS5jb2xvciksdC5vcGFjaXR5LnZhbHVlPWUub3BhY2l0eSx0LnNpemUudmFsdWU9ZS5zaXplKm4sdC5zY2FsZS52YWx1ZT0uNSppLGUubWFwJiYodC5tYXAudmFsdWU9ZS5tYXApLGUuYWxwaGFNYXAmJih0LmFscGhhTWFwLnZhbHVlPWUuYWxwaGFNYXApLGUubWFwP3I9ZS5tYXA6ZS5hbHBoYU1hcCYmKHI9ZS5hbHBoYU1hcCksdm9pZCAwIT09ciYmKCEwPT09ci5tYXRyaXhBdXRvVXBkYXRlJiZyLnVwZGF0ZU1hdHJpeCgpLHQudXZUcmFuc2Zvcm0udmFsdWUuY29weShyLm1hdHJpeCkpfSkodCxpLG8sYSk6aS5pc1Nwcml0ZU1hdGVyaWFsPyhmdW5jdGlvbiB2KHQsZSl7bGV0IG47dC5kaWZmdXNlLnZhbHVlLmNvcHkoZS5jb2xvciksdC5vcGFjaXR5LnZhbHVlPWUub3BhY2l0eSx0LnJvdGF0aW9uLnZhbHVlPWUucm90YXRpb24sZS5tYXAmJih0Lm1hcC52YWx1ZT1lLm1hcCksZS5hbHBoYU1hcCYmKHQuYWxwaGFNYXAudmFsdWU9ZS5hbHBoYU1hcCksZS5tYXA/bj1lLm1hcDplLmFscGhhTWFwJiYobj1lLmFscGhhTWFwKSx2b2lkIDAhPT1uJiYoITA9PT1uLm1hdHJpeEF1dG9VcGRhdGUmJm4udXBkYXRlTWF0cml4KCksdC51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KG4ubWF0cml4KSl9KSh0LGkpOmkuaXNTaGFkb3dNYXRlcmlhbD8odC5jb2xvci52YWx1ZS5jb3B5KGkuY29sb3IpLHQub3BhY2l0eS52YWx1ZT1pLm9wYWNpdHkpOmkuaXNTaGFkZXJNYXRlcmlhbCYmKGkudW5pZm9ybXNOZWVkVXBkYXRlPSExKX19fWZ1bmN0aW9uIEc1dCh0PXt9KXtjb25zdCBlPXZvaWQgMCE9PXQuY2FudmFzP3QuY2FudmFzOihmdW5jdGlvbiBuKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJjYW52YXMiKTtyZXR1cm4gdC5zdHlsZS5kaXNwbGF5PSJibG9jayIsdH0pKCksaT12b2lkIDAhPT10LmNvbnRleHQ/dC5jb250ZXh0Om51bGwscj12b2lkIDAhPT10LmFscGhhJiZ0LmFscGhhLG89dm9pZCAwPT09dC5kZXB0aHx8dC5kZXB0aCxhPXZvaWQgMD09PXQuc3RlbmNpbHx8dC5zdGVuY2lsLHM9dm9pZCAwIT09dC5hbnRpYWxpYXMmJnQuYW50aWFsaWFzLGw9dm9pZCAwPT09dC5wcmVtdWx0aXBsaWVkQWxwaGF8fHQucHJlbXVsdGlwbGllZEFscGhhLGM9dm9pZCAwIT09dC5wcmVzZXJ2ZURyYXdpbmdCdWZmZXImJnQucHJlc2VydmVEcmF3aW5nQnVmZmVyLHU9dm9pZCAwIT09dC5wb3dlclByZWZlcmVuY2U/dC5wb3dlclByZWZlcmVuY2U6ImRlZmF1bHQiLGg9dm9pZCAwIT09dC5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0JiZ0LmZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ7bGV0IGQ9bnVsbCxwPW51bGw7Y29uc3QgZj1bXSxtPVtdO3RoaXMuZG9tRWxlbWVudD1lLHRoaXMuZGVidWc9e2NoZWNrU2hhZGVyRXJyb3JzOiEwfSx0aGlzLmF1dG9DbGVhcj0hMCx0aGlzLmF1dG9DbGVhckNvbG9yPSEwLHRoaXMuYXV0b0NsZWFyRGVwdGg9ITAsdGhpcy5hdXRvQ2xlYXJTdGVuY2lsPSEwLHRoaXMuc29ydE9iamVjdHM9ITAsdGhpcy5jbGlwcGluZ1BsYW5lcz1bXSx0aGlzLmxvY2FsQ2xpcHBpbmdFbmFibGVkPSExLHRoaXMuZ2FtbWFGYWN0b3I9Mix0aGlzLm91dHB1dEVuY29kaW5nPU5adCx0aGlzLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzPSExLHRoaXMudG9uZU1hcHBpbmc9MCx0aGlzLnRvbmVNYXBwaW5nRXhwb3N1cmU9MTtjb25zdCBnPXRoaXM7bGV0IF89ITEseT0wLHY9MCxiPW51bGwseD0tMSx3PW51bGw7Y29uc3QgUz1uZXcgd0p0LE09bmV3IHdKdDtsZXQgRT1udWxsLFQ9ZS53aWR0aCxDPWUuaGVpZ2h0LEE9MSxrPW51bGwsTD1udWxsO2NvbnN0IFA9bmV3IHdKdCgwLDAsVCxDKSxOPW5ldyB3SnQoMCwwLFQsQyk7bGV0IEk9ITE7Y29uc3QgUj1bXSxPPW5ldyBpMHQ7bGV0IHo9ITEsRD0hMSxCPW51bGw7Y29uc3QgSD1uZXcgclF0LEY9bmV3IENKdCxWPXtiYWNrZ3JvdW5kOm51bGwsZm9nOm51bGwsZW52aXJvbm1lbnQ6bnVsbCxvdmVycmlkZU1hdGVyaWFsOm51bGwsaXNTY2VuZTohMH07ZnVuY3Rpb24gVSgpe3JldHVybiBudWxsPT09Yj9BOjF9bGV0IGosRyxXLHEsWSxYLCQsSyxaLEosUSx0dCxldCxudCxpdCxydCxvdCxhdCxzdCxsdCxjdCx1dCxodCxkdD1pO2Z1bmN0aW9uIHB0KHQsbil7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspe2NvbnN0IHI9ZS5nZXRDb250ZXh0KHRbaV0sbik7aWYobnVsbCE9PXIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9dHJ5e2NvbnN0IHQ9e2FscGhhOnIsZGVwdGg6byxzdGVuY2lsOmEsYW50aWFsaWFzOnMscHJlbXVsdGlwbGllZEFscGhhOmwscHJlc2VydmVEcmF3aW5nQnVmZmVyOmMscG93ZXJQcmVmZXJlbmNlOnUsZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdDpofTtpZihlLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLGd0LCExKSxlLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIixfdCwhMSksbnVsbD09PWR0KXtjb25zdCBlPVsid2ViZ2wyIiwid2ViZ2wiLCJleHBlcmltZW50YWwtd2ViZ2wiXTtpZighMD09PWcuaXNXZWJHTDFSZW5kZXJlciYmZS5zaGlmdCgpLGR0PXB0KGUsdCksbnVsbD09PWR0KXRocm93IHB0KGUpP25ldyBFcnJvcigiRXJyb3IgY3JlYXRpbmcgV2ViR0wgY29udGV4dCB3aXRoIHlvdXIgc2VsZWN0ZWQgYXR0cmlidXRlcy4iKTpuZXcgRXJyb3IoIkVycm9yIGNyZWF0aW5nIFdlYkdMIGNvbnRleHQuIil9dm9pZCAwPT09ZHQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0JiYoZHQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJue3JhbmdlTWluOjEscmFuZ2VNYXg6MSxwcmVjaXNpb246MX19KX1jYXRjaCh0KXt0aHJvdyBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAiK3QubWVzc2FnZSksdH1mdW5jdGlvbiBmdCgpe2o9bmV3IFUwdChkdCksRz1uZXcgcDB0KGR0LGosdCksai5pbml0KEcpLHV0PW5ldyBENXQoZHQsaixHKSxXPW5ldyBPNXQoZHQsaixHKSxSWzBdPTEwMjkscT1uZXcgVzB0KGR0KSxZPW5ldyB4NXQsWD1uZXcgejV0KGR0LGosVyxZLEcsdXQscSksJD1uZXcgbTB0KGcpLEs9bmV3IFYwdChnKSxaPW5ldyBvMHQoZHQsRyksaHQ9bmV3IGgwdChkdCxqLFosRyksSj1uZXcgajB0KGR0LFoscSxodCksUT1uZXcgJDB0KGR0LEosWixxKSxzdD1uZXcgWDB0KGR0KSxydD1uZXcgZjB0KFkpLHR0PW5ldyBiNXQoZywkLEssaixHLGh0LHJ0KSxldD1uZXcgajV0KFkpLG50PW5ldyBFNXQoWSksaXQ9bmV3IFA1dChqLEcpLGF0PW5ldyB1MHQoZywkLFcsUSxsKSxvdD1uZXcgUjV0KGcsUSxHKSxsdD1uZXcgZDB0KGR0LGoscSxHKSxjdD1uZXcgRzB0KGR0LGoscSxHKSxxLnByb2dyYW1zPXR0LnByb2dyYW1zLGcuY2FwYWJpbGl0aWVzPUcsZy5leHRlbnNpb25zPWosZy5wcm9wZXJ0aWVzPVksZy5yZW5kZXJMaXN0cz1udCxnLnNoYWRvd01hcD1vdCxnLnN0YXRlPVcsZy5pbmZvPXF9ZnQoKTtjb25zdCBtdD1uZXcgVTV0KGcsZHQpO2Z1bmN0aW9uIGd0KHQpe3QucHJldmVudERlZmF1bHQoKSxjb25zb2xlLmxvZygiVEhSRUUuV2ViR0xSZW5kZXJlcjogQ29udGV4dCBMb3N0LiIpLF89ITB9ZnVuY3Rpb24gX3QoKXtjb25zb2xlLmxvZygiVEhSRUUuV2ViR0xSZW5kZXJlcjogQ29udGV4dCBSZXN0b3JlZC4iKSxfPSExO2NvbnN0IHQ9cS5hdXRvUmVzZXQsZT1vdC5lbmFibGVkLG49b3QuYXV0b1VwZGF0ZSxpPW90Lm5lZWRzVXBkYXRlLHI9b3QudHlwZTtmdCgpLHEuYXV0b1Jlc2V0PXQsb3QuZW5hYmxlZD1lLG90LmF1dG9VcGRhdGU9bixvdC5uZWVkc1VwZGF0ZT1pLG90LnR5cGU9cn1mdW5jdGlvbiB5dCh0KXtjb25zdCBlPXQudGFyZ2V0O2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIseXQpLChmdW5jdGlvbiBuKHQpeyhmdW5jdGlvbiBlKHQpe2NvbnN0IGU9WS5nZXQodCkucHJvZ3JhbXM7dm9pZCAwIT09ZSYmZS5mb3JFYWNoKChmdW5jdGlvbih0KXt0dC5yZWxlYXNlUHJvZ3JhbSh0KX0pKX0pKHQpLFkucmVtb3ZlKHQpfSkoZSl9dGhpcy54cj1tdCx0aGlzLmdldENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gZHR9LHRoaXMuZ2V0Q29udGV4dEF0dHJpYnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZHQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKX0sdGhpcy5mb3JjZUNvbnRleHRMb3NzPWZ1bmN0aW9uKCl7Y29uc3QgdD1qLmdldCgiV0VCR0xfbG9zZV9jb250ZXh0Iik7dCYmdC5sb3NlQ29udGV4dCgpfSx0aGlzLmZvcmNlQ29udGV4dFJlc3RvcmU9ZnVuY3Rpb24oKXtjb25zdCB0PWouZ2V0KCJXRUJHTF9sb3NlX2NvbnRleHQiKTt0JiZ0LnJlc3RvcmVDb250ZXh0KCl9LHRoaXMuZ2V0UGl4ZWxSYXRpbz1mdW5jdGlvbigpe3JldHVybiBBfSx0aGlzLnNldFBpeGVsUmF0aW89ZnVuY3Rpb24odCl7dm9pZCAwIT09dCYmKEE9dCx0aGlzLnNldFNpemUoVCxDLCExKSl9LHRoaXMuZ2V0U2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5zZXQoVCxDKX0sdGhpcy5zZXRTaXplPWZ1bmN0aW9uKHQsbixpKXttdC5pc1ByZXNlbnRpbmc/Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBDYW4ndCBjaGFuZ2Ugc2l6ZSB3aGlsZSBWUiBkZXZpY2UgaXMgcHJlc2VudGluZy4iKTooVD10LEM9bixlLndpZHRoPU1hdGguZmxvb3IodCpBKSxlLmhlaWdodD1NYXRoLmZsb29yKG4qQSksITEhPT1pJiYoZS5zdHlsZS53aWR0aD10KyJweCIsZS5zdHlsZS5oZWlnaHQ9bisicHgiKSx0aGlzLnNldFZpZXdwb3J0KDAsMCx0LG4pKX0sdGhpcy5nZXREcmF3aW5nQnVmZmVyU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5zZXQoVCpBLEMqQSkuZmxvb3IoKX0sdGhpcy5zZXREcmF3aW5nQnVmZmVyU2l6ZT1mdW5jdGlvbih0LG4saSl7VD10LEM9bixBPWksZS53aWR0aD1NYXRoLmZsb29yKHQqaSksZS5oZWlnaHQ9TWF0aC5mbG9vcihuKmkpLHRoaXMuc2V0Vmlld3BvcnQoMCwwLHQsbil9LHRoaXMuZ2V0Q3VycmVudFZpZXdwb3J0PWZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoUyl9LHRoaXMuZ2V0Vmlld3BvcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weShQKX0sdGhpcy5zZXRWaWV3cG9ydD1mdW5jdGlvbih0LGUsbixpKXt0LmlzVmVjdG9yND9QLnNldCh0LngsdC55LHQueix0LncpOlAuc2V0KHQsZSxuLGkpLFcudmlld3BvcnQoUy5jb3B5KFApLm11bHRpcGx5U2NhbGFyKEEpLmZsb29yKCkpfSx0aGlzLmdldFNjaXNzb3I9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weShOKX0sdGhpcy5zZXRTY2lzc29yPWZ1bmN0aW9uKHQsZSxuLGkpe3QuaXNWZWN0b3I0P04uc2V0KHQueCx0LnksdC56LHQudyk6Ti5zZXQodCxlLG4saSksVy5zY2lzc29yKE0uY29weShOKS5tdWx0aXBseVNjYWxhcihBKS5mbG9vcigpKX0sdGhpcy5nZXRTY2lzc29yVGVzdD1mdW5jdGlvbigpe3JldHVybiBJfSx0aGlzLnNldFNjaXNzb3JUZXN0PWZ1bmN0aW9uKHQpe1cuc2V0U2Npc3NvclRlc3QoST10KX0sdGhpcy5zZXRPcGFxdWVTb3J0PWZ1bmN0aW9uKHQpe2s9dH0sdGhpcy5zZXRUcmFuc3BhcmVudFNvcnQ9ZnVuY3Rpb24odCl7TD10fSx0aGlzLmdldENsZWFyQ29sb3I9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weShhdC5nZXRDbGVhckNvbG9yKCkpfSx0aGlzLnNldENsZWFyQ29sb3I9ZnVuY3Rpb24oKXthdC5zZXRDbGVhckNvbG9yLmFwcGx5KGF0LGFyZ3VtZW50cyl9LHRoaXMuZ2V0Q2xlYXJBbHBoYT1mdW5jdGlvbigpe3JldHVybiBhdC5nZXRDbGVhckFscGhhKCl9LHRoaXMuc2V0Q2xlYXJBbHBoYT1mdW5jdGlvbigpe2F0LnNldENsZWFyQWxwaGEuYXBwbHkoYXQsYXJndW1lbnRzKX0sdGhpcy5jbGVhcj1mdW5jdGlvbih0LGUsbil7bGV0IGk9MDsodm9pZCAwPT09dHx8dCkmJihpfD0xNjM4NCksKHZvaWQgMD09PWV8fGUpJiYoaXw9MjU2KSwodm9pZCAwPT09bnx8bikmJihpfD0xMDI0KSxkdC5jbGVhcihpKX0sdGhpcy5jbGVhckNvbG9yPWZ1bmN0aW9uKCl7dGhpcy5jbGVhcighMCwhMSwhMSl9LHRoaXMuY2xlYXJEZXB0aD1mdW5jdGlvbigpe3RoaXMuY2xlYXIoITEsITAsITEpfSx0aGlzLmNsZWFyU3RlbmNpbD1mdW5jdGlvbigpe3RoaXMuY2xlYXIoITEsITEsITApfSx0aGlzLmRpc3Bvc2U9ZnVuY3Rpb24oKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLGd0LCExKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIixfdCwhMSksbnQuZGlzcG9zZSgpLGl0LmRpc3Bvc2UoKSxZLmRpc3Bvc2UoKSwkLmRpc3Bvc2UoKSxLLmRpc3Bvc2UoKSxRLmRpc3Bvc2UoKSxodC5kaXNwb3NlKCksbXQuZGlzcG9zZSgpLG10LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlc3Npb25zdGFydCIsYnQpLG10LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlc3Npb25lbmQiLHh0KSxCJiYoQi5kaXNwb3NlKCksQj1udWxsKSx3dC5zdG9wKCl9LHRoaXMucmVuZGVyQnVmZmVySW1tZWRpYXRlPWZ1bmN0aW9uKHQsZSl7aHQuaW5pdEF0dHJpYnV0ZXMoKTtjb25zdCBuPVkuZ2V0KHQpO3QuaGFzUG9zaXRpb25zJiYhbi5wb3NpdGlvbiYmKG4ucG9zaXRpb249ZHQuY3JlYXRlQnVmZmVyKCkpLHQuaGFzTm9ybWFscyYmIW4ubm9ybWFsJiYobi5ub3JtYWw9ZHQuY3JlYXRlQnVmZmVyKCkpLHQuaGFzVXZzJiYhbi51diYmKG4udXY9ZHQuY3JlYXRlQnVmZmVyKCkpLHQuaGFzQ29sb3JzJiYhbi5jb2xvciYmKG4uY29sb3I9ZHQuY3JlYXRlQnVmZmVyKCkpO2NvbnN0IGk9ZS5nZXRBdHRyaWJ1dGVzKCk7dC5oYXNQb3NpdGlvbnMmJihkdC5iaW5kQnVmZmVyKDM0OTYyLG4ucG9zaXRpb24pLGR0LmJ1ZmZlckRhdGEoMzQ5NjIsdC5wb3NpdGlvbkFycmF5LDM1MDQ4KSxodC5lbmFibGVBdHRyaWJ1dGUoaS5wb3NpdGlvbiksZHQudmVydGV4QXR0cmliUG9pbnRlcihpLnBvc2l0aW9uLDMsNTEyNiwhMSwwLDApKSx0Lmhhc05vcm1hbHMmJihkdC5iaW5kQnVmZmVyKDM0OTYyLG4ubm9ybWFsKSxkdC5idWZmZXJEYXRhKDM0OTYyLHQubm9ybWFsQXJyYXksMzUwNDgpLGh0LmVuYWJsZUF0dHJpYnV0ZShpLm5vcm1hbCksZHQudmVydGV4QXR0cmliUG9pbnRlcihpLm5vcm1hbCwzLDUxMjYsITEsMCwwKSksdC5oYXNVdnMmJihkdC5iaW5kQnVmZmVyKDM0OTYyLG4udXYpLGR0LmJ1ZmZlckRhdGEoMzQ5NjIsdC51dkFycmF5LDM1MDQ4KSxodC5lbmFibGVBdHRyaWJ1dGUoaS51diksZHQudmVydGV4QXR0cmliUG9pbnRlcihpLnV2LDIsNTEyNiwhMSwwLDApKSx0Lmhhc0NvbG9ycyYmKGR0LmJpbmRCdWZmZXIoMzQ5NjIsbi5jb2xvciksZHQuYnVmZmVyRGF0YSgzNDk2Mix0LmNvbG9yQXJyYXksMzUwNDgpLGh0LmVuYWJsZUF0dHJpYnV0ZShpLmNvbG9yKSxkdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGkuY29sb3IsMyw1MTI2LCExLDAsMCkpLGh0LmRpc2FibGVVbnVzZWRBdHRyaWJ1dGVzKCksZHQuZHJhd0FycmF5cyg0LDAsdC5jb3VudCksdC5jb3VudD0wfSx0aGlzLnJlbmRlckJ1ZmZlckRpcmVjdD1mdW5jdGlvbih0LGUsbixpLHIsbyl7bnVsbD09PWUmJihlPVYpO2NvbnN0IGE9ci5pc01lc2gmJnIubWF0cml4V29ybGQuZGV0ZXJtaW5hbnQoKTwwLHM9QXQodCxlLGkscik7Vy5zZXRNYXRlcmlhbChpLGEpO2xldCBsPW4uaW5kZXg7Y29uc3QgYz1uLmF0dHJpYnV0ZXMucG9zaXRpb247aWYobnVsbD09PWwpe2lmKHZvaWQgMD09PWN8fDA9PT1jLmNvdW50KXJldHVybn1lbHNlIGlmKDA9PT1sLmNvdW50KXJldHVybjtsZXQgdSxoPTE7ITA9PT1pLndpcmVmcmFtZSYmKGw9Si5nZXRXaXJlZnJhbWVBdHRyaWJ1dGUobiksaD0yKSx2b2lkIDA9PT1uLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbiYmdm9pZCAwPT09bi5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsfHxzdC51cGRhdGUocixuLGkscyksaHQuc2V0dXAocixpLHMsbixsKTtsZXQgZD1sdDtudWxsIT09bCYmKHU9Wi5nZXQobCksZD1jdCxkLnNldEluZGV4KHUpKTtjb25zdCBwPW51bGwhPT1sP2wuY291bnQ6Yy5jb3VudCxmPW4uZHJhd1JhbmdlLnN0YXJ0KmgsbT1uLmRyYXdSYW5nZS5jb3VudCpoLGc9bnVsbCE9PW8/by5zdGFydCpoOjAsXz1udWxsIT09bz9vLmNvdW50Kmg6MS8wLHk9TWF0aC5tYXgoZixnKSx2PU1hdGgubWluKHAsZittLGcrXyktMSxiPU1hdGgubWF4KDAsdi15KzEpO2lmKDAhPT1iKXtpZihyLmlzTWVzaCkhMD09PWkud2lyZWZyYW1lPyhXLnNldExpbmVXaWR0aChpLndpcmVmcmFtZUxpbmV3aWR0aCpVKCkpLGQuc2V0TW9kZSgxKSk6ZC5zZXRNb2RlKDQpO2Vsc2UgaWYoci5pc0xpbmUpe2xldCB0PWkubGluZXdpZHRoO3ZvaWQgMD09PXQmJih0PTEpLFcuc2V0TGluZVdpZHRoKHQqVSgpKSxkLnNldE1vZGUoci5pc0xpbmVTZWdtZW50cz8xOnIuaXNMaW5lTG9vcD8yOjMpfWVsc2Ugci5pc1BvaW50cz9kLnNldE1vZGUoMCk6ci5pc1Nwcml0ZSYmZC5zZXRNb2RlKDQpO2lmKHIuaXNJbnN0YW5jZWRNZXNoKWQucmVuZGVySW5zdGFuY2VzKHksYixyLmNvdW50KTtlbHNlIGlmKG4uaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSl7Y29uc3QgdD1NYXRoLm1pbihuLmluc3RhbmNlQ291bnQsbi5fbWF4SW5zdGFuY2VDb3VudCk7ZC5yZW5kZXJJbnN0YW5jZXMoeSxiLHQpfWVsc2UgZC5yZW5kZXIoeSxiKX19LHRoaXMuY29tcGlsZT1mdW5jdGlvbih0LGUpe3A9aXQuZ2V0KHQpLHAuaW5pdCgpLG0ucHVzaChwKSx0LnRyYXZlcnNlVmlzaWJsZSgoZnVuY3Rpb24odCl7dC5pc0xpZ2h0JiZ0LmxheWVycy50ZXN0KGUubGF5ZXJzKSYmKHAucHVzaExpZ2h0KHQpLHQuY2FzdFNoYWRvdyYmcC5wdXNoU2hhZG93KHQpKX0pKSxwLnNldHVwTGlnaHRzKCksdC50cmF2ZXJzZSgoZnVuY3Rpb24oZSl7Y29uc3Qgbj1lLm1hdGVyaWFsO2lmKG4paWYoQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IGk9MDtpPG4ubGVuZ3RoO2krKylUdChuW2ldLHQsZSk7ZWxzZSBUdChuLHQsZSl9KSksbS5wb3AoKSxwPW51bGx9O2xldCB2dD1udWxsO2Z1bmN0aW9uIGJ0KCl7d3Quc3RvcCgpfWZ1bmN0aW9uIHh0KCl7d3Quc3RhcnQoKX1jb25zdCB3dD1uZXcgcjB0O2Z1bmN0aW9uIFN0KHQsZSxuLGkpe2lmKCExPT09dC52aXNpYmxlKXJldHVybjtpZih0LmxheWVycy50ZXN0KGUubGF5ZXJzKSlpZih0LmlzR3JvdXApbj10LnJlbmRlck9yZGVyO2Vsc2UgaWYodC5pc0xPRCkhMD09PXQuYXV0b1VwZGF0ZSYmdC51cGRhdGUoZSk7ZWxzZSBpZih0LmlzTGlnaHQpcC5wdXNoTGlnaHQodCksdC5jYXN0U2hhZG93JiZwLnB1c2hTaGFkb3codCk7ZWxzZSBpZih0LmlzU3ByaXRlKXtpZighdC5mcnVzdHVtQ3VsbGVkfHxPLmludGVyc2VjdHNTcHJpdGUodCkpe2kmJkYuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLmFwcGx5TWF0cml4NChIKTtjb25zdCBlPVEudXBkYXRlKHQpLHI9dC5tYXRlcmlhbDtyLnZpc2libGUmJmQucHVzaCh0LGUscixuLEYueixudWxsKX19ZWxzZSBpZih0LmlzSW1tZWRpYXRlUmVuZGVyT2JqZWN0KWkmJkYuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLmFwcGx5TWF0cml4NChIKSxkLnB1c2godCxudWxsLHQubWF0ZXJpYWwsbixGLnosbnVsbCk7ZWxzZSBpZigodC5pc01lc2h8fHQuaXNMaW5lfHx0LmlzUG9pbnRzKSYmKHQuaXNTa2lubmVkTWVzaCYmdC5za2VsZXRvbi5mcmFtZSE9PXEucmVuZGVyLmZyYW1lJiYodC5za2VsZXRvbi51cGRhdGUoKSx0LnNrZWxldG9uLmZyYW1lPXEucmVuZGVyLmZyYW1lKSwhdC5mcnVzdHVtQ3VsbGVkfHxPLmludGVyc2VjdHNPYmplY3QodCkpKXtpJiZGLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKS5hcHBseU1hdHJpeDQoSCk7Y29uc3QgZT1RLnVwZGF0ZSh0KSxyPXQubWF0ZXJpYWw7aWYoQXJyYXkuaXNBcnJheShyKSl7Y29uc3QgaT1lLmdyb3Vwcztmb3IobGV0IG89MCxhPWkubGVuZ3RoO288YTtvKyspe2NvbnN0IGE9aVtvXSxzPXJbYS5tYXRlcmlhbEluZGV4XTtzJiZzLnZpc2libGUmJmQucHVzaCh0LGUscyxuLEYueixhKX19ZWxzZSByLnZpc2libGUmJmQucHVzaCh0LGUscixuLEYueixudWxsKX1jb25zdCByPXQuY2hpbGRyZW47Zm9yKGxldCB0PTAsbz1yLmxlbmd0aDt0PG87dCsrKVN0KHJbdF0sZSxuLGkpfWZ1bmN0aW9uIE10KHQsZSxuKXtjb25zdCBpPSEwPT09ZS5pc1NjZW5lP2Uub3ZlcnJpZGVNYXRlcmlhbDpudWxsO2lmKG4uaXNBcnJheUNhbWVyYSl7Y29uc3Qgcj1uLmNhbWVyYXM7Zm9yKGxldCBuPTAsbz1yLmxlbmd0aDtuPG87bisrKXtjb25zdCBvPXJbbl07Vy52aWV3cG9ydChTLmNvcHkoby52aWV3cG9ydCkpLHAuc2V0dXBMaWdodHNWaWV3KG8pO2ZvcihsZXQgbj0wLHI9dC5sZW5ndGg7bjxyO24rKyl7Y29uc3Qgcj10W25dLGE9ci5vYmplY3Qscz1yLmdlb21ldHJ5LGw9bnVsbD09PWk/ci5tYXRlcmlhbDppLGM9ci5ncm91cDthLmxheWVycy50ZXN0KG8ubGF5ZXJzKSYmRXQoYSxlLG8scyxsLGMpfX19ZWxzZSBmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bztyKyspe2NvbnN0IG89dFtyXTtFdChvLm9iamVjdCxlLG4sby5nZW9tZXRyeSxudWxsPT09aT9vLm1hdGVyaWFsOmksby5ncm91cCl9fWZ1bmN0aW9uIEV0KHQsZSxuLGkscixvKXtpZih0Lm9uQmVmb3JlUmVuZGVyKGcsZSxuLGkscixvKSx0Lm1vZGVsVmlld01hdHJpeC5tdWx0aXBseU1hdHJpY2VzKG4ubWF0cml4V29ybGRJbnZlcnNlLHQubWF0cml4V29ybGQpLHQubm9ybWFsTWF0cml4LmdldE5vcm1hbE1hdHJpeCh0Lm1vZGVsVmlld01hdHJpeCksdC5pc0ltbWVkaWF0ZVJlbmRlck9iamVjdCl7Y29uc3QgaT1BdChuLGUscix0KTtXLnNldE1hdGVyaWFsKHIpLGh0LnJlc2V0KCksKGZ1bmN0aW9uIGEodCxlKXt0LnJlbmRlcigoZnVuY3Rpb24odCl7Zy5yZW5kZXJCdWZmZXJJbW1lZGlhdGUodCxlKX0pKX0pKHQsaSl9ZWxzZSEwPT09ci50cmFuc3BhcmVudCYmMj09PXIuc2lkZT8oci5zaWRlPTEsci5uZWVkc1VwZGF0ZT0hMCxnLnJlbmRlckJ1ZmZlckRpcmVjdChuLGUsaSxyLHQsbyksci5zaWRlPTAsci5uZWVkc1VwZGF0ZT0hMCxnLnJlbmRlckJ1ZmZlckRpcmVjdChuLGUsaSxyLHQsbyksci5zaWRlPTIpOmcucmVuZGVyQnVmZmVyRGlyZWN0KG4sZSxpLHIsdCxvKTt0Lm9uQWZ0ZXJSZW5kZXIoZyxlLG4saSxyLG8pfWZ1bmN0aW9uIFR0KHQsZSxuKXshMCE9PWUuaXNTY2VuZSYmKGU9Vik7Y29uc3QgaT1ZLmdldCh0KSxyPXAuc3RhdGUubGlnaHRzLG89ci5zdGF0ZS52ZXJzaW9uLGE9dHQuZ2V0UGFyYW1ldGVycyh0LHIuc3RhdGUscC5zdGF0ZS5zaGFkb3dzQXJyYXksZSxuKSxzPXR0LmdldFByb2dyYW1DYWNoZUtleShhKTtsZXQgbD1pLnByb2dyYW1zO2kuZW52aXJvbm1lbnQ9dC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP2UuZW52aXJvbm1lbnQ6bnVsbCxpLmZvZz1lLmZvZyxpLmVudk1hcD0odC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP0s6JCkuZ2V0KHQuZW52TWFwfHxpLmVudmlyb25tZW50KSx2b2lkIDA9PT1sJiYodC5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIix5dCksbD1uZXcgTWFwLGkucHJvZ3JhbXM9bCk7bGV0IGM9bC5nZXQocyk7aWYodm9pZCAwIT09Yyl7aWYoaS5jdXJyZW50UHJvZ3JhbT09PWMmJmkubGlnaHRzU3RhdGVWZXJzaW9uPT09bylyZXR1cm4gQ3QodCxhKSxjfWVsc2UgYS51bmlmb3Jtcz10dC5nZXRVbmlmb3Jtcyh0KSx0Lm9uQnVpbGQoYSxnKSx0Lm9uQmVmb3JlQ29tcGlsZShhLGcpLGM9dHQuYWNxdWlyZVByb2dyYW0oYSxzKSxsLnNldChzLGMpLGkudW5pZm9ybXM9YS51bmlmb3Jtcztjb25zdCB1PWkudW5pZm9ybXM7KHQuaXNTaGFkZXJNYXRlcmlhbHx8dC5pc1Jhd1NoYWRlck1hdGVyaWFsKSYmITAhPT10LmNsaXBwaW5nfHwodS5jbGlwcGluZ1BsYW5lcz1ydC51bmlmb3JtKSxDdCh0LGEpLGkubmVlZHNMaWdodHM9KGZ1bmN0aW9uIGgodCl7cmV0dXJuIHQuaXNNZXNoTGFtYmVydE1hdGVyaWFsfHx0LmlzTWVzaFRvb25NYXRlcmlhbHx8dC5pc01lc2hQaG9uZ01hdGVyaWFsfHx0LmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWx8fHQuaXNTaGFkb3dNYXRlcmlhbHx8dC5pc1NoYWRlck1hdGVyaWFsJiYhMD09PXQubGlnaHRzfSkodCksaS5saWdodHNTdGF0ZVZlcnNpb249byxpLm5lZWRzTGlnaHRzJiYodS5hbWJpZW50TGlnaHRDb2xvci52YWx1ZT1yLnN0YXRlLmFtYmllbnQsdS5saWdodFByb2JlLnZhbHVlPXIuc3RhdGUucHJvYmUsdS5kaXJlY3Rpb25hbExpZ2h0cy52YWx1ZT1yLnN0YXRlLmRpcmVjdGlvbmFsLHUuZGlyZWN0aW9uYWxMaWdodFNoYWRvd3MudmFsdWU9ci5zdGF0ZS5kaXJlY3Rpb25hbFNoYWRvdyx1LnNwb3RMaWdodHMudmFsdWU9ci5zdGF0ZS5zcG90LHUuc3BvdExpZ2h0U2hhZG93cy52YWx1ZT1yLnN0YXRlLnNwb3RTaGFkb3csdS5yZWN0QXJlYUxpZ2h0cy52YWx1ZT1yLnN0YXRlLnJlY3RBcmVhLHUubHRjXzEudmFsdWU9ci5zdGF0ZS5yZWN0QXJlYUxUQzEsdS5sdGNfMi52YWx1ZT1yLnN0YXRlLnJlY3RBcmVhTFRDMix1LnBvaW50TGlnaHRzLnZhbHVlPXIuc3RhdGUucG9pbnQsdS5wb2ludExpZ2h0U2hhZG93cy52YWx1ZT1yLnN0YXRlLnBvaW50U2hhZG93LHUuaGVtaXNwaGVyZUxpZ2h0cy52YWx1ZT1yLnN0YXRlLmhlbWksdS5kaXJlY3Rpb25hbFNoYWRvd01hcC52YWx1ZT1yLnN0YXRlLmRpcmVjdGlvbmFsU2hhZG93TWFwLHUuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXgudmFsdWU9ci5zdGF0ZS5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeCx1LnNwb3RTaGFkb3dNYXAudmFsdWU9ci5zdGF0ZS5zcG90U2hhZG93TWFwLHUuc3BvdFNoYWRvd01hdHJpeC52YWx1ZT1yLnN0YXRlLnNwb3RTaGFkb3dNYXRyaXgsdS5wb2ludFNoYWRvd01hcC52YWx1ZT1yLnN0YXRlLnBvaW50U2hhZG93TWFwLHUucG9pbnRTaGFkb3dNYXRyaXgudmFsdWU9ci5zdGF0ZS5wb2ludFNoYWRvd01hdHJpeCk7Y29uc3QgZD1jLmdldFVuaWZvcm1zKCksZj1RMnQuc2VxV2l0aFZhbHVlKGQuc2VxLHUpO3JldHVybiBpLmN1cnJlbnRQcm9ncmFtPWMsaS51bmlmb3Jtc0xpc3Q9ZixjfWZ1bmN0aW9uIEN0KHQsZSl7Y29uc3Qgbj1ZLmdldCh0KTtuLm91dHB1dEVuY29kaW5nPWUub3V0cHV0RW5jb2Rpbmcsbi5pbnN0YW5jaW5nPWUuaW5zdGFuY2luZyxuLnNraW5uaW5nPWUuc2tpbm5pbmcsbi5tb3JwaFRhcmdldHM9ZS5tb3JwaFRhcmdldHMsbi5tb3JwaE5vcm1hbHM9ZS5tb3JwaE5vcm1hbHMsbi5udW1DbGlwcGluZ1BsYW5lcz1lLm51bUNsaXBwaW5nUGxhbmVzLG4ubnVtSW50ZXJzZWN0aW9uPWUubnVtQ2xpcEludGVyc2VjdGlvbixuLnZlcnRleEFscGhhcz1lLnZlcnRleEFscGhhcyxuLnZlcnRleFRhbmdlbnRzPWUudmVydGV4VGFuZ2VudHN9ZnVuY3Rpb24gQXQodCxlLG4saSl7ITAhPT1lLmlzU2NlbmUmJihlPVYpLFgucmVzZXRUZXh0dXJlVW5pdHMoKTtjb25zdCByPWUuZm9nLG89bnVsbD09PWI/Zy5vdXRwdXRFbmNvZGluZzpiLnRleHR1cmUuZW5jb2RpbmcsYT0obi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP0s6JCkuZ2V0KG4uZW52TWFwfHwobi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP2UuZW52aXJvbm1lbnQ6bnVsbCkpLHM9ITA9PT1uLnZlcnRleENvbG9ycyYmISFpLmdlb21ldHJ5JiYhIWkuZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvciYmND09PWkuZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvci5pdGVtU2l6ZSxsPSEhaS5nZW9tZXRyeSYmISFpLmdlb21ldHJ5LmF0dHJpYnV0ZXMudGFuZ2VudCxjPSEhaS5nZW9tZXRyeSYmISFpLmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbix1PSEhaS5nZW9tZXRyeSYmISFpLmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5ub3JtYWwsaD1ZLmdldChuKSxkPXAuc3RhdGUubGlnaHRzOyEwIT09enx8ITAhPT1EJiZ0PT09d3x8cnQuc2V0U3RhdGUobix0LHQ9PT13JiZuLmlkPT09eCk7bGV0IGY9ITE7bi52ZXJzaW9uPT09aC5fX3ZlcnNpb24/aC5uZWVkc0xpZ2h0cyYmaC5saWdodHNTdGF0ZVZlcnNpb24hPT1kLnN0YXRlLnZlcnNpb258fGgub3V0cHV0RW5jb2RpbmchPT1vfHxpLmlzSW5zdGFuY2VkTWVzaCYmITE9PT1oLmluc3RhbmNpbmc/Zj0hMDppLmlzSW5zdGFuY2VkTWVzaHx8ITAhPT1oLmluc3RhbmNpbmc/aS5pc1NraW5uZWRNZXNoJiYhMT09PWguc2tpbm5pbmc/Zj0hMDppLmlzU2tpbm5lZE1lc2h8fCEwIT09aC5za2lubmluZz9oLmVudk1hcCE9PWF8fG4uZm9nJiZoLmZvZyE9PXI/Zj0hMDp2b2lkIDA9PT1oLm51bUNsaXBwaW5nUGxhbmVzfHxoLm51bUNsaXBwaW5nUGxhbmVzPT09cnQubnVtUGxhbmVzJiZoLm51bUludGVyc2VjdGlvbj09PXJ0Lm51bUludGVyc2VjdGlvbj8oaC52ZXJ0ZXhBbHBoYXMhPT1zfHxoLnZlcnRleFRhbmdlbnRzIT09bHx8aC5tb3JwaFRhcmdldHMhPT1jfHxoLm1vcnBoTm9ybWFscyE9PXUpJiYoZj0hMCk6Zj0hMDpmPSEwOmY9ITA6KGY9ITAsaC5fX3ZlcnNpb249bi52ZXJzaW9uKTtsZXQgbT1oLmN1cnJlbnRQcm9ncmFtOyEwPT09ZiYmKG09VHQobixlLGkpKTtsZXQgXz0hMSx5PSExLHY9ITE7Y29uc3QgUz1tLmdldFVuaWZvcm1zKCksTT1oLnVuaWZvcm1zO2lmKFcudXNlUHJvZ3JhbShtLnByb2dyYW0pJiYoXz0hMCx5PSEwLHY9ITApLG4uaWQhPT14JiYoeD1uLmlkLHk9ITApLF98fHchPT10KXtpZihTLnNldFZhbHVlKGR0LCJwcm9qZWN0aW9uTWF0cml4Iix0LnByb2plY3Rpb25NYXRyaXgpLEcubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlciYmUy5zZXRWYWx1ZShkdCwibG9nRGVwdGhCdWZGQyIsMi8oTWF0aC5sb2codC5mYXIrMSkvTWF0aC5MTjIpKSx3IT09dCYmKHc9dCx5PSEwLHY9ITApLG4uaXNTaGFkZXJNYXRlcmlhbHx8bi5pc01lc2hQaG9uZ01hdGVyaWFsfHxuLmlzTWVzaFRvb25NYXRlcmlhbHx8bi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxuLmVudk1hcCl7Y29uc3QgZT1TLm1hcC5jYW1lcmFQb3NpdGlvbjt2b2lkIDAhPT1lJiZlLnNldFZhbHVlKGR0LEYuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpKX0obi5pc01lc2hQaG9uZ01hdGVyaWFsfHxuLmlzTWVzaFRvb25NYXRlcmlhbHx8bi5pc01lc2hMYW1iZXJ0TWF0ZXJpYWx8fG4uaXNNZXNoQmFzaWNNYXRlcmlhbHx8bi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxuLmlzU2hhZGVyTWF0ZXJpYWwpJiZTLnNldFZhbHVlKGR0LCJpc09ydGhvZ3JhcGhpYyIsITA9PT10LmlzT3J0aG9ncmFwaGljQ2FtZXJhKSwobi5pc01lc2hQaG9uZ01hdGVyaWFsfHxuLmlzTWVzaFRvb25NYXRlcmlhbHx8bi5pc01lc2hMYW1iZXJ0TWF0ZXJpYWx8fG4uaXNNZXNoQmFzaWNNYXRlcmlhbHx8bi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxuLmlzU2hhZGVyTWF0ZXJpYWx8fG4uaXNTaGFkb3dNYXRlcmlhbHx8aS5pc1NraW5uZWRNZXNoKSYmUy5zZXRWYWx1ZShkdCwidmlld01hdHJpeCIsdC5tYXRyaXhXb3JsZEludmVyc2UpfWlmKGkuaXNTa2lubmVkTWVzaCl7Uy5zZXRPcHRpb25hbChkdCxpLCJiaW5kTWF0cml4IiksUy5zZXRPcHRpb25hbChkdCxpLCJiaW5kTWF0cml4SW52ZXJzZSIpO2NvbnN0IHQ9aS5za2VsZXRvbjt0JiYoRy5mbG9hdFZlcnRleFRleHR1cmVzPyhudWxsPT09dC5ib25lVGV4dHVyZSYmdC5jb21wdXRlQm9uZVRleHR1cmUoKSxTLnNldFZhbHVlKGR0LCJib25lVGV4dHVyZSIsdC5ib25lVGV4dHVyZSxYKSxTLnNldFZhbHVlKGR0LCJib25lVGV4dHVyZVNpemUiLHQuYm9uZVRleHR1cmVTaXplKSk6Uy5zZXRPcHRpb25hbChkdCx0LCJib25lTWF0cmljZXMiKSl9cmV0dXJuKHl8fGgucmVjZWl2ZVNoYWRvdyE9PWkucmVjZWl2ZVNoYWRvdykmJihoLnJlY2VpdmVTaGFkb3c9aS5yZWNlaXZlU2hhZG93LFMuc2V0VmFsdWUoZHQsInJlY2VpdmVTaGFkb3ciLGkucmVjZWl2ZVNoYWRvdykpLHkmJihTLnNldFZhbHVlKGR0LCJ0b25lTWFwcGluZ0V4cG9zdXJlIixnLnRvbmVNYXBwaW5nRXhwb3N1cmUpLGgubmVlZHNMaWdodHMmJihmdW5jdGlvbiBFKHQsZSl7dC5hbWJpZW50TGlnaHRDb2xvci5uZWVkc1VwZGF0ZT1lLHQubGlnaHRQcm9iZS5uZWVkc1VwZGF0ZT1lLHQuZGlyZWN0aW9uYWxMaWdodHMubmVlZHNVcGRhdGU9ZSx0LmRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzLm5lZWRzVXBkYXRlPWUsdC5wb2ludExpZ2h0cy5uZWVkc1VwZGF0ZT1lLHQucG9pbnRMaWdodFNoYWRvd3MubmVlZHNVcGRhdGU9ZSx0LnNwb3RMaWdodHMubmVlZHNVcGRhdGU9ZSx0LnNwb3RMaWdodFNoYWRvd3MubmVlZHNVcGRhdGU9ZSx0LnJlY3RBcmVhTGlnaHRzLm5lZWRzVXBkYXRlPWUsdC5oZW1pc3BoZXJlTGlnaHRzLm5lZWRzVXBkYXRlPWV9KShNLHYpLHImJm4uZm9nJiZldC5yZWZyZXNoRm9nVW5pZm9ybXMoTSxyKSxldC5yZWZyZXNoTWF0ZXJpYWxVbmlmb3JtcyhNLG4sQSxDLEIpLFEydC51cGxvYWQoZHQsaC51bmlmb3Jtc0xpc3QsTSxYKSksbi5pc1NoYWRlck1hdGVyaWFsJiYhMD09PW4udW5pZm9ybXNOZWVkVXBkYXRlJiYoUTJ0LnVwbG9hZChkdCxoLnVuaWZvcm1zTGlzdCxNLFgpLG4udW5pZm9ybXNOZWVkVXBkYXRlPSExKSxuLmlzU3ByaXRlTWF0ZXJpYWwmJlMuc2V0VmFsdWUoZHQsImNlbnRlciIsaS5jZW50ZXIpLFMuc2V0VmFsdWUoZHQsIm1vZGVsVmlld01hdHJpeCIsaS5tb2RlbFZpZXdNYXRyaXgpLFMuc2V0VmFsdWUoZHQsIm5vcm1hbE1hdHJpeCIsaS5ub3JtYWxNYXRyaXgpLFMuc2V0VmFsdWUoZHQsIm1vZGVsTWF0cml4IixpLm1hdHJpeFdvcmxkKSxtfXd0LnNldEFuaW1hdGlvbkxvb3AoKGZ1bmN0aW9uIGt0KHQpe3Z0JiZ2dCh0KX0pKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd3Quc2V0Q29udGV4dCh3aW5kb3cpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcD1mdW5jdGlvbih0KXt2dD10LG10LnNldEFuaW1hdGlvbkxvb3AodCksbnVsbD09PXQ/d3Quc3RvcCgpOnd0LnN0YXJ0KCl9LG10LmFkZEV2ZW50TGlzdGVuZXIoInNlc3Npb25zdGFydCIsYnQpLG10LmFkZEV2ZW50TGlzdGVuZXIoInNlc3Npb25lbmQiLHh0KSx0aGlzLnJlbmRlcj1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMCE9PWUmJiEwIT09ZS5pc0NhbWVyYSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlbmRlcjogY2FtZXJhIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5DYW1lcmEuIik7aWYoITA9PT1fKXJldHVybjshMD09PXQuYXV0b1VwZGF0ZSYmdC51cGRhdGVNYXRyaXhXb3JsZCgpLG51bGw9PT1lLnBhcmVudCYmZS51cGRhdGVNYXRyaXhXb3JsZCgpLCEwPT09bXQuZW5hYmxlZCYmITA9PT1tdC5pc1ByZXNlbnRpbmcmJighMD09PW10LmNhbWVyYUF1dG9VcGRhdGUmJm10LnVwZGF0ZUNhbWVyYShlKSxlPW10LmdldENhbWVyYSgpKSwhMD09PXQuaXNTY2VuZSYmdC5vbkJlZm9yZVJlbmRlcihnLHQsZSxiKSxwPWl0LmdldCh0LG0ubGVuZ3RoKSxwLmluaXQoKSxtLnB1c2gocCksSC5tdWx0aXBseU1hdHJpY2VzKGUucHJvamVjdGlvbk1hdHJpeCxlLm1hdHJpeFdvcmxkSW52ZXJzZSksTy5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChIKSxEPXRoaXMubG9jYWxDbGlwcGluZ0VuYWJsZWQsej1ydC5pbml0KHRoaXMuY2xpcHBpbmdQbGFuZXMsRCxlKSxkPW50LmdldCh0LGYubGVuZ3RoKSxkLmluaXQoKSxmLnB1c2goZCksU3QodCxlLDAsZy5zb3J0T2JqZWN0cyksZC5maW5pc2goKSwhMD09PWcuc29ydE9iamVjdHMmJmQuc29ydChrLEwpLCEwPT09eiYmcnQuYmVnaW5TaGFkb3dzKCksb3QucmVuZGVyKHAuc3RhdGUuc2hhZG93c0FycmF5LHQsZSkscC5zZXR1cExpZ2h0cygpLHAuc2V0dXBMaWdodHNWaWV3KGUpLCEwPT09eiYmcnQuZW5kU2hhZG93cygpLCEwPT09dGhpcy5pbmZvLmF1dG9SZXNldCYmdGhpcy5pbmZvLnJlc2V0KCksYXQucmVuZGVyKGQsdCk7Y29uc3Qgbj1kLm9wYXF1ZSxpPWQudHJhbnNtaXNzaXZlLHI9ZC50cmFuc3BhcmVudDtuLmxlbmd0aD4wJiZNdChuLHQsZSksaS5sZW5ndGg+MCYmKGZ1bmN0aW9uIG8odCxlLG4saSl7bnVsbD09PUImJihCPW5ldyghMD09PXMmJiEwPT09Ry5pc1dlYkdMMj9FSnQ6U0p0KSgxMDI0LDEwMjQse2dlbmVyYXRlTWlwbWFwczohMCx0eXBlOm51bGwhPT11dC5jb252ZXJ0KGxadCk/bFp0OnJadCxtaW5GaWx0ZXI6aVp0LG1hZ0ZpbHRlcjpKS3Qsd3JhcFM6S0t0LHdyYXBUOktLdH0pKTtjb25zdCByPWcuZ2V0UmVuZGVyVGFyZ2V0KCk7Zy5zZXRSZW5kZXJUYXJnZXQoQiksZy5jbGVhcigpO2NvbnN0IG89Zy50b25lTWFwcGluZztnLnRvbmVNYXBwaW5nPTAsTXQodCxuLGkpLGcudG9uZU1hcHBpbmc9byxYLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KEIpLFgudXBkYXRlUmVuZGVyVGFyZ2V0TWlwbWFwKEIpLGcuc2V0UmVuZGVyVGFyZ2V0KHIpLE10KGUsbixpKX0pKG4saSx0LGUpLHIubGVuZ3RoPjAmJk10KHIsdCxlKSxudWxsIT09YiYmKFgudXBkYXRlTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQoYiksWC51cGRhdGVSZW5kZXJUYXJnZXRNaXBtYXAoYikpLCEwPT09dC5pc1NjZW5lJiZ0Lm9uQWZ0ZXJSZW5kZXIoZyx0LGUpLFcuYnVmZmVycy5kZXB0aC5zZXRUZXN0KCEwKSxXLmJ1ZmZlcnMuZGVwdGguc2V0TWFzayghMCksVy5idWZmZXJzLmNvbG9yLnNldE1hc2soITApLFcuc2V0UG9seWdvbk9mZnNldCghMSksaHQucmVzZXREZWZhdWx0U3RhdGUoKSx4PS0xLHc9bnVsbCxtLnBvcCgpLHA9bS5sZW5ndGg+MD9tW20ubGVuZ3RoLTFdOm51bGwsZi5wb3AoKSxkPWYubGVuZ3RoPjA/ZltmLmxlbmd0aC0xXTpudWxsfSx0aGlzLmdldEFjdGl2ZUN1YmVGYWNlPWZ1bmN0aW9uKCl7cmV0dXJuIHl9LHRoaXMuZ2V0QWN0aXZlTWlwbWFwTGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gdn0sdGhpcy5nZXRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gYn0sdGhpcy5zZXRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24odCxlPTAsbj0wKXtiPXQseT1lLHY9bix0JiZ2b2lkIDA9PT1ZLmdldCh0KS5fX3dlYmdsRnJhbWVidWZmZXImJlguc2V0dXBSZW5kZXJUYXJnZXQodCk7bGV0IGk9bnVsbCxyPSExLG89ITE7aWYodCl7Y29uc3Qgbj10LnRleHR1cmU7KG4uaXNEYXRhVGV4dHVyZTNEfHxuLmlzRGF0YVRleHR1cmUyREFycmF5KSYmKG89ITApO2NvbnN0IGE9WS5nZXQodCkuX193ZWJnbEZyYW1lYnVmZmVyO3QuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ/KGk9YVtlXSxyPSEwKTppPXQuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0P1kuZ2V0KHQpLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcjphLFMuY29weSh0LnZpZXdwb3J0KSxNLmNvcHkodC5zY2lzc29yKSxFPXQuc2Npc3NvclRlc3R9ZWxzZSBTLmNvcHkoUCkubXVsdGlwbHlTY2FsYXIoQSkuZmxvb3IoKSxNLmNvcHkoTikubXVsdGlwbHlTY2FsYXIoQSkuZmxvb3IoKSxFPUk7aWYoVy5iaW5kRnJhbWVidWZmZXIoMzYxNjAsaSkmJkcuZHJhd0J1ZmZlcnMpe2xldCBlPSExO2lmKHQpaWYodC5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzKXtjb25zdCBuPXQudGV4dHVyZTtpZihSLmxlbmd0aCE9PW4ubGVuZ3RofHwzNjA2NCE9PVJbMF0pe2ZvcihsZXQgdD0wLGU9bi5sZW5ndGg7dDxlO3QrKylSW3RdPTM2MDY0K3Q7Ui5sZW5ndGg9bi5sZW5ndGgsZT0hMH19ZWxzZSAxPT09Ui5sZW5ndGgmJjM2MDY0PT09UlswXXx8KFJbMF09MzYwNjQsUi5sZW5ndGg9MSxlPSEwKTtlbHNlIDE9PT1SLmxlbmd0aCYmMTAyOT09PVJbMF18fChSWzBdPTEwMjksUi5sZW5ndGg9MSxlPSEwKTtlJiYoRy5pc1dlYkdMMj9kdC5kcmF3QnVmZmVycyhSKTpqLmdldCgiV0VCR0xfZHJhd19idWZmZXJzIikuZHJhd0J1ZmZlcnNXRUJHTChSKSl9aWYoVy52aWV3cG9ydChTKSxXLnNjaXNzb3IoTSksVy5zZXRTY2lzc29yVGVzdChFKSxyKXtjb25zdCBpPVkuZ2V0KHQudGV4dHVyZSk7ZHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwNjQsMzQwNjkrZSxpLl9fd2ViZ2xUZXh0dXJlLG4pfWVsc2UgaWYobyl7Y29uc3QgaT1ZLmdldCh0LnRleHR1cmUpO2R0LmZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKDM2MTYwLDM2MDY0LGkuX193ZWJnbFRleHR1cmUsbnx8MCxlfHwwKX19LHRoaXMucmVhZFJlbmRlclRhcmdldFBpeGVscz1mdW5jdGlvbih0LGUsbixpLHIsbyxhKXtpZighdHx8IXQuaXNXZWJHTFJlbmRlclRhcmdldClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM6IHJlbmRlclRhcmdldCBpcyBub3QgVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQuIik7bGV0IHM9WS5nZXQodCkuX193ZWJnbEZyYW1lYnVmZmVyO2lmKHQuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQmJnZvaWQgMCE9PWEmJihzPXNbYV0pLHMpe1cuYmluZEZyYW1lYnVmZmVyKDM2MTYwLHMpO3RyeXtjb25zdCBhPXQudGV4dHVyZSxzPWEuZm9ybWF0LGw9YS50eXBlO2lmKHMhPT1oWnQmJnV0LmNvbnZlcnQocykhPT1kdC5nZXRQYXJhbWV0ZXIoMzU3MzkpKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVhZFJlbmRlclRhcmdldFBpeGVsczogcmVuZGVyVGFyZ2V0IGlzIG5vdCBpbiBSR0JBIG9yIGltcGxlbWVudGF0aW9uIGRlZmluZWQgZm9ybWF0LiIpO2NvbnN0IGM9bD09PWxadCYmKGouaGFzKCJFWFRfY29sb3JfYnVmZmVyX2hhbGZfZmxvYXQiKXx8Ry5pc1dlYkdMMiYmai5oYXMoIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKSk7aWYoIShsPT09clp0fHx1dC5jb252ZXJ0KGwpPT09ZHQuZ2V0UGFyYW1ldGVyKDM1NzM4KXx8bD09PXNadCYmKEcuaXNXZWJHTDJ8fGouaGFzKCJPRVNfdGV4dHVyZV9mbG9hdCIpfHxqLmhhcygiV0VCR0xfY29sb3JfYnVmZmVyX2Zsb2F0IikpfHxjKSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM6IHJlbmRlclRhcmdldCBpcyBub3QgaW4gVW5zaWduZWRCeXRlVHlwZSBvciBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIHR5cGUuIik7MzYwNTM9PT1kdC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKDM2MTYwKT9lPj0wJiZlPD10LndpZHRoLWkmJm4+PTAmJm48PXQuaGVpZ2h0LXImJmR0LnJlYWRQaXhlbHMoZSxuLGkscix1dC5jb252ZXJ0KHMpLHV0LmNvbnZlcnQobCksbyk6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZWFkUGl4ZWxzIGZyb20gcmVuZGVyVGFyZ2V0IGZhaWxlZC4gRnJhbWVidWZmZXIgbm90IGNvbXBsZXRlLiIpfWZpbmFsbHl7Y29uc3QgdD1udWxsIT09Yj9ZLmdldChiKS5fX3dlYmdsRnJhbWVidWZmZXI6bnVsbDtXLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCx0KX19fSx0aGlzLmNvcHlGcmFtZWJ1ZmZlclRvVGV4dHVyZT1mdW5jdGlvbih0LGUsbj0wKXtjb25zdCBpPU1hdGgucG93KDIsLW4pLHI9TWF0aC5mbG9vcihlLmltYWdlLndpZHRoKmkpLG89TWF0aC5mbG9vcihlLmltYWdlLmhlaWdodCppKTtsZXQgYT11dC5jb252ZXJ0KGUuZm9ybWF0KTtHLmlzV2ViR0wyJiYoNjQwNz09PWEmJihhPTMyODQ5KSw2NDA4PT09YSYmKGE9MzI4NTYpKSxYLnNldFRleHR1cmUyRChlLDApLGR0LmNvcHlUZXhJbWFnZTJEKDM1NTMsbixhLHQueCx0LnkscixvLDApLFcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmNvcHlUZXh0dXJlVG9UZXh0dXJlPWZ1bmN0aW9uKHQsZSxuLGk9MCl7Y29uc3Qgcj1lLmltYWdlLndpZHRoLG89ZS5pbWFnZS5oZWlnaHQsYT11dC5jb252ZXJ0KG4uZm9ybWF0KSxzPXV0LmNvbnZlcnQobi50eXBlKTtYLnNldFRleHR1cmUyRChuLDApLGR0LnBpeGVsU3RvcmVpKDM3NDQwLG4uZmxpcFkpLGR0LnBpeGVsU3RvcmVpKDM3NDQxLG4ucHJlbXVsdGlwbHlBbHBoYSksZHQucGl4ZWxTdG9yZWkoMzMxNyxuLnVucGFja0FsaWdubWVudCksZS5pc0RhdGFUZXh0dXJlP2R0LnRleFN1YkltYWdlMkQoMzU1MyxpLHQueCx0LnkscixvLGEscyxlLmltYWdlLmRhdGEpOmUuaXNDb21wcmVzc2VkVGV4dHVyZT9kdC5jb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCgzNTUzLGksdC54LHQueSxlLm1pcG1hcHNbMF0ud2lkdGgsZS5taXBtYXBzWzBdLmhlaWdodCxhLGUubWlwbWFwc1swXS5kYXRhKTpkdC50ZXhTdWJJbWFnZTJEKDM1NTMsaSx0LngsdC55LGEscyxlLmltYWdlKSwwPT09aSYmbi5nZW5lcmF0ZU1pcG1hcHMmJmR0LmdlbmVyYXRlTWlwbWFwKDM1NTMpLFcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q9ZnVuY3Rpb24odCxlLG4saSxyPTApe2lmKGcuaXNXZWJHTDFSZW5kZXJlcilyZXR1cm4gdm9pZCBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXIuY29weVRleHR1cmVUb1RleHR1cmUzRDogY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMi4iKTtjb25zdCBvPXQubWF4LngtdC5taW4ueCsxLGE9dC5tYXgueS10Lm1pbi55KzEscz10Lm1heC56LXQubWluLnorMSxsPXV0LmNvbnZlcnQoaS5mb3JtYXQpLGM9dXQuY29udmVydChpLnR5cGUpO2xldCB1O2lmKGkuaXNEYXRhVGV4dHVyZTNEKVguc2V0VGV4dHVyZTNEKGksMCksdT0zMjg3OTtlbHNle2lmKCFpLmlzRGF0YVRleHR1cmUyREFycmF5KXJldHVybiB2b2lkIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlci5jb3B5VGV4dHVyZVRvVGV4dHVyZTNEOiBvbmx5IHN1cHBvcnRzIFRIUkVFLkRhdGFUZXh0dXJlM0QgYW5kIFRIUkVFLkRhdGFUZXh0dXJlMkRBcnJheS4iKTtYLnNldFRleHR1cmUyREFycmF5KGksMCksdT0zNTg2Nn1kdC5waXhlbFN0b3JlaSgzNzQ0MCxpLmZsaXBZKSxkdC5waXhlbFN0b3JlaSgzNzQ0MSxpLnByZW11bHRpcGx5QWxwaGEpLGR0LnBpeGVsU3RvcmVpKDMzMTcsaS51bnBhY2tBbGlnbm1lbnQpO2NvbnN0IGg9ZHQuZ2V0UGFyYW1ldGVyKDMzMTQpLGQ9ZHQuZ2V0UGFyYW1ldGVyKDMyODc4KSxwPWR0LmdldFBhcmFtZXRlcigzMzE2KSxmPWR0LmdldFBhcmFtZXRlcigzMzE1KSxtPWR0LmdldFBhcmFtZXRlcigzMjg3NyksXz1uLmlzQ29tcHJlc3NlZFRleHR1cmU/bi5taXBtYXBzWzBdOm4uaW1hZ2U7ZHQucGl4ZWxTdG9yZWkoMzMxNCxfLndpZHRoKSxkdC5waXhlbFN0b3JlaSgzMjg3OCxfLmhlaWdodCksZHQucGl4ZWxTdG9yZWkoMzMxNix0Lm1pbi54KSxkdC5waXhlbFN0b3JlaSgzMzE1LHQubWluLnkpLGR0LnBpeGVsU3RvcmVpKDMyODc3LHQubWluLnopLG4uaXNEYXRhVGV4dHVyZXx8bi5pc0RhdGFUZXh0dXJlM0Q/ZHQudGV4U3ViSW1hZ2UzRCh1LHIsZS54LGUueSxlLnosbyxhLHMsbCxjLF8uZGF0YSk6bi5pc0NvbXByZXNzZWRUZXh0dXJlPyhjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXIuY29weVRleHR1cmVUb1RleHR1cmUzRDogdW50ZXN0ZWQgc3VwcG9ydCBmb3IgY29tcHJlc3NlZCBzcmNUZXh0dXJlLiIpLGR0LmNvbXByZXNzZWRUZXhTdWJJbWFnZTNEKHUscixlLngsZS55LGUueixvLGEscyxsLF8uZGF0YSkpOmR0LnRleFN1YkltYWdlM0QodSxyLGUueCxlLnksZS56LG8sYSxzLGwsYyxfKSxkdC5waXhlbFN0b3JlaSgzMzE0LGgpLGR0LnBpeGVsU3RvcmVpKDMyODc4LGQpLGR0LnBpeGVsU3RvcmVpKDMzMTYscCksZHQucGl4ZWxTdG9yZWkoMzMxNSxmKSxkdC5waXhlbFN0b3JlaSgzMjg3NyxtKSwwPT09ciYmaS5nZW5lcmF0ZU1pcG1hcHMmJmR0LmdlbmVyYXRlTWlwbWFwKHUpLFcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmluaXRUZXh0dXJlPWZ1bmN0aW9uKHQpe1guc2V0VGV4dHVyZTJEKHQsMCksVy51bmJpbmRUZXh0dXJlKCl9LHRoaXMucmVzZXRTdGF0ZT1mdW5jdGlvbigpe3k9MCx2PTAsYj1udWxsLFcucmVzZXQoKSxodC5yZXNldCgpfSwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJvYnNlcnZlIix7ZGV0YWlsOnRoaXN9KSl9Y2xhc3MgVzV0IGV4dGVuZHMgRzV0e31XNXQucHJvdG90eXBlLmlzV2ViR0wxUmVuZGVyZXI9ITA7Y2xhc3MgcTV0e2NvbnN0cnVjdG9yKHQsZT0yNWUtNSl7dGhpcy5uYW1lPSIiLHRoaXMuY29sb3I9bmV3ICRRdCh0KSx0aGlzLmRlbnNpdHk9ZX1jbG9uZSgpe3JldHVybiBuZXcgcTV0KHRoaXMuY29sb3IsdGhpcy5kZW5zaXR5KX10b0pTT04oKXtyZXR1cm57dHlwZToiRm9nRXhwMiIsY29sb3I6dGhpcy5jb2xvci5nZXRIZXgoKSxkZW5zaXR5OnRoaXMuZGVuc2l0eX19fXE1dC5wcm90b3R5cGUuaXNGb2dFeHAyPSEwO2NsYXNzIFk1dHtjb25zdHJ1Y3Rvcih0LGU9MSxuPTFlMyl7dGhpcy5uYW1lPSIiLHRoaXMuY29sb3I9bmV3ICRRdCh0KSx0aGlzLm5lYXI9ZSx0aGlzLmZhcj1ufWNsb25lKCl7cmV0dXJuIG5ldyBZNXQodGhpcy5jb2xvcix0aGlzLm5lYXIsdGhpcy5mYXIpfXRvSlNPTigpe3JldHVybnt0eXBlOiJGb2ciLGNvbG9yOnRoaXMuY29sb3IuZ2V0SGV4KCksbmVhcjp0aGlzLm5lYXIsZmFyOnRoaXMuZmFyfX19WTV0LnByb3RvdHlwZS5pc0ZvZz0hMDtjbGFzcyBYNXQgZXh0ZW5kcyBrUXR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iU2NlbmUiLHRoaXMuYmFja2dyb3VuZD1udWxsLHRoaXMuZW52aXJvbm1lbnQ9bnVsbCx0aGlzLmZvZz1udWxsLHRoaXMub3ZlcnJpZGVNYXRlcmlhbD1udWxsLHRoaXMuYXV0b1VwZGF0ZT0hMCwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJvYnNlcnZlIix7ZGV0YWlsOnRoaXN9KSl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksbnVsbCE9PXQuYmFja2dyb3VuZCYmKHRoaXMuYmFja2dyb3VuZD10LmJhY2tncm91bmQuY2xvbmUoKSksbnVsbCE9PXQuZW52aXJvbm1lbnQmJih0aGlzLmVudmlyb25tZW50PXQuZW52aXJvbm1lbnQuY2xvbmUoKSksbnVsbCE9PXQuZm9nJiYodGhpcy5mb2c9dC5mb2cuY2xvbmUoKSksbnVsbCE9PXQub3ZlcnJpZGVNYXRlcmlhbCYmKHRoaXMub3ZlcnJpZGVNYXRlcmlhbD10Lm92ZXJyaWRlTWF0ZXJpYWwuY2xvbmUoKSksdGhpcy5hdXRvVXBkYXRlPXQuYXV0b1VwZGF0ZSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBudWxsIT09dGhpcy5mb2cmJihlLm9iamVjdC5mb2c9dGhpcy5mb2cudG9KU09OKCkpLGV9fVg1dC5wcm90b3R5cGUuaXNTY2VuZT0hMDtjbGFzcyAkNXR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmFycmF5PXQsdGhpcy5zdHJpZGU9ZSx0aGlzLmNvdW50PXZvaWQgMCE9PXQ/dC5sZW5ndGgvZTowLHRoaXMudXNhZ2U9Rlp0LHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MCx0aGlzLnV1aWQ9WFp0KCl9b25VcGxvYWRDYWxsYmFjaygpe31zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK31zZXRVc2FnZSh0KXtyZXR1cm4gdGhpcy51c2FnZT10LHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5hcnJheT1uZXcgdC5hcnJheS5jb25zdHJ1Y3Rvcih0LmFycmF5KSx0aGlzLmNvdW50PXQuY291bnQsdGhpcy5zdHJpZGU9dC5zdHJpZGUsdGhpcy51c2FnZT10LnVzYWdlLHRoaXN9Y29weUF0KHQsZSxuKXt0Kj10aGlzLnN0cmlkZSxuKj1lLnN0cmlkZTtmb3IobGV0IGk9MCxyPXRoaXMuc3RyaWRlO2k8cjtpKyspdGhpcy5hcnJheVt0K2ldPWUuYXJyYXlbbitpXTtyZXR1cm4gdGhpc31zZXQodCxlPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LGUpLHRoaXN9Y2xvbmUodCl7dm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1YWnQoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPXRoaXMuYXJyYXkuc2xpY2UoMCkuYnVmZmVyKTtjb25zdCBlPW5ldyB0aGlzLmFycmF5LmNvbnN0cnVjdG9yKHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXSksbj1uZXcgdGhpcy5jb25zdHJ1Y3RvcihlLHRoaXMuc3RyaWRlKTtyZXR1cm4gbi5zZXRVc2FnZSh0aGlzLnVzYWdlKSxufW9uVXBsb2FkKHQpe3JldHVybiB0aGlzLm9uVXBsb2FkQ2FsbGJhY2s9dCx0aGlzfXRvSlNPTih0KXtyZXR1cm4gdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1YWnQoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG5ldyBVaW50MzJBcnJheSh0aGlzLmFycmF5LmJ1ZmZlcikpKSx7dXVpZDp0aGlzLnV1aWQsYnVmZmVyOnRoaXMuYXJyYXkuYnVmZmVyLl91dWlkLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLHN0cmlkZTp0aGlzLnN0cmlkZX19fSQ1dC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlcj0hMDtjb25zdCBLNXQ9bmV3IENKdDtjbGFzcyBaNXR7Y29uc3RydWN0b3IodCxlLG4saT0hMSl7dGhpcy5uYW1lPSIiLHRoaXMuZGF0YT10LHRoaXMuaXRlbVNpemU9ZSx0aGlzLm9mZnNldD1uLHRoaXMubm9ybWFsaXplZD0hMD09PWl9Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuZGF0YS5jb3VudH1nZXQgYXJyYXkoKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5fXNldCBuZWVkc1VwZGF0ZSh0KXt0aGlzLmRhdGEubmVlZHNVcGRhdGU9dH1hcHBseU1hdHJpeDQodCl7Zm9yKGxldCBlPTAsbj10aGlzLmRhdGEuY291bnQ7ZTxuO2UrKylLNXQueD10aGlzLmdldFgoZSksSzV0Lnk9dGhpcy5nZXRZKGUpLEs1dC56PXRoaXMuZ2V0WihlKSxLNXQuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKGUsSzV0LngsSzV0LnksSzV0LnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKUs1dC54PXRoaXMuZ2V0WChlKSxLNXQueT10aGlzLmdldFkoZSksSzV0Lno9dGhpcy5nZXRaKGUpLEs1dC5hcHBseU5vcm1hbE1hdHJpeCh0KSx0aGlzLnNldFhZWihlLEs1dC54LEs1dC55LEs1dC56KTtyZXR1cm4gdGhpc310cmFuc2Zvcm1EaXJlY3Rpb24odCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspSzV0Lng9dGhpcy5nZXRYKGUpLEs1dC55PXRoaXMuZ2V0WShlKSxLNXQuej10aGlzLmdldFooZSksSzV0LnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzLnNldFhZWihlLEs1dC54LEs1dC55LEs1dC56KTtyZXR1cm4gdGhpc31zZXRYKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXRdPWUsdGhpc31zZXRZKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMV09ZSx0aGlzfXNldFoodCxlKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCsyXT1lLHRoaXN9c2V0Vyh0LGUpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzNdPWUsdGhpc31nZXRYKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0XX1nZXRZKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzFdfWdldFoodCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMl19Z2V0Vyh0KXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCszXX1zZXRYWSh0LGUsbil7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzfXNldFhZWih0LGUsbixpKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5Wyh0PXQqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCkrMF09ZSx0aGlzLmRhdGEuYXJyYXlbdCsxXT1uLHRoaXMuZGF0YS5hcnJheVt0KzJdPWksdGhpc31zZXRYWVpXKHQsZSxuLGkscil7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzLmRhdGEuYXJyYXlbdCsyXT1pLHRoaXMuZGF0YS5hcnJheVt0KzNdPXIsdGhpc31jbG9uZSh0KXtpZih2b2lkIDA9PT10KXtjb25zb2xlLmxvZygiVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUuY2xvbmUoKTogQ2xvbmluZyBhbiBpbnRlcmxhdmVkIGJ1ZmZlciBhdHRyaWJ1dGUgd2lsbCBkZWludGVybGVhdmUgYnVmZmVyIGRhdGEuIik7Y29uc3QgdD1bXTtmb3IobGV0IGU9MDtlPHRoaXMuY291bnQ7ZSsrKXtjb25zdCBuPWUqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldDtmb3IobGV0IGU9MDtlPHRoaXMuaXRlbVNpemU7ZSsrKXQucHVzaCh0aGlzLmRhdGEuYXJyYXlbbitlXSl9cmV0dXJuIG5ldyBRUXQobmV3IHRoaXMuYXJyYXkuY29uc3RydWN0b3IodCksdGhpcy5pdGVtU2l6ZSx0aGlzLm5vcm1hbGl6ZWQpfXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLmNsb25lKHQpKSxuZXcgWjV0KHQuaW50ZXJsZWF2ZWRCdWZmZXJzW3RoaXMuZGF0YS51dWlkXSx0aGlzLml0ZW1TaXplLHRoaXMub2Zmc2V0LHRoaXMubm9ybWFsaXplZCl9dG9KU09OKHQpe2lmKHZvaWQgMD09PXQpe2NvbnNvbGUubG9nKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZS50b0pTT04oKTogU2VyaWFsaXppbmcgYW4gaW50ZXJsYXZlZCBidWZmZXIgYXR0cmlidXRlIHdpbGwgZGVpbnRlcmxlYXZlIGJ1ZmZlciBkYXRhLiIpO2NvbnN0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLmNvdW50O2UrKyl7Y29uc3Qgbj1lKnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQ7Zm9yKGxldCBlPTA7ZTx0aGlzLml0ZW1TaXplO2UrKyl0LnB1c2godGhpcy5kYXRhLmFycmF5W24rZV0pfXJldHVybntpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OnQsbm9ybWFsaXplZDp0aGlzLm5vcm1hbGl6ZWR9fXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLnRvSlNPTih0KSkse2lzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU6ITAsaXRlbVNpemU6dGhpcy5pdGVtU2l6ZSxkYXRhOnRoaXMuZGF0YS51dWlkLG9mZnNldDp0aGlzLm9mZnNldCxub3JtYWxpemVkOnRoaXMubm9ybWFsaXplZH19fVo1dC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyBKNXQgZXh0ZW5kcyBVUXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwcml0ZU1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyAkUXQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMucm90YXRpb249MCx0aGlzLnNpemVBdHRlbnVhdGlvbj0hMCx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLnJvdGF0aW9uPXQucm90YXRpb24sdGhpcy5zaXplQXR0ZW51YXRpb249dC5zaXplQXR0ZW51YXRpb24sdGhpc319bGV0IFE1dDtKNXQucHJvdG90eXBlLmlzU3ByaXRlTWF0ZXJpYWw9ITA7Y29uc3QgdDN0PW5ldyBDSnQsZTN0PW5ldyBDSnQsbjN0PW5ldyBDSnQsaTN0PW5ldyBtSnQscjN0PW5ldyBtSnQsbzN0PW5ldyByUXQsYTN0PW5ldyBDSnQsczN0PW5ldyBDSnQsbDN0PW5ldyBDSnQsYzN0PW5ldyBtSnQsdTN0PW5ldyBtSnQsaDN0PW5ldyBtSnQ7Y2xhc3MgZDN0IGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKCksdGhpcy50eXBlPSJTcHJpdGUiLHZvaWQgMD09PVE1dCl7UTV0PW5ldyBiMXQ7Y29uc3QgdD1uZXcgRmxvYXQzMkFycmF5KFstLjUsLS41LDAsMCwwLC41LC0uNSwwLDEsMCwuNSwuNSwwLDEsMSwtLjUsLjUsMCwwLDFdKSxlPW5ldyAkNXQodCw1KTtRNXQuc2V0SW5kZXgoWzAsMSwyLDAsMiwzXSksUTV0LnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBaNXQoZSwzLDAsITEpKSxRNXQuc2V0QXR0cmlidXRlKCJ1diIsbmV3IFo1dChlLDIsMywhMSkpfXRoaXMuZ2VvbWV0cnk9UTV0LHRoaXMubWF0ZXJpYWw9dm9pZCAwIT09dD90Om5ldyBKNXQsdGhpcy5jZW50ZXI9bmV3IG1KdCguNSwuNSl9cmF5Y2FzdCh0LGUpe251bGw9PT10LmNhbWVyYSYmY29uc29sZS5lcnJvcignVEhSRUUuU3ByaXRlOiAiUmF5Y2FzdGVyLmNhbWVyYSIgbmVlZHMgdG8gYmUgc2V0IGluIG9yZGVyIHRvIHJheWNhc3QgYWdhaW5zdCBzcHJpdGVzLicpLGUzdC5zZXRGcm9tTWF0cml4U2NhbGUodGhpcy5tYXRyaXhXb3JsZCksbzN0LmNvcHkodC5jYW1lcmEubWF0cml4V29ybGQpLHRoaXMubW9kZWxWaWV3TWF0cml4Lm11bHRpcGx5TWF0cmljZXModC5jYW1lcmEubWF0cml4V29ybGRJbnZlcnNlLHRoaXMubWF0cml4V29ybGQpLG4zdC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tb2RlbFZpZXdNYXRyaXgpLHQuY2FtZXJhLmlzUGVyc3BlY3RpdmVDYW1lcmEmJiExPT09dGhpcy5tYXRlcmlhbC5zaXplQXR0ZW51YXRpb24mJmUzdC5tdWx0aXBseVNjYWxhcigtbjN0LnopO2NvbnN0IG49dGhpcy5tYXRlcmlhbC5yb3RhdGlvbjtsZXQgaSxyOzAhPT1uJiYocj1NYXRoLmNvcyhuKSxpPU1hdGguc2luKG4pKTtjb25zdCBvPXRoaXMuY2VudGVyO3AzdChhM3Quc2V0KC0uNSwtLjUsMCksbjN0LG8sZTN0LGkscikscDN0KHMzdC5zZXQoLjUsLS41LDApLG4zdCxvLGUzdCxpLHIpLHAzdChsM3Quc2V0KC41LC41LDApLG4zdCxvLGUzdCxpLHIpLGMzdC5zZXQoMCwwKSx1M3Quc2V0KDEsMCksaDN0LnNldCgxLDEpO2xldCBhPXQucmF5LmludGVyc2VjdFRyaWFuZ2xlKGEzdCxzM3QsbDN0LCExLHQzdCk7aWYobnVsbD09PWEmJihwM3QoczN0LnNldCgtLjUsLjUsMCksbjN0LG8sZTN0LGksciksdTN0LnNldCgwLDEpLGE9dC5yYXkuaW50ZXJzZWN0VHJpYW5nbGUoYTN0LGwzdCxzM3QsITEsdDN0KSxudWxsPT09YSkpcmV0dXJuO2NvbnN0IHM9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8odDN0KTtzPHQubmVhcnx8cz50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTpzLHBvaW50OnQzdC5jbG9uZSgpLHV2OkZRdC5nZXRVVih0M3QsYTN0LHMzdCxsM3QsYzN0LHUzdCxoM3QsbmV3IG1KdCksZmFjZTpudWxsLG9iamVjdDp0aGlzfSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx2b2lkIDAhPT10LmNlbnRlciYmdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXN9fWZ1bmN0aW9uIHAzdCh0LGUsbixpLHIsbyl7aTN0LnN1YlZlY3RvcnModCxuKS5hZGRTY2FsYXIoLjUpLm11bHRpcGx5KGkpLHZvaWQgMCE9PXI/KHIzdC54PW8qaTN0LngtcippM3QueSxyM3QueT1yKmkzdC54K28qaTN0LnkpOnIzdC5jb3B5KGkzdCksdC5jb3B5KGUpLHQueCs9cjN0LngsdC55Kz1yM3QueSx0LmFwcGx5TWF0cml4NChvM3QpfWQzdC5wcm90b3R5cGUuaXNTcHJpdGU9ITA7Y29uc3QgZjN0PW5ldyBDSnQsbTN0PW5ldyBDSnQ7Y2xhc3MgZzN0IGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9jdXJyZW50TGV2ZWw9MCx0aGlzLnR5cGU9IkxPRCIsT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcyx7bGV2ZWxzOntlbnVtZXJhYmxlOiEwLHZhbHVlOltdfSxpc0xPRDp7dmFsdWU6ITB9fSksdGhpcy5hdXRvVXBkYXRlPSEwfWNvcHkodCl7c3VwZXIuY29weSh0LCExKTtjb25zdCBlPXQubGV2ZWxzO2ZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1lW3RdO3RoaXMuYWRkTGV2ZWwobi5vYmplY3QuY2xvbmUoKSxuLmRpc3RhbmNlKX1yZXR1cm4gdGhpcy5hdXRvVXBkYXRlPXQuYXV0b1VwZGF0ZSx0aGlzfWFkZExldmVsKHQsZT0wKXtlPU1hdGguYWJzKGUpO2NvbnN0IG49dGhpcy5sZXZlbHM7bGV0IGk7Zm9yKGk9MDtpPG4ubGVuZ3RoJiYhKGU8bltpXS5kaXN0YW5jZSk7aSsrKTtyZXR1cm4gbi5zcGxpY2UoaSwwLHtkaXN0YW5jZTplLG9iamVjdDp0fSksdGhpcy5hZGQodCksdGhpc31nZXRDdXJyZW50TGV2ZWwoKXtyZXR1cm4gdGhpcy5fY3VycmVudExldmVsfWdldE9iamVjdEZvckRpc3RhbmNlKHQpe2NvbnN0IGU9dGhpcy5sZXZlbHM7aWYoZS5sZW5ndGg+MCl7bGV0IG4saTtmb3Iobj0xLGk9ZS5sZW5ndGg7bjxpJiYhKHQ8ZVtuXS5kaXN0YW5jZSk7bisrKTtyZXR1cm4gZVtuLTFdLm9iamVjdH1yZXR1cm4gbnVsbH1yYXljYXN0KHQsZSl7aWYodGhpcy5sZXZlbHMubGVuZ3RoPjApe2YzdC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tYXRyaXhXb3JsZCk7Y29uc3Qgbj10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhmM3QpO3RoaXMuZ2V0T2JqZWN0Rm9yRGlzdGFuY2UobikucmF5Y2FzdCh0LGUpfX11cGRhdGUodCl7Y29uc3QgZT10aGlzLmxldmVscztpZihlLmxlbmd0aD4xKXtmM3Quc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLG0zdC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tYXRyaXhXb3JsZCk7Y29uc3Qgbj1mM3QuZGlzdGFuY2VUbyhtM3QpL3Quem9vbTtsZXQgaSxyO2ZvcihlWzBdLm9iamVjdC52aXNpYmxlPSEwLGk9MSxyPWUubGVuZ3RoO2k8ciYmbj49ZVtpXS5kaXN0YW5jZTtpKyspZVtpLTFdLm9iamVjdC52aXNpYmxlPSExLGVbaV0ub2JqZWN0LnZpc2libGU9ITA7Zm9yKHRoaXMuX2N1cnJlbnRMZXZlbD1pLTE7aTxyO2krKyllW2ldLm9iamVjdC52aXNpYmxlPSExfX10b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7ITE9PT10aGlzLmF1dG9VcGRhdGUmJihlLm9iamVjdC5hdXRvVXBkYXRlPSExKSxlLm9iamVjdC5sZXZlbHM9W107Y29uc3Qgbj10aGlzLmxldmVscztmb3IobGV0IHQ9MCxpPW4ubGVuZ3RoO3Q8aTt0Kyspe2NvbnN0IGk9blt0XTtlLm9iamVjdC5sZXZlbHMucHVzaCh7b2JqZWN0Omkub2JqZWN0LnV1aWQsZGlzdGFuY2U6aS5kaXN0YW5jZX0pfXJldHVybiBlfX1jb25zdCBfM3Q9bmV3IENKdCx5M3Q9bmV3IHdKdCx2M3Q9bmV3IHdKdCxiM3Q9bmV3IENKdCx4M3Q9bmV3IHJRdDtjbGFzcyB3M3QgZXh0ZW5kcyBCMXR7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iU2tpbm5lZE1lc2giLHRoaXMuYmluZE1vZGU9ImF0dGFjaGVkIix0aGlzLmJpbmRNYXRyaXg9bmV3IHJRdCx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlPW5ldyByUXR9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmJpbmRNb2RlPXQuYmluZE1vZGUsdGhpcy5iaW5kTWF0cml4LmNvcHkodC5iaW5kTWF0cml4KSx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodC5iaW5kTWF0cml4SW52ZXJzZSksdGhpcy5za2VsZXRvbj10LnNrZWxldG9uLHRoaXN9YmluZCh0LGUpe3RoaXMuc2tlbGV0b249dCx2b2lkIDA9PT1lJiYodGhpcy51cGRhdGVNYXRyaXhXb3JsZCghMCksdGhpcy5za2VsZXRvbi5jYWxjdWxhdGVJbnZlcnNlcygpLGU9dGhpcy5tYXRyaXhXb3JsZCksdGhpcy5iaW5kTWF0cml4LmNvcHkoZSksdGhpcy5iaW5kTWF0cml4SW52ZXJzZS5jb3B5KGUpLmludmVydCgpfXBvc2UoKXt0aGlzLnNrZWxldG9uLnBvc2UoKX1ub3JtYWxpemVTa2luV2VpZ2h0cygpe2NvbnN0IHQ9bmV3IHdKdCxlPXRoaXMuZ2VvbWV0cnkuYXR0cmlidXRlcy5za2luV2VpZ2h0O2ZvcihsZXQgbj0wLGk9ZS5jb3VudDtuPGk7bisrKXt0Lng9ZS5nZXRYKG4pLHQueT1lLmdldFkobiksdC56PWUuZ2V0WihuKSx0Lnc9ZS5nZXRXKG4pO2NvbnN0IGk9MS90Lm1hbmhhdHRhbkxlbmd0aCgpO2khPT0xLzA/dC5tdWx0aXBseVNjYWxhcihpKTp0LnNldCgxLDAsMCwwKSxlLnNldFhZWlcobix0LngsdC55LHQueix0LncpfX11cGRhdGVNYXRyaXhXb3JsZCh0KXtzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSwiYXR0YWNoZWQiPT09dGhpcy5iaW5kTW9kZT90aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk6ImRldGFjaGVkIj09PXRoaXMuYmluZE1vZGU/dGhpcy5iaW5kTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMuYmluZE1hdHJpeCkuaW52ZXJ0KCk6Y29uc29sZS53YXJuKCJUSFJFRS5Ta2lubmVkTWVzaDogVW5yZWNvZ25pemVkIGJpbmRNb2RlOiAiK3RoaXMuYmluZE1vZGUpfWJvbmVUcmFuc2Zvcm0odCxlKXtjb25zdCBuPXRoaXMuc2tlbGV0b24saT10aGlzLmdlb21ldHJ5O3kzdC5mcm9tQnVmZmVyQXR0cmlidXRlKGkuYXR0cmlidXRlcy5za2luSW5kZXgsdCksdjN0LmZyb21CdWZmZXJBdHRyaWJ1dGUoaS5hdHRyaWJ1dGVzLnNraW5XZWlnaHQsdCksXzN0LmZyb21CdWZmZXJBdHRyaWJ1dGUoaS5hdHRyaWJ1dGVzLnBvc2l0aW9uLHQpLmFwcGx5TWF0cml4NCh0aGlzLmJpbmRNYXRyaXgpLGUuc2V0KDAsMCwwKTtmb3IobGV0IHQ9MDt0PDQ7dCsrKXtjb25zdCBpPXYzdC5nZXRDb21wb25lbnQodCk7aWYoMCE9PWkpe2NvbnN0IHI9eTN0LmdldENvbXBvbmVudCh0KTt4M3QubXVsdGlwbHlNYXRyaWNlcyhuLmJvbmVzW3JdLm1hdHJpeFdvcmxkLG4uYm9uZUludmVyc2VzW3JdKSxlLmFkZFNjYWxlZFZlY3RvcihiM3QuY29weShfM3QpLmFwcGx5TWF0cml4NCh4M3QpLGkpfX1yZXR1cm4gZS5hcHBseU1hdHJpeDQodGhpcy5iaW5kTWF0cml4SW52ZXJzZSl9fXczdC5wcm90b3R5cGUuaXNTa2lubmVkTWVzaD0hMDtjbGFzcyBTM3QgZXh0ZW5kcyBrUXR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iQm9uZSJ9fVMzdC5wcm90b3R5cGUuaXNCb25lPSEwO2NsYXNzIE0zdCBleHRlbmRzIGJKdHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxpLHIsbyxhLHMsbD0xMDAzLGM9MTAwMyx1LGgpe3N1cGVyKG51bGwsbyxhLHMsbCxjLGkscix1LGgpLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpufSx0aGlzLm1hZ0ZpbHRlcj1sLHRoaXMubWluRmlsdGVyPWMsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fU0zdC5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZT0hMDtjb25zdCBFM3Q9bmV3IHJRdCxUM3Q9bmV3IHJRdDtjbGFzcyBDM3R7Y29uc3RydWN0b3IodD1bXSxlPVtdKXt0aGlzLnV1aWQ9WFp0KCksdGhpcy5ib25lcz10LnNsaWNlKDApLHRoaXMuYm9uZUludmVyc2VzPWUsdGhpcy5ib25lTWF0cmljZXM9bnVsbCx0aGlzLmJvbmVUZXh0dXJlPW51bGwsdGhpcy5ib25lVGV4dHVyZVNpemU9MCx0aGlzLmZyYW1lPS0xLHRoaXMuaW5pdCgpfWluaXQoKXtjb25zdCB0PXRoaXMuYm9uZXMsZT10aGlzLmJvbmVJbnZlcnNlcztpZih0aGlzLmJvbmVNYXRyaWNlcz1uZXcgRmxvYXQzMkFycmF5KDE2KnQubGVuZ3RoKSwwPT09ZS5sZW5ndGgpdGhpcy5jYWxjdWxhdGVJbnZlcnNlcygpO2Vsc2UgaWYodC5sZW5ndGghPT1lLmxlbmd0aCl7Y29uc29sZS53YXJuKCJUSFJFRS5Ta2VsZXRvbjogTnVtYmVyIG9mIGludmVyc2UgYm9uZSBtYXRyaWNlcyBkb2VzIG5vdCBtYXRjaCBhbW91bnQgb2YgYm9uZXMuIiksdGhpcy5ib25lSW52ZXJzZXM9W107Zm9yKGxldCB0PTAsZT10aGlzLmJvbmVzLmxlbmd0aDt0PGU7dCsrKXRoaXMuYm9uZUludmVyc2VzLnB1c2gobmV3IHJRdCl9fWNhbGN1bGF0ZUludmVyc2VzKCl7dGhpcy5ib25lSW52ZXJzZXMubGVuZ3RoPTA7Zm9yKGxldCB0PTAsZT10aGlzLmJvbmVzLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPW5ldyByUXQ7dGhpcy5ib25lc1t0XSYmZS5jb3B5KHRoaXMuYm9uZXNbdF0ubWF0cml4V29ybGQpLmludmVydCgpLHRoaXMuYm9uZUludmVyc2VzLnB1c2goZSl9fXBvc2UoKXtmb3IobGV0IHQ9MCxlPXRoaXMuYm9uZXMubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9dGhpcy5ib25lc1t0XTtlJiZlLm1hdHJpeFdvcmxkLmNvcHkodGhpcy5ib25lSW52ZXJzZXNbdF0pLmludmVydCgpfWZvcihsZXQgdD0wLGU9dGhpcy5ib25lcy5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT10aGlzLmJvbmVzW3RdO2UmJihlLnBhcmVudCYmZS5wYXJlbnQuaXNCb25lPyhlLm1hdHJpeC5jb3B5KGUucGFyZW50Lm1hdHJpeFdvcmxkKS5pbnZlcnQoKSxlLm1hdHJpeC5tdWx0aXBseShlLm1hdHJpeFdvcmxkKSk6ZS5tYXRyaXguY29weShlLm1hdHJpeFdvcmxkKSxlLm1hdHJpeC5kZWNvbXBvc2UoZS5wb3NpdGlvbixlLnF1YXRlcm5pb24sZS5zY2FsZSkpfX11cGRhdGUoKXtjb25zdCB0PXRoaXMuYm9uZXMsZT10aGlzLmJvbmVJbnZlcnNlcyxuPXRoaXMuYm9uZU1hdHJpY2VzLGk9dGhpcy5ib25lVGV4dHVyZTtmb3IobGV0IGk9MCxyPXQubGVuZ3RoO2k8cjtpKyspRTN0Lm11bHRpcGx5TWF0cmljZXModFtpXT90W2ldLm1hdHJpeFdvcmxkOlQzdCxlW2ldKSxFM3QudG9BcnJheShuLDE2KmkpO251bGwhPT1pJiYoaS5uZWVkc1VwZGF0ZT0hMCl9Y2xvbmUoKXtyZXR1cm4gbmV3IEMzdCh0aGlzLmJvbmVzLHRoaXMuYm9uZUludmVyc2VzKX1jb21wdXRlQm9uZVRleHR1cmUoKXtsZXQgdD1NYXRoLnNxcnQoNCp0aGlzLmJvbmVzLmxlbmd0aCk7dD1RWnQodCksdD1NYXRoLm1heCh0LDQpO2NvbnN0IGU9bmV3IEZsb2F0MzJBcnJheSh0KnQqNCk7ZS5zZXQodGhpcy5ib25lTWF0cmljZXMpO2NvbnN0IG49bmV3IE0zdChlLHQsdCxoWnQsc1p0KTtyZXR1cm4gdGhpcy5ib25lTWF0cmljZXM9ZSx0aGlzLmJvbmVUZXh0dXJlPW4sdGhpcy5ib25lVGV4dHVyZVNpemU9dCx0aGlzfWdldEJvbmVCeU5hbWUodCl7Zm9yKGxldCBlPTAsbj10aGlzLmJvbmVzLmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRoaXMuYm9uZXNbZV07aWYobi5uYW1lPT09dClyZXR1cm4gbn19ZGlzcG9zZSgpe251bGwhPT10aGlzLmJvbmVUZXh0dXJlJiYodGhpcy5ib25lVGV4dHVyZS5kaXNwb3NlKCksdGhpcy5ib25lVGV4dHVyZT1udWxsKX1mcm9tSlNPTih0LGUpe3RoaXMudXVpZD10LnV1aWQ7Zm9yKGxldCBuPTAsaT10LmJvbmVzLmxlbmd0aDtuPGk7bisrKXtjb25zdCBpPXQuYm9uZXNbbl07bGV0IHI9ZVtpXTt2b2lkIDA9PT1yJiYoY29uc29sZS53YXJuKCJUSFJFRS5Ta2VsZXRvbjogTm8gYm9uZSBmb3VuZCB3aXRoIFVVSUQ6IixpKSxyPW5ldyBTM3QpLHRoaXMuYm9uZXMucHVzaChyKSx0aGlzLmJvbmVJbnZlcnNlcy5wdXNoKChuZXcgclF0KS5mcm9tQXJyYXkodC5ib25lSW52ZXJzZXNbbl0pKX1yZXR1cm4gdGhpcy5pbml0KCksdGhpc310b0pTT04oKXtjb25zdCB0PXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiU2tlbGV0b24iLGdlbmVyYXRvcjoiU2tlbGV0b24udG9KU09OIn0sYm9uZXM6W10sYm9uZUludmVyc2VzOltdfTt0LnV1aWQ9dGhpcy51dWlkO2NvbnN0IGU9dGhpcy5ib25lcyxuPXRoaXMuYm9uZUludmVyc2VzO2ZvcihsZXQgaT0wLHI9ZS5sZW5ndGg7aTxyO2krKyl0LmJvbmVzLnB1c2goZVtpXS51dWlkKSx0LmJvbmVJbnZlcnNlcy5wdXNoKG5baV0udG9BcnJheSgpKTtyZXR1cm4gdH19Y29uc3QgQTN0PW5ldyByUXQsazN0PW5ldyByUXQsTDN0PVtdLFAzdD1uZXcgQjF0O2NsYXNzIE4zdCBleHRlbmRzIEIxdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlKSx0aGlzLmluc3RhbmNlTWF0cml4PW5ldyBRUXQobmV3IEZsb2F0MzJBcnJheSgxNipuKSwxNiksdGhpcy5pbnN0YW5jZUNvbG9yPW51bGwsdGhpcy5jb3VudD1uLHRoaXMuZnJ1c3R1bUN1bGxlZD0hMX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuaW5zdGFuY2VNYXRyaXguY29weSh0Lmluc3RhbmNlTWF0cml4KSxudWxsIT09dC5pbnN0YW5jZUNvbG9yJiYodGhpcy5pbnN0YW5jZUNvbG9yPXQuaW5zdGFuY2VDb2xvci5jbG9uZSgpKSx0aGlzLmNvdW50PXQuY291bnQsdGhpc31nZXRDb2xvckF0KHQsZSl7ZS5mcm9tQXJyYXkodGhpcy5pbnN0YW5jZUNvbG9yLmFycmF5LDMqdCl9Z2V0TWF0cml4QXQodCxlKXtlLmZyb21BcnJheSh0aGlzLmluc3RhbmNlTWF0cml4LmFycmF5LDE2KnQpfXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMubWF0cml4V29ybGQsaT10aGlzLmNvdW50O2lmKFAzdC5nZW9tZXRyeT10aGlzLmdlb21ldHJ5LFAzdC5tYXRlcmlhbD10aGlzLm1hdGVyaWFsLHZvaWQgMCE9PVAzdC5tYXRlcmlhbClmb3IobGV0IHI9MDtyPGk7cisrKXt0aGlzLmdldE1hdHJpeEF0KHIsQTN0KSxrM3QubXVsdGlwbHlNYXRyaWNlcyhuLEEzdCksUDN0Lm1hdHJpeFdvcmxkPWszdCxQM3QucmF5Y2FzdCh0LEwzdCk7Zm9yKGxldCB0PTAsbj1MM3QubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49TDN0W3RdO24uaW5zdGFuY2VJZD1yLG4ub2JqZWN0PXRoaXMsZS5wdXNoKG4pfUwzdC5sZW5ndGg9MH19c2V0Q29sb3JBdCh0LGUpe251bGw9PT10aGlzLmluc3RhbmNlQ29sb3ImJih0aGlzLmluc3RhbmNlQ29sb3I9bmV3IFFRdChuZXcgRmxvYXQzMkFycmF5KDMqdGhpcy5pbnN0YW5jZU1hdHJpeC5jb3VudCksMykpLGUudG9BcnJheSh0aGlzLmluc3RhbmNlQ29sb3IuYXJyYXksMyp0KX1zZXRNYXRyaXhBdCh0LGUpe2UudG9BcnJheSh0aGlzLmluc3RhbmNlTWF0cml4LmFycmF5LDE2KnQpfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfX1OM3QucHJvdG90eXBlLmlzSW5zdGFuY2VkTWVzaD0hMDtjbGFzcyBJM3QgZXh0ZW5kcyBVUXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmVCYXNpY01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyAkUXQoMTY3NzcyMTUpLHRoaXMubGluZXdpZHRoPTEsdGhpcy5saW5lY2FwPSJyb3VuZCIsdGhpcy5saW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubGluZXdpZHRoPXQubGluZXdpZHRoLHRoaXMubGluZWNhcD10LmxpbmVjYXAsdGhpcy5saW5lam9pbj10LmxpbmVqb2luLHRoaXN9fUkzdC5wcm90b3R5cGUuaXNMaW5lQmFzaWNNYXRlcmlhbD0hMDtjb25zdCBSM3Q9bmV3IENKdCxPM3Q9bmV3IENKdCx6M3Q9bmV3IHJRdCxEM3Q9bmV3IGlRdCxCM3Q9bmV3ICRKdDtjbGFzcyBIM3QgZXh0ZW5kcyBrUXR7Y29uc3RydWN0b3IodD1uZXcgYjF0LGU9bmV3IEkzdCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmUiLHRoaXMuZ2VvbWV0cnk9dCx0aGlzLm1hdGVyaWFsPWUsdGhpcy51cGRhdGVNb3JwaFRhcmdldHMoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpc31jb21wdXRlTGluZURpc3RhbmNlcygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpaWYobnVsbD09PXQuaW5kZXgpe2NvbnN0IGU9dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLG49WzBdO2ZvcihsZXQgdD0xLGk9ZS5jb3VudDt0PGk7dCsrKVIzdC5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdC0xKSxPM3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQpLG5bdF09blt0LTFdLG5bdF0rPVIzdC5kaXN0YW5jZVRvKE8zdCk7dC5zZXRBdHRyaWJ1dGUoImxpbmVEaXN0YW5jZSIsbmV3IGwxdChuLDEpKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuTGluZS5jb21wdXRlTGluZURpc3RhbmNlcygpOiBDb21wdXRhdGlvbiBvbmx5IHBvc3NpYmxlIHdpdGggbm9uLWluZGV4ZWQgQnVmZmVyR2VvbWV0cnkuIik7ZWxzZSB0LmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpO3JldHVybiB0aGlzfXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMuZ2VvbWV0cnksaT10aGlzLm1hdHJpeFdvcmxkLHI9dC5wYXJhbXMuTGluZS50aHJlc2hvbGQsbz1uLmRyYXdSYW5nZTtpZihudWxsPT09bi5ib3VuZGluZ1NwaGVyZSYmbi5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxCM3QuY29weShuLmJvdW5kaW5nU3BoZXJlKSxCM3QuYXBwbHlNYXRyaXg0KGkpLEIzdC5yYWRpdXMrPXIsITE9PT10LnJheS5pbnRlcnNlY3RzU3BoZXJlKEIzdCkpcmV0dXJuO3ozdC5jb3B5KGkpLmludmVydCgpLEQzdC5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQoejN0KTtjb25zdCBhPXIvKCh0aGlzLnNjYWxlLngrdGhpcy5zY2FsZS55K3RoaXMuc2NhbGUueikvMykscz1hKmEsbD1uZXcgQ0p0LGM9bmV3IENKdCx1PW5ldyBDSnQsaD1uZXcgQ0p0LGQ9dGhpcy5pc0xpbmVTZWdtZW50cz8yOjE7aWYobi5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBpPW4uaW5kZXgscj1uLmF0dHJpYnV0ZXMucG9zaXRpb247aWYobnVsbCE9PWkpZm9yKGxldCBuPU1hdGgubWF4KDAsby5zdGFydCksYT1NYXRoLm1pbihpLmNvdW50LG8uc3RhcnQrby5jb3VudCktMTtuPGE7bis9ZCl7Y29uc3Qgbz1pLmdldFgobiksYT1pLmdldFgobisxKTtpZihsLmZyb21CdWZmZXJBdHRyaWJ1dGUocixvKSxjLmZyb21CdWZmZXJBdHRyaWJ1dGUocixhKSxEM3QuZGlzdGFuY2VTcVRvU2VnbWVudChsLGMsaCx1KT5zKWNvbnRpbnVlO2guYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpO2NvbnN0IGQ9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8oaCk7ZDx0Lm5lYXJ8fGQ+dC5mYXJ8fGUucHVzaCh7ZGlzdGFuY2U6ZCxwb2ludDp1LmNsb25lKCkuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpLGluZGV4Om4sZmFjZTpudWxsLGZhY2VJbmRleDpudWxsLG9iamVjdDp0aGlzfSl9ZWxzZSBmb3IobGV0IG49TWF0aC5tYXgoMCxvLnN0YXJ0KSxpPU1hdGgubWluKHIuY291bnQsby5zdGFydCtvLmNvdW50KS0xO248aTtuKz1kKXtpZihsLmZyb21CdWZmZXJBdHRyaWJ1dGUocixuKSxjLmZyb21CdWZmZXJBdHRyaWJ1dGUocixuKzEpLEQzdC5kaXN0YW5jZVNxVG9TZWdtZW50KGwsYyxoLHUpPnMpY29udGludWU7aC5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCk7Y29uc3QgaT10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhoKTtpPHQubmVhcnx8aT50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTppLHBvaW50OnUuY2xvbmUoKS5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCksaW5kZXg6bixmYWNlOm51bGwsZmFjZUluZGV4Om51bGwsb2JqZWN0OnRoaXN9KX19ZWxzZSBuLmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9dXBkYXRlTW9ycGhUYXJnZXRzKCl7Y29uc3QgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSl7Y29uc3QgZT10Lm1vcnBoQXR0cmlidXRlcyxuPU9iamVjdC5rZXlzKGUpO2lmKG4ubGVuZ3RoPjApe2NvbnN0IHQ9ZVtuWzBdXTtpZih2b2lkIDAhPT10KXt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcz1bXSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT17fTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dFtlXS5uYW1lfHxTdHJpbmcoZSk7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXMucHVzaCgwKSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtuXT1lfX19fWVsc2V7Y29uc3QgZT10Lm1vcnBoVGFyZ2V0czt2b2lkIDAhPT1lJiZlLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5MaW5lLnVwZGF0ZU1vcnBoVGFyZ2V0cygpIGRvZXMgbm90IHN1cHBvcnQgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX19SDN0LnByb3RvdHlwZS5pc0xpbmU9ITA7Y29uc3QgRjN0PW5ldyBDSnQsVjN0PW5ldyBDSnQ7Y2xhc3MgVTN0IGV4dGVuZHMgSDN0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkxpbmVTZWdtZW50cyJ9Y29tcHV0ZUxpbmVEaXN0YW5jZXMoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KWlmKG51bGw9PT10LmluZGV4KXtjb25zdCBlPXQuYXR0cmlidXRlcy5wb3NpdGlvbixuPVtdO2ZvcihsZXQgdD0wLGk9ZS5jb3VudDt0PGk7dCs9MilGM3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQpLFYzdC5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCsxKSxuW3RdPTA9PT10PzA6blt0LTFdLG5bdCsxXT1uW3RdK0YzdC5kaXN0YW5jZVRvKFYzdCk7dC5zZXRBdHRyaWJ1dGUoImxpbmVEaXN0YW5jZSIsbmV3IGwxdChuLDEpKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuTGluZVNlZ21lbnRzLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCk6IENvbXB1dGF0aW9uIG9ubHkgcG9zc2libGUgd2l0aCBub24taW5kZXhlZCBCdWZmZXJHZW9tZXRyeS4iKTtlbHNlIHQuaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZVNlZ21lbnRzLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKTtyZXR1cm4gdGhpc319VTN0LnByb3RvdHlwZS5pc0xpbmVTZWdtZW50cz0hMDtjbGFzcyBqM3QgZXh0ZW5kcyBIM3R7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iTGluZUxvb3AifX1qM3QucHJvdG90eXBlLmlzTGluZUxvb3A9ITA7Y2xhc3MgRzN0IGV4dGVuZHMgVVF0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJQb2ludHNNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgJFF0KDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLnNpemU9MSx0aGlzLnNpemVBdHRlbnVhdGlvbj0hMCx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5zaXplPXQuc2l6ZSx0aGlzLnNpemVBdHRlbnVhdGlvbj10LnNpemVBdHRlbnVhdGlvbix0aGlzfX1HM3QucHJvdG90eXBlLmlzUG9pbnRzTWF0ZXJpYWw9ITA7Y29uc3QgVzN0PW5ldyByUXQscTN0PW5ldyBpUXQsWTN0PW5ldyAkSnQsWDN0PW5ldyBDSnQ7Y2xhc3MgJDN0IGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQ9bmV3IGIxdCxlPW5ldyBHM3Qpe3N1cGVyKCksdGhpcy50eXBlPSJQb2ludHMiLHRoaXMuZ2VvbWV0cnk9dCx0aGlzLm1hdGVyaWFsPWUsdGhpcy51cGRhdGVNb3JwaFRhcmdldHMoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpc31yYXljYXN0KHQsZSl7Y29uc3Qgbj10aGlzLmdlb21ldHJ5LGk9dGhpcy5tYXRyaXhXb3JsZCxyPXQucGFyYW1zLlBvaW50cy50aHJlc2hvbGQsbz1uLmRyYXdSYW5nZTtpZihudWxsPT09bi5ib3VuZGluZ1NwaGVyZSYmbi5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxZM3QuY29weShuLmJvdW5kaW5nU3BoZXJlKSxZM3QuYXBwbHlNYXRyaXg0KGkpLFkzdC5yYWRpdXMrPXIsITE9PT10LnJheS5pbnRlcnNlY3RzU3BoZXJlKFkzdCkpcmV0dXJuO1czdC5jb3B5KGkpLmludmVydCgpLHEzdC5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQoVzN0KTtjb25zdCBhPXIvKCh0aGlzLnNjYWxlLngrdGhpcy5zY2FsZS55K3RoaXMuc2NhbGUueikvMykscz1hKmE7aWYobi5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCByPW4uaW5kZXgsYT1uLmF0dHJpYnV0ZXMucG9zaXRpb247aWYobnVsbCE9PXIpZm9yKGxldCBuPU1hdGgubWF4KDAsby5zdGFydCksbD1NYXRoLm1pbihyLmNvdW50LG8uc3RhcnQrby5jb3VudCk7bjxsO24rKyl7Y29uc3Qgbz1yLmdldFgobik7WDN0LmZyb21CdWZmZXJBdHRyaWJ1dGUoYSxvKSxLM3QoWDN0LG8scyxpLHQsZSx0aGlzKX1lbHNlIGZvcihsZXQgbj1NYXRoLm1heCgwLG8uc3RhcnQpLHI9TWF0aC5taW4oYS5jb3VudCxvLnN0YXJ0K28uY291bnQpO248cjtuKyspWDN0LmZyb21CdWZmZXJBdHRyaWJ1dGUoYSxuKSxLM3QoWDN0LG4scyxpLHQsZSx0aGlzKX1lbHNlIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlBvaW50cy5yYXljYXN0KCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX11cGRhdGVNb3JwaFRhcmdldHMoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBlPXQubW9ycGhBdHRyaWJ1dGVzLG49T2JqZWN0LmtleXMoZSk7aWYobi5sZW5ndGg+MCl7Y29uc3QgdD1lW25bMF1dO2lmKHZvaWQgMCE9PXQpe3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPVtdLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5PXt9O2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdLm5hbWV8fFN0cmluZyhlKTt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcy5wdXNoKDApLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5W25dPWV9fX19ZWxzZXtjb25zdCBlPXQubW9ycGhUYXJnZXRzO3ZvaWQgMCE9PWUmJmUubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLlBvaW50cy51cGRhdGVNb3JwaFRhcmdldHMoKSBkb2VzIG5vdCBzdXBwb3J0IFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX19fWZ1bmN0aW9uIEszdCh0LGUsbixpLHIsbyxhKXtjb25zdCBzPXEzdC5kaXN0YW5jZVNxVG9Qb2ludCh0KTtpZihzPG4pe2NvbnN0IG49bmV3IENKdDtxM3QuY2xvc2VzdFBvaW50VG9Qb2ludCh0LG4pLG4uYXBwbHlNYXRyaXg0KGkpO2NvbnN0IGw9ci5yYXkub3JpZ2luLmRpc3RhbmNlVG8obik7aWYobDxyLm5lYXJ8fGw+ci5mYXIpcmV0dXJuO28ucHVzaCh7ZGlzdGFuY2U6bCxkaXN0YW5jZVRvUmF5Ok1hdGguc3FydChzKSxwb2ludDpuLGluZGV4OmUsZmFjZTpudWxsLG9iamVjdDphfSl9fSQzdC5wcm90b3R5cGUuaXNQb2ludHM9ITA7Y2xhc3MgWjN0IGV4dGVuZHMgYkp0e2NvbnN0cnVjdG9yKHQsZSxuLGkscixvLGEscyxsKXtzdXBlcih0LGUsbixpLHIsbyxhLHMsbCksdGhpcy5mb3JtYXQ9dm9pZCAwIT09YT9hOnVadCx0aGlzLm1pbkZpbHRlcj12b2lkIDAhPT1vP286ZVp0LHRoaXMubWFnRmlsdGVyPXZvaWQgMCE9PXI/cjplWnQsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITE7Y29uc3QgYz10aGlzOyJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrImluIHQmJnQucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygoZnVuY3Rpb24gZSgpe2MubmVlZHNVcGRhdGU9ITAsdC5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKGUpfSkpfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuaW1hZ2UpLmNvcHkodGhpcyl9dXBkYXRlKCl7Y29uc3QgdD10aGlzLmltYWdlOzA9PSJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrImluIHQmJnQucmVhZHlTdGF0ZT49dC5IQVZFX0NVUlJFTlRfREFUQSYmKHRoaXMubmVlZHNVcGRhdGU9ITApfX1aM3QucHJvdG90eXBlLmlzVmlkZW9UZXh0dXJlPSEwO2NsYXNzIEozdCBleHRlbmRzIGJKdHtjb25zdHJ1Y3Rvcih0LGUsbixpLHIsbyxhLHMsbCxjLHUsaCl7c3VwZXIobnVsbCxvLGEscyxsLGMsaSxyLHUsaCksdGhpcy5pbWFnZT17d2lkdGg6ZSxoZWlnaHQ6bn0sdGhpcy5taXBtYXBzPXQsdGhpcy5mbGlwWT0hMSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMX19SjN0LnByb3RvdHlwZS5pc0NvbXByZXNzZWRUZXh0dXJlPSEwO2NsYXNzIFEzdCBleHRlbmRzIGJKdHtjb25zdHJ1Y3Rvcih0LGUsbixpLHIsbyxhLHMsbCl7c3VwZXIodCxlLG4saSxyLG8sYSxzLGwpLHRoaXMubmVlZHNVcGRhdGU9ITB9fVEzdC5wcm90b3R5cGUuaXNDYW52YXNUZXh0dXJlPSEwO2NsYXNzIHQ0dCBleHRlbmRzIGJKdHtjb25zdHJ1Y3Rvcih0LGUsbixpLHIsbyxhLHMsbCxjKXtpZigoYz12b2lkIDAhPT1jP2M6ZFp0KSE9PWRadCYmYyE9PXBadCl0aHJvdyBuZXcgRXJyb3IoIkRlcHRoVGV4dHVyZSBmb3JtYXQgbXVzdCBiZSBlaXRoZXIgVEhSRUUuRGVwdGhGb3JtYXQgb3IgVEhSRUUuRGVwdGhTdGVuY2lsRm9ybWF0Iik7dm9pZCAwPT09biYmYz09PWRadCYmKG49b1p0KSx2b2lkIDA9PT1uJiZjPT09cFp0JiYobj1jWnQpLHN1cGVyKG51bGwsaSxyLG8sYSxzLGMsbixsKSx0aGlzLmltYWdlPXt3aWR0aDp0LGhlaWdodDplfSx0aGlzLm1hZ0ZpbHRlcj12b2lkIDAhPT1hP2E6Skt0LHRoaXMubWluRmlsdGVyPXZvaWQgMCE9PXM/czpKS3QsdGhpcy5mbGlwWT0hMSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMX19dDR0LnByb3RvdHlwZS5pc0RlcHRoVGV4dHVyZT0hMDtjbGFzcyBlNHQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodD0xLGU9OCxuPTAsaT0yKk1hdGguUEkpe3N1cGVyKCksdGhpcy50eXBlPSJDaXJjbGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCxzZWdtZW50czplLHRoZXRhU3RhcnQ6bix0aGV0YUxlbmd0aDppfSxlPU1hdGgubWF4KDMsZSk7Y29uc3Qgcj1bXSxvPVtdLGE9W10scz1bXSxsPW5ldyBDSnQsYz1uZXcgbUp0O28ucHVzaCgwLDAsMCksYS5wdXNoKDAsMCwxKSxzLnB1c2goLjUsLjUpO2ZvcihsZXQgcj0wLHU9MztyPD1lO3IrKyx1Kz0zKXtjb25zdCBoPW4rci9lKmk7bC54PXQqTWF0aC5jb3MoaCksbC55PXQqTWF0aC5zaW4oaCksby5wdXNoKGwueCxsLnksbC56KSxhLnB1c2goMCwwLDEpLGMueD0ob1t1XS90KzEpLzIsYy55PShvW3UrMV0vdCsxKS8yLHMucHVzaChjLngsYy55KX1mb3IobGV0IHQ9MTt0PD1lO3QrKylyLnB1c2godCx0KzEsMCk7dGhpcy5zZXRJbmRleChyKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQobywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGwxdChhLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBsMXQocywyKSl9c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgZTR0KHQucmFkaXVzLHQuc2VnbWVudHMsdC50aGV0YVN0YXJ0LHQudGhldGFMZW5ndGgpfX1jbGFzcyBuNHQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodD0xLGU9MSxuPTEsaT04LHI9MSxvPSExLGE9MCxzPTIqTWF0aC5QSSl7c3VwZXIoKSx0aGlzLnR5cGU9IkN5bGluZGVyR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzVG9wOnQscmFkaXVzQm90dG9tOmUsaGVpZ2h0Om4scmFkaWFsU2VnbWVudHM6aSxoZWlnaHRTZWdtZW50czpyLG9wZW5FbmRlZDpvLHRoZXRhU3RhcnQ6YSx0aGV0YUxlbmd0aDpzfTtjb25zdCBsPXRoaXM7aT1NYXRoLmZsb29yKGkpLHI9TWF0aC5mbG9vcihyKTtjb25zdCBjPVtdLHU9W10saD1bXSxkPVtdO2xldCBwPTA7Y29uc3QgZj1bXSxtPW4vMjtsZXQgZz0wO2Z1bmN0aW9uIF8obil7Y29uc3Qgcj1wLG89bmV3IG1KdCxmPW5ldyBDSnQ7bGV0IF89MDtjb25zdCB5PSEwPT09bj90OmUsdj0hMD09PW4/MTotMTtmb3IobGV0IHQ9MTt0PD1pO3QrKyl1LnB1c2goMCxtKnYsMCksaC5wdXNoKDAsdiwwKSxkLnB1c2goLjUsLjUpLHArKztjb25zdCBiPXA7Zm9yKGxldCB0PTA7dDw9aTt0Kyspe2NvbnN0IGU9dC9pKnMrYSxuPU1hdGguY29zKGUpLHI9TWF0aC5zaW4oZSk7Zi54PXkqcixmLnk9bSp2LGYuej15Km4sdS5wdXNoKGYueCxmLnksZi56KSxoLnB1c2goMCx2LDApLG8ueD0uNSpuKy41LG8ueT0uNSpyKnYrLjUsZC5wdXNoKG8ueCxvLnkpLHArK31mb3IobGV0IHQ9MDt0PGk7dCsrKXtjb25zdCBlPXIrdCxpPWIrdDshMD09PW4/Yy5wdXNoKGksaSsxLGUpOmMucHVzaChpKzEsaSxlKSxfKz0zfWwuYWRkR3JvdXAoZyxfLCEwPT09bj8xOjIpLGcrPV99IShmdW5jdGlvbiB5KCl7Y29uc3Qgbz1uZXcgQ0p0LF89bmV3IENKdDtsZXQgeT0wO2NvbnN0IHY9KGUtdCkvbjtmb3IobGV0IGw9MDtsPD1yO2wrKyl7Y29uc3QgYz1bXSxnPWwvcix5PWcqKGUtdCkrdDtmb3IobGV0IHQ9MDt0PD1pO3QrKyl7Y29uc3QgZT10L2kscj1lKnMrYSxsPU1hdGguc2luKHIpLGY9TWF0aC5jb3Mocik7Xy54PXkqbCxfLnk9LWcqbittLF8uej15KmYsdS5wdXNoKF8ueCxfLnksXy56KSxvLnNldChsLHYsZikubm9ybWFsaXplKCksaC5wdXNoKG8ueCxvLnksby56KSxkLnB1c2goZSwxLWcpLGMucHVzaChwKyspfWYucHVzaChjKX1mb3IobGV0IHQ9MDt0PGk7dCsrKWZvcihsZXQgZT0wO2U8cjtlKyspe2NvbnN0IG49ZltlKzFdW3RdLGk9ZltlKzFdW3QrMV0scj1mW2VdW3QrMV07Yy5wdXNoKGZbZV1bdF0sbixyKSxjLnB1c2gobixpLHIpLHkrPTZ9bC5hZGRHcm91cChnLHksMCksZys9eX0pKCksITE9PT1vJiYodD4wJiZfKCEwKSxlPjAmJl8oITEpKSx0aGlzLnNldEluZGV4KGMpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdCh1LDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgbDF0KGgsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGwxdChkLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBuNHQodC5yYWRpdXNUb3AsdC5yYWRpdXNCb3R0b20sdC5oZWlnaHQsdC5yYWRpYWxTZWdtZW50cyx0LmhlaWdodFNlZ21lbnRzLHQub3BlbkVuZGVkLHQudGhldGFTdGFydCx0LnRoZXRhTGVuZ3RoKX19Y2xhc3MgaTR0IGV4dGVuZHMgbjR0e2NvbnN0cnVjdG9yKHQ9MSxlPTEsbj04LGk9MSxyPSExLG89MCxhPTIqTWF0aC5QSSl7c3VwZXIoMCx0LGUsbixpLHIsbyxhKSx0aGlzLnR5cGU9IkNvbmVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCxoZWlnaHQ6ZSxyYWRpYWxTZWdtZW50czpuLGhlaWdodFNlZ21lbnRzOmksb3BlbkVuZGVkOnIsdGhldGFTdGFydDpvLHRoZXRhTGVuZ3RoOmF9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGk0dCh0LnJhZGl1cyx0LmhlaWdodCx0LnJhZGlhbFNlZ21lbnRzLHQuaGVpZ2h0U2VnbWVudHMsdC5vcGVuRW5kZWQsdC50aGV0YVN0YXJ0LHQudGhldGFMZW5ndGgpfX1jbGFzcyByNHQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodCxlLG49MSxpPTApe3N1cGVyKCksdGhpcy50eXBlPSJQb2x5aGVkcm9uR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17dmVydGljZXM6dCxpbmRpY2VzOmUscmFkaXVzOm4sZGV0YWlsOml9O2NvbnN0IHI9W10sbz1bXTtmdW5jdGlvbiBhKHQsZSxuLGkpe2NvbnN0IHI9aSsxLG89W107Zm9yKGxldCBpPTA7aTw9cjtpKyspe29baV09W107Y29uc3QgYT10LmNsb25lKCkubGVycChuLGkvcikscz1lLmNsb25lKCkubGVycChuLGkvciksbD1yLWk7Zm9yKGxldCB0PTA7dDw9bDt0Kyspb1tpXVt0XT0wPT09dCYmaT09PXI/YTphLmNsb25lKCkubGVycChzLHQvbCl9Zm9yKGxldCB0PTA7dDxyO3QrKylmb3IobGV0IGU9MDtlPDIqKHItdCktMTtlKyspe2NvbnN0IG49TWF0aC5mbG9vcihlLzIpO2UlMj09MD8ocyhvW3RdW24rMV0pLHMob1t0KzFdW25dKSxzKG9bdF1bbl0pKToocyhvW3RdW24rMV0pLHMob1t0KzFdW24rMV0pLHMob1t0KzFdW25dKSl9fWZ1bmN0aW9uIHModCl7ci5wdXNoKHQueCx0LnksdC56KX1mdW5jdGlvbiBsKGUsbil7Y29uc3QgaT0zKmU7bi54PXRbaSswXSxuLnk9dFtpKzFdLG4uej10W2krMl19ZnVuY3Rpb24gYyh0LGUsbixpKXtpPDAmJjE9PT10LngmJihvW2VdPXQueC0xKSwwPT09bi54JiYwPT09bi56JiYob1tlXT1pLzIvTWF0aC5QSSsuNSl9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gTWF0aC5hdGFuMih0LnosLXQueCl9IShmdW5jdGlvbiBoKHQpe2NvbnN0IG49bmV3IENKdCxpPW5ldyBDSnQscj1uZXcgQ0p0O2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7bys9MylsKGVbbyswXSxuKSxsKGVbbysxXSxpKSxsKGVbbysyXSxyKSxhKG4saSxyLHQpfSkoaSksKGZ1bmN0aW9uIGQodCl7Y29uc3QgZT1uZXcgQ0p0O2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bis9MyllLng9cltuKzBdLGUueT1yW24rMV0sZS56PXJbbisyXSxlLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHQpLHJbbiswXT1lLngscltuKzFdPWUueSxyW24rMl09ZS56fSkobiksKGZ1bmN0aW9uIHAoKXtjb25zdCB0PW5ldyBDSnQ7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKz0zKXt0Lng9cltuKzBdLHQueT1yW24rMV0sdC56PXJbbisyXTtjb25zdCBpPXUodCkvMi9NYXRoLlBJKy41LGE9KGU9dCxNYXRoLmF0YW4yKC1lLnksTWF0aC5zcXJ0KGUueCplLngrZS56KmUueikpL01hdGguUEkrLjUpO28ucHVzaChpLDEtYSl9dmFyIGU7KGZ1bmN0aW9uIG4oKXtjb25zdCB0PW5ldyBDSnQsZT1uZXcgQ0p0LG49bmV3IENKdCxpPW5ldyBDSnQsYT1uZXcgbUp0LHM9bmV3IG1KdCxsPW5ldyBtSnQ7Zm9yKGxldCBoPTAsZD0wO2g8ci5sZW5ndGg7aCs9OSxkKz02KXt0LnNldChyW2grMF0scltoKzFdLHJbaCsyXSksZS5zZXQocltoKzNdLHJbaCs0XSxyW2grNV0pLG4uc2V0KHJbaCs2XSxyW2grN10scltoKzhdKSxhLnNldChvW2QrMF0sb1tkKzFdKSxzLnNldChvW2QrMl0sb1tkKzNdKSxsLnNldChvW2QrNF0sb1tkKzVdKSxpLmNvcHkodCkuYWRkKGUpLmFkZChuKS5kaXZpZGVTY2FsYXIoMyk7Y29uc3QgcD11KGkpO2MoYSxkKzAsdCxwKSxjKHMsZCsyLGUscCksYyhsLGQrNCxuLHApfX0pKCksKGZ1bmN0aW9uIGkoKXtmb3IobGV0IHQ9MDt0PG8ubGVuZ3RoO3QrPTYpe2NvbnN0IGU9b1t0KzBdLG49b1t0KzJdLGk9b1t0KzRdLHI9TWF0aC5tYXgoZSxuLGkpLGE9TWF0aC5taW4oZSxuLGkpO3I+LjkmJmE8LjEmJihlPC4yJiYob1t0KzBdKz0xKSxuPC4yJiYob1t0KzJdKz0xKSxpPC4yJiYob1t0KzRdKz0xKSl9fSkoKX0pKCksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KHIsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBsMXQoci5zbGljZSgpLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBsMXQobywyKSksMD09PWk/dGhpcy5jb21wdXRlVmVydGV4Tm9ybWFscygpOnRoaXMubm9ybWFsaXplTm9ybWFscygpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IHI0dCh0LnZlcnRpY2VzLHQuaW5kaWNlcyx0LnJhZGl1cyx0LmRldGFpbHMpfX1jbGFzcyBvNHQgZXh0ZW5kcyByNHR7Y29uc3RydWN0b3IodD0xLGU9MCl7Y29uc3Qgbj0oMStNYXRoLnNxcnQoNSkpLzIsaT0xL247c3VwZXIoWy0xLC0xLC0xLC0xLC0xLDEsLTEsMSwtMSwtMSwxLDEsMSwtMSwtMSwxLC0xLDEsMSwxLC0xLDEsMSwxLDAsLWksLW4sMCwtaSxuLDAsaSwtbiwwLGksbiwtaSwtbiwwLC1pLG4sMCxpLC1uLDAsaSxuLDAsLW4sMCwtaSxuLDAsLWksLW4sMCxpLG4sMCxpXSxbMywxMSw3LDMsNywxNSwzLDE1LDEzLDcsMTksMTcsNywxNyw2LDcsNiwxNSwxNyw0LDgsMTcsOCwxMCwxNywxMCw2LDgsMCwxNiw4LDE2LDIsOCwyLDEwLDAsMTIsMSwwLDEsMTgsMCwxOCwxNiw2LDEwLDIsNiwyLDEzLDYsMTMsMTUsMiwxNiwxOCwyLDE4LDMsMiwzLDEzLDE4LDEsOSwxOCw5LDExLDE4LDExLDMsNCwxNCwxMiw0LDEyLDAsNCwwLDgsMTEsOSw1LDExLDUsMTksMTEsMTksNywxOSw1LDE0LDE5LDE0LDQsMTksNCwxNywxLDEyLDE0LDEsMTQsNSwxLDUsOV0sdCxlKSx0aGlzLnR5cGU9IkRvZGVjYWhlZHJvbkdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LGRldGFpbDplfX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBvNHQodC5yYWRpdXMsdC5kZXRhaWwpfX1jb25zdCBhNHQ9bmV3IENKdCxzNHQ9bmV3IENKdCxsNHQ9bmV3IENKdCxjNHQ9bmV3IEZRdDtjbGFzcyB1NHQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodCxlKXtpZihzdXBlcigpLHRoaXMudHlwZT0iRWRnZXNHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXt0aHJlc2hvbGRBbmdsZTplfSxlPXZvaWQgMCE9PWU/ZToxLCEwPT09dC5pc0dlb21ldHJ5KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkVkZ2VzR2VvbWV0cnkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKTtjb25zdCBuPU1hdGguY29zKHFadCplKSxpPXQuZ2V0SW5kZXgoKSxyPXQuZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpLG89aT9pLmNvdW50OnIuY291bnQsYT1bMCwwLDBdLHM9WyJhIiwiYiIsImMiXSxsPW5ldyBBcnJheSgzKSxjPXt9LHU9W107Zm9yKGxldCB0PTA7dDxvO3QrPTMpe2k/KGFbMF09aS5nZXRYKHQpLGFbMV09aS5nZXRYKHQrMSksYVsyXT1pLmdldFgodCsyKSk6KGFbMF09dCxhWzFdPXQrMSxhWzJdPXQrMik7Y29uc3R7YTplLGI6byxjOmh9PWM0dDtpZihlLmZyb21CdWZmZXJBdHRyaWJ1dGUocixhWzBdKSxvLmZyb21CdWZmZXJBdHRyaWJ1dGUocixhWzFdKSxoLmZyb21CdWZmZXJBdHRyaWJ1dGUocixhWzJdKSxjNHQuZ2V0Tm9ybWFsKGw0dCksbFswXT1gJHtlLnh9LCR7ZS55fSwke2Uuen1gLGxbMV09YCR7by54fSwke28ueX0sJHtvLnp9YCxsWzJdPWAke2gueH0sJHtoLnl9LCR7aC56fWAsbFswXSE9PWxbMV0mJmxbMV0hPT1sWzJdJiZsWzJdIT09bFswXSlmb3IobGV0IHQ9MDt0PDM7dCsrKXtjb25zdCBlPSh0KzEpJTMsaT1sW3RdLHI9bFtlXSxvPWM0dFtzW3RdXSxoPWM0dFtzW2VdXSxkPWAke2l9XyR7cn1gLHA9YCR7cn1fJHtpfWA7cCBpbiBjJiZjW3BdPyhsNHQuZG90KGNbcF0ubm9ybWFsKTw9biYmKHUucHVzaChvLngsby55LG8ueiksdS5wdXNoKGgueCxoLnksaC56KSksY1twXT1udWxsKTpkIGluIGN8fChjW2RdPXtpbmRleDA6YVt0XSxpbmRleDE6YVtlXSxub3JtYWw6bDR0LmNsb25lKCl9KX19Zm9yKGNvbnN0IHQgaW4gYylpZihjW3RdKXtjb25zdHtpbmRleDA6ZSxpbmRleDE6bn09Y1t0XTthNHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLGUpLHM0dC5mcm9tQnVmZmVyQXR0cmlidXRlKHIsbiksdS5wdXNoKGE0dC54LGE0dC55LGE0dC56KSx1LnB1c2goczR0LngsczR0LnksczR0LnopfXRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdCh1LDMpKX19Y2xhc3MgaDR0e2NvbnN0cnVjdG9yKCl7dGhpcy50eXBlPSJDdXJ2ZSIsdGhpcy5hcmNMZW5ndGhEaXZpc2lvbnM9MjAwfWdldFBvaW50KCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3VydmU6IC5nZXRQb2ludCgpIG5vdCBpbXBsZW1lbnRlZC4iKSxudWxsfWdldFBvaW50QXQodCxlKXtjb25zdCBuPXRoaXMuZ2V0VXRvVG1hcHBpbmcodCk7cmV0dXJuIHRoaXMuZ2V0UG9pbnQobixlKX1nZXRQb2ludHModD01KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248PXQ7bisrKWUucHVzaCh0aGlzLmdldFBvaW50KG4vdCkpO3JldHVybiBlfWdldFNwYWNlZFBvaW50cyh0PTUpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjw9dDtuKyspZS5wdXNoKHRoaXMuZ2V0UG9pbnRBdChuL3QpKTtyZXR1cm4gZX1nZXRMZW5ndGgoKXtjb25zdCB0PXRoaXMuZ2V0TGVuZ3RocygpO3JldHVybiB0W3QubGVuZ3RoLTFdfWdldExlbmd0aHModD10aGlzLmFyY0xlbmd0aERpdmlzaW9ucyl7aWYodGhpcy5jYWNoZUFyY0xlbmd0aHMmJnRoaXMuY2FjaGVBcmNMZW5ndGhzLmxlbmd0aD09PXQrMSYmIXRoaXMubmVlZHNVcGRhdGUpcmV0dXJuIHRoaXMuY2FjaGVBcmNMZW5ndGhzO3RoaXMubmVlZHNVcGRhdGU9ITE7Y29uc3QgZT1bXTtsZXQgbixpPXRoaXMuZ2V0UG9pbnQoMCkscj0wO2UucHVzaCgwKTtmb3IobGV0IG89MTtvPD10O28rKyluPXRoaXMuZ2V0UG9pbnQoby90KSxyKz1uLmRpc3RhbmNlVG8oaSksZS5wdXNoKHIpLGk9bjtyZXR1cm4gdGhpcy5jYWNoZUFyY0xlbmd0aHM9ZSxlfXVwZGF0ZUFyY0xlbmd0aHMoKXt0aGlzLm5lZWRzVXBkYXRlPSEwLHRoaXMuZ2V0TGVuZ3RocygpfWdldFV0b1RtYXBwaW5nKHQsZSl7Y29uc3Qgbj10aGlzLmdldExlbmd0aHMoKTtsZXQgaT0wO2NvbnN0IHI9bi5sZW5ndGg7bGV0IG87bz1lfHx0Km5bci0xXTtsZXQgYSxzPTAsbD1yLTE7Zm9yKDtzPD1sOylpZihpPU1hdGguZmxvb3IocysobC1zKS8yKSxhPW5baV0tbyxhPDApcz1pKzE7ZWxzZXtpZighKGE+MCkpe2w9aTticmVha31sPWktMX1pZihpPWwsbltpXT09PW8pcmV0dXJuIGkvKHItMSk7Y29uc3QgYz1uW2ldO3JldHVybihpKyhvLWMpLyhuW2krMV0tYykpLyhyLTEpfWdldFRhbmdlbnQodCxlKXtjb25zdCBuPTFlLTQ7bGV0IGk9dC1uLHI9dCtuO2k8MCYmKGk9MCkscj4xJiYocj0xKTtjb25zdCBvPXRoaXMuZ2V0UG9pbnQoaSksYT10aGlzLmdldFBvaW50KHIpLHM9ZXx8KG8uaXNWZWN0b3IyP25ldyBtSnQ6bmV3IENKdCk7cmV0dXJuIHMuY29weShhKS5zdWIobykubm9ybWFsaXplKCksc31nZXRUYW5nZW50QXQodCxlKXtjb25zdCBuPXRoaXMuZ2V0VXRvVG1hcHBpbmcodCk7cmV0dXJuIHRoaXMuZ2V0VGFuZ2VudChuLGUpfWNvbXB1dGVGcmVuZXRGcmFtZXModCxlKXtjb25zdCBuPW5ldyBDSnQsaT1bXSxyPVtdLG89W10sYT1uZXcgQ0p0LHM9bmV3IHJRdDtmb3IobGV0IGU9MDtlPD10O2UrKylpW2VdPXRoaXMuZ2V0VGFuZ2VudEF0KGUvdCxuZXcgQ0p0KSxpW2VdLm5vcm1hbGl6ZSgpO3JbMF09bmV3IENKdCxvWzBdPW5ldyBDSnQ7bGV0IGw9TnVtYmVyLk1BWF9WQUxVRTtjb25zdCBjPU1hdGguYWJzKGlbMF0ueCksdT1NYXRoLmFicyhpWzBdLnkpLGg9TWF0aC5hYnMoaVswXS56KTtjPD1sJiYobD1jLG4uc2V0KDEsMCwwKSksdTw9bCYmKGw9dSxuLnNldCgwLDEsMCkpLGg8PWwmJm4uc2V0KDAsMCwxKSxhLmNyb3NzVmVjdG9ycyhpWzBdLG4pLm5vcm1hbGl6ZSgpLHJbMF0uY3Jvc3NWZWN0b3JzKGlbMF0sYSksb1swXS5jcm9zc1ZlY3RvcnMoaVswXSxyWzBdKTtmb3IobGV0IGU9MTtlPD10O2UrKyl7aWYocltlXT1yW2UtMV0uY2xvbmUoKSxvW2VdPW9bZS0xXS5jbG9uZSgpLGEuY3Jvc3NWZWN0b3JzKGlbZS0xXSxpW2VdKSxhLmxlbmd0aCgpPk51bWJlci5FUFNJTE9OKXthLm5vcm1hbGl6ZSgpO2NvbnN0IHQ9TWF0aC5hY29zKCRadChpW2UtMV0uZG90KGlbZV0pLC0xLDEpKTtyW2VdLmFwcGx5TWF0cml4NChzLm1ha2VSb3RhdGlvbkF4aXMoYSx0KSl9b1tlXS5jcm9zc1ZlY3RvcnMoaVtlXSxyW2VdKX1pZighMD09PWUpe2xldCBlPU1hdGguYWNvcygkWnQoclswXS5kb3Qoclt0XSksLTEsMSkpO2UvPXQsaVswXS5kb3QoYS5jcm9zc1ZlY3RvcnMoclswXSxyW3RdKSk+MCYmKGU9LWUpO2ZvcihsZXQgbj0xO248PXQ7bisrKXJbbl0uYXBwbHlNYXRyaXg0KHMubWFrZVJvdGF0aW9uQXhpcyhpW25dLGUqbikpLG9bbl0uY3Jvc3NWZWN0b3JzKGlbbl0scltuXSl9cmV0dXJue3RhbmdlbnRzOmksbm9ybWFsczpyLGJpbm9ybWFsczpvfX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLmFyY0xlbmd0aERpdmlzaW9ucz10LmFyY0xlbmd0aERpdmlzaW9ucyx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJDdXJ2ZSIsZ2VuZXJhdG9yOiJDdXJ2ZS50b0pTT04ifX07cmV0dXJuIHQuYXJjTGVuZ3RoRGl2aXNpb25zPXRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zLHQudHlwZT10aGlzLnR5cGUsdH1mcm9tSlNPTih0KXtyZXR1cm4gdGhpcy5hcmNMZW5ndGhEaXZpc2lvbnM9dC5hcmNMZW5ndGhEaXZpc2lvbnMsdGhpc319Y2xhc3MgZDR0IGV4dGVuZHMgaDR0e2NvbnN0cnVjdG9yKHQ9MCxlPTAsbj0xLGk9MSxyPTAsbz0yKk1hdGguUEksYT0hMSxzPTApe3N1cGVyKCksdGhpcy50eXBlPSJFbGxpcHNlQ3VydmUiLHRoaXMuYVg9dCx0aGlzLmFZPWUsdGhpcy54UmFkaXVzPW4sdGhpcy55UmFkaXVzPWksdGhpcy5hU3RhcnRBbmdsZT1yLHRoaXMuYUVuZEFuZ2xlPW8sdGhpcy5hQ2xvY2t3aXNlPWEsdGhpcy5hUm90YXRpb249c31nZXRQb2ludCh0LGUpe2NvbnN0IG49ZXx8bmV3IG1KdCxpPTIqTWF0aC5QSTtsZXQgcj10aGlzLmFFbmRBbmdsZS10aGlzLmFTdGFydEFuZ2xlO2NvbnN0IG89TWF0aC5hYnMocik8TnVtYmVyLkVQU0lMT047Zm9yKDtyPDA7KXIrPWk7Zm9yKDtyPmk7KXItPWk7cjxOdW1iZXIuRVBTSUxPTiYmKHI9bz8wOmkpLCEwIT09dGhpcy5hQ2xvY2t3aXNlfHxvfHwocj09PWk/cj0taTpyLT1pKTtjb25zdCBhPXRoaXMuYVN0YXJ0QW5nbGUrdCpyO2xldCBzPXRoaXMuYVgrdGhpcy54UmFkaXVzKk1hdGguY29zKGEpLGw9dGhpcy5hWSt0aGlzLnlSYWRpdXMqTWF0aC5zaW4oYSk7aWYoMCE9PXRoaXMuYVJvdGF0aW9uKXtjb25zdCB0PU1hdGguY29zKHRoaXMuYVJvdGF0aW9uKSxlPU1hdGguc2luKHRoaXMuYVJvdGF0aW9uKSxuPXMtdGhpcy5hWCxpPWwtdGhpcy5hWTtzPW4qdC1pKmUrdGhpcy5hWCxsPW4qZStpKnQrdGhpcy5hWX1yZXR1cm4gbi5zZXQocyxsKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuYVg9dC5hWCx0aGlzLmFZPXQuYVksdGhpcy54UmFkaXVzPXQueFJhZGl1cyx0aGlzLnlSYWRpdXM9dC55UmFkaXVzLHRoaXMuYVN0YXJ0QW5nbGU9dC5hU3RhcnRBbmdsZSx0aGlzLmFFbmRBbmdsZT10LmFFbmRBbmdsZSx0aGlzLmFDbG9ja3dpc2U9dC5hQ2xvY2t3aXNlLHRoaXMuYVJvdGF0aW9uPXQuYVJvdGF0aW9uLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC5hWD10aGlzLmFYLHQuYVk9dGhpcy5hWSx0LnhSYWRpdXM9dGhpcy54UmFkaXVzLHQueVJhZGl1cz10aGlzLnlSYWRpdXMsdC5hU3RhcnRBbmdsZT10aGlzLmFTdGFydEFuZ2xlLHQuYUVuZEFuZ2xlPXRoaXMuYUVuZEFuZ2xlLHQuYUNsb2Nrd2lzZT10aGlzLmFDbG9ja3dpc2UsdC5hUm90YXRpb249dGhpcy5hUm90YXRpb24sdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy5hWD10LmFYLHRoaXMuYVk9dC5hWSx0aGlzLnhSYWRpdXM9dC54UmFkaXVzLHRoaXMueVJhZGl1cz10LnlSYWRpdXMsdGhpcy5hU3RhcnRBbmdsZT10LmFTdGFydEFuZ2xlLHRoaXMuYUVuZEFuZ2xlPXQuYUVuZEFuZ2xlLHRoaXMuYUNsb2Nrd2lzZT10LmFDbG9ja3dpc2UsdGhpcy5hUm90YXRpb249dC5hUm90YXRpb24sdGhpc319ZDR0LnByb3RvdHlwZS5pc0VsbGlwc2VDdXJ2ZT0hMDtjbGFzcyBwNHQgZXh0ZW5kcyBkNHR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8pe3N1cGVyKHQsZSxuLG4saSxyLG8pLHRoaXMudHlwZT0iQXJjQ3VydmUifX1mdW5jdGlvbiBmNHQoKXtsZXQgdD0wLGU9MCxuPTAsaT0wO2Z1bmN0aW9uIHIocixvLGEscyl7dD1yLGU9YSxuPS0zKnIrMypvLTIqYS1zLGk9MipyLTIqbythK3N9cmV0dXJue2luaXRDYXRtdWxsUm9tOmZ1bmN0aW9uKHQsZSxuLGksbyl7cihlLG4sbyoobi10KSxvKihpLWUpKX0saW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tOmZ1bmN0aW9uKHQsZSxuLGksbyxhLHMpe2xldCBsPShlLXQpL28tKG4tdCkvKG8rYSkrKG4tZSkvYSxjPShuLWUpL2EtKGktZSkvKGErcykrKGktbikvcztsKj1hLGMqPWEscihlLG4sbCxjKX0sY2FsYzpmdW5jdGlvbihyKXtjb25zdCBvPXIqcjtyZXR1cm4gdCtlKnIrbipvK2kqKG8qcil9fX1wNHQucHJvdG90eXBlLmlzQXJjQ3VydmU9ITA7Y29uc3QgbTR0PW5ldyBDSnQsZzR0PW5ldyBmNHQsXzR0PW5ldyBmNHQseTR0PW5ldyBmNHQ7Y2xhc3MgdjR0IGV4dGVuZHMgaDR0e2NvbnN0cnVjdG9yKHQ9W10sZT0hMSxuPSJjZW50cmlwZXRhbCIsaT0uNSl7c3VwZXIoKSx0aGlzLnR5cGU9IkNhdG11bGxSb21DdXJ2ZTMiLHRoaXMucG9pbnRzPXQsdGhpcy5jbG9zZWQ9ZSx0aGlzLmN1cnZlVHlwZT1uLHRoaXMudGVuc2lvbj1pfWdldFBvaW50KHQsZT1uZXcgQ0p0KXtjb25zdCBuPWUsaT10aGlzLnBvaW50cyxyPWkubGVuZ3RoLG89KHItKHRoaXMuY2xvc2VkPzA6MSkpKnQ7bGV0IGEscyxsPU1hdGguZmxvb3IobyksYz1vLWw7dGhpcy5jbG9zZWQ/bCs9bD4wPzA6KE1hdGguZmxvb3IoTWF0aC5hYnMobCkvcikrMSkqcjowPT09YyYmbD09PXItMSYmKGw9ci0yLGM9MSksdGhpcy5jbG9zZWR8fGw+MD9hPWlbKGwtMSklcl06KG00dC5zdWJWZWN0b3JzKGlbMF0saVsxXSkuYWRkKGlbMF0pLGE9bTR0KTtjb25zdCB1PWlbbCVyXSxoPWlbKGwrMSklcl07aWYodGhpcy5jbG9zZWR8fGwrMjxyP3M9aVsobCsyKSVyXToobTR0LnN1YlZlY3RvcnMoaVtyLTFdLGlbci0yXSkuYWRkKGlbci0xXSkscz1tNHQpLCJjZW50cmlwZXRhbCI9PT10aGlzLmN1cnZlVHlwZXx8ImNob3JkYWwiPT09dGhpcy5jdXJ2ZVR5cGUpe2NvbnN0IHQ9ImNob3JkYWwiPT09dGhpcy5jdXJ2ZVR5cGU/LjU6LjI1O2xldCBlPU1hdGgucG93KGEuZGlzdGFuY2VUb1NxdWFyZWQodSksdCksbj1NYXRoLnBvdyh1LmRpc3RhbmNlVG9TcXVhcmVkKGgpLHQpLGk9TWF0aC5wb3coaC5kaXN0YW5jZVRvU3F1YXJlZChzKSx0KTtuPDFlLTQmJihuPTEpLGU8MWUtNCYmKGU9biksaTwxZS00JiYoaT1uKSxnNHQuaW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tKGEueCx1LngsaC54LHMueCxlLG4saSksXzR0LmluaXROb251bmlmb3JtQ2F0bXVsbFJvbShhLnksdS55LGgueSxzLnksZSxuLGkpLHk0dC5pbml0Tm9udW5pZm9ybUNhdG11bGxSb20oYS56LHUueixoLnoscy56LGUsbixpKX1lbHNlImNhdG11bGxyb20iPT09dGhpcy5jdXJ2ZVR5cGUmJihnNHQuaW5pdENhdG11bGxSb20oYS54LHUueCxoLngscy54LHRoaXMudGVuc2lvbiksXzR0LmluaXRDYXRtdWxsUm9tKGEueSx1LnksaC55LHMueSx0aGlzLnRlbnNpb24pLHk0dC5pbml0Q2F0bXVsbFJvbShhLnosdS56LGgueixzLnosdGhpcy50ZW5zaW9uKSk7cmV0dXJuIG4uc2V0KGc0dC5jYWxjKGMpLF80dC5jYWxjKGMpLHk0dC5jYWxjKGMpKSxufWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLnBvaW50cz1bXTtmb3IobGV0IGU9MCxuPXQucG9pbnRzLmxlbmd0aDtlPG47ZSsrKXRoaXMucG9pbnRzLnB1c2godC5wb2ludHNbZV0uY2xvbmUoKSk7cmV0dXJuIHRoaXMuY2xvc2VkPXQuY2xvc2VkLHRoaXMuY3VydmVUeXBlPXQuY3VydmVUeXBlLHRoaXMudGVuc2lvbj10LnRlbnNpb24sdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5wb2ludHMubGVuZ3RoO2U8bjtlKyspdC5wb2ludHMucHVzaCh0aGlzLnBvaW50c1tlXS50b0FycmF5KCkpO3JldHVybiB0LmNsb3NlZD10aGlzLmNsb3NlZCx0LmN1cnZlVHlwZT10aGlzLmN1cnZlVHlwZSx0LnRlbnNpb249dGhpcy50ZW5zaW9uLHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy5wb2ludHM9W107Zm9yKGxldCBlPTAsbj10LnBvaW50cy5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10LnBvaW50c1tlXTt0aGlzLnBvaW50cy5wdXNoKChuZXcgQ0p0KS5mcm9tQXJyYXkobikpfXJldHVybiB0aGlzLmNsb3NlZD10LmNsb3NlZCx0aGlzLmN1cnZlVHlwZT10LmN1cnZlVHlwZSx0aGlzLnRlbnNpb249dC50ZW5zaW9uLHRoaXN9fWZ1bmN0aW9uIGI0dCh0LGUsbixpLHIpe2NvbnN0IG89LjUqKGktZSksYT0uNSooci1uKSxzPXQqdDtyZXR1cm4oMipuLTIqaStvK2EpKih0KnMpKygtMypuKzMqaS0yKm8tYSkqcytvKnQrbn1mdW5jdGlvbiB4NHQodCxlLG4saSl7cmV0dXJuKGZ1bmN0aW9uIHIodCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gbipuKmV9KSh0LGUpKyhmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIDIqKDEtdCkqdCplfSkodCxuKSsoZnVuY3Rpb24gYSh0LGUpe3JldHVybiB0KnQqZX0pKHQsaSl9ZnVuY3Rpb24gdzR0KHQsZSxuLGkscil7cmV0dXJuKGZ1bmN0aW9uIG8odCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gbipuKm4qZX0pKHQsZSkrKGZ1bmN0aW9uIGEodCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gMypuKm4qdCplfSkodCxuKSsoZnVuY3Rpb24gcyh0LGUpe3JldHVybiAzKigxLXQpKnQqdCplfSkodCxpKSsoZnVuY3Rpb24gbCh0LGUpe3JldHVybiB0KnQqdCplfSkodCxyKX12NHQucHJvdG90eXBlLmlzQ2F0bXVsbFJvbUN1cnZlMz0hMDtjbGFzcyBTNHQgZXh0ZW5kcyBoNHR7Y29uc3RydWN0b3IodD1uZXcgbUp0LGU9bmV3IG1KdCxuPW5ldyBtSnQsaT1uZXcgbUp0KXtzdXBlcigpLHRoaXMudHlwZT0iQ3ViaWNCZXppZXJDdXJ2ZSIsdGhpcy52MD10LHRoaXMudjE9ZSx0aGlzLnYyPW4sdGhpcy52Mz1pfWdldFBvaW50KHQsZT1uZXcgbUp0KXtjb25zdCBuPWUsaT10aGlzLnYwLHI9dGhpcy52MSxvPXRoaXMudjIsYT10aGlzLnYzO3JldHVybiBuLnNldCh3NHQodCxpLngsci54LG8ueCxhLngpLHc0dCh0LGkueSxyLnksby55LGEueSkpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzLnYzLmNvcHkodC52MyksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0LnYzPXRoaXMudjMudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXMudjMuZnJvbUFycmF5KHQudjMpLHRoaXN9fVM0dC5wcm90b3R5cGUuaXNDdWJpY0JlemllckN1cnZlPSEwO2NsYXNzIE00dCBleHRlbmRzIGg0dHtjb25zdHJ1Y3Rvcih0PW5ldyBDSnQsZT1uZXcgQ0p0LG49bmV3IENKdCxpPW5ldyBDSnQpe3N1cGVyKCksdGhpcy50eXBlPSJDdWJpY0JlemllckN1cnZlMyIsdGhpcy52MD10LHRoaXMudjE9ZSx0aGlzLnYyPW4sdGhpcy52Mz1pfWdldFBvaW50KHQsZT1uZXcgQ0p0KXtjb25zdCBuPWUsaT10aGlzLnYwLHI9dGhpcy52MSxvPXRoaXMudjIsYT10aGlzLnYzO3JldHVybiBuLnNldCh3NHQodCxpLngsci54LG8ueCxhLngpLHc0dCh0LGkueSxyLnksby55LGEueSksdzR0KHQsaS56LHIueixvLnosYS56KSksbn1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjAuY29weSh0LnYwKSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXMudjMuY29weSh0LnYzKSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHQudjM9dGhpcy52My50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MC5mcm9tQXJyYXkodC52MCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpcy52My5mcm9tQXJyYXkodC52MyksdGhpc319TTR0LnByb3RvdHlwZS5pc0N1YmljQmV6aWVyQ3VydmUzPSEwO2NsYXNzIEU0dCBleHRlbmRzIGg0dHtjb25zdHJ1Y3Rvcih0PW5ldyBtSnQsZT1uZXcgbUp0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUN1cnZlIix0aGlzLnYxPXQsdGhpcy52Mj1lfWdldFBvaW50KHQsZT1uZXcgbUp0KXtjb25zdCBuPWU7cmV0dXJuIDE9PT10P24uY29weSh0aGlzLnYyKToobi5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKSxuLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLnYxKSksbn1nZXRQb2ludEF0KHQsZSl7cmV0dXJuIHRoaXMuZ2V0UG9pbnQodCxlKX1nZXRUYW5nZW50KHQsZSl7Y29uc3Qgbj1lfHxuZXcgbUp0O3JldHVybiBuLmNvcHkodGhpcy52Mikuc3ViKHRoaXMudjEpLm5vcm1hbGl6ZSgpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fUU0dC5wcm90b3R5cGUuaXNMaW5lQ3VydmU9ITA7Y2xhc3MgVDR0IGV4dGVuZHMgaDR0e2NvbnN0cnVjdG9yKHQ9bmV3IENKdCxlPW5ldyBDSnQpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lQ3VydmUzIix0aGlzLmlzTGluZUN1cnZlMz0hMCx0aGlzLnYxPXQsdGhpcy52Mj1lfWdldFBvaW50KHQsZT1uZXcgQ0p0KXtjb25zdCBuPWU7cmV0dXJuIDE9PT10P24uY29weSh0aGlzLnYyKToobi5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKSxuLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLnYxKSksbn1nZXRQb2ludEF0KHQsZSl7cmV0dXJuIHRoaXMuZ2V0UG9pbnQodCxlKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpc319Y2xhc3MgQzR0IGV4dGVuZHMgaDR0e2NvbnN0cnVjdG9yKHQ9bmV3IG1KdCxlPW5ldyBtSnQsbj1uZXcgbUp0KXtzdXBlcigpLHRoaXMudHlwZT0iUXVhZHJhdGljQmV6aWVyQ3VydmUiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1ufWdldFBvaW50KHQsZT1uZXcgbUp0KXtjb25zdCBuPWUsaT10aGlzLnYwLHI9dGhpcy52MSxvPXRoaXMudjI7cmV0dXJuIG4uc2V0KHg0dCh0LGkueCxyLngsby54KSx4NHQodCxpLnksci55LG8ueSkpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fUM0dC5wcm90b3R5cGUuaXNRdWFkcmF0aWNCZXppZXJDdXJ2ZT0hMDtjbGFzcyBBNHQgZXh0ZW5kcyBoNHR7Y29uc3RydWN0b3IodD1uZXcgQ0p0LGU9bmV3IENKdCxuPW5ldyBDSnQpe3N1cGVyKCksdGhpcy50eXBlPSJRdWFkcmF0aWNCZXppZXJDdXJ2ZTMiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1ufWdldFBvaW50KHQsZT1uZXcgQ0p0KXtjb25zdCBuPWUsaT10aGlzLnYwLHI9dGhpcy52MSxvPXRoaXMudjI7cmV0dXJuIG4uc2V0KHg0dCh0LGkueCxyLngsby54KSx4NHQodCxpLnksci55LG8ueSkseDR0KHQsaS56LHIueixvLnopKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYwLmZyb21BcnJheSh0LnYwKSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzfX1BNHQucHJvdG90eXBlLmlzUXVhZHJhdGljQmV6aWVyQ3VydmUzPSEwO2NsYXNzIGs0dCBleHRlbmRzIGg0dHtjb25zdHJ1Y3Rvcih0PVtdKXtzdXBlcigpLHRoaXMudHlwZT0iU3BsaW5lQ3VydmUiLHRoaXMucG9pbnRzPXR9Z2V0UG9pbnQodCxlPW5ldyBtSnQpe2NvbnN0IG49ZSxpPXRoaXMucG9pbnRzLHI9KGkubGVuZ3RoLTEpKnQsbz1NYXRoLmZsb29yKHIpLGE9ci1vLHM9aVswPT09bz9vOm8tMV0sbD1pW29dLGM9aVtvPmkubGVuZ3RoLTI/aS5sZW5ndGgtMTpvKzFdLHU9aVtvPmkubGVuZ3RoLTM/aS5sZW5ndGgtMTpvKzJdO3JldHVybiBuLnNldChiNHQoYSxzLngsbC54LGMueCx1LngpLGI0dChhLHMueSxsLnksYy55LHUueSkpLG59Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspdGhpcy5wb2ludHMucHVzaCh0LnBvaW50c1tlXS5jbG9uZSgpKTtyZXR1cm4gdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5wb2ludHMubGVuZ3RoO2U8bjtlKyspdC5wb2ludHMucHVzaCh0aGlzLnBvaW50c1tlXS50b0FycmF5KCkpO3JldHVybiB0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dC5wb2ludHNbZV07dGhpcy5wb2ludHMucHVzaCgobmV3IG1KdCkuZnJvbUFycmF5KG4pKX1yZXR1cm4gdGhpc319azR0LnByb3RvdHlwZS5pc1NwbGluZUN1cnZlPSEwO3ZhciBMNHQ9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQXJjQ3VydmU6cDR0LENhdG11bGxSb21DdXJ2ZTM6djR0LEN1YmljQmV6aWVyQ3VydmU6UzR0LEN1YmljQmV6aWVyQ3VydmUzOk00dCxFbGxpcHNlQ3VydmU6ZDR0LExpbmVDdXJ2ZTpFNHQsTGluZUN1cnZlMzpUNHQsUXVhZHJhdGljQmV6aWVyQ3VydmU6QzR0LFF1YWRyYXRpY0JlemllckN1cnZlMzpBNHQsU3BsaW5lQ3VydmU6azR0fSk7ZnVuY3Rpb24gUDR0KHQsZSxuLGkscil7bGV0IG8sYTtpZihyPT09KGZ1bmN0aW9uIHModCxlLG4saSl7bGV0IHI9MDtmb3IobGV0IG89ZSxhPW4taTtvPG47bys9aSlyKz0odFthXS10W29dKSoodFtvKzFdK3RbYSsxXSksYT1vO3JldHVybiByfSkodCxlLG4saSk+MClmb3Iobz1lO288bjtvKz1pKWE9SjR0KG8sdFtvXSx0W28rMV0sYSk7ZWxzZSBmb3Iobz1uLWk7bz49ZTtvLT1pKWE9SjR0KG8sdFtvXSx0W28rMV0sYSk7cmV0dXJuIGEmJnE0dChhLGEubmV4dCkmJihRNHQoYSksYT1hLm5leHQpLGF9ZnVuY3Rpb24gTjR0KHQsZSl7aWYoIXQpcmV0dXJuIHQ7ZXx8KGU9dCk7bGV0IG4saT10O2Rve2lmKG49ITEsaS5zdGVpbmVyfHwhcTR0KGksaS5uZXh0KSYmMCE9PVc0dChpLnByZXYsaSxpLm5leHQpKWk9aS5uZXh0O2Vsc2V7aWYoUTR0KGkpLGk9ZT1pLnByZXYsaT09PWkubmV4dClicmVhaztuPSEwfX13aGlsZShufHxpIT09ZSk7cmV0dXJuIGV9ZnVuY3Rpb24gSTR0KHQsZSxuLGkscixvLGEpe2lmKCF0KXJldHVybjshYSYmbyYmKGZ1bmN0aW9uIHModCxlLG4saSl7bGV0IHI9dDtkb3tudWxsPT09ci56JiYoci56PVY0dChyLngsci55LGUsbixpKSksci5wcmV2Wj1yLnByZXYsci5uZXh0Wj1yLm5leHQscj1yLm5leHR9d2hpbGUociE9PXQpO3IucHJldloubmV4dFo9bnVsbCxyLnByZXZaPW51bGwsKGZ1bmN0aW9uIG8odCl7bGV0IGUsbixpLHIsbyxhLHMsbCxjPTE7ZG97Zm9yKG49dCx0PW51bGwsbz1udWxsLGE9MDtuOyl7Zm9yKGErKyxpPW4scz0wLGU9MDtlPGMmJihzKyssaT1pLm5leHRaLGkpO2UrKyk7Zm9yKGw9YztzPjB8fGw+MCYmaTspMCE9PXMmJigwPT09bHx8IWl8fG4uejw9aS56KT8ocj1uLG49bi5uZXh0WixzLS0pOihyPWksaT1pLm5leHRaLGwtLSksbz9vLm5leHRaPXI6dD1yLHIucHJldlo9byxvPXI7bj1pfW8ubmV4dFo9bnVsbCxjKj0yfXdoaWxlKGE+MSl9KShyKX0pKHQsaSxyLG8pO2xldCBsLGMsdT10O2Zvcig7dC5wcmV2IT09dC5uZXh0OylpZihsPXQucHJldixjPXQubmV4dCxvP080dCh0LGkscixvKTpSNHQodCkpZS5wdXNoKGwuaS9uKSxlLnB1c2godC5pL24pLGUucHVzaChjLmkvbiksUTR0KHQpLHQ9Yy5uZXh0LHU9Yy5uZXh0O2Vsc2UgaWYoKHQ9Yyk9PT11KXthPzE9PT1hP0k0dCh0PXo0dChONHQodCksZSxuKSxlLG4saSxyLG8sMik6Mj09PWEmJkQ0dCh0LGUsbixpLHIsbyk6STR0KE40dCh0KSxlLG4saSxyLG8sMSk7YnJlYWt9fWZ1bmN0aW9uIFI0dCh0KXtjb25zdCBlPXQucHJldixuPXQsaT10Lm5leHQ7aWYoVzR0KGUsbixpKT49MClyZXR1cm4hMTtsZXQgcj10Lm5leHQubmV4dDtmb3IoO3IhPT10LnByZXY7KXtpZihqNHQoZS54LGUueSxuLngsbi55LGkueCxpLnksci54LHIueSkmJlc0dChyLnByZXYscixyLm5leHQpPj0wKXJldHVybiExO3I9ci5uZXh0fXJldHVybiEwfWZ1bmN0aW9uIE80dCh0LGUsbixpKXtjb25zdCByPXQucHJldixvPXQsYT10Lm5leHQ7aWYoVzR0KHIsbyxhKT49MClyZXR1cm4hMTtjb25zdCBzPXIueD5vLng/ci54PmEueD9yLng6YS54Om8ueD5hLng/by54OmEueCxsPXIueT5vLnk/ci55PmEueT9yLnk6YS55Om8ueT5hLnk/by55OmEueSxjPVY0dChyLng8by54P3IueDxhLng/ci54OmEueDpvLng8YS54P28ueDphLngsci55PG8ueT9yLnk8YS55P3IueTphLnk6by55PGEueT9vLnk6YS55LGUsbixpKSx1PVY0dChzLGwsZSxuLGkpO2xldCBoPXQucHJldlosZD10Lm5leHRaO2Zvcig7aCYmaC56Pj1jJiZkJiZkLno8PXU7KXtpZihoIT09dC5wcmV2JiZoIT09dC5uZXh0JiZqNHQoci54LHIueSxvLngsby55LGEueCxhLnksaC54LGgueSkmJlc0dChoLnByZXYsaCxoLm5leHQpPj0wKXJldHVybiExO2lmKGg9aC5wcmV2WixkIT09dC5wcmV2JiZkIT09dC5uZXh0JiZqNHQoci54LHIueSxvLngsby55LGEueCxhLnksZC54LGQueSkmJlc0dChkLnByZXYsZCxkLm5leHQpPj0wKXJldHVybiExO2Q9ZC5uZXh0Wn1mb3IoO2gmJmguej49Yzspe2lmKGghPT10LnByZXYmJmghPT10Lm5leHQmJmo0dChyLngsci55LG8ueCxvLnksYS54LGEueSxoLngsaC55KSYmVzR0KGgucHJldixoLGgubmV4dCk+PTApcmV0dXJuITE7aD1oLnByZXZafWZvcig7ZCYmZC56PD11Oyl7aWYoZCE9PXQucHJldiYmZCE9PXQubmV4dCYmajR0KHIueCxyLnksby54LG8ueSxhLngsYS55LGQueCxkLnkpJiZXNHQoZC5wcmV2LGQsZC5uZXh0KT49MClyZXR1cm4hMTtkPWQubmV4dFp9cmV0dXJuITB9ZnVuY3Rpb24gejR0KHQsZSxuKXtsZXQgaT10O2Rve2NvbnN0IHI9aS5wcmV2LG89aS5uZXh0Lm5leHQ7IXE0dChyLG8pJiZZNHQocixpLGkubmV4dCxvKSYmSzR0KHIsbykmJks0dChvLHIpJiYoZS5wdXNoKHIuaS9uKSxlLnB1c2goaS5pL24pLGUucHVzaChvLmkvbiksUTR0KGkpLFE0dChpLm5leHQpLGk9dD1vKSxpPWkubmV4dH13aGlsZShpIT09dCk7cmV0dXJuIE40dChpKX1mdW5jdGlvbiBENHQodCxlLG4saSxyLG8pe2xldCBhPXQ7ZG97bGV0IHQ9YS5uZXh0Lm5leHQ7Zm9yKDt0IT09YS5wcmV2Oyl7aWYoYS5pIT09dC5pJiZHNHQoYSx0KSl7bGV0IHM9WjR0KGEsdCk7cmV0dXJuIGE9TjR0KGEsYS5uZXh0KSxzPU40dChzLHMubmV4dCksSTR0KGEsZSxuLGkscixvKSx2b2lkIEk0dChzLGUsbixpLHIsbyl9dD10Lm5leHR9YT1hLm5leHR9d2hpbGUoYSE9PXQpfWZ1bmN0aW9uIEI0dCh0LGUpe3JldHVybiB0LngtZS54fWZ1bmN0aW9uIEg0dCh0LGUpe2lmKGU9KGZ1bmN0aW9uIG4odCxlKXtsZXQgbj1lO2NvbnN0IGk9dC54LHI9dC55O2xldCBvLGE9LTEvMDtkb3tpZihyPD1uLnkmJnI+PW4ubmV4dC55JiZuLm5leHQueSE9PW4ueSl7Y29uc3QgdD1uLngrKHItbi55KSoobi5uZXh0Lngtbi54KS8obi5uZXh0Lnktbi55KTtpZih0PD1pJiZ0PmEpe2lmKGE9dCx0PT09aSl7aWYocj09PW4ueSlyZXR1cm4gbjtpZihyPT09bi5uZXh0LnkpcmV0dXJuIG4ubmV4dH1vPW4ueDxuLm5leHQueD9uOm4ubmV4dH19bj1uLm5leHR9d2hpbGUobiE9PWUpO2lmKCFvKXJldHVybiBudWxsO2lmKGk9PT1hKXJldHVybiBvO2NvbnN0IHM9byxsPW8ueCxjPW8ueTtsZXQgdSxoPTEvMDtuPW87ZG97aT49bi54JiZuLng+PWwmJmkhPT1uLngmJmo0dChyPGM/aTphLHIsbCxjLHI8Yz9hOmkscixuLngsbi55KSYmKHU9TWF0aC5hYnMoci1uLnkpLyhpLW4ueCksSzR0KG4sdCkmJih1PGh8fHU9PT1oJiYobi54Pm8ueHx8bi54PT09by54JiZGNHQobyxuKSkpJiYobz1uLGg9dSkpLG49bi5uZXh0fXdoaWxlKG4hPT1zKTtyZXR1cm4gb30pKHQsZSkpe2NvbnN0IG49WjR0KGUsdCk7TjR0KGUsZS5uZXh0KSxONHQobixuLm5leHQpfX1mdW5jdGlvbiBGNHQodCxlKXtyZXR1cm4gVzR0KHQucHJldix0LGUucHJldik8MCYmVzR0KGUubmV4dCx0LHQubmV4dCk8MH1mdW5jdGlvbiBWNHQodCxlLG4saSxyKXtyZXR1cm4odD0xNDMxNjU1NzY1JigodD04NTg5OTM0NTkmKCh0PTI1MjY0NTEzNSYoKHQ9MTY3MTE5MzUmKCh0PTMyNzY3Kih0LW4pKnIpfHQ8PDgpKXx0PDw0KSl8dDw8MikpfHQ8PDEpKXwoZT0xNDMxNjU1NzY1JigoZT04NTg5OTM0NTkmKChlPTI1MjY0NTEzNSYoKGU9MTY3MTE5MzUmKChlPTMyNzY3KihlLWkpKnIpfGU8PDgpKXxlPDw0KSl8ZTw8MikpfGU8PDEpKTw8MX1mdW5jdGlvbiBVNHQodCl7bGV0IGU9dCxuPXQ7ZG97KGUueDxuLnh8fGUueD09PW4ueCYmZS55PG4ueSkmJihuPWUpLGU9ZS5uZXh0fXdoaWxlKGUhPT10KTtyZXR1cm4gbn1mdW5jdGlvbiBqNHQodCxlLG4saSxyLG8sYSxzKXtyZXR1cm4oci1hKSooZS1zKS0odC1hKSooby1zKT49MCYmKHQtYSkqKGktcyktKG4tYSkqKGUtcyk+PTAmJihuLWEpKihvLXMpLShyLWEpKihpLXMpPj0wfWZ1bmN0aW9uIEc0dCh0LGUpe3JldHVybiB0Lm5leHQuaSE9PWUuaSYmdC5wcmV2LmkhPT1lLmkmJiEoZnVuY3Rpb24gbih0LGUpe2xldCBuPXQ7ZG97aWYobi5pIT09dC5pJiZuLm5leHQuaSE9PXQuaSYmbi5pIT09ZS5pJiZuLm5leHQuaSE9PWUuaSYmWTR0KG4sbi5uZXh0LHQsZSkpcmV0dXJuITA7bj1uLm5leHR9d2hpbGUobiE9PXQpO3JldHVybiExfSkodCxlKSYmKEs0dCh0LGUpJiZLNHQoZSx0KSYmKGZ1bmN0aW9uIGkodCxlKXtsZXQgbj10LGk9ITE7Y29uc3Qgcj0odC54K2UueCkvMixvPSh0LnkrZS55KS8yO2Rve24ueT5vIT1uLm5leHQueT5vJiZuLm5leHQueSE9PW4ueSYmcjwobi5uZXh0Lngtbi54KSooby1uLnkpLyhuLm5leHQueS1uLnkpK24ueCYmKGk9IWkpLG49bi5uZXh0fXdoaWxlKG4hPT10KTtyZXR1cm4gaX0pKHQsZSkmJihXNHQodC5wcmV2LHQsZS5wcmV2KXx8VzR0KHQsZS5wcmV2LGUpKXx8cTR0KHQsZSkmJlc0dCh0LnByZXYsdCx0Lm5leHQpPjAmJlc0dChlLnByZXYsZSxlLm5leHQpPjApfWZ1bmN0aW9uIFc0dCh0LGUsbil7cmV0dXJuKGUueS10LnkpKihuLngtZS54KS0oZS54LXQueCkqKG4ueS1lLnkpfWZ1bmN0aW9uIHE0dCh0LGUpe3JldHVybiB0Lng9PT1lLngmJnQueT09PWUueX1mdW5jdGlvbiBZNHQodCxlLG4saSl7Y29uc3Qgcj0kNHQoVzR0KHQsZSxuKSksbz0kNHQoVzR0KHQsZSxpKSksYT0kNHQoVzR0KG4saSx0KSkscz0kNHQoVzR0KG4saSxlKSk7cmV0dXJuIHIhPT1vJiZhIT09c3x8ISgwIT09cnx8IVg0dCh0LG4sZSkpfHwhKDAhPT1vfHwhWDR0KHQsaSxlKSl8fCEoMCE9PWF8fCFYNHQobix0LGkpKXx8ISgwIT09c3x8IVg0dChuLGUsaSkpfWZ1bmN0aW9uIFg0dCh0LGUsbil7cmV0dXJuIGUueDw9TWF0aC5tYXgodC54LG4ueCkmJmUueD49TWF0aC5taW4odC54LG4ueCkmJmUueTw9TWF0aC5tYXgodC55LG4ueSkmJmUueT49TWF0aC5taW4odC55LG4ueSl9ZnVuY3Rpb24gJDR0KHQpe3JldHVybiB0PjA/MTp0PDA/LTE6MH1mdW5jdGlvbiBLNHQodCxlKXtyZXR1cm4gVzR0KHQucHJldix0LHQubmV4dCk8MD9XNHQodCxlLHQubmV4dCk+PTAmJlc0dCh0LHQucHJldixlKT49MDpXNHQodCxlLHQucHJldik8MHx8VzR0KHQsdC5uZXh0LGUpPDB9ZnVuY3Rpb24gWjR0KHQsZSl7Y29uc3Qgbj1uZXcgdDZ0KHQuaSx0LngsdC55KSxpPW5ldyB0NnQoZS5pLGUueCxlLnkpLHI9dC5uZXh0LG89ZS5wcmV2O3JldHVybiB0Lm5leHQ9ZSxlLnByZXY9dCxuLm5leHQ9cixyLnByZXY9bixpLm5leHQ9bixuLnByZXY9aSxvLm5leHQ9aSxpLnByZXY9byxpfWZ1bmN0aW9uIEo0dCh0LGUsbixpKXtjb25zdCByPW5ldyB0NnQodCxlLG4pO3JldHVybiBpPyhyLm5leHQ9aS5uZXh0LHIucHJldj1pLGkubmV4dC5wcmV2PXIsaS5uZXh0PXIpOihyLnByZXY9cixyLm5leHQ9cikscn1mdW5jdGlvbiBRNHQodCl7dC5uZXh0LnByZXY9dC5wcmV2LHQucHJldi5uZXh0PXQubmV4dCx0LnByZXZaJiYodC5wcmV2Wi5uZXh0Wj10Lm5leHRaKSx0Lm5leHRaJiYodC5uZXh0Wi5wcmV2Wj10LnByZXZaKX1mdW5jdGlvbiB0NnQodCxlLG4pe3RoaXMuaT10LHRoaXMueD1lLHRoaXMueT1uLHRoaXMucHJldj1udWxsLHRoaXMubmV4dD1udWxsLHRoaXMuej1udWxsLHRoaXMucHJldlo9bnVsbCx0aGlzLm5leHRaPW51bGwsdGhpcy5zdGVpbmVyPSExfWNsYXNzIGU2dHtzdGF0aWMgYXJlYSh0KXtjb25zdCBlPXQubGVuZ3RoO2xldCBuPTA7Zm9yKGxldCBpPWUtMSxyPTA7cjxlO2k9cisrKW4rPXRbaV0ueCp0W3JdLnktdFtyXS54KnRbaV0ueTtyZXR1cm4uNSpufXN0YXRpYyBpc0Nsb2NrV2lzZSh0KXtyZXR1cm4gZTZ0LmFyZWEodCk8MH1zdGF0aWMgdHJpYW5ndWxhdGVTaGFwZSh0LGUpe2NvbnN0IG49W10saT1bXSxyPVtdO242dCh0KSxpNnQobix0KTtsZXQgbz10Lmxlbmd0aDtlLmZvckVhY2gobjZ0KTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpLnB1c2gobyksbys9ZVt0XS5sZW5ndGgsaTZ0KG4sZVt0XSk7Y29uc3QgYT0oZnVuY3Rpb24odCxlLG49Mil7Y29uc3QgaT1lJiZlLmxlbmd0aCxyPWk/ZVswXSpuOnQubGVuZ3RoO2xldCBvPVA0dCh0LDAscixuLCEwKTtjb25zdCBhPVtdO2lmKCFvfHxvLm5leHQ9PT1vLnByZXYpcmV0dXJuIGE7bGV0IHMsbCxjLHUsaCxkLHA7aWYoaSYmKG89KGZ1bmN0aW9uIGYodCxlLG4saSl7Y29uc3Qgcj1bXTtsZXQgbyxhLHMsbCxjO2ZvcihvPTAsYT1lLmxlbmd0aDtvPGE7bysrKXM9ZVtvXSppLGw9bzxhLTE/ZVtvKzFdKmk6dC5sZW5ndGgsYz1QNHQodCxzLGwsaSwhMSksYz09PWMubmV4dCYmKGMuc3RlaW5lcj0hMCksci5wdXNoKFU0dChjKSk7Zm9yKHIuc29ydChCNHQpLG89MDtvPHIubGVuZ3RoO28rKylINHQocltvXSxuKSxuPU40dChuLG4ubmV4dCk7cmV0dXJuIG59KSh0LGUsbyxuKSksdC5sZW5ndGg+ODAqbil7cz1jPXRbMF0sbD11PXRbMV07Zm9yKGxldCBlPW47ZTxyO2UrPW4paD10W2VdLGQ9dFtlKzFdLGg8cyYmKHM9aCksZDxsJiYobD1kKSxoPmMmJihjPWgpLGQ+dSYmKHU9ZCk7cD1NYXRoLm1heChjLXMsdS1sKSxwPTAhPT1wPzEvcDowfXJldHVybiBJNHQobyxhLG4scyxsLHApLGF9KShuLGkpO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7dCs9MylyLnB1c2goYS5zbGljZSh0LHQrMykpO3JldHVybiByfX1mdW5jdGlvbiBuNnQodCl7Y29uc3QgZT10Lmxlbmd0aDtlPjImJnRbZS0xXS5lcXVhbHModFswXSkmJnQucG9wKCl9ZnVuY3Rpb24gaTZ0KHQsZSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdC5wdXNoKGVbbl0ueCksdC5wdXNoKGVbbl0ueSl9Y2xhc3MgcjZ0IGV4dGVuZHMgYjF0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLnR5cGU9IkV4dHJ1ZGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtzaGFwZXM6dCxvcHRpb25zOmV9LHQ9QXJyYXkuaXNBcnJheSh0KT90Olt0XTtjb25zdCBuPXRoaXMsaT1bXSxyPVtdO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKylvKHRbZV0pO2Z1bmN0aW9uIG8odCl7Y29uc3Qgbz1bXSxhPXZvaWQgMCE9PWUuY3VydmVTZWdtZW50cz9lLmN1cnZlU2VnbWVudHM6MTIscz12b2lkIDAhPT1lLnN0ZXBzP2Uuc3RlcHM6MTtsZXQgbD12b2lkIDAhPT1lLmRlcHRoP2UuZGVwdGg6MTAwLGM9dm9pZCAwPT09ZS5iZXZlbEVuYWJsZWR8fGUuYmV2ZWxFbmFibGVkLHU9dm9pZCAwIT09ZS5iZXZlbFRoaWNrbmVzcz9lLmJldmVsVGhpY2tuZXNzOjYsaD12b2lkIDAhPT1lLmJldmVsU2l6ZT9lLmJldmVsU2l6ZTp1LTIsZD12b2lkIDAhPT1lLmJldmVsT2Zmc2V0P2UuYmV2ZWxPZmZzZXQ6MCxwPXZvaWQgMCE9PWUuYmV2ZWxTZWdtZW50cz9lLmJldmVsU2VnbWVudHM6Mztjb25zdCBmPWUuZXh0cnVkZVBhdGgsbT12b2lkIDAhPT1lLlVWR2VuZXJhdG9yP2UuVVZHZW5lcmF0b3I6bzZ0O3ZvaWQgMCE9PWUuYW1vdW50JiYoY29uc29sZS53YXJuKCJUSFJFRS5FeHRydWRlQnVmZmVyR2VvbWV0cnk6IGFtb3VudCBoYXMgYmVlbiByZW5hbWVkIHRvIGRlcHRoLiIpLGw9ZS5hbW91bnQpO2xldCBnLF8seSx2LGIseD0hMTtmJiYoZz1mLmdldFNwYWNlZFBvaW50cyhzKSx4PSEwLGM9ITEsXz1mLmNvbXB1dGVGcmVuZXRGcmFtZXMocywhMSkseT1uZXcgQ0p0LHY9bmV3IENKdCxiPW5ldyBDSnQpLGN8fChwPTAsdT0wLGg9MCxkPTApO2NvbnN0IHc9dC5leHRyYWN0UG9pbnRzKGEpO2xldCBTPXcuc2hhcGU7Y29uc3QgTT13LmhvbGVzO2lmKCFlNnQuaXNDbG9ja1dpc2UoUykpe1M9Uy5yZXZlcnNlKCk7Zm9yKGxldCB0PTAsZT1NLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPU1bdF07ZTZ0LmlzQ2xvY2tXaXNlKGUpJiYoTVt0XT1lLnJldmVyc2UoKSl9fWNvbnN0IEU9ZTZ0LnRyaWFuZ3VsYXRlU2hhcGUoUyxNKSxUPVM7Zm9yKGxldCB0PTAsZT1NLmxlbmd0aDt0PGU7dCsrKVM9Uy5jb25jYXQoTVt0XSk7ZnVuY3Rpb24gQyh0LGUsbil7cmV0dXJuIGV8fGNvbnNvbGUuZXJyb3IoIlRIUkVFLkV4dHJ1ZGVHZW9tZXRyeTogdmVjIGRvZXMgbm90IGV4aXN0IiksZS5jbG9uZSgpLm11bHRpcGx5U2NhbGFyKG4pLmFkZCh0KX1jb25zdCBBPVMubGVuZ3RoLGs9RS5sZW5ndGg7ZnVuY3Rpb24gTCh0LGUsbil7bGV0IGkscixvO2NvbnN0IGE9dC54LWUueCxzPXQueS1lLnksbD1uLngtdC54LGM9bi55LXQueSx1PWEqYStzKnM7aWYoTWF0aC5hYnMoYSpjLXMqbCk+TnVtYmVyLkVQU0lMT04pe2NvbnN0IGg9TWF0aC5zcXJ0KHUpLGQ9TWF0aC5zcXJ0KGwqbCtjKmMpLHA9ZS54LXMvaCxmPWUueSthL2gsbT0oKG4ueC1jL2QtcCkqYy0obi55K2wvZC1mKSpsKS8oYSpjLXMqbCk7aT1wK2EqbS10Lngscj1mK3MqbS10Lnk7Y29uc3QgZz1pKmkrcipyO2lmKGc8PTIpcmV0dXJuIG5ldyBtSnQoaSxyKTtvPU1hdGguc3FydChnLzIpfWVsc2V7bGV0IHQ9ITE7YT5OdW1iZXIuRVBTSUxPTj9sPk51bWJlci5FUFNJTE9OJiYodD0hMCk6YTwtTnVtYmVyLkVQU0lMT04/bDwtTnVtYmVyLkVQU0lMT04mJih0PSEwKTpNYXRoLnNpZ24ocyk9PT1NYXRoLnNpZ24oYykmJih0PSEwKSx0PyhpPS1zLHI9YSxvPU1hdGguc3FydCh1KSk6KGk9YSxyPXMsbz1NYXRoLnNxcnQodS8yKSl9cmV0dXJuIG5ldyBtSnQoaS9vLHIvbyl9Y29uc3QgUD1bXTtmb3IobGV0IHQ9MCxlPVQubGVuZ3RoLG49ZS0xLGk9dCsxO3Q8ZTt0KyssbisrLGkrKyluPT09ZSYmKG49MCksaT09PWUmJihpPTApLFBbdF09TChUW3RdLFRbbl0sVFtpXSk7Y29uc3QgTj1bXTtsZXQgSSxSPVAuY29uY2F0KCk7Zm9yKGxldCB0PTAsZT1NLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPU1bdF07ST1bXTtmb3IobGV0IHQ9MCxuPWUubGVuZ3RoLGk9bi0xLHI9dCsxO3Q8bjt0KyssaSsrLHIrKylpPT09biYmKGk9MCkscj09PW4mJihyPTApLElbdF09TChlW3RdLGVbaV0sZVtyXSk7Ti5wdXNoKEkpLFI9Ui5jb25jYXQoSSl9Zm9yKGxldCB0PTA7dDxwO3QrKyl7Y29uc3QgZT10L3Asbj11Kk1hdGguY29zKGUqTWF0aC5QSS8yKSxpPWgqTWF0aC5zaW4oZSpNYXRoLlBJLzIpK2Q7Zm9yKGxldCB0PTAsZT1ULmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPUMoVFt0XSxQW3RdLGkpO0QoZS54LGUueSwtbil9Zm9yKGxldCB0PTAsZT1NLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPU1bdF07ST1OW3RdO2ZvcihsZXQgdD0wLHI9ZS5sZW5ndGg7dDxyO3QrKyl7Y29uc3Qgcj1DKGVbdF0sSVt0XSxpKTtEKHIueCxyLnksLW4pfX19Y29uc3QgTz1oK2Q7Zm9yKGxldCB0PTA7dDxBO3QrKyl7Y29uc3QgZT1jP0MoU1t0XSxSW3RdLE8pOlNbdF07eD8odi5jb3B5KF8ubm9ybWFsc1swXSkubXVsdGlwbHlTY2FsYXIoZS54KSx5LmNvcHkoXy5iaW5vcm1hbHNbMF0pLm11bHRpcGx5U2NhbGFyKGUueSksYi5jb3B5KGdbMF0pLmFkZCh2KS5hZGQoeSksRChiLngsYi55LGIueikpOkQoZS54LGUueSwwKX1mb3IobGV0IHQ9MTt0PD1zO3QrKylmb3IobGV0IGU9MDtlPEE7ZSsrKXtjb25zdCBuPWM/QyhTW2VdLFJbZV0sTyk6U1tlXTt4Pyh2LmNvcHkoXy5ub3JtYWxzW3RdKS5tdWx0aXBseVNjYWxhcihuLngpLHkuY29weShfLmJpbm9ybWFsc1t0XSkubXVsdGlwbHlTY2FsYXIobi55KSxiLmNvcHkoZ1t0XSkuYWRkKHYpLmFkZCh5KSxEKGIueCxiLnksYi56KSk6RChuLngsbi55LGwvcyp0KX1mb3IobGV0IHQ9cC0xO3Q+PTA7dC0tKXtjb25zdCBlPXQvcCxuPXUqTWF0aC5jb3MoZSpNYXRoLlBJLzIpLGk9aCpNYXRoLnNpbihlKk1hdGguUEkvMikrZDtmb3IobGV0IHQ9MCxlPVQubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9QyhUW3RdLFBbdF0saSk7RChlLngsZS55LGwrbil9Zm9yKGxldCB0PTAsZT1NLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPU1bdF07ST1OW3RdO2ZvcihsZXQgdD0wLHI9ZS5sZW5ndGg7dDxyO3QrKyl7Y29uc3Qgcj1DKGVbdF0sSVt0XSxpKTt4P0Qoci54LHIueStnW3MtMV0ueSxnW3MtMV0ueCtuKTpEKHIueCxyLnksbCtuKX19fWZ1bmN0aW9uIHoodCxlKXtsZXQgbj10Lmxlbmd0aDtmb3IoOy0tbj49MDspe2NvbnN0IGk9bjtsZXQgcj1uLTE7cjwwJiYocj10Lmxlbmd0aC0xKTtmb3IobGV0IHQ9MCxuPXMrMipwO3Q8bjt0Kyspe2NvbnN0IG49QSp0LG89QSoodCsxKTtIKGUraStuLGUrcituLGUrcitvLGUraStvKX19fWZ1bmN0aW9uIEQodCxlLG4pe28ucHVzaCh0KSxvLnB1c2goZSksby5wdXNoKG4pfWZ1bmN0aW9uIEIodCxlLHIpe0YodCksRihlKSxGKHIpO2NvbnN0IG89aS5sZW5ndGgvMyxhPW0uZ2VuZXJhdGVUb3BVVihuLGksby0zLG8tMixvLTEpO1YoYVswXSksVihhWzFdKSxWKGFbMl0pfWZ1bmN0aW9uIEgodCxlLHIsbyl7Rih0KSxGKGUpLEYobyksRihlKSxGKHIpLEYobyk7Y29uc3QgYT1pLmxlbmd0aC8zLHM9bS5nZW5lcmF0ZVNpZGVXYWxsVVYobixpLGEtNixhLTMsYS0yLGEtMSk7VihzWzBdKSxWKHNbMV0pLFYoc1szXSksVihzWzFdKSxWKHNbMl0pLFYoc1szXSl9ZnVuY3Rpb24gRih0KXtpLnB1c2gob1szKnQrMF0pLGkucHVzaChvWzMqdCsxXSksaS5wdXNoKG9bMyp0KzJdKX1mdW5jdGlvbiBWKHQpe3IucHVzaCh0LngpLHIucHVzaCh0LnkpfSEoZnVuY3Rpb24gVSgpe2NvbnN0IHQ9aS5sZW5ndGgvMztpZihjKXtsZXQgdD0wLGU9QSp0O2ZvcihsZXQgdD0wO3Q8azt0Kyspe2NvbnN0IG49RVt0XTtCKG5bMl0rZSxuWzFdK2UsblswXStlKX10PXMrMipwLGU9QSp0O2ZvcihsZXQgdD0wO3Q8azt0Kyspe2NvbnN0IG49RVt0XTtCKG5bMF0rZSxuWzFdK2UsblsyXStlKX19ZWxzZXtmb3IobGV0IHQ9MDt0PGs7dCsrKXtjb25zdCBlPUVbdF07QihlWzJdLGVbMV0sZVswXSl9Zm9yKGxldCB0PTA7dDxrO3QrKyl7Y29uc3QgZT1FW3RdO0IoZVswXStBKnMsZVsxXStBKnMsZVsyXStBKnMpfX1uLmFkZEdyb3VwKHQsaS5sZW5ndGgvMy10LDApfSkoKSwoZnVuY3Rpb24gaigpe2NvbnN0IHQ9aS5sZW5ndGgvMztsZXQgZT0wO3ooVCxlKSxlKz1ULmxlbmd0aDtmb3IobGV0IHQ9MCxuPU0ubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49TVt0XTt6KG4sZSksZSs9bi5sZW5ndGh9bi5hZGRHcm91cCh0LGkubGVuZ3RoLzMtdCwxKX0pKCl9dGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KGksMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGwxdChyLDIpKSx0aGlzLmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCl9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4oZnVuY3Rpb24gZSh0LG4saSl7aWYoaS5zaGFwZXM9W10sQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspaS5zaGFwZXMucHVzaCh0W2VdLnV1aWQpO2Vsc2UgaS5zaGFwZXMucHVzaCh0LnV1aWQpO3JldHVybiB2b2lkIDAhPT1uLmV4dHJ1ZGVQYXRoJiYoaS5vcHRpb25zLmV4dHJ1ZGVQYXRoPW4uZXh0cnVkZVBhdGgudG9KU09OKCkpLGl9KSh0aGlzLnBhcmFtZXRlcnMuc2hhcGVzLHRoaXMucGFyYW1ldGVycy5vcHRpb25zLHQpfXN0YXRpYyBmcm9tSlNPTih0LGUpe2NvbnN0IG49W107Zm9yKGxldCBpPTAscj10LnNoYXBlcy5sZW5ndGg7aTxyO2krKyluLnB1c2goZVt0LnNoYXBlc1tpXV0pO2NvbnN0IGk9dC5vcHRpb25zLmV4dHJ1ZGVQYXRoO3JldHVybiB2b2lkIDAhPT1pJiYodC5vcHRpb25zLmV4dHJ1ZGVQYXRoPShuZXcgTDR0W2kudHlwZV0pLmZyb21KU09OKGkpKSxuZXcgcjZ0KG4sdC5vcHRpb25zKX19Y29uc3QgbzZ0PXtnZW5lcmF0ZVRvcFVWOmZ1bmN0aW9uKHQsZSxuLGkscil7Y29uc3Qgbz1lWzMqaV0sYT1lWzMqaSsxXSxzPWVbMypyXSxsPWVbMypyKzFdO3JldHVybltuZXcgbUp0KGVbMypuXSxlWzMqbisxXSksbmV3IG1KdChvLGEpLG5ldyBtSnQocyxsKV19LGdlbmVyYXRlU2lkZVdhbGxVVjpmdW5jdGlvbih0LGUsbixpLHIsbyl7Y29uc3QgYT1lWzMqbl0scz1lWzMqbisxXSxsPWVbMypuKzJdLGM9ZVszKmldLHU9ZVszKmkrMV0saD1lWzMqaSsyXSxkPWVbMypyXSxwPWVbMypyKzFdLGY9ZVszKnIrMl0sbT1lWzMqb10sZz1lWzMqbysxXSxfPWVbMypvKzJdO3JldHVybiBNYXRoLmFicyhzLXUpPE1hdGguYWJzKGEtYyk/W25ldyBtSnQoYSwxLWwpLG5ldyBtSnQoYywxLWgpLG5ldyBtSnQoZCwxLWYpLG5ldyBtSnQobSwxLV8pXTpbbmV3IG1KdChzLDEtbCksbmV3IG1KdCh1LDEtaCksbmV3IG1KdChwLDEtZiksbmV3IG1KdChnLDEtXyldfX07Y2xhc3MgYTZ0IGV4dGVuZHMgcjR0e2NvbnN0cnVjdG9yKHQ9MSxlPTApe2NvbnN0IG49KDErTWF0aC5zcXJ0KDUpKS8yO3N1cGVyKFstMSxuLDAsMSxuLDAsLTEsLW4sMCwxLC1uLDAsMCwtMSxuLDAsMSxuLDAsLTEsLW4sMCwxLC1uLG4sMCwtMSxuLDAsMSwtbiwwLC0xLC1uLDAsMV0sWzAsMTEsNSwwLDUsMSwwLDEsNywwLDcsMTAsMCwxMCwxMSwxLDUsOSw1LDExLDQsMTEsMTAsMiwxMCw3LDYsNywxLDgsMyw5LDQsMyw0LDIsMywyLDYsMyw2LDgsMyw4LDksNCw5LDUsMiw0LDExLDYsMiwxMCw4LDYsNyw5LDgsMV0sdCxlKSx0aGlzLnR5cGU9Ikljb3NhaGVkcm9uR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzOnQsZGV0YWlsOmV9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGE2dCh0LnJhZGl1cyx0LmRldGFpbCl9fWNsYXNzIHM2dCBleHRlbmRzIGIxdHtjb25zdHJ1Y3Rvcih0LGU9MTIsbj0wLGk9MipNYXRoLlBJKXtzdXBlcigpLHRoaXMudHlwZT0iTGF0aGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtwb2ludHM6dCxzZWdtZW50czplLHBoaVN0YXJ0Om4scGhpTGVuZ3RoOml9LGU9TWF0aC5mbG9vcihlKSxpPSRadChpLDAsMipNYXRoLlBJKTtjb25zdCByPVtdLG89W10sYT1bXSxzPTEvZSxsPW5ldyBDSnQsYz1uZXcgbUp0O2ZvcihsZXQgcj0wO3I8PWU7cisrKXtjb25zdCB1PW4rcipzKmksaD1NYXRoLnNpbih1KSxkPU1hdGguY29zKHUpO2ZvcihsZXQgbj0wO248PXQubGVuZ3RoLTE7bisrKWwueD10W25dLngqaCxsLnk9dFtuXS55LGwuej10W25dLngqZCxvLnB1c2gobC54LGwueSxsLnopLGMueD1yL2UsYy55PW4vKHQubGVuZ3RoLTEpLGEucHVzaChjLngsYy55KX1mb3IobGV0IG49MDtuPGU7bisrKWZvcihsZXQgZT0wO2U8dC5sZW5ndGgtMTtlKyspe2NvbnN0IGk9ZStuKnQubGVuZ3RoLG89aSt0Lmxlbmd0aCxhPWkrdC5sZW5ndGgrMSxzPWkrMTtyLnB1c2goaSxvLHMpLHIucHVzaChvLGEscyl9aWYodGhpcy5zZXRJbmRleChyKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQobywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgbDF0KGEsMikpLHRoaXMuY29tcHV0ZVZlcnRleE5vcm1hbHMoKSxpPT09MipNYXRoLlBJKXtjb25zdCBuPXRoaXMuYXR0cmlidXRlcy5ub3JtYWwuYXJyYXksaT1uZXcgQ0p0LHI9bmV3IENKdCxvPW5ldyBDSnQsYT1lKnQubGVuZ3RoKjM7Zm9yKGxldCBlPTAscz0wO2U8dC5sZW5ndGg7ZSsrLHMrPTMpaS54PW5bcyswXSxpLnk9bltzKzFdLGkuej1uW3MrMl0sci54PW5bYStzKzBdLHIueT1uW2ErcysxXSxyLno9blthK3MrMl0sby5hZGRWZWN0b3JzKGkscikubm9ybWFsaXplKCksbltzKzBdPW5bYStzKzBdPW8ueCxuW3MrMV09blthK3MrMV09by55LG5bcysyXT1uW2ErcysyXT1vLnp9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IHM2dCh0LnBvaW50cyx0LnNlZ21lbnRzLHQucGhpU3RhcnQsdC5waGlMZW5ndGgpfX1jbGFzcyBsNnQgZXh0ZW5kcyByNHR7Y29uc3RydWN0b3IodD0xLGU9MCl7c3VwZXIoWzEsMCwwLC0xLDAsMCwwLDEsMCwwLC0xLDAsMCwwLDEsMCwwLC0xXSxbMCwyLDQsMCw0LDMsMCwzLDUsMCw1LDIsMSwyLDUsMSw1LDMsMSwzLDQsMSw0LDJdLHQsZSksdGhpcy50eXBlPSJPY3RhaGVkcm9uR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzOnQsZGV0YWlsOmV9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGw2dCh0LnJhZGl1cyx0LmRldGFpbCl9fWNsYXNzIGM2dCBleHRlbmRzIGIxdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLnR5cGU9IlBhcmFtZXRyaWNHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtmdW5jOnQsc2xpY2VzOmUsc3RhY2tzOm59O2NvbnN0IGk9W10scj1bXSxvPVtdLGE9W10scz0xZS01LGw9bmV3IENKdCxjPW5ldyBDSnQsdT1uZXcgQ0p0LGg9bmV3IENKdCxkPW5ldyBDSnQ7dC5sZW5ndGg8MyYmY29uc29sZS5lcnJvcigiVEhSRUUuUGFyYW1ldHJpY0dlb21ldHJ5OiBGdW5jdGlvbiBtdXN0IG5vdyBtb2RpZnkgYSBWZWN0b3IzIGFzIHRoaXJkIHBhcmFtZXRlci4iKTtjb25zdCBwPWUrMTtmb3IobGV0IGk9MDtpPD1uO2krKyl7Y29uc3QgcD1pL247Zm9yKGxldCBuPTA7bjw9ZTtuKyspe2NvbnN0IGk9bi9lO3QoaSxwLGMpLHIucHVzaChjLngsYy55LGMueiksaS1zPj0wPyh0KGktcyxwLHUpLGguc3ViVmVjdG9ycyhjLHUpKToodChpK3MscCx1KSxoLnN1YlZlY3RvcnModSxjKSkscC1zPj0wPyh0KGkscC1zLHUpLGQuc3ViVmVjdG9ycyhjLHUpKToodChpLHArcyx1KSxkLnN1YlZlY3RvcnModSxjKSksbC5jcm9zc1ZlY3RvcnMoaCxkKS5ub3JtYWxpemUoKSxvLnB1c2gobC54LGwueSxsLnopLGEucHVzaChpLHApfX1mb3IobGV0IHQ9MDt0PG47dCsrKWZvcihsZXQgbj0wO248ZTtuKyspe2NvbnN0IGU9dCpwK24rMSxyPSh0KzEpKnArbisxLG89KHQrMSkqcCtuO2kucHVzaCh0KnArbixlLG8pLGkucHVzaChlLHIsbyl9dGhpcy5zZXRJbmRleChpKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQociwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGwxdChvLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBsMXQoYSwyKSl9fWNsYXNzIHU2dCBleHRlbmRzIGIxdHtjb25zdHJ1Y3Rvcih0PS41LGU9MSxuPTgsaT0xLHI9MCxvPTIqTWF0aC5QSSl7c3VwZXIoKSx0aGlzLnR5cGU9IlJpbmdHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtpbm5lclJhZGl1czp0LG91dGVyUmFkaXVzOmUsdGhldGFTZWdtZW50czpuLHBoaVNlZ21lbnRzOmksdGhldGFTdGFydDpyLHRoZXRhTGVuZ3RoOm99LG49TWF0aC5tYXgoMyxuKTtjb25zdCBhPVtdLHM9W10sbD1bXSxjPVtdO2xldCB1PXQ7Y29uc3QgaD0oZS10KS8oaT1NYXRoLm1heCgxLGkpKSxkPW5ldyBDSnQscD1uZXcgbUp0O2ZvcihsZXQgdD0wO3Q8PWk7dCsrKXtmb3IobGV0IHQ9MDt0PD1uO3QrKyl7Y29uc3QgaT1yK3QvbipvO2QueD11Kk1hdGguY29zKGkpLGQueT11Kk1hdGguc2luKGkpLHMucHVzaChkLngsZC55LGQueiksbC5wdXNoKDAsMCwxKSxwLng9KGQueC9lKzEpLzIscC55PShkLnkvZSsxKS8yLGMucHVzaChwLngscC55KX11Kz1ofWZvcihsZXQgdD0wO3Q8aTt0Kyspe2NvbnN0IGU9dCoobisxKTtmb3IobGV0IHQ9MDt0PG47dCsrKXtjb25zdCBpPXQrZSxyPWkrbisxLG89aStuKzIscz1pKzE7YS5wdXNoKGkscixzKSxhLnB1c2gocixvLHMpfX10aGlzLnNldEluZGV4KGEpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdChzLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgbDF0KGwsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGwxdChjLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyB1NnQodC5pbm5lclJhZGl1cyx0Lm91dGVyUmFkaXVzLHQudGhldGFTZWdtZW50cyx0LnBoaVNlZ21lbnRzLHQudGhldGFTdGFydCx0LnRoZXRhTGVuZ3RoKX19Y2xhc3MgaDZ0IGV4dGVuZHMgYjF0e2NvbnN0cnVjdG9yKHQsZT0xMil7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYXBlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17c2hhcGVzOnQsY3VydmVTZWdtZW50czplfTtjb25zdCBuPVtdLGk9W10scj1bXSxvPVtdO2xldCBhPTAscz0wO2lmKCExPT09QXJyYXkuaXNBcnJheSh0KSlsKHQpO2Vsc2UgZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspbCh0W2VdKSx0aGlzLmFkZEdyb3VwKGEscyxlKSxhKz1zLHM9MDtmdW5jdGlvbiBsKHQpe2NvbnN0IGE9aS5sZW5ndGgvMyxsPXQuZXh0cmFjdFBvaW50cyhlKTtsZXQgYz1sLnNoYXBlO2NvbnN0IHU9bC5ob2xlczshMT09PWU2dC5pc0Nsb2NrV2lzZShjKSYmKGM9Yy5yZXZlcnNlKCkpO2ZvcihsZXQgdD0wLGU9dS5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT11W3RdOyEwPT09ZTZ0LmlzQ2xvY2tXaXNlKGUpJiYodVt0XT1lLnJldmVyc2UoKSl9Y29uc3QgaD1lNnQudHJpYW5ndWxhdGVTaGFwZShjLHUpO2ZvcihsZXQgdD0wLGU9dS5sZW5ndGg7dDxlO3QrKyljPWMuY29uY2F0KHVbdF0pO2ZvcihsZXQgdD0wLGU9Yy5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1jW3RdO2kucHVzaChlLngsZS55LDApLHIucHVzaCgwLDAsMSksby5wdXNoKGUueCxlLnkpfWZvcihsZXQgdD0wLGU9aC5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1oW3RdO24ucHVzaChlWzBdK2EsZVsxXSthLGVbMl0rYSkscys9M319dGhpcy5zZXRJbmRleChuKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQoaSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGwxdChyLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBsMXQobywyKSl9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4oZnVuY3Rpb24gZSh0LG4pe2lmKG4uc2hhcGVzPVtdLEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSsrKW4uc2hhcGVzLnB1c2godFtlXS51dWlkKTtlbHNlIG4uc2hhcGVzLnB1c2godC51dWlkKTtyZXR1cm4gbn0pKHRoaXMucGFyYW1ldGVycy5zaGFwZXMsdCl9c3RhdGljIGZyb21KU09OKHQsZSl7Y29uc3Qgbj1bXTtmb3IobGV0IGk9MCxyPXQuc2hhcGVzLmxlbmd0aDtpPHI7aSsrKW4ucHVzaChlW3Quc2hhcGVzW2ldXSk7cmV0dXJuIG5ldyBoNnQobix0LmN1cnZlU2VnbWVudHMpfX1jbGFzcyBkNnQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodD0xLGU9MzIsbj0xNixpPTAscj0yKk1hdGguUEksbz0wLGE9TWF0aC5QSSl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwaGVyZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LHdpZHRoU2VnbWVudHM6ZSxoZWlnaHRTZWdtZW50czpuLHBoaVN0YXJ0OmkscGhpTGVuZ3RoOnIsdGhldGFTdGFydDpvLHRoZXRhTGVuZ3RoOmF9LGU9TWF0aC5tYXgoMyxNYXRoLmZsb29yKGUpKSxuPU1hdGgubWF4KDIsTWF0aC5mbG9vcihuKSk7Y29uc3Qgcz1NYXRoLm1pbihvK2EsTWF0aC5QSSk7bGV0IGw9MDtjb25zdCBjPVtdLHU9bmV3IENKdCxoPW5ldyBDSnQsZD1bXSxwPVtdLGY9W10sbT1bXTtmb3IobGV0IGQ9MDtkPD1uO2QrKyl7Y29uc3QgZz1bXSxfPWQvbjtsZXQgeT0wOzA9PWQmJjA9PW8/eT0uNS9lOmQ9PW4mJnM9PU1hdGguUEkmJih5PS0uNS9lKTtmb3IobGV0IG49MDtuPD1lO24rKyl7Y29uc3Qgcz1uL2U7dS54PS10Kk1hdGguY29zKGkrcypyKSpNYXRoLnNpbihvK18qYSksdS55PXQqTWF0aC5jb3MobytfKmEpLHUuej10Kk1hdGguc2luKGkrcypyKSpNYXRoLnNpbihvK18qYSkscC5wdXNoKHUueCx1LnksdS56KSxoLmNvcHkodSkubm9ybWFsaXplKCksZi5wdXNoKGgueCxoLnksaC56KSxtLnB1c2gocyt5LDEtXyksZy5wdXNoKGwrKyl9Yy5wdXNoKGcpfWZvcihsZXQgdD0wO3Q8bjt0KyspZm9yKGxldCBpPTA7aTxlO2krKyl7Y29uc3QgZT1jW3RdW2krMV0scj1jW3RdW2ldLGE9Y1t0KzFdW2ldLGw9Y1t0KzFdW2krMV07KDAhPT10fHxvPjApJiZkLnB1c2goZSxyLGwpLCh0IT09bi0xfHxzPE1hdGguUEkpJiZkLnB1c2gocixhLGwpfXRoaXMuc2V0SW5kZXgoZCksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KHAsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBsMXQoZiwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgbDF0KG0sMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGQ2dCh0LnJhZGl1cyx0LndpZHRoU2VnbWVudHMsdC5oZWlnaHRTZWdtZW50cyx0LnBoaVN0YXJ0LHQucGhpTGVuZ3RoLHQudGhldGFTdGFydCx0LnRoZXRhTGVuZ3RoKX19Y2xhc3MgcDZ0IGV4dGVuZHMgcjR0e2NvbnN0cnVjdG9yKHQ9MSxlPTApe3N1cGVyKFsxLDEsMSwtMSwtMSwxLC0xLDEsLTEsMSwtMSwtMV0sWzIsMSwwLDAsMywyLDEsMywwLDIsMywxXSx0LGUpLHRoaXMudHlwZT0iVGV0cmFoZWRyb25HZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCxkZXRhaWw6ZX19c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgcDZ0KHQucmFkaXVzLHQuZGV0YWlsKX19Y2xhc3MgZjZ0IGV4dGVuZHMgcjZ0e2NvbnN0cnVjdG9yKHQsZT17fSl7Y29uc3Qgbj1lLmZvbnQ7aWYoIW58fCFuLmlzRm9udClyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuVGV4dEdlb21ldHJ5OiBmb250IHBhcmFtZXRlciBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuRm9udC4iKSxuZXcgYjF0O2NvbnN0IGk9bi5nZW5lcmF0ZVNoYXBlcyh0LGUuc2l6ZSk7ZS5kZXB0aD12b2lkIDAhPT1lLmhlaWdodD9lLmhlaWdodDo1MCx2b2lkIDA9PT1lLmJldmVsVGhpY2tuZXNzJiYoZS5iZXZlbFRoaWNrbmVzcz0xMCksdm9pZCAwPT09ZS5iZXZlbFNpemUmJihlLmJldmVsU2l6ZT04KSx2b2lkIDA9PT1lLmJldmVsRW5hYmxlZCYmKGUuYmV2ZWxFbmFibGVkPSExKSxzdXBlcihpLGUpLHRoaXMudHlwZT0iVGV4dEdlb21ldHJ5In19Y2xhc3MgbTZ0IGV4dGVuZHMgYjF0e2NvbnN0cnVjdG9yKHQ9MSxlPS40LG49OCxpPTYscj0yKk1hdGguUEkpe3N1cGVyKCksdGhpcy50eXBlPSJUb3J1c0dlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LHR1YmU6ZSxyYWRpYWxTZWdtZW50czpuLHR1YnVsYXJTZWdtZW50czppLGFyYzpyfSxuPU1hdGguZmxvb3IobiksaT1NYXRoLmZsb29yKGkpO2NvbnN0IG89W10sYT1bXSxzPVtdLGw9W10sYz1uZXcgQ0p0LHU9bmV3IENKdCxoPW5ldyBDSnQ7Zm9yKGxldCBvPTA7bzw9bjtvKyspZm9yKGxldCBkPTA7ZDw9aTtkKyspe2NvbnN0IHA9ZC9pKnIsZj1vL24qTWF0aC5QSSoyO3UueD0odCtlKk1hdGguY29zKGYpKSpNYXRoLmNvcyhwKSx1Lnk9KHQrZSpNYXRoLmNvcyhmKSkqTWF0aC5zaW4ocCksdS56PWUqTWF0aC5zaW4oZiksYS5wdXNoKHUueCx1LnksdS56KSxjLng9dCpNYXRoLmNvcyhwKSxjLnk9dCpNYXRoLnNpbihwKSxoLnN1YlZlY3RvcnModSxjKS5ub3JtYWxpemUoKSxzLnB1c2goaC54LGgueSxoLnopLGwucHVzaChkL2kpLGwucHVzaChvL24pfWZvcihsZXQgdD0xO3Q8PW47dCsrKWZvcihsZXQgZT0xO2U8PWk7ZSsrKXtjb25zdCBuPShpKzEpKih0LTEpK2UtMSxyPShpKzEpKih0LTEpK2UsYT0oaSsxKSp0K2U7by5wdXNoKChpKzEpKnQrZS0xLG4sYSksby5wdXNoKG4scixhKX10aGlzLnNldEluZGV4KG8pLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdChhLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgbDF0KHMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGwxdChsLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBtNnQodC5yYWRpdXMsdC50dWJlLHQucmFkaWFsU2VnbWVudHMsdC50dWJ1bGFyU2VnbWVudHMsdC5hcmMpfX1jbGFzcyBnNnQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodD0xLGU9LjQsbj02NCxpPTgscj0yLG89Myl7c3VwZXIoKSx0aGlzLnR5cGU9IlRvcnVzS25vdEdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LHR1YmU6ZSx0dWJ1bGFyU2VnbWVudHM6bixyYWRpYWxTZWdtZW50czppLHA6cixxOm99LG49TWF0aC5mbG9vcihuKSxpPU1hdGguZmxvb3IoaSk7Y29uc3QgYT1bXSxzPVtdLGw9W10sYz1bXSx1PW5ldyBDSnQsaD1uZXcgQ0p0LGQ9bmV3IENKdCxwPW5ldyBDSnQsZj1uZXcgQ0p0LG09bmV3IENKdCxnPW5ldyBDSnQ7Zm9yKGxldCBhPTA7YTw9bjsrK2Epe2NvbnN0IHk9YS9uKnIqTWF0aC5QSSoyO18oeSxyLG8sdCxkKSxfKHkrLjAxLHIsbyx0LHApLG0uc3ViVmVjdG9ycyhwLGQpLGcuYWRkVmVjdG9ycyhwLGQpLGYuY3Jvc3NWZWN0b3JzKG0sZyksZy5jcm9zc1ZlY3RvcnMoZixtKSxmLm5vcm1hbGl6ZSgpLGcubm9ybWFsaXplKCk7Zm9yKGxldCB0PTA7dDw9aTsrK3Qpe2NvbnN0IHI9dC9pKk1hdGguUEkqMixvPS1lKk1hdGguY29zKHIpLHA9ZSpNYXRoLnNpbihyKTt1Lng9ZC54KyhvKmcueCtwKmYueCksdS55PWQueSsobypnLnkrcCpmLnkpLHUuej1kLnorKG8qZy56K3AqZi56KSxzLnB1c2godS54LHUueSx1LnopLGguc3ViVmVjdG9ycyh1LGQpLm5vcm1hbGl6ZSgpLGwucHVzaChoLngsaC55LGgueiksYy5wdXNoKGEvbiksYy5wdXNoKHQvaSl9fWZvcihsZXQgdD0xO3Q8PW47dCsrKWZvcihsZXQgZT0xO2U8PWk7ZSsrKXtjb25zdCBuPShpKzEpKnQrKGUtMSkscj0oaSsxKSp0K2Usbz0oaSsxKSoodC0xKStlO2EucHVzaCgoaSsxKSoodC0xKSsoZS0xKSxuLG8pLGEucHVzaChuLHIsbyl9ZnVuY3Rpb24gXyh0LGUsbixpLHIpe2NvbnN0IG89TWF0aC5jb3ModCksYT1NYXRoLnNpbih0KSxzPW4vZSp0LGw9TWF0aC5jb3Mocyk7ci54PWkqKDIrbCkqLjUqbyxyLnk9aSooMitsKSphKi41LHIuej1pKk1hdGguc2luKHMpKi41fXRoaXMuc2V0SW5kZXgoYSksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KHMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBsMXQobCwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgbDF0KGMsMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGc2dCh0LnJhZGl1cyx0LnR1YmUsdC50dWJ1bGFyU2VnbWVudHMsdC5yYWRpYWxTZWdtZW50cyx0LnAsdC5xKX19Y2xhc3MgXzZ0IGV4dGVuZHMgYjF0e2NvbnN0cnVjdG9yKHQsZT02NCxuPTEsaT04LHI9ITEpe3N1cGVyKCksdGhpcy50eXBlPSJUdWJlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cGF0aDp0LHR1YnVsYXJTZWdtZW50czplLHJhZGl1czpuLHJhZGlhbFNlZ21lbnRzOmksY2xvc2VkOnJ9O2NvbnN0IG89dC5jb21wdXRlRnJlbmV0RnJhbWVzKGUscik7dGhpcy50YW5nZW50cz1vLnRhbmdlbnRzLHRoaXMubm9ybWFscz1vLm5vcm1hbHMsdGhpcy5iaW5vcm1hbHM9by5iaW5vcm1hbHM7Y29uc3QgYT1uZXcgQ0p0LHM9bmV3IENKdCxsPW5ldyBtSnQ7bGV0IGM9bmV3IENKdDtjb25zdCB1PVtdLGg9W10sZD1bXSxwPVtdO2Z1bmN0aW9uIGYocil7Yz10LmdldFBvaW50QXQoci9lLGMpO2NvbnN0IGw9by5ub3JtYWxzW3JdLGQ9by5iaW5vcm1hbHNbcl07Zm9yKGxldCB0PTA7dDw9aTt0Kyspe2NvbnN0IGU9dC9pKk1hdGguUEkqMixyPU1hdGguc2luKGUpLG89LU1hdGguY29zKGUpO3MueD1vKmwueCtyKmQueCxzLnk9bypsLnkrcipkLnkscy56PW8qbC56K3IqZC56LHMubm9ybWFsaXplKCksaC5wdXNoKHMueCxzLnkscy56KSxhLng9Yy54K24qcy54LGEueT1jLnkrbipzLnksYS56PWMueituKnMueix1LnB1c2goYS54LGEueSxhLnopfX0hKGZ1bmN0aW9uIG0oKXtmb3IobGV0IHQ9MDt0PGU7dCsrKWYodCk7ZighMT09PXI/ZTowKSwoZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8PWU7dCsrKWZvcihsZXQgbj0wO248PWk7bisrKWwueD10L2UsbC55PW4vaSxkLnB1c2gobC54LGwueSl9KSgpLChmdW5jdGlvbiBuKCl7Zm9yKGxldCB0PTE7dDw9ZTt0KyspZm9yKGxldCBlPTE7ZTw9aTtlKyspe2NvbnN0IG49KGkrMSkqdCsoZS0xKSxyPShpKzEpKnQrZSxvPShpKzEpKih0LTEpK2U7cC5wdXNoKChpKzEpKih0LTEpKyhlLTEpLG4sbykscC5wdXNoKG4scixvKX19KSgpfSkoKSx0aGlzLnNldEluZGV4KHApLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdCh1LDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgbDF0KGgsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGwxdChkLDIpKX10b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnBhdGg9dGhpcy5wYXJhbWV0ZXJzLnBhdGgudG9KU09OKCksdH1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBfNnQoKG5ldyBMNHRbdC5wYXRoLnR5cGVdKS5mcm9tSlNPTih0LnBhdGgpLHQudHVidWxhclNlZ21lbnRzLHQucmFkaXVzLHQucmFkaWFsU2VnbWVudHMsdC5jbG9zZWQpfX1jbGFzcyB5NnQgZXh0ZW5kcyBiMXR7Y29uc3RydWN0b3IodCl7aWYoc3VwZXIoKSx0aGlzLnR5cGU9IldpcmVmcmFtZUdlb21ldHJ5IiwhMD09PXQuaXNHZW9tZXRyeSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XaXJlZnJhbWVHZW9tZXRyeSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpO2NvbnN0IGU9W10sbj1uZXcgU2V0LGk9bmV3IENKdCxyPW5ldyBDSnQ7aWYobnVsbCE9PXQuaW5kZXgpe2NvbnN0IG89dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLGE9dC5pbmRleDtsZXQgcz10Lmdyb3VwczswPT09cy5sZW5ndGgmJihzPVt7c3RhcnQ6MCxjb3VudDphLmNvdW50LG1hdGVyaWFsSW5kZXg6MH1dKTtmb3IobGV0IHQ9MCxsPXMubGVuZ3RoO3Q8bDsrK3Qpe2NvbnN0IGw9c1t0XSxjPWwuc3RhcnQ7Zm9yKGxldCB0PWMscz1jK2wuY291bnQ7dDxzO3QrPTMpZm9yKGxldCBzPTA7czwzO3MrKyl7Y29uc3QgbD1hLmdldFgodCtzKSxjPWEuZ2V0WCh0KyhzKzEpJTMpO2kuZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLGwpLHIuZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLGMpLCEwPT09djZ0KGkscixuKSYmKGUucHVzaChpLngsaS55LGkueiksZS5wdXNoKHIueCxyLnksci56KSl9fX1lbHNle2NvbnN0IG89dC5hdHRyaWJ1dGVzLnBvc2l0aW9uO2ZvcihsZXQgdD0wLGE9by5jb3VudC8zO3Q8YTt0KyspZm9yKGxldCBhPTA7YTwzO2ErKyl7Y29uc3Qgcz0zKnQrKGErMSklMztpLmZyb21CdWZmZXJBdHRyaWJ1dGUobywzKnQrYSksci5mcm9tQnVmZmVyQXR0cmlidXRlKG8scyksITA9PT12NnQoaSxyLG4pJiYoZS5wdXNoKGkueCxpLnksaS56KSxlLnB1c2goci54LHIueSxyLnopKX19dGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KGUsMykpfX1mdW5jdGlvbiB2NnQodCxlLG4pe2NvbnN0IGk9YCR7dC54fSwke3QueX0sJHt0Lnp9LSR7ZS54fSwke2UueX0sJHtlLnp9YCxyPWAke2UueH0sJHtlLnl9LCR7ZS56fS0ke3QueH0sJHt0Lnl9LCR7dC56fWA7cmV0dXJuITAhPT1uLmhhcyhpKSYmITAhPT1uLmhhcyhyKSYmKG4uYWRkKGksciksITApfXZhciBiNnQ9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQm94R2VvbWV0cnk6RjF0LEJveEJ1ZmZlckdlb21ldHJ5OkYxdCxDaXJjbGVHZW9tZXRyeTplNHQsQ2lyY2xlQnVmZmVyR2VvbWV0cnk6ZTR0LENvbmVHZW9tZXRyeTppNHQsQ29uZUJ1ZmZlckdlb21ldHJ5Omk0dCxDeWxpbmRlckdlb21ldHJ5Om40dCxDeWxpbmRlckJ1ZmZlckdlb21ldHJ5Om40dCxEb2RlY2FoZWRyb25HZW9tZXRyeTpvNHQsRG9kZWNhaGVkcm9uQnVmZmVyR2VvbWV0cnk6bzR0LEVkZ2VzR2VvbWV0cnk6dTR0LEV4dHJ1ZGVHZW9tZXRyeTpyNnQsRXh0cnVkZUJ1ZmZlckdlb21ldHJ5OnI2dCxJY29zYWhlZHJvbkdlb21ldHJ5OmE2dCxJY29zYWhlZHJvbkJ1ZmZlckdlb21ldHJ5OmE2dCxMYXRoZUdlb21ldHJ5OnM2dCxMYXRoZUJ1ZmZlckdlb21ldHJ5OnM2dCxPY3RhaGVkcm9uR2VvbWV0cnk6bDZ0LE9jdGFoZWRyb25CdWZmZXJHZW9tZXRyeTpsNnQsUGFyYW1ldHJpY0dlb21ldHJ5OmM2dCxQYXJhbWV0cmljQnVmZmVyR2VvbWV0cnk6YzZ0LFBsYW5lR2VvbWV0cnk6YTB0LFBsYW5lQnVmZmVyR2VvbWV0cnk6YTB0LFBvbHloZWRyb25HZW9tZXRyeTpyNHQsUG9seWhlZHJvbkJ1ZmZlckdlb21ldHJ5OnI0dCxSaW5nR2VvbWV0cnk6dTZ0LFJpbmdCdWZmZXJHZW9tZXRyeTp1NnQsU2hhcGVHZW9tZXRyeTpoNnQsU2hhcGVCdWZmZXJHZW9tZXRyeTpoNnQsU3BoZXJlR2VvbWV0cnk6ZDZ0LFNwaGVyZUJ1ZmZlckdlb21ldHJ5OmQ2dCxUZXRyYWhlZHJvbkdlb21ldHJ5OnA2dCxUZXRyYWhlZHJvbkJ1ZmZlckdlb21ldHJ5OnA2dCxUZXh0R2VvbWV0cnk6ZjZ0LFRleHRCdWZmZXJHZW9tZXRyeTpmNnQsVG9ydXNHZW9tZXRyeTptNnQsVG9ydXNCdWZmZXJHZW9tZXRyeTptNnQsVG9ydXNLbm90R2VvbWV0cnk6ZzZ0LFRvcnVzS25vdEJ1ZmZlckdlb21ldHJ5Omc2dCxUdWJlR2VvbWV0cnk6XzZ0LFR1YmVCdWZmZXJHZW9tZXRyeTpfNnQsV2lyZWZyYW1lR2VvbWV0cnk6eTZ0fSk7Y2xhc3MgeDZ0IGV4dGVuZHMgVVF0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJTaGFkb3dNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgJFF0KDApLHRoaXMudHJhbnNwYXJlbnQ9ITAsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpc319eDZ0LnByb3RvdHlwZS5pc1NoYWRvd01hdGVyaWFsPSEwO2NsYXNzIHc2dCBleHRlbmRzIFVRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGVmaW5lcz17U1RBTkRBUkQ6IiJ9LHRoaXMudHlwZT0iTWVzaFN0YW5kYXJkTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3ICRRdCgxNjc3NzIxNSksdGhpcy5yb3VnaG5lc3M9MSx0aGlzLm1ldGFsbmVzcz0wLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3ICRRdCgwKSx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZU1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9MCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBtSnQoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLnJvdWdobmVzc01hcD1udWxsLHRoaXMubWV0YWxuZXNzTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5lbnZNYXBJbnRlbnNpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5mbGF0U2hhZGluZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGVmaW5lcz17U1RBTkRBUkQ6IiJ9LHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLnJvdWdobmVzcz10LnJvdWdobmVzcyx0aGlzLm1ldGFsbmVzcz10Lm1ldGFsbmVzcyx0aGlzLm1hcD10Lm1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLnJvdWdobmVzc01hcD10LnJvdWdobmVzc01hcCx0aGlzLm1ldGFsbmVzc01hcD10Lm1ldGFsbmVzc01hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5lbnZNYXBJbnRlbnNpdHk9dC5lbnZNYXBJbnRlbnNpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpcy5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nLHRoaXN9fXc2dC5wcm90b3R5cGUuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD0hMDtjbGFzcyBTNnQgZXh0ZW5kcyB3NnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIiLFBIWVNJQ0FMOiIifSx0aGlzLnR5cGU9Ik1lc2hQaHlzaWNhbE1hdGVyaWFsIix0aGlzLmNsZWFyY29hdD0wLHRoaXMuY2xlYXJjb2F0TWFwPW51bGwsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3M9MCx0aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcD1udWxsLHRoaXMuY2xlYXJjb2F0Tm9ybWFsU2NhbGU9bmV3IG1KdCgxLDEpLHRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwPW51bGwsdGhpcy5yZWZsZWN0aXZpdHk9LjUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlvciIse2dldDpmdW5jdGlvbigpe3JldHVybigxKy40KnRoaXMucmVmbGVjdGl2aXR5KS8oMS0uNCp0aGlzLnJlZmxlY3Rpdml0eSl9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlZmxlY3Rpdml0eT0kWnQoMi41Kih0LTEpLyh0KzEpLDAsMSl9fSksdGhpcy5zaGVlbj1udWxsLHRoaXMudHJhbnNtaXNzaW9uPTAsdGhpcy50cmFuc21pc3Npb25NYXA9bnVsbCx0aGlzLnRoaWNrbmVzcz0uMDEsdGhpcy50aGlja25lc3NNYXA9bnVsbCx0aGlzLmF0dGVudWF0aW9uRGlzdGFuY2U9MCx0aGlzLmF0dGVudWF0aW9uVGludD1uZXcgJFF0KDEsMSwxKSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5PTEsdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcD1udWxsLHRoaXMuc3BlY3VsYXJUaW50PW5ldyAkUXQoMSwxLDEpLHRoaXMuc3BlY3VsYXJUaW50TWFwPW51bGwsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIiLFBIWVNJQ0FMOiIifSx0aGlzLmNsZWFyY29hdD10LmNsZWFyY29hdCx0aGlzLmNsZWFyY29hdE1hcD10LmNsZWFyY29hdE1hcCx0aGlzLmNsZWFyY29hdFJvdWdobmVzcz10LmNsZWFyY29hdFJvdWdobmVzcyx0aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcD10LmNsZWFyY29hdFJvdWdobmVzc01hcCx0aGlzLmNsZWFyY29hdE5vcm1hbE1hcD10LmNsZWFyY29hdE5vcm1hbE1hcCx0aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlLmNvcHkodC5jbGVhcmNvYXROb3JtYWxTY2FsZSksdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5zaGVlbj10LnNoZWVuPyh0aGlzLnNoZWVufHxuZXcgJFF0KS5jb3B5KHQuc2hlZW4pOm51bGwsdGhpcy50cmFuc21pc3Npb249dC50cmFuc21pc3Npb24sdGhpcy50cmFuc21pc3Npb25NYXA9dC50cmFuc21pc3Npb25NYXAsdGhpcy50aGlja25lc3M9dC50aGlja25lc3MsdGhpcy50aGlja25lc3NNYXA9dC50aGlja25lc3NNYXAsdGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlPXQuYXR0ZW51YXRpb25EaXN0YW5jZSx0aGlzLmF0dGVudWF0aW9uVGludC5jb3B5KHQuYXR0ZW51YXRpb25UaW50KSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5PXQuc3BlY3VsYXJJbnRlbnNpdHksdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcD10LnNwZWN1bGFySW50ZW5zaXR5TWFwLHRoaXMuc3BlY3VsYXJUaW50LmNvcHkodC5zcGVjdWxhclRpbnQpLHRoaXMuc3BlY3VsYXJUaW50TWFwPXQuc3BlY3VsYXJUaW50TWFwLHRoaXN9fVM2dC5wcm90b3R5cGUuaXNNZXNoUGh5c2ljYWxNYXRlcmlhbD0hMDtjbGFzcyBNNnQgZXh0ZW5kcyBVUXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hQaG9uZ01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyAkUXQoMTY3NzcyMTUpLHRoaXMuc3BlY3VsYXI9bmV3ICRRdCgxMTE4NDgxKSx0aGlzLnNoaW5pbmVzcz0zMCx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyAkUXQoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPTAsdGhpcy5ub3JtYWxTY2FsZT1uZXcgbUp0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5zcGVjdWxhck1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuY29tYmluZT0wLHRoaXMucmVmbGVjdGl2aXR5PTEsdGhpcy5yZWZyYWN0aW9uUmF0aW89Ljk4LHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuZmxhdFNoYWRpbmc9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5zcGVjdWxhci5jb3B5KHQuc3BlY3VsYXIpLHRoaXMuc2hpbmluZXNzPXQuc2hpbmluZXNzLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319TTZ0LnByb3RvdHlwZS5pc01lc2hQaG9uZ01hdGVyaWFsPSEwO2NsYXNzIEU2dCBleHRlbmRzIFVRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGVmaW5lcz17VE9PTjoiIn0sdGhpcy50eXBlPSJNZXNoVG9vbk1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyAkUXQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5ncmFkaWVudE1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyAkUXQoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPTAsdGhpcy5ub3JtYWxTY2FsZT1uZXcgbUp0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuZ3JhZGllbnRNYXA9dC5ncmFkaWVudE1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpc319RTZ0LnByb3RvdHlwZS5pc01lc2hUb29uTWF0ZXJpYWw9ITA7Y2xhc3MgVDZ0IGV4dGVuZHMgVVF0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoTm9ybWFsTWF0ZXJpYWwiLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9MCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBtSnQoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMuZmxhdFNoYWRpbmc9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXMuZmxhdFNoYWRpbmc9dC5mbGF0U2hhZGluZyx0aGlzfX1UNnQucHJvdG90eXBlLmlzTWVzaE5vcm1hbE1hdGVyaWFsPSEwO2NsYXNzIEM2dCBleHRlbmRzIFVRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaExhbWJlcnRNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgJFF0KDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyAkUXQoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLnNwZWN1bGFyTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5jb21iaW5lPTAsdGhpcy5yZWZsZWN0aXZpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuZW1pc3NpdmUuY29weSh0LmVtaXNzaXZlKSx0aGlzLmVtaXNzaXZlTWFwPXQuZW1pc3NpdmVNYXAsdGhpcy5lbWlzc2l2ZUludGVuc2l0eT10LmVtaXNzaXZlSW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX1DNnQucHJvdG90eXBlLmlzTWVzaExhbWJlcnRNYXRlcmlhbD0hMDtjbGFzcyBBNnQgZXh0ZW5kcyBVUXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRlZmluZXM9e01BVENBUDoiIn0sdGhpcy50eXBlPSJNZXNoTWF0Y2FwTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3ICRRdCgxNjc3NzIxNSksdGhpcy5tYXRjYXA9bnVsbCx0aGlzLm1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9MCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBtSnQoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5mbGF0U2hhZGluZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGVmaW5lcz17TUFUQ0FQOiIifSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXRjYXA9dC5tYXRjYXAsdGhpcy5tYXA9dC5tYXAsdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nLHRoaXN9fUE2dC5wcm90b3R5cGUuaXNNZXNoTWF0Y2FwTWF0ZXJpYWw9ITA7Y2xhc3MgazZ0IGV4dGVuZHMgSTN0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lRGFzaGVkTWF0ZXJpYWwiLHRoaXMuc2NhbGU9MSx0aGlzLmRhc2hTaXplPTMsdGhpcy5nYXBTaXplPTEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnNjYWxlPXQuc2NhbGUsdGhpcy5kYXNoU2l6ZT10LmRhc2hTaXplLHRoaXMuZ2FwU2l6ZT10LmdhcFNpemUsdGhpc319azZ0LnByb3RvdHlwZS5pc0xpbmVEYXNoZWRNYXRlcmlhbD0hMDt2YXIgTDZ0PU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLFNoYWRvd01hdGVyaWFsOng2dCxTcHJpdGVNYXRlcmlhbDpKNXQsUmF3U2hhZGVyTWF0ZXJpYWw6XzB0LFNoYWRlck1hdGVyaWFsOkcxdCxQb2ludHNNYXRlcmlhbDpHM3QsTWVzaFBoeXNpY2FsTWF0ZXJpYWw6UzZ0LE1lc2hTdGFuZGFyZE1hdGVyaWFsOnc2dCxNZXNoUGhvbmdNYXRlcmlhbDpNNnQsTWVzaFRvb25NYXRlcmlhbDpFNnQsTWVzaE5vcm1hbE1hdGVyaWFsOlQ2dCxNZXNoTGFtYmVydE1hdGVyaWFsOkM2dCxNZXNoRGVwdGhNYXRlcmlhbDpONXQsTWVzaERpc3RhbmNlTWF0ZXJpYWw6STV0LE1lc2hCYXNpY01hdGVyaWFsOktRdCxNZXNoTWF0Y2FwTWF0ZXJpYWw6QTZ0LExpbmVEYXNoZWRNYXRlcmlhbDprNnQsTGluZUJhc2ljTWF0ZXJpYWw6STN0LE1hdGVyaWFsOlVRdH0pO2NvbnN0IFA2dD17YXJyYXlTbGljZTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIFA2dC5pc1R5cGVkQXJyYXkodCk/bmV3IHQuY29uc3RydWN0b3IodC5zdWJhcnJheShlLHZvaWQgMCE9PW4/bjp0Lmxlbmd0aCkpOnQuc2xpY2UoZSxuKX0sY29udmVydEFycmF5OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4hdHx8IW4mJnQuY29uc3RydWN0b3I9PT1lP3Q6Im51bWJlciI9PXR5cGVvZiBlLkJZVEVTX1BFUl9FTEVNRU5UP25ldyBlKHQpOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpfSxpc1R5cGVkQXJyYXk6ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgRGF0YVZpZXcpfSxnZXRLZXlmcmFtZU9yZGVyOmZ1bmN0aW9uKHQpe2NvbnN0IGU9dC5sZW5ndGgsbj1uZXcgQXJyYXkoZSk7Zm9yKGxldCB0PTA7dCE9PWU7Kyt0KW5bdF09dDtyZXR1cm4gbi5zb3J0KChmdW5jdGlvbiBpKGUsbil7cmV0dXJuIHRbZV0tdFtuXX0pKSxufSxzb3J0ZWRBcnJheTpmdW5jdGlvbih0LGUsbil7Y29uc3QgaT10Lmxlbmd0aCxyPW5ldyB0LmNvbnN0cnVjdG9yKGkpO2ZvcihsZXQgbz0wLGE9MDthIT09aTsrK28pe2NvbnN0IGk9bltvXSplO2ZvcihsZXQgbj0wO24hPT1lOysrbilyW2ErK109dFtpK25dfXJldHVybiByfSxmbGF0dGVuSlNPTjpmdW5jdGlvbih0LGUsbixpKXtsZXQgcj0xLG89dFswXTtmb3IoO3ZvaWQgMCE9PW8mJnZvaWQgMD09PW9baV07KW89dFtyKytdO2lmKHZvaWQgMD09PW8pcmV0dXJuO2xldCBhPW9baV07aWYodm9pZCAwIT09YSlpZihBcnJheS5pc0FycmF5KGEpKWRve2E9b1tpXSx2b2lkIDAhPT1hJiYoZS5wdXNoKG8udGltZSksbi5wdXNoLmFwcGx5KG4sYSkpLG89dFtyKytdfXdoaWxlKHZvaWQgMCE9PW8pO2Vsc2UgaWYodm9pZCAwIT09YS50b0FycmF5KWRve2E9b1tpXSx2b2lkIDAhPT1hJiYoZS5wdXNoKG8udGltZSksYS50b0FycmF5KG4sbi5sZW5ndGgpKSxvPXRbcisrXX13aGlsZSh2b2lkIDAhPT1vKTtlbHNlIGRve2E9b1tpXSx2b2lkIDAhPT1hJiYoZS5wdXNoKG8udGltZSksbi5wdXNoKGEpKSxvPXRbcisrXX13aGlsZSh2b2lkIDAhPT1vKX0sc3ViY2xpcDpmdW5jdGlvbih0LGUsbixpLHI9MzApe2NvbnN0IG89dC5jbG9uZSgpO28ubmFtZT1lO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxvLnRyYWNrcy5sZW5ndGg7Kyt0KXtjb25zdCBlPW8udHJhY2tzW3RdLHM9ZS5nZXRWYWx1ZVNpemUoKSxsPVtdLGM9W107Zm9yKGxldCB0PTA7dDxlLnRpbWVzLmxlbmd0aDsrK3Qpe2NvbnN0IG89ZS50aW1lc1t0XSpyO2lmKCEobzxufHxvPj1pKSl7bC5wdXNoKGUudGltZXNbdF0pO2ZvcihsZXQgbj0wO248czsrK24pYy5wdXNoKGUudmFsdWVzW3QqcytuXSl9fTAhPT1sLmxlbmd0aCYmKGUudGltZXM9UDZ0LmNvbnZlcnRBcnJheShsLGUudGltZXMuY29uc3RydWN0b3IpLGUudmFsdWVzPVA2dC5jb252ZXJ0QXJyYXkoYyxlLnZhbHVlcy5jb25zdHJ1Y3RvciksYS5wdXNoKGUpKX1vLnRyYWNrcz1hO2xldCBzPTEvMDtmb3IobGV0IHQ9MDt0PG8udHJhY2tzLmxlbmd0aDsrK3Qpcz5vLnRyYWNrc1t0XS50aW1lc1swXSYmKHM9by50cmFja3NbdF0udGltZXNbMF0pO2ZvcihsZXQgdD0wO3Q8by50cmFja3MubGVuZ3RoOysrdClvLnRyYWNrc1t0XS5zaGlmdCgtMSpzKTtyZXR1cm4gby5yZXNldER1cmF0aW9uKCksb30sbWFrZUNsaXBBZGRpdGl2ZTpmdW5jdGlvbih0LGU9MCxuPXQsaT0zMCl7aTw9MCYmKGk9MzApO2NvbnN0IHI9bi50cmFja3MubGVuZ3RoLG89ZS9pO2ZvcihsZXQgZT0wO2U8cjsrK2Upe2NvbnN0IGk9bi50cmFja3NbZV0scj1pLlZhbHVlVHlwZU5hbWU7aWYoImJvb2wiPT09cnx8InN0cmluZyI9PT1yKWNvbnRpbnVlO2NvbnN0IGE9dC50cmFja3MuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZT09PWkubmFtZSYmdC5WYWx1ZVR5cGVOYW1lPT09cn0pKTtpZih2b2lkIDA9PT1hKWNvbnRpbnVlO2xldCBzPTA7Y29uc3QgbD1pLmdldFZhbHVlU2l6ZSgpO2kuY3JlYXRlSW50ZXJwb2xhbnQuaXNJbnRlcnBvbGFudEZhY3RvcnlNZXRob2RHTFRGQ3ViaWNTcGxpbmUmJihzPWwvMyk7bGV0IGM9MDtjb25zdCB1PWEuZ2V0VmFsdWVTaXplKCk7YS5jcmVhdGVJbnRlcnBvbGFudC5pc0ludGVycG9sYW50RmFjdG9yeU1ldGhvZEdMVEZDdWJpY1NwbGluZSYmKGM9dS8zKTtjb25zdCBoPWkudGltZXMubGVuZ3RoLTE7bGV0IGQ7aWYobzw9aS50aW1lc1swXSlkPVA2dC5hcnJheVNsaWNlKGkudmFsdWVzLHMsbC1zKTtlbHNlIGlmKG8+PWkudGltZXNbaF0pe2NvbnN0IHQ9aCpsK3M7ZD1QNnQuYXJyYXlTbGljZShpLnZhbHVlcyx0LHQrbC1zKX1lbHNle2NvbnN0IHQ9aS5jcmVhdGVJbnRlcnBvbGFudCgpLGU9cyxuPWwtczt0LmV2YWx1YXRlKG8pLGQ9UDZ0LmFycmF5U2xpY2UodC5yZXN1bHRCdWZmZXIsZSxuKX0icXVhdGVybmlvbiI9PT1yJiYobmV3IFRKdCkuZnJvbUFycmF5KGQpLm5vcm1hbGl6ZSgpLmNvbmp1Z2F0ZSgpLnRvQXJyYXkoZCk7Y29uc3QgcD1hLnRpbWVzLmxlbmd0aDtmb3IobGV0IHQ9MDt0PHA7Kyt0KXtjb25zdCBlPXQqdStjO2lmKCJxdWF0ZXJuaW9uIj09PXIpVEp0Lm11bHRpcGx5UXVhdGVybmlvbnNGbGF0KGEudmFsdWVzLGUsZCwwLGEudmFsdWVzLGUpO2Vsc2V7Y29uc3QgdD11LTIqYztmb3IobGV0IG49MDtuPHQ7KytuKWEudmFsdWVzW2Urbl0tPWRbbl19fX1yZXR1cm4gdC5ibGVuZE1vZGU9UFp0LHR9fTtjbGFzcyBONnR7Y29uc3RydWN0b3IodCxlLG4saSl7dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnM9dCx0aGlzLl9jYWNoZWRJbmRleD0wLHRoaXMucmVzdWx0QnVmZmVyPXZvaWQgMCE9PWk/aTpuZXcgZS5jb25zdHJ1Y3RvcihuKSx0aGlzLnNhbXBsZVZhbHVlcz1lLHRoaXMudmFsdWVTaXplPW4sdGhpcy5zZXR0aW5ncz1udWxsLHRoaXMuRGVmYXVsdFNldHRpbmdzXz17fX1ldmFsdWF0ZSh0KXtjb25zdCBlPXRoaXMucGFyYW1ldGVyUG9zaXRpb25zO2xldCBuPXRoaXMuX2NhY2hlZEluZGV4LGk9ZVtuXSxyPWVbbi0xXTt0OntlOntsZXQgbztuOntpOmlmKCEodDxpKSl7Zm9yKGxldCBvPW4rMjs7KXtpZih2b2lkIDA9PT1pKXtpZih0PHIpYnJlYWsgaTtyZXR1cm4gbj1lLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1uLHRoaXMuYWZ0ZXJFbmRfKG4tMSx0LHIpfWlmKG49PT1vKWJyZWFrO2lmKHI9aSxpPWVbKytuXSx0PGkpYnJlYWsgZX1vPWUubGVuZ3RoO2JyZWFrIG59aWYodD49cilicmVhayB0O3tjb25zdCBhPWVbMV07dDxhJiYobj0yLHI9YSk7Zm9yKGxldCBvPW4tMjs7KXtpZih2b2lkIDA9PT1yKXJldHVybiB0aGlzLl9jYWNoZWRJbmRleD0wLHRoaXMuYmVmb3JlU3RhcnRfKDAsdCxpKTtpZihuPT09bylicmVhaztpZihpPXIscj1lWy0tbi0xXSx0Pj1yKWJyZWFrIGV9bz1uLG49MH19Zm9yKDtuPG87KXtjb25zdCBpPW4rbz4+PjE7dDxlW2ldP289aTpuPWkrMX1pZihpPWVbbl0scj1lW24tMV0sdm9pZCAwPT09cilyZXR1cm4gdGhpcy5fY2FjaGVkSW5kZXg9MCx0aGlzLmJlZm9yZVN0YXJ0XygwLHQsaSk7aWYodm9pZCAwPT09aSlyZXR1cm4gbj1lLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1uLHRoaXMuYWZ0ZXJFbmRfKG4tMSxyLHQpfXRoaXMuX2NhY2hlZEluZGV4PW4sdGhpcy5pbnRlcnZhbENoYW5nZWRfKG4scixpKX1yZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZV8obixyLHQsaSl9Z2V0U2V0dGluZ3NfKCl7cmV0dXJuIHRoaXMuc2V0dGluZ3N8fHRoaXMuRGVmYXVsdFNldHRpbmdzX31jb3B5U2FtcGxlVmFsdWVfKHQpe2NvbnN0IGU9dGhpcy5yZXN1bHRCdWZmZXIsbj10aGlzLnNhbXBsZVZhbHVlcyxpPXRoaXMudmFsdWVTaXplLHI9dCppO2ZvcihsZXQgdD0wO3QhPT1pOysrdCllW3RdPW5bcit0XTtyZXR1cm4gZX1pbnRlcnBvbGF0ZV8oKXt0aHJvdyBuZXcgRXJyb3IoImNhbGwgdG8gYWJzdHJhY3QgbWV0aG9kIil9aW50ZXJ2YWxDaGFuZ2VkXygpe319TjZ0LnByb3RvdHlwZS5iZWZvcmVTdGFydF89TjZ0LnByb3RvdHlwZS5jb3B5U2FtcGxlVmFsdWVfLE42dC5wcm90b3R5cGUuYWZ0ZXJFbmRfPU42dC5wcm90b3R5cGUuY29weVNhbXBsZVZhbHVlXztjbGFzcyBJNnQgZXh0ZW5kcyBONnR7Y29uc3RydWN0b3IodCxlLG4saSl7c3VwZXIodCxlLG4saSksdGhpcy5fd2VpZ2h0UHJldj0tMCx0aGlzLl9vZmZzZXRQcmV2PS0wLHRoaXMuX3dlaWdodE5leHQ9LTAsdGhpcy5fb2Zmc2V0TmV4dD0tMCx0aGlzLkRlZmF1bHRTZXR0aW5nc189e2VuZGluZ1N0YXJ0OkNadCxlbmRpbmdFbmQ6Q1p0fX1pbnRlcnZhbENoYW5nZWRfKHQsZSxuKXtjb25zdCBpPXRoaXMucGFyYW1ldGVyUG9zaXRpb25zO2xldCByPXQtMixvPXQrMSxhPWlbcl0scz1pW29dO2lmKHZvaWQgMD09PWEpc3dpdGNoKHRoaXMuZ2V0U2V0dGluZ3NfKCkuZW5kaW5nU3RhcnQpe2Nhc2UgQVp0OnI9dCxhPTIqZS1uO2JyZWFrO2Nhc2Uga1p0OnI9aS5sZW5ndGgtMixhPWUraVtyXS1pW3IrMV07YnJlYWs7ZGVmYXVsdDpyPXQsYT1ufWlmKHZvaWQgMD09PXMpc3dpdGNoKHRoaXMuZ2V0U2V0dGluZ3NfKCkuZW5kaW5nRW5kKXtjYXNlIEFadDpvPXQscz0yKm4tZTticmVhaztjYXNlIGtadDpvPTEscz1uK2lbMV0taVswXTticmVhaztkZWZhdWx0Om89dC0xLHM9ZX1jb25zdCBsPS41KihuLWUpLGM9dGhpcy52YWx1ZVNpemU7dGhpcy5fd2VpZ2h0UHJldj1sLyhlLWEpLHRoaXMuX3dlaWdodE5leHQ9bC8ocy1uKSx0aGlzLl9vZmZzZXRQcmV2PXIqYyx0aGlzLl9vZmZzZXROZXh0PW8qY31pbnRlcnBvbGF0ZV8odCxlLG4saSl7Y29uc3Qgcj10aGlzLnJlc3VsdEJ1ZmZlcixvPXRoaXMuc2FtcGxlVmFsdWVzLGE9dGhpcy52YWx1ZVNpemUscz10KmEsbD1zLWEsYz10aGlzLl9vZmZzZXRQcmV2LHU9dGhpcy5fb2Zmc2V0TmV4dCxoPXRoaXMuX3dlaWdodFByZXYsZD10aGlzLl93ZWlnaHROZXh0LHA9KG4tZSkvKGktZSksZj1wKnAsbT1mKnAsZz0taCptKzIqaCpmLWgqcCxfPSgxK2gpKm0rKC0xLjUtMipoKSpmKygtLjUraCkqcCsxLHk9KC0xLWQpKm0rKDEuNStkKSpmKy41KnAsdj1kKm0tZCpmO2ZvcihsZXQgdD0wO3QhPT1hOysrdClyW3RdPWcqb1tjK3RdK18qb1tsK3RdK3kqb1tzK3RdK3Yqb1t1K3RdO3JldHVybiByfX1jbGFzcyBSNnQgZXh0ZW5kcyBONnR7Y29uc3RydWN0b3IodCxlLG4saSl7c3VwZXIodCxlLG4saSl9aW50ZXJwb2xhdGVfKHQsZSxuLGkpe2NvbnN0IHI9dGhpcy5yZXN1bHRCdWZmZXIsbz10aGlzLnNhbXBsZVZhbHVlcyxhPXRoaXMudmFsdWVTaXplLHM9dCphLGw9cy1hLGM9KG4tZSkvKGktZSksdT0xLWM7Zm9yKGxldCB0PTA7dCE9PWE7Kyt0KXJbdF09b1tsK3RdKnUrb1tzK3RdKmM7cmV0dXJuIHJ9fWNsYXNzIE82dCBleHRlbmRzIE42dHtjb25zdHJ1Y3Rvcih0LGUsbixpKXtzdXBlcih0LGUsbixpKX1pbnRlcnBvbGF0ZV8odCl7cmV0dXJuIHRoaXMuY29weVNhbXBsZVZhbHVlXyh0LTEpfX1jbGFzcyB6NnR7Y29uc3RydWN0b3IodCxlLG4saSl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IHRyYWNrIG5hbWUgaXMgdW5kZWZpbmVkIik7aWYodm9pZCAwPT09ZXx8MD09PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogbm8ga2V5ZnJhbWVzIGluIHRyYWNrIG5hbWVkICIrdCk7dGhpcy5uYW1lPXQsdGhpcy50aW1lcz1QNnQuY29udmVydEFycmF5KGUsdGhpcy5UaW1lQnVmZmVyVHlwZSksdGhpcy52YWx1ZXM9UDZ0LmNvbnZlcnRBcnJheShuLHRoaXMuVmFsdWVCdWZmZXJUeXBlKSx0aGlzLnNldEludGVycG9sYXRpb24oaXx8dGhpcy5EZWZhdWx0SW50ZXJwb2xhdGlvbil9c3RhdGljIHRvSlNPTih0KXtjb25zdCBlPXQuY29uc3RydWN0b3I7bGV0IG47aWYoZS50b0pTT04hPT10aGlzLnRvSlNPTiluPWUudG9KU09OKHQpO2Vsc2V7bj17bmFtZTp0Lm5hbWUsdGltZXM6UDZ0LmNvbnZlcnRBcnJheSh0LnRpbWVzLEFycmF5KSx2YWx1ZXM6UDZ0LmNvbnZlcnRBcnJheSh0LnZhbHVlcyxBcnJheSl9O2NvbnN0IGU9dC5nZXRJbnRlcnBvbGF0aW9uKCk7ZSE9PXQuRGVmYXVsdEludGVycG9sYXRpb24mJihuLmludGVycG9sYXRpb249ZSl9cmV0dXJuIG4udHlwZT10LlZhbHVlVHlwZU5hbWUsbn1JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZSh0KXtyZXR1cm4gbmV3IE82dCh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9SW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyKHQpe3JldHVybiBuZXcgUjZ0KHRoaXMudGltZXMsdGhpcy52YWx1ZXMsdGhpcy5nZXRWYWx1ZVNpemUoKSx0KX1JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGgodCl7cmV0dXJuIG5ldyBJNnQodGhpcy50aW1lcyx0aGlzLnZhbHVlcyx0aGlzLmdldFZhbHVlU2l6ZSgpLHQpfXNldEludGVycG9sYXRpb24odCl7bGV0IGU7c3dpdGNoKHQpe2Nhc2UgTVp0OmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTticmVhaztjYXNlIEVadDplPXRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyO2JyZWFrO2Nhc2UgVFp0OmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGh9aWYodm9pZCAwPT09ZSl7Y29uc3QgZT0idW5zdXBwb3J0ZWQgaW50ZXJwb2xhdGlvbiBmb3IgIit0aGlzLlZhbHVlVHlwZU5hbWUrIiBrZXlmcmFtZSB0cmFjayBuYW1lZCAiK3RoaXMubmFtZTtpZih2b2lkIDA9PT10aGlzLmNyZWF0ZUludGVycG9sYW50KXtpZih0PT09dGhpcy5EZWZhdWx0SW50ZXJwb2xhdGlvbil0aHJvdyBuZXcgRXJyb3IoZSk7dGhpcy5zZXRJbnRlcnBvbGF0aW9uKHRoaXMuRGVmYXVsdEludGVycG9sYXRpb24pfXJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLktleWZyYW1lVHJhY2s6IixlKSx0aGlzfXJldHVybiB0aGlzLmNyZWF0ZUludGVycG9sYW50PWUsdGhpc31nZXRJbnRlcnBvbGF0aW9uKCl7c3dpdGNoKHRoaXMuY3JlYXRlSW50ZXJwb2xhbnQpe2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTpyZXR1cm4gTVp0O2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI6cmV0dXJuIEVadDtjYXNlIHRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoOnJldHVybiBUWnR9fWdldFZhbHVlU2l6ZSgpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGgvdGhpcy50aW1lcy5sZW5ndGh9c2hpZnQodCl7aWYoMCE9PXQpe2NvbnN0IGU9dGhpcy50aW1lcztmb3IobGV0IG49MCxpPWUubGVuZ3RoO24hPT1pOysrbillW25dKz10fXJldHVybiB0aGlzfXNjYWxlKHQpe2lmKDEhPT10KXtjb25zdCBlPXRoaXMudGltZXM7Zm9yKGxldCBuPTAsaT1lLmxlbmd0aDtuIT09aTsrK24pZVtuXSo9dH1yZXR1cm4gdGhpc310cmltKHQsZSl7Y29uc3Qgbj10aGlzLnRpbWVzLGk9bi5sZW5ndGg7bGV0IHI9MCxvPWktMTtmb3IoO3IhPT1pJiZuW3JdPHQ7KSsrcjtmb3IoOy0xIT09byYmbltvXT5lOyktLW87aWYoKytvLDAhPT1yfHxvIT09aSl7cj49byYmKG89TWF0aC5tYXgobywxKSxyPW8tMSk7Y29uc3QgdD10aGlzLmdldFZhbHVlU2l6ZSgpO3RoaXMudGltZXM9UDZ0LmFycmF5U2xpY2UobixyLG8pLHRoaXMudmFsdWVzPVA2dC5hcnJheVNsaWNlKHRoaXMudmFsdWVzLHIqdCxvKnQpfXJldHVybiB0aGlzfXZhbGlkYXRlKCl7bGV0IHQ9ITA7Y29uc3QgZT10aGlzLmdldFZhbHVlU2l6ZSgpO2UtTWF0aC5mbG9vcihlKSE9MCYmKGNvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IEludmFsaWQgdmFsdWUgc2l6ZSBpbiB0cmFjay4iLHRoaXMpLHQ9ITEpO2NvbnN0IG49dGhpcy50aW1lcyxpPXRoaXMudmFsdWVzLHI9bi5sZW5ndGg7MD09PXImJihjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBUcmFjayBpcyBlbXB0eS4iLHRoaXMpLHQ9ITEpO2xldCBvPW51bGw7Zm9yKGxldCBlPTA7ZSE9PXI7ZSsrKXtjb25zdCBpPW5bZV07aWYoIm51bWJlciI9PXR5cGVvZiBpJiZpc05hTihpKSl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVGltZSBpcyBub3QgYSB2YWxpZCBudW1iZXIuIix0aGlzLGUsaSksdD0hMTticmVha31pZihudWxsIT09byYmbz5pKXtjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBPdXQgb2Ygb3JkZXIga2V5cy4iLHRoaXMsZSxpLG8pLHQ9ITE7YnJlYWt9bz1pfWlmKHZvaWQgMCE9PWkmJlA2dC5pc1R5cGVkQXJyYXkoaSkpZm9yKGxldCBlPTAsbj1pLmxlbmd0aDtlIT09bjsrK2Upe2NvbnN0IG49aVtlXTtpZihpc05hTihuKSl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVmFsdWUgaXMgbm90IGEgdmFsaWQgbnVtYmVyLiIsdGhpcyxlLG4pLHQ9ITE7YnJlYWt9fXJldHVybiB0fW9wdGltaXplKCl7Y29uc3QgdD1QNnQuYXJyYXlTbGljZSh0aGlzLnRpbWVzKSxlPVA2dC5hcnJheVNsaWNlKHRoaXMudmFsdWVzKSxuPXRoaXMuZ2V0VmFsdWVTaXplKCksaT10aGlzLmdldEludGVycG9sYXRpb24oKT09PVRadCxyPXQubGVuZ3RoLTE7bGV0IG89MTtmb3IobGV0IGE9MTthPHI7KythKXtsZXQgcj0hMTtjb25zdCBzPXRbYV07aWYocyE9PXRbYSsxXSYmKDEhPT1hfHxzIT09dFswXSkpaWYoaSlyPSEwO2Vsc2V7Y29uc3QgdD1hKm4saT10LW4sbz10K247Zm9yKGxldCBhPTA7YSE9PW47KythKXtjb25zdCBuPWVbdCthXTtpZihuIT09ZVtpK2FdfHxuIT09ZVtvK2FdKXtyPSEwO2JyZWFrfX19aWYocil7aWYoYSE9PW8pe3Rbb109dFthXTtjb25zdCBpPWEqbixyPW8qbjtmb3IobGV0IHQ9MDt0IT09bjsrK3QpZVtyK3RdPWVbaSt0XX0rK299fWlmKHI+MCl7dFtvXT10W3JdO2ZvcihsZXQgdD1yKm4saT1vKm4sYT0wO2EhPT1uOysrYSllW2krYV09ZVt0K2FdOysrb31yZXR1cm4gbyE9PXQubGVuZ3RoPyh0aGlzLnRpbWVzPVA2dC5hcnJheVNsaWNlKHQsMCxvKSx0aGlzLnZhbHVlcz1QNnQuYXJyYXlTbGljZShlLDAsbypuKSk6KHRoaXMudGltZXM9dCx0aGlzLnZhbHVlcz1lKSx0aGlzfWNsb25lKCl7Y29uc3QgdD1QNnQuYXJyYXlTbGljZSh0aGlzLnRpbWVzLDApLGU9UDZ0LmFycmF5U2xpY2UodGhpcy52YWx1ZXMsMCksbj1uZXcoMCx0aGlzLmNvbnN0cnVjdG9yKSh0aGlzLm5hbWUsdCxlKTtyZXR1cm4gbi5jcmVhdGVJbnRlcnBvbGFudD10aGlzLmNyZWF0ZUludGVycG9sYW50LG59fXo2dC5wcm90b3R5cGUuVGltZUJ1ZmZlclR5cGU9RmxvYXQzMkFycmF5LHo2dC5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUZsb2F0MzJBcnJheSx6NnQucHJvdG90eXBlLkRlZmF1bHRJbnRlcnBvbGF0aW9uPUVadDtjbGFzcyBENnQgZXh0ZW5kcyB6NnR7fUQ2dC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0iYm9vbCIsRDZ0LnByb3RvdHlwZS5WYWx1ZUJ1ZmZlclR5cGU9QXJyYXksRDZ0LnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1NWnQsRDZ0LnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI9dm9pZCAwLEQ2dC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoPXZvaWQgMDtjbGFzcyBCNnQgZXh0ZW5kcyB6NnR7fUI2dC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0iY29sb3IiO2NsYXNzIEg2dCBleHRlbmRzIHo2dHt9SDZ0LnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJudW1iZXIiO2NsYXNzIEY2dCBleHRlbmRzIE42dHtjb25zdHJ1Y3Rvcih0LGUsbixpKXtzdXBlcih0LGUsbixpKX1pbnRlcnBvbGF0ZV8odCxlLG4saSl7Y29uc3Qgcj10aGlzLnJlc3VsdEJ1ZmZlcixvPXRoaXMuc2FtcGxlVmFsdWVzLGE9dGhpcy52YWx1ZVNpemUscz0obi1lKS8oaS1lKTtsZXQgbD10KmE7Zm9yKGxldCB0PWwrYTtsIT09dDtsKz00KVRKdC5zbGVycEZsYXQociwwLG8sbC1hLG8sbCxzKTtyZXR1cm4gcn19Y2xhc3MgVjZ0IGV4dGVuZHMgejZ0e0ludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcih0KXtyZXR1cm4gbmV3IEY2dCh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9fVY2dC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0icXVhdGVybmlvbiIsVjZ0LnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1FWnQsVjZ0LnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGg9dm9pZCAwO2NsYXNzIFU2dCBleHRlbmRzIHo2dHt9VTZ0LnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJzdHJpbmciLFU2dC5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUFycmF5LFU2dC5wcm90b3R5cGUuRGVmYXVsdEludGVycG9sYXRpb249TVp0LFU2dC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyPXZvaWQgMCxVNnQucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aD12b2lkIDA7Y2xhc3MgajZ0IGV4dGVuZHMgejZ0e31qNnQucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9InZlY3RvciI7Y2xhc3MgRzZ0e2NvbnN0cnVjdG9yKHQsZT0tMSxuLGk9MjUwMCl7dGhpcy5uYW1lPXQsdGhpcy50cmFja3M9bix0aGlzLmR1cmF0aW9uPWUsdGhpcy5ibGVuZE1vZGU9aSx0aGlzLnV1aWQ9WFp0KCksdGhpcy5kdXJhdGlvbjwwJiZ0aGlzLnJlc2V0RHVyYXRpb24oKX1zdGF0aWMgcGFyc2UodCl7Y29uc3QgZT1bXSxuPXQudHJhY2tzLGk9MS8odC5mcHN8fDEpO2ZvcihsZXQgdD0wLHI9bi5sZW5ndGg7dCE9PXI7Kyt0KWUucHVzaChXNnQoblt0XSkuc2NhbGUoaSkpO2NvbnN0IHI9bmV3IHRoaXModC5uYW1lLHQuZHVyYXRpb24sZSx0LmJsZW5kTW9kZSk7cmV0dXJuIHIudXVpZD10LnV1aWQscn1zdGF0aWMgdG9KU09OKHQpe2NvbnN0IGU9W10sbj10LnRyYWNrcyxpPXtuYW1lOnQubmFtZSxkdXJhdGlvbjp0LmR1cmF0aW9uLHRyYWNrczplLHV1aWQ6dC51dWlkLGJsZW5kTW9kZTp0LmJsZW5kTW9kZX07Zm9yKGxldCB0PTAsaT1uLmxlbmd0aDt0IT09aTsrK3QpZS5wdXNoKHo2dC50b0pTT04oblt0XSkpO3JldHVybiBpfXN0YXRpYyBDcmVhdGVGcm9tTW9ycGhUYXJnZXRTZXF1ZW5jZSh0LGUsbixpKXtjb25zdCByPWUubGVuZ3RoLG89W107Zm9yKGxldCB0PTA7dDxyO3QrKyl7bGV0IGE9W10scz1bXTthLnB1c2goKHQrci0xKSVyLHQsKHQrMSklcikscy5wdXNoKDAsMSwwKTtjb25zdCBsPVA2dC5nZXRLZXlmcmFtZU9yZGVyKGEpO2E9UDZ0LnNvcnRlZEFycmF5KGEsMSxsKSxzPVA2dC5zb3J0ZWRBcnJheShzLDEsbCksaXx8MCE9PWFbMF18fChhLnB1c2gocikscy5wdXNoKHNbMF0pKSxvLnB1c2gobmV3IEg2dCgiLm1vcnBoVGFyZ2V0SW5mbHVlbmNlc1siK2VbdF0ubmFtZSsiXSIsYSxzKS5zY2FsZSgxL24pKX1yZXR1cm4gbmV3IHRoaXModCwtMSxvKX1zdGF0aWMgZmluZEJ5TmFtZSh0LGUpe2xldCBuPXQ7aWYoIUFycmF5LmlzQXJyYXkodCkpe2NvbnN0IGU9dDtuPWUuZ2VvbWV0cnkmJmUuZ2VvbWV0cnkuYW5pbWF0aW9uc3x8ZS5hbmltYXRpb25zfWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKWlmKG5bdF0ubmFtZT09PWUpcmV0dXJuIG5bdF07cmV0dXJuIG51bGx9c3RhdGljIENyZWF0ZUNsaXBzRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2VzKHQsZSxuKXtjb25zdCBpPXt9LHI9L14oW1x3LV0qPykoW1xkXSspJC87Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0sbz1uLm5hbWUubWF0Y2gocik7aWYobyYmby5sZW5ndGg+MSl7Y29uc3QgdD1vWzFdO2xldCBlPWlbdF07ZXx8KGlbdF09ZT1bXSksZS5wdXNoKG4pfX1jb25zdCBvPVtdO2Zvcihjb25zdCB0IGluIGkpby5wdXNoKHRoaXMuQ3JlYXRlRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2UodCxpW3RdLGUsbikpO3JldHVybiBvfXN0YXRpYyBwYXJzZUFuaW1hdGlvbih0LGUpe2lmKCF0KXJldHVybiBjb25zb2xlLmVycm9yKCJUSFJFRS5BbmltYXRpb25DbGlwOiBObyBhbmltYXRpb24gaW4gSlNPTkxvYWRlciBkYXRhLiIpLG51bGw7Y29uc3Qgbj1mdW5jdGlvbih0LGUsbixpLHIpe2lmKDAhPT1uLmxlbmd0aCl7Y29uc3Qgbz1bXSxhPVtdO1A2dC5mbGF0dGVuSlNPTihuLG8sYSxpKSwwIT09by5sZW5ndGgmJnIucHVzaChuZXcgdChlLG8sYSkpfX0saT1bXSxyPXQubmFtZXx8ImRlZmF1bHQiLG89dC5mcHN8fDMwLGE9dC5ibGVuZE1vZGU7bGV0IHM9dC5sZW5ndGh8fC0xO2NvbnN0IGw9dC5oaWVyYXJjaHl8fFtdO2ZvcihsZXQgdD0wO3Q8bC5sZW5ndGg7dCsrKXtjb25zdCByPWxbdF0ua2V5cztpZihyJiYwIT09ci5sZW5ndGgpaWYoclswXS5tb3JwaFRhcmdldHMpe2NvbnN0IHQ9e307bGV0IGU7Zm9yKGU9MDtlPHIubGVuZ3RoO2UrKylpZihyW2VdLm1vcnBoVGFyZ2V0cylmb3IobGV0IG49MDtuPHJbZV0ubW9ycGhUYXJnZXRzLmxlbmd0aDtuKyspdFtyW2VdLm1vcnBoVGFyZ2V0c1tuXV09LTE7Zm9yKGNvbnN0IG4gaW4gdCl7Y29uc3QgdD1bXSxvPVtdO2ZvcihsZXQgaT0wO2khPT1yW2VdLm1vcnBoVGFyZ2V0cy5sZW5ndGg7KytpKXtjb25zdCBpPXJbZV07dC5wdXNoKGkudGltZSksby5wdXNoKGkubW9ycGhUYXJnZXQ9PT1uPzE6MCl9aS5wdXNoKG5ldyBINnQoIi5tb3JwaFRhcmdldEluZmx1ZW5jZVsiK24rIl0iLHQsbykpfXM9dC5sZW5ndGgqKG98fDEpfWVsc2V7Y29uc3Qgbz0iLmJvbmVzWyIrZVt0XS5uYW1lKyJdIjtuKGo2dCxvKyIucG9zaXRpb24iLHIsInBvcyIsaSksbihWNnQsbysiLnF1YXRlcm5pb24iLHIsInJvdCIsaSksbihqNnQsbysiLnNjYWxlIixyLCJzY2wiLGkpfX1yZXR1cm4gMD09PWkubGVuZ3RoP251bGw6bmV3IHRoaXMocixzLGksYSl9cmVzZXREdXJhdGlvbigpe2xldCB0PTA7Zm9yKGxldCBlPTAsbj10aGlzLnRyYWNrcy5sZW5ndGg7ZSE9PW47KytlKXtjb25zdCBuPXRoaXMudHJhY2tzW2VdO3Q9TWF0aC5tYXgodCxuLnRpbWVzW24udGltZXMubGVuZ3RoLTFdKX1yZXR1cm4gdGhpcy5kdXJhdGlvbj10LHRoaXN9dHJpbSgpe2ZvcihsZXQgdD0wO3Q8dGhpcy50cmFja3MubGVuZ3RoO3QrKyl0aGlzLnRyYWNrc1t0XS50cmltKDAsdGhpcy5kdXJhdGlvbik7cmV0dXJuIHRoaXN9dmFsaWRhdGUoKXtsZXQgdD0hMDtmb3IobGV0IGU9MDtlPHRoaXMudHJhY2tzLmxlbmd0aDtlKyspdD10JiZ0aGlzLnRyYWNrc1tlXS52YWxpZGF0ZSgpO3JldHVybiB0fW9wdGltaXplKCl7Zm9yKGxldCB0PTA7dDx0aGlzLnRyYWNrcy5sZW5ndGg7dCsrKXRoaXMudHJhY2tzW3RdLm9wdGltaXplKCk7cmV0dXJuIHRoaXN9Y2xvbmUoKXtjb25zdCB0PVtdO2ZvcihsZXQgZT0wO2U8dGhpcy50cmFja3MubGVuZ3RoO2UrKyl0LnB1c2godGhpcy50cmFja3NbZV0uY2xvbmUoKSk7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMubmFtZSx0aGlzLmR1cmF0aW9uLHQsdGhpcy5ibGVuZE1vZGUpfXRvSlNPTigpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLnRvSlNPTih0aGlzKX19ZnVuY3Rpb24gVzZ0KHQpe2lmKHZvaWQgMD09PXQudHlwZSl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IHRyYWNrIHR5cGUgdW5kZWZpbmVkLCBjYW4gbm90IHBhcnNlIik7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtzd2l0Y2godC50b0xvd2VyQ2FzZSgpKXtjYXNlInNjYWxhciI6Y2FzZSJkb3VibGUiOmNhc2UiZmxvYXQiOmNhc2UibnVtYmVyIjpjYXNlImludGVnZXIiOnJldHVybiBINnQ7Y2FzZSJ2ZWN0b3IiOmNhc2UidmVjdG9yMiI6Y2FzZSJ2ZWN0b3IzIjpjYXNlInZlY3RvcjQiOnJldHVybiBqNnQ7Y2FzZSJjb2xvciI6cmV0dXJuIEI2dDtjYXNlInF1YXRlcm5pb24iOnJldHVybiBWNnQ7Y2FzZSJib29sIjpjYXNlImJvb2xlYW4iOnJldHVybiBENnQ7Y2FzZSJzdHJpbmciOnJldHVybiBVNnR9dGhyb3cgbmV3IEVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBVbnN1cHBvcnRlZCB0eXBlTmFtZTogIit0KX0pKHQudHlwZSk7aWYodm9pZCAwPT09dC50aW1lcyl7Y29uc3QgZT1bXSxuPVtdO1A2dC5mbGF0dGVuSlNPTih0LmtleXMsZSxuLCJ2YWx1ZSIpLHQudGltZXM9ZSx0LnZhbHVlcz1ufXJldHVybiB2b2lkIDAhPT1lLnBhcnNlP2UucGFyc2UodCk6bmV3IGUodC5uYW1lLHQudGltZXMsdC52YWx1ZXMsdC5pbnRlcnBvbGF0aW9uKX1jb25zdCBxNnQ9e2VuYWJsZWQ6ITEsZmlsZXM6e30sYWRkOmZ1bmN0aW9uKHQsZSl7ITEhPT10aGlzLmVuYWJsZWQmJih0aGlzLmZpbGVzW3RdPWUpfSxnZXQ6ZnVuY3Rpb24odCl7aWYoITEhPT10aGlzLmVuYWJsZWQpcmV0dXJuIHRoaXMuZmlsZXNbdF19LHJlbW92ZTpmdW5jdGlvbih0KXtkZWxldGUgdGhpcy5maWxlc1t0XX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmZpbGVzPXt9fX07Y2xhc3MgWTZ0e2NvbnN0cnVjdG9yKHQsZSxuKXtjb25zdCBpPXRoaXM7bGV0IHIsbz0hMSxhPTAscz0wO2NvbnN0IGw9W107dGhpcy5vblN0YXJ0PXZvaWQgMCx0aGlzLm9uTG9hZD10LHRoaXMub25Qcm9ncmVzcz1lLHRoaXMub25FcnJvcj1uLHRoaXMuaXRlbVN0YXJ0PWZ1bmN0aW9uKHQpe3MrKywhMT09PW8mJnZvaWQgMCE9PWkub25TdGFydCYmaS5vblN0YXJ0KHQsYSxzKSxvPSEwfSx0aGlzLml0ZW1FbmQ9ZnVuY3Rpb24odCl7YSsrLHZvaWQgMCE9PWkub25Qcm9ncmVzcyYmaS5vblByb2dyZXNzKHQsYSxzKSxhPT09cyYmKG89ITEsdm9pZCAwIT09aS5vbkxvYWQmJmkub25Mb2FkKCkpfSx0aGlzLml0ZW1FcnJvcj1mdW5jdGlvbih0KXt2b2lkIDAhPT1pLm9uRXJyb3ImJmkub25FcnJvcih0KX0sdGhpcy5yZXNvbHZlVVJMPWZ1bmN0aW9uKHQpe3JldHVybiByP3IodCk6dH0sdGhpcy5zZXRVUkxNb2RpZmllcj1mdW5jdGlvbih0KXtyZXR1cm4gcj10LHRoaXN9LHRoaXMuYWRkSGFuZGxlcj1mdW5jdGlvbih0LGUpe3JldHVybiBsLnB1c2godCxlKSx0aGlzfSx0aGlzLnJlbW92ZUhhbmRsZXI9ZnVuY3Rpb24odCl7Y29uc3QgZT1sLmluZGV4T2YodCk7cmV0dXJuLTEhPT1lJiZsLnNwbGljZShlLDIpLHRoaXN9LHRoaXMuZ2V0SGFuZGxlcj1mdW5jdGlvbih0KXtmb3IobGV0IGU9MCxuPWwubGVuZ3RoO2U8bjtlKz0yKXtjb25zdCBuPWxbZV0saT1sW2UrMV07aWYobi5nbG9iYWwmJihuLmxhc3RJbmRleD0wKSxuLnRlc3QodCkpcmV0dXJuIGl9cmV0dXJuIG51bGx9fX1jb25zdCBYNnQ9bmV3IFk2dDtjbGFzcyAkNnR7Y29uc3RydWN0b3IodCl7dGhpcy5tYW5hZ2VyPXZvaWQgMCE9PXQ/dDpYNnQsdGhpcy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIix0aGlzLndpdGhDcmVkZW50aWFscz0hMSx0aGlzLnBhdGg9IiIsdGhpcy5yZXNvdXJjZVBhdGg9IiIsdGhpcy5yZXF1ZXN0SGVhZGVyPXt9fWxvYWQoKXt9bG9hZEFzeW5jKHQsZSl7Y29uc3Qgbj10aGlzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oaSxyKXtuLmxvYWQodCxpLGUscil9KSl9cGFyc2UoKXt9c2V0Q3Jvc3NPcmlnaW4odCl7cmV0dXJuIHRoaXMuY3Jvc3NPcmlnaW49dCx0aGlzfXNldFdpdGhDcmVkZW50aWFscyh0KXtyZXR1cm4gdGhpcy53aXRoQ3JlZGVudGlhbHM9dCx0aGlzfXNldFBhdGgodCl7cmV0dXJuIHRoaXMucGF0aD10LHRoaXN9c2V0UmVzb3VyY2VQYXRoKHQpe3JldHVybiB0aGlzLnJlc291cmNlUGF0aD10LHRoaXN9c2V0UmVxdWVzdEhlYWRlcih0KXtyZXR1cm4gdGhpcy5yZXF1ZXN0SGVhZGVyPXQsdGhpc319Y29uc3QgSzZ0PXt9O2NsYXNzIFo2dCBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe3ZvaWQgMD09PXQmJih0PSIiKSx2b2lkIDAhPT10aGlzLnBhdGgmJih0PXRoaXMucGF0aCt0KSx0PXRoaXMubWFuYWdlci5yZXNvbHZlVVJMKHQpO2NvbnN0IHI9dGhpcyxvPXE2dC5nZXQodCk7aWYodm9pZCAwIT09bylyZXR1cm4gci5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UmJmUobyksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKSxvO2lmKHZvaWQgMCE9PUs2dFt0XSlyZXR1cm4gdm9pZCBLNnRbdF0ucHVzaCh7b25Mb2FkOmUsb25Qcm9ncmVzczpuLG9uRXJyb3I6aX0pO2NvbnN0IGE9dC5tYXRjaCgvXmRhdGE6KC4qPykoO2Jhc2U2NCk/LCguKikkLyk7bGV0IHM7aWYoYSl7Y29uc3Qgbj1hWzFdLG89ISFhWzJdO2xldCBzPWFbM107cz1kZWNvZGVVUklDb21wb25lbnQocyksbyYmKHM9YXRvYihzKSk7dHJ5e2xldCBpO2NvbnN0IG89KHRoaXMucmVzcG9uc2VUeXBlfHwiIikudG9Mb3dlckNhc2UoKTtzd2l0Y2gobyl7Y2FzZSJhcnJheWJ1ZmZlciI6Y2FzZSJibG9iIjpjb25zdCB0PW5ldyBVaW50OEFycmF5KHMubGVuZ3RoKTtmb3IobGV0IGU9MDtlPHMubGVuZ3RoO2UrKyl0W2VdPXMuY2hhckNvZGVBdChlKTtpPSJibG9iIj09PW8/bmV3IEJsb2IoW3QuYnVmZmVyXSx7dHlwZTpufSk6dC5idWZmZXI7YnJlYWs7Y2FzZSJkb2N1bWVudCI6Y29uc3QgZT1uZXcgRE9NUGFyc2VyO2k9ZS5wYXJzZUZyb21TdHJpbmcocyxuKTticmVhaztjYXNlImpzb24iOmk9SlNPTi5wYXJzZShzKTticmVhaztkZWZhdWx0Omk9c31zZXRUaW1lb3V0KChmdW5jdGlvbigpe2UmJmUoaSksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKX1jYXRjaChlKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe2kmJmkoZSksci5tYW5hZ2VyLml0ZW1FcnJvcih0KSxyLm1hbmFnZXIuaXRlbUVuZCh0KX0pLDApfX1lbHNle0s2dFt0XT1bXSxLNnRbdF0ucHVzaCh7b25Mb2FkOmUsb25Qcm9ncmVzczpuLG9uRXJyb3I6aX0pLHM9bmV3IFhNTEh0dHBSZXF1ZXN0LHMub3BlbigiR0VUIix0LCEwKSxzLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLChmdW5jdGlvbihlKXtjb25zdCBuPXRoaXMucmVzcG9uc2UsaT1LNnRbdF07aWYoZGVsZXRlIEs2dFt0XSwyMDA9PT10aGlzLnN0YXR1c3x8MD09PXRoaXMuc3RhdHVzKXswPT09dGhpcy5zdGF0dXMmJmNvbnNvbGUud2FybigiVEhSRUUuRmlsZUxvYWRlcjogSFRUUCBTdGF0dXMgMCByZWNlaXZlZC4iKSxxNnQuYWRkKHQsbik7Zm9yKGxldCB0PTAsZT1pLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWlbdF07ZS5vbkxvYWQmJmUub25Mb2FkKG4pfXIubWFuYWdlci5pdGVtRW5kKHQpfWVsc2V7Zm9yKGxldCB0PTAsbj1pLmxlbmd0aDt0PG47dCsrKXtjb25zdCBuPWlbdF07bi5vbkVycm9yJiZuLm9uRXJyb3IoZSl9ci5tYW5hZ2VyLml0ZW1FcnJvcih0KSxyLm1hbmFnZXIuaXRlbUVuZCh0KX19KSwhMSkscy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsKGZ1bmN0aW9uKGUpe2NvbnN0IG49SzZ0W3RdO2ZvcihsZXQgdD0wLGk9bi5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1uW3RdO2kub25Qcm9ncmVzcyYmaS5vblByb2dyZXNzKGUpfX0pLCExKSxzLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoZnVuY3Rpb24oZSl7Y29uc3Qgbj1LNnRbdF07ZGVsZXRlIEs2dFt0XTtmb3IobGV0IHQ9MCxpPW4ubGVuZ3RoO3Q8aTt0Kyspe2NvbnN0IGk9blt0XTtpLm9uRXJyb3ImJmkub25FcnJvcihlKX1yLm1hbmFnZXIuaXRlbUVycm9yKHQpLHIubWFuYWdlci5pdGVtRW5kKHQpfSksITEpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLChmdW5jdGlvbihlKXtjb25zdCBuPUs2dFt0XTtkZWxldGUgSzZ0W3RdO2ZvcihsZXQgdD0wLGk9bi5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1uW3RdO2kub25FcnJvciYmaS5vbkVycm9yKGUpfXIubWFuYWdlci5pdGVtRXJyb3IodCksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwhMSksdm9pZCAwIT09dGhpcy5yZXNwb25zZVR5cGUmJihzLnJlc3BvbnNlVHlwZT10aGlzLnJlc3BvbnNlVHlwZSksdm9pZCAwIT09dGhpcy53aXRoQ3JlZGVudGlhbHMmJihzLndpdGhDcmVkZW50aWFscz10aGlzLndpdGhDcmVkZW50aWFscykscy5vdmVycmlkZU1pbWVUeXBlJiZzLm92ZXJyaWRlTWltZVR5cGUodm9pZCAwIT09dGhpcy5taW1lVHlwZT90aGlzLm1pbWVUeXBlOiJ0ZXh0L3BsYWluIik7Zm9yKGNvbnN0IHQgaW4gdGhpcy5yZXF1ZXN0SGVhZGVyKXMuc2V0UmVxdWVzdEhlYWRlcih0LHRoaXMucmVxdWVzdEhlYWRlclt0XSk7cy5zZW5kKG51bGwpfXJldHVybiByLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHN9c2V0UmVzcG9uc2VUeXBlKHQpe3JldHVybiB0aGlzLnJlc3BvbnNlVHlwZT10LHRoaXN9c2V0TWltZVR5cGUodCl7cmV0dXJuIHRoaXMubWltZVR5cGU9dCx0aGlzfX1jbGFzcyBKNnQgZXh0ZW5kcyAkNnR7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixpKXt2b2lkIDAhPT10aGlzLnBhdGgmJih0PXRoaXMucGF0aCt0KSx0PXRoaXMubWFuYWdlci5yZXNvbHZlVVJMKHQpO2NvbnN0IHI9dGhpcyxvPXE2dC5nZXQodCk7aWYodm9pZCAwIT09bylyZXR1cm4gci5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UmJmUobyksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKSxvO2NvbnN0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiaW1nIik7ZnVuY3Rpb24gcygpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIscywhMSksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsbCwhMSkscTZ0LmFkZCh0LHRoaXMpLGUmJmUodGhpcyksci5tYW5hZ2VyLml0ZW1FbmQodCl9ZnVuY3Rpb24gbChlKXthLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHMsITEpLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGwsITEpLGkmJmkoZSksci5tYW5hZ2VyLml0ZW1FcnJvcih0KSxyLm1hbmFnZXIuaXRlbUVuZCh0KX1yZXR1cm4gYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixzLCExKSxhLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixsLCExKSwiZGF0YToiIT09dC5zdWJzdHIoMCw1KSYmdm9pZCAwIT09dGhpcy5jcm9zc09yaWdpbiYmKGEuY3Jvc3NPcmlnaW49dGhpcy5jcm9zc09yaWdpbiksci5tYW5hZ2VyLml0ZW1TdGFydCh0KSxhLnNyYz10LGF9fWNsYXNzIFE2dCBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9bmV3ICQxdCxvPW5ldyBKNnQodGhpcy5tYW5hZ2VyKTtvLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pLG8uc2V0UGF0aCh0aGlzLnBhdGgpO2xldCBhPTA7ZnVuY3Rpb24gcyhuKXtvLmxvYWQodFtuXSwoZnVuY3Rpb24odCl7ci5pbWFnZXNbbl09dCxhKyssNj09PWEmJihyLm5lZWRzVXBkYXRlPSEwLGUmJmUocikpfSksdm9pZCAwLGkpfWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7KytlKXMoZSk7cmV0dXJuIHJ9fWNsYXNzIHQ5dCBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9dGhpcyxvPW5ldyBNM3QsYT1uZXcgWjZ0KHRoaXMubWFuYWdlcik7cmV0dXJuIGEuc2V0UmVzcG9uc2VUeXBlKCJhcnJheWJ1ZmZlciIpLGEuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLGEuc2V0UGF0aCh0aGlzLnBhdGgpLGEuc2V0V2l0aENyZWRlbnRpYWxzKHIud2l0aENyZWRlbnRpYWxzKSxhLmxvYWQodCwoZnVuY3Rpb24odCl7Y29uc3Qgbj1yLnBhcnNlKHQpO24mJih2b2lkIDAhPT1uLmltYWdlP28uaW1hZ2U9bi5pbWFnZTp2b2lkIDAhPT1uLmRhdGEmJihvLmltYWdlLndpZHRoPW4ud2lkdGgsby5pbWFnZS5oZWlnaHQ9bi5oZWlnaHQsby5pbWFnZS5kYXRhPW4uZGF0YSksby53cmFwUz12b2lkIDAhPT1uLndyYXBTP24ud3JhcFM6S0t0LG8ud3JhcFQ9dm9pZCAwIT09bi53cmFwVD9uLndyYXBUOktLdCxvLm1hZ0ZpbHRlcj12b2lkIDAhPT1uLm1hZ0ZpbHRlcj9uLm1hZ0ZpbHRlcjplWnQsby5taW5GaWx0ZXI9dm9pZCAwIT09bi5taW5GaWx0ZXI/bi5taW5GaWx0ZXI6ZVp0LG8uYW5pc290cm9weT12b2lkIDAhPT1uLmFuaXNvdHJvcHk/bi5hbmlzb3Ryb3B5OjEsdm9pZCAwIT09bi5lbmNvZGluZyYmKG8uZW5jb2Rpbmc9bi5lbmNvZGluZyksdm9pZCAwIT09bi5mbGlwWSYmKG8uZmxpcFk9bi5mbGlwWSksdm9pZCAwIT09bi5mb3JtYXQmJihvLmZvcm1hdD1uLmZvcm1hdCksdm9pZCAwIT09bi50eXBlJiYoby50eXBlPW4udHlwZSksdm9pZCAwIT09bi5taXBtYXBzJiYoby5taXBtYXBzPW4ubWlwbWFwcyxvLm1pbkZpbHRlcj1pWnQpLDE9PT1uLm1pcG1hcENvdW50JiYoby5taW5GaWx0ZXI9ZVp0KSx2b2lkIDAhPT1uLmdlbmVyYXRlTWlwbWFwcyYmKG8uZ2VuZXJhdGVNaXBtYXBzPW4uZ2VuZXJhdGVNaXBtYXBzKSxvLm5lZWRzVXBkYXRlPSEwLGUmJmUobyxuKSl9KSxuLGkpLG99fWNsYXNzIGU5dCBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9bmV3IGJKdCxvPW5ldyBKNnQodGhpcy5tYW5hZ2VyKTtyZXR1cm4gby5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKSxvLnNldFBhdGgodGhpcy5wYXRoKSxvLmxvYWQodCwoZnVuY3Rpb24obil7ci5pbWFnZT1uO2NvbnN0IGk9dC5zZWFyY2goL1wuanBlP2coJHxcPykvaSk+MHx8MD09PXQuc2VhcmNoKC9eZGF0YVw6aW1hZ2VcL2pwZWcvKTtyLmZvcm1hdD1pP3VadDpoWnQsci5uZWVkc1VwZGF0ZT0hMCx2b2lkIDAhPT1lJiZlKHIpfSksbixpKSxyfX1jbGFzcyBuOXQgZXh0ZW5kcyBoNHR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iQ3VydmVQYXRoIix0aGlzLmN1cnZlcz1bXSx0aGlzLmF1dG9DbG9zZT0hMX1hZGQodCl7dGhpcy5jdXJ2ZXMucHVzaCh0KX1jbG9zZVBhdGgoKXtjb25zdCB0PXRoaXMuY3VydmVzWzBdLmdldFBvaW50KDApLGU9dGhpcy5jdXJ2ZXNbdGhpcy5jdXJ2ZXMubGVuZ3RoLTFdLmdldFBvaW50KDEpO3QuZXF1YWxzKGUpfHx0aGlzLmN1cnZlcy5wdXNoKG5ldyBFNHQoZSx0KSl9Z2V0UG9pbnQodCl7Y29uc3QgZT10KnRoaXMuZ2V0TGVuZ3RoKCksbj10aGlzLmdldEN1cnZlTGVuZ3RocygpO2xldCBpPTA7Zm9yKDtpPG4ubGVuZ3RoOyl7aWYobltpXT49ZSl7Y29uc3QgdD1uW2ldLWUscj10aGlzLmN1cnZlc1tpXSxvPXIuZ2V0TGVuZ3RoKCk7cmV0dXJuIHIuZ2V0UG9pbnRBdCgwPT09bz8wOjEtdC9vKX1pKyt9cmV0dXJuIG51bGx9Z2V0TGVuZ3RoKCl7Y29uc3QgdD10aGlzLmdldEN1cnZlTGVuZ3RocygpO3JldHVybiB0W3QubGVuZ3RoLTFdfXVwZGF0ZUFyY0xlbmd0aHMoKXt0aGlzLm5lZWRzVXBkYXRlPSEwLHRoaXMuY2FjaGVMZW5ndGhzPW51bGwsdGhpcy5nZXRDdXJ2ZUxlbmd0aHMoKX1nZXRDdXJ2ZUxlbmd0aHMoKXtpZih0aGlzLmNhY2hlTGVuZ3RocyYmdGhpcy5jYWNoZUxlbmd0aHMubGVuZ3RoPT09dGhpcy5jdXJ2ZXMubGVuZ3RoKXJldHVybiB0aGlzLmNhY2hlTGVuZ3Rocztjb25zdCB0PVtdO2xldCBlPTA7Zm9yKGxldCBuPTAsaT10aGlzLmN1cnZlcy5sZW5ndGg7bjxpO24rKyllKz10aGlzLmN1cnZlc1tuXS5nZXRMZW5ndGgoKSx0LnB1c2goZSk7cmV0dXJuIHRoaXMuY2FjaGVMZW5ndGhzPXQsdH1nZXRTcGFjZWRQb2ludHModD00MCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPD10O24rKyllLnB1c2godGhpcy5nZXRQb2ludChuL3QpKTtyZXR1cm4gdGhpcy5hdXRvQ2xvc2UmJmUucHVzaChlWzBdKSxlfWdldFBvaW50cyh0PTEyKXtjb25zdCBlPVtdO2xldCBuO2ZvcihsZXQgaT0wLHI9dGhpcy5jdXJ2ZXM7aTxyLmxlbmd0aDtpKyspe2NvbnN0IG89cltpXSxhPW8uZ2V0UG9pbnRzKG8mJm8uaXNFbGxpcHNlQ3VydmU/Mip0Om8mJihvLmlzTGluZUN1cnZlfHxvLmlzTGluZUN1cnZlMyk/MTpvJiZvLmlzU3BsaW5lQ3VydmU/dCpvLnBvaW50cy5sZW5ndGg6dCk7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0Kyspe2NvbnN0IGk9YVt0XTtuJiZuLmVxdWFscyhpKXx8KGUucHVzaChpKSxuPWkpfX1yZXR1cm4gdGhpcy5hdXRvQ2xvc2UmJmUubGVuZ3RoPjEmJiFlW2UubGVuZ3RoLTFdLmVxdWFscyhlWzBdKSYmZS5wdXNoKGVbMF0pLGV9Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMuY3VydmVzPVtdO2ZvcihsZXQgZT0wLG49dC5jdXJ2ZXMubGVuZ3RoO2U8bjtlKyspdGhpcy5jdXJ2ZXMucHVzaCh0LmN1cnZlc1tlXS5jbG9uZSgpKTtyZXR1cm4gdGhpcy5hdXRvQ2xvc2U9dC5hdXRvQ2xvc2UsdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QuYXV0b0Nsb3NlPXRoaXMuYXV0b0Nsb3NlLHQuY3VydmVzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5jdXJ2ZXMubGVuZ3RoO2U8bjtlKyspdC5jdXJ2ZXMucHVzaCh0aGlzLmN1cnZlc1tlXS50b0pTT04oKSk7cmV0dXJuIHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy5hdXRvQ2xvc2U9dC5hdXRvQ2xvc2UsdGhpcy5jdXJ2ZXM9W107Zm9yKGxldCBlPTAsbj10LmN1cnZlcy5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10LmN1cnZlc1tlXTt0aGlzLmN1cnZlcy5wdXNoKChuZXcgTDR0W24udHlwZV0pLmZyb21KU09OKG4pKX1yZXR1cm4gdGhpc319Y2xhc3MgaTl0IGV4dGVuZHMgbjl0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJQYXRoIix0aGlzLmN1cnJlbnRQb2ludD1uZXcgbUp0LHQmJnRoaXMuc2V0RnJvbVBvaW50cyh0KX1zZXRGcm9tUG9pbnRzKHQpe3RoaXMubW92ZVRvKHRbMF0ueCx0WzBdLnkpO2ZvcihsZXQgZT0xLG49dC5sZW5ndGg7ZTxuO2UrKyl0aGlzLmxpbmVUbyh0W2VdLngsdFtlXS55KTtyZXR1cm4gdGhpc31tb3ZlVG8odCxlKXtyZXR1cm4gdGhpcy5jdXJyZW50UG9pbnQuc2V0KHQsZSksdGhpc31saW5lVG8odCxlKXtjb25zdCBuPW5ldyBFNHQodGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKSxuZXcgbUp0KHQsZSkpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKG4pLHRoaXMuY3VycmVudFBvaW50LnNldCh0LGUpLHRoaXN9cXVhZHJhdGljQ3VydmVUbyh0LGUsbixpKXtjb25zdCByPW5ldyBDNHQodGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKSxuZXcgbUp0KHQsZSksbmV3IG1KdChuLGkpKTtyZXR1cm4gdGhpcy5jdXJ2ZXMucHVzaChyKSx0aGlzLmN1cnJlbnRQb2ludC5zZXQobixpKSx0aGlzfWJlemllckN1cnZlVG8odCxlLG4saSxyLG8pe2NvbnN0IGE9bmV3IFM0dCh0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpLG5ldyBtSnQodCxlKSxuZXcgbUp0KG4saSksbmV3IG1KdChyLG8pKTtyZXR1cm4gdGhpcy5jdXJ2ZXMucHVzaChhKSx0aGlzLmN1cnJlbnRQb2ludC5zZXQocixvKSx0aGlzfXNwbGluZVRocnUodCl7Y29uc3QgZT1bdGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKV0uY29uY2F0KHQpLG49bmV3IGs0dChlKTtyZXR1cm4gdGhpcy5jdXJ2ZXMucHVzaChuKSx0aGlzLmN1cnJlbnRQb2ludC5jb3B5KHRbdC5sZW5ndGgtMV0pLHRoaXN9YXJjKHQsZSxuLGkscixvKXtyZXR1cm4gdGhpcy5hYnNhcmModCt0aGlzLmN1cnJlbnRQb2ludC54LGUrdGhpcy5jdXJyZW50UG9pbnQueSxuLGkscixvKSx0aGlzfWFic2FyYyh0LGUsbixpLHIsbyl7cmV0dXJuIHRoaXMuYWJzZWxsaXBzZSh0LGUsbixuLGkscixvKSx0aGlzfWVsbGlwc2UodCxlLG4saSxyLG8sYSxzKXtyZXR1cm4gdGhpcy5hYnNlbGxpcHNlKHQrdGhpcy5jdXJyZW50UG9pbnQueCxlK3RoaXMuY3VycmVudFBvaW50LnksbixpLHIsbyxhLHMpLHRoaXN9YWJzZWxsaXBzZSh0LGUsbixpLHIsbyxhLHMpe2NvbnN0IGw9bmV3IGQ0dCh0LGUsbixpLHIsbyxhLHMpO2lmKHRoaXMuY3VydmVzLmxlbmd0aD4wKXtjb25zdCB0PWwuZ2V0UG9pbnQoMCk7dC5lcXVhbHModGhpcy5jdXJyZW50UG9pbnQpfHx0aGlzLmxpbmVUbyh0LngsdC55KX10aGlzLmN1cnZlcy5wdXNoKGwpO2NvbnN0IGM9bC5nZXRQb2ludCgxKTtyZXR1cm4gdGhpcy5jdXJyZW50UG9pbnQuY29weShjKSx0aGlzfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jdXJyZW50UG9pbnQuY29weSh0LmN1cnJlbnRQb2ludCksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LmN1cnJlbnRQb2ludD10aGlzLmN1cnJlbnRQb2ludC50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy5jdXJyZW50UG9pbnQuZnJvbUFycmF5KHQuY3VycmVudFBvaW50KSx0aGlzfX1jbGFzcyByOXQgZXh0ZW5kcyBpOXR7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy51dWlkPVhadCgpLHRoaXMudHlwZT0iU2hhcGUiLHRoaXMuaG9sZXM9W119Z2V0UG9pbnRzSG9sZXModCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxpPXRoaXMuaG9sZXMubGVuZ3RoO248aTtuKyspZVtuXT10aGlzLmhvbGVzW25dLmdldFBvaW50cyh0KTtyZXR1cm4gZX1leHRyYWN0UG9pbnRzKHQpe3JldHVybntzaGFwZTp0aGlzLmdldFBvaW50cyh0KSxob2xlczp0aGlzLmdldFBvaW50c0hvbGVzKHQpfX1jb3B5KHQpe3N1cGVyLmNvcHkodCksdGhpcy5ob2xlcz1bXTtmb3IobGV0IGU9MCxuPXQuaG9sZXMubGVuZ3RoO2U8bjtlKyspdGhpcy5ob2xlcy5wdXNoKHQuaG9sZXNbZV0uY2xvbmUoKSk7cmV0dXJuIHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTt0LnV1aWQ9dGhpcy51dWlkLHQuaG9sZXM9W107Zm9yKGxldCBlPTAsbj10aGlzLmhvbGVzLmxlbmd0aDtlPG47ZSsrKXQuaG9sZXMucHVzaCh0aGlzLmhvbGVzW2VdLnRvSlNPTigpKTtyZXR1cm4gdH1mcm9tSlNPTih0KXtzdXBlci5mcm9tSlNPTih0KSx0aGlzLnV1aWQ9dC51dWlkLHRoaXMuaG9sZXM9W107Zm9yKGxldCBlPTAsbj10LmhvbGVzLmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXQuaG9sZXNbZV07dGhpcy5ob2xlcy5wdXNoKChuZXcgaTl0KS5mcm9tSlNPTihuKSl9cmV0dXJuIHRoaXN9fWNsYXNzIG85dCBleHRlbmRzIGtRdHtjb25zdHJ1Y3Rvcih0LGU9MSl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpZ2h0Iix0aGlzLmNvbG9yPW5ldyAkUXQodCksdGhpcy5pbnRlbnNpdHk9ZX1kaXNwb3NlKCl7fWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMuaW50ZW5zaXR5PXQuaW50ZW5zaXR5LHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC5jb2xvcj10aGlzLmNvbG9yLmdldEhleCgpLGUub2JqZWN0LmludGVuc2l0eT10aGlzLmludGVuc2l0eSx2b2lkIDAhPT10aGlzLmdyb3VuZENvbG9yJiYoZS5vYmplY3QuZ3JvdW5kQ29sb3I9dGhpcy5ncm91bmRDb2xvci5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5kaXN0YW5jZSYmKGUub2JqZWN0LmRpc3RhbmNlPXRoaXMuZGlzdGFuY2UpLHZvaWQgMCE9PXRoaXMuYW5nbGUmJihlLm9iamVjdC5hbmdsZT10aGlzLmFuZ2xlKSx2b2lkIDAhPT10aGlzLmRlY2F5JiYoZS5vYmplY3QuZGVjYXk9dGhpcy5kZWNheSksdm9pZCAwIT09dGhpcy5wZW51bWJyYSYmKGUub2JqZWN0LnBlbnVtYnJhPXRoaXMucGVudW1icmEpLHZvaWQgMCE9PXRoaXMuc2hhZG93JiYoZS5vYmplY3Quc2hhZG93PXRoaXMuc2hhZG93LnRvSlNPTigpKSxlfX1vOXQucHJvdG90eXBlLmlzTGlnaHQ9ITA7Y2xhc3MgYTl0IGV4dGVuZHMgbzl0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LG4pLHRoaXMudHlwZT0iSGVtaXNwaGVyZUxpZ2h0Iix0aGlzLnBvc2l0aW9uLmNvcHkoa1F0LkRlZmF1bHRVcCksdGhpcy51cGRhdGVNYXRyaXgoKSx0aGlzLmdyb3VuZENvbG9yPW5ldyAkUXQoZSl9Y29weSh0KXtyZXR1cm4gbzl0LnByb3RvdHlwZS5jb3B5LmNhbGwodGhpcyx0KSx0aGlzLmdyb3VuZENvbG9yLmNvcHkodC5ncm91bmRDb2xvciksdGhpc319YTl0LnByb3RvdHlwZS5pc0hlbWlzcGhlcmVMaWdodD0hMDtjb25zdCBzOXQ9bmV3IHJRdCxsOXQ9bmV3IENKdCxjOXQ9bmV3IENKdDtjbGFzcyB1OXR7Y29uc3RydWN0b3IodCl7dGhpcy5jYW1lcmE9dCx0aGlzLmJpYXM9MCx0aGlzLm5vcm1hbEJpYXM9MCx0aGlzLnJhZGl1cz0xLHRoaXMubWFwU2l6ZT1uZXcgbUp0KDUxMiw1MTIpLHRoaXMubWFwPW51bGwsdGhpcy5tYXBQYXNzPW51bGwsdGhpcy5tYXRyaXg9bmV3IHJRdCx0aGlzLmF1dG9VcGRhdGU9ITAsdGhpcy5uZWVkc1VwZGF0ZT0hMSx0aGlzLl9mcnVzdHVtPW5ldyBpMHQsdGhpcy5fZnJhbWVFeHRlbnRzPW5ldyBtSnQoMSwxKSx0aGlzLl92aWV3cG9ydENvdW50PTEsdGhpcy5fdmlld3BvcnRzPVtuZXcgd0p0KDAsMCwxLDEpXX1nZXRWaWV3cG9ydENvdW50KCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0Q291bnR9Z2V0RnJ1c3R1bSgpe3JldHVybiB0aGlzLl9mcnVzdHVtfXVwZGF0ZU1hdHJpY2VzKHQpe2NvbnN0IGU9dGhpcy5jYW1lcmEsbj10aGlzLm1hdHJpeDtsOXQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLGUucG9zaXRpb24uY29weShsOXQpLGM5dC5zZXRGcm9tTWF0cml4UG9zaXRpb24odC50YXJnZXQubWF0cml4V29ybGQpLGUubG9va0F0KGM5dCksZS51cGRhdGVNYXRyaXhXb3JsZCgpLHM5dC5tdWx0aXBseU1hdHJpY2VzKGUucHJvamVjdGlvbk1hdHJpeCxlLm1hdHJpeFdvcmxkSW52ZXJzZSksdGhpcy5fZnJ1c3R1bS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChzOXQpLG4uc2V0KC41LDAsMCwuNSwwLC41LDAsLjUsMCwwLC41LC41LDAsMCwwLDEpLG4ubXVsdGlwbHkoZS5wcm9qZWN0aW9uTWF0cml4KSxuLm11bHRpcGx5KGUubWF0cml4V29ybGRJbnZlcnNlKX1nZXRWaWV3cG9ydCh0KXtyZXR1cm4gdGhpcy5fdmlld3BvcnRzW3RdfWdldEZyYW1lRXh0ZW50cygpe3JldHVybiB0aGlzLl9mcmFtZUV4dGVudHN9ZGlzcG9zZSgpe3RoaXMubWFwJiZ0aGlzLm1hcC5kaXNwb3NlKCksdGhpcy5tYXBQYXNzJiZ0aGlzLm1hcFBhc3MuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHRoaXMuY2FtZXJhPXQuY2FtZXJhLmNsb25lKCksdGhpcy5iaWFzPXQuYmlhcyx0aGlzLnJhZGl1cz10LnJhZGl1cyx0aGlzLm1hcFNpemUuY29weSh0Lm1hcFNpemUpLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9dG9KU09OKCl7Y29uc3QgdD17fTtyZXR1cm4gMCE9PXRoaXMuYmlhcyYmKHQuYmlhcz10aGlzLmJpYXMpLDAhPT10aGlzLm5vcm1hbEJpYXMmJih0Lm5vcm1hbEJpYXM9dGhpcy5ub3JtYWxCaWFzKSwxIT09dGhpcy5yYWRpdXMmJih0LnJhZGl1cz10aGlzLnJhZGl1cyksNTEyPT09dGhpcy5tYXBTaXplLngmJjUxMj09PXRoaXMubWFwU2l6ZS55fHwodC5tYXBTaXplPXRoaXMubWFwU2l6ZS50b0FycmF5KCkpLHQuY2FtZXJhPXRoaXMuY2FtZXJhLnRvSlNPTighMSkub2JqZWN0LGRlbGV0ZSB0LmNhbWVyYS5tYXRyaXgsdH19Y2xhc3MgaDl0IGV4dGVuZHMgdTl0e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IHExdCg1MCwxLC41LDUwMCkpLHRoaXMuZm9jdXM9MX11cGRhdGVNYXRyaWNlcyh0KXtjb25zdCBlPXRoaXMuY2FtZXJhLG49MipZWnQqdC5hbmdsZSp0aGlzLmZvY3VzLGk9dGhpcy5tYXBTaXplLndpZHRoL3RoaXMubWFwU2l6ZS5oZWlnaHQscj10LmRpc3RhbmNlfHxlLmZhcjtuPT09ZS5mb3YmJmk9PT1lLmFzcGVjdCYmcj09PWUuZmFyfHwoZS5mb3Y9bixlLmFzcGVjdD1pLGUuZmFyPXIsZS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkpLHN1cGVyLnVwZGF0ZU1hdHJpY2VzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5mb2N1cz10LmZvY3VzLHRoaXN9fWg5dC5wcm90b3R5cGUuaXNTcG90TGlnaHRTaGFkb3c9ITA7Y2xhc3MgZDl0IGV4dGVuZHMgbzl0e2NvbnN0cnVjdG9yKHQsZSxuPTAsaT1NYXRoLlBJLzMscj0wLG89MSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IlNwb3RMaWdodCIsdGhpcy5wb3NpdGlvbi5jb3B5KGtRdC5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy50YXJnZXQ9bmV3IGtRdCx0aGlzLmRpc3RhbmNlPW4sdGhpcy5hbmdsZT1pLHRoaXMucGVudW1icmE9cix0aGlzLmRlY2F5PW8sdGhpcy5zaGFkb3c9bmV3IGg5dH1nZXQgcG93ZXIoKXtyZXR1cm4gdGhpcy5pbnRlbnNpdHkqTWF0aC5QSX1zZXQgcG93ZXIodCl7dGhpcy5pbnRlbnNpdHk9dC9NYXRoLlBJfWRpc3Bvc2UoKXt0aGlzLnNoYWRvdy5kaXNwb3NlKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRpc3RhbmNlPXQuZGlzdGFuY2UsdGhpcy5hbmdsZT10LmFuZ2xlLHRoaXMucGVudW1icmE9dC5wZW51bWJyYSx0aGlzLmRlY2F5PXQuZGVjYXksdGhpcy50YXJnZXQ9dC50YXJnZXQuY2xvbmUoKSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fWQ5dC5wcm90b3R5cGUuaXNTcG90TGlnaHQ9ITA7Y29uc3QgcDl0PW5ldyByUXQsZjl0PW5ldyBDSnQsbTl0PW5ldyBDSnQ7Y2xhc3MgZzl0IGV4dGVuZHMgdTl0e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IHExdCg5MCwxLC41LDUwMCkpLHRoaXMuX2ZyYW1lRXh0ZW50cz1uZXcgbUp0KDQsMiksdGhpcy5fdmlld3BvcnRDb3VudD02LHRoaXMuX3ZpZXdwb3J0cz1bbmV3IHdKdCgyLDEsMSwxKSxuZXcgd0p0KDAsMSwxLDEpLG5ldyB3SnQoMywxLDEsMSksbmV3IHdKdCgxLDEsMSwxKSxuZXcgd0p0KDMsMCwxLDEpLG5ldyB3SnQoMSwwLDEsMSldLHRoaXMuX2N1YmVEaXJlY3Rpb25zPVtuZXcgQ0p0KDEsMCwwKSxuZXcgQ0p0KC0xLDAsMCksbmV3IENKdCgwLDAsMSksbmV3IENKdCgwLDAsLTEpLG5ldyBDSnQoMCwxLDApLG5ldyBDSnQoMCwtMSwwKV0sdGhpcy5fY3ViZVVwcz1bbmV3IENKdCgwLDEsMCksbmV3IENKdCgwLDEsMCksbmV3IENKdCgwLDEsMCksbmV3IENKdCgwLDEsMCksbmV3IENKdCgwLDAsMSksbmV3IENKdCgwLDAsLTEpXX11cGRhdGVNYXRyaWNlcyh0LGU9MCl7Y29uc3Qgbj10aGlzLmNhbWVyYSxpPXRoaXMubWF0cml4LHI9dC5kaXN0YW5jZXx8bi5mYXI7ciE9PW4uZmFyJiYobi5mYXI9cixuLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSksZjl0LnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSxuLnBvc2l0aW9uLmNvcHkoZjl0KSxtOXQuY29weShuLnBvc2l0aW9uKSxtOXQuYWRkKHRoaXMuX2N1YmVEaXJlY3Rpb25zW2VdKSxuLnVwLmNvcHkodGhpcy5fY3ViZVVwc1tlXSksbi5sb29rQXQobTl0KSxuLnVwZGF0ZU1hdHJpeFdvcmxkKCksaS5tYWtlVHJhbnNsYXRpb24oLWY5dC54LC1mOXQueSwtZjl0LnopLHA5dC5tdWx0aXBseU1hdHJpY2VzKG4ucHJvamVjdGlvbk1hdHJpeCxuLm1hdHJpeFdvcmxkSW52ZXJzZSksdGhpcy5fZnJ1c3R1bS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChwOXQpfX1nOXQucHJvdG90eXBlLmlzUG9pbnRMaWdodFNoYWRvdz0hMDtjbGFzcyBfOXQgZXh0ZW5kcyBvOXR7Y29uc3RydWN0b3IodCxlLG49MCxpPTEpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJQb2ludExpZ2h0Iix0aGlzLmRpc3RhbmNlPW4sdGhpcy5kZWNheT1pLHRoaXMuc2hhZG93PW5ldyBnOXR9Z2V0IHBvd2VyKCl7cmV0dXJuIDQqdGhpcy5pbnRlbnNpdHkqTWF0aC5QSX1zZXQgcG93ZXIodCl7dGhpcy5pbnRlbnNpdHk9dC8oNCpNYXRoLlBJKX1kaXNwb3NlKCl7dGhpcy5zaGFkb3cuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kaXN0YW5jZT10LmRpc3RhbmNlLHRoaXMuZGVjYXk9dC5kZWNheSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fV85dC5wcm90b3R5cGUuaXNQb2ludExpZ2h0PSEwO2NsYXNzIHk5dCBleHRlbmRzIHU5dHtjb25zdHJ1Y3Rvcigpe3N1cGVyKG5ldyBnMHQoLTUsNSw1LC01LC41LDUwMCkpfX15OXQucHJvdG90eXBlLmlzRGlyZWN0aW9uYWxMaWdodFNoYWRvdz0hMDtjbGFzcyB2OXQgZXh0ZW5kcyBvOXR7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iRGlyZWN0aW9uYWxMaWdodCIsdGhpcy5wb3NpdGlvbi5jb3B5KGtRdC5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy50YXJnZXQ9bmV3IGtRdCx0aGlzLnNoYWRvdz1uZXcgeTl0fWRpc3Bvc2UoKXt0aGlzLnNoYWRvdy5kaXNwb3NlKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnRhcmdldD10LnRhcmdldC5jbG9uZSgpLHRoaXMuc2hhZG93PXQuc2hhZG93LmNsb25lKCksdGhpc319djl0LnByb3RvdHlwZS5pc0RpcmVjdGlvbmFsTGlnaHQ9ITA7Y2xhc3MgYjl0IGV4dGVuZHMgbzl0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkFtYmllbnRMaWdodCJ9fWI5dC5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHQ9ITA7Y2xhc3MgeDl0IGV4dGVuZHMgbzl0e2NvbnN0cnVjdG9yKHQsZSxuPTEwLGk9MTApe3N1cGVyKHQsZSksdGhpcy50eXBlPSJSZWN0QXJlYUxpZ2h0Iix0aGlzLndpZHRoPW4sdGhpcy5oZWlnaHQ9aX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzfXRvSlNPTih0KXtjb25zdCBlPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gZS5vYmplY3Qud2lkdGg9dGhpcy53aWR0aCxlLm9iamVjdC5oZWlnaHQ9dGhpcy5oZWlnaHQsZX19eDl0LnByb3RvdHlwZS5pc1JlY3RBcmVhTGlnaHQ9ITA7Y2xhc3Mgdzl0e2NvbnN0cnVjdG9yKCl7dGhpcy5jb2VmZmljaWVudHM9W107Zm9yKGxldCB0PTA7dDw5O3QrKyl0aGlzLmNvZWZmaWNpZW50cy5wdXNoKG5ldyBDSnQpfXNldCh0KXtmb3IobGV0IGU9MDtlPDk7ZSsrKXRoaXMuY29lZmZpY2llbnRzW2VdLmNvcHkodFtlXSk7cmV0dXJuIHRoaXN9emVybygpe2ZvcihsZXQgdD0wO3Q8OTt0KyspdGhpcy5jb2VmZmljaWVudHNbdF0uc2V0KDAsMCwwKTtyZXR1cm4gdGhpc31nZXRBdCh0LGUpe2NvbnN0IG49dC54LGk9dC55LHI9dC56LG89dGhpcy5jb2VmZmljaWVudHM7cmV0dXJuIGUuY29weShvWzBdKS5tdWx0aXBseVNjYWxhciguMjgyMDk1KSxlLmFkZFNjYWxlZFZlY3RvcihvWzFdLC40ODg2MDMqaSksZS5hZGRTY2FsZWRWZWN0b3Iob1syXSwuNDg4NjAzKnIpLGUuYWRkU2NhbGVkVmVjdG9yKG9bM10sLjQ4ODYwMypuKSxlLmFkZFNjYWxlZFZlY3RvcihvWzRdLG4qaSoxLjA5MjU0OCksZS5hZGRTY2FsZWRWZWN0b3Iob1s1XSxpKnIqMS4wOTI1NDgpLGUuYWRkU2NhbGVkVmVjdG9yKG9bNl0sLjMxNTM5MiooMypyKnItMSkpLGUuYWRkU2NhbGVkVmVjdG9yKG9bN10sbipyKjEuMDkyNTQ4KSxlLmFkZFNjYWxlZFZlY3RvcihvWzhdLC41NDYyNzQqKG4qbi1pKmkpKSxlfWdldElycmFkaWFuY2VBdCh0LGUpe2NvbnN0IG49dC54LGk9dC55LHI9dC56LG89dGhpcy5jb2VmZmljaWVudHM7cmV0dXJuIGUuY29weShvWzBdKS5tdWx0aXBseVNjYWxhciguODg2MjI3KSxlLmFkZFNjYWxlZFZlY3RvcihvWzFdLDEuMDIzMzI4KmkpLGUuYWRkU2NhbGVkVmVjdG9yKG9bMl0sMS4wMjMzMjgqciksZS5hZGRTY2FsZWRWZWN0b3Iob1szXSwxLjAyMzMyOCpuKSxlLmFkZFNjYWxlZFZlY3RvcihvWzRdLC44NTgwODYqbippKSxlLmFkZFNjYWxlZFZlY3RvcihvWzVdLC44NTgwODYqaSpyKSxlLmFkZFNjYWxlZFZlY3RvcihvWzZdLC43NDMxMjUqcipyLS4yNDc3MDgpLGUuYWRkU2NhbGVkVmVjdG9yKG9bN10sLjg1ODA4NipuKnIpLGUuYWRkU2NhbGVkVmVjdG9yKG9bOF0sLjQyOTA0MyoobipuLWkqaSkpLGV9YWRkKHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspdGhpcy5jb2VmZmljaWVudHNbZV0uYWRkKHQuY29lZmZpY2llbnRzW2VdKTtyZXR1cm4gdGhpc31hZGRTY2FsZWRTSCh0LGUpe2ZvcihsZXQgbj0wO248OTtuKyspdGhpcy5jb2VmZmljaWVudHNbbl0uYWRkU2NhbGVkVmVjdG9yKHQuY29lZmZpY2llbnRzW25dLGUpO3JldHVybiB0aGlzfXNjYWxlKHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspdGhpcy5jb2VmZmljaWVudHNbZV0ubXVsdGlwbHlTY2FsYXIodCk7cmV0dXJuIHRoaXN9bGVycCh0LGUpe2ZvcihsZXQgbj0wO248OTtuKyspdGhpcy5jb2VmZmljaWVudHNbbl0ubGVycCh0LmNvZWZmaWNpZW50c1tuXSxlKTtyZXR1cm4gdGhpc31lcXVhbHModCl7Zm9yKGxldCBlPTA7ZTw5O2UrKylpZighdGhpcy5jb2VmZmljaWVudHNbZV0uZXF1YWxzKHQuY29lZmZpY2llbnRzW2VdKSlyZXR1cm4hMTtyZXR1cm4hMH1jb3B5KHQpe3JldHVybiB0aGlzLnNldCh0LmNvZWZmaWNpZW50cyl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9ZnJvbUFycmF5KHQsZT0wKXtjb25zdCBuPXRoaXMuY29lZmZpY2llbnRzO2ZvcihsZXQgaT0wO2k8OTtpKyspbltpXS5mcm9tQXJyYXkodCxlKzMqaSk7cmV0dXJuIHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7Y29uc3Qgbj10aGlzLmNvZWZmaWNpZW50cztmb3IobGV0IGk9MDtpPDk7aSsrKW5baV0udG9BcnJheSh0LGUrMyppKTtyZXR1cm4gdH1zdGF0aWMgZ2V0QmFzaXNBdCh0LGUpe2NvbnN0IG49dC54LGk9dC55LHI9dC56O2VbMF09LjI4MjA5NSxlWzFdPS40ODg2MDMqaSxlWzJdPS40ODg2MDMqcixlWzNdPS40ODg2MDMqbixlWzRdPTEuMDkyNTQ4Km4qaSxlWzVdPTEuMDkyNTQ4KmkqcixlWzZdPS4zMTUzOTIqKDMqcipyLTEpLGVbN109MS4wOTI1NDgqbipyLGVbOF09LjU0NjI3NCoobipuLWkqaSl9fXc5dC5wcm90b3R5cGUuaXNTcGhlcmljYWxIYXJtb25pY3MzPSEwO2NsYXNzIFM5dCBleHRlbmRzIG85dHtjb25zdHJ1Y3Rvcih0PW5ldyB3OXQsZT0xKXtzdXBlcih2b2lkIDAsZSksdGhpcy5zaD10fWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5zaC5jb3B5KHQuc2gpLHRoaXN9ZnJvbUpTT04odCl7cmV0dXJuIHRoaXMuaW50ZW5zaXR5PXQuaW50ZW5zaXR5LHRoaXMuc2guZnJvbUFycmF5KHQuc2gpLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC5zaD10aGlzLnNoLnRvQXJyYXkoKSxlfX1TOXQucHJvdG90eXBlLmlzTGlnaHRQcm9iZT0hMDtjbGFzcyBNOXQgZXh0ZW5kcyAkNnR7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy50ZXh0dXJlcz17fX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9dGhpcyxvPW5ldyBaNnQoci5tYW5hZ2VyKTtvLnNldFBhdGgoci5wYXRoKSxvLnNldFJlcXVlc3RIZWFkZXIoci5yZXF1ZXN0SGVhZGVyKSxvLnNldFdpdGhDcmVkZW50aWFscyhyLndpdGhDcmVkZW50aWFscyksby5sb2FkKHQsKGZ1bmN0aW9uKG4pe3RyeXtlKHIucGFyc2UoSlNPTi5wYXJzZShuKSkpfWNhdGNoKGUpe2k/aShlKTpjb25zb2xlLmVycm9yKGUpLHIubWFuYWdlci5pdGVtRXJyb3IodCl9fSksbixpKX1wYXJzZSh0KXtjb25zdCBlPXRoaXMudGV4dHVyZXM7ZnVuY3Rpb24gbih0KXtyZXR1cm4gdm9pZCAwPT09ZVt0XSYmY29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbExvYWRlcjogVW5kZWZpbmVkIHRleHR1cmUiLHQpLGVbdF19Y29uc3QgaT1uZXcgTDZ0W3QudHlwZV07aWYodm9pZCAwIT09dC51dWlkJiYoaS51dWlkPXQudXVpZCksdm9pZCAwIT09dC5uYW1lJiYoaS5uYW1lPXQubmFtZSksdm9pZCAwIT09dC5jb2xvciYmdm9pZCAwIT09aS5jb2xvciYmaS5jb2xvci5zZXRIZXgodC5jb2xvciksdm9pZCAwIT09dC5yb3VnaG5lc3MmJihpLnJvdWdobmVzcz10LnJvdWdobmVzcyksdm9pZCAwIT09dC5tZXRhbG5lc3MmJihpLm1ldGFsbmVzcz10Lm1ldGFsbmVzcyksdm9pZCAwIT09dC5zaGVlbiYmKGkuc2hlZW49KG5ldyAkUXQpLnNldEhleCh0LnNoZWVuKSksdm9pZCAwIT09dC5lbWlzc2l2ZSYmdm9pZCAwIT09aS5lbWlzc2l2ZSYmaS5lbWlzc2l2ZS5zZXRIZXgodC5lbWlzc2l2ZSksdm9pZCAwIT09dC5zcGVjdWxhciYmdm9pZCAwIT09aS5zcGVjdWxhciYmaS5zcGVjdWxhci5zZXRIZXgodC5zcGVjdWxhciksdm9pZCAwIT09dC5zcGVjdWxhckludGVuc2l0eSYmKGkuc3BlY3VsYXJJbnRlbnNpdHk9dC5zcGVjdWxhckludGVuc2l0eSksdm9pZCAwIT09dC5zcGVjdWxhclRpbnQmJnZvaWQgMCE9PWkuc3BlY3VsYXJUaW50JiZpLnNwZWN1bGFyVGludC5zZXRIZXgodC5zcGVjdWxhclRpbnQpLHZvaWQgMCE9PXQuc2hpbmluZXNzJiYoaS5zaGluaW5lc3M9dC5zaGluaW5lc3MpLHZvaWQgMCE9PXQuY2xlYXJjb2F0JiYoaS5jbGVhcmNvYXQ9dC5jbGVhcmNvYXQpLHZvaWQgMCE9PXQuY2xlYXJjb2F0Um91Z2huZXNzJiYoaS5jbGVhcmNvYXRSb3VnaG5lc3M9dC5jbGVhcmNvYXRSb3VnaG5lc3MpLHZvaWQgMCE9PXQudHJhbnNtaXNzaW9uJiYoaS50cmFuc21pc3Npb249dC50cmFuc21pc3Npb24pLHZvaWQgMCE9PXQudGhpY2tuZXNzJiYoaS50aGlja25lc3M9dC50aGlja25lc3MpLHZvaWQgMCE9PXQuYXR0ZW51YXRpb25EaXN0YW5jZSYmKGkuYXR0ZW51YXRpb25EaXN0YW5jZT10LmF0dGVudWF0aW9uRGlzdGFuY2UpLHZvaWQgMCE9PXQuYXR0ZW51YXRpb25UaW50JiZ2b2lkIDAhPT1pLmF0dGVudWF0aW9uVGludCYmaS5hdHRlbnVhdGlvblRpbnQuc2V0SGV4KHQuYXR0ZW51YXRpb25UaW50KSx2b2lkIDAhPT10LmZvZyYmKGkuZm9nPXQuZm9nKSx2b2lkIDAhPT10LmZsYXRTaGFkaW5nJiYoaS5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nKSx2b2lkIDAhPT10LmJsZW5kaW5nJiYoaS5ibGVuZGluZz10LmJsZW5kaW5nKSx2b2lkIDAhPT10LmNvbWJpbmUmJihpLmNvbWJpbmU9dC5jb21iaW5lKSx2b2lkIDAhPT10LnNpZGUmJihpLnNpZGU9dC5zaWRlKSx2b2lkIDAhPT10LnNoYWRvd1NpZGUmJihpLnNoYWRvd1NpZGU9dC5zaGFkb3dTaWRlKSx2b2lkIDAhPT10Lm9wYWNpdHkmJihpLm9wYWNpdHk9dC5vcGFjaXR5KSx2b2lkIDAhPT10LnRyYW5zcGFyZW50JiYoaS50cmFuc3BhcmVudD10LnRyYW5zcGFyZW50KSx2b2lkIDAhPT10LmFscGhhVGVzdCYmKGkuYWxwaGFUZXN0PXQuYWxwaGFUZXN0KSx2b2lkIDAhPT10LmRlcHRoVGVzdCYmKGkuZGVwdGhUZXN0PXQuZGVwdGhUZXN0KSx2b2lkIDAhPT10LmRlcHRoV3JpdGUmJihpLmRlcHRoV3JpdGU9dC5kZXB0aFdyaXRlKSx2b2lkIDAhPT10LmNvbG9yV3JpdGUmJihpLmNvbG9yV3JpdGU9dC5jb2xvcldyaXRlKSx2b2lkIDAhPT10LnN0ZW5jaWxXcml0ZSYmKGkuc3RlbmNpbFdyaXRlPXQuc3RlbmNpbFdyaXRlKSx2b2lkIDAhPT10LnN0ZW5jaWxXcml0ZU1hc2smJihpLnN0ZW5jaWxXcml0ZU1hc2s9dC5zdGVuY2lsV3JpdGVNYXNrKSx2b2lkIDAhPT10LnN0ZW5jaWxGdW5jJiYoaS5zdGVuY2lsRnVuYz10LnN0ZW5jaWxGdW5jKSx2b2lkIDAhPT10LnN0ZW5jaWxSZWYmJihpLnN0ZW5jaWxSZWY9dC5zdGVuY2lsUmVmKSx2b2lkIDAhPT10LnN0ZW5jaWxGdW5jTWFzayYmKGkuc3RlbmNpbEZ1bmNNYXNrPXQuc3RlbmNpbEZ1bmNNYXNrKSx2b2lkIDAhPT10LnN0ZW5jaWxGYWlsJiYoaS5zdGVuY2lsRmFpbD10LnN0ZW5jaWxGYWlsKSx2b2lkIDAhPT10LnN0ZW5jaWxaRmFpbCYmKGkuc3RlbmNpbFpGYWlsPXQuc3RlbmNpbFpGYWlsKSx2b2lkIDAhPT10LnN0ZW5jaWxaUGFzcyYmKGkuc3RlbmNpbFpQYXNzPXQuc3RlbmNpbFpQYXNzKSx2b2lkIDAhPT10LndpcmVmcmFtZSYmKGkud2lyZWZyYW1lPXQud2lyZWZyYW1lKSx2b2lkIDAhPT10LndpcmVmcmFtZUxpbmV3aWR0aCYmKGkud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoKSx2b2lkIDAhPT10LndpcmVmcmFtZUxpbmVjYXAmJihpLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwKSx2b2lkIDAhPT10LndpcmVmcmFtZUxpbmVqb2luJiYoaS53aXJlZnJhbWVMaW5lam9pbj10LndpcmVmcmFtZUxpbmVqb2luKSx2b2lkIDAhPT10LnJvdGF0aW9uJiYoaS5yb3RhdGlvbj10LnJvdGF0aW9uKSwxIT09dC5saW5ld2lkdGgmJihpLmxpbmV3aWR0aD10LmxpbmV3aWR0aCksdm9pZCAwIT09dC5kYXNoU2l6ZSYmKGkuZGFzaFNpemU9dC5kYXNoU2l6ZSksdm9pZCAwIT09dC5nYXBTaXplJiYoaS5nYXBTaXplPXQuZ2FwU2l6ZSksdm9pZCAwIT09dC5zY2FsZSYmKGkuc2NhbGU9dC5zY2FsZSksdm9pZCAwIT09dC5wb2x5Z29uT2Zmc2V0JiYoaS5wb2x5Z29uT2Zmc2V0PXQucG9seWdvbk9mZnNldCksdm9pZCAwIT09dC5wb2x5Z29uT2Zmc2V0RmFjdG9yJiYoaS5wb2x5Z29uT2Zmc2V0RmFjdG9yPXQucG9seWdvbk9mZnNldEZhY3Rvciksdm9pZCAwIT09dC5wb2x5Z29uT2Zmc2V0VW5pdHMmJihpLnBvbHlnb25PZmZzZXRVbml0cz10LnBvbHlnb25PZmZzZXRVbml0cyksdm9pZCAwIT09dC5kaXRoZXJpbmcmJihpLmRpdGhlcmluZz10LmRpdGhlcmluZyksdm9pZCAwIT09dC5hbHBoYVRvQ292ZXJhZ2UmJihpLmFscGhhVG9Db3ZlcmFnZT10LmFscGhhVG9Db3ZlcmFnZSksdm9pZCAwIT09dC5wcmVtdWx0aXBsaWVkQWxwaGEmJihpLnByZW11bHRpcGxpZWRBbHBoYT10LnByZW11bHRpcGxpZWRBbHBoYSksdm9pZCAwIT09dC52aXNpYmxlJiYoaS52aXNpYmxlPXQudmlzaWJsZSksdm9pZCAwIT09dC50b25lTWFwcGVkJiYoaS50b25lTWFwcGVkPXQudG9uZU1hcHBlZCksdm9pZCAwIT09dC51c2VyRGF0YSYmKGkudXNlckRhdGE9dC51c2VyRGF0YSksdm9pZCAwIT09dC52ZXJ0ZXhDb2xvcnMmJihpLnZlcnRleENvbG9ycz0ibnVtYmVyIj09dHlwZW9mIHQudmVydGV4Q29sb3JzP3QudmVydGV4Q29sb3JzPjA6dC52ZXJ0ZXhDb2xvcnMpLHZvaWQgMCE9PXQudW5pZm9ybXMpZm9yKGNvbnN0IGUgaW4gdC51bmlmb3Jtcyl7Y29uc3Qgcj10LnVuaWZvcm1zW2VdO3N3aXRjaChpLnVuaWZvcm1zW2VdPXt9LHIudHlwZSl7Y2FzZSJ0IjppLnVuaWZvcm1zW2VdLnZhbHVlPW4oci52YWx1ZSk7YnJlYWs7Y2FzZSJjIjppLnVuaWZvcm1zW2VdLnZhbHVlPShuZXcgJFF0KS5zZXRIZXgoci52YWx1ZSk7YnJlYWs7Y2FzZSJ2MiI6aS51bmlmb3Jtc1tlXS52YWx1ZT0obmV3IG1KdCkuZnJvbUFycmF5KHIudmFsdWUpO2JyZWFrO2Nhc2UidjMiOmkudW5pZm9ybXNbZV0udmFsdWU9KG5ldyBDSnQpLmZyb21BcnJheShyLnZhbHVlKTticmVhaztjYXNlInY0IjppLnVuaWZvcm1zW2VdLnZhbHVlPShuZXcgd0p0KS5mcm9tQXJyYXkoci52YWx1ZSk7YnJlYWs7Y2FzZSJtMyI6aS51bmlmb3Jtc1tlXS52YWx1ZT0obmV3IGdKdCkuZnJvbUFycmF5KHIudmFsdWUpO2JyZWFrO2Nhc2UibTQiOmkudW5pZm9ybXNbZV0udmFsdWU9KG5ldyByUXQpLmZyb21BcnJheShyLnZhbHVlKTticmVhaztkZWZhdWx0OmkudW5pZm9ybXNbZV0udmFsdWU9ci52YWx1ZX19aWYodm9pZCAwIT09dC5kZWZpbmVzJiYoaS5kZWZpbmVzPXQuZGVmaW5lcyksdm9pZCAwIT09dC52ZXJ0ZXhTaGFkZXImJihpLnZlcnRleFNoYWRlcj10LnZlcnRleFNoYWRlciksdm9pZCAwIT09dC5mcmFnbWVudFNoYWRlciYmKGkuZnJhZ21lbnRTaGFkZXI9dC5mcmFnbWVudFNoYWRlciksdm9pZCAwIT09dC5leHRlbnNpb25zKWZvcihjb25zdCBlIGluIHQuZXh0ZW5zaW9ucylpLmV4dGVuc2lvbnNbZV09dC5leHRlbnNpb25zW2VdO2lmKHZvaWQgMCE9PXQuc2hhZGluZyYmKGkuZmxhdFNoYWRpbmc9MT09PXQuc2hhZGluZyksdm9pZCAwIT09dC5zaXplJiYoaS5zaXplPXQuc2l6ZSksdm9pZCAwIT09dC5zaXplQXR0ZW51YXRpb24mJihpLnNpemVBdHRlbnVhdGlvbj10LnNpemVBdHRlbnVhdGlvbiksdm9pZCAwIT09dC5tYXAmJihpLm1hcD1uKHQubWFwKSksdm9pZCAwIT09dC5tYXRjYXAmJihpLm1hdGNhcD1uKHQubWF0Y2FwKSksdm9pZCAwIT09dC5hbHBoYU1hcCYmKGkuYWxwaGFNYXA9bih0LmFscGhhTWFwKSksdm9pZCAwIT09dC5idW1wTWFwJiYoaS5idW1wTWFwPW4odC5idW1wTWFwKSksdm9pZCAwIT09dC5idW1wU2NhbGUmJihpLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSksdm9pZCAwIT09dC5ub3JtYWxNYXAmJihpLm5vcm1hbE1hcD1uKHQubm9ybWFsTWFwKSksdm9pZCAwIT09dC5ub3JtYWxNYXBUeXBlJiYoaS5ub3JtYWxNYXBUeXBlPXQubm9ybWFsTWFwVHlwZSksdm9pZCAwIT09dC5ub3JtYWxTY2FsZSl7bGV0IGU9dC5ub3JtYWxTY2FsZTshMT09PUFycmF5LmlzQXJyYXkoZSkmJihlPVtlLGVdKSxpLm5vcm1hbFNjYWxlPShuZXcgbUp0KS5mcm9tQXJyYXkoZSl9cmV0dXJuIHZvaWQgMCE9PXQuZGlzcGxhY2VtZW50TWFwJiYoaS5kaXNwbGFjZW1lbnRNYXA9bih0LmRpc3BsYWNlbWVudE1hcCkpLHZvaWQgMCE9PXQuZGlzcGxhY2VtZW50U2NhbGUmJihpLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUpLHZvaWQgMCE9PXQuZGlzcGxhY2VtZW50QmlhcyYmKGkuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMpLHZvaWQgMCE9PXQucm91Z2huZXNzTWFwJiYoaS5yb3VnaG5lc3NNYXA9bih0LnJvdWdobmVzc01hcCkpLHZvaWQgMCE9PXQubWV0YWxuZXNzTWFwJiYoaS5tZXRhbG5lc3NNYXA9bih0Lm1ldGFsbmVzc01hcCkpLHZvaWQgMCE9PXQuZW1pc3NpdmVNYXAmJihpLmVtaXNzaXZlTWFwPW4odC5lbWlzc2l2ZU1hcCkpLHZvaWQgMCE9PXQuZW1pc3NpdmVJbnRlbnNpdHkmJihpLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHkpLHZvaWQgMCE9PXQuc3BlY3VsYXJNYXAmJihpLnNwZWN1bGFyTWFwPW4odC5zcGVjdWxhck1hcCkpLHZvaWQgMCE9PXQuc3BlY3VsYXJJbnRlbnNpdHlNYXAmJihpLnNwZWN1bGFySW50ZW5zaXR5TWFwPW4odC5zcGVjdWxhckludGVuc2l0eU1hcCkpLHZvaWQgMCE9PXQuc3BlY3VsYXJUaW50TWFwJiYoaS5zcGVjdWxhclRpbnRNYXA9bih0LnNwZWN1bGFyVGludE1hcCkpLHZvaWQgMCE9PXQuZW52TWFwJiYoaS5lbnZNYXA9bih0LmVudk1hcCkpLHZvaWQgMCE9PXQuZW52TWFwSW50ZW5zaXR5JiYoaS5lbnZNYXBJbnRlbnNpdHk9dC5lbnZNYXBJbnRlbnNpdHkpLHZvaWQgMCE9PXQucmVmbGVjdGl2aXR5JiYoaS5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHkpLHZvaWQgMCE9PXQucmVmcmFjdGlvblJhdGlvJiYoaS5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8pLHZvaWQgMCE9PXQubGlnaHRNYXAmJihpLmxpZ2h0TWFwPW4odC5saWdodE1hcCkpLHZvaWQgMCE9PXQubGlnaHRNYXBJbnRlbnNpdHkmJihpLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHkpLHZvaWQgMCE9PXQuYW9NYXAmJihpLmFvTWFwPW4odC5hb01hcCkpLHZvaWQgMCE9PXQuYW9NYXBJbnRlbnNpdHkmJihpLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHkpLHZvaWQgMCE9PXQuZ3JhZGllbnRNYXAmJihpLmdyYWRpZW50TWFwPW4odC5ncmFkaWVudE1hcCkpLHZvaWQgMCE9PXQuY2xlYXJjb2F0TWFwJiYoaS5jbGVhcmNvYXRNYXA9bih0LmNsZWFyY29hdE1hcCkpLHZvaWQgMCE9PXQuY2xlYXJjb2F0Um91Z2huZXNzTWFwJiYoaS5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9bih0LmNsZWFyY29hdFJvdWdobmVzc01hcCkpLHZvaWQgMCE9PXQuY2xlYXJjb2F0Tm9ybWFsTWFwJiYoaS5jbGVhcmNvYXROb3JtYWxNYXA9bih0LmNsZWFyY29hdE5vcm1hbE1hcCkpLHZvaWQgMCE9PXQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUmJihpLmNsZWFyY29hdE5vcm1hbFNjYWxlPShuZXcgbUp0KS5mcm9tQXJyYXkodC5jbGVhcmNvYXROb3JtYWxTY2FsZSkpLHZvaWQgMCE9PXQudHJhbnNtaXNzaW9uTWFwJiYoaS50cmFuc21pc3Npb25NYXA9bih0LnRyYW5zbWlzc2lvbk1hcCkpLHZvaWQgMCE9PXQudGhpY2tuZXNzTWFwJiYoaS50aGlja25lc3NNYXA9bih0LnRoaWNrbmVzc01hcCkpLGl9c2V0VGV4dHVyZXModCl7cmV0dXJuIHRoaXMudGV4dHVyZXM9dCx0aGlzfX1jbGFzcyBFOXR7c3RhdGljIGRlY29kZVRleHQodCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2RlcilyZXR1cm4obmV3IFRleHREZWNvZGVyKS5kZWNvZGUodCk7bGV0IGU9IiI7Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKWUrPVN0cmluZy5mcm9tQ2hhckNvZGUodFtuXSk7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKGUpKX1jYXRjaCh0KXtyZXR1cm4gZX19c3RhdGljIGV4dHJhY3RVcmxCYXNlKHQpe2NvbnN0IGU9dC5sYXN0SW5kZXhPZigiLyIpO3JldHVybi0xPT09ZT8iLi8iOnQuc3Vic3RyKDAsZSsxKX19Y2xhc3MgVDl0IGV4dGVuZHMgYjF0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9Ikluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5Iix0aGlzLmluc3RhbmNlQ291bnQ9MS8wfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5pbnN0YW5jZUNvdW50PXQuaW5zdGFuY2VDb3VudCx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKHRoaXMpO3JldHVybiB0Lmluc3RhbmNlQ291bnQ9dGhpcy5pbnN0YW5jZUNvdW50LHQuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeT0hMCx0fX1UOXQucHJvdG90eXBlLmlzSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk9ITA7Y2xhc3MgQzl0IGV4dGVuZHMgUVF0e2NvbnN0cnVjdG9yKHQsZSxuLGk9MSl7Im51bWJlciI9PXR5cGVvZiBuJiYoaT1uLG49ITEsY29uc29sZS5lcnJvcigiVEhSRUUuSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlOiBUaGUgY29uc3RydWN0b3Igbm93IGV4cGVjdHMgbm9ybWFsaXplZCBhcyB0aGUgdGhpcmQgYXJndW1lbnQuIikpLHN1cGVyKHQsZSxuKSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9aX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWVzaFBlckF0dHJpYnV0ZT10Lm1lc2hQZXJBdHRyaWJ1dGUsdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0Lm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLHQuaXNJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU9ITAsdH19Qzl0LnByb3RvdHlwZS5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyBBOXQgZXh0ZW5kcyAkNnR7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixpKXtjb25zdCByPXRoaXMsbz1uZXcgWjZ0KHIubWFuYWdlcik7by5zZXRQYXRoKHIucGF0aCksby5zZXRSZXF1ZXN0SGVhZGVyKHIucmVxdWVzdEhlYWRlciksby5zZXRXaXRoQ3JlZGVudGlhbHMoci53aXRoQ3JlZGVudGlhbHMpLG8ubG9hZCh0LChmdW5jdGlvbihuKXt0cnl7ZShyLnBhcnNlKEpTT04ucGFyc2UobikpKX1jYXRjaChlKXtpP2koZSk6Y29uc29sZS5lcnJvcihlKSxyLm1hbmFnZXIuaXRlbUVycm9yKHQpfX0pLG4saSl9cGFyc2UodCl7Y29uc3QgZT17fSxuPXt9O2Z1bmN0aW9uIGkodCxpKXtpZih2b2lkIDAhPT1lW2ldKXJldHVybiBlW2ldO2NvbnN0IHI9dC5pbnRlcmxlYXZlZEJ1ZmZlcnNbaV0sbz0oZnVuY3Rpb24gYSh0LGUpe2lmKHZvaWQgMCE9PW5bZV0pcmV0dXJuIG5bZV07Y29uc3QgaT1uZXcgVWludDMyQXJyYXkodC5hcnJheUJ1ZmZlcnNbZV0pLmJ1ZmZlcjtyZXR1cm4gbltlXT1pLGl9KSh0LHIuYnVmZmVyKSxzPWQxdChyLnR5cGUsbyksbD1uZXcgJDV0KHMsci5zdHJpZGUpO3JldHVybiBsLnV1aWQ9ci51dWlkLGVbaV09bCxsfWNvbnN0IHI9dC5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5P25ldyBUOXQ6bmV3IGIxdCxvPXQuZGF0YS5pbmRleDtpZih2b2lkIDAhPT1vKXtjb25zdCB0PWQxdChvLnR5cGUsby5hcnJheSk7ci5zZXRJbmRleChuZXcgUVF0KHQsMSkpfWNvbnN0IGE9dC5kYXRhLmF0dHJpYnV0ZXM7Zm9yKGNvbnN0IGUgaW4gYSl7Y29uc3Qgbj1hW2VdO2xldCBvO2lmKG4uaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSl7Y29uc3QgZT1pKHQuZGF0YSxuLmRhdGEpO289bmV3IFo1dChlLG4uaXRlbVNpemUsbi5vZmZzZXQsbi5ub3JtYWxpemVkKX1lbHNle2NvbnN0IHQ9ZDF0KG4udHlwZSxuLmFycmF5KTtvPW5ldyhuLmlzSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlP0M5dDpRUXQpKHQsbi5pdGVtU2l6ZSxuLm5vcm1hbGl6ZWQpfXZvaWQgMCE9PW4ubmFtZSYmKG8ubmFtZT1uLm5hbWUpLHZvaWQgMCE9PW4udXNhZ2UmJm8uc2V0VXNhZ2Uobi51c2FnZSksdm9pZCAwIT09bi51cGRhdGVSYW5nZSYmKG8udXBkYXRlUmFuZ2Uub2Zmc2V0PW4udXBkYXRlUmFuZ2Uub2Zmc2V0LG8udXBkYXRlUmFuZ2UuY291bnQ9bi51cGRhdGVSYW5nZS5jb3VudCksci5zZXRBdHRyaWJ1dGUoZSxvKX1jb25zdCBzPXQuZGF0YS5tb3JwaEF0dHJpYnV0ZXM7aWYocylmb3IoY29uc3QgZSBpbiBzKXtjb25zdCBuPXNbZV0sbz1bXTtmb3IobGV0IGU9MCxyPW4ubGVuZ3RoO2U8cjtlKyspe2NvbnN0IHI9bltlXTtsZXQgYTtpZihyLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUpe2NvbnN0IGU9aSh0LmRhdGEsci5kYXRhKTthPW5ldyBaNXQoZSxyLml0ZW1TaXplLHIub2Zmc2V0LHIubm9ybWFsaXplZCl9ZWxzZXtjb25zdCB0PWQxdChyLnR5cGUsci5hcnJheSk7YT1uZXcgUVF0KHQsci5pdGVtU2l6ZSxyLm5vcm1hbGl6ZWQpfXZvaWQgMCE9PXIubmFtZSYmKGEubmFtZT1yLm5hbWUpLG8ucHVzaChhKX1yLm1vcnBoQXR0cmlidXRlc1tlXT1vfXQuZGF0YS5tb3JwaFRhcmdldHNSZWxhdGl2ZSYmKHIubW9ycGhUYXJnZXRzUmVsYXRpdmU9ITApO2NvbnN0IGw9dC5kYXRhLmdyb3Vwc3x8dC5kYXRhLmRyYXdjYWxsc3x8dC5kYXRhLm9mZnNldHM7aWYodm9pZCAwIT09bClmb3IobGV0IHQ9MCxlPWwubGVuZ3RoO3QhPT1lOysrdCl7Y29uc3QgZT1sW3RdO3IuYWRkR3JvdXAoZS5zdGFydCxlLmNvdW50LGUubWF0ZXJpYWxJbmRleCl9Y29uc3QgYz10LmRhdGEuYm91bmRpbmdTcGhlcmU7aWYodm9pZCAwIT09Yyl7Y29uc3QgdD1uZXcgQ0p0O3ZvaWQgMCE9PWMuY2VudGVyJiZ0LmZyb21BcnJheShjLmNlbnRlciksci5ib3VuZGluZ1NwaGVyZT1uZXcgJEp0KHQsYy5yYWRpdXMpfXJldHVybiB0Lm5hbWUmJihyLm5hbWU9dC5uYW1lKSx0LnVzZXJEYXRhJiYoci51c2VyRGF0YT10LnVzZXJEYXRhKSxyfX1jb25zdCBrOXQ9e1VWTWFwcGluZzpVS3QsQ3ViZVJlZmxlY3Rpb25NYXBwaW5nOmpLdCxDdWJlUmVmcmFjdGlvbk1hcHBpbmc6R0t0LEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nOldLdCxFcXVpcmVjdGFuZ3VsYXJSZWZyYWN0aW9uTWFwcGluZzpxS3QsQ3ViZVVWUmVmbGVjdGlvbk1hcHBpbmc6WUt0LEN1YmVVVlJlZnJhY3Rpb25NYXBwaW5nOlhLdH0sTDl0PXtSZXBlYXRXcmFwcGluZzokS3QsQ2xhbXBUb0VkZ2VXcmFwcGluZzpLS3QsTWlycm9yZWRSZXBlYXRXcmFwcGluZzpaS3R9LFA5dD17TmVhcmVzdEZpbHRlcjpKS3QsTmVhcmVzdE1pcG1hcE5lYXJlc3RGaWx0ZXI6UUt0LE5lYXJlc3RNaXBtYXBMaW5lYXJGaWx0ZXI6dFp0LExpbmVhckZpbHRlcjplWnQsTGluZWFyTWlwbWFwTmVhcmVzdEZpbHRlcjpuWnQsTGluZWFyTWlwbWFwTGluZWFyRmlsdGVyOmladH07Y2xhc3MgTjl0IGV4dGVuZHMgJDZ0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLCJ1bmRlZmluZWQiPT10eXBlb2YgY3JlYXRlSW1hZ2VCaXRtYXAmJmNvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VCaXRtYXBMb2FkZXI6IGNyZWF0ZUltYWdlQml0bWFwKCkgbm90IHN1cHBvcnRlZC4iKSwidW5kZWZpbmVkIj09dHlwZW9mIGZldGNoJiZjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlQml0bWFwTG9hZGVyOiBmZXRjaCgpIG5vdCBzdXBwb3J0ZWQuIiksdGhpcy5vcHRpb25zPXtwcmVtdWx0aXBseUFscGhhOiJub25lIn19c2V0T3B0aW9ucyh0KXtyZXR1cm4gdGhpcy5vcHRpb25zPXQsdGhpc31sb2FkKHQsZSxuLGkpe3ZvaWQgMD09PXQmJih0PSIiKSx2b2lkIDAhPT10aGlzLnBhdGgmJih0PXRoaXMucGF0aCt0KSx0PXRoaXMubWFuYWdlci5yZXNvbHZlVVJMKHQpO2NvbnN0IHI9dGhpcyxvPXE2dC5nZXQodCk7aWYodm9pZCAwIT09bylyZXR1cm4gci5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UmJmUobyksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKSxvO2NvbnN0IGE9e307YS5jcmVkZW50aWFscz0iYW5vbnltb3VzIj09PXRoaXMuY3Jvc3NPcmlnaW4/InNhbWUtb3JpZ2luIjoiaW5jbHVkZSIsYS5oZWFkZXJzPXRoaXMucmVxdWVzdEhlYWRlcixmZXRjaCh0LGEpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmJsb2IoKX0pKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gY3JlYXRlSW1hZ2VCaXRtYXAodCxPYmplY3QuYXNzaWduKHIub3B0aW9ucyx7Y29sb3JTcGFjZUNvbnZlcnNpb246Im5vbmUifSkpfSkpLnRoZW4oKGZ1bmN0aW9uKG4pe3E2dC5hZGQodCxuKSxlJiZlKG4pLHIubWFuYWdlci5pdGVtRW5kKHQpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtpJiZpKGUpLHIubWFuYWdlci5pdGVtRXJyb3IodCksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSksci5tYW5hZ2VyLml0ZW1TdGFydCh0KX19Tjl0LnByb3RvdHlwZS5pc0ltYWdlQml0bWFwTG9hZGVyPSEwO2NsYXNzIEk5dHtjb25zdHJ1Y3Rvcigpe3RoaXMudHlwZT0iU2hhcGVQYXRoIix0aGlzLmNvbG9yPW5ldyAkUXQsdGhpcy5zdWJQYXRocz1bXSx0aGlzLmN1cnJlbnRQYXRoPW51bGx9bW92ZVRvKHQsZSl7cmV0dXJuIHRoaXMuY3VycmVudFBhdGg9bmV3IGk5dCx0aGlzLnN1YlBhdGhzLnB1c2godGhpcy5jdXJyZW50UGF0aCksdGhpcy5jdXJyZW50UGF0aC5tb3ZlVG8odCxlKSx0aGlzfWxpbmVUbyh0LGUpe3JldHVybiB0aGlzLmN1cnJlbnRQYXRoLmxpbmVUbyh0LGUpLHRoaXN9cXVhZHJhdGljQ3VydmVUbyh0LGUsbixpKXtyZXR1cm4gdGhpcy5jdXJyZW50UGF0aC5xdWFkcmF0aWNDdXJ2ZVRvKHQsZSxuLGkpLHRoaXN9YmV6aWVyQ3VydmVUbyh0LGUsbixpLHIsbyl7cmV0dXJuIHRoaXMuY3VycmVudFBhdGguYmV6aWVyQ3VydmVUbyh0LGUsbixpLHIsbyksdGhpc31zcGxpbmVUaHJ1KHQpe3JldHVybiB0aGlzLmN1cnJlbnRQYXRoLnNwbGluZVRocnUodCksdGhpc310b1NoYXBlcyh0LGUpe2Z1bmN0aW9uIG4odCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxpPXQubGVuZ3RoO248aTtuKyspe2NvbnN0IGk9dFtuXSxyPW5ldyByOXQ7ci5jdXJ2ZXM9aS5jdXJ2ZXMsZS5wdXNoKHIpfXJldHVybiBlfWZ1bmN0aW9uIGkodCxlKXtjb25zdCBuPWUubGVuZ3RoO2xldCBpPSExO2ZvcihsZXQgcj1uLTEsbz0wO288bjtyPW8rKyl7bGV0IG49ZVtyXSxhPWVbb10scz1hLngtbi54LGw9YS55LW4ueTtpZihNYXRoLmFicyhsKT5OdW1iZXIuRVBTSUxPTil7aWYobDwwJiYobj1lW29dLHM9LXMsYT1lW3JdLGw9LWwpLHQueTxuLnl8fHQueT5hLnkpY29udGludWU7aWYodC55PT09bi55KXtpZih0Lng9PT1uLngpcmV0dXJuITB9ZWxzZXtjb25zdCBlPWwqKHQueC1uLngpLXMqKHQueS1uLnkpO2lmKDA9PT1lKXJldHVybiEwO2lmKGU8MCljb250aW51ZTtpPSFpfX1lbHNle2lmKHQueSE9PW4ueSljb250aW51ZTtpZihhLng8PXQueCYmdC54PD1uLnh8fG4ueDw9dC54JiZ0Lng8PWEueClyZXR1cm4hMH19cmV0dXJuIGl9Y29uc3Qgcj1lNnQuaXNDbG9ja1dpc2Usbz10aGlzLnN1YlBhdGhzO2lmKDA9PT1vLmxlbmd0aClyZXR1cm5bXTtpZighMD09PWUpcmV0dXJuIG4obyk7bGV0IGEscyxsO2NvbnN0IGM9W107aWYoMT09PW8ubGVuZ3RoKXJldHVybiBzPW9bMF0sbD1uZXcgcjl0LGwuY3VydmVzPXMuY3VydmVzLGMucHVzaChsKSxjO2xldCB1PSFyKG9bMF0uZ2V0UG9pbnRzKCkpO3U9dD8hdTp1O2NvbnN0IGg9W10sZD1bXTtsZXQgcCxmLG09W10sZz0wO2RbZ109dm9pZCAwLG1bZ109W107Zm9yKGxldCBlPTAsbj1vLmxlbmd0aDtlPG47ZSsrKXM9b1tlXSxwPXMuZ2V0UG9pbnRzKCksYT1yKHApLGE9dD8hYTphLGE/KCF1JiZkW2ddJiZnKyssZFtnXT17czpuZXcgcjl0LHA6cH0sZFtnXS5zLmN1cnZlcz1zLmN1cnZlcyx1JiZnKyssbVtnXT1bXSk6bVtnXS5wdXNoKHtoOnMscDpwWzBdfSk7aWYoIWRbMF0pcmV0dXJuIG4obyk7aWYoZC5sZW5ndGg+MSl7bGV0IHQ9ITE7Y29uc3QgZT1bXTtmb3IobGV0IHQ9MCxlPWQubGVuZ3RoO3Q8ZTt0KyspaFt0XT1bXTtmb3IobGV0IG49MCxyPWQubGVuZ3RoO248cjtuKyspe2NvbnN0IHI9bVtuXTtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rKyl7Y29uc3QgYT1yW29dO2xldCBzPSEwO2ZvcihsZXQgcj0wO3I8ZC5sZW5ndGg7cisrKWkoYS5wLGRbcl0ucCkmJihuIT09ciYmZS5wdXNoKHtmcm9tczpuLHRvczpyLGhvbGU6b30pLHM/KHM9ITEsaFtyXS5wdXNoKGEpKTp0PSEwKTtzJiZoW25dLnB1c2goYSl9fWUubGVuZ3RoPjAmJih0fHwobT1oKSl9Zm9yKGxldCB0PTAsZT1kLmxlbmd0aDt0PGU7dCsrKXtsPWRbdF0ucyxjLnB1c2gobCksZj1tW3RdO2ZvcihsZXQgdD0wLGU9Zi5sZW5ndGg7dDxlO3QrKylsLmhvbGVzLnB1c2goZlt0XS5oKX1yZXR1cm4gY319Y2xhc3MgUjl0e2NvbnN0cnVjdG9yKHQpe3RoaXMudHlwZT0iRm9udCIsdGhpcy5kYXRhPXR9Z2VuZXJhdGVTaGFwZXModCxlPTEwMCl7Y29uc3Qgbj1bXSxpPShmdW5jdGlvbiByKHQsZSxuKXtjb25zdCBpPUFycmF5LmZyb20odCkscj1lL24ucmVzb2x1dGlvbixvPShuLmJvdW5kaW5nQm94LnlNYXgtbi5ib3VuZGluZ0JveC55TWluK24udW5kZXJsaW5lVGhpY2tuZXNzKSpyLGE9W107bGV0IHM9MCxsPTA7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0IGU9aVt0XTtpZigiXG4iPT09ZSlzPTAsbC09bztlbHNle2NvbnN0IHQ9Tzl0KGUscixzLGwsbik7cys9dC5vZmZzZXRYLGEucHVzaCh0LnBhdGgpfX1yZXR1cm4gYX0pKHQsZSx0aGlzLmRhdGEpO2ZvcihsZXQgdD0wLGU9aS5sZW5ndGg7dDxlO3QrKylBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShuLGlbdF0udG9TaGFwZXMoKSk7cmV0dXJuIG59fWZ1bmN0aW9uIE85dCh0LGUsbixpLHIpe2NvbnN0IG89ci5nbHlwaHNbdF18fHIuZ2x5cGhzWyI/Il07aWYoIW8pcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcignVEhSRUUuRm9udDogY2hhcmFjdGVyICInK3QrJyIgZG9lcyBub3QgZXhpc3RzIGluIGZvbnQgZmFtaWx5ICcrci5mYW1pbHlOYW1lKyIuIik7Y29uc3QgYT1uZXcgSTl0O2xldCBzLGwsYyx1LGgsZCxwLGY7aWYoby5vKXtjb25zdCB0PW8uX2NhY2hlZE91dGxpbmV8fChvLl9jYWNoZWRPdXRsaW5lPW8uby5zcGxpdCgiICIpKTtmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bzspc3dpdGNoKHRbcisrXSl7Y2FzZSJtIjpzPXRbcisrXSplK24sbD10W3IrK10qZStpLGEubW92ZVRvKHMsbCk7YnJlYWs7Y2FzZSJsIjpzPXRbcisrXSplK24sbD10W3IrK10qZStpLGEubGluZVRvKHMsbCk7YnJlYWs7Y2FzZSJxIjpjPXRbcisrXSplK24sdT10W3IrK10qZStpLGg9dFtyKytdKmUrbixkPXRbcisrXSplK2ksYS5xdWFkcmF0aWNDdXJ2ZVRvKGgsZCxjLHUpO2JyZWFrO2Nhc2UiYiI6Yz10W3IrK10qZStuLHU9dFtyKytdKmUraSxoPXRbcisrXSplK24sZD10W3IrK10qZStpLHA9dFtyKytdKmUrbixmPXRbcisrXSplK2ksYS5iZXppZXJDdXJ2ZVRvKGgsZCxwLGYsYyx1KX19cmV0dXJue29mZnNldFg6by5oYSplLHBhdGg6YX19bGV0IHo5dDtSOXQucHJvdG90eXBlLmlzRm9udD0hMDtjb25zdCBEOXQ9e2dldENvbnRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09ejl0JiYoejl0PW5ldyh3aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSksejl0fSxzZXRDb250ZXh0OmZ1bmN0aW9uKHQpe3o5dD10fX07Y2xhc3MgQjl0IGV4dGVuZHMgJDZ0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4saSl7Y29uc3Qgcj10aGlzLG89bmV3IFo2dCh0aGlzLm1hbmFnZXIpO28uc2V0UmVzcG9uc2VUeXBlKCJhcnJheWJ1ZmZlciIpLG8uc2V0UGF0aCh0aGlzLnBhdGgpLG8uc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLG8uc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKSxvLmxvYWQodCwoZnVuY3Rpb24obil7dHJ5e2NvbnN0IHQ9bi5zbGljZSgwKTtEOXQuZ2V0Q29udGV4dCgpLmRlY29kZUF1ZGlvRGF0YSh0LChmdW5jdGlvbih0KXtlKHQpfSkpfWNhdGNoKGUpe2k/aShlKTpjb25zb2xlLmVycm9yKGUpLHIubWFuYWdlci5pdGVtRXJyb3IodCl9fSksbixpKX19Y2xhc3MgSDl0IGV4dGVuZHMgUzl0e2NvbnN0cnVjdG9yKHQsZSxuPTEpe3N1cGVyKHZvaWQgMCxuKTtjb25zdCBpPShuZXcgJFF0KS5zZXQodCkscj0obmV3ICRRdCkuc2V0KGUpLG89bmV3IENKdChpLnIsaS5nLGkuYiksYT1uZXcgQ0p0KHIucixyLmcsci5iKSxzPU1hdGguc3FydChNYXRoLlBJKSxsPXMqTWF0aC5zcXJ0KC43NSk7dGhpcy5zaC5jb2VmZmljaWVudHNbMF0uY29weShvKS5hZGQoYSkubXVsdGlwbHlTY2FsYXIocyksdGhpcy5zaC5jb2VmZmljaWVudHNbMV0uY29weShvKS5zdWIoYSkubXVsdGlwbHlTY2FsYXIobCl9fUg5dC5wcm90b3R5cGUuaXNIZW1pc3BoZXJlTGlnaHRQcm9iZT0hMDtjbGFzcyBGOXQgZXh0ZW5kcyBTOXR7Y29uc3RydWN0b3IodCxlPTEpe3N1cGVyKHZvaWQgMCxlKTtjb25zdCBuPShuZXcgJFF0KS5zZXQodCk7dGhpcy5zaC5jb2VmZmljaWVudHNbMF0uc2V0KG4ucixuLmcsbi5iKS5tdWx0aXBseVNjYWxhcigyKk1hdGguc3FydChNYXRoLlBJKSl9fUY5dC5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHRQcm9iZT0hMDtjb25zdCBWOXQ9bmV3IHJRdCxVOXQ9bmV3IHJRdDtjbGFzcyBqOXR7Y29uc3RydWN0b3IodD0hMCl7dGhpcy5hdXRvU3RhcnQ9dCx0aGlzLnN0YXJ0VGltZT0wLHRoaXMub2xkVGltZT0wLHRoaXMuZWxhcHNlZFRpbWU9MCx0aGlzLnJ1bm5pbmc9ITF9c3RhcnQoKXt0aGlzLnN0YXJ0VGltZT1HOXQoKSx0aGlzLm9sZFRpbWU9dGhpcy5zdGFydFRpbWUsdGhpcy5lbGFwc2VkVGltZT0wLHRoaXMucnVubmluZz0hMH1zdG9wKCl7dGhpcy5nZXRFbGFwc2VkVGltZSgpLHRoaXMucnVubmluZz0hMSx0aGlzLmF1dG9TdGFydD0hMX1nZXRFbGFwc2VkVGltZSgpe3JldHVybiB0aGlzLmdldERlbHRhKCksdGhpcy5lbGFwc2VkVGltZX1nZXREZWx0YSgpe2xldCB0PTA7aWYodGhpcy5hdXRvU3RhcnQmJiF0aGlzLnJ1bm5pbmcpcmV0dXJuIHRoaXMuc3RhcnQoKSwwO2lmKHRoaXMucnVubmluZyl7Y29uc3QgZT1HOXQoKTt0PShlLXRoaXMub2xkVGltZSkvMWUzLHRoaXMub2xkVGltZT1lLHRoaXMuZWxhcHNlZFRpbWUrPXR9cmV0dXJuIHR9fWZ1bmN0aW9uIEc5dCgpe3JldHVybigidW5kZWZpbmVkIj09dHlwZW9mIHBlcmZvcm1hbmNlP0RhdGU6cGVyZm9ybWFuY2UpLm5vdygpfWNvbnN0IFc5dD1uZXcgQ0p0LHE5dD1uZXcgVEp0LFk5dD1uZXcgQ0p0LFg5dD1uZXcgQ0p0O2NsYXNzICQ5dCBleHRlbmRzIGtRdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iQXVkaW8iLHRoaXMubGlzdGVuZXI9dCx0aGlzLmNvbnRleHQ9dC5jb250ZXh0LHRoaXMuZ2Fpbj10aGlzLmNvbnRleHQuY3JlYXRlR2FpbigpLHRoaXMuZ2Fpbi5jb25uZWN0KHQuZ2V0SW5wdXQoKSksdGhpcy5hdXRvcGxheT0hMSx0aGlzLmJ1ZmZlcj1udWxsLHRoaXMuZGV0dW5lPTAsdGhpcy5sb29wPSExLHRoaXMubG9vcFN0YXJ0PTAsdGhpcy5sb29wRW5kPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmR1cmF0aW9uPXZvaWQgMCx0aGlzLnBsYXliYWNrUmF0ZT0xLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSEwLHRoaXMuc291cmNlPW51bGwsdGhpcy5zb3VyY2VUeXBlPSJlbXB0eSIsdGhpcy5fc3RhcnRlZEF0PTAsdGhpcy5fcHJvZ3Jlc3M9MCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5maWx0ZXJzPVtdfWdldE91dHB1dCgpe3JldHVybiB0aGlzLmdhaW59c2V0Tm9kZVNvdXJjZSh0KXtyZXR1cm4gdGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9ITEsdGhpcy5zb3VyY2VUeXBlPSJhdWRpb05vZGUiLHRoaXMuc291cmNlPXQsdGhpcy5jb25uZWN0KCksdGhpc31zZXRNZWRpYUVsZW1lbnRTb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFOb2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlKHQpLHRoaXMuY29ubmVjdCgpLHRoaXN9c2V0TWVkaWFTdHJlYW1Tb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFTdHJlYW1Ob2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UodCksdGhpcy5jb25uZWN0KCksdGhpc31zZXRCdWZmZXIodCl7cmV0dXJuIHRoaXMuYnVmZmVyPXQsdGhpcy5zb3VyY2VUeXBlPSJidWZmZXIiLHRoaXMuYXV0b3BsYXkmJnRoaXMucGxheSgpLHRoaXN9cGxheSh0PTApe2lmKCEwPT09dGhpcy5pc1BsYXlpbmcpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogQXVkaW8gaXMgYWxyZWFkeSBwbGF5aW5nLiIpO2lmKCExPT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKTt0aGlzLl9zdGFydGVkQXQ9dGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lK3Q7Y29uc3QgZT10aGlzLmNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7cmV0dXJuIGUuYnVmZmVyPXRoaXMuYnVmZmVyLGUubG9vcD10aGlzLmxvb3AsZS5sb29wU3RhcnQ9dGhpcy5sb29wU3RhcnQsZS5sb29wRW5kPXRoaXMubG9vcEVuZCxlLm9uZW5kZWQ9dGhpcy5vbkVuZGVkLmJpbmQodGhpcyksZS5zdGFydCh0aGlzLl9zdGFydGVkQXQsdGhpcy5fcHJvZ3Jlc3MrdGhpcy5vZmZzZXQsdGhpcy5kdXJhdGlvbiksdGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zb3VyY2U9ZSx0aGlzLnNldERldHVuZSh0aGlzLmRldHVuZSksdGhpcy5zZXRQbGF5YmFja1JhdGUodGhpcy5wbGF5YmFja1JhdGUpLHRoaXMuY29ubmVjdCgpfXBhdXNlKCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4hMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5fcHJvZ3Jlc3MrPU1hdGgubWF4KHRoaXMuY29udGV4dC5jdXJyZW50VGltZS10aGlzLl9zdGFydGVkQXQsMCkqdGhpcy5wbGF5YmFja1JhdGUsITA9PT10aGlzLmxvb3AmJih0aGlzLl9wcm9ncmVzcz10aGlzLl9wcm9ncmVzcyUodGhpcy5kdXJhdGlvbnx8dGhpcy5idWZmZXIuZHVyYXRpb24pKSx0aGlzLnNvdXJjZS5zdG9wKCksdGhpcy5zb3VyY2Uub25lbmRlZD1udWxsLHRoaXMuaXNQbGF5aW5nPSExKSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9c3RvcCgpe2lmKCExIT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHRoaXMuX3Byb2dyZXNzPTAsdGhpcy5zb3VyY2Uuc3RvcCgpLHRoaXMuc291cmNlLm9uZW5kZWQ9bnVsbCx0aGlzLmlzUGxheWluZz0hMSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9Y29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmNvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5jb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSEwLHRoaXN9ZGlzY29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmRpc2Nvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5kaXNjb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSExLHRoaXN9Z2V0RmlsdGVycygpe3JldHVybiB0aGlzLmZpbHRlcnN9c2V0RmlsdGVycyh0KXtyZXR1cm4gdHx8KHQ9W10pLCEwPT09dGhpcy5fY29ubmVjdGVkPyh0aGlzLmRpc2Nvbm5lY3QoKSx0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXMuY29ubmVjdCgpKTp0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXN9c2V0RGV0dW5lKHQpe2lmKHRoaXMuZGV0dW5lPXQsdm9pZCAwIT09dGhpcy5zb3VyY2UuZGV0dW5lKXJldHVybiEwPT09dGhpcy5pc1BsYXlpbmcmJnRoaXMuc291cmNlLmRldHVuZS5zZXRUYXJnZXRBdFRpbWUodGhpcy5kZXR1bmUsdGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lLC4wMSksdGhpc31nZXREZXR1bmUoKXtyZXR1cm4gdGhpcy5kZXR1bmV9Z2V0RmlsdGVyKCl7cmV0dXJuIHRoaXMuZ2V0RmlsdGVycygpWzBdfXNldEZpbHRlcih0KXtyZXR1cm4gdGhpcy5zZXRGaWx0ZXJzKHQ/W3RdOltdKX1zZXRQbGF5YmFja1JhdGUodCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGU9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiZ0aGlzLnNvdXJjZS5wbGF5YmFja1JhdGUuc2V0VGFyZ2V0QXRUaW1lKHRoaXMucGxheWJhY2tSYXRlLHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1nZXRQbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGV9b25FbmRlZCgpe3RoaXMuaXNQbGF5aW5nPSExfWdldExvb3AoKXtyZXR1cm4hMT09PXRoaXMuaGFzUGxheWJhY2tDb250cm9sPyhjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpLCExKTp0aGlzLmxvb3B9c2V0TG9vcCh0KXtpZighMSE9PXRoaXMuaGFzUGxheWJhY2tDb250cm9sKXJldHVybiB0aGlzLmxvb3A9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5zb3VyY2UubG9vcD10aGlzLmxvb3ApLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1zZXRMb29wU3RhcnQodCl7cmV0dXJuIHRoaXMubG9vcFN0YXJ0PXQsdGhpc31zZXRMb29wRW5kKHQpe3JldHVybiB0aGlzLmxvb3BFbmQ9dCx0aGlzfWdldFZvbHVtZSgpe3JldHVybiB0aGlzLmdhaW4uZ2Fpbi52YWx1ZX1zZXRWb2x1bWUodCl7cmV0dXJuIHRoaXMuZ2Fpbi5nYWluLnNldFRhcmdldEF0VGltZSh0LHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXN9fWNvbnN0IEs5dD1uZXcgQ0p0LFo5dD1uZXcgVEp0LEo5dD1uZXcgQ0p0LFE5dD1uZXcgQ0p0O2NsYXNzIHQ4dHtjb25zdHJ1Y3Rvcih0LGU9MjA0OCl7dGhpcy5hbmFseXNlcj10LmNvbnRleHQuY3JlYXRlQW5hbHlzZXIoKSx0aGlzLmFuYWx5c2VyLmZmdFNpemU9ZSx0aGlzLmRhdGE9bmV3IFVpbnQ4QXJyYXkodGhpcy5hbmFseXNlci5mcmVxdWVuY3lCaW5Db3VudCksdC5nZXRPdXRwdXQoKS5jb25uZWN0KHRoaXMuYW5hbHlzZXIpfWdldEZyZXF1ZW5jeURhdGEoKXtyZXR1cm4gdGhpcy5hbmFseXNlci5nZXRCeXRlRnJlcXVlbmN5RGF0YSh0aGlzLmRhdGEpLHRoaXMuZGF0YX1nZXRBdmVyYWdlRnJlcXVlbmN5KCl7bGV0IHQ9MDtjb25zdCBlPXRoaXMuZ2V0RnJlcXVlbmN5RGF0YSgpO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQrPWVbbl07cmV0dXJuIHQvZS5sZW5ndGh9fWNsYXNzIGU4dHtjb25zdHJ1Y3Rvcih0LGUsbil7bGV0IGkscixvO3N3aXRjaCh0aGlzLmJpbmRpbmc9dCx0aGlzLnZhbHVlU2l6ZT1uLGUpe2Nhc2UicXVhdGVybmlvbiI6aT10aGlzLl9zbGVycCxyPXRoaXMuX3NsZXJwQWRkaXRpdmUsbz10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5UXVhdGVybmlvbix0aGlzLmJ1ZmZlcj1uZXcgRmxvYXQ2NEFycmF5KDYqbiksdGhpcy5fd29ya0luZGV4PTU7YnJlYWs7Y2FzZSJzdHJpbmciOmNhc2UiYm9vbCI6aT10aGlzLl9zZWxlY3Qscj10aGlzLl9zZWxlY3Qsbz10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5T3RoZXIsdGhpcy5idWZmZXI9bmV3IEFycmF5KDUqbik7YnJlYWs7ZGVmYXVsdDppPXRoaXMuX2xlcnAscj10aGlzLl9sZXJwQWRkaXRpdmUsbz10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5TnVtZXJpYyx0aGlzLmJ1ZmZlcj1uZXcgRmxvYXQ2NEFycmF5KDUqbil9dGhpcy5fbWl4QnVmZmVyUmVnaW9uPWksdGhpcy5fbWl4QnVmZmVyUmVnaW9uQWRkaXRpdmU9cix0aGlzLl9zZXRJZGVudGl0eT1vLHRoaXMuX29yaWdJbmRleD0zLHRoaXMuX2FkZEluZGV4PTQsdGhpcy5jdW11bGF0aXZlV2VpZ2h0PTAsdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmU9MCx0aGlzLnVzZUNvdW50PTAsdGhpcy5yZWZlcmVuY2VDb3VudD0wfWFjY3VtdWxhdGUodCxlKXtjb25zdCBuPXRoaXMuYnVmZmVyLGk9dGhpcy52YWx1ZVNpemUscj10KmkraTtsZXQgbz10aGlzLmN1bXVsYXRpdmVXZWlnaHQ7aWYoMD09PW8pe2ZvcihsZXQgdD0wO3QhPT1pOysrdCluW3IrdF09blt0XTtvPWV9ZWxzZSBvKz1lLHRoaXMuX21peEJ1ZmZlclJlZ2lvbihuLHIsMCxlL28saSk7dGhpcy5jdW11bGF0aXZlV2VpZ2h0PW99YWNjdW11bGF0ZUFkZGl0aXZlKHQpe2NvbnN0IGU9dGhpcy5idWZmZXIsbj10aGlzLnZhbHVlU2l6ZSxpPW4qdGhpcy5fYWRkSW5kZXg7MD09PXRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlJiZ0aGlzLl9zZXRJZGVudGl0eSgpLHRoaXMuX21peEJ1ZmZlclJlZ2lvbkFkZGl0aXZlKGUsaSwwLHQsbiksdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmUrPXR9YXBwbHkodCl7Y29uc3QgZT10aGlzLnZhbHVlU2l6ZSxuPXRoaXMuYnVmZmVyLGk9dCplK2Uscj10aGlzLmN1bXVsYXRpdmVXZWlnaHQsbz10aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZSxhPXRoaXMuYmluZGluZzt0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9MCx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT0wLHI8MSYmdGhpcy5fbWl4QnVmZmVyUmVnaW9uKG4saSxlKnRoaXMuX29yaWdJbmRleCwxLXIsZSksbz4wJiZ0aGlzLl9taXhCdWZmZXJSZWdpb25BZGRpdGl2ZShuLGksdGhpcy5fYWRkSW5kZXgqZSwxLGUpO2ZvcihsZXQgdD1lLHI9ZStlO3QhPT1yOysrdClpZihuW3RdIT09blt0K2VdKXthLnNldFZhbHVlKG4saSk7YnJlYWt9fXNhdmVPcmlnaW5hbFN0YXRlKCl7Y29uc3QgdD10aGlzLmJ1ZmZlcixlPXRoaXMudmFsdWVTaXplLG49ZSp0aGlzLl9vcmlnSW5kZXg7dGhpcy5iaW5kaW5nLmdldFZhbHVlKHQsbik7Zm9yKGxldCBpPWUscj1uO2khPT1yOysraSl0W2ldPXRbbitpJWVdO3RoaXMuX3NldElkZW50aXR5KCksdGhpcy5jdW11bGF0aXZlV2VpZ2h0PTAsdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmU9MH1yZXN0b3JlT3JpZ2luYWxTdGF0ZSgpe3RoaXMuYmluZGluZy5zZXRWYWx1ZSh0aGlzLmJ1ZmZlciwzKnRoaXMudmFsdWVTaXplKX1fc2V0QWRkaXRpdmVJZGVudGl0eU51bWVyaWMoKXtjb25zdCB0PXRoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplLGU9dCt0aGlzLnZhbHVlU2l6ZTtmb3IobGV0IG49dDtuPGU7bisrKXRoaXMuYnVmZmVyW25dPTB9X3NldEFkZGl0aXZlSWRlbnRpdHlRdWF0ZXJuaW9uKCl7dGhpcy5fc2V0QWRkaXRpdmVJZGVudGl0eU51bWVyaWMoKSx0aGlzLmJ1ZmZlclt0aGlzLl9hZGRJbmRleCp0aGlzLnZhbHVlU2l6ZSszXT0xfV9zZXRBZGRpdGl2ZUlkZW50aXR5T3RoZXIoKXtjb25zdCB0PXRoaXMuX29yaWdJbmRleCp0aGlzLnZhbHVlU2l6ZSxlPXRoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplO2ZvcihsZXQgbj0wO248dGhpcy52YWx1ZVNpemU7bisrKXRoaXMuYnVmZmVyW2Urbl09dGhpcy5idWZmZXJbdCtuXX1fc2VsZWN0KHQsZSxuLGkscil7aWYoaT49LjUpZm9yKGxldCBpPTA7aSE9PXI7KytpKXRbZStpXT10W24raV19X3NsZXJwKHQsZSxuLGkpe1RKdC5zbGVycEZsYXQodCxlLHQsZSx0LG4saSl9X3NsZXJwQWRkaXRpdmUodCxlLG4saSxyKXtjb25zdCBvPXRoaXMuX3dvcmtJbmRleCpyO1RKdC5tdWx0aXBseVF1YXRlcm5pb25zRmxhdCh0LG8sdCxlLHQsbiksVEp0LnNsZXJwRmxhdCh0LGUsdCxlLHQsbyxpKX1fbGVycCh0LGUsbixpLHIpe2NvbnN0IG89MS1pO2ZvcihsZXQgYT0wO2EhPT1yOysrYSl7Y29uc3Qgcj1lK2E7dFtyXT10W3JdKm8rdFtuK2FdKml9fV9sZXJwQWRkaXRpdmUodCxlLG4saSxyKXtmb3IobGV0IG89MDtvIT09cjsrK28pe2NvbnN0IHI9ZStvO3Rbcl09dFtyXSt0W24rb10qaX19fWNvbnN0IG44dD1uZXcgUmVnRXhwKCJbXFxbXFxdXFwuOlxcL10iLCJnIiksaTh0PSJbXlxcW1xcXVxcLjpcXC9dIixyOHQ9IlteIisiXFxbXFxdXFwuOlxcLyIucmVwbGFjZSgiXFwuIiwiIikrIl0iLG84dD0vKCg/OldDK1tcLzpdKSopLy5zb3VyY2UucmVwbGFjZSgiV0MiLGk4dCksYTh0PS8oV0NPRCspPy8uc291cmNlLnJlcGxhY2UoIldDT0QiLHI4dCksczh0PS8oPzpcLihXQyspKD86XFsoLispXF0pPyk/Ly5zb3VyY2UucmVwbGFjZSgiV0MiLGk4dCksbDh0PS9cLihXQyspKD86XFsoLispXF0pPy8uc291cmNlLnJlcGxhY2UoIldDIixpOHQpLGM4dD1uZXcgUmVnRXhwKCJeIitvOHQrYTh0K3M4dCtsOHQrIiQiKSx1OHQ9WyJtYXRlcmlhbCIsIm1hdGVyaWFscyIsImJvbmVzIl07Y2xhc3MgaDh0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLnBhdGg9ZSx0aGlzLnBhcnNlZFBhdGg9bnx8aDh0LnBhcnNlVHJhY2tOYW1lKGUpLHRoaXMubm9kZT1oOHQuZmluZE5vZGUodCx0aGlzLnBhcnNlZFBhdGgubm9kZU5hbWUpfHx0LHRoaXMucm9vdE5vZGU9dCx0aGlzLmdldFZhbHVlPXRoaXMuX2dldFZhbHVlX3VuYm91bmQsdGhpcy5zZXRWYWx1ZT10aGlzLl9zZXRWYWx1ZV91bmJvdW5kfXN0YXRpYyBjcmVhdGUodCxlLG4pe3JldHVybiB0JiZ0LmlzQW5pbWF0aW9uT2JqZWN0R3JvdXA/bmV3IGg4dC5Db21wb3NpdGUodCxlLG4pOm5ldyBoOHQodCxlLG4pfXN0YXRpYyBzYW5pdGl6ZU5vZGVOYW1lKHQpe3JldHVybiB0LnJlcGxhY2UoL1xzL2csIl8iKS5yZXBsYWNlKG44dCwiIil9c3RhdGljIHBhcnNlVHJhY2tOYW1lKHQpe2NvbnN0IGU9Yzh0LmV4ZWModCk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJQcm9wZXJ0eUJpbmRpbmc6IENhbm5vdCBwYXJzZSB0cmFja05hbWU6ICIrdCk7Y29uc3Qgbj17bm9kZU5hbWU6ZVsyXSxvYmplY3ROYW1lOmVbM10sb2JqZWN0SW5kZXg6ZVs0XSxwcm9wZXJ0eU5hbWU6ZVs1XSxwcm9wZXJ0eUluZGV4OmVbNl19LGk9bi5ub2RlTmFtZSYmbi5ub2RlTmFtZS5sYXN0SW5kZXhPZigiLiIpO2lmKHZvaWQgMCE9PWkmJi0xIT09aSl7Y29uc3QgdD1uLm5vZGVOYW1lLnN1YnN0cmluZyhpKzEpOy0xIT09dTh0LmluZGV4T2YodCkmJihuLm5vZGVOYW1lPW4ubm9kZU5hbWUuc3Vic3RyaW5nKDAsaSksbi5vYmplY3ROYW1lPXQpfWlmKG51bGw9PT1uLnByb3BlcnR5TmFtZXx8MD09PW4ucHJvcGVydHlOYW1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlByb3BlcnR5QmluZGluZzogY2FuIG5vdCBwYXJzZSBwcm9wZXJ0eU5hbWUgZnJvbSB0cmFja05hbWU6ICIrdCk7cmV0dXJuIG59c3RhdGljIGZpbmROb2RlKHQsZSl7aWYoIWV8fCIiPT09ZXx8Ii4iPT09ZXx8LTE9PT1lfHxlPT09dC5uYW1lfHxlPT09dC51dWlkKXJldHVybiB0O2lmKHQuc2tlbGV0b24pe2NvbnN0IG49dC5za2VsZXRvbi5nZXRCb25lQnlOYW1lKGUpO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG59aWYodC5jaGlsZHJlbil7Y29uc3Qgbj1mdW5jdGlvbih0KXtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krKyl7Y29uc3Qgcj10W2ldO2lmKHIubmFtZT09PWV8fHIudXVpZD09PWUpcmV0dXJuIHI7Y29uc3Qgbz1uKHIuY2hpbGRyZW4pO2lmKG8pcmV0dXJuIG99cmV0dXJuIG51bGx9LGk9bih0LmNoaWxkcmVuKTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfV9nZXRWYWx1ZV91bmF2YWlsYWJsZSgpe31fc2V0VmFsdWVfdW5hdmFpbGFibGUoKXt9X2dldFZhbHVlX2RpcmVjdCh0LGUpe3RbZV09dGhpcy5ub2RlW3RoaXMucHJvcGVydHlOYW1lXX1fZ2V0VmFsdWVfYXJyYXkodCxlKXtjb25zdCBuPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eTtmb3IobGV0IGk9MCxyPW4ubGVuZ3RoO2khPT1yOysraSl0W2UrK109bltpXX1fZ2V0VmFsdWVfYXJyYXlFbGVtZW50KHQsZSl7dFtlXT10aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XX1fZ2V0VmFsdWVfdG9BcnJheSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS50b0FycmF5KHQsZSl9X3NldFZhbHVlX2RpcmVjdCh0LGUpe3RoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXT10W2VdfV9zZXRWYWx1ZV9kaXJlY3Rfc2V0TmVlZHNVcGRhdGUodCxlKXt0aGlzLnRhcmdldE9iamVjdFt0aGlzLnByb3BlcnR5TmFtZV09dFtlXSx0aGlzLnRhcmdldE9iamVjdC5uZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfZGlyZWN0X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxlKXt0aGlzLnRhcmdldE9iamVjdFt0aGlzLnByb3BlcnR5TmFtZV09dFtlXSx0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheSh0LGUpe2NvbnN0IG49dGhpcy5yZXNvbHZlZFByb3BlcnR5O2ZvcihsZXQgaT0wLHI9bi5sZW5ndGg7aSE9PXI7KytpKW5baV09dFtlKytdfV9zZXRWYWx1ZV9hcnJheV9zZXROZWVkc1VwZGF0ZSh0LGUpe2NvbnN0IG49dGhpcy5yZXNvbHZlZFByb3BlcnR5O2ZvcihsZXQgaT0wLHI9bi5sZW5ndGg7aSE9PXI7KytpKW5baV09dFtlKytdO3RoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlKHQsZSl7Y29uc3Qgbj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBpPTAscj1uLmxlbmd0aDtpIT09cjsrK2kpbltpXT10W2UrK107dGhpcy50YXJnZXRPYmplY3QubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfYXJyYXlFbGVtZW50KHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF09dFtlXX1fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE5lZWRzVXBkYXRlKHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF09dFtlXSx0aGlzLnRhcmdldE9iamVjdC5uZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2Zyb21BcnJheSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS5mcm9tQXJyYXkodCxlKX1fc2V0VmFsdWVfZnJvbUFycmF5X3NldE5lZWRzVXBkYXRlKHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LmZyb21BcnJheSh0LGUpLHRoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS5mcm9tQXJyYXkodCxlKSx0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9nZXRWYWx1ZV91bmJvdW5kKHQsZSl7dGhpcy5iaW5kKCksdGhpcy5nZXRWYWx1ZSh0LGUpfV9zZXRWYWx1ZV91bmJvdW5kKHQsZSl7dGhpcy5iaW5kKCksdGhpcy5zZXRWYWx1ZSh0LGUpfWJpbmQoKXtsZXQgdD10aGlzLm5vZGU7Y29uc3QgZT10aGlzLnBhcnNlZFBhdGgsbj1lLm9iamVjdE5hbWUsaT1lLnByb3BlcnR5TmFtZTtsZXQgcj1lLnByb3BlcnR5SW5kZXg7aWYodHx8KHQ9aDh0LmZpbmROb2RlKHRoaXMucm9vdE5vZGUsZS5ub2RlTmFtZSl8fHRoaXMucm9vdE5vZGUsdGhpcy5ub2RlPXQpLHRoaXMuZ2V0VmFsdWU9dGhpcy5fZ2V0VmFsdWVfdW5hdmFpbGFibGUsdGhpcy5zZXRWYWx1ZT10aGlzLl9zZXRWYWx1ZV91bmF2YWlsYWJsZSwhdClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IFRyeWluZyB0byB1cGRhdGUgbm9kZSBmb3IgdHJhY2s6ICIrdGhpcy5wYXRoKyIgYnV0IGl0IHdhc24ndCBmb3VuZC4iKTtpZihuKXtsZXQgaT1lLm9iamVjdEluZGV4O3N3aXRjaChuKXtjYXNlIm1hdGVyaWFscyI6aWYoIXQubWF0ZXJpYWwpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbWF0ZXJpYWwgYXMgbm9kZSBkb2VzIG5vdCBoYXZlIGEgbWF0ZXJpYWwuIix0aGlzKTtpZighdC5tYXRlcmlhbC5tYXRlcmlhbHMpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbWF0ZXJpYWwubWF0ZXJpYWxzIGFzIG5vZGUubWF0ZXJpYWwgZG9lcyBub3QgaGF2ZSBhIG1hdGVyaWFscyBhcnJheS4iLHRoaXMpO3Q9dC5tYXRlcmlhbC5tYXRlcmlhbHM7YnJlYWs7Y2FzZSJib25lcyI6aWYoIXQuc2tlbGV0b24pcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gYm9uZXMgYXMgbm9kZSBkb2VzIG5vdCBoYXZlIGEgc2tlbGV0b24uIix0aGlzKTt0PXQuc2tlbGV0b24uYm9uZXM7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXS5uYW1lPT09aSl7aT1lO2JyZWFrfWJyZWFrO2RlZmF1bHQ6aWYodm9pZCAwPT09dFtuXSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBvYmplY3ROYW1lIG9mIG5vZGUgdW5kZWZpbmVkLiIsdGhpcyk7dD10W25dfWlmKHZvaWQgMCE9PWkpe2lmKHZvaWQgMD09PXRbaV0pcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBUcnlpbmcgdG8gYmluZCB0byBvYmplY3RJbmRleCBvZiBvYmplY3ROYW1lLCBidXQgaXMgdW5kZWZpbmVkLiIsdGhpcyx0KTt0PXRbaV19fWNvbnN0IG89dFtpXTtpZih2b2lkIDA9PT1vKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogVHJ5aW5nIHRvIHVwZGF0ZSBwcm9wZXJ0eSBmb3IgdHJhY2s6ICIrZS5ub2RlTmFtZSsiLiIraSsiIGJ1dCBpdCB3YXNuJ3QgZm91bmQuIix0KTtsZXQgYT10aGlzLlZlcnNpb25pbmcuTm9uZTt0aGlzLnRhcmdldE9iamVjdD10LHZvaWQgMCE9PXQubmVlZHNVcGRhdGU/YT10aGlzLlZlcnNpb25pbmcuTmVlZHNVcGRhdGU6dm9pZCAwIT09dC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlJiYoYT10aGlzLlZlcnNpb25pbmcuTWF0cml4V29ybGROZWVkc1VwZGF0ZSk7bGV0IHM9dGhpcy5CaW5kaW5nVHlwZS5EaXJlY3Q7aWYodm9pZCAwIT09cil7aWYoIm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyI9PT1pKXtpZighdC5nZW9tZXRyeSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtb3JwaFRhcmdldEluZmx1ZW5jZXMgYmVjYXVzZSBub2RlIGRvZXMgbm90IGhhdmUgYSBnZW9tZXRyeS4iLHRoaXMpO2lmKCF0Lmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbW9ycGhUYXJnZXRJbmZsdWVuY2VzIG9uIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iLHRoaXMpO2lmKCF0Lmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcylyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtb3JwaFRhcmdldEluZmx1ZW5jZXMgYmVjYXVzZSBub2RlIGRvZXMgbm90IGhhdmUgYSBnZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMuIix0aGlzKTt2b2lkIDAhPT10Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtyXSYmKHI9dC5tb3JwaFRhcmdldERpY3Rpb25hcnlbcl0pfXM9dGhpcy5CaW5kaW5nVHlwZS5BcnJheUVsZW1lbnQsdGhpcy5yZXNvbHZlZFByb3BlcnR5PW8sdGhpcy5wcm9wZXJ0eUluZGV4PXJ9ZWxzZSB2b2lkIDAhPT1vLmZyb21BcnJheSYmdm9pZCAwIT09by50b0FycmF5PyhzPXRoaXMuQmluZGluZ1R5cGUuSGFzRnJvbVRvQXJyYXksdGhpcy5yZXNvbHZlZFByb3BlcnR5PW8pOkFycmF5LmlzQXJyYXkobyk/KHM9dGhpcy5CaW5kaW5nVHlwZS5FbnRpcmVBcnJheSx0aGlzLnJlc29sdmVkUHJvcGVydHk9byk6dGhpcy5wcm9wZXJ0eU5hbWU9aTt0aGlzLmdldFZhbHVlPXRoaXMuR2V0dGVyQnlCaW5kaW5nVHlwZVtzXSx0aGlzLnNldFZhbHVlPXRoaXMuU2V0dGVyQnlCaW5kaW5nVHlwZUFuZFZlcnNpb25pbmdbc11bYV19dW5iaW5kKCl7dGhpcy5ub2RlPW51bGwsdGhpcy5nZXRWYWx1ZT10aGlzLl9nZXRWYWx1ZV91bmJvdW5kLHRoaXMuc2V0VmFsdWU9dGhpcy5fc2V0VmFsdWVfdW5ib3VuZH19aDh0LkNvbXBvc2l0ZT1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbil7Y29uc3QgaT1ufHxoOHQucGFyc2VUcmFja05hbWUoZSk7dGhpcy5fdGFyZ2V0R3JvdXA9dCx0aGlzLl9iaW5kaW5ncz10LnN1YnNjcmliZV8oZSxpKX1nZXRWYWx1ZSh0LGUpe3RoaXMuYmluZCgpO2NvbnN0IG49dGhpcy5fYmluZGluZ3NbdGhpcy5fdGFyZ2V0R3JvdXAubkNhY2hlZE9iamVjdHNfXTt2b2lkIDAhPT1uJiZuLmdldFZhbHVlKHQsZSl9c2V0VmFsdWUodCxlKXtjb25zdCBuPXRoaXMuX2JpbmRpbmdzO2ZvcihsZXQgaT10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18scj1uLmxlbmd0aDtpIT09cjsrK2kpbltpXS5zZXRWYWx1ZSh0LGUpfWJpbmQoKXtjb25zdCB0PXRoaXMuX2JpbmRpbmdzO2ZvcihsZXQgZT10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18sbj10Lmxlbmd0aDtlIT09bjsrK2UpdFtlXS5iaW5kKCl9dW5iaW5kKCl7Y29uc3QgdD10aGlzLl9iaW5kaW5ncztmb3IobGV0IGU9dGhpcy5fdGFyZ2V0R3JvdXAubkNhY2hlZE9iamVjdHNfLG49dC5sZW5ndGg7ZSE9PW47KytlKXRbZV0udW5iaW5kKCl9fSxoOHQucHJvdG90eXBlLkJpbmRpbmdUeXBlPXtEaXJlY3Q6MCxFbnRpcmVBcnJheToxLEFycmF5RWxlbWVudDoyLEhhc0Zyb21Ub0FycmF5OjN9LGg4dC5wcm90b3R5cGUuVmVyc2lvbmluZz17Tm9uZTowLE5lZWRzVXBkYXRlOjEsTWF0cml4V29ybGROZWVkc1VwZGF0ZToyfSxoOHQucHJvdG90eXBlLkdldHRlckJ5QmluZGluZ1R5cGU9W2g4dC5wcm90b3R5cGUuX2dldFZhbHVlX2RpcmVjdCxoOHQucHJvdG90eXBlLl9nZXRWYWx1ZV9hcnJheSxoOHQucHJvdG90eXBlLl9nZXRWYWx1ZV9hcnJheUVsZW1lbnQsaDh0LnByb3RvdHlwZS5fZ2V0VmFsdWVfdG9BcnJheV0saDh0LnByb3RvdHlwZS5TZXR0ZXJCeUJpbmRpbmdUeXBlQW5kVmVyc2lvbmluZz1bW2g4dC5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdCxoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9kaXJlY3Rfc2V0TmVlZHNVcGRhdGUsaDh0LnByb3RvdHlwZS5fc2V0VmFsdWVfZGlyZWN0X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdLFtoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheSxoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheV9zZXROZWVkc1VwZGF0ZSxoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXSxbaDh0LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50LGg4dC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5RWxlbWVudF9zZXROZWVkc1VwZGF0ZSxoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheUVsZW1lbnRfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZV0sW2g4dC5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheSxoOHQucHJvdG90eXBlLl9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TmVlZHNVcGRhdGUsaDh0LnByb3RvdHlwZS5fc2V0VmFsdWVfZnJvbUFycmF5X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdXTtjbGFzcyBkOHR7Y29uc3RydWN0b3IoKXt0aGlzLnV1aWQ9WFp0KCksdGhpcy5fb2JqZWN0cz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLHRoaXMubkNhY2hlZE9iamVjdHNfPTA7Y29uc3QgdD17fTt0aGlzLl9pbmRpY2VzQnlVVUlEPXQ7Zm9yKGxldCBlPTAsbj1hcmd1bWVudHMubGVuZ3RoO2UhPT1uOysrZSl0W2FyZ3VtZW50c1tlXS51dWlkXT1lO3RoaXMuX3BhdGhzPVtdLHRoaXMuX3BhcnNlZFBhdGhzPVtdLHRoaXMuX2JpbmRpbmdzPVtdLHRoaXMuX2JpbmRpbmdzSW5kaWNlc0J5UGF0aD17fTtjb25zdCBlPXRoaXM7dGhpcy5zdGF0cz17b2JqZWN0czp7Z2V0IHRvdGFsKCl7cmV0dXJuIGUuX29iamVjdHMubGVuZ3RofSxnZXQgaW5Vc2UoKXtyZXR1cm4gdGhpcy50b3RhbC1lLm5DYWNoZWRPYmplY3RzX319LGdldCBiaW5kaW5nc1Blck9iamVjdCgpe3JldHVybiBlLl9iaW5kaW5ncy5sZW5ndGh9fX1hZGQoKXtjb25zdCB0PXRoaXMuX29iamVjdHMsZT10aGlzLl9pbmRpY2VzQnlVVUlELG49dGhpcy5fcGF0aHMsaT10aGlzLl9wYXJzZWRQYXRocyxyPXRoaXMuX2JpbmRpbmdzLG89ci5sZW5ndGg7bGV0IGEscz10Lmxlbmd0aCxsPXRoaXMubkNhY2hlZE9iamVjdHNfO2ZvcihsZXQgYz0wLHU9YXJndW1lbnRzLmxlbmd0aDtjIT09dTsrK2Mpe2NvbnN0IHU9YXJndW1lbnRzW2NdLGg9dS51dWlkO2xldCBkPWVbaF07aWYodm9pZCAwPT09ZCl7ZD1zKyssZVtoXT1kLHQucHVzaCh1KTtmb3IobGV0IHQ9MCxlPW87dCE9PWU7Kyt0KXJbdF0ucHVzaChuZXcgaDh0KHUsblt0XSxpW3RdKSl9ZWxzZSBpZihkPGwpe2E9dFtkXTtjb25zdCBzPS0tbCxjPXRbc107ZVtjLnV1aWRdPWQsdFtkXT1jLGVbaF09cyx0W3NdPXU7Zm9yKGxldCB0PTAsZT1vO3QhPT1lOysrdCl7Y29uc3QgZT1yW3RdO2xldCBvPWVbZF07ZVtkXT1lW3NdLHZvaWQgMD09PW8mJihvPW5ldyBoOHQodSxuW3RdLGlbdF0pKSxlW3NdPW99fWVsc2UgdFtkXSE9PWEmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkFuaW1hdGlvbk9iamVjdEdyb3VwOiBEaWZmZXJlbnQgb2JqZWN0cyB3aXRoIHRoZSBzYW1lIFVVSUQgZGV0ZWN0ZWQuIENsZWFuIHRoZSBjYWNoZXMgb3IgcmVjcmVhdGUgeW91ciBpbmZyYXN0cnVjdHVyZSB3aGVuIHJlbG9hZGluZyBzY2VuZXMuIil9dGhpcy5uQ2FjaGVkT2JqZWN0c189bH1yZW1vdmUoKXtjb25zdCB0PXRoaXMuX29iamVjdHMsZT10aGlzLl9pbmRpY2VzQnlVVUlELG49dGhpcy5fYmluZGluZ3MsaT1uLmxlbmd0aDtsZXQgcj10aGlzLm5DYWNoZWRPYmplY3RzXztmb3IobGV0IG89MCxhPWFyZ3VtZW50cy5sZW5ndGg7byE9PWE7KytvKXtjb25zdCBhPWFyZ3VtZW50c1tvXSxzPWEudXVpZCxsPWVbc107aWYodm9pZCAwIT09bCYmbD49cil7Y29uc3Qgbz1yKyssYz10W29dO2VbYy51dWlkXT1sLHRbbF09YyxlW3NdPW8sdFtvXT1hO2ZvcihsZXQgdD0wLGU9aTt0IT09ZTsrK3Qpe2NvbnN0IGU9blt0XSxpPWVbbF07ZVtsXT1lW29dLGVbb109aX19fXRoaXMubkNhY2hlZE9iamVjdHNfPXJ9dW5jYWNoZSgpe2NvbnN0IHQ9dGhpcy5fb2JqZWN0cyxlPXRoaXMuX2luZGljZXNCeVVVSUQsbj10aGlzLl9iaW5kaW5ncyxpPW4ubGVuZ3RoO2xldCByPXRoaXMubkNhY2hlZE9iamVjdHNfLG89dC5sZW5ndGg7Zm9yKGxldCBhPTAscz1hcmd1bWVudHMubGVuZ3RoO2EhPT1zOysrYSl7Y29uc3Qgcz1hcmd1bWVudHNbYV0udXVpZCxsPWVbc107aWYodm9pZCAwIT09bClpZihkZWxldGUgZVtzXSxsPHIpe2NvbnN0IGE9LS1yLHM9dFthXSxjPS0tbyx1PXRbY107ZVtzLnV1aWRdPWwsdFtsXT1zLGVbdS51dWlkXT1hLHRbYV09dSx0LnBvcCgpO2ZvcihsZXQgdD0wLGU9aTt0IT09ZTsrK3Qpe2NvbnN0IGU9blt0XSxpPWVbY107ZVtsXT1lW2FdLGVbYV09aSxlLnBvcCgpfX1lbHNle2NvbnN0IHI9LS1vLGE9dFtyXTtyPjAmJihlW2EudXVpZF09bCksdFtsXT1hLHQucG9wKCk7Zm9yKGxldCB0PTAsZT1pO3QhPT1lOysrdCl7Y29uc3QgZT1uW3RdO2VbbF09ZVtyXSxlLnBvcCgpfX19dGhpcy5uQ2FjaGVkT2JqZWN0c189cn1zdWJzY3JpYmVfKHQsZSl7Y29uc3Qgbj10aGlzLl9iaW5kaW5nc0luZGljZXNCeVBhdGg7bGV0IGk9blt0XTtjb25zdCByPXRoaXMuX2JpbmRpbmdzO2lmKHZvaWQgMCE9PWkpcmV0dXJuIHJbaV07Y29uc3Qgbz10aGlzLl9wYXRocyxhPXRoaXMuX3BhcnNlZFBhdGhzLHM9dGhpcy5fb2JqZWN0cyxsPXRoaXMubkNhY2hlZE9iamVjdHNfLGM9bmV3IEFycmF5KHMubGVuZ3RoKTtpPXIubGVuZ3RoLG5bdF09aSxvLnB1c2godCksYS5wdXNoKGUpLHIucHVzaChjKTtmb3IobGV0IG49bCxpPXMubGVuZ3RoO24hPT1pOysrbiljW25dPW5ldyBoOHQoc1tuXSx0LGUpO3JldHVybiBjfXVuc3Vic2NyaWJlXyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzSW5kaWNlc0J5UGF0aCxuPWVbdF07aWYodm9pZCAwIT09bil7Y29uc3QgaT10aGlzLl9wYXRocyxyPXRoaXMuX3BhcnNlZFBhdGhzLG89dGhpcy5fYmluZGluZ3MsYT1vLmxlbmd0aC0xLHM9b1thXTtlW3RbYV1dPW4sb1tuXT1zLG8ucG9wKCkscltuXT1yW2FdLHIucG9wKCksaVtuXT1pW2FdLGkucG9wKCl9fX1kOHQucHJvdG90eXBlLmlzQW5pbWF0aW9uT2JqZWN0R3JvdXA9ITA7Y2xhc3MgcDh0e2NvbnN0cnVjdG9yKHQsZSxuPW51bGwsaT1lLmJsZW5kTW9kZSl7dGhpcy5fbWl4ZXI9dCx0aGlzLl9jbGlwPWUsdGhpcy5fbG9jYWxSb290PW4sdGhpcy5ibGVuZE1vZGU9aTtjb25zdCByPWUudHJhY2tzLG89ci5sZW5ndGgsYT1uZXcgQXJyYXkobykscz17ZW5kaW5nU3RhcnQ6Q1p0LGVuZGluZ0VuZDpDWnR9O2ZvcihsZXQgdD0wO3QhPT1vOysrdCl7Y29uc3QgZT1yW3RdLmNyZWF0ZUludGVycG9sYW50KG51bGwpO2FbdF09ZSxlLnNldHRpbmdzPXN9dGhpcy5faW50ZXJwb2xhbnRTZXR0aW5ncz1zLHRoaXMuX2ludGVycG9sYW50cz1hLHRoaXMuX3Byb3BlcnR5QmluZGluZ3M9bmV3IEFycmF5KG8pLHRoaXMuX2NhY2hlSW5kZXg9bnVsbCx0aGlzLl9ieUNsaXBDYWNoZUluZGV4PW51bGwsdGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl93ZWlnaHRJbnRlcnBvbGFudD1udWxsLHRoaXMubG9vcD0yMjAxLHRoaXMuX2xvb3BDb3VudD0tMSx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLnRpbWU9MCx0aGlzLnRpbWVTY2FsZT0xLHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZT0xLHRoaXMud2VpZ2h0PTEsdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PTEsdGhpcy5yZXBldGl0aW9ucz0xLzAsdGhpcy5wYXVzZWQ9ITEsdGhpcy5lbmFibGVkPSEwLHRoaXMuY2xhbXBXaGVuRmluaXNoZWQ9ITEsdGhpcy56ZXJvU2xvcGVBdFN0YXJ0PSEwLHRoaXMuemVyb1Nsb3BlQXRFbmQ9ITB9cGxheSgpe3JldHVybiB0aGlzLl9taXhlci5fYWN0aXZhdGVBY3Rpb24odGhpcyksdGhpc31zdG9wKCl7cmV0dXJuIHRoaXMuX21peGVyLl9kZWFjdGl2YXRlQWN0aW9uKHRoaXMpLHRoaXMucmVzZXQoKX1yZXNldCgpe3JldHVybiB0aGlzLnBhdXNlZD0hMSx0aGlzLmVuYWJsZWQ9ITAsdGhpcy50aW1lPTAsdGhpcy5fbG9vcENvdW50PS0xLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuc3RvcEZhZGluZygpLnN0b3BXYXJwaW5nKCl9aXNSdW5uaW5nKCl7cmV0dXJuIHRoaXMuZW5hYmxlZCYmIXRoaXMucGF1c2VkJiYwIT09dGhpcy50aW1lU2NhbGUmJm51bGw9PT10aGlzLl9zdGFydFRpbWUmJnRoaXMuX21peGVyLl9pc0FjdGl2ZUFjdGlvbih0aGlzKX1pc1NjaGVkdWxlZCgpe3JldHVybiB0aGlzLl9taXhlci5faXNBY3RpdmVBY3Rpb24odGhpcyl9c3RhcnRBdCh0KXtyZXR1cm4gdGhpcy5fc3RhcnRUaW1lPXQsdGhpc31zZXRMb29wKHQsZSl7cmV0dXJuIHRoaXMubG9vcD10LHRoaXMucmVwZXRpdGlvbnM9ZSx0aGlzfXNldEVmZmVjdGl2ZVdlaWdodCh0KXtyZXR1cm4gdGhpcy53ZWlnaHQ9dCx0aGlzLl9lZmZlY3RpdmVXZWlnaHQ9dGhpcy5lbmFibGVkP3Q6MCx0aGlzLnN0b3BGYWRpbmcoKX1nZXRFZmZlY3RpdmVXZWlnaHQoKXtyZXR1cm4gdGhpcy5fZWZmZWN0aXZlV2VpZ2h0fWZhZGVJbih0KXtyZXR1cm4gdGhpcy5fc2NoZWR1bGVGYWRpbmcodCwwLDEpfWZhZGVPdXQodCl7cmV0dXJuIHRoaXMuX3NjaGVkdWxlRmFkaW5nKHQsMSwwKX1jcm9zc0ZhZGVGcm9tKHQsZSxuKXtpZih0LmZhZGVPdXQoZSksdGhpcy5mYWRlSW4oZSksbil7Y29uc3Qgbj10aGlzLl9jbGlwLmR1cmF0aW9uLGk9dC5fY2xpcC5kdXJhdGlvbixyPW4vaTt0LndhcnAoMSxpL24sZSksdGhpcy53YXJwKHIsMSxlKX1yZXR1cm4gdGhpc31jcm9zc0ZhZGVUbyh0LGUsbil7cmV0dXJuIHQuY3Jvc3NGYWRlRnJvbSh0aGlzLGUsbil9c3RvcEZhZGluZygpe2NvbnN0IHQ9dGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ7cmV0dXJuIG51bGwhPT10JiYodGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl9taXhlci5fdGFrZUJhY2tDb250cm9sSW50ZXJwb2xhbnQodCkpLHRoaXN9c2V0RWZmZWN0aXZlVGltZVNjYWxlKHQpe3JldHVybiB0aGlzLnRpbWVTY2FsZT10LHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZT10aGlzLnBhdXNlZD8wOnQsdGhpcy5zdG9wV2FycGluZygpfWdldEVmZmVjdGl2ZVRpbWVTY2FsZSgpe3JldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGV9c2V0RHVyYXRpb24odCl7cmV0dXJuIHRoaXMudGltZVNjYWxlPXRoaXMuX2NsaXAuZHVyYXRpb24vdCx0aGlzLnN0b3BXYXJwaW5nKCl9c3luY1dpdGgodCl7cmV0dXJuIHRoaXMudGltZT10LnRpbWUsdGhpcy50aW1lU2NhbGU9dC50aW1lU2NhbGUsdGhpcy5zdG9wV2FycGluZygpfWhhbHQodCl7cmV0dXJuIHRoaXMud2FycCh0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGUsMCx0KX13YXJwKHQsZSxuKXtjb25zdCBpPXRoaXMuX21peGVyLHI9aS50aW1lLG89dGhpcy50aW1lU2NhbGU7bGV0IGE9dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7bnVsbD09PWEmJihhPWkuX2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKSx0aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudD1hKTtjb25zdCBzPWEucGFyYW1ldGVyUG9zaXRpb25zLGw9YS5zYW1wbGVWYWx1ZXM7cmV0dXJuIHNbMF09cixzWzFdPXIrbixsWzBdPXQvbyxsWzFdPWUvbyx0aGlzfXN0b3BXYXJwaW5nKCl7Y29uc3QgdD10aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudDtyZXR1cm4gbnVsbCE9PXQmJih0aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudD1udWxsLHRoaXMuX21peGVyLl90YWtlQmFja0NvbnRyb2xJbnRlcnBvbGFudCh0KSksdGhpc31nZXRNaXhlcigpe3JldHVybiB0aGlzLl9taXhlcn1nZXRDbGlwKCl7cmV0dXJuIHRoaXMuX2NsaXB9Z2V0Um9vdCgpe3JldHVybiB0aGlzLl9sb2NhbFJvb3R8fHRoaXMuX21peGVyLl9yb290fV91cGRhdGUodCxlLG4saSl7aWYoIXRoaXMuZW5hYmxlZClyZXR1cm4gdm9pZCB0aGlzLl91cGRhdGVXZWlnaHQodCk7Y29uc3Qgcj10aGlzLl9zdGFydFRpbWU7aWYobnVsbCE9PXIpe2NvbnN0IGk9KHQtcikqbjtpZihpPDB8fDA9PT1uKXJldHVybjt0aGlzLl9zdGFydFRpbWU9bnVsbCxlPW4qaX1lKj10aGlzLl91cGRhdGVUaW1lU2NhbGUodCk7Y29uc3Qgbz10aGlzLl91cGRhdGVUaW1lKGUpLGE9dGhpcy5fdXBkYXRlV2VpZ2h0KHQpO2lmKGE+MCl7Y29uc3QgdD10aGlzLl9pbnRlcnBvbGFudHMsZT10aGlzLl9wcm9wZXJ0eUJpbmRpbmdzO3N3aXRjaCh0aGlzLmJsZW5kTW9kZSl7Y2FzZSBQWnQ6Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuIT09aTsrK24pdFtuXS5ldmFsdWF0ZShvKSxlW25dLmFjY3VtdWxhdGVBZGRpdGl2ZShhKTticmVhaztjYXNlIExadDpkZWZhdWx0OmZvcihsZXQgbj0wLHI9dC5sZW5ndGg7biE9PXI7KytuKXRbbl0uZXZhbHVhdGUobyksZVtuXS5hY2N1bXVsYXRlKGksYSl9fX1fdXBkYXRlV2VpZ2h0KHQpe2xldCBlPTA7aWYodGhpcy5lbmFibGVkKXtlPXRoaXMud2VpZ2h0O2NvbnN0IG49dGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ7aWYobnVsbCE9PW4pe2NvbnN0IGk9bi5ldmFsdWF0ZSh0KVswXTtlKj1pLHQ+bi5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BGYWRpbmcoKSwwPT09aSYmKHRoaXMuZW5hYmxlZD0hMSkpfX1yZXR1cm4gdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PWUsZX1fdXBkYXRlVGltZVNjYWxlKHQpe2xldCBlPTA7aWYoIXRoaXMucGF1c2VkKXtlPXRoaXMudGltZVNjYWxlO2NvbnN0IG49dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7bnVsbCE9PW4mJihlKj1uLmV2YWx1YXRlKHQpWzBdLHQ+bi5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BXYXJwaW5nKCksMD09PWU/dGhpcy5wYXVzZWQ9ITA6dGhpcy50aW1lU2NhbGU9ZSkpfXJldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9ZSxlfV91cGRhdGVUaW1lKHQpe2NvbnN0IGU9dGhpcy5fY2xpcC5kdXJhdGlvbixuPXRoaXMubG9vcDtsZXQgaT10aGlzLnRpbWUrdCxyPXRoaXMuX2xvb3BDb3VudDtjb25zdCBvPTIyMDI9PT1uO2lmKDA9PT10KXJldHVybi0xPT09cj9pOm8mJjE9PSgxJnIpP2UtaTppO2lmKDIyMDA9PT1uKXstMT09PXImJih0aGlzLl9sb29wQ291bnQ9MCx0aGlzLl9zZXRFbmRpbmdzKCEwLCEwLCExKSk7dDp7aWYoaT49ZSlpPWU7ZWxzZXtpZighKGk8MCkpe3RoaXMudGltZT1pO2JyZWFrIHR9aT0wfXRoaXMuY2xhbXBXaGVuRmluaXNoZWQ/dGhpcy5wYXVzZWQ9ITA6dGhpcy5lbmFibGVkPSExLHRoaXMudGltZT1pLHRoaXMuX21peGVyLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImZpbmlzaGVkIixhY3Rpb246dGhpcyxkaXJlY3Rpb246dDwwPy0xOjF9KX19ZWxzZXtpZigtMT09PXImJih0Pj0wPyhyPTAsdGhpcy5fc2V0RW5kaW5ncyghMCwwPT09dGhpcy5yZXBldGl0aW9ucyxvKSk6dGhpcy5fc2V0RW5kaW5ncygwPT09dGhpcy5yZXBldGl0aW9ucywhMCxvKSksaT49ZXx8aTwwKXtjb25zdCBuPU1hdGguZmxvb3IoaS9lKTtpLT1lKm4scis9TWF0aC5hYnMobik7Y29uc3QgYT10aGlzLnJlcGV0aXRpb25zLXI7aWYoYTw9MCl0aGlzLmNsYW1wV2hlbkZpbmlzaGVkP3RoaXMucGF1c2VkPSEwOnRoaXMuZW5hYmxlZD0hMSxpPXQ+MD9lOjAsdGhpcy50aW1lPWksdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToiZmluaXNoZWQiLGFjdGlvbjp0aGlzLGRpcmVjdGlvbjp0PjA/MTotMX0pO2Vsc2V7aWYoMT09PWEpe2NvbnN0IGU9dDwwO3RoaXMuX3NldEVuZGluZ3MoZSwhZSxvKX1lbHNlIHRoaXMuX3NldEVuZGluZ3MoITEsITEsbyk7dGhpcy5fbG9vcENvdW50PXIsdGhpcy50aW1lPWksdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToibG9vcCIsYWN0aW9uOnRoaXMsbG9vcERlbHRhOm59KX19ZWxzZSB0aGlzLnRpbWU9aTtpZihvJiYxPT0oMSZyKSlyZXR1cm4gZS1pfXJldHVybiBpfV9zZXRFbmRpbmdzKHQsZSxuKXtjb25zdCBpPXRoaXMuX2ludGVycG9sYW50U2V0dGluZ3M7bj8oaS5lbmRpbmdTdGFydD1BWnQsaS5lbmRpbmdFbmQ9QVp0KTooaS5lbmRpbmdTdGFydD10P3RoaXMuemVyb1Nsb3BlQXRTdGFydD9BWnQ6Q1p0OmtadCxpLmVuZGluZ0VuZD1lP3RoaXMuemVyb1Nsb3BlQXRFbmQ/QVp0OkNadDprWnQpfV9zY2hlZHVsZUZhZGluZyh0LGUsbil7Y29uc3QgaT10aGlzLl9taXhlcixyPWkudGltZTtsZXQgbz10aGlzLl93ZWlnaHRJbnRlcnBvbGFudDtudWxsPT09byYmKG89aS5fbGVuZENvbnRyb2xJbnRlcnBvbGFudCgpLHRoaXMuX3dlaWdodEludGVycG9sYW50PW8pO2NvbnN0IGE9by5wYXJhbWV0ZXJQb3NpdGlvbnMscz1vLnNhbXBsZVZhbHVlcztyZXR1cm4gYVswXT1yLHNbMF09ZSxhWzFdPXIrdCxzWzFdPW4sdGhpc319Y2xhc3MgZjh0IGV4dGVuZHMgalp0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fcm9vdD10LHRoaXMuX2luaXRNZW1vcnlNYW5hZ2VyKCksdGhpcy5fYWNjdUluZGV4PTAsdGhpcy50aW1lPTAsdGhpcy50aW1lU2NhbGU9MX1fYmluZEFjdGlvbih0LGUpe2NvbnN0IG49dC5fbG9jYWxSb290fHx0aGlzLl9yb290LGk9dC5fY2xpcC50cmFja3Mscj1pLmxlbmd0aCxvPXQuX3Byb3BlcnR5QmluZGluZ3MsYT10Ll9pbnRlcnBvbGFudHMscz1uLnV1aWQsbD10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWU7bGV0IGM9bFtzXTt2b2lkIDA9PT1jJiYoYz17fSxsW3NdPWMpO2ZvcihsZXQgdD0wO3QhPT1yOysrdCl7Y29uc3Qgcj1pW3RdLGw9ci5uYW1lO2xldCB1PWNbbF07aWYodm9pZCAwIT09dSlvW3RdPXU7ZWxzZXtpZih1PW9bdF0sdm9pZCAwIT09dSl7bnVsbD09PXUuX2NhY2hlSW5kZXgmJigrK3UucmVmZXJlbmNlQ291bnQsdGhpcy5fYWRkSW5hY3RpdmVCaW5kaW5nKHUscyxsKSk7Y29udGludWV9dT1uZXcgZTh0KGg4dC5jcmVhdGUobixsLGUmJmUuX3Byb3BlcnR5QmluZGluZ3NbdF0uYmluZGluZy5wYXJzZWRQYXRoKSxyLlZhbHVlVHlwZU5hbWUsci5nZXRWYWx1ZVNpemUoKSksKyt1LnJlZmVyZW5jZUNvdW50LHRoaXMuX2FkZEluYWN0aXZlQmluZGluZyh1LHMsbCksb1t0XT11fWFbdF0ucmVzdWx0QnVmZmVyPXUuYnVmZmVyfX1fYWN0aXZhdGVBY3Rpb24odCl7aWYoIXRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtpZihudWxsPT09dC5fY2FjaGVJbmRleCl7Y29uc3QgZT0odC5fbG9jYWxSb290fHx0aGlzLl9yb290KS51dWlkLG49dC5fY2xpcC51dWlkLGk9dGhpcy5fYWN0aW9uc0J5Q2xpcFtuXTt0aGlzLl9iaW5kQWN0aW9uKHQsaSYmaS5rbm93bkFjdGlvbnNbMF0pLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKHQsbixlKX1jb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT1uLnVzZUNvdW50KysmJih0aGlzLl9sZW5kQmluZGluZyhuKSxuLnNhdmVPcmlnaW5hbFN0YXRlKCkpfXRoaXMuX2xlbmRBY3Rpb24odCl9fV9kZWFjdGl2YXRlQWN0aW9uKHQpe2lmKHRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtjb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT0tLW4udXNlQ291bnQmJihuLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fdGFrZUJhY2tCaW5kaW5nKG4pKX10aGlzLl90YWtlQmFja0FjdGlvbih0KX19X2luaXRNZW1vcnlNYW5hZ2VyKCl7dGhpcy5fYWN0aW9ucz1bXSx0aGlzLl9uQWN0aXZlQWN0aW9ucz0wLHRoaXMuX2FjdGlvbnNCeUNsaXA9e30sdGhpcy5fYmluZGluZ3M9W10sdGhpcy5fbkFjdGl2ZUJpbmRpbmdzPTAsdGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lPXt9LHRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHM9W10sdGhpcy5fbkFjdGl2ZUNvbnRyb2xJbnRlcnBvbGFudHM9MDtjb25zdCB0PXRoaXM7dGhpcy5zdGF0cz17YWN0aW9uczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2FjdGlvbnMubGVuZ3RofSxnZXQgaW5Vc2UoKXtyZXR1cm4gdC5fbkFjdGl2ZUFjdGlvbnN9fSxiaW5kaW5nczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2JpbmRpbmdzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVCaW5kaW5nc319LGNvbnRyb2xJbnRlcnBvbGFudHM6e2dldCB0b3RhbCgpe3JldHVybiB0Ll9jb250cm9sSW50ZXJwb2xhbnRzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVDb250cm9sSW50ZXJwb2xhbnRzfX19fV9pc0FjdGl2ZUFjdGlvbih0KXtjb25zdCBlPXQuX2NhY2hlSW5kZXg7cmV0dXJuIG51bGwhPT1lJiZlPHRoaXMuX25BY3RpdmVBY3Rpb25zfV9hZGRJbmFjdGl2ZUFjdGlvbih0LGUsbil7Y29uc3QgaT10aGlzLl9hY3Rpb25zLHI9dGhpcy5fYWN0aW9uc0J5Q2xpcDtsZXQgbz1yW2VdO2lmKHZvaWQgMD09PW8pbz17a25vd25BY3Rpb25zOlt0XSxhY3Rpb25CeVJvb3Q6e319LHQuX2J5Q2xpcENhY2hlSW5kZXg9MCxyW2VdPW87ZWxzZXtjb25zdCBlPW8ua25vd25BY3Rpb25zO3QuX2J5Q2xpcENhY2hlSW5kZXg9ZS5sZW5ndGgsZS5wdXNoKHQpfXQuX2NhY2hlSW5kZXg9aS5sZW5ndGgsaS5wdXNoKHQpLG8uYWN0aW9uQnlSb290W25dPXR9X3JlbW92ZUluYWN0aXZlQWN0aW9uKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPWVbZS5sZW5ndGgtMV0saT10Ll9jYWNoZUluZGV4O24uX2NhY2hlSW5kZXg9aSxlW2ldPW4sZS5wb3AoKSx0Ll9jYWNoZUluZGV4PW51bGw7Y29uc3Qgcj10Ll9jbGlwLnV1aWQsbz10aGlzLl9hY3Rpb25zQnlDbGlwLGE9b1tyXSxzPWEua25vd25BY3Rpb25zLGw9c1tzLmxlbmd0aC0xXSxjPXQuX2J5Q2xpcENhY2hlSW5kZXg7bC5fYnlDbGlwQ2FjaGVJbmRleD1jLHNbY109bCxzLnBvcCgpLHQuX2J5Q2xpcENhY2hlSW5kZXg9bnVsbCxkZWxldGUgYS5hY3Rpb25CeVJvb3RbKHQuX2xvY2FsUm9vdHx8dGhpcy5fcm9vdCkudXVpZF0sMD09PXMubGVuZ3RoJiZkZWxldGUgb1tyXSx0aGlzLl9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpfV9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpe2NvbnN0IGU9dC5fcHJvcGVydHlCaW5kaW5ncztmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3QhPT1uOysrdCl7Y29uc3Qgbj1lW3RdOzA9PS0tbi5yZWZlcmVuY2VDb3VudCYmdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKG4pfX1fbGVuZEFjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LGk9dGhpcy5fbkFjdGl2ZUFjdGlvbnMrKyxyPWVbaV07dC5fY2FjaGVJbmRleD1pLGVbaV09dCxyLl9jYWNoZUluZGV4PW4sZVtuXT1yfV90YWtlQmFja0FjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LGk9LS10aGlzLl9uQWN0aXZlQWN0aW9ucyxyPWVbaV07dC5fY2FjaGVJbmRleD1pLGVbaV09dCxyLl9jYWNoZUluZGV4PW4sZVtuXT1yfV9hZGRJbmFjdGl2ZUJpbmRpbmcodCxlLG4pe2NvbnN0IGk9dGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lLHI9dGhpcy5fYmluZGluZ3M7bGV0IG89aVtlXTt2b2lkIDA9PT1vJiYobz17fSxpW2VdPW8pLG9bbl09dCx0Ll9jYWNoZUluZGV4PXIubGVuZ3RoLHIucHVzaCh0KX1fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKHQpe2NvbnN0IGU9dGhpcy5fYmluZGluZ3Msbj10LmJpbmRpbmcsaT1uLnJvb3ROb2RlLnV1aWQscj1uLnBhdGgsbz10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWUsYT1vW2ldLHM9ZVtlLmxlbmd0aC0xXSxsPXQuX2NhY2hlSW5kZXg7cy5fY2FjaGVJbmRleD1sLGVbbF09cyxlLnBvcCgpLGRlbGV0ZSBhW3JdLDA9PT1PYmplY3Qua2V5cyhhKS5sZW5ndGgmJmRlbGV0ZSBvW2ldfV9sZW5kQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxpPXRoaXMuX25BY3RpdmVCaW5kaW5ncysrLHI9ZVtpXTt0Ll9jYWNoZUluZGV4PWksZVtpXT10LHIuX2NhY2hlSW5kZXg9bixlW25dPXJ9X3Rha2VCYWNrQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxpPS0tdGhpcy5fbkFjdGl2ZUJpbmRpbmdzLHI9ZVtpXTt0Ll9jYWNoZUluZGV4PWksZVtpXT10LHIuX2NhY2hlSW5kZXg9bixlW25dPXJ9X2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKXtjb25zdCB0PXRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHMsZT10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cysrO2xldCBuPXRbZV07cmV0dXJuIHZvaWQgMD09PW4mJihuPW5ldyBSNnQobmV3IEZsb2F0MzJBcnJheSgyKSxuZXcgRmxvYXQzMkFycmF5KDIpLDEsdGhpcy5fY29udHJvbEludGVycG9sYW50c1Jlc3VsdEJ1ZmZlciksbi5fX2NhY2hlSW5kZXg9ZSx0W2VdPW4pLG59X3Rha2VCYWNrQ29udHJvbEludGVycG9sYW50KHQpe2NvbnN0IGU9dGhpcy5fY29udHJvbEludGVycG9sYW50cyxuPXQuX19jYWNoZUluZGV4LGk9LS10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cyxyPWVbaV07dC5fX2NhY2hlSW5kZXg9aSxlW2ldPXQsci5fX2NhY2hlSW5kZXg9bixlW25dPXJ9Y2xpcEFjdGlvbih0LGUsbil7Y29uc3QgaT1lfHx0aGlzLl9yb290LHI9aS51dWlkO2xldCBvPSJzdHJpbmciPT10eXBlb2YgdD9HNnQuZmluZEJ5TmFtZShpLHQpOnQ7Y29uc3QgYT1udWxsIT09bz9vLnV1aWQ6dCxzPXRoaXMuX2FjdGlvbnNCeUNsaXBbYV07bGV0IGw9bnVsbDtpZih2b2lkIDA9PT1uJiYobj1udWxsIT09bz9vLmJsZW5kTW9kZTpMWnQpLHZvaWQgMCE9PXMpe2NvbnN0IHQ9cy5hY3Rpb25CeVJvb3Rbcl07aWYodm9pZCAwIT09dCYmdC5ibGVuZE1vZGU9PT1uKXJldHVybiB0O2w9cy5rbm93bkFjdGlvbnNbMF0sbnVsbD09PW8mJihvPWwuX2NsaXApfWlmKG51bGw9PT1vKXJldHVybiBudWxsO2NvbnN0IGM9bmV3IHA4dCh0aGlzLG8sZSxuKTtyZXR1cm4gdGhpcy5fYmluZEFjdGlvbihjLGwpLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKGMsYSxyKSxjfWV4aXN0aW5nQWN0aW9uKHQsZSl7Y29uc3Qgbj1lfHx0aGlzLl9yb290LGk9bi51dWlkLHI9InN0cmluZyI9PXR5cGVvZiB0P0c2dC5maW5kQnlOYW1lKG4sdCk6dCxvPXRoaXMuX2FjdGlvbnNCeUNsaXBbcj9yLnV1aWQ6dF07cmV0dXJuIHZvaWQgMCE9PW8mJm8uYWN0aW9uQnlSb290W2ldfHxudWxsfXN0b3BBbGxBY3Rpb24oKXtjb25zdCB0PXRoaXMuX2FjdGlvbnM7Zm9yKGxldCBlPXRoaXMuX25BY3RpdmVBY3Rpb25zLTE7ZT49MDstLWUpdFtlXS5zdG9wKCk7cmV0dXJuIHRoaXN9dXBkYXRlKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPXRoaXMuX25BY3RpdmVBY3Rpb25zLGk9dGhpcy50aW1lKz10Kj10aGlzLnRpbWVTY2FsZSxyPU1hdGguc2lnbih0KSxvPXRoaXMuX2FjY3VJbmRleF49MTtmb3IobGV0IGE9MDthIT09bjsrK2EpZVthXS5fdXBkYXRlKGksdCxyLG8pO2NvbnN0IGE9dGhpcy5fYmluZGluZ3Mscz10aGlzLl9uQWN0aXZlQmluZGluZ3M7Zm9yKGxldCB0PTA7dCE9PXM7Kyt0KWFbdF0uYXBwbHkobyk7cmV0dXJuIHRoaXN9c2V0VGltZSh0KXt0aGlzLnRpbWU9MDtmb3IobGV0IHQ9MDt0PHRoaXMuX2FjdGlvbnMubGVuZ3RoO3QrKyl0aGlzLl9hY3Rpb25zW3RdLnRpbWU9MDtyZXR1cm4gdGhpcy51cGRhdGUodCl9Z2V0Um9vdCgpe3JldHVybiB0aGlzLl9yb290fXVuY2FjaGVDbGlwKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPXQudXVpZCxpPXRoaXMuX2FjdGlvbnNCeUNsaXAscj1pW25dO2lmKHZvaWQgMCE9PXIpe2NvbnN0IHQ9ci5rbm93bkFjdGlvbnM7Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuIT09aTsrK24pe2NvbnN0IGk9dFtuXTt0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKGkpO2NvbnN0IHI9aS5fY2FjaGVJbmRleCxvPWVbZS5sZW5ndGgtMV07aS5fY2FjaGVJbmRleD1udWxsLGkuX2J5Q2xpcENhY2hlSW5kZXg9bnVsbCxvLl9jYWNoZUluZGV4PXIsZVtyXT1vLGUucG9wKCksdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nc0ZvckFjdGlvbihpKX1kZWxldGUgaVtuXX19dW5jYWNoZVJvb3QodCl7Y29uc3QgZT10LnV1aWQsbj10aGlzLl9hY3Rpb25zQnlDbGlwO2Zvcihjb25zdCB0IGluIG4pe2NvbnN0IGk9blt0XS5hY3Rpb25CeVJvb3RbZV07dm9pZCAwIT09aSYmKHRoaXMuX2RlYWN0aXZhdGVBY3Rpb24oaSksdGhpcy5fcmVtb3ZlSW5hY3RpdmVBY3Rpb24oaSkpfWNvbnN0IGk9dGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lW2VdO2lmKHZvaWQgMCE9PWkpZm9yKGNvbnN0IHQgaW4gaSl7Y29uc3QgZT1pW3RdO2UucmVzdG9yZU9yaWdpbmFsU3RhdGUoKSx0aGlzLl9yZW1vdmVJbmFjdGl2ZUJpbmRpbmcoZSl9fXVuY2FjaGVBY3Rpb24odCxlKXtjb25zdCBuPXRoaXMuZXhpc3RpbmdBY3Rpb24odCxlKTtudWxsIT09biYmKHRoaXMuX2RlYWN0aXZhdGVBY3Rpb24obiksdGhpcy5fcmVtb3ZlSW5hY3RpdmVBY3Rpb24obikpfX1mOHQucHJvdG90eXBlLl9jb250cm9sSW50ZXJwb2xhbnRzUmVzdWx0QnVmZmVyPW5ldyBGbG9hdDMyQXJyYXkoMSk7Y2xhc3MgbTh0e2NvbnN0cnVjdG9yKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKGNvbnNvbGUud2FybigiVEhSRUUuVW5pZm9ybTogVHlwZSBwYXJhbWV0ZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZC4iKSx0PWFyZ3VtZW50c1sxXSksdGhpcy52YWx1ZT10fWNsb25lKCl7cmV0dXJuIG5ldyBtOHQodm9pZCAwPT09dGhpcy52YWx1ZS5jbG9uZT90aGlzLnZhbHVlOnRoaXMudmFsdWUuY2xvbmUoKSl9fWNsYXNzIGc4dCBleHRlbmRzICQ1dHtjb25zdHJ1Y3Rvcih0LGUsbj0xKXtzdXBlcih0LGUpLHRoaXMubWVzaFBlckF0dHJpYnV0ZT1ufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tZXNoUGVyQXR0cmlidXRlPXQubWVzaFBlckF0dHJpYnV0ZSx0aGlzfWNsb25lKHQpe2NvbnN0IGU9c3VwZXIuY2xvbmUodCk7cmV0dXJuIGUubWVzaFBlckF0dHJpYnV0ZT10aGlzLm1lc2hQZXJBdHRyaWJ1dGUsZX10b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMCxlLm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLGV9fWc4dC5wcm90b3R5cGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMDtjbGFzcyBfOHR7Y29uc3RydWN0b3IodCxlLG4saSxyKXt0aGlzLmJ1ZmZlcj10LHRoaXMudHlwZT1lLHRoaXMuaXRlbVNpemU9bix0aGlzLmVsZW1lbnRTaXplPWksdGhpcy5jb3VudD1yLHRoaXMudmVyc2lvbj0wfXNldCBuZWVkc1VwZGF0ZSh0KXshMD09PXQmJnRoaXMudmVyc2lvbisrfXNldEJ1ZmZlcih0KXtyZXR1cm4gdGhpcy5idWZmZXI9dCx0aGlzfXNldFR5cGUodCxlKXtyZXR1cm4gdGhpcy50eXBlPXQsdGhpcy5lbGVtZW50U2l6ZT1lLHRoaXN9c2V0SXRlbVNpemUodCl7cmV0dXJuIHRoaXMuaXRlbVNpemU9dCx0aGlzfXNldENvdW50KHQpe3JldHVybiB0aGlzLmNvdW50PXQsdGhpc319ZnVuY3Rpb24geTh0KHQsZSl7cmV0dXJuIHQuZGlzdGFuY2UtZS5kaXN0YW5jZX1mdW5jdGlvbiB2OHQodCxlLG4saSl7aWYodC5sYXllcnMudGVzdChlLmxheWVycykmJnQucmF5Y2FzdChlLG4pLCEwPT09aSl7Y29uc3QgaT10LmNoaWxkcmVuO2ZvcihsZXQgdD0wLHI9aS5sZW5ndGg7dDxyO3QrKyl2OHQoaVt0XSxlLG4sITApfX1fOHQucHJvdG90eXBlLmlzR0xCdWZmZXJBdHRyaWJ1dGU9ITA7Y2xhc3MgYjh0e2NvbnN0cnVjdG9yKHQ9MSxlPTAsbj0wKXtyZXR1cm4gdGhpcy5yYWRpdXM9dCx0aGlzLnBoaT1lLHRoaXMudGhldGE9bix0aGlzfXNldCh0LGUsbil7cmV0dXJuIHRoaXMucmFkaXVzPXQsdGhpcy5waGk9ZSx0aGlzLnRoZXRhPW4sdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLnJhZGl1cz10LnJhZGl1cyx0aGlzLnBoaT10LnBoaSx0aGlzLnRoZXRhPXQudGhldGEsdGhpc31tYWtlU2FmZSgpe2NvbnN0IHQ9MWUtNjtyZXR1cm4gdGhpcy5waGk9TWF0aC5tYXgodCxNYXRoLm1pbihNYXRoLlBJLXQsdGhpcy5waGkpKSx0aGlzfXNldEZyb21WZWN0b3IzKHQpe3JldHVybiB0aGlzLnNldEZyb21DYXJ0ZXNpYW5Db29yZHModC54LHQueSx0LnopfXNldEZyb21DYXJ0ZXNpYW5Db29yZHModCxlLG4pe3JldHVybiB0aGlzLnJhZGl1cz1NYXRoLnNxcnQodCp0K2UqZStuKm4pLDA9PT10aGlzLnJhZGl1cz8odGhpcy50aGV0YT0wLHRoaXMucGhpPTApOih0aGlzLnRoZXRhPU1hdGguYXRhbjIodCxuKSx0aGlzLnBoaT1NYXRoLmFjb3MoJFp0KGUvdGhpcy5yYWRpdXMsLTEsMSkpKSx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX1jb25zdCB4OHQ9bmV3IG1KdDtjbGFzcyB3OHR7Y29uc3RydWN0b3IodD1uZXcgbUp0KDEvMCwxLzApLGU9bmV3IG1KdCgtMS8wLC0xLzApKXt0aGlzLm1pbj10LHRoaXMubWF4PWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMubWluLmNvcHkodCksdGhpcy5tYXguY29weShlKSx0aGlzfXNldEZyb21Qb2ludHModCl7dGhpcy5tYWtlRW1wdHkoKTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspdGhpcy5leHBhbmRCeVBvaW50KHRbZV0pO3JldHVybiB0aGlzfXNldEZyb21DZW50ZXJBbmRTaXplKHQsZSl7Y29uc3Qgbj14OHQuY29weShlKS5tdWx0aXBseVNjYWxhciguNSk7cmV0dXJuIHRoaXMubWluLmNvcHkodCkuc3ViKG4pLHRoaXMubWF4LmNvcHkodCkuYWRkKG4pLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy5taW4uY29weSh0Lm1pbiksdGhpcy5tYXguY29weSh0Lm1heCksdGhpc31tYWtlRW1wdHkoKXtyZXR1cm4gdGhpcy5taW4ueD10aGlzLm1pbi55PTEvMCx0aGlzLm1heC54PXRoaXMubWF4Lnk9LTEvMCx0aGlzfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5tYXgueDx0aGlzLm1pbi54fHx0aGlzLm1heC55PHRoaXMubWluLnl9Z2V0Q2VudGVyKHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90LnNldCgwLDApOnQuYWRkVmVjdG9ycyh0aGlzLm1pbix0aGlzLm1heCkubXVsdGlwbHlTY2FsYXIoLjUpfWdldFNpemUodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3Quc2V0KDAsMCk6dC5zdWJWZWN0b3JzKHRoaXMubWF4LHRoaXMubWluKX1leHBhbmRCeVBvaW50KHQpe3JldHVybiB0aGlzLm1pbi5taW4odCksdGhpcy5tYXgubWF4KHQpLHRoaXN9ZXhwYW5kQnlWZWN0b3IodCl7cmV0dXJuIHRoaXMubWluLnN1Yih0KSx0aGlzLm1heC5hZGQodCksdGhpc31leHBhbmRCeVNjYWxhcih0KXtyZXR1cm4gdGhpcy5taW4uYWRkU2NhbGFyKC10KSx0aGlzLm1heC5hZGRTY2FsYXIodCksdGhpc31jb250YWluc1BvaW50KHQpe3JldHVybiEodC54PHRoaXMubWluLnh8fHQueD50aGlzLm1heC54fHx0Lnk8dGhpcy5taW4ueXx8dC55PnRoaXMubWF4LnkpfWNvbnRhaW5zQm94KHQpe3JldHVybiB0aGlzLm1pbi54PD10Lm1pbi54JiZ0Lm1heC54PD10aGlzLm1heC54JiZ0aGlzLm1pbi55PD10Lm1pbi55JiZ0Lm1heC55PD10aGlzLm1heC55fWdldFBhcmFtZXRlcih0LGUpe3JldHVybiBlLnNldCgodC54LXRoaXMubWluLngpLyh0aGlzLm1heC54LXRoaXMubWluLngpLCh0LnktdGhpcy5taW4ueSkvKHRoaXMubWF4LnktdGhpcy5taW4ueSkpfWludGVyc2VjdHNCb3godCl7cmV0dXJuISh0Lm1heC54PHRoaXMubWluLnh8fHQubWluLng+dGhpcy5tYXgueHx8dC5tYXgueTx0aGlzLm1pbi55fHx0Lm1pbi55PnRoaXMubWF4LnkpfWNsYW1wUG9pbnQodCxlKXtyZXR1cm4gZS5jb3B5KHQpLmNsYW1wKHRoaXMubWluLHRoaXMubWF4KX1kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIHg4dC5jb3B5KHQpLmNsYW1wKHRoaXMubWluLHRoaXMubWF4KS5zdWIodCkubGVuZ3RoKCl9aW50ZXJzZWN0KHQpe3JldHVybiB0aGlzLm1pbi5tYXgodC5taW4pLHRoaXMubWF4Lm1pbih0Lm1heCksdGhpc311bmlvbih0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQubWluKSx0aGlzLm1heC5tYXgodC5tYXgpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLm1pbi5hZGQodCksdGhpcy5tYXguYWRkKHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm1pbi5lcXVhbHModGhpcy5taW4pJiZ0Lm1heC5lcXVhbHModGhpcy5tYXgpfX13OHQucHJvdG90eXBlLmlzQm94Mj0hMDtjb25zdCBTOHQ9bmV3IENKdCxNOHQ9bmV3IENKdDtjbGFzcyBFOHR7Y29uc3RydWN0b3IodD1uZXcgQ0p0LGU9bmV3IENKdCl7dGhpcy5zdGFydD10LHRoaXMuZW5kPWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMuc3RhcnQuY29weSh0KSx0aGlzLmVuZC5jb3B5KGUpLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5zdGFydC5jb3B5KHQuc3RhcnQpLHRoaXMuZW5kLmNvcHkodC5lbmQpLHRoaXN9Z2V0Q2VudGVyKHQpe3JldHVybiB0LmFkZFZlY3RvcnModGhpcy5zdGFydCx0aGlzLmVuZCkubXVsdGlwbHlTY2FsYXIoLjUpfWRlbHRhKHQpe3JldHVybiB0LnN1YlZlY3RvcnModGhpcy5lbmQsdGhpcy5zdGFydCl9ZGlzdGFuY2VTcSgpe3JldHVybiB0aGlzLnN0YXJ0LmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuZW5kKX1kaXN0YW5jZSgpe3JldHVybiB0aGlzLnN0YXJ0LmRpc3RhbmNlVG8odGhpcy5lbmQpfWF0KHQsZSl7cmV0dXJuIHRoaXMuZGVsdGEoZSkubXVsdGlwbHlTY2FsYXIodCkuYWRkKHRoaXMuc3RhcnQpfWNsb3Nlc3RQb2ludFRvUG9pbnRQYXJhbWV0ZXIodCxlKXtTOHQuc3ViVmVjdG9ycyh0LHRoaXMuc3RhcnQpLE04dC5zdWJWZWN0b3JzKHRoaXMuZW5kLHRoaXMuc3RhcnQpO2NvbnN0IG49TTh0LmRvdChNOHQpO2xldCBpPU04dC5kb3QoUzh0KS9uO3JldHVybiBlJiYoaT0kWnQoaSwwLDEpKSxpfWNsb3Nlc3RQb2ludFRvUG9pbnQodCxlLG4pe2NvbnN0IGk9dGhpcy5jbG9zZXN0UG9pbnRUb1BvaW50UGFyYW1ldGVyKHQsZSk7cmV0dXJuIHRoaXMuZGVsdGEobikubXVsdGlwbHlTY2FsYXIoaSkuYWRkKHRoaXMuc3RhcnQpfWFwcGx5TWF0cml4NCh0KXtyZXR1cm4gdGhpcy5zdGFydC5hcHBseU1hdHJpeDQodCksdGhpcy5lbmQuYXBwbHlNYXRyaXg0KHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0LnN0YXJ0LmVxdWFscyh0aGlzLnN0YXJ0KSYmdC5lbmQuZXF1YWxzKHRoaXMuZW5kKX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19Y2xhc3MgVDh0IGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5tYXRlcmlhbD10LHRoaXMucmVuZGVyPWZ1bmN0aW9uKCl7fSx0aGlzLmhhc1Bvc2l0aW9ucz0hMSx0aGlzLmhhc05vcm1hbHM9ITEsdGhpcy5oYXNDb2xvcnM9ITEsdGhpcy5oYXNVdnM9ITEsdGhpcy5wb3NpdGlvbkFycmF5PW51bGwsdGhpcy5ub3JtYWxBcnJheT1udWxsLHRoaXMuY29sb3JBcnJheT1udWxsLHRoaXMudXZBcnJheT1udWxsLHRoaXMuY291bnQ9MH19VDh0LnByb3RvdHlwZS5pc0ltbWVkaWF0ZVJlbmRlck9iamVjdD0hMDtjb25zdCBDOHQ9bmV3IENKdCxBOHQ9bmV3IENKdCxrOHQ9bmV3IHJRdCxMOHQ9bmV3IHJRdDtjbGFzcyBQOHQgZXh0ZW5kcyBVM3R7Y29uc3RydWN0b3IodCl7Y29uc3QgZT1OOHQodCksbj1uZXcgYjF0LGk9W10scj1bXSxvPW5ldyAkUXQoMCwwLDEpLGE9bmV3ICRRdCgwLDEsMCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XTtuLnBhcmVudCYmbi5wYXJlbnQuaXNCb25lJiYoaS5wdXNoKDAsMCwwKSxpLnB1c2goMCwwLDApLHIucHVzaChvLnIsby5nLG8uYiksci5wdXNoKGEucixhLmcsYS5iKSl9bi5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KGksMykpLG4uc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IGwxdChyLDMpKSxzdXBlcihuLG5ldyBJM3Qoe3ZlcnRleENvbG9yczohMCxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMSx0b25lTWFwcGVkOiExLHRyYW5zcGFyZW50OiEwfSkpLHRoaXMudHlwZT0iU2tlbGV0b25IZWxwZXIiLHRoaXMuaXNTa2VsZXRvbkhlbHBlcj0hMCx0aGlzLnJvb3Q9dCx0aGlzLmJvbmVzPWUsdGhpcy5tYXRyaXg9dC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITF9dXBkYXRlTWF0cml4V29ybGQodCl7Y29uc3QgZT10aGlzLmJvbmVzLG49dGhpcy5nZW9tZXRyeSxpPW4uZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpO0w4dC5jb3B5KHRoaXMucm9vdC5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk7Zm9yKGxldCB0PTAsbj0wO3Q8ZS5sZW5ndGg7dCsrKXtjb25zdCByPWVbdF07ci5wYXJlbnQmJnIucGFyZW50LmlzQm9uZSYmKGs4dC5tdWx0aXBseU1hdHJpY2VzKEw4dCxyLm1hdHJpeFdvcmxkKSxBOHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGs4dCksaS5zZXRYWVoobixBOHQueCxBOHQueSxBOHQueiksazh0Lm11bHRpcGx5TWF0cmljZXMoTDh0LHIucGFyZW50Lm1hdHJpeFdvcmxkKSxBOHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGs4dCksaS5zZXRYWVoobisxLEE4dC54LEE4dC55LEE4dC56KSxuKz0yKX1uLmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKS5uZWVkc1VwZGF0ZT0hMCxzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KX19ZnVuY3Rpb24gTjh0KHQpe2NvbnN0IGU9W107dCYmdC5pc0JvbmUmJmUucHVzaCh0KTtmb3IobGV0IG49MDtuPHQuY2hpbGRyZW4ubGVuZ3RoO24rKyllLnB1c2guYXBwbHkoZSxOOHQodC5jaGlsZHJlbltuXSkpO3JldHVybiBlfWNvbnN0IEk4dD1uZXcgQ0p0LFI4dD1uZXcgJFF0LE84dD1uZXcgJFF0O2NsYXNzIHo4dCBleHRlbmRzIFUzdHtjb25zdHJ1Y3Rvcih0PTEwLGU9MTAsbj00NDczOTI0LGk9ODk0Nzg0OCl7bj1uZXcgJFF0KG4pLGk9bmV3ICRRdChpKTtjb25zdCByPWUvMixvPXQvZSxhPXQvMixzPVtdLGw9W107Zm9yKGxldCB0PTAsYz0wLHU9LWE7dDw9ZTt0KyssdSs9byl7cy5wdXNoKC1hLDAsdSxhLDAsdSkscy5wdXNoKHUsMCwtYSx1LDAsYSk7Y29uc3QgZT10PT09cj9uOmk7ZS50b0FycmF5KGwsYyksYys9MyxlLnRvQXJyYXkobCxjKSxjKz0zLGUudG9BcnJheShsLGMpLGMrPTMsZS50b0FycmF5KGwsYyksYys9M31jb25zdCBjPW5ldyBiMXQ7Yy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KHMsMykpLGMuc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IGwxdChsLDMpKSxzdXBlcihjLG5ldyBJM3Qoe3ZlcnRleENvbG9yczohMCx0b25lTWFwcGVkOiExfSkpLHRoaXMudHlwZT0iR3JpZEhlbHBlciJ9fWNvbnN0IEQ4dD1uZXcgQ0p0LEI4dD1uZXcgQ0p0LEg4dD1uZXcgQ0p0LEY4dD1uZXcgQ0p0LFY4dD1uZXcgVzF0O2Z1bmN0aW9uIFU4dCh0LGUsbixpLHIsbyxhKXtGOHQuc2V0KHIsbyxhKS51bnByb2plY3QoaSk7Y29uc3Qgcz1lW3RdO2lmKHZvaWQgMCE9PXMpe2NvbnN0IHQ9bi5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIik7Zm9yKGxldCBlPTAsbj1zLmxlbmd0aDtlPG47ZSsrKXQuc2V0WFlaKHNbZV0sRjh0LngsRjh0LnksRjh0LnopfX1jb25zdCBqOHQ9bmV3IExKdDtjbGFzcyBHOHQgZXh0ZW5kcyBVM3R7Y29uc3RydWN0b3IodCxlPTE2Nzc2OTYwKXtjb25zdCBuPW5ldyBVaW50MTZBcnJheShbMCwxLDEsMiwyLDMsMywwLDQsNSw1LDYsNiw3LDcsNCwwLDQsMSw1LDIsNiwzLDddKSxpPW5ldyBGbG9hdDMyQXJyYXkoMjQpLHI9bmV3IGIxdDtyLnNldEluZGV4KG5ldyBRUXQobiwxKSksci5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgUVF0KGksMykpLHN1cGVyKHIsbmV3IEkzdCh7Y29sb3I6ZSx0b25lTWFwcGVkOiExfSkpLHRoaXMub2JqZWN0PXQsdGhpcy50eXBlPSJCb3hIZWxwZXIiLHRoaXMubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLnVwZGF0ZSgpfXVwZGF0ZSh0KXtpZih2b2lkIDAhPT10JiZjb25zb2xlLndhcm4oIlRIUkVFLkJveEhlbHBlcjogLnVwZGF0ZSgpIGhhcyBubyBsb25nZXIgYXJndW1lbnRzLiIpLHZvaWQgMCE9PXRoaXMub2JqZWN0JiZqOHQuc2V0RnJvbU9iamVjdCh0aGlzLm9iamVjdCksajh0LmlzRW1wdHkoKSlyZXR1cm47Y29uc3QgZT1qOHQubWluLG49ajh0Lm1heCxpPXRoaXMuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbixyPWkuYXJyYXk7clswXT1uLngsclsxXT1uLnksclsyXT1uLnosclszXT1lLngscls0XT1uLnkscls1XT1uLnoscls2XT1lLngscls3XT1lLnkscls4XT1uLnoscls5XT1uLngsclsxMF09ZS55LHJbMTFdPW4ueixyWzEyXT1uLngsclsxM109bi55LHJbMTRdPWUueixyWzE1XT1lLngsclsxNl09bi55LHJbMTddPWUueixyWzE4XT1lLngsclsxOV09ZS55LHJbMjBdPWUueixyWzIxXT1uLngsclsyMl09ZS55LHJbMjNdPWUueixpLm5lZWRzVXBkYXRlPSEwLHRoaXMuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCl9c2V0RnJvbU9iamVjdCh0KXtyZXR1cm4gdGhpcy5vYmplY3Q9dCx0aGlzLnVwZGF0ZSgpLHRoaXN9Y29weSh0KXtyZXR1cm4gVTN0LnByb3RvdHlwZS5jb3B5LmNhbGwodGhpcyx0KSx0aGlzLm9iamVjdD10Lm9iamVjdCx0aGlzfX1jb25zdCBXOHQ9bmV3IENKdDtsZXQgcTh0LFk4dDtjbGFzcyBYOHQgZXh0ZW5kcyBVM3R7Y29uc3RydWN0b3IodD0xKXtjb25zdCBlPVswLDAsMCx0LDAsMCwwLDAsMCwwLHQsMCwwLDAsMCwwLDAsdF0sbj1uZXcgYjF0O24uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdChlLDMpKSxuLnNldEF0dHJpYnV0ZSgiY29sb3IiLG5ldyBsMXQoWzEsMCwwLDEsLjYsMCwwLDEsMCwuNiwxLDAsMCwwLDEsMCwuNiwxXSwzKSksc3VwZXIobixuZXcgSTN0KHt2ZXJ0ZXhDb2xvcnM6ITAsdG9uZU1hcHBlZDohMX0pKSx0aGlzLnR5cGU9IkF4ZXNIZWxwZXIifXNldENvbG9ycyh0LGUsbil7Y29uc3QgaT1uZXcgJFF0LHI9dGhpcy5nZW9tZXRyeS5hdHRyaWJ1dGVzLmNvbG9yLmFycmF5O3JldHVybiBpLnNldCh0KSxpLnRvQXJyYXkociwwKSxpLnRvQXJyYXkociwzKSxpLnNldChlKSxpLnRvQXJyYXkociw2KSxpLnRvQXJyYXkociw5KSxpLnNldChuKSxpLnRvQXJyYXkociwxMiksaS50b0FycmF5KHIsMTUpLHRoaXMuZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvci5uZWVkc1VwZGF0ZT0hMCx0aGlzfWRpc3Bvc2UoKXt0aGlzLmdlb21ldHJ5LmRpc3Bvc2UoKSx0aGlzLm1hdGVyaWFsLmRpc3Bvc2UoKX19Y29uc3QgJDh0PW5ldyBGbG9hdDMyQXJyYXkoMSksSzh0PW5ldyBJbnQzMkFycmF5KCQ4dC5idWZmZXIpO2g0dC5jcmVhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS5sb2coIlRIUkVFLkN1cnZlLmNyZWF0ZSgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQiKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGg0dC5wcm90b3R5cGUpLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQsdC5wcm90b3R5cGUuZ2V0UG9pbnQ9ZSx0fSxpOXQucHJvdG90eXBlLmZyb21Qb2ludHM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUGF0aDogLmZyb21Qb2ludHMoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tUG9pbnRzKCkuIiksdGhpcy5zZXRGcm9tUG9pbnRzKHQpfSx6OHQucHJvdG90eXBlLnNldENvbG9ycz1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkdyaWRIZWxwZXI6IHNldENvbG9ycygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHBhc3MgdGhlbSBpbiB0aGUgY29uc3RydWN0b3IgaW5zdGVhZC4iKX0sUDh0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Ta2VsZXRvbkhlbHBlcjogdXBkYXRlKCkgbm8gbG9uZ2VyIG5lZWRzIHRvIGJlIGNhbGxlZC4iKX0sJDZ0LnByb3RvdHlwZS5leHRyYWN0VXJsQmFzZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Mb2FkZXI6IC5leHRyYWN0VXJsQmFzZSgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBUSFJFRS5Mb2FkZXJVdGlscy5leHRyYWN0VXJsQmFzZSgpIGluc3RlYWQuIiksRTl0LmV4dHJhY3RVcmxCYXNlKHQpfSwkNnQuSGFuZGxlcnM9e2FkZDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkxvYWRlcjogSGFuZGxlcnMuYWRkKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIExvYWRpbmdNYW5hZ2VyLmFkZEhhbmRsZXIoKSBpbnN0ZWFkLiIpfSxnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Mb2FkZXI6IEhhbmRsZXJzLmdldCgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBMb2FkaW5nTWFuYWdlci5nZXRIYW5kbGVyKCkgaW5zdGVhZC4iKX19LHc4dC5wcm90b3R5cGUuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDI6IC5jZW50ZXIoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRDZW50ZXIoKS4iKSx0aGlzLmdldENlbnRlcih0KX0sdzh0LnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDI6IC5lbXB0eSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmlzRW1wdHkoKS4iKSx0aGlzLmlzRW1wdHkoKX0sdzh0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvbkJveD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gyOiAuaXNJbnRlcnNlY3Rpb25Cb3goKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzQm94KCkuIiksdGhpcy5pbnRlcnNlY3RzQm94KHQpfSx3OHQucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MjogLnNpemUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRTaXplKCkuIiksdGhpcy5nZXRTaXplKHQpfSxMSnQucHJvdG90eXBlLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuY2VudGVyKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Q2VudGVyKCkuIiksdGhpcy5nZXRDZW50ZXIodCl9LExKdC5wcm90b3R5cGUuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuZW1wdHkoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pc0VtcHR5KCkuIiksdGhpcy5pc0VtcHR5KCl9LExKdC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25Cb3g9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmlzSW50ZXJzZWN0aW9uQm94KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0JveCgpLiIpLHRoaXMuaW50ZXJzZWN0c0JveCh0KX0sTEp0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblNwaGVyZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuaXNJbnRlcnNlY3Rpb25TcGhlcmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzU3BoZXJlKCkuIiksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKHQpfSxMSnQucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLnNpemUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRTaXplKCkuIiksdGhpcy5nZXRTaXplKHQpfSwkSnQucHJvdG90eXBlLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU3BoZXJlOiAuZW1wdHkoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pc0VtcHR5KCkuIiksdGhpcy5pc0VtcHR5KCl9LGkwdC5wcm90b3R5cGUuc2V0RnJvbU1hdHJpeD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5GcnVzdHVtOiAuc2V0RnJvbU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEZyb21Qcm9qZWN0aW9uTWF0cml4KCkuIiksdGhpcy5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCh0KX0sRTh0LnByb3RvdHlwZS5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTGluZTM6IC5jZW50ZXIoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRDZW50ZXIoKS4iKSx0aGlzLmdldENlbnRlcih0KX0sZ0p0LnByb3RvdHlwZS5mbGF0dGVuVG9BcnJheU9mZnNldD1mdW5jdGlvbih0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDM6IC5mbGF0dGVuVG9BcnJheU9mZnNldCgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAudG9BcnJheSgpIGluc3RlYWQuIiksdGhpcy50b0FycmF5KHQsZSl9LGdKdC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDM6IC5tdWx0aXBseVZlY3RvcjMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4MyggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4Myh0aGlzKX0sZ0p0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDM6IC5tdWx0aXBseVZlY3RvcjNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LGdKdC5wcm90b3R5cGUuYXBwbHlUb0J1ZmZlckF0dHJpYnV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAuYXBwbHlUb0J1ZmZlckF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBhdHRyaWJ1dGUuYXBwbHlNYXRyaXgzKCBtYXRyaXggKSBpbnN0ZWFkLiIpLHQuYXBwbHlNYXRyaXgzKHRoaXMpfSxnSnQucHJvdG90eXBlLmFwcGx5VG9WZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXgzOiAuYXBwbHlUb1ZlY3RvcjNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LGdKdC5wcm90b3R5cGUuZ2V0SW52ZXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAuZ2V0SW52ZXJzZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBtYXRyaXhJbnYuY29weSggbWF0cml4ICkuaW52ZXJ0KCk7IGluc3RlYWQuIiksdGhpcy5jb3B5KHQpLmludmVydCgpfSxyUXQucHJvdG90eXBlLmV4dHJhY3RQb3NpdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZXh0cmFjdFBvc2l0aW9uKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuY29weVBvc2l0aW9uKCkuIiksdGhpcy5jb3B5UG9zaXRpb24odCl9LHJRdC5wcm90b3R5cGUuZmxhdHRlblRvQXJyYXlPZmZzZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZmxhdHRlblRvQXJyYXlPZmZzZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnRvQXJyYXkoKSBpbnN0ZWFkLiIpLHRoaXMudG9BcnJheSh0LGUpfSxyUXQucHJvdG90eXBlLmdldFBvc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmdldFBvc2l0aW9uKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFZlY3RvcjMuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBtYXRyaXggKSBpbnN0ZWFkLiIpLChuZXcgQ0p0KS5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMyl9LHJRdC5wcm90b3R5cGUuc2V0Um90YXRpb25Gcm9tUXVhdGVybmlvbj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuc2V0Um90YXRpb25Gcm9tUXVhdGVybmlvbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKCkuIiksdGhpcy5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KX0sclF0LnByb3RvdHlwZS5tdWx0aXBseVRvQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseVRvQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyUXQucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDQodGhpcyl9LHJRdC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3I0PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseVZlY3RvcjQoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4NCggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4NCh0aGlzKX0sclF0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseVZlY3RvcjNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LHJRdC5wcm90b3R5cGUucm90YXRlQXhpcz1mdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVBeGlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFZlY3RvcjMudHJhbnNmb3JtRGlyZWN0aW9uKCBtYXRyaXggKSBpbnN0ZWFkLiIpLHQudHJhbnNmb3JtRGlyZWN0aW9uKHRoaXMpfSxyUXQucHJvdG90eXBlLmNyb3NzVmVjdG9yPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5jcm9zc1ZlY3RvcigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB2ZWN0b3IuYXBwbHlNYXRyaXg0KCBtYXRyaXggKSBpbnN0ZWFkLiIpLHQuYXBwbHlNYXRyaXg0KHRoaXMpfSxyUXQucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC50cmFuc2xhdGUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyUXQucHJvdG90eXBlLnJvdGF0ZVg9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlWCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LHJRdC5wcm90b3R5cGUucm90YXRlWT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVZKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sclF0LnByb3RvdHlwZS5yb3RhdGVaPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLnJvdGF0ZVooKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyUXQucHJvdG90eXBlLnJvdGF0ZUJ5QXhpcz1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVCeUF4aXMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyUXQucHJvdG90eXBlLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYXR0cmlidXRlLmFwcGx5TWF0cml4NCggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4NCh0aGlzKX0sclF0LnByb3RvdHlwZS5hcHBseVRvVmVjdG9yM0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLmFwcGx5VG9WZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyUXQucHJvdG90eXBlLm1ha2VGcnVzdHVtPWZ1bmN0aW9uKHQsZSxuLGkscixvKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubWFrZUZydXN0dW0oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLm1ha2VQZXJzcGVjdGl2ZSggbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tLCBuZWFyLCBmYXIgKSBpbnN0ZWFkLiIpLHRoaXMubWFrZVBlcnNwZWN0aXZlKHQsZSxpLG4scixvKX0sclF0LnByb3RvdHlwZS5nZXRJbnZlcnNlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5nZXRJbnZlcnNlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG1hdHJpeEludi5jb3B5KCBtYXRyaXggKS5pbnZlcnQoKTsgaW5zdGVhZC4iKSx0aGlzLmNvcHkodCkuaW52ZXJ0KCl9LHQwdC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25MaW5lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlBsYW5lOiAuaXNJbnRlcnNlY3Rpb25MaW5lKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0xpbmUoKS4iKSx0aGlzLmludGVyc2VjdHNMaW5lKHQpfSxUSnQucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIGlzIG5vdyB2ZWN0b3IuYXBwbHlRdWF0ZXJuaW9uKCBxdWF0ZXJuaW9uICkgaW5zdGVhZC4iKSx0LmFwcGx5UXVhdGVybmlvbih0aGlzKX0sVEp0LnByb3RvdHlwZS5pbnZlcnNlPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLmludmVyc2UoKSBoYXMgYmVlbiByZW5hbWVkIHRvIGludmVydCgpLiIpLHRoaXMuaW52ZXJ0KCl9LGlRdC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25Cb3g9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUmF5OiAuaXNJbnRlcnNlY3Rpb25Cb3goKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzQm94KCkuIiksdGhpcy5pbnRlcnNlY3RzQm94KHQpfSxpUXQucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uUGxhbmU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUmF5OiAuaXNJbnRlcnNlY3Rpb25QbGFuZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNQbGFuZSgpLiIpLHRoaXMuaW50ZXJzZWN0c1BsYW5lKHQpfSxpUXQucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uU3BoZXJlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uU3BoZXJlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c1NwaGVyZSgpLiIpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZSh0KX0sRlF0LnByb3RvdHlwZS5hcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5hcmVhKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0QXJlYSgpLiIpLHRoaXMuZ2V0QXJlYSgpfSxGUXQucHJvdG90eXBlLmJhcnljb29yZEZyb21Qb2ludD1mdW5jdGlvbih0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYmFyeWNvb3JkRnJvbVBvaW50KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0QmFyeWNvb3JkKCkuIiksdGhpcy5nZXRCYXJ5Y29vcmQodCxlKX0sRlF0LnByb3RvdHlwZS5taWRwb2ludD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm1pZHBvaW50KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0TWlkcG9pbnQoKS4iKSx0aGlzLmdldE1pZHBvaW50KHQpfSxGUXQucHJvdG90eXBlbm9ybWFsPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAubm9ybWFsKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Tm9ybWFsKCkuIiksdGhpcy5nZXROb3JtYWwodCl9LEZRdC5wcm90b3R5cGUucGxhbmU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5wbGFuZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldFBsYW5lKCkuIiksdGhpcy5nZXRQbGFuZSh0KX0sRlF0LmJhcnljb29yZEZyb21Qb2ludD1mdW5jdGlvbih0LGUsbixpLHIpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYmFyeWNvb3JkRnJvbVBvaW50KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0QmFyeWNvb3JkKCkuIiksRlF0LmdldEJhcnljb29yZCh0LGUsbixpLHIpfSxGUXQubm9ybWFsPWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAubm9ybWFsKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Tm9ybWFsKCkuIiksRlF0LmdldE5vcm1hbCh0LGUsbixpKX0scjl0LnByb3RvdHlwZS5leHRyYWN0QWxsUG9pbnRzPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNoYXBlOiAuZXh0cmFjdEFsbFBvaW50cygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAuZXh0cmFjdFBvaW50cygpIGluc3RlYWQuIiksdGhpcy5leHRyYWN0UG9pbnRzKHQpfSxyOXQucHJvdG90eXBlLmV4dHJ1ZGU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhcGU6IC5leHRydWRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEV4dHJ1ZGVHZW9tZXRyeSgpIGluc3RlYWQuIiksbmV3IHI2dCh0aGlzLHQpfSxyOXQucHJvdG90eXBlLm1ha2VHZW9tZXRyeT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFwZTogLm1ha2VHZW9tZXRyeSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBTaGFwZUdlb21ldHJ5KCkgaW5zdGVhZC4iKSxuZXcgaDZ0KHRoaXMsdCl9LG1KdC5wcm90b3R5cGUuZnJvbUF0dHJpYnV0ZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLmZyb21BdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKX0sbUp0LnByb3RvdHlwZS5kaXN0YW5jZVRvTWFuaGF0dGFuPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5kaXN0YW5jZVRvTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuRGlzdGFuY2VUbygpLiIpLHRoaXMubWFuaGF0dGFuRGlzdGFuY2VUbyh0KX0sbUp0LnByb3RvdHlwZS5sZW5ndGhNYW5oYXR0YW49ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAubGVuZ3RoTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuTGVuZ3RoKCkuIiksdGhpcy5tYW5oYXR0YW5MZW5ndGgoKX0sQ0p0LnByb3RvdHlwZS5zZXRFdWxlckZyb21Sb3RhdGlvbk1hdHJpeD1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlZlY3RvcjM6IC5zZXRFdWxlckZyb21Sb3RhdGlvbk1hdHJpeCgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBFdWxlci5zZXRGcm9tUm90YXRpb25NYXRyaXgoKSBpbnN0ZWFkLiIpfSxDSnQucHJvdG90eXBlLnNldEV1bGVyRnJvbVF1YXRlcm5pb249ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuc2V0RXVsZXJGcm9tUXVhdGVybmlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBFdWxlci5zZXRGcm9tUXVhdGVybmlvbigpIGluc3RlYWQuIil9LENKdC5wcm90b3R5cGUuZ2V0UG9zaXRpb25Gcm9tTWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRQb3NpdGlvbkZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4UG9zaXRpb24oKS4iKSx0aGlzLnNldEZyb21NYXRyaXhQb3NpdGlvbih0KX0sQ0p0LnByb3RvdHlwZS5nZXRTY2FsZUZyb21NYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmdldFNjYWxlRnJvbU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEZyb21NYXRyaXhTY2FsZSgpLiIpLHRoaXMuc2V0RnJvbU1hdHJpeFNjYWxlKHQpfSxDSnQucHJvdG90eXBlLmdldENvbHVtbkZyb21NYXRyaXg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuZ2V0Q29sdW1uRnJvbU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEZyb21NYXRyaXhDb2x1bW4oKS4iKSx0aGlzLnNldEZyb21NYXRyaXhDb2x1bW4oZSx0KX0sQ0p0LnByb3RvdHlwZS5hcHBseVByb2plY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmFwcGx5UHJvamVjdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAuYXBwbHlNYXRyaXg0KCBtICkgaW5zdGVhZC4iKSx0aGlzLmFwcGx5TWF0cml4NCh0KX0sQ0p0LnByb3RvdHlwZS5mcm9tQXR0cmlidXRlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuZnJvbUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLG4pfSxDSnQucHJvdG90eXBlLmRpc3RhbmNlVG9NYW5oYXR0YW49ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmRpc3RhbmNlVG9NYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5EaXN0YW5jZVRvKCkuIiksdGhpcy5tYW5oYXR0YW5EaXN0YW5jZVRvKHQpfSxDSnQucHJvdG90eXBlLmxlbmd0aE1hbmhhdHRhbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5sZW5ndGhNYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5MZW5ndGgoKS4iKSx0aGlzLm1hbmhhdHRhbkxlbmd0aCgpfSx3SnQucHJvdG90eXBlLmZyb21BdHRyaWJ1dGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5mcm9tQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil9LHdKdC5wcm90b3R5cGUubGVuZ3RoTWFuaGF0dGFuPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogLmxlbmd0aE1hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkxlbmd0aCgpLiIpLHRoaXMubWFuaGF0dGFuTGVuZ3RoKCl9LGtRdC5wcm90b3R5cGUuZ2V0Q2hpbGRCeU5hbWU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5nZXRDaGlsZEJ5TmFtZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE9iamVjdEJ5TmFtZSgpLiIpLHRoaXMuZ2V0T2JqZWN0QnlOYW1lKHQpfSxrUXQucHJvdG90eXBlLnJlbmRlckRlcHRoPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnJlbmRlckRlcHRoIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAucmVuZGVyT3JkZXIsIGluc3RlYWQuIil9LGtRdC5wcm90b3R5cGUudHJhbnNsYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC50cmFuc2xhdGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnRyYW5zbGF0ZU9uQXhpcyggYXhpcywgZGlzdGFuY2UgKSBpbnN0ZWFkLiIpLHRoaXMudHJhbnNsYXRlT25BeGlzKGUsdCl9LGtRdC5wcm90b3R5cGUuZ2V0V29ybGRSb3RhdGlvbj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNEOiAuZ2V0V29ybGRSb3RhdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5PYmplY3QzRC5nZXRXb3JsZFF1YXRlcm5pb24oIHRhcmdldCApIGluc3RlYWQuIil9LGtRdC5wcm90b3R5cGUuYXBwbHlNYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5hcHBseU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmFwcGx5TWF0cml4NCgpLiIpLHRoaXMuYXBwbHlNYXRyaXg0KHQpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhrUXQucHJvdG90eXBlLHtldWxlck9yZGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLmV1bGVyT3JkZXIgaXMgbm93IC5yb3RhdGlvbi5vcmRlci4iKSx0aGlzLnJvdGF0aW9uLm9yZGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLmV1bGVyT3JkZXIgaXMgbm93IC5yb3RhdGlvbi5vcmRlci4iKSx0aGlzLnJvdGF0aW9uLm9yZGVyPXR9fSx1c2VRdWF0ZXJuaW9uOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudXNlUXVhdGVybmlvbiBoYXMgYmVlbiByZW1vdmVkLiBUaGUgbGlicmFyeSBub3cgdXNlcyBxdWF0ZXJuaW9ucyBieSBkZWZhdWx0LiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudXNlUXVhdGVybmlvbiBoYXMgYmVlbiByZW1vdmVkLiBUaGUgbGlicmFyeSBub3cgdXNlcyBxdWF0ZXJuaW9ucyBieSBkZWZhdWx0LiIpfX19KSxCMXQucHJvdG90eXBlLnNldERyYXdNb2RlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLnNldERyYXdNb2RlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIHJlbmRlcmVyIG5vdyBhbHdheXMgYXNzdW1lcyBUSFJFRS5UcmlhbmdsZXNEcmF3TW9kZS4gVHJhbnNmb3JtIHlvdXIgZ2VvbWV0cnkgdmlhIEJ1ZmZlckdlb21ldHJ5VXRpbHMudG9UcmlhbmdsZXNEcmF3TW9kZSgpIGlmIG5lY2Vzc2FyeS4iKX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQjF0LnByb3RvdHlwZSx7ZHJhd01vZGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoOiAuZHJhd01vZGUgaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIHJlbmRlcmVyIG5vdyBhbHdheXMgYXNzdW1lcyBUSFJFRS5UcmlhbmdsZXNEcmF3TW9kZS4iKSwwfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoOiAuZHJhd01vZGUgaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIHJlbmRlcmVyIG5vdyBhbHdheXMgYXNzdW1lcyBUSFJFRS5UcmlhbmdsZXNEcmF3TW9kZS4gVHJhbnNmb3JtIHlvdXIgZ2VvbWV0cnkgdmlhIEJ1ZmZlckdlb21ldHJ5VXRpbHMudG9UcmlhbmdsZXNEcmF3TW9kZSgpIGlmIG5lY2Vzc2FyeS4iKX19fSksdzN0LnByb3RvdHlwZS5pbml0Qm9uZXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Ta2lubmVkTWVzaDogaW5pdEJvbmVzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0scTF0LnByb3RvdHlwZS5zZXRMZW5zPWZ1bmN0aW9uKHQsZSl7Y29uc29sZS53YXJuKCJUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYS5zZXRMZW5zIGlzIGRlcHJlY2F0ZWQuIFVzZSAuc2V0Rm9jYWxMZW5ndGggYW5kIC5maWxtR2F1Z2UgZm9yIGEgcGhvdG9ncmFwaGljIHNldHVwLiIpLHZvaWQgMCE9PWUmJih0aGlzLmZpbG1HYXVnZT1lKSx0aGlzLnNldEZvY2FsTGVuZ3RoKHQpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhvOXQucHJvdG90eXBlLHtvbmx5U2hhZG93OntzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAub25seVNoYWRvdyBoYXMgYmVlbiByZW1vdmVkLiIpfX0sc2hhZG93Q2FtZXJhRm92OntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYUZvdiBpcyBub3cgLnNoYWRvdy5jYW1lcmEuZm92LiIpLHRoaXMuc2hhZG93LmNhbWVyYS5mb3Y9dH19LHNoYWRvd0NhbWVyYUxlZnQ6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhTGVmdCBpcyBub3cgLnNoYWRvdy5jYW1lcmEubGVmdC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEubGVmdD10fX0sc2hhZG93Q2FtZXJhUmlnaHQ6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhUmlnaHQgaXMgbm93IC5zaGFkb3cuY2FtZXJhLnJpZ2h0LiIpLHRoaXMuc2hhZG93LmNhbWVyYS5yaWdodD10fX0sc2hhZG93Q2FtZXJhVG9wOntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVRvcCBpcyBub3cgLnNoYWRvdy5jYW1lcmEudG9wLiIpLHRoaXMuc2hhZG93LmNhbWVyYS50b3A9dH19LHNoYWRvd0NhbWVyYUJvdHRvbTp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFCb3R0b20gaXMgbm93IC5zaGFkb3cuY2FtZXJhLmJvdHRvbS4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuYm90dG9tPXR9fSxzaGFkb3dDYW1lcmFOZWFyOntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYU5lYXIgaXMgbm93IC5zaGFkb3cuY2FtZXJhLm5lYXIuIiksdGhpcy5zaGFkb3cuY2FtZXJhLm5lYXI9dH19LHNoYWRvd0NhbWVyYUZhcjp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFGYXIgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmZhci4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuZmFyPXR9fSxzaGFkb3dDYW1lcmFWaXNpYmxlOntzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhVmlzaWJsZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLkNhbWVyYUhlbHBlciggbGlnaHQuc2hhZG93LmNhbWVyYSApIGluc3RlYWQuIil9fSxzaGFkb3dCaWFzOntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0JpYXMgaXMgbm93IC5zaGFkb3cuYmlhcy4iKSx0aGlzLnNoYWRvdy5iaWFzPXR9fSxzaGFkb3dEYXJrbmVzczp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0RhcmtuZXNzIGhhcyBiZWVuIHJlbW92ZWQuIil9fSxzaGFkb3dNYXBXaWR0aDp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dNYXBXaWR0aCBpcyBub3cgLnNoYWRvdy5tYXBTaXplLndpZHRoLiIpLHRoaXMuc2hhZG93Lm1hcFNpemUud2lkdGg9dH19LHNoYWRvd01hcEhlaWdodDp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dNYXBIZWlnaHQgaXMgbm93IC5zaGFkb3cubWFwU2l6ZS5oZWlnaHQuIiksdGhpcy5zaGFkb3cubWFwU2l6ZS5oZWlnaHQ9dH19fSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoUVF0LnByb3RvdHlwZSx7bGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5sZW5ndGggaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5jb3VudCBpbnN0ZWFkLiIpLHRoaXMuYXJyYXkubGVuZ3RofX0sZHluYW1pYzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuZHluYW1pYyBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnVzYWdlIGluc3RlYWQuIiksdGhpcy51c2FnZT09PVZadH0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5keW5hbWljIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAudXNhZ2UgaW5zdGVhZC4iKSx0aGlzLnNldFVzYWdlKFZadCl9fX0pLFFRdC5wcm90b3R5cGUuc2V0RHluYW1pYz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5zZXREeW5hbWljKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5zZXRVc2FnZSgpIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZSghMD09PXQ/Vlp0OkZadCksdGhpc30sUVF0LnByb3RvdHlwZS5jb3B5SW5kaWNlc0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuY29weUluZGljZXNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LFFRdC5wcm90b3R5cGUuc2V0QXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5zZXRBcnJheSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgQnVmZmVyR2VvbWV0cnkgLnNldEF0dHJpYnV0ZSB0byByZXBsYWNlL3Jlc2l6ZSBhdHRyaWJ1dGUgYnVmZmVycyIpfSxiMXQucHJvdG90eXBlLmFkZEluZGV4PWZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGRJbmRleCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEluZGV4KCkuIiksdGhpcy5zZXRJbmRleCh0KX0sYjF0LnByb3RvdHlwZS5hZGRBdHRyaWJ1dGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZEF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEF0dHJpYnV0ZSgpLiIpLGUmJmUuaXNCdWZmZXJBdHRyaWJ1dGV8fGUmJmUuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZT8iaW5kZXgiPT09dD8oY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS5hZGRBdHRyaWJ1dGU6IFVzZSAuc2V0SW5kZXgoKSBmb3IgaW5kZXggYXR0cmlidXRlLiIpLHRoaXMuc2V0SW5kZXgoZSksdGhpcyk6dGhpcy5zZXRBdHRyaWJ1dGUodCxlKTooY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZEF0dHJpYnV0ZSgpIG5vdyBleHBlY3RzICggbmFtZSwgYXR0cmlidXRlICkuIiksdGhpcy5zZXRBdHRyaWJ1dGUodCxuZXcgUVF0KGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl0pKSl9LGIxdC5wcm90b3R5cGUuYWRkRHJhd0NhbGw9ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMCE9PW4mJmNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGREcmF3Q2FsbCgpIG5vIGxvbmdlciBzdXBwb3J0cyBpbmRleE9mZnNldC4iKSxjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkRHJhd0NhbGwoKSBpcyBub3cgLmFkZEdyb3VwKCkuIiksdGhpcy5hZGRHcm91cCh0LGUpfSxiMXQucHJvdG90eXBlLmNsZWFyRHJhd0NhbGxzPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmNsZWFyRHJhd0NhbGxzKCkgaXMgbm93IC5jbGVhckdyb3VwcygpLiIpLHRoaXMuY2xlYXJHcm91cHMoKX0sYjF0LnByb3RvdHlwZS5jb21wdXRlT2Zmc2V0cz1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5jb21wdXRlT2Zmc2V0cygpIGhhcyBiZWVuIHJlbW92ZWQuIil9LGIxdC5wcm90b3R5cGUucmVtb3ZlQXR0cmlidXRlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAucmVtb3ZlQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZGVsZXRlQXR0cmlidXRlKCkuIiksdGhpcy5kZWxldGVBdHRyaWJ1dGUodCl9LGIxdC5wcm90b3R5cGUuYXBwbHlNYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hcHBseU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmFwcGx5TWF0cml4NCgpLiIpLHRoaXMuYXBwbHlNYXRyaXg0KHQpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhiMXQucHJvdG90eXBlLHtkcmF3Y2FsbHM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLmVycm9yKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmRyYXdjYWxscyBoYXMgYmVlbiByZW5hbWVkIHRvIC5ncm91cHMuIiksdGhpcy5ncm91cHN9fSxvZmZzZXRzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLm9mZnNldHMgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ3JvdXBzLiIpLHRoaXMuZ3JvdXBzfX19KSwkNXQucHJvdG90eXBlLnNldER5bmFtaWM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXI6IC5zZXREeW5hbWljKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5zZXRVc2FnZSgpIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZSghMD09PXQ/Vlp0OkZadCksdGhpc30sJDV0LnByb3RvdHlwZS5zZXRBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkludGVybGVhdmVkQnVmZmVyOiAuc2V0QXJyYXkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEJ1ZmZlckdlb21ldHJ5IC5zZXRBdHRyaWJ1dGUgdG8gcmVwbGFjZS9yZXNpemUgYXR0cmlidXRlIGJ1ZmZlcnMiKX0scjZ0LnByb3RvdHlwZS5nZXRBcnJheXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5nZXRBcnJheXMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxyNnQucHJvdG90eXBlLmFkZFNoYXBlTGlzdD1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkV4dHJ1ZGVHZW9tZXRyeTogLmFkZFNoYXBlTGlzdCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LHI2dC5wcm90b3R5cGUuYWRkU2hhcGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5hZGRTaGFwZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LFg1dC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNjZW5lOiAuZGlzcG9zZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LG04dC5wcm90b3R5cGUub25VcGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Vbmlmb3JtOiAub25VcGRhdGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2Ugb2JqZWN0Lm9uQmVmb3JlUmVuZGVyKCkgaW5zdGVhZC4iKSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhVUXQucHJvdG90eXBlLHt3cmFwQXJvdW5kOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfX0sb3ZlcmRyYXc6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTWF0ZXJpYWw6IC5vdmVyZHJhdyBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAub3ZlcmRyYXcgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHdyYXBSR0I6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcFJHQiBoYXMgYmVlbiByZW1vdmVkLiIpLG5ldyAkUXR9fSxzaGFkaW5nOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc2hhZGluZyBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdGhlIGJvb2xlYW4gLmZsYXRTaGFkaW5nIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKSx0aGlzLmZsYXRTaGFkaW5nPTE9PT10fX0sc3RlbmNpbE1hc2s6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zdGVuY2lsTWFzayBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnN0ZW5jaWxGdW5jTWFzayBpbnN0ZWFkLiIpLHRoaXMuc3RlbmNpbEZ1bmNNYXNrfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc3RlbmNpbE1hc2sgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5zdGVuY2lsRnVuY01hc2sgaW5zdGVhZC4iKSx0aGlzLnN0ZW5jaWxGdW5jTWFzaz10fX0sdmVydGV4VGFuZ2VudHM6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEcxdC5wcm90b3R5cGUse2Rlcml2YXRpdmVzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFkZXJNYXRlcmlhbDogLmRlcml2YXRpdmVzIGhhcyBiZWVuIG1vdmVkIHRvIC5leHRlbnNpb25zLmRlcml2YXRpdmVzLiIpLHRoaXMuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlc30sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuIFNoYWRlck1hdGVyaWFsOiAuZGVyaXZhdGl2ZXMgaGFzIGJlZW4gbW92ZWQgdG8gLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMuIiksdGhpcy5leHRlbnNpb25zLmRlcml2YXRpdmVzPXR9fX0pLEc1dC5wcm90b3R5cGUuY2xlYXJUYXJnZXQ9ZnVuY3Rpb24odCxlLG4saSl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuY2xlYXJUYXJnZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnNldFJlbmRlclRhcmdldCgpIGFuZCAuY2xlYXIoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0UmVuZGVyVGFyZ2V0KHQpLHRoaXMuY2xlYXIoZSxuLGkpfSxHNXQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYW5pbWF0ZSgpIGlzIG5vdyAuc2V0QW5pbWF0aW9uTG9vcCgpLiIpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcCh0KX0sRzV0LnByb3RvdHlwZS5nZXRDdXJyZW50UmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdldEN1cnJlbnRSZW5kZXJUYXJnZXQoKSBpcyBub3cgLmdldFJlbmRlclRhcmdldCgpLiIpLHRoaXMuZ2V0UmVuZGVyVGFyZ2V0KCl9LEc1dC5wcm90b3R5cGUuZ2V0TWF4QW5pc290cm9weT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRNYXhBbmlzb3Ryb3B5KCkgaXMgbm93IC5jYXBhYmlsaXRpZXMuZ2V0TWF4QW5pc290cm9weSgpLiIpLHRoaXMuY2FwYWJpbGl0aWVzLmdldE1heEFuaXNvdHJvcHkoKX0sRzV0LnByb3RvdHlwZS5nZXRQcmVjaXNpb249ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0UHJlY2lzaW9uKCkgaXMgbm93IC5jYXBhYmlsaXRpZXMucHJlY2lzaW9uLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnByZWNpc2lvbn0sRzV0LnByb3RvdHlwZS5yZXNldEdMU3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAucmVzZXRHTFN0YXRlKCkgaXMgbm93IC5zdGF0ZS5yZXNldCgpLiIpLHRoaXMuc3RhdGUucmVzZXQoKX0sRzV0LnByb3RvdHlwZS5zdXBwb3J0c0Zsb2F0VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2Zsb2F0JyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU190ZXh0dXJlX2Zsb2F0Iil9LEc1dC5wcm90b3R5cGUuc3VwcG9ydHNIYWxmRmxvYXRUZXh0dXJlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0hhbGZGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2hhbGZfZmxvYXQnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpfSxHNXQucHJvdG90eXBlLnN1cHBvcnRzU3RhbmRhcmREZXJpdmF0aXZlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c1N0YW5kYXJkRGVyaXZhdGl2ZXMoKSBpcyBub3cgLmV4dGVuc2lvbnMuZ2V0KCAnT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpfSxHNXQucHJvdG90eXBlLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIil9LEc1dC5wcm90b3R5cGUuc3VwcG9ydHNDb21wcmVzc2VkVGV4dHVyZVBWUlRDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVQVlJUQygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIil9LEc1dC5wcm90b3R5cGUuc3VwcG9ydHNCbGVuZE1pbk1heD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0JsZW5kTWluTWF4KCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0VYVF9ibGVuZF9taW5tYXgnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiRVhUX2JsZW5kX21pbm1heCIpfSxHNXQucHJvdG90eXBlLnN1cHBvcnRzVmVydGV4VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcygpIGlzIG5vdyAuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzfSxHNXQucHJvdG90eXBlLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0FOR0xFX2luc3RhbmNlZF9hcnJheXMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpfSxHNXQucHJvdG90eXBlLmVuYWJsZVNjaXNzb3JUZXN0PWZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmVuYWJsZVNjaXNzb3JUZXN0KCkgaXMgbm93IC5zZXRTY2lzc29yVGVzdCgpLiIpLHRoaXMuc2V0U2Npc3NvclRlc3QodCl9LEc1dC5wcm90b3R5cGUuaW5pdE1hdGVyaWFsPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuaW5pdE1hdGVyaWFsKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sRzV0LnByb3RvdHlwZS5hZGRQcmVQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQcmVQbHVnaW4oKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxHNXQucHJvdG90eXBlLmFkZFBvc3RQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQb3N0UGx1Z2luKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sRzV0LnByb3RvdHlwZS51cGRhdGVTaGFkb3dNYXA9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC51cGRhdGVTaGFkb3dNYXAoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxHNXQucHJvdG90eXBlLnNldEZhY2VDdWxsaW5nPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0RmFjZUN1bGxpbmcoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxHNXQucHJvdG90eXBlLmFsbG9jVGV4dHVyZVVuaXQ9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hbGxvY1RleHR1cmVVbml0KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sRzV0LnByb3RvdHlwZS5zZXRUZXh0dXJlPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LEc1dC5wcm90b3R5cGUuc2V0VGV4dHVyZTJEPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZTJEKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sRzV0LnByb3RvdHlwZS5zZXRUZXh0dXJlQ3ViZT1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNldFRleHR1cmVDdWJlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sRzV0LnByb3RvdHlwZS5nZXRBY3RpdmVNaXBNYXBMZXZlbD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRBY3RpdmVNaXBNYXBMZXZlbCgpIGlzIG5vdyAuZ2V0QWN0aXZlTWlwbWFwTGV2ZWwoKS4iKSx0aGlzLmdldEFjdGl2ZU1pcG1hcExldmVsKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEc1dC5wcm90b3R5cGUse3NoYWRvd01hcEVuYWJsZWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC5lbmFibGVkfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwRW5hYmxlZCBpcyBub3cgLnNoYWRvd01hcC5lbmFibGVkLiIpLHRoaXMuc2hhZG93TWFwLmVuYWJsZWQ9dH19LHNoYWRvd01hcFR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC50eXBlfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwVHlwZSBpcyBub3cgLnNoYWRvd01hcC50eXBlLiIpLHRoaXMuc2hhZG93TWFwLnR5cGU9dH19LHNoYWRvd01hcEN1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0sY29udGV4dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmNvbnRleHQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5nZXRDb250ZXh0KCkgaW5zdGVhZC4iKSx0aGlzLmdldENvbnRleHQoKX19LHZyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudnIgaGFzIGJlZW4gcmVuYW1lZCB0byAueHIiKSx0aGlzLnhyfX0sZ2FtbWFJbnB1dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hSW5wdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IHRoZSBlbmNvZGluZyBmb3IgdGV4dHVyZXMgdmlhIFRleHR1cmUuZW5jb2RpbmcgaW5zdGVhZC4iKSwhMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFJbnB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgdGhlIGVuY29kaW5nIGZvciB0ZXh0dXJlcyB2aWEgVGV4dHVyZS5lbmNvZGluZyBpbnN0ZWFkLiIpfX0sZ2FtbWFPdXRwdXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYU91dHB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgV2ViR0xSZW5kZXJlci5vdXRwdXRFbmNvZGluZyBpbnN0ZWFkLiIpLCExfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFPdXRwdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IFdlYkdMUmVuZGVyZXIub3V0cHV0RW5jb2RpbmcgaW5zdGVhZC4iKSx0aGlzLm91dHB1dEVuY29kaW5nPSEwPT09dD9JWnQ6Tlp0fX0sdG9uZU1hcHBpbmdXaGl0ZVBvaW50OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIiksMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFI1dC5wcm90b3R5cGUse2N1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAuY3VsbEZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLmN1bGxGYWNlIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9fSxyZW5kZXJSZXZlcnNlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJSZXZlcnNlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLnJlbmRlclJldmVyc2VTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0scmVuZGVyU2luZ2xlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJTaW5nbGVTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAucmVuZGVyU2luZ2xlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX19fSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoU0p0LnByb3RvdHlwZSx7d3JhcFM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFMgaXMgbm93IC50ZXh0dXJlLndyYXBTLiIpLHRoaXMudGV4dHVyZS53cmFwU30sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwUyBpcyBub3cgLnRleHR1cmUud3JhcFMuIiksdGhpcy50ZXh0dXJlLndyYXBTPXR9fSx3cmFwVDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwVCBpcyBub3cgLnRleHR1cmUud3JhcFQuIiksdGhpcy50ZXh0dXJlLndyYXBUfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLndyYXBUIGlzIG5vdyAudGV4dHVyZS53cmFwVC4iKSx0aGlzLnRleHR1cmUud3JhcFQ9dH19LG1hZ0ZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5tYWdGaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1hZ0ZpbHRlci4iKSx0aGlzLnRleHR1cmUubWFnRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1hZ0ZpbHRlciBpcyBub3cgLnRleHR1cmUubWFnRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5tYWdGaWx0ZXI9dH19LG1pbkZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5taW5GaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1pbkZpbHRlci4iKSx0aGlzLnRleHR1cmUubWluRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1pbkZpbHRlciBpcyBub3cgLnRleHR1cmUubWluRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9dH19LGFuaXNvdHJvcHk6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuYW5pc290cm9weSBpcyBub3cgLnRleHR1cmUuYW5pc290cm9weS4iKSx0aGlzLnRleHR1cmUuYW5pc290cm9weX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5hbmlzb3Ryb3B5IGlzIG5vdyAudGV4dHVyZS5hbmlzb3Ryb3B5LiIpLHRoaXMudGV4dHVyZS5hbmlzb3Ryb3B5PXR9fSxvZmZzZXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAub2Zmc2V0IGlzIG5vdyAudGV4dHVyZS5vZmZzZXQuIiksdGhpcy50ZXh0dXJlLm9mZnNldH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5vZmZzZXQgaXMgbm93IC50ZXh0dXJlLm9mZnNldC4iKSx0aGlzLnRleHR1cmUub2Zmc2V0PXR9fSxyZXBlYXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAucmVwZWF0IGlzIG5vdyAudGV4dHVyZS5yZXBlYXQuIiksdGhpcy50ZXh0dXJlLnJlcGVhdH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5yZXBlYXQgaXMgbm93IC50ZXh0dXJlLnJlcGVhdC4iKSx0aGlzLnRleHR1cmUucmVwZWF0PXR9fSxmb3JtYXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZm9ybWF0IGlzIG5vdyAudGV4dHVyZS5mb3JtYXQuIiksdGhpcy50ZXh0dXJlLmZvcm1hdH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5mb3JtYXQgaXMgbm93IC50ZXh0dXJlLmZvcm1hdC4iKSx0aGlzLnRleHR1cmUuZm9ybWF0PXR9fSx0eXBlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnR5cGUgaXMgbm93IC50ZXh0dXJlLnR5cGUuIiksdGhpcy50ZXh0dXJlLnR5cGV9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAudHlwZSBpcyBub3cgLnRleHR1cmUudHlwZS4iKSx0aGlzLnRleHR1cmUudHlwZT10fX0sZ2VuZXJhdGVNaXBtYXBzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmdlbmVyYXRlTWlwbWFwcyBpcyBub3cgLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzLiIpLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHN9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZ2VuZXJhdGVNaXBtYXBzIGlzIG5vdyAudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMuIiksdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz10fX19KSwkOXQucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogLmxvYWQgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkF1ZGlvTG9hZGVyIGluc3RlYWQuIik7Y29uc3QgZT10aGlzO3JldHVybihuZXcgQjl0KS5sb2FkKHQsKGZ1bmN0aW9uKHQpe2Uuc2V0QnVmZmVyKHQpfSkpLHRoaXN9LHQ4dC5wcm90b3R5cGUuZ2V0RGF0YT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvQW5hbHlzZXI6IC5nZXREYXRhKCkgaXMgbm93IC5nZXRGcmVxdWVuY3lEYXRhKCkuIiksdGhpcy5nZXRGcmVxdWVuY3lEYXRhKCl9LFgxdC5wcm90b3R5cGUudXBkYXRlQ3ViZU1hcD1mdW5jdGlvbih0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkN1YmVDYW1lcmE6IC51cGRhdGVDdWJlTWFwKCkgaXMgbm93IC51cGRhdGUoKS4iKSx0aGlzLnVwZGF0ZSh0LGUpfSxYMXQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkN1YmVDYW1lcmE6IC5jbGVhcigpIGlzIG5vdyAucmVuZGVyVGFyZ2V0LmNsZWFyKCkuIiksdGhpcy5yZW5kZXJUYXJnZXQuY2xlYXIodCxlLG4saSl9LHlKdC5jcm9zc09yaWdpbj12b2lkIDAseUp0LmxvYWRUZXh0dXJlPWZ1bmN0aW9uKHQsZSxuLGkpe2NvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkVGV4dHVyZSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuVGV4dHVyZUxvYWRlcigpIGluc3RlYWQuIik7Y29uc3Qgcj1uZXcgZTl0O3Iuc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbik7Y29uc3Qgbz1yLmxvYWQodCxuLHZvaWQgMCxpKTtyZXR1cm4gZSYmKG8ubWFwcGluZz1lKSxvfSx5SnQubG9hZFRleHR1cmVDdWJlPWZ1bmN0aW9uKHQsZSxuLGkpe2NvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkVGV4dHVyZUN1YmUgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkN1YmVUZXh0dXJlTG9hZGVyKCkgaW5zdGVhZC4iKTtjb25zdCByPW5ldyBRNnQ7ci5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKTtjb25zdCBvPXIubG9hZCh0LG4sdm9pZCAwLGkpO3JldHVybiBlJiYoby5tYXBwaW5nPWUpLG99LHlKdC5sb2FkQ29tcHJlc3NlZFRleHR1cmU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRDb21wcmVzc2VkVGV4dHVyZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuRERTTG9hZGVyIGluc3RlYWQuIil9LHlKdC5sb2FkQ29tcHJlc3NlZFRleHR1cmVDdWJlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkQ29tcHJlc3NlZFRleHR1cmVDdWJlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5ERFNMb2FkZXIgaW5zdGVhZC4iKX07Y29uc3QgWjh0PXtjcmVhdGVNdWx0aU1hdGVyaWFsT2JqZWN0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2NlbmVVdGlscyBoYXMgYmVlbiBtb3ZlZCB0byAvZXhhbXBsZXMvanNtL3V0aWxzL1NjZW5lVXRpbHMuanMiKX0sZGV0YWNoOmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2NlbmVVdGlscyBoYXMgYmVlbiBtb3ZlZCB0byAvZXhhbXBsZXMvanNtL3V0aWxzL1NjZW5lVXRpbHMuanMiKX0sYXR0YWNoOmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2NlbmVVdGlscyBoYXMgYmVlbiBtb3ZlZCB0byAvZXhhbXBsZXMvanNtL3V0aWxzL1NjZW5lVXRpbHMuanMiKX19OyJ1bmRlZmluZWQiIT10eXBlb2YgX19USFJFRV9ERVZUT09MU19fJiZfX1RIUkVFX0RFVlRPT0xTX18uZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlZ2lzdGVyIix7ZGV0YWlsOntyZXZpc2lvbjpCS3R9fSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93Ll9fVEhSRUVfXz9jb25zb2xlLndhcm4oIldBUk5JTkc6IE11bHRpcGxlIGluc3RhbmNlcyBvZiBUaHJlZS5qcyBiZWluZyBpbXBvcnRlZC4iKTp3aW5kb3cuX19USFJFRV9fPUJLdCk7dmFyIEo4dD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBQ0VTRmlsbWljVG9uZU1hcHBpbmc6NCxBZGRFcXVhdGlvbjpWS3QsQWRkT3BlcmF0aW9uOjIsQWRkaXRpdmVBbmltYXRpb25CbGVuZE1vZGU6UFp0LEFkZGl0aXZlQmxlbmRpbmc6MixBbHBoYUZvcm1hdDoxMDIxLEFsd2F5c0RlcHRoOjEsQWx3YXlzU3RlbmNpbEZ1bmM6NTE5LEFtYmllbnRMaWdodDpiOXQsQW1iaWVudExpZ2h0UHJvYmU6Rjl0LEFuaW1hdGlvbkNsaXA6RzZ0LEFuaW1hdGlvbkxvYWRlcjpjbGFzcyBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9dGhpcyxvPW5ldyBaNnQodGhpcy5tYW5hZ2VyKTtvLnNldFBhdGgodGhpcy5wYXRoKSxvLnNldFJlcXVlc3RIZWFkZXIodGhpcy5yZXF1ZXN0SGVhZGVyKSxvLnNldFdpdGhDcmVkZW50aWFscyh0aGlzLndpdGhDcmVkZW50aWFscyksby5sb2FkKHQsKGZ1bmN0aW9uKG4pe3RyeXtlKHIucGFyc2UoSlNPTi5wYXJzZShuKSkpfWNhdGNoKGUpe2k/aShlKTpjb25zb2xlLmVycm9yKGUpLHIubWFuYWdlci5pdGVtRXJyb3IodCl9fSksbixpKX1wYXJzZSh0KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtjb25zdCBpPUc2dC5wYXJzZSh0W25dKTtlLnB1c2goaSl9cmV0dXJuIGV9fSxBbmltYXRpb25NaXhlcjpmOHQsQW5pbWF0aW9uT2JqZWN0R3JvdXA6ZDh0LEFuaW1hdGlvblV0aWxzOlA2dCxBcmNDdXJ2ZTpwNHQsQXJyYXlDYW1lcmE6QjV0LEFycm93SGVscGVyOmNsYXNzIGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQ9bmV3IENKdCgwLDAsMSksZT1uZXcgQ0p0KDAsMCwwKSxuPTEsaT0xNjc3Njk2MCxyPS4yKm4sbz0uMipyKXtzdXBlcigpLHRoaXMudHlwZT0iQXJyb3dIZWxwZXIiLHZvaWQgMD09PXE4dCYmKHE4dD1uZXcgYjF0LHE4dC5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KFswLDAsMCwwLDEsMF0sMykpLFk4dD1uZXcgbjR0KDAsLjUsMSw1LDEpLFk4dC50cmFuc2xhdGUoMCwtLjUsMCkpLHRoaXMucG9zaXRpb24uY29weShlKSx0aGlzLmxpbmU9bmV3IEgzdChxOHQsbmV3IEkzdCh7Y29sb3I6aSx0b25lTWFwcGVkOiExfSkpLHRoaXMubGluZS5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuYWRkKHRoaXMubGluZSksdGhpcy5jb25lPW5ldyBCMXQoWTh0LG5ldyBLUXQoe2NvbG9yOmksdG9uZU1hcHBlZDohMX0pKSx0aGlzLmNvbmUubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLmFkZCh0aGlzLmNvbmUpLHRoaXMuc2V0RGlyZWN0aW9uKHQpLHRoaXMuc2V0TGVuZ3RoKG4scixvKX1zZXREaXJlY3Rpb24odCl7aWYodC55Pi45OTk5OSl0aGlzLnF1YXRlcm5pb24uc2V0KDAsMCwwLDEpO2Vsc2UgaWYodC55PC0uOTk5OTkpdGhpcy5xdWF0ZXJuaW9uLnNldCgxLDAsMCwwKTtlbHNle1c4dC5zZXQodC56LDAsLXQueCkubm9ybWFsaXplKCk7Y29uc3QgZT1NYXRoLmFjb3ModC55KTt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbUF4aXNBbmdsZShXOHQsZSl9fXNldExlbmd0aCh0LGU9LjIqdCxuPS4yKmUpe3RoaXMubGluZS5zY2FsZS5zZXQoMSxNYXRoLm1heCgxZS00LHQtZSksMSksdGhpcy5saW5lLnVwZGF0ZU1hdHJpeCgpLHRoaXMuY29uZS5zY2FsZS5zZXQobixlLG4pLHRoaXMuY29uZS5wb3NpdGlvbi55PXQsdGhpcy5jb25lLnVwZGF0ZU1hdHJpeCgpfXNldENvbG9yKHQpe3RoaXMubGluZS5tYXRlcmlhbC5jb2xvci5zZXQodCksdGhpcy5jb25lLm1hdGVyaWFsLmNvbG9yLnNldCh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQsITEpLHRoaXMubGluZS5jb3B5KHQubGluZSksdGhpcy5jb25lLmNvcHkodC5jb25lKSx0aGlzfX0sQXVkaW86JDl0LEF1ZGlvQW5hbHlzZXI6dDh0LEF1ZGlvQ29udGV4dDpEOXQsQXVkaW9MaXN0ZW5lcjpjbGFzcyBleHRlbmRzIGtRdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJBdWRpb0xpc3RlbmVyIix0aGlzLmNvbnRleHQ9RDl0LmdldENvbnRleHQoKSx0aGlzLmdhaW49dGhpcy5jb250ZXh0LmNyZWF0ZUdhaW4oKSx0aGlzLmdhaW4uY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pLHRoaXMuZmlsdGVyPW51bGwsdGhpcy50aW1lRGVsdGE9MCx0aGlzLl9jbG9jaz1uZXcgajl0fWdldElucHV0KCl7cmV0dXJuIHRoaXMuZ2Fpbn1yZW1vdmVGaWx0ZXIoKXtyZXR1cm4gbnVsbCE9PXRoaXMuZmlsdGVyJiYodGhpcy5nYWluLmRpc2Nvbm5lY3QodGhpcy5maWx0ZXIpLHRoaXMuZmlsdGVyLmRpc2Nvbm5lY3QodGhpcy5jb250ZXh0LmRlc3RpbmF0aW9uKSx0aGlzLmdhaW4uY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pLHRoaXMuZmlsdGVyPW51bGwpLHRoaXN9Z2V0RmlsdGVyKCl7cmV0dXJuIHRoaXMuZmlsdGVyfXNldEZpbHRlcih0KXtyZXR1cm4gbnVsbCE9PXRoaXMuZmlsdGVyPyh0aGlzLmdhaW4uZGlzY29ubmVjdCh0aGlzLmZpbHRlciksdGhpcy5maWx0ZXIuZGlzY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pKTp0aGlzLmdhaW4uZGlzY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pLHRoaXMuZmlsdGVyPXQsdGhpcy5nYWluLmNvbm5lY3QodGhpcy5maWx0ZXIpLHRoaXMuZmlsdGVyLmNvbm5lY3QodGhpcy5jb250ZXh0LmRlc3RpbmF0aW9uKSx0aGlzfWdldE1hc3RlclZvbHVtZSgpe3JldHVybiB0aGlzLmdhaW4uZ2Fpbi52YWx1ZX1zZXRNYXN0ZXJWb2x1bWUodCl7cmV0dXJuIHRoaXMuZ2Fpbi5nYWluLnNldFRhcmdldEF0VGltZSh0LHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXN9dXBkYXRlTWF0cml4V29ybGQodCl7c3VwZXIudXBkYXRlTWF0cml4V29ybGQodCk7Y29uc3QgZT10aGlzLmNvbnRleHQubGlzdGVuZXIsbj10aGlzLnVwO2lmKHRoaXMudGltZURlbHRhPXRoaXMuX2Nsb2NrLmdldERlbHRhKCksdGhpcy5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoVzl0LHE5dCxZOXQpLFg5dC5zZXQoMCwwLC0xKS5hcHBseVF1YXRlcm5pb24ocTl0KSxlLnBvc2l0aW9uWCl7Y29uc3QgdD10aGlzLmNvbnRleHQuY3VycmVudFRpbWUrdGhpcy50aW1lRGVsdGE7ZS5wb3NpdGlvblgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoVzl0LngsdCksZS5wb3NpdGlvblkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoVzl0LnksdCksZS5wb3NpdGlvbloubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoVzl0LnosdCksZS5mb3J3YXJkWC5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZShYOXQueCx0KSxlLmZvcndhcmRZLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKFg5dC55LHQpLGUuZm9yd2FyZFoubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoWDl0LnosdCksZS51cFgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUobi54LHQpLGUudXBZLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKG4ueSx0KSxlLnVwWi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZShuLnosdCl9ZWxzZSBlLnNldFBvc2l0aW9uKFc5dC54LFc5dC55LFc5dC56KSxlLnNldE9yaWVudGF0aW9uKFg5dC54LFg5dC55LFg5dC56LG4ueCxuLnksbi56KX19LEF1ZGlvTG9hZGVyOkI5dCxBeGVzSGVscGVyOlg4dCxBeGlzSGVscGVyOmZ1bmN0aW9uIFE4dCh0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5BeGlzSGVscGVyIGhhcyBiZWVuIHJlbmFtZWQgdG8gVEhSRUUuQXhlc0hlbHBlci4iKSxuZXcgWDh0KHQpfSxCYWNrU2lkZToxLEJhc2ljRGVwdGhQYWNraW5nOjMyMDAsQmFzaWNTaGFkb3dNYXA6MCxCaW5hcnlUZXh0dXJlTG9hZGVyOmZ1bmN0aW9uIHQ3dCh0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CaW5hcnlUZXh0dXJlTG9hZGVyIGhhcyBiZWVuIHJlbmFtZWQgdG8gVEhSRUUuRGF0YVRleHR1cmVMb2FkZXIuIiksbmV3IHQ5dCh0KX0sQm9uZTpTM3QsQm9vbGVhbktleWZyYW1lVHJhY2s6RDZ0LEJvdW5kaW5nQm94SGVscGVyOmZ1bmN0aW9uIGU3dCh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJvdW5kaW5nQm94SGVscGVyIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIENyZWF0aW5nIGEgVEhSRUUuQm94SGVscGVyIGluc3RlYWQuIiksbmV3IEc4dCh0LGUpfSxCb3gyOnc4dCxCb3gzOkxKdCxCb3gzSGVscGVyOmNsYXNzIGV4dGVuZHMgVTN0e2NvbnN0cnVjdG9yKHQsZT0xNjc3Njk2MCl7Y29uc3Qgbj1uZXcgVWludDE2QXJyYXkoWzAsMSwxLDIsMiwzLDMsMCw0LDUsNSw2LDYsNyw3LDQsMCw0LDEsNSwyLDYsMyw3XSksaT1uZXcgYjF0O2kuc2V0SW5kZXgobmV3IFFRdChuLDEpKSxpLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQoWzEsMSwxLC0xLDEsMSwtMSwtMSwxLDEsLTEsMSwxLDEsLTEsLTEsMSwtMSwtMSwtMSwtMSwxLC0xLC0xXSwzKSksc3VwZXIoaSxuZXcgSTN0KHtjb2xvcjplLHRvbmVNYXBwZWQ6ITF9KSksdGhpcy5ib3g9dCx0aGlzLnR5cGU9IkJveDNIZWxwZXIiLHRoaXMuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCl9dXBkYXRlTWF0cml4V29ybGQodCl7Y29uc3QgZT10aGlzLmJveDtlLmlzRW1wdHkoKXx8KGUuZ2V0Q2VudGVyKHRoaXMucG9zaXRpb24pLGUuZ2V0U2l6ZSh0aGlzLnNjYWxlKSx0aGlzLnNjYWxlLm11bHRpcGx5U2NhbGFyKC41KSxzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSl9fSxCb3hCdWZmZXJHZW9tZXRyeTpGMXQsQm94R2VvbWV0cnk6RjF0LEJveEhlbHBlcjpHOHQsQnVmZmVyQXR0cmlidXRlOlFRdCxCdWZmZXJHZW9tZXRyeTpiMXQsQnVmZmVyR2VvbWV0cnlMb2FkZXI6QTl0LEJ5dGVUeXBlOjEwMTAsQ2FjaGU6cTZ0LENhbWVyYTpXMXQsQ2FtZXJhSGVscGVyOmNsYXNzIGV4dGVuZHMgVTN0e2NvbnN0cnVjdG9yKHQpe2NvbnN0IGU9bmV3IGIxdCxuPW5ldyBJM3Qoe2NvbG9yOjE2Nzc3MjE1LHZlcnRleENvbG9yczohMCx0b25lTWFwcGVkOiExfSksaT1bXSxyPVtdLG89e30sYT1uZXcgJFF0KDE2NzU1MjAwKSxzPW5ldyAkUXQoMTY3MTE2ODApLGw9bmV3ICRRdCg0Mzc3NSksYz1uZXcgJFF0KDE2Nzc3MjE1KSx1PW5ldyAkUXQoMzM1NTQ0Myk7ZnVuY3Rpb24gaCh0LGUsbil7ZCh0LG4pLGQoZSxuKX1mdW5jdGlvbiBkKHQsZSl7aS5wdXNoKDAsMCwwKSxyLnB1c2goZS5yLGUuZyxlLmIpLHZvaWQgMD09PW9bdF0mJihvW3RdPVtdKSxvW3RdLnB1c2goaS5sZW5ndGgvMy0xKX1oKCJuMSIsIm4yIixhKSxoKCJuMiIsIm40IixhKSxoKCJuNCIsIm4zIixhKSxoKCJuMyIsIm4xIixhKSxoKCJmMSIsImYyIixhKSxoKCJmMiIsImY0IixhKSxoKCJmNCIsImYzIixhKSxoKCJmMyIsImYxIixhKSxoKCJuMSIsImYxIixhKSxoKCJuMiIsImYyIixhKSxoKCJuMyIsImYzIixhKSxoKCJuNCIsImY0IixhKSxoKCJwIiwibjEiLHMpLGgoInAiLCJuMiIscyksaCgicCIsIm4zIixzKSxoKCJwIiwibjQiLHMpLGgoInUxIiwidTIiLGwpLGgoInUyIiwidTMiLGwpLGgoInUzIiwidTEiLGwpLGgoImMiLCJ0IixjKSxoKCJwIiwiYyIsdSksaCgiY24xIiwiY24yIix1KSxoKCJjbjMiLCJjbjQiLHUpLGgoImNmMSIsImNmMiIsdSksaCgiY2YzIiwiY2Y0Iix1KSxlLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQoaSwzKSksZS5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgbDF0KHIsMykpLHN1cGVyKGUsbiksdGhpcy50eXBlPSJDYW1lcmFIZWxwZXIiLHRoaXMuY2FtZXJhPXQsdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCYmdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMucG9pbnRNYXA9byx0aGlzLnVwZGF0ZSgpfXVwZGF0ZSgpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeSxlPXRoaXMucG9pbnRNYXA7Vjh0LnByb2plY3Rpb25NYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5jYW1lcmEucHJvamVjdGlvbk1hdHJpeEludmVyc2UpLFU4dCgiYyIsZSx0LFY4dCwwLDAsLTEpLFU4dCgidCIsZSx0LFY4dCwwLDAsMSksVTh0KCJuMSIsZSx0LFY4dCwtMSwtMSwtMSksVTh0KCJuMiIsZSx0LFY4dCwxLC0xLC0xKSxVOHQoIm4zIixlLHQsVjh0LC0xLDEsLTEpLFU4dCgibjQiLGUsdCxWOHQsMSwxLC0xKSxVOHQoImYxIixlLHQsVjh0LC0xLC0xLDEpLFU4dCgiZjIiLGUsdCxWOHQsMSwtMSwxKSxVOHQoImYzIixlLHQsVjh0LC0xLDEsMSksVTh0KCJmNCIsZSx0LFY4dCwxLDEsMSksVTh0KCJ1MSIsZSx0LFY4dCwuNywxLjEsLTEpLFU4dCgidTIiLGUsdCxWOHQsLS43LDEuMSwtMSksVTh0KCJ1MyIsZSx0LFY4dCwwLDIsLTEpLFU4dCgiY2YxIixlLHQsVjh0LC0xLDAsMSksVTh0KCJjZjIiLGUsdCxWOHQsMSwwLDEpLFU4dCgiY2YzIixlLHQsVjh0LDAsLTEsMSksVTh0KCJjZjQiLGUsdCxWOHQsMCwxLDEpLFU4dCgiY24xIixlLHQsVjh0LC0xLDAsLTEpLFU4dCgiY24yIixlLHQsVjh0LDEsMCwtMSksVTh0KCJjbjMiLGUsdCxWOHQsMCwtMSwtMSksVTh0KCJjbjQiLGUsdCxWOHQsMCwxLC0xKSx0LmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKS5uZWVkc1VwZGF0ZT0hMH1kaXNwb3NlKCl7dGhpcy5nZW9tZXRyeS5kaXNwb3NlKCksdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCl9fSxDYW52YXNSZW5kZXJlcjpmdW5jdGlvbiBuN3QoKXtjb25zb2xlLmVycm9yKCJUSFJFRS5DYW52YXNSZW5kZXJlciBoYXMgYmVlbiByZW1vdmVkIil9LENhbnZhc1RleHR1cmU6UTN0LENhdG11bGxSb21DdXJ2ZTM6djR0LENpbmVvblRvbmVNYXBwaW5nOjMsQ2lyY2xlQnVmZmVyR2VvbWV0cnk6ZTR0LENpcmNsZUdlb21ldHJ5OmU0dCxDbGFtcFRvRWRnZVdyYXBwaW5nOktLdCxDbG9jazpqOXQsQ29sb3I6JFF0LENvbG9yS2V5ZnJhbWVUcmFjazpCNnQsQ29tcHJlc3NlZFRleHR1cmU6SjN0LENvbXByZXNzZWRUZXh0dXJlTG9hZGVyOmNsYXNzIGV4dGVuZHMgJDZ0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4saSl7Y29uc3Qgcj10aGlzLG89W10sYT1uZXcgSjN0LHM9bmV3IFo2dCh0aGlzLm1hbmFnZXIpO3Muc2V0UGF0aCh0aGlzLnBhdGgpLHMuc2V0UmVzcG9uc2VUeXBlKCJhcnJheWJ1ZmZlciIpLHMuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLHMuc2V0V2l0aENyZWRlbnRpYWxzKHIud2l0aENyZWRlbnRpYWxzKTtsZXQgbD0wO2Z1bmN0aW9uIGMoYyl7cy5sb2FkKHRbY10sKGZ1bmN0aW9uKHQpe2NvbnN0IG49ci5wYXJzZSh0LCEwKTtvW2NdPXt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodCxmb3JtYXQ6bi5mb3JtYXQsbWlwbWFwczpuLm1pcG1hcHN9LGwrPTEsNj09PWwmJigxPT09bi5taXBtYXBDb3VudCYmKGEubWluRmlsdGVyPWVadCksYS5pbWFnZT1vLGEuZm9ybWF0PW4uZm9ybWF0LGEubmVlZHNVcGRhdGU9ITAsZSYmZShhKSl9KSxuLGkpfWlmKEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47KytlKWMoZSk7ZWxzZSBzLmxvYWQodCwoZnVuY3Rpb24odCl7Y29uc3Qgbj1yLnBhcnNlKHQsITApO2lmKG4uaXNDdWJlbWFwKXtjb25zdCB0PW4ubWlwbWFwcy5sZW5ndGgvbi5taXBtYXBDb3VudDtmb3IobGV0IGU9MDtlPHQ7ZSsrKXtvW2VdPXttaXBtYXBzOltdfTtmb3IobGV0IHQ9MDt0PG4ubWlwbWFwQ291bnQ7dCsrKW9bZV0ubWlwbWFwcy5wdXNoKG4ubWlwbWFwc1tlKm4ubWlwbWFwQ291bnQrdF0pLG9bZV0uZm9ybWF0PW4uZm9ybWF0LG9bZV0ud2lkdGg9bi53aWR0aCxvW2VdLmhlaWdodD1uLmhlaWdodH1hLmltYWdlPW99ZWxzZSBhLmltYWdlLndpZHRoPW4ud2lkdGgsYS5pbWFnZS5oZWlnaHQ9bi5oZWlnaHQsYS5taXBtYXBzPW4ubWlwbWFwczsxPT09bi5taXBtYXBDb3VudCYmKGEubWluRmlsdGVyPWVadCksYS5mb3JtYXQ9bi5mb3JtYXQsYS5uZWVkc1VwZGF0ZT0hMCxlJiZlKGEpfSksbixpKTtyZXR1cm4gYX19LENvbmVCdWZmZXJHZW9tZXRyeTppNHQsQ29uZUdlb21ldHJ5Omk0dCxDdWJlQ2FtZXJhOlgxdCxDdWJlUmVmbGVjdGlvbk1hcHBpbmc6akt0LEN1YmVSZWZyYWN0aW9uTWFwcGluZzpHS3QsQ3ViZVRleHR1cmU6JDF0LEN1YmVUZXh0dXJlTG9hZGVyOlE2dCxDdWJlVVZSZWZsZWN0aW9uTWFwcGluZzpZS3QsQ3ViZVVWUmVmcmFjdGlvbk1hcHBpbmc6WEt0LEN1YmljQmV6aWVyQ3VydmU6UzR0LEN1YmljQmV6aWVyQ3VydmUzOk00dCxDdWJpY0ludGVycG9sYW50Okk2dCxDdWxsRmFjZUJhY2s6MSxDdWxsRmFjZUZyb250OjIsQ3VsbEZhY2VGcm9udEJhY2s6MyxDdWxsRmFjZU5vbmU6MCxDdXJ2ZTpoNHQsQ3VydmVQYXRoOm45dCxDdXN0b21CbGVuZGluZzo1LEN1c3RvbVRvbmVNYXBwaW5nOjUsQ3lsaW5kZXJCdWZmZXJHZW9tZXRyeTpuNHQsQ3lsaW5kZXJHZW9tZXRyeTpuNHQsQ3lsaW5kcmljYWw6Y2xhc3N7Y29uc3RydWN0b3IodD0xLGU9MCxuPTApe3JldHVybiB0aGlzLnJhZGl1cz10LHRoaXMudGhldGE9ZSx0aGlzLnk9bix0aGlzfXNldCh0LGUsbil7cmV0dXJuIHRoaXMucmFkaXVzPXQsdGhpcy50aGV0YT1lLHRoaXMueT1uLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpcy50aGV0YT10LnRoZXRhLHRoaXMueT10LnksdGhpc31zZXRGcm9tVmVjdG9yMyh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tQ2FydGVzaWFuQ29vcmRzKHQueCx0LnksdC56KX1zZXRGcm9tQ2FydGVzaWFuQ29vcmRzKHQsZSxuKXtyZXR1cm4gdGhpcy5yYWRpdXM9TWF0aC5zcXJ0KHQqdCtuKm4pLHRoaXMudGhldGE9TWF0aC5hdGFuMih0LG4pLHRoaXMueT1lLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9fSxEYXRhVGV4dHVyZTpNM3QsRGF0YVRleHR1cmUyREFycmF5OkswdCxEYXRhVGV4dHVyZTNEOlowdCxEYXRhVGV4dHVyZUxvYWRlcjp0OXQsRGF0YVV0aWxzOmNsYXNze3N0YXRpYyB0b0hhbGZGbG9hdCh0KXskOHRbMF09dDtjb25zdCBlPUs4dFswXTtsZXQgbj1lPj4xNiYzMjc2OCxpPWU+PjEyJjIwNDc7Y29uc3Qgcj1lPj4yMyYyNTU7cmV0dXJuIHI8MTAzP246cj4xNDI/KG58PTMxNzQ0LG58PSgyNTU9PXI/MDoxKSYmODM4ODYwNyZlLG4pOnI8MTEzPyhpfD0yMDQ4LG58PShpPj4xMTQtcikrKGk+PjExMy1yJjEpLG4pOihufD1yLTExMjw8MTB8aT4+MSxuKz0xJmksbil9fSxEZWNyZW1lbnRTdGVuY2lsT3A6NzY4MyxEZWNyZW1lbnRXcmFwU3RlbmNpbE9wOjM0MDU2LERlZmF1bHRMb2FkaW5nTWFuYWdlcjpYNnQsRGVwdGhGb3JtYXQ6ZFp0LERlcHRoU3RlbmNpbEZvcm1hdDpwWnQsRGVwdGhUZXh0dXJlOnQ0dCxEaXJlY3Rpb25hbExpZ2h0OnY5dCxEaXJlY3Rpb25hbExpZ2h0SGVscGVyOmNsYXNzIGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcigpLHRoaXMubGlnaHQ9dCx0aGlzLmxpZ2h0LnVwZGF0ZU1hdHJpeFdvcmxkKCksdGhpcy5tYXRyaXg9dC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5jb2xvcj1uLHZvaWQgMD09PWUmJihlPTEpO2xldCBpPW5ldyBiMXQ7aS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KFstZSxlLDAsZSxlLDAsZSwtZSwwLC1lLC1lLDAsLWUsZSwwXSwzKSk7Y29uc3Qgcj1uZXcgSTN0KHtmb2c6ITEsdG9uZU1hcHBlZDohMX0pO3RoaXMubGlnaHRQbGFuZT1uZXcgSDN0KGksciksdGhpcy5hZGQodGhpcy5saWdodFBsYW5lKSxpPW5ldyBiMXQsaS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KFswLDAsMCwwLDAsMV0sMykpLHRoaXMudGFyZ2V0TGluZT1uZXcgSDN0KGksciksdGhpcy5hZGQodGhpcy50YXJnZXRMaW5lKSx0aGlzLnVwZGF0ZSgpfWRpc3Bvc2UoKXt0aGlzLmxpZ2h0UGxhbmUuZ2VvbWV0cnkuZGlzcG9zZSgpLHRoaXMubGlnaHRQbGFuZS5tYXRlcmlhbC5kaXNwb3NlKCksdGhpcy50YXJnZXRMaW5lLmdlb21ldHJ5LmRpc3Bvc2UoKSx0aGlzLnRhcmdldExpbmUubWF0ZXJpYWwuZGlzcG9zZSgpfXVwZGF0ZSgpe0Q4dC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5saWdodC5tYXRyaXhXb3JsZCksQjh0LnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLmxpZ2h0LnRhcmdldC5tYXRyaXhXb3JsZCksSDh0LnN1YlZlY3RvcnMoQjh0LEQ4dCksdGhpcy5saWdodFBsYW5lLmxvb2tBdChCOHQpLHZvaWQgMCE9PXRoaXMuY29sb3I/KHRoaXMubGlnaHRQbGFuZS5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvciksdGhpcy50YXJnZXRMaW5lLm1hdGVyaWFsLmNvbG9yLnNldCh0aGlzLmNvbG9yKSk6KHRoaXMubGlnaHRQbGFuZS5tYXRlcmlhbC5jb2xvci5jb3B5KHRoaXMubGlnaHQuY29sb3IpLHRoaXMudGFyZ2V0TGluZS5tYXRlcmlhbC5jb2xvci5jb3B5KHRoaXMubGlnaHQuY29sb3IpKSx0aGlzLnRhcmdldExpbmUubG9va0F0KEI4dCksdGhpcy50YXJnZXRMaW5lLnNjYWxlLno9SDh0Lmxlbmd0aCgpfX0sRGlzY3JldGVJbnRlcnBvbGFudDpPNnQsRG9kZWNhaGVkcm9uQnVmZmVyR2VvbWV0cnk6bzR0LERvZGVjYWhlZHJvbkdlb21ldHJ5Om80dCxEb3VibGVTaWRlOjIsRHN0QWxwaGFGYWN0b3I6MjA2LERzdENvbG9yRmFjdG9yOjIwOCxEeW5hbWljQnVmZmVyQXR0cmlidXRlOmZ1bmN0aW9uIGk3dCh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkR5bmFtaWNCdWZmZXJBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUoKS5zZXRVc2FnZSggVEhSRUUuRHluYW1pY0RyYXdVc2FnZSApIGluc3RlYWQuIiksbmV3IFFRdCh0LGUpLnNldFVzYWdlKFZadCl9LER5bmFtaWNDb3B5VXNhZ2U6MzUwNTAsRHluYW1pY0RyYXdVc2FnZTpWWnQsRHluYW1pY1JlYWRVc2FnZTozNTA0OSxFZGdlc0dlb21ldHJ5OnU0dCxFZGdlc0hlbHBlcjpmdW5jdGlvbiByN3QodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5FZGdlc0hlbHBlciBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuRWRnZXNHZW9tZXRyeSBpbnN0ZWFkLiIpLG5ldyBVM3QobmV3IHU0dCh0Lmdlb21ldHJ5KSxuZXcgSTN0KHtjb2xvcjp2b2lkIDAhPT1lP2U6MTY3NzcyMTV9KSl9LEVsbGlwc2VDdXJ2ZTpkNHQsRXF1YWxEZXB0aDo0LEVxdWFsU3RlbmNpbEZ1bmM6NTE0LEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nOldLdCxFcXVpcmVjdGFuZ3VsYXJSZWZyYWN0aW9uTWFwcGluZzpxS3QsRXVsZXI6ZlF0LEV2ZW50RGlzcGF0Y2hlcjpqWnQsRXh0cnVkZUJ1ZmZlckdlb21ldHJ5OnI2dCxFeHRydWRlR2VvbWV0cnk6cjZ0LEZhY2VDb2xvcnM6MSxGaWxlTG9hZGVyOlo2dCxGbGF0U2hhZGluZzoxLEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU6czF0LEZsb2F0MzJBdHRyaWJ1dGU6ZnVuY3Rpb24gbzd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuRmxvYXQzMkF0dHJpYnV0ZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLkZsb2F0MzJCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyBsMXQodCxlKX0sRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZTpsMXQsRmxvYXQ2NEF0dHJpYnV0ZTpmdW5jdGlvbiBhN3QodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5GbG9hdDY0QXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuRmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IGMxdCh0LGUpfSxGbG9hdDY0QnVmZmVyQXR0cmlidXRlOmMxdCxGbG9hdFR5cGU6c1p0LEZvZzpZNXQsRm9nRXhwMjpxNXQsRm9udDpSOXQsRm9udExvYWRlcjpjbGFzcyBleHRlbmRzICQ2dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9dGhpcyxvPW5ldyBaNnQodGhpcy5tYW5hZ2VyKTtvLnNldFBhdGgodGhpcy5wYXRoKSxvLnNldFJlcXVlc3RIZWFkZXIodGhpcy5yZXF1ZXN0SGVhZGVyKSxvLnNldFdpdGhDcmVkZW50aWFscyhyLndpdGhDcmVkZW50aWFscyksby5sb2FkKHQsKGZ1bmN0aW9uKHQpe2xldCBuO3RyeXtuPUpTT04ucGFyc2UodCl9Y2F0Y2goZSl7Y29uc29sZS53YXJuKCJUSFJFRS5Gb250TG9hZGVyOiB0eXBlZmFjZS5qcyBzdXBwb3J0IGlzIGJlaW5nIGRlcHJlY2F0ZWQuIFVzZSB0eXBlZmFjZS5qc29uIGluc3RlYWQuIiksbj1KU09OLnBhcnNlKHQuc3Vic3RyaW5nKDY1LHQubGVuZ3RoLTIpKX1jb25zdCBpPXIucGFyc2Uobik7ZSYmZShpKX0pLG4saSl9cGFyc2UodCl7cmV0dXJuIG5ldyBSOXQodCl9fSxGcm9udFNpZGU6MCxGcnVzdHVtOmkwdCxHTEJ1ZmZlckF0dHJpYnV0ZTpfOHQsR0xTTDE6IjEwMCIsR0xTTDM6VVp0LEdhbW1hRW5jb2Rpbmc6Ulp0LEdyZWF0ZXJEZXB0aDo2LEdyZWF0ZXJFcXVhbERlcHRoOjUsR3JlYXRlckVxdWFsU3RlbmNpbEZ1bmM6NTE4LEdyZWF0ZXJTdGVuY2lsRnVuYzo1MTYsR3JpZEhlbHBlcjp6OHQsR3JvdXA6SDV0LEhhbGZGbG9hdFR5cGU6bFp0LEhlbWlzcGhlcmVMaWdodDphOXQsSGVtaXNwaGVyZUxpZ2h0SGVscGVyOmNsYXNzIGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcigpLHRoaXMubGlnaHQ9dCx0aGlzLmxpZ2h0LnVwZGF0ZU1hdHJpeFdvcmxkKCksdGhpcy5tYXRyaXg9dC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5jb2xvcj1uO2NvbnN0IGk9bmV3IGw2dChlKTtpLnJvdGF0ZVkoLjUqTWF0aC5QSSksdGhpcy5tYXRlcmlhbD1uZXcgS1F0KHt3aXJlZnJhbWU6ITAsZm9nOiExLHRvbmVNYXBwZWQ6ITF9KSx2b2lkIDA9PT10aGlzLmNvbG9yJiYodGhpcy5tYXRlcmlhbC52ZXJ0ZXhDb2xvcnM9ITApO2NvbnN0IHI9aS5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIiksbz1uZXcgRmxvYXQzMkFycmF5KDMqci5jb3VudCk7aS5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgUVF0KG8sMykpLHRoaXMuYWRkKG5ldyBCMXQoaSx0aGlzLm1hdGVyaWFsKSksdGhpcy51cGRhdGUoKX1kaXNwb3NlKCl7dGhpcy5jaGlsZHJlblswXS5nZW9tZXRyeS5kaXNwb3NlKCksdGhpcy5jaGlsZHJlblswXS5tYXRlcmlhbC5kaXNwb3NlKCl9dXBkYXRlKCl7Y29uc3QgdD10aGlzLmNoaWxkcmVuWzBdO2lmKHZvaWQgMCE9PXRoaXMuY29sb3IpdGhpcy5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvcik7ZWxzZXtjb25zdCBlPXQuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCJjb2xvciIpO1I4dC5jb3B5KHRoaXMubGlnaHQuY29sb3IpLE84dC5jb3B5KHRoaXMubGlnaHQuZ3JvdW5kQ29sb3IpO2ZvcihsZXQgdD0wLG49ZS5jb3VudDt0PG47dCsrKXtjb25zdCBpPXQ8bi8yP1I4dDpPOHQ7ZS5zZXRYWVoodCxpLnIsaS5nLGkuYil9ZS5uZWVkc1VwZGF0ZT0hMH10Lmxvb2tBdChJOHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubGlnaHQubWF0cml4V29ybGQpLm5lZ2F0ZSgpKX19LEhlbWlzcGhlcmVMaWdodFByb2JlOkg5dCxJY29zYWhlZHJvbkJ1ZmZlckdlb21ldHJ5OmE2dCxJY29zYWhlZHJvbkdlb21ldHJ5OmE2dCxJbWFnZUJpdG1hcExvYWRlcjpOOXQsSW1hZ2VMb2FkZXI6SjZ0LEltYWdlVXRpbHM6eUp0LEltbWVkaWF0ZVJlbmRlck9iamVjdDpUOHQsSW5jcmVtZW50U3RlbmNpbE9wOjc2ODIsSW5jcmVtZW50V3JhcFN0ZW5jaWxPcDozNDA1NSxJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU6Qzl0LEluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5OlQ5dCxJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcjpnOHQsSW5zdGFuY2VkTWVzaDpOM3QsSW50MTZBdHRyaWJ1dGU6ZnVuY3Rpb24gczd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuSW50MTZBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5JbnQxNkJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IGkxdCh0LGUpfSxJbnQxNkJ1ZmZlckF0dHJpYnV0ZTppMXQsSW50MzJBdHRyaWJ1dGU6ZnVuY3Rpb24gbDd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuSW50MzJBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5JbnQzMkJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IG8xdCh0LGUpfSxJbnQzMkJ1ZmZlckF0dHJpYnV0ZTpvMXQsSW50OEF0dHJpYnV0ZTpmdW5jdGlvbiBjN3QodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5JbnQ4QXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuSW50OEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IHQxdCh0LGUpfSxJbnQ4QnVmZmVyQXR0cmlidXRlOnQxdCxJbnRUeXBlOjEwMTMsSW50ZXJsZWF2ZWRCdWZmZXI6JDV0LEludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlOlo1dCxJbnRlcnBvbGFudDpONnQsSW50ZXJwb2xhdGVEaXNjcmV0ZTpNWnQsSW50ZXJwb2xhdGVMaW5lYXI6RVp0LEludGVycG9sYXRlU21vb3RoOlRadCxJbnZlcnRTdGVuY2lsT3A6NTM4NixKU09OTG9hZGVyOmZ1bmN0aW9uIHU3dCgpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkpTT05Mb2FkZXIgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sS2VlcFN0ZW5jaWxPcDpIWnQsS2V5ZnJhbWVUcmFjazp6NnQsTE9EOmczdCxMYXRoZUJ1ZmZlckdlb21ldHJ5OnM2dCxMYXRoZUdlb21ldHJ5OnM2dCxMYXllcnM6bVF0LExlbnNGbGFyZTpmdW5jdGlvbiBoN3QoKXtjb25zb2xlLmVycm9yKCJUSFJFRS5MZW5zRmxhcmUgaGFzIGJlZW4gbW92ZWQgdG8gL2V4YW1wbGVzL2pzbS9vYmplY3RzL0xlbnNmbGFyZS5qcyIpfSxMZXNzRGVwdGg6MixMZXNzRXF1YWxEZXB0aDozLExlc3NFcXVhbFN0ZW5jaWxGdW5jOjUxNSxMZXNzU3RlbmNpbEZ1bmM6NTEzLExpZ2h0Om85dCxMaWdodFByb2JlOlM5dCxMaW5lOkgzdCxMaW5lMzpFOHQsTGluZUJhc2ljTWF0ZXJpYWw6STN0LExpbmVDdXJ2ZTpFNHQsTGluZUN1cnZlMzpUNHQsTGluZURhc2hlZE1hdGVyaWFsOms2dCxMaW5lTG9vcDpqM3QsTGluZVBpZWNlczoxLExpbmVTZWdtZW50czpVM3QsTGluZVN0cmlwOjAsTGluZWFyRW5jb2Rpbmc6Tlp0LExpbmVhckZpbHRlcjplWnQsTGluZWFySW50ZXJwb2xhbnQ6UjZ0LExpbmVhck1pcE1hcExpbmVhckZpbHRlcjoxMDA4LExpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXI6MTAwNyxMaW5lYXJNaXBtYXBMaW5lYXJGaWx0ZXI6aVp0LExpbmVhck1pcG1hcE5lYXJlc3RGaWx0ZXI6blp0LExpbmVhclRvbmVNYXBwaW5nOjEsTG9hZGVyOiQ2dCxMb2FkZXJVdGlsczpFOXQsTG9hZGluZ01hbmFnZXI6WTZ0LExvZ0x1dkVuY29kaW5nOjMwMDMsTG9vcE9uY2U6MjIwMCxMb29wUGluZ1Bvbmc6MjIwMixMb29wUmVwZWF0OjIyMDEsTHVtaW5hbmNlQWxwaGFGb3JtYXQ6MTAyNSxMdW1pbmFuY2VGb3JtYXQ6MTAyNCxNT1VTRTpIS3QsTWF0ZXJpYWw6VVF0LE1hdGVyaWFsTG9hZGVyOk05dCxNYXRoOmVKdCxNYXRoVXRpbHM6ZUp0LE1hdHJpeDM6Z0p0LE1hdHJpeDQ6clF0LE1heEVxdWF0aW9uOjEwNCxNZXNoOkIxdCxNZXNoQmFzaWNNYXRlcmlhbDpLUXQsTWVzaERlcHRoTWF0ZXJpYWw6TjV0LE1lc2hEaXN0YW5jZU1hdGVyaWFsOkk1dCxNZXNoRmFjZU1hdGVyaWFsOmZ1bmN0aW9uIGQ3dCh0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NZXNoRmFjZU1hdGVyaWFsIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBhbiBBcnJheSBpbnN0ZWFkLiIpLHR9LE1lc2hMYW1iZXJ0TWF0ZXJpYWw6QzZ0LE1lc2hNYXRjYXBNYXRlcmlhbDpBNnQsTWVzaE5vcm1hbE1hdGVyaWFsOlQ2dCxNZXNoUGhvbmdNYXRlcmlhbDpNNnQsTWVzaFBoeXNpY2FsTWF0ZXJpYWw6UzZ0LE1lc2hTdGFuZGFyZE1hdGVyaWFsOnc2dCxNZXNoVG9vbk1hdGVyaWFsOkU2dCxNaW5FcXVhdGlvbjoxMDMsTWlycm9yZWRSZXBlYXRXcmFwcGluZzpaS3QsTWl4T3BlcmF0aW9uOjEsTXVsdGlNYXRlcmlhbDpmdW5jdGlvbiBwN3QodD1bXSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTXVsdGlNYXRlcmlhbCBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYW4gQXJyYXkgaW5zdGVhZC4iKSx0LmlzTXVsdGlNYXRlcmlhbD0hMCx0Lm1hdGVyaWFscz10LHQuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5zbGljZSgpfSx0fSxNdWx0aXBseUJsZW5kaW5nOjQsTXVsdGlwbHlPcGVyYXRpb246MCxOZWFyZXN0RmlsdGVyOkpLdCxOZWFyZXN0TWlwTWFwTGluZWFyRmlsdGVyOjEwMDUsTmVhcmVzdE1pcE1hcE5lYXJlc3RGaWx0ZXI6MTAwNCxOZWFyZXN0TWlwbWFwTGluZWFyRmlsdGVyOnRadCxOZWFyZXN0TWlwbWFwTmVhcmVzdEZpbHRlcjpRS3QsTmV2ZXJEZXB0aDowLE5ldmVyU3RlbmNpbEZ1bmM6NTEyLE5vQmxlbmRpbmc6MCxOb0NvbG9yczowLE5vVG9uZU1hcHBpbmc6MCxOb3JtYWxBbmltYXRpb25CbGVuZE1vZGU6TFp0LE5vcm1hbEJsZW5kaW5nOjEsTm90RXF1YWxEZXB0aDo3LE5vdEVxdWFsU3RlbmNpbEZ1bmM6NTE3LE51bWJlcktleWZyYW1lVHJhY2s6SDZ0LE9iamVjdDNEOmtRdCxPYmplY3RMb2FkZXI6Y2xhc3MgZXh0ZW5kcyAkNnR7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixpKXtjb25zdCByPXRoaXMsbz0iIj09PXRoaXMucGF0aD9FOXQuZXh0cmFjdFVybEJhc2UodCk6dGhpcy5wYXRoO3RoaXMucmVzb3VyY2VQYXRoPXRoaXMucmVzb3VyY2VQYXRofHxvO2NvbnN0IGE9bmV3IFo2dCh0aGlzLm1hbmFnZXIpO2Euc2V0UGF0aCh0aGlzLnBhdGgpLGEuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLGEuc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKSxhLmxvYWQodCwoZnVuY3Rpb24obil7bGV0IG89bnVsbDt0cnl7bz1KU09OLnBhcnNlKG4pfWNhdGNoKGUpe3JldHVybiB2b2lkIDAhPT1pJiZpKGUpLHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUU6T2JqZWN0TG9hZGVyOiBDYW4ndCBwYXJzZSAiK3QrIi4iLGUubWVzc2FnZSl9Y29uc3QgYT1vLm1ldGFkYXRhO3ZvaWQgMCE9PWEmJnZvaWQgMCE9PWEudHlwZSYmImdlb21ldHJ5IiE9PWEudHlwZS50b0xvd2VyQ2FzZSgpP3IucGFyc2UobyxlKTpjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3RMb2FkZXI6IENhbid0IGxvYWQgIit0KX0pLG4saSl9YXN5bmMgbG9hZEFzeW5jKHQsZSl7Y29uc3Qgbj0iIj09PXRoaXMucGF0aD9FOXQuZXh0cmFjdFVybEJhc2UodCk6dGhpcy5wYXRoO3RoaXMucmVzb3VyY2VQYXRoPXRoaXMucmVzb3VyY2VQYXRofHxuO2NvbnN0IGk9bmV3IFo2dCh0aGlzLm1hbmFnZXIpO2kuc2V0UGF0aCh0aGlzLnBhdGgpLGkuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLGkuc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKTtjb25zdCByPWF3YWl0IGkubG9hZEFzeW5jKHQsZSksbz1KU09OLnBhcnNlKHIpLGE9by5tZXRhZGF0YTtpZih2b2lkIDA9PT1hfHx2b2lkIDA9PT1hLnR5cGV8fCJnZW9tZXRyeSI9PT1hLnR5cGUudG9Mb3dlckNhc2UoKSl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLk9iamVjdExvYWRlcjogQ2FuJ3QgbG9hZCAiK3QpO3JldHVybiBhd2FpdCB0aGlzLnBhcnNlQXN5bmMobyl9cGFyc2UodCxlKXtjb25zdCBuPXRoaXMucGFyc2VBbmltYXRpb25zKHQuYW5pbWF0aW9ucyksaT10aGlzLnBhcnNlU2hhcGVzKHQuc2hhcGVzKSxyPXRoaXMucGFyc2VHZW9tZXRyaWVzKHQuZ2VvbWV0cmllcyxpKSxvPXRoaXMucGFyc2VJbWFnZXModC5pbWFnZXMsKGZ1bmN0aW9uKCl7dm9pZCAwIT09ZSYmZShsKX0pKSxhPXRoaXMucGFyc2VUZXh0dXJlcyh0LnRleHR1cmVzLG8pLHM9dGhpcy5wYXJzZU1hdGVyaWFscyh0Lm1hdGVyaWFscyxhKSxsPXRoaXMucGFyc2VPYmplY3QodC5vYmplY3QscixzLGEsbiksYz10aGlzLnBhcnNlU2tlbGV0b25zKHQuc2tlbGV0b25zLGwpO2lmKHRoaXMuYmluZFNrZWxldG9ucyhsLGMpLHZvaWQgMCE9PWUpe2xldCB0PSExO2Zvcihjb25zdCBlIGluIG8paWYob1tlXWluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCl7dD0hMDticmVha30hMT09PXQmJmUobCl9cmV0dXJuIGx9YXN5bmMgcGFyc2VBc3luYyh0KXtjb25zdCBlPXRoaXMucGFyc2VBbmltYXRpb25zKHQuYW5pbWF0aW9ucyksbj10aGlzLnBhcnNlU2hhcGVzKHQuc2hhcGVzKSxpPXRoaXMucGFyc2VHZW9tZXRyaWVzKHQuZ2VvbWV0cmllcyxuKSxyPWF3YWl0IHRoaXMucGFyc2VJbWFnZXNBc3luYyh0LmltYWdlcyksbz10aGlzLnBhcnNlVGV4dHVyZXModC50ZXh0dXJlcyxyKSxhPXRoaXMucGFyc2VNYXRlcmlhbHModC5tYXRlcmlhbHMsbykscz10aGlzLnBhcnNlT2JqZWN0KHQub2JqZWN0LGksYSxvLGUpLGw9dGhpcy5wYXJzZVNrZWxldG9ucyh0LnNrZWxldG9ucyxzKTtyZXR1cm4gdGhpcy5iaW5kU2tlbGV0b25zKHMsbCksc31wYXJzZVNoYXBlcyh0KXtjb25zdCBlPXt9O2lmKHZvaWQgMCE9PXQpZm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKXtjb25zdCBpPShuZXcgcjl0KS5mcm9tSlNPTih0W25dKTtlW2kudXVpZF09aX1yZXR1cm4gZX1wYXJzZVNrZWxldG9ucyh0LGUpe2NvbnN0IG49e30saT17fTtpZihlLnRyYXZlcnNlKChmdW5jdGlvbih0KXt0LmlzQm9uZSYmKGlbdC51dWlkXT10KX0pKSx2b2lkIDAhPT10KWZvcihsZXQgZT0wLHI9dC5sZW5ndGg7ZTxyO2UrKyl7Y29uc3Qgcj0obmV3IEMzdCkuZnJvbUpTT04odFtlXSxpKTtuW3IudXVpZF09cn1yZXR1cm4gbn1wYXJzZUdlb21ldHJpZXModCxlKXtjb25zdCBuPXt9O2lmKHZvaWQgMCE9PXQpe2NvbnN0IGk9bmV3IEE5dDtmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bztyKyspe2xldCBvO2NvbnN0IGE9dFtyXTtzd2l0Y2goYS50eXBlKXtjYXNlIkJ1ZmZlckdlb21ldHJ5IjpjYXNlIkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5IjpvPWkucGFyc2UoYSk7YnJlYWs7Y2FzZSJHZW9tZXRyeSI6Y29uc29sZS5lcnJvcigiVEhSRUUuT2JqZWN0TG9hZGVyOiBUaGUgbGVnYWN5IEdlb21ldHJ5IHR5cGUgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4iKTticmVhaztkZWZhdWx0OmEudHlwZSBpbiBiNnQ/bz1iNnRbYS50eXBlXS5mcm9tSlNPTihhLGUpOmNvbnNvbGUud2FybihgVEhSRUUuT2JqZWN0TG9hZGVyOiBVbnN1cHBvcnRlZCBnZW9tZXRyeSB0eXBlICIke2EudHlwZX0iYCl9by51dWlkPWEudXVpZCx2b2lkIDAhPT1hLm5hbWUmJihvLm5hbWU9YS5uYW1lKSwhMD09PW8uaXNCdWZmZXJHZW9tZXRyeSYmdm9pZCAwIT09YS51c2VyRGF0YSYmKG8udXNlckRhdGE9YS51c2VyRGF0YSksblthLnV1aWRdPW99fXJldHVybiBufXBhcnNlTWF0ZXJpYWxzKHQsZSl7Y29uc3Qgbj17fSxpPXt9O2lmKHZvaWQgMCE9PXQpe2NvbnN0IHI9bmV3IE05dDtyLnNldFRleHR1cmVzKGUpO2ZvcihsZXQgZT0wLG89dC5sZW5ndGg7ZTxvO2UrKyl7Y29uc3Qgbz10W2VdO2lmKCJNdWx0aU1hdGVyaWFsIj09PW8udHlwZSl7Y29uc3QgdD1bXTtmb3IobGV0IGU9MDtlPG8ubWF0ZXJpYWxzLmxlbmd0aDtlKyspe2NvbnN0IGk9by5tYXRlcmlhbHNbZV07dm9pZCAwPT09bltpLnV1aWRdJiYobltpLnV1aWRdPXIucGFyc2UoaSkpLHQucHVzaChuW2kudXVpZF0pfWlbby51dWlkXT10fWVsc2Ugdm9pZCAwPT09bltvLnV1aWRdJiYobltvLnV1aWRdPXIucGFyc2UobykpLGlbby51dWlkXT1uW28udXVpZF19fXJldHVybiBpfXBhcnNlQW5pbWF0aW9ucyh0KXtjb25zdCBlPXt9O2lmKHZvaWQgMCE9PXQpZm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IGk9RzZ0LnBhcnNlKHRbbl0pO2VbaS51dWlkXT1pfXJldHVybiBlfXBhcnNlSW1hZ2VzKHQsZSl7Y29uc3Qgbj10aGlzLGk9e307bGV0IHI7ZnVuY3Rpb24gbyh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpe2NvbnN0IGU9dDtyZXR1cm4oZnVuY3Rpb24gaSh0KXtyZXR1cm4gbi5tYW5hZ2VyLml0ZW1TdGFydCh0KSxyLmxvYWQodCwoZnVuY3Rpb24oKXtuLm1hbmFnZXIuaXRlbUVuZCh0KX0pLHZvaWQgMCwoZnVuY3Rpb24oKXtuLm1hbmFnZXIuaXRlbUVycm9yKHQpLG4ubWFuYWdlci5pdGVtRW5kKHQpfSkpfSkoL14oXC9cLyl8KFthLXpdKzooXC9cLyk/KS9pLnRlc3QoZSk/ZTpuLnJlc291cmNlUGF0aCtlKX1yZXR1cm4gdC5kYXRhP3tkYXRhOmQxdCh0LnR5cGUsdC5kYXRhKSx3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodH06bnVsbH1pZih2b2lkIDAhPT10JiZ0Lmxlbmd0aD4wKXtjb25zdCBuPW5ldyBZNnQoZSk7cj1uZXcgSjZ0KG4pLHIuc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbik7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0scj1uLnVybDtpZihBcnJheS5pc0FycmF5KHIpKXtpW24udXVpZF09W107Zm9yKGxldCB0PTAsZT1yLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPW8oclt0XSk7bnVsbCE9PWUmJihlIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudD9pW24udXVpZF0ucHVzaChlKTppW24udXVpZF0ucHVzaChuZXcgTTN0KGUuZGF0YSxlLndpZHRoLGUuaGVpZ2h0KSkpfX1lbHNle2NvbnN0IHQ9byhuLnVybCk7bnVsbCE9PXQmJihpW24udXVpZF09dCl9fX1yZXR1cm4gaX1hc3luYyBwYXJzZUltYWdlc0FzeW5jKHQpe2NvbnN0IGU9dGhpcyxuPXt9O2xldCBpO2FzeW5jIGZ1bmN0aW9uIHIodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtjb25zdCBuPXQscj0vXihcL1wvKXwoW2Etel0rOihcL1wvKT8pL2kudGVzdChuKT9uOmUucmVzb3VyY2VQYXRoK247cmV0dXJuIGF3YWl0IGkubG9hZEFzeW5jKHIpfXJldHVybiB0LmRhdGE/e2RhdGE6ZDF0KHQudHlwZSx0LmRhdGEpLHdpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVpZ2h0fTpudWxsfWlmKHZvaWQgMCE9PXQmJnQubGVuZ3RoPjApe2k9bmV3IEo2dCh0aGlzLm1hbmFnZXIpLGkuc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbik7Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSsrKXtjb25zdCBpPXRbZV0sbz1pLnVybDtpZihBcnJheS5pc0FycmF5KG8pKXtuW2kudXVpZF09W107Zm9yKGxldCB0PTAsZT1vLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPW9bdF0sYT1hd2FpdCByKGUpO251bGwhPT1hJiYoYSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQ/bltpLnV1aWRdLnB1c2goYSk6bltpLnV1aWRdLnB1c2gobmV3IE0zdChhLmRhdGEsYS53aWR0aCxhLmhlaWdodCkpKX19ZWxzZXtjb25zdCB0PWF3YWl0IHIoaS51cmwpO251bGwhPT10JiYobltpLnV1aWRdPXQpfX19cmV0dXJuIG59cGFyc2VUZXh0dXJlcyh0LGUpe2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/dDooY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3RMb2FkZXIucGFyc2VUZXh0dXJlOiBDb25zdGFudCBzaG91bGQgYmUgaW4gbnVtZXJpYyBmb3JtLiIsdCksZVt0XSl9Y29uc3QgaT17fTtpZih2b2lkIDAhPT10KWZvcihsZXQgcj0wLG89dC5sZW5ndGg7cjxvO3IrKyl7Y29uc3Qgbz10W3JdO2xldCBhO3ZvaWQgMD09PW8uaW1hZ2UmJmNvbnNvbGUud2FybignVEhSRUUuT2JqZWN0TG9hZGVyOiBObyAiaW1hZ2UiIHNwZWNpZmllZCBmb3InLG8udXVpZCksdm9pZCAwPT09ZVtvLmltYWdlXSYmY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3RMb2FkZXI6IFVuZGVmaW5lZCBpbWFnZSIsby5pbWFnZSk7Y29uc3Qgcz1lW28uaW1hZ2VdO0FycmF5LmlzQXJyYXkocyk/KGE9bmV3ICQxdChzKSw2PT09cy5sZW5ndGgmJihhLm5lZWRzVXBkYXRlPSEwKSk6KGE9cyYmcy5kYXRhP25ldyBNM3Qocy5kYXRhLHMud2lkdGgscy5oZWlnaHQpOm5ldyBiSnQocykscyYmKGEubmVlZHNVcGRhdGU9ITApKSxhLnV1aWQ9by51dWlkLHZvaWQgMCE9PW8ubmFtZSYmKGEubmFtZT1vLm5hbWUpLHZvaWQgMCE9PW8ubWFwcGluZyYmKGEubWFwcGluZz1uKG8ubWFwcGluZyxrOXQpKSx2b2lkIDAhPT1vLm9mZnNldCYmYS5vZmZzZXQuZnJvbUFycmF5KG8ub2Zmc2V0KSx2b2lkIDAhPT1vLnJlcGVhdCYmYS5yZXBlYXQuZnJvbUFycmF5KG8ucmVwZWF0KSx2b2lkIDAhPT1vLmNlbnRlciYmYS5jZW50ZXIuZnJvbUFycmF5KG8uY2VudGVyKSx2b2lkIDAhPT1vLnJvdGF0aW9uJiYoYS5yb3RhdGlvbj1vLnJvdGF0aW9uKSx2b2lkIDAhPT1vLndyYXAmJihhLndyYXBTPW4oby53cmFwWzBdLEw5dCksYS53cmFwVD1uKG8ud3JhcFsxXSxMOXQpKSx2b2lkIDAhPT1vLmZvcm1hdCYmKGEuZm9ybWF0PW8uZm9ybWF0KSx2b2lkIDAhPT1vLnR5cGUmJihhLnR5cGU9by50eXBlKSx2b2lkIDAhPT1vLmVuY29kaW5nJiYoYS5lbmNvZGluZz1vLmVuY29kaW5nKSx2b2lkIDAhPT1vLm1pbkZpbHRlciYmKGEubWluRmlsdGVyPW4oby5taW5GaWx0ZXIsUDl0KSksdm9pZCAwIT09by5tYWdGaWx0ZXImJihhLm1hZ0ZpbHRlcj1uKG8ubWFnRmlsdGVyLFA5dCkpLHZvaWQgMCE9PW8uYW5pc290cm9weSYmKGEuYW5pc290cm9weT1vLmFuaXNvdHJvcHkpLHZvaWQgMCE9PW8uZmxpcFkmJihhLmZsaXBZPW8uZmxpcFkpLHZvaWQgMCE9PW8ucHJlbXVsdGlwbHlBbHBoYSYmKGEucHJlbXVsdGlwbHlBbHBoYT1vLnByZW11bHRpcGx5QWxwaGEpLHZvaWQgMCE9PW8udW5wYWNrQWxpZ25tZW50JiYoYS51bnBhY2tBbGlnbm1lbnQ9by51bnBhY2tBbGlnbm1lbnQpLGlbby51dWlkXT1hfXJldHVybiBpfXBhcnNlT2JqZWN0KHQsZSxuLGkscil7bGV0IG8sYSxzO2Z1bmN0aW9uIGwodCl7cmV0dXJuIHZvaWQgMD09PWVbdF0mJmNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyOiBVbmRlZmluZWQgZ2VvbWV0cnkiLHQpLGVbdF19ZnVuY3Rpb24gYyh0KXtpZih2b2lkIDAhPT10KXtpZihBcnJheS5pc0FycmF5KHQpKXtjb25zdCBlPVtdO2ZvcihsZXQgaT0wLHI9dC5sZW5ndGg7aTxyO2krKyl7Y29uc3Qgcj10W2ldO3ZvaWQgMD09PW5bcl0mJmNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyOiBVbmRlZmluZWQgbWF0ZXJpYWwiLHIpLGUucHVzaChuW3JdKX1yZXR1cm4gZX1yZXR1cm4gdm9pZCAwPT09blt0XSYmY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3RMb2FkZXI6IFVuZGVmaW5lZCBtYXRlcmlhbCIsdCksblt0XX19ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdm9pZCAwPT09aVt0XSYmY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3RMb2FkZXI6IFVuZGVmaW5lZCB0ZXh0dXJlIix0KSxpW3RdfXN3aXRjaCh0LnR5cGUpe2Nhc2UiU2NlbmUiOm89bmV3IFg1dCx2b2lkIDAhPT10LmJhY2tncm91bmQmJihvLmJhY2tncm91bmQ9TnVtYmVyLmlzSW50ZWdlcih0LmJhY2tncm91bmQpP25ldyAkUXQodC5iYWNrZ3JvdW5kKTp1KHQuYmFja2dyb3VuZCkpLHZvaWQgMCE9PXQuZW52aXJvbm1lbnQmJihvLmVudmlyb25tZW50PXUodC5lbnZpcm9ubWVudCkpLHZvaWQgMCE9PXQuZm9nJiYoIkZvZyI9PT10LmZvZy50eXBlP28uZm9nPW5ldyBZNXQodC5mb2cuY29sb3IsdC5mb2cubmVhcix0LmZvZy5mYXIpOiJGb2dFeHAyIj09PXQuZm9nLnR5cGUmJihvLmZvZz1uZXcgcTV0KHQuZm9nLmNvbG9yLHQuZm9nLmRlbnNpdHkpKSk7YnJlYWs7Y2FzZSJQZXJzcGVjdGl2ZUNhbWVyYSI6bz1uZXcgcTF0KHQuZm92LHQuYXNwZWN0LHQubmVhcix0LmZhciksdm9pZCAwIT09dC5mb2N1cyYmKG8uZm9jdXM9dC5mb2N1cyksdm9pZCAwIT09dC56b29tJiYoby56b29tPXQuem9vbSksdm9pZCAwIT09dC5maWxtR2F1Z2UmJihvLmZpbG1HYXVnZT10LmZpbG1HYXVnZSksdm9pZCAwIT09dC5maWxtT2Zmc2V0JiYoby5maWxtT2Zmc2V0PXQuZmlsbU9mZnNldCksdm9pZCAwIT09dC52aWV3JiYoby52aWV3PU9iamVjdC5hc3NpZ24oe30sdC52aWV3KSk7YnJlYWs7Y2FzZSJPcnRob2dyYXBoaWNDYW1lcmEiOm89bmV3IGcwdCh0LmxlZnQsdC5yaWdodCx0LnRvcCx0LmJvdHRvbSx0Lm5lYXIsdC5mYXIpLHZvaWQgMCE9PXQuem9vbSYmKG8uem9vbT10Lnpvb20pLHZvaWQgMCE9PXQudmlldyYmKG8udmlldz1PYmplY3QuYXNzaWduKHt9LHQudmlldykpO2JyZWFrO2Nhc2UiQW1iaWVudExpZ2h0IjpvPW5ldyBiOXQodC5jb2xvcix0LmludGVuc2l0eSk7YnJlYWs7Y2FzZSJEaXJlY3Rpb25hbExpZ2h0IjpvPW5ldyB2OXQodC5jb2xvcix0LmludGVuc2l0eSk7YnJlYWs7Y2FzZSJQb2ludExpZ2h0IjpvPW5ldyBfOXQodC5jb2xvcix0LmludGVuc2l0eSx0LmRpc3RhbmNlLHQuZGVjYXkpO2JyZWFrO2Nhc2UiUmVjdEFyZWFMaWdodCI6bz1uZXcgeDl0KHQuY29sb3IsdC5pbnRlbnNpdHksdC53aWR0aCx0LmhlaWdodCk7YnJlYWs7Y2FzZSJTcG90TGlnaHQiOm89bmV3IGQ5dCh0LmNvbG9yLHQuaW50ZW5zaXR5LHQuZGlzdGFuY2UsdC5hbmdsZSx0LnBlbnVtYnJhLHQuZGVjYXkpO2JyZWFrO2Nhc2UiSGVtaXNwaGVyZUxpZ2h0IjpvPW5ldyBhOXQodC5jb2xvcix0Lmdyb3VuZENvbG9yLHQuaW50ZW5zaXR5KTticmVhaztjYXNlIkxpZ2h0UHJvYmUiOm89KG5ldyBTOXQpLmZyb21KU09OKHQpO2JyZWFrO2Nhc2UiU2tpbm5lZE1lc2giOmE9bCh0Lmdlb21ldHJ5KSxzPWModC5tYXRlcmlhbCksbz1uZXcgdzN0KGEscyksdm9pZCAwIT09dC5iaW5kTW9kZSYmKG8uYmluZE1vZGU9dC5iaW5kTW9kZSksdm9pZCAwIT09dC5iaW5kTWF0cml4JiZvLmJpbmRNYXRyaXguZnJvbUFycmF5KHQuYmluZE1hdHJpeCksdm9pZCAwIT09dC5za2VsZXRvbiYmKG8uc2tlbGV0b249dC5za2VsZXRvbik7YnJlYWs7Y2FzZSJNZXNoIjphPWwodC5nZW9tZXRyeSkscz1jKHQubWF0ZXJpYWwpLG89bmV3IEIxdChhLHMpO2JyZWFrO2Nhc2UiSW5zdGFuY2VkTWVzaCI6YT1sKHQuZ2VvbWV0cnkpLHM9Yyh0Lm1hdGVyaWFsKTtjb25zdCBlPXQuaW5zdGFuY2VNYXRyaXgsbj10Lmluc3RhbmNlQ29sb3I7bz1uZXcgTjN0KGEscyx0LmNvdW50KSxvLmluc3RhbmNlTWF0cml4PW5ldyBRUXQobmV3IEZsb2F0MzJBcnJheShlLmFycmF5KSwxNiksdm9pZCAwIT09biYmKG8uaW5zdGFuY2VDb2xvcj1uZXcgUVF0KG5ldyBGbG9hdDMyQXJyYXkobi5hcnJheSksbi5pdGVtU2l6ZSkpO2JyZWFrO2Nhc2UiTE9EIjpvPW5ldyBnM3Q7YnJlYWs7Y2FzZSJMaW5lIjpvPW5ldyBIM3QobCh0Lmdlb21ldHJ5KSxjKHQubWF0ZXJpYWwpKTticmVhaztjYXNlIkxpbmVMb29wIjpvPW5ldyBqM3QobCh0Lmdlb21ldHJ5KSxjKHQubWF0ZXJpYWwpKTticmVhaztjYXNlIkxpbmVTZWdtZW50cyI6bz1uZXcgVTN0KGwodC5nZW9tZXRyeSksYyh0Lm1hdGVyaWFsKSk7YnJlYWs7Y2FzZSJQb2ludENsb3VkIjpjYXNlIlBvaW50cyI6bz1uZXcgJDN0KGwodC5nZW9tZXRyeSksYyh0Lm1hdGVyaWFsKSk7YnJlYWs7Y2FzZSJTcHJpdGUiOm89bmV3IGQzdChjKHQubWF0ZXJpYWwpKTticmVhaztjYXNlIkdyb3VwIjpvPW5ldyBINXQ7YnJlYWs7Y2FzZSJCb25lIjpvPW5ldyBTM3Q7YnJlYWs7ZGVmYXVsdDpvPW5ldyBrUXR9aWYoby51dWlkPXQudXVpZCx2b2lkIDAhPT10Lm5hbWUmJihvLm5hbWU9dC5uYW1lKSx2b2lkIDAhPT10Lm1hdHJpeD8oby5tYXRyaXguZnJvbUFycmF5KHQubWF0cml4KSx2b2lkIDAhPT10Lm1hdHJpeEF1dG9VcGRhdGUmJihvLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlKSxvLm1hdHJpeEF1dG9VcGRhdGUmJm8ubWF0cml4LmRlY29tcG9zZShvLnBvc2l0aW9uLG8ucXVhdGVybmlvbixvLnNjYWxlKSk6KHZvaWQgMCE9PXQucG9zaXRpb24mJm8ucG9zaXRpb24uZnJvbUFycmF5KHQucG9zaXRpb24pLHZvaWQgMCE9PXQucm90YXRpb24mJm8ucm90YXRpb24uZnJvbUFycmF5KHQucm90YXRpb24pLHZvaWQgMCE9PXQucXVhdGVybmlvbiYmby5xdWF0ZXJuaW9uLmZyb21BcnJheSh0LnF1YXRlcm5pb24pLHZvaWQgMCE9PXQuc2NhbGUmJm8uc2NhbGUuZnJvbUFycmF5KHQuc2NhbGUpKSx2b2lkIDAhPT10LmNhc3RTaGFkb3cmJihvLmNhc3RTaGFkb3c9dC5jYXN0U2hhZG93KSx2b2lkIDAhPT10LnJlY2VpdmVTaGFkb3cmJihvLnJlY2VpdmVTaGFkb3c9dC5yZWNlaXZlU2hhZG93KSx0LnNoYWRvdyYmKHZvaWQgMCE9PXQuc2hhZG93LmJpYXMmJihvLnNoYWRvdy5iaWFzPXQuc2hhZG93LmJpYXMpLHZvaWQgMCE9PXQuc2hhZG93Lm5vcm1hbEJpYXMmJihvLnNoYWRvdy5ub3JtYWxCaWFzPXQuc2hhZG93Lm5vcm1hbEJpYXMpLHZvaWQgMCE9PXQuc2hhZG93LnJhZGl1cyYmKG8uc2hhZG93LnJhZGl1cz10LnNoYWRvdy5yYWRpdXMpLHZvaWQgMCE9PXQuc2hhZG93Lm1hcFNpemUmJm8uc2hhZG93Lm1hcFNpemUuZnJvbUFycmF5KHQuc2hhZG93Lm1hcFNpemUpLHZvaWQgMCE9PXQuc2hhZG93LmNhbWVyYSYmKG8uc2hhZG93LmNhbWVyYT10aGlzLnBhcnNlT2JqZWN0KHQuc2hhZG93LmNhbWVyYSkpKSx2b2lkIDAhPT10LnZpc2libGUmJihvLnZpc2libGU9dC52aXNpYmxlKSx2b2lkIDAhPT10LmZydXN0dW1DdWxsZWQmJihvLmZydXN0dW1DdWxsZWQ9dC5mcnVzdHVtQ3VsbGVkKSx2b2lkIDAhPT10LnJlbmRlck9yZGVyJiYoby5yZW5kZXJPcmRlcj10LnJlbmRlck9yZGVyKSx2b2lkIDAhPT10LnVzZXJEYXRhJiYoby51c2VyRGF0YT10LnVzZXJEYXRhKSx2b2lkIDAhPT10LmxheWVycyYmKG8ubGF5ZXJzLm1hc2s9dC5sYXllcnMpLHZvaWQgMCE9PXQuY2hpbGRyZW4pe2NvbnN0IGE9dC5jaGlsZHJlbjtmb3IobGV0IHQ9MDt0PGEubGVuZ3RoO3QrKylvLmFkZCh0aGlzLnBhcnNlT2JqZWN0KGFbdF0sZSxuLGkscikpfWlmKHZvaWQgMCE9PXQuYW5pbWF0aW9ucyl7Y29uc3QgZT10LmFuaW1hdGlvbnM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspby5hbmltYXRpb25zLnB1c2gocltlW3RdXSl9aWYoIkxPRCI9PT10LnR5cGUpe3ZvaWQgMCE9PXQuYXV0b1VwZGF0ZSYmKG8uYXV0b1VwZGF0ZT10LmF1dG9VcGRhdGUpO2NvbnN0IGU9dC5sZXZlbHM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XSxpPW8uZ2V0T2JqZWN0QnlQcm9wZXJ0eSgidXVpZCIsbi5vYmplY3QpO3ZvaWQgMCE9PWkmJm8uYWRkTGV2ZWwoaSxuLmRpc3RhbmNlKX19cmV0dXJuIG99YmluZFNrZWxldG9ucyh0LGUpezAhPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgmJnQudHJhdmVyc2UoKGZ1bmN0aW9uKHQpe2lmKCEwPT09dC5pc1NraW5uZWRNZXNoJiZ2b2lkIDAhPT10LnNrZWxldG9uKXtjb25zdCBuPWVbdC5za2VsZXRvbl07dm9pZCAwPT09bj9jb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdExvYWRlcjogTm8gc2tlbGV0b24gZm91bmQgd2l0aCBVVUlEOiIsdC5za2VsZXRvbik6dC5iaW5kKG4sdC5iaW5kTWF0cml4KX19KSl9c2V0VGV4dHVyZVBhdGgodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyOiAuc2V0VGV4dHVyZVBhdGgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRSZXNvdXJjZVBhdGgoKS4iKSx0aGlzLnNldFJlc291cmNlUGF0aCh0KX19LE9iamVjdFNwYWNlTm9ybWFsTWFwOjEsT2N0YWhlZHJvbkJ1ZmZlckdlb21ldHJ5Omw2dCxPY3RhaGVkcm9uR2VvbWV0cnk6bDZ0LE9uZUZhY3RvcjoyMDEsT25lTWludXNEc3RBbHBoYUZhY3RvcjoyMDcsT25lTWludXNEc3RDb2xvckZhY3RvcjoyMDksT25lTWludXNTcmNBbHBoYUZhY3RvcjoyMDUsT25lTWludXNTcmNDb2xvckZhY3RvcjoyMDMsT3J0aG9ncmFwaGljQ2FtZXJhOmcwdCxQQ0ZTaGFkb3dNYXA6MSxQQ0ZTb2Z0U2hhZG93TWFwOjIsUE1SRU1HZW5lcmF0b3I6UjB0LFBhcmFtZXRyaWNCdWZmZXJHZW9tZXRyeTpjNnQsUGFyYW1ldHJpY0dlb21ldHJ5OmM2dCxQYXJ0aWNsZTpmdW5jdGlvbiBmN3QodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUGFydGljbGUgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5TcHJpdGUuIiksbmV3IGQzdCh0KX0sUGFydGljbGVCYXNpY01hdGVyaWFsOmZ1bmN0aW9uIG03dCh0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QYXJ0aWNsZUJhc2ljTWF0ZXJpYWwgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5Qb2ludHNNYXRlcmlhbC4iKSxuZXcgRzN0KHQpfSxQYXJ0aWNsZVN5c3RlbTpmdW5jdGlvbiBnN3QodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QYXJ0aWNsZVN5c3RlbSBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLlBvaW50cy4iKSxuZXcgJDN0KHQsZSl9LFBhcnRpY2xlU3lzdGVtTWF0ZXJpYWw6ZnVuY3Rpb24gXzd0KHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlBhcnRpY2xlU3lzdGVtTWF0ZXJpYWwgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5Qb2ludHNNYXRlcmlhbC4iKSxuZXcgRzN0KHQpfSxQYXRoOmk5dCxQZXJzcGVjdGl2ZUNhbWVyYTpxMXQsUGxhbmU6dDB0LFBsYW5lQnVmZmVyR2VvbWV0cnk6YTB0LFBsYW5lR2VvbWV0cnk6YTB0LFBsYW5lSGVscGVyOmNsYXNzIGV4dGVuZHMgSDN0e2NvbnN0cnVjdG9yKHQsZT0xLG49MTY3NzY5NjApe2NvbnN0IGk9bixyPW5ldyBiMXQ7ci5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KFsxLC0xLDEsLTEsMSwxLC0xLC0xLDEsMSwxLDEsLTEsMSwxLC0xLC0xLDEsMSwtMSwxLDEsMSwxLDAsMCwxLDAsMCwwXSwzKSksci5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxzdXBlcihyLG5ldyBJM3Qoe2NvbG9yOmksdG9uZU1hcHBlZDohMX0pKSx0aGlzLnR5cGU9IlBsYW5lSGVscGVyIix0aGlzLnBsYW5lPXQsdGhpcy5zaXplPWU7Y29uc3Qgbz1uZXcgYjF0O28uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGwxdChbMSwxLDEsLTEsMSwxLC0xLC0xLDEsMSwxLDEsLTEsLTEsMSwxLC0xLDFdLDMpKSxvLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLHRoaXMuYWRkKG5ldyBCMXQobyxuZXcgS1F0KHtjb2xvcjppLG9wYWNpdHk6LjIsdHJhbnNwYXJlbnQ6ITAsZGVwdGhXcml0ZTohMSx0b25lTWFwcGVkOiExfSkpKX11cGRhdGVNYXRyaXhXb3JsZCh0KXtsZXQgZT0tdGhpcy5wbGFuZS5jb25zdGFudDtNYXRoLmFicyhlKTwxZS04JiYoZT0xZS04KSx0aGlzLnNjYWxlLnNldCguNSp0aGlzLnNpemUsLjUqdGhpcy5zaXplLGUpLHRoaXMuY2hpbGRyZW5bMF0ubWF0ZXJpYWwuc2lkZT1lPDA/MTowLHRoaXMubG9va0F0KHRoaXMucGxhbmUubm9ybWFsKSxzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KX19LFBvaW50Q2xvdWQ6ZnVuY3Rpb24geTd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUG9pbnRDbG91ZCBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLlBvaW50cy4iKSxuZXcgJDN0KHQsZSl9LFBvaW50Q2xvdWRNYXRlcmlhbDpmdW5jdGlvbiB2N3QodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUG9pbnRDbG91ZE1hdGVyaWFsIGhhcyBiZWVuIHJlbmFtZWQgdG8gVEhSRUUuUG9pbnRzTWF0ZXJpYWwuIiksbmV3IEczdCh0KX0sUG9pbnRMaWdodDpfOXQsUG9pbnRMaWdodEhlbHBlcjpjbGFzcyBleHRlbmRzIEIxdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IGQ2dChlLDQsMiksbmV3IEtRdCh7d2lyZWZyYW1lOiEwLGZvZzohMSx0b25lTWFwcGVkOiExfSkpLHRoaXMubGlnaHQ9dCx0aGlzLmxpZ2h0LnVwZGF0ZU1hdHJpeFdvcmxkKCksdGhpcy5jb2xvcj1uLHRoaXMudHlwZT0iUG9pbnRMaWdodEhlbHBlciIsdGhpcy5tYXRyaXg9dGhpcy5saWdodC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy51cGRhdGUoKX1kaXNwb3NlKCl7dGhpcy5nZW9tZXRyeS5kaXNwb3NlKCksdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCl9dXBkYXRlKCl7dm9pZCAwIT09dGhpcy5jb2xvcj90aGlzLm1hdGVyaWFsLmNvbG9yLnNldCh0aGlzLmNvbG9yKTp0aGlzLm1hdGVyaWFsLmNvbG9yLmNvcHkodGhpcy5saWdodC5jb2xvcil9fSxQb2ludHM6JDN0LFBvaW50c01hdGVyaWFsOkczdCxQb2xhckdyaWRIZWxwZXI6Y2xhc3MgZXh0ZW5kcyBVM3R7Y29uc3RydWN0b3IodD0xMCxlPTE2LG49OCxpPTY0LHI9NDQ3MzkyNCxvPTg5NDc4NDgpe3I9bmV3ICRRdChyKSxvPW5ldyAkUXQobyk7Y29uc3QgYT1bXSxzPVtdO2ZvcihsZXQgbj0wO248PWU7bisrKXtjb25zdCBpPW4vZSooMipNYXRoLlBJKSxsPU1hdGguc2luKGkpKnQsYz1NYXRoLmNvcyhpKSp0O2EucHVzaCgwLDAsMCksYS5wdXNoKGwsMCxjKTtjb25zdCB1PTEmbj9yOm87cy5wdXNoKHUucix1LmcsdS5iKSxzLnB1c2godS5yLHUuZyx1LmIpfWZvcihsZXQgZT0wO2U8PW47ZSsrKXtjb25zdCBsPTEmZT9yOm8sYz10LXQvbiplO2ZvcihsZXQgdD0wO3Q8aTt0Kyspe2xldCBlPXQvaSooMipNYXRoLlBJKSxuPU1hdGguc2luKGUpKmMscj1NYXRoLmNvcyhlKSpjO2EucHVzaChuLDAscikscy5wdXNoKGwucixsLmcsbC5iKSxlPSh0KzEpL2kqKDIqTWF0aC5QSSksbj1NYXRoLnNpbihlKSpjLHI9TWF0aC5jb3MoZSkqYyxhLnB1c2gobiwwLHIpLHMucHVzaChsLnIsbC5nLGwuYil9fWNvbnN0IGw9bmV3IGIxdDtsLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBsMXQoYSwzKSksbC5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgbDF0KHMsMykpLHN1cGVyKGwsbmV3IEkzdCh7dmVydGV4Q29sb3JzOiEwLHRvbmVNYXBwZWQ6ITF9KSksdGhpcy50eXBlPSJQb2xhckdyaWRIZWxwZXIifX0sUG9seWhlZHJvbkJ1ZmZlckdlb21ldHJ5OnI0dCxQb2x5aGVkcm9uR2VvbWV0cnk6cjR0LFBvc2l0aW9uYWxBdWRpbzpjbGFzcyBleHRlbmRzICQ5dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLnBhbm5lcj10aGlzLmNvbnRleHQuY3JlYXRlUGFubmVyKCksdGhpcy5wYW5uZXIucGFubmluZ01vZGVsPSJIUlRGIix0aGlzLnBhbm5lci5jb25uZWN0KHRoaXMuZ2Fpbil9Z2V0T3V0cHV0KCl7cmV0dXJuIHRoaXMucGFubmVyfWdldFJlZkRpc3RhbmNlKCl7cmV0dXJuIHRoaXMucGFubmVyLnJlZkRpc3RhbmNlfXNldFJlZkRpc3RhbmNlKHQpe3JldHVybiB0aGlzLnBhbm5lci5yZWZEaXN0YW5jZT10LHRoaXN9Z2V0Um9sbG9mZkZhY3Rvcigpe3JldHVybiB0aGlzLnBhbm5lci5yb2xsb2ZmRmFjdG9yfXNldFJvbGxvZmZGYWN0b3IodCl7cmV0dXJuIHRoaXMucGFubmVyLnJvbGxvZmZGYWN0b3I9dCx0aGlzfWdldERpc3RhbmNlTW9kZWwoKXtyZXR1cm4gdGhpcy5wYW5uZXIuZGlzdGFuY2VNb2RlbH1zZXREaXN0YW5jZU1vZGVsKHQpe3JldHVybiB0aGlzLnBhbm5lci5kaXN0YW5jZU1vZGVsPXQsdGhpc31nZXRNYXhEaXN0YW5jZSgpe3JldHVybiB0aGlzLnBhbm5lci5tYXhEaXN0YW5jZX1zZXRNYXhEaXN0YW5jZSh0KXtyZXR1cm4gdGhpcy5wYW5uZXIubWF4RGlzdGFuY2U9dCx0aGlzfXNldERpcmVjdGlvbmFsQ29uZSh0LGUsbil7cmV0dXJuIHRoaXMucGFubmVyLmNvbmVJbm5lckFuZ2xlPXQsdGhpcy5wYW5uZXIuY29uZU91dGVyQW5nbGU9ZSx0aGlzLnBhbm5lci5jb25lT3V0ZXJHYWluPW4sdGhpc311cGRhdGVNYXRyaXhXb3JsZCh0KXtpZihzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSwhMD09PXRoaXMuaGFzUGxheWJhY2tDb250cm9sJiYhMT09PXRoaXMuaXNQbGF5aW5nKXJldHVybjt0aGlzLm1hdHJpeFdvcmxkLmRlY29tcG9zZShLOXQsWjl0LEo5dCksUTl0LnNldCgwLDAsMSkuYXBwbHlRdWF0ZXJuaW9uKFo5dCk7Y29uc3QgZT10aGlzLnBhbm5lcjtpZihlLnBvc2l0aW9uWCl7Y29uc3QgdD10aGlzLmNvbnRleHQuY3VycmVudFRpbWUrdGhpcy5saXN0ZW5lci50aW1lRGVsdGE7ZS5wb3NpdGlvblgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoSzl0LngsdCksZS5wb3NpdGlvblkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoSzl0LnksdCksZS5wb3NpdGlvbloubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoSzl0LnosdCksZS5vcmllbnRhdGlvblgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoUTl0LngsdCksZS5vcmllbnRhdGlvblkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoUTl0LnksdCksZS5vcmllbnRhdGlvbloubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoUTl0LnosdCl9ZWxzZSBlLnNldFBvc2l0aW9uKEs5dC54LEs5dC55LEs5dC56KSxlLnNldE9yaWVudGF0aW9uKFE5dC54LFE5dC55LFE5dC56KX19LFByb3BlcnR5QmluZGluZzpoOHQsUHJvcGVydHlNaXhlcjplOHQsUXVhZHJhdGljQmV6aWVyQ3VydmU6QzR0LFF1YWRyYXRpY0JlemllckN1cnZlMzpBNHQsUXVhdGVybmlvbjpUSnQsUXVhdGVybmlvbktleWZyYW1lVHJhY2s6VjZ0LFF1YXRlcm5pb25MaW5lYXJJbnRlcnBvbGFudDpGNnQsUkVWSVNJT046Qkt0LFJHQkFEZXB0aFBhY2tpbmc6MzIwMSxSR0JBRm9ybWF0OmhadCxSR0JBSW50ZWdlckZvcm1hdDoxMDMzLFJHQkFfQVNUQ18xMHgxMF9Gb3JtYXQ6Mzc4MTksUkdCQV9BU1RDXzEweDVfRm9ybWF0OjM3ODE2LFJHQkFfQVNUQ18xMHg2X0Zvcm1hdDozNzgxNyxSR0JBX0FTVENfMTB4OF9Gb3JtYXQ6Mzc4MTgsUkdCQV9BU1RDXzEyeDEwX0Zvcm1hdDozNzgyMCxSR0JBX0FTVENfMTJ4MTJfRm9ybWF0OjM3ODIxLFJHQkFfQVNUQ180eDRfRm9ybWF0OjM3ODA4LFJHQkFfQVNUQ181eDRfRm9ybWF0OjM3ODA5LFJHQkFfQVNUQ181eDVfRm9ybWF0OjM3ODEwLFJHQkFfQVNUQ182eDVfRm9ybWF0OjM3ODExLFJHQkFfQVNUQ182eDZfRm9ybWF0OjM3ODEyLFJHQkFfQVNUQ184eDVfRm9ybWF0OjM3ODEzLFJHQkFfQVNUQ184eDZfRm9ybWF0OjM3ODE0LFJHQkFfQVNUQ184eDhfRm9ybWF0OjM3ODE1LFJHQkFfQlBUQ19Gb3JtYXQ6MzY0OTIsUkdCQV9FVEMyX0VBQ19Gb3JtYXQ6U1p0LFJHQkFfUFZSVENfMkJQUFYxX0Zvcm1hdDp4WnQsUkdCQV9QVlJUQ180QlBQVjFfRm9ybWF0OmJadCxSR0JBX1MzVENfRFhUMV9Gb3JtYXQ6bVp0LFJHQkFfUzNUQ19EWFQzX0Zvcm1hdDpnWnQsUkdCQV9TM1RDX0RYVDVfRm9ybWF0Ol9adCxSR0JERW5jb2Rpbmc6Qlp0LFJHQkVFbmNvZGluZzpPWnQsUkdCRUZvcm1hdDoxMDIzLFJHQkZvcm1hdDp1WnQsUkdCSW50ZWdlckZvcm1hdDoxMDMyLFJHQk0xNkVuY29kaW5nOkRadCxSR0JNN0VuY29kaW5nOnpadCxSR0JfRVRDMV9Gb3JtYXQ6MzYxOTYsUkdCX0VUQzJfRm9ybWF0OndadCxSR0JfUFZSVENfMkJQUFYxX0Zvcm1hdDp2WnQsUkdCX1BWUlRDXzRCUFBWMV9Gb3JtYXQ6eVp0LFJHQl9TM1RDX0RYVDFfRm9ybWF0OmZadCxSR0Zvcm1hdDoxMDMwLFJHSW50ZWdlckZvcm1hdDoxMDMxLFJhd1NoYWRlck1hdGVyaWFsOl8wdCxSYXk6aVF0LFJheWNhc3RlcjpjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbj0wLGk9MS8wKXt0aGlzLnJheT1uZXcgaVF0KHQsZSksdGhpcy5uZWFyPW4sdGhpcy5mYXI9aSx0aGlzLmNhbWVyYT1udWxsLHRoaXMubGF5ZXJzPW5ldyBtUXQsdGhpcy5wYXJhbXM9e01lc2g6e30sTGluZTp7dGhyZXNob2xkOjF9LExPRDp7fSxQb2ludHM6e3RocmVzaG9sZDoxfSxTcHJpdGU6e319fXNldCh0LGUpe3RoaXMucmF5LnNldCh0LGUpfXNldEZyb21DYW1lcmEodCxlKXtlJiZlLmlzUGVyc3BlY3RpdmVDYW1lcmE/KHRoaXMucmF5Lm9yaWdpbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oZS5tYXRyaXhXb3JsZCksdGhpcy5yYXkuZGlyZWN0aW9uLnNldCh0LngsdC55LC41KS51bnByb2plY3QoZSkuc3ViKHRoaXMucmF5Lm9yaWdpbikubm9ybWFsaXplKCksdGhpcy5jYW1lcmE9ZSk6ZSYmZS5pc09ydGhvZ3JhcGhpY0NhbWVyYT8odGhpcy5yYXkub3JpZ2luLnNldCh0LngsdC55LChlLm5lYXIrZS5mYXIpLyhlLm5lYXItZS5mYXIpKS51bnByb2plY3QoZSksdGhpcy5yYXkuZGlyZWN0aW9uLnNldCgwLDAsLTEpLnRyYW5zZm9ybURpcmVjdGlvbihlLm1hdHJpeFdvcmxkKSx0aGlzLmNhbWVyYT1lKTpjb25zb2xlLmVycm9yKCJUSFJFRS5SYXljYXN0ZXI6IFVuc3VwcG9ydGVkIGNhbWVyYSB0eXBlOiAiK2UudHlwZSl9aW50ZXJzZWN0T2JqZWN0KHQsZT0hMSxuPVtdKXtyZXR1cm4gdjh0KHQsdGhpcyxuLGUpLG4uc29ydCh5OHQpLG59aW50ZXJzZWN0T2JqZWN0cyh0LGU9ITEsbj1bXSl7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKXY4dCh0W2ldLHRoaXMsbixlKTtyZXR1cm4gbi5zb3J0KHk4dCksbn19LFJlY3RBcmVhTGlnaHQ6eDl0LFJlZEZvcm1hdDoxMDI4LFJlZEludGVnZXJGb3JtYXQ6MTAyOSxSZWluaGFyZFRvbmVNYXBwaW5nOjIsUmVwZWF0V3JhcHBpbmc6JEt0LFJlcGxhY2VTdGVuY2lsT3A6NzY4MSxSZXZlcnNlU3VidHJhY3RFcXVhdGlvbjoxMDIsUmluZ0J1ZmZlckdlb21ldHJ5OnU2dCxSaW5nR2VvbWV0cnk6dTZ0LFNSR0I4X0FMUEhBOF9BU1RDXzEweDEwX0Zvcm1hdDozNzg1MSxTUkdCOF9BTFBIQThfQVNUQ18xMHg1X0Zvcm1hdDozNzg0OCxTUkdCOF9BTFBIQThfQVNUQ18xMHg2X0Zvcm1hdDozNzg0OSxTUkdCOF9BTFBIQThfQVNUQ18xMHg4X0Zvcm1hdDozNzg1MCxTUkdCOF9BTFBIQThfQVNUQ18xMngxMF9Gb3JtYXQ6Mzc4NTIsU1JHQjhfQUxQSEE4X0FTVENfMTJ4MTJfRm9ybWF0OjM3ODUzLFNSR0I4X0FMUEhBOF9BU1RDXzR4NF9Gb3JtYXQ6Mzc4NDAsU1JHQjhfQUxQSEE4X0FTVENfNXg0X0Zvcm1hdDozNzg0MSxTUkdCOF9BTFBIQThfQVNUQ181eDVfRm9ybWF0OjM3ODQyLFNSR0I4X0FMUEhBOF9BU1RDXzZ4NV9Gb3JtYXQ6Mzc4NDMsU1JHQjhfQUxQSEE4X0FTVENfNng2X0Zvcm1hdDozNzg0NCxTUkdCOF9BTFBIQThfQVNUQ184eDVfRm9ybWF0OjM3ODQ1LFNSR0I4X0FMUEhBOF9BU1RDXzh4Nl9Gb3JtYXQ6Mzc4NDYsU1JHQjhfQUxQSEE4X0FTVENfOHg4X0Zvcm1hdDozNzg0NyxTY2VuZTpYNXQsU2NlbmVVdGlsczpaOHQsU2hhZGVyQ2h1bms6czB0LFNoYWRlckxpYjpjMHQsU2hhZGVyTWF0ZXJpYWw6RzF0LFNoYWRvd01hdGVyaWFsOng2dCxTaGFwZTpyOXQsU2hhcGVCdWZmZXJHZW9tZXRyeTpoNnQsU2hhcGVHZW9tZXRyeTpoNnQsU2hhcGVQYXRoOkk5dCxTaGFwZVV0aWxzOmU2dCxTaG9ydFR5cGU6MTAxMSxTa2VsZXRvbjpDM3QsU2tlbGV0b25IZWxwZXI6UDh0LFNraW5uZWRNZXNoOnczdCxTbW9vdGhTaGFkaW5nOjIsU3BoZXJlOiRKdCxTcGhlcmVCdWZmZXJHZW9tZXRyeTpkNnQsU3BoZXJlR2VvbWV0cnk6ZDZ0LFNwaGVyaWNhbDpiOHQsU3BoZXJpY2FsSGFybW9uaWNzMzp3OXQsU3BsaW5lQ3VydmU6azR0LFNwb3RMaWdodDpkOXQsU3BvdExpZ2h0SGVscGVyOmNsYXNzIGV4dGVuZHMga1F0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLmxpZ2h0PXQsdGhpcy5saWdodC51cGRhdGVNYXRyaXhXb3JsZCgpLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuY29sb3I9ZTtjb25zdCBuPW5ldyBiMXQsaT1bMCwwLDAsMCwwLDEsMCwwLDAsMSwwLDEsMCwwLDAsLTEsMCwxLDAsMCwwLDAsMSwxLDAsMCwwLDAsLTEsMV07Zm9yKGxldCB0PTAsZT0xLG49MzI7dDxuO3QrKyxlKyspe2NvbnN0IHI9dC9uKk1hdGguUEkqMixvPWUvbipNYXRoLlBJKjI7aS5wdXNoKE1hdGguY29zKHIpLE1hdGguc2luKHIpLDEsTWF0aC5jb3MobyksTWF0aC5zaW4obyksMSl9bi5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgbDF0KGksMykpO2NvbnN0IHI9bmV3IEkzdCh7Zm9nOiExLHRvbmVNYXBwZWQ6ITF9KTt0aGlzLmNvbmU9bmV3IFUzdChuLHIpLHRoaXMuYWRkKHRoaXMuY29uZSksdGhpcy51cGRhdGUoKX1kaXNwb3NlKCl7dGhpcy5jb25lLmdlb21ldHJ5LmRpc3Bvc2UoKSx0aGlzLmNvbmUubWF0ZXJpYWwuZGlzcG9zZSgpfXVwZGF0ZSgpe3RoaXMubGlnaHQudXBkYXRlTWF0cml4V29ybGQoKTtjb25zdCB0PXRoaXMubGlnaHQuZGlzdGFuY2U/dGhpcy5saWdodC5kaXN0YW5jZToxZTMsZT10Kk1hdGgudGFuKHRoaXMubGlnaHQuYW5nbGUpO3RoaXMuY29uZS5zY2FsZS5zZXQoZSxlLHQpLEM4dC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5saWdodC50YXJnZXQubWF0cml4V29ybGQpLHRoaXMuY29uZS5sb29rQXQoQzh0KSx2b2lkIDAhPT10aGlzLmNvbG9yP3RoaXMuY29uZS5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvcik6dGhpcy5jb25lLm1hdGVyaWFsLmNvbG9yLmNvcHkodGhpcy5saWdodC5jb2xvcil9fSxTcHJpdGU6ZDN0LFNwcml0ZU1hdGVyaWFsOko1dCxTcmNBbHBoYUZhY3RvcjoyMDQsU3JjQWxwaGFTYXR1cmF0ZUZhY3RvcjoyMTAsU3JjQ29sb3JGYWN0b3I6MjAyLFN0YXRpY0NvcHlVc2FnZTozNTA0NixTdGF0aWNEcmF3VXNhZ2U6Rlp0LFN0YXRpY1JlYWRVc2FnZTozNTA0NSxTdGVyZW9DYW1lcmE6Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnR5cGU9IlN0ZXJlb0NhbWVyYSIsdGhpcy5hc3BlY3Q9MSx0aGlzLmV5ZVNlcD0uMDY0LHRoaXMuY2FtZXJhTD1uZXcgcTF0LHRoaXMuY2FtZXJhTC5sYXllcnMuZW5hYmxlKDEpLHRoaXMuY2FtZXJhTC5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuY2FtZXJhUj1uZXcgcTF0LHRoaXMuY2FtZXJhUi5sYXllcnMuZW5hYmxlKDIpLHRoaXMuY2FtZXJhUi5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX2NhY2hlPXtmb2N1czpudWxsLGZvdjpudWxsLGFzcGVjdDpudWxsLG5lYXI6bnVsbCxmYXI6bnVsbCx6b29tOm51bGwsZXllU2VwOm51bGx9fXVwZGF0ZSh0KXtjb25zdCBlPXRoaXMuX2NhY2hlO2lmKGUuZm9jdXMhPT10LmZvY3VzfHxlLmZvdiE9PXQuZm92fHxlLmFzcGVjdCE9PXQuYXNwZWN0KnRoaXMuYXNwZWN0fHxlLm5lYXIhPT10Lm5lYXJ8fGUuZmFyIT09dC5mYXJ8fGUuem9vbSE9PXQuem9vbXx8ZS5leWVTZXAhPT10aGlzLmV5ZVNlcCl7ZS5mb2N1cz10LmZvY3VzLGUuZm92PXQuZm92LGUuYXNwZWN0PXQuYXNwZWN0KnRoaXMuYXNwZWN0LGUubmVhcj10Lm5lYXIsZS5mYXI9dC5mYXIsZS56b29tPXQuem9vbSxlLmV5ZVNlcD10aGlzLmV5ZVNlcDtjb25zdCBuPXQucHJvamVjdGlvbk1hdHJpeC5jbG9uZSgpLGk9ZS5leWVTZXAvMixyPWkqZS5uZWFyL2UuZm9jdXMsbz1lLm5lYXIqTWF0aC50YW4ocVp0KmUuZm92Ki41KS9lLnpvb207bGV0IGEscztVOXQuZWxlbWVudHNbMTJdPS1pLFY5dC5lbGVtZW50c1sxMl09aSxhPS1vKmUuYXNwZWN0K3Iscz1vKmUuYXNwZWN0K3Isbi5lbGVtZW50c1swXT0yKmUubmVhci8ocy1hKSxuLmVsZW1lbnRzWzhdPShzK2EpLyhzLWEpLHRoaXMuY2FtZXJhTC5wcm9qZWN0aW9uTWF0cml4LmNvcHkobiksYT0tbyplLmFzcGVjdC1yLHM9byplLmFzcGVjdC1yLG4uZWxlbWVudHNbMF09MiplLm5lYXIvKHMtYSksbi5lbGVtZW50c1s4XT0ocythKS8ocy1hKSx0aGlzLmNhbWVyYVIucHJvamVjdGlvbk1hdHJpeC5jb3B5KG4pfXRoaXMuY2FtZXJhTC5tYXRyaXhXb3JsZC5jb3B5KHQubWF0cml4V29ybGQpLm11bHRpcGx5KFU5dCksdGhpcy5jYW1lcmFSLm1hdHJpeFdvcmxkLmNvcHkodC5tYXRyaXhXb3JsZCkubXVsdGlwbHkoVjl0KX19LFN0cmVhbUNvcHlVc2FnZTozNTA0MixTdHJlYW1EcmF3VXNhZ2U6MzUwNDAsU3RyZWFtUmVhZFVzYWdlOjM1MDQxLFN0cmluZ0tleWZyYW1lVHJhY2s6VTZ0LFN1YnRyYWN0RXF1YXRpb246MTAxLFN1YnRyYWN0aXZlQmxlbmRpbmc6MyxUT1VDSDpGS3QsVGFuZ2VudFNwYWNlTm9ybWFsTWFwOjAsVGV0cmFoZWRyb25CdWZmZXJHZW9tZXRyeTpwNnQsVGV0cmFoZWRyb25HZW9tZXRyeTpwNnQsVGV4dEJ1ZmZlckdlb21ldHJ5OmY2dCxUZXh0R2VvbWV0cnk6ZjZ0LFRleHR1cmU6Ykp0LFRleHR1cmVMb2FkZXI6ZTl0LFRvcnVzQnVmZmVyR2VvbWV0cnk6bTZ0LFRvcnVzR2VvbWV0cnk6bTZ0LFRvcnVzS25vdEJ1ZmZlckdlb21ldHJ5Omc2dCxUb3J1c0tub3RHZW9tZXRyeTpnNnQsVHJpYW5nbGU6RlF0LFRyaWFuZ2xlRmFuRHJhd01vZGU6MixUcmlhbmdsZVN0cmlwRHJhd01vZGU6MSxUcmlhbmdsZXNEcmF3TW9kZTowLFR1YmVCdWZmZXJHZW9tZXRyeTpfNnQsVHViZUdlb21ldHJ5Ol82dCxVVk1hcHBpbmc6VUt0LFVpbnQxNkF0dHJpYnV0ZTpmdW5jdGlvbiBiN3QodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5VaW50MTZBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5VaW50MTZCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyByMXQodCxlKX0sVWludDE2QnVmZmVyQXR0cmlidXRlOnIxdCxVaW50MzJBdHRyaWJ1dGU6ZnVuY3Rpb24geDd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVWludDMyQXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuVWludDMyQnVmZmVyQXR0cmlidXRlKCkgaW5zdGVhZC4iKSxuZXcgYTF0KHQsZSl9LFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZTphMXQsVWludDhBdHRyaWJ1dGU6ZnVuY3Rpb24gdzd0KHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVWludDhBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5VaW50OEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IGUxdCh0LGUpfSxVaW50OEJ1ZmZlckF0dHJpYnV0ZTplMXQsVWludDhDbGFtcGVkQXR0cmlidXRlOmZ1bmN0aW9uIFM3dCh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlVpbnQ4Q2xhbXBlZEF0dHJpYnV0ZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLlVpbnQ4Q2xhbXBlZEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IG4xdCh0LGUpfSxVaW50OENsYW1wZWRCdWZmZXJBdHRyaWJ1dGU6bjF0LFVuaWZvcm06bTh0LFVuaWZvcm1zTGliOmwwdCxVbmlmb3Jtc1V0aWxzOmoxdCxVbnNpZ25lZEJ5dGVUeXBlOnJadCxVbnNpZ25lZEludDI0OFR5cGU6Y1p0LFVuc2lnbmVkSW50VHlwZTphWnQsVW5zaWduZWRTaG9ydDQ0NDRUeXBlOjEwMTcsVW5zaWduZWRTaG9ydDU1NTFUeXBlOjEwMTgsVW5zaWduZWRTaG9ydDU2NVR5cGU6MTAxOSxVbnNpZ25lZFNob3J0VHlwZTpvWnQsVlNNU2hhZG93TWFwOjMsVmVjdG9yMjptSnQsVmVjdG9yMzpDSnQsVmVjdG9yNDp3SnQsVmVjdG9yS2V5ZnJhbWVUcmFjazpqNnQsVmVydGV4OmZ1bmN0aW9uIE03dCh0LGUsbil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVydGV4IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5WZWN0b3IzIGluc3RlYWQuIiksbmV3IENKdCh0LGUsbil9LFZlcnRleENvbG9yczoyLFZpZGVvVGV4dHVyZTpaM3QsV2ViR0wxUmVuZGVyZXI6VzV0LFdlYkdMQ3ViZVJlbmRlclRhcmdldDpLMXQsV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHM6TUp0LFdlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQ6RUp0LFdlYkdMUmVuZGVyVGFyZ2V0OlNKdCxXZWJHTFJlbmRlclRhcmdldEN1YmU6ZnVuY3Rpb24gRTd0KHQsZSxuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldEN1YmUoIHdpZHRoLCBoZWlnaHQsIG9wdGlvbnMgKSBpcyBub3cgV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KCBzaXplLCBvcHRpb25zICkuIiksbmV3IEsxdCh0LG4pfSxXZWJHTFJlbmRlcmVyOkc1dCxXZWJHTFV0aWxzOkQ1dCxXaXJlZnJhbWVHZW9tZXRyeTp5NnQsV2lyZWZyYW1lSGVscGVyOmZ1bmN0aW9uIFQ3dCh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldpcmVmcmFtZUhlbHBlciBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuV2lyZWZyYW1lR2VvbWV0cnkgaW5zdGVhZC4iKSxuZXcgVTN0KG5ldyB5NnQodC5nZW9tZXRyeSksbmV3IEkzdCh7Y29sb3I6dm9pZCAwIT09ZT9lOjE2Nzc3MjE1fSkpfSxXcmFwQXJvdW5kRW5kaW5nOmtadCxYSFJMb2FkZXI6ZnVuY3Rpb24gQzd0KHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlhIUkxvYWRlciBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLkZpbGVMb2FkZXIuIiksbmV3IFo2dCh0KX0sWmVyb0N1cnZhdHVyZUVuZGluZzpDWnQsWmVyb0ZhY3RvcjoyMDAsWmVyb1Nsb3BlRW5kaW5nOkFadCxaZXJvU3RlbmNpbE9wOjAsc1JHQkVuY29kaW5nOkladH0pO2NvbnN0IEE3dD17dHlwZToiY2hhbmdlIn0sazd0PXt0eXBlOiJzdGFydCJ9LEw3dD17dHlwZToiZW5kIn07Y2xhc3MgUDd0IGV4dGVuZHMgalp0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx2b2lkIDA9PT1lJiZjb25zb2xlLndhcm4oJ1RIUkVFLk9yYml0Q29udHJvbHM6IFRoZSBzZWNvbmQgcGFyYW1ldGVyICJkb21FbGVtZW50IiBpcyBub3cgbWFuZGF0b3J5LicpLGU9PT1kb2N1bWVudCYmY29uc29sZS5lcnJvcignVEhSRUUuT3JiaXRDb250cm9sczogImRvY3VtZW50IiBzaG91bGQgbm90IGJlIHVzZWQgYXMgdGhlIHRhcmdldCAiZG9tRWxlbWVudCIuIFBsZWFzZSB1c2UgInJlbmRlcmVyLmRvbUVsZW1lbnQiIGluc3RlYWQuJyksdGhpcy5vYmplY3Q9dCx0aGlzLmRvbUVsZW1lbnQ9ZSx0aGlzLmRvbUVsZW1lbnQuc3R5bGUudG91Y2hBY3Rpb249Im5vbmUiLHRoaXMuZW5hYmxlZD0hMCx0aGlzLnRhcmdldD1uZXcgQ0p0LHRoaXMubWluRGlzdGFuY2U9MCx0aGlzLm1heERpc3RhbmNlPTEvMCx0aGlzLm1pblpvb209MCx0aGlzLm1heFpvb209MS8wLHRoaXMubWluUG9sYXJBbmdsZT0wLHRoaXMubWF4UG9sYXJBbmdsZT1NYXRoLlBJLHRoaXMubWluQXppbXV0aEFuZ2xlPS0xLzAsdGhpcy5tYXhBemltdXRoQW5nbGU9MS8wLHRoaXMuZW5hYmxlRGFtcGluZz0hMSx0aGlzLmRhbXBpbmdGYWN0b3I9LjA1LHRoaXMuZW5hYmxlWm9vbT0hMCx0aGlzLnpvb21TcGVlZD0xLHRoaXMuZW5hYmxlUm90YXRlPSEwLHRoaXMucm90YXRlU3BlZWQ9MSx0aGlzLmVuYWJsZVBhbj0hMCx0aGlzLnBhblNwZWVkPTEsdGhpcy5zY3JlZW5TcGFjZVBhbm5pbmc9ITAsdGhpcy5rZXlQYW5TcGVlZD03LHRoaXMuYXV0b1JvdGF0ZT0hMSx0aGlzLmF1dG9Sb3RhdGVTcGVlZD0yLHRoaXMua2V5cz17TEVGVDoiQXJyb3dMZWZ0IixVUDoiQXJyb3dVcCIsUklHSFQ6IkFycm93UmlnaHQiLEJPVFRPTToiQXJyb3dEb3duIn0sdGhpcy5tb3VzZUJ1dHRvbnM9e0xFRlQ6SEt0LlJPVEFURSxNSURETEU6SEt0LkRPTExZLFJJR0hUOkhLdC5QQU59LHRoaXMudG91Y2hlcz17T05FOkZLdC5ST1RBVEUsVFdPOkZLdC5ET0xMWV9QQU59LHRoaXMudGFyZ2V0MD10aGlzLnRhcmdldC5jbG9uZSgpLHRoaXMucG9zaXRpb24wPXRoaXMub2JqZWN0LnBvc2l0aW9uLmNsb25lKCksdGhpcy56b29tMD10aGlzLm9iamVjdC56b29tLHRoaXMuX2RvbUVsZW1lbnRLZXlFdmVudHM9bnVsbCx0aGlzLmdldFBvbGFyQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5waGl9LHRoaXMuZ2V0QXppbXV0aGFsQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS50aGV0YX0sdGhpcy5nZXREaXN0YW5jZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9iamVjdC5wb3NpdGlvbi5kaXN0YW5jZVRvKHRoaXMudGFyZ2V0KX0sdGhpcy5saXN0ZW5Ub0tleUV2ZW50cz1mdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGopLHRoaXMuX2RvbUVsZW1lbnRLZXlFdmVudHM9dH0sdGhpcy5zYXZlU3RhdGU9ZnVuY3Rpb24oKXtuLnRhcmdldDAuY29weShuLnRhcmdldCksbi5wb3NpdGlvbjAuY29weShuLm9iamVjdC5wb3NpdGlvbiksbi56b29tMD1uLm9iamVjdC56b29tfSx0aGlzLnJlc2V0PWZ1bmN0aW9uKCl7bi50YXJnZXQuY29weShuLnRhcmdldDApLG4ub2JqZWN0LnBvc2l0aW9uLmNvcHkobi5wb3NpdGlvbjApLG4ub2JqZWN0Lnpvb209bi56b29tMCxuLm9iamVjdC51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCksbi5kaXNwYXRjaEV2ZW50KEE3dCksbi51cGRhdGUoKSxyPWkuTk9ORX0sdGhpcy51cGRhdGU9KGZ1bmN0aW9uKCl7Y29uc3QgZT1uZXcgQ0p0LGg9KG5ldyBUSnQpLnNldEZyb21Vbml0VmVjdG9ycyh0LnVwLG5ldyBDSnQoMCwxLDApKSxkPWguY2xvbmUoKS5pbnZlcnQoKSxwPW5ldyBDSnQsZj1uZXcgVEp0LG09MipNYXRoLlBJO3JldHVybiBmdW5jdGlvbiB0KCl7Y29uc3QgZz1uLm9iamVjdC5wb3NpdGlvbjtlLmNvcHkoZykuc3ViKG4udGFyZ2V0KSxlLmFwcGx5UXVhdGVybmlvbihoKSxhLnNldEZyb21WZWN0b3IzKGUpLG4uYXV0b1JvdGF0ZSYmcj09PWkuTk9ORSYmUygoZnVuY3Rpb24gXygpe3JldHVybiAyKk1hdGguUEkvNjAvNjAqbi5hdXRvUm90YXRlU3BlZWR9KSgpKSxuLmVuYWJsZURhbXBpbmc/KGEudGhldGErPXMudGhldGEqbi5kYW1waW5nRmFjdG9yLGEucGhpKz1zLnBoaSpuLmRhbXBpbmdGYWN0b3IpOihhLnRoZXRhKz1zLnRoZXRhLGEucGhpKz1zLnBoaSk7bGV0IHk9bi5taW5BemltdXRoQW5nbGUsdj1uLm1heEF6aW11dGhBbmdsZTtyZXR1cm4gaXNGaW5pdGUoeSkmJmlzRmluaXRlKHYpJiYoeTwtTWF0aC5QST95Kz1tOnk+TWF0aC5QSSYmKHktPW0pLHY8LU1hdGguUEk/dis9bTp2Pk1hdGguUEkmJih2LT1tKSxhLnRoZXRhPXk8PXY/TWF0aC5tYXgoeSxNYXRoLm1pbih2LGEudGhldGEpKTphLnRoZXRhPih5K3YpLzI/TWF0aC5tYXgoeSxhLnRoZXRhKTpNYXRoLm1pbih2LGEudGhldGEpKSxhLnBoaT1NYXRoLm1heChuLm1pblBvbGFyQW5nbGUsTWF0aC5taW4obi5tYXhQb2xhckFuZ2xlLGEucGhpKSksYS5tYWtlU2FmZSgpLGEucmFkaXVzKj1sLGEucmFkaXVzPU1hdGgubWF4KG4ubWluRGlzdGFuY2UsTWF0aC5taW4obi5tYXhEaXN0YW5jZSxhLnJhZGl1cykpLCEwPT09bi5lbmFibGVEYW1waW5nP24udGFyZ2V0LmFkZFNjYWxlZFZlY3RvcihjLG4uZGFtcGluZ0ZhY3Rvcik6bi50YXJnZXQuYWRkKGMpLGUuc2V0RnJvbVNwaGVyaWNhbChhKSxlLmFwcGx5UXVhdGVybmlvbihkKSxnLmNvcHkobi50YXJnZXQpLmFkZChlKSxuLm9iamVjdC5sb29rQXQobi50YXJnZXQpLCEwPT09bi5lbmFibGVEYW1waW5nPyhzLnRoZXRhKj0xLW4uZGFtcGluZ0ZhY3RvcixzLnBoaSo9MS1uLmRhbXBpbmdGYWN0b3IsYy5tdWx0aXBseVNjYWxhcigxLW4uZGFtcGluZ0ZhY3RvcikpOihzLnNldCgwLDAsMCksYy5zZXQoMCwwLDApKSxsPTEsISEodXx8cC5kaXN0YW5jZVRvU3F1YXJlZChuLm9iamVjdC5wb3NpdGlvbik+b3x8OCooMS1mLmRvdChuLm9iamVjdC5xdWF0ZXJuaW9uKSk+bykmJihuLmRpc3BhdGNoRXZlbnQoQTd0KSxwLmNvcHkobi5vYmplY3QucG9zaXRpb24pLGYuY29weShuLm9iamVjdC5xdWF0ZXJuaW9uKSx1PSExLCEwKX19KSgpLHRoaXMuZGlzcG9zZT1mdW5jdGlvbigpe24uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsRyksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixCKSxuLmRvbUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsViksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixVKSxuLmRvbUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLEgpLG4uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLEYpLG51bGwhPT1uLl9kb21FbGVtZW50S2V5RXZlbnRzJiZuLl9kb21FbGVtZW50S2V5RXZlbnRzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGopfTtjb25zdCBuPXRoaXMsaT17Tk9ORTotMSxST1RBVEU6MCxET0xMWToxLFBBTjoyLFRPVUNIX1JPVEFURTozLFRPVUNIX1BBTjo0LFRPVUNIX0RPTExZX1BBTjo1LFRPVUNIX0RPTExZX1JPVEFURTo2fTtsZXQgcj1pLk5PTkU7Y29uc3Qgbz0xZS02LGE9bmV3IGI4dCxzPW5ldyBiOHQ7bGV0IGw9MTtjb25zdCBjPW5ldyBDSnQ7bGV0IHU9ITE7Y29uc3QgaD1uZXcgbUp0LGQ9bmV3IG1KdCxwPW5ldyBtSnQsZj1uZXcgbUp0LG09bmV3IG1KdCxnPW5ldyBtSnQsXz1uZXcgbUp0LHk9bmV3IG1KdCx2PW5ldyBtSnQsYj1bXSx4PXt9O2Z1bmN0aW9uIHcoKXtyZXR1cm4gTWF0aC5wb3coLjk1LG4uem9vbVNwZWVkKX1mdW5jdGlvbiBTKHQpe3MudGhldGEtPXR9ZnVuY3Rpb24gTSh0KXtzLnBoaS09dH1jb25zdCBFPShmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IENKdDtyZXR1cm4gZnVuY3Rpb24gZShuLGkpe3Quc2V0RnJvbU1hdHJpeENvbHVtbihpLDApLHQubXVsdGlwbHlTY2FsYXIoLW4pLGMuYWRkKHQpfX0pKCksVD0oZnVuY3Rpb24oKXtjb25zdCB0PW5ldyBDSnQ7cmV0dXJuIGZ1bmN0aW9uIGUoaSxyKXshMD09PW4uc2NyZWVuU3BhY2VQYW5uaW5nP3Quc2V0RnJvbU1hdHJpeENvbHVtbihyLDEpOih0LnNldEZyb21NYXRyaXhDb2x1bW4ociwwKSx0LmNyb3NzVmVjdG9ycyhuLm9iamVjdC51cCx0KSksdC5tdWx0aXBseVNjYWxhcihpKSxjLmFkZCh0KX19KSgpLEM9KGZ1bmN0aW9uKCl7Y29uc3QgdD1uZXcgQ0p0O3JldHVybiBmdW5jdGlvbiBlKGkscil7Y29uc3Qgbz1uLmRvbUVsZW1lbnQ7aWYobi5vYmplY3QuaXNQZXJzcGVjdGl2ZUNhbWVyYSl7dC5jb3B5KG4ub2JqZWN0LnBvc2l0aW9uKS5zdWIobi50YXJnZXQpO2xldCBlPXQubGVuZ3RoKCk7ZSo9TWF0aC50YW4obi5vYmplY3QuZm92LzIqTWF0aC5QSS8xODApLEUoMippKmUvby5jbGllbnRIZWlnaHQsbi5vYmplY3QubWF0cml4KSxUKDIqciplL28uY2xpZW50SGVpZ2h0LG4ub2JqZWN0Lm1hdHJpeCl9ZWxzZSBuLm9iamVjdC5pc09ydGhvZ3JhcGhpY0NhbWVyYT8oRShpKihuLm9iamVjdC5yaWdodC1uLm9iamVjdC5sZWZ0KS9uLm9iamVjdC56b29tL28uY2xpZW50V2lkdGgsbi5vYmplY3QubWF0cml4KSxUKHIqKG4ub2JqZWN0LnRvcC1uLm9iamVjdC5ib3R0b20pL24ub2JqZWN0Lnpvb20vby5jbGllbnRIZWlnaHQsbi5vYmplY3QubWF0cml4KSk6KGNvbnNvbGUud2FybigiV0FSTklORzogT3JiaXRDb250cm9scy5qcyBlbmNvdW50ZXJlZCBhbiB1bmtub3duIGNhbWVyYSB0eXBlIC0gcGFuIGRpc2FibGVkLiIpLG4uZW5hYmxlUGFuPSExKX19KSgpO2Z1bmN0aW9uIEEodCl7bi5vYmplY3QuaXNQZXJzcGVjdGl2ZUNhbWVyYT9sLz10Om4ub2JqZWN0LmlzT3J0aG9ncmFwaGljQ2FtZXJhPyhuLm9iamVjdC56b29tPU1hdGgubWF4KG4ubWluWm9vbSxNYXRoLm1pbihuLm1heFpvb20sbi5vYmplY3Quem9vbSp0KSksbi5vYmplY3QudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpLHU9ITApOihjb25zb2xlLndhcm4oIldBUk5JTkc6IE9yYml0Q29udHJvbHMuanMgZW5jb3VudGVyZWQgYW4gdW5rbm93biBjYW1lcmEgdHlwZSAtIGRvbGx5L3pvb20gZGlzYWJsZWQuIiksbi5lbmFibGVab29tPSExKX1mdW5jdGlvbiBrKHQpe24ub2JqZWN0LmlzUGVyc3BlY3RpdmVDYW1lcmE/bCo9dDpuLm9iamVjdC5pc09ydGhvZ3JhcGhpY0NhbWVyYT8obi5vYmplY3Quem9vbT1NYXRoLm1heChuLm1pblpvb20sTWF0aC5taW4obi5tYXhab29tLG4ub2JqZWN0Lnpvb20vdCkpLG4ub2JqZWN0LnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSx1PSEwKTooY29uc29sZS53YXJuKCJXQVJOSU5HOiBPcmJpdENvbnRyb2xzLmpzIGVuY291bnRlcmVkIGFuIHVua25vd24gY2FtZXJhIHR5cGUgLSBkb2xseS96b29tIGRpc2FibGVkLiIpLG4uZW5hYmxlWm9vbT0hMSl9ZnVuY3Rpb24gTCh0KXtoLnNldCh0LmNsaWVudFgsdC5jbGllbnRZKX1mdW5jdGlvbiBQKHQpe2Yuc2V0KHQuY2xpZW50WCx0LmNsaWVudFkpfWZ1bmN0aW9uIE4oKXsxPT09Yi5sZW5ndGg/aC5zZXQoYlswXS5wYWdlWCxiWzBdLnBhZ2VZKTpoLnNldCguNSooYlswXS5wYWdlWCtiWzFdLnBhZ2VYKSwuNSooYlswXS5wYWdlWStiWzFdLnBhZ2VZKSl9ZnVuY3Rpb24gSSgpezE9PT1iLmxlbmd0aD9mLnNldChiWzBdLnBhZ2VYLGJbMF0ucGFnZVkpOmYuc2V0KC41KihiWzBdLnBhZ2VYK2JbMV0ucGFnZVgpLC41KihiWzBdLnBhZ2VZK2JbMV0ucGFnZVkpKX1mdW5jdGlvbiBSKCl7Y29uc3QgdD1iWzBdLnBhZ2VYLWJbMV0ucGFnZVgsZT1iWzBdLnBhZ2VZLWJbMV0ucGFnZVksbj1NYXRoLnNxcnQodCp0K2UqZSk7Xy5zZXQoMCxuKX1mdW5jdGlvbiBPKHQpe2lmKDE9PWIubGVuZ3RoKWQuc2V0KHQucGFnZVgsdC5wYWdlWSk7ZWxzZXtjb25zdCBlPVkodCk7ZC5zZXQoLjUqKHQucGFnZVgrZS54KSwuNSoodC5wYWdlWStlLnkpKX1wLnN1YlZlY3RvcnMoZCxoKS5tdWx0aXBseVNjYWxhcihuLnJvdGF0ZVNwZWVkKTtjb25zdCBlPW4uZG9tRWxlbWVudDtTKDIqTWF0aC5QSSpwLngvZS5jbGllbnRIZWlnaHQpLE0oMipNYXRoLlBJKnAueS9lLmNsaWVudEhlaWdodCksaC5jb3B5KGQpfWZ1bmN0aW9uIHoodCl7aWYoMT09PWIubGVuZ3RoKW0uc2V0KHQucGFnZVgsdC5wYWdlWSk7ZWxzZXtjb25zdCBlPVkodCk7bS5zZXQoLjUqKHQucGFnZVgrZS54KSwuNSoodC5wYWdlWStlLnkpKX1nLnN1YlZlY3RvcnMobSxmKS5tdWx0aXBseVNjYWxhcihuLnBhblNwZWVkKSxDKGcueCxnLnkpLGYuY29weShtKX1mdW5jdGlvbiBEKHQpe2NvbnN0IGU9WSh0KSxpPXQucGFnZVgtZS54LHI9dC5wYWdlWS1lLnksbz1NYXRoLnNxcnQoaSppK3Iqcik7eS5zZXQoMCxvKSx2LnNldCgwLE1hdGgucG93KHkueS9fLnksbi56b29tU3BlZWQpKSxBKHYueSksXy5jb3B5KHkpfWZ1bmN0aW9uIEIodCl7ITEhPT1uLmVuYWJsZWQmJigwPT09Yi5sZW5ndGgmJihuLmRvbUVsZW1lbnQuc2V0UG9pbnRlckNhcHR1cmUodC5wb2ludGVySWQpLG4uZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsSCksbi5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsRikpLChmdW5jdGlvbiBlKHQpe2IucHVzaCh0KX0pKHQpLCJ0b3VjaCI9PT10LnBvaW50ZXJUeXBlPyhmdW5jdGlvbiBvKHQpe3N3aXRjaChxKHQpLGIubGVuZ3RoKXtjYXNlIDE6c3dpdGNoKG4udG91Y2hlcy5PTkUpe2Nhc2UgRkt0LlJPVEFURTppZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtOKCkscj1pLlRPVUNIX1JPVEFURTticmVhaztjYXNlIEZLdC5QQU46aWYoITE9PT1uLmVuYWJsZVBhbilyZXR1cm47SSgpLHI9aS5UT1VDSF9QQU47YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX1icmVhaztjYXNlIDI6c3dpdGNoKG4udG91Y2hlcy5UV08pe2Nhc2UgRkt0LkRPTExZX1BBTjppZighMT09PW4uZW5hYmxlWm9vbSYmITE9PT1uLmVuYWJsZVBhbilyZXR1cm47IShmdW5jdGlvbiB0KCl7bi5lbmFibGVab29tJiZSKCksbi5lbmFibGVQYW4mJkkoKX0pKCkscj1pLlRPVUNIX0RPTExZX1BBTjticmVhaztjYXNlIEZLdC5ET0xMWV9ST1RBVEU6aWYoITE9PT1uLmVuYWJsZVpvb20mJiExPT09bi5lbmFibGVSb3RhdGUpcmV0dXJuOyEoZnVuY3Rpb24gZSgpe24uZW5hYmxlWm9vbSYmUigpLG4uZW5hYmxlUm90YXRlJiZOKCl9KSgpLHI9aS5UT1VDSF9ET0xMWV9ST1RBVEU7YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX1icmVhaztkZWZhdWx0OnI9aS5OT05FfXIhPT1pLk5PTkUmJm4uZGlzcGF0Y2hFdmVudChrN3QpfSkodCk6KGZ1bmN0aW9uIGEodCl7bGV0IGU7c3dpdGNoKHQuYnV0dG9uKXtjYXNlIDA6ZT1uLm1vdXNlQnV0dG9ucy5MRUZUO2JyZWFrO2Nhc2UgMTplPW4ubW91c2VCdXR0b25zLk1JRERMRTticmVhaztjYXNlIDI6ZT1uLm1vdXNlQnV0dG9ucy5SSUdIVDticmVhaztkZWZhdWx0OmU9LTF9c3dpdGNoKGUpe2Nhc2UgSEt0LkRPTExZOmlmKCExPT09bi5lbmFibGVab29tKXJldHVybjshKGZ1bmN0aW9uIGUodCl7Xy5zZXQodC5jbGllbnRYLHQuY2xpZW50WSl9KSh0KSxyPWkuRE9MTFk7YnJlYWs7Y2FzZSBIS3QuUk9UQVRFOmlmKHQuY3RybEtleXx8dC5tZXRhS2V5fHx0LnNoaWZ0S2V5KXtpZighMT09PW4uZW5hYmxlUGFuKXJldHVybjtQKHQpLHI9aS5QQU59ZWxzZXtpZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtMKHQpLHI9aS5ST1RBVEV9YnJlYWs7Y2FzZSBIS3QuUEFOOmlmKHQuY3RybEtleXx8dC5tZXRhS2V5fHx0LnNoaWZ0S2V5KXtpZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtMKHQpLHI9aS5ST1RBVEV9ZWxzZXtpZighMT09PW4uZW5hYmxlUGFuKXJldHVybjtQKHQpLHI9aS5QQU59YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX1yIT09aS5OT05FJiZuLmRpc3BhdGNoRXZlbnQoazd0KX0pKHQpKX1mdW5jdGlvbiBIKHQpeyExIT09bi5lbmFibGVkJiYoInRvdWNoIj09PXQucG9pbnRlclR5cGU/KGZ1bmN0aW9uIGUodCl7c3dpdGNoKHEodCkscil7Y2FzZSBpLlRPVUNIX1JPVEFURTppZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtPKHQpLG4udXBkYXRlKCk7YnJlYWs7Y2FzZSBpLlRPVUNIX1BBTjppZighMT09PW4uZW5hYmxlUGFuKXJldHVybjt6KHQpLG4udXBkYXRlKCk7YnJlYWs7Y2FzZSBpLlRPVUNIX0RPTExZX1BBTjppZighMT09PW4uZW5hYmxlWm9vbSYmITE9PT1uLmVuYWJsZVBhbilyZXR1cm47IShmdW5jdGlvbiBlKHQpe24uZW5hYmxlWm9vbSYmRCh0KSxuLmVuYWJsZVBhbiYmeih0KX0pKHQpLG4udXBkYXRlKCk7YnJlYWs7Y2FzZSBpLlRPVUNIX0RPTExZX1JPVEFURTppZighMT09PW4uZW5hYmxlWm9vbSYmITE9PT1uLmVuYWJsZVJvdGF0ZSlyZXR1cm47IShmdW5jdGlvbiBvKHQpe24uZW5hYmxlWm9vbSYmRCh0KSxuLmVuYWJsZVJvdGF0ZSYmTyh0KX0pKHQpLG4udXBkYXRlKCk7YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX19KSh0KTooZnVuY3Rpb24gbyh0KXtpZighMSE9PW4uZW5hYmxlZClzd2l0Y2gocil7Y2FzZSBpLlJPVEFURTppZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjshKGZ1bmN0aW9uIGUodCl7ZC5zZXQodC5jbGllbnRYLHQuY2xpZW50WSkscC5zdWJWZWN0b3JzKGQsaCkubXVsdGlwbHlTY2FsYXIobi5yb3RhdGVTcGVlZCk7Y29uc3QgZT1uLmRvbUVsZW1lbnQ7UygyKk1hdGguUEkqcC54L2UuY2xpZW50SGVpZ2h0KSxNKDIqTWF0aC5QSSpwLnkvZS5jbGllbnRIZWlnaHQpLGguY29weShkKSxuLnVwZGF0ZSgpfSkodCk7YnJlYWs7Y2FzZSBpLkRPTExZOmlmKCExPT09bi5lbmFibGVab29tKXJldHVybjshKGZ1bmN0aW9uIHIodCl7eS5zZXQodC5jbGllbnRYLHQuY2xpZW50WSksdi5zdWJWZWN0b3JzKHksXyksdi55PjA/QSh3KCkpOnYueTwwJiZrKHcoKSksXy5jb3B5KHkpLG4udXBkYXRlKCl9KSh0KTticmVhaztjYXNlIGkuUEFOOmlmKCExPT09bi5lbmFibGVQYW4pcmV0dXJuOyEoZnVuY3Rpb24gbyh0KXttLnNldCh0LmNsaWVudFgsdC5jbGllbnRZKSxnLnN1YlZlY3RvcnMobSxmKS5tdWx0aXBseVNjYWxhcihuLnBhblNwZWVkKSxDKGcueCxnLnkpLGYuY29weShtKSxuLnVwZGF0ZSgpfSkodCl9fSkodCkpfWZ1bmN0aW9uIEYodCl7ITEhPT1uLmVuYWJsZWQmJigidG91Y2giPT09dC5wb2ludGVyVHlwZT8oZnVuY3Rpb24gZSh0KXtuLmRpc3BhdGNoRXZlbnQoTDd0KSxyPWkuTk9ORX0pKCk6KGZ1bmN0aW9uIG8odCl7bi5kaXNwYXRjaEV2ZW50KEw3dCkscj1pLk5PTkV9KSgpLFcodCksMD09PWIubGVuZ3RoJiYobi5kb21FbGVtZW50LnJlbGVhc2VQb2ludGVyQ2FwdHVyZSh0LnBvaW50ZXJJZCksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixIKSxuLmRvbUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixGKSkpfWZ1bmN0aW9uIFYodCl7Vyh0KX1mdW5jdGlvbiBVKHQpeyExPT09bi5lbmFibGVkfHwhMT09PW4uZW5hYmxlWm9vbXx8ciE9PWkuTk9ORSYmciE9PWkuUk9UQVRFfHwodC5wcmV2ZW50RGVmYXVsdCgpLG4uZGlzcGF0Y2hFdmVudChrN3QpLChmdW5jdGlvbiBlKHQpe3QuZGVsdGFZPDA/ayh3KCkpOnQuZGVsdGFZPjAmJkEodygpKSxuLnVwZGF0ZSgpfSkodCksbi5kaXNwYXRjaEV2ZW50KEw3dCkpfWZ1bmN0aW9uIGoodCl7ITEhPT1uLmVuYWJsZWQmJiExIT09bi5lbmFibGVQYW4mJihmdW5jdGlvbiBlKHQpe2xldCBlPSExO3N3aXRjaCh0LmNvZGUpe2Nhc2Ugbi5rZXlzLlVQOkMoMCxuLmtleVBhblNwZWVkKSxlPSEwO2JyZWFrO2Nhc2Ugbi5rZXlzLkJPVFRPTTpDKDAsLW4ua2V5UGFuU3BlZWQpLGU9ITA7YnJlYWs7Y2FzZSBuLmtleXMuTEVGVDpDKG4ua2V5UGFuU3BlZWQsMCksZT0hMDticmVhaztjYXNlIG4ua2V5cy5SSUdIVDpDKC1uLmtleVBhblNwZWVkLDApLGU9ITB9ZSYmKHQucHJldmVudERlZmF1bHQoKSxuLnVwZGF0ZSgpKX0pKHQpfWZ1bmN0aW9uIEcodCl7ITEhPT1uLmVuYWJsZWQmJnQucHJldmVudERlZmF1bHQoKX1mdW5jdGlvbiBXKHQpe2RlbGV0ZSB4W3QucG9pbnRlcklkXTtmb3IobGV0IGU9MDtlPGIubGVuZ3RoO2UrKylpZihiW2VdLnBvaW50ZXJJZD09dC5wb2ludGVySWQpcmV0dXJuIHZvaWQgYi5zcGxpY2UoZSwxKX1mdW5jdGlvbiBxKHQpe2xldCBlPXhbdC5wb2ludGVySWRdO3ZvaWQgMD09PWUmJihlPW5ldyBtSnQseFt0LnBvaW50ZXJJZF09ZSksZS5zZXQodC5wYWdlWCx0LnBhZ2VZKX1mdW5jdGlvbiBZKHQpe3JldHVybiB4Wyh0LnBvaW50ZXJJZD09PWJbMF0ucG9pbnRlcklkP2JbMV06YlswXSkucG9pbnRlcklkXX1uLmRvbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLEcpLG4uZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsQiksbi5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLFYpLG4uZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsVSx7cGFzc2l2ZTohMX0pLHRoaXMudXBkYXRlKCl9fWNsYXNzIE43dCBleHRlbmRzIGpadHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX2xhc3RNZXNoPW51bGwsdGhpcy5fY2xvY2s9bmV3IGo5dCx0aGlzLl9jYW52YXNTaXplPW51bGwsdGhpcy5fbGF5ZXJzQ29uZmlnPW51bGwsdGhpcy5fcnVuQ29sb3I9dH1faXNPYmplY3QodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10JiYhQXJyYXkuaXNBcnJheSh0KX1fYXBwbHlEZWZhdWx0cyh0LGUpe2xldCBuPXt9O2NvbnN0IGk9W3QsZV07Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0IGU9aVt0XTtmb3IobGV0IHQgaW4gZSl7Y29uc3QgaT10IGluIG47dGhpcy5faXNPYmplY3QoZVt0XSk/blt0XT10aGlzLl9hcHBseURlZmF1bHRzKG5bdF18fHt9LGVbdF0pOml8fChuW3RdPWVbdF0pfX1yZXR1cm4gbn1fY3JlYXRlTGF5ZXJzKCl7aWYodGhpcy5fbGF5ZXJzQ29uZmlnJiZ0aGlzLl9zY2VuZSYmdGhpcy5fbGFzdE1lc2gpe2lmKHRoaXMuX2xheWVyc0NvbmZpZy5zaG93Qm91bmRpbmdCb3gpe3ZhciB0PW5ldyBHOHQodGhpcy5fbGFzdE1lc2gsbmV3ICRRdCgicmdiKDAsIDAsIDI1NSkiKSk7dGhpcy5fc2NlbmUuYWRkKHQpfWlmKHRoaXMuX2xheWVyc0NvbmZpZy5zaG93QXhlcyl7dmFyIGU9bmV3IFg4dCg1KTt0aGlzLl9zY2VuZS5hZGQoZSl9fX1zZXRMYXllcnNDb25maWcodCl7dGhpcy5fbGF5ZXJzQ29uZmlnPXRoaXMuX2FwcGx5RGVmYXVsdHModCx0aGlzLl9sYXllcnNDb25maWd8fHt9KX1fY3JlYXRlV29ybGQodCxlKXtpZih0aGlzLmlzUmVhZHkoKSlyZXR1cm47dGhpcy5fc2NlbmU9bmV3IFg1dDt2YXIgbj1uZXcgSjh0W3QuY2FtZXJhLmNsc10odC5jYW1lcmEuZm92LHRoaXMuX2NhbnZhc1NpemUud2lkdGgvdGhpcy5fY2FudmFzU2l6ZS5oZWlnaHQsdC5jYW1lcmEubmVhcix0LmNhbWVyYS5mYXIpO3RoaXMuX2NhbWVyYT1uO3ZhciBpPW5ldyBQN3QobixlKTtjb25zdCByPWk7ci5sb29rU3BlZWQ9LjQsci5tb3ZlbWVudFNwZWVkPTIwLHIubm9GbHk9ITAsci5sb29rVmVydGljYWw9ITAsci5jb25zdHJhaW5WZXJ0aWNhbD0hMCxyLnZlcnRpY2FsTWluPTEsci52ZXJ0aWNhbE1heD0yLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLl9vbkNhbWVyYVBvc2l0aW9uQ2hhbmdlLmJpbmQodGhpcykpLHRoaXMuX2NhbWVyYUNvbnRyb2xzPWksdGhpcy5fcmVuZGVyZXI9bmV3IEc1dCh7YW50aWFsaWFzOiEwfSksdGhpcy5fcmVuZGVyZXIuc2V0UGl4ZWxSYXRpbyh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyksdGhpcy5fcmVuZGVyZXIuc2V0U2l6ZSh0aGlzLl9jYW52YXNTaXplLndpZHRoLHRoaXMuX2NhbnZhc1NpemUuaGVpZ2h0KSx0aGlzLl9yZW5kZXJlci5zZXRDbGVhckNvbG9yKDE2Nzc3MjE1LDEpfV9jbGVhclNjZW5lKCl7Zm9yKDt0aGlzLl9zY2VuZS5jaGlsZHJlbi5sZW5ndGg+MDspdGhpcy5fc2NlbmUucmVtb3ZlKHRoaXMuX3NjZW5lLmNoaWxkcmVuWzBdKX1nZXRSZW5kZXJlcigpe3JldHVybiB0aGlzLl9yZW5kZXJlcn1nZXRDYW1lcmFDb250cm9scygpe3JldHVybiB0aGlzLl9jYW1lcmFDb250cm9sc31pc1JlYWR5KCl7cmV0dXJuISF0aGlzLl9jYW1lcmEmJiEhdGhpcy5fY2FtZXJhQ29udHJvbHN9Z2V0Q2FtZXJhUG9zaXRpb24oKXtyZXR1cm57ZmFyOnRoaXMuX2NhbWVyYS5mYXIscG9zaXRpb246dGhpcy5fY2FtZXJhLnBvc2l0aW9uLmNsb25lKCksdGFyZ2V0OnRoaXMuX2NhbWVyYUNvbnRyb2xzLnRhcmdldC5jbG9uZSgpfX1zZXRDYW52YXNTaXplKHQpe3RoaXMuX2NhbnZhc1NpemU9dH1kcmF3KCl7dGhpcy5fYW5pbWF0aW9uRnJhbWVJbmRleCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fYW5pbWF0aW9uRnJhbWVJbmRleCksdGhpcy5fY2FtZXJhLmFzcGVjdD10aGlzLl9jYW52YXNTaXplLndpZHRoL3RoaXMuX2NhbnZhc1NpemUuaGVpZ2h0LHRoaXMuX2NhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCksdGhpcy5fcmVuZGVyZXIuc2V0U2l6ZSh0aGlzLl9jYW52YXNTaXplLndpZHRoLHRoaXMuX2NhbnZhc1NpemUuaGVpZ2h0KTtjb25zdCB0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fY2xvY2suZ2V0RGVsdGEoKTt0aGlzLl9jYW1lcmFDb250cm9scy51cGRhdGUoZSksdGhpcy5fYW5pbWF0aW9uRnJhbWVJbmRleD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCksdGhpcy5fcmVuZGVyZXIucmVuZGVyKHRoaXMuX3NjZW5lLHRoaXMuX2NhbWVyYSl9LmJpbmQodGhpcyk7dCgpfXVwZGF0ZVNjZW5lKHQsZSl7bGV0IG49e307ImNvbmZpZyJpbiB0JiZ0LmNvbmZpZyYmKG49SlNPTi5wYXJzZSh0LmNvbmZpZykpLHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiYmVmb3JlVXBkYXRlU2NlbmUifSksbj10aGlzLl9hcHBseURlZmF1bHRzKG4se2NhbWVyYTp7Y2xzOiJQZXJzcGVjdGl2ZUNhbWVyYSIsZm92Ojc1LG5lYXI6LjEsZmFyOjFlM30sbGlnaHRzOlt7Y2xzOiJBbWJpZW50TGlnaHQiLGNvbG9yOiIjZmZmZmZmIixpbnRlbnNpdHk6Ljc1fSx7Y2xzOiJEaXJlY3Rpb25hbExpZ2h0Iixjb2xvcjoiI2ZmZmZmZiIsaW50ZW5zaXR5Oi43NSxwb3NpdGlvbjpbMCwtMSwyXX1dfSksdGhpcy5fY3JlYXRlV29ybGQobixlKSx0aGlzLl9jbGVhclNjZW5lKCksdGhpcy5fY3JlYXRlTGlnaHRzKHRoaXMuX3NjZW5lLG4pLHRoaXMuX2NyZWF0ZUdlb21ldHJ5KHQsbiksdGhpcy5fY3JlYXRlTGF5ZXJzKCksdGhpcy5kcmF3KCl9cmVzZXRWaWV3KHQpe2lmKCF0aGlzLmlzUmVhZHkoKSlyZXR1cm47bGV0IGU7dGhpcy5fY2FtZXJhQ29udHJvbHMucmVzZXQoKSwhdCYmdGhpcy5fbGFzdE1lc2gmJihlPXRoaXMuX2xhc3RNZXNoKSxlJiYodGhpcy5fZml0T2JqZWN0VG9WaWV3cG9ydChlKSx0aGlzLl9sYXN0TWVzaD1lKSx0aGlzLl9jYW1lcmFDb250cm9scy51cGRhdGUoKX1fY3JlYXRlR2VvbWV0cnkodCxlKXtjb25zdCBuPXQubWVzaDtuLnZlcnRpY2VzJiZuLmZhY2VzJiZuLmZhY2VzLmxlbmd0aD90aGlzLl9jcmVhdGVNZXNoKG4sZSk6dGhpcy5fY3JlYXRlUG9pbnRDbG91ZChuLGUpfV9jcmVhdGVQb2ludENsb3VkKHQsZSl7Y29uc3Qgbj10LnZlcnRpY2VzLGk9dC5jb2xvcnM7bGV0IHI9e21hdGVyaWFsOntjbHM6IlBvaW50c01hdGVyaWFsIixzaXplOi4wMDV9fTtpJiZpLmxlbmd0aD09bi5sZW5ndGg/ci5tYXRlcmlhbC52ZXJ0ZXhDb2xvcnM9ITA6ci5tYXRlcmlhbC5jb2xvcj10aGlzLl9ydW5Db2xvcjtjb25zdCBvPXRoaXMuX2FwcGx5RGVmYXVsdHMoZSxyKSxhPW5ldyBiMXQscz1uZXcgRmxvYXQzMkFycmF5KG4uZmxhdCgpKTtpZihhLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBRUXQocywzKSksaSYmaS5sZW5ndGg9PW4ubGVuZ3RoKXtjb25zdCB0PW5ldyBGbG9hdDMyQXJyYXkoaS5mbGF0KCkpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV09dFtlXS8yNTU7YS5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgUVF0KHQsMykpfXZhciBsPW5ldyBKOHRbby5tYXRlcmlhbC5jbHNdKG8ubWF0ZXJpYWwpLGM9bmV3ICQzdChhLGwpO3RoaXMuX3NjZW5lLmFkZChjKSx0aGlzLl9sYXN0TWVzaD1jfXNldENhbWVyYVZpZXdwb2ludCh0LGUsbil7dGhpcy5fc2lsZW50PSEwLHRoaXMuX2NhbWVyYS5mYXI9ZSx0aGlzLl9jYW1lcmEucG9zaXRpb24uc2V0KHQueCx0LnksdC56KSx0aGlzLl9jYW1lcmEubG9va0F0KG4uY2xvbmUoKSksdGhpcy5fY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSx0aGlzLl9jYW1lcmFDb250cm9scy50YXJnZXQ9bi5jbG9uZSgpLHRoaXMuX2NhbWVyYUNvbnRyb2xzLnVwZGF0ZSgpLHRoaXMuX3NpbGVudD0hMX1fb25DYW1lcmFQb3NpdGlvbkNoYW5nZSh0KXt0aGlzLl9zaWxlbnR8fHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiY2FtZXJhUG9zaXRpb25DaGFuZ2UiLGV2ZW50OnR9KX1fZml0T2JqZWN0VG9WaWV3cG9ydCh0KXtjb25zdCBlPW5ldyBMSnQsbj1uZXcgQ0p0LGk9bmV3IENKdDtlLnNldEZyb21PYmplY3QodCksZS5nZXRDZW50ZXIobiksZS5nZXRTaXplKGkpO2NvbnN0IHI9TWF0aC5tYXgoaS54LGkueSxpLnopLG89dGhpcy5fY2FtZXJhLmZvdiooTWF0aC5QSS8xODApO2xldCBhPTEuMjUqTWF0aC5hYnMoci8oMipNYXRoLnRhbihvLzIpKSk7Y29uc3Qgcz1lLm1pbi56O3RoaXMuc2V0Q2FtZXJhVmlld3BvaW50KHt4Om4ueCx5Om4ueSx6OmF9LDMqKHM8MD8tcythOmEtcyksbil9X2NyZWF0ZU1lc2godCxlKXtjb25zdCBuPXQudmVydGljZXMsaT10LmZhY2VzLHI9dC5jb2xvcnMsbz10aGlzLl9hcHBseURlZmF1bHRzKGUse21hdGVyaWFsOntjbHM6Ik1lc2hTdGFuZGFyZE1hdGVyaWFsIixjb2xvcjoiI2EwYTBhMCIscm91Z2huZXNzOjEsbWV0YWxuZXNzOjB9fSksYT1uZXcgYjF0LHM9bmV3IEZsb2F0MzJBcnJheShuLmZsYXQoKSk7YS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgUVF0KHMsMykpO2NvbnN0IGw9bmV3IFVpbnQxNkFycmF5KGkuZmxhdCgpKTtpZihyJiZyLmxlbmd0aCl7Y29uc3QgdD1yLmZsYXQoKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdPXRbZV0vMjU1O2Euc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IFFRdChuZXcgRmxvYXQzMkFycmF5KHQpLDMpKSxvLm1hdGVyaWFsPW8ubWF0ZXJpYWx8fHt9LG8ubWF0ZXJpYWwudmVydGV4Q29sb3JzPSEwfWEuY2VudGVyKCksYS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxhLnNldEluZGV4KG5ldyBRUXQobCwxKSksYS5jb21wdXRlVmVydGV4Tm9ybWFscygpO2xldCBjPW5ldyBKOHRbby5tYXRlcmlhbC5jbHNdKG8ubWF0ZXJpYWwpLHU9bmV3IEIxdChhLGMpO3UuY2FzdFNoYWRvdz0hMCx1LnJlY2VpdmVTaGFkb3c9ITAsdGhpcy5fc2NlbmUuYWRkKHUpLHRoaXMuX2xhc3RNZXNoPXV9X2NyZWF0ZUxpZ2h0cyh0LGUpe2ZvcihsZXQgbj0wO248ZS5saWdodHMubGVuZ3RoO24rKyl7Y29uc3QgaT1lLmxpZ2h0c1tuXTtsZXQgcj1uZXcgSjh0W2kuY2xzXShpLmNvbG9yLGkuaW50ZW5zaXR5KTtpLnBvc2l0aW9uJiZyLnBvc2l0aW9uLnNldChpLnBvc2l0aW9uWzBdLGkucG9zaXRpb25bMV0saS5wb3NpdGlvblsyXSksdC5hZGQocil9fX1sZXQgSTd0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zZWxlY3RlZFZpZXc9ImFsbCIsdGhpcy5hY3RpdmU9ITEsdGhpcy5fY29sb3JTY2FsZUZ1bmN0aW9uPUdSLHRoaXMuX3N0ZXBzPVtdLHRoaXMuX21lc2hWaWV3ZXJBdHRhY2hlZD0hMSx0aGlzLl9jYW1lcmFQb3NpdGlvbkluaXRpYWxpemVkPSExLHRoaXMuX2lzTWVzaExvYWRpbmc9ITF9Z2V0IF9ydW5Db2xvcigpe3JldHVybiB0aGlzLl9jb2xvclNjYWxlRnVuY3Rpb24odGhpcy5ydW4pfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9kYXRhUHJvdmlkZXI9bmV3IERLdCh0aGlzLnJlcXVlc3RNYW5hZ2VyKTtjb25zdCB0PW5ldyBON3QodGhpcy5fcnVuQ29sb3IpO3QuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlVXBkYXRlU2NlbmUiLHRoaXMuX3VwZGF0ZUNhbnZhc1NpemUuYmluZCh0aGlzKSksdC5hZGRFdmVudExpc3RlbmVyKCJjYW1lcmFQb3NpdGlvbkNoYW5nZSIsdGhpcy5fb25DYW1lcmFQb3NpdGlvbkNoYW5nZS5iaW5kKHRoaXMpKSx0aGlzLl9tZXNoVmlld2VyPXR9cmVsb2FkKCl7dGhpcy5hY3RpdmUmJnRoaXMuX2RhdGFQcm92aWRlciYmKHRoaXMuX2lzTWVzaExvYWRpbmc9ITAsdGhpcy5fZGF0YVByb3ZpZGVyLnJlbG9hZCh0aGlzLnJ1bix0aGlzLnRhZyx0aGlzLnNhbXBsZSkudGhlbigodD0+e3QmJih0aGlzLl9zdGVwcz10LHRoaXMuX3N0ZXBJbmRleD10Lmxlbmd0aC0xKX0pKS5jYXRjaCgodD0+e2lmKCF0fHwhdC5jb2RlfHx0LmNvZGUhPVJLdC5DQU5DRUxMRUQpdGhyb3cgdD10fHwiUmVzcG9uc2UgcHJvY2Vzc2luZyBmYWlsZWQuIixuZXcgRXJyb3IodCl9KSkpfV91cGRhdGVTY2VuZSgpe2NvbnN0IHQ9dGhpcy5fY3VycmVudFN0ZXA7dCYmdC5tZXNoJiYodGhpcy5fbWVzaFZpZXdlci51cGRhdGVTY2VuZSh0LHRoaXMpLHRoaXMuX2NhbWVyYVBvc2l0aW9uSW5pdGlhbGl6ZWR8fCh0aGlzLl9tZXNoVmlld2VyLnJlc2V0VmlldygpLHRoaXMuX2NhbWVyYVBvc2l0aW9uSW5pdGlhbGl6ZWQ9ITApLHRoaXMuX21lc2hWaWV3ZXJBdHRhY2hlZHx8KHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZCh0aGlzLl9tZXNoVmlld2VyLmdldFJlbmRlcmVyKCkuZG9tRWxlbWVudCksdGhpcy5fbWVzaFZpZXdlckF0dGFjaGVkPSEwKSl9X2RlYm91bmNlZEZldGNoTWVzaCgpe3RoaXMuZGVib3VuY2UoImZldGNoTWVzaCIsKCgpPT50aGlzLl9tYXliZUZldGNoTWVzaCgpKSwxMDApfV9tYXliZUZldGNoTWVzaCgpe3JldHVybiBuKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD10aGlzLl9jdXJyZW50U3RlcDtpZih0JiYhdC5tZXNoJiYhdC5tZXNoRmV0Y2hpbmcpe3QubWVzaEZldGNoaW5nPSEwLHRoaXMuX2lzTWVzaExvYWRpbmc9ITA7dHJ5e2NvbnN0IGU9eWllbGQgdGhpcy5fZGF0YVByb3ZpZGVyLmZldGNoRGF0YSh0LHRoaXMucnVuLHRoaXMudGFnLHRoaXMuc2FtcGxlKTt0Lm1lc2g9ZVswXSx0aGlzLm5vdGlmeVBhdGgoIl9jdXJyZW50U3RlcC5tZXNoIil9Y2F0Y2godCl7aWYoIXR8fCF0LmNvZGV8fHQuY29kZSE9Ukt0LkNBTkNFTExFRCl0aHJvdyB0PXR8fCJSZXNwb25zZSBwcm9jZXNzaW5nIGZhaWxlZC4iLG5ldyBFcnJvcih0KX1maW5hbGx5e3RoaXMuX2lzTWVzaExvYWRpbmc9ITEsdC5tZXNoRmV0Y2hpbmc9ITF9fX0pKX1fb25DYW1lcmFQb3NpdGlvbkNoYW5nZSgpe2lmKCF0aGlzLl9tZXNoVmlld2VyLmlzUmVhZHkoKSlyZXR1cm47Y29uc3QgdD1uZXcgQ3VzdG9tRXZlbnQoImNhbWVyYS1wb3NpdGlvbi1jaGFuZ2UiLHtkZXRhaWw6dGhpcy5fbWVzaFZpZXdlci5nZXRDYW1lcmFQb3NpdGlvbigpfSk7dGhpcy5kaXNwYXRjaEV2ZW50KHQpfXNldENhbWVyYVZpZXdwb2ludCh0LGUsbil7dGhpcy5fbWVzaFZpZXdlci5zZXRDYW1lcmFWaWV3cG9pbnQodCxlLG4pfV91cGRhdGVDYW52YXNTaXplKCl7Y29uc3QgdD10aGlzLm9mZnNldFdpZHRoLGU9dCxuPXRoaXMuJCQoIi50Zi1tZXNoLWxvYWRlci1oZWFkZXIiKS5vZmZzZXRIZWlnaHQ7dGhpcy5fbWVzaFZpZXdlci5zZXRDYW52YXNTaXplKHt3aWR0aDp0LGhlaWdodDplLW59KX1yZWRyYXcoKXt0aGlzLl91cGRhdGVDYW52YXNTaXplKCksdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5fbWVzaFZpZXdlci5kcmF3KCl9X2hhc0F0TGVhc3RPbmVTdGVwKHQpe3JldHVybiEhdCYmdC5sZW5ndGg+MH1faGFzTXVsdGlwbGVTdGVwcyh0KXtyZXR1cm4hIXQmJnQubGVuZ3RoPjF9Z2V0IF9jdXJyZW50U3RlcCgpe3JldHVybiB0aGlzLl9zdGVwc1t0aGlzLl9zdGVwSW5kZXhdfHxudWxsfWdldCBfc3RlcFZhbHVlKCl7Y29uc3QgdD10aGlzLl9jdXJyZW50U3RlcDtyZXR1cm4gdD90LnN0ZXA6MH1nZXQgX2N1cnJlbnRXYWxsVGltZSgpe2NvbnN0IHQ9dGhpcy5fY3VycmVudFN0ZXA7cmV0dXJuIHQ/S1IodC53YWxsX3RpbWUpOiIifV9nZXRNYXhTdGVwSW5kZXgodCl7cmV0dXJuIHQubGVuZ3RoLTF9X2dldFNhbXBsZVRleHQodCl7cmV0dXJuIFN0cmluZyh0KzEpfV9oYXNNdWx0aXBsZVNhbXBsZXModCl7cmV0dXJuIHQ+MX1fdXBkYXRlVmlldygpe3RoaXMuX21lc2hWaWV3ZXImJiJhbGwiPT10aGlzLnNlbGVjdGVkVmlldyYmdGhpcy5fbWVzaFZpZXdlci5yZXNldFZpZXcoKX10b0xvY2FsZVN0cmluZ18odCl7cmV0dXJuIHQudG9Mb2NhbGVTdHJpbmcoKX19O0k3dC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcgY29sb3I9IltbX3J1bkNvbG9yXV0iIGNsYXNzPSJ0Zi1tZXNoLWxvYWRlci1oZWFkZXIiPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2hhc011bHRpcGxlU2FtcGxlcyhvZlNhbXBsZXMpXV0iPgogICAgICAgIDxkaXY+c2FtcGxlOiBbW19nZXRTYW1wbGVUZXh0KHNhbXBsZSldXSBvZiBbW29mU2FtcGxlc11dPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzQXRMZWFzdE9uZVN0ZXAoX3N0ZXBzKV1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIj4KICAgICAgICAgICAgc3RlcAogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQiCiAgICAgICAgICAgICAgPltbdG9Mb2NhbGVTdHJpbmdfKF9zdGVwVmFsdWUpXV08L3NwYW4KICAgICAgICAgICAgPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIGhlYWRpbmctcmlnaHQiPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2N1cnJlbnRXYWxsVGltZV1dIj4KICAgICAgICAgICAgICBbW19jdXJyZW50V2FsbFRpbWVdXQogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbCByaWdodCI+CiAgICAgICAgICAgIDxwYXBlci1zcGlubmVyLWxpdGUgYWN0aXZlIGhpZGRlbiQ9IltbIV9pc01lc2hMb2FkaW5nXV0iPgogICAgICAgICAgICA8L3BhcGVyLXNwaW5uZXItbGl0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2hhc011bHRpcGxlU3RlcHMoX3N0ZXBzKV1dIj4KICAgICAgICA8ZGl2PgogICAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgICBpZD0ic3RlcHMiCiAgICAgICAgICAgIGltbWVkaWF0ZS12YWx1ZT0ie3tfc3RlcEluZGV4fX0iCiAgICAgICAgICAgIG1heD0iW1tfZ2V0TWF4U3RlcEluZGV4KF9zdGVwcyldXSIKICAgICAgICAgICAgbWF4LW1hcmtlcnM9IltbX2dldE1heFN0ZXBJbmRleChfc3RlcHMpXV0iCiAgICAgICAgICAgIHNuYXBzCiAgICAgICAgICAgIHN0ZXA9IjEiCiAgICAgICAgICAgIHZhbHVlPSJ7e19zdGVwSW5kZXh9fSIKICAgICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvdGYtY2FyZC1oZWFkaW5nPgogICAgPHN0eWxlPgogICAgICBwYXBlci1zbGlkZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7CiAgICAgIH0KICAgICAgLnRmLW1lc2gtbG9hZGVyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDVweDsKICAgICAgfQogICAgICBbaGlkZGVuXSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEk3dC5wcm90b3R5cGUsInJ1biIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxJN3QucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sSTd0LnByb3RvdHlwZSwic2FtcGxlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEk3dC5wcm90b3R5cGUsIm9mU2FtcGxlcyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxJN3QucHJvdG90eXBlLCJzZWxlY3RlZFZpZXciLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxJN3QucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsZHIpXSxJN3QucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixON3QpXSxJN3QucHJvdG90eXBlLCJfbWVzaFZpZXdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixES3QpXSxJN3QucHJvdG90eXBlLCJfZGF0YVByb3ZpZGVyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEk3dC5wcm90b3R5cGUsIl9jb2xvclNjYWxlRnVuY3Rpb24iLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheSxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxJN3QucHJvdG90eXBlLCJfc3RlcHMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEk3dC5wcm90b3R5cGUsIl9zdGVwSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxJN3QucHJvdG90eXBlLCJfbWVzaFZpZXdlckF0dGFjaGVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSTd0LnByb3RvdHlwZSwiX2NhbWVyYVBvc2l0aW9uSW5pdGlhbGl6ZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxJN3QucHJvdG90eXBlLCJfaXNNZXNoTG9hZGluZyIsdm9pZCAwKSx0KFtzKCJydW4iKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxJN3QucHJvdG90eXBlLCJfcnVuQ29sb3IiLG51bGwpLHQoW2EoInJ1biIsInRhZyIsImFjdGl2ZSIsIl9kYXRhUHJvdmlkZXIiLCJfbWVzaFZpZXdlciIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sSTd0LnByb3RvdHlwZSwicmVsb2FkIixudWxsKSx0KFthKCJfY3VycmVudFN0ZXAuKiIsIl9tZXNoVmlld2VyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxJN3QucHJvdG90eXBlLCJfdXBkYXRlU2NlbmUiLG51bGwpLHQoW2EoIl9jdXJyZW50U3RlcCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sSTd0LnByb3RvdHlwZSwiX2RlYm91bmNlZEZldGNoTWVzaCIsbnVsbCksdChbcygiX3N0ZXBzIiwiX3N0ZXBJbmRleCIpLGUoImRlc2lnbjp0eXBlIixPYmplY3QpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEk3dC5wcm90b3R5cGUsIl9jdXJyZW50U3RlcCIsbnVsbCksdChbcygiX2N1cnJlbnRTdGVwIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSTd0LnByb3RvdHlwZSwiX3N0ZXBWYWx1ZSIsbnVsbCksdChbcygiX2N1cnJlbnRTdGVwIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSTd0LnByb3RvdHlwZSwiX2N1cnJlbnRXYWxsVGltZSIsbnVsbCksdChbYSgic2VsZWN0ZWRWaWV3IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxJN3QucHJvdG90eXBlLCJfdXBkYXRlVmlldyIsbnVsbCksSTd0PXQoW2koInRmLW1lc2gtbG9hZGVyIildLEk3dCk7bGV0IFI3dD1jbGFzcyBleHRlbmRzIHlle2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5fdGFnRmlsdGVyPSIuKiIsdGhpcy5fc2VsZWN0ZWRWaWV3PSJhbGwiLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcix3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwoKCk9Pnt0aGlzLl9oYW5kbGVXaW5kb3dSZXNpemUoKX0pLCExKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9X2dldEFsbENoaWxkcmVuKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLW1lc2gtbG9hZGVyIikpfV9vbkNhbWVyYVBvc2l0aW9uQ2hhbmdlZCh0KXsic2hhcmUiPT10aGlzLl9zZWxlY3RlZFZpZXcmJnRoaXMuX2dldEFsbENoaWxkcmVuKCkuZm9yRWFjaCgoZT0+e3QudGFyZ2V0IT1lJiZlLnNldENhbWVyYVZpZXdwb2ludCh0LmRldGFpbC5wb3NpdGlvbix0LmRldGFpbC5mYXIsdC5kZXRhaWwudGFyZ2V0KX0pKX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1yZWxvYWQoKXt0aGlzLl9mZXRjaFRhZ3MoKS50aGVuKHRoaXMuX3JlbG9hZE1lc2hlcy5iaW5kKHRoaXMpKX1faGFuZGxlV2luZG93UmVzaXplKCl7dGhpcy5fZ2V0QWxsQ2hpbGRyZW4oKS5mb3JFYWNoKCh0PT57dC5yZWRyYXcoKX0pKX1fZmV0Y2hUYWdzKCl7Y29uc3QgdD1fcigpLnBsdWdpblJvdXRlKCJtZXNoIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoU2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47Y29uc3QgZT1hcihTZS5leHBvcnRzLm1hcFZhbHVlcyh0LCh0PT5PYmplY3Qua2V5cyh0KSkpKTt0aGlzLl9kYXRhTm90Rm91bmQ9MD09PWUubGVuZ3RoLHRoaXMuX3J1blRvVGFnSW5mbz10fSkpfV9yZWxvYWRNZXNoZXMoKXt0aGlzLl9nZXRBbGxDaGlsZHJlbigpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfWdldCBfY2F0ZWdvcmllcygpe3ZhciB0PXRoaXMuX3J1blRvVGFnSW5mbyxlPXRoaXMuX3NlbGVjdGVkUnVucyxuPXRoaXMuX3RhZ0ZpbHRlcjtmdW5jdGlvbiBpKGUpe2NvbnN0IG49dFtlLnJ1bl1bZS50YWddLnNhbXBsZXM7cmV0dXJuIFNlLmV4cG9ydHMucmFuZ2UobikubWFwKCh0PT5PYmplY3QuYXNzaWduKHt9LGUse3NhbXBsZTp0LG9mU2FtcGxlczpufSkpKX1yZXR1cm4gTXIoU2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+T2JqZWN0LmtleXModCkpKSxlLG4pLm1hcCgodD0+T2JqZWN0LmFzc2lnbih7fSx0LHtpdGVtczpbXS5jb25jYXQuYXBwbHkoW10sdC5pdGVtcy5tYXAoaSkpfSkpKX19O1I3dC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgICA8ZGl2IHNsb3Q9InNpZGViYXIiIGNsYXNzPSJhbGwtY29udHJvbHMiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiB2aWV3LWNvbnRyb2wiPgogICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj5Qb2ludCBvZiB2aWV3PC9oMz4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tZ3JvdXAKICAgICAgICAgICAgICAgIGlkPSJ2aWV3LXJhZGlvLWdyb3VwIgogICAgICAgICAgICAgICAgc2VsZWN0ZWQ9Int7X3NlbGVjdGVkVmlld319IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24gaWQ9ImFsbC1yYWRpby1idXR0b24iIG5hbWU9ImFsbCI+CiAgICAgICAgICAgICAgICAgIERpc3BsYXkgYWxsIHBvaW50cwogICAgICAgICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgIGZvcj0iYWxsLXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIFpvb20gYW5kIGNlbnRlciBjYW1lcmEgdG8gZGlzcGxheSBhbGwgcG9pbnRzIGF0IG9uY2UuIE5vdGUsCiAgICAgICAgICAgICAgICAgIHRoYXQgc29tZSBwb2ludHMgY291bGQgYmUgdG9vIGZhciAoaS5lLiB0b28gc21hbGwpIHRvIGJlCiAgICAgICAgICAgICAgICAgIHZpc2libGUuCiAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIGlkPSJ1c2VyLXJhZGlvLWJ1dHRvbiIgbmFtZT0idXNlciI+CiAgICAgICAgICAgICAgICAgIEN1cnJlbnQgdmlldwogICAgICAgICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgIGZvcj0idXNlci1yYWRpby1idXR0b24iCiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICBLZWVwIGN1cnJlbnQgY2FtZXJhIHBvc2l0aW9uIGFuZCB6b29tIGxldmVsLgogICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbiBpZD0ic2hhcmUtcmFkaW8tYnV0dG9uIiBuYW1lPSJzaGFyZSI+CiAgICAgICAgICAgICAgICAgIFNoYXJlIHZpZXdwb2ludAogICAgICAgICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgIGZvcj0ic2hhcmUtcmFkaW8tYnV0dG9uIgogICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgU2hhcmUgdmlld3BvaW50IGFtb25nIGFsbCBjYW1lcmFzLgogICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tZ3JvdXA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3Igc2VsZWN0ZWQtcnVucz0ie3tfc2VsZWN0ZWRSdW5zfX0iPgogICAgICAgICAgPC90Zi1ydW5zLXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBzbG90PSJjZW50ZXIiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm8tZGF0YS13YXJuaW5nIj4KICAgICAgICAgICAgPGgzPk5vIHBvaW50IGNsb3VkIGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICBZb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IHBvaW50IGNsb3VkIGRhdGEgdG8geW91ciBldmVudCBmaWxlcy4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UZW5zb3JCb2FyZCBjYW7igJl0IGZpbmQgeW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8KICAgICAgICAgICAgICBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICAgID4uCiAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8dGYtdGFnLWZpbHRlcmVyIHRhZy1maWx0ZXI9Int7X3RhZ0ZpbHRlcn19Ij48L3RmLXRhZy1maWx0ZXJlcj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgY2F0ZWdvcnk9IltbY2F0ZWdvcnldXSIKICAgICAgICAgICAgICBpbml0aWFsLW9wZW5lZD0iW1tfc2hvdWxkT3BlbihpbmRleCldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1tZXNoLWxvYWRlcgogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLXZpZXc9IltbX3NlbGVjdGVkVmlld11dIgogICAgICAgICAgICAgICAgICBydW49IltbaXRlbS5ydW5dXSIKICAgICAgICAgICAgICAgICAgdGFnPSJbW2l0ZW0udGFnXV0iCiAgICAgICAgICAgICAgICAgIHNhbXBsZT0iW1tpdGVtLnNhbXBsZV1dIgogICAgICAgICAgICAgICAgICBvZi1zYW1wbGVzPSJbW2l0ZW0ub2ZTYW1wbGVzXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgICAgY2xhc3M9InRmLW1lc2gtbG9hZGVyLWNvbnRhaW5lciIKICAgICAgICAgICAgICAgICAgb24tY2FtZXJhLXBvc2l0aW9uLWNoYW5nZT0iX29uQ2FtZXJhUG9zaXRpb25DaGFuZ2VkIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPC90Zi1tZXNoLWxvYWRlcj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KCiAgICA8c3R5bGUgaW5jbHVkZT0iZGFzaGJvYXJkLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICAubm8tZGF0YS13YXJuaW5nIHsKICAgICAgICBtYXgtd2lkdGg6IDU0MHB4OwogICAgICAgIG1hcmdpbjogODBweCBhdXRvIDAgYXV0bzsKICAgICAgfQogICAgICBwYXBlci1yYWRpby1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDVweDsKICAgICAgfQogICAgICAuc2lkZWJhci1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICB9CgogICAgICAucnVucy1zZWxlY3RvciB7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICB9CgogICAgICB0Zi1ydW5zLXNlbGVjdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICAudmlldy1jb250cm9sIHsKICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudmlldy1jb250cm9sIGgzLnRpdGxlIHsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmFsbGNvbnRyb2xzIC52aWV3LWNvbnRyb2wgcGFwZXItcmFkaW8tZ3JvdXAgewogICAgICAgIG1hcmdpbi10b3A6IDVweDsKICAgICAgfQogICAgICAvKiBMYXlvdXQgbXVzdCBiZSBob3Jpem9udGFsLCBpLmUuIGl0ZW1zIGFycmFuZ2VkIGluIGEgcm93LiBJZiBpdGVtcyBjYW5ub3QgZml0IGluIGEgcm93LAogICAgICAgKiB0aGV5IHNob3VsZCBiZSBtb3ZlZCB0byBuZXh0IGxpbmUuIEFsbCBpdGVtcyBtdXN0IGJlIHNxdWFyZSBhdCBhbGwgdGltZXMuIE1pbmltdW0gc2l6ZSBvZgogICAgICAgKiB0aGUgaXRlbSBpcyA0ODBweC4gVGhpcyBtZWFucyB0aGF0IG1heGltdW0gc2l6ZSBvZiB0aGUgaXRlbSBtdXN0IGJlIDQ4MHB4ICsgNDc5cHggPSA5NTlweC4KICAgICAgICogKi8KICAgICAgLmhvcml6b250YWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgdGYtbWVzaC1sb2FkZXIgewogICAgICAgIHdpZHRoOiA0ODBweDsKICAgICAgICBmbGV4LWJhc2lzOiA0ODBweDsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFI3dC5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFI3dC5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sUjd0LnByb3RvdHlwZSwiX3J1blRvVGFnSW5mbyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFI3dC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUjd0LnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUjd0LnByb3RvdHlwZSwiX3NlbGVjdGVkVmlldyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxSN3QucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbcygiX3J1blRvVGFnSW5mbyIsIl9zZWxlY3RlZFJ1bnMiLCJfdGFnRmlsdGVyIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxSN3QucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCksUjd0PXQoW2koIm1lc2gtZGFzaGJvYXJkIiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sUjd0KTtsZXQgTzd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX3J1blRvUHJDdXJ2ZUVudHJ5PXt9LHRoaXMuX3ByZXZpb3VzUnVuVG9QckN1cnZlRW50cnk9e30sdGhpcy5fY29sb3JTY2FsZUZ1bmN0aW9uPXtzY2FsZTpHUn0sdGhpcy5fY2FuY2VsbGVyPW5ldyBYUix0aGlzLl94Q29tcG9uZW50c0NyZWF0aW9uTWV0aG9kPSgpPT57Y29uc3QgdD1uZXcgck8uU2NhbGVzLkxpbmVhcjtyZXR1cm57c2NhbGU6dCxheGlzOm5ldyByTy5BeGVzLk51bWVyaWModCwiYm90dG9tIiksYWNjZXNzb3I6dD0+dC5yZWNhbGx9fSx0aGlzLl95VmFsdWVBY2Nlc3Nvcj10PT50LnByZWNpc2lvbix0aGlzLl90b29sdGlwQ29sdW1ucz0oKCk9Pntjb25zdCB0PXdUdCg0KSxlPWU9PmlzTmFOKGUpPyJOYU4iOnQoZSk7cmV0dXJuW3t0aXRsZToiUnVuIixldmFsdWF0ZTp0PT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lfSx7dGl0bGU6IlRocmVzaG9sZCIsZXZhbHVhdGU6dD0+ZSh0LmRhdHVtLnRocmVzaG9sZHMpfSx7dGl0bGU6IlByZWNpc2lvbiIsZXZhbHVhdGU6dD0+ZSh0LmRhdHVtLnByZWNpc2lvbil9LHt0aXRsZToiUmVjYWxsIixldmFsdWF0ZTp0PT5lKHQuZGF0dW0ucmVjYWxsKX0se3RpdGxlOiJUUCIsZXZhbHVhdGU6dD0+dC5kYXR1bS50cnVlX3Bvc2l0aXZlc30se3RpdGxlOiJGUCIsZXZhbHVhdGU6dD0+dC5kYXR1bS5mYWxzZV9wb3NpdGl2ZXN9LHt0aXRsZToiVE4iLGV2YWx1YXRlOnQ9PnQuZGF0dW0udHJ1ZV9uZWdhdGl2ZXN9LHt0aXRsZToiRk4iLGV2YWx1YXRlOnQ9PnQuZGF0dW0uZmFsc2VfbmVnYXRpdmVzfV19KSgpLHRoaXMuX3Nlcmllc0RhdGFGaWVsZHM9WyJ0aHJlc2hvbGRzIiwicHJlY2lzaW9uIiwicmVjYWxsIiwidHJ1ZV9wb3NpdGl2ZXMiLCJmYWxzZV9wb3NpdGl2ZXMiLCJ0cnVlX25lZ2F0aXZlcyIsImZhbHNlX25lZ2F0aXZlcyJdLHRoaXMuX2RlZmF1bHRYUmFuZ2U9Wy0uMDUsMS4wNV0sdGhpcy5fZGVmYXVsdFlSYW5nZT1bLS4wNSwxLjA1XSx0aGlzLl9yZXF1ZXN0RGF0YT0odCxlLG4pPT57Y29uc3QgaT1fcigpLnBsdWdpblJvdXRlKCJwcl9jdXJ2ZXMiLCIvcHJfY3VydmVzIik7UHJvbWlzZS5hbGwodC5tYXAoKHQ9Pntjb25zdCBuPWlPKGkse3RhZzp0aGlzLnRhZyxydW46dH0pO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QobikudGhlbigobj0+e2Uoe2l0ZW06dCxkYXRhOm59KX0pKX0pKSkuZmluYWxseSgoKCk9PntuKCl9KSl9LHRoaXMuX3Ntb290aGluZ0VuYWJsZWQ9ITF9X2NyZWF0ZVByb2Nlc3NEYXRhRnVuY3Rpb24oKXtyZXR1cm4odCxlLG4pPT57dGhpcy5zZXQoIl9ydW5Ub0RhdGFPdmVyVGltZSIsT2JqZWN0LmFzc2lnbih7fSx0aGlzLl9ydW5Ub0RhdGFPdmVyVGltZSxuKSl9fV9jb21wdXRlUnVuQ29sb3IodCl7cmV0dXJuIEdSKHQpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9hdHRhY2hlZD0hMCx0aGlzLnJlbG9hZCgpfV9nZXRDaGFydERhdGFMb2FkZXIoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoInRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIiKX1yZWxvYWQoKXt0aGlzLl9hdHRhY2hlZCYmKDAhPT10aGlzLnJ1bnMubGVuZ3RoP3RoaXMuX2dldENoYXJ0RGF0YUxvYWRlcigpLnJlbG9hZCgpOnRoaXMuc2V0KCJfcnVuVG9EYXRhT3ZlclRpbWUiLHt9KSl9X3NldENoYXJ0RGF0YSgpe3ZhciB0PXRoaXMuX3J1blRvUHJDdXJ2ZUVudHJ5LGU9dGhpcy5fcHJldmlvdXNSdW5Ub1ByQ3VydmVFbnRyeSxuPXRoaXMuX3NldE9mUmVsZXZhbnRSdW5zO1NlLmV4cG9ydHMuZm9yT3duKHQsKChpLHIpPT57Y29uc3Qgbz1lW3JdO28mJnRbcl0uc3RlcD09PW8uc3RlcHx8KG5bcl0/dGhpcy5fdXBkYXRlU2VyaWVzRGF0YUZvclJ1bihyLGkpOnRoaXMuX2NsZWFyU2VyaWVzRGF0YShyKSl9KSl9X3VwZGF0ZVNlcmllc0RhdGFGb3JSdW4odCxlKXtjb25zdCBuPVNlLmV4cG9ydHMucmVkdWNlKHRoaXMuX3Nlcmllc0RhdGFGaWVsZHMsKCh0LG4pPT4odFtuXT1lW25dLnNsaWNlKCkucmV2ZXJzZSgpLHQpKSx7fSksaT1uZXcgQXJyYXkoblt0aGlzLl9zZXJpZXNEYXRhRmllbGRzWzBdXS5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKWlbdF09U2UuZXhwb3J0cy5tYXBWYWx1ZXMobiwoZT0+ZVt0XSkpO2NvbnN0IHI9dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCk7ci5zZXRTZXJpZXNEYXRhKHQsaSksci5jb21taXRDaGFuZ2VzKCl9X2NsZWFyU2VyaWVzRGF0YSh0KXtjb25zdCBlPXRoaXMuX2dldENoYXJ0RGF0YUxvYWRlcigpO2Uuc2V0U2VyaWVzRGF0YSh0LFtdKSxlLmNvbW1pdENoYW5nZXMoKX1fdXBkYXRlUnVuVG9QckN1cnZlRW50cnkoKXt2YXIgdD10aGlzLnJ1blRvU3RlcENhcDtjb25zdCBlPXt9O1NlLmV4cG9ydHMuZm9yT3duKHRoaXMuX3J1blRvRGF0YU92ZXJUaW1lLCgobixpKT0+e24mJm4ubGVuZ3RoJiYoZVtpXT10aGlzLl9jb21wdXRlRW50cnlDbG9zZXN0T3JFcXVhbFRvU3RlcENhcCh0W2ldLG4pKX0pKSx0aGlzLnNldCgiX3ByZXZpb3VzUnVuVG9QckN1cnZlRW50cnkiLHRoaXMuX3J1blRvUHJDdXJ2ZUVudHJ5KSx0aGlzLnNldCgiX3J1blRvUHJDdXJ2ZUVudHJ5IixlKX1fbm90aWZ5RGF0YUNoYW5nZSgpe3RoaXMub25EYXRhQ2hhbmdlJiZ0aGlzLm9uRGF0YUNoYW5nZSh0aGlzLl9ydW5Ub0RhdGFPdmVyVGltZSl9X2NvbXB1dGVFbnRyeUNsb3Nlc3RPckVxdWFsVG9TdGVwQ2FwKHQsZSl7Y29uc3Qgbj1NYXRoLm1pbihTZS5leHBvcnRzLnNvcnRlZEluZGV4KGUubWFwKCh0PT50LnN0ZXApKSx0KSxlLmxlbmd0aC0xKTtyZXR1cm4gZVtuXX1nZXQgX3J1bnNXaXRoU3RlcEF2YWlsYWJsZSgpe3ZhciB0PXRoaXMuX3J1blRvUHJDdXJ2ZUVudHJ5O3JldHVybiBTZS5leHBvcnRzLmZpbHRlcih0aGlzLnJ1bnMsKGU9PnRbZV0pKS5zb3J0KCl9Z2V0IF9zZXRPZlJlbGV2YW50UnVucygpe2NvbnN0IHQ9e307cmV0dXJuIFNlLmV4cG9ydHMuZm9yRWFjaCh0aGlzLl9ydW5zV2l0aFN0ZXBBdmFpbGFibGUsKGU9Pnt0W2VdPSEwfSkpLHR9X2NvbXB1dGVDdXJyZW50U3RlcEZvclJ1bih0LGUpe2NvbnN0IG49dFtlXTtyZXR1cm4gbj9uLnN0ZXA6bnVsbH1fY29tcHV0ZUN1cnJlbnRXYWxsVGltZUZvclJ1bih0LGUpe2NvbnN0IG49dFtlXTtyZXR1cm4gbj9uZXcgRGF0ZSgxZTMqbi53YWxsX3RpbWUpLnRvU3RyaW5nKCk6bnVsbH1fdG9nZ2xlRXhwYW5kZWQodCl7dGhpcy5zZXQoIl9leHBhbmRlZCIsIXRoaXMuX2V4cGFuZGVkKSx0aGlzLnJlZHJhdygpfV9yZXNldERvbWFpbigpe3RoaXMuX2dldENoYXJ0RGF0YUxvYWRlcigpLnJlc2V0RG9tYWluKCl9cmVkcmF3KCl7dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCkucmVkcmF3KCl9fTtPN3QudGVtcGxhdGU9X2VgCiAgICA8dGYtY2FyZC1oZWFkaW5nCiAgICAgIHRhZz0iW1t0YWddXSIKICAgICAgZGlzcGxheS1uYW1lPSJbW3RhZ01ldGFkYXRhLmRpc3BsYXlOYW1lXV0iCiAgICAgIGRlc2NyaXB0aW9uPSJbW3RhZ01ldGFkYXRhLmRlc2NyaXB0aW9uXV0iCiAgICA+PC90Zi1jYXJkLWhlYWRpbmc+CgogICAgPHRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIKICAgICAgeC1jb21wb25lbnRzLWNyZWF0aW9uLW1ldGhvZD0iW1tfeENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZF1dIgogICAgICB5LXZhbHVlLWFjY2Vzc29yPSJbW195VmFsdWVBY2Nlc3Nvcl1dIgogICAgICB0b29sdGlwLWNvbHVtbnM9IltbX3Rvb2x0aXBDb2x1bW5zXV0iCiAgICAgIGNvbG9yLXNjYWxlPSJbW19jb2xvclNjYWxlRnVuY3Rpb25dXSIKICAgICAgZGVmYXVsdC14LXJhbmdlPSJbW19kZWZhdWx0WFJhbmdlXV0iCiAgICAgIGRlZmF1bHQteS1yYW5nZT0iW1tfZGVmYXVsdFlSYW5nZV1dIgogICAgICBzbW9vdGhpbmctZW5hYmxlZD0iW1tfc21vb3RoaW5nRW5hYmxlZF1dIgogICAgICByZXF1ZXN0LW1hbmFnZXI9IltbcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgZGF0YS10by1sb2FkPSJbW3J1bnNdXSIKICAgICAgZGF0YS1zZXJpZXM9IltbcnVuc11dIgogICAgICBsb2FkLWtleT0iW1t0YWddXSIKICAgICAgcmVxdWVzdC1kYXRhPSJbW19yZXF1ZXN0RGF0YV1dIgogICAgICBsb2FkLWRhdGEtY2FsbGJhY2s9IltbX2NyZWF0ZVByb2Nlc3NEYXRhRnVuY3Rpb24oKV1dIgogICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICA+PC90Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyPgoKICAgIDxkaXYgaWQ9ImJ1dHRvbnMtcm93Ij4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19leHBhbmRlZF1dIgogICAgICAgIGljb249ImZ1bGxzY3JlZW4iCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBpY29uPSJzZXR0aW5ncy1vdmVyc2NhbiIKICAgICAgICBvbi10YXA9Il9yZXNldERvbWFpbiIKICAgICAgICB0aXRsZT0iUmVzZXQgYXhlcyB0byBbMCwgMV0uIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9InN0ZXAtbGVnZW5kIj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfcnVuc1dpdGhTdGVwQXZhaWxhYmxlXV0iIGFzPSJydW4iPgogICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1yb3ciPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iY29sb3ItYm94IgogICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZDogW1tfY29tcHV0ZVJ1bkNvbG9yKHJ1bildXTsiCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICBbW3J1bl1dIGlzIGF0CiAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RlcC1sYWJlbC10ZXh0Ij4KICAgICAgICAgICAgc3RlcCBbW19jb21wdXRlQ3VycmVudFN0ZXBGb3JSdW4oX3J1blRvUHJDdXJ2ZUVudHJ5LCBydW4pXV0gPC9zcGFuCiAgICAgICAgICA+PGJyIC8+CiAgICAgICAgICA8c3BhbiBjbGFzcz0id2FsbC10aW1lLWxhYmVsLXRleHQiPgogICAgICAgICAgICAoW1tfY29tcHV0ZUN1cnJlbnRXYWxsVGltZUZvclJ1bihfcnVuVG9QckN1cnZlRW50cnksIHJ1bildXSkKICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB3aWR0aDogNTAwcHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgIH0KICAgICAgOmhvc3QoW19leHBhbmRlZF0pIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICB0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyIHsKICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICA6aG9zdChbX2V4cGFuZGVkXSkgdGYtbGluZS1jaGFydC1kYXRhLWxvYWRlciB7CiAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgfQogICAgICAjYnV0dG9ucy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfQogICAgICAjYnV0dG9ucy1yb3cgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGNvbG9yOiAjMjE5NmYzOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQogICAgICAjYnV0dG9ucy1yb3cgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CiAgICAgICNzdGVwLWxlZ2VuZCB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBmb250LXNpemU6IDAuOGVtOwogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogMCAwIDAgMTBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAubGVnZW5kLXJvdyB7CiAgICAgICAgbWFyZ2luOiA1cHggMCA1cHggMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAuY29sb3ItYm94IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgfQogICAgICAuc3RlcC1sYWJlbC10ZXh0IHsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQogICAgICAud2FsbC10aW1lLWxhYmVsLXRleHQgewogICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIGZvbnQtc2l6ZTogMC44ZW07CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sTzd0LnByb3RvdHlwZSwicnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxPN3QucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTzd0LnByb3RvdHlwZSwidGFnTWV0YWRhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTzd0LnByb3RvdHlwZSwicnVuVG9TdGVwQ2FwIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0sTzd0LnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxPN3QucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sTzd0LnByb3RvdHlwZSwiX2V4cGFuZGVkIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE83dC5wcm90b3R5cGUsIl9ydW5Ub1ByQ3VydmVFbnRyeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxPN3QucHJvdG90eXBlLCJfcHJldmlvdXNSdW5Ub1ByQ3VydmVFbnRyeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxPN3QucHJvdG90eXBlLCJfcnVuVG9EYXRhT3ZlclRpbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxPN3QucHJvdG90eXBlLCJvbkRhdGFDaGFuZ2UiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTzd0LnByb3RvdHlwZSwiX2NvbG9yU2NhbGVGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixYUildLE83dC5wcm90b3R5cGUsIl9jYW5jZWxsZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxPN3QucHJvdG90eXBlLCJfYXR0YWNoZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTzd0LnByb3RvdHlwZSwiX3hDb21wb25lbnRzQ3JlYXRpb25NZXRob2QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTzd0LnByb3RvdHlwZSwiX3lWYWx1ZUFjY2Vzc29yIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxPN3QucHJvdG90eXBlLCJfdG9vbHRpcENvbHVtbnMiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLE83dC5wcm90b3R5cGUsIl9zZXJpZXNEYXRhRmllbGRzIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxPN3QucHJvdG90eXBlLCJfZGVmYXVsdFhSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sTzd0LnByb3RvdHlwZSwiX2RlZmF1bHRZUmFuZ2UiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxPN3QucHJvdG90eXBlLCJfcmVxdWVzdERhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxPN3QucHJvdG90eXBlLCJfc21vb3RoaW5nRW5hYmxlZCIsdm9pZCAwKSx0KFthKCJydW5zIiwidGFnIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxPN3QucHJvdG90eXBlLCJyZWxvYWQiLG51bGwpLHQoW2EoIl9ydW5Ub1ByQ3VydmVFbnRyeSIsIl9wcmV2aW91c1J1blRvUHJDdXJ2ZUVudHJ5IiwiX3NldE9mUmVsZXZhbnRSdW5zIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxPN3QucHJvdG90eXBlLCJfc2V0Q2hhcnREYXRhIixudWxsKSx0KFthKCJfcnVuVG9EYXRhT3ZlclRpbWUiLCJydW5Ub1N0ZXBDYXAiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLE83dC5wcm90b3R5cGUsIl91cGRhdGVSdW5Ub1ByQ3VydmVFbnRyeSIsbnVsbCksdChbYSgiX3J1blRvRGF0YU92ZXJUaW1lIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxPN3QucHJvdG90eXBlLCJfbm90aWZ5RGF0YUNoYW5nZSIsbnVsbCksdChbcygicnVucyIsIl9ydW5Ub1ByQ3VydmVFbnRyeSIpLGUoImRlc2lnbjp0eXBlIixBcnJheSksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sTzd0LnByb3RvdHlwZSwiX3J1bnNXaXRoU3RlcEF2YWlsYWJsZSIsbnVsbCksdChbcygiX3J1bnNXaXRoU3RlcEF2YWlsYWJsZSIpLGUoImRlc2lnbjp0eXBlIixPYmplY3QpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLE83dC5wcm90b3R5cGUsIl9zZXRPZlJlbGV2YW50UnVucyIsbnVsbCksTzd0PXQoW2koInRmLXByLWN1cnZlLWNhcmQiKV0sTzd0KTtsZXQgejd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3J1blRvU3RlcEluZGV4PXt9fV9jb21wdXRlQ29sb3JGb3JSdW4odCl7cmV0dXJuIEdSKHQpfV9jb21wdXRlVGltZVRleHRGb3JSdW4odCxlLG4saSl7Y29uc3Qgcj1lW25dO2lmKCFTZS5leHBvcnRzLmlzTnVtYmVyKHIpKXJldHVybiIiO2NvbnN0IG89dFtuXTtpZighbylyZXR1cm4iIjtjb25zdCBhPW9bcl1baV07aWYoInN0ZXAiPT09aSlyZXR1cm5gc3RlcCAke2F9YDtpZigicmVsYXRpdmUiPT09aSlyZXR1cm4gYTwxP2AkeygxZTMqYSkudG9GaXhlZCgyKX0gbXNgOmAke2EudG9GaXhlZCgyKX0gc2A7aWYoIndhbGxfdGltZSI9PT1pKXJldHVybiBuZXcgRGF0ZSgxZTMqYSkudG9TdHJpbmcoKTt0aHJvdyBuZXcgRXJyb3IoYFRoZSBkaXNwbGF5IHR5cGUgb2YgJHtpfSBpcyBub3QgcmVjb2duaXplZC5gKX1fc2xpZGVyVmFsdWVDaGFuZ2VkKHQpe2NvbnN0IGU9dC50YXJnZXQuZGF0YXNldC5ydW4sbj10LnRhcmdldC5pbW1lZGlhdGVWYWx1ZSxpPU9iamVjdC5hc3NpZ24oe30sdGhpcy5fcnVuVG9TdGVwSW5kZXgpO2lzTmFOKG4pP2RlbGV0ZSBpW2VdOmlbZV09dC50YXJnZXQuaW1tZWRpYXRlVmFsdWUsdGhpcy5fcnVuVG9TdGVwSW5kZXg9aX1fY29tcHV0ZU1heFN0ZXBJbmRleEZvclJ1bih0LGUpe2NvbnN0IG49dFtlXTtyZXR1cm4gbiYmbi5sZW5ndGg/bi5sZW5ndGgtMTowfV91cGRhdGVTdGVwc0Zvck5ld1J1bnMoKXt2YXIgdD10aGlzLnJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXM7Y29uc3QgZT1PYmplY3QuYXNzaWduKHt9LHRoaXMuX3J1blRvU3RlcEluZGV4KTtTZS5leHBvcnRzLmZvck93bih0LCgodCxuKT0+e1NlLmV4cG9ydHMuaXNOdW1iZXIoZVtuXSl8fChlW25dPXQubGVuZ3RoLTEpfSkpLHRoaXMuX3J1blRvU3RlcEluZGV4PWV9X2dldFN0ZXAodCxlKXtyZXR1cm4gdGhpcy5fcnVuVG9TdGVwSW5kZXg/dGhpcy5fcnVuVG9TdGVwSW5kZXhbZV06MH1fY29tcHV0ZVJ1blRvU3RlcCh0LGUpe2NvbnN0IG49e307cmV0dXJuIFNlLmV4cG9ydHMuZm9yT3duKGUsKChlLGkpPT57Y29uc3Qgcj10W2ldO3ImJihuW2ldPXJbZV0uc3RlcCl9KSksbn1nZXQgX3J1bnNXaXRoU2xpZGVycygpe3ZhciB0PXRoaXMucnVuVG9BdmFpbGFibGVUaW1lRW50cmllcztyZXR1cm4gdGhpcy5ydW5zLmZpbHRlcigoZT0+dFtlXSkpfX07ejd0LnRlbXBsYXRlPV9lYAogICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfcnVuc1dpdGhTbGlkZXJzXV0iIGFzPSJydW4iPgogICAgICA8ZGl2IGNsYXNzPSJydW4td2lkZ2V0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJydW4tZGlzcGxheS1jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0icnVuLWNvbG9yLWJveCIKICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQ6W1tfY29tcHV0ZUNvbG9yRm9yUnVuKHJ1bildXTsiCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJydW4tdGV4dCI+W1tydW5dXTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0ZXAtZGlzcGxheS1jb250YWluZXIiPgogICAgICAgICAgW1tfY29tcHV0ZVRpbWVUZXh0Rm9yUnVuKHJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXMsIF9ydW5Ub1N0ZXBJbmRleCwKICAgICAgICAgIHJ1biwgdGltZURpc3BsYXlUeXBlKV1dCiAgICAgICAgPC9kaXY+CiAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgZGF0YS1ydW4kPSJbW3J1bl1dIgogICAgICAgICAgc3RlcD0iMSIKICAgICAgICAgIHR5cGU9Im51bWJlciIKICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgIG1heD0iW1tfY29tcHV0ZU1heFN0ZXBJbmRleEZvclJ1bihydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzLCBydW4pXV0iCiAgICAgICAgICB2YWx1ZT0iW1tfZ2V0U3RlcChfcnVuVG9TdGVwSW5kZXgsIHJ1bildXSIKICAgICAgICAgIG9uLWltbWVkaWF0ZS12YWx1ZS1jaGFuZ2VkPSJfc2xpZGVyVmFsdWVDaGFuZ2VkIgogICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgPC9kaXY+CiAgICA8L3RlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAucnVuLXdpZGdldCB7CiAgICAgICAgbWFyZ2luOiAxMHB4IDAgMCAwOwogICAgICB9CiAgICAgIHBhcGVyLXNsaWRlciB7CiAgICAgICAgbWFyZ2luOiAtOHB4IDAgMCAtMTVweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAuc3RlcC1kaXNwbGF5LWNvbnRhaW5lciB7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBtYXJnaW46IDAgMTVweCAwIDA7CiAgICAgIH0KICAgICAgLnJ1bi10ZXh0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KICAgICAgLnJ1bi1jb2xvci1ib3ggewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLHo3dC5wcm90b3R5cGUsInJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sejd0LnByb3RvdHlwZSwicnVuVG9BdmFpbGFibGVUaW1lRW50cmllcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITAsY29tcHV0ZWQ6Il9jb21wdXRlUnVuVG9TdGVwKHJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXMsIF9ydW5Ub1N0ZXBJbmRleCkifSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHo3dC5wcm90b3R5cGUsInJ1blRvU3RlcCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx6N3QucHJvdG90eXBlLCJ0aW1lRGlzcGxheVR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sejd0LnByb3RvdHlwZSwiX3J1blRvU3RlcEluZGV4Iix2b2lkIDApLHQoW2EoInJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHo3dC5wcm90b3R5cGUsIl91cGRhdGVTdGVwc0Zvck5ld1J1bnMiLG51bGwpLHQoW3MoInJ1bnMiLCJydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSx6N3QucHJvdG90eXBlLCJfcnVuc1dpdGhTbGlkZXJzIixudWxsKSx6N3Q9dChbaSgidGYtcHItY3VydmUtc3RlcHMtc2VsZWN0b3IiKV0sejd0KTtsZXQgRDd0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZWxvYWRPblJlYWR5PSEwLHRoaXMuX3RpbWVEaXNwbGF5VHlwZT0ic3RlcCIsdGhpcy5fc2VsZWN0ZWRSdW5zPVtdLHRoaXMuX3J1blRvVGFnSW5mbz17fSx0aGlzLl90YWdUb1J1blRvRGF0YT17fSx0aGlzLl9nZXRDYXRlZ29yeUl0ZW1LZXk9dD0+dC50YWcsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IGRyLHRoaXMuX3N0ZXA9MH1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe1Byb21pc2UuYWxsKFt0aGlzLl9mZXRjaFRhZ3MoKV0pLnRoZW4oKCgpPT57dGhpcy5fcmVsb2FkQ2FyZHMoKX0pKX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1fZmV0Y2hUYWdzKCl7Y29uc3QgdD1fcigpLnBsdWdpblJvdXRlKCJwcl9jdXJ2ZXMiLCIvdGFncyIpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oKHQ9PntpZihTZS5leHBvcnRzLmlzRXF1YWwodCx0aGlzLl9ydW5Ub1RhZ0luZm8pKXJldHVybjtjb25zdCBlPWFyKFNlLmV4cG9ydHMubWFwVmFsdWVzKHQsKHQ9PlNlLmV4cG9ydHMua2V5cyh0KSkpKTt0aGlzLnNldCgiX2RhdGFOb3RGb3VuZCIsMD09PWUubGVuZ3RoKSx0aGlzLnNldCgiX3J1blRvVGFnSW5mbyIsdCksdGhpcy5hc3luYygoKCk9Pnt0aGlzLnNldCgiX2NhdGVnb3JpZXNEb21SZWFkeSIsITApfSkpfSkpfV9yZWxvYWRDYXJkcygpe1NlLmV4cG9ydHMuZm9yRWFjaCh0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtcHItY3VydmUtY2FyZCIpLCh0PT57dC5yZWxvYWQoKX0pKX1nZXQgX2NhdGVnb3JpZXMoKXt2YXIgdD10aGlzLl9zZWxlY3RlZFJ1bnMsZT10aGlzLl90YWdGaWx0ZXI7cmV0dXJuIHdyKFNlLmV4cG9ydHMubWFwVmFsdWVzKHRoaXMuX3J1blRvVGFnSW5mbywodD0+T2JqZWN0LmtleXModCkpKSx0LGUpfWdldCBfcmVsZXZhbnRTZWxlY3RlZFJ1bnMoKXt2YXIgdD10aGlzLl9ydW5Ub1RhZ0luZm87cmV0dXJuIHRoaXMuX3NlbGVjdGVkUnVucy5maWx0ZXIoKGU9PnRbZV0pKX1fdGFnTWV0YWRhdGEodCxlLG4pe2NvbnN0IGk9e307ZS5mb3JFYWNoKChlPT57aVtlXT10W2VdW25dfSkpO2NvbnN0IHI9bi5yZXBsYWNlKC9cL3ByX2N1cnZlcyQvLCIiKTtyZXR1cm4gZU8oaSxyKX1fY3JlYXRlRGF0YUNoYW5nZUNhbGxiYWNrKHQpe3JldHVybiBlPT57dGhpcy5zZXQoIl90YWdUb1J1blRvRGF0YSIsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuX3RhZ1RvUnVuVG9EYXRhKSx7W3RdOmV9KSl9fWdldCBfcnVuVG9BdmFpbGFibGVUaW1lRW50cmllcygpe3ZhciB0PXRoaXMuX3RhZ1RvUnVuVG9EYXRhO2NvbnN0IGU9e307Zm9yKGNvbnN0W24saV1vZiBPYmplY3QuZW50cmllcyh0KSlmb3IoY29uc3RbdF1vZiBPYmplY3QuZW50cmllcyhpKSkobnVsbD09ZVt0XXx8bjxlW3RdKSYmKGVbdF09bik7Y29uc3Qgbj17fTtmb3IoY29uc3RbaSxyXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtjb25zdCBlPXRbcl1baV07bltpXT1lLm1hcCgodD0+KHtzdGVwOnQuc3RlcCx3YWxsX3RpbWU6dC53YWxsX3RpbWUscmVsYXRpdmU6dC53YWxsX3RpbWUtZVswXS53YWxsX3RpbWV9KSkpfXJldHVybiBufX07RDd0LnRlbXBsYXRlPV9lYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDx0Zi1vcHRpb24tc2VsZWN0b3IKICAgICAgICAgICAgICBpZD0idGltZS10eXBlLXNlbGVjdG9yIgogICAgICAgICAgICAgIG5hbWU9IlRpbWUgRGlzcGxheSBUeXBlIgogICAgICAgICAgICAgIHNlbGVjdGVkLWlkPSJ7e190aW1lRGlzcGxheVR5cGV9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InN0ZXAiPnN0ZXA8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8IS0tCiAgICAgICAgICAgIC0tPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InJlbGF0aXZlIj5yZWxhdGl2ZTwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDwhLS0KICAgICAgICAgICAgLS0+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0id2FsbF90aW1lIj53YWxsPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvdGYtb3B0aW9uLXNlbGVjdG9yPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3J1blRvQXZhaWxhYmxlVGltZUVudHJpZXNdXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiIgaWQ9InN0ZXBzLXNlbGVjdG9yLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPHRmLXByLWN1cnZlLXN0ZXBzLXNlbGVjdG9yCiAgICAgICAgICAgICAgICBydW5zPSJbW19yZWxldmFudFNlbGVjdGVkUnVuc11dIgogICAgICAgICAgICAgICAgcnVuLXRvLXN0ZXA9Int7X3J1blRvU3RlcH19IgogICAgICAgICAgICAgICAgcnVuLXRvLWF2YWlsYWJsZS10aW1lLWVudHJpZXM9IltbX3J1blRvQXZhaWxhYmxlVGltZUVudHJpZXNdXSIKICAgICAgICAgICAgICAgIHRpbWUtZGlzcGxheS10eXBlPSJbW190aW1lRGlzcGxheVR5cGVdXSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPC90Zi1wci1jdXJ2ZS1zdGVwcy1zZWxlY3Rvcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBwcmVjaXNpb27igJNyZWNhbGwgY3VydmUgZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIFlvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgcHJlY2lzaW9u4oCTcmVjYWxsIGRhdGEgdG8geW91ciBldmVudAogICAgICAgICAgICAgICAgZmlsZXMuCiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8KICAgICAgICAgICAgICBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICAgID4uCiAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8dGYtdGFnLWZpbHRlcmVyIHRhZy1maWx0ZXI9Int7X3RhZ0ZpbHRlcn19Ij48L3RmLXRhZy1maWx0ZXJlcj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgY2F0ZWdvcnk9IltbY2F0ZWdvcnldXSIKICAgICAgICAgICAgICBpbml0aWFsLW9wZW5lZD0iW1tfc2hvdWxkT3BlbihpbmRleCldXSIKICAgICAgICAgICAgICBnZXQtY2F0ZWdvcnktaXRlbS1rZXk9IltbX2dldENhdGVnb3J5SXRlbUtleV1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRmLXByLWN1cnZlLWNhcmQKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICBydW5zPSJbW2l0ZW0ucnVuc11dIgogICAgICAgICAgICAgICAgICB0YWc9IltbaXRlbS50YWddXSIKICAgICAgICAgICAgICAgICAgdGFnLW1ldGFkYXRhPSJbW190YWdNZXRhZGF0YShfcnVuVG9UYWdJbmZvLCBpdGVtLnJ1bnMsIGl0ZW0udGFnKV1dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICAgIHJ1bi10by1zdGVwLWNhcD0iW1tfcnVuVG9TdGVwXV0iCiAgICAgICAgICAgICAgICAgIG9uLWRhdGEtY2hhbmdlPSJbW19jcmVhdGVEYXRhQ2hhbmdlQ2FsbGJhY2soaXRlbS50YWcpXV0iCiAgICAgICAgICAgICAgICA+PC90Zi1wci1jdXJ2ZS1jYXJkPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CgogICAgICAvKiogRG8gbm90IGxldCB0aGUgc3RlcHMgc2VsZWN0b3Igb2NjbHVkZSB0aGUgcnVuIHNlbGVjdG9yLiAqLwogICAgICAjc3RlcHMtc2VsZWN0b3ItY29udGFpbmVyIHsKICAgICAgICBtYXgtaGVpZ2h0OiA2MCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sRDd0LnByb3RvdHlwZSwicmVsb2FkT25SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxEN3QucHJvdG90eXBlLCJfdGltZURpc3BsYXlUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxEN3QucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEQ3dC5wcm90b3R5cGUsIl9ydW5Ub1RhZ0luZm8iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRDd0LnByb3RvdHlwZSwiX3RhZ1RvUnVuVG9EYXRhIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxEN3QucHJvdG90eXBlLCJfcnVuVG9TdGVwIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sRDd0LnByb3RvdHlwZSwiX2RhdGFOb3RGb3VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxEN3QucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sRDd0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxEN3QucHJvdG90eXBlLCJfZ2V0Q2F0ZWdvcnlJdGVtS2V5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGRyKV0sRDd0LnByb3RvdHlwZSwiX3JlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxEN3QucHJvdG90eXBlLCJfc3RlcCIsdm9pZCAwKSx0KFtzKCJfcnVuVG9UYWdJbmZvIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiLCJfY2F0ZWdvcmllc0RvbVJlYWR5IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxEN3QucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCksdChbcygiX3NlbGVjdGVkUnVucyIsIl9ydW5Ub1RhZ0luZm8iKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEQ3dC5wcm90b3R5cGUsIl9yZWxldmFudFNlbGVjdGVkUnVucyIsbnVsbCksdChbcygiX3RhZ1RvUnVuVG9EYXRhIiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sRDd0LnByb3RvdHlwZSwiX3J1blRvQXZhaWxhYmxlVGltZUVudHJpZXMiLG51bGwpLEQ3dD10KFtpKCJ0Zi1wci1jdXJ2ZS1kYXNoYm9hcmQiKV0sRDd0KTtsZXQgQjd0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5faW5zdGFsbENvbW1hbmQ9InBpcCBpbnN0YWxsIC1VIHRlbnNvcmJvYXJkLXBsdWdpbi1wcm9maWxlIn1fY29weUluc3RhbGxDb21tYW5kKCl7cmV0dXJuIG4odGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PSgpPT5uKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dGhpcy4kLmNvbW1hbmRUZXh0YXJlYS5zZWxlY3QoKTt0cnl7eWllbGQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy5faW5zdGFsbENvbW1hbmQpfWNhdGNoKHQpe2lmKCFkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpKXJldHVybiBQcm9taXNlLnJlamVjdCgpfX0pKSxlPXRoaXMuJC5jb3BpZWRNZXNzYWdlO3RyeXt5aWVsZCB0KCksZS5pbm5lclRleHQ9IkNvcGllZC4ifWNhdGNoKHQpe2UuaW5uZXJUZXh0PSJGYWlsZWQgdG8gY29weSB0byBjbGlwYm9hcmQuIn19KSl9X3JlbW92ZUNvcGllZE1lc3NhZ2UoKXt0aGlzLiQuY29waWVkTWVzc2FnZS5pbm5lclRleHQ9IiJ9fTtCN3QudGVtcGxhdGU9X2VgCiAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlIj4KICAgICAgPGgzPlRoZSBwcm9maWxlIHBsdWdpbiBoYXMgbW92ZWQuPC9oMz4KICAgICAgPHA+CiAgICAgICAgUGxlYXNlIGluc3RhbGwgdGhlIG5ldyB2ZXJzaW9uIG9mIHRoZSBwcm9maWxlIHBsdWdpbiBmcm9tIFB5UEkgYnkKICAgICAgICBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBmcm9tIHRoZSBtYWNoaW5lIHJ1bm5pbmcgVGVuc29yQm9hcmQ6CiAgICAgIDwvcD4KICAgICAgPHRleHRhcmVhCiAgICAgICAgaWQ9ImNvbW1hbmRUZXh0YXJlYSIKICAgICAgICByZWFkb25seT0iIgogICAgICAgIHJvd3M9IjEiCiAgICAgICAgb24tYmx1cj0iX3JlbW92ZUNvcGllZE1lc3NhZ2UiCiAgICAgID4KW1tfaW5zdGFsbENvbW1hbmRdXTwvdGV4dGFyZWEKICAgICAgPgogICAgICA8ZGl2IGlkPSJjb3B5Q29udGFpbmVyIj4KICAgICAgICA8c3BhbiBpZD0iY29waWVkTWVzc2FnZSI+PC9zcGFuPgogICAgICAgIDxwYXBlci1idXR0b24gcmFpc2VkPSIiIG9uLXRhcD0iX2NvcHlJbnN0YWxsQ29tbWFuZCIKICAgICAgICAgID5Db3B5IHRvIGNsaXBib2FyZDwvcGFwZXItYnV0dG9uCiAgICAgICAgPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlIHsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgfQogICAgICAjY29tbWFuZFRleHRhcmVhIHsKICAgICAgICBtYXJnaW4tdG9wOiAxZXg7CiAgICAgICAgcGFkZGluZzogMWV4IDFlbTsKICAgICAgICByZXNpemU6IHZlcnRpY2FsOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgICNjb3B5Q29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CiAgICAgICNjb3BpZWRNZXNzYWdlIHsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxCN3QucHJvdG90eXBlLCJfaW5zdGFsbENvbW1hbmQiLHZvaWQgMCksQjd0PXQoW2koInRmLXByb2ZpbGUtcmVkaXJlY3QtZGFzaGJvYXJkIildLEI3dCk7bGV0IEg3dD1jbGFzcyBleHRlbmRzKGVyKGhsKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVsb2FkT25SZWFkeT0hMCx0aGlzLl9zaG93RG93bmxvYWRMaW5rcz1IcygiX3Nob3dEb3dubG9hZExpbmtzIix7ZGVmYXVsdFZhbHVlOiExLHVzZUxvY2FsU3RvcmFnZTohMH0pLmNhbGwodGhpcyksdGhpcy5fc21vb3RoaW5nV2VpZ2h0PUdzKCJfc21vb3RoaW5nV2VpZ2h0Iix7ZGVmYXVsdFZhbHVlOi42fSkuY2FsbCh0aGlzKSx0aGlzLl9pZ25vcmVZT3V0bGllcnM9SHMoIl9pZ25vcmVZT3V0bGllcnMiLHtkZWZhdWx0VmFsdWU6ITAsdXNlTG9jYWxTdG9yYWdlOiEwfSkuY2FsbCh0aGlzKSx0aGlzLl94VHlwZT14VHQuU1RFUCx0aGlzLl9zZWxlY3RlZFJ1bnM9W10sdGhpcy5fdGFnRmlsdGVyPSIiLHRoaXMuX2NhdGVnb3JpZXM9W10sdGhpcy5fZ2V0Q2F0ZWdvcnlJdGVtS2V5PXQ9PnQudGFnLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcig1MCksdGhpcy5fc2hvd0Rvd25sb2FkTGlua3NPYnNlcnZlcj1GcygiX3Nob3dEb3dubG9hZExpbmtzIix7ZGVmYXVsdFZhbHVlOiExLHVzZUxvY2FsU3RvcmFnZTohMH0pLHRoaXMuX3Ntb290aGluZ1dlaWdodE9ic2VydmVyPVdzKCJfc21vb3RoaW5nV2VpZ2h0Iix7ZGVmYXVsdFZhbHVlOi42fSksdGhpcy5faWdub3JlWU91dGxpZXJzT2JzZXJ2ZXI9RnMoIl9pZ25vcmVZT3V0bGllcnMiLHtkZWZhdWx0VmFsdWU6ITAsdXNlTG9jYWxTdG9yYWdlOiEwfSl9Z2V0IF9zbW9vdGhpbmdFbmFibGVkKCl7cmV0dXJuIHRoaXMuX3Ntb290aGluZ1dlaWdodD4wfV9nZXRDYXRlZ29yeUtleSh0KXtyZXR1cm4gdC5tZXRhZGF0YS50eXBlPT1ici5TRUFSQ0hfUkVTVUxUUz8iIjp0Lm5hbWV9X3Nob3VsZE9wZW4odCl7cmV0dXJuIHQ8PTJ9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMucmVsb2FkT25SZWFkeSYmdGhpcy5yZWxvYWQoKX1yZWxvYWQoKXt0aGlzLl9mZXRjaFRhZ3MoKS50aGVuKCgoKT0+e3RoaXMuX3JlbG9hZENoYXJ0cygpfSkpfV9mZXRjaFRhZ3MoKXtjb25zdCB0PV9yKCkucGx1Z2luUm91dGUoInNjYWxhcnMiLCIvdGFncyIpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oKHQ9PntpZihTZS5leHBvcnRzLmlzRXF1YWwodCx0aGlzLl9ydW5Ub1RhZ0luZm8pKXJldHVybjtjb25zdCBlPWFyKFNlLmV4cG9ydHMubWFwVmFsdWVzKHQsKHQ9Pk9iamVjdC5rZXlzKHQpKSkpO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIiwwPT09ZS5sZW5ndGgpLHRoaXMuc2V0KCJfcnVuVG9UYWdJbmZvIix0KSx0aGlzLmFzeW5jKCgoKT0+e3RoaXMuc2V0KCJfY2F0ZWdvcmllc0RvbVJlYWR5IiwhMCl9KSl9KSl9X3JlbG9hZENoYXJ0cygpe3RoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1zY2FsYXItY2FyZCIpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfV91cGRhdGVDYXRlZ29yaWVzKCl7dmFyIHQ9dGhpcy5fc2VsZWN0ZWRSdW5zO2xldCBlLG49dGhpcy5fdGFnRmlsdGVyO2U9d3IoU2UuZXhwb3J0cy5tYXBWYWx1ZXModGhpcy5fcnVuVG9UYWdJbmZvLCh0PT5PYmplY3Qua2V5cyh0KSkpLHQsbiksZS5mb3JFYWNoKCh0PT57dC5pdGVtcz10Lml0ZW1zLm1hcCgodD0+KHt0YWc6dC50YWcsc2VyaWVzOnQucnVucy5tYXAoKGU9Pih7cnVuOmUsdGFnOnQudGFnfSkpKX0pKSl9KSksdGhpcy51cGRhdGVBcnJheVByb3AoIl9jYXRlZ29yaWVzIixlLHRoaXMuX2dldENhdGVnb3J5S2V5KX1fdGFnTWV0YWRhdGEodCxlLG4pe2NvbnN0IGk9dC5uYW1lLHI9bi50YWcsbz17fTtuLnNlcmllcy5mb3JFYWNoKCgoe3J1bjp0fSk9PntvW3RdPWVbdF1bcl19KSk7Y29uc3QgYT1yLnJlcGxhY2UoL1wvc2NhbGFyX3N1bW1hcnkkLywiIik7bGV0e2Rlc2NyaXB0aW9uOnMsZGlzcGxheU5hbWU6bH09ZU8obyxhKTtyZXR1cm4gdC5tZXRhZGF0YS50eXBlPT1ici5QUkVGSVhfR1JPVVAmJmwuc3RhcnRzV2l0aChpKyIvIikmJihsPWwuc2xpY2UoaS5sZW5ndGgrMSkpLHtkZXNjcmlwdGlvbjpzLGRpc3BsYXlOYW1lOmx9fX07SDd0LnRlbXBsYXRlPV9lYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94CiAgICAgICAgICAgICAgICBpZD0ic2hvdy1kb3dubG9hZC1saW5rcyIKICAgICAgICAgICAgICAgIGNoZWNrZWQ9Int7X3Nob3dEb3dubG9hZExpbmtzfX0iCiAgICAgICAgICAgICAgICA+U2hvdyBkYXRhIGRvd25sb2FkIGxpbmtzPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94CiAgICAgICAgICAgICAgICBpZD0iaWdub3JlLXktb3V0bGllciIKICAgICAgICAgICAgICAgIGNoZWNrZWQ9Int7X2lnbm9yZVlPdXRsaWVyc319IgogICAgICAgICAgICAgICAgPklnbm9yZSBvdXRsaWVycyBpbiBjaGFydCBzY2FsaW5nPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgaWQ9InRvb2x0aXAtc29ydGluZyI+CiAgICAgICAgICAgICAgPGRpdj5Ub29sdGlwIHNvcnRpbmcgbWV0aG9kOjwvZGl2PgogICAgICAgICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICAgICAgICBuby1sYWJlbC1mbG9hdAogICAgICAgICAgICAgICAgc2VsZWN0ZWQtaXRlbS1sYWJlbD0ie3tfdG9vbHRpcFNvcnRpbmdNZXRob2R9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9IjAiCiAgICAgICAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlZmF1bHQ8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlc2NlbmRpbmc8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmFzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+bmVhcmVzdDwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtc21vb3RoaW5nLWlucHV0CiAgICAgICAgICAgICAgd2VpZ2h0PSJ7e19zbW9vdGhpbmdXZWlnaHR9fSIKICAgICAgICAgICAgICBzdGVwPSIwLjAwMSIKICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgbWF4PSIwLjk5OSIKICAgICAgICAgICAgPjwvdGYtc21vb3RoaW5nLWlucHV0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtb3B0aW9uLXNlbGVjdG9yCiAgICAgICAgICAgICAgaWQ9IngtdHlwZS1zZWxlY3RvciIKICAgICAgICAgICAgICBuYW1lPSJIb3Jpem9udGFsIEF4aXMiCiAgICAgICAgICAgICAgc2VsZWN0ZWQtaWQ9Int7X3hUeXBlfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJzdGVwIj5zdGVwPC9wYXBlci1idXR0b24KICAgICAgICAgICAgICA+PCEtLQogICAgICAgICAgICAtLT48cGFwZXItYnV0dG9uIGlkPSJyZWxhdGl2ZSI+cmVsYXRpdmU8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID48IS0tCiAgICAgICAgICAgIC0tPjxwYXBlci1idXR0b24gaWQ9IndhbGxfdGltZSI+d2FsbDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L3RmLW9wdGlvbi1zZWxlY3Rvcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBzY2FsYXIgZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5Zb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IHNjYWxhciBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgICAgZ2V0LWNhdGVnb3J5LWl0ZW0ta2V5PSJbW19nZXRDYXRlZ29yeUl0ZW1LZXldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1zY2FsYXItY2FyZAogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIGRhdGEtdG8tbG9hZD0iW1tpdGVtLnNlcmllc11dIgogICAgICAgICAgICAgICAgICBpZ25vcmUteS1vdXRsaWVycz0iW1tfaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgICAgICAgICAgIG11bHRpLWV4cGVyaW1lbnRzPSJbW19nZXRNdWx0aUV4cGVyaW1lbnRzKGRhdGFTZWxlY3Rpb24pXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgICAgc2hvdy1kb3dubG9hZC1saW5rcz0iW1tfc2hvd0Rvd25sb2FkTGlua3NdXSIKICAgICAgICAgICAgICAgICAgc21vb3RoaW5nLWVuYWJsZWQ9IltbX3Ntb290aGluZ0VuYWJsZWRdXSIKICAgICAgICAgICAgICAgICAgc21vb3RoaW5nLXdlaWdodD0iW1tfc21vb3RoaW5nV2VpZ2h0XV0iCiAgICAgICAgICAgICAgICAgIHRhZy1tZXRhZGF0YT0iW1tfdGFnTWV0YWRhdGEoY2F0ZWdvcnksIF9ydW5Ub1RhZ0luZm8sIGl0ZW0pXV0iCiAgICAgICAgICAgICAgICAgIHRhZz0iW1tpdGVtLnRhZ11dIgogICAgICAgICAgICAgICAgICB0b29sdGlwLXNvcnRpbmctbWV0aG9kPSJbW190b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgICAgICAgICAgICB4LXR5cGU9IltbX3hUeXBlXV0iCiAgICAgICAgICAgICAgICAgIGJhdGNoLXNpemU9IltbZmVhdHVyZUZsYWdzLnNjYWxhcnNCYXRjaFNpemVdXSIKICAgICAgICAgICAgICAgICAgaW4tY29sYWI9IltbZmVhdHVyZUZsYWdzLmluQ29sYWJdXSIKICAgICAgICAgICAgICAgID48L3RmLXNjYWxhci1jYXJkPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgICN0b29sdGlwLXNvcnRpbmcgewogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgfQoKICAgICAgI3Rvb2x0aXAtc29ydGluZyBwYXBlci1kcm9wZG93bi1tZW51IHsKICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgd2lkdGg6IDEwNXB4OwogICAgICB9CgogICAgICAubGluZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nLXRvcDogNXB4OwogICAgICB9CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICAgIC5jZW50ZXIgewogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSDd0LnByb3RvdHlwZSwicmVsb2FkT25SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxIN3QucHJvdG90eXBlLCJmZWF0dXJlRmxhZ3MiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLG5vdGlmeTohMCxvYnNlcnZlcjoiX3Nob3dEb3dubG9hZExpbmtzT2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxIN3QucHJvdG90eXBlLCJfc2hvd0Rvd25sb2FkTGlua3MiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwLG9ic2VydmVyOiJfc21vb3RoaW5nV2VpZ2h0T2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEg3dC5wcm90b3R5cGUsIl9zbW9vdGhpbmdXZWlnaHQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfaWdub3JlWU91dGxpZXJzT2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxIN3QucHJvdG90eXBlLCJfaWdub3JlWU91dGxpZXJzIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEg3dC5wcm90b3R5cGUsIl94VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sSDd0LnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxIN3QucHJvdG90eXBlLCJfcnVuVG9UYWdJbmZvIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSDd0LnByb3RvdHlwZSwiX2RhdGFOb3RGb3VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxIN3QucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSDd0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sSDd0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSDd0LnByb3RvdHlwZSwiX2dldENhdGVnb3J5SXRlbUtleSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLEg3dC5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtzKCJfc21vb3RoaW5nV2VpZ2h0IiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEg3dC5wcm90b3R5cGUsIl9zbW9vdGhpbmdFbmFibGVkIixudWxsKSx0KFthKCJfcnVuVG9UYWdJbmZvIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiLCJfY2F0ZWdvcmllc0RvbVJlYWR5IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxIN3QucHJvdG90eXBlLCJfdXBkYXRlQ2F0ZWdvcmllcyIsbnVsbCksSDd0PXQoW2koInRmLXNjYWxhci1kYXNoYm9hcmQiKV0sSDd0KTtsZXQgRjd0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fdGV4dHM9W10sdGhpcy5fY2FuY2VsbGVyPW5ldyBYUn1nZXQgX3J1bkNvbG9yKCl7cmV0dXJuIEdSKHRoaXMucnVuKX1fY2hhbmdlUnVuQ29sb3IoKXt0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tdGItdGV4dC1sb2FkZXItb3V0bGluZSI6dGhpcy5fcnVuQ29sb3J9KX1hdHRhY2hlZCgpe3RoaXMucmVsb2FkKCl9cmVsb2FkKCl7aWYoIXRoaXMuaXNBdHRhY2hlZClyZXR1cm47dGhpcy5fY2FuY2VsbGVyLmNhbmNlbEFsbCgpO2NvbnN0IHQ9aU8oX3IoKS5wbHVnaW5Sb3V0ZSgidGV4dCIsIi90ZXh0Iikse3RhZzp0aGlzLnRhZyxydW46dGhpcy5ydW59KSxlPXRoaXMuX2NhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e2lmKHQuY2FuY2VsbGVkKXJldHVybjtjb25zdCBlPXQudmFsdWUubWFwKCh0PT4oe3dhbGxfdGltZTpuZXcgRGF0ZSgxZTMqdC53YWxsX3RpbWUpLHN0ZXA6dC5zdGVwLHRleHQ6dC50ZXh0fSkpKTt0aGlzLnNldCgiX3RleHRzIixlLnNsaWNlKCkucmV2ZXJzZSgpKX0pKTt0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbihlKX1fZm9ybWF0U3RlcCh0KXtyZXR1cm4gbXkoIiwiKSh0KX19O0Y3dC50ZW1wbGF0ZT1fZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcgcnVuPSJbW3J1bl1dIiB0YWc9IltbdGFnXV0iIGNvbG9yPSJbW19ydW5Db2xvcl1dIj4KICAgIDwvdGYtY2FyZC1oZWFkaW5nPgogICAgPHBhcGVyLW1hdGVyaWFsCiAgICAgIGVsZXZhdGlvbj0iMSIKICAgICAgaWQ9InN0ZXBzLWNvbnRhaW5lciIKICAgICAgY2xhc3M9ImNvbnRhaW5lciBzY3JvbGxiYXIiCiAgICA+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX3RleHRzXV0iPgogICAgICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJzdGVwLWNvbnRhaW5lciI+CiAgICAgICAgICBzdGVwIDxzcGFuIGNsYXNzPSJzdGVwLXZhbHVlIj5bW19mb3JtYXRTdGVwKGl0ZW0uc3RlcCldXTwvc3Bhbj4KICAgICAgICA8L3BhcGVyLW1hdGVyaWFsPgogICAgICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJ0ZXh0Ij4KICAgICAgICAgIDx0Zi1tYXJrZG93bi12aWV3IGh0bWw9IltbaXRlbS50ZXh0XV0iPjwvdGYtbWFya2Rvd24tdmlldz4KICAgICAgICA8L3BhcGVyLW1hdGVyaWFsPgogICAgICA8L3RlbXBsYXRlPgogICAgPC9wYXBlci1tYXRlcmlhbD4KICAgIDxzdHlsZSBpbmNsdWRlPSJzY3JvbGxiYXItc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CiAgICAgIC5zY3JvbGxiYXIgewogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgICAgI3N0ZXBzLWNvbnRhaW5lciB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIC8qIGNvbG9yIGNvbXB1dGVkIGFuZCBzZXQgYXMgaW5saW5lIHN0eWxlICovOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10Yi10ZXh0LWxvYWRlci1vdXRsaW5lKTsKICAgICAgfQogICAgICAudGV4dCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDNweCAzcHggM3B4OwogICAgICAgIHBhZGRpbmc6IDVweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CiAgICAgIC5zdGVwLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRiLXVpLWJvcmRlcik7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7IC8qIHRvIGNvcnJlY3QgZm9yIGJvcmRlciAqLwogICAgICAgIHBhZGRpbmc6IDNweDsKICAgICAgfQogICAgICAuc3RlcC1jb250YWluZXI6bm90KDpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICAgIH0KCiAgICAgIHRmLWNhcmQtaGVhZGluZyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEY3dC5wcm90b3R5cGUsInJ1biIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxGN3QucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLEY3dC5wcm90b3R5cGUsIl90ZXh0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixkcildLEY3dC5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLFhSKV0sRjd0LnByb3RvdHlwZSwiX2NhbmNlbGxlciIsdm9pZCAwKSx0KFtzKCJydW4iKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxGN3QucHJvdG90eXBlLCJfcnVuQ29sb3IiLG51bGwpLHQoW2EoIl9ydW5Db2xvciIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sRjd0LnByb3RvdHlwZSwiX2NoYW5nZVJ1bkNvbG9yIixudWxsKSxGN3Q9dChbaSgidGYtdGV4dC1sb2FkZXIiKV0sRjd0KTtsZXQgVjd0PWNsYXNzIGV4dGVuZHMoZXIoeWUpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZWxvYWRPblJlYWR5PSEwLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBkcn1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe3RoaXMuX2ZldGNoVGFncygpLnRoZW4oKCgpPT57dGhpcy5fcmVsb2FkVGV4dHMoKX0pKX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1fZmV0Y2hUYWdzKCl7Y29uc3QgdD1fcigpLnBsdWdpblJvdXRlKCJ0ZXh0IiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoU2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWcpKXJldHVybjtjb25zdCBlPWFyKHQpO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIiwwPT09ZS5sZW5ndGgpLHRoaXMuc2V0KCJfcnVuVG9UYWciLHQpLHRoaXMuYXN5bmMoKCgpPT57dGhpcy5zZXQoIl9jYXRlZ29yaWVzRG9tUmVhZHkiLCEwKX0pKX0pKX1fcmVsb2FkVGV4dHMoKXt0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtdGV4dC1sb2FkZXIiKS5mb3JFYWNoKCh0PT57dC5yZWxvYWQoKX0pKX1nZXQgX2NhdGVnb3JpZXMoKXtyZXR1cm4gTXIodGhpcy5fcnVuVG9UYWcsdGhpcy5fc2VsZWN0ZWRSdW5zLHRoaXMuX3RhZ0ZpbHRlcil9fTtWN3QudGVtcGxhdGU9X2VgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciIgc2xvdD0ic2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3Igc2VsZWN0ZWQtcnVucz0ie3tfc2VsZWN0ZWRSdW5zfX0iPgogICAgICAgICAgPC90Zi1ydW5zLXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIiBzbG90PSJjZW50ZXIiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm8tZGF0YS13YXJuaW5nIj4KICAgICAgICAgICAgPGgzPk5vIHRleHQgZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5Zb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IHRleHQgZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0Zi10YWctZmlsdGVyZXIgdGFnLWZpbHRlcj0ie3tfdGFnRmlsdGVyfX0iPjwvdGYtdGFnLWZpbHRlcmVyPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY2F0ZWdvcmllc11dIiBhcz0iY2F0ZWdvcnkiPgogICAgICAgICAgICA8dGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXcKICAgICAgICAgICAgICBjYXRlZ29yeT0iW1tjYXRlZ29yeV1dIgogICAgICAgICAgICAgIGluaXRpYWwtb3BlbmVkPSJbW19zaG91bGRPcGVuKGluZGV4KV1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRmLXRleHQtbG9hZGVyCiAgICAgICAgICAgICAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgICAgICAgICAgICAgICAgdGFnPSJbW2l0ZW0udGFnXV0iCiAgICAgICAgICAgICAgICAgIHJ1bj0iW1tpdGVtLnJ1bl1dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICA+PC90Zi10ZXh0LWxvYWRlcj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxWN3QucHJvdG90eXBlLCJyZWxvYWRPblJlYWR5Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxWN3QucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFY3dC5wcm90b3R5cGUsIl9ydW5Ub1RhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFY3dC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sVjd0LnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFY3dC5wcm90b3R5cGUsIl9jYXRlZ29yaWVzRG9tUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVjd0LnByb3RvdHlwZSwiX3JlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW3MoIl9ydW5Ub1RhZyIsIl9zZWxlY3RlZFJ1bnMiLCJfdGFnRmlsdGVyIiwiX2NhdGVnb3JpZXNEb21SZWFkeSIpLGUoImRlc2lnbjp0eXBlIixBcnJheSksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sVjd0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLG51bGwpLFY3dD10KFtpKCJ0Zi10ZXh0LWRhc2hib2FyZCIpXSxWN3QpO2xldCBVN3Q9Y2xhc3MgZXh0ZW5kcyB5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fdGVtcGxhdGU9bnVsbCx0aGlzLnRmX2JhY2tlbmQ9U0N0fX07VTd0PXQoW2koInRmLWJhY2tlbmQiKV0sVTd0KTtsZXQgajd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy50Zl9nbG9iYWxzPUVzfX07ajd0PXQoW2koInRmLWdsb2JhbHMiKV0sajd0KTtsZXQgRzd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy50Zl9zdG9yYWdlPUlDdH19O0c3dD10KFtpKCJ0Zi1zdG9yYWdlIildLEc3dCk7dmFyIFc3dD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxhZGRMaW1pdExpc3RlbmVyOmxsLHJlbW92ZUxpbWl0TGlzdGVuZXI6Y2wsZ2V0TGltaXQ6dWwsc2V0TGltaXQ6ZnVuY3Rpb24gcTd0KHQpe2lmKHQhPT1NYXRoLmZsb29yKHQpKXRocm93IG5ldyBFcnJvcihgbGltaXQgbXVzdCBiZSBhbiBpbnRlZ2VyLCBidXQgZ290OiAke3R9YCk7aWYodDw9MCl0aHJvdyBuZXcgRXJyb3IoYGxpbWl0IG11c3QgYmUgcG9zaXRpdmUsIGJ1dCBnb3Q6ICR7dH1gKTt0IT09YWwmJihhbD10LGpzKG9sLGFsLHt1c2VMb2NhbFN0b3JhZ2U6ITB9KSxzbC5mb3JFYWNoKCh0PT57dCgpfSkpKX0sVGZEb21SZXBlYXQ6ZGx9KTtsZXQgWTd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy50Zl9wYWdpbmF0ZWRfdmlldz1XN3R9fTtZN3Q9dChbaSgidGYtcGFnaW5hdGVkLXZpZXctc3RvcmUiKV0sWTd0KTtsZXQgWDd0PWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy5ydW5zQ29sb3JTY2FsZT1HUn19O1g3dD10KFtpKCJ0Zi1jb2xvci1zY2FsZSIpXSxYN3QpfSkoKTsKCiEoZnVuY3Rpb24oKXsKLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4KCiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC4KCiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSAogICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZCiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsCiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00KICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SCiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SCiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KdmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4odD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSl9KShlLG4pfTtmdW5jdGlvbiBlKGUsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4mJm51bGwhPT1uKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gbygpe3RoaXMuY29uc3RydWN0b3I9ZX10KGUsbiksZS5wcm90b3R5cGU9bnVsbD09PW4/T2JqZWN0LmNyZWF0ZShuKTooby5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IG8pfWZ1bmN0aW9uIG4odCxlKXt2YXIgbixvLGksYSxyPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmlbMF0pdGhyb3cgaVsxXTtyZXR1cm4gaVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBhPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksYTtmdW5jdGlvbiBzKGEpe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4oZnVuY3Rpb24gbChhKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3I7KXRyeXtpZihuPTEsbyYmKGk9MiZhWzBdP28ucmV0dXJuOmFbMF0/by50aHJvd3x8KChpPW8ucmV0dXJuKSYmaS5jYWxsKG8pLDApOm8ubmV4dCkmJiEoaT1pLmNhbGwobyxhWzFdKSkuZG9uZSlyZXR1cm4gaTtzd2l0Y2gobz0wLGkmJihhPVsyJmFbMF0saS52YWx1ZV0pLGFbMF0pe2Nhc2UgMDpjYXNlIDE6aT1hO2JyZWFrO2Nhc2UgNDpyZXR1cm4gci5sYWJlbCsrLHt2YWx1ZTphWzFdLGRvbmU6ITF9O2Nhc2UgNTpyLmxhYmVsKyssbz1hWzFdLGE9WzBdO2NvbnRpbnVlO2Nhc2UgNzphPXIub3BzLnBvcCgpLHIudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGk9KGk9ci50cnlzKS5sZW5ndGg+MCYmaVtpLmxlbmd0aC0xXSl8fDYhPT1hWzBdJiYyIT09YVswXSkpe3I9MDtjb250aW51ZX1pZigzPT09YVswXSYmKCFpfHxhWzFdPmlbMF0mJmFbMV08aVszXSkpe3IubGFiZWw9YVsxXTticmVha31pZig2PT09YVswXSYmci5sYWJlbDxpWzFdKXtyLmxhYmVsPWlbMV0saT1hO2JyZWFrfWlmKGkmJnIubGFiZWw8aVsyXSl7ci5sYWJlbD1pWzJdLHIub3BzLnB1c2goYSk7YnJlYWt9aVsyXSYmci5vcHMucG9wKCksci50cnlzLnBvcCgpO2NvbnRpbnVlfWE9ZS5jYWxsKHQscil9Y2F0Y2godCl7YT1bNix0XSxvPTB9ZmluYWxseXtuPWk9MH1pZig1JmFbMF0pdGhyb3cgYVsxXTtyZXR1cm57dmFsdWU6YVswXT9hWzFdOnZvaWQgMCxkb25lOiEwfX0pKFthLHNdKX19fWZ1bmN0aW9uIG8odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLG49ZSYmdFtlXSxvPTA7aWYobilyZXR1cm4gbi5jYWxsKHQpO2lmKHQmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpcmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCYmbz49dC5sZW5ndGgmJih0PXZvaWQgMCkse3ZhbHVlOnQmJnRbbysrXSxkb25lOiF0fX19O3Rocm93IG5ldyBUeXBlRXJyb3IoZT8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9ZnVuY3Rpb24gaSh0LGUpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXTtpZighbilyZXR1cm4gdDt2YXIgbyxpLGE9bi5jYWxsKHQpLHI9W107dHJ5e2Zvcig7KHZvaWQgMD09PWV8fGUtLSA+MCkmJiEobz1hLm5leHQoKSkuZG9uZTspci5wdXNoKG8udmFsdWUpfWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihuPWEucmV0dXJuKSYmbi5jYWxsKGEpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gcn1mdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciBuPTAsbz1lLmxlbmd0aCxpPXQubGVuZ3RoO248bztuKyssaSsrKXRbaV09ZVtuXTtyZXR1cm4gdH1mdW5jdGlvbiByKHQpe3JldHVybiB0aGlzIGluc3RhbmNlb2Ygcj8odGhpcy52PXQsdGhpcyk6bmV3IHIodCl9ZnVuY3Rpb24gcyh0LGUsbil7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBvLGk9bi5hcHBseSh0LGV8fFtdKSxhPVtdO3JldHVybiBvPXt9LHMoIm5leHQiKSxzKCJ0aHJvdyIpLHMoInJldHVybiIpLG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LG87ZnVuY3Rpb24gcyh0KXtpW3RdJiYob1t0XT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4sbyl7YS5wdXNoKFt0LGUsbixvXSk+MXx8bCh0LGUpfSkpfSl9ZnVuY3Rpb24gbCh0LGUpe3RyeXshKGZ1bmN0aW9uIG4odCl7dC52YWx1ZSBpbnN0YW5jZW9mIHI/UHJvbWlzZS5yZXNvbHZlKHQudmFsdWUudikudGhlbihjLGQpOnAoYVswXVsyXSx0KX0pKGlbdF0oZSkpfWNhdGNoKHQpe3AoYVswXVszXSx0KX19ZnVuY3Rpb24gYyh0KXtsKCJuZXh0Iix0KX1mdW5jdGlvbiBkKHQpe2woInRocm93Iix0KX1mdW5jdGlvbiBwKHQsZSl7dChlKSxhLnNoaWZ0KCksYS5sZW5ndGgmJmwoYVswXVswXSxhWzBdWzFdKX19ZnVuY3Rpb24gbCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH1mdW5jdGlvbiBjKHQpe3ZhciBlPXQoKGZ1bmN0aW9uKHQpe0Vycm9yLmNhbGwodCksdC5zdGFjaz0obmV3IEVycm9yKS5zdGFja30pKTtyZXR1cm4gZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZX12YXIgZD1jKChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24gZShuKXt0KHRoaXMpLHRoaXMubWVzc2FnZT1uP24ubGVuZ3RoKyIgZXJyb3JzIG9jY3VycmVkIGR1cmluZyB1bnN1YnNjcmlwdGlvbjpcbiIrbi5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUrMSsiKSAiK3QudG9TdHJpbmcoKX0pKS5qb2luKCJcbiAgIik6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1ufX0pKTtmdW5jdGlvbiBwKHQsZSl7aWYodCl7dmFyIG49dC5pbmRleE9mKGUpOzA8PW4mJnQuc3BsaWNlKG4sMSl9fXZhciBtPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5pbml0aWFsVGVhcmRvd249dCx0aGlzLmNsb3NlZD0hMSx0aGlzLl9wYXJlbnRhZ2U9bnVsbCx0aGlzLl90ZWFyZG93bnM9bnVsbH1yZXR1cm4gdC5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgdCxlLG4scixzO2lmKCF0aGlzLmNsb3NlZCl7dGhpcy5jbG9zZWQ9ITA7dmFyIGM9dGhpcy5fcGFyZW50YWdlO2lmKGMpaWYodGhpcy5fcGFyZW50YWdlPW51bGwsQXJyYXkuaXNBcnJheShjKSl0cnl7Zm9yKHZhciBwPW8oYyksbT1wLm5leHQoKTshbS5kb25lO209cC5uZXh0KCkpbS52YWx1ZS5yZW1vdmUodGhpcyl9Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKGU9cC5yZXR1cm4pJiZlLmNhbGwocCl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fWVsc2UgYy5yZW1vdmUodGhpcyk7dmFyIHU9dGhpcy5pbml0aWFsVGVhcmRvd247aWYobCh1KSl0cnl7dSgpfWNhdGNoKHQpe3M9dCBpbnN0YW5jZW9mIGQ/dC5lcnJvcnM6W3RdfXZhciBmPXRoaXMuX3RlYXJkb3ducztpZihmKXt0aGlzLl90ZWFyZG93bnM9bnVsbDt0cnl7Zm9yKHZhciBoPW8oZiksYj1oLm5leHQoKTshYi5kb25lO2I9aC5uZXh0KCkpe3ZhciB5PWIudmFsdWU7dHJ5e2coeSl9Y2F0Y2godCl7cz1udWxsIT1zP3M6W10sdCBpbnN0YW5jZW9mIGQ/cz1hKGEoW10saShzKSksaSh0LmVycm9ycykpOnMucHVzaCh0KX19fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2ImJiFiLmRvbmUmJihyPWgucmV0dXJuKSYmci5jYWxsKGgpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19aWYocyl0aHJvdyBuZXcgZChzKX19LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt2YXIgbjtpZihlJiZlIT09dGhpcylpZih0aGlzLmNsb3NlZClnKGUpO2Vsc2V7aWYoZSBpbnN0YW5jZW9mIHQpe2lmKGUuY2xvc2VkfHxlLl9oYXNQYXJlbnQodGhpcykpcmV0dXJuO2UuX2FkZFBhcmVudCh0aGlzKX0odGhpcy5fdGVhcmRvd25zPW51bGwhPT0obj10aGlzLl90ZWFyZG93bnMpJiZ2b2lkIDAhPT1uP246W10pLnB1c2goZSl9fSx0LnByb3RvdHlwZS5faGFzUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3BhcmVudGFnZTtyZXR1cm4gZT09PXR8fEFycmF5LmlzQXJyYXkoZSkmJmUuaW5jbHVkZXModCl9LHQucHJvdG90eXBlLl9hZGRQYXJlbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcGFyZW50YWdlO3RoaXMuX3BhcmVudGFnZT1BcnJheS5pc0FycmF5KGUpPyhlLnB1c2godCksZSk6ZT9bZSx0XTp0fSx0LnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3BhcmVudGFnZTtlPT09dD90aGlzLl9wYXJlbnRhZ2U9bnVsbDpBcnJheS5pc0FycmF5KGUpJiZwKGUsdCl9LHQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihlKXt2YXIgbj10aGlzLl90ZWFyZG93bnM7biYmcChuLGUpLGUgaW5zdGFuY2VvZiB0JiZlLl9yZW1vdmVQYXJlbnQodGhpcyl9LHQuRU1QVFk9KGZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQ7cmV0dXJuIGUuY2xvc2VkPSEwLGV9KSgpLHR9KSgpLHU9bS5FTVBUWTtmdW5jdGlvbiBmKHQpe3JldHVybiB0IGluc3RhbmNlb2YgbXx8dCYmImNsb3NlZCJpbiB0JiZsKHQucmVtb3ZlKSYmbCh0LmFkZCkmJmwodC51bnN1YnNjcmliZSl9ZnVuY3Rpb24gZyh0KXtsKHQpP3QoKTp0LnVuc3Vic2NyaWJlKCl9dmFyIGg9e3NldFRpbWVvdXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49aC5kZWxlZ2F0ZTtyZXR1cm4oKG51bGw9PW4/dm9pZCAwOm4uc2V0VGltZW91dCl8fHNldFRpbWVvdXQpLmFwcGx5KHZvaWQgMCxhKFtdLGkodCkpKX0sY2xlYXJUaW1lb3V0OmZ1bmN0aW9uKHQpe3ZhciBlPWguZGVsZWdhdGU7cmV0dXJuKChudWxsPT1lP3ZvaWQgMDplLmNsZWFyVGltZW91dCl8fGNsZWFyVGltZW91dCkodCl9LGRlbGVnYXRlOnZvaWQgMH07ZnVuY3Rpb24gYih0KXtoLnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgdH0pKX1mdW5jdGlvbiB5KCl7fWZ1bmN0aW9uIF8odCl7dCgpfXZhciBDPShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5pc1N0b3BwZWQ9ITEsZT8obi5kZXN0aW5hdGlvbj1lLGYoZSkmJmUuYWRkKG4pKTpuLmRlc3RpbmF0aW9uPU8sbn1yZXR1cm4gZShuLHQpLG4uY3JlYXRlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmV3IE0odCxlLG4pfSxuLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3RoaXMuaXNTdG9wcGVkfHx0aGlzLl9uZXh0KHQpfSxuLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuX2Vycm9yKHQpKX0sbi5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuX2NvbXBsZXRlKCkpfSxuLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuY2xvc2VkfHwodGhpcy5pc1N0b3BwZWQ9ITAsdC5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKSx0aGlzLmRlc3RpbmF0aW9uPW51bGwpfSxuLnByb3RvdHlwZS5fbmV4dD1mdW5jdGlvbih0KXt0aGlzLmRlc3RpbmF0aW9uLm5leHQodCl9LG4ucHJvdG90eXBlLl9lcnJvcj1mdW5jdGlvbih0KXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcih0KX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19LG4ucHJvdG90eXBlLl9jb21wbGV0ZT1mdW5jdGlvbigpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fSxufSkobSksTT0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4sbyl7dmFyIGksYT10LmNhbGwodGhpcyl8fHRoaXM7aWYobChlKSlpPWU7ZWxzZSBpZihlKXt2YXIgcjtuPWUuZXJyb3Isbz1lLmNvbXBsZXRlLHI9ZSxpPW51bGw9PShpPWUubmV4dCk/dm9pZCAwOmkuYmluZChyKSxuPW51bGw9PW4/dm9pZCAwOm4uYmluZChyKSxvPW51bGw9PW8/dm9pZCAwOm8uYmluZChyKX1yZXR1cm4gYS5kZXN0aW5hdGlvbj17bmV4dDppP3YoaSk6eSxlcnJvcjp2KG51bGwhPW4/bjp4KSxjb21wbGV0ZTpvP3Yobyk6eX0sYX1yZXR1cm4gZShuLHQpLG59KShDKTtmdW5jdGlvbiB2KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbl09YXJndW1lbnRzW25dO3RyeXt0LmFwcGx5KHZvaWQgMCxhKFtdLGkoZSkpKX1jYXRjaCh0KXtiKHQpfX19ZnVuY3Rpb24geCh0KXt0aHJvdyB0fXZhciBPPXtjbG9zZWQ6ITAsbmV4dDp5LGVycm9yOngsY29tcGxldGU6eX0sUD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSI7ZnVuY3Rpb24gdyh0KXtyZXR1cm4gdH1mdW5jdGlvbiBrKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBTKHQpfWZ1bmN0aW9uIFModCl7cmV0dXJuIDA9PT10Lmxlbmd0aD93OjE9PT10Lmxlbmd0aD90WzBdOmZ1bmN0aW9uIGUobil7cmV0dXJuIHQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBlKHQpfSksbil9fXZhciBEPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dCYmKHRoaXMuX3N1YnNjcmliZT10KX1yZXR1cm4gdC5wcm90b3R5cGUubGlmdD1mdW5jdGlvbihlKXt2YXIgbj1uZXcgdDtyZXR1cm4gbi5zb3VyY2U9dGhpcyxuLm9wZXJhdG9yPWUsbn0sdC5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbz10aGlzLGk9KGZ1bmN0aW9uIGEodCl7cmV0dXJuIHQmJnQgaW5zdGFuY2VvZiBDfHwoZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCYmbCh0Lm5leHQpJiZsKHQuZXJyb3IpJiZsKHQuY29tcGxldGUpfSkodCkmJmYodCl9KSh0KT90Om5ldyBNKHQsZSxuKTtyZXR1cm4gXygoZnVuY3Rpb24oKXt2YXIgdD1vLm9wZXJhdG9yLGU9by5zb3VyY2U7aS5hZGQodD90LmNhbGwoaSxlKTplP28uX3N1YnNjcmliZShpKTpvLl90cnlTdWJzY3JpYmUoaSkpfSkpLGl9LHQucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0aGlzLl9zdWJzY3JpYmUodCl9Y2F0Y2goZSl7dC5lcnJvcihlKX19LHQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiBuZXcoZT1FKGUpKSgoZnVuY3Rpb24oZSxvKXt2YXIgaTtpPW4uc3Vic2NyaWJlKChmdW5jdGlvbihlKXt0cnl7dChlKX1jYXRjaCh0KXtvKHQpLG51bGw9PWl8fGkudW5zdWJzY3JpYmUoKX19KSxvLGUpfSkpfSx0LnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBudWxsPT09KGU9dGhpcy5zb3VyY2UpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnN1YnNjcmliZSh0KX0sdC5wcm90b3R5cGVbUF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gUyh0KSh0aGlzKX0sdC5wcm90b3R5cGUudG9Qcm9taXNlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIG5ldyh0PUUodCkpKChmdW5jdGlvbih0LG4pe3ZhciBvO2Uuc3Vic2NyaWJlKChmdW5jdGlvbih0KXtyZXR1cm4gbz10fSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKHQpfSksKGZ1bmN0aW9uKCl7cmV0dXJuIHQobyl9KSl9KSl9LHQuY3JlYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdChlKX0sdH0pKCk7ZnVuY3Rpb24gRSh0KXt2YXIgZTtyZXR1cm4gbnVsbCE9PShlPW51bGwhPXQ/dDp1bmRlZmluZWQpJiZ2b2lkIDAhPT1lP2U6UHJvbWlzZX1mdW5jdGlvbiBSKHQpe3JldHVybiBmdW5jdGlvbihlKXtpZigoZnVuY3Rpb24gbih0KXtyZXR1cm4gbChudWxsPT10P3ZvaWQgMDp0LmxpZnQpfSkoZSkpcmV0dXJuIGUubGlmdCgoZnVuY3Rpb24oZSl7dHJ5e3JldHVybiB0KGUsdGhpcyl9Y2F0Y2godCl7dGhpcy5lcnJvcih0KX19KSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZhYmxlIHR5cGUiKX19dmFyIEEsVD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4sbyxpLGEpe3ZhciByPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiByLm9uRmluYWxpemU9YSxyLl9uZXh0PW4/ZnVuY3Rpb24odCl7dHJ5e24odCl9Y2F0Y2godCl7ZS5lcnJvcih0KX19OnQucHJvdG90eXBlLl9uZXh0LHIuX2Vycm9yPWk/ZnVuY3Rpb24odCl7dHJ5e2kodCl9Y2F0Y2godCl7ZS5lcnJvcih0KX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OnQucHJvdG90eXBlLl9lcnJvcixyLl9jb21wbGV0ZT1vP2Z1bmN0aW9uKCl7dHJ5e28oKX1jYXRjaCh0KXtlLmVycm9yKHQpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06dC5wcm90b3R5cGUuX2NvbXBsZXRlLHJ9cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciBlLG49dGhpcy5jbG9zZWQ7dC5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKSwhbiYmKG51bGw9PT0oZT10aGlzLm9uRmluYWxpemUpfHx2b2lkIDA9PT1lfHxlLmNhbGwodGhpcykpfSxufSkoQyksTj17c2NoZWR1bGU6ZnVuY3Rpb24odCl7dmFyIGU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lLG49Y2FuY2VsQW5pbWF0aW9uRnJhbWUsbz1OLmRlbGVnYXRlO28mJihlPW8ucmVxdWVzdEFuaW1hdGlvbkZyYW1lLG49by5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIGk9ZSgoZnVuY3Rpb24oZSl7bj12b2lkIDAsdChlKX0pKTtyZXR1cm4gbmV3IG0oKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PW4/dm9pZCAwOm4oaSl9KSl9LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1OLmRlbGVnYXRlO3JldHVybigobnVsbD09bj92b2lkIDA6bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCxhKFtdLGkodCkpKX0sY2FuY2VsQW5pbWF0aW9uRnJhbWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49Ti5kZWxlZ2F0ZTtyZXR1cm4oKG51bGw9PW4/dm9pZCAwOm4uY2FuY2VsQW5pbWF0aW9uRnJhbWUpfHxjYW5jZWxBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLGEoW10saSh0KSkpfSxkZWxlZ2F0ZTp2b2lkIDB9LHo9YygoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uIGUoKXt0KHRoaXMpLHRoaXMubmFtZT0iT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IiLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCJ9fSkpLEk9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGUuY2xvc2VkPSExLGUub2JzZXJ2ZXJzPVtdLGUuaXNTdG9wcGVkPSExLGUuaGFzRXJyb3I9ITEsZS50aHJvd25FcnJvcj1udWxsLGV9cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS5saWZ0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBIKHRoaXMsdGhpcyk7cmV0dXJuIGUub3BlcmF0b3I9dCxlfSxuLnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZD1mdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyB6fSxuLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7XygoZnVuY3Rpb24oKXt2YXIgbixpO2lmKGUuX3Rocm93SWZDbG9zZWQoKSwhZS5pc1N0b3BwZWQpe3ZhciBhPWUub2JzZXJ2ZXJzLnNsaWNlKCk7dHJ5e2Zvcih2YXIgcj1vKGEpLHM9ci5uZXh0KCk7IXMuZG9uZTtzPXIubmV4dCgpKXMudmFsdWUubmV4dCh0KX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtzJiYhcy5kb25lJiYoaT1yLnJldHVybikmJmkuY2FsbChyKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19fX0pKX0sbi5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztfKChmdW5jdGlvbigpe2lmKGUuX3Rocm93SWZDbG9zZWQoKSwhZS5pc1N0b3BwZWQpe2UuaGFzRXJyb3I9ZS5pc1N0b3BwZWQ9ITAsZS50aHJvd25FcnJvcj10O2Zvcih2YXIgbj1lLm9ic2VydmVycztuLmxlbmd0aDspbi5zaGlmdCgpLmVycm9yKHQpfX0pKX0sbi5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO18oKGZ1bmN0aW9uKCl7aWYodC5fdGhyb3dJZkNsb3NlZCgpLCF0LmlzU3RvcHBlZCl7dC5pc1N0b3BwZWQ9ITA7Zm9yKHZhciBlPXQub2JzZXJ2ZXJzO2UubGVuZ3RoOyllLnNoaWZ0KCkuY29tcGxldGUoKX19KSl9LG4ucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ9dGhpcy5jbG9zZWQ9ITAsdGhpcy5vYnNlcnZlcnM9bnVsbH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLCJvYnNlcnZlZCIse2dldDpmdW5jdGlvbigpe3ZhciB0O3JldHVybihudWxsPT09KHQ9dGhpcy5vYnNlcnZlcnMpfHx2b2lkIDA9PT10P3ZvaWQgMDp0Lmxlbmd0aCk+MH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxuLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksdC5wcm90b3R5cGUuX3RyeVN1YnNjcmliZS5jYWxsKHRoaXMsZSl9LG4ucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHQpLHRoaXMuX2lubmVyU3Vic2NyaWJlKHQpfSxuLnByb3RvdHlwZS5faW5uZXJTdWJzY3JpYmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWUub2JzZXJ2ZXJzO3JldHVybiBlLmhhc0Vycm9yfHxlLmlzU3RvcHBlZD91OihuLnB1c2godCksbmV3IG0oKGZ1bmN0aW9uKCl7cmV0dXJuIHAobix0KX0pKSl9LG4ucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1lLmlzU3RvcHBlZDtlLmhhc0Vycm9yP3QuZXJyb3IoZS50aHJvd25FcnJvcik6biYmdC5jb21wbGV0ZSgpfSxuLnByb3RvdHlwZS5hc09ic2VydmFibGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgRDtyZXR1cm4gdC5zb3VyY2U9dGhpcyx0fSxuLmNyZWF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgSCh0LGUpfSxufSkoRCksSD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4pe3ZhciBvPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gby5kZXN0aW5hdGlvbj1lLG8uc291cmNlPW4sb31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24odCl7dmFyIGUsbjtudWxsPT09KG49bnVsbD09PShlPXRoaXMuZGVzdGluYXRpb24pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLm5leHQpfHx2b2lkIDA9PT1ufHxuLmNhbGwoZSx0KX0sbi5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24odCl7dmFyIGUsbjtudWxsPT09KG49bnVsbD09PShlPXRoaXMuZGVzdGluYXRpb24pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmVycm9yKXx8dm9pZCAwPT09bnx8bi5jYWxsKGUsdCl9LG4ucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHQsZTtudWxsPT09KGU9bnVsbD09PSh0PXRoaXMuZGVzdGluYXRpb24pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmNvbXBsZXRlKXx8dm9pZCAwPT09ZXx8ZS5jYWxsKHQpfSxuLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIG51bGwhPT0obj1udWxsPT09KGU9dGhpcy5zb3VyY2UpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnN1YnNjcmliZSh0KSkmJnZvaWQgMCE9PW4/bjp1fSxufSkoSSksRj0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX3ZhbHVlPWUsbn1yZXR1cm4gZShuLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4ucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dmFyIG49dC5wcm90b3R5cGUuX3N1YnNjcmliZS5jYWxsKHRoaXMsZSk7cmV0dXJuIW4uY2xvc2VkJiZlLm5leHQodGhpcy5fdmFsdWUpLG59LG4ucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuX3ZhbHVlO2lmKHQuaGFzRXJyb3IpdGhyb3cgdC50aHJvd25FcnJvcjtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLGV9LG4ucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsdGhpcy5fdmFsdWU9ZSl9LG59KShJKSxMPXtub3c6ZnVuY3Rpb24oKXtyZXR1cm4oTC5kZWxlZ2F0ZXx8RGF0ZSkubm93KCl9LGRlbGVnYXRlOnZvaWQgMH0sQj0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4sbyl7dm9pZCAwPT09ZSYmKGU9MS8wKSx2b2lkIDA9PT1uJiYobj0xLzApLHZvaWQgMD09PW8mJihvPUwpO3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gaS5fYnVmZmVyU2l6ZT1lLGkuX3dpbmRvd1RpbWU9bixpLl90aW1lc3RhbXBQcm92aWRlcj1vLGkuX2J1ZmZlcj1bXSxpLl9pbmZpbml0ZVRpbWVXaW5kb3c9ITAsaS5faW5maW5pdGVUaW1lV2luZG93PW49PT0xLzAsaS5fYnVmZmVyU2l6ZT1NYXRoLm1heCgxLGUpLGkuX3dpbmRvd1RpbWU9TWF0aC5tYXgoMSxuKSxpfXJldHVybiBlKG4sdCksbi5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgbj10aGlzLG89bi5fYnVmZmVyLGk9bi5faW5maW5pdGVUaW1lV2luZG93LGE9bi5fdGltZXN0YW1wUHJvdmlkZXIscj1uLl93aW5kb3dUaW1lO24uaXNTdG9wcGVkfHwoby5wdXNoKGUpLCFpJiZvLnB1c2goYS5ub3coKStyKSksdGhpcy5fdHJpbUJ1ZmZlcigpLHQucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLGUpfSxuLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3RoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl90cmltQnVmZmVyKCk7Zm9yKHZhciBlPXRoaXMuX2lubmVyU3Vic2NyaWJlKHQpLG49dGhpcy5faW5maW5pdGVUaW1lV2luZG93LG89dGhpcy5fYnVmZmVyLnNsaWNlKCksaT0wO2k8by5sZW5ndGgmJiF0LmNsb3NlZDtpKz1uPzE6Mil0Lm5leHQob1tpXSk7cmV0dXJuIHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXModCksZX0sbi5wcm90b3R5cGUuX3RyaW1CdWZmZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC5fYnVmZmVyU2l6ZSxuPXQuX3RpbWVzdGFtcFByb3ZpZGVyLG89dC5fYnVmZmVyLGk9dC5faW5maW5pdGVUaW1lV2luZG93LGE9KGk/MToyKSplO2lmKGU8MS8wJiZhPG8ubGVuZ3RoJiZvLnNwbGljZSgwLG8ubGVuZ3RoLWEpLCFpKXtmb3IodmFyIHI9bi5ub3coKSxzPTAsbD0xO2w8by5sZW5ndGgmJm9bbF08PXI7bCs9MilzPWw7cyYmby5zcGxpY2UoMCxzKzEpfX0sbn0pKEkpLFY9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oZSxuKXtyZXR1cm4gdC5jYWxsKHRoaXMpfHx0aGlzfXJldHVybiBlKG4sdCksbi5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpc30sbn0pKG0pLGo9e3NldEludGVydmFsOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPWouZGVsZWdhdGU7cmV0dXJuKChudWxsPT1uP3ZvaWQgMDpuLnNldEludGVydmFsKXx8c2V0SW50ZXJ2YWwpLmFwcGx5KHZvaWQgMCxhKFtdLGkodCkpKX0sY2xlYXJJbnRlcnZhbDpmdW5jdGlvbih0KXt2YXIgZT1qLmRlbGVnYXRlO3JldHVybigobnVsbD09ZT92b2lkIDA6ZS5jbGVhckludGVydmFsKXx8Y2xlYXJJbnRlcnZhbCkodCl9LGRlbGVnYXRlOnZvaWQgMH0sVT0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4pe3ZhciBvPXQuY2FsbCh0aGlzLGUsbil8fHRoaXM7cmV0dXJuIG8uc2NoZWR1bGVyPWUsby53b3JrPW4sby5wZW5kaW5nPSExLG99cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PWUmJihlPTApLHRoaXMuY2xvc2VkKXJldHVybiB0aGlzO3RoaXMuc3RhdGU9dDt2YXIgbj10aGlzLmlkLG89dGhpcy5zY2hlZHVsZXI7cmV0dXJuIG51bGwhPW4mJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQobyxuLGUpKSx0aGlzLnBlbmRpbmc9ITAsdGhpcy5kZWxheT1lLHRoaXMuaWQ9dGhpcy5pZHx8dGhpcy5yZXF1ZXN0QXN5bmNJZChvLHRoaXMuaWQsZSksdGhpc30sbi5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj0wKSxqLnNldEludGVydmFsKHQuZmx1c2guYmluZCh0LHRoaXMpLG4pfSxuLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbih0LGUsbil7aWYodm9pZCAwPT09biYmKG49MCksbnVsbCE9biYmdGhpcy5kZWxheT09PW4mJiExPT09dGhpcy5wZW5kaW5nKXJldHVybiBlO2ouY2xlYXJJbnRlcnZhbChlKX0sbi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbih0LGUpe2lmKHRoaXMuY2xvc2VkKXJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTt0aGlzLnBlbmRpbmc9ITE7dmFyIG49dGhpcy5fZXhlY3V0ZSh0LGUpO2lmKG4pcmV0dXJuIG47ITE9PT10aGlzLnBlbmRpbmcmJm51bGwhPXRoaXMuaWQmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQodGhpcy5zY2hlZHVsZXIsdGhpcy5pZCxudWxsKSl9LG4ucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbz0hMTt0cnl7dGhpcy53b3JrKHQpfWNhdGNoKHQpe289ITAsbj0hIXQmJnR8fG5ldyBFcnJvcih0KX1pZihvKXJldHVybiB0aGlzLnVuc3Vic2NyaWJlKCksbn0sbi5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXtpZighdGhpcy5jbG9zZWQpe3ZhciBlPXRoaXMuaWQsbj10aGlzLnNjaGVkdWxlcixvPW4uYWN0aW9uczt0aGlzLndvcms9dGhpcy5zdGF0ZT10aGlzLnNjaGVkdWxlcj1udWxsLHRoaXMucGVuZGluZz0hMSxwKG8sdGhpcyksbnVsbCE9ZSYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChuLGUsbnVsbCkpLHRoaXMuZGVsYXk9bnVsbCx0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfX0sbn0pKFYpLEc9MSxXPXt9O2Z1bmN0aW9uIFkodCl7cmV0dXJuIHQgaW4gVyYmKGRlbGV0ZSBXW3RdLCEwKX12YXIgcT1mdW5jdGlvbih0KXt2YXIgZT1HKys7cmV0dXJuIFdbZV09ITAsQXx8KEE9UHJvbWlzZS5yZXNvbHZlKCkpLEEudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gWShlKSYmdCgpfSkpLGV9LFo9ZnVuY3Rpb24odCl7WSh0KX0sWD17c2V0SW1tZWRpYXRlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPVguZGVsZWdhdGU7cmV0dXJuKChudWxsPT1uP3ZvaWQgMDpuLnNldEltbWVkaWF0ZSl8fHEpLmFwcGx5KHZvaWQgMCxhKFtdLGkodCkpKX0sY2xlYXJJbW1lZGlhdGU6ZnVuY3Rpb24odCl7dmFyIGU9WC5kZWxlZ2F0ZTtyZXR1cm4oKG51bGw9PWU/dm9pZCAwOmUuY2xlYXJJbW1lZGlhdGUpfHxaKSh0KX0sZGVsZWdhdGU6dm9pZCAwfSxLPShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUsbil7dmFyIG89dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gby5zY2hlZHVsZXI9ZSxvLndvcms9bixvfXJldHVybiBlKG4sdCksbi5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24oZSxuLG8pe3JldHVybiB2b2lkIDA9PT1vJiYobz0wKSxudWxsIT09byYmbz4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxlLG4sbyk6KGUuYWN0aW9ucy5wdXNoKHRoaXMpLGUuX3NjaGVkdWxlZHx8KGUuX3NjaGVkdWxlZD1YLnNldEltbWVkaWF0ZShlLmZsdXNoLmJpbmQoZSx2b2lkIDApKSkpfSxuLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihlLG4sbyl7aWYodm9pZCAwPT09byYmKG89MCksbnVsbCE9byYmbz4wfHxudWxsPT1vJiZ0aGlzLmRlbGF5PjApcmV0dXJuIHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyxlLG4sbyk7MD09PWUuYWN0aW9ucy5sZW5ndGgmJihYLmNsZWFySW1tZWRpYXRlKG4pLGUuX3NjaGVkdWxlZD12b2lkIDApfSxufSkoVSksSj0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7dm9pZCAwPT09biYmKG49dC5ub3cpLHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcj1lLHRoaXMubm93PW59cmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9MCksbmV3IHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcih0aGlzLHQpLnNjaGVkdWxlKG4sZSl9LHQubm93PUwubm93LHR9KSgpLFE9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oZSxuKXt2b2lkIDA9PT1uJiYobj1KLm5vdyk7dmFyIG89dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gby5hY3Rpb25zPVtdLG8uX2FjdGl2ZT0hMSxvLl9zY2hlZHVsZWQ9dm9pZCAwLG99cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmFjdGlvbnM7aWYodGhpcy5fYWN0aXZlKWUucHVzaCh0KTtlbHNle3ZhciBuO3RoaXMuX2FjdGl2ZT0hMDtkb3tpZihuPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrfXdoaWxlKHQ9ZS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDt0PWUuc2hpZnQoKTspdC51bnN1YnNjcmliZSgpO3Rocm93IG59fX0sbn0pKEopLCQ9bmV3KChmdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZT0hMCx0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwO3ZhciBlLG49dGhpcy5hY3Rpb25zLG89LTE7dD10fHxuLnNoaWZ0KCk7dmFyIGk9bi5sZW5ndGg7ZG97aWYoZT10LmV4ZWN1dGUodC5zdGF0ZSx0LmRlbGF5KSlicmVha313aGlsZSgrK288aSYmKHQ9bi5zaGlmdCgpKSk7aWYodGhpcy5fYWN0aXZlPSExLGUpe2Zvcig7KytvPGkmJih0PW4uc2hpZnQoKSk7KXQudW5zdWJzY3JpYmUoKTt0aHJvdyBlfX0sbn0pKFEpKShLKSx0dD1uZXcgUShVKSxldD10dCxudD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4pe3ZhciBvPXQuY2FsbCh0aGlzLGUsbil8fHRoaXM7cmV0dXJuIG8uc2NoZWR1bGVyPWUsby53b3JrPW4sb31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTApLG4+MD90LnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsZSxuKToodGhpcy5kZWxheT1uLHRoaXMuc3RhdGU9ZSx0aGlzLnNjaGVkdWxlci5mbHVzaCh0aGlzKSx0aGlzKX0sbi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihlLG4pe3JldHVybiBuPjB8fHRoaXMuY2xvc2VkP3QucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLGUsbik6dGhpcy5fZXhlY3V0ZShlLG4pfSxuLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihlLG4sbyl7cmV0dXJuIHZvaWQgMD09PW8mJihvPTApLG51bGwhPW8mJm8+MHx8bnVsbD09byYmdGhpcy5kZWxheT4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxlLG4sbyk6ZS5mbHVzaCh0aGlzKX0sbn0pKFUpLG90PW5ldygoZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGUobix0KSxufSkoUSkpKG50KSxpdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4pe3ZhciBvPXQuY2FsbCh0aGlzLGUsbil8fHRoaXM7cmV0dXJuIG8uc2NoZWR1bGVyPWUsby53b3JrPW4sb31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKGUsbixvKXtyZXR1cm4gdm9pZCAwPT09byYmKG89MCksbnVsbCE9PW8mJm8+MD90LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsZSxuLG8pOihlLmFjdGlvbnMucHVzaCh0aGlzKSxlLl9zY2hlZHVsZWR8fChlLl9zY2hlZHVsZWQ9Ti5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuZmx1c2godm9pZCAwKX0pKSkpfSxuLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihlLG4sbyl7aWYodm9pZCAwPT09byYmKG89MCksbnVsbCE9byYmbz4wfHxudWxsPT1vJiZ0aGlzLmRlbGF5PjApcmV0dXJuIHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyxlLG4sbyk7MD09PWUuYWN0aW9ucy5sZW5ndGgmJihOLmNhbmNlbEFuaW1hdGlvbkZyYW1lKG4pLGUuX3NjaGVkdWxlZD12b2lkIDApfSxufSkoVSksYXQ9bmV3KChmdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZT0hMCx0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwO3ZhciBlLG49dGhpcy5hY3Rpb25zLG89LTE7dD10fHxuLnNoaWZ0KCk7dmFyIGk9bi5sZW5ndGg7ZG97aWYoZT10LmV4ZWN1dGUodC5zdGF0ZSx0LmRlbGF5KSlicmVha313aGlsZSgrK288aSYmKHQ9bi5zaGlmdCgpKSk7aWYodGhpcy5fYWN0aXZlPSExLGUpe2Zvcig7KytvPGkmJih0PW4uc2hpZnQoKSk7KXQudW5zdWJzY3JpYmUoKTt0aHJvdyBlfX0sbn0pKFEpKShpdCkscnQ9bmV3IEQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbXBsZXRlKCl9KSk7ZnVuY3Rpb24gc3QodCxlKXtyZXR1cm4gbmV3IEQoKGZ1bmN0aW9uKG4pe3ZhciBvPTA7cmV0dXJuIGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7bz09PXQubGVuZ3RoP24uY29tcGxldGUoKToobi5uZXh0KHRbbysrXSksbi5jbG9zZWR8fHRoaXMuc2NoZWR1bGUoKSl9KSl9KSl9dmFyIGx0PWZ1bmN0aW9uKHQpe3JldHVybiB0JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoJiYiZnVuY3Rpb24iIT10eXBlb2YgdH07ZnVuY3Rpb24gY3QodCl7cmV0dXJuIGwobnVsbD09dD92b2lkIDA6dC50aGVuKX12YXIgZHQscHQ9KGZ1bmN0aW9uIG10KCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yP1N5bWJvbC5pdGVyYXRvcjoiQEBpdGVyYXRvciJ9KSgpO2Z1bmN0aW9uIHV0KHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJJdGVyYWJsZSBjYW5ub3QgYmUgbnVsbCIpO3JldHVybiBuZXcgRCgoZnVuY3Rpb24obil7dmFyIG89bmV3IG07cmV0dXJuIG8uYWRkKGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7dmFyIGk9dFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtvLmFkZChlLnNjaGVkdWxlKChmdW5jdGlvbigpe3ZhciB0PXRoaXM7aS5uZXh0KCkudGhlbigoZnVuY3Rpb24oZSl7ZS5kb25lP24uY29tcGxldGUoKToobi5uZXh0KGUudmFsdWUpLHQuc2NoZWR1bGUoKSl9KSl9KSkpfSkpKSxvfSkpfWZ1bmN0aW9uIGZ0KHQpe3JldHVybiBsKHRbUF0pfWZ1bmN0aW9uIGd0KHQpe3JldHVybiBsKG51bGw9PXQ/dm9pZCAwOnRbcHRdKX1mdW5jdGlvbiBodCh0KXtyZXR1cm4gU3ltYm9sLmFzeW5jSXRlcmF0b3ImJmwobnVsbD09dD92b2lkIDA6dFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pfWZ1bmN0aW9uIGJ0KHQpe3JldHVybiBuZXcgVHlwZUVycm9yKCJZb3UgcHJvdmlkZWQgIisobnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdD8iYW4gaW52YWxpZCBvYmplY3QiOiInIit0KyInIikrIiB3aGVyZSBhIHN0cmVhbSB3YXMgZXhwZWN0ZWQuIFlvdSBjYW4gcHJvdmlkZSBhbiBPYnNlcnZhYmxlLCBQcm9taXNlLCBSZWFkYWJsZVN0cmVhbSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLiIpfWZ1bmN0aW9uIHl0KHQpe3JldHVybiBzKHRoaXMsYXJndW1lbnRzLChmdW5jdGlvbiBlKCl7dmFyIG8saSxhO3JldHVybiBuKHRoaXMsKGZ1bmN0aW9uKGUpe3N3aXRjaChlLmxhYmVsKXtjYXNlIDA6bz10LmdldFJlYWRlcigpLGUubGFiZWw9MTtjYXNlIDE6ZS50cnlzLnB1c2goWzEsLDksMTBdKSxlLmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LHIoby5yZWFkKCkpXTtjYXNlIDM6cmV0dXJuIGk9ZS5zZW50KCksYT1pLnZhbHVlLGkuZG9uZT9bNCxyKHZvaWQgMCldOlszLDVdO2Nhc2UgNDpyZXR1cm5bMixlLnNlbnQoKV07Y2FzZSA1OnJldHVybls0LHIoYSldO2Nhc2UgNjpyZXR1cm5bNCxlLnNlbnQoKV07Y2FzZSA3OnJldHVybiBlLnNlbnQoKSxbMywyXTtjYXNlIDg6cmV0dXJuWzMsMTBdO2Nhc2UgOTpyZXR1cm4gby5yZWxlYXNlTG9jaygpLFs3XTtjYXNlIDEwOnJldHVyblsyXX19KSl9KSl9ZnVuY3Rpb24gX3QodCl7cmV0dXJuIGwobnVsbD09dD92b2lkIDA6dC5nZXRSZWFkZXIpfWZ1bmN0aW9uIEN0KHQsZSl7cmV0dXJuIGU/KGZ1bmN0aW9uIG4odCxlKXtpZihudWxsIT10KXtpZihmdCh0KSlyZXR1cm4oZnVuY3Rpb24gbih0LGUpe3JldHVybiBuZXcgRCgoZnVuY3Rpb24obil7dmFyIG89bmV3IG07cmV0dXJuIG8uYWRkKGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7dmFyIGk9dFtQXSgpO28uYWRkKGkuc3Vic2NyaWJlKHtuZXh0OmZ1bmN0aW9uKHQpe28uYWRkKGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIG4ubmV4dCh0KX0pKSl9LGVycm9yOmZ1bmN0aW9uKHQpe28uYWRkKGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIG4uZXJyb3IodCl9KSkpfSxjb21wbGV0ZTpmdW5jdGlvbigpe28uYWRkKGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIG4uY29tcGxldGUoKX0pKSl9fSkpfSkpKSxvfSkpfSkodCxlKTtpZihsdCh0KSlyZXR1cm4gc3QodCxlKTtpZihjdCh0KSlyZXR1cm4oZnVuY3Rpb24gbyh0LGUpe3JldHVybiBuZXcgRCgoZnVuY3Rpb24obil7cmV0dXJuIGUuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIHQudGhlbigoZnVuY3Rpb24odCl7bi5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtuLm5leHQodCksbi5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gbi5jb21wbGV0ZSgpfSkpKX0pKSl9KSwoZnVuY3Rpb24odCl7bi5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gbi5lcnJvcih0KX0pKSl9KSl9KSl9KSl9KSh0LGUpO2lmKGh0KHQpKXJldHVybiB1dCh0LGUpO2lmKGd0KHQpKXJldHVybihmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIG5ldyBEKChmdW5jdGlvbihuKXt2YXIgbztyZXR1cm4gbi5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtvPXRbcHRdKCksKGZ1bmN0aW9uIGkodCxlLG4sbyl7dm9pZCAwPT09byYmKG89MCk7dmFyIGk9ZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXt0cnl7bi5jYWxsKHRoaXMpfWNhdGNoKGUpe3QuZXJyb3IoZSl9fSksbyk7dC5hZGQoaSl9KShuLGUsKGZ1bmN0aW9uKCl7dmFyIHQ9by5uZXh0KCksZT10LnZhbHVlO3QuZG9uZT9uLmNvbXBsZXRlKCk6KG4ubmV4dChlKSx0aGlzLnNjaGVkdWxlKCkpfSkpfSkpKSxmdW5jdGlvbigpe3JldHVybiBsKG51bGw9PW8/dm9pZCAwOm8ucmV0dXJuKSYmby5yZXR1cm4oKX19KSl9KSh0LGUpO2lmKF90KHQpKXJldHVybihmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIHV0KHl0KHQpLGUpfSkodCxlKX10aHJvdyBidCh0KX0pKHQsZSk6TXQodCl9ZnVuY3Rpb24gTXQodCl7aWYodCBpbnN0YW5jZW9mIEQpcmV0dXJuIHQ7aWYobnVsbCE9dCl7aWYoZnQodCkpcmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyBEKChmdW5jdGlvbihlKXt2YXIgbj10W1BdKCk7aWYobChuLnN1YnNjcmliZSkpcmV0dXJuIG4uc3Vic2NyaWJlKGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIil9KSl9KSh0KTtpZihsdCh0KSlyZXR1cm4gdnQodCk7aWYoY3QodCkpcmV0dXJuKGZ1bmN0aW9uIG4odCl7cmV0dXJuIG5ldyBEKChmdW5jdGlvbihlKXt0LnRoZW4oKGZ1bmN0aW9uKHQpe2UuY2xvc2VkfHwoZS5uZXh0KHQpLGUuY29tcGxldGUoKSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIGUuZXJyb3IodCl9KSkudGhlbihudWxsLGIpfSkpfSkodCk7aWYoaHQodCkpcmV0dXJuIHh0KHQpO2lmKGd0KHQpKXJldHVybihmdW5jdGlvbiBpKHQpe3JldHVybiBuZXcgRCgoZnVuY3Rpb24oZSl7dmFyIG4saTt0cnl7Zm9yKHZhciBhPW8odCkscj1hLm5leHQoKTshci5kb25lO3I9YS5uZXh0KCkpaWYoZS5uZXh0KHIudmFsdWUpLGUuY2xvc2VkKXJldHVybn1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtyJiYhci5kb25lJiYoaT1hLnJldHVybikmJmkuY2FsbChhKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19ZS5jb21wbGV0ZSgpfSkpfSkodCk7aWYoX3QodCkpcmV0dXJuKGZ1bmN0aW9uIGEodCl7cmV0dXJuIHh0KHl0KHQpKX0pKHQpfXRocm93IGJ0KHQpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiBuZXcgRCgoZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aCYmIWUuY2xvc2VkO24rKyllLm5leHQodFtuXSk7ZS5jb21wbGV0ZSgpfSkpfWZ1bmN0aW9uIHh0KHQpe3JldHVybiBuZXcgRCgoZnVuY3Rpb24oZSl7KGZ1bmN0aW9uIGkodCxlKXt2YXIgaSxhLHIscztyZXR1cm4oZnVuY3Rpb24gbCh0LGUsbixvKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24oaSxhKXtmdW5jdGlvbiByKHQpe3RyeXtsKG8ubmV4dCh0KSl9Y2F0Y2godCl7YSh0KX19ZnVuY3Rpb24gcyh0KXt0cnl7bChvLnRocm93KHQpKX1jYXRjaCh0KXthKHQpfX1mdW5jdGlvbiBsKHQpe3QuZG9uZT9pKHQudmFsdWUpOihmdW5jdGlvbiBlKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpfSkodC52YWx1ZSkudGhlbihyLHMpfWwoKG89by5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pKX0pKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgbDtyZXR1cm4gbih0aGlzLChmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOm4udHJ5cy5wdXNoKFswLDUsNiwxMV0pLGk9KGZ1bmN0aW9uIGModCl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBlLG49dFtTeW1ib2wuYXN5bmNJdGVyYXRvcl07cmV0dXJuIG4/bi5jYWxsKHQpOih0PW8odCksZT17fSxpKCJuZXh0IiksaSgidGhyb3ciKSxpKCJyZXR1cm4iKSxlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlKTtmdW5jdGlvbiBpKG4pe2Vbbl09dFtuXSYmZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihvLGkpeyEoZnVuY3Rpb24gYSh0LGUsbixvKXtQcm9taXNlLnJlc29sdmUobykudGhlbigoZnVuY3Rpb24oZSl7dCh7dmFsdWU6ZSxkb25lOm59KX0pLGUpfSkobyxpLChlPXRbbl0oZSkpLmRvbmUsZS52YWx1ZSl9KSl9fX0pKHQpLG4ubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsaS5uZXh0KCldO2Nhc2UgMjppZigoYT1uLnNlbnQoKSkuZG9uZSlyZXR1cm5bMyw0XTtpZihlLm5leHQoYS52YWx1ZSksZS5jbG9zZWQpcmV0dXJuWzJdO24ubGFiZWw9MztjYXNlIDM6cmV0dXJuWzMsMV07Y2FzZSA0OnJldHVyblszLDExXTtjYXNlIDU6cmV0dXJuIGw9bi5zZW50KCkscj17ZXJyb3I6bH0sWzMsMTFdO2Nhc2UgNjpyZXR1cm4gbi50cnlzLnB1c2goWzYsLDksMTBdKSxhJiYhYS5kb25lJiYocz1pLnJldHVybik/WzQscy5jYWxsKGkpXTpbMyw4XTtjYXNlIDc6bi5zZW50KCksbi5sYWJlbD04O2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OmlmKHIpdGhyb3cgci5lcnJvcjtyZXR1cm5bN107Y2FzZSAxMDpyZXR1cm5bN107Y2FzZSAxMTpyZXR1cm4gZS5jb21wbGV0ZSgpLFsyXX19KSl9KSl9KSh0LGUpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5lcnJvcih0KX0pKX0pKX1mdW5jdGlvbiBPdCh0LGUpe3JldHVybiBlP3N0KHQsZSk6dnQodCl9ZnVuY3Rpb24gUHQodCl7cmV0dXJuIHQmJmwodC5zY2hlZHVsZSl9ZnVuY3Rpb24gd3QodCl7cmV0dXJuIHRbdC5sZW5ndGgtMV19ZnVuY3Rpb24ga3QodCl7cmV0dXJuIGwod3QodCkpP3QucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIFN0KHQpe3JldHVybiBQdCh3dCh0KSk/dC5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gRHQodCxlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHd0KHQpP3QucG9wKCk6ZX1mdW5jdGlvbiBFdCgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1TdCh0KTtyZXR1cm4gbj9zdCh0LG4pOk90KHQpfWZ1bmN0aW9uIFJ0KHQsZSl7dmFyIG49bCh0KT90OmZ1bmN0aW9uKCl7cmV0dXJuIHR9LG89ZnVuY3Rpb24odCl7cmV0dXJuIHQuZXJyb3IobigpKX07cmV0dXJuIG5ldyBEKGU/ZnVuY3Rpb24odCl7cmV0dXJuIGUuc2NoZWR1bGUobywwLHQpfTpvKX0hKGZ1bmN0aW9uKHQpe3QuTkVYVD0iTiIsdC5FUlJPUj0iRSIsdC5DT01QTEVURT0iQyJ9KShkdHx8KGR0PXt9KSk7dmFyIEF0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3RoaXMua2luZD10LHRoaXMudmFsdWU9ZSx0aGlzLmVycm9yPW4sdGhpcy5oYXNWYWx1ZT0iTiI9PT10fXJldHVybiB0LnByb3RvdHlwZS5vYnNlcnZlPWZ1bmN0aW9uKHQpe3JldHVybiBUdCh0aGlzLHQpfSx0LnByb3RvdHlwZS5kbz1mdW5jdGlvbih0LGUsbil7dmFyIG89dGhpcyxpPW8ua2luZCxhPW8uZXJyb3I7cmV0dXJuIk4iPT09aT9udWxsPT10P3ZvaWQgMDp0KG8udmFsdWUpOiJFIj09PWk/bnVsbD09ZT92b2lkIDA6ZShhKTpudWxsPT1uP3ZvaWQgMDpuKCl9LHQucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbih0LGUsbil7dmFyIG87cmV0dXJuIGwobnVsbD09PShvPXQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLm5leHQpP3RoaXMub2JzZXJ2ZSh0KTp0aGlzLmRvKHQsZSxuKX0sdC5wcm90b3R5cGUudG9PYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQua2luZCxuPXQuZXJyb3Isbz0iTiI9PT1lP0V0KHQudmFsdWUpOiJFIj09PWU/UnQoKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSk6IkMiPT09ZT9ydDowO2lmKCFvKXRocm93IG5ldyBUeXBlRXJyb3IoIlVuZXhwZWN0ZWQgbm90aWZpY2F0aW9uIGtpbmQgIitlKTtyZXR1cm4gb30sdC5jcmVhdGVOZXh0PWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdCgiTiIsZSl9LHQuY3JlYXRlRXJyb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KCJFIix2b2lkIDAsZSl9LHQuY3JlYXRlQ29tcGxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5jb21wbGV0ZU5vdGlmaWNhdGlvbn0sdC5jb21wbGV0ZU5vdGlmaWNhdGlvbj1uZXcgdCgiQyIpLHR9KSgpO2Z1bmN0aW9uIFR0KHQsZSl7dmFyIG4sbyxpLGE9dC5raW5kLHI9dC52YWx1ZSxzPXQuZXJyb3I7aWYoInN0cmluZyIhPXR5cGVvZiBhKXRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbm90aWZpY2F0aW9uLCBtaXNzaW5nICJraW5kIicpOyJOIj09PWE/bnVsbD09PShuPWUubmV4dCl8fHZvaWQgMD09PW58fG4uY2FsbChlLHIpOiJFIj09PWE/bnVsbD09PShvPWUuZXJyb3IpfHx2b2lkIDA9PT1vfHxvLmNhbGwoZSxzKTpudWxsPT09KGk9ZS5jb21wbGV0ZSl8fHZvaWQgMD09PWl8fGkuY2FsbChlKX1mdW5jdGlvbiBOdCh0KXtyZXR1cm4hIXQmJih0IGluc3RhbmNlb2YgRHx8bCh0LmxpZnQpJiZsKHQuc3Vic2NyaWJlKSl9dmFyIHp0PWMoKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbiBlKCl7dCh0aGlzKSx0aGlzLm5hbWU9IkVtcHR5RXJyb3IiLHRoaXMubWVzc2FnZT0ibm8gZWxlbWVudHMgaW4gc2VxdWVuY2UifX0pKTtmdW5jdGlvbiBJdCh0LGUpe3JldHVybiBSKChmdW5jdGlvbihuLG8pe3ZhciBpPTA7bi5zdWJzY3JpYmUobmV3IFQobywoZnVuY3Rpb24obil7by5uZXh0KHQuY2FsbChlLG4saSsrKSl9KSkpfSkpfXZhciBIdD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIEZ0KHQpe3JldHVybiBJdCgoZnVuY3Rpb24oZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gSHQoZSk/dC5hcHBseSh2b2lkIDAsYShbXSxpKGUpKSk6dChlKX0pKHQsZSl9KSl9dmFyIEx0PUFycmF5LmlzQXJyYXksQnQ9T2JqZWN0LmdldFByb3RvdHlwZU9mLFZ0PU9iamVjdC5wcm90b3R5cGUsanQ9T2JqZWN0LmtleXM7ZnVuY3Rpb24gVXQodCl7aWYoMT09PXQubGVuZ3RoKXt2YXIgZT10WzBdO2lmKEx0KGUpKXJldHVybnthcmdzOmUsa2V5czpudWxsfTtpZigoZnVuY3Rpb24gbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0JiZCdCh0KT09PVZ0fSkoZSkpe3ZhciBvPWp0KGUpO3JldHVybnthcmdzOm8ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKSxrZXlzOm99fX1yZXR1cm57YXJnczp0LGtleXM6bnVsbH19ZnVuY3Rpb24gR3QodCxlKXtyZXR1cm4gdC5yZWR1Y2UoKGZ1bmN0aW9uKHQsbixvKXtyZXR1cm4gdFtuXT1lW29dLHR9KSx7fSl9ZnVuY3Rpb24gV3QoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49U3QodCksbz1rdCh0KSxpPVV0KHQpLGE9aS5hcmdzLHI9aS5rZXlzO2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gQ3QoW10sbik7dmFyIHM9bmV3IEQoWXQoYSxuLHI/ZnVuY3Rpb24odCl7cmV0dXJuIEd0KHIsdCl9OncpKTtyZXR1cm4gbz9zLnBpcGUoRnQobykpOnN9ZnVuY3Rpb24gWXQodCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj13KSxmdW5jdGlvbihvKXtxdChlLChmdW5jdGlvbigpe2Zvcih2YXIgaT10Lmxlbmd0aCxhPW5ldyBBcnJheShpKSxyPWkscz1pLGw9ZnVuY3Rpb24oaSl7cXQoZSwoZnVuY3Rpb24oKXt2YXIgbD1DdCh0W2ldLGUpLGM9ITE7bC5zdWJzY3JpYmUobmV3IFQobywoZnVuY3Rpb24odCl7YVtpXT10LGN8fChjPSEwLHMtLSksc3x8by5uZXh0KG4oYS5zbGljZSgpKSl9KSwoZnVuY3Rpb24oKXstLXJ8fG8uY29tcGxldGUoKX0pKSl9KSxvKX0sYz0wO2M8aTtjKyspbChjKX0pLG8pfX1mdW5jdGlvbiBxdCh0LGUsbil7dD9uLmFkZCh0LnNjaGVkdWxlKGUpKTplKCl9ZnVuY3Rpb24gWnQodCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj0xLzApLGwoZSk/WnQoKGZ1bmN0aW9uKG4sbyl7cmV0dXJuIEl0KChmdW5jdGlvbih0LGkpe3JldHVybiBlKG4sdCxvLGkpfSkpKE10KHQobixvKSkpfSksbik6KCJudW1iZXIiPT10eXBlb2YgZSYmKG49ZSksUigoZnVuY3Rpb24oZSxvKXtyZXR1cm4oZnVuY3Rpb24gaSh0LGUsbixvLGEscixzLGwpe3ZhciBjPVtdLGQ9MCxwPTAsbT0hMSx1PWZ1bmN0aW9uKCl7IW18fGMubGVuZ3RofHxkfHxlLmNvbXBsZXRlKCl9LGY9ZnVuY3Rpb24odCl7cmV0dXJuIGQ8bz9nKHQpOmMucHVzaCh0KX0sZz1mdW5jdGlvbih0KXtyJiZlLm5leHQodCksZCsrO3ZhciBpPSExO010KG4odCxwKyspKS5zdWJzY3JpYmUobmV3IFQoZSwoZnVuY3Rpb24odCl7bnVsbD09YXx8YSh0KSxyP2YodCk6ZS5uZXh0KHQpfSksKGZ1bmN0aW9uKCl7aT0hMH0pLHZvaWQgMCwoZnVuY3Rpb24oKXtpZihpKXRyeXtkLS07Zm9yKHZhciB0PWZ1bmN0aW9uKCl7dmFyIHQ9Yy5zaGlmdCgpO3M/ZS5hZGQocy5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gZyh0KX0pKSk6Zyh0KX07Yy5sZW5ndGgmJmQ8bzspdCgpO3UoKX1jYXRjaCh0KXtlLmVycm9yKHQpfX0pKSl9O3JldHVybiB0LnN1YnNjcmliZShuZXcgVChlLGYsKGZ1bmN0aW9uKCl7bT0hMCx1KCl9KSkpLGZ1bmN0aW9uKCl7bnVsbD09bHx8bCgpfX0pKGUsbyx0LG4pfSkpKX1mdW5jdGlvbiBYdCh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9MS8wKSxadCh3LHQpfWZ1bmN0aW9uIEt0KCl7cmV0dXJuIFh0KDEpfWZ1bmN0aW9uIEp0KCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBLdCgpKE90KHQsU3QodCkpKX1mdW5jdGlvbiBRdCh0KXtyZXR1cm4gbmV3IEQoKGZ1bmN0aW9uKGUpe010KHQoKSkuc3Vic2NyaWJlKGUpfSkpfWZ1bmN0aW9uICR0KCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPWt0KHQpLG89VXQodCksaT1vLmFyZ3MsYT1vLmtleXMscj1uZXcgRCgoZnVuY3Rpb24odCl7dmFyIGU9aS5sZW5ndGg7aWYoZSlmb3IodmFyIG49bmV3IEFycmF5KGUpLG89ZSxyPWUscz1mdW5jdGlvbihlKXt2YXIgcz0hMTtNdChpW2VdKS5zdWJzY3JpYmUobmV3IFQodCwoZnVuY3Rpb24odCl7c3x8KHM9ITAsci0tKSxuW2VdPXR9KSwoZnVuY3Rpb24oKXstLW8mJnN8fChyfHx0Lm5leHQoYT9HdChhLG4pOm4pLHQuY29tcGxldGUoKSl9KSkpfSxsPTA7bDxlO2wrKylzKGwpO2Vsc2UgdC5jb21wbGV0ZSgpfSkpO3JldHVybiBuP3IucGlwZShGdChuKSk6cn12YXIgdGU9WyJhZGRMaXN0ZW5lciIsInJlbW92ZUxpc3RlbmVyIl0sZWU9WyJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLG5lPVsib24iLCJvZmYiXTtmdW5jdGlvbiBvZSh0LGUsbixvKXtpZihsKG4pJiYobz1uLG49dm9pZCAwKSxvKXJldHVybiBvZSh0LGUsbikucGlwZShGdChvKSk7dmFyIGE9aSgoZnVuY3Rpb24gcih0KXtyZXR1cm4gbCh0LmFkZEV2ZW50TGlzdGVuZXIpJiZsKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcil9KSh0KT9lZS5tYXAoKGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gdFtvXShlLGksbil9fSkpOihmdW5jdGlvbiBzKHQpe3JldHVybiBsKHQuYWRkTGlzdGVuZXIpJiZsKHQucmVtb3ZlTGlzdGVuZXIpfSkodCk/dGUubWFwKGllKHQsZSkpOihmdW5jdGlvbiBjKHQpe3JldHVybiBsKHQub24pJiZsKHQub2ZmKX0pKHQpP25lLm1hcChpZSh0LGUpKTpbXSwyKSxkPWFbMF0scD1hWzFdO2lmKCFkJiZsdCh0KSlyZXR1cm4gWnQoKGZ1bmN0aW9uKHQpe3JldHVybiBvZSh0LGUsbil9KSkoT3QodCkpO2lmKCFkKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyBEKChmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gdC5uZXh0KDE8ZS5sZW5ndGg/ZTplWzBdKX07cmV0dXJuIGQoZSksZnVuY3Rpb24oKXtyZXR1cm4gcChlKX19KSl9ZnVuY3Rpb24gaWUodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiB0W25dKGUsbyl9fX1mdW5jdGlvbiBhZSh0LGUsbil7dm9pZCAwPT09dCYmKHQ9MCksdm9pZCAwPT09biYmKG49ZXQpO3ZhciBvPS0xO3JldHVybiBudWxsIT1lJiYoUHQoZSk/bj1lOm89ZSksbmV3IEQoKGZ1bmN0aW9uKGUpe3ZhciBpPShmdW5jdGlvbiBhKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKHQpfSkodCk/K3Qtbi5ub3coKTp0O2k8MCYmKGk9MCk7dmFyIHI9MDtyZXR1cm4gbi5zY2hlZHVsZSgoZnVuY3Rpb24oKXtlLmNsb3NlZHx8KGUubmV4dChyKyspLDA8PW8/dGhpcy5zY2hlZHVsZSh2b2lkIDAsbyk6ZS5jb21wbGV0ZSgpKX0pLGkpfSkpfWZ1bmN0aW9uIHJlKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPVN0KHQpLG89RHQodCwxLzApLGk9dDtyZXR1cm4gaS5sZW5ndGg/MT09PWkubGVuZ3RoP010KGlbMF0pOlh0KG8pKE90KGksbikpOnJ0fXZhciBzZT1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIGxlKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJnNlKHRbMF0pP3RbMF06dH1mdW5jdGlvbiBjZSh0LGUpe3JldHVybiBSKChmdW5jdGlvbihuLG8pe3ZhciBpPTA7bi5zdWJzY3JpYmUobmV3IFQobywoZnVuY3Rpb24obil7cmV0dXJuIHQuY2FsbChlLG4saSsrKSYmby5uZXh0KG4pfSkpKX0pKX1mdW5jdGlvbiBkZSh0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1ldCksKGZ1bmN0aW9uIG4odCl7cmV0dXJuIFIoKGZ1bmN0aW9uKGUsbil7dmFyIG89ITEsaT1udWxsLGE9bnVsbCxyPSExLHM9ZnVuY3Rpb24oKXtpZihudWxsPT1hfHxhLnVuc3Vic2NyaWJlKCksYT1udWxsLG8pe289ITE7dmFyIHQ9aTtpPW51bGwsbi5uZXh0KHQpfXImJm4uY29tcGxldGUoKX0sbD1mdW5jdGlvbigpe2E9bnVsbCxyJiZuLmNvbXBsZXRlKCl9O2Uuc3Vic2NyaWJlKG5ldyBUKG4sKGZ1bmN0aW9uKGUpe289ITAsaT1lLGF8fE10KHQoZSkpLnN1YnNjcmliZShhPW5ldyBUKG4scyxsKSl9KSwoZnVuY3Rpb24oKXtyPSEwLCghb3x8IWF8fGEuY2xvc2VkKSYmbi5jb21wbGV0ZSgpfSkpKX0pKX0pKChmdW5jdGlvbigpe3JldHVybiBhZSh0LGUpfSkpfWZ1bmN0aW9uIHBlKHQpe3JldHVybiBSKChmdW5jdGlvbihlLG4pe3ZhciBvLGk9bnVsbCxhPSExO2k9ZS5zdWJzY3JpYmUobmV3IFQobix2b2lkIDAsdm9pZCAwLChmdW5jdGlvbihyKXtvPU10KHQocixwZSh0KShlKSkpLGk/KGkudW5zdWJzY3JpYmUoKSxpPW51bGwsby5zdWJzY3JpYmUobikpOmE9ITB9KSkpLGEmJihpLnVuc3Vic2NyaWJlKCksaT1udWxsLG8uc3Vic2NyaWJlKG4pKX0pKX1mdW5jdGlvbiBtZSh0LGUsbixvLGkpe3JldHVybiBmdW5jdGlvbihhLHIpe3ZhciBzPW4sbD1lLGM9MDthLnN1YnNjcmliZShuZXcgVChyLChmdW5jdGlvbihlKXt2YXIgbj1jKys7bD1zP3QobCxlLG4pOihzPSEwLGUpLG8mJnIubmV4dChsKX0pLGkmJmZ1bmN0aW9uKCl7cyYmci5uZXh0KGwpLHIuY29tcGxldGUoKX0pKX19ZnVuY3Rpb24gdWUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49a3QodCk7cmV0dXJuIG4/ayh1ZS5hcHBseSh2b2lkIDAsYShbXSxpKHQpKSksRnQobikpOlIoKGZ1bmN0aW9uKGUsbil7WXQoYShbZV0saShsZSh0KSkpKShuKX0pKX1mdW5jdGlvbiBmZSgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gdWUuYXBwbHkodm9pZCAwLGEoW10saSh0KSkpfWZ1bmN0aW9uIGdlKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXR0KSxSKChmdW5jdGlvbihuLG8pe3ZhciBpPW51bGwsYT1udWxsLHI9bnVsbCxzPWZ1bmN0aW9uKCl7aWYoaSl7aS51bnN1YnNjcmliZSgpLGk9bnVsbDt2YXIgdD1hO2E9bnVsbCxvLm5leHQodCl9fTtmdW5jdGlvbiBsKCl7dmFyIG49cit0LGE9ZS5ub3coKTtpZihhPG4pcmV0dXJuIGk9dGhpcy5zY2hlZHVsZSh2b2lkIDAsbi1hKSx2b2lkIG8uYWRkKGkpO3MoKX1uLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbihuKXthPW4scj1lLm5vdygpLGl8fChpPWUuc2NoZWR1bGUobCx0KSxvLmFkZChpKSl9KSwoZnVuY3Rpb24oKXtzKCksby5jb21wbGV0ZSgpfSksdm9pZCAwLChmdW5jdGlvbigpe2E9aT1udWxsfSkpKX0pKX1mdW5jdGlvbiBoZSh0KXtyZXR1cm4gUigoZnVuY3Rpb24oZSxuKXt2YXIgbz0hMTtlLnN1YnNjcmliZShuZXcgVChuLChmdW5jdGlvbih0KXtvPSEwLG4ubmV4dCh0KX0pLChmdW5jdGlvbigpe298fG4ubmV4dCh0KSxuLmNvbXBsZXRlKCl9KSkpfSkpfWZ1bmN0aW9uIGJlKHQpe3JldHVybiB0PD0wP2Z1bmN0aW9uKCl7cmV0dXJuIHJ0fTpSKChmdW5jdGlvbihlLG4pe3ZhciBvPTA7ZS5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24oZSl7KytvPD10JiYobi5uZXh0KGUpLHQ8PW8mJm4uY29tcGxldGUoKSl9KSkpfSkpfWZ1bmN0aW9uIHllKCl7cmV0dXJuIFIoKGZ1bmN0aW9uKHQsZSl7dC5zdWJzY3JpYmUobmV3IFQoZSx5KSl9KSl9ZnVuY3Rpb24gX2UodCxlKXtyZXR1cm4gZT9mdW5jdGlvbihuKXtyZXR1cm4gSnQoZS5waXBlKGJlKDEpLHllKCkpLG4ucGlwZShfZSh0KSkpfTpadCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdChlLG4pLnBpcGUoYmUoMSksKGZ1bmN0aW9uIG8odCl7cmV0dXJuIEl0KChmdW5jdGlvbigpe3JldHVybiB0fSkpfSkoZSkpfSkpfWZ1bmN0aW9uIENlKHQsZSl7dm9pZCAwPT09ZSYmKGU9dHQpO3ZhciBuPWFlKHQsZSk7cmV0dXJuIF9lKChmdW5jdGlvbigpe3JldHVybiBufSkpfWZ1bmN0aW9uIE1lKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXcpLHQ9bnVsbCE9dD90OnZlLFIoKGZ1bmN0aW9uKG4sbyl7dmFyIGksYT0hMDtuLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbihuKXt2YXIgcj1lKG4pOyFhJiZ0KGkscil8fChhPSExLGk9cixvLm5leHQobikpfSkpKX0pKX1mdW5jdGlvbiB2ZSh0LGUpe3JldHVybiB0PT09ZX1mdW5jdGlvbiB4ZSh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9T2UpLFIoKGZ1bmN0aW9uKGUsbil7dmFyIG89ITE7ZS5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24odCl7bz0hMCxuLm5leHQodCl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gbz9uLmNvbXBsZXRlKCk6bi5lcnJvcih0KCkpfSkpKX0pKX1mdW5jdGlvbiBPZSgpe3JldHVybiBuZXcgenR9ZnVuY3Rpb24gUGUodCxlKXtyZXR1cm4gZT9mdW5jdGlvbihuKXtyZXR1cm4gbi5waXBlKFBlKChmdW5jdGlvbihuLG8pe3JldHVybiBNdCh0KG4sbykpLnBpcGUoSXQoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUobix0LG8saSl9KSkpfSkpKX06UigoZnVuY3Rpb24oZSxuKXt2YXIgbz0wLGk9bnVsbCxhPSExO2Uuc3Vic2NyaWJlKG5ldyBUKG4sKGZ1bmN0aW9uKGUpe2l8fChpPW5ldyBUKG4sdm9pZCAwLChmdW5jdGlvbigpe2k9bnVsbCxhJiZuLmNvbXBsZXRlKCl9KSksTXQodChlLG8rKykpLnN1YnNjcmliZShpKSl9KSwoZnVuY3Rpb24oKXthPSEwLCFpJiZuLmNvbXBsZXRlKCl9KSkpfSkpfWZ1bmN0aW9uIHdlKHQsZSxuLG8pe3JldHVybiBSKChmdW5jdGlvbihpLGEpe3ZhciByO2UmJiJmdW5jdGlvbiIhPXR5cGVvZiBlPyhuPWUuZHVyYXRpb24scj1lLmVsZW1lbnQsbz1lLmNvbm5lY3Rvcik6cj1lO3ZhciBzPW5ldyBNYXAsbD1mdW5jdGlvbih0KXtzLmZvckVhY2godCksdChhKX0sYz1mdW5jdGlvbih0KXtyZXR1cm4gbCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXJyb3IodCl9KSl9LGQ9bmV3IGtlKGEsKGZ1bmN0aW9uKGUpe3RyeXt2YXIgaT10KGUpLGw9cy5nZXQoaSk7aWYoIWwpe3Muc2V0KGksbD1vP28oKTpuZXcgSSk7dmFyIHA9KGZ1bmN0aW9uIG0odCxlKXt2YXIgbj1uZXcgRCgoZnVuY3Rpb24odCl7ZC5hY3RpdmVHcm91cHMrKzt2YXIgbj1lLnN1YnNjcmliZSh0KTtyZXR1cm4gZnVuY3Rpb24oKXtuLnVuc3Vic2NyaWJlKCksMD09LS1kLmFjdGl2ZUdyb3VwcyYmZC50ZWFyZG93bkF0dGVtcHRlZCYmZC51bnN1YnNjcmliZSgpfX0pKTtyZXR1cm4gbi5rZXk9dCxufSkoaSxsKTtpZihhLm5leHQocCksbil7dmFyIHU9bmV3IFQobCwoZnVuY3Rpb24oKXtsLmNvbXBsZXRlKCksbnVsbD09dXx8dS51bnN1YnNjcmliZSgpfSksdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWxldGUoaSl9KSk7ZC5hZGQoTXQobihwKSkuc3Vic2NyaWJlKHUpKX19bC5uZXh0KHI/cihlKTplKX1jYXRjaCh0KXtjKHQpfX0pLChmdW5jdGlvbigpe3JldHVybiBsKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wbGV0ZSgpfSkpfSksYywoZnVuY3Rpb24oKXtyZXR1cm4gcy5jbGVhcigpfSkpO2kuc3Vic2NyaWJlKGQpfSkpfXZhciBrZT0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5hY3RpdmVHcm91cHM9MCxlLnRlYXJkb3duQXR0ZW1wdGVkPSExLGV9cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMudGVhcmRvd25BdHRlbXB0ZWQ9ITAsMD09PXRoaXMuYWN0aXZlR3JvdXBzJiZ0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfSxufSkoVCk7ZnVuY3Rpb24gU2UodCl7cmV0dXJuIHQ8PTA/ZnVuY3Rpb24oKXtyZXR1cm4gcnR9OlIoKGZ1bmN0aW9uKGUsbil7dmFyIGk9W107ZS5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24oZSl7aS5wdXNoKGUpLHQ8aS5sZW5ndGgmJmkuc2hpZnQoKX0pLChmdW5jdGlvbigpe3ZhciB0LGU7dHJ5e2Zvcih2YXIgYT1vKGkpLHI9YS5uZXh0KCk7IXIuZG9uZTtyPWEubmV4dCgpKW4ubmV4dChyLnZhbHVlKX1jYXRjaChlKXt0PXtlcnJvcjplfX1maW5hbGx5e3RyeXtyJiYhci5kb25lJiYoZT1hLnJldHVybikmJmUuY2FsbChhKX1maW5hbGx5e2lmKHQpdGhyb3cgdC5lcnJvcn19bi5jb21wbGV0ZSgpfSksdm9pZCAwLChmdW5jdGlvbigpe2k9bnVsbH0pKSl9KSl9ZnVuY3Rpb24gRGUoKXtyZXR1cm4gUigoZnVuY3Rpb24odCxlKXt2YXIgbixvPSExO3Quc3Vic2NyaWJlKG5ldyBUKGUsKGZ1bmN0aW9uKHQpe3ZhciBpPW47bj10LG8mJmUubmV4dChbaSx0XSksbz0hMH0pKSl9KSl9ZnVuY3Rpb24gRWUodCl7dm9pZCAwPT09dCYmKHQ9e30pO3ZhciBlPXQuY29ubmVjdG9yLG49dm9pZCAwPT09ZT9mdW5jdGlvbigpe3JldHVybiBuZXcgSX06ZSxvPXQucmVzZXRPbkVycm9yLGk9dm9pZCAwPT09b3x8byxhPXQucmVzZXRPbkNvbXBsZXRlLHI9dm9pZCAwPT09YXx8YSxzPXQucmVzZXRPblJlZkNvdW50WmVybyxsPXZvaWQgMD09PXN8fHM7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPW51bGwsbz1udWxsLGE9bnVsbCxzPTAsYz0hMSxkPSExLHA9ZnVuY3Rpb24oKXtudWxsPT1vfHxvLnVuc3Vic2NyaWJlKCksbz1udWxsfSxtPWZ1bmN0aW9uKCl7cCgpLGU9YT1udWxsLGM9ZD0hMX0sdT1mdW5jdGlvbigpe3ZhciB0PWU7bSgpLG51bGw9PXR8fHQudW5zdWJzY3JpYmUoKX07cmV0dXJuIFIoKGZ1bmN0aW9uKHQsZil7cysrLGR8fGN8fHAoKTt2YXIgZz1hPW51bGwhPWE/YTpuKCk7Zi5hZGQoKGZ1bmN0aW9uKCl7MCE9LS1zfHxkfHxjfHwobz1SZSh1LGwpKX0pKSxnLnN1YnNjcmliZShmKSxlfHwoZT1uZXcgTSh7bmV4dDpmdW5jdGlvbih0KXtyZXR1cm4gZy5uZXh0KHQpfSxlcnJvcjpmdW5jdGlvbih0KXtkPSEwLHAoKSxvPVJlKG0saSx0KSxnLmVycm9yKHQpfSxjb21wbGV0ZTpmdW5jdGlvbigpe2M9ITAscCgpLG89UmUobSxyKSxnLmNvbXBsZXRlKCl9fSksQ3QodCkuc3Vic2NyaWJlKGUpKX0pKSh0KX19ZnVuY3Rpb24gUmUodCxlKXtmb3IodmFyIG49W10sbz0yO288YXJndW1lbnRzLmxlbmd0aDtvKyspbltvLTJdPWFyZ3VtZW50c1tvXTtyZXR1cm4hMD09PWU/KHQoKSxudWxsKTohMT09PWU/bnVsbDplLmFwcGx5KHZvaWQgMCxhKFtdLGkobikpKS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKGZ1bmN0aW9uKCl7cmV0dXJuIHQoKX0pKX1mdW5jdGlvbiBBZSh0LGUsbil7dmFyIG8saSxhLHI9ITE7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdD8oYT1udWxsIT09KG89dC5idWZmZXJTaXplKSYmdm9pZCAwIT09bz9vOjEvMCxlPW51bGwhPT0oaT10LndpbmRvd1RpbWUpJiZ2b2lkIDAhPT1pP2k6MS8wLHI9ISF0LnJlZkNvdW50LG49dC5zY2hlZHVsZXIpOmE9bnVsbCE9dD90OjEvMCxFZSh7Y29ubmVjdG9yOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBCKGEsZSxuKX0scmVzZXRPbkVycm9yOiEwLHJlc2V0T25Db21wbGV0ZTohMSxyZXNldE9uUmVmQ291bnRaZXJvOnJ9KX1mdW5jdGlvbiBUZSh0KXtyZXR1cm4gY2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ8PW59KSl9ZnVuY3Rpb24gTmUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49U3QodCk7cmV0dXJuIFIoKGZ1bmN0aW9uKGUsbyl7KG4/SnQodCxlLG4pOkp0KHQsZSkpLnN1YnNjcmliZShvKX0pKX1mdW5jdGlvbiB6ZSh0LGUpe3JldHVybiBSKChmdW5jdGlvbihuLG8pe3ZhciBpPW51bGwsYT0wLHI9ITEscz1mdW5jdGlvbigpe3JldHVybiByJiYhaSYmby5jb21wbGV0ZSgpfTtuLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbihuKXtudWxsPT1pfHxpLnVuc3Vic2NyaWJlKCk7dmFyIHI9MCxsPWErKztNdCh0KG4sbCkpLnN1YnNjcmliZShpPW5ldyBUKG8sKGZ1bmN0aW9uKHQpe3JldHVybiBvLm5leHQoZT9lKG4sdCxsLHIrKyk6dCl9KSwoZnVuY3Rpb24oKXtpPW51bGwscygpfSkpKX0pLChmdW5jdGlvbigpe3I9ITAscygpfSkpKX0pKX1mdW5jdGlvbiBJZSh0KXtyZXR1cm4gUigoZnVuY3Rpb24oZSxuKXtNdCh0KS5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24oKXtyZXR1cm4gbi5jb21wbGV0ZSgpfSkseSkpLCFuLmNsb3NlZCYmZS5zdWJzY3JpYmUobil9KSl9ZnVuY3Rpb24gSGUodCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITEpLFIoKGZ1bmN0aW9uKG4sbyl7dmFyIGk9MDtuLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbihuKXt2YXIgYT10KG4saSsrKTsoYXx8ZSkmJm8ubmV4dChuKSwhYSYmby5jb21wbGV0ZSgpfSkpKX0pKX1mdW5jdGlvbiBGZSh0LGUsbil7dmFyIG89bCh0KXx8ZXx8bj97bmV4dDp0LGVycm9yOmUsY29tcGxldGU6bn06dDtyZXR1cm4gbz9SKChmdW5jdGlvbih0LGUpe3ZhciBuO251bGw9PT0obj1vLnN1YnNjcmliZSl8fHZvaWQgMD09PW58fG4uY2FsbChvKTt2YXIgaT0hMDt0LnN1YnNjcmliZShuZXcgVChlLChmdW5jdGlvbih0KXt2YXIgbjtudWxsPT09KG49by5uZXh0KXx8dm9pZCAwPT09bnx8bi5jYWxsKG8sdCksZS5uZXh0KHQpfSksKGZ1bmN0aW9uKCl7dmFyIHQ7aT0hMSxudWxsPT09KHQ9by5jb21wbGV0ZSl8fHZvaWQgMD09PXR8fHQuY2FsbChvKSxlLmNvbXBsZXRlKCl9KSwoZnVuY3Rpb24odCl7dmFyIG47aT0hMSxudWxsPT09KG49by5lcnJvcil8fHZvaWQgMD09PW58fG4uY2FsbChvLHQpLGUuZXJyb3IodCl9KSwoZnVuY3Rpb24oKXt2YXIgdCxlO2kmJihudWxsPT09KHQ9by51bnN1YnNjcmliZSl8fHZvaWQgMD09PXR8fHQuY2FsbChvKSksbnVsbD09PShlPW8uZmluYWxpemUpfHx2b2lkIDA9PT1lfHxlLmNhbGwobyl9KSkpfSkpOnd9dmFyIExlPXtsZWFkaW5nOiEwLHRyYWlsaW5nOiExfTtmdW5jdGlvbiBCZSh0LGUsbil7dm9pZCAwPT09ZSYmKGU9dHQpLHZvaWQgMD09PW4mJihuPUxlKTt2YXIgbz1hZSh0LGUpO3JldHVybihmdW5jdGlvbiBpKHQsZSl7dmFyIG49dm9pZCAwPT09ZT9MZTplLG89bi5sZWFkaW5nLGk9bi50cmFpbGluZztyZXR1cm4gUigoZnVuY3Rpb24oZSxuKXt2YXIgYT0hMSxyPW51bGwscz1udWxsLGw9ITEsYz1mdW5jdGlvbigpe251bGw9PXN8fHMudW5zdWJzY3JpYmUoKSxzPW51bGwsaSYmKG0oKSxsJiZuLmNvbXBsZXRlKCkpfSxkPWZ1bmN0aW9uKCl7cz1udWxsLGwmJm4uY29tcGxldGUoKX0scD1mdW5jdGlvbihlKXtyZXR1cm4gcz1NdCh0KGUpKS5zdWJzY3JpYmUobmV3IFQobixjLGQpKX0sbT1mdW5jdGlvbigpe2lmKGEpe2E9ITE7dmFyIHQ9cjtyPW51bGwsbi5uZXh0KHQpLCFsJiZwKHQpfX07ZS5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24odCl7YT0hMCxyPXQsKCFzfHxzLmNsb3NlZCkmJihvP20oKTpwKHQpKX0pLChmdW5jdGlvbigpe2w9ITAsKCEoaSYmYSYmcyl8fHMuY2xvc2VkKSYmbi5jb21wbGV0ZSgpfSkpKX0pKX0pKChmdW5jdGlvbigpe3JldHVybiBvfSksbil9ZnVuY3Rpb24gVmUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49a3QodCk7cmV0dXJuIFIoKGZ1bmN0aW9uKGUsbyl7Zm9yKHZhciByPXQubGVuZ3RoLHM9bmV3IEFycmF5KHIpLGw9dC5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuITF9KSksYz0hMSxkPWZ1bmN0aW9uKGUpe010KHRbZV0pLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbih0KXtzW2VdPXQsY3x8bFtlXXx8KGxbZV09ITAsKGM9bC5ldmVyeSh3KSkmJihsPW51bGwpKX0pLHkpKX0scD0wO3A8cjtwKyspZChwKTtlLnN1YnNjcmliZShuZXcgVChvLChmdW5jdGlvbih0KXtpZihjKXt2YXIgZT1hKFt0XSxpKHMpKTtvLm5leHQobj9uLmFwcGx5KHZvaWQgMCxhKFtdLGkoZSkpKTplKX19KSkpfSkpfQovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBqZSh0KXtmb3IobGV0IGUgaW4gdClpZih0W2VdPT09amUpcmV0dXJuIGU7dGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIHJlbmFtZWQgcHJvcGVydHkgb24gdGFyZ2V0IG9iamVjdC4iKX1mdW5jdGlvbiBVZSh0LGUpe2Zvcihjb25zdCBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmIXQuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBHZSh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4iWyIrdC5tYXAoR2UpLmpvaW4oIiwgIikrIl0iO2lmKG51bGw9PXQpcmV0dXJuIiIrdDtpZih0Lm92ZXJyaWRkZW5OYW1lKXJldHVybmAke3Qub3ZlcnJpZGRlbk5hbWV9YDtpZih0Lm5hbWUpcmV0dXJuYCR7dC5uYW1lfWA7Y29uc3QgZT10LnRvU3RyaW5nKCk7aWYobnVsbD09ZSlyZXR1cm4iIitlO2NvbnN0IG49ZS5pbmRleE9mKCJcbiIpO3JldHVybi0xPT09bj9lOmUuc3Vic3RyaW5nKDAsbil9ZnVuY3Rpb24gV2UodCxlKXtyZXR1cm4gbnVsbD09dHx8IiI9PT10P251bGw9PT1lPyIiOmU6bnVsbD09ZXx8IiI9PT1lP3Q6dCsiICIrZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgWWU9amUoe19fZm9yd2FyZF9yZWZfXzpqZX0pO2Z1bmN0aW9uIHFlKHQpe3JldHVybiB0Ll9fZm9yd2FyZF9yZWZfXz1xZSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEdlKHRoaXMoKSl9LHR9ZnVuY3Rpb24gWmUodCl7cmV0dXJuIFhlKHQpP3QoKTp0fWZ1bmN0aW9uIFhlKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0Lmhhc093blByb3BlcnR5KFllKSYmdC5fX2ZvcndhcmRfcmVmX189PT1xZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgS2UgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKFFlKHQsZSkpLHRoaXMuY29kZT10fX1jb25zdCBKZT1uZXcgU2V0KFsiMTAwIiwiMjAwIiwiMjAxIiwiMzAwIiwiMzAxIiwiMzAyIl0pO2Z1bmN0aW9uIFFlKHQsZSl7bGV0IG49YCR7dD9gTkcwJHt0fTogYDoiIn0ke2V9YDtyZXR1cm4gbmdEZXZNb2RlJiZKZS5oYXModCkmJihuPWAke259LiBGaW5kIG1vcmUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2Vycm9ycy9ORzAke3R9YCksbn0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gJGUodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3Q6bnVsbD09dD8iIjpTdHJpbmcodCl9ZnVuY3Rpb24gdG4odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dC5uYW1lfHx0LnRvU3RyaW5nKCk6Im9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10JiYiZnVuY3Rpb24iPT10eXBlb2YgdC50eXBlP3QudHlwZS5uYW1lfHx0LnR5cGUudG9TdHJpbmcoKTokZSh0KX1mdW5jdGlvbiBlbih0LGUpe2NvbnN0IG49ZT9gLiBEZXBlbmRlbmN5IHBhdGg6ICR7ZS5qb2luKCIgPiAiKX0gPiAke3R9YDoiIjt0aHJvdyBuZXcgS2UoIjIwMCIsYENpcmN1bGFyIGRlcGVuZGVuY3kgaW4gREkgZGV0ZWN0ZWQgZm9yICR7dH0ke259YCl9ZnVuY3Rpb24gbm4oKXt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBtaXggbXVsdGkgcHJvdmlkZXJzIGFuZCByZWd1bGFyIHByb3ZpZGVycyIpfWZ1bmN0aW9uIG9uKHQsZSl7Y29uc3Qgbj1lP2AgaW4gJHtlfWA6IiI7dGhyb3cgbmV3IEtlKCIyMDEiLGBObyBwcm92aWRlciBmb3IgJHt0bih0KX0gZm91bmQke259YCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGFuKHQsZSl7Im51bWJlciIhPXR5cGVvZiB0JiZibihlLHR5cGVvZiB0LCJudW1iZXIiLCI9PT0iKX1mdW5jdGlvbiBybih0LGUsbil7YW4odCwiRXhwZWN0ZWQgYSBudW1iZXIiKSx1bih0LG4sIkV4cGVjdGVkIG51bWJlciB0byBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8iKSxnbih0LGUsIkV4cGVjdGVkIG51bWJlciB0byBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8iKX1mdW5jdGlvbiBzbih0LGUpeyJzdHJpbmciIT10eXBlb2YgdCYmYm4oZSxudWxsPT09dD8ibnVsbCI6dHlwZW9mIHQsInN0cmluZyIsIj09PSIpfWZ1bmN0aW9uIGxuKHQsZSxuKXt0IT1lJiZibihuLHQsZSwiPT0iKX1mdW5jdGlvbiBjbih0LGUsbil7dD09ZSYmYm4obix0LGUsIiE9Iil9ZnVuY3Rpb24gZG4odCxlLG4pe3QhPT1lJiZibihuLHQsZSwiPT09Iil9ZnVuY3Rpb24gcG4odCxlLG4pe3Q9PT1lJiZibihuLHQsZSwiIT09Iil9ZnVuY3Rpb24gbW4odCxlLG4pe3Q8ZXx8Ym4obix0LGUsIjwiKX1mdW5jdGlvbiB1bih0LGUsbil7dDw9ZXx8Ym4obix0LGUsIjw9Iil9ZnVuY3Rpb24gZm4odCxlLG4pe3Q+ZXx8Ym4obix0LGUsIj4iKX1mdW5jdGlvbiBnbih0LGUsbil7dD49ZXx8Ym4obix0LGUsIj49Iil9ZnVuY3Rpb24gaG4odCxlKXtudWxsPT10JiZibihlLHQsbnVsbCwiIT0iKX1mdW5jdGlvbiBibih0LGUsbixvKXt0aHJvdyBuZXcgRXJyb3IoYEFTU0VSVElPTiBFUlJPUjogJHt0fWArKG51bGw9PW8/IiI6YCBbRXhwZWN0ZWQ9PiAke259ICR7b30gJHtlfSA8PUFjdHVhbF1gKSl9ZnVuY3Rpb24geW4odCl7InVuZGVmaW5lZCIhPXR5cGVvZiBOb2RlJiZ0IGluc3RhbmNlb2YgTm9kZXx8Im9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10JiYiV2ViV29ya2VyUmVuZGVyTm9kZSI9PT10LmNvbnN0cnVjdG9yLm5hbWV8fGJuKGBUaGUgcHJvdmlkZWQgdmFsdWUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBhIERPTSBOb2RlIGJ1dCBnb3QgJHtHZSh0KX1gKX1mdW5jdGlvbiBfbih0LGUpe2huKHQsIkFycmF5IG11c3QgYmUgZGVmaW5lZC4iKTtjb25zdCBuPXQubGVuZ3RoOyhlPDB8fGU+PW4pJiZibihgSW5kZXggZXhwZWN0ZWQgdG8gYmUgbGVzcyB0aGFuICR7bn0gYnV0IGdvdCAke2V9YCl9ZnVuY3Rpb24gQ24odCwuLi5lKXtpZigtMSE9PWUuaW5kZXhPZih0KSlyZXR1cm4hMDtibihgRXhwZWN0ZWQgdmFsdWUgdG8gYmUgb25lIG9mICR7SlNPTi5zdHJpbmdpZnkoZSl9IGJ1dCB3YXMgJHtKU09OLnN0cmluZ2lmeSh0KX0uYCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIE1uKHQpe3JldHVybnt0b2tlbjp0LnRva2VuLHByb3ZpZGVkSW46dC5wcm92aWRlZElufHxudWxsLGZhY3Rvcnk6dC5mYWN0b3J5LHZhbHVlOnZvaWQgMH19ZnVuY3Rpb24gdm4odCl7cmV0dXJue3Byb3ZpZGVyczp0LnByb3ZpZGVyc3x8W10saW1wb3J0czp0LmltcG9ydHN8fFtdfX1mdW5jdGlvbiB4bih0KXtyZXR1cm4gT24odCx3bil8fE9uKHQsU24pfWZ1bmN0aW9uIE9uKHQsZSl7cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoZSk/dFtlXTpudWxsfWZ1bmN0aW9uIFBuKHQpe3JldHVybiB0JiYodC5oYXNPd25Qcm9wZXJ0eShrbil8fHQuaGFzT3duUHJvcGVydHkoRG4pKT90W2tuXTpudWxsfWNvbnN0IHduPWplKHsiybVwcm92IjpqZX0pLGtuPWplKHsiybVpbmoiOmplfSksU249amUoe25nSW5qZWN0YWJsZURlZjpqZX0pLERuPWplKHtuZ0luamVjdG9yRGVmOmplfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwp2YXIgRW47Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgUm47ZnVuY3Rpb24gQW4odCl7Y29uc3QgZT1SbjtyZXR1cm4gUm49dCxlfWZ1bmN0aW9uIFRuKHQsZSxuKXtjb25zdCBvPXhuKHQpO3JldHVybiBvJiYicm9vdCI9PW8ucHJvdmlkZWRJbj92b2lkIDA9PT1vLnZhbHVlP28udmFsdWU9by5mYWN0b3J5KCk6by52YWx1ZTpuJkVuLk9wdGlvbmFsP251bGw6dm9pZCAwIT09ZT9lOnZvaWQgb24oR2UodCksIkluamVjdG9yIil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBObih0KXtyZXR1cm57dG9TdHJpbmc6dH0udG9TdHJpbmcoKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovdmFyIHpuLEluLEhuOyEoZnVuY3Rpb24odCl7dFt0LkRlZmF1bHQ9MF09IkRlZmF1bHQiLHRbdC5Ib3N0PTFdPSJIb3N0Iix0W3QuU2VsZj0yXT0iU2VsZiIsdFt0LlNraXBTZWxmPTRdPSJTa2lwU2VsZiIsdFt0Lk9wdGlvbmFsPThdPSJPcHRpb25hbCJ9KShFbnx8KEVuPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5PblB1c2g9MF09Ik9uUHVzaCIsdFt0LkRlZmF1bHQ9MV09IkRlZmF1bHQifSkoem58fCh6bj17fSkpLChmdW5jdGlvbih0KXt0W3QuQ2hlY2tPbmNlPTBdPSJDaGVja09uY2UiLHRbdC5DaGVja2VkPTFdPSJDaGVja2VkIix0W3QuQ2hlY2tBbHdheXM9Ml09IkNoZWNrQWx3YXlzIix0W3QuRGV0YWNoZWQ9M109IkRldGFjaGVkIix0W3QuRXJyb3JlZD00XT0iRXJyb3JlZCIsdFt0LkRlc3Ryb3llZD01XT0iRGVzdHJveWVkIn0pKElufHwoSW49e30pKSwoZnVuY3Rpb24odCl7dFt0LkVtdWxhdGVkPTBdPSJFbXVsYXRlZCIsdFt0Lk5vbmU9Ml09Ik5vbmUiLHRbdC5TaGFkb3dEb209M109IlNoYWRvd0RvbSJ9KShIbnx8KEhuPXt9KSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBGbj0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsTG49InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdyxCbj0idW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJiJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmc2VsZixWbj0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbCYmZ2xvYmFsLGpuPUZufHxWbnx8TG58fEJuO2Z1bmN0aW9uIFVuKCl7cmV0dXJuISgidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8KCJvYmplY3QiIT10eXBlb2YgbmdEZXZNb2RlJiYoCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiB0KCl7Y29uc3QgdD0idW5kZWZpbmVkIiE9dHlwZW9mIGxvY2F0aW9uP2xvY2F0aW9uLnRvU3RyaW5nKCk6IiIsZT17bmFtZWRDb25zdHJ1Y3RvcnM6LTEhPXQuaW5kZXhPZigibmdEZXZNb2RlPW5hbWVkQ29uc3RydWN0b3JzIiksZmlyc3RDcmVhdGVQYXNzOjAsdE5vZGU6MCx0VmlldzowLHJlbmRlcmVyQ3JlYXRlVGV4dE5vZGU6MCxyZW5kZXJlclNldFRleHQ6MCxyZW5kZXJlckNyZWF0ZUVsZW1lbnQ6MCxyZW5kZXJlckFkZEV2ZW50TGlzdGVuZXI6MCxyZW5kZXJlclNldEF0dHJpYnV0ZTowLHJlbmRlcmVyUmVtb3ZlQXR0cmlidXRlOjAscmVuZGVyZXJTZXRQcm9wZXJ0eTowLHJlbmRlcmVyU2V0Q2xhc3NOYW1lOjAscmVuZGVyZXJBZGRDbGFzczowLHJlbmRlcmVyUmVtb3ZlQ2xhc3M6MCxyZW5kZXJlclNldFN0eWxlOjAscmVuZGVyZXJSZW1vdmVTdHlsZTowLHJlbmRlcmVyRGVzdHJveTowLHJlbmRlcmVyRGVzdHJveU5vZGU6MCxyZW5kZXJlck1vdmVOb2RlOjAscmVuZGVyZXJSZW1vdmVOb2RlOjAscmVuZGVyZXJBcHBlbmRDaGlsZDowLHJlbmRlcmVySW5zZXJ0QmVmb3JlOjAscmVuZGVyZXJDcmVhdGVDb21tZW50OjB9LG49LTE9PT10LmluZGV4T2YoIm5nRGV2TW9kZT1mYWxzZSIpO2puLm5nRGV2TW9kZT1uJiZlfSkoKSwidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8IW5nRGV2TW9kZSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBHbj17fSxXbj1bXTsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlVuKCkmJihPYmplY3QuZnJlZXplKEduKSxPYmplY3QuZnJlZXplKFduKSkKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovO2NvbnN0IFluPWplKHsiybVjbXAiOmplfSkscW49amUoeyLJtWRpciI6amV9KSxabj1qZSh7Ism1cGlwZSI6amV9KSxYbj1qZSh7Ism1bW9kIjpqZX0pLEtuPWplKHsiybVsb2MiOmplfSksSm49amUoeyLJtWZhYyI6amV9KSxRbj1qZSh7X19OR19FTEVNRU5UX0lEX186amV9KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCAkbj0wO2Z1bmN0aW9uIHRvKHQpe3JldHVybiBObigoKCk9PnsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlVuKCk7Y29uc3QgZT17fSxuPXt0eXBlOnQudHlwZSxwcm92aWRlcnNSZXNvbHZlcjpudWxsLGRlY2xzOnQuZGVjbHMsdmFyczp0LnZhcnMsZmFjdG9yeTpudWxsLHRlbXBsYXRlOnQudGVtcGxhdGV8fG51bGwsY29uc3RzOnQuY29uc3RzfHxudWxsLG5nQ29udGVudFNlbGVjdG9yczp0Lm5nQ29udGVudFNlbGVjdG9ycyxob3N0QmluZGluZ3M6dC5ob3N0QmluZGluZ3N8fG51bGwsaG9zdFZhcnM6dC5ob3N0VmFyc3x8MCxob3N0QXR0cnM6dC5ob3N0QXR0cnN8fG51bGwsY29udGVudFF1ZXJpZXM6dC5jb250ZW50UXVlcmllc3x8bnVsbCxkZWNsYXJlZElucHV0czplLGlucHV0czpudWxsLG91dHB1dHM6bnVsbCxleHBvcnRBczp0LmV4cG9ydEFzfHxudWxsLG9uUHVzaDp0LmNoYW5nZURldGVjdGlvbj09PXpuLk9uUHVzaCxkaXJlY3RpdmVEZWZzOm51bGwscGlwZURlZnM6bnVsbCxzZWxlY3RvcnM6dC5zZWxlY3RvcnN8fFduLHZpZXdRdWVyeTp0LnZpZXdRdWVyeXx8bnVsbCxmZWF0dXJlczp0LmZlYXR1cmVzfHxudWxsLGRhdGE6dC5kYXRhfHx7fSxlbmNhcHN1bGF0aW9uOnQuZW5jYXBzdWxhdGlvbnx8SG4uRW11bGF0ZWQsaWQ6ImMiLHN0eWxlczp0LnN0eWxlc3x8V24sXzpudWxsLHNldElucHV0Om51bGwsc2NoZW1hczp0LnNjaGVtYXN8fG51bGwsdFZpZXc6bnVsbH0sbz10LmRpcmVjdGl2ZXMsaT10LmZlYXR1cmVzLGE9dC5waXBlcztyZXR1cm4gbi5pZCs9JG4rKyxuLmlucHV0cz1zbyh0LmlucHV0cyxlKSxuLm91dHB1dHM9c28odC5vdXRwdXRzKSxpJiZpLmZvckVhY2goKHQ9PnQobikpKSxuLmRpcmVjdGl2ZURlZnM9bz8oKT0+KCJmdW5jdGlvbiI9PXR5cGVvZiBvP28oKTpvKS5tYXAobm8pOm51bGwsbi5waXBlRGVmcz1hPygpPT4oImZ1bmN0aW9uIj09dHlwZW9mIGE/YSgpOmEpLm1hcChvbyk6bnVsbCxufSkpfWZ1bmN0aW9uIGVvKHQsZSxuKXtjb25zdCBvPXQuybVjbXA7by5kaXJlY3RpdmVEZWZzPSgpPT5lLm1hcChubyksby5waXBlRGVmcz0oKT0+bi5tYXAob28pfWZ1bmN0aW9uIG5vKHQpe2NvbnN0IGU9cG8odCl8fG1vKHQpO2lmKG5nRGV2TW9kZSYmIWUpdGhyb3cgbmV3IEVycm9yKGAnJHt0Lm5hbWV9JyBpcyBuZWl0aGVyICdDb21wb25lbnRUeXBlJyBvciAnRGlyZWN0aXZlVHlwZScuYCk7cmV0dXJuIGV9ZnVuY3Rpb24gb28odCl7Y29uc3QgZT11byh0KTtpZihuZ0Rldk1vZGUmJiFlKXRocm93IG5ldyBFcnJvcihgJyR7dC5uYW1lfScgaXMgbm90IGEgJ1BpcGVUeXBlJy5gKTtyZXR1cm4gZX1jb25zdCBpbz17fTtmdW5jdGlvbiBhbyh0KXtyZXR1cm4gTm4oKCgpPT57Y29uc3QgZT17dHlwZTp0LnR5cGUsYm9vdHN0cmFwOnQuYm9vdHN0cmFwfHxXbixkZWNsYXJhdGlvbnM6dC5kZWNsYXJhdGlvbnN8fFduLGltcG9ydHM6dC5pbXBvcnRzfHxXbixleHBvcnRzOnQuZXhwb3J0c3x8V24sdHJhbnNpdGl2ZUNvbXBpbGVTY29wZXM6bnVsbCxzY2hlbWFzOnQuc2NoZW1hc3x8bnVsbCxpZDp0LmlkfHxudWxsfTtyZXR1cm4gbnVsbCE9dC5pZCYmKGlvW3QuaWRdPXQudHlwZSksZX0pKX1mdW5jdGlvbiBybyh0LGUpe3JldHVybiBObigoKCk9Pntjb25zdCBuPWZvKHQsITApO24uZGVjbGFyYXRpb25zPWUuZGVjbGFyYXRpb25zfHxXbixuLmltcG9ydHM9ZS5pbXBvcnRzfHxXbixuLmV4cG9ydHM9ZS5leHBvcnRzfHxXbn0pKX1mdW5jdGlvbiBzbyh0LGUpe2lmKG51bGw9PXQpcmV0dXJuIEduO2NvbnN0IG49e307Zm9yKGNvbnN0IG8gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG8pKXtsZXQgaT10W29dLGE9aTtBcnJheS5pc0FycmF5KGkpJiYoYT1pWzFdLGk9aVswXSksbltpXT1vLGUmJihlW2ldPWEpfXJldHVybiBufWNvbnN0IGxvPXRvO2Z1bmN0aW9uIGNvKHQpe3JldHVybnt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSxmYWN0b3J5Om51bGwscHVyZTohMSE9PXQucHVyZSxvbkRlc3Ryb3k6dC50eXBlLnByb3RvdHlwZS5uZ09uRGVzdHJveXx8bnVsbH19ZnVuY3Rpb24gcG8odCl7cmV0dXJuIHRbWW5dfHxudWxsfWZ1bmN0aW9uIG1vKHQpe3JldHVybiB0W3FuXXx8bnVsbH1mdW5jdGlvbiB1byh0KXtyZXR1cm4gdFtabl18fG51bGx9ZnVuY3Rpb24gZm8odCxlKXtjb25zdCBuPXRbWG5dfHxudWxsO2lmKCFuJiYhMD09PWUpdGhyb3cgbmV3IEVycm9yKGBUeXBlICR7R2UodCl9IGRvZXMgbm90IGhhdmUgJ8m1bW9kJyBwcm9wZXJ0eS5gKTtyZXR1cm4gbn0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGdvPTIwLGhvPVsiUm9vdCIsIkNvbXBvbmVudCIsIkVtYmVkZGVkIl0sYm89MTA7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiB5byh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmIm9iamVjdCI9PXR5cGVvZiB0WzFdfWZ1bmN0aW9uIF9vKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYhMD09PXRbMV19ZnVuY3Rpb24gQ28odCl7cmV0dXJuIDAhPSg4JnQuZmxhZ3MpfWZ1bmN0aW9uIE1vKHQpe3JldHVybiAyPT0oMiZ0LmZsYWdzKX1mdW5jdGlvbiB2byh0KXtyZXR1cm4gMT09KDEmdC5mbGFncyl9ZnVuY3Rpb24geG8odCl7cmV0dXJuIG51bGwhPT10LnRlbXBsYXRlfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gT28odCxlKXtQbyh0LGVbMV0pfWZ1bmN0aW9uIFBvKHQsZSl7d28odCksdC5oYXNPd25Qcm9wZXJ0eSgidFZpZXdfIikmJmxuKHQudFZpZXdfLGUsIlRoaXMgVE5vZGUgZG9lcyBub3QgYmVsb25nIHRvIHRoaXMgVFZpZXcuIil9ZnVuY3Rpb24gd28odCl7aG4odCwiVE5vZGUgbXVzdCBiZSBkZWZpbmVkIiksdCYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0Lmhhc093blByb3BlcnR5KCJkaXJlY3RpdmVTdHlsaW5nTGFzdCIpfHxibigiTm90IG9mIHR5cGUgVE5vZGUsIGdvdDogIit0KX1mdW5jdGlvbiBrbyh0KXtobih0LCJFeHBlY3RlZCBUSWN1IHRvIGJlIGRlZmluZWQiKSwibnVtYmVyIiE9dHlwZW9mIHQuY3VycmVudENhc2VMVmlld0luZGV4JiZibigiT2JqZWN0IGlzIG5vdCBvZiBUSWN1IHR5cGUuIil9ZnVuY3Rpb24gU28odCl7aG4odCwiY3VycmVudFROb2RlIHNob3VsZCBleGlzdCEiKSxobih0LnBhcmVudCwiY3VycmVudFROb2RlIHNob3VsZCBoYXZlIGEgcGFyZW50Iil9ZnVuY3Rpb24gRG8odCl7aG4odCwiTENvbnRhaW5lciBtdXN0IGJlIGRlZmluZWQiKSxsbihfbyh0KSwhMCwiRXhwZWN0aW5nIExDb250YWluZXIiKX1mdW5jdGlvbiBFbyh0KXt0JiZsbih5byh0KSwhMCwiRXhwZWN0aW5nIExWaWV3IG9yIHVuZGVmaW5lZCBvciBudWxsIil9ZnVuY3Rpb24gUm8odCl7aG4odCwiTFZpZXcgbXVzdCBiZSBkZWZpbmVkIiksbG4oeW8odCksITAsIkV4cGVjdGluZyBMVmlldyIpfWZ1bmN0aW9uIEFvKHQsZSl7bG4odC5maXJzdENyZWF0ZVBhc3MsITAsZXx8IlNob3VsZCBvbmx5IGJlIGNhbGxlZCBpbiBmaXJzdCBjcmVhdGUgcGFzcy4iKX1mdW5jdGlvbiBUbyh0LGUpe2xuKHQuZmlyc3RVcGRhdGVQYXNzLCEwLGV8fCJTaG91bGQgb25seSBiZSBjYWxsZWQgaW4gZmlyc3QgdXBkYXRlIHBhc3MuIil9ZnVuY3Rpb24gTm8odCxlKXt6byh0WzFdLmV4cGFuZG9TdGFydEluZGV4LHQubGVuZ3RoLGUpfWZ1bmN0aW9uIHpvKHQsZSxuKXt0PD1uJiZuPGV8fGJuKGBJbmRleCBvdXQgb2YgcmFuZ2UgKGV4cGVjdGluZyAke3R9IDw9ICR7bn0gPCAke2V9KWApfWZ1bmN0aW9uIElvKHQsZSl7aG4odCxlfHwiQ29tcG9uZW50IHZpZXdzIHNob3VsZCBhbHdheXMgaGF2ZSBhIHBhcmVudCB2aWV3IChjb21wb25lbnQncyBob3N0IHZpZXcpIil9ZnVuY3Rpb24gSG8odCxlKXtObyh0LGUpLE5vKHQsZSs4KSxhbih0W2UrMF0sImluamVjdG9ySW5kZXggc2hvdWxkIHBvaW50IHRvIGEgYmxvb20gZmlsdGVyIiksYW4odFtlKzFdLCJpbmplY3RvckluZGV4IHNob3VsZCBwb2ludCB0byBhIGJsb29tIGZpbHRlciIpLGFuKHRbZSsyXSwiaW5qZWN0b3JJbmRleCBzaG91bGQgcG9pbnQgdG8gYSBibG9vbSBmaWx0ZXIiKSxhbih0W2UrM10sImluamVjdG9ySW5kZXggc2hvdWxkIHBvaW50IHRvIGEgYmxvb20gZmlsdGVyIiksYW4odFtlKzRdLCJpbmplY3RvckluZGV4IHNob3VsZCBwb2ludCB0byBhIGJsb29tIGZpbHRlciIpLGFuKHRbZSs1XSwiaW5qZWN0b3JJbmRleCBzaG91bGQgcG9pbnQgdG8gYSBibG9vbSBmaWx0ZXIiKSxhbih0W2UrNl0sImluamVjdG9ySW5kZXggc2hvdWxkIHBvaW50IHRvIGEgYmxvb20gZmlsdGVyIiksYW4odFtlKzddLCJpbmplY3RvckluZGV4IHNob3VsZCBwb2ludCB0byBhIGJsb29tIGZpbHRlciIpLGFuKHRbZSs4XSwiaW5qZWN0b3JJbmRleCBzaG91bGQgcG9pbnQgdG8gcGFyZW50IGluamVjdG9yIil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEZvKHQsZSl7Y29uc3Qgbj10Lmhhc093blByb3BlcnR5KEpuKTtpZighbiYmITA9PT1lJiZuZ0Rldk1vZGUpdGhyb3cgbmV3IEVycm9yKGBUeXBlICR7R2UodCl9IGRvZXMgbm90IGhhdmUgJ8m1ZmFjJyBwcm9wZXJ0eS5gKTtyZXR1cm4gbj90W0puXTpudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBMb3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5wcmV2aW91c1ZhbHVlPXQsdGhpcy5jdXJyZW50VmFsdWU9ZSx0aGlzLmZpcnN0Q2hhbmdlPW59aXNGaXJzdENoYW5nZSgpe3JldHVybiB0aGlzLmZpcnN0Q2hhbmdlfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gQm8oKXtyZXR1cm4gVm99ZnVuY3Rpb24gVm8odCl7cmV0dXJuIHQudHlwZS5wcm90b3R5cGUubmdPbkNoYW5nZXMmJih0LnNldElucHV0PVVvKSxqb31mdW5jdGlvbiBqbygpe2NvbnN0IHQ9R28odGhpcyksZT1udWxsPT10P3ZvaWQgMDp0LmN1cnJlbnQ7aWYoZSl7Y29uc3Qgbj10LnByZXZpb3VzO2lmKG49PT1Hbil0LnByZXZpb3VzPWU7ZWxzZSBmb3IobGV0IHQgaW4gZSluW3RdPWVbdF07dC5jdXJyZW50PW51bGwsdGhpcy5uZ09uQ2hhbmdlcyhlKX19ZnVuY3Rpb24gVW8odCxlLG4sbyl7Y29uc3QgaT1Hbyh0KXx8KGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gdC5fX25nU2ltcGxlQ2hhbmdlc19fPWV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykodCx7cHJldmlvdXM6R24sY3VycmVudDpudWxsfSkscj1pLmN1cnJlbnR8fChpLmN1cnJlbnQ9e30pLHM9aS5wcmV2aW91cyxsPXRoaXMuZGVjbGFyZWRJbnB1dHNbbl0sYz1zW2xdO3JbbF09bmV3IExvKGMmJmMuY3VycmVudFZhbHVlLGUscz09PUduKSx0W29dPWV9ZnVuY3Rpb24gR28odCl7cmV0dXJuIHQuX19uZ1NpbXBsZUNoYW5nZXNfX3x8bnVsbH1Cby5uZ0luaGVyaXQ9ITA7bGV0IFdvPW51bGw7Y29uc3QgWW89dD0+e1dvPXR9LHFvPWZ1bmN0aW9uKHQsZSxuKXtudWxsIT1XbyYmV28odCxlLG4pfSxabz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLFhvPSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGhNTC8iOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IEtvO2Z1bmN0aW9uIEpvKCl7cmV0dXJuIHZvaWQgMCE9PUtvP0tvOiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi92YXIgUW87ZnVuY3Rpb24gJG8odCl7cmV0dXJuISF0Lmxpc3Rlbn0hKGZ1bmN0aW9uKHQpe3RbdC5JbXBvcnRhbnQ9MV09IkltcG9ydGFudCIsdFt0LkRhc2hDYXNlPTJdPSJEYXNoQ2FzZSJ9KShRb3x8KFFvPXt9KSk7Y29uc3QgdGk9e2NyZWF0ZVJlbmRlcmVyOih0LGUpPT5KbygpfTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIGVpKHQpe2Zvcig7QXJyYXkuaXNBcnJheSh0KTspdD10WzBdO3JldHVybiB0fWZ1bmN0aW9uIG5pKHQsZSl7cmV0dXJuIG5nRGV2TW9kZSYmX24oZSx0KSxuZ0Rldk1vZGUmJmduKHQsZ28sIkV4cGVjdGVkIHRvIGJlIHBhc3QgSEVBREVSX09GRlNFVCIpLGVpKGVbdF0pfWZ1bmN0aW9uIG9pKHQsZSl7bmdEZXZNb2RlJiZPbyh0LGUpLG5nRGV2TW9kZSYmX24oZSx0LmluZGV4KTtjb25zdCBuPWVpKGVbdC5pbmRleF0pO3JldHVybiBuZ0Rldk1vZGUmJiEkbyhlWzExXSkmJnluKG4pLG59ZnVuY3Rpb24gaWkodCxlKXtuZ0Rldk1vZGUmJmZuKGUsLTEsIndyb25nIGluZGV4IGZvciBUTm9kZSIpLG5nRGV2TW9kZSYmbW4oZSx0LmRhdGEubGVuZ3RoLCJ3cm9uZyBpbmRleCBmb3IgVE5vZGUiKTtjb25zdCBuPXQuZGF0YVtlXTtyZXR1cm4gbmdEZXZNb2RlJiZudWxsIT09biYmd28obiksbn1mdW5jdGlvbiBhaSh0LGUpe3JldHVybiBuZ0Rldk1vZGUmJl9uKHQsZSksdFtlXX1mdW5jdGlvbiByaSh0LGUpe25nRGV2TW9kZSYmX24oZSx0KTtjb25zdCBuPWVbdF07cmV0dXJuIHlvKG4pP246blswXX1mdW5jdGlvbiBzaSh0KXtyZXR1cm4gND09KDQmdFsyXSl9ZnVuY3Rpb24gbGkodCl7cmV0dXJuIDEyOD09KDEyOCZ0WzJdKX1mdW5jdGlvbiBjaSh0LGUpe3JldHVybiBudWxsPT1lP251bGw6KG5nRGV2TW9kZSYmX24odCxlKSx0W2VdKX1mdW5jdGlvbiBkaSh0KXt0WzE4XT0wfWZ1bmN0aW9uIHBpKHQsZSl7dFs1XSs9ZTtsZXQgbj10LG89dFszXTtmb3IoO251bGwhPT1vJiYoMT09PWUmJjE9PT1uWzVdfHwtMT09PWUmJjA9PT1uWzVdKTspb1s1XSs9ZSxuPW8sbz1vWzNdfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBtaT17bEZyYW1lOkJpKG51bGwpLGJpbmRpbmdzRW5hYmxlZDohMCxpc0luQ2hlY2tOb0NoYW5nZXNNb2RlOiExfTtmdW5jdGlvbiB1aSgpe3JldHVybiBtaS5iaW5kaW5nc0VuYWJsZWR9ZnVuY3Rpb24gZmkoKXtyZXR1cm4gbWkubEZyYW1lLmxWaWV3fWZ1bmN0aW9uIGdpKCl7cmV0dXJuIG1pLmxGcmFtZS50Vmlld31mdW5jdGlvbiBoaSh0KXtyZXR1cm4gbWkubEZyYW1lLmNvbnRleHRMVmlldz10LHRbOF19ZnVuY3Rpb24gYmkoKXtsZXQgdD15aSgpO2Zvcig7bnVsbCE9PXQmJjY0PT09dC50eXBlOyl0PXQucGFyZW50O3JldHVybiB0fWZ1bmN0aW9uIHlpKCl7cmV0dXJuIG1pLmxGcmFtZS5jdXJyZW50VE5vZGV9ZnVuY3Rpb24gX2koKXtjb25zdCB0PW1pLmxGcmFtZSxlPXQuY3VycmVudFROb2RlO3JldHVybiB0LmlzUGFyZW50P2U6ZS5wYXJlbnR9ZnVuY3Rpb24gQ2kodCxlKXtuZ0Rldk1vZGUmJnQmJlBvKHQsbWkubEZyYW1lLnRWaWV3KTtjb25zdCBuPW1pLmxGcmFtZTtuLmN1cnJlbnRUTm9kZT10LG4uaXNQYXJlbnQ9ZX1mdW5jdGlvbiBNaSgpe3JldHVybiBtaS5sRnJhbWUuaXNQYXJlbnR9ZnVuY3Rpb24gdmkoKXttaS5sRnJhbWUuaXNQYXJlbnQ9ITF9ZnVuY3Rpb24geGkoKXtyZXR1cm4gbWkuaXNJbkNoZWNrTm9DaGFuZ2VzTW9kZX1mdW5jdGlvbiBPaSh0KXttaS5pc0luQ2hlY2tOb0NoYW5nZXNNb2RlPXR9ZnVuY3Rpb24gUGkoKXtjb25zdCB0PW1pLmxGcmFtZTtsZXQgZT10LmJpbmRpbmdSb290SW5kZXg7cmV0dXJuLTE9PT1lJiYoZT10LmJpbmRpbmdSb290SW5kZXg9dC50Vmlldy5iaW5kaW5nU3RhcnRJbmRleCksZX1mdW5jdGlvbiB3aSgpe3JldHVybiBtaS5sRnJhbWUuYmluZGluZ0luZGV4fWZ1bmN0aW9uIGtpKHQpe3JldHVybiBtaS5sRnJhbWUuYmluZGluZ0luZGV4PXR9ZnVuY3Rpb24gU2koKXtyZXR1cm4gbWkubEZyYW1lLmJpbmRpbmdJbmRleCsrfWZ1bmN0aW9uIERpKHQpe2NvbnN0IGU9bWkubEZyYW1lLG49ZS5iaW5kaW5nSW5kZXg7cmV0dXJuIGUuYmluZGluZ0luZGV4PWUuYmluZGluZ0luZGV4K3Qsbn1mdW5jdGlvbiBFaSh0KXttaS5sRnJhbWUuaW5JMThuPXR9ZnVuY3Rpb24gUmkodCxlKXtjb25zdCBuPW1pLmxGcmFtZTtuLmJpbmRpbmdJbmRleD1uLmJpbmRpbmdSb290SW5kZXg9dCxBaShlKX1mdW5jdGlvbiBBaSh0KXttaS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4PXR9ZnVuY3Rpb24gVGkodCl7Y29uc3QgZT1taS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4O3JldHVybi0xPT09ZT9udWxsOnRbZV19ZnVuY3Rpb24gTmkoKXtyZXR1cm4gbWkubEZyYW1lLmN1cnJlbnRRdWVyeUluZGV4fWZ1bmN0aW9uIHppKHQpe21pLmxGcmFtZS5jdXJyZW50UXVlcnlJbmRleD10fWZ1bmN0aW9uIElpKHQpe2NvbnN0IGU9dFsxXTtyZXR1cm4gMj09PWUudHlwZT8obmdEZXZNb2RlJiZobihlLmRlY2xUTm9kZSwiRW1iZWRkZWQgVE5vZGVzIHNob3VsZCBoYXZlIGRlY2xhcmF0aW9uIHBhcmVudHMuIiksZS5kZWNsVE5vZGUpOjE9PT1lLnR5cGU/dFs2XTpudWxsfWZ1bmN0aW9uIEhpKHQsZSxuKXtpZihuZ0Rldk1vZGUmJkVvKHQpLG4mRW4uU2tpcFNlbGYpe25nRGV2TW9kZSYmUG8oZSx0WzFdKTtsZXQgbz1lLGk9dDtmb3IoO25nRGV2TW9kZSYmaG4obywiUGFyZW50IFROb2RlIHNob3VsZCBiZSBkZWZpbmVkIiksbz1vLnBhcmVudCwhKG51bGwhPT1vfHxuJkVuLkhvc3R8fChvPUlpKGkpLG51bGw9PT1vKXx8KG5nRGV2TW9kZSYmaG4oaSwiUGFyZW50IExWaWV3IHNob3VsZCBiZSBkZWZpbmVkIiksaT1pWzE1XSwxMCZvLnR5cGUpKTspO2lmKG51bGw9PT1vKXJldHVybiExO2U9byx0PWl9bmdEZXZNb2RlJiZPbyhlLHQpO2NvbnN0IG89bWkubEZyYW1lPUxpKCk7cmV0dXJuIG8uY3VycmVudFROb2RlPWUsby5sVmlldz10LCEwfWZ1bmN0aW9uIEZpKHQpe25nRGV2TW9kZSYmY24odFswXSx0WzFdLCI/Pz8/IiksbmdEZXZNb2RlJiZFbyh0KTtjb25zdCBlPUxpKCk7bmdEZXZNb2RlJiYobG4oZS5pc1BhcmVudCwhMCwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksbG4oZS5sVmlldyxudWxsLCJFeHBlY3RlZCBjbGVhbiBMRnJhbWUiKSxsbihlLnRWaWV3LG51bGwsIkV4cGVjdGVkIGNsZWFuIExGcmFtZSIpLGxuKGUuc2VsZWN0ZWRJbmRleCwtMSwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksbG4oZS5lbGVtZW50RGVwdGhDb3VudCwwLCJFeHBlY3RlZCBjbGVhbiBMRnJhbWUiKSxsbihlLmN1cnJlbnREaXJlY3RpdmVJbmRleCwtMSwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksbG4oZS5jdXJyZW50TmFtZXNwYWNlLG51bGwsIkV4cGVjdGVkIGNsZWFuIExGcmFtZSIpLGxuKGUuYmluZGluZ1Jvb3RJbmRleCwtMSwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksbG4oZS5jdXJyZW50UXVlcnlJbmRleCwwLCJFeHBlY3RlZCBjbGVhbiBMRnJhbWUiKSk7Y29uc3Qgbj10WzFdO21pLmxGcmFtZT1lLG5nRGV2TW9kZSYmbi5maXJzdENoaWxkJiZQbyhuLmZpcnN0Q2hpbGQsbiksZS5jdXJyZW50VE5vZGU9bi5maXJzdENoaWxkLGUubFZpZXc9dCxlLnRWaWV3PW4sZS5jb250ZXh0TFZpZXc9dCxlLmJpbmRpbmdJbmRleD1uLmJpbmRpbmdTdGFydEluZGV4LGUuaW5JMThuPSExfWZ1bmN0aW9uIExpKCl7Y29uc3QgdD1taS5sRnJhbWUsZT1udWxsPT09dD9udWxsOnQuY2hpbGQ7cmV0dXJuIG51bGw9PT1lP0JpKHQpOmV9ZnVuY3Rpb24gQmkodCl7Y29uc3QgZT17Y3VycmVudFROb2RlOm51bGwsaXNQYXJlbnQ6ITAsbFZpZXc6bnVsbCx0VmlldzpudWxsLHNlbGVjdGVkSW5kZXg6LTEsY29udGV4dExWaWV3Om51bGwsZWxlbWVudERlcHRoQ291bnQ6MCxjdXJyZW50TmFtZXNwYWNlOm51bGwsY3VycmVudERpcmVjdGl2ZUluZGV4Oi0xLGJpbmRpbmdSb290SW5kZXg6LTEsYmluZGluZ0luZGV4Oi0xLGN1cnJlbnRRdWVyeUluZGV4OjAscGFyZW50OnQsY2hpbGQ6bnVsbCxpbkkxOG46ITF9O3JldHVybiBudWxsIT09dCYmKHQuY2hpbGQ9ZSksZX1mdW5jdGlvbiBWaSgpe2NvbnN0IHQ9bWkubEZyYW1lO3JldHVybiBtaS5sRnJhbWU9dC5wYXJlbnQsdC5jdXJyZW50VE5vZGU9bnVsbCx0LmxWaWV3PW51bGwsdH1jb25zdCBqaT1WaTtmdW5jdGlvbiBVaSgpe2NvbnN0IHQ9VmkoKTt0LmlzUGFyZW50PSEwLHQudFZpZXc9bnVsbCx0LnNlbGVjdGVkSW5kZXg9LTEsdC5jb250ZXh0TFZpZXc9bnVsbCx0LmVsZW1lbnREZXB0aENvdW50PTAsdC5jdXJyZW50RGlyZWN0aXZlSW5kZXg9LTEsdC5jdXJyZW50TmFtZXNwYWNlPW51bGwsdC5iaW5kaW5nUm9vdEluZGV4PS0xLHQuYmluZGluZ0luZGV4PS0xLHQuY3VycmVudFF1ZXJ5SW5kZXg9MH1mdW5jdGlvbiBHaSgpe3JldHVybiBtaS5sRnJhbWUuc2VsZWN0ZWRJbmRleH1mdW5jdGlvbiBXaSh0KXtuZ0Rldk1vZGUmJi0xIT09dCYmZ24odCxnbywiSW5kZXggbXVzdCBiZSBwYXN0IEhFQURFUl9PRkZTRVQgKG9yIC0xKS4iKSxuZ0Rldk1vZGUmJm1uKHQsbWkubEZyYW1lLmxWaWV3Lmxlbmd0aCwiQ2FuJ3Qgc2V0IGluZGV4IHBhc3NlZCBlbmQgb2YgTFZpZXciKSxtaS5sRnJhbWUuc2VsZWN0ZWRJbmRleD10fWZ1bmN0aW9uIFlpKCl7Y29uc3QgdD1taS5sRnJhbWU7cmV0dXJuIGlpKHQudFZpZXcsdC5zZWxlY3RlZEluZGV4KX1mdW5jdGlvbiBxaSgpe21pLmxGcmFtZS5jdXJyZW50TmFtZXNwYWNlPVpvfWZ1bmN0aW9uIFppKCl7IShmdW5jdGlvbiB0KCl7bWkubEZyYW1lLmN1cnJlbnROYW1lc3BhY2U9bnVsbH0pKCl9ZnVuY3Rpb24gWGkodCxlKXtuZ0Rldk1vZGUmJkFvKHQpO2ZvcihsZXQgbj1lLmRpcmVjdGl2ZVN0YXJ0LG89ZS5kaXJlY3RpdmVFbmQ7bjxvO24rKyl7Y29uc3QgZT10LmRhdGFbbl07bmdEZXZNb2RlJiZobihlLCJFeHBlY3RpbmcgRGlyZWN0aXZlRGVmIik7Y29uc3Qgbz1lLnR5cGUucHJvdG90eXBlLHtuZ0FmdGVyQ29udGVudEluaXQ6aSxuZ0FmdGVyQ29udGVudENoZWNrZWQ6YSxuZ0FmdGVyVmlld0luaXQ6cixuZ0FmdGVyVmlld0NoZWNrZWQ6cyxuZ09uRGVzdHJveTpsfT1vO2kmJih0LmNvbnRlbnRIb29rc3x8KHQuY29udGVudEhvb2tzPVtdKSkucHVzaCgtbixpKSxhJiYoKHQuY29udGVudEhvb2tzfHwodC5jb250ZW50SG9va3M9W10pKS5wdXNoKG4sYSksKHQuY29udGVudENoZWNrSG9va3N8fCh0LmNvbnRlbnRDaGVja0hvb2tzPVtdKSkucHVzaChuLGEpKSxyJiYodC52aWV3SG9va3N8fCh0LnZpZXdIb29rcz1bXSkpLnB1c2goLW4scikscyYmKCh0LnZpZXdIb29rc3x8KHQudmlld0hvb2tzPVtdKSkucHVzaChuLHMpLCh0LnZpZXdDaGVja0hvb2tzfHwodC52aWV3Q2hlY2tIb29rcz1bXSkpLnB1c2gobixzKSksbnVsbCE9bCYmKHQuZGVzdHJveUhvb2tzfHwodC5kZXN0cm95SG9va3M9W10pKS5wdXNoKG4sbCl9fWZ1bmN0aW9uIEtpKHQsZSxuKXskaSh0LGUsMyxuKX1mdW5jdGlvbiBKaSh0LGUsbixvKXtuZ0Rldk1vZGUmJmNuKG4sMywiSW5pdCBwcmUtb3JkZXIgaG9va3Mgc2hvdWxkIG5vdCBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2UiKSwoMyZ0WzJdKT09PW4mJiRpKHQsZSxuLG8pfWZ1bmN0aW9uIFFpKHQsZSl7bmdEZXZNb2RlJiZjbihlLDMsIkluaXQgaG9va3MgcGhhc2Ugc2hvdWxkIG5vdCBiZSBpbmNyZW1lbnRlZCBhZnRlciBhbGwgaW5pdCBob29rcyBoYXZlIGJlZW4gcnVuLiIpO2xldCBuPXRbMl07KDMmbik9PT1lJiYobiY9MjA0NyxuKz0xLHRbMl09bil9ZnVuY3Rpb24gJGkodCxlLG4sbyl7bmdEZXZNb2RlJiZsbih4aSgpLCExLCJIb29rcyBzaG91bGQgbmV2ZXIgYmUgcnVuIHdoZW4gaW4gY2hlY2sgbm8gY2hhbmdlcyBtb2RlLiIpO2NvbnN0IGk9bnVsbCE9bz9vOi0xLGE9ZS5sZW5ndGgtMTtsZXQgcj0wO2ZvcihsZXQgcz12b2lkIDAhPT1vPzY1NTM1JnRbMThdOjA7czxhO3MrKylpZigibnVtYmVyIj09dHlwZW9mIGVbcysxXSl7aWYocj1lW3NdLG51bGwhPW8mJnI+PW8pYnJlYWt9ZWxzZSBlW3NdPDAmJih0WzE4XSs9NjU1MzYpLChyPGl8fC0xPT1pKSYmKHRhKHQsbixlLHMpLHRbMThdPSg0Mjk0OTAxNzYwJnRbMThdKStzKzIpLHMrK31mdW5jdGlvbiB0YSh0LGUsbixvKXtjb25zdCBpPW5bb108MCxhPW5bbysxXSxyPXRbaT8tbltvXTpuW29dXTtpZihpKXtpZih0WzJdPj4xMTx0WzE4XT4+MTYmJigzJnRbMl0pPT09ZSl7dFsyXSs9MjA0OCxxbyg0LHIsYSk7dHJ5e2EuY2FsbChyKX1maW5hbGx5e3FvKDUscixhKX19fWVsc2V7cW8oNCxyLGEpO3RyeXthLmNhbGwocil9ZmluYWxseXtxbyg1LHIsYSl9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgZWE9LTE7Y2xhc3MgbmF7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuZmFjdG9yeT10LHRoaXMucmVzb2x2aW5nPSExLG5nRGV2TW9kZSYmaG4odCwiRmFjdG9yeSBub3Qgc3BlY2lmaWVkIiksbmdEZXZNb2RlJiZsbih0eXBlb2YgdCwiZnVuY3Rpb24iLCJFeHBlY3RlZCBmYWN0b3J5IGZ1bmN0aW9uLiIpLHRoaXMuY2FuU2VlVmlld1Byb3ZpZGVycz1lLHRoaXMuaW5qZWN0SW1wbD1ufX1mdW5jdGlvbiBvYSh0KXtsZXQgZT0iIjtyZXR1cm4gMSZ0JiYoZSs9InxUZXh0IiksMiZ0JiYoZSs9InxFbGVtZW50IiksNCZ0JiYoZSs9InxDb250YWluZXIiKSw4JnQmJihlKz0ifEVsZW1lbnRDb250YWluZXIiKSwxNiZ0JiYoZSs9InxQcm9qZWN0aW9uIiksMzImdCYmKGUrPSJ8SWN1Q29udGFpbmVyIiksNjQmdCYmKGUrPSJ8UGxhY2Vob2xkZXIiKSxlLmxlbmd0aD4wP2Uuc3Vic3RyaW5nKDEpOmV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBpYSh0LGUsbil7aG4odCwic2hvdWxkIGJlIGNhbGxlZCB3aXRoIGEgVE5vZGUiKSwwPT0odC50eXBlJmUpJiZibihufHxgRXhwZWN0ZWQgWyR7b2EoZSl9XSBidXQgZ290ICR7b2EodC50eXBlKX0uYCl9ZnVuY3Rpb24gYWEodCxlLG4pe2NvbnN0IG89JG8odCk7bGV0IGk9MDtmb3IoO2k8bi5sZW5ndGg7KXtjb25zdCBhPW5baV07aWYoIm51bWJlciI9PXR5cGVvZiBhKXtpZigwIT09YSlicmVhaztpKys7Y29uc3Qgcj1uW2krK10scz1uW2krK10sbD1uW2krK107bmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJTZXRBdHRyaWJ1dGUrKyxvP3Quc2V0QXR0cmlidXRlKGUscyxsLHIpOmUuc2V0QXR0cmlidXRlTlMocixzLGwpfWVsc2V7Y29uc3Qgcj1hLHM9blsrK2ldO25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0QXR0cmlidXRlKyssc2Eocik/byYmdC5zZXRQcm9wZXJ0eShlLHIscyk6bz90LnNldEF0dHJpYnV0ZShlLHIscyk6ZS5zZXRBdHRyaWJ1dGUocixzKSxpKyt9fXJldHVybiBpfWZ1bmN0aW9uIHJhKHQpe3JldHVybiAzPT09dHx8ND09PXR8fDY9PT10fWZ1bmN0aW9uIHNhKHQpe3JldHVybiA2ND09PXQuY2hhckNvZGVBdCgwKX1mdW5jdGlvbiBsYSh0LGUpe2lmKG51bGw9PT1lfHwwPT09ZS5sZW5ndGgpO2Vsc2UgaWYobnVsbD09PXR8fDA9PT10Lmxlbmd0aCl0PWUuc2xpY2UoKTtlbHNle2xldCBuPS0xO2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7bysrKXtjb25zdCBpPWVbb107Im51bWJlciI9PXR5cGVvZiBpP249aTowPT09bnx8Y2EodCxuLGksbnVsbCwtMT09PW58fDI9PT1uP2VbKytvXTpudWxsKX19cmV0dXJuIHR9ZnVuY3Rpb24gY2EodCxlLG4sbyxpKXtsZXQgYT0wLHI9dC5sZW5ndGg7aWYoLTE9PT1lKXI9LTE7ZWxzZSBmb3IoO2E8dC5sZW5ndGg7KXtjb25zdCBuPXRbYSsrXTtpZigibnVtYmVyIj09dHlwZW9mIG4pe2lmKG49PT1lKXtyPS0xO2JyZWFrfWlmKG4+ZSl7cj1hLTE7YnJlYWt9fX1mb3IoO2E8dC5sZW5ndGg7KXtjb25zdCBlPXRbYV07aWYoIm51bWJlciI9PXR5cGVvZiBlKWJyZWFrO2lmKGU9PT1uKXtpZihudWxsPT09bylyZXR1cm4gdm9pZChudWxsIT09aSYmKHRbYSsxXT1pKSk7aWYobz09PXRbYSsxXSlyZXR1cm4gdm9pZCh0W2ErMl09aSl9YSsrLG51bGwhPT1vJiZhKyssbnVsbCE9PWkmJmErK30tMSE9PXImJih0LnNwbGljZShyLDAsZSksYT1yKzEpLHQuc3BsaWNlKGErKywwLG4pLG51bGwhPT1vJiZ0LnNwbGljZShhKyssMCxvKSxudWxsIT09aSYmdC5zcGxpY2UoYSsrLDAsaSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGRhKHQpe3JldHVybiB0IT09ZWF9ZnVuY3Rpb24gcGEodCl7cmV0dXJuIG5nRGV2TW9kZSYmYW4odCwiTnVtYmVyIGV4cGVjdGVkIiksbmdEZXZNb2RlJiZjbih0LC0xLCJOb3QgYSB2YWxpZCBzdGF0ZS4iKSxuZ0Rldk1vZGUmJmZuKDMyNzY3JnQsZ28sIlBhcmVudCBpbmplY3RvciBtdXN0IGJlIHBvaW50aW5nIHBhc3QgSEVBREVSX09GRlNFVC4iKSwzMjc2NyZ0fWZ1bmN0aW9uIG1hKHQsZSl7bGV0IG49KGZ1bmN0aW9uIG8odCl7cmV0dXJuIHQ+PjE2fSkodCksaT1lO2Zvcig7bj4wOylpPWlbMTVdLG4tLTtyZXR1cm4gaX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IHVhPSEwO2Z1bmN0aW9uIGZhKHQpe2NvbnN0IGU9dWE7cmV0dXJuIHVhPXQsZX1sZXQgZ2E9MDtmdW5jdGlvbiBoYSh0LGUpe2NvbnN0IG49eWEodCxlKTtpZigtMSE9PW4pcmV0dXJuIG47Y29uc3Qgbz1lWzFdO28uZmlyc3RDcmVhdGVQYXNzJiYodC5pbmplY3RvckluZGV4PWUubGVuZ3RoLGJhKG8uZGF0YSx0KSxiYShlLG51bGwpLGJhKG8uYmx1ZXByaW50LG51bGwpKTtjb25zdCBpPV9hKHQsZSksYT10LmluamVjdG9ySW5kZXg7aWYoZGEoaSkpe2NvbnN0IHQ9cGEoaSksbj1tYShpLGUpLG89blsxXS5kYXRhO2ZvcihsZXQgaT0wO2k8ODtpKyspZVthK2ldPW5bdCtpXXxvW3QraV19cmV0dXJuIGVbYSs4XT1pLGF9ZnVuY3Rpb24gYmEodCxlKXt0LnB1c2goMCwwLDAsMCwwLDAsMCwwLGUpfWZ1bmN0aW9uIHlhKHQsZSl7cmV0dXJuLTE9PT10LmluamVjdG9ySW5kZXh8fHQucGFyZW50JiZ0LnBhcmVudC5pbmplY3RvckluZGV4PT09dC5pbmplY3RvckluZGV4fHxudWxsPT09ZVt0LmluamVjdG9ySW5kZXgrOF0/LTE6KG5nRGV2TW9kZSYmX24oZSx0LmluamVjdG9ySW5kZXgpLHQuaW5qZWN0b3JJbmRleCl9ZnVuY3Rpb24gX2EodCxlKXtpZih0LnBhcmVudCYmLTEhPT10LnBhcmVudC5pbmplY3RvckluZGV4KXJldHVybiB0LnBhcmVudC5pbmplY3RvckluZGV4O2xldCBuPTAsbz1udWxsLGk9ZTtmb3IoO251bGwhPT1pOyl7Y29uc3QgdD1pWzFdLGU9dC50eXBlO2lmKDI9PT1lPyhuZ0Rldk1vZGUmJmhuKHQuZGVjbFROb2RlLCJFbWJlZGRlZCBUTm9kZXMgc2hvdWxkIGhhdmUgZGVjbGFyYXRpb24gcGFyZW50cy4iKSxvPXQuZGVjbFROb2RlKToxPT09ZT9vPWlbNl06KG5nRGV2TW9kZSYmbG4odC50eXBlLDAsIlJvb3QgdHlwZSBleHBlY3RlZCIpLG89bnVsbCksbnVsbD09PW8pcmV0dXJuIGVhO2lmKG5nRGV2TW9kZSYmbyYmT28obyxpWzE1XSksbisrLGk9aVsxNV0sLTEhPT1vLmluamVjdG9ySW5kZXgpcmV0dXJuIG8uaW5qZWN0b3JJbmRleHxuPDwxNn1yZXR1cm4gZWF9ZnVuY3Rpb24gQ2EodCxlLG4peyEoZnVuY3Rpb24gbyh0LGUsbil7bGV0IG87bmdEZXZNb2RlJiZsbihlLmZpcnN0Q3JlYXRlUGFzcywhMCwiZXhwZWN0ZWQgZmlyc3RDcmVhdGVQYXNzIHRvIGJlIHRydWUiKSwic3RyaW5nIj09dHlwZW9mIG4/bz1uLmNoYXJDb2RlQXQoMCl8fDA6bi5oYXNPd25Qcm9wZXJ0eShRbikmJihvPW5bUW5dKSxudWxsPT1vJiYobz1uW1FuXT1nYSsrKTtjb25zdCBpPTI1NSZvO2UuZGF0YVt0KyhpPj41KV18PTE8PGl9KSh0LGUsbil9ZnVuY3Rpb24gTWEodCxlLG4pe2lmKG4mRW4uT3B0aW9uYWwpcmV0dXJuIHQ7b24oZSwiTm9kZUluamVjdG9yIil9ZnVuY3Rpb24gdmEodCxlLG4sbyl7aWYobiZFbi5PcHRpb25hbCYmdm9pZCAwPT09byYmKG89bnVsbCksMD09KG4mKEVuLlNlbGZ8RW4uSG9zdCkpKXtjb25zdCBpPXRbOV0sYT1Bbih2b2lkIDApO3RyeXtyZXR1cm4gaT9pLmdldChlLG8sbiZFbi5PcHRpb25hbCk6VG4oZSxvLG4mRW4uT3B0aW9uYWwpfWZpbmFsbHl7QW4oYSl9fXJldHVybiBNYShvLGUsbil9ZnVuY3Rpb24geGEodCxlLG4sbz1Fbi5EZWZhdWx0LGkpe2lmKG51bGwhPT10KXtjb25zdCBhPShmdW5jdGlvbiBhKHQpe2lmKG5nRGV2TW9kZSYmaG4odCwidG9rZW4gbXVzdCBiZSBkZWZpbmVkIiksInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0LmNoYXJDb2RlQXQoMCl8fDA7Y29uc3QgZT10Lmhhc093blByb3BlcnR5KFFuKT90W1FuXTp2b2lkIDA7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP2U+PTA/MjU1JmU6KG5nRGV2TW9kZSYmbG4oZSwtMSwiRXhwZWN0aW5nIHRvIGdldCBTcGVjaWFsIEluamVjdG9yIElkIiksUGEpOmV9KShuKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYSl7aWYoIUhpKGUsdCxvKSlyZXR1cm4gbyZFbi5Ib3N0P01hKGksbixvKTp2YShlLG4sbyxpKTt0cnl7Y29uc3QgdD1hKG8pO2lmKG51bGwhPXR8fG8mRW4uT3B0aW9uYWwpcmV0dXJuIHQ7b24obil9ZmluYWxseXtqaSgpfX1lbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgYSl7bGV0IGk9bnVsbCxyPXlhKHQsZSkscz1lYSxsPW8mRW4uSG9zdD9lWzE2XVs2XTpudWxsO2ZvcigoLTE9PT1yfHxvJkVuLlNraXBTZWxmKSYmKHM9LTE9PT1yP19hKHQsZSk6ZVtyKzhdLHMhPT1lYSYmRWEobywhMSk/KGk9ZVsxXSxyPXBhKHMpLGU9bWEocyxlKSk6cj0tMSk7LTEhPT1yOyl7bmdEZXZNb2RlJiZIbyhlLHIpO2NvbnN0IHQ9ZVsxXTtpZihuZ0Rldk1vZGUmJk9vKHQuZGF0YVtyKzhdLGUpLERhKGEscix0LmRhdGEpKXtjb25zdCB0PXdhKHIsZSxuLGksbyxsKTtpZih0IT09T2EpcmV0dXJuIHR9cz1lW3IrOF0scyE9PWVhJiZFYShvLGVbMV0uZGF0YVtyKzhdPT09bCkmJkRhKGEscixlKT8oaT10LHI9cGEocyksZT1tYShzLGUpKTpyPS0xfX19cmV0dXJuIHZhKGUsbixvLGkpfWNvbnN0IE9hPXt9O2Z1bmN0aW9uIFBhKCl7cmV0dXJuIG5ldyBSYShiaSgpLGZpKCkpfWZ1bmN0aW9uIHdhKHQsZSxuLG8saSxhKXtjb25zdCByPWVbMV0scz1yLmRhdGFbdCs4XSxsPWthKHMscixuLG51bGw9PW8/TW8ocykmJnVhOm8hPXImJjAhPSgzJnMudHlwZSksaSZFbi5Ib3N0JiZhPT09cyk7cmV0dXJuIG51bGwhPT1sP1NhKGUscixsLHMpOk9hfWZ1bmN0aW9uIGthKHQsZSxuLG8saSl7Y29uc3QgYT10LnByb3ZpZGVySW5kZXhlcyxyPWUuZGF0YSxzPTEwNDg1NzUmYSxsPXQuZGlyZWN0aXZlU3RhcnQsYz1hPj4yMCxkPWk/cytjOnQuZGlyZWN0aXZlRW5kO2ZvcihsZXQgdD1vP3M6cytjO3Q8ZDt0Kyspe2NvbnN0IGU9clt0XTtpZih0PGwmJm49PT1lfHx0Pj1sJiZlLnR5cGU9PT1uKXJldHVybiB0fWlmKGkpe2NvbnN0IHQ9cltsXTtpZih0JiZ4byh0KSYmdC50eXBlPT09bilyZXR1cm4gbH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBTYSh0LGUsbixvKXtsZXQgaT10W25dO2NvbnN0IGE9ZS5kYXRhO2lmKChmdW5jdGlvbiByKHQpe3JldHVybiB0IGluc3RhbmNlb2YgbmF9KShpKSl7Y29uc3Qgcj1pO3IucmVzb2x2aW5nJiZlbih0bihhW25dKSk7Y29uc3Qgcz1mYShyLmNhblNlZVZpZXdQcm92aWRlcnMpO3IucmVzb2x2aW5nPSEwO2NvbnN0IGw9ci5pbmplY3RJbXBsP0FuKHIuaW5qZWN0SW1wbCk6bnVsbCxjPUhpKHQsbyxFbi5EZWZhdWx0KTtuZ0Rldk1vZGUmJmxuKGMsITAsIkJlY2F1c2UgZmxhZ3MgZG8gbm90IGNvbnRhaW4gYFNraXBTZWxmJyB3ZSBleHBlY3QgdGhpcyB0byBhbHdheXMgc3VjY2VlZC4iKTt0cnl7aT10W25dPXIuZmFjdG9yeSh2b2lkIDAsYSx0LG8pLGUuZmlyc3RDcmVhdGVQYXNzJiZuPj1vLmRpcmVjdGl2ZVN0YXJ0JiYobmdEZXZNb2RlJiYoZnVuY3Rpb24gcyh0KXt2b2lkIDAhPT10LnR5cGUmJm51bGwhPXQuc2VsZWN0b3JzJiZ2b2lkIDAhPT10LmlucHV0c3x8Ym4oIkV4cGVjdGVkIGEgRGlyZWN0aXZlRGVmL0NvbXBvbmVudERlZiBhbmQgdGhpcyBvYmplY3QgZG9lcyBub3Qgc2VlbSB0byBoYXZlIHRoZSBleHBlY3RlZCBzaGFwZS4iKX0pKGFbbl0pLCgKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIGwodCxlLG4pe25nRGV2TW9kZSYmQW8obik7Y29uc3R7bmdPbkNoYW5nZXM6byxuZ09uSW5pdDppLG5nRG9DaGVjazphfT1lLnR5cGUucHJvdG90eXBlO2lmKG8pe2NvbnN0IG89Vm8oZSk7KG4ucHJlT3JkZXJIb29rc3x8KG4ucHJlT3JkZXJIb29rcz1bXSkpLnB1c2godCxvKSwobi5wcmVPcmRlckNoZWNrSG9va3N8fChuLnByZU9yZGVyQ2hlY2tIb29rcz1bXSkpLnB1c2godCxvKX1pJiYobi5wcmVPcmRlckhvb2tzfHwobi5wcmVPcmRlckhvb2tzPVtdKSkucHVzaCgwLXQsaSksYSYmKChuLnByZU9yZGVySG9va3N8fChuLnByZU9yZGVySG9va3M9W10pKS5wdXNoKHQsYSksKG4ucHJlT3JkZXJDaGVja0hvb2tzfHwobi5wcmVPcmRlckNoZWNrSG9va3M9W10pKS5wdXNoKHQsYSkpfSkobixhW25dLGUpKX1maW5hbGx5e251bGwhPT1sJiZBbihsKSxmYShzKSxyLnJlc29sdmluZz0hMSxqaSgpfX1yZXR1cm4gaX1mdW5jdGlvbiBEYSh0LGUsbil7cmV0dXJuISEobltlKyh0Pj41KV0mMTw8dCl9ZnVuY3Rpb24gRWEodCxlKXtyZXR1cm4hKHQmRW4uU2VsZnx8dCZFbi5Ib3N0JiZlKX1jbGFzcyBSYXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3ROb2RlPXQsdGhpcy5fbFZpZXc9ZX1nZXQodCxlKXtyZXR1cm4geGEodGhpcy5fdE5vZGUsdGhpcy5fbFZpZXcsdCx2b2lkIDAsZSl9fWZ1bmN0aW9uIEFhKHQpe3JldHVybiBObigoKCk9Pntjb25zdCBlPXQucHJvdG90eXBlLmNvbnN0cnVjdG9yLG49ZVtKbl18fFRhKGUpLG89T2JqZWN0LnByb3RvdHlwZTtsZXQgaT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpLmNvbnN0cnVjdG9yO2Zvcig7aSYmaSE9PW87KXtjb25zdCB0PWlbSm5dfHxUYShpKTtpZih0JiZ0IT09bilyZXR1cm4gdDtpPU9iamVjdC5nZXRQcm90b3R5cGVPZihpKX1yZXR1cm4gdD0+bmV3IHR9KSl9ZnVuY3Rpb24gVGEodCl7cmV0dXJuIFhlKHQpPygpPT57Y29uc3QgZT1UYShaZSh0KSk7cmV0dXJuIGUmJmUoKX06Rm8odCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIE5hKHQpe3JldHVybihmdW5jdGlvbiBlKHQsbil7aWYobmdEZXZNb2RlJiZpYSh0LDE1KSxuZ0Rldk1vZGUmJmhuKHQsImV4cGVjdGluZyB0Tm9kZSIpLCJjbGFzcyI9PT1uKXJldHVybiB0LmNsYXNzZXM7aWYoInN0eWxlIj09PW4pcmV0dXJuIHQuc3R5bGVzO2NvbnN0IG89dC5hdHRycztpZihvKXtjb25zdCB0PW8ubGVuZ3RoO2xldCBlPTA7Zm9yKDtlPHQ7KXtjb25zdCBpPW9bZV07aWYocmEoaSkpYnJlYWs7aWYoMD09PWkpZSs9MjtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgaSlmb3IoZSsrO2U8dCYmInN0cmluZyI9PXR5cGVvZiBvW2VdOyllKys7ZWxzZXtpZihpPT09bilyZXR1cm4gb1tlKzFdO2UrPTJ9fX1yZXR1cm4gbnVsbH0pKGJpKCksdCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IHphPSJfX2Fubm90YXRpb25zX18iLElhPSJfX3BhcmFtZXRlcnNfXyIsSGE9Il9fcHJvcF9fbWV0YWRhdGFfXyI7ZnVuY3Rpb24gRmEodCxlLG4sbyxpKXtyZXR1cm4gTm4oKCgpPT57Y29uc3QgYT1MYShlKTtmdW5jdGlvbiByKC4uLnQpe2lmKHRoaXMgaW5zdGFuY2VvZiByKXJldHVybiBhLmNhbGwodGhpcywuLi50KSx0aGlzO2NvbnN0IGU9bmV3IHIoLi4udCk7cmV0dXJuIGZ1bmN0aW9uIG4oYSl7cmV0dXJuIGkmJmkoYSwuLi50KSwoYS5oYXNPd25Qcm9wZXJ0eSh6YSk/YVt6YV06T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsemEse3ZhbHVlOltdfSlbemFdKS5wdXNoKGUpLG8mJm8oYSksYX19cmV0dXJuIG4mJihyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4ucHJvdG90eXBlKSksci5wcm90b3R5cGUubmdNZXRhZGF0YU5hbWU9dCxyLmFubm90YXRpb25DbHM9cixyfSkpfWZ1bmN0aW9uIExhKHQpe3JldHVybiBmdW5jdGlvbiBlKC4uLm4pe2lmKHQpe2NvbnN0IGU9dCguLi5uKTtmb3IoY29uc3QgdCBpbiBlKXRoaXNbdF09ZVt0XX19fWZ1bmN0aW9uIEJhKHQsZSxuKXtyZXR1cm4gTm4oKCgpPT57Y29uc3Qgbz1MYShlKTtmdW5jdGlvbiBpKC4uLnQpe2lmKHRoaXMgaW5zdGFuY2VvZiBpKXJldHVybiBvLmFwcGx5KHRoaXMsdCksdGhpcztjb25zdCBlPW5ldyBpKC4uLnQpO3JldHVybiBuLmFubm90YXRpb249ZSxuO2Z1bmN0aW9uIG4odCxuLG8pe2NvbnN0IGk9dC5oYXNPd25Qcm9wZXJ0eShJYSk/dFtJYV06T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsSWEse3ZhbHVlOltdfSlbSWFdO2Zvcig7aS5sZW5ndGg8PW87KWkucHVzaChudWxsKTtyZXR1cm4oaVtvXT1pW29dfHxbXSkucHVzaChlKSx0fX1yZXR1cm4gbiYmKGkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpKSxpLnByb3RvdHlwZS5uZ01ldGFkYXRhTmFtZT10LGkuYW5ub3RhdGlvbkNscz1pLGl9KSl9ZnVuY3Rpb24gVmEodCxlLG4sbyl7cmV0dXJuIE5uKCgoKT0+e2NvbnN0IGk9TGEoZSk7ZnVuY3Rpb24gYSguLi50KXtpZih0aGlzIGluc3RhbmNlb2YgYSlyZXR1cm4gaS5hcHBseSh0aGlzLHQpLHRoaXM7Y29uc3QgZT1uZXcgYSguLi50KTtyZXR1cm4gZnVuY3Rpb24gbihpLGEpe2NvbnN0IHI9aS5jb25zdHJ1Y3RvcixzPXIuaGFzT3duUHJvcGVydHkoSGEpP3JbSGFdOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLEhhLHt2YWx1ZTp7fX0pW0hhXTtzW2FdPXMuaGFzT3duUHJvcGVydHkoYSkmJnNbYV18fFtdLHNbYV0udW5zaGlmdChlKSxvJiZvKGksYSwuLi50KX19cmV0dXJuIG4mJihhLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4ucHJvdG90eXBlKSksYS5wcm90b3R5cGUubmdNZXRhZGF0YU5hbWU9dCxhLmFubm90YXRpb25DbHM9YSxhfSkpfWNvbnN0IGphPShmdW5jdGlvbiBVYSgpe3JldHVybiBCYSgiQXR0cmlidXRlIiwodD0+KHthdHRyaWJ1dGVOYW1lOnQsX19OR19FTEVNRU5UX0lEX186KCk9Pk5hKHQpfSkpKX0pKCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBHYXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2Rlc2M9dCx0aGlzLm5nTWV0YWRhdGFOYW1lPSJJbmplY3Rpb25Ub2tlbiIsdGhpcy7JtXByb3Y9dm9pZCAwLCJudW1iZXIiPT10eXBlb2YgZT8oKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZtbihlLDAsIk9ubHkgbmVnYXRpdmUgbnVtYmVycyBhcmUgc3VwcG9ydGVkIGhlcmUiKSx0aGlzLl9fTkdfRUxFTUVOVF9JRF9fPWUpOnZvaWQgMCE9PWUmJih0aGlzLsm1cHJvdj1Nbih7dG9rZW46dGhpcyxwcm92aWRlZEluOmUucHJvdmlkZWRJbnx8InJvb3QiLGZhY3Rvcnk6ZS5mYWN0b3J5fSkpfXRvU3RyaW5nKCl7cmV0dXJuYEluamVjdGlvblRva2VuICR7dGhpcy5fZGVzY31gfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbmV3IEdhKCJBbmFseXplRm9yRW50cnlDb21wb25lbnRzIik7Y2xhc3MgV2F7fWNvbnN0IFlhPVZhKCJDb250ZW50Q2hpbGRyZW4iLCgodCxlPXt9KT0+T2JqZWN0LmFzc2lnbih7c2VsZWN0b3I6dCxmaXJzdDohMSxpc1ZpZXdRdWVyeTohMSxkZXNjZW5kYW50czohMSxlbWl0RGlzdGluY3RDaGFuZ2VzT25seTohMH0sZSkpLFdhKSxxYT1WYSgiQ29udGVudENoaWxkIiwoKHQsZT17fSk9Pk9iamVjdC5hc3NpZ24oe3NlbGVjdG9yOnQsZmlyc3Q6ITAsaXNWaWV3UXVlcnk6ITEsZGVzY2VuZGFudHM6ITB9LGUpKSxXYSk7VmEoIlZpZXdDaGlsZHJlbiIsKCh0LGU9e30pPT5PYmplY3QuYXNzaWduKHtzZWxlY3Rvcjp0LGZpcnN0OiExLGlzVmlld1F1ZXJ5OiEwLGRlc2NlbmRhbnRzOiEwLGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiEwfSxlKSksV2EpO2NvbnN0IFphPVZhKCJWaWV3Q2hpbGQiLCgodCxlKT0+T2JqZWN0LmFzc2lnbih7c2VsZWN0b3I6dCxmaXJzdDohMCxpc1ZpZXdRdWVyeTohMCxkZXNjZW5kYW50czohMH0sZSkpLFdhKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCnZhciBYYSxLYTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIEphKHQpe2NvbnN0IGU9am4ubmc7aWYoZSYmZS7JtWNvbXBpbGVyRmFjYWRlKXJldHVybiBlLsm1Y29tcGlsZXJGYWNhZGU7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSl7Y29uc29sZS5lcnJvcihgSklUIGNvbXBpbGF0aW9uIGZhaWxlZCBmb3IgJHt0LmtpbmR9YCx0LnR5cGUpO2xldCBlPWBUaGUgJHt0LmtpbmR9ICcke3QudHlwZS5uYW1lfScgbmVlZHMgdG8gYmUgY29tcGlsZWQgdXNpbmcgdGhlIEpJVCBjb21waWxlciwgYnV0ICdAYW5ndWxhci9jb21waWxlcicgaXMgbm90IGF2YWlsYWJsZS5cblxuYDt0aHJvdyAxPT09dC51c2FnZT8oZSs9YFRoZSAke3Qua2luZH0gaXMgcGFydCBvZiBhIGxpYnJhcnkgdGhhdCBoYXMgYmVlbiBwYXJ0aWFsbHkgY29tcGlsZWQuXG5gLGUrPSJIb3dldmVyLCB0aGUgQW5ndWxhciBMaW5rZXIgaGFzIG5vdCBwcm9jZXNzZWQgdGhlIGxpYnJhcnkgc3VjaCB0aGF0IEpJVCBjb21waWxhdGlvbiBpcyB1c2VkIGFzIGZhbGxiYWNrLlxuIixlKz0iXG4iLGUrPSJJZGVhbGx5LCB0aGUgbGlicmFyeSBpcyBwcm9jZXNzZWQgdXNpbmcgdGhlIEFuZ3VsYXIgTGlua2VyIHRvIGJlY29tZSBmdWxseSBBT1QgY29tcGlsZWQuXG4iKTplKz0iSklUIGNvbXBpbGF0aW9uIGlzIGRpc2NvdXJhZ2VkIGZvciBwcm9kdWN0aW9uIHVzZS1jYXNlcyEgQ29uc2lkZXIgdXNpbmcgQU9UIG1vZGUgaW5zdGVhZC5cbiIsZSs9IkFsdGVybmF0aXZlbHksIHRoZSBKSVQgY29tcGlsZXIgc2hvdWxkIGJlIGxvYWRlZCBieSBib290c3RyYXBwaW5nIHVzaW5nICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyLWR5bmFtaWMnIG9yICdAYW5ndWxhci9wbGF0Zm9ybS1zZXJ2ZXInLFxuIixlKz0ib3IgbWFudWFsbHkgcHJvdmlkZSB0aGUgY29tcGlsZXIgd2l0aCAnaW1wb3J0IFwiQGFuZ3VsYXIvY29tcGlsZXJcIjsnIGJlZm9yZSBib290c3RyYXBwaW5nLiIsbmV3IEVycm9yKGUpfXRocm93IG5ldyBFcnJvcigiSklUIGNvbXBpbGVyIHVuYXZhaWxhYmxlIil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLyEoZnVuY3Rpb24odCl7dFt0LkRpcmVjdGl2ZT0wXT0iRGlyZWN0aXZlIix0W3QuQ29tcG9uZW50PTFdPSJDb21wb25lbnQiLHRbdC5JbmplY3RhYmxlPTJdPSJJbmplY3RhYmxlIix0W3QuUGlwZT0zXT0iUGlwZSIsdFt0Lk5nTW9kdWxlPTRdPSJOZ01vZHVsZSJ9KShYYXx8KFhhPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5FbXVsYXRlZD0wXT0iRW11bGF0ZWQiLHRbdC5Ob25lPTJdPSJOb25lIix0W3QuU2hhZG93RG9tPTNdPSJTaGFkb3dEb20ifSkoS2F8fChLYT17fSkpO2NvbnN0IFFhPUZ1bmN0aW9uO2Z1bmN0aW9uICRhKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIHRyKHQsZSl7dm9pZCAwPT09ZSYmKGU9dCk7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2xldCBvPXRbbl07QXJyYXkuaXNBcnJheShvKT8oZT09PXQmJihlPXQuc2xpY2UoMCxuKSksdHIobyxlKSk6ZSE9PXQmJmUucHVzaChvKX1yZXR1cm4gZX1mdW5jdGlvbiBlcih0LGUpe3QuZm9yRWFjaCgodD0+QXJyYXkuaXNBcnJheSh0KT9lcih0LGUpOmUodCkpKX1mdW5jdGlvbiBucih0LGUsbil7ZT49dC5sZW5ndGg/dC5wdXNoKG4pOnQuc3BsaWNlKGUsMCxuKX1mdW5jdGlvbiBvcih0LGUpe3JldHVybiBlPj10Lmxlbmd0aC0xP3QucG9wKCk6dC5zcGxpY2UoZSwxKVswXX1mdW5jdGlvbiBpcih0LGUpe2NvbnN0IG49W107Zm9yKGxldCBvPTA7bzx0O28rKyluLnB1c2goZSk7cmV0dXJuIG59ZnVuY3Rpb24gYXIodCxlLG4pe2xldCBvPXNyKHQsZSk7cmV0dXJuIG8+PTA/dFsxfG9dPW46KG89fm8sKGZ1bmN0aW9uIGkodCxlLG4sbyl7bmdEZXZNb2RlJiZ1bihlLHQubGVuZ3RoLCJDYW4ndCBpbnNlcnQgcGFzdCBhcnJheSBlbmQuIik7bGV0IGk9dC5sZW5ndGg7aWYoaT09ZSl0LnB1c2gobixvKTtlbHNlIGlmKDE9PT1pKXQucHVzaChvLHRbMF0pLHRbMF09bjtlbHNle2ZvcihpLS0sdC5wdXNoKHRbaS0xXSx0W2ldKTtpPmU7KXRbaV09dFtpLTJdLGktLTt0W2VdPW4sdFtlKzFdPW99fSkodCxvLGUsbikpLG99ZnVuY3Rpb24gcnIodCxlKXtjb25zdCBuPXNyKHQsZSk7aWYobj49MClyZXR1cm4gdFsxfG5dfWZ1bmN0aW9uIHNyKHQsZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCxlLG8pe25nRGV2TW9kZSYmbG4oQXJyYXkuaXNBcnJheSh0KSwhMCwiRXhwZWN0aW5nIGFuIGFycmF5Iik7bGV0IGk9MCxhPXQubGVuZ3RoPj5vO2Zvcig7YSE9PWk7KXtjb25zdCBuPWkrKGEtaT4+MSkscj10W248PG9dO2lmKGU9PT1yKXJldHVybiBuPDxvO3I+ZT9hPW46aT1uKzF9cmV0dXJufihhPDxvKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0LGUsMSl9Y29uc3QgbHI9L15mdW5jdGlvblxzK1xTK1woXClccyp7W1xzXFNdK1wuYXBwbHlcKHRoaXMsXHMqKGFyZ3VtZW50c3woPzpbXigpXStcKFxbXF0sKT9bXigpXStcKGFyZ3VtZW50c1wpKVwpLyxjcj0vXmNsYXNzXHMrW0EtWmEtelxkJF9dKlxzKmV4dGVuZHNccytbXntdK3svLGRyPS9eY2xhc3NccytbQS1aYS16XGQkX10qXHMqZXh0ZW5kc1xzK1tee10re1tcc1xTXSpjb25zdHJ1Y3RvclxzKlwoLyxwcj0vXmNsYXNzXHMrW0EtWmEtelxkJF9dKlxzKmV4dGVuZHNccytbXntdK3tbXHNcU10qY29uc3RydWN0b3JccypcKFwpXHMqe1xzKnN1cGVyXChcLlwuXC5hcmd1bWVudHNcKS87Y2xhc3MgbXJ7Y29uc3RydWN0b3IodCl7dGhpcy5fcmVmbGVjdD10fHxqbi5SZWZsZWN0fWlzUmVmbGVjdGlvbkVuYWJsZWQoKXtyZXR1cm4hMH1mYWN0b3J5KHQpe3JldHVybiguLi5lKT0+bmV3IHQoLi4uZSl9X3ppcFR5cGVzQW5kQW5ub3RhdGlvbnModCxlKXtsZXQgbjtuPWlyKHZvaWQgMD09PXQ/ZS5sZW5ndGg6dC5sZW5ndGgpO2ZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKW5bb109dm9pZCAwPT09dD9bXTp0W29dJiZ0W29dIT1PYmplY3Q/W3Rbb11dOltdLGUmJm51bGwhPWVbb10mJihuW29dPW5bb10uY29uY2F0KGVbb10pKTtyZXR1cm4gbn1fb3duUGFyYW1ldGVycyh0LGUpe2lmKChmdW5jdGlvbiBuKHQpe3JldHVybiBsci50ZXN0KHQpfHxwci50ZXN0KHQpfHxjci50ZXN0KHQpJiYhZHIudGVzdCh0KX0pKHQudG9TdHJpbmcoKSkpcmV0dXJuIG51bGw7aWYodC5wYXJhbWV0ZXJzJiZ0LnBhcmFtZXRlcnMhPT1lLnBhcmFtZXRlcnMpcmV0dXJuIHQucGFyYW1ldGVycztjb25zdCBvPXQuY3RvclBhcmFtZXRlcnM7aWYobyYmbyE9PWUuY3RvclBhcmFtZXRlcnMpe2NvbnN0IHQ9ImZ1bmN0aW9uIj09dHlwZW9mIG8/bygpOm8sZT10Lm1hcCgodD0+dCYmdC50eXBlKSksbj10Lm1hcCgodD0+dCYmdXIodC5kZWNvcmF0b3JzKSkpO3JldHVybiB0aGlzLl96aXBUeXBlc0FuZEFubm90YXRpb25zKGUsbil9Y29uc3QgaT10Lmhhc093blByb3BlcnR5KElhKSYmdFtJYV0sYT10aGlzLl9yZWZsZWN0JiZ0aGlzLl9yZWZsZWN0LmdldE93bk1ldGFkYXRhJiZ0aGlzLl9yZWZsZWN0LmdldE93bk1ldGFkYXRhKCJkZXNpZ246cGFyYW10eXBlcyIsdCk7cmV0dXJuIGF8fGk/dGhpcy5femlwVHlwZXNBbmRBbm5vdGF0aW9ucyhhLGkpOmlyKHQubGVuZ3RoKX1wYXJhbWV0ZXJzKHQpe2lmKCEkYSh0KSlyZXR1cm5bXTtjb25zdCBlPWZyKHQpO2xldCBuPXRoaXMuX293blBhcmFtZXRlcnModCxlKTtyZXR1cm4gbnx8ZT09PU9iamVjdHx8KG49dGhpcy5wYXJhbWV0ZXJzKGUpKSxufHxbXX1fb3duQW5ub3RhdGlvbnModCxlKXtpZih0LmFubm90YXRpb25zJiZ0LmFubm90YXRpb25zIT09ZS5hbm5vdGF0aW9ucyl7bGV0IGU9dC5hbm5vdGF0aW9ucztyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmZS5hbm5vdGF0aW9ucyYmKGU9ZS5hbm5vdGF0aW9ucyksZX1yZXR1cm4gdC5kZWNvcmF0b3JzJiZ0LmRlY29yYXRvcnMhPT1lLmRlY29yYXRvcnM/dXIodC5kZWNvcmF0b3JzKTp0Lmhhc093blByb3BlcnR5KHphKT90W3phXTpudWxsfWFubm90YXRpb25zKHQpe2lmKCEkYSh0KSlyZXR1cm5bXTtjb25zdCBlPWZyKHQpLG49dGhpcy5fb3duQW5ub3RhdGlvbnModCxlKXx8W107cmV0dXJuKGUhPT1PYmplY3Q/dGhpcy5hbm5vdGF0aW9ucyhlKTpbXSkuY29uY2F0KG4pfV9vd25Qcm9wTWV0YWRhdGEodCxlKXtpZih0LnByb3BNZXRhZGF0YSYmdC5wcm9wTWV0YWRhdGEhPT1lLnByb3BNZXRhZGF0YSl7bGV0IGU9dC5wcm9wTWV0YWRhdGE7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUucHJvcE1ldGFkYXRhJiYoZT1lLnByb3BNZXRhZGF0YSksZX1pZih0LnByb3BEZWNvcmF0b3JzJiZ0LnByb3BEZWNvcmF0b3JzIT09ZS5wcm9wRGVjb3JhdG9ycyl7Y29uc3QgZT10LnByb3BEZWNvcmF0b3JzLG49e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goKHQ9PntuW3RdPXVyKGVbdF0pfSkpLG59cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoSGEpP3RbSGFdOm51bGx9cHJvcE1ldGFkYXRhKHQpe2lmKCEkYSh0KSlyZXR1cm57fTtjb25zdCBlPWZyKHQpLG49e307aWYoZSE9PU9iamVjdCl7Y29uc3QgdD10aGlzLnByb3BNZXRhZGF0YShlKTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChlPT57bltlXT10W2VdfSkpfWNvbnN0IG89dGhpcy5fb3duUHJvcE1ldGFkYXRhKHQsZSk7cmV0dXJuIG8mJk9iamVjdC5rZXlzKG8pLmZvckVhY2goKHQ9Pntjb25zdCBlPVtdO24uaGFzT3duUHJvcGVydHkodCkmJmUucHVzaCguLi5uW3RdKSxlLnB1c2goLi4ub1t0XSksblt0XT1lfSkpLG59b3duUHJvcE1ldGFkYXRhKHQpe3JldHVybiAkYSh0KSYmdGhpcy5fb3duUHJvcE1ldGFkYXRhKHQsZnIodCkpfHx7fX1oYXNMaWZlY3ljbGVIb29rKHQsZSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBRYSYmZSBpbiB0LnByb3RvdHlwZX1ndWFyZHModCl7cmV0dXJue319Z2V0dGVyKHQpe3JldHVybiBuZXcgRnVuY3Rpb24oIm8iLCJyZXR1cm4gby4iK3QrIjsiKX1zZXR0ZXIodCl7cmV0dXJuIG5ldyBGdW5jdGlvbigibyIsInYiLCJyZXR1cm4gby4iK3QrIiA9IHY7Iil9bWV0aG9kKHQpe3JldHVybiBuZXcgRnVuY3Rpb24oIm8iLCJhcmdzIixgaWYgKCFvLiR7dH0pIHRocm93IG5ldyBFcnJvcignIiR7dH0iIGlzIHVuZGVmaW5lZCcpO1xuICAgICAgICByZXR1cm4gby4ke3R9LmFwcGx5KG8sIGFyZ3MpO2ApfWltcG9ydFVyaSh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJnQuZmlsZVBhdGg/dC5maWxlUGF0aDpgLi8ke0dlKHQpfWB9cmVzb3VyY2VVcmkodCl7cmV0dXJuYC4vJHtHZSh0KX1gfXJlc29sdmVJZGVudGlmaWVyKHQsZSxuLG8pe3JldHVybiBvfXJlc29sdmVFbnVtKHQsZSl7cmV0dXJuIHRbZV19fWZ1bmN0aW9uIHVyKHQpe3JldHVybiB0P3QubWFwKCh0PT5uZXcoMCx0LnR5cGUuYW5ub3RhdGlvbkNscykoLi4udC5hcmdzP3QuYXJnczpbXSkpKTpbXX1mdW5jdGlvbiBmcih0KXtjb25zdCBlPXQucHJvdG90eXBlP09iamVjdC5nZXRQcm90b3R5cGVPZih0LnByb3RvdHlwZSk6bnVsbDtyZXR1cm4oZT9lLmNvbnN0cnVjdG9yOm51bGwpfHxPYmplY3R9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IGdyPXt9LGhyPS9cbi9nbSxicj0iX19zb3VyY2UiLHlyPWplKHtwcm92aWRlOlN0cmluZyx1c2VWYWx1ZTpqZX0pO2xldCBfcjtmdW5jdGlvbiBDcih0KXtjb25zdCBlPV9yO3JldHVybiBfcj10LGV9ZnVuY3Rpb24gTXIodCxlPUVuLkRlZmF1bHQpe2lmKHZvaWQgMD09PV9yKXRocm93IG5ldyBFcnJvcigiaW5qZWN0KCkgbXVzdCBiZSBjYWxsZWQgZnJvbSBhbiBpbmplY3Rpb24gY29udGV4dCIpO3JldHVybiBudWxsPT09X3I/VG4odCx2b2lkIDAsZSk6X3IuZ2V0KHQsZSZFbi5PcHRpb25hbD9udWxsOnZvaWQgMCxlKX1mdW5jdGlvbiB2cih0LGU9RW4uRGVmYXVsdCl7cmV0dXJuKChmdW5jdGlvbiBuKCl7cmV0dXJuIFJufSkoKXx8TXIpKFplKHQpLGUpfWZ1bmN0aW9uIHhyKHQpe2NvbnN0IGU9bmdEZXZNb2RlP2BUaGlzIGNvbnN0cnVjdG9yIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggQW5ndWxhciBEZXBlbmRlbmN5IEluamVjdGlvbiBiZWNhdXNlIGl0cyBkZXBlbmRlbmN5IGF0IGluZGV4ICR7dH0gb2YgdGhlIHBhcmFtZXRlciBsaXN0IGlzIGludmFsaWQuXG5UaGlzIGNhbiBoYXBwZW4gaWYgdGhlIGRlcGVuZGVuY3kgdHlwZSBpcyBhIHByaW1pdGl2ZSBsaWtlIGEgc3RyaW5nIG9yIGlmIGFuIGFuY2VzdG9yIG9mIHRoaXMgY2xhc3MgaXMgbWlzc2luZyBhbiBBbmd1bGFyIGRlY29yYXRvci5cblxuUGxlYXNlIGNoZWNrIHRoYXQgMSkgdGhlIHR5cGUgZm9yIHRoZSBwYXJhbWV0ZXIgYXQgaW5kZXggJHt0fSBpcyBjb3JyZWN0IGFuZCAyKSB0aGUgY29ycmVjdCBBbmd1bGFyIGRlY29yYXRvcnMgYXJlIGRlZmluZWQgZm9yIHRoaXMgY2xhc3MgYW5kIGl0cyBhbmNlc3RvcnMuYDoiaW52YWxpZCI7dGhyb3cgbmV3IEVycm9yKGUpfWNvbnN0IE9yPXZyO2Z1bmN0aW9uIFByKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IG89WmUodFtuXSk7aWYoQXJyYXkuaXNBcnJheShvKSl7aWYoMD09PW8ubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiQXJndW1lbnRzIGFycmF5IG11c3QgaGF2ZSBhcmd1bWVudHMuIik7bGV0IHQsbj1Fbi5EZWZhdWx0O2ZvcihsZXQgZT0wO2U8by5sZW5ndGg7ZSsrKXtjb25zdCBpPW9bZV0sYT1pLl9fTkdfRElfRkxBR19fOyJudW1iZXIiPT10eXBlb2YgYT8tMT09PWE/dD1pLnRva2VuOm58PWE6dD1pfWUucHVzaCh2cih0LG4pKX1lbHNlIGUucHVzaCh2cihvKSl9cmV0dXJuIGV9ZnVuY3Rpb24gd3IodCxlKXtyZXR1cm4gdC5fX05HX0RJX0ZMQUdfXz1lLHQucHJvdG90eXBlLl9fTkdfRElfRkxBR19fPWUsdH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGtyPXdyKEJhKCJJbmplY3QiLCh0PT4oe3Rva2VuOnR9KSkpLC0xKSxTcj13cihCYSgiT3B0aW9uYWwiKSw4KSxEcj13cihCYSgiU2VsZiIpLDIpLEVyPXdyKEJhKCJTa2lwU2VsZiIpLDQpLFJyPXdyKEJhKCJIb3N0IiksMSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgQXI9bnVsbDtmdW5jdGlvbiBUcigpe3JldHVybiBBcj1Bcnx8bmV3IG1yfWZ1bmN0aW9uIE5yKHQpe3JldHVybiB6cihUcigpLnBhcmFtZXRlcnModCkpfWZ1bmN0aW9uIHpyKHQpe3JldHVybiB0Lm1hcCgodD0+KGZ1bmN0aW9uIGUodCl7Y29uc3QgZT17dG9rZW46bnVsbCxhdHRyaWJ1dGU6bnVsbCxob3N0OiExLG9wdGlvbmFsOiExLHNlbGY6ITEsc2tpcFNlbGY6ITF9O2lmKEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjApZm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IG89dFtuXTtpZih2b2lkIDA9PT1vKWNvbnRpbnVlO2NvbnN0IGk9T2JqZWN0LmdldFByb3RvdHlwZU9mKG8pO2lmKG8gaW5zdGFuY2VvZiBTcnx8Ik9wdGlvbmFsIj09PWkubmdNZXRhZGF0YU5hbWUpZS5vcHRpb25hbD0hMDtlbHNlIGlmKG8gaW5zdGFuY2VvZiBFcnx8IlNraXBTZWxmIj09PWkubmdNZXRhZGF0YU5hbWUpZS5za2lwU2VsZj0hMDtlbHNlIGlmKG8gaW5zdGFuY2VvZiBEcnx8IlNlbGYiPT09aS5uZ01ldGFkYXRhTmFtZSllLnNlbGY9ITA7ZWxzZSBpZihvIGluc3RhbmNlb2YgUnJ8fCJIb3N0Ij09PWkubmdNZXRhZGF0YU5hbWUpZS5ob3N0PSEwO2Vsc2UgaWYobyBpbnN0YW5jZW9mIGtyKWUudG9rZW49by50b2tlbjtlbHNlIGlmKG8gaW5zdGFuY2VvZiBqYSl7aWYodm9pZCAwPT09by5hdHRyaWJ1dGVOYW1lKXRocm93IG5ldyBFcnJvcigiQXR0cmlidXRlIG5hbWUgbXVzdCBiZSBkZWZpbmVkLiIpO2UuYXR0cmlidXRlPW8uYXR0cmlidXRlTmFtZX1lbHNlIGUudG9rZW49b31lbHNlIGUudG9rZW49dm9pZCAwPT09dHx8QXJyYXkuaXNBcnJheSh0KSYmMD09PXQubGVuZ3RoP251bGw6dDtyZXR1cm4gZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KSkpfWxldCBJcj1uZXcgTWFwO2NvbnN0IEhyPW5ldyBTZXQ7ZnVuY3Rpb24gRnIodCl7cmV0dXJuISEodC50ZW1wbGF0ZVVybCYmIXQuaGFzT3duUHJvcGVydHkoInRlbXBsYXRlIil8fHQuc3R5bGVVcmxzJiZ0LnN0eWxlVXJscy5sZW5ndGgpfWZ1bmN0aW9uIExyKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90OnQudGV4dCgpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IEJyLFZyO2Z1bmN0aW9uIGpyKCl7aWYodm9pZCAwPT09QnImJihCcj1udWxsLGpuLnRydXN0ZWRUeXBlcykpdHJ5e0JyPWpuLnRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koImFuZ3VsYXIiLHtjcmVhdGVIVE1MOnQ9PnQsY3JlYXRlU2NyaXB0OnQ9PnQsY3JlYXRlU2NyaXB0VVJMOnQ9PnR9KX1jYXRjaCh0KXt9cmV0dXJuIEJyfWZ1bmN0aW9uIFVyKHQpe3ZhciBlO3JldHVybihudWxsPT09KGU9anIoKSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY3JlYXRlSFRNTCh0KSl8fHR9ZnVuY3Rpb24gR3IoKXtpZih2b2lkIDA9PT1WciYmKFZyPW51bGwsam4udHJ1c3RlZFR5cGVzKSl0cnl7VnI9am4udHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciN1bnNhZmUtYnlwYXNzIix7Y3JlYXRlSFRNTDp0PT50LGNyZWF0ZVNjcmlwdDp0PT50LGNyZWF0ZVNjcmlwdFVSTDp0PT50fSl9Y2F0Y2godCl7fXJldHVybiBWcn1mdW5jdGlvbiBXcih0KXt2YXIgZTtyZXR1cm4obnVsbD09PShlPUdyKCkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNyZWF0ZUhUTUwodCkpfHx0fWZ1bmN0aW9uIFlyKHQpe3ZhciBlO3JldHVybihudWxsPT09KGU9R3IoKSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY3JlYXRlU2NyaXB0KHQpKXx8dH1mdW5jdGlvbiBxcih0KXt2YXIgZTtyZXR1cm4obnVsbD09PShlPUdyKCkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNyZWF0ZVNjcmlwdFVSTCh0KSl8fHR9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIFpye2NvbnN0cnVjdG9yKHQpe3RoaXMuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eT10fXRvU3RyaW5nKCl7cmV0dXJuYFNhZmVWYWx1ZSBtdXN0IHVzZSBbcHJvcGVydHldPWJpbmRpbmc6ICR7dGhpcy5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5fSAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpYH19Y2xhc3MgWHIgZXh0ZW5kcyBacntnZXRUeXBlTmFtZSgpe3JldHVybiJIVE1MIn19Y2xhc3MgS3IgZXh0ZW5kcyBacntnZXRUeXBlTmFtZSgpe3JldHVybiJTdHlsZSJ9fWNsYXNzIEpyIGV4dGVuZHMgWnJ7Z2V0VHlwZU5hbWUoKXtyZXR1cm4iU2NyaXB0In19Y2xhc3MgUXIgZXh0ZW5kcyBacntnZXRUeXBlTmFtZSgpe3JldHVybiJVUkwifX1jbGFzcyAkciBleHRlbmRzIFpye2dldFR5cGVOYW1lKCl7cmV0dXJuIlJlc291cmNlVVJMIn19ZnVuY3Rpb24gdHModCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBacj90LmNoYW5naW5nVGhpc0JyZWFrc0FwcGxpY2F0aW9uU2VjdXJpdHk6dH1mdW5jdGlvbiBlcyh0LGUpe2NvbnN0IG49bnModCk7aWYobnVsbCE9biYmbiE9PWUpe2lmKCJSZXNvdXJjZVVSTCI9PT1uJiYiVVJMIj09PWUpcmV0dXJuITA7dGhyb3cgbmV3IEVycm9yKGBSZXF1aXJlZCBhIHNhZmUgJHtlfSwgZ290IGEgJHtufSAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpYCl9cmV0dXJuIG49PT1lfWZ1bmN0aW9uIG5zKHQpe3JldHVybiB0IGluc3RhbmNlb2YgWnImJnQuZ2V0VHlwZU5hbWUoKXx8bnVsbH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIG9zKHQpe2NvbnN0IGU9bmV3IGFzKHQpO3JldHVybihmdW5jdGlvbiBuKCl7dHJ5e3JldHVybiEhKG5ldyB3aW5kb3cuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoVXIoIiIpLCJ0ZXh0L2h0bWwiKX1jYXRjaCh0KXtyZXR1cm4hMX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoKT9uZXcgaXMoZSk6ZX1jbGFzcyBpc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmluZXJ0RG9jdW1lbnRIZWxwZXI9dH1nZXRJbmVydEJvZHlFbGVtZW50KHQpe3Q9Ijxib2R5PjxyZW1vdmU+PC9yZW1vdmU+Iit0O3RyeXtjb25zdCBlPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKFVyKHQpLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiBudWxsPT09ZT90aGlzLmluZXJ0RG9jdW1lbnRIZWxwZXIuZ2V0SW5lcnRCb2R5RWxlbWVudCh0KTooZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpLGUpfWNhdGNoKHQpe3JldHVybiBudWxsfX19Y2xhc3MgYXN7Y29uc3RydWN0b3IodCl7aWYodGhpcy5kZWZhdWx0RG9jPXQsdGhpcy5pbmVydERvY3VtZW50PXRoaXMuZGVmYXVsdERvYy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoInNhbml0aXphdGlvbi1pbmVydCIpLG51bGw9PXRoaXMuaW5lcnREb2N1bWVudC5ib2R5KXtjb25zdCB0PXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJodG1sIik7dGhpcy5pbmVydERvY3VtZW50LmFwcGVuZENoaWxkKHQpO2NvbnN0IGU9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvZHkiKTt0LmFwcGVuZENoaWxkKGUpfX1nZXRJbmVydEJvZHlFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7aWYoImNvbnRlbnQiaW4gZSlyZXR1cm4gZS5pbm5lckhUTUw9VXIodCksZTtjb25zdCBuPXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5Iik7cmV0dXJuIG4uaW5uZXJIVE1MPVVyKHQpLHRoaXMuZGVmYXVsdERvYy5kb2N1bWVudE1vZGUmJnRoaXMuc3RyaXBDdXN0b21Oc0F0dHJzKG4pLG59c3RyaXBDdXN0b21Oc0F0dHJzKHQpe2NvbnN0IGU9dC5hdHRyaWJ1dGVzO2ZvcihsZXQgbj1lLmxlbmd0aC0xOzA8bjtuLS0pe2NvbnN0IG89ZS5pdGVtKG4pLm5hbWU7InhtbG5zOm5zMSIhPT1vJiYwIT09by5pbmRleE9mKCJuczE6Iil8fHQucmVtb3ZlQXR0cmlidXRlKG8pfWxldCBuPXQuZmlyc3RDaGlsZDtmb3IoO247KW4ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmdGhpcy5zdHJpcEN1c3RvbU5zQXR0cnMobiksbj1uLm5leHRTaWJsaW5nfX1jb25zdCBycz0vXig/Oig/Omh0dHBzP3xtYWlsdG98ZnRwfHRlbHxmaWxlfHNtcyk6fFteJjovPyNdKig/OlsvPyNdfCQpKS9naSxzcz0vXmRhdGE6KD86aW1hZ2VcLyg/OmJtcHxnaWZ8anBlZ3xqcGd8cG5nfHRpZmZ8d2VicCl8dmlkZW9cLyg/Om1wZWd8bXA0fG9nZ3x3ZWJtKXxhdWRpb1wvKD86bXAzfG9nYXxvZ2d8b3B1cykpO2Jhc2U2NCxbYS16MC05K1wvXSs9KiQvaTtmdW5jdGlvbiBscyh0KXtyZXR1cm4odD1TdHJpbmcodCkpLm1hdGNoKHJzKXx8dC5tYXRjaChzcyk/dDooKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZjb25zb2xlLndhcm4oYFdBUk5JTkc6IHNhbml0aXppbmcgdW5zYWZlIFVSTCB2YWx1ZSAke3R9IChzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcylgKSwidW5zYWZlOiIrdCl9ZnVuY3Rpb24gY3ModCl7cmV0dXJuKHQ9U3RyaW5nKHQpKS5zcGxpdCgiLCIpLm1hcCgodD0+bHModC50cmltKCkpKSkuam9pbigiLCAiKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gZHModCl7Y29uc3QgZT17fTtmb3IoY29uc3QgbiBvZiB0LnNwbGl0KCIsIikpZVtuXT0hMDtyZXR1cm4gZX1mdW5jdGlvbiBwcyguLi50KXtjb25zdCBlPXt9O2Zvcihjb25zdCBuIG9mIHQpZm9yKGNvbnN0IHQgaW4gbiluLmhhc093blByb3BlcnR5KHQpJiYoZVt0XT0hMCk7cmV0dXJuIGV9Y29uc3QgbXM9ZHMoImFyZWEsYnIsY29sLGhyLGltZyx3YnIiKSx1cz1kcygiY29sZ3JvdXAsZGQsZHQsbGkscCx0Ym9keSx0ZCx0Zm9vdCx0aCx0aGVhZCx0ciIpLGZzPWRzKCJycCxydCIpLGdzPXBzKGZzLHVzKSxocz1wcyh1cyxkcygiYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGJsb2NrcXVvdGUsY2FwdGlvbixjZW50ZXIsZGVsLGRldGFpbHMsZGlhbG9nLGRpcixkaXYsZGwsZmlndXJlLGZpZ2NhcHRpb24sZm9vdGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhlYWRlcixoZ3JvdXAsaHIsaW5zLG1haW4sbWFwLG1lbnUsbmF2LG9sLHByZSxzZWN0aW9uLHN1bW1hcnksdGFibGUsdWwiKSksYnM9cHMoZnMsZHMoImEsYWJicixhY3JvbnltLGF1ZGlvLGIsYmRpLGJkbyxiaWcsYnIsY2l0ZSxjb2RlLGRlbCxkZm4sZW0sZm9udCxpLGltZyxpbnMsa2JkLGxhYmVsLG1hcCxtYXJrLHBpY3R1cmUscSxydWJ5LHJwLHJ0LHMsc2FtcCxzbWFsbCxzb3VyY2Usc3BhbixzdHJpa2Usc3Ryb25nLHN1YixzdXAsdGltZSx0cmFjayx0dCx1LHZhcix2aWRlbyIpKSx5cz1wcyhtcyxocyxicyxncyksX3M9ZHMoImJhY2tncm91bmQsY2l0ZSxocmVmLGl0ZW10eXBlLGxvbmdkZXNjLHBvc3RlcixzcmMseGxpbms6aHJlZiIpLENzPWRzKCJzcmNzZXQiKSxNcz1kcygiYWJicixhY2Nlc3NrZXksYWxpZ24sYWx0LGF1dG9wbGF5LGF4aXMsYmdjb2xvcixib3JkZXIsY2VsbHBhZGRpbmcsY2VsbHNwYWNpbmcsY2xhc3MsY2xlYXIsY29sb3IsY29scyxjb2xzcGFuLGNvbXBhY3QsY29udHJvbHMsY29vcmRzLGRhdGV0aW1lLGRlZmF1bHQsZGlyLGRvd25sb2FkLGZhY2UsaGVhZGVycyxoZWlnaHQsaGlkZGVuLGhyZWZsYW5nLGhzcGFjZSxpc21hcCxpdGVtc2NvcGUsaXRlbXByb3Asa2luZCxsYWJlbCxsYW5nLGxhbmd1YWdlLGxvb3AsbWVkaWEsbXV0ZWQsbm9ocmVmLG5vd3JhcCxvcGVuLHByZWxvYWQscmVsLHJldixyb2xlLHJvd3Mscm93c3BhbixydWxlcyxzY29wZSxzY3JvbGxpbmcsc2hhcGUsc2l6ZSxzaXplcyxzcGFuLHNyY2xhbmcsc3RhcnQsc3VtbWFyeSx0YWJpbmRleCx0YXJnZXQsdGl0bGUsdHJhbnNsYXRlLHR5cGUsdXNlbWFwLHZhbGlnbix2YWx1ZSx2c3BhY2Usd2lkdGgiKSx2cz1kcygiYXJpYS1hY3RpdmVkZXNjZW5kYW50LGFyaWEtYXRvbWljLGFyaWEtYXV0b2NvbXBsZXRlLGFyaWEtYnVzeSxhcmlhLWNoZWNrZWQsYXJpYS1jb2xjb3VudCxhcmlhLWNvbGluZGV4LGFyaWEtY29sc3BhbixhcmlhLWNvbnRyb2xzLGFyaWEtY3VycmVudCxhcmlhLWRlc2NyaWJlZGJ5LGFyaWEtZGV0YWlscyxhcmlhLWRpc2FibGVkLGFyaWEtZHJvcGVmZmVjdCxhcmlhLWVycm9ybWVzc2FnZSxhcmlhLWV4cGFuZGVkLGFyaWEtZmxvd3RvLGFyaWEtZ3JhYmJlZCxhcmlhLWhhc3BvcHVwLGFyaWEtaGlkZGVuLGFyaWEtaW52YWxpZCxhcmlhLWtleXNob3J0Y3V0cyxhcmlhLWxhYmVsLGFyaWEtbGFiZWxsZWRieSxhcmlhLWxldmVsLGFyaWEtbGl2ZSxhcmlhLW1vZGFsLGFyaWEtbXVsdGlsaW5lLGFyaWEtbXVsdGlzZWxlY3RhYmxlLGFyaWEtb3JpZW50YXRpb24sYXJpYS1vd25zLGFyaWEtcGxhY2Vob2xkZXIsYXJpYS1wb3NpbnNldCxhcmlhLXByZXNzZWQsYXJpYS1yZWFkb25seSxhcmlhLXJlbGV2YW50LGFyaWEtcmVxdWlyZWQsYXJpYS1yb2xlZGVzY3JpcHRpb24sYXJpYS1yb3djb3VudCxhcmlhLXJvd2luZGV4LGFyaWEtcm93c3BhbixhcmlhLXNlbGVjdGVkLGFyaWEtc2V0c2l6ZSxhcmlhLXNvcnQsYXJpYS12YWx1ZW1heCxhcmlhLXZhbHVlbWluLGFyaWEtdmFsdWVub3csYXJpYS12YWx1ZXRleHQiKSx4cz1wcyhfcyxDcyxNcyx2cyksT3M9ZHMoInNjcmlwdCxzdHlsZSx0ZW1wbGF0ZSIpO2NsYXNzIFBze2NvbnN0cnVjdG9yKCl7dGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITEsdGhpcy5idWY9W119c2FuaXRpemVDaGlsZHJlbih0KXtsZXQgZT10LmZpcnN0Q2hpbGQsbj0hMDtmb3IoO2U7KWlmKGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERT9uPXRoaXMuc3RhcnRFbGVtZW50KGUpOmUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT90aGlzLmNoYXJzKGUubm9kZVZhbHVlKTp0aGlzLnNhbml0aXplZFNvbWV0aGluZz0hMCxuJiZlLmZpcnN0Q2hpbGQpZT1lLmZpcnN0Q2hpbGQ7ZWxzZSBmb3IoO2U7KXtlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnRoaXMuZW5kRWxlbWVudChlKTtsZXQgdD10aGlzLmNoZWNrQ2xvYmJlcmVkRWxlbWVudChlLGUubmV4dFNpYmxpbmcpO2lmKHQpe2U9dDticmVha31lPXRoaXMuY2hlY2tDbG9iYmVyZWRFbGVtZW50KGUsZS5wYXJlbnROb2RlKX1yZXR1cm4gdGhpcy5idWYuam9pbigiIil9c3RhcnRFbGVtZW50KHQpe2NvbnN0IGU9dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCF5cy5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gdGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITAsIU9zLmhhc093blByb3BlcnR5KGUpO3RoaXMuYnVmLnB1c2goIjwiKSx0aGlzLmJ1Zi5wdXNoKGUpO2NvbnN0IG49dC5hdHRyaWJ1dGVzO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtjb25zdCBlPW4uaXRlbSh0KSxvPWUubmFtZSxpPW8udG9Mb3dlckNhc2UoKTtpZigheHMuaGFzT3duUHJvcGVydHkoaSkpe3RoaXMuc2FuaXRpemVkU29tZXRoaW5nPSEwO2NvbnRpbnVlfWxldCBhPWUudmFsdWU7X3NbaV0mJihhPWxzKGEpKSxDc1tpXSYmKGE9Y3MoYSkpLHRoaXMuYnVmLnB1c2goIiAiLG8sJz0iJyxTcyhhKSwnIicpfXJldHVybiB0aGlzLmJ1Zi5wdXNoKCI+IiksITB9ZW5kRWxlbWVudCh0KXtjb25zdCBlPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTt5cy5oYXNPd25Qcm9wZXJ0eShlKSYmIW1zLmhhc093blByb3BlcnR5KGUpJiYodGhpcy5idWYucHVzaCgiPC8iKSx0aGlzLmJ1Zi5wdXNoKGUpLHRoaXMuYnVmLnB1c2goIj4iKSl9Y2hhcnModCl7dGhpcy5idWYucHVzaChTcyh0KSl9Y2hlY2tDbG9iYmVyZWRFbGVtZW50KHQsZSl7aWYoZSYmKHQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZSkmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpPT09Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2FuaXRpemUgaHRtbCBiZWNhdXNlIHRoZSBlbGVtZW50IGlzIGNsb2JiZXJlZDogJHt0Lm91dGVySFRNTH1gKTtyZXR1cm4gZX19Y29uc3Qgd3M9L1tcdUQ4MDAtXHVEQkZGXVtcdURDMDAtXHVERkZGXS9nLGtzPS8oW15cIy1+IHwhXSkvZztmdW5jdGlvbiBTcyh0KXtyZXR1cm4gdC5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSh3cywoZnVuY3Rpb24odCl7cmV0dXJuIiYjIisoMTAyNCoodC5jaGFyQ29kZUF0KDApLTU1Mjk2KSsodC5jaGFyQ29kZUF0KDEpLTU2MzIwKSs2NTUzNikrIjsifSkpLnJlcGxhY2Uoa3MsKGZ1bmN0aW9uKHQpe3JldHVybiImIyIrdC5jaGFyQ29kZUF0KDApKyI7In0pKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKX1sZXQgRHM7ZnVuY3Rpb24gRXModCxlKXtsZXQgbj1udWxsO3RyeXtEcz1Ec3x8b3ModCk7bGV0IG89ZT9TdHJpbmcoZSk6IiI7bj1Ecy5nZXRJbmVydEJvZHlFbGVtZW50KG8pO2xldCBpPTUsYT1vO2Rve2lmKDA9PT1pKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHNhbml0aXplIGh0bWwgYmVjYXVzZSB0aGUgaW5wdXQgaXMgdW5zdGFibGUiKTtpLS0sbz1hLGE9bi5pbm5lckhUTUwsbj1Ecy5nZXRJbmVydEJvZHlFbGVtZW50KG8pfXdoaWxlKG8hPT1hKTtjb25zdCByPW5ldyBQcyxzPXIuc2FuaXRpemVDaGlsZHJlbihScyhuKXx8bik7cmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZyLnNhbml0aXplZFNvbWV0aGluZyYmY29uc29sZS53YXJuKCJXQVJOSU5HOiBzYW5pdGl6aW5nIEhUTUwgc3RyaXBwZWQgc29tZSBjb250ZW50LCBzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcyIpLFVyKHMpfWZpbmFsbHl7aWYobil7Y29uc3QgdD1ScyhuKXx8bjtmb3IoO3QuZmlyc3RDaGlsZDspdC5yZW1vdmVDaGlsZCh0LmZpcnN0Q2hpbGQpfX19ZnVuY3Rpb24gUnModCl7cmV0dXJuImNvbnRlbnQiaW4gdCYmKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmIlRFTVBMQVRFIj09PXQubm9kZU5hbWV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykodCk/dC5jb250ZW50Om51bGx9dmFyIEFzO2Z1bmN0aW9uIFRzKHQpe2NvbnN0IGU9enMoKTtyZXR1cm4gZT9lLnNhbml0aXplKEFzLlVSTCx0KXx8IiI6ZXModCwiVVJMIik/dHModCk6bHMoJGUodCkpfWZ1bmN0aW9uIE5zKHQpe2NvbnN0IGU9enMoKTtpZihlKXJldHVybiBxcihlLnNhbml0aXplKEFzLlJFU09VUkNFX1VSTCx0KXx8IiIpO2lmKGVzKHQsIlJlc291cmNlVVJMIikpcmV0dXJuIHFyKHRzKHQpKTt0aHJvdyBuZXcgRXJyb3IoInVuc2FmZSB2YWx1ZSB1c2VkIGluIGEgcmVzb3VyY2UgVVJMIGNvbnRleHQgKHNlZSBodHRwczovL2cuY28vbmcvc2VjdXJpdHkjeHNzKSIpfWZ1bmN0aW9uIHpzKCl7Y29uc3QgdD1maSgpO3JldHVybiB0JiZ0WzEyXX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gSXModCl7bGV0IGU9QnModCk7aWYoZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Y29uc3Qgbj1lO2xldCBvLGksYTtpZigoZnVuY3Rpb24gbih0KXtyZXR1cm4gdCYmdC5jb25zdHJ1Y3RvciYmdC5jb25zdHJ1Y3Rvci7JtWNtcH0pKHQpKXtpZihvPUdzKG4sdCksLTE9PW8pdGhyb3cgbmV3IEVycm9yKCJUaGUgcHJvdmlkZWQgY29tcG9uZW50IHdhcyBub3QgZm91bmQgaW4gdGhlIGFwcGxpY2F0aW9uIik7aT10fWVsc2UgaWYoKGZ1bmN0aW9uIG8odCl7cmV0dXJuIHQmJnQuY29uc3RydWN0b3ImJnQuY29uc3RydWN0b3IuybVkaXJ9KSh0KSl7aWYobz0oZnVuY3Rpb24gaSh0LGUpe2xldCBuPXRbMV0uZmlyc3RDaGlsZDtmb3IoO247KXtjb25zdCBvPW4uZGlyZWN0aXZlRW5kO2ZvcihsZXQgaT1uLmRpcmVjdGl2ZVN0YXJ0O2k8bztpKyspaWYodFtpXT09PWUpcmV0dXJuIG4uaW5kZXg7bj1VcyhuKX1yZXR1cm4tMX0pKG4sdCksLTE9PW8pdGhyb3cgbmV3IEVycm9yKCJUaGUgcHJvdmlkZWQgZGlyZWN0aXZlIHdhcyBub3QgZm91bmQgaW4gdGhlIGFwcGxpY2F0aW9uIik7YT1XcyhvLG4sITEpfWVsc2UgaWYobz1qcyhuLHQpLC0xPT1vKXJldHVybiBudWxsO2NvbnN0IHI9ZWkobltvXSkscz1CcyhyKSxsPXMmJiFBcnJheS5pc0FycmF5KHMpP3M6SHMobixvLHIpO2lmKGkmJnZvaWQgMD09PWwuY29tcG9uZW50JiYobC5jb21wb25lbnQ9aSxMcyhsLmNvbXBvbmVudCxsKSksYSYmdm9pZCAwPT09bC5kaXJlY3RpdmVzKXtsLmRpcmVjdGl2ZXM9YTtmb3IobGV0IHQ9MDt0PGEubGVuZ3RoO3QrKylMcyhhW3RdLGwpfUxzKGwubmF0aXZlLGwpLGU9bH19ZWxzZXtjb25zdCBuPXQ7bmdEZXZNb2RlJiZ5bihuKTtsZXQgbz1uO2Zvcig7bz1vLnBhcmVudE5vZGU7KXtjb25zdCB0PUJzKG8pO2lmKHQpe2xldCBvO2lmKG89QXJyYXkuaXNBcnJheSh0KT90OnQubFZpZXcsIW8pcmV0dXJuIG51bGw7Y29uc3QgaT1qcyhvLG4pO2lmKGk+PTApe2NvbnN0IHQ9ZWkob1tpXSksbj1IcyhvLGksdCk7THModCxuKSxlPW47YnJlYWt9fX19cmV0dXJuIGV8fG51bGx9ZnVuY3Rpb24gSHModCxlLG4pe3JldHVybntsVmlldzp0LG5vZGVJbmRleDplLG5hdGl2ZTpuLGNvbXBvbmVudDp2b2lkIDAsZGlyZWN0aXZlczp2b2lkIDAsbG9jYWxSZWZzOnZvaWQgMH19ZnVuY3Rpb24gRnModCl7bGV0IGUsbj1Ccyh0KTtpZihBcnJheS5pc0FycmF5KG4pKXtjb25zdCBvPUdzKG4sdCk7ZT1yaShvLG4pO2NvbnN0IGk9SHMobixvLGVbMF0pO2kuY29tcG9uZW50PXQsTHModCxpKSxMcyhpLm5hdGl2ZSxpKX1lbHNlIGU9cmkobi5ub2RlSW5kZXgsbi5sVmlldyk7cmV0dXJuIGV9ZnVuY3Rpb24gTHModCxlKXtuZ0Rldk1vZGUmJmhuKHQsIlRhcmdldCBleHBlY3RlZCIpLHQuX19uZ0NvbnRleHRfXz1lfWZ1bmN0aW9uIEJzKHQpe3JldHVybiBuZ0Rldk1vZGUmJmhuKHQsIlRhcmdldCBleHBlY3RlZCIpLHQuX19uZ0NvbnRleHRfX3x8bnVsbH1mdW5jdGlvbiBWcyh0KXtjb25zdCBlPUJzKHQpO3JldHVybiBlP0FycmF5LmlzQXJyYXkoZSk/ZTplLmxWaWV3Om51bGx9ZnVuY3Rpb24ganModCxlKXtjb25zdCBuPXRbMV07Zm9yKGxldCBvPWdvO288bi5iaW5kaW5nU3RhcnRJbmRleDtvKyspaWYoZWkodFtvXSk9PT1lKXJldHVybiBvO3JldHVybi0xfWZ1bmN0aW9uIFVzKHQpe2lmKHQuY2hpbGQpcmV0dXJuIHQuY2hpbGQ7aWYodC5uZXh0KXJldHVybiB0Lm5leHQ7Zm9yKDt0LnBhcmVudCYmIXQucGFyZW50Lm5leHQ7KXQ9dC5wYXJlbnQ7cmV0dXJuIHQucGFyZW50JiZ0LnBhcmVudC5uZXh0fWZ1bmN0aW9uIEdzKHQsZSl7Y29uc3Qgbj10WzFdLmNvbXBvbmVudHM7aWYobilmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKyl7Y29uc3QgaT1uW29dO2lmKHJpKGksdClbOF09PT1lKXJldHVybiBpfWVsc2UgaWYocmkoZ28sdClbOF09PT1lKXJldHVybiBnbztyZXR1cm4tMX1mdW5jdGlvbiBXcyh0LGUsbil7Y29uc3Qgbz1lWzFdLmRhdGFbdF07bGV0IGk9by5kaXJlY3RpdmVTdGFydDtyZXR1cm4gMD09aT9XbjooIW4mJjImby5mbGFncyYmaSsrLGUuc2xpY2UoaSxvLmRpcmVjdGl2ZUVuZCkpfWZ1bmN0aW9uIFlzKHQpe3JldHVybiB0Lm5nT3JpZ2luYWxFcnJvcn1mdW5jdGlvbiBxcyh0LC4uLmUpe3QuZXJyb3IoLi4uZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLyEoZnVuY3Rpb24odCl7dFt0Lk5PTkU9MF09Ik5PTkUiLHRbdC5IVE1MPTFdPSJIVE1MIix0W3QuU1RZTEU9Ml09IlNUWUxFIix0W3QuU0NSSVBUPTNdPSJTQ1JJUFQiLHRbdC5VUkw9NF09IlVSTCIsdFt0LlJFU09VUkNFX1VSTD01XT0iUkVTT1VSQ0VfVVJMIn0pKEFzfHwoQXM9e30pKTtjbGFzcyBac3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2NvbnNvbGU9Y29uc29sZX1oYW5kbGVFcnJvcih0KXtjb25zdCBlPXRoaXMuX2ZpbmRPcmlnaW5hbEVycm9yKHQpLG49dGhpcy5fZmluZENvbnRleHQodCksbz0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gdCYmdC5uZ0Vycm9yTG9nZ2VyfHxxc30pKHQpO28odGhpcy5fY29uc29sZSwiRVJST1IiLHQpLGUmJm8odGhpcy5fY29uc29sZSwiT1JJR0lOQUwgRVJST1IiLGUpLG4mJm8odGhpcy5fY29uc29sZSwiRVJST1IgQ09OVEVYVCIsbil9X2ZpbmRDb250ZXh0KHQpe3JldHVybiB0PyhmdW5jdGlvbiBlKHQpe3JldHVybiB0Lm5nRGVidWdDb250ZXh0fSkodCl8fHRoaXMuX2ZpbmRDb250ZXh0KFlzKHQpKTpudWxsfV9maW5kT3JpZ2luYWxFcnJvcih0KXtsZXQgZT10JiZZcyh0KTtmb3IoO2UmJllzKGUpOyllPVlzKGUpO3JldHVybiBlfHxudWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgWHM9e25hbWU6ImN1c3RvbS1lbGVtZW50cyJ9LEtzPXtuYW1lOiJuby1lcnJvcnMtc2NoZW1hIn0sSnM9L14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZyxRcz0vKDx8PikvO2Z1bmN0aW9uICRzKHQpe3JldHVybiB0LnJlcGxhY2UoSnMsKHQ9PnQucmVwbGFjZShRcywi4oCLJDHigIsiKSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB0bCh0KXtpZighbmdEZXZNb2RlKXRocm93IG5ldyBFcnJvcigiTG9va3MgbGlrZSB3ZSBhcmUgaW4gJ3Byb2QgbW9kZScsIGJ1dCB3ZSBhcmUgY3JlYXRpbmcgYSBuYW1lZCBBcnJheSB0eXBlLCB3aGljaCBpcyB3cm9uZyEgQ2hlY2sgeW91ciBjb2RlIik7dHJ5e3JldHVybihmdW5jdGlvbiBlKC4uLnQpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlKXRocm93IG5ldyBFcnJvcigibmV3VHJ1c3RlZEZ1bmN0aW9uRm9yRGV2IHNob3VsZCBuZXZlciBiZSBjYWxsZWQgaW4gcHJvZHVjdGlvbiIpO2lmKCFqbi50cnVzdGVkVHlwZXMpcmV0dXJuIG5ldyBGdW5jdGlvbiguLi50KTtjb25zdCBlPWAoZnVuY3Rpb24gYW5vbnltb3VzKCR7dC5zbGljZSgwLC0xKS5qb2luKCIsIil9XG4pIHsgJHt0W3QubGVuZ3RoLTFdfVxufSlgLG49am4uZXZhbCgoZnVuY3Rpb24gbyh0KXt2YXIgZTtyZXR1cm4obnVsbD09PShlPWpyKCkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNyZWF0ZVNjcmlwdCh0KSl8fHR9KShlKSk7cmV0dXJuIHZvaWQgMD09PW4uYmluZD9uZXcgRnVuY3Rpb24oLi4udCk6KG4udG9TdHJpbmc9KCk9PmUsbi5iaW5kKGpuKSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoIkFycmF5IixgcmV0dXJuIGNsYXNzICR7dH0gZXh0ZW5kcyBBcnJheXt9YCkoQXJyYXkpfWNhdGNoKHQpe3JldHVybiBBcnJheX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IGVsPS8oW0EtWl0pL2csbmw9KCJ1bmRlZmluZWQiIT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHNldFRpbWVvdXQpLmJpbmQoam4pO2Z1bmN0aW9uIG9sKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gaWwodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudH1jb25zdCBhbD0i77+9IjtmdW5jdGlvbiBybCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEZ1bmN0aW9uP3QoKTp0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBzbCh0KXt0aHJvdyBuZXcgS2UoIjMwMCIsYE11bHRpcGxlIGNvbXBvbmVudHMgbWF0Y2ggbm9kZSB3aXRoIHRhZ25hbWUgJHt0LnZhbHVlfWApfWZ1bmN0aW9uIGxsKHQsZSxuLG8saSl7Y29uc3RbYSxyLC4uLnNdPW8uc3BsaXQoYWwpO2xldCBsPXIsYz1yO2ZvcihsZXQgbz0wO288cy5sZW5ndGg7bysrKXtjb25zdCBhPWUrbztsKz1gJHt0W2FdfSR7c1tvXX1gLGMrPWAke2E9PT1uP2k6dFthXX0ke3Nbb119YH1yZXR1cm57cHJvcE5hbWU6YSxvbGRWYWx1ZTpsLG5ld1ZhbHVlOmN9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KdmFyIGNsOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IGRsO2Z1bmN0aW9uIHBsKHQsZSl7cmV0dXJuIGRsKHQsZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBtbCh0KXtuZ0Rldk1vZGUmJlJvKHQpO2NvbnN0IGU9dFszXTtyZXR1cm4gX28oZSk/ZVszXTplfWZ1bmN0aW9uIHVsKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7bmdEZXZNb2RlJiZobih0LCJjb21wb25lbnQiKTtsZXQgZT15byh0KT90OlZzKHQpO2Zvcig7ZSYmISg1MTImZVsyXSk7KWU9bWwoZSk7cmV0dXJuIG5nRGV2TW9kZSYmUm8oZSksZX0pKHQpO3JldHVybiBuZ0Rldk1vZGUmJmhuKGVbOF0sIlJvb3RWaWV3IGhhcyBubyBjb250ZXh0LiBQZXJoYXBzIGl0IGlzIGRpc2Nvbm5lY3RlZD8iKSxlWzhdfWZ1bmN0aW9uIGZsKHQpe3JldHVybiBobCh0WzEzXSl9ZnVuY3Rpb24gZ2wodCl7cmV0dXJuIGhsKHRbNF0pfWZ1bmN0aW9uIGhsKHQpe2Zvcig7bnVsbCE9PXQmJiFfbyh0KTspdD10WzRdO3JldHVybiB0fWZ1bmN0aW9uIGJsKHQsZSxuLG8saSl7aWYobnVsbCE9byl7bGV0IGEscj0hMTtfbyhvKT9hPW86eW8obykmJihyPSEwLG5nRGV2TW9kZSYmaG4ob1swXSwiSE9TVCBtdXN0IGJlIGRlZmluZWQgZm9yIGEgY29tcG9uZW50IExWaWV3Iiksbz1vWzBdKTtjb25zdCBzPWVpKG8pO25nRGV2TW9kZSYmISRvKGUpJiZ5bihzKSwwPT09dCYmbnVsbCE9PW4/bnVsbD09aT9EbChlLG4scyk6U2woZSxuLHMsaXx8bnVsbCwhMCk6MT09PXQmJm51bGwhPT1uP1NsKGUsbixzLGl8fG51bGwsITApOjI9PT10P1ZsKGUscyxyKTozPT09dCYmKG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyRGVzdHJveU5vZGUrKyxlLmRlc3Ryb3lOb2RlKHMpKSxudWxsIT1hJiYoZnVuY3Rpb24gYSh0LGUsbixvLGkpe25nRGV2TW9kZSYmRG8obik7Y29uc3QgYT1uWzddO2EhPT1laShuKSYmYmwoZSx0LG8sYSxpKTtmb3IobGV0IGk9Ym87aTxuLmxlbmd0aDtpKyspe2NvbnN0IHI9bltpXTtVbChyWzFdLHIsdCxlLG8sYSl9fSkoZSx0LGEsbixpKX19ZnVuY3Rpb24geWwodCxlKXtyZXR1cm4gbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJDcmVhdGVUZXh0Tm9kZSsrLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0VGV4dCsrLCRvKHQpP3QuY3JlYXRlVGV4dChlKTp0LmNyZWF0ZVRleHROb2RlKGUpfWZ1bmN0aW9uIF9sKHQsZSxuKXtuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlclNldFRleHQrKywkbyh0KT90LnNldFZhbHVlKGUsbik6ZS50ZXh0Q29udGVudD1ufWZ1bmN0aW9uIENsKHQsZSl7cmV0dXJuIG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyQ3JlYXRlQ29tbWVudCsrLHQuY3JlYXRlQ29tbWVudCgkcyhlKSl9ZnVuY3Rpb24gTWwodCxlLG4pe3JldHVybiBuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckNyZWF0ZUVsZW1lbnQrKywkbyh0KT90LmNyZWF0ZUVsZW1lbnQoZSxuKTpudWxsPT09bj90LmNyZWF0ZUVsZW1lbnQoZSk6dC5jcmVhdGVFbGVtZW50TlMobixlKX1mdW5jdGlvbiB2bCh0LGUpe25nRGV2TW9kZSYmRG8odCksbmdEZXZNb2RlJiZobih0WzldLCJBIHByb2plY3RlZCB2aWV3IHNob3VsZCBiZWxvbmcgdG8gYSBub24tZW1wdHkgcHJvamVjdGVkIHZpZXdzIGNvbGxlY3Rpb24iKTtjb25zdCBuPXRbOV0sbz1uLmluZGV4T2YoZSksaT1lWzNdO25nRGV2TW9kZSYmRG8oaSksMTAyNCZlWzJdJiYoZVsyXSY9LTEwMjUscGkoaSwtMSkpLG4uc3BsaWNlKG8sMSl9ZnVuY3Rpb24geGwodCxlKXtpZih0Lmxlbmd0aDw9Ym8pcmV0dXJuO2NvbnN0IG49Ym8rZSxvPXRbbl07aWYobyl7Y29uc3QgaT1vWzE3XTtudWxsIT09aSYmaSE9PXQmJnZsKGksbyksZT4wJiYodFtuLTFdWzRdPW9bNF0pO2NvbnN0IGE9b3IodCxibytlKTshKGZ1bmN0aW9uIGkodCxlKXtVbCh0LGUsZVsxMV0sMixudWxsLG51bGwpLGVbMF09bnVsbCxlWzZdPW51bGx9KShvWzFdLG8pO2NvbnN0IHI9YVsxOV07bnVsbCE9PXImJnIuZGV0YWNoVmlldyhhWzFdKSxvWzNdPW51bGwsb1s0XT1udWxsLG9bMl0mPS0xMjl9cmV0dXJuIG99ZnVuY3Rpb24gT2wodCxlKXtpZighKDI1NiZlWzJdKSl7Y29uc3Qgbj1lWzExXTskbyhuKSYmbi5kZXN0cm95Tm9kZSYmVWwodCxlLG4sMyxudWxsLG51bGwpLChmdW5jdGlvbiBuKHQpe2xldCBlPXRbMTNdO2lmKCFlKXJldHVybiBQbCh0WzFdLHQpO2Zvcig7ZTspe2xldCBuPW51bGw7aWYoeW8oZSkpbj1lWzEzXTtlbHNle25nRGV2TW9kZSYmRG8oZSk7Y29uc3QgdD1lWzEwXTt0JiYobj10KX1pZighbil7Zm9yKDtlJiYhZVs0XSYmZSE9PXQ7KXlvKGUpJiZQbChlWzFdLGUpLGU9ZVszXTtudWxsPT09ZSYmKGU9dCkseW8oZSkmJlBsKGVbMV0sZSksbj1lJiZlWzRdfWU9bn19KShlKX19ZnVuY3Rpb24gUGwodCxlKXtpZighKDI1NiZlWzJdKSl7ZVsyXSY9LTEyOSxlWzJdfD0yNTYsKGZ1bmN0aW9uIG4odCxlKXtsZXQgbjtpZihudWxsIT10JiZudWxsIT0obj10LmRlc3Ryb3lIb29rcykpZm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kz0yKXtjb25zdCBvPWVbblt0XV07aWYoIShvIGluc3RhbmNlb2YgbmEpKXtjb25zdCBlPW5bdCsxXTtpZihBcnJheS5pc0FycmF5KGUpKWZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9Mil7Y29uc3Qgbj1vW2VbdF1dLGk9ZVt0KzFdO3FvKDQsbixpKTt0cnl7aS5jYWxsKG4pfWZpbmFsbHl7cW8oNSxuLGkpfX1lbHNle3FvKDQsbyxlKTt0cnl7ZS5jYWxsKG8pfWZpbmFsbHl7cW8oNSxvLGUpfX19fX0pKHQsZSksKGZ1bmN0aW9uIG8odCxlKXtjb25zdCBuPXQuY2xlYW51cCxvPWVbN107bGV0IGk9LTE7aWYobnVsbCE9PW4pZm9yKGxldCB0PTA7dDxuLmxlbmd0aC0xO3QrPTIpaWYoInN0cmluZyI9PXR5cGVvZiBuW3RdKXtjb25zdCBhPW5bdCsxXSxyPSJmdW5jdGlvbiI9PXR5cGVvZiBhP2EoZSk6ZWkoZVthXSkscz1vW2k9blt0KzJdXSxsPW5bdCszXTsiYm9vbGVhbiI9PXR5cGVvZiBsP3IucmVtb3ZlRXZlbnRMaXN0ZW5lcihuW3RdLHMsbCk6bD49MD9vW2k9bF0oKTpvW2k9LWxdLnVuc3Vic2NyaWJlKCksdCs9Mn1lbHNle2NvbnN0IGU9b1tpPW5bdCsxXV07blt0XS5jYWxsKGUpfWlmKG51bGwhPT1vKXtmb3IobGV0IHQ9aSsxO3Q8by5sZW5ndGg7dCsrKXtjb25zdCBlPW9bdF07bmdEZXZNb2RlJiYoIkV4cGVjdGluZyBpbnN0YW5jZSBjbGVhbnVwIGZ1bmN0aW9uLiIsImZ1bmN0aW9uIiE9dHlwZW9mKGE9ZSkmJmJuKCJFeHBlY3RpbmcgaW5zdGFuY2UgY2xlYW51cCBmdW5jdGlvbi4iLG51bGw9PT1hPyJudWxsIjp0eXBlb2YgYSwiZnVuY3Rpb24iLCI9PT0iKSksZSgpfWVbN109bnVsbH12YXIgYX0pKHQsZSksMT09PWVbMV0udHlwZSYmJG8oZVsxMV0pJiYobmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJEZXN0cm95KyssZVsxMV0uZGVzdHJveSgpKTtjb25zdCBuPWVbMTddO2lmKG51bGwhPT1uJiZfbyhlWzNdKSl7biE9PWVbM10mJnZsKG4sZSk7Y29uc3Qgbz1lWzE5XTtudWxsIT09byYmby5kZXRhY2hWaWV3KHQpfX19ZnVuY3Rpb24gd2wodCxlLG4pe3JldHVybiBrbCh0LGUucGFyZW50LG4pfWZ1bmN0aW9uIGtsKHQsZSxuKXtsZXQgbz1lO2Zvcig7bnVsbCE9PW8mJjQwJm8udHlwZTspbz0oZT1vKS5wYXJlbnQ7aWYobnVsbD09PW8pcmV0dXJuIG5bMF07aWYobmdEZXZNb2RlJiZpYShvLDcpLDImby5mbGFncyl7bmdEZXZNb2RlJiZPbyhvLG4pO2NvbnN0IGU9dC5kYXRhW28uZGlyZWN0aXZlU3RhcnRdLmVuY2Fwc3VsYXRpb247aWYoZT09PUhuLk5vbmV8fGU9PT1Ibi5FbXVsYXRlZClyZXR1cm4gbnVsbH1yZXR1cm4gb2kobyxuKX1mdW5jdGlvbiBTbCh0LGUsbixvLGkpe25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVySW5zZXJ0QmVmb3JlKyssJG8odCk/dC5pbnNlcnRCZWZvcmUoZSxuLG8saSk6ZS5pbnNlcnRCZWZvcmUobixvLGkpfWZ1bmN0aW9uIERsKHQsZSxuKXtuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckFwcGVuZENoaWxkKyssbmdEZXZNb2RlJiZobihlLCJwYXJlbnQgbm9kZSBtdXN0IGJlIGRlZmluZWQiKSwkbyh0KT90LmFwcGVuZENoaWxkKGUsbik6ZS5hcHBlbmRDaGlsZChuKX1mdW5jdGlvbiBFbCh0LGUsbixvLGkpe251bGwhPT1vP1NsKHQsZSxuLG8saSk6RGwodCxlLG4pfWZ1bmN0aW9uIFJsKHQsZSl7cmV0dXJuICRvKHQpP3QucGFyZW50Tm9kZShlKTplLnBhcmVudE5vZGV9ZnVuY3Rpb24gQWwodCxlLG4pe3JldHVybiB6bCh0LGUsbil9ZnVuY3Rpb24gVGwodCxlLG4pe3JldHVybiA0MCZ0LnR5cGU/b2kodCxuKTpudWxsfSEoZnVuY3Rpb24odCl7dFt0LkltcG9ydGFudD0xXT0iSW1wb3J0YW50Iix0W3QuRGFzaENhc2U9Ml09IkRhc2hDYXNlIn0pKGNsfHwoY2w9e30pKTtsZXQgTmwsemw9VGw7ZnVuY3Rpb24gSWwodCxlKXt6bD10LE5sPWV9ZnVuY3Rpb24gSGwodCxlLG4sbyl7Y29uc3QgaT13bCh0LG8sZSksYT1lWzExXSxyPUFsKG8ucGFyZW50fHxlWzZdLG8sZSk7aWYobnVsbCE9aSlpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKUVsKGEsaSxuW3RdLHIsITEpO2Vsc2UgRWwoYSxpLG4sciwhMSk7dm9pZCAwIT09TmwmJk5sKGEsbyxlLG4saSl9ZnVuY3Rpb24gRmwodCxlKXtpZihudWxsIT09ZSl7bmdEZXZNb2RlJiZpYShlLDYzKTtjb25zdCBuPWUudHlwZTtpZigzJm4pcmV0dXJuIG9pKGUsdCk7aWYoNCZuKXJldHVybiBCbCgtMSx0W2UuaW5kZXhdKTtpZig4Jm4pe2NvbnN0IG49ZS5jaGlsZDtpZihudWxsIT09bilyZXR1cm4gRmwodCxuKTt7Y29uc3Qgbj10W2UuaW5kZXhdO3JldHVybiBfbyhuKT9CbCgtMSxuKTplaShuKX19aWYoMzImbilyZXR1cm4gcGwoZSx0KSgpfHxlaSh0W2UuaW5kZXhdKTt7Y29uc3Qgbj1MbCh0LGUpO2lmKG51bGwhPT1uKXtpZihBcnJheS5pc0FycmF5KG4pKXJldHVybiBuWzBdO2NvbnN0IGU9bWwodFsxNl0pO3JldHVybiBuZ0Rldk1vZGUmJklvKGUpLEZsKGUsbil9cmV0dXJuIEZsKHQsZS5uZXh0KX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gTGwodCxlKXtpZihudWxsIT09ZSl7Y29uc3Qgbj10WzE2XVs2XSxvPWUucHJvamVjdGlvbjtyZXR1cm4gbmdEZXZNb2RlJiYoZnVuY3Rpb24gbih0LGUpe2huKHRbMTZdLCJDb21wb25lbnQgdmlld3Mgc2hvdWxkIGV4aXN0LiIpLGhuKHRbMTZdWzZdLnByb2plY3Rpb24sZXx8IkNvbXBvbmVudHMgd2l0aCBwcm9qZWN0aW9uIG5vZGVzICg8bmctY29udGVudD4pIG11c3QgaGF2ZSBwcm9qZWN0aW9uIHNsb3RzIGRlZmluZWQuIil9KSh0KSxuLnByb2plY3Rpb25bb119cmV0dXJuIG51bGx9ZnVuY3Rpb24gQmwodCxlKXtjb25zdCBuPWJvK3QrMTtpZihuPGUubGVuZ3RoKXtjb25zdCB0PWVbbl0sbz10WzFdLmZpcnN0Q2hpbGQ7aWYobnVsbCE9PW8pcmV0dXJuIEZsKHQsbyl9cmV0dXJuIGVbN119ZnVuY3Rpb24gVmwodCxlLG4pe25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyUmVtb3ZlTm9kZSsrO2NvbnN0IG89UmwodCxlKTtvJiYoZnVuY3Rpb24gaSh0LGUsbixvKXskbyh0KT90LnJlbW92ZUNoaWxkKGUsbixvKTplLnJlbW92ZUNoaWxkKG4pfSkodCxvLGUsbil9ZnVuY3Rpb24gamwodCxlLG4sbyxpLGEscil7Zm9yKDtudWxsIT1uOyl7bmdEZXZNb2RlJiZPbyhuLG8pLG5nRGV2TW9kZSYmaWEobiw2Myk7Y29uc3Qgcz1vW24uaW5kZXhdLGw9bi50eXBlO2lmKHImJjA9PT1lJiYocyYmTHMoZWkocyksbyksbi5mbGFnc3w9NCksNjQhPSg2NCZuLmZsYWdzKSlpZig4JmwpamwodCxlLG4uY2hpbGQsbyxpLGEsITEpLGJsKGUsdCxpLHMsYSk7ZWxzZSBpZigzMiZsKXtjb25zdCByPXBsKG4sbyk7bGV0IGw7Zm9yKDtsPXIoKTspYmwoZSx0LGksbCxhKTtibChlLHQsaSxzLGEpfWVsc2UgMTYmbD9HbCh0LGUsbyxuLGksYSk6KG5nRGV2TW9kZSYmaWEobiw3KSxibChlLHQsaSxzLGEpKTtuPXI/bi5wcm9qZWN0aW9uTmV4dDpuLm5leHR9fWZ1bmN0aW9uIFVsKHQsZSxuLG8saSxhKXtqbChuLG8sdC5maXJzdENoaWxkLGUsaSxhLCExKX1mdW5jdGlvbiBHbCh0LGUsbixvLGksYSl7Y29uc3Qgcj1uWzE2XSxzPXJbNl07bmdEZXZNb2RlJiZsbih0eXBlb2Ygby5wcm9qZWN0aW9uLCJudW1iZXIiLCJleHBlY3RpbmcgcHJvamVjdGlvbiBpbmRleCIpO2NvbnN0IGw9cy5wcm9qZWN0aW9uW28ucHJvamVjdGlvbl07aWYoQXJyYXkuaXNBcnJheShsKSlmb3IobGV0IG49MDtuPGwubGVuZ3RoO24rKylibChlLHQsaSxsW25dLGEpO2Vsc2UgamwodCxlLGwsclszXSxpLGEsITApfWZ1bmN0aW9uIFdsKHQsZSxuKXtuZ0Rldk1vZGUmJnNuKG4sIiduZXdWYWx1ZScgc2hvdWxkIGJlIGEgc3RyaW5nIiksJG8odCk/dC5zZXRBdHRyaWJ1dGUoZSwic3R5bGUiLG4pOmUuc3R5bGUuY3NzVGV4dD1uLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0U3R5bGUrK31mdW5jdGlvbiBZbCh0LGUsbil7bmdEZXZNb2RlJiZzbihuLCInbmV3VmFsdWUnIHNob3VsZCBiZSBhIHN0cmluZyIpLCRvKHQpPyIiPT09bj90LnJlbW92ZUF0dHJpYnV0ZShlLCJjbGFzcyIpOnQuc2V0QXR0cmlidXRlKGUsImNsYXNzIixuKTplLmNsYXNzTmFtZT1uLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0Q2xhc3NOYW1lKyt9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHFsKHQsZSxuKXtuZ0Rldk1vZGUmJmNuKGUsIiIsJ2NhbiBub3QgbG9vayBmb3IgIiIgc3RyaW5nLicpO2xldCBvPXQubGVuZ3RoO2Zvcig7Oyl7Y29uc3QgaT10LmluZGV4T2YoZSxuKTtpZigtMT09PWkpcmV0dXJuIGk7aWYoMD09PWl8fHQuY2hhckNvZGVBdChpLTEpPD0zMil7Y29uc3Qgbj1lLmxlbmd0aDtpZihpK249PT1vfHx0LmNoYXJDb2RlQXQoaStuKTw9MzIpcmV0dXJuIGl9bj1pKzF9fWNvbnN0IFpsPSJuZy10ZW1wbGF0ZSI7ZnVuY3Rpb24gWGwodCxlLG4pe25nRGV2TW9kZSYmbG4oZSxlLnRvTG93ZXJDYXNlKCksIkNsYXNzIG5hbWUgZXhwZWN0ZWQgdG8gYmUgbG93ZXJjYXNlLiIpO2xldCBvPTA7Zm9yKDtvPHQubGVuZ3RoOyl7bGV0IGk9dFtvKytdO2lmKG4mJiJjbGFzcyI9PT1pKXtpZihpPXRbb10sLTEhPT1xbChpLnRvTG93ZXJDYXNlKCksZSwwKSlyZXR1cm4hMH1lbHNlIGlmKDE9PT1pKXtmb3IoO288dC5sZW5ndGgmJiJzdHJpbmciPT10eXBlb2YoaT10W28rK10pOylpZihpLnRvTG93ZXJDYXNlKCk9PT1lKXJldHVybiEwO3JldHVybiExfX1yZXR1cm4hMX1mdW5jdGlvbiBLbCh0KXtyZXR1cm4gND09PXQudHlwZSYmdC52YWx1ZSE9PVpsfWZ1bmN0aW9uIEpsKHQsZSxuKXtyZXR1cm4gZT09PSg0IT09dC50eXBlfHxuP3QudmFsdWU6WmwpfWZ1bmN0aW9uIFFsKHQsZSxuKXtuZ0Rldk1vZGUmJmhuKGVbMF0sIlNlbGVjdG9yIHNob3VsZCBoYXZlIGEgdGFnIG5hbWUiKTtsZXQgbz00O2NvbnN0IGk9dC5hdHRyc3x8W10sYT0oZnVuY3Rpb24gcih0KXtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpZihyYSh0W2VdKSlyZXR1cm4gZTtyZXR1cm4gdC5sZW5ndGh9KShpKTtsZXQgcz0hMTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7Y29uc3QgbD1lW3JdO2lmKCJudW1iZXIiIT10eXBlb2YgbCl7aWYoIXMpaWYoNCZvKXtpZihvPTJ8MSZvLCIiIT09bCYmIUpsKHQsbCxuKXx8IiI9PT1sJiYxPT09ZS5sZW5ndGgpe2lmKCRsKG8pKXJldHVybiExO3M9ITB9fWVsc2V7Y29uc3QgYz04Jm8/bDplWysrcl07aWYoOCZvJiZudWxsIT09dC5hdHRycyl7aWYoIVhsKHQuYXR0cnMsYyxuKSl7aWYoJGwobykpcmV0dXJuITE7cz0hMH1jb250aW51ZX1jb25zdCBkPXRjKDgmbz8iY2xhc3MiOmwsaSxLbCh0KSxuKTtpZigtMT09PWQpe2lmKCRsKG8pKXJldHVybiExO3M9ITA7Y29udGludWV9aWYoIiIhPT1jKXtsZXQgdDtkPmE/dD0iIjoobmdEZXZNb2RlJiZjbihpW2RdLDAsIldlIGRvIG5vdCBtYXRjaCBkaXJlY3RpdmVzIG9uIG5hbWVzcGFjZWQgYXR0cmlidXRlcyIpLHQ9aVtkKzFdLnRvTG93ZXJDYXNlKCkpO2NvbnN0IGU9OCZvP3Q6bnVsbDtpZihlJiYtMSE9PXFsKGUsYywwKXx8MiZvJiZjIT09dCl7aWYoJGwobykpcmV0dXJuITE7cz0hMH19fX1lbHNle2lmKCFzJiYhJGwobykmJiEkbChsKSlyZXR1cm4hMTtpZihzJiYkbChsKSljb250aW51ZTtzPSExLG89bHwxJm99fXJldHVybiAkbChvKXx8c31mdW5jdGlvbiAkbCh0KXtyZXR1cm4gMD09KDEmdCl9ZnVuY3Rpb24gdGModCxlLG4sbyl7aWYobnVsbD09PWUpcmV0dXJuLTE7bGV0IGk9MDtpZihvfHwhbil7bGV0IG49ITE7Zm9yKDtpPGUubGVuZ3RoOyl7Y29uc3Qgbz1lW2ldO2lmKG89PT10KXJldHVybiBpO2lmKDM9PT1vfHw2PT09byluPSEwO2Vsc2V7aWYoMT09PW98fDI9PT1vKXtsZXQgdD1lWysraV07Zm9yKDsic3RyaW5nIj09dHlwZW9mIHQ7KXQ9ZVsrK2ldO2NvbnRpbnVlfWlmKDQ9PT1vKWJyZWFrO2lmKDA9PT1vKXtpKz00O2NvbnRpbnVlfX1pKz1uPzE6Mn1yZXR1cm4tMX1yZXR1cm4oZnVuY3Rpb24gYSh0LGUpe2xldCBuPXQuaW5kZXhPZig0KTtpZihuPi0xKWZvcihuKys7bjx0Lmxlbmd0aDspe2NvbnN0IG89dFtuXTtpZigibnVtYmVyIj09dHlwZW9mIG8pcmV0dXJuLTE7aWYobz09PWUpcmV0dXJuIG47bisrfXJldHVybi0xfSkoZSx0KX1mdW5jdGlvbiBlYyh0LGUsbj0hMSl7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspaWYoUWwodCxlW29dLG4pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIG5jKHQsZSl7dDpmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7Y29uc3Qgbz1lW25dO2lmKHQubGVuZ3RoPT09by5sZW5ndGgpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV0hPT1vW2VdKWNvbnRpbnVlIHQ7cmV0dXJuITB9fXJldHVybiExfWZ1bmN0aW9uIG9jKHQsZSl7cmV0dXJuIHQ/Ijpub3QoIitlLnRyaW0oKSsiKSI6ZX1mdW5jdGlvbiBpYyh0KXtsZXQgZT10WzBdLG49MSxvPTIsaT0iIixhPSExO2Zvcig7bjx0Lmxlbmd0aDspe2xldCByPXRbbl07aWYoInN0cmluZyI9PXR5cGVvZiByKWlmKDImbyl7Y29uc3QgZT10Wysrbl07aSs9IlsiK3IrKGUubGVuZ3RoPjA/Jz0iJytlKyciJzoiIikrIl0ifWVsc2UgOCZvP2krPSIuIityOjQmbyYmKGkrPSIgIityKTtlbHNlIiI9PT1pfHwkbChyKXx8KGUrPW9jKGEsaSksaT0iIiksbz1yLGE9YXx8ISRsKG8pO24rK31yZXR1cm4iIiE9PWkmJihlKz1vYyhhLGkpKSxlfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgYWM9InVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZT97X19icmFuZF9fOiJOT19DSEFOR0UifTp7fTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gcmModCl7bmdEZXZNb2RlJiZmbih0LDAsIkNhbiBvbmx5IGFkdmFuY2UgZm9yd2FyZCIpLHNjKGdpKCksZmkoKSxHaSgpK3QseGkoKSl9ZnVuY3Rpb24gc2ModCxlLG4sbyl7aWYobmdEZXZNb2RlJiYoZnVuY3Rpb24gaSh0LGUpe3pvKGdvLHRbMV0uYmluZGluZ1N0YXJ0SW5kZXgsZSl9KShlLG4pLCFvKWlmKDM9PSgzJmVbMl0pKXtjb25zdCBvPXQucHJlT3JkZXJDaGVja0hvb2tzO251bGwhPT1vJiZLaShlLG8sbil9ZWxzZXtjb25zdCBvPXQucHJlT3JkZXJIb29rcztudWxsIT09byYmSmkoZSxvLDAsbil9V2kobil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGxjKHQsZSl7cmV0dXJuIG5nRGV2TW9kZSYmcm4odCwwLDMyNzY3KSxuZ0Rldk1vZGUmJnJuKGUsMCwzMjc2NyksdDw8MTd8ZTw8Mn1mdW5jdGlvbiBjYyh0KXtyZXR1cm4gbmdEZXZNb2RlJiZhbih0LCJleHBlY3RlZCBudW1iZXIiKSx0Pj4xNyYzMjc2N31mdW5jdGlvbiBkYyh0KXtyZXR1cm4gbmdEZXZNb2RlJiZhbih0LCJleHBlY3RlZCBudW1iZXIiKSwyPT0oMiZ0KX1mdW5jdGlvbiBwYyh0KXtyZXR1cm4gbmdEZXZNb2RlJiZhbih0LCJleHBlY3RlZCBudW1iZXIiKSwyfHR9ZnVuY3Rpb24gbWModCl7cmV0dXJuIG5nRGV2TW9kZSYmYW4odCwiZXhwZWN0ZWQgbnVtYmVyIiksKDEzMTA2OCZ0KT4+Mn1mdW5jdGlvbiB1Yyh0LGUpe3JldHVybiBuZ0Rldk1vZGUmJmFuKHQsImV4cGVjdGVkIG51bWJlciIpLG5nRGV2TW9kZSYmcm4oZSwwLDMyNzY3KSwtMTMxMDY5JnR8ZTw8Mn1mdW5jdGlvbiBmYyh0KXtyZXR1cm4gbmdEZXZNb2RlJiZhbih0LCJleHBlY3RlZCBudW1iZXIiKSwxPT0oMSZ0KX1mdW5jdGlvbiBnYyh0KXtyZXR1cm4gbmdEZXZNb2RlJiZhbih0LCJleHBlY3RlZCBudW1iZXIiKSwxfHR9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGhjKHQsZSl7aWYoIW5nRGV2TW9kZSl0aHJvdyBuZXcgRXJyb3IoIlRoaXMgbWV0aG9kIHNob3VsZCBiZSBndWFyZGVkIHdpdGggYG5nRGV2TW9kZWAgc28gdGhhdCBpdCBjYW4gYmUgdHJlZSBzaGFrZW4gaW4gcHJvZHVjdGlvbiEiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVidWciLHt2YWx1ZTplLGVudW1lcmFibGU6ITF9KX1mdW5jdGlvbiBiYyh0LGUpe2lmKCFuZ0Rldk1vZGUpdGhyb3cgbmV3IEVycm9yKCJUaGlzIG1ldGhvZCBzaG91bGQgYmUgZ3VhcmRlZCB3aXRoIGBuZ0Rldk1vZGVgIHNvIHRoYXQgaXQgY2FuIGJlIHRyZWUgc2hha2VuIGluIHByb2R1Y3Rpb24hIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImRlYnVnIix7Z2V0OmUsZW51bWVyYWJsZTohMX0pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCB5Yz0oInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fCEhbmdEZXZNb2RlKSYmVW4oKTtsZXQgX2MsQ2MsTWM7ZnVuY3Rpb24gdmModCl7aWYobnVsbD09dClyZXR1cm4iIjtjb25zdCBlPXQubGFzdEluZGV4T2YoIl9UZW1wbGF0ZSIpO3JldHVybiJfIisoLTE9PT1lP3Q6dC5zdWJzdHIoMCxlKSl9ZnVuY3Rpb24geGModCxlKXtjb25zdCBuPXQudFZpZXdfLmRhdGEsbz1bXSxpPWU/dC5jbGFzc0JpbmRpbmdzOnQuc3R5bGVCaW5kaW5ncyxhPWNjKGkpLHI9bWMoaSk7bGV0IHM9MCE9PXIsbD1zP3I6YTtmb3IoOzAhPT1sOyl7Y29uc3QgdD1uW2wrMV07by51bnNoaWZ0KHtrZXk6bltsXSxpbmRleDpsLGlzVGVtcGxhdGU6cyxwcmV2RHVwbGljYXRlOmRjKHQpLG5leHREdXBsaWNhdGU6ZmModCksbmV4dEluZGV4Om1jKHQpLHByZXZJbmRleDpjYyh0KX0pLGw9PT1hJiYocz0hMSksbD1jYyh0KX1yZXR1cm4gby5wdXNoKChlP3QucmVzaWR1YWxDbGFzc2VzOnQucmVzaWR1YWxTdHlsZXMpfHxudWxsKSxvfWZ1bmN0aW9uIE9jKHQsZSl7Zm9yKDt0OyllLnB1c2godC50ZW1wbGF0ZV8pLHQ9dC5uZXh0fWNvbnN0IFBjPXljJiZ0bCgiVFZpZXdEYXRhIil8fG51bGw7bGV0IHdjO2NvbnN0IGtjPXljJiZ0bCgiTFZpZXdCbHVlcHJpbnQiKXx8bnVsbCxTYz15YyYmdGwoIk1hdGNoZXNBcnJheSIpfHxudWxsLERjPXljJiZ0bCgiVFZpZXdDb21wb25lbnRzIil8fG51bGwsRWM9eWMmJnRsKCJUTm9kZUxvY2FsTmFtZXMiKXx8bnVsbCxSYz15YyYmdGwoIlROb2RlSW5pdGlhbElucHV0cyIpfHxudWxsO3ljJiZ0bCgiVE5vZGVJbml0aWFsRGF0YSIpO2NvbnN0IEFjPXljJiZ0bCgiTENsZWFudXAiKXx8bnVsbCxUYz15YyYmdGwoIlRDbGVhbnVwIil8fG51bGw7ZnVuY3Rpb24gTmModCl7aWYodCl7Y29uc3QgZT10LmRlYnVnO3JldHVybiBobihlLCJPYmplY3QgZG9lcyBub3QgaGF2ZSBhIGRlYnVnIHJlcHJlc2VudGF0aW9uLiIpLGV9cmV0dXJuIHR9ZnVuY3Rpb24gemModCxlPSExKXtjb25zdCBuPWVpKHQpO2lmKG4pc3dpdGNoKG4ubm9kZVR5cGUpe2Nhc2UgTm9kZS5URVhUX05PREU6cmV0dXJuIG4udGV4dENvbnRlbnQ7Y2FzZSBOb2RlLkNPTU1FTlRfTk9ERTpyZXR1cm5gXHgzYyEtLSR7bi50ZXh0Q29udGVudH0tLVx4M2VgO2Nhc2UgTm9kZS5FTEVNRU5UX05PREU6Y29uc3QgdD1uLm91dGVySFRNTDtyZXR1cm4gZT90OnQuc3BsaXQoIj4iK24uaW5uZXJIVE1MKyI8IilbMF0rIj4ifXJldHVybiBudWxsfWNsYXNzIElje2NvbnN0cnVjdG9yKHQpe3RoaXMuX3Jhd19sVmlldz10fWdldCBmbGFncygpe2NvbnN0IHQ9dGhpcy5fcmF3X2xWaWV3WzJdO3JldHVybntfX3Jhd19fZmxhZ3NfXzp0LGluaXRQaGFzZVN0YXRlOjMmdCxjcmVhdGlvbk1vZGU6ISEoNCZ0KSxmaXJzdFZpZXdQYXNzOiEhKDgmdCksY2hlY2tBbHdheXM6ISEoMTYmdCksZGlydHk6ISEoNjQmdCksYXR0YWNoZWQ6ISEoMTI4JnQpLGRlc3Ryb3llZDohISgyNTYmdCksaXNSb290OiEhKDUxMiZ0KSxpbmRleFdpdGhpbkluaXRQaGFzZTp0Pj4xMX19Z2V0IHBhcmVudCgpe3JldHVybiBOYyh0aGlzLl9yYXdfbFZpZXdbM10pfWdldCBob3N0SFRNTCgpe3JldHVybiB6Yyh0aGlzLl9yYXdfbFZpZXdbMF0sITApfWdldCBodG1sKCl7cmV0dXJuKHRoaXMubm9kZXN8fFtdKS5tYXAoSGMpLmpvaW4oIiIpfWdldCBjb250ZXh0KCl7cmV0dXJuIHRoaXMuX3Jhd19sVmlld1s4XX1nZXQgbm9kZXMoKXtjb25zdCB0PXRoaXMuX3Jhd19sVmlldztyZXR1cm4gTGModFsxXS5maXJzdENoaWxkLHQpfWdldCB0ZW1wbGF0ZSgpe3JldHVybiB0aGlzLnRWaWV3LnRlbXBsYXRlX31nZXQgdFZpZXcoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzFdfWdldCBjbGVhbnVwKCl7cmV0dXJuIHRoaXMuX3Jhd19sVmlld1s3XX1nZXQgaW5qZWN0b3IoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzldfWdldCByZW5kZXJlckZhY3RvcnkoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzEwXX1nZXQgcmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzExXX1nZXQgc2FuaXRpemVyKCl7cmV0dXJuIHRoaXMuX3Jhd19sVmlld1sxMl19Z2V0IGNoaWxkSGVhZCgpe3JldHVybiBOYyh0aGlzLl9yYXdfbFZpZXdbMTNdKX1nZXQgbmV4dCgpe3JldHVybiBOYyh0aGlzLl9yYXdfbFZpZXdbNF0pfWdldCBjaGlsZFRhaWwoKXtyZXR1cm4gTmModGhpcy5fcmF3X2xWaWV3WzE0XSl9Z2V0IGRlY2xhcmF0aW9uVmlldygpe3JldHVybiBOYyh0aGlzLl9yYXdfbFZpZXdbMTVdKX1nZXQgcXVlcmllcygpe3JldHVybiB0aGlzLl9yYXdfbFZpZXdbMTldfWdldCB0SG9zdCgpe3JldHVybiB0aGlzLl9yYXdfbFZpZXdbNl19Z2V0IGRlY2xzKCl7cmV0dXJuIEZjKHRoaXMudFZpZXcsdGhpcy5fcmF3X2xWaWV3LGdvLHRoaXMudFZpZXcuYmluZGluZ1N0YXJ0SW5kZXgpfWdldCB2YXJzKCl7cmV0dXJuIEZjKHRoaXMudFZpZXcsdGhpcy5fcmF3X2xWaWV3LHRoaXMudFZpZXcuYmluZGluZ1N0YXJ0SW5kZXgsdGhpcy50Vmlldy5leHBhbmRvU3RhcnRJbmRleCl9Z2V0IGV4cGFuZG8oKXtyZXR1cm4gRmModGhpcy50Vmlldyx0aGlzLl9yYXdfbFZpZXcsdGhpcy50Vmlldy5leHBhbmRvU3RhcnRJbmRleCx0aGlzLl9yYXdfbFZpZXcubGVuZ3RoKX1nZXQgY2hpbGRWaWV3cygpe2NvbnN0IHQ9W107bGV0IGU9dGhpcy5jaGlsZEhlYWQ7Zm9yKDtlOyl0LnB1c2goZSksZT1lLm5leHQ7cmV0dXJuIHR9fWZ1bmN0aW9uIEhjKHQpe2lmKCJFbGVtZW50Q29udGFpbmVyIj09PXQudHlwZSlyZXR1cm4odC5jaGlsZHJlbnx8W10pLm1hcChIYykuam9pbigiIik7aWYoIkljdUNvbnRhaW5lciI9PT10LnR5cGUpdGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKTtyZXR1cm4gemModC5uYXRpdmUsITApfHwiIn1mdW5jdGlvbiBGYyh0LGUsbixvKXtsZXQgaT1bXTtmb3IobGV0IGE9bjthPG87YSsrKWkucHVzaCh7aW5kZXg6YSx0OnQuZGF0YVthXSxsOmVbYV19KTtyZXR1cm57c3RhcnQ6bixlbmQ6byxsZW5ndGg6by1uLGNvbnRlbnQ6aX19ZnVuY3Rpb24gTGModCxlKXtpZih0KXtjb25zdCBuPVtdO2xldCBvPXQ7Zm9yKDtvOyluLnB1c2goQmMobyxlKSksbz1vLm5leHQ7cmV0dXJuIG59cmV0dXJuW119ZnVuY3Rpb24gQmModCxlKXtjb25zdCBuPWVpKGVbdC5pbmRleF0pLG89W10saT1bXSxhPWVbMV07Zm9yKGxldCBuPXQuZGlyZWN0aXZlU3RhcnQ7bjx0LmRpcmVjdGl2ZUVuZDtuKyspby5wdXNoKGEuZGF0YVtuXS50eXBlKSxpLnB1c2goZVtuXSk7cmV0dXJue2h0bWw6emMobiksdHlwZTpvYSh0LnR5cGUpLHROb2RlOnQsbmF0aXZlOm4sY2hpbGRyZW46TGModC5jaGlsZCxlKSxmYWN0b3JpZXM6byxpbnN0YW5jZXM6aSxpbmplY3RvcjpWYyh0LGEsZSksZ2V0IGluamVjdG9yUmVzb2x1dGlvblBhdGgoKXtyZXR1cm4gdC5kZWJ1Z05vZGVJbmplY3RvclBhdGgoZSl9fX1mdW5jdGlvbiBWYyh0LGUsbil7Y29uc3Qgbz1bXTtmb3IobGV0IG49dC5wcm92aWRlckluZGV4U3RhcnRfO248dC5wcm92aWRlckluZGV4RW5kXztuKyspby5wdXNoKGUuZGF0YVtuXSk7Y29uc3QgaT1bXTtmb3IobGV0IG49dC5wcm92aWRlckluZGV4RW5kXztuPHQuZGlyZWN0aXZlRW5kO24rKylpLnB1c2goZS5kYXRhW25dKTtyZXR1cm57Ymxvb206VWMobix0LmluamVjdG9ySW5kZXgpLGN1bXVsYXRpdmVCbG9vbTpVYyhlLmRhdGEsdC5pbmplY3RvckluZGV4KSxwcm92aWRlcnM6aSx2aWV3UHJvdmlkZXJzOm8scGFyZW50SW5qZWN0b3JJbmRleDpuW3QucHJvdmlkZXJJbmRleFN0YXJ0Xy0xXX19ZnVuY3Rpb24gamModCxlKXtjb25zdCBuPXRbZV07aWYoIm51bWJlciIhPXR5cGVvZiBuKXJldHVybiI/Pz8/Pz8/PyI7Y29uc3Qgbz0iMDAwMDAwMDAiK24udG9TdHJpbmcoMik7cmV0dXJuIG8uc3Vic3RyaW5nKG8ubGVuZ3RoLTgpfWZ1bmN0aW9uIFVjKHQsZSl7cmV0dXJuIGU8MD8iTk9fTk9ERV9JTkpFQ1RPUiI6YCR7amModCxlKzcpfV8ke2pjKHQsZSs2KX1fJHtqYyh0LGUrNSl9XyR7amModCxlKzQpfV8ke2pjKHQsZSszKX1fJHtqYyh0LGUrMil9XyR7amModCxlKzEpfV8ke2pjKHQsZSswKX1gfWNsYXNzIEdje2NvbnN0cnVjdG9yKHQpe3RoaXMuX3Jhd19sQ29udGFpbmVyPXR9Z2V0IGhhc1RyYW5zcGxhbnRlZFZpZXdzKCl7cmV0dXJuIHRoaXMuX3Jhd19sQ29udGFpbmVyWzJdfWdldCB2aWV3cygpe3JldHVybiB0aGlzLl9yYXdfbENvbnRhaW5lci5zbGljZShibykubWFwKE5jKX1nZXQgcGFyZW50KCl7cmV0dXJuIE5jKHRoaXMuX3Jhd19sQ29udGFpbmVyWzNdKX1nZXQgbW92ZWRWaWV3cygpe3JldHVybiB0aGlzLl9yYXdfbENvbnRhaW5lcls5XX1nZXQgaG9zdCgpe3JldHVybiB0aGlzLl9yYXdfbENvbnRhaW5lclswXX1nZXQgbmF0aXZlKCl7cmV0dXJuIHRoaXMuX3Jhd19sQ29udGFpbmVyWzddfWdldCBuZXh0KCl7cmV0dXJuIE5jKHRoaXMuX3Jhd19sQ29udGFpbmVyWzRdKX19Y29uc3QgV2M9UHJvbWlzZS5yZXNvbHZlKG51bGwpO2Z1bmN0aW9uIFljKHQsZSl7Y29uc3Qgbj10LmNvbnRlbnRRdWVyaWVzO2lmKG51bGwhPT1uKWZvcihsZXQgbz0wO288bi5sZW5ndGg7bys9Mil7Y29uc3QgaT1uW29dLGE9bltvKzFdO2lmKC0xIT09YSl7Y29uc3Qgbj10LmRhdGFbYV07bmdEZXZNb2RlJiZobihuLCJEaXJlY3RpdmVEZWYgbm90IGZvdW5kLiIpLG5nRGV2TW9kZSYmaG4obi5jb250ZW50UXVlcmllcywiY29udGVudFF1ZXJpZXMgZnVuY3Rpb24gc2hvdWxkIGJlIGRlZmluZWQiKSx6aShpKSxuLmNvbnRlbnRRdWVyaWVzKDIsZVthXSxhKX19fWZ1bmN0aW9uIHFjKHQsZSxuLG8saSxhLHIscyxsLGMpe2NvbnN0IGQ9bmdEZXZNb2RlPyhmdW5jdGlvbiBwKHQpe3JldHVybihmdW5jdGlvbiBlKHQsbil7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdm9pZCAwPT09TWMmJihNYz1uZXcodGwoIkxSb290VmlldyIpKSksTWM7Y2FzZSAxOnZvaWQgMD09PV9jJiYoX2M9bmV3IE1hcCk7bGV0IHQ9X2MuZ2V0KG4pO3JldHVybiB2b2lkIDA9PT10JiYodD1uZXcodGwoIkxDb21wb25lbnRWaWV3Iit2YyhuKSkpLF9jLnNldChuLHQpKSx0O2Nhc2UgMjp2b2lkIDA9PT1DYyYmKENjPW5ldyBNYXApO2xldCBlPUNjLmdldChuKTtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9bmV3KHRsKCJMRW1iZWRkZWRWaWV3Iit2YyhuKSkpLENjLnNldChuLGUpKSxlfX0pKHQudHlwZSx0LnRlbXBsYXRlJiZ0LnRlbXBsYXRlLm5hbWUpLmNvbmNhdCh0LmJsdWVwcmludCl9KShlKTplLmJsdWVwcmludC5zbGljZSgpO3JldHVybiBkWzBdPWksZFsyXT0xNDB8byxkaShkKSxuZ0Rldk1vZGUmJmUuZGVjbFROb2RlJiZ0JiZPbyhlLmRlY2xUTm9kZSx0KSxkWzNdPWRbMTVdPXQsZFs4XT1uLGRbMTBdPXJ8fHQmJnRbMTBdLG5nRGV2TW9kZSYmaG4oZFsxMF0sIlJlbmRlcmVyRmFjdG9yeSBpcyByZXF1aXJlZCIpLGRbMTFdPXN8fHQmJnRbMTFdLG5nRGV2TW9kZSYmaG4oZFsxMV0sIlJlbmRlcmVyIGlzIHJlcXVpcmVkIiksZFsxMl09bHx8dCYmdFsxMl18fG51bGwsZFs5XT1jfHx0JiZ0WzldfHxudWxsLGRbNl09YSxuZ0Rldk1vZGUmJmxuKDIhPWUudHlwZXx8bnVsbCE9PXQsITAsIkVtYmVkZGVkIHZpZXdzIG11c3QgaGF2ZSBwYXJlbnRMVmlldyIpLGRbMTZdPTI9PWUudHlwZT90WzE2XTpkLG5nRGV2TW9kZSYmKGZ1bmN0aW9uIG0odCl7aGModCxuZXcgSWModCkpfSkoZCksZH1mdW5jdGlvbiBaYyh0LGUsbixvLGkpe25nRGV2TW9kZSYmMCE9PWUmJmduKGUsZ28sIlROb2RlcyBjYW4ndCBiZSBpbiB0aGUgTFZpZXcgaGVhZGVyLiIpLG5nRGV2TW9kZSYmKGZ1bmN0aW9uIGEodCl7MiE9PXQmJjEhPT10JiY0IT09dCYmOCE9PXQmJjMyIT09dCYmMTYhPT10JiY2NCE9PXQmJmJuKGBFeHBlY3RlZCBUTm9kZVR5cGUgdG8gaGF2ZSBvbmx5IGEgc2luZ2xlIHR5cGUgc2VsZWN0ZWQsIGJ1dCBnb3QgJHtvYSh0KX0uYCl9KShuKTtsZXQgcj10LmRhdGFbZV07aWYobnVsbD09PXIpcj1YYyh0LGUsbixvLGkpLChmdW5jdGlvbiBzKCl7cmV0dXJuIG1pLmxGcmFtZS5pbkkxOG59KSgpJiYoci5mbGFnc3w9NjQpO2Vsc2UgaWYoNjQmci50eXBlKXtyLnR5cGU9bixyLnZhbHVlPW8sci5hdHRycz1pO2NvbnN0IGE9X2koKTtyLmluamVjdG9ySW5kZXg9bnVsbD09PWE/LTE6YS5pbmplY3RvckluZGV4LG5nRGV2TW9kZSYmUG8ocix0KSxuZ0Rldk1vZGUmJmxuKGUsci5pbmRleCwiRXhwZWN0aW5nIHNhbWUgaW5kZXgiKX1yZXR1cm4gQ2kociwhMCkscn1mdW5jdGlvbiBYYyh0LGUsbixvLGkpe2NvbnN0IGE9eWkoKSxyPU1pKCkscz10LmRhdGFbZV09KGZ1bmN0aW9uIGwodCxlLG4sbyxpLGEpe25nRGV2TW9kZSYmMCE9PW8mJmduKG8sZ28sIlROb2RlcyBjYW4ndCBiZSBpbiB0aGUgTFZpZXcgaGVhZGVyLiIpLG5nRGV2TW9kZSYmcG4oYSx2b2lkIDAsIid1bmRlZmluZWQnIGlzIG5vdCB2YWxpZCB2YWx1ZSBmb3IgJ2F0dHJzJyIpLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnROb2RlKyssbmdEZXZNb2RlJiZlJiZQbyhlLHQpO2xldCByPWU/ZS5pbmplY3RvckluZGV4Oi0xO2NvbnN0IHM9bmdEZXZNb2RlP25ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYix5LF8sQyxNLHYseCxPLFAsdyxrLFMsRCxFLFIpe3RoaXMudFZpZXdfPXQsdGhpcy50eXBlPWUsdGhpcy5pbmRleD1uLHRoaXMuaW5zZXJ0QmVmb3JlSW5kZXg9byx0aGlzLmluamVjdG9ySW5kZXg9aSx0aGlzLmRpcmVjdGl2ZVN0YXJ0PWEsdGhpcy5kaXJlY3RpdmVFbmQ9cix0aGlzLmRpcmVjdGl2ZVN0eWxpbmdMYXN0PXMsdGhpcy5wcm9wZXJ0eUJpbmRpbmdzPWwsdGhpcy5mbGFncz1jLHRoaXMucHJvdmlkZXJJbmRleGVzPWQsdGhpcy52YWx1ZT1wLHRoaXMuYXR0cnM9bSx0aGlzLm1lcmdlZEF0dHJzPXUsdGhpcy5sb2NhbE5hbWVzPWYsdGhpcy5pbml0aWFsSW5wdXRzPWcsdGhpcy5pbnB1dHM9aCx0aGlzLm91dHB1dHM9Yix0aGlzLnRWaWV3cz15LHRoaXMubmV4dD1fLHRoaXMucHJvamVjdGlvbk5leHQ9Qyx0aGlzLmNoaWxkPU0sdGhpcy5wYXJlbnQ9dix0aGlzLnByb2plY3Rpb249eCx0aGlzLnN0eWxlcz1PLHRoaXMuc3R5bGVzV2l0aG91dEhvc3Q9UCx0aGlzLnJlc2lkdWFsU3R5bGVzPXcsdGhpcy5jbGFzc2VzPWssdGhpcy5jbGFzc2VzV2l0aG91dEhvc3Q9Uyx0aGlzLnJlc2lkdWFsQ2xhc3Nlcz1ELHRoaXMuY2xhc3NCaW5kaW5ncz1FLHRoaXMuc3R5bGVCaW5kaW5ncz1SfWRlYnVnTm9kZUluamVjdG9yUGF0aCh0KXtjb25zdCBlPVtdO2xldCBuPXlhKHRoaXMsdCk7aWYoLTE9PT1uKXtjb25zdCBlPV9hKHRoaXMsdCk7ZSE9PWVhJiYobj1wYShlKSx0PW1hKGUsdCkpfWZvcig7LTEhPT1uOyl7bmdEZXZNb2RlJiZIbyh0LG4pLGUucHVzaChCYyh0WzFdLmRhdGFbbis4XSx0KSk7Y29uc3Qgbz10W24rOF07bz09PWVhP249LTE6KG49cGEobyksdD1tYShvLHQpKX1yZXR1cm4gZX1nZXQgdHlwZV8oKXtyZXR1cm4gb2EodGhpcy50eXBlKXx8YFROb2RlVHlwZS4/JHt0aGlzLnR5cGV9P2B9Z2V0IGZsYWdzXygpe2NvbnN0IHQ9W107cmV0dXJuIDE2JnRoaXMuZmxhZ3MmJnQucHVzaCgiVE5vZGVGbGFncy5oYXNDbGFzc0lucHV0IiksOCZ0aGlzLmZsYWdzJiZ0LnB1c2goIlROb2RlRmxhZ3MuaGFzQ29udGVudFF1ZXJ5IiksMzImdGhpcy5mbGFncyYmdC5wdXNoKCJUTm9kZUZsYWdzLmhhc1N0eWxlSW5wdXQiKSwxMjgmdGhpcy5mbGFncyYmdC5wdXNoKCJUTm9kZUZsYWdzLmhhc0hvc3RCaW5kaW5ncyIpLDImdGhpcy5mbGFncyYmdC5wdXNoKCJUTm9kZUZsYWdzLmlzQ29tcG9uZW50SG9zdCIpLDEmdGhpcy5mbGFncyYmdC5wdXNoKCJUTm9kZUZsYWdzLmlzRGlyZWN0aXZlSG9zdCIpLDY0JnRoaXMuZmxhZ3MmJnQucHVzaCgiVE5vZGVGbGFncy5pc0RldGFjaGVkIiksNCZ0aGlzLmZsYWdzJiZ0LnB1c2goIlROb2RlRmxhZ3MuaXNQcm9qZWN0ZWQiKSx0LmpvaW4oInwiKX1nZXQgdGVtcGxhdGVfKCl7aWYoMSZ0aGlzLnR5cGUpcmV0dXJuIHRoaXMudmFsdWU7Y29uc3QgdD1bXSxlPSJzdHJpbmciPT10eXBlb2YgdGhpcy52YWx1ZSYmdGhpcy52YWx1ZXx8dGhpcy50eXBlXztpZih0LnB1c2goIjwiLGUpLHRoaXMuZmxhZ3MmJnQucHVzaCgiICIsdGhpcy5mbGFnc18pLHRoaXMuYXR0cnMpZm9yKGxldCBlPTA7ZTx0aGlzLmF0dHJzLmxlbmd0aDspe2NvbnN0IG49dGhpcy5hdHRyc1tlKytdO2lmKCJudW1iZXIiPT10eXBlb2YgbilicmVhaztjb25zdCBvPXRoaXMuYXR0cnNbZSsrXTt0LnB1c2goIiAiLG4sJz0iJyxvLCciJyl9cmV0dXJuIHQucHVzaCgiPiIpLE9jKHRoaXMuY2hpbGQsdCksdC5wdXNoKCI8LyIsZSwiPiIpLHQuam9pbigiIil9Z2V0IHN0eWxlQmluZGluZ3NfKCl7cmV0dXJuIHhjKHRoaXMsITEpfWdldCBjbGFzc0JpbmRpbmdzXygpe3JldHVybiB4Yyh0aGlzLCEwKX1nZXQgcHJvdmlkZXJJbmRleFN0YXJ0Xygpe3JldHVybiAxMDQ4NTc1JnRoaXMucHJvdmlkZXJJbmRleGVzfWdldCBwcm92aWRlckluZGV4RW5kXygpe3JldHVybiB0aGlzLnByb3ZpZGVySW5kZXhTdGFydF8rKHRoaXMucHJvdmlkZXJJbmRleGVzPj4+MjApfX0odCxuLG8sbnVsbCxyLC0xLC0xLC0xLG51bGwsMCwwLGksYSxudWxsLG51bGwsdm9pZCAwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLGUsbnVsbCxudWxsLG51bGwsdm9pZCAwLG51bGwsbnVsbCx2b2lkIDAsMCwwKTp7dHlwZTpuLGluZGV4Om8saW5zZXJ0QmVmb3JlSW5kZXg6bnVsbCxpbmplY3RvckluZGV4OnIsZGlyZWN0aXZlU3RhcnQ6LTEsZGlyZWN0aXZlRW5kOi0xLGRpcmVjdGl2ZVN0eWxpbmdMYXN0Oi0xLHByb3BlcnR5QmluZGluZ3M6bnVsbCxmbGFnczowLHByb3ZpZGVySW5kZXhlczowLHZhbHVlOmksYXR0cnM6YSxtZXJnZWRBdHRyczpudWxsLGxvY2FsTmFtZXM6bnVsbCxpbml0aWFsSW5wdXRzOnZvaWQgMCxpbnB1dHM6bnVsbCxvdXRwdXRzOm51bGwsdFZpZXdzOm51bGwsbmV4dDpudWxsLHByb2plY3Rpb25OZXh0Om51bGwsY2hpbGQ6bnVsbCxwYXJlbnQ6ZSxwcm9qZWN0aW9uOm51bGwsc3R5bGVzOm51bGwsc3R5bGVzV2l0aG91dEhvc3Q6bnVsbCxyZXNpZHVhbFN0eWxlczp2b2lkIDAsY2xhc3NlczpudWxsLGNsYXNzZXNXaXRob3V0SG9zdDpudWxsLHJlc2lkdWFsQ2xhc3Nlczp2b2lkIDAsY2xhc3NCaW5kaW5nczowLHN0eWxlQmluZGluZ3M6MH07cmV0dXJuIG5nRGV2TW9kZSYmT2JqZWN0LnNlYWwocyksc30pKHQscj9hOmEmJmEucGFyZW50LG4sZSxvLGkpO3JldHVybiBudWxsPT09dC5maXJzdENoaWxkJiYodC5maXJzdENoaWxkPXMpLG51bGwhPT1hJiYocj9udWxsPT1hLmNoaWxkJiZudWxsIT09cy5wYXJlbnQmJihhLmNoaWxkPXMpOm51bGw9PT1hLm5leHQmJihhLm5leHQ9cykpLHN9ZnVuY3Rpb24gS2ModCxlLG4sbyl7aWYoMD09PW4pcmV0dXJuLTE7bmdEZXZNb2RlJiYoQW8odCksZG4odCxlWzFdLCJgTFZpZXdgIG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIGBUVmlld2AhIiksbG4odC5kYXRhLmxlbmd0aCxlLmxlbmd0aCwiRXhwZWN0aW5nIExWaWV3IHRvIGJlIHNhbWUgc2l6ZSBhcyBUVmlldyIpLGxuKHQuZGF0YS5sZW5ndGgsdC5ibHVlcHJpbnQubGVuZ3RoLCJFeHBlY3RpbmcgQmx1ZXByaW50IHRvIGJlIHNhbWUgc2l6ZSBhcyBUVmlldyIpLFRvKHQpKTtjb25zdCBpPWUubGVuZ3RoO2ZvcihsZXQgaT0wO2k8bjtpKyspZS5wdXNoKG8pLHQuYmx1ZXByaW50LnB1c2gobyksdC5kYXRhLnB1c2gobnVsbCk7cmV0dXJuIGl9ZnVuY3Rpb24gSmModCxlLG4pe25nRGV2TW9kZSYmbG4oc2koZSksITAsIlNob3VsZCBiZSBydW4gaW4gY3JlYXRpb24gbW9kZSIpLEZpKGUpO3RyeXtjb25zdCBvPXQudmlld1F1ZXJ5O251bGwhPT1vJiZOZCgxLG8sbik7Y29uc3QgaT10LnRlbXBsYXRlO251bGwhPT1pJiZ0ZCh0LGUsaSwxLG4pLHQuZmlyc3RDcmVhdGVQYXNzJiYodC5maXJzdENyZWF0ZVBhc3M9ITEpLHQuc3RhdGljQ29udGVudFF1ZXJpZXMmJlljKHQsZSksdC5zdGF0aWNWaWV3UXVlcmllcyYmTmQoMix0LnZpZXdRdWVyeSxuKTtjb25zdCBhPXQuY29tcG9uZW50cztudWxsIT09YSYmKGZ1bmN0aW9uIG8odCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKylTZCh0LGVbbl0pfSkoZSxhKX1jYXRjaChlKXt0aHJvdyB0LmZpcnN0Q3JlYXRlUGFzcyYmKHQuaW5jb21wbGV0ZUZpcnN0UGFzcz0hMCx0LmZpcnN0Q3JlYXRlUGFzcz0hMSksZX1maW5hbGx5e2VbMl0mPS01LFVpKCl9fWZ1bmN0aW9uIFFjKHQsZSxuLG8pe25nRGV2TW9kZSYmbG4oc2koZSksITEsIlNob3VsZCBiZSBydW4gaW4gdXBkYXRlIG1vZGUiKTtjb25zdCBpPWVbMl07aWYoMjU2PT0oMjU2JmkpKXJldHVybjtGaShlKTtjb25zdCBhPXhpKCk7dHJ5e2RpKGUpLGtpKHQuYmluZGluZ1N0YXJ0SW5kZXgpLG51bGwhPT1uJiZ0ZCh0LGUsbiwyLG8pO2NvbnN0IHI9Mz09KDMmaSk7aWYoIWEpaWYocil7Y29uc3Qgbj10LnByZU9yZGVyQ2hlY2tIb29rcztudWxsIT09biYmS2koZSxuLG51bGwpfWVsc2V7Y29uc3Qgbj10LnByZU9yZGVySG9va3M7bnVsbCE9PW4mJkppKGUsbiwwLG51bGwpLFFpKGUsMCl9aWYoKGZ1bmN0aW9uIHIodCl7Zm9yKGxldCBlPWZsKHQpO251bGwhPT1lO2U9Z2woZSkpe2lmKCFlWzJdKWNvbnRpbnVlO2NvbnN0IHQ9ZVs5XTtuZ0Rldk1vZGUmJmhuKHQsIlRyYW5zcGxhbnRlZCBWaWV3IGZsYWdzIHNldCBidXQgbWlzc2luZyBNT1ZFRF9WSUVXUyIpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCBuPXRbZV0sbz1uWzNdO25nRGV2TW9kZSYmRG8obyksMD09KDEwMjQmblsyXSkmJnBpKG8sMSksblsyXXw9MTAyNH19fSkoZSksKGZ1bmN0aW9uIHModCl7Zm9yKGxldCBlPWZsKHQpO251bGwhPT1lO2U9Z2woZSkpZm9yKGxldCB0PWJvO3Q8ZS5sZW5ndGg7dCsrKXtjb25zdCBuPWVbdF0sbz1uWzFdO25nRGV2TW9kZSYmaG4obywiVFZpZXcgbXVzdCBiZSBhbGxvY2F0ZWQiKSxsaShuKSYmUWMobyxuLG8udGVtcGxhdGUsbls4XSl9fSkoZSksbnVsbCE9PXQuY29udGVudFF1ZXJpZXMmJlljKHQsZSksIWEpaWYocil7Y29uc3Qgbj10LmNvbnRlbnRDaGVja0hvb2tzO251bGwhPT1uJiZLaShlLG4pfWVsc2V7Y29uc3Qgbj10LmNvbnRlbnRIb29rcztudWxsIT09biYmSmkoZSxuLDEpLFFpKGUsMSl9IShmdW5jdGlvbiBsKHQsZSl7Y29uc3Qgbj10Lmhvc3RCaW5kaW5nT3BDb2RlcztpZihudWxsIT09bil0cnl7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspe2NvbnN0IG89blt0XTtpZihvPDApV2kofm8pO2Vsc2V7Y29uc3QgaT1vLGE9blsrK3RdLHI9blsrK3RdO1JpKGEsaSkscigyLGVbaV0pfX19ZmluYWxseXtXaSgtMSl9fSkodCxlKTtjb25zdCBzPXQuY29tcG9uZW50cztudWxsIT09cyYmKGZ1bmN0aW9uIGModCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl3ZCh0LGVbbl0pfSkoZSxzKTtjb25zdCBsPXQudmlld1F1ZXJ5O2lmKG51bGwhPT1sJiZOZCgyLGwsbyksIWEpaWYocil7Y29uc3Qgbj10LnZpZXdDaGVja0hvb2tzO251bGwhPT1uJiZLaShlLG4pfWVsc2V7Y29uc3Qgbj10LnZpZXdIb29rcztudWxsIT09biYmSmkoZSxuLDIpLFFpKGUsMil9ITA9PT10LmZpcnN0VXBkYXRlUGFzcyYmKHQuZmlyc3RVcGRhdGVQYXNzPSExKSxhfHwoZVsyXSY9LTczKSwxMDI0JmVbMl0mJihlWzJdJj0tMTAyNSxwaShlWzNdLC0xKSl9ZmluYWxseXtVaSgpfX1mdW5jdGlvbiAkYyh0LGUsbixvKXtjb25zdCBpPWVbMTBdLGE9IXhpKCkscj1zaShlKTt0cnl7YSYmIXImJmkuYmVnaW4mJmkuYmVnaW4oKSxyJiZKYyh0LGUsbyksUWModCxlLG4sbyl9ZmluYWxseXthJiYhciYmaS5lbmQmJmkuZW5kKCl9fWZ1bmN0aW9uIHRkKHQsZSxuLG8saSl7Y29uc3QgYT1HaSgpLHI9MiZvO3RyeXtXaSgtMSksciYmZS5sZW5ndGg+Z28mJnNjKHQsZSxnbyx4aSgpKSxxbyhyPzI6MCxpKSxuKG8saSl9ZmluYWxseXtXaShhKSxxbyhyPzM6MSxpKX19ZnVuY3Rpb24gZWQodCxlLG4pe2lmKENvKGUpKXtjb25zdCBvPWUuZGlyZWN0aXZlRW5kO2ZvcihsZXQgaT1lLmRpcmVjdGl2ZVN0YXJ0O2k8bztpKyspe2NvbnN0IGU9dC5kYXRhW2ldO2UuY29udGVudFF1ZXJpZXMmJmUuY29udGVudFF1ZXJpZXMoMSxuW2ldLGkpfX19ZnVuY3Rpb24gbmQodCxlLG4pe3VpKCkmJigoZnVuY3Rpb24gbyh0LGUsbixpKXtjb25zdCBhPW4uZGlyZWN0aXZlU3RhcnQscj1uLmRpcmVjdGl2ZUVuZDt0LmZpcnN0Q3JlYXRlUGFzc3x8aGEobixlKSxMcyhpLGUpO2NvbnN0IHM9bi5pbml0aWFsSW5wdXRzO2ZvcihsZXQgbz1hO288cjtvKyspe2NvbnN0IGk9dC5kYXRhW29dLHI9eG8oaSk7ciYmKG5nRGV2TW9kZSYmaWEobiwzKSxfZChlLG4saSkpO2NvbnN0IGw9U2EoZSx0LG8sbik7THMobCxlKSxudWxsIT09cyYmdmQoZSxvLWEsbCxpLG4scyksciYmKHJpKG4uaW5kZXgsZSlbOF09bCl9fSkodCxlLG4sb2kobixlKSksMTI4PT0oMTI4Jm4uZmxhZ3MpJiYoZnVuY3Rpb24gaSh0LGUsbil7Y29uc3Qgbz1uLmRpcmVjdGl2ZVN0YXJ0LGk9bi5kaXJlY3RpdmVFbmQsYT1uLmluZGV4LHI9KGZ1bmN0aW9uIHMoKXtyZXR1cm4gbWkubEZyYW1lLmN1cnJlbnREaXJlY3RpdmVJbmRleH0pKCk7dHJ5e1dpKGEpO2ZvcihsZXQgbj1vO248aTtuKyspe2NvbnN0IG89dC5kYXRhW25dLGk9ZVtuXTtBaShuKSxudWxsPT09by5ob3N0QmluZGluZ3MmJjA9PT1vLmhvc3RWYXJzJiZudWxsPT09by5ob3N0QXR0cnN8fGZkKG8saSl9fWZpbmFsbHl7V2koLTEpLEFpKHIpfX0pKHQsZSxuKSl9ZnVuY3Rpb24gb2QodCxlLG49b2kpe2NvbnN0IG89ZS5sb2NhbE5hbWVzO2lmKG51bGwhPT1vKXtsZXQgaT1lLmluZGV4KzE7Zm9yKGxldCBhPTA7YTxvLmxlbmd0aDthKz0yKXtjb25zdCByPW9bYSsxXSxzPS0xPT09cj9uKGUsdCk6dFtyXTt0W2krK109c319fWZ1bmN0aW9uIGlkKHQpe2NvbnN0IGU9dC50VmlldztyZXR1cm4gbnVsbD09PWV8fGUuaW5jb21wbGV0ZUZpcnN0UGFzcz90LnRWaWV3PWFkKDEsbnVsbCx0LnRlbXBsYXRlLHQuZGVjbHMsdC52YXJzLHQuZGlyZWN0aXZlRGVmcyx0LnBpcGVEZWZzLHQudmlld1F1ZXJ5LHQuc2NoZW1hcyx0LmNvbnN0cyk6ZX1mdW5jdGlvbiBhZCh0LGUsbixvLGksYSxyLHMsbCxjKXtuZ0Rldk1vZGUmJm5nRGV2TW9kZS50VmlldysrO2NvbnN0IGQ9Z28rbyxwPWQraSxtPShmdW5jdGlvbiB1KHQsZSl7Y29uc3Qgbj1uZ0Rldk1vZGU/bmV3IGtjOltdO2ZvcihsZXQgbz0wO288ZTtvKyspbi5wdXNoKG88dD9udWxsOmFjKTtyZXR1cm4gbn0pKGQscCksZj0iZnVuY3Rpb24iPT10eXBlb2YgYz9jKCk6YyxnPW1bMV09bmdEZXZNb2RlP25ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYix5LF8sQyxNLHYseCxPLFAsdyxrLFMsRCxFLFIpe3RoaXMudHlwZT10LHRoaXMuYmx1ZXByaW50PWUsdGhpcy50ZW1wbGF0ZT1uLHRoaXMucXVlcmllcz1vLHRoaXMudmlld1F1ZXJ5PWksdGhpcy5kZWNsVE5vZGU9YSx0aGlzLmRhdGE9cix0aGlzLmJpbmRpbmdTdGFydEluZGV4PXMsdGhpcy5leHBhbmRvU3RhcnRJbmRleD1sLHRoaXMuaG9zdEJpbmRpbmdPcENvZGVzPWMsdGhpcy5maXJzdENyZWF0ZVBhc3M9ZCx0aGlzLmZpcnN0VXBkYXRlUGFzcz1wLHRoaXMuc3RhdGljVmlld1F1ZXJpZXM9bSx0aGlzLnN0YXRpY0NvbnRlbnRRdWVyaWVzPXUsdGhpcy5wcmVPcmRlckhvb2tzPWYsdGhpcy5wcmVPcmRlckNoZWNrSG9va3M9Zyx0aGlzLmNvbnRlbnRIb29rcz1oLHRoaXMuY29udGVudENoZWNrSG9va3M9Yix0aGlzLnZpZXdIb29rcz15LHRoaXMudmlld0NoZWNrSG9va3M9Xyx0aGlzLmRlc3Ryb3lIb29rcz1DLHRoaXMuY2xlYW51cD1NLHRoaXMuY29udGVudFF1ZXJpZXM9dix0aGlzLmNvbXBvbmVudHM9eCx0aGlzLmRpcmVjdGl2ZVJlZ2lzdHJ5PU8sdGhpcy5waXBlUmVnaXN0cnk9UCx0aGlzLmZpcnN0Q2hpbGQ9dyx0aGlzLnNjaGVtYXM9ayx0aGlzLmNvbnN0cz1TLHRoaXMuaW5jb21wbGV0ZUZpcnN0UGFzcz1ELHRoaXMuX2RlY2xzPUUsdGhpcy5fdmFycz1SfWdldCB0ZW1wbGF0ZV8oKXtjb25zdCB0PVtdO3JldHVybiBPYyh0aGlzLmZpcnN0Q2hpbGQsdCksdC5qb2luKCIiKX1nZXQgdHlwZV8oKXtyZXR1cm4gaG9bdGhpcy50eXBlXXx8YFRWaWV3VHlwZS4/JHt0aGlzLnR5cGV9P2B9fSh0LG0sbixudWxsLHMsZSwoZnVuY3Rpb24gaCh0KXtyZXR1cm4gdm9pZCAwPT09d2MmJih3Yz1uZXcgUGMpLHdjLmNvbmNhdCh0KX0pKG0pLmZpbGwobnVsbCxkKSxkLHAsbnVsbCwhMCwhMCwhMSwhMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJmdW5jdGlvbiI9PXR5cGVvZiBhP2EoKTphLCJmdW5jdGlvbiI9PXR5cGVvZiByP3IoKTpyLG51bGwsbCxmLCExLG8saSk6e3R5cGU6dCxibHVlcHJpbnQ6bSx0ZW1wbGF0ZTpuLHF1ZXJpZXM6bnVsbCx2aWV3UXVlcnk6cyxkZWNsVE5vZGU6ZSxkYXRhOm0uc2xpY2UoKS5maWxsKG51bGwsZCksYmluZGluZ1N0YXJ0SW5kZXg6ZCxleHBhbmRvU3RhcnRJbmRleDpwLGhvc3RCaW5kaW5nT3BDb2RlczpudWxsLGZpcnN0Q3JlYXRlUGFzczohMCxmaXJzdFVwZGF0ZVBhc3M6ITAsc3RhdGljVmlld1F1ZXJpZXM6ITEsc3RhdGljQ29udGVudFF1ZXJpZXM6ITEscHJlT3JkZXJIb29rczpudWxsLHByZU9yZGVyQ2hlY2tIb29rczpudWxsLGNvbnRlbnRIb29rczpudWxsLGNvbnRlbnRDaGVja0hvb2tzOm51bGwsdmlld0hvb2tzOm51bGwsdmlld0NoZWNrSG9va3M6bnVsbCxkZXN0cm95SG9va3M6bnVsbCxjbGVhbnVwOm51bGwsY29udGVudFF1ZXJpZXM6bnVsbCxjb21wb25lbnRzOm51bGwsZGlyZWN0aXZlUmVnaXN0cnk6ImZ1bmN0aW9uIj09dHlwZW9mIGE/YSgpOmEscGlwZVJlZ2lzdHJ5OiJmdW5jdGlvbiI9PXR5cGVvZiByP3IoKTpyLGZpcnN0Q2hpbGQ6bnVsbCxzY2hlbWFzOmwsY29uc3RzOmYsaW5jb21wbGV0ZUZpcnN0UGFzczohMX07cmV0dXJuIG5nRGV2TW9kZSYmT2JqZWN0LnNlYWwoZyksZ31mdW5jdGlvbiByZCh0LGUsbixvKXtjb25zdCBpPUhkKGUpO251bGw9PT1uPyhuZ0Rldk1vZGUmJk9iamVjdC5mcmVlemUoRmQodCkpLGkucHVzaChvKSk6KGkucHVzaChuKSx0LmZpcnN0Q3JlYXRlUGFzcyYmRmQodCkucHVzaChvLGkubGVuZ3RoLTEpKX1mdW5jdGlvbiBzZCh0LGUsbil7Zm9yKGxldCBvIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShvKSl7Y29uc3QgaT10W29dOyhuPW51bGw9PT1uP3t9Om4pLmhhc093blByb3BlcnR5KG8pP25bb10ucHVzaChlLGkpOm5bb109W2UsaV19cmV0dXJuIG59ZnVuY3Rpb24gbGQodCxlLG4sbyxpLGEscixzKXtuZ0Rldk1vZGUmJnBuKGksYWMsIkluY29taW5nIHZhbHVlIHNob3VsZCBuZXZlciBiZSBOT19DSEFOR0UuIik7Y29uc3QgbD1vaShlLG4pO2xldCBjLGQ9ZS5pbnB1dHM7aWYoIXMmJm51bGwhPWQmJihjPWRbb10pKVZkKHQsbixjLG8saSksTW8oZSkmJihmdW5jdGlvbiBwKHQsZSl7bmdEZXZNb2RlJiZSbyh0KTtjb25zdCBuPXJpKGUsdCk7MTYmblsyXXx8KG5bMl18PTY0KX0pKG4sZS5pbmRleCksbmdEZXZNb2RlJiYoZnVuY3Rpb24gbSh0LGUsbixvLGkpe2lmKDcmbilmb3IobGV0IGE9MDthPG8ubGVuZ3RoO2ErPTIpY2QodCxlLG4sb1thKzFdLGkpfSkobixsLGUudHlwZSxjLGkpO2Vsc2UgaWYoMyZlLnR5cGUpe2lmKG89KGZ1bmN0aW9uIHUodCl7cmV0dXJuImNsYXNzIj09PXQ/ImNsYXNzTmFtZSI6ImZvciI9PT10PyJodG1sRm9yIjoiZm9ybWFjdGlvbiI9PT10PyJmb3JtQWN0aW9uIjoiaW5uZXJIdG1sIj09PXQ/ImlubmVySFRNTCI6InJlYWRvbmx5Ij09PXQ/InJlYWRPbmx5IjoidGFiaW5kZXgiPT09dD8idGFiSW5kZXgiOnR9KShvKSxuZ0Rldk1vZGUpe2lmKChmdW5jdGlvbiBmKHQpe2lmKHQudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCJvbiIpKXtjb25zdCBlPWBCaW5kaW5nIHRvIGV2ZW50IHByb3BlcnR5ICcke3R9JyBpcyBkaXNhbGxvd2VkIGZvciBzZWN1cml0eSByZWFzb25zLCBwbGVhc2UgdXNlICgke3Quc2xpY2UoMil9KT0uLi5cbklmICcke3R9JyBpcyBhIGRpcmVjdGl2ZSBpbnB1dCwgbWFrZSBzdXJlIHRoZSBkaXJlY3RpdmUgaXMgaW1wb3J0ZWQgYnkgdGhlIGN1cnJlbnQgbW9kdWxlLmA7dGhyb3cgbmV3IEVycm9yKGUpfX0pKG8pLCEoZnVuY3Rpb24gZyh0LGUsbixvKXtyZXR1cm4hKG51bGwhPT10LnNjaGVtYXMmJiEoZGQodCxvLnZhbHVlKXx8biBpbiBlfHxzYShuKSkmJiJ1bmRlZmluZWQiIT10eXBlb2YgTm9kZSYmbnVsbCE9PU5vZGUmJmUgaW5zdGFuY2VvZiBOb2RlKX0pKHQsbCxvLGUpKXJldHVybiB2b2lkIHBkKG8sZSk7bmdEZXZNb2RlLnJlbmRlcmVyU2V0UHJvcGVydHkrK31pPW51bGwhPXI/cihpLGUudmFsdWV8fCIiLG8pOmksJG8oYSk/YS5zZXRQcm9wZXJ0eShsLG8saSk6c2Eobyl8fChsLnNldFByb3BlcnR5P2wuc2V0UHJvcGVydHkobyxpKTpsW29dPWkpfWVsc2UgMTImZS50eXBlJiZuZ0Rldk1vZGUmJiFkZCh0LGUudmFsdWUpJiZwZChvLGUpfWZ1bmN0aW9uIGNkKHQsZSxuLG8saSl7Y29uc3QgYT10WzExXTtvPShmdW5jdGlvbiByKHQpe3JldHVybmBuZy1yZWZsZWN0LSR7dD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdC5yZXBsYWNlKGVsLCgoLi4udCk9PiItIit0WzFdLnRvTG93ZXJDYXNlKCkpKX0pKHQucmVwbGFjZSgvWyRAXS9nLCJfIikpfWB9KShvKTtjb25zdCBzPShmdW5jdGlvbiBsKHQpe3RyeXtyZXR1cm4gbnVsbCE9dD90LnRvU3RyaW5nKCkuc2xpY2UoMCwzMCk6dH1jYXRjaCh0KXtyZXR1cm4iW0VSUk9SXSBFeGNlcHRpb24gd2hpbGUgdHJ5aW5nIHRvIHNlcmlhbGl6ZSB0aGUgdmFsdWUifX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKShpKTtpZigzJm4pbnVsbD09aT8kbyhhKT9hLnJlbW92ZUF0dHJpYnV0ZShlLG8pOmUucmVtb3ZlQXR0cmlidXRlKG8pOiRvKGEpP2Euc2V0QXR0cmlidXRlKGUsbyxzKTplLnNldEF0dHJpYnV0ZShvLHMpO2Vsc2V7Y29uc3QgdD0kcyhgYmluZGluZ3M9JHtKU09OLnN0cmluZ2lmeSh7W29dOnN9LG51bGwsMil9YCk7JG8oYSk/YS5zZXRWYWx1ZShlLHQpOmUudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24gZGQodCxlKXtjb25zdCBuPXQuc2NoZW1hcztpZihudWxsIT09bilmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyl7Y29uc3Qgbz1uW3RdO2lmKG89PT1Lc3x8bz09PVhzJiZlJiZlLmluZGV4T2YoIi0iKT4tMSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBwZCh0LGUpe2NvbnNvbGUuZXJyb3IoUWUoIjMwMyIsYENhbid0IGJpbmQgdG8gJyR7dH0nIHNpbmNlIGl0IGlzbid0IGEga25vd24gcHJvcGVydHkgb2YgJyR7ZS52YWx1ZX0nLmApKX1mdW5jdGlvbiBtZCh0LGUsbixvKXtuZ0Rldk1vZGUmJkFvKHQpO2xldCBpPSExO2lmKHVpKCkpe2NvbnN0IGE9KGZ1bmN0aW9uIGEodCxlLG4pe25nRGV2TW9kZSYmQW8odCksbmdEZXZNb2RlJiZpYShuLDE1KTtjb25zdCBvPXQuZGlyZWN0aXZlUmVnaXN0cnk7bGV0IGk9bnVsbDtpZihvKWZvcihsZXQgYT0wO2E8by5sZW5ndGg7YSsrKXtjb25zdCByPW9bYV07ZWMobixyLnNlbGVjdG9ycywhMSkmJihpfHwoaT1uZ0Rldk1vZGU/bmV3IFNjOltdKSxDYShoYShuLGUpLHQsci50eXBlKSx4byhyKT8obmdEZXZNb2RlJiYoaWEobiwyLGAiJHtuLnZhbHVlfSIgdGFncyBjYW5ub3QgYmUgdXNlZCBhcyBjb21wb25lbnQgaG9zdHMuIFBsZWFzZSB1c2UgYSBkaWZmZXJlbnQgdGFnIHRvIGFjdGl2YXRlIHRoZSAke0dlKHIudHlwZSl9IGNvbXBvbmVudC5gKSwyJm4uZmxhZ3MmJnNsKG4pKSxnZCh0LG4pLGkudW5zaGlmdChyKSk6aS5wdXNoKHIpKX1yZXR1cm4gaX0pKHQsZSxuKSxyPW51bGw9PT1vP251bGw6eyIiOi0xfTtpZihudWxsIT09YSl7aT0hMCxiZChuLHQuZGF0YS5sZW5ndGgsYS5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7dCsrKXtjb25zdCBlPWFbdF07ZS5wcm92aWRlcnNSZXNvbHZlciYmZS5wcm92aWRlcnNSZXNvbHZlcihlKX1sZXQgbz0hMSxzPSExLGw9S2ModCxlLGEubGVuZ3RoLG51bGwpO25nRGV2TW9kZSYmZG4obCxuLmRpcmVjdGl2ZVN0YXJ0LCJUTm9kZS5kaXJlY3RpdmVTdGFydCBzaG91bGQgcG9pbnQgdG8ganVzdCBhbGxvY2F0ZWQgc3BhY2UiKTtmb3IobGV0IGk9MDtpPGEubGVuZ3RoO2krKyl7Y29uc3QgYz1hW2ldO24ubWVyZ2VkQXR0cnM9bGEobi5tZXJnZWRBdHRycyxjLmhvc3RBdHRycykseWQodCxuLGUsbCxjKSxoZChsLGMsciksbnVsbCE9PWMuY29udGVudFF1ZXJpZXMmJihuLmZsYWdzfD04KSxudWxsPT09Yy5ob3N0QmluZGluZ3MmJm51bGw9PT1jLmhvc3RBdHRycyYmMD09PWMuaG9zdFZhcnN8fChuLmZsYWdzfD0xMjgpO2NvbnN0IGQ9Yy50eXBlLnByb3RvdHlwZTshbyYmKGQubmdPbkNoYW5nZXN8fGQubmdPbkluaXR8fGQubmdEb0NoZWNrKSYmKCh0LnByZU9yZGVySG9va3N8fCh0LnByZU9yZGVySG9va3M9W10pKS5wdXNoKG4uaW5kZXgpLG89ITApLHN8fCFkLm5nT25DaGFuZ2VzJiYhZC5uZ0RvQ2hlY2t8fCgodC5wcmVPcmRlckNoZWNrSG9va3N8fCh0LnByZU9yZGVyQ2hlY2tIb29rcz1bXSkpLnB1c2gobi5pbmRleCkscz0hMCksbCsrfSEoZnVuY3Rpb24gcih0LGUpe25nRGV2TW9kZSYmQW8odCk7Y29uc3Qgbj1lLmRpcmVjdGl2ZVN0YXJ0LG89ZS5kaXJlY3RpdmVFbmQsaT10LmRhdGEsYT1lLmF0dHJzLHI9bmdEZXZNb2RlP25ldyBSYzpbXTtsZXQgcz1udWxsLGw9bnVsbDtmb3IobGV0IHQ9bjt0PG87dCsrKXtjb25zdCBuPWlbdF0sbz1uLmlucHV0cyxjPW51bGw9PT1hfHxLbChlKT9udWxsOnhkKG8sYSk7ci5wdXNoKGMpLHM9c2Qobyx0LHMpLGw9c2Qobi5vdXRwdXRzLHQsbCl9bnVsbCE9PXMmJihzLmhhc093blByb3BlcnR5KCJjbGFzcyIpJiYoZS5mbGFnc3w9MTYpLHMuaGFzT3duUHJvcGVydHkoInN0eWxlIikmJihlLmZsYWdzfD0zMikpLGUuaW5pdGlhbElucHV0cz1yLGUuaW5wdXRzPXMsZS5vdXRwdXRzPWx9KSh0LG4pfXImJihmdW5jdGlvbiBzKHQsZSxuKXtpZihlKXtjb25zdCBvPXQubG9jYWxOYW1lcz1uZ0Rldk1vZGU/bmV3IEVjOltdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9Mil7Y29uc3QgaT1uW2VbdCsxXV07aWYobnVsbD09aSl0aHJvdyBuZXcgS2UoIjMwMSIsYEV4cG9ydCBvZiBuYW1lICcke2VbdCsxXX0nIG5vdCBmb3VuZCFgKTtvLnB1c2goZVt0XSxpKX19fSkobixvLHIpfXJldHVybiBuLm1lcmdlZEF0dHJzPWxhKG4ubWVyZ2VkQXR0cnMsbi5hdHRycyksaX1mdW5jdGlvbiB1ZCh0LGUsbixvLGksYSl7bmdEZXZNb2RlJiZBbyh0KTtjb25zdCByPWEuaG9zdEJpbmRpbmdzO2lmKHIpe2xldCBuPXQuaG9zdEJpbmRpbmdPcENvZGVzO251bGw9PT1uJiYobj10Lmhvc3RCaW5kaW5nT3BDb2Rlcz1bXSk7Y29uc3QgYT1+ZS5pbmRleDsoZnVuY3Rpb24gcyh0KXtsZXQgZT10Lmxlbmd0aDtmb3IoO2U+MDspe2NvbnN0IG49dFstLWVdO2lmKCJudW1iZXIiPT10eXBlb2YgbiYmbjwwKXJldHVybiBufXJldHVybiAwfSkobikhPWEmJm4ucHVzaChhKSxuLnB1c2gobyxpLHIpfX1mdW5jdGlvbiBmZCh0LGUpe251bGwhPT10Lmhvc3RCaW5kaW5ncyYmdC5ob3N0QmluZGluZ3MoMSxlKX1mdW5jdGlvbiBnZCh0LGUpe25nRGV2TW9kZSYmQW8odCksZS5mbGFnc3w9MiwodC5jb21wb25lbnRzfHwodC5jb21wb25lbnRzPW5nRGV2TW9kZT9uZXcgRGM6W10pKS5wdXNoKGUuaW5kZXgpfWZ1bmN0aW9uIGhkKHQsZSxuKXtpZihuKXtpZihlLmV4cG9ydEFzKWZvcihsZXQgbz0wO288ZS5leHBvcnRBcy5sZW5ndGg7bysrKW5bZS5leHBvcnRBc1tvXV09dDt4byhlKSYmKG5bIiJdPXQpfX1mdW5jdGlvbiBiZCh0LGUsbil7bmdEZXZNb2RlJiZjbihuLHQuZGlyZWN0aXZlRW5kLXQuZGlyZWN0aXZlU3RhcnQsIlJlYWNoZWQgdGhlIG1heCBudW1iZXIgb2YgZGlyZWN0aXZlcyIpLHQuZmxhZ3N8PTEsdC5kaXJlY3RpdmVTdGFydD1lLHQuZGlyZWN0aXZlRW5kPWUrbix0LnByb3ZpZGVySW5kZXhlcz1lfWZ1bmN0aW9uIHlkKHQsZSxuLG8saSl7bmdEZXZNb2RlJiZnbihvLGdvLCJNdXN0IGJlIGluIEV4cGFuZG8gc2VjdGlvbiIpLHQuZGF0YVtvXT1pO2NvbnN0IGE9aS5mYWN0b3J5fHwoaS5mYWN0b3J5PUZvKGkudHlwZSwhMCkpLHI9bmV3IG5hKGEseG8oaSksbnVsbCk7dC5ibHVlcHJpbnRbb109cixuW29dPXIsdWQodCxlLDAsbyxLYyh0LG4saS5ob3N0VmFycyxhYyksaSl9ZnVuY3Rpb24gX2QodCxlLG4pe2NvbnN0IG89b2koZSx0KSxpPWlkKG4pLGE9dFsxMF0scj1EZCh0LHFjKHQsaSxudWxsLG4ub25QdXNoPzY0OjE2LG8sZSxhLGEuY3JlYXRlUmVuZGVyZXIobyxuKSxudWxsLG51bGwpKTt0W2UuaW5kZXhdPXJ9ZnVuY3Rpb24gQ2QodCxlLG4sbyxpLGEpe25nRGV2TW9kZSYmKHBuKG8sYWMsIkluY29taW5nIHZhbHVlIHNob3VsZCBuZXZlciBiZSBOT19DSEFOR0UuIiksKGZ1bmN0aW9uIHIodCl7aWYodC50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoIm9uIikpe2NvbnN0IGU9YEJpbmRpbmcgdG8gZXZlbnQgYXR0cmlidXRlICcke3R9JyBpcyBkaXNhbGxvd2VkIGZvciBzZWN1cml0eSByZWFzb25zLCBwbGVhc2UgdXNlICgke3Quc2xpY2UoMil9KT0uLi5gO3Rocm93IG5ldyBFcnJvcihlKX19KShuKSxpYSh0LDIsYEF0dGVtcHRlZCB0byBzZXQgYXR0cmlidXRlIFxgJHtufVxgIG9uIGEgY29udGFpbmVyIG5vZGUuIEhvc3QgYmluZGluZ3MgYXJlIG5vdCB2YWxpZCBvbiBuZy1jb250YWluZXIgb3IgbmctdGVtcGxhdGUuYCkpO2NvbnN0IHM9b2kodCxlKTtNZChlWzExXSxzLGEsdC52YWx1ZSxuLG8saSl9ZnVuY3Rpb24gTWQodCxlLG4sbyxpLGEscil7aWYobnVsbD09YSluZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlclJlbW92ZUF0dHJpYnV0ZSsrLCRvKHQpP3QucmVtb3ZlQXR0cmlidXRlKGUsaSxuKTplLnJlbW92ZUF0dHJpYnV0ZShpKTtlbHNle25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0QXR0cmlidXRlKys7Y29uc3Qgcz1udWxsPT1yPyRlKGEpOnIoYSxvfHwiIixpKTskbyh0KT90LnNldEF0dHJpYnV0ZShlLGkscyxuKTpuP2Uuc2V0QXR0cmlidXRlTlMobixpLHMpOmUuc2V0QXR0cmlidXRlKGkscyl9fWZ1bmN0aW9uIHZkKHQsZSxuLG8saSxhKXtjb25zdCByPWFbZV07aWYobnVsbCE9PXIpe2NvbnN0IGU9by5zZXRJbnB1dDtmb3IobGV0IGE9MDthPHIubGVuZ3RoOyl7Y29uc3Qgcz1yW2ErK10sbD1yW2ErK10sYz1yW2ErK107bnVsbCE9PWU/by5zZXRJbnB1dChuLGMscyxsKTpuW2xdPWMsbmdEZXZNb2RlJiZjZCh0LG9pKGksdCksaS50eXBlLGwsYyl9fX1mdW5jdGlvbiB4ZCh0LGUpe2xldCBuPW51bGwsbz0wO2Zvcig7bzxlLmxlbmd0aDspe2NvbnN0IGk9ZVtvXTtpZigwIT09aSlpZig1IT09aSl7aWYoIm51bWJlciI9PXR5cGVvZiBpKWJyZWFrO3QuaGFzT3duUHJvcGVydHkoaSkmJihudWxsPT09biYmKG49W10pLG4ucHVzaChpLHRbaV0sZVtvKzFdKSksbys9Mn1lbHNlIG8rPTI7ZWxzZSBvKz00fXJldHVybiBufWNvbnN0IE9kPSgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmVW4oKSYmdGwoIkxDb250YWluZXIiKTtmdW5jdGlvbiBQZCh0LGUsbixvKXtuZ0Rldk1vZGUmJlJvKGUpLG5nRGV2TW9kZSYmISRvKGVbMTFdKSYmeW4obik7Y29uc3QgaT1uZXcobmdEZXZNb2RlP09kOkFycmF5KSh0LCEwLCExLGUsbnVsbCwwLG8sbixudWxsLG51bGwpO3JldHVybiBuZ0Rldk1vZGUmJmxuKGkubGVuZ3RoLGJvLCJTaG91bGQgYWxsb2NhdGUgY29ycmVjdCBudW1iZXIgb2Ygc2xvdHMgZm9yIExDb250YWluZXIgaGVhZGVyLiIpLG5nRGV2TW9kZSYmKGZ1bmN0aW9uIGEodCl7aGModCxuZXcgR2ModCkpfSkoaSksaX1mdW5jdGlvbiB3ZCh0LGUpe25nRGV2TW9kZSYmbG4oc2kodCksITEsIlNob3VsZCBiZSBydW4gaW4gdXBkYXRlIG1vZGUiKTtjb25zdCBuPXJpKGUsdCk7aWYobGkobikpe2NvbnN0IHQ9blsxXTs4MCZuWzJdP1FjKHQsbix0LnRlbXBsYXRlLG5bOF0pOm5bNV0+MCYma2Qobil9fWZ1bmN0aW9uIGtkKHQpe2ZvcihsZXQgZT1mbCh0KTtudWxsIT09ZTtlPWdsKGUpKWZvcihsZXQgdD1ibzt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdO2lmKDEwMjQmblsyXSl7Y29uc3QgdD1uWzFdO25nRGV2TW9kZSYmaG4odCwiVFZpZXcgbXVzdCBiZSBhbGxvY2F0ZWQiKSxRYyh0LG4sdC50ZW1wbGF0ZSxuWzhdKX1lbHNlIG5bNV0+MCYma2Qobil9Y29uc3QgZT10WzFdLmNvbXBvbmVudHM7aWYobnVsbCE9PWUpZm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2NvbnN0IG89cmkoZVtuXSx0KTtsaShvKSYmb1s1XT4wJiZrZChvKX19ZnVuY3Rpb24gU2QodCxlKXtuZ0Rldk1vZGUmJmxuKHNpKHQpLCEwLCJTaG91bGQgYmUgcnVuIGluIGNyZWF0aW9uIG1vZGUiKTtjb25zdCBuPXJpKGUsdCksbz1uWzFdOyEoZnVuY3Rpb24gaSh0LGUpe2ZvcihsZXQgbj1lLmxlbmd0aDtuPHQuYmx1ZXByaW50Lmxlbmd0aDtuKyspZS5wdXNoKHQuYmx1ZXByaW50W25dKX0pKG8sbiksSmMobyxuLG5bOF0pfWZ1bmN0aW9uIERkKHQsZSl7cmV0dXJuIHRbMTNdP3RbMTRdWzRdPWU6dFsxM109ZSx0WzE0XT1lLGV9ZnVuY3Rpb24gRWQodCl7Zm9yKDt0Oyl7dFsyXXw9NjQ7Y29uc3QgZT1tbCh0KTtpZigwIT0oNTEyJnRbMl0pJiYhZSlyZXR1cm4gdDt0PWV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gUmQodCl7Zm9yKGxldCBlPTA7ZTx0LmNvbXBvbmVudHMubGVuZ3RoO2UrKyl7Y29uc3Qgbj10LmNvbXBvbmVudHNbZV0sbz1WcyhuKSxpPW9bMV07JGMoaSxvLGkudGVtcGxhdGUsbil9fWZ1bmN0aW9uIEFkKHQsZSxuKXtjb25zdCBvPWVbMTBdO28uYmVnaW4mJm8uYmVnaW4oKTt0cnl7UWModCxlLHQudGVtcGxhdGUsbil9Y2F0Y2godCl7dGhyb3cgQmQoZSx0KSx0fWZpbmFsbHl7by5lbmQmJm8uZW5kKCl9fWZ1bmN0aW9uIFRkKHQpe1JkKHRbOF0pfWZ1bmN0aW9uIE5kKHQsZSxuKXtuZ0Rldk1vZGUmJmhuKGUsIlZpZXcgcXVlcmllcyBmdW5jdGlvbiB0byBleGVjdXRlIG11c3QgYmUgZGVmaW5lZC4iKSx6aSgwKSxlKHQsbil9ZnVuY3Rpb24gemQodCxlLG4sbywuLi5pKXtpZihudWxsPT09dFtvXSYmKG51bGw9PWUuaW5wdXRzfHwhZS5pbnB1dHNbbl0pKXsoZS5wcm9wZXJ0eUJpbmRpbmdzfHwoZS5wcm9wZXJ0eUJpbmRpbmdzPVtdKSkucHVzaChvKTtsZXQgYT1uO2kubGVuZ3RoPjAmJihhKz1hbCtpLmpvaW4oYWwpKSx0W29dPWF9fWNvbnN0IElkPVdjO2Z1bmN0aW9uIEhkKHQpe3JldHVybiB0WzddfHwodFs3XT1uZ0Rldk1vZGU/bmV3IEFjOltdKX1mdW5jdGlvbiBGZCh0KXtyZXR1cm4gdC5jbGVhbnVwfHwodC5jbGVhbnVwPW5nRGV2TW9kZT9uZXcgVGM6W10pfWZ1bmN0aW9uIExkKHQsZSxuKXtyZXR1cm4obnVsbD09PXR8fHhvKHQpKSYmKG49KGZ1bmN0aW9uIG8odCl7Zm9yKDtBcnJheS5pc0FycmF5KHQpOyl7aWYoIm9iamVjdCI9PXR5cGVvZiB0WzFdKXJldHVybiB0O3Q9dFswXX1yZXR1cm4gbnVsbH0pKG5bZS5pbmRleF0pKSxuWzExXX1mdW5jdGlvbiBCZCh0LGUpe2NvbnN0IG49dFs5XSxvPW4/bi5nZXQoWnMsbnVsbCk6bnVsbDtvJiZvLmhhbmRsZUVycm9yKGUpfWZ1bmN0aW9uIFZkKHQsZSxuLG8saSl7Zm9yKGxldCBhPTA7YTxuLmxlbmd0aDspe2NvbnN0IHI9blthKytdLHM9blthKytdLGw9ZVtyXTtuZ0Rldk1vZGUmJl9uKGUscik7Y29uc3QgYz10LmRhdGFbcl07bnVsbCE9PWMuc2V0SW5wdXQ/Yy5zZXRJbnB1dChsLGksbyxzKTpsW3NdPWl9fWZ1bmN0aW9uIGpkKHQsZSxuKXtuZ0Rldk1vZGUmJnNuKG4sIlZhbHVlIHNob3VsZCBiZSBhIHN0cmluZyIpLG5nRGV2TW9kZSYmcG4obixhYywidmFsdWUgc2hvdWxkIG5vdCBiZSBOT19DSEFOR0UiKSxuZ0Rldk1vZGUmJl9uKHQsZSk7Y29uc3Qgbz1uaShlLHQpO25nRGV2TW9kZSYmaG4obywibmF0aXZlIGVsZW1lbnQgc2hvdWxkIGV4aXN0IiksX2wodFsxMV0sbyxuKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gVWQodCxlLG4pe25nRGV2TW9kZSYmQW8oZ2koKSwiRXhwZWN0aW5nIHRvIGJlIGNhbGxlZCBpbiBmaXJzdCB0ZW1wbGF0ZSBwYXNzIG9ubHkiKTtsZXQgbz1uP3Quc3R5bGVzOm51bGwsaT1uP3QuY2xhc3NlczpudWxsLGE9MDtpZihudWxsIT09ZSlmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdOyJudW1iZXIiPT10eXBlb2Ygbj9hPW46MT09YT9pPVdlKGksbik6Mj09YSYmKG89V2UobyxuKyI6ICIrZVsrK3RdKyI7IikpfW4/dC5zdHlsZXM9bzp0LnN0eWxlc1dpdGhvdXRIb3N0PW8sbj90LmNsYXNzZXM9aTp0LmNsYXNzZXNXaXRob3V0SG9zdD1pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEdkPW5ldyBHYSgiSU5KRUNUT1IiLC0xKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgV2R7Z2V0KHQsZT1ncil7aWYoZT09PWdyKXtjb25zdCBlPW5ldyBFcnJvcihgTnVsbEluamVjdG9yRXJyb3I6IE5vIHByb3ZpZGVyIGZvciAke0dlKHQpfSFgKTt0aHJvdyBlLm5hbWU9Ik51bGxJbmplY3RvckVycm9yIixlfXJldHVybiBlfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgWWQ9bmV3IEdhKCJTZXQgSW5qZWN0b3Igc2NvcGUuIikscWQ9e30sWmQ9e307Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2xldCBYZDtmdW5jdGlvbiBLZCgpe3JldHVybiB2b2lkIDA9PT1YZCYmKFhkPW5ldyBXZCksWGR9ZnVuY3Rpb24gSmQodCxlPW51bGwsbj1udWxsLG8pe3JldHVybiBuZXcgUWQodCxuLGV8fEtkKCksbyl9Y2xhc3MgUWR7Y29uc3RydWN0b3IodCxlLG4sbz1udWxsKXt0aGlzLnBhcmVudD1uLHRoaXMucmVjb3Jkcz1uZXcgTWFwLHRoaXMuaW5qZWN0b3JEZWZUeXBlcz1uZXcgU2V0LHRoaXMub25EZXN0cm95PW5ldyBTZXQsdGhpcy5fZGVzdHJveWVkPSExO2NvbnN0IGk9W107ZSYmZXIoZSwobj0+dGhpcy5wcm9jZXNzUHJvdmlkZXIobix0LGUpKSksZXIoW3RdLCh0PT50aGlzLnByb2Nlc3NJbmplY3RvclR5cGUodCxbXSxpKSkpLHRoaXMucmVjb3Jkcy5zZXQoR2QsZXAodm9pZCAwLHRoaXMpKTtjb25zdCBhPXRoaXMucmVjb3Jkcy5nZXQoWWQpO3RoaXMuc2NvcGU9bnVsbCE9YT9hLnZhbHVlOm51bGwsdGhpcy5zb3VyY2U9b3x8KCJvYmplY3QiPT10eXBlb2YgdD9udWxsOkdlKHQpKX1nZXQgZGVzdHJveWVkKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZH1kZXN0cm95KCl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKSx0aGlzLl9kZXN0cm95ZWQ9ITA7dHJ5e3RoaXMub25EZXN0cm95LmZvckVhY2goKHQ9PnQubmdPbkRlc3Ryb3koKSkpfWZpbmFsbHl7dGhpcy5yZWNvcmRzLmNsZWFyKCksdGhpcy5vbkRlc3Ryb3kuY2xlYXIoKSx0aGlzLmluamVjdG9yRGVmVHlwZXMuY2xlYXIoKX19Z2V0KHQsZT1ncixuPUVuLkRlZmF1bHQpe3RoaXMuYXNzZXJ0Tm90RGVzdHJveWVkKCk7Y29uc3Qgbz1Dcih0aGlzKSxpPUFuKHZvaWQgMCk7dHJ5e2lmKCEobiZFbi5Ta2lwU2VsZikpe2xldCBlPXRoaXMucmVjb3Jkcy5nZXQodCk7aWYodm9pZCAwPT09ZSl7Y29uc3Qgbj0oZnVuY3Rpb24gbyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdHx8Im9iamVjdCI9PXR5cGVvZiB0JiZ0IGluc3RhbmNlb2YgR2F9KSh0KSYmeG4odCk7ZT1uJiZ0aGlzLmluamVjdGFibGVEZWZJblNjb3BlKG4pP2VwKCRkKHQpLHFkKTpudWxsLHRoaXMucmVjb3Jkcy5zZXQodCxlKX1pZihudWxsIT1lKXJldHVybiB0aGlzLmh5ZHJhdGUodCxlKX1yZXR1cm4obiZFbi5TZWxmP0tkKCk6dGhpcy5wYXJlbnQpLmdldCh0LGU9biZFbi5PcHRpb25hbCYmZT09PWdyP251bGw6ZSl9Y2F0Y2goZSl7aWYoIk51bGxJbmplY3RvckVycm9yIj09PWUubmFtZSl7aWYoKGUubmdUZW1wVG9rZW5QYXRoPWUubmdUZW1wVG9rZW5QYXRofHxbXSkudW5zaGlmdChHZSh0KSksbyl0aHJvdyBlO3JldHVybihmdW5jdGlvbiBuKHQsZSxvLGkpe2NvbnN0IGE9dC5uZ1RlbXBUb2tlblBhdGg7dGhyb3cgZVticl0mJmEudW5zaGlmdChlW2JyXSksdC5tZXNzYWdlPShmdW5jdGlvbiByKHQsZSxuLG89bnVsbCl7dD10JiYiXG4iPT09dC5jaGFyQXQoMCkmJiLJtSI9PXQuY2hhckF0KDEpP3Quc3Vic3RyKDIpOnQ7bGV0IGk9R2UoZSk7aWYoQXJyYXkuaXNBcnJheShlKSlpPWUubWFwKEdlKS5qb2luKCIgLT4gIik7ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIGUpe2xldCB0PVtdO2ZvcihsZXQgbiBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkobikpe2xldCBvPWVbbl07dC5wdXNoKG4rIjoiKygic3RyaW5nIj09dHlwZW9mIG8/SlNPTi5zdHJpbmdpZnkobyk6R2UobykpKX1pPWB7JHt0LmpvaW4oIiwgIil9fWB9cmV0dXJuYCR7bn0ke28/IigiK28rIikiOiIifVske2l9XTogJHt0LnJlcGxhY2UoaHIsIlxuICAiKX1gfSkoIlxuIit0Lm1lc3NhZ2UsYSxvLGkpLHQubmdUb2tlblBhdGg9YSx0Lm5nVGVtcFRva2VuUGF0aD1udWxsLHR9KShlLHQsIlIzSW5qZWN0b3JFcnJvciIsdGhpcy5zb3VyY2UpfXRocm93IGV9ZmluYWxseXtBbihpKSxDcihvKX19X3Jlc29sdmVJbmplY3RvckRlZlR5cGVzKCl7dGhpcy5pbmplY3RvckRlZlR5cGVzLmZvckVhY2goKHQ9PnRoaXMuZ2V0KHQpKSl9dG9TdHJpbmcoKXtjb25zdCB0PVtdO3JldHVybiB0aGlzLnJlY29yZHMuZm9yRWFjaCgoKGUsbik9PnQucHVzaChHZShuKSkpKSxgUjNJbmplY3Rvclske3Quam9pbigiLCAiKX1dYH1hc3NlcnROb3REZXN0cm95ZWQoKXtpZih0aGlzLl9kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJJbmplY3RvciBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZC4iKX1wcm9jZXNzSW5qZWN0b3JUeXBlKHQsZSxuKXtpZighKHQ9WmUodCkpKXJldHVybiExO2xldCBvPVBuKHQpO2NvbnN0IGk9bnVsbD09byYmdC5uZ01vZHVsZXx8dm9pZCAwLGE9dm9pZCAwPT09aT90Omk7bmdEZXZNb2RlJiYtMSE9PWUuaW5kZXhPZihhKSYmZW4oR2UoYSksZS5tYXAoR2UpKTtjb25zdCByPS0xIT09bi5pbmRleE9mKGEpO2lmKHZvaWQgMCE9PWkmJihvPVBuKGkpKSxudWxsPT1vKXJldHVybiExO2lmKG51bGwhPW8uaW1wb3J0cyYmIXIpe2xldCB0O25nRGV2TW9kZSYmZS5wdXNoKGEpLG4ucHVzaChhKTt0cnl7ZXIoby5pbXBvcnRzLChvPT57dGhpcy5wcm9jZXNzSW5qZWN0b3JUeXBlKG8sZSxuKSYmKHZvaWQgMD09PXQmJih0PVtdKSx0LnB1c2gobykpfSkpfWZpbmFsbHl7bmdEZXZNb2RlJiZlLnBvcCgpfWlmKHZvaWQgMCE9PXQpZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0e25nTW9kdWxlOm4scHJvdmlkZXJzOm99PXRbZV07ZXIobywodD0+dGhpcy5wcm9jZXNzUHJvdmlkZXIodCxuLG98fFduKSkpfX10aGlzLmluamVjdG9yRGVmVHlwZXMuYWRkKGEpO2NvbnN0IHM9Rm8oYSl8fCgoKT0+bmV3IGEpO3RoaXMucmVjb3Jkcy5zZXQoYSxlcChzLHFkKSk7Y29uc3QgbD1vLnByb3ZpZGVycztpZihudWxsIT1sJiYhcil7Y29uc3QgZT10O2VyKGwsKHQ9PnRoaXMucHJvY2Vzc1Byb3ZpZGVyKHQsZSxsKSkpfXJldHVybiB2b2lkIDAhPT1pJiZ2b2lkIDAhPT10LnByb3ZpZGVyc31wcm9jZXNzUHJvdmlkZXIodCxlLG4pe2xldCBvPW9wKHQ9WmUodCkpP3Q6WmUodCYmdC5wcm92aWRlKTtjb25zdCBpPShmdW5jdGlvbiBhKHQsZSxuKXtyZXR1cm4gbnAodCk/ZXAodm9pZCAwLHQudXNlVmFsdWUpOmVwKHRwKHQsZSxuKSxxZCl9KSh0LGUsbik7aWYob3AodCl8fCEwIT09dC5tdWx0aSl7Y29uc3QgdD10aGlzLnJlY29yZHMuZ2V0KG8pO25nRGV2TW9kZSYmdCYmdm9pZCAwIT09dC5tdWx0aSYmbm4oKX1lbHNle2xldCBlPXRoaXMucmVjb3Jkcy5nZXQobyk7ZT9uZ0Rldk1vZGUmJnZvaWQgMD09PWUubXVsdGkmJm5uKCk6KGU9ZXAodm9pZCAwLHFkLCEwKSxlLmZhY3Rvcnk9KCk9PlByKGUubXVsdGkpLHRoaXMucmVjb3Jkcy5zZXQobyxlKSksbz10LGUubXVsdGkucHVzaCh0KX10aGlzLnJlY29yZHMuc2V0KG8saSl9aHlkcmF0ZSh0LGUpe3JldHVybiBuZ0Rldk1vZGUmJmUudmFsdWU9PT1aZD9lbihHZSh0KSk6ZS52YWx1ZT09PXFkJiYoZS52YWx1ZT1aZCxlLnZhbHVlPWUuZmFjdG9yeSgpKSwib2JqZWN0Ij09dHlwZW9mIGUudmFsdWUmJmUudmFsdWUmJihmdW5jdGlvbiBuKHQpe3JldHVybiBudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5uZ09uRGVzdHJveX0pKGUudmFsdWUpJiZ0aGlzLm9uRGVzdHJveS5hZGQoZS52YWx1ZSksZS52YWx1ZX1pbmplY3RhYmxlRGVmSW5TY29wZSh0KXtpZighdC5wcm92aWRlZEluKXJldHVybiExO2NvbnN0IGU9WmUodC5wcm92aWRlZEluKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ImFueSI9PT1lfHxlPT09dGhpcy5zY29wZTp0aGlzLmluamVjdG9yRGVmVHlwZXMuaGFzKGUpfX1mdW5jdGlvbiAkZCh0KXtjb25zdCBlPXhuKHQpLG49bnVsbCE9PWU/ZS5mYWN0b3J5OkZvKHQpO2lmKG51bGwhPT1uKXJldHVybiBuO2lmKHQgaW5zdGFuY2VvZiBHYSl0aHJvdyBuZXcgRXJyb3IoYFRva2VuICR7R2UodCl9IGlzIG1pc3NpbmcgYSDJtXByb3YgZGVmaW5pdGlvbi5gKTtpZih0IGluc3RhbmNlb2YgRnVuY3Rpb24pcmV0dXJuKGZ1bmN0aW9uIG8odCl7Y29uc3QgZT10Lmxlbmd0aDtpZihlPjApe2NvbnN0IG49aXIoZSwiPyIpO3Rocm93IG5ldyBFcnJvcihgQ2FuJ3QgcmVzb2x2ZSBhbGwgcGFyYW1ldGVycyBmb3IgJHtHZSh0KX06ICgke24uam9pbigiLCAiKX0pLmApfWNvbnN0IG49KGZ1bmN0aW9uIG8odCl7Y29uc3QgZT10JiYodFt3bl18fHRbU25dKTtpZihlKXtjb25zdCBuPShmdW5jdGlvbiBuKHQpe2lmKHQuaGFzT3duUHJvcGVydHkoIm5hbWUiKSlyZXR1cm4gdC5uYW1lO2NvbnN0IGU9KCIiK3QpLm1hdGNoKC9eZnVuY3Rpb25ccyooW15ccyhdKykvKTtyZXR1cm4gbnVsbD09PWU/IiI6ZVsxXX0pKHQpO3JldHVybiBjb25zb2xlLndhcm4oYERFUFJFQ0FURUQ6IERJIGlzIGluc3RhbnRpYXRpbmcgYSB0b2tlbiAiJHtufSIgdGhhdCBpbmhlcml0cyBpdHMgQEluamVjdGFibGUgZGVjb3JhdG9yIGJ1dCBkb2VzIG5vdCBwcm92aWRlIG9uZSBpdHNlbGYuXG5UaGlzIHdpbGwgYmVjb21lIGFuIGVycm9yIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgQW5ndWxhci4gUGxlYXNlIGFkZCBASW5qZWN0YWJsZSgpIHRvIHRoZSAiJHtufSIgY2xhc3MuYCksZX1yZXR1cm4gbnVsbH0pKHQpO3JldHVybiBudWxsIT09bj8oKT0+bi5mYWN0b3J5KHQpOigpPT5uZXcgdH0pKHQpO3Rocm93IG5ldyBFcnJvcigidW5yZWFjaGFibGUiKX1mdW5jdGlvbiB0cCh0LGUsbil7bGV0IG87aWYob3AodCkpe2NvbnN0IGU9WmUodCk7cmV0dXJuIEZvKGUpfHwkZChlKX1pZihucCh0KSlvPSgpPT5aZSh0LnVzZVZhbHVlKTtlbHNlIGlmKChmdW5jdGlvbiBpKHQpe3JldHVybiEoIXR8fCF0LnVzZUZhY3RvcnkpfSkodCkpbz0oKT0+dC51c2VGYWN0b3J5KC4uLlByKHQuZGVwc3x8W10pKTtlbHNlIGlmKChmdW5jdGlvbiBhKHQpe3JldHVybiEoIXR8fCF0LnVzZUV4aXN0aW5nKX0pKHQpKW89KCk9PnZyKFplKHQudXNlRXhpc3RpbmcpKTtlbHNle2NvbnN0IGk9WmUodCYmKHQudXNlQ2xhc3N8fHQucHJvdmlkZSkpO2lmKG5nRGV2TW9kZSYmIWkmJihmdW5jdGlvbiByKHQsZSxuKXtsZXQgbz0iIjt0aHJvdyB0JiZlJiYobz1gIC0gb25seSBpbnN0YW5jZXMgb2YgUHJvdmlkZXIgYW5kIFR5cGUgYXJlIGFsbG93ZWQsIGdvdDogWyR7ZS5tYXAoKHQ9PnQ9PW4/Ij8iK24rIj8iOiIuLi4iKSkuam9pbigiLCAiKX1dYCksbmV3IEVycm9yKGBJbnZhbGlkIHByb3ZpZGVyIGZvciB0aGUgTmdNb2R1bGUgJyR7R2UodCl9J2Arbyl9KShlLG4sdCksIShmdW5jdGlvbiBzKHQpe3JldHVybiEhdC5kZXBzfSkodCkpcmV0dXJuIEZvKGkpfHwkZChpKTtvPSgpPT5uZXcgaSguLi5Qcih0LmRlcHMpKX1yZXR1cm4gb31mdW5jdGlvbiBlcCh0LGUsbj0hMSl7cmV0dXJue2ZhY3Rvcnk6dCx2YWx1ZTplLG11bHRpOm4/W106dm9pZCAwfX1mdW5jdGlvbiBucCh0KXtyZXR1cm4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdCYmeXIgaW4gdH1mdW5jdGlvbiBvcCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH1jb25zdCBpcD1mdW5jdGlvbiBhcCh0LGUsbil7cmV0dXJuKGZ1bmN0aW9uIG8odCxlPW51bGwsbj1udWxsLGkpe2NvbnN0IGE9SmQodCxlLG4saSk7cmV0dXJuIGEuX3Jlc29sdmVJbmplY3RvckRlZlR5cGVzKCksYX0pKHtuYW1lOm59LGUsdCxuKX07Y2xhc3MgcnB7c3RhdGljIGNyZWF0ZSh0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP2lwKHQsZSwiIik6aXAodC5wcm92aWRlcnMsdC5wYXJlbnQsdC5uYW1lfHwiIil9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gc3AodCl7YnAodCk7Y29uc3QgZT1Jcyh0KTtyZXR1cm4gbnVsbD09PWU/bnVsbDoodm9pZCAwPT09ZS5jb21wb25lbnQmJihlLmNvbXBvbmVudD0oZnVuY3Rpb24gbih0LGUpe2NvbnN0IG49ZVsxXS5kYXRhW3RdO3JldHVybiAyJm4uZmxhZ3M/ZVtuLmRpcmVjdGl2ZVN0YXJ0XTpudWxsfSkoZS5ub2RlSW5kZXgsZS5sVmlldykpLGUuY29tcG9uZW50KX1mdW5jdGlvbiBscCh0KXticCh0KTtjb25zdCBlPUlzKHQpO3JldHVybiBudWxsPT09ZT9udWxsOmUubFZpZXdbOF19ZnVuY3Rpb24gY3AodCl7Y29uc3QgZT1Jcyh0KTtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtsZXQgbixvPWUubFZpZXc7Zm9yKG5nRGV2TW9kZSYmUm8obyk7Mj09PW9bMV0udHlwZSYmKG49bWwobykpOylvPW47cmV0dXJuIDUxMiZvWzJdP251bGw6b1s4XX1mdW5jdGlvbiBkcCh0KXtyZXR1cm5bLi4udWwodCkuY29tcG9uZW50c119ZnVuY3Rpb24gcHAodCl7Y29uc3QgZT1Jcyh0KTtyZXR1cm4gbnVsbD09PWU/cnAuTlVMTDpuZXcgUmEoZS5sVmlld1sxXS5kYXRhW2Uubm9kZUluZGV4XSxlLmxWaWV3KX1mdW5jdGlvbiBtcCh0KXtpZih0IGluc3RhbmNlb2YgVGV4dClyZXR1cm5bXTtjb25zdCBlPUlzKHQpO2lmKG51bGw9PT1lKXJldHVybltdO2NvbnN0IG49ZS5sVmlldyxvPW5bMV0saT1lLm5vZGVJbmRleDtyZXR1cm4obnVsbD09bz92b2lkIDA6by5kYXRhW2ldKT8odm9pZCAwPT09ZS5kaXJlY3RpdmVzJiYoZS5kaXJlY3RpdmVzPVdzKGksbiwhMSkpLG51bGw9PT1lLmRpcmVjdGl2ZXM/W106Wy4uLmUuZGlyZWN0aXZlc10pOltdfWZ1bmN0aW9uIHVwKHQpe2NvbnN0e2NvbnN0cnVjdG9yOmV9PXQ7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZmluZCB0aGUgaW5zdGFuY2UgY29uc3RydWN0b3IiKTtjb25zdCBuPXBvKGUpO2lmKG4pcmV0dXJue2lucHV0czpuLmlucHV0cyxvdXRwdXRzOm4ub3V0cHV0cyxlbmNhcHN1bGF0aW9uOm4uZW5jYXBzdWxhdGlvbixjaGFuZ2VEZXRlY3Rpb246bi5vblB1c2g/em4uT25QdXNoOnpuLkRlZmF1bHR9O2NvbnN0IG89bW8oZSk7cmV0dXJuIG8/e2lucHV0czpvLmlucHV0cyxvdXRwdXRzOm8ub3V0cHV0c306bnVsbH1mdW5jdGlvbiBmcCh0KXtyZXR1cm4gSXModCkubmF0aXZlfWZ1bmN0aW9uIGdwKHQpe2JwKHQpO2NvbnN0IGU9SXModCk7aWYobnVsbD09PWUpcmV0dXJuW107Y29uc3Qgbj1lLmxWaWV3LG89bls3XSxpPW5bMV0uY2xlYW51cCxhPVtdO2lmKGkmJm8pZm9yKGxldCBlPTA7ZTxpLmxlbmd0aDspe2NvbnN0IHI9aVtlKytdLHM9aVtlKytdO2lmKCJzdHJpbmciPT10eXBlb2Ygcil7Y29uc3QgbD1yLGM9ZWkobltzXSksZD1vW2lbZSsrXV0scD1pW2UrK10sbT0iYm9vbGVhbiI9PXR5cGVvZiBwfHxwPj0wPyJkb20iOiJvdXRwdXQiLHU9ImJvb2xlYW4iPT10eXBlb2YgcCYmcDt0PT1jJiZhLnB1c2goe2VsZW1lbnQ6dCxuYW1lOmwsY2FsbGJhY2s6ZCx1c2VDYXB0dXJlOnUsdHlwZTptfSl9fXJldHVybiBhLnNvcnQoaHApLGF9ZnVuY3Rpb24gaHAodCxlKXtyZXR1cm4gdC5uYW1lPT1lLm5hbWU/MDp0Lm5hbWU8ZS5uYW1lPy0xOjF9ZnVuY3Rpb24gYnAodCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBFbGVtZW50JiYhKHQgaW5zdGFuY2VvZiBFbGVtZW50KSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGluZyBpbnN0YW5jZSBvZiBET00gRWxlbWVudCIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB5cCh0KXsoZnVuY3Rpb24gZSh0KXtuZ0Rldk1vZGUmJmhuKHQsImNvbXBvbmVudCIpO2NvbnN0IGU9RWQoRnModCkpO25nRGV2TW9kZSYmaG4oZVs4XSwicm9vdENvbnRleHQgc2hvdWxkIGJlIGRlZmluZWQiKSwoZnVuY3Rpb24gbih0LGUpe2lmKDA9PT10LmZsYWdzJiZ0LmNsZWFuPT1XYyl7bGV0IG47dC5mbGFnc3w9ZSx0LmNsZWFuPW5ldyBQcm9taXNlKCh0PT5uPXQpKSx0LnNjaGVkdWxlcigoKCk9PntpZigxJnQuZmxhZ3MmJih0LmZsYWdzJj0tMixSZCh0KSksMiZ0LmZsYWdzKXt0LmZsYWdzJj0tMztjb25zdCBlPXQucGxheWVySGFuZGxlcjtlJiZlLmZsdXNoUGxheWVycygpfXQuY2xlYW49V2MsbihudWxsKX0pKX19KShlWzhdLDEpfSkodCksZHAodCkuZm9yRWFjaCgodD0+KGZ1bmN0aW9uIGUodCl7Y29uc3QgZT1Gcyh0KTtBZChlWzFdLGUsdCl9KSh0KSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9ycC5USFJPV19JRl9OT1RfRk9VTkQ9Z3IscnAuTlVMTD1uZXcgV2QscnAuybVwcm92PU1uKHt0b2tlbjpycCxwcm92aWRlZEluOiJhbnkiLGZhY3Rvcnk6KCk9PnZyKEdkKX0pLHJwLl9fTkdfRUxFTUVOVF9JRF9fPS0xO2xldCBfcD0hMTtmdW5jdGlvbiBDcCh0LGUpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQ09NUElMRUR8fCFDT01QSUxFRCl7Y29uc3Qgbj1qbjtpZihuZ0Rldk1vZGUmJmhuKGUsImZ1bmN0aW9uIG5vdCBkZWZpbmVkIiksbil7bGV0IG89bi5uZztvfHwobz1uLm5nPXt9KSxvW3RdPWV9fX1mdW5jdGlvbiBNcCh0LGUpe2NvbnN0IG49VnModCk7bmdEZXZNb2RlJiZobihuLCJMVmlldyBpcyByZXF1aXJlZCIpO2NvbnN0IG89blsxXSxpPWJpKCk7bmdEZXZNb2RlJiZobihpLCJUTm9kZSBpcyByZXF1aXJlZCIpLFhpKG8saSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHZwKHQpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpLmNvbnN0cnVjdG9yfWZ1bmN0aW9uIHhwKHQpe2xldCBlPXZwKHQudHlwZSksbj0hMDtjb25zdCBvPVt0XTtmb3IoO2U7KXtsZXQgaTtpZih4byh0KSlpPWUuybVjbXB8fGUuybVkaXI7ZWxzZXtpZihlLsm1Y21wKXRocm93IG5ldyBFcnJvcigiRGlyZWN0aXZlcyBjYW5ub3QgaW5oZXJpdCBDb21wb25lbnRzIik7aT1lLsm1ZGlyfWlmKGkpe2lmKG4pe28ucHVzaChpKTtjb25zdCBlPXQ7ZS5pbnB1dHM9T3AodC5pbnB1dHMpLGUuZGVjbGFyZWRJbnB1dHM9T3AodC5kZWNsYXJlZElucHV0cyksZS5vdXRwdXRzPU9wKHQub3V0cHV0cyk7Y29uc3Qgbj1pLmhvc3RCaW5kaW5ncztuJiZrcCh0LG4pO2NvbnN0IGE9aS52aWV3UXVlcnkscj1pLmNvbnRlbnRRdWVyaWVzO2lmKGEmJlBwKHQsYSksciYmd3AodCxyKSxVZSh0LmlucHV0cyxpLmlucHV0cyksVWUodC5kZWNsYXJlZElucHV0cyxpLmRlY2xhcmVkSW5wdXRzKSxVZSh0Lm91dHB1dHMsaS5vdXRwdXRzKSx4byhpKSYmaS5kYXRhLmFuaW1hdGlvbil7Y29uc3QgZT10LmRhdGE7ZS5hbmltYXRpb249KGUuYW5pbWF0aW9ufHxbXSkuY29uY2F0KGkuZGF0YS5hbmltYXRpb24pfX1jb25zdCBlPWkuZmVhdHVyZXM7aWYoZSlmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7Y29uc3QgaT1lW29dO2kmJmkubmdJbmhlcml0JiZpKHQpLGk9PT14cCYmKG49ITEpfX1lPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0hKGZ1bmN0aW9uIGkodCl7bGV0IGU9MCxuPW51bGw7Zm9yKGxldCBvPXQubGVuZ3RoLTE7bz49MDtvLS0pe2NvbnN0IGk9dFtvXTtpLmhvc3RWYXJzPWUrPWkuaG9zdFZhcnMsaS5ob3N0QXR0cnM9bGEoaS5ob3N0QXR0cnMsbj1sYShuLGkuaG9zdEF0dHJzKSl9fSkobyl9ZnVuY3Rpb24gT3AodCl7cmV0dXJuIHQ9PT1Hbj97fTp0PT09V24/W106dH1mdW5jdGlvbiBQcCh0LGUpe2NvbnN0IG49dC52aWV3UXVlcnk7dC52aWV3UXVlcnk9bj8odCxvKT0+e2UodCxvKSxuKHQsbyl9OmV9ZnVuY3Rpb24gd3AodCxlKXtjb25zdCBuPXQuY29udGVudFF1ZXJpZXM7dC5jb250ZW50UXVlcmllcz1uPyh0LG8saSk9PntlKHQsbyxpKSxuKHQsbyxpKX06ZX1mdW5jdGlvbiBrcCh0LGUpe2NvbnN0IG49dC5ob3N0QmluZGluZ3M7dC5ob3N0QmluZGluZ3M9bj8odCxvKT0+e2UodCxvKSxuKHQsbyl9OmV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFNwPVsicHJvdmlkZXJzUmVzb2x2ZXIiXSxEcD1bInRlbXBsYXRlIiwiZGVjbHMiLCJjb25zdHMiLCJ2YXJzIiwib25QdXNoIiwibmdDb250ZW50U2VsZWN0b3JzIiwic3R5bGVzIiwiZW5jYXBzdWxhdGlvbiIsInNjaGVtYXMiXTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBFcD1udWxsO2Z1bmN0aW9uIFJwKCl7aWYoIUVwKXtjb25zdCB0PWpuLlN5bWJvbDtpZih0JiZ0Lml0ZXJhdG9yKUVwPXQuaXRlcmF0b3I7ZWxzZXtjb25zdCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE1hcC5wcm90b3R5cGUpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7KytlKXtjb25zdCBuPXRbZV07ImVudHJpZXMiIT09biYmInNpemUiIT09biYmTWFwLnByb3RvdHlwZVtuXT09PU1hcC5wcm90b3R5cGUuZW50cmllcyYmKEVwPW4pfX19cmV0dXJuIEVwfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBBcCh0LGUpe2NvbnN0IG49TnAodCksbz1OcChlKTtpZihuJiZvKXJldHVybihmdW5jdGlvbiBpKHQsZSxuKXtjb25zdCBvPXRbUnAoKV0oKSxpPWVbUnAoKV0oKTtmb3IoOzspe2NvbnN0IHQ9by5uZXh0KCksZT1pLm5leHQoKTtpZih0LmRvbmUmJmUuZG9uZSlyZXR1cm4hMDtpZih0LmRvbmV8fGUuZG9uZSlyZXR1cm4hMTtpZighbih0LnZhbHVlLGUudmFsdWUpKXJldHVybiExfX0pKHQsZSxBcCk7e2NvbnN0IGk9dCYmKCJvYmplY3QiPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQpLGE9ZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpO3JldHVybiEobnx8IWl8fG98fCFhKXx8T2JqZWN0LmlzKHQsZSl9fWNsYXNzIFRwe2NvbnN0cnVjdG9yKHQpe3RoaXMud3JhcHBlZD10fXN0YXRpYyB3cmFwKHQpe3JldHVybiBuZXcgVHAodCl9c3RhdGljIHVud3JhcCh0KXtyZXR1cm4gVHAuaXNXcmFwcGVkKHQpP3Qud3JhcHBlZDp0fXN0YXRpYyBpc1dyYXBwZWQodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUcH19ZnVuY3Rpb24gTnAodCl7cmV0dXJuISF6cCh0KSYmKEFycmF5LmlzQXJyYXkodCl8fCEodCBpbnN0YW5jZW9mIE1hcCkmJlJwKClpbiB0KX1mdW5jdGlvbiB6cCh0KXtyZXR1cm4gbnVsbCE9PXQmJigiZnVuY3Rpb24iPT10eXBlb2YgdHx8Im9iamVjdCI9PXR5cGVvZiB0KX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gSXAodCxlLG4pe3JldHVybiB0W2VdPW59ZnVuY3Rpb24gSHAodCxlKXtyZXR1cm4gbmdEZXZNb2RlJiZfbih0LGUpLG5nRGV2TW9kZSYmcG4odFtlXSxhYywiU3RvcmVkIHZhbHVlIHNob3VsZCBuZXZlciBiZSBOT19DSEFOR0UuIiksdFtlXX1mdW5jdGlvbiBGcCh0LGUsbil7bmdEZXZNb2RlJiZwbihuLGFjLCJJbmNvbWluZyB2YWx1ZSBzaG91bGQgbmV2ZXIgYmUgTk9fQ0hBTkdFLiIpLG5nRGV2TW9kZSYmbW4oZSx0Lmxlbmd0aCwiU2xvdCBzaG91bGQgaGF2ZSBiZWVuIGluaXRpYWxpemVkIHRvIE5PX0NIQU5HRSIpO2NvbnN0IG89dFtlXTtpZihPYmplY3QuaXMobyxuKSlyZXR1cm4hMTtpZihuZ0Rldk1vZGUmJnhpKCkpe2NvbnN0IGk9byE9PWFjP286dm9pZCAwO2lmKCFBcChpLG4pKXtjb25zdCBhPShmdW5jdGlvbiBpKHQsZSxuLG8pe2NvbnN0IGk9dFsxXS5kYXRhLGE9aVtlXTtpZigic3RyaW5nIj09dHlwZW9mIGEpcmV0dXJuIGEuaW5kZXhPZihhbCk+LTE/bGwodCxlLGUsYSxvKTp7cHJvcE5hbWU6YSxvbGRWYWx1ZTpuLG5ld1ZhbHVlOm99O2lmKG51bGw9PT1hKXtsZXQgbj1lLTE7Zm9yKDsic3RyaW5nIiE9dHlwZW9mIGlbbl0mJm51bGw9PT1pW24rMV07KW4tLTtjb25zdCBhPWlbbl07aWYoInN0cmluZyI9PXR5cGVvZiBhKXtjb25zdCBpPWEubWF0Y2gobmV3IFJlZ0V4cChhbCwiZyIpKTtpZihpJiZpLmxlbmd0aC0xPmUtbilyZXR1cm4gbGwodCxuLGUsYSxvKX19cmV0dXJue3Byb3BOYW1lOnZvaWQgMCxvbGRWYWx1ZTpuLG5ld1ZhbHVlOm99fSkodCxlLGksbik7IShmdW5jdGlvbiBhKHQsZSxuLG8pe2xldCBpPWBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yOiBFeHByZXNzaW9uIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkLiBQcmV2aW91cyB2YWx1ZSR7bz9gIGZvciAnJHtvfSdgOiIifTogJyR7ZX0nLiBDdXJyZW50IHZhbHVlOiAnJHtufScuYDt0aHJvdyB0JiYoaSs9IiBJdCBzZWVtcyBsaWtlIHRoZSB2aWV3IGhhcyBiZWVuIGNyZWF0ZWQgYWZ0ZXIgaXRzIHBhcmVudCBhbmQgaXRzIGNoaWxkcmVuIGhhdmUgYmVlbiBkaXJ0eSBjaGVja2VkLiBIYXMgaXQgYmVlbiBjcmVhdGVkIGluIGEgY2hhbmdlIGRldGVjdGlvbiBob29rPyIpLG5ldyBLZSgiMTAwIixpKX0pKG89PT1hYyxhLm9sZFZhbHVlLGEubmV3VmFsdWUsYS5wcm9wTmFtZSl9cmV0dXJuITF9cmV0dXJuIHRbZV09biwhMH1mdW5jdGlvbiBMcCh0LGUsbixvKXtjb25zdCBpPUZwKHQsZSxuKTtyZXR1cm4gRnAodCxlKzEsbyl8fGl9ZnVuY3Rpb24gQnAodCxlLG4sbyxpKXtjb25zdCBhPUxwKHQsZSxuLG8pO3JldHVybiBGcCh0LGUrMixpKXx8YX1mdW5jdGlvbiBWcCh0LGUsbixvLGksYSl7Y29uc3Qgcj1McCh0LGUsbixvKTtyZXR1cm4gTHAodCxlKzIsaSxhKXx8cn0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24ganAodCxlLG4sbyl7Y29uc3QgaT1maSgpLGE9U2koKTtpZihGcChpLGEsZSkpe2NvbnN0IHI9Z2koKSxzPVlpKCk7Q2QocyxpLHQsZSxuLG8pLG5nRGV2TW9kZSYmemQoci5kYXRhLHMsImF0dHIuIit0LGEpfXJldHVybiBqcH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gVXAodCxlKXtuZ0Rldk1vZGUmJm1uKDIsZS5sZW5ndGgsInNob3VsZCBoYXZlIGF0IGxlYXN0IDMgdmFsdWVzIiksbmdEZXZNb2RlJiZsbihlLmxlbmd0aCUyLDEsInNob3VsZCBoYXZlIGFuIG9kZCBudW1iZXIgb2YgdmFsdWVzIik7bGV0IG49ITEsbz13aSgpO2ZvcihsZXQgaT0xO2k8ZS5sZW5ndGg7aSs9MiluPUZwKHQsbysrLGVbaV0pfHxuO2lmKGtpKG8pLCFuKXJldHVybiBhYztsZXQgaT1lWzBdO2ZvcihsZXQgdD0xO3Q8ZS5sZW5ndGg7dCs9MilpKz0kZShlW3RdKStlW3QrMV07cmV0dXJuIGl9ZnVuY3Rpb24gR3AodCxlLG4sbyl7cmV0dXJuIEZwKHQsU2koKSxuKT9lKyRlKG4pK286YWN9ZnVuY3Rpb24gV3AodCxlLG4sbyxpLGEpe2NvbnN0IHI9THAodCx3aSgpLG4saSk7cmV0dXJuIERpKDIpLHI/ZSskZShuKStvKyRlKGkpK2E6YWN9ZnVuY3Rpb24gWXAodCxlLG4sbyxpLGEscixzKXtjb25zdCBsPUJwKHQsd2koKSxuLGkscik7cmV0dXJuIERpKDMpLGw/ZSskZShuKStvKyRlKGkpK2ErJGUocikrczphY31mdW5jdGlvbiBxcCh0LGUsbixvLGksYSxyLHMsbCxjKXtjb25zdCBkPVZwKHQsd2koKSxuLGkscixsKTtyZXR1cm4gRGkoNCksZD9lKyRlKG4pK28rJGUoaSkrYSskZShyKStzKyRlKGwpK2M6YWN9ZnVuY3Rpb24gWnAodCxlLG4sbyxpLGEscixzLGwsYyxkLHApe2NvbnN0IG09d2koKTtsZXQgdT1WcCh0LG0sbixpLHIsbCk7cmV0dXJuIHU9RnAodCxtKzQsZCl8fHUsRGkoNSksdT9lKyRlKG4pK28rJGUoaSkrYSskZShyKStzKyRlKGwpK2MrJGUoZCkrcDphY31mdW5jdGlvbiBYcCh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUpe2NvbnN0IGY9d2koKTtsZXQgZz1WcCh0LGYsbixpLHIsbCk7cmV0dXJuIGc9THAodCxmKzQsZCxtKXx8ZyxEaSg2KSxnP2UrJGUobikrbyskZShpKSthKyRlKHIpK3MrJGUobCkrYyskZShkKStwKyRlKG0pK3U6YWN9ZnVuY3Rpb24gS3AodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyl7Y29uc3QgaD13aSgpO2xldCBiPVZwKHQsaCxuLGkscixsKTtyZXR1cm4gYj1CcCh0LGgrNCxkLG0sZil8fGIsRGkoNyksYj9lKyRlKG4pK28rJGUoaSkrYSskZShyKStzKyRlKGwpK2MrJGUoZCkrcCskZShtKSt1KyRlKGYpK2c6YWN9ZnVuY3Rpb24gSnAodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoLGIpe2NvbnN0IHk9d2koKTtsZXQgXz1WcCh0LHksbixpLHIsbCk7cmV0dXJuIF89VnAodCx5KzQsZCxtLGYsaCl8fF8sRGkoOCksXz9lKyRlKG4pK28rJGUoaSkrYSskZShyKStzKyRlKGwpK2MrJGUoZCkrcCskZShtKSt1KyRlKGYpK2crJGUoaCkrYjphY31mdW5jdGlvbiBRcCh0LGUsbixvLGksYSxyLHMpe2NvbnN0IGw9ZmkoKSxjPWdpKCksZD10K2dvLHA9Yy5maXJzdENyZWF0ZVBhc3M/KAovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gbSh0LGUsbixvLGksYSxyLHMsbCl7bmdEZXZNb2RlJiZBbyhlKSxuZ0Rldk1vZGUmJm5nRGV2TW9kZS5maXJzdENyZWF0ZVBhc3MrKztjb25zdCBjPWUuY29uc3RzLGQ9WmMoZSx0LDQscnx8bnVsbCxjaShjLHMpKTttZChlLG4sZCxjaShjLGwpKSxYaShlLGQpO2NvbnN0IHA9ZC50Vmlld3M9YWQoMixkLG8saSxhLGUuZGlyZWN0aXZlUmVnaXN0cnksZS5waXBlUmVnaXN0cnksbnVsbCxlLnNjaGVtYXMsYyk7cmV0dXJuIG51bGwhPT1lLnF1ZXJpZXMmJihlLnF1ZXJpZXMudGVtcGxhdGUoZSxkKSxwLnF1ZXJpZXM9ZS5xdWVyaWVzLmVtYmVkZGVkVFZpZXcoZCkpLGR9KShkLGMsbCxlLG4sbyxpLGEscik6Yy5kYXRhW2RdO0NpKHAsITEpO2NvbnN0IHU9bFsxMV0uY3JlYXRlQ29tbWVudChuZ0Rldk1vZGU/ImNvbnRhaW5lciI6IiIpO0hsKGMsbCx1LHApLExzKHUsbCksRGQobCxsW2RdPVBkKHUsbCx1LHApKSx2byhwKSYmbmQoYyxsLHApLG51bGwhPXImJm9kKGwscCxzKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gJHAodCl7cmV0dXJuIGFpKChmdW5jdGlvbiBlKCl7cmV0dXJuIG1pLmxGcmFtZS5jb250ZXh0TFZpZXd9KSgpLGdvK3QpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCB0bT17Ism1ybVkZWZpbmVJbmplY3RhYmxlIjpNbiwiybXJtWRlZmluZUluamVjdG9yIjp2biwiybXJtWluamVjdCI6dnIsIsm1ybVpbnZhbGlkRmFjdG9yeURlcCI6eHIscmVzb2x2ZUZvcndhcmRSZWY6WmV9LGVtPWplKHtwcm92aWRlOlN0cmluZyx1c2VWYWx1ZTpqZX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBubSh0KXtyZXR1cm4gdm9pZCAwIT09dC51c2VDbGFzc31mdW5jdGlvbiBvbSh0KXtyZXR1cm4gdm9pZCAwIT09dC51c2VGYWN0b3J5fWplKHtwcm92aWRlOlN0cmluZyx1c2VWYWx1ZTpqZX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgaW09RmEoIkluamVjdGFibGUiLHZvaWQgMCx2b2lkIDAsdm9pZCAwLCgodCxlKT0+YW0odCxlKSkpLGFtPWZ1bmN0aW9uIHJtKHQsZSl7bGV0IG49bnVsbCxvPW51bGw7dC5oYXNPd25Qcm9wZXJ0eSh3bil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHduLHtnZXQ6KCk9PntpZihudWxsPT09bil7Y29uc3Qgbz1KYSh7dXNhZ2U6MCxraW5kOiJpbmplY3RhYmxlIix0eXBlOnR9KTtuPW8uY29tcGlsZUluamVjdGFibGUodG0sYG5nOi8vLyR7dC5uYW1lfS/JtXByb3YuanNgLChmdW5jdGlvbiBvKHQsZSl7Y29uc3Qgbj1lfHx7cHJvdmlkZWRJbjpudWxsfSxvPXtuYW1lOnQubmFtZSx0eXBlOnQsdHlwZUFyZ3VtZW50Q291bnQ6MCxwcm92aWRlZEluOm4ucHJvdmlkZWRJbn07cmV0dXJuKG5tKG4pfHxvbShuKSkmJnZvaWQgMCE9PW4uZGVwcyYmKG8uZGVwcz16cihuLmRlcHMpKSxubShuKT9vLnVzZUNsYXNzPW4udXNlQ2xhc3M6KGZ1bmN0aW9uIGkodCl7cmV0dXJuIGVtIGluIHR9KShuKT9vLnVzZVZhbHVlPW4udXNlVmFsdWU6b20obik/by51c2VGYWN0b3J5PW4udXNlRmFjdG9yeTooZnVuY3Rpb24gYSh0KXtyZXR1cm4gdm9pZCAwIT09dC51c2VFeGlzdGluZ30pKG4pJiYoby51c2VFeGlzdGluZz1uLnVzZUV4aXN0aW5nKSxvfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQsZSkpfXJldHVybiBufX0pLHQuaGFzT3duUHJvcGVydHkoSm4pfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxKbix7Z2V0OigpPT57aWYobnVsbD09PW8pe2NvbnN0IGU9SmEoe3VzYWdlOjAsa2luZDoiaW5qZWN0YWJsZSIsdHlwZTp0fSk7bz1lLmNvbXBpbGVGYWN0b3J5KHRtLGBuZzovLy8ke3QubmFtZX0vybVmYWMuanNgLHtuYW1lOnQubmFtZSx0eXBlOnQsdHlwZUFyZ3VtZW50Q291bnQ6MCxkZXBzOk5yKHQpLHRhcmdldDplLkZhY3RvcnlUYXJnZXQuSW5qZWN0YWJsZX0pfXJldHVybiBvfSxjb25maWd1cmFibGU6ITB9KX07ZnVuY3Rpb24gc20odCl7cmV0dXJuIHQubGVuZ3RoPjE/IiAoIisoCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBlKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDsrK24pe2lmKGUuaW5kZXhPZih0W25dKT4tMSlyZXR1cm4gZS5wdXNoKHRbbl0pLGU7ZS5wdXNoKHRbbl0pfXJldHVybiBlfSkodC5zbGljZSgpLnJldmVyc2UoKSkubWFwKCh0PT5HZSh0LnRva2VuKSkpLmpvaW4oIiAtPiAiKSsiKSI6IiJ9ZnVuY3Rpb24gbG0odCxlLG4sbyl7Y29uc3QgaT1bZV0sYT1uKGkpLHI9bz8oZnVuY3Rpb24gcyh0LGUpe2NvbnN0IG49YCR7dH0gY2F1c2VkIGJ5OiAke2UgaW5zdGFuY2VvZiBFcnJvcj9lLm1lc3NhZ2U6ZX1gLG89RXJyb3Iobik7cmV0dXJuIG8ubmdPcmlnaW5hbEVycm9yPWUsb30pKGEsbyk6RXJyb3IoYSk7cmV0dXJuIHIuYWRkS2V5PWNtLHIua2V5cz1pLHIuaW5qZWN0b3JzPVt0XSxyLmNvbnN0cnVjdFJlc29sdmluZ01lc3NhZ2U9bixyLm5nT3JpZ2luYWxFcnJvcj1vLHJ9ZnVuY3Rpb24gY20odCxlKXt0aGlzLmluamVjdG9ycy5wdXNoKHQpLHRoaXMua2V5cy5wdXNoKGUpLHRoaXMubWVzc2FnZT10aGlzLmNvbnN0cnVjdFJlc29sdmluZ01lc3NhZ2UodGhpcy5rZXlzKX1mdW5jdGlvbiBkbSh0LGUpe2NvbnN0IG49W107Zm9yKGxldCB0PTAsbz1lLmxlbmd0aDt0PG87dCsrKXtjb25zdCBvPWVbdF07bi5wdXNoKG8mJjAhPW8ubGVuZ3RoP28ubWFwKEdlKS5qb2luKCIgIik6Ij8iKX1yZXR1cm4gRXJyb3IoIkNhbm5vdCByZXNvbHZlIGFsbCBwYXJhbWV0ZXJzIGZvciAnIitHZSh0KSsiJygiK24uam9pbigiLCAiKSsiKS4gTWFrZSBzdXJlIHRoYXQgYWxsIHRoZSBwYXJhbWV0ZXJzIGFyZSBkZWNvcmF0ZWQgd2l0aCBJbmplY3Qgb3IgaGF2ZSB2YWxpZCB0eXBlIGFubm90YXRpb25zIGFuZCB0aGF0ICciK0dlKHQpKyInIGlzIGRlY29yYXRlZCB3aXRoIEluamVjdGFibGUuIil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBwbXtjb25zdHJ1Y3Rvcih0LGUpe2lmKHRoaXMudG9rZW49dCx0aGlzLmlkPWUsIXQpdGhyb3cgbmV3IEVycm9yKCJUb2tlbiBtdXN0IGJlIGRlZmluZWQhIik7dGhpcy5kaXNwbGF5TmFtZT1HZSh0aGlzLnRva2VuKX1zdGF0aWMgZ2V0KHQpe3JldHVybiBtbS5nZXQoWmUodCkpfXN0YXRpYyBnZXQgbnVtYmVyT2ZLZXlzKCl7cmV0dXJuIG1tLm51bWJlck9mS2V5c319Y29uc3QgbW09bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fYWxsS2V5cz1uZXcgTWFwfWdldCh0KXtpZih0IGluc3RhbmNlb2YgcG0pcmV0dXJuIHQ7aWYodGhpcy5fYWxsS2V5cy5oYXModCkpcmV0dXJuIHRoaXMuX2FsbEtleXMuZ2V0KHQpO2NvbnN0IGU9bmV3IHBtKHQscG0ubnVtYmVyT2ZLZXlzKTtyZXR1cm4gdGhpcy5fYWxsS2V5cy5zZXQodCxlKSxlfWdldCBudW1iZXJPZktleXMoKXtyZXR1cm4gdGhpcy5fYWxsS2V5cy5zaXplfX0sdW09bmV3Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXM9dH11cGRhdGVDYXBhYmlsaXRpZXModCl7dGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzPXR9ZmFjdG9yeSh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLmZhY3RvcnkodCl9cGFyYW1ldGVycyh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLnBhcmFtZXRlcnModCl9YW5ub3RhdGlvbnModCl7cmV0dXJuIHRoaXMucmVmbGVjdGlvbkNhcGFiaWxpdGllcy5hbm5vdGF0aW9ucyh0KX1wcm9wTWV0YWRhdGEodCl7cmV0dXJuIHRoaXMucmVmbGVjdGlvbkNhcGFiaWxpdGllcy5wcm9wTWV0YWRhdGEodCl9aGFzTGlmZWN5Y2xlSG9vayh0LGUpe3JldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMuaGFzTGlmZWN5Y2xlSG9vayh0LGUpfWdldHRlcih0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLmdldHRlcih0KX1zZXR0ZXIodCl7cmV0dXJuIHRoaXMucmVmbGVjdGlvbkNhcGFiaWxpdGllcy5zZXR0ZXIodCl9bWV0aG9kKHQpe3JldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMubWV0aG9kKHQpfWltcG9ydFVyaSh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLmltcG9ydFVyaSh0KX1yZXNvdXJjZVVyaSh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLnJlc291cmNlVXJpKHQpfXJlc29sdmVJZGVudGlmaWVyKHQsZSxuLG8pe3JldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMucmVzb2x2ZUlkZW50aWZpZXIodCxlLG4sbyl9cmVzb2x2ZUVudW0odCxlKXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLnJlc29sdmVFbnVtKHQsZSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8obmV3IG1yKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGZte2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmtleT10LHRoaXMub3B0aW9uYWw9ZSx0aGlzLnZpc2liaWxpdHk9bn1zdGF0aWMgZnJvbUtleSh0KXtyZXR1cm4gbmV3IGZtKHQsITEsbnVsbCl9fWNvbnN0IGdtPVtdO2NsYXNzIGhte2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmtleT10LHRoaXMucmVzb2x2ZWRGYWN0b3JpZXM9ZSx0aGlzLm11bHRpUHJvdmlkZXI9bix0aGlzLnJlc29sdmVkRmFjdG9yeT10aGlzLnJlc29sdmVkRmFjdG9yaWVzWzBdfX1jbGFzcyBibXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuZmFjdG9yeT10LHRoaXMuZGVwZW5kZW5jaWVzPWV9fWZ1bmN0aW9uIHltKHQpe2xldCBlLG47aWYodC51c2VDbGFzcyl7Y29uc3Qgbz1aZSh0LnVzZUNsYXNzKTtlPXVtLmZhY3Rvcnkobyksbj12bShvKX1lbHNlIHQudXNlRXhpc3Rpbmc/KGU9dD0+dCxuPVtmbS5mcm9tS2V5KHBtLmdldCh0LnVzZUV4aXN0aW5nKSldKTp0LnVzZUZhY3Rvcnk/KGU9dC51c2VGYWN0b3J5LG49KGZ1bmN0aW9uIG8odCxlKXtpZihlKXtjb25zdCBuPWUubWFwKCh0PT5bdF0pKTtyZXR1cm4gZS5tYXAoKGU9PnhtKHQsZSxuKSkpfXJldHVybiB2bSh0KX0pKHQudXNlRmFjdG9yeSx0LmRlcHMpKTooZT0oKT0+dC51c2VWYWx1ZSxuPWdtKTtyZXR1cm4gbmV3IGJtKGUsbil9ZnVuY3Rpb24gX20odCl7cmV0dXJuIG5ldyBobShwbS5nZXQodC5wcm92aWRlKSxbeW0odCldLHQubXVsdGl8fCExKX1mdW5jdGlvbiBDbSh0KXtjb25zdCBlPShmdW5jdGlvbiBuKHQsZSl7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IG89dFtuXSxpPWUuZ2V0KG8ua2V5LmlkKTtpZihpKXtpZihvLm11bHRpUHJvdmlkZXIhPT1pLm11bHRpUHJvdmlkZXIpdGhyb3cgRXJyb3IoYENhbm5vdCBtaXggbXVsdGkgcHJvdmlkZXJzIGFuZCByZWd1bGFyIHByb3ZpZGVycywgZ290OiAke2l9ICR7b31gKTtpZihvLm11bHRpUHJvdmlkZXIpZm9yKGxldCB0PTA7dDxvLnJlc29sdmVkRmFjdG9yaWVzLmxlbmd0aDt0KyspaS5yZXNvbHZlZEZhY3Rvcmllcy5wdXNoKG8ucmVzb2x2ZWRGYWN0b3JpZXNbdF0pO2Vsc2UgZS5zZXQoby5rZXkuaWQsbyl9ZWxzZXtsZXQgdDt0PW8ubXVsdGlQcm92aWRlcj9uZXcgaG0oby5rZXksby5yZXNvbHZlZEZhY3Rvcmllcy5zbGljZSgpLG8ubXVsdGlQcm92aWRlcik6byxlLnNldChvLmtleS5pZCx0KX19cmV0dXJuIGV9KShNbSh0LFtdKS5tYXAoX20pLG5ldyBNYXApO3JldHVybiBBcnJheS5mcm9tKGUudmFsdWVzKCkpfWZ1bmN0aW9uIE1tKHQsZSl7cmV0dXJuIHQuZm9yRWFjaCgodD0+e2lmKHQgaW5zdGFuY2VvZiBRYSllLnB1c2goe3Byb3ZpZGU6dCx1c2VDbGFzczp0fSk7ZWxzZSBpZih0JiYib2JqZWN0Ij09dHlwZW9mIHQmJnZvaWQgMCE9PXQucHJvdmlkZSllLnB1c2godCk7ZWxzZXtpZighQXJyYXkuaXNBcnJheSh0KSl0aHJvdyhmdW5jdGlvbiBuKHQpe3JldHVybiBFcnJvcihgSW52YWxpZCBwcm92aWRlciAtIG9ubHkgaW5zdGFuY2VzIG9mIFByb3ZpZGVyIGFuZCBUeXBlIGFyZSBhbGxvd2VkLCBnb3Q6ICR7dH1gKX0pKHQpO01tKHQsZSl9fSkpLGV9ZnVuY3Rpb24gdm0odCl7Y29uc3QgZT11bS5wYXJhbWV0ZXJzKHQpO2lmKCFlKXJldHVybltdO2lmKGUuc29tZSgodD0+bnVsbD09dCkpKXRocm93IGRtKHQsZSk7cmV0dXJuIGUubWFwKChuPT54bSh0LG4sZSkpKX1mdW5jdGlvbiB4bSh0LGUsbil7bGV0IG89bnVsbCxpPSExO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiBPbShlIGluc3RhbmNlb2Yga3I/ZS50b2tlbjplLGksbnVsbCk7bGV0IGE9bnVsbDtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoOysrdCl7Y29uc3Qgbj1lW3RdO24gaW5zdGFuY2VvZiBRYT9vPW46biBpbnN0YW5jZW9mIGtyP289bi50b2tlbjpuIGluc3RhbmNlb2YgU3I/aT0hMDpuIGluc3RhbmNlb2YgRHJ8fG4gaW5zdGFuY2VvZiBFcj9hPW46biBpbnN0YW5jZW9mIEdhJiYobz1uKX1pZihvPVplKG8pLG51bGwhPW8pcmV0dXJuIE9tKG8saSxhKTt0aHJvdyBkbSh0LG4pfWZ1bmN0aW9uIE9tKHQsZSxuKXtyZXR1cm4gbmV3IGZtKHBtLmdldCh0KSxlLG4pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBQbT17fTtjbGFzcyB3bXtzdGF0aWMgcmVzb2x2ZSh0KXtyZXR1cm4gQ20odCl9c3RhdGljIHJlc29sdmVBbmRDcmVhdGUodCxlKXtjb25zdCBuPXdtLnJlc29sdmUodCk7cmV0dXJuIHdtLmZyb21SZXNvbHZlZFByb3ZpZGVycyhuLGUpfXN0YXRpYyBmcm9tUmVzb2x2ZWRQcm92aWRlcnModCxlKXtyZXR1cm4gbmV3IGttKHQsZSl9fWNsYXNzIGtte2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fY29uc3RydWN0aW9uQ291bnRlcj0wLHRoaXMuX3Byb3ZpZGVycz10LHRoaXMucGFyZW50PWV8fG51bGw7Y29uc3Qgbj10Lmxlbmd0aDt0aGlzLmtleUlkcz1bXSx0aGlzLm9ianM9W107Zm9yKGxldCBlPTA7ZTxuO2UrKyl0aGlzLmtleUlkc1tlXT10W2VdLmtleS5pZCx0aGlzLm9ianNbZV09UG19Z2V0KHQsZT1ncil7cmV0dXJuIHRoaXMuX2dldEJ5S2V5KHBtLmdldCh0KSxudWxsLGUpfXJlc29sdmVBbmRDcmVhdGVDaGlsZCh0KXtjb25zdCBlPXdtLnJlc29sdmUodCk7cmV0dXJuIHRoaXMuY3JlYXRlQ2hpbGRGcm9tUmVzb2x2ZWQoZSl9Y3JlYXRlQ2hpbGRGcm9tUmVzb2x2ZWQodCl7Y29uc3QgZT1uZXcga20odCk7cmV0dXJuIGUucGFyZW50PXRoaXMsZX1yZXNvbHZlQW5kSW5zdGFudGlhdGUodCl7cmV0dXJuIHRoaXMuaW5zdGFudGlhdGVSZXNvbHZlZCh3bS5yZXNvbHZlKFt0XSlbMF0pfWluc3RhbnRpYXRlUmVzb2x2ZWQodCl7cmV0dXJuIHRoaXMuX2luc3RhbnRpYXRlUHJvdmlkZXIodCl9Z2V0UHJvdmlkZXJBdEluZGV4KHQpe2lmKHQ8MHx8dD49dGhpcy5fcHJvdmlkZXJzLmxlbmd0aCl0aHJvdyhmdW5jdGlvbiBlKHQpe3JldHVybiBFcnJvcihgSW5kZXggJHt0fSBpcyBvdXQtb2YtYm91bmRzLmApfSkodCk7cmV0dXJuIHRoaXMuX3Byb3ZpZGVyc1t0XX1fbmV3KHQpe2lmKHRoaXMuX2NvbnN0cnVjdGlvbkNvdW50ZXIrKz50aGlzLl9nZXRNYXhOdW1iZXJPZk9iamVjdHMoKSl0aHJvdyhmdW5jdGlvbiBlKHQsbil7cmV0dXJuIGxtKHQsbiwoZnVuY3Rpb24odCl7cmV0dXJuYENhbm5vdCBpbnN0YW50aWF0ZSBjeWNsaWMgZGVwZW5kZW5jeSEke3NtKHQpfWB9KSl9KSh0aGlzLHQua2V5KTtyZXR1cm4gdGhpcy5faW5zdGFudGlhdGVQcm92aWRlcih0KX1fZ2V0TWF4TnVtYmVyT2ZPYmplY3RzKCl7cmV0dXJuIHRoaXMub2Jqcy5sZW5ndGh9X2luc3RhbnRpYXRlUHJvdmlkZXIodCl7aWYodC5tdWx0aVByb3ZpZGVyKXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248dC5yZXNvbHZlZEZhY3Rvcmllcy5sZW5ndGg7KytuKWVbbl09dGhpcy5faW5zdGFudGlhdGUodCx0LnJlc29sdmVkRmFjdG9yaWVzW25dKTtyZXR1cm4gZX1yZXR1cm4gdGhpcy5faW5zdGFudGlhdGUodCx0LnJlc29sdmVkRmFjdG9yaWVzWzBdKX1faW5zdGFudGlhdGUodCxlKXtjb25zdCBuPWUuZmFjdG9yeTtsZXQgbyxpO3RyeXtvPWUuZGVwZW5kZW5jaWVzLm1hcCgodD0+dGhpcy5fZ2V0QnlSZWZsZWN0aXZlRGVwZW5kZW5jeSh0KSkpfWNhdGNoKGUpe3Rocm93IGUuYWRkS2V5JiZlLmFkZEtleSh0aGlzLHQua2V5KSxlfXRyeXtpPW4oLi4ubyl9Y2F0Y2goZSl7dGhyb3coZnVuY3Rpb24gbih0LGUsbyxpKXtyZXR1cm4gbG0odCxpLChmdW5jdGlvbih0KXtjb25zdCBuPUdlKHRbMF0udG9rZW4pO3JldHVybmAke2UubWVzc2FnZX06IEVycm9yIGR1cmluZyBpbnN0YW50aWF0aW9uIG9mICR7bn0hJHtzbSh0KX0uYH0pLGUpfSkodGhpcyxlLDAsdC5rZXkpfXJldHVybiBpfV9nZXRCeVJlZmxlY3RpdmVEZXBlbmRlbmN5KHQpe3JldHVybiB0aGlzLl9nZXRCeUtleSh0LmtleSx0LnZpc2liaWxpdHksdC5vcHRpb25hbD9udWxsOmdyKX1fZ2V0QnlLZXkodCxlLG4pe3JldHVybiB0PT09a20uSU5KRUNUT1JfS0VZP3RoaXM6ZSBpbnN0YW5jZW9mIERyP3RoaXMuX2dldEJ5S2V5U2VsZih0LG4pOnRoaXMuX2dldEJ5S2V5RGVmYXVsdCh0LG4sZSl9X2dldE9iakJ5S2V5SWQodCl7Zm9yKGxldCBlPTA7ZTx0aGlzLmtleUlkcy5sZW5ndGg7ZSsrKWlmKHRoaXMua2V5SWRzW2VdPT09dClyZXR1cm4gdGhpcy5vYmpzW2VdPT09UG0mJih0aGlzLm9ianNbZV09dGhpcy5fbmV3KHRoaXMuX3Byb3ZpZGVyc1tlXSkpLHRoaXMub2Jqc1tlXTtyZXR1cm4gUG19X3Rocm93T3JOdWxsKHQsZSl7aWYoZSE9PWdyKXJldHVybiBlO3Rocm93KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gbG0odCxlLChmdW5jdGlvbih0KXtyZXR1cm5gTm8gcHJvdmlkZXIgZm9yICR7R2UodFswXS50b2tlbil9ISR7c20odCl9YH0pKX0pKHRoaXMsdCl9X2dldEJ5S2V5U2VsZih0LGUpe2NvbnN0IG49dGhpcy5fZ2V0T2JqQnlLZXlJZCh0LmlkKTtyZXR1cm4gbiE9PVBtP246dGhpcy5fdGhyb3dPck51bGwodCxlKX1fZ2V0QnlLZXlEZWZhdWx0KHQsZSxuKXtsZXQgbztmb3Iobz1uIGluc3RhbmNlb2YgRXI/dGhpcy5wYXJlbnQ6dGhpcztvIGluc3RhbmNlb2Yga207KXtjb25zdCBlPW8sbj1lLl9nZXRPYmpCeUtleUlkKHQuaWQpO2lmKG4hPT1QbSlyZXR1cm4gbjtvPWUucGFyZW50fXJldHVybiBudWxsIT09bz9vLmdldCh0LnRva2VuLGUpOnRoaXMuX3Rocm93T3JOdWxsKHQsZSl9Z2V0IGRpc3BsYXlOYW1lKCl7cmV0dXJuYFJlZmxlY3RpdmVJbmplY3Rvcihwcm92aWRlcnM6IFskeyhmdW5jdGlvbiB0KGUsbil7Y29uc3Qgbz1bXTtmb3IobGV0IHQ9MDt0PGUuX3Byb3ZpZGVycy5sZW5ndGg7Kyt0KW9bdF09bihlLmdldFByb3ZpZGVyQXRJbmRleCh0KSk7cmV0dXJuIG99Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0aGlzLCh0PT4nICInK3Qua2V5LmRpc3BsYXlOYW1lKyciICcpKS5qb2luKCIsICIpfV0pYH10b1N0cmluZygpe3JldHVybiB0aGlzLmRpc3BsYXlOYW1lfX1mdW5jdGlvbiBTbSh0LGU9RW4uRGVmYXVsdCl7Y29uc3Qgbj1maSgpO3JldHVybiBudWxsPT09bj8obmdEZXZNb2RlJiYoZnVuY3Rpb24gbyh0KXtuZ0Rldk1vZGUmJmNuKFJuLHQsIkNhbGxpbmcgybXJtWluamVjdCB3b3VsZCBjYXVzZSBpbmZpbml0ZSByZWN1cnNpb24iKX0pKFNtKSx2cih0LGUpKTp4YShiaSgpLG4sWmUodCksZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBEbSh0LGUsbil7Y29uc3Qgbz1maSgpLGk9U2koKTtpZihGcChvLGksZSkpe2NvbnN0IGE9Z2koKSxyPVlpKCk7bGQoYSxyLG8sdCxlLG9bMTFdLG4sITEpLG5nRGV2TW9kZSYmemQoYS5kYXRhLHIsdCxpKX1yZXR1cm4gRG19ZnVuY3Rpb24gRW0odCxlLG4sbyxpKXtjb25zdCBhPWk/ImNsYXNzIjoic3R5bGUiO1ZkKHQsbixlLmlucHV0c1thXSxhLG8pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBSbSh0LGUsbixvKXtjb25zdCBpPWZpKCksYT1naSgpLHI9Z28rdDtuZ0Rldk1vZGUmJmxuKHdpKCksYS5iaW5kaW5nU3RhcnRJbmRleCwiZWxlbWVudHMgc2hvdWxkIGJlIGNyZWF0ZWQgYmVmb3JlIGFueSBiaW5kaW5ncyIpLG5nRGV2TW9kZSYmX24oaSxyKTtjb25zdCBzPWlbMTFdLGw9aVtyXT1NbChzLGUsKGZ1bmN0aW9uIGMoKXtyZXR1cm4gbWkubEZyYW1lLmN1cnJlbnROYW1lc3BhY2V9KSgpKSxkPWEuZmlyc3RDcmVhdGVQYXNzPyhmdW5jdGlvbiBwKHQsZSxuLG8saSxhLHIpe25nRGV2TW9kZSYmQW8oZSksbmdEZXZNb2RlJiZuZ0Rldk1vZGUuZmlyc3RDcmVhdGVQYXNzKys7Y29uc3Qgcz1lLmNvbnN0cyxsPVpjKGUsdCwyLGksY2kocyxhKSksYz1tZChlLG4sbCxjaShzLHIpKTtyZXR1cm4gbmdEZXZNb2RlJiYoZnVuY3Rpb24gZCh0LGUsbixvKXtpZihudWxsPT09dC5zY2hlbWFzKXJldHVybjtjb25zdCBpPW4udmFsdWU7aWYoIW8mJm51bGwhPT1pJiYoInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MVW5rbm93bkVsZW1lbnQmJkhUTUxVbmtub3duRWxlbWVudCYmZSBpbnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBjdXN0b21FbGVtZW50cyYmaS5pbmRleE9mKCItIik+LTEmJiFjdXN0b21FbGVtZW50cy5nZXQoaSkpJiYhZGQodCxpKSl7bGV0IHQ9YCcke2l9JyBpcyBub3QgYSBrbm93biBlbGVtZW50OlxuYDt0Kz1gMS4gSWYgJyR7aX0nIGlzIGFuIEFuZ3VsYXIgY29tcG9uZW50LCB0aGVuIHZlcmlmeSB0aGF0IGl0IGlzIHBhcnQgb2YgdGhpcyBtb2R1bGUuXG5gLGkmJmkuaW5kZXhPZigiLSIpPi0xP3QrPWAyLiBJZiAnJHtpfScgaXMgYSBXZWIgQ29tcG9uZW50IHRoZW4gYWRkICdDVVNUT01fRUxFTUVOVFNfU0NIRU1BJyB0byB0aGUgJ0BOZ01vZHVsZS5zY2hlbWFzJyBvZiB0aGlzIGNvbXBvbmVudCB0byBzdXBwcmVzcyB0aGlzIG1lc3NhZ2UuYDp0Kz0iMi4gVG8gYWxsb3cgYW55IGVsZW1lbnQgYWRkICdOT19FUlJPUlNfU0NIRU1BJyB0byB0aGUgJ0BOZ01vZHVsZS5zY2hlbWFzJyBvZiB0aGlzIGNvbXBvbmVudC4iLGNvbnNvbGUuZXJyb3IoUWUoIjMwNCIsdCkpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKShlLG8sbCxjKSxudWxsIT09bC5hdHRycyYmVWQobCxsLmF0dHJzLCExKSxudWxsIT09bC5tZXJnZWRBdHRycyYmVWQobCxsLm1lcmdlZEF0dHJzLCEwKSxudWxsIT09ZS5xdWVyaWVzJiZlLnF1ZXJpZXMuZWxlbWVudFN0YXJ0KGUsbCksbH0pKHIsYSxpLGwsZSxuLG8pOmEuZGF0YVtyXTtDaShkLCEwKTtjb25zdCBtPWQubWVyZ2VkQXR0cnM7bnVsbCE9PW0mJmFhKHMsbCxtKTtjb25zdCB1PWQuY2xhc3NlcztudWxsIT09dSYmWWwocyxsLHUpO2NvbnN0IGY9ZC5zdHlsZXM7bnVsbCE9PWYmJldsKHMsbCxmKSw2NCE9KDY0JmQuZmxhZ3MpJiZIbChhLGksbCxkKSwwPT09KGZ1bmN0aW9uIGcoKXtyZXR1cm4gbWkubEZyYW1lLmVsZW1lbnREZXB0aENvdW50fSkoKSYmTHMobCxpKSwoZnVuY3Rpb24gaCgpe21pLmxGcmFtZS5lbGVtZW50RGVwdGhDb3VudCsrfSkoKSx2byhkKSYmKG5kKGEsaSxkKSxlZChhLGQsaSkpLG51bGwhPT1vJiZvZChpLGQpfWZ1bmN0aW9uIEFtKCl7bGV0IHQ9YmkoKTtuZ0Rldk1vZGUmJmhuKHQsIk5vIHBhcmVudCBub2RlIHRvIGNsb3NlLiIpLE1pKCk/dmkoKToobmdEZXZNb2RlJiZTbyhiaSgpKSx0PXQucGFyZW50LENpKHQsITEpKTtjb25zdCBlPXQ7bmdEZXZNb2RlJiZpYShlLDMpLChmdW5jdGlvbiBuKCl7bWkubEZyYW1lLmVsZW1lbnREZXB0aENvdW50LS19KSgpO2NvbnN0IG89Z2koKTtvLmZpcnN0Q3JlYXRlUGFzcyYmKFhpKG8sdCksQ28odCkmJm8ucXVlcmllcy5lbGVtZW50RW5kKHQpKSxudWxsIT1lLmNsYXNzZXNXaXRob3V0SG9zdCYmKGZ1bmN0aW9uIGkodCl7cmV0dXJuIDAhPSgxNiZ0LmZsYWdzKX0pKGUpJiZFbShvLGUsZmkoKSxlLmNsYXNzZXNXaXRob3V0SG9zdCwhMCksbnVsbCE9ZS5zdHlsZXNXaXRob3V0SG9zdCYmKGZ1bmN0aW9uIGEodCl7cmV0dXJuIDAhPSgzMiZ0LmZsYWdzKX0pKGUpJiZFbShvLGUsZmkoKSxlLnN0eWxlc1dpdGhvdXRIb3N0LCExKX1mdW5jdGlvbiBUbSh0LGUsbixvKXtSbSh0LGUsbixvKSxBbSgpfWZ1bmN0aW9uIE5tKHQsZSxuKXtjb25zdCBvPWZpKCksaT1naSgpLGE9dCtnbztuZ0Rldk1vZGUmJl9uKG8sYSksbmdEZXZNb2RlJiZsbih3aSgpLGkuYmluZGluZ1N0YXJ0SW5kZXgsImVsZW1lbnQgY29udGFpbmVycyBzaG91bGQgYmUgY3JlYXRlZCBiZWZvcmUgYW55IGJpbmRpbmdzIik7Y29uc3Qgcj1pLmZpcnN0Q3JlYXRlUGFzcz8oZnVuY3Rpb24gcyh0LGUsbixvLGkpe25nRGV2TW9kZSYmbmdEZXZNb2RlLmZpcnN0Q3JlYXRlUGFzcysrO2NvbnN0IGE9ZS5jb25zdHMscj1jaShhLG8pLHM9WmMoZSx0LDgsIm5nLWNvbnRhaW5lciIscik7cmV0dXJuIG51bGwhPT1yJiZVZChzLHIsITApLG1kKGUsbixzLGNpKGEsaSkpLG51bGwhPT1lLnF1ZXJpZXMmJmUucXVlcmllcy5lbGVtZW50U3RhcnQoZSxzKSxzfSkoYSxpLG8sZSxuKTppLmRhdGFbYV07Q2kociwhMCksbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJDcmVhdGVDb21tZW50Kys7Y29uc3QgbD1vW2FdPW9bMTFdLmNyZWF0ZUNvbW1lbnQobmdEZXZNb2RlPyJuZy1jb250YWluZXIiOiIiKTtIbChpLG8sbCxyKSxMcyhsLG8pLHZvKHIpJiYobmQoaSxvLHIpLGVkKGkscixvKSksbnVsbCE9biYmb2QobyxyKX1mdW5jdGlvbiB6bSgpe2xldCB0PWJpKCk7Y29uc3QgZT1naSgpO01pKCk/dmkoKToobmdEZXZNb2RlJiZTbyh0KSx0PXQucGFyZW50LENpKHQsITEpKSxuZ0Rldk1vZGUmJmlhKHQsOCksZS5maXJzdENyZWF0ZVBhc3MmJihYaShlLHQpLENvKHQpJiZlLnF1ZXJpZXMuZWxlbWVudEVuZCh0KSl9ZnVuY3Rpb24gSW0odCxlLG4pe05tKHQsZSxuKSx6bSgpfWZ1bmN0aW9uIEhtKCl7cmV0dXJuIGZpKCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEZtKHQpe3JldHVybiEhdCYmImZ1bmN0aW9uIj09dHlwZW9mIHQudGhlbn1mdW5jdGlvbiBMbSh0KXtyZXR1cm4hIXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnN1YnNjcmliZX1rbS5JTkpFQ1RPUl9LRVk9cG0uZ2V0KHJwKTtjb25zdCBCbT1MbTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gVm0odCxlLG4sbyl7Y29uc3QgaT1maSgpLGE9Z2koKSxyPWJpKCk7cmV0dXJuIFVtKGEsaSxpWzExXSxyLHQsZSwhIW4sbyksVm19ZnVuY3Rpb24gam0odCxlKXtjb25zdCBuPWJpKCksbz1maSgpLGk9Z2koKTtyZXR1cm4gVW0oaSxvLExkKFRpKGkuZGF0YSksbixvKSxuLHQsZSwhMSksam19ZnVuY3Rpb24gVW0odCxlLG4sbyxpLGEscixzKXtjb25zdCBsPXZvKG8pLGM9dC5maXJzdENyZWF0ZVBhc3MmJkZkKHQpLGQ9ZVs4XSxwPUhkKGUpO25nRGV2TW9kZSYmaWEobywxNSk7bGV0IG09ITA7aWYoMyZvLnR5cGV8fHMpe2NvbnN0IHU9b2kobyxlKSxmPXM/cyh1KTp1LGc9cC5sZW5ndGgsaD1zP3Q9PnMoZWkodFtvLmluZGV4XSkpOm8uaW5kZXg7aWYoJG8obikpe2xldCByPW51bGw7aWYoIXMmJmwmJihyPShmdW5jdGlvbiB1KHQsZSxuLG8pe2NvbnN0IGk9dC5jbGVhbnVwO2lmKG51bGwhPWkpZm9yKGxldCB0PTA7dDxpLmxlbmd0aC0xO3QrPTIpe2NvbnN0IGE9aVt0XTtpZihhPT09biYmaVt0KzFdPT09byl7Y29uc3Qgbj1lWzddLG89aVt0KzJdO3JldHVybiBuLmxlbmd0aD5vP25bb106bnVsbH0ic3RyaW5nIj09dHlwZW9mIGEmJih0Kz0yKX1yZXR1cm4gbnVsbH0pKHQsZSxpLG8uaW5kZXgpKSxudWxsIT09cikoci5fX25nTGFzdExpc3RlbmVyRm5fX3x8cikuX19uZ05leHRMaXN0ZW5lckZuX189YSxyLl9fbmdMYXN0TGlzdGVuZXJGbl9fPWEsbT0hMTtlbHNle2E9V20obyxlLGQsYSwhMSk7Y29uc3QgdD1uLmxpc3RlbihmLGksYSk7bmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJBZGRFdmVudExpc3RlbmVyKysscC5wdXNoKGEsdCksYyYmYy5wdXNoKGksaCxnLGcrMSl9fWVsc2UgYT1XbShvLGUsZCxhLCEwKSxmLmFkZEV2ZW50TGlzdGVuZXIoaSxhLHIpLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyQWRkRXZlbnRMaXN0ZW5lcisrLHAucHVzaChhKSxjJiZjLnB1c2goaSxoLGcscil9ZWxzZSBhPVdtKG8sZSxkLGEsITEpO2NvbnN0IGY9by5vdXRwdXRzO2xldCBnO2lmKG0mJm51bGwhPT1mJiYoZz1mW2ldKSl7Y29uc3QgdD1nLmxlbmd0aDtpZih0KWZvcihsZXQgbj0wO248dDtuKz0yKXtjb25zdCB0PWdbbl07bmdEZXZNb2RlJiZfbihlLHQpO2NvbnN0IHI9Z1tuKzFdLHM9ZVt0XSxsPXNbcl07aWYobmdEZXZNb2RlJiYhQm0obCkpdGhyb3cgbmV3IEVycm9yKGBAT3V0cHV0ICR7cn0gbm90IGluaXRpYWxpemVkIGluICcke3MuY29uc3RydWN0b3IubmFtZX0nLmApO2NvbnN0IGQ9bC5zdWJzY3JpYmUoYSksbT1wLmxlbmd0aDtwLnB1c2goYSxkKSxjJiZjLnB1c2goaSxvLmluZGV4LG0sLShtKzEpKX19fWZ1bmN0aW9uIEdtKHQsZSxuLG8pe3RyeXtyZXR1cm4gcW8oNixlLG4pLCExIT09bihvKX1jYXRjaChlKXtyZXR1cm4gQmQodCxlKSwhMX1maW5hbGx5e3FvKDcsZSxuKX19ZnVuY3Rpb24gV20odCxlLG4sbyxpKXtyZXR1cm4gZnVuY3Rpb24gYShyKXtpZihyPT09RnVuY3Rpb24pcmV0dXJuIG87Y29uc3Qgcz0yJnQuZmxhZ3M/cmkodC5pbmRleCxlKTplOzA9PSgzMiZlWzJdKSYmRWQocyk7bGV0IGw9R20oZSxuLG8sciksYz1hLl9fbmdOZXh0TGlzdGVuZXJGbl9fO2Zvcig7YzspbD1HbShlLG4sYyxyKSYmbCxjPWMuX19uZ05leHRMaXN0ZW5lckZuX187cmV0dXJuIGkmJiExPT09bCYmKHIucHJldmVudERlZmF1bHQoKSxyLnJldHVyblZhbHVlPSExKSxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIFltKHQ9MSl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuKG1pLmxGcmFtZS5jb250ZXh0TFZpZXc9KGZ1bmN0aW9uIGUodCxuKXtmb3IoO3Q+MDspbmdEZXZNb2RlJiZobihuWzE1XSwiRGVjbGFyYXRpb24gdmlldyBzaG91bGQgYmUgZGVmaW5lZCBpZiBuZXN0aW5nIGxldmVsIGlzIGdyZWF0ZXIgdGhhbiAwLiIpLG49blsxNV0sdC0tO3JldHVybiBufSkodCxtaS5sRnJhbWUuY29udGV4dExWaWV3KSlbOF19KSh0KX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gcW0odCxlKXtsZXQgbj1udWxsO2NvbnN0IG89KGZ1bmN0aW9uIGkodCl7Y29uc3QgZT10LmF0dHJzO2lmKG51bGwhPWUpe2NvbnN0IHQ9ZS5pbmRleE9mKDUpO2lmKDA9PSgxJnQpKXJldHVybiBlW3QrMV19cmV0dXJuIG51bGx9KSh0KTtmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKyl7Y29uc3QgYT1lW2ldO2lmKCIqIiE9PWEpe2lmKG51bGw9PT1vP2VjKHQsYSwhMCk6bmMobyxhKSlyZXR1cm4gaX1lbHNlIG49aX1yZXR1cm4gbn1mdW5jdGlvbiBabSh0KXtjb25zdCBlPWZpKClbMTZdWzZdO2lmKCFlLnByb2plY3Rpb24pe2NvbnN0IG49ZS5wcm9qZWN0aW9uPWlyKHQ/dC5sZW5ndGg6MSxudWxsKSxvPW4uc2xpY2UoKTtsZXQgaT1lLmNoaWxkO2Zvcig7bnVsbCE9PWk7KXtjb25zdCBlPXQ/cW0oaSx0KTowO251bGwhPT1lJiYob1tlXT9vW2VdLnByb2plY3Rpb25OZXh0PWk6bltlXT1pLG9bZV09aSksaT1pLm5leHR9fX1mdW5jdGlvbiBYbSh0LGU9MCxuKXtjb25zdCBvPWZpKCksaT1naSgpLGE9WmMoaSxnbyt0LDE2LG51bGwsbnx8bnVsbCk7bnVsbD09PWEucHJvamVjdGlvbiYmKGEucHJvamVjdGlvbj1lKSx2aSgpLDY0IT0oNjQmYS5mbGFncykmJihmdW5jdGlvbiByKHQsZSxuKXtHbChlWzExXSwwLGUsbix3bCh0LG4sZSksQWwobi5wYXJlbnR8fGVbNl0sbixlKSl9KShpLG8sYSl9ZnVuY3Rpb24gS20odCxlLG4pe3JldHVybiBKbSh0LCIiLGUsIiIsbiksS219ZnVuY3Rpb24gSm0odCxlLG4sbyxpKXtjb25zdCBhPWZpKCkscj1HcChhLGUsbixvKTtpZihyIT09YWMpe2NvbnN0IG49Z2koKSxzPVlpKCk7bGQobixzLGEsdCxyLGFbMTFdLGksITEpLG5nRGV2TW9kZSYmemQobi5kYXRhLHMsdCx3aSgpLTEsZSxvKX1yZXR1cm4gSm19ZnVuY3Rpb24gUW0odCxlLG4sbyxpKXtjb25zdCBhPXRbbisxXSxyPW51bGw9PT1lO2xldCBzPW8/Y2MoYSk6bWMoYSksbD0hMTtmb3IoOzAhPT1zJiYoITE9PT1sfHxyKTspe25nRGV2TW9kZSYmX24odCxzKTtjb25zdCBuPXRbcysxXTskbSh0W3NdLGUpJiYobD0hMCx0W3MrMV09bz9nYyhuKTpwYyhuKSkscz1vP2NjKG4pOm1jKG4pfWwmJih0W24rMV09bz9wYyhhKTpnYyhhKSl9ZnVuY3Rpb24gJG0odCxlKXtyZXR1cm4gbmdEZXZNb2RlJiZjbihBcnJheS5pc0FycmF5KGUpLCEwLCJFeHBlY3RlZCB0aGF0ICd0U3R5bGluZ0tleScgaGFzIGJlZW4gdW53cmFwcGVkIiksbnVsbD09PXR8fG51bGw9PWV8fChBcnJheS5pc0FycmF5KHQpP3RbMV06dCk9PT1lfHwhKCFBcnJheS5pc0FycmF5KHQpfHwic3RyaW5nIiE9dHlwZW9mIGUpJiZzcih0LGUpPj0wfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCB0dT17dGV4dEVuZDowLGtleTowLGtleUVuZDowLHZhbHVlOjAsdmFsdWVFbmQ6MH07ZnVuY3Rpb24gZXUodCl7cmV0dXJuIHQuc3Vic3RyaW5nKHR1LmtleSx0dS5rZXlFbmQpfWZ1bmN0aW9uIG51KHQpe3JldHVybiB0LnN1YnN0cmluZyh0dS52YWx1ZSx0dS52YWx1ZUVuZCl9ZnVuY3Rpb24gb3UodCxlKXtjb25zdCBuPXR1LnRleHRFbmQ7cmV0dXJuIG49PT1lPy0xOihlPXR1LmtleUVuZD0oZnVuY3Rpb24gbyh0LGUsbil7Zm9yKDtlPG4mJnQuY2hhckNvZGVBdChlKT4zMjspZSsrO3JldHVybiBlfSkodCx0dS5rZXk9ZSxuKSxydSh0LGUsbikpfWZ1bmN0aW9uIGl1KHQsZSl7Y29uc3Qgbj10dS50ZXh0RW5kO2xldCBvPXR1LmtleT1ydSh0LGUsbik7cmV0dXJuIG49PT1vPy0xOihvPXR1LmtleUVuZD0oZnVuY3Rpb24gaSh0LGUsbil7bGV0IG87Zm9yKDtlPG4mJig0NT09PShvPXQuY2hhckNvZGVBdChlKSl8fDk1PT09b3x8KC0zMyZvKT49NjUmJigtMzMmbyk8PTkwfHxvPj00OCYmbzw9NTcpOyllKys7cmV0dXJuIGV9KSh0LG8sbiksbz1zdSh0LG8sbiw1OCksbz10dS52YWx1ZT1ydSh0LG8sbiksbz10dS52YWx1ZUVuZD0oZnVuY3Rpb24gYSh0LGUsbil7bGV0IG89LTEsaT0tMSxhPS0xLHI9ZSxzPXI7Zm9yKDtyPG47KXtjb25zdCBsPXQuY2hhckNvZGVBdChyKyspO2lmKDU5PT09bClyZXR1cm4gczszND09PWx8fDM5PT09bD9zPXI9bHUodCxsLHIsbik6ZT09PXItNCYmODU9PT1hJiY4Mj09PWkmJjc2PT09byYmNDA9PT1sP3M9cj1sdSh0LDQxLHIsbik6bD4zMiYmKHM9ciksYT1pLGk9byxvPS0zMyZsfXJldHVybiBzfSkodCxvLG4pLHN1KHQsbyxuLDU5KSl9ZnVuY3Rpb24gYXUodCl7dHUua2V5PTAsdHUua2V5RW5kPTAsdHUudmFsdWU9MCx0dS52YWx1ZUVuZD0wLHR1LnRleHRFbmQ9dC5sZW5ndGh9ZnVuY3Rpb24gcnUodCxlLG4pe2Zvcig7ZTxuJiZ0LmNoYXJDb2RlQXQoZSk8PTMyOyllKys7cmV0dXJuIGV9ZnVuY3Rpb24gc3UodCxlLG4sbyl7cmV0dXJuKGU9cnUodCxlLG4pKTxuJiYobmdEZXZNb2RlJiZ0LmNoYXJDb2RlQXQoZSkhPT1vJiZjdSh0LFN0cmluZy5mcm9tQ2hhckNvZGUobyksZSksZSsrKSxlfWZ1bmN0aW9uIGx1KHQsZSxuLG8pe2xldCBpPS0xLGE9bjtmb3IoO2E8bzspe2NvbnN0IG49dC5jaGFyQ29kZUF0KGErKyk7aWYobj09ZSYmOTIhPT1pKXJldHVybiBhO2k9OTI9PW4mJjkyPT09aT8wOm59dGhyb3cgbmdEZXZNb2RlP2N1KHQsU3RyaW5nLmZyb21DaGFyQ29kZShlKSxvKTpuZXcgRXJyb3J9ZnVuY3Rpb24gY3UodCxlLG4pe3Rocm93IG5nRGV2TW9kZSYmbG4oInN0cmluZyI9PXR5cGVvZiB0LCEwLCJTdHJpbmcgZXhwZWN0ZWQgaGVyZSIpLGJuKGBNYWxmb3JtZWQgc3R5bGUgYXQgbG9jYXRpb24gJHtufSBpbiBzdHJpbmcgJ2ArdC5zdWJzdHJpbmcoMCxuKSsiWz4+Iit0LnN1YnN0cmluZyhuLG4rMSkrIjw8XSIrdC5zdWJzdHIobisxKStgJy4gRXhwZWN0aW5nICcke2V9Jy5gKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gZHUodCxlLG4pe3JldHVybiBodSh0LGUsbiwhMSksZHV9ZnVuY3Rpb24gcHUodCxlKXtyZXR1cm4gaHUodCxlLG51bGwsITApLHB1fWZ1bmN0aW9uIG11KHQpe2J1KHZ1LHV1LHQsITEpfWZ1bmN0aW9uIHV1KHQsZSl7Zm9yKGxldCBuPShmdW5jdGlvbiBuKHQpe3JldHVybiBhdSh0KSxpdSh0LHJ1KHQsMCx0dS50ZXh0RW5kKSl9KShlKTtuPj0wO249aXUoZSxuKSl2dSh0LGV1KGUpLG51KGUpKX1mdW5jdGlvbiBmdSh0KXtidShhcixndSx0LCEwKX1mdW5jdGlvbiBndSh0LGUpe2ZvcihsZXQgbj0oZnVuY3Rpb24gbih0KXtyZXR1cm4gYXUodCksb3UodCxydSh0LDAsdHUudGV4dEVuZCkpfSkoZSk7bj49MDtuPW91KGUsbikpYXIodCxldShlKSwhMCl9ZnVuY3Rpb24gaHUodCxlLG4sbyl7Y29uc3QgaT1maSgpLGE9Z2koKSxyPURpKDIpO2EuZmlyc3RVcGRhdGVQYXNzJiZfdShhLHQscixvKSxlIT09YWMmJkZwKGkscixlKSYmeHUoYSxhLmRhdGFbR2koKV0saSxpWzExXSx0LGlbcisxXT0oZnVuY3Rpb24gcyh0LGUpe3JldHVybiBudWxsPT10fHwoInN0cmluZyI9PXR5cGVvZiBlP3QrPWU6Im9iamVjdCI9PXR5cGVvZiB0JiYodD1HZSh0cyh0KSkpKSx0fSkoZSxuKSxvLHIpfWZ1bmN0aW9uIGJ1KHQsZSxuLG8pe2NvbnN0IGk9Z2koKSxhPURpKDIpO2kuZmlyc3RVcGRhdGVQYXNzJiZfdShpLG51bGwsYSxvKTtjb25zdCByPWZpKCk7aWYobiE9PWFjJiZGcChyLGEsbikpe2NvbnN0IHM9aS5kYXRhW0dpKCldO2lmKHd1KHMsbykmJiF5dShpLGEpKXtpZihuZ0Rldk1vZGUpe2NvbnN0IHQ9aS5kYXRhW2FdO2xuKEFycmF5LmlzQXJyYXkodCk/dFsxXTp0LCExLCJTdHlsaW5nIGxpbmtlZCBsaXN0IHNoYWRvdyBpbnB1dCBzaG91bGQgYmUgbWFya2VkIGFzICdmYWxzZSciKX1sZXQgdD1vP3MuY2xhc3Nlc1dpdGhvdXRIb3N0OnMuc3R5bGVzV2l0aG91dEhvc3Q7bmdEZXZNb2RlJiYhMT09PW8mJm51bGwhPT10JiZsbih0LmVuZHNXaXRoKCI7IiksITAsIkV4cGVjdGluZyBzdGF0aWMgcG9ydGlvbiB0byBlbmQgd2l0aCAnOyciKSxudWxsIT09dCYmKG49V2UodCxufHwiIikpLEVtKGkscyxyLG4sbyl9ZWxzZSEoZnVuY3Rpb24gbCh0LGUsbixvLGksYSxyLHMpe2k9PT1hYyYmKGk9V24pO2xldCBsPTAsYz0wLGQ9MDxpLmxlbmd0aD9pWzBdOm51bGwscD0wPGEubGVuZ3RoP2FbMF06bnVsbDtmb3IoO251bGwhPT1kfHxudWxsIT09cDspe25nRGV2TW9kZSYmbW4obCw5OTksIkFyZSB3ZSBzdHVjayBpbiBpbmZpbml0ZSBsb29wPyIpLG5nRGV2TW9kZSYmbW4oYyw5OTksIkFyZSB3ZSBzdHVjayBpbiBpbmZpbml0ZSBsb29wPyIpO2NvbnN0IG09bDxpLmxlbmd0aD9pW2wrMV06dm9pZCAwLHU9YzxhLmxlbmd0aD9hW2MrMV06dm9pZCAwO2xldCBmLGc9bnVsbDtkPT09cD8obCs9MixjKz0yLG0hPT11JiYoZz1wLGY9dSkpOm51bGw9PT1wfHxudWxsIT09ZCYmZDxwPyhsKz0yLGc9ZCk6KG5nRGV2TW9kZSYmaG4ocCwiRXhwZWN0aW5nIHRvIGhhdmUgYSB2YWxpZCBrZXkiKSxjKz0yLGc9cCxmPXUpLG51bGwhPT1nJiZ4dSh0LGUsbixvLGcsZixyLHMpLGQ9bDxpLmxlbmd0aD9pW2xdOm51bGwscD1jPGEubGVuZ3RoP2FbY106bnVsbH19KShpLHMscixyWzExXSxyW2ErMV0sclthKzFdPShmdW5jdGlvbiBzKHQsZSxuKXtpZihudWxsPT1ufHwiIj09PW4pcmV0dXJuIFduO2NvbnN0IG89W10saT10cyhuKTtpZihBcnJheS5pc0FycmF5KGkpKWZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXQobyxpW2VdLCEwKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgaSlmb3IoY29uc3QgZSBpbiBpKWkuaGFzT3duUHJvcGVydHkoZSkmJnQobyxlLGlbZV0pO2Vsc2Uic3RyaW5nIj09dHlwZW9mIGk/ZShvLGkpOm5nRGV2TW9kZSYmYm4oIlVuc3VwcG9ydGVkIHN0eWxpbmcgdHlwZSAiK3R5cGVvZiBpKyI6ICIraSk7cmV0dXJuIG99KSh0LGUsbiksbyxhKX19ZnVuY3Rpb24geXUodCxlKXtyZXR1cm4gZT49dC5leHBhbmRvU3RhcnRJbmRleH1mdW5jdGlvbiBfdSh0LGUsbixvKXtuZ0Rldk1vZGUmJlRvKHQpO2NvbnN0IGk9dC5kYXRhO2lmKG51bGw9PT1pW24rMV0pe2NvbnN0IGE9aVtHaSgpXTtuZ0Rldk1vZGUmJmhuKGEsIlROb2RlIGV4cGVjdGVkIik7Y29uc3Qgcj15dSh0LG4pO3d1KGEsbykmJm51bGw9PT1lJiYhciYmKGU9ITEpLGU9KGZ1bmN0aW9uIGEodCxlLG4sbyl7Y29uc3QgaT1UaSh0KTtsZXQgYT1vP2UucmVzaWR1YWxDbGFzc2VzOmUucmVzaWR1YWxTdHlsZXM7aWYobnVsbD09PWkpMD09PShvP2UuY2xhc3NCaW5kaW5nczplLnN0eWxlQmluZGluZ3MpJiYobj1NdShuPUN1KG51bGwsdCxlLG4sbyksZS5hdHRycyxvKSxhPW51bGwpO2Vsc2V7Y29uc3Qgcj1lLmRpcmVjdGl2ZVN0eWxpbmdMYXN0O2lmKC0xPT09cnx8dFtyXSE9PWkpaWYobj1DdShpLHQsZSxuLG8pLG51bGw9PT1hKXtsZXQgbj0oZnVuY3Rpb24gcih0LGUsbil7Y29uc3Qgbz1uP2UuY2xhc3NCaW5kaW5nczplLnN0eWxlQmluZGluZ3M7aWYoMCE9PW1jKG8pKXJldHVybiB0W2NjKG8pXX0pKHQsZSxvKTt2b2lkIDAhPT1uJiZBcnJheS5pc0FycmF5KG4pJiYobj1DdShudWxsLHQsZSxuWzFdLG8pLG49TXUobixlLmF0dHJzLG8pLChmdW5jdGlvbiBzKHQsZSxuLG8pe2NvbnN0IGk9bj9lLmNsYXNzQmluZGluZ3M6ZS5zdHlsZUJpbmRpbmdzO25nRGV2TW9kZSYmY24obWMoaSksMCwiRXhwZWN0aW5nIHRvIGhhdmUgYXQgbGVhc3Qgb25lIHRlbXBsYXRlIHN0eWxpbmcgYmluZGluZy4iKSx0W2NjKGkpXT1vfSkodCxlLG8sbikpfWVsc2UgYT0oZnVuY3Rpb24gbCh0LGUsbil7bGV0IG87Y29uc3QgaT1lLmRpcmVjdGl2ZUVuZDtuZ0Rldk1vZGUmJmNuKGUuZGlyZWN0aXZlU3R5bGluZ0xhc3QsLTEsIkJ5IHRoZSB0aW1lIHRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgYXQgbGVhc3Qgb25lIGhvc3RCaW5kaW5ncy1ub2RlIHN0eWxpbmcgaW5zdHJ1Y3Rpb24gbXVzdCBoYXZlIGV4ZWN1dGVkLiIpO2ZvcihsZXQgYT0xK2UuZGlyZWN0aXZlU3R5bGluZ0xhc3Q7YTxpO2ErKylvPU11KG8sdFthXS5ob3N0QXR0cnMsbik7cmV0dXJuIE11KG8sZS5hdHRycyxuKX0pKHQsZSxvKX1yZXR1cm4gdm9pZCAwIT09YSYmKG8/ZS5yZXNpZHVhbENsYXNzZXM9YTplLnJlc2lkdWFsU3R5bGVzPWEpLG59KShpLGEsZSxvKSwoZnVuY3Rpb24gcih0LGUsbixvLGksYSl7bmdEZXZNb2RlJiZUbyhnaSgpKTtsZXQgcj1hP2UuY2xhc3NCaW5kaW5nczplLnN0eWxlQmluZGluZ3Mscz1jYyhyKSxsPW1jKHIpO3Rbb109bjtsZXQgYyxkPSExO2lmKEFycmF5LmlzQXJyYXkobikpe2NvbnN0IHQ9bjtjPXRbMV0sKG51bGw9PT1jfHxzcih0LGMpPjApJiYoZD0hMCl9ZWxzZSBjPW47aWYoaSlpZigwIT09bCl7Y29uc3QgZT1jYyh0W3MrMV0pO3RbbysxXT1sYyhlLHMpLDAhPT1lJiYodFtlKzFdPXVjKHRbZSsxXSxvKSksdFtzKzFdPShmdW5jdGlvbiBwKHQsZSl7cmV0dXJuIG5nRGV2TW9kZSYmYW4odCwiZXhwZWN0ZWQgbnVtYmVyIiksbmdEZXZNb2RlJiZybihlLDAsMzI3NjcpLDEzMTA3MSZ0fGU8PDE3fSkodFtzKzFdLG8pfWVsc2UgdFtvKzFdPWxjKHMsMCksMCE9PXMmJih0W3MrMV09dWModFtzKzFdLG8pKSxzPW87ZWxzZSB0W28rMV09bGMobCwwKSxuZ0Rldk1vZGUmJmxuKDAhPT1zJiYwPT09bCwhMSwiQWRkaW5nIHRlbXBsYXRlIGJpbmRpbmdzIGFmdGVyIGhvc3RCaW5kaW5ncyBpcyBub3QgYWxsb3dlZC4iKSwwPT09cz9zPW86dFtsKzFdPXVjKHRbbCsxXSxvKSxsPW87ZCYmKHRbbysxXT1wYyh0W28rMV0pKSxRbSh0LGMsbywhMCksUW0odCxjLG8sITEpLChmdW5jdGlvbiBtKHQsZSxuLG8saSl7Y29uc3QgYT1pP3QucmVzaWR1YWxDbGFzc2VzOnQucmVzaWR1YWxTdHlsZXM7bnVsbCE9YSYmInN0cmluZyI9PXR5cGVvZiBlJiZzcihhLGUpPj0wJiYobltvKzFdPWdjKG5bbysxXSkpfSkoZSxjLHQsbyxhKSxyPWxjKHMsbCksYT9lLmNsYXNzQmluZGluZ3M9cjplLnN0eWxlQmluZGluZ3M9cn0pKGksYSxlLG4scixvKX19ZnVuY3Rpb24gQ3UodCxlLG4sbyxpKXtsZXQgYT1udWxsO2NvbnN0IHI9bi5kaXJlY3RpdmVFbmQ7bGV0IHM9bi5kaXJlY3RpdmVTdHlsaW5nTGFzdDtmb3IoLTE9PT1zP3M9bi5kaXJlY3RpdmVTdGFydDpzKys7czxyJiYoYT1lW3NdLG5nRGV2TW9kZSYmaG4oYSwiZXhwZWN0ZWQgdG8gYmUgZGVmaW5lZCIpLG89TXUobyxhLmhvc3RBdHRycyxpKSxhIT09dCk7KXMrKztyZXR1cm4gbnVsbCE9PXQmJihuLmRpcmVjdGl2ZVN0eWxpbmdMYXN0PXMpLG99ZnVuY3Rpb24gTXUodCxlLG4pe2NvbnN0IG89bj8xOjI7bGV0IGk9LTE7aWYobnVsbCE9PWUpZm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspe2NvbnN0IHI9ZVthXTsibnVtYmVyIj09dHlwZW9mIHI/aT1yOmk9PT1vJiYoQXJyYXkuaXNBcnJheSh0KXx8KHQ9dm9pZCAwPT09dD9bXTpbIiIsdF0pLGFyKHQsciwhIW58fGVbKythXSkpfXJldHVybiB2b2lkIDA9PT10P251bGw6dH1mdW5jdGlvbiB2dSh0LGUsbil7YXIodCxlLHRzKG4pKX1mdW5jdGlvbiB4dSh0LGUsbixvLGksYSxyLHMpe2lmKCEoMyZlLnR5cGUpKXJldHVybjtjb25zdCBsPXQuZGF0YSxjPWxbcysxXTtQdShmYyhjKT9PdShsLGUsbixpLG1jKGMpLHIpOnZvaWQgMCl8fChQdShhKXx8ZGMoYykmJihhPU91KGwsbnVsbCxuLGkscyxyKSksKGZ1bmN0aW9uIGQodCxlLG4sbyxpKXtjb25zdCBhPSRvKHQpO2lmKGUpaT8obmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJBZGRDbGFzcysrLGE/dC5hZGRDbGFzcyhuLG8pOihuZ0Rldk1vZGUmJmhuKG4uY2xhc3NMaXN0LCJIVE1MRWxlbWVudCBleHBlY3RlZCIpLG4uY2xhc3NMaXN0LmFkZChvKSkpOihuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlclJlbW92ZUNsYXNzKyssYT90LnJlbW92ZUNsYXNzKG4sbyk6bi5jbGFzc0xpc3QucmVtb3ZlKG8pKTtlbHNle2xldCBlPS0xPT09by5pbmRleE9mKCItIik/dm9pZCAwOmNsLkRhc2hDYXNlO2lmKG51bGw9PWkpbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJSZW1vdmVTdHlsZSsrLGE/dC5yZW1vdmVTdHlsZShuLG8sZSk6bi5zdHlsZS5yZW1vdmVQcm9wZXJ0eShvKTtlbHNle2NvbnN0IHI9InN0cmluZyI9PXR5cGVvZiBpJiZpLmVuZHNXaXRoKCIhaW1wb3J0YW50Iik7ciYmKGk9aS5zbGljZSgwLC0xMCksZXw9Y2wuSW1wb3J0YW50KSxuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlclNldFN0eWxlKyssYT90LnNldFN0eWxlKG4sbyxpLGUpOihuZ0Rldk1vZGUmJmhuKG4uc3R5bGUsIkhUTUxFbGVtZW50IGV4cGVjdGVkIiksbi5zdHlsZS5zZXRQcm9wZXJ0eShvLGkscj8iaW1wb3J0YW50IjoiIikpfX19KShvLHIsbmkoR2koKSxuKSxpLGEpKX1mdW5jdGlvbiBPdSh0LGUsbixvLGksYSl7Y29uc3Qgcj1udWxsPT09ZTtsZXQgcztmb3IoO2k+MDspe2NvbnN0IGU9dFtpXSxhPUFycmF5LmlzQXJyYXkoZSksbD1hP2VbMV06ZSxjPW51bGw9PT1sO2xldCBkPW5baSsxXTtkPT09YWMmJihkPWM/V246dm9pZCAwKTtsZXQgcD1jP3JyKGQsbyk6bD09PW8/ZDp2b2lkIDA7aWYoYSYmIVB1KHApJiYocD1ycihlLG8pKSxQdShwKSYmKHM9cCxyKSlyZXR1cm4gcztjb25zdCBtPXRbaSsxXTtpPXI/Y2MobSk6bWMobSl9aWYobnVsbCE9PWUpe2xldCB0PWE/ZS5yZXNpZHVhbENsYXNzZXM6ZS5yZXNpZHVhbFN0eWxlcztudWxsIT10JiYocz1ycih0LG8pKX1yZXR1cm4gc31mdW5jdGlvbiBQdSh0KXtyZXR1cm4gdm9pZCAwIT09dH1mdW5jdGlvbiB3dSh0LGUpe3JldHVybiAwIT0odC5mbGFncyYoZT8xNjozMikpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBrdSh0LGU9IiIpe2NvbnN0IG49ZmkoKSxvPWdpKCksaT10K2dvO25nRGV2TW9kZSYmbG4od2koKSxvLmJpbmRpbmdTdGFydEluZGV4LCJ0ZXh0IG5vZGVzIHNob3VsZCBiZSBjcmVhdGVkIGJlZm9yZSBhbnkgYmluZGluZ3MiKSxuZ0Rldk1vZGUmJl9uKG4saSk7Y29uc3QgYT1vLmZpcnN0Q3JlYXRlUGFzcz9aYyhvLGksMSxlLG51bGwpOm8uZGF0YVtpXSxyPW5baV09eWwoblsxMV0sZSk7SGwobyxuLHIsYSksQ2koYSwhMSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIFN1KHQpe3JldHVybiBEdSgiIix0LCIiKSxTdX1mdW5jdGlvbiBEdSh0LGUsbil7Y29uc3Qgbz1maSgpLGk9R3Aobyx0LGUsbik7cmV0dXJuIGkhPT1hYyYmamQobyxHaSgpLGkpLER1fWZ1bmN0aW9uIEV1KHQsZSxuLG8saSl7Y29uc3QgYT1maSgpLHI9V3AoYSx0LGUsbixvLGkpO3JldHVybiByIT09YWMmJmpkKGEsR2koKSxyKSxFdX1mdW5jdGlvbiBSdSh0LGUsbixvLGksYSxyKXtjb25zdCBzPWZpKCksbD1ZcChzLHQsZSxuLG8saSxhLHIpO3JldHVybiBsIT09YWMmJmpkKHMsR2koKSxsKSxSdX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIEF1KHQsZSxuKXtidShhcixndSxHcChmaSgpLHQsZSxuKSwhMCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBUdSh0LGUsbil7Y29uc3Qgbz1maSgpLGk9U2koKTtpZihGcChvLGksZSkpe2NvbnN0IGE9Z2koKSxyPVlpKCk7bGQoYSxyLG8sdCxlLG9bMTFdLG4sITApLG5nRGV2TW9kZSYmemQoYS5kYXRhLHIsdCxpKX1yZXR1cm4gVHV9ZnVuY3Rpb24gTnUodCxlLG4pe2NvbnN0IG89ZmkoKSxpPVNpKCk7aWYoRnAobyxpLGUpKXtjb25zdCBhPWdpKCkscj1ZaSgpO2xkKGEscixvLHQsZSxMZChUaShhLmRhdGEpLHIsbyksbiwhMCksbmdEZXZNb2RlJiZ6ZChhLmRhdGEscix0LGkpfXJldHVybiBOdX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmKGpuLm5nSTE4bkNsb3N1cmVNb2RlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ29vZyYmImZ1bmN0aW9uIj09dHlwZW9mIGdvb2cuZ2V0TXNnKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgenU9dm9pZCAwO3ZhciBJdT1bImVuIixbWyJhIiwicCJdLFsiQU0iLCJQTSJdLHp1XSxbWyJBTSIsIlBNIl0senUsenVdLFtbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLFsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl1dLHp1LFtbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLFsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sWyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdXSx6dSxbWyJCIiwiQSJdLFsiQkMiLCJBRCJdLFsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl1dLDAsWzYsMF0sWyJNL2QveXkiLCJNTU0gZCwgeSIsIk1NTU0gZCwgeSIsIkVFRUUsIE1NTU0gZCwgeSJdLFsiaDptbSBhIiwiaDptbTpzcyBhIiwiaDptbTpzcyBhIHoiLCJoOm1tOnNzIGEgenp6eiJdLFsiezF9LCB7MH0iLHp1LCJ7MX0gJ2F0JyB7MH0iLHp1XSxbIi4iLCIsIiwiOyIsIiUiLCIrIiwiLSIsIkUiLCLDlyIsIuKAsCIsIuKIniIsIk5hTiIsIjoiXSxbIiMsIyMwLiMjIyIsIiMsIyMwJSIsIsKkIywjIzAuMDAiLCIjRTAiXSwiVVNEIiwiJCIsIlVTIERvbGxhciIse30sImx0ciIsZnVuY3Rpb24gSHUodCl7Y29uc3QgZT1NYXRoLmZsb29yKE1hdGguYWJzKHQpKSxuPXQudG9TdHJpbmcoKS5yZXBsYWNlKC9eW14uXSpcLj8vLCIiKS5sZW5ndGg7cmV0dXJuIDE9PT1lJiYwPT09bj8xOjV9XTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IEZ1PXt9O2Z1bmN0aW9uIEx1KHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIi0iKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KTtsZXQgbz1WdShlKTtpZihvKXJldHVybiBvO2NvbnN0IGk9ZS5zcGxpdCgiLSIpWzBdO2lmKG89VnUoaSksbylyZXR1cm4gbztpZigiZW4iPT09aSlyZXR1cm4gSXU7dGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIGxvY2FsZSBkYXRhIGZvciB0aGUgbG9jYWxlICIke3R9Ii5gKX1mdW5jdGlvbiBCdSh0KXtyZXR1cm4gTHUodClbanUuUGx1cmFsQ2FzZV19ZnVuY3Rpb24gVnUodCl7cmV0dXJuIHQgaW4gRnV8fChGdVt0XT1qbi5uZyYmam4ubmcuY29tbW9uJiZqbi5uZy5jb21tb24ubG9jYWxlcyYmam4ubmcuY29tbW9uLmxvY2FsZXNbdF0pLEZ1W3RdfXZhciBqdTshKGZ1bmN0aW9uKHQpe3RbdC5Mb2NhbGVJZD0wXT0iTG9jYWxlSWQiLHRbdC5EYXlQZXJpb2RzRm9ybWF0PTFdPSJEYXlQZXJpb2RzRm9ybWF0Iix0W3QuRGF5UGVyaW9kc1N0YW5kYWxvbmU9Ml09IkRheVBlcmlvZHNTdGFuZGFsb25lIix0W3QuRGF5c0Zvcm1hdD0zXT0iRGF5c0Zvcm1hdCIsdFt0LkRheXNTdGFuZGFsb25lPTRdPSJEYXlzU3RhbmRhbG9uZSIsdFt0Lk1vbnRoc0Zvcm1hdD01XT0iTW9udGhzRm9ybWF0Iix0W3QuTW9udGhzU3RhbmRhbG9uZT02XT0iTW9udGhzU3RhbmRhbG9uZSIsdFt0LkVyYXM9N109IkVyYXMiLHRbdC5GaXJzdERheU9mV2Vlaz04XT0iRmlyc3REYXlPZldlZWsiLHRbdC5XZWVrZW5kUmFuZ2U9OV09IldlZWtlbmRSYW5nZSIsdFt0LkRhdGVGb3JtYXQ9MTBdPSJEYXRlRm9ybWF0Iix0W3QuVGltZUZvcm1hdD0xMV09IlRpbWVGb3JtYXQiLHRbdC5EYXRlVGltZUZvcm1hdD0xMl09IkRhdGVUaW1lRm9ybWF0Iix0W3QuTnVtYmVyU3ltYm9scz0xM109Ik51bWJlclN5bWJvbHMiLHRbdC5OdW1iZXJGb3JtYXRzPTE0XT0iTnVtYmVyRm9ybWF0cyIsdFt0LkN1cnJlbmN5Q29kZT0xNV09IkN1cnJlbmN5Q29kZSIsdFt0LkN1cnJlbmN5U3ltYm9sPTE2XT0iQ3VycmVuY3lTeW1ib2wiLHRbdC5DdXJyZW5jeU5hbWU9MTddPSJDdXJyZW5jeU5hbWUiLHRbdC5DdXJyZW5jaWVzPTE4XT0iQ3VycmVuY2llcyIsdFt0LkRpcmVjdGlvbmFsaXR5PTE5XT0iRGlyZWN0aW9uYWxpdHkiLHRbdC5QbHVyYWxDYXNlPTIwXT0iUGx1cmFsQ2FzZSIsdFt0LkV4dHJhRGF0YT0yMV09IkV4dHJhRGF0YSJ9KShqdXx8KGp1PXt9KSk7Y29uc3QgVXU9WyJ6ZXJvIiwib25lIiwidHdvIiwiZmV3IiwibWFueSJdLEd1PSJlbi1VUyIsV3U9e21hcmtlcjoiZWxlbWVudCJ9LFl1PXttYXJrZXI6IklDVSJ9O3ZhciBxdTshKGZ1bmN0aW9uKHQpe3RbdC5TSElGVD0yXT0iU0hJRlQiLHRbdC5BUFBFTkRfRUFHRVJMWT0xXT0iQVBQRU5EX0VBR0VSTFkiLHRbdC5DT01NRU5UPTJdPSJDT01NRU5UIn0pKHF1fHwocXU9e30pKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBadT1HdTtmdW5jdGlvbiBYdSh0KXtobih0LCJFeHBlY3RlZCBsb2NhbGVJZCB0byBiZSBkZWZpbmVkIiksInN0cmluZyI9PXR5cGVvZiB0JiYoWnU9dC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywiLSIpKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIEt1KHQsZSxuKXtjb25zdCBvPWUuaW5zZXJ0QmVmb3JlSW5kZXgsaT1BcnJheS5pc0FycmF5KG8pP29bMF06bztyZXR1cm4gbnVsbD09PWk/VGwodCwwLG4pOihuZ0Rldk1vZGUmJl9uKG4saSksZWkobltpXSkpfWZ1bmN0aW9uIEp1KHQsZSxuLG8saSl7Y29uc3QgYT1lLmluc2VydEJlZm9yZUluZGV4O2lmKEFycmF5LmlzQXJyYXkoYSkpe25nRGV2TW9kZSYmeW4obyk7bGV0IHI9byxzPW51bGw7aWYoMyZlLnR5cGV8fChzPXIscj1pKSxudWxsIT09ciYmMD09KDImZS5mbGFncykpZm9yKGxldCBlPTE7ZTxhLmxlbmd0aDtlKyspU2wodCxyLG5bYVtlXV0scywhMSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBRdSh0LGUpe2lmKG5nRGV2TW9kZSYmbG4oZS5pbnNlcnRCZWZvcmVJbmRleCxudWxsLCJXZSBleHBlY3QgdGhhdCBpbnNlcnRCZWZvcmVJbmRleCBpcyBub3Qgc2V0IiksdC5wdXNoKGUpLHQubGVuZ3RoPjEpZm9yKGxldCBuPXQubGVuZ3RoLTI7bj49MDtuLS0pe2NvbnN0IG89dFtuXTskdShvKXx8dGYobyxlKSYmbnVsbD09PWVmKG8pJiZuZihvLGUuaW5kZXgpfX1mdW5jdGlvbiAkdSh0KXtyZXR1cm4hKDY0JnQudHlwZSl9ZnVuY3Rpb24gdGYodCxlKXtyZXR1cm4gJHUoZSl8fHQuaW5kZXg+ZS5pbmRleH1mdW5jdGlvbiBlZih0KXtjb25zdCBlPXQuaW5zZXJ0QmVmb3JlSW5kZXg7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZVswXTplfWZ1bmN0aW9uIG5mKHQsZSl7Y29uc3Qgbj10Lmluc2VydEJlZm9yZUluZGV4O0FycmF5LmlzQXJyYXkobik/blswXT1lOihJbChLdSxKdSksdC5pbnNlcnRCZWZvcmVJbmRleD1lKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gb2YodCxlKXtjb25zdCBuPXQuZGF0YVtlXTtpZihudWxsPT09bnx8InN0cmluZyI9PXR5cGVvZiBuKXJldHVybiBudWxsOyFuZ0Rldk1vZGV8fG4uaGFzT3duUHJvcGVydHkoInRWaWV3cyIpfHxuLmhhc093blByb3BlcnR5KCJjdXJyZW50Q2FzZUxWaWV3SW5kZXgiKXx8Ym4oIldlIGV4cGVjdCB0byBnZXQgJ251bGwnfCdUSWN1J3wnVEljdUNvbnRhaW5lcicsIGJ1dCBnb3Q6ICIrbik7Y29uc3Qgbz1uLmhhc093blByb3BlcnR5KCJjdXJyZW50Q2FzZUxWaWV3SW5kZXgiKT9uOm4udmFsdWU7cmV0dXJuIG5nRGV2TW9kZSYma28obyksb31mdW5jdGlvbiBhZih0LGUsbil7Y29uc3Qgbz1YYyh0LG4sNjQsbnVsbCxudWxsKTtyZXR1cm4gUXUoZSxvKSxvfWZ1bmN0aW9uIHJmKHQsZSl7Y29uc3Qgbj1lW3QuY3VycmVudENhc2VMVmlld0luZGV4XTtyZXR1cm4gbnVsbD09PW4/bjpuPDA/fm46bn1mdW5jdGlvbiBzZih0KXtyZXR1cm4gdD4+PjE3fWZ1bmN0aW9uIGxmKHQpe3JldHVybigxMzEwNzAmdCk+Pj4xfWZ1bmN0aW9uIGNmKHQpe3JldHVybiAxJnR9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgZGY9MCxwZj0wO2Z1bmN0aW9uIG1mKHQsZSxuLG8pe25nRGV2TW9kZSYmeW4obyk7Y29uc3QgaT1uWzExXTtsZXQgYSxyPW51bGw7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspe2NvbnN0IGw9ZVtzXTtpZigic3RyaW5nIj09dHlwZW9mIGwpe2NvbnN0IHQ9ZVsrK3NdO251bGw9PT1uW3RdJiYobmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJDcmVhdGVUZXh0Tm9kZSsrLG5nRGV2TW9kZSYmX24obix0KSxuW3RdPXlsKGksbCkpfWVsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBsKXN3aXRjaCgxJmwpe2Nhc2UgMDpjb25zdCBjPXNmKGwpO2xldCBkLHA7aWYobnVsbD09PXImJihyPWMsYT1SbChpLG8pKSxjPT09cj8oZD1vLHA9YSk6KGQ9bnVsbCxwPWVpKG5bY10pKSxudWxsIT09cCl7bmdEZXZNb2RlJiZ5bihwKTtjb25zdCBlPWxmKGwpO25nRGV2TW9kZSYmZm4oZSxnbywiTWlzc2luZyByZWYiKTtjb25zdCBvPW5bZV07bmdEZXZNb2RlJiZ5bihvKSxTbChpLHAsbyxkLCExKTtjb25zdCBhPW9mKHQsZSk7aWYobnVsbCE9PWEmJiJvYmplY3QiPT10eXBlb2YgYSl7bmdEZXZNb2RlJiZrbyhhKTtjb25zdCBlPXJmKGEsbik7bnVsbCE9PWUmJm1mKHQsYS5jcmVhdGVbZV0sbixuW2EuYW5jaG9ySWR4XSl9fWJyZWFrO2Nhc2UgMTpjb25zdCBtPWVbKytzXSx1PWVbKytzXTtNZChpLG5pKGw+Pj4xLG4pLG51bGwsbnVsbCxtLHUsbnVsbCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgbXV0YXRlIG9wZXJhdGlvbiBmb3IgIiR7bH0iYCl9ZWxzZSBzd2l0Y2gobCl7Y2FzZSBZdTpjb25zdCB0PWVbKytzXSxvPWVbKytzXTtudWxsPT09bltvXSYmKG5nRGV2TW9kZSYmbG4odHlwZW9mIHQsInN0cmluZyIsYEV4cGVjdGVkICIke3R9IiB0byBiZSBhIGNvbW1lbnQgbm9kZSB2YWx1ZWApLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyQ3JlYXRlQ29tbWVudCsrLG5nRGV2TW9kZSYmTm8obixvKSxMcyhuW29dPUNsKGksdCksbikpO2JyZWFrO2Nhc2UgV3U6Y29uc3QgYT1lWysrc10scj1lWysrc107bnVsbD09PW5bcl0mJihuZ0Rldk1vZGUmJmxuKHR5cGVvZiBhLCJzdHJpbmciLGBFeHBlY3RlZCAiJHthfSIgdG8gYmUgYW4gZWxlbWVudCBub2RlIHRhZyBuYW1lYCksbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJDcmVhdGVFbGVtZW50KyssbmdEZXZNb2RlJiZObyhuLHIpLExzKG5bcl09TWwoaSxhLG51bGwpLG4pKTticmVhaztkZWZhdWx0Om5nRGV2TW9kZSYmYm4oYFVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgbXV0YXRlIG9wZXJhdGlvbiBmb3IgIiR7bH0iYCl9fX1mdW5jdGlvbiB1Zih0LGUsbixvLGkpe2ZvcihsZXQgYT0wO2E8bi5sZW5ndGg7YSsrKXtjb25zdCByPW5bYV0scz1uWysrYV07aWYociZpKXtsZXQgaT0iIjtmb3IobGV0IHI9YSsxO3I8PWErcztyKyspe2NvbnN0IGE9bltyXTtpZigic3RyaW5nIj09dHlwZW9mIGEpaSs9YTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgYSlpZihhPDApaSs9JGUoZVtvLWFdKTtlbHNle2NvbnN0IHM9YT4+PjI7c3dpdGNoKDMmYSl7Y2FzZSAxOmNvbnN0IGE9blsrK3JdLGw9blsrK3JdLGM9dC5kYXRhW3NdO25nRGV2TW9kZSYmaG4oYywiRXhwZXJ0aW5nIFROb2RlIG9yIHN0cmluZyIpLCJzdHJpbmciPT10eXBlb2YgYz9NZChlWzExXSxlW3NdLG51bGwsYyxhLGksbCk6bGQodCxjLGUsYSxpLGVbMTFdLGwsITEpO2JyZWFrO2Nhc2UgMDpjb25zdCBkPWVbc107bnVsbCE9PWQmJl9sKGVbMTFdLGQsaSk7YnJlYWs7Y2FzZSAyOmdmKHQsb2YodCxzKSxlLGkpO2JyZWFrO2Nhc2UgMzpmZih0LG9mKHQscyksbyxlKX19fX1lbHNle2NvbnN0IGk9blthKzFdO2lmKGk+MCYmMz09KDMmaSkpe2NvbnN0IG49b2YodCxpPj4+Mik7ZVtuLmN1cnJlbnRDYXNlTFZpZXdJbmRleF08MCYmZmYodCxuLG8sZSl9fWErPXN9fWZ1bmN0aW9uIGZmKHQsZSxuLG8pe25nRGV2TW9kZSYmX24obyxlLmN1cnJlbnRDYXNlTFZpZXdJbmRleCk7bGV0IGk9b1tlLmN1cnJlbnRDYXNlTFZpZXdJbmRleF07aWYobnVsbCE9PWkpe2xldCBhPWRmO2k8MCYmKGk9b1tlLmN1cnJlbnRDYXNlTFZpZXdJbmRleF09fmksYT0tMSksdWYodCxvLGUudXBkYXRlW2ldLG4sYSl9fWZ1bmN0aW9uIGdmKHQsZSxuLG8pe2NvbnN0IGk9KGZ1bmN0aW9uIGEodCxlKXtsZXQgbj10LmNhc2VzLmluZGV4T2YoZSk7aWYoLTE9PT1uKXN3aXRjaCh0LnR5cGUpe2Nhc2UgMTp7Y29uc3Qgbz0oZnVuY3Rpb24gaSh0LGUpe2NvbnN0IG49QnUoZSkocGFyc2VJbnQodCwxMCkpLG89VXVbbl07cmV0dXJuIHZvaWQgMCE9PW8/bzoib3RoZXIifSkoZSwoZnVuY3Rpb24gbygpe3JldHVybiBadX0pKCkpO249dC5jYXNlcy5pbmRleE9mKG8pLC0xPT09biYmIm90aGVyIiE9PW8mJihuPXQuY2FzZXMuaW5kZXhPZigib3RoZXIiKSk7YnJlYWt9Y2FzZSAwOm49dC5jYXNlcy5pbmRleE9mKCJvdGhlciIpfXJldHVybi0xPT09bj9udWxsOm59Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoZSxvKTtpZihyZihlLG4pIT09aSYmKGhmKHQsZSxuKSxuW2UuY3VycmVudENhc2VMVmlld0luZGV4XT1udWxsPT09aT9udWxsOn5pLG51bGwhPT1pKSl7Y29uc3Qgbz1uW2UuYW5jaG9ySWR4XTtvJiYobmdEZXZNb2RlJiZ5bihvKSxtZih0LGUuY3JlYXRlW2ldLG4sbykpfX1mdW5jdGlvbiBoZih0LGUsbil7bGV0IG89cmYoZSxuKTtpZihudWxsIT09byl7Y29uc3QgaT1lLnJlbW92ZVtvXTtmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKyl7Y29uc3Qgbz1pW2VdO2lmKG8+MCl7Y29uc3QgdD1uaShvLG4pO251bGwhPT10JiZWbChuWzExXSx0KX1lbHNlIGhmKHQsb2YodCx+byksbil9fX1mdW5jdGlvbiBiZigpe2NvbnN0IHQ9W107bGV0IGUsbixvPS0xO2Z1bmN0aW9uIGkodCxlKXtvPTA7Y29uc3QgaT1yZih0LGUpO251bGwhPT1pPyhuZ0Rldk1vZGUmJnJuKGksMCx0LmNhc2VzLmxlbmd0aC0xKSxuPXQucmVtb3ZlW2ldKTpuPVdufWZ1bmN0aW9uIGEoKXtpZihvPG4ubGVuZ3RoKXtjb25zdCByPW5bbysrXTtpZihuZ0Rldk1vZGUmJmFuKHIsIkV4cGVjdGluZyBPcENvZGUgbnVtYmVyIikscj4wKXtjb25zdCB0PWVbcl07cmV0dXJuIG5nRGV2TW9kZSYmeW4odCksdH17dC5wdXNoKG8sbik7Y29uc3Qgcz1lWzFdLmRhdGFbfnJdO3JldHVybiBuZ0Rldk1vZGUmJmtvKHMpLGkocyxlKSxhKCl9fXJldHVybiAwPT09dC5sZW5ndGg/bnVsbDoobj10LnBvcCgpLG89dC5wb3AoKSxhKCkpfXJldHVybiBmdW5jdGlvbiByKG4sbyl7Zm9yKGU9bzt0Lmxlbmd0aDspdC5wb3AoKTtyZXR1cm4gbmdEZXZNb2RlJiZPbyhuLG8pLGkobi52YWx1ZSxvKSxhfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24geWYodCl7Y29uc3QgZT10fHwoQXJyYXkuaXNBcnJheSh0aGlzKT90aGlzOltdKTtsZXQgbj1bXTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbz1lW3QrK10saT0obyZxdS5BUFBFTkRfRUFHRVJMWSk9PT1xdS5BUFBFTkRfRUFHRVJMWSxhPW8+Pj5xdS5TSElGVDtuLnB1c2goYGxWaWV3WyR7YX1dID0gZG9jdW1lbnQuJHsobyZxdS5DT01NRU5UKT09PXF1LkNPTU1FTlQ/ImNyZWF0ZUNvbW1lbnQiOiJjcmVhdGVUZXh0In0oJHtKU09OLnN0cmluZ2lmeShlW3RdKX0pO2ApLGkmJm4ucHVzaChgcGFyZW50LmFwcGVuZENoaWxkKGxWaWV3WyR7YX1dKTtgKX1yZXR1cm4gbn1mdW5jdGlvbiBfZih0KXtjb25zdCBlPW5ldyB2Zih0fHwoQXJyYXkuaXNBcnJheSh0aGlzKT90aGlzOltdKSk7bGV0IG49W107ZnVuY3Rpb24gbyh0KXtjb25zdCBuPXQ+Pj4yO3N3aXRjaCgzJnQpe2Nhc2UgMDpyZXR1cm5gKGxWaWV3WyR7bn1dIGFzIFRleHQpLnRleHRDb250ZW50ID0gJCQkYDtjYXNlIDE6Y29uc3QgdD1lLmNvbnN1bWVTdHJpbmcoKSxvPWUuY29uc3VtZUZ1bmN0aW9uKCk7cmV0dXJuYChsVmlld1ske259XSBhcyBFbGVtZW50KS5zZXRBdHRyaWJ1dGUoJyR7dH0nLCAke28/YCgke299KSgkJCQpYDoiJCQkIn0pYDtjYXNlIDI6cmV0dXJuYGljdVN3aXRjaENhc2UoJHtufSwgJCQkKWA7Y2FzZSAzOnJldHVybmBpY3VVcGRhdGVDYXNlKCR7bn0pYH10aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgT3BDb2RlIil9Zm9yKDtlLmhhc01vcmUoKTspe2xldCB0PWUuY29uc3VtZU51bWJlcigpLGk9ZS5jb25zdW1lTnVtYmVyKCk7Y29uc3QgYT1lLmkraSxyPVtdO2xldCBzPSIiO2Zvcig7ZS5pPGE7KXtsZXQgdD1lLmNvbnN1bWVOdW1iZXJPclN0cmluZygpO2lmKCJzdHJpbmciPT10eXBlb2YgdClzKz10O2Vsc2UgaWYodDwwKXMrPSIke2xWaWV3W2kiK3QrIl19IjtlbHNle2NvbnN0IGU9byh0KTtyLnB1c2goZS5yZXBsYWNlKCIkJCQiLCJgIitzKyJgIikrIjsiKSxzPSIifX1uLnB1c2goYGlmIChtYXNrICYgMGIke3QudG9TdHJpbmcoMil9KSB7ICR7ci5qb2luKCIgIil9IH1gKX1yZXR1cm4gbn1mdW5jdGlvbiBDZih0KXtjb25zdCBlPW5ldyB2Zih0fHwoQXJyYXkuaXNBcnJheSh0aGlzKT90aGlzOltdKSk7bGV0IG49W107ZnVuY3Rpb24gbyh0KXtjb25zdCBuPXNmKHQpLG89bGYodCk7c3dpdGNoKGNmKHQpKXtjYXNlIDA6cmV0dXJuYChsVmlld1ske259XSBhcyBFbGVtZW50KS5hcHBlbmRDaGlsZChsVmlld1ske2l9XSlgO2Nhc2UgMTpyZXR1cm5gKGxWaWV3WyR7b31dIGFzIEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgiJHtlLmNvbnN1bWVTdHJpbmcoKX0iLCAiJHtlLmNvbnN1bWVTdHJpbmcoKX0iKWB9dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIE9wQ29kZTogIitjZih0KSl9bGV0IGk9LTE7Zm9yKDtlLmhhc01vcmUoKTspe2xldCB0PWUuY29uc3VtZU51bWJlclN0cmluZ09yTWFya2VyKCk7aWYodD09PVl1KXtjb25zdCB0PWUuY29uc3VtZVN0cmluZygpO2k9ZS5jb25zdW1lTnVtYmVyKCksbi5wdXNoKGBsVmlld1ske2l9XSA9IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiR7dH0iKWApfWVsc2UgaWYodD09PVd1KXtjb25zdCB0PWUuY29uc3VtZVN0cmluZygpO2k9ZS5jb25zdW1lTnVtYmVyKCksbi5wdXNoKGBsVmlld1ske2l9XSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIiR7dH0iKWApfWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiB0KWk9ZS5jb25zdW1lTnVtYmVyKCksbi5wdXNoKGBsVmlld1ske2l9XSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIke3R9IilgKTtlbHNle2lmKCJudW1iZXIiIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgdmFsdWUiKTt7Y29uc3QgZT1vKHQpO2UmJm4ucHVzaChlKX19fXJldHVybiBufWZ1bmN0aW9uIE1mKHQpe2NvbnN0IGU9dHx8KEFycmF5LmlzQXJyYXkodGhpcyk/dGhpczpbXSk7bGV0IG49W107Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG89ZVt0XTtuLnB1c2gobz4wP2ByZW1vdmUobFZpZXdbJHtvfV0pYDpgcmVtb3ZlTmVzdGVkSUNVKCR7fm99KWApfXJldHVybiBufWNsYXNzIHZme2NvbnN0cnVjdG9yKHQpe3RoaXMuaT0wLHRoaXMuY29kZXM9dH1oYXNNb3JlKCl7cmV0dXJuIHRoaXMuaTx0aGlzLmNvZGVzLmxlbmd0aH1jb25zdW1lTnVtYmVyKCl7bGV0IHQ9dGhpcy5jb2Rlc1t0aGlzLmkrK107cmV0dXJuIGFuKHQsImV4cGVjdGluZyBudW1iZXIgaW4gT3BDb2RlIiksdH1jb25zdW1lU3RyaW5nKCl7bGV0IHQ9dGhpcy5jb2Rlc1t0aGlzLmkrK107cmV0dXJuIHNuKHQsImV4cGVjdGluZyBzdHJpbmcgaW4gT3BDb2RlIiksdH1jb25zdW1lRnVuY3Rpb24oKXtsZXQgdD10aGlzLmNvZGVzW3RoaXMuaSsrXTtpZihudWxsPT09dHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQpcmV0dXJuIHQ7dGhyb3cgbmV3IEVycm9yKCJleHBlY3RpbmcgZnVuY3Rpb24gaW4gT3BDb2RlIil9Y29uc3VtZU51bWJlck9yU3RyaW5nKCl7bGV0IHQ9dGhpcy5jb2Rlc1t0aGlzLmkrK107cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHxhbih0LCJleHBlY3RpbmcgbnVtYmVyIG9yIHN0cmluZyBpbiBPcENvZGUiKSx0fWNvbnN1bWVOdW1iZXJTdHJpbmdPck1hcmtlcigpe2xldCB0PXRoaXMuY29kZXNbdGhpcy5pKytdO3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0fHx0PT1ZdXx8dD09V3V8fGFuKHQsImV4cGVjdGluZyBudW1iZXIsIHN0cmluZywgSUNVX01BUktFUiBvciBFTEVNRU5UX01BUktFUiBpbiBPcENvZGUiKSx0fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgeGY9L++/vShcZCspOj9cZCrvv70vZ2ksT2Y9Lyh7XHMq77+9XGQrOj9cZCrvv71ccyosXHMqXFN7Nn1ccyosW1xzXFNdKn0pL2dpLFBmPS/vv70oXGQrKe+/vS8sd2Y9L15ccyoo77+9XGQrOj9cZCrvv70pXHMqLFxzKihzZWxlY3R8cGx1cmFsKVxzKiwvLGtmPS/vv71cLz9cKihcZCs6XGQrKe+/vS9naSxTZj0v77+9KFwvP1sjKl1cZCspOj9cZCrvv70vZ2ksRGY9L1x1RTUwMC9nO2Z1bmN0aW9uIEVmKHQsZSxuLG8saSxhLHIpe2NvbnN0IHM9S2ModCxvLDEsbnVsbCk7bGV0IGw9czw8cXUuU0hJRlQsYz1faSgpO2U9PT1jJiYoYz1udWxsKSxudWxsPT09YyYmKGx8PXF1LkFQUEVORF9FQUdFUkxZKSxyJiYobHw9cXUuQ09NTUVOVCwoZnVuY3Rpb24gZCh0KXt2b2lkIDA9PT1kbCYmKGRsPXQoKSl9KShiZikpLGkucHVzaChsLG51bGw9PT1hPyIiOmEpO2NvbnN0IHA9WGModCxzLHI/MzI6MSxudWxsPT09YT9uZ0Rldk1vZGU/Int7P319IjoiIjphLG51bGwpO1F1KG4scCk7Y29uc3QgbT1wLmluZGV4O3JldHVybiBDaShwLCExKSxudWxsIT09YyYmZSE9PWMmJihmdW5jdGlvbiB1KHQsZSl7bmdEZXZNb2RlJiZ3byh0KTtsZXQgbj10Lmluc2VydEJlZm9yZUluZGV4O251bGw9PT1uPyhJbChLdSxKdSksbj10Lmluc2VydEJlZm9yZUluZGV4PVtudWxsLGVdKToobG4oQXJyYXkuaXNBcnJheShuKSwhMCwiRXhwZWN0aW5nIGFycmF5IGhlcmUiKSxuLnB1c2goZSkpfSkoYyxtKSxwfWZ1bmN0aW9uIFJmKHQsZSxuLG8saSxhLHIpe2NvbnN0IHM9ci5tYXRjaCh4ZiksbD1FZih0LGUsbixhLG8scz9udWxsOnIsITEpO3MmJkFmKGkscixsLmluZGV4LG51bGwsMCxudWxsKX1mdW5jdGlvbiBBZih0LGUsbixvLGksYSl7bmdEZXZNb2RlJiZnbihuLGdvLCJJbmRleCBtdXN0IGJlIGluIGFic29sdXRlIExWaWV3IG9mZnNldCIpO2NvbnN0IHI9dC5sZW5ndGgscz1yKzE7dC5wdXNoKG51bGwsbnVsbCk7Y29uc3QgbD1yKzI7bmdEZXZNb2RlJiZiYyh0LF9mKTtjb25zdCBjPWUuc3BsaXQoeGYpO2xldCBkPTA7Zm9yKGxldCBlPTA7ZTxjLmxlbmd0aDtlKyspe2NvbnN0IG49Y1tlXTtpZigxJmUpe2NvbnN0IGU9aStwYXJzZUludChuLDEwKTt0LnB1c2goLTEtZSksZHw9TmYoZSl9ZWxzZSIiIT09biYmdC5wdXNoKG4pfXJldHVybiB0LnB1c2gobjw8Mnwobz8xOjApKSxvJiZ0LnB1c2gobyxhKSx0W3JdPWQsdFtzXT10Lmxlbmd0aC1sLGR9ZnVuY3Rpb24gVGYodCl7bGV0IGU9MDtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7Y29uc3Qgbz10W25dOyJudW1iZXIiPT10eXBlb2YgbyYmbzwwJiZlKyt9cmV0dXJuIGV9ZnVuY3Rpb24gTmYodCl7cmV0dXJuIDE8PE1hdGgubWluKHQsMzEpfWZ1bmN0aW9uIHpmKHQpe2xldCBlLG4sbz0iIixpPTAsYT0hMTtmb3IoO251bGwhPT0oZT1rZi5leGVjKHQpKTspYT9lWzBdPT09YO+/vS8qJHtufe+/vWAmJihpPWUuaW5kZXgsYT0hMSk6KG8rPXQuc3Vic3RyaW5nKGksZS5pbmRleCtlWzBdLmxlbmd0aCksbj1lWzFdLGE9ITApO3JldHVybiBuZ0Rldk1vZGUmJmxuKGEsITEsYFRhZyBtaXNtYXRjaDogdW5hYmxlIHRvIGZpbmQgdGhlIGVuZCBvZiB0aGUgc3ViLXRlbXBsYXRlIGluIHRoZSB0cmFuc2xhdGlvbiAiJHt0fSJgKSxvKz10LnN1YnN0cihpKSxvfWZ1bmN0aW9uIElmKHQsZSxuLG8saSxhKXtuZ0Rldk1vZGUmJmhuKGksIklDVSBleHByZXNzaW9uIG11c3QgYmUgZGVmaW5lZCIpO2xldCByPTA7Y29uc3Qgcz17dHlwZTppLnR5cGUsY3VycmVudENhc2VMVmlld0luZGV4OktjKHQsZSwxLG51bGwpLGFuY2hvcklkeDphLGNhc2VzOltdLGNyZWF0ZTpbXSxyZW1vdmU6W10sdXBkYXRlOltdfTshKGZ1bmN0aW9uIGwodCxlLG4pe3QucHVzaChOZihlLm1haW5CaW5kaW5nKSwyLC0xLWUubWFpbkJpbmRpbmcsbjw8MnwyKX0pKG4saSxhKSwoZnVuY3Rpb24gYyh0LGUsbil7Y29uc3Qgbz10LmRhdGFbZV07bmdEZXZNb2RlJiZsbihudWxsPT09b3x8by5oYXNPd25Qcm9wZXJ0eSgidFZpZXdzIiksITAsIldlIGV4cGVjdCB0byBnZXQgJ251bGwnfCdUSWN1Q29udGFpbmVyJyIpLG51bGw9PT1vP3QuZGF0YVtlXT1uOihuZ0Rldk1vZGUmJmlhKG8sMzIpLG8udmFsdWU9bil9KSh0LGEscyk7Y29uc3QgZD1pLnZhbHVlcztmb3IobGV0IGE9MDthPGQubGVuZ3RoO2ErKyl7Y29uc3QgbD1kW2FdLGM9W107Zm9yKGxldCB0PTA7dDxsLmxlbmd0aDt0Kyspe2NvbnN0IGU9bFt0XTtpZigic3RyaW5nIiE9dHlwZW9mIGUpe2NvbnN0IG49Yy5wdXNoKGUpLTE7bFt0XT1gXHgzYyEtLe+/vSR7bn3vv70tLVx4M2VgfX1yPUxmKHQscyxlLG4sbyxpLmNhc2VzW2FdLGwuam9pbigiIiksYyl8cn1yJiYoZnVuY3Rpb24gcCh0LGUsbil7dC5wdXNoKGUsMSxuPDwyfDMpfSkobixyLGEpfWZ1bmN0aW9uIEhmKHQpe2NvbnN0IGU9W10sbj1bXTtsZXQgbz0xLGk9MDtjb25zdCBhPUZmKHQ9dC5yZXBsYWNlKHdmLChmdW5jdGlvbih0LGUsbil7cmV0dXJuIG89InNlbGVjdCI9PT1uPzA6MSxpPXBhcnNlSW50KGUuc3Vic3RyKDEpLDEwKSwiIn0pKSk7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDspe2xldCBpPWFbdCsrXS50cmltKCk7MT09PW8mJihpPWkucmVwbGFjZSgvXHMqKD86PSk/KFx3KylccyovLCIkMSIpKSxpLmxlbmd0aCYmZS5wdXNoKGkpO2NvbnN0IHI9RmYoYVt0KytdKTtlLmxlbmd0aD5uLmxlbmd0aCYmbi5wdXNoKHIpfXJldHVybnt0eXBlOm8sbWFpbkJpbmRpbmc6aSxjYXNlczplLHZhbHVlczpufX1mdW5jdGlvbiBGZih0KXtpZighdClyZXR1cm5bXTtsZXQgZT0wO2NvbnN0IG49W10sbz1bXSxpPS9be31dL2c7bGV0IGE7Zm9yKGkubGFzdEluZGV4PTA7YT1pLmV4ZWModCk7KXtjb25zdCBpPWEuaW5kZXg7aWYoIn0iPT1hWzBdKXtpZihuLnBvcCgpLDA9PW4ubGVuZ3RoKXtjb25zdCBuPXQuc3Vic3RyaW5nKGUsaSk7d2YudGVzdChuKT9vLnB1c2goSGYobikpOm8ucHVzaChuKSxlPWkrMX19ZWxzZXtpZigwPT1uLmxlbmd0aCl7Y29uc3Qgbj10LnN1YnN0cmluZyhlLGkpO28ucHVzaChuKSxlPWkrMX1uLnB1c2goInsiKX19Y29uc3Qgcj10LnN1YnN0cmluZyhlKTtyZXR1cm4gby5wdXNoKHIpLG99ZnVuY3Rpb24gTGYodCxlLG4sbyxpLGEscixzKXtjb25zdCBsPVtdLGM9W10sZD1bXTtuZ0Rldk1vZGUmJihiYyhsLENmKSxiYyhjLE1mKSxiYyhkLF9mKSksZS5jYXNlcy5wdXNoKGEpLGUuY3JlYXRlLnB1c2gobCksZS5yZW1vdmUucHVzaChjKSxlLnVwZGF0ZS5wdXNoKGQpO2NvbnN0IHA9b3MoSm8oKSkuZ2V0SW5lcnRCb2R5RWxlbWVudChyKTtuZ0Rldk1vZGUmJmhuKHAsIlVuYWJsZSB0byBnZW5lcmF0ZSBpbmVydCBib2R5IGVsZW1lbnQiKTtjb25zdCBtPVJzKHApfHxwO3JldHVybiBtP0JmKHQsZSxuLG8sbCxjLGQsbSxpLHMsMCk6MH1mdW5jdGlvbiBCZih0LGUsbixvLGksYSxyLHMsbCxjLGQpe2xldCBwPTAsbT1zLmZpcnN0Q2hpbGQ7Zm9yKDttOyl7Y29uc3Qgcz1LYyh0LG4sMSxudWxsKTtzd2l0Y2gobS5ub2RlVHlwZSl7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTpjb25zdCB1PW0sZj11LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtpZih5cy5oYXNPd25Qcm9wZXJ0eShmKSl7VWYoaSxXdSxmLGwscyksdC5kYXRhW3NdPWY7Y29uc3QgZz11LmF0dHJpYnV0ZXM7Zm9yKGxldCB0PTA7dDxnLmxlbmd0aDt0Kyspe2NvbnN0IGU9Zy5pdGVtKHQpLG49ZS5uYW1lLnRvTG93ZXJDYXNlKCk7ZS52YWx1ZS5tYXRjaCh4Zik/eHMuaGFzT3duUHJvcGVydHkobik/QWYocixlLnZhbHVlLHMsZS5uYW1lLDAsX3Nbbl0/bHM6Q3Nbbl0/Y3M6bnVsbCk6bmdEZXZNb2RlJiZjb25zb2xlLndhcm4oYFdBUk5JTkc6IGlnbm9yaW5nIHVuc2FmZSBhdHRyaWJ1dGUgdmFsdWUgJHtufSBvbiBlbGVtZW50ICR7Zn0gKHNlZSBodHRwczovL2cuY28vbmcvc2VjdXJpdHkjeHNzKWApOkdmKGkscyxlKX1wPUJmKHQsZSxuLG8saSxhLHIsbSxzLGMsZCsxKXxwLFZmKGEscyxkKX1icmVhaztjYXNlIE5vZGUuVEVYVF9OT0RFOmNvbnN0IGc9bS50ZXh0Q29udGVudHx8IiIsaD1nLm1hdGNoKHhmKTtVZihpLG51bGwsaD8iIjpnLGwscyksVmYoYSxzLGQpLGgmJihwPUFmKHIsZyxzLG51bGwsMCxudWxsKXxwKTticmVhaztjYXNlIE5vZGUuQ09NTUVOVF9OT0RFOmNvbnN0IGI9UGYuZXhlYyhtLnRleHRDb250ZW50fHwiIik7aWYoYil7Y29uc3QgZT1wYXJzZUludChiWzFdLDEwKSxyPWNbZV07VWYoaSxZdSxuZ0Rldk1vZGU/YG5lc3RlZCBJQ1UgJHtlfWA6IiIsbCxzKSxJZih0LG4sbyxsLHIscyksamYoYSxzLGQpfX1tPW0ubmV4dFNpYmxpbmd9cmV0dXJuIHB9ZnVuY3Rpb24gVmYodCxlLG4pezA9PT1uJiZ0LnB1c2goZSl9ZnVuY3Rpb24gamYodCxlLG4pezA9PT1uJiYodC5wdXNoKH5lKSx0LnB1c2goZSkpfWZ1bmN0aW9uIFVmKHQsZSxuLG8saSl7bnVsbCE9PWUmJnQucHVzaChlKSx0LnB1c2gobixpLChmdW5jdGlvbiBhKHQsZSxuKXtyZXR1cm4gbmdEZXZNb2RlJiZnbihlLDAsIk1pc3NpbmcgcGFyZW50IGluZGV4IiksbmdEZXZNb2RlJiZmbihuLDAsIk1pc3NpbmcgcmVmIGluZGV4IiksdHxlPDwxN3xuPDwxfSkoMCxvLGkpKX1mdW5jdGlvbiBHZih0LGUsbil7dC5wdXNoKGU8PDF8MSxuLm5hbWUsbi52YWx1ZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFdmPS9cWyjvv70uKz/vv70/KVxdLyxZZj0vXFso77+9Lis/77+9PylcXXwo77+9XC8/XCpcZCs6XGQr77+9KS9nLHFmPS8oe1xzKikoVkFSXyhQTFVSQUx8U0VMRUNUKShfXGQrKT8pKFxzKiwpL2csWmY9L3soW0EtWjAtOV9dKyl9L2csWGY9L++/vUkxOE5fRVhQXyhJQ1UoX1xkKyk/Ke+/vS9nLEtmPS9cL1wqLyxKZj0vXGQrXDooXGQrKS87Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBRZih0LGUsbj0tMSl7Y29uc3Qgbz1naSgpLGk9ZmkoKSxhPWdvK3Q7bmdEZXZNb2RlJiZobihvLCJ0VmlldyBzaG91bGQgYmUgZGVmaW5lZCIpO2NvbnN0IHI9Y2koby5jb25zdHMsZSkscz1faSgpO28uZmlyc3RDcmVhdGVQYXNzJiYoZnVuY3Rpb24gbCh0LGUsbixvLGksYSl7Y29uc3Qgcj1faSgpLHM9W10sbD1bXSxjPVtbXV07bmdEZXZNb2RlJiYoYmMocyx5ZiksYmMobCxfZikpO2NvbnN0IGQ9KGZ1bmN0aW9uIG0odCl7cmV0dXJuIHQucmVwbGFjZShEZiwiICIpfSkoaT0oZnVuY3Rpb24gcCh0LGUpe2lmKChmdW5jdGlvbiBuKHQpe3JldHVybi0xPT09dH0pKGUpKXJldHVybiB6Zih0KTt7Y29uc3Qgbj10LmluZGV4T2YoYDoke2V977+9YCkrMitlLnRvU3RyaW5nKCkubGVuZ3RoLG89dC5zZWFyY2gobmV3IFJlZ0V4cChg77+9XFwvXFwqXFxkKzoke2V977+9YCkpO3JldHVybiB6Zih0LnN1YnN0cmluZyhuLG8pKX19KShpLGEpKS5zcGxpdChTZik7Zm9yKGxldCBhPTA7YTxkLmxlbmd0aDthKyspe2xldCBwPWRbYV07aWYoMD09KDEmYSkpe2NvbnN0IGE9RmYocCk7Zm9yKGxldCBkPTA7ZDxhLmxlbmd0aDtkKyspe2xldCBwPWFbZF07aWYoMD09KDEmZCkpe2NvbnN0IGU9cDtuZ0Rldk1vZGUmJnNuKGUsIlBhcnNlZCBJQ1UgcGFydCBzaG91bGQgYmUgc3RyaW5nIiksIiIhPT1lJiZSZih0LHIsY1swXSxzLGwsbixlKX1lbHNle2NvbnN0IGE9cDtpZigib2JqZWN0IiE9dHlwZW9mIGEpdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcGFyc2UgSUNVIGV4cHJlc3Npb24gaW4gIiR7aX0iIG1lc3NhZ2UuYCk7Y29uc3QgZD1FZih0LHIsY1swXSxuLHMsbmdEZXZNb2RlP2BJQ1UgJHtvfToke2EubWFpbkJpbmRpbmd9YDoiIiwhMCkuaW5kZXg7bmdEZXZNb2RlJiZnbihkLGdvLCJJbmRleCBtdXN0IGJlIGluIGFic29sdXRlIExWaWV3IG9mZnNldCIpLElmKHQsbixsLGUsYSxkKX19fWVsc2V7Y29uc3QgZT00Nz09PXAuY2hhckNvZGVBdCgwKSxuPXAuY2hhckNvZGVBdChlPzE6MCk7bmdEZXZNb2RlJiZDbihuLDQyLDM1KTtjb25zdCBvPWdvK051bWJlci5wYXJzZUludChwLnN1YnN0cmluZyhlPzI6MSkpO2lmKGUpYy5zaGlmdCgpLENpKF9pKCksITEpO2Vsc2V7Y29uc3QgZT1hZih0LGNbMF0sbyk7Yy51bnNoaWZ0KFtdKSxDaShlLCEwKX19fXQuZGF0YVtvXT17Y3JlYXRlOnMsdXBkYXRlOmx9fSkobyxudWxsPT09cz8wOnMuaW5kZXgsaSxhLHIsbik7Y29uc3QgYz1vLmRhdGFbYV0sZD1rbChvLHM9PT1pWzZdP251bGw6cyxpKTshKGZ1bmN0aW9uIHAodCxlLG4sbyl7Y29uc3QgaT10WzExXTtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKyl7Y29uc3Qgcj1lW2ErK10scz1lW2FdLGw9KHImcXUuQ09NTUVOVCk9PT1xdS5DT01NRU5ULGM9KHImcXUuQVBQRU5EX0VBR0VSTFkpPT09cXUuQVBQRU5EX0VBR0VSTFksZD1yPj4+cXUuU0hJRlQ7bGV0IHA9dFtkXTtudWxsPT09cCYmKHA9dFtkXT1sP2kuY3JlYXRlQ29tbWVudChzKTp5bChpLHMpKSxjJiZudWxsIT09biYmU2woaSxuLHAsbywhMSl9fSkoaSxjLmNyZWF0ZSxkLHMmJjgmcy50eXBlP2lbcy5pbmRleF06bnVsbCksRWkoITApfWZ1bmN0aW9uICRmKCl7RWkoITEpfWZ1bmN0aW9uIHRnKHQsZSxuKXtRZih0LGUsbiksJGYoKX1mdW5jdGlvbiBlZyh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXt0JiYoZGZ8PTE8PE1hdGgubWluKHBmLDMxKSkscGYrK30pKEZwKGZpKCksU2koKSx0KSksZWd9ZnVuY3Rpb24gbmcodCl7IShmdW5jdGlvbiBlKHQsbixvKXtpZihwZj4wKXtuZ0Rldk1vZGUmJmhuKHQsInRWaWV3IHNob3VsZCBiZSBkZWZpbmVkIik7Y29uc3QgZT10LmRhdGFbb107dWYodCxuLEFycmF5LmlzQXJyYXkoZSk/ZTplLnVwZGF0ZSx3aSgpLXBmLTEsZGYpfWRmPTAscGY9MH0pKGdpKCksZmkoKSx0K2dvKX1mdW5jdGlvbiBvZyh0LGU9e30pe3JldHVybihmdW5jdGlvbiBuKHQsZT17fSl7bGV0IG49dDtpZihXZi50ZXN0KHQpKXtjb25zdCB0PXt9LGU9WzBdO249bi5yZXBsYWNlKFlmLCgobixvLGkpPT57Y29uc3QgYT1vfHxpLHI9dFthXXx8W107aWYoci5sZW5ndGh8fChhLnNwbGl0KCJ8IikuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5tYXRjaChKZiksbj1lP3BhcnNlSW50KGVbMV0sMTApOjAsbz1LZi50ZXN0KHQpO3IucHVzaChbbixvLHRdKX0pKSx0W2FdPXIpLCFyLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYGkxOG4gcG9zdHByb2Nlc3M6IHVubWF0Y2hlZCBwbGFjZWhvbGRlciAtICR7YX1gKTtjb25zdCBzPWVbZS5sZW5ndGgtMV07bGV0IGw9MDtmb3IobGV0IHQ9MDt0PHIubGVuZ3RoO3QrKylpZihyW3RdWzBdPT09cyl7bD10O2JyZWFrfWNvbnN0W2MsZCxwXT1yW2xdO3JldHVybiBkP2UucG9wKCk6cyE9PWMmJmUucHVzaChjKSxyLnNwbGljZShsLDEpLHB9KSl9cmV0dXJuIE9iamVjdC5rZXlzKGUpLmxlbmd0aD8obj1uLnJlcGxhY2UocWYsKCh0LG4sbyxpLGEscik9PmUuaGFzT3duUHJvcGVydHkobyk/YCR7bn0ke2Vbb119JHtyfWA6dCkpLG49bi5yZXBsYWNlKFpmLCgodCxuKT0+ZS5oYXNPd25Qcm9wZXJ0eShuKT9lW25dOnQpKSxuPW4ucmVwbGFjZShYZiwoKHQsbik9PntpZihlLmhhc093blByb3BlcnR5KG4pKXtjb25zdCBvPWVbbl07aWYoIW8ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgaTE4biBwb3N0cHJvY2VzczogdW5tYXRjaGVkIElDVSAtICR7dH0gd2l0aCBrZXk6ICR7bn1gKTtyZXR1cm4gby5zaGlmdCgpfXJldHVybiB0fSkpLG4pOm59KSh0LGUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gaWcodCxlLG4sbyxpKXtpZih0PVplKHQpLEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKyspaWcodFthXSxlLG4sbyxpKTtlbHNle2NvbnN0IGE9Z2koKSxyPWZpKCk7bGV0IHM9b3AodCk/dDpaZSh0LnByb3ZpZGUpLGw9dHAodCk7Y29uc3QgYz1iaSgpLGQ9MTA0ODU3NSZjLnByb3ZpZGVySW5kZXhlcyxwPWMuZGlyZWN0aXZlU3RhcnQsbT1jLnByb3ZpZGVySW5kZXhlcz4+MjA7aWYob3AodCl8fCF0Lm11bHRpKXtjb25zdCBvPW5ldyBuYShsLGksU20pLHU9c2cocyxlLGk/ZDpkK20scCk7LTE9PT11PyhDYShoYShjLHIpLGEscyksYWcoYSx0LGUubGVuZ3RoKSxlLnB1c2gocyksYy5kaXJlY3RpdmVTdGFydCsrLGMuZGlyZWN0aXZlRW5kKyssaSYmKGMucHJvdmlkZXJJbmRleGVzKz0xMDQ4NTc2KSxuLnB1c2gobyksci5wdXNoKG8pKTooblt1XT1vLHJbdV09byl9ZWxzZXtjb25zdCB1PXNnKHMsZSxkK20scCksZj1zZyhzLGUsZCxkK20pLGc9dT49MCYmblt1XSxoPWY+PTAmJm5bZl07aWYoaSYmIWh8fCFpJiYhZyl7Q2EoaGEoYyxyKSxhLHMpO2NvbnN0IGQ9KGZ1bmN0aW9uIGEodCxlLG4sbyxpKXtjb25zdCBhPW5ldyBuYSh0LG4sU20pO3JldHVybiBhLm11bHRpPVtdLGEuaW5kZXg9ZSxhLmNvbXBvbmVudFByb3ZpZGVycz0wLHJnKGEsaSxvJiYhbiksYX0pKGk/Y2c6bGcsbi5sZW5ndGgsaSxvLGwpOyFpJiZoJiYobltmXS5wcm92aWRlckZhY3Rvcnk9ZCksYWcoYSx0LGUubGVuZ3RoLDApLGUucHVzaChzKSxjLmRpcmVjdGl2ZVN0YXJ0KyssYy5kaXJlY3RpdmVFbmQrKyxpJiYoYy5wcm92aWRlckluZGV4ZXMrPTEwNDg1NzYpLG4ucHVzaChkKSxyLnB1c2goZCl9ZWxzZSBhZyhhLHQsdT4tMT91OmYscmcobltpP2Y6dV0sbCwhaSYmbykpOyFpJiZvJiZoJiZuW2ZdLmNvbXBvbmVudFByb3ZpZGVycysrfX19ZnVuY3Rpb24gYWcodCxlLG4sbyl7Y29uc3QgaT1vcChlKTtpZihpfHwoZnVuY3Rpb24gYSh0KXtyZXR1cm4hIXQudXNlQ2xhc3N9KShlKSl7Y29uc3QgYT0oZS51c2VDbGFzc3x8ZSkucHJvdG90eXBlLm5nT25EZXN0cm95O2lmKGEpe2NvbnN0IHI9dC5kZXN0cm95SG9va3N8fCh0LmRlc3Ryb3lIb29rcz1bXSk7aWYoIWkmJmUubXVsdGkpe25nRGV2TW9kZSYmaG4obywiaW5kZXhJbkZhY3Rvcnkgd2hlbiByZWdpc3RlcmluZyBtdWx0aSBmYWN0b3J5IGRlc3Ryb3kgaG9vayIpO2NvbnN0IHQ9ci5pbmRleE9mKG4pOy0xPT09dD9yLnB1c2gobixbbyxhXSk6clt0KzFdLnB1c2gobyxhKX1lbHNlIHIucHVzaChuLGEpfX19ZnVuY3Rpb24gcmcodCxlLG4pe3JldHVybiBuJiZ0LmNvbXBvbmVudFByb3ZpZGVycysrLHQubXVsdGkucHVzaChlKS0xfWZ1bmN0aW9uIHNnKHQsZSxuLG8pe2ZvcihsZXQgaT1uO2k8bztpKyspaWYoZVtpXT09PXQpcmV0dXJuIGk7cmV0dXJuLTF9ZnVuY3Rpb24gbGcodCxlLG4sbyl7cmV0dXJuIGRnKHRoaXMubXVsdGksW10pfWZ1bmN0aW9uIGNnKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5tdWx0aTtsZXQgYTtpZih0aGlzLnByb3ZpZGVyRmFjdG9yeSl7Y29uc3QgdD10aGlzLnByb3ZpZGVyRmFjdG9yeS5jb21wb25lbnRQcm92aWRlcnMsZT1TYShuLG5bMV0sdGhpcy5wcm92aWRlckZhY3RvcnkuaW5kZXgsbyk7YT1lLnNsaWNlKDAsdCksZGcoaSxhKTtmb3IobGV0IG49dDtuPGUubGVuZ3RoO24rKylhLnB1c2goZVtuXSl9ZWxzZSBhPVtdLGRnKGksYSk7cmV0dXJuIGF9ZnVuY3Rpb24gZGcodCxlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyllLnB1c2goKDAsdFtuXSkoKSk7cmV0dXJuIGV9ZnVuY3Rpb24gcGcodCxlPVtdKXtyZXR1cm4gbj0+e24ucHJvdmlkZXJzUmVzb2x2ZXI9KG4sbyk9PihmdW5jdGlvbiBpKHQsZSxuKXtjb25zdCBvPWdpKCk7aWYoby5maXJzdENyZWF0ZVBhc3Mpe2NvbnN0IGk9eG8odCk7aWcobixvLmRhdGEsby5ibHVlcHJpbnQsaSwhMCksaWcoZSxvLmRhdGEsby5ibHVlcHJpbnQsaSwhMSl9fSkobixvP28odCk6dCxlKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIG1ne30KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgdWd7fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gZmcoLi4udCl7fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBnZyh0LGUpe3JldHVybiBuZXcgaGcob2kodCxlKSl9dWcuTlVMTD1uZXcgY2xhc3N7cmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodCl7dGhyb3coZnVuY3Rpb24gZSh0KXtjb25zdCBlPUVycm9yKGBObyBjb21wb25lbnQgZmFjdG9yeSBmb3VuZCBmb3IgJHtHZSh0KX0uIERpZCB5b3UgYWRkIGl0IHRvIEBOZ01vZHVsZS5lbnRyeUNvbXBvbmVudHM/YCk7cmV0dXJuIGUubmdDb21wb25lbnQ9dCxlfSkodCl9fTtjbGFzcyBoZ3tjb25zdHJ1Y3Rvcih0KXt0aGlzLm5hdGl2ZUVsZW1lbnQ9dH19ZnVuY3Rpb24gYmcodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBoZz90Lm5hdGl2ZUVsZW1lbnQ6dH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovaGcuX19OR19FTEVNRU5UX0lEX189ZnVuY3Rpb24geWcoKXtyZXR1cm4gZ2coYmkoKSxmaSgpKX0sbmV3IEdhKCJSZW5kZXJlcjJJbnRlcmNlcHRvciIpO2NsYXNzIF9ne31jbGFzcyBDZ3t9Q2cuX19OR19FTEVNRU5UX0lEX189KCk9Pk1nKCk7Y29uc3QgTWc9ZnVuY3Rpb24gdmcoKXtjb25zdCB0PWZpKCksZT1yaShiaSgpLmluZGV4LHQpO3JldHVybihmdW5jdGlvbiBuKHQpe2NvbnN0IGU9dFsxMV07aWYobmdEZXZNb2RlJiYhJG8oZSkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaW5qZWN0IFJlbmRlcmVyMiB3aGVuIHRoZSBhcHBsaWNhdGlvbiB1c2VzIFJlbmRlcmVyMyEiKTtyZXR1cm4gZX0pKHlvKGUpP2U6dCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLztjbGFzcyB4Z3t9eGcuybVwcm92PU1uKHt0b2tlbjp4Zyxwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5udWxsfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBPZ3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmZ1bGw9dCx0aGlzLm1ham9yPXQuc3BsaXQoIi4iKVswXSx0aGlzLm1pbm9yPXQuc3BsaXQoIi4iKVsxXSx0aGlzLnBhdGNoPXQuc3BsaXQoIi4iKS5zbGljZSgyKS5qb2luKCIuIil9fWNvbnN0IFBnPW5ldyBPZygiMTIuMi4xIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHdne2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRzKHQpe3JldHVybiBOcCh0KX1jcmVhdGUodCl7cmV0dXJuIG5ldyBTZyh0KX19Y29uc3Qga2c9KHQsZSk9PmU7Y2xhc3MgU2d7Y29uc3RydWN0b3IodCl7dGhpcy5sZW5ndGg9MCx0aGlzLl9saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fdW5saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fcHJldmlvdXNJdEhlYWQ9bnVsbCx0aGlzLl9pdEhlYWQ9bnVsbCx0aGlzLl9pdFRhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX21vdmVzSGVhZD1udWxsLHRoaXMuX21vdmVzVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsLHRoaXMuX3JlbW92YWxzVGFpbD1udWxsLHRoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWQ9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsPW51bGwsdGhpcy5fdHJhY2tCeUZuPXR8fGtnfWZvckVhY2hJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX2l0SGVhZDtudWxsIT09ZTtlPWUuX25leHQpdChlKX1mb3JFYWNoT3BlcmF0aW9uKHQpe2xldCBlPXRoaXMuX2l0SGVhZCxuPXRoaXMuX3JlbW92YWxzSGVhZCxvPTAsaT1udWxsO2Zvcig7ZXx8bjspe2NvbnN0IGE9IW58fGUmJmUuY3VycmVudEluZGV4PEFnKG4sbyxpKT9lOm4scj1BZyhhLG8saSkscz1hLmN1cnJlbnRJbmRleDtpZihhPT09bilvLS0sbj1uLl9uZXh0UmVtb3ZlZDtlbHNlIGlmKGU9ZS5fbmV4dCxudWxsPT1hLnByZXZpb3VzSW5kZXgpbysrO2Vsc2V7aXx8KGk9W10pO2NvbnN0IHQ9ci1vLGU9cy1vO2lmKHQhPWUpe2ZvcihsZXQgbj0wO248dDtuKyspe2NvbnN0IG89bjxpLmxlbmd0aD9pW25dOmlbbl09MCxhPW8rbjtlPD1hJiZhPHQmJihpW25dPW8rMSl9aVthLnByZXZpb3VzSW5kZXhdPWUtdH19ciE9PXMmJnQoYSxyLHMpfX1mb3JFYWNoUHJldmlvdXNJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX3ByZXZpb3VzSXRIZWFkO251bGwhPT1lO2U9ZS5fbmV4dFByZXZpb3VzKXQoZSl9Zm9yRWFjaEFkZGVkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1lO2U9ZS5fbmV4dEFkZGVkKXQoZSl9Zm9yRWFjaE1vdmVkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9tb3Zlc0hlYWQ7bnVsbCE9PWU7ZT1lLl9uZXh0TW92ZWQpdChlKX1mb3JFYWNoUmVtb3ZlZEl0ZW0odCl7bGV0IGU7Zm9yKGU9dGhpcy5fcmVtb3ZhbHNIZWFkO251bGwhPT1lO2U9ZS5fbmV4dFJlbW92ZWQpdChlKX1mb3JFYWNoSWRlbnRpdHlDaGFuZ2UodCl7bGV0IGU7Zm9yKGU9dGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZDtudWxsIT09ZTtlPWUuX25leHRJZGVudGl0eUNoYW5nZSl0KGUpfWRpZmYodCl7aWYobnVsbD09dCYmKHQ9W10pLCFOcCh0KSl0aHJvdyBuZXcgRXJyb3IoYEVycm9yIHRyeWluZyB0byBkaWZmICcke0dlKHQpfScuIE9ubHkgYXJyYXlzIGFuZCBpdGVyYWJsZXMgYXJlIGFsbG93ZWRgKTtyZXR1cm4gdGhpcy5jaGVjayh0KT90aGlzOm51bGx9b25EZXN0cm95KCl7fWNoZWNrKHQpe3RoaXMuX3Jlc2V0KCk7bGV0IGUsbixvLGk9dGhpcy5faXRIZWFkLGE9ITE7aWYoQXJyYXkuaXNBcnJheSh0KSl7dGhpcy5sZW5ndGg9dC5sZW5ndGg7Zm9yKGxldCBlPTA7ZTx0aGlzLmxlbmd0aDtlKyspbj10W2VdLG89dGhpcy5fdHJhY2tCeUZuKGUsbiksbnVsbCE9PWkmJk9iamVjdC5pcyhpLnRyYWNrQnlJZCxvKT8oYSYmKGk9dGhpcy5fdmVyaWZ5UmVpbnNlcnRpb24oaSxuLG8sZSkpLE9iamVjdC5pcyhpLml0ZW0sbil8fHRoaXMuX2FkZElkZW50aXR5Q2hhbmdlKGksbikpOihpPXRoaXMuX21pc21hdGNoKGksbixvLGUpLGE9ITApLGk9aS5fbmV4dH1lbHNlIGU9MCwoZnVuY3Rpb24gcih0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspZSh0W25dKTtlbHNle2NvbnN0IG49dFtScCgpXSgpO2xldCBvO2Zvcig7IShvPW4ubmV4dCgpKS5kb25lOyllKG8udmFsdWUpfX0pKHQsKHQ9PntvPXRoaXMuX3RyYWNrQnlGbihlLHQpLG51bGwhPT1pJiZPYmplY3QuaXMoaS50cmFja0J5SWQsbyk/KGEmJihpPXRoaXMuX3ZlcmlmeVJlaW5zZXJ0aW9uKGksdCxvLGUpKSxPYmplY3QuaXMoaS5pdGVtLHQpfHx0aGlzLl9hZGRJZGVudGl0eUNoYW5nZShpLHQpKTooaT10aGlzLl9taXNtYXRjaChpLHQsbyxlKSxhPSEwKSxpPWkuX25leHQsZSsrfSkpLHRoaXMubGVuZ3RoPWU7cmV0dXJuIHRoaXMuX3RydW5jYXRlKGkpLHRoaXMuY29sbGVjdGlvbj10LHRoaXMuaXNEaXJ0eX1nZXQgaXNEaXJ0eSgpe3JldHVybiBudWxsIT09dGhpcy5fYWRkaXRpb25zSGVhZHx8bnVsbCE9PXRoaXMuX21vdmVzSGVhZHx8bnVsbCE9PXRoaXMuX3JlbW92YWxzSGVhZHx8bnVsbCE9PXRoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWR9X3Jlc2V0KCl7aWYodGhpcy5pc0RpcnR5KXtsZXQgdDtmb3IodD10aGlzLl9wcmV2aW91c0l0SGVhZD10aGlzLl9pdEhlYWQ7bnVsbCE9PXQ7dD10Ll9uZXh0KXQuX25leHRQcmV2aW91cz10Ll9uZXh0O2Zvcih0PXRoaXMuX2FkZGl0aW9uc0hlYWQ7bnVsbCE9PXQ7dD10Ll9uZXh0QWRkZWQpdC5wcmV2aW91c0luZGV4PXQuY3VycmVudEluZGV4O2Zvcih0aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9bnVsbCx0PXRoaXMuX21vdmVzSGVhZDtudWxsIT09dDt0PXQuX25leHRNb3ZlZCl0LnByZXZpb3VzSW5kZXg9dC5jdXJyZW50SW5kZXg7dGhpcy5fbW92ZXNIZWFkPXRoaXMuX21vdmVzVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD10aGlzLl9yZW1vdmFsc1RhaWw9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWw9bnVsbH19X21pc21hdGNoKHQsZSxuLG8pe2xldCBpO3JldHVybiBudWxsPT09dD9pPXRoaXMuX2l0VGFpbDooaT10Ll9wcmV2LHRoaXMuX3JlbW92ZSh0KSksbnVsbCE9PSh0PW51bGw9PT10aGlzLl91bmxpbmtlZFJlY29yZHM/bnVsbDp0aGlzLl91bmxpbmtlZFJlY29yZHMuZ2V0KG4sbnVsbCkpPyhPYmplY3QuaXModC5pdGVtLGUpfHx0aGlzLl9hZGRJZGVudGl0eUNoYW5nZSh0LGUpLHRoaXMuX3JlaW5zZXJ0QWZ0ZXIodCxpLG8pKTpudWxsIT09KHQ9bnVsbD09PXRoaXMuX2xpbmtlZFJlY29yZHM/bnVsbDp0aGlzLl9saW5rZWRSZWNvcmRzLmdldChuLG8pKT8oT2JqZWN0LmlzKHQuaXRlbSxlKXx8dGhpcy5fYWRkSWRlbnRpdHlDaGFuZ2UodCxlKSx0aGlzLl9tb3ZlQWZ0ZXIodCxpLG8pKTp0PXRoaXMuX2FkZEFmdGVyKG5ldyBEZyhlLG4pLGksbyksdH1fdmVyaWZ5UmVpbnNlcnRpb24odCxlLG4sbyl7bGV0IGk9bnVsbD09PXRoaXMuX3VubGlua2VkUmVjb3Jkcz9udWxsOnRoaXMuX3VubGlua2VkUmVjb3Jkcy5nZXQobixudWxsKTtyZXR1cm4gbnVsbCE9PWk/dD10aGlzLl9yZWluc2VydEFmdGVyKGksdC5fcHJldixvKTp0LmN1cnJlbnRJbmRleCE9byYmKHQuY3VycmVudEluZGV4PW8sdGhpcy5fYWRkVG9Nb3Zlcyh0LG8pKSx0fV90cnVuY2F0ZSh0KXtmb3IoO251bGwhPT10Oyl7Y29uc3QgZT10Ll9uZXh0O3RoaXMuX2FkZFRvUmVtb3ZhbHModGhpcy5fdW5saW5rKHQpKSx0PWV9bnVsbCE9PXRoaXMuX3VubGlua2VkUmVjb3JkcyYmdGhpcy5fdW5saW5rZWRSZWNvcmRzLmNsZWFyKCksbnVsbCE9PXRoaXMuX2FkZGl0aW9uc1RhaWwmJih0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0QWRkZWQ9bnVsbCksbnVsbCE9PXRoaXMuX21vdmVzVGFpbCYmKHRoaXMuX21vdmVzVGFpbC5fbmV4dE1vdmVkPW51bGwpLG51bGwhPT10aGlzLl9pdFRhaWwmJih0aGlzLl9pdFRhaWwuX25leHQ9bnVsbCksbnVsbCE9PXRoaXMuX3JlbW92YWxzVGFpbCYmKHRoaXMuX3JlbW92YWxzVGFpbC5fbmV4dFJlbW92ZWQ9bnVsbCksbnVsbCE9PXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWwmJih0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbCl9X3JlaW5zZXJ0QWZ0ZXIodCxlLG4pe251bGwhPT10aGlzLl91bmxpbmtlZFJlY29yZHMmJnRoaXMuX3VubGlua2VkUmVjb3Jkcy5yZW1vdmUodCk7Y29uc3Qgbz10Ll9wcmV2UmVtb3ZlZCxpPXQuX25leHRSZW1vdmVkO3JldHVybiBudWxsPT09bz90aGlzLl9yZW1vdmFsc0hlYWQ9aTpvLl9uZXh0UmVtb3ZlZD1pLG51bGw9PT1pP3RoaXMuX3JlbW92YWxzVGFpbD1vOmkuX3ByZXZSZW1vdmVkPW8sdGhpcy5faW5zZXJ0QWZ0ZXIodCxlLG4pLHRoaXMuX2FkZFRvTW92ZXModCxuKSx0fV9tb3ZlQWZ0ZXIodCxlLG4pe3JldHVybiB0aGlzLl91bmxpbmsodCksdGhpcy5faW5zZXJ0QWZ0ZXIodCxlLG4pLHRoaXMuX2FkZFRvTW92ZXModCxuKSx0fV9hZGRBZnRlcih0LGUsbil7cmV0dXJuIHRoaXMuX2luc2VydEFmdGVyKHQsZSxuKSx0aGlzLl9hZGRpdGlvbnNUYWlsPW51bGw9PT10aGlzLl9hZGRpdGlvbnNUYWlsP3RoaXMuX2FkZGl0aW9uc0hlYWQ9dDp0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0QWRkZWQ9dCx0fV9pbnNlcnRBZnRlcih0LGUsbil7Y29uc3Qgbz1udWxsPT09ZT90aGlzLl9pdEhlYWQ6ZS5fbmV4dDtyZXR1cm4gdC5fbmV4dD1vLHQuX3ByZXY9ZSxudWxsPT09bz90aGlzLl9pdFRhaWw9dDpvLl9wcmV2PXQsbnVsbD09PWU/dGhpcy5faXRIZWFkPXQ6ZS5fbmV4dD10LG51bGw9PT10aGlzLl9saW5rZWRSZWNvcmRzJiYodGhpcy5fbGlua2VkUmVjb3Jkcz1uZXcgUmcpLHRoaXMuX2xpbmtlZFJlY29yZHMucHV0KHQpLHQuY3VycmVudEluZGV4PW4sdH1fcmVtb3ZlKHQpe3JldHVybiB0aGlzLl9hZGRUb1JlbW92YWxzKHRoaXMuX3VubGluayh0KSl9X3VubGluayh0KXtudWxsIT09dGhpcy5fbGlua2VkUmVjb3JkcyYmdGhpcy5fbGlua2VkUmVjb3Jkcy5yZW1vdmUodCk7Y29uc3QgZT10Ll9wcmV2LG49dC5fbmV4dDtyZXR1cm4gbnVsbD09PWU/dGhpcy5faXRIZWFkPW46ZS5fbmV4dD1uLG51bGw9PT1uP3RoaXMuX2l0VGFpbD1lOm4uX3ByZXY9ZSx0fV9hZGRUb01vdmVzKHQsZSl7cmV0dXJuIHQucHJldmlvdXNJbmRleD09PWV8fCh0aGlzLl9tb3Zlc1RhaWw9bnVsbD09PXRoaXMuX21vdmVzVGFpbD90aGlzLl9tb3Zlc0hlYWQ9dDp0aGlzLl9tb3Zlc1RhaWwuX25leHRNb3ZlZD10KSx0fV9hZGRUb1JlbW92YWxzKHQpe3JldHVybiBudWxsPT09dGhpcy5fdW5saW5rZWRSZWNvcmRzJiYodGhpcy5fdW5saW5rZWRSZWNvcmRzPW5ldyBSZyksdGhpcy5fdW5saW5rZWRSZWNvcmRzLnB1dCh0KSx0LmN1cnJlbnRJbmRleD1udWxsLHQuX25leHRSZW1vdmVkPW51bGwsbnVsbD09PXRoaXMuX3JlbW92YWxzVGFpbD8odGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzSGVhZD10LHQuX3ByZXZSZW1vdmVkPW51bGwpOih0Ll9wcmV2UmVtb3ZlZD10aGlzLl9yZW1vdmFsc1RhaWwsdGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzVGFpbC5fbmV4dFJlbW92ZWQ9dCksdH1fYWRkSWRlbnRpdHlDaGFuZ2UodCxlKXtyZXR1cm4gdC5pdGVtPWUsdGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD1udWxsPT09dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD90aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPXQ6dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbC5fbmV4dElkZW50aXR5Q2hhbmdlPXQsdH19Y2xhc3MgRGd7Y29uc3RydWN0b3IodCxlKXt0aGlzLml0ZW09dCx0aGlzLnRyYWNrQnlJZD1lLHRoaXMuY3VycmVudEluZGV4PW51bGwsdGhpcy5wcmV2aW91c0luZGV4PW51bGwsdGhpcy5fbmV4dFByZXZpb3VzPW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wcmV2RHVwPW51bGwsdGhpcy5fbmV4dER1cD1udWxsLHRoaXMuX3ByZXZSZW1vdmVkPW51bGwsdGhpcy5fbmV4dFJlbW92ZWQ9bnVsbCx0aGlzLl9uZXh0QWRkZWQ9bnVsbCx0aGlzLl9uZXh0TW92ZWQ9bnVsbCx0aGlzLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbH19Y2xhc3MgRWd7Y29uc3RydWN0b3IoKXt0aGlzLl9oZWFkPW51bGwsdGhpcy5fdGFpbD1udWxsfWFkZCh0KXtudWxsPT09dGhpcy5faGVhZD8odGhpcy5faGVhZD10aGlzLl90YWlsPXQsdC5fbmV4dER1cD1udWxsLHQuX3ByZXZEdXA9bnVsbCk6KHRoaXMuX3RhaWwuX25leHREdXA9dCx0Ll9wcmV2RHVwPXRoaXMuX3RhaWwsdC5fbmV4dER1cD1udWxsLHRoaXMuX3RhaWw9dCl9Z2V0KHQsZSl7bGV0IG47Zm9yKG49dGhpcy5faGVhZDtudWxsIT09bjtuPW4uX25leHREdXApaWYoKG51bGw9PT1lfHxlPD1uLmN1cnJlbnRJbmRleCkmJk9iamVjdC5pcyhuLnRyYWNrQnlJZCx0KSlyZXR1cm4gbjtyZXR1cm4gbnVsbH1yZW1vdmUodCl7Y29uc3QgZT10Ll9wcmV2RHVwLG49dC5fbmV4dER1cDtyZXR1cm4gbnVsbD09PWU/dGhpcy5faGVhZD1uOmUuX25leHREdXA9bixudWxsPT09bj90aGlzLl90YWlsPWU6bi5fcHJldkR1cD1lLG51bGw9PT10aGlzLl9oZWFkfX1jbGFzcyBSZ3tjb25zdHJ1Y3Rvcigpe3RoaXMubWFwPW5ldyBNYXB9cHV0KHQpe2NvbnN0IGU9dC50cmFja0J5SWQ7bGV0IG49dGhpcy5tYXAuZ2V0KGUpO258fChuPW5ldyBFZyx0aGlzLm1hcC5zZXQoZSxuKSksbi5hZGQodCl9Z2V0KHQsZSl7Y29uc3Qgbj10aGlzLm1hcC5nZXQodCk7cmV0dXJuIG4/bi5nZXQodCxlKTpudWxsfXJlbW92ZSh0KXtjb25zdCBlPXQudHJhY2tCeUlkO3JldHVybiB0aGlzLm1hcC5nZXQoZSkucmVtb3ZlKHQpJiZ0aGlzLm1hcC5kZWxldGUoZSksdH1nZXQgaXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5tYXAuc2l6ZX1jbGVhcigpe3RoaXMubWFwLmNsZWFyKCl9fWZ1bmN0aW9uIEFnKHQsZSxuKXtjb25zdCBvPXQucHJldmlvdXNJbmRleDtpZihudWxsPT09bylyZXR1cm4gbztsZXQgaT0wO3JldHVybiBuJiZvPG4ubGVuZ3RoJiYoaT1uW29dKSxvK2UraX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgVGd7Y29uc3RydWN0b3IoKXt9c3VwcG9ydHModCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBNYXB8fHpwKHQpfWNyZWF0ZSgpe3JldHVybiBuZXcgTmd9fWNsYXNzIE5ne2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVjb3Jkcz1uZXcgTWFwLHRoaXMuX21hcEhlYWQ9bnVsbCx0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX3ByZXZpb3VzTWFwSGVhZD1udWxsLHRoaXMuX2NoYW5nZXNIZWFkPW51bGwsdGhpcy5fY2hhbmdlc1RhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsLHRoaXMuX3JlbW92YWxzVGFpbD1udWxsfWdldCBpc0RpcnR5KCl7cmV0dXJuIG51bGwhPT10aGlzLl9hZGRpdGlvbnNIZWFkfHxudWxsIT09dGhpcy5fY2hhbmdlc0hlYWR8fG51bGwhPT10aGlzLl9yZW1vdmFsc0hlYWR9Zm9yRWFjaEl0ZW0odCl7bGV0IGU7Zm9yKGU9dGhpcy5fbWFwSGVhZDtudWxsIT09ZTtlPWUuX25leHQpdChlKX1mb3JFYWNoUHJldmlvdXNJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09ZTtlPWUuX25leHRQcmV2aW91cyl0KGUpfWZvckVhY2hDaGFuZ2VkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9jaGFuZ2VzSGVhZDtudWxsIT09ZTtlPWUuX25leHRDaGFuZ2VkKXQoZSl9Zm9yRWFjaEFkZGVkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1lO2U9ZS5fbmV4dEFkZGVkKXQoZSl9Zm9yRWFjaFJlbW92ZWRJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX3JlbW92YWxzSGVhZDtudWxsIT09ZTtlPWUuX25leHRSZW1vdmVkKXQoZSl9ZGlmZih0KXtpZih0KXtpZighKHQgaW5zdGFuY2VvZiBNYXB8fHpwKHQpKSl0aHJvdyBuZXcgRXJyb3IoYEVycm9yIHRyeWluZyB0byBkaWZmICcke0dlKHQpfScuIE9ubHkgbWFwcyBhbmQgb2JqZWN0cyBhcmUgYWxsb3dlZGApfWVsc2UgdD1uZXcgTWFwO3JldHVybiB0aGlzLmNoZWNrKHQpP3RoaXM6bnVsbH1vbkRlc3Ryb3koKXt9Y2hlY2sodCl7dGhpcy5fcmVzZXQoKTtsZXQgZT10aGlzLl9tYXBIZWFkO2lmKHRoaXMuX2FwcGVuZEFmdGVyPW51bGwsdGhpcy5fZm9yRWFjaCh0LCgodCxuKT0+e2lmKGUmJmUua2V5PT09bil0aGlzLl9tYXliZUFkZFRvQ2hhbmdlcyhlLHQpLHRoaXMuX2FwcGVuZEFmdGVyPWUsZT1lLl9uZXh0O2Vsc2V7Y29uc3Qgbz10aGlzLl9nZXRPckNyZWF0ZVJlY29yZEZvcktleShuLHQpO2U9dGhpcy5faW5zZXJ0QmVmb3JlT3JBcHBlbmQoZSxvKX19KSksZSl7ZS5fcHJldiYmKGUuX3ByZXYuX25leHQ9bnVsbCksdGhpcy5fcmVtb3ZhbHNIZWFkPWU7Zm9yKGxldCB0PWU7bnVsbCE9PXQ7dD10Ll9uZXh0UmVtb3ZlZCl0PT09dGhpcy5fbWFwSGVhZCYmKHRoaXMuX21hcEhlYWQ9bnVsbCksdGhpcy5fcmVjb3Jkcy5kZWxldGUodC5rZXkpLHQuX25leHRSZW1vdmVkPXQuX25leHQsdC5wcmV2aW91c1ZhbHVlPXQuY3VycmVudFZhbHVlLHQuY3VycmVudFZhbHVlPW51bGwsdC5fcHJldj1udWxsLHQuX25leHQ9bnVsbH1yZXR1cm4gdGhpcy5fY2hhbmdlc1RhaWwmJih0aGlzLl9jaGFuZ2VzVGFpbC5fbmV4dENoYW5nZWQ9bnVsbCksdGhpcy5fYWRkaXRpb25zVGFpbCYmKHRoaXMuX2FkZGl0aW9uc1RhaWwuX25leHRBZGRlZD1udWxsKSx0aGlzLmlzRGlydHl9X2luc2VydEJlZm9yZU9yQXBwZW5kKHQsZSl7aWYodCl7Y29uc3Qgbj10Ll9wcmV2O3JldHVybiBlLl9uZXh0PXQsZS5fcHJldj1uLHQuX3ByZXY9ZSxuJiYobi5fbmV4dD1lKSx0PT09dGhpcy5fbWFwSGVhZCYmKHRoaXMuX21hcEhlYWQ9ZSksdGhpcy5fYXBwZW5kQWZ0ZXI9dCx0fXJldHVybiB0aGlzLl9hcHBlbmRBZnRlcj8odGhpcy5fYXBwZW5kQWZ0ZXIuX25leHQ9ZSxlLl9wcmV2PXRoaXMuX2FwcGVuZEFmdGVyKTp0aGlzLl9tYXBIZWFkPWUsdGhpcy5fYXBwZW5kQWZ0ZXI9ZSxudWxsfV9nZXRPckNyZWF0ZVJlY29yZEZvcktleSh0LGUpe2lmKHRoaXMuX3JlY29yZHMuaGFzKHQpKXtjb25zdCBuPXRoaXMuX3JlY29yZHMuZ2V0KHQpO3RoaXMuX21heWJlQWRkVG9DaGFuZ2VzKG4sZSk7Y29uc3Qgbz1uLl9wcmV2LGk9bi5fbmV4dDtyZXR1cm4gbyYmKG8uX25leHQ9aSksaSYmKGkuX3ByZXY9byksbi5fbmV4dD1udWxsLG4uX3ByZXY9bnVsbCxufWNvbnN0IG49bmV3IHpnKHQpO3JldHVybiB0aGlzLl9yZWNvcmRzLnNldCh0LG4pLG4uY3VycmVudFZhbHVlPWUsdGhpcy5fYWRkVG9BZGRpdGlvbnMobiksbn1fcmVzZXQoKXtpZih0aGlzLmlzRGlydHkpe2xldCB0O2Zvcih0aGlzLl9wcmV2aW91c01hcEhlYWQ9dGhpcy5fbWFwSGVhZCx0PXRoaXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09dDt0PXQuX25leHQpdC5fbmV4dFByZXZpb3VzPXQuX25leHQ7Zm9yKHQ9dGhpcy5fY2hhbmdlc0hlYWQ7bnVsbCE9PXQ7dD10Ll9uZXh0Q2hhbmdlZCl0LnByZXZpb3VzVmFsdWU9dC5jdXJyZW50VmFsdWU7Zm9yKHQ9dGhpcy5fYWRkaXRpb25zSGVhZDtudWxsIT10O3Q9dC5fbmV4dEFkZGVkKXQucHJldmlvdXNWYWx1ZT10LmN1cnJlbnRWYWx1ZTt0aGlzLl9jaGFuZ2VzSGVhZD10aGlzLl9jaGFuZ2VzVGFpbD1udWxsLHRoaXMuX2FkZGl0aW9uc0hlYWQ9dGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsfX1fbWF5YmVBZGRUb0NoYW5nZXModCxlKXtPYmplY3QuaXMoZSx0LmN1cnJlbnRWYWx1ZSl8fCh0LnByZXZpb3VzVmFsdWU9dC5jdXJyZW50VmFsdWUsdC5jdXJyZW50VmFsdWU9ZSx0aGlzLl9hZGRUb0NoYW5nZXModCkpfV9hZGRUb0FkZGl0aW9ucyh0KXtudWxsPT09dGhpcy5fYWRkaXRpb25zSGVhZD90aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9dDoodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPXQsdGhpcy5fYWRkaXRpb25zVGFpbD10KX1fYWRkVG9DaGFuZ2VzKHQpe251bGw9PT10aGlzLl9jaGFuZ2VzSGVhZD90aGlzLl9jaGFuZ2VzSGVhZD10aGlzLl9jaGFuZ2VzVGFpbD10Oih0aGlzLl9jaGFuZ2VzVGFpbC5fbmV4dENoYW5nZWQ9dCx0aGlzLl9jaGFuZ2VzVGFpbD10KX1fZm9yRWFjaCh0LGUpe3QgaW5zdGFuY2VvZiBNYXA/dC5mb3JFYWNoKGUpOk9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PmUodFtuXSxuKSkpfX1jbGFzcyB6Z3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmtleT10LHRoaXMucHJldmlvdXNWYWx1ZT1udWxsLHRoaXMuY3VycmVudFZhbHVlPW51bGwsdGhpcy5fbmV4dFByZXZpb3VzPW51bGwsdGhpcy5fbmV4dD1udWxsLHRoaXMuX3ByZXY9bnVsbCx0aGlzLl9uZXh0QWRkZWQ9bnVsbCx0aGlzLl9uZXh0UmVtb3ZlZD1udWxsLHRoaXMuX25leHRDaGFuZ2VkPW51bGx9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBJZygpe3JldHVybiBuZXcgSGcoW25ldyB3Z10pfWNsYXNzIEhne2NvbnN0cnVjdG9yKHQpe3RoaXMuZmFjdG9yaWVzPXR9c3RhdGljIGNyZWF0ZSh0LGUpe2lmKG51bGwhPWUpe2NvbnN0IG49ZS5mYWN0b3JpZXMuc2xpY2UoKTt0PXQuY29uY2F0KG4pfXJldHVybiBuZXcgSGcodCl9c3RhdGljIGV4dGVuZCh0KXtyZXR1cm57cHJvdmlkZTpIZyx1c2VGYWN0b3J5OmU9PkhnLmNyZWF0ZSh0LGV8fElnKCkpLGRlcHM6W1tIZyxuZXcgRXIsbmV3IFNyXV19fWZpbmQodCl7Y29uc3QgZT10aGlzLmZhY3Rvcmllcy5maW5kKChlPT5lLnN1cHBvcnRzKHQpKSk7aWYobnVsbCE9ZSlyZXR1cm4gZTt0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIGEgZGlmZmVyIHN1cHBvcnRpbmcgb2JqZWN0ICcke3R9JyBvZiB0eXBlICckeyhmdW5jdGlvbiBuKHQpe3JldHVybiB0Lm5hbWV8fHR5cGVvZiB0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQpfSdgKX19ZnVuY3Rpb24gRmcoKXtyZXR1cm4gbmV3IExnKFtuZXcgVGddKX1IZy7JtXByb3Y9TW4oe3Rva2VuOkhnLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6SWd9KTtjbGFzcyBMZ3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmZhY3Rvcmllcz10fXN0YXRpYyBjcmVhdGUodCxlKXtpZihlKXtjb25zdCBuPWUuZmFjdG9yaWVzLnNsaWNlKCk7dD10LmNvbmNhdChuKX1yZXR1cm4gbmV3IExnKHQpfXN0YXRpYyBleHRlbmQodCl7cmV0dXJue3Byb3ZpZGU6TGcsdXNlRmFjdG9yeTplPT5MZy5jcmVhdGUodCxlfHxGZygpKSxkZXBzOltbTGcsbmV3IEVyLG5ldyBTcl1dfX1maW5kKHQpe2NvbnN0IGU9dGhpcy5mYWN0b3JpZXMuZmluZCgoZT0+ZS5zdXBwb3J0cyh0KSkpO2lmKGUpcmV0dXJuIGU7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBhIGRpZmZlciBzdXBwb3J0aW5nIG9iamVjdCAnJHt0fSdgKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBCZyh0LGUsbixvLGk9ITEpe2Zvcig7bnVsbCE9PW47KXtuZ0Rldk1vZGUmJmlhKG4sNjMpO2NvbnN0IGE9ZVtuLmluZGV4XTtpZihudWxsIT09YSYmby5wdXNoKGVpKGEpKSxfbyhhKSlmb3IobGV0IHQ9Ym87dDxhLmxlbmd0aDt0Kyspe2NvbnN0IGU9YVt0XSxuPWVbMV0uZmlyc3RDaGlsZDtudWxsIT09biYmQmcoZVsxXSxlLG4sbyl9Y29uc3Qgcj1uLnR5cGU7aWYoOCZyKUJnKHQsZSxuLmNoaWxkLG8pO2Vsc2UgaWYoMzImcil7Y29uc3QgdD1wbChuLGUpO2xldCBpO2Zvcig7aT10KCk7KW8ucHVzaChpKX1lbHNlIGlmKDE2JnIpe2NvbnN0IHQ9TGwoZSxuKTtpZihBcnJheS5pc0FycmF5KHQpKW8ucHVzaCguLi50KTtlbHNle2NvbnN0IG49bWwoZVsxNl0pO25nRGV2TW9kZSYmSW8obiksQmcoblsxXSxuLHQsbywhMCl9fW49aT9uLnByb2plY3Rpb25OZXh0Om4ubmV4dH1yZXR1cm4gb30KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovTGcuybVwcm92PU1uKHt0b2tlbjpMZyxwcm92aWRlZEluOiJyb290IixmYWN0b3J5OkZnfSk7Y2xhc3MgVmd7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9sVmlldz10LHRoaXMuX2NkUmVmSW5qZWN0aW5nVmlldz1lLHRoaXMuX2FwcFJlZj1udWxsLHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyPSExfWdldCByb290Tm9kZXMoKXtjb25zdCB0PXRoaXMuX2xWaWV3LGU9dFsxXTtyZXR1cm4gQmcoZSx0LGUuZmlyc3RDaGlsZCxbXSl9Z2V0IGNvbnRleHQoKXtyZXR1cm4gdGhpcy5fbFZpZXdbOF19c2V0IGNvbnRleHQodCl7dGhpcy5fbFZpZXdbOF09dH1nZXQgZGVzdHJveWVkKCl7cmV0dXJuIDI1Nj09KDI1NiZ0aGlzLl9sVmlld1syXSl9ZGVzdHJveSgpe2lmKHRoaXMuX2FwcFJlZil0aGlzLl9hcHBSZWYuZGV0YWNoVmlldyh0aGlzKTtlbHNlIGlmKHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyKXtjb25zdCB0PXRoaXMuX2xWaWV3WzNdO2lmKF9vKHQpKXtjb25zdCBlPXRbOF0sbj1lP2UuaW5kZXhPZih0aGlzKTotMTtuPi0xJiYobmdEZXZNb2RlJiZsbihuLHQuaW5kZXhPZih0aGlzLl9sVmlldyktYm8sIkFuIGF0dGFjaGVkIHZpZXcgc2hvdWxkIGJlIGluIHRoZSBzYW1lIHBvc2l0aW9uIHdpdGhpbiBpdHMgY29udGFpbmVyIGFzIGl0cyBWaWV3UmVmIGluIHRoZSBWSUVXX1JFRlMgYXJyYXkuIikseGwodCxuKSxvcihlLG4pKX10aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcj0hMX1PbCh0aGlzLl9sVmlld1sxXSx0aGlzLl9sVmlldyl9b25EZXN0cm95KHQpe3JkKHRoaXMuX2xWaWV3WzFdLHRoaXMuX2xWaWV3LG51bGwsdCl9bWFya0ZvckNoZWNrKCl7RWQodGhpcy5fY2RSZWZJbmplY3RpbmdWaWV3fHx0aGlzLl9sVmlldyl9ZGV0YWNoKCl7dGhpcy5fbFZpZXdbMl0mPS0xMjl9cmVhdHRhY2goKXt0aGlzLl9sVmlld1syXXw9MTI4fWRldGVjdENoYW5nZXMoKXtBZCh0aGlzLl9sVmlld1sxXSx0aGlzLl9sVmlldyx0aGlzLmNvbnRleHQpfWNoZWNrTm9DaGFuZ2VzKCl7IShmdW5jdGlvbiB0KGUsbixvKXtPaSghMCk7dHJ5e0FkKGUsbixvKX1maW5hbGx5e09pKCExKX19KSh0aGlzLl9sVmlld1sxXSx0aGlzLl9sVmlldyx0aGlzLmNvbnRleHQpfWF0dGFjaFRvVmlld0NvbnRhaW5lclJlZigpe2lmKHRoaXMuX2FwcFJlZil0aHJvdyBuZXcgRXJyb3IoIlRoaXMgdmlldyBpcyBhbHJlYWR5IGF0dGFjaGVkIGRpcmVjdGx5IHRvIHRoZSBBcHBsaWNhdGlvblJlZiEiKTt0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcj0hMH1kZXRhY2hGcm9tQXBwUmVmKCl7dGhpcy5fYXBwUmVmPW51bGwsKGZ1bmN0aW9uIHQoZSxuKXtVbChlLG4sblsxMV0sMixudWxsLG51bGwpfSkodGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcpfWF0dGFjaFRvQXBwUmVmKHQpe2lmKHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyKXRocm93IG5ldyBFcnJvcigiVGhpcyB2aWV3IGlzIGFscmVhZHkgYXR0YWNoZWQgdG8gYSBWaWV3Q29udGFpbmVyISIpO3RoaXMuX2FwcFJlZj10fX1jbGFzcyBqZyBleHRlbmRzIFZne2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuX3ZpZXc9dH1kZXRlY3RDaGFuZ2VzKCl7VGQodGhpcy5fdmlldyl9Y2hlY2tOb0NoYW5nZXMoKXshKGZ1bmN0aW9uIHQoZSl7T2koITApO3RyeXtUZChlKX1maW5hbGx5e09pKCExKX19KSh0aGlzLl92aWV3KX1nZXQgY29udGV4dCgpe3JldHVybiBudWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgVWd7fVVnLl9fTkdfRUxFTUVOVF9JRF9fPWZ1bmN0aW9uIEdnKHQpe3JldHVybihmdW5jdGlvbiBlKHQsbixvKXtpZihNbyh0KSYmIW8pe2NvbnN0IGU9cmkodC5pbmRleCxuKTtyZXR1cm4gbmV3IFZnKGUsZSl9cmV0dXJuIDQ3JnQudHlwZT9uZXcgVmcoblsxNl0sbik6bnVsbH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKShiaSgpLGZpKCksMTY9PSgxNiZ0KSl9O2NvbnN0IFdnPVtuZXcgVGddLFlnPVtuZXcgd2ddLHFnPW5ldyBIZyhZZyksWmc9bmV3IExnKFdnKTtjbGFzcyBYZ3t9WGcuX19OR19FTEVNRU5UX0lEX189ZnVuY3Rpb24gS2coKXtyZXR1cm4gJGcoYmkoKSxmaSgpKX07Y29uc3QgSmc9WGcsUWc9Y2xhc3MgZXh0ZW5kcyBKZ3tjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLl9kZWNsYXJhdGlvbkxWaWV3PXQsdGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyPWUsdGhpcy5lbGVtZW50UmVmPW59Y3JlYXRlRW1iZWRkZWRWaWV3KHQpe2NvbnN0IGU9dGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyLnRWaWV3cyxuPXFjKHRoaXMuX2RlY2xhcmF0aW9uTFZpZXcsZSx0LDE2LG51bGwsZS5kZWNsVE5vZGUsbnVsbCxudWxsLG51bGwsbnVsbCksbz10aGlzLl9kZWNsYXJhdGlvbkxWaWV3W3RoaXMuX2RlY2xhcmF0aW9uVENvbnRhaW5lci5pbmRleF07bmdEZXZNb2RlJiZEbyhvKSxuWzE3XT1vO2NvbnN0IGk9dGhpcy5fZGVjbGFyYXRpb25MVmlld1sxOV07cmV0dXJuIG51bGwhPT1pJiYoblsxOV09aS5jcmVhdGVFbWJlZGRlZFZpZXcoZSkpLEpjKGUsbix0KSxuZXcgVmcobil9fTtmdW5jdGlvbiAkZyh0LGUpe3JldHVybiA0JnQudHlwZT8obmdEZXZNb2RlJiZobih0LnRWaWV3cywiVFZpZXcgbXVzdCBiZSBhbGxvY2F0ZWQiKSxuZXcgUWcoZSx0LGdnKHQsZSkpKTpudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB0aHt9Y2xhc3MgZWh7fWVoLl9fTkdfRUxFTUVOVF9JRF9fPWZ1bmN0aW9uIG5oKCl7cmV0dXJuIHNoKGJpKCksZmkoKSl9O2NvbnN0IG9oPWVoLGloPWNsYXNzIGV4dGVuZHMgb2h7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy5fbENvbnRhaW5lcj10LHRoaXMuX2hvc3RUTm9kZT1lLHRoaXMuX2hvc3RMVmlldz1ufWdldCBlbGVtZW50KCl7cmV0dXJuIGdnKHRoaXMuX2hvc3RUTm9kZSx0aGlzLl9ob3N0TFZpZXcpfWdldCBpbmplY3Rvcigpe3JldHVybiBuZXcgUmEodGhpcy5faG9zdFROb2RlLHRoaXMuX2hvc3RMVmlldyl9Z2V0IHBhcmVudEluamVjdG9yKCl7Y29uc3QgdD1fYSh0aGlzLl9ob3N0VE5vZGUsdGhpcy5faG9zdExWaWV3KTtpZihkYSh0KSl7Y29uc3QgZT1tYSh0LHRoaXMuX2hvc3RMVmlldyksbj1wYSh0KTtyZXR1cm4gbmdEZXZNb2RlJiZIbyhlLG4pLG5ldyBSYShlWzFdLmRhdGFbbis4XSxlKX1yZXR1cm4gbmV3IFJhKG51bGwsdGhpcy5faG9zdExWaWV3KX1jbGVhcigpe2Zvcig7dGhpcy5sZW5ndGg+MDspdGhpcy5yZW1vdmUodGhpcy5sZW5ndGgtMSl9Z2V0KHQpe2NvbnN0IGU9YWgodGhpcy5fbENvbnRhaW5lcik7cmV0dXJuIG51bGwhPT1lJiZlW3RdfHxudWxsfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5fbENvbnRhaW5lci5sZW5ndGgtYm99Y3JlYXRlRW1iZWRkZWRWaWV3KHQsZSxuKXtjb25zdCBvPXQuY3JlYXRlRW1iZWRkZWRWaWV3KGV8fHt9KTtyZXR1cm4gdGhpcy5pbnNlcnQobyxuKSxvfWNyZWF0ZUNvbXBvbmVudCh0LGUsbixvLGkpe2NvbnN0IGE9bnx8dGhpcy5wYXJlbnRJbmplY3RvcjtpZighaSYmbnVsbD09dC5uZ01vZHVsZSYmYSl7Y29uc3QgdD1hLmdldCh0aCxudWxsKTt0JiYoaT10KX1jb25zdCByPXQuY3JlYXRlKGEsbyx2b2lkIDAsaSk7cmV0dXJuIHRoaXMuaW5zZXJ0KHIuaG9zdFZpZXcsZSkscn1pbnNlcnQodCxlKXtjb25zdCBuPXQuX2xWaWV3LG89blsxXTtpZihuZ0Rldk1vZGUmJnQuZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGluc2VydCBhIGRlc3Ryb3llZCBWaWV3IGluIGEgVmlld0NvbnRhaW5lciEiKTtpZigoZnVuY3Rpb24gaSh0KXtyZXR1cm4gX28odFszXSl9KShuKSl7Y29uc3QgZT10aGlzLmluZGV4T2YodCk7aWYoLTEhPT1lKXRoaXMuZGV0YWNoKGUpO2Vsc2V7Y29uc3QgZT1uWzNdO25nRGV2TW9kZSYmbG4oX28oZSksITAsIkFuIGF0dGFjaGVkIHZpZXcgc2hvdWxkIGhhdmUgaXRzIFBBUkVOVCBwb2ludCB0byBhIGNvbnRhaW5lci4iKTtjb25zdCBvPW5ldyBpaChlLGVbNl0sZVszXSk7by5kZXRhY2goby5pbmRleE9mKHQpKX19Y29uc3QgYT10aGlzLl9hZGp1c3RJbmRleChlKSxyPXRoaXMuX2xDb250YWluZXI7IShmdW5jdGlvbiBzKHQsZSxuLG8pe25nRGV2TW9kZSYmUm8oZSksbmdEZXZNb2RlJiZEbyhuKTtjb25zdCBpPWJvK28sYT1uLmxlbmd0aDtvPjAmJihuW2ktMV1bNF09ZSksbzxhLWJvPyhlWzRdPW5baV0sbnIobixibytvLGUpKToobi5wdXNoKGUpLGVbNF09bnVsbCksZVszXT1uO2NvbnN0IHI9ZVsxN107bnVsbCE9PXImJm4hPT1yJiYoZnVuY3Rpb24gcyh0LGUpe25nRGV2TW9kZSYmaG4oZSwiTFZpZXcgcmVxdWlyZWQiKSxuZ0Rldk1vZGUmJkRvKHQpO2NvbnN0IG49dFs5XSxvPWVbM107bmdEZXZNb2RlJiZEbyhvKTtjb25zdCBpPW9bM11bMTZdO25nRGV2TW9kZSYmaG4oaSwiTWlzc2luZyBpbnNlcnRlZENvbXBvbmVudExWaWV3Iik7Y29uc3QgYT1lWzE2XTtuZ0Rldk1vZGUmJmhuKGEsIk1pc3NpbmcgZGVjbGFyZWRDb21wb25lbnRMVmlldyIpLGEhPT1pJiYodFsyXT0hMCksbnVsbD09PW4/dFs5XT1bZV06bi5wdXNoKGUpfSkocixlKTtjb25zdCBsPWVbMTldO251bGwhPT1sJiZsLmluc2VydFZpZXcodCksZVsyXXw9MTI4fSkobyxuLHIsYSk7Y29uc3QgbD1CbChhLHIpLGM9blsxMV0sZD1SbChjLHJbN10pO3JldHVybiBudWxsIT09ZCYmKGZ1bmN0aW9uIHAodCxlLG4sbyxpLGEpe29bMF09aSxvWzZdPWUsVWwodCxvLG4sMSxpLGEpfSkobyxyWzZdLGMsbixkLGwpLHQuYXR0YWNoVG9WaWV3Q29udGFpbmVyUmVmKCksbnIocmgociksYSx0KSx0fW1vdmUodCxlKXtpZihuZ0Rldk1vZGUmJnQuZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IG1vdmUgYSBkZXN0cm95ZWQgVmlldyBpbiBhIFZpZXdDb250YWluZXIhIik7cmV0dXJuIHRoaXMuaW5zZXJ0KHQsZSl9aW5kZXhPZih0KXtjb25zdCBlPWFoKHRoaXMuX2xDb250YWluZXIpO3JldHVybiBudWxsIT09ZT9lLmluZGV4T2YodCk6LTF9cmVtb3ZlKHQpe2NvbnN0IGU9dGhpcy5fYWRqdXN0SW5kZXgodCwtMSksbj14bCh0aGlzLl9sQ29udGFpbmVyLGUpO24mJihvcihyaCh0aGlzLl9sQ29udGFpbmVyKSxlKSxPbChuWzFdLG4pKX1kZXRhY2godCl7Y29uc3QgZT10aGlzLl9hZGp1c3RJbmRleCh0LC0xKSxuPXhsKHRoaXMuX2xDb250YWluZXIsZSk7cmV0dXJuIG4mJm51bGwhPW9yKHJoKHRoaXMuX2xDb250YWluZXIpLGUpP25ldyBWZyhuKTpudWxsfV9hZGp1c3RJbmRleCh0LGU9MCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5sZW5ndGgrZToobmdEZXZNb2RlJiYoZm4odCwtMSxgVmlld1JlZiBpbmRleCBtdXN0IGJlIHBvc2l0aXZlLCBnb3QgJHt0fWApLG1uKHQsdGhpcy5sZW5ndGgrMStlLCJpbmRleCIpKSx0KX19O2Z1bmN0aW9uIGFoKHQpe3JldHVybiB0WzhdfWZ1bmN0aW9uIHJoKHQpe3JldHVybiB0WzhdfHwodFs4XT1bXSl9ZnVuY3Rpb24gc2godCxlKXtsZXQgbjtuZ0Rldk1vZGUmJmlhKHQsMTUpO2NvbnN0IG89ZVt0LmluZGV4XTtpZihfbyhvKSluPW87ZWxzZXtsZXQgaTtpZig4JnQudHlwZSlpPWVpKG8pO2Vsc2V7Y29uc3Qgbj1lWzExXTtuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckNyZWF0ZUNvbW1lbnQrKyxpPW4uY3JlYXRlQ29tbWVudChuZ0Rldk1vZGU/ImNvbnRhaW5lciI6IiIpO2NvbnN0IG89b2kodCxlKTtTbChuLFJsKG4sbyksaSwoZnVuY3Rpb24gaSh0LGUpe3JldHVybiAkbyh0KT90Lm5leHRTaWJsaW5nKGUpOmUubmV4dFNpYmxpbmd9KShuLG8pLCExKX1lW3QuaW5kZXhdPW49UGQobyxlLGksdCksRGQoZSxuKX1yZXR1cm4gbmV3IGloKG4sdCxlKX1jb25zdCBsaD1uZXcgTWFwO2Z1bmN0aW9uIGNoKHQpe2xldCBlPWxoLmdldCh0KTtyZXR1cm4gZXx8KGU9R2UodCkrIl8iK2xoLnNpemUsbGguc2V0KHQsZSkpLGV9Y2gocnApLGNoKEdkKSxjaCh0aCksCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjaChDZyksY2goaGcpLGNoKGVoKSxjaChYZyksY2goVWcpLGNoKHJwKSxjaChHZCk7Y29uc3QgZGg9e307Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHBoIGV4dGVuZHMgdWd7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLm5nTW9kdWxlPXR9cmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodCl7bmdEZXZNb2RlJiYoZnVuY3Rpb24gZSh0LG49IlR5cGUgcGFzc2VkIGluIGlzIG5vdCBDb21wb25lbnRUeXBlLCBpdCBkb2VzIG5vdCBoYXZlICfJtWNtcCcgcHJvcGVydHkuIil7cG8odCl8fGJuKG4pfSkodCk7Y29uc3Qgbj1wbyh0KTtyZXR1cm4gbmV3IGZoKG4sdGhpcy5uZ01vZHVsZSl9fWZ1bmN0aW9uIG1oKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmZS5wdXNoKHtwcm9wTmFtZTp0W25dLHRlbXBsYXRlTmFtZTpufSk7cmV0dXJuIGV9Y29uc3QgdWg9bmV3IEdhKCJTQ0hFRFVMRVJfVE9LRU4iLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5ubH0pO2NsYXNzIGZoIGV4dGVuZHMgbWd7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuY29tcG9uZW50RGVmPXQsdGhpcy5uZ01vZHVsZT1lLHRoaXMuY29tcG9uZW50VHlwZT10LnR5cGUsdGhpcy5zZWxlY3Rvcj0oZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5tYXAoaWMpLmpvaW4oIiwiKX0pKHQuc2VsZWN0b3JzKSx0aGlzLm5nQ29udGVudFNlbGVjdG9ycz10Lm5nQ29udGVudFNlbGVjdG9ycz90Lm5nQ29udGVudFNlbGVjdG9yczpbXSx0aGlzLmlzQm91bmRUb01vZHVsZT0hIWV9Z2V0IGlucHV0cygpe3JldHVybiBtaCh0aGlzLmNvbXBvbmVudERlZi5pbnB1dHMpfWdldCBvdXRwdXRzKCl7cmV0dXJuIG1oKHRoaXMuY29tcG9uZW50RGVmLm91dHB1dHMpfWNyZWF0ZSh0LGUsbixvKXtjb25zdCBpPShvPW98fHRoaXMubmdNb2R1bGUpPyhmdW5jdGlvbiBhKHQsZSl7cmV0dXJue2dldDoobixvLGkpPT57Y29uc3QgYT10LmdldChuLGRoLGkpO3JldHVybiBhIT09ZGh8fG89PT1kaD9hOmUuZ2V0KG4sbyxpKX19fSkodCxvLmluamVjdG9yKTp0LHI9aS5nZXQoX2csdGkpLHM9aS5nZXQoeGcsbnVsbCksbD1yLmNyZWF0ZVJlbmRlcmVyKG51bGwsdGhpcy5jb21wb25lbnREZWYpLGM9dGhpcy5jb21wb25lbnREZWYuc2VsZWN0b3JzWzBdWzBdfHwiZGl2IixkPW4/KGZ1bmN0aW9uIHAodCxlLG4pe2lmKCRvKHQpKXJldHVybiB0LnNlbGVjdFJvb3RFbGVtZW50KGUsbj09PUhuLlNoYWRvd0RvbSk7bGV0IG89InN0cmluZyI9PXR5cGVvZiBlP3QucXVlcnlTZWxlY3RvcihlKTplO3JldHVybiBuZ0Rldk1vZGUmJihmdW5jdGlvbiBpKHQsZSl7aWYoIXQpdGhyb3coZnVuY3Rpb24gbih0LGUpe3JldHVybiBuZXcgRXJyb3IoYFJlbmRlcmVyOiAke3R9IFske3RuKGUpfV1gKX0pKCJzdHJpbmciPT10eXBlb2YgZT8iSG9zdCBub2RlIHdpdGggc2VsZWN0b3Igbm90IGZvdW5kOiI6Ikhvc3Qgbm9kZSBpcyByZXF1aXJlZDoiLGUpfSkobyxlKSxvLnRleHRDb250ZW50PSIiLG99KShsLG4sdGhpcy5jb21wb25lbnREZWYuZW5jYXBzdWxhdGlvbik6TWwoci5jcmVhdGVSZW5kZXJlcihudWxsLHRoaXMuY29tcG9uZW50RGVmKSxjLChmdW5jdGlvbiBtKHQpe2NvbnN0IGU9dC50b0xvd2VyQ2FzZSgpO3JldHVybiJzdmciPT09ZT9abzoibWF0aCI9PT1lP1hvOm51bGx9KShjKSksdT10aGlzLmNvbXBvbmVudERlZi5vblB1c2g/NTc2OjUyOCxmPShmdW5jdGlvbiBnKHQsZSl7cmV0dXJue2NvbXBvbmVudHM6W10sc2NoZWR1bGVyOnR8fG5sLGNsZWFuOklkLHBsYXllckhhbmRsZXI6ZXx8bnVsbCxmbGFnczowfX0pKCksaD1hZCgwLG51bGwsbnVsbCwxLDAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsKSxiPXFjKG51bGwsaCxmLHUsbnVsbCxudWxsLHIsbCxzLGkpO2xldCB5LF87RmkoYik7dHJ5e2NvbnN0IHQ9KGZ1bmN0aW9uIG8odCxlLG4saSxhLHIpe2NvbnN0IHM9blsxXTtuZ0Rldk1vZGUmJl9uKG4sMjApLG5bMjBdPXQ7Y29uc3QgbD1aYyhzLDIwLDIsIiNob3N0IixudWxsKSxjPWwubWVyZ2VkQXR0cnM9ZS5ob3N0QXR0cnM7bnVsbCE9PWMmJihVZChsLGMsITApLG51bGwhPT10JiYoYWEoYSx0LGMpLG51bGwhPT1sLmNsYXNzZXMmJllsKGEsdCxsLmNsYXNzZXMpLG51bGwhPT1sLnN0eWxlcyYmV2woYSx0LGwuc3R5bGVzKSkpO2NvbnN0IGQ9aS5jcmVhdGVSZW5kZXJlcih0LGUpLHA9cWMobixpZChlKSxudWxsLGUub25QdXNoPzY0OjE2LG5bMjBdLGwsaSxkLHJ8fG51bGwsbnVsbCk7cmV0dXJuIHMuZmlyc3RDcmVhdGVQYXNzJiYoQ2EoaGEobCxuKSxzLGUudHlwZSksZ2QocyxsKSxiZChsLG4ubGVuZ3RoLDEpKSxEZChuLHApLG5bMjBdPXB9KShkLHRoaXMuY29tcG9uZW50RGVmLGIscixsKTtpZihkKWlmKG4pYWEobCxkLFsibmctdmVyc2lvbiIsUGcuZnVsbF0pO2Vsc2V7Y29uc3R7YXR0cnM6dCxjbGFzc2VzOmV9PShmdW5jdGlvbiBuKHQpe2NvbnN0IGU9W10sbj1bXTtsZXQgbz0xLGk9Mjtmb3IoO288dC5sZW5ndGg7KXtsZXQgYT10W29dO2lmKCJzdHJpbmciPT10eXBlb2YgYSkyPT09aT8iIiE9PWEmJmUucHVzaChhLHRbKytvXSk6OD09PWkmJm4ucHVzaChhKTtlbHNle2lmKCEkbChpKSlicmVhaztpPWF9bysrfXJldHVybnthdHRyczplLGNsYXNzZXM6bn19KSh0aGlzLmNvbXBvbmVudERlZi5zZWxlY3RvcnNbMF0pO3QmJmFhKGwsZCx0KSxlJiZlLmxlbmd0aD4wJiZZbChsLGQsZS5qb2luKCIgIikpfWlmKF89aWkoaCxnbyksdm9pZCAwIT09ZSl7Y29uc3QgdD1fLnByb2plY3Rpb249W107Zm9yKGxldCBuPTA7bjx0aGlzLm5nQ29udGVudFNlbGVjdG9ycy5sZW5ndGg7bisrKXtjb25zdCBvPWVbbl07dC5wdXNoKG51bGwhPW8/QXJyYXkuZnJvbShvKTpudWxsKX19eT0oZnVuY3Rpb24gaSh0LGUsbixvLGEpe2NvbnN0IHI9blsxXSxzPShmdW5jdGlvbiBsKHQsZSxuKXtjb25zdCBvPWJpKCk7aWYodC5maXJzdENyZWF0ZVBhc3Mpe24ucHJvdmlkZXJzUmVzb2x2ZXImJm4ucHJvdmlkZXJzUmVzb2x2ZXIobik7Y29uc3QgaT1LYyh0LGUsMSxudWxsKTtuZ0Rldk1vZGUmJmxuKGksby5kaXJlY3RpdmVTdGFydCwiQmVjYXVzZSB0aGlzIGlzIGEgcm9vdCBjb21wb25lbnQgdGhlIGFsbG9jYXRlZCBleHBhbmRvIHNob3VsZCBtYXRjaCB0aGUgVE5vZGUgY29tcG9uZW50LiIpLHlkKHQsbyxlLGksbil9Y29uc3QgaT1TYShlLHQsby5kaXJlY3RpdmVTdGFydCxvKTtMcyhpLGUpO2NvbnN0IGE9b2kobyxlKTtyZXR1cm4gYSYmTHMoYSxlKSxpfSkocixuLGUpO2lmKG8uY29tcG9uZW50cy5wdXNoKHMpLHRbOF09cyxhJiZhLmZvckVhY2goKHQ9PnQocyxlKSkpLGUuY29udGVudFF1ZXJpZXMpe2NvbnN0IHQ9YmkoKTtuZ0Rldk1vZGUmJmhuKHQsIlROb2RlIGV4cGVjdGVkIiksZS5jb250ZW50UXVlcmllcygxLHMsdC5kaXJlY3RpdmVTdGFydCl9Y29uc3QgYz1iaSgpO3JldHVybiBuZ0Rldk1vZGUmJmhuKGMsInROb2RlIHNob3VsZCBoYXZlIGJlZW4gYWxyZWFkeSBjcmVhdGVkIiksIXIuZmlyc3RDcmVhdGVQYXNzfHxudWxsPT09ZS5ob3N0QmluZGluZ3MmJm51bGw9PT1lLmhvc3RBdHRyc3x8KFdpKGMuaW5kZXgpLHVkKG5bMV0sYywwLGMuZGlyZWN0aXZlU3RhcnQsYy5kaXJlY3RpdmVFbmQsZSksZmQoZSxzKSksc30pKHQsdGhpcy5jb21wb25lbnREZWYsYixmLFtNcF0pLEpjKGgsYixudWxsKX1maW5hbGx5e1VpKCl9cmV0dXJuIG5ldyBnaCh0aGlzLmNvbXBvbmVudFR5cGUseSxnZyhfLGIpLGIsXyl9fW5ldyBwaDtjbGFzcyBnaCBleHRlbmRzIGNsYXNze317Y29uc3RydWN0b3IodCxlLG4sbyxpKXtzdXBlcigpLHRoaXMubG9jYXRpb249bix0aGlzLl9yb290TFZpZXc9byx0aGlzLl90Tm9kZT1pLHRoaXMuaW5zdGFuY2U9ZSx0aGlzLmhvc3RWaWV3PXRoaXMuY2hhbmdlRGV0ZWN0b3JSZWY9bmV3IGpnKG8pLHRoaXMuY29tcG9uZW50VHlwZT10fWdldCBpbmplY3Rvcigpe3JldHVybiBuZXcgUmEodGhpcy5fdE5vZGUsdGhpcy5fcm9vdExWaWV3KX1kZXN0cm95KCl7dGhpcy5ob3N0Vmlldy5kZXN0cm95KCl9b25EZXN0cm95KHQpe3RoaXMuaG9zdFZpZXcub25EZXN0cm95KHQpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gaGgodCxlLG4sbyl7cmV0dXJuIE5uKCgoKT0+e2NvbnN0IGk9dDtudWxsIT09ZSYmKGkuaGFzT3duUHJvcGVydHkoImRlY29yYXRvcnMiKSYmdm9pZCAwIT09aS5kZWNvcmF0b3JzP2kuZGVjb3JhdG9ycy5wdXNoKC4uLmUpOmkuZGVjb3JhdG9ycz1lKSxudWxsIT09biYmKGkuY3RvclBhcmFtZXRlcnM9biksbnVsbCE9PW8mJihpLnByb3BEZWNvcmF0b3JzPWkuaGFzT3duUHJvcGVydHkoInByb3BEZWNvcmF0b3JzIikmJnZvaWQgMCE9PWkucHJvcERlY29yYXRvcnM/T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGkucHJvcERlY29yYXRvcnMpLG8pOm8pfSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBiaD1uZXcgTWFwOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgeWggZXh0ZW5kcyB0aHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5fcGFyZW50PWUsdGhpcy5fYm9vdHN0cmFwQ29tcG9uZW50cz1bXSx0aGlzLmluamVjdG9yPXRoaXMsdGhpcy5kZXN0cm95Q2JzPVtdLHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPW5ldyBwaCh0aGlzKTtjb25zdCBuPWZvKHQpO25nRGV2TW9kZSYmaG4obixgTmdNb2R1bGUgJyR7R2UodCl9JyBpcyBub3QgYSBzdWJ0eXBlIG9mICdOZ01vZHVsZVR5cGUnLmApO2NvbnN0IG89KGZ1bmN0aW9uIGkodCl7cmV0dXJuIHRbS25dfHxudWxsfSkodCk7byYmWHUobyksdGhpcy5fYm9vdHN0cmFwQ29tcG9uZW50cz1ybChuLmJvb3RzdHJhcCksdGhpcy5fcjNJbmplY3Rvcj1KZCh0LGUsW3twcm92aWRlOnRoLHVzZVZhbHVlOnRoaXN9LHtwcm92aWRlOnVnLHVzZVZhbHVlOnRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyfV0sR2UodCkpLHRoaXMuX3IzSW5qZWN0b3IuX3Jlc29sdmVJbmplY3RvckRlZlR5cGVzKCksdGhpcy5pbnN0YW5jZT10aGlzLmdldCh0KX1nZXQodCxlPXJwLlRIUk9XX0lGX05PVF9GT1VORCxuPUVuLkRlZmF1bHQpe3JldHVybiB0PT09cnB8fHQ9PT10aHx8dD09PUdkP3RoaXM6dGhpcy5fcjNJbmplY3Rvci5nZXQodCxlLG4pfWRlc3Ryb3koKXtuZ0Rldk1vZGUmJmhuKHRoaXMuZGVzdHJveUNicywiTmdNb2R1bGUgYWxyZWFkeSBkZXN0cm95ZWQiKTtjb25zdCB0PXRoaXMuX3IzSW5qZWN0b3I7IXQuZGVzdHJveWVkJiZ0LmRlc3Ryb3koKSx0aGlzLmRlc3Ryb3lDYnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5kZXN0cm95Q2JzPW51bGx9b25EZXN0cm95KHQpe25nRGV2TW9kZSYmaG4odGhpcy5kZXN0cm95Q2JzLCJOZ01vZHVsZSBhbHJlYWR5IGRlc3Ryb3llZCIpLHRoaXMuZGVzdHJveUNicy5wdXNoKHQpfX1jbGFzcyBfaCBleHRlbmRzIGNsYXNze30KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICove2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5tb2R1bGVUeXBlPXQsbnVsbCE9PWZvKHQpJiYoZnVuY3Rpb24gZSh0KXtjb25zdCBlPW5ldyBTZXQ7IShmdW5jdGlvbiB0KG4pe2NvbnN0IG89Zm8obiwhMCksaT1vLmlkO251bGwhPT1pJiYoKGZ1bmN0aW9uIGEodCxlLG4pe2lmKGUmJmUhPT1uKXRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlIG1vZHVsZSByZWdpc3RlcmVkIGZvciAke3R9IC0gJHtHZShlKX0gdnMgJHtHZShlLm5hbWUpfWApfSkoaSxiaC5nZXQoaSksbiksYmguc2V0KGksbikpO2NvbnN0IHI9cmwoby5pbXBvcnRzKTtmb3IoY29uc3QgbiBvZiByKWUuaGFzKG4pfHwoZS5hZGQobiksdChuKSl9KSh0KX0pKHQpfWNyZWF0ZSh0KXtyZXR1cm4gbmV3IHloKHRoaXMubW9kdWxlVHlwZSx0KX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIENoKHQsZSxuKXtjb25zdCBvPVBpKCkrdCxpPWZpKCk7cmV0dXJuIGlbb109PT1hYz9JcChpLG8sbj9lLmNhbGwobik6ZSgpKTpIcChpLG8pfWZ1bmN0aW9uIE1oKHQsZSxuLG8pe3JldHVybiBraChmaSgpLFBpKCksdCxlLG4sbyl9ZnVuY3Rpb24gdmgodCxlLG4sbyxpKXtyZXR1cm4gU2goZmkoKSxQaSgpLHQsZSxuLG8saSl9ZnVuY3Rpb24geGgodCxlLG4sbyxpLGEpe3JldHVybiBEaChmaSgpLFBpKCksdCxlLG4sbyxpLGEpfWZ1bmN0aW9uIE9oKHQsZSxuLG8saSxhLHIpe3JldHVybiBFaChmaSgpLFBpKCksdCxlLG4sbyxpLGEscil9ZnVuY3Rpb24gUGgodCxlLG4sbyxpLGEscixzKXtjb25zdCBsPVBpKCkrdCxjPWZpKCksZD1WcChjLGwsbixvLGksYSk7cmV0dXJuIEZwKGMsbCs0LHIpfHxkP0lwKGMsbCs1LHM/ZS5jYWxsKHMsbixvLGksYSxyKTplKG4sbyxpLGEscikpOkhwKGMsbCs1KX1mdW5jdGlvbiB3aCh0LGUpe25nRGV2TW9kZSYmX24odCxlKTtjb25zdCBuPXRbZV07cmV0dXJuIG49PT1hYz92b2lkIDA6bn1mdW5jdGlvbiBraCh0LGUsbixvLGksYSl7Y29uc3Qgcj1lK247cmV0dXJuIEZwKHQscixpKT9JcCh0LHIrMSxhP28uY2FsbChhLGkpOm8oaSkpOndoKHQscisxKX1mdW5jdGlvbiBTaCh0LGUsbixvLGksYSxyKXtjb25zdCBzPWUrbjtyZXR1cm4gTHAodCxzLGksYSk/SXAodCxzKzIscj9vLmNhbGwocixpLGEpOm8oaSxhKSk6d2godCxzKzIpfWZ1bmN0aW9uIERoKHQsZSxuLG8saSxhLHIscyl7Y29uc3QgbD1lK247cmV0dXJuIEJwKHQsbCxpLGEscik/SXAodCxsKzMscz9vLmNhbGwocyxpLGEscik6byhpLGEscikpOndoKHQsbCszKX1mdW5jdGlvbiBFaCh0LGUsbixvLGksYSxyLHMsbCl7Y29uc3QgYz1lK247cmV0dXJuIFZwKHQsYyxpLGEscixzKT9JcCh0LGMrNCxsP28uY2FsbChsLGksYSxyLHMpOm8oaSxhLHIscykpOndoKHQsYys0KX1mdW5jdGlvbiBSaCh0LGUsbixvLGksYSl7bGV0IHI9ZStuLHM9ITE7Zm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspRnAodCxyKyssaVtlXSkmJihzPSEwKTtyZXR1cm4gcz9JcCh0LHIsby5hcHBseShhLGkpKTp3aCh0LHIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBBaCh0LGUpe2NvbnN0IG49Z2koKTtsZXQgbztjb25zdCBpPXQrZ287bi5maXJzdENyZWF0ZVBhc3M/KG89KGZ1bmN0aW9uIGEodCxlKXtpZihlKWZvcihsZXQgbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtjb25zdCBvPWVbbl07aWYodD09PW8ubmFtZSlyZXR1cm4gb310aHJvdyBuZXcgS2UoIjMwMiIsYFRoZSBwaXBlICcke3R9JyBjb3VsZCBub3QgYmUgZm91bmQhYCl9KShlLG4ucGlwZVJlZ2lzdHJ5KSxuLmRhdGFbaV09byxvLm9uRGVzdHJveSYmKG4uZGVzdHJveUhvb2tzfHwobi5kZXN0cm95SG9va3M9W10pKS5wdXNoKGksby5vbkRlc3Ryb3kpKTpvPW4uZGF0YVtpXTtjb25zdCByPW8uZmFjdG9yeXx8KG8uZmFjdG9yeT1GbyhvLnR5cGUsITApKSxzPUFuKFNtKTt0cnl7Y29uc3QgdD1mYSghMSksZT1yKCk7cmV0dXJuIGZhKHQpLChmdW5jdGlvbiBsKHQsZSxuLG8pe24+PXQuZGF0YS5sZW5ndGgmJih0LmRhdGFbbl09bnVsbCx0LmJsdWVwcmludFtuXT1udWxsKSxlW25dPW99KShuLGZpKCksaSxlKSxlfWZpbmFsbHl7QW4ocyl9fWZ1bmN0aW9uIFRoKHQsZSxuKXtjb25zdCBvPXQrZ28saT1maSgpLGE9YWkoaSxvKTtyZXR1cm4gSGgoaSxJaChpLG8pP2toKGksUGkoKSxlLGEudHJhbnNmb3JtLG4sYSk6YS50cmFuc2Zvcm0obikpfWZ1bmN0aW9uIE5oKHQsZSxuLG8pe2NvbnN0IGk9dCtnbyxhPWZpKCkscj1haShhLGkpO3JldHVybiBIaChhLEloKGEsaSk/U2goYSxQaSgpLGUsci50cmFuc2Zvcm0sbixvLHIpOnIudHJhbnNmb3JtKG4sbykpfWZ1bmN0aW9uIHpoKHQsZSxuLG8saSl7Y29uc3QgYT10K2dvLHI9ZmkoKSxzPWFpKHIsYSk7cmV0dXJuIEhoKHIsSWgocixhKT9EaChyLFBpKCksZSxzLnRyYW5zZm9ybSxuLG8saSxzKTpzLnRyYW5zZm9ybShuLG8saSkpfWZ1bmN0aW9uIEloKHQsZSl7cmV0dXJuIHRbMV0uZGF0YVtlXS5wdXJlfWZ1bmN0aW9uIEhoKHQsZSl7cmV0dXJuIFRwLmlzV3JhcHBlZChlKSYmKGU9VHAudW53cmFwKGUpLHRbd2koKV09YWMpLGV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEZoKHQpe3JldHVybiBlPT57c2V0VGltZW91dCh0LHZvaWQgMCxlKX19Y29uc3QgTGg9Y2xhc3MgZXh0ZW5kcyBJe2NvbnN0cnVjdG9yKHQ9ITEpe3N1cGVyKCksdGhpcy5fX2lzQXN5bmM9dH1lbWl0KHQpe3N1cGVyLm5leHQodCl9c3Vic2NyaWJlKHQsZSxuKXt2YXIgbyxpLGE7bGV0IHI9dCxzPWV8fCgoKT0+bnVsbCksbD1uO2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdCl7Y29uc3QgZT10O3I9bnVsbD09PShvPWUubmV4dCl8fHZvaWQgMD09PW8/dm9pZCAwOm8uYmluZChlKSxzPW51bGw9PT0oaT1lLmVycm9yKXx8dm9pZCAwPT09aT92b2lkIDA6aS5iaW5kKGUpLGw9bnVsbD09PShhPWUuY29tcGxldGUpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmJpbmQoZSl9dGhpcy5fX2lzQXN5bmMmJihzPUZoKHMpLHImJihyPUZoKHIpKSxsJiYobD1GaChsKSkpO2NvbnN0IGM9c3VwZXIuc3Vic2NyaWJlKHtuZXh0OnIsZXJyb3I6cyxjb21wbGV0ZTpsfSk7cmV0dXJuIHQgaW5zdGFuY2VvZiBtJiZ0LmFkZChjKSxjfX07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEJoKCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHNbUnAoKV0oKX1jbGFzcyBWaHtjb25zdHJ1Y3Rvcih0PSExKXt0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seT10LHRoaXMuZGlydHk9ITAsdGhpcy5fcmVzdWx0cz1bXSx0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5maXJzdD12b2lkIDAsdGhpcy5sYXN0PXZvaWQgMDtjb25zdCBlPVJwKCksbj1WaC5wcm90b3R5cGU7bltlXXx8KG5bZV09QmgpfWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZXN8fCh0aGlzLl9jaGFuZ2VzPW5ldyBMaCl9Z2V0KHQpe3JldHVybiB0aGlzLl9yZXN1bHRzW3RdfW1hcCh0KXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5tYXAodCl9ZmlsdGVyKHQpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbHRlcih0KX1maW5kKHQpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbmQodCl9cmVkdWNlKHQsZSl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMucmVkdWNlKHQsZSl9Zm9yRWFjaCh0KXt0aGlzLl9yZXN1bHRzLmZvckVhY2godCl9c29tZSh0KXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zb21lKHQpfXRvQXJyYXkoKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zbGljZSgpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMudG9TdHJpbmcoKX1yZXNldCh0LGUpe2NvbnN0IG49dGhpcztuLmRpcnR5PSExO2NvbnN0IG89dHIodCk7KHRoaXMuX2NoYW5nZXNEZXRlY3RlZD0hKGZ1bmN0aW9uIGkodCxlLG4pe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspe2xldCBpPXRbb10sYT1lW29dO2lmKG4mJihpPW4oaSksYT1uKGEpKSxhIT09aSlyZXR1cm4hMX1yZXR1cm4hMH0pKG4uX3Jlc3VsdHMsbyxlKSkmJihuLl9yZXN1bHRzPW8sbi5sZW5ndGg9by5sZW5ndGgsbi5sYXN0PW9bdGhpcy5sZW5ndGgtMV0sbi5maXJzdD1vWzBdKX1ub3RpZnlPbkNoYW5nZXMoKXshdGhpcy5fY2hhbmdlc3x8IXRoaXMuX2NoYW5nZXNEZXRlY3RlZCYmdGhpcy5fZW1pdERpc3RpbmN0Q2hhbmdlc09ubHl8fHRoaXMuX2NoYW5nZXMuZW1pdCh0aGlzKX1zZXREaXJ0eSgpe3RoaXMuZGlydHk9ITB9ZGVzdHJveSgpe3RoaXMuY2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuY2hhbmdlcy51bnN1YnNjcmliZSgpfX1jbGFzcyBqaHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnF1ZXJ5TGlzdD10LHRoaXMubWF0Y2hlcz1udWxsfWNsb25lKCl7cmV0dXJuIG5ldyBqaCh0aGlzLnF1ZXJ5TGlzdCl9c2V0RGlydHkoKXt0aGlzLnF1ZXJ5TGlzdC5zZXREaXJ0eSgpfX1jbGFzcyBVaHtjb25zdHJ1Y3Rvcih0PVtdKXt0aGlzLnF1ZXJpZXM9dH1jcmVhdGVFbWJlZGRlZFZpZXcodCl7Y29uc3QgZT10LnF1ZXJpZXM7aWYobnVsbCE9PWUpe2NvbnN0IG49bnVsbCE9PXQuY29udGVudFF1ZXJpZXM/dC5jb250ZW50UXVlcmllc1swXTplLmxlbmd0aCxvPVtdO2ZvcihsZXQgdD0wO3Q8bjt0Kyspe2NvbnN0IG49ZS5nZXRCeUluZGV4KHQpO28ucHVzaCh0aGlzLnF1ZXJpZXNbbi5pbmRleEluRGVjbGFyYXRpb25WaWV3XS5jbG9uZSgpKX1yZXR1cm4gbmV3IFVoKG8pfXJldHVybiBudWxsfWluc2VydFZpZXcodCl7dGhpcy5kaXJ0eVF1ZXJpZXNXaXRoTWF0Y2hlcyh0KX1kZXRhY2hWaWV3KHQpe3RoaXMuZGlydHlRdWVyaWVzV2l0aE1hdGNoZXModCl9ZGlydHlRdWVyaWVzV2l0aE1hdGNoZXModCl7Zm9yKGxldCBlPTA7ZTx0aGlzLnF1ZXJpZXMubGVuZ3RoO2UrKyludWxsIT09b2IodCxlKS5tYXRjaGVzJiZ0aGlzLnF1ZXJpZXNbZV0uc2V0RGlydHkoKX19Y2xhc3MgR2h7Y29uc3RydWN0b3IodCxlLG49bnVsbCl7dGhpcy5wcmVkaWNhdGU9dCx0aGlzLmZsYWdzPWUsdGhpcy5yZWFkPW59fWNsYXNzIFdoe2NvbnN0cnVjdG9yKHQ9W10pe3RoaXMucXVlcmllcz10fWVsZW1lbnRTdGFydCh0LGUpe25nRGV2TW9kZSYmQW8odCwiUXVlcmllcyBzaG91bGQgY29sbGVjdCByZXN1bHRzIG9uIHRoZSBmaXJzdCB0ZW1wbGF0ZSBwYXNzIG9ubHkiKTtmb3IobGV0IG49MDtuPHRoaXMucXVlcmllcy5sZW5ndGg7bisrKXRoaXMucXVlcmllc1tuXS5lbGVtZW50U3RhcnQodCxlKX1lbGVtZW50RW5kKHQpe2ZvcihsZXQgZT0wO2U8dGhpcy5xdWVyaWVzLmxlbmd0aDtlKyspdGhpcy5xdWVyaWVzW2VdLmVsZW1lbnRFbmQodCl9ZW1iZWRkZWRUVmlldyh0KXtsZXQgZT1udWxsO2ZvcihsZXQgbj0wO248dGhpcy5sZW5ndGg7bisrKXtjb25zdCBvPW51bGwhPT1lP2UubGVuZ3RoOjAsaT10aGlzLmdldEJ5SW5kZXgobikuZW1iZWRkZWRUVmlldyh0LG8pO2kmJihpLmluZGV4SW5EZWNsYXJhdGlvblZpZXc9bixudWxsIT09ZT9lLnB1c2goaSk6ZT1baV0pfXJldHVybiBudWxsIT09ZT9uZXcgV2goZSk6bnVsbH10ZW1wbGF0ZSh0LGUpe25nRGV2TW9kZSYmQW8odCwiUXVlcmllcyBzaG91bGQgY29sbGVjdCByZXN1bHRzIG9uIHRoZSBmaXJzdCB0ZW1wbGF0ZSBwYXNzIG9ubHkiKTtmb3IobGV0IG49MDtuPHRoaXMucXVlcmllcy5sZW5ndGg7bisrKXRoaXMucXVlcmllc1tuXS50ZW1wbGF0ZSh0LGUpfWdldEJ5SW5kZXgodCl7cmV0dXJuIG5nRGV2TW9kZSYmX24odGhpcy5xdWVyaWVzLHQpLHRoaXMucXVlcmllc1t0XX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMucXVlcmllcy5sZW5ndGh9dHJhY2sodCl7dGhpcy5xdWVyaWVzLnB1c2godCl9fWNsYXNzIFloe2NvbnN0cnVjdG9yKHQsZT0tMSl7dGhpcy5tZXRhZGF0YT10LHRoaXMubWF0Y2hlcz1udWxsLHRoaXMuaW5kZXhJbkRlY2xhcmF0aW9uVmlldz0tMSx0aGlzLmNyb3NzZXNOZ1RlbXBsYXRlPSExLHRoaXMuX2FwcGxpZXNUb05leHROb2RlPSEwLHRoaXMuX2RlY2xhcmF0aW9uTm9kZUluZGV4PWV9ZWxlbWVudFN0YXJ0KHQsZSl7dGhpcy5pc0FwcGx5aW5nVG9Ob2RlKGUpJiZ0aGlzLm1hdGNoVE5vZGUodCxlKX1lbGVtZW50RW5kKHQpe3RoaXMuX2RlY2xhcmF0aW9uTm9kZUluZGV4PT09dC5pbmRleCYmKHRoaXMuX2FwcGxpZXNUb05leHROb2RlPSExKX10ZW1wbGF0ZSh0LGUpe3RoaXMuZWxlbWVudFN0YXJ0KHQsZSl9ZW1iZWRkZWRUVmlldyh0LGUpe3JldHVybiB0aGlzLmlzQXBwbHlpbmdUb05vZGUodCk/KHRoaXMuY3Jvc3Nlc05nVGVtcGxhdGU9ITAsdGhpcy5hZGRNYXRjaCgtdC5pbmRleCxlKSxuZXcgWWgodGhpcy5tZXRhZGF0YSkpOm51bGx9aXNBcHBseWluZ1RvTm9kZSh0KXtpZih0aGlzLl9hcHBsaWVzVG9OZXh0Tm9kZSYmMSE9KDEmdGhpcy5tZXRhZGF0YS5mbGFncykpe2NvbnN0IGU9dGhpcy5fZGVjbGFyYXRpb25Ob2RlSW5kZXg7bGV0IG49dC5wYXJlbnQ7Zm9yKDtudWxsIT09biYmOCZuLnR5cGUmJm4uaW5kZXghPT1lOyluPW4ucGFyZW50O3JldHVybiBlPT09KG51bGwhPT1uP24uaW5kZXg6LTEpfXJldHVybiB0aGlzLl9hcHBsaWVzVG9OZXh0Tm9kZX1tYXRjaFROb2RlKHQsZSl7Y29uc3Qgbj10aGlzLm1ldGFkYXRhLnByZWRpY2F0ZTtpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXtjb25zdCBpPW5bb107dGhpcy5tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24odCxlLHFoKGUsaSkpLHRoaXMubWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKHQsZSxrYShlLHQsaSwhMSwhMSkpfWVsc2Ugbj09PVhnPzQmZS50eXBlJiZ0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbih0LGUsLTEpOnRoaXMubWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKHQsZSxrYShlLHQsbiwhMSwhMSkpfW1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbih0LGUsbil7aWYobnVsbCE9PW4pe2NvbnN0IG89dGhpcy5tZXRhZGF0YS5yZWFkO2lmKG51bGwhPT1vKWlmKG89PT1oZ3x8bz09PWVofHxvPT09WGcmJjQmZS50eXBlKXRoaXMuYWRkTWF0Y2goZS5pbmRleCwtMik7ZWxzZXtjb25zdCBuPWthKGUsdCxvLCExLCExKTtudWxsIT09biYmdGhpcy5hZGRNYXRjaChlLmluZGV4LG4pfWVsc2UgdGhpcy5hZGRNYXRjaChlLmluZGV4LG4pfX1hZGRNYXRjaCh0LGUpe251bGw9PT10aGlzLm1hdGNoZXM/dGhpcy5tYXRjaGVzPVt0LGVdOnRoaXMubWF0Y2hlcy5wdXNoKHQsZSl9fWZ1bmN0aW9uIHFoKHQsZSl7Y29uc3Qgbj10LmxvY2FsTmFtZXM7aWYobnVsbCE9PW4pZm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kz0yKWlmKG5bdF09PT1lKXJldHVybiBuW3QrMV07cmV0dXJuIG51bGx9ZnVuY3Rpb24gWmgodCxlLG4sbyl7cmV0dXJuLTE9PT1uPyhmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIDExJnQudHlwZT9nZyh0LGUpOjQmdC50eXBlPyRnKHQsZSk6bnVsbH0pKGUsdCk6LTI9PT1uPyhmdW5jdGlvbiBhKHQsZSxuKXtyZXR1cm4gbj09PWhnP2dnKGUsdCk6bj09PVhnPyRnKGUsdCk6bj09PWVoPyhuZ0Rldk1vZGUmJmlhKGUsMTUpLHNoKGUsdCkpOnZvaWQobmdEZXZNb2RlJiZibihgU3BlY2lhbCB0b2tlbiB0byByZWFkIHNob3VsZCBiZSBvbmUgb2YgRWxlbWVudFJlZiwgVGVtcGxhdGVSZWYgb3IgVmlld0NvbnRhaW5lclJlZiBidXQgZ290ICR7R2Uobil9LmApKX0pKHQsZSxvKTpTYSh0LHRbMV0sbixlKX1mdW5jdGlvbiBYaCh0LGUsbixvKXtjb25zdCBpPWVbMTldLnF1ZXJpZXNbb107aWYobnVsbD09PWkubWF0Y2hlcyl7Y29uc3Qgbz10LmRhdGEsYT1uLm1hdGNoZXMscj1bXTtmb3IobGV0IHQ9MDt0PGEubGVuZ3RoO3QrPTIpe2NvbnN0IGk9YVt0XTtpPDA/ci5wdXNoKG51bGwpOihuZ0Rldk1vZGUmJl9uKG8saSksci5wdXNoKFpoKGUsb1tpXSxhW3QrMV0sbi5tZXRhZGF0YS5yZWFkKSkpfWkubWF0Y2hlcz1yfXJldHVybiBpLm1hdGNoZXN9ZnVuY3Rpb24gS2godCxlLG4sbyl7Y29uc3QgaT10LnF1ZXJpZXMuZ2V0QnlJbmRleChuKSxhPWkubWF0Y2hlcztpZihudWxsIT09YSl7Y29uc3Qgcj1YaCh0LGUsaSxuKTtmb3IobGV0IHQ9MDt0PGEubGVuZ3RoO3QrPTIpe2NvbnN0IG49YVt0XTtpZihuPjApby5wdXNoKHJbdC8yXSk7ZWxzZXtjb25zdCBpPWFbdCsxXSxyPWVbLW5dO25nRGV2TW9kZSYmRG8ocik7Zm9yKGxldCB0PWJvO3Q8ci5sZW5ndGg7dCsrKXtjb25zdCBlPXJbdF07ZVsxN109PT1lWzNdJiZLaChlWzFdLGUsaSxvKX1pZihudWxsIT09cls5XSl7Y29uc3QgdD1yWzldO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCBuPXRbZV07S2goblsxXSxuLGksbyl9fX19fXJldHVybiBvfWZ1bmN0aW9uIEpoKHQpe2NvbnN0IGU9ZmkoKSxuPWdpKCksbz1OaSgpO3ppKG8rMSk7Y29uc3QgaT1vYihuLG8pO2lmKHQuZGlydHkmJnNpKGUpPT09KDI9PSgyJmkubWV0YWRhdGEuZmxhZ3MpKSl7aWYobnVsbD09PWkubWF0Y2hlcyl0LnJlc2V0KFtdKTtlbHNle2NvbnN0IGE9aS5jcm9zc2VzTmdUZW1wbGF0ZT9LaChuLGUsbyxbXSk6WGgobixlLGksbyk7dC5yZXNldChhLGJnKSx0Lm5vdGlmeU9uQ2hhbmdlcygpfXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIFFoKHQsZSxuKXtuZ0Rldk1vZGUmJmFuKGUsIkV4cGVjdGluZyBmbGFncyIpO2NvbnN0IG89Z2koKTtvLmZpcnN0Q3JlYXRlUGFzcyYmKG5iKG8sbmV3IEdoKHQsZSxuKSwtMSksMj09KDImZSkmJihvLnN0YXRpY1ZpZXdRdWVyaWVzPSEwKSksZWIobyxmaSgpLGUpfWZ1bmN0aW9uICRoKHQsZSxuLG8pe25nRGV2TW9kZSYmYW4obiwiRXhwZWN0aW5nIGZsYWdzIik7Y29uc3QgaT1naSgpO2lmKGkuZmlyc3RDcmVhdGVQYXNzKXtjb25zdCBhPWJpKCk7bmIoaSxuZXcgR2goZSxuLG8pLGEuaW5kZXgpLChmdW5jdGlvbiBhKHQsZSl7Y29uc3Qgbj10LmNvbnRlbnRRdWVyaWVzfHwodC5jb250ZW50UXVlcmllcz1bXSk7ZSE9PShuLmxlbmd0aD9uW24ubGVuZ3RoLTFdOi0xKSYmbi5wdXNoKHQucXVlcmllcy5sZW5ndGgtMSxlKX0pKGksdCksMj09KDImbikmJihpLnN0YXRpY0NvbnRlbnRRdWVyaWVzPSEwKX1lYihpLGZpKCksbil9ZnVuY3Rpb24gdGIoKXtyZXR1cm4oZnVuY3Rpb24gdChlLG4pe3JldHVybiBuZ0Rldk1vZGUmJmhuKGVbMTldLCJMUXVlcmllcyBzaG91bGQgYmUgZGVmaW5lZCB3aGVuIHRyeWluZyB0byBsb2FkIGEgcXVlcnkiKSxuZ0Rldk1vZGUmJl9uKGVbMTldLnF1ZXJpZXMsbiksZVsxOV0ucXVlcmllc1tuXS5xdWVyeUxpc3R9KShmaSgpLE5pKCkpfWZ1bmN0aW9uIGViKHQsZSxuKXtjb25zdCBvPW5ldyBWaCg0PT0oNCZuKSk7cmQodCxlLG8sby5kZXN0cm95KSxudWxsPT09ZVsxOV0mJihlWzE5XT1uZXcgVWgpLGVbMTldLnF1ZXJpZXMucHVzaChuZXcgamgobykpfWZ1bmN0aW9uIG5iKHQsZSxuKXtudWxsPT09dC5xdWVyaWVzJiYodC5xdWVyaWVzPW5ldyBXaCksdC5xdWVyaWVzLnRyYWNrKG5ldyBZaChlLG4pKX1mdW5jdGlvbiBvYih0LGUpe3JldHVybiBuZ0Rldk1vZGUmJmhuKHQucXVlcmllcywiVFF1ZXJpZXMgbXVzdCBiZSBkZWZpbmVkIHRvIHJldHJpZXZlIGEgVFF1ZXJ5IiksdC5xdWVyaWVzLmdldEJ5SW5kZXgoZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGliKHQsZSl7cmV0dXJuICRnKHQsZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBhYj17Ism1ybVhdHRyaWJ1dGUiOmpwLCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUxIjpmdW5jdGlvbiB0KGUsbixvLGksYSxyKXtjb25zdCBzPWZpKCksbD1HcChzLG4sbyxpKTtpZihsIT09YWMpe2NvbnN0IHQ9WWkoKTtDZCh0LHMsZSxsLGEsciksbmdEZXZNb2RlJiZ6ZChnaSgpLmRhdGEsdCwiYXR0ci4iK2Usd2koKS0xLG4saSl9cmV0dXJuIHR9LCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUyIjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCl7Y29uc3QgYz1maSgpLGQ9V3AoYyxuLG8saSxhLHIpO2lmKGQhPT1hYyl7Y29uc3QgdD1ZaSgpO0NkKHQsYyxlLGQscyxsKSxuZ0Rldk1vZGUmJnpkKGdpKCkuZGF0YSx0LCJhdHRyLiIrZSx3aSgpLTIsbixpLHIpfXJldHVybiB0fSwiybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMyI6ZnVuY3Rpb24gdChlLG4sbyxpLGEscixzLGwsYyxkKXtjb25zdCBwPWZpKCksbT1ZcChwLG4sbyxpLGEscixzLGwpO2lmKG0hPT1hYyl7Y29uc3QgdD1ZaSgpO0NkKHQscCxlLG0sYyxkKSxuZ0Rldk1vZGUmJnpkKGdpKCkuZGF0YSx0LCJhdHRyLiIrZSx3aSgpLTMsbixpLHIsbCl9cmV0dXJuIHR9LCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU0IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtKXtjb25zdCB1PWZpKCksZj1xcCh1LG4sbyxpLGEscixzLGwsYyxkKTtpZihmIT09YWMpe2NvbnN0IHQ9WWkoKTtDZCh0LHUsZSxmLHAsbSksbmdEZXZNb2RlJiZ6ZChnaSgpLmRhdGEsdCwiYXR0ci4iK2Usd2koKS00LG4saSxyLGwsZCl9cmV0dXJuIHR9LCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU1IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZil7Y29uc3QgZz1maSgpLGg9WnAoZyxuLG8saSxhLHIscyxsLGMsZCxwLG0pO2lmKGghPT1hYyl7Y29uc3QgdD1ZaSgpO0NkKHQsZyxlLGgsdSxmKSxuZ0Rldk1vZGUmJnpkKGdpKCkuZGF0YSx0LCJhdHRyLiIrZSx3aSgpLTUsbixpLHIsbCxkLG0pfXJldHVybiB0fSwiybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNiI6ZnVuY3Rpb24gdChlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoKXtjb25zdCBiPWZpKCkseT1YcChiLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYpO2lmKHkhPT1hYyl7Y29uc3QgdD1ZaSgpO0NkKHQsYixlLHksZyxoKSxuZ0Rldk1vZGUmJnpkKGdpKCkuZGF0YSx0LCJhdHRyLiIrZSx3aSgpLTYsbixpLHIsbCxkLG0sZil9cmV0dXJuIHR9LCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU3IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYix5KXtjb25zdCBfPWZpKCksQz1LcChfLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoKTtpZihDIT09YWMpe2NvbnN0IHQ9WWkoKTtDZCh0LF8sZSxDLGIseSksbmdEZXZNb2RlJiZ6ZChnaSgpLmRhdGEsdCwiYXR0ci4iK2Usd2koKS03LG4saSxyLGwsZCxtLGYsaCl9cmV0dXJuIHR9LCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU4IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYix5LF8sQyl7Y29uc3QgTT1maSgpLHY9SnAoTSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCxiLHkpO2lmKHYhPT1hYyl7Y29uc3QgdD1ZaSgpO0NkKHQsTSxlLHYsXyxDKSxuZ0Rldk1vZGUmJnpkKGdpKCkuZGF0YSx0LCJhdHRyLiIrZSx3aSgpLTgsbixpLHIsbCxkLG0sZixoLHkpfXJldHVybiB0fSwiybXJtWF0dHJpYnV0ZUludGVycG9sYXRlViI6ZnVuY3Rpb24gdChlLG4sbyxpKXtjb25zdCBhPWZpKCkscj1VcChhLG4pO2lmKHIhPT1hYyl7Y29uc3QgdD1ZaSgpO2lmKENkKHQsYSxlLHIsbyxpKSxuZ0Rldk1vZGUpe2NvbnN0IG89W25bMF1dO2ZvcihsZXQgdD0yO3Q8bi5sZW5ndGg7dCs9MilvLnB1c2goblt0XSk7emQoZ2koKS5kYXRhLHQsImF0dHIuIitlLHdpKCktby5sZW5ndGgrMSwuLi5vKX19cmV0dXJuIHR9LCLJtcm1ZGVmaW5lQ29tcG9uZW50Ijp0bywiybXJtWRlZmluZURpcmVjdGl2ZSI6bG8sIsm1ybVkZWZpbmVJbmplY3RhYmxlIjpNbiwiybXJtWRlZmluZUluamVjdG9yIjp2biwiybXJtWRlZmluZU5nTW9kdWxlIjphbywiybXJtWRlZmluZVBpcGUiOmNvLCLJtcm1ZGlyZWN0aXZlSW5qZWN0IjpTbSwiybXJtWdldEluaGVyaXRlZEZhY3RvcnkiOkFhLCLJtcm1aW5qZWN0Ijp2ciwiybXJtWluamVjdEF0dHJpYnV0ZSI6TmEsIsm1ybVpbnZhbGlkRmFjdG9yeSI6ZnVuY3Rpb24gcmIoKXtjb25zdCB0PW5nRGV2TW9kZT8iVGhpcyBjb25zdHJ1Y3RvciB3YXMgbm90IGNvbXBhdGlibGUgd2l0aCBEZXBlbmRlbmN5IEluamVjdGlvbi4iOiJpbnZhbGlkIjt0aHJvdyBuZXcgRXJyb3IodCl9LCLJtcm1aW52YWxpZEZhY3RvcnlEZXAiOnhyLCLJtcm1dGVtcGxhdGVSZWZFeHRyYWN0b3IiOmliLCLJtcm1TmdPbkNoYW5nZXNGZWF0dXJlIjpCbywiybXJtVByb3ZpZGVyc0ZlYXR1cmUiOnBnLCLJtcm1Q29weURlZmluaXRpb25GZWF0dXJlIjpmdW5jdGlvbiBzYih0KXtsZXQgZSxuPXZwKHQudHlwZSk7ZT14byh0KT9uLsm1Y21wOm4uybVkaXI7Y29uc3Qgbz10O2Zvcihjb25zdCB0IG9mIFNwKW9bdF09ZVt0XTtpZih4byhlKSlmb3IoY29uc3QgdCBvZiBEcClvW3RdPWVbdF19LCLJtcm1SW5oZXJpdERlZmluaXRpb25GZWF0dXJlIjp4cCwiybXJtW5leHRDb250ZXh0IjpZbSwiybXJtW5hbWVzcGFjZUhUTUwiOlppLCLJtcm1bmFtZXNwYWNlTWF0aE1MIjpmdW5jdGlvbiBsYigpe21pLmxGcmFtZS5jdXJyZW50TmFtZXNwYWNlPVhvfSwiybXJtW5hbWVzcGFjZVNWRyI6cWksIsm1ybVlbmFibGVCaW5kaW5ncyI6ZnVuY3Rpb24gY2IoKXttaS5iaW5kaW5nc0VuYWJsZWQ9ITB9LCLJtcm1ZGlzYWJsZUJpbmRpbmdzIjpmdW5jdGlvbiBkYigpe21pLmJpbmRpbmdzRW5hYmxlZD0hMX0sIsm1ybVlbGVtZW50U3RhcnQiOlJtLCLJtcm1ZWxlbWVudEVuZCI6QW0sIsm1ybVlbGVtZW50IjpUbSwiybXJtWVsZW1lbnRDb250YWluZXJTdGFydCI6Tm0sIsm1ybVlbGVtZW50Q29udGFpbmVyRW5kIjp6bSwiybXJtWVsZW1lbnRDb250YWluZXIiOkltLCLJtcm1cHVyZUZ1bmN0aW9uMCI6Q2gsIsm1ybVwdXJlRnVuY3Rpb24xIjpNaCwiybXJtXB1cmVGdW5jdGlvbjIiOnZoLCLJtcm1cHVyZUZ1bmN0aW9uMyI6eGgsIsm1ybVwdXJlRnVuY3Rpb240IjpPaCwiybXJtXB1cmVGdW5jdGlvbjUiOlBoLCLJtcm1cHVyZUZ1bmN0aW9uNiI6ZnVuY3Rpb24gcGIodCxlLG4sbyxpLGEscixzLGwpe2NvbnN0IGM9UGkoKSt0LGQ9ZmkoKSxwPVZwKGQsYyxuLG8saSxhKTtyZXR1cm4gTHAoZCxjKzQscixzKXx8cD9JcChkLGMrNixsP2UuY2FsbChsLG4sbyxpLGEscixzKTplKG4sbyxpLGEscixzKSk6SHAoZCxjKzYpfSwiybXJtXB1cmVGdW5jdGlvbjciOmZ1bmN0aW9uIG1iKHQsZSxuLG8saSxhLHIscyxsLGMpe2NvbnN0IGQ9UGkoKSt0LHA9ZmkoKTtsZXQgbT1WcChwLGQsbixvLGksYSk7cmV0dXJuIEJwKHAsZCs0LHIscyxsKXx8bT9JcChwLGQrNyxjP2UuY2FsbChjLG4sbyxpLGEscixzLGwpOmUobixvLGksYSxyLHMsbCkpOkhwKHAsZCs3KX0sIsm1ybVwdXJlRnVuY3Rpb244IjpmdW5jdGlvbiB1Yih0LGUsbixvLGksYSxyLHMsbCxjLGQpe2NvbnN0IHA9UGkoKSt0LG09ZmkoKSx1PVZwKG0scCxuLG8saSxhKTtyZXR1cm4gVnAobSxwKzQscixzLGwsYyl8fHU/SXAobSxwKzgsZD9lLmNhbGwoZCxuLG8saSxhLHIscyxsLGMpOmUobixvLGksYSxyLHMsbCxjKSk6SHAobSxwKzgpfSwiybXJtXB1cmVGdW5jdGlvblYiOmZ1bmN0aW9uIGZiKHQsZSxuLG8pe3JldHVybiBSaChmaSgpLFBpKCksdCxlLG4sbyl9LCLJtcm1Z2V0Q3VycmVudFZpZXciOkhtLCLJtcm1cmVzdG9yZVZpZXciOmhpLCLJtcm1bGlzdGVuZXIiOlZtLCLJtcm1cHJvamVjdGlvbiI6WG0sIsm1ybVzeW50aGV0aWNIb3N0UHJvcGVydHkiOk51LCLJtcm1c3ludGhldGljSG9zdExpc3RlbmVyIjpqbSwiybXJtXBpcGVCaW5kMSI6VGgsIsm1ybVwaXBlQmluZDIiOk5oLCLJtcm1cGlwZUJpbmQzIjp6aCwiybXJtXBpcGVCaW5kNCI6ZnVuY3Rpb24gZ2IodCxlLG4sbyxpLGEpe2NvbnN0IHI9dCtnbyxzPWZpKCksbD1haShzLHIpO3JldHVybiBIaChzLEloKHMscik/RWgocyxQaSgpLGUsbC50cmFuc2Zvcm0sbixvLGksYSxsKTpsLnRyYW5zZm9ybShuLG8saSxhKSl9LCLJtcm1cGlwZUJpbmRWIjpmdW5jdGlvbiBoYih0LGUsbil7Y29uc3Qgbz10K2dvLGk9ZmkoKSxhPWFpKGksbyk7cmV0dXJuIEhoKGksSWgoaSxvKT9SaChpLFBpKCksZSxhLnRyYW5zZm9ybSxuLGEpOmEudHJhbnNmb3JtLmFwcGx5KGEsbikpfSwiybXJtXByb2plY3Rpb25EZWYiOlptLCLJtcm1aG9zdFByb3BlcnR5IjpUdSwiybXJtXByb3BlcnR5IjpEbSwiybXJtXByb3BlcnR5SW50ZXJwb2xhdGUiOkttLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTEiOkptLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTIiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyl7Y29uc3QgbD1maSgpLGM9V3AobCxuLG8saSxhLHIpO2lmKGMhPT1hYyl7Y29uc3QgdD1naSgpLG89WWkoKTtsZCh0LG8sbCxlLGMsbFsxMV0scywhMSksbmdEZXZNb2RlJiZ6ZCh0LmRhdGEsbyxlLHdpKCktMixuLGkscil9cmV0dXJuIHR9LCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTMiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMpe2NvbnN0IGQ9ZmkoKSxwPVlwKGQsbixvLGksYSxyLHMsbCk7aWYocCE9PWFjKXtjb25zdCB0PWdpKCksbz1ZaSgpO2xkKHQsbyxkLGUscCxkWzExXSxjLCExKSxuZ0Rldk1vZGUmJnpkKHQuZGF0YSxvLGUsd2koKS0zLG4saSxyLGwpfXJldHVybiB0fSwiybXJtXByb3BlcnR5SW50ZXJwb2xhdGU0IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCl7Y29uc3QgbT1maSgpLHU9cXAobSxuLG8saSxhLHIscyxsLGMsZCk7aWYodSE9PWFjKXtjb25zdCB0PWdpKCksbz1ZaSgpO2xkKHQsbyxtLGUsdSxtWzExXSxwLCExKSxuZ0Rldk1vZGUmJnpkKHQuZGF0YSxvLGUsd2koKS00LG4saSxyLGwsZCl9cmV0dXJuIHR9LCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTUiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSl7Y29uc3QgZj1maSgpLGc9WnAoZixuLG8saSxhLHIscyxsLGMsZCxwLG0pO2lmKGchPT1hYyl7Y29uc3QgdD1naSgpLG89WWkoKTtsZCh0LG8sZixlLGcsZlsxMV0sdSwhMSksbmdEZXZNb2RlJiZ6ZCh0LmRhdGEsbyxlLHdpKCktNSxuLGkscixsLGQsbSl9cmV0dXJuIHR9LCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTYiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcpe2NvbnN0IGg9ZmkoKSxiPVhwKGgsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZik7aWYoYiE9PWFjKXtjb25zdCB0PWdpKCksbz1ZaSgpO2xkKHQsbyxoLGUsYixoWzExXSxnLCExKSxuZ0Rldk1vZGUmJnpkKHQuZGF0YSxvLGUsd2koKS02LG4saSxyLGwsZCxtLGYpfXJldHVybiB0fSwiybXJtXByb3BlcnR5SW50ZXJwb2xhdGU3IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYil7Y29uc3QgeT1maSgpLF89S3AoeSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCk7aWYoXyE9PWFjKXtjb25zdCB0PWdpKCksbz1ZaSgpO2xkKHQsbyx5LGUsXyx5WzExXSxiLCExKSxuZ0Rldk1vZGUmJnpkKHQuZGF0YSxvLGUsd2koKS03LG4saSxyLGwsZCxtLGYsaCl9cmV0dXJuIHR9LCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTgiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCxiLHksXyl7Y29uc3QgQz1maSgpLE09SnAoQyxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCxiLHkpO2lmKE0hPT1hYyl7Y29uc3QgdD1naSgpLG89WWkoKTtsZCh0LG8sQyxlLE0sQ1sxMV0sXywhMSksbmdEZXZNb2RlJiZ6ZCh0LmRhdGEsbyxlLHdpKCktOCxuLGkscixsLGQsbSxmLGgseSl9cmV0dXJuIHR9LCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZVYiOmZ1bmN0aW9uIHQoZSxuLG8pe2NvbnN0IGk9ZmkoKSxhPVVwKGksbik7aWYoYSE9PWFjKXtjb25zdCB0PWdpKCkscj1ZaSgpO2lmKGxkKHQscixpLGUsYSxpWzExXSxvLCExKSxuZ0Rldk1vZGUpe2NvbnN0IG89W25bMF1dO2ZvcihsZXQgdD0yO3Q8bi5sZW5ndGg7dCs9MilvLnB1c2goblt0XSk7emQodC5kYXRhLHIsZSx3aSgpLW8ubGVuZ3RoKzEsLi4ubyl9fXJldHVybiB0fSwiybXJtXBpcGUiOkFoLCLJtcm1cXVlcnlSZWZyZXNoIjpKaCwiybXJtXZpZXdRdWVyeSI6UWgsIsm1ybVsb2FkUXVlcnkiOnRiLCLJtcm1Y29udGVudFF1ZXJ5IjokaCwiybXJtXJlZmVyZW5jZSI6JHAsIsm1ybVjbGFzc01hcCI6ZnUsIsm1ybVjbGFzc01hcEludGVycG9sYXRlMSI6QXUsIsm1ybVjbGFzc01hcEludGVycG9sYXRlMiI6ZnVuY3Rpb24gYmIodCxlLG4sbyxpKXtidShhcixndSxXcChmaSgpLHQsZSxuLG8saSksITApfSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUzIjpmdW5jdGlvbiB5Yih0LGUsbixvLGksYSxyKXtidShhcixndSxZcChmaSgpLHQsZSxuLG8saSxhLHIpLCEwKX0sIsm1ybVjbGFzc01hcEludGVycG9sYXRlNCI6ZnVuY3Rpb24gX2IodCxlLG4sbyxpLGEscixzLGwpe2J1KGFyLGd1LHFwKGZpKCksdCxlLG4sbyxpLGEscixzLGwpLCEwKX0sIsm1ybVjbGFzc01hcEludGVycG9sYXRlNSI6ZnVuY3Rpb24gQ2IodCxlLG4sbyxpLGEscixzLGwsYyxkKXtidShhcixndSxacChmaSgpLHQsZSxuLG8saSxhLHIscyxsLGMsZCksITApfSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU2IjpmdW5jdGlvbiBNYih0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtKXtidShhcixndSxYcChmaSgpLHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0pLCEwKX0sIsm1ybVjbGFzc01hcEludGVycG9sYXRlNyI6ZnVuY3Rpb24gdmIodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYpe2J1KGFyLGd1LEtwKGZpKCksdCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYpLCEwKX0sIsm1ybVjbGFzc01hcEludGVycG9sYXRlOCI6ZnVuY3Rpb24geGIodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoKXtidShhcixndSxKcChmaSgpLHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCksITApfSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGVWIjpmdW5jdGlvbiBPYih0KXtidShhcixndSxVcChmaSgpLHQpLCEwKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovLCLJtcm1c3R5bGVNYXAiOm11LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTEiOmZ1bmN0aW9uIFBiKHQsZSxuKXttdShHcChmaSgpLHQsZSxuKSl9LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTIiOmZ1bmN0aW9uIHdiKHQsZSxuLG8saSl7bXUoV3AoZmkoKSx0LGUsbixvLGkpKX0sIsm1ybVzdHlsZU1hcEludGVycG9sYXRlMyI6ZnVuY3Rpb24ga2IodCxlLG4sbyxpLGEscil7bXUoWXAoZmkoKSx0LGUsbixvLGksYSxyKSl9LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTQiOmZ1bmN0aW9uIFNiKHQsZSxuLG8saSxhLHIscyxsKXttdShxcChmaSgpLHQsZSxuLG8saSxhLHIscyxsKSl9LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTUiOmZ1bmN0aW9uIERiKHQsZSxuLG8saSxhLHIscyxsLGMsZCl7bXUoWnAoZmkoKSx0LGUsbixvLGksYSxyLHMsbCxjLGQpKX0sIsm1ybVzdHlsZU1hcEludGVycG9sYXRlNiI6ZnVuY3Rpb24gRWIodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSl7bXUoWHAoZmkoKSx0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtKSl9LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTciOmZ1bmN0aW9uIFJiKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmKXttdShLcChmaSgpLHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmKSl9LCLJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTgiOmZ1bmN0aW9uIEFiKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCl7bXUoSnAoZmkoKSx0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgpKX0sIsm1ybVzdHlsZU1hcEludGVycG9sYXRlViI6ZnVuY3Rpb24gVGIodCl7bXUoVXAoZmkoKSx0KSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLywiybXJtXN0eWxlUHJvcCI6ZHUsIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTEiOmZ1bmN0aW9uIHQoZSxuLG8saSxhKXtyZXR1cm4gaHUoZSxHcChmaSgpLG4sbyxpKSxhLCExKSx0fSwiybXJtXN0eWxlUHJvcEludGVycG9sYXRlMiI6ZnVuY3Rpb24gdChlLG4sbyxpLGEscixzKXtyZXR1cm4gaHUoZSxXcChmaSgpLG4sbyxpLGEscikscywhMSksdH0sIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTMiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMpe3JldHVybiBodShlLFlwKGZpKCksbixvLGksYSxyLHMsbCksYywhMSksdH0sIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTQiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwKXtyZXR1cm4gaHUoZSxxcChmaSgpLG4sbyxpLGEscixzLGwsYyxkKSxwLCExKSx0fSwiybXJtXN0eWxlUHJvcEludGVycG9sYXRlNSI6ZnVuY3Rpb24gdChlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1KXtyZXR1cm4gaHUoZSxacChmaSgpLG4sbyxpLGEscixzLGwsYyxkLHAsbSksdSwhMSksdH0sIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTYiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcpe3JldHVybiBodShlLFhwKGZpKCksbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZiksZywhMSksdH0sIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTciOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSxmLGcsaCxiKXtyZXR1cm4gaHUoZSxLcChmaSgpLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoKSxiLCExKSx0fSwiybXJtXN0eWxlUHJvcEludGVycG9sYXRlOCI6ZnVuY3Rpb24gdChlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoLGIseSxfKXtyZXR1cm4gaHUoZSxKcChmaSgpLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoLGIseSksXywhMSksdH0sIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZVYiOmZ1bmN0aW9uIHQoZSxuLG8pe3JldHVybiBodShlLFVwKGZpKCksbiksbywhMSksdH0sIsm1ybVjbGFzc1Byb3AiOnB1LCLJtcm1YWR2YW5jZSI6cmMsIsm1ybV0ZW1wbGF0ZSI6UXAsIsm1ybV0ZXh0IjprdSwiybXJtXRleHRJbnRlcnBvbGF0ZSI6U3UsIsm1ybV0ZXh0SW50ZXJwb2xhdGUxIjpEdSwiybXJtXRleHRJbnRlcnBvbGF0ZTIiOkV1LCLJtcm1dGV4dEludGVycG9sYXRlMyI6UnUsIsm1ybV0ZXh0SW50ZXJwb2xhdGU0IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjKXtjb25zdCBkPWZpKCkscD1xcChkLGUsbixvLGksYSxyLHMsbCxjKTtyZXR1cm4gcCE9PWFjJiZqZChkLEdpKCkscCksdH0sIsm1ybV0ZXh0SW50ZXJwb2xhdGU1IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCl7Y29uc3QgbT1maSgpLHU9WnAobSxlLG4sbyxpLGEscixzLGwsYyxkLHApO3JldHVybiB1IT09YWMmJmpkKG0sR2koKSx1KSx0fSwiybXJtXRleHRJbnRlcnBvbGF0ZTYiOmZ1bmN0aW9uIHQoZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sdSl7Y29uc3QgZj1maSgpLGc9WHAoZixlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1KTtyZXR1cm4gZyE9PWFjJiZqZChmLEdpKCksZyksdH0sIsm1ybV0ZXh0SW50ZXJwb2xhdGU3IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnKXtjb25zdCBoPWZpKCksYj1LcChoLGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnKTtyZXR1cm4gYiE9PWFjJiZqZChoLEdpKCksYiksdH0sIsm1ybV0ZXh0SW50ZXJwb2xhdGU4IjpmdW5jdGlvbiB0KGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnLGgsYil7Y29uc3QgeT1maSgpLF89SnAoeSxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoLGIpO3JldHVybiBfIT09YWMmJmpkKHksR2koKSxfKSx0fSwiybXJtXRleHRJbnRlcnBvbGF0ZVYiOmZ1bmN0aW9uIHQoZSl7Y29uc3Qgbj1maSgpLG89VXAobixlKTtyZXR1cm4gbyE9PWFjJiZqZChuLEdpKCksbyksdH0sIsm1ybVpMThuIjp0ZywiybXJtWkxOG5BdHRyaWJ1dGVzIjpmdW5jdGlvbiBOYih0LGUpe2NvbnN0IG49Z2koKTtuZ0Rldk1vZGUmJmhuKG4sInRWaWV3IHNob3VsZCBiZSBkZWZpbmVkIik7Y29uc3Qgbz1jaShuLmNvbnN0cyxlKTshKGZ1bmN0aW9uIGkodCxlLG4pe2NvbnN0IG89YmkoKS5pbmRleCxpPVtdO2lmKG5nRGV2TW9kZSYmYmMoaSxfZiksdC5maXJzdENyZWF0ZVBhc3MmJm51bGw9PT10LmRhdGFbZV0pe2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCs9Mil7Y29uc3QgZT1uW3RdLGE9blt0KzFdO2lmKCIiIT09YSl7aWYoT2YudGVzdChhKSl0aHJvdyBuZXcgRXJyb3IoYElDVSBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZCBpbiBhdHRyaWJ1dGVzLiBNZXNzYWdlOiAiJHthfSIuYCk7QWYoaSxhLG8sZSxUZihpKSxudWxsKX19dC5kYXRhW2VdPWl9fSkobix0K2dvLG8pfSwiybXJtWkxOG5FeHAiOmVnLCLJtcm1aTE4blN0YXJ0IjpRZiwiybXJtWkxOG5FbmQiOiRmLCLJtcm1aTE4bkFwcGx5IjpuZywiybXJtWkxOG5Qb3N0cHJvY2VzcyI6b2csIsm1ybVyZXNvbHZlV2luZG93IjpvbCwiybXJtXJlc29sdmVEb2N1bWVudCI6aWwsIsm1ybVyZXNvbHZlQm9keSI6ZnVuY3Rpb24gemIodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudC5ib2R5fSwiybXJtXNldENvbXBvbmVudFNjb3BlIjplbywiybXJtXNldE5nTW9kdWxlU2NvcGUiOnJvLCLJtcm1c2FuaXRpemVIdG1sIjoKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIEliKHQpe2NvbnN0IGU9enMoKTtyZXR1cm4gZT9XcihlLnNhbml0aXplKEFzLkhUTUwsdCl8fCIiKTplcyh0LCJIVE1MIik/V3IodHModCkpOkVzKEpvKCksJGUodCkpfSwiybXJtXNhbml0aXplU3R5bGUiOmZ1bmN0aW9uIEhiKHQpe2NvbnN0IGU9enMoKTtyZXR1cm4gZT9lLnNhbml0aXplKEFzLlNUWUxFLHQpfHwiIjplcyh0LCJTdHlsZSIpP3RzKHQpOiRlKHQpfSwiybXJtXNhbml0aXplUmVzb3VyY2VVcmwiOk5zLCLJtcm1c2FuaXRpemVTY3JpcHQiOmZ1bmN0aW9uIEZiKHQpe2NvbnN0IGU9enMoKTtpZihlKXJldHVybiBZcihlLnNhbml0aXplKEFzLlNDUklQVCx0KXx8IiIpO2lmKGVzKHQsIlNjcmlwdCIpKXJldHVybiBZcih0cyh0KSk7dGhyb3cgbmV3IEVycm9yKCJ1bnNhZmUgdmFsdWUgdXNlZCBpbiBhIHNjcmlwdCBjb250ZXh0Iil9LCLJtcm1c2FuaXRpemVVcmwiOlRzLCLJtcm1c2FuaXRpemVVcmxPclJlc291cmNlVXJsIjpmdW5jdGlvbiBMYih0LGUsbil7cmV0dXJuKGZ1bmN0aW9uIG8odCxlKXtyZXR1cm4ic3JjIj09PWUmJigiZW1iZWQiPT09dHx8ImZyYW1lIj09PXR8fCJpZnJhbWUiPT09dHx8Im1lZGlhIj09PXR8fCJzY3JpcHQiPT09dCl8fCJocmVmIj09PWUmJigiYmFzZSI9PT10fHwibGluayI9PT10KT9OczpUc30pKGUsbikodCl9LCLJtcm1dHJ1c3RDb25zdGFudEh0bWwiOmZ1bmN0aW9uIEJiKHQpe2lmKG5nRGV2TW9kZSYmKCFBcnJheS5pc0FycmF5KHQpfHwhQXJyYXkuaXNBcnJheSh0LnJhdyl8fDEhPT10Lmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGludGVycG9sYXRpb24gaW4gdHJ1c3RlZCBIVE1MIGNvbnN0YW50OiAke3Quam9pbigiPyIpfWApO3JldHVybiBVcih0WzBdKX0sIsm1ybV0cnVzdENvbnN0YW50UmVzb3VyY2VVcmwiOmZ1bmN0aW9uIFZiKHQpe2lmKG5nRGV2TW9kZSYmKCFBcnJheS5pc0FycmF5KHQpfHwhQXJyYXkuaXNBcnJheSh0LnJhdyl8fDEhPT10Lmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGludGVycG9sYXRpb24gaW4gdHJ1c3RlZCBVUkwgY29uc3RhbnQ6ICR7dC5qb2luKCI/Iil9YCk7cmV0dXJuKGZ1bmN0aW9uIGUodCl7dmFyIGU7cmV0dXJuKG51bGw9PT0oZT1qcigpKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jcmVhdGVTY3JpcHRVUkwodCkpfHx0fSkodFswXSl9LGZvcndhcmRSZWY6cWUscmVzb2x2ZUZvcndhcmRSZWY6WmV9O2xldCBqYj1udWxsOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgVWI9W107bGV0IEdiPSExO2Z1bmN0aW9uIFdiKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QuZXZlcnkoV2IpOiEhWmUodCl9ZnVuY3Rpb24gWWIodCxlLG4pe2lmKEtiLmdldCh0KSlyZXR1cm47bGV0IG87aWYoS2Iuc2V0KHQsITApLHQ9WmUodCksbil7aWYobz1mbyh0KSwhbyl0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdmFsdWUgJyR7dC5uYW1lfScgaW1wb3J0ZWQgYnkgdGhlIG1vZHVsZSAnJHtuLm5hbWV9Jy4gUGxlYXNlIGFkZCBhbiBATmdNb2R1bGUgYW5ub3RhdGlvbi5gKX1lbHNlIG89Zm8odCwhMCk7Y29uc3QgaT1bXSxhPXJsKG8uZGVjbGFyYXRpb25zKSxyPXJsKG8uaW1wb3J0cyk7dHIocikubWFwKHFiKS5mb3JFYWNoKChlPT57aChlLHQpLFliKGUsITEsdCl9KSk7Y29uc3Qgcz1ybChvLmV4cG9ydHMpO2EuZm9yRWFjaCgoZnVuY3Rpb24gbChlKXtwbyhlPVplKGUpKXx8bW8oZSl8fHVvKGUpfHxpLnB1c2goYFVuZXhwZWN0ZWQgdmFsdWUgJyR7dG4oZSl9JyBkZWNsYXJlZCBieSB0aGUgbW9kdWxlICcke3RuKHQpfScuIFBsZWFzZSBhZGQgYSBAUGlwZS9ARGlyZWN0aXZlL0BDb21wb25lbnQgYW5ub3RhdGlvbi5gKX0pKSxhLmZvckVhY2goKGZ1bmN0aW9uIGModCl7Y29uc3QgZT1tbyh0PVplKHQpKTshcG8odCkmJmUmJjA9PWUuc2VsZWN0b3JzLmxlbmd0aCYmaS5wdXNoKGBEaXJlY3RpdmUgJHt0bih0KX0gaGFzIG5vIHNlbGVjdG9yLCBwbGVhc2UgYWRkIGl0IWApfSkpO2NvbnN0IGQ9Wy4uLmEubWFwKFplKSwuLi50cihyLm1hcChKYikpLm1hcChaZSldO3MuZm9yRWFjaCgoZnVuY3Rpb24gcChlKXtjb25zdCBuPShwbyhlPVplKGUpKT8iY29tcG9uZW50IjptbyhlKSYmImRpcmVjdGl2ZSIpfHx1byhlKSYmInBpcGUiO24mJi0xPT09ZC5sYXN0SW5kZXhPZihlKSYmaS5wdXNoKGBDYW4ndCBleHBvcnQgJHtufSAke3RuKGUpfSBmcm9tICR7dG4odCl9IGFzIGl0IHdhcyBuZWl0aGVyIGRlY2xhcmVkIG5vciBpbXBvcnRlZCFgKX0pKSxhLmZvckVhY2goKG49PihmdW5jdGlvbiBvKGUsbil7ZT1aZShlKTtjb25zdCBvPVhiLmdldChlKTtpZihvJiZvIT09dCl7aWYoIW4pe2NvbnN0IG49W28sdF0ubWFwKHRuKS5zb3J0KCk7aS5wdXNoKGBUeXBlICR7dG4oZSl9IGlzIHBhcnQgb2YgdGhlIGRlY2xhcmF0aW9ucyBvZiAyIG1vZHVsZXM6ICR7blswXX0gYW5kICR7blsxXX0hIFBsZWFzZSBjb25zaWRlciBtb3ZpbmcgJHt0bihlKX0gdG8gYSBoaWdoZXIgbW9kdWxlIHRoYXQgaW1wb3J0cyAke25bMF19IGFuZCAke25bMV19LiBZb3UgY2FuIGFsc28gY3JlYXRlIGEgbmV3IE5nTW9kdWxlIHRoYXQgZXhwb3J0cyBhbmQgaW5jbHVkZXMgJHt0bihlKX0gdGhlbiBpbXBvcnQgdGhhdCBOZ01vZHVsZSBpbiAke25bMF19IGFuZCAke25bMV19LmApfX1lbHNlIFhiLnNldChlLHQpfSkobixlKSkpLGEuZm9yRWFjaCgoZnVuY3Rpb24gbSh0KXtpZihwbyh0PVplKHQpKSl7Y29uc3QgZT1aYih0LCJDb21wb25lbnQiKTtlJiZlLmVudHJ5Q29tcG9uZW50cyYmZXIoZS5lbnRyeUNvbXBvbmVudHMsZyl9fSkpO2NvbnN0IHU9WmIodCwiTmdNb2R1bGUiKTtpZih1JiYodS5pbXBvcnRzJiZ0cih1LmltcG9ydHMpLm1hcChxYikuZm9yRWFjaCgoZT0+e2goZSx0KSxZYihlLCExLHQpfSkpLHUuYm9vdHN0cmFwJiZlcih1LmJvb3RzdHJhcCwoZnVuY3Rpb24gZih0KXtwbyh0PVplKHQpKXx8aS5wdXNoKGAke3RuKHQpfSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBlbnRyeSBjb21wb25lbnQuYCl9KSksdS5ib290c3RyYXAmJmVyKHUuYm9vdHN0cmFwLGcpLHUuZW50cnlDb21wb25lbnRzJiZlcih1LmVudHJ5Q29tcG9uZW50cyxnKSksaS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGkuam9pbigiXG4iKSk7ZnVuY3Rpb24gZyh0KXt0PVplKHQpLFhiLmdldCh0KXx8aS5wdXNoKGBDb21wb25lbnQgJHt0bih0KX0gaXMgbm90IHBhcnQgb2YgYW55IE5nTW9kdWxlIG9yIHRoZSBtb2R1bGUgaGFzIG5vdCBiZWVuIGltcG9ydGVkIGludG8geW91ciBtb2R1bGUuYCl9ZnVuY3Rpb24gaCh0LGUpe2lmKHBvKHQ9WmUodCkpfHxtbyh0KSl0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZGlyZWN0aXZlICcke3QubmFtZX0nIGltcG9ydGVkIGJ5IHRoZSBtb2R1bGUgJyR7ZS5uYW1lfScuIFBsZWFzZSBhZGQgYW4gQE5nTW9kdWxlIGFubm90YXRpb24uYCk7aWYodW8odCkpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHBpcGUgJyR7dC5uYW1lfScgaW1wb3J0ZWQgYnkgdGhlIG1vZHVsZSAnJHtlLm5hbWV9Jy4gUGxlYXNlIGFkZCBhbiBATmdNb2R1bGUgYW5ub3RhdGlvbi5gKX19ZnVuY3Rpb24gcWIodCl7cmV0dXJuKHQ9WmUodCkpLm5nTW9kdWxlfHx0fWZ1bmN0aW9uIFpiKHQsZSl7bGV0IG49bnVsbDtyZXR1cm4gbyh0Ll9fYW5ub3RhdGlvbnNfXyksbyh0LmRlY29yYXRvcnMpLG47ZnVuY3Rpb24gbyh0KXt0JiZ0LmZvckVhY2goaSl9ZnVuY3Rpb24gaSh0KXtufHwoT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpLm5nTWV0YWRhdGFOYW1lPT1lP249dDp0LnR5cGUmJk9iamVjdC5nZXRQcm90b3R5cGVPZih0LnR5cGUpLm5nTWV0YWRhdGFOYW1lPT1lJiYobj10LmFyZ3NbMF0pKX19bGV0IFhiPW5ldyBXZWFrTWFwLEtiPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEpiKHQpe3JldHVyblsuLi50cihybChmbyh0PVplKHQpLCEwKS5leHBvcnRzKS5tYXAoKHQ9PmZvKHQpPyhZYih0LCExKSxKYih0KSk6dCkpKV19ZnVuY3Rpb24gUWIodCxlKXtjb25zdCBuPXRyKGUuZGVjbGFyYXRpb25zfHxXbiksbz10eSh0KTtuLmZvckVhY2goKGU9PntlLmhhc093blByb3BlcnR5KFluKT8kYihwbyhlKSxvKTplLmhhc093blByb3BlcnR5KHFuKXx8ZS5oYXNPd25Qcm9wZXJ0eShabil8fChlLm5nU2VsZWN0b3JTY29wZT10KX0pKX1mdW5jdGlvbiAkYih0LGUpe3QuZGlyZWN0aXZlRGVmcz0oKT0+QXJyYXkuZnJvbShlLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMpLm1hcCgodD0+dC5oYXNPd25Qcm9wZXJ0eShZbik/cG8odCk6bW8odCkpKS5maWx0ZXIoKHQ9PiEhdCkpLHQucGlwZURlZnM9KCk9PkFycmF5LmZyb20oZS5jb21waWxhdGlvbi5waXBlcykubWFwKCh0PT51byh0KSkpLHQuc2NoZW1hcz1lLnNjaGVtYXMsdC50Vmlldz1udWxsfWZ1bmN0aW9uIHR5KHQpe2lmKCFueSh0KSl0aHJvdyBuZXcgRXJyb3IoYCR7dC5uYW1lfSBkb2VzIG5vdCBoYXZlIGEgbW9kdWxlIGRlZiAoybVtb2QgcHJvcGVydHkpYCk7Y29uc3QgZT1mbyh0KTtpZihudWxsIT09ZS50cmFuc2l0aXZlQ29tcGlsZVNjb3BlcylyZXR1cm4gZS50cmFuc2l0aXZlQ29tcGlsZVNjb3Blcztjb25zdCBuPXtzY2hlbWFzOmUuc2NoZW1hc3x8bnVsbCxjb21waWxhdGlvbjp7ZGlyZWN0aXZlczpuZXcgU2V0LHBpcGVzOm5ldyBTZXR9LGV4cG9ydGVkOntkaXJlY3RpdmVzOm5ldyBTZXQscGlwZXM6bmV3IFNldH19O3JldHVybiBybChlLmltcG9ydHMpLmZvckVhY2goKHQ9Pntjb25zdCBlPXQ7aWYoIW55KGUpKXRocm93IG5ldyBFcnJvcihgSW1wb3J0aW5nICR7ZS5uYW1lfSB3aGljaCBkb2VzIG5vdCBoYXZlIGEgybVtb2QgcHJvcGVydHlgKTtjb25zdCBvPXR5KGUpO28uZXhwb3J0ZWQuZGlyZWN0aXZlcy5mb3JFYWNoKCh0PT5uLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMuYWRkKHQpKSksby5leHBvcnRlZC5waXBlcy5mb3JFYWNoKCh0PT5uLmNvbXBpbGF0aW9uLnBpcGVzLmFkZCh0KSkpfSkpLHJsKGUuZGVjbGFyYXRpb25zKS5mb3JFYWNoKCh0PT57dW8odCk/bi5jb21waWxhdGlvbi5waXBlcy5hZGQodCk6bi5jb21waWxhdGlvbi5kaXJlY3RpdmVzLmFkZCh0KX0pKSxybChlLmV4cG9ydHMpLmZvckVhY2goKHQ9Pntjb25zdCBlPXQ7aWYobnkoZSkpe2NvbnN0IHQ9dHkoZSk7dC5leHBvcnRlZC5kaXJlY3RpdmVzLmZvckVhY2goKHQ9PntuLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMuYWRkKHQpLG4uZXhwb3J0ZWQuZGlyZWN0aXZlcy5hZGQodCl9KSksdC5leHBvcnRlZC5waXBlcy5mb3JFYWNoKCh0PT57bi5jb21waWxhdGlvbi5waXBlcy5hZGQodCksbi5leHBvcnRlZC5waXBlcy5hZGQodCl9KSl9ZWxzZSB1byhlKT9uLmV4cG9ydGVkLnBpcGVzLmFkZChlKTpuLmV4cG9ydGVkLmRpcmVjdGl2ZXMuYWRkKGUpfSkpLGUudHJhbnNpdGl2ZUNvbXBpbGVTY29wZXM9bixufWZ1bmN0aW9uIGV5KHQpe3JldHVybihmdW5jdGlvbiBlKHQpe3JldHVybiB2b2lkIDAhPT10Lm5nTW9kdWxlfSkodCk/dC5uZ01vZHVsZTp0fWZ1bmN0aW9uIG55KHQpe3JldHVybiEhZm8odCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2xldCBveT0wO2Z1bmN0aW9uIGl5KHQsZSl7bGV0IG49bnVsbDtyeSh0LGV8fHt9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxxbix7Z2V0OigpPT57aWYobnVsbD09PW4pe2NvbnN0IG89YXkodCxlfHx7fSksaT1KYSh7dXNhZ2U6MCxraW5kOiJkaXJlY3RpdmUiLHR5cGU6dH0pO249aS5jb21waWxlRGlyZWN0aXZlKGFiLG8uc291cmNlTWFwVXJsLG8ubWV0YWRhdGEpfXJldHVybiBufSxjb25maWd1cmFibGU6ISFuZ0Rldk1vZGV9KX1mdW5jdGlvbiBheSh0LGUpe2NvbnN0IG49dCYmdC5uYW1lLG89YG5nOi8vLyR7bn0vybVkaXIuanNgLGk9SmEoe3VzYWdlOjAsa2luZDoiZGlyZWN0aXZlIix0eXBlOnR9KSxhPWx5KHQsZSk7cmV0dXJuIGEudHlwZVNvdXJjZVNwYW49aS5jcmVhdGVQYXJzZVNvdXJjZVNwYW4oIkRpcmVjdGl2ZSIsbixvKSxhLnVzZXNJbmhlcml0YW5jZSYmY3kodCkse21ldGFkYXRhOmEsc291cmNlTWFwVXJsOm99fWZ1bmN0aW9uIHJ5KHQsZSl7bGV0IG49bnVsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxKbix7Z2V0OigpPT57aWYobnVsbD09PW4pe2NvbnN0IG89YXkodCxlKSxpPUphKHt1c2FnZTowLGtpbmQ6ImRpcmVjdGl2ZSIsdHlwZTp0fSk7bj1pLmNvbXBpbGVGYWN0b3J5KGFiLGBuZzovLy8ke3QubmFtZX0vybVmYWMuanNgLHtuYW1lOm8ubWV0YWRhdGEubmFtZSx0eXBlOm8ubWV0YWRhdGEudHlwZSx0eXBlQXJndW1lbnRDb3VudDowLGRlcHM6TnIodCksdGFyZ2V0OmkuRmFjdG9yeVRhcmdldC5EaXJlY3RpdmV9KX1yZXR1cm4gbn0sY29uZmlndXJhYmxlOiEhbmdEZXZNb2RlfSl9ZnVuY3Rpb24gc3kodCl7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZih0LnByb3RvdHlwZSk9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIGx5KHQsZSl7Y29uc3Qgbj1UcigpLG89bi5vd25Qcm9wTWV0YWRhdGEodCk7cmV0dXJue25hbWU6dC5uYW1lLHR5cGU6dCxzZWxlY3Rvcjp2b2lkIDAhPT1lLnNlbGVjdG9yP2Uuc2VsZWN0b3I6bnVsbCxob3N0OmUuaG9zdHx8R24scHJvcE1ldGFkYXRhOm8saW5wdXRzOmUuaW5wdXRzfHxXbixvdXRwdXRzOmUub3V0cHV0c3x8V24scXVlcmllczpteSh0LG8sdXkpLGxpZmVjeWNsZTp7dXNlc09uQ2hhbmdlczpuLmhhc0xpZmVjeWNsZUhvb2sodCwibmdPbkNoYW5nZXMiKX0sdHlwZVNvdXJjZVNwYW46bnVsbCx1c2VzSW5oZXJpdGFuY2U6IXN5KHQpLGV4cG9ydEFzOihpPWUuZXhwb3J0QXMsdm9pZCAwPT09aT9udWxsOmh5KGkpKSxwcm92aWRlcnM6ZS5wcm92aWRlcnN8fG51bGwsdmlld1F1ZXJpZXM6bXkodCxvLGZ5KX07dmFyIGl9ZnVuY3Rpb24gY3kodCl7Y29uc3QgZT1PYmplY3QucHJvdG90eXBlO2xldCBuPU9iamVjdC5nZXRQcm90b3R5cGVPZih0LnByb3RvdHlwZSkuY29uc3RydWN0b3I7Zm9yKDtuJiZuIT09ZTspbW8obil8fHBvKG4pfHwheXkobil8fGl5KG4sbnVsbCksbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobil9ZnVuY3Rpb24gZHkodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2h5KHQpOlplKHQpfWZ1bmN0aW9uIHB5KHQsZSl7cmV0dXJue3Byb3BlcnR5TmFtZTp0LHByZWRpY2F0ZTpkeShlLnNlbGVjdG9yKSxkZXNjZW5kYW50czplLmRlc2NlbmRhbnRzLGZpcnN0OmUuZmlyc3QscmVhZDplLnJlYWQ/ZS5yZWFkOm51bGwsc3RhdGljOiEhZS5zdGF0aWMsZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6ISFlLmVtaXREaXN0aW5jdENoYW5nZXNPbmx5fX1mdW5jdGlvbiBteSh0LGUsbil7Y29uc3Qgbz1bXTtmb3IoY29uc3QgaSBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkoaSkpe2NvbnN0IGE9ZVtpXTthLmZvckVhY2goKGU9PntpZihuKGUpKXtpZighZS5zZWxlY3Rvcil0aHJvdyBuZXcgRXJyb3IoYENhbid0IGNvbnN0cnVjdCBhIHF1ZXJ5IGZvciB0aGUgcHJvcGVydHkgIiR7aX0iIG9mICIke3RuKHQpfSIgc2luY2UgdGhlIHF1ZXJ5IHNlbGVjdG9yIHdhc24ndCBkZWZpbmVkLmApO2lmKGEuc29tZShneSkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY29tYmluZSBASW5wdXQgZGVjb3JhdG9ycyB3aXRoIHF1ZXJ5IGRlY29yYXRvcnMiKTtvLnB1c2gocHkoaSxlKSl9fSkpfXJldHVybiBvfWZ1bmN0aW9uIHV5KHQpe2NvbnN0IGU9dC5uZ01ldGFkYXRhTmFtZTtyZXR1cm4iQ29udGVudENoaWxkIj09PWV8fCJDb250ZW50Q2hpbGRyZW4iPT09ZX1mdW5jdGlvbiBmeSh0KXtjb25zdCBlPXQubmdNZXRhZGF0YU5hbWU7cmV0dXJuIlZpZXdDaGlsZCI9PT1lfHwiVmlld0NoaWxkcmVuIj09PWV9ZnVuY3Rpb24gZ3kodCl7cmV0dXJuIklucHV0Ij09PXQubmdNZXRhZGF0YU5hbWV9ZnVuY3Rpb24gaHkodCl7cmV0dXJuIHQuc3BsaXQoIiwiKS5tYXAoKHQ9PnQudHJpbSgpKSl9Y29uc3QgYnk9WyJuZ09uQ2hhbmdlcyIsIm5nT25Jbml0IiwibmdPbkRlc3Ryb3kiLCJuZ0RvQ2hlY2siLCJuZ0FmdGVyVmlld0luaXQiLCJuZ0FmdGVyVmlld0NoZWNrZWQiLCJuZ0FmdGVyQ29udGVudEluaXQiLCJuZ0FmdGVyQ29udGVudENoZWNrZWQiXTtmdW5jdGlvbiB5eSh0KXtjb25zdCBlPVRyKCk7aWYoYnkuc29tZSgobj0+ZS5oYXNMaWZlY3ljbGVIb29rKHQsbikpKSlyZXR1cm4hMDtjb25zdCBuPWUucHJvcE1ldGFkYXRhKHQpO2Zvcihjb25zdCB0IGluIG4pe2NvbnN0IGU9blt0XTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdLG89bi5uZ01ldGFkYXRhTmFtZTtpZihneShuKXx8dXkobil8fGZ5KG4pfHwiT3V0cHV0Ij09PW98fCJIb3N0QmluZGluZyI9PT1vfHwiSG9zdExpc3RlbmVyIj09PW8pcmV0dXJuITB9fXJldHVybiExfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBfeSh0LGUpe3JldHVybnt0eXBlOnQsbmFtZTp0Lm5hbWUscGlwZU5hbWU6ZS5uYW1lLHB1cmU6dm9pZCAwPT09ZS5wdXJlfHxlLnB1cmV9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBDeT1GYSgiRGlyZWN0aXZlIiwoKHQ9e30pPT50KSx2b2lkIDAsdm9pZCAwLCgodCxlKT0+RHkodCxlKSkpLE15PUZhKCJDb21wb25lbnQiLCgodD17fSk9Pk9iamVjdC5hc3NpZ24oe2NoYW5nZURldGVjdGlvbjp6bi5EZWZhdWx0fSx0KSksQ3ksdm9pZCAwLCgodCxlKT0+a3kodCxlKSkpLHZ5PUZhKCJQaXBlIiwodD0+T2JqZWN0LmFzc2lnbih7cHVyZTohMH0sdCkpLHZvaWQgMCx2b2lkIDAsKCh0LGUpPT5FeSh0LGUpKSkseHk9VmEoIklucHV0IiwodD0+KHtiaW5kaW5nUHJvcGVydHlOYW1lOnR9KSkpLE95PVZhKCJPdXRwdXQiLCh0PT4oe2JpbmRpbmdQcm9wZXJ0eU5hbWU6dH0pKSksUHk9VmEoIkhvc3RCaW5kaW5nIiwodD0+KHtob3N0UHJvcGVydHlOYW1lOnR9KSkpLHd5PVZhKCJIb3N0TGlzdGVuZXIiLCgodCxlKT0+KHtldmVudE5hbWU6dCxhcmdzOmV9KSkpLGt5PWZ1bmN0aW9uIFN5KHQsZSl7KCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZVbigpO2xldCBuPW51bGw7IShmdW5jdGlvbiBvKHQsZSl7RnIoZSkmJihJci5zZXQodCxlKSxIci5hZGQodCkpfSkodCxlKSxyeSh0LGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFluLHtnZXQ6KCk9PntpZihudWxsPT09bil7Y29uc3Qgbz1KYSh7dXNhZ2U6MCxraW5kOiJjb21wb25lbnQiLHR5cGU6dH0pO2lmKEZyKGUpKXtjb25zdCBuPVtgQ29tcG9uZW50ICcke3QubmFtZX0nIGlzIG5vdCByZXNvbHZlZDpgXTt0aHJvdyBlLnRlbXBsYXRlVXJsJiZuLnB1c2goYCAtIHRlbXBsYXRlVXJsOiAke2UudGVtcGxhdGVVcmx9YCksZS5zdHlsZVVybHMmJmUuc3R5bGVVcmxzLmxlbmd0aCYmbi5wdXNoKGAgLSBzdHlsZVVybHM6ICR7SlNPTi5zdHJpbmdpZnkoZS5zdHlsZVVybHMpfWApLG4ucHVzaCgiRGlkIHlvdSBydW4gYW5kIHdhaXQgZm9yICdyZXNvbHZlQ29tcG9uZW50UmVzb3VyY2VzKCknPyIpLG5ldyBFcnJvcihuLmpvaW4oIlxuIikpfWNvbnN0IGk9KGZ1bmN0aW9uIG8oKXtyZXR1cm4gamJ9KSgpO2xldCBhPWUucHJlc2VydmVXaGl0ZXNwYWNlczt2b2lkIDA9PT1hJiYoYT1udWxsIT09aSYmdm9pZCAwIT09aS5wcmVzZXJ2ZVdoaXRlc3BhY2VzJiZpLnByZXNlcnZlV2hpdGVzcGFjZXMpO2xldCByPWUuZW5jYXBzdWxhdGlvbjt2b2lkIDA9PT1yJiYocj1udWxsIT09aSYmdm9pZCAwIT09aS5kZWZhdWx0RW5jYXBzdWxhdGlvbj9pLmRlZmF1bHRFbmNhcHN1bGF0aW9uOkhuLkVtdWxhdGVkKTtjb25zdCBzPWUudGVtcGxhdGVVcmx8fGBuZzovLy8ke3QubmFtZX0vdGVtcGxhdGUuaHRtbGAsbD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbHkodCxlKSkse3R5cGVTb3VyY2VTcGFuOm8uY3JlYXRlUGFyc2VTb3VyY2VTcGFuKCJDb21wb25lbnQiLHQubmFtZSxzKSx0ZW1wbGF0ZTplLnRlbXBsYXRlfHwiIixwcmVzZXJ2ZVdoaXRlc3BhY2VzOmEsc3R5bGVzOmUuc3R5bGVzfHxXbixhbmltYXRpb25zOmUuYW5pbWF0aW9ucyxkaXJlY3RpdmVzOltdLGNoYW5nZURldGVjdGlvbjplLmNoYW5nZURldGVjdGlvbixwaXBlczpuZXcgTWFwLGVuY2Fwc3VsYXRpb246cixpbnRlcnBvbGF0aW9uOmUuaW50ZXJwb2xhdGlvbix2aWV3UHJvdmlkZXJzOmUudmlld1Byb3ZpZGVyc3x8bnVsbH0pO295Kys7dHJ5e2wudXNlc0luaGVyaXRhbmNlJiZjeSh0KSxuPW8uY29tcGlsZUNvbXBvbmVudChhYixzLGwpfWZpbmFsbHl7b3ktLX1pZigwPT09b3kmJihmdW5jdGlvbiBpKCl7aWYoIUdiKXtHYj0hMDt0cnl7Zm9yKGxldCB0PVViLmxlbmd0aC0xO3Q+PTA7dC0tKXtjb25zdHttb2R1bGVUeXBlOmUsbmdNb2R1bGU6bn09VWJbdF07bi5kZWNsYXJhdGlvbnMmJm4uZGVjbGFyYXRpb25zLmV2ZXJ5KFdiKSYmKFViLnNwbGljZSh0LDEpLFFiKGUsbikpfX1maW5hbGx5e0diPSExfX19KSgpLChmdW5jdGlvbiBhKHQpe3JldHVybiB2b2lkIDAhPT10Lm5nU2VsZWN0b3JTY29wZX0pKHQpKXtjb25zdCBlPXR5KHQubmdTZWxlY3RvclNjb3BlKTskYihuLGUpfX1yZXR1cm4gbn0sY29uZmlndXJhYmxlOiEhbmdEZXZNb2RlfSl9LER5PWl5LEV5PWZ1bmN0aW9uIFJ5KHQsZSl7bGV0IG49bnVsbCxvPW51bGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsSm4se2dldDooKT0+e2lmKG51bGw9PT1vKXtjb25zdCBuPV95KHQsZSksaT1KYSh7dXNhZ2U6MCxraW5kOiJwaXBlIix0eXBlOm4udHlwZX0pO289aS5jb21waWxlRmFjdG9yeShhYixgbmc6Ly8vJHtuLm5hbWV9L8m1ZmFjLmpzYCx7bmFtZTpuLm5hbWUsdHlwZTpuLnR5cGUsdHlwZUFyZ3VtZW50Q291bnQ6MCxkZXBzOk5yKHQpLHRhcmdldDppLkZhY3RvcnlUYXJnZXQuUGlwZX0pfXJldHVybiBvfSxjb25maWd1cmFibGU6ISFuZ0Rldk1vZGV9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxabix7Z2V0OigpPT57aWYobnVsbD09PW4pe2NvbnN0IG89X3kodCxlKSxpPUphKHt1c2FnZTowLGtpbmQ6InBpcGUiLHR5cGU6by50eXBlfSk7bj1pLmNvbXBpbGVQaXBlKGFiLGBuZzovLy8ke28ubmFtZX0vybVwaXBlLmpzYCxvKX1yZXR1cm4gbn0sY29uZmlndXJhYmxlOiEhbmdEZXZNb2RlfSl9LEF5PUZhKCJOZ01vZHVsZSIsKHQ9PnQpLHZvaWQgMCx2b2lkIDAsKCh0LGUpPT5UeSh0LGUpKSksVHk9ZnVuY3Rpb24gTnkodCxlPXt9KXshKGZ1bmN0aW9uIG4odCxlLG89ITEpe25nRGV2TW9kZSYmaG4odCwiUmVxdWlyZWQgdmFsdWUgbW9kdWxlVHlwZSIpLG5nRGV2TW9kZSYmaG4oZSwiUmVxdWlyZWQgdmFsdWUgbmdNb2R1bGUiKTtjb25zdCBpPXRyKGUuZGVjbGFyYXRpb25zfHxXbik7bGV0IGE9bnVsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxYbix7Y29uZmlndXJhYmxlOiEwLGdldDooKT0+e2lmKG51bGw9PT1hKXtpZihuZ0Rldk1vZGUmJmUuaW1wb3J0cyYmZS5pbXBvcnRzLmluZGV4T2YodCk+LTEpdGhyb3cgbmV3IEVycm9yKGAnJHt0bih0KX0nIG1vZHVsZSBjYW4ndCBpbXBvcnQgaXRzZWxmYCk7Y29uc3Qgbj1KYSh7dXNhZ2U6MCxraW5kOiJOZ01vZHVsZSIsdHlwZTp0fSk7YT1uLmNvbXBpbGVOZ01vZHVsZShhYixgbmc6Ly8vJHt0Lm5hbWV9L8m1bW9kLmpzYCx7dHlwZTp0LGJvb3RzdHJhcDp0cihlLmJvb3RzdHJhcHx8V24pLm1hcChaZSksZGVjbGFyYXRpb25zOmkubWFwKFplKSxpbXBvcnRzOnRyKGUuaW1wb3J0c3x8V24pLm1hcChaZSkubWFwKGV5KSxleHBvcnRzOnRyKGUuZXhwb3J0c3x8V24pLm1hcChaZSkubWFwKGV5KSxzY2hlbWFzOmUuc2NoZW1hcz90cihlLnNjaGVtYXMpOm51bGwsaWQ6ZS5pZHx8bnVsbH0pLGEuc2NoZW1hc3x8KGEuc2NoZW1hcz1bXSl9cmV0dXJuIGF9fSk7bGV0IHI9bnVsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxKbix7Z2V0OigpPT57aWYobnVsbD09PXIpe2NvbnN0IGU9SmEoe3VzYWdlOjAsa2luZDoiTmdNb2R1bGUiLHR5cGU6dH0pO3I9ZS5jb21waWxlRmFjdG9yeShhYixgbmc6Ly8vJHt0Lm5hbWV9L8m1ZmFjLmpzYCx7bmFtZTp0Lm5hbWUsdHlwZTp0LGRlcHM6TnIodCksdGFyZ2V0OmUuRmFjdG9yeVRhcmdldC5OZ01vZHVsZSx0eXBlQXJndW1lbnRDb3VudDowfSl9cmV0dXJuIHJ9LGNvbmZpZ3VyYWJsZTohIW5nRGV2TW9kZX0pO2xldCBzPW51bGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsa24se2dldDooKT0+e2lmKG51bGw9PT1zKXtuZ0Rldk1vZGUmJlliKHQsbyk7Y29uc3Qgbj17bmFtZTp0Lm5hbWUsdHlwZTp0LHByb3ZpZGVyczplLnByb3ZpZGVyc3x8V24saW1wb3J0czpbKGUuaW1wb3J0c3x8V24pLm1hcChaZSksKGUuZXhwb3J0c3x8V24pLm1hcChaZSldfSxpPUphKHt1c2FnZTowLGtpbmQ6Ik5nTW9kdWxlIix0eXBlOnR9KTtzPWkuY29tcGlsZUluamVjdG9yKGFiLGBuZzovLy8ke3QubmFtZX0vybVpbmouanNgLG4pfXJldHVybiBzfSxjb25maWd1cmFibGU6ISFuZ0Rldk1vZGV9KX0pKHQsZSksKGZ1bmN0aW9uIG8odCxlKXtVYi5wdXNoKHttb2R1bGVUeXBlOnQsbmdNb2R1bGU6ZX0pfSkodCxlKX0senk9bmV3IEdhKCJBcHBsaWNhdGlvbiBJbml0aWFsaXplciIpO2NsYXNzIEl5e2NvbnN0cnVjdG9yKHQpe3RoaXMuYXBwSW5pdHM9dCx0aGlzLnJlc29sdmU9ZmcsdGhpcy5yZWplY3Q9ZmcsdGhpcy5pbml0aWFsaXplZD0hMSx0aGlzLmRvbmU9ITEsdGhpcy5kb25lUHJvbWlzZT1uZXcgUHJvbWlzZSgoKHQsZSk9Pnt0aGlzLnJlc29sdmU9dCx0aGlzLnJlamVjdD1lfSkpfXJ1bkluaXRpYWxpemVycygpe2lmKHRoaXMuaW5pdGlhbGl6ZWQpcmV0dXJuO2NvbnN0IHQ9W10sZT0oKT0+e3RoaXMuZG9uZT0hMCx0aGlzLnJlc29sdmUoKX07aWYodGhpcy5hcHBJbml0cylmb3IobGV0IGU9MDtlPHRoaXMuYXBwSW5pdHMubGVuZ3RoO2UrKyl7Y29uc3Qgbj10aGlzLmFwcEluaXRzW2VdKCk7aWYoRm0obikpdC5wdXNoKG4pO2Vsc2UgaWYoQm0obikpe2NvbnN0IGU9bmV3IFByb21pc2UoKCh0LGUpPT57bi5zdWJzY3JpYmUoe2NvbXBsZXRlOnQsZXJyb3I6ZX0pfSkpO3QucHVzaChlKX19UHJvbWlzZS5hbGwodCkudGhlbigoKCk9PntlKCl9KSkuY2F0Y2goKHQ9Pnt0aGlzLnJlamVjdCh0KX0pKSwwPT09dC5sZW5ndGgmJmUoKSx0aGlzLmluaXRpYWxpemVkPSEwfX1JeS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SXkpKHZyKHp5LDgpKX0sSXkuybVwcm92PU1uKHt0b2tlbjpJeSxmYWN0b3J5Okl5Lsm1ZmFjfSksSXkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbenldfSx7dHlwZTpTcn1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChJeSxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3p5XX0se3R5cGU6U3J9XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBIeT1uZXcgR2EoIkFwcElkIiksRnk9e3Byb3ZpZGU6SHksdXNlRmFjdG9yeTpmdW5jdGlvbiBMeSgpe3JldHVybmAke0J5KCl9JHtCeSgpfSR7QnkoKX1gfSxkZXBzOltdfTtmdW5jdGlvbiBCeSgpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKDk3K01hdGguZmxvb3IoMjUqTWF0aC5yYW5kb20oKSkpfWNvbnN0IFZ5PW5ldyBHYSgiUGxhdGZvcm0gSW5pdGlhbGl6ZXIiKSxqeT1uZXcgR2EoIlBsYXRmb3JtIElEIiksVXk9bmV3IEdhKCJhcHBCb290c3RyYXBMaXN0ZW5lciIpO25ldyBHYSgiQXBwbGljYXRpb24gUGFja2FnZXMgUm9vdCBVUkwiKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEd5e2xvZyh0KXtjb25zb2xlLmxvZyh0KX13YXJuKHQpe2NvbnNvbGUud2Fybih0KX19R3kuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEd5KX0sR3kuybVwcm92PU1uKHt0b2tlbjpHeSxmYWN0b3J5Okd5Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChHeSxbe3R5cGU6aW19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgV3k9bmV3IEdhKCJMb2NhbGVJZCIpLFl5PW5ldyBHYSgiRGVmYXVsdEN1cnJlbmN5Q29kZSIpO3ZhciBxeTtuZXcgR2EoIlRyYW5zbGF0aW9ucyIpLG5ldyBHYSgiVHJhbnNsYXRpb25zRm9ybWF0IiksKGZ1bmN0aW9uKHQpe3RbdC5FcnJvcj0wXT0iRXJyb3IiLHRbdC5XYXJuaW5nPTFdPSJXYXJuaW5nIix0W3QuSWdub3JlPTJdPSJJZ25vcmUifSkocXl8fChxeT17fSkpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgWnl7Y29uc3RydWN0b3IodCxlKXt0aGlzLm5nTW9kdWxlRmFjdG9yeT10LHRoaXMuY29tcG9uZW50RmFjdG9yaWVzPWV9fWNvbnN0IFh5PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgX2godCl9LEt5PVh5LEp5PWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLnJlc29sdmUoWHkodCkpfSxReT1mdW5jdGlvbih0KXtjb25zdCBlPVh5KHQpLG49cmwoZm8odCkuZGVjbGFyYXRpb25zKS5yZWR1Y2UoKCh0LGUpPT57Y29uc3Qgbj1wbyhlKTtyZXR1cm4gbiYmdC5wdXNoKG5ldyBmaChuKSksdH0pLFtdKTtyZXR1cm4gbmV3IFp5KGUsbil9LCR5PVF5LHRfPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLnJlc29sdmUoUXkodCkpfTtjbGFzcyBlX3tjb25zdHJ1Y3Rvcigpe3RoaXMuY29tcGlsZU1vZHVsZVN5bmM9S3ksdGhpcy5jb21waWxlTW9kdWxlQXN5bmM9SnksdGhpcy5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmM9JHksdGhpcy5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c0FzeW5jPXRffWNsZWFyQ2FjaGUoKXt9Y2xlYXJDYWNoZUZvcih0KXt9Z2V0TW9kdWxlSWQodCl7fX1lXy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZV8pfSxlXy7JtXByb3Y9TW4oe3Rva2VuOmVfLGZhY3Rvcnk6ZV8uybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGVfLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7Y29uc3Qgbl89bmV3IEdhKCJjb21waWxlck9wdGlvbnMiKSxvXz1Qcm9taXNlLnJlc29sdmUoMCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGlfKHQpeyJ1bmRlZmluZWQiPT10eXBlb2YgWm9uZT9vXy50aGVuKCgoKT0+e3QmJnQuYXBwbHkobnVsbCxudWxsKX0pKTpab25lLmN1cnJlbnQuc2NoZWR1bGVNaWNyb1Rhc2soInNjaGVkdWxlTWljcm90YXNrIix0KX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBhX3tjb25zdHJ1Y3Rvcih7ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6dD0hMSxzaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9uOmU9ITEsc2hvdWxkQ29hbGVzY2VSdW5DaGFuZ2VEZXRlY3Rpb246bj0hMX0pe2lmKHRoaXMuaGFzUGVuZGluZ01hY3JvdGFza3M9ITEsdGhpcy5oYXNQZW5kaW5nTWljcm90YXNrcz0hMSx0aGlzLmlzU3RhYmxlPSEwLHRoaXMub25VbnN0YWJsZT1uZXcgTGgoITEpLHRoaXMub25NaWNyb3Rhc2tFbXB0eT1uZXcgTGgoITEpLHRoaXMub25TdGFibGU9bmV3IExoKCExKSx0aGlzLm9uRXJyb3I9bmV3IExoKCExKSwidW5kZWZpbmVkIj09dHlwZW9mIFpvbmUpdGhyb3cgbmV3IEVycm9yKCJJbiB0aGlzIGNvbmZpZ3VyYXRpb24gQW5ndWxhciByZXF1aXJlcyBab25lLmpzIik7Wm9uZS5hc3NlcnRab25lUGF0Y2hlZCgpO2NvbnN0IG89dGhpcztvLl9uZXN0aW5nPTAsby5fb3V0ZXI9by5faW5uZXI9Wm9uZS5jdXJyZW50LFpvbmUuVGFza1RyYWNraW5nWm9uZVNwZWMmJihvLl9pbm5lcj1vLl9pbm5lci5mb3JrKG5ldyBab25lLlRhc2tUcmFja2luZ1pvbmVTcGVjKSksdCYmWm9uZS5sb25nU3RhY2tUcmFjZVpvbmVTcGVjJiYoby5faW5uZXI9by5faW5uZXIuZm9yayhab25lLmxvbmdTdGFja1RyYWNlWm9uZVNwZWMpKSxvLnNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb249IW4mJmUsby5zaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbj1uLG8ubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkPS0xLG8ubmF0aXZlUmVxdWVzdEFuaW1hdGlvbkZyYW1lPShmdW5jdGlvbiBpKCl7bGV0IHQ9am4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lLGU9am4uY2FuY2VsQW5pbWF0aW9uRnJhbWU7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBab25lJiZ0JiZlKXtjb25zdCBuPXRbWm9uZS5fX3N5bWJvbF9fKCJPcmlnaW5hbERlbGVnYXRlIildO24mJih0PW4pO2NvbnN0IG89ZVtab25lLl9fc3ltYm9sX18oIk9yaWdpbmFsRGVsZWdhdGUiKV07byYmKGU9byl9cmV0dXJue25hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZTp0LG5hdGl2ZUNhbmNlbEFuaW1hdGlvbkZyYW1lOmV9fSkoKS5uYXRpdmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWUsKGZ1bmN0aW9uIGEodCl7Y29uc3QgZT0oKT0+eyEoZnVuY3Rpb24gZSh0KXt0LmlzQ2hlY2tTdGFibGVSdW5uaW5nfHwtMSE9PXQubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkfHwodC5sYXN0UmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQ9dC5uYXRpdmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWUuY2FsbChqbiwoKCk9Pnt0LmZha2VUb3BFdmVudFRhc2t8fCh0LmZha2VUb3BFdmVudFRhc2s9Wm9uZS5yb290LnNjaGVkdWxlRXZlbnRUYXNrKCJmYWtlVG9wRXZlbnRUYXNrIiwoKCk9Pnt0Lmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD0tMSxsXyh0KSx0LmlzQ2hlY2tTdGFibGVSdW5uaW5nPSEwLHNfKHQpLHQuaXNDaGVja1N0YWJsZVJ1bm5pbmc9ITF9KSx2b2lkIDAsKCgpPT57fSksKCgpPT57fSkpKSx0LmZha2VUb3BFdmVudFRhc2suaW52b2tlKCl9KSksbF8odCkpfSkodCl9O3QuX2lubmVyPXQuX2lubmVyLmZvcmsoe25hbWU6ImFuZ3VsYXIiLHByb3BlcnRpZXM6e2lzQW5ndWxhclpvbmU6ITB9LG9uSW52b2tlVGFzazoobixvLGksYSxyLHMpPT57dHJ5e3JldHVybiBjXyh0KSxuLmludm9rZVRhc2soaSxhLHIscyl9ZmluYWxseXsodC5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9uJiYiZXZlbnRUYXNrIj09PWEudHlwZXx8dC5zaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbikmJmUoKSxkXyh0KX19LG9uSW52b2tlOihuLG8saSxhLHIscyxsKT0+e3RyeXtyZXR1cm4gY18odCksbi5pbnZva2UoaSxhLHIscyxsKX1maW5hbGx5e3Quc2hvdWxkQ29hbGVzY2VSdW5DaGFuZ2VEZXRlY3Rpb24mJmUoKSxkXyh0KX19LG9uSGFzVGFzazooZSxuLG8saSk9PntlLmhhc1Rhc2sobyxpKSxuPT09byYmKCJtaWNyb1Rhc2siPT1pLmNoYW5nZT8odC5faGFzUGVuZGluZ01pY3JvdGFza3M9aS5taWNyb1Rhc2ssbF8odCksc18odCkpOiJtYWNyb1Rhc2siPT1pLmNoYW5nZSYmKHQuaGFzUGVuZGluZ01hY3JvdGFza3M9aS5tYWNyb1Rhc2spKX0sb25IYW5kbGVFcnJvcjooZSxuLG8saSk9PihlLmhhbmRsZUVycm9yKG8saSksdC5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnQub25FcnJvci5lbWl0KGkpKSksITEpfSl9KShvKX1zdGF0aWMgaXNJbkFuZ3VsYXJab25lKCl7cmV0dXJuITA9PT1ab25lLmN1cnJlbnQuZ2V0KCJpc0FuZ3VsYXJab25lIil9c3RhdGljIGFzc2VydEluQW5ndWxhclpvbmUoKXtpZighYV8uaXNJbkFuZ3VsYXJab25lKCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB0byBiZSBpbiBBbmd1bGFyIFpvbmUsIGJ1dCBpdCBpcyBub3QhIil9c3RhdGljIGFzc2VydE5vdEluQW5ndWxhclpvbmUoKXtpZihhXy5pc0luQW5ndWxhclpvbmUoKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHRvIG5vdCBiZSBpbiBBbmd1bGFyIFpvbmUsIGJ1dCBpdCBpcyEiKX1ydW4odCxlLG4pe3JldHVybiB0aGlzLl9pbm5lci5ydW4odCxlLG4pfXJ1blRhc2sodCxlLG4sbyl7Y29uc3QgaT10aGlzLl9pbm5lcixhPWkuc2NoZWR1bGVFdmVudFRhc2soIk5nWm9uZUV2ZW50OiAiK28sdCxyXyxmZyxmZyk7dHJ5e3JldHVybiBpLnJ1blRhc2soYSxlLG4pfWZpbmFsbHl7aS5jYW5jZWxUYXNrKGEpfX1ydW5HdWFyZGVkKHQsZSxuKXtyZXR1cm4gdGhpcy5faW5uZXIucnVuR3VhcmRlZCh0LGUsbil9cnVuT3V0c2lkZUFuZ3VsYXIodCl7cmV0dXJuIHRoaXMuX291dGVyLnJ1bih0KX19Y29uc3Qgcl89e307ZnVuY3Rpb24gc18odCl7aWYoMD09dC5fbmVzdGluZyYmIXQuaGFzUGVuZGluZ01pY3JvdGFza3MmJiF0LmlzU3RhYmxlKXRyeXt0Ll9uZXN0aW5nKyssdC5vbk1pY3JvdGFza0VtcHR5LmVtaXQobnVsbCl9ZmluYWxseXtpZih0Ll9uZXN0aW5nLS0sIXQuaGFzUGVuZGluZ01pY3JvdGFza3MpdHJ5e3QucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT50Lm9uU3RhYmxlLmVtaXQobnVsbCkpKX1maW5hbGx5e3QuaXNTdGFibGU9ITB9fX1mdW5jdGlvbiBsXyh0KXt0Lmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSEhKHQuX2hhc1BlbmRpbmdNaWNyb3Rhc2tzfHwodC5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9ufHx0LnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uKSYmLTEhPT10Lmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCl9ZnVuY3Rpb24gY18odCl7dC5fbmVzdGluZysrLHQuaXNTdGFibGUmJih0LmlzU3RhYmxlPSExLHQub25VbnN0YWJsZS5lbWl0KG51bGwpKX1mdW5jdGlvbiBkXyh0KXt0Ll9uZXN0aW5nLS0sc18odCl9Y2xhc3MgcF97Y29uc3RydWN0b3IoKXt0aGlzLmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSExLHRoaXMuaGFzUGVuZGluZ01hY3JvdGFza3M9ITEsdGhpcy5pc1N0YWJsZT0hMCx0aGlzLm9uVW5zdGFibGU9bmV3IExoLHRoaXMub25NaWNyb3Rhc2tFbXB0eT1uZXcgTGgsdGhpcy5vblN0YWJsZT1uZXcgTGgsdGhpcy5vbkVycm9yPW5ldyBMaH1ydW4odCxlLG4pe3JldHVybiB0LmFwcGx5KGUsbil9cnVuR3VhcmRlZCh0LGUsbil7cmV0dXJuIHQuYXBwbHkoZSxuKX1ydW5PdXRzaWRlQW5ndWxhcih0KXtyZXR1cm4gdCgpfXJ1blRhc2sodCxlLG4sbyl7cmV0dXJuIHQuYXBwbHkoZSxuKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIG1fe2NvbnN0cnVjdG9yKHQpe3RoaXMuX25nWm9uZT10LHRoaXMuX3BlbmRpbmdDb3VudD0wLHRoaXMuX2lzWm9uZVN0YWJsZT0hMCx0aGlzLl9kaWRXb3JrPSExLHRoaXMuX2NhbGxiYWNrcz1bXSx0aGlzLnRhc2tUcmFja2luZ1pvbmU9bnVsbCx0aGlzLl93YXRjaEFuZ3VsYXJFdmVudHMoKSx0LnJ1bigoKCk9Pnt0aGlzLnRhc2tUcmFja2luZ1pvbmU9InVuZGVmaW5lZCI9PXR5cGVvZiBab25lP251bGw6Wm9uZS5jdXJyZW50LmdldCgiVGFza1RyYWNraW5nWm9uZSIpfSkpfV93YXRjaEFuZ3VsYXJFdmVudHMoKXt0aGlzLl9uZ1pvbmUub25VbnN0YWJsZS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl9kaWRXb3JrPSEwLHRoaXMuX2lzWm9uZVN0YWJsZT0hMX19KSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57dGhpcy5fbmdab25lLm9uU3RhYmxlLnN1YnNjcmliZSh7bmV4dDooKT0+e2FfLmFzc2VydE5vdEluQW5ndWxhclpvbmUoKSxpXygoKCk9Pnt0aGlzLl9pc1pvbmVTdGFibGU9ITAsdGhpcy5fcnVuQ2FsbGJhY2tzSWZSZWFkeSgpfSkpfX0pfSkpfWluY3JlYXNlUGVuZGluZ1JlcXVlc3RDb3VudCgpe3JldHVybiB0aGlzLl9wZW5kaW5nQ291bnQrPTEsdGhpcy5fZGlkV29yaz0hMCx0aGlzLl9wZW5kaW5nQ291bnR9ZGVjcmVhc2VQZW5kaW5nUmVxdWVzdENvdW50KCl7aWYodGhpcy5fcGVuZGluZ0NvdW50LT0xLHRoaXMuX3BlbmRpbmdDb3VudDwwKXRocm93IG5ldyBFcnJvcigicGVuZGluZyBhc3luYyByZXF1ZXN0cyBiZWxvdyB6ZXJvIik7cmV0dXJuIHRoaXMuX3J1bkNhbGxiYWNrc0lmUmVhZHkoKSx0aGlzLl9wZW5kaW5nQ291bnR9aXNTdGFibGUoKXtyZXR1cm4gdGhpcy5faXNab25lU3RhYmxlJiYwPT09dGhpcy5fcGVuZGluZ0NvdW50JiYhdGhpcy5fbmdab25lLmhhc1BlbmRpbmdNYWNyb3Rhc2tzfV9ydW5DYWxsYmFja3NJZlJlYWR5KCl7aWYodGhpcy5pc1N0YWJsZSgpKWlfKCgoKT0+e2Zvcig7MCE9PXRoaXMuX2NhbGxiYWNrcy5sZW5ndGg7KXtsZXQgdD10aGlzLl9jYWxsYmFja3MucG9wKCk7Y2xlYXJUaW1lb3V0KHQudGltZW91dElkKSx0LmRvbmVDYih0aGlzLl9kaWRXb3JrKX10aGlzLl9kaWRXb3JrPSExfSkpO2Vsc2V7bGV0IHQ9dGhpcy5nZXRQZW5kaW5nVGFza3MoKTt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzLmZpbHRlcigoZT0+IWUudXBkYXRlQ2J8fCFlLnVwZGF0ZUNiKHQpfHwoY2xlYXJUaW1lb3V0KGUudGltZW91dElkKSwhMSkpKSx0aGlzLl9kaWRXb3JrPSEwfX1nZXRQZW5kaW5nVGFza3MoKXtyZXR1cm4gdGhpcy50YXNrVHJhY2tpbmdab25lP3RoaXMudGFza1RyYWNraW5nWm9uZS5tYWNyb1Rhc2tzLm1hcCgodD0+KHtzb3VyY2U6dC5zb3VyY2UsY3JlYXRpb25Mb2NhdGlvbjp0LmNyZWF0aW9uTG9jYXRpb24sZGF0YTp0LmRhdGF9KSkpOltdfWFkZENhbGxiYWNrKHQsZSxuKXtsZXQgbz0tMTtlJiZlPjAmJihvPXNldFRpbWVvdXQoKCgpPT57dGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrcy5maWx0ZXIoKHQ9PnQudGltZW91dElkIT09bykpLHQodGhpcy5fZGlkV29yayx0aGlzLmdldFBlbmRpbmdUYXNrcygpKX0pLGUpKSx0aGlzLl9jYWxsYmFja3MucHVzaCh7ZG9uZUNiOnQsdGltZW91dElkOm8sdXBkYXRlQ2I6bn0pfXdoZW5TdGFibGUodCxlLG4pe2lmKG4mJiF0aGlzLnRhc2tUcmFja2luZ1pvbmUpdGhyb3cgbmV3IEVycm9yKCdUYXNrIHRyYWNraW5nIHpvbmUgaXMgcmVxdWlyZWQgd2hlbiBwYXNzaW5nIGFuIHVwZGF0ZSBjYWxsYmFjayB0byB3aGVuU3RhYmxlKCkuIElzICJ6b25lLmpzL3BsdWdpbnMvdGFzay10cmFja2luZyIgbG9hZGVkPycpO3RoaXMuYWRkQ2FsbGJhY2sodCxlLG4pLHRoaXMuX3J1bkNhbGxiYWNrc0lmUmVhZHkoKX1nZXRQZW5kaW5nUmVxdWVzdENvdW50KCl7cmV0dXJuIHRoaXMuX3BlbmRpbmdDb3VudH1maW5kUHJvdmlkZXJzKHQsZSxuKXtyZXR1cm5bXX19bV8uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG1fKSh2cihhXykpfSxtXy7JtXByb3Y9TW4oe3Rva2VuOm1fLGZhY3Rvcnk6bV8uybVmYWN9KSxtXy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmFffV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChtXyxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6YV99XX0pLG51bGwpO2NsYXNzIHVfe2NvbnN0cnVjdG9yKCl7dGhpcy5fYXBwbGljYXRpb25zPW5ldyBNYXAsZ18uYWRkVG9XaW5kb3codGhpcyl9cmVnaXN0ZXJBcHBsaWNhdGlvbih0LGUpe3RoaXMuX2FwcGxpY2F0aW9ucy5zZXQodCxlKX11bnJlZ2lzdGVyQXBwbGljYXRpb24odCl7dGhpcy5fYXBwbGljYXRpb25zLmRlbGV0ZSh0KX11bnJlZ2lzdGVyQWxsQXBwbGljYXRpb25zKCl7dGhpcy5fYXBwbGljYXRpb25zLmNsZWFyKCl9Z2V0VGVzdGFiaWxpdHkodCl7cmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9ucy5nZXQodCl8fG51bGx9Z2V0QWxsVGVzdGFiaWxpdGllcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2FwcGxpY2F0aW9ucy52YWx1ZXMoKSl9Z2V0QWxsUm9vdEVsZW1lbnRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fYXBwbGljYXRpb25zLmtleXMoKSl9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKHQsZT0hMCl7cmV0dXJuIGdfLmZpbmRUZXN0YWJpbGl0eUluVHJlZSh0aGlzLHQsZSl9fXVfLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx1Xyl9LHVfLsm1cHJvdj1Nbih7dG9rZW46dV8sZmFjdG9yeTp1Xy7JtWZhY30pLHVfLmN0b3JQYXJhbWV0ZXJzPSgpPT5bXSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHVfLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7bGV0IGZfLGdfPW5ldyBjbGFzc3thZGRUb1dpbmRvdyh0KXt9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKHQsZSxuKXtyZXR1cm4gbnVsbH19LGhfPSEwLGJfPSExOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB5Xygpe3JldHVybiBiXz0hMCxoX31jb25zdCBfXz1uZXcgR2EoIkFsbG93TXVsdGlwbGVUb2tlbiIpO2Z1bmN0aW9uIENfKHQsZSxuPVtdKXtjb25zdCBvPWBQbGF0Zm9ybTogJHtlfWAsaT1uZXcgR2Eobyk7cmV0dXJuKGU9W10pPT57bGV0IGE9TV8oKTtpZighYXx8YS5pbmplY3Rvci5nZXQoX18sITEpKWlmKHQpdChuLmNvbmNhdChlKS5jb25jYXQoe3Byb3ZpZGU6aSx1c2VWYWx1ZTohMH0pKTtlbHNle2NvbnN0IHQ9bi5jb25jYXQoZSkuY29uY2F0KHtwcm92aWRlOmksdXNlVmFsdWU6ITB9LHtwcm92aWRlOllkLHVzZVZhbHVlOiJwbGF0Zm9ybSJ9KTshKGZ1bmN0aW9uIHIodCl7aWYoZl8mJiFmXy5kZXN0cm95ZWQmJiFmXy5pbmplY3Rvci5nZXQoX18sITEpKXRocm93IG5ldyBFcnJvcigiVGhlcmUgY2FuIGJlIG9ubHkgb25lIHBsYXRmb3JtLiBEZXN0cm95IHRoZSBwcmV2aW91cyBvbmUgdG8gY3JlYXRlIGEgbmV3IG9uZS4iKTsoZnVuY3Rpb24gZSgpe25nRGV2TW9kZSYmKGZ1bmN0aW9uIHQoKXtfcHx8KF9wPSEwLENwKCLJtXNldFByb2ZpbGVyIixZbyksQ3AoImdldERpcmVjdGl2ZU1ldGFkYXRhIix1cCksQ3AoImdldENvbXBvbmVudCIsc3ApLENwKCJnZXRDb250ZXh0IixscCksQ3AoImdldExpc3RlbmVycyIsZ3ApLENwKCJnZXRPd25pbmdDb21wb25lbnQiLGNwKSxDcCgiZ2V0SG9zdEVsZW1lbnQiLGZwKSxDcCgiZ2V0SW5qZWN0b3IiLHBwKSxDcCgiZ2V0Um9vdENvbXBvbmVudHMiLGRwKSxDcCgiZ2V0RGlyZWN0aXZlcyIsbXApLENwKCJhcHBseUNoYW5nZXMiLHlwKSl9KSgpfSkoKSxmXz10LmdldCh2Xyk7Y29uc3Qgbj10LmdldChWeSxudWxsKTtuJiZuLmZvckVhY2goKHQ9PnQoKSkpfSkocnAuY3JlYXRlKHtwcm92aWRlcnM6dCxuYW1lOm99KSl9cmV0dXJuKGZ1bmN0aW9uIHModCl7Y29uc3QgZT1NXygpO2lmKCFlKXRocm93IG5ldyBFcnJvcigiTm8gcGxhdGZvcm0gZXhpc3RzISIpO2lmKCFlLmluamVjdG9yLmdldCh0LG51bGwpKXRocm93IG5ldyBFcnJvcigiQSBwbGF0Zm9ybSB3aXRoIGEgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gY3JlYXRlZC4gUGxlYXNlIGRlc3Ryb3kgaXQgZmlyc3QuIik7cmV0dXJuIGV9KShpKX19ZnVuY3Rpb24gTV8oKXtyZXR1cm4gZl8mJiFmXy5kZXN0cm95ZWQ/Zl86bnVsbH1jbGFzcyB2X3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9pbmplY3Rvcj10LHRoaXMuX21vZHVsZXM9W10sdGhpcy5fZGVzdHJveUxpc3RlbmVycz1bXSx0aGlzLl9kZXN0cm95ZWQ9ITF9Ym9vdHN0cmFwTW9kdWxlRmFjdG9yeSh0LGUpe2NvbnN0IG49KGZ1bmN0aW9uIG8odCxlKXtsZXQgbjtyZXR1cm4gbj0ibm9vcCI9PT10P25ldyBwXzooInpvbmUuanMiPT09dD92b2lkIDA6dCl8fG5ldyBhXyh7ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6eV8oKSxzaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9uOiEhKG51bGw9PWU/dm9pZCAwOmUubmdab25lRXZlbnRDb2FsZXNjaW5nKSxzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbjohIShudWxsPT1lP3ZvaWQgMDplLm5nWm9uZVJ1bkNvYWxlc2NpbmcpfSksbn0pKGU/ZS5uZ1pvbmU6dm9pZCAwLHtuZ1pvbmVFdmVudENvYWxlc2Npbmc6ZSYmZS5uZ1pvbmVFdmVudENvYWxlc2Npbmd8fCExLG5nWm9uZVJ1bkNvYWxlc2Npbmc6ZSYmZS5uZ1pvbmVSdW5Db2FsZXNjaW5nfHwhMX0pLGk9W3twcm92aWRlOmFfLHVzZVZhbHVlOm59XTtyZXR1cm4gbi5ydW4oKCgpPT57Y29uc3QgZT1ycC5jcmVhdGUoe3Byb3ZpZGVyczppLHBhcmVudDp0aGlzLmluamVjdG9yLG5hbWU6dC5tb2R1bGVUeXBlLm5hbWV9KSxvPXQuY3JlYXRlKGUpLGE9by5pbmplY3Rvci5nZXQoWnMsbnVsbCk7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJObyBFcnJvckhhbmRsZXIuIElzIHBsYXRmb3JtIG1vZHVsZSAoQnJvd3Nlck1vZHVsZSkgaW5jbHVkZWQ/Iik7cmV0dXJuIG4ucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57Y29uc3QgdD1uLm9uRXJyb3Iuc3Vic2NyaWJlKHtuZXh0OnQ9PnthLmhhbmRsZUVycm9yKHQpfX0pO28ub25EZXN0cm95KCgoKT0+e1BfKHRoaXMuX21vZHVsZXMsbyksdC51bnN1YnNjcmliZSgpfSkpfSkpLChmdW5jdGlvbiByKHQsZSxuKXt0cnl7Y29uc3Qgbz1uKCk7cmV0dXJuIEZtKG8pP28uY2F0Y2goKG49Pnt0aHJvdyBlLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+dC5oYW5kbGVFcnJvcihuKSkpLG59KSk6b31jYXRjaChuKXt0aHJvdyBlLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+dC5oYW5kbGVFcnJvcihuKSkpLG59fSkoYSxuLCgoKT0+e2NvbnN0IHQ9by5pbmplY3Rvci5nZXQoSXkpO3JldHVybiB0LnJ1bkluaXRpYWxpemVycygpLHQuZG9uZVByb21pc2UudGhlbigoKCk9PihYdShvLmluamVjdG9yLmdldChXeSxHdSl8fEd1KSx0aGlzLl9tb2R1bGVEb0Jvb3RzdHJhcChvKSxvKSkpfSkpfSkpfWJvb3RzdHJhcE1vZHVsZSh0LGU9W10pe2NvbnN0IG49eF8oe30sZSk7cmV0dXJuKGZ1bmN0aW9uIG8odCxlLG4pe25nRGV2TW9kZSYmKGZ1bmN0aW9uIG8odCxlPSJUeXBlIHBhc3NlZCBpbiBpcyBub3QgTmdNb2R1bGVUeXBlLCBpdCBkb2VzIG5vdCBoYXZlICfJtW1vZCcgcHJvcGVydHkuIil7Zm8odCl8fGJuKGUpfSkobik7Y29uc3QgaT1uZXcgX2gobik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0ppdE1vZGUmJiFuZ0ppdE1vZGUpcmV0dXJuIFByb21pc2UucmVzb2x2ZShpKTtjb25zdCBhPXQuZ2V0KG5fLFtdKS5jb25jYXQoZSk7aWYoKGZ1bmN0aW9uIHIodCl7aWYobnVsbCE9PWpiKXtpZih0LmRlZmF1bHRFbmNhcHN1bGF0aW9uIT09amIuZGVmYXVsdEVuY2Fwc3VsYXRpb24pcmV0dXJuIHZvaWQobmdEZXZNb2RlJiZjb25zb2xlLmVycm9yKCJQcm92aWRlZCB2YWx1ZSBmb3IgYGRlZmF1bHRFbmNhcHN1bGF0aW9uYCBjYW4gbm90IGJlIGNoYW5nZWQgb25jZSBpdCBoYXMgYmVlbiBzZXQuIikpO2lmKHQucHJlc2VydmVXaGl0ZXNwYWNlcyE9PWpiLnByZXNlcnZlV2hpdGVzcGFjZXMpcmV0dXJuIHZvaWQobmdEZXZNb2RlJiZjb25zb2xlLmVycm9yKCJQcm92aWRlZCB2YWx1ZSBmb3IgYHByZXNlcnZlV2hpdGVzcGFjZXNgIGNhbiBub3QgYmUgY2hhbmdlZCBvbmNlIGl0IGhhcyBiZWVuIHNldC4iKSl9amI9dH0pKHtkZWZhdWx0RW5jYXBzdWxhdGlvbjp3XyhhLm1hcCgodD0+dC5kZWZhdWx0RW5jYXBzdWxhdGlvbikpKSxwcmVzZXJ2ZVdoaXRlc3BhY2VzOndfKGEubWFwKCh0PT50LnByZXNlcnZlV2hpdGVzcGFjZXMpKSl9KSwoZnVuY3Rpb24gcygpe3JldHVybiAwPT09SXIuc2l6ZX0pKCkpcmV0dXJuIFByb21pc2UucmVzb2x2ZShpKTtjb25zdCBsPShmdW5jdGlvbiBjKHQpe2NvbnN0IGU9W107cmV0dXJuIHQuZm9yRWFjaCgodD0+dCYmZS5wdXNoKC4uLnQpKSksZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKShhLm1hcCgodD0+dC5wcm92aWRlcnMpKSk7aWYoMD09PWwubGVuZ3RoKXJldHVybiBQcm9taXNlLnJlc29sdmUoaSk7Y29uc3QgZD1KYSh7dXNhZ2U6MCxraW5kOiJOZ01vZHVsZSIsdHlwZTpufSkscD1ycC5jcmVhdGUoe3Byb3ZpZGVyczpsfSkuZ2V0KGQuUmVzb3VyY2VMb2FkZXIpO3JldHVybihmdW5jdGlvbiBtKHQpe2NvbnN0IGU9W10sbj1uZXcgTWFwO2Z1bmN0aW9uIG8oZSl7bGV0IG89bi5nZXQoZSk7aWYoIW8pe2NvbnN0IGk9dChlKTtuLnNldChlLG89aS50aGVuKExyKSl9cmV0dXJuIG99cmV0dXJuIElyLmZvckVhY2goKCh0LG4pPT57Y29uc3QgaT1bXTt0LnRlbXBsYXRlVXJsJiZpLnB1c2gobyh0LnRlbXBsYXRlVXJsKS50aGVuKChlPT57dC50ZW1wbGF0ZT1lfSkpKTtjb25zdCBhPXQuc3R5bGVVcmxzLHI9dC5zdHlsZXN8fCh0LnN0eWxlcz1bXSkscz10LnN0eWxlcy5sZW5ndGg7YSYmYS5mb3JFYWNoKCgoZSxuKT0+e3IucHVzaCgiIiksaS5wdXNoKG8oZSkudGhlbigobz0+e3JbcytuXT1vLGEuc3BsaWNlKGEuaW5kZXhPZihlKSwxKSwwPT1hLmxlbmd0aCYmKHQuc3R5bGVVcmxzPXZvaWQgMCl9KSkpfSkpO2NvbnN0IGw9UHJvbWlzZS5hbGwoaSkudGhlbigoKCk9PihmdW5jdGlvbiB0KGUpe0hyLmRlbGV0ZShlKX0pKG4pKSk7ZS5wdXNoKGwpfSkpLChmdW5jdGlvbiBpKCl7SXI9bmV3IE1hcH0pKCksUHJvbWlzZS5hbGwoZSkudGhlbigoKCk9Pnt9KSl9KSgodD0+UHJvbWlzZS5yZXNvbHZlKHAuZ2V0KHQpKSkpLnRoZW4oKCgpPT5pKSl9KSh0aGlzLmluamVjdG9yLG4sdCkudGhlbigodD0+dGhpcy5ib290c3RyYXBNb2R1bGVGYWN0b3J5KHQsbikpKX1fbW9kdWxlRG9Cb290c3RyYXAodCl7Y29uc3QgZT10LmluamVjdG9yLmdldChPXyk7aWYodC5fYm9vdHN0cmFwQ29tcG9uZW50cy5sZW5ndGg+MCl0Ll9ib290c3RyYXBDb21wb25lbnRzLmZvckVhY2goKHQ9PmUuYm9vdHN0cmFwKHQpKSk7ZWxzZXtpZighdC5pbnN0YW5jZS5uZ0RvQm9vdHN0cmFwKXRocm93IG5ldyBFcnJvcihgVGhlIG1vZHVsZSAke0dlKHQuaW5zdGFuY2UuY29uc3RydWN0b3IpfSB3YXMgYm9vdHN0cmFwcGVkLCBidXQgaXQgZG9lcyBub3QgZGVjbGFyZSAiQE5nTW9kdWxlLmJvb3RzdHJhcCIgY29tcG9uZW50cyBub3IgYSAibmdEb0Jvb3RzdHJhcCIgbWV0aG9kLiBQbGVhc2UgZGVmaW5lIG9uZSBvZiB0aGVzZS5gKTt0Lmluc3RhbmNlLm5nRG9Cb290c3RyYXAoZSl9dGhpcy5fbW9kdWxlcy5wdXNoKHQpfW9uRGVzdHJveSh0KXt0aGlzLl9kZXN0cm95TGlzdGVuZXJzLnB1c2godCl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIHRoaXMuX2luamVjdG9yfWRlc3Ryb3koKXtpZih0aGlzLl9kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJUaGUgcGxhdGZvcm0gaGFzIGFscmVhZHkgYmVlbiBkZXN0cm95ZWQhIik7dGhpcy5fbW9kdWxlcy5zbGljZSgpLmZvckVhY2goKHQ9PnQuZGVzdHJveSgpKSksdGhpcy5fZGVzdHJveUxpc3RlbmVycy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9kZXN0cm95ZWQ9ITB9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9fWZ1bmN0aW9uIHhfKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZS5yZWR1Y2UoeF8sdCk6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLGUpfXZfLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx2XykodnIocnApKX0sdl8uybVwcm92PU1uKHt0b2tlbjp2XyxmYWN0b3J5OnZfLsm1ZmFjfSksdl8uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpycH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodl8sW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnJwfV19KSxudWxsKTtjbGFzcyBPX3tjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3RoaXMuX3pvbmU9dCx0aGlzLl9pbmplY3Rvcj1lLHRoaXMuX2V4Y2VwdGlvbkhhbmRsZXI9bix0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9byx0aGlzLl9pbml0U3RhdHVzPWksdGhpcy5fYm9vdHN0cmFwTGlzdGVuZXJzPVtdLHRoaXMuX3ZpZXdzPVtdLHRoaXMuX3J1bm5pbmdUaWNrPSExLHRoaXMuX3N0YWJsZT0hMCx0aGlzLmNvbXBvbmVudFR5cGVzPVtdLHRoaXMuY29tcG9uZW50cz1bXSx0aGlzLl9vbk1pY3JvdGFza0VtcHR5U3Vic2NyaXB0aW9uPXRoaXMuX3pvbmUub25NaWNyb3Rhc2tFbXB0eS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl96b25lLnJ1bigoKCk9Pnt0aGlzLnRpY2soKX0pKX19KTtjb25zdCBhPW5ldyBEKCh0PT57dGhpcy5fc3RhYmxlPXRoaXMuX3pvbmUuaXNTdGFibGUmJiF0aGlzLl96b25lLmhhc1BlbmRpbmdNYWNyb3Rhc2tzJiYhdGhpcy5fem9uZS5oYXNQZW5kaW5nTWljcm90YXNrcyx0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3QubmV4dCh0aGlzLl9zdGFibGUpLHQuY29tcGxldGUoKX0pKX0pKSxyPW5ldyBEKCh0PT57bGV0IGU7dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntlPXRoaXMuX3pvbmUub25TdGFibGUuc3Vic2NyaWJlKCgoKT0+e2FfLmFzc2VydE5vdEluQW5ndWxhclpvbmUoKSxpXygoKCk9Pnt0aGlzLl9zdGFibGV8fHRoaXMuX3pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3N8fHRoaXMuX3pvbmUuaGFzUGVuZGluZ01pY3JvdGFza3N8fCh0aGlzLl9zdGFibGU9ITAsdC5uZXh0KCEwKSl9KSl9KSl9KSk7Y29uc3Qgbj10aGlzLl96b25lLm9uVW5zdGFibGUuc3Vic2NyaWJlKCgoKT0+e2FfLmFzc2VydEluQW5ndWxhclpvbmUoKSx0aGlzLl9zdGFibGUmJih0aGlzLl9zdGFibGU9ITEsdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0Lm5leHQoITEpfSkpKX0pKTtyZXR1cm4oKT0+e2UudW5zdWJzY3JpYmUoKSxuLnVuc3Vic2NyaWJlKCl9fSkpO3RoaXMuaXNTdGFibGU9cmUoYSxyLnBpcGUoRWUoKSkpfWJvb3RzdHJhcCh0LGUpe2lmKCF0aGlzLl9pbml0U3RhdHVzLmRvbmUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgYm9vdHN0cmFwIGFzIHRoZXJlIGFyZSBzdGlsbCBhc3luY2hyb25vdXMgaW5pdGlhbGl6ZXJzIHJ1bm5pbmcuIEJvb3RzdHJhcCBjb21wb25lbnRzIGluIHRoZSBgbmdEb0Jvb3RzdHJhcGAgbWV0aG9kIG9mIHRoZSByb290IG1vZHVsZS4iKTtsZXQgbjtuPXQgaW5zdGFuY2VvZiBtZz90OnRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0KSx0aGlzLmNvbXBvbmVudFR5cGVzLnB1c2gobi5jb21wb25lbnRUeXBlKTtjb25zdCBvPShmdW5jdGlvbiBpKHQpe3JldHVybiB0LmlzQm91bmRUb01vZHVsZX0pKG4pP3ZvaWQgMDp0aGlzLl9pbmplY3Rvci5nZXQodGgpLGE9bi5jcmVhdGUocnAuTlVMTCxbXSxlfHxuLnNlbGVjdG9yLG8pLHI9YS5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LHM9YS5pbmplY3Rvci5nZXQobV8sbnVsbCksbD1zJiZhLmluamVjdG9yLmdldCh1Xyk7cmV0dXJuIHMmJmwmJmwucmVnaXN0ZXJBcHBsaWNhdGlvbihyLHMpLGEub25EZXN0cm95KCgoKT0+e3RoaXMuZGV0YWNoVmlldyhhLmhvc3RWaWV3KSxQXyh0aGlzLmNvbXBvbmVudHMsYSksbCYmbC51bnJlZ2lzdGVyQXBwbGljYXRpb24ocil9KSksdGhpcy5fbG9hZENvbXBvbmVudChhKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJnlfKCkmJnRoaXMuX2luamVjdG9yLmdldChHeSkubG9nKCJBbmd1bGFyIGlzIHJ1bm5pbmcgaW4gZGV2ZWxvcG1lbnQgbW9kZS4gQ2FsbCBlbmFibGVQcm9kTW9kZSgpIHRvIGVuYWJsZSBwcm9kdWN0aW9uIG1vZGUuIiksYX10aWNrKCl7aWYodGhpcy5fcnVubmluZ1RpY2spdGhyb3cgbmV3IEVycm9yKCJBcHBsaWNhdGlvblJlZi50aWNrIGlzIGNhbGxlZCByZWN1cnNpdmVseSIpO3RyeXt0aGlzLl9ydW5uaW5nVGljaz0hMDtmb3IobGV0IHQgb2YgdGhpcy5fdmlld3MpdC5kZXRlY3RDaGFuZ2VzKCk7aWYoKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZ5XygpKWZvcihsZXQgdCBvZiB0aGlzLl92aWV3cyl0LmNoZWNrTm9DaGFuZ2VzKCl9Y2F0Y2godCl7dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnRoaXMuX2V4Y2VwdGlvbkhhbmRsZXIuaGFuZGxlRXJyb3IodCkpKX1maW5hbGx5e3RoaXMuX3J1bm5pbmdUaWNrPSExfX1hdHRhY2hWaWV3KHQpe2NvbnN0IGU9dDt0aGlzLl92aWV3cy5wdXNoKGUpLGUuYXR0YWNoVG9BcHBSZWYodGhpcyl9ZGV0YWNoVmlldyh0KXtjb25zdCBlPXQ7UF8odGhpcy5fdmlld3MsZSksZS5kZXRhY2hGcm9tQXBwUmVmKCl9X2xvYWRDb21wb25lbnQodCl7dGhpcy5hdHRhY2hWaWV3KHQuaG9zdFZpZXcpLHRoaXMudGljaygpLHRoaXMuY29tcG9uZW50cy5wdXNoKHQpLHRoaXMuX2luamVjdG9yLmdldChVeSxbXSkuY29uY2F0KHRoaXMuX2Jvb3RzdHJhcExpc3RlbmVycykuZm9yRWFjaCgoZT0+ZSh0KSkpfW5nT25EZXN0cm95KCl7dGhpcy5fdmlld3Muc2xpY2UoKS5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX29uTWljcm90YXNrRW1wdHlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1nZXQgdmlld0NvdW50KCl7cmV0dXJuIHRoaXMuX3ZpZXdzLmxlbmd0aH19ZnVuY3Rpb24gUF8odCxlKXtjb25zdCBuPXQuaW5kZXhPZihlKTtuPi0xJiZ0LnNwbGljZShuLDEpfWZ1bmN0aW9uIHdfKHQpe2ZvcihsZXQgZT10Lmxlbmd0aC0xO2U+PTA7ZS0tKWlmKHZvaWQgMCE9PXRbZV0pcmV0dXJuIHRbZV19T18uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE9fKSh2cihhXyksdnIocnApLHZyKFpzKSx2cih1ZyksdnIoSXkpKX0sT18uybVwcm92PU1uKHt0b2tlbjpPXyxmYWN0b3J5Ok9fLsm1ZmFjfSksT18uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTphX30se3R5cGU6cnB9LHt0eXBlOlpzfSx7dHlwZTp1Z30se3R5cGU6SXl9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE9fLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTphX30se3R5cGU6cnB9LHt0eXBlOlpzfSx7dHlwZTp1Z30se3R5cGU6SXl9XX0pLG51bGwpO2NsYXNzIGtfe31jb25zdCBTXz17ZmFjdG9yeVBhdGhQcmVmaXg6IiIsZmFjdG9yeVBhdGhTdWZmaXg6Ii5uZ2ZhY3RvcnkifTtjbGFzcyBEX3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2NvbXBpbGVyPXQsdGhpcy5fY29uZmlnPWV8fFNffWxvYWQodCl7cmV0dXJuIHRoaXMubG9hZEFuZENvbXBpbGUodCl9bG9hZEFuZENvbXBpbGUodCl7bGV0W2Usbl09dC5zcGxpdCgiIyIpO3JldHVybiB2b2lkIDA9PT1uJiYobj0iZGVmYXVsdCIpLFN5c3RlbS5pbXBvcnQoZSkudGhlbigodD0+dFtuXSkpLnRoZW4oKHQ9PkVfKHQsZSxuKSkpLnRoZW4oKHQ9PnRoaXMuX2NvbXBpbGVyLmNvbXBpbGVNb2R1bGVBc3luYyh0KSkpfWxvYWRGYWN0b3J5KHQpe2xldFtlLG5dPXQuc3BsaXQoIiMiKSxvPSJOZ0ZhY3RvcnkiO3JldHVybiB2b2lkIDA9PT1uJiYobj0iZGVmYXVsdCIsbz0iIiksU3lzdGVtLmltcG9ydCh0aGlzLl9jb25maWcuZmFjdG9yeVBhdGhQcmVmaXgrZSt0aGlzLl9jb25maWcuZmFjdG9yeVBhdGhTdWZmaXgpLnRoZW4oKHQ9PnRbbitvXSkpLnRoZW4oKHQ9PkVfKHQsZSxuKSkpfX1mdW5jdGlvbiBFXyh0LGUsbil7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCAnJHtufScgaW4gJyR7ZX0nYCk7cmV0dXJuIHR9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL0RfLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxEXykodnIoZV8pLHZyKGtfLDgpKX0sRF8uybVwcm92PU1uKHt0b2tlbjpEXyxmYWN0b3J5OkRfLsm1ZmFjfSksRF8uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplX30se3R5cGU6a18sZGVjb3JhdG9yczpbe3R5cGU6U3J9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRF8sW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVffSx7dHlwZTprXyxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV19KSxudWxsKTtjb25zdCBSXz1DXyhudWxsLCJjb3JlIixbe3Byb3ZpZGU6anksdXNlVmFsdWU6InVua25vd24ifSx7cHJvdmlkZTp2XyxkZXBzOltycF19LHtwcm92aWRlOnVfLGRlcHM6W119LHtwcm92aWRlOkd5LGRlcHM6W119XSksQV89W3twcm92aWRlOk9fLHVzZUNsYXNzOk9fLGRlcHM6W2FfLHJwLFpzLHVnLEl5XX0se3Byb3ZpZGU6dWgsZGVwczpbYV9dLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gVF8odCl7bGV0IGU9W107cmV0dXJuIHQub25TdGFibGUuc3Vic2NyaWJlKCgoKT0+e2Zvcig7ZS5sZW5ndGg7KWUucG9wKCkoKX0pKSxmdW5jdGlvbih0KXtlLnB1c2godCl9fX0se3Byb3ZpZGU6SXksdXNlQ2xhc3M6SXksZGVwczpbW25ldyBTcix6eV1dfSx7cHJvdmlkZTplXyx1c2VDbGFzczplXyxkZXBzOltdfSxGeSx7cHJvdmlkZTpIZyx1c2VGYWN0b3J5OgovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gTl8oKXtyZXR1cm4gcWd9LGRlcHM6W119LHtwcm92aWRlOkxnLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gel8oKXtyZXR1cm4gWmd9LGRlcHM6W119LHtwcm92aWRlOld5LHVzZUZhY3Rvcnk6ZnVuY3Rpb24gSV8odCl7cmV0dXJuIFh1KHQ9dHx8KGZ1bmN0aW9uIGUoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBnb29nJiYiZW4iIT09Z29vZy5nZXRMb2NhbGUoKT9nb29nLmdldExvY2FsZSgpOiJ1bmRlZmluZWQiIT10eXBlb2YgJGxvY2FsaXplJiYkbG9jYWxpemUubG9jYWxlfHxHdX0pKCkpLHR9LGRlcHM6W1tuZXcga3IoV3kpLG5ldyBTcixuZXcgRXJdXX0se3Byb3ZpZGU6WXksdXNlVmFsdWU6IlVTRCJ9XTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIEhfe2NvbnN0cnVjdG9yKHQpe319dmFyIEZfLExfO0hfLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIXykodnIoT18pKX0sSF8uybVtb2Q9YW8oe3R5cGU6SF99KSxIXy7JtWluaj12bih7cHJvdmlkZXJzOkFffSksSF8uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpPX31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSF8sW3t0eXBlOkF5LGFyZ3M6W3twcm92aWRlcnM6QV99XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpPX31dfSksbnVsbCksKGZ1bmN0aW9uKHQpe3RbdC5DcmVhdGVWaWV3Tm9kZXM9MF09IkNyZWF0ZVZpZXdOb2RlcyIsdFt0LkNoZWNrTm9DaGFuZ2VzPTFdPSJDaGVja05vQ2hhbmdlcyIsdFt0LkNoZWNrTm9DaGFuZ2VzUHJvamVjdGVkVmlld3M9Ml09IkNoZWNrTm9DaGFuZ2VzUHJvamVjdGVkVmlld3MiLHRbdC5DaGVja0FuZFVwZGF0ZT0zXT0iQ2hlY2tBbmRVcGRhdGUiLHRbdC5DaGVja0FuZFVwZGF0ZVByb2plY3RlZFZpZXdzPTRdPSJDaGVja0FuZFVwZGF0ZVByb2plY3RlZFZpZXdzIix0W3QuRGVzdHJveT01XT0iRGVzdHJveSJ9KShGX3x8KEZfPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5jcmVhdGU9MF09ImNyZWF0ZSIsdFt0LmRldGVjdENoYW5nZXM9MV09ImRldGVjdENoYW5nZXMiLHRbdC5jaGVja05vQ2hhbmdlcz0yXT0iY2hlY2tOb0NoYW5nZXMiLHRbdC5kZXN0cm95PTNdPSJkZXN0cm95Iix0W3QuaGFuZGxlRXZlbnQ9NF09ImhhbmRsZUV2ZW50In0pKExffHwoTF89e30pKSwKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJm5nRGV2TW9kZSYmKGpuLiRsb2NhbGl6ZT1qbi4kbG9jYWxpemV8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJJdCBsb29rcyBsaWtlIHlvdXIgYXBwbGljYXRpb24gb3Igb25lIG9mIGl0cyBkZXBlbmRlbmNpZXMgaXMgdXNpbmcgaTE4bi5cbkFuZ3VsYXIgOSBpbnRyb2R1Y2VkIGEgZ2xvYmFsIGAkbG9jYWxpemUoKWAgZnVuY3Rpb24gdGhhdCBuZWVkcyB0byBiZSBsb2FkZWQuXG5QbGVhc2UgcnVuIGBuZyBhZGQgQGFuZ3VsYXIvbG9jYWxpemVgIGZyb20gdGhlIEFuZ3VsYXIgQ0xJLlxuKEZvciBub24tQ0xJIHByb2plY3RzLCBhZGQgYGltcG9ydCAnQGFuZ3VsYXIvbG9jYWxpemUvaW5pdCc7YCB0byB5b3VyIGBwb2x5ZmlsbHMudHNgIGZpbGUuXG5Gb3Igc2VydmVyLXNpZGUgcmVuZGVyaW5nIGFwcGxpY2F0aW9ucyBhZGQgdGhlIGltcG9ydCB0byB5b3VyIGBtYWluLnNlcnZlci50c2AgZmlsZS4pIil9KQovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi87Y29uc3QgQl89InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLFZfPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3csal89InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYidW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYsVV89InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJmdsb2JhbCxHXz1mdW5jdGlvbih0LC4uLmUpe2lmKEdfLnRyYW5zbGF0ZSl7Y29uc3Qgbj1HXy50cmFuc2xhdGUodCxlKTt0PW5bMF0sZT1uWzFdfWxldCBuPVdfKHRbMF0sdC5yYXdbMF0pO2ZvcihsZXQgbz0xO288dC5sZW5ndGg7bysrKW4rPWVbby0xXStXXyh0W29dLHQucmF3W29dKTtyZXR1cm4gbn07ZnVuY3Rpb24gV18odCxlKXtyZXR1cm4iOiI9PT1lLmNoYXJBdCgwKT90LnN1YnN0cmluZygoZnVuY3Rpb24gbih0LGUpe2ZvcihsZXQgbj0xLG89MTtuPHQubGVuZ3RoO24rKyxvKyspaWYoIlxcIj09PWVbb10pbysrO2Vsc2UgaWYoIjoiPT09dFtuXSlyZXR1cm4gbjt0aHJvdyBuZXcgRXJyb3IoYFVudGVybWluYXRlZCAkbG9jYWxpemUgbWV0YWRhdGEgYmxvY2sgaW4gIiR7ZX0iLmApfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0LGUpKzEpOnR9KEJffHxVX3x8Vl98fGpfKS4kbG9jYWxpemU9R187Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovCmxldCBZXz1udWxsO2Z1bmN0aW9uIHFfKCl7cmV0dXJuIFlffQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgWl89bmV3IEdhKCJEb2N1bWVudFRva2VuIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIFhfe2hpc3RvcnlHbyh0KXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfX1mdW5jdGlvbiBLXygpe3JldHVybiB2cihKXyl9WF8uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhfKX0sWF8uybVwcm92PU1uKHtmYWN0b3J5OktfLHRva2VuOlhfLHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWF8sW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJwbGF0Zm9ybSIsdXNlRmFjdG9yeTpLX31dfV0sbnVsbCxudWxsKSxuZXcgR2EoIkxvY2F0aW9uIEluaXRpYWxpemVkIik7Y2xhc3MgSl8gZXh0ZW5kcyBYX3tjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX2RvYz10LHRoaXMuX2luaXQoKX1faW5pdCgpe3RoaXMubG9jYXRpb249d2luZG93LmxvY2F0aW9uLHRoaXMuX2hpc3Rvcnk9d2luZG93Lmhpc3Rvcnl9Z2V0QmFzZUhyZWZGcm9tRE9NKCl7cmV0dXJuIHFfKCkuZ2V0QmFzZUhyZWYodGhpcy5fZG9jKX1vblBvcFN0YXRlKHQpe2NvbnN0IGU9cV8oKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0LCExKSwoKT0+ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdCl9b25IYXNoQ2hhbmdlKHQpe2NvbnN0IGU9cV8oKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLHQsITEpLCgpPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLHQpfWdldCBocmVmKCl7cmV0dXJuIHRoaXMubG9jYXRpb24uaHJlZn1nZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5wcm90b2NvbH1nZXQgaG9zdG5hbWUoKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5ob3N0bmFtZX1nZXQgcG9ydCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLnBvcnR9Z2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMubG9jYXRpb24ucGF0aG5hbWV9Z2V0IHNlYXJjaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLnNlYXJjaH1nZXQgaGFzaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLmhhc2h9c2V0IHBhdGhuYW1lKHQpe3RoaXMubG9jYXRpb24ucGF0aG5hbWU9dH1wdXNoU3RhdGUodCxlLG4pe1FfKCk/dGhpcy5faGlzdG9yeS5wdXNoU3RhdGUodCxlLG4pOnRoaXMubG9jYXRpb24uaGFzaD1ufXJlcGxhY2VTdGF0ZSh0LGUsbil7UV8oKT90aGlzLl9oaXN0b3J5LnJlcGxhY2VTdGF0ZSh0LGUsbik6dGhpcy5sb2NhdGlvbi5oYXNoPW59Zm9yd2FyZCgpe3RoaXMuX2hpc3RvcnkuZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9oaXN0b3J5LmJhY2soKX1oaXN0b3J5R28odD0wKXt0aGlzLl9oaXN0b3J5LmdvKHQpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX2hpc3Rvcnkuc3RhdGV9fWZ1bmN0aW9uIFFfKCl7cmV0dXJuISF3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGV9ZnVuY3Rpb24gJF8oKXtyZXR1cm4gbmV3IEpfKHZyKFpfKSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB0Qyh0LGUpe2lmKDA9PXQubGVuZ3RoKXJldHVybiBlO2lmKDA9PWUubGVuZ3RoKXJldHVybiB0O2xldCBuPTA7cmV0dXJuIHQuZW5kc1dpdGgoIi8iKSYmbisrLGUuc3RhcnRzV2l0aCgiLyIpJiZuKyssMj09bj90K2Uuc3Vic3RyaW5nKDEpOjE9PW4/dCtlOnQrIi8iK2V9ZnVuY3Rpb24gZUModCl7Y29uc3QgZT10Lm1hdGNoKC8jfFw/fCQvKSxuPWUmJmUuaW5kZXh8fHQubGVuZ3RoO3JldHVybiB0LnNsaWNlKDAsbi0oIi8iPT09dFtuLTFdPzE6MCkpK3Quc2xpY2Uobil9ZnVuY3Rpb24gbkModCl7cmV0dXJuIHQmJiI/IiE9PXRbMF0/Ij8iK3Q6dH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovSl8uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEpfKSh2cihaXykpfSxKXy7JtXByb3Y9TW4oe2ZhY3Rvcnk6JF8sdG9rZW46Sl8scHJvdmlkZWRJbjoicGxhdGZvcm0ifSksSl8uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEpfLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicGxhdGZvcm0iLHVzZUZhY3Rvcnk6JF99XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpO2NsYXNzIG9De2hpc3RvcnlHbyh0KXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfX1mdW5jdGlvbiBpQyh0KXtjb25zdCBlPXZyKFpfKS5sb2NhdGlvbjtyZXR1cm4gbmV3IHJDKHZyKFhfKSxlJiZlLm9yaWdpbnx8IiIpfW9DLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxvQyl9LG9DLsm1cHJvdj1Nbih7ZmFjdG9yeTppQyx0b2tlbjpvQyxwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgob0MsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290Iix1c2VGYWN0b3J5OmlDfV19XSxudWxsLG51bGwpO2NvbnN0IGFDPW5ldyBHYSgiYXBwQmFzZUhyZWYiKTtjbGFzcyByQyBleHRlbmRzIG9De2NvbnN0cnVjdG9yKHQsZSl7aWYoc3VwZXIoKSx0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uPXQsdGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnM9W10sbnVsbD09ZSYmKGU9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5nZXRCYXNlSHJlZkZyb21ET00oKSksbnVsbD09ZSl0aHJvdyBuZXcgRXJyb3IoIk5vIGJhc2UgaHJlZiBzZXQuIFBsZWFzZSBwcm92aWRlIGEgdmFsdWUgZm9yIHRoZSBBUFBfQkFTRV9IUkVGIHRva2VuIG9yIGFkZCBhIGJhc2UgZWxlbWVudCB0byB0aGUgZG9jdW1lbnQuIik7dGhpcy5fYmFzZUhyZWY9ZX1uZ09uRGVzdHJveSgpe2Zvcig7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMubGVuZ3RoOyl0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5wb3AoKSgpfW9uUG9wU3RhdGUodCl7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucHVzaCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uUG9wU3RhdGUodCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vbkhhc2hDaGFuZ2UodCkpfWdldEJhc2VIcmVmKCl7cmV0dXJuIHRoaXMuX2Jhc2VIcmVmfXByZXBhcmVFeHRlcm5hbFVybCh0KXtyZXR1cm4gdEModGhpcy5fYmFzZUhyZWYsdCl9cGF0aCh0PSExKXtjb25zdCBlPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWUrbkModGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5zZWFyY2gpLG49dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5oYXNoO3JldHVybiBuJiZ0P2Ake2V9JHtufWA6ZX1wdXNoU3RhdGUodCxlLG4sbyl7Y29uc3QgaT10aGlzLnByZXBhcmVFeHRlcm5hbFVybChuK25DKG8pKTt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLnB1c2hTdGF0ZSh0LGUsaSl9cmVwbGFjZVN0YXRlKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwobituQyhvKSk7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5yZXBsYWNlU3RhdGUodCxlLGkpfWZvcndhcmQoKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5iYWNrKCl9aGlzdG9yeUdvKHQ9MCl7dmFyIGUsbjtudWxsPT09KG49KGU9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbikuaGlzdG9yeUdvKXx8dm9pZCAwPT09bnx8bi5jYWxsKGUsdCl9fXJDLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxyQykodnIoWF8pLHZyKGFDLDgpKX0sckMuybVwcm92PU1uKHt0b2tlbjpyQyxmYWN0b3J5OnJDLsm1ZmFjfSksckMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYX30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlthQ119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgockMsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhffSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W2FDXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHNDIGV4dGVuZHMgb0N7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb249dCx0aGlzLl9iYXNlSHJlZj0iIix0aGlzLl9yZW1vdmVMaXN0ZW5lckZucz1bXSxudWxsIT1lJiYodGhpcy5fYmFzZUhyZWY9ZSl9bmdPbkRlc3Ryb3koKXtmb3IoO3RoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLmxlbmd0aDspdGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucG9wKCkoKX1vblBvcFN0YXRlKHQpe3RoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLnB1c2godGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vblBvcFN0YXRlKHQpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ub25IYXNoQ2hhbmdlKHQpKX1nZXRCYXNlSHJlZigpe3JldHVybiB0aGlzLl9iYXNlSHJlZn1wYXRoKHQ9ITEpe2xldCBlPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24uaGFzaDtyZXR1cm4gbnVsbD09ZSYmKGU9IiMiKSxlLmxlbmd0aD4wP2Uuc3Vic3RyaW5nKDEpOmV9cHJlcGFyZUV4dGVybmFsVXJsKHQpe2NvbnN0IGU9dEModGhpcy5fYmFzZUhyZWYsdCk7cmV0dXJuIGUubGVuZ3RoPjA/IiMiK2U6ZX1wdXNoU3RhdGUodCxlLG4sbyl7bGV0IGk9dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwobituQyhvKSk7MD09aS5sZW5ndGgmJihpPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWUpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucHVzaFN0YXRlKHQsZSxpKX1yZXBsYWNlU3RhdGUodCxlLG4sbyl7bGV0IGk9dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwobituQyhvKSk7MD09aS5sZW5ndGgmJihpPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWUpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucmVwbGFjZVN0YXRlKHQsZSxpKX1mb3J3YXJkKCl7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5mb3J3YXJkKCl9YmFjaygpe3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uYmFjaygpfWhpc3RvcnlHbyh0PTApe3ZhciBlLG47bnVsbD09PShuPShlPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24pLmhpc3RvcnlHbyl8fHZvaWQgMD09PW58fG4uY2FsbChlLHQpfX1zQy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8c0MpKHZyKFhfKSx2cihhQyw4KSl9LHNDLsm1cHJvdj1Nbih7dG9rZW46c0MsZmFjdG9yeTpzQy7JtWZhY30pLHNDLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WF99LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbYUNdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHNDLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYX30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlthQ119XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBsQ3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3N1YmplY3Q9bmV3IExoLHRoaXMuX3VybENoYW5nZUxpc3RlbmVycz1bXSx0aGlzLl9wbGF0Zm9ybVN0cmF0ZWd5PXQ7Y29uc3Qgbj10aGlzLl9wbGF0Zm9ybVN0cmF0ZWd5LmdldEJhc2VIcmVmKCk7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbj1lLHRoaXMuX2Jhc2VIcmVmPWVDKGRDKG4pKSx0aGlzLl9wbGF0Zm9ybVN0cmF0ZWd5Lm9uUG9wU3RhdGUoKHQ9Pnt0aGlzLl9zdWJqZWN0LmVtaXQoe3VybDp0aGlzLnBhdGgoITApLHBvcDohMCxzdGF0ZTp0LnN0YXRlLHR5cGU6dC50eXBlfSl9KSl9cGF0aCh0PSExKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUodGhpcy5fcGxhdGZvcm1TdHJhdGVneS5wYXRoKHQpKX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmdldFN0YXRlKCl9aXNDdXJyZW50UGF0aEVxdWFsVG8odCxlPSIiKXtyZXR1cm4gdGhpcy5wYXRoKCk9PXRoaXMubm9ybWFsaXplKHQrbkMoZSkpfW5vcm1hbGl6ZSh0KXtyZXR1cm4gbEMuc3RyaXBUcmFpbGluZ1NsYXNoKChmdW5jdGlvbiBlKHQsbil7cmV0dXJuIHQmJm4uc3RhcnRzV2l0aCh0KT9uLnN1YnN0cmluZyh0Lmxlbmd0aCk6bn0pKHRoaXMuX2Jhc2VIcmVmLGRDKHQpKSl9cHJlcGFyZUV4dGVybmFsVXJsKHQpe3JldHVybiB0JiYiLyIhPT10WzBdJiYodD0iLyIrdCksdGhpcy5fcGxhdGZvcm1TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwodCl9Z28odCxlPSIiLG49bnVsbCl7dGhpcy5fcGxhdGZvcm1TdHJhdGVneS5wdXNoU3RhdGUobiwiIix0LGUpLHRoaXMuX25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0aGlzLnByZXBhcmVFeHRlcm5hbFVybCh0K25DKGUpKSxuKX1yZXBsYWNlU3RhdGUodCxlPSIiLG49bnVsbCl7dGhpcy5fcGxhdGZvcm1TdHJhdGVneS5yZXBsYWNlU3RhdGUobiwiIix0LGUpLHRoaXMuX25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0aGlzLnByZXBhcmVFeHRlcm5hbFVybCh0K25DKGUpKSxuKX1mb3J3YXJkKCl7dGhpcy5fcGxhdGZvcm1TdHJhdGVneS5mb3J3YXJkKCl9YmFjaygpe3RoaXMuX3BsYXRmb3JtU3RyYXRlZ3kuYmFjaygpfWhpc3RvcnlHbyh0PTApe3ZhciBlLG47bnVsbD09PShuPShlPXRoaXMuX3BsYXRmb3JtU3RyYXRlZ3kpLmhpc3RvcnlHbyl8fHZvaWQgMD09PW58fG4uY2FsbChlLHQpfW9uVXJsQ2hhbmdlKHQpe3RoaXMuX3VybENoYW5nZUxpc3RlbmVycy5wdXNoKHQpLHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbnx8KHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj10aGlzLnN1YnNjcmliZSgodD0+e3RoaXMuX25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0LnVybCx0LnN0YXRlKX0pKSl9X25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0PSIiLGUpe3RoaXMuX3VybENoYW5nZUxpc3RlbmVycy5mb3JFYWNoKChuPT5uKHQsZSkpKX1zdWJzY3JpYmUodCxlLG4pe3JldHVybiB0aGlzLl9zdWJqZWN0LnN1YnNjcmliZSh7bmV4dDp0LGVycm9yOmUsY29tcGxldGU6bn0pfX1mdW5jdGlvbiBjQygpe3JldHVybiBuZXcgbEModnIob0MpLHZyKFhfKSl9ZnVuY3Rpb24gZEModCl7cmV0dXJuIHQucmVwbGFjZSgvXC9pbmRleC5odG1sJC8sIiIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbEMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxDKSh2cihvQyksdnIoWF8pKX0sbEMubm9ybWFsaXplUXVlcnlQYXJhbXM9bkMsbEMuam9pbldpdGhTbGFzaD10QyxsQy5zdHJpcFRyYWlsaW5nU2xhc2g9ZUMsbEMuybVwcm92PU1uKHtmYWN0b3J5OmNDLHRva2VuOmxDLHByb3ZpZGVkSW46InJvb3QifSksbEMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpvQ30se3R5cGU6WF99XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGxDLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCIsdXNlRmFjdG9yeTpjQ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOm9DfSx7dHlwZTpYX31dfSksbnVsbCk7Y29uc3QgcEM9e0FEUDpbdm9pZCAwLHZvaWQgMCwwXSxBRk46W3ZvaWQgMCx2b2lkIDAsMF0sQUxMOlt2b2lkIDAsdm9pZCAwLDBdLEFNRDpbdm9pZCAwLHZvaWQgMCwyXSxBT0E6W3ZvaWQgMCwiS3oiXSxBUlM6W3ZvaWQgMCwiJCJdLEFVRDpbIkEkIiwiJCJdLEJBTTpbdm9pZCAwLCJLTSJdLEJCRDpbdm9pZCAwLCIkIl0sQkRUOlt2b2lkIDAsIuCnsyJdLEJIRDpbdm9pZCAwLHZvaWQgMCwzXSxCSUY6W3ZvaWQgMCx2b2lkIDAsMF0sQk1EOlt2b2lkIDAsIiQiXSxCTkQ6W3ZvaWQgMCwiJCJdLEJPQjpbdm9pZCAwLCJCcyJdLEJSTDpbIlIkIl0sQlNEOlt2b2lkIDAsIiQiXSxCV1A6W3ZvaWQgMCwiUCJdLEJZTjpbdm9pZCAwLCLRgC4iLDJdLEJZUjpbdm9pZCAwLHZvaWQgMCwwXSxCWkQ6W3ZvaWQgMCwiJCJdLENBRDpbIkNBJCIsIiQiLDJdLENIRjpbdm9pZCAwLHZvaWQgMCwyXSxDTEY6W3ZvaWQgMCx2b2lkIDAsNF0sQ0xQOlt2b2lkIDAsIiQiLDBdLENOWTpbIkNOwqUiLCLCpSJdLENPUDpbdm9pZCAwLCIkIiwyXSxDUkM6W3ZvaWQgMCwi4oKhIiwyXSxDVUM6W3ZvaWQgMCwiJCJdLENVUDpbdm9pZCAwLCIkIl0sQ1pLOlt2b2lkIDAsIkvEjSIsMl0sREpGOlt2b2lkIDAsdm9pZCAwLDBdLERLSzpbdm9pZCAwLCJrciIsMl0sRE9QOlt2b2lkIDAsIiQiXSxFR1A6W3ZvaWQgMCwiRcKjIl0sRVNQOlt2b2lkIDAsIuKCpyIsMF0sRVVSOlsi4oKsIl0sRkpEOlt2b2lkIDAsIiQiXSxGS1A6W3ZvaWQgMCwiwqMiXSxHQlA6WyLCoyJdLEdFTDpbdm9pZCAwLCLigr4iXSxHSVA6W3ZvaWQgMCwiwqMiXSxHTkY6W3ZvaWQgMCwiRkciLDBdLEdUUTpbdm9pZCAwLCJRIl0sR1lEOlt2b2lkIDAsIiQiLDJdLEhLRDpbIkhLJCIsIiQiXSxITkw6W3ZvaWQgMCwiTCJdLEhSSzpbdm9pZCAwLCJrbiJdLEhVRjpbdm9pZCAwLCJGdCIsMl0sSURSOlt2b2lkIDAsIlJwIiwyXSxJTFM6WyLigqoiXSxJTlI6WyLigrkiXSxJUUQ6W3ZvaWQgMCx2b2lkIDAsMF0sSVJSOlt2b2lkIDAsdm9pZCAwLDBdLElTSzpbdm9pZCAwLCJrciIsMF0sSVRMOlt2b2lkIDAsdm9pZCAwLDBdLEpNRDpbdm9pZCAwLCIkIl0sSk9EOlt2b2lkIDAsdm9pZCAwLDNdLEpQWTpbIsKlIix2b2lkIDAsMF0sS0hSOlt2b2lkIDAsIuGfmyJdLEtNRjpbdm9pZCAwLCJDRiIsMF0sS1BXOlt2b2lkIDAsIuKCqSIsMF0sS1JXOlsi4oKpIix2b2lkIDAsMF0sS1dEOlt2b2lkIDAsdm9pZCAwLDNdLEtZRDpbdm9pZCAwLCIkIl0sS1pUOlt2b2lkIDAsIuKCuCJdLExBSzpbdm9pZCAwLCLigq0iLDBdLExCUDpbdm9pZCAwLCJMwqMiLDBdLExLUjpbdm9pZCAwLCJScyJdLExSRDpbdm9pZCAwLCIkIl0sTFRMOlt2b2lkIDAsIkx0Il0sTFVGOlt2b2lkIDAsdm9pZCAwLDBdLExWTDpbdm9pZCAwLCJMcyJdLExZRDpbdm9pZCAwLHZvaWQgMCwzXSxNR0E6W3ZvaWQgMCwiQXIiLDBdLE1HRjpbdm9pZCAwLHZvaWQgMCwwXSxNTUs6W3ZvaWQgMCwiSyIsMF0sTU5UOlt2b2lkIDAsIuKCriIsMl0sTVJPOlt2b2lkIDAsdm9pZCAwLDBdLE1VUjpbdm9pZCAwLCJScyIsMl0sTVhOOlsiTVgkIiwiJCJdLE1ZUjpbdm9pZCAwLCJSTSJdLE5BRDpbdm9pZCAwLCIkIl0sTkdOOlt2b2lkIDAsIuKCpiJdLE5JTzpbdm9pZCAwLCJDJCJdLE5PSzpbdm9pZCAwLCJrciIsMl0sTlBSOlt2b2lkIDAsIlJzIl0sTlpEOlsiTlokIiwiJCJdLE9NUjpbdm9pZCAwLHZvaWQgMCwzXSxQSFA6W3ZvaWQgMCwi4oKxIl0sUEtSOlt2b2lkIDAsIlJzIiwyXSxQTE46W3ZvaWQgMCwiesWCIl0sUFlHOlt2b2lkIDAsIuKCsiIsMF0sUk9OOlt2b2lkIDAsImxlaSJdLFJTRDpbdm9pZCAwLHZvaWQgMCwwXSxSVUI6W3ZvaWQgMCwi4oK9Il0sUlVSOlt2b2lkIDAsItGALiJdLFJXRjpbdm9pZCAwLCJSRiIsMF0sU0JEOlt2b2lkIDAsIiQiXSxTRUs6W3ZvaWQgMCwia3IiLDJdLFNHRDpbdm9pZCAwLCIkIl0sU0hQOlt2b2lkIDAsIsKjIl0sU0xMOlt2b2lkIDAsdm9pZCAwLDBdLFNPUzpbdm9pZCAwLHZvaWQgMCwwXSxTUkQ6W3ZvaWQgMCwiJCJdLFNTUDpbdm9pZCAwLCLCoyJdLFNURDpbdm9pZCAwLHZvaWQgMCwwXSxTVE46W3ZvaWQgMCwiRGIiXSxTWVA6W3ZvaWQgMCwiwqMiLDBdLFRIQjpbdm9pZCAwLCLguL8iXSxUTU06W3ZvaWQgMCx2b2lkIDAsMF0sVE5EOlt2b2lkIDAsdm9pZCAwLDNdLFRPUDpbdm9pZCAwLCJUJCJdLFRSTDpbdm9pZCAwLHZvaWQgMCwwXSxUUlk6W3ZvaWQgMCwi4oK6Il0sVFREOlt2b2lkIDAsIiQiXSxUV0Q6WyJOVCQiLCIkIiwyXSxUWlM6W3ZvaWQgMCx2b2lkIDAsMl0sVUFIOlt2b2lkIDAsIuKCtCJdLFVHWDpbdm9pZCAwLHZvaWQgMCwwXSxVU0Q6WyIkIl0sVVlJOlt2b2lkIDAsdm9pZCAwLDBdLFVZVTpbdm9pZCAwLCIkIl0sVVlXOlt2b2lkIDAsdm9pZCAwLDRdLFVaUzpbdm9pZCAwLHZvaWQgMCwyXSxWRUY6W3ZvaWQgMCwiQnMiLDJdLFZORDpbIuKCqyIsdm9pZCAwLDBdLFZVVjpbdm9pZCAwLHZvaWQgMCwwXSxYQUY6WyJGQ0ZBIix2b2lkIDAsMF0sWENEOlsiRUMkIiwiJCJdLFhPRjpbIkNGQSIsdm9pZCAwLDBdLFhQRjpbIkNGUEYiLHZvaWQgMCwwXSxYWFg6WyLCpCJdLFlFUjpbdm9pZCAwLHZvaWQgMCwwXSxaQVI6W3ZvaWQgMCwiUiJdLFpNSzpbdm9pZCAwLHZvaWQgMCwwXSxaTVc6W3ZvaWQgMCwiWksiXSxaV0Q6W3ZvaWQgMCx2b2lkIDAsMF19OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi92YXIgbUMsdUMsZkMsZ0MsaEMsYkMseUM7ZnVuY3Rpb24gX0ModCxlKXtyZXR1cm4gd0MoTHUodClbanUuRGF0ZUZvcm1hdF0sZSl9ZnVuY3Rpb24gQ0ModCxlKXtyZXR1cm4gd0MoTHUodClbanUuVGltZUZvcm1hdF0sZSl9ZnVuY3Rpb24gTUModCxlKXtyZXR1cm4gd0MoTHUodClbanUuRGF0ZVRpbWVGb3JtYXRdLGUpfWZ1bmN0aW9uIHZDKHQsZSl7Y29uc3Qgbj1MdSh0KSxvPW5banUuTnVtYmVyU3ltYm9sc11bZV07aWYodm9pZCAwPT09byl7aWYoZT09PWJDLkN1cnJlbmN5RGVjaW1hbClyZXR1cm4gbltqdS5OdW1iZXJTeW1ib2xzXVtiQy5EZWNpbWFsXTtpZihlPT09YkMuQ3VycmVuY3lHcm91cClyZXR1cm4gbltqdS5OdW1iZXJTeW1ib2xzXVtiQy5Hcm91cF19cmV0dXJuIG99ZnVuY3Rpb24geEModCxlKXtyZXR1cm4gTHUodClbanUuTnVtYmVyRm9ybWF0c11bZV19IShmdW5jdGlvbih0KXt0W3QuRGVjaW1hbD0wXT0iRGVjaW1hbCIsdFt0LlBlcmNlbnQ9MV09IlBlcmNlbnQiLHRbdC5DdXJyZW5jeT0yXT0iQ3VycmVuY3kiLHRbdC5TY2llbnRpZmljPTNdPSJTY2llbnRpZmljIn0pKG1DfHwobUM9e30pKSwoZnVuY3Rpb24odCl7dFt0Llplcm89MF09Ilplcm8iLHRbdC5PbmU9MV09Ik9uZSIsdFt0LlR3bz0yXT0iVHdvIix0W3QuRmV3PTNdPSJGZXciLHRbdC5NYW55PTRdPSJNYW55Iix0W3QuT3RoZXI9NV09Ik90aGVyIn0pKHVDfHwodUM9e30pKSwoZnVuY3Rpb24odCl7dFt0LkZvcm1hdD0wXT0iRm9ybWF0Iix0W3QuU3RhbmRhbG9uZT0xXT0iU3RhbmRhbG9uZSJ9KShmQ3x8KGZDPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5OYXJyb3c9MF09Ik5hcnJvdyIsdFt0LkFiYnJldmlhdGVkPTFdPSJBYmJyZXZpYXRlZCIsdFt0LldpZGU9Ml09IldpZGUiLHRbdC5TaG9ydD0zXT0iU2hvcnQifSkoZ0N8fChnQz17fSkpLChmdW5jdGlvbih0KXt0W3QuU2hvcnQ9MF09IlNob3J0Iix0W3QuTWVkaXVtPTFdPSJNZWRpdW0iLHRbdC5Mb25nPTJdPSJMb25nIix0W3QuRnVsbD0zXT0iRnVsbCJ9KShoQ3x8KGhDPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5EZWNpbWFsPTBdPSJEZWNpbWFsIix0W3QuR3JvdXA9MV09Ikdyb3VwIix0W3QuTGlzdD0yXT0iTGlzdCIsdFt0LlBlcmNlbnRTaWduPTNdPSJQZXJjZW50U2lnbiIsdFt0LlBsdXNTaWduPTRdPSJQbHVzU2lnbiIsdFt0Lk1pbnVzU2lnbj01XT0iTWludXNTaWduIix0W3QuRXhwb25lbnRpYWw9Nl09IkV4cG9uZW50aWFsIix0W3QuU3VwZXJzY3JpcHRpbmdFeHBvbmVudD03XT0iU3VwZXJzY3JpcHRpbmdFeHBvbmVudCIsdFt0LlBlck1pbGxlPThdPSJQZXJNaWxsZSIsdFt0WzEvMF09OV09IkluZmluaXR5Iix0W3QuTmFOPTEwXT0iTmFOIix0W3QuVGltZVNlcGFyYXRvcj0xMV09IlRpbWVTZXBhcmF0b3IiLHRbdC5DdXJyZW5jeURlY2ltYWw9MTJdPSJDdXJyZW5jeURlY2ltYWwiLHRbdC5DdXJyZW5jeUdyb3VwPTEzXT0iQ3VycmVuY3lHcm91cCJ9KShiQ3x8KGJDPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5TdW5kYXk9MF09IlN1bmRheSIsdFt0Lk1vbmRheT0xXT0iTW9uZGF5Iix0W3QuVHVlc2RheT0yXT0iVHVlc2RheSIsdFt0LldlZG5lc2RheT0zXT0iV2VkbmVzZGF5Iix0W3QuVGh1cnNkYXk9NF09IlRodXJzZGF5Iix0W3QuRnJpZGF5PTVdPSJGcmlkYXkiLHRbdC5TYXR1cmRheT02XT0iU2F0dXJkYXkifSkoeUN8fCh5Qz17fSkpO2NvbnN0IE9DPUJ1O2Z1bmN0aW9uIFBDKHQpe2lmKCF0W2p1LkV4dHJhRGF0YV0pdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIGV4dHJhIGxvY2FsZSBkYXRhIGZvciB0aGUgbG9jYWxlICIke3RbanUuTG9jYWxlSWRdfSIuIFVzZSAicmVnaXN0ZXJMb2NhbGVEYXRhIiB0byBsb2FkIG5ldyBkYXRhLiBTZWUgdGhlICJJMThuIGd1aWRlIiBvbiBhbmd1bGFyLmlvIHRvIGtub3cgbW9yZS5gKX1mdW5jdGlvbiB3Qyh0LGUpe2ZvcihsZXQgbj1lO24+LTE7bi0tKWlmKHZvaWQgMCE9PXRbbl0pcmV0dXJuIHRbbl07dGhyb3cgbmV3IEVycm9yKCJMb2NhbGUgZGF0YSBBUEk6IGxvY2FsZSBkYXRhIHVuZGVmaW5lZCIpfWZ1bmN0aW9uIGtDKHQpe2NvbnN0W2Usbl09dC5zcGxpdCgiOiIpO3JldHVybntob3VyczorZSxtaW51dGVzOitufX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFNDPS9eKFxkezR9KS0/KFxkXGQpLT8oXGRcZCkoPzpUKFxkXGQpKD86Oj8oXGRcZCkoPzo6PyhcZFxkKSg/OlwuKFxkKykpPyk/KT8oWnwoWystXSkoXGRcZCk6PyhcZFxkKSk/KT8kLyxEQz17fSxFQz0vKCg/OlteQkVHSExNT1NXWVphYmNkaG1zd3l6J10rKXwoPzonKD86W14nXXwnJykqJyl8KD86R3sxLDV9fHl7MSw0fXxZezEsNH18TXsxLDV9fEx7MSw1fXx3ezEsMn18V3sxfXxkezEsMn18RXsxLDZ9fGN7MSw2fXxhezEsNX18YnsxLDV9fEJ7MSw1fXxoezEsMn18SHsxLDJ9fG17MSwyfXxzezEsMn18U3sxLDN9fHp7MSw0fXxaezEsNX18T3sxLDR9KSkoW1xzXFNdKikvO3ZhciBSQyxBQyxUQztmdW5jdGlvbiBOQyh0LGUsbixvKXtsZXQgaT0oZnVuY3Rpb24gYSh0KXtpZihxQyh0KSlyZXR1cm4gdDtpZigibnVtYmVyIj09dHlwZW9mIHQmJiFpc05hTih0KSlyZXR1cm4gbmV3IERhdGUodCk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZih0PXQudHJpbSgpLC9eKFxkezR9KC1cZHsxLDJ9KC1cZHsxLDJ9KT8pPykkLy50ZXN0KHQpKXtjb25zdFtlLG49MSxvPTFdPXQuc3BsaXQoIi0iKS5tYXAoKHQ9Pit0KSk7cmV0dXJuIHpDKGUsbi0xLG8pfWNvbnN0IGU9cGFyc2VGbG9hdCh0KTtpZighaXNOYU4odC1lKSlyZXR1cm4gbmV3IERhdGUoZSk7bGV0IG47aWYobj10Lm1hdGNoKFNDKSlyZXR1cm4oZnVuY3Rpb24gZSh0KXtjb25zdCBlPW5ldyBEYXRlKDApO2xldCBuPTAsbz0wO2NvbnN0IGk9dFs4XT9lLnNldFVUQ0Z1bGxZZWFyOmUuc2V0RnVsbFllYXIsYT10WzhdP2Uuc2V0VVRDSG91cnM6ZS5zZXRIb3Vyczt0WzldJiYobj1OdW1iZXIodFs5XSt0WzEwXSksbz1OdW1iZXIodFs5XSt0WzExXSkpLGkuY2FsbChlLE51bWJlcih0WzFdKSxOdW1iZXIodFsyXSktMSxOdW1iZXIodFszXSkpO2NvbnN0IHI9TnVtYmVyKHRbNF18fDApLW4scz1OdW1iZXIodFs1XXx8MCktbyxsPU51bWJlcih0WzZdfHwwKSxjPU1hdGguZmxvb3IoMWUzKnBhcnNlRmxvYXQoIjAuIisodFs3XXx8MCkpKTtyZXR1cm4gYS5jYWxsKGUscixzLGwsYyksZX0pKG4pfWNvbnN0IG49bmV3IERhdGUodCk7aWYoIXFDKG4pKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGNvbnZlcnQgIiR7dH0iIGludG8gYSBkYXRlYCk7cmV0dXJuIG59KSh0KTtlPUlDKG4sZSl8fGU7bGV0IHIscz1bXTtmb3IoO2U7KXtpZihyPUVDLmV4ZWMoZSksIXIpe3MucHVzaChlKTticmVha317cz1zLmNvbmNhdChyLnNsaWNlKDEpKTtjb25zdCB0PXMucG9wKCk7aWYoIXQpYnJlYWs7ZT10fX1sZXQgbD1pLmdldFRpbWV6b25lT2Zmc2V0KCk7byYmKGw9WUMobyxsKSxpPShmdW5jdGlvbiBjKHQsZSxuKXtjb25zdCBvPW4/LTE6MSxpPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4oZnVuY3Rpb24gYSh0LGUpe3JldHVybih0PW5ldyBEYXRlKHQuZ2V0VGltZSgpKSkuc2V0TWludXRlcyh0LmdldE1pbnV0ZXMoKStlKSx0fSkodCxvKihZQyhlLGkpLWkpKX0pKGksbywhMCkpO2xldCBkPSIiO3JldHVybiBzLmZvckVhY2goKHQ9Pntjb25zdCBlPShmdW5jdGlvbiBvKHQpe2lmKFdDW3RdKXJldHVybiBXQ1t0XTtsZXQgZTtzd2l0Y2godCl7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6ZT1CQyhUQy5FcmFzLGdDLkFiYnJldmlhdGVkKTticmVhaztjYXNlIkdHR0ciOmU9QkMoVEMuRXJhcyxnQy5XaWRlKTticmVhaztjYXNlIkdHR0dHIjplPUJDKFRDLkVyYXMsZ0MuTmFycm93KTticmVhaztjYXNlInkiOmU9TEMoQUMuRnVsbFllYXIsMSwwLCExLCEwKTticmVhaztjYXNlInl5IjplPUxDKEFDLkZ1bGxZZWFyLDIsMCwhMCwhMCk7YnJlYWs7Y2FzZSJ5eXkiOmU9TEMoQUMuRnVsbFllYXIsMywwLCExLCEwKTticmVhaztjYXNlInl5eXkiOmU9TEMoQUMuRnVsbFllYXIsNCwwLCExLCEwKTticmVhaztjYXNlIlkiOmU9R0MoMSk7YnJlYWs7Y2FzZSJZWSI6ZT1HQygyLCEwKTticmVhaztjYXNlIllZWSI6ZT1HQygzKTticmVhaztjYXNlIllZWVkiOmU9R0MoNCk7YnJlYWs7Y2FzZSJNIjpjYXNlIkwiOmU9TEMoQUMuTW9udGgsMSwxKTticmVhaztjYXNlIk1NIjpjYXNlIkxMIjplPUxDKEFDLk1vbnRoLDIsMSk7YnJlYWs7Y2FzZSJNTU0iOmU9QkMoVEMuTW9udGhzLGdDLkFiYnJldmlhdGVkKTticmVhaztjYXNlIk1NTU0iOmU9QkMoVEMuTW9udGhzLGdDLldpZGUpO2JyZWFrO2Nhc2UiTU1NTU0iOmU9QkMoVEMuTW9udGhzLGdDLk5hcnJvdyk7YnJlYWs7Y2FzZSJMTEwiOmU9QkMoVEMuTW9udGhzLGdDLkFiYnJldmlhdGVkLGZDLlN0YW5kYWxvbmUpO2JyZWFrO2Nhc2UiTExMTCI6ZT1CQyhUQy5Nb250aHMsZ0MuV2lkZSxmQy5TdGFuZGFsb25lKTticmVhaztjYXNlIkxMTExMIjplPUJDKFRDLk1vbnRocyxnQy5OYXJyb3csZkMuU3RhbmRhbG9uZSk7YnJlYWs7Y2FzZSJ3IjplPVVDKDEpO2JyZWFrO2Nhc2Uid3ciOmU9VUMoMik7YnJlYWs7Y2FzZSJXIjplPVVDKDEsITApO2JyZWFrO2Nhc2UiZCI6ZT1MQyhBQy5EYXRlLDEpO2JyZWFrO2Nhc2UiZGQiOmU9TEMoQUMuRGF0ZSwyKTticmVhaztjYXNlImMiOmNhc2UiY2MiOmU9TEMoQUMuRGF5LDEpO2JyZWFrO2Nhc2UiY2NjIjplPUJDKFRDLkRheXMsZ0MuQWJicmV2aWF0ZWQsZkMuU3RhbmRhbG9uZSk7YnJlYWs7Y2FzZSJjY2NjIjplPUJDKFRDLkRheXMsZ0MuV2lkZSxmQy5TdGFuZGFsb25lKTticmVhaztjYXNlImNjY2NjIjplPUJDKFRDLkRheXMsZ0MuTmFycm93LGZDLlN0YW5kYWxvbmUpO2JyZWFrO2Nhc2UiY2NjY2NjIjplPUJDKFRDLkRheXMsZ0MuU2hvcnQsZkMuU3RhbmRhbG9uZSk7YnJlYWs7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6ZT1CQyhUQy5EYXlzLGdDLkFiYnJldmlhdGVkKTticmVhaztjYXNlIkVFRUUiOmU9QkMoVEMuRGF5cyxnQy5XaWRlKTticmVhaztjYXNlIkVFRUVFIjplPUJDKFRDLkRheXMsZ0MuTmFycm93KTticmVhaztjYXNlIkVFRUVFRSI6ZT1CQyhUQy5EYXlzLGdDLlNob3J0KTticmVhaztjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjplPUJDKFRDLkRheVBlcmlvZHMsZ0MuQWJicmV2aWF0ZWQpO2JyZWFrO2Nhc2UiYWFhYSI6ZT1CQyhUQy5EYXlQZXJpb2RzLGdDLldpZGUpO2JyZWFrO2Nhc2UiYWFhYWEiOmU9QkMoVEMuRGF5UGVyaW9kcyxnQy5OYXJyb3cpO2JyZWFrO2Nhc2UiYiI6Y2FzZSJiYiI6Y2FzZSJiYmIiOmU9QkMoVEMuRGF5UGVyaW9kcyxnQy5BYmJyZXZpYXRlZCxmQy5TdGFuZGFsb25lLCEwKTticmVhaztjYXNlImJiYmIiOmU9QkMoVEMuRGF5UGVyaW9kcyxnQy5XaWRlLGZDLlN0YW5kYWxvbmUsITApO2JyZWFrO2Nhc2UiYmJiYmIiOmU9QkMoVEMuRGF5UGVyaW9kcyxnQy5OYXJyb3csZkMuU3RhbmRhbG9uZSwhMCk7YnJlYWs7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6ZT1CQyhUQy5EYXlQZXJpb2RzLGdDLkFiYnJldmlhdGVkLGZDLkZvcm1hdCwhMCk7YnJlYWs7Y2FzZSJCQkJCIjplPUJDKFRDLkRheVBlcmlvZHMsZ0MuV2lkZSxmQy5Gb3JtYXQsITApO2JyZWFrO2Nhc2UiQkJCQkIiOmU9QkMoVEMuRGF5UGVyaW9kcyxnQy5OYXJyb3csZkMuRm9ybWF0LCEwKTticmVhaztjYXNlImgiOmU9TEMoQUMuSG91cnMsMSwtMTIpO2JyZWFrO2Nhc2UiaGgiOmU9TEMoQUMuSG91cnMsMiwtMTIpO2JyZWFrO2Nhc2UiSCI6ZT1MQyhBQy5Ib3VycywxKTticmVhaztjYXNlIkhIIjplPUxDKEFDLkhvdXJzLDIpO2JyZWFrO2Nhc2UibSI6ZT1MQyhBQy5NaW51dGVzLDEpO2JyZWFrO2Nhc2UibW0iOmU9TEMoQUMuTWludXRlcywyKTticmVhaztjYXNlInMiOmU9TEMoQUMuU2Vjb25kcywxKTticmVhaztjYXNlInNzIjplPUxDKEFDLlNlY29uZHMsMik7YnJlYWs7Y2FzZSJTIjplPUxDKEFDLkZyYWN0aW9uYWxTZWNvbmRzLDEpO2JyZWFrO2Nhc2UiU1MiOmU9TEMoQUMuRnJhY3Rpb25hbFNlY29uZHMsMik7YnJlYWs7Y2FzZSJTU1MiOmU9TEMoQUMuRnJhY3Rpb25hbFNlY29uZHMsMyk7YnJlYWs7Y2FzZSJaIjpjYXNlIlpaIjpjYXNlIlpaWiI6ZT1WQyhSQy5TaG9ydCk7YnJlYWs7Y2FzZSJaWlpaWiI6ZT1WQyhSQy5FeHRlbmRlZCk7YnJlYWs7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6ZT1WQyhSQy5TaG9ydEdNVCk7YnJlYWs7Y2FzZSJPT09PIjpjYXNlIlpaWloiOmNhc2Uienp6eiI6ZT1WQyhSQy5Mb25nKTticmVhaztkZWZhdWx0OnJldHVybiBudWxsfXJldHVybiBXQ1t0XT1lLGV9KSh0KTtkKz1lP2UoaSxuLGwpOiInJyI9PT10PyInIjp0LnJlcGxhY2UoLyheJ3wnJCkvZywiIikucmVwbGFjZSgvJycvZywiJyIpfSkpLGR9ZnVuY3Rpb24gekModCxlLG4pe2NvbnN0IG89bmV3IERhdGUoMCk7cmV0dXJuIG8uc2V0RnVsbFllYXIodCxlLG4pLG8uc2V0SG91cnMoMCwwLDApLG99ZnVuY3Rpb24gSUModCxlKXtjb25zdCBuPShmdW5jdGlvbiBvKHQpe3JldHVybiBMdSh0KVtqdS5Mb2NhbGVJZF19KSh0KTtpZihEQ1tuXT1EQ1tuXXx8e30sRENbbl1bZV0pcmV0dXJuIERDW25dW2VdO2xldCBpPSIiO3N3aXRjaChlKXtjYXNlInNob3J0RGF0ZSI6aT1fQyh0LGhDLlNob3J0KTticmVhaztjYXNlIm1lZGl1bURhdGUiOmk9X0ModCxoQy5NZWRpdW0pO2JyZWFrO2Nhc2UibG9uZ0RhdGUiOmk9X0ModCxoQy5Mb25nKTticmVhaztjYXNlImZ1bGxEYXRlIjppPV9DKHQsaEMuRnVsbCk7YnJlYWs7Y2FzZSJzaG9ydFRpbWUiOmk9Q0ModCxoQy5TaG9ydCk7YnJlYWs7Y2FzZSJtZWRpdW1UaW1lIjppPUNDKHQsaEMuTWVkaXVtKTticmVhaztjYXNlImxvbmdUaW1lIjppPUNDKHQsaEMuTG9uZyk7YnJlYWs7Y2FzZSJmdWxsVGltZSI6aT1DQyh0LGhDLkZ1bGwpO2JyZWFrO2Nhc2Uic2hvcnQiOmNvbnN0IGU9SUModCwic2hvcnRUaW1lIiksbj1JQyh0LCJzaG9ydERhdGUiKTtpPUhDKE1DKHQsaEMuU2hvcnQpLFtlLG5dKTticmVhaztjYXNlIm1lZGl1bSI6Y29uc3Qgbz1JQyh0LCJtZWRpdW1UaW1lIiksYT1JQyh0LCJtZWRpdW1EYXRlIik7aT1IQyhNQyh0LGhDLk1lZGl1bSksW28sYV0pO2JyZWFrO2Nhc2UibG9uZyI6Y29uc3Qgcj1JQyh0LCJsb25nVGltZSIpLHM9SUModCwibG9uZ0RhdGUiKTtpPUhDKE1DKHQsaEMuTG9uZyksW3Isc10pO2JyZWFrO2Nhc2UiZnVsbCI6Y29uc3QgbD1JQyh0LCJmdWxsVGltZSIpLGM9SUModCwiZnVsbERhdGUiKTtpPUhDKE1DKHQsaEMuRnVsbCksW2wsY10pfXJldHVybiBpJiYoRENbbl1bZV09aSksaX1mdW5jdGlvbiBIQyh0LGUpe3JldHVybiBlJiYodD10LnJlcGxhY2UoL1x7KFtefV0rKX0vZywoZnVuY3Rpb24odCxuKXtyZXR1cm4gbnVsbCE9ZSYmbiBpbiBlP2Vbbl06dH0pKSksdH1mdW5jdGlvbiBGQyh0LGUsbj0iLSIsbyxpKXtsZXQgYT0iIjsodDwwfHxpJiZ0PD0wKSYmKGk/dD0xLXQ6KHQ9LXQsYT1uKSk7bGV0IHI9U3RyaW5nKHQpO2Zvcig7ci5sZW5ndGg8ZTspcj0iMCIrcjtyZXR1cm4gbyYmKHI9ci5zdWJzdHIoci5sZW5ndGgtZSkpLGErcn1mdW5jdGlvbiBMQyh0LGUsbj0wLG89ITEsaT0hMSl7cmV0dXJuIGZ1bmN0aW9uKGEscil7bGV0IHM9KGZ1bmN0aW9uIGwodCxlKXtzd2l0Y2godCl7Y2FzZSBBQy5GdWxsWWVhcjpyZXR1cm4gZS5nZXRGdWxsWWVhcigpO2Nhc2UgQUMuTW9udGg6cmV0dXJuIGUuZ2V0TW9udGgoKTtjYXNlIEFDLkRhdGU6cmV0dXJuIGUuZ2V0RGF0ZSgpO2Nhc2UgQUMuSG91cnM6cmV0dXJuIGUuZ2V0SG91cnMoKTtjYXNlIEFDLk1pbnV0ZXM6cmV0dXJuIGUuZ2V0TWludXRlcygpO2Nhc2UgQUMuU2Vjb25kczpyZXR1cm4gZS5nZXRTZWNvbmRzKCk7Y2FzZSBBQy5GcmFjdGlvbmFsU2Vjb25kczpyZXR1cm4gZS5nZXRNaWxsaXNlY29uZHMoKTtjYXNlIEFDLkRheTpyZXR1cm4gZS5nZXREYXkoKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5rbm93biBEYXRlVHlwZSB2YWx1ZSAiJHt0fSIuYCl9fSkodCxhKTtpZigobj4wfHxzPi1uKSYmKHMrPW4pLHQ9PT1BQy5Ib3VycykwPT09cyYmLTEyPT09biYmKHM9MTIpO2Vsc2UgaWYodD09PUFDLkZyYWN0aW9uYWxTZWNvbmRzKXJldHVybihmdW5jdGlvbiBjKHQsZSl7cmV0dXJuIEZDKHQsMykuc3Vic3RyKDAsZSl9KShzLGUpO2NvbnN0IGQ9dkMocixiQy5NaW51c1NpZ24pO3JldHVybiBGQyhzLGUsZCxvLGkpfX1mdW5jdGlvbiBCQyh0LGUsbj1mQy5Gb3JtYXQsbz0hMSl7cmV0dXJuIGZ1bmN0aW9uKGksYSl7cmV0dXJuKGZ1bmN0aW9uIHIodCxlLG4sbyxpLGEpe3N3aXRjaChuKXtjYXNlIFRDLk1vbnRoczpyZXR1cm4oZnVuY3Rpb24gcih0LGUsbil7Y29uc3Qgbz1MdSh0KSxpPXdDKFtvW2p1Lk1vbnRoc0Zvcm1hdF0sb1tqdS5Nb250aHNTdGFuZGFsb25lXV0sZSk7cmV0dXJuIHdDKGksbil9KShlLGksbylbdC5nZXRNb250aCgpXTtjYXNlIFRDLkRheXM6cmV0dXJuKGZ1bmN0aW9uIHModCxlLG4pe2NvbnN0IG89THUodCksaT13Qyhbb1tqdS5EYXlzRm9ybWF0XSxvW2p1LkRheXNTdGFuZGFsb25lXV0sZSk7cmV0dXJuIHdDKGksbil9KShlLGksbylbdC5nZXREYXkoKV07Y2FzZSBUQy5EYXlQZXJpb2RzOmNvbnN0IHI9dC5nZXRIb3VycygpLHM9dC5nZXRNaW51dGVzKCk7aWYoYSl7Y29uc3QgdD0oZnVuY3Rpb24gbCh0KXtjb25zdCBlPUx1KHQpO3JldHVybiBQQyhlKSwoZVtqdS5FeHRyYURhdGFdWzJdfHxbXSkubWFwKCh0PT4ic3RyaW5nIj09dHlwZW9mIHQ/a0ModCk6W2tDKHRbMF0pLGtDKHRbMV0pXSkpfSkoZSksbj0oZnVuY3Rpb24gYyh0LGUsbil7Y29uc3Qgbz1MdSh0KTtQQyhvKTtjb25zdCBpPXdDKFtvW2p1LkV4dHJhRGF0YV1bMF0sb1tqdS5FeHRyYURhdGFdWzFdXSxlKXx8W107cmV0dXJuIHdDKGksbil8fFtdfSkoZSxpLG8pLGE9dC5maW5kSW5kZXgoKHQ9PntpZihBcnJheS5pc0FycmF5KHQpKXtjb25zdFtlLG5dPXQsbz1yPj1lLmhvdXJzJiZzPj1lLm1pbnV0ZXMsaT1yPG4uaG91cnN8fHI9PT1uLmhvdXJzJiZzPG4ubWludXRlcztpZihlLmhvdXJzPG4uaG91cnMpe2lmKG8mJmkpcmV0dXJuITB9ZWxzZSBpZihvfHxpKXJldHVybiEwfWVsc2UgaWYodC5ob3Vycz09PXImJnQubWludXRlcz09PXMpcmV0dXJuITA7cmV0dXJuITF9KSk7aWYoLTEhPT1hKXJldHVybiBuW2FdfXJldHVybihmdW5jdGlvbiBkKHQsZSxuKXtjb25zdCBvPUx1KHQpLGk9d0MoW29banUuRGF5UGVyaW9kc0Zvcm1hdF0sb1tqdS5EYXlQZXJpb2RzU3RhbmRhbG9uZV1dLGUpO3JldHVybiB3QyhpLG4pfSkoZSxpLG8pW3I8MTI/MDoxXTtjYXNlIFRDLkVyYXM6cmV0dXJuKGZ1bmN0aW9uIHAodCxlKXtyZXR1cm4gd0MoTHUodClbanUuRXJhc10sZSl9KShlLG8pW3QuZ2V0RnVsbFllYXIoKTw9MD8wOjFdO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHRyYW5zbGF0aW9uIHR5cGUgJHtufWApfX0pKGksYSx0LGUsbixvKX19ZnVuY3Rpb24gVkModCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixvKXtjb25zdCBpPS0xKm8sYT12QyhuLGJDLk1pbnVzU2lnbikscj1pPjA/TWF0aC5mbG9vcihpLzYwKTpNYXRoLmNlaWwoaS82MCk7c3dpdGNoKHQpe2Nhc2UgUkMuU2hvcnQ6cmV0dXJuKGk+PTA/IisiOiIiKStGQyhyLDIsYSkrRkMoTWF0aC5hYnMoaSU2MCksMixhKTtjYXNlIFJDLlNob3J0R01UOnJldHVybiJHTVQiKyhpPj0wPyIrIjoiIikrRkMociwxLGEpO2Nhc2UgUkMuTG9uZzpyZXR1cm4iR01UIisoaT49MD8iKyI6IiIpK0ZDKHIsMixhKSsiOiIrRkMoTWF0aC5hYnMoaSU2MCksMixhKTtjYXNlIFJDLkV4dGVuZGVkOnJldHVybiAwPT09bz8iWiI6KGk+PTA/IisiOiIiKStGQyhyLDIsYSkrIjoiK0ZDKE1hdGguYWJzKGklNjApLDIsYSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gem9uZSB3aWR0aCAiJHt0fSJgKX19fWZ1bmN0aW9uIGpDKHQpe3JldHVybiB6Qyh0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpLHQuZ2V0RGF0ZSgpKyg0LXQuZ2V0RGF5KCkpKX1mdW5jdGlvbiBVQyh0LGU9ITEpe3JldHVybiBmdW5jdGlvbihuLG8pe2xldCBpO2lmKGUpe2NvbnN0IHQ9bmV3IERhdGUobi5nZXRGdWxsWWVhcigpLG4uZ2V0TW9udGgoKSwxKS5nZXREYXkoKS0xLGU9bi5nZXREYXRlKCk7aT0xK01hdGguZmxvb3IoKGUrdCkvNyl9ZWxzZXtjb25zdCB0PWpDKG4pLGU9KGZ1bmN0aW9uIGEodCl7Y29uc3QgZT16Qyh0LDAsMSkuZ2V0RGF5KCk7cmV0dXJuIHpDKHQsMCwxKyhlPD00PzQ6MTEpLWUpfSkodC5nZXRGdWxsWWVhcigpKSxvPXQuZ2V0VGltZSgpLWUuZ2V0VGltZSgpO2k9MStNYXRoLnJvdW5kKG8vNjA0OGU1KX1yZXR1cm4gRkMoaSx0LHZDKG8sYkMuTWludXNTaWduKSl9fWZ1bmN0aW9uIEdDKHQsZT0hMSl7cmV0dXJuIGZ1bmN0aW9uKG4sbyl7cmV0dXJuIEZDKGpDKG4pLmdldEZ1bGxZZWFyKCksdCx2QyhvLGJDLk1pbnVzU2lnbiksZSl9fSEoZnVuY3Rpb24odCl7dFt0LlNob3J0PTBdPSJTaG9ydCIsdFt0LlNob3J0R01UPTFdPSJTaG9ydEdNVCIsdFt0Lkxvbmc9Ml09IkxvbmciLHRbdC5FeHRlbmRlZD0zXT0iRXh0ZW5kZWQifSkoUkN8fChSQz17fSkpLChmdW5jdGlvbih0KXt0W3QuRnVsbFllYXI9MF09IkZ1bGxZZWFyIix0W3QuTW9udGg9MV09Ik1vbnRoIix0W3QuRGF0ZT0yXT0iRGF0ZSIsdFt0LkhvdXJzPTNdPSJIb3VycyIsdFt0Lk1pbnV0ZXM9NF09Ik1pbnV0ZXMiLHRbdC5TZWNvbmRzPTVdPSJTZWNvbmRzIix0W3QuRnJhY3Rpb25hbFNlY29uZHM9Nl09IkZyYWN0aW9uYWxTZWNvbmRzIix0W3QuRGF5PTddPSJEYXkifSkoQUN8fChBQz17fSkpLChmdW5jdGlvbih0KXt0W3QuRGF5UGVyaW9kcz0wXT0iRGF5UGVyaW9kcyIsdFt0LkRheXM9MV09IkRheXMiLHRbdC5Nb250aHM9Ml09Ik1vbnRocyIsdFt0LkVyYXM9M109IkVyYXMifSkoVEN8fChUQz17fSkpO2NvbnN0IFdDPXt9O2Z1bmN0aW9uIFlDKHQsZSl7dD10LnJlcGxhY2UoLzovZywiIik7Y29uc3Qgbj1EYXRlLnBhcnNlKCJKYW4gMDEsIDE5NzAgMDA6MDA6MDAgIit0KS82ZTQ7cmV0dXJuIGlzTmFOKG4pP2U6bn1mdW5jdGlvbiBxQyh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGUmJiFpc05hTih0LnZhbHVlT2YoKSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFpDPS9eKFxkKyk/XC4oKFxkKykoLShcZCspKT8pPyQvLFhDPSIuIixLQz0iMCI7ZnVuY3Rpb24gSkModCxlLG4sbyxpLGEscj0hMSl7bGV0IHM9IiIsbD0hMTtpZihpc0Zpbml0ZSh0KSl7bGV0IGM9KGZ1bmN0aW9uIGModCl7bGV0IGUsbixvLGksYSxyPU1hdGguYWJzKHQpKyIiLHM9MDtmb3IoKG49ci5pbmRleE9mKFhDKSk+LTEmJihyPXIucmVwbGFjZShYQywiIikpLChvPXIuc2VhcmNoKC9lL2kpKT4wPyhuPDAmJihuPW8pLG4rPStyLnNsaWNlKG8rMSkscj1yLnN1YnN0cmluZygwLG8pKTpuPDAmJihuPXIubGVuZ3RoKSxvPTA7ci5jaGFyQXQobyk9PT1LQztvKyspO2lmKG89PT0oYT1yLmxlbmd0aCkpZT1bMF0sbj0xO2Vsc2V7Zm9yKGEtLTtyLmNoYXJBdChhKT09PUtDOylhLS07Zm9yKG4tPW8sZT1bXSxpPTA7bzw9YTtvKyssaSsrKWVbaV09TnVtYmVyKHIuY2hhckF0KG8pKX1yZXR1cm4gbj4yMiYmKGU9ZS5zcGxpY2UoMCwyMSkscz1uLTEsbj0xKSx7ZGlnaXRzOmUsZXhwb25lbnQ6cyxpbnRlZ2VyTGVuOm59fSkodCk7ciYmKGM9KGZ1bmN0aW9uIGQodCl7aWYoMD09PXQuZGlnaXRzWzBdKXJldHVybiB0O2NvbnN0IGU9dC5kaWdpdHMubGVuZ3RoLXQuaW50ZWdlckxlbjtyZXR1cm4gdC5leHBvbmVudD90LmV4cG9uZW50Kz0yOigwPT09ZT90LmRpZ2l0cy5wdXNoKDAsMCk6MT09PWUmJnQuZGlnaXRzLnB1c2goMCksdC5pbnRlZ2VyTGVuKz0yKSx0fSkoYykpO2xldCBkPWUubWluSW50LHA9ZS5taW5GcmFjLG09ZS5tYXhGcmFjO2lmKGEpe2NvbnN0IHQ9YS5tYXRjaChaQyk7aWYobnVsbD09PXQpdGhyb3cgbmV3IEVycm9yKGAke2F9IGlzIG5vdCBhIHZhbGlkIGRpZ2l0IGluZm9gKTtjb25zdCBlPXRbMV0sbj10WzNdLG89dFs1XTtudWxsIT1lJiYoZD10TShlKSksbnVsbCE9biYmKHA9dE0obikpLG51bGwhPW8/bT10TShvKTpudWxsIT1uJiZwPm0mJihtPXApfSEoZnVuY3Rpb24gcCh0LGUsbil7aWYoZT5uKXRocm93IG5ldyBFcnJvcihgVGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciBmcmFjdGlvbiAoJHtlfSkgaXMgaGlnaGVyIHRoYW4gdGhlIG1heGltdW0gKCR7bn0pLmApO2xldCBvPXQuZGlnaXRzLGk9by5sZW5ndGgtdC5pbnRlZ2VyTGVuO2NvbnN0IGE9TWF0aC5taW4oTWF0aC5tYXgoZSxpKSxuKTtsZXQgcj1hK3QuaW50ZWdlckxlbixzPW9bcl07aWYocj4wKXtvLnNwbGljZShNYXRoLm1heCh0LmludGVnZXJMZW4scikpO2ZvcihsZXQgdD1yO3Q8by5sZW5ndGg7dCsrKW9bdF09MH1lbHNle2k9TWF0aC5tYXgoMCxpKSx0LmludGVnZXJMZW49MSxvLmxlbmd0aD1NYXRoLm1heCgxLHI9YSsxKSxvWzBdPTA7Zm9yKGxldCB0PTE7dDxyO3QrKylvW3RdPTB9aWYocz49NSlpZihyLTE8MCl7Zm9yKGxldCBlPTA7ZT5yO2UtLSlvLnVuc2hpZnQoMCksdC5pbnRlZ2VyTGVuKys7by51bnNoaWZ0KDEpLHQuaW50ZWdlckxlbisrfWVsc2Ugb1tyLTFdKys7Zm9yKDtpPE1hdGgubWF4KDAsYSk7aSsrKW8ucHVzaCgwKTtsZXQgbD0wIT09YTtjb25zdCBjPWUrdC5pbnRlZ2VyTGVuLGQ9by5yZWR1Y2VSaWdodCgoZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIG9bbl09KGUrPXQpPDEwP2U6ZS0xMCxsJiYoMD09PW9bbl0mJm4+PWM/by5wb3AoKTpsPSExKSxlPj0xMD8xOjB9KSwwKTtkJiYoby51bnNoaWZ0KGQpLHQuaW50ZWdlckxlbisrKX0pKGMscCxtKTtsZXQgdT1jLmRpZ2l0cyxmPWMuaW50ZWdlckxlbjtjb25zdCBnPWMuZXhwb25lbnQ7bGV0IGg9W107Zm9yKGw9dS5ldmVyeSgodD0+IXQpKTtmPGQ7ZisrKXUudW5zaGlmdCgwKTtmb3IoO2Y8MDtmKyspdS51bnNoaWZ0KDApO2Y+MD9oPXUuc3BsaWNlKGYsdS5sZW5ndGgpOihoPXUsdT1bMF0pO2NvbnN0IGI9W107Zm9yKHUubGVuZ3RoPj1lLmxnU2l6ZSYmYi51bnNoaWZ0KHUuc3BsaWNlKC1lLmxnU2l6ZSx1Lmxlbmd0aCkuam9pbigiIikpO3UubGVuZ3RoPmUuZ1NpemU7KWIudW5zaGlmdCh1LnNwbGljZSgtZS5nU2l6ZSx1Lmxlbmd0aCkuam9pbigiIikpO3UubGVuZ3RoJiZiLnVuc2hpZnQodS5qb2luKCIiKSkscz1iLmpvaW4odkMobixvKSksaC5sZW5ndGgmJihzKz12QyhuLGkpK2guam9pbigiIikpLGcmJihzKz12QyhuLGJDLkV4cG9uZW50aWFsKSsiKyIrZyl9ZWxzZSBzPXZDKG4sYkMuSW5maW5pdHkpO3JldHVybiBzPXQ8MCYmIWw/ZS5uZWdQcmUrcytlLm5lZ1N1ZjplLnBvc1ByZStzK2UucG9zU3VmLHN9ZnVuY3Rpb24gUUModCxlLG4pe3JldHVybiBKQyh0LCRDKHhDKGUsbUMuRGVjaW1hbCksdkMoZSxiQy5NaW51c1NpZ24pKSxlLGJDLkdyb3VwLGJDLkRlY2ltYWwsbil9ZnVuY3Rpb24gJEModCxlPSItIil7Y29uc3Qgbj17bWluSW50OjEsbWluRnJhYzowLG1heEZyYWM6MCxwb3NQcmU6IiIscG9zU3VmOiIiLG5lZ1ByZToiIixuZWdTdWY6IiIsZ1NpemU6MCxsZ1NpemU6MH0sbz10LnNwbGl0KCI7IiksaT1vWzBdLGE9b1sxXSxyPS0xIT09aS5pbmRleE9mKFhDKT9pLnNwbGl0KFhDKTpbaS5zdWJzdHJpbmcoMCxpLmxhc3RJbmRleE9mKEtDKSsxKSxpLnN1YnN0cmluZyhpLmxhc3RJbmRleE9mKEtDKSsxKV0scz1yWzBdLGw9clsxXXx8IiI7bi5wb3NQcmU9cy5zdWJzdHIoMCxzLmluZGV4T2YoIiMiKSk7Zm9yKGxldCB0PTA7dDxsLmxlbmd0aDt0Kyspe2NvbnN0IGU9bC5jaGFyQXQodCk7ZT09PUtDP24ubWluRnJhYz1uLm1heEZyYWM9dCsxOiIjIj09PWU/bi5tYXhGcmFjPXQrMTpuLnBvc1N1Zis9ZX1jb25zdCBjPXMuc3BsaXQoIiwiKTtpZihuLmdTaXplPWNbMV0/Y1sxXS5sZW5ndGg6MCxuLmxnU2l6ZT1jWzJdfHxjWzFdPyhjWzJdfHxjWzFdKS5sZW5ndGg6MCxhKXtjb25zdCB0PWkubGVuZ3RoLW4ucG9zUHJlLmxlbmd0aC1uLnBvc1N1Zi5sZW5ndGgsZT1hLmluZGV4T2YoIiMiKTtuLm5lZ1ByZT1hLnN1YnN0cigwLGUpLnJlcGxhY2UoLycvZywiIiksbi5uZWdTdWY9YS5zdWJzdHIoZSt0KS5yZXBsYWNlKC8nL2csIiIpfWVsc2Ugbi5uZWdQcmU9ZStuLnBvc1ByZSxuLm5lZ1N1Zj1uLnBvc1N1ZjtyZXR1cm4gbn1mdW5jdGlvbiB0TSh0KXtjb25zdCBlPXBhcnNlSW50KHQpO2lmKGlzTmFOKGUpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBpbnRlZ2VyIGxpdGVyYWwgd2hlbiBwYXJzaW5nICIrdCk7cmV0dXJuIGV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGVNe31mdW5jdGlvbiBuTSh0LGUsbixvKXtsZXQgaT1gPSR7dH1gO2lmKGUuaW5kZXhPZihpKT4tMSlyZXR1cm4gaTtpZihpPW4uZ2V0UGx1cmFsQ2F0ZWdvcnkodCxvKSxlLmluZGV4T2YoaSk+LTEpcmV0dXJuIGk7aWYoZS5pbmRleE9mKCJvdGhlciIpPi0xKXJldHVybiJvdGhlciI7dGhyb3cgbmV3IEVycm9yKGBObyBwbHVyYWwgbWVzc2FnZSBmb3VuZCBmb3IgdmFsdWUgIiR7dH0iYCl9Y2xhc3Mgb00gZXh0ZW5kcyBlTXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMubG9jYWxlPXR9Z2V0UGx1cmFsQ2F0ZWdvcnkodCxlKXtzd2l0Y2goT0MoZXx8dGhpcy5sb2NhbGUpKHQpKXtjYXNlIHVDLlplcm86cmV0dXJuInplcm8iO2Nhc2UgdUMuT25lOnJldHVybiJvbmUiO2Nhc2UgdUMuVHdvOnJldHVybiJ0d28iO2Nhc2UgdUMuRmV3OnJldHVybiJmZXciO2Nhc2UgdUMuTWFueTpyZXR1cm4ibWFueSI7ZGVmYXVsdDpyZXR1cm4ib3RoZXIifX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBpTSh0LGUpe2U9ZW5jb2RlVVJJQ29tcG9uZW50KGUpO2Zvcihjb25zdCBuIG9mIHQuc3BsaXQoIjsiKSl7Y29uc3QgdD1uLmluZGV4T2YoIj0iKSxbbyxpXT0tMT09dD9bbiwiIl06W24uc2xpY2UoMCx0KSxuLnNsaWNlKHQrMSldO2lmKG8udHJpbSgpPT09ZSlyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGkpfXJldHVybiBudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9vTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b00pKHZyKFd5KSl9LG9NLsm1cHJvdj1Nbih7dG9rZW46b00sZmFjdG9yeTpvTS7JtWZhY30pLG9NLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1d5XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvTSxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1d5XX1dfV19KSxudWxsKTtjbGFzcyBhTXtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9pdGVyYWJsZURpZmZlcnM9dCx0aGlzLl9rZXlWYWx1ZURpZmZlcnM9ZSx0aGlzLl9uZ0VsPW4sdGhpcy5fcmVuZGVyZXI9byx0aGlzLl9pdGVyYWJsZURpZmZlcj1udWxsLHRoaXMuX2tleVZhbHVlRGlmZmVyPW51bGwsdGhpcy5faW5pdGlhbENsYXNzZXM9W10sdGhpcy5fcmF3Q2xhc3M9bnVsbH1zZXQga2xhc3ModCl7dGhpcy5fcmVtb3ZlQ2xhc3Nlcyh0aGlzLl9pbml0aWFsQ2xhc3NlcyksdGhpcy5faW5pdGlhbENsYXNzZXM9InN0cmluZyI9PXR5cGVvZiB0P3Quc3BsaXQoL1xzKy8pOltdLHRoaXMuX2FwcGx5Q2xhc3Nlcyh0aGlzLl9pbml0aWFsQ2xhc3NlcyksdGhpcy5fYXBwbHlDbGFzc2VzKHRoaXMuX3Jhd0NsYXNzKX1zZXQgbmdDbGFzcyh0KXt0aGlzLl9yZW1vdmVDbGFzc2VzKHRoaXMuX3Jhd0NsYXNzKSx0aGlzLl9hcHBseUNsYXNzZXModGhpcy5faW5pdGlhbENsYXNzZXMpLHRoaXMuX2l0ZXJhYmxlRGlmZmVyPW51bGwsdGhpcy5fa2V5VmFsdWVEaWZmZXI9bnVsbCx0aGlzLl9yYXdDbGFzcz0ic3RyaW5nIj09dHlwZW9mIHQ/dC5zcGxpdCgvXHMrLyk6dCx0aGlzLl9yYXdDbGFzcyYmKE5wKHRoaXMuX3Jhd0NsYXNzKT90aGlzLl9pdGVyYWJsZURpZmZlcj10aGlzLl9pdGVyYWJsZURpZmZlcnMuZmluZCh0aGlzLl9yYXdDbGFzcykuY3JlYXRlKCk6dGhpcy5fa2V5VmFsdWVEaWZmZXI9dGhpcy5fa2V5VmFsdWVEaWZmZXJzLmZpbmQodGhpcy5fcmF3Q2xhc3MpLmNyZWF0ZSgpKX1uZ0RvQ2hlY2soKXtpZih0aGlzLl9pdGVyYWJsZURpZmZlcil7Y29uc3QgdD10aGlzLl9pdGVyYWJsZURpZmZlci5kaWZmKHRoaXMuX3Jhd0NsYXNzKTt0JiZ0aGlzLl9hcHBseUl0ZXJhYmxlQ2hhbmdlcyh0KX1lbHNlIGlmKHRoaXMuX2tleVZhbHVlRGlmZmVyKXtjb25zdCB0PXRoaXMuX2tleVZhbHVlRGlmZmVyLmRpZmYodGhpcy5fcmF3Q2xhc3MpO3QmJnRoaXMuX2FwcGx5S2V5VmFsdWVDaGFuZ2VzKHQpfX1fYXBwbHlLZXlWYWx1ZUNoYW5nZXModCl7dC5mb3JFYWNoQWRkZWRJdGVtKCh0PT50aGlzLl90b2dnbGVDbGFzcyh0LmtleSx0LmN1cnJlbnRWYWx1ZSkpKSx0LmZvckVhY2hDaGFuZ2VkSXRlbSgodD0+dGhpcy5fdG9nZ2xlQ2xhc3ModC5rZXksdC5jdXJyZW50VmFsdWUpKSksdC5mb3JFYWNoUmVtb3ZlZEl0ZW0oKHQ9Pnt0LnByZXZpb3VzVmFsdWUmJnRoaXMuX3RvZ2dsZUNsYXNzKHQua2V5LCExKX0pKX1fYXBwbHlJdGVyYWJsZUNoYW5nZXModCl7dC5mb3JFYWNoQWRkZWRJdGVtKCh0PT57aWYoInN0cmluZyIhPXR5cGVvZiB0Lml0ZW0pdGhyb3cgbmV3IEVycm9yKGBOZ0NsYXNzIGNhbiBvbmx5IHRvZ2dsZSBDU1MgY2xhc3NlcyBleHByZXNzZWQgYXMgc3RyaW5ncywgZ290ICR7R2UodC5pdGVtKX1gKTt0aGlzLl90b2dnbGVDbGFzcyh0Lml0ZW0sITApfSkpLHQuZm9yRWFjaFJlbW92ZWRJdGVtKCh0PT50aGlzLl90b2dnbGVDbGFzcyh0Lml0ZW0sITEpKSl9X2FwcGx5Q2xhc3Nlcyh0KXt0JiYoQXJyYXkuaXNBcnJheSh0KXx8dCBpbnN0YW5jZW9mIFNldD90LmZvckVhY2goKHQ9PnRoaXMuX3RvZ2dsZUNsYXNzKHQsITApKSk6T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZT0+dGhpcy5fdG9nZ2xlQ2xhc3MoZSwhIXRbZV0pKSkpfV9yZW1vdmVDbGFzc2VzKHQpe3QmJihBcnJheS5pc0FycmF5KHQpfHx0IGluc3RhbmNlb2YgU2V0P3QuZm9yRWFjaCgodD0+dGhpcy5fdG9nZ2xlQ2xhc3ModCwhMSkpKTpPYmplY3Qua2V5cyh0KS5mb3JFYWNoKCh0PT50aGlzLl90b2dnbGVDbGFzcyh0LCExKSkpKX1fdG9nZ2xlQ2xhc3ModCxlKXsodD10LnRyaW0oKSkmJnQuc3BsaXQoL1xzKy9nKS5mb3JFYWNoKCh0PT57ZT90aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQsdCk6dGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LHQpfSkpfX1hTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YU0pKFNtKEhnKSxTbShMZyksU20oaGcpLFNtKENnKSl9LGFNLsm1ZGlyPWxvKHt0eXBlOmFNLHNlbGVjdG9yczpbWyIiLCJuZ0NsYXNzIiwiIl1dLGlucHV0czp7a2xhc3M6WyJjbGFzcyIsImtsYXNzIl0sbmdDbGFzczoibmdDbGFzcyJ9fSksYU0uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpIZ30se3R5cGU6TGd9LHt0eXBlOmhnfSx7dHlwZTpDZ31dLGFNLnByb3BEZWNvcmF0b3JzPXtrbGFzczpbe3R5cGU6eHksYXJnczpbImNsYXNzIl19XSxuZ0NsYXNzOlt7dHlwZTp4eSxhcmdzOlsibmdDbGFzcyJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYU0sW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW25nQ2xhc3NdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkhnfSx7dHlwZTpMZ30se3R5cGU6aGd9LHt0eXBlOkNnfV19KSx7a2xhc3M6W3t0eXBlOnh5LGFyZ3M6WyJjbGFzcyJdfV0sbmdDbGFzczpbe3R5cGU6eHksYXJnczpbIm5nQ2xhc3MiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyByTXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl92aWV3Q29udGFpbmVyUmVmPXQsdGhpcy5fY29tcG9uZW50UmVmPW51bGwsdGhpcy5fbW9kdWxlUmVmPW51bGx9bmdPbkNoYW5nZXModCl7aWYodGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpLHRoaXMuX2NvbXBvbmVudFJlZj1udWxsLHRoaXMubmdDb21wb25lbnRPdXRsZXQpe2NvbnN0IGU9dGhpcy5uZ0NvbXBvbmVudE91dGxldEluamVjdG9yfHx0aGlzLl92aWV3Q29udGFpbmVyUmVmLnBhcmVudEluamVjdG9yO2lmKHQubmdDb21wb25lbnRPdXRsZXROZ01vZHVsZUZhY3RvcnkpaWYodGhpcy5fbW9kdWxlUmVmJiZ0aGlzLl9tb2R1bGVSZWYuZGVzdHJveSgpLHRoaXMubmdDb21wb25lbnRPdXRsZXROZ01vZHVsZUZhY3Rvcnkpe2NvbnN0IHQ9ZS5nZXQodGgpO3RoaXMuX21vZHVsZVJlZj10aGlzLm5nQ29tcG9uZW50T3V0bGV0TmdNb2R1bGVGYWN0b3J5LmNyZWF0ZSh0LmluamVjdG9yKX1lbHNlIHRoaXMuX21vZHVsZVJlZj1udWxsO2NvbnN0IG49KHRoaXMuX21vZHVsZVJlZj90aGlzLl9tb2R1bGVSZWYuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOmUuZ2V0KHVnKSkucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5uZ0NvbXBvbmVudE91dGxldCk7dGhpcy5fY29tcG9uZW50UmVmPXRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KG4sdGhpcy5fdmlld0NvbnRhaW5lclJlZi5sZW5ndGgsZSx0aGlzLm5nQ29tcG9uZW50T3V0bGV0Q29udGVudCl9fW5nT25EZXN0cm95KCl7dGhpcy5fbW9kdWxlUmVmJiZ0aGlzLl9tb2R1bGVSZWYuZGVzdHJveSgpfX1yTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ck0pKFNtKGVoKSl9LHJNLsm1ZGlyPWxvKHt0eXBlOnJNLHNlbGVjdG9yczpbWyIiLCJuZ0NvbXBvbmVudE91dGxldCIsIiJdXSxpbnB1dHM6e25nQ29tcG9uZW50T3V0bGV0OiJuZ0NvbXBvbmVudE91dGxldCIsbmdDb21wb25lbnRPdXRsZXRJbmplY3RvcjoibmdDb21wb25lbnRPdXRsZXRJbmplY3RvciIsbmdDb21wb25lbnRPdXRsZXRDb250ZW50OiJuZ0NvbXBvbmVudE91dGxldENvbnRlbnQiLG5nQ29tcG9uZW50T3V0bGV0TmdNb2R1bGVGYWN0b3J5OiJuZ0NvbXBvbmVudE91dGxldE5nTW9kdWxlRmFjdG9yeSJ9LGZlYXR1cmVzOltCb119KSxyTS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmVofV0sck0ucHJvcERlY29yYXRvcnM9e25nQ29tcG9uZW50T3V0bGV0Olt7dHlwZTp4eX1dLG5nQ29tcG9uZW50T3V0bGV0SW5qZWN0b3I6W3t0eXBlOnh5fV0sbmdDb21wb25lbnRPdXRsZXRDb250ZW50Olt7dHlwZTp4eX1dLG5nQ29tcG9uZW50T3V0bGV0TmdNb2R1bGVGYWN0b3J5Olt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHJNLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltuZ0NvbXBvbmVudE91dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZWh9XX0pLHtuZ0NvbXBvbmVudE91dGxldDpbe3R5cGU6eHl9XSxuZ0NvbXBvbmVudE91dGxldEluamVjdG9yOlt7dHlwZTp4eX1dLG5nQ29tcG9uZW50T3V0bGV0Q29udGVudDpbe3R5cGU6eHl9XSxuZ0NvbXBvbmVudE91dGxldE5nTW9kdWxlRmFjdG9yeTpbe3R5cGU6eHl9XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3Mgc017Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy4kaW1wbGljaXQ9dCx0aGlzLm5nRm9yT2Y9ZSx0aGlzLmluZGV4PW4sdGhpcy5jb3VudD1vfWdldCBmaXJzdCgpe3JldHVybiAwPT09dGhpcy5pbmRleH1nZXQgbGFzdCgpe3JldHVybiB0aGlzLmluZGV4PT09dGhpcy5jb3VudC0xfWdldCBldmVuKCl7cmV0dXJuIHRoaXMuaW5kZXglMj09MH1nZXQgb2RkKCl7cmV0dXJuIXRoaXMuZXZlbn19Y2xhc3MgbE17Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX3ZpZXdDb250YWluZXI9dCx0aGlzLl90ZW1wbGF0ZT1lLHRoaXMuX2RpZmZlcnM9bix0aGlzLl9uZ0Zvck9mPW51bGwsdGhpcy5fbmdGb3JPZkRpcnR5PSEwLHRoaXMuX2RpZmZlcj1udWxsfXNldCBuZ0Zvck9mKHQpe3RoaXMuX25nRm9yT2Y9dCx0aGlzLl9uZ0Zvck9mRGlydHk9ITB9c2V0IG5nRm9yVHJhY2tCeSh0KXsidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8bnVsbD09dHx8ImZ1bmN0aW9uIj09dHlwZW9mIHR8fGNvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKGB0cmFja0J5IG11c3QgYmUgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkodCl9LiBTZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb21tb24vTmdGb3JPZiNjaGFuZ2UtcHJvcGFnYXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksdGhpcy5fdHJhY2tCeUZuPXR9Z2V0IG5nRm9yVHJhY2tCeSgpe3JldHVybiB0aGlzLl90cmFja0J5Rm59c2V0IG5nRm9yVGVtcGxhdGUodCl7dCYmKHRoaXMuX3RlbXBsYXRlPXQpfW5nRG9DaGVjaygpe2lmKHRoaXMuX25nRm9yT2ZEaXJ0eSl7dGhpcy5fbmdGb3JPZkRpcnR5PSExO2NvbnN0IHQ9dGhpcy5fbmdGb3JPZjtpZighdGhpcy5fZGlmZmVyJiZ0KXRyeXt0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKHQpLmNyZWF0ZSh0aGlzLm5nRm9yVHJhY2tCeSl9Y2F0Y2goZSl7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBhIGRpZmZlciBzdXBwb3J0aW5nIG9iamVjdCAnJHt0fScgb2YgdHlwZSAnJHsoZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5uYW1lfHx0eXBlb2YgdH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KX0nLiBOZ0ZvciBvbmx5IHN1cHBvcnRzIGJpbmRpbmcgdG8gSXRlcmFibGVzIHN1Y2ggYXMgQXJyYXlzLmApfX1pZih0aGlzLl9kaWZmZXIpe2NvbnN0IHQ9dGhpcy5fZGlmZmVyLmRpZmYodGhpcy5fbmdGb3JPZik7dCYmdGhpcy5fYXBwbHlDaGFuZ2VzKHQpfX1fYXBwbHlDaGFuZ2VzKHQpe2NvbnN0IGU9W107dC5mb3JFYWNoT3BlcmF0aW9uKCgodCxuLG8pPT57aWYobnVsbD09dC5wcmV2aW91c0luZGV4KXtjb25zdCBuPXRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLG5ldyBzTShudWxsLHRoaXMuX25nRm9yT2YsLTEsLTEpLG51bGw9PT1vP3ZvaWQgMDpvKSxpPW5ldyBjTSh0LG4pO2UucHVzaChpKX1lbHNlIGlmKG51bGw9PW8pdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUobnVsbD09PW4/dm9pZCAwOm4pO2Vsc2UgaWYobnVsbCE9PW4pe2NvbnN0IGk9dGhpcy5fdmlld0NvbnRhaW5lci5nZXQobik7dGhpcy5fdmlld0NvbnRhaW5lci5tb3ZlKGksbyk7Y29uc3QgYT1uZXcgY00odCxpKTtlLnB1c2goYSl9fSkpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXRoaXMuX3BlclZpZXdDaGFuZ2UoZVt0XS52aWV3LGVbdF0ucmVjb3JkKTtmb3IobGV0IHQ9MCxlPXRoaXMuX3ZpZXdDb250YWluZXIubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IG49dGhpcy5fdmlld0NvbnRhaW5lci5nZXQodCk7bi5jb250ZXh0LmluZGV4PXQsbi5jb250ZXh0LmNvdW50PWUsbi5jb250ZXh0Lm5nRm9yT2Y9dGhpcy5fbmdGb3JPZn10LmZvckVhY2hJZGVudGl0eUNoYW5nZSgodD0+e3RoaXMuX3ZpZXdDb250YWluZXIuZ2V0KHQuY3VycmVudEluZGV4KS5jb250ZXh0LiRpbXBsaWNpdD10Lml0ZW19KSl9X3BlclZpZXdDaGFuZ2UodCxlKXt0LmNvbnRleHQuJGltcGxpY2l0PWUuaXRlbX1zdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZCh0LGUpe3JldHVybiEwfX1sTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bE0pKFNtKGVoKSxTbShYZyksU20oSGcpKX0sbE0uybVkaXI9bG8oe3R5cGU6bE0sc2VsZWN0b3JzOltbIiIsIm5nRm9yIiwiIiwibmdGb3JPZiIsIiJdXSxpbnB1dHM6e25nRm9yT2Y6Im5nRm9yT2YiLG5nRm9yVHJhY2tCeToibmdGb3JUcmFja0J5IixuZ0ZvclRlbXBsYXRlOiJuZ0ZvclRlbXBsYXRlIn19KSxsTS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmVofSx7dHlwZTpYZ30se3R5cGU6SGd9XSxsTS5wcm9wRGVjb3JhdG9ycz17bmdGb3JPZjpbe3R5cGU6eHl9XSxuZ0ZvclRyYWNrQnk6W3t0eXBlOnh5fV0sbmdGb3JUZW1wbGF0ZTpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsTSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdGb3JdW25nRm9yT2ZdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofSx7dHlwZTpYZ30se3R5cGU6SGd9XX0pLHtuZ0Zvck9mOlt7dHlwZTp4eX1dLG5nRm9yVHJhY2tCeTpbe3R5cGU6eHl9XSxuZ0ZvclRlbXBsYXRlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgY017Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlY29yZD10LHRoaXMudmlldz1lfX1jbGFzcyBkTXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3ZpZXdDb250YWluZXI9dCx0aGlzLl9jb250ZXh0PW5ldyBwTSx0aGlzLl90aGVuVGVtcGxhdGVSZWY9bnVsbCx0aGlzLl9lbHNlVGVtcGxhdGVSZWY9bnVsbCx0aGlzLl90aGVuVmlld1JlZj1udWxsLHRoaXMuX2Vsc2VWaWV3UmVmPW51bGwsdGhpcy5fdGhlblRlbXBsYXRlUmVmPWV9c2V0IG5nSWYodCl7dGhpcy5fY29udGV4dC4kaW1wbGljaXQ9dGhpcy5fY29udGV4dC5uZ0lmPXQsdGhpcy5fdXBkYXRlVmlldygpfXNldCBuZ0lmVGhlbih0KXttTSgibmdJZlRoZW4iLHQpLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZj10LHRoaXMuX3RoZW5WaWV3UmVmPW51bGwsdGhpcy5fdXBkYXRlVmlldygpfXNldCBuZ0lmRWxzZSh0KXttTSgibmdJZkVsc2UiLHQpLHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZj10LHRoaXMuX2Vsc2VWaWV3UmVmPW51bGwsdGhpcy5fdXBkYXRlVmlldygpfV91cGRhdGVWaWV3KCl7dGhpcy5fY29udGV4dC4kaW1wbGljaXQ/dGhpcy5fdGhlblZpZXdSZWZ8fCh0aGlzLl92aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5fZWxzZVZpZXdSZWY9bnVsbCx0aGlzLl90aGVuVGVtcGxhdGVSZWYmJih0aGlzLl90aGVuVmlld1JlZj10aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90aGVuVGVtcGxhdGVSZWYsdGhpcy5fY29udGV4dCkpKTp0aGlzLl9lbHNlVmlld1JlZnx8KHRoaXMuX3ZpZXdDb250YWluZXIuY2xlYXIoKSx0aGlzLl90aGVuVmlld1JlZj1udWxsLHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZiYmKHRoaXMuX2Vsc2VWaWV3UmVmPXRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZix0aGlzLl9jb250ZXh0KSkpfXN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKHQsZSl7cmV0dXJuITB9fWRNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkTSkoU20oZWgpLFNtKFhnKSl9LGRNLsm1ZGlyPWxvKHt0eXBlOmRNLHNlbGVjdG9yczpbWyIiLCJuZ0lmIiwiIl1dLGlucHV0czp7bmdJZjoibmdJZiIsbmdJZlRoZW46Im5nSWZUaGVuIixuZ0lmRWxzZToibmdJZkVsc2UifX0pLGRNLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6ZWh9LHt0eXBlOlhnfV0sZE0ucHJvcERlY29yYXRvcnM9e25nSWY6W3t0eXBlOnh5fV0sbmdJZlRoZW46W3t0eXBlOnh5fV0sbmdJZkVsc2U6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZE0sW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW25nSWZdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofSx7dHlwZTpYZ31dfSkse25nSWY6W3t0eXBlOnh5fV0sbmdJZlRoZW46W3t0eXBlOnh5fV0sbmdJZkVsc2U6W3t0eXBlOnh5fV19KTtjbGFzcyBwTXtjb25zdHJ1Y3Rvcigpe3RoaXMuJGltcGxpY2l0PW51bGwsdGhpcy5uZ0lmPW51bGx9fWZ1bmN0aW9uIG1NKHQsZSl7aWYoZSYmIWUuY3JlYXRlRW1iZWRkZWRWaWV3KXRocm93IG5ldyBFcnJvcihgJHt0fSBtdXN0IGJlIGEgVGVtcGxhdGVSZWYsIGJ1dCByZWNlaXZlZCAnJHtHZShlKX0nLmApfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB1TXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3ZpZXdDb250YWluZXJSZWY9dCx0aGlzLl90ZW1wbGF0ZVJlZj1lLHRoaXMuX2NyZWF0ZWQ9ITF9Y3JlYXRlKCl7dGhpcy5fY3JlYXRlZD0hMCx0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZVJlZil9ZGVzdHJveSgpe3RoaXMuX2NyZWF0ZWQ9ITEsdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpfWVuZm9yY2VTdGF0ZSh0KXt0JiYhdGhpcy5fY3JlYXRlZD90aGlzLmNyZWF0ZSgpOiF0JiZ0aGlzLl9jcmVhdGVkJiZ0aGlzLmRlc3Ryb3koKX19Y2xhc3MgZk17Y29uc3RydWN0b3IoKXt0aGlzLl9kZWZhdWx0VXNlZD0hMSx0aGlzLl9jYXNlQ291bnQ9MCx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9MCx0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkPSExfXNldCBuZ1N3aXRjaCh0KXt0aGlzLl9uZ1N3aXRjaD10LDA9PT10aGlzLl9jYXNlQ291bnQmJnRoaXMuX3VwZGF0ZURlZmF1bHRDYXNlcyghMCl9X2FkZENhc2UoKXtyZXR1cm4gdGhpcy5fY2FzZUNvdW50Kyt9X2FkZERlZmF1bHQodCl7dGhpcy5fZGVmYXVsdFZpZXdzfHwodGhpcy5fZGVmYXVsdFZpZXdzPVtdKSx0aGlzLl9kZWZhdWx0Vmlld3MucHVzaCh0KX1fbWF0Y2hDYXNlKHQpe2NvbnN0IGU9dD09dGhpcy5fbmdTd2l0Y2g7cmV0dXJuIHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9dGhpcy5fbGFzdENhc2VzTWF0Y2hlZHx8ZSx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXgrKyx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9PT10aGlzLl9jYXNlQ291bnQmJih0aGlzLl91cGRhdGVEZWZhdWx0Q2FzZXMoIXRoaXMuX2xhc3RDYXNlc01hdGNoZWQpLHRoaXMuX2xhc3RDYXNlQ2hlY2tJbmRleD0wLHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9ITEpLGV9X3VwZGF0ZURlZmF1bHRDYXNlcyh0KXtpZih0aGlzLl9kZWZhdWx0Vmlld3MmJnQhPT10aGlzLl9kZWZhdWx0VXNlZCl7dGhpcy5fZGVmYXVsdFVzZWQ9dDtmb3IobGV0IGU9MDtlPHRoaXMuX2RlZmF1bHRWaWV3cy5sZW5ndGg7ZSsrKXRoaXMuX2RlZmF1bHRWaWV3c1tlXS5lbmZvcmNlU3RhdGUodCl9fX1mTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Zk0pfSxmTS7JtWRpcj1sbyh7dHlwZTpmTSxzZWxlY3RvcnM6W1siIiwibmdTd2l0Y2giLCIiXV0saW5wdXRzOntuZ1N3aXRjaDoibmdTd2l0Y2gifX0pLGZNLnByb3BEZWNvcmF0b3JzPXtuZ1N3aXRjaDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChmTSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdTd2l0Y2hdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7bmdTd2l0Y2g6W3t0eXBlOnh5fV19KTtjbGFzcyBnTXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5uZ1N3aXRjaD1uLCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxufHxiTSgibmdTd2l0Y2hDYXNlIiwiTmdTd2l0Y2hDYXNlIiksbi5fYWRkQ2FzZSgpLHRoaXMuX3ZpZXc9bmV3IHVNKHQsZSl9bmdEb0NoZWNrKCl7dGhpcy5fdmlldy5lbmZvcmNlU3RhdGUodGhpcy5uZ1N3aXRjaC5fbWF0Y2hDYXNlKHRoaXMubmdTd2l0Y2hDYXNlKSl9fWdNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxnTSkoU20oZWgpLFNtKFhnKSxTbShmTSw5KSl9LGdNLsm1ZGlyPWxvKHt0eXBlOmdNLHNlbGVjdG9yczpbWyIiLCJuZ1N3aXRjaENhc2UiLCIiXV0saW5wdXRzOntuZ1N3aXRjaENhc2U6Im5nU3dpdGNoQ2FzZSJ9fSksZ00uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH0se3R5cGU6WGd9LHt0eXBlOmZNLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV0sZ00ucHJvcERlY29yYXRvcnM9e25nU3dpdGNoQ2FzZTpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnTSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdTd2l0Y2hDYXNlXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTplaH0se3R5cGU6WGd9LHt0eXBlOmZNLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV19KSx7bmdTd2l0Y2hDYXNlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgaE17Y29uc3RydWN0b3IodCxlLG4peyJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxufHxiTSgibmdTd2l0Y2hEZWZhdWx0IiwiTmdTd2l0Y2hEZWZhdWx0Iiksbi5fYWRkRGVmYXVsdChuZXcgdU0odCxlKSl9fWZ1bmN0aW9uIGJNKHQsZSl7dGhyb3cgbmV3IEtlKCIzMDUiLGBBbiBlbGVtZW50IHdpdGggdGhlICIke3R9IiBhdHRyaWJ1dGUgKG1hdGNoaW5nIHRoZSAiJHtlfSIgZGlyZWN0aXZlKSBtdXN0IGJlIGxvY2F0ZWQgaW5zaWRlIGFuIGVsZW1lbnQgd2l0aCB0aGUgIm5nU3dpdGNoIiBhdHRyaWJ1dGUgKG1hdGNoaW5nICJOZ1N3aXRjaCIgZGlyZWN0aXZlKWApfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9oTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aE0pKFNtKGVoKSxTbShYZyksU20oZk0sOSkpfSxoTS7JtWRpcj1sbyh7dHlwZTpoTSxzZWxlY3RvcnM6W1siIiwibmdTd2l0Y2hEZWZhdWx0IiwiIl1dfSksaE0uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH0se3R5cGU6WGd9LHt0eXBlOmZNLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChoTSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdTd2l0Y2hEZWZhdWx0XSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTplaH0se3R5cGU6WGd9LHt0eXBlOmZNLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV19KSxudWxsKTtjbGFzcyB5TXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9sb2NhbGl6YXRpb249dCx0aGlzLl9jYXNlVmlld3M9e319c2V0IG5nUGx1cmFsKHQpe3RoaXMuX3N3aXRjaFZhbHVlPXQsdGhpcy5fdXBkYXRlVmlldygpfWFkZENhc2UodCxlKXt0aGlzLl9jYXNlVmlld3NbdF09ZX1fdXBkYXRlVmlldygpe3RoaXMuX2NsZWFyVmlld3MoKTtjb25zdCB0PU9iamVjdC5rZXlzKHRoaXMuX2Nhc2VWaWV3cyksZT1uTSh0aGlzLl9zd2l0Y2hWYWx1ZSx0LHRoaXMuX2xvY2FsaXphdGlvbik7dGhpcy5fYWN0aXZhdGVWaWV3KHRoaXMuX2Nhc2VWaWV3c1tlXSl9X2NsZWFyVmlld3MoKXt0aGlzLl9hY3RpdmVWaWV3JiZ0aGlzLl9hY3RpdmVWaWV3LmRlc3Ryb3koKX1fYWN0aXZhdGVWaWV3KHQpe3QmJih0aGlzLl9hY3RpdmVWaWV3PXQsdGhpcy5fYWN0aXZlVmlldy5jcmVhdGUoKSl9fXlNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5TSkoU20oZU0pKX0seU0uybVkaXI9bG8oe3R5cGU6eU0sc2VsZWN0b3JzOltbIiIsIm5nUGx1cmFsIiwiIl1dLGlucHV0czp7bmdQbHVyYWw6Im5nUGx1cmFsIn19KSx5TS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmVNfV0seU0ucHJvcERlY29yYXRvcnM9e25nUGx1cmFsOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHlNLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltuZ1BsdXJhbF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZU19XX0pLHtuZ1BsdXJhbDpbe3R5cGU6eHl9XX0pO2NsYXNzIF9Ne2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMudmFsdWU9dDtjb25zdCBpPSFpc05hTihOdW1iZXIodCkpO28uYWRkQ2FzZShpP2A9JHt0fWA6dCxuZXcgdU0obixlKSl9fV9NLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfTSkoTmEoIm5nUGx1cmFsQ2FzZSIpLFNtKFhnKSxTbShlaCksU20oeU0sMSkpfSxfTS7JtWRpcj1sbyh7dHlwZTpfTSxzZWxlY3RvcnM6W1siIiwibmdQbHVyYWxDYXNlIiwiIl1dfSksX00uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbIm5nUGx1cmFsQ2FzZSJdfV19LHt0eXBlOlhnfSx7dHlwZTplaH0se3R5cGU6eU0sZGVjb3JhdG9yczpbe3R5cGU6UnJ9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoX00sW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW25nUGx1cmFsQ2FzZV0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJuZ1BsdXJhbENhc2UiXX1dfSx7dHlwZTpYZ30se3R5cGU6ZWh9LHt0eXBlOnlNLGRlY29yYXRvcnM6W3t0eXBlOlJyfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgQ017Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX25nRWw9dCx0aGlzLl9kaWZmZXJzPWUsdGhpcy5fcmVuZGVyZXI9bix0aGlzLl9uZ1N0eWxlPW51bGwsdGhpcy5fZGlmZmVyPW51bGx9c2V0IG5nU3R5bGUodCl7dGhpcy5fbmdTdHlsZT10LCF0aGlzLl9kaWZmZXImJnQmJih0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKHQpLmNyZWF0ZSgpKX1uZ0RvQ2hlY2soKXtpZih0aGlzLl9kaWZmZXIpe2NvbnN0IHQ9dGhpcy5fZGlmZmVyLmRpZmYodGhpcy5fbmdTdHlsZSk7dCYmdGhpcy5fYXBwbHlDaGFuZ2VzKHQpfX1fc2V0U3R5bGUodCxlKXtjb25zdFtuLG9dPXQuc3BsaXQoIi4iKTtudWxsIT0oZT1udWxsIT1lJiZvP2Ake2V9JHtvfWA6ZSk/dGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LG4sZSk6dGhpcy5fcmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LG4pfV9hcHBseUNoYW5nZXModCl7dC5mb3JFYWNoUmVtb3ZlZEl0ZW0oKHQ9PnRoaXMuX3NldFN0eWxlKHQua2V5LG51bGwpKSksdC5mb3JFYWNoQWRkZWRJdGVtKCh0PT50aGlzLl9zZXRTdHlsZSh0LmtleSx0LmN1cnJlbnRWYWx1ZSkpKSx0LmZvckVhY2hDaGFuZ2VkSXRlbSgodD0+dGhpcy5fc2V0U3R5bGUodC5rZXksdC5jdXJyZW50VmFsdWUpKSl9fUNNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDTSkoU20oaGcpLFNtKExnKSxTbShDZykpfSxDTS7JtWRpcj1sbyh7dHlwZTpDTSxzZWxlY3RvcnM6W1siIiwibmdTdHlsZSIsIiJdXSxpbnB1dHM6e25nU3R5bGU6Im5nU3R5bGUifX0pLENNLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOkxnfSx7dHlwZTpDZ31dLENNLnByb3BEZWNvcmF0b3JzPXtuZ1N0eWxlOlt7dHlwZTp4eSxhcmdzOlsibmdTdHlsZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQ00sW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW25nU3R5bGVdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpMZ30se3R5cGU6Q2d9XX0pLHtuZ1N0eWxlOlt7dHlwZTp4eSxhcmdzOlsibmdTdHlsZSJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIE1Ne2NvbnN0cnVjdG9yKHQpe3RoaXMuX3ZpZXdDb250YWluZXJSZWY9dCx0aGlzLl92aWV3UmVmPW51bGwsdGhpcy5uZ1RlbXBsYXRlT3V0bGV0Q29udGV4dD1udWxsLHRoaXMubmdUZW1wbGF0ZU91dGxldD1udWxsfW5nT25DaGFuZ2VzKHQpe2lmKHQubmdUZW1wbGF0ZU91dGxldCl7Y29uc3QgdD10aGlzLl92aWV3Q29udGFpbmVyUmVmO3RoaXMuX3ZpZXdSZWYmJnQucmVtb3ZlKHQuaW5kZXhPZih0aGlzLl92aWV3UmVmKSksdGhpcy5fdmlld1JlZj10aGlzLm5nVGVtcGxhdGVPdXRsZXQ/dC5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5uZ1RlbXBsYXRlT3V0bGV0LHRoaXMubmdUZW1wbGF0ZU91dGxldENvbnRleHQpOm51bGx9ZWxzZSB0aGlzLl92aWV3UmVmJiZ0Lm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiZ0aGlzLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiYodGhpcy5fdmlld1JlZi5jb250ZXh0PXRoaXMubmdUZW1wbGF0ZU91dGxldENvbnRleHQpfX1NTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TU0pKFNtKGVoKSl9LE1NLsm1ZGlyPWxvKHt0eXBlOk1NLHNlbGVjdG9yczpbWyIiLCJuZ1RlbXBsYXRlT3V0bGV0IiwiIl1dLGlucHV0czp7bmdUZW1wbGF0ZU91dGxldENvbnRleHQ6Im5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixuZ1RlbXBsYXRlT3V0bGV0OiJuZ1RlbXBsYXRlT3V0bGV0In0sZmVhdHVyZXM6W0JvXX0pLE1NLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6ZWh9XSxNTS5wcm9wRGVjb3JhdG9ycz17bmdUZW1wbGF0ZU91dGxldENvbnRleHQ6W3t0eXBlOnh5fV0sbmdUZW1wbGF0ZU91dGxldDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChNTSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdUZW1wbGF0ZU91dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZWh9XX0pLHtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dDpbe3R5cGU6eHl9XSxuZ1RlbXBsYXRlT3V0bGV0Olt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB2TT1bYU0sck0sbE0sZE0sTU0sQ00sZk0sZ00saE0seU0sX01dOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB4TSh0LGUpe3JldHVybiBFcnJvcihgSW52YWxpZFBpcGVBcmd1bWVudDogJyR7ZX0nIGZvciBwaXBlICcke0dlKHQpfSdgKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgT009bmV3IGNsYXNze2NyZWF0ZVN1YnNjcmlwdGlvbih0LGUpe3JldHVybiB0LnRoZW4oZSwodD0+e3Rocm93IHR9KSl9ZGlzcG9zZSh0KXt9b25EZXN0cm95KHQpe319LFBNPW5ldyBjbGFzc3tjcmVhdGVTdWJzY3JpcHRpb24odCxlKXtyZXR1cm4gdC5zdWJzY3JpYmUoe25leHQ6ZSxlcnJvcjp0PT57dGhyb3cgdH19KX1kaXNwb3NlKHQpe3QudW5zdWJzY3JpYmUoKX1vbkRlc3Ryb3kodCl7dC51bnN1YnNjcmliZSgpfX07Y2xhc3Mgd017Y29uc3RydWN0b3IodCl7dGhpcy5fcmVmPXQsdGhpcy5fbGF0ZXN0VmFsdWU9bnVsbCx0aGlzLl9zdWJzY3JpcHRpb249bnVsbCx0aGlzLl9vYmo9bnVsbCx0aGlzLl9zdHJhdGVneT1udWxsfW5nT25EZXN0cm95KCl7dGhpcy5fc3Vic2NyaXB0aW9uJiZ0aGlzLl9kaXNwb3NlKCl9dHJhbnNmb3JtKHQpe3JldHVybiB0aGlzLl9vYmo/dCE9PXRoaXMuX29iaj8odGhpcy5fZGlzcG9zZSgpLHRoaXMudHJhbnNmb3JtKHQpKTp0aGlzLl9sYXRlc3RWYWx1ZToodCYmdGhpcy5fc3Vic2NyaWJlKHQpLHRoaXMuX2xhdGVzdFZhbHVlKX1fc3Vic2NyaWJlKHQpe3RoaXMuX29iaj10LHRoaXMuX3N0cmF0ZWd5PXRoaXMuX3NlbGVjdFN0cmF0ZWd5KHQpLHRoaXMuX3N1YnNjcmlwdGlvbj10aGlzLl9zdHJhdGVneS5jcmVhdGVTdWJzY3JpcHRpb24odCwoZT0+dGhpcy5fdXBkYXRlTGF0ZXN0VmFsdWUodCxlKSkpfV9zZWxlY3RTdHJhdGVneSh0KXtpZihGbSh0KSlyZXR1cm4gT007aWYoTG0odCkpcmV0dXJuIFBNO3Rocm93IHhNKHdNLHQpfV9kaXNwb3NlKCl7dGhpcy5fc3RyYXRlZ3kuZGlzcG9zZSh0aGlzLl9zdWJzY3JpcHRpb24pLHRoaXMuX2xhdGVzdFZhbHVlPW51bGwsdGhpcy5fc3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fb2JqPW51bGx9X3VwZGF0ZUxhdGVzdFZhbHVlKHQsZSl7dD09PXRoaXMuX29iaiYmKHRoaXMuX2xhdGVzdFZhbHVlPWUsdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpKX19d00uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHdNKShTbShVZywxNikpfSx3TS7JtXBpcGU9Y28oe25hbWU6ImFzeW5jIix0eXBlOndNLHB1cmU6ITF9KSx3TS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlVnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh3TSxbe3R5cGU6dnksYXJnczpbe25hbWU6ImFzeW5jIixwdXJlOiExfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWd9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3Mga017dHJhbnNmb3JtKHQpe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IHhNKGtNLHQpO3JldHVybiB0LnRvTG93ZXJDYXNlKCl9fWtNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrTSl9LGtNLsm1cGlwZT1jbyh7bmFtZToibG93ZXJjYXNlIix0eXBlOmtNLHB1cmU6ITB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGtNLFt7dHlwZTp2eSxhcmdzOlt7bmFtZToibG93ZXJjYXNlIn1dfV0sbnVsbCxudWxsKTtjb25zdCBTTT0vKD86W0EtWmEtelx4QUFceEI1XHhCQVx4QzAtXHhENlx4RDgtXHhGNlx4RjgtXHUwMkMxXHUwMkM2LVx1MDJEMVx1MDJFMC1cdTAyRTRcdTAyRUNcdTAyRUVcdTAzNzAtXHUwMzc0XHUwMzc2XHUwMzc3XHUwMzdBLVx1MDM3RFx1MDM3Rlx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNGNVx1MDNGNy1cdTA0ODFcdTA0OEEtXHUwNTJGXHUwNTMxLVx1MDU1Nlx1MDU1OVx1MDU2MS1cdTA1ODdcdTA1RDAtXHUwNUVBXHUwNUYwLVx1MDVGMlx1MDYyMC1cdTA2NEFcdTA2NkVcdTA2NkZcdTA2NzEtXHUwNkQzXHUwNkQ1XHUwNkU1XHUwNkU2XHUwNkVFXHUwNkVGXHUwNkZBLVx1MDZGQ1x1MDZGRlx1MDcxMFx1MDcxMi1cdTA3MkZcdTA3NEQtXHUwN0E1XHUwN0IxXHUwN0NBLVx1MDdFQVx1MDdGNFx1MDdGNVx1MDdGQVx1MDgwMC1cdTA4MTVcdTA4MUFcdTA4MjRcdTA4MjhcdTA4NDAtXHUwODU4XHUwODYwLVx1MDg2QVx1MDhBMC1cdTA4QjRcdTA4QjYtXHUwOEJEXHUwOTA0LVx1MDkzOVx1MDkzRFx1MDk1MFx1MDk1OC1cdTA5NjFcdTA5NzEtXHUwOTgwXHUwOTg1LVx1MDk4Q1x1MDk4Rlx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCRFx1MDlDRVx1MDlEQ1x1MDlERFx1MDlERi1cdTA5RTFcdTA5RjBcdTA5RjFcdTA5RkNcdTBBMDUtXHUwQTBBXHUwQTBGXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzJcdTBBMzNcdTBBMzVcdTBBMzZcdTBBMzhcdTBBMzlcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTcyLVx1MEE3NFx1MEE4NS1cdTBBOERcdTBBOEYtXHUwQTkxXHUwQTkzLVx1MEFBOFx1MEFBQS1cdTBBQjBcdTBBQjJcdTBBQjNcdTBBQjUtXHUwQUI5XHUwQUJEXHUwQUQwXHUwQUUwXHUwQUUxXHUwQUY5XHUwQjA1LVx1MEIwQ1x1MEIwRlx1MEIxMFx1MEIxMy1cdTBCMjhcdTBCMkEtXHUwQjMwXHUwQjMyXHUwQjMzXHUwQjM1LVx1MEIzOVx1MEIzRFx1MEI1Q1x1MEI1RFx1MEI1Ri1cdTBCNjFcdTBCNzFcdTBCODNcdTBCODUtXHUwQjhBXHUwQjhFLVx1MEI5MFx1MEI5Mi1cdTBCOTVcdTBCOTlcdTBCOUFcdTBCOUNcdTBCOUVcdTBCOUZcdTBCQTNcdTBCQTRcdTBCQTgtXHUwQkFBXHUwQkFFLVx1MEJCOVx1MEJEMFx1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzlcdTBDM0RcdTBDNTgtXHUwQzVBXHUwQzYwXHUwQzYxXHUwQzgwXHUwQzg1LVx1MEM4Q1x1MEM4RS1cdTBDOTBcdTBDOTItXHUwQ0E4XHUwQ0FBLVx1MENCM1x1MENCNS1cdTBDQjlcdTBDQkRcdTBDREVcdTBDRTBcdTBDRTFcdTBDRjFcdTBDRjJcdTBEMDUtXHUwRDBDXHUwRDBFLVx1MEQxMFx1MEQxMi1cdTBEM0FcdTBEM0RcdTBENEVcdTBENTQtXHUwRDU2XHUwRDVGLVx1MEQ2MVx1MEQ3QS1cdTBEN0ZcdTBEODUtXHUwRDk2XHUwRDlBLVx1MERCMVx1MERCMy1cdTBEQkJcdTBEQkRcdTBEQzAtXHUwREM2XHUwRTAxLVx1MEUzMFx1MEUzMlx1MEUzM1x1MEU0MC1cdTBFNDZcdTBFODFcdTBFODJcdTBFODRcdTBFODdcdTBFODhcdTBFOEFcdTBFOERcdTBFOTQtXHUwRTk3XHUwRTk5LVx1MEU5Rlx1MEVBMS1cdTBFQTNcdTBFQTVcdTBFQTdcdTBFQUFcdTBFQUJcdTBFQUQtXHUwRUIwXHUwRUIyXHUwRUIzXHUwRUJEXHUwRUMwLVx1MEVDNFx1MEVDNlx1MEVEQy1cdTBFREZcdTBGMDBcdTBGNDAtXHUwRjQ3XHUwRjQ5LVx1MEY2Q1x1MEY4OC1cdTBGOENcdTEwMDAtXHUxMDJBXHUxMDNGXHUxMDUwLVx1MTA1NVx1MTA1QS1cdTEwNURcdTEwNjFcdTEwNjVcdTEwNjZcdTEwNkUtXHUxMDcwXHUxMDc1LVx1MTA4MVx1MTA4RVx1MTBBMC1cdTEwQzVcdTEwQzdcdTEwQ0RcdTEwRDAtXHUxMEZBXHUxMEZDLVx1MTI0OFx1MTI0QS1cdTEyNERcdTEyNTAtXHUxMjU2XHUxMjU4XHUxMjVBLVx1MTI1RFx1MTI2MC1cdTEyODhcdTEyOEEtXHUxMjhEXHUxMjkwLVx1MTJCMFx1MTJCMi1cdTEyQjVcdTEyQjgtXHUxMkJFXHUxMkMwXHUxMkMyLVx1MTJDNVx1MTJDOC1cdTEyRDZcdTEyRDgtXHUxMzEwXHUxMzEyLVx1MTMxNVx1MTMxOC1cdTEzNUFcdTEzODAtXHUxMzhGXHUxM0EwLVx1MTNGNVx1MTNGOC1cdTEzRkRcdTE0MDEtXHUxNjZDXHUxNjZGLVx1MTY3Rlx1MTY4MS1cdTE2OUFcdTE2QTAtXHUxNkVBXHUxNkYxLVx1MTZGOFx1MTcwMC1cdTE3MENcdTE3MEUtXHUxNzExXHUxNzIwLVx1MTczMVx1MTc0MC1cdTE3NTFcdTE3NjAtXHUxNzZDXHUxNzZFLVx1MTc3MFx1MTc4MC1cdTE3QjNcdTE3RDdcdTE3RENcdTE4MjAtXHUxODc3XHUxODgwLVx1MTg4NFx1MTg4Ny1cdTE4QThcdTE4QUFcdTE4QjAtXHUxOEY1XHUxOTAwLVx1MTkxRVx1MTk1MC1cdTE5NkRcdTE5NzAtXHUxOTc0XHUxOTgwLVx1MTlBQlx1MTlCMC1cdTE5QzlcdTFBMDAtXHUxQTE2XHUxQTIwLVx1MUE1NFx1MUFBN1x1MUIwNS1cdTFCMzNcdTFCNDUtXHUxQjRCXHUxQjgzLVx1MUJBMFx1MUJBRVx1MUJBRlx1MUJCQS1cdTFCRTVcdTFDMDAtXHUxQzIzXHUxQzRELVx1MUM0Rlx1MUM1QS1cdTFDN0RcdTFDODAtXHUxQzg4XHUxQ0U5LVx1MUNFQ1x1MUNFRS1cdTFDRjFcdTFDRjVcdTFDRjZcdTFEMDAtXHUxREJGXHUxRTAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQkNcdTFGQkVcdTFGQzItXHUxRkM0XHUxRkM2LVx1MUZDQ1x1MUZEMC1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkUwLVx1MUZFQ1x1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZDXHUyMDcxXHUyMDdGXHUyMDkwLVx1MjA5Q1x1MjEwMlx1MjEwN1x1MjEwQS1cdTIxMTNcdTIxMTVcdTIxMTktXHUyMTFEXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzlcdTIxM0MtXHUyMTNGXHUyMTQ1LVx1MjE0OVx1MjE0RVx1MjE4M1x1MjE4NFx1MkMwMC1cdTJDMkVcdTJDMzAtXHUyQzVFXHUyQzYwLVx1MkNFNFx1MkNFQi1cdTJDRUVcdTJDRjJcdTJDRjNcdTJEMDAtXHUyRDI1XHUyRDI3XHUyRDJEXHUyRDMwLVx1MkQ2N1x1MkQ2Rlx1MkQ4MC1cdTJEOTZcdTJEQTAtXHUyREE2XHUyREE4LVx1MkRBRVx1MkRCMC1cdTJEQjZcdTJEQjgtXHUyREJFXHUyREMwLVx1MkRDNlx1MkRDOC1cdTJEQ0VcdTJERDAtXHUyREQ2XHUyREQ4LVx1MkRERVx1MkUyRlx1MzAwNVx1MzAwNlx1MzAzMS1cdTMwMzVcdTMwM0JcdTMwM0NcdTMwNDEtXHUzMDk2XHUzMDlELVx1MzA5Rlx1MzBBMS1cdTMwRkFcdTMwRkMtXHUzMEZGXHUzMTA1LVx1MzEyRVx1MzEzMS1cdTMxOEVcdTMxQTAtXHUzMUJBXHUzMUYwLVx1MzFGRlx1MzQwMC1cdTREQjVcdTRFMDAtXHU5RkVBXHVBMDAwLVx1QTQ4Q1x1QTREMC1cdUE0RkRcdUE1MDAtXHVBNjBDXHVBNjEwLVx1QTYxRlx1QTYyQVx1QTYyQlx1QTY0MC1cdUE2NkVcdUE2N0YtXHVBNjlEXHVBNkEwLVx1QTZFNVx1QTcxNy1cdUE3MUZcdUE3MjItXHVBNzg4XHVBNzhCLVx1QTdBRVx1QTdCMC1cdUE3QjdcdUE3RjctXHVBODAxXHVBODAzLVx1QTgwNVx1QTgwNy1cdUE4MEFcdUE4MEMtXHVBODIyXHVBODQwLVx1QTg3M1x1QTg4Mi1cdUE4QjNcdUE4RjItXHVBOEY3XHVBOEZCXHVBOEZEXHVBOTBBLVx1QTkyNVx1QTkzMC1cdUE5NDZcdUE5NjAtXHVBOTdDXHVBOTg0LVx1QTlCMlx1QTlDRlx1QTlFMC1cdUE5RTRcdUE5RTYtXHVBOUVGXHVBOUZBLVx1QTlGRVx1QUEwMC1cdUFBMjhcdUFBNDAtXHVBQTQyXHVBQTQ0LVx1QUE0Qlx1QUE2MC1cdUFBNzZcdUFBN0FcdUFBN0UtXHVBQUFGXHVBQUIxXHVBQUI1XHVBQUI2XHVBQUI5LVx1QUFCRFx1QUFDMFx1QUFDMlx1QUFEQi1cdUFBRERcdUFBRTAtXHVBQUVBXHVBQUYyLVx1QUFGNFx1QUIwMS1cdUFCMDZcdUFCMDktXHVBQjBFXHVBQjExLVx1QUIxNlx1QUIyMC1cdUFCMjZcdUFCMjgtXHVBQjJFXHVBQjMwLVx1QUI1QVx1QUI1Qy1cdUFCNjVcdUFCNzAtXHVBQkUyXHVBQzAwLVx1RDdBM1x1RDdCMC1cdUQ3QzZcdUQ3Q0ItXHVEN0ZCXHVGOTAwLVx1RkE2RFx1RkE3MC1cdUZBRDlcdUZCMDAtXHVGQjA2XHVGQjEzLVx1RkIxN1x1RkIxRFx1RkIxRi1cdUZCMjhcdUZCMkEtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MVx1RkI0M1x1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTcwLVx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMjEtXHVGRjNBXHVGRjQxLVx1RkY1QVx1RkY2Ni1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXXxcdUQ4MDBbXHVEQzAwLVx1REMwQlx1REMwRC1cdURDMjZcdURDMjgtXHVEQzNBXHVEQzNDXHVEQzNEXHVEQzNGLVx1REM0RFx1REM1MC1cdURDNURcdURDODAtXHVEQ0ZBXHVERTgwLVx1REU5Q1x1REVBMC1cdURFRDBcdURGMDAtXHVERjFGXHVERjJELVx1REY0MFx1REY0Mi1cdURGNDlcdURGNTAtXHVERjc1XHVERjgwLVx1REY5RFx1REZBMC1cdURGQzNcdURGQzgtXHVERkNGXXxcdUQ4MDFbXHVEQzAwLVx1REM5RFx1RENCMC1cdURDRDNcdURDRDgtXHVEQ0ZCXHVERDAwLVx1REQyN1x1REQzMC1cdURENjNcdURFMDAtXHVERjM2XHVERjQwLVx1REY1NVx1REY2MC1cdURGNjddfFx1RDgwMltcdURDMDAtXHVEQzA1XHVEQzA4XHVEQzBBLVx1REMzNVx1REMzN1x1REMzOFx1REMzQ1x1REMzRi1cdURDNTVcdURDNjAtXHVEQzc2XHVEQzgwLVx1REM5RVx1RENFMC1cdURDRjJcdURDRjRcdURDRjVcdUREMDAtXHVERDE1XHVERDIwLVx1REQzOVx1REQ4MC1cdUREQjdcdUREQkVcdUREQkZcdURFMDBcdURFMTAtXHVERTEzXHVERTE1LVx1REUxN1x1REUxOS1cdURFMzNcdURFNjAtXHVERTdDXHVERTgwLVx1REU5Q1x1REVDMC1cdURFQzdcdURFQzktXHVERUU0XHVERjAwLVx1REYzNVx1REY0MC1cdURGNTVcdURGNjAtXHVERjcyXHVERjgwLVx1REY5MV18XHVEODAzW1x1REMwMC1cdURDNDhcdURDODAtXHVEQ0IyXHVEQ0MwLVx1RENGMl18XHVEODA0W1x1REMwMy1cdURDMzdcdURDODMtXHVEQ0FGXHVEQ0QwLVx1RENFOFx1REQwMy1cdUREMjZcdURENTAtXHVERDcyXHVERDc2XHVERDgzLVx1RERCMlx1RERDMS1cdUREQzRcdUREREFcdURERENcdURFMDAtXHVERTExXHVERTEzLVx1REUyQlx1REU4MC1cdURFODZcdURFODhcdURFOEEtXHVERThEXHVERThGLVx1REU5RFx1REU5Ri1cdURFQThcdURFQjAtXHVERURFXHVERjA1LVx1REYwQ1x1REYwRlx1REYxMFx1REYxMy1cdURGMjhcdURGMkEtXHVERjMwXHVERjMyXHVERjMzXHVERjM1LVx1REYzOVx1REYzRFx1REY1MFx1REY1RC1cdURGNjFdfFx1RDgwNVtcdURDMDAtXHVEQzM0XHVEQzQ3LVx1REM0QVx1REM4MC1cdURDQUZcdURDQzRcdURDQzVcdURDQzdcdUREODAtXHVEREFFXHVEREQ4LVx1REREQlx1REUwMC1cdURFMkZcdURFNDRcdURFODAtXHVERUFBXHVERjAwLVx1REYxOV18XHVEODA2W1x1RENBMC1cdURDREZcdURDRkZcdURFMDBcdURFMEItXHVERTMyXHVERTNBXHVERTUwXHVERTVDLVx1REU4M1x1REU4Ni1cdURFODlcdURFQzAtXHVERUY4XXxcdUQ4MDdbXHVEQzAwLVx1REMwOFx1REMwQS1cdURDMkVcdURDNDBcdURDNzItXHVEQzhGXHVERDAwLVx1REQwNlx1REQwOFx1REQwOVx1REQwQi1cdUREMzBcdURENDZdfFx1RDgwOFtcdURDMDAtXHVERjk5XXxcdUQ4MDlbXHVEQzgwLVx1REQ0M118W1x1RDgwQ1x1RDgxQy1cdUQ4MjBcdUQ4NDAtXHVEODY4XHVEODZBLVx1RDg2Q1x1RDg2Ri1cdUQ4NzJcdUQ4NzQtXHVEODc5XVtcdURDMDAtXHVERkZGXXxcdUQ4MERbXHVEQzAwLVx1REMyRV18XHVEODExW1x1REMwMC1cdURFNDZdfFx1RDgxQVtcdURDMDAtXHVERTM4XHVERTQwLVx1REU1RVx1REVEMC1cdURFRURcdURGMDAtXHVERjJGXHVERjQwLVx1REY0M1x1REY2My1cdURGNzdcdURGN0QtXHVERjhGXXxcdUQ4MUJbXHVERjAwLVx1REY0NFx1REY1MFx1REY5My1cdURGOUZcdURGRTBcdURGRTFdfFx1RDgyMVtcdURDMDAtXHVERkVDXXxcdUQ4MjJbXHVEQzAwLVx1REVGMl18XHVEODJDW1x1REMwMC1cdUREMUVcdURENzAtXHVERUZCXXxcdUQ4MkZbXHVEQzAwLVx1REM2QVx1REM3MC1cdURDN0NcdURDODAtXHVEQzg4XHVEQzkwLVx1REM5OV18XHVEODM1W1x1REMwMC1cdURDNTRcdURDNTYtXHVEQzlDXHVEQzlFXHVEQzlGXHVEQ0EyXHVEQ0E1XHVEQ0E2XHVEQ0E5LVx1RENBQ1x1RENBRS1cdURDQjlcdURDQkJcdURDQkQtXHVEQ0MzXHVEQ0M1LVx1REQwNVx1REQwNy1cdUREMEFcdUREMEQtXHVERDE0XHVERDE2LVx1REQxQ1x1REQxRS1cdUREMzlcdUREM0ItXHVERDNFXHVERDQwLVx1REQ0NFx1REQ0Nlx1REQ0QS1cdURENTBcdURENTItXHVERUE1XHVERUE4LVx1REVDMFx1REVDMi1cdURFREFcdURFREMtXHVERUZBXHVERUZDLVx1REYxNFx1REYxNi1cdURGMzRcdURGMzYtXHVERjRFXHVERjUwLVx1REY2RVx1REY3MC1cdURGODhcdURGOEEtXHVERkE4XHVERkFBLVx1REZDMlx1REZDNC1cdURGQ0JdfFx1RDgzQVtcdURDMDAtXHVEQ0M0XHVERDAwLVx1REQ0M118XHVEODNCW1x1REUwMC1cdURFMDNcdURFMDUtXHVERTFGXHVERTIxXHVERTIyXHVERTI0XHVERTI3XHVERTI5LVx1REUzMlx1REUzNC1cdURFMzdcdURFMzlcdURFM0JcdURFNDJcdURFNDdcdURFNDlcdURFNEJcdURFNEQtXHVERTRGXHVERTUxXHVERTUyXHVERTU0XHVERTU3XHVERTU5XHVERTVCXHVERTVEXHVERTVGXHVERTYxXHVERTYyXHVERTY0XHVERTY3LVx1REU2QVx1REU2Qy1cdURFNzJcdURFNzQtXHVERTc3XHVERTc5LVx1REU3Q1x1REU3RVx1REU4MC1cdURFODlcdURFOEItXHVERTlCXHVERUExLVx1REVBM1x1REVBNS1cdURFQTlcdURFQUItXHVERUJCXXxcdUQ4NjlbXHVEQzAwLVx1REVENlx1REYwMC1cdURGRkZdfFx1RDg2RFtcdURDMDAtXHVERjM0XHVERjQwLVx1REZGRl18XHVEODZFW1x1REMwMC1cdURDMURcdURDMjAtXHVERkZGXXxcdUQ4NzNbXHVEQzAwLVx1REVBMVx1REVCMC1cdURGRkZdfFx1RDg3QVtcdURDMDAtXHVERkUwXXxcdUQ4N0VbXHVEQzAwLVx1REUxRF0pXFMqL2c7Y2xhc3MgRE17dHJhbnNmb3JtKHQpe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IHhNKERNLHQpO3JldHVybiB0LnJlcGxhY2UoU00sKHQ9PnRbMF0udG9VcHBlckNhc2UoKSt0LnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpKSl9fURNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxETSl9LERNLsm1cGlwZT1jbyh7bmFtZToidGl0bGVjYXNlIix0eXBlOkRNLHB1cmU6ITB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKERNLFt7dHlwZTp2eSxhcmdzOlt7bmFtZToidGl0bGVjYXNlIn1dfV0sbnVsbCxudWxsKTtjbGFzcyBFTXt0cmFuc2Zvcm0odCl7aWYobnVsbD09dClyZXR1cm4gbnVsbDtpZigic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgeE0oRU0sdCk7cmV0dXJuIHQudG9VcHBlckNhc2UoKX19RU0uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEVNKX0sRU0uybVwaXBlPWNvKHtuYW1lOiJ1cHBlcmNhc2UiLHR5cGU6RU0scHVyZTohMH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRU0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJ1cHBlcmNhc2UifV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgUk17Y29uc3RydWN0b3IodCl7dGhpcy5sb2NhbGU9dH10cmFuc2Zvcm0odCxlPSJtZWRpdW1EYXRlIixuLG8pe2lmKG51bGw9PXR8fCIiPT09dHx8dCE9dClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIE5DKHQsZSxvfHx0aGlzLmxvY2FsZSxuKX1jYXRjaCh0KXt0aHJvdyB4TShSTSx0Lm1lc3NhZ2UpfX19Uk0uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJNKShTbShXeSwxNikpfSxSTS7JtXBpcGU9Y28oe25hbWU6ImRhdGUiLHR5cGU6Uk0scHVyZTohMH0pLFJNLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1d5XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChSTSxbe3R5cGU6dnksYXJnczpbe25hbWU6ImRhdGUiLHB1cmU6ITB9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbV3ldfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgQU09LyMvZztjbGFzcyBUTXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9sb2NhbGl6YXRpb249dH10cmFuc2Zvcm0odCxlLG4pe2lmKG51bGw9PXQpcmV0dXJuIiI7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSl0aHJvdyB4TShUTSxlKTtyZXR1cm4gZVtuTSh0LE9iamVjdC5rZXlzKGUpLHRoaXMuX2xvY2FsaXphdGlvbixuKV0ucmVwbGFjZShBTSx0LnRvU3RyaW5nKCkpfX1UTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VE0pKFNtKGVNLDE2KSl9LFRNLsm1cGlwZT1jbyh7bmFtZToiaTE4blBsdXJhbCIsdHlwZTpUTSxwdXJlOiEwfSksVE0uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplTX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVE0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJpMThuUGx1cmFsIixwdXJlOiEwfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZU19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgTk17dHJhbnNmb3JtKHQsZSl7aWYobnVsbD09dClyZXR1cm4iIjtpZigib2JqZWN0IiE9dHlwZW9mIGV8fCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyB4TShOTSxlKTtyZXR1cm4gZS5oYXNPd25Qcm9wZXJ0eSh0KT9lW3RdOmUuaGFzT3duUHJvcGVydHkoIm90aGVyIik/ZS5vdGhlcjoiIn19Tk0uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE5NKX0sTk0uybVwaXBlPWNvKHtuYW1lOiJpMThuU2VsZWN0Iix0eXBlOk5NLHB1cmU6ITB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE5NLFt7dHlwZTp2eSxhcmdzOlt7bmFtZToiaTE4blNlbGVjdCIscHVyZTohMH1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHpNe3RyYW5zZm9ybSh0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCxudWxsLDIpfX16TS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ek0pfSx6TS7JtXBpcGU9Y28oe25hbWU6Impzb24iLHR5cGU6ek0scHVyZTohMX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoek0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJqc29uIixwdXJlOiExfV19XSxudWxsLG51bGwpO2NsYXNzIElNe2NvbnN0cnVjdG9yKHQpe3RoaXMuZGlmZmVycz10LHRoaXMua2V5VmFsdWVzPVtdLHRoaXMuY29tcGFyZUZuPUhNfXRyYW5zZm9ybSh0LGU9SE0pe2lmKCF0fHwhKHQgaW5zdGFuY2VvZiBNYXApJiYib2JqZWN0IiE9dHlwZW9mIHQpcmV0dXJuIG51bGw7dGhpcy5kaWZmZXJ8fCh0aGlzLmRpZmZlcj10aGlzLmRpZmZlcnMuZmluZCh0KS5jcmVhdGUoKSk7Y29uc3Qgbj10aGlzLmRpZmZlci5kaWZmKHQpLG89ZSE9PXRoaXMuY29tcGFyZUZuO3JldHVybiBuJiYodGhpcy5rZXlWYWx1ZXM9W10sbi5mb3JFYWNoSXRlbSgodD0+e3RoaXMua2V5VmFsdWVzLnB1c2goKAovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gZSh0LG4pe3JldHVybntrZXk6dCx2YWx1ZTpufX0pKHQua2V5LHQuY3VycmVudFZhbHVlKSl9KSkpLChufHxvKSYmKHRoaXMua2V5VmFsdWVzLnNvcnQoZSksdGhpcy5jb21wYXJlRm49ZSksdGhpcy5rZXlWYWx1ZXN9fWZ1bmN0aW9uIEhNKHQsZSl7Y29uc3Qgbj10LmtleSxvPWUua2V5O2lmKG49PT1vKXJldHVybiAwO2lmKHZvaWQgMD09PW4pcmV0dXJuIDE7aWYodm9pZCAwPT09bylyZXR1cm4tMTtpZihudWxsPT09bilyZXR1cm4gMTtpZihudWxsPT09bylyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIG4mJiJzdHJpbmciPT10eXBlb2YgbylyZXR1cm4gbjxvPy0xOjE7aWYoIm51bWJlciI9PXR5cGVvZiBuJiYibnVtYmVyIj09dHlwZW9mIG8pcmV0dXJuIG4tbztpZigiYm9vbGVhbiI9PXR5cGVvZiBuJiYiYm9vbGVhbiI9PXR5cGVvZiBvKXJldHVybiBuPG8/LTE6MTtjb25zdCBpPVN0cmluZyhuKSxhPVN0cmluZyhvKTtyZXR1cm4gaT09YT8wOmk8YT8tMToxfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9JTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SU0pKFNtKExnLDE2KSl9LElNLsm1cGlwZT1jbyh7bmFtZToia2V5dmFsdWUiLHR5cGU6SU0scHVyZTohMX0pLElNLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6TGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElNLFt7dHlwZTp2eSxhcmdzOlt7bmFtZToia2V5dmFsdWUiLHB1cmU6ITF9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpMZ31dfSksbnVsbCk7Y2xhc3MgRk17Y29uc3RydWN0b3IodCl7dGhpcy5fbG9jYWxlPXR9dHJhbnNmb3JtKHQsZSxuKXtpZighVk0odCkpcmV0dXJuIG51bGw7bj1ufHx0aGlzLl9sb2NhbGU7dHJ5e3JldHVybiBRQyhqTSh0KSxuLGUpfWNhdGNoKHQpe3Rocm93IHhNKEZNLHQubWVzc2FnZSl9fX1GTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Rk0pKFNtKFd5LDE2KSl9LEZNLsm1cGlwZT1jbyh7bmFtZToibnVtYmVyIix0eXBlOkZNLHB1cmU6ITB9KSxGTS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRk0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJudW1iZXIifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1d5XX1dfV19KSxudWxsKTtjbGFzcyBMTXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9sb2NhbGU9dH10cmFuc2Zvcm0odCxlLG4pe2lmKCFWTSh0KSlyZXR1cm4gbnVsbDtuPW58fHRoaXMuX2xvY2FsZTt0cnl7cmV0dXJuKGZ1bmN0aW9uIG8odCxlLG4pe3JldHVybiBKQyh0LCRDKHhDKGUsbUMuUGVyY2VudCksdkMoZSxiQy5NaW51c1NpZ24pKSxlLGJDLkdyb3VwLGJDLkRlY2ltYWwsbiwhMCkucmVwbGFjZShuZXcgUmVnRXhwKCIlIiwiZyIpLHZDKGUsYkMuUGVyY2VudFNpZ24pKX0pKGpNKHQpLG4sZSl9Y2F0Y2godCl7dGhyb3cgeE0oTE0sdC5tZXNzYWdlKX19fUxNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMTSkoU20oV3ksMTYpKX0sTE0uybVwaXBlPWNvKHtuYW1lOiJwZXJjZW50Iix0eXBlOkxNLHB1cmU6ITB9KSxMTS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTE0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJwZXJjZW50In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX1dfSksbnVsbCk7Y2xhc3MgQk17Y29uc3RydWN0b3IodCxlPSJVU0QiKXt0aGlzLl9sb2NhbGU9dCx0aGlzLl9kZWZhdWx0Q3VycmVuY3lDb2RlPWV9dHJhbnNmb3JtKHQsZT10aGlzLl9kZWZhdWx0Q3VycmVuY3lDb2RlLG49InN5bWJvbCIsbyxpKXtpZighVk0odCkpcmV0dXJuIG51bGw7aT1pfHx0aGlzLl9sb2NhbGUsImJvb2xlYW4iPT10eXBlb2YgbiYmKCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmY29uc29sZSYmY29uc29sZS53YXJuJiZjb25zb2xlLndhcm4oJ1dhcm5pbmc6IHRoZSBjdXJyZW5jeSBwaXBlIGhhcyBiZWVuIGNoYW5nZWQgaW4gQW5ndWxhciB2NS4gVGhlIHN5bWJvbERpc3BsYXkgb3B0aW9uICh0aGlyZCBwYXJhbWV0ZXIpIGlzIG5vdyBhIHN0cmluZyBpbnN0ZWFkIG9mIGEgYm9vbGVhbi4gVGhlIGFjY2VwdGVkIHZhbHVlcyBhcmUgImNvZGUiLCAic3ltYm9sIiBvciAic3ltYm9sLW5hcnJvdyIuJyksbj1uPyJzeW1ib2wiOiJjb2RlIik7bGV0IGE9ZXx8dGhpcy5fZGVmYXVsdEN1cnJlbmN5Q29kZTsiY29kZSIhPT1uJiYoYT0ic3ltYm9sIj09PW58fCJzeW1ib2wtbmFycm93Ij09PW4/KGZ1bmN0aW9uIHIodCxlLG49ImVuIil7Y29uc3Qgbz0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gTHUodClbanUuQ3VycmVuY2llc119KShuKVt0XXx8cENbdF18fFtdLGE9b1sxXTtyZXR1cm4ibmFycm93Ij09PWUmJiJzdHJpbmciPT10eXBlb2YgYT9hOm9bMF18fHR9KShhLCJzeW1ib2wiPT09bj8id2lkZSI6Im5hcnJvdyIsaSk6bik7dHJ5e3JldHVybihmdW5jdGlvbiBuKHQsZSxvLGksYSl7Y29uc3Qgcj0kQyh4QyhlLG1DLkN1cnJlbmN5KSx2QyhlLGJDLk1pbnVzU2lnbikpO3JldHVybiByLm1pbkZyYWM9KGZ1bmN0aW9uIHModCl7bGV0IGU7Y29uc3Qgbj1wQ1t0XTtyZXR1cm4gbiYmKGU9blsyXSksIm51bWJlciI9PXR5cGVvZiBlP2U6Mn0pKGkpLHIubWF4RnJhYz1yLm1pbkZyYWMsSkModCxyLGUsYkMuQ3VycmVuY3lHcm91cCxiQy5DdXJyZW5jeURlY2ltYWwsYSkucmVwbGFjZSgiwqQiLG8pLnJlcGxhY2UoIsKkIiwiIikudHJpbSgpfSkoak0odCksaSxhLGUsbyl9Y2F0Y2godCl7dGhyb3cgeE0oQk0sdC5tZXNzYWdlKX19fWZ1bmN0aW9uIFZNKHQpe3JldHVybiEobnVsbD09dHx8IiI9PT10fHx0IT10KX1mdW5jdGlvbiBqTSh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQmJiFpc05hTihOdW1iZXIodCktcGFyc2VGbG9hdCh0KSkpcmV0dXJuIE51bWJlcih0KTtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKGAke3R9IGlzIG5vdCBhIG51bWJlcmApO3JldHVybiB0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9CTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Qk0pKFNtKFd5LDE2KSxTbShZeSwxNikpfSxCTS7JtXBpcGU9Y28oe25hbWU6ImN1cnJlbmN5Iix0eXBlOkJNLHB1cmU6ITB9KSxCTS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1l5XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCTSxbe3R5cGU6dnksYXJnczpbe25hbWU6ImN1cnJlbmN5In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1l5XX1dfV19KSxudWxsKTtjbGFzcyBVTXt0cmFuc2Zvcm0odCxlLG4pe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7aWYoIXRoaXMuc3VwcG9ydHModCkpdGhyb3cgeE0oVU0sdCk7cmV0dXJuIHQuc2xpY2UoZSxuKX1zdXBwb3J0cyh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR8fEFycmF5LmlzQXJyYXkodCl9fVVNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxVTSl9LFVNLsm1cGlwZT1jbyh7bmFtZToic2xpY2UiLHR5cGU6VU0scHVyZTohMX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVU0sW3t0eXBlOnZ5LGFyZ3M6W3tuYW1lOiJzbGljZSIscHVyZTohMX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEdNPVt3TSxFTSxrTSx6TSxVTSxGTSxMTSxETSxCTSxSTSxUTSxOTSxJTV07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIFdNe31XTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8V00pfSxXTS7JtW1vZD1hbyh7dHlwZTpXTX0pLFdNLsm1aW5qPXZuKHtwcm92aWRlcnM6W3twcm92aWRlOmVNLHVzZUNsYXNzOm9NfV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFdNLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOlt2TSxHTV0sZXhwb3J0czpbdk0sR01dLHByb3ZpZGVyczpbe3Byb3ZpZGU6ZU0sdXNlQ2xhc3M6b019XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFdNLHtkZWNsYXJhdGlvbnM6W2FNLHJNLGxNLGRNLE1NLENNLGZNLGdNLGhNLHlNLF9NLHdNLEVNLGtNLHpNLFVNLEZNLExNLERNLEJNLFJNLFRNLE5NLElNXSxleHBvcnRzOlthTSxyTSxsTSxkTSxNTSxDTSxmTSxnTSxoTSx5TSxfTSx3TSxFTSxrTSx6TSxVTSxGTSxMTSxETSxCTSxSTSxUTSxOTSxJTV19KSwKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCm5ldyBPZygiMTIuMi4xIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBZTXt9WU0uybVwcm92PU1uKHt0b2tlbjpZTSxwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5uZXcgcU0odnIoWl8pLHdpbmRvdyl9KTtjbGFzcyBxTXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuZG9jdW1lbnQ9dCx0aGlzLndpbmRvdz1lLHRoaXMub2Zmc2V0PSgpPT5bMCwwXX1zZXRPZmZzZXQodCl7dGhpcy5vZmZzZXQ9QXJyYXkuaXNBcnJheSh0KT8oKT0+dDp0fWdldFNjcm9sbFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuc3VwcG9ydHNTY3JvbGxpbmcoKT9bdGhpcy53aW5kb3cucGFnZVhPZmZzZXQsdGhpcy53aW5kb3cucGFnZVlPZmZzZXRdOlswLDBdfXNjcm9sbFRvUG9zaXRpb24odCl7dGhpcy5zdXBwb3J0c1Njcm9sbGluZygpJiZ0aGlzLndpbmRvdy5zY3JvbGxUbyh0WzBdLHRbMV0pfXNjcm9sbFRvQW5jaG9yKHQpe2lmKCF0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkpcmV0dXJuO2NvbnN0IGU9KGZ1bmN0aW9uIG4odCxlKXtjb25zdCBuPXQuZ2V0RWxlbWVudEJ5SWQoZSl8fHQuZ2V0RWxlbWVudHNCeU5hbWUoZSlbMF07aWYobilyZXR1cm4gbjtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5jcmVhdGVUcmVlV2Fsa2VyJiZ0LmJvZHkmJih0LmJvZHkuY3JlYXRlU2hhZG93Um9vdHx8dC5ib2R5LmF0dGFjaFNoYWRvdykpe2NvbnN0IG49dC5jcmVhdGVUcmVlV2Fsa2VyKHQuYm9keSxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCk7bGV0IG89bi5jdXJyZW50Tm9kZTtmb3IoO287KXtjb25zdCB0PW8uc2hhZG93Um9vdDtpZih0KXtjb25zdCBuPXQuZ2V0RWxlbWVudEJ5SWQoZSl8fHQucXVlcnlTZWxlY3RvcihgW25hbWU9IiR7ZX0iXWApO2lmKG4pcmV0dXJuIG59bz1uLm5leHROb2RlKCl9fXJldHVybiBudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHRoaXMuZG9jdW1lbnQsdCk7ZSYmKHRoaXMuc2Nyb2xsVG9FbGVtZW50KGUpLHRoaXMuYXR0ZW1wdEZvY3VzKGUpKX1zZXRIaXN0b3J5U2Nyb2xsUmVzdG9yYXRpb24odCl7aWYodGhpcy5zdXBwb3J0U2Nyb2xsUmVzdG9yYXRpb24oKSl7Y29uc3QgZT10aGlzLndpbmRvdy5oaXN0b3J5O2UmJmUuc2Nyb2xsUmVzdG9yYXRpb24mJihlLnNjcm9sbFJlc3RvcmF0aW9uPXQpfX1zY3JvbGxUb0VsZW1lbnQodCl7Y29uc3QgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ZS5sZWZ0K3RoaXMud2luZG93LnBhZ2VYT2Zmc2V0LG89ZS50b3ArdGhpcy53aW5kb3cucGFnZVlPZmZzZXQsaT10aGlzLm9mZnNldCgpO3RoaXMud2luZG93LnNjcm9sbFRvKG4taVswXSxvLWlbMV0pfWF0dGVtcHRGb2N1cyh0KXtyZXR1cm4gdC5mb2N1cygpLHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXR9c3VwcG9ydFNjcm9sbFJlc3RvcmF0aW9uKCl7dHJ5e2lmKCF0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkpcmV0dXJuITE7Y29uc3QgdD1aTSh0aGlzLndpbmRvdy5oaXN0b3J5KXx8Wk0oT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMud2luZG93Lmhpc3RvcnkpKTtyZXR1cm4hKCF0fHwhdC53cml0YWJsZSYmIXQuc2V0KX1jYXRjaCh0KXtyZXR1cm4hMX19c3VwcG9ydHNTY3JvbGxpbmcoKXt0cnl7cmV0dXJuISF0aGlzLndpbmRvdyYmISF0aGlzLndpbmRvdy5zY3JvbGxUbyYmInBhZ2VYT2Zmc2V0ImluIHRoaXMud2luZG93fWNhdGNoKHQpe3JldHVybiExfX19ZnVuY3Rpb24gWk0odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwic2Nyb2xsUmVzdG9yYXRpb24iKX1jbGFzcyBYTXt9Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgS00gZXh0ZW5kcyBjbGFzcyBleHRlbmRzIGNsYXNze317Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc3VwcG9ydHNET01FdmVudHM9ITB9fXtzdGF0aWMgbWFrZUN1cnJlbnQoKXshKGZ1bmN0aW9uIHQoZSl7WV98fChZXz1lKX0pKG5ldyBLTSl9b25BbmRDYW5jZWwodCxlLG4pe3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoZSxuLCExKSwoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4sITEpfX1kaXNwYXRjaEV2ZW50KHQsZSl7dC5kaXNwYXRjaEV2ZW50KGUpfXJlbW92ZSh0KXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX1jcmVhdGVFbGVtZW50KHQsZSl7cmV0dXJuKGU9ZXx8dGhpcy5nZXREZWZhdWx0RG9jdW1lbnQoKSkuY3JlYXRlRWxlbWVudCh0KX1jcmVhdGVIdG1sRG9jdW1lbnQoKXtyZXR1cm4gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCJmYWtlVGl0bGUiKX1nZXREZWZhdWx0RG9jdW1lbnQoKXtyZXR1cm4gZG9jdW1lbnR9aXNFbGVtZW50Tm9kZSh0KXtyZXR1cm4gdC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfWlzU2hhZG93Um9vdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnR9Z2V0R2xvYmFsRXZlbnRUYXJnZXQodCxlKXtyZXR1cm4id2luZG93Ij09PWU/d2luZG93OiJkb2N1bWVudCI9PT1lP3Q6ImJvZHkiPT09ZT90LmJvZHk6bnVsbH1nZXRCYXNlSHJlZih0KXtjb25zdCBlPShmdW5jdGlvbiBuKCl7cmV0dXJuIFFNPVFNfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJiYXNlIiksUU0/UU0uZ2V0QXR0cmlidXRlKCJocmVmIik6bnVsbH0pKCk7cmV0dXJuIG51bGw9PWU/bnVsbDooZnVuY3Rpb24gbyh0KXtKTT1KTXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLEpNLnNldEF0dHJpYnV0ZSgiaHJlZiIsdCk7Y29uc3QgZT1KTS5wYXRobmFtZTtyZXR1cm4iLyI9PT1lLmNoYXJBdCgwKT9lOmAvJHtlfWB9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoZSl9cmVzZXRCYXNlRWxlbWVudCgpe1FNPW51bGx9Z2V0VXNlckFnZW50KCl7cmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50fWdldENvb2tpZSh0KXtyZXR1cm4gaU0oZG9jdW1lbnQuY29va2llLHQpfX1sZXQgSk0sUU09bnVsbDtjb25zdCAkTT1uZXcgR2EoIlRSQU5TSVRJT05fSUQiKSx0dj1be3Byb3ZpZGU6enksdXNlRmFjdG9yeTpmdW5jdGlvbiBldih0LGUsbil7cmV0dXJuKCk9PntuLmdldChJeSkuZG9uZVByb21pc2UudGhlbigoKCk9Pntjb25zdCBuPXFfKCk7QXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KGUucXVlcnlTZWxlY3RvckFsbCgic3R5bGVbbmctdHJhbnNpdGlvbl0iKSkuZmlsdGVyKChlPT5lLmdldEF0dHJpYnV0ZSgibmctdHJhbnNpdGlvbiIpPT09dCkpLmZvckVhY2goKHQ9Pm4ucmVtb3ZlKHQpKSl9KSl9fSxkZXBzOlskTSxaXyxycF0sbXVsdGk6ITB9XTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIG52e3N0YXRpYyBpbml0KCl7IShmdW5jdGlvbiB0KGUpe2dfPWV9KShuZXcgbnYpfWFkZFRvV2luZG93KHQpe2puLmdldEFuZ3VsYXJUZXN0YWJpbGl0eT0oZSxuPSEwKT0+e2NvbnN0IG89dC5maW5kVGVzdGFiaWxpdHlJblRyZWUoZSxuKTtpZihudWxsPT1vKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgdGVzdGFiaWxpdHkgZm9yIGVsZW1lbnQuIik7cmV0dXJuIG99LGpuLmdldEFsbEFuZ3VsYXJUZXN0YWJpbGl0aWVzPSgpPT50LmdldEFsbFRlc3RhYmlsaXRpZXMoKSxqbi5nZXRBbGxBbmd1bGFyUm9vdEVsZW1lbnRzPSgpPT50LmdldEFsbFJvb3RFbGVtZW50cygpLGpuLmZyYW1ld29ya1N0YWJpbGl6ZXJzfHwoam4uZnJhbWV3b3JrU3RhYmlsaXplcnM9W10pLGpuLmZyYW1ld29ya1N0YWJpbGl6ZXJzLnB1c2goKHQ9Pntjb25zdCBlPWpuLmdldEFsbEFuZ3VsYXJUZXN0YWJpbGl0aWVzKCk7bGV0IG49ZS5sZW5ndGgsbz0hMTtjb25zdCBpPWZ1bmN0aW9uKGUpe289b3x8ZSxuLS0sMD09biYmdChvKX07ZS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LndoZW5TdGFibGUoaSl9KSl9KSl9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKHQsZSxuKXtpZihudWxsPT1lKXJldHVybiBudWxsO2NvbnN0IG89dC5nZXRUZXN0YWJpbGl0eShlKTtyZXR1cm4gbnVsbCE9bz9vOm4/cV8oKS5pc1NoYWRvd1Jvb3QoZSk/dGhpcy5maW5kVGVzdGFiaWxpdHlJblRyZWUodCxlLmhvc3QsITApOnRoaXMuZmluZFRlc3RhYmlsaXR5SW5UcmVlKHQsZS5wYXJlbnRFbGVtZW50LCEwKTpudWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3Mgb3Z7YnVpbGQoKXtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0fX1vdi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b3YpfSxvdi7JtXByb3Y9TW4oe3Rva2VuOm92LGZhY3Rvcnk6b3YuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG92LFt7dHlwZTppbX1dLG51bGwsbnVsbCksbmV3IFNyO2NvbnN0IGl2PW5ldyBHYSgiRXZlbnRNYW5hZ2VyUGx1Z2lucyIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBhdntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3pvbmU9ZSx0aGlzLl9ldmVudE5hbWVUb1BsdWdpbj1uZXcgTWFwLHQuZm9yRWFjaCgodD0+dC5tYW5hZ2VyPXRoaXMpKSx0aGlzLl9wbHVnaW5zPXQuc2xpY2UoKS5yZXZlcnNlKCl9YWRkRXZlbnRMaXN0ZW5lcih0LGUsbil7cmV0dXJuIHRoaXMuX2ZpbmRQbHVnaW5Gb3IoZSkuYWRkRXZlbnRMaXN0ZW5lcih0LGUsbil9YWRkR2xvYmFsRXZlbnRMaXN0ZW5lcih0LGUsbil7cmV0dXJuIHRoaXMuX2ZpbmRQbHVnaW5Gb3IoZSkuYWRkR2xvYmFsRXZlbnRMaXN0ZW5lcih0LGUsbil9Z2V0Wm9uZSgpe3JldHVybiB0aGlzLl96b25lfV9maW5kUGx1Z2luRm9yKHQpe2NvbnN0IGU9dGhpcy5fZXZlbnROYW1lVG9QbHVnaW4uZ2V0KHQpO2lmKGUpcmV0dXJuIGU7Y29uc3Qgbj10aGlzLl9wbHVnaW5zO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSsrKXtjb25zdCBvPW5bZV07aWYoby5zdXBwb3J0cyh0KSlyZXR1cm4gdGhpcy5fZXZlbnROYW1lVG9QbHVnaW4uc2V0KHQsbyksb310aHJvdyBuZXcgRXJyb3IoYE5vIGV2ZW50IG1hbmFnZXIgcGx1Z2luIGZvdW5kIGZvciBldmVudCAke3R9YCl9fWF2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxhdikodnIoaXYpLHZyKGFfKSl9LGF2Lsm1cHJvdj1Nbih7dG9rZW46YXYsZmFjdG9yeTphdi7JtWZhY30pLGF2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbaXZdfV19LHt0eXBlOmFffV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChhdixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbaXZdfV19LHt0eXBlOmFffV19KSxudWxsKTtjbGFzcyBydntjb25zdHJ1Y3Rvcih0KXt0aGlzLl9kb2M9dH1hZGRHbG9iYWxFdmVudExpc3RlbmVyKHQsZSxuKXtjb25zdCBvPXFfKCkuZ2V0R2xvYmFsRXZlbnRUYXJnZXQodGhpcy5fZG9jLHQpO2lmKCFvKXRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZXZlbnQgdGFyZ2V0ICR7b30gZm9yIGV2ZW50ICR7ZX1gKTtyZXR1cm4gdGhpcy5hZGRFdmVudExpc3RlbmVyKG8sZSxuKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHN2e2NvbnN0cnVjdG9yKCl7dGhpcy5fc3R5bGVzU2V0PW5ldyBTZXR9YWRkU3R5bGVzKHQpe2NvbnN0IGU9bmV3IFNldDt0LmZvckVhY2goKHQ9Pnt0aGlzLl9zdHlsZXNTZXQuaGFzKHQpfHwodGhpcy5fc3R5bGVzU2V0LmFkZCh0KSxlLmFkZCh0KSl9KSksdGhpcy5vblN0eWxlc0FkZGVkKGUpfW9uU3R5bGVzQWRkZWQodCl7fWdldEFsbFN0eWxlcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX3N0eWxlc1NldCl9fXN2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxzdil9LHN2Lsm1cHJvdj1Nbih7dG9rZW46c3YsZmFjdG9yeTpzdi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoc3YsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSxudWxsKTtjbGFzcyBsdiBleHRlbmRzIHN2e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fZG9jPXQsdGhpcy5faG9zdE5vZGVzPW5ldyBNYXAsdGhpcy5faG9zdE5vZGVzLnNldCh0LmhlYWQsW10pfV9hZGRTdHlsZXNUb0hvc3QodCxlLG4pe3QuZm9yRWFjaCgodD0+e2NvbnN0IG89dGhpcy5fZG9jLmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7by50ZXh0Q29udGVudD10LG4ucHVzaChlLmFwcGVuZENoaWxkKG8pKX0pKX1hZGRIb3N0KHQpe2NvbnN0IGU9W107dGhpcy5fYWRkU3R5bGVzVG9Ib3N0KHRoaXMuX3N0eWxlc1NldCx0LGUpLHRoaXMuX2hvc3ROb2Rlcy5zZXQodCxlKX1yZW1vdmVIb3N0KHQpe2NvbnN0IGU9dGhpcy5faG9zdE5vZGVzLmdldCh0KTtlJiZlLmZvckVhY2goY3YpLHRoaXMuX2hvc3ROb2Rlcy5kZWxldGUodCl9b25TdHlsZXNBZGRlZCh0KXt0aGlzLl9ob3N0Tm9kZXMuZm9yRWFjaCgoKGUsbik9Pnt0aGlzLl9hZGRTdHlsZXNUb0hvc3QodCxuLGUpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5faG9zdE5vZGVzLmZvckVhY2goKHQ9PnQuZm9yRWFjaChjdikpKX19ZnVuY3Rpb24gY3YodCl7cV8oKS5yZW1vdmUodCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2x2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsdikodnIoWl8pKX0sbHYuybVwcm92PU1uKHt0b2tlbjpsdixmYWN0b3J5Omx2Lsm1ZmFjfSksbHYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGx2LFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpO2NvbnN0IGR2PXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifSxwdj0vJUNPTVAlL2csbXY9InVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fCEhbmdEZXZNb2RlO2Z1bmN0aW9uIHV2KHQsZSxuKXtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7bGV0IGk9ZVtvXTtBcnJheS5pc0FycmF5KGkpP3V2KHQsaSxuKTooaT1pLnJlcGxhY2UocHYsdCksbi5wdXNoKGkpKX1yZXR1cm4gbn1mdW5jdGlvbiBmdih0KXtyZXR1cm4gZT0+e2lmKCJfX25nVW53cmFwX18iPT09ZSlyZXR1cm4gdDshMT09PXQoZSkmJihlLnByZXZlbnREZWZhdWx0KCksZS5yZXR1cm5WYWx1ZT0hMSl9fWxldCBndj0hMTtjbGFzcyBodntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5ldmVudE1hbmFnZXI9dCx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9ZSx0aGlzLmFwcElkPW4sdGhpcy5yZW5kZXJlckJ5Q29tcElkPW5ldyBNYXAsdGhpcy5kZWZhdWx0UmVuZGVyZXI9bmV3IGJ2KHQpfWNyZWF0ZVJlbmRlcmVyKHQsZSl7aWYoIXR8fCFlKXJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcjtzd2l0Y2goZS5lbmNhcHN1bGF0aW9uKXtjYXNlIEhuLkVtdWxhdGVkOntsZXQgbj10aGlzLnJlbmRlcmVyQnlDb21wSWQuZ2V0KGUuaWQpO3JldHVybiBufHwobj1uZXcgQ3YodGhpcy5ldmVudE1hbmFnZXIsdGhpcy5zaGFyZWRTdHlsZXNIb3N0LGUsdGhpcy5hcHBJZCksdGhpcy5yZW5kZXJlckJ5Q29tcElkLnNldChlLmlkLG4pKSxuLmFwcGx5VG9Ib3N0KHQpLG59Y2FzZSAxOmNhc2UgSG4uU2hhZG93RG9tOnJldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxndnx8MSE9PWUuZW5jYXBzdWxhdGlvbnx8KGd2PSEwLGNvbnNvbGUud2FybigiVmlld0VuY2Fwc3VsYXRpb24uTmF0aXZlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIEZhbGxpbmcgYmFjayB0byBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb20uIFRoZSBmYWxsYmFjayB3aWxsIGJlIHJlbW92ZWQgaW4gdjEyLiIpKSxuZXcgTXYodGhpcy5ldmVudE1hbmFnZXIsdGhpcy5zaGFyZWRTdHlsZXNIb3N0LHQsZSk7ZGVmYXVsdDppZighdGhpcy5yZW5kZXJlckJ5Q29tcElkLmhhcyhlLmlkKSl7Y29uc3QgdD11dihlLmlkLGUuc3R5bGVzLFtdKTt0aGlzLnNoYXJlZFN0eWxlc0hvc3QuYWRkU3R5bGVzKHQpLHRoaXMucmVuZGVyZXJCeUNvbXBJZC5zZXQoZS5pZCx0aGlzLmRlZmF1bHRSZW5kZXJlcil9cmV0dXJuIHRoaXMuZGVmYXVsdFJlbmRlcmVyfX1iZWdpbigpe31lbmQoKXt9fWh2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxodikodnIoYXYpLHZyKGx2KSx2cihIeSkpfSxodi7JtXByb3Y9TW4oe3Rva2VuOmh2LGZhY3Rvcnk6aHYuybVmYWN9KSxodi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmF2fSx7dHlwZTpsdn0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0h5XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChodixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6YXZ9LHt0eXBlOmx2fSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSHldfV19XX0pLG51bGwpO2NsYXNzIGJ2e2NvbnN0cnVjdG9yKHQpe3RoaXMuZXZlbnRNYW5hZ2VyPXQsdGhpcy5kYXRhPU9iamVjdC5jcmVhdGUobnVsbCl9ZGVzdHJveSgpe31jcmVhdGVFbGVtZW50KHQsZSl7cmV0dXJuIGU/ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGR2W2VdfHxlLHQpOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCl9Y3JlYXRlQ29tbWVudCh0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCh0KX1jcmVhdGVUZXh0KHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KX1hcHBlbmRDaGlsZCh0LGUpe3QuYXBwZW5kQ2hpbGQoZSl9aW5zZXJ0QmVmb3JlKHQsZSxuKXt0JiZ0Lmluc2VydEJlZm9yZShlLG4pfXJlbW92ZUNoaWxkKHQsZSl7dCYmdC5yZW1vdmVDaGlsZChlKX1zZWxlY3RSb290RWxlbWVudCh0LGUpe2xldCBuPSJzdHJpbmciPT10eXBlb2YgdD9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpOnQ7aWYoIW4pdGhyb3cgbmV3IEVycm9yKGBUaGUgc2VsZWN0b3IgIiR7dH0iIGRpZCBub3QgbWF0Y2ggYW55IGVsZW1lbnRzYCk7cmV0dXJuIGV8fChuLnRleHRDb250ZW50PSIiKSxufXBhcmVudE5vZGUodCl7cmV0dXJuIHQucGFyZW50Tm9kZX1uZXh0U2libGluZyh0KXtyZXR1cm4gdC5uZXh0U2libGluZ31zZXRBdHRyaWJ1dGUodCxlLG4sbyl7aWYobyl7ZT1vKyI6IitlO2NvbnN0IGk9ZHZbb107aT90LnNldEF0dHJpYnV0ZU5TKGksZSxuKTp0LnNldEF0dHJpYnV0ZShlLG4pfWVsc2UgdC5zZXRBdHRyaWJ1dGUoZSxuKX1yZW1vdmVBdHRyaWJ1dGUodCxlLG4pe2lmKG4pe2NvbnN0IG89ZHZbbl07bz90LnJlbW92ZUF0dHJpYnV0ZU5TKG8sZSk6dC5yZW1vdmVBdHRyaWJ1dGUoYCR7bn06JHtlfWApfWVsc2UgdC5yZW1vdmVBdHRyaWJ1dGUoZSl9YWRkQ2xhc3ModCxlKXt0LmNsYXNzTGlzdC5hZGQoZSl9cmVtb3ZlQ2xhc3ModCxlKXt0LmNsYXNzTGlzdC5yZW1vdmUoZSl9c2V0U3R5bGUodCxlLG4sbyl7byYoY2wuRGFzaENhc2V8Y2wuSW1wb3J0YW50KT90LnN0eWxlLnNldFByb3BlcnR5KGUsbixvJmNsLkltcG9ydGFudD8iaW1wb3J0YW50IjoiIik6dC5zdHlsZVtlXT1ufXJlbW92ZVN0eWxlKHQsZSxuKXtuJmNsLkRhc2hDYXNlP3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoZSk6dC5zdHlsZVtlXT0iIn1zZXRQcm9wZXJ0eSh0LGUsbil7bXYmJl92KGUsInByb3BlcnR5IiksdFtlXT1ufXNldFZhbHVlKHQsZSl7dC5ub2RlVmFsdWU9ZX1saXN0ZW4odCxlLG4pe3JldHVybiBtdiYmX3YoZSwibGlzdGVuZXIiKSwic3RyaW5nIj09dHlwZW9mIHQ/dGhpcy5ldmVudE1hbmFnZXIuYWRkR2xvYmFsRXZlbnRMaXN0ZW5lcih0LGUsZnYobikpOnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodCxlLGZ2KG4pKX19Y29uc3QgeXY9IkAiLmNoYXJDb2RlQXQoMCk7ZnVuY3Rpb24gX3YodCxlKXtpZih0LmNoYXJDb2RlQXQoMCk9PT15dil0aHJvdyBuZXcgRXJyb3IoYEZvdW5kIHRoZSBzeW50aGV0aWMgJHtlfSAke3R9LiBQbGVhc2UgaW5jbHVkZSBlaXRoZXIgIkJyb3dzZXJBbmltYXRpb25zTW9kdWxlIiBvciAiTm9vcEFuaW1hdGlvbnNNb2R1bGUiIGluIHlvdXIgYXBwbGljYXRpb24uYCl9Y2xhc3MgQ3YgZXh0ZW5kcyBidntjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0KSx0aGlzLmNvbXBvbmVudD1uO2NvbnN0IGk9dXYobysiLSIrbi5pZCxuLnN0eWxlcyxbXSk7ZS5hZGRTdHlsZXMoaSksdGhpcy5jb250ZW50QXR0cj0oZnVuY3Rpb24gYSh0KXtyZXR1cm4iX25nY29udGVudC0lQ09NUCUiLnJlcGxhY2UocHYsdCl9KShvKyItIituLmlkKSx0aGlzLmhvc3RBdHRyPShmdW5jdGlvbiByKHQpe3JldHVybiJfbmdob3N0LSVDT01QJSIucmVwbGFjZShwdix0KX0pKG8rIi0iK24uaWQpfWFwcGx5VG9Ib3N0KHQpe3N1cGVyLnNldEF0dHJpYnV0ZSh0LHRoaXMuaG9zdEF0dHIsIiIpfWNyZWF0ZUVsZW1lbnQodCxlKXtjb25zdCBuPXN1cGVyLmNyZWF0ZUVsZW1lbnQodCxlKTtyZXR1cm4gc3VwZXIuc2V0QXR0cmlidXRlKG4sdGhpcy5jb250ZW50QXR0ciwiIiksbn19Y2xhc3MgTXYgZXh0ZW5kcyBidntjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0KSx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9ZSx0aGlzLmhvc3RFbD1uLHRoaXMuc2hhZG93Um9vdD1uLmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiJ9KSx0aGlzLnNoYXJlZFN0eWxlc0hvc3QuYWRkSG9zdCh0aGlzLnNoYWRvd1Jvb3QpO2NvbnN0IGk9dXYoby5pZCxvLnN0eWxlcyxbXSk7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtlLnRleHRDb250ZW50PWlbdF0sdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKGUpfX1ub2RlT3JTaGFkb3dSb290KHQpe3JldHVybiB0PT09dGhpcy5ob3N0RWw/dGhpcy5zaGFkb3dSb290OnR9ZGVzdHJveSgpe3RoaXMuc2hhcmVkU3R5bGVzSG9zdC5yZW1vdmVIb3N0KHRoaXMuc2hhZG93Um9vdCl9YXBwZW5kQ2hpbGQodCxlKXtyZXR1cm4gc3VwZXIuYXBwZW5kQ2hpbGQodGhpcy5ub2RlT3JTaGFkb3dSb290KHQpLGUpfWluc2VydEJlZm9yZSh0LGUsbil7cmV0dXJuIHN1cGVyLmluc2VydEJlZm9yZSh0aGlzLm5vZGVPclNoYWRvd1Jvb3QodCksZSxuKX1yZW1vdmVDaGlsZCh0LGUpe3JldHVybiBzdXBlci5yZW1vdmVDaGlsZCh0aGlzLm5vZGVPclNoYWRvd1Jvb3QodCksZSl9cGFyZW50Tm9kZSh0KXtyZXR1cm4gdGhpcy5ub2RlT3JTaGFkb3dSb290KHN1cGVyLnBhcmVudE5vZGUodGhpcy5ub2RlT3JTaGFkb3dSb290KHQpKSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB2diBleHRlbmRzIHJ2e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfXN1cHBvcnRzKHQpe3JldHVybiEwfWFkZEV2ZW50TGlzdGVuZXIodCxlLG4pe3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoZSxuLCExKSwoKT0+dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHQsZSxuKX1yZW1vdmVFdmVudExpc3RlbmVyKHQsZSxuKXtyZXR1cm4gdC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbil9fXZ2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx2dikodnIoWl8pKX0sdnYuybVwcm92PU1uKHt0b2tlbjp2dixmYWN0b3J5OnZ2Lsm1ZmFjfSksdnYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHZ2LFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgeHY9e3BhbjohMCxwYW5zdGFydDohMCxwYW5tb3ZlOiEwLHBhbmVuZDohMCxwYW5jYW5jZWw6ITAscGFubGVmdDohMCxwYW5yaWdodDohMCxwYW51cDohMCxwYW5kb3duOiEwLHBpbmNoOiEwLHBpbmNoc3RhcnQ6ITAscGluY2htb3ZlOiEwLHBpbmNoZW5kOiEwLHBpbmNoY2FuY2VsOiEwLHBpbmNoaW46ITAscGluY2hvdXQ6ITAscHJlc3M6ITAscHJlc3N1cDohMCxyb3RhdGU6ITAscm90YXRlc3RhcnQ6ITAscm90YXRlbW92ZTohMCxyb3RhdGVlbmQ6ITAscm90YXRlY2FuY2VsOiEwLHN3aXBlOiEwLHN3aXBlbGVmdDohMCxzd2lwZXJpZ2h0OiEwLHN3aXBldXA6ITAsc3dpcGVkb3duOiEwLHRhcDohMCxkb3VibGV0YXA6ITB9LE92PW5ldyBHYSgiSGFtbWVyR2VzdHVyZUNvbmZpZyIpLFB2PW5ldyBHYSgiSGFtbWVyTG9hZGVyIik7Y2xhc3Mgd3Z7Y29uc3RydWN0b3IoKXt0aGlzLmV2ZW50cz1bXSx0aGlzLm92ZXJyaWRlcz17fX1idWlsZEhhbW1lcih0KXtjb25zdCBlPW5ldyBIYW1tZXIodCx0aGlzLm9wdGlvbnMpO2UuZ2V0KCJwaW5jaCIpLnNldCh7ZW5hYmxlOiEwfSksZS5nZXQoInJvdGF0ZSIpLnNldCh7ZW5hYmxlOiEwfSk7Zm9yKGNvbnN0IHQgaW4gdGhpcy5vdmVycmlkZXMpZS5nZXQodCkuc2V0KHRoaXMub3ZlcnJpZGVzW3RdKTtyZXR1cm4gZX19d3YuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHd2KX0sd3YuybVwcm92PU1uKHt0b2tlbjp3dixmYWN0b3J5Ond2Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh3dixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NsYXNzIGt2IGV4dGVuZHMgcnZ7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCksdGhpcy5fY29uZmlnPWUsdGhpcy5jb25zb2xlPW4sdGhpcy5sb2FkZXI9byx0aGlzLl9sb2FkZXJQcm9taXNlPW51bGx9c3VwcG9ydHModCl7cmV0dXJuISgheHYuaGFzT3duUHJvcGVydHkodC50b0xvd2VyQ2FzZSgpKSYmIXRoaXMuaXNDdXN0b21FdmVudCh0KXx8IXdpbmRvdy5IYW1tZXImJiF0aGlzLmxvYWRlciYmKCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmdGhpcy5jb25zb2xlLndhcm4oYFRoZSAiJHt0fSIgZXZlbnQgY2Fubm90IGJlIGJvdW5kIGJlY2F1c2UgSGFtbWVyLkpTIGlzIG5vdCBsb2FkZWQgYW5kIG5vIGN1c3RvbSBsb2FkZXIgaGFzIGJlZW4gc3BlY2lmaWVkLmApLDEpKX1hZGRFdmVudExpc3RlbmVyKHQsZSxuKXtjb25zdCBvPXRoaXMubWFuYWdlci5nZXRab25lKCk7aWYoZT1lLnRvTG93ZXJDYXNlKCksIXdpbmRvdy5IYW1tZXImJnRoaXMubG9hZGVyKXt0aGlzLl9sb2FkZXJQcm9taXNlPXRoaXMuX2xvYWRlclByb21pc2V8fHRoaXMubG9hZGVyKCk7bGV0IG89ITEsaT0oKT0+e289ITB9O3JldHVybiB0aGlzLl9sb2FkZXJQcm9taXNlLnRoZW4oKCgpPT57aWYoIXdpbmRvdy5IYW1tZXIpcmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZ0aGlzLmNvbnNvbGUud2FybigiVGhlIGN1c3RvbSBIQU1NRVJfTE9BREVSIGNvbXBsZXRlZCwgYnV0IEhhbW1lci5KUyBpcyBub3QgcHJlc2VudC4iKSx2b2lkKGk9KCk9Pnt9KTtvfHwoaT10aGlzLmFkZEV2ZW50TGlzdGVuZXIodCxlLG4pKX0pKS5jYXRjaCgoKCk9PnsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJnRoaXMuY29uc29sZS53YXJuKGBUaGUgIiR7ZX0iIGV2ZW50IGNhbm5vdCBiZSBib3VuZCBiZWNhdXNlIHRoZSBjdXN0b20gSGFtbWVyLkpTIGxvYWRlciBmYWlsZWQuYCksaT0oKT0+e319KSksKCk9PntpKCl9fXJldHVybiBvLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e2NvbnN0IGk9dGhpcy5fY29uZmlnLmJ1aWxkSGFtbWVyKHQpLGE9ZnVuY3Rpb24odCl7by5ydW5HdWFyZGVkKChmdW5jdGlvbigpe24odCl9KSl9O3JldHVybiBpLm9uKGUsYSksKCk9PntpLm9mZihlLGEpLCJmdW5jdGlvbiI9PXR5cGVvZiBpLmRlc3Ryb3kmJmkuZGVzdHJveSgpfX0pKX1pc0N1c3RvbUV2ZW50KHQpe3JldHVybiB0aGlzLl9jb25maWcuZXZlbnRzLmluZGV4T2YodCk+LTF9fWt2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrdikodnIoWl8pLHZyKE92KSx2cihHeSksdnIoUHYsOCkpfSxrdi7JtXByb3Y9TW4oe3Rva2VuOmt2LGZhY3Rvcnk6a3YuybVmYWN9KSxrdi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6d3YsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbT3ZdfV19LHt0eXBlOkd5fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1B2XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrdixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp3dixkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltPdl19XX0se3R5cGU6R3l9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUHZdfV19XX0pLG51bGwpO2NvbnN0IFN2PVt7cHJvdmlkZTppdix1c2VDbGFzczprdixtdWx0aTohMCxkZXBzOltaXyxPdixHeSxbbmV3IFNyLFB2XV19LHtwcm92aWRlOk92LHVzZUNsYXNzOnd2LGRlcHM6W119XTtjbGFzcyBEdnt9RHYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fER2KX0sRHYuybVtb2Q9YW8oe3R5cGU6RHZ9KSxEdi7JtWluaj12bih7cHJvdmlkZXJzOlN2fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChEdixbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpTdn1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEV2PVsiYWx0IiwiY29udHJvbCIsIm1ldGEiLCJzaGlmdCJdLFJ2PXsiXGIiOiJCYWNrc3BhY2UiLCJcdCI6IlRhYiIsIn8iOiJEZWxldGUiLCIbIjoiRXNjYXBlIixEZWw6IkRlbGV0ZSIsRXNjOiJFc2NhcGUiLExlZnQ6IkFycm93TGVmdCIsUmlnaHQ6IkFycm93UmlnaHQiLFVwOiJBcnJvd1VwIixEb3duOiJBcnJvd0Rvd24iLE1lbnU6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLFdpbjoiT1MifSxBdj17QToiMSIsQjoiMiIsQzoiMyIsRDoiNCIsRToiNSIsRjoiNiIsRzoiNyIsSDoiOCIsSToiOSIsSjoiKiIsSzoiKyIsTToiLSIsTjoiLiIsTzoiLyIsImAiOiIwIiwiwpAiOiJOdW1Mb2NrIn0sVHY9e2FsdDp0PT50LmFsdEtleSxjb250cm9sOnQ9PnQuY3RybEtleSxtZXRhOnQ9PnQubWV0YUtleSxzaGlmdDp0PT50LnNoaWZ0S2V5fTtjbGFzcyBOdiBleHRlbmRzIHJ2e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfXN1cHBvcnRzKHQpe3JldHVybiBudWxsIT1Odi5wYXJzZUV2ZW50TmFtZSh0KX1hZGRFdmVudExpc3RlbmVyKHQsZSxuKXtjb25zdCBvPU52LnBhcnNlRXZlbnROYW1lKGUpLGk9TnYuZXZlbnRDYWxsYmFjayhvLmZ1bGxLZXksbix0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpKTtyZXR1cm4gdGhpcy5tYW5hZ2VyLmdldFpvbmUoKS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnFfKCkub25BbmRDYW5jZWwodCxvLmRvbUV2ZW50TmFtZSxpKSkpfXN0YXRpYyBwYXJzZUV2ZW50TmFtZSh0KXtjb25zdCBlPXQudG9Mb3dlckNhc2UoKS5zcGxpdCgiLiIpLG49ZS5zaGlmdCgpO2lmKDA9PT1lLmxlbmd0aHx8ImtleWRvd24iIT09biYmImtleXVwIiE9PW4pcmV0dXJuIG51bGw7Y29uc3Qgbz1Odi5fbm9ybWFsaXplS2V5KGUucG9wKCkpO2xldCBpPSIiO2lmKEV2LmZvckVhY2goKHQ9Pntjb25zdCBuPWUuaW5kZXhPZih0KTtuPi0xJiYoZS5zcGxpY2UobiwxKSxpKz10KyIuIil9KSksaSs9bywwIT1lLmxlbmd0aHx8MD09PW8ubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0IGE9e307cmV0dXJuIGEuZG9tRXZlbnROYW1lPW4sYS5mdWxsS2V5PWksYX1zdGF0aWMgZ2V0RXZlbnRGdWxsS2V5KHQpe2xldCBlPSIiLG49KGZ1bmN0aW9uIG8odCl7bGV0IGU9dC5rZXk7aWYobnVsbD09ZSl7aWYoZT10LmtleUlkZW50aWZpZXIsbnVsbD09ZSlyZXR1cm4iVW5pZGVudGlmaWVkIjtlLnN0YXJ0c1dpdGgoIlUrIikmJihlPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoZS5zdWJzdHJpbmcoMiksMTYpKSwzPT09dC5sb2NhdGlvbiYmQXYuaGFzT3duUHJvcGVydHkoZSkmJihlPUF2W2VdKSl9cmV0dXJuIFJ2W2VdfHxlfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQpO3JldHVybiBuPW4udG9Mb3dlckNhc2UoKSwiICI9PT1uP249InNwYWNlIjoiLiI9PT1uJiYobj0iZG90IiksRXYuZm9yRWFjaCgobz0+e28hPW4mJigwLFR2W29dKSh0KSYmKGUrPW8rIi4iKX0pKSxlKz1uLGV9c3RhdGljIGV2ZW50Q2FsbGJhY2sodCxlLG4pe3JldHVybiBvPT57TnYuZ2V0RXZlbnRGdWxsS2V5KG8pPT09dCYmbi5ydW5HdWFyZGVkKCgoKT0+ZShvKSkpfX1zdGF0aWMgX25vcm1hbGl6ZUtleSh0KXtzd2l0Y2godCl7Y2FzZSJlc2MiOnJldHVybiJlc2NhcGUiO2RlZmF1bHQ6cmV0dXJuIHR9fX1Odi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TnYpKHZyKFpfKSl9LE52Lsm1cHJvdj1Nbih7dG9rZW46TnYsZmFjdG9yeTpOdi7JtWZhY30pLE52LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOdixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSxudWxsKTtjbGFzcyB6dnt9ZnVuY3Rpb24gSXYodCl7cmV0dXJuIG5ldyBIdih0LmdldChaXykpfXp2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx6dil9LHp2Lsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIHZyKEh2KX0sdG9rZW46enYscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHp2LFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCIsdXNlRXhpc3Rpbmc6cWUoKCgpPT5IdikpfV19XSxudWxsLG51bGwpO2NsYXNzIEh2IGV4dGVuZHMgenZ7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9kb2M9dH1zYW5pdGl6ZSh0LGUpe2lmKG51bGw9PWUpcmV0dXJuIG51bGw7c3dpdGNoKHQpe2Nhc2UgQXMuTk9ORTpyZXR1cm4gZTtjYXNlIEFzLkhUTUw6cmV0dXJuIGVzKGUsIkhUTUwiKT90cyhlKTpFcyh0aGlzLl9kb2MsU3RyaW5nKGUpKS50b1N0cmluZygpO2Nhc2UgQXMuU1RZTEU6cmV0dXJuIGVzKGUsIlN0eWxlIik/dHMoZSk6ZTtjYXNlIEFzLlNDUklQVDppZihlcyhlLCJTY3JpcHQiKSlyZXR1cm4gdHMoZSk7dGhyb3cgbmV3IEVycm9yKCJ1bnNhZmUgdmFsdWUgdXNlZCBpbiBhIHNjcmlwdCBjb250ZXh0Iik7Y2FzZSBBcy5VUkw6cmV0dXJuIG5zKGUpLGVzKGUsIlVSTCIpP3RzKGUpOmxzKFN0cmluZyhlKSk7Y2FzZSBBcy5SRVNPVVJDRV9VUkw6aWYoZXMoZSwiUmVzb3VyY2VVUkwiKSlyZXR1cm4gdHMoZSk7dGhyb3cgbmV3IEVycm9yKCJ1bnNhZmUgdmFsdWUgdXNlZCBpbiBhIHJlc291cmNlIFVSTCBjb250ZXh0IChzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcykiKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBTZWN1cml0eUNvbnRleHQgJHt0fSAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpYCl9fWJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHQpe3JldHVybihmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgWHIodCl9KSh0KX1ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyBLcih0KX0pKHQpfWJ5cGFzc1NlY3VyaXR5VHJ1c3RTY3JpcHQodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyBKcih0KX0pKHQpfWJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyBRcih0KX0pKHQpfWJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3ICRyKHQpfSkodCl9fUh2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIdikodnIoWl8pKX0sSHYuybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gSXYodnIoR2QpKX0sdG9rZW46SHYscHJvdmlkZWRJbjoicm9vdCJ9KSxIdi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSHYsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290Iix1c2VGYWN0b3J5Okl2LGRlcHM6W3JwXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y29uc3QgRnY9Q18oUl8sImJyb3dzZXIiLFt7cHJvdmlkZTpqeSx1c2VWYWx1ZToiYnJvd3NlciJ9LHtwcm92aWRlOlZ5LHVzZVZhbHVlOgovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gTHYoKXtLTS5tYWtlQ3VycmVudCgpLG52LmluaXQoKX0sbXVsdGk6ITB9LHtwcm92aWRlOlpfLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gQnYoKXtyZXR1cm4oZnVuY3Rpb24gdChlKXtLbz1lfSkoZG9jdW1lbnQpLGRvY3VtZW50fSxkZXBzOltdfV0pLFZ2PVtbXSx7cHJvdmlkZTpZZCx1c2VWYWx1ZToicm9vdCJ9LHtwcm92aWRlOlpzLHVzZUZhY3Rvcnk6ZnVuY3Rpb24ganYoKXtyZXR1cm4gbmV3IFpzfSxkZXBzOltdfSx7cHJvdmlkZTppdix1c2VDbGFzczp2dixtdWx0aTohMCxkZXBzOltaXyxhXyxqeV19LHtwcm92aWRlOml2LHVzZUNsYXNzOk52LG11bHRpOiEwLGRlcHM6W1pfXX0sW10se3Byb3ZpZGU6aHYsdXNlQ2xhc3M6aHYsZGVwczpbYXYsbHYsSHldfSx7cHJvdmlkZTpfZyx1c2VFeGlzdGluZzpodn0se3Byb3ZpZGU6c3YsdXNlRXhpc3Rpbmc6bHZ9LHtwcm92aWRlOmx2LHVzZUNsYXNzOmx2LGRlcHM6W1pfXX0se3Byb3ZpZGU6bV8sdXNlQ2xhc3M6bV8sZGVwczpbYV9dfSx7cHJvdmlkZTphdix1c2VDbGFzczphdixkZXBzOltpdixhX119LHtwcm92aWRlOlhNLHVzZUNsYXNzOm92LGRlcHM6W119LFtdXTtjbGFzcyBVdntjb25zdHJ1Y3Rvcih0KXtpZih0KXRocm93IG5ldyBFcnJvcigiQnJvd3Nlck1vZHVsZSBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZC4gSWYgeW91IG5lZWQgYWNjZXNzIHRvIGNvbW1vbiBkaXJlY3RpdmVzIHN1Y2ggYXMgTmdJZiBhbmQgTmdGb3IgZnJvbSBhIGxhenkgbG9hZGVkIG1vZHVsZSwgaW1wb3J0IENvbW1vbk1vZHVsZSBpbnN0ZWFkLiIpfXN0YXRpYyB3aXRoU2VydmVyVHJhbnNpdGlvbih0KXtyZXR1cm57bmdNb2R1bGU6VXYscHJvdmlkZXJzOlt7cHJvdmlkZTpIeSx1c2VWYWx1ZTp0LmFwcElkfSx7cHJvdmlkZTokTSx1c2VFeGlzdGluZzpIeX0sdHZdfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBHdigpe3JldHVybiBuZXcgV3YodnIoWl8pKX1Vdi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VXYpKHZyKFV2LDEyKSl9LFV2Lsm1bW9kPWFvKHt0eXBlOlV2fSksVXYuybVpbmo9dm4oe3Byb3ZpZGVyczpWdixpbXBvcnRzOltXTSxIX119KSxVdi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlV2LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpFcn0se3R5cGU6a3IsYXJnczpbVXZdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFV2LFt7dHlwZTpBeSxhcmdzOlt7cHJvdmlkZXJzOlZ2LGV4cG9ydHM6W1dNLEhfXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlV2LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpFcn0se3R5cGU6a3IsYXJnczpbVXZdfV19XX0pLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVXYse2V4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bV00sSF9dfX0pO2NsYXNzIFd2e2NvbnN0cnVjdG9yKHQpe3RoaXMuX2RvYz10LHRoaXMuX2RvbT1xXygpfWFkZFRhZyh0LGU9ITEpe3JldHVybiB0P3RoaXMuX2dldE9yQ3JlYXRlRWxlbWVudCh0LGUpOm51bGx9YWRkVGFncyh0LGU9ITEpe3JldHVybiB0P3QucmVkdWNlKCgodCxuKT0+KG4mJnQucHVzaCh0aGlzLl9nZXRPckNyZWF0ZUVsZW1lbnQobixlKSksdCkpLFtdKTpbXX1nZXRUYWcodCl7cmV0dXJuIHQmJnRoaXMuX2RvYy5xdWVyeVNlbGVjdG9yKGBtZXRhWyR7dH1dYCl8fG51bGx9Z2V0VGFncyh0KXtpZighdClyZXR1cm5bXTtjb25zdCBlPXRoaXMuX2RvYy5xdWVyeVNlbGVjdG9yQWxsKGBtZXRhWyR7dH1dYCk7cmV0dXJuIGU/W10uc2xpY2UuY2FsbChlKTpbXX11cGRhdGVUYWcodCxlKXtpZighdClyZXR1cm4gbnVsbDtlPWV8fHRoaXMuX3BhcnNlU2VsZWN0b3IodCk7Y29uc3Qgbj10aGlzLmdldFRhZyhlKTtyZXR1cm4gbj90aGlzLl9zZXRNZXRhRWxlbWVudEF0dHJpYnV0ZXModCxuKTp0aGlzLl9nZXRPckNyZWF0ZUVsZW1lbnQodCwhMCl9cmVtb3ZlVGFnKHQpe3RoaXMucmVtb3ZlVGFnRWxlbWVudCh0aGlzLmdldFRhZyh0KSl9cmVtb3ZlVGFnRWxlbWVudCh0KXt0JiZ0aGlzLl9kb20ucmVtb3ZlKHQpfV9nZXRPckNyZWF0ZUVsZW1lbnQodCxlPSExKXtpZighZSl7Y29uc3QgZT10aGlzLl9wYXJzZVNlbGVjdG9yKHQpLG49dGhpcy5nZXRUYWdzKGUpLmZpbHRlcigoZT0+dGhpcy5fY29udGFpbnNBdHRyaWJ1dGVzKHQsZSkpKVswXTtpZih2b2lkIDAhPT1uKXJldHVybiBufWNvbnN0IG49dGhpcy5fZG9tLmNyZWF0ZUVsZW1lbnQoIm1ldGEiKTtyZXR1cm4gdGhpcy5fc2V0TWV0YUVsZW1lbnRBdHRyaWJ1dGVzKHQsbiksdGhpcy5fZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQobiksbn1fc2V0TWV0YUVsZW1lbnRBdHRyaWJ1dGVzKHQsZSl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PmUuc2V0QXR0cmlidXRlKHRoaXMuX2dldE1ldGFLZXlNYXAobiksdFtuXSkpKSxlfV9wYXJzZVNlbGVjdG9yKHQpe2NvbnN0IGU9dC5uYW1lPyJuYW1lIjoicHJvcGVydHkiO3JldHVybmAke2V9PSIke3RbZV19ImB9X2NvbnRhaW5zQXR0cmlidXRlcyh0LGUpe3JldHVybiBPYmplY3Qua2V5cyh0KS5ldmVyeSgobj0+ZS5nZXRBdHRyaWJ1dGUodGhpcy5fZ2V0TWV0YUtleU1hcChuKSk9PT10W25dKSl9X2dldE1ldGFLZXlNYXAodCl7cmV0dXJuIFl2W3RdfHx0fX1Xdi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8V3YpKHZyKFpfKSl9LFd2Lsm1cHJvdj1Nbih7ZmFjdG9yeTpHdix0b2tlbjpXdixwcm92aWRlZEluOiJyb290In0pLFd2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXdixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QiLHVzZUZhY3Rvcnk6R3YsZGVwczpbXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y29uc3QgWXY9e2h0dHBFcXVpdjoiaHR0cC1lcXVpdiJ9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBxdigpe3JldHVybiBuZXcgWnYodnIoWl8pKX1jbGFzcyBadntjb25zdHJ1Y3Rvcih0KXt0aGlzLl9kb2M9dH1nZXRUaXRsZSgpe3JldHVybiB0aGlzLl9kb2MudGl0bGV9c2V0VGl0bGUodCl7dGhpcy5fZG9jLnRpdGxlPXR8fCIifX1adi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WnYpKHZyKFpfKSl9LFp2Lsm1cHJvdj1Nbih7ZmFjdG9yeTpxdix0b2tlbjpadixwcm92aWRlZEluOiJyb290In0pLFp2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChadixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QiLHVzZUZhY3Rvcnk6cXYsZGVwczpbXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y2xhc3MgWHZ7Y29uc3RydWN0b3IoKXt0aGlzLnN0b3JlPXt9LHRoaXMub25TZXJpYWxpemVDYWxsYmFja3M9e319c3RhdGljIGluaXQodCl7Y29uc3QgZT1uZXcgWHY7cmV0dXJuIGUuc3RvcmU9dCxlfWdldCh0LGUpe3JldHVybiB2b2lkIDAhPT10aGlzLnN0b3JlW3RdP3RoaXMuc3RvcmVbdF06ZX1zZXQodCxlKXt0aGlzLnN0b3JlW3RdPWV9cmVtb3ZlKHQpe2RlbGV0ZSB0aGlzLnN0b3JlW3RdfWhhc0tleSh0KXtyZXR1cm4gdGhpcy5zdG9yZS5oYXNPd25Qcm9wZXJ0eSh0KX1vblNlcmlhbGl6ZSh0LGUpe3RoaXMub25TZXJpYWxpemVDYWxsYmFja3NbdF09ZX10b0pzb24oKXtmb3IoY29uc3QgdCBpbiB0aGlzLm9uU2VyaWFsaXplQ2FsbGJhY2tzKWlmKHRoaXMub25TZXJpYWxpemVDYWxsYmFja3MuaGFzT3duUHJvcGVydHkodCkpdHJ5e3RoaXMuc3RvcmVbdF09dGhpcy5vblNlcmlhbGl6ZUNhbGxiYWNrc1t0XSgpfWNhdGNoKHQpe2NvbnNvbGUud2FybigiRXhjZXB0aW9uIGluIG9uU2VyaWFsaXplIGNhbGxiYWNrOiAiLHQpfXJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnN0b3JlKX19ZnVuY3Rpb24gS3YodCxlKXtjb25zdCBuPXQuZ2V0RWxlbWVudEJ5SWQoZSsiLXN0YXRlIik7bGV0IG89e307aWYobiYmbi50ZXh0Q29udGVudCl0cnl7bz1KU09OLnBhcnNlKChmdW5jdGlvbiBpKHQpe2NvbnN0IGU9eyImYTsiOiImIiwiJnE7IjonIicsIiZzOyI6IiciLCImbDsiOiI8IiwiJmc7IjoiPiJ9O3JldHVybiB0LnJlcGxhY2UoLyZbXjtdKzsvZywodD0+ZVt0XSkpfSkobi50ZXh0Q29udGVudCkpfWNhdGNoKHQpe2NvbnNvbGUud2FybigiRXhjZXB0aW9uIHdoaWxlIHJlc3RvcmluZyBUcmFuc2ZlclN0YXRlIGZvciBhcHAgIitlLHQpfXJldHVybiBYdi5pbml0KG8pfVh2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYdil9LFh2Lsm1cHJvdj1Nbih7dG9rZW46WHYsZmFjdG9yeTpYdi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWHYsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSxudWxsKTtjbGFzcyBKdnt9SnYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEp2KX0sSnYuybVtb2Q9YW8oe3R5cGU6SnZ9KSxKdi7JtWluaj12bih7cHJvdmlkZXJzOlt7cHJvdmlkZTpYdix1c2VGYWN0b3J5Okt2LGRlcHM6W1pfLEh5XX1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChKdixbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpbe3Byb3ZpZGU6WHYsdXNlRmFjdG9yeTpLdixkZXBzOltaXyxIeV19XX1dfV0sbnVsbCxudWxsKSwKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpuZXcgT2coIjEyLjIuMSIpO3ZhciBRdj0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9O2Z1bmN0aW9uICR2KHQpe2lmKHQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixvLmdldD9vOntlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pfSkpLGV9Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMC4wLW5leHQuMAogICAgICogKGMpIDIwMTAtMjAyMCBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLyEoZnVuY3Rpb24oKXsKLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovCiEoZnVuY3Rpb24odCl7dmFyIGU9dC5wZXJmb3JtYW5jZTtmdW5jdGlvbiBuKHQpe2UmJmUubWFyayYmZS5tYXJrKHQpfWZ1bmN0aW9uIG8odCxuKXtlJiZlLm1lYXN1cmUmJmUubWVhc3VyZSh0LG4pfW4oIlpvbmUiKTt2YXIgaT10Ll9fWm9uZV9zeW1ib2xfcHJlZml4fHwiX196b25lX3N5bWJvbF9fIjtmdW5jdGlvbiBhKHQpe3JldHVybiBpK3R9dmFyIHI9ITA9PT10W2EoImZvcmNlRHVwbGljYXRlWm9uZUNoZWNrIildO2lmKHQuWm9uZSl7aWYocnx8ImZ1bmN0aW9uIiE9dHlwZW9mIHQuWm9uZS5fX3N5bWJvbF9fKXRocm93IG5ldyBFcnJvcigiWm9uZSBhbHJlYWR5IGxvYWRlZC4iKTtyZXR1cm4gdC5ab25lfXZhciBzPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxlKXt0aGlzLl9wYXJlbnQ9dCx0aGlzLl9uYW1lPWU/ZS5uYW1lfHwidW5uYW1lZCI6Ijxyb290PiIsdGhpcy5fcHJvcGVydGllcz1lJiZlLnByb3BlcnRpZXN8fHt9LHRoaXMuX3pvbmVEZWxlZ2F0ZT1uZXcgZCh0aGlzLHRoaXMuX3BhcmVudCYmdGhpcy5fcGFyZW50Ll96b25lRGVsZWdhdGUsZSl9cmV0dXJuIGUuYXNzZXJ0Wm9uZVBhdGNoZWQ9ZnVuY3Rpb24oKXtpZih0LlByb21pc2UhPT1ELlpvbmVBd2FyZVByb21pc2UpdGhyb3cgbmV3IEVycm9yKCJab25lLmpzIGhhcyBkZXRlY3RlZCB0aGF0IFpvbmVBd2FyZVByb21pc2UgYCh3aW5kb3d8Z2xvYmFsKS5Qcm9taXNlYCBoYXMgYmVlbiBvdmVyd3JpdHRlbi5cbk1vc3QgbGlrZWx5IGNhdXNlIGlzIHRoYXQgYSBQcm9taXNlIHBvbHlmaWxsIGhhcyBiZWVuIGxvYWRlZCBhZnRlciBab25lLmpzIChQb2x5ZmlsbGluZyBQcm9taXNlIGFwaSBpcyBub3QgbmVjZXNzYXJ5IHdoZW4gem9uZS5qcyBpcyBsb2FkZWQuIElmIHlvdSBtdXN0IGxvYWQgb25lLCBkbyBzbyBiZWZvcmUgbG9hZGluZyB6b25lLmpzLikiKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJvb3QiLHtnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9ZS5jdXJyZW50O3QucGFyZW50Oyl0PXQucGFyZW50O3JldHVybiB0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJjdXJyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFIuem9uZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY3VycmVudFRhc2siLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLl9fbG9hZF9wYXRjaD1mdW5jdGlvbihpLGEscyl7aWYodm9pZCAwPT09cyYmKHM9ITEpLEQuaGFzT3duUHJvcGVydHkoaSkpe2lmKCFzJiZyKXRocm93IEVycm9yKCJBbHJlYWR5IGxvYWRlZCBwYXRjaDogIitpKX1lbHNlIGlmKCF0WyJfX1pvbmVfZGlzYWJsZV8iK2ldKXt2YXIgbD0iWm9uZToiK2k7bihsKSxEW2ldPWEodCxlLEUpLG8obCxsKX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicGFyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcmVudH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm5hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbmFtZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nZXRab25lV2l0aCh0KTtpZihlKXJldHVybiBlLl9wcm9wZXJ0aWVzW3RdfSxlLnByb3RvdHlwZS5nZXRab25lV2l0aD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcztlOyl7aWYoZS5fcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSh0KSlyZXR1cm4gZTtlPWUuX3BhcmVudH1yZXR1cm4gbnVsbH0sZS5wcm90b3R5cGUuZm9yaz1mdW5jdGlvbih0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIlpvbmVTcGVjIHJlcXVpcmVkISIpO3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuZm9yayh0aGlzLHQpfSxlLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RpbmcgZnVuY3Rpb24gZ290OiAiK3QpO3ZhciBuPXRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnRlcmNlcHQodGhpcyx0LGUpLG89dGhpcztyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gby5ydW5HdWFyZGVkKG4sdGhpcyxhcmd1bWVudHMsZSl9fSxlLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24odCxlLG4sbyl7Uj17cGFyZW50OlIsem9uZTp0aGlzfTt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2UodGhpcyx0LGUsbixvKX1maW5hbGx5e1I9Ui5wYXJlbnR9fSxlLnByb3RvdHlwZS5ydW5HdWFyZGVkPWZ1bmN0aW9uKHQsZSxuLG8pe3ZvaWQgMD09PWUmJihlPW51bGwpLFI9e3BhcmVudDpSLHpvbmU6dGhpc307dHJ5e3RyeXtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmludm9rZSh0aGlzLHQsZSxuLG8pfWNhdGNoKHQpe2lmKHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLHQpKXRocm93IHR9fWZpbmFsbHl7Uj1SLnBhcmVudH19LGUucHJvdG90eXBlLnJ1blRhc2s9ZnVuY3Rpb24odCxlLG4pe2lmKHQuem9uZSE9dGhpcyl0aHJvdyBuZXcgRXJyb3IoIkEgdGFzayBjYW4gb25seSBiZSBydW4gaW4gdGhlIHpvbmUgb2YgY3JlYXRpb24hIChDcmVhdGlvbjogIisodC56b25lfHxfKS5uYW1lKyI7IEV4ZWN1dGlvbjogIit0aGlzLm5hbWUrIikiKTtpZih0LnN0YXRlIT09Q3x8dC50eXBlIT09UyYmdC50eXBlIT09ayl7dmFyIG89dC5zdGF0ZSE9eDtvJiZ0Ll90cmFuc2l0aW9uVG8oeCx2KSx0LnJ1bkNvdW50Kys7dmFyIGk9QTtBPXQsUj17cGFyZW50OlIsem9uZTp0aGlzfTt0cnl7dC50eXBlPT1rJiZ0LmRhdGEmJiF0LmRhdGEuaXNQZXJpb2RpYyYmKHQuY2FuY2VsRm49dm9pZCAwKTt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2VUYXNrKHRoaXMsdCxlLG4pfWNhdGNoKHQpe2lmKHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLHQpKXRocm93IHR9fWZpbmFsbHl7dC5zdGF0ZSE9PUMmJnQuc3RhdGUhPT1QJiYodC50eXBlPT1TfHx0LmRhdGEmJnQuZGF0YS5pc1BlcmlvZGljP28mJnQuX3RyYW5zaXRpb25Ubyh2LHgpOih0LnJ1bkNvdW50PTAsdGhpcy5fdXBkYXRlVGFza0NvdW50KHQsLTEpLG8mJnQuX3RyYW5zaXRpb25UbyhDLHgsQykpKSxSPVIucGFyZW50LEE9aX19fSxlLnByb3RvdHlwZS5zY2hlZHVsZVRhc2s9ZnVuY3Rpb24odCl7aWYodC56b25lJiZ0LnpvbmUhPT10aGlzKWZvcih2YXIgZT10aGlzO2U7KXtpZihlPT09dC56b25lKXRocm93IEVycm9yKCJjYW4gbm90IHJlc2NoZWR1bGUgdGFzayB0byAiK3RoaXMubmFtZSsiIHdoaWNoIGlzIGRlc2NlbmRhbnRzIG9mIHRoZSBvcmlnaW5hbCB6b25lICIrdC56b25lLm5hbWUpO2U9ZS5wYXJlbnR9dC5fdHJhbnNpdGlvblRvKE0sQyk7dmFyIG49W107dC5fem9uZURlbGVnYXRlcz1uLHQuX3pvbmU9dGhpczt0cnl7dD10aGlzLl96b25lRGVsZWdhdGUuc2NoZWR1bGVUYXNrKHRoaXMsdCl9Y2F0Y2goZSl7dGhyb3cgdC5fdHJhbnNpdGlvblRvKFAsTSxDKSx0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxlKSxlfXJldHVybiB0Ll96b25lRGVsZWdhdGVzPT09biYmdGhpcy5fdXBkYXRlVGFza0NvdW50KHQsMSksdC5zdGF0ZT09TSYmdC5fdHJhbnNpdGlvblRvKHYsTSksdH0sZS5wcm90b3R5cGUuc2NoZWR1bGVNaWNyb1Rhc2s9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyBwKHcsdCxlLG4sbyx2b2lkIDApKX0sZS5wcm90b3R5cGUuc2NoZWR1bGVNYWNyb1Rhc2s9ZnVuY3Rpb24odCxlLG4sbyxpKXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHAoayx0LGUsbixvLGkpKX0sZS5wcm90b3R5cGUuc2NoZWR1bGVFdmVudFRhc2s9ZnVuY3Rpb24odCxlLG4sbyxpKXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHAoUyx0LGUsbixvLGkpKX0sZS5wcm90b3R5cGUuY2FuY2VsVGFzaz1mdW5jdGlvbih0KXtpZih0LnpvbmUhPXRoaXMpdGhyb3cgbmV3IEVycm9yKCJBIHRhc2sgY2FuIG9ubHkgYmUgY2FuY2VsbGVkIGluIHRoZSB6b25lIG9mIGNyZWF0aW9uISAoQ3JlYXRpb246ICIrKHQuem9uZXx8XykubmFtZSsiOyBFeGVjdXRpb246ICIrdGhpcy5uYW1lKyIpIik7dC5fdHJhbnNpdGlvblRvKE8sdix4KTt0cnl7dGhpcy5fem9uZURlbGVnYXRlLmNhbmNlbFRhc2sodGhpcyx0KX1jYXRjaChlKXt0aHJvdyB0Ll90cmFuc2l0aW9uVG8oUCxPKSx0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxlKSxlfXJldHVybiB0aGlzLl91cGRhdGVUYXNrQ291bnQodCwtMSksdC5fdHJhbnNpdGlvblRvKEMsTyksdC5ydW5Db3VudD0wLHR9LGUucHJvdG90eXBlLl91cGRhdGVUYXNrQ291bnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10Ll96b25lRGVsZWdhdGVzOy0xPT1lJiYodC5fem9uZURlbGVnYXRlcz1udWxsKTtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyluW29dLl91cGRhdGVUYXNrQ291bnQodC50eXBlLGUpfSxlfSkoKTtzLl9fc3ltYm9sX189YTt2YXIgbCxjPXtuYW1lOiIiLG9uSGFzVGFzazpmdW5jdGlvbih0LGUsbixvKXtyZXR1cm4gdC5oYXNUYXNrKG4sbyl9LG9uU2NoZWR1bGVUYXNrOmZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB0LnNjaGVkdWxlVGFzayhuLG8pfSxvbkludm9rZVRhc2s6ZnVuY3Rpb24odCxlLG4sbyxpLGEpe3JldHVybiB0Lmludm9rZVRhc2sobixvLGksYSl9LG9uQ2FuY2VsVGFzazpmdW5jdGlvbih0LGUsbixvKXtyZXR1cm4gdC5jYW5jZWxUYXNrKG4sbyl9fSxkPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3RoaXMuX3Rhc2tDb3VudHM9e21pY3JvVGFzazowLG1hY3JvVGFzazowLGV2ZW50VGFzazowfSx0aGlzLnpvbmU9dCx0aGlzLl9wYXJlbnREZWxlZ2F0ZT1lLHRoaXMuX2ZvcmtaUz1uJiYobiYmbi5vbkZvcms/bjplLl9mb3JrWlMpLHRoaXMuX2ZvcmtEbGd0PW4mJihuLm9uRm9yaz9lOmUuX2ZvcmtEbGd0KSx0aGlzLl9mb3JrQ3VyclpvbmU9biYmKG4ub25Gb3JrP3RoaXMuem9uZTplLl9mb3JrQ3VyclpvbmUpLHRoaXMuX2ludGVyY2VwdFpTPW4mJihuLm9uSW50ZXJjZXB0P246ZS5faW50ZXJjZXB0WlMpLHRoaXMuX2ludGVyY2VwdERsZ3Q9biYmKG4ub25JbnRlcmNlcHQ/ZTplLl9pbnRlcmNlcHREbGd0KSx0aGlzLl9pbnRlcmNlcHRDdXJyWm9uZT1uJiYobi5vbkludGVyY2VwdD90aGlzLnpvbmU6ZS5faW50ZXJjZXB0Q3VyclpvbmUpLHRoaXMuX2ludm9rZVpTPW4mJihuLm9uSW52b2tlP246ZS5faW52b2tlWlMpLHRoaXMuX2ludm9rZURsZ3Q9biYmKG4ub25JbnZva2U/ZTplLl9pbnZva2VEbGd0KSx0aGlzLl9pbnZva2VDdXJyWm9uZT1uJiYobi5vbkludm9rZT90aGlzLnpvbmU6ZS5faW52b2tlQ3VyclpvbmUpLHRoaXMuX2hhbmRsZUVycm9yWlM9biYmKG4ub25IYW5kbGVFcnJvcj9uOmUuX2hhbmRsZUVycm9yWlMpLHRoaXMuX2hhbmRsZUVycm9yRGxndD1uJiYobi5vbkhhbmRsZUVycm9yP2U6ZS5faGFuZGxlRXJyb3JEbGd0KSx0aGlzLl9oYW5kbGVFcnJvckN1cnJab25lPW4mJihuLm9uSGFuZGxlRXJyb3I/dGhpcy56b25lOmUuX2hhbmRsZUVycm9yQ3VyclpvbmUpLHRoaXMuX3NjaGVkdWxlVGFza1pTPW4mJihuLm9uU2NoZWR1bGVUYXNrP246ZS5fc2NoZWR1bGVUYXNrWlMpLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9biYmKG4ub25TY2hlZHVsZVRhc2s/ZTplLl9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT1uJiYobi5vblNjaGVkdWxlVGFzaz90aGlzLnpvbmU6ZS5fc2NoZWR1bGVUYXNrQ3VyclpvbmUpLHRoaXMuX2ludm9rZVRhc2taUz1uJiYobi5vbkludm9rZVRhc2s/bjplLl9pbnZva2VUYXNrWlMpLHRoaXMuX2ludm9rZVRhc2tEbGd0PW4mJihuLm9uSW52b2tlVGFzaz9lOmUuX2ludm9rZVRhc2tEbGd0KSx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmU9biYmKG4ub25JbnZva2VUYXNrP3RoaXMuem9uZTplLl9pbnZva2VUYXNrQ3VyclpvbmUpLHRoaXMuX2NhbmNlbFRhc2taUz1uJiYobi5vbkNhbmNlbFRhc2s/bjplLl9jYW5jZWxUYXNrWlMpLHRoaXMuX2NhbmNlbFRhc2tEbGd0PW4mJihuLm9uQ2FuY2VsVGFzaz9lOmUuX2NhbmNlbFRhc2tEbGd0KSx0aGlzLl9jYW5jZWxUYXNrQ3VyclpvbmU9biYmKG4ub25DYW5jZWxUYXNrP3RoaXMuem9uZTplLl9jYW5jZWxUYXNrQ3VyclpvbmUpLHRoaXMuX2hhc1Rhc2taUz1udWxsLHRoaXMuX2hhc1Rhc2tEbGd0PW51bGwsdGhpcy5faGFzVGFza0RsZ3RPd25lcj1udWxsLHRoaXMuX2hhc1Rhc2tDdXJyWm9uZT1udWxsO3ZhciBvPW4mJm4ub25IYXNUYXNrOyhvfHxlJiZlLl9oYXNUYXNrWlMpJiYodGhpcy5faGFzVGFza1pTPW8/bjpjLHRoaXMuX2hhc1Rhc2tEbGd0PWUsdGhpcy5faGFzVGFza0RsZ3RPd25lcj10aGlzLHRoaXMuX2hhc1Rhc2tDdXJyWm9uZT10LG4ub25TY2hlZHVsZVRhc2t8fCh0aGlzLl9zY2hlZHVsZVRhc2taUz1jLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9ZSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT10aGlzLnpvbmUpLG4ub25JbnZva2VUYXNrfHwodGhpcy5faW52b2tlVGFza1pTPWMsdGhpcy5faW52b2tlVGFza0RsZ3Q9ZSx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmU9dGhpcy56b25lKSxuLm9uQ2FuY2VsVGFza3x8KHRoaXMuX2NhbmNlbFRhc2taUz1jLHRoaXMuX2NhbmNlbFRhc2tEbGd0PWUsdGhpcy5fY2FuY2VsVGFza0N1cnJab25lPXRoaXMuem9uZSkpfXJldHVybiB0LnByb3RvdHlwZS5mb3JrPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2ZvcmtaUz90aGlzLl9mb3JrWlMub25Gb3JrKHRoaXMuX2ZvcmtEbGd0LHRoaXMuem9uZSx0LGUpOm5ldyBzKHQsZSl9LHQucHJvdG90eXBlLmludGVyY2VwdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuX2ludGVyY2VwdFpTP3RoaXMuX2ludGVyY2VwdFpTLm9uSW50ZXJjZXB0KHRoaXMuX2ludGVyY2VwdERsZ3QsdGhpcy5faW50ZXJjZXB0Q3VyclpvbmUsdCxlLG4pOmV9LHQucHJvdG90eXBlLmludm9rZT1mdW5jdGlvbih0LGUsbixvLGkpe3JldHVybiB0aGlzLl9pbnZva2VaUz90aGlzLl9pbnZva2VaUy5vbkludm9rZSh0aGlzLl9pbnZva2VEbGd0LHRoaXMuX2ludm9rZUN1cnJab25lLHQsZSxuLG8saSk6ZS5hcHBseShuLG8pfSx0LnByb3RvdHlwZS5oYW5kbGVFcnJvcj1mdW5jdGlvbih0LGUpe3JldHVybiF0aGlzLl9oYW5kbGVFcnJvclpTfHx0aGlzLl9oYW5kbGVFcnJvclpTLm9uSGFuZGxlRXJyb3IodGhpcy5faGFuZGxlRXJyb3JEbGd0LHRoaXMuX2hhbmRsZUVycm9yQ3VyclpvbmUsdCxlKX0sdC5wcm90b3R5cGUuc2NoZWR1bGVUYXNrPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZTtpZih0aGlzLl9zY2hlZHVsZVRhc2taUyl0aGlzLl9oYXNUYXNrWlMmJm4uX3pvbmVEZWxlZ2F0ZXMucHVzaCh0aGlzLl9oYXNUYXNrRGxndE93bmVyKSwobj10aGlzLl9zY2hlZHVsZVRhc2taUy5vblNjaGVkdWxlVGFzayh0aGlzLl9zY2hlZHVsZVRhc2tEbGd0LHRoaXMuX3NjaGVkdWxlVGFza0N1cnJab25lLHQsZSkpfHwobj1lKTtlbHNlIGlmKGUuc2NoZWR1bGVGbillLnNjaGVkdWxlRm4oZSk7ZWxzZXtpZihlLnR5cGUhPXcpdGhyb3cgbmV3IEVycm9yKCJUYXNrIGlzIG1pc3Npbmcgc2NoZWR1bGVGbi4iKTtiKGUpfXJldHVybiBufSx0LnByb3RvdHlwZS5pbnZva2VUYXNrPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB0aGlzLl9pbnZva2VUYXNrWlM/dGhpcy5faW52b2tlVGFza1pTLm9uSW52b2tlVGFzayh0aGlzLl9pbnZva2VUYXNrRGxndCx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmUsdCxlLG4sbyk6ZS5jYWxsYmFjay5hcHBseShuLG8pfSx0LnByb3RvdHlwZS5jYW5jZWxUYXNrPWZ1bmN0aW9uKHQsZSl7dmFyIG47aWYodGhpcy5fY2FuY2VsVGFza1pTKW49dGhpcy5fY2FuY2VsVGFza1pTLm9uQ2FuY2VsVGFzayh0aGlzLl9jYW5jZWxUYXNrRGxndCx0aGlzLl9jYW5jZWxUYXNrQ3VyclpvbmUsdCxlKTtlbHNle2lmKCFlLmNhbmNlbEZuKXRocm93IEVycm9yKCJUYXNrIGlzIG5vdCBjYW5jZWxhYmxlIik7bj1lLmNhbmNlbEZuKGUpfXJldHVybiBufSx0LnByb3RvdHlwZS5oYXNUYXNrPWZ1bmN0aW9uKHQsZSl7dHJ5e3RoaXMuX2hhc1Rhc2taUyYmdGhpcy5faGFzVGFza1pTLm9uSGFzVGFzayh0aGlzLl9oYXNUYXNrRGxndCx0aGlzLl9oYXNUYXNrQ3VyclpvbmUsdCxlKX1jYXRjaChlKXt0aGlzLmhhbmRsZUVycm9yKHQsZSl9fSx0LnByb3RvdHlwZS5fdXBkYXRlVGFza0NvdW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fdGFza0NvdW50cyxvPW5bdF0saT1uW3RdPW8rZTtpZihpPDApdGhyb3cgbmV3IEVycm9yKCJNb3JlIHRhc2tzIGV4ZWN1dGVkIHRoZW4gd2VyZSBzY2hlZHVsZWQuIik7MCE9byYmMCE9aXx8dGhpcy5oYXNUYXNrKHRoaXMuem9uZSx7bWljcm9UYXNrOm4ubWljcm9UYXNrPjAsbWFjcm9UYXNrOm4ubWFjcm9UYXNrPjAsZXZlbnRUYXNrOm4uZXZlbnRUYXNrPjAsY2hhbmdlOnR9KX0sdH0pKCkscD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKG4sbyxpLGEscixzKXtpZih0aGlzLl96b25lPW51bGwsdGhpcy5ydW5Db3VudD0wLHRoaXMuX3pvbmVEZWxlZ2F0ZXM9bnVsbCx0aGlzLl9zdGF0ZT0ibm90U2NoZWR1bGVkIix0aGlzLnR5cGU9bix0aGlzLnNvdXJjZT1vLHRoaXMuZGF0YT1hLHRoaXMuc2NoZWR1bGVGbj1yLHRoaXMuY2FuY2VsRm49cywhaSl0aHJvdyBuZXcgRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBkZWZpbmVkIik7dGhpcy5jYWxsYmFjaz1pO3ZhciBsPXRoaXM7dGhpcy5pbnZva2U9bj09PVMmJmEmJmEudXNlRz9lLmludm9rZVRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5pbnZva2VUYXNrLmNhbGwodCxsLHRoaXMsYXJndW1lbnRzKX19cmV0dXJuIGUuaW52b2tlVGFzaz1mdW5jdGlvbih0LGUsbil7dHx8KHQ9dGhpcyksVCsrO3RyeXtyZXR1cm4gdC5ydW5Db3VudCsrLHQuem9uZS5ydW5UYXNrKHQsZSxuKX1maW5hbGx5ezE9PVQmJnkoKSxULS19fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInpvbmUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fem9uZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInN0YXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YXRlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmNhbmNlbFNjaGVkdWxlUmVxdWVzdD1mdW5jdGlvbigpe3RoaXMuX3RyYW5zaXRpb25UbyhDLE0pfSxlLnByb3RvdHlwZS5fdHJhbnNpdGlvblRvPWZ1bmN0aW9uKHQsZSxuKXtpZih0aGlzLl9zdGF0ZSE9PWUmJnRoaXMuX3N0YXRlIT09bil0aHJvdyBuZXcgRXJyb3IodGhpcy50eXBlKyIgJyIrdGhpcy5zb3VyY2UrIic6IGNhbiBub3QgdHJhbnNpdGlvbiB0byAnIit0KyInLCBleHBlY3Rpbmcgc3RhdGUgJyIrZSsiJyIrKG4/IiBvciAnIituKyInIjoiIikrIiwgd2FzICciK3RoaXMuX3N0YXRlKyInLiIpO3RoaXMuX3N0YXRlPXQsdD09QyYmKHRoaXMuX3pvbmVEZWxlZ2F0ZXM9bnVsbCl9LGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YSYmdm9pZCAwIT09dGhpcy5kYXRhLmhhbmRsZUlkP3RoaXMuZGF0YS5oYW5kbGVJZC50b1N0cmluZygpOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6dGhpcy50eXBlLHN0YXRlOnRoaXMuc3RhdGUsc291cmNlOnRoaXMuc291cmNlLHpvbmU6dGhpcy56b25lLm5hbWUscnVuQ291bnQ6dGhpcy5ydW5Db3VudH19LGV9KSgpLG09YSgic2V0VGltZW91dCIpLHU9YSgiUHJvbWlzZSIpLGY9YSgidGhlbiIpLGc9W10saD0hMTtmdW5jdGlvbiBiKGUpe2lmKDA9PT1UJiYwPT09Zy5sZW5ndGgpaWYobHx8dFt1XSYmKGw9dFt1XS5yZXNvbHZlKDApKSxsKXt2YXIgbj1sW2ZdO258fChuPWwudGhlbiksbi5jYWxsKGwseSl9ZWxzZSB0W21dKHksMCk7ZSYmZy5wdXNoKGUpfWZ1bmN0aW9uIHkoKXtpZighaCl7Zm9yKGg9ITA7Zy5sZW5ndGg7KXt2YXIgdD1nO2c9W107Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV07dHJ5e24uem9uZS5ydW5UYXNrKG4sbnVsbCxudWxsKX1jYXRjaCh0KXtFLm9uVW5oYW5kbGVkRXJyb3IodCl9fX1FLm1pY3JvdGFza0RyYWluRG9uZSgpLGg9ITF9fXZhciBfPXtuYW1lOiJOTyBaT05FIn0sQz0ibm90U2NoZWR1bGVkIixNPSJzY2hlZHVsaW5nIix2PSJzY2hlZHVsZWQiLHg9InJ1bm5pbmciLE89ImNhbmNlbGluZyIsUD0idW5rbm93biIsdz0ibWljcm9UYXNrIixrPSJtYWNyb1Rhc2siLFM9ImV2ZW50VGFzayIsRD17fSxFPXtzeW1ib2w6YSxjdXJyZW50Wm9uZUZyYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIFJ9LG9uVW5oYW5kbGVkRXJyb3I6TixtaWNyb3Rhc2tEcmFpbkRvbmU6TixzY2hlZHVsZU1pY3JvVGFzazpiLHNob3dVbmNhdWdodEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIXNbYSgiaWdub3JlQ29uc29sZUVycm9yVW5jYXVnaHRFcnJvciIpXX0scGF0Y2hFdmVudFRhcmdldDpmdW5jdGlvbigpe3JldHVybltdfSxwYXRjaE9uUHJvcGVydGllczpOLHBhdGNoTWV0aG9kOmZ1bmN0aW9uKCl7cmV0dXJuIE59LGJpbmRBcmd1bWVudHM6ZnVuY3Rpb24oKXtyZXR1cm5bXX0scGF0Y2hUaGVuOmZ1bmN0aW9uKCl7cmV0dXJuIE59LHBhdGNoTWFjcm9UYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIE59LHBhdGNoRXZlbnRQcm90b3R5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gTn0saXNJRU9yRWRnZTpmdW5jdGlvbigpe3JldHVybiExfSxnZXRHbG9iYWxPYmplY3RzOmZ1bmN0aW9uKCl7fSxPYmplY3REZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbigpe3JldHVybiBOfSxPYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24oKXt9LE9iamVjdENyZWF0ZTpmdW5jdGlvbigpe30sQXJyYXlTbGljZTpmdW5jdGlvbigpe3JldHVybltdfSxwYXRjaENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuIE59LHdyYXBXaXRoQ3VycmVudFpvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gTn0sZmlsdGVyUHJvcGVydGllczpmdW5jdGlvbigpe3JldHVybltdfSxhdHRhY2hPcmlnaW5Ub1BhdGNoZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTn0sX3JlZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oKXtyZXR1cm4gTn0scGF0Y2hDYWxsYmFja3M6ZnVuY3Rpb24oKXtyZXR1cm4gTn19LFI9e3BhcmVudDpudWxsLHpvbmU6bmV3IHMobnVsbCxudWxsKX0sQT1udWxsLFQ9MDtmdW5jdGlvbiBOKCl7fW8oIlpvbmUiLCJab25lIiksdC5ab25lPXN9KSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93fHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fFF2KTsKLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovCnZhciB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZT1PYmplY3QuZGVmaW5lUHJvcGVydHksbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysbz1PYmplY3QuY3JlYXRlLGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLGE9ImFkZEV2ZW50TGlzdGVuZXIiLHI9InJlbW92ZUV2ZW50TGlzdGVuZXIiLHM9Wm9uZS5fX3N5bWJvbF9fKGEpLGw9Wm9uZS5fX3N5bWJvbF9fKHIpLGM9InRydWUiLGQ9ImZhbHNlIixwPVpvbmUuX19zeW1ib2xfXygiIik7ZnVuY3Rpb24gbSh0LGUpe3JldHVybiBab25lLmN1cnJlbnQud3JhcCh0LGUpfWZ1bmN0aW9uIHUodCxlLG4sbyxpKXtyZXR1cm4gWm9uZS5jdXJyZW50LnNjaGVkdWxlTWFjcm9UYXNrKHQsZSxuLG8saSl9dmFyIGY9Wm9uZS5fX3N5bWJvbF9fLGc9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3csaD1nP3dpbmRvdzp2b2lkIDAsYj1nJiZofHwib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGZ8fFF2LHk9W251bGxdO2Z1bmN0aW9uIF8odCxlKXtmb3IodmFyIG49dC5sZW5ndGgtMTtuPj0wO24tLSkiZnVuY3Rpb24iPT10eXBlb2YgdFtuXSYmKHRbbl09bSh0W25dLGUrIl8iK24pKTtyZXR1cm4gdH1mdW5jdGlvbiBDKHQpe3JldHVybiF0fHwhMSE9PXQud3JpdGFibGUmJiEoImZ1bmN0aW9uIj09dHlwZW9mIHQuZ2V0JiZ2b2lkIDA9PT10LnNldCl9dmFyIE09InVuZGVmaW5lZCIhPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlLHY9ISgibnciaW4gYikmJnZvaWQgMCE9PWIucHJvY2VzcyYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbChiLnByb2Nlc3MpLHg9IXYmJiFNJiYhKCFnfHwhaC5IVE1MRWxlbWVudCksTz12b2lkIDAhPT1iLnByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoYi5wcm9jZXNzKSYmIU0mJiEoIWd8fCFoLkhUTUxFbGVtZW50KSxQPXt9LHc9ZnVuY3Rpb24odCl7aWYodD10fHxiLmV2ZW50KXt2YXIgZT1QW3QudHlwZV07ZXx8KGU9UFt0LnR5cGVdPWYoIk9OX1BST1BFUlRZIit0LnR5cGUpKTt2YXIgbixvPXRoaXN8fHQudGFyZ2V0fHxiLGk9b1tlXTtyZXR1cm4geCYmbz09PWgmJiJlcnJvciI9PT10LnR5cGU/ITA9PT0obj1pJiZpLmNhbGwodGhpcyx0Lm1lc3NhZ2UsdC5maWxlbmFtZSx0LmxpbmVubyx0LmNvbG5vLHQuZXJyb3IpKSYmdC5wcmV2ZW50RGVmYXVsdCgpOm51bGw9PShuPWkmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKXx8bnx8dC5wcmV2ZW50RGVmYXVsdCgpLG59fTtmdW5jdGlvbiBrKG4sbyxpKXt2YXIgYT10KG4sbyk7aWYoIWEmJmkmJnQoaSxvKSYmKGE9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksYSYmYS5jb25maWd1cmFibGUpe3ZhciByPWYoIm9uIitvKyJwYXRjaGVkIik7aWYoIW4uaGFzT3duUHJvcGVydHkocil8fCFuW3JdKXtkZWxldGUgYS53cml0YWJsZSxkZWxldGUgYS52YWx1ZTt2YXIgcz1hLmdldCxsPWEuc2V0LGM9by5zdWJzdHIoMiksZD1QW2NdO2R8fChkPVBbY109ZigiT05fUFJPUEVSVFkiK2MpKSxhLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2V8fG4hPT1ifHwoZT1iKSxlJiYoZVtkXSYmZS5yZW1vdmVFdmVudExpc3RlbmVyKGMsdyksbCYmbC5hcHBseShlLHkpLCJmdW5jdGlvbiI9PXR5cGVvZiB0PyhlW2RdPXQsZS5hZGRFdmVudExpc3RlbmVyKGMsdywhMSkpOmVbZF09bnVsbCl9LGEuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0fHxuIT09Ynx8KHQ9YiksIXQpcmV0dXJuIG51bGw7dmFyIGU9dFtkXTtpZihlKXJldHVybiBlO2lmKHMpe3ZhciBpPXMmJnMuY2FsbCh0aGlzKTtpZihpKXJldHVybiBhLnNldC5jYWxsKHRoaXMsaSksImZ1bmN0aW9uIj09dHlwZW9mIHQucmVtb3ZlQXR0cmlidXRlJiZ0LnJlbW92ZUF0dHJpYnV0ZShvKSxpfXJldHVybiBudWxsfSxlKG4sbyxhKSxuW3JdPSEwfX19ZnVuY3Rpb24gUyh0LGUsbil7aWYoZSlmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKylrKHQsIm9uIitlW29dLG4pO2Vsc2V7dmFyIGk9W107Zm9yKHZhciBhIGluIHQpIm9uIj09YS5zdWJzdHIoMCwyKSYmaS5wdXNoKGEpO2Zvcih2YXIgcj0wO3I8aS5sZW5ndGg7cisrKWsodCxpW3JdLG4pfX12YXIgRD1mKCJvcmlnaW5hbEluc3RhbmNlIik7ZnVuY3Rpb24gRSh0KXt2YXIgbj1iW3RdO2lmKG4pe2JbZih0KV09bixiW3RdPWZ1bmN0aW9uKCl7dmFyIGU9Xyhhcmd1bWVudHMsdCk7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDA6dGhpc1tEXT1uZXcgbjticmVhaztjYXNlIDE6dGhpc1tEXT1uZXcgbihlWzBdKTticmVhaztjYXNlIDI6dGhpc1tEXT1uZXcgbihlWzBdLGVbMV0pO2JyZWFrO2Nhc2UgMzp0aGlzW0RdPW5ldyBuKGVbMF0sZVsxXSxlWzJdKTticmVhaztjYXNlIDQ6dGhpc1tEXT1uZXcgbihlWzBdLGVbMV0sZVsyXSxlWzNdKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiQXJnIGxpc3QgdG9vIGxvbmcuIil9fSxUKGJbdF0sbik7dmFyIG8saT1uZXcgbigoZnVuY3Rpb24oKXt9KSk7Zm9yKG8gaW4gaSkiWE1MSHR0cFJlcXVlc3QiPT09dCYmInJlc3BvbnNlQmxvYiI9PT1vfHwoZnVuY3Rpb24obil7ImZ1bmN0aW9uIj09dHlwZW9mIGlbbl0/Ylt0XS5wcm90b3R5cGVbbl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tEXVtuXS5hcHBseSh0aGlzW0RdLGFyZ3VtZW50cyl9OmUoYlt0XS5wcm90b3R5cGUsbix7c2V0OmZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBlPyh0aGlzW0RdW25dPW0oZSx0KyIuIituKSxUKHRoaXNbRF1bbl0sZSkpOnRoaXNbRF1bbl09ZX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbRF1bbl19fSl9KShvKTtmb3IobyBpbiBuKSJwcm90b3R5cGUiIT09byYmbi5oYXNPd25Qcm9wZXJ0eShvKSYmKGJbdF1bb109bltvXSl9fWZ1bmN0aW9uIFIoZSxvLGkpe2Zvcih2YXIgYT1lO2EmJiFhLmhhc093blByb3BlcnR5KG8pOylhPW4oYSk7IWEmJmVbb10mJihhPWUpO3ZhciByPWYobykscz1udWxsO2lmKGEmJighKHM9YVtyXSl8fCFhLmhhc093blByb3BlcnR5KHIpKSYmKHM9YVtyXT1hW29dLEMoYSYmdChhLG8pKSkpe3ZhciBsPWkocyxyLG8pO2Fbb109ZnVuY3Rpb24oKXtyZXR1cm4gbCh0aGlzLGFyZ3VtZW50cyl9LFQoYVtvXSxzKX1yZXR1cm4gc31mdW5jdGlvbiBBKHQsZSxuKXt2YXIgbz1udWxsO2Z1bmN0aW9uIGkodCl7dmFyIGU9dC5kYXRhO3JldHVybiBlLmFyZ3NbZS5jYklkeF09ZnVuY3Rpb24oKXt0Lmludm9rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG8uYXBwbHkoZS50YXJnZXQsZS5hcmdzKSx0fW89Uih0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG8pe3ZhciBhPW4oZSxvKTtyZXR1cm4gYS5jYklkeD49MCYmImZ1bmN0aW9uIj09dHlwZW9mIG9bYS5jYklkeF0/dShhLm5hbWUsb1thLmNiSWR4XSxhLGkpOnQuYXBwbHkoZSxvKX19KSl9ZnVuY3Rpb24gVCh0LGUpe3RbZigiT3JpZ2luYWxEZWxlZ2F0ZSIpXT1lfXZhciBOPSExLHo9ITE7ZnVuY3Rpb24gSSgpe2lmKE4pcmV0dXJuIHo7Tj0hMDt0cnl7dmFyIHQ9aC5uYXZpZ2F0b3IudXNlckFnZW50Oy0xPT09dC5pbmRleE9mKCJNU0lFICIpJiYtMT09PXQuaW5kZXhPZigiVHJpZGVudC8iKSYmLTE9PT10LmluZGV4T2YoIkVkZ2UvIil8fCh6PSEwKX1jYXRjaCh0KXt9cmV0dXJuIHp9Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqL1pvbmUuX19sb2FkX3BhdGNoKCJab25lQXdhcmVQcm9taXNlIiwoZnVuY3Rpb24odCxlLG4pe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsaT1PYmplY3QuZGVmaW5lUHJvcGVydHksYT1uLnN5bWJvbCxyPVtdLHM9ITA9PT10W2EoIkRJU0FCTEVfV1JBUFBJTkdfVU5DQVVHSFRfUFJPTUlTRV9SRUpFQ1RJT04iKV0sbD1hKCJQcm9taXNlIiksYz1hKCJ0aGVuIik7bi5vblVuaGFuZGxlZEVycm9yPWZ1bmN0aW9uKHQpe2lmKG4uc2hvd1VuY2F1Z2h0RXJyb3IoKSl7dmFyIGU9dCYmdC5yZWplY3Rpb247ZT9jb25zb2xlLmVycm9yKCJVbmhhbmRsZWQgUHJvbWlzZSByZWplY3Rpb246IixlIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOmUsIjsgWm9uZToiLHQuem9uZS5uYW1lLCI7IFRhc2s6Iix0LnRhc2smJnQudGFzay5zb3VyY2UsIjsgVmFsdWU6IixlLGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrOnZvaWQgMCk6Y29uc29sZS5lcnJvcih0KX19LG4ubWljcm90YXNrRHJhaW5Eb25lPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWZ1bmN0aW9uKCl7dmFyIHQ9ci5zaGlmdCgpO3RyeXt0LnpvbmUucnVuR3VhcmRlZCgoZnVuY3Rpb24oKXtpZih0LnRocm93T3JpZ2luYWwpdGhyb3cgdC5yZWplY3Rpb247dGhyb3cgdH0pKX1jYXRjaCh0KXshKGZ1bmN0aW9uIG8odCl7bi5vblVuaGFuZGxlZEVycm9yKHQpO3RyeXt2YXIgbz1lW2RdOyJmdW5jdGlvbiI9PXR5cGVvZiBvJiZvLmNhbGwodGhpcyx0KX1jYXRjaCh0KXt9fSkodCl9fTtyLmxlbmd0aDspdCgpfTt2YXIgZD1hKCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpO2Z1bmN0aW9uIHAodCl7cmV0dXJuIHQmJnQudGhlbn1mdW5jdGlvbiBtKHQpe3JldHVybiB0fWZ1bmN0aW9uIHUodCl7cmV0dXJuIEQucmVqZWN0KHQpfXZhciBmPWEoInN0YXRlIiksZz1hKCJ2YWx1ZSIpLGg9YSgiZmluYWxseSIpLGI9YSgicGFyZW50UHJvbWlzZVZhbHVlIikseT1hKCJwYXJlbnRQcm9taXNlU3RhdGUiKSxfPW51bGwsQz0hMCxNPSExO2Z1bmN0aW9uIHYodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e08odCxlLG4pfWNhdGNoKGUpe08odCwhMSxlKX19fXZhciB4PWEoImN1cnJlbnRUYXNrVHJhY2UiKTtmdW5jdGlvbiBPKHQsbyxhKXt2YXIgbCxjPShsPSExLGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7bHx8KGw9ITAsZS5hcHBseShudWxsLGFyZ3VtZW50cykpfX0pO2lmKHQ9PT1hKXRocm93IG5ldyBUeXBlRXJyb3IoIlByb21pc2UgcmVzb2x2ZWQgd2l0aCBpdHNlbGYiKTtpZih0W2ZdPT09Xyl7dmFyIGQ9bnVsbDt0cnl7Im9iamVjdCIhPXR5cGVvZiBhJiYiZnVuY3Rpb24iIT10eXBlb2YgYXx8KGQ9YSYmYS50aGVuKX1jYXRjaChlKXtyZXR1cm4gYygoZnVuY3Rpb24oKXtPKHQsITEsZSl9KSkoKSx0fWlmKG8hPT1NJiZhIGluc3RhbmNlb2YgRCYmYS5oYXNPd25Qcm9wZXJ0eShmKSYmYS5oYXNPd25Qcm9wZXJ0eShnKSYmYVtmXSE9PV8pdyhhKSxPKHQsYVtmXSxhW2ddKTtlbHNlIGlmKG8hPT1NJiYiZnVuY3Rpb24iPT10eXBlb2YgZCl0cnl7ZC5jYWxsKGEsYyh2KHQsbykpLGModih0LCExKSkpfWNhdGNoKGUpe2MoKGZ1bmN0aW9uKCl7Tyh0LCExLGUpfSkpKCl9ZWxzZXt0W2ZdPW87dmFyIHA9dFtnXTtpZih0W2ddPWEsdFtoXT09PWgmJm89PT1DJiYodFtmXT10W3ldLHRbZ109dFtiXSksbz09PU0mJmEgaW5zdGFuY2VvZiBFcnJvcil7dmFyIG09ZS5jdXJyZW50VGFzayYmZS5jdXJyZW50VGFzay5kYXRhJiZlLmN1cnJlbnRUYXNrLmRhdGEuX19jcmVhdGlvblRyYWNlX187bSYmaShhLHgse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1mb3IodmFyIHU9MDt1PHAubGVuZ3RoOylrKHQscFt1KytdLHBbdSsrXSxwW3UrK10scFt1KytdKTtpZigwPT1wLmxlbmd0aCYmbz09TSl7dFtmXT0wO3ZhciBQPWE7dHJ5e3Rocm93IG5ldyBFcnJvcigiVW5jYXVnaHQgKGluIHByb21pc2UpOiAiKyhmdW5jdGlvbiBTKHQpe3JldHVybiB0JiZ0LnRvU3RyaW5nPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZz8odC5jb25zdHJ1Y3RvciYmdC5jb25zdHJ1Y3Rvci5uYW1lfHwiIikrIjogIitKU09OLnN0cmluZ2lmeSh0KTp0P3QudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KShhKSsoYSYmYS5zdGFjaz8iXG4iK2Euc3RhY2s6IiIpKX1jYXRjaCh0KXtQPXR9cyYmKFAudGhyb3dPcmlnaW5hbD0hMCksUC5yZWplY3Rpb249YSxQLnByb21pc2U9dCxQLnpvbmU9ZS5jdXJyZW50LFAudGFzaz1lLmN1cnJlbnRUYXNrLHIucHVzaChQKSxuLnNjaGVkdWxlTWljcm9UYXNrKCl9fX1yZXR1cm4gdH12YXIgUD1hKCJyZWplY3Rpb25IYW5kbGVkSGFuZGxlciIpO2Z1bmN0aW9uIHcodCl7aWYoMD09PXRbZl0pe3RyeXt2YXIgbj1lW1BdO24mJiJmdW5jdGlvbiI9PXR5cGVvZiBuJiZuLmNhbGwodGhpcyx7cmVqZWN0aW9uOnRbZ10scHJvbWlzZTp0fSl9Y2F0Y2godCl7fXRbZl09TTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKyl0PT09cltvXS5wcm9taXNlJiZyLnNwbGljZShvLDEpfX1mdW5jdGlvbiBrKHQsZSxuLG8saSl7dyh0KTt2YXIgYT10W2ZdLHI9YT8iZnVuY3Rpb24iPT10eXBlb2Ygbz9vOm06ImZ1bmN0aW9uIj09dHlwZW9mIGk/aTp1O2Uuc2NoZWR1bGVNaWNyb1Rhc2soIlByb21pc2UudGhlbiIsKGZ1bmN0aW9uKCl7dHJ5e3ZhciBvPXRbZ10saT0hIW4mJmg9PT1uW2hdO2kmJihuW2JdPW8sblt5XT1hKTt2YXIgcz1lLnJ1bihyLHZvaWQgMCxpJiZyIT09dSYmciE9PW0/W106W29dKTtPKG4sITAscyl9Y2F0Y2godCl7TyhuLCExLHQpfX0pLG4pfXZhciBTPWZ1bmN0aW9uKCl7fSxEPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dmFyIG49dGhpcztpZighKG4gaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgRXJyb3IoIk11c3QgYmUgYW4gaW5zdGFuY2VvZiBQcm9taXNlLiIpO25bZl09XyxuW2ddPVtdO3RyeXtlJiZlKHYobixDKSx2KG4sTSkpfWNhdGNoKHQpe08obiwhMSx0KX19cmV0dXJuIHQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24gWm9uZUF3YXJlUHJvbWlzZSgpIHsgW25hdGl2ZSBjb2RlXSB9In0sdC5yZXNvbHZlPWZ1bmN0aW9uKHQpe3JldHVybiBPKG5ldyB0aGlzKG51bGwpLEMsdCl9LHQucmVqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBPKG5ldyB0aGlzKG51bGwpLE0sdCl9LHQucmFjZT1mdW5jdGlvbih0KXt2YXIgZSxuLG89bmV3IHRoaXMoKGZ1bmN0aW9uKHQsbyl7ZT10LG49b30pKTtmdW5jdGlvbiBpKHQpe2UodCl9ZnVuY3Rpb24gYSh0KXtuKHQpfWZvcih2YXIgcj0wLHM9dDtyPHMubGVuZ3RoO3IrKyl7dmFyIGw9c1tyXTtwKGwpfHwobD10aGlzLnJlc29sdmUobCkpLGwudGhlbihpLGEpfXJldHVybiBvfSx0LmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gdC5hbGxXaXRoQ2FsbGJhY2soZSl9LHQuYWxsU2V0dGxlZD1mdW5jdGlvbihlKXtyZXR1cm4odGhpcyYmdGhpcy5wcm90b3R5cGUgaW5zdGFuY2VvZiB0P3RoaXM6dCkuYWxsV2l0aENhbGxiYWNrKGUse3RoZW5DYWxsYmFjazpmdW5jdGlvbih0KXtyZXR1cm57c3RhdHVzOiJmdWxmaWxsZWQiLHZhbHVlOnR9fSxlcnJvckNhbGxiYWNrOmZ1bmN0aW9uKHQpe3JldHVybntzdGF0dXM6InJlamVjdGVkIixyZWFzb246dH19fSl9LHQuYWxsV2l0aENhbGxiYWNrPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLG8saT1uZXcgdGhpcygoZnVuY3Rpb24odCxlKXtuPXQsbz1lfSkpLGE9MixyPTAscz1bXSxsPWZ1bmN0aW9uKHQpe3AodCl8fCh0PWMucmVzb2x2ZSh0KSk7dmFyIGk9cjt0cnl7dC50aGVuKChmdW5jdGlvbih0KXtzW2ldPWU/ZS50aGVuQ2FsbGJhY2sodCk6dCwwPT0tLWEmJm4ocyl9KSwoZnVuY3Rpb24odCl7ZT8oc1tpXT1lLmVycm9yQ2FsbGJhY2sodCksMD09LS1hJiZuKHMpKTpvKHQpfSkpfWNhdGNoKHQpe28odCl9YSsrLHIrK30sYz10aGlzLGQ9MCxtPXQ7ZDxtLmxlbmd0aDtkKyspbChtW2RdKTtyZXR1cm4gMD09KGEtPTIpJiZuKHMpLGl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxTeW1ib2wudG9TdHJpbmdUYWcse2dldDpmdW5jdGlvbigpe3JldHVybiJQcm9taXNlIn0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsU3ltYm9sLnNwZWNpZXMse2dldDpmdW5jdGlvbigpe3JldHVybiB0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24obixvKXt2YXIgaT10aGlzLmNvbnN0cnVjdG9yW1N5bWJvbC5zcGVjaWVzXTtpJiYiZnVuY3Rpb24iPT10eXBlb2YgaXx8KGk9dGhpcy5jb25zdHJ1Y3Rvcnx8dCk7dmFyIGE9bmV3IGkoUykscj1lLmN1cnJlbnQ7cmV0dXJuIHRoaXNbZl09PV8/dGhpc1tnXS5wdXNoKHIsYSxuLG8pOmsodGhpcyxyLGEsbixvKSxhfSx0LnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKG51bGwsdCl9LHQucHJvdG90eXBlLmZpbmFsbHk9ZnVuY3Rpb24obil7dmFyIG89dGhpcy5jb25zdHJ1Y3RvcltTeW1ib2wuc3BlY2llc107byYmImZ1bmN0aW9uIj09dHlwZW9mIG98fChvPXQpO3ZhciBpPW5ldyBvKFMpO2lbaF09aDt2YXIgYT1lLmN1cnJlbnQ7cmV0dXJuIHRoaXNbZl09PV8/dGhpc1tnXS5wdXNoKGEsaSxuLG4pOmsodGhpcyxhLGksbixuKSxpfSx0fSkoKTtELnJlc29sdmU9RC5yZXNvbHZlLEQucmVqZWN0PUQucmVqZWN0LEQucmFjZT1ELnJhY2UsRC5hbGw9RC5hbGw7dmFyIEU9dFtsXT10LlByb21pc2U7dC5Qcm9taXNlPUQ7dmFyIEE9YSgidGhlblBhdGNoZWQiKTtmdW5jdGlvbiBUKHQpe3ZhciBlPXQucHJvdG90eXBlLG49byhlLCJ0aGVuIik7aWYoIW58fCExIT09bi53cml0YWJsZSYmbi5jb25maWd1cmFibGUpe3ZhciBpPWUudGhlbjtlW2NdPWksdC5wcm90b3R5cGUudGhlbj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIG5ldyBEKChmdW5jdGlvbih0LGUpe2kuY2FsbChuLHQsZSl9KSkudGhlbih0LGUpfSx0W0FdPSEwfX1yZXR1cm4gbi5wYXRjaFRoZW49VCxFJiYoVChFKSxSKHQsImZldGNoIiwoZnVuY3Rpb24odCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIG89dC5hcHBseShlLG4pO2lmKG8gaW5zdGFuY2VvZiBEKXJldHVybiBvO3ZhciBpPW8uY29uc3RydWN0b3I7cmV0dXJuIGlbQV18fFQoaSksb319KSh0KX0pKSksUHJvbWlzZVtlLl9fc3ltYm9sX18oInVuY2F1Z2h0UHJvbWlzZUVycm9ycyIpXT1yLER9KSksCi8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqLwpab25lLl9fbG9hZF9wYXRjaCgidG9TdHJpbmciLChmdW5jdGlvbih0KXt2YXIgZT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsbj1mKCJPcmlnaW5hbERlbGVnYXRlIiksbz1mKCJQcm9taXNlIiksaT1mKCJFcnJvciIpLGE9ZnVuY3Rpb24gYSgpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzKXt2YXIgcj10aGlzW25dO2lmKHIpcmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHI/ZS5jYWxsKHIpOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyKTtpZih0aGlzPT09UHJvbWlzZSl7dmFyIHM9dFtvXTtpZihzKXJldHVybiBlLmNhbGwocyl9aWYodGhpcz09PUVycm9yKXt2YXIgbD10W2ldO2lmKGwpcmV0dXJuIGUuY2FsbChsKX19cmV0dXJuIGUuY2FsbCh0aGlzKX07YVtuXT1lLEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz1hO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBQcm9taXNlJiZ0aGlzIGluc3RhbmNlb2YgUHJvbWlzZT8iW29iamVjdCBQcm9taXNlXSI6ci5jYWxsKHRoaXMpfX0pKTsKLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovCnZhciBIPSExO2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXRyeXt2YXIgRj1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtIPSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixGLEYpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixGLEYpfWNhdGNoKHQpe0g9ITF9dmFyIEw9e3VzZUc6ITB9LEI9e30sVj17fSxqPW5ldyBSZWdFeHAoIl4iK3ArIihcXHcrKSh0cnVlfGZhbHNlKSQiKSxVPWYoInByb3BhZ2F0aW9uU3RvcHBlZCIpO2Z1bmN0aW9uIEcodCxlKXt2YXIgbj0oZT9lKHQpOnQpK2Qsbz0oZT9lKHQpOnQpK2MsaT1wK24sYT1wK287Qlt0XT17fSxCW3RdLmZhbHNlPWksQlt0XS50cnVlPWF9ZnVuY3Rpb24gVyh0LGUsbyl7dmFyIGk9byYmby5hZGR8fGEscz1vJiZvLnJtfHxyLGw9byYmby5saXN0ZW5lcnN8fCJldmVudExpc3RlbmVycyIsbT1vJiZvLnJtQWxsfHwicmVtb3ZlQWxsTGlzdGVuZXJzIix1PWYoaSksZz0iLiIraSsiOiIsaD1mdW5jdGlvbih0LGUsbil7aWYoIXQuaXNSZW1vdmVkKXt2YXIgbz10LmNhbGxiYWNrOyJvYmplY3QiPT10eXBlb2YgbyYmby5oYW5kbGVFdmVudCYmKHQuY2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIG8uaGFuZGxlRXZlbnQodCl9LHQub3JpZ2luYWxEZWxlZ2F0ZT1vKSx0Lmludm9rZSh0LGUsW25dKTt2YXIgaT10Lm9wdGlvbnM7aSYmIm9iamVjdCI9PXR5cGVvZiBpJiZpLm9uY2UmJmVbc10uY2FsbChlLG4udHlwZSx0Lm9yaWdpbmFsRGVsZWdhdGU/dC5vcmlnaW5hbERlbGVnYXRlOnQuY2FsbGJhY2ssaSl9fSxiPWZ1bmN0aW9uKGUpe2lmKGU9ZXx8dC5ldmVudCl7dmFyIG49dGhpc3x8ZS50YXJnZXR8fHQsbz1uW0JbZS50eXBlXS5mYWxzZV07aWYobylpZigxPT09by5sZW5ndGgpaChvWzBdLG4sZSk7ZWxzZSBmb3IodmFyIGk9by5zbGljZSgpLGE9MDthPGkubGVuZ3RoJiYoIWV8fCEwIT09ZVtVXSk7YSsrKWgoaVthXSxuLGUpfX0seT1mdW5jdGlvbihlKXtpZihlPWV8fHQuZXZlbnQpe3ZhciBuPXRoaXN8fGUudGFyZ2V0fHx0LG89bltCW2UudHlwZV0udHJ1ZV07aWYobylpZigxPT09by5sZW5ndGgpaChvWzBdLG4sZSk7ZWxzZSBmb3IodmFyIGk9by5zbGljZSgpLGE9MDthPGkubGVuZ3RoJiYoIWV8fCEwIT09ZVtVXSk7YSsrKWgoaVthXSxuLGUpfX07ZnVuY3Rpb24gXyhlLG8pe2lmKCFlKXJldHVybiExO3ZhciBhPSEwO28mJnZvaWQgMCE9PW8udXNlRyYmKGE9by51c2VHKTt2YXIgcj1vJiZvLnZoLGg9ITA7byYmdm9pZCAwIT09by5jaGtEdXAmJihoPW8uY2hrRHVwKTt2YXIgXz0hMTtvJiZ2b2lkIDAhPT1vLnJ0JiYoXz1vLnJ0KTtmb3IodmFyIEM9ZTtDJiYhQy5oYXNPd25Qcm9wZXJ0eShpKTspQz1uKEMpO2lmKCFDJiZlW2ldJiYoQz1lKSwhQylyZXR1cm4hMTtpZihDW3VdKXJldHVybiExO3ZhciBNLHg9byYmby5ldmVudE5hbWVUb1N0cmluZyxPPXt9LFA9Q1t1XT1DW2ldLHc9Q1tmKHMpXT1DW3NdLGs9Q1tmKGwpXT1DW2xdLFM9Q1tmKG0pXT1DW21dO2Z1bmN0aW9uIEQodCxlKXtyZXR1cm4hSCYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0PyEhdC5jYXB0dXJlOkgmJmU/ImJvb2xlYW4iPT10eXBlb2YgdD97Y2FwdHVyZTp0LHBhc3NpdmU6ITB9OnQ/Im9iamVjdCI9PXR5cGVvZiB0JiYhMSE9PXQucGFzc2l2ZT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3Bhc3NpdmU6ITB9KTp0OntwYXNzaXZlOiEwfTp0fW8mJm8ucHJlcGVuZCYmKE09Q1tmKG8ucHJlcGVuZCldPUNbby5wcmVwZW5kXSk7dmFyIEU9YT9mdW5jdGlvbih0KXtpZighTy5pc0V4aXN0aW5nKXJldHVybiBQLmNhbGwoTy50YXJnZXQsTy5ldmVudE5hbWUsTy5jYXB0dXJlP3k6YixPLm9wdGlvbnMpfTpmdW5jdGlvbih0KXtyZXR1cm4gUC5jYWxsKE8udGFyZ2V0LE8uZXZlbnROYW1lLHQuaW52b2tlLE8ub3B0aW9ucyl9LFI9YT9mdW5jdGlvbih0KXtpZighdC5pc1JlbW92ZWQpe3ZhciBlPUJbdC5ldmVudE5hbWVdLG49dm9pZCAwO2UmJihuPWVbdC5jYXB0dXJlP2M6ZF0pO3ZhciBvPW4mJnQudGFyZ2V0W25dO2lmKG8pZm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspaWYob1tpXT09PXQpe28uc3BsaWNlKGksMSksdC5pc1JlbW92ZWQ9ITAsMD09PW8ubGVuZ3RoJiYodC5hbGxSZW1vdmVkPSEwLHQudGFyZ2V0W25dPW51bGwpO2JyZWFrfX1pZih0LmFsbFJlbW92ZWQpcmV0dXJuIHcuY2FsbCh0LnRhcmdldCx0LmV2ZW50TmFtZSx0LmNhcHR1cmU/eTpiLHQub3B0aW9ucyl9OmZ1bmN0aW9uKHQpe3JldHVybiB3LmNhbGwodC50YXJnZXQsdC5ldmVudE5hbWUsdC5pbnZva2UsdC5vcHRpb25zKX0sQT1vJiZvLmRpZmY/by5kaWZmOmZ1bmN0aW9uKHQsZSl7dmFyIG49dHlwZW9mIGU7cmV0dXJuImZ1bmN0aW9uIj09PW4mJnQuY2FsbGJhY2s9PT1lfHwib2JqZWN0Ij09PW4mJnQub3JpZ2luYWxEZWxlZ2F0ZT09PWV9LE49Wm9uZVtmKCJVTlBBVENIRURfRVZFTlRTIildLHo9dFtmKCJQQVNTSVZFX0VWRU5UUyIpXSxJPWZ1bmN0aW9uKGUsbixpLHMsbCxwKXtyZXR1cm4gdm9pZCAwPT09bCYmKGw9ITEpLHZvaWQgMD09PXAmJihwPSExKSxmdW5jdGlvbigpe3ZhciBtPXRoaXN8fHQsdT1hcmd1bWVudHNbMF07byYmby50cmFuc2ZlckV2ZW50TmFtZSYmKHU9by50cmFuc2ZlckV2ZW50TmFtZSh1KSk7dmFyIGY9YXJndW1lbnRzWzFdO2lmKCFmKXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZih2JiYidW5jYXVnaHRFeGNlcHRpb24iPT09dSlyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGc9ITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGYpe2lmKCFmLmhhbmRsZUV2ZW50KXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtnPSEwfWlmKCFyfHxyKGUsZixtLGFyZ3VtZW50cykpe3ZhciBiPUgmJiEheiYmLTEhPT16LmluZGV4T2YodSkseT1EKGFyZ3VtZW50c1syXSxiKTtpZihOKWZvcih2YXIgXz0wO188Ti5sZW5ndGg7XysrKWlmKHU9PT1OW19dKXJldHVybiBiP2UuY2FsbChtLHUsZix5KTplLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgQz0hIXkmJigiYm9vbGVhbiI9PXR5cGVvZiB5fHx5LmNhcHR1cmUpLE09ISgheXx8Im9iamVjdCIhPXR5cGVvZiB5KSYmeS5vbmNlLFA9Wm9uZS5jdXJyZW50LHc9Qlt1XTt3fHwoRyh1LHgpLHc9Qlt1XSk7dmFyIGssUz13W0M/YzpkXSxFPW1bU10sUj0hMTtpZihFKXtpZihSPSEwLGgpZm9yKF89MDtfPEUubGVuZ3RoO18rKylpZihBKEVbX10sZikpcmV0dXJufWVsc2UgRT1tW1NdPVtdO3ZhciBUPW0uY29uc3RydWN0b3IubmFtZSxJPVZbVF07SSYmKGs9SVt1XSksa3x8KGs9VCtuKyh4P3godSk6dSkpLE8ub3B0aW9ucz15LE0mJihPLm9wdGlvbnMub25jZT0hMSksTy50YXJnZXQ9bSxPLmNhcHR1cmU9QyxPLmV2ZW50TmFtZT11LE8uaXNFeGlzdGluZz1SO3ZhciBGPWE/TDp2b2lkIDA7RiYmKEYudGFza0RhdGE9Tyk7dmFyIGo9UC5zY2hlZHVsZUV2ZW50VGFzayhrLGYsRixpLHMpO3JldHVybiBPLnRhcmdldD1udWxsLEYmJihGLnRhc2tEYXRhPW51bGwpLE0mJih5Lm9uY2U9ITApLChIfHwiYm9vbGVhbiIhPXR5cGVvZiBqLm9wdGlvbnMpJiYoai5vcHRpb25zPXkpLGoudGFyZ2V0PW0sai5jYXB0dXJlPUMsai5ldmVudE5hbWU9dSxnJiYoai5vcmlnaW5hbERlbGVnYXRlPWYpLHA/RS51bnNoaWZ0KGopOkUucHVzaChqKSxsP206dm9pZCAwfX19O3JldHVybiBDW2ldPUkoUCxnLEUsUixfKSxNJiYoQy5wcmVwZW5kTGlzdGVuZXI9SShNLCIucHJlcGVuZExpc3RlbmVyOiIsKGZ1bmN0aW9uKHQpe3JldHVybiBNLmNhbGwoTy50YXJnZXQsTy5ldmVudE5hbWUsdC5pbnZva2UsTy5vcHRpb25zKX0pLFIsXywhMCkpLENbc109ZnVuY3Rpb24oKXt2YXIgZT10aGlzfHx0LG49YXJndW1lbnRzWzBdO28mJm8udHJhbnNmZXJFdmVudE5hbWUmJihuPW8udHJhbnNmZXJFdmVudE5hbWUobikpO3ZhciBpPWFyZ3VtZW50c1syXSxhPSEhaSYmKCJib29sZWFuIj09dHlwZW9mIGl8fGkuY2FwdHVyZSkscz1hcmd1bWVudHNbMV07aWYoIXMpcmV0dXJuIHcuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKCFyfHxyKHcscyxlLGFyZ3VtZW50cykpe3ZhciBsLG09QltuXTttJiYobD1tW2E/YzpkXSk7dmFyIHU9bCYmZVtsXTtpZih1KWZvcih2YXIgZj0wO2Y8dS5sZW5ndGg7ZisrKXt2YXIgZz11W2ZdO2lmKEEoZyxzKSlyZXR1cm4gdS5zcGxpY2UoZiwxKSxnLmlzUmVtb3ZlZD0hMCwwPT09dS5sZW5ndGgmJihnLmFsbFJlbW92ZWQ9ITAsZVtsXT1udWxsLCJzdHJpbmciPT10eXBlb2YgbiYmKGVbcCsiT05fUFJPUEVSVFkiK25dPW51bGwpKSxnLnpvbmUuY2FuY2VsVGFzayhnKSxfP2U6dm9pZCAwfXJldHVybiB3LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LENbbF09ZnVuY3Rpb24oKXt2YXIgZT10aGlzfHx0LG49YXJndW1lbnRzWzBdO28mJm8udHJhbnNmZXJFdmVudE5hbWUmJihuPW8udHJhbnNmZXJFdmVudE5hbWUobikpO2Zvcih2YXIgaT1bXSxhPVkoZSx4P3gobik6bikscj0wO3I8YS5sZW5ndGg7cisrKXt2YXIgcz1hW3JdO2kucHVzaChzLm9yaWdpbmFsRGVsZWdhdGU/cy5vcmlnaW5hbERlbGVnYXRlOnMuY2FsbGJhY2spfXJldHVybiBpfSxDW21dPWZ1bmN0aW9uKCl7dmFyIGU9dGhpc3x8dCxuPWFyZ3VtZW50c1swXTtpZihuKXtvJiZvLnRyYW5zZmVyRXZlbnROYW1lJiYobj1vLnRyYW5zZmVyRXZlbnROYW1lKG4pKTt2YXIgaT1CW25dO2lmKGkpe3ZhciBhPWVbaS5mYWxzZV0scj1lW2kudHJ1ZV07aWYoYSl7dmFyIGw9YS5zbGljZSgpO2ZvcihwPTA7cDxsLmxlbmd0aDtwKyspdGhpc1tzXS5jYWxsKHRoaXMsbiwoYz1sW3BdKS5vcmlnaW5hbERlbGVnYXRlP2Mub3JpZ2luYWxEZWxlZ2F0ZTpjLmNhbGxiYWNrLGMub3B0aW9ucyl9aWYocilmb3IobD1yLnNsaWNlKCkscD0wO3A8bC5sZW5ndGg7cCsrKXt2YXIgYzt0aGlzW3NdLmNhbGwodGhpcyxuLChjPWxbcF0pLm9yaWdpbmFsRGVsZWdhdGU/Yy5vcmlnaW5hbERlbGVnYXRlOmMuY2FsbGJhY2ssYy5vcHRpb25zKX19fWVsc2V7Zm9yKHZhciBkPU9iamVjdC5rZXlzKGUpLHA9MDtwPGQubGVuZ3RoO3ArKyl7dmFyIHU9ai5leGVjKGRbcF0pLGY9dSYmdVsxXTtmJiYicmVtb3ZlTGlzdGVuZXIiIT09ZiYmdGhpc1ttXS5jYWxsKHRoaXMsZil9dGhpc1ttXS5jYWxsKHRoaXMsInJlbW92ZUxpc3RlbmVyIil9aWYoXylyZXR1cm4gdGhpc30sVChDW2ldLFApLFQoQ1tzXSx3KSxTJiZUKENbbV0sUyksayYmVChDW2xdLGspLCEwfWZvcih2YXIgQz1bXSxNPTA7TTxlLmxlbmd0aDtNKyspQ1tNXT1fKGVbTV0sbyk7cmV0dXJuIEN9ZnVuY3Rpb24gWSh0LGUpe2lmKCFlKXt2YXIgbj1bXTtmb3IodmFyIG8gaW4gdCl7dmFyIGk9ai5leGVjKG8pLGE9aSYmaVsxXTtpZihhJiYoIWV8fGE9PT1lKSl7dmFyIHI9dFtvXTtpZihyKWZvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKW4ucHVzaChyW3NdKX19cmV0dXJuIG59dmFyIGw9QltlXTtsfHwoRyhlKSxsPUJbZV0pO3ZhciBjPXRbbC5mYWxzZV0sZD10W2wudHJ1ZV07cmV0dXJuIGM/ZD9jLmNvbmNhdChkKTpjLnNsaWNlKCk6ZD9kLnNsaWNlKCk6W119ZnVuY3Rpb24gcSh0LGUpe3ZhciBuPXQuRXZlbnQ7biYmbi5wcm90b3R5cGUmJmUucGF0Y2hNZXRob2Qobi5wcm90b3R5cGUsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe2VbVV09ITAsdCYmdC5hcHBseShlLG4pfX0pKX0KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovZnVuY3Rpb24gWih0LGUsbixvLGkpe3ZhciBhPVpvbmUuX19zeW1ib2xfXyhvKTtpZighZVthXSl7dmFyIHI9ZVthXT1lW29dO2Vbb109ZnVuY3Rpb24oYSxzLGwpe3JldHVybiBzJiZzLnByb3RvdHlwZSYmaS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgaT1uKyIuIitvKyI6OiIrZSxhPXMucHJvdG90eXBlO2lmKGEuaGFzT3duUHJvcGVydHkoZSkpe3ZhciByPXQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsZSk7ciYmci52YWx1ZT8oci52YWx1ZT10LndyYXBXaXRoQ3VycmVudFpvbmUoci52YWx1ZSxpKSx0Ll9yZWRlZmluZVByb3BlcnR5KHMucHJvdG90eXBlLGUscikpOmFbZV0mJihhW2VdPXQud3JhcFdpdGhDdXJyZW50Wm9uZShhW2VdLGkpKX1lbHNlIGFbZV0mJihhW2VdPXQud3JhcFdpdGhDdXJyZW50Wm9uZShhW2VdLGkpKX0pKSxyLmNhbGwoZSxhLHMsbCl9LHQuYXR0YWNoT3JpZ2luVG9QYXRjaGVkKGVbb10scil9fQovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi92YXIgWCxLLEosUSwkLHR0PVsiYWJzb2x1dGVkZXZpY2VvcmllbnRhdGlvbiIsImFmdGVyaW5wdXQiLCJhZnRlcnByaW50IiwiYXBwaW5zdGFsbGVkIiwiYmVmb3JlaW5zdGFsbHByb21wdCIsImJlZm9yZXByaW50IiwiYmVmb3JldW5sb2FkIiwiZGV2aWNlbGlnaHQiLCJkZXZpY2Vtb3Rpb24iLCJkZXZpY2VvcmllbnRhdGlvbiIsImRldmljZW9yaWVudGF0aW9uYWJzb2x1dGUiLCJkZXZpY2Vwcm94aW1pdHkiLCJoYXNoY2hhbmdlIiwibGFuZ3VhZ2VjaGFuZ2UiLCJtZXNzYWdlIiwibW96YmVmb3JlcGFpbnQiLCJvZmZsaW5lIiwib25saW5lIiwicGFpbnQiLCJwYWdlc2hvdyIsInBhZ2VoaWRlIiwicG9wc3RhdGUiLCJyZWplY3Rpb25oYW5kbGVkIiwic3RvcmFnZSIsInVuaGFuZGxlZHJlamVjdGlvbiIsInVubG9hZCIsInVzZXJwcm94aW1pdHkiLCJ2cmRpc3BsYXljb25uZWN0ZWQiLCJ2cmRpc3BsYXlkaXNjb25uZWN0ZWQiLCJ2cmRpc3BsYXlwcmVzZW50Y2hhbmdlIl0sZXQ9WyJlbmNyeXB0ZWQiLCJ3YWl0aW5nZm9ya2V5IiwibXNuZWVka2V5IiwibW96aW50ZXJydXB0YmVnaW4iLCJtb3ppbnRlcnJ1cHRlbmQiXSxudD1bImxvYWQiXSxvdD1bImJsdXIiLCJlcnJvciIsImZvY3VzIiwibG9hZCIsInJlc2l6ZSIsInNjcm9sbCIsIm1lc3NhZ2VlcnJvciJdLGl0PVsiYm91bmNlIiwiZmluaXNoIiwic3RhcnQiXSxhdD1bImxvYWRzdGFydCIsInByb2dyZXNzIiwiYWJvcnQiLCJlcnJvciIsImxvYWQiLCJwcm9ncmVzcyIsInRpbWVvdXQiLCJsb2FkZW5kIiwicmVhZHlzdGF0ZWNoYW5nZSJdLHJ0PVsidXBncmFkZW5lZWRlZCIsImNvbXBsZXRlIiwiYWJvcnQiLCJzdWNjZXNzIiwiZXJyb3IiLCJibG9ja2VkIiwidmVyc2lvbmNoYW5nZSIsImNsb3NlIl0sc3Q9WyJjbG9zZSIsImVycm9yIiwib3BlbiIsIm1lc3NhZ2UiXSxsdD1bImVycm9yIiwibWVzc2FnZSJdLGN0PVsiYWJvcnQiLCJhbmltYXRpb25jYW5jZWwiLCJhbmltYXRpb25lbmQiLCJhbmltYXRpb25pdGVyYXRpb24iLCJhdXhjbGljayIsImJlZm9yZWlucHV0IiwiYmx1ciIsImNhbmNlbCIsImNhbnBsYXkiLCJjYW5wbGF5dGhyb3VnaCIsImNoYW5nZSIsImNvbXBvc2l0aW9uc3RhcnQiLCJjb21wb3NpdGlvbnVwZGF0ZSIsImNvbXBvc2l0aW9uZW5kIiwiY3VlY2hhbmdlIiwiY2xpY2siLCJjbG9zZSIsImNvbnRleHRtZW51IiwiY3VyZWNoYW5nZSIsImRibGNsaWNrIiwiZHJhZyIsImRyYWdlbmQiLCJkcmFnZW50ZXIiLCJkcmFnZXhpdCIsImRyYWdsZWF2ZSIsImRyYWdvdmVyIiwiZHJvcCIsImR1cmF0aW9uY2hhbmdlIiwiZW1wdGllZCIsImVuZGVkIiwiZXJyb3IiLCJmb2N1cyIsImZvY3VzaW4iLCJmb2N1c291dCIsImdvdHBvaW50ZXJjYXB0dXJlIiwiaW5wdXQiLCJpbnZhbGlkIiwia2V5ZG93biIsImtleXByZXNzIiwia2V5dXAiLCJsb2FkIiwibG9hZHN0YXJ0IiwibG9hZGVkZGF0YSIsImxvYWRlZG1ldGFkYXRhIiwibG9zdHBvaW50ZXJjYXB0dXJlIiwibW91c2Vkb3duIiwibW91c2VlbnRlciIsIm1vdXNlbGVhdmUiLCJtb3VzZW1vdmUiLCJtb3VzZW91dCIsIm1vdXNlb3ZlciIsIm1vdXNldXAiLCJtb3VzZXdoZWVsIiwib3JpZW50YXRpb25jaGFuZ2UiLCJwYXVzZSIsInBsYXkiLCJwbGF5aW5nIiwicG9pbnRlcmNhbmNlbCIsInBvaW50ZXJkb3duIiwicG9pbnRlcmVudGVyIiwicG9pbnRlcmxlYXZlIiwicG9pbnRlcmxvY2tjaGFuZ2UiLCJtb3pwb2ludGVybG9ja2NoYW5nZSIsIndlYmtpdHBvaW50ZXJsb2NrZXJjaGFuZ2UiLCJwb2ludGVybG9ja2Vycm9yIiwibW96cG9pbnRlcmxvY2tlcnJvciIsIndlYmtpdHBvaW50ZXJsb2NrZXJyb3IiLCJwb2ludGVybW92ZSIsInBvaW50b3V0IiwicG9pbnRlcm92ZXIiLCJwb2ludGVydXAiLCJwcm9ncmVzcyIsInJhdGVjaGFuZ2UiLCJyZXNldCIsInJlc2l6ZSIsInNjcm9sbCIsInNlZWtlZCIsInNlZWtpbmciLCJzZWxlY3QiLCJzZWxlY3Rpb25jaGFuZ2UiLCJzZWxlY3RzdGFydCIsInNob3ciLCJzb3J0Iiwic3RhbGxlZCIsInN1Ym1pdCIsInN1c3BlbmQiLCJ0aW1ldXBkYXRlIiwidm9sdW1lY2hhbmdlIiwidG91Y2hjYW5jZWwiLCJ0b3VjaG1vdmUiLCJ0b3VjaHN0YXJ0IiwidG91Y2hlbmQiLCJ0cmFuc2l0aW9uY2FuY2VsIiwidHJhbnNpdGlvbmVuZCIsIndhaXRpbmciLCJ3aGVlbCJdLmNvbmNhdChbIndlYmdsY29udGV4dHJlc3RvcmVkIiwid2ViZ2xjb250ZXh0bG9zdCIsIndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3IiXSxbImF1dG9jb21wbGV0ZSIsImF1dG9jb21wbGV0ZWVycm9yIl0sWyJ0b2dnbGUiXSxbImFmdGVyc2NyaXB0ZXhlY3V0ZSIsImJlZm9yZXNjcmlwdGV4ZWN1dGUiLCJET01Db250ZW50TG9hZGVkIiwiZnJlZXplIiwiZnVsbHNjcmVlbmNoYW5nZSIsIm1vemZ1bGxzY3JlZW5jaGFuZ2UiLCJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIiwibXNmdWxsc2NyZWVuY2hhbmdlIiwiZnVsbHNjcmVlbmVycm9yIiwibW96ZnVsbHNjcmVlbmVycm9yIiwid2Via2l0ZnVsbHNjcmVlbmVycm9yIiwibXNmdWxsc2NyZWVuZXJyb3IiLCJyZWFkeXN0YXRlY2hhbmdlIiwidmlzaWJpbGl0eWNoYW5nZSIsInJlc3VtZSJdLHR0LFsiYmVmb3JlY29weSIsImJlZm9yZWN1dCIsImJlZm9yZXBhc3RlIiwiY29weSIsImN1dCIsInBhc3RlIiwiZHJhZ3N0YXJ0IiwibG9hZGVuZCIsImFuaW1hdGlvbnN0YXJ0Iiwic2VhcmNoIiwidHJhbnNpdGlvbnJ1biIsInRyYW5zaXRpb25zdGFydCIsIndlYmtpdGFuaW1hdGlvbmVuZCIsIndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbiIsIndlYmtpdGFuaW1hdGlvbnN0YXJ0Iiwid2Via2l0dHJhbnNpdGlvbmVuZCJdLFsiYWN0aXZhdGUiLCJhZnRlcnVwZGF0ZSIsImFyaWFyZXF1ZXN0IiwiYmVmb3JlYWN0aXZhdGUiLCJiZWZvcmVkZWFjdGl2YXRlIiwiYmVmb3JlZWRpdGZvY3VzIiwiYmVmb3JldXBkYXRlIiwiY2VsbGNoYW5nZSIsImNvbnRyb2xzZWxlY3QiLCJkYXRhYXZhaWxhYmxlIiwiZGF0YXNldGNoYW5nZWQiLCJkYXRhc2V0Y29tcGxldGUiLCJlcnJvcnVwZGF0ZSIsImZpbHRlcmNoYW5nZSIsImxheW91dGNvbXBsZXRlIiwibG9zZWNhcHR1cmUiLCJtb3ZlIiwibW92ZWVuZCIsIm1vdmVzdGFydCIsInByb3BlcnR5Y2hhbmdlIiwicmVzaXplZW5kIiwicmVzaXplc3RhcnQiLCJyb3dlbnRlciIsInJvd2V4aXQiLCJyb3dzZGVsZXRlIiwicm93c2luc2VydGVkIiwiY29tbWFuZCIsImNvbXBhc3NuZWVkc2NhbGlicmF0aW9uIiwiZGVhY3RpdmF0ZSIsImhlbHAiLCJtc2NvbnRlbnR6b29tIiwibXNtYW5pcHVsYXRpb25zdGF0ZWNoYW5nZWQiLCJtc2dlc3R1cmVjaGFuZ2UiLCJtc2dlc3R1cmVkb3VibGV0YXAiLCJtc2dlc3R1cmVlbmQiLCJtc2dlc3R1cmVob2xkIiwibXNnZXN0dXJlc3RhcnQiLCJtc2dlc3R1cmV0YXAiLCJtc2dvdHBvaW50ZXJjYXB0dXJlIiwibXNpbmVydGlhc3RhcnQiLCJtc2xvc3Rwb2ludGVyY2FwdHVyZSIsIm1zcG9pbnRlcmNhbmNlbCIsIm1zcG9pbnRlcmRvd24iLCJtc3BvaW50ZXJlbnRlciIsIm1zcG9pbnRlcmhvdmVyIiwibXNwb2ludGVybGVhdmUiLCJtc3BvaW50ZXJtb3ZlIiwibXNwb2ludGVyb3V0IiwibXNwb2ludGVyb3ZlciIsIm1zcG9pbnRlcnVwIiwicG9pbnRlcm91dCIsIm1zc2l0ZW1vZGVqdW1wbGlzdGl0ZW1yZW1vdmVkIiwibXN0aHVtYm5haWxjbGljayIsInN0b3AiLCJzdG9yYWdlY29tbWl0Il0pO2Z1bmN0aW9uIGR0KHQsZSxuKXtpZighbnx8MD09PW4ubGVuZ3RoKXJldHVybiBlO3ZhciBvPW4uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS50YXJnZXQ9PT10fSkpO2lmKCFvfHwwPT09by5sZW5ndGgpcmV0dXJuIGU7dmFyIGk9b1swXS5pZ25vcmVQcm9wZXJ0aWVzO3JldHVybiBlLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuLTE9PT1pLmluZGV4T2YodCl9KSl9ZnVuY3Rpb24gcHQodCxlLG4sbyl7dCYmUyh0LGR0KHQsZSxuKSxvKX1mdW5jdGlvbiBtdCh0LGUpe2lmKCghdnx8TykmJiFab25lW3Quc3ltYm9sKCJwYXRjaEV2ZW50cyIpXSl7dmFyIG89InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJTb2NrZXQsaT1lLl9fWm9uZV9pZ25vcmVfb25fcHJvcGVydGllcztpZih4KXt2YXIgYT13aW5kb3cscj0oZnVuY3Rpb24gcygpe3RyeXt2YXIgdD1oLm5hdmlnYXRvci51c2VyQWdlbnQ7aWYoLTEhPT10LmluZGV4T2YoIk1TSUUgIil8fC0xIT09dC5pbmRleE9mKCJUcmlkZW50LyIpKXJldHVybiEwfWNhdGNoKHQpe31yZXR1cm4hMX0pKCk/W3t0YXJnZXQ6YSxpZ25vcmVQcm9wZXJ0aWVzOlsiZXJyb3IiXX1dOltdO3B0KGEsY3QuY29uY2F0KFsibWVzc2FnZWVycm9yIl0pLGk/aS5jb25jYXQocik6aSxuKGEpKSxwdChEb2N1bWVudC5wcm90b3R5cGUsY3QsaSksdm9pZCAwIT09YS5TVkdFbGVtZW50JiZwdChhLlNWR0VsZW1lbnQucHJvdG90eXBlLGN0LGkpLHB0KEVsZW1lbnQucHJvdG90eXBlLGN0LGkpLHB0KEhUTUxFbGVtZW50LnByb3RvdHlwZSxjdCxpKSxwdChIVE1MTWVkaWFFbGVtZW50LnByb3RvdHlwZSxldCxpKSxwdChIVE1MRnJhbWVTZXRFbGVtZW50LnByb3RvdHlwZSx0dC5jb25jYXQob3QpLGkpLHB0KEhUTUxCb2R5RWxlbWVudC5wcm90b3R5cGUsdHQuY29uY2F0KG90KSxpKSxwdChIVE1MRnJhbWVFbGVtZW50LnByb3RvdHlwZSxudCxpKSxwdChIVE1MSUZyYW1lRWxlbWVudC5wcm90b3R5cGUsbnQsaSk7dmFyIGw9YS5IVE1MTWFycXVlZUVsZW1lbnQ7bCYmcHQobC5wcm90b3R5cGUsaXQsaSk7dmFyIGM9YS5Xb3JrZXI7YyYmcHQoYy5wcm90b3R5cGUsbHQsaSl9dmFyIGQ9ZS5YTUxIdHRwUmVxdWVzdDtkJiZwdChkLnByb3RvdHlwZSxhdCxpKTt2YXIgcD1lLlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7cCYmcHQocCYmcC5wcm90b3R5cGUsYXQsaSksInVuZGVmaW5lZCIhPXR5cGVvZiBJREJJbmRleCYmKHB0KElEQkluZGV4LnByb3RvdHlwZSxydCxpKSxwdChJREJSZXF1ZXN0LnByb3RvdHlwZSxydCxpKSxwdChJREJPcGVuREJSZXF1ZXN0LnByb3RvdHlwZSxydCxpKSxwdChJREJEYXRhYmFzZS5wcm90b3R5cGUscnQsaSkscHQoSURCVHJhbnNhY3Rpb24ucHJvdG90eXBlLHJ0LGkpLHB0KElEQkN1cnNvci5wcm90b3R5cGUscnQsaSkpLG8mJnB0KFdlYlNvY2tldC5wcm90b3R5cGUsc3QsaSl9fQovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi9mdW5jdGlvbiB1dCgpe1g9Wm9uZS5fX3N5bWJvbF9fLEs9T2JqZWN0W1goImRlZmluZVByb3BlcnR5IildPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxKPU9iamVjdFtYKCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiKV09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixRPU9iamVjdC5jcmVhdGUsJD1YKCJ1bmNvbmZpZ3VyYWJsZXMiKSxPYmplY3QuZGVmaW5lUHJvcGVydHk9ZnVuY3Rpb24odCxlLG4pe2lmKGd0KHQsZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFzc2lnbiB0byByZWFkIG9ubHkgcHJvcGVydHkgJyIrZSsiJyBvZiAiK3QpO3ZhciBvPW4uY29uZmlndXJhYmxlO3JldHVybiJwcm90b3R5cGUiIT09ZSYmKG49aHQodCxlLG4pKSxidCh0LGUsbixvKX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbixlW25dKX0pKSx0fSxPYmplY3QuY3JlYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIm9iamVjdCIhPXR5cGVvZiBlfHxPYmplY3QuaXNGcm96ZW4oZSl8fE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKG4pe2Vbbl09aHQodCxuLGVbbl0pfSkpLFEodCxlKX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcj1mdW5jdGlvbih0LGUpe3ZhciBuPUoodCxlKTtyZXR1cm4gbiYmZ3QodCxlKSYmKG4uY29uZmlndXJhYmxlPSExKSxufX1mdW5jdGlvbiBmdCh0LGUsbil7dmFyIG89bi5jb25maWd1cmFibGU7cmV0dXJuIGJ0KHQsZSxuPWh0KHQsZSxuKSxvKX1mdW5jdGlvbiBndCh0LGUpe3JldHVybiB0JiZ0WyRdJiZ0WyRdW2VdfWZ1bmN0aW9uIGh0KHQsZSxuKXtyZXR1cm4gT2JqZWN0LmlzRnJvemVuKG4pfHwobi5jb25maWd1cmFibGU9ITApLG4uY29uZmlndXJhYmxlfHwodFskXXx8T2JqZWN0LmlzRnJvemVuKHQpfHxLKHQsJCx7d3JpdGFibGU6ITAsdmFsdWU6e319KSx0WyRdJiYodFskXVtlXT0hMCkpLG59ZnVuY3Rpb24gYnQodCxlLG4sbyl7dHJ5e3JldHVybiBLKHQsZSxuKX1jYXRjaChyKXtpZighbi5jb25maWd1cmFibGUpdGhyb3cgcjt2b2lkIDA9PT1vP2RlbGV0ZSBuLmNvbmZpZ3VyYWJsZTpuLmNvbmZpZ3VyYWJsZT1vO3RyeXtyZXR1cm4gSyh0LGUsbil9Y2F0Y2gobyl7dmFyIGk9ITE7aWYoImNyZWF0ZWRDYWxsYmFjayIhPT1lJiYiYXR0YWNoZWRDYWxsYmFjayIhPT1lJiYiZGV0YWNoZWRDYWxsYmFjayIhPT1lJiYiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIiE9PWV8fChpPSEwKSwhaSl0aHJvdyBvO3ZhciBhPW51bGw7dHJ5e2E9SlNPTi5zdHJpbmdpZnkobil9Y2F0Y2godCl7YT1uLnRvU3RyaW5nKCl9Y29uc29sZS5sb2coIkF0dGVtcHRpbmcgdG8gY29uZmlndXJlICciK2UrIicgd2l0aCBkZXNjcmlwdG9yICciK2ErIicgb24gb2JqZWN0ICciK3QrIicgYW5kIGdvdCBlcnJvciwgZ2l2aW5nIHVwOiAiK28pfX19Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqL2Z1bmN0aW9uIHl0KHQsZSl7dmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCksbz1uLmV2ZW50TmFtZXMsaT1uLmdsb2JhbFNvdXJjZXMsYT1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLHI9bi5UUlVFX1NUUixzPW4uRkFMU0VfU1RSLGw9bi5aT05FX1NZTUJPTF9QUkVGSVgsYz0iQXBwbGljYXRpb25DYWNoZSxFdmVudFNvdXJjZSxGaWxlUmVhZGVyLElucHV0TWV0aG9kQ29udGV4dCxNZWRpYUNvbnRyb2xsZXIsTWVzc2FnZVBvcnQsTm9kZSxQZXJmb3JtYW5jZSxTVkdFbGVtZW50SW5zdGFuY2UsU2hhcmVkV29ya2VyLFRleHRUcmFjayxUZXh0VHJhY2tDdWUsVGV4dFRyYWNrTGlzdCxXZWJLaXROYW1lZEZsb3csV2luZG93LFdvcmtlcixXb3JrZXJHbG9iYWxTY29wZSxYTUxIdHRwUmVxdWVzdCxYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LFhNTEh0dHBSZXF1ZXN0VXBsb2FkLElEQlJlcXVlc3QsSURCT3BlbkRCUmVxdWVzdCxJREJEYXRhYmFzZSxJREJUcmFuc2FjdGlvbixJREJDdXJzb3IsREJJbmRleCxXZWJTb2NrZXQiLnNwbGl0KCIsIiksZD1bXSxwPXQud3RmLG09IkFuY2hvcixBcmVhLEF1ZGlvLEJSLEJhc2UsQmFzZUZvbnQsQm9keSxCdXR0b24sQ2FudmFzLENvbnRlbnQsRExpc3QsRGlyZWN0b3J5LERpdixFbWJlZCxGaWVsZFNldCxGb250LEZvcm0sRnJhbWUsRnJhbWVTZXQsSFIsSGVhZCxIZWFkaW5nLEh0bWwsSUZyYW1lLEltYWdlLElucHV0LEtleWdlbixMSSxMYWJlbCxMZWdlbmQsTGluayxNYXAsTWFycXVlZSxNZWRpYSxNZW51LE1ldGEsTWV0ZXIsTW9kLE9MaXN0LE9iamVjdCxPcHRHcm91cCxPcHRpb24sT3V0cHV0LFBhcmFncmFwaCxQcmUsUHJvZ3Jlc3MsUXVvdGUsU2NyaXB0LFNlbGVjdCxTb3VyY2UsU3BhbixTdHlsZSxUYWJsZUNhcHRpb24sVGFibGVDZWxsLFRhYmxlQ29sLFRhYmxlLFRhYmxlUm93LFRhYmxlU2VjdGlvbixUZXh0QXJlYSxUaXRsZSxUcmFjayxVTGlzdCxVbmtub3duLFZpZGVvIi5zcGxpdCgiLCIpO3A/ZD1tLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIkhUTUwiK3QrIkVsZW1lbnQifSkpLmNvbmNhdChjKTp0LkV2ZW50VGFyZ2V0P2QucHVzaCgiRXZlbnRUYXJnZXQiKTpkPWM7Zm9yKHZhciB1PXQuX19ab25lX2Rpc2FibGVfSUVfY2hlY2t8fCExLGY9dC5fX1pvbmVfZW5hYmxlX2Nyb3NzX2NvbnRleHRfY2hlY2t8fCExLGc9ZS5pc0lFT3JFZGdlKCksaD0iW29iamVjdCBGdW5jdGlvbldyYXBwZXJdIixiPSJmdW5jdGlvbiBfX0JST1dTRVJUT09MU19DT05TT0xFX1NBRkVGVU5DKCkgeyBbbmF0aXZlIGNvZGVdIH0iLHk9e01TUG9pbnRlckNhbmNlbDoicG9pbnRlcmNhbmNlbCIsTVNQb2ludGVyRG93bjoicG9pbnRlcmRvd24iLE1TUG9pbnRlckVudGVyOiJwb2ludGVyZW50ZXIiLE1TUG9pbnRlckhvdmVyOiJwb2ludGVyaG92ZXIiLE1TUG9pbnRlckxlYXZlOiJwb2ludGVybGVhdmUiLE1TUG9pbnRlck1vdmU6InBvaW50ZXJtb3ZlIixNU1BvaW50ZXJPdXQ6InBvaW50ZXJvdXQiLE1TUG9pbnRlck92ZXI6InBvaW50ZXJvdmVyIixNU1BvaW50ZXJVcDoicG9pbnRlcnVwIn0sXz0wO188by5sZW5ndGg7XysrKXt2YXIgQz1sKygoUD1vW19dKStzKSxNPWwrKFArcik7YVtQXT17fSxhW1BdW3NdPUMsYVtQXVtyXT1NfWZvcihfPTA7XzxtLmxlbmd0aDtfKyspZm9yKHZhciB2PW1bX10seD1pW3ZdPXt9LE89MDtPPG8ubGVuZ3RoO08rKyl7dmFyIFA7eFtQPW9bT11dPXYrIi5hZGRFdmVudExpc3RlbmVyOiIrUH12YXIgdz1bXTtmb3IoXz0wO188ZC5sZW5ndGg7XysrKXt2YXIgaz10W2RbX11dO3cucHVzaChrJiZrLnByb3RvdHlwZSl9cmV0dXJuIGUucGF0Y2hFdmVudFRhcmdldCh0LHcse3ZoOmZ1bmN0aW9uKHQsZSxuLG8pe2lmKCF1JiZnKXtpZihmKXRyeXt2YXIgaTtpZigoaT1lLnRvU3RyaW5nKCkpPT09aHx8aT09YilyZXR1cm4gdC5hcHBseShuLG8pLCExfWNhdGNoKGUpe3JldHVybiB0LmFwcGx5KG4sbyksITF9ZWxzZSBpZigoaT1lLnRvU3RyaW5nKCkpPT09aHx8aT09YilyZXR1cm4gdC5hcHBseShuLG8pLCExfWVsc2UgaWYoZil0cnl7ZS50b1N0cmluZygpfWNhdGNoKGUpe3JldHVybiB0LmFwcGx5KG4sbyksITF9cmV0dXJuITB9LHRyYW5zZmVyRXZlbnROYW1lOmZ1bmN0aW9uKHQpe3JldHVybiB5W3RdfHx0fX0pLFpvbmVbZS5zeW1ib2woInBhdGNoRXZlbnRUYXJnZXQiKV09ISF0LkV2ZW50VGFyZ2V0LCEwfQovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi8KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovCmZ1bmN0aW9uIF90KHQsZSl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCk7aWYoKCFuLmlzTm9kZXx8bi5pc01peCkmJiEoZnVuY3Rpb24gbyh0LGUpe3ZhciBuPXQuZ2V0R2xvYmFsT2JqZWN0cygpO2lmKChuLmlzQnJvd3Nlcnx8bi5pc01peCkmJiF0Lk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcihIVE1MRWxlbWVudC5wcm90b3R5cGUsIm9uY2xpY2siKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBFbGVtZW50KXt2YXIgbz10Lk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcihFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIpO2lmKG8mJiFvLmNvbmZpZ3VyYWJsZSlyZXR1cm4hMTtpZihvKXt0Lk9iamVjdERlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSk7dmFyIGk9ISFkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5vbmNsaWNrO3JldHVybiB0Lk9iamVjdERlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIixvKSxpfX12YXIgYT1lLlhNTEh0dHBSZXF1ZXN0O2lmKCFhKXJldHVybiExO3ZhciByPSJvbnJlYWR5c3RhdGVjaGFuZ2UiLHM9YS5wcm90b3R5cGUsbD10Lk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLHIpO2lmKGwpcmV0dXJuIHQuT2JqZWN0RGVmaW5lUHJvcGVydHkocyxyLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KSxpPSEhKGQ9bmV3IGEpLm9ucmVhZHlzdGF0ZWNoYW5nZSx0Lk9iamVjdERlZmluZVByb3BlcnR5KHMscixsfHx7fSksaTt2YXIgYz10LnN5bWJvbCgiZmFrZSIpO3QuT2JqZWN0RGVmaW5lUHJvcGVydHkocyxyLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tjXX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXNbY109dH19KTt2YXIgZCxwPWZ1bmN0aW9uKCl7fTtyZXR1cm4oZD1uZXcgYSkub25yZWFkeXN0YXRlY2hhbmdlPXAsaT1kW2NdPT09cCxkLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGl9KSh0LGUpKXt2YXIgaT0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYlNvY2tldDsoZnVuY3Rpb24gYSh0KXtmb3IodmFyIGU9dC5nZXRHbG9iYWxPYmplY3RzKCkuZXZlbnROYW1lcyxuPXQuc3ltYm9sKCJ1bmJvdW5kIiksbz1mdW5jdGlvbihvKXt2YXIgaT1lW29dLGE9Im9uIitpO3NlbGYuYWRkRXZlbnRMaXN0ZW5lcihpLChmdW5jdGlvbihlKXt2YXIgbyxpLHI9ZS50YXJnZXQ7Zm9yKGk9cj9yLmNvbnN0cnVjdG9yLm5hbWUrIi4iK2E6InVua25vd24uIithO3I7KXJbYV0mJiFyW2FdW25dJiYoKG89dC53cmFwV2l0aEN1cnJlbnRab25lKHJbYV0saSkpW25dPXJbYV0sclthXT1vKSxyPXIucGFyZW50RWxlbWVudH0pLCEwKX0saT0wO2k8ZS5sZW5ndGg7aSsrKW8oaSl9Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqLykodCksdC5wYXRjaENsYXNzKCJYTUxIdHRwUmVxdWVzdCIpLGkmJihmdW5jdGlvbiByKHQsZSl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCksbz1uLkFERF9FVkVOVF9MSVNURU5FUl9TVFIsaT1uLlJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFIsYT1lLldlYlNvY2tldDtlLkV2ZW50VGFyZ2V0fHx0LnBhdGNoRXZlbnRUYXJnZXQoZSxbYS5wcm90b3R5cGVdKSxlLldlYlNvY2tldD1mdW5jdGlvbihlLG4pe3ZhciByLHMsbD1hcmd1bWVudHMubGVuZ3RoPjE/bmV3IGEoZSxuKTpuZXcgYShlKSxjPXQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIm9ubWVzc2FnZSIpO3JldHVybiBjJiYhMT09PWMuY29uZmlndXJhYmxlPyhyPXQuT2JqZWN0Q3JlYXRlKGwpLHM9bCxbbyxpLCJzZW5kIiwiY2xvc2UiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtyW2VdPWZ1bmN0aW9uKCl7dmFyIG49dC5BcnJheVNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZihlPT09b3x8ZT09PWkpe3ZhciBhPW4ubGVuZ3RoPjA/blswXTp2b2lkIDA7aWYoYSl7dmFyIHM9Wm9uZS5fX3N5bWJvbF9fKCJPTl9QUk9QRVJUWSIrYSk7bFtzXT1yW3NdfX1yZXR1cm4gbFtlXS5hcHBseShsLG4pfX0pKSk6cj1sLHQucGF0Y2hPblByb3BlcnRpZXMocixbImNsb3NlIiwiZXJyb3IiLCJtZXNzYWdlIiwib3BlbiJdLHMpLHJ9O3ZhciByPWUuV2ViU29ja2V0O2Zvcih2YXIgcyBpbiBhKXJbc109YVtzXX0pKHQsZSksWm9uZVt0LnN5bWJvbCgicGF0Y2hFdmVudHMiKV09ITB9fVpvbmUuX19sb2FkX3BhdGNoKCJ1dGlsIiwoZnVuY3Rpb24obixzLGwpe2wucGF0Y2hPblByb3BlcnRpZXM9UyxsLnBhdGNoTWV0aG9kPVIsbC5iaW5kQXJndW1lbnRzPV8sbC5wYXRjaE1hY3JvVGFzaz1BO3ZhciB1PXMuX19zeW1ib2xfXygiQkxBQ0tfTElTVEVEX0VWRU5UUyIpLGY9cy5fX3N5bWJvbF9fKCJVTlBBVENIRURfRVZFTlRTIik7bltmXSYmKG5bdV09bltmXSksblt1XSYmKHNbdV09c1tmXT1uW3VdKSxsLnBhdGNoRXZlbnRQcm90b3R5cGU9cSxsLnBhdGNoRXZlbnRUYXJnZXQ9VyxsLmlzSUVPckVkZ2U9SSxsLk9iamVjdERlZmluZVByb3BlcnR5PWUsbC5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I9dCxsLk9iamVjdENyZWF0ZT1vLGwuQXJyYXlTbGljZT1pLGwucGF0Y2hDbGFzcz1FLGwud3JhcFdpdGhDdXJyZW50Wm9uZT1tLGwuZmlsdGVyUHJvcGVydGllcz1kdCxsLmF0dGFjaE9yaWdpblRvUGF0Y2hlZD1ULGwuX3JlZGVmaW5lUHJvcGVydHk9T2JqZWN0LmRlZmluZVByb3BlcnR5LGwucGF0Y2hDYWxsYmFja3M9WixsLmdldEdsb2JhbE9iamVjdHM9ZnVuY3Rpb24oKXtyZXR1cm57Z2xvYmFsU291cmNlczpWLHpvbmVTeW1ib2xFdmVudE5hbWVzOkIsZXZlbnROYW1lczpjdCxpc0Jyb3dzZXI6eCxpc01peDpPLGlzTm9kZTp2LFRSVUVfU1RSOmMsRkFMU0VfU1RSOmQsWk9ORV9TWU1CT0xfUFJFRklYOnAsQUREX0VWRU5UX0xJU1RFTkVSX1NUUjphLFJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFI6cn19fSkpLAovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi8KKGZ1bmN0aW9uKHQpe3ZhciBlPXQuX19ab25lX3N5bWJvbF9wcmVmaXh8fCJfX3pvbmVfc3ltYm9sX18iO3RbKGZ1bmN0aW9uIG4odCl7cmV0dXJuIGUrdH0pKCJsZWdhY3lQYXRjaCIpXT1mdW5jdGlvbigpe3ZhciBlPXQuWm9uZTtlLl9fbG9hZF9wYXRjaCgiZGVmaW5lUHJvcGVydHkiLChmdW5jdGlvbih0LGUsbil7bi5fcmVkZWZpbmVQcm9wZXJ0eT1mdCx1dCgpfSkpLGUuX19sb2FkX3BhdGNoKCJyZWdpc3RlckVsZW1lbnQiLChmdW5jdGlvbih0LGUsbil7IShmdW5jdGlvbiBvKHQsZSl7dmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCk7KG4uaXNCcm93c2VyfHxuLmlzTWl4KSYmInJlZ2lzdGVyRWxlbWVudCJpbiB0LmRvY3VtZW50JiZlLnBhdGNoQ2FsbGJhY2tzKGUsZG9jdW1lbnQsIkRvY3VtZW50IiwicmVnaXN0ZXJFbGVtZW50IixbImNyZWF0ZWRDYWxsYmFjayIsImF0dGFjaGVkQ2FsbGJhY2siLCJkZXRhY2hlZENhbGxiYWNrIiwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIl0pfSkodCxuKX0pKSxlLl9fbG9hZF9wYXRjaCgiRXZlbnRUYXJnZXRMZWdhY3kiLChmdW5jdGlvbih0LGUsbil7eXQodCxuKSxfdChuLHQpfSkpfX0pKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp2b2lkIDAhPT1Rdj9RdjoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp7fSk7Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqLwp2YXIgQ3Q9Zigiem9uZVRhc2siKTtmdW5jdGlvbiBNdCh0LGUsbixvKXt2YXIgaT1udWxsLGE9bnVsbDtuKz1vO3ZhciByPXt9O2Z1bmN0aW9uIHMoZSl7dmFyIG49ZS5kYXRhO3JldHVybiBuLmFyZ3NbMF09ZnVuY3Rpb24oKXtyZXR1cm4gZS5pbnZva2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxuLmhhbmRsZUlkPWkuYXBwbHkodCxuLmFyZ3MpLGV9ZnVuY3Rpb24gbChlKXtyZXR1cm4gYS5jYWxsKHQsZS5kYXRhLmhhbmRsZUlkKX1pPVIodCxlKz1vLChmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYVswXSl7dmFyIGM9e2lzUGVyaW9kaWM6IkludGVydmFsIj09PW8sZGVsYXk6IlRpbWVvdXQiPT09b3x8IkludGVydmFsIj09PW8/YVsxXXx8MDp2b2lkIDAsYXJnczphfSxkPWFbMF07YVswXT1mdW5jdGlvbiB0KCl7dHJ5e3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e2MuaXNQZXJpb2RpY3x8KCJudW1iZXIiPT10eXBlb2YgYy5oYW5kbGVJZD9kZWxldGUgcltjLmhhbmRsZUlkXTpjLmhhbmRsZUlkJiYoYy5oYW5kbGVJZFtDdF09bnVsbCkpfX07dmFyIHA9dShlLGFbMF0sYyxzLGwpO2lmKCFwKXJldHVybiBwO3ZhciBtPXAuZGF0YS5oYW5kbGVJZDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIG0/clttXT1wOm0mJihtW0N0XT1wKSxtJiZtLnJlZiYmbS51bnJlZiYmImZ1bmN0aW9uIj09dHlwZW9mIG0ucmVmJiYiZnVuY3Rpb24iPT10eXBlb2YgbS51bnJlZiYmKHAucmVmPW0ucmVmLmJpbmQobSkscC51bnJlZj1tLnVucmVmLmJpbmQobSkpLCJudW1iZXIiPT10eXBlb2YgbXx8bT9tOnB9cmV0dXJuIG4uYXBwbHkodCxhKX19KSksYT1SKHQsbiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKG4sbyl7dmFyIGksYT1vWzBdOyJudW1iZXIiPT10eXBlb2YgYT9pPXJbYV06KGk9YSYmYVtDdF0pfHwoaT1hKSxpJiYic3RyaW5nIj09dHlwZW9mIGkudHlwZT8ibm90U2NoZWR1bGVkIiE9PWkuc3RhdGUmJihpLmNhbmNlbEZuJiZpLmRhdGEuaXNQZXJpb2RpY3x8MD09PWkucnVuQ291bnQpJiYoIm51bWJlciI9PXR5cGVvZiBhP2RlbGV0ZSByW2FdOmEmJihhW0N0XT1udWxsKSxpLnpvbmUuY2FuY2VsVGFzayhpKSk6ZS5hcHBseSh0LG8pfX0pKX0KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovCi8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqLwpmdW5jdGlvbiB2dCh0LGUpe2lmKCFab25lW2Uuc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildKXtmb3IodmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCksbz1uLmV2ZW50TmFtZXMsaT1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLGE9bi5UUlVFX1NUUixyPW4uRkFMU0VfU1RSLHM9bi5aT05FX1NZTUJPTF9QUkVGSVgsbD0wO2w8by5sZW5ndGg7bCsrKXt2YXIgYz1vW2xdLGQ9cysoYytyKSxwPXMrKGMrYSk7aVtjXT17fSxpW2NdW3JdPWQsaVtjXVthXT1wfXZhciBtPXQuRXZlbnRUYXJnZXQ7aWYobSYmbS5wcm90b3R5cGUpcmV0dXJuIGUucGF0Y2hFdmVudFRhcmdldCh0LFttJiZtLnByb3RvdHlwZV0pLCEwfX0KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovClpvbmUuX19sb2FkX3BhdGNoKCJsZWdhY3kiLChmdW5jdGlvbih0KXt2YXIgZT10W1pvbmUuX19zeW1ib2xfXygibGVnYWN5UGF0Y2giKV07ZSYmZSgpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJxdWV1ZU1pY3JvdGFzayIsKGZ1bmN0aW9uKHQsZSxuKXtuLnBhdGNoTWV0aG9kKHQsInF1ZXVlTWljcm90YXNrIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7ZS5jdXJyZW50LnNjaGVkdWxlTWljcm9UYXNrKCJxdWV1ZU1pY3JvdGFzayIsblswXSl9fSkpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJ0aW1lcnMiLChmdW5jdGlvbih0KXt2YXIgZT0ic2V0IixuPSJjbGVhciI7TXQodCxlLG4sIlRpbWVvdXQiKSxNdCh0LGUsbiwiSW50ZXJ2YWwiKSxNdCh0LGUsbiwiSW1tZWRpYXRlIil9KSksWm9uZS5fX2xvYWRfcGF0Y2goInJlcXVlc3RBbmltYXRpb25GcmFtZSIsKGZ1bmN0aW9uKHQpe010KHQsInJlcXVlc3QiLCJjYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLE10KHQsIm1velJlcXVlc3QiLCJtb3pDYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLE10KHQsIndlYmtpdFJlcXVlc3QiLCJ3ZWJraXRDYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJibG9ja2luZyIsKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPVsiYWxlcnQiLCJwcm9tcHQiLCJjb25maXJtIl0sbz0wO288bi5sZW5ndGg7bysrKVIodCxuW29dLChmdW5jdGlvbihuLG8saSl7cmV0dXJuIGZ1bmN0aW9uKG8sYSl7cmV0dXJuIGUuY3VycmVudC5ydW4obix0LGEsaSl9fSkpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJFdmVudFRhcmdldCIsKGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24gbyh0LGUpe2UucGF0Y2hFdmVudFByb3RvdHlwZSh0LGUpfSkodCxuKSx2dCh0LG4pO3ZhciBpPXQuWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtpJiZpLnByb3RvdHlwZSYmbi5wYXRjaEV2ZW50VGFyZ2V0KHQsW2kucHJvdG90eXBlXSl9KSksWm9uZS5fX2xvYWRfcGF0Y2goIk11dGF0aW9uT2JzZXJ2ZXIiLChmdW5jdGlvbih0LGUsbil7RSgiTXV0YXRpb25PYnNlcnZlciIpLEUoIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLChmdW5jdGlvbih0LGUsbil7RSgiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiRmlsZVJlYWRlciIsKGZ1bmN0aW9uKHQsZSxuKXtFKCJGaWxlUmVhZGVyIil9KSksWm9uZS5fX2xvYWRfcGF0Y2goIm9uX3Byb3BlcnR5IiwoZnVuY3Rpb24odCxlLG4pe210KG4sdCl9KSksWm9uZS5fX2xvYWRfcGF0Y2goImN1c3RvbUVsZW1lbnRzIiwoZnVuY3Rpb24odCxlLG4peyEoZnVuY3Rpb24gbyh0LGUpe3ZhciBuPWUuZ2V0R2xvYmFsT2JqZWN0cygpOyhuLmlzQnJvd3Nlcnx8bi5pc01peCkmJnQuY3VzdG9tRWxlbWVudHMmJiJjdXN0b21FbGVtZW50cyJpbiB0JiZlLnBhdGNoQ2FsbGJhY2tzKGUsdC5jdXN0b21FbGVtZW50cywiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiLFsiY29ubmVjdGVkQ2FsbGJhY2siLCJkaXNjb25uZWN0ZWRDYWxsYmFjayIsImFkb3B0ZWRDYWxsYmFjayIsImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayJdKX0pKHQsbil9KSksWm9uZS5fX2xvYWRfcGF0Y2goIlhIUiIsKGZ1bmN0aW9uKHQsZSl7IShmdW5jdGlvbiBuKHQpe3ZhciBuPXQuWE1MSHR0cFJlcXVlc3Q7aWYobil7dmFyIHA9bi5wcm90b3R5cGUsbT1wW3NdLGc9cFtsXTtpZighbSl7dmFyIGg9dC5YTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0O2lmKGgpe3ZhciBiPWgucHJvdG90eXBlO209YltzXSxnPWJbbF19fXZhciB5PSJyZWFkeXN0YXRlY2hhbmdlIixfPSJzY2hlZHVsZWQiLEM9UihwLCJvcGVuIiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtpXT0wPT1lWzJdLHRbY109ZVsxXSxDLmFwcGx5KHQsZSl9fSkpLE09ZigiZmV0Y2hUYXNrQWJvcnRpbmciKSx2PWYoImZldGNoVGFza1NjaGVkdWxpbmciKSx4PVIocCwic2VuZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7aWYoITA9PT1lLmN1cnJlbnRbdl0pcmV0dXJuIHguYXBwbHkodCxuKTtpZih0W2ldKXJldHVybiB4LmFwcGx5KHQsbik7dmFyIG89e3RhcmdldDp0LHVybDp0W2NdLGlzUGVyaW9kaWM6ITEsYXJnczpuLGFib3J0ZWQ6ITF9LGE9dSgiWE1MSHR0cFJlcXVlc3Quc2VuZCIsdyxvLFAsayk7dCYmITA9PT10W2RdJiYhby5hYm9ydGVkJiZhLnN0YXRlPT09XyYmYS5pbnZva2UoKX19KSksTz1SKHAsImFib3J0IiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxuKXt2YXIgaT0oZnVuY3Rpb24gYSh0KXtyZXR1cm4gdFtvXX0pKHQpO2lmKGkmJiJzdHJpbmciPT10eXBlb2YgaS50eXBlKXtpZihudWxsPT1pLmNhbmNlbEZufHxpLmRhdGEmJmkuZGF0YS5hYm9ydGVkKXJldHVybjtpLnpvbmUuY2FuY2VsVGFzayhpKX1lbHNlIGlmKCEwPT09ZS5jdXJyZW50W01dKXJldHVybiBPLmFwcGx5KHQsbil9fSkpfWZ1bmN0aW9uIFAodCl7dmFyIG49dC5kYXRhLGk9bi50YXJnZXQ7aVtyXT0hMSxpW2RdPSExO3ZhciBjPWlbYV07bXx8KG09aVtzXSxnPWlbbF0pLGMmJmcuY2FsbChpLHksYyk7dmFyIHA9aVthXT1mdW5jdGlvbigpe2lmKGkucmVhZHlTdGF0ZT09PWkuRE9ORSlpZighbi5hYm9ydGVkJiZpW3JdJiZ0LnN0YXRlPT09Xyl7dmFyIG89aVtlLl9fc3ltYm9sX18oImxvYWRmYWxzZSIpXTtpZigwIT09aS5zdGF0dXMmJm8mJm8ubGVuZ3RoPjApe3ZhciBhPXQuaW52b2tlO3QuaW52b2tlPWZ1bmN0aW9uKCl7Zm9yKHZhciBvPWlbZS5fX3N5bWJvbF9fKCJsb2FkZmFsc2UiKV0scj0wO3I8by5sZW5ndGg7cisrKW9bcl09PT10JiZvLnNwbGljZShyLDEpO24uYWJvcnRlZHx8dC5zdGF0ZSE9PV98fGEuY2FsbCh0KX0sby5wdXNoKHQpfWVsc2UgdC5pbnZva2UoKX1lbHNlIG4uYWJvcnRlZHx8ITEhPT1pW3JdfHwoaVtkXT0hMCl9O3JldHVybiBtLmNhbGwoaSx5LHApLGlbb118fChpW29dPXQpLHguYXBwbHkoaSxuLmFyZ3MpLGlbcl09ITAsdH1mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIGsodCl7dmFyIGU9dC5kYXRhO3JldHVybiBlLmFib3J0ZWQ9ITAsTy5hcHBseShlLnRhcmdldCxlLmFyZ3MpfX0pKHQpO3ZhciBvPWYoInhoclRhc2siKSxpPWYoInhoclN5bmMiKSxhPWYoInhockxpc3RlbmVyIikscj1mKCJ4aHJTY2hlZHVsZWQiKSxjPWYoInhoclVSTCIpLGQ9ZigieGhyRXJyb3JCZWZvcmVTY2hlZHVsZWQiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiZ2VvbG9jYXRpb24iLChmdW5jdGlvbihlKXtlLm5hdmlnYXRvciYmZS5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24mJihmdW5jdGlvbiBuKGUsbyl7Zm9yKHZhciBpPWUuY29uc3RydWN0b3IubmFtZSxhPWZ1bmN0aW9uKG4pe3ZhciBhPW9bbl0scj1lW2FdO2lmKHIpe2lmKCFDKHQoZSxhKSkpcmV0dXJuImNvbnRpbnVlIjtlW2FdPShmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KHRoaXMsXyhhcmd1bWVudHMsaSsiLiIrYSkpfTtyZXR1cm4gVChlLHQpLGV9KShyKX19LHI9MDtyPG8ubGVuZ3RoO3IrKylhKHIpfSkoZS5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24sWyJnZXRDdXJyZW50UG9zaXRpb24iLCJ3YXRjaFBvc2l0aW9uIl0pfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJQcm9taXNlUmVqZWN0aW9uRXZlbnQiLChmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe1kodCxlKS5mb3JFYWNoKChmdW5jdGlvbihvKXt2YXIgaT10LlByb21pc2VSZWplY3Rpb25FdmVudDtpZihpKXt2YXIgYT1uZXcgaShlLHtwcm9taXNlOm4ucHJvbWlzZSxyZWFzb246bi5yZWplY3Rpb259KTtvLmludm9rZShhKX19KSl9fXQuUHJvbWlzZVJlamVjdGlvbkV2ZW50JiYoZVtmKCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpXT1uKCJ1bmhhbmRsZWRyZWplY3Rpb24iKSxlW2YoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIildPW4oInJlamVjdGlvbmhhbmRsZWQiKSl9KSl9KSgpOwovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwpjbGFzcyB0eHt9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBleD0iKiI7ZnVuY3Rpb24gbngodCxlKXtyZXR1cm57dHlwZTo3LG5hbWU6dCxkZWZpbml0aW9uczplLG9wdGlvbnM6e319fWZ1bmN0aW9uIG94KHQsZT1udWxsKXtyZXR1cm57dHlwZTo0LHN0eWxlczplLHRpbWluZ3M6dH19ZnVuY3Rpb24gaXgodCxlPW51bGwpe3JldHVybnt0eXBlOjIsc3RlcHM6dCxvcHRpb25zOmV9fWZ1bmN0aW9uIGF4KHQpe3JldHVybnt0eXBlOjYsc3R5bGVzOnQsb2Zmc2V0Om51bGx9fWZ1bmN0aW9uIHJ4KHQsZSxuKXtyZXR1cm57dHlwZTowLG5hbWU6dCxzdHlsZXM6ZSxvcHRpb25zOm59fWZ1bmN0aW9uIHN4KHQpe3JldHVybnt0eXBlOjUsc3RlcHM6dH19ZnVuY3Rpb24gbHgodCxlLG49bnVsbCl7cmV0dXJue3R5cGU6MSxleHByOnQsYW5pbWF0aW9uOmUsb3B0aW9uczpufX1mdW5jdGlvbiBjeCh0PW51bGwpe3JldHVybnt0eXBlOjksb3B0aW9uczp0fX1mdW5jdGlvbiBkeCh0LGUsbj1udWxsKXtyZXR1cm57dHlwZToxMSxzZWxlY3Rvcjp0LGFuaW1hdGlvbjplLG9wdGlvbnM6bn19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHB4KHQpe1Byb21pc2UucmVzb2x2ZShudWxsKS50aGVuKHQpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBteHtjb25zdHJ1Y3Rvcih0PTAsZT0wKXt0aGlzLl9vbkRvbmVGbnM9W10sdGhpcy5fb25TdGFydEZucz1bXSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10sdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fcG9zaXRpb249MCx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMudG90YWxUaW1lPXQrZX1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRvbmVGbnM9W10pfW9uU3RhcnQodCl7dGhpcy5fb25TdGFydEZucy5wdXNoKHQpfW9uRG9uZSh0KXt0aGlzLl9vbkRvbmVGbnMucHVzaCh0KX1vbkRlc3Ryb3kodCl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2godCl9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfWluaXQoKXt9cGxheSgpe3RoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fb25TdGFydCgpLHRoaXMudHJpZ2dlck1pY3JvdGFzaygpKSx0aGlzLl9zdGFydGVkPSEwfXRyaWdnZXJNaWNyb3Rhc2soKXtweCgoKCk9PnRoaXMuX29uRmluaXNoKCkpKX1fb25TdGFydCgpe3RoaXMuX29uU3RhcnRGbnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5fb25TdGFydEZucz1bXX1wYXVzZSgpe31yZXN0YXJ0KCl7fWZpbmlzaCgpe3RoaXMuX29uRmluaXNoKCl9ZGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLmhhc1N0YXJ0ZWQoKXx8dGhpcy5fb25TdGFydCgpLHRoaXMuZmluaXNoKCksdGhpcy5fb25EZXN0cm95Rm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9cmVzZXQoKXt0aGlzLl9zdGFydGVkPSExfXNldFBvc2l0aW9uKHQpe3RoaXMuX3Bvc2l0aW9uPXRoaXMudG90YWxUaW1lP3QqdGhpcy50b3RhbFRpbWU6MX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLnRvdGFsVGltZT90aGlzLl9wb3NpdGlvbi90aGlzLnRvdGFsVGltZToxfXRyaWdnZXJDYWxsYmFjayh0KXtjb25zdCBlPSJzdGFydCI9PXQ/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7ZS5mb3JFYWNoKCh0PT50KCkpKSxlLmxlbmd0aD0wfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgdXh7Y29uc3RydWN0b3IodCl7dGhpcy5fb25Eb25lRm5zPVtdLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fb25EZXN0cm95Rm5zPVtdLHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy50b3RhbFRpbWU9MCx0aGlzLnBsYXllcnM9dDtsZXQgZT0wLG49MCxvPTA7Y29uc3QgaT10aGlzLnBsYXllcnMubGVuZ3RoOzA9PWk/cHgoKCgpPT50aGlzLl9vbkZpbmlzaCgpKSk6dGhpcy5wbGF5ZXJzLmZvckVhY2goKHQ9Pnt0Lm9uRG9uZSgoKCk9PnsrK2U9PWkmJnRoaXMuX29uRmluaXNoKCl9KSksdC5vbkRlc3Ryb3koKCgpPT57KytuPT1pJiZ0aGlzLl9vbkRlc3Ryb3koKX0pKSx0Lm9uU3RhcnQoKCgpPT57KytvPT1pJiZ0aGlzLl9vblN0YXJ0KCl9KSl9KSksdGhpcy50b3RhbFRpbWU9dGhpcy5wbGF5ZXJzLnJlZHVjZSgoKHQsZSk9Pk1hdGgubWF4KHQsZS50b3RhbFRpbWUpKSwwKX1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRvbmVGbnM9W10pfWluaXQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaCgodD0+dC5pbml0KCkpKX1vblN0YXJ0KHQpe3RoaXMuX29uU3RhcnRGbnMucHVzaCh0KX1fb25TdGFydCgpe3RoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uU3RhcnRGbnM9W10pfW9uRG9uZSh0KXt0aGlzLl9vbkRvbmVGbnMucHVzaCh0KX1vbkRlc3Ryb3kodCl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2godCl9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfXBsYXkoKXt0aGlzLnBhcmVudFBsYXllcnx8dGhpcy5pbml0KCksdGhpcy5fb25TdGFydCgpLHRoaXMucGxheWVycy5mb3JFYWNoKCh0PT50LnBsYXkoKSkpfXBhdXNlKCl7dGhpcy5wbGF5ZXJzLmZvckVhY2goKHQ9PnQucGF1c2UoKSkpfXJlc3RhcnQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaCgodD0+dC5yZXN0YXJ0KCkpKX1maW5pc2goKXt0aGlzLl9vbkZpbmlzaCgpLHRoaXMucGxheWVycy5mb3JFYWNoKCh0PT50LmZpbmlzaCgpKSl9ZGVzdHJveSgpe3RoaXMuX29uRGVzdHJveSgpfV9vbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5fb25GaW5pc2goKSx0aGlzLnBsYXllcnMuZm9yRWFjaCgodD0+dC5kZXN0cm95KCkpKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5fb25EZXN0cm95Rm5zPVtdKX1yZXNldCgpe3RoaXMucGxheWVycy5mb3JFYWNoKCh0PT50LnJlc2V0KCkpKSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMX1zZXRQb3NpdGlvbih0KXtjb25zdCBlPXQqdGhpcy50b3RhbFRpbWU7dGhpcy5wbGF5ZXJzLmZvckVhY2goKHQ9Pntjb25zdCBuPXQudG90YWxUaW1lP01hdGgubWluKDEsZS90LnRvdGFsVGltZSk6MTt0LnNldFBvc2l0aW9uKG4pfSkpfWdldFBvc2l0aW9uKCl7Y29uc3QgdD10aGlzLnBsYXllcnMucmVkdWNlKCgodCxlKT0+bnVsbD09PXR8fGUudG90YWxUaW1lPnQudG90YWxUaW1lP2U6dCksbnVsbCk7cmV0dXJuIG51bGwhPXQ/dC5nZXRQb3NpdGlvbigpOjB9YmVmb3JlRGVzdHJveSgpe3RoaXMucGxheWVycy5mb3JFYWNoKCh0PT57dC5iZWZvcmVEZXN0cm95JiZ0LmJlZm9yZURlc3Ryb3koKX0pKX10cmlnZ2VyQ2FsbGJhY2sodCl7Y29uc3QgZT0ic3RhcnQiPT10P3RoaXMuX29uU3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2UuZm9yRWFjaCgodD0+dCgpKSksZS5sZW5ndGg9MH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwpmdW5jdGlvbiBmeCgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnR9ZnVuY3Rpb24gZ3goKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwocHJvY2Vzcyl9ZnVuY3Rpb24gaHgodCl7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBteDtjYXNlIDE6cmV0dXJuIHRbMF07ZGVmYXVsdDpyZXR1cm4gbmV3IHV4KHQpfX1mdW5jdGlvbiBieCh0LGUsbixvLGk9e30sYT17fSl7Y29uc3Qgcj1bXSxzPVtdO2xldCBsPS0xLGM9bnVsbDtpZihvLmZvckVhY2goKHQ9Pntjb25zdCBuPXQub2Zmc2V0LG89bj09bCxkPW8mJmN8fHt9O09iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PntsZXQgbz1uLHM9dFtuXTtpZigib2Zmc2V0IiE9PW4pc3dpdGNoKG89ZS5ub3JtYWxpemVQcm9wZXJ0eU5hbWUobyxyKSxzKXtjYXNlIiEiOnM9aVtuXTticmVhaztjYXNlIGV4OnM9YVtuXTticmVhaztkZWZhdWx0OnM9ZS5ub3JtYWxpemVTdHlsZVZhbHVlKG4sbyxzLHIpfWRbb109c30pKSxvfHxzLnB1c2goZCksYz1kLGw9bn0pKSxyLmxlbmd0aCl7Y29uc3QgdD0iXG4gLSAiO3Rocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGFuaW1hdGUgZHVlIHRvIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiR7dH0ke3Iuam9pbih0KX1gKX1yZXR1cm4gc31mdW5jdGlvbiB5eCh0LGUsbixvKXtzd2l0Y2goZSl7Y2FzZSJzdGFydCI6dC5vblN0YXJ0KCgoKT0+byhuJiZfeChuLCJzdGFydCIsdCkpKSk7YnJlYWs7Y2FzZSJkb25lIjp0Lm9uRG9uZSgoKCk9Pm8obiYmX3gobiwiZG9uZSIsdCkpKSk7YnJlYWs7Y2FzZSJkZXN0cm95Ijp0Lm9uRGVzdHJveSgoKCk9Pm8obiYmX3gobiwiZGVzdHJveSIsdCkpKSl9fWZ1bmN0aW9uIF94KHQsZSxuKXtjb25zdCBvPW4udG90YWxUaW1lLGk9Q3godC5lbGVtZW50LHQudHJpZ2dlck5hbWUsdC5mcm9tU3RhdGUsdC50b1N0YXRlLGV8fHQucGhhc2VOYW1lLG51bGw9PW8/dC50b3RhbFRpbWU6bywhIW4uZGlzYWJsZWQpLGE9dC5fZGF0YTtyZXR1cm4gbnVsbCE9YSYmKGkuX2RhdGE9YSksaX1mdW5jdGlvbiBDeCh0LGUsbixvLGk9IiIsYT0wLHIpe3JldHVybntlbGVtZW50OnQsdHJpZ2dlck5hbWU6ZSxmcm9tU3RhdGU6bix0b1N0YXRlOm8scGhhc2VOYW1lOmksdG90YWxUaW1lOmEsZGlzYWJsZWQ6ISFyfX1mdW5jdGlvbiBNeCh0LGUsbil7bGV0IG87cmV0dXJuIHQgaW5zdGFuY2VvZiBNYXA/KG89dC5nZXQoZSksb3x8dC5zZXQoZSxvPW4pKToobz10W2VdLG98fChvPXRbZV09bikpLG99ZnVuY3Rpb24gdngodCl7Y29uc3QgZT10LmluZGV4T2YoIjoiKTtyZXR1cm5bdC5zdWJzdHJpbmcoMSxlKSx0LnN1YnN0cihlKzEpXX1sZXQgeHg9KHQsZSk9PiExLE94PSh0LGUpPT4hMSxQeD0odCxlLG4pPT5bXTtjb25zdCB3eD1neCgpOyh3eHx8InVuZGVmaW5lZCIhPXR5cGVvZiBFbGVtZW50KSYmKHh4PWZ4KCk/KHQsZSk9Pntmb3IoO2UmJmUhPT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7KXtpZihlPT09dClyZXR1cm4hMDtlPWUucGFyZW50Tm9kZXx8ZS5ob3N0fXJldHVybiExfToodCxlKT0+dC5jb250YWlucyhlKSxPeD0oKCk9PntpZih3eHx8RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcylyZXR1cm4odCxlKT0+dC5tYXRjaGVzKGUpO3tjb25zdCB0PUVsZW1lbnQucHJvdG90eXBlLGU9dC5tYXRjaGVzU2VsZWN0b3J8fHQubW96TWF0Y2hlc1NlbGVjdG9yfHx0Lm1zTWF0Y2hlc1NlbGVjdG9yfHx0Lm9NYXRjaGVzU2VsZWN0b3J8fHQud2Via2l0TWF0Y2hlc1NlbGVjdG9yO3JldHVybiBlPyh0LG4pPT5lLmFwcGx5KHQsW25dKTpPeH19KSgpLFB4PSh0LGUsbik9PntsZXQgbz1bXTtpZihuKXtjb25zdCBuPXQucXVlcnlTZWxlY3RvckFsbChlKTtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKylvLnB1c2goblt0XSl9ZWxzZXtjb25zdCBuPXQucXVlcnlTZWxlY3RvcihlKTtuJiZvLnB1c2gobil9cmV0dXJuIG99KTtsZXQga3g9bnVsbCxTeD0hMTtmdW5jdGlvbiBEeCh0KXtreHx8KGt4PShmdW5jdGlvbiBlKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5ib2R5Om51bGx9KSgpfHx7fSxTeD0hIWt4LnN0eWxlJiYiV2Via2l0QXBwZWFyYW5jZSJpbiBreC5zdHlsZSk7bGV0IG49ITA7cmV0dXJuIGt4LnN0eWxlJiYhKGZ1bmN0aW9uIG8odCl7cmV0dXJuImVia2l0Ij09dC5zdWJzdHJpbmcoMSw2KX0pKHQpJiYobj10IGluIGt4LnN0eWxlLCFuJiZTeCkmJihuPSJXZWJraXQiK3QuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zdWJzdHIoMSlpbiBreC5zdHlsZSksbn1jb25zdCBFeD1PeCxSeD14eCxBeD1QeDtmdW5jdGlvbiBUeCh0KXtjb25zdCBlPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChuPT57Y29uc3Qgbz1uLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIik7ZVtvXT10W25dfSkpLGV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIE54e3ZhbGlkYXRlU3R5bGVQcm9wZXJ0eSh0KXtyZXR1cm4gRHgodCl9bWF0Y2hlc0VsZW1lbnQodCxlKXtyZXR1cm4gRXgodCxlKX1jb250YWluc0VsZW1lbnQodCxlKXtyZXR1cm4gUngodCxlKX1xdWVyeSh0LGUsbil7cmV0dXJuIEF4KHQsZSxuKX1jb21wdXRlU3R5bGUodCxlLG4pe3JldHVybiBufHwiIn1hbmltYXRlKHQsZSxuLG8saSxhPVtdLHIpe3JldHVybiBuZXcgbXgobixvKX19TnguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE54KX0sTnguybVwcm92PU1uKHt0b2tlbjpOeCxmYWN0b3J5Ok54Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOeCxbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIHp4e316eC5OT09QPW5ldyBOeDsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEl4PSJuZy1lbnRlciIsSHg9Im5nLWxlYXZlIixGeD0ibmctdHJpZ2dlciIsTHg9Ii5uZy10cmlnZ2VyIixCeD0ibmctYW5pbWF0aW5nIixWeD0iLm5nLWFuaW1hdGluZyI7ZnVuY3Rpb24gangodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2NvbnN0IGU9dC5tYXRjaCgvXigtP1tcLlxkXSspKG0/cykvKTtyZXR1cm4hZXx8ZS5sZW5ndGg8Mj8wOlV4KHBhcnNlRmxvYXQoZVsxXSksZVsyXSl9ZnVuY3Rpb24gVXgodCxlKXtzd2l0Y2goZSl7Y2FzZSJzIjpyZXR1cm4gMWUzKnQ7ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gR3godCxlLG4pe3JldHVybiB0Lmhhc093blByb3BlcnR5KCJkdXJhdGlvbiIpP3Q6KGZ1bmN0aW9uIG8odCxlLG4pe2xldCBvLGk9MCxhPSIiO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7Y29uc3Qgbj10Lm1hdGNoKC9eKC0/W1wuXGRdKykobT9zKSg/OlxzKygtP1tcLlxkXSspKG0/cykpPyg/OlxzKyhbLWEtel0rKD86XCguKz9cKSk/KSk/JC9pKTtpZihudWxsPT09bilyZXR1cm4gZS5wdXNoKGBUaGUgcHJvdmlkZWQgdGltaW5nIHZhbHVlICIke3R9IiBpcyBpbnZhbGlkLmApLHtkdXJhdGlvbjowLGRlbGF5OjAsZWFzaW5nOiIifTtvPVV4KHBhcnNlRmxvYXQoblsxXSksblsyXSk7Y29uc3Qgcj1uWzNdO251bGwhPXImJihpPVV4KHBhcnNlRmxvYXQociksbls0XSkpO2NvbnN0IHM9bls1XTtzJiYoYT1zKX1lbHNlIG89dDtpZighbil7bGV0IG49ITEsYT1lLmxlbmd0aDtvPDAmJihlLnB1c2goIkR1cmF0aW9uIHZhbHVlcyBiZWxvdyAwIGFyZSBub3QgYWxsb3dlZCBmb3IgdGhpcyBhbmltYXRpb24gc3RlcC4iKSxuPSEwKSxpPDAmJihlLnB1c2goIkRlbGF5IHZhbHVlcyBiZWxvdyAwIGFyZSBub3QgYWxsb3dlZCBmb3IgdGhpcyBhbmltYXRpb24gc3RlcC4iKSxuPSEwKSxuJiZlLnNwbGljZShhLDAsYFRoZSBwcm92aWRlZCB0aW1pbmcgdmFsdWUgIiR7dH0iIGlzIGludmFsaWQuYCl9cmV0dXJue2R1cmF0aW9uOm8sZGVsYXk6aSxlYXNpbmc6YX19KSh0LGUsbil9ZnVuY3Rpb24gV3godCxlPXt9KXtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+e2Vbbl09dFtuXX0pKSxlfWZ1bmN0aW9uIFl4KHQsZSxuPXt9KXtpZihlKWZvcihsZXQgZSBpbiB0KW5bZV09dFtlXTtlbHNlIFd4KHQsbik7cmV0dXJuIG59ZnVuY3Rpb24gcXgodCxlLG4pe3JldHVybiBuP2UrIjoiK24rIjsiOiIifWZ1bmN0aW9uIFp4KHQpe2xldCBlPSIiO2ZvcihsZXQgbj0wO248dC5zdHlsZS5sZW5ndGg7bisrKXtjb25zdCBvPXQuc3R5bGUuaXRlbShuKTtlKz1xeCgwLG8sdC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG8pKX1mb3IoY29uc3QgbiBpbiB0LnN0eWxlKXQuc3R5bGUuaGFzT3duUHJvcGVydHkobikmJiFuLnN0YXJ0c1dpdGgoIl8iKSYmKGUrPXF4KDAsbi5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksdC5zdHlsZVtuXSkpO3Quc2V0QXR0cmlidXRlKCJzdHlsZSIsZSl9ZnVuY3Rpb24gWHgodCxlLG4pe3Quc3R5bGUmJihPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChvPT57Y29uc3QgaT1vTyhvKTtuJiYhbi5oYXNPd25Qcm9wZXJ0eShvKSYmKG5bb109dC5zdHlsZVtpXSksdC5zdHlsZVtpXT1lW29dfSkpLGd4KCkmJlp4KHQpKX1mdW5jdGlvbiBLeCh0LGUpe3Quc3R5bGUmJihPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChlPT57Y29uc3Qgbj1vTyhlKTt0LnN0eWxlW25dPSIifSkpLGd4KCkmJlp4KHQpKX1mdW5jdGlvbiBKeCh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT8xPT10Lmxlbmd0aD90WzBdOml4KHQpOnR9Y29uc3QgUXg9bmV3IFJlZ0V4cCgie3tcXHMqKC4rPylcXHMqfX0iLCJnIik7ZnVuY3Rpb24gJHgodCl7bGV0IGU9W107aWYoInN0cmluZyI9PXR5cGVvZiB0KXtsZXQgbjtmb3IoO249UXguZXhlYyh0KTspZS5wdXNoKG5bMV0pO1F4Lmxhc3RJbmRleD0wfXJldHVybiBlfWZ1bmN0aW9uIHRPKHQsZSxuKXtjb25zdCBvPXQudG9TdHJpbmcoKSxpPW8ucmVwbGFjZShReCwoKHQsbyk9PntsZXQgaT1lW29dO3JldHVybiBlLmhhc093blByb3BlcnR5KG8pfHwobi5wdXNoKGBQbGVhc2UgcHJvdmlkZSBhIHZhbHVlIGZvciB0aGUgYW5pbWF0aW9uIHBhcmFtICR7b31gKSxpPSIiKSxpLnRvU3RyaW5nKCl9KSk7cmV0dXJuIGk9PW8/dDppfWZ1bmN0aW9uIGVPKHQpe2NvbnN0IGU9W107bGV0IG49dC5uZXh0KCk7Zm9yKDshbi5kb25lOyllLnB1c2gobi52YWx1ZSksbj10Lm5leHQoKTtyZXR1cm4gZX1jb25zdCBuTz0vLSsoW2EtejAtOV0pL2c7ZnVuY3Rpb24gb08odCl7cmV0dXJuIHQucmVwbGFjZShuTywoKC4uLnQpPT50WzFdLnRvVXBwZXJDYXNlKCkpKX1mdW5jdGlvbiBpTyh0LGUpe3JldHVybiAwPT09dHx8MD09PWV9ZnVuY3Rpb24gYU8odCxlLG4pe2NvbnN0IG89T2JqZWN0LmtleXMobik7aWYoby5sZW5ndGgmJmUubGVuZ3RoKXtsZXQgYT1lWzBdLHI9W107aWYoby5mb3JFYWNoKCh0PT57YS5oYXNPd25Qcm9wZXJ0eSh0KXx8ci5wdXNoKHQpLGFbdF09blt0XX0pKSxyLmxlbmd0aClmb3IodmFyIGk9MTtpPGUubGVuZ3RoO2krKyl7bGV0IG49ZVtpXTtyLmZvckVhY2goKGZ1bmN0aW9uKGUpe25bZV09c08odCxlKX0pKX19cmV0dXJuIGV9ZnVuY3Rpb24gck8odCxlLG4pe3N3aXRjaChlLnR5cGUpe2Nhc2UgNzpyZXR1cm4gdC52aXNpdFRyaWdnZXIoZSxuKTtjYXNlIDA6cmV0dXJuIHQudmlzaXRTdGF0ZShlLG4pO2Nhc2UgMTpyZXR1cm4gdC52aXNpdFRyYW5zaXRpb24oZSxuKTtjYXNlIDI6cmV0dXJuIHQudmlzaXRTZXF1ZW5jZShlLG4pO2Nhc2UgMzpyZXR1cm4gdC52aXNpdEdyb3VwKGUsbik7Y2FzZSA0OnJldHVybiB0LnZpc2l0QW5pbWF0ZShlLG4pO2Nhc2UgNTpyZXR1cm4gdC52aXNpdEtleWZyYW1lcyhlLG4pO2Nhc2UgNjpyZXR1cm4gdC52aXNpdFN0eWxlKGUsbik7Y2FzZSA4OnJldHVybiB0LnZpc2l0UmVmZXJlbmNlKGUsbik7Y2FzZSA5OnJldHVybiB0LnZpc2l0QW5pbWF0ZUNoaWxkKGUsbik7Y2FzZSAxMDpyZXR1cm4gdC52aXNpdEFuaW1hdGVSZWYoZSxuKTtjYXNlIDExOnJldHVybiB0LnZpc2l0UXVlcnkoZSxuKTtjYXNlIDEyOnJldHVybiB0LnZpc2l0U3RhZ2dlcihlLG4pO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcmVzb2x2ZSBhbmltYXRpb24gbWV0YWRhdGEgbm9kZSAjJHtlLnR5cGV9YCl9fWZ1bmN0aW9uIHNPKHQsZSl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpW2VdfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBsTz0iKiI7ZnVuY3Rpb24gY08odCxlKXtjb25zdCBuPVtdO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90LnNwbGl0KC9ccyosXHMqLykuZm9yRWFjaCgodD0+KGZ1bmN0aW9uIG8odCxlLG4pe2lmKCI6Ij09dFswXSl7Y29uc3Qgbz0oZnVuY3Rpb24gbyh0LGUpe3N3aXRjaCh0KXtjYXNlIjplbnRlciI6cmV0dXJuInZvaWQgPT4gKiI7Y2FzZSI6bGVhdmUiOnJldHVybiIqID0+IHZvaWQiO2Nhc2UiOmluY3JlbWVudCI6cmV0dXJuKHQsZSk9PnBhcnNlRmxvYXQoZSk+cGFyc2VGbG9hdCh0KTtjYXNlIjpkZWNyZW1lbnQiOnJldHVybih0LGUpPT5wYXJzZUZsb2F0KGUpPHBhcnNlRmxvYXQodCk7ZGVmYXVsdDpyZXR1cm4gZS5wdXNoKGBUaGUgdHJhbnNpdGlvbiBhbGlhcyB2YWx1ZSAiJHt0fSIgaXMgbm90IHN1cHBvcnRlZGApLCIqID0+ICoifX0pKHQsbik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG8pcmV0dXJuIHZvaWQgZS5wdXNoKG8pO3Q9b31jb25zdCBpPXQubWF0Y2goL14oXCp8Wy1cd10rKVxzKig8P1s9LV0+KVxzKihcKnxbLVx3XSspJC8pO2lmKG51bGw9PWl8fGkubGVuZ3RoPDQpcmV0dXJuIG4ucHVzaChgVGhlIHByb3ZpZGVkIHRyYW5zaXRpb24gZXhwcmVzc2lvbiAiJHt0fSIgaXMgbm90IHN1cHBvcnRlZGApLGU7Y29uc3QgYT1pWzFdLHI9aVsyXSxzPWlbM107ZS5wdXNoKG1PKGEscykpLCI8IiE9clswXXx8YT09bE8mJnM9PWxPfHxlLnB1c2gobU8ocyxhKSl9KSh0LG4sZSkpKTpuLnB1c2godCksbn1jb25zdCBkTz1uZXcgU2V0KFsidHJ1ZSIsIjEiXSkscE89bmV3IFNldChbImZhbHNlIiwiMCJdKTtmdW5jdGlvbiBtTyh0LGUpe2NvbnN0IG49ZE8uaGFzKHQpfHxwTy5oYXModCksbz1kTy5oYXMoZSl8fHBPLmhhcyhlKTtyZXR1cm4oaSxhKT0+e2xldCByPXQ9PWxPfHx0PT1pLHM9ZT09bE98fGU9PWE7cmV0dXJuIXImJm4mJiJib29sZWFuIj09dHlwZW9mIGkmJihyPWk/ZE8uaGFzKHQpOnBPLmhhcyh0KSksIXMmJm8mJiJib29sZWFuIj09dHlwZW9mIGEmJihzPWE/ZE8uaGFzKGUpOnBPLmhhcyhlKSksciYmc319Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IHVPPW5ldyBSZWdFeHAoInMqOnNlbGZzKiw/IiwiZyIpO2Z1bmN0aW9uIGZPKHQsZSxuKXtyZXR1cm4gbmV3IGdPKHQpLmJ1aWxkKGUsbil9Y2xhc3MgZ097Y29uc3RydWN0b3IodCl7dGhpcy5fZHJpdmVyPXR9YnVpbGQodCxlKXtjb25zdCBuPW5ldyBoTyhlKTtyZXR1cm4gdGhpcy5fcmVzZXRDb250ZXh0U3R5bGVUaW1pbmdTdGF0ZShuKSxyTyh0aGlzLEp4KHQpLG4pfV9yZXNldENvbnRleHRTdHlsZVRpbWluZ1N0YXRlKHQpe3QuY3VycmVudFF1ZXJ5U2VsZWN0b3I9IiIsdC5jb2xsZWN0ZWRTdHlsZXM9e30sdC5jb2xsZWN0ZWRTdHlsZXNbIiJdPXt9LHQuY3VycmVudFRpbWU9MH12aXNpdFRyaWdnZXIodCxlKXtsZXQgbj1lLnF1ZXJ5Q291bnQ9MCxvPWUuZGVwQ291bnQ9MDtjb25zdCBpPVtdLGE9W107cmV0dXJuIkAiPT10Lm5hbWUuY2hhckF0KDApJiZlLmVycm9ycy5wdXNoKCJhbmltYXRpb24gdHJpZ2dlcnMgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYW4gYEBgIHNpZ24gKGUuZy4gdHJpZ2dlcignQGZvbycsIFsuLi5dKSkiKSx0LmRlZmluaXRpb25zLmZvckVhY2goKHQ9PntpZih0aGlzLl9yZXNldENvbnRleHRTdHlsZVRpbWluZ1N0YXRlKGUpLDA9PXQudHlwZSl7Y29uc3Qgbj10LG89bi5uYW1lO28udG9TdHJpbmcoKS5zcGxpdCgvXHMqLFxzKi8pLmZvckVhY2goKHQ9PntuLm5hbWU9dCxpLnB1c2godGhpcy52aXNpdFN0YXRlKG4sZSkpfSkpLG4ubmFtZT1vfWVsc2UgaWYoMT09dC50eXBlKXtjb25zdCBpPXRoaXMudmlzaXRUcmFuc2l0aW9uKHQsZSk7bis9aS5xdWVyeUNvdW50LG8rPWkuZGVwQ291bnQsYS5wdXNoKGkpfWVsc2UgZS5lcnJvcnMucHVzaCgib25seSBzdGF0ZSgpIGFuZCB0cmFuc2l0aW9uKCkgZGVmaW5pdGlvbnMgY2FuIHNpdCBpbnNpZGUgb2YgYSB0cmlnZ2VyKCkiKX0pKSx7dHlwZTo3LG5hbWU6dC5uYW1lLHN0YXRlczppLHRyYW5zaXRpb25zOmEscXVlcnlDb3VudDpuLGRlcENvdW50Om8sb3B0aW9uczpudWxsfX12aXNpdFN0YXRlKHQsZSl7Y29uc3Qgbj10aGlzLnZpc2l0U3R5bGUodC5zdHlsZXMsZSksbz10Lm9wdGlvbnMmJnQub3B0aW9ucy5wYXJhbXN8fG51bGw7aWYobi5jb250YWluc0R5bmFtaWNTdHlsZXMpe2NvbnN0IGk9bmV3IFNldCxhPW98fHt9O2lmKG4uc3R5bGVzLmZvckVhY2goKHQ9PntpZihiTyh0KSl7Y29uc3QgZT10O09iamVjdC5rZXlzKGUpLmZvckVhY2goKHQ9PnskeChlW3RdKS5mb3JFYWNoKCh0PT57YS5oYXNPd25Qcm9wZXJ0eSh0KXx8aS5hZGQodCl9KSl9KSl9fSkpLGkuc2l6ZSl7Y29uc3Qgbj1lTyhpLnZhbHVlcygpKTtlLmVycm9ycy5wdXNoKGBzdGF0ZSgiJHt0Lm5hbWV9IiwgLi4uKSBtdXN0IGRlZmluZSBkZWZhdWx0IHZhbHVlcyBmb3IgYWxsIHRoZSBmb2xsb3dpbmcgc3R5bGUgc3Vic3RpdHV0aW9uczogJHtuLmpvaW4oIiwgIil9YCl9fXJldHVybnt0eXBlOjAsbmFtZTp0Lm5hbWUsc3R5bGU6bixvcHRpb25zOm8/e3BhcmFtczpvfTpudWxsfX12aXNpdFRyYW5zaXRpb24odCxlKXtlLnF1ZXJ5Q291bnQ9MCxlLmRlcENvdW50PTA7Y29uc3Qgbj1yTyh0aGlzLEp4KHQuYW5pbWF0aW9uKSxlKTtyZXR1cm57dHlwZToxLG1hdGNoZXJzOmNPKHQuZXhwcixlLmVycm9ycyksYW5pbWF0aW9uOm4scXVlcnlDb3VudDplLnF1ZXJ5Q291bnQsZGVwQ291bnQ6ZS5kZXBDb3VudCxvcHRpb25zOnlPKHQub3B0aW9ucyl9fXZpc2l0U2VxdWVuY2UodCxlKXtyZXR1cm57dHlwZToyLHN0ZXBzOnQuc3RlcHMubWFwKCh0PT5yTyh0aGlzLHQsZSkpKSxvcHRpb25zOnlPKHQub3B0aW9ucyl9fXZpc2l0R3JvdXAodCxlKXtjb25zdCBuPWUuY3VycmVudFRpbWU7bGV0IG89MDtjb25zdCBpPXQuc3RlcHMubWFwKCh0PT57ZS5jdXJyZW50VGltZT1uO2NvbnN0IGk9ck8odGhpcyx0LGUpO3JldHVybiBvPU1hdGgubWF4KG8sZS5jdXJyZW50VGltZSksaX0pKTtyZXR1cm4gZS5jdXJyZW50VGltZT1vLHt0eXBlOjMsc3RlcHM6aSxvcHRpb25zOnlPKHQub3B0aW9ucyl9fXZpc2l0QW5pbWF0ZSh0LGUpe2NvbnN0IG49KGZ1bmN0aW9uIG8odCxlKXtsZXQgbj1udWxsO2lmKHQuaGFzT3duUHJvcGVydHkoImR1cmF0aW9uIikpbj10O2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiBfTyhHeCh0LGUpLmR1cmF0aW9uLDAsIiIpO2NvbnN0IG89dDtpZihvLnNwbGl0KC9ccysvKS5zb21lKCh0PT4ieyI9PXQuY2hhckF0KDApJiYieyI9PXQuY2hhckF0KDEpKSkpe2NvbnN0IHQ9X08oMCwwLCIiKTtyZXR1cm4gdC5keW5hbWljPSEwLHQuc3RyVmFsdWU9byx0fXJldHVybiBuPW58fEd4KG8sZSksX08obi5kdXJhdGlvbixuLmRlbGF5LG4uZWFzaW5nKX0pKHQudGltaW5ncyxlLmVycm9ycyk7bGV0IGk7ZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bjtsZXQgYT10LnN0eWxlcz90LnN0eWxlczpheCh7fSk7aWYoNT09YS50eXBlKWk9dGhpcy52aXNpdEtleWZyYW1lcyhhLGUpO2Vsc2V7bGV0IG89dC5zdHlsZXMsYT0hMTtpZighbyl7YT0hMDtjb25zdCB0PXt9O24uZWFzaW5nJiYodC5lYXNpbmc9bi5lYXNpbmcpLG89YXgodCl9ZS5jdXJyZW50VGltZSs9bi5kdXJhdGlvbituLmRlbGF5O2NvbnN0IHI9dGhpcy52aXNpdFN0eWxlKG8sZSk7ci5pc0VtcHR5U3RlcD1hLGk9cn1yZXR1cm4gZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCx7dHlwZTo0LHRpbWluZ3M6bixzdHlsZTppLG9wdGlvbnM6bnVsbH19dmlzaXRTdHlsZSh0LGUpe2NvbnN0IG49dGhpcy5fbWFrZVN0eWxlQXN0KHQsZSk7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlU3R5bGVBc3QobixlKSxufV9tYWtlU3R5bGVBc3QodCxlKXtjb25zdCBuPVtdO0FycmF5LmlzQXJyYXkodC5zdHlsZXMpP3Quc3R5bGVzLmZvckVhY2goKHQ9Pnsic3RyaW5nIj09dHlwZW9mIHQ/dD09ZXg/bi5wdXNoKHQpOmUuZXJyb3JzLnB1c2goYFRoZSBwcm92aWRlZCBzdHlsZSBzdHJpbmcgdmFsdWUgJHt0fSBpcyBub3QgYWxsb3dlZC5gKTpuLnB1c2godCl9KSk6bi5wdXNoKHQuc3R5bGVzKTtsZXQgbz0hMSxpPW51bGw7cmV0dXJuIG4uZm9yRWFjaCgodD0+e2lmKGJPKHQpKXtjb25zdCBlPXQsbj1lLmVhc2luZztpZihuJiYoaT1uLGRlbGV0ZSBlLmVhc2luZyksIW8pZm9yKGxldCB0IGluIGUpaWYoZVt0XS50b1N0cmluZygpLmluZGV4T2YoInt7Iik+PTApe289ITA7YnJlYWt9fX0pKSx7dHlwZTo2LHN0eWxlczpuLGVhc2luZzppLG9mZnNldDp0Lm9mZnNldCxjb250YWluc0R5bmFtaWNTdHlsZXM6byxvcHRpb25zOm51bGx9fV92YWxpZGF0ZVN0eWxlQXN0KHQsZSl7Y29uc3Qgbj1lLmN1cnJlbnRBbmltYXRlVGltaW5ncztsZXQgbz1lLmN1cnJlbnRUaW1lLGk9ZS5jdXJyZW50VGltZTtuJiZpPjAmJihpLT1uLmR1cmF0aW9uK24uZGVsYXkpLHQuc3R5bGVzLmZvckVhY2goKHQ9Pnsic3RyaW5nIiE9dHlwZW9mIHQmJk9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PntpZighdGhpcy5fZHJpdmVyLnZhbGlkYXRlU3R5bGVQcm9wZXJ0eShuKSlyZXR1cm4gdm9pZCBlLmVycm9ycy5wdXNoKGBUaGUgcHJvdmlkZWQgYW5pbWF0aW9uIHByb3BlcnR5ICIke259IiBpcyBub3QgYSBzdXBwb3J0ZWQgQ1NTIHByb3BlcnR5IGZvciBhbmltYXRpb25zYCk7Y29uc3QgYT1lLmNvbGxlY3RlZFN0eWxlc1tlLmN1cnJlbnRRdWVyeVNlbGVjdG9yXSxyPWFbbl07bGV0IHM9ITA7ciYmKGkhPW8mJmk+PXIuc3RhcnRUaW1lJiZvPD1yLmVuZFRpbWUmJihlLmVycm9ycy5wdXNoKGBUaGUgQ1NTIHByb3BlcnR5ICIke259IiB0aGF0IGV4aXN0cyBiZXR3ZWVuIHRoZSB0aW1lcyBvZiAiJHtyLnN0YXJ0VGltZX1tcyIgYW5kICIke3IuZW5kVGltZX1tcyIgaXMgYWxzbyBiZWluZyBhbmltYXRlZCBpbiBhIHBhcmFsbGVsIGFuaW1hdGlvbiBiZXR3ZWVuIHRoZSB0aW1lcyBvZiAiJHtpfW1zIiBhbmQgIiR7b31tcyJgKSxzPSExKSxpPXIuc3RhcnRUaW1lKSxzJiYoYVtuXT17c3RhcnRUaW1lOmksZW5kVGltZTpvfSksZS5vcHRpb25zJiYoZnVuY3Rpb24gbCh0LGUsbil7Y29uc3Qgbz1lLnBhcmFtc3x8e30saT0keCh0KTtpLmxlbmd0aCYmaS5mb3JFYWNoKCh0PT57by5oYXNPd25Qcm9wZXJ0eSh0KXx8bi5wdXNoKGBVbmFibGUgdG8gcmVzb2x2ZSB0aGUgbG9jYWwgYW5pbWF0aW9uIHBhcmFtICR7dH0gaW4gdGhlIGdpdmVuIGxpc3Qgb2YgdmFsdWVzYCl9KSl9KSh0W25dLGUub3B0aW9ucyxlLmVycm9ycyl9KSl9KSl9dmlzaXRLZXlmcmFtZXModCxlKXtjb25zdCBuPXt0eXBlOjUsc3R5bGVzOltdLG9wdGlvbnM6bnVsbH07aWYoIWUuY3VycmVudEFuaW1hdGVUaW1pbmdzKXJldHVybiBlLmVycm9ycy5wdXNoKCJrZXlmcmFtZXMoKSBtdXN0IGJlIHBsYWNlZCBpbnNpZGUgb2YgYSBjYWxsIHRvIGFuaW1hdGUoKSIpLG47bGV0IG89MDtjb25zdCBpPVtdO2xldCBhPSExLHI9ITEscz0wO2NvbnN0IGw9dC5zdGVwcy5tYXAoKHQ9Pntjb25zdCBuPXRoaXMuX21ha2VTdHlsZUFzdCh0LGUpO2xldCBsPW51bGwhPW4ub2Zmc2V0P24ub2Zmc2V0OihmdW5jdGlvbiBjKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gbnVsbDtsZXQgZT1udWxsO2lmKEFycmF5LmlzQXJyYXkodCkpdC5mb3JFYWNoKCh0PT57aWYoYk8odCkmJnQuaGFzT3duUHJvcGVydHkoIm9mZnNldCIpKXtjb25zdCBuPXQ7ZT1wYXJzZUZsb2F0KG4ub2Zmc2V0KSxkZWxldGUgbi5vZmZzZXR9fSkpO2Vsc2UgaWYoYk8odCkmJnQuaGFzT3duUHJvcGVydHkoIm9mZnNldCIpKXtjb25zdCBuPXQ7ZT1wYXJzZUZsb2F0KG4ub2Zmc2V0KSxkZWxldGUgbi5vZmZzZXR9cmV0dXJuIGV9KShuLnN0eWxlcyksZD0wO3JldHVybiBudWxsIT1sJiYobysrLGQ9bi5vZmZzZXQ9bCkscj1yfHxkPDB8fGQ+MSxhPWF8fGQ8cyxzPWQsaS5wdXNoKGQpLG59KSk7ciYmZS5lcnJvcnMucHVzaCgiUGxlYXNlIGVuc3VyZSB0aGF0IGFsbCBrZXlmcmFtZSBvZmZzZXRzIGFyZSBiZXR3ZWVuIDAgYW5kIDEiKSxhJiZlLmVycm9ycy5wdXNoKCJQbGVhc2UgZW5zdXJlIHRoYXQgYWxsIGtleWZyYW1lIG9mZnNldHMgYXJlIGluIG9yZGVyIik7Y29uc3QgYz10LnN0ZXBzLmxlbmd0aDtsZXQgZD0wO28+MCYmbzxjP2UuZXJyb3JzLnB1c2goIk5vdCBhbGwgc3R5bGUoKSBzdGVwcyB3aXRoaW4gdGhlIGRlY2xhcmVkIGtleWZyYW1lcygpIGNvbnRhaW4gb2Zmc2V0cyIpOjA9PW8mJihkPTEvKGMtMSkpO2NvbnN0IHA9Yy0xLG09ZS5jdXJyZW50VGltZSx1PWUuY3VycmVudEFuaW1hdGVUaW1pbmdzLGY9dS5kdXJhdGlvbjtyZXR1cm4gbC5mb3JFYWNoKCgodCxvKT0+e2NvbnN0IGE9ZD4wP289PXA/MTpkKm86aVtvXSxyPWEqZjtlLmN1cnJlbnRUaW1lPW0rdS5kZWxheStyLHUuZHVyYXRpb249cix0aGlzLl92YWxpZGF0ZVN0eWxlQXN0KHQsZSksdC5vZmZzZXQ9YSxuLnN0eWxlcy5wdXNoKHQpfSkpLG59dmlzaXRSZWZlcmVuY2UodCxlKXtyZXR1cm57dHlwZTo4LGFuaW1hdGlvbjpyTyh0aGlzLEp4KHQuYW5pbWF0aW9uKSxlKSxvcHRpb25zOnlPKHQub3B0aW9ucyl9fXZpc2l0QW5pbWF0ZUNoaWxkKHQsZSl7cmV0dXJuIGUuZGVwQ291bnQrKyx7dHlwZTo5LG9wdGlvbnM6eU8odC5vcHRpb25zKX19dmlzaXRBbmltYXRlUmVmKHQsZSl7cmV0dXJue3R5cGU6MTAsYW5pbWF0aW9uOnRoaXMudmlzaXRSZWZlcmVuY2UodC5hbmltYXRpb24sZSksb3B0aW9uczp5Tyh0Lm9wdGlvbnMpfX12aXNpdFF1ZXJ5KHQsZSl7Y29uc3Qgbj1lLmN1cnJlbnRRdWVyeVNlbGVjdG9yLG89dC5vcHRpb25zfHx7fTtlLnF1ZXJ5Q291bnQrKyxlLmN1cnJlbnRRdWVyeT10O2NvbnN0W2ksYV09KGZ1bmN0aW9uIHIodCl7Y29uc3QgZT0hIXQuc3BsaXQoL1xzKixccyovKS5maW5kKCh0PT4iOnNlbGYiPT10KSk7cmV0dXJuIGUmJih0PXQucmVwbGFjZSh1TywiIikpLFt0PXQucmVwbGFjZSgvQFwqL2csTHgpLnJlcGxhY2UoL0BcdysvZywodD0+Ii5uZy10cmlnZ2VyLSIrdC5zdWJzdHIoMSkpKS5yZXBsYWNlKC86YW5pbWF0aW5nL2csVngpLGVdfSkodC5zZWxlY3Rvcik7ZS5jdXJyZW50UXVlcnlTZWxlY3Rvcj1uLmxlbmd0aD9uKyIgIitpOmksTXgoZS5jb2xsZWN0ZWRTdHlsZXMsZS5jdXJyZW50UXVlcnlTZWxlY3Rvcix7fSk7Y29uc3Qgcz1yTyh0aGlzLEp4KHQuYW5pbWF0aW9uKSxlKTtyZXR1cm4gZS5jdXJyZW50UXVlcnk9bnVsbCxlLmN1cnJlbnRRdWVyeVNlbGVjdG9yPW4se3R5cGU6MTEsc2VsZWN0b3I6aSxsaW1pdDpvLmxpbWl0fHwwLG9wdGlvbmFsOiEhby5vcHRpb25hbCxpbmNsdWRlU2VsZjphLGFuaW1hdGlvbjpzLG9yaWdpbmFsU2VsZWN0b3I6dC5zZWxlY3RvcixvcHRpb25zOnlPKHQub3B0aW9ucyl9fXZpc2l0U3RhZ2dlcih0LGUpe2UuY3VycmVudFF1ZXJ5fHxlLmVycm9ycy5wdXNoKCJzdGFnZ2VyKCkgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgcXVlcnkoKSIpO2NvbnN0IG49ImZ1bGwiPT09dC50aW1pbmdzP3tkdXJhdGlvbjowLGRlbGF5OjAsZWFzaW5nOiJmdWxsIn06R3godC50aW1pbmdzLGUuZXJyb3JzLCEwKTtyZXR1cm57dHlwZToxMixhbmltYXRpb246ck8odGhpcyxKeCh0LmFuaW1hdGlvbiksZSksdGltaW5nczpuLG9wdGlvbnM6bnVsbH19fWNsYXNzIGhPe2NvbnN0cnVjdG9yKHQpe3RoaXMuZXJyb3JzPXQsdGhpcy5xdWVyeUNvdW50PTAsdGhpcy5kZXBDb3VudD0wLHRoaXMuY3VycmVudFRyYW5zaXRpb249bnVsbCx0aGlzLmN1cnJlbnRRdWVyeT1udWxsLHRoaXMuY3VycmVudFF1ZXJ5U2VsZWN0b3I9bnVsbCx0aGlzLmN1cnJlbnRBbmltYXRlVGltaW5ncz1udWxsLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmNvbGxlY3RlZFN0eWxlcz17fSx0aGlzLm9wdGlvbnM9bnVsbH19ZnVuY3Rpb24gYk8odCl7cmV0dXJuIUFycmF5LmlzQXJyYXkodCkmJiJvYmplY3QiPT10eXBlb2YgdH1mdW5jdGlvbiB5Tyh0KXtyZXR1cm4gdD8odD1XeCh0KSkucGFyYW1zJiYodC5wYXJhbXM9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIHQ/V3godCk6bnVsbH0pKHQucGFyYW1zKSk6dD17fSx0fWZ1bmN0aW9uIF9PKHQsZSxuKXtyZXR1cm57ZHVyYXRpb246dCxkZWxheTplLGVhc2luZzpufX1mdW5jdGlvbiBDTyh0LGUsbixvLGksYSxyPW51bGwscz0hMSl7cmV0dXJue3R5cGU6MSxlbGVtZW50OnQsa2V5ZnJhbWVzOmUscHJlU3R5bGVQcm9wczpuLHBvc3RTdHlsZVByb3BzOm8sZHVyYXRpb246aSxkZWxheTphLHRvdGFsVGltZTppK2EsZWFzaW5nOnIsc3ViVGltZWxpbmU6c319Y2xhc3MgTU97Y29uc3RydWN0b3IoKXt0aGlzLl9tYXA9bmV3IE1hcH1jb25zdW1lKHQpe2xldCBlPXRoaXMuX21hcC5nZXQodCk7cmV0dXJuIGU/dGhpcy5fbWFwLmRlbGV0ZSh0KTplPVtdLGV9YXBwZW5kKHQsZSl7bGV0IG49dGhpcy5fbWFwLmdldCh0KTtufHx0aGlzLl9tYXAuc2V0KHQsbj1bXSksbi5wdXNoKC4uLmUpfWhhcyh0KXtyZXR1cm4gdGhpcy5fbWFwLmhhcyh0KX1jbGVhcigpe3RoaXMuX21hcC5jbGVhcigpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3Qgdk89bmV3IFJlZ0V4cCgiOmVudGVyIiwiZyIpLHhPPW5ldyBSZWdFeHAoIjpsZWF2ZSIsImciKTtmdW5jdGlvbiBPTyh0LGUsbixvLGksYT17fSxyPXt9LHMsbCxjPVtdKXtyZXR1cm4obmV3IFBPKS5idWlsZEtleWZyYW1lcyh0LGUsbixvLGksYSxyLHMsbCxjKX1jbGFzcyBQT3tidWlsZEtleWZyYW1lcyh0LGUsbixvLGksYSxyLHMsbCxjPVtdKXtsPWx8fG5ldyBNTztjb25zdCBkPW5ldyBrTyh0LGUsbCxvLGksYyxbXSk7ZC5vcHRpb25zPXMsZC5jdXJyZW50VGltZWxpbmUuc2V0U3R5bGVzKFthXSxudWxsLGQuZXJyb3JzLHMpLHJPKHRoaXMsbixkKTtjb25zdCBwPWQudGltZWxpbmVzLmZpbHRlcigodD0+dC5jb250YWluc0FuaW1hdGlvbigpKSk7aWYocC5sZW5ndGgmJk9iamVjdC5rZXlzKHIpLmxlbmd0aCl7Y29uc3QgdD1wW3AubGVuZ3RoLTFdO3QuYWxsb3dPbmx5VGltZWxpbmVTdHlsZXMoKXx8dC5zZXRTdHlsZXMoW3JdLG51bGwsZC5lcnJvcnMscyl9cmV0dXJuIHAubGVuZ3RoP3AubWFwKCh0PT50LmJ1aWxkS2V5ZnJhbWVzKCkpKTpbQ08oZSxbXSxbXSxbXSwwLDAsIiIsITEpXX12aXNpdFRyaWdnZXIodCxlKXt9dmlzaXRTdGF0ZSh0LGUpe312aXNpdFRyYW5zaXRpb24odCxlKXt9dmlzaXRBbmltYXRlQ2hpbGQodCxlKXtjb25zdCBuPWUuc3ViSW5zdHJ1Y3Rpb25zLmNvbnN1bWUoZS5lbGVtZW50KTtpZihuKXtjb25zdCBvPWUuY3JlYXRlU3ViQ29udGV4dCh0Lm9wdGlvbnMpLGk9ZS5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUsYT10aGlzLl92aXNpdFN1Ykluc3RydWN0aW9ucyhuLG8sby5vcHRpb25zKTtpIT1hJiZlLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZShhKX1lLnByZXZpb3VzTm9kZT10fXZpc2l0QW5pbWF0ZVJlZih0LGUpe2NvbnN0IG49ZS5jcmVhdGVTdWJDb250ZXh0KHQub3B0aW9ucyk7bi50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoKSx0aGlzLnZpc2l0UmVmZXJlbmNlKHQuYW5pbWF0aW9uLG4pLGUudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKG4uY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKSxlLnByZXZpb3VzTm9kZT10fV92aXNpdFN1Ykluc3RydWN0aW9ucyh0LGUsbil7bGV0IG89ZS5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWU7Y29uc3QgaT1udWxsIT1uLmR1cmF0aW9uP2p4KG4uZHVyYXRpb24pOm51bGwsYT1udWxsIT1uLmRlbGF5P2p4KG4uZGVsYXkpOm51bGw7cmV0dXJuIDAhPT1pJiZ0LmZvckVhY2goKHQ9Pntjb25zdCBuPWUuYXBwZW5kSW5zdHJ1Y3Rpb25Ub1RpbWVsaW5lKHQsaSxhKTtvPU1hdGgubWF4KG8sbi5kdXJhdGlvbituLmRlbGF5KX0pKSxvfXZpc2l0UmVmZXJlbmNlKHQsZSl7ZS51cGRhdGVPcHRpb25zKHQub3B0aW9ucywhMCksck8odGhpcyx0LmFuaW1hdGlvbixlKSxlLnByZXZpb3VzTm9kZT10fXZpc2l0U2VxdWVuY2UodCxlKXtjb25zdCBuPWUuc3ViQ29udGV4dENvdW50O2xldCBvPWU7Y29uc3QgaT10Lm9wdGlvbnM7aWYoaSYmKGkucGFyYW1zfHxpLmRlbGF5KSYmKG89ZS5jcmVhdGVTdWJDb250ZXh0KGkpLG8udHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKCksbnVsbCE9aS5kZWxheSkpezY9PW8ucHJldmlvdXNOb2RlLnR5cGUmJihvLmN1cnJlbnRUaW1lbGluZS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSxvLnByZXZpb3VzTm9kZT13Tyk7Y29uc3QgdD1qeChpLmRlbGF5KTtvLmRlbGF5TmV4dFN0ZXAodCl9dC5zdGVwcy5sZW5ndGgmJih0LnN0ZXBzLmZvckVhY2goKHQ9PnJPKHRoaXMsdCxvKSkpLG8uY3VycmVudFRpbWVsaW5lLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpLG8uc3ViQ29udGV4dENvdW50Pm4mJm8udHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKCkpLGUucHJldmlvdXNOb2RlPXR9dmlzaXRHcm91cCh0LGUpe2NvbnN0IG49W107bGV0IG89ZS5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWU7Y29uc3QgaT10Lm9wdGlvbnMmJnQub3B0aW9ucy5kZWxheT9qeCh0Lm9wdGlvbnMuZGVsYXkpOjA7dC5zdGVwcy5mb3JFYWNoKChhPT57Y29uc3Qgcj1lLmNyZWF0ZVN1YkNvbnRleHQodC5vcHRpb25zKTtpJiZyLmRlbGF5TmV4dFN0ZXAoaSksck8odGhpcyxhLHIpLG89TWF0aC5tYXgobyxyLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSksbi5wdXNoKHIuY3VycmVudFRpbWVsaW5lKX0pKSxuLmZvckVhY2goKHQ9PmUuY3VycmVudFRpbWVsaW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXModCkpKSxlLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZShvKSxlLnByZXZpb3VzTm9kZT10fV92aXNpdFRpbWluZyh0LGUpe2lmKHQuZHluYW1pYyl7Y29uc3Qgbj10LnN0clZhbHVlO3JldHVybiBHeChlLnBhcmFtcz90TyhuLGUucGFyYW1zLGUuZXJyb3JzKTpuLGUuZXJyb3JzKX1yZXR1cm57ZHVyYXRpb246dC5kdXJhdGlvbixkZWxheTp0LmRlbGF5LGVhc2luZzp0LmVhc2luZ319dmlzaXRBbmltYXRlKHQsZSl7Y29uc3Qgbj1lLmN1cnJlbnRBbmltYXRlVGltaW5ncz10aGlzLl92aXNpdFRpbWluZyh0LnRpbWluZ3MsZSksbz1lLmN1cnJlbnRUaW1lbGluZTtuLmRlbGF5JiYoZS5pbmNyZW1lbnRUaW1lKG4uZGVsYXkpLG8uc25hcHNob3RDdXJyZW50U3R5bGVzKCkpO2NvbnN0IGk9dC5zdHlsZTs1PT1pLnR5cGU/dGhpcy52aXNpdEtleWZyYW1lcyhpLGUpOihlLmluY3JlbWVudFRpbWUobi5kdXJhdGlvbiksdGhpcy52aXNpdFN0eWxlKGksZSksby5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSksZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCxlLnByZXZpb3VzTm9kZT10fXZpc2l0U3R5bGUodCxlKXtjb25zdCBuPWUuY3VycmVudFRpbWVsaW5lLG89ZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M7IW8mJm4uZ2V0Q3VycmVudFN0eWxlUHJvcGVydGllcygpLmxlbmd0aCYmbi5mb3J3YXJkRnJhbWUoKTtjb25zdCBpPW8mJm8uZWFzaW5nfHx0LmVhc2luZzt0LmlzRW1wdHlTdGVwP24uYXBwbHlFbXB0eVN0ZXAoaSk6bi5zZXRTdHlsZXModC5zdHlsZXMsaSxlLmVycm9ycyxlLm9wdGlvbnMpLGUucHJldmlvdXNOb2RlPXR9dmlzaXRLZXlmcmFtZXModCxlKXtjb25zdCBuPWUuY3VycmVudEFuaW1hdGVUaW1pbmdzLG89ZS5jdXJyZW50VGltZWxpbmUuZHVyYXRpb24saT1uLmR1cmF0aW9uLGE9ZS5jcmVhdGVTdWJDb250ZXh0KCkuY3VycmVudFRpbWVsaW5lO2EuZWFzaW5nPW4uZWFzaW5nLHQuc3R5bGVzLmZvckVhY2goKHQ9PnthLmZvcndhcmRUaW1lKCh0Lm9mZnNldHx8MCkqaSksYS5zZXRTdHlsZXModC5zdHlsZXMsdC5lYXNpbmcsZS5lcnJvcnMsZS5vcHRpb25zKSxhLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpfSkpLGUuY3VycmVudFRpbWVsaW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXMoYSksZS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUobytpKSxlLnByZXZpb3VzTm9kZT10fXZpc2l0UXVlcnkodCxlKXtjb25zdCBuPWUuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lLG89dC5vcHRpb25zfHx7fSxpPW8uZGVsYXk/angoby5kZWxheSk6MDtpJiYoNj09PWUucHJldmlvdXNOb2RlLnR5cGV8fDA9PW4mJmUuY3VycmVudFRpbWVsaW5lLmdldEN1cnJlbnRTdHlsZVByb3BlcnRpZXMoKS5sZW5ndGgpJiYoZS5jdXJyZW50VGltZWxpbmUuc25hcHNob3RDdXJyZW50U3R5bGVzKCksZS5wcmV2aW91c05vZGU9d08pO2xldCBhPW47Y29uc3Qgcj1lLmludm9rZVF1ZXJ5KHQuc2VsZWN0b3IsdC5vcmlnaW5hbFNlbGVjdG9yLHQubGltaXQsdC5pbmNsdWRlU2VsZiwhIW8ub3B0aW9uYWwsZS5lcnJvcnMpO2UuY3VycmVudFF1ZXJ5VG90YWw9ci5sZW5ndGg7bGV0IHM9bnVsbDtyLmZvckVhY2goKChuLG8pPT57ZS5jdXJyZW50UXVlcnlJbmRleD1vO2NvbnN0IHI9ZS5jcmVhdGVTdWJDb250ZXh0KHQub3B0aW9ucyxuKTtpJiZyLmRlbGF5TmV4dFN0ZXAoaSksbj09PWUuZWxlbWVudCYmKHM9ci5jdXJyZW50VGltZWxpbmUpLHJPKHRoaXMsdC5hbmltYXRpb24sciksci5jdXJyZW50VGltZWxpbmUuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksYT1NYXRoLm1heChhLHIuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKX0pKSxlLmN1cnJlbnRRdWVyeUluZGV4PTAsZS5jdXJyZW50UXVlcnlUb3RhbD0wLGUudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKGEpLHMmJihlLmN1cnJlbnRUaW1lbGluZS5tZXJnZVRpbWVsaW5lQ29sbGVjdGVkU3R5bGVzKHMpLGUuY3VycmVudFRpbWVsaW5lLnNuYXBzaG90Q3VycmVudFN0eWxlcygpKSxlLnByZXZpb3VzTm9kZT10fXZpc2l0U3RhZ2dlcih0LGUpe2NvbnN0IG49ZS5wYXJlbnRDb250ZXh0LG89ZS5jdXJyZW50VGltZWxpbmUsaT10LnRpbWluZ3MsYT1NYXRoLmFicyhpLmR1cmF0aW9uKSxyPWEqKGUuY3VycmVudFF1ZXJ5VG90YWwtMSk7bGV0IHM9YSplLmN1cnJlbnRRdWVyeUluZGV4O3N3aXRjaChpLmR1cmF0aW9uPDA/InJldmVyc2UiOmkuZWFzaW5nKXtjYXNlInJldmVyc2UiOnM9ci1zO2JyZWFrO2Nhc2UiZnVsbCI6cz1uLmN1cnJlbnRTdGFnZ2VyVGltZX1jb25zdCBsPWUuY3VycmVudFRpbWVsaW5lO3MmJmwuZGVsYXlOZXh0U3RlcChzKTtjb25zdCBjPWwuY3VycmVudFRpbWU7ck8odGhpcyx0LmFuaW1hdGlvbixlKSxlLnByZXZpb3VzTm9kZT10LG4uY3VycmVudFN0YWdnZXJUaW1lPW8uY3VycmVudFRpbWUtYysoby5zdGFydFRpbWUtbi5jdXJyZW50VGltZWxpbmUuc3RhcnRUaW1lKX19Y29uc3Qgd089e307Y2xhc3Mga097Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzKXt0aGlzLl9kcml2ZXI9dCx0aGlzLmVsZW1lbnQ9ZSx0aGlzLnN1Ykluc3RydWN0aW9ucz1uLHRoaXMuX2VudGVyQ2xhc3NOYW1lPW8sdGhpcy5fbGVhdmVDbGFzc05hbWU9aSx0aGlzLmVycm9ycz1hLHRoaXMudGltZWxpbmVzPXIsdGhpcy5wYXJlbnRDb250ZXh0PW51bGwsdGhpcy5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCx0aGlzLnByZXZpb3VzTm9kZT13Tyx0aGlzLnN1YkNvbnRleHRDb3VudD0wLHRoaXMub3B0aW9ucz17fSx0aGlzLmN1cnJlbnRRdWVyeUluZGV4PTAsdGhpcy5jdXJyZW50UXVlcnlUb3RhbD0wLHRoaXMuY3VycmVudFN0YWdnZXJUaW1lPTAsdGhpcy5jdXJyZW50VGltZWxpbmU9c3x8bmV3IFNPKHRoaXMuX2RyaXZlcixlLDApLHIucHVzaCh0aGlzLmN1cnJlbnRUaW1lbGluZSl9Z2V0IHBhcmFtcygpe3JldHVybiB0aGlzLm9wdGlvbnMucGFyYW1zfXVwZGF0ZU9wdGlvbnModCxlKXtpZighdClyZXR1cm47Y29uc3Qgbj10O2xldCBvPXRoaXMub3B0aW9ucztudWxsIT1uLmR1cmF0aW9uJiYoby5kdXJhdGlvbj1qeChuLmR1cmF0aW9uKSksbnVsbCE9bi5kZWxheSYmKG8uZGVsYXk9angobi5kZWxheSkpO2NvbnN0IGk9bi5wYXJhbXM7aWYoaSl7bGV0IHQ9by5wYXJhbXM7dHx8KHQ9dGhpcy5vcHRpb25zLnBhcmFtcz17fSksT2JqZWN0LmtleXMoaSkuZm9yRWFjaCgobj0+e2UmJnQuaGFzT3duUHJvcGVydHkobil8fCh0W25dPXRPKGlbbl0sdCx0aGlzLmVycm9ycykpfSkpfX1fY29weU9wdGlvbnMoKXtjb25zdCB0PXt9O2lmKHRoaXMub3B0aW9ucyl7Y29uc3QgZT10aGlzLm9wdGlvbnMucGFyYW1zO2lmKGUpe2NvbnN0IG49dC5wYXJhbXM9e307T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgodD0+e25bdF09ZVt0XX0pKX19cmV0dXJuIHR9Y3JlYXRlU3ViQ29udGV4dCh0PW51bGwsZSxuKXtjb25zdCBvPWV8fHRoaXMuZWxlbWVudCxpPW5ldyBrTyh0aGlzLl9kcml2ZXIsbyx0aGlzLnN1Ykluc3RydWN0aW9ucyx0aGlzLl9lbnRlckNsYXNzTmFtZSx0aGlzLl9sZWF2ZUNsYXNzTmFtZSx0aGlzLmVycm9ycyx0aGlzLnRpbWVsaW5lcyx0aGlzLmN1cnJlbnRUaW1lbGluZS5mb3JrKG8sbnx8MCkpO3JldHVybiBpLnByZXZpb3VzTm9kZT10aGlzLnByZXZpb3VzTm9kZSxpLmN1cnJlbnRBbmltYXRlVGltaW5ncz10aGlzLmN1cnJlbnRBbmltYXRlVGltaW5ncyxpLm9wdGlvbnM9dGhpcy5fY29weU9wdGlvbnMoKSxpLnVwZGF0ZU9wdGlvbnModCksaS5jdXJyZW50UXVlcnlJbmRleD10aGlzLmN1cnJlbnRRdWVyeUluZGV4LGkuY3VycmVudFF1ZXJ5VG90YWw9dGhpcy5jdXJyZW50UXVlcnlUb3RhbCxpLnBhcmVudENvbnRleHQ9dGhpcyx0aGlzLnN1YkNvbnRleHRDb3VudCsrLGl9dHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKHQpe3JldHVybiB0aGlzLnByZXZpb3VzTm9kZT13Tyx0aGlzLmN1cnJlbnRUaW1lbGluZT10aGlzLmN1cnJlbnRUaW1lbGluZS5mb3JrKHRoaXMuZWxlbWVudCx0KSx0aGlzLnRpbWVsaW5lcy5wdXNoKHRoaXMuY3VycmVudFRpbWVsaW5lKSx0aGlzLmN1cnJlbnRUaW1lbGluZX1hcHBlbmRJbnN0cnVjdGlvblRvVGltZWxpbmUodCxlLG4pe2NvbnN0IG89e2R1cmF0aW9uOm51bGwhPWU/ZTp0LmR1cmF0aW9uLGRlbGF5OnRoaXMuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKyhudWxsIT1uP246MCkrdC5kZWxheSxlYXNpbmc6IiJ9LGk9bmV3IERPKHRoaXMuX2RyaXZlcix0LmVsZW1lbnQsdC5rZXlmcmFtZXMsdC5wcmVTdHlsZVByb3BzLHQucG9zdFN0eWxlUHJvcHMsbyx0LnN0cmV0Y2hTdGFydGluZ0tleWZyYW1lKTtyZXR1cm4gdGhpcy50aW1lbGluZXMucHVzaChpKSxvfWluY3JlbWVudFRpbWUodCl7dGhpcy5jdXJyZW50VGltZWxpbmUuZm9yd2FyZFRpbWUodGhpcy5jdXJyZW50VGltZWxpbmUuZHVyYXRpb24rdCl9ZGVsYXlOZXh0U3RlcCh0KXt0PjAmJnRoaXMuY3VycmVudFRpbWVsaW5lLmRlbGF5TmV4dFN0ZXAodCl9aW52b2tlUXVlcnkodCxlLG4sbyxpLGEpe2xldCByPVtdO2lmKG8mJnIucHVzaCh0aGlzLmVsZW1lbnQpLHQubGVuZ3RoPjApe3Q9KHQ9dC5yZXBsYWNlKHZPLCIuIit0aGlzLl9lbnRlckNsYXNzTmFtZSkpLnJlcGxhY2UoeE8sIi4iK3RoaXMuX2xlYXZlQ2xhc3NOYW1lKTtsZXQgZT10aGlzLl9kcml2ZXIucXVlcnkodGhpcy5lbGVtZW50LHQsMSE9bik7MCE9PW4mJihlPW48MD9lLnNsaWNlKGUubGVuZ3RoK24sZS5sZW5ndGgpOmUuc2xpY2UoMCxuKSksci5wdXNoKC4uLmUpfXJldHVybiBpfHwwIT1yLmxlbmd0aHx8YS5wdXNoKGBcYHF1ZXJ5KCIke2V9IilcYCByZXR1cm5lZCB6ZXJvIGVsZW1lbnRzLiAoVXNlIFxgcXVlcnkoIiR7ZX0iLCB7IG9wdGlvbmFsOiB0cnVlIH0pXGAgaWYgeW91IHdpc2ggdG8gYWxsb3cgdGhpcy4pYCkscn19Y2xhc3MgU097Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fZHJpdmVyPXQsdGhpcy5lbGVtZW50PWUsdGhpcy5zdGFydFRpbWU9bix0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXA9byx0aGlzLmR1cmF0aW9uPTAsdGhpcy5fcHJldmlvdXNLZXlmcmFtZT17fSx0aGlzLl9jdXJyZW50S2V5ZnJhbWU9e30sdGhpcy5fa2V5ZnJhbWVzPW5ldyBNYXAsdGhpcy5fc3R5bGVTdW1tYXJ5PXt9LHRoaXMuX3BlbmRpbmdTdHlsZXM9e30sdGhpcy5fYmFja0ZpbGw9e30sdGhpcy5fY3VycmVudEVtcHR5U3RlcEtleWZyYW1lPW51bGwsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwfHwodGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwPW5ldyBNYXApLHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXM9T2JqZWN0LmNyZWF0ZSh0aGlzLl9iYWNrRmlsbCx7fSksdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXM9dGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwLmdldChlKSx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlc3x8KHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzPXRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwLnNldChlLHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMpKSx0aGlzLl9sb2FkS2V5ZnJhbWUoKX1jb250YWluc0FuaW1hdGlvbigpe3N3aXRjaCh0aGlzLl9rZXlmcmFtZXMuc2l6ZSl7Y2FzZSAwOnJldHVybiExO2Nhc2UgMTpyZXR1cm4gdGhpcy5nZXRDdXJyZW50U3R5bGVQcm9wZXJ0aWVzKCkubGVuZ3RoPjA7ZGVmYXVsdDpyZXR1cm4hMH19Z2V0Q3VycmVudFN0eWxlUHJvcGVydGllcygpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLl9jdXJyZW50S2V5ZnJhbWUpfWdldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLnN0YXJ0VGltZSt0aGlzLmR1cmF0aW9ufWRlbGF5TmV4dFN0ZXAodCl7Y29uc3QgZT0xPT10aGlzLl9rZXlmcmFtZXMuc2l6ZSYmT2JqZWN0LmtleXModGhpcy5fcGVuZGluZ1N0eWxlcykubGVuZ3RoO3RoaXMuZHVyYXRpb258fGU/KHRoaXMuZm9yd2FyZFRpbWUodGhpcy5jdXJyZW50VGltZSt0KSxlJiZ0aGlzLnNuYXBzaG90Q3VycmVudFN0eWxlcygpKTp0aGlzLnN0YXJ0VGltZSs9dH1mb3JrKHQsZSl7cmV0dXJuIHRoaXMuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksbmV3IFNPKHRoaXMuX2RyaXZlcix0LGV8fHRoaXMuY3VycmVudFRpbWUsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwKX1fbG9hZEtleWZyYW1lKCl7dGhpcy5fY3VycmVudEtleWZyYW1lJiYodGhpcy5fcHJldmlvdXNLZXlmcmFtZT10aGlzLl9jdXJyZW50S2V5ZnJhbWUpLHRoaXMuX2N1cnJlbnRLZXlmcmFtZT10aGlzLl9rZXlmcmFtZXMuZ2V0KHRoaXMuZHVyYXRpb24pLHRoaXMuX2N1cnJlbnRLZXlmcmFtZXx8KHRoaXMuX2N1cnJlbnRLZXlmcmFtZT1PYmplY3QuY3JlYXRlKHRoaXMuX2JhY2tGaWxsLHt9KSx0aGlzLl9rZXlmcmFtZXMuc2V0KHRoaXMuZHVyYXRpb24sdGhpcy5fY3VycmVudEtleWZyYW1lKSl9Zm9yd2FyZEZyYW1lKCl7dGhpcy5kdXJhdGlvbis9MSx0aGlzLl9sb2FkS2V5ZnJhbWUoKX1mb3J3YXJkVGltZSh0KXt0aGlzLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpLHRoaXMuZHVyYXRpb249dCx0aGlzLl9sb2FkS2V5ZnJhbWUoKX1fdXBkYXRlU3R5bGUodCxlKXt0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzW3RdPWUsdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXNbdF09ZSx0aGlzLl9zdHlsZVN1bW1hcnlbdF09e3RpbWU6dGhpcy5jdXJyZW50VGltZSx2YWx1ZTplfX1hbGxvd09ubHlUaW1lbGluZVN0eWxlcygpe3JldHVybiB0aGlzLl9jdXJyZW50RW1wdHlTdGVwS2V5ZnJhbWUhPT10aGlzLl9jdXJyZW50S2V5ZnJhbWV9YXBwbHlFbXB0eVN0ZXAodCl7dCYmKHRoaXMuX3ByZXZpb3VzS2V5ZnJhbWUuZWFzaW5nPXQpLE9iamVjdC5rZXlzKHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzKS5mb3JFYWNoKCh0PT57dGhpcy5fYmFja0ZpbGxbdF09dGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXNbdF18fGV4LHRoaXMuX2N1cnJlbnRLZXlmcmFtZVt0XT1leH0pKSx0aGlzLl9jdXJyZW50RW1wdHlTdGVwS2V5ZnJhbWU9dGhpcy5fY3VycmVudEtleWZyYW1lfXNldFN0eWxlcyh0LGUsbixvKXtlJiYodGhpcy5fcHJldmlvdXNLZXlmcmFtZS5lYXNpbmc9ZSk7Y29uc3QgaT1vJiZvLnBhcmFtc3x8e30sYT0oZnVuY3Rpb24gcih0LGUpe2NvbnN0IG49e307bGV0IG87cmV0dXJuIHQuZm9yRWFjaCgodD0+eyIqIj09PXQ/KG89b3x8T2JqZWN0LmtleXMoZSksby5mb3JFYWNoKCh0PT57blt0XT1leH0pKSk6WXgodCwhMSxuKX0pKSxufQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQsdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXMpO09iamVjdC5rZXlzKGEpLmZvckVhY2goKHQ9Pntjb25zdCBlPXRPKGFbdF0saSxuKTt0aGlzLl9wZW5kaW5nU3R5bGVzW3RdPWUsdGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcy5oYXNPd25Qcm9wZXJ0eSh0KXx8KHRoaXMuX2JhY2tGaWxsW3RdPXRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzLmhhc093blByb3BlcnR5KHQpP3RoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzW3RdOmV4KSx0aGlzLl91cGRhdGVTdHlsZSh0LGUpfSkpfWFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpe2NvbnN0IHQ9dGhpcy5fcGVuZGluZ1N0eWxlcyxlPU9iamVjdC5rZXlzKHQpOzAhPWUubGVuZ3RoJiYodGhpcy5fcGVuZGluZ1N0eWxlcz17fSxlLmZvckVhY2goKGU9Pnt0aGlzLl9jdXJyZW50S2V5ZnJhbWVbZV09dFtlXX0pKSxPYmplY3Qua2V5cyh0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzKS5mb3JFYWNoKCh0PT57dGhpcy5fY3VycmVudEtleWZyYW1lLmhhc093blByb3BlcnR5KHQpfHwodGhpcy5fY3VycmVudEtleWZyYW1lW3RdPXRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXNbdF0pfSkpKX1zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKXtPYmplY3Qua2V5cyh0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzW3RdO3RoaXMuX3BlbmRpbmdTdHlsZXNbdF09ZSx0aGlzLl91cGRhdGVTdHlsZSh0LGUpfSkpfWdldEZpbmFsS2V5ZnJhbWUoKXtyZXR1cm4gdGhpcy5fa2V5ZnJhbWVzLmdldCh0aGlzLmR1cmF0aW9uKX1nZXQgcHJvcGVydGllcygpe2NvbnN0IHQ9W107Zm9yKGxldCBlIGluIHRoaXMuX2N1cnJlbnRLZXlmcmFtZSl0LnB1c2goZSk7cmV0dXJuIHR9bWVyZ2VUaW1lbGluZUNvbGxlY3RlZFN0eWxlcyh0KXtPYmplY3Qua2V5cyh0Ll9zdHlsZVN1bW1hcnkpLmZvckVhY2goKGU9Pntjb25zdCBuPXRoaXMuX3N0eWxlU3VtbWFyeVtlXSxvPXQuX3N0eWxlU3VtbWFyeVtlXTsoIW58fG8udGltZT5uLnRpbWUpJiZ0aGlzLl91cGRhdGVTdHlsZShlLG8udmFsdWUpfSkpfWJ1aWxkS2V5ZnJhbWVzKCl7dGhpcy5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKTtjb25zdCB0PW5ldyBTZXQsZT1uZXcgU2V0LG49MT09PXRoaXMuX2tleWZyYW1lcy5zaXplJiYwPT09dGhpcy5kdXJhdGlvbjtsZXQgbz1bXTt0aGlzLl9rZXlmcmFtZXMuZm9yRWFjaCgoKGksYSk9Pntjb25zdCByPVl4KGksITApO09iamVjdC5rZXlzKHIpLmZvckVhY2goKG49Pntjb25zdCBvPXJbbl07IiEiPT1vP3QuYWRkKG4pOm89PWV4JiZlLmFkZChuKX0pKSxufHwoci5vZmZzZXQ9YS90aGlzLmR1cmF0aW9uKSxvLnB1c2gocil9KSk7Y29uc3QgaT10LnNpemU/ZU8odC52YWx1ZXMoKSk6W10sYT1lLnNpemU/ZU8oZS52YWx1ZXMoKSk6W107aWYobil7Y29uc3QgdD1vWzBdLGU9V3godCk7dC5vZmZzZXQ9MCxlLm9mZnNldD0xLG89W3QsZV19cmV0dXJuIENPKHRoaXMuZWxlbWVudCxvLGksYSx0aGlzLmR1cmF0aW9uLHRoaXMuc3RhcnRUaW1lLHRoaXMuZWFzaW5nLCExKX19Y2xhc3MgRE8gZXh0ZW5kcyBTT3tjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyPSExKXtzdXBlcih0LGUsYS5kZWxheSksdGhpcy5rZXlmcmFtZXM9bix0aGlzLnByZVN0eWxlUHJvcHM9byx0aGlzLnBvc3RTdHlsZVByb3BzPWksdGhpcy5fc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWU9cix0aGlzLnRpbWluZ3M9e2R1cmF0aW9uOmEuZHVyYXRpb24sZGVsYXk6YS5kZWxheSxlYXNpbmc6YS5lYXNpbmd9fWNvbnRhaW5zQW5pbWF0aW9uKCl7cmV0dXJuIHRoaXMua2V5ZnJhbWVzLmxlbmd0aD4xfWJ1aWxkS2V5ZnJhbWVzKCl7bGV0IHQ9dGhpcy5rZXlmcmFtZXMse2RlbGF5OmUsZHVyYXRpb246bixlYXNpbmc6b309dGhpcy50aW1pbmdzO2lmKHRoaXMuX3N0cmV0Y2hTdGFydGluZ0tleWZyYW1lJiZlKXtjb25zdCBpPVtdLGE9bitlLHI9ZS9hLHM9WXgodFswXSwhMSk7cy5vZmZzZXQ9MCxpLnB1c2gocyk7Y29uc3QgbD1ZeCh0WzBdLCExKTtsLm9mZnNldD1FTyhyKSxpLnB1c2gobCk7Y29uc3QgYz10Lmxlbmd0aC0xO2ZvcihsZXQgbz0xO288PWM7bysrKXtsZXQgcj1ZeCh0W29dLCExKTtyLm9mZnNldD1FTygoZStyLm9mZnNldCpuKS9hKSxpLnB1c2gocil9bj1hLGU9MCxvPSIiLHQ9aX1yZXR1cm4gQ08odGhpcy5lbGVtZW50LHQsdGhpcy5wcmVTdHlsZVByb3BzLHRoaXMucG9zdFN0eWxlUHJvcHMsbixlLG8sITApfX1mdW5jdGlvbiBFTyh0LGU9Myl7Y29uc3Qgbj1NYXRoLnBvdygxMCxlLTEpO3JldHVybiBNYXRoLnJvdW5kKHQqbikvbn1jbGFzcyBST3t9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIEFPIGV4dGVuZHMgUk97bm9ybWFsaXplUHJvcGVydHlOYW1lKHQsZSl7cmV0dXJuIG9PKHQpfW5vcm1hbGl6ZVN0eWxlVmFsdWUodCxlLG4sbyl7bGV0IGk9IiI7Y29uc3QgYT1uLnRvU3RyaW5nKCkudHJpbSgpO2lmKFRPW2VdJiYwIT09biYmIjAiIT09bilpZigibnVtYmVyIj09dHlwZW9mIG4paT0icHgiO2Vsc2V7Y29uc3QgZT1uLm1hdGNoKC9eWystXT9bXGRcLl0rKFthLXpdKikkLyk7ZSYmMD09ZVsxXS5sZW5ndGgmJm8ucHVzaChgUGxlYXNlIHByb3ZpZGUgYSBDU1MgdW5pdCB2YWx1ZSBmb3IgJHt0fToke259YCl9cmV0dXJuIGEraX19Y29uc3QgVE89KGZ1bmN0aW9uIE5PKHQpe2NvbnN0IGU9e307cmV0dXJuIHQuZm9yRWFjaCgodD0+ZVt0XT0hMCkpLGV9KSgid2lkdGgsaGVpZ2h0LG1pbldpZHRoLG1pbkhlaWdodCxtYXhXaWR0aCxtYXhIZWlnaHQsbGVmdCx0b3AsYm90dG9tLHJpZ2h0LGZvbnRTaXplLG91dGxpbmVXaWR0aCxvdXRsaW5lT2Zmc2V0LHBhZGRpbmdUb3AscGFkZGluZ0xlZnQscGFkZGluZ0JvdHRvbSxwYWRkaW5nUmlnaHQsbWFyZ2luVG9wLG1hcmdpbkxlZnQsbWFyZ2luQm90dG9tLG1hcmdpblJpZ2h0LGJvcmRlclJhZGl1cyxib3JkZXJXaWR0aCxib3JkZXJUb3BXaWR0aCxib3JkZXJMZWZ0V2lkdGgsYm9yZGVyUmlnaHRXaWR0aCxib3JkZXJCb3R0b21XaWR0aCx0ZXh0SW5kZW50LHBlcnNwZWN0aXZlIi5zcGxpdCgiLCIpKTtmdW5jdGlvbiB6Tyh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtKXtyZXR1cm57dHlwZTowLGVsZW1lbnQ6dCx0cmlnZ2VyTmFtZTplLGlzUmVtb3ZhbFRyYW5zaXRpb246aSxmcm9tU3RhdGU6bixmcm9tU3R5bGVzOmEsdG9TdGF0ZTpvLHRvU3R5bGVzOnIsdGltZWxpbmVzOnMscXVlcmllZEVsZW1lbnRzOmwscHJlU3R5bGVQcm9wczpjLHBvc3RTdHlsZVByb3BzOmQsdG90YWxUaW1lOnAsZXJyb3JzOm19fWNvbnN0IElPPXt9O2NsYXNzIEhPe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl90cmlnZ2VyTmFtZT10LHRoaXMuYXN0PWUsdGhpcy5fc3RhdGVTdHlsZXM9bn1tYXRjaCh0LGUsbixvKXtyZXR1cm4oZnVuY3Rpb24gaSh0LGUsbixvLGEpe3JldHVybiB0LnNvbWUoKHQ9PnQoZSxuLG8sYSkpKX0pKHRoaXMuYXN0Lm1hdGNoZXJzLHQsZSxuLG8pfWJ1aWxkU3R5bGVzKHQsZSxuKXtjb25zdCBvPXRoaXMuX3N0YXRlU3R5bGVzWyIqIl0saT10aGlzLl9zdGF0ZVN0eWxlc1t0XSxhPW8/by5idWlsZFN0eWxlcyhlLG4pOnt9O3JldHVybiBpP2kuYnVpbGRTdHlsZXMoZSxuKTphfWJ1aWxkKHQsZSxuLG8saSxhLHIscyxsLGMpe2NvbnN0IGQ9W10scD10aGlzLmFzdC5vcHRpb25zJiZ0aGlzLmFzdC5vcHRpb25zLnBhcmFtc3x8SU8sbT10aGlzLmJ1aWxkU3R5bGVzKG4sciYmci5wYXJhbXN8fElPLGQpLHU9cyYmcy5wYXJhbXN8fElPLGY9dGhpcy5idWlsZFN0eWxlcyhvLHUsZCksZz1uZXcgU2V0LGg9bmV3IE1hcCxiPW5ldyBNYXAseT0idm9pZCI9PT1vLF89e3BhcmFtczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scCksdSl9LEM9Yz9bXTpPTyh0LGUsdGhpcy5hc3QuYW5pbWF0aW9uLGksYSxtLGYsXyxsLGQpO2xldCBNPTA7aWYoQy5mb3JFYWNoKCh0PT57TT1NYXRoLm1heCh0LmR1cmF0aW9uK3QuZGVsYXksTSl9KSksZC5sZW5ndGgpcmV0dXJuIHpPKGUsdGhpcy5fdHJpZ2dlck5hbWUsbixvLHksbSxmLFtdLFtdLGgsYixNLGQpO0MuZm9yRWFjaCgodD0+e2NvbnN0IG49dC5lbGVtZW50LG89TXgoaCxuLHt9KTt0LnByZVN0eWxlUHJvcHMuZm9yRWFjaCgodD0+b1t0XT0hMCkpO2NvbnN0IGk9TXgoYixuLHt9KTt0LnBvc3RTdHlsZVByb3BzLmZvckVhY2goKHQ9PmlbdF09ITApKSxuIT09ZSYmZy5hZGQobil9KSk7Y29uc3Qgdj1lTyhnLnZhbHVlcygpKTtyZXR1cm4gek8oZSx0aGlzLl90cmlnZ2VyTmFtZSxuLG8seSxtLGYsQyx2LGgsYixNKX19Y2xhc3MgRk97Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuc3R5bGVzPXQsdGhpcy5kZWZhdWx0UGFyYW1zPWUsdGhpcy5ub3JtYWxpemVyPW59YnVpbGRTdHlsZXModCxlKXtjb25zdCBuPXt9LG89V3godGhpcy5kZWZhdWx0UGFyYW1zKTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgoZT0+e2NvbnN0IG49dFtlXTtudWxsIT1uJiYob1tlXT1uKX0pKSx0aGlzLnN0eWxlcy5zdHlsZXMuZm9yRWFjaCgodD0+e2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Y29uc3QgaT10O09iamVjdC5rZXlzKGkpLmZvckVhY2goKHQ9PntsZXQgYT1pW3RdO2EubGVuZ3RoPjEmJihhPXRPKGEsbyxlKSk7Y29uc3Qgcj10aGlzLm5vcm1hbGl6ZXIubm9ybWFsaXplUHJvcGVydHlOYW1lKHQsZSk7YT10aGlzLm5vcm1hbGl6ZXIubm9ybWFsaXplU3R5bGVWYWx1ZSh0LHIsYSxlKSxuW3JdPWF9KSl9fSkpLG59fWNsYXNzIExPe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLm5hbWU9dCx0aGlzLmFzdD1lLHRoaXMuX25vcm1hbGl6ZXI9bix0aGlzLnRyYW5zaXRpb25GYWN0b3JpZXM9W10sdGhpcy5zdGF0ZXM9e30sZS5zdGF0ZXMuZm9yRWFjaCgodD0+e3RoaXMuc3RhdGVzW3QubmFtZV09bmV3IEZPKHQuc3R5bGUsdC5vcHRpb25zJiZ0Lm9wdGlvbnMucGFyYW1zfHx7fSxuKX0pKSxCTyh0aGlzLnN0YXRlcywidHJ1ZSIsIjEiKSxCTyh0aGlzLnN0YXRlcywiZmFsc2UiLCIwIiksZS50cmFuc2l0aW9ucy5mb3JFYWNoKChlPT57dGhpcy50cmFuc2l0aW9uRmFjdG9yaWVzLnB1c2gobmV3IEhPKHQsZSx0aGlzLnN0YXRlcykpfSkpLHRoaXMuZmFsbGJhY2tUcmFuc2l0aW9uPShmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gbmV3IEhPKHQse3R5cGU6MSxhbmltYXRpb246e3R5cGU6MixzdGVwczpbXSxvcHRpb25zOm51bGx9LG1hdGNoZXJzOlsodCxlKT0+ITBdLG9wdGlvbnM6bnVsbCxxdWVyeUNvdW50OjAsZGVwQ291bnQ6MH0sZSl9KSh0LHRoaXMuc3RhdGVzKX1nZXQgY29udGFpbnNRdWVyaWVzKCl7cmV0dXJuIHRoaXMuYXN0LnF1ZXJ5Q291bnQ+MH1tYXRjaFRyYW5zaXRpb24odCxlLG4sbyl7cmV0dXJuIHRoaXMudHJhbnNpdGlvbkZhY3Rvcmllcy5maW5kKChpPT5pLm1hdGNoKHQsZSxuLG8pKSl8fG51bGx9bWF0Y2hTdHlsZXModCxlLG4pe3JldHVybiB0aGlzLmZhbGxiYWNrVHJhbnNpdGlvbi5idWlsZFN0eWxlcyh0LGUsbil9fWZ1bmN0aW9uIEJPKHQsZSxuKXt0Lmhhc093blByb3BlcnR5KGUpP3QuaGFzT3duUHJvcGVydHkobil8fCh0W25dPXRbZV0pOnQuaGFzT3duUHJvcGVydHkobikmJih0W2VdPXRbbl0pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBWTz1uZXcgTU87Y2xhc3Mgak97Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYm9keU5vZGU9dCx0aGlzLl9kcml2ZXI9ZSx0aGlzLl9ub3JtYWxpemVyPW4sdGhpcy5fYW5pbWF0aW9ucz17fSx0aGlzLl9wbGF5ZXJzQnlJZD17fSx0aGlzLnBsYXllcnM9W119cmVnaXN0ZXIodCxlKXtjb25zdCBuPVtdLG89Zk8odGhpcy5fZHJpdmVyLGUsbik7aWYobi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gYnVpbGQgdGhlIGFuaW1hdGlvbiBkdWUgdG8gdGhlIGZvbGxvd2luZyBlcnJvcnM6ICR7bi5qb2luKCJcbiIpfWApO3RoaXMuX2FuaW1hdGlvbnNbdF09b31fYnVpbGRQbGF5ZXIodCxlLG4pe2NvbnN0IG89dC5lbGVtZW50LGk9YngoMCx0aGlzLl9ub3JtYWxpemVyLDAsdC5rZXlmcmFtZXMsZSxuKTtyZXR1cm4gdGhpcy5fZHJpdmVyLmFuaW1hdGUobyxpLHQuZHVyYXRpb24sdC5kZWxheSx0LmVhc2luZyxbXSwhMCl9Y3JlYXRlKHQsZSxuPXt9KXtjb25zdCBvPVtdLGk9dGhpcy5fYW5pbWF0aW9uc1t0XTtsZXQgYTtjb25zdCByPW5ldyBNYXA7aWYoaT8oYT1PTyh0aGlzLl9kcml2ZXIsZSxpLEl4LEh4LHt9LHt9LG4sVk8sbyksYS5mb3JFYWNoKCh0PT57Y29uc3QgZT1NeChyLHQuZWxlbWVudCx7fSk7dC5wb3N0U3R5bGVQcm9wcy5mb3JFYWNoKCh0PT5lW3RdPW51bGwpKX0pKSk6KG8ucHVzaCgiVGhlIHJlcXVlc3RlZCBhbmltYXRpb24gZG9lc24ndCBleGlzdCBvciBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZCIpLGE9W10pLG8ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGNyZWF0ZSB0aGUgYW5pbWF0aW9uIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yczogJHtvLmpvaW4oIlxuIil9YCk7ci5mb3JFYWNoKCgodCxlKT0+e09iamVjdC5rZXlzKHQpLmZvckVhY2goKG49Pnt0W25dPXRoaXMuX2RyaXZlci5jb21wdXRlU3R5bGUoZSxuLGV4KX0pKX0pKTtjb25zdCBzPWh4KGEubWFwKCh0PT57Y29uc3QgZT1yLmdldCh0LmVsZW1lbnQpO3JldHVybiB0aGlzLl9idWlsZFBsYXllcih0LHt9LGUpfSkpKTtyZXR1cm4gdGhpcy5fcGxheWVyc0J5SWRbdF09cyxzLm9uRGVzdHJveSgoKCk9PnRoaXMuZGVzdHJveSh0KSkpLHRoaXMucGxheWVycy5wdXNoKHMpLHN9ZGVzdHJveSh0KXtjb25zdCBlPXRoaXMuX2dldFBsYXllcih0KTtlLmRlc3Ryb3koKSxkZWxldGUgdGhpcy5fcGxheWVyc0J5SWRbdF07Y29uc3Qgbj10aGlzLnBsYXllcnMuaW5kZXhPZihlKTtuPj0wJiZ0aGlzLnBsYXllcnMuc3BsaWNlKG4sMSl9X2dldFBsYXllcih0KXtjb25zdCBlPXRoaXMuX3BsYXllcnNCeUlkW3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGZpbmQgdGhlIHRpbWVsaW5lIHBsYXllciByZWZlcmVuY2VkIGJ5ICR7dH1gKTtyZXR1cm4gZX1saXN0ZW4odCxlLG4sbyl7Y29uc3QgaT1DeChlLCIiLCIiLCIiKTtyZXR1cm4geXgodGhpcy5fZ2V0UGxheWVyKHQpLG4saSxvKSwoKT0+e319Y29tbWFuZCh0LGUsbixvKXtpZigicmVnaXN0ZXIiPT1uKXJldHVybiB2b2lkIHRoaXMucmVnaXN0ZXIodCxvWzBdKTtpZigiY3JlYXRlIj09bilyZXR1cm4gdm9pZCB0aGlzLmNyZWF0ZSh0LGUsb1swXXx8e30pO2NvbnN0IGk9dGhpcy5fZ2V0UGxheWVyKHQpO3N3aXRjaChuKXtjYXNlInBsYXkiOmkucGxheSgpO2JyZWFrO2Nhc2UicGF1c2UiOmkucGF1c2UoKTticmVhaztjYXNlInJlc2V0IjppLnJlc2V0KCk7YnJlYWs7Y2FzZSJyZXN0YXJ0IjppLnJlc3RhcnQoKTticmVhaztjYXNlImZpbmlzaCI6aS5maW5pc2goKTticmVhaztjYXNlImluaXQiOmkuaW5pdCgpO2JyZWFrO2Nhc2Uic2V0UG9zaXRpb24iOmkuc2V0UG9zaXRpb24ocGFyc2VGbG9hdChvWzBdKSk7YnJlYWs7Y2FzZSJkZXN0cm95Ijp0aGlzLmRlc3Ryb3kodCl9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgVU89Im5nLWFuaW1hdGUtcXVldWVkIixHTz0ibmctYW5pbWF0ZS1kaXNhYmxlZCIsV089Ii5uZy1hbmltYXRlLWRpc2FibGVkIixZTz1bXSxxTz17bmFtZXNwYWNlSWQ6IiIsc2V0Rm9yUmVtb3ZhbDohMSxzZXRGb3JNb3ZlOiExLGhhc0FuaW1hdGlvbjohMSxyZW1vdmVkQmVmb3JlUXVlcmllZDohMX0sWk89e25hbWVzcGFjZUlkOiIiLHNldEZvck1vdmU6ITEsc2V0Rm9yUmVtb3ZhbDohMSxoYXNBbmltYXRpb246ITEscmVtb3ZlZEJlZm9yZVF1ZXJpZWQ6ITB9O2NsYXNzIFhPe2NvbnN0cnVjdG9yKHQsZT0iIil7dGhpcy5uYW1lc3BhY2VJZD1lO2NvbnN0IG49dCYmdC5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKTtpZih0aGlzLnZhbHVlPShmdW5jdGlvbiBvKHQpe3JldHVybiBudWxsIT10P3Q6bnVsbH0pKG4/dC52YWx1ZTp0KSxuKXtjb25zdCBlPVd4KHQpO2RlbGV0ZSBlLnZhbHVlLHRoaXMub3B0aW9ucz1lfWVsc2UgdGhpcy5vcHRpb25zPXt9O3RoaXMub3B0aW9ucy5wYXJhbXN8fCh0aGlzLm9wdGlvbnMucGFyYW1zPXt9KX1nZXQgcGFyYW1zKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5wYXJhbXN9YWJzb3JiT3B0aW9ucyh0KXtjb25zdCBlPXQucGFyYW1zO2lmKGUpe2NvbnN0IHQ9dGhpcy5vcHRpb25zLnBhcmFtcztPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChuPT57bnVsbD09dFtuXSYmKHRbbl09ZVtuXSl9KSl9fX1jb25zdCBLTz0idm9pZCIsSk89bmV3IFhPKEtPKTtjbGFzcyBRT3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5pZD10LHRoaXMuaG9zdEVsZW1lbnQ9ZSx0aGlzLl9lbmdpbmU9bix0aGlzLnBsYXllcnM9W10sdGhpcy5fdHJpZ2dlcnM9e30sdGhpcy5fcXVldWU9W10sdGhpcy5fZWxlbWVudExpc3RlbmVycz1uZXcgTWFwLHRoaXMuX2hvc3RDbGFzc05hbWU9Im5nLXRucy0iK3QsYVAoZSx0aGlzLl9ob3N0Q2xhc3NOYW1lKX1saXN0ZW4odCxlLG4sbyl7aWYoIXRoaXMuX3RyaWdnZXJzLmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGxpc3RlbiBvbiB0aGUgYW5pbWF0aW9uIHRyaWdnZXIgZXZlbnQgIiR7bn0iIGJlY2F1c2UgdGhlIGFuaW1hdGlvbiB0cmlnZ2VyICIke2V9IiBkb2Vzbid0IGV4aXN0IWApO2lmKG51bGw9PW58fDA9PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGxpc3RlbiBvbiB0aGUgYW5pbWF0aW9uIHRyaWdnZXIgIiR7ZX0iIGJlY2F1c2UgdGhlIHByb3ZpZGVkIGV2ZW50IGlzIHVuZGVmaW5lZCFgKTtpZighKGZ1bmN0aW9uIGkodCl7cmV0dXJuInN0YXJ0Ij09dHx8ImRvbmUiPT10fSkobikpdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvdmlkZWQgYW5pbWF0aW9uIHRyaWdnZXIgZXZlbnQgIiR7bn0iIGZvciB0aGUgYW5pbWF0aW9uIHRyaWdnZXIgIiR7ZX0iIGlzIG5vdCBzdXBwb3J0ZWQhYCk7Y29uc3QgYT1NeCh0aGlzLl9lbGVtZW50TGlzdGVuZXJzLHQsW10pLHI9e25hbWU6ZSxwaGFzZTpuLGNhbGxiYWNrOm99O2EucHVzaChyKTtjb25zdCBzPU14KHRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQsdCx7fSk7cmV0dXJuIHMuaGFzT3duUHJvcGVydHkoZSl8fChhUCh0LEZ4KSxhUCh0LCJuZy10cmlnZ2VyLSIrZSksc1tlXT1KTyksKCk9Pnt0aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKCk9Pntjb25zdCB0PWEuaW5kZXhPZihyKTt0Pj0wJiZhLnNwbGljZSh0LDEpLHRoaXMuX3RyaWdnZXJzW2VdfHxkZWxldGUgc1tlXX0pKX19cmVnaXN0ZXIodCxlKXtyZXR1cm4hdGhpcy5fdHJpZ2dlcnNbdF0mJih0aGlzLl90cmlnZ2Vyc1t0XT1lLCEwKX1fZ2V0VHJpZ2dlcih0KXtjb25zdCBlPXRoaXMuX3RyaWdnZXJzW3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3ZpZGVkIGFuaW1hdGlvbiB0cmlnZ2VyICIke3R9IiBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZCFgKTtyZXR1cm4gZX10cmlnZ2VyKHQsZSxuLG89ITApe2NvbnN0IGk9dGhpcy5fZ2V0VHJpZ2dlcihlKSxhPW5ldyB0UCh0aGlzLmlkLGUsdCk7bGV0IHI9dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5nZXQodCk7cnx8KGFQKHQsRngpLGFQKHQsIm5nLXRyaWdnZXItIitlKSx0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LnNldCh0LHI9e30pKTtsZXQgcz1yW2VdO2NvbnN0IGw9bmV3IFhPKG4sdGhpcy5pZCk7aWYoIShuJiZuLmhhc093blByb3BlcnR5KCJ2YWx1ZSIpKSYmcyYmbC5hYnNvcmJPcHRpb25zKHMub3B0aW9ucykscltlXT1sLHN8fChzPUpPKSxsLnZhbHVlIT09S08mJnMudmFsdWU9PT1sLnZhbHVlKXtpZighKGZ1bmN0aW9uIGUodCxuKXtjb25zdCBvPU9iamVjdC5rZXlzKHQpLGk9T2JqZWN0LmtleXMobik7aWYoby5sZW5ndGghPWkubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgZT0wO2U8by5sZW5ndGg7ZSsrKXtjb25zdCBpPW9bZV07aWYoIW4uaGFzT3duUHJvcGVydHkoaSl8fHRbaV0hPT1uW2ldKXJldHVybiExfXJldHVybiEwfSkocy5wYXJhbXMsbC5wYXJhbXMpKXtjb25zdCBlPVtdLG49aS5tYXRjaFN0eWxlcyhzLnZhbHVlLHMucGFyYW1zLGUpLG89aS5tYXRjaFN0eWxlcyhsLnZhbHVlLGwucGFyYW1zLGUpO2UubGVuZ3RoP3RoaXMuX2VuZ2luZS5yZXBvcnRFcnJvcihlKTp0aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKCk9PntLeCh0LG4pLFh4KHQsbyl9KSl9cmV0dXJufWNvbnN0IGM9TXgodGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQsdCxbXSk7Yy5mb3JFYWNoKCh0PT57dC5uYW1lc3BhY2VJZD09dGhpcy5pZCYmdC50cmlnZ2VyTmFtZT09ZSYmdC5xdWV1ZWQmJnQuZGVzdHJveSgpfSkpO2xldCBkPWkubWF0Y2hUcmFuc2l0aW9uKHMudmFsdWUsbC52YWx1ZSx0LGwucGFyYW1zKSxwPSExO2lmKCFkKXtpZighbylyZXR1cm47ZD1pLmZhbGxiYWNrVHJhbnNpdGlvbixwPSEwfXJldHVybiB0aGlzLl9lbmdpbmUudG90YWxRdWV1ZWRQbGF5ZXJzKyssdGhpcy5fcXVldWUucHVzaCh7ZWxlbWVudDp0LHRyaWdnZXJOYW1lOmUsdHJhbnNpdGlvbjpkLGZyb21TdGF0ZTpzLHRvU3RhdGU6bCxwbGF5ZXI6YSxpc0ZhbGxiYWNrVHJhbnNpdGlvbjpwfSkscHx8KGFQKHQsVU8pLGEub25TdGFydCgoKCk9PntyUCh0LFVPKX0pKSksYS5vbkRvbmUoKCgpPT57bGV0IGU9dGhpcy5wbGF5ZXJzLmluZGV4T2YoYSk7ZT49MCYmdGhpcy5wbGF5ZXJzLnNwbGljZShlLDEpO2NvbnN0IG49dGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQuZ2V0KHQpO2lmKG4pe2xldCB0PW4uaW5kZXhPZihhKTt0Pj0wJiZuLnNwbGljZSh0LDEpfX0pKSx0aGlzLnBsYXllcnMucHVzaChhKSxjLnB1c2goYSksYX1kZXJlZ2lzdGVyKHQpe2RlbGV0ZSB0aGlzLl90cmlnZ2Vyc1t0XSx0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmZvckVhY2goKChlLG4pPT57ZGVsZXRlIGVbdF19KSksdGhpcy5fZWxlbWVudExpc3RlbmVycy5mb3JFYWNoKCgoZSxuKT0+e3RoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuc2V0KG4sZS5maWx0ZXIoKGU9PmUubmFtZSE9dCkpKX0pKX1jbGVhckVsZW1lbnRDYWNoZSh0KXt0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmRlbGV0ZSh0KSx0aGlzLl9lbGVtZW50TGlzdGVuZXJzLmRlbGV0ZSh0KTtjb25zdCBlPXRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmdldCh0KTtlJiYoZS5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmRlbGV0ZSh0KSl9X3NpZ25hbFJlbW92YWxGb3JJbm5lclRyaWdnZXJzKHQsZSl7Y29uc3Qgbj10aGlzLl9lbmdpbmUuZHJpdmVyLnF1ZXJ5KHQsTHgsITApO24uZm9yRWFjaCgodD0+e2lmKHQuX19uZ19yZW1vdmVkKXJldHVybjtjb25zdCBuPXRoaXMuX2VuZ2luZS5mZXRjaE5hbWVzcGFjZXNCeUVsZW1lbnQodCk7bi5zaXplP24uZm9yRWFjaCgobj0+bi50cmlnZ2VyTGVhdmVBbmltYXRpb24odCxlLCExLCEwKSkpOnRoaXMuY2xlYXJFbGVtZW50Q2FjaGUodCl9KSksdGhpcy5fZW5naW5lLmFmdGVyRmx1c2hBbmltYXRpb25zRG9uZSgoKCk9Pm4uZm9yRWFjaCgodD0+dGhpcy5jbGVhckVsZW1lbnRDYWNoZSh0KSkpKSl9dHJpZ2dlckxlYXZlQW5pbWF0aW9uKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5nZXQodCk7aWYoaSl7Y29uc3QgYT1bXTtpZihPYmplY3Qua2V5cyhpKS5mb3JFYWNoKChlPT57aWYodGhpcy5fdHJpZ2dlcnNbZV0pe2NvbnN0IG49dGhpcy50cmlnZ2VyKHQsZSxLTyxvKTtuJiZhLnB1c2gobil9fSkpLGEubGVuZ3RoKXJldHVybiB0aGlzLl9lbmdpbmUubWFya0VsZW1lbnRBc1JlbW92ZWQodGhpcy5pZCx0LCEwLGUpLG4mJmh4KGEpLm9uRG9uZSgoKCk9PnRoaXMuX2VuZ2luZS5wcm9jZXNzTGVhdmVOb2RlKHQpKSksITB9cmV0dXJuITF9cHJlcGFyZUxlYXZlQW5pbWF0aW9uTGlzdGVuZXJzKHQpe2NvbnN0IGU9dGhpcy5fZWxlbWVudExpc3RlbmVycy5nZXQodCksbj10aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmdldCh0KTtpZihlJiZuKXtjb25zdCBvPW5ldyBTZXQ7ZS5mb3JFYWNoKChlPT57Y29uc3QgaT1lLm5hbWU7aWYoby5oYXMoaSkpcmV0dXJuO28uYWRkKGkpO2NvbnN0IGE9dGhpcy5fdHJpZ2dlcnNbaV0uZmFsbGJhY2tUcmFuc2l0aW9uLHI9bltpXXx8Sk8scz1uZXcgWE8oS08pLGw9bmV3IHRQKHRoaXMuaWQsaSx0KTt0aGlzLl9lbmdpbmUudG90YWxRdWV1ZWRQbGF5ZXJzKyssdGhpcy5fcXVldWUucHVzaCh7ZWxlbWVudDp0LHRyaWdnZXJOYW1lOmksdHJhbnNpdGlvbjphLGZyb21TdGF0ZTpyLHRvU3RhdGU6cyxwbGF5ZXI6bCxpc0ZhbGxiYWNrVHJhbnNpdGlvbjohMH0pfSkpfX1yZW1vdmVOb2RlKHQsZSl7Y29uc3Qgbj10aGlzLl9lbmdpbmU7aWYodC5jaGlsZEVsZW1lbnRDb3VudCYmdGhpcy5fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dlcnModCxlKSx0aGlzLnRyaWdnZXJMZWF2ZUFuaW1hdGlvbih0LGUsITApKXJldHVybjtsZXQgbz0hMTtpZihuLnRvdGFsQW5pbWF0aW9ucyl7Y29uc3QgZT1uLnBsYXllcnMubGVuZ3RoP24ucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuZ2V0KHQpOltdO2lmKGUmJmUubGVuZ3RoKW89ITA7ZWxzZXtsZXQgZT10O2Zvcig7ZT1lLnBhcmVudE5vZGU7KWlmKG4uc3RhdGVzQnlFbGVtZW50LmdldChlKSl7bz0hMDticmVha319fWlmKHRoaXMucHJlcGFyZUxlYXZlQW5pbWF0aW9uTGlzdGVuZXJzKHQpLG8pbi5tYXJrRWxlbWVudEFzUmVtb3ZlZCh0aGlzLmlkLHQsITEsZSk7ZWxzZXtjb25zdCBvPXQuX19uZ19yZW1vdmVkO28mJm8hPT1xT3x8KG4uYWZ0ZXJGbHVzaCgoKCk9PnRoaXMuY2xlYXJFbGVtZW50Q2FjaGUodCkpKSxuLmRlc3Ryb3lJbm5lckFuaW1hdGlvbnModCksbi5fb25SZW1vdmFsQ29tcGxldGUodCxlKSl9fWluc2VydE5vZGUodCxlKXthUCh0LHRoaXMuX2hvc3RDbGFzc05hbWUpfWRyYWluUXVldWVkVHJhbnNpdGlvbnModCl7Y29uc3QgZT1bXTtyZXR1cm4gdGhpcy5fcXVldWUuZm9yRWFjaCgobj0+e2NvbnN0IG89bi5wbGF5ZXI7aWYoby5kZXN0cm95ZWQpcmV0dXJuO2NvbnN0IGk9bi5lbGVtZW50LGE9dGhpcy5fZWxlbWVudExpc3RlbmVycy5nZXQoaSk7YSYmYS5mb3JFYWNoKChlPT57aWYoZS5uYW1lPT1uLnRyaWdnZXJOYW1lKXtjb25zdCBvPUN4KGksbi50cmlnZ2VyTmFtZSxuLmZyb21TdGF0ZS52YWx1ZSxuLnRvU3RhdGUudmFsdWUpO28uX2RhdGE9dCx5eChuLnBsYXllcixlLnBoYXNlLG8sZS5jYWxsYmFjayl9fSkpLG8ubWFya2VkRm9yRGVzdHJveT90aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKCk9PntvLmRlc3Ryb3koKX0pKTplLnB1c2gobil9KSksdGhpcy5fcXVldWU9W10sZS5zb3J0KCgodCxlKT0+e2NvbnN0IG49dC50cmFuc2l0aW9uLmFzdC5kZXBDb3VudCxvPWUudHJhbnNpdGlvbi5hc3QuZGVwQ291bnQ7cmV0dXJuIDA9PW58fDA9PW8/bi1vOnRoaXMuX2VuZ2luZS5kcml2ZXIuY29udGFpbnNFbGVtZW50KHQuZWxlbWVudCxlLmVsZW1lbnQpPzE6LTF9KSl9ZGVzdHJveSh0KXt0aGlzLnBsYXllcnMuZm9yRWFjaCgodD0+dC5kZXN0cm95KCkpKSx0aGlzLl9zaWduYWxSZW1vdmFsRm9ySW5uZXJUcmlnZ2Vycyh0aGlzLmhvc3RFbGVtZW50LHQpfWVsZW1lbnRDb250YWluc0RhdGEodCl7bGV0IGU9ITE7cmV0dXJuIHRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuaGFzKHQpJiYoZT0hMCksZT0hIXRoaXMuX3F1ZXVlLmZpbmQoKGU9PmUuZWxlbWVudD09PXQpKXx8ZSxlfX1jbGFzcyAkT3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5ib2R5Tm9kZT10LHRoaXMuZHJpdmVyPWUsdGhpcy5fbm9ybWFsaXplcj1uLHRoaXMucGxheWVycz1bXSx0aGlzLm5ld0hvc3RFbGVtZW50cz1uZXcgTWFwLHRoaXMucGxheWVyc0J5RWxlbWVudD1uZXcgTWFwLHRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQ9bmV3IE1hcCx0aGlzLnN0YXRlc0J5RWxlbWVudD1uZXcgTWFwLHRoaXMuZGlzYWJsZWROb2Rlcz1uZXcgU2V0LHRoaXMudG90YWxBbmltYXRpb25zPTAsdGhpcy50b3RhbFF1ZXVlZFBsYXllcnM9MCx0aGlzLl9uYW1lc3BhY2VMb29rdXA9e30sdGhpcy5fbmFtZXNwYWNlTGlzdD1bXSx0aGlzLl9mbHVzaEZucz1bXSx0aGlzLl93aGVuUXVpZXRGbnM9W10sdGhpcy5uYW1lc3BhY2VzQnlIb3N0RWxlbWVudD1uZXcgTWFwLHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cz1bXSx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHM9W10sdGhpcy5vblJlbW92YWxDb21wbGV0ZT0odCxlKT0+e319X29uUmVtb3ZhbENvbXBsZXRlKHQsZSl7dGhpcy5vblJlbW92YWxDb21wbGV0ZSh0LGUpfWdldCBxdWV1ZWRQbGF5ZXJzKCl7Y29uc3QgdD1bXTtyZXR1cm4gdGhpcy5fbmFtZXNwYWNlTGlzdC5mb3JFYWNoKChlPT57ZS5wbGF5ZXJzLmZvckVhY2goKGU9PntlLnF1ZXVlZCYmdC5wdXNoKGUpfSkpfSkpLHR9Y3JlYXRlTmFtZXNwYWNlKHQsZSl7Y29uc3Qgbj1uZXcgUU8odCxlLHRoaXMpO3JldHVybiB0aGlzLmJvZHlOb2RlJiZ0aGlzLmRyaXZlci5jb250YWluc0VsZW1lbnQodGhpcy5ib2R5Tm9kZSxlKT90aGlzLl9iYWxhbmNlTmFtZXNwYWNlTGlzdChuLGUpOih0aGlzLm5ld0hvc3RFbGVtZW50cy5zZXQoZSxuKSx0aGlzLmNvbGxlY3RFbnRlckVsZW1lbnQoZSkpLHRoaXMuX25hbWVzcGFjZUxvb2t1cFt0XT1ufV9iYWxhbmNlTmFtZXNwYWNlTGlzdCh0LGUpe2NvbnN0IG49dGhpcy5fbmFtZXNwYWNlTGlzdC5sZW5ndGgtMTtpZihuPj0wKXtsZXQgbz0hMTtmb3IobGV0IGk9bjtpPj0wO2ktLSlpZih0aGlzLmRyaXZlci5jb250YWluc0VsZW1lbnQodGhpcy5fbmFtZXNwYWNlTGlzdFtpXS5ob3N0RWxlbWVudCxlKSl7dGhpcy5fbmFtZXNwYWNlTGlzdC5zcGxpY2UoaSsxLDAsdCksbz0hMDticmVha31vfHx0aGlzLl9uYW1lc3BhY2VMaXN0LnNwbGljZSgwLDAsdCl9ZWxzZSB0aGlzLl9uYW1lc3BhY2VMaXN0LnB1c2godCk7cmV0dXJuIHRoaXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQuc2V0KGUsdCksdH1yZWdpc3Rlcih0LGUpe2xldCBuPXRoaXMuX25hbWVzcGFjZUxvb2t1cFt0XTtyZXR1cm4gbnx8KG49dGhpcy5jcmVhdGVOYW1lc3BhY2UodCxlKSksbn1yZWdpc3RlclRyaWdnZXIodCxlLG4pe2xldCBvPXRoaXMuX25hbWVzcGFjZUxvb2t1cFt0XTtvJiZvLnJlZ2lzdGVyKGUsbikmJnRoaXMudG90YWxBbmltYXRpb25zKyt9ZGVzdHJveSh0LGUpe2lmKCF0KXJldHVybjtjb25zdCBuPXRoaXMuX2ZldGNoTmFtZXNwYWNlKHQpO3RoaXMuYWZ0ZXJGbHVzaCgoKCk9Pnt0aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50LmRlbGV0ZShuLmhvc3RFbGVtZW50KSxkZWxldGUgdGhpcy5fbmFtZXNwYWNlTG9va3VwW3RdO2NvbnN0IGU9dGhpcy5fbmFtZXNwYWNlTGlzdC5pbmRleE9mKG4pO2U+PTAmJnRoaXMuX25hbWVzcGFjZUxpc3Quc3BsaWNlKGUsMSl9KSksdGhpcy5hZnRlckZsdXNoQW5pbWF0aW9uc0RvbmUoKCgpPT5uLmRlc3Ryb3koZSkpKX1fZmV0Y2hOYW1lc3BhY2UodCl7cmV0dXJuIHRoaXMuX25hbWVzcGFjZUxvb2t1cFt0XX1mZXRjaE5hbWVzcGFjZXNCeUVsZW1lbnQodCl7Y29uc3QgZT1uZXcgU2V0LG49dGhpcy5zdGF0ZXNCeUVsZW1lbnQuZ2V0KHQpO2lmKG4pe2NvbnN0IHQ9T2JqZWN0LmtleXMobik7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspe2NvbnN0IGk9blt0W29dXS5uYW1lc3BhY2VJZDtpZihpKXtjb25zdCB0PXRoaXMuX2ZldGNoTmFtZXNwYWNlKGkpO3QmJmUuYWRkKHQpfX19cmV0dXJuIGV9dHJpZ2dlcih0LGUsbixvKXtpZihlUChlKSl7Y29uc3QgaT10aGlzLl9mZXRjaE5hbWVzcGFjZSh0KTtpZihpKXJldHVybiBpLnRyaWdnZXIoZSxuLG8pLCEwfXJldHVybiExfWluc2VydE5vZGUodCxlLG4sbyl7aWYoIWVQKGUpKXJldHVybjtjb25zdCBpPWUuX19uZ19yZW1vdmVkO2lmKGkmJmkuc2V0Rm9yUmVtb3ZhbCl7aS5zZXRGb3JSZW1vdmFsPSExLGkuc2V0Rm9yTW92ZT0hMDtjb25zdCB0PXRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5pbmRleE9mKGUpO3Q+PTAmJnRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5zcGxpY2UodCwxKX1pZih0KXtjb25zdCBvPXRoaXMuX2ZldGNoTmFtZXNwYWNlKHQpO28mJm8uaW5zZXJ0Tm9kZShlLG4pfW8mJnRoaXMuY29sbGVjdEVudGVyRWxlbWVudChlKX1jb2xsZWN0RW50ZXJFbGVtZW50KHQpe3RoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5wdXNoKHQpfW1hcmtFbGVtZW50QXNEaXNhYmxlZCh0LGUpe2U/dGhpcy5kaXNhYmxlZE5vZGVzLmhhcyh0KXx8KHRoaXMuZGlzYWJsZWROb2Rlcy5hZGQodCksYVAodCxHTykpOnRoaXMuZGlzYWJsZWROb2Rlcy5oYXModCkmJih0aGlzLmRpc2FibGVkTm9kZXMuZGVsZXRlKHQpLHJQKHQsR08pKX1yZW1vdmVOb2RlKHQsZSxuLG8pe2lmKGVQKGUpKXtjb25zdCBpPXQ/dGhpcy5fZmV0Y2hOYW1lc3BhY2UodCk6bnVsbDtpZihpP2kucmVtb3ZlTm9kZShlLG8pOnRoaXMubWFya0VsZW1lbnRBc1JlbW92ZWQodCxlLCExLG8pLG4pe2NvbnN0IG49dGhpcy5uYW1lc3BhY2VzQnlIb3N0RWxlbWVudC5nZXQoZSk7biYmbi5pZCE9PXQmJm4ucmVtb3ZlTm9kZShlLG8pfX1lbHNlIHRoaXMuX29uUmVtb3ZhbENvbXBsZXRlKGUsbyl9bWFya0VsZW1lbnRBc1JlbW92ZWQodCxlLG4sbyl7dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLnB1c2goZSksZS5fX25nX3JlbW92ZWQ9e25hbWVzcGFjZUlkOnQsc2V0Rm9yUmVtb3ZhbDpvLGhhc0FuaW1hdGlvbjpuLHJlbW92ZWRCZWZvcmVRdWVyaWVkOiExfX1saXN0ZW4odCxlLG4sbyxpKXtyZXR1cm4gZVAoZSk/dGhpcy5fZmV0Y2hOYW1lc3BhY2UodCkubGlzdGVuKGUsbixvLGkpOigpPT57fX1fYnVpbGRJbnN0cnVjdGlvbih0LGUsbixvLGkpe3JldHVybiB0LnRyYW5zaXRpb24uYnVpbGQodGhpcy5kcml2ZXIsdC5lbGVtZW50LHQuZnJvbVN0YXRlLnZhbHVlLHQudG9TdGF0ZS52YWx1ZSxuLG8sdC5mcm9tU3RhdGUub3B0aW9ucyx0LnRvU3RhdGUub3B0aW9ucyxlLGkpfWRlc3Ryb3lJbm5lckFuaW1hdGlvbnModCl7bGV0IGU9dGhpcy5kcml2ZXIucXVlcnkodCxMeCwhMCk7ZS5mb3JFYWNoKCh0PT50aGlzLmRlc3Ryb3lBY3RpdmVBbmltYXRpb25zRm9yRWxlbWVudCh0KSkpLDAhPXRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuc2l6ZSYmKGU9dGhpcy5kcml2ZXIucXVlcnkodCxWeCwhMCksZS5mb3JFYWNoKCh0PT50aGlzLmZpbmlzaEFjdGl2ZVF1ZXJpZWRBbmltYXRpb25PbkVsZW1lbnQodCkpKSl9ZGVzdHJveUFjdGl2ZUFuaW1hdGlvbnNGb3JFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldCh0KTtlJiZlLmZvckVhY2goKHQ9Pnt0LnF1ZXVlZD90Lm1hcmtlZEZvckRlc3Ryb3k9ITA6dC5kZXN0cm95KCl9KSl9ZmluaXNoQWN0aXZlUXVlcmllZEFuaW1hdGlvbk9uRWxlbWVudCh0KXtjb25zdCBlPXRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuZ2V0KHQpO2UmJmUuZm9yRWFjaCgodD0+dC5maW5pc2goKSkpfXdoZW5SZW5kZXJpbmdEb25lKCl7cmV0dXJuIG5ldyBQcm9taXNlKCh0PT57aWYodGhpcy5wbGF5ZXJzLmxlbmd0aClyZXR1cm4gaHgodGhpcy5wbGF5ZXJzKS5vbkRvbmUoKCgpPT50KCkpKTt0KCl9KSl9cHJvY2Vzc0xlYXZlTm9kZSh0KXtjb25zdCBlPXQuX19uZ19yZW1vdmVkO2lmKGUmJmUuc2V0Rm9yUmVtb3ZhbCl7aWYodC5fX25nX3JlbW92ZWQ9cU8sZS5uYW1lc3BhY2VJZCl7dGhpcy5kZXN0cm95SW5uZXJBbmltYXRpb25zKHQpO2NvbnN0IG49dGhpcy5fZmV0Y2hOYW1lc3BhY2UoZS5uYW1lc3BhY2VJZCk7biYmbi5jbGVhckVsZW1lbnRDYWNoZSh0KX10aGlzLl9vblJlbW92YWxDb21wbGV0ZSh0LGUuc2V0Rm9yUmVtb3ZhbCl9dGhpcy5kcml2ZXIubWF0Y2hlc0VsZW1lbnQodCxXTykmJnRoaXMubWFya0VsZW1lbnRBc0Rpc2FibGVkKHQsITEpLHRoaXMuZHJpdmVyLnF1ZXJ5KHQsV08sITApLmZvckVhY2goKHQ9Pnt0aGlzLm1hcmtFbGVtZW50QXNEaXNhYmxlZCh0LCExKX0pKX1mbHVzaCh0PS0xKXtsZXQgZT1bXTtpZih0aGlzLm5ld0hvc3RFbGVtZW50cy5zaXplJiYodGhpcy5uZXdIb3N0RWxlbWVudHMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX2JhbGFuY2VOYW1lc3BhY2VMaXN0KHQsZSkpKSx0aGlzLm5ld0hvc3RFbGVtZW50cy5jbGVhcigpKSx0aGlzLnRvdGFsQW5pbWF0aW9ucyYmdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aClmb3IobGV0IHQ9MDt0PHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5sZW5ndGg7dCsrKWFQKHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50c1t0XSwibmctc3Rhci1pbnNlcnRlZCIpO2lmKHRoaXMuX25hbWVzcGFjZUxpc3QubGVuZ3RoJiYodGhpcy50b3RhbFF1ZXVlZFBsYXllcnN8fHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5sZW5ndGgpKXtjb25zdCBuPVtdO3RyeXtlPXRoaXMuX2ZsdXNoQW5pbWF0aW9ucyhuLHQpfWZpbmFsbHl7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspblt0XSgpfX1lbHNlIGZvcihsZXQgdD0wO3Q8dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aDt0KyspdGhpcy5wcm9jZXNzTGVhdmVOb2RlKHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50c1t0XSk7aWYodGhpcy50b3RhbFF1ZXVlZFBsYXllcnM9MCx0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMubGVuZ3RoPTAsdGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aD0wLHRoaXMuX2ZsdXNoRm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX2ZsdXNoRm5zPVtdLHRoaXMuX3doZW5RdWlldEZucy5sZW5ndGgpe2NvbnN0IHQ9dGhpcy5fd2hlblF1aWV0Rm5zO3RoaXMuX3doZW5RdWlldEZucz1bXSxlLmxlbmd0aD9oeChlKS5vbkRvbmUoKCgpPT57dC5mb3JFYWNoKCh0PT50KCkpKX0pKTp0LmZvckVhY2goKHQ9PnQoKSkpfX1yZXBvcnRFcnJvcih0KXt0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwcm9jZXNzIGFuaW1hdGlvbnMgZHVlIHRvIHRoZSBmb2xsb3dpbmcgZmFpbGVkIHRyaWdnZXIgdHJhbnNpdGlvbnNcbiAke3Quam9pbigiXG4iKX1gKX1fZmx1c2hBbmltYXRpb25zKHQsZSl7Y29uc3Qgbj1uZXcgTU8sbz1bXSxpPW5ldyBNYXAsYT1bXSxyPW5ldyBNYXAscz1uZXcgTWFwLGw9bmV3IE1hcCxjPW5ldyBTZXQ7dGhpcy5kaXNhYmxlZE5vZGVzLmZvckVhY2goKHQ9PntjLmFkZCh0KTtjb25zdCBlPXRoaXMuZHJpdmVyLnF1ZXJ5KHQsIi5uZy1hbmltYXRlLXF1ZXVlZCIsITApO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWMuYWRkKGVbdF0pfSkpO2NvbnN0IGQ9dGhpcy5ib2R5Tm9kZSxwPUFycmF5LmZyb20odGhpcy5zdGF0ZXNCeUVsZW1lbnQua2V5cygpKSxtPWlQKHAsdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzKSx1PW5ldyBNYXA7bGV0IGY9MDttLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj1JeCtmKys7dS5zZXQoZSxuKSx0LmZvckVhY2goKHQ9PmFQKHQsbikpKX0pKTtjb25zdCBnPVtdLGg9bmV3IFNldCxiPW5ldyBTZXQ7Zm9yKGxldCB0PTA7dDx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMubGVuZ3RoO3QrKyl7Y29uc3QgZT10aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHNbdF0sbj1lLl9fbmdfcmVtb3ZlZDtuJiZuLnNldEZvclJlbW92YWwmJihnLnB1c2goZSksaC5hZGQoZSksbi5oYXNBbmltYXRpb24/dGhpcy5kcml2ZXIucXVlcnkoZSwiLm5nLXN0YXItaW5zZXJ0ZWQiLCEwKS5mb3JFYWNoKCh0PT5oLmFkZCh0KSkpOmIuYWRkKGUpKX1jb25zdCB5PW5ldyBNYXAsXz1pUChwLEFycmF5LmZyb20oaCkpO18uZm9yRWFjaCgoKHQsZSk9Pntjb25zdCBuPUh4K2YrKzt5LnNldChlLG4pLHQuZm9yRWFjaCgodD0+YVAodCxuKSkpfSkpLHQucHVzaCgoKCk9PnttLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj11LmdldChlKTt0LmZvckVhY2goKHQ9PnJQKHQsbikpKX0pKSxfLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj15LmdldChlKTt0LmZvckVhY2goKHQ9PnJQKHQsbikpKX0pKSxnLmZvckVhY2goKHQ9Pnt0aGlzLnByb2Nlc3NMZWF2ZU5vZGUodCl9KSl9KSk7Y29uc3QgQz1bXSxNPVtdO2ZvcihsZXQgdD10aGlzLl9uYW1lc3BhY2VMaXN0Lmxlbmd0aC0xO3Q+PTA7dC0tKXRoaXMuX25hbWVzcGFjZUxpc3RbdF0uZHJhaW5RdWV1ZWRUcmFuc2l0aW9ucyhlKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10LnBsYXllcixpPXQuZWxlbWVudDtpZihDLnB1c2goZSksdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aCl7Y29uc3QgdD1pLl9fbmdfcmVtb3ZlZDtpZih0JiZ0LnNldEZvck1vdmUpcmV0dXJuIHZvaWQgZS5kZXN0cm95KCl9Y29uc3QgYz0hZHx8IXRoaXMuZHJpdmVyLmNvbnRhaW5zRWxlbWVudChkLGkpLHA9eS5nZXQoaSksbT11LmdldChpKSxmPXRoaXMuX2J1aWxkSW5zdHJ1Y3Rpb24odCxuLG0scCxjKTtpZihmLmVycm9ycyYmZi5lcnJvcnMubGVuZ3RoKU0ucHVzaChmKTtlbHNle2lmKGMpcmV0dXJuIGUub25TdGFydCgoKCk9Pkt4KGksZi5mcm9tU3R5bGVzKSkpLGUub25EZXN0cm95KCgoKT0+WHgoaSxmLnRvU3R5bGVzKSkpLHZvaWQgby5wdXNoKGUpO2lmKHQuaXNGYWxsYmFja1RyYW5zaXRpb24pcmV0dXJuIGUub25TdGFydCgoKCk9Pkt4KGksZi5mcm9tU3R5bGVzKSkpLGUub25EZXN0cm95KCgoKT0+WHgoaSxmLnRvU3R5bGVzKSkpLHZvaWQgby5wdXNoKGUpO2YudGltZWxpbmVzLmZvckVhY2goKHQ9PnQuc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWU9ITApKSxuLmFwcGVuZChpLGYudGltZWxpbmVzKSxhLnB1c2goe2luc3RydWN0aW9uOmYscGxheWVyOmUsZWxlbWVudDppfSksZi5xdWVyaWVkRWxlbWVudHMuZm9yRWFjaCgodD0+TXgocix0LFtdKS5wdXNoKGUpKSksZi5wcmVTdHlsZVByb3BzLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj1PYmplY3Qua2V5cyh0KTtpZihuLmxlbmd0aCl7bGV0IHQ9cy5nZXQoZSk7dHx8cy5zZXQoZSx0PW5ldyBTZXQpLG4uZm9yRWFjaCgoZT0+dC5hZGQoZSkpKX19KSksZi5wb3N0U3R5bGVQcm9wcy5mb3JFYWNoKCgodCxlKT0+e2NvbnN0IG49T2JqZWN0LmtleXModCk7bGV0IG89bC5nZXQoZSk7b3x8bC5zZXQoZSxvPW5ldyBTZXQpLG4uZm9yRWFjaCgodD0+by5hZGQodCkpKX0pKX19KSk7aWYoTS5sZW5ndGgpe2NvbnN0IHQ9W107TS5mb3JFYWNoKChlPT57dC5wdXNoKGBAJHtlLnRyaWdnZXJOYW1lfSBoYXMgZmFpbGVkIGR1ZSB0bzpcbmApLGUuZXJyb3JzLmZvckVhY2goKGU9PnQucHVzaChgLSAke2V9XG5gKSkpfSkpLEMuZm9yRWFjaCgodD0+dC5kZXN0cm95KCkpKSx0aGlzLnJlcG9ydEVycm9yKHQpfWNvbnN0IHY9bmV3IE1hcCx4PW5ldyBNYXA7YS5mb3JFYWNoKCh0PT57Y29uc3QgZT10LmVsZW1lbnQ7bi5oYXMoZSkmJih4LnNldChlLGUpLHRoaXMuX2JlZm9yZUFuaW1hdGlvbkJ1aWxkKHQucGxheWVyLm5hbWVzcGFjZUlkLHQuaW5zdHJ1Y3Rpb24sdikpfSkpLG8uZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5lbGVtZW50O3RoaXMuX2dldFByZXZpb3VzUGxheWVycyhlLCExLHQubmFtZXNwYWNlSWQsdC50cmlnZ2VyTmFtZSxudWxsKS5mb3JFYWNoKCh0PT57TXgodixlLFtdKS5wdXNoKHQpLHQuZGVzdHJveSgpfSkpfSkpO2NvbnN0IE89Zy5maWx0ZXIoKHQ9PmNQKHQscyxsKSkpLFA9bmV3IE1hcDtvUChQLHRoaXMuZHJpdmVyLGIsbCxleCkuZm9yRWFjaCgodD0+e2NQKHQscyxsKSYmTy5wdXNoKHQpfSkpO2NvbnN0IHc9bmV3IE1hcDttLmZvckVhY2goKCh0LGUpPT57b1Aodyx0aGlzLmRyaXZlcixuZXcgU2V0KHQpLHMsIiEiKX0pKSxPLmZvckVhY2goKHQ9Pntjb25zdCBlPVAuZ2V0KHQpLG49dy5nZXQodCk7UC5zZXQodCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSksbikpfSkpO2NvbnN0IGs9W10sUz1bXSxEPXt9O2EuZm9yRWFjaCgodD0+e2NvbnN0e2VsZW1lbnQ6ZSxwbGF5ZXI6YSxpbnN0cnVjdGlvbjpyfT10O2lmKG4uaGFzKGUpKXtpZihjLmhhcyhlKSlyZXR1cm4gYS5vbkRlc3Ryb3koKCgpPT5YeChlLHIudG9TdHlsZXMpKSksYS5kaXNhYmxlZD0hMCxhLm92ZXJyaWRlVG90YWxUaW1lKHIudG90YWxUaW1lKSx2b2lkIG8ucHVzaChhKTtsZXQgdD1EO2lmKHguc2l6ZT4xKXtsZXQgbj1lO2NvbnN0IG89W107Zm9yKDtuPW4ucGFyZW50Tm9kZTspe2NvbnN0IGU9eC5nZXQobik7aWYoZSl7dD1lO2JyZWFrfW8ucHVzaChuKX1vLmZvckVhY2goKGU9Pnguc2V0KGUsdCkpKX1jb25zdCBuPXRoaXMuX2J1aWxkQW5pbWF0aW9uKGEubmFtZXNwYWNlSWQscix2LGksdyxQKTtpZihhLnNldFJlYWxQbGF5ZXIobiksdD09PUQpay5wdXNoKGEpO2Vsc2V7Y29uc3QgZT10aGlzLnBsYXllcnNCeUVsZW1lbnQuZ2V0KHQpO2UmJmUubGVuZ3RoJiYoYS5wYXJlbnRQbGF5ZXI9aHgoZSkpLG8ucHVzaChhKX19ZWxzZSBLeChlLHIuZnJvbVN0eWxlcyksYS5vbkRlc3Ryb3koKCgpPT5YeChlLHIudG9TdHlsZXMpKSksUy5wdXNoKGEpLGMuaGFzKGUpJiZvLnB1c2goYSl9KSksUy5mb3JFYWNoKCh0PT57Y29uc3QgZT1pLmdldCh0LmVsZW1lbnQpO2lmKGUmJmUubGVuZ3RoKXtjb25zdCBuPWh4KGUpO3Quc2V0UmVhbFBsYXllcihuKX19KSksby5mb3JFYWNoKCh0PT57dC5wYXJlbnRQbGF5ZXI/dC5zeW5jUGxheWVyRXZlbnRzKHQucGFyZW50UGxheWVyKTp0LmRlc3Ryb3koKX0pKTtmb3IobGV0IHQ9MDt0PGcubGVuZ3RoO3QrKyl7Y29uc3QgZT1nW3RdLG49ZS5fX25nX3JlbW92ZWQ7aWYoclAoZSxIeCksbiYmbi5oYXNBbmltYXRpb24pY29udGludWU7bGV0IG89W107aWYoci5zaXplKXtsZXQgdD1yLmdldChlKTt0JiZ0Lmxlbmd0aCYmby5wdXNoKC4uLnQpO2xldCBuPXRoaXMuZHJpdmVyLnF1ZXJ5KGUsVngsITApO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtsZXQgZT1yLmdldChuW3RdKTtlJiZlLmxlbmd0aCYmby5wdXNoKC4uLmUpfX1jb25zdCBpPW8uZmlsdGVyKCh0PT4hdC5kZXN0cm95ZWQpKTtpLmxlbmd0aD9zUCh0aGlzLGUsaSk6dGhpcy5wcm9jZXNzTGVhdmVOb2RlKGUpfXJldHVybiBnLmxlbmd0aD0wLGsuZm9yRWFjaCgodD0+e3RoaXMucGxheWVycy5wdXNoKHQpLHQub25Eb25lKCgoKT0+e3QuZGVzdHJveSgpO2NvbnN0IGU9dGhpcy5wbGF5ZXJzLmluZGV4T2YodCk7dGhpcy5wbGF5ZXJzLnNwbGljZShlLDEpfSkpLHQucGxheSgpfSkpLGt9ZWxlbWVudENvbnRhaW5zRGF0YSh0LGUpe2xldCBuPSExO2NvbnN0IG89ZS5fX25nX3JlbW92ZWQ7cmV0dXJuIG8mJm8uc2V0Rm9yUmVtb3ZhbCYmKG49ITApLHRoaXMucGxheWVyc0J5RWxlbWVudC5oYXMoZSkmJihuPSEwKSx0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmhhcyhlKSYmKG49ITApLHRoaXMuc3RhdGVzQnlFbGVtZW50LmhhcyhlKSYmKG49ITApLHRoaXMuX2ZldGNoTmFtZXNwYWNlKHQpLmVsZW1lbnRDb250YWluc0RhdGEoZSl8fG59YWZ0ZXJGbHVzaCh0KXt0aGlzLl9mbHVzaEZucy5wdXNoKHQpfWFmdGVyRmx1c2hBbmltYXRpb25zRG9uZSh0KXt0aGlzLl93aGVuUXVpZXRGbnMucHVzaCh0KX1fZ2V0UHJldmlvdXNQbGF5ZXJzKHQsZSxuLG8saSl7bGV0IGE9W107aWYoZSl7Y29uc3QgZT10aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmdldCh0KTtlJiYoYT1lKX1lbHNle2NvbnN0IGU9dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldCh0KTtpZihlKXtjb25zdCB0PSFpfHxpPT1LTztlLmZvckVhY2goKGU9PntlLnF1ZXVlZHx8KHR8fGUudHJpZ2dlck5hbWU9PW8pJiZhLnB1c2goZSl9KSl9fXJldHVybihufHxvKSYmKGE9YS5maWx0ZXIoKHQ9PiEobiYmbiE9dC5uYW1lc3BhY2VJZHx8byYmbyE9dC50cmlnZ2VyTmFtZSkpKSksYX1fYmVmb3JlQW5pbWF0aW9uQnVpbGQodCxlLG4pe2NvbnN0IG89ZS5lbGVtZW50LGk9ZS5pc1JlbW92YWxUcmFuc2l0aW9uP3ZvaWQgMDp0LGE9ZS5pc1JlbW92YWxUcmFuc2l0aW9uP3ZvaWQgMDplLnRyaWdnZXJOYW1lO2Zvcihjb25zdCB0IG9mIGUudGltZWxpbmVzKXtjb25zdCByPXQuZWxlbWVudCxzPXIhPT1vLGw9TXgobixyLFtdKTt0aGlzLl9nZXRQcmV2aW91c1BsYXllcnMocixzLGksYSxlLnRvU3RhdGUpLmZvckVhY2goKHQ9Pntjb25zdCBlPXQuZ2V0UmVhbFBsYXllcigpO2UuYmVmb3JlRGVzdHJveSYmZS5iZWZvcmVEZXN0cm95KCksdC5kZXN0cm95KCksbC5wdXNoKHQpfSkpfUt4KG8sZS5mcm9tU3R5bGVzKX1fYnVpbGRBbmltYXRpb24odCxlLG4sbyxpLGEpe2NvbnN0IHI9ZS50cmlnZ2VyTmFtZSxzPWUuZWxlbWVudCxsPVtdLGM9bmV3IFNldCxkPW5ldyBTZXQscD1lLnRpbWVsaW5lcy5tYXAoKGU9Pntjb25zdCBwPWUuZWxlbWVudDtjLmFkZChwKTtjb25zdCBtPXAuX19uZ19yZW1vdmVkO2lmKG0mJm0ucmVtb3ZlZEJlZm9yZVF1ZXJpZWQpcmV0dXJuIG5ldyBteChlLmR1cmF0aW9uLGUuZGVsYXkpO2NvbnN0IHU9cCE9PXMsZj0oZnVuY3Rpb24gZyh0KXtjb25zdCBlPVtdO3JldHVybiBsUCh0LGUpLGV9KSgobi5nZXQocCl8fFlPKS5tYXAoKHQ9PnQuZ2V0UmVhbFBsYXllcigpKSkpLmZpbHRlcigodD0+ISF0LmVsZW1lbnQmJnQuZWxlbWVudD09PXApKSxoPWkuZ2V0KHApLGI9YS5nZXQocCkseT1ieCgwLHRoaXMuX25vcm1hbGl6ZXIsMCxlLmtleWZyYW1lcyxoLGIpLF89dGhpcy5fYnVpbGRQbGF5ZXIoZSx5LGYpO2lmKGUuc3ViVGltZWxpbmUmJm8mJmQuYWRkKHApLHUpe2NvbnN0IGU9bmV3IHRQKHQscixwKTtlLnNldFJlYWxQbGF5ZXIoXyksbC5wdXNoKGUpfXJldHVybiBffSkpO2wuZm9yRWFjaCgodD0+e014KHRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQsdC5lbGVtZW50LFtdKS5wdXNoKHQpLHQub25Eb25lKCgoKT0+KGZ1bmN0aW9uIGUodCxuLG8pe2xldCBpO2lmKHQgaW5zdGFuY2VvZiBNYXApe2lmKGk9dC5nZXQobiksaSl7aWYoaS5sZW5ndGgpe2NvbnN0IHQ9aS5pbmRleE9mKG8pO2kuc3BsaWNlKHQsMSl9MD09aS5sZW5ndGgmJnQuZGVsZXRlKG4pfX1lbHNlIGlmKGk9dFtuXSxpKXtpZihpLmxlbmd0aCl7Y29uc3QgdD1pLmluZGV4T2Yobyk7aS5zcGxpY2UodCwxKX0wPT1pLmxlbmd0aCYmZGVsZXRlIHRbbl19cmV0dXJuIGl9KSh0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LHQuZWxlbWVudCx0KSkpfSkpLGMuZm9yRWFjaCgodD0+YVAodCxCeCkpKTtjb25zdCBtPWh4KHApO3JldHVybiBtLm9uRGVzdHJveSgoKCk9PntjLmZvckVhY2goKHQ9PnJQKHQsQngpKSksWHgocyxlLnRvU3R5bGVzKX0pKSxkLmZvckVhY2goKHQ9PntNeChvLHQsW10pLnB1c2gobSl9KSksbX1fYnVpbGRQbGF5ZXIodCxlLG4pe3JldHVybiBlLmxlbmd0aD4wP3RoaXMuZHJpdmVyLmFuaW1hdGUodC5lbGVtZW50LGUsdC5kdXJhdGlvbix0LmRlbGF5LHQuZWFzaW5nLG4pOm5ldyBteCh0LmR1cmF0aW9uLHQuZGVsYXkpfX1jbGFzcyB0UHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5uYW1lc3BhY2VJZD10LHRoaXMudHJpZ2dlck5hbWU9ZSx0aGlzLmVsZW1lbnQ9bix0aGlzLl9wbGF5ZXI9bmV3IG14LHRoaXMuX2NvbnRhaW5zUmVhbFBsYXllcj0hMSx0aGlzLl9xdWV1ZWRDYWxsYmFja3M9e30sdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5tYXJrZWRGb3JEZXN0cm95PSExLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5xdWV1ZWQ9ITAsdGhpcy50b3RhbFRpbWU9MH1zZXRSZWFsUGxheWVyKHQpe3RoaXMuX2NvbnRhaW5zUmVhbFBsYXllcnx8KHRoaXMuX3BsYXllcj10LE9iamVjdC5rZXlzKHRoaXMuX3F1ZXVlZENhbGxiYWNrcykuZm9yRWFjaCgoZT0+e3RoaXMuX3F1ZXVlZENhbGxiYWNrc1tlXS5mb3JFYWNoKChuPT55eCh0LGUsdm9pZCAwLG4pKSl9KSksdGhpcy5fcXVldWVkQ2FsbGJhY2tzPXt9LHRoaXMuX2NvbnRhaW5zUmVhbFBsYXllcj0hMCx0aGlzLm92ZXJyaWRlVG90YWxUaW1lKHQudG90YWxUaW1lKSx0aGlzLnF1ZXVlZD0hMSl9Z2V0UmVhbFBsYXllcigpe3JldHVybiB0aGlzLl9wbGF5ZXJ9b3ZlcnJpZGVUb3RhbFRpbWUodCl7dGhpcy50b3RhbFRpbWU9dH1zeW5jUGxheWVyRXZlbnRzKHQpe2NvbnN0IGU9dGhpcy5fcGxheWVyO2UudHJpZ2dlckNhbGxiYWNrJiZ0Lm9uU3RhcnQoKCgpPT5lLnRyaWdnZXJDYWxsYmFjaygic3RhcnQiKSkpLHQub25Eb25lKCgoKT0+dGhpcy5maW5pc2goKSkpLHQub25EZXN0cm95KCgoKT0+dGhpcy5kZXN0cm95KCkpKX1fcXVldWVFdmVudCh0LGUpe014KHRoaXMuX3F1ZXVlZENhbGxiYWNrcyx0LFtdKS5wdXNoKGUpfW9uRG9uZSh0KXt0aGlzLnF1ZXVlZCYmdGhpcy5fcXVldWVFdmVudCgiZG9uZSIsdCksdGhpcy5fcGxheWVyLm9uRG9uZSh0KX1vblN0YXJ0KHQpe3RoaXMucXVldWVkJiZ0aGlzLl9xdWV1ZUV2ZW50KCJzdGFydCIsdCksdGhpcy5fcGxheWVyLm9uU3RhcnQodCl9b25EZXN0cm95KHQpe3RoaXMucXVldWVkJiZ0aGlzLl9xdWV1ZUV2ZW50KCJkZXN0cm95Iix0KSx0aGlzLl9wbGF5ZXIub25EZXN0cm95KHQpfWluaXQoKXt0aGlzLl9wbGF5ZXIuaW5pdCgpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4hdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5oYXNTdGFydGVkKCl9cGxheSgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnBsYXkoKX1wYXVzZSgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnBhdXNlKCl9cmVzdGFydCgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnJlc3RhcnQoKX1maW5pc2goKXt0aGlzLl9wbGF5ZXIuZmluaXNoKCl9ZGVzdHJveSgpe3RoaXMuZGVzdHJveWVkPSEwLHRoaXMuX3BsYXllci5kZXN0cm95KCl9cmVzZXQoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5yZXNldCgpfXNldFBvc2l0aW9uKHQpe3RoaXMucXVldWVkfHx0aGlzLl9wbGF5ZXIuc2V0UG9zaXRpb24odCl9Z2V0UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5xdWV1ZWQ/MDp0aGlzLl9wbGF5ZXIuZ2V0UG9zaXRpb24oKX10cmlnZ2VyQ2FsbGJhY2sodCl7Y29uc3QgZT10aGlzLl9wbGF5ZXI7ZS50cmlnZ2VyQ2FsbGJhY2smJmUudHJpZ2dlckNhbGxiYWNrKHQpfX1mdW5jdGlvbiBlUCh0KXtyZXR1cm4gdCYmMT09PXQubm9kZVR5cGV9ZnVuY3Rpb24gblAodCxlKXtjb25zdCBuPXQuc3R5bGUuZGlzcGxheTtyZXR1cm4gdC5zdHlsZS5kaXNwbGF5PW51bGwhPWU/ZToibm9uZSIsbn1mdW5jdGlvbiBvUCh0LGUsbixvLGkpe2NvbnN0IGE9W107bi5mb3JFYWNoKCh0PT5hLnB1c2goblAodCkpKSk7Y29uc3Qgcj1bXTtvLmZvckVhY2goKChuLG8pPT57Y29uc3QgYT17fTtuLmZvckVhY2goKHQ9Pntjb25zdCBuPWFbdF09ZS5jb21wdXRlU3R5bGUobyx0LGkpO24mJjAhPW4ubGVuZ3RofHwoby5fX25nX3JlbW92ZWQ9Wk8sci5wdXNoKG8pKX0pKSx0LnNldChvLGEpfSkpO2xldCBzPTA7cmV0dXJuIG4uZm9yRWFjaCgodD0+blAodCxhW3MrK10pKSkscn1mdW5jdGlvbiBpUCh0LGUpe2NvbnN0IG49bmV3IE1hcDtpZih0LmZvckVhY2goKHQ9Pm4uc2V0KHQsW10pKSksMD09ZS5sZW5ndGgpcmV0dXJuIG47Y29uc3Qgbz1uZXcgU2V0KGUpLGk9bmV3IE1hcDtmdW5jdGlvbiBhKHQpe2lmKCF0KXJldHVybiAxO2xldCBlPWkuZ2V0KHQpO2lmKGUpcmV0dXJuIGU7Y29uc3Qgcj10LnBhcmVudE5vZGU7cmV0dXJuIGU9bi5oYXMocik/cjpvLmhhcyhyKT8xOmEociksaS5zZXQodCxlKSxlfXJldHVybiBlLmZvckVhY2goKHQ9Pntjb25zdCBlPWEodCk7MSE9PWUmJm4uZ2V0KGUpLnB1c2godCl9KSksbn1mdW5jdGlvbiBhUCh0LGUpe2lmKHQuY2xhc3NMaXN0KXQuY2xhc3NMaXN0LmFkZChlKTtlbHNle2xldCBuPXQuJCRjbGFzc2VzO258fChuPXQuJCRjbGFzc2VzPXt9KSxuW2VdPSEwfX1mdW5jdGlvbiByUCh0LGUpe2lmKHQuY2xhc3NMaXN0KXQuY2xhc3NMaXN0LnJlbW92ZShlKTtlbHNle2xldCBuPXQuJCRjbGFzc2VzO24mJmRlbGV0ZSBuW2VdfX1mdW5jdGlvbiBzUCh0LGUsbil7aHgobikub25Eb25lKCgoKT0+dC5wcm9jZXNzTGVhdmVOb2RlKGUpKSl9ZnVuY3Rpb24gbFAodCxlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7Y29uc3Qgbz10W25dO28gaW5zdGFuY2VvZiB1eD9sUChvLnBsYXllcnMsZSk6ZS5wdXNoKG8pfX1mdW5jdGlvbiBjUCh0LGUsbil7Y29uc3Qgbz1uLmdldCh0KTtpZighbylyZXR1cm4hMTtsZXQgaT1lLmdldCh0KTtyZXR1cm4gaT9vLmZvckVhY2goKHQ9PmkuYWRkKHQpKSk6ZS5zZXQodCxvKSxuLmRlbGV0ZSh0KSwhMH1jbGFzcyBkUHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5ib2R5Tm9kZT10LHRoaXMuX2RyaXZlcj1lLHRoaXMuX25vcm1hbGl6ZXI9bix0aGlzLl90cmlnZ2VyQ2FjaGU9e30sdGhpcy5vblJlbW92YWxDb21wbGV0ZT0odCxlKT0+e30sdGhpcy5fdHJhbnNpdGlvbkVuZ2luZT1uZXcgJE8odCxlLG4pLHRoaXMuX3RpbWVsaW5lRW5naW5lPW5ldyBqTyh0LGUsbiksdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5vblJlbW92YWxDb21wbGV0ZT0odCxlKT0+dGhpcy5vblJlbW92YWxDb21wbGV0ZSh0LGUpfXJlZ2lzdGVyVHJpZ2dlcih0LGUsbixvLGkpe2NvbnN0IGE9dCsiLSIrbztsZXQgcj10aGlzLl90cmlnZ2VyQ2FjaGVbYV07aWYoIXIpe2NvbnN0IHQ9W10sZT1mTyh0aGlzLl9kcml2ZXIsaSx0KTtpZih0Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFRoZSBhbmltYXRpb24gdHJpZ2dlciAiJHtvfSIgaGFzIGZhaWxlZCB0byBidWlsZCBkdWUgdG8gdGhlIGZvbGxvd2luZyBlcnJvcnM6XG4gLSAke3Quam9pbigiXG4gLSAiKX1gKTtyPShmdW5jdGlvbiBuKHQsZSxvKXtyZXR1cm4gbmV3IExPKHQsZSxvKX0pKG8sZSx0aGlzLl9ub3JtYWxpemVyKSx0aGlzLl90cmlnZ2VyQ2FjaGVbYV09cn10aGlzLl90cmFuc2l0aW9uRW5naW5lLnJlZ2lzdGVyVHJpZ2dlcihlLG8scil9cmVnaXN0ZXIodCxlKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLnJlZ2lzdGVyKHQsZSl9ZGVzdHJveSh0LGUpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUuZGVzdHJveSh0LGUpfW9uSW5zZXJ0KHQsZSxuLG8pe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUuaW5zZXJ0Tm9kZSh0LGUsbixvKX1vblJlbW92ZSh0LGUsbixvKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLnJlbW92ZU5vZGUodCxlLG98fCExLG4pfWRpc2FibGVBbmltYXRpb25zKHQsZSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5tYXJrRWxlbWVudEFzRGlzYWJsZWQodCxlKX1wcm9jZXNzKHQsZSxuLG8pe2lmKCJAIj09bi5jaGFyQXQoMCkpe2NvbnN0W3QsaV09dngobik7dGhpcy5fdGltZWxpbmVFbmdpbmUuY29tbWFuZCh0LGUsaSxvKX1lbHNlIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUudHJpZ2dlcih0LGUsbixvKX1saXN0ZW4odCxlLG4sbyxpKXtpZigiQCI9PW4uY2hhckF0KDApKXtjb25zdFt0LG9dPXZ4KG4pO3JldHVybiB0aGlzLl90aW1lbGluZUVuZ2luZS5saXN0ZW4odCxlLG8saSl9cmV0dXJuIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUubGlzdGVuKHQsZSxuLG8saSl9Zmx1c2godD0tMSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5mbHVzaCh0KX1nZXQgcGxheWVycygpe3JldHVybiB0aGlzLl90cmFuc2l0aW9uRW5naW5lLnBsYXllcnMuY29uY2F0KHRoaXMuX3RpbWVsaW5lRW5naW5lLnBsYXllcnMpfXdoZW5SZW5kZXJpbmdEb25lKCl7cmV0dXJuIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUud2hlblJlbmRlcmluZ0RvbmUoKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHBQKHQsZSl7bGV0IG49bnVsbCxvPW51bGw7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPyhuPXVQKGVbMF0pLGUubGVuZ3RoPjEmJihvPXVQKGVbZS5sZW5ndGgtMV0pKSk6ZSYmKG49dVAoZSkpLG58fG8/bmV3IG1QKHQsbixvKTpudWxsfWNsYXNzIG1Qe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fc3RhcnRTdHlsZXM9ZSx0aGlzLl9lbmRTdHlsZXM9bix0aGlzLl9zdGF0ZT0wO2xldCBvPW1QLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQuZ2V0KHQpO298fG1QLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQuc2V0KHQsbz17fSksdGhpcy5faW5pdGlhbFN0eWxlcz1vfXN0YXJ0KCl7dGhpcy5fc3RhdGU8MSYmKHRoaXMuX3N0YXJ0U3R5bGVzJiZYeCh0aGlzLl9lbGVtZW50LHRoaXMuX3N0YXJ0U3R5bGVzLHRoaXMuX2luaXRpYWxTdHlsZXMpLHRoaXMuX3N0YXRlPTEpfWZpbmlzaCgpe3RoaXMuc3RhcnQoKSx0aGlzLl9zdGF0ZTwyJiYoWHgodGhpcy5fZWxlbWVudCx0aGlzLl9pbml0aWFsU3R5bGVzKSx0aGlzLl9lbmRTdHlsZXMmJihYeCh0aGlzLl9lbGVtZW50LHRoaXMuX2VuZFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzPW51bGwpLHRoaXMuX3N0YXRlPTEpfWRlc3Ryb3koKXt0aGlzLmZpbmlzaCgpLHRoaXMuX3N0YXRlPDMmJihtUC5pbml0aWFsU3R5bGVzQnlFbGVtZW50LmRlbGV0ZSh0aGlzLl9lbGVtZW50KSx0aGlzLl9zdGFydFN0eWxlcyYmKEt4KHRoaXMuX2VsZW1lbnQsdGhpcy5fc3RhcnRTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcz1udWxsKSx0aGlzLl9lbmRTdHlsZXMmJihLeCh0aGlzLl9lbGVtZW50LHRoaXMuX2VuZFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzPW51bGwpLFh4KHRoaXMuX2VsZW1lbnQsdGhpcy5faW5pdGlhbFN0eWxlcyksdGhpcy5fc3RhdGU9Myl9fWZ1bmN0aW9uIHVQKHQpe2xldCBlPW51bGw7Y29uc3Qgbj1PYmplY3Qua2V5cyh0KTtmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKyl7Y29uc3QgaT1uW29dO2ZQKGkpJiYoZT1lfHx7fSxlW2ldPXRbaV0pfXJldHVybiBlfWZ1bmN0aW9uIGZQKHQpe3JldHVybiJkaXNwbGF5Ij09PXR8fCJwb3NpdGlvbiI9PT10fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9tUC5pbml0aWFsU3R5bGVzQnlFbGVtZW50PW5ldyBXZWFrTWFwO2NvbnN0IGdQPSJhbmltYXRpb24iLGhQPSJhbmltYXRpb25lbmQiO2NsYXNzIGJQe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9uYW1lPWUsdGhpcy5fZHVyYXRpb249bix0aGlzLl9kZWxheT1vLHRoaXMuX2Vhc2luZz1pLHRoaXMuX2ZpbGxNb2RlPWEsdGhpcy5fb25Eb25lRm49cix0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fc3RhcnRUaW1lPTAsdGhpcy5fcG9zaXRpb249MCx0aGlzLl9ldmVudEZuPXQ9PnRoaXMuX2hhbmRsZUNhbGxiYWNrKHQpfWFwcGx5KCl7IShmdW5jdGlvbiB0KGUsbil7Y29uc3Qgbz14UChlLCIiKS50cmltKCk7bGV0IGk9MDtvLmxlbmd0aCYmKChmdW5jdGlvbiBhKHQsZSl7bGV0IG49MDtmb3IobGV0IG89MDtvPHQubGVuZ3RoO28rKyl0LmNoYXJBdChvKT09PWUmJm4rKztyZXR1cm4gbn0pKG8sIiwiKSsxLG49YCR7b30sICR7bn1gKSx2UChlLCIiLG4pfSkodGhpcy5fZWxlbWVudCxgJHt0aGlzLl9kdXJhdGlvbn1tcyAke3RoaXMuX2Vhc2luZ30gJHt0aGlzLl9kZWxheX1tcyAxIG5vcm1hbCAke3RoaXMuX2ZpbGxNb2RlfSAke3RoaXMuX25hbWV9YCksTVAodGhpcy5fZWxlbWVudCx0aGlzLl9ldmVudEZuLCExKSx0aGlzLl9zdGFydFRpbWU9RGF0ZS5ub3coKX1wYXVzZSgpe3lQKHRoaXMuX2VsZW1lbnQsdGhpcy5fbmFtZSwicGF1c2VkIil9cmVzdW1lKCl7eVAodGhpcy5fZWxlbWVudCx0aGlzLl9uYW1lLCJydW5uaW5nIil9c2V0UG9zaXRpb24odCl7Y29uc3QgZT1fUCh0aGlzLl9lbGVtZW50LHRoaXMuX25hbWUpO3RoaXMuX3Bvc2l0aW9uPXQqdGhpcy5fZHVyYXRpb24sdlAodGhpcy5fZWxlbWVudCwiRGVsYXkiLGAtJHt0aGlzLl9wb3NpdGlvbn1tc2AsZSl9Z2V0UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fcG9zaXRpb259X2hhbmRsZUNhbGxiYWNrKHQpe2NvbnN0IGU9dC5fbmdUZXN0TWFudWFsVGltZXN0YW1wfHxEYXRlLm5vdygpLG49MWUzKnBhcnNlRmxvYXQodC5lbGFwc2VkVGltZS50b0ZpeGVkKDMpKTt0LmFuaW1hdGlvbk5hbWU9PXRoaXMuX25hbWUmJk1hdGgubWF4KGUtdGhpcy5fc3RhcnRUaW1lLDApPj10aGlzLl9kZWxheSYmbj49dGhpcy5fZHVyYXRpb24mJnRoaXMuZmluaXNoKCl9ZmluaXNoKCl7dGhpcy5fZmluaXNoZWR8fCh0aGlzLl9maW5pc2hlZD0hMCx0aGlzLl9vbkRvbmVGbigpLE1QKHRoaXMuX2VsZW1lbnQsdGhpcy5fZXZlbnRGbiwhMCkpfWRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5maW5pc2goKSwoZnVuY3Rpb24gdChlLG4pe2NvbnN0IG89eFAoZSwiIikuc3BsaXQoIiwiKSxpPUNQKG8sbik7aT49MCYmKG8uc3BsaWNlKGksMSksdlAoZSwiIixvLmpvaW4oIiwiKSkpfSkodGhpcy5fZWxlbWVudCx0aGlzLl9uYW1lKSl9fWZ1bmN0aW9uIHlQKHQsZSxuKXt2UCh0LCJQbGF5U3RhdGUiLG4sX1AodCxlKSl9ZnVuY3Rpb24gX1AodCxlKXtjb25zdCBuPXhQKHQsIiIpO3JldHVybiBuLmluZGV4T2YoIiwiKT4wP0NQKG4uc3BsaXQoIiwiKSxlKTpDUChbbl0sZSl9ZnVuY3Rpb24gQ1AodCxlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKylpZih0W25dLmluZGV4T2YoZSk+PTApcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gTVAodCxlLG4pe24/dC5yZW1vdmVFdmVudExpc3RlbmVyKGhQLGUpOnQuYWRkRXZlbnRMaXN0ZW5lcihoUCxlKX1mdW5jdGlvbiB2UCh0LGUsbixvKXtjb25zdCBpPWdQK2U7aWYobnVsbCE9byl7Y29uc3QgZT10LnN0eWxlW2ldO2lmKGUubGVuZ3RoKXtjb25zdCB0PWUuc3BsaXQoIiwiKTt0W29dPW4sbj10LmpvaW4oIiwiKX19dC5zdHlsZVtpXT1ufWZ1bmN0aW9uIHhQKHQsZSl7cmV0dXJuIHQuc3R5bGVbZ1ArZV18fCIifWNsYXNzIE9Qe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyl7dGhpcy5lbGVtZW50PXQsdGhpcy5rZXlmcmFtZXM9ZSx0aGlzLmFuaW1hdGlvbk5hbWU9bix0aGlzLl9kdXJhdGlvbj1vLHRoaXMuX2RlbGF5PWksdGhpcy5fZmluYWxTdHlsZXM9cix0aGlzLl9zcGVjaWFsU3R5bGVzPXMsdGhpcy5fb25Eb25lRm5zPVtdLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fb25EZXN0cm95Rm5zPVtdLHRoaXMuY3VycmVudFNuYXBzaG90PXt9LHRoaXMuX3N0YXRlPTAsdGhpcy5lYXNpbmc9YXx8ImxpbmVhciIsdGhpcy50b3RhbFRpbWU9bytpLHRoaXMuX2J1aWxkU3R5bGVyKCl9b25TdGFydCh0KXt0aGlzLl9vblN0YXJ0Rm5zLnB1c2godCl9b25Eb25lKHQpe3RoaXMuX29uRG9uZUZucy5wdXNoKHQpfW9uRGVzdHJveSh0KXt0aGlzLl9vbkRlc3Ryb3lGbnMucHVzaCh0KX1kZXN0cm95KCl7dGhpcy5pbml0KCksdGhpcy5fc3RhdGU+PTR8fCh0aGlzLl9zdGF0ZT00LHRoaXMuX3N0eWxlci5kZXN0cm95KCksdGhpcy5fZmx1c2hTdGFydEZucygpLHRoaXMuX2ZsdXNoRG9uZUZucygpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuZGVzdHJveSgpLHRoaXMuX29uRGVzdHJveUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10pfV9mbHVzaERvbmVGbnMoKXt0aGlzLl9vbkRvbmVGbnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5fb25Eb25lRm5zPVtdfV9mbHVzaFN0YXJ0Rm5zKCl7dGhpcy5fb25TdGFydEZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdfWZpbmlzaCgpe3RoaXMuaW5pdCgpLHRoaXMuX3N0YXRlPj0zfHwodGhpcy5fc3RhdGU9Myx0aGlzLl9zdHlsZXIuZmluaXNoKCksdGhpcy5fZmx1c2hTdGFydEZucygpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuZmluaXNoKCksdGhpcy5fZmx1c2hEb25lRm5zKCkpfXNldFBvc2l0aW9uKHQpe3RoaXMuX3N0eWxlci5zZXRQb3NpdGlvbih0KX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLl9zdHlsZXIuZ2V0UG9zaXRpb24oKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXRlPj0yfWluaXQoKXt0aGlzLl9zdGF0ZT49MXx8KHRoaXMuX3N0YXRlPTEsdGhpcy5fc3R5bGVyLmFwcGx5KCksdGhpcy5fZGVsYXkmJnRoaXMuX3N0eWxlci5wYXVzZSgpKX1wbGF5KCl7dGhpcy5pbml0KCksdGhpcy5oYXNTdGFydGVkKCl8fCh0aGlzLl9mbHVzaFN0YXJ0Rm5zKCksdGhpcy5fc3RhdGU9Mix0aGlzLl9zcGVjaWFsU3R5bGVzJiZ0aGlzLl9zcGVjaWFsU3R5bGVzLnN0YXJ0KCkpLHRoaXMuX3N0eWxlci5yZXN1bWUoKX1wYXVzZSgpe3RoaXMuaW5pdCgpLHRoaXMuX3N0eWxlci5wYXVzZSgpfXJlc3RhcnQoKXt0aGlzLnJlc2V0KCksdGhpcy5wbGF5KCl9cmVzZXQoKXt0aGlzLl9zdGF0ZT0wLHRoaXMuX3N0eWxlci5kZXN0cm95KCksdGhpcy5fYnVpbGRTdHlsZXIoKSx0aGlzLl9zdHlsZXIuYXBwbHkoKX1fYnVpbGRTdHlsZXIoKXt0aGlzLl9zdHlsZXI9bmV3IGJQKHRoaXMuZWxlbWVudCx0aGlzLmFuaW1hdGlvbk5hbWUsdGhpcy5fZHVyYXRpb24sdGhpcy5fZGVsYXksdGhpcy5lYXNpbmcsImZvcndhcmRzIiwoKCk9PnRoaXMuZmluaXNoKCkpKX10cmlnZ2VyQ2FsbGJhY2sodCl7Y29uc3QgZT0ic3RhcnQiPT10P3RoaXMuX29uU3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2UuZm9yRWFjaCgodD0+dCgpKSksZS5sZW5ndGg9MH1iZWZvcmVEZXN0cm95KCl7dGhpcy5pbml0KCk7Y29uc3QgdD17fTtpZih0aGlzLmhhc1N0YXJ0ZWQoKSl7Y29uc3QgZT10aGlzLl9zdGF0ZT49MztPYmplY3Qua2V5cyh0aGlzLl9maW5hbFN0eWxlcykuZm9yRWFjaCgobj0+eyJvZmZzZXQiIT1uJiYodFtuXT1lP3RoaXMuX2ZpbmFsU3R5bGVzW25dOnNPKHRoaXMuZWxlbWVudCxuKSl9KSl9dGhpcy5jdXJyZW50U25hcHNob3Q9dH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIFBQIGV4dGVuZHMgbXh7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuZWxlbWVudD10LHRoaXMuX3N0YXJ0aW5nU3R5bGVzPXt9LHRoaXMuX19pbml0aWFsaXplZD0hMSx0aGlzLl9zdHlsZXM9VHgoZSl9aW5pdCgpeyF0aGlzLl9faW5pdGlhbGl6ZWQmJnRoaXMuX3N0YXJ0aW5nU3R5bGVzJiYodGhpcy5fX2luaXRpYWxpemVkPSEwLE9iamVjdC5rZXlzKHRoaXMuX3N0eWxlcykuZm9yRWFjaCgodD0+e3RoaXMuX3N0YXJ0aW5nU3R5bGVzW3RdPXRoaXMuZWxlbWVudC5zdHlsZVt0XX0pKSxzdXBlci5pbml0KCkpfXBsYXkoKXt0aGlzLl9zdGFydGluZ1N0eWxlcyYmKHRoaXMuaW5pdCgpLE9iamVjdC5rZXlzKHRoaXMuX3N0eWxlcykuZm9yRWFjaCgodD0+dGhpcy5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHQsdGhpcy5fc3R5bGVzW3RdKSkpLHN1cGVyLnBsYXkoKSl9ZGVzdHJveSgpe3RoaXMuX3N0YXJ0aW5nU3R5bGVzJiYoT2JqZWN0LmtleXModGhpcy5fc3RhcnRpbmdTdHlsZXMpLmZvckVhY2goKHQ9Pntjb25zdCBlPXRoaXMuX3N0YXJ0aW5nU3R5bGVzW3RdO2U/dGhpcy5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHQsZSk6dGhpcy5lbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfSkpLHRoaXMuX3N0YXJ0aW5nU3R5bGVzPW51bGwsc3VwZXIuZGVzdHJveSgpKX19Y2xhc3Mgd1B7Y29uc3RydWN0b3IoKXt0aGlzLl9jb3VudD0wfXZhbGlkYXRlU3R5bGVQcm9wZXJ0eSh0KXtyZXR1cm4gRHgodCl9bWF0Y2hlc0VsZW1lbnQodCxlKXtyZXR1cm4gRXgodCxlKX1jb250YWluc0VsZW1lbnQodCxlKXtyZXR1cm4gUngodCxlKX1xdWVyeSh0LGUsbil7cmV0dXJuIEF4KHQsZSxuKX1jb21wdXRlU3R5bGUodCxlLG4pe3JldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KVtlXX1idWlsZEtleWZyYW1lRWxlbWVudCh0LGUsbil7bj1uLm1hcCgodD0+VHgodCkpKTtsZXQgbz1gQGtleWZyYW1lcyAke2V9IHtcbmAsaT0iIjtuLmZvckVhY2goKHQ9PntpPSIgIjtjb25zdCBlPXBhcnNlRmxvYXQodC5vZmZzZXQpO28rPWAke2l9JHsxMDAqZX0lIHtcbmAsaSs9IiAiLE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGU9Pntjb25zdCBuPXRbZV07c3dpdGNoKGUpe2Nhc2Uib2Zmc2V0IjpyZXR1cm47Y2FzZSJlYXNpbmciOnJldHVybiB2b2lkKG4mJihvKz1gJHtpfWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR7bn07XG5gKSk7ZGVmYXVsdDpyZXR1cm4gdm9pZChvKz1gJHtpfSR7ZX06ICR7bn07XG5gKX19KSksbys9YCR7aX19XG5gfSkpLG8rPSJ9XG4iO2NvbnN0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1vLGF9YW5pbWF0ZSh0LGUsbixvLGksYT1bXSxyKXsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJnImJihmdW5jdGlvbiBzKCl7a1B8fChjb25zb2xlLndhcm4oIkBhbmd1bGFyL2FuaW1hdGlvbnM6IHBsZWFzZSBsb2FkIHRoZSB3ZWItYW5pbWF0aW9ucy5qcyBwb2x5ZmlsbCB0byBhbGxvdyBwcm9ncmFtbWF0aWMgYWNjZXNzLi4uXG4iLCIgIHZpc2l0IGh0dHBzOi8vYml0Lmx5L0lXdWthbSB0byBsZWFybiBtb3JlIGFib3V0IHVzaW5nIHRoZSB3ZWItYW5pbWF0aW9uLWpzIHBvbHlmaWxsLiIpLGtQPSEwKX0pKCk7Y29uc3QgbD1hLmZpbHRlcigodD0+dCBpbnN0YW5jZW9mIE9QKSksYz17fTtpTyhuLG8pJiZsLmZvckVhY2goKHQ9PntsZXQgZT10LmN1cnJlbnRTbmFwc2hvdDtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKCh0PT5jW3RdPWVbdF0pKX0pKTtjb25zdCBkPShmdW5jdGlvbiBwKHQpe2xldCBlPXt9O3JldHVybiB0JiYoQXJyYXkuaXNBcnJheSh0KT90Olt0XSkuZm9yRWFjaCgodD0+e09iamVjdC5rZXlzKHQpLmZvckVhY2goKG49Pnsib2Zmc2V0IiE9biYmImVhc2luZyIhPW4mJihlW25dPXRbbl0pfSkpfSkpLGV9KShlPWFPKHQsZSxjKSk7aWYoMD09bilyZXR1cm4gbmV3IFBQKHQsZCk7Y29uc3QgbT0iZ2VuX2Nzc19rZl8iK3RoaXMuX2NvdW50KyssdT10aGlzLmJ1aWxkS2V5ZnJhbWVFbGVtZW50KHQsbSxlKTsoZnVuY3Rpb24gZih0KXt2YXIgZTtjb25zdCBuPW51bGw9PT0oZT10LmdldFJvb3ROb2RlKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jYWxsKHQpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgU2hhZG93Um9vdCYmbiBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Q/bjpkb2N1bWVudC5oZWFkfSkodCkuYXBwZW5kQ2hpbGQodSk7Y29uc3QgZz1wUCh0LGUpLGg9bmV3IE9QKHQsZSxtLG4sbyxpLGQsZyk7cmV0dXJuIGgub25EZXN0cm95KCgoKT0+KGZ1bmN0aW9uIHQoZSl7ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSkodSkpKSxofX1sZXQga1A9ITE7Y2xhc3MgU1B7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5lbGVtZW50PXQsdGhpcy5rZXlmcmFtZXM9ZSx0aGlzLm9wdGlvbnM9bix0aGlzLl9zcGVjaWFsU3R5bGVzPW8sdGhpcy5fb25Eb25lRm5zPVtdLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fb25EZXN0cm95Rm5zPVtdLHRoaXMuX2luaXRpYWxpemVkPSExLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMudGltZT0wLHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy5jdXJyZW50U25hcHNob3Q9e30sdGhpcy5fZHVyYXRpb249bi5kdXJhdGlvbix0aGlzLl9kZWxheT1uLmRlbGF5fHwwLHRoaXMudGltZT10aGlzLl9kdXJhdGlvbit0aGlzLl9kZWxheX1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRvbmVGbnM9W10pfWluaXQoKXt0aGlzLl9idWlsZFBsYXllcigpLHRoaXMuX3ByZXBhcmVQbGF5ZXJCZWZvcmVTdGFydCgpfV9idWlsZFBsYXllcigpe2lmKHRoaXMuX2luaXRpYWxpemVkKXJldHVybjt0aGlzLl9pbml0aWFsaXplZD0hMDtjb25zdCB0PXRoaXMua2V5ZnJhbWVzO3RoaXMuZG9tUGxheWVyPXRoaXMuX3RyaWdnZXJXZWJBbmltYXRpb24odGhpcy5lbGVtZW50LHQsdGhpcy5vcHRpb25zKSx0aGlzLl9maW5hbEtleWZyYW1lPXQubGVuZ3RoP3RbdC5sZW5ndGgtMV06e30sdGhpcy5kb21QbGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiZmluaXNoIiwoKCk9PnRoaXMuX29uRmluaXNoKCkpKX1fcHJlcGFyZVBsYXllckJlZm9yZVN0YXJ0KCl7dGhpcy5fZGVsYXk/dGhpcy5fcmVzZXREb21QbGF5ZXJTdGF0ZSgpOnRoaXMuZG9tUGxheWVyLnBhdXNlKCl9X3RyaWdnZXJXZWJBbmltYXRpb24odCxlLG4pe3JldHVybiB0LmFuaW1hdGUoZSxuKX1vblN0YXJ0KHQpe3RoaXMuX29uU3RhcnRGbnMucHVzaCh0KX1vbkRvbmUodCl7dGhpcy5fb25Eb25lRm5zLnB1c2godCl9b25EZXN0cm95KHQpe3RoaXMuX29uRGVzdHJveUZucy5wdXNoKHQpfXBsYXkoKXt0aGlzLl9idWlsZFBsYXllcigpLHRoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fb25TdGFydEZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX3N0YXJ0ZWQ9ITAsdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhpcy5fc3BlY2lhbFN0eWxlcy5zdGFydCgpKSx0aGlzLmRvbVBsYXllci5wbGF5KCl9cGF1c2UoKXt0aGlzLmluaXQoKSx0aGlzLmRvbVBsYXllci5wYXVzZSgpfWZpbmlzaCgpe3RoaXMuaW5pdCgpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuZmluaXNoKCksdGhpcy5fb25GaW5pc2goKSx0aGlzLmRvbVBsYXllci5maW5pc2goKX1yZXNldCgpe3RoaXMuX3Jlc2V0RG9tUGxheWVyU3RhdGUoKSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMX1fcmVzZXREb21QbGF5ZXJTdGF0ZSgpe3RoaXMuZG9tUGxheWVyJiZ0aGlzLmRvbVBsYXllci5jYW5jZWwoKX1yZXN0YXJ0KCl7dGhpcy5yZXNldCgpLHRoaXMucGxheSgpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhcnRlZH1kZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkfHwodGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuX3Jlc2V0RG9tUGxheWVyU3RhdGUoKSx0aGlzLl9vbkZpbmlzaCgpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuZGVzdHJveSgpLHRoaXMuX29uRGVzdHJveUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10pfXNldFBvc2l0aW9uKHQpe3ZvaWQgMD09PXRoaXMuZG9tUGxheWVyJiZ0aGlzLmluaXQoKSx0aGlzLmRvbVBsYXllci5jdXJyZW50VGltZT10KnRoaXMudGltZX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLmRvbVBsYXllci5jdXJyZW50VGltZS90aGlzLnRpbWV9Z2V0IHRvdGFsVGltZSgpe3JldHVybiB0aGlzLl9kZWxheSt0aGlzLl9kdXJhdGlvbn1iZWZvcmVEZXN0cm95KCl7Y29uc3QgdD17fTt0aGlzLmhhc1N0YXJ0ZWQoKSYmT2JqZWN0LmtleXModGhpcy5fZmluYWxLZXlmcmFtZSkuZm9yRWFjaCgoZT0+eyJvZmZzZXQiIT1lJiYodFtlXT10aGlzLl9maW5pc2hlZD90aGlzLl9maW5hbEtleWZyYW1lW2VdOnNPKHRoaXMuZWxlbWVudCxlKSl9KSksdGhpcy5jdXJyZW50U25hcHNob3Q9dH10cmlnZ2VyQ2FsbGJhY2sodCl7Y29uc3QgZT0ic3RhcnQiPT10P3RoaXMuX29uU3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2UuZm9yRWFjaCgodD0+dCgpKSksZS5sZW5ndGg9MH19Y2xhc3MgRFB7Y29uc3RydWN0b3IoKXt0aGlzLl9pc05hdGl2ZUltcGw9L1x7XHMqXFtuYXRpdmVccytjb2RlXF1ccypcfS8udGVzdChFUCgpLnRvU3RyaW5nKCkpLHRoaXMuX2Nzc0tleWZyYW1lc0RyaXZlcj1uZXcgd1B9dmFsaWRhdGVTdHlsZVByb3BlcnR5KHQpe3JldHVybiBEeCh0KX1tYXRjaGVzRWxlbWVudCh0LGUpe3JldHVybiBFeCh0LGUpfWNvbnRhaW5zRWxlbWVudCh0LGUpe3JldHVybiBSeCh0LGUpfXF1ZXJ5KHQsZSxuKXtyZXR1cm4gQXgodCxlLG4pfWNvbXB1dGVTdHlsZSh0LGUsbil7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpW2VdfW92ZXJyaWRlV2ViQW5pbWF0aW9uc1N1cHBvcnQodCl7dGhpcy5faXNOYXRpdmVJbXBsPXR9YW5pbWF0ZSh0LGUsbixvLGksYT1bXSxyKXtpZighciYmIXRoaXMuX2lzTmF0aXZlSW1wbClyZXR1cm4gdGhpcy5fY3NzS2V5ZnJhbWVzRHJpdmVyLmFuaW1hdGUodCxlLG4sbyxpLGEpO2NvbnN0IHM9e2R1cmF0aW9uOm4sZGVsYXk6byxmaWxsOjA9PW8/ImJvdGgiOiJmb3J3YXJkcyJ9O2kmJihzLmVhc2luZz1pKTtjb25zdCBsPXt9LGM9YS5maWx0ZXIoKHQ9PnQgaW5zdGFuY2VvZiBTUCkpO2lPKG4sbykmJmMuZm9yRWFjaCgodD0+e2xldCBlPXQuY3VycmVudFNuYXBzaG90O09iamVjdC5rZXlzKGUpLmZvckVhY2goKHQ9PmxbdF09ZVt0XSkpfSkpO2NvbnN0IGQ9cFAodCxlPWFPKHQsZT1lLm1hcCgodD0+WXgodCwhMSkpKSxsKSk7cmV0dXJuIG5ldyBTUCh0LGUscyxkKX19ZnVuY3Rpb24gRVAoKXtyZXR1cm4gZngoKSYmRWxlbWVudC5wcm90b3R5cGUuYW5pbWF0ZXx8e319Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovY2xhc3MgUlAgZXh0ZW5kcyB0eHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5fbmV4dEFuaW1hdGlvbklkPTAsdGhpcy5fcmVuZGVyZXI9dC5jcmVhdGVSZW5kZXJlcihlLmJvZHkse2lkOiIwIixlbmNhcHN1bGF0aW9uOkhuLk5vbmUsc3R5bGVzOltdLGRhdGE6e2FuaW1hdGlvbjpbXX19KX1idWlsZCh0KXtjb25zdCBlPXRoaXMuX25leHRBbmltYXRpb25JZC50b1N0cmluZygpO3RoaXMuX25leHRBbmltYXRpb25JZCsrO2NvbnN0IG49QXJyYXkuaXNBcnJheSh0KT9peCh0KTp0O3JldHVybiBOUCh0aGlzLl9yZW5kZXJlcixudWxsLGUsInJlZ2lzdGVyIixbbl0pLG5ldyBBUChlLHRoaXMuX3JlbmRlcmVyKX19UlAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJQKSh2cihfZyksdnIoWl8pKX0sUlAuybVwcm92PU1uKHt0b2tlbjpSUCxmYWN0b3J5OlJQLsm1ZmFjfSksUlAuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpfZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChSUCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6X2d9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y2xhc3MgQVAgZXh0ZW5kcyBjbGFzc3t9e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLl9pZD10LHRoaXMuX3JlbmRlcmVyPWV9Y3JlYXRlKHQsZSl7cmV0dXJuIG5ldyBUUCh0aGlzLl9pZCx0LGV8fHt9LHRoaXMuX3JlbmRlcmVyKX19Y2xhc3MgVFB7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5pZD10LHRoaXMuZWxlbWVudD1lLHRoaXMuX3JlbmRlcmVyPW8sdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLl9zdGFydGVkPSExLHRoaXMudG90YWxUaW1lPTAsdGhpcy5fY29tbWFuZCgiY3JlYXRlIixuKX1fbGlzdGVuKHQsZSl7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQsYEBAJHt0aGlzLmlkfToke3R9YCxlKX1fY29tbWFuZCh0LC4uLmUpe3JldHVybiBOUCh0aGlzLl9yZW5kZXJlcix0aGlzLmVsZW1lbnQsdGhpcy5pZCx0LGUpfW9uRG9uZSh0KXt0aGlzLl9saXN0ZW4oImRvbmUiLHQpfW9uU3RhcnQodCl7dGhpcy5fbGlzdGVuKCJzdGFydCIsdCl9b25EZXN0cm95KHQpe3RoaXMuX2xpc3RlbigiZGVzdHJveSIsdCl9aW5pdCgpe3RoaXMuX2NvbW1hbmQoImluaXQiKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9cGxheSgpe3RoaXMuX2NvbW1hbmQoInBsYXkiKSx0aGlzLl9zdGFydGVkPSEwfXBhdXNlKCl7dGhpcy5fY29tbWFuZCgicGF1c2UiKX1yZXN0YXJ0KCl7dGhpcy5fY29tbWFuZCgicmVzdGFydCIpfWZpbmlzaCgpe3RoaXMuX2NvbW1hbmQoImZpbmlzaCIpfWRlc3Ryb3koKXt0aGlzLl9jb21tYW5kKCJkZXN0cm95Iil9cmVzZXQoKXt0aGlzLl9jb21tYW5kKCJyZXNldCIpLHRoaXMuX3N0YXJ0ZWQ9ITF9c2V0UG9zaXRpb24odCl7dGhpcy5fY29tbWFuZCgic2V0UG9zaXRpb24iLHQpfWdldFBvc2l0aW9uKCl7dmFyIHQsZTtyZXR1cm4gbnVsbCE9PShlPW51bGw9PT0odD10aGlzLl9yZW5kZXJlci5lbmdpbmUucGxheWVyc1srdGhpcy5pZF0pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmdldFBvc2l0aW9uKCkpJiZ2b2lkIDAhPT1lP2U6MH19ZnVuY3Rpb24gTlAodCxlLG4sbyxpKXtyZXR1cm4gdC5zZXRQcm9wZXJ0eShlLGBAQCR7bn06JHtvfWAsaSl9Y29uc3QgelA9IkAiLElQPSJALmRpc2FibGVkIjtjbGFzcyBIUHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5kZWxlZ2F0ZT10LHRoaXMuZW5naW5lPWUsdGhpcy5fem9uZT1uLHRoaXMuX2N1cnJlbnRJZD0wLHRoaXMuX21pY3JvdGFza0lkPTEsdGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyPVtdLHRoaXMuX3JlbmRlcmVyQ2FjaGU9bmV3IE1hcCx0aGlzLl9jZFJlY3VyRGVwdGg9MCx0aGlzLnByb21pc2U9UHJvbWlzZS5yZXNvbHZlKDApLGUub25SZW1vdmFsQ29tcGxldGU9KHQsZSk9PntlJiZlLnBhcmVudE5vZGUodCkmJmUucmVtb3ZlQ2hpbGQodC5wYXJlbnROb2RlLHQpfX1jcmVhdGVSZW5kZXJlcih0LGUpe2NvbnN0IG49dGhpcy5kZWxlZ2F0ZS5jcmVhdGVSZW5kZXJlcih0LGUpO2lmKCEodCYmZSYmZS5kYXRhJiZlLmRhdGEuYW5pbWF0aW9uKSl7bGV0IHQ9dGhpcy5fcmVuZGVyZXJDYWNoZS5nZXQobik7cmV0dXJuIHR8fCh0PW5ldyBGUCgiIixuLHRoaXMuZW5naW5lKSx0aGlzLl9yZW5kZXJlckNhY2hlLnNldChuLHQpKSx0fWNvbnN0IG89ZS5pZCxpPWUuaWQrIi0iK3RoaXMuX2N1cnJlbnRJZDt0aGlzLl9jdXJyZW50SWQrKyx0aGlzLmVuZ2luZS5yZWdpc3RlcihpLHQpO2NvbnN0IGE9ZT0+e0FycmF5LmlzQXJyYXkoZSk/ZS5mb3JFYWNoKGEpOnRoaXMuZW5naW5lLnJlZ2lzdGVyVHJpZ2dlcihvLGksdCxlLm5hbWUsZSl9O3JldHVybiBlLmRhdGEuYW5pbWF0aW9uLmZvckVhY2goYSksbmV3IExQKHRoaXMsaSxuLHRoaXMuZW5naW5lKX1iZWdpbigpe3RoaXMuX2NkUmVjdXJEZXB0aCsrLHRoaXMuZGVsZWdhdGUuYmVnaW4mJnRoaXMuZGVsZWdhdGUuYmVnaW4oKX1fc2NoZWR1bGVDb3VudFRhc2soKXt0aGlzLnByb21pc2UudGhlbigoKCk9Pnt0aGlzLl9taWNyb3Rhc2tJZCsrfSkpfXNjaGVkdWxlTGlzdGVuZXJDYWxsYmFjayh0LGUsbil7dD49MCYmdDx0aGlzLl9taWNyb3Rhc2tJZD90aGlzLl96b25lLnJ1bigoKCk9PmUobikpKTooMD09dGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyLmxlbmd0aCYmUHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oKCgpPT57dGhpcy5fem9uZS5ydW4oKCgpPT57dGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyLmZvckVhY2goKHQ9Pntjb25zdFtlLG5dPXQ7ZShuKX0pKSx0aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXI9W119KSl9KSksdGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyLnB1c2goW2Usbl0pKX1lbmQoKXt0aGlzLl9jZFJlY3VyRGVwdGgtLSwwPT10aGlzLl9jZFJlY3VyRGVwdGgmJnRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57dGhpcy5fc2NoZWR1bGVDb3VudFRhc2soKSx0aGlzLmVuZ2luZS5mbHVzaCh0aGlzLl9taWNyb3Rhc2tJZCl9KSksdGhpcy5kZWxlZ2F0ZS5lbmQmJnRoaXMuZGVsZWdhdGUuZW5kKCl9d2hlblJlbmRlcmluZ0RvbmUoKXtyZXR1cm4gdGhpcy5lbmdpbmUud2hlblJlbmRlcmluZ0RvbmUoKX19SFAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEhQKSh2cihfZyksdnIoZFApLHZyKGFfKSl9LEhQLsm1cHJvdj1Nbih7dG9rZW46SFAsZmFjdG9yeTpIUC7JtWZhY30pLEhQLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6X2d9LHt0eXBlOmRQfSx7dHlwZTphX31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSFAsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOl9nfSx7dHlwZTpkUH0se3R5cGU6YV99XX0pLG51bGwpO2NsYXNzIEZQe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLm5hbWVzcGFjZUlkPXQsdGhpcy5kZWxlZ2F0ZT1lLHRoaXMuZW5naW5lPW4sdGhpcy5kZXN0cm95Tm9kZT10aGlzLmRlbGVnYXRlLmRlc3Ryb3lOb2RlP3Q9PmUuZGVzdHJveU5vZGUodCk6bnVsbH1nZXQgZGF0YSgpe3JldHVybiB0aGlzLmRlbGVnYXRlLmRhdGF9ZGVzdHJveSgpe3RoaXMuZW5naW5lLmRlc3Ryb3kodGhpcy5uYW1lc3BhY2VJZCx0aGlzLmRlbGVnYXRlKSx0aGlzLmRlbGVnYXRlLmRlc3Ryb3koKX1jcmVhdGVFbGVtZW50KHQsZSl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuY3JlYXRlRWxlbWVudCh0LGUpfWNyZWF0ZUNvbW1lbnQodCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuY3JlYXRlQ29tbWVudCh0KX1jcmVhdGVUZXh0KHQpe3JldHVybiB0aGlzLmRlbGVnYXRlLmNyZWF0ZVRleHQodCl9YXBwZW5kQ2hpbGQodCxlKXt0aGlzLmRlbGVnYXRlLmFwcGVuZENoaWxkKHQsZSksdGhpcy5lbmdpbmUub25JbnNlcnQodGhpcy5uYW1lc3BhY2VJZCxlLHQsITEpfWluc2VydEJlZm9yZSh0LGUsbixvPSEwKXt0aGlzLmRlbGVnYXRlLmluc2VydEJlZm9yZSh0LGUsbiksdGhpcy5lbmdpbmUub25JbnNlcnQodGhpcy5uYW1lc3BhY2VJZCxlLHQsbyl9cmVtb3ZlQ2hpbGQodCxlLG4pe3RoaXMuZW5naW5lLm9uUmVtb3ZlKHRoaXMubmFtZXNwYWNlSWQsZSx0aGlzLmRlbGVnYXRlLG4pfXNlbGVjdFJvb3RFbGVtZW50KHQsZSl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuc2VsZWN0Um9vdEVsZW1lbnQodCxlKX1wYXJlbnROb2RlKHQpe3JldHVybiB0aGlzLmRlbGVnYXRlLnBhcmVudE5vZGUodCl9bmV4dFNpYmxpbmcodCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUubmV4dFNpYmxpbmcodCl9c2V0QXR0cmlidXRlKHQsZSxuLG8pe3RoaXMuZGVsZWdhdGUuc2V0QXR0cmlidXRlKHQsZSxuLG8pfXJlbW92ZUF0dHJpYnV0ZSh0LGUsbil7dGhpcy5kZWxlZ2F0ZS5yZW1vdmVBdHRyaWJ1dGUodCxlLG4pfWFkZENsYXNzKHQsZSl7dGhpcy5kZWxlZ2F0ZS5hZGRDbGFzcyh0LGUpfXJlbW92ZUNsYXNzKHQsZSl7dGhpcy5kZWxlZ2F0ZS5yZW1vdmVDbGFzcyh0LGUpfXNldFN0eWxlKHQsZSxuLG8pe3RoaXMuZGVsZWdhdGUuc2V0U3R5bGUodCxlLG4sbyl9cmVtb3ZlU3R5bGUodCxlLG4pe3RoaXMuZGVsZWdhdGUucmVtb3ZlU3R5bGUodCxlLG4pfXNldFByb3BlcnR5KHQsZSxuKXtlLmNoYXJBdCgwKT09elAmJmU9PUlQP3RoaXMuZGlzYWJsZUFuaW1hdGlvbnModCwhIW4pOnRoaXMuZGVsZWdhdGUuc2V0UHJvcGVydHkodCxlLG4pfXNldFZhbHVlKHQsZSl7dGhpcy5kZWxlZ2F0ZS5zZXRWYWx1ZSh0LGUpfWxpc3Rlbih0LGUsbil7cmV0dXJuIHRoaXMuZGVsZWdhdGUubGlzdGVuKHQsZSxuKX1kaXNhYmxlQW5pbWF0aW9ucyh0LGUpe3RoaXMuZW5naW5lLmRpc2FibGVBbmltYXRpb25zKHQsZSl9fWNsYXNzIExQIGV4dGVuZHMgRlB7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIoZSxuLG8pLHRoaXMuZmFjdG9yeT10LHRoaXMubmFtZXNwYWNlSWQ9ZX1zZXRQcm9wZXJ0eSh0LGUsbil7ZS5jaGFyQXQoMCk9PXpQPyIuIj09ZS5jaGFyQXQoMSkmJmU9PUlQP3RoaXMuZGlzYWJsZUFuaW1hdGlvbnModCxuPXZvaWQgMD09PW58fCEhbik6dGhpcy5lbmdpbmUucHJvY2Vzcyh0aGlzLm5hbWVzcGFjZUlkLHQsZS5zdWJzdHIoMSksbik6dGhpcy5kZWxlZ2F0ZS5zZXRQcm9wZXJ0eSh0LGUsbil9bGlzdGVuKHQsZSxuKXtpZihlLmNoYXJBdCgwKT09elApe2NvbnN0IG89KGZ1bmN0aW9uIGkodCl7c3dpdGNoKHQpe2Nhc2UiYm9keSI6cmV0dXJuIGRvY3VtZW50LmJvZHk7Y2FzZSJkb2N1bWVudCI6cmV0dXJuIGRvY3VtZW50O2Nhc2Uid2luZG93IjpyZXR1cm4gd2luZG93O2RlZmF1bHQ6cmV0dXJuIHR9fSkodCk7bGV0IGE9ZS5zdWJzdHIoMSkscj0iIjtyZXR1cm4gYS5jaGFyQXQoMCkhPXpQJiYoW2Escl09KGZ1bmN0aW9uIHModCl7Y29uc3QgZT10LmluZGV4T2YoIi4iKTtyZXR1cm5bdC5zdWJzdHJpbmcoMCxlKSx0LnN1YnN0cihlKzEpXX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKShhKSksdGhpcy5lbmdpbmUubGlzdGVuKHRoaXMubmFtZXNwYWNlSWQsbyxhLHIsKHQ9Pnt0aGlzLmZhY3Rvcnkuc2NoZWR1bGVMaXN0ZW5lckNhbGxiYWNrKHQuX2RhdGF8fC0xLG4sdCl9KSl9cmV0dXJuIHRoaXMuZGVsZWdhdGUubGlzdGVuKHQsZSxuKX19Y2xhc3MgQlAgZXh0ZW5kcyBkUHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodC5ib2R5LGUsbil9bmdPbkRlc3Ryb3koKXt0aGlzLmZsdXNoKCl9fUJQLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCUCkodnIoWl8pLHZyKHp4KSx2cihSTykpfSxCUC7JtXByb3Y9TW4oe3Rva2VuOkJQLGZhY3Rvcnk6QlAuybVmYWN9KSxCUC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6enh9LHt0eXBlOlJPfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCUCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp6eH0se3R5cGU6Uk99XX0pLG51bGwpO2NvbnN0IFZQPW5ldyBHYSgiQW5pbWF0aW9uTW9kdWxlVHlwZSIpLGpQPVt7cHJvdmlkZTp0eCx1c2VDbGFzczpSUH0se3Byb3ZpZGU6Uk8sdXNlRmFjdG9yeTpmdW5jdGlvbiBVUCgpe3JldHVybiBuZXcgQU99fSx7cHJvdmlkZTpkUCx1c2VDbGFzczpCUH0se3Byb3ZpZGU6X2csdXNlRmFjdG9yeTpmdW5jdGlvbiBHUCh0LGUsbil7cmV0dXJuIG5ldyBIUCh0LGUsbil9LGRlcHM6W2h2LGRQLGFfXX1dLFdQPVt7cHJvdmlkZTp6eCx1c2VGYWN0b3J5OmZ1bmN0aW9uIFlQKCl7cmV0dXJuKGZ1bmN0aW9uIHQoKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgRVAoKX0pKCk/bmV3IERQOm5ldyB3UH19LHtwcm92aWRlOlZQLHVzZVZhbHVlOiJCcm93c2VyQW5pbWF0aW9ucyJ9LC4uLmpQXSxxUD1be3Byb3ZpZGU6engsdXNlQ2xhc3M6Tnh9LHtwcm92aWRlOlZQLHVzZVZhbHVlOiJOb29wQW5pbWF0aW9ucyJ9LC4uLmpQXTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFpQe3N0YXRpYyB3aXRoQ29uZmlnKHQpe3JldHVybntuZ01vZHVsZTpaUCxwcm92aWRlcnM6dC5kaXNhYmxlQW5pbWF0aW9ucz9xUDpXUH19fVpQLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxaUCl9LFpQLsm1bW9kPWFvKHt0eXBlOlpQfSksWlAuybVpbmo9dm4oe3Byb3ZpZGVyczpXUCxpbXBvcnRzOltVdl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFpQLFt7dHlwZTpBeSxhcmdzOlt7ZXhwb3J0czpbVXZdLHByb3ZpZGVyczpXUH1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFpQLHtleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1V2XX19KTtjbGFzcyBYUHt9WFAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhQKX0sWFAuybVtb2Q9YW8oe3R5cGU6WFB9KSxYUC7JtWluaj12bih7cHJvdmlkZXJzOnFQLGltcG9ydHM6W1V2XX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWFAsW3t0eXBlOkF5LGFyZ3M6W3tleHBvcnRzOltVdl0scHJvdmlkZXJzOnFQfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oWFAse2V4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bVXZdfX0pO2NvbnN0IEtQPXt9O2Z1bmN0aW9uIEpQKHQsZSl7aWYoS1BbdF09KEtQW3RdfHwwKSsxLCJmdW5jdGlvbiI9PXR5cGVvZiBlKXJldHVybiBRUCh0LCgoLi4ubik9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKC4uLm4pKSx7dHlwZTp0fSkpKTtzd2l0Y2goZT9lLl9hczoiZW1wdHkiKXtjYXNlImVtcHR5IjpyZXR1cm4gUVAodCwoKCk9Pih7dHlwZTp0fSkpKTtjYXNlInByb3BzIjpyZXR1cm4gUVAodCwoZT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHt0eXBlOnR9KSkpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGNvbmZpZy4iKX19ZnVuY3Rpb24gUVAodCxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInR5cGUiLHt2YWx1ZTp0LHdyaXRhYmxlOiExfSl9Y29uc3QgJFA9IkBuZ3J4L3N0b3JlL2luaXQiO2NsYXNzIHR3IGV4dGVuZHMgRntjb25zdHJ1Y3Rvcigpe3N1cGVyKHt0eXBlOiRQfSl9bmV4dCh0KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJcbiAgICAgICAgRGlzcGF0Y2ggZXhwZWN0ZWQgYW4gb2JqZWN0LCBpbnN0ZWFkIGl0IHJlY2VpdmVkIGEgZnVuY3Rpb24uXG4gICAgICAgIElmIHlvdSdyZSB1c2luZyB0aGUgY3JlYXRlQWN0aW9uIGZ1bmN0aW9uLCBtYWtlIHN1cmUgdG8gaW52b2tlIHRoZSBmdW5jdGlvblxuICAgICAgICBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIGFjdGlvbi4gRm9yIGV4YW1wbGUsIHNvbWVBY3Rpb24gc2hvdWxkIGJlIHNvbWVBY3Rpb24oKS4iKTtpZih2b2lkIDA9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkFjdGlvbnMgbXVzdCBiZSBvYmplY3RzIik7aWYodm9pZCAwPT09dC50eXBlKXRocm93IG5ldyBUeXBlRXJyb3IoIkFjdGlvbnMgbXVzdCBoYXZlIGEgdHlwZSBwcm9wZXJ0eSIpO3N1cGVyLm5leHQodCl9Y29tcGxldGUoKXt9bmdPbkRlc3Ryb3koKXtzdXBlci5jb21wbGV0ZSgpfX10dy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dHcpfSx0dy7JtXByb3Y9TW4oe3Rva2VuOnR3LGZhY3Rvcnk6dHcuybVmYWN9KSx0dy5jdG9yUGFyYW1ldGVycz0oKT0+W10sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh0dyxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NvbnN0IGV3PVt0d10sbnc9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBSb290IEd1YXJkIiksb3c9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBJbml0aWFsIFN0YXRlIiksaXc9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbml0aWFsIFN0YXRlIiksYXc9bmV3IEdhKCJAbmdyeC9zdG9yZSBSZWR1Y2VyIEZhY3RvcnkiKSxydz1uZXcgR2EoIkBuZ3J4L3N0b3JlIEludGVybmFsIFJlZHVjZXIgRmFjdG9yeSBQcm92aWRlciIpLHN3PW5ldyBHYSgiQG5ncngvc3RvcmUgSW5pdGlhbCBSZWR1Y2VycyIpLGx3PW5ldyBHYSgiQG5ncngvc3RvcmUgSW50ZXJuYWwgSW5pdGlhbCBSZWR1Y2VycyIpLGN3PW5ldyBHYSgiQG5ncngvc3RvcmUgU3RvcmUgRmVhdHVyZXMiKSxkdz1uZXcgR2EoIkBuZ3J4L3N0b3JlIEludGVybmFsIFN0b3JlIFJlZHVjZXJzIikscHc9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBGZWF0dXJlIFJlZHVjZXJzIiksbXc9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBGZWF0dXJlIENvbmZpZ3MiKSx1dz1uZXcgR2EoIkBuZ3J4L3N0b3JlIEludGVybmFsIFN0b3JlIEZlYXR1cmVzIiksZnc9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBGZWF0dXJlIFJlZHVjZXJzIFRva2VuIiksZ3c9bmV3IEdhKCJAbmdyeC9zdG9yZSBGZWF0dXJlIFJlZHVjZXJzIiksaHc9bmV3IEdhKCJAbmdyeC9zdG9yZSBVc2VyIFByb3ZpZGVkIE1ldGEgUmVkdWNlcnMiKSxidz1uZXcgR2EoIkBuZ3J4L3N0b3JlIE1ldGEgUmVkdWNlcnMiKSx5dz1uZXcgR2EoIkBuZ3J4L3N0b3JlIEludGVybmFsIFJlc29sdmVkIE1ldGEgUmVkdWNlcnMiKSxfdz1uZXcgR2EoIkBuZ3J4L3N0b3JlIFVzZXIgUnVudGltZSBDaGVja3MgQ29uZmlnIiksQ3c9bmV3IEdhKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBVc2VyIFJ1bnRpbWUgQ2hlY2tzIENvbmZpZyIpLE13PW5ldyBHYSgiQG5ncngvc3RvcmUgSW50ZXJuYWwgUnVudGltZSBDaGVja3MiKSx2dz1uZXcgR2EoIkBuZ3J4L3N0b3JlIENoZWNrIGlmIEFjdGlvbiB0eXBlcyBhcmUgdW5pcXVlIik7ZnVuY3Rpb24geHcodCxlPXt9KXtjb25zdCBuPU9iamVjdC5rZXlzKHQpLG89e307Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspe2NvbnN0IGk9bltlXTsiZnVuY3Rpb24iPT10eXBlb2YgdFtpXSYmKG9baV09dFtpXSl9Y29uc3QgaT1PYmplY3Qua2V5cyhvKTtyZXR1cm4gZnVuY3Rpb24gdChuLGEpe249dm9pZCAwPT09bj9lOm47bGV0IHI9ITE7Y29uc3Qgcz17fTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyl7Y29uc3QgZT1pW3RdLGw9bltlXSxjPSgwLG9bZV0pKGwsYSk7c1tlXT1jLHI9cnx8YyE9PWx9cmV0dXJuIHI/czpufX1mdW5jdGlvbiBPdyguLi50KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoMD09PXQubGVuZ3RoKXJldHVybiBlO2NvbnN0IG49dFt0Lmxlbmd0aC0xXTtyZXR1cm4gdC5zbGljZSgwLC0xKS5yZWR1Y2VSaWdodCgoKHQsZSk9PmUodCkpLG4oZSkpfX1mdW5jdGlvbiBQdyh0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD4wJiYodD1Pdy5hcHBseShudWxsLFsuLi5lLHRdKSksKGUsbik9Pntjb25zdCBvPXQoZSk7cmV0dXJuKHQsZSk9Pm8odD12b2lkIDA9PT10P246dCxlKX19Y2xhc3Mgd3cgZXh0ZW5kcyBEe31jbGFzcyBrdyBleHRlbmRzIHR3e31jbGFzcyBTdyBleHRlbmRzIEZ7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIobyhuLGUpKSx0aGlzLmRpc3BhdGNoZXI9dCx0aGlzLmluaXRpYWxTdGF0ZT1lLHRoaXMucmVkdWNlcnM9bix0aGlzLnJlZHVjZXJGYWN0b3J5PW99Z2V0IGN1cnJlbnRSZWR1Y2Vycygpe3JldHVybiB0aGlzLnJlZHVjZXJzfWFkZEZlYXR1cmUodCl7dGhpcy5hZGRGZWF0dXJlcyhbdF0pfWFkZEZlYXR1cmVzKHQpe2NvbnN0IGU9dC5yZWR1Y2UoKCh0LHtyZWR1Y2VyczplLHJlZHVjZXJGYWN0b3J5Om4sbWV0YVJlZHVjZXJzOm8saW5pdGlhbFN0YXRlOmksa2V5OmF9KT0+e2NvbnN0IHI9ImZ1bmN0aW9uIj09dHlwZW9mIGU/KGZ1bmN0aW9uIHModCl7Y29uc3QgZT1BcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD4wP093KC4uLnQpOnQ9PnQ7cmV0dXJuKHQsbik9Pih0PWUodCksKGUsbyk9PnQoZT12b2lkIDA9PT1lP246ZSxvKSl9KShvKShlLGkpOlB3KG4sbykoZSxpKTtyZXR1cm4gdFthXT1yLHR9KSx7fSk7dGhpcy5hZGRSZWR1Y2VycyhlKX1yZW1vdmVGZWF0dXJlKHQpe3RoaXMucmVtb3ZlRmVhdHVyZXMoW3RdKX1yZW1vdmVGZWF0dXJlcyh0KXt0aGlzLnJlbW92ZVJlZHVjZXJzKHQubWFwKCh0PT50LmtleSkpKX1hZGRSZWR1Y2VyKHQsZSl7dGhpcy5hZGRSZWR1Y2Vycyh7W3RdOmV9KX1hZGRSZWR1Y2Vycyh0KXt0aGlzLnJlZHVjZXJzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLnJlZHVjZXJzKSx0KSx0aGlzLnVwZGF0ZVJlZHVjZXJzKE9iamVjdC5rZXlzKHQpKX1yZW1vdmVSZWR1Y2VyKHQpe3RoaXMucmVtb3ZlUmVkdWNlcnMoW3RdKX1yZW1vdmVSZWR1Y2Vycyh0KXt0LmZvckVhY2goKHQ9Pnt0aGlzLnJlZHVjZXJzPShmdW5jdGlvbiBlKHQsbil7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZpbHRlcigodD0+dCE9PW4pKS5yZWR1Y2UoKChlLG4pPT5PYmplY3QuYXNzaWduKGUse1tuXTp0W25dfSkpLHt9KX0pKHRoaXMucmVkdWNlcnMsdCl9KSksdGhpcy51cGRhdGVSZWR1Y2Vycyh0KX11cGRhdGVSZWR1Y2Vycyh0KXt0aGlzLm5leHQodGhpcy5yZWR1Y2VyRmFjdG9yeSh0aGlzLnJlZHVjZXJzLHRoaXMuaW5pdGlhbFN0YXRlKSksdGhpcy5kaXNwYXRjaGVyLm5leHQoe3R5cGU6IkBuZ3J4L3N0b3JlL3VwZGF0ZS1yZWR1Y2VycyIsZmVhdHVyZXM6dH0pfW5nT25EZXN0cm95KCl7dGhpcy5jb21wbGV0ZSgpfX1Tdy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U3cpKHZyKGt3KSx2cihpdyksdnIoc3cpLHZyKGF3KSl9LFN3Lsm1cHJvdj1Nbih7dG9rZW46U3csZmFjdG9yeTpTdy7JtWZhY30pLFN3LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6a3d9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltpd119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3N3XX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbYXddfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFN3LFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTprd30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2l3XX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbc3ddfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlthd119XX1dfSksbnVsbCk7Y29uc3QgRHc9W1N3LHtwcm92aWRlOnd3LHVzZUV4aXN0aW5nOlN3fSx7cHJvdmlkZTprdyx1c2VFeGlzdGluZzp0d31dO2NsYXNzIEV3IGV4dGVuZHMgSXtuZ09uRGVzdHJveSgpe3RoaXMuY29tcGxldGUoKX19RXcuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKEV3KSkpKG58fEV3KX19KSgpLEV3Lsm1cHJvdj1Nbih7dG9rZW46RXcsZmFjdG9yeTpFdy7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRXcsW3t0eXBlOmltfV0sbnVsbCxudWxsKTtjb25zdCBSdz1bRXddO2NsYXNzIEF3IGV4dGVuZHMgRHt9Y2xhc3MgVHcgZXh0ZW5kcyBGe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKG8pO2NvbnN0IGk9dC5waXBlKChmdW5jdGlvbiByKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPTApLFIoKGZ1bmN0aW9uKG4sbyl7bi5zdWJzY3JpYmUobmV3IFQobywoZnVuY3Rpb24obil7cmV0dXJuIG8uYWRkKHQuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIG8ubmV4dChuKX0pLGUpKX0pLChmdW5jdGlvbigpe3JldHVybiBvLmFkZCh0LnNjaGVkdWxlKChmdW5jdGlvbigpe3JldHVybiBvLmNvbXBsZXRlKCl9KSxlKSl9KSwoZnVuY3Rpb24obil7cmV0dXJuIG8uYWRkKHQuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7cmV0dXJuIG8uZXJyb3Iobil9KSxlKSl9KSkpfSkpfSkob3QpKS5waXBlKFZlKGUpKS5waXBlKChmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIFIobWUodCxlLGFyZ3VtZW50cy5sZW5ndGg+PTIsITApKX0pKE53LHtzdGF0ZTpvfSkpO3RoaXMuc3RhdGVTdWJzY3JpcHRpb249aS5zdWJzY3JpYmUoKCh7c3RhdGU6dCxhY3Rpb246ZX0pPT57dGhpcy5uZXh0KHQpLG4ubmV4dChlKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmNvbXBsZXRlKCl9fWZ1bmN0aW9uIE53KHQ9e3N0YXRlOnZvaWQgMH0sW2Usbl0pe2NvbnN0e3N0YXRlOm99PXQ7cmV0dXJue3N0YXRlOm4obyxlKSxhY3Rpb246ZX19VHcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFR3KSh2cih0dyksdnIod3cpLHZyKEV3KSx2cihpdykpfSxUdy7JtXByb3Y9TW4oe3Rva2VuOlR3LGZhY3Rvcnk6VHcuybVmYWN9KSxUdy5JTklUPSRQLFR3LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dHd9LHt0eXBlOnd3fSx7dHlwZTpFd30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2l3XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChUdyxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dHd9LHt0eXBlOnd3fSx7dHlwZTpFd30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2l3XX1dfV19KSxudWxsKTtjb25zdCB6dz1bVHcse3Byb3ZpZGU6QXcsdXNlRXhpc3Rpbmc6VHd9XTtjbGFzcyBJdyBleHRlbmRzIER7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy5hY3Rpb25zT2JzZXJ2ZXI9ZSx0aGlzLnJlZHVjZXJNYW5hZ2VyPW4sdGhpcy5zb3VyY2U9dH1zZWxlY3QodCwuLi5lKXtyZXR1cm4gRncuY2FsbChudWxsLHQsLi4uZSkodGhpcyl9bGlmdCh0KXtjb25zdCBlPW5ldyBJdyh0aGlzLHRoaXMuYWN0aW9uc09ic2VydmVyLHRoaXMucmVkdWNlck1hbmFnZXIpO3JldHVybiBlLm9wZXJhdG9yPXQsZX1kaXNwYXRjaCh0KXt0aGlzLmFjdGlvbnNPYnNlcnZlci5uZXh0KHQpfW5leHQodCl7dGhpcy5hY3Rpb25zT2JzZXJ2ZXIubmV4dCh0KX1lcnJvcih0KXt0aGlzLmFjdGlvbnNPYnNlcnZlci5lcnJvcih0KX1jb21wbGV0ZSgpe3RoaXMuYWN0aW9uc09ic2VydmVyLmNvbXBsZXRlKCl9YWRkUmVkdWNlcih0LGUpe3RoaXMucmVkdWNlck1hbmFnZXIuYWRkUmVkdWNlcih0LGUpfXJlbW92ZVJlZHVjZXIodCl7dGhpcy5yZWR1Y2VyTWFuYWdlci5yZW1vdmVSZWR1Y2VyKHQpfX1Jdy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SXcpKHZyKEF3KSx2cih0dyksdnIoU3cpKX0sSXcuybVwcm92PU1uKHt0b2tlbjpJdyxmYWN0b3J5Okl3Lsm1ZmFjfSksSXcuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpBd30se3R5cGU6dHd9LHt0eXBlOlN3fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChJdyxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QXd9LHt0eXBlOnR3fSx7dHlwZTpTd31dfSksbnVsbCk7Y29uc3QgSHc9W0l3XTtmdW5jdGlvbiBGdyh0LGUsLi4ubil7cmV0dXJuIGZ1bmN0aW9uIG8oaSl7bGV0IGE7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtjb25zdCBvPVtlLC4uLm5dLmZpbHRlcihCb29sZWFuKTthPWkucGlwZSgoZnVuY3Rpb24gcigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj10Lmxlbmd0aDtpZigwPT09bil0aHJvdyBuZXcgRXJyb3IoImxpc3Qgb2YgcHJvcGVydGllcyBjYW5ub3QgYmUgZW1wdHkuIik7cmV0dXJuIEl0KChmdW5jdGlvbihlKXtmb3IodmFyIG89ZSxpPTA7aTxuO2krKyl7dmFyIGE9bnVsbD09bz92b2lkIDA6b1t0W2ldXTtpZih2b2lkIDA9PT1hKXJldHVybjtvPWF9cmV0dXJuIG99KSl9KSh0LC4uLm8pKX1lbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoYFVuZXhwZWN0ZWQgdHlwZSAnJHt0eXBlb2YgdH0nIGluIHNlbGVjdCBvcGVyYXRvciwgZXhwZWN0ZWQgJ3N0cmluZycgb3IgJ2Z1bmN0aW9uJ2ApO2E9aS5waXBlKEl0KChuPT50KG4sZSkpKSl9cmV0dXJuIGEucGlwZShNZSgpKX19Y29uc3QgTHc9Imh0dHBzOi8vbmdyeC5pby9ndWlkZS9zdG9yZS9jb25maWd1cmF0aW9uL3J1bnRpbWUtY2hlY2tzIjtmdW5jdGlvbiBCdyh0KXtyZXR1cm4gdm9pZCAwPT09dH1mdW5jdGlvbiBWdyh0KXtyZXR1cm4gbnVsbD09PXR9ZnVuY3Rpb24gancodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gVXcodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dH1mdW5jdGlvbiBHdyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH1mdW5jdGlvbiBXdyh0LGUpe3JldHVybiB0PT09ZX1mdW5jdGlvbiBZdyh0LGUsbil7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspaWYoIW4odFtvXSxlW29dKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBxdyh0LGU9V3csbj1Xdyl7bGV0IG8saT1udWxsLGE9bnVsbDtyZXR1cm57bWVtb2l6ZWQ6ZnVuY3Rpb24gcigpe2lmKHZvaWQgMCE9PW8pcmV0dXJuIG8ucmVzdWx0O2lmKCFpKXJldHVybiBhPXQuYXBwbHkobnVsbCxhcmd1bWVudHMpLGk9YXJndW1lbnRzLGE7aWYoIVl3KGFyZ3VtZW50cyxpLGUpKXJldHVybiBhO2NvbnN0IHI9dC5hcHBseShudWxsLGFyZ3VtZW50cyk7cmV0dXJuIGk9YXJndW1lbnRzLG4oYSxyKT9hOihhPXIscil9LHJlc2V0OmZ1bmN0aW9uIHMoKXtpPW51bGwsYT1udWxsfSxzZXRSZXN1bHQ6ZnVuY3Rpb24gbCh0KXtvPXtyZXN1bHQ6dH19LGNsZWFyUmVzdWx0OmZ1bmN0aW9uIGMoKXtvPXZvaWQgMH19fWZ1bmN0aW9uIFp3KC4uLnQpe3JldHVybihmdW5jdGlvbiBlKHQsbj17c3RhdGVGbjpYd30pe3JldHVybiBmdW5jdGlvbiguLi5lKXtsZXQgbz1lO2lmKEFycmF5LmlzQXJyYXkob1swXSkpe2NvbnN0W3QsLi4uZV09bztvPVsuLi50LC4uLmVdfWNvbnN0IGk9by5zbGljZSgwLG8ubGVuZ3RoLTEpLGE9b1tvLmxlbmd0aC0xXSxyPWkuZmlsdGVyKCh0PT50LnJlbGVhc2UmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnJlbGVhc2UpKSxzPXQoKGZ1bmN0aW9uKC4uLnQpe3JldHVybiBhLmFwcGx5KG51bGwsdCl9KSksbD1xdygoZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zdGF0ZUZuLmFwcGx5KG51bGwsW3QsaSxlLHNdKX0pKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihsLm1lbW9pemVkLHtyZWxlYXNlOmZ1bmN0aW9uIGMoKXtsLnJlc2V0KCkscy5yZXNldCgpLHIuZm9yRWFjaCgodD0+dC5yZWxlYXNlKCkpKX0scHJvamVjdG9yOnMubWVtb2l6ZWQsc2V0UmVzdWx0Omwuc2V0UmVzdWx0LGNsZWFyUmVzdWx0OmwuY2xlYXJSZXN1bHR9KX19KShxdykoLi4udCl9ZnVuY3Rpb24gWHcodCxlLG4sbyl7aWYodm9pZCAwPT09bil7Y29uc3Qgbj1lLm1hcCgoZT0+ZSh0KSkpO3JldHVybiBvLm1lbW9pemVkLmFwcGx5KG51bGwsbil9Y29uc3QgaT1lLm1hcCgoZT0+ZSh0LG4pKSk7cmV0dXJuIG8ubWVtb2l6ZWQuYXBwbHkobnVsbCxbLi4uaSxuXSl9ZnVuY3Rpb24gS3codCl7cmV0dXJuIFp3KChlPT57Y29uc3Qgbj1lW3RdO3JldHVybiB5XygpJiYhKHQgaW4gZSkmJmNvbnNvbGUud2FybihgQG5ncngvc3RvcmU6IFRoZSBmZWF0dXJlIG5hbWUgIiR7dH0iIGRvZXMgbm90IGV4aXN0IGluIHRoZSBzdGF0ZSwgdGhlcmVmb3JlIGNyZWF0ZUZlYXR1cmVTZWxlY3RvciBjYW5ub3QgYWNjZXNzIGl0LiAgQmUgc3VyZSBpdCBpcyBpbXBvcnRlZCBpbiBhIGxvYWRlZCBtb2R1bGUgdXNpbmcgU3RvcmVNb2R1bGUuZm9yUm9vdCgnJHt0fScsIC4uLikgb3IgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZSgnJHt0fScsIC4uLikuICBJZiB0aGUgZGVmYXVsdCBzdGF0ZSBpcyBpbnRlbmRlZCB0byBiZSB1bmRlZmluZWQsIGFzIGlzIHRoZSBjYXNlIHdpdGggcm91dGVyIHN0YXRlLCB0aGlzIGRldmVsb3BtZW50LW9ubHkgd2FybmluZyBtZXNzYWdlIGNhbiBiZSBpZ25vcmVkLmApLG59KSwodD0+dCkpfWZ1bmN0aW9uIEp3KHQpe09iamVjdC5mcmVlemUodCk7Y29uc3QgZT1Hdyh0KTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkuZm9yRWFjaCgobj0+e2lmKCFuLnN0YXJ0c1dpdGgoIsm1IikmJihmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfSkodCxuKSYmKCFlfHwiY2FsbGVyIiE9PW4mJiJjYWxsZWUiIT09biYmImFyZ3VtZW50cyIhPT1uKSl7Y29uc3QgZT10W25dOyFVdyhlKSYmIUd3KGUpfHxPYmplY3QuaXNGcm96ZW4oZSl8fEp3KGUpfX0pKSx0fWZ1bmN0aW9uIFF3KHQsZT1bXSl7cmV0dXJuKEJ3KHQpfHxWdyh0KSkmJjA9PT1lLmxlbmd0aD97cGF0aDpbInJvb3QiXSx2YWx1ZTp0fTpPYmplY3Qua2V5cyh0KS5yZWR1Y2UoKChuLG8pPT57aWYobilyZXR1cm4gbjtjb25zdCBpPXRbb107cmV0dXJuKGZ1bmN0aW9uIGEodCl7cmV0dXJuIEd3KHQpJiZ0Lmhhc093blByb3BlcnR5KCLJtWNtcCIpfSkoaSk/bjohKEJ3KGkpfHxWdyhpKXx8KGZ1bmN0aW9uIHIodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0fSkoaSl8fChmdW5jdGlvbiBzKHQpe3JldHVybiJib29sZWFuIj09dHlwZW9mIHR9KShpKXx8KGZ1bmN0aW9uIGwodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fSkoaSl8fGp3KGkpKSYmKChmdW5jdGlvbiBjKHQpe2lmKCEoZnVuY3Rpb24gZSh0KXtyZXR1cm4gVXcodCkmJiFqdyh0KX0pKHQpKXJldHVybiExO2NvbnN0IG49T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO3JldHVybiBuPT09T2JqZWN0LnByb3RvdHlwZXx8bnVsbD09PW59KShpKT9RdyhpLFsuLi5lLG9dKTp7cGF0aDpbLi4uZSxvXSx2YWx1ZTppfSl9KSwhMSl9ZnVuY3Rpb24gJHcodCxlKXtpZighMT09PXQpcmV0dXJuO2NvbnN0IG49dC5wYXRoLmpvaW4oIi4iKSxvPW5ldyBFcnJvcihgRGV0ZWN0ZWQgdW5zZXJpYWxpemFibGUgJHtlfSBhdCAiJHtufSIuICR7THd9I3N0cmljdCR7ZX1zZXJpYWxpemFiaWxpdHlgKTt0aHJvdyBvLnZhbHVlPXQudmFsdWUsby51bnNlcmlhbGl6YWJsZVBhdGg9bixvfWZ1bmN0aW9uIHRrKHQpe3JldHVybiB5XygpP09iamVjdC5hc3NpZ24oe3N0cmljdFN0YXRlU2VyaWFsaXphYmlsaXR5OiExLHN0cmljdEFjdGlvblNlcmlhbGl6YWJpbGl0eTohMSxzdHJpY3RTdGF0ZUltbXV0YWJpbGl0eTohMCxzdHJpY3RBY3Rpb25JbW11dGFiaWxpdHk6ITAsc3RyaWN0QWN0aW9uV2l0aGluTmdab25lOiExLHN0cmljdEFjdGlvblR5cGVVbmlxdWVuZXNzOiExfSx0KTp7c3RyaWN0U3RhdGVTZXJpYWxpemFiaWxpdHk6ITEsc3RyaWN0QWN0aW9uU2VyaWFsaXphYmlsaXR5OiExLHN0cmljdFN0YXRlSW1tdXRhYmlsaXR5OiExLHN0cmljdEFjdGlvbkltbXV0YWJpbGl0eTohMSxzdHJpY3RBY3Rpb25XaXRoaW5OZ1pvbmU6ITEsc3RyaWN0QWN0aW9uVHlwZVVuaXF1ZW5lc3M6ITF9fWZ1bmN0aW9uIGVrKHtzdHJpY3RBY3Rpb25TZXJpYWxpemFiaWxpdHk6dCxzdHJpY3RTdGF0ZVNlcmlhbGl6YWJpbGl0eTplfSl7cmV0dXJuIG49PnR8fGU/KGZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gZnVuY3Rpb24obixvKXtlLmFjdGlvbihvKSYmJHcoUXcobyksImFjdGlvbiIpO2NvbnN0IGk9dChuLG8pO3JldHVybiBlLnN0YXRlKCkmJiR3KFF3KGkpLCJzdGF0ZSIpLGl9fSkobix7YWN0aW9uOmU9PnQmJiFvayhlKSxzdGF0ZTooKT0+ZX0pOm59ZnVuY3Rpb24gbmsoe3N0cmljdEFjdGlvbkltbXV0YWJpbGl0eTp0LHN0cmljdFN0YXRlSW1tdXRhYmlsaXR5OmV9KXtyZXR1cm4gbj0+dHx8ZT8oZnVuY3Rpb24gbyh0LGUpe3JldHVybiBmdW5jdGlvbihuLG8pe2NvbnN0IGk9ZS5hY3Rpb24obyk/Sncobyk6byxhPXQobixpKTtyZXR1cm4gZS5zdGF0ZSgpP0p3KGEpOmF9fSkobix7YWN0aW9uOmU9PnQmJiFvayhlKSxzdGF0ZTooKT0+ZX0pOm59ZnVuY3Rpb24gb2sodCl7cmV0dXJuIHQudHlwZS5zdGFydHNXaXRoKCJAbmdyeCIpfWZ1bmN0aW9uIGlrKHtzdHJpY3RBY3Rpb25XaXRoaW5OZ1pvbmU6dH0pe3JldHVybiBlPT50PyhmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4sbyl7aWYoZS5hY3Rpb24obykmJiFhXy5pc0luQW5ndWxhclpvbmUoKSl0aHJvdyBuZXcgRXJyb3IoYEFjdGlvbiAnJHtvLnR5cGV9JyBydW5uaW5nIG91dHNpZGUgTmdab25lLiAke0x3fSNzdHJpY3RhY3Rpb253aXRoaW5uZ3pvbmVgKTtyZXR1cm4gdChuLG8pfX0pKGUse2FjdGlvbjplPT50JiYhb2soZSl9KTplfWZ1bmN0aW9uIGFrKCl7cmV0dXJuW3twcm92aWRlOnZ3LG11bHRpOiEwLGRlcHM6W013XSx1c2VGYWN0b3J5OnNrfV19ZnVuY3Rpb24gcmsodCl7cmV0dXJuIHR9ZnVuY3Rpb24gc2sodCl7aWYoIXQuc3RyaWN0QWN0aW9uVHlwZVVuaXF1ZW5lc3MpcmV0dXJuO2NvbnN0IGU9T2JqZWN0LmVudHJpZXMoS1ApLmZpbHRlcigoKFssdF0pPT50PjEpKS5tYXAoKChbdF0pPT50KSk7aWYoZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBBY3Rpb24gdHlwZXMgYXJlIHJlZ2lzdGVyZWQgbW9yZSB0aGFuIG9uY2UsICR7ZS5tYXAoKHQ9PmAiJHt0fSJgKSkuam9pbigiLCAiKX0uICR7THd9I3N0cmljdGFjdGlvbnR5cGV1bmlxdWVuZXNzYCl9Y2xhc3MgbGt7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe319bGsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxrKSh2cih0dyksdnIod3cpLHZyKEV3KSx2cihJdyksdnIobncsOCksdnIodncsOCkpfSxsay7JtW1vZD1hbyh7dHlwZTpsa30pLGxrLsm1aW5qPXZuKHt9KSxsay5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnR3fSx7dHlwZTp3d30se3R5cGU6RXd9LHt0eXBlOkl3fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W253XX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3Z3XX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsayxbe3R5cGU6QXksYXJnczpbe31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnR3fSx7dHlwZTp3d30se3R5cGU6RXd9LHt0eXBlOkl3fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W253XX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3Z3XX1dfV19KSxudWxsKTtjbGFzcyBja3tjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3RoaXMuZmVhdHVyZXM9dCx0aGlzLmZlYXR1cmVSZWR1Y2Vycz1lLHRoaXMucmVkdWNlck1hbmFnZXI9bjtjb25zdCBhPXQubWFwKCgodCxuKT0+e2NvbnN0IG89ZS5zaGlmdCgpW25dO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3JlZHVjZXJzOm8saW5pdGlhbFN0YXRlOmZrKHQuaW5pdGlhbFN0YXRlKX0pfSkpO24uYWRkRmVhdHVyZXMoYSl9bmdPbkRlc3Ryb3koKXt0aGlzLnJlZHVjZXJNYW5hZ2VyLnJlbW92ZUZlYXR1cmVzKHRoaXMuZmVhdHVyZXMpfX1jay7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Y2spKHZyKHV3KSx2cihndyksdnIoU3cpLHZyKGxrKSx2cih2dyw4KSl9LGNrLsm1bW9kPWFvKHt0eXBlOmNrfSksY2suybVpbmo9dm4oe30pLGNrLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbdXddfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2d3XX1dfSx7dHlwZTpTd30se3R5cGU6bGt9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbdnddfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGNrLFt7dHlwZTpBeSxhcmdzOlt7fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbdXddfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2d3XX1dfSx7dHlwZTpTd30se3R5cGU6bGt9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbdnddfV19XX0pLG51bGwpO2NsYXNzIGRre3N0YXRpYyBmb3JSb290KHQsZT17fSl7cmV0dXJue25nTW9kdWxlOmxrLHByb3ZpZGVyczpbe3Byb3ZpZGU6bncsdXNlRmFjdG9yeTpoayxkZXBzOltbSXcsbmV3IFNyLG5ldyBFcl1dfSx7cHJvdmlkZTpvdyx1c2VWYWx1ZTplLmluaXRpYWxTdGF0ZX0se3Byb3ZpZGU6aXcsdXNlRmFjdG9yeTpmayxkZXBzOltvd119LHtwcm92aWRlOmx3LHVzZVZhbHVlOnR9LHtwcm92aWRlOmR3LHVzZUV4aXN0aW5nOnQgaW5zdGFuY2VvZiBHYT90Omx3fSx7cHJvdmlkZTpzdyxkZXBzOltycCxsdyxbbmV3IGtyKGR3KV1dLHVzZUZhY3Rvcnk6cGt9LHtwcm92aWRlOmh3LHVzZVZhbHVlOmUubWV0YVJlZHVjZXJzP2UubWV0YVJlZHVjZXJzOltdfSx7cHJvdmlkZTp5dyxkZXBzOltidyxod10sdXNlRmFjdG9yeTpna30se3Byb3ZpZGU6cncsdXNlVmFsdWU6ZS5yZWR1Y2VyRmFjdG9yeT9lLnJlZHVjZXJGYWN0b3J5Onh3fSx7cHJvdmlkZTphdyxkZXBzOltydyx5d10sdXNlRmFjdG9yeTpQd30sZXcsRHcsUncsencsSHcsKG49ZS5ydW50aW1lQ2hlY2tzLFt7cHJvdmlkZTpDdyx1c2VWYWx1ZTpufSx7cHJvdmlkZTpfdyx1c2VGYWN0b3J5OnJrLGRlcHM6W0N3XX0se3Byb3ZpZGU6TXcsZGVwczpbX3ddLHVzZUZhY3Rvcnk6dGt9LHtwcm92aWRlOmJ3LG11bHRpOiEwLGRlcHM6W013XSx1c2VGYWN0b3J5Om5rfSx7cHJvdmlkZTpidyxtdWx0aTohMCxkZXBzOltNd10sdXNlRmFjdG9yeTpla30se3Byb3ZpZGU6YncsbXVsdGk6ITAsZGVwczpbTXddLHVzZUZhY3Rvcnk6aWt9XSksYWsoKV19O3ZhciBufXN0YXRpYyBmb3JGZWF0dXJlKHQsZSxuPXt9KXtyZXR1cm57bmdNb2R1bGU6Y2sscHJvdmlkZXJzOlt7cHJvdmlkZTptdyxtdWx0aTohMCx1c2VWYWx1ZTp0IGluc3RhbmNlb2YgT2JqZWN0P3t9Om59LHtwcm92aWRlOmN3LG11bHRpOiEwLHVzZVZhbHVlOntrZXk6dCBpbnN0YW5jZW9mIE9iamVjdD90Lm5hbWU6dCxyZWR1Y2VyRmFjdG9yeTpuIGluc3RhbmNlb2YgR2F8fCFuLnJlZHVjZXJGYWN0b3J5P3h3Om4ucmVkdWNlckZhY3RvcnksbWV0YVJlZHVjZXJzOm4gaW5zdGFuY2VvZiBHYXx8IW4ubWV0YVJlZHVjZXJzP1tdOm4ubWV0YVJlZHVjZXJzLGluaXRpYWxTdGF0ZTpuIGluc3RhbmNlb2YgR2F8fCFuLmluaXRpYWxTdGF0ZT92b2lkIDA6bi5pbml0aWFsU3RhdGV9fSx7cHJvdmlkZTp1dyxkZXBzOltycCxtdyxjd10sdXNlRmFjdG9yeTpta30se3Byb3ZpZGU6cHcsbXVsdGk6ITAsdXNlVmFsdWU6dCBpbnN0YW5jZW9mIE9iamVjdD90LnJlZHVjZXI6ZX0se3Byb3ZpZGU6ZncsbXVsdGk6ITAsdXNlRXhpc3Rpbmc6ZSBpbnN0YW5jZW9mIEdhP2U6cHd9LHtwcm92aWRlOmd3LG11bHRpOiEwLGRlcHM6W3JwLHB3LFtuZXcga3IoZncpXV0sdXNlRmFjdG9yeTp1a30sYWsoKV19fX1mdW5jdGlvbiBwayh0LGUpe3JldHVybiBlIGluc3RhbmNlb2YgR2E/dC5nZXQoZSk6ZX1mdW5jdGlvbiBtayh0LGUsbil7cmV0dXJuIG4ubWFwKCgobixvKT0+e2lmKGVbb11pbnN0YW5jZW9mIEdhKXtjb25zdCBpPXQuZ2V0KGVbb10pO3JldHVybntrZXk6bi5rZXkscmVkdWNlckZhY3Rvcnk6aS5yZWR1Y2VyRmFjdG9yeT9pLnJlZHVjZXJGYWN0b3J5Onh3LG1ldGFSZWR1Y2VyczppLm1ldGFSZWR1Y2Vycz9pLm1ldGFSZWR1Y2VyczpbXSxpbml0aWFsU3RhdGU6aS5pbml0aWFsU3RhdGV9fXJldHVybiBufSkpfWZ1bmN0aW9uIHVrKHQsZSl7cmV0dXJuIGUubWFwKChlPT5lIGluc3RhbmNlb2YgR2E/dC5nZXQoZSk6ZSkpfWZ1bmN0aW9uIGZrKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoKTp0fWZ1bmN0aW9uIGdrKHQsZSl7cmV0dXJuIHQuY29uY2F0KGUpfWZ1bmN0aW9uIGhrKHQpe2lmKHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3RvcmVNb2R1bGUuZm9yUm9vdCgpIGNhbGxlZCB0d2ljZS4gRmVhdHVyZSBtb2R1bGVzIHNob3VsZCB1c2UgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZSgpIGluc3RlYWQuIik7cmV0dXJuImd1YXJkZWQifWZ1bmN0aW9uIGJrKC4uLnQpe3JldHVybntyZWR1Y2VyOnQucG9wKCksdHlwZXM6dC5tYXAoKHQ9PnQudHlwZSkpfX1mdW5jdGlvbiB5ayh0LC4uLmUpe2NvbnN0IG49bmV3IE1hcDtmb3IoY29uc3QgdCBvZiBlKWZvcihjb25zdCBlIG9mIHQudHlwZXMpe2NvbnN0IG89bi5nZXQoZSk7bi5zZXQoZSxvPyhlLG4pPT50LnJlZHVjZXIobyhlLG4pLG4pOnQucmVkdWNlcil9cmV0dXJuIGZ1bmN0aW9uKGU9dCxvKXtjb25zdCBpPW4uZ2V0KG8udHlwZSk7cmV0dXJuIGk/aShlLG8pOmV9fWRrLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkayl9LGRrLsm1bW9kPWFvKHt0eXBlOmRrfSksZGsuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZGssW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLG51bGwsbnVsbCk7Y29uc3QgX2s9e2Rpc3BhdGNoOiEwLHVzZUVmZmVjdHNFcnJvckhhbmRsZXI6ITB9LENrPSJfX0BuZ3J4L2VmZmVjdHNfY3JlYXRlX18iO2Z1bmN0aW9uIE1rKHQsZSl7Y29uc3Qgbj10KCksbz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sX2spLGUpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobixDayx7dmFsdWU6b30pLG59ZnVuY3Rpb24gdmsodCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLmZpbHRlcigoZT0+ISghdFtlXXx8IXRbZV0uaGFzT3duUHJvcGVydHkoQ2spKSYmdFtlXVtDa10uaGFzT3duUHJvcGVydHkoImRpc3BhdGNoIikpKS5tYXAoKGU9Pk9iamVjdC5hc3NpZ24oe3Byb3BlcnR5TmFtZTplfSx0W2VdW0NrXSkpKX1mdW5jdGlvbiB4ayh0KXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfWNvbnN0IE9rPSJfX0BuZ3J4L2VmZmVjdHNfXyI7ZnVuY3Rpb24gUGsodCl7cmV0dXJuIE93KHdrLHhrKSh0KX1mdW5jdGlvbiB3ayh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdC5jb25zdHJ1Y3Rvci5oYXNPd25Qcm9wZXJ0eShPayl9KSh0KT90LmNvbnN0cnVjdG9yW09rXTpbXX1mdW5jdGlvbiBrayh0LGUsbj0xMCl7cmV0dXJuIHQucGlwZShwZSgobz0+KGUmJmUuaGFuZGxlRXJyb3Iobyksbjw9MT90OmtrKHQsZSxuLTEpKSkpKX1jbGFzcyBTayBleHRlbmRzIER7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0JiYodGhpcy5zb3VyY2U9dCl9bGlmdCh0KXtjb25zdCBlPW5ldyBTaztyZXR1cm4gZS5zb3VyY2U9dGhpcyxlLm9wZXJhdG9yPXQsZX19ZnVuY3Rpb24gRGsoLi4udCl7cmV0dXJuIGNlKChlPT50LnNvbWUoKHQ9PiJzdHJpbmciPT10eXBlb2YgdD90PT09ZS50eXBlOnQudHlwZT09PWUudHlwZSkpKSl9ZnVuY3Rpb24gRWsodCl7cmV0dXJuIFJrKHQsIm5ncnhPbkluaXRFZmZlY3RzIil9ZnVuY3Rpb24gUmsodCxlKXtyZXR1cm4gdCYmZSBpbiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdFtlXX1Tay7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U2spKHZyKEV3KSl9LFNrLsm1cHJvdj1Nbih7dG9rZW46U2ssZmFjdG9yeTpTay7JtWZhY30pLFNrLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6RCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltFd119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoU2ssW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkQsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbRXddfV19XX0pLG51bGwpO2NvbnN0IEFrPW5ldyBHYSgiQG5ncngvZWZmZWN0cyBJbnRlcm5hbCBSb290IEd1YXJkIiksVGs9bmV3IEdhKCJAbmdyeC9lZmZlY3RzIFVzZXIgUHJvdmlkZWQgRWZmZWN0cyIpLE5rPW5ldyBHYSgiQG5ncngvZWZmZWN0cyBJbnRlcm5hbCBSb290IEVmZmVjdHMiKSx6az1uZXcgR2EoIkBuZ3J4L2VmZmVjdHMgUm9vdCBFZmZlY3RzIiksSWs9bmV3IEdhKCJAbmdyeC9lZmZlY3RzIEludGVybmFsIEZlYXR1cmUgRWZmZWN0cyIpLEhrPW5ldyBHYSgiQG5ncngvZWZmZWN0cyBGZWF0dXJlIEVmZmVjdHMiKSxGaz1uZXcgR2EoIkBuZ3J4L2VmZmVjdHMgRWZmZWN0cyBFcnJvciBIYW5kbGVyIik7Y2xhc3MgTGsgZXh0ZW5kcyBJe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLmVycm9ySGFuZGxlcj10LHRoaXMuZWZmZWN0c0Vycm9ySGFuZGxlcj1lfWFkZEVmZmVjdHModCl7dGhpcy5uZXh0KHQpfXRvQWN0aW9ucygpe3JldHVybiB0aGlzLnBpcGUod2UoeGspLFp0KCh0PT50LnBpcGUod2UoQmspKSkpLFp0KCh0PT5yZSh0LnBpcGUoUGUoKHQ9PihmdW5jdGlvbiBlKHQsbil7cmV0dXJuIGU9Pntjb25zdCBvPShmdW5jdGlvbiBpKHQsZSxuKXtjb25zdCBvPXhrKHQpLmNvbnN0cnVjdG9yLm5hbWU7cmV0dXJuIHJlKC4uLihmdW5jdGlvbiBpKHQpe3JldHVybltQayx2a10ucmVkdWNlKCgoZSxuKT0+ZS5jb25jYXQobih0KSkpLFtdKX0pKHQpLm1hcCgoKHtwcm9wZXJ0eU5hbWU6aSxkaXNwYXRjaDphLHVzZUVmZmVjdHNFcnJvckhhbmRsZXI6cn0pPT57Y29uc3Qgcz0iZnVuY3Rpb24iPT10eXBlb2YgdFtpXT90W2ldKCk6dFtpXSxsPXI/bihzLGUpOnM7cmV0dXJuITE9PT1hP2wucGlwZSh5ZSgpKTpsLnBpcGUoKGZ1bmN0aW9uIGMoKXtyZXR1cm4gUigoZnVuY3Rpb24odCxlKXt0LnN1YnNjcmliZShuZXcgVChlLChmdW5jdGlvbih0KXtlLm5leHQoQXQuY3JlYXRlTmV4dCh0KSl9KSwoZnVuY3Rpb24oKXtlLm5leHQoQXQuY3JlYXRlQ29tcGxldGUoKSksZS5jb21wbGV0ZSgpfSksKGZ1bmN0aW9uKHQpe2UubmV4dChBdC5jcmVhdGVFcnJvcih0KSksZS5jb21wbGV0ZSgpfSkpKX0pKX0pKCkpLnBpcGUoSXQoKGU9Pih7ZWZmZWN0OnRbaV0sbm90aWZpY2F0aW9uOmUscHJvcGVydHlOYW1lOmksc291cmNlTmFtZTpvLHNvdXJjZUluc3RhbmNlOnR9KSkpKX0pKSl9KShlLHQsbik7cmV0dXJuKGZ1bmN0aW9uIGEodCl7cmV0dXJuIFJrKHQsIm5ncnhPblJ1bkVmZmVjdHMiKX0pKGUpP2UubmdyeE9uUnVuRWZmZWN0cyhvKTpvfX0pKHRoaXMuZXJyb3JIYW5kbGVyLHRoaXMuZWZmZWN0c0Vycm9ySGFuZGxlcikodCkpKSxJdCgodD0+KChmdW5jdGlvbiBlKHQsbil7aWYoIk4iPT09dC5ub3RpZmljYXRpb24ua2luZCl7Y29uc3QgZT10Lm5vdGlmaWNhdGlvbi52YWx1ZTshKGZ1bmN0aW9uIG8odCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJnQmJnQudHlwZSYmInN0cmluZyI9PXR5cGVvZiB0LnR5cGV9KShlKSYmbi5oYW5kbGVFcnJvcihuZXcgRXJyb3IoYEVmZmVjdCAkeyhmdW5jdGlvbiBpKHtwcm9wZXJ0eU5hbWU6dCxzb3VyY2VJbnN0YW5jZTplLHNvdXJjZU5hbWU6bn0pe2NvbnN0IG89ImZ1bmN0aW9uIj09dHlwZW9mIGVbdF07cmV0dXJuYCIke259LiR7U3RyaW5nKHQpfSR7bz8iKCkiOiIifSJgfSkodCl9IGRpc3BhdGNoZWQgYW4gaW52YWxpZCBhY3Rpb246ICR7KGZ1bmN0aW9uIGEodCl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jYXRjaChlKXtyZXR1cm4gdH19KShlKX1gKSl9fSkodCx0aGlzLmVycm9ySGFuZGxlciksdC5ub3RpZmljYXRpb24pKSksY2UoKHQ9PiJOIj09PXQua2luZCYmbnVsbCE9dC52YWx1ZSkpLChmdW5jdGlvbiBlKCl7cmV0dXJuIFIoKGZ1bmN0aW9uKHQsZSl7dC5zdWJzY3JpYmUobmV3IFQoZSwoZnVuY3Rpb24odCl7cmV0dXJuIFR0KHQsZSl9KSkpfSkpfSkoKSksdC5waXBlKGJlKDEpLGNlKEVrKSxJdCgodD0+dC5uZ3J4T25Jbml0RWZmZWN0cygpKSkpKSkpKX19ZnVuY3Rpb24gQmsodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIFJrKHQsIm5ncnhPbklkZW50aWZ5RWZmZWN0cyIpfSkodCk/dC5uZ3J4T25JZGVudGlmeUVmZmVjdHMoKToiIn1May7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TGspKHZyKFpzKSx2cihGaykpfSxMay7JtXByb3Y9TW4oe3Rva2VuOkxrLGZhY3Rvcnk6TGsuybVmYWN9KSxMay5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlpzfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbRmtdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKExrLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpac30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0ZrXX1dfV19KSxudWxsKTtjbGFzcyBWa3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuZWZmZWN0U291cmNlcz10LHRoaXMuc3RvcmU9ZSx0aGlzLmVmZmVjdHNTdWJzY3JpcHRpb249bnVsbH1zdGFydCgpe3RoaXMuZWZmZWN0c1N1YnNjcmlwdGlvbnx8KHRoaXMuZWZmZWN0c1N1YnNjcmlwdGlvbj10aGlzLmVmZmVjdFNvdXJjZXMudG9BY3Rpb25zKCkuc3Vic2NyaWJlKHRoaXMuc3RvcmUpKX1uZ09uRGVzdHJveSgpe3RoaXMuZWZmZWN0c1N1YnNjcmlwdGlvbiYmKHRoaXMuZWZmZWN0c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuZWZmZWN0c1N1YnNjcmlwdGlvbj1udWxsKX19VmsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZrKSh2cihMayksdnIoSXcpKX0sVmsuybVwcm92PU1uKHt0b2tlbjpWayxmYWN0b3J5OlZrLsm1ZmFjfSksVmsuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpMa30se3R5cGU6SXd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFZrLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpMa30se3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IGprPSJAbmdyeC9lZmZlY3RzL2luaXQiO0pQKGprKTtjbGFzcyBVa3tjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXt0aGlzLnNvdXJjZXM9dCxlLnN0YXJ0KCksby5mb3JFYWNoKChlPT50LmFkZEVmZmVjdHMoZSkpKSxuLmRpc3BhdGNoKHt0eXBlOmprfSl9YWRkRWZmZWN0cyh0KXt0aGlzLnNvdXJjZXMuYWRkRWZmZWN0cyh0KX19VWsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVrKSh2cihMayksdnIoVmspLHZyKEl3KSx2cih6ayksdnIobGssOCksdnIoY2ssOCksdnIoQWssOCkpfSxVay7JtW1vZD1hbyh7dHlwZTpVa30pLFVrLsm1aW5qPXZuKHt9KSxVay5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkxrfSx7dHlwZTpWa30se3R5cGU6SXd9LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3prXX1dfSx7dHlwZTpsayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpjayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W0FrXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVayxbe3R5cGU6QXksYXJnczpbe31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkxrfSx7dHlwZTpWa30se3R5cGU6SXd9LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3prXX1dfSx7dHlwZTpsayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpjayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W0FrXX1dfV19KSxudWxsKTtjbGFzcyBHa3tjb25zdHJ1Y3Rvcih0LGUsbixvKXtlLmZvckVhY2goKGU9PmUuZm9yRWFjaCgoZT0+dC5hZGRFZmZlY3RzKGUpKSkpKX19R2suybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEdrKSh2cihVayksdnIoSGspLHZyKGxrLDgpLHZyKGNrLDgpKX0sR2suybVtb2Q9YW8oe3R5cGU6R2t9KSxHay7JtWluaj12bih7fSksR2suY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpVa30se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSGtdfV19LHt0eXBlOmxrLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOmNrLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEdrLFt7dHlwZTpBeSxhcmdzOlt7fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWt9LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0hrXX1dfSx7dHlwZTpsayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpjayxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV19KSxudWxsKTtjbGFzcyBXa3tzdGF0aWMgZm9yRmVhdHVyZSh0PVtdKXtyZXR1cm57bmdNb2R1bGU6R2sscHJvdmlkZXJzOlt0LHtwcm92aWRlOklrLG11bHRpOiEwLHVzZVZhbHVlOnR9LHtwcm92aWRlOlRrLG11bHRpOiEwLHVzZVZhbHVlOltdfSx7cHJvdmlkZTpIayxtdWx0aTohMCx1c2VGYWN0b3J5OllrLGRlcHM6W3JwLElrLFRrXX1dfX1zdGF0aWMgZm9yUm9vdCh0PVtdKXtyZXR1cm57bmdNb2R1bGU6VWsscHJvdmlkZXJzOlt7cHJvdmlkZTpGayx1c2VWYWx1ZTpra30sVmssTGssU2ssdCx7cHJvdmlkZTpOayx1c2VWYWx1ZTpbdF19LHtwcm92aWRlOkFrLHVzZUZhY3Rvcnk6cWssZGVwczpbW1ZrLG5ldyBTcixuZXcgRXJdLFtOayxuZXcgRHJdXX0se3Byb3ZpZGU6VGssbXVsdGk6ITAsdXNlVmFsdWU6W119LHtwcm92aWRlOnprLHVzZUZhY3Rvcnk6WWssZGVwczpbcnAsTmssVGtdfV19fX1mdW5jdGlvbiBZayh0LGUsbil7Y29uc3Qgbz1bXTtmb3IoY29uc3QgdCBvZiBlKW8ucHVzaCguLi50KTtmb3IoY29uc3QgdCBvZiBuKW8ucHVzaCguLi50KTtyZXR1cm4oZnVuY3Rpb24gaSh0LGUpe3JldHVybiBlLm1hcCgoZT0+dC5nZXQoZSkpKX0pKHQsbyl9ZnVuY3Rpb24gcWsodCxlKXtpZigoMSE9PWUubGVuZ3RofHwwIT09ZVswXS5sZW5ndGgpJiZ0KXRocm93IG5ldyBUeXBlRXJyb3IoIkVmZmVjdHNNb2R1bGUuZm9yUm9vdCgpIGNhbGxlZCB0d2ljZS4gRmVhdHVyZSBtb2R1bGVzIHNob3VsZCB1c2UgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKCkgaW5zdGVhZC4iKTtyZXR1cm4iZ3VhcmRlZCJ9dmFyIFprO1drLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxXayl9LFdrLsm1bW9kPWFvKHt0eXBlOldrfSksV2suybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoV2ssW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLG51bGwsbnVsbCksKGZ1bmN0aW9uKHQpe3RbdC5VTktOT1dOPTBdPSJVTktOT1dOIix0W3QuRVhQRVJJTUVOVFM9MV09IkVYUEVSSU1FTlRTIix0W3QuRVhQRVJJTUVOVD0yXT0iRVhQRVJJTUVOVCIsdFt0LkNPTVBBUkVfRVhQRVJJTUVOVD0zXT0iQ09NUEFSRV9FWFBFUklNRU5UIix0W3QuTk9UX1NFVD00XT0iTk9UX1NFVCJ9KShaa3x8KFprPXt9KSk7Y29uc3QgWGs9ImRlZmF1bHRFeHBlcmltZW50SWQiO2Z1bmN0aW9uIEtrKHQpe3JldHVybiB0LnNwbGl0KCIsIikubWFwKCh0PT57Y29uc3QgZT10LmluZGV4T2YoIjoiKTtpZihlPDApdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgY29sb24gZGVsaW1pdGluZyBuYW1lIGFuZCBJRDogJHt0fWApO2NvbnN0IG49dC5zbGljZSgwLGUpLG89dC5zbGljZShlKzEpO2lmKCFvKXRocm93IG5ldyBFcnJvcihgRXhwZWN0IGlkIHRvIGJlIG5vbi1mYWxzeTogJHt0fWApO3JldHVybntuYW1lOm4saWQ6b319KSl9ZnVuY3Rpb24gSmsodCxlKXtzd2l0Y2godCl7Y2FzZSBaay5FWFBFUklNRU5UOnJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwiZXhwZXJpbWVudElkIik/W2UuZXhwZXJpbWVudElkXTpbWGtdO2Nhc2UgWmsuQ09NUEFSRV9FWFBFUklNRU5UOnJldHVybiBLayhlLmV4cGVyaW1lbnRJZHMpLm1hcCgoKHtpZDp0fSk9PnQpKTtjYXNlIFprLkVYUEVSSU1FTlRTOmRlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIFFrKHQsZSl7dmFyIG47c3dpdGNoKHQpe2Nhc2UgWmsuQ09NUEFSRV9FWFBFUklNRU5UOmNhc2UgWmsuRVhQRVJJTUVOVDp7Y29uc3Qgbz1udWxsIT09KG49SmsodCxlKSkmJnZvaWQgMCE9PW4/bjpbXTtyZXR1cm4gby5zb3J0KCksYCR7dH0vJHtvLmpvaW4oIiwiKX1gfWNhc2UgWmsuRVhQRVJJTUVOVFM6cmV0dXJuIFN0cmluZyh0KTtjYXNlIFprLk5PVF9TRVQ6cmV0dXJuIl9fbm90X3NldCI7ZGVmYXVsdDpyZXR1cm4iIn19Y29uc3QgJGs9KCk9PndpbmRvdy5sb2NhdGlvbi5ocmVmO2NsYXNzIHRTe2dldEhyZWYoKXtyZXR1cm4gJGsoKX1nZXRTZWFyY2goKXtjb25zdCB0PW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCksZT1bXTtyZXR1cm4gdC5mb3JFYWNoKCgodCxuKT0+e2UucHVzaCh7a2V5Om4sdmFsdWU6dH0pfSkpLGV9Z2V0SGFzaCgpe3JldHVybiB3aW5kb3cubG9jYXRpb24uaGFzaH1nZXRQYXRoKCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX1yZXBsYWNlU3RhdGUodCl7d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsIiIsdCl9cHVzaFN0YXRlKHQpe3dpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShudWxsLCIiLHQpfW9uUG9wU3RhdGUoKXtyZXR1cm4gb2Uod2luZG93LCJwb3BzdGF0ZSIpLnBpcGUoSXQoKCgpPT4oe3BhdGhuYW1lOnRoaXMuZ2V0UGF0aCgpLHF1ZXJ5UGFyYW1zOnRoaXMuZ2V0U2VhcmNoKCl9KSkpKX1nZXRSZXNvbHZlZFBhdGgodCl7cmV0dXJuIG5ldyBVUkwodCwkaygpKS5wYXRobmFtZX1nZXRGdWxsUGF0aEZyb21Sb3V0ZU9yTmF2KHQsZSl7Y29uc3Qgbj10aGlzLmdldFJlc29sdmVkUGF0aCh0LnBhdGhuYW1lKTtsZXQgbz0iIjtyZXR1cm4hKGZ1bmN0aW9uIGkodCl7cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoInBhdGhuYW1lIikmJiF0Lmhhc093blByb3BlcnR5KCJxdWVyeVBhcmFtcyIpfSkodCkmJnQucXVlcnlQYXJhbXMubGVuZ3RoJiYobz0iPyIrKGZ1bmN0aW9uIGEodCl7Y29uc3QgZT1uZXcgVVJMU2VhcmNoUGFyYW1zO2Zvcihjb25zdHtrZXk6bix2YWx1ZTpvfW9mIHQpZS5hcHBlbmQobixvKTtyZXR1cm4gZX0pKHQucXVlcnlQYXJhbXMpLnRvU3RyaW5nKCkpLGAke259JHtvfSR7ZT90aGlzLmdldEhhc2goKToiIn1gfX10Uy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dFMpfSx0Uy7JtXByb3Y9TW4oe3Rva2VuOnRTLGZhY3Rvcnk6dFMuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHRTLFt7dHlwZTppbX1dLG51bGwsbnVsbCk7Y2xhc3MgZVN7Y29uc3RydWN0b3IodCl7dGhpcy5hcHBSb290PXRoaXMuZ2V0QXBwUm9vdEZyb21NZXRhRWxlbWVudCh0KX1nZXRBcHBSb290RnJvbU1ldGFFbGVtZW50KHQpe2NvbnN0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCBtZXRhW25hbWU9InRiLXJlbGF0aXZlLXJvb3QiXScpO2lmKCFlKXJldHVybiIvIjtjb25zdHtwYXRobmFtZTpufT1uZXcgVVJMKGUuY29udGVudCx0LmdldEhyZWYoKSk7cmV0dXJuIG4ucmVwbGFjZSgvXC8qJC8sIi8iKX1nZXRBYnNQYXRobmFtZVdpdGhBcHBSb290KHQpe3JldHVybiB0aGlzLmFwcFJvb3Quc2xpY2UoMCwtMSkrdH1nZXRBcHBSb290bGVzc1BhdGhuYW1lKHQpe3JldHVybiB0LnN0YXJ0c1dpdGgodGhpcy5hcHBSb290KT8iLyIrdC5zbGljZSh0aGlzLmFwcFJvb3QubGVuZ3RoKTp0fX1lUy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZVMpKHZyKHRTKSl9LGVTLsm1cHJvdj1Nbih7dG9rZW46ZVMsZmFjdG9yeTplUy7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZVMsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnRTfV19KSxudWxsKTtjbGFzcyBuUyBleHRlbmRzIGVTe2dldEFwcFJvb3QoKXtyZXR1cm4gdGhpcy5hcHBSb290fXNldEFwcFJvb3QodCl7dGhpcy5hcHBSb290PXR9fW5TLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShuUykpKShufHxuUyl9fSkoKSxuUy7JtXByb3Y9TW4oe3Rva2VuOm5TLGZhY3Rvcnk6blMuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG5TLFt7dHlwZTppbX1dLG51bGwsbnVsbCk7Y2xhc3Mgb1N7fW9TLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxvUyl9LG9TLsm1bW9kPWFvKHt0eXBlOm9TfSksb1MuybVpbmo9dm4oe3Byb3ZpZGVyczpbdFNdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvUyxbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpbdFNdfV19XSxudWxsLG51bGwpO2NsYXNzIGlTe31pUy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aVMpfSxpUy7JtW1vZD1hbyh7dHlwZTppU30pLGlTLsm1aW5qPXZuKHtwcm92aWRlcnM6W2VTXSxpbXBvcnRzOltbb1NdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoaVMsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltvU10scHJvdmlkZXJzOltlU119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhpUyx7aW1wb3J0czpbb1NdfSk7Y29uc3QgYVM9SlAoIltBcHAgUm91dGluZ10gRGlzY2FyZGluZyBVbnNhdmVkIFVwZGF0ZXMiKSxyUz1KUCgiW0FwcCBSb3V0aW5nXSBTdGF0ZSBSZWh5ZHJhdGVkIEZyb20gVXJsIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksc1M9SlAoIltBcHAgUm91dGluZ10gUm91dGUgQ29uZmlnIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGxTPUpQKCJbQXBwIFJvdXRpbmddIEluIEFwcCBOYXZpZ2F0aW9uIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGNTPUpQKCJbQXBwIFJvdXRpbmddIEluIEFwcCBOYXZpZ2F0aW5nIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksZFM9SlAoIltBcHAgUm91dGluZ10gSW4gQXBwIE5hdmlnYXRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHBTPW5ldyBHYSgiW0FwcCBSb3V0aW5nXSBEaXJ0eSBVcGRhdGVzIik7Y2xhc3MgbVN7Y29uc3RydWN0b3IodCl7dGhpcy5kaXJ0eVVwZGF0ZXNTZWxlY3RvckZhY3Rvcmllcz10fWdldERpcnR5VXBkYXRlc1NlbGVjdG9ycygpe3ZhciB0O3JldHVybiBudWxsIT09KHQ9dGhpcy5kaXJ0eVVwZGF0ZXNTZWxlY3RvckZhY3RvcmllcykmJnZvaWQgMCE9PXQ/dDpbXX1zdGF0aWMgcmVnaXN0ZXJEaXJ0eVVwZGF0ZXModCl7cmV0dXJue25nTW9kdWxlOm1TLHByb3ZpZGVyczpbe3Byb3ZpZGU6cFMsbXVsdGk6ITAsdXNlRmFjdG9yeTp0fV19fX1tUy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bVMpKHZyKHBTLDgpKX0sbVMuybVtb2Q9YW8oe3R5cGU6bVN9KSxtUy7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChtUyxbe3R5cGU6QXl9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3BTXX1dfV19KSxudWxsKTtjb25zdCB1Uz1uZXcgR2EoIltBcHAgUm91dGluZ10gUHJvZ3JhbW1hdGljYWwgTmF2aWdhdGlvbiBQcm92aWRlciIpO2NsYXNzIGZTe2NvbnN0cnVjdG9yKHQpe3RoaXMucHJvdmlkZXJzPW5ldyBNYXA7Zm9yKGNvbnN0IGUgb2YgdHx8W10pe2lmKHRoaXMucHJvdmlkZXJzLmhhcyhlLmFjdGlvbkNyZWF0b3IudHlwZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYCIke2UuYWN0aW9uQ3JlYXRvci50eXBlfSIgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGZvciBuYXYuIE11bHRpcGxlIG5hdmlnYXRpb25zIG9uIHNhbWUga2ljayBpcyBub3QgYWxsb3dlZC5gKTt0aGlzLnByb3ZpZGVycy5zZXQoZS5hY3Rpb25DcmVhdG9yLnR5cGUsZS5sYW1iZGEpfX1nZXROYXZpZ2F0aW9uKHQpe2NvbnN0IGU9dGhpcy5wcm92aWRlcnMuZ2V0KHQudHlwZSk7cmV0dXJuIGU/ZSh0KTpudWxsfXN0YXRpYyByZWdpc3RlclByb2dyYW1tYXRpY2FsTmF2aWdhdGlvbih0KXtyZXR1cm57bmdNb2R1bGU6ZlMscHJvdmlkZXJzOlt7cHJvdmlkZTp1UyxtdWx0aTohMCx1c2VGYWN0b3J5OnR9XX19fWZ1bmN0aW9uIGdTKHQpe3JldHVybiBudWxsIT10LnJvdXRlS2luZH1mdW5jdGlvbiBoUyh0KXtyZXR1cm4gdlModCkubWFwKCh0PT57Y29uc3QgZT10LnN0YXJ0c1dpdGgoIjoiKTtyZXR1cm4gZT97cGF0aFBhcnQ6dCxpc1BhcmFtOiEwLHBhcmFtTmFtZTp0LnNsaWNlKDEpfTp7cGF0aFBhcnQ6dCxpc1BhcmFtOmV9fSkpfWZTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmUykodnIodVMsOCkpfSxmUy7JtW1vZD1hbyh7dHlwZTpmU30pLGZTLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGZTLFt7dHlwZTpBeSxhcmdzOlt7fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt1U119XX1dfSksbnVsbCk7Y2xhc3MgYlN7Y29uc3RydWN0b3IodCl7dGhpcy52YWxpZGF0ZUNvbmZpZyh0KSx0aGlzLnBhdGhGcmFnbWVudHM9aFModC5wYXRoKSx0aGlzLnBhdGhNYXRjaGVycz10aGlzLmdldFBhdGhNYXRjaGVycyh0aGlzLnBhdGhGcmFnbWVudHMpfXN0YXRpYyBnZXRNYXRjaGVyKHQpe3JldHVybiBnUyh0KT9uZXcgeVModCk6KGZ1bmN0aW9uIGUodCl7cmV0dXJuIHZvaWQgMCE9PXQucmVkaXJlY3Rpb25QYXRofSkodCk/bmV3IF9TKHQpOm5ldyBDUyh0KX12YWxpZGF0ZUNvbmZpZyh7cGF0aDp0fSl7aWYoIXQuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBSYW5nZUVycm9yKGBjb25maWcucGF0aCBzaG91bGQgc3RhcnQgd2l0aCAnLycuICR7dH1gKTtsZXQgZT0wO2Zvcig7KGU9dC5pbmRleE9mKCI6IixlKzEpKT49MDspe2lmKCIvIiE9PXRbZS0xXSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgY29uZmlnLnBhdGggcGFyYW1ldGVyIHNob3VsZCBjb21lIGFmdGVyICcvJy4gJHt0fWApO2lmKHZvaWQgMD09PXRbZSsxXXx8Ii8iPT09dFtlKzFdKXRocm93IG5ldyBSYW5nZUVycm9yKGBjb25maWcucGF0aCBwYXJhbWV0ZXIgc2hvdWxkIGhhdmUgbm9uLWVtcHR5IG5hbWUuICR7dH1gKX19Z2V0UGF0aE1hdGNoZXJzKHQpe3JldHVybiB0Lm1hcCgodD0+e2NvbnN0e3BhdGhQYXJ0OmV9PXQ7cmV0dXJuIHQuaXNQYXJhbT9lPT4oe2lzUGFyYW1QYXRoUGFydDohMCxwYXJ0TWF0Y2hlZDohMCxwYXJhbU5hbWU6dC5wYXJhbU5hbWUscGFyYW1WYWx1ZTplfSk6dD0+KHtpc1BhcmFtUGF0aFBhcnQ6ITEscGFydE1hdGNoZWQ6dD09PWV9KX0pKX1tYXRjaCh0KXtsZXQgZT17fTtpZih0aGlzLnBhdGhNYXRjaGVycy5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm57cmVzdWx0OiExfTtsZXQgbj0wO2Zvcihjb25zdCBvIG9mIHRoaXMucGF0aE1hdGNoZXJzKXtjb25zdCBpPW8odFtuKytdKTtpZighaS5wYXJ0TWF0Y2hlZClyZXR1cm57cmVzdWx0OiExfTtpLmlzUGFyYW1QYXRoUGFydCYmKGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHtbaS5wYXJhbU5hbWVdOmkucGFyYW1WYWx1ZX0pKX1yZXR1cm57cmVzdWx0OiEwLHBhcmFtczplLHBhdGhQYXJ0czp0LGlzUmVkaXJlY3Rpb246ITF9fW1hdGNoQnlQYXJhbXModCl7cmV0dXJue3Jlc3VsdDohMCxwYXJhbXM6dCxwYXRoUGFydHM6dGhpcy5yZXByb2plY3RQYXRoQnlQYXJhbXModGhpcy5wYXRoRnJhZ21lbnRzLHQpLGlzUmVkaXJlY3Rpb246ITF9fXJlcHJvamVjdFBhdGhCeVBhcmFtcyh0LGUpe2NvbnN0IG49W107Zm9yKGNvbnN0IG8gb2YgdClpZihvLmlzUGFyYW0pe2NvbnN0e3BhcmFtTmFtZTp0fT1vO2lmKCFlLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBSYW5nZUVycm9yKGBGYWlsZWQgdG8gcmVwcm9qZWN0IHBhcmFtZXRlci4gIiR7dH0iIHBhcmFtZXRlciBzaG91bGQgYmUgcHJlc2VudC5gKTtuLnB1c2goZVt0XSl9ZWxzZSBuLnB1c2goby5wYXRoUGFydCk7cmV0dXJuIG59fWNsYXNzIHlTIGV4dGVuZHMgYlN7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5kZWZpbml0aW9uPXR9fWNsYXNzIF9TIGV4dGVuZHMgYlN7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5kZWZpbml0aW9uPXQsdGhpcy5yZWRpcmVjdGlvbkZyYWdtZW50cz1oUyh0LnJlZGlyZWN0aW9uUGF0aCl9bWF0Y2godCl7Y29uc3QgZT1zdXBlci5tYXRjaCh0KTtpZighZS5yZXN1bHQpcmV0dXJuIGU7Y29uc3Qgbj10aGlzLnJlcHJvamVjdFBhdGhCeVBhcmFtcyh0aGlzLnJlZGlyZWN0aW9uRnJhZ21lbnRzLGUucGFyYW1zKTtyZXR1cm57cmVzdWx0OiEwLHBhcmFtczplLnBhcmFtcyxwYXRoUGFydHM6bixpc1JlZGlyZWN0aW9uOiEwfX19Y2xhc3MgQ1MgZXh0ZW5kcyBiU3tjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLmRlZmluaXRpb249dH1tYXRjaCh0KXtjb25zdCBlPXN1cGVyLm1hdGNoKHQpO2lmKCFlLnJlc3VsdClyZXR1cm4gZTtjb25zdHtwYXRoUGFydHM6bixxdWVyeVBhcmFtczpvfT10aGlzLmRlZmluaXRpb24ucmVkaXJlY3Rvcih0KTtyZXR1cm57cmVzdWx0OiEwLHBhcmFtczplLnBhcmFtcyxwYXRoUGFydHM6bixpc1JlZGlyZWN0aW9uOiEwLHJlZGlyZWN0aW9uUXVlcnlQYXJhbXM6b319fWNsYXNzIE1Te2NvbnN0cnVjdG9yKHQsZT0zKXtpZih0aGlzLm1heFJlZGlyZWN0aW9uPWUsZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJtYXhSZWRpcmVjdGlvbiBoYXMgdG8gYmUgbm9uLW5lZ2F0aXZlIG51bWJlciIpO3RoaXMudmFsaWRhdGVSb3V0ZUNvbmZpZ3ModCksdGhpcy5kZWZhdWx0Um91dGVDb25maWc9bnVsbCx0aGlzLnJvdXRlS2luZFRvQ29uY3JldGVDb25maWdNYXRjaGVycz1uZXcgTWFwLHRoaXMuY29uZmlnTWF0Y2hlcnM9W107Zm9yKGNvbnN0IGUgb2YgdCl7Y29uc3QgdD1iUy5nZXRNYXRjaGVyKGUpO3RoaXMuY29uZmlnTWF0Y2hlcnMucHVzaCh0KSx0IGluc3RhbmNlb2YgeVMmJih0aGlzLnJvdXRlS2luZFRvQ29uY3JldGVDb25maWdNYXRjaGVycy5zZXQodC5kZWZpbml0aW9uLnJvdXRlS2luZCx0KSx0LmRlZmluaXRpb24uZGVmYXVsdFJvdXRlJiYodGhpcy5kZWZhdWx0Um91dGVDb25maWc9dCkpfX12YWxpZGF0ZVJvdXRlQ29uZmlncyh0KXtjb25zdCBlPXQuZmlsdGVyKGdTKSxuPWUuZmlsdGVyKCh0PT50LmRlZmF1bHRSb3V0ZSkpO2lmKG4ubGVuZ3RoPjEpe2NvbnN0IHQ9bi5tYXAoKCh7cGF0aDp0fSk9PnQpKS5qb2luKCIsICIpO3Rocm93IG5ldyBSYW5nZUVycm9yKGBUaGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBkZWZhdWx0Um91dGVzLiAke3R9YCl9aWYoMT09PW4ubGVuZ3RoKXtjb25zdHtwYXRoOnR9PW5bMF07aWYoQm9vbGVhbihoUyh0KS5maW5kKCgoe2lzUGFyYW06dH0pPT50KSkpKXRocm93IG5ldyBSYW5nZUVycm9yKGBBIGRlZmF1bHRSb3V0ZSBjYW5ub3QgaGF2ZSBhbnkgcGFyYW1zLiAke3R9YCl9Y29uc3Qgbz1uZXcgU2V0O2Zvcihjb25zdHtyb3V0ZUtpbmQ6dH1vZiBlKXtpZihvLmhhcyh0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgTXVsdGlwbGUgcm91dGUgY29uZmlndXJhdGlvbiBmb3Iga2luZDogJHt0fS4gQ29uZmlndXJhdGlvbnMgc2hvdWxkIGhhdmUgdW5pcXVlIHJvdXRlS2luZHNgKTtvLmFkZCh0KX19bWF0Y2godCl7dmFyIGU7aWYoIXQucGF0aG5hbWUuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBSYW5nZUVycm9yKCdOYXZpZ2F0aW9uIGhhcyB0byBtYWRlIHdpdGggcGF0aG5hbWUgdGhhdCBzdGFydHMgd2l0aCAiLyInKTtsZXQgbixvPXZTKHQucGF0aG5hbWUpLGk9MCxhPSExO2Zvcig7Oyl7bGV0IHQ9ITE7Zm9yKGNvbnN0IGUgb2YgdGhpcy5jb25maWdNYXRjaGVycyl7Y29uc3QgaT1lLm1hdGNoKG8pO2lmKGkucmVzdWx0KXt0PSEwO2NvbnN0e3BhcmFtczpyLHBhdGhQYXJ0czpzLGlzUmVkaXJlY3Rpb246bH09aTtpZihsKXtvPXMsYT0hMCxuPWkucmVkaXJlY3Rpb25RdWVyeVBhcmFtczticmVha31pZighKGUgaW5zdGFuY2VvZiB5UykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vIGNvbmNyZXRlIHJvdXRlIGRlZmluaXRpb24gYG1hdGNoYCByZXR1cm4gcmVkaXJlY3Rpb24iKTtjb25zdHtkZWZpbml0aW9uOmN9PWUsZD17cm91dGVLaW5kOmMucm91dGVLaW5kLHBhcmFtczpyLHBhdGhuYW1lOnhTKHMpLGRlZXBMaW5rUHJvdmlkZXI6Yy5kZWVwTGlua1Byb3ZpZGVyfHxudWxsfTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLGE/e29yaWdpbmF0ZUZyb21SZWRpcmVjdGlvbjohMCxyZWRpcmVjdGlvbk9ubHlRdWVyeVBhcmFtczpufTp7b3JpZ2luYXRlRnJvbVJlZGlyZWN0aW9uOiExfSl9fWlmKGEmJmkrKywhdHx8aT50aGlzLm1heFJlZGlyZWN0aW9uKWJyZWFrfWlmKGk+dGhpcy5tYXhSZWRpcmVjdGlvbil0aHJvdyBuZXcgRXJyb3IoYFBvdGVudGlhbCByZWRpcmVjdGlvbiBsb29wIChyZWRpcmVjdGluZyBtb3JlIHRoYW4gJHt0aGlzLm1heFJlZGlyZWN0aW9ufSB0aW1lcy4gUGxlYXNlIGRvIG5vdCBoYXZlIGN5Y2xlcyBpbiB0aGUgcm91dGVzLmApO2lmKHRoaXMuZGVmYXVsdFJvdXRlQ29uZmlnKXtjb25zdHtkZWZpbml0aW9uOnR9PXRoaXMuZGVmYXVsdFJvdXRlQ29uZmlnO3JldHVybntyb3V0ZUtpbmQ6dC5yb3V0ZUtpbmQsZGVlcExpbmtQcm92aWRlcjpudWxsIT09KGU9dC5kZWVwTGlua1Byb3ZpZGVyKSYmdm9pZCAwIT09ZT9lOm51bGwscGF0aG5hbWU6dC5wYXRoLHBhcmFtczp7fSxvcmlnaW5hdGVGcm9tUmVkaXJlY3Rpb246YX19cmV0dXJuIG51bGx9bWF0Y2hCeVJvdXRlS2luZCh0LGUpe2NvbnN0IG49dGhpcy5yb3V0ZUtpbmRUb0NvbmNyZXRlQ29uZmlnTWF0Y2hlcnMuZ2V0KHQpO2lmKCFuKXRocm93IG5ldyBSYW5nZUVycm9yKGBSZXF1aXJlcyBjb25maWd1cmF0aW9uIGZvciByb3V0ZUtpbmQ6ICR7dH1gKTtyZXR1cm57cm91dGVLaW5kOnQscGFyYW1zOmUscGF0aG5hbWU6eFMobi5tYXRjaEJ5UGFyYW1zKGUpLnBhdGhQYXJ0cyksZGVlcExpbmtQcm92aWRlcjpuLmRlZmluaXRpb24uZGVlcExpbmtQcm92aWRlcnx8bnVsbCxvcmlnaW5hdGVGcm9tUmVkaXJlY3Rpb246ITF9fX1mdW5jdGlvbiB2Uyh0KXtyZXR1cm4gdC5zcGxpdCgiLyIpLnNsaWNlKDEpfWZ1bmN0aW9uIHhTKHQpe3JldHVybiIvIit0LmpvaW4oIi8iKX1jb25zdCBPUz1uZXcgR2EoIltBcHAgUm91dGluZ10gUm91dGUgQ29uZmlnIik7Y2xhc3MgUFN7Y29uc3RydWN0b3IodCl7aWYodGhpcy5yb3V0ZUNvbmZpZ3M9bnVsbCx0aGlzLnJvdXRlS2luZFRvTmdDb21wb25lbnQ9bmV3IE1hcCwhdClyZXR1cm47Y29uc3QgZT1bXTtmb3IoY29uc3QgbiBvZiB0KWZvcihjb25zdCB0IG9mIG4pZS5wdXNoKHQpO3RoaXMucm91dGVDb25maWdzPW5ldyBNUyhlKSxlLmZvckVhY2goKHQ9PntnUyh0KSYmdGhpcy5yb3V0ZUtpbmRUb05nQ29tcG9uZW50LnNldCh0LnJvdXRlS2luZCx0Lm5nQ29tcG9uZW50KX0pKX1nZXRSZWdpc3RlcmVkUm91dGVLaW5kcygpe3JldHVybiB0aGlzLnJvdXRlS2luZFRvTmdDb21wb25lbnQua2V5cygpfWdldFJvdXRlQ29uZmlncygpe3JldHVybiB0aGlzLnJvdXRlQ29uZmlnc31nZXROZ0NvbXBvbmVudEJ5Um91dGVLaW5kKHQpe3JldHVybiB0aGlzLnJvdXRlS2luZFRvTmdDb21wb25lbnQuZ2V0KHQpfHxudWxsfXN0YXRpYyByZWdpc3RlclJvdXRlcyh0KXtyZXR1cm57bmdNb2R1bGU6UFMscHJvdmlkZXJzOlt7cHJvdmlkZTpPUyxtdWx0aTohMCx1c2VGYWN0b3J5OnR9XX19fVBTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQUykodnIoT1MsOCkpfSxQUy7JtW1vZD1hbyh7dHlwZTpQU30pLFBTLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFBTLFt7dHlwZTpBeSxhcmdzOlt7fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltPU119XX1dfSksbnVsbCk7Y29uc3Qgd1M9ImFwcF9yb3V0aW5nIixrUz1Ldyh3UyksU1M9Wncoa1MsKHQ9PnQuYWN0aXZlUm91dGUpKSxEUz1adyhrUywodD0+dC5uZXh0Um91dGUpKSxFUz1adyhrUywodD0+dC5yZWdpc3RlcmVkUm91dGVLZXlzKSksUlM9WncoU1MsKHQ9PnQ/dC5yb3V0ZUtpbmQ6WmsuTk9UX1NFVCkpLEFTPVp3KFNTLCh0PT50P3QucGFyYW1zOnt9KSksVFM9WncoUlMsQVMsKCh0LGUpPT5Kayh0LGUpKSksTlM9WncoUlMsQVMsKCh0LGUpPT5Rayh0LGUpKSkselM9WncoUlMsQVMsKCh0LGUpPT57aWYodCE9PVprLkNPTVBBUkVfRVhQRVJJTUVOVClyZXR1cm57fTtjb25zdCBuPShmdW5jdGlvbiBvKHQpe2NvbnN0IGU9bmV3IE1hcCxuPUtrKHQuZXhwZXJpbWVudElkcyk7Zm9yKGNvbnN0e2lkOnQsbmFtZTpvfW9mIG4pbyYmZS5zZXQodCxvKTtyZXR1cm4gZX0pKGUpO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMobi5lbnRyaWVzKCkpfSkpLElTPUpQKCJbQXBwIFJvdXRpbmddIEVmZmVjdHMgSW5pdCIpO2NsYXNzIEhTe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5sb2NhdGlvbj1uLHRoaXMuZGlydHlVcGRhdGVzUmVnaXN0cnk9byx0aGlzLnJlZ2lzdHJ5PWksdGhpcy5wcm9ncmFtbWF0aWNhbE5hdk1vZHVsZT1hLHRoaXMuYXBwUm9vdFByb3ZpZGVyPXIsdGhpcy5vbk5hdmlnYXRpb25SZXF1ZXN0ZWQkPXRoaXMuYWN0aW9ucyQucGlwZShEayhsUyksSXQoKHQ9Pntjb25zdCBlPXQucGF0aG5hbWUuc3RhcnRzV2l0aCgiLyIpP3RoaXMuYXBwUm9vdFByb3ZpZGVyLmdldEFic1BhdGhuYW1lV2l0aEFwcFJvb3QodC5wYXRobmFtZSk6dGhpcy5sb2NhdGlvbi5nZXRSZXNvbHZlZFBhdGgodC5wYXRobmFtZSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cGF0aG5hbWU6ZX0pfSkpKSx0aGlzLmJvb3RzdHJhcFJlZHVjZXJzJD1NaygoKCk9PnRoaXMuYWN0aW9ucyQucGlwZShEayhJUyksSXQoKCgpPT5zUyh7cm91dGVLaW5kczpuZXcgU2V0KHRoaXMucmVnaXN0cnkuZ2V0UmVnaXN0ZXJlZFJvdXRlS2luZHMoKSl9KSkpKSkpLHRoaXMub25Jbml0JD10aGlzLmFjdGlvbnMkLnBpcGUoRGsoSVMpKS5waXBlKENlKDApLEl0KCgoKT0+KHtwYXRobmFtZTp0aGlzLmxvY2F0aW9uLmdldFBhdGgoKSxxdWVyeVBhcmFtczp0aGlzLmxvY2F0aW9uLmdldFNlYXJjaCgpLHJlcGxhY2VTdGF0ZTohMCxicm93c2VySW5pdGlhdGVkOiEwfSkpKSksdGhpcy51c2VySW5pdE5hdlJvdXRlJD1yZSh0aGlzLm9uTmF2aWdhdGlvblJlcXVlc3RlZCQsdGhpcy5vbkluaXQkLHRoaXMubG9jYXRpb24ub25Qb3BTdGF0ZSgpLnBpcGUoSXQoKHQ9Pih7cGF0aG5hbWU6dC5wYXRobmFtZSxyZXBsYWNlU3RhdGU6dC5yZXBsYWNlU3RhdGUsYnJvd3NlckluaXRpYXRlZDohMH0pKSkpKS5waXBlKEl0KCh0PT57aWYoIXQucGF0aG5hbWUuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBFcnJvcihgW0FwcCByb3V0aW5nXSBwYXRobmFtZSBtdXN0IHN0YXJ0IHdpdGggJy8nLiBHb3Q6ICR7dC5wYXRobmFtZX1gKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwYXRobmFtZTp0aGlzLmFwcFJvb3RQcm92aWRlci5nZXRBcHBSb290bGVzc1BhdGhuYW1lKHQucGF0aG5hbWUpfSl9KSksSXQoKHQ9Pih7cm91dGVNYXRjaDp0aGlzLnJvdXRlQ29uZmlncz90aGlzLnJvdXRlQ29uZmlncy5tYXRjaCh0KTpudWxsLG9wdGlvbnM6e3JlcGxhY2VTdGF0ZTp0LnJlcGxhY2VTdGF0ZSxicm93c2VySW5pdGlhdGVkOnQuYnJvd3NlckluaXRpYXRlZH19KSkpKSx0aGlzLnByb2dyYW1tdGljYWxOYXZSb3V0ZSQ9dGhpcy5hY3Rpb25zJC5waXBlKEl0KCh0PT50aGlzLnByb2dyYW1tYXRpY2FsTmF2TW9kdWxlLmdldE5hdmlnYXRpb24odCkpKSxjZSgodD0+bnVsbCE9PXQpKSxJdCgodD0+e2NvbnN0IGU9dCxuPWUucm91dGVLaW5kO2xldCBvO3N3aXRjaChlLnJvdXRlS2luZCl7Y2FzZSBaay5DT01QQVJFX0VYUEVSSU1FTlQ6bz17ZXhwZXJpbWVudElkczooaT1lLnJvdXRlUGFyYW1zLmFsaWFzQW5kRXhwZXJpbWVudElkcyxpLm1hcCgoKHthbGlhczp0LGlkOmV9KT0+YCR7dH06JHtlfWApKS5qb2luKCIsIikpfTticmVhaztkZWZhdWx0Om89ZS5yb3V0ZVBhcmFtc312YXIgaTtyZXR1cm57cm91dGVLaW5kOm4scm91dGVQYXJhbXM6b319KSksSXQoKCh7cm91dGVLaW5kOnQscm91dGVQYXJhbXM6ZX0pPT4oe3JvdXRlTWF0Y2g6dGhpcy5yb3V0ZUNvbmZpZ3M/dGhpcy5yb3V0ZUNvbmZpZ3MubWF0Y2hCeVJvdXRlS2luZCh0LGUpOm51bGwsb3B0aW9uczp7cmVwbGFjZVN0YXRlOiExLGJyb3dzZXJJbml0aWF0ZWQ6ITF9fSkpKSksdGhpcy52YWxpZGF0ZWRSb3V0ZSQ9cmUodGhpcy51c2VySW5pdE5hdlJvdXRlJCx0aGlzLnByb2dyYW1tdGljYWxOYXZSb3V0ZSQpLnBpcGUoY2UoKCh7cm91dGVNYXRjaDp0fSk9PkJvb2xlYW4odCkpKSxJdCgodD0+KHtyb3V0ZU1hdGNoOnQucm91dGVNYXRjaCxvcHRpb25zOnQub3B0aW9uc30pKSkpLHRoaXMubmF2aWdhdGUkPU1rKCgoKT0+dGhpcy52YWxpZGF0ZWRSb3V0ZSQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChTUykpLFp0KCgoW3QsZV0pPT57Y29uc3Qgbj1udWxsIT09ZSYmUWsodC5yb3V0ZU1hdGNoLnJvdXRlS2luZCx0LnJvdXRlTWF0Y2gucGFyYW1zKT09PVFrKGUucm91dGVLaW5kLGUucGFyYW1zKSxvPXRoaXMuZGlydHlVcGRhdGVzUmVnaXN0cnkuZ2V0RGlydHlVcGRhdGVzU2VsZWN0b3JzKCk7cmV0dXJuIG58fCFvLmxlbmd0aD9FdCh0KTokdCh0aGlzLmRpcnR5VXBkYXRlc1JlZ2lzdHJ5LmdldERpcnR5VXBkYXRlc1NlbGVjdG9ycygpLm1hcCgodD0+dGhpcy5zdG9yZS5zZWxlY3QodCkucGlwZShiZSgxKSkpKSkucGlwZShJdCgodD0+dm9pZCAwIT09dFswXS5leHBlcmltZW50SWRzJiZ0WzBdLmV4cGVyaW1lbnRJZHMubGVuZ3RoPjApKSxjZSgodD0+e2lmKHQpe2NvbnN0IHQ9d2luZG93LmNvbmZpcm0oIllvdSBoYXZlIHVuc2F2ZWQgZWRpdHMsIGFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkaXNjYXJkIHRoZW0/Iik7cmV0dXJuIHQmJnRoaXMuc3RvcmUuZGlzcGF0Y2goYVMoKSksdH1yZXR1cm4hMH0pKSxJdCgoKCk9PnQpKSl9KSksRmUoKCh7cm91dGVNYXRjaDp0LG9wdGlvbnM6ZX0pPT57aWYoZS5icm93c2VySW5pdGlhdGVkJiZ0LmRlZXBMaW5rUHJvdmlkZXIpe2NvbnN0IGU9dC5vcmlnaW5hdGVGcm9tUmVkaXJlY3Rpb24mJnQucmVkaXJlY3Rpb25Pbmx5UXVlcnlQYXJhbXM/dC5yZWRpcmVjdGlvbk9ubHlRdWVyeVBhcmFtczp0aGlzLmxvY2F0aW9uLmdldFNlYXJjaCgpLG49dC5kZWVwTGlua1Byb3ZpZGVyLmRlc2VyaWFsaXplUXVlcnlQYXJhbXMoZSk7dGhpcy5zdG9yZS5kaXNwYXRjaChyUyh7cm91dGVLaW5kOnQucm91dGVLaW5kLHBhcnRpYWxTdGF0ZTpufSkpfX0pKSx6ZSgoKHtyb3V0ZU1hdGNoOnQsb3B0aW9uczplfSk9Pnt2YXIgbjtjb25zdCBvPXtyZXBsYWNlU3RhdGU6bnVsbCE9PShuPWUucmVwbGFjZVN0YXRlKSYmdm9pZCAwIT09biYmbn0saT1FdCh7cm91dGVLaW5kOnQucm91dGVLaW5kLHBhcmFtczp0LnBhcmFtcyxwYXRobmFtZTp0LnBhdGhuYW1lLHF1ZXJ5UGFyYW1zOltdLG5hdmlnYXRpb25PcHRpb25zOm99KTtyZXR1cm4gbnVsbD09PXQuZGVlcExpbmtQcm92aWRlcj9pOnQuZGVlcExpbmtQcm92aWRlci5zZXJpYWxpemVTdGF0ZVRvUXVlcnlQYXJhbXModGhpcy5zdG9yZSkucGlwZShJdCgoKGUsbik9Pih7cm91dGVLaW5kOnQucm91dGVLaW5kLHBhcmFtczp0LnBhcmFtcyxwYXRobmFtZTp0LnBhdGhuYW1lLHF1ZXJ5UGFyYW1zOmUsbmF2aWdhdGlvbk9wdGlvbnM6MD09PW4/bzpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbykse3JlcGxhY2VTdGF0ZTohMH0pfSkpKSl9KSksRmUoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKGNTKHthZnRlcjp0fSkpfSkpLGdlKDApKS5waXBlKFZlKHRoaXMuc3RvcmUuc2VsZWN0KFNTKSksSXQoKChbdCxlXSk9Pih7cHJlc2VydmVIYXNoOm51bGw9PT1lfHxudWxsPT09dHx8UWsoZS5yb3V0ZUtpbmQsZS5wYXJhbXMpPT09UWsodC5yb3V0ZUtpbmQsdC5wYXJhbXMpLHJvdXRlOnR9KSkpLEZlKCgoe3ByZXNlcnZlSGFzaDp0LHJvdXRlOmV9KT0+eyEoZnVuY3Rpb24gbih0LGUpe3JldHVybiB0LnBhdGhuYW1lPT09ZS5wYXRobmFtZSYmdC5xdWVyeVBhcmFtcy5sZW5ndGg9PT1lLnF1ZXJ5UGFyYW1zLmxlbmd0aCYmdC5xdWVyeVBhcmFtcy5ldmVyeSgoKHQsbik9Pntjb25zdCBvPWUucXVlcnlQYXJhbXNbbl07cmV0dXJuIHQua2V5PT09by5rZXkmJnQudmFsdWU9PT1vLnZhbHVlfSkpfSkoZSx7cGF0aG5hbWU6dGhpcy5hcHBSb290UHJvdmlkZXIuZ2V0QXBwUm9vdGxlc3NQYXRobmFtZSh0aGlzLmxvY2F0aW9uLmdldFBhdGgoKSkscXVlcnlQYXJhbXM6dGhpcy5sb2NhdGlvbi5nZXRTZWFyY2goKX0pJiYoZS5uYXZpZ2F0aW9uT3B0aW9ucy5yZXBsYWNlU3RhdGU/dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy5hcHBSb290UHJvdmlkZXIuZ2V0QWJzUGF0aG5hbWVXaXRoQXBwUm9vdCh0aGlzLmxvY2F0aW9uLmdldEZ1bGxQYXRoRnJvbVJvdXRlT3JOYXYoZSx0KSkpOnRoaXMubG9jYXRpb24ucHVzaFN0YXRlKHRoaXMuYXBwUm9vdFByb3ZpZGVyLmdldEFic1BhdGhuYW1lV2l0aEFwcFJvb3QodGhpcy5sb2NhdGlvbi5nZXRGdWxsUGF0aEZyb21Sb3V0ZU9yTmF2KGUsdCkpKSl9KSkpLnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3QoU1MpKSxJdCgoKFt7cm91dGU6dH0sZV0pPT5kUyh7YmVmb3JlOmUsYWZ0ZXI6dH0pKSkpKSksdGhpcy5yb3V0ZUNvbmZpZ3M9aS5nZXRSb3V0ZUNvbmZpZ3MoKX1uZ3J4T25Jbml0RWZmZWN0cygpe3JldHVybiBJUygpfX1IUy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SFMpKHZyKFNrKSx2cihJdyksdnIodFMpLHZyKG1TKSx2cihQUyksdnIoZlMpLHZyKGVTKSl9LEhTLsm1cHJvdj1Nbih7dG9rZW46SFMsZmFjdG9yeTpIUy7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSFMsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlNrfSx7dHlwZTpJd30se3R5cGU6dFN9LHt0eXBlOm1TfSx7dHlwZTpQU30se3R5cGU6ZlN9LHt0eXBlOmVTfV19KSxudWxsKTtjb25zdCBGUz15ayh7YWN0aXZlUm91dGU6bnVsbCxuZXh0Um91dGU6bnVsbCxyZWdpc3RlcmVkUm91dGVLZXlzOm5ldyBTZXR9LGJrKGNTLCgodCx7YWZ0ZXI6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse25leHRSb3V0ZTplfSkpKSxiayhkUywoKHQse2FmdGVyOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHthY3RpdmVSb3V0ZTplLG5leHRSb3V0ZTpudWxsfSkpKSxiayhzUywoKHQse3JvdXRlS2luZHM6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3JlZ2lzdGVyZWRSb3V0ZUtleXM6ZX0pKSkpO2Z1bmN0aW9uIExTKHQsZSl7cmV0dXJuIEZTKHQsZSl9Y2xhc3MgQlN7fUJTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCUyl9LEJTLsm1bW9kPWFvKHt0eXBlOkJTfSksQlMuybVpbmo9dm4oe3Byb3ZpZGVyczpbbVMsZlNdLGltcG9ydHM6W1tQUyxkay5mb3JGZWF0dXJlKHdTLExTKSxXay5mb3JGZWF0dXJlKFtIU10pLGlTLG9TXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJTLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbUFMsZGsuZm9yRmVhdHVyZSh3UyxMUyksV2suZm9yRmVhdHVyZShbSFNdKSxpUyxvU10scHJvdmlkZXJzOlttUyxmU119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhCUyx7aW1wb3J0czpbUFMsY2ssR2ssaVMsb1NdfSk7Y2xhc3MgVlN7fWNvbnN0IGpTPSJfX3RhYl9fIjtjbGFzcyBVU3tjb25zdHJ1Y3Rvcigpe3RoaXMudGZTdG9yYWdlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRmLXN0b3JhZ2UiKSxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Zi1nbG9iYWxzIikudGZfZ2xvYmFscy5zZXRVc2VIYXNoKCEwKSx0aGlzLnRmU3RvcmFnZS50Zl9zdG9yYWdlLm1pZ3JhdGVMZWdhY3lVUkxTY2hlbWUoKX1nZXRTdHJpbmcodCl7cmV0dXJuIHRoaXMudGZTdG9yYWdlLnRmX3N0b3JhZ2UuZ2V0U3RyaW5nKHQpfXNldFN0cmluZyh0LGUsbil7dGhpcy50ZlN0b3JhZ2UudGZfc3RvcmFnZS5zZXRTdHJpbmcodCxlLG4pfWdldFBsdWdpbklkKCl7cmV0dXJuIHRoaXMuZ2V0U3RyaW5nKGpTKX1zZXRQbHVnaW5JZCh0LGUpe3RoaXMuc2V0U3RyaW5nKGpTLHQsZSl9fXZhciBHUztVUy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VVMpfSxVUy7JtXByb3Y9TW4oe3Rva2VuOlVTLGZhY3Rvcnk6VVMuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFVTLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCksKGZ1bmN0aW9uKHQpe3QuQlJPV1NFUl9ERUZBVUxUPSJicm93c2VyX2RlZmF1bHQiLHQuTElHSFQ9ImxpZ2h0Iix0LkRBUks9ImRhcmsifSkoR1N8fChHUz17fSkpO2NvbnN0IFdTPUpQKCJbUGVyc2lzdGVudCBTZXR0aW5nc10gR2xvYmFsIFNldHRpbmdzIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFlTPW5ldyBHYSgiW1BlcnNpc3RlbnQgU2V0dGluZ3NdIEdsb2JhbCBTZXR0aW5ncyIpO2NsYXNzIHFTe2NvbnN0cnVjdG9yKHQpe3RoaXMuZ2xvYmFsU2V0dGluZ1NlbGVjdG9ycz1bXSx0JiYodGhpcy5nbG9iYWxTZXR0aW5nU2VsZWN0b3JzPXQubWFwKCh0PT50KCkpKSl9Z2V0R2xvYmFsU2V0dGluZ1NlbGVjdG9ycygpe3ZhciB0O3JldHVybiBudWxsIT09KHQ9dGhpcy5nbG9iYWxTZXR0aW5nU2VsZWN0b3JzKSYmdm9pZCAwIT09dD90OltdfXN0YXRpYyBkZWZpbmVHbG9iYWxTZXR0aW5nKHQpe3JldHVybntuZ01vZHVsZTpxUyxwcm92aWRlcnM6W3twcm92aWRlOllTLG11bHRpOiEwLHVzZVZhbHVlOnR9XX19fXFTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxxUykodnIoWVMsOCkpfSxxUy7JtW1vZD1hbyh7dHlwZTpxU30pLHFTLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHFTLFt7dHlwZTpBeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWVNdfV19XX0pLG51bGwpO2NsYXNzIFpTe3NldEl0ZW0odCxlKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0LGUpfWdldEl0ZW0odCl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHQpfXJlbW92ZUl0ZW0odCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odCl9fVpTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxaUyl9LFpTLsm1cHJvdj1Nbih7dG9rZW46WlMsZmFjdG9yeTpaUy7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWlMsW3t0eXBlOmltfV0sbnVsbCxudWxsKTtjbGFzcyBYU3t9WFMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhTKX0sWFMuybVtb2Q9YW8oe3R5cGU6WFN9KSxYUy7JtWluaj12bih7cHJvdmlkZXJzOltaU119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFhTLFt7dHlwZTpBeSxhcmdzOlt7cHJvdmlkZXJzOltaU119XX1dLG51bGwsbnVsbCk7Y29uc3QgS1M9Il90Yl9nbG9iYWxfc2V0dGluZ3MudGltZXNlcmllcyIsSlM9Il90Yl9nbG9iYWxfc2V0dGluZ3MiLFFTPSJub3RpZmljYXRpb25MYXN0UmVhZFRpbWVzdGFtcCI7Y2xhc3MgJFN7fSRTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHwkUyl9LCRTLsm1cHJvdj1Nbih7dG9rZW46JFMsZmFjdG9yeTokUy7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoJFMsW3t0eXBlOmltfV0sbnVsbCxudWxsKTtjbGFzcyB0RHt9dEQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHREKX0sdEQuybVwcm92PU1uKHt0b2tlbjp0RCxmYWN0b3J5OnRELsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh0RCxbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIGVEIGV4dGVuZHMgdER7dWlUb0JhY2tlbmQodCl7cmV0dXJue2lnbm9yZU91dGxpZXJzOnQuaWdub3JlT3V0bGllcnMsc2NhbGFyU21vb3RoaW5nOnQuc2NhbGFyU21vb3RoaW5nLHRvb2x0aXBTb3J0OnQudG9vbHRpcFNvcnRTdHJpbmcsYXV0b1JlbG9hZDp0LmF1dG9SZWxvYWQsYXV0b1JlbG9hZFBlcmlvZEluTXM6dC5hdXRvUmVsb2FkUGVyaW9kSW5NcyxwYWdpbmF0aW9uU2l6ZTp0LnBhZ2VTaXplLHRoZW1lOnQudGhlbWVPdmVycmlkZSxub3RpZmljYXRpb25MYXN0UmVhZFRpbWVJbk1zOnQubm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5NcyxzaWRlQmFyV2lkdGhJblBlcmNlbnQ6dC5zaWRlQmFyV2lkdGhJblBlcmNlbnQsdGltZVNlcmllc1Byb21vdGlvbkRpc21pc3NlZDp0LnRpbWVTZXJpZXNQcm9tb3Rpb25EaXNtaXNzZWQsdGltZVNlcmllc1NldHRpbmdzUGFuZU9wZW5lZDp0LnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWR9fWJhY2tlbmRUb1VpKHQpe2NvbnN0IGU9e307cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoInNjYWxhclNtb290aGluZyIpJiYibnVtYmVyIj09dHlwZW9mIHQuc2NhbGFyU21vb3RoaW5nJiYoZS5zY2FsYXJTbW9vdGhpbmc9dC5zY2FsYXJTbW9vdGhpbmcpLHQuaGFzT3duUHJvcGVydHkoImlnbm9yZU91dGxpZXJzIikmJiJib29sZWFuIj09dHlwZW9mIHQuaWdub3JlT3V0bGllcnMmJihlLmlnbm9yZU91dGxpZXJzPXQuaWdub3JlT3V0bGllcnMpLHQuaGFzT3duUHJvcGVydHkoInRvb2x0aXBTb3J0IikmJiJzdHJpbmciPT10eXBlb2YgdC50b29sdGlwU29ydCYmKGUudG9vbHRpcFNvcnRTdHJpbmc9dC50b29sdGlwU29ydCksdC5oYXNPd25Qcm9wZXJ0eSgiYXV0b1JlbG9hZCIpJiYiYm9vbGVhbiI9PXR5cGVvZiB0LmF1dG9SZWxvYWQmJihlLmF1dG9SZWxvYWQ9dC5hdXRvUmVsb2FkKSx0Lmhhc093blByb3BlcnR5KCJhdXRvUmVsb2FkUGVyaW9kSW5NcyIpJiYibnVtYmVyIj09dHlwZW9mIHQuYXV0b1JlbG9hZFBlcmlvZEluTXMmJihlLmF1dG9SZWxvYWRQZXJpb2RJbk1zPXQuYXV0b1JlbG9hZFBlcmlvZEluTXMpLHQuaGFzT3duUHJvcGVydHkoInBhZ2luYXRpb25TaXplIikmJiJudW1iZXIiPT10eXBlb2YgdC5wYWdpbmF0aW9uU2l6ZSYmKGUucGFnZVNpemU9dC5wYWdpbmF0aW9uU2l6ZSksdC5oYXNPd25Qcm9wZXJ0eSgidGhlbWUiKSYmInN0cmluZyI9PXR5cGVvZiB0LnRoZW1lJiZuZXcgU2V0KE9iamVjdC52YWx1ZXMoR1MpKS5oYXModC50aGVtZSkmJihlLnRoZW1lT3ZlcnJpZGU9dC50aGVtZSksdC5oYXNPd25Qcm9wZXJ0eSgibm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5NcyIpJiYibnVtYmVyIj09dHlwZW9mIHQubm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5NcyYmKGUubm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5Ncz10Lm5vdGlmaWNhdGlvbkxhc3RSZWFkVGltZUluTXMpLHQuaGFzT3duUHJvcGVydHkoInNpZGVCYXJXaWR0aEluUGVyY2VudCIpJiYibnVtYmVyIj09dHlwZW9mIHQuc2lkZUJhcldpZHRoSW5QZXJjZW50JiYoZS5zaWRlQmFyV2lkdGhJblBlcmNlbnQ9dC5zaWRlQmFyV2lkdGhJblBlcmNlbnQpLHQuaGFzT3duUHJvcGVydHkoInRpbWVTZXJpZXNQcm9tb3Rpb25EaXNtaXNzZWQiKSYmImJvb2xlYW4iPT10eXBlb2YgdC50aW1lU2VyaWVzUHJvbW90aW9uRGlzbWlzc2VkJiYoZS50aW1lU2VyaWVzUHJvbW90aW9uRGlzbWlzc2VkPXQudGltZVNlcmllc1Byb21vdGlvbkRpc21pc3NlZCksdC5oYXNPd25Qcm9wZXJ0eSgidGltZVNlcmllc1NldHRpbmdzUGFuZU9wZW5lZCIpJiYiYm9vbGVhbiI9PXR5cGVvZiB0LnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQmJihlLnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQ9dC50aW1lU2VyaWVzU2V0dGluZ3NQYW5lT3BlbmVkKSxlfX1lRC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoZUQpKSkobnx8ZUQpfX0pKCksZUQuybVwcm92PU1uKHt0b2tlbjplRCxmYWN0b3J5OmVELsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChlRCxbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIG5Ee2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5sb2NhbFN0b3JhZ2U9dCx0aGlzLmNvbnZlcnRlcj1lfXNldFNldHRpbmdzKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KT90aGlzLmdldFNldHRpbmdzKCkucGlwZShGZSgoZT0+e3RoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oSlMsSlNPTi5zdHJpbmdpZnkodGhpcy5jb252ZXJ0ZXIudWlUb0JhY2tlbmQoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHQpKSkpLHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oS1MpLHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oUVMpfSkpLEl0KCgoKT0+e30pKSk6cnR9ZGVzZXJpYWxpemUodCl7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQpfWNhdGNoKHQpe3JldHVybnt9fX1nZXRTZXR0aW5ncygpe3ZhciB0LGU7Y29uc3Qgbj10aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKFFTKSxvPXRoaXMuY29udmVydGVyLmJhY2tlbmRUb1VpKHRoaXMuZGVzZXJpYWxpemUobj9KU09OLnN0cmluZ2lmeSh7bm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5NczpOdW1iZXIobil9KToie30iKSksaT10aGlzLmNvbnZlcnRlci5iYWNrZW5kVG9VaSh0aGlzLmRlc2VyaWFsaXplKG51bGwhPT0odD10aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKEtTKSkmJnZvaWQgMCE9PXQ/dDoie30iKSksYT10aGlzLmNvbnZlcnRlci5iYWNrZW5kVG9VaSh0aGlzLmRlc2VyaWFsaXplKG51bGwhPT0oZT10aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKEpTKSkmJnZvaWQgMCE9PWU/ZToie30iKSk7cmV0dXJuIEV0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG8pLGkpLGEpKX19bkQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5EKSh2cihaUyksdnIodEQpKX0sbkQuybVwcm92PU1uKHt0b2tlbjpuRCxmYWN0b3J5Om5ELsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChuRCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WlN9LHt0eXBlOnREfV19KSxudWxsKTtjbGFzcyBvRHt9b0QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG9EKX0sb0QuybVtb2Q9YW8oe3R5cGU6b0R9KSxvRC7JtWluaj12bih7cHJvdmlkZXJzOlt7cHJvdmlkZTokUyx1c2VDbGFzczpuRH0se3Byb3ZpZGU6dEQsdXNlQ2xhc3M6ZUR9XSxpbXBvcnRzOltbWFNdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgob0QsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltYU10scHJvdmlkZXJzOlt7cHJvdmlkZTokUyx1c2VDbGFzczpuRH0se3Byb3ZpZGU6dEQsdXNlQ2xhc3M6ZUR9XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKG9ELHtpbXBvcnRzOltYU119KTtjb25zdCBpRD1KUCgiW1BlcnNpc3RlbnQgU2V0dGluZ3NdIEVmZmVjdHMgSW5pdCIpO2NsYXNzIGFEe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5jb25maWdNb2R1bGU9bix0aGlzLmRhdGFTb3VyY2U9byx0aGlzLmluaXRpYWxpemVBbmRVcGRhdGVTZXR0aW5ncyQ9TWsoKCgpPT57Y29uc3QgdD10aGlzLmFjdGlvbnMkLnBpcGUoRGsoaUQpLFp0KCgoKT0+dGhpcy5kYXRhU291cmNlLmdldFNldHRpbmdzKCkpKSxGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goV1Moe3BhcnRpYWxTZXR0aW5nczp0fSkpfSkpLENlKDApLFp0KCgoKT0+cmUoLi4udGhpcy5jb25maWdNb2R1bGUuZ2V0R2xvYmFsU2V0dGluZ1NlbGVjdG9ycygpLm1hcCgodD0+dGhpcy5zdG9yZS5zZWxlY3QodCkucGlwZShNZSgoKHQsZSk9Pntjb25zdCBuPU9iamVjdC52YWx1ZXModCksbz1PYmplY3QudmFsdWVzKGUpO3JldHVybiBuLmxlbmd0aD09PW8ubGVuZ3RoJiZuLmV2ZXJ5KCgodCxlKT0+dD09PW9bZV0pKX0pKSxUZSgxKSkpKSkpKSxFZSgpKTtyZXR1cm4gdC5waXBlKChmdW5jdGlvbiBlKHQpe3JldHVybiBSKChmdW5jdGlvbihlLG4pe3ZhciBvPVtdO3JldHVybiBlLnN1YnNjcmliZShuZXcgVChuLChmdW5jdGlvbih0KXtyZXR1cm4gby5wdXNoKHQpfSksKGZ1bmN0aW9uKCl7bi5uZXh0KG8pLG4uY29tcGxldGUoKX0pKSksdC5zdWJzY3JpYmUobmV3IFQobiwoZnVuY3Rpb24oKXt2YXIgdD1vO289W10sbi5uZXh0KHQpfSkseSkpLGZ1bmN0aW9uKCl7bz1udWxsfX0pKX0pKHQucGlwZShnZSg1MDApKSksWnQoKHQ9Pntjb25zdCBlPXt9O2Zvcihjb25zdCBuIG9mIHQpT2JqZWN0LmFzc2lnbihlLG4pO3JldHVybiB0aGlzLmRhdGFTb3VyY2Uuc2V0U2V0dGluZ3MoZSl9KSkpfSkse2Rpc3BhdGNoOiExfSl9bmdyeE9uSW5pdEVmZmVjdHMoKXtyZXR1cm4gaUQoKX19YUQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGFEKSh2cihTayksdnIoSXcpLHZyKHFTKSx2cigkUykpfSxhRC7JtXByb3Y9TW4oe3Rva2VuOmFELGZhY3Rvcnk6YUQuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGFELFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTa30se3R5cGU6SXd9LHt0eXBlOnFTfSx7dHlwZTokU31dfSksbnVsbCk7Y2xhc3MgckR7fXJELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxyRCl9LHJELsm1bW9kPWFvKHt0eXBlOnJEfSksckQuybVpbmo9dm4oe3Byb3ZpZGVyczpbcVNdLGltcG9ydHM6W1tXay5mb3JGZWF0dXJlKFthRF0pLG9EXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHJELFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV2suZm9yRmVhdHVyZShbYURdKSxvRF0scHJvdmlkZXJzOltxU119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhyRCx7aW1wb3J0czpbR2ssb0RdfSk7Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovCmNsYXNzIHNEe31jbGFzcyBsRHt9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGNEe2NvbnN0cnVjdG9yKHQpe3RoaXMubm9ybWFsaXplZE5hbWVzPW5ldyBNYXAsdGhpcy5sYXp5VXBkYXRlPW51bGwsdD90aGlzLmxhenlJbml0PSJzdHJpbmciPT10eXBlb2YgdD8oKT0+e3RoaXMuaGVhZGVycz1uZXcgTWFwLHQuc3BsaXQoIlxuIikuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5pbmRleE9mKCI6Iik7aWYoZT4wKXtjb25zdCBuPXQuc2xpY2UoMCxlKSxvPW4udG9Mb3dlckNhc2UoKSxpPXQuc2xpY2UoZSsxKS50cmltKCk7dGhpcy5tYXliZVNldE5vcm1hbGl6ZWROYW1lKG4sbyksdGhpcy5oZWFkZXJzLmhhcyhvKT90aGlzLmhlYWRlcnMuZ2V0KG8pLnB1c2goaSk6dGhpcy5oZWFkZXJzLnNldChvLFtpXSl9fSkpfTooKT0+e3RoaXMuaGVhZGVycz1uZXcgTWFwLE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGU9PntsZXQgbj10W2VdO2NvbnN0IG89ZS50b0xvd2VyQ2FzZSgpOyJzdHJpbmciPT10eXBlb2YgbiYmKG49W25dKSxuLmxlbmd0aD4wJiYodGhpcy5oZWFkZXJzLnNldChvLG4pLHRoaXMubWF5YmVTZXROb3JtYWxpemVkTmFtZShlLG8pKX0pKX06dGhpcy5oZWFkZXJzPW5ldyBNYXB9aGFzKHQpe3JldHVybiB0aGlzLmluaXQoKSx0aGlzLmhlYWRlcnMuaGFzKHQudG9Mb3dlckNhc2UoKSl9Z2V0KHQpe3RoaXMuaW5pdCgpO2NvbnN0IGU9dGhpcy5oZWFkZXJzLmdldCh0LnRvTG93ZXJDYXNlKCkpO3JldHVybiBlJiZlLmxlbmd0aD4wP2VbMF06bnVsbH1rZXlzKCl7cmV0dXJuIHRoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5ub3JtYWxpemVkTmFtZXMudmFsdWVzKCkpfWdldEFsbCh0KXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5oZWFkZXJzLmdldCh0LnRvTG93ZXJDYXNlKCkpfHxudWxsfWFwcGVuZCh0LGUpe3JldHVybiB0aGlzLmNsb25lKHtuYW1lOnQsdmFsdWU6ZSxvcDoiYSJ9KX1zZXQodCxlKXtyZXR1cm4gdGhpcy5jbG9uZSh7bmFtZTp0LHZhbHVlOmUsb3A6InMifSl9ZGVsZXRlKHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoe25hbWU6dCx2YWx1ZTplLG9wOiJkIn0pfW1heWJlU2V0Tm9ybWFsaXplZE5hbWUodCxlKXt0aGlzLm5vcm1hbGl6ZWROYW1lcy5oYXMoZSl8fHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChlLHQpfWluaXQoKXt0aGlzLmxhenlJbml0JiYodGhpcy5sYXp5SW5pdCBpbnN0YW5jZW9mIGNEP3RoaXMuY29weUZyb20odGhpcy5sYXp5SW5pdCk6dGhpcy5sYXp5SW5pdCgpLHRoaXMubGF6eUluaXQ9bnVsbCx0aGlzLmxhenlVcGRhdGUmJih0aGlzLmxhenlVcGRhdGUuZm9yRWFjaCgodD0+dGhpcy5hcHBseVVwZGF0ZSh0KSkpLHRoaXMubGF6eVVwZGF0ZT1udWxsKSl9Y29weUZyb20odCl7dC5pbml0KCksQXJyYXkuZnJvbSh0LmhlYWRlcnMua2V5cygpKS5mb3JFYWNoKChlPT57dGhpcy5oZWFkZXJzLnNldChlLHQuaGVhZGVycy5nZXQoZSkpLHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChlLHQubm9ybWFsaXplZE5hbWVzLmdldChlKSl9KSl9Y2xvbmUodCl7Y29uc3QgZT1uZXcgY0Q7cmV0dXJuIGUubGF6eUluaXQ9dGhpcy5sYXp5SW5pdCYmdGhpcy5sYXp5SW5pdCBpbnN0YW5jZW9mIGNEP3RoaXMubGF6eUluaXQ6dGhpcyxlLmxhenlVcGRhdGU9KHRoaXMubGF6eVVwZGF0ZXx8W10pLmNvbmNhdChbdF0pLGV9YXBwbHlVcGRhdGUodCl7Y29uc3QgZT10Lm5hbWUudG9Mb3dlckNhc2UoKTtzd2l0Y2godC5vcCl7Y2FzZSJhIjpjYXNlInMiOmxldCBuPXQudmFsdWU7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYobj1bbl0pLDA9PT1uLmxlbmd0aClyZXR1cm47dGhpcy5tYXliZVNldE5vcm1hbGl6ZWROYW1lKHQubmFtZSxlKTtjb25zdCBvPSgiYSI9PT10Lm9wP3RoaXMuaGVhZGVycy5nZXQoZSk6dm9pZCAwKXx8W107by5wdXNoKC4uLm4pLHRoaXMuaGVhZGVycy5zZXQoZSxvKTticmVhaztjYXNlImQiOmNvbnN0IGk9dC52YWx1ZTtpZihpKXtsZXQgdD10aGlzLmhlYWRlcnMuZ2V0KGUpO2lmKCF0KXJldHVybjt0PXQuZmlsdGVyKCh0PT4tMT09PWkuaW5kZXhPZih0KSkpLDA9PT10Lmxlbmd0aD8odGhpcy5oZWFkZXJzLmRlbGV0ZShlKSx0aGlzLm5vcm1hbGl6ZWROYW1lcy5kZWxldGUoZSkpOnRoaXMuaGVhZGVycy5zZXQoZSx0KX1lbHNlIHRoaXMuaGVhZGVycy5kZWxldGUoZSksdGhpcy5ub3JtYWxpemVkTmFtZXMuZGVsZXRlKGUpfX1mb3JFYWNoKHQpe3RoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5ub3JtYWxpemVkTmFtZXMua2V5cygpKS5mb3JFYWNoKChlPT50KHRoaXMubm9ybWFsaXplZE5hbWVzLmdldChlKSx0aGlzLmhlYWRlcnMuZ2V0KGUpKSkpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgZER7ZW5jb2RlS2V5KHQpe3JldHVybiBwRCh0KX1lbmNvZGVWYWx1ZSh0KXtyZXR1cm4gcEQodCl9ZGVjb2RlS2V5KHQpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodCl9ZGVjb2RlVmFsdWUodCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh0KX19ZnVuY3Rpb24gcEQodCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh0KS5yZXBsYWNlKC8lNDAvZ2ksIkAiKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZ2ksIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lM0IvZ2ksIjsiKS5yZXBsYWNlKC8lMkIvZ2ksIisiKS5yZXBsYWNlKC8lM0QvZ2ksIj0iKS5yZXBsYWNlKC8lM0YvZ2ksIj8iKS5yZXBsYWNlKC8lMkYvZ2ksIi8iKX1mdW5jdGlvbiBtRCh0KXtyZXR1cm5gJHt0fWB9Y2xhc3MgdUR7Y29uc3RydWN0b3IodD17fSl7aWYodGhpcy51cGRhdGVzPW51bGwsdGhpcy5jbG9uZUZyb209bnVsbCx0aGlzLmVuY29kZXI9dC5lbmNvZGVyfHxuZXcgZEQsdC5mcm9tU3RyaW5nKXtpZih0LmZyb21PYmplY3QpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc3BlY2lmeSBib3RoIGZyb21TdHJpbmcgYW5kIGZyb21PYmplY3QuIik7dGhpcy5tYXA9KGZ1bmN0aW9uIGUodCxuKXtjb25zdCBvPW5ldyBNYXA7cmV0dXJuIHQubGVuZ3RoPjAmJnQucmVwbGFjZSgvXlw/LywiIikuc3BsaXQoIiYiKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10LmluZGV4T2YoIj0iKSxbaSxhXT0tMT09ZT9bbi5kZWNvZGVLZXkodCksIiJdOltuLmRlY29kZUtleSh0LnNsaWNlKDAsZSkpLG4uZGVjb2RlVmFsdWUodC5zbGljZShlKzEpKV0scj1vLmdldChpKXx8W107ci5wdXNoKGEpLG8uc2V0KGkscil9KSksb30pKHQuZnJvbVN0cmluZyx0aGlzLmVuY29kZXIpfWVsc2UgdC5mcm9tT2JqZWN0Pyh0aGlzLm1hcD1uZXcgTWFwLE9iamVjdC5rZXlzKHQuZnJvbU9iamVjdCkuZm9yRWFjaCgoZT0+e2NvbnN0IG49dC5mcm9tT2JqZWN0W2VdO3RoaXMubWFwLnNldChlLEFycmF5LmlzQXJyYXkobik/bjpbbl0pfSkpKTp0aGlzLm1hcD1udWxsfWhhcyh0KXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5tYXAuaGFzKHQpfWdldCh0KXt0aGlzLmluaXQoKTtjb25zdCBlPXRoaXMubWFwLmdldCh0KTtyZXR1cm4gZT9lWzBdOm51bGx9Z2V0QWxsKHQpe3JldHVybiB0aGlzLmluaXQoKSx0aGlzLm1hcC5nZXQodCl8fG51bGx9a2V5cygpe3JldHVybiB0aGlzLmluaXQoKSxBcnJheS5mcm9tKHRoaXMubWFwLmtleXMoKSl9YXBwZW5kKHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoe3BhcmFtOnQsdmFsdWU6ZSxvcDoiYSJ9KX1hcHBlbmRBbGwodCl7Y29uc3QgZT1bXTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+e2NvbnN0IG89dFtuXTtBcnJheS5pc0FycmF5KG8pP28uZm9yRWFjaCgodD0+e2UucHVzaCh7cGFyYW06bix2YWx1ZTp0LG9wOiJhIn0pfSkpOmUucHVzaCh7cGFyYW06bix2YWx1ZTpvLG9wOiJhIn0pfSkpLHRoaXMuY2xvbmUoZSl9c2V0KHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoe3BhcmFtOnQsdmFsdWU6ZSxvcDoicyJ9KX1kZWxldGUodCxlKXtyZXR1cm4gdGhpcy5jbG9uZSh7cGFyYW06dCx2YWx1ZTplLG9wOiJkIn0pfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMua2V5cygpLm1hcCgodD0+e2NvbnN0IGU9dGhpcy5lbmNvZGVyLmVuY29kZUtleSh0KTtyZXR1cm4gdGhpcy5tYXAuZ2V0KHQpLm1hcCgodD0+ZSsiPSIrdGhpcy5lbmNvZGVyLmVuY29kZVZhbHVlKHQpKSkuam9pbigiJiIpfSkpLmZpbHRlcigodD0+IiIhPT10KSkuam9pbigiJiIpfWNsb25lKHQpe2NvbnN0IGU9bmV3IHVEKHtlbmNvZGVyOnRoaXMuZW5jb2Rlcn0pO3JldHVybiBlLmNsb25lRnJvbT10aGlzLmNsb25lRnJvbXx8dGhpcyxlLnVwZGF0ZXM9KHRoaXMudXBkYXRlc3x8W10pLmNvbmNhdCh0KSxlfWluaXQoKXtudWxsPT09dGhpcy5tYXAmJih0aGlzLm1hcD1uZXcgTWFwKSxudWxsIT09dGhpcy5jbG9uZUZyb20mJih0aGlzLmNsb25lRnJvbS5pbml0KCksdGhpcy5jbG9uZUZyb20ua2V5cygpLmZvckVhY2goKHQ9PnRoaXMubWFwLnNldCh0LHRoaXMuY2xvbmVGcm9tLm1hcC5nZXQodCkpKSksdGhpcy51cGRhdGVzLmZvckVhY2goKHQ9Pntzd2l0Y2godC5vcCl7Y2FzZSJhIjpjYXNlInMiOmNvbnN0IGU9KCJhIj09PXQub3A/dGhpcy5tYXAuZ2V0KHQucGFyYW0pOnZvaWQgMCl8fFtdO2UucHVzaChtRCh0LnZhbHVlKSksdGhpcy5tYXAuc2V0KHQucGFyYW0sZSk7YnJlYWs7Y2FzZSJkIjppZih2b2lkIDA9PT10LnZhbHVlKXt0aGlzLm1hcC5kZWxldGUodC5wYXJhbSk7YnJlYWt9e2xldCBlPXRoaXMubWFwLmdldCh0LnBhcmFtKXx8W107Y29uc3Qgbj1lLmluZGV4T2YobUQodC52YWx1ZSkpOy0xIT09biYmZS5zcGxpY2UobiwxKSxlLmxlbmd0aD4wP3RoaXMubWFwLnNldCh0LnBhcmFtLGUpOnRoaXMubWFwLmRlbGV0ZSh0LnBhcmFtKX19fSkpLHRoaXMuY2xvbmVGcm9tPXRoaXMudXBkYXRlcz1udWxsKX19Y2xhc3MgZkR7Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1uZXcgTWFwfXNldCh0LGUpe3JldHVybiB0aGlzLm1hcC5zZXQodCxlKSx0aGlzfWdldCh0KXtyZXR1cm4gdGhpcy5tYXAuaGFzKHQpfHx0aGlzLm1hcC5zZXQodCx0LmRlZmF1bHRWYWx1ZSgpKSx0aGlzLm1hcC5nZXQodCl9ZGVsZXRlKHQpe3JldHVybiB0aGlzLm1hcC5kZWxldGUodCksdGhpc31rZXlzKCl7cmV0dXJuIHRoaXMubWFwLmtleXMoKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGdEKHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJnQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcn1mdW5jdGlvbiBoRCh0KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEJsb2ImJnQgaW5zdGFuY2VvZiBCbG9ifWZ1bmN0aW9uIGJEKHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgRm9ybURhdGEmJnQgaW5zdGFuY2VvZiBGb3JtRGF0YX1jbGFzcyB5RHtjb25zdHJ1Y3Rvcih0LGUsbixvKXtsZXQgaTtpZih0aGlzLnVybD1lLHRoaXMuYm9keT1udWxsLHRoaXMucmVwb3J0UHJvZ3Jlc3M9ITEsdGhpcy53aXRoQ3JlZGVudGlhbHM9ITEsdGhpcy5yZXNwb25zZVR5cGU9Impzb24iLHRoaXMubWV0aG9kPXQudG9VcHBlckNhc2UoKSwoZnVuY3Rpb24gYSh0KXtzd2l0Y2godCl7Y2FzZSJERUxFVEUiOmNhc2UiR0VUIjpjYXNlIkhFQUQiOmNhc2UiT1BUSU9OUyI6Y2FzZSJKU09OUCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19KSh0aGlzLm1ldGhvZCl8fG8/KHRoaXMuYm9keT12b2lkIDAhPT1uP246bnVsbCxpPW8pOmk9bixpJiYodGhpcy5yZXBvcnRQcm9ncmVzcz0hIWkucmVwb3J0UHJvZ3Jlc3MsdGhpcy53aXRoQ3JlZGVudGlhbHM9ISFpLndpdGhDcmVkZW50aWFscyxpLnJlc3BvbnNlVHlwZSYmKHRoaXMucmVzcG9uc2VUeXBlPWkucmVzcG9uc2VUeXBlKSxpLmhlYWRlcnMmJih0aGlzLmhlYWRlcnM9aS5oZWFkZXJzKSxpLmNvbnRleHQmJih0aGlzLmNvbnRleHQ9aS5jb250ZXh0KSxpLnBhcmFtcyYmKHRoaXMucGFyYW1zPWkucGFyYW1zKSksdGhpcy5oZWFkZXJzfHwodGhpcy5oZWFkZXJzPW5ldyBjRCksdGhpcy5jb250ZXh0fHwodGhpcy5jb250ZXh0PW5ldyBmRCksdGhpcy5wYXJhbXMpe2NvbnN0IHQ9dGhpcy5wYXJhbXMudG9TdHJpbmcoKTtpZigwPT09dC5sZW5ndGgpdGhpcy51cmxXaXRoUGFyYW1zPWU7ZWxzZXtjb25zdCBuPWUuaW5kZXhPZigiPyIpO3RoaXMudXJsV2l0aFBhcmFtcz1lKygtMT09PW4/Ij8iOm48ZS5sZW5ndGgtMT8iJiI6IiIpK3R9fWVsc2UgdGhpcy5wYXJhbXM9bmV3IHVELHRoaXMudXJsV2l0aFBhcmFtcz1lfXNlcmlhbGl6ZUJvZHkoKXtyZXR1cm4gbnVsbD09PXRoaXMuYm9keT9udWxsOmdEKHRoaXMuYm9keSl8fGhEKHRoaXMuYm9keSl8fGJEKHRoaXMuYm9keSl8fChmdW5jdGlvbiB0KGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgVVJMU2VhcmNoUGFyYW1zJiZlIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zfSkodGhpcy5ib2R5KXx8InN0cmluZyI9PXR5cGVvZiB0aGlzLmJvZHk/dGhpcy5ib2R5OnRoaXMuYm9keSBpbnN0YW5jZW9mIHVEP3RoaXMuYm9keS50b1N0cmluZygpOiJvYmplY3QiPT10eXBlb2YgdGhpcy5ib2R5fHwiYm9vbGVhbiI9PXR5cGVvZiB0aGlzLmJvZHl8fEFycmF5LmlzQXJyYXkodGhpcy5ib2R5KT9KU09OLnN0cmluZ2lmeSh0aGlzLmJvZHkpOnRoaXMuYm9keS50b1N0cmluZygpfWRldGVjdENvbnRlbnRUeXBlSGVhZGVyKCl7cmV0dXJuIG51bGw9PT10aGlzLmJvZHl8fGJEKHRoaXMuYm9keSk/bnVsbDpoRCh0aGlzLmJvZHkpP3RoaXMuYm9keS50eXBlfHxudWxsOmdEKHRoaXMuYm9keSk/bnVsbDoic3RyaW5nIj09dHlwZW9mIHRoaXMuYm9keT8idGV4dC9wbGFpbiI6dGhpcy5ib2R5IGluc3RhbmNlb2YgdUQ/ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Ijoib2JqZWN0Ij09dHlwZW9mIHRoaXMuYm9keXx8Im51bWJlciI9PXR5cGVvZiB0aGlzLmJvZHl8fCJib29sZWFuIj09dHlwZW9mIHRoaXMuYm9keT8iYXBwbGljYXRpb24vanNvbiI6bnVsbH1jbG9uZSh0PXt9KXt2YXIgZTtjb25zdCBuPXQubWV0aG9kfHx0aGlzLm1ldGhvZCxvPXQudXJsfHx0aGlzLnVybCxpPXQucmVzcG9uc2VUeXBlfHx0aGlzLnJlc3BvbnNlVHlwZSxhPXZvaWQgMCE9PXQuYm9keT90LmJvZHk6dGhpcy5ib2R5LHI9dm9pZCAwIT09dC53aXRoQ3JlZGVudGlhbHM/dC53aXRoQ3JlZGVudGlhbHM6dGhpcy53aXRoQ3JlZGVudGlhbHMscz12b2lkIDAhPT10LnJlcG9ydFByb2dyZXNzP3QucmVwb3J0UHJvZ3Jlc3M6dGhpcy5yZXBvcnRQcm9ncmVzcztsZXQgbD10LmhlYWRlcnN8fHRoaXMuaGVhZGVycyxjPXQucGFyYW1zfHx0aGlzLnBhcmFtcztjb25zdCBkPW51bGwhPT0oZT10LmNvbnRleHQpJiZ2b2lkIDAhPT1lP2U6dGhpcy5jb250ZXh0O3JldHVybiB2b2lkIDAhPT10LnNldEhlYWRlcnMmJihsPU9iamVjdC5rZXlzKHQuc2V0SGVhZGVycykucmVkdWNlKCgoZSxuKT0+ZS5zZXQobix0LnNldEhlYWRlcnNbbl0pKSxsKSksdC5zZXRQYXJhbXMmJihjPU9iamVjdC5rZXlzKHQuc2V0UGFyYW1zKS5yZWR1Y2UoKChlLG4pPT5lLnNldChuLHQuc2V0UGFyYW1zW25dKSksYykpLG5ldyB5RChuLG8sYSx7cGFyYW1zOmMsaGVhZGVyczpsLGNvbnRleHQ6ZCxyZXBvcnRQcm9ncmVzczpzLHJlc3BvbnNlVHlwZTppLHdpdGhDcmVkZW50aWFsczpyfSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi92YXIgX0Q7IShmdW5jdGlvbih0KXt0W3QuU2VudD0wXT0iU2VudCIsdFt0LlVwbG9hZFByb2dyZXNzPTFdPSJVcGxvYWRQcm9ncmVzcyIsdFt0LlJlc3BvbnNlSGVhZGVyPTJdPSJSZXNwb25zZUhlYWRlciIsdFt0LkRvd25sb2FkUHJvZ3Jlc3M9M109IkRvd25sb2FkUHJvZ3Jlc3MiLHRbdC5SZXNwb25zZT00XT0iUmVzcG9uc2UiLHRbdC5Vc2VyPTVdPSJVc2VyIn0pKF9EfHwoX0Q9e30pKTtjbGFzcyBDRHtjb25zdHJ1Y3Rvcih0LGU9MjAwLG49Ik9LIil7dGhpcy5oZWFkZXJzPXQuaGVhZGVyc3x8bmV3IGNELHRoaXMuc3RhdHVzPXZvaWQgMCE9PXQuc3RhdHVzP3Quc3RhdHVzOmUsdGhpcy5zdGF0dXNUZXh0PXQuc3RhdHVzVGV4dHx8bix0aGlzLnVybD10LnVybHx8bnVsbCx0aGlzLm9rPXRoaXMuc3RhdHVzPj0yMDAmJnRoaXMuc3RhdHVzPDMwMH19Y2xhc3MgTUQgZXh0ZW5kcyBDRHtjb25zdHJ1Y3Rvcih0PXt9KXtzdXBlcih0KSx0aGlzLnR5cGU9X0QuUmVzcG9uc2VIZWFkZXJ9Y2xvbmUodD17fSl7cmV0dXJuIG5ldyBNRCh7aGVhZGVyczp0LmhlYWRlcnN8fHRoaXMuaGVhZGVycyxzdGF0dXM6dm9pZCAwIT09dC5zdGF0dXM/dC5zdGF0dXM6dGhpcy5zdGF0dXMsc3RhdHVzVGV4dDp0LnN0YXR1c1RleHR8fHRoaXMuc3RhdHVzVGV4dCx1cmw6dC51cmx8fHRoaXMudXJsfHx2b2lkIDB9KX19Y2xhc3MgdkQgZXh0ZW5kcyBDRHtjb25zdHJ1Y3Rvcih0PXt9KXtzdXBlcih0KSx0aGlzLnR5cGU9X0QuUmVzcG9uc2UsdGhpcy5ib2R5PXZvaWQgMCE9PXQuYm9keT90LmJvZHk6bnVsbH1jbG9uZSh0PXt9KXtyZXR1cm4gbmV3IHZEKHtib2R5OnZvaWQgMCE9PXQuYm9keT90LmJvZHk6dGhpcy5ib2R5LGhlYWRlcnM6dC5oZWFkZXJzfHx0aGlzLmhlYWRlcnMsc3RhdHVzOnZvaWQgMCE9PXQuc3RhdHVzP3Quc3RhdHVzOnRoaXMuc3RhdHVzLHN0YXR1c1RleHQ6dC5zdGF0dXNUZXh0fHx0aGlzLnN0YXR1c1RleHQsdXJsOnQudXJsfHx0aGlzLnVybHx8dm9pZCAwfSl9fWNsYXNzIHhEIGV4dGVuZHMgQ0R7Y29uc3RydWN0b3IodCl7c3VwZXIodCwwLCJVbmtub3duIEVycm9yIiksdGhpcy5uYW1lPSJIdHRwRXJyb3JSZXNwb25zZSIsdGhpcy5vaz0hMSx0aGlzLm1lc3NhZ2U9dGhpcy5zdGF0dXM+PTIwMCYmdGhpcy5zdGF0dXM8MzAwP2BIdHRwIGZhaWx1cmUgZHVyaW5nIHBhcnNpbmcgZm9yICR7dC51cmx8fCIodW5rbm93biB1cmwpIn1gOmBIdHRwIGZhaWx1cmUgcmVzcG9uc2UgZm9yICR7dC51cmx8fCIodW5rbm93biB1cmwpIn06ICR7dC5zdGF0dXN9ICR7dC5zdGF0dXNUZXh0fWAsdGhpcy5lcnJvcj10LmVycm9yfHxudWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gT0QodCxlKXtyZXR1cm57Ym9keTplLGhlYWRlcnM6dC5oZWFkZXJzLGNvbnRleHQ6dC5jb250ZXh0LG9ic2VydmU6dC5vYnNlcnZlLHBhcmFtczp0LnBhcmFtcyxyZXBvcnRQcm9ncmVzczp0LnJlcG9ydFByb2dyZXNzLHJlc3BvbnNlVHlwZTp0LnJlc3BvbnNlVHlwZSx3aXRoQ3JlZGVudGlhbHM6dC53aXRoQ3JlZGVudGlhbHN9fWNsYXNzIFBEe2NvbnN0cnVjdG9yKHQpe3RoaXMuaGFuZGxlcj10fXJlcXVlc3QodCxlLG49e30pe2xldCBvO2lmKHQgaW5zdGFuY2VvZiB5RClvPXQ7ZWxzZXtsZXQgaSxhO2k9bi5oZWFkZXJzIGluc3RhbmNlb2YgY0Q/bi5oZWFkZXJzOm5ldyBjRChuLmhlYWRlcnMpLG4ucGFyYW1zJiYoYT1uLnBhcmFtcyBpbnN0YW5jZW9mIHVEP24ucGFyYW1zOm5ldyB1RCh7ZnJvbU9iamVjdDpuLnBhcmFtc30pKSxvPW5ldyB5RCh0LGUsdm9pZCAwIT09bi5ib2R5P24uYm9keTpudWxsLHtoZWFkZXJzOmksY29udGV4dDpuLmNvbnRleHQscGFyYW1zOmEscmVwb3J0UHJvZ3Jlc3M6bi5yZXBvcnRQcm9ncmVzcyxyZXNwb25zZVR5cGU6bi5yZXNwb25zZVR5cGV8fCJqc29uIix3aXRoQ3JlZGVudGlhbHM6bi53aXRoQ3JlZGVudGlhbHN9KX1jb25zdCBpPUV0KG8pLnBpcGUoKGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gbChlKT9adCh0LGUsMSk6WnQodCwxKX0pKCh0PT50aGlzLmhhbmRsZXIuaGFuZGxlKHQpKSkpO2lmKHQgaW5zdGFuY2VvZiB5RHx8ImV2ZW50cyI9PT1uLm9ic2VydmUpcmV0dXJuIGk7Y29uc3Qgcj1pLnBpcGUoY2UoKHQ9PnQgaW5zdGFuY2VvZiB2RCkpKTtzd2l0Y2gobi5vYnNlcnZlfHwiYm9keSIpe2Nhc2UiYm9keSI6c3dpdGNoKG8ucmVzcG9uc2VUeXBlKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gci5waXBlKEl0KCh0PT57aWYobnVsbCE9PXQuYm9keSYmISh0LmJvZHkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBpcyBub3QgYW4gQXJyYXlCdWZmZXIuIik7cmV0dXJuIHQuYm9keX0pKSk7Y2FzZSJibG9iIjpyZXR1cm4gci5waXBlKEl0KCh0PT57aWYobnVsbCE9PXQuYm9keSYmISh0LmJvZHkgaW5zdGFuY2VvZiBCbG9iKSl0aHJvdyBuZXcgRXJyb3IoIlJlc3BvbnNlIGlzIG5vdCBhIEJsb2IuIik7cmV0dXJuIHQuYm9keX0pKSk7Y2FzZSJ0ZXh0IjpyZXR1cm4gci5waXBlKEl0KCh0PT57aWYobnVsbCE9PXQuYm9keSYmInN0cmluZyIhPXR5cGVvZiB0LmJvZHkpdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBpcyBub3QgYSBzdHJpbmcuIik7cmV0dXJuIHQuYm9keX0pKSk7Y2FzZSJqc29uIjpkZWZhdWx0OnJldHVybiByLnBpcGUoSXQoKHQ9PnQuYm9keSkpKX1jYXNlInJlc3BvbnNlIjpyZXR1cm4gcjtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5yZWFjaGFibGU6IHVuaGFuZGxlZCBvYnNlcnZlIHR5cGUgJHtuLm9ic2VydmV9fWApfX1kZWxldGUodCxlPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJERUxFVEUiLHQsZSl9Z2V0KHQsZT17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiR0VUIix0LGUpfWhlYWQodCxlPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJIRUFEIix0LGUpfWpzb25wKHQsZSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiSlNPTlAiLHQse3BhcmFtczoobmV3IHVEKS5hcHBlbmQoZSwiSlNPTlBfQ0FMTEJBQ0siKSxvYnNlcnZlOiJib2R5IixyZXNwb25zZVR5cGU6Impzb24ifSl9b3B0aW9ucyh0LGU9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIk9QVElPTlMiLHQsZSl9cGF0Y2godCxlLG49e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIlBBVENIIix0LE9EKG4sZSkpfXBvc3QodCxlLG49e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIlBPU1QiLHQsT0QobixlKSl9cHV0KHQsZSxuPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJQVVQiLHQsT0QobixlKSl9fVBELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQRCkodnIoc0QpKX0sUEQuybVwcm92PU1uKHt0b2tlbjpQRCxmYWN0b3J5OlBELsm1ZmFjfSksUEQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpzRH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUEQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnNEfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHdEe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5uZXh0PXQsdGhpcy5pbnRlcmNlcHRvcj1lfWhhbmRsZSh0KXtyZXR1cm4gdGhpcy5pbnRlcmNlcHRvci5pbnRlcmNlcHQodCx0aGlzLm5leHQpfX1jb25zdCBrRD1uZXcgR2EoIkhUVFBfSU5URVJDRVBUT1JTIik7Y2xhc3MgU0R7aW50ZXJjZXB0KHQsZSl7cmV0dXJuIGUuaGFuZGxlKHQpfX1TRC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U0QpfSxTRC7JtXByb3Y9TW4oe3Rva2VuOlNELGZhY3Rvcnk6U0QuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFNELFt7dHlwZTppbX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgREQ9MDtjbGFzcyBFRHt9Y2xhc3MgUkR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmNhbGxiYWNrTWFwPXQsdGhpcy5kb2N1bWVudD1lLHRoaXMucmVzb2x2ZWRQcm9taXNlPVByb21pc2UucmVzb2x2ZSgpfW5leHRDYWxsYmFjaygpe3JldHVybiJuZ19qc29ucF9jYWxsYmFja18iK0REKyt9aGFuZGxlKHQpe2lmKCJKU09OUCIhPT10Lm1ldGhvZCl0aHJvdyBuZXcgRXJyb3IoIkpTT05QIHJlcXVlc3RzIG11c3QgdXNlIEpTT05QIHJlcXVlc3QgbWV0aG9kLiIpO2lmKCJqc29uIiE9PXQucmVzcG9uc2VUeXBlKXRocm93IG5ldyBFcnJvcigiSlNPTlAgcmVxdWVzdHMgbXVzdCB1c2UgSnNvbiByZXNwb25zZSB0eXBlLiIpO3JldHVybiBuZXcgRCgoZT0+e2NvbnN0IG49dGhpcy5uZXh0Q2FsbGJhY2soKSxvPXQudXJsV2l0aFBhcmFtcy5yZXBsYWNlKC89SlNPTlBfQ0FMTEJBQ0soJnwkKS8sYD0ke259JDFgKSxpPXRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aS5zcmM9bztsZXQgYT1udWxsLHI9ITEscz0hMTt0aGlzLmNhbGxiYWNrTWFwW25dPXQ9PntkZWxldGUgdGhpcy5jYWxsYmFja01hcFtuXSxzfHwoYT10LHI9ITApfTtjb25zdCBsPSgpPT57aS5wYXJlbnROb2RlJiZpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSksZGVsZXRlIHRoaXMuY2FsbGJhY2tNYXBbbl19LGM9dD0+e3N8fHRoaXMucmVzb2x2ZWRQcm9taXNlLnRoZW4oKCgpPT57bCgpLHI/KGUubmV4dChuZXcgdkQoe2JvZHk6YSxzdGF0dXM6MjAwLHN0YXR1c1RleHQ6Ik9LIix1cmw6b30pKSxlLmNvbXBsZXRlKCkpOmUuZXJyb3IobmV3IHhEKHt1cmw6byxzdGF0dXM6MCxzdGF0dXNUZXh0OiJKU09OUCBFcnJvciIsZXJyb3I6bmV3IEVycm9yKCJKU09OUCBpbmplY3RlZCBzY3JpcHQgZGlkIG5vdCBpbnZva2UgY2FsbGJhY2suIil9KSl9KSl9LGQ9dD0+e3N8fChsKCksZS5lcnJvcihuZXcgeEQoe2Vycm9yOnQsc3RhdHVzOjAsc3RhdHVzVGV4dDoiSlNPTlAgRXJyb3IiLHVybDpvfSkpKX07cmV0dXJuIGkuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYyksaS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZCksdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpLGUubmV4dCh7dHlwZTpfRC5TZW50fSksKCk9PntzPSEwLGkucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsYyksaS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsZCksbCgpfX0pKX19UkQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJEKSh2cihFRCksdnIoWl8pKX0sUkQuybVwcm92PU1uKHt0b2tlbjpSRCxmYWN0b3J5OlJELsm1ZmFjfSksUkQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpFRH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChSRCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RUR9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y2xhc3MgQUR7Y29uc3RydWN0b3IodCl7dGhpcy5qc29ucD10fWludGVyY2VwdCh0LGUpe3JldHVybiJKU09OUCI9PT10Lm1ldGhvZD90aGlzLmpzb25wLmhhbmRsZSh0KTplLmhhbmRsZSh0KX19QUQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEFEKSh2cihSRCkpfSxBRC7JtXByb3Y9TW4oe3Rva2VuOkFELGZhY3Rvcnk6QUQuybVmYWN9KSxBRC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlJEfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChBRCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6UkR9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgVEQ9L15cKVxdXH0nLD9cbi87Y2xhc3MgTkR7Y29uc3RydWN0b3IodCl7dGhpcy54aHJGYWN0b3J5PXR9aGFuZGxlKHQpe2lmKCJKU09OUCI9PT10Lm1ldGhvZCl0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRlZCB0byBjb25zdHJ1Y3QgSnNvbnAgcmVxdWVzdCB3aXRob3V0IEh0dHBDbGllbnRKc29ucE1vZHVsZSBpbnN0YWxsZWQuIik7cmV0dXJuIG5ldyBEKChlPT57Y29uc3Qgbj10aGlzLnhockZhY3RvcnkuYnVpbGQoKTtpZihuLm9wZW4odC5tZXRob2QsdC51cmxXaXRoUGFyYW1zKSx0LndpdGhDcmVkZW50aWFscyYmKG4ud2l0aENyZWRlbnRpYWxzPSEwKSx0LmhlYWRlcnMuZm9yRWFjaCgoKHQsZSk9Pm4uc2V0UmVxdWVzdEhlYWRlcih0LGUuam9pbigiLCIpKSkpLHQuaGVhZGVycy5oYXMoIkFjY2VwdCIpfHxuLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIpLCF0LmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKSl7Y29uc3QgZT10LmRldGVjdENvbnRlbnRUeXBlSGVhZGVyKCk7bnVsbCE9PWUmJm4uc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixlKX1pZih0LnJlc3BvbnNlVHlwZSl7Y29uc3QgZT10LnJlc3BvbnNlVHlwZS50b0xvd2VyQ2FzZSgpO24ucmVzcG9uc2VUeXBlPSJqc29uIiE9PWU/ZToidGV4dCJ9Y29uc3Qgbz10LnNlcmlhbGl6ZUJvZHkoKTtsZXQgaT1udWxsO2NvbnN0IGE9KCk9PntpZihudWxsIT09aSlyZXR1cm4gaTtjb25zdCBlPTEyMjM9PT1uLnN0YXR1cz8yMDQ6bi5zdGF0dXMsbz1uLnN0YXR1c1RleHR8fCJPSyIsYT1uZXcgY0Qobi5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkscj0oZnVuY3Rpb24gcyh0KXtyZXR1cm4icmVzcG9uc2VVUkwiaW4gdCYmdC5yZXNwb25zZVVSTD90LnJlc3BvbnNlVVJMOi9eWC1SZXF1ZXN0LVVSTDovbS50ZXN0KHQuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpP3QuZ2V0UmVzcG9uc2VIZWFkZXIoIlgtUmVxdWVzdC1VUkwiKTpudWxsfSkobil8fHQudXJsO3JldHVybiBpPW5ldyBNRCh7aGVhZGVyczphLHN0YXR1czplLHN0YXR1c1RleHQ6byx1cmw6cn0pLGl9LHI9KCk9PntsZXR7aGVhZGVyczpvLHN0YXR1czppLHN0YXR1c1RleHQ6cix1cmw6c309YSgpLGw9bnVsbDsyMDQhPT1pJiYobD12b2lkIDA9PT1uLnJlc3BvbnNlP24ucmVzcG9uc2VUZXh0Om4ucmVzcG9uc2UpLDA9PT1pJiYoaT1sPzIwMDowKTtsZXQgYz1pPj0yMDAmJmk8MzAwO2lmKCJqc29uIj09PXQucmVzcG9uc2VUeXBlJiYic3RyaW5nIj09dHlwZW9mIGwpe2NvbnN0IHQ9bDtsPWwucmVwbGFjZShURCwiIik7dHJ5e2w9IiIhPT1sP0pTT04ucGFyc2UobCk6bnVsbH1jYXRjaChlKXtsPXQsYyYmKGM9ITEsbD17ZXJyb3I6ZSx0ZXh0Omx9KX19Yz8oZS5uZXh0KG5ldyB2RCh7Ym9keTpsLGhlYWRlcnM6byxzdGF0dXM6aSxzdGF0dXNUZXh0OnIsdXJsOnN8fHZvaWQgMH0pKSxlLmNvbXBsZXRlKCkpOmUuZXJyb3IobmV3IHhEKHtlcnJvcjpsLGhlYWRlcnM6byxzdGF0dXM6aSxzdGF0dXNUZXh0OnIsdXJsOnN8fHZvaWQgMH0pKX0scz10PT57Y29uc3R7dXJsOm99PWEoKSxpPW5ldyB4RCh7ZXJyb3I6dCxzdGF0dXM6bi5zdGF0dXN8fDAsc3RhdHVzVGV4dDpuLnN0YXR1c1RleHR8fCJVbmtub3duIEVycm9yIix1cmw6b3x8dm9pZCAwfSk7ZS5lcnJvcihpKX07bGV0IGw9ITE7Y29uc3QgYz1vPT57bHx8KGUubmV4dChhKCkpLGw9ITApO2xldCBpPXt0eXBlOl9ELkRvd25sb2FkUHJvZ3Jlc3MsbG9hZGVkOm8ubG9hZGVkfTtvLmxlbmd0aENvbXB1dGFibGUmJihpLnRvdGFsPW8udG90YWwpLCJ0ZXh0Ij09PXQucmVzcG9uc2VUeXBlJiZuLnJlc3BvbnNlVGV4dCYmKGkucGFydGlhbFRleHQ9bi5yZXNwb25zZVRleHQpLGUubmV4dChpKX0sZD10PT57bGV0IG49e3R5cGU6X0QuVXBsb2FkUHJvZ3Jlc3MsbG9hZGVkOnQubG9hZGVkfTt0Lmxlbmd0aENvbXB1dGFibGUmJihuLnRvdGFsPXQudG90YWwpLGUubmV4dChuKX07cmV0dXJuIG4uYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsciksbi5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIscyksbi5hZGRFdmVudExpc3RlbmVyKCJ0aW1lb3V0IixzKSxuLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzKSx0LnJlcG9ydFByb2dyZXNzJiYobi5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsYyksbnVsbCE9PW8mJm4udXBsb2FkJiZuLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZCkpLG4uc2VuZChvKSxlLm5leHQoe3R5cGU6X0QuU2VudH0pLCgpPT57bi5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIscyksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixyKSxuLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRpbWVvdXQiLHMpLHQucmVwb3J0UHJvZ3Jlc3MmJihuLnJlbW92ZUV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixjKSxudWxsIT09byYmbi51cGxvYWQmJm4udXBsb2FkLnJlbW92ZUV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixkKSksbi5yZWFkeVN0YXRlIT09bi5ET05FJiZuLmFib3J0KCl9fSkpfX1ORC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TkQpKHZyKFhNKSl9LE5ELsm1cHJvdj1Nbih7dG9rZW46TkQsZmFjdG9yeTpORC7JtWZhY30pLE5ELmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WE19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE5ELFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYTX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB6RD1uZXcgR2EoIlhTUkZfQ09PS0lFX05BTUUiKSxJRD1uZXcgR2EoIlhTUkZfSEVBREVSX05BTUUiKTtjbGFzcyBIRHt9Y2xhc3MgRkR7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuZG9jPXQsdGhpcy5wbGF0Zm9ybT1lLHRoaXMuY29va2llTmFtZT1uLHRoaXMubGFzdENvb2tpZVN0cmluZz0iIix0aGlzLmxhc3RUb2tlbj1udWxsLHRoaXMucGFyc2VDb3VudD0wfWdldFRva2VuKCl7aWYoInNlcnZlciI9PT10aGlzLnBsYXRmb3JtKXJldHVybiBudWxsO2NvbnN0IHQ9dGhpcy5kb2MuY29va2llfHwiIjtyZXR1cm4gdCE9PXRoaXMubGFzdENvb2tpZVN0cmluZyYmKHRoaXMucGFyc2VDb3VudCsrLHRoaXMubGFzdFRva2VuPWlNKHQsdGhpcy5jb29raWVOYW1lKSx0aGlzLmxhc3RDb29raWVTdHJpbmc9dCksdGhpcy5sYXN0VG9rZW59fUZELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGRCkodnIoWl8pLHZyKGp5KSx2cih6RCkpfSxGRC7JtXByb3Y9TW4oe3Rva2VuOkZELGZhY3Rvcnk6RkQuybVmYWN9KSxGRC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2p5XX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbekRdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEZELFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltqeV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3pEXX1dfV19KSxudWxsKTtjbGFzcyBMRHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMudG9rZW5TZXJ2aWNlPXQsdGhpcy5oZWFkZXJOYW1lPWV9aW50ZXJjZXB0KHQsZSl7Y29uc3Qgbj10LnVybC50b0xvd2VyQ2FzZSgpO2lmKCJHRVQiPT09dC5tZXRob2R8fCJIRUFEIj09PXQubWV0aG9kfHxuLnN0YXJ0c1dpdGgoImh0dHA6Ly8iKXx8bi5zdGFydHNXaXRoKCJodHRwczovLyIpKXJldHVybiBlLmhhbmRsZSh0KTtjb25zdCBvPXRoaXMudG9rZW5TZXJ2aWNlLmdldFRva2VuKCk7cmV0dXJuIG51bGw9PT1vfHx0LmhlYWRlcnMuaGFzKHRoaXMuaGVhZGVyTmFtZSl8fCh0PXQuY2xvbmUoe2hlYWRlcnM6dC5oZWFkZXJzLnNldCh0aGlzLmhlYWRlck5hbWUsbyl9KSksZS5oYW5kbGUodCl9fUxELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMRCkodnIoSEQpLHZyKElEKSl9LExELsm1cHJvdj1Nbih7dG9rZW46TEQsZmFjdG9yeTpMRC7JtWZhY30pLExELmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6SER9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltJRF19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTEQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkhEfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSURdfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgQkR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmJhY2tlbmQ9dCx0aGlzLmluamVjdG9yPWUsdGhpcy5jaGFpbj1udWxsfWhhbmRsZSh0KXtpZihudWxsPT09dGhpcy5jaGFpbil7Y29uc3QgdD10aGlzLmluamVjdG9yLmdldChrRCxbXSk7dGhpcy5jaGFpbj10LnJlZHVjZVJpZ2h0KCgodCxlKT0+bmV3IHdEKHQsZSkpLHRoaXMuYmFja2VuZCl9cmV0dXJuIHRoaXMuY2hhaW4uaGFuZGxlKHQpfX1mdW5jdGlvbiBWRCgpe3JldHVybiJvYmplY3QiPT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fX1CRC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QkQpKHZyKGxEKSx2cihycCkpfSxCRC7JtXByb3Y9TW4oe3Rva2VuOkJELGZhY3Rvcnk6QkQuybVmYWN9KSxCRC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmxEfSx7dHlwZTpycH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQkQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmxEfSx7dHlwZTpycH1dfSksbnVsbCk7Y2xhc3MgakR7c3RhdGljIGRpc2FibGUoKXtyZXR1cm57bmdNb2R1bGU6akQscHJvdmlkZXJzOlt7cHJvdmlkZTpMRCx1c2VDbGFzczpTRH1dfX1zdGF0aWMgd2l0aE9wdGlvbnModD17fSl7cmV0dXJue25nTW9kdWxlOmpELHByb3ZpZGVyczpbdC5jb29raWVOYW1lP3twcm92aWRlOnpELHVzZVZhbHVlOnQuY29va2llTmFtZX06W10sdC5oZWFkZXJOYW1lP3twcm92aWRlOklELHVzZVZhbHVlOnQuaGVhZGVyTmFtZX06W11dfX19akQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGpEKX0sakQuybVtb2Q9YW8oe3R5cGU6akR9KSxqRC7JtWluaj12bih7cHJvdmlkZXJzOltMRCx7cHJvdmlkZTprRCx1c2VFeGlzdGluZzpMRCxtdWx0aTohMH0se3Byb3ZpZGU6SEQsdXNlQ2xhc3M6RkR9LHtwcm92aWRlOnpELHVzZVZhbHVlOiJYU1JGLVRPS0VOIn0se3Byb3ZpZGU6SUQsdXNlVmFsdWU6IlgtWFNSRi1UT0tFTiJ9XX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoakQsW3t0eXBlOkF5LGFyZ3M6W3twcm92aWRlcnM6W0xELHtwcm92aWRlOmtELHVzZUV4aXN0aW5nOkxELG11bHRpOiEwfSx7cHJvdmlkZTpIRCx1c2VDbGFzczpGRH0se3Byb3ZpZGU6ekQsdXNlVmFsdWU6IlhTUkYtVE9LRU4ifSx7cHJvdmlkZTpJRCx1c2VWYWx1ZToiWC1YU1JGLVRPS0VOIn1dfV19XSxudWxsLG51bGwpO2NsYXNzIFVEe31VRC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VUQpfSxVRC7JtW1vZD1hbyh7dHlwZTpVRH0pLFVELsm1aW5qPXZuKHtwcm92aWRlcnM6W1BELHtwcm92aWRlOnNELHVzZUNsYXNzOkJEfSxORCx7cHJvdmlkZTpsRCx1c2VFeGlzdGluZzpORH1dLGltcG9ydHM6W1tqRC53aXRoT3B0aW9ucyh7Y29va2llTmFtZToiWFNSRi1UT0tFTiIsaGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIn0pXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFVELFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbakQud2l0aE9wdGlvbnMoe2Nvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLGhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiJ9KV0scHJvdmlkZXJzOltQRCx7cHJvdmlkZTpzRCx1c2VDbGFzczpCRH0sTkQse3Byb3ZpZGU6bEQsdXNlRXhpc3Rpbmc6TkR9XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFVELHtpbXBvcnRzOltqRF19KTtjbGFzcyBHRHt9R0QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEdEKX0sR0QuybVtb2Q9YW8oe3R5cGU6R0R9KSxHRC7JtWluaj12bih7cHJvdmlkZXJzOltSRCx7cHJvdmlkZTpFRCx1c2VGYWN0b3J5OlZEfSx7cHJvdmlkZTprRCx1c2VDbGFzczpBRCxtdWx0aTohMH1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChHRCxbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpbUkQse3Byb3ZpZGU6RUQsdXNlRmFjdG9yeTpWRH0se3Byb3ZpZGU6a0QsdXNlQ2xhc3M6QUQsbXVsdGk6ITB9XX1dfV0sbnVsbCxudWxsKTtjb25zdCBXRD0iZmVhdHVyZSIsWUQ9S3coV0QpLHFEPVp3KFlELCh0PT50LmlzRmVhdHVyZUZsYWdzTG9hZGVkKSksWkQ9WncoWUQsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmRlZmF1bHRGbGFncyksdC5mbGFnT3ZlcnJpZGVzKSkpLFhEPVp3KFlELCh0PT50LmZsYWdPdmVycmlkZXN8fHt9KSksS0Q9WncoWkQsKHQ9PnQuaXNBdXRvRGFya01vZGVBbGxvd2VkKSksSkQ9WncoWkQsKHQ9Pm51bGwhPT10LmVuYWJsZURhcmtNb2RlT3ZlcnJpZGU/dC5lbmFibGVEYXJrTW9kZU92ZXJyaWRlOnQuZGVmYXVsdEVuYWJsZURhcmtNb2RlKSksUUQ9WncoWkQsKHQ9PnQuZW5hYmxlRGFya01vZGVPdmVycmlkZSkpLCREPVp3KFpELCh0PT50LmVuYWJsZWRFeHBlcmltZW50YWxQbHVnaW5zKSksdEU9WncoWkQsKHQ9PnQuaW5Db2xhYikpLGVFPVp3KFpELCh0PT50LmVuYWJsZWRDb2xvckdyb3VwKSksbkU9WncoWkQsKHQ9PnQuZW5hYmxlZENvbG9yR3JvdXBCeVJlZ2V4KSksb0U9WncoWkQsKHQ9PnQubWV0cmljc0ltYWdlU3VwcG9ydEVuYWJsZWQpKSxpRT1adyhaRCwodD0+dC5lbmFibGVkTGlua2VkVGltZSkpLGFFPVp3KFpELCh0PT50LmVuYWJsZVRpbWVTZXJpZXNQcm9tb3Rpb24pKTtmdW5jdGlvbiByRSh0KXtjb25zdCBlPXt9O2Zvcihjb25zdFtuLG9db2YgdC5lbnRyaWVzKCkpZVtuXT1vO3JldHVybiBlfWZ1bmN0aW9uIHNFKHQpe2xldCBlPXQuaGVhZGVyc3x8bmV3IGNEO3JldHVybiBlPWUuYXBwZW5kKCJYLVhTUkYtUHJvdGVjdGVkIiwiMSIpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7aGVhZGVyczplfSl9Y2xhc3MgbEV7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYXBwUm9vdFByb3ZpZGVyPXQsdGhpcy5odHRwPWUsdGhpcy5zdG9yZT1ufXJlc29sdmVBcHBSb290KHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoIi8iKT90aGlzLmFwcFJvb3RQcm92aWRlci5nZXRBYnNQYXRobmFtZVdpdGhBcHBSb290KHQpOnR9Z2V0KHQsZT17fSl7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5yZXNvbHZlQXBwUm9vdCh0KSxlKX1wb3N0KHQsZSxuPXt9KXtyZXR1cm4gbj1zRShuKSx0aGlzLnN0b3JlLnNlbGVjdChxRCkucGlwZShjZSgodD0+Qm9vbGVhbih0KSkpLGJlKDEpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KHRFKSksWnQoKChbLG9dKT0+e2NvbnN0IGk9dGhpcy5yZXNvbHZlQXBwUm9vdCh0KTtyZXR1cm4gbz90aGlzLmh0dHAuZ2V0KGkse2hlYWRlcnM6bi5oZWFkZXJzLHBhcmFtczpyRShlKX0pOnRoaXMuaHR0cC5wb3N0KGksZSxuKX0pKSl9cHV0KHQsZSxuPXt9KXtyZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLnJlc29sdmVBcHBSb290KHQpLGUsc0UobikpfWRlbGV0ZSh0LGU9e30pe3JldHVybiB0aGlzLmh0dHAuZGVsZXRlKHRoaXMucmVzb2x2ZUFwcFJvb3QodCksc0UoZSkpfX1sRS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bEUpKHZyKGVTKSx2cihQRCksdnIoSXcpKX0sbEUuybVwcm92PU1uKHt0b2tlbjpsRSxmYWN0b3J5OmxFLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsRSxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZVN9LHt0eXBlOlBEfSx7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgY0V7fXZhciBkRSxwRSxtRTtjRS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Y0UpfSxjRS7JtW1vZD1hbyh7dHlwZTpjRX0pLGNFLsm1aW5qPXZuKHtwcm92aWRlcnM6W2xFXSxpbXBvcnRzOltbVUQsaVNdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoY0UsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltVRCxpU10scHJvdmlkZXJzOltsRV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhjRSx7aW1wb3J0czpbVUQsaVNdfSksKGZ1bmN0aW9uKHQpe3QuU1RFUD0ic3RlcCIsdC5XQUxMX1RJTUU9IndhbGxfdGltZSIsdC5SRUxBVElWRT0icmVsYXRpdmUifSkoZEV8fChkRT17fSkpLChmdW5jdGlvbih0KXt0Lk9GRlNFVD0ib2Zmc2V0Iix0Lk9WRVJMQVk9Im92ZXJsYXkifSkocEV8fChwRT17fSkpLChmdW5jdGlvbih0KXt0LlVOS05PV049IlVOS05PV04iLHQuTk9UX0ZPVU5EPSJOT1RfRk9VTkQifSkobUV8fChtRT17fSkpO2NvbnN0IHVFPW5ldyBHYSgiVGVuc29yQm9hcmQgYnJhbmQgbmFtZSIpO2Z1bmN0aW9uIGZFKHQpe2xldCBlPW1FLlVOS05PV047cmV0dXJuIHQgaW5zdGFuY2VvZiB4RCYmNDA0PT09dC5zdGF0dXMmJihlPW1FLk5PVF9GT1VORCksUnQobmV3IGdFKGUpKX1jbGFzcyBnRXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmZhaWx1cmVDb2RlPXR9fWNsYXNzIGhFe2NvbnN0cnVjdG9yKHQpe3RoaXMuaHR0cD10LHRoaXMudGZCYWNrZW5kPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRmLWJhY2tlbmQiKS50Zl9iYWNrZW5kfWZldGNoUGx1Z2luc0xpc3RpbmcodCl7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtpZighdC5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgZT1uZXcgVVJMU2VhcmNoUGFyYW1zO2Zvcihjb25zdCBuIG9mIHQpZS5hcHBlbmQoImV4cGVyaW1lbnRhbFBsdWdpbiIsbik7cmV0dXJuIGV9KSh0KSxvPWU/YGRhdGEvcGx1Z2luc19saXN0aW5nPyR7ZS50b1N0cmluZygpfWA6ImRhdGEvcGx1Z2luc19saXN0aW5nIjtyZXR1cm4gdGhpcy5odHRwLmdldChvKS5waXBlKHBlKGZFKSl9ZmV0Y2hFbnZpcm9ubWVudCgpe3JldHVybiAkdChbdGhpcy5odHRwLmdldCgiZGF0YS9lbnZpcm9ubWVudCIpLEN0KHRoaXMudGZCYWNrZW5kLmVudmlyb25tZW50U3RvcmUucmVmcmVzaCgpKV0pLnBpcGUoSXQoKChbdF0pPT50KSkscGUoZkUpKX19aEUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGhFKSh2cihsRSkpfSxoRS7JtXByb3Y9TW4oe3Rva2VuOmhFLGZhY3Rvcnk6aEUuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGhFLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpsRX1dfSksbnVsbCk7Y2xhc3MgYkV7fXZhciB5RTtiRS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YkUpfSxiRS7JtW1vZD1hbyh7dHlwZTpiRX0pLGJFLsm1aW5qPXZuKHtwcm92aWRlcnM6W2hFXSxpbXBvcnRzOltbY0VdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYkUsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltjRV0scHJvdmlkZXJzOltoRV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhiRSx7aW1wb3J0czpbY0VdfSksKGZ1bmN0aW9uKHQpe3RbdC5OT1RfTE9BREVEPTBdPSJOT1RfTE9BREVEIix0W3QuTE9BREVEPTFdPSJMT0FERUQiLHRbdC5MT0FESU5HPTJdPSJMT0FESU5HIix0W3QuRkFJTEVEPTNdPSJGQUlMRUQifSkoeUV8fCh5RT17fSkpO2NvbnN0IF9FPUpQKCJbQ29yZV0gUGx1Z2luIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxDRT1KUCgiW0NvcmVdIFBsdWdpbiBVcmwgSGFzaCBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksTUU9SlAoIltDb3JlXSBMb2FkZWQiKSx2RT1KUCgiW0NvcmVdIFVzZXIgVHJpZ2dlcmVkIFJlbG9hZCIpLHhFPUpQKCJbQ29yZV0gQXV0byBSZWxvYWQiKSxPRT1KUCgiW0NvcmVdIFBsdWdpbkxpc3RpbmcgRmV0Y2ggUmVxdWVzdGVkIiksUEU9SlAoIltDb3JlXSBQbHVnaW5MaXN0aW5nIEZldGNoIFN1Y2Nlc3NmdWwiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx3RT1KUCgiW0NvcmVdIFBsdWdpbkxpc3RpbmcgRmV0Y2ggRmFpbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksa0U9SlAoIltDb3JlXSBQb2x5bWVyIENvbXBvbmVudCBSdW5zIEZldGNoIFJlcXVlc3RlZCIpLFNFPUpQKCJbQ29yZV0gUG9seW1lciBDb21wb25lbnQgUnVucyBGZXRjaCBTdWNjZXNzZnVsIiksREU9SlAoIltDb3JlXSBQb2x5bWVyIENvbXBvbmVudCBSdW5zIEZldGNoIEZhaWxlZCIpLEVFPUpQKCJbQ29yZV0gRW52aXJvbm1lbnQgRmV0Y2ggU3VjY2Vzc2Z1bCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFJFPUpQKCJbQ29yZV0gUnVuIFNlbGVjdGlvbiBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksQUU9SlAoIltDb3JlXSBSdW4gRmV0Y2ggU3VjY2Vzc2Z1bCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFRFPUpQKCJbQ29yZV0gU2lkZSBCYXIgV2lkdGggQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE5FPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5ncyBQYW5lIENsb3NlZCIpLHpFPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5ncyBQYW5lIFRvZ2dsZWQiKSxJRT1KUCgiW01ldHJpY3NdIE1ldHJpY3MgVGFnIE1ldGFkYXRhIFJlcXVlc3RlZCIpLEhFPUpQKCJbTWV0cmljc10gTWV0cmljcyBUYWcgTWV0YWRhdGEgTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksRkU9SlAoIltNZXRyaWNzXSBNZXRyaWNzIFRhZyBNZXRhZGF0YSBGYWlsZWQiKSxMRT1KUCgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZ3MgQ2hhbmdlIFRvb2x0aXAiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KTtKUCgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZ3MgVG9nZ2xlIFNob3cgRGF0YSBEb3dubG9hZCIpO2NvbnN0IEJFPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIFRvZ2dsZSBJZ25vcmUgT3V0bGllciIpLFZFPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIENoYW5nZSBYIEF4aXMgVHlwZSIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGpFPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIENoYW5nZSBTY2FsYXIgU21vb3RoaW5nIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksVUU9SlAoIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmcgUGFydGl0aW9uIE5vbiBNb25vdG9uaWMgWCBUb2dnbGVkIiksR0U9SlAoIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmcgQ2hhbmdlIEltYWdlIEJyaWdodG5lc3MiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxXRT1KUCgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBDaGFuZ2UgSW1hZ2UgQ29udHJhc3QiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxZRT1KUCgiW01ldHJpY3NdIEltYWdlIEJyaWdodG5lc3MgU2V0dGluZyBSZXNldCIpLHFFPUpQKCJbTWV0cmljc10gSW1hZ2UgQ29udHJhc3QgU2V0dGluZyBSZXNldCIpLFpFPUpQKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIFRvZ2dsZSBJbWFnZSBTaG93IEFjdHVhbCBTaXplIiksWEU9SlAoIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmcgQ2hhbmdlIEhpc3RvZ3JhbSBNb2RlIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksS0U9SlAoIltNZXRyaWNzXSBNdWx0aXBsZSBUaW1lIFNlcmllcyBSZXF1ZXN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxKRT1KUCgiW01ldHJpY3NdIEZldGNoIFRpbWUgU2VyaWVzIFJlcXVlc3QgRmFpbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksUUU9SlAoIltNZXRyaWNzXSBGZXRjaCBUaW1lIFNlcmllcyBSZXNwb25zZSBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSwkRT1KUCgiW01ldHJpY3NdIENhcmQgVmlzaWJpbGl0eSBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksdFI9SlAoIltNZXRyaWNzXSBDYXJkIFN0ZXAgU2xpZGVyIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxlUj1KUCgiW01ldHJpY3NdIFRhZyBGaWx0ZXIgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLG5SPUpQKCJbTWV0cmljc10gTWV0cmljcyBUYWcgR3JvdXAgRXhwYW5zaW9uIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxvUj1KUCgiW01ldHJpY3NdIENhcmQgUGluIFN0YXRlIFRvZ2dsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxpUj1KUCgiW01ldHJpY3NdIFRvZ2dsZSBWaXNpYmxlIFBsdWdpbiIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGFSPUpQKCJbTWV0cmljc10gVG9nZ2xlIFNob3cgQWxsIFBsdWdpbnMiKSxyUj1KUCgiW01ldHJpY3NdIExpbmtlZCBUaW1lIFNlbGVjdGlvbiBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksc1I9SlAoIltNZXRyaWNzXSBMaW5rZWQgVGltZSBTZWxlY3Rpb24gQ2xlYXJlZCIpLGxSPUpQKCJbTWV0cmljc10gU2VsZWN0IFRpbWUgRW5hYmxlIFRvZ2dsZSIpLGNSPUpQKCJbTWV0cmljc10gVXNlIFJhbmdlIFNlbGVjdCBUaW1lIFRvZ2dsZSIpLGRSPUpQKCJbTWV0cmljc10gTWV0cmljcyBQcm9tbyBEaXNtaXNzZWQiKSxwUj1KUCgiW01ldHJpY3NdIE1ldHJpY3MgUHJvbW8gR28gVG8gU2NhbGFycyIpLG1SPSJjb3JlIix1Uj17YWN0aXZlUGx1Z2luOm51bGwscGx1Z2luczp7fSxjb3JlRGF0YUxvYWRTdGF0ZTp7c3RhdGU6eUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0scGx1Z2luc0xpc3RMb2FkZWQ6e3N0YXRlOnlFLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGwsZmFpbHVyZUNvZGU6bnVsbH0sZW52aXJvbm1lbnQ6e2RhdGFfbG9jYXRpb246IiIsd2luZG93X3RpdGxlOiIifSxwb2x5bWVyUnVuc0xvYWRTdGF0ZTp7c3RhdGU6eUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0scG9seW1lckludGVyb3BSdW5zOltdLHBvbHltZXJJbnRlcm9wUnVuU2VsZWN0aW9uOm5ldyBTZXQsc2lkZUJhcldpZHRoSW5QZXJjZW50OjIwfSxmUj15ayh1UixiayhfRSxDRSwoKHQse3BsdWdpbjplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7YWN0aXZlUGx1Z2luOmV9KSkpLGJrKE9FLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NvcmVEYXRhTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmNvcmVEYXRhTG9hZFN0YXRlKSx7c3RhdGU6eUUuTE9BRElOR30pLHBsdWdpbnNMaXN0TG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBsdWdpbnNMaXN0TG9hZGVkKSx7c3RhdGU6eUUuTE9BRElOR30pfSkpKSxiayh3RSwoKHQse2ZhaWx1cmVDb2RlOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjb3JlRGF0YUxvYWRTdGF0ZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5jb3JlRGF0YUxvYWRTdGF0ZSkse3N0YXRlOnlFLkZBSUxFRH0pLHBsdWdpbnNMaXN0TG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBsdWdpbnNMaXN0TG9hZGVkKSx7c3RhdGU6eUUuRkFJTEVELGZhaWx1cmVDb2RlOmV9KX0pKSksYmsoUEUsKCh0LHtwbHVnaW5zOmV9KT0+e2NvbnN0IG49T2JqZWN0LmtleXMoZSkuZmluZCgodD0+ZVt0XS5lbmFibGVkKSl8fG51bGwsbz10LmFjdGl2ZVBsdWdpbnx8bixpPURhdGUubm93KCk7bGV0IGE9dC5jb3JlRGF0YUxvYWRTdGF0ZTtyZXR1cm4gdC5wb2x5bWVyUnVuc0xvYWRTdGF0ZS5zdGF0ZT09PXlFLkxPQURFRCYmKGE9e3N0YXRlOnlFLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6aX0pLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7YWN0aXZlUGx1Z2luOm8sY29yZURhdGFMb2FkU3RhdGU6YSxwbHVnaW5zOmUscGx1Z2luc0xpc3RMb2FkZWQ6e3N0YXRlOnlFLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6aSxmYWlsdXJlQ29kZTpudWxsfX0pfSkpLGJrKGtFLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NvcmVEYXRhTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmNvcmVEYXRhTG9hZFN0YXRlKSx7c3RhdGU6eUUuTE9BRElOR30pLHBvbHltZXJSdW5zTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBvbHltZXJSdW5zTG9hZFN0YXRlKSx7c3RhdGU6eUUuTE9BRElOR30pfSkpKSxiayhTRSwodD0+e2NvbnN0IGU9RGF0ZS5ub3coKTtsZXQgbj10LmNvcmVEYXRhTG9hZFN0YXRlO3JldHVybiB0LnBsdWdpbnNMaXN0TG9hZGVkLnN0YXRlPT09eUUuTE9BREVEJiYobj17c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczplfSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjb3JlRGF0YUxvYWRTdGF0ZTpuLHBvbHltZXJSdW5zTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBvbHltZXJSdW5zTG9hZFN0YXRlKSx7c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczplfSl9KX0pKSxiayhERSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjb3JlRGF0YUxvYWRTdGF0ZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5jb3JlRGF0YUxvYWRTdGF0ZSkse3N0YXRlOnlFLkZBSUxFRH0pLHBvbHltZXJSdW5zTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBvbHltZXJSdW5zTG9hZFN0YXRlKSx7c3RhdGU6eUUuRkFJTEVEfSl9KSkpLGJrKEVFLCgodCx7ZW52aXJvbm1lbnQ6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2Vudmlyb25tZW50OmV9KSkpLGJrKEFFLCgodCx7cnVuczplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cG9seW1lckludGVyb3BSdW5zOmV9KSkpLGJrKFJFLCgodCx7bmV4dFNlbGVjdGlvbjplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cG9seW1lckludGVyb3BSdW5TZWxlY3Rpb246bmV3IFNldChlKX0pKSksYmsoVEUsKCh0LHt3aWR0aEluUGVyY2VudDplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2lkZUJhcldpZHRoSW5QZXJjZW50Ok1hdGgubWluKE1hdGgubWF4KDAsZSksMTAwKX0pKSksYmsoV1MsKCh0LHtwYXJ0aWFsU2V0dGluZ3M6ZX0pPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LHQpLG89ZS5zaWRlQmFyV2lkdGhJblBlcmNlbnQ7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBvJiZvPj0wJiZvPD0xMDAmJihuLnNpZGVCYXJXaWR0aEluUGVyY2VudD1vKSxufSkpLGJrKHBSLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2FjdGl2ZVBsdWdpbjoic2NhbGFycyJ9KSkpKTtmdW5jdGlvbiBnUih0LGUpe3JldHVybiBmUih0LGUpfWNvbnN0IGhSPUt3KG1SKSxiUj1adyhoUiwodD0+dC5wbHVnaW5zTGlzdExvYWRlZCkpLHlSPVp3KGhSLCh0PT50LnBvbHltZXJSdW5zTG9hZFN0YXRlKSksX1I9WncoaFIsKHQ9PnQuY29yZURhdGFMb2FkU3RhdGUuc3RhdGUpKSxDUj1adyhoUiwodD0+dC5jb3JlRGF0YUxvYWRTdGF0ZS5sYXN0TG9hZGVkVGltZUluTXMpKSxNUj1adyhoUiwodD0+dC5hY3RpdmVQbHVnaW4pKSx2Uj1adyhoUiwodD0+dC5wbHVnaW5zKSkseFI9WncoaFIsKHQ9PnQuZW52aXJvbm1lbnQpKSxPUj1adyhoUiwodD0+dC5zaWRlQmFyV2lkdGhJblBlcmNlbnQpKSxQUj1uZXcgU2V0KFtaay5DT01QQVJFX0VYUEVSSU1FTlQsWmsuRVhQRVJJTUVOVCxaay5OT1RfU0VUXSk7Y2xhc3Mgd1J7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy53ZWJhcHBEYXRhU291cmNlPW4sdGhpcy50ZkJhY2tlbmQ9e3JlZjpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Zi1iYWNrZW5kIikudGZfYmFja2VuZH0sdGhpcy5vbkRhc2hib2FyZExvYWQkPXJlKHRoaXMuYWN0aW9ucyQucGlwZShEayhNRSxkUyksVmUodGhpcy5zdG9yZS5zZWxlY3QoTlMpKSxNZSgoKFssdF0sWyxlXSk9PnQ9PT1lKSkpLHRoaXMuYWN0aW9ucyQucGlwZShEayh4RSx2RSkpKS5waXBlKFZlKHRoaXMuc3RvcmUuc2VsZWN0KFJTKSksY2UoKChbLHRdKT0+UFIuaGFzKHQpKSksQmUoMSx2b2lkIDAse2xlYWRpbmc6ITB9KSksdGhpcy5mZXRjaFdlYkFwcERhdGEkPU1rKCgoKT0+cmUodGhpcy5vbkRhc2hib2FyZExvYWQkLnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3QoYlIpLHRoaXMuc3RvcmUuc2VsZWN0KCREKSksY2UoKChbLHtzdGF0ZTp0fV0pPT50IT09eUUuTE9BRElORykpLEZlKCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChPRSgpKSkpLFp0KCgoWywsdF0pPT4oZnVuY3Rpb24gZSgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1rdCh0KSxvPWxlKHQpO3JldHVybiBvLmxlbmd0aD9uZXcgRCgoZnVuY3Rpb24odCl7dmFyIGU9by5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuW119KSkscj1vLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4hMX0pKTt0LmFkZCgoZnVuY3Rpb24oKXtlPXI9bnVsbH0pKTtmb3IodmFyIHM9ZnVuY3Rpb24ocyl7TXQob1tzXSkuc3Vic2NyaWJlKG5ldyBUKHQsKGZ1bmN0aW9uKG8pe2lmKGVbc10ucHVzaChvKSxlLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGh9KSkpe3ZhciBsPWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zaGlmdCgpfSkpO3QubmV4dChuP24uYXBwbHkodm9pZCAwLGEoW10saShsKSkpOmwpLGUuc29tZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4hdC5sZW5ndGgmJnJbZV19KSkmJnQuY29tcGxldGUoKX19KSwoZnVuY3Rpb24oKXtyW3NdPSEwLCFlW3NdLmxlbmd0aCYmdC5jb21wbGV0ZSgpfSkpKX0sbD0wOyF0LmNsb3NlZCYmbDxvLmxlbmd0aDtsKyspcyhsKTtyZXR1cm4gZnVuY3Rpb24oKXtlPXI9bnVsbH19KSk6cnR9KSh0aGlzLndlYmFwcERhdGFTb3VyY2UuZmV0Y2hQbHVnaW5zTGlzdGluZyh0KSx0aGlzLmZldGNoRW52aXJvbm1lbnQoKSkucGlwZShJdCgoKFt0XSk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKFBFKHtwbHVnaW5zOnR9KSl9KSkscGUoKHQ9Pih0aGlzLnN0b3JlLmRpc3BhdGNoKHdFKHQgaW5zdGFuY2VvZiBnRT97ZmFpbHVyZUNvZGU6dC5mYWlsdXJlQ29kZX06e2ZhaWx1cmVDb2RlOm1FLlVOS05PV059KSkscnQpKSkpKSkpLHRoaXMub25EYXNoYm9hcmRMb2FkJC5waXBlKEl0KCgoWyx0XSk9PnQpKSx6ZSgodD0+dCE9PVprLkNPTVBBUkVfRVhQRVJJTUVOVD9FdChbXSk6dGhpcy5zdG9yZS5zZWxlY3QoelMpLnBpcGUoTWUoKCh0LGUpPT57Y29uc3Qgbj1PYmplY3QuZW50cmllcyh0KSxvPW5ldyBNYXAoT2JqZWN0LmVudHJpZXMoZSkpO2lmKG4ubGVuZ3RoIT09by5zaXplKXJldHVybiExO2Zvcihjb25zdFt0LGVdb2YgbilpZihvLmdldCh0KSE9PWUpcmV0dXJuITE7cmV0dXJuITB9KSksQ2UoMCksQmUoNTAwLHZvaWQgMCx7bGVhZGluZzohMCx0cmFpbGluZzohMH0pKSkpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KFJTKSx0aGlzLnN0b3JlLnNlbGVjdCh5UikpLGNlKCgoWyx0LGVdKT0+UFIuaGFzKHQpJiZlLnN0YXRlIT09eUUuTE9BRElORykpLEZlKCgoKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goa0UoKSl9KSksemUoKCgpPT50aGlzLnJlZnJlc2hQb2x5bWVyUnVucygpKSksRmUoKCgpPT57dGhpcy5zdG9yZS5kaXNwYXRjaChTRSgpKX0pKSxwZSgoKCk9Pih0aGlzLnN0b3JlLmRpc3BhdGNoKERFKCkpLHJ0KSkpKSkpLHtkaXNwYXRjaDohMX0pLHRoaXMuZGlzcGF0Y2hDaGFuZ2VQbHVnaW4kPU1rKCgoKT0+cmUodGhpcy5vbkRhc2hib2FyZExvYWQkLHRoaXMuYWN0aW9ucyQucGlwZShEayhQRSkpKS5waXBlKFZlKHRoaXMuc3RvcmUuc2VsZWN0KE1SKSksSXQoKChbLHRdKT0+dCkpLE1lKCksY2UoKHQ9Pm51bGwhPT10KSksYmUoMSksRmUoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKF9FKHtwbHVnaW46dH0pKX0pKSkpLHtkaXNwYXRjaDohMX0pfXJlZnJlc2hQb2x5bWVyUnVucygpe3JldHVybiBDdCh0aGlzLnRmQmFja2VuZC5yZWYucnVuc1N0b3JlLnJlZnJlc2goKSl9ZmV0Y2hFbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLndlYmFwcERhdGFTb3VyY2UuZmV0Y2hFbnZpcm9ubWVudCgpLnBpcGUoRmUoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKEVFKHtlbnZpcm9ubWVudDp0fSkpfSkpKX19d1IuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHdSKSh2cihTayksdnIoSXcpLHZyKGhFKSl9LHdSLsm1cHJvdj1Nbih7dG9rZW46d1IsZmFjdG9yeTp3Ui7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgod1IsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlNrfSx7dHlwZTpJd30se3R5cGU6aEV9XX0pLG51bGwpO2NvbnN0IGtSPW5ldyBHYSgiQ29yZSBGZWF0dXJlIENvbmZpZyIpO2Z1bmN0aW9uIFNSKHQpe3JldHVybntpbml0aWFsU3RhdGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHVSKSx7YWN0aXZlUGx1Z2luOnQuZ2V0UGx1Z2luSWQoKXx8bnVsbH0pfX1mdW5jdGlvbiBEUigpe3JldHVybiBadyhPUiwodD0+KHtzaWRlQmFyV2lkdGhJblBlcmNlbnQ6dH0pKSl9Y2xhc3MgRVJ7fUVSLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxFUil9LEVSLsm1bW9kPWFvKHt0eXBlOkVSfSksRVIuybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6a1IsZGVwczpbVlNdLHVzZUZhY3Rvcnk6U1J9XSxpbXBvcnRzOltbV2suZm9yRmVhdHVyZShbd1JdKSxkay5mb3JGZWF0dXJlKG1SLGdSLGtSKSxiRSxxUy5kZWZpbmVHbG9iYWxTZXR0aW5nKERSKV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChFUixbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1drLmZvckZlYXR1cmUoW3dSXSksZGsuZm9yRmVhdHVyZShtUixnUixrUiksYkUscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhEUildLHByb3ZpZGVyczpbe3Byb3ZpZGU6a1IsZGVwczpbVlNdLHVzZUZhY3Rvcnk6U1J9XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEVSLHtpbXBvcnRzOltHayxjayxiRSxxU119KTtjb25zdCBSUj1uZXcgR2EoIltBbGVydF0gQWN0aW9uLVRvLUFsZXJ0IFByb3ZpZGVyIik7Y2xhc3MgQVJ7Y29uc3RydWN0b3IodCl7dGhpcy5wcm92aWRlcnM9bmV3IE1hcDtmb3IoY29uc3QgZSBvZiB0fHxbXSlmb3IoY29uc3QgdCBvZiBlKXtpZih0aGlzLnByb3ZpZGVycy5oYXModC5hY3Rpb25DcmVhdG9yLnR5cGUpKXRocm93IG5ldyBSYW5nZUVycm9yKGAiJHt0LmFjdGlvbkNyZWF0b3IudHlwZX0iIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBmb3IgYWxlcnRzLiBNdWx0aXBsZSBhbGVydHMgZm9yIHRoZSBzYW1lIGFjdGlvbiBpcyBub3QgYWxsb3dlZC5gKTt0aGlzLnByb3ZpZGVycy5zZXQodC5hY3Rpb25DcmVhdG9yLnR5cGUsdC5hbGVydEZyb21BY3Rpb24pfX1nZXRBbGVydEZyb21BY3Rpb24odCl7Y29uc3QgZT10aGlzLnByb3ZpZGVycy5nZXQodC50eXBlKTtyZXR1cm4gZT9lKHQpOm51bGx9c3RhdGljIHJlZ2lzdGVyQWxlcnRBY3Rpb25zKHQpe3JldHVybntuZ01vZHVsZTpBUixwcm92aWRlcnM6W3twcm92aWRlOlJSLG11bHRpOiEwLHVzZUZhY3Rvcnk6dH1dfX19QVIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEFSKSh2cihSUiw4KSl9LEFSLsm1bW9kPWFvKHt0eXBlOkFSfSksQVIuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQVIsW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1JSXX1dfV19KSxudWxsKTtjb25zdCBUUj0iaHBhcmFtcyIsTlI9SlAoIltSdW5zXSBGZXRjaCBSdW5zIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHpSPUpQKCJbUnVuc10gRmV0Y2ggUnVucyBTdWNjZWVkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxJUj1KUCgiW1J1bnNdIEZldGNoIFJ1bnMgRmFpbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksSFI9SlAoIltSdW5zXSBSdW4gU2VsZWN0aW9uIFRvZ2dsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxGUj1KUCgiW1J1bnNdIFJ1biBQYWdlIFNlbGVjdGlvbiBUb2dnbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksTFI9SlAoIltSdW5zXSBSdW4gU2VsZWN0b3IgUGFnaW5hdGlvbiBPcHRpb24gQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEJSPUpQKCJbUnVuc10gUnVuIFNlbGVjdG9yIFNvcnQgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFZSPUpQKCJbUnVuc10gUnVuIFNlbGVjdG9yIFJlZ2V4IEZpbHRlciBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksalI9SlAoIltSdW5zXSBSdW4gQ29sb3IgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFVSPUpQKCJbUnVuc10gUnVuIFRhYmxlIFNob3duIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksR1I9SlAoIltSdW5zXSBSdW4gR3JvdXAgQnkgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pO3ZhciBXUixZUixxUixaUjshKGZ1bmN0aW9uKHQpe3QuREFUQVNFVF9VTktOT1dOPSJEQVRBU0VUX1VOS05PV04iLHQuREFUQVNFVF9UUkFJTklORz0iREFUQVNFVF9UUkFJTklORyIsdC5EQVRBU0VUX1ZBTElEQVRJT049IkRBVEFTRVRfVkFMSURBVElPTiJ9KShXUnx8KFdSPXt9KSksKGZ1bmN0aW9uKHQpe3QuU1RBVFVTX1VOS05PV049IlNUQVRVU19VTktOT1dOIix0LlNUQVRVU19TVUNDRVNTPSJTVEFUVVNfU1VDQ0VTUyIsdC5TVEFUVVNfRkFJTFVSRT0iU1RBVFVTX0ZBSUxVUkUiLHQuU1RBVFVTX1JVTk5JTkc9IlNUQVRVU19SVU5OSU5HIn0pKFlSfHwoWVI9e30pKSwoZnVuY3Rpb24odCl7dC5EQVRBX1RZUEVfVU5TRVQ9IkRBVEFfVFlQRV9VTlNFVCIsdC5EQVRBX1RZUEVfU1RSSU5HPSJEQVRBX1RZUEVfU1RSSU5HIix0LkRBVEFfVFlQRV9CT09MPSJEQVRBX1RZUEVfQk9PTCIsdC5EQVRBX1RZUEVfRkxPQVQ2ND0iREFUQV9UWVBFX0ZMT0FUNjQifSkocVJ8fChxUj17fSkpLChmdW5jdGlvbih0KXt0W3QuRElTQ1JFVEU9MF09IkRJU0NSRVRFIix0W3QuSU5URVJWQUw9MV09IklOVEVSVkFMIn0pKFpSfHwoWlI9e30pKTtjbGFzcyBYUnt9WFIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhSKX0sWFIuybVwcm92PU1uKHt0b2tlbjpYUixmYWN0b3J5OlhSLsm1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYUixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSxudWxsLG51bGwpO2NvbnN0IEtSPUpQKCJbSHBhcmFtc10gSHBhcmFtcyBEaXNjcmV0ZSBIcGFyYW0gRmlsdGVyIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxKUj1KUCgiW0hwYXJhbXNdIEhwYXJhbXMgSW50ZXJ2YWwgSHBhcmFtIEZpbHRlciBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksUVI9SlAoIltIcGFyYW1zXSBIcGFyYW1zIE1ldHJpYyBGaWx0ZXIgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pO2Z1bmN0aW9uICRSKHQpe3JldHVybiBKU09OLnN0cmluZ2lmeShbLi4udF0uc29ydCgpKX1mdW5jdGlvbiB0QSh0KXt2YXIgZSxuLG8saTtjb25zdCBhPW5ldyBNYXAscj1uZXcgTWFwLHM9bmV3IE1hcDtmb3IoY29uc3QgYSBvZiB0KWZvcihjb25zdFt0LGxdb2YgYSlpZihsLnR5cGU9PT1aUi5ESVNDUkVURSl7Y29uc3R7cG9zc2libGVWYWx1ZXM6ZSx2YWx1ZXM6bn09ci5nZXQodCl8fHtwb3NzaWJsZVZhbHVlczpuZXcgU2V0LHZhbHVlczpuZXcgU2V0fTtmb3IoY29uc3QgdCBvZiBsLmZpbHRlclZhbHVlcyluLmFkZCh0KTtmb3IoY29uc3QgdCBvZiBsLnBvc3NpYmxlVmFsdWVzKWUuYWRkKHQpO3Iuc2V0KHQse3Bvc3NpYmxlVmFsdWVzOmUsdmFsdWVzOm59KX1lbHNle2NvbnN0IGE9cy5nZXQodCk7cy5zZXQodCx7ZmlsdGVyTG93ZXJWYWx1ZTpNYXRoLm1pbihsLmZpbHRlckxvd2VyVmFsdWUsbnVsbCE9PShlPW51bGw9PWE/dm9pZCAwOmEuZmlsdGVyTG93ZXJWYWx1ZSkmJnZvaWQgMCE9PWU/ZToxLzApLGZpbHRlclVwcGVyVmFsdWU6TWF0aC5tYXgobC5maWx0ZXJVcHBlclZhbHVlLG51bGwhPT0obj1udWxsPT1hP3ZvaWQgMDphLmZpbHRlclVwcGVyVmFsdWUpJiZ2b2lkIDAhPT1uP246LTEvMCksbWluVmFsdWU6TWF0aC5taW4obC5taW5WYWx1ZSxudWxsIT09KG89bnVsbD09YT92b2lkIDA6YS5taW5WYWx1ZSkmJnZvaWQgMCE9PW8/bzoxLzApLG1heFZhbHVlOk1hdGgubWF4KGwubWF4VmFsdWUsbnVsbCE9PShpPW51bGw9PWE/dm9pZCAwOmEubWF4VmFsdWUpJiZ2b2lkIDAhPT1pP2k6LTEvMCl9KX1mb3IoY29uc3RbdCx7dmFsdWVzOmUscG9zc2libGVWYWx1ZXM6bn1db2YgcilhLnNldCh0LHt0eXBlOlpSLkRJU0NSRVRFLGluY2x1ZGVVbmRlZmluZWQ6ITAscG9zc2libGVWYWx1ZXM6Wy4uLm5dLGZpbHRlclZhbHVlczpbLi4uZV19KTtmb3IoY29uc3RbdCx7bWluVmFsdWU6ZSxtYXhWYWx1ZTpuLGZpbHRlckxvd2VyVmFsdWU6byxmaWx0ZXJVcHBlclZhbHVlOml9XW9mIHMpe2lmKGEuaGFzKHQpKXtjb25zdCBlPWEuZ2V0KHQpO2lmKGUudHlwZT09PVpSLkRJU0NSRVRFJiZlLnBvc3NpYmxlVmFsdWVzLnNvbWUoKHQ9PnQpKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgQ2Fubm90IGNvbWJpbmUgaHBhcmFtLCAke3R9LCBhcyBpdCBpcyBvZiBtaXhlZCB0eXBlcy5gKX1hLnNldCh0LHt0eXBlOlpSLklOVEVSVkFMLGluY2x1ZGVVbmRlZmluZWQ6ITAsbWluVmFsdWU6ZSxtYXhWYWx1ZTpuLGZpbHRlckxvd2VyVmFsdWU6byxmaWx0ZXJVcHBlclZhbHVlOml9KX1yZXR1cm4gYX1mdW5jdGlvbiBlQSh0KXt2YXIgZSxuLG8saTtjb25zdCBhPW5ldyBNYXA7Zm9yKGNvbnN0IHIgb2YgdClmb3IoY29uc3RbdCxzXW9mIHIpe2NvbnN0IHI9YS5nZXQodCk7YS5zZXQodCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3R5cGU6WlIuSU5URVJWQUwsaW5jbHVkZVVuZGVmaW5lZDohMH0scikse21pblZhbHVlOk1hdGgubWluKHMubWluVmFsdWUsbnVsbCE9PShlPW51bGw9PXI/dm9pZCAwOnIubWluVmFsdWUpJiZ2b2lkIDAhPT1lP2U6MS8wKSxtYXhWYWx1ZTpNYXRoLm1heChzLm1heFZhbHVlLG51bGwhPT0obj1udWxsPT1yP3ZvaWQgMDpyLm1heFZhbHVlKSYmdm9pZCAwIT09bj9uOi0xLzApLGZpbHRlckxvd2VyVmFsdWU6TWF0aC5taW4ocy5maWx0ZXJMb3dlclZhbHVlLG51bGwhPT0obz1udWxsPT1yP3ZvaWQgMDpyLmZpbHRlckxvd2VyVmFsdWUpJiZ2b2lkIDAhPT1vP286MS8wKSxmaWx0ZXJVcHBlclZhbHVlOk1hdGgubWF4KHMuZmlsdGVyVXBwZXJWYWx1ZSxudWxsIT09KGk9bnVsbD09cj92b2lkIDA6ci5maWx0ZXJVcHBlclZhbHVlKSYmdm9pZCAwIT09aT9pOi0xLzApfSkpfXJldHVybiBhfWNvbnN0IG5BPXlrKHtzcGVjczp7fSxmaWx0ZXJzOnt9fSxiayhLUiwoKHQsZSk9Pnt2YXIgbjtjb25zdHtleHBlcmltZW50SWRzOm8saHBhcmFtTmFtZTppLGZpbHRlclZhbHVlczphLGluY2x1ZGVVbmRlZmluZWQ6cn09ZSxzPSRSKG8pLGw9bnVsbCE9PShuPXQuZmlsdGVyc1tzXSkmJnZvaWQgMCE9PW4/bjp7aHBhcmFtczpuZXcgTWFwfSxjPWwuaHBhcmFtcy5nZXQoaSk7aWYoYyYmYy50eXBlIT09WlIuRElTQ1JFVEUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYE5ldyBkaXNjcmV0ZSBmaWx0ZXIgb2YgJHtpfSBjb25mbGljdHMgZXhpc3RpbmcgZmlsdGVyIG9mIGArWlJbYy50eXBlXSk7Y29uc3QgZD10QShvLmZpbHRlcigoZT0+Qm9vbGVhbih0LnNwZWNzW2VdKSkpLm1hcCgoZT0+dC5zcGVjc1tlXS5ocGFyYW0uZGVmYXVsdEZpbHRlcnMpKSkuZ2V0KGkpO2lmKCFkKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IHNldCBocGFyYW0sICR7aX0sIHdoZW4gaXQgaXMgbm90IGtub3duIGZvciBleHBlcmltZW50SWRzOiAke28uam9pbigiLCAiKX1gKTtpZihkLnR5cGUhPT1aUi5ESVNDUkVURSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZXQgJHtpfSB3aGVuIGRlZmF1bHQgZmlsdGVyIGlzIG5vdCBvZiBkaXNjcmV0ZSB0eXBlLmApO2NvbnN0IHA9bmV3IFNldChkLnBvc3NpYmxlVmFsdWVzKSxtPVsuLi5hXS5maWx0ZXIoKHQ9PiFwLmhhcyh0KSkpO2lmKG0ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgTmV3IGZpbHRlciBmb3IgJHtpfSBoYXMgbW9yZSB0aGFuIG9uZSB2YWx1ZSB0aGF0IGlzIG5vdCBwcmVzZW50IGluIHRoZSBzcGVjLiBCYWQgdmFsdWVzOiAke20uam9pbigiLCAiKX1gKTtjb25zdCB1PW5ldyBNYXAobC5ocGFyYW1zKTtyZXR1cm4gdS5zZXQoaSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYykse3R5cGU6WlIuRElTQ1JFVEUsaW5jbHVkZVVuZGVmaW5lZDpyLHBvc3NpYmxlVmFsdWVzOlsuLi5wXSxmaWx0ZXJWYWx1ZXM6YX0pKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2ZpbHRlcnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZmlsdGVycykse1tzXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbCkse2hwYXJhbXM6dX0pfSl9KX0pKSxiayhKUiwoKHQsZSk9Pnt2YXIgbjtjb25zdHtleHBlcmltZW50SWRzOm8saHBhcmFtTmFtZTppLGZpbHRlckxvd2VyVmFsdWU6YSxmaWx0ZXJVcHBlclZhbHVlOnIsaW5jbHVkZVVuZGVmaW5lZDpzfT1lLGw9JFIobyksYz1udWxsIT09KG49dC5maWx0ZXJzW2xdKSYmdm9pZCAwIT09bj9uOnttZXRyaWNzOm5ldyBNYXAsaHBhcmFtczpuZXcgTWFwfSxkPWMuaHBhcmFtcy5nZXQoaSk7aWYoZCYmZC50eXBlIT09WlIuSU5URVJWQUwpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYE5ldyBpbnRlcnZhbCBmaWx0ZXIgb2YgJHtpfSBjb25mbGljdHMgZXhpc3RpbmcgZmlsdGVyIG9mIGArWlJbZC50eXBlXSk7Y29uc3QgcD10QShvLmZpbHRlcigoZT0+Qm9vbGVhbih0LnNwZWNzW2VdKSkpLm1hcCgoZT0+dC5zcGVjc1tlXS5ocGFyYW0uZGVmYXVsdEZpbHRlcnMpKSkuZ2V0KGkpO2lmKCFwKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IHNldCBocGFyYSwgJHtpfSwgd2hlbiBpdCBpcyBub3Qga25vd24gZm9yIGV4cGVyaW1lbnRJZHM6ICR7by5qb2luKCIsICIpfWApO2lmKHAudHlwZSE9PVpSLklOVEVSVkFMKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IHNldCAke2l9IHdoZW4gZGVmYXVsdCBmaWx0ZXIgaXMgbm90IG9mIGludGVydmFsIHR5cGUuYCk7Y29uc3QgbT1uZXcgTWFwKGMuaHBhcmFtcyk7cmV0dXJuIG0uc2V0KGksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLHt0eXBlOlpSLklOVEVSVkFMLGluY2x1ZGVVbmRlZmluZWQ6cyxtaW5WYWx1ZTpwLm1pblZhbHVlLG1heFZhbHVlOnAubWF4VmFsdWUsZmlsdGVyTG93ZXJWYWx1ZTphLGZpbHRlclVwcGVyVmFsdWU6cn0pKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2ZpbHRlcnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZmlsdGVycykse1tsXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYykse2hwYXJhbXM6bX0pfSl9KX0pKSxiayhRUiwoKHQsZSk9Pnt2YXIgbjtjb25zdHtleHBlcmltZW50SWRzOm8sbWV0cmljVGFnOmksZmlsdGVyTG93ZXJWYWx1ZTphLGZpbHRlclVwcGVyVmFsdWU6cixpbmNsdWRlVW5kZWZpbmVkOnN9PWUsbD0kUihvKSxjPW51bGwhPT0obj10LmZpbHRlcnNbbF0pJiZ2b2lkIDAhPT1uP246e21ldHJpY3M6bmV3IE1hcCxocGFyYW1zOm5ldyBNYXB9LGQ9ZUEoby5maWx0ZXIoKGU9PkJvb2xlYW4odC5zcGVjc1tlXSkpKS5tYXAoKGU9PnQuc3BlY3NbZV0ubWV0cmljLmRlZmF1bHRGaWx0ZXJzKSkpLmdldChpKTtpZighZCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZXQgbWV0cmljLCAke2l9LCB3aGVuIGl0IGlzIG5vdCBrbm93biBmb3IgZXhwZXJpbWVudElkczogJHtvLmpvaW4oIiwgIil9YCk7Y29uc3QgcD1jLm1ldHJpY3MuZ2V0KGkpLG09bmV3IE1hcChjLm1ldHJpY3MpO3JldHVybiBtLnNldChpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxwKSx7dHlwZTpaUi5JTlRFUlZBTCxpbmNsdWRlVW5kZWZpbmVkOnMsbWluVmFsdWU6ZC5taW5WYWx1ZSxtYXhWYWx1ZTpkLm1heFZhbHVlLGZpbHRlckxvd2VyVmFsdWU6YSxmaWx0ZXJVcHBlclZhbHVlOnJ9KSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtmaWx0ZXJzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmZpbHRlcnMpLHtbbF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGMpLHttZXRyaWNzOm19KX0pfSl9KSksYmsoelIsKCh0LGUpPT57dmFyIG4sbyxpLGE7aWYoMD09PU9iamVjdC5rZXlzKGUubmV3UnVuc0FuZE1ldGFkYXRhKS5sZW5ndGgpcmV0dXJuIHQ7Y29uc3Qgcj1PYmplY3QuYXNzaWduKHt9LHQuc3BlY3MpLHM9bmV3IE1hcCxsPW5ldyBTZXQ7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmtleXMoZS5uZXdSdW5zQW5kTWV0YWRhdGEpKXtjb25zdCBjPW5ldyBNYXAsZD1uZXcgTWFwLHA9bmV3IE1hcCxtPW5ldyBNYXAse3J1bnM6dSxtZXRhZGF0YTpmfT1lLm5ld1J1bnNBbmRNZXRhZGF0YVt0XTtmb3IoY29uc3QgdCBvZiB1KXtjb25zdCBlPWYucnVuVG9IcGFyYW1zQW5kTWV0cmljc1t0LmlkXTtpZihlKWZvcihjb25zdCB0IG9mIGUubWV0cmljcyl7Y29uc3QgZT1zLmdldCh0LnRhZyk7cy5zZXQodC50YWcse21pbjplP01hdGgubWluKGUubWluLHQudmFsdWUpOnQudmFsdWUsbWF4OmU/TWF0aC5tYXgoZS5tYXgsdC52YWx1ZSk6dC52YWx1ZX0pfX1mb3IoY29uc3R7bmFtZTp0LGRvbWFpbjplfW9mIGYuaHBhcmFtU3BlY3MpaWYoZS50eXBlPT09WlIuRElTQ1JFVEUpe2NvbnN0IG49cC5nZXQodCl8fG5ldyBTZXQ7Zm9yKGNvbnN0IHQgb2YgZS52YWx1ZXMpbi5hZGQodCk7cC5zZXQodCxuKX1lbHNle2NvbnN0IG49bS5nZXQodCk7bS5zZXQodCx7bWluVmFsdWU6bj9NYXRoLm1pbihlLm1pblZhbHVlLG4ubWluVmFsdWUpOmUubWluVmFsdWUsbWF4VmFsdWU6bj9NYXRoLm1heChlLm1heFZhbHVlLG4ubWF4VmFsdWUpOmUubWF4VmFsdWV9KX1mb3IoY29uc3QgdCBvZiBmLm1ldHJpY1NwZWNzKWwuYWRkKHQudGFnKTtmb3IoY29uc3RbdCxlXW9mIHApYy5zZXQodCx7dHlwZTpaUi5ESVNDUkVURSxpbmNsdWRlVW5kZWZpbmVkOiEwLHBvc3NpYmxlVmFsdWVzOlsuLi5lXSxmaWx0ZXJWYWx1ZXM6Wy4uLmVdfSk7Zm9yKGNvbnN0W3Qse21pblZhbHVlOmUsbWF4VmFsdWU6bn1db2YgbSljLnNldCh0LHt0eXBlOlpSLklOVEVSVkFMLGluY2x1ZGVVbmRlZmluZWQ6ITAsbWluVmFsdWU6ZSxtYXhWYWx1ZTpuLGZpbHRlckxvd2VyVmFsdWU6ZSxmaWx0ZXJVcHBlclZhbHVlOm59KTtmb3IoY29uc3QgdCBvZiBsKXtjb25zdCBlPXMuZ2V0KHQpLGk9bnVsbCE9PShuPW51bGw9PWU/dm9pZCAwOmUubWluKSYmdm9pZCAwIT09bj9uOjAsYT1udWxsIT09KG89bnVsbD09ZT92b2lkIDA6ZS5tYXgpJiZ2b2lkIDAhPT1vP286MDtkLnNldCh0LHt0eXBlOlpSLklOVEVSVkFMLGluY2x1ZGVVbmRlZmluZWQ6ITAsbWluVmFsdWU6aSxtYXhWYWx1ZTphLGZpbHRlckxvd2VyVmFsdWU6aSxmaWx0ZXJVcHBlclZhbHVlOmF9KX1yW3RdPXtocGFyYW06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG51bGw9PT0oaT1yW3RdKXx8dm9pZCAwPT09aT92b2lkIDA6aS5ocGFyYW0pLHtzcGVjczpmLmhwYXJhbVNwZWNzLGRlZmF1bHRGaWx0ZXJzOmN9KSxtZXRyaWM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG51bGw9PT0oYT1yW3RdKXx8dm9pZCAwPT09YT92b2lkIDA6YS5tZXRyaWMpLHtzcGVjczpmLm1ldHJpY1NwZWNzLGRlZmF1bHRGaWx0ZXJzOmR9KX19cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c3BlY3M6cn0pfSkpKTtmdW5jdGlvbiBvQSh0LGUpe3JldHVybiBuQSh0LGUpfWNsYXNzIGlBe31pQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aUEpfSxpQS7JtW1vZD1hbyh7dHlwZTppQX0pLGlBLsm1aW5qPXZuKHtpbXBvcnRzOltbZGsuZm9yRmVhdHVyZShUUixvQSldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoaUEsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltkay5mb3JGZWF0dXJlKFRSLG9BKV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhpQSx7aW1wb3J0czpbY2tdfSk7Y2xhc3MgYUF7fWZ1bmN0aW9uIHJBKHQsZSl7cmV0dXJuYCR7ZX0vJHt0fWB9YUEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGFBKX0sYUEuybVtb2Q9YW8oe3R5cGU6YUF9KSxhQS7JtWluaj12bih7aW1wb3J0czpbW2lBXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGFBLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbaUFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oYUEse2ltcG9ydHM6W2lBXX0pO2NsYXNzIHNBe2NvbnN0cnVjdG9yKHQpe3RoaXMuaHR0cD10fWZldGNoUnVucyh0KXtyZXR1cm4gdGhpcy5odHRwLmdldCgiZGF0YS9ydW5zIikucGlwZShJdCgoZT0+ZS5tYXAoKGU9Pih7aWQ6ckEoZSx0KSxuYW1lOmUsc3RhcnRUaW1lOjB9KSkpKSkpfWZldGNoSHBhcmFtc01ldGFkYXRhKHQpe3JldHVybiBFdCh7aHBhcmFtU3BlY3M6W10sbWV0cmljU3BlY3M6W10scnVuVG9IcGFyYW1zQW5kTWV0cmljczp7fX0pfX1zQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8c0EpKHZyKGxFKSl9LHNBLsm1cHJvdj1Nbih7dG9rZW46c0EsZmFjdG9yeTpzQS7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoc0EsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmxFfV19KSxudWxsKTtjbGFzcyBsQXt9bEEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxBKX0sbEEuybVtb2Q9YW8oe3R5cGU6bEF9KSxsQS7JtWluaj12bih7cHJvdmlkZXJzOlt7cHJvdmlkZTpYUix1c2VDbGFzczpzQX1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsQSxbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpbe3Byb3ZpZGU6WFIsdXNlQ2xhc3M6c0F9XX1dfV0sbnVsbCxudWxsKTtjb25zdCBjQT0iYWxlcnRzIixkQT1adyhLdyhjQSksKHQ9PnQubGF0ZXN0QWxlcnQpKSxwQT0iZXhwZXJpbWVudHMiLG1BPVp3KEt3KHBBKSwodD0+dC5kYXRhKSksdUE9WncobUEsKCh0LGUpPT57Y29uc3R7ZXhwZXJpbWVudElkOm59PWU7cmV0dXJuIHQuZXhwZXJpbWVudE1hcFtuXXx8bnVsbH0pKTsKLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4KCiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC4KCiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSAogICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZCiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsCiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00KICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SCiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SCiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KZnVuY3Rpb24gZkEodCxlKXt2YXIgbj17fTtmb3IodmFyIG8gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKSYmZS5pbmRleE9mKG8pPDAmJihuW29dPXRbb10pO2lmKG51bGwhPXQmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT0wO2ZvcihvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxvLmxlbmd0aDtpKyspZS5pbmRleE9mKG9baV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LG9baV0pJiYobltvW2ldXT10W29baV1dKX1yZXR1cm4gbn1mdW5jdGlvbiBnQSh0LGUsbixvKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24oaSxhKXtmdW5jdGlvbiByKHQpe3RyeXtsKG8ubmV4dCh0KSl9Y2F0Y2godCl7YSh0KX19ZnVuY3Rpb24gcyh0KXt0cnl7bChvLnRocm93KHQpKX1jYXRjaCh0KXthKHQpfX1mdW5jdGlvbiBsKHQpe3QuZG9uZT9pKHQudmFsdWUpOihmdW5jdGlvbiBlKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpfSkodC52YWx1ZSkudGhlbihyLHMpfWwoKG89by5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pKX12YXIgaEEsYkEseUE7IShmdW5jdGlvbih0KXt0LlNDQUxBUlM9InNjYWxhcnMiLHQuSElTVE9HUkFNUz0iaGlzdG9ncmFtcyIsdC5JTUFHRVM9ImltYWdlcyJ9KShoQXx8KGhBPXt9KSksKGZ1bmN0aW9uKHQpe3QuREVGQVVMVD0iZGVmYXVsdCIsdC5BU0NFTkRJTkc9ImFzY2VuZGluZyIsdC5ERVNDRU5ESU5HPSJkZXNjZW5kaW5nIix0Lk5FQVJFU1Q9Im5lYXJlc3QifSkoYkF8fChiQT17fSkpLChmdW5jdGlvbih0KXt0W3QuU1RFUD0wXT0iU1RFUCIsdFt0LlJFTEFUSVZFPTFdPSJSRUxBVElWRSIsdFt0LldBTExfVElNRT0yXT0iV0FMTF9USU1FIn0pKHlBfHwoeUE9e30pKTtjb25zdCBfQT0idGltZXNlcmllcyIsQ0E9W2hBLklNQUdFU107ZnVuY3Rpb24gTUEodCl7cmV0dXJuIENBLmluY2x1ZGVzKHQpfWNvbnN0IHZBPVtoQS5ISVNUT0dSQU1TLGhBLklNQUdFU107ZnVuY3Rpb24geEEodCl7cmV0dXJuIHZBLmluY2x1ZGVzKHQpfWZ1bmN0aW9uIE9BKHQpe3JldHVybiB4QSh0LnBsdWdpbil9Y2xhc3MgUEF7fWZ1bmN0aW9uIHdBKHQpe3JldHVybiB0Lmhhc093blByb3BlcnR5KCJlcnJvciIpfWNvbnN0IGtBPSJkYXRhL3BsdWdpbi90aW1lc2VyaWVzIjtmdW5jdGlvbiBTQSh0KXtjb25zdCBlPXQuaW5kZXhPZigiLyIpO3JldHVybntydW46dC5zdWJzdHJpbmcoZSsxKSxleHBlcmltZW50SWQ6dC5zdWJzdHJpbmcoMCxlKX19ZnVuY3Rpb24gREEodCxlKXtyZXR1cm5gJHtlfS8ke3R9YH1mdW5jdGlvbiBFQSh0LGUpe2NvbnN0e3J1blRvU2VyaWVzOm4scnVuOm99PXQsaT1mQSh0LFsicnVuVG9TZXJpZXMiLCJydW4iXSksYT1PYmplY3QuYXNzaWduKHt9LGkpO3JldHVybiBuJiYoYS5ydW5Ub1Nlcmllcz1SQShuLGUpKSxvJiYoYS5ydW5JZD1EQShvLGUpKSxhfWZ1bmN0aW9uIFJBKHQsZSl7Y29uc3Qgbj17fTtmb3IoY29uc3QgbyBpbiB0KXQuaGFzT3duUHJvcGVydHkobykmJihuW0RBKG8sZSldPXRbb10pO3JldHVybiBufWNsYXNzIEFBe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5odHRwPXQsdGhpcy5zdG9yZT1lfWZldGNoVGFnTWV0YWRhdGEodCl7Y29uc3QgZT10Lm1hcCgodD0+dGhpcy5odHRwLmdldChgL2V4cGVyaW1lbnQvJHt0fS8ke2tBfS90YWdzYCkucGlwZShJdCgoZT0+KGZ1bmN0aW9uIG4odCxlKXtjb25zdCBuPXt9O2Zvcihjb25zdCBvIG9mIE9iamVjdC5rZXlzKHQpKXtjb25zdCBpPW87aWYoTUEoaSkpe2NvbnN0IG89dFtpXSx7dGFnUnVuU2FtcGxlZEluZm86YX09byxyPWZBKG8sWyJ0YWdSdW5TYW1wbGVkSW5mbyJdKSxzPXt9O2Zvcihjb25zdCB0IGluIGEpYS5oYXNPd25Qcm9wZXJ0eSh0KSYmKHNbdF09UkEoYVt0XSxlKSk7bltpXT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3RhZ1J1blNhbXBsZWRJbmZvOnN9KX1lbHNle2NvbnN0IG89dFtpXSx7cnVuVGFnSW5mbzphfT1vLHI9ZkEobyxbInJ1blRhZ0luZm8iXSk7bltpXT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3J1blRhZ0luZm86UkEoYSxlKX0pfX1yZXR1cm4gbn0pKGUsdCkpKSkpKSxuPXRoaXMuc3RvcmUuc2VsZWN0KHFEKS5waXBlKGNlKEJvb2xlYW4pLGJlKDEpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KG9FKSksSXQoKChbLHRdKT0+dCkpKTtyZXR1cm4gJHQoZSkucGlwZShWZShuKSxJdCgoKFt0LGVdKT0+e2NvbnN0IG49KGZ1bmN0aW9uIG8odCl7Y29uc3QgZT17fTtmb3IoY29uc3QgbiBvZiB0KWZvcihjb25zdCB0IG9mIE9iamVjdC52YWx1ZXMoaEEpKWlmKE1BKHQpKXtlW3RdPWVbdF18fHt0YWdEZXNjcmlwdGlvbnM6e30sdGFnUnVuU2FtcGxlZEluZm86e319O2NvbnN0e3RhZ0Rlc2NyaXB0aW9uczpvLHRhZ1J1blNhbXBsZWRJbmZvOml9PW5bdF07ZVt0XS50YWdEZXNjcmlwdGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVbdF0udGFnRGVzY3JpcHRpb25zKSxvKTtjb25zdCBhPWVbdF0udGFnUnVuU2FtcGxlZEluZm87Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmtleXMoaSkpe2FbdF09YVt0XXx8e307Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmtleXMoaVt0XSkpYVt0XVtlXT1pW3RdW2VdfX1lbHNle2VbdF09ZVt0XXx8e3RhZ0Rlc2NyaXB0aW9uczp7fSxydW5UYWdJbmZvOnt9fTtjb25zdHt0YWdEZXNjcmlwdGlvbnM6byxydW5UYWdJbmZvOml9PW5bdF07ZVt0XS50YWdEZXNjcmlwdGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVbdF0udGFnRGVzY3JpcHRpb25zKSxvKSxlW3RdLnJ1blRhZ0luZm89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVbdF0ucnVuVGFnSW5mbyksaSl9cmV0dXJuIGV9KSh0KTtyZXR1cm4gZXx8KG5baEEuSU1BR0VTXT17dGFnRGVzY3JpcHRpb25zOnt9LHRhZ1J1blNhbXBsZWRJbmZvOnt9fSksbn0pKSl9ZmV0Y2hUaW1lU2VyaWVzKHQpe2NvbnN0IGU9dC5tYXAoKHQ9PntpZih4QSh0LnBsdWdpbikpe2NvbnN0IGU9dCx7cnVuSWQ6bn09ZSxvPWZBKGUsWyJydW5JZCJdKSx7cnVuOmksZXhwZXJpbWVudElkOmF9PVNBKG4pLHI9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG8pLHtydW46aX0pO3JldHVybiB0aGlzLmZldGNoVGltZVNlcmllc0JhY2tlbmRSZXF1ZXN0KHIsYSkucGlwZShJdCgoKHtyZXNwb25zZTp0LGV4cGVyaW1lbnRJZDplfSk9PkVBKHQsZSkpKSl9Y29uc3QgZT10LHtleHBlcmltZW50SWRzOm59PWUsbz1mQShlLFsiZXhwZXJpbWVudElkcyJdKTtyZXR1cm4gJHQobi5tYXAoKHQ9PnRoaXMuZmV0Y2hUaW1lU2VyaWVzQmFja2VuZFJlcXVlc3Qobyx0KSkpKS5waXBlKEl0KCh0PT57Y29uc3QgZT1mQSh0WzBdLnJlc3BvbnNlLFsicnVuVG9TZXJpZXMiLCJlcnJvciJdKTtmb3IoY29uc3R7cmVzcG9uc2U6bixleHBlcmltZW50SWQ6b31vZiB0KXtjb25zdCB0PUVBKG4sbyk7aWYoZS5lcnJvciljb250aW51ZTtjb25zdHtydW5Ub1NlcmllczppLGVycm9yOmF9PXQ7aWYoYSllLmVycm9yPWEsZS5ydW5Ub1Nlcmllcz12b2lkIDA7ZWxzZXtlLnJ1blRvU2VyaWVzPWUucnVuVG9TZXJpZXN8fHt9O2Zvcihjb25zdCB0IG9mIE9iamVjdC5rZXlzKGkpKWUucnVuVG9TZXJpZXNbdF09aVt0XX19cmV0dXJuIGV9KSkpfSkpO3JldHVybiAkdChlKX1mZXRjaFRpbWVTZXJpZXNCYWNrZW5kUmVxdWVzdCh0LGUpe2NvbnN0IG49bmV3IEZvcm1EYXRhO3JldHVybiBuLmFwcGVuZCgicmVxdWVzdHMiLEpTT04uc3RyaW5naWZ5KFt0XSkpLHRoaXMuaHR0cC5wb3N0KGAvZXhwZXJpbWVudC8ke2V9LyR7a0F9L3RpbWVTZXJpZXNgLG4pLnBpcGUoSXQoKHQ9Pih7cmVzcG9uc2U6dFswXSxleHBlcmltZW50SWQ6ZX0pKSkpfWltYWdlVXJsKHQpe3JldHVybmAke2tBfS9pbWFnZURhdGE/aW1hZ2VJZD0ke3R9YH1kb3dubG9hZFVybCh0LGUsbixvKXtjb25zdHtydW46aSxleHBlcmltZW50SWQ6YX09U0Eobik7bGV0IHI7c3dpdGNoKHQpe2Nhc2UgaEEuU0NBTEFSUzpyPSJzY2FsYXJzL3NjYWxhcnMiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBOb3QgaW1wbGVtZW50ZWQ6IGRvd25sb2FkVXJsIGZvciAke3R9IGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXRgKX1pZighYSl0aHJvdyBuZXcgRXJyb3IoImV4cGVyaW1lbnRJZCBpcyBlbXB0eTsgaXQgaXMgcmVxdWlyZWQgdG8gZm9ybSBkb3dubG9hZFVybC4iKTtyZXR1cm5gL2V4cGVyaW1lbnQvJHthfS9kYXRhL3BsdWdpbi8ke3J9PyR7bmV3IFVSTFNlYXJjaFBhcmFtcyh7dGFnOmUscnVuOmksZm9ybWF0Om99KX1gfX1BQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QUEpKHZyKGxFKSx2cihJdykpfSxBQS7JtXByb3Y9TW4oe3Rva2VuOkFBLGZhY3Rvcnk6QUEuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEFBLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpsRX0se3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIFRBe31UQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VEEpfSxUQS7JtXByb3Y9TW4oe3Rva2VuOlRBLGZhY3Rvcnk6VEEuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFRBLFt7dHlwZTppbX1dLG51bGwsbnVsbCk7Y29uc3QgTkE9ImV4cGVyaW1lbnRhbFBsdWdpbiIsekE9InNjYWxhcnNCYXRjaFNpemUiLElBPSJlbmFibGVDb2xvckdyb3VwIixIQT0iZW5hYmxlQ29sb3JHcm91cEJ5UmVnZXgiLEZBPSJkYXJrTW9kZSIsTEE9ImVuYWJsZUxpbmtUaW1lIixCQT1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2NsYXNzIFZBe2dldFBhcmFtcygpe3JldHVybiBCQX19VkEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZBKX0sVkEuybVwcm92PU1uKHt0b2tlbjpWQSxmYWN0b3J5OlZBLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWQSxbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIGpBe2NvbnN0cnVjdG9yKHQpe3RoaXMucXVlcnlQYXJhbXM9dH1nZXRGZWF0dXJlcyh0PSExKXtjb25zdCBlPXRoaXMucXVlcnlQYXJhbXMuZ2V0UGFyYW1zKCksbj10P3RoaXMuZ2V0UGFydGlhbEZlYXR1cmVzRnJvbU1lZGlhUXVlcnkoKTp7fTtyZXR1cm4gZS5oYXMoTkEpJiYobi5lbmFibGVkRXhwZXJpbWVudGFsUGx1Z2lucz1lLmdldEFsbChOQSkpLGUuaGFzKCJ0ZW5zb3Jib2FyZENvbGFiIikmJihuLmluQ29sYWI9InRydWUiPT09ZS5nZXQoInRlbnNvcmJvYXJkQ29sYWIiKSksZS5oYXMoekEpJiYobi5zY2FsYXJzQmF0Y2hTaXplPU51bWJlcihlLmdldCh6QSkpKSxlLmhhcyhJQSkmJihuLmVuYWJsZWRDb2xvckdyb3VwPSJmYWxzZSIhPT1lLmdldChJQSkpLGUuaGFzKEhBKSYmKG4uZW5hYmxlZENvbG9yR3JvdXBCeVJlZ2V4PSJmYWxzZSIhPT1lLmdldChIQSkpLGUuaGFzKEZBKSYmKG4uZGVmYXVsdEVuYWJsZURhcmtNb2RlPSJmYWxzZSIhPT1lLmdldChGQSkpLGUuaGFzKExBKSYmKG4uZW5hYmxlZExpbmtlZFRpbWU9ImZhbHNlIiE9PWUuZ2V0KExBKSksbn1nZXRQYXJ0aWFsRmVhdHVyZXNGcm9tTWVkaWFRdWVyeSgpe2NvbnN0IHQ9e307cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcyYmKHQuZGVmYXVsdEVuYWJsZURhcmtNb2RlPSEwKSx0fX1qQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8akEpKHZyKFZBKSl9LGpBLsm1cHJvdj1Nbih7dG9rZW46akEsZmFjdG9yeTpqQS7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoakEsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlZBfV19KSxudWxsKTtjbGFzcyBVQXt9VUEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVBKX0sVUEuybVtb2Q9YW8oe3R5cGU6VUF9KSxVQS7JtWluaj12bih7cHJvdmlkZXJzOltqQSxWQSx7cHJvdmlkZTpUQSx1c2VDbGFzczpqQX1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVQSxbe3R5cGU6QXksYXJnczpbe3Byb3ZpZGVyczpbakEsVkEse3Byb3ZpZGU6VEEsdXNlQ2xhc3M6akF9XX1dfV0sbnVsbCxudWxsKTtjb25zdCBHQT1KUCgiW0ZFQVRVUkUgRkxBR10gUGFydGlhbCBGZWF0dXJlIEZsYWdzIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFdBPUpQKCJbRkVBVFVSRSBGTEFHXSBFbmFibGUgRGFyayBNb2RlIE92ZXJyaWRlIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxZQT1KUCgiW0ZFQVRVUkUgRkxBR10gRWZmZWN0cyBJbml0Iik7Y2xhc3MgcUF7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5kYXRhU291cmNlPW4sdGhpcy5nZXRGZWF0dXJlRmxhZ3MkPU1rKCgoKT0+dGhpcy5hY3Rpb25zJC5waXBlKERrKFlBKSxmZSh0aGlzLnN0b3JlLnNlbGVjdChLRCkpLEl0KCgoWyx0XSk9Pntjb25zdCBlPXRoaXMuZGF0YVNvdXJjZS5nZXRGZWF0dXJlcyh0KTtyZXR1cm4gR0Eoe2ZlYXR1cmVzOmV9KX0pKSkpKX1uZ3J4T25Jbml0RWZmZWN0cygpe3JldHVybiBZQSgpfX1xQS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cUEpKHZyKFNrKSx2cihJdyksdnIoVEEpKX0scUEuybVwcm92PU1uKHt0b2tlbjpxQSxmYWN0b3J5OnFBLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChxQSxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U2t9LHt0eXBlOkl3fSx7dHlwZTpUQX1dfSksbnVsbCk7Y29uc3QgWkE9e2lzRmVhdHVyZUZsYWdzTG9hZGVkOiExLGRlZmF1bHRGbGFnczp7aXNBdXRvRGFya01vZGVBbGxvd2VkOiEwLGRlZmF1bHRFbmFibGVEYXJrTW9kZTohMSxlbmFibGVEYXJrTW9kZU92ZXJyaWRlOm51bGwsZW5hYmxlZENvbG9yR3JvdXA6ITAsZW5hYmxlZENvbG9yR3JvdXBCeVJlZ2V4OiEwLGVuYWJsZWRFeHBlcmltZW50YWxQbHVnaW5zOltdLGluQ29sYWI6ITEsc2NhbGFyc0JhdGNoU2l6ZTp2b2lkIDAsbWV0cmljc0ltYWdlU3VwcG9ydEVuYWJsZWQ6ITAsZW5hYmxlZExpbmtlZFRpbWU6ITEsZW5hYmxlVGltZVNlcmllc1Byb21vdGlvbjohMX0sZmxhZ092ZXJyaWRlczp7fX0sWEE9bmV3IEdhKCJbRmVhdHVyZSBGbGFnXSBTdG9yZSBDb25maWciKTtmdW5jdGlvbiBLQSgpe3JldHVybntpbml0aWFsU3RhdGU6WkF9fWNvbnN0IEpBPXlrKFpBLGJrKEdBLCgodCx7ZmVhdHVyZXM6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2lzRmVhdHVyZUZsYWdzTG9hZGVkOiEwLGZsYWdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZmxhZ092ZXJyaWRlcyksZSl9KSkpLGJrKFdBLCgodCx7ZW5hYmxlRGFya01vZGU6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2ZsYWdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZmxhZ092ZXJyaWRlcykse2VuYWJsZURhcmtNb2RlT3ZlcnJpZGU6ZX0pfSkpKSxiayhXUywoKHQse3BhcnRpYWxTZXR0aW5nczplfSk9PntpZighZS50aGVtZU92ZXJyaWRlKXJldHVybiB0O2xldCBuO3N3aXRjaChlLnRoZW1lT3ZlcnJpZGUpe2Nhc2UgR1MuQlJPV1NFUl9ERUZBVUxUOm49bnVsbDticmVhaztjYXNlIEdTLkRBUks6bj0hMDticmVhaztjYXNlIEdTLkxJR0hUOm49ITF9cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZmxhZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5mbGFnT3ZlcnJpZGVzKSx7ZW5hYmxlRGFya01vZGVPdmVycmlkZTpufSl9KX0pKSk7ZnVuY3Rpb24gUUEodCxlKXtyZXR1cm4gSkEodCxlKX1mdW5jdGlvbiAkQSgpe3JldHVybiBadyhRRCwodD0+bnVsbD09PXQ/e3RoZW1lT3ZlcnJpZGU6R1MuQlJPV1NFUl9ERUZBVUxUfTp7dGhlbWVPdmVycmlkZTp0P0dTLkRBUks6R1MuTElHSFR9KSl9Y2xhc3MgdFR7fXRULsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0VCl9LHRULsm1bW9kPWFvKHt0eXBlOnRUfSksdFQuybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6WEEsdXNlRmFjdG9yeTpLQX1dLGltcG9ydHM6W1tVQSxkay5mb3JGZWF0dXJlKFdELFFBLFhBKSxXay5mb3JGZWF0dXJlKFtxQV0pLHFTLmRlZmluZUdsb2JhbFNldHRpbmcoJEEpXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHRULFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbVUEsZGsuZm9yRmVhdHVyZShXRCxRQSxYQSksV2suZm9yRmVhdHVyZShbcUFdKSxxUy5kZWZpbmVHbG9iYWxTZXR0aW5nKCRBKV0scHJvdmlkZXJzOlt7cHJvdmlkZTpYQSx1c2VGYWN0b3J5OktBfV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyh0VCx7aW1wb3J0czpbVUEsY2ssR2sscVNdfSk7Y2xhc3MgZVR7fWZ1bmN0aW9uIG5UKHQsZSxuLG8pe3JldHVybiB0W2VdLmhhc093blByb3BlcnR5KG4pP01BKGUpP3RbZV1bbl0uaGFzT3duUHJvcGVydHkobyk/dFtlXVtuXVtvXTpudWxsOnRbZV1bbl06bnVsbH1mdW5jdGlvbiBvVCh0LGUsbixvKXtpZihNQShlKSl7Y29uc3QgaT1PYmplY3QuYXNzaWduKHt9LHRbZV0pLGE9KGZ1bmN0aW9uIGkodCxlLG4pe2NvbnN0IG89dC5oYXNPd25Qcm9wZXJ0eShlKT9PYmplY3QuYXNzaWduKHt9LHRbZV0pOnt9LGk9by5oYXNPd25Qcm9wZXJ0eShuKTtyZXR1cm4gb1tuXT1pP09iamVjdC5hc3NpZ24oe30sb1tuXSk6e3J1blRvU2VyaWVzOnt9LHJ1blRvTG9hZFN0YXRlOnt9fSxvfSkoaSxuLG8pO3JldHVybiBpW25dPWEsaX1jb25zdCBhPU9iamVjdC5hc3NpZ24oe30sdFtlXSkscj1hLmhhc093blByb3BlcnR5KG4pO3JldHVybiBhW25dPXI/T2JqZWN0LmFzc2lnbih7fSxhW25dKTp7cnVuVG9TZXJpZXM6e30scnVuVG9Mb2FkU3RhdGU6e319LGF9ZnVuY3Rpb24gaVQodCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfWZ1bmN0aW9uIGFUKHQsZSxuKXtjb25zdCBvPU9iamVjdC5hc3NpZ24oe30sbik7Zm9yKGNvbnN0IG4gb2YgZSlvW25dPXQ7cmV0dXJuIG99ZnVuY3Rpb24gclQodCxlLG4sbyl7aWYoTUEoZSkpe2NvbnN0IGk9dFtlXS50YWdSdW5TYW1wbGVkSW5mbztyZXR1cm4gaS5oYXNPd25Qcm9wZXJ0eShuKT9PYmplY3Qua2V5cyhpW25dKS5maWx0ZXIoKHQ9Pm88aVtuXVt0XS5tYXhTYW1wbGVzUGVyU3RlcCkpOltdfWNvbnN0IGk9dFtlXS50YWdUb1J1bnM7cmV0dXJuIGkuaGFzT3duUHJvcGVydHkobik/aVtuXTpbXX1mdW5jdGlvbiBzVCh0LGUsbixvLGksYSl7Y29uc3Qgcj1uZXcgU2V0KHQpLHM9W107Zm9yKGNvbnN0IG8gb2YgdClmb3IoY29uc3QgdCBvZiBlKWlmKChsPW5bdF0pLnBsdWdpbj09PShjPW8pLnBsdWdpbiYmbC50YWc9PT1jLnRhZyYmbC5zYW1wbGU9PT1jLnNhbXBsZSYmKGwucnVuSWQ9PT1jLnJ1bklkfHwhbC5ydW5JZCYmIWMucnVuSWQpKXtzLnB1c2godCksci5kZWxldGUobyk7YnJlYWt9dmFyIGwsYztpZighcy5sZW5ndGgpcmV0dXJue3VucmVzb2x2ZWRJbXBvcnRlZFBpbm5lZENhcmRzOnQsY2FyZE1ldGFkYXRhTWFwOm4sY2FyZFRvUGlubmVkQ29weTpvLHBpbm5lZENhcmRUb09yaWdpbmFsOmksY2FyZFN0ZXBJbmRleDphfTtsZXQgZD17Y2FyZFRvUGlubmVkQ29weTpvLHBpbm5lZENhcmRUb09yaWdpbmFsOmksY2FyZFN0ZXBJbmRleDphLGNhcmRNZXRhZGF0YU1hcDpufTtmb3IoY29uc3QgdCBvZiBzKWQ9bFQodCxkLmNhcmRUb1Bpbm5lZENvcHksZC5waW5uZWRDYXJkVG9PcmlnaW5hbCxkLmNhcmRTdGVwSW5kZXgsZC5jYXJkTWV0YWRhdGFNYXApO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZCkse3VucmVzb2x2ZWRJbXBvcnRlZFBpbm5lZENhcmRzOlsuLi5yXX0pfWZ1bmN0aW9uIGxUKHQsZSxuLG8saSl7aWYoZS5oYXModCkpcmV0dXJue2NhcmRUb1Bpbm5lZENvcHk6ZSxwaW5uZWRDYXJkVG9PcmlnaW5hbDpuLGNhcmRTdGVwSW5kZXg6byxjYXJkTWV0YWRhdGFNYXA6aX07Y29uc3QgYT1uZXcgTWFwKGUpLHI9bmV3IE1hcChuKSxzPU9iamVjdC5hc3NpZ24oe30sbyksbD1PYmplY3QuYXNzaWduKHt9LGkpLGM9KGZ1bmN0aW9uIGQodCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHtiYXNlQ2FyZElkOnR9KX0pKHQpO2Euc2V0KHQsYyksci5zZXQoYyx0KSxvLmhhc093blByb3BlcnR5KHQpJiYoc1tjXT1vW3RdKTtjb25zdCBwPWlbdF07aWYoIXApdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcGluIGEgY2FyZCB3aXRob3V0IG1ldGFkYXRhIik7cmV0dXJuIGxbY109cCx7Y2FyZFRvUGlubmVkQ29weTphLHBpbm5lZENhcmRUb09yaWdpbmFsOnIsY2FyZFN0ZXBJbmRleDpzLGNhcmRNZXRhZGF0YU1hcDpsfX1mdW5jdGlvbiBjVCh0KXtyZXR1cm4gdC5waW5uZWRDYXJkVG9PcmlnaW5hbC5zaXplK3QudW5yZXNvbHZlZEltcG9ydGVkUGlubmVkQ2FyZHMubGVuZ3RoPDEwfWVULsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlVCl9LGVULsm1bW9kPWFvKHt0eXBlOmVUfSksZVQuybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6UEEsdXNlQ2xhc3M6QUF9XSxpbXBvcnRzOltbdFQsY0VdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZVQsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOlt0VCxjRV0scHJvdmlkZXJzOlt7cHJvdmlkZTpQQSx1c2VDbGFzczpBQX1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZVQse2ltcG9ydHM6W3RULGNFXX0pO2NvbnN0IGRUPSJtZXRyaWNzIixwVD17dG9vbHRpcFNvcnQ6YkEuREVGQVVMVCxpZ25vcmVPdXRsaWVyczohMCx4QXhpc1R5cGU6eUEuU1RFUCxzY2FsYXJTbW9vdGhpbmc6LjYsc2NhbGFyUGFydGl0aW9uTm9uTW9ub3RvbmljWDohMSxpbWFnZUJyaWdodG5lc3NJbk1pbGxpOjFlMyxpbWFnZUNvbnRyYXN0SW5NaWxsaToxZTMsaW1hZ2VTaG93QWN0dWFsU2l6ZTohMSxoaXN0b2dyYW1Nb2RlOnBFLk9GRlNFVH0sbVQ9S3coZFQpLHVUPVp3KG1ULCh0PT50LnRhZ01ldGFkYXRhTG9hZFN0YXRlKSk7WncobVQsKHQ9PnQudGFnTWV0YWRhdGEpKTtjb25zdCBmVD1adyhtVCwodD0+dC5jYXJkTGlzdCkpLGdUPVp3KG1ULCgodCxlKT0+e2lmKCF0LmNhcmRNZXRhZGF0YU1hcC5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4geUUuTk9UX0xPQURFRDtjb25zdHtwbHVnaW46bix0YWc6byxydW5JZDppLHNhbXBsZTphfT10LmNhcmRNZXRhZGF0YU1hcFtlXSxyPW5UKHQudGltZVNlcmllc0RhdGEsbixvLGEpO2lmKCFyKXJldHVybiB5RS5OT1RfTE9BREVEO2NvbnN0IHM9ci5ydW5Ub0xvYWRTdGF0ZTtpZihpKXJldHVybiBzLmhhc093blByb3BlcnR5KGkpP3NbaV06eUUuTk9UX0xPQURFRDtjb25zdCBsPXJUKHQudGFnTWV0YWRhdGEsbixvLGEpO2lmKCFsLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBsb2FkIGEgY2FyZCB3aG9zZSB0YWcgaGFzIG5vIHJ1bnMiKTtyZXR1cm4gbC5ldmVyeSgodD0+c1t0XT09PXlFLkxPQURFRCkpP3lFLkxPQURFRDpsLnNvbWUoKHQ9PnNbdF09PT15RS5MT0FESU5HKSk/eUUuTE9BRElORzp5RS5OT1RfTE9BREVEfSkpLGhUPVp3KG1ULCgodCxlKT0+e2lmKCF0LmNhcmRNZXRhZGF0YU1hcC5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gbnVsbDtjb25zdHtwbHVnaW46bix0YWc6byxzYW1wbGU6aX09dC5jYXJkTWV0YWRhdGFNYXBbZV0sYT1uVCh0LnRpbWVTZXJpZXNEYXRhLG4sbyxpKTtyZXR1cm4gYT9hLnJ1blRvU2VyaWVzOm51bGx9KSksYlQ9WncobVQsKHQ9PnQuY2FyZE1ldGFkYXRhTWFwKSkseVQ9WncoYlQsKCh0LGUpPT50Lmhhc093blByb3BlcnR5KGUpP3RbZV06bnVsbCkpLF9UPVp3KG1ULCh0PT50LnZpc2libGVDYXJkTWFwKSksQ1Q9WncoX1QsKHQ9Pm5ldyBTZXQodC52YWx1ZXMoKSkpKSxNVD1adyhmVCxiVCwoKHQsZSk9PnQuZmlsdGVyKCh0PT5lLmhhc093blByb3BlcnR5KHQpKSkubWFwKCh0PT5PYmplY3QuYXNzaWduKHtjYXJkSWQ6dH0sZVt0XSkpKSkpLHZUPVp3KG1ULCgodCxlKT0+dC5jYXJkU3RlcEluZGV4Lmhhc093blByb3BlcnR5KGUpP3QuY2FyZFN0ZXBJbmRleFtlXTpudWxsKSkseFQ9WncobVQsKHQ9PnQuY2FyZFRvUGlubmVkQ29weSkpLE9UPVp3KG1ULCh0PT50LnBpbm5lZENhcmRUb09yaWdpbmFsKSksUFQ9WncoeFQsYlQsKCh0LGUpPT5bLi4udC52YWx1ZXMoKV0uZmlsdGVyKCh0PT5lLmhhc093blByb3BlcnR5KHQpKSkubWFwKCh0PT5PYmplY3QuYXNzaWduKHtjYXJkSWQ6dH0sZVt0XSkpKSkpLHdUPVp3KHhULE9ULCgodCxlLG4pPT50LmhhcyhuKXx8ZS5oYXMobikpKSxrVD1adyhtVCwodD0+dC51bnJlc29sdmVkSW1wb3J0ZWRQaW5uZWRDYXJkcykpLFNUPVp3KG1ULCh0PT5jVCh0KSkpLERUPVp3KG1ULCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncyksdC5zZXR0aW5nT3ZlcnJpZGVzKSkpLEVUPVp3KG1ULCh0PT50LnNldHRpbmdPdmVycmlkZXMpKSxSVD1adyhEVCwodD0+dC50b29sdGlwU29ydCkpLEFUPVp3KERULCh0PT50Lmlnbm9yZU91dGxpZXJzKSksVFQ9WncoRFQsKHQ9PnQueEF4aXNUeXBlKSksTlQ9WncoRFQsKHQ9PnQuaGlzdG9ncmFtTW9kZSkpLHpUPVp3KERULCh0PT50LnNjYWxhclNtb290aGluZykpLElUPVp3KERULCh0PT50LnNjYWxhclBhcnRpdGlvbk5vbk1vbm90b25pY1gpKSxIVD1adyhEVCwodD0+dC5pbWFnZUJyaWdodG5lc3NJbk1pbGxpKSksRlQ9WncoRFQsKHQ9PnQuaW1hZ2VDb250cmFzdEluTWlsbGkpKSxMVD1adyhEVCwodD0+dC5pbWFnZVNob3dBY3R1YWxTaXplKSksQlQ9WncobVQsKHQ9PnQudGFnRmlsdGVyKSksVlQ9WncobVQsKCh0LGUpPT5Cb29sZWFuKHQudGFnR3JvdXBFeHBhbmRlZC5nZXQoZSkpKSksalQ9WncobVQsKHQ9PnQuc2VsZWN0VGltZUVuYWJsZWQpKSxVVD1adyhtVCwodD0+dC51c2VSYW5nZVNlbGVjdFRpbWUpKSxHVD1adyhtVCwodD0+e2NvbnN0e21pbjplLG1heDpufT10LnN0ZXBNaW5NYXg7cmV0dXJue21pbjplPT09MS8wPzA6ZSxtYXg6bj09PS0xLzA/MWUzOm59fSkpLFdUPVp3KG1ULEdULCgodCxlKT0+e3ZhciBuO3JldHVybiB0LnNlbGVjdGVkVGltZT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZWxlY3RlZFRpbWUpLHtlbmQ6bnVsbCE9PShuPXQuc2VsZWN0ZWRUaW1lLmVuZCkmJnZvaWQgMCE9PW4/bjp7c3RlcDplLm1heH19KTp7c3RhcnQ6e3N0ZXA6ZS5taW59LGVuZDp7c3RlcDplLm1heH19fSkpLFlUPVp3KG1ULFdULCgodCxlKT0+dC5zZWxlY3RUaW1lRW5hYmxlZD90LnVzZVJhbmdlU2VsZWN0VGltZT9lOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7ZW5kOm51bGx9KTpudWxsKSkscVQ9WncobVQsKHQ9PnQuZmlsdGVyZWRQbHVnaW5UeXBlcykpLFpUPVp3KG1ULCh0PT50LnByb21vdGVUaW1lU2VyaWVzKSksWFQ9WncobVQsKHQ9PnQuaXNTZXR0aW5nc1BhbmVPcGVuKSk7dmFyIEtUOyEoZnVuY3Rpb24odCl7dFt0Lk5PTkU9MF09Ik5PTkUiLHRbdC5XSEFUU19ORVc9MV09IldIQVRTX05FVyJ9KShLVHx8KEtUPXt9KSk7Y29uc3QgSlQ9S3coIm5vdGlmaWNhdGlvbiIpO1p3KEpULCh0PT50Lm5vdGlmaWNhdGlvbnMpKSxadyhKVCwodD0+e3ZhciBlO3JldHVybiBudWxsIT09KGU9dC5sYXN0UmVhZFRpbWVzdGFtcEluTXMpJiZ2b2lkIDAhPT1lP2U6LTF9KSk7Y29uc3QgUVQ9InJ1bnMiO3ZhciAkVCx0TjtmdW5jdGlvbiBlTih0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodC5zbGljZSgpLnNvcnQoKSl9ZnVuY3Rpb24gbk4odCxlLG4pe2NvbnN0IG89e30saT1bXSxhPXttYXRjaGVzOm8sbm9uTWF0Y2hlczppfTtzd2l0Y2godC5rZXkpe2Nhc2UgdE4uUlVOOmZvcihjb25zdCB0IG9mIGUpb1t0LmlkXT1bdF07YnJlYWs7Y2FzZSB0Ti5FWFBFUklNRU5UOmZvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9blt0LmlkXSxpPW9bZV18fFtdO2kucHVzaCh0KSxvW2VdPWl9YnJlYWs7Y2FzZSB0Ti5SRUdFWDppZighdC5yZWdleFN0cmluZylicmVhaztsZXQgYTt0cnl7YT1uZXcgUmVnRXhwKHQucmVnZXhTdHJpbmcpfWNhdGNoKHQpe2JyZWFrfWZvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dC5uYW1lLm1hdGNoKGEpO2lmKGUpe2NvbnN0IG49ZS5sZW5ndGg+MT9KU09OLnN0cmluZ2lmeShlLnNsaWNlKDEpKToicHNldWRvX2dyb3VwIixpPW9bbl18fFtdO2kucHVzaCh0KSxvW25dPWl9ZWxzZSBpLnB1c2godCl9fXJldHVybiBhfWZ1bmN0aW9uIG9OKHQsZSl7c3dpdGNoKHQpe2Nhc2UgdE4uUkVHRVg6cmV0dXJue2tleTp0LHJlZ2V4U3RyaW5nOm51bGwhPWU/ZToiIn07Y2FzZSB0Ti5SVU46Y2FzZSB0Ti5FWFBFUklNRU5UOmRlZmF1bHQ6cmV0dXJue2tleTp0fX19IShmdW5jdGlvbih0KXt0W3QuRVhQRVJJTUVOVF9OQU1FPTBdPSJFWFBFUklNRU5UX05BTUUiLHRbdC5IUEFSQU09MV09IkhQQVJBTSIsdFt0Lk1FVFJJQz0yXT0iTUVUUklDIix0W3QuUlVOX05BTUU9M109IlJVTl9OQU1FIn0pKCRUfHwoJFQ9e30pKSwoZnVuY3Rpb24odCl7dFt0LlJVTj0wXT0iUlVOIix0W3QuRVhQRVJJTUVOVD0xXT0iRVhQRVJJTUVOVCIsdFt0LlJFR0VYPTJdPSJSRUdFWCJ9KSh0Tnx8KHROPXt9KSk7Y29uc3QgaU49S3coUVQpLGFOPVp3KGlOLCh0PT50LmRhdGEpKSxyTj1adyhhTiwoKHQsZSk9Pnt2YXIgbjtyZXR1cm4gbnVsbCE9PShuPXQucnVuSWRUb0V4cElkW2UucnVuSWRdKSYmdm9pZCAwIT09bj9uOm51bGx9KSksc049WncoYU4sKCh0LGUpPT57dmFyIG47cmV0dXJuIG51bGwhPT0obj10LnJ1bk1ldGFkYXRhW2UucnVuSWRdKSYmdm9pZCAwIT09bj9uOm51bGx9KSksbE49WncoYU4sKCh0LGUpPT4odC5ydW5JZHNbZS5leHBlcmltZW50SWRdfHxbXSkuZmlsdGVyKChlPT5Cb29sZWFuKHQucnVuTWV0YWRhdGFbZV0pKSkubWFwKChlPT50LnJ1bk1ldGFkYXRhW2VdKSkpKSxjTj1adyhhTiwoKHQsZSk9Pnt2YXIgbjtyZXR1cm4gbnVsbCE9PShuPXQucnVuSWRzW2UuZXhwZXJpbWVudElkXSkmJnZvaWQgMCE9PW4/bjpbXX0pKSxkTj1adyhhTiwodD0+bmV3IE1hcChPYmplY3QuZW50cmllcyh0LnJ1bk1ldGFkYXRhKSkpKSxwTj1adyhhTiwoKHQsZSk9PnQucnVuc0xvYWRTdGF0ZVtlLmV4cGVyaW1lbnRJZF18fHtsYXN0TG9hZGVkVGltZUluTXM6bnVsbCxzdGF0ZTp5RS5OT1RfTE9BREVEfSkpLG1OPVp3KGFOLCgodCxlKT0+e2NvbnN0IG49ZU4oZS5leHBlcmltZW50SWRzKTtyZXR1cm4gdC5zZWxlY3Rpb25TdGF0ZS5nZXQobil8fG5ldyBNYXB9KSksdU49WncoYU4sKHQ9Pm51bGwhPT10LnVzZXJTZXRHcm91cEJ5S2V5P29OKHQudXNlclNldEdyb3VwQnlLZXksdC5jb2xvckdyb3VwUmVnZXhTdHJpbmcpOm51bGwpKSxmTj1adyh1TixhTiwoKHQsZSk9Pm51bGwhPXQ/dDplLmluaXRpYWxHcm91cEJ5KSksZ049WncoYU4sKHQ9PnQucmVnZXhGaWx0ZXIpKSxoTj1adyhpTiwodD0+dC51aSkpLGJOPVp3KGhOLCh0PT50LnBhZ2luYXRpb25PcHRpb24pKSx5Tj1adyhoTiwodD0+dC5zb3J0KSksX049WncoYU4sKHQ9PnQucnVuQ29sb3JPdmVycmlkZUZvckdyb3VwQnkpKSxDTj1adyhhTiwodD0+dC5kZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnkpKSxNTj1adyhhTiwodD0+dC5jb2xvckdyb3VwUmVnZXhTdHJpbmcpKSx2Tj1KUCgiW1NldHRpbmdzXSBSZWxvYWQgRW5hYmxlIFRvZ2dsZWQiKSx4Tj1KUCgiW1NldHRpbmdzXSBSZWxvYWQgUGVyaW9kIENoYW5nZSIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE9OPUpQKCJbU2V0dGluZ3NdIFBhZ2UgU2l6ZSBDaGFuZ2UiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxQTj0ic2V0dGluZ3MiLHdOPXtzdGF0ZTp5RS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCksc2V0dGluZ3M6e3JlbG9hZFBlcmlvZEluTXM6M2U0LHJlbG9hZEVuYWJsZWQ6ITEscGFnZVNpemU6MTIsY29sb3JQYWxldHRlOntpZDoiZGVmYXVsdCIsbmFtZToiRGVmYWx0Iixjb2xvcnM6W3tuYW1lOiJTbGF0ZSIsbGlnaHRIZXg6IiM0MjUwNjYiLGRhcmtIZXg6IiM4ZTk4YTMifSx7bmFtZToiQ3lhbiIsbGlnaHRIZXg6IiMxMmI1Y2IiLGRhcmtIZXg6IiMxMmI1Y2IifSx7bmFtZToiUGluayIsbGlnaHRIZXg6IiNlNTI1OTIiLGRhcmtIZXg6IiNlNTI1OTIifSx7bmFtZToiWWVsbG93IixsaWdodEhleDoiI2Y5YWIwMCIsZGFya0hleDoiI2Y5YWIwMCJ9LHtuYW1lOiJQdXJwbGUiLGxpZ2h0SGV4OiIjOTMzNGU2IixkYXJrSGV4OiIjOTMzNGU2In0se25hbWU6IkxpZ2h0IEdyZWVuIixsaWdodEhleDoiIzdjYjM0MiIsZGFya0hleDoiIzdjYjM0MiJ9LHtuYW1lOiJPcmFuZ2UiLGxpZ2h0SGV4OiIjZTg3MTBhIixkYXJrSGV4OiIjZTg3MTBhIn1dLGluYWN0aXZlOntuYW1lOiJHcmF5IixsaWdodEhleDoiI2UwZTBlMCIsZGFya0hleDoiIzNiM2IzYiJ9fX19LGtOPUt3KFBOKSxTTj1adyhrTiwodD0+dC5zdGF0ZSkpLEROPVp3KGtOLCh0PT50LnNldHRpbmdzLnJlbG9hZEVuYWJsZWQpKSxFTj1adyhrTiwodD0+dC5zZXR0aW5ncy5yZWxvYWRQZXJpb2RJbk1zKSksUk49Wncoa04sKHQ9PnQuc2V0dGluZ3MucGFnZVNpemUpKSxBTj1adyhrTiwodD0+dC5zZXR0aW5ncy5jb2xvclBhbGV0dGUpKTtmdW5jdGlvbiBUTih0LGUsbil7aWYoIWUpcmV0dXJuITA7bGV0IG87dHJ5e289bmV3IFJlZ0V4cChlLCJpIil9Y2F0Y2godCl7cmV0dXJuITF9Y29uc3QgaT1bdC5ydW5OYW1lXTtyZXR1cm4gbiYmaS5wdXNoKHQuZXhwZXJpbWVudEFsaWFzLGAke3QuZXhwZXJpbWVudEFsaWFzfS8ke3QucnVuTmFtZX1gKSxpLnNvbWUoKHQ9Pm8udGVzdCh0KSkpfWNvbnN0IE5OPVp3KCh0PT57Y29uc3QgZT1UUyh0KTtyZXR1cm4gZT9tTih0LHtleHBlcmltZW50SWRzOmV9KTpudWxsfSksZ04sKHQ9Pnt2YXIgZTtjb25zdCBuPW51bGwhPT0oZT1UUyh0KSkmJnZvaWQgMCE9PWU/ZTpbXSxvPXpTKHQpLGk9bmV3IE1hcDtmb3IoY29uc3QgZSBvZiBuKXtjb25zdCBuPXVBKHQse2V4cGVyaW1lbnRJZDplfSk7aWYoIW4pY29udGludWU7Y29uc3QgYT1sTih0LHtleHBlcmltZW50SWQ6ZX0pO2Zvcihjb25zdCB0IG9mIGEpaS5zZXQodC5pZCx7cnVuTmFtZTp0Lm5hbWUsZXhwZXJpbWVudE5hbWU6bi5uYW1lLGV4cGVyaW1lbnRBbGlhczpvW2VdfSl9cmV0dXJuIGl9KSxSUywoKHQsZSxuLG8pPT57aWYoIXQpcmV0dXJuIG51bGw7Y29uc3QgaT1vPT09WmsuQ09NUEFSRV9FWFBFUklNRU5ULGE9bmV3IE1hcDtmb3IoY29uc3RbbyxyXW9mIHQuZW50cmllcygpKXtjb25zdCB0PW4uZ2V0KG8pO2Euc2V0KG8sVE4odCxlLGkpJiZyKX1yZXR1cm4gYX0pKSx6Tj1adyhBTixDTixfTixKRCwoKHQsZSxuLG8pPT57Y29uc3QgaT17fTtyZXR1cm4gZS5mb3JFYWNoKCgoZSxhKT0+e2xldCByPW8/dC5pbmFjdGl2ZS5kYXJrSGV4OnQuaW5hY3RpdmUubGlnaHRIZXg7aWYobi5oYXMoYSkpcj1uLmdldChhKTtlbHNlIGlmKGU+PTApe2NvbnN0IG49dC5jb2xvcnNbZSV0LmNvbG9ycy5sZW5ndGhdO3I9bz9uLmRhcmtIZXg6bi5saWdodEhleH1pW2FdPXJ9KSksaX0pKTtjbGFzcyBJTntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5hY3Rpb25zJD10LHRoaXMuc3RvcmU9ZSx0aGlzLnJ1bnNEYXRhU291cmNlPW4sdGhpcy5sb2FkUnVuc09uUnVuVGFibGVTaG93biQ9TWsoKCgpPT50aGlzLmFjdGlvbnMkLnBpcGUoRGsoVVIpLFp0KCgoe2V4cGVyaW1lbnRJZHM6dH0pPT50aGlzLmdldEV4cGVyaW1lbnRzV2l0aExvYWRTdGF0ZSh0LCh0PT50PT09eUUuRkFJTEVEfHx0PT09eUUuTk9UX0xPQURFRCkpLnBpcGUoY2UoKHQ9PiEhdC5sZW5ndGgpKSxadCgoZT0+dGhpcy5mZXRjaEFsbFJ1bnNMaXN0KHQsZSkpKSkpKSkpLHtkaXNwYXRjaDohMX0pLHRoaXMuZXhwZXJpbWVudHNXaXRoU3RhbGVSdW5zT25Sb3V0ZUNoYW5nZSQ9dGhpcy5hY3Rpb25zJC5waXBlKERrKGRTKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChOUykpLE1lKCgoWyx0XSxbLGVdKT0+dD09PWUpKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChUUykpLGNlKCgoWyx0XSk9PiEhdCkpLEl0KCgoWyx0XSk9PnQpKSxadCgodD0+dGhpcy5nZXRFeHBlcmltZW50c1dpdGhMb2FkU3RhdGUodCwodD0+dD09PXlFLkZBSUxFRHx8dD09PXlFLk5PVF9MT0FERUQpKS5waXBlKEl0KChlPT4oe2V4cGVyaW1lbnRJZHM6dCxleHBlcmltZW50SWRzVG9CZUZldGNoZWQ6ZX0pKSkpKSkpLHRoaXMuZXhwZXJpbWVudHNXaXRoU3RhbGVSdW5zT25SZWxvYWQkPXRoaXMuYWN0aW9ucyQucGlwZShEayh4RSx2RSksVmUodGhpcy5zdG9yZS5zZWxlY3QoVFMpKSxjZSgoKFssdF0pPT4hIXQpKSxJdCgoKFssdF0pPT50KSksWnQoKHQ9PnRoaXMuZ2V0RXhwZXJpbWVudHNXaXRoTG9hZFN0YXRlKHQsKHQ9PnQhPT15RS5MT0FESU5HKSkucGlwZShJdCgoZT0+KHtleHBlcmltZW50SWRzOnQsZXhwZXJpbWVudElkc1RvQmVGZXRjaGVkOmV9KSkpKSkpKSx0aGlzLmxvYWRSdW5zT25OYXZpZ2F0aW9uT3JSZWxvYWQkPU1rKCgoKT0+cmUodGhpcy5leHBlcmltZW50c1dpdGhTdGFsZVJ1bnNPblJvdXRlQ2hhbmdlJCx0aGlzLmV4cGVyaW1lbnRzV2l0aFN0YWxlUnVuc09uUmVsb2FkJCkucGlwZShadCgoKHtleHBlcmltZW50SWRzOnQsZXhwZXJpbWVudElkc1RvQmVGZXRjaGVkOmV9KT0+dGhpcy5mZXRjaEFsbFJ1bnNMaXN0KHQsZSkpKSkpLHtkaXNwYXRjaDohMX0pfWdldFJ1bnNMaXN0TG9hZFN0YXRlKHQpe3JldHVybiB0aGlzLnN0b3JlLnNlbGVjdChwTix7ZXhwZXJpbWVudElkOnR9KS5waXBlKGJlKDEpKX1nZXRFeHBlcmltZW50c1dpdGhMb2FkU3RhdGUodCxlKXtyZXR1cm4gJHQodC5tYXAoKHQ9PnRoaXMuZ2V0UnVuc0xpc3RMb2FkU3RhdGUodCkpKSkucGlwZShJdCgobj0+dC5maWx0ZXIoKCh0LG8pPT5lKG5bb10uc3RhdGUpKSkpKSl9ZmV0Y2hBbGxSdW5zTGlzdCh0LGUpe3JldHVybiBFdCh7ZXhwZXJpbWVudElkczp0LGV4cGVyaW1lbnRJZHNUb0JlRmV0Y2hlZDplfSkucGlwZShGZSgoKCk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKE5SKHtleHBlcmltZW50SWRzOnQscmVxdWVzdGVkRXhwZXJpbWVudElkczplfSkpfSkpLFp0KCgoKT0+e2NvbnN0IG49bmV3IFNldChlKTtyZXR1cm4gJHQodC5tYXAoKHQ9Pm4uaGFzKHQpP3RoaXMuZmV0Y2hSdW5zRm9yRXhwZXJpbWVudCh0KTp0aGlzLm1heWJlV2FpdEZvclJ1bnNBbmRHZXRSdW5zKHQpKSkpfSkpLEl0KCh0PT57Y29uc3QgZT17fSxuPVtdO2Zvcihjb25zdCBvIG9mIHQpbi5wdXNoKC4uLm8ucnVucyksby5mcm9tUmVtb3RlJiYoZVtvLmV4cGVyaW1lbnRJZF09e3J1bnM6by5ydW5zLG1ldGFkYXRhOm8ubWV0YWRhdGF9KTtyZXR1cm57bmV3UnVuc0FuZE1ldGFkYXRhOmUscnVuc0ZvckFsbEV4cGVyaW1lbnRzOm59fSkpLEZlKCgoe25ld1J1bnNBbmRNZXRhZGF0YTplLHJ1bnNGb3JBbGxFeHBlcmltZW50czpufSk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKHpSKHtleHBlcmltZW50SWRzOnQsbmV3UnVuc0FuZE1ldGFkYXRhOmUscnVuc0ZvckFsbEV4cGVyaW1lbnRzOm59KSl9KSkscGUoKG49Pih0aGlzLnN0b3JlLmRpc3BhdGNoKElSKHtleHBlcmltZW50SWRzOnQscmVxdWVzdGVkRXhwZXJpbWVudElkczplfSkpLEV0KG51bGwpKSkpLEl0KCgoKT0+bnVsbCkpKX1tYXliZVdhaXRGb3JSdW5zQW5kR2V0UnVucyh0KXtyZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QocE4se2V4cGVyaW1lbnRJZDp0fSkucGlwZShjZSgodD0+dC5zdGF0ZSE9PXlFLkxPQURJTkcpKSxiZSgxKSxadCgodD0+dC5zdGF0ZT09PXlFLkZBSUxFRD9SdChuZXcgRXJyb3IoIlBlbmRpbmcgcmVxdWVzdCBmYWlsZWQiKSk6RXQodCkpKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChsTix7ZXhwZXJpbWVudElkOnR9KSksSXQoKChbLGVdKT0+KHtmcm9tUmVtb3RlOiExLGV4cGVyaW1lbnRJZDp0LHJ1bnM6ZX0pKSkpfWZldGNoUnVuc0ZvckV4cGVyaW1lbnQodCl7cmV0dXJuICR0KFt0aGlzLnJ1bnNEYXRhU291cmNlLmZldGNoUnVucyh0KSx0aGlzLnJ1bnNEYXRhU291cmNlLmZldGNoSHBhcmFtc01ldGFkYXRhKHQpXSkucGlwZShJdCgoKFtlLG5dKT0+KHtmcm9tUmVtb3RlOiEwLGV4cGVyaW1lbnRJZDp0LHJ1bnM6ZSxtZXRhZGF0YTpufSkpKSl9fWZ1bmN0aW9uIEhOKHQsZSxuKXtjb25zdCBvPU9iamVjdC5rZXlzKHQpLGk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCksZSkse3ByaXZhdGVSb3V0ZUNvbnRleHRlZFN0YXRlOnt9fSk7cmV0dXJue2luaXRpYWxTdGF0ZTppLHJlZHVjZXJzOnlrKGksYmsoZFMsKChlLHtiZWZvcmU6aSxhZnRlcjphfSk9Pntjb25zdCByPVFrKGEucm91dGVLaW5kLGEucGFyYW1zKSxzPWk/UWsoaS5yb3V0ZUtpbmQsaS5wYXJhbXMpOm51bGw7aWYocz09PXIpcmV0dXJuIGU7bGV0IGw9T2JqZWN0LmFzc2lnbih7fSxlLnByaXZhdGVSb3V0ZUNvbnRleHRlZFN0YXRlKTtpZihzKXtjb25zdCB0PXt9O2Zvcihjb25zdCBuIG9mIG8pdFtuXT1lW25dO2w9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGwpLHtbc106dH0pfWxldCBjPWUucHJpdmF0ZVJvdXRlQ29udGV4dGVkU3RhdGUmJmUucHJpdmF0ZVJvdXRlQ29udGV4dGVkU3RhdGVbcl0/ZS5wcml2YXRlUm91dGVDb250ZXh0ZWRTdGF0ZVtyXTpudWxsO3MmJm51bGw9PT1jJiYoYz10KTtjb25zdCBkPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLGMpLHtwcml2YXRlUm91dGVDb250ZXh0ZWRTdGF0ZTpsfSk7cmV0dXJuIG4/bihkLGEpOmR9KSkpfX12YXIgRk4sTE47ZnVuY3Rpb24gQk4oLi4udCl7cmV0dXJuKGUsbik9PntsZXQgbz1lO2Zvcihjb25zdCBlIG9mIHQpbz1lKG8sbik7cmV0dXJuIG99fUlOLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJTikodnIoU2spLHZyKEl3KSx2cihYUikpfSxJTi7JtXByb3Y9TW4oe3Rva2VuOklOLGZhY3Rvcnk6SU4uybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElOLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTa30se3R5cGU6SXd9LHt0eXBlOlhSfV19KSxudWxsKSwoZnVuY3Rpb24odCl7dC5BU0M9ImFzYyIsdC5ERVNDPSJkZXNjIix0LlVOU0VUPSIifSkoRk58fChGTj17fSkpLChmdW5jdGlvbih0KXt0LkVYUEVSSU1FTlRfSUQ9ImlkIix0LlVTRVI9InVzZXIiLHQuQkVGT1JFPSJiZWZvcmUiLHQuQUZURVI9ImFmdGVyIix0LlJFR0VYPSJyZWdleCJ9KShMTnx8KExOPXt9KSk7Y29uc3R7aW5pdGlhbFN0YXRlOlZOLHJlZHVjZXJzOmpOfT1ITih7cnVuQ29sb3JPdmVycmlkZUZvckdyb3VwQnk6bmV3IE1hcCxkZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnk6bmV3IE1hcCxncm91cEtleVRvQ29sb3JJZDpuZXcgTWFwLGluaXRpYWxHcm91cEJ5OntrZXk6dE4uUlVOfSx1c2VyU2V0R3JvdXBCeUtleTpudWxsLGNvbG9yR3JvdXBSZWdleFN0cmluZzoiIixyZWdleEZpbHRlcjoiIn0se3J1bklkczp7fSxydW5JZFRvRXhwSWQ6e30scnVuTWV0YWRhdGE6e30scnVuc0xvYWRTdGF0ZTp7fSxzZWxlY3Rpb25TdGF0ZTpuZXcgTWFwfSwoKHQsZSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7aW5pdGlhbEdyb3VwQnk6e2tleTplLnJvdXRlS2luZD09PVprLkNPTVBBUkVfRVhQRVJJTUVOVD90Ti5FWFBFUklNRU5UOnROLlJVTn19KSkpLFVOPUJOKHlrKFZOLGJrKHJTLCgodCx7cm91dGVLaW5kOmUscGFydGlhbFN0YXRlOm59KT0+e3ZhciBvO2lmKGUhPT1aay5DT01QQVJFX0VYUEVSSU1FTlQmJmUhPT1aay5FWFBFUklNRU5UKXJldHVybiB0O2NvbnN0IGk9bi5ydW5zLmdyb3VwQnk7aWYoIWkpcmV0dXJuIHQ7Y29uc3QgYT1pLmtleT09PXROLlJFR0VYP2kucmVnZXhTdHJpbmc6dC5jb2xvckdyb3VwUmVnZXhTdHJpbmc7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y29sb3JHcm91cFJlZ2V4U3RyaW5nOmEsdXNlclNldEdyb3VwQnlLZXk6bnVsbCE9PShvPWkua2V5KSYmdm9pZCAwIT09bz9vOm51bGx9KX0pKSxiayhOUiwoKHQsZSk9Pntjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sdC5ydW5zTG9hZFN0YXRlKTtmb3IoY29uc3QgdCBvZiBlLnJlcXVlc3RlZEV4cGVyaW1lbnRJZHMpblt0XT1uW3RdP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuW3RdKSx7c3RhdGU6eUUuTE9BRElOR30pOntsYXN0TG9hZGVkVGltZUluTXM6bnVsbCxzdGF0ZTp5RS5MT0FESU5HfTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtydW5zTG9hZFN0YXRlOm59KX0pKSxiayh6UiwoKHQsZSk9Pnt2YXIgbjtjb25zdCBvPU9iamVjdC5hc3NpZ24oe30sdC5ydW5JZHMpLGk9T2JqZWN0LmFzc2lnbih7fSx0LnJ1bk1ldGFkYXRhKSxhPU9iamVjdC5hc3NpZ24oe30sdC5ydW5JZFRvRXhwSWQpLHI9T2JqZWN0LmFzc2lnbih7fSx0LnJ1bnNMb2FkU3RhdGUpLHM9bmV3IE1hcCh0LnNlbGVjdGlvblN0YXRlKTtmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhlLm5ld1J1bnNBbmRNZXRhZGF0YSkpe2NvbnN0e3J1bnM6bixtZXRhZGF0YTpzfT1lLm5ld1J1bnNBbmRNZXRhZGF0YVt0XTtvW3RdPW4ubWFwKCgoe2lkOnR9KT0+dCkpLHJbdF09T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHJbdF0pLHtsYXN0TG9hZGVkVGltZUluTXM6RGF0ZS5ub3coKSxzdGF0ZTp5RS5MT0FERUR9KTtmb3IoY29uc3QgZSBvZiBuKXtjb25zdCBuPXMucnVuVG9IcGFyYW1zQW5kTWV0cmljc1tlLmlkXTtpW2UuaWRdPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7aHBhcmFtczpuP24uaHBhcmFtczpudWxsLG1ldHJpY3M6bj9uLm1ldHJpY3M6bnVsbH0pLGFbZS5pZF09dH19Y29uc3QgbD1lTihlLmV4cGVyaW1lbnRJZHMpLGM9bmV3IE1hcChudWxsIT09KG49cy5nZXQobCkpJiZ2b2lkIDAhPT1uP246W10pLGQ9ZS5ydW5zRm9yQWxsRXhwZXJpbWVudHMubGVuZ3RoPD01MDA7Zm9yKGNvbnN0IHQgb2YgZS5ydW5zRm9yQWxsRXhwZXJpbWVudHMpYy5oYXModC5pZCl8fGMuc2V0KHQuaWQsZCk7cmV0dXJuIHMuc2V0KGwsYyksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtydW5JZHM6byxydW5JZFRvRXhwSWQ6YSxydW5NZXRhZGF0YTppLHJ1bnNMb2FkU3RhdGU6cixzZWxlY3Rpb25TdGF0ZTpzfSl9KSksYmsoSVIsKCh0LGUpPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LHQucnVuc0xvYWRTdGF0ZSk7Zm9yKGNvbnN0IHQgb2YgZS5yZXF1ZXN0ZWRFeHBlcmltZW50SWRzKW5bdF09blt0XT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sblt0XSkse3N0YXRlOnlFLkZBSUxFRH0pOntsYXN0TG9hZGVkVGltZUluTXM6bnVsbCxzdGF0ZTp5RS5GQUlMRUR9O3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3J1bnNMb2FkU3RhdGU6bn0pfSkpLGJrKEhSLCgodCx7ZXhwZXJpbWVudElkczplLHJ1bklkOm59KT0+e3ZhciBvO2NvbnN0IGk9ZU4oZSksYT1uZXcgTWFwKHQuc2VsZWN0aW9uU3RhdGUpLHI9bmV3IE1hcChudWxsIT09KG89YS5nZXQoaSkpJiZ2b2lkIDAhPT1vP286W10pO3JldHVybiByLnNldChuLCFCb29sZWFuKHIuZ2V0KG4pKSksYS5zZXQoaSxyKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NlbGVjdGlvblN0YXRlOmF9KX0pKSxiayhGUiwoKHQse2V4cGVyaW1lbnRJZHM6ZSxydW5JZHM6bn0pPT57dmFyIG87Y29uc3QgaT1lTihlKSxhPW5ldyBNYXAodC5zZWxlY3Rpb25TdGF0ZSkscj1uZXcgTWFwKG51bGwhPT0obz1hLmdldChpKSkmJnZvaWQgMCE9PW8/bzpbXSkscz0hbi5ldmVyeSgodD0+Qm9vbGVhbihyLmdldCh0KSkpKTtmb3IoY29uc3QgdCBvZiBuKXIuc2V0KHQscyk7cmV0dXJuIGEuc2V0KGksciksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZWxlY3Rpb25TdGF0ZTphfSl9KSksYmsoelIsKCh0LHtydW5zRm9yQWxsRXhwZXJpbWVudHM6ZX0pPT57Y29uc3Qgbj1uZXcgTWFwKHQuZ3JvdXBLZXlUb0NvbG9ySWQpLG89bmV3IE1hcCh0LmRlZmF1bHRSdW5Db2xvcklkRm9yR3JvdXBCeSk7bGV0IGk9dC5pbml0aWFsR3JvdXBCeTtudWxsIT09dC51c2VyU2V0R3JvdXBCeUtleSYmKGk9b04odC51c2VyU2V0R3JvdXBCeUtleSx0LmNvbG9yR3JvdXBSZWdleFN0cmluZykpO2NvbnN0IGE9bk4oaSxlLHQucnVuSWRUb0V4cElkKTtPYmplY3QuZW50cmllcyhhLm1hdGNoZXMpLmZvckVhY2goKChbdCxlXSk9Pnt2YXIgaTtjb25zdCBhPW51bGwhPT0oaT1uLmdldCh0KSkmJnZvaWQgMCE9PWk/aTpuLnNpemU7bi5zZXQodCxhKTtmb3IoY29uc3QgdCBvZiBlKW8uc2V0KHQuaWQsYSl9KSk7Zm9yKGNvbnN0IHQgb2YgYS5ub25NYXRjaGVzKW8uc2V0KHQuaWQsLTEpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2RlZmF1bHRSdW5Db2xvcklkRm9yR3JvdXBCeTpvLGdyb3VwS2V5VG9Db2xvcklkOm59KX0pKSxiayhHUiwoKHQse2V4cGVyaW1lbnRJZHM6ZSxncm91cEJ5Om59KT0+e2NvbnN0IG89bmV3IE1hcCxpPW5ldyBNYXAodC5kZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnkpLGE9bk4obixlLmZsYXRNYXAoKGU9PnQucnVuSWRzW2VdKSkubWFwKChlPT50LnJ1bk1ldGFkYXRhW2VdKSksdC5ydW5JZFRvRXhwSWQpO09iamVjdC5lbnRyaWVzKGEubWF0Y2hlcykuZm9yRWFjaCgoKFt0LGVdKT0+e3ZhciBuO2NvbnN0IGE9bnVsbCE9PShuPW8uZ2V0KHQpKSYmdm9pZCAwIT09bj9uOm8uc2l6ZTtvLnNldCh0LGEpO2Zvcihjb25zdCB0IG9mIGUpaS5zZXQodC5pZCxhKX0pKTtmb3IoY29uc3QgdCBvZiBhLm5vbk1hdGNoZXMpaS5zZXQodC5pZCwtMSk7Y29uc3Qgcj1uLmtleT09PXROLlJFR0VYP24ucmVnZXhTdHJpbmc6dC5jb2xvckdyb3VwUmVnZXhTdHJpbmc7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y29sb3JHcm91cFJlZ2V4U3RyaW5nOnIsdXNlclNldEdyb3VwQnlLZXk6bi5rZXksZGVmYXVsdFJ1bkNvbG9ySWRGb3JHcm91cEJ5OmksZ3JvdXBLZXlUb0NvbG9ySWQ6byxydW5Db2xvck92ZXJyaWRlRm9yR3JvdXBCeTpuZXcgTWFwfSl9KSksYmsoalIsKCh0LHtydW5JZDplLG5ld0NvbG9yOm59KT0+e2NvbnN0IG89bmV3IE1hcCh0LnJ1bkNvbG9yT3ZlcnJpZGVGb3JHcm91cEJ5KTtyZXR1cm4gby5zZXQoZSxuKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3J1bkNvbG9yT3ZlcnJpZGVGb3JHcm91cEJ5Om99KX0pKSxiayhWUiwoKHQsZSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cmVnZXhGaWx0ZXI6ZS5yZWdleFN0cmluZ30pKSkpLGpOKSxHTj17a2V5Om51bGwsZGlyZWN0aW9uOkZOLlVOU0VUfSx7aW5pdGlhbFN0YXRlOldOLHJlZHVjZXJzOllOfT1ITih7cGFnaW5hdGlvbk9wdGlvbjp7cGFnZUluZGV4OjAscGFnZVNpemU6MTB9LHNvcnQ6R059LHt9KSxxTj1CTih5ayhXTixiayhMUiwoKHQse3BhZ2VTaXplOmUscGFnZUluZGV4Om59KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwYWdpbmF0aW9uT3B0aW9uOntwYWdlU2l6ZTplLHBhZ2VJbmRleDpufX0pKSksYmsoVlIsKCh0LGUpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BhZ2luYXRpb25PcHRpb246T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucGFnaW5hdGlvbk9wdGlvbikse3BhZ2VJbmRleDowfSl9KSkpLGJrKEJSLCgodCxlKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzb3J0OntrZXk6ZS5rZXksZGlyZWN0aW9uOmUuZGlyZWN0aW9ufX0pKSkpLFlOKTtmdW5jdGlvbiBaTih0LGUpe3JldHVybiB4dyh7ZGF0YTpVTix1aTpxTn0pKHQsZSl9ZnVuY3Rpb24gWE4oKXtyZXR1cm5be2FjdGlvbkNyZWF0b3I6SVIsYWxlcnRGcm9tQWN0aW9uOigpPT4oe2xvY2FsaXplZE1lc3NhZ2U6IkZhaWxlZCB0byBmZXRjaCBydW5zIn0pfV19Y2xhc3MgS057fXZhciBKTjtLTi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8S04pfSxLTi7JtW1vZD1hbyh7dHlwZTpLTn0pLEtOLsm1aW5qPXZuKHtpbXBvcnRzOltbZGsuZm9yRmVhdHVyZShRVCxaTiksV2suZm9yRmVhdHVyZShbSU5dKSxsQSxBUi5yZWdpc3RlckFsZXJ0QWN0aW9ucyhYTiksYUFdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoS04sW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltkay5mb3JGZWF0dXJlKFFULFpOKSxXay5mb3JGZWF0dXJlKFtJTl0pLGxBLEFSLnJlZ2lzdGVyQWxlcnRBY3Rpb25zKFhOKSxhQV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhLTix7aW1wb3J0czpbY2ssR2ssbEEsQVIsYUFdfSksKGZ1bmN0aW9uKHQpe3QuUlVOU19DSEFOR0VEPSJleHBlcmltZW50YWwuUnVuc0NoYW5nZWQiLHQuR0VUX1JVTlM9ImV4cGVyaW1lbnRhbC5HZXRSdW5zIix0LkdFVF9VUkxfREFUQT0iZXhwZXJpbWVudGFsLkdldFVSTFBsdWdpbkRhdGEiLHQuREFUQV9SRUxPQURFRD0iZXhwZXJpbWVudGFsLkRhdGFSZWxvYWRlZCJ9KShKTnx8KEpOPXt9KSk7Y2xhc3MgUU57Y29uc3RydWN0b3IodCl7dGhpcy5wb3J0PXQsdGhpcy5pZD0wLHRoaXMucmVzcG9uc2VXYWl0cz1uZXcgTWFwLHRoaXMubGlzdGVuZXJzPW5ldyBNYXAsdGhpcy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh0PT50aGlzLm9uTWVzc2FnZSh0KSkpfWxpc3Rlbih0LGUpe3RoaXMubGlzdGVuZXJzLnNldCh0LGUpfXVubGlzdGVuKHQpe3RoaXMubGlzdGVuZXJzLmRlbGV0ZSh0KX1vbk1lc3NhZ2UodCl7cmV0dXJuIGdBKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT1KU09OLnBhcnNlKHQuZGF0YSksbj1lLnR5cGUsbz1lLmlkLGk9ZS5wYXlsb2FkLGE9ZS5lcnJvcjtpZihlLmlzUmVwbHkpe2lmKCF0aGlzLnJlc3BvbnNlV2FpdHMuaGFzKG8pKXJldHVybjtjb25zdHtyZXNvbHZlOnQscmVqZWN0OmV9PXRoaXMucmVzcG9uc2VXYWl0cy5nZXQobyk7cmV0dXJuIHRoaXMucmVzcG9uc2VXYWl0cy5kZWxldGUobyksdm9pZChhP2UobmV3IEVycm9yKGEpKTp0KGkpKX1sZXQgcj1udWxsLHM9bnVsbDtpZih0aGlzLmxpc3RlbmVycy5oYXMobikpe2NvbnN0IHQ9dGhpcy5saXN0ZW5lcnMuZ2V0KG4pO3RyeXtyPXlpZWxkIHQoaSl9Y2F0Y2godCl7cz10fX10aGlzLnBvc3RNZXNzYWdlKHt0eXBlOm4saWQ6byxwYXlsb2FkOnIsZXJyb3I6cyxpc1JlcGx5OiEwfSl9KSl9cG9zdE1lc3NhZ2UodCl7dGhpcy5wb3J0LnBvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHQpKX1zZW5kTWVzc2FnZSh0LGUpe2NvbnN0IG49dGhpcy5pZCsrO3JldHVybiB0aGlzLnBvc3RNZXNzYWdlKHt0eXBlOnQsaWQ6bixwYXlsb2FkOmUsZXJyb3I6bnVsbCxpc1JlcGx5OiExfSksbmV3IFByb21pc2UoKCh0LGUpPT57dGhpcy5yZXNwb25zZVdhaXRzLnNldChuLHtyZXNvbHZlOnQscmVqZWN0OmV9KX0pKX19Y29uc3QgJE49bmV3IFdlYWtNYXAsdHo9bmV3IFNldCxlej1uZXcgTWFwLG56PW5ldyBNYXA7ZnVuY3Rpb24gb3oodCxlKXtyZXR1cm4gbj0+e2NvbnN0IG89bnouZ2V0KGUpLGk9JE4uZ2V0KG8pfHxudWxsO3JldHVybiB0KGksbil9fXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwodD0+e2lmKCJleHBlcmltZW50YWwuYm9vdHN0cmFwIiE9PXQuZGF0YSlyZXR1cm47Y29uc3QgZT10LnBvcnRzWzBdO2lmKCFlKXJldHVybjtjb25zdCBuPXQuc291cmNlP3Quc291cmNlLmZyYW1lRWxlbWVudDpudWxsO24mJihmdW5jdGlvbiBvKHQsZSl7Y29uc3Qgbj1uZXcgUU4odCk7dHouYWRkKG4pLG56LnNldChuLGUpLHQuc3RhcnQoKTtmb3IoY29uc3RbdCxlXW9mIGV6KXtjb25zdCBvPW96KGUsbik7bi5saXN0ZW4odCxvKX19KShlLG4pfSkpO2NsYXNzIGl6e2Jyb2FkY2FzdCh0LGUpe3JldHVybihmdW5jdGlvbiBuKHQsZSl7Zm9yKGNvbnN0IHQgb2YgdHopbnouZ2V0KHQpLmlzQ29ubmVjdGVkfHwodHouZGVsZXRlKHQpLG56LmRlbGV0ZSh0KSk7Y29uc3Qgbj1bLi4udHpdLm1hcCgobj0+bi5zZW5kTWVzc2FnZSh0LGUpKSk7cmV0dXJuIFByb21pc2UuYWxsKG4pfSkodCxlKX1saXN0ZW4odCxlKXshKGZ1bmN0aW9uIG4odCxlKXtlei5zZXQodCxlKTtmb3IoY29uc3QgbiBvZiB0eil7Y29uc3Qgbz1veihlLG4pO24ubGlzdGVuKHQsbyl9fSkodCxlKX11bmxpc3Rlbih0KXshKGZ1bmN0aW9uIGUodCl7ZXouZGVsZXRlKHQpO2Zvcihjb25zdCBlIG9mIHR6KWUudW5saXN0ZW4odCl9KSh0KX19aXouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGl6KX0saXouybVwcm92PU1uKHt0b2tlbjppeixmYWN0b3J5Oml6Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChpeixbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIGF6e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5pcGM9dCx0aGlzLnN0b3JlPWV9aW5pdCgpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGYtc3RvcmFnZSIpO3RoaXMuaXBjLmxpc3RlbihKTi5HRVRfVVJMX0RBVEEsKGU9PntpZighZSlyZXR1cm47Y29uc3Qgbj1gcC4ke2UucGx1Z2luTmFtZX0uYCxvPXt9LGk9dC50Zl9zdG9yYWdlLmdldFVybEhhc2hEaWN0KCk7Zm9yKGxldCB0IGluIGkpdC5zdGFydHNXaXRoKG4pJiYob1t0LnN1YnN0cmluZyhuLmxlbmd0aCldPWlbdF0pO3JldHVybiBvfSkpLHRoaXMuc3RvcmUuc2VsZWN0KENSKS5waXBlKGNlKCh0PT5udWxsIT09dCkpLE1lKCkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLmlwYy5icm9hZGNhc3QoSk4uREFUQV9SRUxPQURFRCx2b2lkIDApfSkpfX1hei7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YXopKHZyKGl6KSx2cihJdykpfSxhei7JtXByb3Y9TW4oe3Rva2VuOmF6LGZhY3Rvcnk6YXouybVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGF6LFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppen0se3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIHJ6e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5pcGM9dCx0aGlzLnN0b3JlPWV9aW5pdCgpe2NvbnN0IHQ9dGhpcy5zdG9yZS5zZWxlY3QoVFMpLnBpcGUoWnQoKHQ9PnQ/V3QodC5tYXAoKHQ9PnRoaXMuc3RvcmUuc2VsZWN0KGxOLHtleHBlcmltZW50SWQ6dH0pKSkpLnBpcGUoSXQoKHQ9PnQuZmxhdCgpKSksTWUoKCh0LGUpPT50Lmxlbmd0aD09PWUubGVuZ3RoJiZ0LmV2ZXJ5KCgodCxuKT0+ZVtuXS5pZD09PXQuaWQpKSkpLEl0KCh0PT50Lm1hcCgoKHtuYW1lOnR9KT0+dCkpKSkpOkV0KFtdKSkpKTt0LnN1YnNjcmliZSgodD0+e3RoaXMuaXBjLmJyb2FkY2FzdChKTi5SVU5TX0NIQU5HRUQsdCl9KSksdGhpcy5pcGMubGlzdGVuKEpOLkdFVF9SVU5TLCgoKT0+dC5waXBlKGJlKDEpKS50b1Byb21pc2UoKSkpfX1yei7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cnopKHZyKGl6KSx2cihJdykpfSxyei7JtXByb3Y9TW4oe3Rva2VuOnJ6LGZhY3Rvcnk6cnouybVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHJ6LFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppen0se3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIHN6e2NvbnN0cnVjdG9yKHQsZSl7ZS5pbml0KCksdC5pbml0KCl9cmVnaXN0ZXJQbHVnaW5JZnJhbWUodCxlKXshKGZ1bmN0aW9uIG4odCxlKXskTi5zZXQodCx7cGx1Z2luTmFtZTplfSl9KSh0LGUpfX1zei7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8c3opKHZyKHJ6KSx2cihheikpfSxzei7JtW1vZD1hbyh7dHlwZTpzen0pLHN6Lsm1aW5qPXZuKHtwcm92aWRlcnM6W2l6LGF6LHJ6XSxpbXBvcnRzOltbQlMsRVIsS05dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoc3osW3t0eXBlOkF5LGFyZ3M6W3twcm92aWRlcnM6W2l6LGF6LHJ6XSxpbXBvcnRzOltCUyxFUixLTl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpyen0se3R5cGU6YXp9XX0pLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oc3ose2ltcG9ydHM6W0JTLEVSLEtOXX0pO2NvbnN0IGx6PUpQKCJbQWxlcnRdIEFsZXJ0IFJlcG9ydGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSk7Y2xhc3MgY3p7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5hbGVydEFjdGlvbk1vZHVsZT1uLHRoaXMucmVwb3J0UmVnaXN0ZXJlZEFjdGlvbkFsZXJ0cyQ9TWsoKCgpPT50aGlzLmFjdGlvbnMkLnBpcGUoRmUoKHQ9Pntjb25zdCBlPXRoaXMuYWxlcnRBY3Rpb25Nb2R1bGUuZ2V0QWxlcnRGcm9tQWN0aW9uKHQpO2UmJnRoaXMuc3RvcmUuZGlzcGF0Y2gobHooZSkpfSkpKSkse2Rpc3BhdGNoOiExfSl9fWN6Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjeikodnIoU2spLHZyKEl3KSx2cihBUikpfSxjei7JtXByb3Y9TW4oe3Rva2VuOmN6LGZhY3Rvcnk6Y3ouybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGN6LFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTa30se3R5cGU6SXd9LHt0eXBlOkFSfV19KSxudWxsKTtjb25zdCBkej15ayh7bGF0ZXN0QWxlcnQ6bnVsbH0sYmsobHosKCh0LHtsb2NhbGl6ZWRNZXNzYWdlOmUsZm9sbG93dXBBY3Rpb246bn0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2xhdGVzdEFsZXJ0Ontsb2NhbGl6ZWRNZXNzYWdlOmUsZm9sbG93dXBBY3Rpb246bixjcmVhdGVkOkRhdGUubm93KCl9fSkpKSk7ZnVuY3Rpb24gcHoodCxlKXtyZXR1cm4gZHoodCxlKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgbXo9MTMsdXo9MjcsZno9MzIsZ3o9MzgsaHo9NDA7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBieih0LC4uLmUpe3JldHVybiBlLmxlbmd0aD9lLnNvbWUoKGU9PnRbZV0pKTp0LmFsdEtleXx8dC5zaGlmdEtleXx8dC5jdHJsS2V5fHx0Lm1ldGFLZXl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHl6KHQpe3JldHVybiBudWxsIT10JiYiZmFsc2UiIT1gJHt0fWB9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIF96KHQsZT0wKXtyZXR1cm4gQ3oodCk/TnVtYmVyKHQpOmV9ZnVuY3Rpb24gQ3oodCl7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQodCkpJiYhaXNOYU4oTnVtYmVyKHQpKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gTXoodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDpbdF19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHZ6KHQpe3JldHVybiBudWxsPT10PyIiOiJzdHJpbmciPT10eXBlb2YgdD90OmAke3R9cHhgfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB4eih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGhnP3QubmF0aXZlRWxlbWVudDp0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgT3osUHo7dHJ5e096PSJ1bmRlZmluZWQiIT10eXBlb2YgSW50bCYmSW50bC52OEJyZWFrSXRlcmF0b3J9Y2F0Y2goakN0KXtPej0hMX1jbGFzcyB3entjb25zdHJ1Y3Rvcih0KXt0aGlzLl9wbGF0Zm9ybUlkPXQsdGhpcy5pc0Jyb3dzZXI9dGhpcy5fcGxhdGZvcm1JZD8oZnVuY3Rpb24gZSh0KXtyZXR1cm4iYnJvd3NlciI9PT10fSkodGhpcy5fcGxhdGZvcm1JZCk6Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmISFkb2N1bWVudCx0aGlzLkVER0U9dGhpcy5pc0Jyb3dzZXImJi8oZWRnZSkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHRoaXMuVFJJREVOVD10aGlzLmlzQnJvd3NlciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx0aGlzLkJMSU5LPXRoaXMuaXNCcm93c2VyJiYhKCF3aW5kb3cuY2hyb21lJiYhT3opJiYidW5kZWZpbmVkIiE9dHlwZW9mIENTUyYmIXRoaXMuRURHRSYmIXRoaXMuVFJJREVOVCx0aGlzLldFQktJVD10aGlzLmlzQnJvd3NlciYmL0FwcGxlV2ViS2l0L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXRoaXMuQkxJTksmJiF0aGlzLkVER0UmJiF0aGlzLlRSSURFTlQsdGhpcy5JT1M9dGhpcy5pc0Jyb3dzZXImJi9pUGFkfGlQaG9uZXxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhKCJNU1N0cmVhbSJpbiB3aW5kb3cpLHRoaXMuRklSRUZPWD10aGlzLmlzQnJvd3NlciYmLyhmaXJlZm94fG1pbmVmaWVsZCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHRoaXMuQU5EUk9JRD10aGlzLmlzQnJvd3NlciYmL2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhdGhpcy5UUklERU5ULHRoaXMuU0FGQVJJPXRoaXMuaXNCcm93c2VyJiYvc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmdGhpcy5XRUJLSVR9fXd6Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx3eikodnIoankpKX0sd3ouybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IHd6KHZyKGp5KSl9LHRva2VuOnd6LHByb3ZpZGVkSW46InJvb3QifSksd3ouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpPYmplY3QsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbanldfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHd6LFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpPYmplY3QsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbanldfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3Mga3p7fWt6Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxreil9LGt6Lsm1bW9kPWFvKHt0eXBlOmt6fSksa3ouybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoa3osW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLG51bGwsbnVsbCk7Y29uc3QgU3o9WyJjb2xvciIsImJ1dHRvbiIsImNoZWNrYm94IiwiZGF0ZSIsImRhdGV0aW1lLWxvY2FsIiwiZW1haWwiLCJmaWxlIiwiaGlkZGVuIiwiaW1hZ2UiLCJtb250aCIsIm51bWJlciIsInBhc3N3b3JkIiwicmFkaW8iLCJyYW5nZSIsInJlc2V0Iiwic2VhcmNoIiwic3VibWl0IiwidGVsIiwidGV4dCIsInRpbWUiLCJ1cmwiLCJ3ZWVrIl07ZnVuY3Rpb24gRHooKXtpZihQeilyZXR1cm4gUHo7aWYoIm9iamVjdCIhPXR5cGVvZiBkb2N1bWVudHx8IWRvY3VtZW50KXJldHVybiBQej1uZXcgU2V0KFN6KSxQejtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3JldHVybiBQej1uZXcgU2V0KFN6LmZpbHRlcigoZT0+KHQuc2V0QXR0cmlidXRlKCJ0eXBlIixlKSx0LnR5cGU9PT1lKSkpKSxQen0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IEV6LFJ6LEF6LFR6O2Z1bmN0aW9uIE56KHQpe3JldHVybihmdW5jdGlvbiBlKCl7aWYobnVsbD09RXomJiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXRyeXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6KCk9PkV6PSEwfSkpfWZpbmFsbHl7RXo9RXp8fCExfXJldHVybiBFen0pKCk/dDohIXQuY2FwdHVyZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24genooKXtpZihudWxsPT1Beil7aWYoIm9iamVjdCIhPXR5cGVvZiBkb2N1bWVudHx8IWRvY3VtZW50fHwiZnVuY3Rpb24iIT10eXBlb2YgRWxlbWVudHx8IUVsZW1lbnQpcmV0dXJuIEF6PSExLEF6O2lmKCJzY3JvbGxCZWhhdmlvciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUpQXo9ITA7ZWxzZXtjb25zdCB0PUVsZW1lbnQucHJvdG90eXBlLnNjcm9sbFRvO0F6PSEhdCYmIS9ce1xzKlxbbmF0aXZlIGNvZGVcXVxzKlx9Ly50ZXN0KHQudG9TdHJpbmcoKSl9fXJldHVybiBBen1mdW5jdGlvbiBJeigpe2lmKCJvYmplY3QiIT10eXBlb2YgZG9jdW1lbnR8fCFkb2N1bWVudClyZXR1cm4gMDtpZihudWxsPT1Seil7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPXQuc3R5bGU7dC5kaXI9InJ0bCIsZS53aWR0aD0iMXB4IixlLm92ZXJmbG93PSJhdXRvIixlLnZpc2liaWxpdHk9ImhpZGRlbiIsZS5wb2ludGVyRXZlbnRzPSJub25lIixlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7Y29uc3Qgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxvPW4uc3R5bGU7by53aWR0aD0iMnB4IixvLmhlaWdodD0iMXB4Iix0LmFwcGVuZENoaWxkKG4pLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksUno9MCwwPT09dC5zY3JvbGxMZWZ0JiYodC5zY3JvbGxMZWZ0PTEsUno9MD09PXQuc2Nyb2xsTGVmdD8xOjIpLHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX1yZXR1cm4gUnp9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEh6KHQpe2lmKChmdW5jdGlvbiBlKCl7aWYobnVsbD09VHope2NvbnN0IHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5oZWFkOm51bGw7VHo9ISghdHx8IXQuY3JlYXRlU2hhZG93Um9vdCYmIXQuYXR0YWNoU2hhZG93KX1yZXR1cm4gVHp9KSgpKXtjb25zdCBlPXQuZ2V0Um9vdE5vZGU/dC5nZXRSb290Tm9kZSgpOm51bGw7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTaGFkb3dSb290JiZTaGFkb3dSb290JiZlIGluc3RhbmNlb2YgU2hhZG93Um9vdClyZXR1cm4gZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBGeigpe2xldCB0PSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50P2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ6bnVsbDtmb3IoO3QmJnQuc2hhZG93Um9vdDspe2NvbnN0IGU9dC5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQ7aWYoZT09PXQpYnJlYWs7dD1lfXJldHVybiB0fWZ1bmN0aW9uIEx6KHQpe3JldHVybiB0LmNvbXBvc2VkUGF0aD90LmNvbXBvc2VkUGF0aCgpWzBdOnQudGFyZ2V0fWNsYXNzIEJ6e2NyZWF0ZSh0KXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXI/bnVsbDpuZXcgTXV0YXRpb25PYnNlcnZlcih0KX19QnouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJ6KX0sQnouybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IEJ6fSx0b2tlbjpCeixwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQnosW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sbnVsbCxudWxsKTtjbGFzcyBWentjb25zdHJ1Y3Rvcih0KXt0aGlzLl9tdXRhdGlvbk9ic2VydmVyRmFjdG9yeT10LHRoaXMuX29ic2VydmVkRWxlbWVudHM9bmV3IE1hcH1uZ09uRGVzdHJveSgpe3RoaXMuX29ic2VydmVkRWxlbWVudHMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX2NsZWFudXBPYnNlcnZlcihlKSkpfW9ic2VydmUodCl7Y29uc3QgZT14eih0KTtyZXR1cm4gbmV3IEQoKHQ9Pntjb25zdCBuPXRoaXMuX29ic2VydmVFbGVtZW50KGUpLnN1YnNjcmliZSh0KTtyZXR1cm4oKT0+e24udW5zdWJzY3JpYmUoKSx0aGlzLl91bm9ic2VydmVFbGVtZW50KGUpfX0pKX1fb2JzZXJ2ZUVsZW1lbnQodCl7aWYodGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5oYXModCkpdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQodCkuY291bnQrKztlbHNle2NvbnN0IGU9bmV3IEksbj10aGlzLl9tdXRhdGlvbk9ic2VydmVyRmFjdG9yeS5jcmVhdGUoKHQ9PmUubmV4dCh0KSkpO24mJm4ub2JzZXJ2ZSh0LHtjaGFyYWN0ZXJEYXRhOiEwLGNoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSksdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5zZXQodCx7b2JzZXJ2ZXI6bixzdHJlYW06ZSxjb3VudDoxfSl9cmV0dXJuIHRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KHQpLnN0cmVhbX1fdW5vYnNlcnZlRWxlbWVudCh0KXt0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmhhcyh0KSYmKHRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KHQpLmNvdW50LS0sdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQodCkuY291bnR8fHRoaXMuX2NsZWFudXBPYnNlcnZlcih0KSl9X2NsZWFudXBPYnNlcnZlcih0KXtpZih0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmhhcyh0KSl7Y29uc3R7b2JzZXJ2ZXI6ZSxzdHJlYW06bn09dGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQodCk7ZSYmZS5kaXNjb25uZWN0KCksbi5jb21wbGV0ZSgpLHRoaXMuX29ic2VydmVkRWxlbWVudHMuZGVsZXRlKHQpfX19VnouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZ6KSh2cihCeikpfSxWei7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgVnoodnIoQnopKX0sdG9rZW46VnoscHJvdmlkZWRJbjoicm9vdCJ9KSxWei5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkJ6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWeixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Qnp9XX0pLG51bGwpO2NsYXNzIGp6e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9jb250ZW50T2JzZXJ2ZXI9dCx0aGlzLl9lbGVtZW50UmVmPWUsdGhpcy5fbmdab25lPW4sdGhpcy5ldmVudD1uZXcgTGgsdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5fY3VycmVudFN1YnNjcmlwdGlvbj1udWxsfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9eXoodCksdGhpcy5fZGlzYWJsZWQ/dGhpcy5fdW5zdWJzY3JpYmUoKTp0aGlzLl9zdWJzY3JpYmUoKX1nZXQgZGVib3VuY2UoKXtyZXR1cm4gdGhpcy5fZGVib3VuY2V9c2V0IGRlYm91bmNlKHQpe3RoaXMuX2RlYm91bmNlPV96KHQpLHRoaXMuX3N1YnNjcmliZSgpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2N1cnJlbnRTdWJzY3JpcHRpb258fHRoaXMuZGlzYWJsZWR8fHRoaXMuX3N1YnNjcmliZSgpfW5nT25EZXN0cm95KCl7dGhpcy5fdW5zdWJzY3JpYmUoKX1fc3Vic2NyaWJlKCl7dGhpcy5fdW5zdWJzY3JpYmUoKTtjb25zdCB0PXRoaXMuX2NvbnRlbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYpO3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0aGlzLl9jdXJyZW50U3Vic2NyaXB0aW9uPSh0aGlzLmRlYm91bmNlP3QucGlwZShnZSh0aGlzLmRlYm91bmNlKSk6dCkuc3Vic2NyaWJlKHRoaXMuZXZlbnQpfSkpfV91bnN1YnNjcmliZSgpe3ZhciB0O251bGw9PT0odD10aGlzLl9jdXJyZW50U3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dHx8dC51bnN1YnNjcmliZSgpfX1qei7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8anopKFNtKFZ6KSxTbShoZyksU20oYV8pKX0sanouybVkaXI9bG8oe3R5cGU6anosc2VsZWN0b3JzOltbIiIsImNka09ic2VydmVDb250ZW50IiwiIl1dLGlucHV0czp7ZGlzYWJsZWQ6WyJjZGtPYnNlcnZlQ29udGVudERpc2FibGVkIiwiZGlzYWJsZWQiXSxkZWJvdW5jZToiZGVib3VuY2UifSxvdXRwdXRzOntldmVudDoiY2RrT2JzZXJ2ZUNvbnRlbnQifSxleHBvcnRBczpbImNka09ic2VydmVDb250ZW50Il19KSxqei5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlZ6fSx7dHlwZTpoZ30se3R5cGU6YV99XSxqei5wcm9wRGVjb3JhdG9ycz17ZXZlbnQ6W3t0eXBlOk95LGFyZ3M6WyJjZGtPYnNlcnZlQ29udGVudCJdfV0sZGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJjZGtPYnNlcnZlQ29udGVudERpc2FibGVkIl19XSxkZWJvdW5jZTpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChqeixbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrT2JzZXJ2ZUNvbnRlbnRdIixleHBvcnRBczoiY2RrT2JzZXJ2ZUNvbnRlbnQifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Vnp9LHt0eXBlOmhnfSx7dHlwZTphX31dfSkse2V2ZW50Olt7dHlwZTpPeSxhcmdzOlsiY2RrT2JzZXJ2ZUNvbnRlbnQiXX1dLGRpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsiY2RrT2JzZXJ2ZUNvbnRlbnREaXNhYmxlZCJdfV0sZGVib3VuY2U6W3t0eXBlOnh5fV19KTtjbGFzcyBVent9ZnVuY3Rpb24gR3oodCxlKXtyZXR1cm4odC5nZXRBdHRyaWJ1dGUoZSl8fCIiKS5tYXRjaCgvXFMrL2cpfHxbXX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovVXouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFV6KX0sVXouybVtb2Q9YW8oe3R5cGU6VXp9KSxVei7JtWluaj12bih7cHJvdmlkZXJzOltCel19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFV6LFt7dHlwZTpBeSxhcmdzOlt7ZXhwb3J0czpbanpdLGRlY2xhcmF0aW9uczpbanpdLHByb3ZpZGVyczpbQnpdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVXose2RlY2xhcmF0aW9uczpbanpdLGV4cG9ydHM6W2p6XX0pO2NvbnN0IFd6PSJjZGstZGVzY3JpYmVkYnktbWVzc2FnZS1jb250YWluZXIiLFl6PSJjZGstZGVzY3JpYmVkYnktaG9zdCI7bGV0IHF6PTA7Y29uc3QgWno9bmV3IE1hcDtsZXQgWHo9bnVsbDtjbGFzcyBLentjb25zdHJ1Y3Rvcih0KXt0aGlzLl9kb2N1bWVudD10fWRlc2NyaWJlKHQsZSxuKXtpZighdGhpcy5fY2FuQmVEZXNjcmliZWQodCxlKSlyZXR1cm47Y29uc3Qgbz1KeihlLG4pOyJzdHJpbmciIT10eXBlb2YgZT8oUXooZSksWnouc2V0KG8se21lc3NhZ2VFbGVtZW50OmUscmVmZXJlbmNlQ291bnQ6MH0pKTpaei5oYXMobyl8fHRoaXMuX2NyZWF0ZU1lc3NhZ2VFbGVtZW50KGUsbiksdGhpcy5faXNFbGVtZW50RGVzY3JpYmVkQnlNZXNzYWdlKHQsbyl8fHRoaXMuX2FkZE1lc3NhZ2VSZWZlcmVuY2UodCxvKX1yZW1vdmVEZXNjcmlwdGlvbih0LGUsbil7aWYoIWV8fCF0aGlzLl9pc0VsZW1lbnROb2RlKHQpKXJldHVybjtjb25zdCBvPUp6KGUsbik7aWYodGhpcy5faXNFbGVtZW50RGVzY3JpYmVkQnlNZXNzYWdlKHQsbykmJnRoaXMuX3JlbW92ZU1lc3NhZ2VSZWZlcmVuY2UodCxvKSwic3RyaW5nIj09dHlwZW9mIGUpe2NvbnN0IHQ9WnouZ2V0KG8pO3QmJjA9PT10LnJlZmVyZW5jZUNvdW50JiZ0aGlzLl9kZWxldGVNZXNzYWdlRWxlbWVudChvKX1YeiYmMD09PVh6LmNoaWxkTm9kZXMubGVuZ3RoJiZ0aGlzLl9kZWxldGVNZXNzYWdlc0NvbnRhaW5lcigpfW5nT25EZXN0cm95KCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbY2RrLWRlc2NyaWJlZGJ5LWhvc3RdIik7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5fcmVtb3ZlQ2RrRGVzY3JpYmVkQnlSZWZlcmVuY2VJZHModFtlXSksdFtlXS5yZW1vdmVBdHRyaWJ1dGUoWXopO1h6JiZ0aGlzLl9kZWxldGVNZXNzYWdlc0NvbnRhaW5lcigpLFp6LmNsZWFyKCl9X2NyZWF0ZU1lc3NhZ2VFbGVtZW50KHQsZSl7Y29uc3Qgbj10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtReihuKSxuLnRleHRDb250ZW50PXQsZSYmbi5zZXRBdHRyaWJ1dGUoInJvbGUiLGUpLHRoaXMuX2NyZWF0ZU1lc3NhZ2VzQ29udGFpbmVyKCksWHouYXBwZW5kQ2hpbGQobiksWnouc2V0KEp6KHQsZSkse21lc3NhZ2VFbGVtZW50Om4scmVmZXJlbmNlQ291bnQ6MH0pfV9kZWxldGVNZXNzYWdlRWxlbWVudCh0KXtjb25zdCBlPVp6LmdldCh0KSxuPWUmJmUubWVzc2FnZUVsZW1lbnQ7WHomJm4mJlh6LnJlbW92ZUNoaWxkKG4pLFp6LmRlbGV0ZSh0KX1fY3JlYXRlTWVzc2FnZXNDb250YWluZXIoKXtpZighWHope2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoV3opO3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLFh6PXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLFh6LmlkPVd6LFh6LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsWHouY2xhc3NMaXN0LmFkZCgiY2RrLXZpc3VhbGx5LWhpZGRlbiIpLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoWHopfX1fZGVsZXRlTWVzc2FnZXNDb250YWluZXIoKXtYeiYmWHoucGFyZW50Tm9kZSYmKFh6LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoWHopLFh6PW51bGwpfV9yZW1vdmVDZGtEZXNjcmliZWRCeVJlZmVyZW5jZUlkcyh0KXtjb25zdCBlPUd6KHQsImFyaWEtZGVzY3JpYmVkYnkiKS5maWx0ZXIoKHQ9PjAhPXQuaW5kZXhPZigiY2RrLWRlc2NyaWJlZGJ5LW1lc3NhZ2UiKSkpO3Quc2V0QXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5IixlLmpvaW4oIiAiKSl9X2FkZE1lc3NhZ2VSZWZlcmVuY2UodCxlKXtjb25zdCBuPVp6LmdldChlKTshKGZ1bmN0aW9uIG8odCxlLG4pe2NvbnN0IG89R3oodCxlKTtvLnNvbWUoKHQ9PnQudHJpbSgpPT1uLnRyaW0oKSkpfHwoby5wdXNoKG4udHJpbSgpKSx0LnNldEF0dHJpYnV0ZShlLG8uam9pbigiICIpKSl9KSh0LCJhcmlhLWRlc2NyaWJlZGJ5IixuLm1lc3NhZ2VFbGVtZW50LmlkKSx0LnNldEF0dHJpYnV0ZShZeiwiIiksbi5yZWZlcmVuY2VDb3VudCsrfV9yZW1vdmVNZXNzYWdlUmVmZXJlbmNlKHQsZSl7Y29uc3Qgbj1aei5nZXQoZSk7bi5yZWZlcmVuY2VDb3VudC0tLChmdW5jdGlvbiBvKHQsZSxuKXtjb25zdCBvPUd6KHQsZSkuZmlsdGVyKCh0PT50IT1uLnRyaW0oKSkpO28ubGVuZ3RoP3Quc2V0QXR0cmlidXRlKGUsby5qb2luKCIgIikpOnQucmVtb3ZlQXR0cmlidXRlKGUpfSkodCwiYXJpYS1kZXNjcmliZWRieSIsbi5tZXNzYWdlRWxlbWVudC5pZCksdC5yZW1vdmVBdHRyaWJ1dGUoWXopfV9pc0VsZW1lbnREZXNjcmliZWRCeU1lc3NhZ2UodCxlKXtjb25zdCBuPUd6KHQsImFyaWEtZGVzY3JpYmVkYnkiKSxvPVp6LmdldChlKSxpPW8mJm8ubWVzc2FnZUVsZW1lbnQuaWQ7cmV0dXJuISFpJiYtMSE9bi5pbmRleE9mKGkpfV9jYW5CZURlc2NyaWJlZCh0LGUpe2lmKCF0aGlzLl9pc0VsZW1lbnROb2RlKHQpKXJldHVybiExO2lmKGUmJiJvYmplY3QiPT10eXBlb2YgZSlyZXR1cm4hMDtjb25zdCBuPW51bGw9PWU/IiI6YCR7ZX1gLnRyaW0oKSxvPXQuZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIik7cmV0dXJuISghbnx8byYmby50cmltKCk9PT1uKX1faXNFbGVtZW50Tm9kZSh0KXtyZXR1cm4gdC5ub2RlVHlwZT09PXRoaXMuX2RvY3VtZW50LkVMRU1FTlRfTk9ERX19ZnVuY3Rpb24gSnoodCxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/YCR7ZXx8IiJ9LyR7dH1gOnR9ZnVuY3Rpb24gUXoodCl7dC5pZHx8KHQuaWQ9ImNkay1kZXNjcmliZWRieS1tZXNzYWdlLSIrcXorKyl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL0t6Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxLeikodnIoWl8pKX0sS3ouybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IEt6KHZyKFpfKSl9LHRva2VuOkt6LHByb3ZpZGVkSW46InJvb3QifSksS3ouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEt6LFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpO2NsYXNzICR6e2NvbnN0cnVjdG9yKHQpe3RoaXMuX2l0ZW1zPXQsdGhpcy5fYWN0aXZlSXRlbUluZGV4PS0xLHRoaXMuX2FjdGl2ZUl0ZW09bnVsbCx0aGlzLl93cmFwPSExLHRoaXMuX2xldHRlcktleVN0cmVhbT1uZXcgSSx0aGlzLl90eXBlYWhlYWRTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl92ZXJ0aWNhbD0hMCx0aGlzLl9hbGxvd2VkTW9kaWZpZXJLZXlzPVtdLHRoaXMuX2hvbWVBbmRFbmQ9ITEsdGhpcy5fc2tpcFByZWRpY2F0ZUZuPXQ9PnQuZGlzYWJsZWQsdGhpcy5fcHJlc3NlZExldHRlcnM9W10sdGhpcy50YWJPdXQ9bmV3IEksdGhpcy5jaGFuZ2U9bmV3IEksdCBpbnN0YW5jZW9mIFZoJiZ0LmNoYW5nZXMuc3Vic2NyaWJlKCh0PT57aWYodGhpcy5fYWN0aXZlSXRlbSl7Y29uc3QgZT10LnRvQXJyYXkoKS5pbmRleE9mKHRoaXMuX2FjdGl2ZUl0ZW0pO2U+LTEmJmUhPT10aGlzLl9hY3RpdmVJdGVtSW5kZXgmJih0aGlzLl9hY3RpdmVJdGVtSW5kZXg9ZSl9fSkpfXNraXBQcmVkaWNhdGUodCl7cmV0dXJuIHRoaXMuX3NraXBQcmVkaWNhdGVGbj10LHRoaXN9d2l0aFdyYXAodD0hMCl7cmV0dXJuIHRoaXMuX3dyYXA9dCx0aGlzfXdpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKHQ9ITApe3JldHVybiB0aGlzLl92ZXJ0aWNhbD10LHRoaXN9d2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0KXtyZXR1cm4gdGhpcy5faG9yaXpvbnRhbD10LHRoaXN9d2l0aEFsbG93ZWRNb2RpZmllcktleXModCl7cmV0dXJuIHRoaXMuX2FsbG93ZWRNb2RpZmllcktleXM9dCx0aGlzfXdpdGhUeXBlQWhlYWQodD0yMDApe2lmKCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmdGhpcy5faXRlbXMubGVuZ3RoJiZ0aGlzLl9pdGVtcy5zb21lKCh0PT4iZnVuY3Rpb24iIT10eXBlb2YgdC5nZXRMYWJlbCkpKXRocm93IEVycm9yKCJMaXN0S2V5TWFuYWdlciBpdGVtcyBpbiB0eXBlYWhlYWQgbW9kZSBtdXN0IGltcGxlbWVudCB0aGUgYGdldExhYmVsYCBtZXRob2QuIik7cmV0dXJuIHRoaXMuX3R5cGVhaGVhZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3R5cGVhaGVhZFN1YnNjcmlwdGlvbj10aGlzLl9sZXR0ZXJLZXlTdHJlYW0ucGlwZShGZSgodD0+dGhpcy5fcHJlc3NlZExldHRlcnMucHVzaCh0KSkpLGdlKHQpLGNlKCgoKT0+dGhpcy5fcHJlc3NlZExldHRlcnMubGVuZ3RoPjApKSxJdCgoKCk9PnRoaXMuX3ByZXNzZWRMZXR0ZXJzLmpvaW4oIiIpKSkpLnN1YnNjcmliZSgodD0+e2NvbnN0IGU9dGhpcy5fZ2V0SXRlbXNBcnJheSgpO2ZvcihsZXQgbj0xO248ZS5sZW5ndGgrMTtuKyspe2NvbnN0IG89KHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCtuKSVlLmxlbmd0aCxpPWVbb107aWYoIXRoaXMuX3NraXBQcmVkaWNhdGVGbihpKSYmMD09PWkuZ2V0TGFiZWwoKS50b1VwcGVyQ2FzZSgpLnRyaW0oKS5pbmRleE9mKHQpKXt0aGlzLnNldEFjdGl2ZUl0ZW0obyk7YnJlYWt9fXRoaXMuX3ByZXNzZWRMZXR0ZXJzPVtdfSkpLHRoaXN9d2l0aEhvbWVBbmRFbmQodD0hMCl7cmV0dXJuIHRoaXMuX2hvbWVBbmRFbmQ9dCx0aGlzfXNldEFjdGl2ZUl0ZW0odCl7Y29uc3QgZT10aGlzLl9hY3RpdmVJdGVtO3RoaXMudXBkYXRlQWN0aXZlSXRlbSh0KSx0aGlzLl9hY3RpdmVJdGVtIT09ZSYmdGhpcy5jaGFuZ2UubmV4dCh0aGlzLl9hY3RpdmVJdGVtSW5kZXgpfW9uS2V5ZG93bih0KXtjb25zdCBlPXQua2V5Q29kZSxuPVsiYWx0S2V5IiwiY3RybEtleSIsIm1ldGFLZXkiLCJzaGlmdEtleSJdLmV2ZXJ5KChlPT4hdFtlXXx8dGhpcy5fYWxsb3dlZE1vZGlmaWVyS2V5cy5pbmRleE9mKGUpPi0xKSk7c3dpdGNoKGUpe2Nhc2UgOTpyZXR1cm4gdm9pZCB0aGlzLnRhYk91dC5uZXh0KCk7Y2FzZSBoejppZih0aGlzLl92ZXJ0aWNhbCYmbil7dGhpcy5zZXROZXh0SXRlbUFjdGl2ZSgpO2JyZWFrfXJldHVybjtjYXNlIGd6OmlmKHRoaXMuX3ZlcnRpY2FsJiZuKXt0aGlzLnNldFByZXZpb3VzSXRlbUFjdGl2ZSgpO2JyZWFrfXJldHVybjtjYXNlIDM5OmlmKHRoaXMuX2hvcml6b250YWwmJm4peyJydGwiPT09dGhpcy5faG9yaXpvbnRhbD90aGlzLnNldFByZXZpb3VzSXRlbUFjdGl2ZSgpOnRoaXMuc2V0TmV4dEl0ZW1BY3RpdmUoKTticmVha31yZXR1cm47Y2FzZSAzNzppZih0aGlzLl9ob3Jpem9udGFsJiZuKXsicnRsIj09PXRoaXMuX2hvcml6b250YWw/dGhpcy5zZXROZXh0SXRlbUFjdGl2ZSgpOnRoaXMuc2V0UHJldmlvdXNJdGVtQWN0aXZlKCk7YnJlYWt9cmV0dXJuO2Nhc2UgMzY6aWYodGhpcy5faG9tZUFuZEVuZCYmbil7dGhpcy5zZXRGaXJzdEl0ZW1BY3RpdmUoKTticmVha31yZXR1cm47Y2FzZSAzNTppZih0aGlzLl9ob21lQW5kRW5kJiZuKXt0aGlzLnNldExhc3RJdGVtQWN0aXZlKCk7YnJlYWt9cmV0dXJuO2RlZmF1bHQ6cmV0dXJuIHZvaWQoKG58fGJ6KHQsInNoaWZ0S2V5IikpJiYodC5rZXkmJjE9PT10LmtleS5sZW5ndGg/dGhpcy5fbGV0dGVyS2V5U3RyZWFtLm5leHQodC5rZXkudG9Mb2NhbGVVcHBlckNhc2UoKSk6KGU+PTY1JiZlPD05MHx8ZT49NDgmJmU8PTU3KSYmdGhpcy5fbGV0dGVyS2V5U3RyZWFtLm5leHQoU3RyaW5nLmZyb21DaGFyQ29kZShlKSkpKX10aGlzLl9wcmVzc2VkTGV0dGVycz1bXSx0LnByZXZlbnREZWZhdWx0KCl9Z2V0IGFjdGl2ZUl0ZW1JbmRleCgpe3JldHVybiB0aGlzLl9hY3RpdmVJdGVtSW5kZXh9Z2V0IGFjdGl2ZUl0ZW0oKXtyZXR1cm4gdGhpcy5fYWN0aXZlSXRlbX1pc1R5cGluZygpe3JldHVybiB0aGlzLl9wcmVzc2VkTGV0dGVycy5sZW5ndGg+MH1zZXRGaXJzdEl0ZW1BY3RpdmUoKXt0aGlzLl9zZXRBY3RpdmVJdGVtQnlJbmRleCgwLDEpfXNldExhc3RJdGVtQWN0aXZlKCl7dGhpcy5fc2V0QWN0aXZlSXRlbUJ5SW5kZXgodGhpcy5faXRlbXMubGVuZ3RoLTEsLTEpfXNldE5leHRJdGVtQWN0aXZlKCl7dGhpcy5fYWN0aXZlSXRlbUluZGV4PDA/dGhpcy5zZXRGaXJzdEl0ZW1BY3RpdmUoKTp0aGlzLl9zZXRBY3RpdmVJdGVtQnlEZWx0YSgxKX1zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKXt0aGlzLl9hY3RpdmVJdGVtSW5kZXg8MCYmdGhpcy5fd3JhcD90aGlzLnNldExhc3RJdGVtQWN0aXZlKCk6dGhpcy5fc2V0QWN0aXZlSXRlbUJ5RGVsdGEoLTEpfXVwZGF0ZUFjdGl2ZUl0ZW0odCl7Y29uc3QgZT10aGlzLl9nZXRJdGVtc0FycmF5KCksbj0ibnVtYmVyIj09dHlwZW9mIHQ/dDplLmluZGV4T2YodCksbz1lW25dO3RoaXMuX2FjdGl2ZUl0ZW09bnVsbD09bz9udWxsOm8sdGhpcy5fYWN0aXZlSXRlbUluZGV4PW59X3NldEFjdGl2ZUl0ZW1CeURlbHRhKHQpe3RoaXMuX3dyYXA/dGhpcy5fc2V0QWN0aXZlSW5XcmFwTW9kZSh0KTp0aGlzLl9zZXRBY3RpdmVJbkRlZmF1bHRNb2RlKHQpfV9zZXRBY3RpdmVJbldyYXBNb2RlKHQpe2NvbnN0IGU9dGhpcy5fZ2V0SXRlbXNBcnJheSgpO2ZvcihsZXQgbj0xO248PWUubGVuZ3RoO24rKyl7Y29uc3Qgbz0odGhpcy5fYWN0aXZlSXRlbUluZGV4K3QqbitlLmxlbmd0aCklZS5sZW5ndGg7aWYoIXRoaXMuX3NraXBQcmVkaWNhdGVGbihlW29dKSlyZXR1cm4gdm9pZCB0aGlzLnNldEFjdGl2ZUl0ZW0obyl9fV9zZXRBY3RpdmVJbkRlZmF1bHRNb2RlKHQpe3RoaXMuX3NldEFjdGl2ZUl0ZW1CeUluZGV4KHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCt0LHQpfV9zZXRBY3RpdmVJdGVtQnlJbmRleCh0LGUpe2NvbnN0IG49dGhpcy5fZ2V0SXRlbXNBcnJheSgpO2lmKG5bdF0pe2Zvcig7dGhpcy5fc2tpcFByZWRpY2F0ZUZuKG5bdF0pOylpZighblt0Kz1lXSlyZXR1cm47dGhpcy5zZXRBY3RpdmVJdGVtKHQpfX1fZ2V0SXRlbXNBcnJheSgpe3JldHVybiB0aGlzLl9pdGVtcyBpbnN0YW5jZW9mIFZoP3RoaXMuX2l0ZW1zLnRvQXJyYXkoKTp0aGlzLl9pdGVtc319Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHRJIGV4dGVuZHMgJHp7c2V0QWN0aXZlSXRlbSh0KXt0aGlzLmFjdGl2ZUl0ZW0mJnRoaXMuYWN0aXZlSXRlbS5zZXRJbmFjdGl2ZVN0eWxlcygpLHN1cGVyLnNldEFjdGl2ZUl0ZW0odCksdGhpcy5hY3RpdmVJdGVtJiZ0aGlzLmFjdGl2ZUl0ZW0uc2V0QWN0aXZlU3R5bGVzKCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBlSSBleHRlbmRzICR6e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcmlnaW49InByb2dyYW0ifXNldEZvY3VzT3JpZ2luKHQpe3JldHVybiB0aGlzLl9vcmlnaW49dCx0aGlzfXNldEFjdGl2ZUl0ZW0odCl7c3VwZXIuc2V0QWN0aXZlSXRlbSh0KSx0aGlzLmFjdGl2ZUl0ZW0mJnRoaXMuYWN0aXZlSXRlbS5mb2N1cyh0aGlzLl9vcmlnaW4pfX1jbGFzcyBuSXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9wbGF0Zm9ybT10fWlzRGlzYWJsZWQodCl7cmV0dXJuIHQuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpfWlzVmlzaWJsZSh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4hISh0Lm9mZnNldFdpZHRofHx0Lm9mZnNldEhlaWdodHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQuZ2V0Q2xpZW50UmVjdHMmJnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpfSkodCkmJiJ2aXNpYmxlIj09PWdldENvbXB1dGVkU3R5bGUodCkudmlzaWJpbGl0eX1pc1RhYmJhYmxlKHQpe2lmKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpcmV0dXJuITE7Y29uc3QgZT0oZnVuY3Rpb24gbyh0KXt0cnl7cmV0dXJuIHQuZnJhbWVFbGVtZW50fWNhdGNoKHQpe3JldHVybiBudWxsfX0pKChmdW5jdGlvbiBuKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQpKTtpZihlKXtpZigtMT09PWlJKGUpKXJldHVybiExO2lmKCF0aGlzLmlzVmlzaWJsZShlKSlyZXR1cm4hMX1sZXQgaT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksYT1pSSh0KTtyZXR1cm4gdC5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpPy0xIT09YToiaWZyYW1lIiE9PWkmJiJvYmplY3QiIT09aSYmISh0aGlzLl9wbGF0Zm9ybS5XRUJLSVQmJnRoaXMuX3BsYXRmb3JtLklPUyYmIShmdW5jdGlvbiByKHQpe2xldCBlPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxuPSJpbnB1dCI9PT1lJiZ0LnR5cGU7cmV0dXJuInRleHQiPT09bnx8InBhc3N3b3JkIj09PW58fCJzZWxlY3QiPT09ZXx8InRleHRhcmVhIj09PWV9KSh0KSkmJigiYXVkaW8iPT09aT8hIXQuaGFzQXR0cmlidXRlKCJjb250cm9scyIpJiYtMSE9PWE6InZpZGVvIj09PWk/LTEhPT1hJiYobnVsbCE9PWF8fHRoaXMuX3BsYXRmb3JtLkZJUkVGT1h8fHQuaGFzQXR0cmlidXRlKCJjb250cm9scyIpKTp0LnRhYkluZGV4Pj0wKX1pc0ZvY3VzYWJsZSh0LGUpe3JldHVybihmdW5jdGlvbiBuKHQpe3JldHVybiEoZnVuY3Rpb24gZSh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4iaW5wdXQiPT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl9KSh0KSYmImhpZGRlbiI9PXQudHlwZX0pKHQpJiYoKGZ1bmN0aW9uIG4odCl7bGV0IGU9dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1lfHwic2VsZWN0Ij09PWV8fCJidXR0b24iPT09ZXx8InRleHRhcmVhIj09PWV9KSh0KXx8KGZ1bmN0aW9uIG8odCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuImEiPT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl9KSh0KSYmdC5oYXNBdHRyaWJ1dGUoImhyZWYiKX0pKHQpfHx0Lmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fG9JKHQpKX0pKHQpJiYhdGhpcy5pc0Rpc2FibGVkKHQpJiYoKG51bGw9PWU/dm9pZCAwOmUuaWdub3JlVmlzaWJpbGl0eSl8fHRoaXMuaXNWaXNpYmxlKHQpKX19ZnVuY3Rpb24gb0kodCl7aWYoIXQuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHx2b2lkIDA9PT10LnRhYkluZGV4KXJldHVybiExO2xldCBlPXQuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpO3JldHVybiItMzI3NjgiIT1lJiYhKCFlfHxpc05hTihwYXJzZUludChlLDEwKSkpfWZ1bmN0aW9uIGlJKHQpe2lmKCFvSSh0KSlyZXR1cm4gbnVsbDtjb25zdCBlPXBhcnNlSW50KHQuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpfHwiIiwxMCk7cmV0dXJuIGlzTmFOKGUpPy0xOmV9bkkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5JKSh2cih3eikpfSxuSS7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgbkkodnIod3opKX0sdG9rZW46bkkscHJvdmlkZWRJbjoicm9vdCJ9KSxuSS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnd6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChuSSxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6d3p9XX0pLG51bGwpO2NsYXNzIGFJe2NvbnN0cnVjdG9yKHQsZSxuLG8saT0hMSl7dGhpcy5fZWxlbWVudD10LHRoaXMuX2NoZWNrZXI9ZSx0aGlzLl9uZ1pvbmU9bix0aGlzLl9kb2N1bWVudD1vLHRoaXMuX2hhc0F0dGFjaGVkPSExLHRoaXMuc3RhcnRBbmNob3JMaXN0ZW5lcj0oKT0+dGhpcy5mb2N1c0xhc3RUYWJiYWJsZUVsZW1lbnQoKSx0aGlzLmVuZEFuY2hvckxpc3RlbmVyPSgpPT50aGlzLmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoKSx0aGlzLl9lbmFibGVkPSEwLGl8fHRoaXMuYXR0YWNoQW5jaG9ycygpfWdldCBlbmFibGVkKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9c2V0IGVuYWJsZWQodCl7dGhpcy5fZW5hYmxlZD10LHRoaXMuX3N0YXJ0QW5jaG9yJiZ0aGlzLl9lbmRBbmNob3ImJih0aGlzLl90b2dnbGVBbmNob3JUYWJJbmRleCh0LHRoaXMuX3N0YXJ0QW5jaG9yKSx0aGlzLl90b2dnbGVBbmNob3JUYWJJbmRleCh0LHRoaXMuX2VuZEFuY2hvcikpfWRlc3Ryb3koKXtjb25zdCB0PXRoaXMuX3N0YXJ0QW5jaG9yLGU9dGhpcy5fZW5kQW5jaG9yO3QmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLnN0YXJ0QW5jaG9yTGlzdGVuZXIpLHQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpKSxlJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5lbmRBbmNob3JMaXN0ZW5lciksZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSkpLHRoaXMuX3N0YXJ0QW5jaG9yPXRoaXMuX2VuZEFuY2hvcj1udWxsLHRoaXMuX2hhc0F0dGFjaGVkPSExfWF0dGFjaEFuY2hvcnMoKXtyZXR1cm4hIXRoaXMuX2hhc0F0dGFjaGVkfHwodGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3RoaXMuX3N0YXJ0QW5jaG9yfHwodGhpcy5fc3RhcnRBbmNob3I9dGhpcy5fY3JlYXRlQW5jaG9yKCksdGhpcy5fc3RhcnRBbmNob3IuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuc3RhcnRBbmNob3JMaXN0ZW5lcikpLHRoaXMuX2VuZEFuY2hvcnx8KHRoaXMuX2VuZEFuY2hvcj10aGlzLl9jcmVhdGVBbmNob3IoKSx0aGlzLl9lbmRBbmNob3IuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuZW5kQW5jaG9yTGlzdGVuZXIpKX0pKSx0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUmJih0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuX3N0YXJ0QW5jaG9yLHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5fZW5kQW5jaG9yLHRoaXMuX2VsZW1lbnQubmV4dFNpYmxpbmcpLHRoaXMuX2hhc0F0dGFjaGVkPSEwKSx0aGlzLl9oYXNBdHRhY2hlZCl9Zm9jdXNJbml0aWFsRWxlbWVudFdoZW5SZWFkeSh0KXtyZXR1cm4gbmV3IFByb21pc2UoKGU9Pnt0aGlzLl9leGVjdXRlT25TdGFibGUoKCgpPT5lKHRoaXMuZm9jdXNJbml0aWFsRWxlbWVudCh0KSkpKX0pKX1mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50V2hlblJlYWR5KHQpe3JldHVybiBuZXcgUHJvbWlzZSgoZT0+e3RoaXMuX2V4ZWN1dGVPblN0YWJsZSgoKCk9PmUodGhpcy5mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KHQpKSkpfSkpfWZvY3VzTGFzdFRhYmJhYmxlRWxlbWVudFdoZW5SZWFkeSh0KXtyZXR1cm4gbmV3IFByb21pc2UoKGU9Pnt0aGlzLl9leGVjdXRlT25TdGFibGUoKCgpPT5lKHRoaXMuZm9jdXNMYXN0VGFiYmFibGVFbGVtZW50KHQpKSkpfSkpfV9nZXRSZWdpb25Cb3VuZGFyeSh0KXtsZXQgZT10aGlzLl9lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYFtjZGstZm9jdXMtcmVnaW9uLSR7dH1dLCBbY2RrRm9jdXNSZWdpb24ke3R9XSwgW2Nkay1mb2N1cy0ke3R9XWApO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKWVbbl0uaGFzQXR0cmlidXRlKGBjZGstZm9jdXMtJHt0fWApP2NvbnNvbGUud2FybihgRm91bmQgdXNlIG9mIGRlcHJlY2F0ZWQgYXR0cmlidXRlICdjZGstZm9jdXMtJHt0fScsIHVzZSAnY2RrRm9jdXNSZWdpb24ke3R9JyBpbnN0ZWFkLiBUaGUgZGVwcmVjYXRlZCBhdHRyaWJ1dGUgd2lsbCBiZSByZW1vdmVkIGluIDguMC4wLmAsZVtuXSk6ZVtuXS5oYXNBdHRyaWJ1dGUoYGNkay1mb2N1cy1yZWdpb24tJHt0fWApJiZjb25zb2xlLndhcm4oYEZvdW5kIHVzZSBvZiBkZXByZWNhdGVkIGF0dHJpYnV0ZSAnY2RrLWZvY3VzLXJlZ2lvbi0ke3R9JywgdXNlICdjZGtGb2N1c1JlZ2lvbiR7dH0nIGluc3RlYWQuIFRoZSBkZXByZWNhdGVkIGF0dHJpYnV0ZSB3aWxsIGJlIHJlbW92ZWQgaW4gOC4wLjAuYCxlW25dKTtyZXR1cm4ic3RhcnQiPT10P2UubGVuZ3RoP2VbMF06dGhpcy5fZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQodGhpcy5fZWxlbWVudCk6ZS5sZW5ndGg/ZVtlLmxlbmd0aC0xXTp0aGlzLl9nZXRMYXN0VGFiYmFibGVFbGVtZW50KHRoaXMuX2VsZW1lbnQpfWZvY3VzSW5pdGlhbEVsZW1lbnQodCl7Y29uc3QgZT10aGlzLl9lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIltjZGstZm9jdXMtaW5pdGlhbF0sIFtjZGtGb2N1c0luaXRpYWxdIik7aWYoZSl7aWYoZS5oYXNBdHRyaWJ1dGUoImNkay1mb2N1cy1pbml0aWFsIikmJmNvbnNvbGUud2FybigiRm91bmQgdXNlIG9mIGRlcHJlY2F0ZWQgYXR0cmlidXRlICdjZGstZm9jdXMtaW5pdGlhbCcsIHVzZSAnY2RrRm9jdXNJbml0aWFsJyBpbnN0ZWFkLiBUaGUgZGVwcmVjYXRlZCBhdHRyaWJ1dGUgd2lsbCBiZSByZW1vdmVkIGluIDguMC4wIixlKSwidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8dGhpcy5fY2hlY2tlci5pc0ZvY3VzYWJsZShlKXx8Y29uc29sZS53YXJuKCJFbGVtZW50IG1hdGNoaW5nICdbY2RrRm9jdXNJbml0aWFsXScgaXMgbm90IGZvY3VzYWJsZS4iLGUpLCF0aGlzLl9jaGVja2VyLmlzRm9jdXNhYmxlKGUpKXtjb25zdCBuPXRoaXMuX2dldEZpcnN0VGFiYmFibGVFbGVtZW50KGUpO3JldHVybiBudWxsPT1ufHxuLmZvY3VzKHQpLCEhbn1yZXR1cm4gZS5mb2N1cyh0KSwhMH1yZXR1cm4gdGhpcy5mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KHQpfWZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQodCl7Y29uc3QgZT10aGlzLl9nZXRSZWdpb25Cb3VuZGFyeSgic3RhcnQiKTtyZXR1cm4gZSYmZS5mb2N1cyh0KSwhIWV9Zm9jdXNMYXN0VGFiYmFibGVFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5fZ2V0UmVnaW9uQm91bmRhcnkoImVuZCIpO3JldHVybiBlJiZlLmZvY3VzKHQpLCEhZX1oYXNBdHRhY2hlZCgpe3JldHVybiB0aGlzLl9oYXNBdHRhY2hlZH1fZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQodCl7aWYodGhpcy5fY2hlY2tlci5pc0ZvY3VzYWJsZSh0KSYmdGhpcy5fY2hlY2tlci5pc1RhYmJhYmxlKHQpKXJldHVybiB0O2xldCBlPXQuY2hpbGRyZW58fHQuY2hpbGROb2Rlcztmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IG49ZVt0XS5ub2RlVHlwZT09PXRoaXMuX2RvY3VtZW50LkVMRU1FTlRfTk9ERT90aGlzLl9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudChlW3RdKTpudWxsO2lmKG4pcmV0dXJuIG59cmV0dXJuIG51bGx9X2dldExhc3RUYWJiYWJsZUVsZW1lbnQodCl7aWYodGhpcy5fY2hlY2tlci5pc0ZvY3VzYWJsZSh0KSYmdGhpcy5fY2hlY2tlci5pc1RhYmJhYmxlKHQpKXJldHVybiB0O2xldCBlPXQuY2hpbGRyZW58fHQuY2hpbGROb2Rlcztmb3IobGV0IHQ9ZS5sZW5ndGgtMTt0Pj0wO3QtLSl7bGV0IG49ZVt0XS5ub2RlVHlwZT09PXRoaXMuX2RvY3VtZW50LkVMRU1FTlRfTk9ERT90aGlzLl9nZXRMYXN0VGFiYmFibGVFbGVtZW50KGVbdF0pOm51bGw7aWYobilyZXR1cm4gbn1yZXR1cm4gbnVsbH1fY3JlYXRlQW5jaG9yKCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdGhpcy5fdG9nZ2xlQW5jaG9yVGFiSW5kZXgodGhpcy5fZW5hYmxlZCx0KSx0LmNsYXNzTGlzdC5hZGQoImNkay12aXN1YWxseS1oaWRkZW4iKSx0LmNsYXNzTGlzdC5hZGQoImNkay1mb2N1cy10cmFwLWFuY2hvciIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0fV90b2dnbGVBbmNob3JUYWJJbmRleCh0LGUpe3Q/ZS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpOmUucmVtb3ZlQXR0cmlidXRlKCJ0YWJpbmRleCIpfXRvZ2dsZUFuY2hvcnModCl7dGhpcy5fc3RhcnRBbmNob3ImJnRoaXMuX2VuZEFuY2hvciYmKHRoaXMuX3RvZ2dsZUFuY2hvclRhYkluZGV4KHQsdGhpcy5fc3RhcnRBbmNob3IpLHRoaXMuX3RvZ2dsZUFuY2hvclRhYkluZGV4KHQsdGhpcy5fZW5kQW5jaG9yKSl9X2V4ZWN1dGVPblN0YWJsZSh0KXt0aGlzLl9uZ1pvbmUuaXNTdGFibGU/dCgpOnRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUodCl9fWNsYXNzIHJJe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9jaGVja2VyPXQsdGhpcy5fbmdab25lPWUsdGhpcy5fZG9jdW1lbnQ9bn1jcmVhdGUodCxlPSExKXtyZXR1cm4gbmV3IGFJKHQsdGhpcy5fY2hlY2tlcix0aGlzLl9uZ1pvbmUsdGhpcy5fZG9jdW1lbnQsZSl9fXJJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxySSkodnIobkkpLHZyKGFfKSx2cihaXykpfSxySS7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgckkodnIobkkpLHZyKGFfKSx2cihaXykpfSx0b2tlbjpySSxwcm92aWRlZEluOiJyb290In0pLHJJLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6bkl9LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHJJLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpuSX0se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y2xhc3Mgc0l7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9mb2N1c1RyYXBGYWN0b3J5PWUsdGhpcy5fcHJldmlvdXNseUZvY3VzZWRFbGVtZW50PW51bGwsdGhpcy5mb2N1c1RyYXA9dGhpcy5fZm9jdXNUcmFwRmFjdG9yeS5jcmVhdGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCEwKX1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLmZvY3VzVHJhcC5lbmFibGVkfXNldCBlbmFibGVkKHQpe3RoaXMuZm9jdXNUcmFwLmVuYWJsZWQ9eXoodCl9Z2V0IGF1dG9DYXB0dXJlKCl7cmV0dXJuIHRoaXMuX2F1dG9DYXB0dXJlfXNldCBhdXRvQ2FwdHVyZSh0KXt0aGlzLl9hdXRvQ2FwdHVyZT15eih0KX1uZ09uRGVzdHJveSgpe3RoaXMuZm9jdXNUcmFwLmRlc3Ryb3koKSx0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQmJih0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKSx0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQ9bnVsbCl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5mb2N1c1RyYXAuYXR0YWNoQW5jaG9ycygpLHRoaXMuYXV0b0NhcHR1cmUmJnRoaXMuX2NhcHR1cmVGb2N1cygpfW5nRG9DaGVjaygpe3RoaXMuZm9jdXNUcmFwLmhhc0F0dGFjaGVkKCl8fHRoaXMuZm9jdXNUcmFwLmF0dGFjaEFuY2hvcnMoKX1uZ09uQ2hhbmdlcyh0KXtjb25zdCBlPXQuYXV0b0NhcHR1cmU7ZSYmIWUuZmlyc3RDaGFuZ2UmJnRoaXMuYXV0b0NhcHR1cmUmJnRoaXMuZm9jdXNUcmFwLmhhc0F0dGFjaGVkKCkmJnRoaXMuX2NhcHR1cmVGb2N1cygpfV9jYXB0dXJlRm9jdXMoKXt0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQ9RnooKSx0aGlzLmZvY3VzVHJhcC5mb2N1c0luaXRpYWxFbGVtZW50V2hlblJlYWR5KCl9fXNJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxzSSkoU20oaGcpLFNtKHJJKSxTbShaXykpfSxzSS7JtWRpcj1sbyh7dHlwZTpzSSxzZWxlY3RvcnM6W1siIiwiY2RrVHJhcEZvY3VzIiwiIl1dLGlucHV0czp7ZW5hYmxlZDpbImNka1RyYXBGb2N1cyIsImVuYWJsZWQiXSxhdXRvQ2FwdHVyZTpbImNka1RyYXBGb2N1c0F1dG9DYXB0dXJlIiwiYXV0b0NhcHR1cmUiXX0sZXhwb3J0QXM6WyJjZGtUcmFwRm9jdXMiXSxmZWF0dXJlczpbQm9dfSksc0kuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6ckl9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLHNJLnByb3BEZWNvcmF0b3JzPXtlbmFibGVkOlt7dHlwZTp4eSxhcmdzOlsiY2RrVHJhcEZvY3VzIl19XSxhdXRvQ2FwdHVyZTpbe3R5cGU6eHksYXJnczpbImNka1RyYXBGb2N1c0F1dG9DYXB0dXJlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChzSSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrVHJhcEZvY3VzXSIsZXhwb3J0QXM6ImNka1RyYXBGb2N1cyJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6ckl9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSkse2VuYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJjZGtUcmFwRm9jdXMiXX1dLGF1dG9DYXB0dXJlOlt7dHlwZTp4eSxhcmdzOlsiY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBsSSBleHRlbmRzIGFJe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3N1cGVyKHQsZSxuLG8sci5kZWZlciksdGhpcy5fZm9jdXNUcmFwTWFuYWdlcj1pLHRoaXMuX2luZXJ0U3RyYXRlZ3k9YSx0aGlzLl9mb2N1c1RyYXBNYW5hZ2VyLnJlZ2lzdGVyKHRoaXMpfWdldCBlbmFibGVkKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9c2V0IGVuYWJsZWQodCl7dGhpcy5fZW5hYmxlZD10LHRoaXMuX2VuYWJsZWQ/dGhpcy5fZm9jdXNUcmFwTWFuYWdlci5yZWdpc3Rlcih0aGlzKTp0aGlzLl9mb2N1c1RyYXBNYW5hZ2VyLmRlcmVnaXN0ZXIodGhpcyl9ZGVzdHJveSgpe3RoaXMuX2ZvY3VzVHJhcE1hbmFnZXIuZGVyZWdpc3Rlcih0aGlzKSxzdXBlci5kZXN0cm95KCl9X2VuYWJsZSgpe3RoaXMuX2luZXJ0U3RyYXRlZ3kucHJldmVudEZvY3VzKHRoaXMpLHRoaXMudG9nZ2xlQW5jaG9ycyghMCl9X2Rpc2FibGUoKXt0aGlzLl9pbmVydFN0cmF0ZWd5LmFsbG93Rm9jdXModGhpcyksdGhpcy50b2dnbGVBbmNob3JzKCExKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBjST1uZXcgR2EoIkZPQ1VTX1RSQVBfSU5FUlRfU1RSQVRFR1kiKSxkST0idW5kZWZpbmVkIiE9dHlwZW9mIEVsZW1lbnQmJiEhRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdDsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gcEkodCxlKXtyZXR1cm4gdC5tYXRjaGVzP3QubWF0Y2hlcyhlKTp0Lm1zTWF0Y2hlc1NlbGVjdG9yKGUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBtSXtjb25zdHJ1Y3Rvcigpe3RoaXMuX2xpc3RlbmVyPW51bGx9cHJldmVudEZvY3VzKHQpe3RoaXMuX2xpc3RlbmVyJiZ0Ll9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fbGlzdGVuZXIsITApLHRoaXMuX2xpc3RlbmVyPWU9PnRoaXMuX3RyYXBGb2N1cyh0LGUpLHQuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0Ll9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fbGlzdGVuZXIsITApfSkpfWFsbG93Rm9jdXModCl7dGhpcy5fbGlzdGVuZXImJih0Ll9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fbGlzdGVuZXIsITApLHRoaXMuX2xpc3RlbmVyPW51bGwpfV90cmFwRm9jdXModCxlKXtjb25zdCBuPWUudGFyZ2V0LG89dC5fZWxlbWVudDtvLmNvbnRhaW5zKG4pfHxudWxsIT09KGZ1bmN0aW9uIGkodCxlKXtpZighKHQgaW5zdGFuY2VvZiBOb2RlKSlyZXR1cm4gbnVsbDtsZXQgbj10O2Zvcig7bnVsbCE9biYmIShuIGluc3RhbmNlb2YgRWxlbWVudCk7KW49bi5wYXJlbnROb2RlO3JldHVybiBuJiYoZEk/bi5jbG9zZXN0KGUpOihmdW5jdGlvbiBvKHQsZSl7bGV0IG49dDtmb3IoO251bGwhPW4mJiEobiBpbnN0YW5jZW9mIEVsZW1lbnQmJnBJKG4sZSkpOyluPW4ucGFyZW50Tm9kZTtyZXR1cm4gbnx8bnVsbH0pKG4sZSkpfSkobiwiZGl2LmNkay1vdmVybGF5LXBhbmUiKXx8c2V0VGltZW91dCgoKCk9Pnt0LmVuYWJsZWQmJiFvLmNvbnRhaW5zKHQuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQpJiZ0LmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoKX0pKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHVJe2NvbnN0cnVjdG9yKCl7dGhpcy5fZm9jdXNUcmFwU3RhY2s9W119cmVnaXN0ZXIodCl7dGhpcy5fZm9jdXNUcmFwU3RhY2s9dGhpcy5fZm9jdXNUcmFwU3RhY2suZmlsdGVyKChlPT5lIT09dCkpO2xldCBlPXRoaXMuX2ZvY3VzVHJhcFN0YWNrO2UubGVuZ3RoJiZlW2UubGVuZ3RoLTFdLl9kaXNhYmxlKCksZS5wdXNoKHQpLHQuX2VuYWJsZSgpfWRlcmVnaXN0ZXIodCl7dC5fZGlzYWJsZSgpO2NvbnN0IGU9dGhpcy5fZm9jdXNUcmFwU3RhY2ssbj1lLmluZGV4T2YodCk7LTEhPT1uJiYoZS5zcGxpY2UobiwxKSxlLmxlbmd0aCYmZVtlLmxlbmd0aC0xXS5fZW5hYmxlKCkpfX11SS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dUkpfSx1SS7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgdUl9LHRva2VuOnVJLHByb3ZpZGVkSW46InJvb3QifSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh1SSxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgZkl7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLl9jaGVja2VyPXQsdGhpcy5fbmdab25lPWUsdGhpcy5fZm9jdXNUcmFwTWFuYWdlcj1uLHRoaXMuX2RvY3VtZW50PW8sdGhpcy5faW5lcnRTdHJhdGVneT1pfHxuZXcgbUl9Y3JlYXRlKHQsZT17ZGVmZXI6ITF9KXtsZXQgbjtyZXR1cm4gbj0iYm9vbGVhbiI9PXR5cGVvZiBlP3tkZWZlcjplfTplLG5ldyBsSSh0LHRoaXMuX2NoZWNrZXIsdGhpcy5fbmdab25lLHRoaXMuX2RvY3VtZW50LHRoaXMuX2ZvY3VzVHJhcE1hbmFnZXIsdGhpcy5faW5lcnRTdHJhdGVneSxuKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBnSSh0KXtyZXR1cm4gMD09PXQub2Zmc2V0WCYmMD09PXQub2Zmc2V0WX1mdW5jdGlvbiBoSSh0KXtjb25zdCBlPXQudG91Y2hlcyYmdC50b3VjaGVzWzBdfHx0LmNoYW5nZWRUb3VjaGVzJiZ0LmNoYW5nZWRUb3VjaGVzWzBdO3JldHVybiEoIWV8fC0xIT09ZS5pZGVudGlmaWVyfHxudWxsIT1lLnJhZGl1c1gmJjEhPT1lLnJhZGl1c1h8fG51bGwhPWUucmFkaXVzWSYmMSE9PWUucmFkaXVzWSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2ZJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmSSkodnIobkkpLHZyKGFfKSx2cih1SSksdnIoWl8pLHZyKGNJLDgpKX0sZkkuybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IGZJKHZyKG5JKSx2cihhXyksdnIodUkpLHZyKFpfKSx2cihjSSw4KSl9LHRva2VuOmZJLHByb3ZpZGVkSW46InJvb3QifSksZkkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpuSX0se3R5cGU6YV99LHt0eXBlOnVJfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbY0ldfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGZJLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpuSX0se3R5cGU6YV99LHt0eXBlOnVJfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbY0ldfV19XX0pLG51bGwpO2NvbnN0IGJJPW5ldyBHYSgiY2RrLWlucHV0LW1vZGFsaXR5LWRldGVjdG9yLW9wdGlvbnMiKSx5ST17aWdub3JlS2V5czpbMTgsMTcsMjI0LDkxLDE2XX0sX0k9Tnooe3Bhc3NpdmU6ITAsY2FwdHVyZTohMH0pO2NsYXNzIENJe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX3BsYXRmb3JtPXQsdGhpcy5fbW9zdFJlY2VudFRhcmdldD1udWxsLHRoaXMuX21vZGFsaXR5PW5ldyBGKG51bGwpLHRoaXMuX2xhc3RUb3VjaE1zPTAsdGhpcy5fb25LZXlkb3duPXQ9Pnt2YXIgZSxuOyhudWxsPT09KG49bnVsbD09PShlPXRoaXMuX29wdGlvbnMpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmlnbm9yZUtleXMpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnNvbWUoKGU9PmU9PT10LmtleUNvZGUpKSl8fCh0aGlzLl9tb2RhbGl0eS5uZXh0KCJrZXlib2FyZCIpLHRoaXMuX21vc3RSZWNlbnRUYXJnZXQ9THoodCkpfSx0aGlzLl9vbk1vdXNlZG93bj10PT57RGF0ZS5ub3coKS10aGlzLl9sYXN0VG91Y2hNczw2NTB8fCh0aGlzLl9tb2RhbGl0eS5uZXh0KGdJKHQpPyJrZXlib2FyZCI6Im1vdXNlIiksdGhpcy5fbW9zdFJlY2VudFRhcmdldD1Meih0KSl9LHRoaXMuX29uVG91Y2hzdGFydD10PT57aEkodCk/dGhpcy5fbW9kYWxpdHkubmV4dCgia2V5Ym9hcmQiKToodGhpcy5fbGFzdFRvdWNoTXM9RGF0ZS5ub3coKSx0aGlzLl9tb2RhbGl0eS5uZXh0KCJ0b3VjaCIpLHRoaXMuX21vc3RSZWNlbnRUYXJnZXQ9THoodCkpfSx0aGlzLl9vcHRpb25zPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx5SSksbyksdGhpcy5tb2RhbGl0eURldGVjdGVkPXRoaXMuX21vZGFsaXR5LnBpcGUoVGUoMSkpLHRoaXMubW9kYWxpdHlDaGFuZ2VkPXRoaXMubW9kYWxpdHlEZXRlY3RlZC5waXBlKE1lKCkpLHQuaXNCcm93c2VyJiZlLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e24uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fb25LZXlkb3duLF9JKSxuLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5fb25Nb3VzZWRvd24sX0kpLG4uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fb25Ub3VjaHN0YXJ0LF9JKX0pKX1nZXQgbW9zdFJlY2VudE1vZGFsaXR5KCl7cmV0dXJuIHRoaXMuX21vZGFsaXR5LnZhbHVlfW5nT25EZXN0cm95KCl7dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fb25LZXlkb3duLF9JKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX29uTW91c2Vkb3duLF9JKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9vblRvdWNoc3RhcnQsX0kpKX19Q0kuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fENJKSh2cih3eiksdnIoYV8pLHZyKFpfKSx2cihiSSw4KSl9LENJLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBDSSh2cih3eiksdnIoYV8pLHZyKFpfKSx2cihiSSw4KSl9LHRva2VuOkNJLHByb3ZpZGVkSW46InJvb3QifSksQ0kuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp3en0se3R5cGU6YV99LHt0eXBlOkRvY3VtZW50LGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W2JJXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChDSSxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6d3p9LHt0eXBlOmFffSx7dHlwZTpEb2N1bWVudCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltiSV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBNST1uZXcgR2EoImxpdmVBbm5vdW5jZXJFbGVtZW50Iix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiB2SSgpe3JldHVybiBudWxsfX0pLHhJPW5ldyBHYSgiTElWRV9BTk5PVU5DRVJfREVGQVVMVF9PUFRJT05TIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBPSXtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9uZ1pvbmU9ZSx0aGlzLl9kZWZhdWx0T3B0aW9ucz1vLHRoaXMuX2RvY3VtZW50PW4sdGhpcy5fbGl2ZUVsZW1lbnQ9dHx8dGhpcy5fY3JlYXRlTGl2ZUVsZW1lbnQoKX1hbm5vdW5jZSh0LC4uLmUpe2NvbnN0IG49dGhpcy5fZGVmYXVsdE9wdGlvbnM7bGV0IG8saTtyZXR1cm4gMT09PWUubGVuZ3RoJiYibnVtYmVyIj09dHlwZW9mIGVbMF0/aT1lWzBdOltvLGldPWUsdGhpcy5jbGVhcigpLGNsZWFyVGltZW91dCh0aGlzLl9wcmV2aW91c1RpbWVvdXQpLG98fChvPW4mJm4ucG9saXRlbmVzcz9uLnBvbGl0ZW5lc3M6InBvbGl0ZSIpLG51bGw9PWkmJm4mJihpPW4uZHVyYXRpb24pLHRoaXMuX2xpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIixvKSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5uZXcgUHJvbWlzZSgoZT0+e2NsZWFyVGltZW91dCh0aGlzLl9wcmV2aW91c1RpbWVvdXQpLHRoaXMuX3ByZXZpb3VzVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX2xpdmVFbGVtZW50LnRleHRDb250ZW50PXQsZSgpLCJudW1iZXIiPT10eXBlb2YgaSYmKHRoaXMuX3ByZXZpb3VzVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+dGhpcy5jbGVhcigpKSxpKSl9KSwxMDApfSkpKSl9Y2xlYXIoKXt0aGlzLl9saXZlRWxlbWVudCYmKHRoaXMuX2xpdmVFbGVtZW50LnRleHRDb250ZW50PSIiKX1uZ09uRGVzdHJveSgpe2NsZWFyVGltZW91dCh0aGlzLl9wcmV2aW91c1RpbWVvdXQpLHRoaXMuX2xpdmVFbGVtZW50JiZ0aGlzLl9saXZlRWxlbWVudC5wYXJlbnROb2RlJiYodGhpcy5fbGl2ZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9saXZlRWxlbWVudCksdGhpcy5fbGl2ZUVsZW1lbnQ9bnVsbCl9X2NyZWF0ZUxpdmVFbGVtZW50KCl7Y29uc3QgdD0iY2RrLWxpdmUtYW5ub3VuY2VyLWVsZW1lbnQiLGU9dGhpcy5fZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0KSxuPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlW3RdKTtyZXR1cm4gbi5jbGFzc0xpc3QuYWRkKHQpLG4uY2xhc3NMaXN0LmFkZCgiY2RrLXZpc3VhbGx5LWhpZGRlbiIpLG4uc2V0QXR0cmlidXRlKCJhcmlhLWF0b21pYyIsInRydWUiKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIiwicG9saXRlIiksdGhpcy5fZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKSxufX1PSS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8T0kpKHZyKE1JLDgpLHZyKGFfKSx2cihaXyksdnIoeEksOCkpfSxPSS7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgT0kodnIoTUksOCksdnIoYV8pLHZyKFpfKSx2cih4SSw4KSl9LHRva2VuOk9JLHByb3ZpZGVkSW46InJvb3QifSksT0kuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W01JXX1dfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3hJXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChPSSxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltNSV19XX0se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt4SV19XX1dfSksbnVsbCk7Y2xhc3MgUEl7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2xpdmVBbm5vdW5jZXI9ZSx0aGlzLl9jb250ZW50T2JzZXJ2ZXI9bix0aGlzLl9uZ1pvbmU9byx0aGlzLl9wb2xpdGVuZXNzPSJwb2xpdGUifWdldCBwb2xpdGVuZXNzKCl7cmV0dXJuIHRoaXMuX3BvbGl0ZW5lc3N9c2V0IHBvbGl0ZW5lc3ModCl7dGhpcy5fcG9saXRlbmVzcz0ib2ZmIj09PXR8fCJhc3NlcnRpdmUiPT09dD90OiJwb2xpdGUiLCJvZmYiPT09dGhpcy5fcG9saXRlbmVzcz90aGlzLl9zdWJzY3JpcHRpb24mJih0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9zdWJzY3JpcHRpb249bnVsbCk6dGhpcy5fc3Vic2NyaXB0aW9ufHwodGhpcy5fc3Vic2NyaXB0aW9uPXRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnRoaXMuX2NvbnRlbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYpLnN1YnNjcmliZSgoKCk9Pntjb25zdCB0PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudDt0IT09dGhpcy5fcHJldmlvdXNBbm5vdW5jZWRUZXh0JiYodGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZSh0LHRoaXMuX3BvbGl0ZW5lc3MpLHRoaXMuX3ByZXZpb3VzQW5ub3VuY2VkVGV4dD10KX0pKSkpKX1uZ09uRGVzdHJveSgpe3RoaXMuX3N1YnNjcmlwdGlvbiYmdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fVBJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQSSkoU20oaGcpLFNtKE9JKSxTbShWeiksU20oYV8pKX0sUEkuybVkaXI9bG8oe3R5cGU6UEksc2VsZWN0b3JzOltbIiIsImNka0FyaWFMaXZlIiwiIl1dLGlucHV0czp7cG9saXRlbmVzczpbImNka0FyaWFMaXZlIiwicG9saXRlbmVzcyJdfSxleHBvcnRBczpbImNka0FyaWFMaXZlIl19KSxQSS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpPSX0se3R5cGU6Vnp9LHt0eXBlOmFffV0sUEkucHJvcERlY29yYXRvcnM9e3BvbGl0ZW5lc3M6W3t0eXBlOnh5LGFyZ3M6WyJjZGtBcmlhTGl2ZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUEksW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0FyaWFMaXZlXSIsZXhwb3J0QXM6ImNka0FyaWFMaXZlIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpPSX0se3R5cGU6Vnp9LHt0eXBlOmFffV19KSx7cG9saXRlbmVzczpbe3R5cGU6eHksYXJnczpbImNka0FyaWFMaXZlIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3Qgd0k9bmV3IEdhKCJjZGstZm9jdXMtbW9uaXRvci1kZWZhdWx0LW9wdGlvbnMiKSxrST1Oeih7cGFzc2l2ZTohMCxjYXB0dXJlOiEwfSk7Y2xhc3MgU0l7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLl9uZ1pvbmU9dCx0aGlzLl9wbGF0Zm9ybT1lLHRoaXMuX2lucHV0TW9kYWxpdHlEZXRlY3Rvcj1uLHRoaXMuX29yaWdpbj1udWxsLHRoaXMuX3dpbmRvd0ZvY3VzZWQ9ITEsdGhpcy5fb3JpZ2luRnJvbVRvdWNoSW50ZXJhY3Rpb249ITEsdGhpcy5fZWxlbWVudEluZm89bmV3IE1hcCx0aGlzLl9tb25pdG9yZWRFbGVtZW50Q291bnQ9MCx0aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudD1uZXcgTWFwLHRoaXMuX3dpbmRvd0ZvY3VzTGlzdGVuZXI9KCk9Pnt0aGlzLl93aW5kb3dGb2N1c2VkPSEwLHRoaXMuX3dpbmRvd0ZvY3VzVGltZW91dElkPXNldFRpbWVvdXQoKCgpPT50aGlzLl93aW5kb3dGb2N1c2VkPSExKSl9LHRoaXMuX3N0b3BJbnB1dE1vZGFsaXR5RGV0ZWN0b3I9bmV3IEksdGhpcy5fcm9vdE5vZGVGb2N1c0FuZEJsdXJMaXN0ZW5lcj10PT57Y29uc3QgZT1Meih0KSxuPSJmb2N1cyI9PT10LnR5cGU/dGhpcy5fb25Gb2N1czp0aGlzLl9vbkJsdXI7Zm9yKGxldCBvPWU7bztvPW8ucGFyZW50RWxlbWVudCluLmNhbGwodGhpcyx0LG8pfSx0aGlzLl9kb2N1bWVudD1vLHRoaXMuX2RldGVjdGlvbk1vZGU9KG51bGw9PWk/dm9pZCAwOmkuZGV0ZWN0aW9uTW9kZSl8fDB9bW9uaXRvcih0LGU9ITEpe2NvbnN0IG49eHoodCk7aWYoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcnx8MSE9PW4ubm9kZVR5cGUpcmV0dXJuIEV0KG51bGwpO2NvbnN0IG89SHoobil8fHRoaXMuX2dldERvY3VtZW50KCksaT10aGlzLl9lbGVtZW50SW5mby5nZXQobik7aWYoaSlyZXR1cm4gZSYmKGkuY2hlY2tDaGlsZHJlbj0hMCksaS5zdWJqZWN0O2NvbnN0IGE9e2NoZWNrQ2hpbGRyZW46ZSxzdWJqZWN0Om5ldyBJLHJvb3ROb2RlOm99O3JldHVybiB0aGlzLl9lbGVtZW50SW5mby5zZXQobixhKSx0aGlzLl9yZWdpc3Rlckdsb2JhbExpc3RlbmVycyhhKSxhLnN1YmplY3R9c3RvcE1vbml0b3JpbmcodCl7Y29uc3QgZT14eih0KSxuPXRoaXMuX2VsZW1lbnRJbmZvLmdldChlKTtuJiYobi5zdWJqZWN0LmNvbXBsZXRlKCksdGhpcy5fc2V0Q2xhc3NlcyhlKSx0aGlzLl9lbGVtZW50SW5mby5kZWxldGUoZSksdGhpcy5fcmVtb3ZlR2xvYmFsTGlzdGVuZXJzKG4pKX1mb2N1c1ZpYSh0LGUsbil7Y29uc3Qgbz14eih0KTtvPT09dGhpcy5fZ2V0RG9jdW1lbnQoKS5hY3RpdmVFbGVtZW50P3RoaXMuX2dldENsb3Nlc3RFbGVtZW50c0luZm8obykuZm9yRWFjaCgoKFt0LG5dKT0+dGhpcy5fb3JpZ2luQ2hhbmdlZCh0LGUsbikpKToodGhpcy5fc2V0T3JpZ2luKGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBvLmZvY3VzJiZvLmZvY3VzKG4pKX1uZ09uRGVzdHJveSgpe3RoaXMuX2VsZW1lbnRJbmZvLmZvckVhY2goKCh0LGUpPT50aGlzLnN0b3BNb25pdG9yaW5nKGUpKSl9X2dldERvY3VtZW50KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50fHxkb2N1bWVudH1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2dldERvY3VtZW50KCkuZGVmYXVsdFZpZXd8fHdpbmRvd31fdG9nZ2xlQ2xhc3ModCxlLG4pe24/dC5jbGFzc0xpc3QuYWRkKGUpOnQuY2xhc3NMaXN0LnJlbW92ZShlKX1fZ2V0Rm9jdXNPcmlnaW4odCl7cmV0dXJuIHRoaXMuX29yaWdpbj90aGlzLl9vcmlnaW5Gcm9tVG91Y2hJbnRlcmFjdGlvbj90aGlzLl9zaG91bGRCZUF0dHJpYnV0ZWRUb1RvdWNoKHQpPyJ0b3VjaCI6InByb2dyYW0iOnRoaXMuX29yaWdpbjp0aGlzLl93aW5kb3dGb2N1c2VkJiZ0aGlzLl9sYXN0Rm9jdXNPcmlnaW4/dGhpcy5fbGFzdEZvY3VzT3JpZ2luOiJwcm9ncmFtIn1fc2hvdWxkQmVBdHRyaWJ1dGVkVG9Ub3VjaCh0KXtyZXR1cm4gMT09PXRoaXMuX2RldGVjdGlvbk1vZGV8fCEhKG51bGw9PXQ/dm9pZCAwOnQuY29udGFpbnModGhpcy5faW5wdXRNb2RhbGl0eURldGVjdG9yLl9tb3N0UmVjZW50VGFyZ2V0KSl9X3NldENsYXNzZXModCxlKXt0aGlzLl90b2dnbGVDbGFzcyh0LCJjZGstZm9jdXNlZCIsISFlKSx0aGlzLl90b2dnbGVDbGFzcyh0LCJjZGstdG91Y2gtZm9jdXNlZCIsInRvdWNoIj09PWUpLHRoaXMuX3RvZ2dsZUNsYXNzKHQsImNkay1rZXlib2FyZC1mb2N1c2VkIiwia2V5Ym9hcmQiPT09ZSksdGhpcy5fdG9nZ2xlQ2xhc3ModCwiY2RrLW1vdXNlLWZvY3VzZWQiLCJtb3VzZSI9PT1lKSx0aGlzLl90b2dnbGVDbGFzcyh0LCJjZGstcHJvZ3JhbS1mb2N1c2VkIiwicHJvZ3JhbSI9PT1lKX1fc2V0T3JpZ2luKHQsZT0hMSl7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3RoaXMuX29yaWdpbj10LHRoaXMuX29yaWdpbkZyb21Ub3VjaEludGVyYWN0aW9uPSJ0b3VjaCI9PT10JiZlLDA9PT10aGlzLl9kZXRlY3Rpb25Nb2RlJiYoY2xlYXJUaW1lb3V0KHRoaXMuX29yaWdpblRpbWVvdXRJZCksdGhpcy5fb3JpZ2luVGltZW91dElkPXNldFRpbWVvdXQoKCgpPT50aGlzLl9vcmlnaW49bnVsbCksdGhpcy5fb3JpZ2luRnJvbVRvdWNoSW50ZXJhY3Rpb24/NjUwOjEpKX0pKX1fb25Gb2N1cyh0LGUpe2NvbnN0IG49dGhpcy5fZWxlbWVudEluZm8uZ2V0KGUpLG89THoodCk7biYmKG4uY2hlY2tDaGlsZHJlbnx8ZT09PW8pJiZ0aGlzLl9vcmlnaW5DaGFuZ2VkKGUsdGhpcy5fZ2V0Rm9jdXNPcmlnaW4obyksbil9X29uQmx1cih0LGUpe2NvbnN0IG49dGhpcy5fZWxlbWVudEluZm8uZ2V0KGUpOyFufHxuLmNoZWNrQ2hpbGRyZW4mJnQucmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIE5vZGUmJmUuY29udGFpbnModC5yZWxhdGVkVGFyZ2V0KXx8KHRoaXMuX3NldENsYXNzZXMoZSksdGhpcy5fZW1pdE9yaWdpbihuLnN1YmplY3QsbnVsbCkpfV9lbWl0T3JpZ2luKHQsZSl7dGhpcy5fbmdab25lLnJ1bigoKCk9PnQubmV4dChlKSkpfV9yZWdpc3Rlckdsb2JhbExpc3RlbmVycyh0KXtpZighdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybjtjb25zdCBlPXQucm9vdE5vZGUsbj10aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudC5nZXQoZSl8fDA7bnx8dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX3Jvb3ROb2RlRm9jdXNBbmRCbHVyTGlzdGVuZXIsa0kpLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5fcm9vdE5vZGVGb2N1c0FuZEJsdXJMaXN0ZW5lcixrSSl9KSksdGhpcy5fcm9vdE5vZGVGb2N1c0xpc3RlbmVyQ291bnQuc2V0KGUsbisxKSwxPT0rK3RoaXMuX21vbml0b3JlZEVsZW1lbnRDb3VudCYmKHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0aGlzLl9nZXRXaW5kb3coKS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fd2luZG93Rm9jdXNMaXN0ZW5lcil9KSksdGhpcy5faW5wdXRNb2RhbGl0eURldGVjdG9yLm1vZGFsaXR5RGV0ZWN0ZWQucGlwZShJZSh0aGlzLl9zdG9wSW5wdXRNb2RhbGl0eURldGVjdG9yKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5fc2V0T3JpZ2luKHQsITApfSkpKX1fcmVtb3ZlR2xvYmFsTGlzdGVuZXJzKHQpe2NvbnN0IGU9dC5yb290Tm9kZTtpZih0aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudC5oYXMoZSkpe2NvbnN0IHQ9dGhpcy5fcm9vdE5vZGVGb2N1c0xpc3RlbmVyQ291bnQuZ2V0KGUpO3Q+MT90aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudC5zZXQoZSx0LTEpOihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9yb290Tm9kZUZvY3VzQW5kQmx1ckxpc3RlbmVyLGtJKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX3Jvb3ROb2RlRm9jdXNBbmRCbHVyTGlzdGVuZXIsa0kpLHRoaXMuX3Jvb3ROb2RlRm9jdXNMaXN0ZW5lckNvdW50LmRlbGV0ZShlKSl9LS10aGlzLl9tb25pdG9yZWRFbGVtZW50Q291bnR8fCh0aGlzLl9nZXRXaW5kb3coKS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fd2luZG93Rm9jdXNMaXN0ZW5lciksdGhpcy5fc3RvcElucHV0TW9kYWxpdHlEZXRlY3Rvci5uZXh0KCksY2xlYXJUaW1lb3V0KHRoaXMuX3dpbmRvd0ZvY3VzVGltZW91dElkKSxjbGVhclRpbWVvdXQodGhpcy5fb3JpZ2luVGltZW91dElkKSl9X29yaWdpbkNoYW5nZWQodCxlLG4pe3RoaXMuX3NldENsYXNzZXModCxlKSx0aGlzLl9lbWl0T3JpZ2luKG4uc3ViamVjdCxlKSx0aGlzLl9sYXN0Rm9jdXNPcmlnaW49ZX1fZ2V0Q2xvc2VzdEVsZW1lbnRzSW5mbyh0KXtjb25zdCBlPVtdO3JldHVybiB0aGlzLl9lbGVtZW50SW5mby5mb3JFYWNoKCgobixvKT0+eyhvPT09dHx8bi5jaGVja0NoaWxkcmVuJiZvLmNvbnRhaW5zKHQpKSYmZS5wdXNoKFtvLG5dKX0pKSxlfX1TSS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U0kpKHZyKGFfKSx2cih3eiksdnIoQ0kpLHZyKFpfLDgpLHZyKHdJLDgpKX0sU0kuybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IFNJKHZyKGFfKSx2cih3eiksdnIoQ0kpLHZyKFpfLDgpLHZyKHdJLDgpKX0sdG9rZW46U0kscHJvdmlkZWRJbjoicm9vdCJ9KSxTSS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6Q0l9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbd0ldfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFNJLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOkNJfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3dJXX1dfV19KSxudWxsKTtjbGFzcyBESXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9mb2N1c01vbml0b3I9ZSx0aGlzLmNka0ZvY3VzQ2hhbmdlPW5ldyBMaH1uZ0FmdGVyVmlld0luaXQoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDt0aGlzLl9tb25pdG9yU3Vic2NyaXB0aW9uPXRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHQsMT09PXQubm9kZVR5cGUmJnQuaGFzQXR0cmlidXRlKCJjZGtNb25pdG9yU3VidHJlZUZvY3VzIikpLnN1YnNjcmliZSgodD0+dGhpcy5jZGtGb2N1c0NoYW5nZS5lbWl0KHQpKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZiksdGhpcy5fbW9uaXRvclN1YnNjcmlwdGlvbiYmdGhpcy5fbW9uaXRvclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1ESS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8REkpKFNtKGhnKSxTbShTSSkpfSxESS7JtWRpcj1sbyh7dHlwZTpESSxzZWxlY3RvcnM6W1siIiwiY2RrTW9uaXRvckVsZW1lbnRGb2N1cyIsIiJdLFsiIiwiY2RrTW9uaXRvclN1YnRyZWVGb2N1cyIsIiJdXSxvdXRwdXRzOntjZGtGb2N1c0NoYW5nZToiY2RrRm9jdXNDaGFuZ2UifX0pLERJLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlNJfV0sREkucHJvcERlY29yYXRvcnM9e2Nka0ZvY3VzQ2hhbmdlOlt7dHlwZTpPeX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKERJLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltjZGtNb25pdG9yRWxlbWVudEZvY3VzXSwgW2Nka01vbml0b3JTdWJ0cmVlRm9jdXNdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpTSX1dfSkse2Nka0ZvY3VzQ2hhbmdlOlt7dHlwZTpPeX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBFST0iY2RrLWhpZ2gtY29udHJhc3QtYmxhY2stb24td2hpdGUiLFJJPSJjZGstaGlnaC1jb250cmFzdC13aGl0ZS1vbi1ibGFjayIsQUk9ImNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSI7Y2xhc3MgVEl7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9wbGF0Zm9ybT10LHRoaXMuX2RvY3VtZW50PWV9Z2V0SGlnaENvbnRyYXN0TW9kZSgpe2lmKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpcmV0dXJuIDA7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LnN0eWxlLmJhY2tncm91bmRDb2xvcj0icmdiKDEsMiwzKSIsdC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7Y29uc3QgZT10aGlzLl9kb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93LG49ZSYmZS5nZXRDb21wdXRlZFN0eWxlP2UuZ2V0Q29tcHV0ZWRTdHlsZSh0KTpudWxsLG89KG4mJm4uYmFja2dyb3VuZENvbG9yfHwiIikucmVwbGFjZSgvIC9nLCIiKTtzd2l0Y2godGhpcy5fZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KSxvKXtjYXNlInJnYigwLDAsMCkiOnJldHVybiAyO2Nhc2UicmdiKDI1NSwyNTUsMjU1KSI6cmV0dXJuIDF9cmV0dXJuIDB9X2FwcGx5Qm9keUhpZ2hDb250cmFzdE1vZGVDc3NDbGFzc2VzKCl7aWYoIXRoaXMuX2hhc0NoZWNrZWRIaWdoQ29udHJhc3RNb2RlJiZ0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJnRoaXMuX2RvY3VtZW50LmJvZHkpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Q7dC5yZW1vdmUoQUkpLHQucmVtb3ZlKEVJKSx0LnJlbW92ZShSSSksdGhpcy5faGFzQ2hlY2tlZEhpZ2hDb250cmFzdE1vZGU9ITA7Y29uc3QgZT10aGlzLmdldEhpZ2hDb250cmFzdE1vZGUoKTsxPT09ZT8odC5hZGQoQUkpLHQuYWRkKEVJKSk6Mj09PWUmJih0LmFkZChBSSksdC5hZGQoUkkpKX19fVRJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUSSkodnIod3opLHZyKFpfKSl9LFRJLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBUSSh2cih3eiksdnIoWl8pKX0sdG9rZW46VEkscHJvdmlkZWRJbjoicm9vdCJ9KSxUSS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnd6fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFRJLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIE5Je2NvbnN0cnVjdG9yKHQpe3QuX2FwcGx5Qm9keUhpZ2hDb250cmFzdE1vZGVDc3NDbGFzc2VzKCl9fU5JLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxOSSkodnIoVEkpKX0sTkkuybVtb2Q9YW8oe3R5cGU6Tkl9KSxOSS7JtWluaj12bih7aW1wb3J0czpbW2t6LFV6XV19KSxOSS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlRJfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOSSxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W2t6LFV6XSxkZWNsYXJhdGlvbnM6W1BJLHNJLERJXSxleHBvcnRzOltQSSxzSSxESV19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpUSX1dfSksbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhOSSx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW1BJLHNJLERJXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltreixVel19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bUEksc0ksREldfX0pO2NvbnN0IHpJPW5ldyBHYSgiY2RrLWRpci1kb2MiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIElJKCl7cmV0dXJuIE9yKFpfKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovfSk7Y2xhc3MgSEl7Y29uc3RydWN0b3IodCl7aWYodGhpcy52YWx1ZT0ibHRyIix0aGlzLmNoYW5nZT1uZXcgTGgsdCl7Y29uc3QgZT10LmRvY3VtZW50RWxlbWVudD90LmRvY3VtZW50RWxlbWVudC5kaXI6bnVsbCxuPSh0LmJvZHk/dC5ib2R5LmRpcjpudWxsKXx8ZTt0aGlzLnZhbHVlPSJsdHIiPT09bnx8InJ0bCI9PT1uP246Imx0ciJ9fW5nT25EZXN0cm95KCl7dGhpcy5jaGFuZ2UuY29tcGxldGUoKX19SEkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEhJKSh2cih6SSw4KSl9LEhJLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBISSh2cih6SSw4KSl9LHRva2VuOkhJLHByb3ZpZGVkSW46InJvb3QifSksSEkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3pJXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChISSxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt6SV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBGSXtjb25zdHJ1Y3Rvcigpe3RoaXMuX2Rpcj0ibHRyIix0aGlzLl9pc0luaXRpYWxpemVkPSExLHRoaXMuY2hhbmdlPW5ldyBMaH1nZXQgZGlyKCl7cmV0dXJuIHRoaXMuX2Rpcn1zZXQgZGlyKHQpe2NvbnN0IGU9dGhpcy5fZGlyLG49dD90LnRvTG93ZXJDYXNlKCk6dDt0aGlzLl9yYXdEaXI9dCx0aGlzLl9kaXI9Imx0ciI9PT1ufHwicnRsIj09PW4/bjoibHRyIixlIT09dGhpcy5fZGlyJiZ0aGlzLl9pc0luaXRpYWxpemVkJiZ0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX2Rpcil9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGlyfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2lzSW5pdGlhbGl6ZWQ9ITB9bmdPbkRlc3Ryb3koKXt0aGlzLmNoYW5nZS5jb21wbGV0ZSgpfX1GSS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RkkpfSxGSS7JtWRpcj1sbyh7dHlwZTpGSSxzZWxlY3RvcnM6W1siIiwiZGlyIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJmpwKCJkaXIiLG4uX3Jhd0Rpcil9LGlucHV0czp7ZGlyOiJkaXIifSxvdXRwdXRzOntjaGFuZ2U6ImRpckNoYW5nZSJ9LGV4cG9ydEFzOlsiZGlyIl0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpISSx1c2VFeGlzdGluZzpGSX1dKV19KSxGSS5wcm9wRGVjb3JhdG9ycz17Y2hhbmdlOlt7dHlwZTpPeSxhcmdzOlsiZGlyQ2hhbmdlIl19XSxkaXI6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRkksW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Rpcl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6SEksdXNlRXhpc3Rpbmc6Rkl9XSxob3N0OnsiW2F0dHIuZGlyXSI6Il9yYXdEaXIifSxleHBvcnRBczoiZGlyIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7Y2hhbmdlOlt7dHlwZTpPeSxhcmdzOlsiZGlyQ2hhbmdlIl19XSxkaXI6W3t0eXBlOnh5fV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIExJe31MSS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TEkpfSxMSS7JtW1vZD1hbyh7dHlwZTpMSX0pLExJLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKExJLFt7dHlwZTpBeSxhcmdzOlt7ZXhwb3J0czpbRkldLGRlY2xhcmF0aW9uczpbRkldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oTEkse2RlY2xhcmF0aW9uczpbRkldLGV4cG9ydHM6W0ZJXX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgQkk9bmV3IE9nKCIxMi4yLjEiKSxWST1bIioiLFtbIm1hdC1vcHRpb24iXSxbIm5nLWNvbnRhaW5lciJdXV07ZnVuY3Rpb24gakkodCxlKXtpZigxJnQmJlRtKDAsIm1hdC1wc2V1ZG8tY2hlY2tib3giLDQpLDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJzdGF0ZSIsdC5zZWxlY3RlZD8iY2hlY2tlZCI6InVuY2hlY2tlZCIpKCJkaXNhYmxlZCIsdC5kaXNhYmxlZCl9fWZ1bmN0aW9uIFVJKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsNSksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRHUoIigiLHQuZ3JvdXAubGFiZWwsIikiKX19bmV3IE9nKCIxMi4yLjMiKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEdJe31HSS5TVEFOREFSRF9DVVJWRT0iY3ViaWMtYmV6aWVyKDAuNCwwLjAsMC4yLDEpIixHSS5ERUNFTEVSQVRJT05fQ1VSVkU9ImN1YmljLWJlemllcigwLjAsMC4wLDAuMiwxKSIsR0kuQUNDRUxFUkFUSU9OX0NVUlZFPSJjdWJpYy1iZXppZXIoMC40LDAuMCwxLDEpIixHSS5TSEFSUF9DVVJWRT0iY3ViaWMtYmV6aWVyKDAuNCwwLjAsMC42LDEpIjtjbGFzcyBXSXt9V0kuQ09NUExFWD0iMzc1bXMiLFdJLkVOVEVSSU5HPSIyMjVtcyIsV0kuRVhJVElORz0iMTk1bXMiOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgWUk9bmV3IE9nKCIxMi4yLjMiKSxxST1uZXcgR2EoIm1hdC1zYW5pdHktY2hlY2tzIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBaSSgpe3JldHVybiEwfX0pO2NsYXNzIFhJe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9oYXNEb25lR2xvYmFsQ2hlY2tzPSExLHRoaXMuX2RvY3VtZW50PW4sdC5fYXBwbHlCb2R5SGlnaENvbnRyYXN0TW9kZUNzc0NsYXNzZXMoKSx0aGlzLl9zYW5pdHlDaGVja3M9ZSx0aGlzLl9oYXNEb25lR2xvYmFsQ2hlY2tzfHwodGhpcy5fY2hlY2tEb2N0eXBlSXNEZWZpbmVkKCksdGhpcy5fY2hlY2tUaGVtZUlzUHJlc2VudCgpLHRoaXMuX2NoZWNrQ2RrVmVyc2lvbk1hdGNoKCksdGhpcy5faGFzRG9uZUdsb2JhbENoZWNrcz0hMCl9X2dldFdpbmRvdygpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdztyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJnQ/dDpudWxsfV9jaGVja0lzRW5hYmxlZCh0KXtyZXR1cm4hKCF5XygpfHx0aGlzLl9pc1Rlc3RFbnYoKSkmJigiYm9vbGVhbiI9PXR5cGVvZiB0aGlzLl9zYW5pdHlDaGVja3M/dGhpcy5fc2FuaXR5Q2hlY2tzOiEhdGhpcy5fc2FuaXR5Q2hlY2tzW3RdKX1faXNUZXN0RW52KCl7Y29uc3QgdD10aGlzLl9nZXRXaW5kb3coKTtyZXR1cm4gdCYmKHQuX19rYXJtYV9ffHx0Lmphc21pbmUpfV9jaGVja0RvY3R5cGVJc0RlZmluZWQoKXt0aGlzLl9jaGVja0lzRW5hYmxlZCgiZG9jdHlwZSIpJiYhdGhpcy5fZG9jdW1lbnQuZG9jdHlwZSYmY29uc29sZS53YXJuKCJDdXJyZW50IGRvY3VtZW50IGRvZXMgbm90IGhhdmUgYSBkb2N0eXBlLiBUaGlzIG1heSBjYXVzZSBzb21lIEFuZ3VsYXIgTWF0ZXJpYWwgY29tcG9uZW50cyBub3QgdG8gYmVoYXZlIGFzIGV4cGVjdGVkLiIpfV9jaGVja1RoZW1lSXNQcmVzZW50KCl7aWYoIXRoaXMuX2NoZWNrSXNFbmFibGVkKCJ0aGVtZSIpfHwhdGhpcy5fZG9jdW1lbnQuYm9keXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGdldENvbXB1dGVkU3R5bGUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc0xpc3QuYWRkKCJtYXQtdGhlbWUtbG9hZGVkLW1hcmtlciIpLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7Y29uc3QgZT1nZXRDb21wdXRlZFN0eWxlKHQpO2UmJiJub25lIiE9PWUuZGlzcGxheSYmY29uc29sZS53YXJuKCJDb3VsZCBub3QgZmluZCBBbmd1bGFyIE1hdGVyaWFsIGNvcmUgdGhlbWUuIE1vc3QgTWF0ZXJpYWwgY29tcG9uZW50cyBtYXkgbm90IHdvcmsgYXMgZXhwZWN0ZWQuIEZvciBtb3JlIGluZm8gcmVmZXIgdG8gdGhlIHRoZW1pbmcgZ3VpZGU6IGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9ndWlkZS90aGVtaW5nIiksdGhpcy5fZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KX1fY2hlY2tDZGtWZXJzaW9uTWF0Y2goKXt0aGlzLl9jaGVja0lzRW5hYmxlZCgidmVyc2lvbiIpJiZZSS5mdWxsIT09QkkuZnVsbCYmY29uc29sZS53YXJuKCJUaGUgQW5ndWxhciBNYXRlcmlhbCB2ZXJzaW9uICgiK1lJLmZ1bGwrIikgZG9lcyBub3QgbWF0Y2ggdGhlIEFuZ3VsYXIgQ0RLIHZlcnNpb24gKCIrQkkuZnVsbCsiKS5cblBsZWFzZSBlbnN1cmUgdGhlIHZlcnNpb25zIG9mIHRoZXNlIHR3byBwYWNrYWdlcyBleGFjdGx5IG1hdGNoLiIpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIEtJKHQpe3JldHVybiBjbGFzcyBleHRlbmRzIHR7Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5fZGlzYWJsZWQ9ITF9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD15eih0KX19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBKSSh0LGUpe3JldHVybiBjbGFzcyBleHRlbmRzIHR7Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5kZWZhdWx0Q29sb3I9ZSx0aGlzLmNvbG9yPWV9Z2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuX2NvbG9yfXNldCBjb2xvcih0KXtjb25zdCBlPXR8fHRoaXMuZGVmYXVsdENvbG9yO2UhPT10aGlzLl9jb2xvciYmKHRoaXMuX2NvbG9yJiZ0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShgbWF0LSR7dGhpcy5fY29sb3J9YCksZSYmdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG1hdC0ke2V9YCksdGhpcy5fY29sb3I9ZSl9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gUUkodCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLl9kaXNhYmxlUmlwcGxlPSExfWdldCBkaXNhYmxlUmlwcGxlKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVSaXBwbGV9c2V0IGRpc2FibGVSaXBwbGUodCl7dGhpcy5fZGlzYWJsZVJpcHBsZT15eih0KX19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiAkSSh0LGU9MCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLl90YWJJbmRleD1lLHRoaXMuZGVmYXVsdFRhYkluZGV4PWV9Z2V0IHRhYkluZGV4KCl7cmV0dXJuIHRoaXMuZGlzYWJsZWQ/LTE6dGhpcy5fdGFiSW5kZXh9c2V0IHRhYkluZGV4KHQpe3RoaXMuX3RhYkluZGV4PW51bGwhPXQ/X3oodCk6dGhpcy5kZWZhdWx0VGFiSW5kZXh9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gdEgodCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLnN0YXRlQ2hhbmdlcz1uZXcgSSx0aGlzLmVycm9yU3RhdGU9ITF9dXBkYXRlRXJyb3JTdGF0ZSgpe2NvbnN0IHQ9dGhpcy5lcnJvclN0YXRlLGU9KHRoaXMuZXJyb3JTdGF0ZU1hdGNoZXJ8fHRoaXMuX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcikuaXNFcnJvclN0YXRlKHRoaXMubmdDb250cm9sP3RoaXMubmdDb250cm9sLmNvbnRyb2w6bnVsbCx0aGlzLl9wYXJlbnRGb3JtR3JvdXB8fHRoaXMuX3BhcmVudEZvcm0pO2UhPT10JiYodGhpcy5lcnJvclN0YXRlPWUsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBlSCh0KXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e2NvbnN0cnVjdG9yKC4uLnQpe3N1cGVyKC4uLnQpLHRoaXMuX2lzSW5pdGlhbGl6ZWQ9ITEsdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzPVtdLHRoaXMuaW5pdGlhbGl6ZWQ9bmV3IEQoKHQ9Pnt0aGlzLl9pc0luaXRpYWxpemVkP3RoaXMuX25vdGlmeVN1YnNjcmliZXIodCk6dGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzLnB1c2godCl9KSl9X21hcmtJbml0aWFsaXplZCgpe2lmKHRoaXMuX2lzSW5pdGlhbGl6ZWQmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiVGhpcyBkaXJlY3RpdmUgaGFzIGFscmVhZHkgYmVlbiBtYXJrZWQgYXMgaW5pdGlhbGl6ZWQgYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIHR3aWNlLiIpO3RoaXMuX2lzSW5pdGlhbGl6ZWQ9ITAsdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzLmZvckVhY2godGhpcy5fbm90aWZ5U3Vic2NyaWJlciksdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzPW51bGx9X25vdGlmeVN1YnNjcmliZXIodCl7dC5uZXh0KCksdC5jb21wbGV0ZSgpfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9YSS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WEkpKHZyKFRJKSx2cihxSSw4KSx2cihaXykpfSxYSS7JtW1vZD1hbyh7dHlwZTpYSX0pLFhJLsm1aW5qPXZuKHtpbXBvcnRzOltbTEldLExJXX0pLFhJLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6VEl9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbcUldfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWEksW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltMSV0sZXhwb3J0czpbTEldfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VEl9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbcUldfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhYSSx7aW1wb3J0czpmdW5jdGlvbigpe3JldHVybltMSV19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTEldfX0pO2NvbnN0IG5IPW5ldyBHYSgiTUFUX0RBVEVfTE9DQUxFIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBvSCgpe3JldHVybiBPcihXeSl9fSk7Y2xhc3MgaUh7Y29uc3RydWN0b3IoKXt0aGlzLl9sb2NhbGVDaGFuZ2VzPW5ldyBJLHRoaXMubG9jYWxlQ2hhbmdlcz10aGlzLl9sb2NhbGVDaGFuZ2VzfWdldFZhbGlkRGF0ZU9yTnVsbCh0KXtyZXR1cm4gdGhpcy5pc0RhdGVJbnN0YW5jZSh0KSYmdGhpcy5pc1ZhbGlkKHQpP3Q6bnVsbH1kZXNlcmlhbGl6ZSh0KXtyZXR1cm4gbnVsbD09dHx8dGhpcy5pc0RhdGVJbnN0YW5jZSh0KSYmdGhpcy5pc1ZhbGlkKHQpP3Q6dGhpcy5pbnZhbGlkKCl9c2V0TG9jYWxlKHQpe3RoaXMubG9jYWxlPXQsdGhpcy5fbG9jYWxlQ2hhbmdlcy5uZXh0KCl9Y29tcGFyZURhdGUodCxlKXtyZXR1cm4gdGhpcy5nZXRZZWFyKHQpLXRoaXMuZ2V0WWVhcihlKXx8dGhpcy5nZXRNb250aCh0KS10aGlzLmdldE1vbnRoKGUpfHx0aGlzLmdldERhdGUodCktdGhpcy5nZXREYXRlKGUpfXNhbWVEYXRlKHQsZSl7aWYodCYmZSl7bGV0IG49dGhpcy5pc1ZhbGlkKHQpLG89dGhpcy5pc1ZhbGlkKGUpO3JldHVybiBuJiZvPyF0aGlzLmNvbXBhcmVEYXRlKHQsZSk6bj09b31yZXR1cm4gdD09ZX1jbGFtcERhdGUodCxlLG4pe3JldHVybiBlJiZ0aGlzLmNvbXBhcmVEYXRlKHQsZSk8MD9lOm4mJnRoaXMuY29tcGFyZURhdGUodCxuKT4wP246dH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IGFIPW5ldyBHYSgibWF0LWRhdGUtZm9ybWF0cyIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgckg7dHJ5e3JIPSJ1bmRlZmluZWQiIT10eXBlb2YgSW50bH1jYXRjaChqQ3Qpe3JIPSExfWNvbnN0IHNIPXtsb25nOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxzaG9ydDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLG5hcnJvdzpbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdfSxsSD1wSCgzMSwodD0+U3RyaW5nKHQrMSkpKSxjSD17bG9uZzpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxuYXJyb3c6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl19LGRIPS9eXGR7NH0tXGR7Mn0tXGR7Mn0oPzpUXGR7Mn06XGR7Mn06XGR7Mn0oPzpcLlxkKyk/KD86WnwoPzooPzpcK3wtKVxkezJ9OlxkezJ9KSk/KT8kLztmdW5jdGlvbiBwSCh0LGUpe2NvbnN0IG49QXJyYXkodCk7Zm9yKGxldCBvPTA7bzx0O28rKyluW29dPWUobyk7cmV0dXJuIG59Y2xhc3MgbUggZXh0ZW5kcyBpSHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy51c2VVdGNGb3JEaXNwbGF5PSEwLHN1cGVyLnNldExvY2FsZSh0KSx0aGlzLnVzZVV0Y0ZvckRpc3BsYXk9IWUuVFJJREVOVCx0aGlzLl9jbGFtcERhdGU9ZS5UUklERU5UfHxlLkVER0V9Z2V0WWVhcih0KXtyZXR1cm4gdC5nZXRGdWxsWWVhcigpfWdldE1vbnRoKHQpe3JldHVybiB0LmdldE1vbnRoKCl9Z2V0RGF0ZSh0KXtyZXR1cm4gdC5nZXREYXRlKCl9Z2V0RGF5T2ZXZWVrKHQpe3JldHVybiB0LmdldERheSgpfWdldE1vbnRoTmFtZXModCl7aWYockgpe2NvbnN0IGU9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGUse21vbnRoOnQsdGltZVpvbmU6InV0YyJ9KTtyZXR1cm4gcEgoMTIsKHQ9PnRoaXMuX3N0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKHRoaXMuX2Zvcm1hdChlLG5ldyBEYXRlKDIwMTcsdCwxKSkpKSl9cmV0dXJuIHNIW3RdfWdldERhdGVOYW1lcygpe2lmKHJIKXtjb25zdCB0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMubG9jYWxlLHtkYXk6Im51bWVyaWMiLHRpbWVab25lOiJ1dGMifSk7cmV0dXJuIHBIKDMxLChlPT50aGlzLl9zdHJpcERpcmVjdGlvbmFsaXR5Q2hhcmFjdGVycyh0aGlzLl9mb3JtYXQodCxuZXcgRGF0ZSgyMDE3LDAsZSsxKSkpKSl9cmV0dXJuIGxIfWdldERheU9mV2Vla05hbWVzKHQpe2lmKHJIKXtjb25zdCBlPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMubG9jYWxlLHt3ZWVrZGF5OnQsdGltZVpvbmU6InV0YyJ9KTtyZXR1cm4gcEgoNywodD0+dGhpcy5fc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnModGhpcy5fZm9ybWF0KGUsbmV3IERhdGUoMjAxNywwLHQrMSkpKSkpfXJldHVybiBjSFt0XX1nZXRZZWFyTmFtZSh0KXtpZihySCl7Y29uc3QgZT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmxvY2FsZSx7eWVhcjoibnVtZXJpYyIsdGltZVpvbmU6InV0YyJ9KTtyZXR1cm4gdGhpcy5fc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnModGhpcy5fZm9ybWF0KGUsdCkpfXJldHVybiBTdHJpbmcodGhpcy5nZXRZZWFyKHQpKX1nZXRGaXJzdERheU9mV2Vlaygpe3JldHVybiAwfWdldE51bURheXNJbk1vbnRoKHQpe3JldHVybiB0aGlzLmdldERhdGUodGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIodCksdGhpcy5nZXRNb250aCh0KSsxLDApKX1jbG9uZSh0KXtyZXR1cm4gbmV3IERhdGUodC5nZXRUaW1lKCkpfWNyZWF0ZURhdGUodCxlLG4pe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpe2lmKGU8MHx8ZT4xMSl0aHJvdyBFcnJvcihgSW52YWxpZCBtb250aCBpbmRleCAiJHtlfSIuIE1vbnRoIGluZGV4IGhhcyB0byBiZSBiZXR3ZWVuIDAgYW5kIDExLmApO2lmKG48MSl0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlICIke259Ii4gRGF0ZSBoYXMgdG8gYmUgZ3JlYXRlciB0aGFuIDAuYCl9bGV0IG89dGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0LGUsbik7aWYoby5nZXRNb250aCgpIT1lJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSAiJHtufSIgZm9yIG1vbnRoIHdpdGggaW5kZXggIiR7ZX0iLmApO3JldHVybiBvfXRvZGF5KCl7cmV0dXJuIG5ldyBEYXRlfXBhcnNlKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdD9uZXcgRGF0ZSh0KTp0P25ldyBEYXRlKERhdGUucGFyc2UodCkpOm51bGx9Zm9ybWF0KHQsZSl7aWYoIXRoaXMuaXNWYWxpZCh0KSl0aHJvdyBFcnJvcigiTmF0aXZlRGF0ZUFkYXB0ZXI6IENhbm5vdCBmb3JtYXQgaW52YWxpZCBkYXRlLiIpO2lmKHJIKXt0aGlzLl9jbGFtcERhdGUmJih0LmdldEZ1bGxZZWFyKCk8MXx8dC5nZXRGdWxsWWVhcigpPjk5OTkpJiYodD10aGlzLmNsb25lKHQpKS5zZXRGdWxsWWVhcihNYXRoLm1heCgxLE1hdGgubWluKDk5OTksdC5nZXRGdWxsWWVhcigpKSkpLGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHt0aW1lWm9uZToidXRjIn0pO2NvbnN0IG49bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGUsZSk7cmV0dXJuIHRoaXMuX3N0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKHRoaXMuX2Zvcm1hdChuLHQpKX1yZXR1cm4gdGhpcy5fc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnModC50b0RhdGVTdHJpbmcoKSl9YWRkQ2FsZW5kYXJZZWFycyh0LGUpe3JldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKHQsMTIqZSl9YWRkQ2FsZW5kYXJNb250aHModCxlKXtsZXQgbj10aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcih0KSx0aGlzLmdldE1vbnRoKHQpK2UsdGhpcy5nZXREYXRlKHQpKTtyZXR1cm4gdGhpcy5nZXRNb250aChuKSE9KCh0aGlzLmdldE1vbnRoKHQpK2UpJTEyKzEyKSUxMiYmKG49dGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIobiksdGhpcy5nZXRNb250aChuKSwwKSksbn1hZGRDYWxlbmRhckRheXModCxlKXtyZXR1cm4gdGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIodCksdGhpcy5nZXRNb250aCh0KSx0aGlzLmdldERhdGUodCkrZSl9dG9Jc284NjAxKHQpe3JldHVyblt0LmdldFVUQ0Z1bGxZZWFyKCksdGhpcy5fMmRpZ2l0KHQuZ2V0VVRDTW9udGgoKSsxKSx0aGlzLl8yZGlnaXQodC5nZXRVVENEYXRlKCkpXS5qb2luKCItIil9ZGVzZXJpYWxpemUodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZighdClyZXR1cm4gbnVsbDtpZihkSC50ZXN0KHQpKXtsZXQgZT1uZXcgRGF0ZSh0KTtpZih0aGlzLmlzVmFsaWQoZSkpcmV0dXJuIGV9fXJldHVybiBzdXBlci5kZXNlcmlhbGl6ZSh0KX1pc0RhdGVJbnN0YW5jZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGV9aXNWYWxpZCh0KXtyZXR1cm4haXNOYU4odC5nZXRUaW1lKCkpfWludmFsaWQoKXtyZXR1cm4gbmV3IERhdGUoTmFOKX1fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0LGUsbil7Y29uc3Qgbz1uZXcgRGF0ZTtyZXR1cm4gby5zZXRGdWxsWWVhcih0LGUsbiksby5zZXRIb3VycygwLDAsMCwwKSxvfV8yZGlnaXQodCl7cmV0dXJuKCIwMCIrdCkuc2xpY2UoLTIpfV9zdHJpcERpcmVjdGlvbmFsaXR5Q2hhcmFjdGVycyh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bXHUyMDBlXHUyMDBmXS9nLCIiKX1fZm9ybWF0KHQsZSl7Y29uc3Qgbj1uZXcgRGF0ZTtyZXR1cm4gbi5zZXRVVENGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpLGUuZ2V0RGF0ZSgpKSxuLnNldFVUQ0hvdXJzKGUuZ2V0SG91cnMoKSxlLmdldE1pbnV0ZXMoKSxlLmdldFNlY29uZHMoKSxlLmdldE1pbGxpc2Vjb25kcygpKSx0LmZvcm1hdChuKX19bUguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG1IKSh2cihuSCw4KSx2cih3eikpfSxtSC7JtXByb3Y9TW4oe3Rva2VuOm1ILGZhY3Rvcnk6bUguybVmYWN9KSxtSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbbkhdfV19LHt0eXBlOnd6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChtSCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltuSF19XX0se3R5cGU6d3p9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgdUh7fXVILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx1SCl9LHVILsm1bW9kPWFvKHt0eXBlOnVIfSksdUguybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6aUgsdXNlQ2xhc3M6bUh9XSxpbXBvcnRzOltba3pdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodUgsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltrel0scHJvdmlkZXJzOlt7cHJvdmlkZTppSCx1c2VDbGFzczptSH1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8odUgse2ltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5ba3pdfX0pO2NvbnN0IGZIPXtwYXJzZTp7ZGF0ZUlucHV0Om51bGx9LGRpc3BsYXk6e2RhdGVJbnB1dDp7eWVhcjoibnVtZXJpYyIsbW9udGg6Im51bWVyaWMiLGRheToibnVtZXJpYyJ9LG1vbnRoWWVhckxhYmVsOnt5ZWFyOiJudW1lcmljIixtb250aDoic2hvcnQifSxkYXRlQTExeUxhYmVsOnt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyIsZGF5OiJudW1lcmljIn0sbW9udGhZZWFyQTExeUxhYmVsOnt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyJ9fX07Y2xhc3MgZ0h7fWdILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxnSCl9LGdILsm1bW9kPWFvKHt0eXBlOmdIfSksZ0guybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6YUgsdXNlVmFsdWU6Zkh9XSxpbXBvcnRzOltbdUhdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZ0gsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOlt1SF0scHJvdmlkZXJzOlt7cHJvdmlkZTphSCx1c2VWYWx1ZTpmSH1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZ0gse2ltcG9ydHM6W3VIXX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgaEh7aXNFcnJvclN0YXRlKHQsZSl7cmV0dXJuISEodCYmdC5pbnZhbGlkJiYodC5kaXJ0eXx8ZSYmZS5zdWJtaXR0ZWQpKX19aEguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGhIKX0saEguybVwcm92PU1uKHt0b2tlbjpoSCxmYWN0b3J5OmhILsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChoSCxbe3R5cGU6aW19XSxudWxsLG51bGwpO2NsYXNzIGJIe2lzRXJyb3JTdGF0ZSh0LGUpe3JldHVybiEhKHQmJnQuaW52YWxpZCYmKHQudG91Y2hlZHx8ZSYmZS5zdWJtaXR0ZWQpKX19YkguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGJIKX0sYkguybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IGJIfSx0b2tlbjpiSCxwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYkgsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHlIe315SC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eUgpfSx5SC7JtWRpcj1sbyh7dHlwZTp5SCxzZWxlY3RvcnM6W1siIiwibWF0LWxpbmUiLCIiXSxbIiIsIm1hdExpbmUiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtbGluZSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh5SCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0LWxpbmVdLCBbbWF0TGluZV0iLGhvc3Q6e2NsYXNzOiJtYXQtbGluZSJ9fV19XSxudWxsLG51bGwpO2NsYXNzIF9Ie31fSC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8X0gpfSxfSC7JtW1vZD1hbyh7dHlwZTpfSH0pLF9ILsm1aW5qPXZuKHtpbXBvcnRzOltbWEldLFhJXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoX0gsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltYSV0sZXhwb3J0czpbeUgsWEldLGRlY2xhcmF0aW9uczpbeUhdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oX0gse2RlY2xhcmF0aW9uczpbeUhdLGltcG9ydHM6W1hJXSxleHBvcnRzOlt5SCxYSV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIENIe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9yZW5kZXJlcj10LHRoaXMuZWxlbWVudD1lLHRoaXMuY29uZmlnPW4sdGhpcy5zdGF0ZT0zfWZhZGVPdXQoKXt0aGlzLl9yZW5kZXJlci5mYWRlT3V0UmlwcGxlKHRoaXMpfX1jb25zdCBNSD17ZW50ZXJEdXJhdGlvbjoyMjUsZXhpdER1cmF0aW9uOjE1MH0sdkg9Tnooe3Bhc3NpdmU6ITB9KSx4SD1bIm1vdXNlZG93biIsInRvdWNoc3RhcnQiXSxPSD1bIm1vdXNldXAiLCJtb3VzZWxlYXZlIiwidG91Y2hlbmQiLCJ0b3VjaGNhbmNlbCJdO2NsYXNzIFBIe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX3RhcmdldD10LHRoaXMuX25nWm9uZT1lLHRoaXMuX2lzUG9pbnRlckRvd249ITEsdGhpcy5fYWN0aXZlUmlwcGxlcz1uZXcgU2V0LHRoaXMuX3BvaW50ZXJVcEV2ZW50c1JlZ2lzdGVyZWQ9ITEsby5pc0Jyb3dzZXImJih0aGlzLl9jb250YWluZXJFbGVtZW50PXh6KG4pKX1mYWRlSW5SaXBwbGUodCxlLG49e30pe2NvbnN0IG89dGhpcy5fY29udGFpbmVyUmVjdD10aGlzLl9jb250YWluZXJSZWN0fHx0aGlzLl9jb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE1IKSxuLmFuaW1hdGlvbik7bi5jZW50ZXJlZCYmKHQ9by5sZWZ0K28ud2lkdGgvMixlPW8udG9wK28uaGVpZ2h0LzIpO2NvbnN0IGE9bi5yYWRpdXN8fChmdW5jdGlvbiByKHQsZSxuKXtjb25zdCBvPU1hdGgubWF4KE1hdGguYWJzKHQtbi5sZWZ0KSxNYXRoLmFicyh0LW4ucmlnaHQpKSxpPU1hdGgubWF4KE1hdGguYWJzKGUtbi50b3ApLE1hdGguYWJzKGUtbi5ib3R0b20pKTtyZXR1cm4gTWF0aC5zcXJ0KG8qbytpKmkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQsZSxvKSxzPXQtby5sZWZ0LGw9ZS1vLnRvcCxjPWkuZW50ZXJEdXJhdGlvbixkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuY2xhc3NMaXN0LmFkZCgibWF0LXJpcHBsZS1lbGVtZW50IiksZC5zdHlsZS5sZWZ0PXMtYSsicHgiLGQuc3R5bGUudG9wPWwtYSsicHgiLGQuc3R5bGUuaGVpZ2h0PTIqYSsicHgiLGQuc3R5bGUud2lkdGg9MiphKyJweCIsbnVsbCE9bi5jb2xvciYmKGQuc3R5bGUuYmFja2dyb3VuZENvbG9yPW4uY29sb3IpLGQuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPWAke2N9bXNgLHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQoZCksKGZ1bmN0aW9uIHAodCl7d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZ2V0UHJvcGVydHlWYWx1ZSgib3BhY2l0eSIpfSkoZCksZC5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIjtjb25zdCBtPW5ldyBDSCh0aGlzLGQsbik7cmV0dXJuIG0uc3RhdGU9MCx0aGlzLl9hY3RpdmVSaXBwbGVzLmFkZChtKSxuLnBlcnNpc3RlbnR8fCh0aGlzLl9tb3N0UmVjZW50VHJhbnNpZW50UmlwcGxlPW0pLHRoaXMuX3J1blRpbWVvdXRPdXRzaWRlWm9uZSgoKCk9Pntjb25zdCB0PW09PT10aGlzLl9tb3N0UmVjZW50VHJhbnNpZW50UmlwcGxlO20uc3RhdGU9MSxuLnBlcnNpc3RlbnR8fHQmJnRoaXMuX2lzUG9pbnRlckRvd258fG0uZmFkZU91dCgpfSksYyksbX1mYWRlT3V0UmlwcGxlKHQpe2NvbnN0IGU9dGhpcy5fYWN0aXZlUmlwcGxlcy5kZWxldGUodCk7aWYodD09PXRoaXMuX21vc3RSZWNlbnRUcmFuc2llbnRSaXBwbGUmJih0aGlzLl9tb3N0UmVjZW50VHJhbnNpZW50UmlwcGxlPW51bGwpLHRoaXMuX2FjdGl2ZVJpcHBsZXMuc2l6ZXx8KHRoaXMuX2NvbnRhaW5lclJlY3Q9bnVsbCksIWUpcmV0dXJuO2NvbnN0IG49dC5lbGVtZW50LG89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE1IKSx0LmNvbmZpZy5hbmltYXRpb24pO24uc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPWAke28uZXhpdER1cmF0aW9ufW1zYCxuLnN0eWxlLm9wYWNpdHk9IjAiLHQuc3RhdGU9Mix0aGlzLl9ydW5UaW1lb3V0T3V0c2lkZVpvbmUoKCgpPT57dC5zdGF0ZT0zLG4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKX0pLG8uZXhpdER1cmF0aW9uKX1mYWRlT3V0QWxsKCl7dGhpcy5fYWN0aXZlUmlwcGxlcy5mb3JFYWNoKCh0PT50LmZhZGVPdXQoKSkpfWZhZGVPdXRBbGxOb25QZXJzaXN0ZW50KCl7dGhpcy5fYWN0aXZlUmlwcGxlcy5mb3JFYWNoKCh0PT57dC5jb25maWcucGVyc2lzdGVudHx8dC5mYWRlT3V0KCl9KSl9c2V0dXBUcmlnZ2VyRXZlbnRzKHQpe2NvbnN0IGU9eHoodCk7ZSYmZSE9PXRoaXMuX3RyaWdnZXJFbGVtZW50JiYodGhpcy5fcmVtb3ZlVHJpZ2dlckV2ZW50cygpLHRoaXMuX3RyaWdnZXJFbGVtZW50PWUsdGhpcy5fcmVnaXN0ZXJFdmVudHMoeEgpKX1oYW5kbGVFdmVudCh0KXsibW91c2Vkb3duIj09PXQudHlwZT90aGlzLl9vbk1vdXNlZG93bih0KToidG91Y2hzdGFydCI9PT10LnR5cGU/dGhpcy5fb25Ub3VjaFN0YXJ0KHQpOnRoaXMuX29uUG9pbnRlclVwKCksdGhpcy5fcG9pbnRlclVwRXZlbnRzUmVnaXN0ZXJlZHx8KHRoaXMuX3JlZ2lzdGVyRXZlbnRzKE9IKSx0aGlzLl9wb2ludGVyVXBFdmVudHNSZWdpc3RlcmVkPSEwKX1fb25Nb3VzZWRvd24odCl7Y29uc3QgZT1nSSh0KSxuPXRoaXMuX2xhc3RUb3VjaFN0YXJ0RXZlbnQmJkRhdGUubm93KCk8dGhpcy5fbGFzdFRvdWNoU3RhcnRFdmVudCs4MDA7dGhpcy5fdGFyZ2V0LnJpcHBsZURpc2FibGVkfHxlfHxufHwodGhpcy5faXNQb2ludGVyRG93bj0hMCx0aGlzLmZhZGVJblJpcHBsZSh0LmNsaWVudFgsdC5jbGllbnRZLHRoaXMuX3RhcmdldC5yaXBwbGVDb25maWcpKX1fb25Ub3VjaFN0YXJ0KHQpe2lmKCF0aGlzLl90YXJnZXQucmlwcGxlRGlzYWJsZWQmJiFoSSh0KSl7dGhpcy5fbGFzdFRvdWNoU3RhcnRFdmVudD1EYXRlLm5vdygpLHRoaXMuX2lzUG9pbnRlckRvd249ITA7Y29uc3QgZT10LmNoYW5nZWRUb3VjaGVzO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXRoaXMuZmFkZUluUmlwcGxlKGVbdF0uY2xpZW50WCxlW3RdLmNsaWVudFksdGhpcy5fdGFyZ2V0LnJpcHBsZUNvbmZpZyl9fV9vblBvaW50ZXJVcCgpe3RoaXMuX2lzUG9pbnRlckRvd24mJih0aGlzLl9pc1BvaW50ZXJEb3duPSExLHRoaXMuX2FjdGl2ZVJpcHBsZXMuZm9yRWFjaCgodD0+eyF0LmNvbmZpZy5wZXJzaXN0ZW50JiYoMT09PXQuc3RhdGV8fHQuY29uZmlnLnRlcm1pbmF0ZU9uUG9pbnRlclVwJiYwPT09dC5zdGF0ZSkmJnQuZmFkZU91dCgpfSkpKX1fcnVuVGltZW91dE91dHNpZGVab25lKHQsZT0wKXt0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5zZXRUaW1lb3V0KHQsZSkpKX1fcmVnaXN0ZXJFdmVudHModCl7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3QuZm9yRWFjaCgodD0+e3RoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodCx0aGlzLHZIKX0pKX0pKX1fcmVtb3ZlVHJpZ2dlckV2ZW50cygpe3RoaXMuX3RyaWdnZXJFbGVtZW50JiYoeEguZm9yRWFjaCgodD0+e3RoaXMuX3RyaWdnZXJFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodCx0aGlzLHZIKX0pKSx0aGlzLl9wb2ludGVyVXBFdmVudHNSZWdpc3RlcmVkJiZPSC5mb3JFYWNoKCh0PT57dGhpcy5fdHJpZ2dlckVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LHRoaXMsdkgpfSkpKX19Y29uc3Qgd0g9bmV3IEdhKCJtYXQtcmlwcGxlLWdsb2JhbC1vcHRpb25zIik7Y2xhc3Mga0h7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fYW5pbWF0aW9uTW9kZT1pLHRoaXMucmFkaXVzPTAsdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5faXNJbml0aWFsaXplZD0hMSx0aGlzLl9nbG9iYWxPcHRpb25zPW98fHt9LHRoaXMuX3JpcHBsZVJlbmRlcmVyPW5ldyBQSCh0aGlzLGUsdCxuKX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR9c2V0IGRpc2FibGVkKHQpe3QmJnRoaXMuZmFkZU91dEFsbE5vblBlcnNpc3RlbnQoKSx0aGlzLl9kaXNhYmxlZD10LHRoaXMuX3NldHVwVHJpZ2dlckV2ZW50c0lmRW5hYmxlZCgpfWdldCB0cmlnZ2VyKCl7cmV0dXJuIHRoaXMuX3RyaWdnZXJ8fHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudH1zZXQgdHJpZ2dlcih0KXt0aGlzLl90cmlnZ2VyPXQsdGhpcy5fc2V0dXBUcmlnZ2VyRXZlbnRzSWZFbmFibGVkKCl9bmdPbkluaXQoKXt0aGlzLl9pc0luaXRpYWxpemVkPSEwLHRoaXMuX3NldHVwVHJpZ2dlckV2ZW50c0lmRW5hYmxlZCgpfW5nT25EZXN0cm95KCl7dGhpcy5fcmlwcGxlUmVuZGVyZXIuX3JlbW92ZVRyaWdnZXJFdmVudHMoKX1mYWRlT3V0QWxsKCl7dGhpcy5fcmlwcGxlUmVuZGVyZXIuZmFkZU91dEFsbCgpfWZhZGVPdXRBbGxOb25QZXJzaXN0ZW50KCl7dGhpcy5fcmlwcGxlUmVuZGVyZXIuZmFkZU91dEFsbE5vblBlcnNpc3RlbnQoKX1nZXQgcmlwcGxlQ29uZmlnKCl7cmV0dXJue2NlbnRlcmVkOnRoaXMuY2VudGVyZWQscmFkaXVzOnRoaXMucmFkaXVzLGNvbG9yOnRoaXMuY29sb3IsYW5pbWF0aW9uOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuX2dsb2JhbE9wdGlvbnMuYW5pbWF0aW9uKSwiTm9vcEFuaW1hdGlvbnMiPT09dGhpcy5fYW5pbWF0aW9uTW9kZT97ZW50ZXJEdXJhdGlvbjowLGV4aXREdXJhdGlvbjowfTp7fSksdGhpcy5hbmltYXRpb24pLHRlcm1pbmF0ZU9uUG9pbnRlclVwOnRoaXMuX2dsb2JhbE9wdGlvbnMudGVybWluYXRlT25Qb2ludGVyVXB9fWdldCByaXBwbGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHwhIXRoaXMuX2dsb2JhbE9wdGlvbnMuZGlzYWJsZWR9X3NldHVwVHJpZ2dlckV2ZW50c0lmRW5hYmxlZCgpeyF0aGlzLmRpc2FibGVkJiZ0aGlzLl9pc0luaXRpYWxpemVkJiZ0aGlzLl9yaXBwbGVSZW5kZXJlci5zZXR1cFRyaWdnZXJFdmVudHModGhpcy50cmlnZ2VyKX1sYXVuY2godCxlPTAsbil7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3RoaXMuX3JpcHBsZVJlbmRlcmVyLmZhZGVJblJpcHBsZSh0LGUsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMucmlwcGxlQ29uZmlnKSxuKSk6dGhpcy5fcmlwcGxlUmVuZGVyZXIuZmFkZUluUmlwcGxlKDAsMCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5yaXBwbGVDb25maWcpLHQpKX19a0guybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGtIKShTbShoZyksU20oYV8pLFNtKHd6KSxTbSh3SCw4KSxTbShWUCw4KSl9LGtILsm1ZGlyPWxvKHt0eXBlOmtILHNlbGVjdG9yczpbWyIiLCJtYXQtcmlwcGxlIiwiIl0sWyIiLCJtYXRSaXBwbGUiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtcmlwcGxlIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoIm1hdC1yaXBwbGUtdW5ib3VuZGVkIixuLnVuYm91bmRlZCl9LGlucHV0czp7cmFkaXVzOlsibWF0UmlwcGxlUmFkaXVzIiwicmFkaXVzIl0sZGlzYWJsZWQ6WyJtYXRSaXBwbGVEaXNhYmxlZCIsImRpc2FibGVkIl0sdHJpZ2dlcjpbIm1hdFJpcHBsZVRyaWdnZXIiLCJ0cmlnZ2VyIl0sY29sb3I6WyJtYXRSaXBwbGVDb2xvciIsImNvbG9yIl0sdW5ib3VuZGVkOlsibWF0UmlwcGxlVW5ib3VuZGVkIiwidW5ib3VuZGVkIl0sY2VudGVyZWQ6WyJtYXRSaXBwbGVDZW50ZXJlZCIsImNlbnRlcmVkIl0sYW5pbWF0aW9uOlsibWF0UmlwcGxlQW5pbWF0aW9uIiwiYW5pbWF0aW9uIl19LGV4cG9ydEFzOlsibWF0UmlwcGxlIl19KSxrSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbd0hdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XSxrSC5wcm9wRGVjb3JhdG9ycz17Y29sb3I6W3t0eXBlOnh5LGFyZ3M6WyJtYXRSaXBwbGVDb2xvciJdfV0sdW5ib3VuZGVkOlt7dHlwZTp4eSxhcmdzOlsibWF0UmlwcGxlVW5ib3VuZGVkIl19XSxjZW50ZXJlZDpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZUNlbnRlcmVkIl19XSxyYWRpdXM6W3t0eXBlOnh5LGFyZ3M6WyJtYXRSaXBwbGVSYWRpdXMiXX1dLGFuaW1hdGlvbjpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZUFuaW1hdGlvbiJdfV0sZGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRSaXBwbGVEaXNhYmxlZCJdfV0sdHJpZ2dlcjpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZVRyaWdnZXIiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGtILFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXQtcmlwcGxlXSwgW21hdFJpcHBsZV0iLGV4cG9ydEFzOiJtYXRSaXBwbGUiLGhvc3Q6e2NsYXNzOiJtYXQtcmlwcGxlIiwiW2NsYXNzLm1hdC1yaXBwbGUtdW5ib3VuZGVkXSI6InVuYm91bmRlZCJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt3SF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse3JhZGl1czpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZVJhZGl1cyJdfV0sZGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRSaXBwbGVEaXNhYmxlZCJdfV0sdHJpZ2dlcjpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZVRyaWdnZXIiXX1dLGNvbG9yOlt7dHlwZTp4eSxhcmdzOlsibWF0UmlwcGxlQ29sb3IiXX1dLHVuYm91bmRlZDpbe3R5cGU6eHksYXJnczpbIm1hdFJpcHBsZVVuYm91bmRlZCJdfV0sY2VudGVyZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRSaXBwbGVDZW50ZXJlZCJdfV0sYW5pbWF0aW9uOlt7dHlwZTp4eSxhcmdzOlsibWF0UmlwcGxlQW5pbWF0aW9uIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgU0h7fVNILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxTSCl9LFNILsm1bW9kPWFvKHt0eXBlOlNIfSksU0guybVpbmo9dm4oe2ltcG9ydHM6W1tYSSxrel0sWEldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChTSCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1hJLGt6XSxleHBvcnRzOltrSCxYSV0sZGVjbGFyYXRpb25zOltrSF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhTSCx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2tIXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltYSSxrel19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5ba0gsWEldfX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgREh7Y29uc3RydWN0b3IodCl7dGhpcy5fYW5pbWF0aW9uTW9kZT10LHRoaXMuc3RhdGU9InVuY2hlY2tlZCIsdGhpcy5kaXNhYmxlZD0hMX19REguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fERIKShTbShWUCw4KSl9LERILsm1Y21wPXRvKHt0eXBlOkRILHNlbGVjdG9yczpbWyJtYXQtcHNldWRvLWNoZWNrYm94Il1dLGhvc3RBdHRyczpbMSwibWF0LXBzZXVkby1jaGVja2JveCJdLGhvc3RWYXJzOjgsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJtYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUiLCJpbmRldGVybWluYXRlIj09PW4uc3RhdGUpKCJtYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQiLCJjaGVja2VkIj09PW4uc3RhdGUpKCJtYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIixuLmRpc2FibGVkKSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1uLl9hbmltYXRpb25Nb2RlKX0saW5wdXRzOntzdGF0ZToic3RhdGUiLGRpc2FibGVkOiJkaXNhYmxlZCJ9LGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXt9LHN0eWxlczpbJy5tYXQtcHNldWRvLWNoZWNrYm94e3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItcmFkaXVzOjJweDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpLGJhY2tncm91bmQtY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpfS5tYXQtcHNldWRvLWNoZWNrYm94OjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7Y29udGVudDoiIjtib3JkZXItYm90dG9tOjJweCBzb2xpZCBjdXJyZW50Q29sb3I7dHJhbnNpdGlvbjpvcGFjaXR5IDkwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKX0ubWF0LXBzZXVkby1jaGVja2JveC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsLm1hdC1wc2V1ZG8tY2hlY2tib3gubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRle2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXBzZXVkby1jaGVja2JveHt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVye3RyYW5zaXRpb246bm9uZX0ubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlOjphZnRlcnt0b3A6NXB4O2xlZnQ6MXB4O3dpZHRoOjEwcHg7b3BhY2l0eToxO2JvcmRlci1yYWRpdXM6MnB4fS5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQ6OmFmdGVye3RvcDoyLjRweDtsZWZ0OjFweDt3aWR0aDo4cHg7aGVpZ2h0OjNweDtib3JkZXItbGVmdDoycHggc29saWQgY3VycmVudENvbG9yO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTtvcGFjaXR5OjE7Ym94LXNpemluZzpjb250ZW50LWJveH1cbiddLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLERILmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dLERILnByb3BEZWNvcmF0b3JzPXtzdGF0ZTpbe3R5cGU6eHl9XSxkaXNhYmxlZDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChESCxbe3R5cGU6TXksYXJnczpbe2VuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHNlbGVjdG9yOiJtYXQtcHNldWRvLWNoZWNrYm94Iix0ZW1wbGF0ZToiIixob3N0OntjbGFzczoibWF0LXBzZXVkby1jaGVja2JveCIsIltjbGFzcy5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGVdIjonc3RhdGUgPT09ICJpbmRldGVybWluYXRlIicsIltjbGFzcy5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWRdIjonc3RhdGUgPT09ICJjaGVja2VkIicsIltjbGFzcy5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkXSI6ImRpc2FibGVkIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6J19hbmltYXRpb25Nb2RlID09PSAiTm9vcEFuaW1hdGlvbnMiJ30sc3R5bGVzOlsnLm1hdC1wc2V1ZG8tY2hlY2tib3h7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXI6MnB4IHNvbGlkO2JvcmRlci1yYWRpdXM6MnB4O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7ZmxleC1zaHJpbms6MDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSksYmFja2dyb3VuZC1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSl9Lm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDtjb250ZW50OiIiO2JvcmRlci1ib3R0b206MnB4IHNvbGlkIGN1cnJlbnRDb2xvcjt0cmFuc2l0aW9uOm9wYWNpdHkgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpfS5tYXQtcHNldWRvLWNoZWNrYm94Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwubWF0LXBzZXVkby1jaGVja2JveC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGV7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcHNldWRvLWNoZWNrYm94e3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXBzZXVkby1jaGVja2JveDo6YWZ0ZXJ7dHJhbnNpdGlvbjpub25lfS5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGU6OmFmdGVye3RvcDo1cHg7bGVmdDoxcHg7d2lkdGg6MTBweDtvcGFjaXR5OjE7Ym9yZGVyLXJhZGl1czoycHh9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZDo6YWZ0ZXJ7dG9wOjIuNHB4O2xlZnQ6MXB4O3dpZHRoOjhweDtoZWlnaHQ6M3B4O2JvcmRlci1sZWZ0OjJweCBzb2xpZCBjdXJyZW50Q29sb3I7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO29wYWNpdHk6MTtib3gtc2l6aW5nOmNvbnRlbnQtYm94fVxuJ119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV19KSx7c3RhdGU6W3t0eXBlOnh5fV0sZGlzYWJsZWQ6W3t0eXBlOnh5fV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEVIe31FSC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RUgpfSxFSC7JtW1vZD1hbyh7dHlwZTpFSH0pLEVILsm1aW5qPXZuKHtpbXBvcnRzOltbWEldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRUgsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltYSV0sZXhwb3J0czpbREhdLGRlY2xhcmF0aW9uczpbREhdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oRUgse2RlY2xhcmF0aW9uczpbREhdLGltcG9ydHM6W1hJXSxleHBvcnRzOltESF19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFJIPW5ldyBHYSgiTUFUX09QVElPTl9QQVJFTlRfQ09NUE9ORU5UIiksQUg9S0koY2xhc3N7fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2xldCBUSD0wO2NsYXNzIE5IIGV4dGVuZHMgQUh7Y29uc3RydWN0b3IodCl7dmFyIGU7c3VwZXIoKSx0aGlzLl9sYWJlbElkPSJtYXQtb3B0Z3JvdXAtbGFiZWwtIitUSCsrLHRoaXMuX2luZXJ0PW51bGwhPT0oZT1udWxsPT10P3ZvaWQgMDp0LmluZXJ0R3JvdXBzKSYmdm9pZCAwIT09ZSYmZX19TkguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE5IKShTbShSSCw4KSl9LE5ILsm1ZGlyPWxvKHt0eXBlOk5ILGlucHV0czp7bGFiZWw6ImxhYmVsIn0sZmVhdHVyZXM6W3hwXX0pLE5ILmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1JIXX0se3R5cGU6U3J9XX1dLE5ILnByb3BEZWNvcmF0b3JzPXtsYWJlbDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOSCxbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1JIXX0se3R5cGU6U3J9XX1dfSkse2xhYmVsOlt7dHlwZTp4eX1dfSk7Y29uc3Qgekg9bmV3IEdhKCJNYXRPcHRncm91cCIpO2NsYXNzIElIIGV4dGVuZHMgTkh7fUlILsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShJSCkpKShufHxJSCl9fSkoKSxJSC7JtWNtcD10byh7dHlwZTpJSCxzZWxlY3RvcnM6W1sibWF0LW9wdGdyb3VwIl1dLGhvc3RBdHRyczpbMSwibWF0LW9wdGdyb3VwIl0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmKGpwKCJyb2xlIixuLl9pbmVydD9udWxsOiJncm91cCIpKCJhcmlhLWRpc2FibGVkIixuLl9pbmVydD9udWxsOm4uZGlzYWJsZWQudG9TdHJpbmcoKSkoImFyaWEtbGFiZWxsZWRieSIsbi5faW5lcnQ/bnVsbDpuLl9sYWJlbElkKSxwdSgibWF0LW9wdGdyb3VwLWRpc2FibGVkIixuLmRpc2FibGVkKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIn0sZXhwb3J0QXM6WyJtYXRPcHRncm91cCJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6ekgsdXNlRXhpc3Rpbmc6SUh9XSkseHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiLCJtYXQtb3B0aW9uLCBuZy1jb250YWluZXIiXSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1siYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtYXQtb3B0Z3JvdXAtbGFiZWwiLDMsImlkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabShWSSksUm0oMCwic3BhbiIsMCksa3UoMSksWG0oMiksQW0oKSxYbSgzLDEpKSwyJmUmJihEbSgiaWQiLG4uX2xhYmVsSWQpLHJjKDEpLER1KCIiLG4ubGFiZWwsIiAiKSl9LHN0eWxlczpbIi5tYXQtb3B0Z3JvdXAtbGFiZWx7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6NDhweDtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMTZweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bWF4LXdpZHRoOjEwMCU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpkZWZhdWx0fS5tYXQtb3B0Z3JvdXAtbGFiZWxbZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0fVtkaXI9cnRsXSAubWF0LW9wdGdyb3VwLWxhYmVse3RleHQtYWxpZ246cmlnaHR9Lm1hdC1vcHRncm91cC1sYWJlbCAubWF0LWljb257bWFyZ2luLXJpZ2h0OjE2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtb3B0Z3JvdXAtbGFiZWwgLm1hdC1pY29uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjp0b3B9W2Rpcj1ydGxdIC5tYXQtb3B0Z3JvdXAtbGFiZWwgLm1hdC1pY29ue21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjB9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElILFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1vcHRncm91cCIsZXhwb3J0QXM6Im1hdE9wdGdyb3VwIix0ZW1wbGF0ZTonPHNwYW4gY2xhc3M9Im1hdC1vcHRncm91cC1sYWJlbCIgYXJpYS1oaWRkZW49InRydWUiIFtpZF09Il9sYWJlbElkIj57eyBsYWJlbCB9fSA8bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuPG5nLWNvbnRlbnQgc2VsZWN0PSJtYXQtb3B0aW9uLCBuZy1jb250YWluZXIiPjwvbmctY29udGVudD5cbicsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsaW5wdXRzOlsiZGlzYWJsZWQiXSxob3N0OntjbGFzczoibWF0LW9wdGdyb3VwIiwiW2F0dHIucm9sZV0iOidfaW5lcnQgPyBudWxsIDogImdyb3VwIicsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiX2luZXJ0ID8gbnVsbCA6IGRpc2FibGVkLnRvU3RyaW5nKCkiLCJbYXR0ci5hcmlhLWxhYmVsbGVkYnldIjoiX2luZXJ0ID8gbnVsbCA6IF9sYWJlbElkIiwiW2NsYXNzLm1hdC1vcHRncm91cC1kaXNhYmxlZF0iOiJkaXNhYmxlZCJ9LHByb3ZpZGVyczpbe3Byb3ZpZGU6ekgsdXNlRXhpc3Rpbmc6SUh9XSxzdHlsZXM6WyIubWF0LW9wdGdyb3VwLWxhYmVse3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDE2cHg7dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lO21heC13aWR0aDoxMDAlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LW9wdGdyb3VwLWxhYmVsW2Rpc2FibGVkXXtjdXJzb3I6ZGVmYXVsdH1bZGlyPXJ0bF0gLm1hdC1vcHRncm91cC1sYWJlbHt0ZXh0LWFsaWduOnJpZ2h0fS5tYXQtb3B0Z3JvdXAtbGFiZWwgLm1hdC1pY29ue21hcmdpbi1yaWdodDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubWF0LW9wdGdyb3VwLWxhYmVsIC5tYXQtaWNvbiBzdmd7dmVydGljYWwtYWxpZ246dG9wfVtkaXI9cnRsXSAubWF0LW9wdGdyb3VwLWxhYmVsIC5tYXQtaWNvbnttYXJnaW4tbGVmdDoxNnB4O21hcmdpbi1yaWdodDowfVxuIl19XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgSEg9MDtjbGFzcyBGSHtjb25zdHJ1Y3Rvcih0LGU9ITEpe3RoaXMuc291cmNlPXQsdGhpcy5pc1VzZXJJbnB1dD1lfX1jbGFzcyBMSHtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9wYXJlbnQ9bix0aGlzLmdyb3VwPW8sdGhpcy5fc2VsZWN0ZWQ9ITEsdGhpcy5fYWN0aXZlPSExLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX21vc3RSZWNlbnRWaWV3VmFsdWU9IiIsdGhpcy5pZD0ibWF0LW9wdGlvbi0iK0hIKyssdGhpcy5vblNlbGVjdGlvbkNoYW5nZT1uZXcgTGgsdGhpcy5fc3RhdGVDaGFuZ2VzPW5ldyBJfWdldCBtdWx0aXBsZSgpe3JldHVybiB0aGlzLl9wYXJlbnQmJnRoaXMuX3BhcmVudC5tdWx0aXBsZX1nZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWR9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuZ3JvdXAmJnRoaXMuZ3JvdXAuZGlzYWJsZWR8fHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD15eih0KX1nZXQgZGlzYWJsZVJpcHBsZSgpe3JldHVybiB0aGlzLl9wYXJlbnQmJnRoaXMuX3BhcmVudC5kaXNhYmxlUmlwcGxlfWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5fYWN0aXZlfWdldCB2aWV3VmFsdWUoKXtyZXR1cm4odGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS50ZXh0Q29udGVudHx8IiIpLnRyaW0oKX1zZWxlY3QoKXt0aGlzLl9zZWxlY3RlZHx8KHRoaXMuX3NlbGVjdGVkPSEwLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX2VtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpKX1kZXNlbGVjdCgpe3RoaXMuX3NlbGVjdGVkJiYodGhpcy5fc2VsZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5fZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCkpfWZvY3VzKHQsZSl7Y29uc3Qgbj10aGlzLl9nZXRIb3N0RWxlbWVudCgpOyJmdW5jdGlvbiI9PXR5cGVvZiBuLmZvY3VzJiZuLmZvY3VzKGUpfXNldEFjdGl2ZVN0eWxlcygpe3RoaXMuX2FjdGl2ZXx8KHRoaXMuX2FjdGl2ZT0hMCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9c2V0SW5hY3RpdmVTdHlsZXMoKXt0aGlzLl9hY3RpdmUmJih0aGlzLl9hY3RpdmU9ITEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWdldExhYmVsKCl7cmV0dXJuIHRoaXMudmlld1ZhbHVlfV9oYW5kbGVLZXlkb3duKHQpe3Qua2V5Q29kZSE9PW16JiZ0LmtleUNvZGUhPT1menx8YnoodCl8fCh0aGlzLl9zZWxlY3RWaWFJbnRlcmFjdGlvbigpLHQucHJldmVudERlZmF1bHQoKSl9X3NlbGVjdFZpYUludGVyYWN0aW9uKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMuX3NlbGVjdGVkPSF0aGlzLm11bHRpcGxlfHwhdGhpcy5fc2VsZWN0ZWQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5fZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCEwKSl9X2dldEFyaWFTZWxlY3RlZCgpe3JldHVybiB0aGlzLnNlbGVjdGVkfHwhdGhpcy5tdWx0aXBsZSYmbnVsbH1fZ2V0VGFiSW5kZXgoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZD8iLTEiOiIwIn1fZ2V0SG9zdEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50fW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe2lmKHRoaXMuX3NlbGVjdGVkKXtjb25zdCB0PXRoaXMudmlld1ZhbHVlO3QhPT10aGlzLl9tb3N0UmVjZW50Vmlld1ZhbHVlJiYodGhpcy5fbW9zdFJlY2VudFZpZXdWYWx1ZT10LHRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KCkpfX1uZ09uRGVzdHJveSgpe3RoaXMuX3N0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpfV9lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQodD0hMSl7dGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KG5ldyBGSCh0aGlzLHQpKX19TEguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExIKShTbShoZyksU20oVWcpLFNtKHZvaWQgMCksU20oTkgpKX0sTEguybVkaXI9bG8oe3R5cGU6TEgsaW5wdXRzOntpZDoiaWQiLGRpc2FibGVkOiJkaXNhYmxlZCIsdmFsdWU6InZhbHVlIn0sb3V0cHV0czp7b25TZWxlY3Rpb25DaGFuZ2U6Im9uU2VsZWN0aW9uQ2hhbmdlIn19KSxMSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwfSx7dHlwZTpOSH1dLExILnByb3BEZWNvcmF0b3JzPXt2YWx1ZTpbe3R5cGU6eHl9XSxpZDpbe3R5cGU6eHl9XSxkaXNhYmxlZDpbe3R5cGU6eHl9XSxvblNlbGVjdGlvbkNoYW5nZTpbe3R5cGU6T3l9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMSCxbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDB9LHt0eXBlOk5IfV19KSx7aWQ6W3t0eXBlOnh5fV0sb25TZWxlY3Rpb25DaGFuZ2U6W3t0eXBlOk95fV0sZGlzYWJsZWQ6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV19KTtjbGFzcyBCSCBleHRlbmRzIExIe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKHQsZSxuLG8pfX1mdW5jdGlvbiBWSCh0LGUsbil7aWYobi5sZW5ndGgpe2xldCBvPWUudG9BcnJheSgpLGk9bi50b0FycmF5KCksYT0wO2ZvcihsZXQgZT0wO2U8dCsxO2UrKylvW2VdLmdyb3VwJiZvW2VdLmdyb3VwPT09aVthXSYmYSsrO3JldHVybiBhfXJldHVybiAwfWZ1bmN0aW9uIGpIKHQsZSxuLG8pe3JldHVybiB0PG4/dDp0K2U+bitvP01hdGgubWF4KDAsdC1vK2UpOm59Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL0JILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCSCkoU20oaGcpLFNtKFVnKSxTbShSSCw4KSxTbSh6SCw4KSl9LEJILsm1Y21wPXRvKHt0eXBlOkJILHNlbGVjdG9yczpbWyJtYXQtb3B0aW9uIl1dLGhvc3RBdHRyczpbInJvbGUiLCJvcHRpb24iLDEsIm1hdC1vcHRpb24iLCJtYXQtZm9jdXMtaW5kaWNhdG9yIl0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUtleWRvd24oZSl9KSksMiZlJiYoVHUoImlkIixuLmlkKSxqcCgidGFiaW5kZXgiLG4uX2dldFRhYkluZGV4KCkpKCJhcmlhLXNlbGVjdGVkIixuLl9nZXRBcmlhU2VsZWN0ZWQoKSkoImFyaWEtZGlzYWJsZWQiLG4uZGlzYWJsZWQudG9TdHJpbmcoKSkscHUoIm1hdC1zZWxlY3RlZCIsbi5zZWxlY3RlZCkoIm1hdC1vcHRpb24tbXVsdGlwbGUiLG4ubXVsdGlwbGUpKCJtYXQtYWN0aXZlIixuLmFjdGl2ZSkoIm1hdC1vcHRpb24tZGlzYWJsZWQiLG4uZGlzYWJsZWQpKX0sZXhwb3J0QXM6WyJtYXRPcHRpb24iXSxmZWF0dXJlczpbeHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczo1LHZhcnM6NCxjb25zdHM6W1siY2xhc3MiLCJtYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveCIsMywic3RhdGUiLCJkaXNhYmxlZCIsNCwibmdJZiJdLFsxLCJtYXQtb3B0aW9uLXRleHQiXSxbImNsYXNzIiwiY2RrLXZpc3VhbGx5LWhpZGRlbiIsNCwibmdJZiJdLFsibWF0LXJpcHBsZSIsIiIsMSwibWF0LW9wdGlvbi1yaXBwbGUiLDMsIm1hdFJpcHBsZVRyaWdnZXIiLCJtYXRSaXBwbGVEaXNhYmxlZCJdLFsxLCJtYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveCIsMywic3RhdGUiLCJkaXNhYmxlZCJdLFsxLCJjZGstdmlzdWFsbHktaGlkZGVuIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFFwKDAsakksMSwyLCJtYXQtcHNldWRvLWNoZWNrYm94IiwwKSxSbSgxLCJzcGFuIiwxKSxYbSgyKSxBbSgpLFFwKDMsVUksMiwxLCJzcGFuIiwyKSxUbSg0LCJkaXYiLDMpKSwyJmUmJihEbSgibmdJZiIsbi5tdWx0aXBsZSkscmMoMyksRG0oIm5nSWYiLG4uZ3JvdXAmJm4uZ3JvdXAuX2luZXJ0KSxyYygxKSxEbSgibWF0UmlwcGxlVHJpZ2dlciIsbi5fZ2V0SG9zdEVsZW1lbnQoKSkoIm1hdFJpcHBsZURpc2FibGVkIixuLmRpc2FibGVkfHxuLmRpc2FibGVSaXBwbGUpKX0sZGlyZWN0aXZlczpbZE0sa0gsREhdLHN0eWxlczpbIi5tYXQtb3B0aW9ue3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDE2cHg7dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lO21heC13aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O21heC13aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtb3B0aW9uW2Rpc2FibGVkXXtjdXJzb3I6ZGVmYXVsdH1bZGlyPXJ0bF0gLm1hdC1vcHRpb257dGV4dC1hbGlnbjpyaWdodH0ubWF0LW9wdGlvbiAubWF0LWljb257bWFyZ2luLXJpZ2h0OjE2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtb3B0aW9uIC5tYXQtaWNvbiBzdmd7dmVydGljYWwtYWxpZ246dG9wfVtkaXI9cnRsXSAubWF0LW9wdGlvbiAubWF0LWljb257bWFyZ2luLWxlZnQ6MTZweDttYXJnaW4tcmlnaHQ6MH0ubWF0LW9wdGlvblthcmlhLWRpc2FibGVkPXRydWVdey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LW9wdGdyb3VwIC5tYXQtb3B0aW9uOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSl7cGFkZGluZy1sZWZ0OjMycHh9W2Rpcj1ydGxdIC5tYXQtb3B0Z3JvdXAgLm1hdC1vcHRpb246bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKXtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjMycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW9wdGlvbnttYXJnaW46MCAxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZle2JvcmRlcjpzb2xpZCAxcHggY3VycmVudENvbG9yO21hcmdpbjowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1vcHRpb25bYXJpYS1kaXNhYmxlZD10cnVlXXtvcGFjaXR5Oi41fS5tYXQtb3B0aW9uLXRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1ncm93OjE7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1vcHRpb24gLm1hdC1vcHRpb24tcmlwcGxle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1vcHRpb24tcHNldWRvLWNoZWNrYm94e21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5tYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveHttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjB9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxCSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltSSF19XX0se3R5cGU6SUgsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3pIXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCSCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtb3B0aW9uIixleHBvcnRBczoibWF0T3B0aW9uIixob3N0Ontyb2xlOiJvcHRpb24iLCJbYXR0ci50YWJpbmRleF0iOiJfZ2V0VGFiSW5kZXgoKSIsIltjbGFzcy5tYXQtc2VsZWN0ZWRdIjoic2VsZWN0ZWQiLCJbY2xhc3MubWF0LW9wdGlvbi1tdWx0aXBsZV0iOiJtdWx0aXBsZSIsIltjbGFzcy5tYXQtYWN0aXZlXSI6ImFjdGl2ZSIsIltpZF0iOiJpZCIsIlthdHRyLmFyaWEtc2VsZWN0ZWRdIjoiX2dldEFyaWFTZWxlY3RlZCgpIiwiW2F0dHIuYXJpYS1kaXNhYmxlZF0iOiJkaXNhYmxlZC50b1N0cmluZygpIiwiW2NsYXNzLm1hdC1vcHRpb24tZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCIoY2xpY2spIjoiX3NlbGVjdFZpYUludGVyYWN0aW9uKCkiLCIoa2V5ZG93bikiOiJfaGFuZGxlS2V5ZG93bigkZXZlbnQpIixjbGFzczoibWF0LW9wdGlvbiBtYXQtZm9jdXMtaW5kaWNhdG9yIn0sdGVtcGxhdGU6JzxtYXQtcHNldWRvLWNoZWNrYm94ICpuZ0lmPSJtdWx0aXBsZSIgY2xhc3M9Im1hdC1vcHRpb24tcHNldWRvLWNoZWNrYm94IlxuICAgIFtzdGF0ZV09InNlbGVjdGVkID8gXCdjaGVja2VkXCcgOiBcJ3VuY2hlY2tlZFwnIiBbZGlzYWJsZWRdPSJkaXNhYmxlZCI+PC9tYXQtcHNldWRvLWNoZWNrYm94PlxuXG48c3BhbiBjbGFzcz0ibWF0LW9wdGlvbi10ZXh0Ij48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuXG5ceDNjIS0tIFNlZSBhMTF5IG5vdGVzIGluc2lkZSBvcHRncm91cC50cyBmb3IgY29udGV4dCBiZWhpbmQgdGhpcyBlbGVtZW50LiAtLVx4M2VcbjxzcGFuIGNsYXNzPSJjZGstdmlzdWFsbHktaGlkZGVuIiAqbmdJZj0iZ3JvdXAgJiYgZ3JvdXAuX2luZXJ0Ij4oe3sgZ3JvdXAubGFiZWwgfX0pPC9zcGFuPlxuXG48ZGl2IGNsYXNzPSJtYXQtb3B0aW9uLXJpcHBsZSIgbWF0LXJpcHBsZVxuICAgICBbbWF0UmlwcGxlVHJpZ2dlcl09Il9nZXRIb3N0RWxlbWVudCgpIlxuICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJkaXNhYmxlZCB8fCBkaXNhYmxlUmlwcGxlIj5cbjwvZGl2PlxuJyxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxzdHlsZXM6WyIubWF0LW9wdGlvbnt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDo0OHB4O2hlaWdodDo0OHB4O3BhZGRpbmc6MCAxNnB4O3RleHQtYWxpZ246bGVmdDt0ZXh0LWRlY29yYXRpb246bm9uZTttYXgtd2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzttYXgtd2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LW9wdGlvbltkaXNhYmxlZF17Y3Vyc29yOmRlZmF1bHR9W2Rpcj1ydGxdIC5tYXQtb3B0aW9ue3RleHQtYWxpZ246cmlnaHR9Lm1hdC1vcHRpb24gLm1hdC1pY29ue21hcmdpbi1yaWdodDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubWF0LW9wdGlvbiAubWF0LWljb24gc3Zne3ZlcnRpY2FsLWFsaWduOnRvcH1bZGlyPXJ0bF0gLm1hdC1vcHRpb24gLm1hdC1pY29ue21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjB9Lm1hdC1vcHRpb25bYXJpYS1kaXNhYmxlZD10cnVlXXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1vcHRncm91cCAubWF0LW9wdGlvbjpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpe3BhZGRpbmctbGVmdDozMnB4fVtkaXI9cnRsXSAubWF0LW9wdGdyb3VwIC5tYXQtb3B0aW9uOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSl7cGFkZGluZy1sZWZ0OjE2cHg7cGFkZGluZy1yaWdodDozMnB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1vcHRpb257bWFyZ2luOjAgMXB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1vcHRpb24ubWF0LWFjdGl2ZXtib3JkZXI6c29saWQgMXB4IGN1cnJlbnRDb2xvcjttYXJnaW46MH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtb3B0aW9uW2FyaWEtZGlzYWJsZWQ9dHJ1ZV17b3BhY2l0eTouNX0ubWF0LW9wdGlvbi10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXgtZ3JvdzoxO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5tYXQtb3B0aW9uIC5tYXQtb3B0aW9uLXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveHttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAubWF0LW9wdGlvbi1wc2V1ZG8tY2hlY2tib3h7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUkhdfV19LHt0eXBlOklILGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt6SF19XX1dfSksbnVsbCk7Y2xhc3MgVUh7fVVILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxVSCl9LFVILsm1bW9kPWFvKHt0eXBlOlVIfSksVUguybVpbmo9dm4oe2ltcG9ydHM6W1tTSCxXTSxYSSxFSF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVSCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1NILFdNLFhJLEVIXSxleHBvcnRzOltCSCxJSF0sZGVjbGFyYXRpb25zOltCSCxJSF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhVSCx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW0JILElIXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltTSCxXTSxYSSxFSF19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bQkgsSUhdfX0pO2NvbnN0IEdIPVsibWF0LWJ1dHRvbiIsIiJdLFdIPVsiKiJdLFlIPSIubWF0LWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5OjB9Lm1hdC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjA0fUBtZWRpYShob3Zlcjogbm9uZSl7Lm1hdC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MH19Lm1hdC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbiwubWF0LXN0cm9rZWQtYnV0dG9uLC5tYXQtZmxhdC1idXR0b257Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGV9Lm1hdC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1pY29uLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LXN0cm9rZWQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtZmxhdC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWljb24tYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmxhdC1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWZsYXQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWljb24tYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtc3Ryb2tlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1mbGF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LXJhaXNlZC1idXR0b257Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9Lm1hdC1yYWlzZWQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtcmFpc2VkLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtcmFpc2VkLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMTJ9Lm1hdC1yYWlzZWQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcmFpc2VkLWJ1dHRvbnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1zdHJva2VkLWJ1dHRvbntib3JkZXI6MXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtwYWRkaW5nOjAgMTVweDtsaW5lLWhlaWdodDozNHB4fS5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGUsLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e3RvcDotMXB4O2xlZnQ6LTFweDtyaWdodDotMXB4O2JvdHRvbTotMXB4fS5tYXQtZmFie2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTpub25lO2JvcmRlcjpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtkaXNwbGF5OmlubGluZS1ibG9jazt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bWluLXdpZHRoOjY0cHg7bGluZS1oZWlnaHQ6MzZweDtwYWRkaW5nOjAgMTZweDtib3JkZXItcmFkaXVzOjRweDtvdmVyZmxvdzp2aXNpYmxlO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2l0aW9uOmJhY2tncm91bmQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO21pbi13aWR0aDowO2JvcmRlci1yYWRpdXM6NTAlO3dpZHRoOjU2cHg7aGVpZ2h0OjU2cHg7cGFkZGluZzowO2ZsZXgtc2hyaW5rOjB9Lm1hdC1mYWI6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LWZhYi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmFiLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LWZhYnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1mYWIgLm1hdC1idXR0b24td3JhcHBlcntwYWRkaW5nOjE2cHggMDtkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDoyNHB4fS5tYXQtbWluaS1mYWJ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtwYWRkaW5nOjA7ZmxleC1zaHJpbms6MH0ubWF0LW1pbmktZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtbWluaS1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LW1pbmktZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1taW5pLWZhYi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMTJ9Lm1hdC1taW5pLWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LW1pbmktZmFie3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LW1pbmktZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXJ7cGFkZGluZzo4cHggMDtkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDoyNHB4fS5tYXQtaWNvbi1idXR0b257cGFkZGluZzowO21pbi13aWR0aDowO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7ZmxleC1zaHJpbms6MDtsaW5lLWhlaWdodDo0MHB4O2JvcmRlci1yYWRpdXM6NTAlfS5tYXQtaWNvbi1idXR0b24gaSwubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbntsaW5lLWhlaWdodDoyNHB4fS5tYXQtYnV0dG9uLXJpcHBsZS5tYXQtcmlwcGxlLC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOmluaGVyaXR9Lm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGU6bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDIwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1idXR0b24tcmlwcGxlLXJvdW5ke2JvcmRlci1yYWRpdXM6NTAlO3otaW5kZXg6MX0ubWF0LWJ1dHRvbiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1mbGF0LWJ1dHRvbiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1yYWlzZWQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWljb24tYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWZhYiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1taW5pLWZhYiAubWF0LWJ1dHRvbi13cmFwcGVyPip7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5KSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sLm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbntkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZTppbmhlcml0O3dpZHRoOjIuNWVtO2hlaWdodDoyLjVlbX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mbGF0LWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcmFpc2VkLWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtaWNvbi1idXR0b24sLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZhYiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWluaS1mYWJ7b3V0bGluZTpzb2xpZCAxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi1iYXNlLmNkay1rZXlib2FyZC1mb2N1c2VkLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tYmFzZS5jZGstcHJvZ3JhbS1mb2N1c2Vke291dGxpbmU6c29saWQgM3B4fVxuIixxSD1bIm1hdC1idXR0b24iLCJtYXQtZmxhdC1idXR0b24iLCJtYXQtaWNvbi1idXR0b24iLCJtYXQtcmFpc2VkLWJ1dHRvbiIsIm1hdC1zdHJva2VkLWJ1dHRvbiIsIm1hdC1taW5pLWZhYiIsIm1hdC1mYWIiXSxaSD1KSShLSShRSShjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSkpKTtjbGFzcyBYSCBleHRlbmRzIFpIe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0KSx0aGlzLl9mb2N1c01vbml0b3I9ZSx0aGlzLl9hbmltYXRpb25Nb2RlPW4sdGhpcy5pc1JvdW5kQnV0dG9uPXRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCJtYXQtZmFiIiwibWF0LW1pbmktZmFiIiksdGhpcy5pc0ljb25CdXR0b249dGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMoIm1hdC1pY29uLWJ1dHRvbiIpO2Zvcihjb25zdCB0IG9mIHFIKXRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKHQpJiZ0aGlzLl9nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQodCk7dC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1hdC1idXR0b24tYmFzZSIpLHRoaXMuaXNSb3VuZEJ1dHRvbiYmKHRoaXMuY29sb3I9ImFjY2VudCIpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsITApfW5nT25EZXN0cm95KCl7dGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpfWZvY3VzKHQsZSl7dD90aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSx0LGUpOnRoaXMuX2dldEhvc3RFbGVtZW50KCkuZm9jdXMoZSl9X2dldEhvc3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudH1faXNSaXBwbGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVSaXBwbGV8fHRoaXMuZGlzYWJsZWR9X2hhc0hvc3RBdHRyaWJ1dGVzKC4uLnQpe3JldHVybiB0LnNvbWUoKHQ9PnRoaXMuX2dldEhvc3RFbGVtZW50KCkuaGFzQXR0cmlidXRlKHQpKSl9fVhILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYSCkoU20oaGcpLFNtKFNJKSxTbShWUCw4KSl9LFhILsm1Y21wPXRvKHt0eXBlOlhILHNlbGVjdG9yczpbWyJidXR0b24iLCJtYXQtYnV0dG9uIiwiIl0sWyJidXR0b24iLCJtYXQtcmFpc2VkLWJ1dHRvbiIsIiJdLFsiYnV0dG9uIiwibWF0LWljb24tYnV0dG9uIiwiIl0sWyJidXR0b24iLCJtYXQtZmFiIiwiIl0sWyJidXR0b24iLCJtYXQtbWluaS1mYWIiLCIiXSxbImJ1dHRvbiIsIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiJdLFsiYnV0dG9uIiwibWF0LWZsYXQtYnV0dG9uIiwiIl1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChrSCw1KSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLnJpcHBsZT10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LWZvY3VzLWluZGljYXRvciJdLGhvc3RWYXJzOjUsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJihqcCgiZGlzYWJsZWQiLG4uZGlzYWJsZWR8fG51bGwpLHB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpKCJtYXQtYnV0dG9uLWRpc2FibGVkIixuLmRpc2FibGVkKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixjb2xvcjoiY29sb3IifSxleHBvcnRBczpbIm1hdEJ1dHRvbiJdLGZlYXR1cmVzOlt4cF0sYXR0cnM6R0gsbmdDb250ZW50U2VsZWN0b3JzOldILGRlY2xzOjQsdmFyczo1LGNvbnN0czpbWzEsIm1hdC1idXR0b24td3JhcHBlciJdLFsibWF0UmlwcGxlIiwiIiwxLCJtYXQtYnV0dG9uLXJpcHBsZSIsMywibWF0UmlwcGxlRGlzYWJsZWQiLCJtYXRSaXBwbGVDZW50ZXJlZCIsIm1hdFJpcHBsZVRyaWdnZXIiXSxbMSwibWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFJtKDAsInNwYW4iLDApLFhtKDEpLEFtKCksVG0oMiwic3BhbiIsMSksVG0oMywic3BhbiIsMikpLDImZSYmKHJjKDIpLHB1KCJtYXQtYnV0dG9uLXJpcHBsZS1yb3VuZCIsbi5pc1JvdW5kQnV0dG9ufHxuLmlzSWNvbkJ1dHRvbiksRG0oIm1hdFJpcHBsZURpc2FibGVkIixuLl9pc1JpcHBsZURpc2FibGVkKCkpKCJtYXRSaXBwbGVDZW50ZXJlZCIsbi5pc0ljb25CdXR0b24pKCJtYXRSaXBwbGVUcmlnZ2VyIixuLl9nZXRIb3N0RWxlbWVudCgpKSl9LGRpcmVjdGl2ZXM6W2tIXSxzdHlsZXM6W1lIXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxYSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpTSX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dLFhILnByb3BEZWNvcmF0b3JzPXtyaXBwbGU6W3t0eXBlOlphLGFyZ3M6W2tIXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFhILFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImJ1dHRvblttYXQtYnV0dG9uXSwgYnV0dG9uW21hdC1yYWlzZWQtYnV0dG9uXSwgYnV0dG9uW21hdC1pY29uLWJ1dHRvbl0sXG4gICAgICAgICAgICAgYnV0dG9uW21hdC1mYWJdLCBidXR0b25bbWF0LW1pbmktZmFiXSwgYnV0dG9uW21hdC1zdHJva2VkLWJ1dHRvbl0sXG4gICAgICAgICAgICAgYnV0dG9uW21hdC1mbGF0LWJ1dHRvbl0iLGV4cG9ydEFzOiJtYXRCdXR0b24iLGhvc3Q6eyJbYXR0ci5kaXNhYmxlZF0iOiJkaXNhYmxlZCB8fCBudWxsIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6J19hbmltYXRpb25Nb2RlID09PSAiTm9vcEFuaW1hdGlvbnMiJywiW2NsYXNzLm1hdC1idXR0b24tZGlzYWJsZWRdIjoiZGlzYWJsZWQiLGNsYXNzOiJtYXQtZm9jdXMtaW5kaWNhdG9yIn0sdGVtcGxhdGU6JzxzcGFuIGNsYXNzPSJtYXQtYnV0dG9uLXdyYXBwZXIiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+XG48c3BhbiBtYXRSaXBwbGUgY2xhc3M9Im1hdC1idXR0b24tcmlwcGxlIlxuICAgICAgW2NsYXNzLm1hdC1idXR0b24tcmlwcGxlLXJvdW5kXT0iaXNSb3VuZEJ1dHRvbiB8fCBpc0ljb25CdXR0b24iXG4gICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJfaXNSaXBwbGVEaXNhYmxlZCgpIlxuICAgICAgW21hdFJpcHBsZUNlbnRlcmVkXT0iaXNJY29uQnV0dG9uIlxuICAgICAgW21hdFJpcHBsZVRyaWdnZXJdPSJfZ2V0SG9zdEVsZW1lbnQoKSI+PC9zcGFuPlxuPHNwYW4gY2xhc3M9Im1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSI+PC9zcGFuPlxuJyxpbnB1dHM6WyJkaXNhYmxlZCIsImRpc2FibGVSaXBwbGUiLCJjb2xvciJdLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHN0eWxlczpbIi5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MH0ubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMDR9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTowfX0ubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uLC5tYXQtc3Ryb2tlZC1idXR0b24sLm1hdC1mbGF0LWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWljb24tYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtc3Ryb2tlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1mbGF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LXN0cm9rZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mbGF0LWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmxhdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtaWNvbi1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1zdHJva2VkLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWZsYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtcmFpc2VkLWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1yYWlzZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1yYWlzZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1yYWlzZWQtYnV0dG9ue3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXN0cm9rZWQtYnV0dG9ue2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO3BhZGRpbmc6MCAxNXB4O2xpbmUtaGVpZ2h0OjM0cHh9Lm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZSwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7dG9wOi0xcHg7bGVmdDotMXB4O3JpZ2h0Oi0xcHg7Ym90dG9tOi0xcHh9Lm1hdC1mYWJ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtwYWRkaW5nOjA7ZmxleC1zaHJpbms6MH0ubWF0LWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mYWIuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtZmFie3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LWZhYiAubWF0LWJ1dHRvbi13cmFwcGVye3BhZGRpbmc6MTZweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1taW5pLWZhYntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTttaW4td2lkdGg6MDtib3JkZXItcmFkaXVzOjUwJTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6MDtmbGV4LXNocmluazowfS5tYXQtbWluaS1mYWI6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtbWluaS1mYWIuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LW1pbmktZmFiLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LW1pbmktZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtbWluaS1mYWJ7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtbWluaS1mYWIgLm1hdC1idXR0b24td3JhcHBlcntwYWRkaW5nOjhweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1pY29uLWJ1dHRvbntwYWRkaW5nOjA7bWluLXdpZHRoOjA7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtmbGV4LXNocmluazowO2xpbmUtaGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czo1MCV9Lm1hdC1pY29uLWJ1dHRvbiBpLC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGUsLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0ubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e3RyYW5zaXRpb246bm9uZX0ubWF0LWJ1dHRvbi1yaXBwbGUtcm91bmR7Ym9yZGVyLXJhZGl1czo1MCU7ei1pbmRleDoxfS5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWZsYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXJhaXNlZC1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtaWNvbi1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LW1pbmktZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+Knt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiwubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOmluaGVyaXQ7d2lkdGg6Mi41ZW07aGVpZ2h0OjIuNWVtfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24sLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZsYXQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1yYWlzZWQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pY29uLWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZmFiLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1taW5pLWZhYntvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLWJhc2UuY2RrLWtleWJvYXJkLWZvY3VzZWQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi1iYXNlLmNkay1wcm9ncmFtLWZvY3VzZWR7b3V0bGluZTpzb2xpZCAzcHh9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpTSX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse3JpcHBsZTpbe3R5cGU6WmEsYXJnczpba0hdfV19KTtjbGFzcyBLSCBleHRlbmRzIFhIe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihlLHQsbil9X2hhbHREaXNhYmxlZEV2ZW50cyh0KXt0aGlzLmRpc2FibGVkJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX1LSC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8S0gpKFNtKFNJKSxTbShoZyksU20oVlAsOCkpfSxLSC7JtWNtcD10byh7dHlwZTpLSCxzZWxlY3RvcnM6W1siYSIsIm1hdC1idXR0b24iLCIiXSxbImEiLCJtYXQtcmFpc2VkLWJ1dHRvbiIsIiJdLFsiYSIsIm1hdC1pY29uLWJ1dHRvbiIsIiJdLFsiYSIsIm1hdC1mYWIiLCIiXSxbImEiLCJtYXQtbWluaS1mYWIiLCIiXSxbImEiLCJtYXQtc3Ryb2tlZC1idXR0b24iLCIiXSxbImEiLCJtYXQtZmxhdC1idXR0b24iLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtZm9jdXMtaW5kaWNhdG9yIl0saG9zdFZhcnM6Nyxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFsdERpc2FibGVkRXZlbnRzKGUpfSkpLDImZSYmKGpwKCJ0YWJpbmRleCIsbi5kaXNhYmxlZD8tMTpuLnRhYkluZGV4fHwwKSgiZGlzYWJsZWQiLG4uZGlzYWJsZWR8fG51bGwpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkLnRvU3RyaW5nKCkpLHB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpKCJtYXQtYnV0dG9uLWRpc2FibGVkIixuLmRpc2FibGVkKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixjb2xvcjoiY29sb3IiLHRhYkluZGV4OiJ0YWJJbmRleCJ9LGV4cG9ydEFzOlsibWF0QnV0dG9uIiwibWF0QW5jaG9yIl0sZmVhdHVyZXM6W3hwXSxhdHRyczpHSCxuZ0NvbnRlbnRTZWxlY3RvcnM6V0gsZGVjbHM6NCx2YXJzOjUsY29uc3RzOltbMSwibWF0LWJ1dHRvbi13cmFwcGVyIl0sWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1idXR0b24tcmlwcGxlIiwzLCJtYXRSaXBwbGVEaXNhYmxlZCIsIm1hdFJpcHBsZUNlbnRlcmVkIiwibWF0UmlwcGxlVHJpZ2dlciJdLFsxLCJtYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFptKCksUm0oMCwic3BhbiIsMCksWG0oMSksQW0oKSxUbSgyLCJzcGFuIiwxKSxUbSgzLCJzcGFuIiwyKSksMiZlJiYocmMoMikscHUoIm1hdC1idXR0b24tcmlwcGxlLXJvdW5kIixuLmlzUm91bmRCdXR0b258fG4uaXNJY29uQnV0dG9uKSxEbSgibWF0UmlwcGxlRGlzYWJsZWQiLG4uX2lzUmlwcGxlRGlzYWJsZWQoKSkoIm1hdFJpcHBsZUNlbnRlcmVkIixuLmlzSWNvbkJ1dHRvbikoIm1hdFJpcHBsZVRyaWdnZXIiLG4uX2dldEhvc3RFbGVtZW50KCkpKX0sZGlyZWN0aXZlczpba0hdLHN0eWxlczpbWUhdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLEtILmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U0l9LHt0eXBlOmhnfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sS0gucHJvcERlY29yYXRvcnM9e3RhYkluZGV4Olt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEtILFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImFbbWF0LWJ1dHRvbl0sIGFbbWF0LXJhaXNlZC1idXR0b25dLCBhW21hdC1pY29uLWJ1dHRvbl0sIGFbbWF0LWZhYl0sXG4gICAgICAgICAgICAgYVttYXQtbWluaS1mYWJdLCBhW21hdC1zdHJva2VkLWJ1dHRvbl0sIGFbbWF0LWZsYXQtYnV0dG9uXSIsZXhwb3J0QXM6Im1hdEJ1dHRvbiwgbWF0QW5jaG9yIixob3N0OnsiW2F0dHIudGFiaW5kZXhdIjoiZGlzYWJsZWQgPyAtMSA6ICh0YWJJbmRleCB8fCAwKSIsIlthdHRyLmRpc2FibGVkXSI6ImRpc2FibGVkIHx8IG51bGwiLCJbYXR0ci5hcmlhLWRpc2FibGVkXSI6ImRpc2FibGVkLnRvU3RyaW5nKCkiLCIoY2xpY2spIjoiX2hhbHREaXNhYmxlZEV2ZW50cygkZXZlbnQpIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6J19hbmltYXRpb25Nb2RlID09PSAiTm9vcEFuaW1hdGlvbnMiJywiW2NsYXNzLm1hdC1idXR0b24tZGlzYWJsZWRdIjoiZGlzYWJsZWQiLGNsYXNzOiJtYXQtZm9jdXMtaW5kaWNhdG9yIn0saW5wdXRzOlsiZGlzYWJsZWQiLCJkaXNhYmxlUmlwcGxlIiwiY29sb3IiXSx0ZW1wbGF0ZTonPHNwYW4gY2xhc3M9Im1hdC1idXR0b24td3JhcHBlciI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Bhbj5cbjxzcGFuIG1hdFJpcHBsZSBjbGFzcz0ibWF0LWJ1dHRvbi1yaXBwbGUiXG4gICAgICBbY2xhc3MubWF0LWJ1dHRvbi1yaXBwbGUtcm91bmRdPSJpc1JvdW5kQnV0dG9uIHx8IGlzSWNvbkJ1dHRvbiJcbiAgICAgIFttYXRSaXBwbGVEaXNhYmxlZF09Il9pc1JpcHBsZURpc2FibGVkKCkiXG4gICAgICBbbWF0UmlwcGxlQ2VudGVyZWRdPSJpc0ljb25CdXR0b24iXG4gICAgICBbbWF0UmlwcGxlVHJpZ2dlcl09Il9nZXRIb3N0RWxlbWVudCgpIj48L3NwYW4+XG48c3BhbiBjbGFzcz0ibWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5Ij48L3NwYW4+XG4nLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHN0eWxlczpbIi5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MH0ubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMDR9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTowfX0ubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uLC5tYXQtc3Ryb2tlZC1idXR0b24sLm1hdC1mbGF0LWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWljb24tYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtc3Ryb2tlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1mbGF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LXN0cm9rZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mbGF0LWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmxhdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtaWNvbi1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1zdHJva2VkLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWZsYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtcmFpc2VkLWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1yYWlzZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1yYWlzZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1yYWlzZWQtYnV0dG9ue3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXN0cm9rZWQtYnV0dG9ue2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO3BhZGRpbmc6MCAxNXB4O2xpbmUtaGVpZ2h0OjM0cHh9Lm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZSwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7dG9wOi0xcHg7bGVmdDotMXB4O3JpZ2h0Oi0xcHg7Ym90dG9tOi0xcHh9Lm1hdC1mYWJ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtwYWRkaW5nOjA7ZmxleC1zaHJpbms6MH0ubWF0LWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mYWIuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtZmFie3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LWZhYiAubWF0LWJ1dHRvbi13cmFwcGVye3BhZGRpbmc6MTZweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1taW5pLWZhYntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTttaW4td2lkdGg6MDtib3JkZXItcmFkaXVzOjUwJTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6MDtmbGV4LXNocmluazowfS5tYXQtbWluaS1mYWI6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtbWluaS1mYWIuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LW1pbmktZmFiLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LW1pbmktZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtbWluaS1mYWJ7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtbWluaS1mYWIgLm1hdC1idXR0b24td3JhcHBlcntwYWRkaW5nOjhweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1pY29uLWJ1dHRvbntwYWRkaW5nOjA7bWluLXdpZHRoOjA7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtmbGV4LXNocmluazowO2xpbmUtaGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czo1MCV9Lm1hdC1pY29uLWJ1dHRvbiBpLC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGUsLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0ubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e3RyYW5zaXRpb246bm9uZX0ubWF0LWJ1dHRvbi1yaXBwbGUtcm91bmR7Ym9yZGVyLXJhZGl1czo1MCU7ei1pbmRleDoxfS5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWZsYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXJhaXNlZC1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtaWNvbi1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LW1pbmktZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+Knt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiwubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOmluaGVyaXQ7d2lkdGg6Mi41ZW07aGVpZ2h0OjIuNWVtfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24sLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZsYXQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1yYWlzZWQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pY29uLWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZmFiLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1taW5pLWZhYntvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLWJhc2UuY2RrLWtleWJvYXJkLWZvY3VzZWQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi1iYXNlLmNkay1wcm9ncmFtLWZvY3VzZWR7b3V0bGluZTpzb2xpZCAzcHh9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlNJfSx7dHlwZTpoZ30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse3RhYkluZGV4Olt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBKSHt9SkguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEpIKX0sSkguybVtb2Q9YW8oe3R5cGU6Skh9KSxKSC7JtWluaj12bih7aW1wb3J0czpbW1NILFhJXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEpILFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbU0gsWEldLGV4cG9ydHM6W1hILEtILFhJXSxkZWNsYXJhdGlvbnM6W1hILEtIXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEpILHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bWEgsS0hdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1NILFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltYSCxLSCxYSV19fSk7Y2xhc3MgUUh7fWZ1bmN0aW9uICRIKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5jb25uZWN0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB0RiBleHRlbmRzIFFIe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fZGF0YT10fWNvbm5lY3QoKXtyZXR1cm4gTnQodGhpcy5fZGF0YSk/dGhpcy5fZGF0YTpFdCh0aGlzLl9kYXRhKX1kaXNjb25uZWN0KCl7fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGVGe2FwcGx5Q2hhbmdlcyh0LGUsbixvLGkpe3QuZm9yRWFjaE9wZXJhdGlvbigoKHQsbyxhKT0+e2xldCByLHM7aWYobnVsbD09dC5wcmV2aW91c0luZGV4KXtjb25zdCBpPW4odCxvLGEpO3I9ZS5jcmVhdGVFbWJlZGRlZFZpZXcoaS50ZW1wbGF0ZVJlZixpLmNvbnRleHQsaS5pbmRleCkscz0xfWVsc2UgbnVsbD09YT8oZS5yZW1vdmUobykscz0zKToocj1lLmdldChvKSxlLm1vdmUocixhKSxzPTIpO2kmJmkoe2NvbnRleHQ6bnVsbD09cj92b2lkIDA6ci5jb250ZXh0LG9wZXJhdGlvbjpzLHJlY29yZDp0fSl9KSl9ZGV0YWNoKCl7fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgbkZ7Y29uc3RydWN0b3IoKXt0aGlzLnZpZXdDYWNoZVNpemU9MjAsdGhpcy5fdmlld0NhY2hlPVtdfWFwcGx5Q2hhbmdlcyh0LGUsbixvLGkpe3QuZm9yRWFjaE9wZXJhdGlvbigoKHQsYSxyKT0+e2xldCBzLGw7bnVsbD09dC5wcmV2aW91c0luZGV4PyhzPXRoaXMuX2luc2VydFZpZXcoKCgpPT5uKHQsYSxyKSkscixlLG8odCkpLGw9cz8xOjApOm51bGw9PXI/KHRoaXMuX2RldGFjaEFuZENhY2hlVmlldyhhLGUpLGw9Myk6KHM9dGhpcy5fbW92ZVZpZXcoYSxyLGUsbyh0KSksbD0yKSxpJiZpKHtjb250ZXh0Om51bGw9PXM/dm9pZCAwOnMuY29udGV4dCxvcGVyYXRpb246bCxyZWNvcmQ6dH0pfSkpfWRldGFjaCgpe2Zvcihjb25zdCB0IG9mIHRoaXMuX3ZpZXdDYWNoZSl0LmRlc3Ryb3koKTt0aGlzLl92aWV3Q2FjaGU9W119X2luc2VydFZpZXcodCxlLG4sbyl7Y29uc3QgaT10aGlzLl9pbnNlcnRWaWV3RnJvbUNhY2hlKGUsbik7aWYoaSlyZXR1cm4gdm9pZChpLmNvbnRleHQuJGltcGxpY2l0PW8pO2NvbnN0IGE9dCgpO3JldHVybiBuLmNyZWF0ZUVtYmVkZGVkVmlldyhhLnRlbXBsYXRlUmVmLGEuY29udGV4dCxhLmluZGV4KX1fZGV0YWNoQW5kQ2FjaGVWaWV3KHQsZSl7Y29uc3Qgbj1lLmRldGFjaCh0KTt0aGlzLl9tYXliZUNhY2hlVmlldyhuLGUpfV9tb3ZlVmlldyh0LGUsbixvKXtjb25zdCBpPW4uZ2V0KHQpO3JldHVybiBuLm1vdmUoaSxlKSxpLmNvbnRleHQuJGltcGxpY2l0PW8saX1fbWF5YmVDYWNoZVZpZXcodCxlKXtpZih0aGlzLl92aWV3Q2FjaGUubGVuZ3RoPHRoaXMudmlld0NhY2hlU2l6ZSl0aGlzLl92aWV3Q2FjaGUucHVzaCh0KTtlbHNle2NvbnN0IG49ZS5pbmRleE9mKHQpOy0xPT09bj90LmRlc3Ryb3koKTplLnJlbW92ZShuKX19X2luc2VydFZpZXdGcm9tQ2FjaGUodCxlKXtjb25zdCBuPXRoaXMuX3ZpZXdDYWNoZS5wb3AoKTtyZXR1cm4gbiYmZS5pbnNlcnQobix0KSxufHxudWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3Mgb0Z7Y29uc3RydWN0b3IodD0hMSxlLG49ITApe3RoaXMuX211bHRpcGxlPXQsdGhpcy5fZW1pdENoYW5nZXM9bix0aGlzLl9zZWxlY3Rpb249bmV3IFNldCx0aGlzLl9kZXNlbGVjdGVkVG9FbWl0PVtdLHRoaXMuX3NlbGVjdGVkVG9FbWl0PVtdLHRoaXMuY2hhbmdlZD1uZXcgSSxlJiZlLmxlbmd0aCYmKHQ/ZS5mb3JFYWNoKCh0PT50aGlzLl9tYXJrU2VsZWN0ZWQodCkpKTp0aGlzLl9tYXJrU2VsZWN0ZWQoZVswXSksdGhpcy5fc2VsZWN0ZWRUb0VtaXQubGVuZ3RoPTApfWdldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLl9zZWxlY3RlZHx8KHRoaXMuX3NlbGVjdGVkPUFycmF5LmZyb20odGhpcy5fc2VsZWN0aW9uLnZhbHVlcygpKSksdGhpcy5fc2VsZWN0ZWR9c2VsZWN0KC4uLnQpe3RoaXMuX3ZlcmlmeVZhbHVlQXNzaWdubWVudCh0KSx0LmZvckVhY2goKHQ9PnRoaXMuX21hcmtTZWxlY3RlZCh0KSkpLHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpfWRlc2VsZWN0KC4uLnQpe3RoaXMuX3ZlcmlmeVZhbHVlQXNzaWdubWVudCh0KSx0LmZvckVhY2goKHQ9PnRoaXMuX3VubWFya1NlbGVjdGVkKHQpKSksdGhpcy5fZW1pdENoYW5nZUV2ZW50KCl9dG9nZ2xlKHQpe3RoaXMuaXNTZWxlY3RlZCh0KT90aGlzLmRlc2VsZWN0KHQpOnRoaXMuc2VsZWN0KHQpfWNsZWFyKCl7dGhpcy5fdW5tYXJrQWxsKCksdGhpcy5fZW1pdENoYW5nZUV2ZW50KCl9aXNTZWxlY3RlZCh0KXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uLmhhcyh0KX1pc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLl9zZWxlY3Rpb24uc2l6ZX1oYXNWYWx1ZSgpe3JldHVybiF0aGlzLmlzRW1wdHkoKX1zb3J0KHQpe3RoaXMuX211bHRpcGxlJiZ0aGlzLnNlbGVjdGVkJiZ0aGlzLl9zZWxlY3RlZC5zb3J0KHQpfWlzTXVsdGlwbGVTZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5fbXVsdGlwbGV9X2VtaXRDaGFuZ2VFdmVudCgpe3RoaXMuX3NlbGVjdGVkPW51bGwsKHRoaXMuX3NlbGVjdGVkVG9FbWl0Lmxlbmd0aHx8dGhpcy5fZGVzZWxlY3RlZFRvRW1pdC5sZW5ndGgpJiYodGhpcy5jaGFuZ2VkLm5leHQoe3NvdXJjZTp0aGlzLGFkZGVkOnRoaXMuX3NlbGVjdGVkVG9FbWl0LHJlbW92ZWQ6dGhpcy5fZGVzZWxlY3RlZFRvRW1pdH0pLHRoaXMuX2Rlc2VsZWN0ZWRUb0VtaXQ9W10sdGhpcy5fc2VsZWN0ZWRUb0VtaXQ9W10pfV9tYXJrU2VsZWN0ZWQodCl7dGhpcy5pc1NlbGVjdGVkKHQpfHwodGhpcy5fbXVsdGlwbGV8fHRoaXMuX3VubWFya0FsbCgpLHRoaXMuX3NlbGVjdGlvbi5hZGQodCksdGhpcy5fZW1pdENoYW5nZXMmJnRoaXMuX3NlbGVjdGVkVG9FbWl0LnB1c2godCkpfV91bm1hcmtTZWxlY3RlZCh0KXt0aGlzLmlzU2VsZWN0ZWQodCkmJih0aGlzLl9zZWxlY3Rpb24uZGVsZXRlKHQpLHRoaXMuX2VtaXRDaGFuZ2VzJiZ0aGlzLl9kZXNlbGVjdGVkVG9FbWl0LnB1c2godCkpfV91bm1hcmtBbGwoKXt0aGlzLmlzRW1wdHkoKXx8dGhpcy5fc2VsZWN0aW9uLmZvckVhY2goKHQ9PnRoaXMuX3VubWFya1NlbGVjdGVkKHQpKSl9X3ZlcmlmeVZhbHVlQXNzaWdubWVudCh0KXtpZih0Lmxlbmd0aD4xJiYhdGhpcy5fbXVsdGlwbGUmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyhmdW5jdGlvbiBlKCl7cmV0dXJuIEVycm9yKCJDYW5ub3QgcGFzcyBtdWx0aXBsZSB2YWx1ZXMgaW50byBTZWxlY3Rpb25Nb2RlbCB3aXRoIHNpbmdsZS12YWx1ZSBtb2RlLiIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKCl9fWNsYXNzIGlGe2NvbnN0cnVjdG9yKCl7dGhpcy5fbGlzdGVuZXJzPVtdfW5vdGlmeSh0LGUpe2ZvcihsZXQgbiBvZiB0aGlzLl9saXN0ZW5lcnMpbih0LGUpfWxpc3Rlbih0KXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzLnB1c2godCksKCk9Pnt0aGlzLl9saXN0ZW5lcnM9dGhpcy5fbGlzdGVuZXJzLmZpbHRlcigoZT0+dCE9PWUpKX19bmdPbkRlc3Ryb3koKXt0aGlzLl9saXN0ZW5lcnM9W119fWlGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxpRil9LGlGLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBpRn0sdG9rZW46aUYscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGlGLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgYUY9bmV3IEdhKCJfVmlld1JlcGVhdGVyIiksckY9WyJjb250ZW50V3JhcHBlciJdLHNGPW5ldyBHYSgiVklSVFVBTF9TQ1JPTExfU1RSQVRFR1kiKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGxGe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9zY3JvbGxlZEluZGV4Q2hhbmdlPW5ldyBJLHRoaXMuc2Nyb2xsZWRJbmRleENoYW5nZT10aGlzLl9zY3JvbGxlZEluZGV4Q2hhbmdlLnBpcGUoTWUoKSksdGhpcy5fdmlld3BvcnQ9bnVsbCx0aGlzLl9pdGVtU2l6ZT10LHRoaXMuX21pbkJ1ZmZlclB4PWUsdGhpcy5fbWF4QnVmZmVyUHg9bn1hdHRhY2godCl7dGhpcy5fdmlld3BvcnQ9dCx0aGlzLl91cGRhdGVUb3RhbENvbnRlbnRTaXplKCksdGhpcy5fdXBkYXRlUmVuZGVyZWRSYW5nZSgpfWRldGFjaCgpe3RoaXMuX3Njcm9sbGVkSW5kZXhDaGFuZ2UuY29tcGxldGUoKSx0aGlzLl92aWV3cG9ydD1udWxsfXVwZGF0ZUl0ZW1BbmRCdWZmZXJTaXplKHQsZSxuKXtpZihuPGUmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiQ0RLIHZpcnR1YWwgc2Nyb2xsOiBtYXhCdWZmZXJQeCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBtaW5CdWZmZXJQeCIpO3RoaXMuX2l0ZW1TaXplPXQsdGhpcy5fbWluQnVmZmVyUHg9ZSx0aGlzLl9tYXhCdWZmZXJQeD1uLHRoaXMuX3VwZGF0ZVRvdGFsQ29udGVudFNpemUoKSx0aGlzLl91cGRhdGVSZW5kZXJlZFJhbmdlKCl9b25Db250ZW50U2Nyb2xsZWQoKXt0aGlzLl91cGRhdGVSZW5kZXJlZFJhbmdlKCl9b25EYXRhTGVuZ3RoQ2hhbmdlZCgpe3RoaXMuX3VwZGF0ZVRvdGFsQ29udGVudFNpemUoKSx0aGlzLl91cGRhdGVSZW5kZXJlZFJhbmdlKCl9b25Db250ZW50UmVuZGVyZWQoKXt9b25SZW5kZXJlZE9mZnNldENoYW5nZWQoKXt9c2Nyb2xsVG9JbmRleCh0LGUpe3RoaXMuX3ZpZXdwb3J0JiZ0aGlzLl92aWV3cG9ydC5zY3JvbGxUb09mZnNldCh0KnRoaXMuX2l0ZW1TaXplLGUpfV91cGRhdGVUb3RhbENvbnRlbnRTaXplKCl7dGhpcy5fdmlld3BvcnQmJnRoaXMuX3ZpZXdwb3J0LnNldFRvdGFsQ29udGVudFNpemUodGhpcy5fdmlld3BvcnQuZ2V0RGF0YUxlbmd0aCgpKnRoaXMuX2l0ZW1TaXplKX1fdXBkYXRlUmVuZGVyZWRSYW5nZSgpe2lmKCF0aGlzLl92aWV3cG9ydClyZXR1cm47Y29uc3QgdD10aGlzLl92aWV3cG9ydC5nZXRSZW5kZXJlZFJhbmdlKCksZT17c3RhcnQ6dC5zdGFydCxlbmQ6dC5lbmR9LG49dGhpcy5fdmlld3BvcnQuZ2V0Vmlld3BvcnRTaXplKCksbz10aGlzLl92aWV3cG9ydC5nZXREYXRhTGVuZ3RoKCk7bGV0IGk9dGhpcy5fdmlld3BvcnQubWVhc3VyZVNjcm9sbE9mZnNldCgpLGE9dGhpcy5faXRlbVNpemU+MD9pL3RoaXMuX2l0ZW1TaXplOjA7aWYoZS5lbmQ+byl7Y29uc3QgdD1NYXRoLmNlaWwobi90aGlzLl9pdGVtU2l6ZSkscj1NYXRoLm1heCgwLE1hdGgubWluKGEsby10KSk7YSE9ciYmKGE9cixpPXIqdGhpcy5faXRlbVNpemUsZS5zdGFydD1NYXRoLmZsb29yKGEpKSxlLmVuZD1NYXRoLm1heCgwLE1hdGgubWluKG8sZS5zdGFydCt0KSl9Y29uc3Qgcj1pLWUuc3RhcnQqdGhpcy5faXRlbVNpemU7aWYocjx0aGlzLl9taW5CdWZmZXJQeCYmMCE9ZS5zdGFydCl7Y29uc3QgdD1NYXRoLmNlaWwoKHRoaXMuX21heEJ1ZmZlclB4LXIpL3RoaXMuX2l0ZW1TaXplKTtlLnN0YXJ0PU1hdGgubWF4KDAsZS5zdGFydC10KSxlLmVuZD1NYXRoLm1pbihvLE1hdGguY2VpbChhKyhuK3RoaXMuX21pbkJ1ZmZlclB4KS90aGlzLl9pdGVtU2l6ZSkpfWVsc2V7Y29uc3QgdD1lLmVuZCp0aGlzLl9pdGVtU2l6ZS0oaStuKTtpZih0PHRoaXMuX21pbkJ1ZmZlclB4JiZlLmVuZCE9byl7Y29uc3Qgbj1NYXRoLmNlaWwoKHRoaXMuX21heEJ1ZmZlclB4LXQpL3RoaXMuX2l0ZW1TaXplKTtuPjAmJihlLmVuZD1NYXRoLm1pbihvLGUuZW5kK24pLGUuc3RhcnQ9TWF0aC5tYXgoMCxNYXRoLmZsb29yKGEtdGhpcy5fbWluQnVmZmVyUHgvdGhpcy5faXRlbVNpemUpKSl9fXRoaXMuX3ZpZXdwb3J0LnNldFJlbmRlcmVkUmFuZ2UoZSksdGhpcy5fdmlld3BvcnQuc2V0UmVuZGVyZWRDb250ZW50T2Zmc2V0KHRoaXMuX2l0ZW1TaXplKmUuc3RhcnQpLHRoaXMuX3Njcm9sbGVkSW5kZXhDaGFuZ2UubmV4dChNYXRoLmZsb29yKGEpKX19ZnVuY3Rpb24gY0YodCl7cmV0dXJuIHQuX3Njcm9sbFN0cmF0ZWd5fWNsYXNzIGRGe2NvbnN0cnVjdG9yKCl7dGhpcy5faXRlbVNpemU9MjAsdGhpcy5fbWluQnVmZmVyUHg9MTAwLHRoaXMuX21heEJ1ZmZlclB4PTIwMCx0aGlzLl9zY3JvbGxTdHJhdGVneT1uZXcgbEYodGhpcy5pdGVtU2l6ZSx0aGlzLm1pbkJ1ZmZlclB4LHRoaXMubWF4QnVmZmVyUHgpfWdldCBpdGVtU2l6ZSgpe3JldHVybiB0aGlzLl9pdGVtU2l6ZX1zZXQgaXRlbVNpemUodCl7dGhpcy5faXRlbVNpemU9X3oodCl9Z2V0IG1pbkJ1ZmZlclB4KCl7cmV0dXJuIHRoaXMuX21pbkJ1ZmZlclB4fXNldCBtaW5CdWZmZXJQeCh0KXt0aGlzLl9taW5CdWZmZXJQeD1feih0KX1nZXQgbWF4QnVmZmVyUHgoKXtyZXR1cm4gdGhpcy5fbWF4QnVmZmVyUHh9c2V0IG1heEJ1ZmZlclB4KHQpe3RoaXMuX21heEJ1ZmZlclB4PV96KHQpfW5nT25DaGFuZ2VzKCl7dGhpcy5fc2Nyb2xsU3RyYXRlZ3kudXBkYXRlSXRlbUFuZEJ1ZmZlclNpemUodGhpcy5pdGVtU2l6ZSx0aGlzLm1pbkJ1ZmZlclB4LHRoaXMubWF4QnVmZmVyUHgpfX1kRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZEYpfSxkRi7JtWRpcj1sbyh7dHlwZTpkRixzZWxlY3RvcnM6W1siY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IiwiaXRlbVNpemUiLCIiXV0saW5wdXRzOntpdGVtU2l6ZToiaXRlbVNpemUiLG1pbkJ1ZmZlclB4OiJtaW5CdWZmZXJQeCIsbWF4QnVmZmVyUHg6Im1heEJ1ZmZlclB4In0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpzRix1c2VGYWN0b3J5OmNGLGRlcHM6W3FlKCgoKT0+ZEYpKV19XSksQm9dfSksZEYucHJvcERlY29yYXRvcnM9e2l0ZW1TaXplOlt7dHlwZTp4eX1dLG1pbkJ1ZmZlclB4Olt7dHlwZTp4eX1dLG1heEJ1ZmZlclB4Olt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGRGLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFtpdGVtU2l6ZV0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6c0YsdXNlRmFjdG9yeTpjRixkZXBzOltxZSgoKCk9PmRGKSldfV19XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse2l0ZW1TaXplOlt7dHlwZTp4eX1dLG1pbkJ1ZmZlclB4Olt7dHlwZTp4eX1dLG1heEJ1ZmZlclB4Olt7dHlwZTp4eX1dfSk7Y2xhc3MgcEZ7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX25nWm9uZT10LHRoaXMuX3BsYXRmb3JtPWUsdGhpcy5fc2Nyb2xsZWQ9bmV3IEksdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fc2Nyb2xsZWRDb3VudD0wLHRoaXMuc2Nyb2xsQ29udGFpbmVycz1uZXcgTWFwLHRoaXMuX2RvY3VtZW50PW59cmVnaXN0ZXIodCl7dGhpcy5zY3JvbGxDb250YWluZXJzLmhhcyh0KXx8dGhpcy5zY3JvbGxDb250YWluZXJzLnNldCh0LHQuZWxlbWVudFNjcm9sbGVkKCkuc3Vic2NyaWJlKCgoKT0+dGhpcy5fc2Nyb2xsZWQubmV4dCh0KSkpKX1kZXJlZ2lzdGVyKHQpe2NvbnN0IGU9dGhpcy5zY3JvbGxDb250YWluZXJzLmdldCh0KTtlJiYoZS51bnN1YnNjcmliZSgpLHRoaXMuc2Nyb2xsQ29udGFpbmVycy5kZWxldGUodCkpfXNjcm9sbGVkKHQ9MjApe3JldHVybiB0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXI/bmV3IEQoKGU9Pnt0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb258fHRoaXMuX2FkZEdsb2JhbExpc3RlbmVyKCk7Y29uc3Qgbj10PjA/dGhpcy5fc2Nyb2xsZWQucGlwZShkZSh0KSkuc3Vic2NyaWJlKGUpOnRoaXMuX3Njcm9sbGVkLnN1YnNjcmliZShlKTtyZXR1cm4gdGhpcy5fc2Nyb2xsZWRDb3VudCsrLCgpPT57bi51bnN1YnNjcmliZSgpLHRoaXMuX3Njcm9sbGVkQ291bnQtLSx0aGlzLl9zY3JvbGxlZENvdW50fHx0aGlzLl9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpfX0pKTpFdCgpfW5nT25EZXN0cm95KCl7dGhpcy5fcmVtb3ZlR2xvYmFsTGlzdGVuZXIoKSx0aGlzLnNjcm9sbENvbnRhaW5lcnMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuZGVyZWdpc3RlcihlKSkpLHRoaXMuX3Njcm9sbGVkLmNvbXBsZXRlKCl9YW5jZXN0b3JTY3JvbGxlZCh0LGUpe2NvbnN0IG49dGhpcy5nZXRBbmNlc3RvclNjcm9sbENvbnRhaW5lcnModCk7cmV0dXJuIHRoaXMuc2Nyb2xsZWQoZSkucGlwZShjZSgodD0+IXR8fG4uaW5kZXhPZih0KT4tMSkpKX1nZXRBbmNlc3RvclNjcm9sbENvbnRhaW5lcnModCl7Y29uc3QgZT1bXTtyZXR1cm4gdGhpcy5zY3JvbGxDb250YWluZXJzLmZvckVhY2goKChuLG8pPT57dGhpcy5fc2Nyb2xsYWJsZUNvbnRhaW5zRWxlbWVudChvLHQpJiZlLnB1c2gobyl9KSksZX1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3d9X3Njcm9sbGFibGVDb250YWluc0VsZW1lbnQodCxlKXtsZXQgbj14eihlKSxvPXQuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQ7ZG97aWYobj09bylyZXR1cm4hMH13aGlsZShuPW4ucGFyZW50RWxlbWVudCk7cmV0dXJuITF9X2FkZEdsb2JhbExpc3RlbmVyKCl7dGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uPXRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pm9lKHRoaXMuX2dldFdpbmRvdygpLmRvY3VtZW50LCJzY3JvbGwiKS5zdWJzY3JpYmUoKCgpPT50aGlzLl9zY3JvbGxlZC5uZXh0KCkpKSkpfV9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpe3RoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbiYmKHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbj1udWxsKX19cEYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBGKSh2cihhXyksdnIod3opLHZyKFpfLDgpKX0scEYuybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IHBGKHZyKGFfKSx2cih3eiksdnIoWl8sOCkpfSx0b2tlbjpwRixwcm92aWRlZEluOiJyb290In0pLHBGLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwRixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIG1Ge2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuZWxlbWVudFJlZj10LHRoaXMuc2Nyb2xsRGlzcGF0Y2hlcj1lLHRoaXMubmdab25lPW4sdGhpcy5kaXI9byx0aGlzLl9kZXN0cm95ZWQ9bmV3IEksdGhpcy5fZWxlbWVudFNjcm9sbGVkPW5ldyBEKCh0PT50aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pm9lKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCJzY3JvbGwiKS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSh0KSkpKSl9bmdPbkluaXQoKXt0aGlzLnNjcm9sbERpc3BhdGNoZXIucmVnaXN0ZXIodGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLnNjcm9sbERpc3BhdGNoZXIuZGVyZWdpc3Rlcih0aGlzKSx0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpfWVsZW1lbnRTY3JvbGxlZCgpe3JldHVybiB0aGlzLl9lbGVtZW50U2Nyb2xsZWR9Z2V0RWxlbWVudFJlZigpe3JldHVybiB0aGlzLmVsZW1lbnRSZWZ9c2Nyb2xsVG8odCl7Y29uc3QgZT10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxuPXRoaXMuZGlyJiYicnRsIj09dGhpcy5kaXIudmFsdWU7bnVsbD09dC5sZWZ0JiYodC5sZWZ0PW4/dC5lbmQ6dC5zdGFydCksbnVsbD09dC5yaWdodCYmKHQucmlnaHQ9bj90LnN0YXJ0OnQuZW5kKSxudWxsIT10LmJvdHRvbSYmKHQudG9wPWUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LXQuYm90dG9tKSxuJiYwIT1JeigpPyhudWxsIT10LmxlZnQmJih0LnJpZ2h0PWUuc2Nyb2xsV2lkdGgtZS5jbGllbnRXaWR0aC10LmxlZnQpLDI9PUl6KCk/dC5sZWZ0PXQucmlnaHQ6MT09SXooKSYmKHQubGVmdD10LnJpZ2h0Py10LnJpZ2h0OnQucmlnaHQpKTpudWxsIT10LnJpZ2h0JiYodC5sZWZ0PWUuc2Nyb2xsV2lkdGgtZS5jbGllbnRXaWR0aC10LnJpZ2h0KSx0aGlzLl9hcHBseVNjcm9sbFRvT3B0aW9ucyh0KX1fYXBwbHlTY3JvbGxUb09wdGlvbnModCl7Y29uc3QgZT10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDt6eigpP2Uuc2Nyb2xsVG8odCk6KG51bGwhPXQudG9wJiYoZS5zY3JvbGxUb3A9dC50b3ApLG51bGwhPXQubGVmdCYmKGUuc2Nyb2xsTGVmdD10LmxlZnQpKX1tZWFzdXJlU2Nyb2xsT2Zmc2V0KHQpe2NvbnN0IGU9ImxlZnQiLG49InJpZ2h0IixvPXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2lmKCJ0b3AiPT10KXJldHVybiBvLnNjcm9sbFRvcDtpZigiYm90dG9tIj09dClyZXR1cm4gby5zY3JvbGxIZWlnaHQtby5jbGllbnRIZWlnaHQtby5zY3JvbGxUb3A7Y29uc3QgaT10aGlzLmRpciYmInJ0bCI9PXRoaXMuZGlyLnZhbHVlO3JldHVybiJzdGFydCI9PXQ/dD1pP246ZToiZW5kIj09dCYmKHQ9aT9lOm4pLGkmJjI9PUl6KCk/dD09ZT9vLnNjcm9sbFdpZHRoLW8uY2xpZW50V2lkdGgtby5zY3JvbGxMZWZ0Om8uc2Nyb2xsTGVmdDppJiYxPT1JeigpP3Q9PWU/by5zY3JvbGxMZWZ0K28uc2Nyb2xsV2lkdGgtby5jbGllbnRXaWR0aDotby5zY3JvbGxMZWZ0OnQ9PWU/by5zY3JvbGxMZWZ0Om8uc2Nyb2xsV2lkdGgtby5jbGllbnRXaWR0aC1vLnNjcm9sbExlZnR9fW1GLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxtRikoU20oaGcpLFNtKHBGKSxTbShhXyksU20oSEksOCkpfSxtRi7JtWRpcj1sbyh7dHlwZTptRixzZWxlY3RvcnM6W1siIiwiY2RrLXNjcm9sbGFibGUiLCIiXSxbIiIsImNka1Njcm9sbGFibGUiLCIiXV19KSxtRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpwRn0se3R5cGU6YV99LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG1GLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltjZGstc2Nyb2xsYWJsZV0sIFtjZGtTY3JvbGxhYmxlXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6cEZ9LHt0eXBlOmFffSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV19KSxudWxsKTtjbGFzcyB1Rntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fcGxhdGZvcm09dCx0aGlzLl9jaGFuZ2U9bmV3IEksdGhpcy5fY2hhbmdlTGlzdGVuZXI9dD0+e3RoaXMuX2NoYW5nZS5uZXh0KHQpfSx0aGlzLl9kb2N1bWVudD1uLGUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57aWYodC5pc0Jyb3dzZXIpe2NvbnN0IHQ9dGhpcy5fZ2V0V2luZG93KCk7dC5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2NoYW5nZUxpc3RlbmVyKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIix0aGlzLl9jaGFuZ2VMaXN0ZW5lcil9dGhpcy5jaGFuZ2UoKS5zdWJzY3JpYmUoKCgpPT50aGlzLl92aWV3cG9ydFNpemU9bnVsbCkpfSkpfW5nT25EZXN0cm95KCl7aWYodGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXtjb25zdCB0PXRoaXMuX2dldFdpbmRvdygpO3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9jaGFuZ2VMaXN0ZW5lciksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsdGhpcy5fY2hhbmdlTGlzdGVuZXIpfXRoaXMuX2NoYW5nZS5jb21wbGV0ZSgpfWdldFZpZXdwb3J0U2l6ZSgpe3RoaXMuX3ZpZXdwb3J0U2l6ZXx8dGhpcy5fdXBkYXRlVmlld3BvcnRTaXplKCk7Y29uc3QgdD17d2lkdGg6dGhpcy5fdmlld3BvcnRTaXplLndpZHRoLGhlaWdodDp0aGlzLl92aWV3cG9ydFNpemUuaGVpZ2h0fTtyZXR1cm4gdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyfHwodGhpcy5fdmlld3BvcnRTaXplPW51bGwpLHR9Z2V0Vmlld3BvcnRSZWN0KCl7Y29uc3QgdD10aGlzLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKSx7d2lkdGg6ZSxoZWlnaHQ6bn09dGhpcy5nZXRWaWV3cG9ydFNpemUoKTtyZXR1cm57dG9wOnQudG9wLGxlZnQ6dC5sZWZ0LGJvdHRvbTp0LnRvcCtuLHJpZ2h0OnQubGVmdCtlLGhlaWdodDpuLHdpZHRoOmV9fWdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKXtpZighdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybnt0b3A6MCxsZWZ0OjB9O2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQsZT10aGlzLl9nZXRXaW5kb3coKSxuPXQuZG9jdW1lbnRFbGVtZW50LG89bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57dG9wOi1vLnRvcHx8dC5ib2R5LnNjcm9sbFRvcHx8ZS5zY3JvbGxZfHxuLnNjcm9sbFRvcHx8MCxsZWZ0Oi1vLmxlZnR8fHQuYm9keS5zY3JvbGxMZWZ0fHxlLnNjcm9sbFh8fG4uc2Nyb2xsTGVmdHx8MH19Y2hhbmdlKHQ9MjApe3JldHVybiB0PjA/dGhpcy5fY2hhbmdlLnBpcGUoZGUodCkpOnRoaXMuX2NoYW5nZX1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3d9X3VwZGF0ZVZpZXdwb3J0U2l6ZSgpe2NvbnN0IHQ9dGhpcy5fZ2V0V2luZG93KCk7dGhpcy5fdmlld3BvcnRTaXplPXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcj97d2lkdGg6dC5pbm5lcldpZHRoLGhlaWdodDp0LmlubmVySGVpZ2h0fTp7d2lkdGg6MCxoZWlnaHQ6MH19fXVGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx1RikodnIod3opLHZyKGFfKSx2cihaXyw4KSl9LHVGLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyB1Rih2cih3eiksdnIoYV8pLHZyKFpfLDgpKX0sdG9rZW46dUYscHJvdmlkZWRJbjoicm9vdCJ9KSx1Ri5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnd6fSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodUYsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnd6fSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Y29uc3QgZkY9InVuZGVmaW5lZCIhPXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU/YXQ6JDtjbGFzcyBnRiBleHRlbmRzIG1Ge2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe2lmKHN1cGVyKHQsYSxuLGkpLHRoaXMuZWxlbWVudFJlZj10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9byx0aGlzLl9kZXRhY2hlZFN1YmplY3Q9bmV3IEksdGhpcy5fcmVuZGVyZWRSYW5nZVN1YmplY3Q9bmV3IEksdGhpcy5fb3JpZW50YXRpb249InZlcnRpY2FsIix0aGlzLl9hcHBlbmRPbmx5PSExLHRoaXMuc2Nyb2xsZWRJbmRleENoYW5nZT1uZXcgRCgodD0+dGhpcy5fc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsZWRJbmRleENoYW5nZS5zdWJzY3JpYmUoKGU9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT50aGlzLm5nWm9uZS5ydW4oKCgpPT50Lm5leHQoZSkpKSkpKSkpKSx0aGlzLnJlbmRlcmVkUmFuZ2VTdHJlYW09dGhpcy5fcmVuZGVyZWRSYW5nZVN1YmplY3QsdGhpcy5fdG90YWxDb250ZW50U2l6ZT0wLHRoaXMuX3RvdGFsQ29udGVudFdpZHRoPSIiLHRoaXMuX3RvdGFsQ29udGVudEhlaWdodD0iIix0aGlzLl9yZW5kZXJlZFJhbmdlPXtzdGFydDowLGVuZDowfSx0aGlzLl9kYXRhTGVuZ3RoPTAsdGhpcy5fdmlld3BvcnRTaXplPTAsdGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0PTAsdGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0TmVlZHNSZXdyaXRlPSExLHRoaXMuX2lzQ2hhbmdlRGV0ZWN0aW9uUGVuZGluZz0hMSx0aGlzLl9ydW5BZnRlckNoYW5nZURldGVjdGlvbj1bXSx0aGlzLl92aWV3cG9ydENoYW5nZXM9bS5FTVBUWSwhbyYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCdFcnJvcjogY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IHJlcXVpcmVzIHRoZSAiaXRlbVNpemUiIHByb3BlcnR5IHRvIGJlIHNldC4nKTt0aGlzLl92aWV3cG9ydENoYW5nZXM9ci5jaGFuZ2UoKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5jaGVja1ZpZXdwb3J0U2l6ZSgpfSkpfWdldCBvcmllbnRhdGlvbigpe3JldHVybiB0aGlzLl9vcmllbnRhdGlvbn1zZXQgb3JpZW50YXRpb24odCl7dGhpcy5fb3JpZW50YXRpb24hPT10JiYodGhpcy5fb3JpZW50YXRpb249dCx0aGlzLl9jYWxjdWxhdGVTcGFjZXJTaXplKCkpfWdldCBhcHBlbmRPbmx5KCl7cmV0dXJuIHRoaXMuX2FwcGVuZE9ubHl9c2V0IGFwcGVuZE9ubHkodCl7dGhpcy5fYXBwZW5kT25seT15eih0KX1uZ09uSW5pdCgpe3N1cGVyLm5nT25Jbml0KCksdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX21lYXN1cmVWaWV3cG9ydFNpemUoKSx0aGlzLl9zY3JvbGxTdHJhdGVneS5hdHRhY2godGhpcyksdGhpcy5lbGVtZW50U2Nyb2xsZWQoKS5waXBlKE5lKG51bGwpLGRlKDAsZkYpKS5zdWJzY3JpYmUoKCgpPT50aGlzLl9zY3JvbGxTdHJhdGVneS5vbkNvbnRlbnRTY3JvbGxlZCgpKSksdGhpcy5fbWFya0NoYW5nZURldGVjdGlvbk5lZWRlZCgpfSkpKSl9bmdPbkRlc3Ryb3koKXt0aGlzLmRldGFjaCgpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5LmRldGFjaCgpLHRoaXMuX3JlbmRlcmVkUmFuZ2VTdWJqZWN0LmNvbXBsZXRlKCksdGhpcy5fZGV0YWNoZWRTdWJqZWN0LmNvbXBsZXRlKCksdGhpcy5fdmlld3BvcnRDaGFuZ2VzLnVuc3Vic2NyaWJlKCksc3VwZXIubmdPbkRlc3Ryb3koKX1hdHRhY2godCl7aWYodGhpcy5fZm9yT2YmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IGlzIGFscmVhZHkgYXR0YWNoZWQuIik7dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57dGhpcy5fZm9yT2Y9dCx0aGlzLl9mb3JPZi5kYXRhU3RyZWFtLnBpcGUoSWUodGhpcy5fZGV0YWNoZWRTdWJqZWN0KSkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10Lmxlbmd0aDtlIT09dGhpcy5fZGF0YUxlbmd0aCYmKHRoaXMuX2RhdGFMZW5ndGg9ZSx0aGlzLl9zY3JvbGxTdHJhdGVneS5vbkRhdGFMZW5ndGhDaGFuZ2VkKCkpLHRoaXMuX2RvQ2hhbmdlRGV0ZWN0aW9uKCl9KSl9KSl9ZGV0YWNoKCl7dGhpcy5fZm9yT2Y9bnVsbCx0aGlzLl9kZXRhY2hlZFN1YmplY3QubmV4dCgpfWdldERhdGFMZW5ndGgoKXtyZXR1cm4gdGhpcy5fZGF0YUxlbmd0aH1nZXRWaWV3cG9ydFNpemUoKXtyZXR1cm4gdGhpcy5fdmlld3BvcnRTaXplfWdldFJlbmRlcmVkUmFuZ2UoKXtyZXR1cm4gdGhpcy5fcmVuZGVyZWRSYW5nZX1zZXRUb3RhbENvbnRlbnRTaXplKHQpe3RoaXMuX3RvdGFsQ29udGVudFNpemUhPT10JiYodGhpcy5fdG90YWxDb250ZW50U2l6ZT10LHRoaXMuX2NhbGN1bGF0ZVNwYWNlclNpemUoKSx0aGlzLl9tYXJrQ2hhbmdlRGV0ZWN0aW9uTmVlZGVkKCkpfXNldFJlbmRlcmVkUmFuZ2UodCl7KAovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gZSh0LG4pe3JldHVybiB0LnN0YXJ0PT1uLnN0YXJ0JiZ0LmVuZD09bi5lbmR9KSh0aGlzLl9yZW5kZXJlZFJhbmdlLHQpfHwodGhpcy5hcHBlbmRPbmx5JiYodD17c3RhcnQ6MCxlbmQ6TWF0aC5tYXgodGhpcy5fcmVuZGVyZWRSYW5nZS5lbmQsdC5lbmQpfSksdGhpcy5fcmVuZGVyZWRSYW5nZVN1YmplY3QubmV4dCh0aGlzLl9yZW5kZXJlZFJhbmdlPXQpLHRoaXMuX21hcmtDaGFuZ2VEZXRlY3Rpb25OZWVkZWQoKCgpPT50aGlzLl9zY3JvbGxTdHJhdGVneS5vbkNvbnRlbnRSZW5kZXJlZCgpKSkpfWdldE9mZnNldFRvUmVuZGVyZWRDb250ZW50U3RhcnQoKXtyZXR1cm4gdGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0TmVlZHNSZXdyaXRlP251bGw6dGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0fXNldFJlbmRlcmVkQ29udGVudE9mZnNldCh0LGU9InRvLXN0YXJ0Iil7Y29uc3Qgbj0iaG9yaXpvbnRhbCI9PXRoaXMub3JpZW50YXRpb24sbz1uPyJYIjoiWSI7bGV0IGk9YHRyYW5zbGF0ZSR7b30oJHtOdW1iZXIoKG4mJnRoaXMuZGlyJiYicnRsIj09dGhpcy5kaXIudmFsdWU/LTE6MSkqdCl9cHgpYDt0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXQ9dCwidG8tZW5kIj09PWUmJihpKz1gIHRyYW5zbGF0ZSR7b30oLTEwMCUpYCx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU9ITApLHRoaXMuX3JlbmRlcmVkQ29udGVudFRyYW5zZm9ybSE9aSYmKHRoaXMuX3JlbmRlcmVkQ29udGVudFRyYW5zZm9ybT1pLHRoaXMuX21hcmtDaGFuZ2VEZXRlY3Rpb25OZWVkZWQoKCgpPT57dGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0TmVlZHNSZXdyaXRlPyh0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXQtPXRoaXMubWVhc3VyZVJlbmRlcmVkQ29udGVudFNpemUoKSx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU9ITEsdGhpcy5zZXRSZW5kZXJlZENvbnRlbnRPZmZzZXQodGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0KSk6dGhpcy5fc2Nyb2xsU3RyYXRlZ3kub25SZW5kZXJlZE9mZnNldENoYW5nZWQoKX0pKSl9c2Nyb2xsVG9PZmZzZXQodCxlPSJhdXRvIil7Y29uc3Qgbj17YmVoYXZpb3I6ZX07Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj9uLnN0YXJ0PXQ6bi50b3A9dCx0aGlzLnNjcm9sbFRvKG4pfXNjcm9sbFRvSW5kZXgodCxlPSJhdXRvIil7dGhpcy5fc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9JbmRleCh0LGUpfW1lYXN1cmVTY3JvbGxPZmZzZXQodCl7cmV0dXJuIHN1cGVyLm1lYXN1cmVTY3JvbGxPZmZzZXQodHx8KCJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24/InN0YXJ0IjoidG9wIikpfW1lYXN1cmVSZW5kZXJlZENvbnRlbnRTaXplKCl7Y29uc3QgdD10aGlzLl9jb250ZW50V3JhcHBlci5uYXRpdmVFbGVtZW50O3JldHVybiJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24/dC5vZmZzZXRXaWR0aDp0Lm9mZnNldEhlaWdodH1tZWFzdXJlUmFuZ2VTaXplKHQpe3JldHVybiB0aGlzLl9mb3JPZj90aGlzLl9mb3JPZi5tZWFzdXJlUmFuZ2VTaXplKHQsdGhpcy5vcmllbnRhdGlvbik6MH1jaGVja1ZpZXdwb3J0U2l6ZSgpe3RoaXMuX21lYXN1cmVWaWV3cG9ydFNpemUoKSx0aGlzLl9zY3JvbGxTdHJhdGVneS5vbkRhdGFMZW5ndGhDaGFuZ2VkKCl9X21lYXN1cmVWaWV3cG9ydFNpemUoKXtjb25zdCB0PXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O3RoaXMuX3ZpZXdwb3J0U2l6ZT0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uP3QuY2xpZW50V2lkdGg6dC5jbGllbnRIZWlnaHR9X21hcmtDaGFuZ2VEZXRlY3Rpb25OZWVkZWQodCl7dCYmdGhpcy5fcnVuQWZ0ZXJDaGFuZ2VEZXRlY3Rpb24ucHVzaCh0KSx0aGlzLl9pc0NoYW5nZURldGVjdGlvblBlbmRpbmd8fCh0aGlzLl9pc0NoYW5nZURldGVjdGlvblBlbmRpbmc9ITAsdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX2RvQ2hhbmdlRGV0ZWN0aW9uKCl9KSkpKSl9X2RvQ2hhbmdlRGV0ZWN0aW9uKCl7dGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nPSExLHRoaXMuX2NvbnRlbnRXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtPXRoaXMuX3JlbmRlcmVkQ29udGVudFRyYW5zZm9ybSx0aGlzLm5nWm9uZS5ydW4oKCgpPT50aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSkpO2NvbnN0IHQ9dGhpcy5fcnVuQWZ0ZXJDaGFuZ2VEZXRlY3Rpb247dGhpcy5fcnVuQWZ0ZXJDaGFuZ2VEZXRlY3Rpb249W107Zm9yKGNvbnN0IGUgb2YgdCllKCl9X2NhbGN1bGF0ZVNwYWNlclNpemUoKXt0aGlzLl90b3RhbENvbnRlbnRIZWlnaHQ9Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8iIjpgJHt0aGlzLl90b3RhbENvbnRlbnRTaXplfXB4YCx0aGlzLl90b3RhbENvbnRlbnRXaWR0aD0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uP2Ake3RoaXMuX3RvdGFsQ29udGVudFNpemV9cHhgOiIifX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIGhGKHQsZSxuKXtpZighbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QpcmV0dXJuIDA7Y29uc3Qgbz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiJob3Jpem9udGFsIj09PXQ/InN0YXJ0Ij09PWU/by5sZWZ0Om8ucmlnaHQ6InN0YXJ0Ij09PWU/by50b3A6by5ib3R0b219Z0YuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGdGKShTbShoZyksU20oVWcpLFNtKGFfKSxTbShzRiw4KSxTbShISSw4KSxTbShwRiksU20odUYpKX0sZ0YuybVjbXA9dG8oe3R5cGU6Z0Ysc2VsZWN0b3JzOltbImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgockYsNyksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5fY29udGVudFdyYXBwZXI9dC5maXJzdCl9fSxob3N0QXR0cnM6WzEsImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJjZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsImhvcml6b250YWwiPT09bi5vcmllbnRhdGlvbikoImNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsImhvcml6b250YWwiIT09bi5vcmllbnRhdGlvbil9LGlucHV0czp7b3JpZW50YXRpb246Im9yaWVudGF0aW9uIixhcHBlbmRPbmx5OiJhcHBlbmRPbmx5In0sb3V0cHV0czp7c2Nyb2xsZWRJbmRleENoYW5nZToic2Nyb2xsZWRJbmRleENoYW5nZSJ9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6bUYsdXNlRXhpc3Rpbmc6Z0Z9XSkseHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczo0LHZhcnM6NCxjb25zdHM6W1sxLCJjZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyIl0sWyJjb250ZW50V3JhcHBlciIsIiJdLFsxLCJjZGstdmlydHVhbC1zY3JvbGwtc3BhY2VyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFJtKDAsImRpdiIsMCwxKSxYbSgyKSxBbSgpLFRtKDMsImRpdiIsMikpLDImZSYmKHJjKDMpLGR1KCJ3aWR0aCIsbi5fdG90YWxDb250ZW50V2lkdGgpKCJoZWlnaHQiLG4uX3RvdGFsQ29udGVudEhlaWdodCkpfSxzdHlsZXM6WyJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnR7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzphdXRvO2NvbnRhaW46c3RyaWN0O3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3dpbGwtY2hhbmdlOnNjcm9sbC1wb3NpdGlvbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Y29udGFpbjpjb250ZW50fVtkaXI9cnRsXSAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcntyaWdodDowO2xlZnQ6YXV0b30uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXJ7bWluLWhlaWdodDoxMDAlfS5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj5kbDpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+b2w6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnRhYmxlOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj51bDpub3QoW2Nka1ZpcnR1YWxGb3JdKXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowO291dGxpbmU6bm9uZX0uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVye21pbi13aWR0aDoxMDAlfS5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+ZGw6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj5vbDpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnRhYmxlOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+dWw6bm90KFtjZGtWaXJ0dWFsRm9yXSl7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtvdXRsaW5lOm5vbmV9LmNkay12aXJ0dWFsLXNjcm9sbC1zcGFjZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDoxcHg7d2lkdGg6MXB4O3RyYW5zZm9ybS1vcmlnaW46MCAwfVtkaXI9cnRsXSAuY2RrLXZpcnR1YWwtc2Nyb2xsLXNwYWNlcntyaWdodDowO2xlZnQ6YXV0bzt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMH1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGdGLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltzRl19XX0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6cEZ9LHt0eXBlOnVGfV0sZ0YucHJvcERlY29yYXRvcnM9e29yaWVudGF0aW9uOlt7dHlwZTp4eX1dLGFwcGVuZE9ubHk6W3t0eXBlOnh5fV0sc2Nyb2xsZWRJbmRleENoYW5nZTpbe3R5cGU6T3l9XSxfY29udGVudFdyYXBwZXI6W3t0eXBlOlphLGFyZ3M6WyJjb250ZW50V3JhcHBlciIse3N0YXRpYzohMH1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZ0YsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0Iix0ZW1wbGF0ZTonXHgzYyEtLVxuICBXcmFwIHRoZSByZW5kZXJlZCBjb250ZW50IGluIGFuIGVsZW1lbnQgdGhhdCB3aWxsIGJlIHVzZWQgdG8gb2Zmc2V0IGl0IGJhc2VkIG9uIHRoZSBzY3JvbGxcbiAgcG9zaXRpb24uXG4tLVx4M2VcbjxkaXYgI2NvbnRlbnRXcmFwcGVyIGNsYXNzPSJjZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5ceDNjIS0tXG4gIFNwYWNlciB1c2VkIHRvIGZvcmNlIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyIHRvIHRoZSBjb3JyZWN0IHNpemUgZm9yIHRoZSAqdG90YWwqIG51bWJlciBvZiBpdGVtc1xuICBzbyB0aGF0IHRoZSBzY3JvbGxiYXIgY2FwdHVyZXMgdGhlIHNpemUgb2YgdGhlIGVudGlyZSBkYXRhIHNldC5cbi0tXHgzZVxuPGRpdiBjbGFzcz0iY2RrLXZpcnR1YWwtc2Nyb2xsLXNwYWNlciJcbiAgICAgW3N0eWxlLndpZHRoXT0iX3RvdGFsQ29udGVudFdpZHRoIiBbc3R5bGUuaGVpZ2h0XT0iX3RvdGFsQ29udGVudEhlaWdodCI+PC9kaXY+XG4nLGhvc3Q6e2NsYXNzOiJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQiLCJbY2xhc3MuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWxdIjonb3JpZW50YXRpb24gPT09ICJob3Jpem9udGFsIicsIltjbGFzcy5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWxdIjonb3JpZW50YXRpb24gIT09ICJob3Jpem9udGFsIid9LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHByb3ZpZGVyczpbe3Byb3ZpZGU6bUYsdXNlRXhpc3Rpbmc6Z0Z9XSxzdHlsZXM6WyJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnR7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzphdXRvO2NvbnRhaW46c3RyaWN0O3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3dpbGwtY2hhbmdlOnNjcm9sbC1wb3NpdGlvbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Y29udGFpbjpjb250ZW50fVtkaXI9cnRsXSAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcntyaWdodDowO2xlZnQ6YXV0b30uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXJ7bWluLWhlaWdodDoxMDAlfS5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj5kbDpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+b2w6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnRhYmxlOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj51bDpub3QoW2Nka1ZpcnR1YWxGb3JdKXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowO291dGxpbmU6bm9uZX0uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVye21pbi13aWR0aDoxMDAlfS5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+ZGw6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj5vbDpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnRhYmxlOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+dWw6bm90KFtjZGtWaXJ0dWFsRm9yXSl7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtvdXRsaW5lOm5vbmV9LmNkay12aXJ0dWFsLXNjcm9sbC1zcGFjZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDoxcHg7d2lkdGg6MXB4O3RyYW5zZm9ybS1vcmlnaW46MCAwfVtkaXI9cnRsXSAuY2RrLXZpcnR1YWwtc2Nyb2xsLXNwYWNlcntyaWdodDowO2xlZnQ6YXV0bzt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMH1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltzRl19XX0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6cEZ9LHt0eXBlOnVGfV19KSx7c2Nyb2xsZWRJbmRleENoYW5nZTpbe3R5cGU6T3l9XSxvcmllbnRhdGlvbjpbe3R5cGU6eHl9XSxhcHBlbmRPbmx5Olt7dHlwZTp4eX1dLF9jb250ZW50V3JhcHBlcjpbe3R5cGU6WmEsYXJnczpbImNvbnRlbnRXcmFwcGVyIix7c3RhdGljOiEwfV19XX0pO2NsYXNzIGJGe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhKXt0aGlzLl92aWV3Q29udGFpbmVyUmVmPXQsdGhpcy5fdGVtcGxhdGU9ZSx0aGlzLl9kaWZmZXJzPW4sdGhpcy5fdmlld1JlcGVhdGVyPW8sdGhpcy5fdmlld3BvcnQ9aSx0aGlzLnZpZXdDaGFuZ2U9bmV3IEksdGhpcy5fZGF0YVNvdXJjZUNoYW5nZXM9bmV3IEksdGhpcy5kYXRhU3RyZWFtPXRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzLnBpcGUoTmUobnVsbCksRGUoKSx6ZSgoKFt0LGVdKT0+dGhpcy5fY2hhbmdlRGF0YVNvdXJjZSh0LGUpKSksQWUoMSkpLHRoaXMuX2RpZmZlcj1udWxsLHRoaXMuX25lZWRzVXBkYXRlPSExLHRoaXMuX2Rlc3Ryb3llZD1uZXcgSSx0aGlzLmRhdGFTdHJlYW0uc3Vic2NyaWJlKCh0PT57dGhpcy5fZGF0YT10LHRoaXMuX29uUmVuZGVyZWREYXRhQ2hhbmdlKCl9KSksdGhpcy5fdmlld3BvcnQucmVuZGVyZWRSYW5nZVN0cmVhbS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodD0+e3RoaXMuX3JlbmRlcmVkUmFuZ2U9dCxhLnJ1bigoKCk9PnRoaXMudmlld0NoYW5nZS5uZXh0KHRoaXMuX3JlbmRlcmVkUmFuZ2UpKSksdGhpcy5fb25SZW5kZXJlZERhdGFDaGFuZ2UoKX0pKSx0aGlzLl92aWV3cG9ydC5hdHRhY2godGhpcyl9Z2V0IGNka1ZpcnR1YWxGb3JPZigpe3JldHVybiB0aGlzLl9jZGtWaXJ0dWFsRm9yT2Z9c2V0IGNka1ZpcnR1YWxGb3JPZih0KXt0aGlzLl9jZGtWaXJ0dWFsRm9yT2Y9dCwkSCh0KT90aGlzLl9kYXRhU291cmNlQ2hhbmdlcy5uZXh0KHQpOnRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzLm5leHQobmV3IHRGKE50KHQpP3Q6QXJyYXkuZnJvbSh0fHxbXSkpKX1nZXQgY2RrVmlydHVhbEZvclRyYWNrQnkoKXtyZXR1cm4gdGhpcy5fY2RrVmlydHVhbEZvclRyYWNrQnl9c2V0IGNka1ZpcnR1YWxGb3JUcmFja0J5KHQpe3RoaXMuX25lZWRzVXBkYXRlPSEwLHRoaXMuX2Nka1ZpcnR1YWxGb3JUcmFja0J5PXQ/KGUsbik9PnQoZSsodGhpcy5fcmVuZGVyZWRSYW5nZT90aGlzLl9yZW5kZXJlZFJhbmdlLnN0YXJ0OjApLG4pOnZvaWQgMH1zZXQgY2RrVmlydHVhbEZvclRlbXBsYXRlKHQpe3QmJih0aGlzLl9uZWVkc1VwZGF0ZT0hMCx0aGlzLl90ZW1wbGF0ZT10KX1nZXQgY2RrVmlydHVhbEZvclRlbXBsYXRlQ2FjaGVTaXplKCl7cmV0dXJuIHRoaXMuX3ZpZXdSZXBlYXRlci52aWV3Q2FjaGVTaXplfXNldCBjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemUodCl7dGhpcy5fdmlld1JlcGVhdGVyLnZpZXdDYWNoZVNpemU9X3oodCl9bWVhc3VyZVJhbmdlU2l6ZSh0LGUpe2lmKHQuc3RhcnQ+PXQuZW5kKXJldHVybiAwO2lmKCh0LnN0YXJ0PHRoaXMuX3JlbmRlcmVkUmFuZ2Uuc3RhcnR8fHQuZW5kPnRoaXMuX3JlbmRlcmVkUmFuZ2UuZW5kKSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJFcnJvcjogYXR0ZW1wdGVkIHRvIG1lYXN1cmUgYW4gaXRlbSB0aGF0IGlzbid0IHJlbmRlcmVkLiIpO2NvbnN0IG49dC5zdGFydC10aGlzLl9yZW5kZXJlZFJhbmdlLnN0YXJ0LG89dC5lbmQtdC5zdGFydDtsZXQgaSxhO2ZvcihsZXQgdD0wO3Q8bzt0Kyspe2NvbnN0IGU9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQodCtuKTtpZihlJiZlLnJvb3ROb2Rlcy5sZW5ndGgpe2k9YT1lLnJvb3ROb2Rlc1swXTticmVha319Zm9yKGxldCB0PW8tMTt0Pi0xO3QtLSl7Y29uc3QgZT10aGlzLl92aWV3Q29udGFpbmVyUmVmLmdldCh0K24pO2lmKGUmJmUucm9vdE5vZGVzLmxlbmd0aCl7YT1lLnJvb3ROb2Rlc1tlLnJvb3ROb2Rlcy5sZW5ndGgtMV07YnJlYWt9fXJldHVybiBpJiZhP2hGKGUsImVuZCIsYSktaEYoZSwic3RhcnQiLGkpOjB9bmdEb0NoZWNrKCl7aWYodGhpcy5fZGlmZmVyJiZ0aGlzLl9uZWVkc1VwZGF0ZSl7Y29uc3QgdD10aGlzLl9kaWZmZXIuZGlmZih0aGlzLl9yZW5kZXJlZEl0ZW1zKTt0P3RoaXMuX2FwcGx5Q2hhbmdlcyh0KTp0aGlzLl91cGRhdGVDb250ZXh0KCksdGhpcy5fbmVlZHNVcGRhdGU9ITF9fW5nT25EZXN0cm95KCl7dGhpcy5fdmlld3BvcnQuZGV0YWNoKCksdGhpcy5fZGF0YVNvdXJjZUNoYW5nZXMubmV4dCh2b2lkIDApLHRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzLmNvbXBsZXRlKCksdGhpcy52aWV3Q2hhbmdlLmNvbXBsZXRlKCksdGhpcy5fZGVzdHJveWVkLm5leHQoKSx0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKSx0aGlzLl92aWV3UmVwZWF0ZXIuZGV0YWNoKCl9X29uUmVuZGVyZWREYXRhQ2hhbmdlKCl7dGhpcy5fcmVuZGVyZWRSYW5nZSYmKHRoaXMuX3JlbmRlcmVkSXRlbXM9dGhpcy5fZGF0YS5zbGljZSh0aGlzLl9yZW5kZXJlZFJhbmdlLnN0YXJ0LHRoaXMuX3JlbmRlcmVkUmFuZ2UuZW5kKSx0aGlzLl9kaWZmZXJ8fCh0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKHRoaXMuX3JlbmRlcmVkSXRlbXMpLmNyZWF0ZSgoKHQsZSk9PnRoaXMuY2RrVmlydHVhbEZvclRyYWNrQnk/dGhpcy5jZGtWaXJ0dWFsRm9yVHJhY2tCeSh0LGUpOmUpKSksdGhpcy5fbmVlZHNVcGRhdGU9ITApfV9jaGFuZ2VEYXRhU291cmNlKHQsZSl7cmV0dXJuIHQmJnQuZGlzY29ubmVjdCh0aGlzKSx0aGlzLl9uZWVkc1VwZGF0ZT0hMCxlP2UuY29ubmVjdCh0aGlzKTpFdCgpfV91cGRhdGVDb250ZXh0KCl7Y29uc3QgdD10aGlzLl9kYXRhLmxlbmd0aDtsZXQgZT10aGlzLl92aWV3Q29udGFpbmVyUmVmLmxlbmd0aDtmb3IoO2UtLTspe2NvbnN0IG49dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQoZSk7bi5jb250ZXh0LmluZGV4PXRoaXMuX3JlbmRlcmVkUmFuZ2Uuc3RhcnQrZSxuLmNvbnRleHQuY291bnQ9dCx0aGlzLl91cGRhdGVDb21wdXRlZENvbnRleHRQcm9wZXJ0aWVzKG4uY29udGV4dCksbi5kZXRlY3RDaGFuZ2VzKCl9fV9hcHBseUNoYW5nZXModCl7dGhpcy5fdmlld1JlcGVhdGVyLmFwcGx5Q2hhbmdlcyh0LHRoaXMuX3ZpZXdDb250YWluZXJSZWYsKCh0LGUsbik9PnRoaXMuX2dldEVtYmVkZGVkVmlld0FyZ3ModCxuKSksKHQ9PnQuaXRlbSkpLHQuZm9yRWFjaElkZW50aXR5Q2hhbmdlKCh0PT57dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQodC5jdXJyZW50SW5kZXgpLmNvbnRleHQuJGltcGxpY2l0PXQuaXRlbX0pKTtjb25zdCBlPXRoaXMuX2RhdGEubGVuZ3RoO2xldCBuPXRoaXMuX3ZpZXdDb250YWluZXJSZWYubGVuZ3RoO2Zvcig7bi0tOyl7Y29uc3QgdD10aGlzLl92aWV3Q29udGFpbmVyUmVmLmdldChuKTt0LmNvbnRleHQuaW5kZXg9dGhpcy5fcmVuZGVyZWRSYW5nZS5zdGFydCtuLHQuY29udGV4dC5jb3VudD1lLHRoaXMuX3VwZGF0ZUNvbXB1dGVkQ29udGV4dFByb3BlcnRpZXModC5jb250ZXh0KX19X3VwZGF0ZUNvbXB1dGVkQ29udGV4dFByb3BlcnRpZXModCl7dC5maXJzdD0wPT09dC5pbmRleCx0Lmxhc3Q9dC5pbmRleD09PXQuY291bnQtMSx0LmV2ZW49dC5pbmRleCUyPT0wLHQub2RkPSF0LmV2ZW59X2dldEVtYmVkZGVkVmlld0FyZ3ModCxlKXtyZXR1cm57dGVtcGxhdGVSZWY6dGhpcy5fdGVtcGxhdGUsY29udGV4dDp7JGltcGxpY2l0OnQuaXRlbSxjZGtWaXJ0dWFsRm9yT2Y6dGhpcy5fY2RrVmlydHVhbEZvck9mLGluZGV4Oi0xLGNvdW50Oi0xLGZpcnN0OiExLGxhc3Q6ITEsb2RkOiExLGV2ZW46ITF9LGluZGV4OmV9fX1iRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YkYpKFNtKGVoKSxTbShYZyksU20oSGcpLFNtKGFGKSxTbShnRiw0KSxTbShhXykpfSxiRi7JtWRpcj1sbyh7dHlwZTpiRixzZWxlY3RvcnM6W1siIiwiY2RrVmlydHVhbEZvciIsIiIsImNka1ZpcnR1YWxGb3JPZiIsIiJdXSxpbnB1dHM6e2Nka1ZpcnR1YWxGb3JPZjoiY2RrVmlydHVhbEZvck9mIixjZGtWaXJ0dWFsRm9yVHJhY2tCeToiY2RrVmlydHVhbEZvclRyYWNrQnkiLGNka1ZpcnR1YWxGb3JUZW1wbGF0ZToiY2RrVmlydHVhbEZvclRlbXBsYXRlIixjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemU6ImNka1ZpcnR1YWxGb3JUZW1wbGF0ZUNhY2hlU2l6ZSJ9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6YUYsdXNlQ2xhc3M6bkZ9XSldfSksYkYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH0se3R5cGU6WGd9LHt0eXBlOkhnfSx7dHlwZTpuRixkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlthRl19XX0se3R5cGU6Z0YsZGVjb3JhdG9yczpbe3R5cGU6RXJ9XX0se3R5cGU6YV99XSxiRi5wcm9wRGVjb3JhdG9ycz17Y2RrVmlydHVhbEZvck9mOlt7dHlwZTp4eX1dLGNka1ZpcnR1YWxGb3JUcmFja0J5Olt7dHlwZTp4eX1dLGNka1ZpcnR1YWxGb3JUZW1wbGF0ZTpbe3R5cGU6eHl9XSxjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemU6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYkYsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka1ZpcnR1YWxGb3JdW2Nka1ZpcnR1YWxGb3JPZl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6YUYsdXNlQ2xhc3M6bkZ9XX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofSx7dHlwZTpYZ30se3R5cGU6SGd9LHt0eXBlOm5GLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2FGXX1dfSx7dHlwZTpnRixkZWNvcmF0b3JzOlt7dHlwZTpFcn1dfSx7dHlwZTphX31dfSkse2Nka1ZpcnR1YWxGb3JPZjpbe3R5cGU6eHl9XSxjZGtWaXJ0dWFsRm9yVHJhY2tCeTpbe3R5cGU6eHl9XSxjZGtWaXJ0dWFsRm9yVGVtcGxhdGU6W3t0eXBlOnh5fV0sY2RrVmlydHVhbEZvclRlbXBsYXRlQ2FjaGVTaXplOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyB5Rnt9eUYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHlGKX0seUYuybVtb2Q9YW8oe3R5cGU6eUZ9KSx5Ri7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh5Rixbe3R5cGU6QXksYXJnczpbe2V4cG9ydHM6W21GXSxkZWNsYXJhdGlvbnM6W21GXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHlGLHtkZWNsYXJhdGlvbnM6W21GXSxleHBvcnRzOlttRl19KTtjbGFzcyBfRnt9ZnVuY3Rpb24gQ0YoKXt0aHJvdyBFcnJvcigiSG9zdCBhbHJlYWR5IGhhcyBhIHBvcnRhbCBhdHRhY2hlZCIpfV9GLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfRil9LF9GLsm1bW9kPWFvKHt0eXBlOl9GfSksX0YuybVpbmo9dm4oe2ltcG9ydHM6W1tMSSxreix5Rl0sTEkseUZdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChfRixbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W0xJLGt6LHlGXSxleHBvcnRzOltMSSx5RixkRixiRixnRl0sZGVjbGFyYXRpb25zOltkRixiRixnRl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhfRix7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2RGLGJGLGdGXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltMSSxreix5Rl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTEkseUYsZEYsYkYsZ0ZdfX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgTUZ7YXR0YWNoKHQpe3JldHVybigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmKG51bGw9PXQmJihmdW5jdGlvbiBlKCl7dGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYXR0YWNoIGEgcG9ydGFsIHRvIGEgbnVsbCBQb3J0YWxPdXRsZXQiKX0pKCksdC5oYXNBdHRhY2hlZCgpJiZDRigpKSx0aGlzLl9hdHRhY2hlZEhvc3Q9dCx0LmF0dGFjaCh0aGlzKX1kZXRhY2goKXtsZXQgdD10aGlzLl9hdHRhY2hlZEhvc3Q7bnVsbCE9dD8odGhpcy5fYXR0YWNoZWRIb3N0PW51bGwsdC5kZXRhY2goKSk6KCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiYoZnVuY3Rpb24gZSgpe3Rocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGRldGFjaCBhIHBvcnRhbCB0aGF0IGlzIG5vdCBhdHRhY2hlZCB0byBhIGhvc3QiKX0pKCl9Z2V0IGlzQXR0YWNoZWQoKXtyZXR1cm4gbnVsbCE9dGhpcy5fYXR0YWNoZWRIb3N0fXNldEF0dGFjaGVkSG9zdCh0KXt0aGlzLl9hdHRhY2hlZEhvc3Q9dH19Y2xhc3MgdkYgZXh0ZW5kcyBNRntjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcigpLHRoaXMuY29tcG9uZW50PXQsdGhpcy52aWV3Q29udGFpbmVyUmVmPWUsdGhpcy5pbmplY3Rvcj1uLHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPW99fWNsYXNzIHhGIGV4dGVuZHMgTUZ7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy50ZW1wbGF0ZVJlZj10LHRoaXMudmlld0NvbnRhaW5lclJlZj1lLHRoaXMuY29udGV4dD1ufWdldCBvcmlnaW4oKXtyZXR1cm4gdGhpcy50ZW1wbGF0ZVJlZi5lbGVtZW50UmVmfWF0dGFjaCh0LGU9dGhpcy5jb250ZXh0KXtyZXR1cm4gdGhpcy5jb250ZXh0PWUsc3VwZXIuYXR0YWNoKHQpfWRldGFjaCgpe3JldHVybiB0aGlzLmNvbnRleHQ9dm9pZCAwLHN1cGVyLmRldGFjaCgpfX1jbGFzcyBPRiBleHRlbmRzIE1Ge2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5lbGVtZW50PXQgaW5zdGFuY2VvZiBoZz90Lm5hdGl2ZUVsZW1lbnQ6dH19Y2xhc3MgUEZ7Y29uc3RydWN0b3IoKXt0aGlzLl9pc0Rpc3Bvc2VkPSExLHRoaXMuYXR0YWNoRG9tUG9ydGFsPW51bGx9aGFzQXR0YWNoZWQoKXtyZXR1cm4hIXRoaXMuX2F0dGFjaGVkUG9ydGFsfWF0dGFjaCh0KXtyZXR1cm4oInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJih0fHwoZnVuY3Rpb24gZSgpe3Rocm93IEVycm9yKCJNdXN0IHByb3ZpZGUgYSBwb3J0YWwgdG8gYXR0YWNoIil9KSgpLHRoaXMuaGFzQXR0YWNoZWQoKSYmQ0YoKSx0aGlzLl9pc0Rpc3Bvc2VkJiYoZnVuY3Rpb24gbigpe3Rocm93IEVycm9yKCJUaGlzIFBvcnRhbE91dGxldCBoYXMgYWxyZWFkeSBiZWVuIGRpc3Bvc2VkIil9KSgpKSx0IGluc3RhbmNlb2YgdkY/KHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsdGhpcy5hdHRhY2hDb21wb25lbnRQb3J0YWwodCkpOnQgaW5zdGFuY2VvZiB4Rj8odGhpcy5fYXR0YWNoZWRQb3J0YWw9dCx0aGlzLmF0dGFjaFRlbXBsYXRlUG9ydGFsKHQpKTp0aGlzLmF0dGFjaERvbVBvcnRhbCYmdCBpbnN0YW5jZW9mIE9GPyh0aGlzLl9hdHRhY2hlZFBvcnRhbD10LHRoaXMuYXR0YWNoRG9tUG9ydGFsKHQpKTp2b2lkKCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmKGZ1bmN0aW9uIG8oKXt0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhdHRhY2ggYW4gdW5rbm93biBQb3J0YWwgdHlwZS4gQmFzZVBvcnRhbE91dGxldCBhY2NlcHRzIGVpdGhlciBhIENvbXBvbmVudFBvcnRhbCBvciBhIFRlbXBsYXRlUG9ydGFsLiIpfSkoKSl9ZGV0YWNoKCl7dGhpcy5fYXR0YWNoZWRQb3J0YWwmJih0aGlzLl9hdHRhY2hlZFBvcnRhbC5zZXRBdHRhY2hlZEhvc3QobnVsbCksdGhpcy5fYXR0YWNoZWRQb3J0YWw9bnVsbCksdGhpcy5faW52b2tlRGlzcG9zZUZuKCl9ZGlzcG9zZSgpe3RoaXMuaGFzQXR0YWNoZWQoKSYmdGhpcy5kZXRhY2goKSx0aGlzLl9pbnZva2VEaXNwb3NlRm4oKSx0aGlzLl9pc0Rpc3Bvc2VkPSEwfXNldERpc3Bvc2VGbih0KXt0aGlzLl9kaXNwb3NlRm49dH1faW52b2tlRGlzcG9zZUZuKCl7dGhpcy5fZGlzcG9zZUZuJiYodGhpcy5fZGlzcG9zZUZuKCksdGhpcy5fZGlzcG9zZUZuPW51bGwpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3Mgd0YgZXh0ZW5kcyBQRntjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3N1cGVyKCksdGhpcy5vdXRsZXRFbGVtZW50PXQsdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPWUsdGhpcy5fYXBwUmVmPW4sdGhpcy5fZGVmYXVsdEluamVjdG9yPW8sdGhpcy5hdHRhY2hEb21Qb3J0YWw9dD0+e2lmKCF0aGlzLl9kb2N1bWVudCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJDYW5ub3QgYXR0YWNoIERPTSBwb3J0YWwgd2l0aG91dCBfZG9jdW1lbnQgY29uc3RydWN0b3IgcGFyYW1ldGVyIik7Y29uc3QgZT10LmVsZW1lbnQ7aWYoIWUucGFyZW50Tm9kZSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJET00gcG9ydGFsIGNvbnRlbnQgbXVzdCBiZSBhdHRhY2hlZCB0byBhIHBhcmVudCBub2RlLiIpO2NvbnN0IG49dGhpcy5fZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiZG9tLXBvcnRhbCIpO2UucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobixlKSx0aGlzLm91dGxldEVsZW1lbnQuYXBwZW5kQ2hpbGQoZSksdGhpcy5fYXR0YWNoZWRQb3J0YWw9dCxzdXBlci5zZXREaXNwb3NlRm4oKCgpPT57bi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGUsbil9KSl9LHRoaXMuX2RvY3VtZW50PWl9YXR0YWNoQ29tcG9uZW50UG9ydGFsKHQpe2NvbnN0IGU9KHQuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyfHx0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHQuY29tcG9uZW50KTtsZXQgbjtyZXR1cm4gdC52aWV3Q29udGFpbmVyUmVmPyhuPXQudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZSx0LnZpZXdDb250YWluZXJSZWYubGVuZ3RoLHQuaW5qZWN0b3J8fHQudmlld0NvbnRhaW5lclJlZi5pbmplY3RvciksdGhpcy5zZXREaXNwb3NlRm4oKCgpPT5uLmRlc3Ryb3koKSkpKToobj1lLmNyZWF0ZSh0LmluamVjdG9yfHx0aGlzLl9kZWZhdWx0SW5qZWN0b3IpLHRoaXMuX2FwcFJlZi5hdHRhY2hWaWV3KG4uaG9zdFZpZXcpLHRoaXMuc2V0RGlzcG9zZUZuKCgoKT0+e3RoaXMuX2FwcFJlZi5kZXRhY2hWaWV3KG4uaG9zdFZpZXcpLG4uZGVzdHJveSgpfSkpKSx0aGlzLm91dGxldEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZ2V0Q29tcG9uZW50Um9vdE5vZGUobikpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsbn1hdHRhY2hUZW1wbGF0ZVBvcnRhbCh0KXtsZXQgZT10LnZpZXdDb250YWluZXJSZWYsbj1lLmNyZWF0ZUVtYmVkZGVkVmlldyh0LnRlbXBsYXRlUmVmLHQuY29udGV4dCk7cmV0dXJuIG4ucm9vdE5vZGVzLmZvckVhY2goKHQ9PnRoaXMub3V0bGV0RWxlbWVudC5hcHBlbmRDaGlsZCh0KSkpLG4uZGV0ZWN0Q2hhbmdlcygpLHRoaXMuc2V0RGlzcG9zZUZuKCgoKT0+e2xldCB0PWUuaW5kZXhPZihuKTstMSE9PXQmJmUucmVtb3ZlKHQpfSkpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsbn1kaXNwb3NlKCl7c3VwZXIuZGlzcG9zZSgpLG51bGwhPXRoaXMub3V0bGV0RWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLm91dGxldEVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLm91dGxldEVsZW1lbnQpfV9nZXRDb21wb25lbnRSb290Tm9kZSh0KXtyZXR1cm4gdC5ob3N0Vmlldy5yb290Tm9kZXNbMF19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBrRiBleHRlbmRzIHhGe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKX19a0YuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGtGKShTbShYZyksU20oZWgpKX0sa0YuybVkaXI9bG8oe3R5cGU6a0Ysc2VsZWN0b3JzOltbIiIsImNka1BvcnRhbCIsIiJdXSxleHBvcnRBczpbImNka1BvcnRhbCJdLGZlYXR1cmVzOlt4cF19KSxrRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlhnfSx7dHlwZTplaH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoa0YsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka1BvcnRhbF0iLGV4cG9ydEFzOiJjZGtQb3J0YWwifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WGd9LHt0eXBlOmVofV19KSxudWxsKTtjbGFzcyBTRiBleHRlbmRzIGtGe31TRi7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoU0YpKSkobnx8U0YpfX0pKCksU0YuybVkaXI9bG8oe3R5cGU6U0Ysc2VsZWN0b3JzOltbIiIsImNkay1wb3J0YWwiLCIiXSxbIiIsInBvcnRhbCIsIiJdXSxleHBvcnRBczpbImNka1BvcnRhbCJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6a0YsdXNlRXhpc3Rpbmc6U0Z9XSkseHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChTRixbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrLXBvcnRhbF0sIFtwb3J0YWxdIixleHBvcnRBczoiY2RrUG9ydGFsIixwcm92aWRlcnM6W3twcm92aWRlOmtGLHVzZUV4aXN0aW5nOlNGfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgREYgZXh0ZW5kcyBQRntjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9dCx0aGlzLl92aWV3Q29udGFpbmVyUmVmPWUsdGhpcy5faXNJbml0aWFsaXplZD0hMSx0aGlzLmF0dGFjaGVkPW5ldyBMaCx0aGlzLmF0dGFjaERvbVBvcnRhbD10PT57aWYoIXRoaXMuX2RvY3VtZW50JiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoIkNhbm5vdCBhdHRhY2ggRE9NIHBvcnRhbCB3aXRob3V0IF9kb2N1bWVudCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIiKTtjb25zdCBlPXQuZWxlbWVudDtpZighZS5wYXJlbnROb2RlJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoIkRPTSBwb3J0YWwgY29udGVudCBtdXN0IGJlIGF0dGFjaGVkIHRvIGEgcGFyZW50IG5vZGUuIik7Y29uc3Qgbj10aGlzLl9kb2N1bWVudC5jcmVhdGVDb21tZW50KCJkb20tcG9ydGFsIik7dC5zZXRBdHRhY2hlZEhvc3QodGhpcyksZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLGUpLHRoaXMuX2dldFJvb3ROb2RlKCkuYXBwZW5kQ2hpbGQoZSksdGhpcy5fYXR0YWNoZWRQb3J0YWw9dCxzdXBlci5zZXREaXNwb3NlRm4oKCgpPT57bi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGUsbil9KSl9LHRoaXMuX2RvY3VtZW50PW59Z2V0IHBvcnRhbCgpe3JldHVybiB0aGlzLl9hdHRhY2hlZFBvcnRhbH1zZXQgcG9ydGFsKHQpeyghdGhpcy5oYXNBdHRhY2hlZCgpfHx0fHx0aGlzLl9pc0luaXRpYWxpemVkKSYmKHRoaXMuaGFzQXR0YWNoZWQoKSYmc3VwZXIuZGV0YWNoKCksdCYmc3VwZXIuYXR0YWNoKHQpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQpfWdldCBhdHRhY2hlZFJlZigpe3JldHVybiB0aGlzLl9hdHRhY2hlZFJlZn1uZ09uSW5pdCgpe3RoaXMuX2lzSW5pdGlhbGl6ZWQ9ITB9bmdPbkRlc3Ryb3koKXtzdXBlci5kaXNwb3NlKCksdGhpcy5fYXR0YWNoZWRQb3J0YWw9bnVsbCx0aGlzLl9hdHRhY2hlZFJlZj1udWxsfWF0dGFjaENvbXBvbmVudFBvcnRhbCh0KXt0LnNldEF0dGFjaGVkSG9zdCh0aGlzKTtjb25zdCBlPW51bGwhPXQudmlld0NvbnRhaW5lclJlZj90LnZpZXdDb250YWluZXJSZWY6dGhpcy5fdmlld0NvbnRhaW5lclJlZixuPSh0LmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcnx8dGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKS5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0LmNvbXBvbmVudCksbz1lLmNyZWF0ZUNvbXBvbmVudChuLGUubGVuZ3RoLHQuaW5qZWN0b3J8fGUuaW5qZWN0b3IpO3JldHVybiBlIT09dGhpcy5fdmlld0NvbnRhaW5lclJlZiYmdGhpcy5fZ2V0Um9vdE5vZGUoKS5hcHBlbmRDaGlsZChvLmhvc3RWaWV3LnJvb3ROb2Rlc1swXSksc3VwZXIuc2V0RGlzcG9zZUZuKCgoKT0+by5kZXN0cm95KCkpKSx0aGlzLl9hdHRhY2hlZFBvcnRhbD10LHRoaXMuX2F0dGFjaGVkUmVmPW8sdGhpcy5hdHRhY2hlZC5lbWl0KG8pLG99YXR0YWNoVGVtcGxhdGVQb3J0YWwodCl7dC5zZXRBdHRhY2hlZEhvc3QodGhpcyk7Y29uc3QgZT10aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0LnRlbXBsYXRlUmVmLHQuY29udGV4dCk7cmV0dXJuIHN1cGVyLnNldERpc3Bvc2VGbigoKCk9PnRoaXMuX3ZpZXdDb250YWluZXJSZWYuY2xlYXIoKSkpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsdGhpcy5fYXR0YWNoZWRSZWY9ZSx0aGlzLmF0dGFjaGVkLmVtaXQoZSksZX1fZ2V0Um9vdE5vZGUoKXtjb25zdCB0PXRoaXMuX3ZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50O3JldHVybiB0Lm5vZGVUeXBlPT09dC5FTEVNRU5UX05PREU/dDp0LnBhcmVudE5vZGV9fURGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxERikoU20odWcpLFNtKGVoKSxTbShaXykpfSxERi7JtWRpcj1sbyh7dHlwZTpERixzZWxlY3RvcnM6W1siIiwiY2RrUG9ydGFsT3V0bGV0IiwiIl1dLGlucHV0czp7cG9ydGFsOlsiY2RrUG9ydGFsT3V0bGV0IiwicG9ydGFsIl19LG91dHB1dHM6e2F0dGFjaGVkOiJhdHRhY2hlZCJ9LGV4cG9ydEFzOlsiY2RrUG9ydGFsT3V0bGV0Il0sZmVhdHVyZXM6W3hwXX0pLERGLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dWd9LHt0eXBlOmVofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSxERi5wcm9wRGVjb3JhdG9ycz17YXR0YWNoZWQ6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoREYsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka1BvcnRhbE91dGxldF0iLGV4cG9ydEFzOiJjZGtQb3J0YWxPdXRsZXQiLGlucHV0czpbInBvcnRhbDogY2RrUG9ydGFsT3V0bGV0Il19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp1Z30se3R5cGU6ZWh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSkse2F0dGFjaGVkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgRUYgZXh0ZW5kcyBERnt9RUYuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKEVGKSkpKG58fEVGKX19KSgpLEVGLsm1ZGlyPWxvKHt0eXBlOkVGLHNlbGVjdG9yczpbWyIiLCJjZGtQb3J0YWxIb3N0IiwiIl0sWyIiLCJwb3J0YWxIb3N0IiwiIl1dLGlucHV0czp7cG9ydGFsOlsiY2RrUG9ydGFsSG9zdCIsInBvcnRhbCJdfSxleHBvcnRBczpbImNka1BvcnRhbEhvc3QiXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOkRGLHVzZUV4aXN0aW5nOkVGfV0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRUYsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka1BvcnRhbEhvc3RdLCBbcG9ydGFsSG9zdF0iLGV4cG9ydEFzOiJjZGtQb3J0YWxIb3N0IixpbnB1dHM6WyJwb3J0YWw6IGNka1BvcnRhbEhvc3QiXSxwcm92aWRlcnM6W3twcm92aWRlOkRGLHVzZUV4aXN0aW5nOkVGfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgUkZ7fVJGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxSRil9LFJGLsm1bW9kPWFvKHt0eXBlOlJGfSksUkYuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUkYsW3t0eXBlOkF5LGFyZ3M6W3tleHBvcnRzOltrRixERixTRixFRl0sZGVjbGFyYXRpb25zOltrRixERixTRixFRl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhSRix7ZGVjbGFyYXRpb25zOltrRixERixTRixFRl0sZXhwb3J0czpba0YsREYsU0YsRUZdfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBBRj16eigpO2NsYXNzIFRGe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fdmlld3BvcnRSdWxlcj10LHRoaXMuX3ByZXZpb3VzSFRNTFN0eWxlcz17dG9wOiIiLGxlZnQ6IiJ9LHRoaXMuX2lzRW5hYmxlZD0hMSx0aGlzLl9kb2N1bWVudD1lfWF0dGFjaCgpe31lbmFibGUoKXtpZih0aGlzLl9jYW5CZUVuYWJsZWQoKSl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbj10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKSx0aGlzLl9wcmV2aW91c0hUTUxTdHlsZXMubGVmdD10LnN0eWxlLmxlZnR8fCIiLHRoaXMuX3ByZXZpb3VzSFRNTFN0eWxlcy50b3A9dC5zdHlsZS50b3B8fCIiLHQuc3R5bGUubGVmdD12eigtdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi5sZWZ0KSx0LnN0eWxlLnRvcD12eigtdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi50b3ApLHQuY2xhc3NMaXN0LmFkZCgiY2RrLWdsb2JhbC1zY3JvbGxibG9jayIpLHRoaXMuX2lzRW5hYmxlZD0hMH19ZGlzYWJsZSgpe2lmKHRoaXMuX2lzRW5hYmxlZCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZT10LnN0eWxlLG49dGhpcy5fZG9jdW1lbnQuYm9keS5zdHlsZSxvPWUuc2Nyb2xsQmVoYXZpb3J8fCIiLGk9bi5zY3JvbGxCZWhhdmlvcnx8IiI7dGhpcy5faXNFbmFibGVkPSExLGUubGVmdD10aGlzLl9wcmV2aW91c0hUTUxTdHlsZXMubGVmdCxlLnRvcD10aGlzLl9wcmV2aW91c0hUTUxTdHlsZXMudG9wLHQuY2xhc3NMaXN0LnJlbW92ZSgiY2RrLWdsb2JhbC1zY3JvbGxibG9jayIpLEFGJiYoZS5zY3JvbGxCZWhhdmlvcj1uLnNjcm9sbEJlaGF2aW9yPSJhdXRvIiksd2luZG93LnNjcm9sbCh0aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uLmxlZnQsdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi50b3ApLEFGJiYoZS5zY3JvbGxCZWhhdmlvcj1vLG4uc2Nyb2xsQmVoYXZpb3I9aSl9fV9jYW5CZUVuYWJsZWQoKXtpZih0aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJjZGstZ2xvYmFsLXNjcm9sbGJsb2NrIil8fHRoaXMuX2lzRW5hYmxlZClyZXR1cm4hMTtjb25zdCB0PXRoaXMuX2RvY3VtZW50LmJvZHksZT10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2l6ZSgpO3JldHVybiB0LnNjcm9sbEhlaWdodD5lLmhlaWdodHx8dC5zY3JvbGxXaWR0aD5lLndpZHRofX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gTkYoKXtyZXR1cm4gRXJyb3IoIlNjcm9sbCBzdHJhdGVneSBoYXMgYWxyZWFkeSBiZWVuIGF0dGFjaGVkLiIpfWNsYXNzIHpGe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX3Njcm9sbERpc3BhdGNoZXI9dCx0aGlzLl9uZ1pvbmU9ZSx0aGlzLl92aWV3cG9ydFJ1bGVyPW4sdGhpcy5fY29uZmlnPW8sdGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fZGV0YWNoPSgpPT57dGhpcy5kaXNhYmxlKCksdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpJiZ0aGlzLl9uZ1pvbmUucnVuKCgoKT0+dGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKSkpfX1hdHRhY2godCl7aWYodGhpcy5fb3ZlcmxheVJlZiYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IE5GKCk7dGhpcy5fb3ZlcmxheVJlZj10fWVuYWJsZSgpe2lmKHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbilyZXR1cm47Y29uc3QgdD10aGlzLl9zY3JvbGxEaXNwYXRjaGVyLnNjcm9sbGVkKDApO3RoaXMuX2NvbmZpZyYmdGhpcy5fY29uZmlnLnRocmVzaG9sZCYmdGhpcy5fY29uZmlnLnRocmVzaG9sZD4xPyh0aGlzLl9pbml0aWFsU2Nyb2xsUG9zaXRpb249dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCkudG9wLHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj10LnN1YnNjcmliZSgoKCk9Pntjb25zdCB0PXRoaXMuX3ZpZXdwb3J0UnVsZXIuZ2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpLnRvcDtNYXRoLmFicyh0LXRoaXMuX2luaXRpYWxTY3JvbGxQb3NpdGlvbik+dGhpcy5fY29uZmlnLnRocmVzaG9sZD90aGlzLl9kZXRhY2goKTp0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCl9KSkpOnRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj10LnN1YnNjcmliZSh0aGlzLl9kZXRhY2gpfWRpc2FibGUoKXt0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb24mJih0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb249bnVsbCl9ZGV0YWNoKCl7dGhpcy5kaXNhYmxlKCksdGhpcy5fb3ZlcmxheVJlZj1udWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgSUZ7ZW5hYmxlKCl7fWRpc2FibGUoKXt9YXR0YWNoKCl7fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gSEYodCxlKXtyZXR1cm4gZS5zb21lKChlPT50LmJvdHRvbTxlLnRvcHx8dC50b3A+ZS5ib3R0b218fHQucmlnaHQ8ZS5sZWZ0fHx0LmxlZnQ+ZS5yaWdodCkpfWZ1bmN0aW9uIEZGKHQsZSl7cmV0dXJuIGUuc29tZSgoZT0+dC50b3A8ZS50b3B8fHQuYm90dG9tPmUuYm90dG9tfHx0LmxlZnQ8ZS5sZWZ0fHx0LnJpZ2h0PmUucmlnaHQpKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgTEZ7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fc2Nyb2xsRGlzcGF0Y2hlcj10LHRoaXMuX3ZpZXdwb3J0UnVsZXI9ZSx0aGlzLl9uZ1pvbmU9bix0aGlzLl9jb25maWc9byx0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb249bnVsbH1hdHRhY2godCl7aWYodGhpcy5fb3ZlcmxheVJlZiYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IE5GKCk7dGhpcy5fb3ZlcmxheVJlZj10fWVuYWJsZSgpe3RoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbnx8KHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj10aGlzLl9zY3JvbGxEaXNwYXRjaGVyLnNjcm9sbGVkKHRoaXMuX2NvbmZpZz90aGlzLl9jb25maWcuc2Nyb2xsVGhyb3R0bGU6MCkuc3Vic2NyaWJlKCgoKT0+e2lmKHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSx0aGlzLl9jb25maWcmJnRoaXMuX2NvbmZpZy5hdXRvQ2xvc2Upe2NvbnN0IHQ9dGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7d2lkdGg6ZSxoZWlnaHQ6bn09dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNpemUoKTtIRih0LFt7d2lkdGg6ZSxoZWlnaHQ6bixib3R0b206bixyaWdodDplLHRvcDowLGxlZnQ6MH1dKSYmKHRoaXMuZGlzYWJsZSgpLHRoaXMuX25nWm9uZS5ydW4oKCgpPT50aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpKSkpfX0pKSl9ZGlzYWJsZSgpe3RoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbiYmKHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj1udWxsKX1kZXRhY2goKXt0aGlzLmRpc2FibGUoKSx0aGlzLl9vdmVybGF5UmVmPW51bGx9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBCRntjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9zY3JvbGxEaXNwYXRjaGVyPXQsdGhpcy5fdmlld3BvcnRSdWxlcj1lLHRoaXMuX25nWm9uZT1uLHRoaXMubm9vcD0oKT0+bmV3IElGLHRoaXMuY2xvc2U9dD0+bmV3IHpGKHRoaXMuX3Njcm9sbERpc3BhdGNoZXIsdGhpcy5fbmdab25lLHRoaXMuX3ZpZXdwb3J0UnVsZXIsdCksdGhpcy5ibG9jaz0oKT0+bmV3IFRGKHRoaXMuX3ZpZXdwb3J0UnVsZXIsdGhpcy5fZG9jdW1lbnQpLHRoaXMucmVwb3NpdGlvbj10PT5uZXcgTEYodGhpcy5fc2Nyb2xsRGlzcGF0Y2hlcix0aGlzLl92aWV3cG9ydFJ1bGVyLHRoaXMuX25nWm9uZSx0KSx0aGlzLl9kb2N1bWVudD1vfX1CRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QkYpKHZyKHBGKSx2cih1RiksdnIoYV8pLHZyKFpfKSl9LEJGLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBCRih2cihwRiksdnIodUYpLHZyKGFfKSx2cihaXykpfSx0b2tlbjpCRixwcm92aWRlZEluOiJyb290In0pLEJGLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6cEZ9LHt0eXBlOnVGfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCRixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6cEZ9LHt0eXBlOnVGfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBWRntjb25zdHJ1Y3Rvcih0KXtpZih0aGlzLnNjcm9sbFN0cmF0ZWd5PW5ldyBJRix0aGlzLnBhbmVsQ2xhc3M9IiIsdGhpcy5oYXNCYWNrZHJvcD0hMSx0aGlzLmJhY2tkcm9wQ2xhc3M9ImNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AiLHRoaXMuZGlzcG9zZU9uTmF2aWdhdGlvbj0hMSx0KXtjb25zdCBlPU9iamVjdC5rZXlzKHQpO2Zvcihjb25zdCBuIG9mIGUpdm9pZCAwIT09dFtuXSYmKHRoaXNbbl09dFtuXSl9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgakZ7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLm9mZnNldFg9bix0aGlzLm9mZnNldFk9byx0aGlzLnBhbmVsQ2xhc3M9aSx0aGlzLm9yaWdpblg9dC5vcmlnaW5YLHRoaXMub3JpZ2luWT10Lm9yaWdpblksdGhpcy5vdmVybGF5WD1lLm92ZXJsYXlYLHRoaXMub3ZlcmxheVk9ZS5vdmVybGF5WX19Y2xhc3MgVUZ7fWNsYXNzIEdGe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5jb25uZWN0aW9uUGFpcj10LHRoaXMuc2Nyb2xsYWJsZVZpZXdQcm9wZXJ0aWVzPWV9fWZ1bmN0aW9uIFdGKHQsZSl7aWYoInRvcCIhPT1lJiYiYm90dG9tIiE9PWUmJiJjZW50ZXIiIT09ZSl0aHJvdyBFcnJvcihgQ29ubmVjdGVkUG9zaXRpb246IEludmFsaWQgJHt0fSAiJHtlfSIuIEV4cGVjdGVkICJ0b3AiLCAiYm90dG9tIiBvciAiY2VudGVyIi5gKX1mdW5jdGlvbiBZRih0LGUpe2lmKCJzdGFydCIhPT1lJiYiZW5kIiE9PWUmJiJjZW50ZXIiIT09ZSl0aHJvdyBFcnJvcihgQ29ubmVjdGVkUG9zaXRpb246IEludmFsaWQgJHt0fSAiJHtlfSIuIEV4cGVjdGVkICJzdGFydCIsICJlbmQiIG9yICJjZW50ZXIiLmApfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9HRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmpGfSx7dHlwZTpVRixkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV07Y2xhc3MgcUZ7Y29uc3RydWN0b3IodCl7dGhpcy5fYXR0YWNoZWRPdmVybGF5cz1bXSx0aGlzLl9kb2N1bWVudD10fW5nT25EZXN0cm95KCl7dGhpcy5kZXRhY2goKX1hZGQodCl7dGhpcy5yZW1vdmUodCksdGhpcy5fYXR0YWNoZWRPdmVybGF5cy5wdXNoKHQpfXJlbW92ZSh0KXtjb25zdCBlPXRoaXMuX2F0dGFjaGVkT3ZlcmxheXMuaW5kZXhPZih0KTtlPi0xJiZ0aGlzLl9hdHRhY2hlZE92ZXJsYXlzLnNwbGljZShlLDEpLDA9PT10aGlzLl9hdHRhY2hlZE92ZXJsYXlzLmxlbmd0aCYmdGhpcy5kZXRhY2goKX19cUYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHFGKSh2cihaXykpfSxxRi7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgcUYodnIoWl8pKX0sdG9rZW46cUYscHJvdmlkZWRJbjoicm9vdCJ9KSxxRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocUYsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBaRiBleHRlbmRzIHFGe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuX2tleWRvd25MaXN0ZW5lcj10PT57Y29uc3QgZT10aGlzLl9hdHRhY2hlZE92ZXJsYXlzO2ZvcihsZXQgbj1lLmxlbmd0aC0xO24+LTE7bi0tKWlmKGVbbl0uX2tleWRvd25FdmVudHMub2JzZXJ2ZXJzLmxlbmd0aD4wKXtlW25dLl9rZXlkb3duRXZlbnRzLm5leHQodCk7YnJlYWt9fX1hZGQodCl7c3VwZXIuYWRkKHQpLHRoaXMuX2lzQXR0YWNoZWR8fCh0aGlzLl9kb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2tleWRvd25MaXN0ZW5lciksdGhpcy5faXNBdHRhY2hlZD0hMCl9ZGV0YWNoKCl7dGhpcy5faXNBdHRhY2hlZCYmKHRoaXMuX2RvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fa2V5ZG93bkxpc3RlbmVyKSx0aGlzLl9pc0F0dGFjaGVkPSExKX19WkYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFpGKSh2cihaXykpfSxaRi7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgWkYodnIoWl8pKX0sdG9rZW46WkYscHJvdmlkZWRJbjoicm9vdCJ9KSxaRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWkYsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBYRiBleHRlbmRzIHFGe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCksdGhpcy5fcGxhdGZvcm09ZSx0aGlzLl9jdXJzb3JTdHlsZUlzU2V0PSExLHRoaXMuX2NsaWNrTGlzdGVuZXI9dD0+e2NvbnN0IGU9THoodCksbj10aGlzLl9hdHRhY2hlZE92ZXJsYXlzLnNsaWNlKCk7Zm9yKGxldCBvPW4ubGVuZ3RoLTE7bz4tMTtvLS0pe2NvbnN0IGk9bltvXTtpZighKGkuX291dHNpZGVQb2ludGVyRXZlbnRzLm9ic2VydmVycy5sZW5ndGg8MSkmJmkuaGFzQXR0YWNoZWQoKSl7aWYoaS5vdmVybGF5RWxlbWVudC5jb250YWlucyhlKSlicmVhaztpLl9vdXRzaWRlUG9pbnRlckV2ZW50cy5uZXh0KHQpfX19fWFkZCh0KXtpZihzdXBlci5hZGQodCksIXRoaXMuX2lzQXR0YWNoZWQpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuYm9keTt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSx0LmFkZEV2ZW50TGlzdGVuZXIoImF1eGNsaWNrIix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSx0aGlzLl9wbGF0Zm9ybS5JT1MmJiF0aGlzLl9jdXJzb3JTdHlsZUlzU2V0JiYodGhpcy5fY3Vyc29yT3JpZ2luYWxWYWx1ZT10LnN0eWxlLmN1cnNvcix0LnN0eWxlLmN1cnNvcj0icG9pbnRlciIsdGhpcy5fY3Vyc29yU3R5bGVJc1NldD0hMCksdGhpcy5faXNBdHRhY2hlZD0hMH19ZGV0YWNoKCl7aWYodGhpcy5faXNBdHRhY2hlZCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5ib2R5O3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2NsaWNrTGlzdGVuZXIsITApLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYXV4Y2xpY2siLHRoaXMuX2NsaWNrTGlzdGVuZXIsITApLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMuX2NsaWNrTGlzdGVuZXIsITApLHRoaXMuX3BsYXRmb3JtLklPUyYmdGhpcy5fY3Vyc29yU3R5bGVJc1NldCYmKHQuc3R5bGUuY3Vyc29yPXRoaXMuX2N1cnNvck9yaWdpbmFsVmFsdWUsdGhpcy5fY3Vyc29yU3R5bGVJc1NldD0hMSksdGhpcy5faXNBdHRhY2hlZD0hMX19fVhGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYRikodnIoWl8pLHZyKHd6KSl9LFhGLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBYRih2cihaXyksdnIod3opKX0sdG9rZW46WEYscHJvdmlkZWRJbjoicm9vdCJ9KSxYRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6d3p9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFhGLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEtGPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSxKRj12b2lkIDAhPT1LRi5fX2thcm1hX18mJiEhS0YuX19rYXJtYV9ffHx2b2lkIDAhPT1LRi5qYXNtaW5lJiYhIUtGLmphc21pbmV8fHZvaWQgMCE9PUtGLmplc3QmJiEhS0YuamVzdHx8dm9pZCAwIT09S0YuTW9jaGEmJiEhS0YuTW9jaGE7Y2xhc3MgUUZ7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9wbGF0Zm9ybT1lLHRoaXMuX2RvY3VtZW50PXR9bmdPbkRlc3Ryb3koKXtjb25zdCB0PXRoaXMuX2NvbnRhaW5lckVsZW1lbnQ7dCYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9Z2V0Q29udGFpbmVyRWxlbWVudCgpe3JldHVybiB0aGlzLl9jb250YWluZXJFbGVtZW50fHx0aGlzLl9jcmVhdGVDb250YWluZXIoKSx0aGlzLl9jb250YWluZXJFbGVtZW50fV9jcmVhdGVDb250YWluZXIoKXtjb25zdCB0PSJjZGstb3ZlcmxheS1jb250YWluZXIiO2lmKHRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcnx8SkYpe2NvbnN0IGU9dGhpcy5fZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgLiR7dH1bcGxhdGZvcm09InNlcnZlciJdLCAuJHt0fVtwbGF0Zm9ybT0idGVzdCJdYCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVbdF0pfWNvbnN0IGU9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc0xpc3QuYWRkKHQpLEpGP2Uuc2V0QXR0cmlidXRlKCJwbGF0Zm9ybSIsInRlc3QiKTp0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXJ8fGUuc2V0QXR0cmlidXRlKCJwbGF0Zm9ybSIsInNlcnZlciIpLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksdGhpcy5fY29udGFpbmVyRWxlbWVudD1lfX1RRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UUYpKHZyKFpfKSx2cih3eikpfSxRRi7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgUUYodnIoWl8pLHZyKHd6KSl9LHRva2VuOlFGLHByb3ZpZGVkSW46InJvb3QifSksUUYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChRRixbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp3en1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyAkRntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCl7dGhpcy5fcG9ydGFsT3V0bGV0PXQsdGhpcy5faG9zdD1lLHRoaXMuX3BhbmU9bix0aGlzLl9jb25maWc9byx0aGlzLl9uZ1pvbmU9aSx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXI9YSx0aGlzLl9kb2N1bWVudD1yLHRoaXMuX2xvY2F0aW9uPXMsdGhpcy5fb3V0c2lkZUNsaWNrRGlzcGF0Y2hlcj1sLHRoaXMuX2JhY2tkcm9wRWxlbWVudD1udWxsLHRoaXMuX2JhY2tkcm9wQ2xpY2s9bmV3IEksdGhpcy5fYXR0YWNobWVudHM9bmV3IEksdGhpcy5fZGV0YWNobWVudHM9bmV3IEksdGhpcy5fbG9jYXRpb25DaGFuZ2VzPW0uRU1QVFksdGhpcy5fYmFja2Ryb3BDbGlja0hhbmRsZXI9dD0+dGhpcy5fYmFja2Ryb3BDbGljay5uZXh0KHQpLHRoaXMuX2tleWRvd25FdmVudHM9bmV3IEksdGhpcy5fb3V0c2lkZVBvaW50ZXJFdmVudHM9bmV3IEksby5zY3JvbGxTdHJhdGVneSYmKHRoaXMuX3Njcm9sbFN0cmF0ZWd5PW8uc2Nyb2xsU3RyYXRlZ3ksdGhpcy5fc2Nyb2xsU3RyYXRlZ3kuYXR0YWNoKHRoaXMpKSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5PW8ucG9zaXRpb25TdHJhdGVneX1nZXQgb3ZlcmxheUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fcGFuZX1nZXQgYmFja2Ryb3BFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2JhY2tkcm9wRWxlbWVudH1nZXQgaG9zdEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5faG9zdH1hdHRhY2godCl7bGV0IGU9dGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaCh0KTtyZXR1cm4hdGhpcy5faG9zdC5wYXJlbnRFbGVtZW50JiZ0aGlzLl9wcmV2aW91c0hvc3RQYXJlbnQmJnRoaXMuX3ByZXZpb3VzSG9zdFBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLl9ob3N0KSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5JiZ0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmF0dGFjaCh0aGlzKSx0aGlzLl91cGRhdGVTdGFja2luZ09yZGVyKCksdGhpcy5fdXBkYXRlRWxlbWVudFNpemUoKSx0aGlzLl91cGRhdGVFbGVtZW50RGlyZWN0aW9uKCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3kmJnRoaXMuX3Njcm9sbFN0cmF0ZWd5LmVuYWJsZSgpLHRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5oYXNBdHRhY2hlZCgpJiZ0aGlzLnVwZGF0ZVBvc2l0aW9uKCl9KSksdGhpcy5fdG9nZ2xlUG9pbnRlckV2ZW50cyghMCksdGhpcy5fY29uZmlnLmhhc0JhY2tkcm9wJiZ0aGlzLl9hdHRhY2hCYWNrZHJvcCgpLHRoaXMuX2NvbmZpZy5wYW5lbENsYXNzJiZ0aGlzLl90b2dnbGVDbGFzc2VzKHRoaXMuX3BhbmUsdGhpcy5fY29uZmlnLnBhbmVsQ2xhc3MsITApLHRoaXMuX2F0dGFjaG1lbnRzLm5leHQoKSx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXIuYWRkKHRoaXMpLHRoaXMuX2NvbmZpZy5kaXNwb3NlT25OYXZpZ2F0aW9uJiYodGhpcy5fbG9jYXRpb25DaGFuZ2VzPXRoaXMuX2xvY2F0aW9uLnN1YnNjcmliZSgoKCk9PnRoaXMuZGlzcG9zZSgpKSkpLHRoaXMuX291dHNpZGVDbGlja0Rpc3BhdGNoZXIuYWRkKHRoaXMpLGV9ZGV0YWNoKCl7aWYoIXRoaXMuaGFzQXR0YWNoZWQoKSlyZXR1cm47dGhpcy5kZXRhY2hCYWNrZHJvcCgpLHRoaXMuX3RvZ2dsZVBvaW50ZXJFdmVudHMoITEpLHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kmJnRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuZGV0YWNoJiZ0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmRldGFjaCgpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5JiZ0aGlzLl9zY3JvbGxTdHJhdGVneS5kaXNhYmxlKCk7Y29uc3QgdD10aGlzLl9wb3J0YWxPdXRsZXQuZGV0YWNoKCk7cmV0dXJuIHRoaXMuX2RldGFjaG1lbnRzLm5leHQoKSx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXIucmVtb3ZlKHRoaXMpLHRoaXMuX2RldGFjaENvbnRlbnRXaGVuU3RhYmxlKCksdGhpcy5fbG9jYXRpb25DaGFuZ2VzLnVuc3Vic2NyaWJlKCksdGhpcy5fb3V0c2lkZUNsaWNrRGlzcGF0Y2hlci5yZW1vdmUodGhpcyksdH1kaXNwb3NlKCl7Y29uc3QgdD10aGlzLmhhc0F0dGFjaGVkKCk7dGhpcy5fcG9zaXRpb25TdHJhdGVneSYmdGhpcy5fcG9zaXRpb25TdHJhdGVneS5kaXNwb3NlKCksdGhpcy5fZGlzcG9zZVNjcm9sbFN0cmF0ZWd5KCksdGhpcy5kZXRhY2hCYWNrZHJvcCgpLHRoaXMuX2xvY2F0aW9uQ2hhbmdlcy51bnN1YnNjcmliZSgpLHRoaXMuX2tleWJvYXJkRGlzcGF0Y2hlci5yZW1vdmUodGhpcyksdGhpcy5fcG9ydGFsT3V0bGV0LmRpc3Bvc2UoKSx0aGlzLl9hdHRhY2htZW50cy5jb21wbGV0ZSgpLHRoaXMuX2JhY2tkcm9wQ2xpY2suY29tcGxldGUoKSx0aGlzLl9rZXlkb3duRXZlbnRzLmNvbXBsZXRlKCksdGhpcy5fb3V0c2lkZVBvaW50ZXJFdmVudHMuY29tcGxldGUoKSx0aGlzLl9vdXRzaWRlQ2xpY2tEaXNwYXRjaGVyLnJlbW92ZSh0aGlzKSx0aGlzLl9ob3N0JiZ0aGlzLl9ob3N0LnBhcmVudE5vZGUmJih0aGlzLl9ob3N0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5faG9zdCksdGhpcy5faG9zdD1udWxsKSx0aGlzLl9wcmV2aW91c0hvc3RQYXJlbnQ9dGhpcy5fcGFuZT1udWxsLHQmJnRoaXMuX2RldGFjaG1lbnRzLm5leHQoKSx0aGlzLl9kZXRhY2htZW50cy5jb21wbGV0ZSgpfWhhc0F0dGFjaGVkKCl7cmV0dXJuIHRoaXMuX3BvcnRhbE91dGxldC5oYXNBdHRhY2hlZCgpfWJhY2tkcm9wQ2xpY2soKXtyZXR1cm4gdGhpcy5fYmFja2Ryb3BDbGlja31hdHRhY2htZW50cygpe3JldHVybiB0aGlzLl9hdHRhY2htZW50c31kZXRhY2htZW50cygpe3JldHVybiB0aGlzLl9kZXRhY2htZW50c31rZXlkb3duRXZlbnRzKCl7cmV0dXJuIHRoaXMuX2tleWRvd25FdmVudHN9b3V0c2lkZVBvaW50ZXJFdmVudHMoKXtyZXR1cm4gdGhpcy5fb3V0c2lkZVBvaW50ZXJFdmVudHN9Z2V0Q29uZmlnKCl7cmV0dXJuIHRoaXMuX2NvbmZpZ311cGRhdGVQb3NpdGlvbigpe3RoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kmJnRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuYXBwbHkoKX11cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHQpe3QhPT10aGlzLl9wb3NpdGlvblN0cmF0ZWd5JiYodGhpcy5fcG9zaXRpb25TdHJhdGVneSYmdGhpcy5fcG9zaXRpb25TdHJhdGVneS5kaXNwb3NlKCksdGhpcy5fcG9zaXRpb25TdHJhdGVneT10LHRoaXMuaGFzQXR0YWNoZWQoKSYmKHQuYXR0YWNoKHRoaXMpLHRoaXMudXBkYXRlUG9zaXRpb24oKSkpfXVwZGF0ZVNpemUodCl7dGhpcy5fY29uZmlnPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLl9jb25maWcpLHQpLHRoaXMuX3VwZGF0ZUVsZW1lbnRTaXplKCl9c2V0RGlyZWN0aW9uKHQpe3RoaXMuX2NvbmZpZz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5fY29uZmlnKSx7ZGlyZWN0aW9uOnR9KSx0aGlzLl91cGRhdGVFbGVtZW50RGlyZWN0aW9uKCl9YWRkUGFuZWxDbGFzcyh0KXt0aGlzLl9wYW5lJiZ0aGlzLl90b2dnbGVDbGFzc2VzKHRoaXMuX3BhbmUsdCwhMCl9cmVtb3ZlUGFuZWxDbGFzcyh0KXt0aGlzLl9wYW5lJiZ0aGlzLl90b2dnbGVDbGFzc2VzKHRoaXMuX3BhbmUsdCwhMSl9Z2V0RGlyZWN0aW9uKCl7Y29uc3QgdD10aGlzLl9jb25maWcuZGlyZWN0aW9uO3JldHVybiB0PyJzdHJpbmciPT10eXBlb2YgdD90OnQudmFsdWU6Imx0ciJ9dXBkYXRlU2Nyb2xsU3RyYXRlZ3kodCl7dCE9PXRoaXMuX3Njcm9sbFN0cmF0ZWd5JiYodGhpcy5fZGlzcG9zZVNjcm9sbFN0cmF0ZWd5KCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9dCx0aGlzLmhhc0F0dGFjaGVkKCkmJih0LmF0dGFjaCh0aGlzKSx0LmVuYWJsZSgpKSl9X3VwZGF0ZUVsZW1lbnREaXJlY3Rpb24oKXt0aGlzLl9ob3N0LnNldEF0dHJpYnV0ZSgiZGlyIix0aGlzLmdldERpcmVjdGlvbigpKX1fdXBkYXRlRWxlbWVudFNpemUoKXtpZighdGhpcy5fcGFuZSlyZXR1cm47Y29uc3QgdD10aGlzLl9wYW5lLnN0eWxlO3Qud2lkdGg9dnoodGhpcy5fY29uZmlnLndpZHRoKSx0LmhlaWdodD12eih0aGlzLl9jb25maWcuaGVpZ2h0KSx0Lm1pbldpZHRoPXZ6KHRoaXMuX2NvbmZpZy5taW5XaWR0aCksdC5taW5IZWlnaHQ9dnoodGhpcy5fY29uZmlnLm1pbkhlaWdodCksdC5tYXhXaWR0aD12eih0aGlzLl9jb25maWcubWF4V2lkdGgpLHQubWF4SGVpZ2h0PXZ6KHRoaXMuX2NvbmZpZy5tYXhIZWlnaHQpfV90b2dnbGVQb2ludGVyRXZlbnRzKHQpe3RoaXMuX3BhbmUuc3R5bGUucG9pbnRlckV2ZW50cz10PyIiOiJub25lIn1fYXR0YWNoQmFja2Ryb3AoKXtjb25zdCB0PSJjZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIjt0aGlzLl9iYWNrZHJvcEVsZW1lbnQ9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fYmFja2Ryb3BFbGVtZW50LmNsYXNzTGlzdC5hZGQoImNkay1vdmVybGF5LWJhY2tkcm9wIiksdGhpcy5fY29uZmlnLmJhY2tkcm9wQ2xhc3MmJnRoaXMuX3RvZ2dsZUNsYXNzZXModGhpcy5fYmFja2Ryb3BFbGVtZW50LHRoaXMuX2NvbmZpZy5iYWNrZHJvcENsYXNzLCEwKSx0aGlzLl9ob3N0LnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMuX2JhY2tkcm9wRWxlbWVudCx0aGlzLl9ob3N0KSx0aGlzLl9iYWNrZHJvcEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2JhY2tkcm9wQ2xpY2tIYW5kbGVyKSwidW5kZWZpbmVkIiE9dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT90aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuX2JhY2tkcm9wRWxlbWVudCYmdGhpcy5fYmFja2Ryb3BFbGVtZW50LmNsYXNzTGlzdC5hZGQodCl9KSl9KSk6dGhpcy5fYmFja2Ryb3BFbGVtZW50LmNsYXNzTGlzdC5hZGQodCl9X3VwZGF0ZVN0YWNraW5nT3JkZXIoKXt0aGlzLl9ob3N0Lm5leHRTaWJsaW5nJiZ0aGlzLl9ob3N0LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcy5faG9zdCl9ZGV0YWNoQmFja2Ryb3AoKXtsZXQgdCxlPXRoaXMuX2JhY2tkcm9wRWxlbWVudDtpZighZSlyZXR1cm47bGV0IG49KCk9PntlJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fYmFja2Ryb3BDbGlja0hhbmRsZXIpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsbiksZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSkpLHRoaXMuX2JhY2tkcm9wRWxlbWVudD09ZSYmKHRoaXMuX2JhY2tkcm9wRWxlbWVudD1udWxsKSx0aGlzLl9jb25maWcuYmFja2Ryb3BDbGFzcyYmdGhpcy5fdG9nZ2xlQ2xhc3NlcyhlLHRoaXMuX2NvbmZpZy5iYWNrZHJvcENsYXNzLCExKSxjbGVhclRpbWVvdXQodCl9O2UuY2xhc3NMaXN0LnJlbW92ZSgiY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyIpLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntlLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLG4pfSkpLGUuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsdD10aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5zZXRUaW1lb3V0KG4sNTAwKSkpfV90b2dnbGVDbGFzc2VzKHQsZSxuKXtjb25zdCBvPXQuY2xhc3NMaXN0O016KGUpLmZvckVhY2goKHQ9Pnt0JiYobj9vLmFkZCh0KTpvLnJlbW92ZSh0KSl9KSl9X2RldGFjaENvbnRlbnRXaGVuU3RhYmxlKCl7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e2NvbnN0IHQ9dGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoSWUocmUodGhpcy5fYXR0YWNobWVudHMsdGhpcy5fZGV0YWNobWVudHMpKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3BhbmUmJnRoaXMuX2hvc3QmJjAhPT10aGlzLl9wYW5lLmNoaWxkcmVuLmxlbmd0aHx8KHRoaXMuX3BhbmUmJnRoaXMuX2NvbmZpZy5wYW5lbENsYXNzJiZ0aGlzLl90b2dnbGVDbGFzc2VzKHRoaXMuX3BhbmUsdGhpcy5fY29uZmlnLnBhbmVsQ2xhc3MsITEpLHRoaXMuX2hvc3QmJnRoaXMuX2hvc3QucGFyZW50RWxlbWVudCYmKHRoaXMuX3ByZXZpb3VzSG9zdFBhcmVudD10aGlzLl9ob3N0LnBhcmVudEVsZW1lbnQsdGhpcy5fcHJldmlvdXNIb3N0UGFyZW50LnJlbW92ZUNoaWxkKHRoaXMuX2hvc3QpKSx0LnVuc3Vic2NyaWJlKCkpfSkpfSkpfV9kaXNwb3NlU2Nyb2xsU3RyYXRlZ3koKXtjb25zdCB0PXRoaXMuX3Njcm9sbFN0cmF0ZWd5O3QmJih0LmRpc2FibGUoKSx0LmRldGFjaCYmdC5kZXRhY2goKSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCB0TD0iY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCIsZUw9LyhbQS1aYS16JV0rKSQvO2NsYXNzIG5Me2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7dGhpcy5fdmlld3BvcnRSdWxlcj1lLHRoaXMuX2RvY3VtZW50PW4sdGhpcy5fcGxhdGZvcm09byx0aGlzLl9vdmVybGF5Q29udGFpbmVyPWksdGhpcy5fbGFzdEJvdW5kaW5nQm94U2l6ZT17d2lkdGg6MCxoZWlnaHQ6MH0sdGhpcy5faXNQdXNoZWQ9ITEsdGhpcy5fY2FuUHVzaD0hMCx0aGlzLl9ncm93QWZ0ZXJPcGVuPSExLHRoaXMuX2hhc0ZsZXhpYmxlRGltZW5zaW9ucz0hMCx0aGlzLl9wb3NpdGlvbkxvY2tlZD0hMSx0aGlzLl92aWV3cG9ydE1hcmdpbj0wLHRoaXMuX3Njcm9sbGFibGVzPVtdLHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9ucz1bXSx0aGlzLl9wb3NpdGlvbkNoYW5nZXM9bmV3IEksdGhpcy5fcmVzaXplU3Vic2NyaXB0aW9uPW0uRU1QVFksdGhpcy5fb2Zmc2V0WD0wLHRoaXMuX29mZnNldFk9MCx0aGlzLl9hcHBsaWVkUGFuZWxDbGFzc2VzPVtdLHRoaXMucG9zaXRpb25DaGFuZ2VzPXRoaXMuX3Bvc2l0aW9uQ2hhbmdlcyx0aGlzLnNldE9yaWdpbih0KX1nZXQgcG9zaXRpb25zKCl7cmV0dXJuIHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9uc31hdHRhY2godCl7aWYodGhpcy5fb3ZlcmxheVJlZiYmdCE9PXRoaXMuX292ZXJsYXlSZWYmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiVGhpcyBwb3NpdGlvbiBzdHJhdGVneSBpcyBhbHJlYWR5IGF0dGFjaGVkIHRvIGFuIG92ZXJsYXkiKTt0aGlzLl92YWxpZGF0ZVBvc2l0aW9ucygpLHQuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCh0TCksdGhpcy5fb3ZlcmxheVJlZj10LHRoaXMuX2JvdW5kaW5nQm94PXQuaG9zdEVsZW1lbnQsdGhpcy5fcGFuZT10Lm92ZXJsYXlFbGVtZW50LHRoaXMuX2lzRGlzcG9zZWQ9ITEsdGhpcy5faXNJbml0aWFsUmVuZGVyPSEwLHRoaXMuX2xhc3RQb3NpdGlvbj1udWxsLHRoaXMuX3Jlc2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3Jlc2l6ZVN1YnNjcmlwdGlvbj10aGlzLl92aWV3cG9ydFJ1bGVyLmNoYW5nZSgpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9pc0luaXRpYWxSZW5kZXI9ITAsdGhpcy5hcHBseSgpfSkpfWFwcGx5KCl7aWYodGhpcy5faXNEaXNwb3NlZHx8IXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlcilyZXR1cm47aWYoIXRoaXMuX2lzSW5pdGlhbFJlbmRlciYmdGhpcy5fcG9zaXRpb25Mb2NrZWQmJnRoaXMuX2xhc3RQb3NpdGlvbilyZXR1cm4gdm9pZCB0aGlzLnJlYXBwbHlMYXN0UG9zaXRpb24oKTt0aGlzLl9jbGVhclBhbmVsQ2xhc3NlcygpLHRoaXMuX3Jlc2V0T3ZlcmxheUVsZW1lbnRTdHlsZXMoKSx0aGlzLl9yZXNldEJvdW5kaW5nQm94U3R5bGVzKCksdGhpcy5fdmlld3BvcnRSZWN0PXRoaXMuX2dldE5hcnJvd2VkVmlld3BvcnRSZWN0KCksdGhpcy5fb3JpZ2luUmVjdD10aGlzLl9nZXRPcmlnaW5SZWN0KCksdGhpcy5fb3ZlcmxheVJlY3Q9dGhpcy5fcGFuZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjb25zdCB0PXRoaXMuX29yaWdpblJlY3QsZT10aGlzLl9vdmVybGF5UmVjdCxuPXRoaXMuX3ZpZXdwb3J0UmVjdCxvPVtdO2xldCBpO2ZvcihsZXQgYSBvZiB0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnMpe2xldCByPXRoaXMuX2dldE9yaWdpblBvaW50KHQsYSkscz10aGlzLl9nZXRPdmVybGF5UG9pbnQocixlLGEpLGw9dGhpcy5fZ2V0T3ZlcmxheUZpdChzLGUsbixhKTtpZihsLmlzQ29tcGxldGVseVdpdGhpblZpZXdwb3J0KXJldHVybiB0aGlzLl9pc1B1c2hlZD0hMSx2b2lkIHRoaXMuX2FwcGx5UG9zaXRpb24oYSxyKTt0aGlzLl9jYW5GaXRXaXRoRmxleGlibGVEaW1lbnNpb25zKGwscyxuKT9vLnB1c2goe3Bvc2l0aW9uOmEsb3JpZ2luOnIsb3ZlcmxheVJlY3Q6ZSxib3VuZGluZ0JveFJlY3Q6dGhpcy5fY2FsY3VsYXRlQm91bmRpbmdCb3hSZWN0KHIsYSl9KTooIWl8fGkub3ZlcmxheUZpdC52aXNpYmxlQXJlYTxsLnZpc2libGVBcmVhKSYmKGk9e292ZXJsYXlGaXQ6bCxvdmVybGF5UG9pbnQ6cyxvcmlnaW5Qb2ludDpyLHBvc2l0aW9uOmEsb3ZlcmxheVJlY3Q6ZX0pfWlmKG8ubGVuZ3RoKXtsZXQgdD1udWxsLGU9LTE7Zm9yKGNvbnN0IG4gb2Ygbyl7Y29uc3Qgbz1uLmJvdW5kaW5nQm94UmVjdC53aWR0aCpuLmJvdW5kaW5nQm94UmVjdC5oZWlnaHQqKG4ucG9zaXRpb24ud2VpZ2h0fHwxKTtvPmUmJihlPW8sdD1uKX1yZXR1cm4gdGhpcy5faXNQdXNoZWQ9ITEsdm9pZCB0aGlzLl9hcHBseVBvc2l0aW9uKHQucG9zaXRpb24sdC5vcmlnaW4pfWlmKHRoaXMuX2NhblB1c2gpcmV0dXJuIHRoaXMuX2lzUHVzaGVkPSEwLHZvaWQgdGhpcy5fYXBwbHlQb3NpdGlvbihpLnBvc2l0aW9uLGkub3JpZ2luUG9pbnQpO3RoaXMuX2FwcGx5UG9zaXRpb24oaS5wb3NpdGlvbixpLm9yaWdpblBvaW50KX1kZXRhY2goKXt0aGlzLl9jbGVhclBhbmVsQ2xhc3NlcygpLHRoaXMuX2xhc3RQb3NpdGlvbj1udWxsLHRoaXMuX3ByZXZpb3VzUHVzaEFtb3VudD1udWxsLHRoaXMuX3Jlc2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfWRpc3Bvc2UoKXt0aGlzLl9pc0Rpc3Bvc2VkfHwodGhpcy5fYm91bmRpbmdCb3gmJm9MKHRoaXMuX2JvdW5kaW5nQm94LnN0eWxlLHt0b3A6IiIsbGVmdDoiIixyaWdodDoiIixib3R0b206IiIsaGVpZ2h0OiIiLHdpZHRoOiIiLGFsaWduSXRlbXM6IiIsanVzdGlmeUNvbnRlbnQ6IiJ9KSx0aGlzLl9wYW5lJiZ0aGlzLl9yZXNldE92ZXJsYXlFbGVtZW50U3R5bGVzKCksdGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fb3ZlcmxheVJlZi5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKHRMKSx0aGlzLmRldGFjaCgpLHRoaXMuX3Bvc2l0aW9uQ2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuX292ZXJsYXlSZWY9dGhpcy5fYm91bmRpbmdCb3g9bnVsbCx0aGlzLl9pc0Rpc3Bvc2VkPSEwKX1yZWFwcGx5TGFzdFBvc2l0aW9uKCl7aWYoIXRoaXMuX2lzRGlzcG9zZWQmJighdGhpcy5fcGxhdGZvcm18fHRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikpe3RoaXMuX29yaWdpblJlY3Q9dGhpcy5fZ2V0T3JpZ2luUmVjdCgpLHRoaXMuX292ZXJsYXlSZWN0PXRoaXMuX3BhbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5fdmlld3BvcnRSZWN0PXRoaXMuX2dldE5hcnJvd2VkVmlld3BvcnRSZWN0KCk7Y29uc3QgdD10aGlzLl9sYXN0UG9zaXRpb258fHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9uc1swXSxlPXRoaXMuX2dldE9yaWdpblBvaW50KHRoaXMuX29yaWdpblJlY3QsdCk7dGhpcy5fYXBwbHlQb3NpdGlvbih0LGUpfX13aXRoU2Nyb2xsYWJsZUNvbnRhaW5lcnModCl7cmV0dXJuIHRoaXMuX3Njcm9sbGFibGVzPXQsdGhpc313aXRoUG9zaXRpb25zKHQpe3JldHVybiB0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnM9dCwtMT09PXQuaW5kZXhPZih0aGlzLl9sYXN0UG9zaXRpb24pJiYodGhpcy5fbGFzdFBvc2l0aW9uPW51bGwpLHRoaXMuX3ZhbGlkYXRlUG9zaXRpb25zKCksdGhpc313aXRoVmlld3BvcnRNYXJnaW4odCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0TWFyZ2luPXQsdGhpc313aXRoRmxleGlibGVEaW1lbnNpb25zKHQ9ITApe3JldHVybiB0aGlzLl9oYXNGbGV4aWJsZURpbWVuc2lvbnM9dCx0aGlzfXdpdGhHcm93QWZ0ZXJPcGVuKHQ9ITApe3JldHVybiB0aGlzLl9ncm93QWZ0ZXJPcGVuPXQsdGhpc313aXRoUHVzaCh0PSEwKXtyZXR1cm4gdGhpcy5fY2FuUHVzaD10LHRoaXN9d2l0aExvY2tlZFBvc2l0aW9uKHQ9ITApe3JldHVybiB0aGlzLl9wb3NpdGlvbkxvY2tlZD10LHRoaXN9c2V0T3JpZ2luKHQpe3JldHVybiB0aGlzLl9vcmlnaW49dCx0aGlzfXdpdGhEZWZhdWx0T2Zmc2V0WCh0KXtyZXR1cm4gdGhpcy5fb2Zmc2V0WD10LHRoaXN9d2l0aERlZmF1bHRPZmZzZXRZKHQpe3JldHVybiB0aGlzLl9vZmZzZXRZPXQsdGhpc313aXRoVHJhbnNmb3JtT3JpZ2luT24odCl7cmV0dXJuIHRoaXMuX3RyYW5zZm9ybU9yaWdpblNlbGVjdG9yPXQsdGhpc31fZ2V0T3JpZ2luUG9pbnQodCxlKXtsZXQgbixvO2lmKCJjZW50ZXIiPT1lLm9yaWdpblgpbj10LmxlZnQrdC53aWR0aC8yO2Vsc2V7Y29uc3Qgbz10aGlzLl9pc1J0bCgpP3QucmlnaHQ6dC5sZWZ0LGk9dGhpcy5faXNSdGwoKT90LmxlZnQ6dC5yaWdodDtuPSJzdGFydCI9PWUub3JpZ2luWD9vOml9cmV0dXJuIG89ImNlbnRlciI9PWUub3JpZ2luWT90LnRvcCt0LmhlaWdodC8yOiJ0b3AiPT1lLm9yaWdpblk/dC50b3A6dC5ib3R0b20se3g6bix5Om99fV9nZXRPdmVybGF5UG9pbnQodCxlLG4pe2xldCBvLGk7cmV0dXJuIG89ImNlbnRlciI9PW4ub3ZlcmxheVg/LWUud2lkdGgvMjoic3RhcnQiPT09bi5vdmVybGF5WD90aGlzLl9pc1J0bCgpPy1lLndpZHRoOjA6dGhpcy5faXNSdGwoKT8wOi1lLndpZHRoLGk9ImNlbnRlciI9PW4ub3ZlcmxheVk/LWUuaGVpZ2h0LzI6InRvcCI9PW4ub3ZlcmxheVk/MDotZS5oZWlnaHQse3g6dC54K28seTp0LnkraX19X2dldE92ZXJsYXlGaXQodCxlLG4sbyl7Y29uc3QgaT1hTChlKTtsZXR7eDphLHk6cn09dCxzPXRoaXMuX2dldE9mZnNldChvLCJ4IiksbD10aGlzLl9nZXRPZmZzZXQobywieSIpO3MmJihhKz1zKSxsJiYocis9bCk7bGV0IGM9MC1yLGQ9citpLmhlaWdodC1uLmhlaWdodCxwPXRoaXMuX3N1YnRyYWN0T3ZlcmZsb3dzKGkud2lkdGgsMC1hLGEraS53aWR0aC1uLndpZHRoKSxtPXRoaXMuX3N1YnRyYWN0T3ZlcmZsb3dzKGkuaGVpZ2h0LGMsZCksdT1wKm07cmV0dXJue3Zpc2libGVBcmVhOnUsaXNDb21wbGV0ZWx5V2l0aGluVmlld3BvcnQ6aS53aWR0aCppLmhlaWdodD09PXUsZml0c0luVmlld3BvcnRWZXJ0aWNhbGx5Om09PT1pLmhlaWdodCxmaXRzSW5WaWV3cG9ydEhvcml6b250YWxseTpwPT1pLndpZHRofX1fY2FuRml0V2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0LGUsbil7aWYodGhpcy5faGFzRmxleGlibGVEaW1lbnNpb25zKXtjb25zdCBvPW4uYm90dG9tLWUueSxpPW4ucmlnaHQtZS54LGE9aUwodGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5taW5IZWlnaHQpLHI9aUwodGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5taW5XaWR0aCkscz10LmZpdHNJblZpZXdwb3J0SG9yaXpvbnRhbGx5fHxudWxsIT1yJiZyPD1pO3JldHVybih0LmZpdHNJblZpZXdwb3J0VmVydGljYWxseXx8bnVsbCE9YSYmYTw9bykmJnN9cmV0dXJuITF9X3B1c2hPdmVybGF5T25TY3JlZW4odCxlLG4pe2lmKHRoaXMuX3ByZXZpb3VzUHVzaEFtb3VudCYmdGhpcy5fcG9zaXRpb25Mb2NrZWQpcmV0dXJue3g6dC54K3RoaXMuX3ByZXZpb3VzUHVzaEFtb3VudC54LHk6dC55K3RoaXMuX3ByZXZpb3VzUHVzaEFtb3VudC55fTtjb25zdCBvPWFMKGUpLGk9dGhpcy5fdmlld3BvcnRSZWN0LGE9TWF0aC5tYXgodC54K28ud2lkdGgtaS53aWR0aCwwKSxyPU1hdGgubWF4KHQueStvLmhlaWdodC1pLmhlaWdodCwwKSxzPU1hdGgubWF4KGkudG9wLW4udG9wLXQueSwwKSxsPU1hdGgubWF4KGkubGVmdC1uLmxlZnQtdC54LDApO2xldCBjPTAsZD0wO3JldHVybiBjPW8ud2lkdGg8PWkud2lkdGg/bHx8LWE6dC54PHRoaXMuX3ZpZXdwb3J0TWFyZ2luP2kubGVmdC1uLmxlZnQtdC54OjAsZD1vLmhlaWdodDw9aS5oZWlnaHQ/c3x8LXI6dC55PHRoaXMuX3ZpZXdwb3J0TWFyZ2luP2kudG9wLW4udG9wLXQueTowLHRoaXMuX3ByZXZpb3VzUHVzaEFtb3VudD17eDpjLHk6ZH0se3g6dC54K2MseTp0LnkrZH19X2FwcGx5UG9zaXRpb24odCxlKXtpZih0aGlzLl9zZXRUcmFuc2Zvcm1PcmlnaW4odCksdGhpcy5fc2V0T3ZlcmxheUVsZW1lbnRTdHlsZXMoZSx0KSx0aGlzLl9zZXRCb3VuZGluZ0JveFN0eWxlcyhlLHQpLHQucGFuZWxDbGFzcyYmdGhpcy5fYWRkUGFuZWxDbGFzc2VzKHQucGFuZWxDbGFzcyksdGhpcy5fbGFzdFBvc2l0aW9uPXQsdGhpcy5fcG9zaXRpb25DaGFuZ2VzLm9ic2VydmVycy5sZW5ndGgpe2NvbnN0IGU9dGhpcy5fZ2V0U2Nyb2xsVmlzaWJpbGl0eSgpLG49bmV3IEdGKHQsZSk7dGhpcy5fcG9zaXRpb25DaGFuZ2VzLm5leHQobil9dGhpcy5faXNJbml0aWFsUmVuZGVyPSExfV9zZXRUcmFuc2Zvcm1PcmlnaW4odCl7aWYoIXRoaXMuX3RyYW5zZm9ybU9yaWdpblNlbGVjdG9yKXJldHVybjtjb25zdCBlPXRoaXMuX2JvdW5kaW5nQm94LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5fdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3IpO2xldCBuLG89dC5vdmVybGF5WTtuPSJjZW50ZXIiPT09dC5vdmVybGF5WD8iY2VudGVyIjp0aGlzLl9pc1J0bCgpPyJzdGFydCI9PT10Lm92ZXJsYXlYPyJyaWdodCI6ImxlZnQiOiJzdGFydCI9PT10Lm92ZXJsYXlYPyJsZWZ0IjoicmlnaHQiO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0uc3R5bGUudHJhbnNmb3JtT3JpZ2luPWAke259ICR7b31gfV9jYWxjdWxhdGVCb3VuZGluZ0JveFJlY3QodCxlKXtjb25zdCBuPXRoaXMuX3ZpZXdwb3J0UmVjdCxvPXRoaXMuX2lzUnRsKCk7bGV0IGksYSxyLHMsbCxjO2lmKCJ0b3AiPT09ZS5vdmVybGF5WSlhPXQueSxpPW4uaGVpZ2h0LWErdGhpcy5fdmlld3BvcnRNYXJnaW47ZWxzZSBpZigiYm90dG9tIj09PWUub3ZlcmxheVkpcj1uLmhlaWdodC10LnkrMip0aGlzLl92aWV3cG9ydE1hcmdpbixpPW4uaGVpZ2h0LXIrdGhpcy5fdmlld3BvcnRNYXJnaW47ZWxzZXtjb25zdCBlPU1hdGgubWluKG4uYm90dG9tLXQueStuLnRvcCx0LnkpLG89dGhpcy5fbGFzdEJvdW5kaW5nQm94U2l6ZS5oZWlnaHQ7aT0yKmUsYT10LnktZSxpPm8mJiF0aGlzLl9pc0luaXRpYWxSZW5kZXImJiF0aGlzLl9ncm93QWZ0ZXJPcGVuJiYoYT10Lnktby8yKX1pZigiZW5kIj09PWUub3ZlcmxheVgmJiFvfHwic3RhcnQiPT09ZS5vdmVybGF5WCYmbyljPW4ud2lkdGgtdC54K3RoaXMuX3ZpZXdwb3J0TWFyZ2luLHM9dC54LXRoaXMuX3ZpZXdwb3J0TWFyZ2luO2Vsc2UgaWYoInN0YXJ0Ij09PWUub3ZlcmxheVgmJiFvfHwiZW5kIj09PWUub3ZlcmxheVgmJm8pbD10Lngscz1uLnJpZ2h0LXQueDtlbHNle2NvbnN0IGU9TWF0aC5taW4obi5yaWdodC10Lngrbi5sZWZ0LHQueCksbz10aGlzLl9sYXN0Qm91bmRpbmdCb3hTaXplLndpZHRoO3M9MiplLGw9dC54LWUscz5vJiYhdGhpcy5faXNJbml0aWFsUmVuZGVyJiYhdGhpcy5fZ3Jvd0FmdGVyT3BlbiYmKGw9dC54LW8vMil9cmV0dXJue3RvcDphLGxlZnQ6bCxib3R0b206cixyaWdodDpjLHdpZHRoOnMsaGVpZ2h0Oml9fV9zZXRCb3VuZGluZ0JveFN0eWxlcyh0LGUpe2NvbnN0IG49dGhpcy5fY2FsY3VsYXRlQm91bmRpbmdCb3hSZWN0KHQsZSk7dGhpcy5faXNJbml0aWFsUmVuZGVyfHx0aGlzLl9ncm93QWZ0ZXJPcGVufHwobi5oZWlnaHQ9TWF0aC5taW4obi5oZWlnaHQsdGhpcy5fbGFzdEJvdW5kaW5nQm94U2l6ZS5oZWlnaHQpLG4ud2lkdGg9TWF0aC5taW4obi53aWR0aCx0aGlzLl9sYXN0Qm91bmRpbmdCb3hTaXplLndpZHRoKSk7Y29uc3Qgbz17fTtpZih0aGlzLl9oYXNFeGFjdFBvc2l0aW9uKCkpby50b3A9by5sZWZ0PSIwIixvLmJvdHRvbT1vLnJpZ2h0PW8ubWF4SGVpZ2h0PW8ubWF4V2lkdGg9IiIsby53aWR0aD1vLmhlaWdodD0iMTAwJSI7ZWxzZXtjb25zdCB0PXRoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCkubWF4SGVpZ2h0LGk9dGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5tYXhXaWR0aDtvLmhlaWdodD12eihuLmhlaWdodCksby50b3A9dnoobi50b3ApLG8uYm90dG9tPXZ6KG4uYm90dG9tKSxvLndpZHRoPXZ6KG4ud2lkdGgpLG8ubGVmdD12eihuLmxlZnQpLG8ucmlnaHQ9dnoobi5yaWdodCksby5hbGlnbkl0ZW1zPSJjZW50ZXIiPT09ZS5vdmVybGF5WD8iY2VudGVyIjoiZW5kIj09PWUub3ZlcmxheVg/ImZsZXgtZW5kIjoiZmxleC1zdGFydCIsby5qdXN0aWZ5Q29udGVudD0iY2VudGVyIj09PWUub3ZlcmxheVk/ImNlbnRlciI6ImJvdHRvbSI9PT1lLm92ZXJsYXlZPyJmbGV4LWVuZCI6ImZsZXgtc3RhcnQiLHQmJihvLm1heEhlaWdodD12eih0KSksaSYmKG8ubWF4V2lkdGg9dnooaSkpfXRoaXMuX2xhc3RCb3VuZGluZ0JveFNpemU9bixvTCh0aGlzLl9ib3VuZGluZ0JveC5zdHlsZSxvKX1fcmVzZXRCb3VuZGluZ0JveFN0eWxlcygpe29MKHRoaXMuX2JvdW5kaW5nQm94LnN0eWxlLHt0b3A6IjAiLGxlZnQ6IjAiLHJpZ2h0OiIwIixib3R0b206IjAiLGhlaWdodDoiIix3aWR0aDoiIixhbGlnbkl0ZW1zOiIiLGp1c3RpZnlDb250ZW50OiIifSl9X3Jlc2V0T3ZlcmxheUVsZW1lbnRTdHlsZXMoKXtvTCh0aGlzLl9wYW5lLnN0eWxlLHt0b3A6IiIsbGVmdDoiIixib3R0b206IiIscmlnaHQ6IiIscG9zaXRpb246IiIsdHJhbnNmb3JtOiIifSl9X3NldE92ZXJsYXlFbGVtZW50U3R5bGVzKHQsZSl7Y29uc3Qgbj17fSxvPXRoaXMuX2hhc0V4YWN0UG9zaXRpb24oKSxpPXRoaXMuX2hhc0ZsZXhpYmxlRGltZW5zaW9ucyxhPXRoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCk7aWYobyl7Y29uc3Qgbz10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtvTChuLHRoaXMuX2dldEV4YWN0T3ZlcmxheVkoZSx0LG8pKSxvTChuLHRoaXMuX2dldEV4YWN0T3ZlcmxheVgoZSx0LG8pKX1lbHNlIG4ucG9zaXRpb249InN0YXRpYyI7bGV0IHI9IiIscz10aGlzLl9nZXRPZmZzZXQoZSwieCIpLGw9dGhpcy5fZ2V0T2Zmc2V0KGUsInkiKTtzJiYocis9YHRyYW5zbGF0ZVgoJHtzfXB4KSBgKSxsJiYocis9YHRyYW5zbGF0ZVkoJHtsfXB4KWApLG4udHJhbnNmb3JtPXIudHJpbSgpLGEubWF4SGVpZ2h0JiYobz9uLm1heEhlaWdodD12eihhLm1heEhlaWdodCk6aSYmKG4ubWF4SGVpZ2h0PSIiKSksYS5tYXhXaWR0aCYmKG8/bi5tYXhXaWR0aD12eihhLm1heFdpZHRoKTppJiYobi5tYXhXaWR0aD0iIikpLG9MKHRoaXMuX3BhbmUuc3R5bGUsbil9X2dldEV4YWN0T3ZlcmxheVkodCxlLG4pe2xldCBvPXt0b3A6IiIsYm90dG9tOiIifSxpPXRoaXMuX2dldE92ZXJsYXlQb2ludChlLHRoaXMuX292ZXJsYXlSZWN0LHQpO3RoaXMuX2lzUHVzaGVkJiYoaT10aGlzLl9wdXNoT3ZlcmxheU9uU2NyZWVuKGksdGhpcy5fb3ZlcmxheVJlY3QsbikpO2xldCBhPXRoaXMuX292ZXJsYXlDb250YWluZXIuZ2V0Q29udGFpbmVyRWxlbWVudCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtyZXR1cm4gaS55LT1hLCJib3R0b20iPT09dC5vdmVybGF5WT9vLmJvdHRvbT10aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LShpLnkrdGhpcy5fb3ZlcmxheVJlY3QuaGVpZ2h0KSsicHgiOm8udG9wPXZ6KGkueSksb31fZ2V0RXhhY3RPdmVybGF5WCh0LGUsbil7bGV0IG8saT17bGVmdDoiIixyaWdodDoiIn0sYT10aGlzLl9nZXRPdmVybGF5UG9pbnQoZSx0aGlzLl9vdmVybGF5UmVjdCx0KTtyZXR1cm4gdGhpcy5faXNQdXNoZWQmJihhPXRoaXMuX3B1c2hPdmVybGF5T25TY3JlZW4oYSx0aGlzLl9vdmVybGF5UmVjdCxuKSksbz10aGlzLl9pc1J0bCgpPyJlbmQiPT09dC5vdmVybGF5WD8ibGVmdCI6InJpZ2h0IjoiZW5kIj09PXQub3ZlcmxheVg/InJpZ2h0IjoibGVmdCIsInJpZ2h0Ij09PW8/aS5yaWdodD10aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgtKGEueCt0aGlzLl9vdmVybGF5UmVjdC53aWR0aCkrInB4IjppLmxlZnQ9dnooYS54KSxpfV9nZXRTY3JvbGxWaXNpYmlsaXR5KCl7Y29uc3QgdD10aGlzLl9nZXRPcmlnaW5SZWN0KCksZT10aGlzLl9wYW5lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49dGhpcy5fc2Nyb2xsYWJsZXMubWFwKCh0PT50LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSk7cmV0dXJue2lzT3JpZ2luQ2xpcHBlZDpGRih0LG4pLGlzT3JpZ2luT3V0c2lkZVZpZXc6SEYodCxuKSxpc092ZXJsYXlDbGlwcGVkOkZGKGUsbiksaXNPdmVybGF5T3V0c2lkZVZpZXc6SEYoZSxuKX19X3N1YnRyYWN0T3ZlcmZsb3dzKHQsLi4uZSl7cmV0dXJuIGUucmVkdWNlKCgodCxlKT0+dC1NYXRoLm1heChlLDApKSx0KX1fZ2V0TmFycm93ZWRWaWV3cG9ydFJlY3QoKXtjb25zdCB0PXRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCxlPXRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsbj10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtyZXR1cm57dG9wOm4udG9wK3RoaXMuX3ZpZXdwb3J0TWFyZ2luLGxlZnQ6bi5sZWZ0K3RoaXMuX3ZpZXdwb3J0TWFyZ2luLHJpZ2h0Om4ubGVmdCt0LXRoaXMuX3ZpZXdwb3J0TWFyZ2luLGJvdHRvbTpuLnRvcCtlLXRoaXMuX3ZpZXdwb3J0TWFyZ2luLHdpZHRoOnQtMip0aGlzLl92aWV3cG9ydE1hcmdpbixoZWlnaHQ6ZS0yKnRoaXMuX3ZpZXdwb3J0TWFyZ2lufX1faXNSdGwoKXtyZXR1cm4icnRsIj09PXRoaXMuX292ZXJsYXlSZWYuZ2V0RGlyZWN0aW9uKCl9X2hhc0V4YWN0UG9zaXRpb24oKXtyZXR1cm4hdGhpcy5faGFzRmxleGlibGVEaW1lbnNpb25zfHx0aGlzLl9pc1B1c2hlZH1fZ2V0T2Zmc2V0KHQsZSl7cmV0dXJuIngiPT09ZT9udWxsPT10Lm9mZnNldFg/dGhpcy5fb2Zmc2V0WDp0Lm9mZnNldFg6bnVsbD09dC5vZmZzZXRZP3RoaXMuX29mZnNldFk6dC5vZmZzZXRZfV92YWxpZGF0ZVBvc2l0aW9ucygpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpe2lmKCF0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnMubGVuZ3RoKXRocm93IEVycm9yKCJGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k6IEF0IGxlYXN0IG9uZSBwb3NpdGlvbiBpcyByZXF1aXJlZC4iKTt0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnMuZm9yRWFjaCgodD0+e1lGKCJvcmlnaW5YIix0Lm9yaWdpblgpLFdGKCJvcmlnaW5ZIix0Lm9yaWdpblkpLFlGKCJvdmVybGF5WCIsdC5vdmVybGF5WCksV0YoIm92ZXJsYXlZIix0Lm92ZXJsYXlZKX0pKX19X2FkZFBhbmVsQ2xhc3Nlcyh0KXt0aGlzLl9wYW5lJiZNeih0KS5mb3JFYWNoKCh0PT57IiIhPT10JiYtMT09PXRoaXMuX2FwcGxpZWRQYW5lbENsYXNzZXMuaW5kZXhPZih0KSYmKHRoaXMuX2FwcGxpZWRQYW5lbENsYXNzZXMucHVzaCh0KSx0aGlzLl9wYW5lLmNsYXNzTGlzdC5hZGQodCkpfSkpfV9jbGVhclBhbmVsQ2xhc3Nlcygpe3RoaXMuX3BhbmUmJih0aGlzLl9hcHBsaWVkUGFuZWxDbGFzc2VzLmZvckVhY2goKHQ9Pnt0aGlzLl9wYW5lLmNsYXNzTGlzdC5yZW1vdmUodCl9KSksdGhpcy5fYXBwbGllZFBhbmVsQ2xhc3Nlcz1bXSl9X2dldE9yaWdpblJlY3QoKXtjb25zdCB0PXRoaXMuX29yaWdpbjtpZih0IGluc3RhbmNlb2YgaGcpcmV0dXJuIHQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih0IGluc3RhbmNlb2YgRWxlbWVudClyZXR1cm4gdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjb25zdCBlPXQud2lkdGh8fDAsbj10LmhlaWdodHx8MDtyZXR1cm57dG9wOnQueSxib3R0b206dC55K24sbGVmdDp0LngscmlnaHQ6dC54K2UsaGVpZ2h0Om4sd2lkdGg6ZX19fWZ1bmN0aW9uIG9MKHQsZSl7Zm9yKGxldCBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHR9ZnVuY3Rpb24gaUwodCl7aWYoIm51bWJlciIhPXR5cGVvZiB0JiZudWxsIT10KXtjb25zdFtlLG5dPXQuc3BsaXQoZUwpO3JldHVybiBuJiYicHgiIT09bj9udWxsOnBhcnNlRmxvYXQoZSl9cmV0dXJuIHR8fG51bGx9ZnVuY3Rpb24gYUwodCl7cmV0dXJue3RvcDpNYXRoLmZsb29yKHQudG9wKSxyaWdodDpNYXRoLmZsb29yKHQucmlnaHQpLGJvdHRvbTpNYXRoLmZsb29yKHQuYm90dG9tKSxsZWZ0Ok1hdGguZmxvb3IodC5sZWZ0KSx3aWR0aDpNYXRoLmZsb29yKHQud2lkdGgpLGhlaWdodDpNYXRoLmZsb29yKHQuaGVpZ2h0KX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHJMe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3RoaXMuX3ByZWZlcnJlZFBvc2l0aW9ucz1bXSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5PW5ldyBuTChuLG8saSxhLHIpLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoITEpLndpdGhQdXNoKCExKS53aXRoVmlld3BvcnRNYXJnaW4oMCksdGhpcy53aXRoRmFsbGJhY2tQb3NpdGlvbih0LGUpLHRoaXMub25Qb3NpdGlvbkNoYW5nZT10aGlzLl9wb3NpdGlvblN0cmF0ZWd5LnBvc2l0aW9uQ2hhbmdlc31nZXQgcG9zaXRpb25zKCl7cmV0dXJuIHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9uc31hdHRhY2godCl7dGhpcy5fb3ZlcmxheVJlZj10LHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuYXR0YWNoKHQpLHRoaXMuX2RpcmVjdGlvbiYmKHQuc2V0RGlyZWN0aW9uKHRoaXMuX2RpcmVjdGlvbiksdGhpcy5fZGlyZWN0aW9uPW51bGwpfWRpc3Bvc2UoKXt0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmRpc3Bvc2UoKX1kZXRhY2goKXt0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmRldGFjaCgpfWFwcGx5KCl7dGhpcy5fcG9zaXRpb25TdHJhdGVneS5hcHBseSgpfXJlY2FsY3VsYXRlTGFzdFBvc2l0aW9uKCl7dGhpcy5fcG9zaXRpb25TdHJhdGVneS5yZWFwcGx5TGFzdFBvc2l0aW9uKCl9d2l0aFNjcm9sbGFibGVDb250YWluZXJzKHQpe3RoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kud2l0aFNjcm9sbGFibGVDb250YWluZXJzKHQpfXdpdGhGYWxsYmFja1Bvc2l0aW9uKHQsZSxuLG8pe2NvbnN0IGk9bmV3IGpGKHQsZSxuLG8pO3JldHVybiB0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnMucHVzaChpKSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LndpdGhQb3NpdGlvbnModGhpcy5fcHJlZmVycmVkUG9zaXRpb25zKSx0aGlzfXdpdGhEaXJlY3Rpb24odCl7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWY/dGhpcy5fb3ZlcmxheVJlZi5zZXREaXJlY3Rpb24odCk6dGhpcy5fZGlyZWN0aW9uPXQsdGhpc313aXRoT2Zmc2V0WCh0KXtyZXR1cm4gdGhpcy5fcG9zaXRpb25TdHJhdGVneS53aXRoRGVmYXVsdE9mZnNldFgodCksdGhpc313aXRoT2Zmc2V0WSh0KXtyZXR1cm4gdGhpcy5fcG9zaXRpb25TdHJhdGVneS53aXRoRGVmYXVsdE9mZnNldFkodCksdGhpc313aXRoTG9ja2VkUG9zaXRpb24odCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kud2l0aExvY2tlZFBvc2l0aW9uKHQpLHRoaXN9d2l0aFBvc2l0aW9ucyh0KXtyZXR1cm4gdGhpcy5fcHJlZmVycmVkUG9zaXRpb25zPXQuc2xpY2UoKSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LndpdGhQb3NpdGlvbnModGhpcy5fcHJlZmVycmVkUG9zaXRpb25zKSx0aGlzfXNldE9yaWdpbih0KXtyZXR1cm4gdGhpcy5fcG9zaXRpb25TdHJhdGVneS5zZXRPcmlnaW4odCksdGhpc319Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IHNMPSJjZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciI7Y2xhc3MgbEx7Y29uc3RydWN0b3IoKXt0aGlzLl9jc3NQb3NpdGlvbj0ic3RhdGljIix0aGlzLl90b3BPZmZzZXQ9IiIsdGhpcy5fYm90dG9tT2Zmc2V0PSIiLHRoaXMuX2xlZnRPZmZzZXQ9IiIsdGhpcy5fcmlnaHRPZmZzZXQ9IiIsdGhpcy5fYWxpZ25JdGVtcz0iIix0aGlzLl9qdXN0aWZ5Q29udGVudD0iIix0aGlzLl93aWR0aD0iIix0aGlzLl9oZWlnaHQ9IiJ9YXR0YWNoKHQpe2NvbnN0IGU9dC5nZXRDb25maWcoKTt0aGlzLl9vdmVybGF5UmVmPXQsdGhpcy5fd2lkdGgmJiFlLndpZHRoJiZ0LnVwZGF0ZVNpemUoe3dpZHRoOnRoaXMuX3dpZHRofSksdGhpcy5faGVpZ2h0JiYhZS5oZWlnaHQmJnQudXBkYXRlU2l6ZSh7aGVpZ2h0OnRoaXMuX2hlaWdodH0pLHQuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChzTCksdGhpcy5faXNEaXNwb3NlZD0hMX10b3AodD0iIil7cmV0dXJuIHRoaXMuX2JvdHRvbU9mZnNldD0iIix0aGlzLl90b3BPZmZzZXQ9dCx0aGlzLl9hbGlnbkl0ZW1zPSJmbGV4LXN0YXJ0Iix0aGlzfWxlZnQodD0iIil7cmV0dXJuIHRoaXMuX3JpZ2h0T2Zmc2V0PSIiLHRoaXMuX2xlZnRPZmZzZXQ9dCx0aGlzLl9qdXN0aWZ5Q29udGVudD0iZmxleC1zdGFydCIsdGhpc31ib3R0b20odD0iIil7cmV0dXJuIHRoaXMuX3RvcE9mZnNldD0iIix0aGlzLl9ib3R0b21PZmZzZXQ9dCx0aGlzLl9hbGlnbkl0ZW1zPSJmbGV4LWVuZCIsdGhpc31yaWdodCh0PSIiKXtyZXR1cm4gdGhpcy5fbGVmdE9mZnNldD0iIix0aGlzLl9yaWdodE9mZnNldD10LHRoaXMuX2p1c3RpZnlDb250ZW50PSJmbGV4LWVuZCIsdGhpc313aWR0aCh0PSIiKXtyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZj90aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVNpemUoe3dpZHRoOnR9KTp0aGlzLl93aWR0aD10LHRoaXN9aGVpZ2h0KHQ9IiIpe3JldHVybiB0aGlzLl9vdmVybGF5UmVmP3RoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh7aGVpZ2h0OnR9KTp0aGlzLl9oZWlnaHQ9dCx0aGlzfWNlbnRlckhvcml6b250YWxseSh0PSIiKXtyZXR1cm4gdGhpcy5sZWZ0KHQpLHRoaXMuX2p1c3RpZnlDb250ZW50PSJjZW50ZXIiLHRoaXN9Y2VudGVyVmVydGljYWxseSh0PSIiKXtyZXR1cm4gdGhpcy50b3AodCksdGhpcy5fYWxpZ25JdGVtcz0iY2VudGVyIix0aGlzfWFwcGx5KCl7aWYoIXRoaXMuX292ZXJsYXlSZWZ8fCF0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5zdHlsZSxlPXRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQuc3R5bGUsbj10aGlzLl9vdmVybGF5UmVmLmdldENvbmZpZygpLHt3aWR0aDpvLGhlaWdodDppLG1heFdpZHRoOmEsbWF4SGVpZ2h0OnJ9PW4scz0hKCIxMDAlIiE9PW8mJiIxMDB2dyIhPT1vfHxhJiYiMTAwJSIhPT1hJiYiMTAwdnciIT09YSksbD0hKCIxMDAlIiE9PWkmJiIxMDB2aCIhPT1pfHxyJiYiMTAwJSIhPT1yJiYiMTAwdmgiIT09cik7dC5wb3NpdGlvbj10aGlzLl9jc3NQb3NpdGlvbix0Lm1hcmdpbkxlZnQ9cz8iMCI6dGhpcy5fbGVmdE9mZnNldCx0Lm1hcmdpblRvcD1sPyIwIjp0aGlzLl90b3BPZmZzZXQsdC5tYXJnaW5Cb3R0b209dGhpcy5fYm90dG9tT2Zmc2V0LHQubWFyZ2luUmlnaHQ9dGhpcy5fcmlnaHRPZmZzZXQscz9lLmp1c3RpZnlDb250ZW50PSJmbGV4LXN0YXJ0IjoiY2VudGVyIj09PXRoaXMuX2p1c3RpZnlDb250ZW50P2UuanVzdGlmeUNvbnRlbnQ9ImNlbnRlciI6InJ0bCI9PT10aGlzLl9vdmVybGF5UmVmLmdldENvbmZpZygpLmRpcmVjdGlvbj8iZmxleC1zdGFydCI9PT10aGlzLl9qdXN0aWZ5Q29udGVudD9lLmp1c3RpZnlDb250ZW50PSJmbGV4LWVuZCI6ImZsZXgtZW5kIj09PXRoaXMuX2p1c3RpZnlDb250ZW50JiYoZS5qdXN0aWZ5Q29udGVudD0iZmxleC1zdGFydCIpOmUuanVzdGlmeUNvbnRlbnQ9dGhpcy5fanVzdGlmeUNvbnRlbnQsZS5hbGlnbkl0ZW1zPWw/ImZsZXgtc3RhcnQiOnRoaXMuX2FsaWduSXRlbXN9ZGlzcG9zZSgpe2lmKHRoaXMuX2lzRGlzcG9zZWR8fCF0aGlzLl9vdmVybGF5UmVmKXJldHVybjtjb25zdCB0PXRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuc3R5bGUsZT10aGlzLl9vdmVybGF5UmVmLmhvc3RFbGVtZW50LG49ZS5zdHlsZTtlLmNsYXNzTGlzdC5yZW1vdmUoc0wpLG4uanVzdGlmeUNvbnRlbnQ9bi5hbGlnbkl0ZW1zPXQubWFyZ2luVG9wPXQubWFyZ2luQm90dG9tPXQubWFyZ2luTGVmdD10Lm1hcmdpblJpZ2h0PXQucG9zaXRpb249IiIsdGhpcy5fb3ZlcmxheVJlZj1udWxsLHRoaXMuX2lzRGlzcG9zZWQ9ITB9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBjTHtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl92aWV3cG9ydFJ1bGVyPXQsdGhpcy5fZG9jdW1lbnQ9ZSx0aGlzLl9wbGF0Zm9ybT1uLHRoaXMuX292ZXJsYXlDb250YWluZXI9b31nbG9iYWwoKXtyZXR1cm4gbmV3IGxMfWNvbm5lY3RlZFRvKHQsZSxuKXtyZXR1cm4gbmV3IHJMKGUsbix0LHRoaXMuX3ZpZXdwb3J0UnVsZXIsdGhpcy5fZG9jdW1lbnQsdGhpcy5fcGxhdGZvcm0sdGhpcy5fb3ZlcmxheUNvbnRhaW5lcil9ZmxleGlibGVDb25uZWN0ZWRUbyh0KXtyZXR1cm4gbmV3IG5MKHQsdGhpcy5fdmlld3BvcnRSdWxlcix0aGlzLl9kb2N1bWVudCx0aGlzLl9wbGF0Zm9ybSx0aGlzLl9vdmVybGF5Q29udGFpbmVyKX19Y0wuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGNMKSh2cih1RiksdnIoWl8pLHZyKHd6KSx2cihRRikpfSxjTC7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgY0wodnIodUYpLHZyKFpfKSx2cih3eiksdnIoUUYpKX0sdG9rZW46Y0wscHJvdmlkZWRJbjoicm9vdCJ9KSxjTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnVGfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fSx7dHlwZTpRRn1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoY0wsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnVGfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fSx7dHlwZTpRRn1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgZEw9MDtjbGFzcyBwTHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjLGQpe3RoaXMuc2Nyb2xsU3RyYXRlZ2llcz10LHRoaXMuX292ZXJsYXlDb250YWluZXI9ZSx0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9bix0aGlzLl9wb3NpdGlvbkJ1aWxkZXI9byx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXI9aSx0aGlzLl9pbmplY3Rvcj1hLHRoaXMuX25nWm9uZT1yLHRoaXMuX2RvY3VtZW50PXMsdGhpcy5fZGlyZWN0aW9uYWxpdHk9bCx0aGlzLl9sb2NhdGlvbj1jLHRoaXMuX291dHNpZGVDbGlja0Rpc3BhdGNoZXI9ZH1jcmVhdGUodCl7Y29uc3QgZT10aGlzLl9jcmVhdGVIb3N0RWxlbWVudCgpLG49dGhpcy5fY3JlYXRlUGFuZUVsZW1lbnQoZSksbz10aGlzLl9jcmVhdGVQb3J0YWxPdXRsZXQobiksaT1uZXcgVkYodCk7cmV0dXJuIGkuZGlyZWN0aW9uPWkuZGlyZWN0aW9ufHx0aGlzLl9kaXJlY3Rpb25hbGl0eS52YWx1ZSxuZXcgJEYobyxlLG4saSx0aGlzLl9uZ1pvbmUsdGhpcy5fa2V5Ym9hcmREaXNwYXRjaGVyLHRoaXMuX2RvY3VtZW50LHRoaXMuX2xvY2F0aW9uLHRoaXMuX291dHNpZGVDbGlja0Rpc3BhdGNoZXIpfXBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9uQnVpbGRlcn1fY3JlYXRlUGFuZUVsZW1lbnQodCl7Y29uc3QgZT10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5pZD0iY2RrLW92ZXJsYXktIitkTCsrLGUuY2xhc3NMaXN0LmFkZCgiY2RrLW92ZXJsYXktcGFuZSIpLHQuYXBwZW5kQ2hpbGQoZSksZX1fY3JlYXRlSG9zdEVsZW1lbnQoKXtjb25zdCB0PXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0aGlzLl9vdmVybGF5Q29udGFpbmVyLmdldENvbnRhaW5lckVsZW1lbnQoKS5hcHBlbmRDaGlsZCh0KSx0fV9jcmVhdGVQb3J0YWxPdXRsZXQodCl7cmV0dXJuIHRoaXMuX2FwcFJlZnx8KHRoaXMuX2FwcFJlZj10aGlzLl9pbmplY3Rvci5nZXQoT18pKSxuZXcgd0YodCx0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsdGhpcy5fYXBwUmVmLHRoaXMuX2luamVjdG9yLHRoaXMuX2RvY3VtZW50KX19cEwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBMKSh2cihCRiksdnIoUUYpLHZyKHVnKSx2cihjTCksdnIoWkYpLHZyKHJwKSx2cihhXyksdnIoWl8pLHZyKEhJKSx2cihsQyksdnIoWEYpKX0scEwuybVwcm92PU1uKHt0b2tlbjpwTCxmYWN0b3J5OnBMLsm1ZmFjfSkscEwuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpCRn0se3R5cGU6UUZ9LHt0eXBlOnVnfSx7dHlwZTpjTH0se3R5cGU6WkZ9LHt0eXBlOnJwfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTpISX0se3R5cGU6bEN9LHt0eXBlOlhGfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwTCxbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QkZ9LHt0eXBlOlFGfSx7dHlwZTp1Z30se3R5cGU6Y0x9LHt0eXBlOlpGfSx7dHlwZTpycH0se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6SEl9LHt0eXBlOmxDfSx7dHlwZTpYRn1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBtTD1be29yaWdpblg6InN0YXJ0IixvcmlnaW5ZOiJib3R0b20iLG92ZXJsYXlYOiJzdGFydCIsb3ZlcmxheVk6InRvcCJ9LHtvcmlnaW5YOiJzdGFydCIsb3JpZ2luWToidG9wIixvdmVybGF5WDoic3RhcnQiLG92ZXJsYXlZOiJib3R0b20ifSx7b3JpZ2luWDoiZW5kIixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlYOiJlbmQiLG92ZXJsYXlZOiJib3R0b20ifSx7b3JpZ2luWDoiZW5kIixvcmlnaW5ZOiJib3R0b20iLG92ZXJsYXlYOiJlbmQiLG92ZXJsYXlZOiJ0b3AifV0sdUw9bmV3IEdhKCJjZGstY29ubmVjdGVkLW92ZXJsYXktc2Nyb2xsLXN0cmF0ZWd5Iik7Y2xhc3MgZkx7Y29uc3RydWN0b3IodCl7dGhpcy5lbGVtZW50UmVmPXR9fWZMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmTCkoU20oaGcpKX0sZkwuybVkaXI9bG8oe3R5cGU6Zkwsc2VsZWN0b3JzOltbIiIsImNkay1vdmVybGF5LW9yaWdpbiIsIiJdLFsiIiwib3ZlcmxheS1vcmlnaW4iLCIiXSxbIiIsImNka092ZXJsYXlPcmlnaW4iLCIiXV0sZXhwb3J0QXM6WyJjZGtPdmVybGF5T3JpZ2luIl19KSxmTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChmTCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrLW92ZXJsYXktb3JpZ2luXSwgW292ZXJsYXktb3JpZ2luXSwgW2Nka092ZXJsYXlPcmlnaW5dIixleHBvcnRBczoiY2RrT3ZlcmxheU9yaWdpbiJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ31dfSksbnVsbCk7Y2xhc3MgZ0x7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLl9vdmVybGF5PXQsdGhpcy5fZGlyPWksdGhpcy5faGFzQmFja2Ryb3A9ITEsdGhpcy5fbG9ja1Bvc2l0aW9uPSExLHRoaXMuX2dyb3dBZnRlck9wZW49ITEsdGhpcy5fZmxleGlibGVEaW1lbnNpb25zPSExLHRoaXMuX3B1c2g9ITEsdGhpcy5fYmFja2Ryb3BTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl9hdHRhY2hTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl9kZXRhY2hTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl9wb3NpdGlvblN1YnNjcmlwdGlvbj1tLkVNUFRZLHRoaXMudmlld3BvcnRNYXJnaW49MCx0aGlzLm9wZW49ITEsdGhpcy5kaXNhYmxlQ2xvc2U9ITEsdGhpcy5iYWNrZHJvcENsaWNrPW5ldyBMaCx0aGlzLnBvc2l0aW9uQ2hhbmdlPW5ldyBMaCx0aGlzLmF0dGFjaD1uZXcgTGgsdGhpcy5kZXRhY2g9bmV3IExoLHRoaXMub3ZlcmxheUtleWRvd249bmV3IExoLHRoaXMub3ZlcmxheU91dHNpZGVDbGljaz1uZXcgTGgsdGhpcy5fdGVtcGxhdGVQb3J0YWw9bmV3IHhGKGUsbiksdGhpcy5fc2Nyb2xsU3RyYXRlZ3lGYWN0b3J5PW8sdGhpcy5zY3JvbGxTdHJhdGVneT10aGlzLl9zY3JvbGxTdHJhdGVneUZhY3RvcnkoKX1nZXQgb2Zmc2V0WCgpe3JldHVybiB0aGlzLl9vZmZzZXRYfXNldCBvZmZzZXRYKHQpe3RoaXMuX29mZnNldFg9dCx0aGlzLl9wb3NpdGlvbiYmdGhpcy5fdXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLl9wb3NpdGlvbil9Z2V0IG9mZnNldFkoKXtyZXR1cm4gdGhpcy5fb2Zmc2V0WX1zZXQgb2Zmc2V0WSh0KXt0aGlzLl9vZmZzZXRZPXQsdGhpcy5fcG9zaXRpb24mJnRoaXMuX3VwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5fcG9zaXRpb24pfWdldCBoYXNCYWNrZHJvcCgpe3JldHVybiB0aGlzLl9oYXNCYWNrZHJvcH1zZXQgaGFzQmFja2Ryb3AodCl7dGhpcy5faGFzQmFja2Ryb3A9eXoodCl9Z2V0IGxvY2tQb3NpdGlvbigpe3JldHVybiB0aGlzLl9sb2NrUG9zaXRpb259c2V0IGxvY2tQb3NpdGlvbih0KXt0aGlzLl9sb2NrUG9zaXRpb249eXoodCl9Z2V0IGZsZXhpYmxlRGltZW5zaW9ucygpe3JldHVybiB0aGlzLl9mbGV4aWJsZURpbWVuc2lvbnN9c2V0IGZsZXhpYmxlRGltZW5zaW9ucyh0KXt0aGlzLl9mbGV4aWJsZURpbWVuc2lvbnM9eXoodCl9Z2V0IGdyb3dBZnRlck9wZW4oKXtyZXR1cm4gdGhpcy5fZ3Jvd0FmdGVyT3Blbn1zZXQgZ3Jvd0FmdGVyT3Blbih0KXt0aGlzLl9ncm93QWZ0ZXJPcGVuPXl6KHQpfWdldCBwdXNoKCl7cmV0dXJuIHRoaXMuX3B1c2h9c2V0IHB1c2godCl7dGhpcy5fcHVzaD15eih0KX1nZXQgb3ZlcmxheVJlZigpe3JldHVybiB0aGlzLl9vdmVybGF5UmVmfWdldCBkaXIoKXtyZXR1cm4gdGhpcy5fZGlyP3RoaXMuX2Rpci52YWx1ZToibHRyIn1uZ09uRGVzdHJveSgpe3RoaXMuX2F0dGFjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2RldGFjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2JhY2tkcm9wU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fcG9zaXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9vdmVybGF5UmVmJiZ0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKX1uZ09uQ2hhbmdlcyh0KXt0aGlzLl9wb3NpdGlvbiYmKHRoaXMuX3VwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5fcG9zaXRpb24pLHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh7d2lkdGg6dGhpcy53aWR0aCxtaW5XaWR0aDp0aGlzLm1pbldpZHRoLGhlaWdodDp0aGlzLmhlaWdodCxtaW5IZWlnaHQ6dGhpcy5taW5IZWlnaHR9KSx0Lm9yaWdpbiYmdGhpcy5vcGVuJiZ0aGlzLl9wb3NpdGlvbi5hcHBseSgpKSx0Lm9wZW4mJih0aGlzLm9wZW4/dGhpcy5fYXR0YWNoT3ZlcmxheSgpOnRoaXMuX2RldGFjaE92ZXJsYXkoKSl9X2NyZWF0ZU92ZXJsYXkoKXt0aGlzLnBvc2l0aW9ucyYmdGhpcy5wb3NpdGlvbnMubGVuZ3RofHwodGhpcy5wb3NpdGlvbnM9bUwpO2NvbnN0IHQ9dGhpcy5fb3ZlcmxheVJlZj10aGlzLl9vdmVybGF5LmNyZWF0ZSh0aGlzLl9idWlsZENvbmZpZygpKTt0aGlzLl9hdHRhY2hTdWJzY3JpcHRpb249dC5hdHRhY2htZW50cygpLnN1YnNjcmliZSgoKCk9PnRoaXMuYXR0YWNoLmVtaXQoKSkpLHRoaXMuX2RldGFjaFN1YnNjcmlwdGlvbj10LmRldGFjaG1lbnRzKCkuc3Vic2NyaWJlKCgoKT0+dGhpcy5kZXRhY2guZW1pdCgpKSksdC5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKCh0PT57dGhpcy5vdmVybGF5S2V5ZG93bi5uZXh0KHQpLHQua2V5Q29kZSE9PXV6fHx0aGlzLmRpc2FibGVDbG9zZXx8YnoodCl8fCh0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fZGV0YWNoT3ZlcmxheSgpKX0pKSx0aGlzLl9vdmVybGF5UmVmLm91dHNpZGVQb2ludGVyRXZlbnRzKCkuc3Vic2NyaWJlKCh0PT57dGhpcy5vdmVybGF5T3V0c2lkZUNsaWNrLm5leHQodCl9KSl9X2J1aWxkQ29uZmlnKCl7Y29uc3QgdD10aGlzLl9wb3NpdGlvbj10aGlzLnBvc2l0aW9uU3RyYXRlZ3l8fHRoaXMuX2NyZWF0ZVBvc2l0aW9uU3RyYXRlZ3koKSxlPW5ldyBWRih7ZGlyZWN0aW9uOnRoaXMuX2Rpcixwb3NpdGlvblN0cmF0ZWd5OnQsc2Nyb2xsU3RyYXRlZ3k6dGhpcy5zY3JvbGxTdHJhdGVneSxoYXNCYWNrZHJvcDp0aGlzLmhhc0JhY2tkcm9wfSk7cmV0dXJuKHRoaXMud2lkdGh8fDA9PT10aGlzLndpZHRoKSYmKGUud2lkdGg9dGhpcy53aWR0aCksKHRoaXMuaGVpZ2h0fHwwPT09dGhpcy5oZWlnaHQpJiYoZS5oZWlnaHQ9dGhpcy5oZWlnaHQpLCh0aGlzLm1pbldpZHRofHwwPT09dGhpcy5taW5XaWR0aCkmJihlLm1pbldpZHRoPXRoaXMubWluV2lkdGgpLCh0aGlzLm1pbkhlaWdodHx8MD09PXRoaXMubWluSGVpZ2h0KSYmKGUubWluSGVpZ2h0PXRoaXMubWluSGVpZ2h0KSx0aGlzLmJhY2tkcm9wQ2xhc3MmJihlLmJhY2tkcm9wQ2xhc3M9dGhpcy5iYWNrZHJvcENsYXNzKSx0aGlzLnBhbmVsQ2xhc3MmJihlLnBhbmVsQ2xhc3M9dGhpcy5wYW5lbENsYXNzKSxlfV91cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHQpe2NvbnN0IGU9dGhpcy5wb3NpdGlvbnMubWFwKCh0PT4oe29yaWdpblg6dC5vcmlnaW5YLG9yaWdpblk6dC5vcmlnaW5ZLG92ZXJsYXlYOnQub3ZlcmxheVgsb3ZlcmxheVk6dC5vdmVybGF5WSxvZmZzZXRYOnQub2Zmc2V0WHx8dGhpcy5vZmZzZXRYLG9mZnNldFk6dC5vZmZzZXRZfHx0aGlzLm9mZnNldFkscGFuZWxDbGFzczp0LnBhbmVsQ2xhc3N8fHZvaWQgMH0pKSk7cmV0dXJuIHQuc2V0T3JpZ2luKHRoaXMub3JpZ2luLmVsZW1lbnRSZWYpLndpdGhQb3NpdGlvbnMoZSkud2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0aGlzLmZsZXhpYmxlRGltZW5zaW9ucykud2l0aFB1c2godGhpcy5wdXNoKS53aXRoR3Jvd0FmdGVyT3Blbih0aGlzLmdyb3dBZnRlck9wZW4pLndpdGhWaWV3cG9ydE1hcmdpbih0aGlzLnZpZXdwb3J0TWFyZ2luKS53aXRoTG9ja2VkUG9zaXRpb24odGhpcy5sb2NrUG9zaXRpb24pLndpdGhUcmFuc2Zvcm1PcmlnaW5Pbih0aGlzLnRyYW5zZm9ybU9yaWdpblNlbGVjdG9yKX1fY3JlYXRlUG9zaXRpb25TdHJhdGVneSgpe2NvbnN0IHQ9dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5vcmlnaW4uZWxlbWVudFJlZik7cmV0dXJuIHRoaXMuX3VwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodCksdH1fYXR0YWNoT3ZlcmxheSgpe3RoaXMuX292ZXJsYXlSZWY/dGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5oYXNCYWNrZHJvcD10aGlzLmhhc0JhY2tkcm9wOnRoaXMuX2NyZWF0ZU92ZXJsYXkoKSx0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCl8fHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKHRoaXMuX3RlbXBsYXRlUG9ydGFsKSx0aGlzLmhhc0JhY2tkcm9wP3RoaXMuX2JhY2tkcm9wU3Vic2NyaXB0aW9uPXRoaXMuX292ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgodD0+e3RoaXMuYmFja2Ryb3BDbGljay5lbWl0KHQpfSkpOnRoaXMuX2JhY2tkcm9wU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fcG9zaXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnBvc2l0aW9uQ2hhbmdlLm9ic2VydmVycy5sZW5ndGg+MCYmKHRoaXMuX3Bvc2l0aW9uU3Vic2NyaXB0aW9uPXRoaXMuX3Bvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcy5waXBlKEhlKCgoKT0+dGhpcy5wb3NpdGlvbkNoYW5nZS5vYnNlcnZlcnMubGVuZ3RoPjApKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5wb3NpdGlvbkNoYW5nZS5lbWl0KHQpLDA9PT10aGlzLnBvc2l0aW9uQ2hhbmdlLm9ic2VydmVycy5sZW5ndGgmJnRoaXMuX3Bvc2l0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9KSkpfV9kZXRhY2hPdmVybGF5KCl7dGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKSx0aGlzLl9iYWNrZHJvcFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3Bvc2l0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fWdMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxnTCkoU20ocEwpLFNtKFhnKSxTbShlaCksU20odUwpLFNtKEhJLDgpKX0sZ0wuybVkaXI9bG8oe3R5cGU6Z0wsc2VsZWN0b3JzOltbIiIsImNkay1jb25uZWN0ZWQtb3ZlcmxheSIsIiJdLFsiIiwiY29ubmVjdGVkLW92ZXJsYXkiLCIiXSxbIiIsImNka0Nvbm5lY3RlZE92ZXJsYXkiLCIiXV0saW5wdXRzOnt2aWV3cG9ydE1hcmdpbjpbImNka0Nvbm5lY3RlZE92ZXJsYXlWaWV3cG9ydE1hcmdpbiIsInZpZXdwb3J0TWFyZ2luIl0sb3BlbjpbImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIiwib3BlbiJdLGRpc2FibGVDbG9zZTpbImNka0Nvbm5lY3RlZE92ZXJsYXlEaXNhYmxlQ2xvc2UiLCJkaXNhYmxlQ2xvc2UiXSxzY3JvbGxTdHJhdGVneTpbImNka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneSIsInNjcm9sbFN0cmF0ZWd5Il0sb2Zmc2V0WDpbImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRYIiwib2Zmc2V0WCJdLG9mZnNldFk6WyJjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WSIsIm9mZnNldFkiXSxoYXNCYWNrZHJvcDpbImNka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcCIsImhhc0JhY2tkcm9wIl0sbG9ja1Bvc2l0aW9uOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUxvY2tQb3NpdGlvbiIsImxvY2tQb3NpdGlvbiJdLGZsZXhpYmxlRGltZW5zaW9uczpbImNka0Nvbm5lY3RlZE92ZXJsYXlGbGV4aWJsZURpbWVuc2lvbnMiLCJmbGV4aWJsZURpbWVuc2lvbnMiXSxncm93QWZ0ZXJPcGVuOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW4iLCJncm93QWZ0ZXJPcGVuIl0scHVzaDpbImNka0Nvbm5lY3RlZE92ZXJsYXlQdXNoIiwicHVzaCJdLHBvc2l0aW9uczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiLCJwb3NpdGlvbnMiXSxvcmlnaW46WyJjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luIiwib3JpZ2luIl0scG9zaXRpb25TdHJhdGVneTpbImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvblN0cmF0ZWd5IiwicG9zaXRpb25TdHJhdGVneSJdLHdpZHRoOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoIiwid2lkdGgiXSxoZWlnaHQ6WyJjZGtDb25uZWN0ZWRPdmVybGF5SGVpZ2h0IiwiaGVpZ2h0Il0sbWluV2lkdGg6WyJjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGgiLCJtaW5XaWR0aCJdLG1pbkhlaWdodDpbImNka0Nvbm5lY3RlZE92ZXJsYXlNaW5IZWlnaHQiLCJtaW5IZWlnaHQiXSxiYWNrZHJvcENsYXNzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3MiLCJiYWNrZHJvcENsYXNzIl0scGFuZWxDbGFzczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzIiwicGFuZWxDbGFzcyJdLHRyYW5zZm9ybU9yaWdpblNlbGVjdG9yOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVRyYW5zZm9ybU9yaWdpbk9uIiwidHJhbnNmb3JtT3JpZ2luU2VsZWN0b3IiXX0sb3V0cHV0czp7YmFja2Ryb3BDbGljazoiYmFja2Ryb3BDbGljayIscG9zaXRpb25DaGFuZ2U6InBvc2l0aW9uQ2hhbmdlIixhdHRhY2g6ImF0dGFjaCIsZGV0YWNoOiJkZXRhY2giLG92ZXJsYXlLZXlkb3duOiJvdmVybGF5S2V5ZG93biIsb3ZlcmxheU91dHNpZGVDbGljazoib3ZlcmxheU91dHNpZGVDbGljayJ9LGV4cG9ydEFzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheSJdLGZlYXR1cmVzOltCb119KSxnTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnBMfSx7dHlwZTpYZ30se3R5cGU6ZWh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlt1TF19XX0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX1dLGdMLnByb3BEZWNvcmF0b3JzPXtvcmlnaW46W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luIl19XSxwb3NpdGlvbnM6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zIl19XSxwb3NpdGlvblN0cmF0ZWd5Olt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uU3RyYXRlZ3kiXX1dLG9mZnNldFg6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WCJdfV0sb2Zmc2V0WTpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRZIl19XSx3aWR0aDpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aCJdfV0saGVpZ2h0Olt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUhlaWdodCJdfV0sbWluV2lkdGg6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGgiXX1dLG1pbkhlaWdodDpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlNaW5IZWlnaHQiXX1dLGJhY2tkcm9wQ2xhc3M6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcyJdfV0scGFuZWxDbGFzczpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzIl19XSx2aWV3cG9ydE1hcmdpbjpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlWaWV3cG9ydE1hcmdpbiJdfV0sc2Nyb2xsU3RyYXRlZ3k6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3kiXX1dLG9wZW46W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5T3BlbiJdfV0sZGlzYWJsZUNsb3NlOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheURpc2FibGVDbG9zZSJdfV0sdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3I6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5VHJhbnNmb3JtT3JpZ2luT24iXX1dLGhhc0JhY2tkcm9wOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wIl19XSxsb2NrUG9zaXRpb246W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5TG9ja1Bvc2l0aW9uIl19XSxmbGV4aWJsZURpbWVuc2lvbnM6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5RmxleGlibGVEaW1lbnNpb25zIl19XSxncm93QWZ0ZXJPcGVuOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW4iXX1dLHB1c2g6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5UHVzaCJdfV0sYmFja2Ryb3BDbGljazpbe3R5cGU6T3l9XSxwb3NpdGlvbkNoYW5nZTpbe3R5cGU6T3l9XSxhdHRhY2g6W3t0eXBlOk95fV0sZGV0YWNoOlt7dHlwZTpPeX1dLG92ZXJsYXlLZXlkb3duOlt7dHlwZTpPeX1dLG92ZXJsYXlPdXRzaWRlQ2xpY2s6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZ0wsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nkay1jb25uZWN0ZWQtb3ZlcmxheV0sIFtjb25uZWN0ZWQtb3ZlcmxheV0sIFtjZGtDb25uZWN0ZWRPdmVybGF5XSIsZXhwb3J0QXM6ImNka0Nvbm5lY3RlZE92ZXJsYXkifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6cEx9LHt0eXBlOlhnfSx7dHlwZTplaH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3VMXX1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV19KSx7dmlld3BvcnRNYXJnaW46W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5Vmlld3BvcnRNYXJnaW4iXX1dLG9wZW46W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5T3BlbiJdfV0sZGlzYWJsZUNsb3NlOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheURpc2FibGVDbG9zZSJdfV0sYmFja2Ryb3BDbGljazpbe3R5cGU6T3l9XSxwb3NpdGlvbkNoYW5nZTpbe3R5cGU6T3l9XSxhdHRhY2g6W3t0eXBlOk95fV0sZGV0YWNoOlt7dHlwZTpPeX1dLG92ZXJsYXlLZXlkb3duOlt7dHlwZTpPeX1dLG92ZXJsYXlPdXRzaWRlQ2xpY2s6W3t0eXBlOk95fV0sc2Nyb2xsU3RyYXRlZ3k6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3kiXX1dLG9mZnNldFg6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WCJdfV0sb2Zmc2V0WTpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRZIl19XSxoYXNCYWNrZHJvcDpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcCJdfV0sbG9ja1Bvc2l0aW9uOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUxvY2tQb3NpdGlvbiJdfV0sZmxleGlibGVEaW1lbnNpb25zOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUZsZXhpYmxlRGltZW5zaW9ucyJdfV0sZ3Jvd0FmdGVyT3Blbjpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlHcm93QWZ0ZXJPcGVuIl19XSxwdXNoOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVB1c2giXX1dLHBvc2l0aW9uczpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiXX1dLG9yaWdpbjpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW4iXX1dLHBvc2l0aW9uU3RyYXRlZ3k6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25TdHJhdGVneSJdfV0sd2lkdGg6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5V2lkdGgiXX1dLGhlaWdodDpbe3R5cGU6eHksYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlIZWlnaHQiXX1dLG1pbldpZHRoOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheU1pbldpZHRoIl19XSxtaW5IZWlnaHQ6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5TWluSGVpZ2h0Il19XSxiYWNrZHJvcENsYXNzOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3MiXX1dLHBhbmVsQ2xhc3M6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5UGFuZWxDbGFzcyJdfV0sdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3I6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5VHJhbnNmb3JtT3JpZ2luT24iXX1dfSk7Y29uc3QgaEw9e3Byb3ZpZGU6dUwsZGVwczpbcExdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gYkwodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCl9fTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgeUx7fXlMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5TCl9LHlMLsm1bW9kPWFvKHt0eXBlOnlMfSkseUwuybVpbmo9dm4oe3Byb3ZpZGVyczpbcEwsaExdLGltcG9ydHM6W1tMSSxSRixfRl0sX0ZdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh5TCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W0xJLFJGLF9GXSxleHBvcnRzOltnTCxmTCxfRl0sZGVjbGFyYXRpb25zOltnTCxmTF0scHJvdmlkZXJzOltwTCxoTF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyh5TCx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2dMLGZMXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltMSSxSRixfRl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bZ0wsZkwsX0ZdfX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIF9MIGV4dGVuZHMgUUZ7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpfW5nT25EZXN0cm95KCl7c3VwZXIubmdPbkRlc3Ryb3koKSx0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lJiZ0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXImJnRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5fZnVsbFNjcmVlbkV2ZW50TmFtZSx0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXIpfV9jcmVhdGVDb250YWluZXIoKXtzdXBlci5fY3JlYXRlQ29udGFpbmVyKCksdGhpcy5fYWRqdXN0UGFyZW50Rm9yRnVsbHNjcmVlbkNoYW5nZSgpLHRoaXMuX2FkZEZ1bGxzY3JlZW5DaGFuZ2VMaXN0ZW5lcigoKCk9PnRoaXMuX2FkanVzdFBhcmVudEZvckZ1bGxzY3JlZW5DaGFuZ2UoKSkpfV9hZGp1c3RQYXJlbnRGb3JGdWxsc2NyZWVuQ2hhbmdlKCl7dGhpcy5fY29udGFpbmVyRWxlbWVudCYmKHRoaXMuZ2V0RnVsbHNjcmVlbkVsZW1lbnQoKXx8dGhpcy5fZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQodGhpcy5fY29udGFpbmVyRWxlbWVudCl9X2FkZEZ1bGxzY3JlZW5DaGFuZ2VMaXN0ZW5lcih0KXtjb25zdCBlPXRoaXMuX2dldEV2ZW50TmFtZSgpO2UmJih0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXImJnRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXIpLHRoaXMuX2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoZSx0KSx0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXI9dCl9X2dldEV2ZW50TmFtZSgpe2lmKCF0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lKXtjb25zdCB0PXRoaXMuX2RvY3VtZW50O3QuZnVsbHNjcmVlbkVuYWJsZWQ/dGhpcy5fZnVsbFNjcmVlbkV2ZW50TmFtZT0iZnVsbHNjcmVlbmNoYW5nZSI6dC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZD90aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lPSJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIjp0Lm1vekZ1bGxTY3JlZW5FbmFibGVkP3RoaXMuX2Z1bGxTY3JlZW5FdmVudE5hbWU9Im1vemZ1bGxzY3JlZW5jaGFuZ2UiOnQubXNGdWxsc2NyZWVuRW5hYmxlZCYmKHRoaXMuX2Z1bGxTY3JlZW5FdmVudE5hbWU9Ik1TRnVsbHNjcmVlbkNoYW5nZSIpfXJldHVybiB0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lfWdldEZ1bGxzY3JlZW5FbGVtZW50KCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudDtyZXR1cm4gdC5mdWxsc2NyZWVuRWxlbWVudHx8dC53ZWJraXRGdWxsc2NyZWVuRWxlbWVudHx8dC5tb3pGdWxsU2NyZWVuRWxlbWVudHx8dC5tc0Z1bGxzY3JlZW5FbGVtZW50fHxudWxsfX1fTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8X0wpKHZyKFpfKSx2cih3eikpfSxfTC7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgX0wodnIoWl8pLHZyKHd6KSl9LHRva2VuOl9MLHByb3ZpZGVkSW46InJvb3QifSksX0wuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChfTCxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp3en1dfSksbnVsbCk7Y2xhc3MgQ0x7fUNMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDTCl9LENMLsm1bW9kPWFvKHt0eXBlOkNMfSksQ0wuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQ0wsW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBNTD1uZXcgU2V0O2xldCB2TDtjbGFzcyB4THtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9wbGF0Zm9ybT10LHRoaXMuX21hdGNoTWVkaWE9dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiZ3aW5kb3cubWF0Y2hNZWRpYT93aW5kb3cubWF0Y2hNZWRpYS5iaW5kKHdpbmRvdyk6T0x9bWF0Y2hNZWRpYSh0KXtyZXR1cm4gdGhpcy5fcGxhdGZvcm0uV0VCS0lUJiYoZnVuY3Rpb24gZSh0KXtpZighTUwuaGFzKHQpKXRyeXt2THx8KHZMPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksdkwuc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9jc3MiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHZMKSksdkwuc2hlZXQmJih2TC5zaGVldC5pbnNlcnRSdWxlKGBAbWVkaWEgJHt0fSB7LmZ4LXF1ZXJ5LXRlc3R7IH19YCwwKSxNTC5hZGQodCkpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IodCl9fSkodCksdGhpcy5fbWF0Y2hNZWRpYSh0KX19ZnVuY3Rpb24gT0wodCl7cmV0dXJue21hdGNoZXM6ImFsbCI9PT10fHwiIj09PXQsbWVkaWE6dCxhZGRMaXN0ZW5lcjooKT0+e30scmVtb3ZlTGlzdGVuZXI6KCk9Pnt9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICoveEwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHhMKSh2cih3eikpfSx4TC7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgeEwodnIod3opKX0sdG9rZW46eEwscHJvdmlkZWRJbjoicm9vdCJ9KSx4TC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnd6fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh4TCxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6d3p9XX0pLG51bGwpO2NsYXNzIFBMe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fbWVkaWFNYXRjaGVyPXQsdGhpcy5fem9uZT1lLHRoaXMuX3F1ZXJpZXM9bmV3IE1hcCx0aGlzLl9kZXN0cm95U3ViamVjdD1uZXcgSX1uZ09uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3lTdWJqZWN0Lm5leHQoKSx0aGlzLl9kZXN0cm95U3ViamVjdC5jb21wbGV0ZSgpfWlzTWF0Y2hlZCh0KXtyZXR1cm4gd0woTXoodCkpLnNvbWUoKHQ9PnRoaXMuX3JlZ2lzdGVyUXVlcnkodCkubXFsLm1hdGNoZXMpKX1vYnNlcnZlKHQpe2xldCBlPVd0KHdMKE16KHQpKS5tYXAoKHQ9PnRoaXMuX3JlZ2lzdGVyUXVlcnkodCkub2JzZXJ2YWJsZSkpKTtyZXR1cm4gZT1KdChlLnBpcGUoYmUoMSkpLGUucGlwZShUZSgxKSxnZSgwKSkpLGUucGlwZShJdCgodD0+e2NvbnN0IGU9e21hdGNoZXM6ITEsYnJlYWtwb2ludHM6e319O3JldHVybiB0LmZvckVhY2goKCh7bWF0Y2hlczp0LHF1ZXJ5Om59KT0+e2UubWF0Y2hlcz1lLm1hdGNoZXN8fHQsZS5icmVha3BvaW50c1tuXT10fSkpLGV9KSkpfV9yZWdpc3RlclF1ZXJ5KHQpe2lmKHRoaXMuX3F1ZXJpZXMuaGFzKHQpKXJldHVybiB0aGlzLl9xdWVyaWVzLmdldCh0KTtjb25zdCBlPXRoaXMuX21lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKHQpLG49e29ic2VydmFibGU6bmV3IEQoKHQ9Pntjb25zdCBuPWU9PnRoaXMuX3pvbmUucnVuKCgoKT0+dC5uZXh0KGUpKSk7cmV0dXJuIGUuYWRkTGlzdGVuZXIobiksKCk9PntlLnJlbW92ZUxpc3RlbmVyKG4pfX0pKS5waXBlKE5lKGUpLEl0KCgoe21hdGNoZXM6ZX0pPT4oe3F1ZXJ5OnQsbWF0Y2hlczplfSkpKSxJZSh0aGlzLl9kZXN0cm95U3ViamVjdCkpLG1xbDplfTtyZXR1cm4gdGhpcy5fcXVlcmllcy5zZXQodCxuKSxufX1mdW5jdGlvbiB3TCh0KXtyZXR1cm4gdC5tYXAoKHQ9PnQuc3BsaXQoIiwiKSkpLnJlZHVjZSgoKHQsZSk9PnQuY29uY2F0KGUpKSkubWFwKCh0PT50LnRyaW0oKSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBrTCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMSksUm0oMSwiYnV0dG9uIiwyKSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkuYWN0aW9uKCl9KSksa3UoMiksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO3JjKDIpLFN1KHQuZGF0YS5hY3Rpb24pfX1mdW5jdGlvbiBTTCh0LGUpe31QTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UEwpKHZyKHhMKSx2cihhXykpfSxQTC7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgUEwodnIoeEwpLHZyKGFfKSl9LHRva2VuOlBMLHByb3ZpZGVkSW46InJvb3QifSksUEwuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp4TH0se3R5cGU6YV99XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFBMLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp4TH0se3R5cGU6YV99XX0pLG51bGwpO2NvbnN0IERMPW5ldyBHYSgiTWF0U25hY2tCYXJEYXRhIik7Y2xhc3MgRUx7Y29uc3RydWN0b3IoKXt0aGlzLnBvbGl0ZW5lc3M9ImFzc2VydGl2ZSIsdGhpcy5hbm5vdW5jZW1lbnRNZXNzYWdlPSIiLHRoaXMuZHVyYXRpb249MCx0aGlzLmRhdGE9bnVsbCx0aGlzLmhvcml6b250YWxQb3NpdGlvbj0iY2VudGVyIix0aGlzLnZlcnRpY2FsUG9zaXRpb249ImJvdHRvbSJ9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBSTD1NYXRoLnBvdygyLDMxKS0xO2NsYXNzIEFMe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fb3ZlcmxheVJlZj1lLHRoaXMuX2FmdGVyRGlzbWlzc2VkPW5ldyBJLHRoaXMuX2FmdGVyT3BlbmVkPW5ldyBJLHRoaXMuX29uQWN0aW9uPW5ldyBJLHRoaXMuX2Rpc21pc3NlZEJ5QWN0aW9uPSExLHRoaXMuY29udGFpbmVySW5zdGFuY2U9dCx0aGlzLm9uQWN0aW9uKCkuc3Vic2NyaWJlKCgoKT0+dGhpcy5kaXNtaXNzKCkpKSx0Ll9vbkV4aXQuc3Vic2NyaWJlKCgoKT0+dGhpcy5fZmluaXNoRGlzbWlzcygpKSl9ZGlzbWlzcygpe3RoaXMuX2FmdGVyRGlzbWlzc2VkLmNsb3NlZHx8dGhpcy5jb250YWluZXJJbnN0YW5jZS5leGl0KCksY2xlYXJUaW1lb3V0KHRoaXMuX2R1cmF0aW9uVGltZW91dElkKX1kaXNtaXNzV2l0aEFjdGlvbigpe3RoaXMuX29uQWN0aW9uLmNsb3NlZHx8KHRoaXMuX2Rpc21pc3NlZEJ5QWN0aW9uPSEwLHRoaXMuX29uQWN0aW9uLm5leHQoKSx0aGlzLl9vbkFjdGlvbi5jb21wbGV0ZSgpKSxjbGVhclRpbWVvdXQodGhpcy5fZHVyYXRpb25UaW1lb3V0SWQpfWNsb3NlV2l0aEFjdGlvbigpe3RoaXMuZGlzbWlzc1dpdGhBY3Rpb24oKX1fZGlzbWlzc0FmdGVyKHQpe3RoaXMuX2R1cmF0aW9uVGltZW91dElkPXNldFRpbWVvdXQoKCgpPT50aGlzLmRpc21pc3MoKSksTWF0aC5taW4odCxSTCkpfV9vcGVuKCl7dGhpcy5fYWZ0ZXJPcGVuZWQuY2xvc2VkfHwodGhpcy5fYWZ0ZXJPcGVuZWQubmV4dCgpLHRoaXMuX2FmdGVyT3BlbmVkLmNvbXBsZXRlKCkpfV9maW5pc2hEaXNtaXNzKCl7dGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCksdGhpcy5fb25BY3Rpb24uY2xvc2VkfHx0aGlzLl9vbkFjdGlvbi5jb21wbGV0ZSgpLHRoaXMuX2FmdGVyRGlzbWlzc2VkLm5leHQoe2Rpc21pc3NlZEJ5QWN0aW9uOnRoaXMuX2Rpc21pc3NlZEJ5QWN0aW9ufSksdGhpcy5fYWZ0ZXJEaXNtaXNzZWQuY29tcGxldGUoKSx0aGlzLl9kaXNtaXNzZWRCeUFjdGlvbj0hMX1hZnRlckRpc21pc3NlZCgpe3JldHVybiB0aGlzLl9hZnRlckRpc21pc3NlZH1hZnRlck9wZW5lZCgpe3JldHVybiB0aGlzLmNvbnRhaW5lckluc3RhbmNlLl9vbkVudGVyfW9uQWN0aW9uKCl7cmV0dXJuIHRoaXMuX29uQWN0aW9ufX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgVEx7Y29uc3RydWN0b3IodCxlKXt0aGlzLnNuYWNrQmFyUmVmPXQsdGhpcy5kYXRhPWV9YWN0aW9uKCl7dGhpcy5zbmFja0JhclJlZi5kaXNtaXNzV2l0aEFjdGlvbigpfWdldCBoYXNBY3Rpb24oKXtyZXR1cm4hIXRoaXMuZGF0YS5hY3Rpb259fVRMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUTCkoU20oQUwpLFNtKERMKSl9LFRMLsm1Y21wPXRvKHt0eXBlOlRMLHNlbGVjdG9yczpbWyJzaW1wbGUtc25hY2stYmFyIl1dLGhvc3RBdHRyczpbMSwibWF0LXNpbXBsZS1zbmFja2JhciJdLGRlY2xzOjMsdmFyczoyLGNvbnN0czpbWyJjbGFzcyIsIm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIiw0LCJuZ0lmIl0sWzEsIm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIl0sWyJtYXQtYnV0dG9uIiwiIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwic3BhbiIpLGt1KDEpLEFtKCksUXAoMixrTCwzLDEsImRpdiIsMCkpLDImZSYmKHJjKDEpLFN1KG4uZGF0YS5tZXNzYWdlKSxyYygxKSxEbSgibmdJZiIsbi5oYXNBY3Rpb24pKX0sZGlyZWN0aXZlczpbZE0sWEhdLHN0eWxlczpbIi5tYXQtc2ltcGxlLXNuYWNrYmFye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7bGluZS1oZWlnaHQ6MjBweDtvcGFjaXR5OjF9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9ue2ZsZXgtc2hyaW5rOjA7bWFyZ2luOi04cHggLThweCAtOHB4IDhweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24gYnV0dG9ue21heC1oZWlnaHQ6MzZweDttaW4td2lkdGg6MH1bZGlyPXJ0bF0gLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9ue21hcmdpbi1sZWZ0Oi04cHg7bWFyZ2luLXJpZ2h0OjhweH1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLFRMLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6QUx9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltETF19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVEwsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic2ltcGxlLXNuYWNrLWJhciIsdGVtcGxhdGU6JzxzcGFuPnt7ZGF0YS5tZXNzYWdlfX08L3NwYW4+XG48ZGl2IGNsYXNzPSJtYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiIgICpuZ0lmPSJoYXNBY3Rpb24iPlxuICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT0iYWN0aW9uKCkiPnt7ZGF0YS5hY3Rpb259fTwvYnV0dG9uPlxuPC9kaXY+XG4nLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLGhvc3Q6e2NsYXNzOiJtYXQtc2ltcGxlLXNuYWNrYmFyIn0sc3R5bGVzOlsiLm1hdC1zaW1wbGUtc25hY2tiYXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtsaW5lLWhlaWdodDoyMHB4O29wYWNpdHk6MX0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb257ZmxleC1zaHJpbms6MDttYXJnaW46LThweCAtOHB4IC04cHggOHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiBidXR0b257bWF4LWhlaWdodDozNnB4O21pbi13aWR0aDowfVtkaXI9cnRsXSAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb257bWFyZ2luLWxlZnQ6LThweDttYXJnaW4tcmlnaHQ6OHB4fVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpBTH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0RMXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IE5MPXtzbmFja0JhclN0YXRlOm54KCJzdGF0ZSIsW3J4KCJ2b2lkLCBoaWRkZW4iLGF4KHt0cmFuc2Zvcm06InNjYWxlKDAuOCkiLG9wYWNpdHk6MH0pKSxyeCgidmlzaWJsZSIsYXgoe3RyYW5zZm9ybToic2NhbGUoMSkiLG9wYWNpdHk6MX0pKSxseCgiKiA9PiB2aXNpYmxlIixveCgiMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiKSksbHgoIiogPT4gdm9pZCwgKiA9PiBoaWRkZW4iLG94KCI3NW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMSwgMSkiLGF4KHtvcGFjaXR5OjB9KSkpXSl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB6TCBleHRlbmRzIFBGe2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7c3VwZXIoKSx0aGlzLl9uZ1pvbmU9dCx0aGlzLl9lbGVtZW50UmVmPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9bix0aGlzLl9wbGF0Zm9ybT1vLHRoaXMuc25hY2tCYXJDb25maWc9aSx0aGlzLl9hbm5vdW5jZURlbGF5PTE1MCx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fb25Bbm5vdW5jZT1uZXcgSSx0aGlzLl9vbkV4aXQ9bmV3IEksdGhpcy5fb25FbnRlcj1uZXcgSSx0aGlzLl9hbmltYXRpb25TdGF0ZT0idm9pZCIsdGhpcy5hdHRhY2hEb21Qb3J0YWw9dD0+KHRoaXMuX2Fzc2VydE5vdEF0dGFjaGVkKCksdGhpcy5fYXBwbHlTbmFja0JhckNsYXNzZXMoKSx0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoRG9tUG9ydGFsKHQpKSx0aGlzLl9saXZlPSJhc3NlcnRpdmUiIT09aS5wb2xpdGVuZXNzfHxpLmFubm91bmNlbWVudE1lc3NhZ2U/Im9mZiI9PT1pLnBvbGl0ZW5lc3M/Im9mZiI6InBvbGl0ZSI6ImFzc2VydGl2ZSIsdGhpcy5fcGxhdGZvcm0uRklSRUZPWCYmKCJwb2xpdGUiPT09dGhpcy5fbGl2ZSYmKHRoaXMuX3JvbGU9InN0YXR1cyIpLCJhc3NlcnRpdmUiPT09dGhpcy5fbGl2ZSYmKHRoaXMuX3JvbGU9ImFsZXJ0IikpfWF0dGFjaENvbXBvbmVudFBvcnRhbCh0KXtyZXR1cm4gdGhpcy5fYXNzZXJ0Tm90QXR0YWNoZWQoKSx0aGlzLl9hcHBseVNuYWNrQmFyQ2xhc3NlcygpLHRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2hDb21wb25lbnRQb3J0YWwodCl9YXR0YWNoVGVtcGxhdGVQb3J0YWwodCl7cmV0dXJuIHRoaXMuX2Fzc2VydE5vdEF0dGFjaGVkKCksdGhpcy5fYXBwbHlTbmFja0JhckNsYXNzZXMoKSx0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwodCl9b25BbmltYXRpb25FbmQodCl7Y29uc3R7ZnJvbVN0YXRlOmUsdG9TdGF0ZTpufT10O2lmKCgidm9pZCI9PT1uJiYidm9pZCIhPT1lfHwiaGlkZGVuIj09PW4pJiZ0aGlzLl9jb21wbGV0ZUV4aXQoKSwidmlzaWJsZSI9PT1uKXtjb25zdCB0PXRoaXMuX29uRW50ZXI7dGhpcy5fbmdab25lLnJ1bigoKCk9Pnt0Lm5leHQoKSx0LmNvbXBsZXRlKCl9KSl9fWVudGVyKCl7dGhpcy5fZGVzdHJveWVkfHwodGhpcy5fYW5pbWF0aW9uU3RhdGU9InZpc2libGUiLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSx0aGlzLl9zY3JlZW5SZWFkZXJBbm5vdW5jZSgpKX1leGl0KCl7cmV0dXJuIHRoaXMuX2FuaW1hdGlvblN0YXRlPSJoaWRkZW4iLHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1hdC1leGl0IiwiIiksY2xlYXJUaW1lb3V0KHRoaXMuX2Fubm91bmNlVGltZW91dElkKSx0aGlzLl9vbkV4aXR9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5fY29tcGxldGVFeGl0KCl9X2NvbXBsZXRlRXhpdCgpe3RoaXMuX25nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUoYmUoMSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9vbkV4aXQubmV4dCgpLHRoaXMuX29uRXhpdC5jb21wbGV0ZSgpfSkpfV9hcHBseVNuYWNrQmFyQ2xhc3Nlcygpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LGU9dGhpcy5zbmFja0JhckNvbmZpZy5wYW5lbENsYXNzO2UmJihBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaCgoZT0+dC5jbGFzc0xpc3QuYWRkKGUpKSk6dC5jbGFzc0xpc3QuYWRkKGUpKSwiY2VudGVyIj09PXRoaXMuc25hY2tCYXJDb25maWcuaG9yaXpvbnRhbFBvc2l0aW9uJiZ0LmNsYXNzTGlzdC5hZGQoIm1hdC1zbmFjay1iYXItY2VudGVyIiksInRvcCI9PT10aGlzLnNuYWNrQmFyQ29uZmlnLnZlcnRpY2FsUG9zaXRpb24mJnQuY2xhc3NMaXN0LmFkZCgibWF0LXNuYWNrLWJhci10b3AiKX1fYXNzZXJ0Tm90QXR0YWNoZWQoKXtpZih0aGlzLl9wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGF0dGFjaCBzbmFjayBiYXIgY29udGVudCBhZnRlciBjb250ZW50IGlzIGFscmVhZHkgYXR0YWNoZWQiKX1fc2NyZWVuUmVhZGVyQW5ub3VuY2UoKXt0aGlzLl9hbm5vdW5jZVRpbWVvdXRJZHx8dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3RoaXMuX2Fubm91bmNlVGltZW91dElkPXNldFRpbWVvdXQoKCgpPT57Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigiW2FyaWEtaGlkZGVuXSIpLGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIlthcmlhLWxpdmVdIik7aWYodCYmZSl7bGV0IG49bnVsbDt0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmKG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCksdC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiksZS5hcHBlbmRDaGlsZCh0KSxudWxsPT1ufHxuLmZvY3VzKCksdGhpcy5fb25Bbm5vdW5jZS5uZXh0KCksdGhpcy5fb25Bbm5vdW5jZS5jb21wbGV0ZSgpfX0pLHRoaXMuX2Fubm91bmNlRGVsYXkpfSkpfX16TC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ekwpKFNtKGFfKSxTbShoZyksU20oVWcpLFNtKHd6KSxTbShFTCkpfSx6TC7JtWNtcD10byh7dHlwZTp6TCxzZWxlY3RvcnM6W1sic25hY2stYmFyLWNvbnRhaW5lciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoREYsNyksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5fcG9ydGFsT3V0bGV0PXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtc25hY2stYmFyLWNvbnRhaW5lciJdLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJmptKCJAc3RhdGUuZG9uZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25BbmltYXRpb25FbmQoZSl9KSksMiZlJiZOdSgiQHN0YXRlIixuLl9hbmltYXRpb25TdGF0ZSl9LGZlYXR1cmVzOlt4cF0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbImFyaWEtaGlkZGVuIiwidHJ1ZSJdLFsiY2RrUG9ydGFsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDApLFFwKDEsU0wsMCwwLCJuZy10ZW1wbGF0ZSIsMSksQW0oKSxUbSgyLCJkaXYiKSksMiZlJiYocmMoMiksanAoImFyaWEtbGl2ZSIsbi5fbGl2ZSkoInJvbGUiLG4uX3JvbGUpKX0sZGlyZWN0aXZlczpbREZdLHN0eWxlczpbIi5tYXQtc25hY2stYmFyLWNvbnRhaW5lcntib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jazttYXJnaW46MjRweDttYXgtd2lkdGg6MzN2dzttaW4td2lkdGg6MzQ0cHg7cGFkZGluZzoxNHB4IDE2cHg7bWluLWhlaWdodDo0OHB4O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbmFjay1iYXItY29udGFpbmVye2JvcmRlcjpzb2xpZCAxcHh9Lm1hdC1zbmFjay1iYXItaGFuZHNldHt3aWR0aDoxMDAlfS5tYXQtc25hY2stYmFyLWhhbmRzZXQgLm1hdC1zbmFjay1iYXItY29udGFpbmVye21hcmdpbjo4cHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7d2lkdGg6MTAwJX1cbiJdLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246W05MLnNuYWNrQmFyU3RhdGVdfX0pLHpMLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6YV99LHt0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6d3p9LHt0eXBlOkVMfV0sekwucHJvcERlY29yYXRvcnM9e19wb3J0YWxPdXRsZXQ6W3t0eXBlOlphLGFyZ3M6W0RGLHtzdGF0aWM6ITB9XX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHpMLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InNuYWNrLWJhci1jb250YWluZXIiLHRlbXBsYXRlOidceDNjIS0tIEluaXRpYWxseSBob2xkcyB0aGUgc25hY2sgYmFyIGNvbnRlbnQsIHdpbGwgYmUgZW1wdHkgYWZ0ZXIgYW5ub3VuY2luZyB0byBzY3JlZW4gcmVhZGVycy4gLS1ceDNlXG48ZGl2IGFyaWEtaGlkZGVuPSJ0cnVlIj5cbiAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cblx4M2MhLS0gV2lsbCByZWNlaXZlIHRoZSBzbmFjayBiYXIgY29udGVudCBmcm9tIHRoZSBub24tbGl2ZSBkaXYsIG1vdmUgd2lsbCBoYXBwZW4gYSBzaG9ydCBkZWxheSBhZnRlciBvcGVuaW5nIC0tXHgzZVxuPGRpdiBbYXR0ci5hcmlhLWxpdmVdPSJfbGl2ZSIgW2F0dHIucm9sZV09Il9yb2xlIj48L2Rpdj5cbicsY2hhbmdlRGV0ZWN0aW9uOnpuLkRlZmF1bHQsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGFuaW1hdGlvbnM6W05MLnNuYWNrQmFyU3RhdGVdLGhvc3Q6e2NsYXNzOiJtYXQtc25hY2stYmFyLWNvbnRhaW5lciIsIltAc3RhdGVdIjoiX2FuaW1hdGlvblN0YXRlIiwiKEBzdGF0ZS5kb25lKSI6Im9uQW5pbWF0aW9uRW5kKCRldmVudCkifSxzdHlsZXM6WyIubWF0LXNuYWNrLWJhci1jb250YWluZXJ7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjI0cHg7bWF4LXdpZHRoOjMzdnc7bWluLXdpZHRoOjM0NHB4O3BhZGRpbmc6MTRweCAxNnB4O21pbi1oZWlnaHQ6NDhweDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc25hY2stYmFyLWNvbnRhaW5lcntib3JkZXI6c29saWQgMXB4fS5tYXQtc25hY2stYmFyLWhhbmRzZXR7d2lkdGg6MTAwJX0ubWF0LXNuYWNrLWJhci1oYW5kc2V0IC5tYXQtc25hY2stYmFyLWNvbnRhaW5lcnttYXJnaW46OHB4O21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO3dpZHRoOjEwMCV9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmFffSx7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnd6fSx7dHlwZTpFTH1dfSkse19wb3J0YWxPdXRsZXQ6W3t0eXBlOlphLGFyZ3M6W0RGLHtzdGF0aWM6ITB9XX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBJTHt9SUwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fElMKX0sSUwuybVtb2Q9YW8oe3R5cGU6SUx9KSxJTC7JtWluaj12bih7aW1wb3J0czpbW3lMLFJGLFdNLEpILFhJXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElMLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbeUwsUkYsV00sSkgsWEldLGV4cG9ydHM6W3pMLFhJXSxkZWNsYXJhdGlvbnM6W3pMLFRMXSxlbnRyeUNvbXBvbmVudHM6W3pMLFRMXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKElMLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bekwsVExdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3lMLFJGLFdNLEpILFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVyblt6TCxYSV19fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBITD1uZXcgR2EoIm1hdC1zbmFjay1iYXItZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBGTCgpe3JldHVybiBuZXcgRUx9fSk7Y2xhc3MgTEx7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe3RoaXMuX292ZXJsYXk9dCx0aGlzLl9saXZlPWUsdGhpcy5faW5qZWN0b3I9bix0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXI9byx0aGlzLl9wYXJlbnRTbmFja0Jhcj1pLHRoaXMuX2RlZmF1bHRDb25maWc9YSx0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsPW51bGwsdGhpcy5zaW1wbGVTbmFja0JhckNvbXBvbmVudD1UTCx0aGlzLnNuYWNrQmFyQ29udGFpbmVyQ29tcG9uZW50PXpMLHRoaXMuaGFuZHNldENzc0NsYXNzPSJtYXQtc25hY2stYmFyLWhhbmRzZXQifWdldCBfb3BlbmVkU25hY2tCYXJSZWYoKXtjb25zdCB0PXRoaXMuX3BhcmVudFNuYWNrQmFyO3JldHVybiB0P3QuX29wZW5lZFNuYWNrQmFyUmVmOnRoaXMuX3NuYWNrQmFyUmVmQXRUaGlzTGV2ZWx9c2V0IF9vcGVuZWRTbmFja0JhclJlZih0KXt0aGlzLl9wYXJlbnRTbmFja0Jhcj90aGlzLl9wYXJlbnRTbmFja0Jhci5fb3BlbmVkU25hY2tCYXJSZWY9dDp0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsPXR9b3BlbkZyb21Db21wb25lbnQodCxlKXtyZXR1cm4gdGhpcy5fYXR0YWNoKHQsZSl9b3BlbkZyb21UZW1wbGF0ZSh0LGUpe3JldHVybiB0aGlzLl9hdHRhY2godCxlKX1vcGVuKHQsZT0iIixuKXtjb25zdCBvPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLl9kZWZhdWx0Q29uZmlnKSxuKTtyZXR1cm4gby5kYXRhPXttZXNzYWdlOnQsYWN0aW9uOmV9LG8uYW5ub3VuY2VtZW50TWVzc2FnZT09PXQmJihvLmFubm91bmNlbWVudE1lc3NhZ2U9dm9pZCAwKSx0aGlzLm9wZW5Gcm9tQ29tcG9uZW50KHRoaXMuc2ltcGxlU25hY2tCYXJDb21wb25lbnQsbyl9ZGlzbWlzcygpe3RoaXMuX29wZW5lZFNuYWNrQmFyUmVmJiZ0aGlzLl9vcGVuZWRTbmFja0JhclJlZi5kaXNtaXNzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsJiZ0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsLmRpc21pc3MoKX1fYXR0YWNoU25hY2tCYXJDb250YWluZXIodCxlKXtjb25zdCBuPXJwLmNyZWF0ZSh7cGFyZW50OmUmJmUudmlld0NvbnRhaW5lclJlZiYmZS52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yfHx0aGlzLl9pbmplY3Rvcixwcm92aWRlcnM6W3twcm92aWRlOkVMLHVzZVZhbHVlOmV9XX0pLG89bmV3IHZGKHRoaXMuc25hY2tCYXJDb250YWluZXJDb21wb25lbnQsZS52aWV3Q29udGFpbmVyUmVmLG4pLGk9dC5hdHRhY2gobyk7cmV0dXJuIGkuaW5zdGFuY2Uuc25hY2tCYXJDb25maWc9ZSxpLmluc3RhbmNlfV9hdHRhY2godCxlKXtjb25zdCBuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG5ldyBFTCksdGhpcy5fZGVmYXVsdENvbmZpZyksZSksbz10aGlzLl9jcmVhdGVPdmVybGF5KG4pLGk9dGhpcy5fYXR0YWNoU25hY2tCYXJDb250YWluZXIobyxuKSxhPW5ldyBBTChpLG8pO2lmKHQgaW5zdGFuY2VvZiBYZyl7Y29uc3QgZT1uZXcgeEYodCxudWxsLHskaW1wbGljaXQ6bi5kYXRhLHNuYWNrQmFyUmVmOmF9KTthLmluc3RhbmNlPWkuYXR0YWNoVGVtcGxhdGVQb3J0YWwoZSl9ZWxzZXtjb25zdCBlPXRoaXMuX2NyZWF0ZUluamVjdG9yKG4sYSksbz1uZXcgdkYodCx2b2lkIDAsZSkscj1pLmF0dGFjaENvbXBvbmVudFBvcnRhbChvKTthLmluc3RhbmNlPXIuaW5zdGFuY2V9cmV0dXJuIHRoaXMuX2JyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKCIobWF4LXdpZHRoOiA1OTkuOThweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIikucGlwZShJZShvLmRldGFjaG1lbnRzKCkpKS5zdWJzY3JpYmUoKHQ9Pntjb25zdCBlPW8ub3ZlcmxheUVsZW1lbnQuY2xhc3NMaXN0O3QubWF0Y2hlcz9lLmFkZCh0aGlzLmhhbmRzZXRDc3NDbGFzcyk6ZS5yZW1vdmUodGhpcy5oYW5kc2V0Q3NzQ2xhc3MpfSkpLG4uYW5ub3VuY2VtZW50TWVzc2FnZSYmaS5fb25Bbm5vdW5jZS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fbGl2ZS5hbm5vdW5jZShuLmFubm91bmNlbWVudE1lc3NhZ2Usbi5wb2xpdGVuZXNzKX0pKSx0aGlzLl9hbmltYXRlU25hY2tCYXIoYSxuKSx0aGlzLl9vcGVuZWRTbmFja0JhclJlZj1hLHRoaXMuX29wZW5lZFNuYWNrQmFyUmVmfV9hbmltYXRlU25hY2tCYXIodCxlKXt0LmFmdGVyRGlzbWlzc2VkKCkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX29wZW5lZFNuYWNrQmFyUmVmPT10JiYodGhpcy5fb3BlbmVkU25hY2tCYXJSZWY9bnVsbCksZS5hbm5vdW5jZW1lbnRNZXNzYWdlJiZ0aGlzLl9saXZlLmNsZWFyKCl9KSksdGhpcy5fb3BlbmVkU25hY2tCYXJSZWY/KHRoaXMuX29wZW5lZFNuYWNrQmFyUmVmLmFmdGVyRGlzbWlzc2VkKCkuc3Vic2NyaWJlKCgoKT0+e3QuY29udGFpbmVySW5zdGFuY2UuZW50ZXIoKX0pKSx0aGlzLl9vcGVuZWRTbmFja0JhclJlZi5kaXNtaXNzKCkpOnQuY29udGFpbmVySW5zdGFuY2UuZW50ZXIoKSxlLmR1cmF0aW9uJiZlLmR1cmF0aW9uPjAmJnQuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCgpPT50Ll9kaXNtaXNzQWZ0ZXIoZS5kdXJhdGlvbikpKX1fY3JlYXRlT3ZlcmxheSh0KXtjb25zdCBlPW5ldyBWRjtlLmRpcmVjdGlvbj10LmRpcmVjdGlvbjtsZXQgbj10aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCk7Y29uc3Qgbz0icnRsIj09PXQuZGlyZWN0aW9uLGk9ImxlZnQiPT09dC5ob3Jpem9udGFsUG9zaXRpb258fCJzdGFydCI9PT10Lmhvcml6b250YWxQb3NpdGlvbiYmIW98fCJlbmQiPT09dC5ob3Jpem9udGFsUG9zaXRpb24mJm8sYT0haSYmImNlbnRlciIhPT10Lmhvcml6b250YWxQb3NpdGlvbjtyZXR1cm4gaT9uLmxlZnQoIjAiKTphP24ucmlnaHQoIjAiKTpuLmNlbnRlckhvcml6b250YWxseSgpLCJ0b3AiPT09dC52ZXJ0aWNhbFBvc2l0aW9uP24udG9wKCIwIik6bi5ib3R0b20oIjAiKSxlLnBvc2l0aW9uU3RyYXRlZ3k9bix0aGlzLl9vdmVybGF5LmNyZWF0ZShlKX1fY3JlYXRlSW5qZWN0b3IodCxlKXtyZXR1cm4gcnAuY3JlYXRlKHtwYXJlbnQ6dCYmdC52aWV3Q29udGFpbmVyUmVmJiZ0LnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3J8fHRoaXMuX2luamVjdG9yLHByb3ZpZGVyczpbe3Byb3ZpZGU6QUwsdXNlVmFsdWU6ZX0se3Byb3ZpZGU6REwsdXNlVmFsdWU6dC5kYXRhfV19KX19TEwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExMKSh2cihwTCksdnIoT0kpLHZyKHJwKSx2cihQTCksdnIoTEwsMTIpLHZyKEhMKSl9LExMLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBMTCh2cihwTCksdnIoT0kpLHZyKEdkKSx2cihQTCksdnIoTEwsMTIpLHZyKEhMKSl9LHRva2VuOkxMLHByb3ZpZGVkSW46SUx9KSxMTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnBMfSx7dHlwZTpPSX0se3R5cGU6cnB9LHt0eXBlOlBMfSx7dHlwZTpMTCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RXJ9XX0se3R5cGU6RUwsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSExdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKExMLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjpJTH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnBMfSx7dHlwZTpPSX0se3R5cGU6cnB9LHt0eXBlOlBMfSx7dHlwZTpMTCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RXJ9XX0se3R5cGU6RUwsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSExdfV19XX0pLG51bGwpO2NvbnN0IEJMPS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxWTD0iXFx1MDAwMC1cXHUwMDIwXFx1MDA3Zi1cXHUwMDlmIixqTD1uZXcgUmVnRXhwKCIoPzpbYS16QS1aXVthLXpBLVowLTkrLi1dezIsfTpcXC9cXC98ZGF0YTp8d3d3XFwuKVteXFxzIitWTCsnIl17Mix9W15cXHMnK1ZMKyJcIicpfVxcXSw6Oy4hP10iLCJndSIpO2Z1bmN0aW9uIFVMKHQpe3JldHVybihmdW5jdGlvbiBlKHQsbil7bi5mbGFncy5pbmNsdWRlcygiZyIpfHwobj1uZXcgUmVnRXhwKG4sbi5mbGFncysiZyIpKTtjb25zdCBvPVtdO2xldCBpPTA7Zm9yKGNvbnN0IGUgb2YgdC5tYXRjaEFsbChuKSl7Y29uc3Qgbj1lLmluZGV4LGE9ZVswXTtuPmkmJm8ucHVzaCh7aW5kZXg6aSx0ZXh0OnQuc3Vic3RyaW5nKGksbiksbWF0Y2hlc1JlZ2V4OiExfSksby5wdXNoKHtpbmRleDpuLHRleHQ6YSxtYXRjaGVzUmVnZXg6ITB9KSxpPW4rYS5sZW5ndGh9cmV0dXJuIHQubGVuZ3RoPmkmJm8ucHVzaCh7aW5kZXg6aSx0ZXh0OnQuc3Vic3RyaW5nKGksdC5sZW5ndGgpLG1hdGNoZXNSZWdleDohMX0pLG99KSh0LGpMKS5tYXAoKCh7bWF0Y2hlc1JlZ2V4OnQsdGV4dDplfSk9Pih7aXNVUkw6dCx0ZXh0OmV9KSkpfWZ1bmN0aW9uIEdMKHQsZSl7aWYoMSZ0JiYoTm0oMCksa3UoMSksem0oKSksMiZ0KXtjb25zdCB0PVltKCkuJGltcGxpY2l0O3JjKDEpLER1KCIgIix0LnRleHQsIiAiKX19ZnVuY3Rpb24gV0wodCxlKXtpZigxJnQmJihSbSgwLCJhIiw3KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKS4kaW1wbGljaXQ7S20oImhyZWYiLHQudGV4dCxUcykscmMoMSksU3UodC50ZXh0KX19ZnVuY3Rpb24gWUwodCxlKXtpZigxJnQmJihObSgwKSxRcCgxLEdMLDIsMSwibmctY29udGFpbmVyIiw1KSxRcCgyLFdMLDIsMiwibmctdGVtcGxhdGUiLG51bGwsNixpYiksem0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49JHAoMyk7cmMoMSksRG0oIm5nSWYiLCF0LmlzVVJMKSgibmdJZkVsc2UiLG4pfX1mdW5jdGlvbiBxTCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImJ1dHRvbiIsOCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLm9uQWN0aW9uQnV0dG9uQ2xpY2tlZCgpfSkpLGt1KDEpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRHUoIiAiLHQuYWxlcnQuZm9sbG93dXBBY3Rpb24ubG9jYWxpemVkTGFiZWwsIiAiKX19Y2xhc3MgWkx7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuc25hY2tCYXJSZWY9dCx0aGlzLnVua25vd25EYXRhPWUsdGhpcy5zdG9yZT1uLHRoaXMuc3BsaXRCeVVSTD1VTCx0aGlzLmFsZXJ0PWV9b25BY3Rpb25CdXR0b25DbGlja2VkKCl7cmV0dXJuIGdBKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dGhpcy5zbmFja0JhclJlZi5kaXNtaXNzKCk7Y29uc3QgdD15aWVsZCB0aGlzLmFsZXJ0LmZvbGxvd3VwQWN0aW9uLmdldEZvbGxvd3VwQWN0aW9uKHRoaXMuc3RvcmUpO3RoaXMuc3RvcmUuZGlzcGF0Y2godCl9KSl9b25DbG9zZUJ1dHRvbkNsaWNrZWQoKXt0aGlzLnNuYWNrQmFyUmVmLmRpc21pc3MoKX19WkwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFpMKShTbShBTCksU20oREwpLFNtKEl3KSl9LFpMLsm1Y21wPXRvKHt0eXBlOlpMLHNlbGVjdG9yczpbWyJhbGVydC1kaXNwbGF5LXNuYWNrYmFyIl1dLGRlY2xzOjYsdmFyczoyLGNvbnN0czpmdW5jdGlvbigpe2xldCB0O3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJEaXNtaXNzIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0byBjbG9zZSB0aGUgc25hY2tiYXIgbWVzc2FnZeKQn2VhNGQ5ZmU2MTQyMGEzZmNlODFjZjU0YzRjNjE1ZTNjMTljNjQ2YTbikJ8xNTM2MDg3NTE5NzQzNzA3MzYyOkRpc21pc3NgLFtbMSwibWVzc2FnZSJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udHJvbHMiXSxbIm1hdC1idXR0b24iLCIiLCJjbGFzcyIsImZvbGxvd3VwLWJ1dHRvbiIsMywiY2xpY2siLDQsIm5nSWYiXSxbIm1hdC1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LDEsImRpc21pc3MtYnV0dG9uIiwzLCJjbGljayJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImxpbmtQaWVjZSIsIiJdLFsicmVsIiwibm9yZWZlcnJlciBub29wZW5lciIsInRhcmdldCIsIl9ibGFuayIsMywiaHJlZiJdLFsibWF0LWJ1dHRvbiIsIiIsMSwiZm9sbG93dXAtYnV0dG9uIiwzLCJjbGljayJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksUXAoMSxZTCw0LDIsIm5nLWNvbnRhaW5lciIsMSksQW0oKSxSbSgyLCJkaXYiLDIpLFFwKDMscUwsMiwxLCJidXR0b24iLDMpLFJtKDQsImJ1dHRvbiIsNCksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uQ2xvc2VCdXR0b25DbGlja2VkKCl9KSksa3UoNSwiIERpc21pc3MgIiksQW0oKSxBbSgpKSwyJmUmJihyYygxKSxEbSgibmdGb3JPZiIsbi5zcGxpdEJ5VVJMKG4uYWxlcnQubG9jYWxpemVkTWVzc2FnZSkpLHJjKDIpLERtKCJuZ0lmIixuLmFsZXJ0LmZvbGxvd3VwQWN0aW9uKSl9LGRpcmVjdGl2ZXM6W2xNLGRNLFhIXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0ubWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7YWxpZ24tc2VsZjpjZW50ZXI7bWFyZ2luOjVweCAwO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV0gICBhW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjppbmhlcml0fS5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OmF1dG99YnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFpMLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImFsZXJ0LWRpc3BsYXktc25hY2tiYXIiLHRlbXBsYXRlVXJsOiIuL2FsZXJ0X2Rpc3BsYXlfc25hY2tiYXJfY29udGFpbmVyLm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vYWxlcnRfZGlzcGxheV9zbmFja2Jhcl9jb250YWluZXIuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkFMfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbRExdfV19LHt0eXBlOkl3fV19KSxudWxsKTtjbGFzcyBYTHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc3RvcmU9dCx0aGlzLnNuYWNrQmFyPWUsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBJfW5nT25Jbml0KCl7dGhpcy5zdG9yZS5zZWxlY3QoZEEpLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSxjZSgodD0+Qm9vbGVhbih0KSkpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLnNob3dBbGVydCh0KX0pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9c2hvd0FsZXJ0KHQpe3RoaXMuc25hY2tCYXIub3BlbkZyb21Db21wb25lbnQoWkwse2R1cmF0aW9uOjVlMyxob3Jpem9udGFsUG9zaXRpb246InN0YXJ0Iix2ZXJ0aWNhbFBvc2l0aW9uOiJib3R0b20iLGRhdGE6dH0pfX1YTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WEwpKFNtKEl3KSxTbShMTCkpfSxYTC7JtWNtcD10byh7dHlwZTpYTCxzZWxlY3RvcnM6W1siYWxlcnQtc25hY2tiYXIiXV0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYTCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJhbGVydC1zbmFja2JhciIsdGVtcGxhdGU6IiIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fSx7dHlwZTpMTH1dfSksbnVsbCk7Y2xhc3MgS0x7fUtMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxLTCl9LEtMLsm1bW9kPWFvKHt0eXBlOktMfSksS0wuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxKSCxJTF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChLTCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbWEwsWkxdLGV4cG9ydHM6W1hMXSxpbXBvcnRzOltXTSxKSCxJTF0sZW50cnlDb21wb25lbnRzOltaTF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhLTCx7ZGVjbGFyYXRpb25zOltYTCxaTF0saW1wb3J0czpbV00sSkgsSUxdLGV4cG9ydHM6W1hMXX0pO2NsYXNzIEpMe31KTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SkwpfSxKTC7JtW1vZD1hbyh7dHlwZTpKTH0pLEpMLsm1aW5qPXZuKHtpbXBvcnRzOltbQVIsS0wsZGsuZm9yRmVhdHVyZShjQSxweiksV2suZm9yRmVhdHVyZShbY3pdKV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChKTCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W0FSLEtMLGRrLmZvckZlYXR1cmUoY0EscHopLFdrLmZvckZlYXR1cmUoW2N6XSldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oSkwse2ltcG9ydHM6W0FSLEtMLGNrLEdrXX0pO2NvbnN0IFFMPVsiKiIsW1sibWF0LXRvb2xiYXItcm93Il1dXSwkTD1KSShjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSk7Y2xhc3MgdEJ7fXRCLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0Qil9LHRCLsm1ZGlyPWxvKHt0eXBlOnRCLHNlbGVjdG9yczpbWyJtYXQtdG9vbGJhci1yb3ciXV0saG9zdEF0dHJzOlsxLCJtYXQtdG9vbGJhci1yb3ciXSxleHBvcnRBczpbIm1hdFRvb2xiYXJSb3ciXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodEIsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXRvb2xiYXItcm93IixleHBvcnRBczoibWF0VG9vbGJhclJvdyIsaG9zdDp7Y2xhc3M6Im1hdC10b29sYmFyLXJvdyJ9fV19XSxudWxsLG51bGwpO2NsYXNzIGVCIGV4dGVuZHMgJEx7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQpLHRoaXMuX3BsYXRmb3JtPWUsdGhpcy5fZG9jdW1lbnQ9bn1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJih0aGlzLl9jaGVja1Rvb2xiYXJNaXhlZE1vZGVzKCksdGhpcy5fdG9vbGJhclJvd3MuY2hhbmdlcy5zdWJzY3JpYmUoKCgpPT50aGlzLl9jaGVja1Rvb2xiYXJNaXhlZE1vZGVzKCkpKSl9X2NoZWNrVG9vbGJhck1peGVkTW9kZXMoKXt0aGlzLl90b29sYmFyUm93cy5sZW5ndGgmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmQXJyYXkuZnJvbSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2RlcykuZmlsdGVyKCh0PT4hKHQuY2xhc3NMaXN0JiZ0LmNsYXNzTGlzdC5jb250YWlucygibWF0LXRvb2xiYXItcm93IikpKSkuZmlsdGVyKCh0PT50Lm5vZGVUeXBlIT09KHRoaXMuX2RvY3VtZW50P3RoaXMuX2RvY3VtZW50LkNPTU1FTlRfTk9ERTo4KSkpLnNvbWUoKHQ9PiEoIXQudGV4dENvbnRlbnR8fCF0LnRleHRDb250ZW50LnRyaW0oKSkpKSYmKGZ1bmN0aW9uIHQoKXt0aHJvdyBFcnJvcigiTWF0VG9vbGJhcjogQXR0ZW1wdGluZyB0byBjb21iaW5lIGRpZmZlcmVudCB0b29sYmFyIG1vZGVzLiBFaXRoZXIgc3BlY2lmeSBtdWx0aXBsZSBgPG1hdC10b29sYmFyLXJvdz5gIGVsZW1lbnRzIGV4cGxpY2l0bHkgb3IganVzdCBwbGFjZSBjb250ZW50IGluc2lkZSBvZiBhIGA8bWF0LXRvb2xiYXI+YCBmb3IgYSBzaW5nbGUgcm93LiIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKCl9fWVCLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlQikoU20oaGcpLFNtKHd6KSxTbShaXykpfSxlQi7JtWNtcD10byh7dHlwZTplQixzZWxlY3RvcnM6W1sibWF0LXRvb2xiYXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYkaChvLHRCLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX3Rvb2xiYXJSb3dzPXQpfX0saG9zdEF0dHJzOlsxLCJtYXQtdG9vbGJhciJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJtYXQtdG9vbGJhci1tdWx0aXBsZS1yb3dzIixuLl90b29sYmFyUm93cy5sZW5ndGg+MCkoIm1hdC10b29sYmFyLXNpbmdsZS1yb3ciLDA9PT1uLl90b29sYmFyUm93cy5sZW5ndGgpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciJ9LGV4cG9ydEFzOlsibWF0VG9vbGJhciJdLGZlYXR1cmVzOlt4cF0sbmdDb250ZW50U2VsZWN0b3JzOlsiKiIsIm1hdC10b29sYmFyLXJvdyJdLGRlY2xzOjIsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabShRTCksWG0oMCksWG0oMSwxKSl9LHN0eWxlczpbIi5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10b29sYmFye291dGxpbmU6c29saWQgMXB4fS5tYXQtdG9vbGJhci1yb3csLm1hdC10b29sYmFyLXNpbmdsZS1yb3d7ZGlzcGxheTpmbGV4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjAgMTZweDt3aWR0aDoxMDAlO2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5tYXQtdG9vbGJhci1tdWx0aXBsZS1yb3dze2Rpc3BsYXk6ZmxleDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpZHRoOjEwMCV9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxlQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sZUIucHJvcERlY29yYXRvcnM9e190b29sYmFyUm93czpbe3R5cGU6WWEsYXJnczpbdEIse2Rlc2NlbmRhbnRzOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChlQixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtdG9vbGJhciIsZXhwb3J0QXM6Im1hdFRvb2xiYXIiLHRlbXBsYXRlOic8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48bmctY29udGVudCBzZWxlY3Q9Im1hdC10b29sYmFyLXJvdyI+PC9uZy1jb250ZW50PlxuJyxpbnB1dHM6WyJjb2xvciJdLGhvc3Q6e2NsYXNzOiJtYXQtdG9vbGJhciIsIltjbGFzcy5tYXQtdG9vbGJhci1tdWx0aXBsZS1yb3dzXSI6Il90b29sYmFyUm93cy5sZW5ndGggPiAwIiwiW2NsYXNzLm1hdC10b29sYmFyLXNpbmdsZS1yb3ddIjoiX3Rvb2xiYXJSb3dzLmxlbmd0aCA9PT0gMCJ9LGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLHN0eWxlczpbIi5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10b29sYmFye291dGxpbmU6c29saWQgMXB4fS5tYXQtdG9vbGJhci1yb3csLm1hdC10b29sYmFyLXNpbmdsZS1yb3d7ZGlzcGxheTpmbGV4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjAgMTZweDt3aWR0aDoxMDAlO2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5tYXQtdG9vbGJhci1tdWx0aXBsZS1yb3dze2Rpc3BsYXk6ZmxleDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpZHRoOjEwMCV9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSx7X3Rvb2xiYXJSb3dzOlt7dHlwZTpZYSxhcmdzOlt0Qix7ZGVzY2VuZGFudHM6ITB9XX1dfSk7Y2xhc3MgbkJ7fWZ1bmN0aW9uIG9CKHQsZSl7MSZ0JiZYbSgwKX1uQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bkIpfSxuQi7JtW1vZD1hbyh7dHlwZTpuQn0pLG5CLsm1aW5qPXZuKHtpbXBvcnRzOltbWEldLFhJXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobkIsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltYSV0sZXhwb3J0czpbZUIsdEIsWEldLGRlY2xhcmF0aW9uczpbZUIsdEJdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8obkIse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltlQix0Ql19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bWEldfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW2VCLHRCLFhJXX19KTtjb25zdCBpQj1bIioiXTtmdW5jdGlvbiBhQih0LGUpe31jb25zdCByQj1mdW5jdGlvbih0KXtyZXR1cm57YW5pbWF0aW9uRHVyYXRpb246dH19LHNCPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3ZhbHVlOnQscGFyYW1zOmV9fSxsQj1bInRhYkJvZHlXcmFwcGVyIl0sY0I9WyJ0YWJIZWFkZXIiXTtmdW5jdGlvbiBkQih0LGUpe31mdW5jdGlvbiBwQih0LGUpezEmdCYmUXAoMCxkQiwwLDAsIm5nLXRlbXBsYXRlIiw5KSwyJnQmJkRtKCJjZGtQb3J0YWxPdXRsZXQiLFltKCkuJGltcGxpY2l0LnRlbXBsYXRlTGFiZWwpfWZ1bmN0aW9uIG1CKHQsZSl7MSZ0JiZrdSgwKSwyJnQmJlN1KFltKCkuJGltcGxpY2l0LnRleHRMYWJlbCl9ZnVuY3Rpb24gdUIodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDYpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtjb25zdCBuPWhpKHQpLG89bi4kaW1wbGljaXQsaT1uLmluZGV4LGE9WW0oKSxyPSRwKDEpO3JldHVybiBhLl9oYW5kbGVDbGljayhvLHIsaSl9KSkoImNka0ZvY3VzQ2hhbmdlIiwoZnVuY3Rpb24gZShuKXtjb25zdCBvPWhpKHQpLmluZGV4O3JldHVybiBZbSgpLl90YWJGb2N1c0NoYW5nZWQobixvKX0pKSxSbSgxLCJkaXYiLDcpLFFwKDIscEIsMSwxLCJuZy10ZW1wbGF0ZSIsOCksUXAoMyxtQiwxLDEsIm5nLXRlbXBsYXRlIiw4KSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49ZS5pbmRleCxvPVltKCk7cHUoIm1hdC10YWItbGFiZWwtYWN0aXZlIixvLnNlbGVjdGVkSW5kZXg9PW4pLERtKCJpZCIsby5fZ2V0VGFiTGFiZWxJZChuKSkoImRpc2FibGVkIix0LmRpc2FibGVkKSgibWF0UmlwcGxlRGlzYWJsZWQiLHQuZGlzYWJsZWR8fG8uZGlzYWJsZVJpcHBsZSksanAoInRhYkluZGV4IixvLl9nZXRUYWJJbmRleCh0LG4pKSgiYXJpYS1wb3NpbnNldCIsbisxKSgiYXJpYS1zZXRzaXplIixvLl90YWJzLmxlbmd0aCkoImFyaWEtY29udHJvbHMiLG8uX2dldFRhYkNvbnRlbnRJZChuKSkoImFyaWEtc2VsZWN0ZWQiLG8uc2VsZWN0ZWRJbmRleD09bikoImFyaWEtbGFiZWwiLHQuYXJpYUxhYmVsfHxudWxsKSgiYXJpYS1sYWJlbGxlZGJ5IiwhdC5hcmlhTGFiZWwmJnQuYXJpYUxhYmVsbGVkYnk/dC5hcmlhTGFiZWxsZWRieTpudWxsKSxyYygyKSxEbSgibmdJZiIsdC50ZW1wbGF0ZUxhYmVsKSxyYygxKSxEbSgibmdJZiIsIXQudGVtcGxhdGVMYWJlbCl9fWZ1bmN0aW9uIGZCKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwibWF0LXRhYi1ib2R5IiwxMCksVm0oIl9vbkNlbnRlcmVkIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLl9yZW1vdmVUYWJCb2R5V3JhcHBlckhlaWdodCgpfSkpKCJfb25DZW50ZXJpbmciLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLl9zZXRUYWJCb2R5V3JhcHBlckhlaWdodChuKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPWUuaW5kZXgsbz1ZbSgpO3B1KCJtYXQtdGFiLWJvZHktYWN0aXZlIixvLnNlbGVjdGVkSW5kZXg9PT1uKSxEbSgiaWQiLG8uX2dldFRhYkNvbnRlbnRJZChuKSkoImNvbnRlbnQiLHQuY29udGVudCkoInBvc2l0aW9uIix0LnBvc2l0aW9uKSgib3JpZ2luIix0Lm9yaWdpbikoImFuaW1hdGlvbkR1cmF0aW9uIixvLmFuaW1hdGlvbkR1cmF0aW9uKSxqcCgidGFiaW5kZXgiLG51bGwhPW8uY29udGVudFRhYkluZGV4JiZvLnNlbGVjdGVkSW5kZXg9PT1uP28uY29udGVudFRhYkluZGV4Om51bGwpKCJhcmlhLWxhYmVsbGVkYnkiLG8uX2dldFRhYkxhYmVsSWQobikpfX1jb25zdCBnQj1bInRhYkxpc3RDb250YWluZXIiXSxoQj1bInRhYkxpc3QiXSxiQj1bIm5leHRQYWdpbmF0b3IiXSx5Qj1bInByZXZpb3VzUGFnaW5hdG9yIl0sX0I9bmV3IEdhKCJNYXRJbmtCYXJQb3NpdGlvbmVyIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBDQigpe3JldHVybiB0PT4oe2xlZnQ6dD8odC5vZmZzZXRMZWZ0fHwwKSsicHgiOiIwIix3aWR0aDp0Pyh0Lm9mZnNldFdpZHRofHwwKSsicHgiOiIwIn0pfX0pO2NsYXNzIE1Ce2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9uZ1pvbmU9ZSx0aGlzLl9pbmtCYXJQb3NpdGlvbmVyPW4sdGhpcy5fYW5pbWF0aW9uTW9kZT1vfWFsaWduVG9FbGVtZW50KHQpe3RoaXMuc2hvdygpLCJ1bmRlZmluZWQiIT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLl9zZXRTdHlsZXModCkpKX0pKTp0aGlzLl9zZXRTdHlsZXModCl9c2hvdygpe3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIn1oaWRlKCl7dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiJ9X3NldFN0eWxlcyh0KXtjb25zdCBlPXRoaXMuX2lua0JhclBvc2l0aW9uZXIodCksbj10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7bi5zdHlsZS5sZWZ0PWUubGVmdCxuLnN0eWxlLndpZHRoPWUud2lkdGh9fU1CLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxNQikoU20oaGcpLFNtKGFfKSxTbShfQiksU20oVlAsOCkpfSxNQi7JtWRpcj1sbyh7dHlwZTpNQixzZWxlY3RvcnM6W1sibWF0LWluay1iYXIiXV0saG9zdEF0dHJzOlsxLCJtYXQtaW5rLWJhciJdLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpfX0pLE1CLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbX0JdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE1CLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1pbmstYmFyIixob3N0OntjbGFzczoibWF0LWluay1iYXIiLCJbY2xhc3MuX21hdC1hbmltYXRpb24tbm9vcGFibGVdIjoiX2FuaW1hdGlvbk1vZGUgPT09ICdOb29wQW5pbWF0aW9ucycifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W19CXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHZCPW5ldyBHYSgiTWF0VGFiQ29udGVudCIpO2NsYXNzIHhCe2NvbnN0cnVjdG9yKHQpe3RoaXMudGVtcGxhdGU9dH19eEIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHhCKShTbShYZykpfSx4Qi7JtWRpcj1sbyh7dHlwZTp4QixzZWxlY3RvcnM6W1siIiwibWF0VGFiQ29udGVudCIsIiJdXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOnZCLHVzZUV4aXN0aW5nOnhCfV0pXX0pLHhCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHhCLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXRUYWJDb250ZW50XSIscHJvdmlkZXJzOlt7cHJvdmlkZTp2Qix1c2VFeGlzdGluZzp4Qn1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WGd9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgT0I9bmV3IEdhKCJNYXRUYWJMYWJlbCIpO2NsYXNzIFBCIGV4dGVuZHMga0Z7fVBCLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShQQikpKShufHxQQil9fSkoKSxQQi7JtWRpcj1sbyh7dHlwZTpQQixzZWxlY3RvcnM6W1siIiwibWF0LXRhYi1sYWJlbCIsIiJdLFsiIiwibWF0VGFiTGFiZWwiLCIiXV0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpPQix1c2VFeGlzdGluZzpQQn1dKSx4cF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFBCLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXQtdGFiLWxhYmVsXSwgW21hdFRhYkxhYmVsXSIscHJvdmlkZXJzOlt7cHJvdmlkZTpPQix1c2VFeGlzdGluZzpQQn1dfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3Qgd0I9S0koY2xhc3N7fSksa0I9bmV3IEdhKCJNQVRfVEFCX0dST1VQIik7Y2xhc3MgU0IgZXh0ZW5kcyB3Qntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5fdmlld0NvbnRhaW5lclJlZj10LHRoaXMuX2Nsb3Nlc3RUYWJHcm91cD1lLHRoaXMudGV4dExhYmVsPSIiLHRoaXMuX2NvbnRlbnRQb3J0YWw9bnVsbCx0aGlzLl9zdGF0ZUNoYW5nZXM9bmV3IEksdGhpcy5wb3NpdGlvbj1udWxsLHRoaXMub3JpZ2luPW51bGwsdGhpcy5pc0FjdGl2ZT0hMX1nZXQgdGVtcGxhdGVMYWJlbCgpe3JldHVybiB0aGlzLl90ZW1wbGF0ZUxhYmVsfXNldCB0ZW1wbGF0ZUxhYmVsKHQpe3RoaXMuX3NldFRlbXBsYXRlTGFiZWxJbnB1dCh0KX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLl9jb250ZW50UG9ydGFsfW5nT25DaGFuZ2VzKHQpeyh0Lmhhc093blByb3BlcnR5KCJ0ZXh0TGFiZWwiKXx8dC5oYXNPd25Qcm9wZXJ0eSgiZGlzYWJsZWQiKSkmJnRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdGF0ZUNoYW5nZXMuY29tcGxldGUoKX1uZ09uSW5pdCgpe3RoaXMuX2NvbnRlbnRQb3J0YWw9bmV3IHhGKHRoaXMuX2V4cGxpY2l0Q29udGVudHx8dGhpcy5faW1wbGljaXRDb250ZW50LHRoaXMuX3ZpZXdDb250YWluZXJSZWYpfV9zZXRUZW1wbGF0ZUxhYmVsSW5wdXQodCl7dCYmKHRoaXMuX3RlbXBsYXRlTGFiZWw9dCl9fVNCLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxTQikoU20oZWgpLFNtKGtCLDgpKX0sU0IuybVjbXA9dG8oe3R5cGU6U0Isc2VsZWN0b3JzOltbIm1hdC10YWIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYoJGgobyxPQiw1KSwkaChvLHZCLDcsWGcpKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLnRlbXBsYXRlTGFiZWw9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2V4cGxpY2l0Q29udGVudD10LmZpcnN0KX19LHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChYZyw3KSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLl9pbXBsaWNpdENvbnRlbnQ9dC5maXJzdCl9fSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsdGV4dExhYmVsOlsibGFiZWwiLCJ0ZXh0TGFiZWwiXSxhcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdfSxleHBvcnRBczpbIm1hdFRhYiJdLGZlYXR1cmVzOlt4cCxCb10sbmdDb250ZW50U2VsZWN0b3JzOmlCLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFFwKDAsb0IsMSwwLCJuZy10ZW1wbGF0ZSIpKX0sZW5jYXBzdWxhdGlvbjoyfSksU0IuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W2tCXX0se3R5cGU6U3J9XX1dLFNCLnByb3BEZWNvcmF0b3JzPXt0ZW1wbGF0ZUxhYmVsOlt7dHlwZTpxYSxhcmdzOltPQl19XSxfZXhwbGljaXRDb250ZW50Olt7dHlwZTpxYSxhcmdzOlt2Qix7cmVhZDpYZyxzdGF0aWM6ITB9XX1dLF9pbXBsaWNpdENvbnRlbnQ6W3t0eXBlOlphLGFyZ3M6W1hnLHtzdGF0aWM6ITB9XX1dLHRleHRMYWJlbDpbe3R5cGU6eHksYXJnczpbImxhYmVsIl19XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoU0IsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXRhYiIsdGVtcGxhdGU6Ilx4M2MhLS0gQ3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBjb250ZW50IG9mIHRoZSA8bWF0LXRhYj4gc28gdGhhdCB3ZSBjYW4gZ3JhYiBhIHJlZmVyZW5jZSB0byB0aGlzXG4gICAgVGVtcGxhdGVSZWYgYW5kIHVzZSBpdCBpbiBhIFBvcnRhbCB0byByZW5kZXIgdGhlIHRhYiBjb250ZW50IGluIHRoZSBhcHByb3ByaWF0ZSBwbGFjZSBpbiB0aGVcbiAgICB0YWItZ3JvdXAuIC0tXHgzZVxuPG5nLXRlbXBsYXRlPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxuIixpbnB1dHM6WyJkaXNhYmxlZCJdLGNoYW5nZURldGVjdGlvbjp6bi5EZWZhdWx0LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxleHBvcnRBczoibWF0VGFiIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpba0JdfSx7dHlwZTpTcn1dfV19KSx7dGV4dExhYmVsOlt7dHlwZTp4eSxhcmdzOlsibGFiZWwiXX1dLHRlbXBsYXRlTGFiZWw6W3t0eXBlOnFhLGFyZ3M6W09CXX1dLF9leHBsaWNpdENvbnRlbnQ6W3t0eXBlOnFhLGFyZ3M6W3ZCLHtyZWFkOlhnLHN0YXRpYzohMH1dfV0sX2ltcGxpY2l0Q29udGVudDpbe3R5cGU6WmEsYXJnczpbWGcse3N0YXRpYzohMH1dfV0sYXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBEQj17dHJhbnNsYXRlVGFiOm54KCJ0cmFuc2xhdGVUYWIiLFtyeCgiY2VudGVyLCB2b2lkLCBsZWZ0LW9yaWdpbi1jZW50ZXIsIHJpZ2h0LW9yaWdpbi1jZW50ZXIiLGF4KHt0cmFuc2Zvcm06Im5vbmUifSkpLHJ4KCJsZWZ0IixheCh7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkiLG1pbkhlaWdodDoiMXB4In0pKSxyeCgicmlnaHQiLGF4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIixtaW5IZWlnaHQ6IjFweCJ9KSksbHgoIiogPT4gbGVmdCwgKiA9PiByaWdodCwgbGVmdCA9PiBjZW50ZXIsIHJpZ2h0ID0+IGNlbnRlciIsb3goInt7YW5pbWF0aW9uRHVyYXRpb259fSBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSkiKSksbHgoInZvaWQgPT4gbGVmdC1vcmlnaW4tY2VudGVyIixbYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIn0pLG94KCJ7e2FuaW1hdGlvbkR1cmF0aW9ufX0gY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpIildKSxseCgidm9pZCA9PiByaWdodC1vcmlnaW4tY2VudGVyIixbYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkifSksb3goInt7YW5pbWF0aW9uRHVyYXRpb259fSBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSkiKV0pXSl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBFQiBleHRlbmRzIERGe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKHQsZSxvKSx0aGlzLl9ob3N0PW4sdGhpcy5fY2VudGVyaW5nU3ViPW0uRU1QVFksdGhpcy5fbGVhdmluZ1N1Yj1tLkVNUFRZfW5nT25Jbml0KCl7c3VwZXIubmdPbkluaXQoKSx0aGlzLl9jZW50ZXJpbmdTdWI9dGhpcy5faG9zdC5fYmVmb3JlQ2VudGVyaW5nLnBpcGUoTmUodGhpcy5faG9zdC5faXNDZW50ZXJQb3NpdGlvbih0aGlzLl9ob3N0Ll9wb3NpdGlvbikpKS5zdWJzY3JpYmUoKHQ9Pnt0JiYhdGhpcy5oYXNBdHRhY2hlZCgpJiZ0aGlzLmF0dGFjaCh0aGlzLl9ob3N0Ll9jb250ZW50KX0pKSx0aGlzLl9sZWF2aW5nU3ViPXRoaXMuX2hvc3QuX2FmdGVyTGVhdmluZ0NlbnRlci5zdWJzY3JpYmUoKCgpPT57dGhpcy5kZXRhY2goKX0pKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksdGhpcy5fY2VudGVyaW5nU3ViLnVuc3Vic2NyaWJlKCksdGhpcy5fbGVhdmluZ1N1Yi51bnN1YnNjcmliZSgpfX1FQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RUIpKFNtKHVnKSxTbShlaCksU20ocWUoKCgpPT5BQikpKSxTbShaXykpfSxFQi7JtWRpcj1sbyh7dHlwZTpFQixzZWxlY3RvcnM6W1siIiwibWF0VGFiQm9keUhvc3QiLCIiXV0sZmVhdHVyZXM6W3hwXX0pLEVCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dWd9LHt0eXBlOmVofSx7dHlwZTpBQixkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltxZSgoKCk9PkFCKSldfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRUIsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdFRhYkJvZHlIb3N0XSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp1Z30se3R5cGU6ZWh9LHt0eXBlOkFCLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3FlKCgoKT0+QUIpKV19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSxudWxsKTtjbGFzcyBSQntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2Rpcj1lLHRoaXMuX2RpckNoYW5nZVN1YnNjcmlwdGlvbj1tLkVNUFRZLHRoaXMuX3RyYW5zbGF0ZVRhYkNvbXBsZXRlPW5ldyBJLHRoaXMuX29uQ2VudGVyaW5nPW5ldyBMaCx0aGlzLl9iZWZvcmVDZW50ZXJpbmc9bmV3IExoLHRoaXMuX2FmdGVyTGVhdmluZ0NlbnRlcj1uZXcgTGgsdGhpcy5fb25DZW50ZXJlZD1uZXcgTGgoITApLHRoaXMuYW5pbWF0aW9uRHVyYXRpb249IjUwMG1zIixlJiYodGhpcy5fZGlyQ2hhbmdlU3Vic2NyaXB0aW9uPWUuY2hhbmdlLnN1YnNjcmliZSgodD0+e3RoaXMuX2NvbXB1dGVQb3NpdGlvbkFuaW1hdGlvblN0YXRlKHQpLG4ubWFya0ZvckNoZWNrKCl9KSkpLHRoaXMuX3RyYW5zbGF0ZVRhYkNvbXBsZXRlLnBpcGUoTWUoKCh0LGUpPT50LmZyb21TdGF0ZT09PWUuZnJvbVN0YXRlJiZ0LnRvU3RhdGU9PT1lLnRvU3RhdGUpKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5faXNDZW50ZXJQb3NpdGlvbih0LnRvU3RhdGUpJiZ0aGlzLl9pc0NlbnRlclBvc2l0aW9uKHRoaXMuX3Bvc2l0aW9uKSYmdGhpcy5fb25DZW50ZXJlZC5lbWl0KCksdGhpcy5faXNDZW50ZXJQb3NpdGlvbih0LmZyb21TdGF0ZSkmJiF0aGlzLl9pc0NlbnRlclBvc2l0aW9uKHRoaXMuX3Bvc2l0aW9uKSYmdGhpcy5fYWZ0ZXJMZWF2aW5nQ2VudGVyLmVtaXQoKX0pKX1zZXQgcG9zaXRpb24odCl7dGhpcy5fcG9zaXRpb25JbmRleD10LHRoaXMuX2NvbXB1dGVQb3NpdGlvbkFuaW1hdGlvblN0YXRlKCl9bmdPbkluaXQoKXsiY2VudGVyIj09dGhpcy5fcG9zaXRpb24mJm51bGwhPXRoaXMub3JpZ2luJiYodGhpcy5fcG9zaXRpb249dGhpcy5fY29tcHV0ZVBvc2l0aW9uRnJvbU9yaWdpbih0aGlzLm9yaWdpbikpfW5nT25EZXN0cm95KCl7dGhpcy5fZGlyQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fdHJhbnNsYXRlVGFiQ29tcGxldGUuY29tcGxldGUoKX1fb25UcmFuc2xhdGVUYWJTdGFydGVkKHQpe2NvbnN0IGU9dGhpcy5faXNDZW50ZXJQb3NpdGlvbih0LnRvU3RhdGUpO3RoaXMuX2JlZm9yZUNlbnRlcmluZy5lbWl0KGUpLGUmJnRoaXMuX29uQ2VudGVyaW5nLmVtaXQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCl9X2dldExheW91dERpcmVjdGlvbigpe3JldHVybiB0aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlPyJydGwiOiJsdHIifV9pc0NlbnRlclBvc2l0aW9uKHQpe3JldHVybiJjZW50ZXIiPT10fHwibGVmdC1vcmlnaW4tY2VudGVyIj09dHx8InJpZ2h0LW9yaWdpbi1jZW50ZXIiPT10fV9jb21wdXRlUG9zaXRpb25BbmltYXRpb25TdGF0ZSh0PXRoaXMuX2dldExheW91dERpcmVjdGlvbigpKXt0aGlzLl9wb3NpdGlvbj10aGlzLl9wb3NpdGlvbkluZGV4PDA/Imx0ciI9PXQ/ImxlZnQiOiJyaWdodCI6dGhpcy5fcG9zaXRpb25JbmRleD4wPyJsdHIiPT10PyJyaWdodCI6ImxlZnQiOiJjZW50ZXIifV9jb21wdXRlUG9zaXRpb25Gcm9tT3JpZ2luKHQpe2NvbnN0IGU9dGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCk7cmV0dXJuImx0ciI9PWUmJnQ8PTB8fCJydGwiPT1lJiZ0PjA/ImxlZnQtb3JpZ2luLWNlbnRlciI6InJpZ2h0LW9yaWdpbi1jZW50ZXIifX1SQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UkIpKFNtKGhnKSxTbShISSw4KSxTbShVZykpfSxSQi7JtWRpcj1sbyh7dHlwZTpSQixpbnB1dHM6e2FuaW1hdGlvbkR1cmF0aW9uOiJhbmltYXRpb25EdXJhdGlvbiIscG9zaXRpb246InBvc2l0aW9uIixfY29udGVudDpbImNvbnRlbnQiLCJfY29udGVudCJdLG9yaWdpbjoib3JpZ2luIn0sb3V0cHV0czp7X29uQ2VudGVyaW5nOiJfb25DZW50ZXJpbmciLF9iZWZvcmVDZW50ZXJpbmc6Il9iZWZvcmVDZW50ZXJpbmciLF9hZnRlckxlYXZpbmdDZW50ZXI6Il9hZnRlckxlYXZpbmdDZW50ZXIiLF9vbkNlbnRlcmVkOiJfb25DZW50ZXJlZCJ9fSksUkIuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6VWd9XSxSQi5wcm9wRGVjb3JhdG9ycz17X29uQ2VudGVyaW5nOlt7dHlwZTpPeX1dLF9iZWZvcmVDZW50ZXJpbmc6W3t0eXBlOk95fV0sX2FmdGVyTGVhdmluZ0NlbnRlcjpbe3R5cGU6T3l9XSxfb25DZW50ZXJlZDpbe3R5cGU6T3l9XSxfY29udGVudDpbe3R5cGU6eHksYXJnczpbImNvbnRlbnQiXX1dLG9yaWdpbjpbe3R5cGU6eHl9XSxhbmltYXRpb25EdXJhdGlvbjpbe3R5cGU6eHl9XSxwb3NpdGlvbjpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChSQixbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlVnfV19KSx7X29uQ2VudGVyaW5nOlt7dHlwZTpPeX1dLF9iZWZvcmVDZW50ZXJpbmc6W3t0eXBlOk95fV0sX2FmdGVyTGVhdmluZ0NlbnRlcjpbe3R5cGU6T3l9XSxfb25DZW50ZXJlZDpbe3R5cGU6T3l9XSxhbmltYXRpb25EdXJhdGlvbjpbe3R5cGU6eHl9XSxwb3NpdGlvbjpbe3R5cGU6eHl9XSxfY29udGVudDpbe3R5cGU6eHksYXJnczpbImNvbnRlbnQiXX1dLG9yaWdpbjpbe3R5cGU6eHl9XX0pO2NsYXNzIEFCIGV4dGVuZHMgUkJ7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSxuKX19QUIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEFCKShTbShoZyksU20oSEksOCksU20oVWcpKX0sQUIuybVjbXA9dG8oe3R5cGU6QUIsc2VsZWN0b3JzOltbIm1hdC10YWItYm9keSJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoREYsNSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5fcG9ydGFsSG9zdD10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LXRhYi1ib2R5Il0sZmVhdHVyZXM6W3hwXSxkZWNsczozLHZhcnM6Nixjb25zdHM6W1siY2RrU2Nyb2xsYWJsZSIsIiIsMSwibWF0LXRhYi1ib2R5LWNvbnRlbnQiXSxbImNvbnRlbnQiLCIiXSxbIm1hdFRhYkJvZHlIb3N0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDAsMSksVm0oIkB0cmFuc2xhdGVUYWIuc3RhcnQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9vblRyYW5zbGF0ZVRhYlN0YXJ0ZWQoZSl9KSkoIkB0cmFuc2xhdGVUYWIuZG9uZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX3RyYW5zbGF0ZVRhYkNvbXBsZXRlLm5leHQoZSl9KSksUXAoMixhQiwwLDAsIm5nLXRlbXBsYXRlIiwyKSxBbSgpKSwyJmUmJkRtKCJAdHJhbnNsYXRlVGFiIix2aCgzLHNCLG4uX3Bvc2l0aW9uLE1oKDEsckIsbi5hbmltYXRpb25EdXJhdGlvbikpKX0sZGlyZWN0aXZlczpbRUJdLHN0eWxlczpbIi5tYXQtdGFiLWJvZHktY29udGVudHtoZWlnaHQ6MTAwJTtvdmVyZmxvdzphdXRvfS5tYXQtdGFiLWdyb3VwLWR5bmFtaWMtaGVpZ2h0IC5tYXQtdGFiLWJvZHktY29udGVudHtvdmVyZmxvdzpoaWRkZW59XG4iXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltEQi50cmFuc2xhdGVUYWJdfX0pLEFCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlVnfV0sQUIucHJvcERlY29yYXRvcnM9e19wb3J0YWxIb3N0Olt7dHlwZTpaYSxhcmdzOltERl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChBQixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtdGFiLWJvZHkiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJtYXQtdGFiLWJvZHktY29udGVudCIgI2NvbnRlbnRcbiAgICAgW0B0cmFuc2xhdGVUYWJdPSJ7XG4gICAgICAgIHZhbHVlOiBfcG9zaXRpb24sXG4gICAgICAgIHBhcmFtczoge2FuaW1hdGlvbkR1cmF0aW9uOiBhbmltYXRpb25EdXJhdGlvbn1cbiAgICAgfSJcbiAgICAgKEB0cmFuc2xhdGVUYWIuc3RhcnQpPSJfb25UcmFuc2xhdGVUYWJTdGFydGVkKCRldmVudCkiXG4gICAgIChAdHJhbnNsYXRlVGFiLmRvbmUpPSJfdHJhbnNsYXRlVGFiQ29tcGxldGUubmV4dCgkZXZlbnQpIlxuICAgICBjZGtTY3JvbGxhYmxlPlxuICA8bmctdGVtcGxhdGUgbWF0VGFiQm9keUhvc3Q+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuJyxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLkRlZmF1bHQsYW5pbWF0aW9uczpbREIudHJhbnNsYXRlVGFiXSxob3N0OntjbGFzczoibWF0LXRhYi1ib2R5In0sc3R5bGVzOlsiLm1hdC10YWItYm9keS1jb250ZW50e2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG99Lm1hdC10YWItZ3JvdXAtZHluYW1pYy1oZWlnaHQgLm1hdC10YWItYm9keS1jb250ZW50e292ZXJmbG93OmhpZGRlbn1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlVnfV19KSx7X3BvcnRhbEhvc3Q6W3t0eXBlOlphLGFyZ3M6W0RGXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBUQj1uZXcgR2EoIk1BVF9UQUJTX0NPTkZJRyIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgTkI9MDtjbGFzcyB6Qnt9Y29uc3QgSUI9SkkoUUkoY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZWxlbWVudFJlZj10fX0pLCJwcmltYXJ5Iik7Y2xhc3MgSEIgZXh0ZW5kcyBJQntjb25zdHJ1Y3Rvcih0LGUsbixvKXt2YXIgaTtzdXBlcih0KSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1lLHRoaXMuX2FuaW1hdGlvbk1vZGU9byx0aGlzLl90YWJzPW5ldyBWaCx0aGlzLl9pbmRleFRvU2VsZWN0PTAsdGhpcy5fdGFiQm9keVdyYXBwZXJIZWlnaHQ9MCx0aGlzLl90YWJzU3Vic2NyaXB0aW9uPW0uRU1QVFksdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl9zZWxlY3RlZEluZGV4PW51bGwsdGhpcy5oZWFkZXJQb3NpdGlvbj0iYWJvdmUiLHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZT1uZXcgTGgsdGhpcy5mb2N1c0NoYW5nZT1uZXcgTGgsdGhpcy5hbmltYXRpb25Eb25lPW5ldyBMaCx0aGlzLnNlbGVjdGVkVGFiQ2hhbmdlPW5ldyBMaCghMCksdGhpcy5fZ3JvdXBJZD1OQisrLHRoaXMuYW5pbWF0aW9uRHVyYXRpb249biYmbi5hbmltYXRpb25EdXJhdGlvbj9uLmFuaW1hdGlvbkR1cmF0aW9uOiI1MDBtcyIsdGhpcy5kaXNhYmxlUGFnaW5hdGlvbj0hKCFufHxudWxsPT1uLmRpc2FibGVQYWdpbmF0aW9uKSYmbi5kaXNhYmxlUGFnaW5hdGlvbix0aGlzLmR5bmFtaWNIZWlnaHQ9ISghbnx8bnVsbD09bi5keW5hbWljSGVpZ2h0KSYmbi5keW5hbWljSGVpZ2h0LHRoaXMuY29udGVudFRhYkluZGV4PW51bGwhPT0oaT1udWxsPT1uP3ZvaWQgMDpuLmNvbnRlbnRUYWJJbmRleCkmJnZvaWQgMCE9PWk/aTpudWxsfWdldCBkeW5hbWljSGVpZ2h0KCl7cmV0dXJuIHRoaXMuX2R5bmFtaWNIZWlnaHR9c2V0IGR5bmFtaWNIZWlnaHQodCl7dGhpcy5fZHluYW1pY0hlaWdodD15eih0KX1nZXQgc2VsZWN0ZWRJbmRleCgpe3JldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4fXNldCBzZWxlY3RlZEluZGV4KHQpe3RoaXMuX2luZGV4VG9TZWxlY3Q9X3oodCxudWxsKX1nZXQgYW5pbWF0aW9uRHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uRHVyYXRpb259c2V0IGFuaW1hdGlvbkR1cmF0aW9uKHQpe3RoaXMuX2FuaW1hdGlvbkR1cmF0aW9uPS9eXGQrJC8udGVzdCh0KT90KyJtcyI6dH1nZXQgY29udGVudFRhYkluZGV4KCl7cmV0dXJuIHRoaXMuX2NvbnRlbnRUYWJJbmRleH1zZXQgY29udGVudFRhYkluZGV4KHQpe3RoaXMuX2NvbnRlbnRUYWJJbmRleD1feih0LG51bGwpfWdldCBiYWNrZ3JvdW5kQ29sb3IoKXtyZXR1cm4gdGhpcy5fYmFja2dyb3VuZENvbG9yfXNldCBiYWNrZ3JvdW5kQ29sb3IodCl7Y29uc3QgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7ZS5jbGFzc0xpc3QucmVtb3ZlKGBtYXQtYmFja2dyb3VuZC0ke3RoaXMuYmFja2dyb3VuZENvbG9yfWApLHQmJmUuY2xhc3NMaXN0LmFkZChgbWF0LWJhY2tncm91bmQtJHt0fWApLHRoaXMuX2JhY2tncm91bmRDb2xvcj10fW5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpe2NvbnN0IHQ9dGhpcy5faW5kZXhUb1NlbGVjdD10aGlzLl9jbGFtcFRhYkluZGV4KHRoaXMuX2luZGV4VG9TZWxlY3QpO2lmKHRoaXMuX3NlbGVjdGVkSW5kZXghPXQpe2NvbnN0IGU9bnVsbD09dGhpcy5fc2VsZWN0ZWRJbmRleDtpZighZSl7dGhpcy5zZWxlY3RlZFRhYkNoYW5nZS5lbWl0KHRoaXMuX2NyZWF0ZUNoYW5nZUV2ZW50KHQpKTtjb25zdCBlPXRoaXMuX3RhYkJvZHlXcmFwcGVyLm5hdGl2ZUVsZW1lbnQ7ZS5zdHlsZS5taW5IZWlnaHQ9ZS5jbGllbnRIZWlnaHQrInB4In1Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX3RhYnMuZm9yRWFjaCgoKGUsbik9PmUuaXNBY3RpdmU9bj09PXQpKSxlfHwodGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQodCksdGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudC5zdHlsZS5taW5IZWlnaHQ9IiIpfSkpfXRoaXMuX3RhYnMuZm9yRWFjaCgoKGUsbik9PntlLnBvc2l0aW9uPW4tdCxudWxsPT10aGlzLl9zZWxlY3RlZEluZGV4fHwwIT1lLnBvc2l0aW9ufHxlLm9yaWdpbnx8KGUub3JpZ2luPXQtdGhpcy5fc2VsZWN0ZWRJbmRleCl9KSksdGhpcy5fc2VsZWN0ZWRJbmRleCE9PXQmJih0aGlzLl9zZWxlY3RlZEluZGV4PXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX3N1YnNjcmliZVRvQWxsVGFiQ2hhbmdlcygpLHRoaXMuX3N1YnNjcmliZVRvVGFiTGFiZWxzKCksdGhpcy5fdGFic1N1YnNjcmlwdGlvbj10aGlzLl90YWJzLmNoYW5nZXMuc3Vic2NyaWJlKCgoKT0+e2lmKHRoaXMuX2NsYW1wVGFiSW5kZXgodGhpcy5faW5kZXhUb1NlbGVjdCk9PT10aGlzLl9zZWxlY3RlZEluZGV4KXtjb25zdCB0PXRoaXMuX3RhYnMudG9BcnJheSgpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV0uaXNBY3RpdmUpe3RoaXMuX2luZGV4VG9TZWxlY3Q9dGhpcy5fc2VsZWN0ZWRJbmRleD1lO2JyZWFrfX10aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pKX1fc3Vic2NyaWJlVG9BbGxUYWJDaGFuZ2VzKCl7dGhpcy5fYWxsVGFicy5jaGFuZ2VzLnBpcGUoTmUodGhpcy5fYWxsVGFicykpLnN1YnNjcmliZSgodD0+e3RoaXMuX3RhYnMucmVzZXQodC5maWx0ZXIoKHQ9PnQuX2Nsb3Nlc3RUYWJHcm91cD09PXRoaXN8fCF0Ll9jbG9zZXN0VGFiR3JvdXApKSksdGhpcy5fdGFicy5ub3RpZnlPbkNoYW5nZXMoKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuX3RhYnMuZGVzdHJveSgpLHRoaXMuX3RhYnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfXJlYWxpZ25JbmtCYXIoKXt0aGlzLl90YWJIZWFkZXImJnRoaXMuX3RhYkhlYWRlci5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCl9Zm9jdXNUYWIodCl7Y29uc3QgZT10aGlzLl90YWJIZWFkZXI7ZSYmKGUuZm9jdXNJbmRleD10KX1fZm9jdXNDaGFuZ2VkKHQpe3RoaXMuZm9jdXNDaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudCh0KSl9X2NyZWF0ZUNoYW5nZUV2ZW50KHQpe2NvbnN0IGU9bmV3IHpCO3JldHVybiBlLmluZGV4PXQsdGhpcy5fdGFicyYmdGhpcy5fdGFicy5sZW5ndGgmJihlLnRhYj10aGlzLl90YWJzLnRvQXJyYXkoKVt0XSksZX1fc3Vic2NyaWJlVG9UYWJMYWJlbHMoKXt0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbiYmdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbj1yZSguLi50aGlzLl90YWJzLm1hcCgodD0+dC5fc3RhdGVDaGFuZ2VzKSkpLnN1YnNjcmliZSgoKCk9PnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKSl9X2NsYW1wVGFiSW5kZXgodCl7cmV0dXJuIE1hdGgubWluKHRoaXMuX3RhYnMubGVuZ3RoLTEsTWF0aC5tYXgodHx8MCwwKSl9X2dldFRhYkxhYmVsSWQodCl7cmV0dXJuYG1hdC10YWItbGFiZWwtJHt0aGlzLl9ncm91cElkfS0ke3R9YH1fZ2V0VGFiQ29udGVudElkKHQpe3JldHVybmBtYXQtdGFiLWNvbnRlbnQtJHt0aGlzLl9ncm91cElkfS0ke3R9YH1fc2V0VGFiQm9keVdyYXBwZXJIZWlnaHQodCl7aWYoIXRoaXMuX2R5bmFtaWNIZWlnaHR8fCF0aGlzLl90YWJCb2R5V3JhcHBlckhlaWdodClyZXR1cm47Y29uc3QgZT10aGlzLl90YWJCb2R5V3JhcHBlci5uYXRpdmVFbGVtZW50O2Uuc3R5bGUuaGVpZ2h0PXRoaXMuX3RhYkJvZHlXcmFwcGVySGVpZ2h0KyJweCIsdGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQmJihlLnN0eWxlLmhlaWdodD10KyJweCIpfV9yZW1vdmVUYWJCb2R5V3JhcHBlckhlaWdodCgpe2NvbnN0IHQ9dGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudDt0aGlzLl90YWJCb2R5V3JhcHBlckhlaWdodD10LmNsaWVudEhlaWdodCx0LnN0eWxlLmhlaWdodD0iIix0aGlzLmFuaW1hdGlvbkRvbmUuZW1pdCgpfV9oYW5kbGVDbGljayh0LGUsbil7dC5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWRJbmRleD1lLmZvY3VzSW5kZXg9bil9X2dldFRhYkluZGV4KHQsZSl7cmV0dXJuIHQuZGlzYWJsZWQ/bnVsbDp0aGlzLnNlbGVjdGVkSW5kZXg9PT1lPzA6LTF9X3RhYkZvY3VzQ2hhbmdlZCh0LGUpe3QmJiJtb3VzZSIhPT10JiYidG91Y2giIT09dCYmKHRoaXMuX3RhYkhlYWRlci5mb2N1c0luZGV4PWUpfX1IQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SEIpKFNtKGhnKSxTbShVZyksU20oVEIsOCksU20oVlAsOCkpfSxIQi7JtWRpcj1sbyh7dHlwZTpIQixpbnB1dHM6e2hlYWRlclBvc2l0aW9uOiJoZWFkZXJQb3NpdGlvbiIsYW5pbWF0aW9uRHVyYXRpb246ImFuaW1hdGlvbkR1cmF0aW9uIixkaXNhYmxlUGFnaW5hdGlvbjoiZGlzYWJsZVBhZ2luYXRpb24iLGR5bmFtaWNIZWlnaHQ6ImR5bmFtaWNIZWlnaHQiLGNvbnRlbnRUYWJJbmRleDoiY29udGVudFRhYkluZGV4IixzZWxlY3RlZEluZGV4OiJzZWxlY3RlZEluZGV4IixiYWNrZ3JvdW5kQ29sb3I6ImJhY2tncm91bmRDb2xvciJ9LG91dHB1dHM6e3NlbGVjdGVkSW5kZXhDaGFuZ2U6InNlbGVjdGVkSW5kZXhDaGFuZ2UiLGZvY3VzQ2hhbmdlOiJmb2N1c0NoYW5nZSIsYW5pbWF0aW9uRG9uZToiYW5pbWF0aW9uRG9uZSIsc2VsZWN0ZWRUYWJDaGFuZ2U6InNlbGVjdGVkVGFiQ2hhbmdlIn0sZmVhdHVyZXM6W3hwXX0pLEhCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbVEJdfSx7dHlwZTpTcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sSEIucHJvcERlY29yYXRvcnM9e2R5bmFtaWNIZWlnaHQ6W3t0eXBlOnh5fV0sc2VsZWN0ZWRJbmRleDpbe3R5cGU6eHl9XSxoZWFkZXJQb3NpdGlvbjpbe3R5cGU6eHl9XSxhbmltYXRpb25EdXJhdGlvbjpbe3R5cGU6eHl9XSxjb250ZW50VGFiSW5kZXg6W3t0eXBlOnh5fV0sZGlzYWJsZVBhZ2luYXRpb246W3t0eXBlOnh5fV0sYmFja2dyb3VuZENvbG9yOlt7dHlwZTp4eX1dLHNlbGVjdGVkSW5kZXhDaGFuZ2U6W3t0eXBlOk95fV0sZm9jdXNDaGFuZ2U6W3t0eXBlOk95fV0sYW5pbWF0aW9uRG9uZTpbe3R5cGU6T3l9XSxzZWxlY3RlZFRhYkNoYW5nZTpbe3R5cGU6T3l9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChIQixbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbVEJdfSx7dHlwZTpTcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV19KSx7aGVhZGVyUG9zaXRpb246W3t0eXBlOnh5fV0sc2VsZWN0ZWRJbmRleENoYW5nZTpbe3R5cGU6T3l9XSxmb2N1c0NoYW5nZTpbe3R5cGU6T3l9XSxhbmltYXRpb25Eb25lOlt7dHlwZTpPeX1dLHNlbGVjdGVkVGFiQ2hhbmdlOlt7dHlwZTpPeX1dLGFuaW1hdGlvbkR1cmF0aW9uOlt7dHlwZTp4eX1dLGRpc2FibGVQYWdpbmF0aW9uOlt7dHlwZTp4eX1dLGR5bmFtaWNIZWlnaHQ6W3t0eXBlOnh5fV0sY29udGVudFRhYkluZGV4Olt7dHlwZTp4eX1dLHNlbGVjdGVkSW5kZXg6W3t0eXBlOnh5fV0sYmFja2dyb3VuZENvbG9yOlt7dHlwZTp4eX1dfSk7Y2xhc3MgRkIgZXh0ZW5kcyBIQntjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0LGUsbixvKX19RkIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEZCKShTbShoZyksU20oVWcpLFNtKFRCLDgpLFNtKFZQLDgpKX0sRkIuybVjbXA9dG8oe3R5cGU6RkIsc2VsZWN0b3JzOltbIm1hdC10YWItZ3JvdXAiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYkaChvLFNCLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX2FsbFRhYnM9dCl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKGxCLDUpLFFoKGNCLDUpKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLl90YWJCb2R5V3JhcHBlcj10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5fdGFiSGVhZGVyPXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtdGFiLWdyb3VwIl0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoIm1hdC10YWItZ3JvdXAtZHluYW1pYy1oZWlnaHQiLG4uZHluYW1pY0hlaWdodCkoIm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIiwiYmVsb3ciPT09bi5oZWFkZXJQb3NpdGlvbil9LGlucHV0czp7Y29sb3I6ImNvbG9yIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIn0sZXhwb3J0QXM6WyJtYXRUYWJHcm91cCJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6a0IsdXNlRXhpc3Rpbmc6RkJ9XSkseHBdLGRlY2xzOjYsdmFyczo3LGNvbnN0czpbWzMsInNlbGVjdGVkSW5kZXgiLCJkaXNhYmxlUmlwcGxlIiwiZGlzYWJsZVBhZ2luYXRpb24iLCJpbmRleEZvY3VzZWQiLCJzZWxlY3RGb2N1c2VkSW5kZXgiXSxbInRhYkhlYWRlciIsIiJdLFsiY2xhc3MiLCJtYXQtdGFiLWxhYmVsIG1hdC1mb2N1cy1pbmRpY2F0b3IiLCJyb2xlIiwidGFiIiwibWF0VGFiTGFiZWxXcmFwcGVyIiwiIiwibWF0LXJpcHBsZSIsIiIsImNka01vbml0b3JFbGVtZW50Rm9jdXMiLCIiLDMsImlkIiwibWF0LXRhYi1sYWJlbC1hY3RpdmUiLCJkaXNhYmxlZCIsIm1hdFJpcHBsZURpc2FibGVkIiwiY2xpY2siLCJjZGtGb2N1c0NoYW5nZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsIm1hdC10YWItYm9keS13cmFwcGVyIl0sWyJ0YWJCb2R5V3JhcHBlciIsIiJdLFsicm9sZSIsInRhYnBhbmVsIiwzLCJpZCIsIm1hdC10YWItYm9keS1hY3RpdmUiLCJjb250ZW50IiwicG9zaXRpb24iLCJvcmlnaW4iLCJhbmltYXRpb25EdXJhdGlvbiIsIl9vbkNlbnRlcmVkIiwiX29uQ2VudGVyaW5nIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInJvbGUiLCJ0YWIiLCJtYXRUYWJMYWJlbFdyYXBwZXIiLCIiLCJtYXQtcmlwcGxlIiwiIiwiY2RrTW9uaXRvckVsZW1lbnRGb2N1cyIsIiIsMSwibWF0LXRhYi1sYWJlbCIsIm1hdC1mb2N1cy1pbmRpY2F0b3IiLDMsImlkIiwiZGlzYWJsZWQiLCJtYXRSaXBwbGVEaXNhYmxlZCIsImNsaWNrIiwiY2RrRm9jdXNDaGFuZ2UiXSxbMSwibWF0LXRhYi1sYWJlbC1jb250ZW50Il0sWzMsIm5nSWYiXSxbMywiY2RrUG9ydGFsT3V0bGV0Il0sWyJyb2xlIiwidGFicGFuZWwiLDMsImlkIiwiY29udGVudCIsInBvc2l0aW9uIiwib3JpZ2luIiwiYW5pbWF0aW9uRHVyYXRpb24iLCJfb25DZW50ZXJlZCIsIl9vbkNlbnRlcmluZyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWF0LXRhYi1oZWFkZXIiLDAsMSksVm0oImluZGV4Rm9jdXNlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2ZvY3VzQ2hhbmdlZChlKX0pKSgic2VsZWN0Rm9jdXNlZEluZGV4IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5zZWxlY3RlZEluZGV4PWV9KSksUXAoMix1Qiw0LDE0LCJkaXYiLDIpLEFtKCksUm0oMywiZGl2IiwzLDQpLFFwKDUsZkIsMSw5LCJtYXQtdGFiLWJvZHkiLDUpLEFtKCkpLDImZSYmKERtKCJzZWxlY3RlZEluZGV4IixuLnNlbGVjdGVkSW5kZXh8fDApKCJkaXNhYmxlUmlwcGxlIixuLmRpc2FibGVSaXBwbGUpKCJkaXNhYmxlUGFnaW5hdGlvbiIsbi5kaXNhYmxlUGFnaW5hdGlvbikscmMoMiksRG0oIm5nRm9yT2YiLG4uX3RhYnMpLHJjKDEpLHB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpLHJjKDIpLERtKCJuZ0Zvck9mIixuLl90YWJzKSl9LGRpcmVjdGl2ZXM6ZnVuY3Rpb24oKXtyZXR1cm5bR0IsbE0sQkIsa0gsREksZE0sREYsQUJdfSxzdHlsZXM6WyIubWF0LXRhYi1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC13aWR0aDoxMDAlfS5tYXQtdGFiLWdyb3VwLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5tYXQtdGFiLWxhYmVse2hlaWdodDo0OHB4O3BhZGRpbmc6MCAyNHB4O2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvcGFjaXR5Oi42O21pbi13aWR0aDoxNjBweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXRhYi1sYWJlbDpmb2N1c3tvdXRsaW5lOm5vbmV9Lm1hdC10YWItbGFiZWw6Zm9jdXM6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1sYWJlbDpmb2N1c3tvdXRsaW5lOmRvdHRlZCAycHg7b3V0bGluZS1vZmZzZXQ6LTJweH0ubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZHtvcGFjaXR5Oi41fS5tYXQtdGFiLWxhYmVsIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnR7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1sYWJlbHtvcGFjaXR5OjF9QG1lZGlhKG1heC13aWR0aDogNTk5cHgpey5tYXQtdGFiLWxhYmVse3BhZGRpbmc6MCAxMnB4fX1AbWVkaWEobWF4LXdpZHRoOiA5NTlweCl7Lm1hdC10YWItbGFiZWx7cGFkZGluZzowIDEycHh9fS5tYXQtdGFiLWdyb3VwW21hdC1zdHJldGNoLXRhYnNdPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbHtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjF9Lm1hdC10YWItYm9keS13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmZsZXg7dHJhbnNpdGlvbjpoZWlnaHQgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtdGFiLWJvZHktd3JhcHBlcnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItYm9keXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjtvdXRsaW5lOjA7ZmxleC1iYXNpczoxMDAlfS5tYXQtdGFiLWJvZHkubWF0LXRhYi1ib2R5LWFjdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87ei1pbmRleDoxO2ZsZXgtZ3JvdzoxfS5tYXQtdGFiLWdyb3VwLm1hdC10YWItZ3JvdXAtZHluYW1pYy1oZWlnaHQgLm1hdC10YWItYm9keS5tYXQtdGFiLWJvZHktYWN0aXZle292ZXJmbG93LXk6aGlkZGVufVxuIl0sZW5jYXBzdWxhdGlvbjoyfSksRkIuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltUQl19LHt0eXBlOlNyfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XSxGQi5wcm9wRGVjb3JhdG9ycz17X2FsbFRhYnM6W3t0eXBlOllhLGFyZ3M6W1NCLHtkZXNjZW5kYW50czohMH1dfV0sX3RhYkJvZHlXcmFwcGVyOlt7dHlwZTpaYSxhcmdzOlsidGFiQm9keVdyYXBwZXIiXX1dLF90YWJIZWFkZXI6W3t0eXBlOlphLGFyZ3M6WyJ0YWJIZWFkZXIiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEZCLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC10YWItZ3JvdXAiLGV4cG9ydEFzOiJtYXRUYWJHcm91cCIsdGVtcGxhdGU6JzxtYXQtdGFiLWhlYWRlciAjdGFiSGVhZGVyXG4gICAgICAgICAgICAgICBbc2VsZWN0ZWRJbmRleF09InNlbGVjdGVkSW5kZXggfHwgMCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlUmlwcGxlXT0iZGlzYWJsZVJpcHBsZSJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlUGFnaW5hdGlvbl09ImRpc2FibGVQYWdpbmF0aW9uIlxuICAgICAgICAgICAgICAgKGluZGV4Rm9jdXNlZCk9Il9mb2N1c0NoYW5nZWQoJGV2ZW50KSJcbiAgICAgICAgICAgICAgIChzZWxlY3RGb2N1c2VkSW5kZXgpPSJzZWxlY3RlZEluZGV4ID0gJGV2ZW50Ij5cbiAgPGRpdiBjbGFzcz0ibWF0LXRhYi1sYWJlbCBtYXQtZm9jdXMtaW5kaWNhdG9yIiByb2xlPSJ0YWIiIG1hdFRhYkxhYmVsV3JhcHBlciBtYXQtcmlwcGxlIGNka01vbml0b3JFbGVtZW50Rm9jdXNcbiAgICAgICAqbmdGb3I9ImxldCB0YWIgb2YgX3RhYnM7IGxldCBpID0gaW5kZXgiXG4gICAgICAgW2lkXT0iX2dldFRhYkxhYmVsSWQoaSkiXG4gICAgICAgW2F0dHIudGFiSW5kZXhdPSJfZ2V0VGFiSW5kZXgodGFiLCBpKSJcbiAgICAgICBbYXR0ci5hcmlhLXBvc2luc2V0XT0iaSArIDEiXG4gICAgICAgW2F0dHIuYXJpYS1zZXRzaXplXT0iX3RhYnMubGVuZ3RoIlxuICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPSJfZ2V0VGFiQ29udGVudElkKGkpIlxuICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPSJzZWxlY3RlZEluZGV4ID09IGkiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbF09InRhYi5hcmlhTGFiZWwgfHwgbnVsbCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPSIoIXRhYi5hcmlhTGFiZWwgJiYgdGFiLmFyaWFMYWJlbGxlZGJ5KSA/IHRhYi5hcmlhTGFiZWxsZWRieSA6IG51bGwiXG4gICAgICAgW2NsYXNzLm1hdC10YWItbGFiZWwtYWN0aXZlXT0ic2VsZWN0ZWRJbmRleCA9PSBpIlxuICAgICAgIFtkaXNhYmxlZF09InRhYi5kaXNhYmxlZCJcbiAgICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJ0YWIuZGlzYWJsZWQgfHwgZGlzYWJsZVJpcHBsZSJcbiAgICAgICAoY2xpY2spPSJfaGFuZGxlQ2xpY2sodGFiLCB0YWJIZWFkZXIsIGkpIlxuICAgICAgIChjZGtGb2N1c0NoYW5nZSk9Il90YWJGb2N1c0NoYW5nZWQoJGV2ZW50LCBpKSI+XG5cblxuICAgIDxkaXYgY2xhc3M9Im1hdC10YWItbGFiZWwtY29udGVudCI+XG4gICAgICBceDNjIS0tIElmIHRoZXJlIGlzIGEgbGFiZWwgdGVtcGxhdGUsIHVzZSBpdC4gLS1ceDNlXG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPSJ0YWIudGVtcGxhdGVMYWJlbCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT0idGFiLnRlbXBsYXRlTGFiZWwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICBceDNjIS0tIElmIHRoZXJlIGlzIG5vdCBhIGxhYmVsIHRlbXBsYXRlLCBmYWxsIGJhY2sgdG8gdGhlIHRleHQgbGFiZWwuIC0tXHgzZVxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT0iIXRhYi50ZW1wbGF0ZUxhYmVsIj57e3RhYi50ZXh0TGFiZWx9fTwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9tYXQtdGFiLWhlYWRlcj5cblxuPGRpdlxuICBjbGFzcz0ibWF0LXRhYi1ib2R5LXdyYXBwZXIiXG4gIFtjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV09Il9hbmltYXRpb25Nb2RlID09PSBcJ05vb3BBbmltYXRpb25zXCciXG4gICN0YWJCb2R5V3JhcHBlcj5cbiAgPG1hdC10YWItYm9keSByb2xlPSJ0YWJwYW5lbCJcbiAgICAgICAgICAgICAgICpuZ0Zvcj0ibGV0IHRhYiBvZiBfdGFiczsgbGV0IGkgPSBpbmRleCJcbiAgICAgICAgICAgICAgIFtpZF09Il9nZXRUYWJDb250ZW50SWQoaSkiXG4gICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09Iihjb250ZW50VGFiSW5kZXggIT0gbnVsbCAmJiBzZWxlY3RlZEluZGV4ID09PSBpKSA/IGNvbnRlbnRUYWJJbmRleCA6IG51bGwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPSJfZ2V0VGFiTGFiZWxJZChpKSJcbiAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtdGFiLWJvZHktYWN0aXZlXT0ic2VsZWN0ZWRJbmRleCA9PT0gaSJcbiAgICAgICAgICAgICAgIFtjb250ZW50XT0idGFiLmNvbnRlbnQhIlxuICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT0idGFiLnBvc2l0aW9uISJcbiAgICAgICAgICAgICAgIFtvcmlnaW5dPSJ0YWIub3JpZ2luIlxuICAgICAgICAgICAgICAgW2FuaW1hdGlvbkR1cmF0aW9uXT0iYW5pbWF0aW9uRHVyYXRpb24iXG4gICAgICAgICAgICAgICAoX29uQ2VudGVyZWQpPSJfcmVtb3ZlVGFiQm9keVdyYXBwZXJIZWlnaHQoKSJcbiAgICAgICAgICAgICAgIChfb25DZW50ZXJpbmcpPSJfc2V0VGFiQm9keVdyYXBwZXJIZWlnaHQoJGV2ZW50KSI+XG4gIDwvbWF0LXRhYi1ib2R5PlxuPC9kaXY+XG4nLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxpbnB1dHM6WyJjb2xvciIsImRpc2FibGVSaXBwbGUiXSxwcm92aWRlcnM6W3twcm92aWRlOmtCLHVzZUV4aXN0aW5nOkZCfV0saG9zdDp7Y2xhc3M6Im1hdC10YWItZ3JvdXAiLCJbY2xhc3MubWF0LXRhYi1ncm91cC1keW5hbWljLWhlaWdodF0iOiJkeW5hbWljSGVpZ2h0IiwiW2NsYXNzLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyXSI6J2hlYWRlclBvc2l0aW9uID09PSAiYmVsb3ciJ30sc3R5bGVzOlsiLm1hdC10YWItZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXgtd2lkdGg6MTAwJX0ubWF0LXRhYi1ncm91cC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlcntmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0ubWF0LXRhYi1sYWJlbHtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMjRweDtjdXJzb3I6cG9pbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3BhY2l0eTouNjttaW4td2lkdGg6MTYwcHg7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpub25lfS5tYXQtdGFiLWxhYmVsOmZvY3VzOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpkb3R0ZWQgMnB4O291dGxpbmUtb2Zmc2V0Oi0ycHh9Lm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LXRhYi1sYWJlbCAubWF0LXRhYi1sYWJlbC1jb250ZW50e2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWx7b3BhY2l0eToxfUBtZWRpYShtYXgtd2lkdGg6IDU5OXB4KXsubWF0LXRhYi1sYWJlbHtwYWRkaW5nOjAgMTJweH19QG1lZGlhKG1heC13aWR0aDogOTU5cHgpey5tYXQtdGFiLWxhYmVse3BhZGRpbmc6MCAxMnB4fX0ubWF0LXRhYi1ncm91cFttYXQtc3RyZXRjaC10YWJzXT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWx7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxfS5tYXQtdGFiLWJvZHktd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpmbGV4O3RyYW5zaXRpb246aGVpZ2h0IDUwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXRhYi1ib2R5LXdyYXBwZXJ7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtdGFiLWJvZHl7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47b3V0bGluZTowO2ZsZXgtYmFzaXM6MTAwJX0ubWF0LXRhYi1ib2R5Lm1hdC10YWItYm9keS1hY3RpdmV7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO3otaW5kZXg6MTtmbGV4LWdyb3c6MX0ubWF0LXRhYi1ncm91cC5tYXQtdGFiLWdyb3VwLWR5bmFtaWMtaGVpZ2h0IC5tYXQtdGFiLWJvZHkubWF0LXRhYi1ib2R5LWFjdGl2ZXtvdmVyZmxvdy15OmhpZGRlbn1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbVEJdfSx7dHlwZTpTcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV19KSx7X2FsbFRhYnM6W3t0eXBlOllhLGFyZ3M6W1NCLHtkZXNjZW5kYW50czohMH1dfV0sX3RhYkJvZHlXcmFwcGVyOlt7dHlwZTpaYSxhcmdzOlsidGFiQm9keVdyYXBwZXIiXX1dLF90YWJIZWFkZXI6W3t0eXBlOlphLGFyZ3M6WyJ0YWJIZWFkZXIiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBMQj1LSShjbGFzc3t9KTtjbGFzcyBCQiBleHRlbmRzIExCe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5lbGVtZW50UmVmPXR9Zm9jdXMoKXt0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfWdldE9mZnNldExlZnQoKXtyZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdH1nZXRPZmZzZXRXaWR0aCgpe3JldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aH19QkIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJCKShTbShoZykpfSxCQi7JtWRpcj1sbyh7dHlwZTpCQixzZWxlY3RvcnM6W1siIiwibWF0VGFiTGFiZWxXcmFwcGVyIiwiIl1dLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJihqcCgiYXJpYS1kaXNhYmxlZCIsISFuLmRpc2FibGVkKSxwdSgibWF0LXRhYi1kaXNhYmxlZCIsbi5kaXNhYmxlZCkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCJ9LGZlYXR1cmVzOlt4cF19KSxCQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCQixbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0VGFiTGFiZWxXcmFwcGVyXSIsaW5wdXRzOlsiZGlzYWJsZWQiXSxob3N0OnsiW2NsYXNzLm1hdC10YWItZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbYXR0ci5hcmlhLWRpc2FibGVkXSI6IiEhZGlzYWJsZWQifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFZCPU56KHtwYXNzaXZlOiEwfSk7Y2xhc3MgakJ7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscil7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fdmlld3BvcnRSdWxlcj1uLHRoaXMuX2Rpcj1vLHRoaXMuX25nWm9uZT1pLHRoaXMuX3BsYXRmb3JtPWEsdGhpcy5fYW5pbWF0aW9uTW9kZT1yLHRoaXMuX3Njcm9sbERpc3RhbmNlPTAsdGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQ9ITEsdGhpcy5fZGVzdHJveWVkPW5ldyBJLHRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHM9ITEsdGhpcy5fZGlzYWJsZVNjcm9sbEFmdGVyPSEwLHRoaXMuX2Rpc2FibGVTY3JvbGxCZWZvcmU9ITAsdGhpcy5fc3RvcFNjcm9sbGluZz1uZXcgSSx0aGlzLmRpc2FibGVQYWdpbmF0aW9uPSExLHRoaXMuX3NlbGVjdGVkSW5kZXg9MCx0aGlzLnNlbGVjdEZvY3VzZWRJbmRleD1uZXcgTGgsdGhpcy5pbmRleEZvY3VzZWQ9bmV3IExoLGkucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57b2UodC5uYXRpdmVFbGVtZW50LCJtb3VzZWxlYXZlIikucGlwZShJZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fc3RvcEludGVydmFsKCl9KSl9KSl9Z2V0IHNlbGVjdGVkSW5kZXgoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleH1zZXQgc2VsZWN0ZWRJbmRleCh0KXt0PV96KHQpLHRoaXMuX3NlbGVjdGVkSW5kZXghPXQmJih0aGlzLl9zZWxlY3RlZEluZGV4Q2hhbmdlZD0hMCx0aGlzLl9zZWxlY3RlZEluZGV4PXQsdGhpcy5fa2V5TWFuYWdlciYmdGhpcy5fa2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKHQpKX1uZ0FmdGVyVmlld0luaXQoKXtvZSh0aGlzLl9wcmV2aW91c1BhZ2luYXRvci5uYXRpdmVFbGVtZW50LCJ0b3VjaHN0YXJ0IixWQikucGlwZShJZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5faGFuZGxlUGFnaW5hdG9yUHJlc3MoImJlZm9yZSIpfSkpLG9lKHRoaXMuX25leHRQYWdpbmF0b3IubmF0aXZlRWxlbWVudCwidG91Y2hzdGFydCIsVkIpLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2hhbmRsZVBhZ2luYXRvclByZXNzKCJhZnRlciIpfSkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe2NvbnN0IHQ9dGhpcy5fZGlyP3RoaXMuX2Rpci5jaGFuZ2U6RXQoImx0ciIpLGU9dGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoMTUwKSxuPSgpPT57dGhpcy51cGRhdGVQYWdpbmF0aW9uKCksdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCl9O3RoaXMuX2tleU1hbmFnZXI9bmV3IGVJKHRoaXMuX2l0ZW1zKS53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2dldExheW91dERpcmVjdGlvbigpKS53aXRoSG9tZUFuZEVuZCgpLndpdGhXcmFwKCksdGhpcy5fa2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKHRoaXMuX3NlbGVjdGVkSW5kZXgpLCJ1bmRlZmluZWQiIT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3JlcXVlc3RBbmltYXRpb25GcmFtZShuKTpuKCkscmUodCxlLHRoaXMuX2l0ZW1zLmNoYW5nZXMpLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX25nWm9uZS5ydW4oKCgpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKG4pKSksdGhpcy5fa2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2dldExheW91dERpcmVjdGlvbigpKX0pKSx0aGlzLl9rZXlNYW5hZ2VyLmNoYW5nZS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodD0+e3RoaXMuaW5kZXhGb2N1c2VkLmVtaXQodCksdGhpcy5fc2V0VGFiRm9jdXModCl9KSl9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7dGhpcy5fdGFiTGFiZWxDb3VudCE9dGhpcy5faXRlbXMubGVuZ3RoJiYodGhpcy51cGRhdGVQYWdpbmF0aW9uKCksdGhpcy5fdGFiTGFiZWxDb3VudD10aGlzLl9pdGVtcy5sZW5ndGgsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpLHRoaXMuX3NlbGVjdGVkSW5kZXhDaGFuZ2VkJiYodGhpcy5fc2Nyb2xsVG9MYWJlbCh0aGlzLl9zZWxlY3RlZEluZGV4KSx0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCksdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCksdGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQ9ITEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpLHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCYmKHRoaXMuX3VwZGF0ZVRhYlNjcm9sbFBvc2l0aW9uKCksdGhpcy5fc2Nyb2xsRGlzdGFuY2VDaGFuZ2VkPSExLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZC5uZXh0KCksdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCksdGhpcy5fc3RvcFNjcm9sbGluZy5jb21wbGV0ZSgpfV9oYW5kbGVLZXlkb3duKHQpe2lmKCFieih0KSlzd2l0Y2godC5rZXlDb2RlKXtjYXNlIG16OmNhc2UgZno6dGhpcy5mb2N1c0luZGV4IT09dGhpcy5zZWxlY3RlZEluZGV4JiYodGhpcy5zZWxlY3RGb2N1c2VkSW5kZXguZW1pdCh0aGlzLmZvY3VzSW5kZXgpLHRoaXMuX2l0ZW1TZWxlY3RlZCh0KSk7YnJlYWs7ZGVmYXVsdDp0aGlzLl9rZXlNYW5hZ2VyLm9uS2V5ZG93bih0KX19X29uQ29udGVudENoYW5nZXMoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudDt0IT09dGhpcy5fY3VycmVudFRleHRDb250ZW50JiYodGhpcy5fY3VycmVudFRleHRDb250ZW50PXR8fCIiLHRoaXMuX25nWm9uZS5ydW4oKCgpPT57dGhpcy51cGRhdGVQYWdpbmF0aW9uKCksdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSkpfXVwZGF0ZVBhZ2luYXRpb24oKXt0aGlzLl9jaGVja1BhZ2luYXRpb25FbmFibGVkKCksdGhpcy5fY2hlY2tTY3JvbGxpbmdDb250cm9scygpLHRoaXMuX3VwZGF0ZVRhYlNjcm9sbFBvc2l0aW9uKCl9Z2V0IGZvY3VzSW5kZXgoKXtyZXR1cm4gdGhpcy5fa2V5TWFuYWdlcj90aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleDowfXNldCBmb2N1c0luZGV4KHQpe3RoaXMuX2lzVmFsaWRJbmRleCh0KSYmdGhpcy5mb2N1c0luZGV4IT09dCYmdGhpcy5fa2V5TWFuYWdlciYmdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHQpfV9pc1ZhbGlkSW5kZXgodCl7aWYoIXRoaXMuX2l0ZW1zKXJldHVybiEwO2NvbnN0IGU9dGhpcy5faXRlbXM/dGhpcy5faXRlbXMudG9BcnJheSgpW3RdOm51bGw7cmV0dXJuISFlJiYhZS5kaXNhYmxlZH1fc2V0VGFiRm9jdXModCl7aWYodGhpcy5fc2hvd1BhZ2luYXRpb25Db250cm9scyYmdGhpcy5fc2Nyb2xsVG9MYWJlbCh0KSx0aGlzLl9pdGVtcyYmdGhpcy5faXRlbXMubGVuZ3RoKXt0aGlzLl9pdGVtcy50b0FycmF5KClbdF0uZm9jdXMoKTtjb25zdCBlPXRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudCxuPXRoaXMuX2dldExheW91dERpcmVjdGlvbigpO2Uuc2Nyb2xsTGVmdD0ibHRyIj09bj8wOmUuc2Nyb2xsV2lkdGgtZS5vZmZzZXRXaWR0aH19X2dldExheW91dERpcmVjdGlvbigpe3JldHVybiB0aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlPyJydGwiOiJsdHIifV91cGRhdGVUYWJTY3JvbGxQb3NpdGlvbigpe2lmKHRoaXMuZGlzYWJsZVBhZ2luYXRpb24pcmV0dXJuO2NvbnN0IHQ9dGhpcy5zY3JvbGxEaXN0YW5jZSxlPSJsdHIiPT09dGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCk/LXQ6dDt0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVYKCR7TWF0aC5yb3VuZChlKX1weClgLCh0aGlzLl9wbGF0Zm9ybS5UUklERU5UfHx0aGlzLl9wbGF0Zm9ybS5FREdFKSYmKHRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0PTApfWdldCBzY3JvbGxEaXN0YW5jZSgpe3JldHVybiB0aGlzLl9zY3JvbGxEaXN0YW5jZX1zZXQgc2Nyb2xsRGlzdGFuY2UodCl7dGhpcy5fc2Nyb2xsVG8odCl9X3Njcm9sbEhlYWRlcih0KXtyZXR1cm4gdGhpcy5fc2Nyb2xsVG8odGhpcy5fc2Nyb2xsRGlzdGFuY2UrKCJiZWZvcmUiPT10Py0xOjEpKnRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aC8zKX1faGFuZGxlUGFnaW5hdG9yQ2xpY2sodCl7dGhpcy5fc3RvcEludGVydmFsKCksdGhpcy5fc2Nyb2xsSGVhZGVyKHQpfV9zY3JvbGxUb0xhYmVsKHQpe2lmKHRoaXMuZGlzYWJsZVBhZ2luYXRpb24pcmV0dXJuO2NvbnN0IGU9dGhpcy5faXRlbXM/dGhpcy5faXRlbXMudG9BcnJheSgpW3RdOm51bGw7aWYoIWUpcmV0dXJuO2NvbnN0IG49dGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLHtvZmZzZXRMZWZ0Om8sb2Zmc2V0V2lkdGg6aX09ZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7bGV0IGEscjsibHRyIj09dGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCk/KGE9byxyPWEraSk6KHI9dGhpcy5fdGFiTGlzdC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLW8sYT1yLWkpO2NvbnN0IHM9dGhpcy5zY3JvbGxEaXN0YW5jZSxsPXRoaXMuc2Nyb2xsRGlzdGFuY2UrbjthPHM/dGhpcy5zY3JvbGxEaXN0YW5jZS09cy1hKzYwOnI+bCYmKHRoaXMuc2Nyb2xsRGlzdGFuY2UrPXItbCs2MCl9X2NoZWNrUGFnaW5hdGlvbkVuYWJsZWQoKXtpZih0aGlzLmRpc2FibGVQYWdpbmF0aW9uKXRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHM9ITE7ZWxzZXtjb25zdCB0PXRoaXMuX3RhYkxpc3QubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aD50aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7dHx8KHRoaXMuc2Nyb2xsRGlzdGFuY2U9MCksdCE9PXRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHMmJnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHM9dH19X2NoZWNrU2Nyb2xsaW5nQ29udHJvbHMoKXt0aGlzLmRpc2FibGVQYWdpbmF0aW9uP3RoaXMuX2Rpc2FibGVTY3JvbGxBZnRlcj10aGlzLl9kaXNhYmxlU2Nyb2xsQmVmb3JlPSEwOih0aGlzLl9kaXNhYmxlU2Nyb2xsQmVmb3JlPTA9PXRoaXMuc2Nyb2xsRGlzdGFuY2UsdGhpcy5fZGlzYWJsZVNjcm9sbEFmdGVyPXRoaXMuc2Nyb2xsRGlzdGFuY2U9PXRoaXMuX2dldE1heFNjcm9sbERpc3RhbmNlKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfV9nZXRNYXhTY3JvbGxEaXN0YW5jZSgpe3JldHVybiB0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGgtdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofHwwfV9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKXtjb25zdCB0PXRoaXMuX2l0ZW1zJiZ0aGlzLl9pdGVtcy5sZW5ndGg/dGhpcy5faXRlbXMudG9BcnJheSgpW3RoaXMuc2VsZWN0ZWRJbmRleF06bnVsbCxlPXQ/dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ6bnVsbDtlP3RoaXMuX2lua0Jhci5hbGlnblRvRWxlbWVudChlKTp0aGlzLl9pbmtCYXIuaGlkZSgpfV9zdG9wSW50ZXJ2YWwoKXt0aGlzLl9zdG9wU2Nyb2xsaW5nLm5leHQoKX1faGFuZGxlUGFnaW5hdG9yUHJlc3ModCxlKXtlJiZudWxsIT1lLmJ1dHRvbiYmMCE9PWUuYnV0dG9ufHwodGhpcy5fc3RvcEludGVydmFsKCksYWUoNjUwLDEwMCkucGlwZShJZShyZSh0aGlzLl9zdG9wU2Nyb2xsaW5nLHRoaXMuX2Rlc3Ryb3llZCkpKS5zdWJzY3JpYmUoKCgpPT57Y29uc3R7bWF4U2Nyb2xsRGlzdGFuY2U6ZSxkaXN0YW5jZTpufT10aGlzLl9zY3JvbGxIZWFkZXIodCk7KDA9PT1ufHxuPj1lKSYmdGhpcy5fc3RvcEludGVydmFsKCl9KSkpfV9zY3JvbGxUbyh0KXtpZih0aGlzLmRpc2FibGVQYWdpbmF0aW9uKXJldHVybnttYXhTY3JvbGxEaXN0YW5jZTowLGRpc3RhbmNlOjB9O2NvbnN0IGU9dGhpcy5fZ2V0TWF4U2Nyb2xsRGlzdGFuY2UoKTtyZXR1cm4gdGhpcy5fc2Nyb2xsRGlzdGFuY2U9TWF0aC5tYXgoMCxNYXRoLm1pbihlLHQpKSx0aGlzLl9zY3JvbGxEaXN0YW5jZUNoYW5nZWQ9ITAsdGhpcy5fY2hlY2tTY3JvbGxpbmdDb250cm9scygpLHttYXhTY3JvbGxEaXN0YW5jZTplLGRpc3RhbmNlOnRoaXMuX3Njcm9sbERpc3RhbmNlfX19akIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGpCKShTbShoZyksU20oVWcpLFNtKHVGKSxTbShISSw4KSxTbShhXyksU20od3opLFNtKFZQLDgpKX0sakIuybVkaXI9bG8oe3R5cGU6akIsaW5wdXRzOntkaXNhYmxlUGFnaW5hdGlvbjoiZGlzYWJsZVBhZ2luYXRpb24ifX0pLGpCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp1Rn0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sakIucHJvcERlY29yYXRvcnM9e2Rpc2FibGVQYWdpbmF0aW9uOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGpCLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnVGfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XX0pLHtkaXNhYmxlUGFnaW5hdGlvbjpbe3R5cGU6eHl9XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgVUIgZXh0ZW5kcyBqQntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXtzdXBlcih0LGUsbixvLGksYSxyKSx0aGlzLl9kaXNhYmxlUmlwcGxlPSExfWdldCBkaXNhYmxlUmlwcGxlKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVSaXBwbGV9c2V0IGRpc2FibGVSaXBwbGUodCl7dGhpcy5fZGlzYWJsZVJpcHBsZT15eih0KX1faXRlbVNlbGVjdGVkKHQpe3QucHJldmVudERlZmF1bHQoKX19VUIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVCKShTbShoZyksU20oVWcpLFNtKHVGKSxTbShISSw4KSxTbShhXyksU20od3opLFNtKFZQLDgpKX0sVUIuybVkaXI9bG8oe3R5cGU6VUIsaW5wdXRzOntkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIn0sZmVhdHVyZXM6W3hwXX0pLFVCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp1Rn0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sVUIucHJvcERlY29yYXRvcnM9e2Rpc2FibGVSaXBwbGU6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVUIsW3t0eXBlOkN5fV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6dUZ9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse2Rpc2FibGVSaXBwbGU6W3t0eXBlOnh5fV19KTtjbGFzcyBHQiBleHRlbmRzIFVCe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3N1cGVyKHQsZSxuLG8saSxhLHIpfX1HQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8R0IpKFNtKGhnKSxTbShVZyksU20odUYpLFNtKEhJLDgpLFNtKGFfKSxTbSh3eiksU20oVlAsOCkpfSxHQi7JtWNtcD10byh7dHlwZTpHQixzZWxlY3RvcnM6W1sibWF0LXRhYi1oZWFkZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYkaChvLEJCLDQpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX2l0ZW1zPXQpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChNQiw3KSxRaChnQiw3KSxRaChoQiw3KSxRaChiQiw1KSxRaCh5Qiw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5faW5rQmFyPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl90YWJMaXN0Q29udGFpbmVyPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl90YWJMaXN0PXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9uZXh0UGFnaW5hdG9yPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9wcmV2aW91c1BhZ2luYXRvcj10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LXRhYi1oZWFkZXIiXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIixuLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzKSgibWF0LXRhYi1oZWFkZXItcnRsIiwicnRsIj09bi5fZ2V0TGF5b3V0RGlyZWN0aW9uKCkpfSxpbnB1dHM6e3NlbGVjdGVkSW5kZXg6InNlbGVjdGVkSW5kZXgifSxvdXRwdXRzOntzZWxlY3RGb2N1c2VkSW5kZXg6InNlbGVjdEZvY3VzZWRJbmRleCIsaW5kZXhGb2N1c2VkOiJpbmRleEZvY3VzZWQifSxmZWF0dXJlczpbeHBdLG5nQ29udGVudFNlbGVjdG9yczppQixkZWNsczoxMyx2YXJzOjgsY29uc3RzOltbImFyaWEtaGlkZGVuIiwidHJ1ZSIsIm1hdC1yaXBwbGUiLCIiLDEsIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24iLCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSIsIm1hdC1lbGV2YXRpb24tejQiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwiY2xpY2siLCJtb3VzZWRvd24iLCJ0b3VjaGVuZCJdLFsicHJldmlvdXNQYWdpbmF0b3IiLCIiXSxbMSwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIl0sWzEsIm1hdC10YWItbGFiZWwtY29udGFpbmVyIiwzLCJrZXlkb3duIl0sWyJ0YWJMaXN0Q29udGFpbmVyIiwiIl0sWyJyb2xlIiwidGFibGlzdCIsMSwibWF0LXRhYi1saXN0IiwzLCJjZGtPYnNlcnZlQ29udGVudCJdLFsidGFiTGlzdCIsIiJdLFsxLCJtYXQtdGFiLWxhYmVscyJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwibWF0LXJpcHBsZSIsIiIsMSwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiIsIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIiLCJtYXQtZWxldmF0aW9uLXo0IiwzLCJtYXRSaXBwbGVEaXNhYmxlZCIsIm1vdXNlZG93biIsImNsaWNrIiwidG91Y2hlbmQiXSxbIm5leHRQYWdpbmF0b3IiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFptKCksUm0oMCwiZGl2IiwwLDEpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5faGFuZGxlUGFnaW5hdG9yQ2xpY2soImJlZm9yZSIpfSkpKCJtb3VzZWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVQYWdpbmF0b3JQcmVzcygiYmVmb3JlIixlKX0pKSgidG91Y2hlbmQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX3N0b3BJbnRlcnZhbCgpfSkpLFRtKDIsImRpdiIsMiksQW0oKSxSbSgzLCJkaXYiLDMsNCksVm0oImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVLZXlkb3duKGUpfSkpLFJtKDUsImRpdiIsNSw2KSxWbSgiY2RrT2JzZXJ2ZUNvbnRlbnQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uQ29udGVudENoYW5nZXMoKX0pKSxSbSg3LCJkaXYiLDcpLFhtKDgpLEFtKCksVG0oOSwibWF0LWluay1iYXIiKSxBbSgpLEFtKCksUm0oMTAsImRpdiIsOCw5KSxWbSgibW91c2Vkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlUGFnaW5hdG9yUHJlc3MoImFmdGVyIixlKX0pKSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2hhbmRsZVBhZ2luYXRvckNsaWNrKCJhZnRlciIpfSkpKCJ0b3VjaGVuZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc3RvcEludGVydmFsKCl9KSksVG0oMTIsImRpdiIsMiksQW0oKSksMiZlJiYocHUoIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQiLG4uX2Rpc2FibGVTY3JvbGxCZWZvcmUpLERtKCJtYXRSaXBwbGVEaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEJlZm9yZXx8bi5kaXNhYmxlUmlwcGxlKSxyYyg1KSxwdSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1uLl9hbmltYXRpb25Nb2RlKSxyYyg1KSxwdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEFmdGVyKSxEbSgibWF0UmlwcGxlRGlzYWJsZWQiLG4uX2Rpc2FibGVTY3JvbGxBZnRlcnx8bi5kaXNhYmxlUmlwcGxlKSl9LGRpcmVjdGl2ZXM6W2tILGp6LE1CXSxzdHlsZXM6WycubWF0LXRhYi1oZWFkZXJ7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LXNocmluazowfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Om5vbmU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOjMycHg7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0b3VjaC1hY3Rpb246bm9uZX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2Rpc3BsYXk6ZmxleH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUsLm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlcntwYWRkaW5nLWxlZnQ6NHB4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlLC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVye3BhZGRpbmctcmlnaHQ6NHB4fS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4IDJweCAwIDA7Y29udGVudDoiIjtoZWlnaHQ6OHB4O3dpZHRoOjhweH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZHtib3gtc2hhZG93Om5vbmU7Y3Vyc29yOmRlZmF1bHR9Lm1hdC10YWItbGlzdHtmbGV4LWdyb3c6MTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Lm1hdC1pbmstYmFye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2hlaWdodDoycHg7dHJhbnNpdGlvbjo1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1pbmstYmFye3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC1pbmstYmFye2JvdHRvbTphdXRvO3RvcDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pbmstYmFye291dGxpbmU6c29saWQgMnB4O2hlaWdodDowfS5tYXQtdGFiLWxhYmVsc3tkaXNwbGF5OmZsZXh9W21hdC1hbGlnbi10YWJzPWNlbnRlcl0+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsc3tqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVttYXQtYWxpZ24tdGFicz1lbmRdPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbHN7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5tYXQtdGFiLWxhYmVsLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXRhYi1saXN0e3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXRhYi1sYWJlbHtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMjRweDtjdXJzb3I6cG9pbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3BhY2l0eTouNjttaW4td2lkdGg6MTYwcHg7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpub25lfS5tYXQtdGFiLWxhYmVsOmZvY3VzOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpkb3R0ZWQgMnB4O291dGxpbmUtb2Zmc2V0Oi0ycHh9Lm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LXRhYi1sYWJlbCAubWF0LXRhYi1sYWJlbC1jb250ZW50e2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWx7b3BhY2l0eToxfUBtZWRpYShtYXgtd2lkdGg6IDU5OXB4KXsubWF0LXRhYi1sYWJlbHttaW4td2lkdGg6NzJweH19XG4nXSxlbmNhcHN1bGF0aW9uOjJ9KSxHQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6dUZ9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dLEdCLnByb3BEZWNvcmF0b3JzPXtfaXRlbXM6W3t0eXBlOllhLGFyZ3M6W0JCLHtkZXNjZW5kYW50czohMX1dfV0sX2lua0Jhcjpbe3R5cGU6WmEsYXJnczpbTUIse3N0YXRpYzohMH1dfV0sX3RhYkxpc3RDb250YWluZXI6W3t0eXBlOlphLGFyZ3M6WyJ0YWJMaXN0Q29udGFpbmVyIix7c3RhdGljOiEwfV19XSxfdGFiTGlzdDpbe3R5cGU6WmEsYXJnczpbInRhYkxpc3QiLHtzdGF0aWM6ITB9XX1dLF9uZXh0UGFnaW5hdG9yOlt7dHlwZTpaYSxhcmdzOlsibmV4dFBhZ2luYXRvciJdfV0sX3ByZXZpb3VzUGFnaW5hdG9yOlt7dHlwZTpaYSxhcmdzOlsicHJldmlvdXNQYWdpbmF0b3IiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEdCLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC10YWItaGVhZGVyIix0ZW1wbGF0ZTonPGRpdiBjbGFzcz0ibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiBtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSBtYXQtZWxldmF0aW9uLXo0IlxuICAgICAjcHJldmlvdXNQYWdpbmF0b3JcbiAgICAgYXJpYS1oaWRkZW49InRydWUiXG4gICAgIG1hdC1yaXBwbGUgW21hdFJpcHBsZURpc2FibGVkXT0iX2Rpc2FibGVTY3JvbGxCZWZvcmUgfHwgZGlzYWJsZVJpcHBsZSJcbiAgICAgW2NsYXNzLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEJlZm9yZSJcbiAgICAgKGNsaWNrKT0iX2hhbmRsZVBhZ2luYXRvckNsaWNrKFwnYmVmb3JlXCcpIlxuICAgICAobW91c2Vkb3duKT0iX2hhbmRsZVBhZ2luYXRvclByZXNzKFwnYmVmb3JlXCcsICRldmVudCkiXG4gICAgICh0b3VjaGVuZCk9Il9zdG9wSW50ZXJ2YWwoKSI+XG4gIDxkaXYgY2xhc3M9Im1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiI+PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz0ibWF0LXRhYi1sYWJlbC1jb250YWluZXIiICN0YWJMaXN0Q29udGFpbmVyIChrZXlkb3duKT0iX2hhbmRsZUtleWRvd24oJGV2ZW50KSI+XG4gIDxkaXZcbiAgICAjdGFiTGlzdFxuICAgIGNsYXNzPSJtYXQtdGFiLWxpc3QiXG4gICAgW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXT0iX2FuaW1hdGlvbk1vZGUgPT09IFwnTm9vcEFuaW1hdGlvbnNcJyJcbiAgICByb2xlPSJ0YWJsaXN0IlxuICAgIChjZGtPYnNlcnZlQ29udGVudCk9Il9vbkNvbnRlbnRDaGFuZ2VzKCkiPlxuICAgIDxkaXYgY2xhc3M9Im1hdC10YWItbGFiZWxzIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bWF0LWluay1iYXI+PC9tYXQtaW5rLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz0ibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiBtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVyIG1hdC1lbGV2YXRpb24tejQiXG4gICAgICNuZXh0UGFnaW5hdG9yXG4gICAgIGFyaWEtaGlkZGVuPSJ0cnVlIlxuICAgICBtYXQtcmlwcGxlIFttYXRSaXBwbGVEaXNhYmxlZF09Il9kaXNhYmxlU2Nyb2xsQWZ0ZXIgfHwgZGlzYWJsZVJpcHBsZSJcbiAgICAgW2NsYXNzLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEFmdGVyIlxuICAgICAobW91c2Vkb3duKT0iX2hhbmRsZVBhZ2luYXRvclByZXNzKFwnYWZ0ZXJcJywgJGV2ZW50KSJcbiAgICAgKGNsaWNrKT0iX2hhbmRsZVBhZ2luYXRvckNsaWNrKFwnYWZ0ZXJcJykiXG4gICAgICh0b3VjaGVuZCk9Il9zdG9wSW50ZXJ2YWwoKSI+XG4gIDxkaXYgY2xhc3M9Im1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiI+PC9kaXY+XG48L2Rpdj5cbicsaW5wdXRzOlsic2VsZWN0ZWRJbmRleCJdLG91dHB1dHM6WyJzZWxlY3RGb2N1c2VkSW5kZXgiLCJpbmRleEZvY3VzZWQiXSxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLkRlZmF1bHQsaG9zdDp7Y2xhc3M6Im1hdC10YWItaGVhZGVyIiwiW2NsYXNzLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY29udHJvbHMtZW5hYmxlZF0iOiJfc2hvd1BhZ2luYXRpb25Db250cm9scyIsIltjbGFzcy5tYXQtdGFiLWhlYWRlci1ydGxdIjoiX2dldExheW91dERpcmVjdGlvbigpID09ICdydGwnIn0sc3R5bGVzOlsnLm1hdC10YWItaGVhZGVye2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7ZmxleC1zaHJpbms6MH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpub25lO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21pbi13aWR0aDozMnB4O2N1cnNvcjpwb2ludGVyO3otaW5kZXg6Mjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dG91Y2gtYWN0aW9uOm5vbmV9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY29udHJvbHMtZW5hYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntkaXNwbGF5OmZsZXh9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlLC5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXJ7cGFkZGluZy1sZWZ0OjRweH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKX0ubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSwubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlcntwYWRkaW5nLXJpZ2h0OjRweH0ubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweCAycHggMCAwO2NvbnRlbnQ6IiI7aGVpZ2h0OjhweDt3aWR0aDo4cHh9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWR7Ym94LXNoYWRvdzpub25lO2N1cnNvcjpkZWZhdWx0fS5tYXQtdGFiLWxpc3R7ZmxleC1ncm93OjE7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5tYXQtaW5rLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtoZWlnaHQ6MnB4O3RyYW5zaXRpb246NTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtaW5rLWJhcnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtaW5rLWJhcntib3R0b206YXV0bzt0b3A6MH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtaW5rLWJhcntvdXRsaW5lOnNvbGlkIDJweDtoZWlnaHQ6MH0ubWF0LXRhYi1sYWJlbHN7ZGlzcGxheTpmbGV4fVttYXQtYWxpZ24tdGFicz1jZW50ZXJdPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbHN7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bbWF0LWFsaWduLXRhYnM9ZW5kXT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWxze2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ubWF0LXRhYi1sYWJlbC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO292ZXJmbG93OmhpZGRlbjt6LWluZGV4OjF9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC10YWItbGlzdHt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItbGFiZWx7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDI0cHg7Y3Vyc29yOnBvaW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6LjY7bWluLXdpZHRoOjE2MHB4O3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtdGFiLWxhYmVsOmZvY3Vze291dGxpbmU6bm9uZX0ubWF0LXRhYi1sYWJlbDpmb2N1czpub3QoLm1hdC10YWItZGlzYWJsZWQpe29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVsOmZvY3Vze291dGxpbmU6ZG90dGVkIDJweDtvdXRsaW5lLW9mZnNldDotMnB4fS5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVke29wYWNpdHk6LjV9Lm1hdC10YWItbGFiZWwgLm1hdC10YWItbGFiZWwtY29udGVudHtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVse29wYWNpdHk6MX1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Lm1hdC10YWItbGFiZWx7bWluLXdpZHRoOjcycHh9fVxuJ119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnVGfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XX0pLHtfaXRlbXM6W3t0eXBlOllhLGFyZ3M6W0JCLHtkZXNjZW5kYW50czohMX1dfV0sX2lua0Jhcjpbe3R5cGU6WmEsYXJnczpbTUIse3N0YXRpYzohMH1dfV0sX3RhYkxpc3RDb250YWluZXI6W3t0eXBlOlphLGFyZ3M6WyJ0YWJMaXN0Q29udGFpbmVyIix7c3RhdGljOiEwfV19XSxfdGFiTGlzdDpbe3R5cGU6WmEsYXJnczpbInRhYkxpc3QiLHtzdGF0aWM6ITB9XX1dLF9uZXh0UGFnaW5hdG9yOlt7dHlwZTpaYSxhcmdzOlsibmV4dFBhZ2luYXRvciJdfV0sX3ByZXZpb3VzUGFnaW5hdG9yOlt7dHlwZTpaYSxhcmdzOlsicHJldmlvdXNQYWdpbmF0b3IiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBXQiBleHRlbmRzIGpCe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3N1cGVyKHQsbyxpLGUsbixhLHIpLHRoaXMuX2Rpc2FibGVSaXBwbGU9ITEsdGhpcy5jb2xvcj0icHJpbWFyeSJ9Z2V0IGJhY2tncm91bmRDb2xvcigpe3JldHVybiB0aGlzLl9iYWNrZ3JvdW5kQ29sb3J9c2V0IGJhY2tncm91bmRDb2xvcih0KXtjb25zdCBlPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3Q7ZS5yZW1vdmUoYG1hdC1iYWNrZ3JvdW5kLSR7dGhpcy5iYWNrZ3JvdW5kQ29sb3J9YCksdCYmZS5hZGQoYG1hdC1iYWNrZ3JvdW5kLSR7dH1gKSx0aGlzLl9iYWNrZ3JvdW5kQ29sb3I9dH1nZXQgZGlzYWJsZVJpcHBsZSgpe3JldHVybiB0aGlzLl9kaXNhYmxlUmlwcGxlfXNldCBkaXNhYmxlUmlwcGxlKHQpe3RoaXMuX2Rpc2FibGVSaXBwbGU9eXoodCl9X2l0ZW1TZWxlY3RlZCgpe31uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9pdGVtcy5jaGFuZ2VzLnBpcGUoTmUobnVsbCksSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMudXBkYXRlQWN0aXZlTGluaygpfSkpLHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpfXVwZGF0ZUFjdGl2ZUxpbmsoKXtpZighdGhpcy5faXRlbXMpcmV0dXJuO2NvbnN0IHQ9dGhpcy5faXRlbXMudG9BcnJheSgpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV0uYWN0aXZlKXJldHVybiB0aGlzLnNlbGVjdGVkSW5kZXg9ZSx2b2lkIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO3RoaXMuc2VsZWN0ZWRJbmRleD0tMSx0aGlzLl9pbmtCYXIuaGlkZSgpfX1XQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8V0IpKFNtKGhnKSxTbShISSw4KSxTbShhXyksU20oVWcpLFNtKHVGKSxTbSh3eiksU20oVlAsOCkpfSxXQi7JtWRpcj1sbyh7dHlwZTpXQixpbnB1dHM6e2NvbG9yOiJjb2xvciIsYmFja2dyb3VuZENvbG9yOiJiYWNrZ3JvdW5kQ29sb3IiLGRpc2FibGVSaXBwbGU6ImRpc2FibGVSaXBwbGUifSxmZWF0dXJlczpbeHBdfSksV0IuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6YV99LHt0eXBlOlVnfSx7dHlwZTp1Rn0se3R5cGU6d3p9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XSxXQi5wcm9wRGVjb3JhdG9ycz17YmFja2dyb3VuZENvbG9yOlt7dHlwZTp4eX1dLGRpc2FibGVSaXBwbGU6W3t0eXBlOnh5fV0sY29sb3I6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoV0IsW3t0eXBlOkN5fV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTphX30se3R5cGU6VWd9LHt0eXBlOnVGfSx7dHlwZTp3en0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse2NvbG9yOlt7dHlwZTp4eX1dLGJhY2tncm91bmRDb2xvcjpbe3R5cGU6eHl9XSxkaXNhYmxlUmlwcGxlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgWUIgZXh0ZW5kcyBXQntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXtzdXBlcih0LGUsbixvLGksYSxyKX19WUIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFlCKShTbShoZyksU20oSEksOCksU20oYV8pLFNtKFVnKSxTbSh1RiksU20od3opLFNtKFZQLDgpKX0sWUIuybVjbXA9dG8oe3R5cGU6WUIsc2VsZWN0b3JzOltbIiIsIm1hdC10YWItbmF2LWJhciIsIiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJiRoKG8sWEIsNSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5faXRlbXM9dCl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKE1CLDcpLFFoKGdCLDcpLFFoKGhCLDcpLFFoKGJCLDUpLFFoKHlCLDUpKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLl9pbmtCYXI9dC5maXJzdCksSmgodD10YigpKSYmKG4uX3RhYkxpc3RDb250YWluZXI9dC5maXJzdCksSmgodD10YigpKSYmKG4uX3RhYkxpc3Q9dC5maXJzdCksSmgodD10YigpKSYmKG4uX25leHRQYWdpbmF0b3I9dC5maXJzdCksSmgodD10YigpKSYmKG4uX3ByZXZpb3VzUGFnaW5hdG9yPXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtdGFiLW5hdi1iYXIiLCJtYXQtdGFiLWhlYWRlciJdLGhvc3RWYXJzOjEwLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIixuLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzKSgibWF0LXRhYi1oZWFkZXItcnRsIiwicnRsIj09bi5fZ2V0TGF5b3V0RGlyZWN0aW9uKCkpKCJtYXQtcHJpbWFyeSIsIndhcm4iIT09bi5jb2xvciYmImFjY2VudCIhPT1uLmNvbG9yKSgibWF0LWFjY2VudCIsImFjY2VudCI9PT1uLmNvbG9yKSgibWF0LXdhcm4iLCJ3YXJuIj09PW4uY29sb3IpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciJ9LGV4cG9ydEFzOlsibWF0VGFiTmF2QmFyIiwibWF0VGFiTmF2Il0sZmVhdHVyZXM6W3hwXSxhdHRyczpbIm1hdC10YWItbmF2LWJhciIsIiJdLG5nQ29udGVudFNlbGVjdG9yczppQixkZWNsczoxMyx2YXJzOjgsY29uc3RzOltbImFyaWEtaGlkZGVuIiwidHJ1ZSIsIm1hdC1yaXBwbGUiLCIiLDEsIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24iLCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSIsIm1hdC1lbGV2YXRpb24tejQiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwiY2xpY2siLCJtb3VzZWRvd24iLCJ0b3VjaGVuZCJdLFsicHJldmlvdXNQYWdpbmF0b3IiLCIiXSxbMSwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIl0sWzEsIm1hdC10YWItbGluay1jb250YWluZXIiLDMsImtleWRvd24iXSxbInRhYkxpc3RDb250YWluZXIiLCIiXSxbMSwibWF0LXRhYi1saXN0IiwzLCJjZGtPYnNlcnZlQ29udGVudCJdLFsidGFiTGlzdCIsIiJdLFsxLCJtYXQtdGFiLWxpbmtzIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLCJtYXQtcmlwcGxlIiwiIiwxLCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIiwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciIsIm1hdC1lbGV2YXRpb24tejQiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwibW91c2Vkb3duIiwiY2xpY2siLCJ0b3VjaGVuZCJdLFsibmV4dFBhZ2luYXRvciIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoWm0oKSxSbSgwLCJkaXYiLDAsMSksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9oYW5kbGVQYWdpbmF0b3JDbGljaygiYmVmb3JlIil9KSkoIm1vdXNlZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZVBhZ2luYXRvclByZXNzKCJiZWZvcmUiLGUpfSkpKCJ0b3VjaGVuZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc3RvcEludGVydmFsKCl9KSksVG0oMiwiZGl2IiwyKSxBbSgpLFJtKDMsImRpdiIsMyw0KSxWbSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUtleWRvd24oZSl9KSksUm0oNSwiZGl2Iiw1LDYpLFZtKCJjZGtPYnNlcnZlQ29udGVudCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25Db250ZW50Q2hhbmdlcygpfSkpLFJtKDcsImRpdiIsNyksWG0oOCksQW0oKSxUbSg5LCJtYXQtaW5rLWJhciIpLEFtKCksQW0oKSxSbSgxMCwiZGl2Iiw4LDkpLFZtKCJtb3VzZWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVQYWdpbmF0b3JQcmVzcygiYWZ0ZXIiLGUpfSkpKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5faGFuZGxlUGFnaW5hdG9yQ2xpY2soImFmdGVyIil9KSkoInRvdWNoZW5kIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9zdG9wSW50ZXJ2YWwoKX0pKSxUbSgxMiwiZGl2IiwyKSxBbSgpKSwyJmUmJihwdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEJlZm9yZSksRG0oIm1hdFJpcHBsZURpc2FibGVkIixuLl9kaXNhYmxlU2Nyb2xsQmVmb3JlfHxuLmRpc2FibGVSaXBwbGUpLHJjKDUpLHB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpLHJjKDUpLHB1KCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIixuLl9kaXNhYmxlU2Nyb2xsQWZ0ZXIpLERtKCJtYXRSaXBwbGVEaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEFmdGVyfHxuLmRpc2FibGVSaXBwbGUpKX0sZGlyZWN0aXZlczpba0gsanosTUJdLHN0eWxlczpbJy5tYXQtdGFiLWhlYWRlcntkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjB9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6bm9uZTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4td2lkdGg6MzJweDtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RvdWNoLWFjdGlvbjpub25lfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNvbnRyb2xzLWVuYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257ZGlzcGxheTpmbGV4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSwubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVye3BhZGRpbmctbGVmdDo0cHh9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue3RyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyl9Lm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUsLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXJ7cGFkZGluZy1yaWdodDo0cHh9Lm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHggMnB4IDAgMDtjb250ZW50OiIiO2hlaWdodDo4cHg7d2lkdGg6OHB4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVke2JveC1zaGFkb3c6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LXRhYi1saXN0e2ZsZXgtZ3JvdzoxO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246dHJhbnNmb3JtIDUwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0ubWF0LXRhYi1saW5rc3tkaXNwbGF5OmZsZXh9W21hdC1hbGlnbi10YWJzPWNlbnRlcl0+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3N7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bbWF0LWFsaWduLXRhYnM9ZW5kXT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rc3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lm1hdC1pbmstYmFye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2hlaWdodDoycHg7dHJhbnNpdGlvbjo1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1pbmstYmFye3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC1pbmstYmFye2JvdHRvbTphdXRvO3RvcDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pbmstYmFye291dGxpbmU6c29saWQgMnB4O2hlaWdodDowfS5tYXQtdGFiLWxpbmstY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDoxfS5tYXQtdGFiLWxpbmt7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDI0cHg7Y3Vyc29yOnBvaW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6LjY7bWluLXdpZHRoOjE2MHB4O3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3ZlcnRpY2FsLWFsaWduOnRvcDt0ZXh0LWRlY29yYXRpb246bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtdGFiLWxpbms6Zm9jdXN7b3V0bGluZTpub25lfS5tYXQtdGFiLWxpbms6Zm9jdXM6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1saW5rOmZvY3Vze291dGxpbmU6ZG90dGVkIDJweDtvdXRsaW5lLW9mZnNldDotMnB4fS5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtvcGFjaXR5Oi41fS5tYXQtdGFiLWxpbmsgLm1hdC10YWItbGFiZWwtY29udGVudHtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxpbmt7b3BhY2l0eToxfVttYXQtc3RyZXRjaC10YWJzXSAubWF0LXRhYi1saW5re2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MX0ubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZX1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Lm1hdC10YWItbGlua3ttaW4td2lkdGg6NzJweH19XG4nXSxlbmNhcHN1bGF0aW9uOjJ9KSxZQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTphX30se3R5cGU6VWd9LHt0eXBlOnVGfSx7dHlwZTp3en0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dLFlCLnByb3BEZWNvcmF0b3JzPXtfaXRlbXM6W3t0eXBlOllhLGFyZ3M6W3FlKCgoKT0+WEIpKSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9pbmtCYXI6W3t0eXBlOlphLGFyZ3M6W01CLHtzdGF0aWM6ITB9XX1dLF90YWJMaXN0Q29udGFpbmVyOlt7dHlwZTpaYSxhcmdzOlsidGFiTGlzdENvbnRhaW5lciIse3N0YXRpYzohMH1dfV0sX3RhYkxpc3Q6W3t0eXBlOlphLGFyZ3M6WyJ0YWJMaXN0Iix7c3RhdGljOiEwfV19XSxfbmV4dFBhZ2luYXRvcjpbe3R5cGU6WmEsYXJnczpbIm5leHRQYWdpbmF0b3IiXX1dLF9wcmV2aW91c1BhZ2luYXRvcjpbe3R5cGU6WmEsYXJnczpbInByZXZpb3VzUGFnaW5hdG9yIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChZQixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJbbWF0LXRhYi1uYXYtYmFyXSIsZXhwb3J0QXM6Im1hdFRhYk5hdkJhciwgbWF0VGFiTmF2IixpbnB1dHM6WyJjb2xvciJdLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIG1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIG1hdC1lbGV2YXRpb24tejQiXG4gICAgICNwcmV2aW91c1BhZ2luYXRvclxuICAgICBhcmlhLWhpZGRlbj0idHJ1ZSJcbiAgICAgbWF0LXJpcHBsZSBbbWF0UmlwcGxlRGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEJlZm9yZSB8fCBkaXNhYmxlUmlwcGxlIlxuICAgICBbY2xhc3MubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZF09Il9kaXNhYmxlU2Nyb2xsQmVmb3JlIlxuICAgICAoY2xpY2spPSJfaGFuZGxlUGFnaW5hdG9yQ2xpY2soXCdiZWZvcmVcJykiXG4gICAgIChtb3VzZWRvd24pPSJfaGFuZGxlUGFnaW5hdG9yUHJlc3MoXCdiZWZvcmVcJywgJGV2ZW50KSJcbiAgICAgKHRvdWNoZW5kKT0iX3N0b3BJbnRlcnZhbCgpIj5cbiAgPGRpdiBjbGFzcz0ibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPSJtYXQtdGFiLWxpbmstY29udGFpbmVyIiAjdGFiTGlzdENvbnRhaW5lciAoa2V5ZG93bik9Il9oYW5kbGVLZXlkb3duKCRldmVudCkiPlxuICA8ZGl2XG4gICAgY2xhc3M9Im1hdC10YWItbGlzdCJcbiAgICBbY2xhc3MuX21hdC1hbmltYXRpb24tbm9vcGFibGVdPSJfYW5pbWF0aW9uTW9kZSA9PT0gXCdOb29wQW5pbWF0aW9uc1wnIlxuICAgICN0YWJMaXN0XG4gICAgKGNka09ic2VydmVDb250ZW50KT0iX29uQ29udGVudENoYW5nZXMoKSI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXRhYi1saW5rcyI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG1hdC1pbmstYmFyPjwvbWF0LWluay1iYXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9Im1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gbWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciBtYXQtZWxldmF0aW9uLXo0IlxuICAgICAjbmV4dFBhZ2luYXRvclxuICAgICBhcmlhLWhpZGRlbj0idHJ1ZSJcbiAgICAgbWF0LXJpcHBsZSBbbWF0UmlwcGxlRGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEFmdGVyIHx8IGRpc2FibGVSaXBwbGUiXG4gICAgIFtjbGFzcy5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkXT0iX2Rpc2FibGVTY3JvbGxBZnRlciJcbiAgICAgKG1vdXNlZG93bik9Il9oYW5kbGVQYWdpbmF0b3JQcmVzcyhcJ2FmdGVyXCcsICRldmVudCkiXG4gICAgIChjbGljayk9Il9oYW5kbGVQYWdpbmF0b3JDbGljayhcJ2FmdGVyXCcpIlxuICAgICAodG91Y2hlbmQpPSJfc3RvcEludGVydmFsKCkiPlxuICA8ZGl2IGNsYXNzPSJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24iPjwvZGl2PlxuPC9kaXY+XG4nLGhvc3Q6e2NsYXNzOiJtYXQtdGFiLW5hdi1iYXIgbWF0LXRhYi1oZWFkZXIiLCJbY2xhc3MubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkXSI6Il9zaG93UGFnaW5hdGlvbkNvbnRyb2xzIiwiW2NsYXNzLm1hdC10YWItaGVhZGVyLXJ0bF0iOiJfZ2V0TGF5b3V0RGlyZWN0aW9uKCkgPT0gJ3J0bCciLCJbY2xhc3MubWF0LXByaW1hcnldIjonY29sb3IgIT09ICJ3YXJuIiAmJiBjb2xvciAhPT0gImFjY2VudCInLCJbY2xhc3MubWF0LWFjY2VudF0iOidjb2xvciA9PT0gImFjY2VudCInLCJbY2xhc3MubWF0LXdhcm5dIjonY29sb3IgPT09ICJ3YXJuIid9LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxzdHlsZXM6WycubWF0LXRhYi1oZWFkZXJ7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LXNocmluazowfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Om5vbmU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOjMycHg7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0b3VjaC1hY3Rpb246bm9uZX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2Rpc3BsYXk6ZmxleH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUsLm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlcntwYWRkaW5nLWxlZnQ6NHB4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlLC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVye3BhZGRpbmctcmlnaHQ6NHB4fS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4IDJweCAwIDA7Y29udGVudDoiIjtoZWlnaHQ6OHB4O3dpZHRoOjhweH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZHtib3gtc2hhZG93Om5vbmU7Y3Vyc29yOmRlZmF1bHR9Lm1hdC10YWItbGlzdHtmbGV4LWdyb3c6MTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Lm1hdC10YWItbGlua3N7ZGlzcGxheTpmbGV4fVttYXQtYWxpZ24tdGFicz1jZW50ZXJdPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmtze2p1c3RpZnktY29udGVudDpjZW50ZXJ9W21hdC1hbGlnbi10YWJzPWVuZF0+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3N7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5tYXQtaW5rLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtoZWlnaHQ6MnB4O3RyYW5zaXRpb246NTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtaW5rLWJhcnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtaW5rLWJhcntib3R0b206YXV0bzt0b3A6MH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtaW5rLWJhcntvdXRsaW5lOnNvbGlkIDJweDtoZWlnaHQ6MH0ubWF0LXRhYi1saW5rLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MX0ubWF0LXRhYi1saW5re2hlaWdodDo0OHB4O3BhZGRpbmc6MCAyNHB4O2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvcGFjaXR5Oi42O21pbi13aWR0aDoxNjBweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjp0b3A7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LXRhYi1saW5rOmZvY3Vze291dGxpbmU6bm9uZX0ubWF0LXRhYi1saW5rOmZvY3VzOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGluazpmb2N1c3tvdXRsaW5lOmRvdHRlZCAycHg7b3V0bGluZS1vZmZzZXQ6LTJweH0ubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LXRhYi1saW5rIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnR7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1saW5re29wYWNpdHk6MX1bbWF0LXN0cmV0Y2gtdGFic10gLm1hdC10YWItbGlua3tmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjF9Lm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmV9QG1lZGlhKG1heC13aWR0aDogNTk5cHgpey5tYXQtdGFiLWxpbmt7bWluLXdpZHRoOjcycHh9fVxuJ119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6YV99LHt0eXBlOlVnfSx7dHlwZTp1Rn0se3R5cGU6d3p9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XX0pLHtfaXRlbXM6W3t0eXBlOllhLGFyZ3M6W3FlKCgoKT0+WEIpKSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9pbmtCYXI6W3t0eXBlOlphLGFyZ3M6W01CLHtzdGF0aWM6ITB9XX1dLF90YWJMaXN0Q29udGFpbmVyOlt7dHlwZTpaYSxhcmdzOlsidGFiTGlzdENvbnRhaW5lciIse3N0YXRpYzohMH1dfV0sX3RhYkxpc3Q6W3t0eXBlOlphLGFyZ3M6WyJ0YWJMaXN0Iix7c3RhdGljOiEwfV19XSxfbmV4dFBhZ2luYXRvcjpbe3R5cGU6WmEsYXJnczpbIm5leHRQYWdpbmF0b3IiXX1dLF9wcmV2aW91c1BhZ2luYXRvcjpbe3R5cGU6WmEsYXJnczpbInByZXZpb3VzUGFnaW5hdG9yIl19XX0pO2NvbnN0IHFCPSRJKFFJKEtJKGNsYXNze30pKSk7Y2xhc3MgWkIgZXh0ZW5kcyBxQntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSl7c3VwZXIoKSx0aGlzLl90YWJOYXZCYXI9dCx0aGlzLmVsZW1lbnRSZWY9ZSx0aGlzLl9mb2N1c01vbml0b3I9aSx0aGlzLl9pc0FjdGl2ZT0hMSx0aGlzLnJpcHBsZUNvbmZpZz1ufHx7fSx0aGlzLnRhYkluZGV4PXBhcnNlSW50KG8pfHwwLCJOb29wQW5pbWF0aW9ucyI9PT1hJiYodGhpcy5yaXBwbGVDb25maWcuYW5pbWF0aW9uPXtlbnRlckR1cmF0aW9uOjAsZXhpdER1cmF0aW9uOjB9KX1nZXQgYWN0aXZlKCl7cmV0dXJuIHRoaXMuX2lzQWN0aXZlfXNldCBhY3RpdmUodCl7eXoodCkhPT10aGlzLl9pc0FjdGl2ZSYmKHRoaXMuX2lzQWN0aXZlPXQsdGhpcy5fdGFiTmF2QmFyLnVwZGF0ZUFjdGl2ZUxpbmsoKSl9Z2V0IHJpcHBsZURpc2FibGVkKCl7cmV0dXJuIHRoaXMuZGlzYWJsZWR8fHRoaXMuZGlzYWJsZVJpcHBsZXx8dGhpcy5fdGFiTmF2QmFyLmRpc2FibGVSaXBwbGV8fCEhdGhpcy5yaXBwbGVDb25maWcuZGlzYWJsZWR9Zm9jdXMoKXt0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZil9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmKX1faGFuZGxlRm9jdXMoKXt0aGlzLl90YWJOYXZCYXIuZm9jdXNJbmRleD10aGlzLl90YWJOYXZCYXIuX2l0ZW1zLnRvQXJyYXkoKS5pbmRleE9mKHRoaXMpfX1aQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WkIpKFNtKFdCKSxTbShoZyksU20od0gsOCksTmEoInRhYmluZGV4IiksU20oU0kpLFNtKFZQLDgpKX0sWkIuybVkaXI9bG8oe3R5cGU6WkIsaW5wdXRzOnthY3RpdmU6ImFjdGl2ZSJ9LGZlYXR1cmVzOlt4cF19KSxaQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOldCfSx7dHlwZTpoZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt3SF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOlNJfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sWkIucHJvcERlY29yYXRvcnM9e2FjdGl2ZTpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChaQixbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6V0J9LHt0eXBlOmhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3dIXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6U0l9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XX0pLHthY3RpdmU6W3t0eXBlOnh5fV19KTtjbGFzcyBYQiBleHRlbmRzIFpCe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyl7c3VwZXIodCxlLGksYSxyLHMpLHRoaXMuX3RhYkxpbmtSaXBwbGU9bmV3IFBIKHRoaXMsbixlLG8pLHRoaXMuX3RhYkxpbmtSaXBwbGUuc2V0dXBUcmlnZ2VyRXZlbnRzKGUubmF0aXZlRWxlbWVudCl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuX3RhYkxpbmtSaXBwbGUuX3JlbW92ZVRyaWdnZXJFdmVudHMoKX19WEIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhCKShTbShZQiksU20oaGcpLFNtKGFfKSxTbSh3eiksU20od0gsOCksTmEoInRhYmluZGV4IiksU20oU0kpLFNtKFZQLDgpKX0sWEIuybVkaXI9bG8oe3R5cGU6WEIsc2VsZWN0b3JzOltbIiIsIm1hdC10YWItbGluayIsIiJdLFsiIiwibWF0VGFiTGluayIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC10YWItbGluayIsIm1hdC1mb2N1cy1pbmRpY2F0b3IiXSxob3N0VmFyczo3LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiZm9jdXMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2hhbmRsZUZvY3VzKCl9KSksMiZlJiYoanAoImFyaWEtY3VycmVudCIsbi5hY3RpdmU/InBhZ2UiOm51bGwpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkKSgidGFiSW5kZXgiLG4udGFiSW5kZXgpLHB1KCJtYXQtdGFiLWRpc2FibGVkIixuLmRpc2FibGVkKSgibWF0LXRhYi1sYWJlbC1hY3RpdmUiLG4uYWN0aXZlKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIix0YWJJbmRleDoidGFiSW5kZXgifSxleHBvcnRBczpbIm1hdFRhYkxpbmsiXSxmZWF0dXJlczpbeHBdfSksWEIuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpZQn0se3R5cGU6aGd9LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt3SF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOlNJfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYQixbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0LXRhYi1saW5rXSwgW21hdFRhYkxpbmtdIixleHBvcnRBczoibWF0VGFiTGluayIsaW5wdXRzOlsiZGlzYWJsZWQiLCJkaXNhYmxlUmlwcGxlIiwidGFiSW5kZXgiXSxob3N0OntjbGFzczoibWF0LXRhYi1saW5rIG1hdC1mb2N1cy1pbmRpY2F0b3IiLCJbYXR0ci5hcmlhLWN1cnJlbnRdIjonYWN0aXZlID8gInBhZ2UiIDogbnVsbCcsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbYXR0ci50YWJJbmRleF0iOiJ0YWJJbmRleCIsIltjbGFzcy5tYXQtdGFiLWRpc2FibGVkXSI6ImRpc2FibGVkIiwiW2NsYXNzLm1hdC10YWItbGFiZWwtYWN0aXZlXSI6ImFjdGl2ZSIsIihmb2N1cykiOiJfaGFuZGxlRm9jdXMoKSJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WUJ9LHt0eXBlOmhnfSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbd0hdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpqYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTpTSX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBLQnt9S0IuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEtCKX0sS0IuybVtb2Q9YW8oe3R5cGU6S0J9KSxLQi7JtWluaj12bih7aW1wb3J0czpbW1dNLFhJLFJGLFNILFV6LE5JXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEtCLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV00sWEksUkYsU0gsVXosTkldLGV4cG9ydHM6W1hJLEZCLFBCLFNCLFlCLFhCLHhCXSxkZWNsYXJhdGlvbnM6W0ZCLFBCLFNCLE1CLEJCLFlCLFhCLEFCLEVCLEdCLHhCXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEtCLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bRkIsUEIsU0IsTUIsQkIsWUIsWEIsQUIsRUIsR0IseEJdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1dNLFhJLFJGLFNILFV6LE5JXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltYSSxGQixQQixTQixZQixYQix4Ql19fSk7Y29uc3QgSkI9WyJ1bmRlcmxpbmUiXSxRQj1bImNvbm5lY3Rpb25Db250YWluZXIiXSwkQj1bImlucHV0Q29udGFpbmVyIl0sdFY9WyJsYWJlbCJdO2Z1bmN0aW9uIGVWKHQsZSl7MSZ0JiYoTm0oMCksUm0oMSwiZGl2IiwxNCksVG0oMiwiZGl2IiwxNSksVG0oMywiZGl2IiwxNiksVG0oNCwiZGl2IiwxNyksQW0oKSxSbSg1LCJkaXYiLDE4KSxUbSg2LCJkaXYiLDE1KSxUbSg3LCJkaXYiLDE2KSxUbSg4LCJkaXYiLDE3KSxBbSgpLHptKCkpfWZ1bmN0aW9uIG5WKHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwxOSksWG0oMSwxKSxBbSgpKX1mdW5jdGlvbiBvVih0LGUpe2lmKDEmdCYmKE5tKDApLFhtKDEsMiksUm0oMiwic3BhbiIpLGt1KDMpLEFtKCksem0oKSksMiZ0KXtjb25zdCB0PVltKDIpO3JjKDMpLFN1KHQuX2NvbnRyb2wucGxhY2Vob2xkZXIpfX1mdW5jdGlvbiBpVih0LGUpezEmdCYmWG0oMCwzLFsiKm5nU3dpdGNoQ2FzZSIsInRydWUiXSl9ZnVuY3Rpb24gYVYodCxlKXsxJnQmJihSbSgwLCJzcGFuIiwyMyksa3UoMSwiICoiKSxBbSgpKX1mdW5jdGlvbiByVih0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImxhYmVsIiwyMCwyMSksVm0oImNka09ic2VydmVDb250ZW50IiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLnVwZGF0ZU91dGxpbmVHYXAoKX0pKSxRcCgyLG9WLDQsMSwibmctY29udGFpbmVyIiwxMiksUXAoMyxpViwxLDAsIm5nLWNvbnRlbnQiLDEyKSxRcCg0LGFWLDIsMCwic3BhbiIsMjIpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7cHUoIm1hdC1lbXB0eSIsdC5fY29udHJvbC5lbXB0eSYmIXQuX3Nob3VsZEFsd2F5c0Zsb2F0KCkpKCJtYXQtZm9ybS1maWVsZC1lbXB0eSIsdC5fY29udHJvbC5lbXB0eSYmIXQuX3Nob3VsZEFsd2F5c0Zsb2F0KCkpKCJtYXQtYWNjZW50IiwiYWNjZW50Ij09dC5jb2xvcikoIm1hdC13YXJuIiwid2FybiI9PXQuY29sb3IpLERtKCJjZGtPYnNlcnZlQ29udGVudERpc2FibGVkIiwib3V0bGluZSIhPXQuYXBwZWFyYW5jZSkoImlkIix0Ll9sYWJlbElkKSgibmdTd2l0Y2giLHQuX2hhc0xhYmVsKCkpLGpwKCJmb3IiLHQuX2NvbnRyb2wuaWQpKCJhcmlhLW93bnMiLHQuX2NvbnRyb2wuaWQpLHJjKDIpLERtKCJuZ1N3aXRjaENhc2UiLCExKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIiwhMCkscmMoMSksRG0oIm5nSWYiLCF0LmhpZGVSZXF1aXJlZE1hcmtlciYmdC5fY29udHJvbC5yZXF1aXJlZCYmIXQuX2NvbnRyb2wuZGlzYWJsZWQpfX1mdW5jdGlvbiBzVih0LGUpezEmdCYmKFJtKDAsImRpdiIsMjQpLFhtKDEsNCksQW0oKSl9ZnVuY3Rpb24gbFYodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDI1LDI2KSxUbSgyLCJzcGFuIiwyNyksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMikscHUoIm1hdC1hY2NlbnQiLCJhY2NlbnQiPT10LmNvbG9yKSgibWF0LXdhcm4iLCJ3YXJuIj09dC5jb2xvcil9fWZ1bmN0aW9uIGNWKHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiksWG0oMSw1KSxBbSgpKSwyJnQmJkRtKCJAdHJhbnNpdGlvbk1lc3NhZ2VzIixZbSgpLl9zdWJzY3JpcHRBbmltYXRpb25TdGF0ZSl9ZnVuY3Rpb24gZFYodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDMxKSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7RG0oImlkIix0Ll9oaW50TGFiZWxJZCkscmMoMSksU3UodC5oaW50TGFiZWwpfX1mdW5jdGlvbiBwVih0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMjgpLFFwKDEsZFYsMiwyLCJkaXYiLDI5KSxYbSgyLDYpLFRtKDMsImRpdiIsMzApLFhtKDQsNyksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7RG0oIkB0cmFuc2l0aW9uTWVzc2FnZXMiLHQuX3N1YnNjcmlwdEFuaW1hdGlvblN0YXRlKSxyYygxKSxEbSgibmdJZiIsdC5oaW50TGFiZWwpfX1jb25zdCBtVj1bIioiLFtbIiIsIm1hdFByZWZpeCIsIiJdXSxbWyJtYXQtcGxhY2Vob2xkZXIiXV0sW1sibWF0LWxhYmVsIl1dLFtbIiIsIm1hdFN1ZmZpeCIsIiJdXSxbWyJtYXQtZXJyb3IiXV0sW1sibWF0LWhpbnQiLDMsImFsaWduIiwiZW5kIl1dLFtbIm1hdC1oaW50IiwiYWxpZ24iLCJlbmQiXV1dO2xldCB1Vj0wO2NvbnN0IGZWPW5ldyBHYSgiTWF0RXJyb3IiKTtjbGFzcyBnVntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuaWQ9Im1hdC1lcnJvci0iK3VWKyssdHx8ZS5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIiwicG9saXRlIil9fWdWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxnVikoTmEoImFyaWEtbGl2ZSIpLFNtKGhnKSl9LGdWLsm1ZGlyPWxvKHt0eXBlOmdWLHNlbGVjdG9yczpbWyJtYXQtZXJyb3IiXV0saG9zdEF0dHJzOlsiYXJpYS1hdG9taWMiLCJ0cnVlIiwxLCJtYXQtZXJyb3IiXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZqcCgiaWQiLG4uaWQpfSxpbnB1dHM6e2lkOiJpZCJ9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6ZlYsdXNlRXhpc3Rpbmc6Z1Z9XSldfSksZ1YuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbImFyaWEtbGl2ZSJdfV19LHt0eXBlOmhnfV0sZ1YucHJvcERlY29yYXRvcnM9e2lkOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGdWLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1lcnJvciIsaG9zdDp7Y2xhc3M6Im1hdC1lcnJvciIsIlthdHRyLmlkXSI6ImlkIiwiYXJpYS1hdG9taWMiOiJ0cnVlIn0scHJvdmlkZXJzOlt7cHJvdmlkZTpmVix1c2VFeGlzdGluZzpnVn1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJhcmlhLWxpdmUiXX1dfSx7dHlwZTpoZ31dfSkse2lkOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBoVj17dHJhbnNpdGlvbk1lc3NhZ2VzOm54KCJ0cmFuc2l0aW9uTWVzc2FnZXMiLFtyeCgiZW50ZXIiLGF4KHtvcGFjaXR5OjEsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDAlKSJ9KSksbHgoInZvaWQgPT4gZW50ZXIiLFtheCh7b3BhY2l0eTowLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNXB4KSJ9KSxveCgiMzAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikiKV0pXSl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBiVnt9ZnVuY3Rpb24geVYodCl7cmV0dXJuIEVycm9yKGBBIGhpbnQgd2FzIGFscmVhZHkgZGVjbGFyZWQgZm9yICdhbGlnbj0iJHt0fSInLmApfWJWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxiVil9LGJWLsm1ZGlyPWxvKHt0eXBlOmJWfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChiVixbe3R5cGU6Q3l9XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IF9WPTA7Y29uc3QgQ1Y9bmV3IEdhKCJNYXRIaW50Iik7Y2xhc3MgTVZ7Y29uc3RydWN0b3IoKXt0aGlzLmFsaWduPSJzdGFydCIsdGhpcy5pZD0ibWF0LWhpbnQtIitfVisrfX1NVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TVYpfSxNVi7JtWRpcj1sbyh7dHlwZTpNVixzZWxlY3RvcnM6W1sibWF0LWhpbnQiXV0saG9zdEF0dHJzOlsxLCJtYXQtaGludCJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJihqcCgiaWQiLG4uaWQpKCJhbGlnbiIsbnVsbCkscHUoIm1hdC1mb3JtLWZpZWxkLWhpbnQtZW5kIiwiZW5kIj09PW4uYWxpZ24pKX0saW5wdXRzOnthbGlnbjoiYWxpZ24iLGlkOiJpZCJ9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6Q1YsdXNlRXhpc3Rpbmc6TVZ9XSldfSksTVYucHJvcERlY29yYXRvcnM9e2FsaWduOlt7dHlwZTp4eX1dLGlkOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE1WLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1oaW50Iixob3N0OntjbGFzczoibWF0LWhpbnQiLCJbY2xhc3MubWF0LWZvcm0tZmllbGQtaGludC1lbmRdIjonYWxpZ24gPT09ICJlbmQiJywiW2F0dHIuaWRdIjoiaWQiLCJbYXR0ci5hbGlnbl0iOiJudWxsIn0scHJvdmlkZXJzOlt7cHJvdmlkZTpDVix1c2VFeGlzdGluZzpNVn1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLHthbGlnbjpbe3R5cGU6eHl9XSxpZDpbe3R5cGU6eHl9XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgdlZ7fXZWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx2Vil9LHZWLsm1ZGlyPWxvKHt0eXBlOnZWLHNlbGVjdG9yczpbWyJtYXQtbGFiZWwiXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHZWLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1sYWJlbCJ9XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyB4Vnt9eFYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHhWKX0seFYuybVkaXI9bG8oe3R5cGU6eFYsc2VsZWN0b3JzOltbIm1hdC1wbGFjZWhvbGRlciJdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeFYsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXBsYWNlaG9sZGVyIn1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IE9WPW5ldyBHYSgiTWF0UHJlZml4Iik7Y2xhc3MgUFZ7fVBWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQVil9LFBWLsm1ZGlyPWxvKHt0eXBlOlBWLHNlbGVjdG9yczpbWyIiLCJtYXRQcmVmaXgiLCIiXV0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpPVix1c2VFeGlzdGluZzpQVn1dKV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFBWLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXRQcmVmaXhdIixwcm92aWRlcnM6W3twcm92aWRlOk9WLHVzZUV4aXN0aW5nOlBWfV19XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB3Vj1uZXcgR2EoIk1hdFN1ZmZpeCIpO2NsYXNzIGtWe31rVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8a1YpfSxrVi7JtWRpcj1sbyh7dHlwZTprVixzZWxlY3RvcnM6W1siIiwibWF0U3VmZml4IiwiIl1dLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6d1YsdXNlRXhpc3Rpbmc6a1Z9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrVixbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0U3VmZml4XSIscHJvdmlkZXJzOlt7cHJvdmlkZTp3Vix1c2VFeGlzdGluZzprVn1dfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IFNWPTA7Y29uc3QgRFY9SkkoY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZWxlbWVudFJlZj10fX0sInByaW1hcnkiKSxFVj1uZXcgR2EoIk1BVF9GT1JNX0ZJRUxEX0RFRkFVTFRfT1BUSU9OUyIpLFJWPW5ldyBHYSgiTWF0Rm9ybUZpZWxkIik7Y2xhc3MgQVYgZXh0ZW5kcyBEVntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMpe3N1cGVyKHQpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fZGlyPW8sdGhpcy5fZGVmYXVsdHM9aSx0aGlzLl9wbGF0Zm9ybT1hLHRoaXMuX25nWm9uZT1yLHRoaXMuX291dGxpbmVHYXBDYWxjdWxhdGlvbk5lZWRlZEltbWVkaWF0ZWx5PSExLHRoaXMuX291dGxpbmVHYXBDYWxjdWxhdGlvbk5lZWRlZE9uU3RhYmxlPSExLHRoaXMuX2Rlc3Ryb3llZD1uZXcgSSx0aGlzLl9zaG93QWx3YXlzQW5pbWF0ZT0hMSx0aGlzLl9zdWJzY3JpcHRBbmltYXRpb25TdGF0ZT0iIix0aGlzLl9oaW50TGFiZWw9IiIsdGhpcy5faGludExhYmVsSWQ9Im1hdC1oaW50LSIrU1YrKyx0aGlzLl9sYWJlbElkPSJtYXQtZm9ybS1maWVsZC1sYWJlbC0iK1NWKyssdGhpcy5mbG9hdExhYmVsPXRoaXMuX2dldERlZmF1bHRGbG9hdExhYmVsU3RhdGUoKSx0aGlzLl9hbmltYXRpb25zRW5hYmxlZD0iTm9vcEFuaW1hdGlvbnMiIT09cyx0aGlzLmFwcGVhcmFuY2U9aSYmaS5hcHBlYXJhbmNlP2kuYXBwZWFyYW5jZToibGVnYWN5Iix0aGlzLl9oaWRlUmVxdWlyZWRNYXJrZXI9ISghaXx8bnVsbD09aS5oaWRlUmVxdWlyZWRNYXJrZXIpJiZpLmhpZGVSZXF1aXJlZE1hcmtlcn1nZXQgYXBwZWFyYW5jZSgpe3JldHVybiB0aGlzLl9hcHBlYXJhbmNlfXNldCBhcHBlYXJhbmNlKHQpe2NvbnN0IGU9dGhpcy5fYXBwZWFyYW5jZTt0aGlzLl9hcHBlYXJhbmNlPXR8fHRoaXMuX2RlZmF1bHRzJiZ0aGlzLl9kZWZhdWx0cy5hcHBlYXJhbmNlfHwibGVnYWN5Iiwib3V0bGluZSI9PT10aGlzLl9hcHBlYXJhbmNlJiZlIT09dCYmKHRoaXMuX291dGxpbmVHYXBDYWxjdWxhdGlvbk5lZWRlZE9uU3RhYmxlPSEwKX1nZXQgaGlkZVJlcXVpcmVkTWFya2VyKCl7cmV0dXJuIHRoaXMuX2hpZGVSZXF1aXJlZE1hcmtlcn1zZXQgaGlkZVJlcXVpcmVkTWFya2VyKHQpe3RoaXMuX2hpZGVSZXF1aXJlZE1hcmtlcj15eih0KX1fc2hvdWxkQWx3YXlzRmxvYXQoKXtyZXR1cm4iYWx3YXlzIj09PXRoaXMuZmxvYXRMYWJlbCYmIXRoaXMuX3Nob3dBbHdheXNBbmltYXRlfV9jYW5MYWJlbEZsb2F0KCl7cmV0dXJuIm5ldmVyIiE9PXRoaXMuZmxvYXRMYWJlbH1nZXQgaGludExhYmVsKCl7cmV0dXJuIHRoaXMuX2hpbnRMYWJlbH1zZXQgaGludExhYmVsKHQpe3RoaXMuX2hpbnRMYWJlbD10LHRoaXMuX3Byb2Nlc3NIaW50cygpfWdldCBmbG9hdExhYmVsKCl7cmV0dXJuImxlZ2FjeSIhPT10aGlzLmFwcGVhcmFuY2UmJiJuZXZlciI9PT10aGlzLl9mbG9hdExhYmVsPyJhdXRvIjp0aGlzLl9mbG9hdExhYmVsfXNldCBmbG9hdExhYmVsKHQpe3QhPT10aGlzLl9mbG9hdExhYmVsJiYodGhpcy5fZmxvYXRMYWJlbD10fHx0aGlzLl9nZXREZWZhdWx0RmxvYXRMYWJlbFN0YXRlKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWdldCBfY29udHJvbCgpe3JldHVybiB0aGlzLl9leHBsaWNpdEZvcm1GaWVsZENvbnRyb2x8fHRoaXMuX2NvbnRyb2xOb25TdGF0aWN8fHRoaXMuX2NvbnRyb2xTdGF0aWN9c2V0IF9jb250cm9sKHQpe3RoaXMuX2V4cGxpY2l0Rm9ybUZpZWxkQ29udHJvbD10fWdldExhYmVsSWQoKXtyZXR1cm4gdGhpcy5faGFzRmxvYXRpbmdMYWJlbCgpP3RoaXMuX2xhYmVsSWQ6bnVsbH1nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCl7cmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25Db250YWluZXJSZWZ8fHRoaXMuX2VsZW1lbnRSZWZ9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5fdmFsaWRhdGVDb250cm9sQ2hpbGQoKTtjb25zdCB0PXRoaXMuX2NvbnRyb2w7dC5jb250cm9sVHlwZSYmdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG1hdC1mb3JtLWZpZWxkLXR5cGUtJHt0LmNvbnRyb2xUeXBlfWApLHQuc3RhdGVDaGFuZ2VzLnBpcGUoTmUobnVsbCkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl92YWxpZGF0ZVBsYWNlaG9sZGVycygpLHRoaXMuX3N5bmNEZXNjcmliZWRCeUlkcygpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSkpLHQubmdDb250cm9sJiZ0Lm5nQ29udHJvbC52YWx1ZUNoYW5nZXMmJnQubmdDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9PnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKSksdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3RoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRPblN0YWJsZSYmdGhpcy51cGRhdGVPdXRsaW5lR2FwKCl9KSl9KSkscmUodGhpcy5fcHJlZml4Q2hpbGRyZW4uY2hhbmdlcyx0aGlzLl9zdWZmaXhDaGlsZHJlbi5jaGFuZ2VzKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fb3V0bGluZUdhcENhbGN1bGF0aW9uTmVlZGVkT25TdGFibGU9ITAsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSksdGhpcy5faGludENoaWxkcmVuLmNoYW5nZXMucGlwZShOZShudWxsKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3Byb2Nlc3NIaW50cygpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSkpLHRoaXMuX2Vycm9yQ2hpbGRyZW4uY2hhbmdlcy5waXBlKE5lKG51bGwpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fc3luY0Rlc2NyaWJlZEJ5SWRzKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSksdGhpcy5fZGlyJiZ0aGlzLl9kaXIuY2hhbmdlLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+eyJmdW5jdGlvbiI9PXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU/dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PnRoaXMudXBkYXRlT3V0bGluZUdhcCgpKSl9KSk6dGhpcy51cGRhdGVPdXRsaW5lR2FwKCl9KSl9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7dGhpcy5fdmFsaWRhdGVDb250cm9sQ2hpbGQoKSx0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRJbW1lZGlhdGVseSYmdGhpcy51cGRhdGVPdXRsaW5lR2FwKCl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fc3Vic2NyaXB0QW5pbWF0aW9uU3RhdGU9ImVudGVyIix0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpfV9zaG91bGRGb3J3YXJkKHQpe2NvbnN0IGU9dGhpcy5fY29udHJvbD90aGlzLl9jb250cm9sLm5nQ29udHJvbDpudWxsO3JldHVybiBlJiZlW3RdfV9oYXNQbGFjZWhvbGRlcigpe3JldHVybiEhKHRoaXMuX2NvbnRyb2wmJnRoaXMuX2NvbnRyb2wucGxhY2Vob2xkZXJ8fHRoaXMuX3BsYWNlaG9sZGVyQ2hpbGQpfV9oYXNMYWJlbCgpe3JldHVybiEoIXRoaXMuX2xhYmVsQ2hpbGROb25TdGF0aWMmJiF0aGlzLl9sYWJlbENoaWxkU3RhdGljKX1fc2hvdWxkTGFiZWxGbG9hdCgpe3JldHVybiB0aGlzLl9jYW5MYWJlbEZsb2F0KCkmJih0aGlzLl9jb250cm9sJiZ0aGlzLl9jb250cm9sLnNob3VsZExhYmVsRmxvYXR8fHRoaXMuX3Nob3VsZEFsd2F5c0Zsb2F0KCkpfV9oaWRlQ29udHJvbFBsYWNlaG9sZGVyKCl7cmV0dXJuImxlZ2FjeSI9PT10aGlzLmFwcGVhcmFuY2UmJiF0aGlzLl9oYXNMYWJlbCgpfHx0aGlzLl9oYXNMYWJlbCgpJiYhdGhpcy5fc2hvdWxkTGFiZWxGbG9hdCgpfV9oYXNGbG9hdGluZ0xhYmVsKCl7cmV0dXJuIHRoaXMuX2hhc0xhYmVsKCl8fCJsZWdhY3kiPT09dGhpcy5hcHBlYXJhbmNlJiZ0aGlzLl9oYXNQbGFjZWhvbGRlcigpfV9nZXREaXNwbGF5ZWRNZXNzYWdlcygpe3JldHVybiB0aGlzLl9lcnJvckNoaWxkcmVuJiZ0aGlzLl9lcnJvckNoaWxkcmVuLmxlbmd0aD4wJiZ0aGlzLl9jb250cm9sLmVycm9yU3RhdGU/ImVycm9yIjoiaGludCJ9X2FuaW1hdGVBbmRMb2NrTGFiZWwoKXt0aGlzLl9oYXNGbG9hdGluZ0xhYmVsKCkmJnRoaXMuX2NhbkxhYmVsRmxvYXQoKSYmKHRoaXMuX2FuaW1hdGlvbnNFbmFibGVkJiZ0aGlzLl9sYWJlbCYmKHRoaXMuX3Nob3dBbHdheXNBbmltYXRlPSEwLG9lKHRoaXMuX2xhYmVsLm5hdGl2ZUVsZW1lbnQsInRyYW5zaXRpb25lbmQiKS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fc2hvd0Fsd2F5c0FuaW1hdGU9ITF9KSkpLHRoaXMuZmxvYXRMYWJlbD0iYWx3YXlzIix0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9X3ZhbGlkYXRlUGxhY2Vob2xkZXJzKCl7aWYodGhpcy5fY29udHJvbC5wbGFjZWhvbGRlciYmdGhpcy5fcGxhY2Vob2xkZXJDaGlsZCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KdGhyb3coZnVuY3Rpb24gdCgpe3JldHVybiBFcnJvcigiUGxhY2Vob2xkZXIgYXR0cmlidXRlIGFuZCBjaGlsZCBlbGVtZW50IHdlcmUgYm90aCBzcGVjaWZpZWQuIil9KSgpfV9wcm9jZXNzSGludHMoKXt0aGlzLl92YWxpZGF0ZUhpbnRzKCksdGhpcy5fc3luY0Rlc2NyaWJlZEJ5SWRzKCl9X3ZhbGlkYXRlSGludHMoKXtpZih0aGlzLl9oaW50Q2hpbGRyZW4mJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl7bGV0IHQsZTt0aGlzLl9oaW50Q2hpbGRyZW4uZm9yRWFjaCgobj0+e2lmKCJzdGFydCI9PT1uLmFsaWduKXtpZih0fHx0aGlzLmhpbnRMYWJlbCl0aHJvdyB5Vigic3RhcnQiKTt0PW59ZWxzZSBpZigiZW5kIj09PW4uYWxpZ24pe2lmKGUpdGhyb3cgeVYoImVuZCIpO2U9bn19KSl9fV9nZXREZWZhdWx0RmxvYXRMYWJlbFN0YXRlKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRzJiZ0aGlzLl9kZWZhdWx0cy5mbG9hdExhYmVsfHwiYXV0byJ9X3N5bmNEZXNjcmliZWRCeUlkcygpe2lmKHRoaXMuX2NvbnRyb2wpe2xldCB0PVtdO2lmKHRoaXMuX2NvbnRyb2wudXNlckFyaWFEZXNjcmliZWRCeSYmInN0cmluZyI9PXR5cGVvZiB0aGlzLl9jb250cm9sLnVzZXJBcmlhRGVzY3JpYmVkQnkmJnQucHVzaCguLi50aGlzLl9jb250cm9sLnVzZXJBcmlhRGVzY3JpYmVkQnkuc3BsaXQoIiAiKSksImhpbnQiPT09dGhpcy5fZ2V0RGlzcGxheWVkTWVzc2FnZXMoKSl7Y29uc3QgZT10aGlzLl9oaW50Q2hpbGRyZW4/dGhpcy5faGludENoaWxkcmVuLmZpbmQoKHQ9PiJzdGFydCI9PT10LmFsaWduKSk6bnVsbCxuPXRoaXMuX2hpbnRDaGlsZHJlbj90aGlzLl9oaW50Q2hpbGRyZW4uZmluZCgodD0+ImVuZCI9PT10LmFsaWduKSk6bnVsbDtlP3QucHVzaChlLmlkKTp0aGlzLl9oaW50TGFiZWwmJnQucHVzaCh0aGlzLl9oaW50TGFiZWxJZCksbiYmdC5wdXNoKG4uaWQpfWVsc2UgdGhpcy5fZXJyb3JDaGlsZHJlbiYmdC5wdXNoKC4uLnRoaXMuX2Vycm9yQ2hpbGRyZW4ubWFwKCh0PT50LmlkKSkpO3RoaXMuX2NvbnRyb2wuc2V0RGVzY3JpYmVkQnlJZHModCl9fV92YWxpZGF0ZUNvbnRyb2xDaGlsZCgpe2lmKCF0aGlzLl9jb250cm9sJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gdCgpe3JldHVybiBFcnJvcigibWF0LWZvcm0tZmllbGQgbXVzdCBjb250YWluIGEgTWF0Rm9ybUZpZWxkQ29udHJvbC4iKX0pKCl9dXBkYXRlT3V0bGluZUdhcCgpe2NvbnN0IHQ9dGhpcy5fbGFiZWw/dGhpcy5fbGFiZWwubmF0aXZlRWxlbWVudDpudWxsO2lmKCJvdXRsaW5lIiE9PXRoaXMuYXBwZWFyYW5jZXx8IXR8fCF0LmNoaWxkcmVuLmxlbmd0aHx8IXQudGV4dENvbnRlbnQudHJpbSgpKXJldHVybjtpZighdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybjtpZighdGhpcy5faXNBdHRhY2hlZFRvRE9NKCkpcmV0dXJuIHZvaWQodGhpcy5fb3V0bGluZUdhcENhbGN1bGF0aW9uTmVlZGVkSW1tZWRpYXRlbHk9ITApO2xldCBlPTAsbj0wO2NvbnN0IG89dGhpcy5fY29ubmVjdGlvbkNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LGk9by5xdWVyeVNlbGVjdG9yQWxsKCIubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCIpLGE9by5xdWVyeVNlbGVjdG9yQWxsKCIubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXAiKTtpZih0aGlzLl9sYWJlbCYmdGhpcy5fbGFiZWwubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGgpe2NvbnN0IGk9by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZigwPT09aS53aWR0aCYmMD09PWkuaGVpZ2h0KXJldHVybiB0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRPblN0YWJsZT0hMCx2b2lkKHRoaXMuX291dGxpbmVHYXBDYWxjdWxhdGlvbk5lZWRlZEltbWVkaWF0ZWx5PSExKTtjb25zdCBhPXRoaXMuX2dldFN0YXJ0RW5kKGkpLHI9dC5jaGlsZHJlbixzPXRoaXMuX2dldFN0YXJ0RW5kKHJbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO2xldCBsPTA7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0KyspbCs9clt0XS5vZmZzZXRXaWR0aDtlPU1hdGguYWJzKHMtYSktNSxuPWw+MD8uNzUqbCsxMDowfWZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKWlbdF0uc3R5bGUud2lkdGg9YCR7ZX1weGA7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0KyspYVt0XS5zdHlsZS53aWR0aD1gJHtufXB4YDt0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRPblN0YWJsZT10aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRJbW1lZGlhdGVseT0hMX1fZ2V0U3RhcnRFbmQodCl7cmV0dXJuIHRoaXMuX2RpciYmInJ0bCI9PT10aGlzLl9kaXIudmFsdWU/dC5yaWdodDp0LmxlZnR9X2lzQXR0YWNoZWRUb0RPTSgpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2lmKHQuZ2V0Um9vdE5vZGUpe2NvbnN0IGU9dC5nZXRSb290Tm9kZSgpO3JldHVybiBlJiZlIT09dH1yZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zKHQpfX1BVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QVYpKFNtKGhnKSxTbShVZyksU20oaGcpLFNtKEhJLDgpLFNtKEVWLDgpLFNtKHd6KSxTbShhXyksU20oVlAsOCkpfSxBVi7JtWNtcD10byh7dHlwZTpBVixzZWxlY3RvcnM6W1sibWF0LWZvcm0tZmllbGQiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYoJGgobyxiViw1KSwkaChvLGJWLDcpLCRoKG8sdlYsNSksJGgobyx2Viw3KSwkaChvLHhWLDUpLCRoKG8sZlYsNSksJGgobyxDViw1KSwkaChvLE9WLDUpLCRoKG8sd1YsNSkpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX2NvbnRyb2xOb25TdGF0aWM9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2NvbnRyb2xTdGF0aWM9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2xhYmVsQ2hpbGROb25TdGF0aWM9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2xhYmVsQ2hpbGRTdGF0aWM9dC5maXJzdCksSmgodD10YigpKSYmKG4uX3BsYWNlaG9sZGVyQ2hpbGQ9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2Vycm9yQ2hpbGRyZW49dCksSmgodD10YigpKSYmKG4uX2hpbnRDaGlsZHJlbj10KSxKaCh0PXRiKCkpJiYobi5fcHJlZml4Q2hpbGRyZW49dCksSmgodD10YigpKSYmKG4uX3N1ZmZpeENoaWxkcmVuPXQpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChKQiw1KSxRaChRQiw3KSxRaCgkQiw1KSxRaCh0Viw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi51bmRlcmxpbmVSZWY9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2Nvbm5lY3Rpb25Db250YWluZXJSZWY9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2lucHV0Q29udGFpbmVyUmVmPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9sYWJlbD10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LWZvcm0tZmllbGQiXSxob3N0VmFyczo0MCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoIm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQiLCJzdGFuZGFyZCI9PW4uYXBwZWFyYW5jZSkoIm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCIsImZpbGwiPT1uLmFwcGVhcmFuY2UpKCJtYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUiLCJvdXRsaW5lIj09bi5hcHBlYXJhbmNlKSgibWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kiLCJsZWdhY3kiPT1uLmFwcGVhcmFuY2UpKCJtYXQtZm9ybS1maWVsZC1pbnZhbGlkIixuLl9jb250cm9sLmVycm9yU3RhdGUpKCJtYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQiLG4uX2NhbkxhYmVsRmxvYXQoKSkoIm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCIsbi5fc2hvdWxkTGFiZWxGbG9hdCgpKSgibWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsIixuLl9oYXNGbG9hdGluZ0xhYmVsKCkpKCJtYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIixuLl9oaWRlQ29udHJvbFBsYWNlaG9sZGVyKCkpKCJtYXQtZm9ybS1maWVsZC1kaXNhYmxlZCIsbi5fY29udHJvbC5kaXNhYmxlZCkoIm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsZWQiLG4uX2NvbnRyb2wuYXV0b2ZpbGxlZCkoIm1hdC1mb2N1c2VkIixuLl9jb250cm9sLmZvY3VzZWQpKCJuZy11bnRvdWNoZWQiLG4uX3Nob3VsZEZvcndhcmQoInVudG91Y2hlZCIpKSgibmctdG91Y2hlZCIsbi5fc2hvdWxkRm9yd2FyZCgidG91Y2hlZCIpKSgibmctcHJpc3RpbmUiLG4uX3Nob3VsZEZvcndhcmQoInByaXN0aW5lIikpKCJuZy1kaXJ0eSIsbi5fc2hvdWxkRm9yd2FyZCgiZGlydHkiKSkoIm5nLXZhbGlkIixuLl9zaG91bGRGb3J3YXJkKCJ2YWxpZCIpKSgibmctaW52YWxpZCIsbi5fc2hvdWxkRm9yd2FyZCgiaW52YWxpZCIpKSgibmctcGVuZGluZyIsbi5fc2hvdWxkRm9yd2FyZCgicGVuZGluZyIpKSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCFuLl9hbmltYXRpb25zRW5hYmxlZCl9LGlucHV0czp7Y29sb3I6ImNvbG9yIixmbG9hdExhYmVsOiJmbG9hdExhYmVsIixhcHBlYXJhbmNlOiJhcHBlYXJhbmNlIixoaWRlUmVxdWlyZWRNYXJrZXI6ImhpZGVSZXF1aXJlZE1hcmtlciIsaGludExhYmVsOiJoaW50TGFiZWwifSxleHBvcnRBczpbIm1hdEZvcm1GaWVsZCJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6UlYsdXNlRXhpc3Rpbmc6QVZ9XSkseHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiLCJbbWF0UHJlZml4XSIsIm1hdC1wbGFjZWhvbGRlciIsIm1hdC1sYWJlbCIsIlttYXRTdWZmaXhdIiwibWF0LWVycm9yIiwibWF0LWhpbnQ6bm90KFthbGlnbj0nZW5kJ10pIiwibWF0LWhpbnRbYWxpZ249J2VuZCddIl0sZGVjbHM6MTUsdmFyczo4LGNvbnN0czpbWzEsIm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIiXSxbMSwibWF0LWZvcm0tZmllbGQtZmxleCIsMywiY2xpY2siXSxbImNvbm5lY3Rpb25Db250YWluZXIiLCIiXSxbNCwibmdJZiJdLFsiY2xhc3MiLCJtYXQtZm9ybS1maWVsZC1wcmVmaXgiLDQsIm5nSWYiXSxbMSwibWF0LWZvcm0tZmllbGQtaW5maXgiXSxbImlucHV0Q29udGFpbmVyIiwiIl0sWzEsIm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIiXSxbImNsYXNzIiwibWF0LWZvcm0tZmllbGQtbGFiZWwiLDMsImNka09ic2VydmVDb250ZW50RGlzYWJsZWQiLCJpZCIsIm1hdC1lbXB0eSIsIm1hdC1mb3JtLWZpZWxkLWVtcHR5IiwibWF0LWFjY2VudCIsIm1hdC13YXJuIiwibmdTd2l0Y2giLCJjZGtPYnNlcnZlQ29udGVudCIsNCwibmdJZiJdLFsiY2xhc3MiLCJtYXQtZm9ybS1maWVsZC1zdWZmaXgiLDQsIm5nSWYiXSxbImNsYXNzIiwibWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIiw0LCJuZ0lmIl0sWzEsIm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIiwzLCJuZ1N3aXRjaCJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbImNsYXNzIiwibWF0LWZvcm0tZmllbGQtaGludC13cmFwcGVyIiw0LCJuZ1N3aXRjaENhc2UiXSxbMSwibWF0LWZvcm0tZmllbGQtb3V0bGluZSJdLFsxLCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0Il0sWzEsIm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2FwIl0sWzEsIm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5kIl0sWzEsIm1hdC1mb3JtLWZpZWxkLW91dGxpbmUiLCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIl0sWzEsIm1hdC1mb3JtLWZpZWxkLXByZWZpeCJdLFsxLCJtYXQtZm9ybS1maWVsZC1sYWJlbCIsMywiY2RrT2JzZXJ2ZUNvbnRlbnREaXNhYmxlZCIsImlkIiwibmdTd2l0Y2giLCJjZGtPYnNlcnZlQ29udGVudCJdLFsibGFiZWwiLCIiXSxbImNsYXNzIiwibWF0LXBsYWNlaG9sZGVyLXJlcXVpcmVkIG1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtYXQtcGxhY2Vob2xkZXItcmVxdWlyZWQiLCJtYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIiXSxbMSwibWF0LWZvcm0tZmllbGQtc3VmZml4Il0sWzEsIm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSJdLFsidW5kZXJsaW5lIiwiIl0sWzEsIm1hdC1mb3JtLWZpZWxkLXJpcHBsZSJdLFsxLCJtYXQtZm9ybS1maWVsZC1oaW50LXdyYXBwZXIiXSxbImNsYXNzIiwibWF0LWhpbnQiLDMsImlkIiw0LCJuZ0lmIl0sWzEsIm1hdC1mb3JtLWZpZWxkLWhpbnQtc3BhY2VyIl0sWzEsIm1hdC1oaW50IiwzLCJpZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoWm0obVYpLFJtKDAsImRpdiIsMCksUm0oMSwiZGl2IiwxLDIpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2NvbnRyb2wub25Db250YWluZXJDbGljayYmbi5fY29udHJvbC5vbkNvbnRhaW5lckNsaWNrKGUpfSkpLFFwKDMsZVYsOSwwLCJuZy1jb250YWluZXIiLDMpLFFwKDQsblYsMiwwLCJkaXYiLDQpLFJtKDUsImRpdiIsNSw2KSxYbSg3KSxSbSg4LCJzcGFuIiw3KSxRcCg5LHJWLDUsMTYsImxhYmVsIiw4KSxBbSgpLEFtKCksUXAoMTAsc1YsMiwwLCJkaXYiLDkpLEFtKCksUXAoMTEsbFYsMyw0LCJkaXYiLDEwKSxSbSgxMiwiZGl2IiwxMSksUXAoMTMsY1YsMiwxLCJkaXYiLDEyKSxRcCgxNCxwViw1LDIsImRpdiIsMTMpLEFtKCksQW0oKSksMiZlJiYocmMoMyksRG0oIm5nSWYiLCJvdXRsaW5lIj09bi5hcHBlYXJhbmNlKSxyYygxKSxEbSgibmdJZiIsbi5fcHJlZml4Q2hpbGRyZW4ubGVuZ3RoKSxyYyg1KSxEbSgibmdJZiIsbi5faGFzRmxvYXRpbmdMYWJlbCgpKSxyYygxKSxEbSgibmdJZiIsbi5fc3VmZml4Q2hpbGRyZW4ubGVuZ3RoKSxyYygxKSxEbSgibmdJZiIsIm91dGxpbmUiIT1uLmFwcGVhcmFuY2UpLHJjKDEpLERtKCJuZ1N3aXRjaCIsbi5fZ2V0RGlzcGxheWVkTWVzc2FnZXMoKSkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsImVycm9yIikscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsImhpbnQiKSl9LGRpcmVjdGl2ZXM6W2RNLGZNLGdNLGp6XSxzdHlsZXM6WyIubWF0LWZvcm0tZmllbGR7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0fVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGR7dGV4dC1hbGlnbjpyaWdodH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWZvcm0tZmllbGQtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlfS5tYXQtZm9ybS1maWVsZC1wcmVmaXgsLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeHt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleDpub25lO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtZm9ybS1maWVsZC1pbmZpeHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6YXV0bzttaW4td2lkdGg6MDt3aWR0aDoxODBweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtib3JkZXItaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCl9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JveC1zaXppbmc6Y29udGVudC1ib3g7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZX1bZGlyPXJ0bF0gLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7bGVmdDphdXRvO3JpZ2h0OjB9Lm1hdC1mb3JtLWZpZWxkLWxhYmVse3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtmb250OmluaGVyaXQ7cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjt0cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxjb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSx3aWR0aCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtkaXNwbGF5Om5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtsZWZ0OmF1dG87cmlnaHQ6MH0ubWF0LWZvcm0tZmllbGQtZW1wdHkubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2Rpc3BsYXk6YmxvY2t9Lm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpub25lfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpibG9jazt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtaW5wdXQtc2VydmVyW3BsYWNlaG9sZGVyXTpub3QoOnBsYWNlaG9sZGVyLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpub25lfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbcGxhY2Vob2xkZXJdOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZC1sYWJlbDpub3QoLm1hdC1mb3JtLWZpZWxkLWVtcHR5KXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtOnNjYWxlM2QoMSwgMS4wMDAxLCAxKX0ubWF0LWZvcm0tZmllbGQtcmlwcGxle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt3aWR0aDoxMDAlO3RyYW5zZm9ybS1vcmlnaW46NTAlO3RyYW5zZm9ybTpzY2FsZVgoMC41KTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDMwMG1zIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpfS5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7b3BhY2l0eToxO3RyYW5zZm9ybTpub25lO3RyYW5zaXRpb246dHJhbnNmb3JtIDMwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLG9wYWNpdHkgMTAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciAzMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVufS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1pY29ue3dpZHRoOjFlbTtoZWlnaHQ6MWVtO2ZvbnQtc2l6ZTppbmhlcml0O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5tYXQtZm9ybS1maWVsZC1oaW50LXdyYXBwZXJ7ZGlzcGxheTpmbGV4fS5tYXQtZm9ybS1maWVsZC1oaW50LXNwYWNlcntmbGV4OjEgMCAxZW19Lm1hdC1lcnJvcntkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZC1jb250cm9sLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1mb3JtLWZpZWxkLWhpbnQtZW5ke29yZGVyOjF9Lm1hdC1mb3JtLWZpZWxkLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0cmFuc2l0aW9uOm5vbmV9XG4iLCcubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1mbGV4e2JvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7cGFkZGluZzouNzVlbSAuNzVlbSAwIC43NWVtfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXh7b3V0bGluZTpkYXNoZWQgM3B4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtoZWlnaHQ6MXB4O3dpZHRoOjEwMCV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtcmlwcGxle2JvdHRvbTowO2hlaWdodDoycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbDpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3Zlcn4ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7b3BhY2l0eToxO3RyYW5zZm9ybTpub25lO3RyYW5zaXRpb246b3BhY2l0eSA2MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cGFkZGluZzowIDFlbX1cbicsJy5tYXQtaW5wdXQtZWxlbWVudHtmb250OmluaGVyaXQ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpjdXJyZW50Q29sb3I7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lO3BhZGRpbmc6MDttYXJnaW46MDt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTt0ZXh0LWFsaWduOmluaGVyaXQ7Ym94LXNpemluZzpjb250ZW50LWJveH0ubWF0LWlucHV0LWVsZW1lbnQ6LW1vei11aS1pbnZhbGlke2JveC1zaGFkb3c6bm9uZX0ubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy1jbGVhciwubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy1yZXZlYWx7ZGlzcGxheTpub25lfS5tYXQtaW5wdXQtZWxlbWVudCwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNvbnRhY3RzLWF1dG8tZmlsbC1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNhcHMtbG9jay1pbmRpY2F0b3IsLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNyZWRlbnRpYWxzLWF1dG8tZmlsbC1idXR0b257dmlzaWJpbGl0eTpoaWRkZW59Lm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZV0sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZXRpbWVdLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPWRhdGV0aW1lLWxvY2FsXSwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1tb250aF0sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9d2Vla10sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9dGltZV17bGluZS1oZWlnaHQ6MX0ubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1kYXRlXTo6YWZ0ZXIsLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZXRpbWVdOjphZnRlciwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1kYXRldGltZS1sb2NhbF06OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPW1vbnRoXTo6YWZ0ZXIsLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9d2Vla106OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPXRpbWVdOjphZnRlcntjb250ZW50OiIgIjt3aGl0ZS1zcGFjZTpwcmU7d2lkdGg6MXB4fS5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtY2xlYXItYnV0dG9ue2ZvbnQtc2l6ZTouNzVlbX0ubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LW1zLXVzZXItc2VsZWN0OnRleHR9Lm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlcnstbXMtdXNlci1zZWxlY3Q6dGV4dH0ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXI6LW1zLWlucHV0LXBsYWNlaG9sZGVyey1tcy11c2VyLXNlbGVjdDp0ZXh0fS5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlcnstbXMtdXNlci1zZWxlY3Q6dGV4dH0ubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcntvcGFjaXR5OjB9Lm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVye29wYWNpdHk6MH0ubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7b3BhY2l0eTowfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye29wYWNpdHk6MH10ZXh0YXJlYS5tYXQtaW5wdXQtZWxlbWVudHtyZXNpemU6dmVydGljYWw7b3ZlcmZsb3c6YXV0b310ZXh0YXJlYS5tYXQtaW5wdXQtZWxlbWVudC5jZGstdGV4dGFyZWEtYXV0b3NpemV7cmVzaXplOm5vbmV9dGV4dGFyZWEubWF0LWlucHV0LWVsZW1lbnR7cGFkZGluZzoycHggMDttYXJnaW46LTJweCAwfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudHstbW96LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWZsZXg7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctdG9wOjFlbTt0b3A6LTFlbTttYXJnaW4tYm90dG9tOi0xZW19c2VsZWN0Lm1hdC1pbnB1dC1lbGVtZW50OjotbXMtZXhwYW5ke2Rpc3BsYXk6bm9uZX1zZWxlY3QubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9c2VsZWN0Lm1hdC1pbnB1dC1lbGVtZW50Om5vdCg6ZGlzYWJsZWQpe2N1cnNvcjpwb2ludGVyfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDo6LW1zLXZhbHVle2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDpub25lfS5tYXQtZm9jdXNlZCAuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIHNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDo6LW1zLXZhbHVle2NvbG9yOmluaGVyaXR9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb250ZW50OiIiO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo1cHggc29saWQ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDowO21hcmdpbi10b3A6LTIuNXB4O3BvaW50ZXItZXZlbnRzOm5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7cmlnaHQ6YXV0bztsZWZ0OjB9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1pbnB1dC1lbGVtZW50e3BhZGRpbmctcmlnaHQ6MTVweH1bZGlyPXJ0bF0gLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1pbnB1dC1lbGVtZW50e3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MTVweH0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcnttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTBweCl9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7bWFyZ2luLXRvcDotNXB4fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye21hcmdpbi10b3A6LTEwcHh9XG4nLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSgxMDBweCk7LW1zLXRyYW5zZm9ybTpub25lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb257d2lkdGg6MWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbntmb250OmluaGVyaXQ7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb257Zm9udC1zaXplOmluaGVyaXR9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7aGVpZ2h0OjFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMXB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcmlwcGxle3RvcDowO2hlaWdodDoycHg7b3ZlcmZsb3c6aGlkZGVufS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjA7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1wb3NpdGlvbjowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3JkZXItdG9wLXN0eWxlOmRvdHRlZDtib3JkZXItdG9wLXdpZHRoOjJweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtaW52YWxpZDpub3QoLm1hdC1mb2N1c2VkKSAubWF0LWZvcm0tZmllbGQtcmlwcGxle2hlaWdodDoxcHh9XG4iLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC13cmFwcGVye21hcmdpbjouMjVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWZsZXh7cGFkZGluZzowIC43NWVtIDAgLjc1ZW07bWFyZ2luLXRvcDotMC4yNWVtO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1zdWZmaXh7dG9wOi4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmV7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDouMjVlbTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmR7Ym9yZGVyOjFweCBzb2xpZCBjdXJyZW50Q29sb3I7bWluLXdpZHRoOjVweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0e2JvcmRlci1yYWRpdXM6NXB4IDAgMCA1cHg7Ym9yZGVyLXJpZ2h0LXN0eWxlOm5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnR7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7Ym9yZGVyLXJhZGl1czowIDVweCA1cHggMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZHtib3JkZXItcmFkaXVzOjAgNXB4IDVweCAwO2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7ZmxleC1ncm93OjF9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5ke2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC1zdHlsZTpub25lO2JvcmRlci1yYWRpdXM6NXB4IDAgMCA1cHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXB7Ym9yZGVyLXJhZGl1czouMDAwMDAxcHg7Ym9yZGVyOjFweCBzb2xpZCBjdXJyZW50Q29sb3I7Ym9yZGVyLWxlZnQtc3R5bGU6bm9uZTtib3JkZXItcmlnaHQtc3R5bGU6bm9uZX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2Fwe2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tvcGFjaXR5OjB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcHtib3JkZXItd2lkdGg6MnB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMTAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljaywubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tib3JkZXI6M3B4IGRhc2hlZH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgNjAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZTpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3ZlciAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tvcGFjaXR5OjF9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cGFkZGluZzowIDFlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcHt0cmFuc2l0aW9uOm5vbmV9XG4iLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtZmxleHtwYWRkaW5nLXRvcDouNzVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDoxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMXB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7Ym90dG9tOjA7aGVpZ2h0OjJweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjA7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7Ym9yZGVyLXRvcC1zdHlsZTpkb3R0ZWQ7Ym9yZGVyLXRvcC13aWR0aDoycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQ6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXJ+Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtcmlwcGxle29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgNjAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQuX21hdC1hbmltYXRpb24tbm9vcGFibGU6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXJ+Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtcmlwcGxle3RyYW5zaXRpb246bm9uZX1cbiJdLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246W2hWLnRyYW5zaXRpb25NZXNzYWdlc119LGNoYW5nZURldGVjdGlvbjowfSksQVYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltoZ119XX0se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltFVl19XX0se3R5cGU6d3p9LHt0eXBlOmFffSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sQVYucHJvcERlY29yYXRvcnM9e2FwcGVhcmFuY2U6W3t0eXBlOnh5fV0saGlkZVJlcXVpcmVkTWFya2VyOlt7dHlwZTp4eX1dLGhpbnRMYWJlbDpbe3R5cGU6eHl9XSxmbG9hdExhYmVsOlt7dHlwZTp4eX1dLHVuZGVybGluZVJlZjpbe3R5cGU6WmEsYXJnczpbInVuZGVybGluZSJdfV0sX2Nvbm5lY3Rpb25Db250YWluZXJSZWY6W3t0eXBlOlphLGFyZ3M6WyJjb25uZWN0aW9uQ29udGFpbmVyIix7c3RhdGljOiEwfV19XSxfaW5wdXRDb250YWluZXJSZWY6W3t0eXBlOlphLGFyZ3M6WyJpbnB1dENvbnRhaW5lciJdfV0sX2xhYmVsOlt7dHlwZTpaYSxhcmdzOlsibGFiZWwiXX1dLF9jb250cm9sTm9uU3RhdGljOlt7dHlwZTpxYSxhcmdzOltiVl19XSxfY29udHJvbFN0YXRpYzpbe3R5cGU6cWEsYXJnczpbYlYse3N0YXRpYzohMH1dfV0sX2xhYmVsQ2hpbGROb25TdGF0aWM6W3t0eXBlOnFhLGFyZ3M6W3ZWXX1dLF9sYWJlbENoaWxkU3RhdGljOlt7dHlwZTpxYSxhcmdzOlt2Vix7c3RhdGljOiEwfV19XSxfcGxhY2Vob2xkZXJDaGlsZDpbe3R5cGU6cWEsYXJnczpbeFZdfV0sX2Vycm9yQ2hpbGRyZW46W3t0eXBlOllhLGFyZ3M6W2ZWLHtkZXNjZW5kYW50czohMH1dfV0sX2hpbnRDaGlsZHJlbjpbe3R5cGU6WWEsYXJnczpbQ1Yse2Rlc2NlbmRhbnRzOiEwfV19XSxfcHJlZml4Q2hpbGRyZW46W3t0eXBlOllhLGFyZ3M6W09WLHtkZXNjZW5kYW50czohMH1dfV0sX3N1ZmZpeENoaWxkcmVuOlt7dHlwZTpZYSxhcmdzOlt3Vix7ZGVzY2VuZGFudHM6ITB9XX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEFWLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1mb3JtLWZpZWxkIixleHBvcnRBczoibWF0Rm9ybUZpZWxkIix0ZW1wbGF0ZTonPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtd3JhcHBlciI+XG4gIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLWZsZXgiICNjb25uZWN0aW9uQ29udGFpbmVyXG4gICAgICAgKGNsaWNrKT0iX2NvbnRyb2wub25Db250YWluZXJDbGljayAmJiBfY29udHJvbC5vbkNvbnRhaW5lckNsaWNrKCRldmVudCkiPlxuXG4gICAgXHgzYyEtLSBPdXRsaW5lIHVzZWQgZm9yIG91dGxpbmUgYXBwZWFyYW5jZS4gLS1ceDNlXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj0iYXBwZWFyYW5jZSA9PSBcJ291dGxpbmVcJyI+XG4gICAgICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC1vdXRsaW5lIj5cbiAgICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2FwIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmQiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC1vdXRsaW5lIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2siPlxuICAgICAgICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0Ij48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXAiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLXByZWZpeCIgKm5nSWY9Il9wcmVmaXhDaGlsZHJlbi5sZW5ndGgiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSJbbWF0UHJlZml4XSI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtaW5maXgiICNpbnB1dENvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgICAgPHNwYW4gY2xhc3M9Im1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIiPlxuICAgICAgICBceDNjIS0tIFdlIGFkZCBhcmlhLW93bnMgYXMgYSB3b3JrYXJvdW5kIGZvciBhbiBpc3N1ZSBpbiBKQVdTICYgTlZEQSB3aGVyZSB0aGUgbGFiZWwgaXNuXCd0XG4gICAgICAgICAgICAgcmVhZCBpZiBpdCBjb21lcyBiZWZvcmUgdGhlIGNvbnRyb2wgaW4gdGhlIERPTS4gLS1ceDNlXG4gICAgICAgIDxsYWJlbCBjbGFzcz0ibWF0LWZvcm0tZmllbGQtbGFiZWwiXG4gICAgICAgICAgICAgICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPSJ1cGRhdGVPdXRsaW5lR2FwKCkiXG4gICAgICAgICAgICAgICBbY2RrT2JzZXJ2ZUNvbnRlbnREaXNhYmxlZF09ImFwcGVhcmFuY2UgIT0gXCdvdXRsaW5lXCciXG4gICAgICAgICAgICAgICBbaWRdPSJfbGFiZWxJZCJcbiAgICAgICAgICAgICAgIFthdHRyLmZvcl09Il9jb250cm9sLmlkIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1vd25zXT0iX2NvbnRyb2wuaWQiXG4gICAgICAgICAgICAgICBbY2xhc3MubWF0LWVtcHR5XT0iX2NvbnRyb2wuZW1wdHkgJiYgIV9zaG91bGRBbHdheXNGbG9hdCgpIlxuICAgICAgICAgICAgICAgW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWVtcHR5XT0iX2NvbnRyb2wuZW1wdHkgJiYgIV9zaG91bGRBbHdheXNGbG9hdCgpIlxuICAgICAgICAgICAgICAgW2NsYXNzLm1hdC1hY2NlbnRdPSJjb2xvciA9PSBcJ2FjY2VudFwnIlxuICAgICAgICAgICAgICAgW2NsYXNzLm1hdC13YXJuXT0iY29sb3IgPT0gXCd3YXJuXCciXG4gICAgICAgICAgICAgICAjbGFiZWxcbiAgICAgICAgICAgICAgICpuZ0lmPSJfaGFzRmxvYXRpbmdMYWJlbCgpIlxuICAgICAgICAgICAgICAgW25nU3dpdGNoXT0iX2hhc0xhYmVsKCkiPlxuXG4gICAgICAgICAgXHgzYyEtLSBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHJlbW92ZSBpbiBmYXZvciBvZiBtYXQtbGFiZWwgZWxlbWVudCBhbiBwbGFjZWhvbGRlciBhdHRyLiAtLVx4M2VcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9ImZhbHNlIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0ibWF0LXBsYWNlaG9sZGVyIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8c3Bhbj57e19jb250cm9sLnBsYWNlaG9sZGVyfX08L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9Im1hdC1sYWJlbCIgKm5nU3dpdGNoQ2FzZT0idHJ1ZSI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgICAgXHgzYyEtLSBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHJlbW92ZSBgbWF0LXBsYWNlaG9sZGVyLXJlcXVpcmVkYCBjbGFzcyAtLVx4M2VcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9Im1hdC1wbGFjZWhvbGRlci1yZXF1aXJlZCBtYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSJcbiAgICAgICAgICAgICpuZ0lmPSIhaGlkZVJlcXVpcmVkTWFya2VyICYmIF9jb250cm9sLnJlcXVpcmVkICYmICFfY29udHJvbC5kaXNhYmxlZCI+JiMzMjsqPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtc3VmZml4IiAqbmdJZj0iX3N1ZmZpeENoaWxkcmVuLmxlbmd0aCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9IlttYXRTdWZmaXhdIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIFx4M2MhLS0gVW5kZXJsaW5lIHVzZWQgZm9yIGxlZ2FjeSwgc3RhbmRhcmQsIGFuZCBib3ggYXBwZWFyYW5jZXMuIC0tXHgzZVxuICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC11bmRlcmxpbmUiICN1bmRlcmxpbmVcbiAgICAgICAqbmdJZj0iYXBwZWFyYW5jZSAhPSBcJ291dGxpbmVcJyI+XG4gICAgPHNwYW4gY2xhc3M9Im1hdC1mb3JtLWZpZWxkLXJpcHBsZSJcbiAgICAgICAgICBbY2xhc3MubWF0LWFjY2VudF09ImNvbG9yID09IFwnYWNjZW50XCciXG4gICAgICAgICAgW2NsYXNzLm1hdC13YXJuXT0iY29sb3IgPT0gXCd3YXJuXCciPjwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIiXG4gICAgICAgW25nU3dpdGNoXT0iX2dldERpc3BsYXllZE1lc3NhZ2VzKCkiPlxuICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT0iXCdlcnJvclwnIiBbQHRyYW5zaXRpb25NZXNzYWdlc109Il9zdWJzY3JpcHRBbmltYXRpb25TdGF0ZSI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9Im1hdC1lcnJvciI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtaGludC13cmFwcGVyIiAqbmdTd2l0Y2hDYXNlPSJcJ2hpbnRcJyJcbiAgICAgIFtAdHJhbnNpdGlvbk1lc3NhZ2VzXT0iX3N1YnNjcmlwdEFuaW1hdGlvblN0YXRlIj5cbiAgICAgIFx4M2MhLS0gVE9ETyhtbWFsZXJiYSk6IHVzZSBhbiBhY3R1YWwgPG1hdC1oaW50PiBvbmNlIGFsbCBzZWxlY3RvcnMgYXJlIHN3aXRjaGVkIHRvIG1hdC0qIC0tXHgzZVxuICAgICAgPGRpdiAqbmdJZj0iaGludExhYmVsIiBbaWRdPSJfaGludExhYmVsSWQiIGNsYXNzPSJtYXQtaGludCI+e3toaW50TGFiZWx9fTwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSJtYXQtaGludDpub3QoW2FsaWduPVwnZW5kXCddKSI+PC9uZy1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtaGludC1zcGFjZXIiPjwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSJtYXQtaGludFthbGlnbj1cJ2VuZFwnXSI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuJyxhbmltYXRpb25zOltoVi50cmFuc2l0aW9uTWVzc2FnZXNdLGhvc3Q6e2NsYXNzOiJtYXQtZm9ybS1maWVsZCIsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkXSI6J2FwcGVhcmFuY2UgPT0gInN0YW5kYXJkIicsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxdIjonYXBwZWFyYW5jZSA9PSAiZmlsbCInLCJbY2xhc3MubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lXSI6J2FwcGVhcmFuY2UgPT0gIm91dGxpbmUiJywiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5XSI6J2FwcGVhcmFuY2UgPT0gImxlZ2FjeSInLCJbY2xhc3MubWF0LWZvcm0tZmllbGQtaW52YWxpZF0iOiJfY29udHJvbC5lcnJvclN0YXRlIiwiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdF0iOiJfY2FuTGFiZWxGbG9hdCgpIiwiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdF0iOiJfc2hvdWxkTGFiZWxGbG9hdCgpIiwiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWhhcy1sYWJlbF0iOiJfaGFzRmxvYXRpbmdMYWJlbCgpIiwiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXJdIjoiX2hpZGVDb250cm9sUGxhY2Vob2xkZXIoKSIsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZF0iOiJfY29udHJvbC5kaXNhYmxlZCIsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbGVkXSI6Il9jb250cm9sLmF1dG9maWxsZWQiLCJbY2xhc3MubWF0LWZvY3VzZWRdIjoiX2NvbnRyb2wuZm9jdXNlZCIsIltjbGFzcy5uZy11bnRvdWNoZWRdIjonX3Nob3VsZEZvcndhcmQoInVudG91Y2hlZCIpJywiW2NsYXNzLm5nLXRvdWNoZWRdIjonX3Nob3VsZEZvcndhcmQoInRvdWNoZWQiKScsIltjbGFzcy5uZy1wcmlzdGluZV0iOidfc2hvdWxkRm9yd2FyZCgicHJpc3RpbmUiKScsIltjbGFzcy5uZy1kaXJ0eV0iOidfc2hvdWxkRm9yd2FyZCgiZGlydHkiKScsIltjbGFzcy5uZy12YWxpZF0iOidfc2hvdWxkRm9yd2FyZCgidmFsaWQiKScsIltjbGFzcy5uZy1pbnZhbGlkXSI6J19zaG91bGRGb3J3YXJkKCJpbnZhbGlkIiknLCJbY2xhc3MubmctcGVuZGluZ10iOidfc2hvdWxkRm9yd2FyZCgicGVuZGluZyIpJywiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6IiFfYW5pbWF0aW9uc0VuYWJsZWQifSxpbnB1dHM6WyJjb2xvciJdLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHByb3ZpZGVyczpbe3Byb3ZpZGU6UlYsdXNlRXhpc3Rpbmc6QVZ9XSxzdHlsZXM6WyIubWF0LWZvcm0tZmllbGR7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0fVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGR7dGV4dC1hbGlnbjpyaWdodH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWZvcm0tZmllbGQtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlfS5tYXQtZm9ybS1maWVsZC1wcmVmaXgsLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeHt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleDpub25lO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtZm9ybS1maWVsZC1pbmZpeHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6YXV0bzttaW4td2lkdGg6MDt3aWR0aDoxODBweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtib3JkZXItaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCl9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JveC1zaXppbmc6Y29udGVudC1ib3g7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZX1bZGlyPXJ0bF0gLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7bGVmdDphdXRvO3JpZ2h0OjB9Lm1hdC1mb3JtLWZpZWxkLWxhYmVse3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtmb250OmluaGVyaXQ7cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjt0cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxjb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSx3aWR0aCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtkaXNwbGF5Om5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtsZWZ0OmF1dG87cmlnaHQ6MH0ubWF0LWZvcm0tZmllbGQtZW1wdHkubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2Rpc3BsYXk6YmxvY2t9Lm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpub25lfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpibG9jazt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtaW5wdXQtc2VydmVyW3BsYWNlaG9sZGVyXTpub3QoOnBsYWNlaG9sZGVyLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpub25lfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbcGxhY2Vob2xkZXJdOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZC1sYWJlbDpub3QoLm1hdC1mb3JtLWZpZWxkLWVtcHR5KXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtOnNjYWxlM2QoMSwgMS4wMDAxLCAxKX0ubWF0LWZvcm0tZmllbGQtcmlwcGxle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt3aWR0aDoxMDAlO3RyYW5zZm9ybS1vcmlnaW46NTAlO3RyYW5zZm9ybTpzY2FsZVgoMC41KTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDMwMG1zIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpfS5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7b3BhY2l0eToxO3RyYW5zZm9ybTpub25lO3RyYW5zaXRpb246dHJhbnNmb3JtIDMwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLG9wYWNpdHkgMTAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciAzMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVufS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1pY29ue3dpZHRoOjFlbTtoZWlnaHQ6MWVtO2ZvbnQtc2l6ZTppbmhlcml0O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5tYXQtZm9ybS1maWVsZC1oaW50LXdyYXBwZXJ7ZGlzcGxheTpmbGV4fS5tYXQtZm9ybS1maWVsZC1oaW50LXNwYWNlcntmbGV4OjEgMCAxZW19Lm1hdC1lcnJvcntkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZC1jb250cm9sLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1mb3JtLWZpZWxkLWhpbnQtZW5ke29yZGVyOjF9Lm1hdC1mb3JtLWZpZWxkLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0cmFuc2l0aW9uOm5vbmV9XG4iLCcubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1mbGV4e2JvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7cGFkZGluZzouNzVlbSAuNzVlbSAwIC43NWVtfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXh7b3V0bGluZTpkYXNoZWQgM3B4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtoZWlnaHQ6MXB4O3dpZHRoOjEwMCV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtcmlwcGxle2JvdHRvbTowO2hlaWdodDoycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbDpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3Zlcn4ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7b3BhY2l0eToxO3RyYW5zZm9ybTpub25lO3RyYW5zaXRpb246b3BhY2l0eSA2MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cGFkZGluZzowIDFlbX1cbicsJy5tYXQtaW5wdXQtZWxlbWVudHtmb250OmluaGVyaXQ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpjdXJyZW50Q29sb3I7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lO3BhZGRpbmc6MDttYXJnaW46MDt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTt0ZXh0LWFsaWduOmluaGVyaXQ7Ym94LXNpemluZzpjb250ZW50LWJveH0ubWF0LWlucHV0LWVsZW1lbnQ6LW1vei11aS1pbnZhbGlke2JveC1zaGFkb3c6bm9uZX0ubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy1jbGVhciwubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy1yZXZlYWx7ZGlzcGxheTpub25lfS5tYXQtaW5wdXQtZWxlbWVudCwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNvbnRhY3RzLWF1dG8tZmlsbC1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNhcHMtbG9jay1pbmRpY2F0b3IsLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNyZWRlbnRpYWxzLWF1dG8tZmlsbC1idXR0b257dmlzaWJpbGl0eTpoaWRkZW59Lm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZV0sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZXRpbWVdLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPWRhdGV0aW1lLWxvY2FsXSwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1tb250aF0sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9d2Vla10sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9dGltZV17bGluZS1oZWlnaHQ6MX0ubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1kYXRlXTo6YWZ0ZXIsLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZXRpbWVdOjphZnRlciwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1kYXRldGltZS1sb2NhbF06OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPW1vbnRoXTo6YWZ0ZXIsLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9d2Vla106OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPXRpbWVdOjphZnRlcntjb250ZW50OiIgIjt3aGl0ZS1zcGFjZTpwcmU7d2lkdGg6MXB4fS5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtY2xlYXItYnV0dG9ue2ZvbnQtc2l6ZTouNzVlbX0ubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LW1zLXVzZXItc2VsZWN0OnRleHR9Lm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlcnstbXMtdXNlci1zZWxlY3Q6dGV4dH0ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXI6LW1zLWlucHV0LXBsYWNlaG9sZGVyey1tcy11c2VyLXNlbGVjdDp0ZXh0fS5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlcnstbXMtdXNlci1zZWxlY3Q6dGV4dH0ubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcntvcGFjaXR5OjB9Lm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVye29wYWNpdHk6MH0ubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7b3BhY2l0eTowfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye29wYWNpdHk6MH10ZXh0YXJlYS5tYXQtaW5wdXQtZWxlbWVudHtyZXNpemU6dmVydGljYWw7b3ZlcmZsb3c6YXV0b310ZXh0YXJlYS5tYXQtaW5wdXQtZWxlbWVudC5jZGstdGV4dGFyZWEtYXV0b3NpemV7cmVzaXplOm5vbmV9dGV4dGFyZWEubWF0LWlucHV0LWVsZW1lbnR7cGFkZGluZzoycHggMDttYXJnaW46LTJweCAwfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudHstbW96LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWZsZXg7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctdG9wOjFlbTt0b3A6LTFlbTttYXJnaW4tYm90dG9tOi0xZW19c2VsZWN0Lm1hdC1pbnB1dC1lbGVtZW50OjotbXMtZXhwYW5ke2Rpc3BsYXk6bm9uZX1zZWxlY3QubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9c2VsZWN0Lm1hdC1pbnB1dC1lbGVtZW50Om5vdCg6ZGlzYWJsZWQpe2N1cnNvcjpwb2ludGVyfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDo6LW1zLXZhbHVle2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDpub25lfS5tYXQtZm9jdXNlZCAuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIHNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDo6LW1zLXZhbHVle2NvbG9yOmluaGVyaXR9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb250ZW50OiIiO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo1cHggc29saWQ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDowO21hcmdpbi10b3A6LTIuNXB4O3BvaW50ZXItZXZlbnRzOm5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7cmlnaHQ6YXV0bztsZWZ0OjB9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1pbnB1dC1lbGVtZW50e3BhZGRpbmctcmlnaHQ6MTVweH1bZGlyPXJ0bF0gLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1pbnB1dC1lbGVtZW50e3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MTVweH0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcnttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTBweCl9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7bWFyZ2luLXRvcDotNXB4fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye21hcmdpbi10b3A6LTEwcHh9XG4nLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSgxMDBweCk7LW1zLXRyYW5zZm9ybTpub25lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb257d2lkdGg6MWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbntmb250OmluaGVyaXQ7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb257Zm9udC1zaXplOmluaGVyaXR9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7aGVpZ2h0OjFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMXB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcmlwcGxle3RvcDowO2hlaWdodDoycHg7b3ZlcmZsb3c6aGlkZGVufS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjA7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1wb3NpdGlvbjowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3JkZXItdG9wLXN0eWxlOmRvdHRlZDtib3JkZXItdG9wLXdpZHRoOjJweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtaW52YWxpZDpub3QoLm1hdC1mb2N1c2VkKSAubWF0LWZvcm0tZmllbGQtcmlwcGxle2hlaWdodDoxcHh9XG4iLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC13cmFwcGVye21hcmdpbjouMjVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWZsZXh7cGFkZGluZzowIC43NWVtIDAgLjc1ZW07bWFyZ2luLXRvcDotMC4yNWVtO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1zdWZmaXh7dG9wOi4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmV7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDouMjVlbTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmR7Ym9yZGVyOjFweCBzb2xpZCBjdXJyZW50Q29sb3I7bWluLXdpZHRoOjVweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0e2JvcmRlci1yYWRpdXM6NXB4IDAgMCA1cHg7Ym9yZGVyLXJpZ2h0LXN0eWxlOm5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnR7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7Ym9yZGVyLXJhZGl1czowIDVweCA1cHggMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZHtib3JkZXItcmFkaXVzOjAgNXB4IDVweCAwO2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7ZmxleC1ncm93OjF9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5ke2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC1zdHlsZTpub25lO2JvcmRlci1yYWRpdXM6NXB4IDAgMCA1cHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXB7Ym9yZGVyLXJhZGl1czouMDAwMDAxcHg7Ym9yZGVyOjFweCBzb2xpZCBjdXJyZW50Q29sb3I7Ym9yZGVyLWxlZnQtc3R5bGU6bm9uZTtib3JkZXItcmlnaHQtc3R5bGU6bm9uZX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2Fwe2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tvcGFjaXR5OjB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcHtib3JkZXItd2lkdGg6MnB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMTAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljaywubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tib3JkZXI6M3B4IGRhc2hlZH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgNjAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZTpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3ZlciAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tvcGFjaXR5OjF9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7cGFkZGluZzowIDFlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcHt0cmFuc2l0aW9uOm5vbmV9XG4iLCIubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtZmxleHtwYWRkaW5nLXRvcDouNzVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDoxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMXB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7Ym90dG9tOjA7aGVpZ2h0OjJweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7aGVpZ2h0OjA7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7Ym9yZGVyLXRvcC1zdHlsZTpkb3R0ZWQ7Ym9yZGVyLXRvcC13aWR0aDoycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQ6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXJ+Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtcmlwcGxle29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgNjAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQuX21hdC1hbmltYXRpb24tbm9vcGFibGU6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXJ+Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtcmlwcGxle3RyYW5zaXRpb246bm9uZX1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbaGddfV19LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbRVZdfV19LHt0eXBlOnd6fSx7dHlwZTphX30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse2Zsb2F0TGFiZWw6W3t0eXBlOnh5fV0sYXBwZWFyYW5jZTpbe3R5cGU6eHl9XSxoaWRlUmVxdWlyZWRNYXJrZXI6W3t0eXBlOnh5fV0saGludExhYmVsOlt7dHlwZTp4eX1dLHVuZGVybGluZVJlZjpbe3R5cGU6WmEsYXJnczpbInVuZGVybGluZSJdfV0sX2Nvbm5lY3Rpb25Db250YWluZXJSZWY6W3t0eXBlOlphLGFyZ3M6WyJjb25uZWN0aW9uQ29udGFpbmVyIix7c3RhdGljOiEwfV19XSxfaW5wdXRDb250YWluZXJSZWY6W3t0eXBlOlphLGFyZ3M6WyJpbnB1dENvbnRhaW5lciJdfV0sX2xhYmVsOlt7dHlwZTpaYSxhcmdzOlsibGFiZWwiXX1dLF9jb250cm9sTm9uU3RhdGljOlt7dHlwZTpxYSxhcmdzOltiVl19XSxfY29udHJvbFN0YXRpYzpbe3R5cGU6cWEsYXJnczpbYlYse3N0YXRpYzohMH1dfV0sX2xhYmVsQ2hpbGROb25TdGF0aWM6W3t0eXBlOnFhLGFyZ3M6W3ZWXX1dLF9sYWJlbENoaWxkU3RhdGljOlt7dHlwZTpxYSxhcmdzOlt2Vix7c3RhdGljOiEwfV19XSxfcGxhY2Vob2xkZXJDaGlsZDpbe3R5cGU6cWEsYXJnczpbeFZdfV0sX2Vycm9yQ2hpbGRyZW46W3t0eXBlOllhLGFyZ3M6W2ZWLHtkZXNjZW5kYW50czohMH1dfV0sX2hpbnRDaGlsZHJlbjpbe3R5cGU6WWEsYXJnczpbQ1Yse2Rlc2NlbmRhbnRzOiEwfV19XSxfcHJlZml4Q2hpbGRyZW46W3t0eXBlOllhLGFyZ3M6W09WLHtkZXNjZW5kYW50czohMH1dfV0sX3N1ZmZpeENoaWxkcmVuOlt7dHlwZTpZYSxhcmdzOlt3Vix7ZGVzY2VuZGFudHM6ITB9XX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBUVnt9VFYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRWKX0sVFYuybVtb2Q9YW8oe3R5cGU6VFZ9KSxUVi7JtWluaj12bih7aW1wb3J0czpbW1dNLFhJLFV6XSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFRWLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltnVixBVixNVix2Vix4VixQVixrVl0saW1wb3J0czpbV00sWEksVXpdLGV4cG9ydHM6W1hJLGdWLEFWLE1WLHZWLHhWLFBWLGtWXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFRWLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bZ1YsQVYsTVYsdlYseFYsUFYsa1ZdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1dNLFhJLFV6XX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltYSSxnVixBVixNVix2Vix4VixQVixrVl19fSk7Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovCmNsYXNzIE5We2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fcmVuZGVyZXI9dCx0aGlzLl9lbGVtZW50UmVmPWUsdGhpcy5vbkNoYW5nZT10PT57fSx0aGlzLm9uVG91Y2hlZD0oKT0+e319c2V0UHJvcGVydHkodCxlKXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsdCxlKX1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLm9uVG91Y2hlZD10fXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5vbkNoYW5nZT10fXNldERpc2FibGVkU3RhdGUodCl7dGhpcy5zZXRQcm9wZXJ0eSgiZGlzYWJsZWQiLHQpfX1OVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TlYpKFNtKENnKSxTbShoZykpfSxOVi7JtWRpcj1sbyh7dHlwZTpOVn0pLE5WLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6Q2d9LHt0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOVixbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Q2d9LHt0eXBlOmhnfV19KSxudWxsKTtjbGFzcyB6ViBleHRlbmRzIE5We316Vi7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoelYpKSkobnx8elYpfX0pKCkselYuybVkaXI9bG8oe3R5cGU6elYsZmVhdHVyZXM6W3hwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoelYsW3t0eXBlOkN5fV0sbnVsbCxudWxsKTtjb25zdCBJVj1uZXcgR2EoIk5nVmFsdWVBY2Nlc3NvciIpLEhWPXtwcm92aWRlOklWLHVzZUV4aXN0aW5nOnFlKCgoKT0+RlYpKSxtdWx0aTohMH07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIEZWIGV4dGVuZHMgelZ7d3JpdGVWYWx1ZSh0KXt0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIix0KX19RlYuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKEZWKSkpKG58fEZWKX19KSgpLEZWLsm1ZGlyPWxvKHt0eXBlOkZWLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJjaGVja2JveCIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiY2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkNoYW5nZShlLnRhcmdldC5jaGVja2VkKX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvdWNoZWQoKX0pKX0sZmVhdHVyZXM6W3BnKFtIVl0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRlYsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiaW5wdXRbdHlwZT1jaGVja2JveF1bZm9ybUNvbnRyb2xOYW1lXSxpbnB1dFt0eXBlPWNoZWNrYm94XVtmb3JtQ29udHJvbF0saW5wdXRbdHlwZT1jaGVja2JveF1bbmdNb2RlbF0iLGhvc3Q6eyIoY2hhbmdlKSI6Im9uQ2hhbmdlKCRldmVudC50YXJnZXQuY2hlY2tlZCkiLCIoYmx1cikiOiJvblRvdWNoZWQoKSJ9LHByb3ZpZGVyczpbSFZdfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgTFY9e3Byb3ZpZGU6SVYsdXNlRXhpc3Rpbmc6cWUoKCgpPT5WVikpLG11bHRpOiEwfSxCVj1uZXcgR2EoIkNvbXBvc2l0aW9uRXZlbnRNb2RlIik7Y2xhc3MgVlYgZXh0ZW5kcyBOVntjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlKSx0aGlzLl9jb21wb3NpdGlvbk1vZGU9bix0aGlzLl9jb21wb3Npbmc9ITEsbnVsbD09dGhpcy5fY29tcG9zaXRpb25Nb2RlJiYodGhpcy5fY29tcG9zaXRpb25Nb2RlPSEoZnVuY3Rpb24gbygpe2NvbnN0IHQ9cV8oKT9xXygpLmdldFVzZXJBZ2VudCgpOiIiO3JldHVybi9hbmRyb2lkIChcZCspLy50ZXN0KHQudG9Mb3dlckNhc2UoKSl9KSgpKX13cml0ZVZhbHVlKHQpe3RoaXMuc2V0UHJvcGVydHkoInZhbHVlIixudWxsPT10PyIiOnQpfV9oYW5kbGVJbnB1dCh0KXsoIXRoaXMuX2NvbXBvc2l0aW9uTW9kZXx8dGhpcy5fY29tcG9zaXRpb25Nb2RlJiYhdGhpcy5fY29tcG9zaW5nKSYmdGhpcy5vbkNoYW5nZSh0KX1fY29tcG9zaXRpb25TdGFydCgpe3RoaXMuX2NvbXBvc2luZz0hMH1fY29tcG9zaXRpb25FbmQodCl7dGhpcy5fY29tcG9zaW5nPSExLHRoaXMuX2NvbXBvc2l0aW9uTW9kZSYmdGhpcy5vbkNoYW5nZSh0KX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBqVih0KXtyZXR1cm4gbnVsbD09dHx8MD09PXQubGVuZ3RofWZ1bmN0aW9uIFVWKHQpe3JldHVybiBudWxsIT10JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RofVZWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxWVikoU20oQ2cpLFNtKGhnKSxTbShCViw4KSl9LFZWLsm1ZGlyPWxvKHt0eXBlOlZWLHNlbGVjdG9yczpbWyJpbnB1dCIsImZvcm1Db250cm9sTmFtZSIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyJ0ZXh0YXJlYSIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJmb3JtQ29udHJvbCIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyJ0ZXh0YXJlYSIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsIm5nTW9kZWwiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsidGV4dGFyZWEiLCJuZ01vZGVsIiwiIl0sWyIiLCJuZ0RlZmF1bHRDb250cm9sIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiaW5wdXQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVJbnB1dChlLnRhcmdldC52YWx1ZSl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub3VjaGVkKCl9KSkoImNvbXBvc2l0aW9uc3RhcnQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2NvbXBvc2l0aW9uU3RhcnQoKX0pKSgiY29tcG9zaXRpb25lbmQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9jb21wb3NpdGlvbkVuZChlLnRhcmdldC52YWx1ZSl9KSl9LGZlYXR1cmVzOltwZyhbTFZdKSx4cF19KSxWVi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkNnfSx7dHlwZTpoZ30se3R5cGU6Qm9vbGVhbixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbQlZdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFZWLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pW2Zvcm1Db250cm9sTmFtZV0sdGV4dGFyZWFbZm9ybUNvbnRyb2xOYW1lXSxpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKVtmb3JtQ29udHJvbF0sdGV4dGFyZWFbZm9ybUNvbnRyb2xdLGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pW25nTW9kZWxdLHRleHRhcmVhW25nTW9kZWxdLFtuZ0RlZmF1bHRDb250cm9sXSIsaG9zdDp7IihpbnB1dCkiOiIkYW55KHRoaXMpLl9oYW5kbGVJbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKSIsIihibHVyKSI6Im9uVG91Y2hlZCgpIiwiKGNvbXBvc2l0aW9uc3RhcnQpIjoiJGFueSh0aGlzKS5fY29tcG9zaXRpb25TdGFydCgpIiwiKGNvbXBvc2l0aW9uZW5kKSI6IiRhbnkodGhpcykuX2NvbXBvc2l0aW9uRW5kKCRldmVudC50YXJnZXQudmFsdWUpIn0scHJvdmlkZXJzOltMVl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpDZ30se3R5cGU6aGd9LHt0eXBlOkJvb2xlYW4sZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W0JWXX1dfV19KSxudWxsKTtjb25zdCBHVj1uZXcgR2EoIk5nVmFsaWRhdG9ycyIpLFdWPW5ldyBHYSgiTmdBc3luY1ZhbGlkYXRvcnMiKSxZVj0vXig/PS57MSwyNTR9JCkoPz0uezEsNjR9QClbYS16QS1aMC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKD86XC5bYS16QS1aMC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSpAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKiQvO2NsYXNzIHFWe3N0YXRpYyBtaW4odCl7cmV0dXJuIFpWKHQpfXN0YXRpYyBtYXgodCl7cmV0dXJuIFhWKHQpfXN0YXRpYyByZXF1aXJlZCh0KXtyZXR1cm4gS1YodCl9c3RhdGljIHJlcXVpcmVkVHJ1ZSh0KXtyZXR1cm4gSlYodCl9c3RhdGljIGVtYWlsKHQpe3JldHVybiBRVih0KX1zdGF0aWMgbWluTGVuZ3RoKHQpe3JldHVybiAkVih0KX1zdGF0aWMgbWF4TGVuZ3RoKHQpe3JldHVybiB0aih0KX1zdGF0aWMgcGF0dGVybih0KXtyZXR1cm4gZWoodCl9c3RhdGljIG51bGxWYWxpZGF0b3IodCl7cmV0dXJuIG51bGx9c3RhdGljIGNvbXBvc2UodCl7cmV0dXJuIGxqKHQpfXN0YXRpYyBjb21wb3NlQXN5bmModCl7cmV0dXJuIGRqKHQpfX1mdW5jdGlvbiBaVih0KXtyZXR1cm4gZT0+e2lmKGpWKGUudmFsdWUpfHxqVih0KSlyZXR1cm4gbnVsbDtjb25zdCBuPXBhcnNlRmxvYXQoZS52YWx1ZSk7cmV0dXJuIWlzTmFOKG4pJiZuPHQ/e21pbjp7bWluOnQsYWN0dWFsOmUudmFsdWV9fTpudWxsfX1mdW5jdGlvbiBYVih0KXtyZXR1cm4gZT0+e2lmKGpWKGUudmFsdWUpfHxqVih0KSlyZXR1cm4gbnVsbDtjb25zdCBuPXBhcnNlRmxvYXQoZS52YWx1ZSk7cmV0dXJuIWlzTmFOKG4pJiZuPnQ/e21heDp7bWF4OnQsYWN0dWFsOmUudmFsdWV9fTpudWxsfX1mdW5jdGlvbiBLVih0KXtyZXR1cm4galYodC52YWx1ZSk/e3JlcXVpcmVkOiEwfTpudWxsfWZ1bmN0aW9uIEpWKHQpe3JldHVybiEwPT09dC52YWx1ZT9udWxsOntyZXF1aXJlZDohMH19ZnVuY3Rpb24gUVYodCl7cmV0dXJuIGpWKHQudmFsdWUpfHxZVi50ZXN0KHQudmFsdWUpP251bGw6e2VtYWlsOiEwfX1mdW5jdGlvbiAkVih0KXtyZXR1cm4gZT0+alYoZS52YWx1ZSl8fCFVVihlLnZhbHVlKT9udWxsOmUudmFsdWUubGVuZ3RoPHQ/e21pbmxlbmd0aDp7cmVxdWlyZWRMZW5ndGg6dCxhY3R1YWxMZW5ndGg6ZS52YWx1ZS5sZW5ndGh9fTpudWxsfWZ1bmN0aW9uIHRqKHQpe3JldHVybiBlPT5VVihlLnZhbHVlKSYmZS52YWx1ZS5sZW5ndGg+dD97bWF4bGVuZ3RoOntyZXF1aXJlZExlbmd0aDp0LGFjdHVhbExlbmd0aDplLnZhbHVlLmxlbmd0aH19Om51bGx9ZnVuY3Rpb24gZWoodCl7aWYoIXQpcmV0dXJuIG5qO2xldCBlLG47cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0PyhuPSIiLCJeIiE9PXQuY2hhckF0KDApJiYobis9Il4iKSxuKz10LCIkIiE9PXQuY2hhckF0KHQubGVuZ3RoLTEpJiYobis9IiQiKSxlPW5ldyBSZWdFeHAobikpOihuPXQudG9TdHJpbmcoKSxlPXQpLHQ9PntpZihqVih0LnZhbHVlKSlyZXR1cm4gbnVsbDtjb25zdCBvPXQudmFsdWU7cmV0dXJuIGUudGVzdChvKT9udWxsOntwYXR0ZXJuOntyZXF1aXJlZFBhdHRlcm46bixhY3R1YWxWYWx1ZTpvfX19fWZ1bmN0aW9uIG5qKHQpe3JldHVybiBudWxsfWZ1bmN0aW9uIG9qKHQpe3JldHVybiBudWxsIT10fWZ1bmN0aW9uIGlqKHQpe2NvbnN0IGU9Rm0odCk/Q3QodCk6dDtpZighQm0oZSkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHZhbGlkYXRvciB0byByZXR1cm4gUHJvbWlzZSBvciBPYnNlcnZhYmxlLiIpO3JldHVybiBlfWZ1bmN0aW9uIGFqKHQpe2xldCBlPXt9O3JldHVybiB0LmZvckVhY2goKHQ9PntlPW51bGwhPXQ/T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHQpOmV9KSksMD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aD9udWxsOmV9ZnVuY3Rpb24gcmoodCxlKXtyZXR1cm4gZS5tYXAoKGU9PmUodCkpKX1mdW5jdGlvbiBzaih0KXtyZXR1cm4gdC5tYXAoKHQ9PihmdW5jdGlvbiBlKHQpe3JldHVybiF0LnZhbGlkYXRlfSkodCk/dDplPT50LnZhbGlkYXRlKGUpKSl9ZnVuY3Rpb24gbGoodCl7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3QgZT10LmZpbHRlcihvaik7cmV0dXJuIDA9PWUubGVuZ3RoP251bGw6ZnVuY3Rpb24odCl7cmV0dXJuIGFqKHJqKHQsZSkpfX1mdW5jdGlvbiBjaih0KXtyZXR1cm4gbnVsbCE9dD9saihzaih0KSk6bnVsbH1mdW5jdGlvbiBkaih0KXtpZighdClyZXR1cm4gbnVsbDtjb25zdCBlPXQuZmlsdGVyKG9qKTtyZXR1cm4gMD09ZS5sZW5ndGg/bnVsbDpmdW5jdGlvbih0KXtyZXR1cm4gJHQocmoodCxlKS5tYXAoaWopKS5waXBlKEl0KGFqKSl9fWZ1bmN0aW9uIHBqKHQpe3JldHVybiBudWxsIT10P2RqKHNqKHQpKTpudWxsfWZ1bmN0aW9uIG1qKHQsZSl7cmV0dXJuIG51bGw9PT10P1tlXTpBcnJheS5pc0FycmF5KHQpP1suLi50LGVdOlt0LGVdfWZ1bmN0aW9uIHVqKHQpe3JldHVybiB0Ll9yYXdWYWxpZGF0b3JzfWZ1bmN0aW9uIGZqKHQpe3JldHVybiB0Ll9yYXdBc3luY1ZhbGlkYXRvcnN9ZnVuY3Rpb24gZ2oodCl7cmV0dXJuIHQ/QXJyYXkuaXNBcnJheSh0KT90Olt0XTpbXX1mdW5jdGlvbiBoaih0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QuaW5jbHVkZXMoZSk6dD09PWV9ZnVuY3Rpb24gYmoodCxlKXtjb25zdCBuPWdqKGUpO3JldHVybiBnaih0KS5mb3JFYWNoKCh0PT57aGoobix0KXx8bi5wdXNoKHQpfSkpLG59ZnVuY3Rpb24geWoodCxlKXtyZXR1cm4gZ2ooZSkuZmlsdGVyKChlPT4haGoodCxlKSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBfantjb25zdHJ1Y3Rvcigpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9W10sdGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPVtdLHRoaXMuX29uRGVzdHJveUNhbGxiYWNrcz1bXX1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC52YWx1ZTpudWxsfWdldCB2YWxpZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnZhbGlkOm51bGx9Z2V0IGludmFsaWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5pbnZhbGlkOm51bGx9Z2V0IHBlbmRpbmcoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5wZW5kaW5nOm51bGx9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZGlzYWJsZWQ6bnVsbH1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmVuYWJsZWQ6bnVsbH1nZXQgZXJyb3JzKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZXJyb3JzOm51bGx9Z2V0IHByaXN0aW5lKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wucHJpc3RpbmU6bnVsbH1nZXQgZGlydHkoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5kaXJ0eTpudWxsfWdldCB0b3VjaGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wudG91Y2hlZDpudWxsfWdldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5zdGF0dXM6bnVsbH1nZXQgdW50b3VjaGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wudW50b3VjaGVkOm51bGx9Z2V0IHN0YXR1c0NoYW5nZXMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzOm51bGx9Z2V0IHZhbHVlQ2hhbmdlcygpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlczpudWxsfWdldCBwYXRoKCl7cmV0dXJuIG51bGx9X3NldFZhbGlkYXRvcnModCl7dGhpcy5fcmF3VmFsaWRhdG9ycz10fHxbXSx0aGlzLl9jb21wb3NlZFZhbGlkYXRvckZuPWNqKHRoaXMuX3Jhd1ZhbGlkYXRvcnMpfV9zZXRBc3luY1ZhbGlkYXRvcnModCl7dGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPXR8fFtdLHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1waih0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpfWdldCB2YWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbnx8bnVsbH1nZXQgYXN5bmNWYWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5fY29tcG9zZWRBc3luY1ZhbGlkYXRvckZufHxudWxsfV9yZWdpc3Rlck9uRGVzdHJveSh0KXt0aGlzLl9vbkRlc3Ryb3lDYWxsYmFja3MucHVzaCh0KX1faW52b2tlT25EZXN0cm95Q2FsbGJhY2tzKCl7dGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uRGVzdHJveUNhbGxiYWNrcz1bXX1yZXNldCh0KXt0aGlzLmNvbnRyb2wmJnRoaXMuY29udHJvbC5yZXNldCh0KX1oYXNFcnJvcih0LGUpe3JldHVybiEhdGhpcy5jb250cm9sJiZ0aGlzLmNvbnRyb2wuaGFzRXJyb3IodCxlKX1nZXRFcnJvcih0LGUpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmdldEVycm9yKHQsZSk6bnVsbH19X2ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fF9qKX0sX2ouybVkaXI9bG8oe3R5cGU6X2p9KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIENqIGV4dGVuZHMgX2p7Z2V0IGZvcm1EaXJlY3RpdmUoKXtyZXR1cm4gbnVsbH1nZXQgcGF0aCgpe3JldHVybiBudWxsfX1Dai7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoQ2opKSkobnx8Q2opfX0pKCksQ2ouybVkaXI9bG8oe3R5cGU6Q2osZmVhdHVyZXM6W3hwXX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgTWogZXh0ZW5kcyBfantjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fcGFyZW50PW51bGwsdGhpcy5uYW1lPW51bGwsdGhpcy52YWx1ZUFjY2Vzc29yPW51bGx9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB2antjb25zdHJ1Y3Rvcih0KXt0aGlzLl9jZD10fWlzKHQpe3ZhciBlLG4sbztyZXR1cm4ic3VibWl0dGVkIj09PXQ/ISEobnVsbD09PShlPXRoaXMuX2NkKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5zdWJtaXR0ZWQpOiEhKG51bGw9PT0obz1udWxsPT09KG49dGhpcy5fY2QpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmNvbnRyb2wpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvW3RdKX19Y2xhc3MgeGogZXh0ZW5kcyB2antjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX19eGouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHhqKShTbShNaiwyKSl9LHhqLsm1ZGlyPWxvKHt0eXBlOnhqLHNlbGVjdG9yczpbWyIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIiIsIm5nTW9kZWwiLCIiXSxbIiIsImZvcm1Db250cm9sIiwiIl1dLGhvc3RWYXJzOjE0LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgibmctdW50b3VjaGVkIixuLmlzKCJ1bnRvdWNoZWQiKSkoIm5nLXRvdWNoZWQiLG4uaXMoInRvdWNoZWQiKSkoIm5nLXByaXN0aW5lIixuLmlzKCJwcmlzdGluZSIpKSgibmctZGlydHkiLG4uaXMoImRpcnR5IikpKCJuZy12YWxpZCIsbi5pcygidmFsaWQiKSkoIm5nLWludmFsaWQiLG4uaXMoImludmFsaWQiKSkoIm5nLXBlbmRpbmciLG4uaXMoInBlbmRpbmciKSl9LGZlYXR1cmVzOlt4cF19KSx4ai5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOk1qLGRlY29yYXRvcnM6W3t0eXBlOkRyfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHhqLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Iltmb3JtQ29udHJvbE5hbWVdLFtuZ01vZGVsXSxbZm9ybUNvbnRyb2xdIixob3N0OnsiW2NsYXNzLm5nLXVudG91Y2hlZF0iOidpcygidW50b3VjaGVkIiknLCJbY2xhc3MubmctdG91Y2hlZF0iOidpcygidG91Y2hlZCIpJywiW2NsYXNzLm5nLXByaXN0aW5lXSI6J2lzKCJwcmlzdGluZSIpJywiW2NsYXNzLm5nLWRpcnR5XSI6J2lzKCJkaXJ0eSIpJywiW2NsYXNzLm5nLXZhbGlkXSI6J2lzKCJ2YWxpZCIpJywiW2NsYXNzLm5nLWludmFsaWRdIjonaXMoImludmFsaWQiKScsIltjbGFzcy5uZy1wZW5kaW5nXSI6J2lzKCJwZW5kaW5nIiknfX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOk1qLGRlY29yYXRvcnM6W3t0eXBlOkRyfV19XX0pLG51bGwpO2NsYXNzIE9qIGV4dGVuZHMgdmp7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9fU9qLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxPaikoU20oQ2osMTApKX0sT2ouybVkaXI9bG8oe3R5cGU6T2osc2VsZWN0b3JzOltbIiIsImZvcm1Hcm91cE5hbWUiLCIiXSxbIiIsImZvcm1BcnJheU5hbWUiLCIiXSxbIiIsIm5nTW9kZWxHcm91cCIsIiJdLFsiIiwiZm9ybUdyb3VwIiwiIl0sWyJmb3JtIiwzLCJuZ05vRm9ybSIsIiJdLFsiIiwibmdGb3JtIiwiIl1dLGhvc3RWYXJzOjE2LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgibmctdW50b3VjaGVkIixuLmlzKCJ1bnRvdWNoZWQiKSkoIm5nLXRvdWNoZWQiLG4uaXMoInRvdWNoZWQiKSkoIm5nLXByaXN0aW5lIixuLmlzKCJwcmlzdGluZSIpKSgibmctZGlydHkiLG4uaXMoImRpcnR5IikpKCJuZy12YWxpZCIsbi5pcygidmFsaWQiKSkoIm5nLWludmFsaWQiLG4uaXMoImludmFsaWQiKSkoIm5nLXBlbmRpbmciLG4uaXMoInBlbmRpbmciKSkoIm5nLXN1Ym1pdHRlZCIsbi5pcygic3VibWl0dGVkIikpfSxmZWF0dXJlczpbeHBdfSksT2ouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpDaixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoT2osW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Zvcm1Hcm91cE5hbWVdLFtmb3JtQXJyYXlOYW1lXSxbbmdNb2RlbEdyb3VwXSxbZm9ybUdyb3VwXSxmb3JtOm5vdChbbmdOb0Zvcm1dKSxbbmdGb3JtXSIsaG9zdDp7IltjbGFzcy5uZy11bnRvdWNoZWRdIjonaXMoInVudG91Y2hlZCIpJywiW2NsYXNzLm5nLXRvdWNoZWRdIjonaXMoInRvdWNoZWQiKScsIltjbGFzcy5uZy1wcmlzdGluZV0iOidpcygicHJpc3RpbmUiKScsIltjbGFzcy5uZy1kaXJ0eV0iOidpcygiZGlydHkiKScsIltjbGFzcy5uZy12YWxpZF0iOidpcygidmFsaWQiKScsIltjbGFzcy5uZy1pbnZhbGlkXSI6J2lzKCJpbnZhbGlkIiknLCJbY2xhc3MubmctcGVuZGluZ10iOidpcygicGVuZGluZyIpJywiW2NsYXNzLm5nLXN1Ym1pdHRlZF0iOidpcygic3VibWl0dGVkIiknfX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkNqLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFBqPSdcbiAgICA8ZGl2IFtmb3JtR3JvdXBdPSJteUdyb3VwIj5cbiAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9ImZpcnN0TmFtZSI+XG4gICAgPC9kaXY+XG5cbiAgICBJbiB5b3VyIGNsYXNzOlxuXG4gICAgdGhpcy5teUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgZmlyc3ROYW1lOiBuZXcgRm9ybUNvbnRyb2woKVxuICAgIH0pOycsd2o9J1xuICAgIDxkaXYgW2Zvcm1Hcm91cF09Im15R3JvdXAiPlxuICAgICAgIDxkaXYgZm9ybUdyb3VwTmFtZT0icGVyc29uIj5cbiAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPSJmaXJzdE5hbWUiPlxuICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgSW4geW91ciBjbGFzczpcblxuICAgIHRoaXMubXlHcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgIHBlcnNvbjogbmV3IEZvcm1Hcm91cCh7IGZpcnN0TmFtZTogbmV3IEZvcm1Db250cm9sKCkgfSlcbiAgICB9KTsnLGtqPSdcbiAgICA8Zm9ybT5cbiAgICAgICA8ZGl2IG5nTW9kZWxHcm91cD0icGVyc29uIj5cbiAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09InBlcnNvbi5uYW1lIiBuYW1lPSJmaXJzdE5hbWUiPlxuICAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT4nOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBTantzdGF0aWMgY29udHJvbFBhcmVudEV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcihgZm9ybUNvbnRyb2xOYW1lIG11c3QgYmUgdXNlZCB3aXRoIGEgcGFyZW50IGZvcm1Hcm91cCBkaXJlY3RpdmUuICBZb3UnbGwgd2FudCB0byBhZGQgYSBmb3JtR3JvdXBcbiAgICAgICBkaXJlY3RpdmUgYW5kIHBhc3MgaXQgYW4gZXhpc3RpbmcgRm9ybUdyb3VwIGluc3RhbmNlICh5b3UgY2FuIGNyZWF0ZSBvbmUgaW4geW91ciBjbGFzcykuXG5cbiAgICAgIEV4YW1wbGU6XG5cbiAgICAgICR7UGp9YCl9c3RhdGljIG5nTW9kZWxHcm91cEV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcihgZm9ybUNvbnRyb2xOYW1lIGNhbm5vdCBiZSB1c2VkIHdpdGggYW4gbmdNb2RlbEdyb3VwIHBhcmVudC4gSXQgaXMgb25seSBjb21wYXRpYmxlIHdpdGggcGFyZW50c1xuICAgICAgIHRoYXQgYWxzbyBoYXZlIGEgImZvcm0iIHByZWZpeDogZm9ybUdyb3VwTmFtZSwgZm9ybUFycmF5TmFtZSwgb3IgZm9ybUdyb3VwLlxuXG4gICAgICAgT3B0aW9uIDE6ICBVcGRhdGUgdGhlIHBhcmVudCB0byBiZSBmb3JtR3JvdXBOYW1lIChyZWFjdGl2ZSBmb3JtIHN0cmF0ZWd5KVxuXG4gICAgICAgICR7d2p9XG5cbiAgICAgICAgT3B0aW9uIDI6IFVzZSBuZ01vZGVsIGluc3RlYWQgb2YgZm9ybUNvbnRyb2xOYW1lICh0ZW1wbGF0ZS1kcml2ZW4gc3RyYXRlZ3kpXG5cbiAgICAgICAgJHtran1gKX1zdGF0aWMgbWlzc2luZ0Zvcm1FeGNlcHRpb24oKXt0aHJvdyBuZXcgRXJyb3IoYGZvcm1Hcm91cCBleHBlY3RzIGEgRm9ybUdyb3VwIGluc3RhbmNlLiBQbGVhc2UgcGFzcyBvbmUgaW4uXG5cbiAgICAgICBFeGFtcGxlOlxuXG4gICAgICAgJHtQan1gKX1zdGF0aWMgZ3JvdXBQYXJlbnRFeGNlcHRpb24oKXt0aHJvdyBuZXcgRXJyb3IoYGZvcm1Hcm91cE5hbWUgbXVzdCBiZSB1c2VkIHdpdGggYSBwYXJlbnQgZm9ybUdyb3VwIGRpcmVjdGl2ZS4gIFlvdSdsbCB3YW50IHRvIGFkZCBhIGZvcm1Hcm91cFxuICAgICAgZGlyZWN0aXZlIGFuZCBwYXNzIGl0IGFuIGV4aXN0aW5nIEZvcm1Hcm91cCBpbnN0YW5jZSAoeW91IGNhbiBjcmVhdGUgb25lIGluIHlvdXIgY2xhc3MpLlxuXG4gICAgICBFeGFtcGxlOlxuXG4gICAgICAke3dqfWApfXN0YXRpYyBhcnJheVBhcmVudEV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcignZm9ybUFycmF5TmFtZSBtdXN0IGJlIHVzZWQgd2l0aCBhIHBhcmVudCBmb3JtR3JvdXAgZGlyZWN0aXZlLiAgWW91XCdsbCB3YW50IHRvIGFkZCBhIGZvcm1Hcm91cFxuICAgICAgIGRpcmVjdGl2ZSBhbmQgcGFzcyBpdCBhbiBleGlzdGluZyBGb3JtR3JvdXAgaW5zdGFuY2UgKHlvdSBjYW4gY3JlYXRlIG9uZSBpbiB5b3VyIGNsYXNzKS5cblxuICAgICAgICBFeGFtcGxlOlxuXG4gICAgICAgIFxuICAgIDxkaXYgW2Zvcm1Hcm91cF09Im15R3JvdXAiPlxuICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPSJjaXRpZXMiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj0ibGV0IGNpdHkgb2YgY2l0eUFycmF5LmNvbnRyb2xzOyBpbmRleCBhcyBpIj5cbiAgICAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sTmFtZV09ImkiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgSW4geW91ciBjbGFzczpcblxuICAgIHRoaXMuY2l0eUFycmF5ID0gbmV3IEZvcm1BcnJheShbbmV3IEZvcm1Db250cm9sKFwnU0ZcJyldKTtcbiAgICB0aGlzLm15R3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGNpdGllczogdGhpcy5jaXR5QXJyYXlcbiAgICB9KTsnKX1zdGF0aWMgZGlzYWJsZWRBdHRyV2FybmluZygpe2NvbnNvbGUud2FybigiXG4gICAgICBJdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyB0aGUgZGlzYWJsZWQgYXR0cmlidXRlIHdpdGggYSByZWFjdGl2ZSBmb3JtIGRpcmVjdGl2ZS4gSWYgeW91IHNldCBkaXNhYmxlZCB0byB0cnVlXG4gICAgICB3aGVuIHlvdSBzZXQgdXAgdGhpcyBjb250cm9sIGluIHlvdXIgY29tcG9uZW50IGNsYXNzLCB0aGUgZGlzYWJsZWQgYXR0cmlidXRlIHdpbGwgYWN0dWFsbHkgYmUgc2V0IGluIHRoZSBET00gZm9yXG4gICAgICB5b3UuIFdlIHJlY29tbWVuZCB1c2luZyB0aGlzIGFwcHJvYWNoIHRvIGF2b2lkICdjaGFuZ2VkIGFmdGVyIGNoZWNrZWQnIGVycm9ycy5cblxuICAgICAgRXhhbXBsZTpcbiAgICAgIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgZmlyc3Q6IG5ldyBGb3JtQ29udHJvbCh7dmFsdWU6ICdOYW5jeScsIGRpc2FibGVkOiB0cnVlfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGxhc3Q6IG5ldyBGb3JtQ29udHJvbCgnRHJldycsIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICB9KTtcbiAgICAiKX1zdGF0aWMgbmdNb2RlbFdhcm5pbmcodCl7Y29uc29sZS53YXJuKGBcbiAgICBJdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyBuZ01vZGVsIG9uIHRoZSBzYW1lIGZvcm0gZmllbGQgYXMgJHt0fS5cbiAgICBTdXBwb3J0IGZvciB1c2luZyB0aGUgbmdNb2RlbCBpbnB1dCBwcm9wZXJ0eSBhbmQgbmdNb2RlbENoYW5nZSBldmVudCB3aXRoXG4gICAgcmVhY3RpdmUgZm9ybSBkaXJlY3RpdmVzIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gQW5ndWxhciB2NiBhbmQgd2lsbCBiZSByZW1vdmVkXG4gICAgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBBbmd1bGFyLlxuXG4gICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgc2VlIG91ciBBUEkgZG9jcyBoZXJlOlxuICAgIGh0dHBzOi8vYW5ndWxhci5pby9hcGkvZm9ybXMvJHsiZm9ybUNvbnRyb2wiPT09dD8iRm9ybUNvbnRyb2xEaXJlY3RpdmUiOiJGb3JtQ29udHJvbE5hbWUifSN1c2Utd2l0aC1uZ21vZGVsXG4gICAgYCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBEaih0LGUpe3JldHVyblsuLi5lLnBhdGgsdF19ZnVuY3Rpb24gRWoodCxlKXsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJih0fHxIaihlLCJDYW5ub3QgZmluZCBjb250cm9sIHdpdGgiKSxlLnZhbHVlQWNjZXNzb3J8fEhqKGUsIk5vIHZhbHVlIGFjY2Vzc29yIGZvciBmb3JtIGNvbnRyb2wgd2l0aCIpKSxUaih0LGUpLGUudmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlKHQudmFsdWUpLChmdW5jdGlvbiBuKHQsZSl7ZS52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2UoKG49Pnt0Ll9wZW5kaW5nVmFsdWU9bix0Ll9wZW5kaW5nQ2hhbmdlPSEwLHQuX3BlbmRpbmdEaXJ0eT0hMCwiY2hhbmdlIj09PXQudXBkYXRlT24mJnpqKHQsZSl9KSl9KSh0LGUpLChmdW5jdGlvbiBvKHQsZSl7Y29uc3Qgbj0odCxuKT0+e2UudmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlKHQpLG4mJmUudmlld1RvTW9kZWxVcGRhdGUodCl9O3QucmVnaXN0ZXJPbkNoYW5nZShuKSxlLl9yZWdpc3Rlck9uRGVzdHJveSgoKCk9Pnt0Ll91bnJlZ2lzdGVyT25DaGFuZ2Uobil9KSl9KSh0LGUpLChmdW5jdGlvbiBpKHQsZSl7ZS52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25Ub3VjaGVkKCgoKT0+e3QuX3BlbmRpbmdUb3VjaGVkPSEwLCJibHVyIj09PXQudXBkYXRlT24mJnQuX3BlbmRpbmdDaGFuZ2UmJnpqKHQsZSksInN1Ym1pdCIhPT10LnVwZGF0ZU9uJiZ0Lm1hcmtBc1RvdWNoZWQoKX0pKX0pKHQsZSksKGZ1bmN0aW9uIGEodCxlKXtpZihlLnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZSl7Y29uc3Qgbj10PT57ZS52YWx1ZUFjY2Vzc29yLnNldERpc2FibGVkU3RhdGUodCl9O3QucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKG4pLGUuX3JlZ2lzdGVyT25EZXN0cm95KCgoKT0+e3QuX3VucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKG4pfSkpfX0pKHQsZSl9ZnVuY3Rpb24gUmoodCxlLG49ITApe2NvbnN0IG89KCk9PntuJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJihmdW5jdGlvbiB0KGUpe0hqKGUsIlRoZXJlIGlzIG5vIEZvcm1Db250cm9sIGluc3RhbmNlIGF0dGFjaGVkIHRvIGZvcm0gY29udHJvbCBlbGVtZW50IHdpdGgiKX0pKGUpfTtlLnZhbHVlQWNjZXNzb3ImJihlLnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPbkNoYW5nZShvKSxlLnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPblRvdWNoZWQobykpLE5qKHQsZSksdCYmKGUuX2ludm9rZU9uRGVzdHJveUNhbGxiYWNrcygpLHQuX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgoKT0+e30pKSl9ZnVuY3Rpb24gQWoodCxlKXt0LmZvckVhY2goKHQ9Pnt0LnJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UmJnQucmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShlKX0pKX1mdW5jdGlvbiBUaih0LGUpe2NvbnN0IG49dWoodCk7bnVsbCE9PWUudmFsaWRhdG9yP3Quc2V0VmFsaWRhdG9ycyhtaihuLGUudmFsaWRhdG9yKSk6ImZ1bmN0aW9uIj09dHlwZW9mIG4mJnQuc2V0VmFsaWRhdG9ycyhbbl0pO2NvbnN0IG89ZmoodCk7bnVsbCE9PWUuYXN5bmNWYWxpZGF0b3I/dC5zZXRBc3luY1ZhbGlkYXRvcnMobWoobyxlLmFzeW5jVmFsaWRhdG9yKSk6ImZ1bmN0aW9uIj09dHlwZW9mIG8mJnQuc2V0QXN5bmNWYWxpZGF0b3JzKFtvXSk7Y29uc3QgaT0oKT0+dC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7QWooZS5fcmF3VmFsaWRhdG9ycyxpKSxBaihlLl9yYXdBc3luY1ZhbGlkYXRvcnMsaSl9ZnVuY3Rpb24gTmoodCxlKXtsZXQgbj0hMTtpZihudWxsIT09dCl7aWYobnVsbCE9PWUudmFsaWRhdG9yKXtjb25zdCBvPXVqKHQpO2lmKEFycmF5LmlzQXJyYXkobykmJm8ubGVuZ3RoPjApe2NvbnN0IGk9by5maWx0ZXIoKHQ9PnQhPT1lLnZhbGlkYXRvcikpO2kubGVuZ3RoIT09by5sZW5ndGgmJihuPSEwLHQuc2V0VmFsaWRhdG9ycyhpKSl9fWlmKG51bGwhPT1lLmFzeW5jVmFsaWRhdG9yKXtjb25zdCBvPWZqKHQpO2lmKEFycmF5LmlzQXJyYXkobykmJm8ubGVuZ3RoPjApe2NvbnN0IGk9by5maWx0ZXIoKHQ9PnQhPT1lLmFzeW5jVmFsaWRhdG9yKSk7aS5sZW5ndGghPT1vLmxlbmd0aCYmKG49ITAsdC5zZXRBc3luY1ZhbGlkYXRvcnMoaSkpfX19Y29uc3Qgbz0oKT0+e307cmV0dXJuIEFqKGUuX3Jhd1ZhbGlkYXRvcnMsbyksQWooZS5fcmF3QXN5bmNWYWxpZGF0b3JzLG8pLG59ZnVuY3Rpb24gemoodCxlKXt0Ll9wZW5kaW5nRGlydHkmJnQubWFya0FzRGlydHkoKSx0LnNldFZhbHVlKHQuX3BlbmRpbmdWYWx1ZSx7ZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiExfSksZS52aWV3VG9Nb2RlbFVwZGF0ZSh0Ll9wZW5kaW5nVmFsdWUpLHQuX3BlbmRpbmdDaGFuZ2U9ITF9ZnVuY3Rpb24gSWoodCxlKXtudWxsIT10fHwidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8SGooZSwiQ2Fubm90IGZpbmQgY29udHJvbCB3aXRoIiksVGoodCxlKX1mdW5jdGlvbiBIaih0LGUpe2xldCBuO3Rocm93IG49dC5wYXRoLmxlbmd0aD4xP2BwYXRoOiAnJHt0LnBhdGguam9pbigiIC0+ICIpfSdgOnQucGF0aFswXT9gbmFtZTogJyR7dC5wYXRofSdgOiJ1bnNwZWNpZmllZCBuYW1lIGF0dHJpYnV0ZSIsbmV3IEVycm9yKGAke2V9ICR7bn1gKX1mdW5jdGlvbiBGaih0LGUpe2lmKCF0Lmhhc093blByb3BlcnR5KCJtb2RlbCIpKXJldHVybiExO2NvbnN0IG49dC5tb2RlbDtyZXR1cm4hIW4uaXNGaXJzdENoYW5nZSgpfHwhT2JqZWN0LmlzKGUsbi5jdXJyZW50VmFsdWUpfWZ1bmN0aW9uIExqKHQsZSl7dC5fc3luY1BlbmRpbmdDb250cm9scygpLGUuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5jb250cm9sOyJzdWJtaXQiPT09ZS51cGRhdGVPbiYmZS5fcGVuZGluZ0NoYW5nZSYmKHQudmlld1RvTW9kZWxVcGRhdGUoZS5fcGVuZGluZ1ZhbHVlKSxlLl9wZW5kaW5nQ2hhbmdlPSExKX0pKX1mdW5jdGlvbiBCaih0LGUpe2lmKCFlKXJldHVybiBudWxsO2xldCBuLG8saTtyZXR1cm4gQXJyYXkuaXNBcnJheShlKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fEhqKHQsIlZhbHVlIGFjY2Vzc29yIHdhcyBub3QgcHJvdmlkZWQgYXMgYW4gYXJyYXkgZm9yIGZvcm0gY29udHJvbCB3aXRoIiksZS5mb3JFYWNoKChlPT57ZS5jb25zdHJ1Y3Rvcj09PVZWP249ZTooZnVuY3Rpb24gYSh0KXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKHQuY29uc3RydWN0b3IpPT09elZ9KShlKT8obyYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZIaih0LCJNb3JlIHRoYW4gb25lIGJ1aWx0LWluIHZhbHVlIGFjY2Vzc29yIG1hdGNoZXMgZm9ybSBjb250cm9sIHdpdGgiKSxvPWUpOihpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJkhqKHQsIk1vcmUgdGhhbiBvbmUgY3VzdG9tIHZhbHVlIGFjY2Vzc29yIG1hdGNoZXMgZm9ybSBjb250cm9sIHdpdGgiKSxpPWUpfSkpLGl8fG98fG58fCgoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJkhqKHQsIk5vIHZhbGlkIHZhbHVlIGFjY2Vzc29yIGZvciBmb3JtIGNvbnRyb2wgd2l0aCIpLG51bGwpfWZ1bmN0aW9uIFZqKHQsZSl7Y29uc3Qgbj10LmluZGV4T2YoZSk7bj4tMSYmdC5zcGxpY2UobiwxKX1mdW5jdGlvbiBqaih0LGUsbixvKXsibmV2ZXIiIT09byYmKChudWxsIT09byYmIm9uY2UiIT09b3x8ZS5fbmdNb2RlbFdhcm5pbmdTZW50T25jZSkmJigiYWx3YXlzIiE9PW98fG4uX25nTW9kZWxXYXJuaW5nU2VudCl8fChTai5uZ01vZGVsV2FybmluZyh0KSxlLl9uZ01vZGVsV2FybmluZ1NlbnRPbmNlPSEwLG4uX25nTW9kZWxXYXJuaW5nU2VudD0hMCkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBVaj0iVkFMSUQiLEdqPSJJTlZBTElEIixXaj0iUEVORElORyIsWWo9IkRJU0FCTEVEIjtmdW5jdGlvbiBxaih0KXtyZXR1cm4oSmoodCk/dC52YWxpZGF0b3JzOnQpfHxudWxsfWZ1bmN0aW9uIFpqKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP2NqKHQpOnR8fG51bGx9ZnVuY3Rpb24gWGoodCxlKXtyZXR1cm4oSmooZSk/ZS5hc3luY1ZhbGlkYXRvcnM6dCl8fG51bGx9ZnVuY3Rpb24gS2oodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/cGoodCk6dHx8bnVsbH1mdW5jdGlvbiBKaih0KXtyZXR1cm4gbnVsbCE9dCYmIUFycmF5LmlzQXJyYXkodCkmJiJvYmplY3QiPT10eXBlb2YgdH1jbGFzcyBRantjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2U9KCk9Pnt9LHRoaXMuX3BhcmVudD1udWxsLHRoaXMucHJpc3RpbmU9ITAsdGhpcy50b3VjaGVkPSExLHRoaXMuX29uRGlzYWJsZWRDaGFuZ2U9W10sdGhpcy5fcmF3VmFsaWRhdG9ycz10LHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1lLHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49WmoodGhpcy5fcmF3VmFsaWRhdG9ycyksdGhpcy5fY29tcG9zZWRBc3luY1ZhbGlkYXRvckZuPUtqKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyl9Z2V0IHZhbGlkYXRvcigpe3JldHVybiB0aGlzLl9jb21wb3NlZFZhbGlkYXRvckZufXNldCB2YWxpZGF0b3IodCl7dGhpcy5fcmF3VmFsaWRhdG9ycz10aGlzLl9jb21wb3NlZFZhbGlkYXRvckZuPXR9Z2V0IGFzeW5jVmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbn1zZXQgYXN5bmNWYWxpZGF0b3IodCl7dGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPXRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj10fWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcGFyZW50fWdldCB2YWxpZCgpe3JldHVybiB0aGlzLnN0YXR1cz09PVVqfWdldCBpbnZhbGlkKCl7cmV0dXJuIHRoaXMuc3RhdHVzPT09R2p9Z2V0IHBlbmRpbmcoKXtyZXR1cm4gdGhpcy5zdGF0dXM9PVdqfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLnN0YXR1cz09PVlqfWdldCBlbmFibGVkKCl7cmV0dXJuIHRoaXMuc3RhdHVzIT09WWp9Z2V0IGRpcnR5KCl7cmV0dXJuIXRoaXMucHJpc3RpbmV9Z2V0IHVudG91Y2hlZCgpe3JldHVybiF0aGlzLnRvdWNoZWR9Z2V0IHVwZGF0ZU9uKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZU9uP3RoaXMuX3VwZGF0ZU9uOnRoaXMucGFyZW50P3RoaXMucGFyZW50LnVwZGF0ZU9uOiJjaGFuZ2UifXNldFZhbGlkYXRvcnModCl7dGhpcy5fcmF3VmFsaWRhdG9ycz10LHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49WmoodCl9c2V0QXN5bmNWYWxpZGF0b3JzKHQpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz10LHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1Laih0KX1hZGRWYWxpZGF0b3JzKHQpe3RoaXMuc2V0VmFsaWRhdG9ycyhiaih0LHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1hZGRBc3luY1ZhbGlkYXRvcnModCl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoYmoodCx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1yZW1vdmVWYWxpZGF0b3JzKHQpe3RoaXMuc2V0VmFsaWRhdG9ycyh5aih0LHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1yZW1vdmVBc3luY1ZhbGlkYXRvcnModCl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoeWoodCx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1oYXNWYWxpZGF0b3IodCl7cmV0dXJuIGhqKHRoaXMuX3Jhd1ZhbGlkYXRvcnMsdCl9aGFzQXN5bmNWYWxpZGF0b3IodCl7cmV0dXJuIGhqKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyx0KX1jbGVhclZhbGlkYXRvcnMoKXt0aGlzLnZhbGlkYXRvcj1udWxsfWNsZWFyQXN5bmNWYWxpZGF0b3JzKCl7dGhpcy5hc3luY1ZhbGlkYXRvcj1udWxsfW1hcmtBc1RvdWNoZWQodD17fSl7dGhpcy50b3VjaGVkPSEwLHRoaXMuX3BhcmVudCYmIXQub25seVNlbGYmJnRoaXMuX3BhcmVudC5tYXJrQXNUb3VjaGVkKHQpfW1hcmtBbGxBc1RvdWNoZWQoKXt0aGlzLm1hcmtBc1RvdWNoZWQoe29ubHlTZWxmOiEwfSksdGhpcy5fZm9yRWFjaENoaWxkKCh0PT50Lm1hcmtBbGxBc1RvdWNoZWQoKSkpfW1hcmtBc1VudG91Y2hlZCh0PXt9KXt0aGlzLnRvdWNoZWQ9ITEsdGhpcy5fcGVuZGluZ1RvdWNoZWQ9ITEsdGhpcy5fZm9yRWFjaENoaWxkKCh0PT57dC5tYXJrQXNVbnRvdWNoZWQoe29ubHlTZWxmOiEwfSl9KSksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVUb3VjaGVkKHQpfW1hcmtBc0RpcnR5KHQ9e30pe3RoaXMucHJpc3RpbmU9ITEsdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Lm1hcmtBc0RpcnR5KHQpfW1hcmtBc1ByaXN0aW5lKHQ9e30pe3RoaXMucHJpc3RpbmU9ITAsdGhpcy5fcGVuZGluZ0RpcnR5PSExLHRoaXMuX2ZvckVhY2hDaGlsZCgodD0+e3QubWFya0FzUHJpc3RpbmUoe29ubHlTZWxmOiEwfSl9KSksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVQcmlzdGluZSh0KX1tYXJrQXNQZW5kaW5nKHQ9e30pe3RoaXMuc3RhdHVzPVdqLCExIT09dC5lbWl0RXZlbnQmJnRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFya0FzUGVuZGluZyh0KX1kaXNhYmxlKHQ9e30pe2NvbnN0IGU9dGhpcy5fcGFyZW50TWFya2VkRGlydHkodC5vbmx5U2VsZik7dGhpcy5zdGF0dXM9WWosdGhpcy5lcnJvcnM9bnVsbCx0aGlzLl9mb3JFYWNoQ2hpbGQoKGU9PntlLmRpc2FibGUoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtvbmx5U2VsZjohMH0pKX0pKSx0aGlzLl91cGRhdGVWYWx1ZSgpLCExIT09dC5lbWl0RXZlbnQmJih0aGlzLnZhbHVlQ2hhbmdlcy5lbWl0KHRoaXMudmFsdWUpLHRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSksdGhpcy5fdXBkYXRlQW5jZXN0b3JzKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2tpcFByaXN0aW5lQ2hlY2s6ZX0pKSx0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLmZvckVhY2goKHQ9PnQoITApKSl9ZW5hYmxlKHQ9e30pe2NvbnN0IGU9dGhpcy5fcGFyZW50TWFya2VkRGlydHkodC5vbmx5U2VsZik7dGhpcy5zdGF0dXM9VWosdGhpcy5fZm9yRWFjaENoaWxkKChlPT57ZS5lbmFibGUoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtvbmx5U2VsZjohMH0pKX0pKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwLGVtaXRFdmVudDp0LmVtaXRFdmVudH0pLHRoaXMuX3VwZGF0ZUFuY2VzdG9ycyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NraXBQcmlzdGluZUNoZWNrOmV9KSksdGhpcy5fb25EaXNhYmxlZENoYW5nZS5mb3JFYWNoKCh0PT50KCExKSkpfV91cGRhdGVBbmNlc3RvcnModCl7dGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmKHRoaXMuX3BhcmVudC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHQpLHQuc2tpcFByaXN0aW5lQ2hlY2t8fHRoaXMuX3BhcmVudC5fdXBkYXRlUHJpc3RpbmUoKSx0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQoKSl9c2V0UGFyZW50KHQpe3RoaXMuX3BhcmVudD10fXVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkodD17fSl7dGhpcy5fc2V0SW5pdGlhbFN0YXR1cygpLHRoaXMuX3VwZGF0ZVZhbHVlKCksdGhpcy5lbmFibGVkJiYodGhpcy5fY2FuY2VsRXhpc3RpbmdTdWJzY3JpcHRpb24oKSx0aGlzLmVycm9ycz10aGlzLl9ydW5WYWxpZGF0b3IoKSx0aGlzLnN0YXR1cz10aGlzLl9jYWxjdWxhdGVTdGF0dXMoKSx0aGlzLnN0YXR1cyE9PVVqJiZ0aGlzLnN0YXR1cyE9PVdqfHx0aGlzLl9ydW5Bc3luY1ZhbGlkYXRvcih0LmVtaXRFdmVudCkpLCExIT09dC5lbWl0RXZlbnQmJih0aGlzLnZhbHVlQ2hhbmdlcy5lbWl0KHRoaXMudmFsdWUpLHRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkodCl9X3VwZGF0ZVRyZWVWYWxpZGl0eSh0PXtlbWl0RXZlbnQ6ITB9KXt0aGlzLl9mb3JFYWNoQ2hpbGQoKGU9PmUuX3VwZGF0ZVRyZWVWYWxpZGl0eSh0KSkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OnQuZW1pdEV2ZW50fSl9X3NldEluaXRpYWxTdGF0dXMoKXt0aGlzLnN0YXR1cz10aGlzLl9hbGxDb250cm9sc0Rpc2FibGVkKCk/WWo6VWp9X3J1blZhbGlkYXRvcigpe3JldHVybiB0aGlzLnZhbGlkYXRvcj90aGlzLnZhbGlkYXRvcih0aGlzKTpudWxsfV9ydW5Bc3luY1ZhbGlkYXRvcih0KXtpZih0aGlzLmFzeW5jVmFsaWRhdG9yKXt0aGlzLnN0YXR1cz1Xaix0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITA7Y29uc3QgZT1paih0aGlzLmFzeW5jVmFsaWRhdG9yKHRoaXMpKTt0aGlzLl9hc3luY1ZhbGlkYXRpb25TdWJzY3JpcHRpb249ZS5zdWJzY3JpYmUoKGU9Pnt0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITEsdGhpcy5zZXRFcnJvcnMoZSx7ZW1pdEV2ZW50OnR9KX0pKX19X2NhbmNlbEV4aXN0aW5nU3Vic2NyaXB0aW9uKCl7dGhpcy5fYXN5bmNWYWxpZGF0aW9uU3Vic2NyaXB0aW9uJiYodGhpcy5fYXN5bmNWYWxpZGF0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5faGFzT3duUGVuZGluZ0FzeW5jVmFsaWRhdG9yPSExKX1zZXRFcnJvcnModCxlPXt9KXt0aGlzLmVycm9ycz10LHRoaXMuX3VwZGF0ZUNvbnRyb2xzRXJyb3JzKCExIT09ZS5lbWl0RXZlbnQpfWdldCh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0LG4sbyl7aWYobnVsbD09bilyZXR1cm4gbnVsbDtpZihBcnJheS5pc0FycmF5KG4pfHwobj1uLnNwbGl0KG8pKSxBcnJheS5pc0FycmF5KG4pJiYwPT09bi5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IGk9dDtyZXR1cm4gbi5mb3JFYWNoKCh0PT57aT1pIGluc3RhbmNlb2YgdFU/aS5jb250cm9scy5oYXNPd25Qcm9wZXJ0eSh0KT9pLmNvbnRyb2xzW3RdOm51bGw6aSBpbnN0YW5jZW9mIGVVJiZpLmF0KHQpfHxudWxsfSkpLGl9KSh0aGlzLHQsIi4iKX1nZXRFcnJvcih0LGUpe2NvbnN0IG49ZT90aGlzLmdldChlKTp0aGlzO3JldHVybiBuJiZuLmVycm9ycz9uLmVycm9yc1t0XTpudWxsfWhhc0Vycm9yKHQsZSl7cmV0dXJuISF0aGlzLmdldEVycm9yKHQsZSl9Z2V0IHJvb3QoKXtsZXQgdD10aGlzO2Zvcig7dC5fcGFyZW50Oyl0PXQuX3BhcmVudDtyZXR1cm4gdH1fdXBkYXRlQ29udHJvbHNFcnJvcnModCl7dGhpcy5zdGF0dXM9dGhpcy5fY2FsY3VsYXRlU3RhdHVzKCksdCYmdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQodGhpcy5zdGF0dXMpLHRoaXMuX3BhcmVudCYmdGhpcy5fcGFyZW50Ll91cGRhdGVDb250cm9sc0Vycm9ycyh0KX1faW5pdE9ic2VydmFibGVzKCl7dGhpcy52YWx1ZUNoYW5nZXM9bmV3IExoLHRoaXMuc3RhdHVzQ2hhbmdlcz1uZXcgTGh9X2NhbGN1bGF0ZVN0YXR1cygpe3JldHVybiB0aGlzLl9hbGxDb250cm9sc0Rpc2FibGVkKCk/WWo6dGhpcy5lcnJvcnM/R2o6dGhpcy5faGFzT3duUGVuZGluZ0FzeW5jVmFsaWRhdG9yfHx0aGlzLl9hbnlDb250cm9sc0hhdmVTdGF0dXMoV2opP1dqOnRoaXMuX2FueUNvbnRyb2xzSGF2ZVN0YXR1cyhHaik/R2o6VWp9X2FueUNvbnRyb2xzSGF2ZVN0YXR1cyh0KXtyZXR1cm4gdGhpcy5fYW55Q29udHJvbHMoKGU9PmUuc3RhdHVzPT09dCkpfV9hbnlDb250cm9sc0RpcnR5KCl7cmV0dXJuIHRoaXMuX2FueUNvbnRyb2xzKCh0PT50LmRpcnR5KSl9X2FueUNvbnRyb2xzVG91Y2hlZCgpe3JldHVybiB0aGlzLl9hbnlDb250cm9scygodD0+dC50b3VjaGVkKSl9X3VwZGF0ZVByaXN0aW5lKHQ9e30pe3RoaXMucHJpc3RpbmU9IXRoaXMuX2FueUNvbnRyb2xzRGlydHkoKSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVByaXN0aW5lKHQpfV91cGRhdGVUb3VjaGVkKHQ9e30pe3RoaXMudG91Y2hlZD10aGlzLl9hbnlDb250cm9sc1RvdWNoZWQoKSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQodCl9X2lzQm94ZWRWYWx1ZSh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10JiYyPT09T2JqZWN0LmtleXModCkubGVuZ3RoJiYidmFsdWUiaW4gdCYmImRpc2FibGVkImluIHR9X3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKHQpe3RoaXMuX29uQ29sbGVjdGlvbkNoYW5nZT10fV9zZXRVcGRhdGVTdHJhdGVneSh0KXtKaih0KSYmbnVsbCE9dC51cGRhdGVPbiYmKHRoaXMuX3VwZGF0ZU9uPXQudXBkYXRlT24pfV9wYXJlbnRNYXJrZWREaXJ0eSh0KXtyZXR1cm4hdCYmISghdGhpcy5fcGFyZW50fHwhdGhpcy5fcGFyZW50LmRpcnR5KSYmIXRoaXMuX3BhcmVudC5fYW55Q29udHJvbHNEaXJ0eSgpfX1jbGFzcyAkaiBleHRlbmRzIFFqe2NvbnN0cnVjdG9yKHQ9bnVsbCxlLG4pe3N1cGVyKHFqKGUpLFhqKG4sZSkpLHRoaXMuX29uQ2hhbmdlPVtdLHRoaXMuX2FwcGx5Rm9ybVN0YXRlKHQpLHRoaXMuX3NldFVwZGF0ZVN0cmF0ZWd5KGUpLHRoaXMuX2luaXRPYnNlcnZhYmxlcygpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OiEhdGhpcy5hc3luY1ZhbGlkYXRvcn0pfXNldFZhbHVlKHQsZT17fSl7dGhpcy52YWx1ZT10aGlzLl9wZW5kaW5nVmFsdWU9dCx0aGlzLl9vbkNoYW5nZS5sZW5ndGgmJiExIT09ZS5lbWl0TW9kZWxUb1ZpZXdDaGFuZ2UmJnRoaXMuX29uQ2hhbmdlLmZvckVhY2goKHQ9PnQodGhpcy52YWx1ZSwhMSE9PWUuZW1pdFZpZXdUb01vZGVsQ2hhbmdlKSkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShlKX1wYXRjaFZhbHVlKHQsZT17fSl7dGhpcy5zZXRWYWx1ZSh0LGUpfXJlc2V0KHQ9bnVsbCxlPXt9KXt0aGlzLl9hcHBseUZvcm1TdGF0ZSh0KSx0aGlzLm1hcmtBc1ByaXN0aW5lKGUpLHRoaXMubWFya0FzVW50b3VjaGVkKGUpLHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSxlKSx0aGlzLl9wZW5kaW5nQ2hhbmdlPSExfV91cGRhdGVWYWx1ZSgpe31fYW55Q29udHJvbHModCl7cmV0dXJuITF9X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZH1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlLnB1c2godCl9X3VucmVnaXN0ZXJPbkNoYW5nZSh0KXtWaih0aGlzLl9vbkNoYW5nZSx0KX1yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UodCl7dGhpcy5fb25EaXNhYmxlZENoYW5nZS5wdXNoKHQpfV91bnJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZSh0KXtWaih0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLHQpfV9mb3JFYWNoQ2hpbGQodCl7fV9zeW5jUGVuZGluZ0NvbnRyb2xzKCl7cmV0dXJuISgic3VibWl0IiE9PXRoaXMudXBkYXRlT258fCh0aGlzLl9wZW5kaW5nRGlydHkmJnRoaXMubWFya0FzRGlydHkoKSx0aGlzLl9wZW5kaW5nVG91Y2hlZCYmdGhpcy5tYXJrQXNUb3VjaGVkKCksIXRoaXMuX3BlbmRpbmdDaGFuZ2UpfHwodGhpcy5zZXRWYWx1ZSh0aGlzLl9wZW5kaW5nVmFsdWUse29ubHlTZWxmOiEwLGVtaXRNb2RlbFRvVmlld0NoYW5nZTohMX0pLDApKX1fYXBwbHlGb3JtU3RhdGUodCl7dGhpcy5faXNCb3hlZFZhbHVlKHQpPyh0aGlzLnZhbHVlPXRoaXMuX3BlbmRpbmdWYWx1ZT10LnZhbHVlLHQuZGlzYWJsZWQ/dGhpcy5kaXNhYmxlKHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ITF9KTp0aGlzLmVuYWJsZSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OiExfSkpOnRoaXMudmFsdWU9dGhpcy5fcGVuZGluZ1ZhbHVlPXR9fWNsYXNzIHRVIGV4dGVuZHMgUWp7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHFqKGUpLFhqKG4sZSkpLHRoaXMuY29udHJvbHM9dCx0aGlzLl9pbml0T2JzZXJ2YWJsZXMoKSx0aGlzLl9zZXRVcGRhdGVTdHJhdGVneShlKSx0aGlzLl9zZXRVcENvbnRyb2xzKCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ISF0aGlzLmFzeW5jVmFsaWRhdG9yfSl9cmVnaXN0ZXJDb250cm9sKHQsZSl7cmV0dXJuIHRoaXMuY29udHJvbHNbdF0/dGhpcy5jb250cm9sc1t0XToodGhpcy5jb250cm9sc1t0XT1lLGUuc2V0UGFyZW50KHRoaXMpLGUuX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSksZSl9YWRkQ29udHJvbCh0LGUsbj17fSl7dGhpcy5yZWdpc3RlckNvbnRyb2wodCxlKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDpuLmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfXJlbW92ZUNvbnRyb2wodCxlPXt9KXt0aGlzLmNvbnRyb2xzW3RdJiZ0aGlzLmNvbnRyb2xzW3RdLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSgoKCk9Pnt9KSksZGVsZXRlIHRoaXMuY29udHJvbHNbdF0sdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ZS5lbWl0RXZlbnR9KSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UoKX1zZXRDb250cm9sKHQsZSxuPXt9KXt0aGlzLmNvbnRyb2xzW3RdJiZ0aGlzLmNvbnRyb2xzW3RdLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSgoKCk9Pnt9KSksZGVsZXRlIHRoaXMuY29udHJvbHNbdF0sZSYmdGhpcy5yZWdpc3RlckNvbnRyb2wodCxlKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDpuLmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfWNvbnRhaW5zKHQpe3JldHVybiB0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5KHQpJiZ0aGlzLmNvbnRyb2xzW3RdLmVuYWJsZWR9c2V0VmFsdWUodCxlPXt9KXt0aGlzLl9jaGVja0FsbFZhbHVlc1ByZXNlbnQodCksT2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+e3RoaXMuX3Rocm93SWZDb250cm9sTWlzc2luZyhuKSx0aGlzLmNvbnRyb2xzW25dLnNldFZhbHVlKHRbbl0se29ubHlTZWxmOiEwLGVtaXRFdmVudDplLmVtaXRFdmVudH0pfSkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShlKX1wYXRjaFZhbHVlKHQsZT17fSl7bnVsbCE9dCYmKE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49Pnt0aGlzLmNvbnRyb2xzW25dJiZ0aGlzLmNvbnRyb2xzW25dLnBhdGNoVmFsdWUodFtuXSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9KSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGUpKX1yZXNldCh0PXt9LGU9e30pe3RoaXMuX2ZvckVhY2hDaGlsZCgoKG4sbyk9PntuLnJlc2V0KHRbb10se29ubHlTZWxmOiEwLGVtaXRFdmVudDplLmVtaXRFdmVudH0pfSkpLHRoaXMuX3VwZGF0ZVByaXN0aW5lKGUpLHRoaXMuX3VwZGF0ZVRvdWNoZWQoZSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGUpfWdldFJhd1ZhbHVlKCl7cmV0dXJuIHRoaXMuX3JlZHVjZUNoaWxkcmVuKHt9LCgodCxlLG4pPT4odFtuXT1lIGluc3RhbmNlb2YgJGo/ZS52YWx1ZTplLmdldFJhd1ZhbHVlKCksdCkpKX1fc3luY1BlbmRpbmdDb250cm9scygpe2xldCB0PXRoaXMuX3JlZHVjZUNoaWxkcmVuKCExLCgodCxlKT0+ISFlLl9zeW5jUGVuZGluZ0NvbnRyb2xzKCl8fHQpKTtyZXR1cm4gdCYmdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMH0pLHR9X3Rocm93SWZDb250cm9sTWlzc2luZyh0KXtpZighT2JqZWN0LmtleXModGhpcy5jb250cm9scykubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiXG4gICAgICAgIFRoZXJlIGFyZSBubyBmb3JtIGNvbnRyb2xzIHJlZ2lzdGVyZWQgd2l0aCB0aGlzIGdyb3VwIHlldC4gSWYgeW91J3JlIHVzaW5nIG5nTW9kZWwsXG4gICAgICAgIHlvdSBtYXkgd2FudCB0byBjaGVjayBuZXh0IHRpY2sgKGUuZy4gdXNlIHNldFRpbWVvdXQpLlxuICAgICAgIik7aWYoIXRoaXMuY29udHJvbHNbdF0pdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBmb3JtIGNvbnRyb2wgd2l0aCBuYW1lOiAke3R9LmApfV9mb3JFYWNoQ2hpbGQodCl7T2JqZWN0LmtleXModGhpcy5jb250cm9scykuZm9yRWFjaCgoZT0+e2NvbnN0IG49dGhpcy5jb250cm9sc1tlXTtuJiZ0KG4sZSl9KSl9X3NldFVwQ29udHJvbHMoKXt0aGlzLl9mb3JFYWNoQ2hpbGQoKHQ9Pnt0LnNldFBhcmVudCh0aGlzKSx0Ll9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpfSkpfV91cGRhdGVWYWx1ZSgpe3RoaXMudmFsdWU9dGhpcy5fcmVkdWNlVmFsdWUoKX1fYW55Q29udHJvbHModCl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmtleXModGhpcy5jb250cm9scykpe2NvbnN0IG49dGhpcy5jb250cm9sc1tlXTtpZih0aGlzLmNvbnRhaW5zKGUpJiZ0KG4pKXJldHVybiEwfXJldHVybiExfV9yZWR1Y2VWYWx1ZSgpe3JldHVybiB0aGlzLl9yZWR1Y2VDaGlsZHJlbih7fSwoKHQsZSxuKT0+KChlLmVuYWJsZWR8fHRoaXMuZGlzYWJsZWQpJiYodFtuXT1lLnZhbHVlKSx0KSkpfV9yZWR1Y2VDaGlsZHJlbih0LGUpe2xldCBuPXQ7cmV0dXJuIHRoaXMuX2ZvckVhY2hDaGlsZCgoKHQsbyk9PntuPWUobix0LG8pfSkpLG59X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKSlpZih0aGlzLmNvbnRyb2xzW3RdLmVuYWJsZWQpcmV0dXJuITE7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLmxlbmd0aD4wfHx0aGlzLmRpc2FibGVkfV9jaGVja0FsbFZhbHVlc1ByZXNlbnQodCl7dGhpcy5fZm9yRWFjaENoaWxkKCgoZSxuKT0+e2lmKHZvaWQgMD09PXRbbl0pdGhyb3cgbmV3IEVycm9yKGBNdXN0IHN1cHBseSBhIHZhbHVlIGZvciBmb3JtIGNvbnRyb2wgd2l0aCBuYW1lOiAnJHtufScuYCl9KSl9fWNsYXNzIGVVIGV4dGVuZHMgUWp7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHFqKGUpLFhqKG4sZSkpLHRoaXMuY29udHJvbHM9dCx0aGlzLl9pbml0T2JzZXJ2YWJsZXMoKSx0aGlzLl9zZXRVcGRhdGVTdHJhdGVneShlKSx0aGlzLl9zZXRVcENvbnRyb2xzKCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ISF0aGlzLmFzeW5jVmFsaWRhdG9yfSl9YXQodCl7cmV0dXJuIHRoaXMuY29udHJvbHNbdF19cHVzaCh0LGU9e30pe3RoaXMuY29udHJvbHMucHVzaCh0KSx0aGlzLl9yZWdpc3RlckNvbnRyb2wodCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ZS5lbWl0RXZlbnR9KSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UoKX1pbnNlcnQodCxlLG49e30pe3RoaXMuY29udHJvbHMuc3BsaWNlKHQsMCxlKSx0aGlzLl9yZWdpc3RlckNvbnRyb2woZSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6bi5lbWl0RXZlbnR9KX1yZW1vdmVBdCh0LGU9e30pe3RoaXMuY29udHJvbHNbdF0mJnRoaXMuY29udHJvbHNbdF0uX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgoKT0+e30pKSx0aGlzLmNvbnRyb2xzLnNwbGljZSh0LDEpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9c2V0Q29udHJvbCh0LGUsbj17fSl7dGhpcy5jb250cm9sc1t0XSYmdGhpcy5jb250cm9sc1t0XS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UoKCgpPT57fSkpLHRoaXMuY29udHJvbHMuc3BsaWNlKHQsMSksZSYmKHRoaXMuY29udHJvbHMuc3BsaWNlKHQsMCxlKSx0aGlzLl9yZWdpc3RlckNvbnRyb2woZSkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50Om4uZW1pdEV2ZW50fSksdGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlKCl9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmNvbnRyb2xzLmxlbmd0aH1zZXRWYWx1ZSh0LGU9e30pe3RoaXMuX2NoZWNrQWxsVmFsdWVzUHJlc2VudCh0KSx0LmZvckVhY2goKCh0LG4pPT57dGhpcy5fdGhyb3dJZkNvbnRyb2xNaXNzaW5nKG4pLHRoaXMuYXQobikuc2V0VmFsdWUodCx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9KSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGUpfXBhdGNoVmFsdWUodCxlPXt9KXtudWxsIT10JiYodC5mb3JFYWNoKCgodCxuKT0+e3RoaXMuYXQobikmJnRoaXMuYXQobikucGF0Y2hWYWx1ZSh0LHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ZS5lbWl0RXZlbnR9KX0pKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZSkpfXJlc2V0KHQ9W10sZT17fSl7dGhpcy5fZm9yRWFjaENoaWxkKCgobixvKT0+e24ucmVzZXQodFtvXSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9KSksdGhpcy5fdXBkYXRlUHJpc3RpbmUoZSksdGhpcy5fdXBkYXRlVG91Y2hlZChlKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZSl9Z2V0UmF3VmFsdWUoKXtyZXR1cm4gdGhpcy5jb250cm9scy5tYXAoKHQ9PnQgaW5zdGFuY2VvZiAkaj90LnZhbHVlOnQuZ2V0UmF3VmFsdWUoKSkpfWNsZWFyKHQ9e30pe3RoaXMuY29udHJvbHMubGVuZ3RoPDF8fCh0aGlzLl9mb3JFYWNoQ2hpbGQoKHQ9PnQuX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgoKT0+e30pKSkpLHRoaXMuY29udHJvbHMuc3BsaWNlKDApLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OnQuZW1pdEV2ZW50fSkpfV9zeW5jUGVuZGluZ0NvbnRyb2xzKCl7bGV0IHQ9dGhpcy5jb250cm9scy5yZWR1Y2UoKCh0LGUpPT4hIWUuX3N5bmNQZW5kaW5nQ29udHJvbHMoKXx8dCksITEpO3JldHVybiB0JiZ0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwfSksdH1fdGhyb3dJZkNvbnRyb2xNaXNzaW5nKHQpe2lmKCF0aGlzLmNvbnRyb2xzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlxuICAgICAgICBUaGVyZSBhcmUgbm8gZm9ybSBjb250cm9scyByZWdpc3RlcmVkIHdpdGggdGhpcyBhcnJheSB5ZXQuIElmIHlvdSdyZSB1c2luZyBuZ01vZGVsLFxuICAgICAgICB5b3UgbWF5IHdhbnQgdG8gY2hlY2sgbmV4dCB0aWNrIChlLmcuIHVzZSBzZXRUaW1lb3V0KS5cbiAgICAgICIpO2lmKCF0aGlzLmF0KHQpKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgZm9ybSBjb250cm9sIGF0IGluZGV4ICR7dH1gKX1fZm9yRWFjaENoaWxkKHQpe3RoaXMuY29udHJvbHMuZm9yRWFjaCgoKGUsbik9Pnt0KGUsbil9KSl9X3VwZGF0ZVZhbHVlKCl7dGhpcy52YWx1ZT10aGlzLmNvbnRyb2xzLmZpbHRlcigodD0+dC5lbmFibGVkfHx0aGlzLmRpc2FibGVkKSkubWFwKCh0PT50LnZhbHVlKSl9X2FueUNvbnRyb2xzKHQpe3JldHVybiB0aGlzLmNvbnRyb2xzLnNvbWUoKGU9PmUuZW5hYmxlZCYmdChlKSkpfV9zZXRVcENvbnRyb2xzKCl7dGhpcy5fZm9yRWFjaENoaWxkKCh0PT50aGlzLl9yZWdpc3RlckNvbnRyb2wodCkpKX1fY2hlY2tBbGxWYWx1ZXNQcmVzZW50KHQpe3RoaXMuX2ZvckVhY2hDaGlsZCgoKGUsbik9PntpZih2b2lkIDA9PT10W25dKXRocm93IG5ldyBFcnJvcihgTXVzdCBzdXBwbHkgYSB2YWx1ZSBmb3IgZm9ybSBjb250cm9sIGF0IGluZGV4OiAke259LmApfSkpfV9hbGxDb250cm9sc0Rpc2FibGVkKCl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5jb250cm9scylpZih0LmVuYWJsZWQpcmV0dXJuITE7cmV0dXJuIHRoaXMuY29udHJvbHMubGVuZ3RoPjB8fHRoaXMuZGlzYWJsZWR9X3JlZ2lzdGVyQ29udHJvbCh0KXt0LnNldFBhcmVudCh0aGlzKSx0Ll9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgblU9e3Byb3ZpZGU6Q2osdXNlRXhpc3Rpbmc6cWUoKCgpPT5pVSkpfSxvVT1Qcm9taXNlLnJlc29sdmUobnVsbCk7Y2xhc3MgaVUgZXh0ZW5kcyBDantjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5zdWJtaXR0ZWQ9ITEsdGhpcy5fZGlyZWN0aXZlcz1bXSx0aGlzLm5nU3VibWl0PW5ldyBMaCx0aGlzLmZvcm09bmV3IHRVKHt9LGNqKHQpLHBqKGUpKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9zZXRVcGRhdGVTdHJhdGVneSgpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXN9Z2V0IGNvbnRyb2woKXtyZXR1cm4gdGhpcy5mb3JtfWdldCBwYXRoKCl7cmV0dXJuW119Z2V0IGNvbnRyb2xzKCl7cmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc31hZGRDb250cm9sKHQpe29VLnRoZW4oKCgpPT57Y29uc3QgZT10aGlzLl9maW5kQ29udGFpbmVyKHQucGF0aCk7dC5jb250cm9sPWUucmVnaXN0ZXJDb250cm9sKHQubmFtZSx0LmNvbnRyb2wpLEVqKHQuY29udHJvbCx0KSx0LmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSksdGhpcy5fZGlyZWN0aXZlcy5wdXNoKHQpfSkpfWdldENvbnRyb2wodCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQodC5wYXRoKX1yZW1vdmVDb250cm9sKHQpe29VLnRoZW4oKCgpPT57Y29uc3QgZT10aGlzLl9maW5kQ29udGFpbmVyKHQucGF0aCk7ZSYmZS5yZW1vdmVDb250cm9sKHQubmFtZSksVmoodGhpcy5fZGlyZWN0aXZlcyx0KX0pKX1hZGRGb3JtR3JvdXAodCl7b1UudGhlbigoKCk9Pntjb25zdCBlPXRoaXMuX2ZpbmRDb250YWluZXIodC5wYXRoKSxuPW5ldyB0VSh7fSk7SWoobix0KSxlLnJlZ2lzdGVyQ29udHJvbCh0Lm5hbWUsbiksbi51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KX0pKX1yZW1vdmVGb3JtR3JvdXAodCl7b1UudGhlbigoKCk9Pntjb25zdCBlPXRoaXMuX2ZpbmRDb250YWluZXIodC5wYXRoKTtlJiZlLnJlbW92ZUNvbnRyb2wodC5uYW1lKX0pKX1nZXRGb3JtR3JvdXAodCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQodC5wYXRoKX11cGRhdGVNb2RlbCh0LGUpe29VLnRoZW4oKCgpPT57dGhpcy5mb3JtLmdldCh0LnBhdGgpLnNldFZhbHVlKGUpfSkpfXNldFZhbHVlKHQpe3RoaXMuY29udHJvbC5zZXRWYWx1ZSh0KX1vblN1Ym1pdCh0KXtyZXR1cm4gdGhpcy5zdWJtaXR0ZWQ9ITAsTGoodGhpcy5mb3JtLHRoaXMuX2RpcmVjdGl2ZXMpLHRoaXMubmdTdWJtaXQuZW1pdCh0KSwhMX1vblJlc2V0KCl7dGhpcy5yZXNldEZvcm0oKX1yZXNldEZvcm0odCl7dGhpcy5mb3JtLnJlc2V0KHQpLHRoaXMuc3VibWl0dGVkPSExfV9zZXRVcGRhdGVTdHJhdGVneSgpe3RoaXMub3B0aW9ucyYmbnVsbCE9dGhpcy5vcHRpb25zLnVwZGF0ZU9uJiYodGhpcy5mb3JtLl91cGRhdGVPbj10aGlzLm9wdGlvbnMudXBkYXRlT24pfV9maW5kQ29udGFpbmVyKHQpe3JldHVybiB0LnBvcCgpLHQubGVuZ3RoP3RoaXMuZm9ybS5nZXQodCk6dGhpcy5mb3JtfX1pVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aVUpKFNtKEdWLDEwKSxTbShXViwxMCkpfSxpVS7JtWRpcj1sbyh7dHlwZTppVSxzZWxlY3RvcnM6W1siZm9ybSIsMywibmdOb0Zvcm0iLCIiLDMsImZvcm1Hcm91cCIsIiJdLFsibmctZm9ybSJdLFsiIiwibmdGb3JtIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgic3VibWl0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblN1Ym1pdChlKX0pKSgicmVzZXQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZXNldCgpfSkpfSxpbnB1dHM6e29wdGlvbnM6WyJuZ0Zvcm1PcHRpb25zIiwib3B0aW9ucyJdfSxvdXRwdXRzOntuZ1N1Ym1pdDoibmdTdWJtaXQifSxleHBvcnRBczpbIm5nRm9ybSJdLGZlYXR1cmVzOltwZyhbblVdKSx4cF19KSxpVS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbR1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbV1ZdfV19XSxpVS5wcm9wRGVjb3JhdG9ycz17b3B0aW9uczpbe3R5cGU6eHksYXJnczpbIm5nRm9ybU9wdGlvbnMiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGlVLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImZvcm06bm90KFtuZ05vRm9ybV0pOm5vdChbZm9ybUdyb3VwXSksbmctZm9ybSxbbmdGb3JtXSIscHJvdmlkZXJzOltuVV0saG9zdDp7IihzdWJtaXQpIjoib25TdWJtaXQoJGV2ZW50KSIsIihyZXNldCkiOiJvblJlc2V0KCkifSxvdXRwdXRzOlsibmdTdWJtaXQiXSxleHBvcnRBczoibmdGb3JtIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbR1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbV1ZdfV19XX0pLHtvcHRpb25zOlt7dHlwZTp4eSxhcmdzOlsibmdGb3JtT3B0aW9ucyJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGFVIGV4dGVuZHMgQ2p7bmdPbkluaXQoKXt0aGlzLl9jaGVja1BhcmVudFR5cGUoKSx0aGlzLmZvcm1EaXJlY3RpdmUuYWRkRm9ybUdyb3VwKHRoaXMpfW5nT25EZXN0cm95KCl7dGhpcy5mb3JtRGlyZWN0aXZlJiZ0aGlzLmZvcm1EaXJlY3RpdmUucmVtb3ZlRm9ybUdyb3VwKHRoaXMpfWdldCBjb250cm9sKCl7cmV0dXJuIHRoaXMuZm9ybURpcmVjdGl2ZS5nZXRGb3JtR3JvdXAodGhpcyl9Z2V0IHBhdGgoKXtyZXR1cm4gRGoobnVsbD09dGhpcy5uYW1lP3RoaXMubmFtZTp0aGlzLm5hbWUudG9TdHJpbmcoKSx0aGlzLl9wYXJlbnQpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXMuX3BhcmVudD90aGlzLl9wYXJlbnQuZm9ybURpcmVjdGl2ZTpudWxsfV9jaGVja1BhcmVudFR5cGUoKXt9fWFVLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShhVSkpKShufHxhVSl9fSkoKSxhVS7JtWRpcj1sbyh7dHlwZTphVSxmZWF0dXJlczpbeHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChhVSxbe3R5cGU6Q3l9XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgclV7c3RhdGljIG1vZGVsUGFyZW50RXhjZXB0aW9uKCl7dGhyb3cgbmV3IEVycm9yKGBcbiAgICAgIG5nTW9kZWwgY2Fubm90IGJlIHVzZWQgdG8gcmVnaXN0ZXIgZm9ybSBjb250cm9scyB3aXRoIGEgcGFyZW50IGZvcm1Hcm91cCBkaXJlY3RpdmUuICBUcnkgdXNpbmdcbiAgICAgIGZvcm1Hcm91cCdzIHBhcnRuZXIgZGlyZWN0aXZlICJmb3JtQ29udHJvbE5hbWUiIGluc3RlYWQuICBFeGFtcGxlOlxuXG4gICAgICAke1BqfVxuXG4gICAgICBPciwgaWYgeW91J2QgbGlrZSB0byBhdm9pZCByZWdpc3RlcmluZyB0aGlzIGZvcm0gY29udHJvbCwgaW5kaWNhdGUgdGhhdCBpdCdzIHN0YW5kYWxvbmUgaW4gbmdNb2RlbE9wdGlvbnM6XG5cbiAgICAgIEV4YW1wbGU6XG5cbiAgICAgIFxuICAgIDxkaXYgW2Zvcm1Hcm91cF09Im15R3JvdXAiPlxuICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9ImZpcnN0TmFtZSI+XG4gICAgICAgPGlucHV0IFsobmdNb2RlbCldPSJzaG93TW9yZUNvbnRyb2xzIiBbbmdNb2RlbE9wdGlvbnNdPSJ7c3RhbmRhbG9uZTogdHJ1ZX0iPlxuICAgIDwvZGl2PlxuICBgKX1zdGF0aWMgZm9ybUdyb3VwTmFtZUV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcihgXG4gICAgICBuZ01vZGVsIGNhbm5vdCBiZSB1c2VkIHRvIHJlZ2lzdGVyIGZvcm0gY29udHJvbHMgd2l0aCBhIHBhcmVudCBmb3JtR3JvdXBOYW1lIG9yIGZvcm1BcnJheU5hbWUgZGlyZWN0aXZlLlxuXG4gICAgICBPcHRpb24gMTogVXNlIGZvcm1Db250cm9sTmFtZSBpbnN0ZWFkIG9mIG5nTW9kZWwgKHJlYWN0aXZlIHN0cmF0ZWd5KTpcblxuICAgICAgJHt3an1cblxuICAgICAgT3B0aW9uIDI6ICBVcGRhdGUgbmdNb2RlbCdzIHBhcmVudCBiZSBuZ01vZGVsR3JvdXAgKHRlbXBsYXRlLWRyaXZlbiBzdHJhdGVneSk6XG5cbiAgICAgICR7a2p9YCl9c3RhdGljIG1pc3NpbmdOYW1lRXhjZXB0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdJZiBuZ01vZGVsIGlzIHVzZWQgd2l0aGluIGEgZm9ybSB0YWcsIGVpdGhlciB0aGUgbmFtZSBhdHRyaWJ1dGUgbXVzdCBiZSBzZXQgb3IgdGhlIGZvcm1cbiAgICAgIGNvbnRyb2wgbXVzdCBiZSBkZWZpbmVkIGFzIFwnc3RhbmRhbG9uZVwnIGluIG5nTW9kZWxPcHRpb25zLlxuXG4gICAgICBFeGFtcGxlIDE6IDxpbnB1dCBbKG5nTW9kZWwpXT0icGVyc29uLmZpcnN0TmFtZSIgbmFtZT0iZmlyc3QiPlxuICAgICAgRXhhbXBsZSAyOiA8aW5wdXQgWyhuZ01vZGVsKV09InBlcnNvbi5maXJzdE5hbWUiIFtuZ01vZGVsT3B0aW9uc109IntzdGFuZGFsb25lOiB0cnVlfSI+Jyl9c3RhdGljIG1vZGVsR3JvdXBQYXJlbnRFeGNlcHRpb24oKXt0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgbmdNb2RlbEdyb3VwIGNhbm5vdCBiZSB1c2VkIHdpdGggYSBwYXJlbnQgZm9ybUdyb3VwIGRpcmVjdGl2ZS5cblxuICAgICAgT3B0aW9uIDE6IFVzZSBmb3JtR3JvdXBOYW1lIGluc3RlYWQgb2YgbmdNb2RlbEdyb3VwIChyZWFjdGl2ZSBzdHJhdGVneSk6XG5cbiAgICAgICR7d2p9XG5cbiAgICAgIE9wdGlvbiAyOiAgVXNlIGEgcmVndWxhciBmb3JtIHRhZyBpbnN0ZWFkIG9mIHRoZSBmb3JtR3JvdXAgZGlyZWN0aXZlICh0ZW1wbGF0ZS1kcml2ZW4gc3RyYXRlZ3kpOlxuXG4gICAgICAke2tqfWApfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3Qgc1U9e3Byb3ZpZGU6Q2osdXNlRXhpc3Rpbmc6cWUoKCgpPT5sVSkpfTtjbGFzcyBsVSBleHRlbmRzIGFVe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcigpLHRoaXMuX3BhcmVudD10LHRoaXMuX3NldFZhbGlkYXRvcnMoZSksdGhpcy5fc2V0QXN5bmNWYWxpZGF0b3JzKG4pfV9jaGVja1BhcmVudFR5cGUoKXt0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBsVXx8dGhpcy5fcGFyZW50IGluc3RhbmNlb2YgaVV8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxyVS5tb2RlbEdyb3VwUGFyZW50RXhjZXB0aW9uKCl9fWxVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsVSkoU20oQ2osNSksU20oR1YsMTApLFNtKFdWLDEwKSl9LGxVLsm1ZGlyPWxvKHt0eXBlOmxVLHNlbGVjdG9yczpbWyIiLCJuZ01vZGVsR3JvdXAiLCIiXV0saW5wdXRzOntuYW1lOlsibmdNb2RlbEdyb3VwIiwibmFtZSJdfSxleHBvcnRBczpbIm5nTW9kZWxHcm91cCJdLGZlYXR1cmVzOltwZyhbc1VdKSx4cF19KSxsVS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkNqLGRlY29yYXRvcnM6W3t0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV0sbFUucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOnh5LGFyZ3M6WyJuZ01vZGVsR3JvdXAiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGxVLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltuZ01vZGVsR3JvdXBdIixwcm92aWRlcnM6W3NVXSxleHBvcnRBczoibmdNb2RlbEdyb3VwIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkNqLGRlY29yYXRvcnM6W3t0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV19KSx7bmFtZTpbe3R5cGU6eHksYXJnczpbIm5nTW9kZWxHcm91cCJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGNVPXtwcm92aWRlOk1qLHVzZUV4aXN0aW5nOnFlKCgoKT0+cFUpKX0sZFU9UHJvbWlzZS5yZXNvbHZlKG51bGwpO2NsYXNzIHBVIGV4dGVuZHMgTWp7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIoKSx0aGlzLmNvbnRyb2w9bmV3ICRqLHRoaXMuX3JlZ2lzdGVyZWQ9ITEsdGhpcy51cGRhdGU9bmV3IExoLHRoaXMuX3BhcmVudD10LHRoaXMuX3NldFZhbGlkYXRvcnMoZSksdGhpcy5fc2V0QXN5bmNWYWxpZGF0b3JzKG4pLHRoaXMudmFsdWVBY2Nlc3Nvcj1Caih0aGlzLG8pfW5nT25DaGFuZ2VzKHQpe3RoaXMuX2NoZWNrRm9yRXJyb3JzKCksdGhpcy5fcmVnaXN0ZXJlZHx8dGhpcy5fc2V0VXBDb250cm9sKCksImlzRGlzYWJsZWQiaW4gdCYmdGhpcy5fdXBkYXRlRGlzYWJsZWQodCksRmoodCx0aGlzLnZpZXdNb2RlbCkmJih0aGlzLl91cGRhdGVWYWx1ZSh0aGlzLm1vZGVsKSx0aGlzLnZpZXdNb2RlbD10aGlzLm1vZGVsKX1uZ09uRGVzdHJveSgpe3RoaXMuZm9ybURpcmVjdGl2ZSYmdGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUNvbnRyb2wodGhpcyl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5fcGFyZW50P0RqKHRoaXMubmFtZSx0aGlzLl9wYXJlbnQpOlt0aGlzLm5hbWVdfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXMuX3BhcmVudD90aGlzLl9wYXJlbnQuZm9ybURpcmVjdGl2ZTpudWxsfXZpZXdUb01vZGVsVXBkYXRlKHQpe3RoaXMudmlld01vZGVsPXQsdGhpcy51cGRhdGUuZW1pdCh0KX1fc2V0VXBDb250cm9sKCl7dGhpcy5fc2V0VXBkYXRlU3RyYXRlZ3koKSx0aGlzLl9pc1N0YW5kYWxvbmUoKT90aGlzLl9zZXRVcFN0YW5kYWxvbmUoKTp0aGlzLmZvcm1EaXJlY3RpdmUuYWRkQ29udHJvbCh0aGlzKSx0aGlzLl9yZWdpc3RlcmVkPSEwfV9zZXRVcGRhdGVTdHJhdGVneSgpe3RoaXMub3B0aW9ucyYmbnVsbCE9dGhpcy5vcHRpb25zLnVwZGF0ZU9uJiYodGhpcy5jb250cm9sLl91cGRhdGVPbj10aGlzLm9wdGlvbnMudXBkYXRlT24pfV9pc1N0YW5kYWxvbmUoKXtyZXR1cm4hdGhpcy5fcGFyZW50fHwhKCF0aGlzLm9wdGlvbnN8fCF0aGlzLm9wdGlvbnMuc3RhbmRhbG9uZSl9X3NldFVwU3RhbmRhbG9uZSgpe0VqKHRoaXMuY29udHJvbCx0aGlzKSx0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9X2NoZWNrRm9yRXJyb3JzKCl7dGhpcy5faXNTdGFuZGFsb25lKCl8fHRoaXMuX2NoZWNrUGFyZW50VHlwZSgpLHRoaXMuX2NoZWNrTmFtZSgpfV9jaGVja1BhcmVudFR5cGUoKXsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJighKHRoaXMuX3BhcmVudCBpbnN0YW5jZW9mIGxVKSYmdGhpcy5fcGFyZW50IGluc3RhbmNlb2YgYVU/clUuZm9ybUdyb3VwTmFtZUV4Y2VwdGlvbigpOnRoaXMuX3BhcmVudCBpbnN0YW5jZW9mIGxVfHx0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBpVXx8clUubW9kZWxQYXJlbnRFeGNlcHRpb24oKSl9X2NoZWNrTmFtZSgpe3RoaXMub3B0aW9ucyYmdGhpcy5vcHRpb25zLm5hbWUmJih0aGlzLm5hbWU9dGhpcy5vcHRpb25zLm5hbWUpLHRoaXMuX2lzU3RhbmRhbG9uZSgpfHx0aGlzLm5hbWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxyVS5taXNzaW5nTmFtZUV4Y2VwdGlvbigpfV91cGRhdGVWYWx1ZSh0KXtkVS50aGVuKCgoKT0+e3RoaXMuY29udHJvbC5zZXRWYWx1ZSh0LHtlbWl0Vmlld1RvTW9kZWxDaGFuZ2U6ITF9KX0pKX1fdXBkYXRlRGlzYWJsZWQodCl7Y29uc3QgZT10LmlzRGlzYWJsZWQuY3VycmVudFZhbHVlLG49IiI9PT1lfHxlJiYiZmFsc2UiIT09ZTtkVS50aGVuKCgoKT0+e24mJiF0aGlzLmNvbnRyb2wuZGlzYWJsZWQ/dGhpcy5jb250cm9sLmRpc2FibGUoKTohbiYmdGhpcy5jb250cm9sLmRpc2FibGVkJiZ0aGlzLmNvbnRyb2wuZW5hYmxlKCl9KSl9fXBVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxwVSkoU20oQ2osOSksU20oR1YsMTApLFNtKFdWLDEwKSxTbShJViwxMCkpfSxwVS7JtWRpcj1sbyh7dHlwZTpwVSxzZWxlY3RvcnM6W1siIiwibmdNb2RlbCIsIiIsMywiZm9ybUNvbnRyb2xOYW1lIiwiIiwzLCJmb3JtQ29udHJvbCIsIiJdXSxpbnB1dHM6e25hbWU6Im5hbWUiLGlzRGlzYWJsZWQ6WyJkaXNhYmxlZCIsImlzRGlzYWJsZWQiXSxtb2RlbDpbIm5nTW9kZWwiLCJtb2RlbCJdLG9wdGlvbnM6WyJuZ01vZGVsT3B0aW9ucyIsIm9wdGlvbnMiXX0sb3V0cHV0czp7dXBkYXRlOiJuZ01vZGVsQ2hhbmdlIn0sZXhwb3J0QXM6WyJuZ01vZGVsIl0sZmVhdHVyZXM6W3BnKFtjVV0pLHhwLEJvXX0pLHBVLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbR1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbV1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbSVZdfV19XSxwVS5wcm9wRGVjb3JhdG9ycz17bmFtZTpbe3R5cGU6eHl9XSxpc0Rpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsiZGlzYWJsZWQiXX1dLG1vZGVsOlt7dHlwZTp4eSxhcmdzOlsibmdNb2RlbCJdfV0sb3B0aW9uczpbe3R5cGU6eHksYXJnczpbIm5nTW9kZWxPcHRpb25zIl19XSx1cGRhdGU6W3t0eXBlOk95LGFyZ3M6WyJuZ01vZGVsQ2hhbmdlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbmdNb2RlbF06bm90KFtmb3JtQ29udHJvbE5hbWVdKTpub3QoW2Zvcm1Db250cm9sXSkiLHByb3ZpZGVyczpbY1VdLGV4cG9ydEFzOiJuZ01vZGVsIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkNqLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0lWXX1dfV19KSx7dXBkYXRlOlt7dHlwZTpPeSxhcmdzOlsibmdNb2RlbENoYW5nZSJdfV0sbmFtZTpbe3R5cGU6eHl9XSxpc0Rpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsiZGlzYWJsZWQiXX1dLG1vZGVsOlt7dHlwZTp4eSxhcmdzOlsibmdNb2RlbCJdfV0sb3B0aW9uczpbe3R5cGU6eHksYXJnczpbIm5nTW9kZWxPcHRpb25zIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgbVV7fW1VLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxtVSl9LG1VLsm1ZGlyPWxvKHt0eXBlOm1VLHNlbGVjdG9yczpbWyJmb3JtIiwzLCJuZ05vRm9ybSIsIiIsMywibmdOYXRpdmVWYWxpZGF0ZSIsIiJdXSxob3N0QXR0cnM6WyJub3ZhbGlkYXRlIiwiIl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG1VLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImZvcm06bm90KFtuZ05vRm9ybV0pOm5vdChbbmdOYXRpdmVWYWxpZGF0ZV0pIixob3N0Ontub3ZhbGlkYXRlOiIifX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHVVPXtwcm92aWRlOklWLHVzZUV4aXN0aW5nOnFlKCgoKT0+ZlUpKSxtdWx0aTohMH07Y2xhc3MgZlUgZXh0ZW5kcyB6Vnt3cml0ZVZhbHVlKHQpe3RoaXMuc2V0UHJvcGVydHkoInZhbHVlIixudWxsPT10PyIiOnQpfXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5vbkNoYW5nZT1lPT57dCgiIj09ZT9udWxsOnBhcnNlRmxvYXQoZSkpfX19ZlUuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKGZVKSkpKG58fGZVKX19KSgpLGZVLsm1ZGlyPWxvKHt0eXBlOmZVLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiaW5wdXQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvdWNoZWQoKX0pKX0sZmVhdHVyZXM6W3BnKFt1VV0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZlUsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiaW5wdXRbdHlwZT1udW1iZXJdW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1udW1iZXJdW2Zvcm1Db250cm9sXSxpbnB1dFt0eXBlPW51bWJlcl1bbmdNb2RlbF0iLGhvc3Q6eyIoaW5wdXQpIjoib25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSkiLCIoYmx1cikiOiJvblRvdWNoZWQoKSJ9LHByb3ZpZGVyczpbdVVdfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgZ1U9e3Byb3ZpZGU6SVYsdXNlRXhpc3Rpbmc6cWUoKCgpPT55VSkpLG11bHRpOiEwfTtjbGFzcyBoVXt9aFUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGhVKX0saFUuybVtb2Q9YW8oe3R5cGU6aFV9KSxoVS7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChoVSxbe3R5cGU6QXl9XSxudWxsLG51bGwpO2NsYXNzIGJVe2NvbnN0cnVjdG9yKCl7dGhpcy5fYWNjZXNzb3JzPVtdfWFkZCh0LGUpe3RoaXMuX2FjY2Vzc29ycy5wdXNoKFt0LGVdKX1yZW1vdmUodCl7Zm9yKGxldCBlPXRoaXMuX2FjY2Vzc29ycy5sZW5ndGgtMTtlPj0wOy0tZSlpZih0aGlzLl9hY2Nlc3NvcnNbZV1bMV09PT10KXJldHVybiB2b2lkIHRoaXMuX2FjY2Vzc29ycy5zcGxpY2UoZSwxKX1zZWxlY3QodCl7dGhpcy5fYWNjZXNzb3JzLmZvckVhY2goKGU9Pnt0aGlzLl9pc1NhbWVHcm91cChlLHQpJiZlWzFdIT09dCYmZVsxXS5maXJlVW5jaGVjayh0LnZhbHVlKX0pKX1faXNTYW1lR3JvdXAodCxlKXtyZXR1cm4hIXRbMF0uY29udHJvbCYmdFswXS5fcGFyZW50PT09ZS5fY29udHJvbC5fcGFyZW50JiZ0WzFdLm5hbWU9PT1lLm5hbWV9fWJVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxiVSl9LGJVLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBiVX0sdG9rZW46YlUscHJvdmlkZWRJbjpoVX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYlUsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOmhVfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NsYXNzIHlVIGV4dGVuZHMgelZ7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCxlKSx0aGlzLl9yZWdpc3RyeT1uLHRoaXMuX2luamVjdG9yPW8sdGhpcy5vbkNoYW5nZT0oKT0+e319bmdPbkluaXQoKXt0aGlzLl9jb250cm9sPXRoaXMuX2luamVjdG9yLmdldChNaiksdGhpcy5fY2hlY2tOYW1lKCksdGhpcy5fcmVnaXN0cnkuYWRkKHRoaXMuX2NvbnRyb2wsdGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLl9yZWdpc3RyeS5yZW1vdmUodGhpcyl9d3JpdGVWYWx1ZSh0KXt0aGlzLl9zdGF0ZT10PT09dGhpcy52YWx1ZSx0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIix0aGlzLl9zdGF0ZSl9cmVnaXN0ZXJPbkNoYW5nZSh0KXt0aGlzLl9mbj10LHRoaXMub25DaGFuZ2U9KCk9Pnt0KHRoaXMudmFsdWUpLHRoaXMuX3JlZ2lzdHJ5LnNlbGVjdCh0aGlzKX19ZmlyZVVuY2hlY2sodCl7dGhpcy53cml0ZVZhbHVlKHQpfV9jaGVja05hbWUoKXt0aGlzLm5hbWUmJnRoaXMuZm9ybUNvbnRyb2xOYW1lJiZ0aGlzLm5hbWUhPT10aGlzLmZvcm1Db250cm9sTmFtZSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiYoZnVuY3Rpb24gdCgpe3Rocm93IG5ldyBFcnJvcignXG4gICAgICBJZiB5b3UgZGVmaW5lIGJvdGggYSBuYW1lIGFuZCBhIGZvcm1Db250cm9sTmFtZSBhdHRyaWJ1dGUgb24geW91ciByYWRpbyBidXR0b24sIHRoZWlyIHZhbHVlc1xuICAgICAgbXVzdCBtYXRjaC4gRXg6IDxpbnB1dCB0eXBlPSJyYWRpbyIgZm9ybUNvbnRyb2xOYW1lPSJmb29kIiBuYW1lPSJmb29kIj5cbiAgICAnKX0pKCksIXRoaXMubmFtZSYmdGhpcy5mb3JtQ29udHJvbE5hbWUmJih0aGlzLm5hbWU9dGhpcy5mb3JtQ29udHJvbE5hbWUpfX15VS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eVUpKFNtKENnKSxTbShoZyksU20oYlUpLFNtKHJwKSl9LHlVLsm1ZGlyPWxvKHt0eXBlOnlVLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJyYWRpbyIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFkaW8iLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFkaW8iLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiY2hhbmdlIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uQ2hhbmdlKCl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub3VjaGVkKCl9KSl9LGlucHV0czp7bmFtZToibmFtZSIsZm9ybUNvbnRyb2xOYW1lOiJmb3JtQ29udHJvbE5hbWUiLHZhbHVlOiJ2YWx1ZSJ9LGZlYXR1cmVzOltwZyhbZ1VdKSx4cF19KSx5VS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkNnfSx7dHlwZTpoZ30se3R5cGU6YlV9LHt0eXBlOnJwfV0seVUucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOnh5fV0sZm9ybUNvbnRyb2xOYW1lOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHlVLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImlucHV0W3R5cGU9cmFkaW9dW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1yYWRpb11bZm9ybUNvbnRyb2xdLGlucHV0W3R5cGU9cmFkaW9dW25nTW9kZWxdIixob3N0OnsiKGNoYW5nZSkiOiJvbkNoYW5nZSgpIiwiKGJsdXIpIjoib25Ub3VjaGVkKCkifSxwcm92aWRlcnM6W2dVXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkNnfSx7dHlwZTpoZ30se3R5cGU6YlV9LHt0eXBlOnJwfV19KSx7bmFtZTpbe3R5cGU6eHl9XSxmb3JtQ29udHJvbE5hbWU6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IF9VPXtwcm92aWRlOklWLHVzZUV4aXN0aW5nOnFlKCgoKT0+Q1UpKSxtdWx0aTohMH07Y2xhc3MgQ1UgZXh0ZW5kcyB6Vnt3cml0ZVZhbHVlKHQpe3RoaXMuc2V0UHJvcGVydHkoInZhbHVlIixwYXJzZUZsb2F0KHQpKX1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMub25DaGFuZ2U9ZT0+e3QoIiI9PWU/bnVsbDpwYXJzZUZsb2F0KGUpKX19fUNVLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShDVSkpKShufHxDVSl9fSkoKSxDVS7JtWRpcj1sbyh7dHlwZTpDVSxzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwicmFuZ2UiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsInJhbmdlIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsInJhbmdlIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25DaGFuZ2UoZS50YXJnZXQudmFsdWUpfSkpKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25DaGFuZ2UoZS50YXJnZXQudmFsdWUpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVG91Y2hlZCgpfSkpfSxmZWF0dXJlczpbcGcoW19VXSkseHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChDVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJpbnB1dFt0eXBlPXJhbmdlXVtmb3JtQ29udHJvbE5hbWVdLGlucHV0W3R5cGU9cmFuZ2VdW2Zvcm1Db250cm9sXSxpbnB1dFt0eXBlPXJhbmdlXVtuZ01vZGVsXSIsaG9zdDp7IihjaGFuZ2UpIjoib25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSkiLCIoaW5wdXQpIjoib25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSkiLCIoYmx1cikiOiJvblRvdWNoZWQoKSJ9LHByb3ZpZGVyczpbX1VdfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgTVU9bmV3IEdhKCJOZ01vZGVsV2l0aEZvcm1Db250cm9sV2FybmluZyIpLHZVPXtwcm92aWRlOk1qLHVzZUV4aXN0aW5nOnFlKCgoKT0+eFUpKX07Y2xhc3MgeFUgZXh0ZW5kcyBNantjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcigpLHRoaXMuX25nTW9kZWxXYXJuaW5nQ29uZmlnPW8sdGhpcy51cGRhdGU9bmV3IExoLHRoaXMuX25nTW9kZWxXYXJuaW5nU2VudD0hMSx0aGlzLl9zZXRWYWxpZGF0b3JzKHQpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyhlKSx0aGlzLnZhbHVlQWNjZXNzb3I9QmoodGhpcyxuKX1zZXQgaXNEaXNhYmxlZCh0KXsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlNqLmRpc2FibGVkQXR0cldhcm5pbmcoKX1uZ09uQ2hhbmdlcyh0KXtpZih0aGlzLl9pc0NvbnRyb2xDaGFuZ2VkKHQpKXtjb25zdCBlPXQuZm9ybS5wcmV2aW91c1ZhbHVlO2UmJlJqKGUsdGhpcywhMSksRWoodGhpcy5mb3JtLHRoaXMpLHRoaXMuY29udHJvbC5kaXNhYmxlZCYmdGhpcy52YWx1ZUFjY2Vzc29yLnNldERpc2FibGVkU3RhdGUmJnRoaXMudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlKCEwKSx0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9RmoodCx0aGlzLnZpZXdNb2RlbCkmJigoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmpqKCJmb3JtQ29udHJvbCIseFUsdGhpcyx0aGlzLl9uZ01vZGVsV2FybmluZ0NvbmZpZyksdGhpcy5mb3JtLnNldFZhbHVlKHRoaXMubW9kZWwpLHRoaXMudmlld01vZGVsPXRoaXMubW9kZWwpfW5nT25EZXN0cm95KCl7dGhpcy5mb3JtJiZSaih0aGlzLmZvcm0sdGhpcywhMSl9Z2V0IHBhdGgoKXtyZXR1cm5bXX1nZXQgY29udHJvbCgpe3JldHVybiB0aGlzLmZvcm19dmlld1RvTW9kZWxVcGRhdGUodCl7dGhpcy52aWV3TW9kZWw9dCx0aGlzLnVwZGF0ZS5lbWl0KHQpfV9pc0NvbnRyb2xDaGFuZ2VkKHQpe3JldHVybiB0Lmhhc093blByb3BlcnR5KCJmb3JtIil9fXhVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4VSkoU20oR1YsMTApLFNtKFdWLDEwKSxTbShJViwxMCksU20oTVUsOCkpfSx4VS7JtWRpcj1sbyh7dHlwZTp4VSxzZWxlY3RvcnM6W1siIiwiZm9ybUNvbnRyb2wiLCIiXV0saW5wdXRzOntpc0Rpc2FibGVkOlsiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIl0sZm9ybTpbImZvcm1Db250cm9sIiwiZm9ybSJdLG1vZGVsOlsibmdNb2RlbCIsIm1vZGVsIl19LG91dHB1dHM6e3VwZGF0ZToibmdNb2RlbENoYW5nZSJ9LGV4cG9ydEFzOlsibmdGb3JtIl0sZmVhdHVyZXM6W3BnKFt2VV0pLHhwLEJvXX0pLHhVLl9uZ01vZGVsV2FybmluZ1NlbnRPbmNlPSExLHhVLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltHVl19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltXVl19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltJVl19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltNVV19XX1dLHhVLnByb3BEZWNvcmF0b3JzPXtmb3JtOlt7dHlwZTp4eSxhcmdzOlsiZm9ybUNvbnRyb2wiXX1dLGlzRGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJkaXNhYmxlZCJdfV0sbW9kZWw6W3t0eXBlOnh5LGFyZ3M6WyJuZ01vZGVsIl19XSx1cGRhdGU6W3t0eXBlOk95LGFyZ3M6WyJuZ01vZGVsQ2hhbmdlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh4VSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbZm9ybUNvbnRyb2xdIixwcm92aWRlcnM6W3ZVXSxleHBvcnRBczoibmdGb3JtIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbR1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbV1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbSVZdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbTVVdfV19XX0pLHt1cGRhdGU6W3t0eXBlOk95LGFyZ3M6WyJuZ01vZGVsQ2hhbmdlIl19XSxpc0Rpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsiZGlzYWJsZWQiXX1dLGZvcm06W3t0eXBlOnh5LGFyZ3M6WyJmb3JtQ29udHJvbCJdfV0sbW9kZWw6W3t0eXBlOnh5LGFyZ3M6WyJuZ01vZGVsIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgT1U9e3Byb3ZpZGU6Q2osdXNlRXhpc3Rpbmc6cWUoKCgpPT5QVSkpfTtjbGFzcyBQVSBleHRlbmRzIENqe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLnZhbGlkYXRvcnM9dCx0aGlzLmFzeW5jVmFsaWRhdG9ycz1lLHRoaXMuc3VibWl0dGVkPSExLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZT0oKT0+dGhpcy5fdXBkYXRlRG9tVmFsdWUoKSx0aGlzLmRpcmVjdGl2ZXM9W10sdGhpcy5mb3JtPW51bGwsdGhpcy5uZ1N1Ym1pdD1uZXcgTGgsdGhpcy5fc2V0VmFsaWRhdG9ycyh0KSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMoZSl9bmdPbkNoYW5nZXModCl7dGhpcy5fY2hlY2tGb3JtUHJlc2VudCgpLHQuaGFzT3duUHJvcGVydHkoImZvcm0iKSYmKHRoaXMuX3VwZGF0ZVZhbGlkYXRvcnMoKSx0aGlzLl91cGRhdGVEb21WYWx1ZSgpLHRoaXMuX3VwZGF0ZVJlZ2lzdHJhdGlvbnMoKSx0aGlzLl9vbGRGb3JtPXRoaXMuZm9ybSl9bmdPbkRlc3Ryb3koKXt0aGlzLmZvcm0mJihOaih0aGlzLmZvcm0sdGhpcyksdGhpcy5mb3JtLl9vbkNvbGxlY3Rpb25DaGFuZ2U9PT10aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UmJnRoaXMuZm9ybS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UoKCgpPT57fSkpKX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzfWdldCBjb250cm9sKCl7cmV0dXJuIHRoaXMuZm9ybX1nZXQgcGF0aCgpe3JldHVybltdfWFkZENvbnRyb2wodCl7Y29uc3QgZT10aGlzLmZvcm0uZ2V0KHQucGF0aCk7cmV0dXJuIEVqKGUsdCksZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KSx0aGlzLmRpcmVjdGl2ZXMucHVzaCh0KSxlfWdldENvbnRyb2wodCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQodC5wYXRoKX1yZW1vdmVDb250cm9sKHQpe1JqKHQuY29udHJvbHx8bnVsbCx0LCExKSxWaih0aGlzLmRpcmVjdGl2ZXMsdCl9YWRkRm9ybUdyb3VwKHQpe3RoaXMuX3NldFVwRm9ybUNvbnRhaW5lcih0KX1yZW1vdmVGb3JtR3JvdXAodCl7dGhpcy5fY2xlYW5VcEZvcm1Db250YWluZXIodCl9Z2V0Rm9ybUdyb3VwKHQpe3JldHVybiB0aGlzLmZvcm0uZ2V0KHQucGF0aCl9YWRkRm9ybUFycmF5KHQpe3RoaXMuX3NldFVwRm9ybUNvbnRhaW5lcih0KX1yZW1vdmVGb3JtQXJyYXkodCl7dGhpcy5fY2xlYW5VcEZvcm1Db250YWluZXIodCl9Z2V0Rm9ybUFycmF5KHQpe3JldHVybiB0aGlzLmZvcm0uZ2V0KHQucGF0aCl9dXBkYXRlTW9kZWwodCxlKXt0aGlzLmZvcm0uZ2V0KHQucGF0aCkuc2V0VmFsdWUoZSl9b25TdWJtaXQodCl7cmV0dXJuIHRoaXMuc3VibWl0dGVkPSEwLExqKHRoaXMuZm9ybSx0aGlzLmRpcmVjdGl2ZXMpLHRoaXMubmdTdWJtaXQuZW1pdCh0KSwhMX1vblJlc2V0KCl7dGhpcy5yZXNldEZvcm0oKX1yZXNldEZvcm0odCl7dGhpcy5mb3JtLnJlc2V0KHQpLHRoaXMuc3VibWl0dGVkPSExfV91cGRhdGVEb21WYWx1ZSgpe3RoaXMuZGlyZWN0aXZlcy5mb3JFYWNoKCh0PT57Y29uc3QgZT10LmNvbnRyb2wsbj10aGlzLmZvcm0uZ2V0KHQucGF0aCk7ZSE9PW4mJihSaihlfHxudWxsLHQpLG4gaW5zdGFuY2VvZiAkaiYmKEVqKG4sdCksdC5jb250cm9sPW4pKX0pKSx0aGlzLmZvcm0uX3VwZGF0ZVRyZWVWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9X3NldFVwRm9ybUNvbnRhaW5lcih0KXtjb25zdCBlPXRoaXMuZm9ybS5nZXQodC5wYXRoKTtJaihlLHQpLGUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9X2NsZWFuVXBGb3JtQ29udGFpbmVyKHQpe2lmKHRoaXMuZm9ybSl7Y29uc3QgZT10aGlzLmZvcm0uZ2V0KHQucGF0aCk7ZSYmKGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gTmoodCxlKX0pKGUsdCkmJmUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9fV91cGRhdGVSZWdpc3RyYXRpb25zKCl7dGhpcy5mb3JtLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpLHRoaXMuX29sZEZvcm0mJnRoaXMuX29sZEZvcm0uX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgoKT0+e30pKX1fdXBkYXRlVmFsaWRhdG9ycygpe1RqKHRoaXMuZm9ybSx0aGlzKSx0aGlzLl9vbGRGb3JtJiZOaih0aGlzLl9vbGRGb3JtLHRoaXMpfV9jaGVja0Zvcm1QcmVzZW50KCl7dGhpcy5mb3JtfHwidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8U2oubWlzc2luZ0Zvcm1FeGNlcHRpb24oKX19UFUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFBVKShTbShHViwxMCksU20oV1YsMTApKX0sUFUuybVkaXI9bG8oe3R5cGU6UFUsc2VsZWN0b3JzOltbIiIsImZvcm1Hcm91cCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oInN1Ym1pdCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TdWJtaXQoZSl9KSkoInJlc2V0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVzZXQoKX0pKX0saW5wdXRzOntmb3JtOlsiZm9ybUdyb3VwIiwiZm9ybSJdfSxvdXRwdXRzOntuZ1N1Ym1pdDoibmdTdWJtaXQifSxleHBvcnRBczpbIm5nRm9ybSJdLGZlYXR1cmVzOltwZyhbT1VdKSx4cCxCb119KSxQVS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbR1ZdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbV1ZdfV19XSxQVS5wcm9wRGVjb3JhdG9ycz17Zm9ybTpbe3R5cGU6eHksYXJnczpbImZvcm1Hcm91cCJdfV0sbmdTdWJtaXQ6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUFUsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Zvcm1Hcm91cF0iLHByb3ZpZGVyczpbT1VdLGhvc3Q6eyIoc3VibWl0KSI6Im9uU3VibWl0KCRldmVudCkiLCIocmVzZXQpIjoib25SZXNldCgpIn0sZXhwb3J0QXM6Im5nRm9ybSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV19KSx7Zm9ybTpbe3R5cGU6eHksYXJnczpbImZvcm1Hcm91cCJdfV0sbmdTdWJtaXQ6W3t0eXBlOk95fV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHdVPXtwcm92aWRlOkNqLHVzZUV4aXN0aW5nOnFlKCgoKT0+a1UpKX07Y2xhc3Mga1UgZXh0ZW5kcyBhVXtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9zZXRWYWxpZGF0b3JzKGUpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyhuKX1fY2hlY2tQYXJlbnRUeXBlKCl7RVUodGhpcy5fcGFyZW50KSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZTai5ncm91cFBhcmVudEV4Y2VwdGlvbigpfX1rVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8a1UpKFNtKENqLDEzKSxTbShHViwxMCksU20oV1YsMTApKX0sa1UuybVkaXI9bG8oe3R5cGU6a1Usc2VsZWN0b3JzOltbIiIsImZvcm1Hcm91cE5hbWUiLCIiXV0saW5wdXRzOntuYW1lOlsiZm9ybUdyb3VwTmFtZSIsIm5hbWUiXX0sZmVhdHVyZXM6W3BnKFt3VV0pLHhwXX0pLGtVLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV0sa1UucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOnh5LGFyZ3M6WyJmb3JtR3JvdXBOYW1lIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbZm9ybUdyb3VwTmFtZV0iLHByb3ZpZGVyczpbd1VdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV19KSx7bmFtZTpbe3R5cGU6eHksYXJnczpbImZvcm1Hcm91cE5hbWUiXX1dfSk7Y29uc3QgU1U9e3Byb3ZpZGU6Q2osdXNlRXhpc3Rpbmc6cWUoKCgpPT5EVSkpfTtjbGFzcyBEVSBleHRlbmRzIENqe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcigpLHRoaXMuX3BhcmVudD10LHRoaXMuX3NldFZhbGlkYXRvcnMoZSksdGhpcy5fc2V0QXN5bmNWYWxpZGF0b3JzKG4pfW5nT25Jbml0KCl7dGhpcy5fY2hlY2tQYXJlbnRUeXBlKCksdGhpcy5mb3JtRGlyZWN0aXZlLmFkZEZvcm1BcnJheSh0aGlzKX1uZ09uRGVzdHJveSgpe3RoaXMuZm9ybURpcmVjdGl2ZSYmdGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUZvcm1BcnJheSh0aGlzKX1nZXQgY29udHJvbCgpe3JldHVybiB0aGlzLmZvcm1EaXJlY3RpdmUuZ2V0Rm9ybUFycmF5KHRoaXMpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXMuX3BhcmVudD90aGlzLl9wYXJlbnQuZm9ybURpcmVjdGl2ZTpudWxsfWdldCBwYXRoKCl7cmV0dXJuIERqKG51bGw9PXRoaXMubmFtZT90aGlzLm5hbWU6dGhpcy5uYW1lLnRvU3RyaW5nKCksdGhpcy5fcGFyZW50KX1fY2hlY2tQYXJlbnRUeXBlKCl7RVUodGhpcy5fcGFyZW50KSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZTai5hcnJheVBhcmVudEV4Y2VwdGlvbigpfX1mdW5jdGlvbiBFVSh0KXtyZXR1cm4hKHQgaW5zdGFuY2VvZiBrVXx8dCBpbnN0YW5jZW9mIFBVfHx0IGluc3RhbmNlb2YgRFUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9EVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RFUpKFNtKENqLDEzKSxTbShHViwxMCksU20oV1YsMTApKX0sRFUuybVkaXI9bG8oe3R5cGU6RFUsc2VsZWN0b3JzOltbIiIsImZvcm1BcnJheU5hbWUiLCIiXV0saW5wdXRzOntuYW1lOlsiZm9ybUFycmF5TmFtZSIsIm5hbWUiXX0sZmVhdHVyZXM6W3BnKFtTVV0pLHhwXX0pLERVLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV0sRFUucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOnh5LGFyZ3M6WyJmb3JtQXJyYXlOYW1lIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChEVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbZm9ybUFycmF5TmFtZV0iLHByb3ZpZGVyczpbU1VdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfV19KSx7bmFtZTpbe3R5cGU6eHksYXJnczpbImZvcm1BcnJheU5hbWUiXX1dfSk7Y29uc3QgUlU9e3Byb3ZpZGU6TWosdXNlRXhpc3Rpbmc6cWUoKCgpPT5BVSkpfTtjbGFzcyBBVSBleHRlbmRzIE1qe2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7c3VwZXIoKSx0aGlzLl9uZ01vZGVsV2FybmluZ0NvbmZpZz1pLHRoaXMuX2FkZGVkPSExLHRoaXMudXBkYXRlPW5ldyBMaCx0aGlzLl9uZ01vZGVsV2FybmluZ1NlbnQ9ITEsdGhpcy5fcGFyZW50PXQsdGhpcy5fc2V0VmFsaWRhdG9ycyhlKSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMobiksdGhpcy52YWx1ZUFjY2Vzc29yPUJqKHRoaXMsbyl9c2V0IGlzRGlzYWJsZWQodCl7KCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZTai5kaXNhYmxlZEF0dHJXYXJuaW5nKCl9bmdPbkNoYW5nZXModCl7dGhpcy5fYWRkZWR8fHRoaXMuX3NldFVwQ29udHJvbCgpLEZqKHQsdGhpcy52aWV3TW9kZWwpJiYoKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZqaigiZm9ybUNvbnRyb2xOYW1lIixBVSx0aGlzLHRoaXMuX25nTW9kZWxXYXJuaW5nQ29uZmlnKSx0aGlzLnZpZXdNb2RlbD10aGlzLm1vZGVsLHRoaXMuZm9ybURpcmVjdGl2ZS51cGRhdGVNb2RlbCh0aGlzLHRoaXMubW9kZWwpKX1uZ09uRGVzdHJveSgpe3RoaXMuZm9ybURpcmVjdGl2ZSYmdGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUNvbnRyb2wodGhpcyl9dmlld1RvTW9kZWxVcGRhdGUodCl7dGhpcy52aWV3TW9kZWw9dCx0aGlzLnVwZGF0ZS5lbWl0KHQpfWdldCBwYXRoKCl7cmV0dXJuIERqKG51bGw9PXRoaXMubmFtZT90aGlzLm5hbWU6dGhpcy5uYW1lLnRvU3RyaW5nKCksdGhpcy5fcGFyZW50KX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzLl9wYXJlbnQ/dGhpcy5fcGFyZW50LmZvcm1EaXJlY3RpdmU6bnVsbH1fY2hlY2tQYXJlbnRUeXBlKCl7KCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiYoISh0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBrVSkmJnRoaXMuX3BhcmVudCBpbnN0YW5jZW9mIGFVP1NqLm5nTW9kZWxHcm91cEV4Y2VwdGlvbigpOnRoaXMuX3BhcmVudCBpbnN0YW5jZW9mIGtVfHx0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBQVXx8dGhpcy5fcGFyZW50IGluc3RhbmNlb2YgRFV8fFNqLmNvbnRyb2xQYXJlbnRFeGNlcHRpb24oKSl9X3NldFVwQ29udHJvbCgpe3RoaXMuX2NoZWNrUGFyZW50VHlwZSgpLHRoaXMuY29udHJvbD10aGlzLmZvcm1EaXJlY3RpdmUuYWRkQ29udHJvbCh0aGlzKSx0aGlzLmNvbnRyb2wuZGlzYWJsZWQmJnRoaXMudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlJiZ0aGlzLnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZSghMCksdGhpcy5fYWRkZWQ9ITB9fUFVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBVSkoU20oQ2osMTMpLFNtKEdWLDEwKSxTbShXViwxMCksU20oSVYsMTApLFNtKE1VLDgpKX0sQVUuybVkaXI9bG8oe3R5cGU6QVUsc2VsZWN0b3JzOltbIiIsImZvcm1Db250cm9sTmFtZSIsIiJdXSxpbnB1dHM6e2lzRGlzYWJsZWQ6WyJkaXNhYmxlZCIsImlzRGlzYWJsZWQiXSxuYW1lOlsiZm9ybUNvbnRyb2xOYW1lIiwibmFtZSJdLG1vZGVsOlsibmdNb2RlbCIsIm1vZGVsIl19LG91dHB1dHM6e3VwZGF0ZToibmdNb2RlbENoYW5nZSJ9LGZlYXR1cmVzOltwZyhbUlVdKSx4cCxCb119KSxBVS5fbmdNb2RlbFdhcm5pbmdTZW50T25jZT0hMSxBVS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkNqLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn0se3R5cGU6RXJ9XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltHVl19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltXVl19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfSx7dHlwZTprcixhcmdzOltJVl19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltNVV19XX1dLEFVLnByb3BEZWNvcmF0b3JzPXtuYW1lOlt7dHlwZTp4eSxhcmdzOlsiZm9ybUNvbnRyb2xOYW1lIl19XSxpc0Rpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsiZGlzYWJsZWQiXX1dLG1vZGVsOlt7dHlwZTp4eSxhcmdzOlsibmdNb2RlbCJdfV0sdXBkYXRlOlt7dHlwZTpPeSxhcmdzOlsibmdNb2RlbENoYW5nZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQVUsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Zvcm1Db250cm9sTmFtZV0iLHByb3ZpZGVyczpbUlVdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Q2osZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOlJyfSx7dHlwZTpFcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W1dWXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W0lWXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W01VXX1dfV19KSx7dXBkYXRlOlt7dHlwZTpPeSxhcmdzOlsibmdNb2RlbENoYW5nZSJdfV0saXNEaXNhYmxlZDpbe3R5cGU6eHksYXJnczpbImRpc2FibGVkIl19XSxuYW1lOlt7dHlwZTp4eSxhcmdzOlsiZm9ybUNvbnRyb2xOYW1lIl19XSxtb2RlbDpbe3R5cGU6eHksYXJnczpbIm5nTW9kZWwiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBUVT17cHJvdmlkZTpJVix1c2VFeGlzdGluZzpxZSgoKCk9PnpVKSksbXVsdGk6ITB9O2Z1bmN0aW9uIE5VKHQsZSl7cmV0dXJuIG51bGw9PXQ/YCR7ZX1gOihlJiYib2JqZWN0Ij09dHlwZW9mIGUmJihlPSJPYmplY3QiKSxgJHt0fTogJHtlfWAuc2xpY2UoMCw1MCkpfWNsYXNzIHpVIGV4dGVuZHMgelZ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX29wdGlvbk1hcD1uZXcgTWFwLHRoaXMuX2lkQ291bnRlcj0wLHRoaXMuX2NvbXBhcmVXaXRoPU9iamVjdC5pc31zZXQgY29tcGFyZVdpdGgodCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBuZXcgRXJyb3IoYGNvbXBhcmVXaXRoIG11c3QgYmUgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkodCl9YCk7dGhpcy5fY29tcGFyZVdpdGg9dH13cml0ZVZhbHVlKHQpe3RoaXMudmFsdWU9dDtjb25zdCBlPXRoaXMuX2dldE9wdGlvbklkKHQpO251bGw9PWUmJnRoaXMuc2V0UHJvcGVydHkoInNlbGVjdGVkSW5kZXgiLC0xKTtjb25zdCBuPU5VKGUsdCk7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLG4pfXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5vbkNoYW5nZT1lPT57dGhpcy52YWx1ZT10aGlzLl9nZXRPcHRpb25WYWx1ZShlKSx0KHRoaXMudmFsdWUpfX1fcmVnaXN0ZXJPcHRpb24oKXtyZXR1cm4odGhpcy5faWRDb3VudGVyKyspLnRvU3RyaW5nKCl9X2dldE9wdGlvbklkKHQpe2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20odGhpcy5fb3B0aW9uTWFwLmtleXMoKSkpaWYodGhpcy5fY29tcGFyZVdpdGgodGhpcy5fb3B0aW9uTWFwLmdldChlKSx0KSlyZXR1cm4gZTtyZXR1cm4gbnVsbH1fZ2V0T3B0aW9uVmFsdWUodCl7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5zcGxpdCgiOiIpWzBdfSkodCk7cmV0dXJuIHRoaXMuX29wdGlvbk1hcC5oYXMoZSk/dGhpcy5fb3B0aW9uTWFwLmdldChlKTp0fX16VS7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoelUpKSkobnx8elUpfX0pKCkselUuybVkaXI9bG8oe3R5cGU6elUsc2VsZWN0b3JzOltbInNlbGVjdCIsImZvcm1Db250cm9sTmFtZSIsIiIsMywibXVsdGlwbGUiLCIiXSxbInNlbGVjdCIsImZvcm1Db250cm9sIiwiIiwzLCJtdWx0aXBsZSIsIiJdLFsic2VsZWN0IiwibmdNb2RlbCIsIiIsMywibXVsdGlwbGUiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvdWNoZWQoKX0pKX0saW5wdXRzOntjb21wYXJlV2l0aDoiY29tcGFyZVdpdGgifSxmZWF0dXJlczpbcGcoW1RVXSkseHBdfSkselUucHJvcERlY29yYXRvcnM9e2NvbXBhcmVXaXRoOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHpVLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6InNlbGVjdDpub3QoW211bHRpcGxlXSlbZm9ybUNvbnRyb2xOYW1lXSxzZWxlY3Q6bm90KFttdWx0aXBsZV0pW2Zvcm1Db250cm9sXSxzZWxlY3Q6bm90KFttdWx0aXBsZV0pW25nTW9kZWxdIixob3N0OnsiKGNoYW5nZSkiOiJvbkNoYW5nZSgkZXZlbnQudGFyZ2V0LnZhbHVlKSIsIihibHVyKSI6Im9uVG91Y2hlZCgpIn0scHJvdmlkZXJzOltUVV19XX1dLG51bGwse2NvbXBhcmVXaXRoOlt7dHlwZTp4eX1dfSk7Y2xhc3MgSVV7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9yZW5kZXJlcj1lLHRoaXMuX3NlbGVjdD1uLHRoaXMuX3NlbGVjdCYmKHRoaXMuaWQ9dGhpcy5fc2VsZWN0Ll9yZWdpc3Rlck9wdGlvbigpKX1zZXQgbmdWYWx1ZSh0KXtudWxsIT10aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5zZXQodGhpcy5pZCx0KSx0aGlzLl9zZXRFbGVtZW50VmFsdWUoTlUodGhpcy5pZCx0KSksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9c2V0IHZhbHVlKHQpe3RoaXMuX3NldEVsZW1lbnRWYWx1ZSh0KSx0aGlzLl9zZWxlY3QmJnRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSl9X3NldEVsZW1lbnRWYWx1ZSh0KXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsInZhbHVlIix0KX1uZ09uRGVzdHJveSgpe3RoaXMuX3NlbGVjdCYmKHRoaXMuX3NlbGVjdC5fb3B0aW9uTWFwLmRlbGV0ZSh0aGlzLmlkKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpKX19SVUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fElVKShTbShoZyksU20oQ2cpLFNtKHpVLDkpKX0sSVUuybVkaXI9bG8oe3R5cGU6SVUsc2VsZWN0b3JzOltbIm9wdGlvbiJdXSxpbnB1dHM6e25nVmFsdWU6Im5nVmFsdWUiLHZhbHVlOiJ2YWx1ZSJ9fSksSVUuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6Q2d9LHt0eXBlOnpVLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV0sSVUucHJvcERlY29yYXRvcnM9e25nVmFsdWU6W3t0eXBlOnh5LGFyZ3M6WyJuZ1ZhbHVlIl19XSx2YWx1ZTpbe3R5cGU6eHksYXJnczpbInZhbHVlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChJVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJvcHRpb24ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOkNnfSx7dHlwZTp6VSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6UnJ9XX1dfSkse25nVmFsdWU6W3t0eXBlOnh5LGFyZ3M6WyJuZ1ZhbHVlIl19XSx2YWx1ZTpbe3R5cGU6eHksYXJnczpbInZhbHVlIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgSFU9e3Byb3ZpZGU6SVYsdXNlRXhpc3Rpbmc6cWUoKCgpPT5MVSkpLG11bHRpOiEwfTtmdW5jdGlvbiBGVSh0LGUpe3JldHVybiBudWxsPT10P2Ake2V9YDooInN0cmluZyI9PXR5cGVvZiBlJiYoZT1gJyR7ZX0nYCksZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYoZT0iT2JqZWN0IiksYCR7dH06ICR7ZX1gLnNsaWNlKDAsNTApKX1jbGFzcyBMVSBleHRlbmRzIHpWe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcHRpb25NYXA9bmV3IE1hcCx0aGlzLl9pZENvdW50ZXI9MCx0aGlzLl9jb21wYXJlV2l0aD1PYmplY3QuaXN9c2V0IGNvbXBhcmVXaXRoKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgbmV3IEVycm9yKGBjb21wYXJlV2l0aCBtdXN0IGJlIGEgZnVuY3Rpb24sIGJ1dCByZWNlaXZlZCAke0pTT04uc3RyaW5naWZ5KHQpfWApO3RoaXMuX2NvbXBhcmVXaXRoPXR9d3JpdGVWYWx1ZSh0KXtsZXQgZTtpZih0aGlzLnZhbHVlPXQsQXJyYXkuaXNBcnJheSh0KSl7Y29uc3Qgbj10Lm1hcCgodD0+dGhpcy5fZ2V0T3B0aW9uSWQodCkpKTtlPSh0LGUpPT57dC5fc2V0U2VsZWN0ZWQobi5pbmRleE9mKGUudG9TdHJpbmcoKSk+LTEpfX1lbHNlIGU9KHQsZSk9Pnt0Ll9zZXRTZWxlY3RlZCghMSl9O3RoaXMuX29wdGlvbk1hcC5mb3JFYWNoKGUpfXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5vbkNoYW5nZT1lPT57Y29uc3Qgbj1bXTtpZih2b2lkIDAhPT1lLnNlbGVjdGVkT3B0aW9ucyl7Y29uc3QgdD1lLnNlbGVjdGVkT3B0aW9ucztmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7Y29uc3Qgbz10Lml0ZW0oZSksaT10aGlzLl9nZXRPcHRpb25WYWx1ZShvLnZhbHVlKTtuLnB1c2goaSl9fWVsc2V7Y29uc3QgdD1lLm9wdGlvbnM7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0IG89dC5pdGVtKGUpO2lmKG8uc2VsZWN0ZWQpe2NvbnN0IHQ9dGhpcy5fZ2V0T3B0aW9uVmFsdWUoby52YWx1ZSk7bi5wdXNoKHQpfX19dGhpcy52YWx1ZT1uLHQobil9fV9yZWdpc3Rlck9wdGlvbih0KXtjb25zdCBlPSh0aGlzLl9pZENvdW50ZXIrKykudG9TdHJpbmcoKTtyZXR1cm4gdGhpcy5fb3B0aW9uTWFwLnNldChlLHQpLGV9X2dldE9wdGlvbklkKHQpe2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20odGhpcy5fb3B0aW9uTWFwLmtleXMoKSkpaWYodGhpcy5fY29tcGFyZVdpdGgodGhpcy5fb3B0aW9uTWFwLmdldChlKS5fdmFsdWUsdCkpcmV0dXJuIGU7cmV0dXJuIG51bGx9X2dldE9wdGlvblZhbHVlKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQuc3BsaXQoIjoiKVswXX0pKHQpO3JldHVybiB0aGlzLl9vcHRpb25NYXAuaGFzKGUpP3RoaXMuX29wdGlvbk1hcC5nZXQoZSkuX3ZhbHVlOnR9fUxVLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShMVSkpKShufHxMVSl9fSkoKSxMVS7JtWRpcj1sbyh7dHlwZTpMVSxzZWxlY3RvcnM6W1sic2VsZWN0IiwibXVsdGlwbGUiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25DaGFuZ2UoZS50YXJnZXQpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVG91Y2hlZCgpfSkpfSxpbnB1dHM6e2NvbXBhcmVXaXRoOiJjb21wYXJlV2l0aCJ9LGZlYXR1cmVzOltwZyhbSFVdKSx4cF19KSxMVS5wcm9wRGVjb3JhdG9ycz17Y29tcGFyZVdpdGg6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTFUsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3Rvcjoic2VsZWN0W211bHRpcGxlXVtmb3JtQ29udHJvbE5hbWVdLHNlbGVjdFttdWx0aXBsZV1bZm9ybUNvbnRyb2xdLHNlbGVjdFttdWx0aXBsZV1bbmdNb2RlbF0iLGhvc3Q6eyIoY2hhbmdlKSI6Im9uQ2hhbmdlKCRldmVudC50YXJnZXQpIiwiKGJsdXIpIjoib25Ub3VjaGVkKCkifSxwcm92aWRlcnM6W0hVXX1dfV0sbnVsbCx7Y29tcGFyZVdpdGg6W3t0eXBlOnh5fV19KTtjbGFzcyBCVXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fZWxlbWVudD10LHRoaXMuX3JlbmRlcmVyPWUsdGhpcy5fc2VsZWN0PW4sdGhpcy5fc2VsZWN0JiYodGhpcy5pZD10aGlzLl9zZWxlY3QuX3JlZ2lzdGVyT3B0aW9uKHRoaXMpKX1zZXQgbmdWYWx1ZSh0KXtudWxsIT10aGlzLl9zZWxlY3QmJih0aGlzLl92YWx1ZT10LHRoaXMuX3NldEVsZW1lbnRWYWx1ZShGVSh0aGlzLmlkLHQpKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpKX1zZXQgdmFsdWUodCl7dGhpcy5fc2VsZWN0Pyh0aGlzLl92YWx1ZT10LHRoaXMuX3NldEVsZW1lbnRWYWx1ZShGVSh0aGlzLmlkLHQpKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpKTp0aGlzLl9zZXRFbGVtZW50VmFsdWUodCl9X3NldEVsZW1lbnRWYWx1ZSh0KXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsInZhbHVlIix0KX1fc2V0U2VsZWN0ZWQodCl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCJzZWxlY3RlZCIsdCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5kZWxldGUodGhpcy5pZCksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gVlUodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3Q6cGFyc2VJbnQodCwxMCl9QlUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJVKShTbShoZyksU20oQ2cpLFNtKExVLDkpKX0sQlUuybVkaXI9bG8oe3R5cGU6QlUsc2VsZWN0b3JzOltbIm9wdGlvbiJdXSxpbnB1dHM6e25nVmFsdWU6Im5nVmFsdWUiLHZhbHVlOiJ2YWx1ZSJ9fSksQlUuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6Q2d9LHt0eXBlOkxVLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpScn1dfV0sQlUucHJvcERlY29yYXRvcnM9e25nVmFsdWU6W3t0eXBlOnh5LGFyZ3M6WyJuZ1ZhbHVlIl19XSx2YWx1ZTpbe3R5cGU6eHksYXJnczpbInZhbHVlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJvcHRpb24ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOkNnfSx7dHlwZTpMVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6UnJ9XX1dfSkse25nVmFsdWU6W3t0eXBlOnh5LGFyZ3M6WyJuZ1ZhbHVlIl19XSx2YWx1ZTpbe3R5cGU6eHksYXJnczpbInZhbHVlIl19XX0pO2NsYXNzIGpVe2NvbnN0cnVjdG9yKCl7dGhpcy5fdmFsaWRhdG9yPW5qfWhhbmRsZUNoYW5nZXModCl7aWYodGhpcy5pbnB1dE5hbWUgaW4gdCl7Y29uc3QgZT10aGlzLm5vcm1hbGl6ZUlucHV0KHRbdGhpcy5pbnB1dE5hbWVdLmN1cnJlbnRWYWx1ZSk7dGhpcy5fdmFsaWRhdG9yPXRoaXMuY3JlYXRlVmFsaWRhdG9yKGUpLHRoaXMuX29uQ2hhbmdlJiZ0aGlzLl9vbkNoYW5nZSgpfX12YWxpZGF0ZSh0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdG9yKHQpfXJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH19alUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGpVKX0salUuybVkaXI9bG8oe3R5cGU6alV9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGpVLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7Y29uc3QgVVU9e3Byb3ZpZGU6R1YsdXNlRXhpc3Rpbmc6cWUoKCgpPT5HVSkpLG11bHRpOiEwfTtjbGFzcyBHVSBleHRlbmRzIGpVe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlucHV0TmFtZT0ibWF4Iix0aGlzLm5vcm1hbGl6ZUlucHV0PXQ9PnBhcnNlRmxvYXQodCksdGhpcy5jcmVhdGVWYWxpZGF0b3I9dD0+WFYodCl9bmdPbkNoYW5nZXModCl7dGhpcy5oYW5kbGVDaGFuZ2VzKHQpfX1HVS7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoR1UpKSkobnx8R1UpfX0pKCksR1UuybVkaXI9bG8oe3R5cGU6R1Usc2VsZWN0b3JzOltbImlucHV0IiwidHlwZSIsIm51bWJlciIsIm1heCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwibWF4IiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIsIm1heCIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pe2lmKDImZSl7bGV0IHQ7anAoIm1heCIsbnVsbCE9PSh0PW4ubWF4KSYmdm9pZCAwIT09dD90Om51bGwpfX0saW5wdXRzOnttYXg6Im1heCJ9LGZlYXR1cmVzOltwZyhbVVVdKSx4cCxCb119KSxHVS5wcm9wRGVjb3JhdG9ycz17bWF4Olt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEdVLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImlucHV0W3R5cGU9bnVtYmVyXVttYXhdW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1udW1iZXJdW21heF1bZm9ybUNvbnRyb2xdLGlucHV0W3R5cGU9bnVtYmVyXVttYXhdW25nTW9kZWxdIixwcm92aWRlcnM6W1VVXSxob3N0OnsiW2F0dHIubWF4XSI6Im1heCA/PyBudWxsIn19XX1dLG51bGwse21heDpbe3R5cGU6eHl9XX0pO2NvbnN0IFdVPXtwcm92aWRlOkdWLHVzZUV4aXN0aW5nOnFlKCgoKT0+WVUpKSxtdWx0aTohMH07Y2xhc3MgWVUgZXh0ZW5kcyBqVXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pbnB1dE5hbWU9Im1pbiIsdGhpcy5ub3JtYWxpemVJbnB1dD10PT5wYXJzZUZsb2F0KHQpLHRoaXMuY3JlYXRlVmFsaWRhdG9yPXQ9PlpWKHQpfW5nT25DaGFuZ2VzKHQpe3RoaXMuaGFuZGxlQ2hhbmdlcyh0KX19WVUuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKFlVKSkpKG58fFlVKX19KSgpLFlVLsm1ZGlyPWxvKHt0eXBlOllVLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJtaW4iLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIsIm1pbiIsIiIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJtaW4iLCIiLCJuZ01vZGVsIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXtpZigyJmUpe2xldCB0O2pwKCJtaW4iLG51bGwhPT0odD1uLm1pbikmJnZvaWQgMCE9PXQ/dDpudWxsKX19LGlucHV0czp7bWluOiJtaW4ifSxmZWF0dXJlczpbcGcoW1dVXSkseHAsQm9dfSksWVUucHJvcERlY29yYXRvcnM9e21pbjpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChZVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJpbnB1dFt0eXBlPW51bWJlcl1bbWluXVtmb3JtQ29udHJvbE5hbWVdLGlucHV0W3R5cGU9bnVtYmVyXVttaW5dW2Zvcm1Db250cm9sXSxpbnB1dFt0eXBlPW51bWJlcl1bbWluXVtuZ01vZGVsXSIscHJvdmlkZXJzOltXVV0saG9zdDp7IlthdHRyLm1pbl0iOiJtaW4gPz8gbnVsbCJ9fV19XSxudWxsLHttaW46W3t0eXBlOnh5fV19KTtjb25zdCBxVT17cHJvdmlkZTpHVix1c2VFeGlzdGluZzpxZSgoKCk9PlhVKSksbXVsdGk6ITB9LFpVPXtwcm92aWRlOkdWLHVzZUV4aXN0aW5nOnFlKCgoKT0+S1UpKSxtdWx0aTohMH07Y2xhc3MgWFV7Y29uc3RydWN0b3IoKXt0aGlzLl9yZXF1aXJlZD0hMX1nZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy5fcmVxdWlyZWR9c2V0IHJlcXVpcmVkKHQpe3RoaXMuX3JlcXVpcmVkPW51bGwhPXQmJiExIT09dCYmImZhbHNlIiE9YCR7dH1gLHRoaXMuX29uQ2hhbmdlJiZ0aGlzLl9vbkNoYW5nZSgpfXZhbGlkYXRlKHQpe3JldHVybiB0aGlzLnJlcXVpcmVkP0tWKHQpOm51bGx9cmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSh0KXt0aGlzLl9vbkNoYW5nZT10fX1YVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WFUpfSxYVS7JtWRpcj1sbyh7dHlwZTpYVSxzZWxlY3RvcnM6W1siIiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsiIiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbCIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyIiLCJyZXF1aXJlZCIsIiIsIm5nTW9kZWwiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZqcCgicmVxdWlyZWQiLG4ucmVxdWlyZWQ/IiI6bnVsbCl9LGlucHV0czp7cmVxdWlyZWQ6InJlcXVpcmVkIn0sZmVhdHVyZXM6W3BnKFtxVV0pXX0pLFhVLnByb3BEZWNvcmF0b3JzPXtyZXF1aXJlZDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiI6bm90KFt0eXBlPWNoZWNrYm94XSlbcmVxdWlyZWRdW2Zvcm1Db250cm9sTmFtZV0sOm5vdChbdHlwZT1jaGVja2JveF0pW3JlcXVpcmVkXVtmb3JtQ29udHJvbF0sOm5vdChbdHlwZT1jaGVja2JveF0pW3JlcXVpcmVkXVtuZ01vZGVsXSIscHJvdmlkZXJzOltxVV0saG9zdDp7IlthdHRyLnJlcXVpcmVkXSI6J3JlcXVpcmVkID8gIiIgOiBudWxsJ319XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse3JlcXVpcmVkOlt7dHlwZTp4eX1dfSk7Y2xhc3MgS1UgZXh0ZW5kcyBYVXt2YWxpZGF0ZSh0KXtyZXR1cm4gdGhpcy5yZXF1aXJlZD9KVih0KTpudWxsfX1LVS7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoS1UpKSkobnx8S1UpfX0pKCksS1UuybVkaXI9bG8oe3R5cGU6S1Usc2VsZWN0b3JzOltbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJyZXF1aXJlZCIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmanAoInJlcXVpcmVkIixuLnJlcXVpcmVkPyIiOm51bGwpfSxmZWF0dXJlczpbcGcoW1pVXSkseHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChLVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJpbnB1dFt0eXBlPWNoZWNrYm94XVtyZXF1aXJlZF1bZm9ybUNvbnRyb2xOYW1lXSxpbnB1dFt0eXBlPWNoZWNrYm94XVtyZXF1aXJlZF1bZm9ybUNvbnRyb2xdLGlucHV0W3R5cGU9Y2hlY2tib3hdW3JlcXVpcmVkXVtuZ01vZGVsXSIscHJvdmlkZXJzOltaVV0saG9zdDp7IlthdHRyLnJlcXVpcmVkXSI6J3JlcXVpcmVkID8gIiIgOiBudWxsJ319XX1dLG51bGwsbnVsbCk7Y29uc3QgSlU9e3Byb3ZpZGU6R1YsdXNlRXhpc3Rpbmc6cWUoKCgpPT5RVSkpLG11bHRpOiEwfTtjbGFzcyBRVXtjb25zdHJ1Y3Rvcigpe3RoaXMuX2VuYWJsZWQ9ITF9c2V0IGVtYWlsKHQpe3RoaXMuX2VuYWJsZWQ9IiI9PT10fHwhMD09PXR8fCJ0cnVlIj09PXQsdGhpcy5fb25DaGFuZ2UmJnRoaXMuX29uQ2hhbmdlKCl9dmFsaWRhdGUodCl7cmV0dXJuIHRoaXMuX2VuYWJsZWQ/UVYodCk6bnVsbH1yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9fVFVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxRVSl9LFFVLsm1ZGlyPWxvKHt0eXBlOlFVLHNlbGVjdG9yczpbWyIiLCJlbWFpbCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwiZW1haWwiLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsiIiwiZW1haWwiLCIiLCJuZ01vZGVsIiwiIl1dLGlucHV0czp7ZW1haWw6ImVtYWlsIn0sZmVhdHVyZXM6W3BnKFtKVV0pXX0pLFFVLnByb3BEZWNvcmF0b3JzPXtlbWFpbDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChRVSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbZW1haWxdW2Zvcm1Db250cm9sTmFtZV0sW2VtYWlsXVtmb3JtQ29udHJvbF0sW2VtYWlsXVtuZ01vZGVsXSIscHJvdmlkZXJzOltKVV19XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse2VtYWlsOlt7dHlwZTp4eX1dfSk7Y29uc3QgJFU9e3Byb3ZpZGU6R1YsdXNlRXhpc3Rpbmc6cWUoKCgpPT50RykpLG11bHRpOiEwfTtjbGFzcyB0R3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3ZhbGlkYXRvcj1uan1uZ09uQ2hhbmdlcyh0KXsibWlubGVuZ3RoImluIHQmJih0aGlzLl9jcmVhdGVWYWxpZGF0b3IoKSx0aGlzLl9vbkNoYW5nZSYmdGhpcy5fb25DaGFuZ2UoKSl9dmFsaWRhdGUodCl7cmV0dXJuIHRoaXMuZW5hYmxlZCgpP3RoaXMuX3ZhbGlkYXRvcih0KTpudWxsfXJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH1fY3JlYXRlVmFsaWRhdG9yKCl7dGhpcy5fdmFsaWRhdG9yPXRoaXMuZW5hYmxlZCgpPyRWKFZVKHRoaXMubWlubGVuZ3RoKSk6bmp9ZW5hYmxlZCgpe3JldHVybiBudWxsIT10aGlzLm1pbmxlbmd0aH19dEcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHRHKX0sdEcuybVkaXI9bG8oe3R5cGU6dEcsc2VsZWN0b3JzOltbIiIsIm1pbmxlbmd0aCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwibWlubGVuZ3RoIiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbIiIsIm1pbmxlbmd0aCIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmanAoIm1pbmxlbmd0aCIsbi5lbmFibGVkKCk/bi5taW5sZW5ndGg6bnVsbCl9LGlucHV0czp7bWlubGVuZ3RoOiJtaW5sZW5ndGgifSxmZWF0dXJlczpbcGcoWyRVXSksQm9dfSksdEcucHJvcERlY29yYXRvcnM9e21pbmxlbmd0aDpbe3R5cGU6eHl9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh0Ryxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWlubGVuZ3RoXVtmb3JtQ29udHJvbE5hbWVdLFttaW5sZW5ndGhdW2Zvcm1Db250cm9sXSxbbWlubGVuZ3RoXVtuZ01vZGVsXSIscHJvdmlkZXJzOlskVV0saG9zdDp7IlthdHRyLm1pbmxlbmd0aF0iOiJlbmFibGVkKCkgPyBtaW5sZW5ndGggOiBudWxsIn19XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse21pbmxlbmd0aDpbe3R5cGU6eHl9XX0pO2NvbnN0IGVHPXtwcm92aWRlOkdWLHVzZUV4aXN0aW5nOnFlKCgoKT0+bkcpKSxtdWx0aTohMH07Y2xhc3Mgbkd7Y29uc3RydWN0b3IoKXt0aGlzLl92YWxpZGF0b3I9bmp9bmdPbkNoYW5nZXModCl7Im1heGxlbmd0aCJpbiB0JiYodGhpcy5fY3JlYXRlVmFsaWRhdG9yKCksdGhpcy5fb25DaGFuZ2UmJnRoaXMuX29uQ2hhbmdlKCkpfXZhbGlkYXRlKHQpe3JldHVybiB0aGlzLmVuYWJsZWQoKT90aGlzLl92YWxpZGF0b3IodCk6bnVsbH1yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9X2NyZWF0ZVZhbGlkYXRvcigpe3RoaXMuX3ZhbGlkYXRvcj10aGlzLmVuYWJsZWQoKT90aihWVSh0aGlzLm1heGxlbmd0aCkpOm5qfWVuYWJsZWQoKXtyZXR1cm4gbnVsbCE9dGhpcy5tYXhsZW5ndGh9fW5HLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxuRyl9LG5HLsm1ZGlyPWxvKHt0eXBlOm5HLHNlbGVjdG9yczpbWyIiLCJtYXhsZW5ndGgiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIiIsIm1heGxlbmd0aCIsIiIsImZvcm1Db250cm9sIiwiIl0sWyIiLCJtYXhsZW5ndGgiLCIiLCJuZ01vZGVsIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJmpwKCJtYXhsZW5ndGgiLG4uZW5hYmxlZCgpP24ubWF4bGVuZ3RoOm51bGwpfSxpbnB1dHM6e21heGxlbmd0aDoibWF4bGVuZ3RoIn0sZmVhdHVyZXM6W3BnKFtlR10pLEJvXX0pLG5HLnByb3BEZWNvcmF0b3JzPXttYXhsZW5ndGg6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobkcsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21heGxlbmd0aF1bZm9ybUNvbnRyb2xOYW1lXSxbbWF4bGVuZ3RoXVtmb3JtQ29udHJvbF0sW21heGxlbmd0aF1bbmdNb2RlbF0iLHByb3ZpZGVyczpbZUddLGhvc3Q6eyJbYXR0ci5tYXhsZW5ndGhdIjoiZW5hYmxlZCgpID8gbWF4bGVuZ3RoIDogbnVsbCJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLHttYXhsZW5ndGg6W3t0eXBlOnh5fV19KTtjb25zdCBvRz17cHJvdmlkZTpHVix1c2VFeGlzdGluZzpxZSgoKCk9PmlHKSksbXVsdGk6ITB9O2NsYXNzIGlHe2NvbnN0cnVjdG9yKCl7dGhpcy5fdmFsaWRhdG9yPW5qfW5nT25DaGFuZ2VzKHQpeyJwYXR0ZXJuImluIHQmJih0aGlzLl9jcmVhdGVWYWxpZGF0b3IoKSx0aGlzLl9vbkNoYW5nZSYmdGhpcy5fb25DaGFuZ2UoKSl9dmFsaWRhdGUodCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRvcih0KX1yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9X2NyZWF0ZVZhbGlkYXRvcigpe3RoaXMuX3ZhbGlkYXRvcj1laih0aGlzLnBhdHRlcm4pfX1pRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aUcpfSxpRy7JtWRpcj1sbyh7dHlwZTppRyxzZWxlY3RvcnM6W1siIiwicGF0dGVybiIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwicGF0dGVybiIsIiIsImZvcm1Db250cm9sIiwiIl0sWyIiLCJwYXR0ZXJuIiwiIiwibmdNb2RlbCIsIiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZqcCgicGF0dGVybiIsbi5wYXR0ZXJuP24ucGF0dGVybjpudWxsKX0saW5wdXRzOntwYXR0ZXJuOiJwYXR0ZXJuIn0sZmVhdHVyZXM6W3BnKFtvR10pLEJvXX0pLGlHLnByb3BEZWNvcmF0b3JzPXtwYXR0ZXJuOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGlHLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltwYXR0ZXJuXVtmb3JtQ29udHJvbE5hbWVdLFtwYXR0ZXJuXVtmb3JtQ29udHJvbF0sW3BhdHRlcm5dW25nTW9kZWxdIixwcm92aWRlcnM6W29HXSxob3N0OnsiW2F0dHIucGF0dGVybl0iOiJwYXR0ZXJuID8gcGF0dGVybiA6IG51bGwifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7cGF0dGVybjpbe3R5cGU6eHl9XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgYUc9W21VLElVLEJVLFZWLGZVLENVLEZWLHpVLExVLHlVLHhqLE9qLFhVLHRHLG5HLGlHLEtVLFFVLFlVLEdVXSxyRz1bcFUsbFUsaVVdLHNHPVt4VSxQVSxBVSxrVSxEVV07Y2xhc3MgbEd7fWxHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsRyl9LGxHLsm1bW9kPWFvKHt0eXBlOmxHfSksbEcuybVpbmo9dm4oe2ltcG9ydHM6W1toVV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsRyxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczphRyxpbXBvcnRzOltoVV0sZXhwb3J0czphR31dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKGxHLHtkZWNsYXJhdGlvbnM6W21VLElVLEJVLFZWLGZVLENVLEZWLHpVLExVLHlVLHhqLE9qLFhVLHRHLG5HLGlHLEtVLFFVLFlVLEdVXSxpbXBvcnRzOltoVV0sZXhwb3J0czpbbVUsSVUsQlUsVlYsZlUsQ1UsRlYselUsTFUseVUseGosT2osWFUsdEcsbkcsaUcsS1UsUVUsWVUsR1VdfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBjR3t9Y0cuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGNHKX0sY0cuybVtb2Q9YW8oe3R5cGU6Y0d9KSxjRy7JtWluaj12bih7aW1wb3J0czpbbEddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChjRyxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpyRyxleHBvcnRzOltsRyxyR119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhjRyx7ZGVjbGFyYXRpb25zOltwVSxsVSxpVV0sZXhwb3J0czpbbEcscFUsbFUsaVVdfSk7Y2xhc3MgZEd7c3RhdGljIHdpdGhDb25maWcodCl7cmV0dXJue25nTW9kdWxlOmRHLHByb3ZpZGVyczpbe3Byb3ZpZGU6TVUsdXNlVmFsdWU6dC53YXJuT25OZ01vZGVsV2l0aEZvcm1Db250cm9sfV19fX1kRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZEcpfSxkRy7JtW1vZD1hbyh7dHlwZTpkR30pLGRHLsm1aW5qPXZuKHtpbXBvcnRzOltsR119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGRHLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltzR10sZXhwb3J0czpbbEcsc0ddfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZEcse2RlY2xhcmF0aW9uczpbeFUsUFUsQVUsa1UsRFVdLGV4cG9ydHM6W2xHLHhVLFBVLEFVLGtVLERVXX0pO2NsYXNzIHBHe2dyb3VwKHQsZT1udWxsKXtjb25zdCBuPXRoaXMuX3JlZHVjZUNvbnRyb2xzKHQpO2xldCBvLGk9bnVsbCxhPW51bGw7cmV0dXJuIG51bGwhPWUmJigoCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiByKHQpe3JldHVybiB2b2lkIDAhPT10LmFzeW5jVmFsaWRhdG9yc3x8dm9pZCAwIT09dC52YWxpZGF0b3JzfHx2b2lkIDAhPT10LnVwZGF0ZU9ufSkoZSk/KGk9bnVsbCE9ZS52YWxpZGF0b3JzP2UudmFsaWRhdG9yczpudWxsLGE9bnVsbCE9ZS5hc3luY1ZhbGlkYXRvcnM/ZS5hc3luY1ZhbGlkYXRvcnM6bnVsbCxvPW51bGwhPWUudXBkYXRlT24/ZS51cGRhdGVPbjp2b2lkIDApOihpPW51bGwhPWUudmFsaWRhdG9yP2UudmFsaWRhdG9yOm51bGwsYT1udWxsIT1lLmFzeW5jVmFsaWRhdG9yP2UuYXN5bmNWYWxpZGF0b3I6bnVsbCkpLG5ldyB0VShuLHthc3luY1ZhbGlkYXRvcnM6YSx1cGRhdGVPbjpvLHZhbGlkYXRvcnM6aX0pfWNvbnRyb2wodCxlLG4pe3JldHVybiBuZXcgJGoodCxlLG4pfWFycmF5KHQsZSxuKXtjb25zdCBvPXQubWFwKCh0PT50aGlzLl9jcmVhdGVDb250cm9sKHQpKSk7cmV0dXJuIG5ldyBlVShvLGUsbil9X3JlZHVjZUNvbnRyb2xzKHQpe2NvbnN0IGU9e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PntlW25dPXRoaXMuX2NyZWF0ZUNvbnRyb2wodFtuXSl9KSksZX1fY3JlYXRlQ29udHJvbCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mICRqfHx0IGluc3RhbmNlb2YgdFV8fHQgaW5zdGFuY2VvZiBlVT90OkFycmF5LmlzQXJyYXkodCk/dGhpcy5jb250cm9sKHRbMF0sdC5sZW5ndGg+MT90WzFdOm51bGwsdC5sZW5ndGg+Mj90WzJdOm51bGwpOnRoaXMuY29udHJvbCh0KX19cEcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBHKX0scEcuybVwcm92PU1uKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IHBHfSx0b2tlbjpwRyxwcm92aWRlZEluOmRHfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwRyxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46ZEd9XX1dLG51bGwsbnVsbCksCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpuZXcgT2coIjEyLjIuMSIpO2NvbnN0IG1HPVsidHJpZ2dlciJdLHVHPVsicGFuZWwiXTtmdW5jdGlvbiBmRyh0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDgpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLFN1KHQucGxhY2Vob2xkZXIpfX1mdW5jdGlvbiBnRyh0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDEyKSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoMSksU3UodC50cmlnZ2VyVmFsdWUpfX1mdW5jdGlvbiBoRyh0LGUpezEmdCYmWG0oMCwwLFsiKm5nU3dpdGNoQ2FzZSIsInRydWUiXSl9ZnVuY3Rpb24gYkcodCxlKXsxJnQmJihSbSgwLCJzcGFuIiw5KSxRcCgxLGdHLDIsMSwic3BhbiIsMTApLFFwKDIsaEcsMSwwLCJuZy1jb250ZW50IiwxMSksQW0oKSksMiZ0JiYoRG0oIm5nU3dpdGNoIiwhIVltKCkuY3VzdG9tVHJpZ2dlcikscmMoMiksRG0oIm5nU3dpdGNoQ2FzZSIsITApKX1mdW5jdGlvbiB5Ryh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMTMpLFJtKDEsImRpdiIsMTQsMTUpLFZtKCJAdHJhbnNmb3JtUGFuZWwuZG9uZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkuX3BhbmVsRG9uZUFuaW1hdGluZ1N0cmVhbS5uZXh0KG4udG9TdGF0ZSl9KSkoImtleWRvd24iLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLl9oYW5kbGVLZXlkb3duKG4pfSkpLFhtKDMsMSksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJAdHJhbnNmb3JtUGFuZWxXcmFwIix2b2lkIDApLHJjKDEpLEF1KCJtYXQtc2VsZWN0LXBhbmVsICIsdC5fZ2V0UGFuZWxUaGVtZSgpLCIiKSxkdSgidHJhbnNmb3JtLW9yaWdpbiIsdC5fdHJhbnNmb3JtT3JpZ2luKSgiZm9udC1zaXplIix0Ll90cmlnZ2VyRm9udFNpemUsInB4IiksRG0oIm5nQ2xhc3MiLHQucGFuZWxDbGFzcykoIkB0cmFuc2Zvcm1QYW5lbCIsdC5tdWx0aXBsZT8ic2hvd2luZy1tdWx0aXBsZSI6InNob3dpbmciKSxqcCgiaWQiLHQuaWQrIi1wYW5lbCIpKCJhcmlhLW11bHRpc2VsZWN0YWJsZSIsdC5tdWx0aXBsZSkoImFyaWEtbGFiZWwiLHQuYXJpYUxhYmVsfHxudWxsKSgiYXJpYS1sYWJlbGxlZGJ5Iix0Ll9nZXRQYW5lbEFyaWFMYWJlbGxlZGJ5KCkpfX1jb25zdCBfRz1bW1sibWF0LXNlbGVjdC10cmlnZ2VyIl1dLCIqIl0sQ0c9e3RyYW5zZm9ybVBhbmVsV3JhcDpueCgidHJhbnNmb3JtUGFuZWxXcmFwIixbbHgoIiogPT4gdm9pZCIsZHgoIkB0cmFuc2Zvcm1QYW5lbCIsW2N4KCldLHtvcHRpb25hbDohMH0pKV0pLHRyYW5zZm9ybVBhbmVsOm54KCJ0cmFuc2Zvcm1QYW5lbCIsW3J4KCJ2b2lkIixheCh7dHJhbnNmb3JtOiJzY2FsZVkoMC44KSIsbWluV2lkdGg6IjEwMCUiLG9wYWNpdHk6MH0pKSxyeCgic2hvd2luZyIsYXgoe29wYWNpdHk6MSxtaW5XaWR0aDoiY2FsYygxMDAlICsgMzJweCkiLHRyYW5zZm9ybToic2NhbGVZKDEpIn0pKSxyeCgic2hvd2luZy1tdWx0aXBsZSIsYXgoe29wYWNpdHk6MSxtaW5XaWR0aDoiY2FsYygxMDAlICsgNjRweCkiLHRyYW5zZm9ybToic2NhbGVZKDEpIn0pKSxseCgidm9pZCA9PiAqIixveCgiMTIwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiKSksbHgoIiogPT4gdm9pZCIsb3goIjEwMG1zIDI1bXMgbGluZWFyIixheCh7b3BhY2l0eTowfSkpKV0pfTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBNRz0wO2NvbnN0IHZHPTI1Nix4Rz1uZXcgR2EoIm1hdC1zZWxlY3Qtc2Nyb2xsLXN0cmF0ZWd5IiksT0c9bmV3IEdhKCJNQVRfU0VMRUNUX0NPTkZJRyIpLFBHPXtwcm92aWRlOnhHLGRlcHM6W3BMXSx1c2VGYWN0b3J5OmZ1bmN0aW9uIHdHKHQpe3JldHVybigpPT50LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpfX07Y2xhc3Mga0d7Y29uc3RydWN0b3IodCxlKXt0aGlzLnNvdXJjZT10LHRoaXMudmFsdWU9ZX19Y29uc3QgU0c9UUkoJEkoS0kodEgoY2xhc3N7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyPWUsdGhpcy5fcGFyZW50Rm9ybT1uLHRoaXMuX3BhcmVudEZvcm1Hcm91cD1vLHRoaXMubmdDb250cm9sPWl9fSkpKSksREc9bmV3IEdhKCJNYXRTZWxlY3RUcmlnZ2VyIik7Y2xhc3MgRUd7fUVHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxFRyl9LEVHLsm1ZGlyPWxvKHt0eXBlOkVHLHNlbGVjdG9yczpbWyJtYXQtc2VsZWN0LXRyaWdnZXIiXV0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpERyx1c2VFeGlzdGluZzpFR31dKV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEVHLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1zZWxlY3QtdHJpZ2dlciIscHJvdmlkZXJzOlt7cHJvdmlkZTpERyx1c2VFeGlzdGluZzpFR31dfV19XSxudWxsLG51bGwpO2NsYXNzIFJHIGV4dGVuZHMgU0d7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1KXt2YXIgZixnLGg7c3VwZXIoaSxvLHIscyxjKSx0aGlzLl92aWV3cG9ydFJ1bGVyPXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9uZ1pvbmU9bix0aGlzLl9kaXI9YSx0aGlzLl9wYXJlbnRGb3JtRmllbGQ9bCx0aGlzLl9saXZlQW5ub3VuY2VyPW0sdGhpcy5fZGVmYXVsdE9wdGlvbnM9dSx0aGlzLl9wYW5lbE9wZW49ITEsdGhpcy5fY29tcGFyZVdpdGg9KHQsZSk9PnQ9PT1lLHRoaXMuX3VpZD0ibWF0LXNlbGVjdC0iK01HKyssdGhpcy5fdHJpZ2dlckFyaWFMYWJlbGxlZEJ5PW51bGwsdGhpcy5fZGVzdHJveT1uZXcgSSx0aGlzLl9vbkNoYW5nZT0oKT0+e30sdGhpcy5fb25Ub3VjaGVkPSgpPT57fSx0aGlzLl92YWx1ZUlkPSJtYXQtc2VsZWN0LXZhbHVlLSIrTUcrKyx0aGlzLl9wYW5lbERvbmVBbmltYXRpbmdTdHJlYW09bmV3IEksdGhpcy5fb3ZlcmxheVBhbmVsQ2xhc3M9KG51bGw9PT0oZj10aGlzLl9kZWZhdWx0T3B0aW9ucyl8fHZvaWQgMD09PWY/dm9pZCAwOmYub3ZlcmxheVBhbmVsQ2xhc3MpfHwiIix0aGlzLl9mb2N1c2VkPSExLHRoaXMuY29udHJvbFR5cGU9Im1hdC1zZWxlY3QiLHRoaXMuX3JlcXVpcmVkPSExLHRoaXMuX211bHRpcGxlPSExLHRoaXMuX2Rpc2FibGVPcHRpb25DZW50ZXJpbmc9bnVsbCE9PShoPW51bGw9PT0oZz10aGlzLl9kZWZhdWx0T3B0aW9ucyl8fHZvaWQgMD09PWc/dm9pZCAwOmcuZGlzYWJsZU9wdGlvbkNlbnRlcmluZykmJnZvaWQgMCE9PWgmJmgsdGhpcy5hcmlhTGFiZWw9IiIsdGhpcy5vcHRpb25TZWxlY3Rpb25DaGFuZ2VzPVF0KCgoKT0+e2NvbnN0IHQ9dGhpcy5vcHRpb25zO3JldHVybiB0P3QuY2hhbmdlcy5waXBlKE5lKHQpLHplKCgoKT0+cmUoLi4udC5tYXAoKHQ9PnQub25TZWxlY3Rpb25DaGFuZ2UpKSkpKSk6dGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoYmUoMSksemUoKCgpPT50aGlzLm9wdGlvblNlbGVjdGlvbkNoYW5nZXMpKSl9KSksdGhpcy5vcGVuZWRDaGFuZ2U9bmV3IExoLHRoaXMuX29wZW5lZFN0cmVhbT10aGlzLm9wZW5lZENoYW5nZS5waXBlKGNlKCh0PT50KSksSXQoKCgpPT57fSkpKSx0aGlzLl9jbG9zZWRTdHJlYW09dGhpcy5vcGVuZWRDaGFuZ2UucGlwZShjZSgodD0+IXQpKSxJdCgoKCk9Pnt9KSkpLHRoaXMuc2VsZWN0aW9uQ2hhbmdlPW5ldyBMaCx0aGlzLnZhbHVlQ2hhbmdlPW5ldyBMaCx0aGlzLm5nQ29udHJvbCYmKHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3I9dGhpcyksbnVsbCE9KG51bGw9PXU/dm9pZCAwOnUudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCkmJih0aGlzLl90eXBlYWhlYWREZWJvdW5jZUludGVydmFsPXUudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3lGYWN0b3J5PXAsdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9dGhpcy5fc2Nyb2xsU3RyYXRlZ3lGYWN0b3J5KCksdGhpcy50YWJJbmRleD1wYXJzZUludChkKXx8MCx0aGlzLmlkPXRoaXMuaWR9Z2V0IGZvY3VzZWQoKXtyZXR1cm4gdGhpcy5fZm9jdXNlZHx8dGhpcy5fcGFuZWxPcGVufWdldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLl9wbGFjZWhvbGRlcn1zZXQgcGxhY2Vob2xkZXIodCl7dGhpcy5fcGxhY2Vob2xkZXI9dCx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuX3JlcXVpcmVkfXNldCByZXF1aXJlZCh0KXt0aGlzLl9yZXF1aXJlZD15eih0KSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuX211bHRpcGxlfXNldCBtdWx0aXBsZSh0KXtpZih0aGlzLl9zZWxlY3Rpb25Nb2RlbCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KdGhyb3coZnVuY3Rpb24gZSgpe3JldHVybiBFcnJvcigiQ2Fubm90IGNoYW5nZSBgbXVsdGlwbGVgIG1vZGUgb2Ygc2VsZWN0IGFmdGVyIGluaXRpYWxpemF0aW9uLiIpfSkoKTt0aGlzLl9tdWx0aXBsZT15eih0KX1nZXQgZGlzYWJsZU9wdGlvbkNlbnRlcmluZygpe3JldHVybiB0aGlzLl9kaXNhYmxlT3B0aW9uQ2VudGVyaW5nfXNldCBkaXNhYmxlT3B0aW9uQ2VudGVyaW5nKHQpe3RoaXMuX2Rpc2FibGVPcHRpb25DZW50ZXJpbmc9eXoodCl9Z2V0IGNvbXBhcmVXaXRoKCl7cmV0dXJuIHRoaXMuX2NvbXBhcmVXaXRofXNldCBjb21wYXJlV2l0aCh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIGUoKXtyZXR1cm4gRXJyb3IoImBjb21wYXJlV2l0aGAgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpfSkoKTt0aGlzLl9jb21wYXJlV2l0aD10LHRoaXMuX3NlbGVjdGlvbk1vZGVsJiZ0aGlzLl9pbml0aWFsaXplU2VsZWN0aW9uKCl9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfXNldCB2YWx1ZSh0KXsodCE9PXRoaXMuX3ZhbHVlfHx0aGlzLl9tdWx0aXBsZSYmQXJyYXkuaXNBcnJheSh0KSkmJih0aGlzLm9wdGlvbnMmJnRoaXMuX3NldFNlbGVjdGlvbkJ5VmFsdWUodCksdGhpcy5fdmFsdWU9dCl9Z2V0IHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwoKXtyZXR1cm4gdGhpcy5fdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbH1zZXQgdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCh0KXt0aGlzLl90eXBlYWhlYWREZWJvdW5jZUludGVydmFsPV96KHQpfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZH1zZXQgaWQodCl7dGhpcy5faWQ9dHx8dGhpcy5fdWlkLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1uZ09uSW5pdCgpe3RoaXMuX3NlbGVjdGlvbk1vZGVsPW5ldyBvRih0aGlzLm11bHRpcGxlKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCksdGhpcy5fcGFuZWxEb25lQW5pbWF0aW5nU3RyZWFtLnBpcGUoTWUoKSxJZSh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgoKT0+dGhpcy5fcGFuZWxEb25lQW5pbWF0aW5nKHRoaXMucGFuZWxPcGVuKSkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2luaXRLZXlNYW5hZ2VyKCksdGhpcy5fc2VsZWN0aW9uTW9kZWwuY2hhbmdlZC5waXBlKEllKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKHQ9Pnt0LmFkZGVkLmZvckVhY2goKHQ9PnQuc2VsZWN0KCkpKSx0LnJlbW92ZWQuZm9yRWFjaCgodD0+dC5kZXNlbGVjdCgpKSl9KSksdGhpcy5vcHRpb25zLmNoYW5nZXMucGlwZShOZShudWxsKSxJZSh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3Jlc2V0T3B0aW9ucygpLHRoaXMuX2luaXRpYWxpemVTZWxlY3Rpb24oKX0pKX1uZ0RvQ2hlY2soKXtjb25zdCB0PXRoaXMuX2dldFRyaWdnZXJBcmlhTGFiZWxsZWRieSgpO2lmKHQhPT10aGlzLl90cmlnZ2VyQXJpYUxhYmVsbGVkQnkpe2NvbnN0IGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O3RoaXMuX3RyaWdnZXJBcmlhTGFiZWxsZWRCeT10LHQ/ZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsdCk6ZS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIpfXRoaXMubmdDb250cm9sJiZ0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKX1uZ09uQ2hhbmdlcyh0KXt0LmRpc2FibGVkJiZ0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCksdC50eXBlYWhlYWREZWJvdW5jZUludGVydmFsJiZ0aGlzLl9rZXlNYW5hZ2VyJiZ0aGlzLl9rZXlNYW5hZ2VyLndpdGhUeXBlQWhlYWQodGhpcy5fdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95Lm5leHQoKSx0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCksdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKX10b2dnbGUoKXt0aGlzLnBhbmVsT3Blbj90aGlzLmNsb3NlKCk6dGhpcy5vcGVuKCl9b3Blbigpe3RoaXMuX2Nhbk9wZW4oKSYmKHRoaXMuX3BhbmVsT3Blbj0hMCx0aGlzLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24obnVsbCksdGhpcy5faGlnaGxpZ2h0Q29ycmVjdE9wdGlvbigpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1jbG9zZSgpe3RoaXMuX3BhbmVsT3BlbiYmKHRoaXMuX3BhbmVsT3Blbj0hMSx0aGlzLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5faXNSdGwoKT8icnRsIjoibHRyIiksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5fb25Ub3VjaGVkKCkpfXdyaXRlVmFsdWUodCl7dGhpcy52YWx1ZT10fXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLl9vblRvdWNoZWQ9dH1zZXREaXNhYmxlZFN0YXRlKHQpe3RoaXMuZGlzYWJsZWQ9dCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9Z2V0IHBhbmVsT3Blbigpe3JldHVybiB0aGlzLl9wYW5lbE9wZW59Z2V0IHNlbGVjdGVkKCl7cmV0dXJuIHRoaXMubXVsdGlwbGU/dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQ6dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRbMF19Z2V0IHRyaWdnZXJWYWx1ZSgpe2lmKHRoaXMuZW1wdHkpcmV0dXJuIiI7aWYodGhpcy5fbXVsdGlwbGUpe2NvbnN0IHQ9dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubWFwKCh0PT50LnZpZXdWYWx1ZSkpO3JldHVybiB0aGlzLl9pc1J0bCgpJiZ0LnJldmVyc2UoKSx0LmpvaW4oIiwgIil9cmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkWzBdLnZpZXdWYWx1ZX1faXNSdGwoKXtyZXR1cm4hIXRoaXMuX2RpciYmInJ0bCI9PT10aGlzLl9kaXIudmFsdWV9X2hhbmRsZUtleWRvd24odCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMucGFuZWxPcGVuP3RoaXMuX2hhbmRsZU9wZW5LZXlkb3duKHQpOnRoaXMuX2hhbmRsZUNsb3NlZEtleWRvd24odCkpfV9oYW5kbGVDbG9zZWRLZXlkb3duKHQpe2NvbnN0IGU9dC5rZXlDb2RlLG49ZT09PWh6fHxlPT09Z3p8fDM3PT09ZXx8Mzk9PT1lLG89ZT09PW16fHxlPT09ZnosaT10aGlzLl9rZXlNYW5hZ2VyO2lmKCFpLmlzVHlwaW5nKCkmJm8mJiFieih0KXx8KHRoaXMubXVsdGlwbGV8fHQuYWx0S2V5KSYmbil0LnByZXZlbnREZWZhdWx0KCksdGhpcy5vcGVuKCk7ZWxzZSBpZighdGhpcy5tdWx0aXBsZSl7Y29uc3QgZT10aGlzLnNlbGVjdGVkO2kub25LZXlkb3duKHQpO2NvbnN0IG49dGhpcy5zZWxlY3RlZDtuJiZlIT09biYmdGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZShuLnZpZXdWYWx1ZSwxZTQpfX1faGFuZGxlT3BlbktleWRvd24odCl7Y29uc3QgZT10aGlzLl9rZXlNYW5hZ2VyLG49dC5rZXlDb2RlLG89bj09PWh6fHxuPT09Z3osaT1lLmlzVHlwaW5nKCk7aWYobyYmdC5hbHRLZXkpdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xvc2UoKTtlbHNlIGlmKGl8fG4hPT1teiYmbiE9PWZ6fHwhZS5hY3RpdmVJdGVtfHxieih0KSlpZighaSYmdGhpcy5fbXVsdGlwbGUmJjY1PT09biYmdC5jdHJsS2V5KXt0LnByZXZlbnREZWZhdWx0KCk7Y29uc3QgZT10aGlzLm9wdGlvbnMuc29tZSgodD0+IXQuZGlzYWJsZWQmJiF0LnNlbGVjdGVkKSk7dGhpcy5vcHRpb25zLmZvckVhY2goKHQ9Pnt0LmRpc2FibGVkfHwoZT90LnNlbGVjdCgpOnQuZGVzZWxlY3QoKSl9KSl9ZWxzZXtjb25zdCBuPWUuYWN0aXZlSXRlbUluZGV4O2Uub25LZXlkb3duKHQpLHRoaXMuX211bHRpcGxlJiZvJiZ0LnNoaWZ0S2V5JiZlLmFjdGl2ZUl0ZW0mJmUuYWN0aXZlSXRlbUluZGV4IT09biYmZS5hY3RpdmVJdGVtLl9zZWxlY3RWaWFJbnRlcmFjdGlvbigpfWVsc2UgdC5wcmV2ZW50RGVmYXVsdCgpLGUuYWN0aXZlSXRlbS5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKX1fb25Gb2N1cygpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLl9mb2N1c2VkPSEwLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9X29uQmx1cigpe3RoaXMuX2ZvY3VzZWQ9ITEsdGhpcy5kaXNhYmxlZHx8dGhpcy5wYW5lbE9wZW58fCh0aGlzLl9vblRvdWNoZWQoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpfV9vbkF0dGFjaGVkKCl7dGhpcy5fb3ZlcmxheURpci5wb3NpdGlvbkNoYW5nZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuX3Bvc2l0aW9uaW5nU2V0dGxlZCgpfSkpfV9nZXRQYW5lbFRoZW1lKCl7cmV0dXJuIHRoaXMuX3BhcmVudEZvcm1GaWVsZD9gbWF0LSR7dGhpcy5fcGFyZW50Rm9ybUZpZWxkLmNvbG9yfWA6IiJ9Z2V0IGVtcHR5KCl7cmV0dXJuIXRoaXMuX3NlbGVjdGlvbk1vZGVsfHx0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCl9X2luaXRpYWxpemVTZWxlY3Rpb24oKXtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX3NldFNlbGVjdGlvbkJ5VmFsdWUodGhpcy5uZ0NvbnRyb2w/dGhpcy5uZ0NvbnRyb2wudmFsdWU6dGhpcy5fdmFsdWUpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pKX1fc2V0U2VsZWN0aW9uQnlWYWx1ZSh0KXtpZih0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5mb3JFYWNoKCh0PT50LnNldEluYWN0aXZlU3R5bGVzKCkpKSx0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpLHRoaXMubXVsdGlwbGUmJnQpe2lmKCFBcnJheS5pc0FycmF5KHQpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gZSgpe3JldHVybiBFcnJvcigiVmFsdWUgbXVzdCBiZSBhbiBhcnJheSBpbiBtdWx0aXBsZS1zZWxlY3Rpb24gbW9kZS4iKX0pKCk7dC5mb3JFYWNoKCh0PT50aGlzLl9zZWxlY3RWYWx1ZSh0KSkpLHRoaXMuX3NvcnRWYWx1ZXMoKX1lbHNle2NvbnN0IGU9dGhpcy5fc2VsZWN0VmFsdWUodCk7ZT90aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oZSk6dGhpcy5wYW5lbE9wZW58fHRoaXMuX2tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbSgtMSl9dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X3NlbGVjdFZhbHVlKHQpe2NvbnN0IGU9dGhpcy5vcHRpb25zLmZpbmQoKGU9PntpZih0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKGUpKXJldHVybiExO3RyeXtyZXR1cm4gbnVsbCE9ZS52YWx1ZSYmdGhpcy5fY29tcGFyZVdpdGgoZS52YWx1ZSx0KX1jYXRjaCh0KXtyZXR1cm4oInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmNvbnNvbGUud2Fybih0KSwhMX19KSk7cmV0dXJuIGUmJnRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdChlKSxlfV9pbml0S2V5TWFuYWdlcigpe3RoaXMuX2tleU1hbmFnZXI9bmV3IHRJKHRoaXMub3B0aW9ucykud2l0aFR5cGVBaGVhZCh0aGlzLl90eXBlYWhlYWREZWJvdW5jZUludGVydmFsKS53aXRoVmVydGljYWxPcmllbnRhdGlvbigpLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5faXNSdGwoKT8icnRsIjoibHRyIikud2l0aEhvbWVBbmRFbmQoKS53aXRoQWxsb3dlZE1vZGlmaWVyS2V5cyhbInNoaWZ0S2V5Il0pLHRoaXMuX2tleU1hbmFnZXIudGFiT3V0LnBpcGUoSWUodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLnBhbmVsT3BlbiYmKCF0aGlzLm11bHRpcGxlJiZ0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0mJnRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbS5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKSx0aGlzLmZvY3VzKCksdGhpcy5jbG9zZSgpKX0pKSx0aGlzLl9rZXlNYW5hZ2VyLmNoYW5nZS5waXBlKEllKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fcGFuZWxPcGVuJiZ0aGlzLnBhbmVsP3RoaXMuX3Njcm9sbE9wdGlvbkludG9WaWV3KHRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4fHwwKTp0aGlzLl9wYW5lbE9wZW58fHRoaXMubXVsdGlwbGV8fCF0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW18fHRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbS5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKX0pKX1fcmVzZXRPcHRpb25zKCl7Y29uc3QgdD1yZSh0aGlzLm9wdGlvbnMuY2hhbmdlcyx0aGlzLl9kZXN0cm95KTt0aGlzLm9wdGlvblNlbGVjdGlvbkNoYW5nZXMucGlwZShJZSh0KSkuc3Vic2NyaWJlKCh0PT57dGhpcy5fb25TZWxlY3QodC5zb3VyY2UsdC5pc1VzZXJJbnB1dCksdC5pc1VzZXJJbnB1dCYmIXRoaXMubXVsdGlwbGUmJnRoaXMuX3BhbmVsT3BlbiYmKHRoaXMuY2xvc2UoKSx0aGlzLmZvY3VzKCkpfSkpLHJlKC4uLnRoaXMub3B0aW9ucy5tYXAoKHQ9PnQuX3N0YXRlQ2hhbmdlcykpKS5waXBlKEllKHQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfSkpfV9vblNlbGVjdCh0LGUpe2NvbnN0IG49dGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZCh0KTtudWxsIT10LnZhbHVlfHx0aGlzLl9tdWx0aXBsZT8obiE9PXQuc2VsZWN0ZWQmJih0LnNlbGVjdGVkP3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdCh0KTp0aGlzLl9zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdCh0KSksZSYmdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHQpLHRoaXMubXVsdGlwbGUmJih0aGlzLl9zb3J0VmFsdWVzKCksZSYmdGhpcy5mb2N1cygpKSk6KHQuZGVzZWxlY3QoKSx0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpLG51bGwhPXRoaXMudmFsdWUmJnRoaXMuX3Byb3BhZ2F0ZUNoYW5nZXModC52YWx1ZSkpLG4hPT10aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKHQpJiZ0aGlzLl9wcm9wYWdhdGVDaGFuZ2VzKCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfV9zb3J0VmFsdWVzKCl7aWYodGhpcy5tdWx0aXBsZSl7Y29uc3QgdD10aGlzLm9wdGlvbnMudG9BcnJheSgpO3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNvcnQoKChlLG4pPT50aGlzLnNvcnRDb21wYXJhdG9yP3RoaXMuc29ydENvbXBhcmF0b3IoZSxuLHQpOnQuaW5kZXhPZihlKS10LmluZGV4T2YobikpKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9fV9wcm9wYWdhdGVDaGFuZ2VzKHQpe2xldCBlPW51bGw7ZT10aGlzLm11bHRpcGxlP3RoaXMuc2VsZWN0ZWQubWFwKCh0PT50LnZhbHVlKSk6dGhpcy5zZWxlY3RlZD90aGlzLnNlbGVjdGVkLnZhbHVlOnQsdGhpcy5fdmFsdWU9ZSx0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZSksdGhpcy5fb25DaGFuZ2UoZSksdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLl9nZXRDaGFuZ2VFdmVudChlKSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X2hpZ2hsaWdodENvcnJlY3RPcHRpb24oKXt0aGlzLl9rZXlNYW5hZ2VyJiYodGhpcy5lbXB0eT90aGlzLl9rZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpOnRoaXMuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSh0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXSkpfV9jYW5PcGVuKCl7dmFyIHQ7cmV0dXJuIXRoaXMuX3BhbmVsT3BlbiYmIXRoaXMuZGlzYWJsZWQmJihudWxsPT09KHQ9dGhpcy5vcHRpb25zKXx8dm9pZCAwPT09dD92b2lkIDA6dC5sZW5ndGgpPjB9Zm9jdXModCl7dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKHQpfV9nZXRQYW5lbEFyaWFMYWJlbGxlZGJ5KCl7dmFyIHQ7aWYodGhpcy5hcmlhTGFiZWwpcmV0dXJuIG51bGw7Y29uc3QgZT1udWxsPT09KHQ9dGhpcy5fcGFyZW50Rm9ybUZpZWxkKXx8dm9pZCAwPT09dD92b2lkIDA6dC5nZXRMYWJlbElkKCk7cmV0dXJuIHRoaXMuYXJpYUxhYmVsbGVkYnk/KGU/ZSsiICI6IiIpK3RoaXMuYXJpYUxhYmVsbGVkYnk6ZX1fZ2V0QXJpYUFjdGl2ZURlc2NlbmRhbnQoKXtyZXR1cm4gdGhpcy5wYW5lbE9wZW4mJnRoaXMuX2tleU1hbmFnZXImJnRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbT90aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uaWQ6bnVsbH1fZ2V0VHJpZ2dlckFyaWFMYWJlbGxlZGJ5KCl7dmFyIHQ7aWYodGhpcy5hcmlhTGFiZWwpcmV0dXJuIG51bGw7Y29uc3QgZT1udWxsPT09KHQ9dGhpcy5fcGFyZW50Rm9ybUZpZWxkKXx8dm9pZCAwPT09dD92b2lkIDA6dC5nZXRMYWJlbElkKCk7bGV0IG49KGU/ZSsiICI6IiIpK3RoaXMuX3ZhbHVlSWQ7cmV0dXJuIHRoaXMuYXJpYUxhYmVsbGVkYnkmJihuKz0iICIrdGhpcy5hcmlhTGFiZWxsZWRieSksbn1fcGFuZWxEb25lQW5pbWF0aW5nKHQpe3RoaXMub3BlbmVkQ2hhbmdlLmVtaXQodCl9c2V0RGVzY3JpYmVkQnlJZHModCl7dGhpcy5fYXJpYURlc2NyaWJlZGJ5PXQuam9pbigiICIpfW9uQ29udGFpbmVyQ2xpY2soKXt0aGlzLmZvY3VzKCksdGhpcy5vcGVuKCl9Z2V0IHNob3VsZExhYmVsRmxvYXQoKXtyZXR1cm4gdGhpcy5fcGFuZWxPcGVufHwhdGhpcy5lbXB0eXx8dGhpcy5fZm9jdXNlZCYmISF0aGlzLl9wbGFjZWhvbGRlcn19UkcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJHKShTbSh1RiksU20oVWcpLFNtKGFfKSxTbShiSCksU20oaGcpLFNtKEhJLDgpLFNtKGlVLDgpLFNtKFBVLDgpLFNtKFJWLDgpLFNtKE1qLDEwKSxOYSgidGFiaW5kZXgiKSxTbSh4RyksU20oT0kpLFNtKE9HLDgpKX0sUkcuybVkaXI9bG8oe3R5cGU6Ukcsdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChtRyw1KSxRaCh1Ryw1KSxRaChnTCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi50cmlnZ2VyPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLnBhbmVsPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9vdmVybGF5RGlyPXQuZmlyc3QpfX0saW5wdXRzOnthcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0saWQ6ImlkIixwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIiLHJlcXVpcmVkOiJyZXF1aXJlZCIsbXVsdGlwbGU6Im11bHRpcGxlIixkaXNhYmxlT3B0aW9uQ2VudGVyaW5nOiJkaXNhYmxlT3B0aW9uQ2VudGVyaW5nIixjb21wYXJlV2l0aDoiY29tcGFyZVdpdGgiLHZhbHVlOiJ2YWx1ZSIsdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbDoidHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCIscGFuZWxDbGFzczoicGFuZWxDbGFzcyIsYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdLGVycm9yU3RhdGVNYXRjaGVyOiJlcnJvclN0YXRlTWF0Y2hlciIsc29ydENvbXBhcmF0b3I6InNvcnRDb21wYXJhdG9yIn0sb3V0cHV0czp7b3BlbmVkQ2hhbmdlOiJvcGVuZWRDaGFuZ2UiLF9vcGVuZWRTdHJlYW06Im9wZW5lZCIsX2Nsb3NlZFN0cmVhbToiY2xvc2VkIixzZWxlY3Rpb25DaGFuZ2U6InNlbGVjdGlvbkNoYW5nZSIsdmFsdWVDaGFuZ2U6InZhbHVlQ2hhbmdlIn0sZmVhdHVyZXM6W3hwLEJvXX0pLFJHLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dUZ9LHt0eXBlOlVnfSx7dHlwZTphX30se3R5cGU6Ykh9LHt0eXBlOmhnfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTppVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpQVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpBVixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUlZdfV19LHt0eXBlOk1qLGRlY29yYXRvcnM6W3t0eXBlOkRyfSx7dHlwZTpTcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3hHXX1dfSx7dHlwZTpPSX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltPR119XX1dLFJHLnByb3BEZWNvcmF0b3JzPXt0cmlnZ2VyOlt7dHlwZTpaYSxhcmdzOlsidHJpZ2dlciJdfV0scGFuZWw6W3t0eXBlOlphLGFyZ3M6WyJwYW5lbCJdfV0sX292ZXJsYXlEaXI6W3t0eXBlOlphLGFyZ3M6W2dMXX1dLHBhbmVsQ2xhc3M6W3t0eXBlOnh5fV0scGxhY2Vob2xkZXI6W3t0eXBlOnh5fV0scmVxdWlyZWQ6W3t0eXBlOnh5fV0sbXVsdGlwbGU6W3t0eXBlOnh5fV0sZGlzYWJsZU9wdGlvbkNlbnRlcmluZzpbe3R5cGU6eHl9XSxjb21wYXJlV2l0aDpbe3R5cGU6eHl9XSx2YWx1ZTpbe3R5cGU6eHl9XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0sZXJyb3JTdGF0ZU1hdGNoZXI6W3t0eXBlOnh5fV0sdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbDpbe3R5cGU6eHl9XSxzb3J0Q29tcGFyYXRvcjpbe3R5cGU6eHl9XSxpZDpbe3R5cGU6eHl9XSxvcGVuZWRDaGFuZ2U6W3t0eXBlOk95fV0sX29wZW5lZFN0cmVhbTpbe3R5cGU6T3ksYXJnczpbIm9wZW5lZCJdfV0sX2Nsb3NlZFN0cmVhbTpbe3R5cGU6T3ksYXJnczpbImNsb3NlZCJdfV0sc2VsZWN0aW9uQ2hhbmdlOlt7dHlwZTpPeX1dLHZhbHVlQ2hhbmdlOlt7dHlwZTpPeX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFJHLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp1Rn0se3R5cGU6VWd9LHt0eXBlOmFffSx7dHlwZTpiSH0se3R5cGU6aGd9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOmlVLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlBVLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOkFWLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltSVl19XX0se3R5cGU6TWosZGVjb3JhdG9yczpbe3R5cGU6RHJ9LHt0eXBlOlNyfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpqYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbeEddfV19LHt0eXBlOk9JfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W09HXX1dfV19KSx7YXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sb3BlbmVkQ2hhbmdlOlt7dHlwZTpPeX1dLF9vcGVuZWRTdHJlYW06W3t0eXBlOk95LGFyZ3M6WyJvcGVuZWQiXX1dLF9jbG9zZWRTdHJlYW06W3t0eXBlOk95LGFyZ3M6WyJjbG9zZWQiXX1dLHNlbGVjdGlvbkNoYW5nZTpbe3R5cGU6T3l9XSx2YWx1ZUNoYW5nZTpbe3R5cGU6T3l9XSxpZDpbe3R5cGU6eHl9XSxwbGFjZWhvbGRlcjpbe3R5cGU6eHl9XSxyZXF1aXJlZDpbe3R5cGU6eHl9XSxtdWx0aXBsZTpbe3R5cGU6eHl9XSxkaXNhYmxlT3B0aW9uQ2VudGVyaW5nOlt7dHlwZTp4eX1dLGNvbXBhcmVXaXRoOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWw6W3t0eXBlOnh5fV0sdHJpZ2dlcjpbe3R5cGU6WmEsYXJnczpbInRyaWdnZXIiXX1dLHBhbmVsOlt7dHlwZTpaYSxhcmdzOlsicGFuZWwiXX1dLF9vdmVybGF5RGlyOlt7dHlwZTpaYSxhcmdzOltnTF19XSxwYW5lbENsYXNzOlt7dHlwZTp4eX1dLGFyaWFMYWJlbGxlZGJ5Olt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbGxlZGJ5Il19XSxlcnJvclN0YXRlTWF0Y2hlcjpbe3R5cGU6eHl9XSxzb3J0Q29tcGFyYXRvcjpbe3R5cGU6eHl9XX0pO2NsYXNzIEFHIGV4dGVuZHMgUkd7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3Njcm9sbFRvcD0wLHRoaXMuX3RyaWdnZXJGb250U2l6ZT0wLHRoaXMuX3RyYW5zZm9ybU9yaWdpbj0idG9wIix0aGlzLl9vZmZzZXRZPTAsdGhpcy5fcG9zaXRpb25zPVt7b3JpZ2luWDoic3RhcnQiLG9yaWdpblk6InRvcCIsb3ZlcmxheVg6InN0YXJ0IixvdmVybGF5WToidG9wIn0se29yaWdpblg6InN0YXJ0IixvcmlnaW5ZOiJib3R0b20iLG92ZXJsYXlYOiJzdGFydCIsb3ZlcmxheVk6ImJvdHRvbSJ9XX1fY2FsY3VsYXRlT3ZlcmxheVNjcm9sbCh0LGUsbil7Y29uc3Qgbz10aGlzLl9nZXRJdGVtSGVpZ2h0KCk7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KDAsbyp0LWUrby8yKSxuKX1uZ09uSW5pdCgpe3N1cGVyLm5nT25Jbml0KCksdGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoKS5waXBlKEllKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5wYW5lbE9wZW4mJih0aGlzLl90cmlnZ2VyUmVjdD10aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9KSl9b3Blbigpe3N1cGVyLl9jYW5PcGVuKCkmJihzdXBlci5vcGVuKCksdGhpcy5fdHJpZ2dlclJlY3Q9dGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5fdHJpZ2dlckZvbnRTaXplPXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQpLmZvbnRTaXplfHwiMCIpLHRoaXMuX2NhbGN1bGF0ZU92ZXJsYXlQb3NpdGlvbigpLHRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fdHJpZ2dlckZvbnRTaXplJiZ0aGlzLl9vdmVybGF5RGlyLm92ZXJsYXlSZWYmJnRoaXMuX292ZXJsYXlEaXIub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudCYmKHRoaXMuX292ZXJsYXlEaXIub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5zdHlsZS5mb250U2l6ZT1gJHt0aGlzLl90cmlnZ2VyRm9udFNpemV9cHhgKX0pKSl9X3Njcm9sbE9wdGlvbkludG9WaWV3KHQpe2NvbnN0IGU9VkgodCx0aGlzLm9wdGlvbnMsdGhpcy5vcHRpb25Hcm91cHMpLG49dGhpcy5fZ2V0SXRlbUhlaWdodCgpO3RoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A9MD09PXQmJjE9PT1lPzA6akgoKHQrZSkqbixuLHRoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AsdkcpfV9wb3NpdGlvbmluZ1NldHRsZWQoKXt0aGlzLl9jYWxjdWxhdGVPdmVybGF5T2Zmc2V0WCgpLHRoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A9dGhpcy5fc2Nyb2xsVG9wfV9wYW5lbERvbmVBbmltYXRpbmcodCl7dGhpcy5wYW5lbE9wZW4/dGhpcy5fc2Nyb2xsVG9wPTA6KHRoaXMuX292ZXJsYXlEaXIub2Zmc2V0WD0wLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKSxzdXBlci5fcGFuZWxEb25lQW5pbWF0aW5nKHQpfV9nZXRDaGFuZ2VFdmVudCh0KXtyZXR1cm4gbmV3IGtHKHRoaXMsdCl9X2NhbGN1bGF0ZU92ZXJsYXlPZmZzZXRYKCl7Y29uc3QgdD10aGlzLl9vdmVybGF5RGlyLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZT10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2l6ZSgpLG49dGhpcy5faXNSdGwoKSxvPXRoaXMubXVsdGlwbGU/NTY6MzI7bGV0IGk7aWYodGhpcy5tdWx0aXBsZSlpPTQwO2Vsc2UgaWYodGhpcy5kaXNhYmxlT3B0aW9uQ2VudGVyaW5nKWk9MTY7ZWxzZXtsZXQgdD10aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXXx8dGhpcy5vcHRpb25zLmZpcnN0O2k9dCYmdC5ncm91cD8zMjoxNn1ufHwoaSo9LTEpO2NvbnN0IGE9MC0odC5sZWZ0K2ktKG4/bzowKSkscj10LnJpZ2h0K2ktZS53aWR0aCsobj8wOm8pO2E+MD9pKz1hKzg6cj4wJiYoaS09cis4KSx0aGlzLl9vdmVybGF5RGlyLm9mZnNldFg9TWF0aC5yb3VuZChpKSx0aGlzLl9vdmVybGF5RGlyLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKX1fY2FsY3VsYXRlT3ZlcmxheU9mZnNldFkodCxlLG4pe2NvbnN0IG89dGhpcy5fZ2V0SXRlbUhlaWdodCgpLGk9KG8tdGhpcy5fdHJpZ2dlclJlY3QuaGVpZ2h0KS8yLGE9TWF0aC5mbG9vcih2Ry9vKTtsZXQgcjtyZXR1cm4gdGhpcy5kaXNhYmxlT3B0aW9uQ2VudGVyaW5nPzA6KHI9MD09PXRoaXMuX3Njcm9sbFRvcD90Km86dGhpcy5fc2Nyb2xsVG9wPT09bj8odC0odGhpcy5fZ2V0SXRlbUNvdW50KCktYSkpKm8rKG8tKHRoaXMuX2dldEl0ZW1Db3VudCgpKm8tdkcpJW8pOmUtby8yLE1hdGgucm91bmQoLTEqci1pKSl9X2NoZWNrT3ZlcmxheVdpdGhpblZpZXdwb3J0KHQpe2NvbnN0IGU9dGhpcy5fZ2V0SXRlbUhlaWdodCgpLG49dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNpemUoKSxvPXRoaXMuX3RyaWdnZXJSZWN0LnRvcC04LGk9bi5oZWlnaHQtdGhpcy5fdHJpZ2dlclJlY3QuYm90dG9tLTgsYT1NYXRoLmFicyh0aGlzLl9vZmZzZXRZKSxyPU1hdGgubWluKHRoaXMuX2dldEl0ZW1Db3VudCgpKmUsdkcpLWEtdGhpcy5fdHJpZ2dlclJlY3QuaGVpZ2h0O3I+aT90aGlzLl9hZGp1c3RQYW5lbFVwKHIsaSk6YT5vP3RoaXMuX2FkanVzdFBhbmVsRG93bihhLG8sdCk6dGhpcy5fdHJhbnNmb3JtT3JpZ2luPXRoaXMuX2dldE9yaWdpbkJhc2VkT25PcHRpb24oKX1fYWRqdXN0UGFuZWxVcCh0LGUpe2NvbnN0IG49TWF0aC5yb3VuZCh0LWUpO3RoaXMuX3Njcm9sbFRvcC09bix0aGlzLl9vZmZzZXRZLT1uLHRoaXMuX3RyYW5zZm9ybU9yaWdpbj10aGlzLl9nZXRPcmlnaW5CYXNlZE9uT3B0aW9uKCksdGhpcy5fc2Nyb2xsVG9wPD0wJiYodGhpcy5fc2Nyb2xsVG9wPTAsdGhpcy5fb2Zmc2V0WT0wLHRoaXMuX3RyYW5zZm9ybU9yaWdpbj0iNTAlIGJvdHRvbSAwcHgiKX1fYWRqdXN0UGFuZWxEb3duKHQsZSxuKXtjb25zdCBvPU1hdGgucm91bmQodC1lKTtpZih0aGlzLl9zY3JvbGxUb3ArPW8sdGhpcy5fb2Zmc2V0WSs9byx0aGlzLl90cmFuc2Zvcm1PcmlnaW49dGhpcy5fZ2V0T3JpZ2luQmFzZWRPbk9wdGlvbigpLHRoaXMuX3Njcm9sbFRvcD49bilyZXR1cm4gdGhpcy5fc2Nyb2xsVG9wPW4sdGhpcy5fb2Zmc2V0WT0wLHZvaWQodGhpcy5fdHJhbnNmb3JtT3JpZ2luPSI1MCUgdG9wIDBweCIpfV9jYWxjdWxhdGVPdmVybGF5UG9zaXRpb24oKXtjb25zdCB0PXRoaXMuX2dldEl0ZW1IZWlnaHQoKSxlPXRoaXMuX2dldEl0ZW1Db3VudCgpLG49TWF0aC5taW4oZSp0LHZHKSxvPWUqdC1uO2xldCBpO2k9dGhpcy5lbXB0eT8wOk1hdGgubWF4KHRoaXMub3B0aW9ucy50b0FycmF5KCkuaW5kZXhPZih0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXSksMCksaSs9VkgoaSx0aGlzLm9wdGlvbnMsdGhpcy5vcHRpb25Hcm91cHMpO2NvbnN0IGE9bi8yO3RoaXMuX3Njcm9sbFRvcD10aGlzLl9jYWxjdWxhdGVPdmVybGF5U2Nyb2xsKGksYSxvKSx0aGlzLl9vZmZzZXRZPXRoaXMuX2NhbGN1bGF0ZU92ZXJsYXlPZmZzZXRZKGksYSxvKSx0aGlzLl9jaGVja092ZXJsYXlXaXRoaW5WaWV3cG9ydChvKX1fZ2V0T3JpZ2luQmFzZWRPbk9wdGlvbigpe2NvbnN0IHQ9dGhpcy5fZ2V0SXRlbUhlaWdodCgpLGU9KHQtdGhpcy5fdHJpZ2dlclJlY3QuaGVpZ2h0KS8yO3JldHVybmA1MCUgJHtNYXRoLmFicyh0aGlzLl9vZmZzZXRZKS1lK3QvMn1weCAwcHhgfV9nZXRJdGVtSGVpZ2h0KCl7cmV0dXJuIDMqdGhpcy5fdHJpZ2dlckZvbnRTaXplfV9nZXRJdGVtQ291bnQoKXtyZXR1cm4gdGhpcy5vcHRpb25zLmxlbmd0aCt0aGlzLm9wdGlvbkdyb3Vwcy5sZW5ndGh9fUFHLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShBRykpKShufHxBRyl9fSkoKSxBRy7JtWNtcD10byh7dHlwZTpBRyxzZWxlY3RvcnM6W1sibWF0LXNlbGVjdCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJigkaChvLERHLDUpLCRoKG8sQkgsNSksJGgobyx6SCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5jdXN0b21UcmlnZ2VyPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLm9wdGlvbnM9dCksSmgodD10YigpKSYmKG4ub3B0aW9uR3JvdXBzPXQpfX0saG9zdEF0dHJzOlsicm9sZSIsImNvbWJvYm94IiwiYXJpYS1hdXRvY29tcGxldGUiLCJub25lIiwiYXJpYS1oYXNwb3B1cCIsInRydWUiLDEsIm1hdC1zZWxlY3QiXSxob3N0VmFyczoyMCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVLZXlkb3duKGUpfSkpKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25Gb2N1cygpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbkJsdXIoKX0pKSwyJmUmJihqcCgiaWQiLG4uaWQpKCJ0YWJpbmRleCIsbi50YWJJbmRleCkoImFyaWEtY29udHJvbHMiLG4ucGFuZWxPcGVuP24uaWQrIi1wYW5lbCI6bnVsbCkoImFyaWEtZXhwYW5kZWQiLG4ucGFuZWxPcGVuKSgiYXJpYS1sYWJlbCIsbi5hcmlhTGFiZWx8fG51bGwpKCJhcmlhLXJlcXVpcmVkIixuLnJlcXVpcmVkLnRvU3RyaW5nKCkpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkLnRvU3RyaW5nKCkpKCJhcmlhLWludmFsaWQiLG4uZXJyb3JTdGF0ZSkoImFyaWEtZGVzY3JpYmVkYnkiLG4uX2FyaWFEZXNjcmliZWRieXx8bnVsbCkoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsbi5fZ2V0QXJpYUFjdGl2ZURlc2NlbmRhbnQoKSkscHUoIm1hdC1zZWxlY3QtZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJtYXQtc2VsZWN0LWludmFsaWQiLG4uZXJyb3JTdGF0ZSkoIm1hdC1zZWxlY3QtcmVxdWlyZWQiLG4ucmVxdWlyZWQpKCJtYXQtc2VsZWN0LWVtcHR5IixuLmVtcHR5KSgibWF0LXNlbGVjdC1tdWx0aXBsZSIsbi5tdWx0aXBsZSkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsdGFiSW5kZXg6InRhYkluZGV4In0sZXhwb3J0QXM6WyJtYXRTZWxlY3QiXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOmJWLHVzZUV4aXN0aW5nOkFHfSx7cHJvdmlkZTpSSCx1c2VFeGlzdGluZzpBR31dKSx4cF0sbmdDb250ZW50U2VsZWN0b3JzOlsibWF0LXNlbGVjdC10cmlnZ2VyIiwiKiJdLGRlY2xzOjksdmFyczoxMixjb25zdHM6W1siY2RrLW92ZXJsYXktb3JpZ2luIiwiIiwxLCJtYXQtc2VsZWN0LXRyaWdnZXIiLDMsImNsaWNrIl0sWyJvcmlnaW4iLCJjZGtPdmVybGF5T3JpZ2luIiwidHJpZ2dlciIsIiJdLFsxLCJtYXQtc2VsZWN0LXZhbHVlIiwzLCJuZ1N3aXRjaCJdLFsiY2xhc3MiLCJtYXQtc2VsZWN0LXBsYWNlaG9sZGVyIG1hdC1zZWxlY3QtbWluLWxpbmUiLDQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJtYXQtc2VsZWN0LXZhbHVlLXRleHQiLDMsIm5nU3dpdGNoIiw0LCJuZ1N3aXRjaENhc2UiXSxbMSwibWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIl0sWzEsIm1hdC1zZWxlY3QtYXJyb3ciXSxbImNkay1jb25uZWN0ZWQtb3ZlcmxheSIsIiIsImNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb24iLCIiLCJjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3AiLCIiLCJjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcyIsImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIiwzLCJjZGtDb25uZWN0ZWRPdmVybGF5UGFuZWxDbGFzcyIsImNka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneSIsImNka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW4iLCJjZGtDb25uZWN0ZWRPdmVybGF5T3BlbiIsImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiLCJjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGgiLCJjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WSIsImJhY2tkcm9wQ2xpY2siLCJhdHRhY2giLCJkZXRhY2giXSxbMSwibWF0LXNlbGVjdC1wbGFjZWhvbGRlciIsIm1hdC1zZWxlY3QtbWluLWxpbmUiXSxbMSwibWF0LXNlbGVjdC12YWx1ZS10ZXh0IiwzLCJuZ1N3aXRjaCJdLFsiY2xhc3MiLCJtYXQtc2VsZWN0LW1pbi1saW5lIiw0LCJuZ1N3aXRjaERlZmF1bHQiXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzEsIm1hdC1zZWxlY3QtbWluLWxpbmUiXSxbMSwibWF0LXNlbGVjdC1wYW5lbC13cmFwIl0sWyJyb2xlIiwibGlzdGJveCIsInRhYmluZGV4IiwiLTEiLDMsIm5nQ2xhc3MiLCJrZXlkb3duIl0sWyJwYW5lbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoWm0oX0cpLFJtKDAsImRpdiIsMCwxKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4udG9nZ2xlKCl9KSksUm0oMywiZGl2IiwyKSxRcCg0LGZHLDIsMSwic3BhbiIsMyksUXAoNSxiRywzLDIsInNwYW4iLDQpLEFtKCksUm0oNiwiZGl2Iiw1KSxUbSg3LCJkaXYiLDYpLEFtKCksQW0oKSxRcCg4LHlHLDQsMTQsIm5nLXRlbXBsYXRlIiw3KSxWbSgiYmFja2Ryb3BDbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5jbG9zZSgpfSkpKCJhdHRhY2giLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uQXR0YWNoZWQoKX0pKSgiZGV0YWNoIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmNsb3NlKCl9KSkpLDImZSl7Y29uc3QgdD0kcCgxKTtqcCgiYXJpYS1vd25zIixuLnBhbmVsT3Blbj9uLmlkKyItcGFuZWwiOm51bGwpLHJjKDMpLERtKCJuZ1N3aXRjaCIsbi5lbXB0eSksanAoImlkIixuLl92YWx1ZUlkKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIiwhMCkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsITEpLHJjKDMpLERtKCJjZGtDb25uZWN0ZWRPdmVybGF5UGFuZWxDbGFzcyIsbi5fb3ZlcmxheVBhbmVsQ2xhc3MpKCJjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3kiLG4uX3Njcm9sbFN0cmF0ZWd5KSgiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiIsdCkoImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIixuLnBhbmVsT3BlbikoImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiLG4uX3Bvc2l0aW9ucykoImNka0Nvbm5lY3RlZE92ZXJsYXlNaW5XaWR0aCIsbnVsbD09bi5fdHJpZ2dlclJlY3Q/bnVsbDpuLl90cmlnZ2VyUmVjdC53aWR0aCkoImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRZIixuLl9vZmZzZXRZKX19LGRpcmVjdGl2ZXM6W2ZMLGZNLGdNLGdMLGhNLGFNXSxzdHlsZXM6WycubWF0LXNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlO291dGxpbmU6bm9uZX0ubWF0LXNlbGVjdC10cmlnZ2Vye2Rpc3BsYXk6aW5saW5lLXRhYmxlO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC10cmlnZ2Vyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LXNlbGVjdC12YWx1ZXtkaXNwbGF5OnRhYmxlLWNlbGw7bWF4LXdpZHRoOjA7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1hdC1zZWxlY3QtdmFsdWUtdGV4dHt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTI1JSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsIC5tYXQtc2VsZWN0Om5vdCgubWF0LXNlbGVjdC1lbXB0eSkgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWVtcHR5IC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1lbXB0eSAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVye3RyYW5zaXRpb246bm9uZX0ubWF0LXNlbGVjdC1hcnJvd3t3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NXB4IHNvbGlkO21hcmdpbjowIDRweH0ubWF0LXNlbGVjdC1wYW5lbC13cmFwe2ZsZXgtYmFzaXM6MTAwJX0ubWF0LXNlbGVjdC1wYW5lbHttaW4td2lkdGg6MTEycHg7bWF4LXdpZHRoOjI4MHB4O292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO21heC1oZWlnaHQ6MjU2cHg7bWluLXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czo0cHg7b3V0bGluZTowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zZWxlY3QtcGFuZWx7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRncm91cC1sYWJlbCwubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbntmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDozZW07aGVpZ2h0OjNlbX0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtc2VsZWN0Om5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4e2N1cnNvcjpwb2ludGVyfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3dpZHRoOmNhbGMoMTAwJSAtIDE4cHgpfS5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXJ7dHJhbnNpdGlvbjpub25lfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246bm9uZTtkaXNwbGF5OmJsb2NrfS5tYXQtc2VsZWN0LW1pbi1saW5lOmVtcHR5OjpiZWZvcmV7Y29udGVudDoiICI7d2hpdGUtc3BhY2U6cHJlO3dpZHRoOjFweDtkaXNwbGF5OmlubGluZS1ibG9jaztvcGFjaXR5OjB9XG4nXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltDRy50cmFuc2Zvcm1QYW5lbFdyYXAsQ0cudHJhbnNmb3JtUGFuZWxdfSxjaGFuZ2VEZXRlY3Rpb246MH0pLEFHLnByb3BEZWNvcmF0b3JzPXtvcHRpb25zOlt7dHlwZTpZYSxhcmdzOltCSCx7ZGVzY2VuZGFudHM6ITB9XX1dLG9wdGlvbkdyb3Vwczpbe3R5cGU6WWEsYXJnczpbekgse2Rlc2NlbmRhbnRzOiEwfV19XSxjdXN0b21UcmlnZ2VyOlt7dHlwZTpxYSxhcmdzOltER119XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChBRyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtc2VsZWN0IixleHBvcnRBczoibWF0U2VsZWN0Iix0ZW1wbGF0ZTonXHgzYyEtLVxuIE5vdGUgdGhhdCB0aGUgc2VsZWN0IHRyaWdnZXIgZWxlbWVudCBzcGVjaWZpZXMgYGFyaWEtb3duc2AgcG9pbnRpbmcgdG8gdGhlIGxpc3Rib3ggb3ZlcmxheS5cbiBXaGlsZSBhcmlhLW93bnMgaXMgbm90IHJlcXVpcmVkIGZvciB0aGUgQVJJQSAxLjIgYHJvbGU9ImNvbWJvYm94ImAgaW50ZXJhY3Rpb24gcGF0dGVybixcbiBpdCBmaXhlcyBhbiBpc3N1ZSB3aXRoIFZvaWNlT3ZlciB3aGVuIHRoZSBzZWxlY3QgYXBwZWFycyBpbnNpZGUgb2YgYW4gYGFyaWEtbW9kZWw9InRydWUiYFxuIGVsZW1lbnQgKGUuZy4gYSBkaWFsb2cpLiBXaXRob3V0IHRoaXMgYGFyaWEtb3duc2AsIHRoZSBgYXJpYS1tb2RhbGAgb24gYSBkaWFsb2cgcHJldmVudHNcbiBWb2ljZU92ZXIgZnJvbSAic2VlaW5nIiB0aGUgc2VsZWN0XCdzIGxpc3Rib3ggb3ZlcmxheSBmb3IgYXJpYS1hY3RpdmVkZXNjZW5kYW50LlxuIFVzaW5nIGBhcmlhLW93bnNgIHJlLXBhcmVudHMgdGhlIHNlbGVjdCBvdmVybGF5IHNvIHRoYXQgaXQgd29ya3MgYWdhaW4uXG4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzIwNjk0XG4tLVx4M2VcbjxkaXYgY2RrLW92ZXJsYXktb3JpZ2luXG4gICAgIFthdHRyLmFyaWEtb3duc109InBhbmVsT3BlbiA/IGlkICsgXCctcGFuZWxcJyA6IG51bGwiXG4gICAgIGNsYXNzPSJtYXQtc2VsZWN0LXRyaWdnZXIiXG4gICAgIChjbGljayk9InRvZ2dsZSgpIlxuICAgICAjb3JpZ2luPSJjZGtPdmVybGF5T3JpZ2luIlxuICAgICAjdHJpZ2dlcj5cbiAgPGRpdiBjbGFzcz0ibWF0LXNlbGVjdC12YWx1ZSIgW25nU3dpdGNoXT0iZW1wdHkiIFthdHRyLmlkXT0iX3ZhbHVlSWQiPlxuICAgIDxzcGFuIGNsYXNzPSJtYXQtc2VsZWN0LXBsYWNlaG9sZGVyIG1hdC1zZWxlY3QtbWluLWxpbmUiICpuZ1N3aXRjaENhc2U9InRydWUiPnt7cGxhY2Vob2xkZXJ9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz0ibWF0LXNlbGVjdC12YWx1ZS10ZXh0IiAqbmdTd2l0Y2hDYXNlPSJmYWxzZSIgW25nU3dpdGNoXT0iISFjdXN0b21UcmlnZ2VyIj5cbiAgICAgIDxzcGFuIGNsYXNzPSJtYXQtc2VsZWN0LW1pbi1saW5lIiAqbmdTd2l0Y2hEZWZhdWx0Pnt7dHJpZ2dlclZhbHVlfX08L3NwYW4+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9Im1hdC1zZWxlY3QtdHJpZ2dlciIgKm5nU3dpdGNoQ2FzZT0idHJ1ZSI+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz0ibWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIj48ZGl2IGNsYXNzPSJtYXQtc2VsZWN0LWFycm93Ij48L2Rpdj48L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgY2RrLWNvbm5lY3RlZC1vdmVybGF5XG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb25cbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzPSJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzXT0iX292ZXJsYXlQYW5lbENsYXNzIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVNjcm9sbFN0cmF0ZWd5XT0iX3Njcm9sbFN0cmF0ZWd5IlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09Im9yaWdpbiJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT0icGFuZWxPcGVuIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109Il9wb3NpdGlvbnMiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGhdPSJfdHJpZ2dlclJlY3Q/LndpZHRoISJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRZXT0iX29mZnNldFkiXG4gIChiYWNrZHJvcENsaWNrKT0iY2xvc2UoKSJcbiAgKGF0dGFjaCk9Il9vbkF0dGFjaGVkKCkiXG4gIChkZXRhY2gpPSJjbG9zZSgpIj5cbiAgPGRpdiBjbGFzcz0ibWF0LXNlbGVjdC1wYW5lbC13cmFwIiBbQHRyYW5zZm9ybVBhbmVsV3JhcF0+XG4gICAgPGRpdlxuICAgICAgI3BhbmVsXG4gICAgICByb2xlPSJsaXN0Ym94IlxuICAgICAgdGFiaW5kZXg9Ii0xIlxuICAgICAgY2xhc3M9Im1hdC1zZWxlY3QtcGFuZWwge3sgX2dldFBhbmVsVGhlbWUoKSB9fSJcbiAgICAgIFthdHRyLmlkXT0iaWQgKyBcJy1wYW5lbFwnIlxuICAgICAgW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdPSJtdWx0aXBsZSJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPSJhcmlhTGFiZWwgfHwgbnVsbCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09Il9nZXRQYW5lbEFyaWFMYWJlbGxlZGJ5KCkiXG4gICAgICBbbmdDbGFzc109InBhbmVsQ2xhc3MiXG4gICAgICBbQHRyYW5zZm9ybVBhbmVsXT0ibXVsdGlwbGUgPyBcJ3Nob3dpbmctbXVsdGlwbGVcJyA6IFwnc2hvd2luZ1wnIlxuICAgICAgKEB0cmFuc2Zvcm1QYW5lbC5kb25lKT0iX3BhbmVsRG9uZUFuaW1hdGluZ1N0cmVhbS5uZXh0KCRldmVudC50b1N0YXRlKSJcbiAgICAgIFtzdHlsZS50cmFuc2Zvcm1PcmlnaW5dPSJfdHJhbnNmb3JtT3JpZ2luIlxuICAgICAgW3N0eWxlLmZvbnQtc2l6ZS5weF09Il90cmlnZ2VyRm9udFNpemUiXG4gICAgICAoa2V5ZG93bik9Il9oYW5kbGVLZXlkb3duKCRldmVudCkiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4nLGlucHV0czpbImRpc2FibGVkIiwiZGlzYWJsZVJpcHBsZSIsInRhYkluZGV4Il0sZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsaG9zdDp7cm9sZToiY29tYm9ib3giLCJhcmlhLWF1dG9jb21wbGV0ZSI6Im5vbmUiLCJhcmlhLWhhc3BvcHVwIjoidHJ1ZSIsY2xhc3M6Im1hdC1zZWxlY3QiLCJbYXR0ci5pZF0iOiJpZCIsIlthdHRyLnRhYmluZGV4XSI6InRhYkluZGV4IiwiW2F0dHIuYXJpYS1jb250cm9sc10iOidwYW5lbE9wZW4gPyBpZCArICItcGFuZWwiIDogbnVsbCcsIlthdHRyLmFyaWEtZXhwYW5kZWRdIjoicGFuZWxPcGVuIiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJhcmlhTGFiZWwgfHwgbnVsbCIsIlthdHRyLmFyaWEtcmVxdWlyZWRdIjoicmVxdWlyZWQudG9TdHJpbmcoKSIsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiZGlzYWJsZWQudG9TdHJpbmcoKSIsIlthdHRyLmFyaWEtaW52YWxpZF0iOiJlcnJvclN0YXRlIiwiW2F0dHIuYXJpYS1kZXNjcmliZWRieV0iOiJfYXJpYURlc2NyaWJlZGJ5IHx8IG51bGwiLCJbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdIjoiX2dldEFyaWFBY3RpdmVEZXNjZW5kYW50KCkiLCJbY2xhc3MubWF0LXNlbGVjdC1kaXNhYmxlZF0iOiJkaXNhYmxlZCIsIltjbGFzcy5tYXQtc2VsZWN0LWludmFsaWRdIjoiZXJyb3JTdGF0ZSIsIltjbGFzcy5tYXQtc2VsZWN0LXJlcXVpcmVkXSI6InJlcXVpcmVkIiwiW2NsYXNzLm1hdC1zZWxlY3QtZW1wdHldIjoiZW1wdHkiLCJbY2xhc3MubWF0LXNlbGVjdC1tdWx0aXBsZV0iOiJtdWx0aXBsZSIsIihrZXlkb3duKSI6Il9oYW5kbGVLZXlkb3duKCRldmVudCkiLCIoZm9jdXMpIjoiX29uRm9jdXMoKSIsIihibHVyKSI6Il9vbkJsdXIoKSJ9LGFuaW1hdGlvbnM6W0NHLnRyYW5zZm9ybVBhbmVsV3JhcCxDRy50cmFuc2Zvcm1QYW5lbF0scHJvdmlkZXJzOlt7cHJvdmlkZTpiVix1c2VFeGlzdGluZzpBR30se3Byb3ZpZGU6UkgsdXNlRXhpc3Rpbmc6QUd9XSxzdHlsZXM6WycubWF0LXNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlO291dGxpbmU6bm9uZX0ubWF0LXNlbGVjdC10cmlnZ2Vye2Rpc3BsYXk6aW5saW5lLXRhYmxlO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC10cmlnZ2Vyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LXNlbGVjdC12YWx1ZXtkaXNwbGF5OnRhYmxlLWNlbGw7bWF4LXdpZHRoOjA7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1hdC1zZWxlY3QtdmFsdWUtdGV4dHt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTI1JSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsIC5tYXQtc2VsZWN0Om5vdCgubWF0LXNlbGVjdC1lbXB0eSkgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWVtcHR5IC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1lbXB0eSAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVye3RyYW5zaXRpb246bm9uZX0ubWF0LXNlbGVjdC1hcnJvd3t3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NXB4IHNvbGlkO21hcmdpbjowIDRweH0ubWF0LXNlbGVjdC1wYW5lbC13cmFwe2ZsZXgtYmFzaXM6MTAwJX0ubWF0LXNlbGVjdC1wYW5lbHttaW4td2lkdGg6MTEycHg7bWF4LXdpZHRoOjI4MHB4O292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO21heC1oZWlnaHQ6MjU2cHg7bWluLXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czo0cHg7b3V0bGluZTowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zZWxlY3QtcGFuZWx7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRncm91cC1sYWJlbCwubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbntmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDozZW07aGVpZ2h0OjNlbX0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtc2VsZWN0Om5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4e2N1cnNvcjpwb2ludGVyfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3dpZHRoOmNhbGMoMTAwJSAtIDE4cHgpfS5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXJ7dHJhbnNpdGlvbjpub25lfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246bm9uZTtkaXNwbGF5OmJsb2NrfS5tYXQtc2VsZWN0LW1pbi1saW5lOmVtcHR5OjpiZWZvcmV7Y29udGVudDoiICI7d2hpdGUtc3BhY2U6cHJlO3dpZHRoOjFweDtkaXNwbGF5OmlubGluZS1ibG9jaztvcGFjaXR5OjB9XG4nXX1dfV0sbnVsbCx7b3B0aW9uczpbe3R5cGU6WWEsYXJnczpbQkgse2Rlc2NlbmRhbnRzOiEwfV19XSxvcHRpb25Hcm91cHM6W3t0eXBlOllhLGFyZ3M6W3pILHtkZXNjZW5kYW50czohMH1dfV0sY3VzdG9tVHJpZ2dlcjpbe3R5cGU6cWEsYXJnczpbREddfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFRHe31mdW5jdGlvbiBORyh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsInNwYW4iLDUpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUobil7aGkodCk7Y29uc3Qgbz1ZbSgpLiRpbXBsaWNpdDtyZXR1cm4gWW0oKS5vbkFjdGl2ZVBsdWdpblNlbGVjdGlvbihuLG8uaWQpfSkpLGt1KDEpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCkuJGltcGxpY2l0O2pwKCJkYXRhLXBsdWdpbi1pZCIsdC5pZCkscmMoMSksRHUoIiAiLHQudGFiX25hbWUsIiAiKX19ZnVuY3Rpb24gekcodCxlKXsxJnQmJihSbSgwLCJtYXQtdGFiIiwzKSxRcCgxLE5HLDIsMiwibmctdGVtcGxhdGUiLDQpLEFtKCkpLDImdCYmRG0oImRpc2FibGVkIiwhZS4kaW1wbGljaXQuZW5hYmxlZCl9ZnVuY3Rpb24gSUcodCxlKXtpZigxJnQmJihSbSgwLCJtYXQtb3B0aW9uIiw5KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7RG0oInZhbHVlIix0LmlkKSxqcCgiZGF0YS1wbHVnaW4taWQiLHQuaWQpLHJjKDEpLER1KCIgIix0LnRhYl9uYW1lLCIgIil9fWZ1bmN0aW9uIEhHKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwibWF0LWZvcm0tZmllbGQiLDYpLFJtKDEsIm1hdC1sYWJlbCIpLGt1KDIsIkluYWN0aXZlIiksQW0oKSxSbSgzLCJtYXQtc2VsZWN0Iiw3KSxWbSgic2VsZWN0aW9uQ2hhbmdlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vbkRpc2FibGVkUGx1Z2luU2VsZWN0aW9uQ2hhbmdlZChuKX0pKSxRcCg0LElHLDIsMywibWF0LW9wdGlvbiIsOCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO3JjKDMpLERtKCJ2YWx1ZSIsdC5zZWxlY3RlZFBsdWdpbikscmMoMSksRG0oIm5nRm9yT2YiLHQuZGlzYWJsZWRQbHVnaW5zKX19VEcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRHKX0sVEcuybVtb2Q9YW8oe3R5cGU6VEd9KSxURy7JtWluaj12bih7cHJvdmlkZXJzOltQR10saW1wb3J0czpbW1dNLHlMLFVILFhJXSx5RixUVixVSCxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFRHLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV00seUwsVUgsWEldLGV4cG9ydHM6W3lGLFRWLEFHLEVHLFVILFhJXSxkZWNsYXJhdGlvbnM6W0FHLEVHXSxwcm92aWRlcnM6W1BHXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFRHLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bQUcsRUddfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1dNLHlMLFVILFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVyblt5RixUVixBRyxFRyxVSCxYSV19fSk7Y2xhc3MgRkd7Y29uc3RydWN0b3IoKXt0aGlzLm9uUGx1Z2luU2VsZWN0aW9uQ2hhbmdlZD1uZXcgTGh9Z2V0QWN0aXZlUGx1Z2luSW5kZXgoKXtyZXR1cm4gdGhpcy5hY3RpdmVQbHVnaW5zLmZpbmRJbmRleCgoKHtpZDp0fSk9PnQ9PT10aGlzLnNlbGVjdGVkUGx1Z2luKSl9b25BY3RpdmVQbHVnaW5TZWxlY3Rpb24odCxlKXt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZSl9b25EaXNhYmxlZFBsdWdpblNlbGVjdGlvbkNoYW5nZWQodCl7dGhpcy5vblBsdWdpblNlbGVjdGlvbkNoYW5nZWQuZW1pdCh0LnZhbHVlKX19RkcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEZHKX0sRkcuybVjbXA9dG8oe3R5cGU6Rkcsc2VsZWN0b3JzOltbInBsdWdpbi1zZWxlY3Rvci1jb21wb25lbnQiXV0saW5wdXRzOnthY3RpdmVQbHVnaW5zOiJhY3RpdmVQbHVnaW5zIixkaXNhYmxlZFBsdWdpbnM6ImRpc2FibGVkUGx1Z2lucyIsc2VsZWN0ZWRQbHVnaW46InNlbGVjdGVkUGx1Z2luIn0sb3V0cHV0czp7b25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkOiJvblBsdWdpblNlbGVjdGlvbkNoYW5nZWQifSxkZWNsczozLHZhcnM6Myxjb25zdHM6W1siYW5pbWF0aW9uRHVyYXRpb24iLCIxMDBtcyIsMSwiYWN0aXZlLXBsdWdpbi1saXN0IiwzLCJzZWxlY3RlZEluZGV4Il0sWzMsImRpc2FibGVkIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImZsb2F0TGFiZWwiLCJuZXZlciIsNCwibmdJZiJdLFszLCJkaXNhYmxlZCJdLFsibWF0LXRhYi1sYWJlbCIsIiJdLFsxLCJwbHVnaW4tbmFtZSIsMywiY2xpY2siXSxbImZsb2F0TGFiZWwiLCJuZXZlciJdLFszLCJ2YWx1ZSIsInNlbGVjdGlvbkNoYW5nZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtYXQtdGFiLWdyb3VwIiwwKSxRcCgxLHpHLDIsMSwibWF0LXRhYiIsMSksQW0oKSxRcCgyLEhHLDUsMiwibWF0LWZvcm0tZmllbGQiLDIpKSwyJmUmJihEbSgic2VsZWN0ZWRJbmRleCIsbi5nZXRBY3RpdmVQbHVnaW5JbmRleCgpKSxyYygxKSxEbSgibmdGb3JPZiIsbi5hY3RpdmVQbHVnaW5zKSxyYygxKSxEbSgibmdJZiIsbi5kaXNhYmxlZFBsdWdpbnMubGVuZ3RoPjApKX0sZGlyZWN0aXZlczpbRkIsbE0sZE0sU0IsUEIsQVYsdlYsQUcsQkhdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2ZvbnQtc2l6ZToxNHB4O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn1tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17ZmxleDowIDA7bWFyZ2luLXRvcDo1cHg7d2lkdGg6MTMwcHh9bWF0LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgbWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV0sIG1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LmFjdGl2ZS1wbHVnaW4tbGlzdFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24tc2VsZjpzdHJldGNoO2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3c6aGlkZGVufS5wbHVnaW4tbmFtZVtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjAgMTJweDt3aWR0aDoxMDAlfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QubWF0LXByaW1hcnkgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1sYWJlbCwgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1saW5re2NvbG9yOmluaGVyaXQ7b3BhY2l0eTouN31bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItbGFiZWwtYWN0aXZlLCBbX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1sYWJlbC1hY3RpdmV7b3BhY2l0eToxfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6Y3VycmVudENvbG9yfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWR7dmlzaWJpbGl0eTpoaWRkZW59W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1kaXNhYmxlZHtkaXNwbGF5Om5vbmV9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWxpc3QsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC10YWItaGVhZGVyLCBbX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtdGFiLWxhYmVscywgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1sYWJlbHtoZWlnaHQ6MTAwJX1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtdGFiLWxhYmVse21pbi13aWR0aDo0OHB4O3BhZGRpbmc6MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1sYWJlbC1jb250ZW50e2hlaWdodDoxMDAlfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGlzdHtwYWRkaW5nOjAgMzZweH1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyPjpmaXJzdC1jaGlsZCwgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj4ubWF0LXRhYi1sYWJlbC1jb250YWluZXIsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+Omxhc3QtY2hpbGR7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj46Zmlyc3QtY2hpbGQsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+Lm1hdC10YWItbGFiZWwtY29udGFpbmVye2xlZnQ6MH1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyPjpsYXN0LWNoaWxkLCBbX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyPi5tYXQtdGFiLWxhYmVsLWNvbnRhaW5lcntyaWdodDowfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9J119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEZHLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InBsdWdpbi1zZWxlY3Rvci1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL3BsdWdpbl9zZWxlY3Rvcl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9wbHVnaW5fc2VsZWN0b3JfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLHthY3RpdmVQbHVnaW5zOlt7dHlwZTp4eX1dLGRpc2FibGVkUGx1Z2luczpbe3R5cGU6eHl9XSxzZWxlY3RlZFBsdWdpbjpbe3R5cGU6eHl9XSxvblBsdWdpblNlbGVjdGlvbkNoYW5nZWQ6W3t0eXBlOk95fV19KTtjb25zdCBMRz1adyh2UiwodD0+T2JqZWN0LmtleXModCkubWFwKChlPT5PYmplY3QuYXNzaWduKHt9LHtpZDplfSx0W2VdKSkpKSksQkc9WncoTEcsKHQ9PnQuZmlsdGVyKCh0PT4hdC5lbmFibGVkKSkpKTtjbGFzcyBWR3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hY3RpdmVQbHVnaW4kPXRoaXMuc3RvcmUucGlwZShGdyhNUikpLHRoaXMucGx1Z2lucyQ9dGhpcy5zdG9yZS5waXBlKEZ3KExHKSksdGhpcy5kaXNhYmxlZFBsdWdpbnMkPXRoaXMuc3RvcmUucGlwZShGdyhCRykpfW9uUGx1Z2luU2VsZWN0aW9uQ2hhbmdlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goX0Uoe3BsdWdpbjp0fSkpfX1mdW5jdGlvbiBqRyh0LGUpe31WRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VkcpKFNtKEl3KSl9LFZHLsm1Y21wPXRvKHt0eXBlOlZHLHNlbGVjdG9yczpbWyJwbHVnaW4tc2VsZWN0b3IiXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywiYWN0aXZlUGx1Z2lucyIsImRpc2FibGVkUGx1Z2lucyIsInNlbGVjdGVkUGx1Z2luIiwib25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJwbHVnaW4tc2VsZWN0b3ItY29tcG9uZW50IiwwKSxWbSgib25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblBsdWdpblNlbGVjdGlvbkNoYW5nZShlKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJhY3RpdmVQbHVnaW5zIixUaCgxLDMsbi5wbHVnaW5zJCkpKCJkaXNhYmxlZFBsdWdpbnMiLFRoKDIsNSxuLmRpc2FibGVkUGx1Z2lucyQpKSgic2VsZWN0ZWRQbHVnaW4iLFRoKDMsNyxuLmFjdGl2ZVBsdWdpbiQpKX0sZGlyZWN0aXZlczpbRkddLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWRyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJwbHVnaW4tc2VsZWN0b3IiLHRlbXBsYXRlOidcbiAgICA8cGx1Z2luLXNlbGVjdG9yLWNvbXBvbmVudFxuICAgICAgW2FjdGl2ZVBsdWdpbnNdPSJwbHVnaW5zJCB8IGFzeW5jIlxuICAgICAgW2Rpc2FibGVkUGx1Z2luc109ImRpc2FibGVkUGx1Z2lucyQgfCBhc3luYyJcbiAgICAgIFtzZWxlY3RlZFBsdWdpbl09ImFjdGl2ZVBsdWdpbiQgfCBhc3luYyJcbiAgICAgIChvblBsdWdpblNlbGVjdGlvbkNoYW5nZWQpPSJvblBsdWdpblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpIlxuICAgID48L3BsdWdpbi1zZWxlY3Rvci1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgVUd7Y29uc3RydWN0b3IoKXt0aGlzLnJvbGU9ImRpYWxvZyIsdGhpcy5wYW5lbENsYXNzPSIiLHRoaXMuaGFzQmFja2Ryb3A9ITAsdGhpcy5iYWNrZHJvcENsYXNzPSIiLHRoaXMuZGlzYWJsZUNsb3NlPSExLHRoaXMud2lkdGg9IiIsdGhpcy5oZWlnaHQ9IiIsdGhpcy5tYXhXaWR0aD0iODB2dyIsdGhpcy5kYXRhPW51bGwsdGhpcy5hcmlhRGVzY3JpYmVkQnk9bnVsbCx0aGlzLmFyaWFMYWJlbGxlZEJ5PW51bGwsdGhpcy5hcmlhTGFiZWw9bnVsbCx0aGlzLmF1dG9Gb2N1cz0hMCx0aGlzLnJlc3RvcmVGb2N1cz0hMCx0aGlzLmNsb3NlT25OYXZpZ2F0aW9uPSEwfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgR0c9e2RpYWxvZ0NvbnRhaW5lcjpueCgiZGlhbG9nQ29udGFpbmVyIixbcngoInZvaWQsIGV4aXQiLGF4KHtvcGFjaXR5OjAsdHJhbnNmb3JtOiJzY2FsZSgwLjcpIn0pKSxyeCgiZW50ZXIiLGF4KHt0cmFuc2Zvcm06Im5vbmUifSkpLGx4KCIqID0+IGVudGVyIixveCgiMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiLGF4KHt0cmFuc2Zvcm06Im5vbmUiLG9wYWNpdHk6MX0pKSksbHgoIiogPT4gdm9pZCwgKiA9PiBleGl0IixveCgiNzVtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSkiLGF4KHtvcGFjaXR5OjB9KSkpXSl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBXRygpe3Rocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGF0dGFjaCBkaWFsb2cgY29udGVudCBhZnRlciBjb250ZW50IGlzIGFscmVhZHkgYXR0YWNoZWQiKX1jbGFzcyBZRyBleHRlbmRzIFBGe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhKXtzdXBlcigpLHRoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9mb2N1c1RyYXBGYWN0b3J5PWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9bix0aGlzLl9jb25maWc9aSx0aGlzLl9mb2N1c01vbml0b3I9YSx0aGlzLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQ9bmV3IExoLHRoaXMuX2VsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkPW51bGwsdGhpcy5fY2xvc2VJbnRlcmFjdGlvblR5cGU9bnVsbCx0aGlzLmF0dGFjaERvbVBvcnRhbD10PT4odGhpcy5fcG9ydGFsT3V0bGV0Lmhhc0F0dGFjaGVkKCkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmV0coKSx0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoRG9tUG9ydGFsKHQpKSx0aGlzLl9hcmlhTGFiZWxsZWRCeT1pLmFyaWFMYWJlbGxlZEJ5fHxudWxsLHRoaXMuX2RvY3VtZW50PW99X2luaXRpYWxpemVXaXRoQXR0YWNoZWRDb250ZW50KCl7dGhpcy5fc2V0dXBGb2N1c1RyYXAoKSx0aGlzLl9jYXB0dXJlUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCksdGhpcy5fZm9jdXNEaWFsb2dDb250YWluZXIoKX1hdHRhY2hDb21wb25lbnRQb3J0YWwodCl7cmV0dXJuIHRoaXMuX3BvcnRhbE91dGxldC5oYXNBdHRhY2hlZCgpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJldHKCksdGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaENvbXBvbmVudFBvcnRhbCh0KX1hdHRhY2hUZW1wbGF0ZVBvcnRhbCh0KXtyZXR1cm4gdGhpcy5fcG9ydGFsT3V0bGV0Lmhhc0F0dGFjaGVkKCkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmV0coKSx0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwodCl9X3JlY2FwdHVyZUZvY3VzKCl7dGhpcy5fY29udGFpbnNGb2N1cygpfHwoIXRoaXMuX2NvbmZpZy5hdXRvRm9jdXN8fCF0aGlzLl9mb2N1c1RyYXAuZm9jdXNJbml0aWFsRWxlbWVudCgpKSYmdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCl9X3RyYXBGb2N1cygpe3RoaXMuX2NvbmZpZy5hdXRvRm9jdXM/dGhpcy5fZm9jdXNUcmFwLmZvY3VzSW5pdGlhbEVsZW1lbnRXaGVuUmVhZHkoKTp0aGlzLl9jb250YWluc0ZvY3VzKCl8fHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfV9yZXN0b3JlRm9jdXMoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkO2lmKHRoaXMuX2NvbmZpZy5yZXN0b3JlRm9jdXMmJnQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmZvY3VzKXtjb25zdCBlPUZ6KCksbj10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7ZSYmZSE9PXRoaXMuX2RvY3VtZW50LmJvZHkmJmUhPT1uJiYhbi5jb250YWlucyhlKXx8KHRoaXMuX2ZvY3VzTW9uaXRvcj8odGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHQsdGhpcy5fY2xvc2VJbnRlcmFjdGlvblR5cGUpLHRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlPW51bGwpOnQuZm9jdXMoKSl9dGhpcy5fZm9jdXNUcmFwJiZ0aGlzLl9mb2N1c1RyYXAuZGVzdHJveSgpfV9zZXR1cEZvY3VzVHJhcCgpe3RoaXMuX2ZvY3VzVHJhcD10aGlzLl9mb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpfV9jYXB0dXJlUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCl7dGhpcy5fZG9jdW1lbnQmJih0aGlzLl9lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZD1GeigpKX1fZm9jdXNEaWFsb2dDb250YWluZXIoKXt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMmJnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfV9jb250YWluc0ZvY3VzKCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsZT1GeigpO3JldHVybiB0PT09ZXx8dC5jb250YWlucyhlKX19WUcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFlHKShTbShoZyksU20ockkpLFNtKFVnKSxTbShaXyw4KSxTbShVRyksU20oU0kpKX0sWUcuybVkaXI9bG8oe3R5cGU6WUcsdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKERGLDcpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX3BvcnRhbE91dGxldD10LmZpcnN0KX19LGZlYXR1cmVzOlt4cF19KSxZRy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpySX0se3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlVHfSx7dHlwZTpTSX1dLFlHLnByb3BEZWNvcmF0b3JzPXtfcG9ydGFsT3V0bGV0Olt7dHlwZTpaYSxhcmdzOltERix7c3RhdGljOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChZRyxbe3R5cGU6Q3l9XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOnJJfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6VUd9LHt0eXBlOlNJfV19KSx7X3BvcnRhbE91dGxldDpbe3R5cGU6WmEsYXJnczpbREYse3N0YXRpYzohMH1dfV19KTtjbGFzcyBxRyBleHRlbmRzIFlHe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9zdGF0ZT0iZW50ZXIifV9vbkFuaW1hdGlvbkRvbmUoe3RvU3RhdGU6dCx0b3RhbFRpbWU6ZX0peyJlbnRlciI9PT10Pyh0aGlzLl90cmFwRm9jdXMoKSx0aGlzLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQubmV4dCh7c3RhdGU6Im9wZW5lZCIsdG90YWxUaW1lOmV9KSk6ImV4aXQiPT09dCYmKHRoaXMuX3Jlc3RvcmVGb2N1cygpLHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5uZXh0KHtzdGF0ZToiY2xvc2VkIix0b3RhbFRpbWU6ZX0pKX1fb25BbmltYXRpb25TdGFydCh7dG9TdGF0ZTp0LHRvdGFsVGltZTplfSl7ImVudGVyIj09PXQ/dGhpcy5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLm5leHQoe3N0YXRlOiJvcGVuaW5nIix0b3RhbFRpbWU6ZX0pOiJleGl0IiE9PXQmJiJ2b2lkIiE9PXR8fHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5uZXh0KHtzdGF0ZToiY2xvc2luZyIsdG90YWxUaW1lOmV9KX1fc3RhcnRFeGl0QW5pbWF0aW9uKCl7dGhpcy5fc3RhdGU9ImV4aXQiLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfX1xRy7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEocUcpKSkobnx8cUcpfX0pKCkscUcuybVjbXA9dG8oe3R5cGU6cUcsc2VsZWN0b3JzOltbIm1hdC1kaWFsb2ctY29udGFpbmVyIl1dLGhvc3RBdHRyczpbInRhYmluZGV4IiwiLTEiLCJhcmlhLW1vZGFsIiwidHJ1ZSIsMSwibWF0LWRpYWxvZy1jb250YWluZXIiXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZqbSgiQGRpYWxvZ0NvbnRhaW5lci5zdGFydCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uQW5pbWF0aW9uU3RhcnQoZSl9KSkoIkBkaWFsb2dDb250YWluZXIuZG9uZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uQW5pbWF0aW9uRG9uZShlKX0pKSwyJmUmJihUdSgiaWQiLG4uX2lkKSxqcCgicm9sZSIsbi5fY29uZmlnLnJvbGUpKCJhcmlhLWxhYmVsbGVkYnkiLG4uX2NvbmZpZy5hcmlhTGFiZWw/bnVsbDpuLl9hcmlhTGFiZWxsZWRCeSkoImFyaWEtbGFiZWwiLG4uX2NvbmZpZy5hcmlhTGFiZWwpKCJhcmlhLWRlc2NyaWJlZGJ5IixuLl9jb25maWcuYXJpYURlc2NyaWJlZEJ5fHxudWxsKSxOdSgiQGRpYWxvZ0NvbnRhaW5lciIsbi5fc3RhdGUpKX0sZmVhdHVyZXM6W3hwXSxkZWNsczoxLHZhcnM6MCxjb25zdHM6W1siY2RrUG9ydGFsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlFwKDAsakcsMCwwLCJuZy10ZW1wbGF0ZSIsMCl9LGRpcmVjdGl2ZXM6W0RGXSxzdHlsZXM6WyIubWF0LWRpYWxvZy1jb250YWluZXJ7ZGlzcGxheTpibG9jaztwYWRkaW5nOjI0cHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmF1dG87b3V0bGluZTowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWluLWhlaWdodDppbmhlcml0O21heC1oZWlnaHQ6aW5oZXJpdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZGlhbG9nLWNvbnRhaW5lcntvdXRsaW5lOnNvbGlkIDFweH0ubWF0LWRpYWxvZy1jb250ZW50e2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjAgLTI0cHg7cGFkZGluZzowIDI0cHg7bWF4LWhlaWdodDo2NXZoO292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Lm1hdC1kaWFsb2ctdGl0bGV7bWFyZ2luOjAgMCAyMHB4O2Rpc3BsYXk6YmxvY2t9Lm1hdC1kaWFsb2ctYWN0aW9uc3twYWRkaW5nOjhweCAwO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttaW4taGVpZ2h0OjUycHg7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Y29udGVudC1ib3g7bWFyZ2luLWJvdHRvbTotMjRweH0ubWF0LWRpYWxvZy1hY3Rpb25zW2FsaWduPWVuZF17anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5tYXQtZGlhbG9nLWFjdGlvbnNbYWxpZ249Y2VudGVyXXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5tYXQtZGlhbG9nLWFjdGlvbnMgLm1hdC1idXR0b24tYmFzZSsubWF0LWJ1dHRvbi1iYXNlLC5tYXQtZGlhbG9nLWFjdGlvbnMgLm1hdC1tZGMtYnV0dG9uLWJhc2UrLm1hdC1tZGMtYnV0dG9uLWJhc2V7bWFyZ2luLWxlZnQ6OHB4fVtkaXI9cnRsXSAubWF0LWRpYWxvZy1hY3Rpb25zIC5tYXQtYnV0dG9uLWJhc2UrLm1hdC1idXR0b24tYmFzZSxbZGlyPXJ0bF0gLm1hdC1kaWFsb2ctYWN0aW9ucyAubWF0LW1kYy1idXR0b24tYmFzZSsubWF0LW1kYy1idXR0b24tYmFzZXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo4cHh9XG4iXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltHRy5kaWFsb2dDb250YWluZXJdfX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocUcsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWRpYWxvZy1jb250YWluZXIiLHRlbXBsYXRlOiI8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+XG4iLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxhbmltYXRpb25zOltHRy5kaWFsb2dDb250YWluZXJdLGhvc3Q6e2NsYXNzOiJtYXQtZGlhbG9nLWNvbnRhaW5lciIsdGFiaW5kZXg6Ii0xIiwiYXJpYS1tb2RhbCI6InRydWUiLCJbaWRdIjoiX2lkIiwiW2F0dHIucm9sZV0iOiJfY29uZmlnLnJvbGUiLCJbYXR0ci5hcmlhLWxhYmVsbGVkYnldIjoiX2NvbmZpZy5hcmlhTGFiZWwgPyBudWxsIDogX2FyaWFMYWJlbGxlZEJ5IiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJfY29uZmlnLmFyaWFMYWJlbCIsIlthdHRyLmFyaWEtZGVzY3JpYmVkYnldIjoiX2NvbmZpZy5hcmlhRGVzY3JpYmVkQnkgfHwgbnVsbCIsIltAZGlhbG9nQ29udGFpbmVyXSI6Il9zdGF0ZSIsIihAZGlhbG9nQ29udGFpbmVyLnN0YXJ0KSI6Il9vbkFuaW1hdGlvblN0YXJ0KCRldmVudCkiLCIoQGRpYWxvZ0NvbnRhaW5lci5kb25lKSI6Il9vbkFuaW1hdGlvbkRvbmUoJGV2ZW50KSJ9LHN0eWxlczpbIi5tYXQtZGlhbG9nLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MjRweDtib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6YXV0bztvdXRsaW5lOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OmluaGVyaXQ7bWF4LWhlaWdodDppbmhlcml0fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1kaWFsb2ctY29udGFpbmVye291dGxpbmU6c29saWQgMXB4fS5tYXQtZGlhbG9nLWNvbnRlbnR7ZGlzcGxheTpibG9jazttYXJnaW46MCAtMjRweDtwYWRkaW5nOjAgMjRweDttYXgtaGVpZ2h0OjY1dmg7b3ZlcmZsb3c6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0ubWF0LWRpYWxvZy10aXRsZXttYXJnaW46MCAwIDIwcHg7ZGlzcGxheTpibG9ja30ubWF0LWRpYWxvZy1hY3Rpb25ze3BhZGRpbmc6OHB4IDA7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21pbi1oZWlnaHQ6NTJweDthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpjb250ZW50LWJveDttYXJnaW4tYm90dG9tOi0yNHB4fS5tYXQtZGlhbG9nLWFjdGlvbnNbYWxpZ249ZW5kXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lm1hdC1kaWFsb2ctYWN0aW9uc1thbGlnbj1jZW50ZXJde2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm1hdC1kaWFsb2ctYWN0aW9ucyAubWF0LWJ1dHRvbi1iYXNlKy5tYXQtYnV0dG9uLWJhc2UsLm1hdC1kaWFsb2ctYWN0aW9ucyAubWF0LW1kYy1idXR0b24tYmFzZSsubWF0LW1kYy1idXR0b24tYmFzZXttYXJnaW4tbGVmdDo4cHh9W2Rpcj1ydGxdIC5tYXQtZGlhbG9nLWFjdGlvbnMgLm1hdC1idXR0b24tYmFzZSsubWF0LWJ1dHRvbi1iYXNlLFtkaXI9cnRsXSAubWF0LWRpYWxvZy1hY3Rpb25zIC5tYXQtbWRjLWJ1dHRvbi1iYXNlKy5tYXQtbWRjLWJ1dHRvbi1iYXNle21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjhweH1cbiJdfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IFpHPTA7Y2xhc3MgWEd7Y29uc3RydWN0b3IodCxlLG49Im1hdC1kaWFsb2ctIitaRysrKXt0aGlzLl9vdmVybGF5UmVmPXQsdGhpcy5fY29udGFpbmVySW5zdGFuY2U9ZSx0aGlzLmlkPW4sdGhpcy5kaXNhYmxlQ2xvc2U9dGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2NvbmZpZy5kaXNhYmxlQ2xvc2UsdGhpcy5fYWZ0ZXJPcGVuZWQ9bmV3IEksdGhpcy5fYWZ0ZXJDbG9zZWQ9bmV3IEksdGhpcy5fYmVmb3JlQ2xvc2VkPW5ldyBJLHRoaXMuX3N0YXRlPTAsZS5faWQ9bixlLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZShjZSgodD0+Im9wZW5lZCI9PT10LnN0YXRlKSksYmUoMSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9hZnRlck9wZW5lZC5uZXh0KCksdGhpcy5fYWZ0ZXJPcGVuZWQuY29tcGxldGUoKX0pKSxlLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZShjZSgodD0+ImNsb3NlZCI9PT10LnN0YXRlKSksYmUoMSkpLnN1YnNjcmliZSgoKCk9PntjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VGYWxsYmFja1RpbWVvdXQpLHRoaXMuX2ZpbmlzaERpYWxvZ0Nsb3NlKCl9KSksdC5kZXRhY2htZW50cygpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9iZWZvcmVDbG9zZWQubmV4dCh0aGlzLl9yZXN1bHQpLHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpLHRoaXMuX2FmdGVyQ2xvc2VkLm5leHQodGhpcy5fcmVzdWx0KSx0aGlzLl9hZnRlckNsb3NlZC5jb21wbGV0ZSgpLHRoaXMuY29tcG9uZW50SW5zdGFuY2U9bnVsbCx0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKX0pKSx0LmtleWRvd25FdmVudHMoKS5waXBlKGNlKCh0PT50LmtleUNvZGU9PT11eiYmIXRoaXMuZGlzYWJsZUNsb3NlJiYhYnoodCkpKSkuc3Vic2NyaWJlKCh0PT57dC5wcmV2ZW50RGVmYXVsdCgpLEtHKHRoaXMsImtleWJvYXJkIil9KSksdC5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuZGlzYWJsZUNsb3NlP3RoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9yZWNhcHR1cmVGb2N1cygpOktHKHRoaXMsIm1vdXNlIil9KSl9Y2xvc2UodCl7dGhpcy5fcmVzdWx0PXQsdGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKGNlKCh0PT4iY2xvc2luZyI9PT10LnN0YXRlKSksYmUoMSkpLnN1YnNjcmliZSgoZT0+e3RoaXMuX2JlZm9yZUNsb3NlZC5uZXh0KHQpLHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpLHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoQmFja2Ryb3AoKSx0aGlzLl9jbG9zZUZhbGxiYWNrVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+dGhpcy5fZmluaXNoRGlhbG9nQ2xvc2UoKSksZS50b3RhbFRpbWUrMTAwKX0pKSx0aGlzLl9zdGF0ZT0xLHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9zdGFydEV4aXRBbmltYXRpb24oKX1hZnRlck9wZW5lZCgpe3JldHVybiB0aGlzLl9hZnRlck9wZW5lZH1hZnRlckNsb3NlZCgpe3JldHVybiB0aGlzLl9hZnRlckNsb3NlZH1iZWZvcmVDbG9zZWQoKXtyZXR1cm4gdGhpcy5fYmVmb3JlQ2xvc2VkfWJhY2tkcm9wQ2xpY2soKXtyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCl9a2V5ZG93bkV2ZW50cygpe3JldHVybiB0aGlzLl9vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKX11cGRhdGVQb3NpdGlvbih0KXtsZXQgZT10aGlzLl9nZXRQb3NpdGlvblN0cmF0ZWd5KCk7cmV0dXJuIHQmJih0LmxlZnR8fHQucmlnaHQpP3QubGVmdD9lLmxlZnQodC5sZWZ0KTplLnJpZ2h0KHQucmlnaHQpOmUuY2VudGVySG9yaXpvbnRhbGx5KCksdCYmKHQudG9wfHx0LmJvdHRvbSk/dC50b3A/ZS50b3AodC50b3ApOmUuYm90dG9tKHQuYm90dG9tKTplLmNlbnRlclZlcnRpY2FsbHkoKSx0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCksdGhpc311cGRhdGVTaXplKHQ9IiIsZT0iIil7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh7d2lkdGg6dCxoZWlnaHQ6ZX0pLHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSx0aGlzfWFkZFBhbmVsQ2xhc3ModCl7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWYuYWRkUGFuZWxDbGFzcyh0KSx0aGlzfXJlbW92ZVBhbmVsQ2xhc3ModCl7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWYucmVtb3ZlUGFuZWxDbGFzcyh0KSx0aGlzfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX3N0YXRlfV9maW5pc2hEaWFsb2dDbG9zZSgpe3RoaXMuX3N0YXRlPTIsdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCl9X2dldFBvc2l0aW9uU3RyYXRlZ3koKXtyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5wb3NpdGlvblN0cmF0ZWd5fX1mdW5jdGlvbiBLRyh0LGUsbil7cmV0dXJuIHZvaWQgMCE9PXQuX2NvbnRhaW5lckluc3RhbmNlJiYodC5fY29udGFpbmVySW5zdGFuY2UuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlPWUpLHQuY2xvc2Uobil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IEpHPW5ldyBHYSgiTWF0RGlhbG9nRGF0YSIpLFFHPW5ldyBHYSgibWF0LWRpYWxvZy1kZWZhdWx0LW9wdGlvbnMiKSwkRz1uZXcgR2EoIm1hdC1kaWFsb2ctc2Nyb2xsLXN0cmF0ZWd5IiksdFc9e3Byb3ZpZGU6JEcsZGVwczpbcExdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gZVcodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpfX07Y2xhc3Mgbld7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwpe3RoaXMuX292ZXJsYXk9dCx0aGlzLl9pbmplY3Rvcj1lLHRoaXMuX2RlZmF1bHRPcHRpb25zPW4sdGhpcy5fcGFyZW50RGlhbG9nPW8sdGhpcy5fb3ZlcmxheUNvbnRhaW5lcj1pLHRoaXMuX2RpYWxvZ1JlZkNvbnN0cnVjdG9yPXIsdGhpcy5fZGlhbG9nQ29udGFpbmVyVHlwZT1zLHRoaXMuX2RpYWxvZ0RhdGFUb2tlbj1sLHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWw9W10sdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbD1uZXcgSSx0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsPW5ldyBJLHRoaXMuX2FyaWFIaWRkZW5FbGVtZW50cz1uZXcgTWFwLHRoaXMuYWZ0ZXJBbGxDbG9zZWQ9UXQoKCgpPT50aGlzLm9wZW5EaWFsb2dzLmxlbmd0aD90aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpOnRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkucGlwZShOZSh2b2lkIDApKSkpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5PWF9Z2V0IG9wZW5EaWFsb2dzKCl7cmV0dXJuIHRoaXMuX3BhcmVudERpYWxvZz90aGlzLl9wYXJlbnREaWFsb2cub3BlbkRpYWxvZ3M6dGhpcy5fb3BlbkRpYWxvZ3NBdFRoaXNMZXZlbH1nZXQgYWZ0ZXJPcGVuZWQoKXtyZXR1cm4gdGhpcy5fcGFyZW50RGlhbG9nP3RoaXMuX3BhcmVudERpYWxvZy5hZnRlck9wZW5lZDp0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsfV9nZXRBZnRlckFsbENsb3NlZCgpe2NvbnN0IHQ9dGhpcy5fcGFyZW50RGlhbG9nO3JldHVybiB0P3QuX2dldEFmdGVyQWxsQ2xvc2VkKCk6dGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbH1vcGVuKHQsZSl7aWYoKGU9KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHQpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKGUsdGhpcy5fZGVmYXVsdE9wdGlvbnN8fG5ldyBVRykpLmlkJiZ0aGlzLmdldERpYWxvZ0J5SWQoZS5pZCkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcihgRGlhbG9nIHdpdGggaWQgIiR7ZS5pZH0iIGV4aXN0cyBhbHJlYWR5LiBUaGUgZGlhbG9nIGlkIG11c3QgYmUgdW5pcXVlLmApO2NvbnN0IG89dGhpcy5fY3JlYXRlT3ZlcmxheShlKSxpPXRoaXMuX2F0dGFjaERpYWxvZ0NvbnRhaW5lcihvLGUpLGE9dGhpcy5fYXR0YWNoRGlhbG9nQ29udGVudCh0LGksbyxlKTtyZXR1cm4gdGhpcy5vcGVuRGlhbG9ncy5sZW5ndGh8fHRoaXMuX2hpZGVOb25EaWFsb2dDb250ZW50RnJvbUFzc2lzdGl2ZVRlY2hub2xvZ3koKSx0aGlzLm9wZW5EaWFsb2dzLnB1c2goYSksYS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKCk9PnRoaXMuX3JlbW92ZU9wZW5EaWFsb2coYSkpKSx0aGlzLmFmdGVyT3BlbmVkLm5leHQoYSksaS5faW5pdGlhbGl6ZVdpdGhBdHRhY2hlZENvbnRlbnQoKSxhfWNsb3NlQWxsKCl7dGhpcy5fY2xvc2VEaWFsb2dzKHRoaXMub3BlbkRpYWxvZ3MpfWdldERpYWxvZ0J5SWQodCl7cmV0dXJuIHRoaXMub3BlbkRpYWxvZ3MuZmluZCgoZT0+ZS5pZD09PXQpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2Nsb3NlRGlhbG9ncyh0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsKSx0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCksdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpfV9jcmVhdGVPdmVybGF5KHQpe2NvbnN0IGU9dGhpcy5fZ2V0T3ZlcmxheUNvbmZpZyh0KTtyZXR1cm4gdGhpcy5fb3ZlcmxheS5jcmVhdGUoZSl9X2dldE92ZXJsYXlDb25maWcodCl7Y29uc3QgZT1uZXcgVkYoe3Bvc2l0aW9uU3RyYXRlZ3k6dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLHNjcm9sbFN0cmF0ZWd5OnQuc2Nyb2xsU3RyYXRlZ3l8fHRoaXMuX3Njcm9sbFN0cmF0ZWd5KCkscGFuZWxDbGFzczp0LnBhbmVsQ2xhc3MsaGFzQmFja2Ryb3A6dC5oYXNCYWNrZHJvcCxkaXJlY3Rpb246dC5kaXJlY3Rpb24sbWluV2lkdGg6dC5taW5XaWR0aCxtaW5IZWlnaHQ6dC5taW5IZWlnaHQsbWF4V2lkdGg6dC5tYXhXaWR0aCxtYXhIZWlnaHQ6dC5tYXhIZWlnaHQsZGlzcG9zZU9uTmF2aWdhdGlvbjp0LmNsb3NlT25OYXZpZ2F0aW9ufSk7cmV0dXJuIHQuYmFja2Ryb3BDbGFzcyYmKGUuYmFja2Ryb3BDbGFzcz10LmJhY2tkcm9wQ2xhc3MpLGV9X2F0dGFjaERpYWxvZ0NvbnRhaW5lcih0LGUpe2NvbnN0IG49cnAuY3JlYXRlKHtwYXJlbnQ6ZSYmZS52aWV3Q29udGFpbmVyUmVmJiZlLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3J8fHRoaXMuX2luamVjdG9yLHByb3ZpZGVyczpbe3Byb3ZpZGU6VUcsdXNlVmFsdWU6ZX1dfSksbz1uZXcgdkYodGhpcy5fZGlhbG9nQ29udGFpbmVyVHlwZSxlLnZpZXdDb250YWluZXJSZWYsbixlLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcik7cmV0dXJuIHQuYXR0YWNoKG8pLmluc3RhbmNlfV9hdHRhY2hEaWFsb2dDb250ZW50KHQsZSxuLG8pe2NvbnN0IGk9bmV3IHRoaXMuX2RpYWxvZ1JlZkNvbnN0cnVjdG9yKG4sZSxvLmlkKTtpZih0IGluc3RhbmNlb2YgWGcpZS5hdHRhY2hUZW1wbGF0ZVBvcnRhbChuZXcgeEYodCxudWxsLHskaW1wbGljaXQ6by5kYXRhLGRpYWxvZ1JlZjppfSkpO2Vsc2V7Y29uc3Qgbj10aGlzLl9jcmVhdGVJbmplY3RvcihvLGksZSksYT1lLmF0dGFjaENvbXBvbmVudFBvcnRhbChuZXcgdkYodCxvLnZpZXdDb250YWluZXJSZWYsbikpO2kuY29tcG9uZW50SW5zdGFuY2U9YS5pbnN0YW5jZX1yZXR1cm4gaS51cGRhdGVTaXplKG8ud2lkdGgsby5oZWlnaHQpLnVwZGF0ZVBvc2l0aW9uKG8ucG9zaXRpb24pLGl9X2NyZWF0ZUluamVjdG9yKHQsZSxuKXtjb25zdCBvPXQmJnQudmlld0NvbnRhaW5lclJlZiYmdC52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLGk9W3twcm92aWRlOnRoaXMuX2RpYWxvZ0NvbnRhaW5lclR5cGUsdXNlVmFsdWU6bn0se3Byb3ZpZGU6dGhpcy5fZGlhbG9nRGF0YVRva2VuLHVzZVZhbHVlOnQuZGF0YX0se3Byb3ZpZGU6dGhpcy5fZGlhbG9nUmVmQ29uc3RydWN0b3IsdXNlVmFsdWU6ZX1dO3JldHVybiF0LmRpcmVjdGlvbnx8byYmby5nZXQoSEksbnVsbCxFbi5PcHRpb25hbCl8fGkucHVzaCh7cHJvdmlkZTpISSx1c2VWYWx1ZTp7dmFsdWU6dC5kaXJlY3Rpb24sY2hhbmdlOkV0KCl9fSkscnAuY3JlYXRlKHtwYXJlbnQ6b3x8dGhpcy5faW5qZWN0b3IscHJvdmlkZXJzOml9KX1fcmVtb3ZlT3BlbkRpYWxvZyh0KXtjb25zdCBlPXRoaXMub3BlbkRpYWxvZ3MuaW5kZXhPZih0KTtlPi0xJiYodGhpcy5vcGVuRGlhbG9ncy5zcGxpY2UoZSwxKSx0aGlzLm9wZW5EaWFsb2dzLmxlbmd0aHx8KHRoaXMuX2FyaWFIaWRkZW5FbGVtZW50cy5mb3JFYWNoKCgodCxlKT0+e3Q/ZS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIix0KTplLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKX0pKSx0aGlzLl9hcmlhSGlkZGVuRWxlbWVudHMuY2xlYXIoKSx0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLm5leHQoKSkpfV9oaWRlTm9uRGlhbG9nQ29udGVudEZyb21Bc3Npc3RpdmVUZWNobm9sb2d5KCl7Y29uc3QgdD10aGlzLl9vdmVybGF5Q29udGFpbmVyLmdldENvbnRhaW5lckVsZW1lbnQoKTtpZih0LnBhcmVudEVsZW1lbnQpe2NvbnN0IGU9dC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO2ZvcihsZXQgbj1lLmxlbmd0aC0xO24+LTE7bi0tKXtsZXQgbz1lW25dO289PT10fHwiU0NSSVBUIj09PW8ubm9kZU5hbWV8fCJTVFlMRSI9PT1vLm5vZGVOYW1lfHxvLmhhc0F0dHJpYnV0ZSgiYXJpYS1saXZlIil8fCh0aGlzLl9hcmlhSGlkZGVuRWxlbWVudHMuc2V0KG8sby5nZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIikpLG8uc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSl9fX1fY2xvc2VEaWFsb2dzKHQpe2xldCBlPXQubGVuZ3RoO2Zvcig7ZS0tOyl0W2VdLmNsb3NlKCl9fW5XLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxuVykoU20ocEwpLFNtKHJwKSxTbSh2b2lkIDApLFNtKHZvaWQgMCksU20oUUYpLFNtKHZvaWQgMCksU20oUWEpLFNtKFFhKSxTbShHYSkpfSxuVy7JtWRpcj1sbyh7dHlwZTpuV30pLG5XLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6cEx9LHt0eXBlOnJwfSx7dHlwZTp2b2lkIDB9LHt0eXBlOnZvaWQgMH0se3R5cGU6UUZ9LHt0eXBlOnZvaWQgMH0se3R5cGU6UWF9LHt0eXBlOlFhfSx7dHlwZTpHYX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoblcsW3t0eXBlOkN5fV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnBMfSx7dHlwZTpycH0se3R5cGU6dm9pZCAwfSx7dHlwZTp2b2lkIDB9LHt0eXBlOlFGfSx7dHlwZTp2b2lkIDB9LHt0eXBlOlFhfSx7dHlwZTpRYX0se3R5cGU6R2F9XX0pLG51bGwpO2NsYXNzIG9XIGV4dGVuZHMgbld7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscil7c3VwZXIodCxlLG8sYSxyLGksWEcscUcsSkcpfX1vVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b1cpKHZyKHBMKSx2cihycCksdnIobEMsOCksdnIoUUcsOCksdnIoJEcpLHZyKG9XLDEyKSx2cihRRikpfSxvVy7JtXByb3Y9TW4oe3Rva2VuOm9XLGZhY3Rvcnk6b1cuybVmYWN9KSxvVy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnBMfSx7dHlwZTpycH0se3R5cGU6bEMsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6VUcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1FHXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbJEddfV19LHt0eXBlOm9XLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpFcn1dfSx7dHlwZTpRRn1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgob1csW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnBMfSx7dHlwZTpycH0se3R5cGU6bEMsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6VUcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1FHXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbJEddfV19LHt0eXBlOm9XLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpFcn1dfSx7dHlwZTpRRn1dfSksbnVsbCk7bGV0IGlXPTA7Y2xhc3MgYVd7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuZGlhbG9nUmVmPXQsdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX2RpYWxvZz1uLHRoaXMudHlwZT0iYnV0dG9uIn1uZ09uSW5pdCgpe3RoaXMuZGlhbG9nUmVmfHwodGhpcy5kaWFsb2dSZWY9Y1codGhpcy5fZWxlbWVudFJlZix0aGlzLl9kaWFsb2cub3BlbkRpYWxvZ3MpKX1uZ09uQ2hhbmdlcyh0KXtjb25zdCBlPXQuX21hdERpYWxvZ0Nsb3NlfHx0Ll9tYXREaWFsb2dDbG9zZVJlc3VsdDtlJiYodGhpcy5kaWFsb2dSZXN1bHQ9ZS5jdXJyZW50VmFsdWUpfV9vbkJ1dHRvbkNsaWNrKHQpe0tHKHRoaXMuZGlhbG9nUmVmLDA9PT10LnNjcmVlblgmJjA9PT10LnNjcmVlblk/ImtleWJvYXJkIjoibW91c2UiLHRoaXMuZGlhbG9nUmVzdWx0KX19YVcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGFXKShTbShYRyw4KSxTbShoZyksU20ob1cpKX0sYVcuybVkaXI9bG8oe3R5cGU6YVcsc2VsZWN0b3JzOltbIiIsIm1hdC1kaWFsb2ctY2xvc2UiLCIiXSxbIiIsIm1hdERpYWxvZ0Nsb3NlIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uQnV0dG9uQ2xpY2soZSl9KSksMiZlJiZqcCgiYXJpYS1sYWJlbCIsbi5hcmlhTGFiZWx8fG51bGwpKCJ0eXBlIixuLnR5cGUpfSxpbnB1dHM6e3R5cGU6InR5cGUiLGRpYWxvZ1Jlc3VsdDpbIm1hdC1kaWFsb2ctY2xvc2UiLCJkaWFsb2dSZXN1bHQiXSxhcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sX21hdERpYWxvZ0Nsb3NlOlsibWF0RGlhbG9nQ2xvc2UiLCJfbWF0RGlhbG9nQ2xvc2UiXX0sZXhwb3J0QXM6WyJtYXREaWFsb2dDbG9zZSJdLGZlYXR1cmVzOltCb119KSxhVy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlhHLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOmhnfSx7dHlwZTpvV31dLGFXLnByb3BEZWNvcmF0b3JzPXthcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSx0eXBlOlt7dHlwZTp4eX1dLGRpYWxvZ1Jlc3VsdDpbe3R5cGU6eHksYXJnczpbIm1hdC1kaWFsb2ctY2xvc2UiXX1dLF9tYXREaWFsb2dDbG9zZTpbe3R5cGU6eHksYXJnczpbIm1hdERpYWxvZ0Nsb3NlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChhVyxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0LWRpYWxvZy1jbG9zZV0sIFttYXREaWFsb2dDbG9zZV0iLGV4cG9ydEFzOiJtYXREaWFsb2dDbG9zZSIsaG9zdDp7IihjbGljaykiOiJfb25CdXR0b25DbGljaygkZXZlbnQpIiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJhcmlhTGFiZWwgfHwgbnVsbCIsIlthdHRyLnR5cGVdIjoidHlwZSJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WEcsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6aGd9LHt0eXBlOm9XfV19KSx7dHlwZTpbe3R5cGU6eHl9XSxkaWFsb2dSZXN1bHQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXQtZGlhbG9nLWNsb3NlIl19XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxfbWF0RGlhbG9nQ2xvc2U6W3t0eXBlOnh5LGFyZ3M6WyJtYXREaWFsb2dDbG9zZSJdfV19KTtjbGFzcyByV3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fZGlhbG9nUmVmPXQsdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX2RpYWxvZz1uLHRoaXMuaWQ9Im1hdC1kaWFsb2ctdGl0bGUtIitpVysrfW5nT25Jbml0KCl7dGhpcy5fZGlhbG9nUmVmfHwodGhpcy5fZGlhbG9nUmVmPWNXKHRoaXMuX2VsZW1lbnRSZWYsdGhpcy5fZGlhbG9nLm9wZW5EaWFsb2dzKSksdGhpcy5fZGlhbG9nUmVmJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e2NvbnN0IHQ9dGhpcy5fZGlhbG9nUmVmLl9jb250YWluZXJJbnN0YW5jZTt0JiYhdC5fYXJpYUxhYmVsbGVkQnkmJih0Ll9hcmlhTGFiZWxsZWRCeT10aGlzLmlkKX0pKX19clcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHJXKShTbShYRyw4KSxTbShoZyksU20ob1cpKX0sclcuybVkaXI9bG8oe3R5cGU6clcsc2VsZWN0b3JzOltbIiIsIm1hdC1kaWFsb2ctdGl0bGUiLCIiXSxbIiIsIm1hdERpYWxvZ1RpdGxlIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LWRpYWxvZy10aXRsZSJdLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJlR1KCJpZCIsbi5pZCl9LGlucHV0czp7aWQ6ImlkIn0sZXhwb3J0QXM6WyJtYXREaWFsb2dUaXRsZSJdfSksclcuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYRyxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpoZ30se3R5cGU6b1d9XSxyVy5wcm9wRGVjb3JhdG9ycz17aWQ6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoclcsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdC1kaWFsb2ctdGl0bGVdLCBbbWF0RGlhbG9nVGl0bGVdIixleHBvcnRBczoibWF0RGlhbG9nVGl0bGUiLGhvc3Q6e2NsYXNzOiJtYXQtZGlhbG9nLXRpdGxlIiwiW2lkXSI6ImlkIn19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYRyxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpoZ30se3R5cGU6b1d9XX0pLHtpZDpbe3R5cGU6eHl9XX0pO2NsYXNzIHNXe31zVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8c1cpfSxzVy7JtWRpcj1sbyh7dHlwZTpzVyxzZWxlY3RvcnM6W1siIiwibWF0LWRpYWxvZy1jb250ZW50IiwiIl0sWyJtYXQtZGlhbG9nLWNvbnRlbnQiXSxbIiIsIm1hdERpYWxvZ0NvbnRlbnQiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtZGlhbG9nLWNvbnRlbnQiXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoc1csW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdC1kaWFsb2ctY29udGVudF0sIG1hdC1kaWFsb2ctY29udGVudCwgW21hdERpYWxvZ0NvbnRlbnRdIixob3N0OntjbGFzczoibWF0LWRpYWxvZy1jb250ZW50In19XX1dLG51bGwsbnVsbCk7Y2xhc3MgbFd7fWZ1bmN0aW9uIGNXKHQsZSl7bGV0IG49dC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7Zm9yKDtuJiYhbi5jbGFzc0xpc3QuY29udGFpbnMoIm1hdC1kaWFsb2ctY29udGFpbmVyIik7KW49bi5wYXJlbnRFbGVtZW50O3JldHVybiBuP2UuZmluZCgodD0+dC5pZD09PW4uaWQpKTpudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bFcpfSxsVy7JtWRpcj1sbyh7dHlwZTpsVyxzZWxlY3RvcnM6W1siIiwibWF0LWRpYWxvZy1hY3Rpb25zIiwiIl0sWyJtYXQtZGlhbG9nLWFjdGlvbnMiXSxbIiIsIm1hdERpYWxvZ0FjdGlvbnMiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtZGlhbG9nLWFjdGlvbnMiXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobFcsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdC1kaWFsb2ctYWN0aW9uc10sIG1hdC1kaWFsb2ctYWN0aW9ucywgW21hdERpYWxvZ0FjdGlvbnNdIixob3N0OntjbGFzczoibWF0LWRpYWxvZy1hY3Rpb25zIn19XX1dLG51bGwsbnVsbCk7Y2xhc3MgZFd7fWRXLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkVyl9LGRXLsm1bW9kPWFvKHt0eXBlOmRXfSksZFcuybVpbmo9dm4oe3Byb3ZpZGVyczpbb1csdFddLGltcG9ydHM6W1t5TCxSRixYSV0sWEldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkVyxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W3lMLFJGLFhJXSxleHBvcnRzOltxRyxhVyxyVyxzVyxsVyxYSV0sZGVjbGFyYXRpb25zOltxRyxhVyxyVyxsVyxzV10scHJvdmlkZXJzOltvVyx0V10sZW50cnlDb21wb25lbnRzOltxR119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhkVyx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW3FHLGFXLHJXLGxXLHNXXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVyblt5TCxSRixYSV19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bcUcsYVcsclcsc1csbFcsWEldfX0pO2NsYXNzIHBXe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fZG9jdW1lbnQ9ZTtjb25zdCBuPXRoaXMuX3RleHRhcmVhPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIiksbz1uLnN0eWxlO28ucG9zaXRpb249ImZpeGVkIixvLnRvcD1vLm9wYWNpdHk9IjAiLG8ubGVmdD0iLTk5OWVtIixuLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksbi52YWx1ZT10LHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobil9Y29weSgpe2NvbnN0IHQ9dGhpcy5fdGV4dGFyZWE7bGV0IGU9ITE7dHJ5e2lmKHQpe2NvbnN0IG49dGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudDt0LnNlbGVjdCgpLHQuc2V0U2VsZWN0aW9uUmFuZ2UoMCx0LnZhbHVlLmxlbmd0aCksZT10aGlzLl9kb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpLG4mJm4uZm9jdXMoKX19Y2F0Y2godCl7fXJldHVybiBlfWRlc3Ryb3koKXtjb25zdCB0PXRoaXMuX3RleHRhcmVhO3QmJih0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0aGlzLl90ZXh0YXJlYT12b2lkIDApfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgbVd7Y29uc3RydWN0b3IodCl7dGhpcy5fZG9jdW1lbnQ9dH1jb3B5KHQpe2NvbnN0IGU9dGhpcy5iZWdpbkNvcHkodCksbj1lLmNvcHkoKTtyZXR1cm4gZS5kZXN0cm95KCksbn1iZWdpbkNvcHkodCl7cmV0dXJuIG5ldyBwVyh0LHRoaXMuX2RvY3VtZW50KX19bVcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG1XKSh2cihaXykpfSxtVy7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgbVcodnIoWl8pKX0sdG9rZW46bVcscHJvdmlkZWRJbjoicm9vdCJ9KSxtVy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobVcsW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB1Vz1uZXcgR2EoIkNES19DT1BZX1RPX0NMSVBCT0FSRF9DT05GSUciKTtjbGFzcyBmV3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fY2xpcGJvYXJkPXQsdGhpcy5fbmdab25lPWUsdGhpcy50ZXh0PSIiLHRoaXMuYXR0ZW1wdHM9MSx0aGlzLmNvcGllZD1uZXcgTGgsdGhpcy5fcGVuZGluZz1uZXcgU2V0LG4mJm51bGwhPW4uYXR0ZW1wdHMmJih0aGlzLmF0dGVtcHRzPW4uYXR0ZW1wdHMpfWNvcHkodD10aGlzLmF0dGVtcHRzKXtpZih0PjEpe2xldCBlPXQ7Y29uc3Qgbj10aGlzLl9jbGlwYm9hcmQuYmVnaW5Db3B5KHRoaXMudGV4dCk7dGhpcy5fcGVuZGluZy5hZGQobik7Y29uc3Qgbz0oKT0+e2NvbnN0IHQ9bi5jb3B5KCk7dHx8IS0tZXx8dGhpcy5fZGVzdHJveWVkPyh0aGlzLl9jdXJyZW50VGltZW91dD1udWxsLHRoaXMuX3BlbmRpbmcuZGVsZXRlKG4pLG4uZGVzdHJveSgpLHRoaXMuY29waWVkLmVtaXQodCkpOnRoaXMuX2N1cnJlbnRUaW1lb3V0PXRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnNldFRpbWVvdXQobywxKSkpfTtvKCl9ZWxzZSB0aGlzLmNvcGllZC5lbWl0KHRoaXMuX2NsaXBib2FyZC5jb3B5KHRoaXMudGV4dCkpfW5nT25EZXN0cm95KCl7dGhpcy5fY3VycmVudFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9jdXJyZW50VGltZW91dCksdGhpcy5fcGVuZGluZy5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX3BlbmRpbmcuY2xlYXIoKSx0aGlzLl9kZXN0cm95ZWQ9ITB9fWZXLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmVykoU20obVcpLFNtKGFfKSxTbSh1Vyw4KSl9LGZXLsm1ZGlyPWxvKHt0eXBlOmZXLHNlbGVjdG9yczpbWyIiLCJjZGtDb3B5VG9DbGlwYm9hcmQiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5jb3B5KCl9KSl9LGlucHV0czp7dGV4dDpbImNka0NvcHlUb0NsaXBib2FyZCIsInRleHQiXSxhdHRlbXB0czpbImNka0NvcHlUb0NsaXBib2FyZEF0dGVtcHRzIiwiYXR0ZW1wdHMiXX0sb3V0cHV0czp7Y29waWVkOiJjZGtDb3B5VG9DbGlwYm9hcmRDb3BpZWQifX0pLGZXLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6bVd9LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3VXXX1dfV0sZlcucHJvcERlY29yYXRvcnM9e3RleHQ6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb3B5VG9DbGlwYm9hcmQiXX1dLGF0dGVtcHRzOlt7dHlwZTp4eSxhcmdzOlsiY2RrQ29weVRvQ2xpcGJvYXJkQXR0ZW1wdHMiXX1dLGNvcGllZDpbe3R5cGU6T3ksYXJnczpbImNka0NvcHlUb0NsaXBib2FyZENvcGllZCJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZlcsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0NvcHlUb0NsaXBib2FyZF0iLGhvc3Q6eyIoY2xpY2spIjoiY29weSgpIn19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTptV30se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbdVddfV19XX0pLHt0ZXh0Olt7dHlwZTp4eSxhcmdzOlsiY2RrQ29weVRvQ2xpcGJvYXJkIl19XSxhdHRlbXB0czpbe3R5cGU6eHksYXJnczpbImNka0NvcHlUb0NsaXBib2FyZEF0dGVtcHRzIl19XSxjb3BpZWQ6W3t0eXBlOk95LGFyZ3M6WyJjZGtDb3B5VG9DbGlwYm9hcmRDb3BpZWQiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBnV3t9ZnVuY3Rpb24gaFcodCl7cmV0dXJuIEVycm9yKGBVbmFibGUgdG8gZmluZCBpY29uIHdpdGggdGhlIG5hbWUgIiR7dH0iYCl9ZnVuY3Rpb24gYlcodCl7cmV0dXJuIEVycm9yKGBUaGUgVVJMIHByb3ZpZGVkIHRvIE1hdEljb25SZWdpc3RyeSB3YXMgbm90IHRydXN0ZWQgYXMgYSByZXNvdXJjZSBVUkwgdmlhIEFuZ3VsYXIncyBEb21TYW5pdGl6ZXIuIEF0dGVtcHRlZCBVUkwgd2FzICIke3R9Ii5gKX1mdW5jdGlvbiB5Vyh0KXtyZXR1cm4gRXJyb3IoYFRoZSBsaXRlcmFsIHByb3ZpZGVkIHRvIE1hdEljb25SZWdpc3RyeSB3YXMgbm90IHRydXN0ZWQgYXMgc2FmZSBIVE1MIGJ5IEFuZ3VsYXIncyBEb21TYW5pdGl6ZXIuIEF0dGVtcHRlZCBsaXRlcmFsIHdhcyAiJHt0fSIuYCl9Z1cuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGdXKX0sZ1cuybVtb2Q9YW8oe3R5cGU6Z1d9KSxnVy7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnVyxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbZlddLGV4cG9ydHM6W2ZXXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKGdXLHtkZWNsYXJhdGlvbnM6W2ZXXSxleHBvcnRzOltmV119KTtjbGFzcyBfV3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy51cmw9dCx0aGlzLnN2Z1RleHQ9ZSx0aGlzLm9wdGlvbnM9bn19Y2xhc3MgQ1d7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5faHR0cENsaWVudD10LHRoaXMuX3Nhbml0aXplcj1lLHRoaXMuX2Vycm9ySGFuZGxlcj1vLHRoaXMuX3N2Z0ljb25Db25maWdzPW5ldyBNYXAsdGhpcy5faWNvblNldENvbmZpZ3M9bmV3IE1hcCx0aGlzLl9jYWNoZWRJY29uc0J5VXJsPW5ldyBNYXAsdGhpcy5faW5Qcm9ncmVzc1VybEZldGNoZXM9bmV3IE1hcCx0aGlzLl9mb250Q3NzQ2xhc3Nlc0J5QWxpYXM9bmV3IE1hcCx0aGlzLl9yZXNvbHZlcnM9W10sdGhpcy5fZGVmYXVsdEZvbnRTZXRDbGFzcz0ibWF0ZXJpYWwtaWNvbnMiLHRoaXMuX2RvY3VtZW50PW59YWRkU3ZnSWNvbih0LGUsbil7cmV0dXJuIHRoaXMuYWRkU3ZnSWNvbkluTmFtZXNwYWNlKCIiLHQsZSxuKX1hZGRTdmdJY29uTGl0ZXJhbCh0LGUsbil7cmV0dXJuIHRoaXMuYWRkU3ZnSWNvbkxpdGVyYWxJbk5hbWVzcGFjZSgiIix0LGUsbil9YWRkU3ZnSWNvbkluTmFtZXNwYWNlKHQsZSxuLG8pe3JldHVybiB0aGlzLl9hZGRTdmdJY29uQ29uZmlnKHQsZSxuZXcgX1cobixudWxsLG8pKX1hZGRTdmdJY29uUmVzb2x2ZXIodCl7cmV0dXJuIHRoaXMuX3Jlc29sdmVycy5wdXNoKHQpLHRoaXN9YWRkU3ZnSWNvbkxpdGVyYWxJbk5hbWVzcGFjZSh0LGUsbixvKXtjb25zdCBpPXRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShBcy5IVE1MLG4pO2lmKCFpKXRocm93IHlXKG4pO3JldHVybiB0aGlzLl9hZGRTdmdJY29uQ29uZmlnKHQsZSxuZXcgX1coIiIsaSxvKSl9YWRkU3ZnSWNvblNldCh0LGUpe3JldHVybiB0aGlzLmFkZFN2Z0ljb25TZXRJbk5hbWVzcGFjZSgiIix0LGUpfWFkZFN2Z0ljb25TZXRMaXRlcmFsKHQsZSl7cmV0dXJuIHRoaXMuYWRkU3ZnSWNvblNldExpdGVyYWxJbk5hbWVzcGFjZSgiIix0LGUpfWFkZFN2Z0ljb25TZXRJbk5hbWVzcGFjZSh0LGUsbil7cmV0dXJuIHRoaXMuX2FkZFN2Z0ljb25TZXRDb25maWcodCxuZXcgX1coZSxudWxsLG4pKX1hZGRTdmdJY29uU2V0TGl0ZXJhbEluTmFtZXNwYWNlKHQsZSxuKXtjb25zdCBvPXRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShBcy5IVE1MLGUpO2lmKCFvKXRocm93IHlXKGUpO3JldHVybiB0aGlzLl9hZGRTdmdJY29uU2V0Q29uZmlnKHQsbmV3IF9XKCIiLG8sbikpfXJlZ2lzdGVyRm9udENsYXNzQWxpYXModCxlPXQpe3JldHVybiB0aGlzLl9mb250Q3NzQ2xhc3Nlc0J5QWxpYXMuc2V0KHQsZSksdGhpc31jbGFzc05hbWVGb3JGb250QWxpYXModCl7cmV0dXJuIHRoaXMuX2ZvbnRDc3NDbGFzc2VzQnlBbGlhcy5nZXQodCl8fHR9c2V0RGVmYXVsdEZvbnRTZXRDbGFzcyh0KXtyZXR1cm4gdGhpcy5fZGVmYXVsdEZvbnRTZXRDbGFzcz10LHRoaXN9Z2V0RGVmYXVsdEZvbnRTZXRDbGFzcygpe3JldHVybiB0aGlzLl9kZWZhdWx0Rm9udFNldENsYXNzfWdldFN2Z0ljb25Gcm9tVXJsKHQpe2NvbnN0IGU9dGhpcy5fc2FuaXRpemVyLnNhbml0aXplKEFzLlJFU09VUkNFX1VSTCx0KTtpZighZSl0aHJvdyBiVyh0KTtjb25zdCBuPXRoaXMuX2NhY2hlZEljb25zQnlVcmwuZ2V0KGUpO3JldHVybiBuP0V0KE1XKG4pKTp0aGlzLl9sb2FkU3ZnSWNvbkZyb21Db25maWcobmV3IF9XKHQsbnVsbCkpLnBpcGUoRmUoKHQ9PnRoaXMuX2NhY2hlZEljb25zQnlVcmwuc2V0KGUsdCkpKSxJdCgodD0+TVcodCkpKSl9Z2V0TmFtZWRTdmdJY29uKHQsZT0iIil7Y29uc3Qgbj12VyhlLHQpO2xldCBvPXRoaXMuX3N2Z0ljb25Db25maWdzLmdldChuKTtpZihvKXJldHVybiB0aGlzLl9nZXRTdmdGcm9tQ29uZmlnKG8pO2lmKG89dGhpcy5fZ2V0SWNvbkNvbmZpZ0Zyb21SZXNvbHZlcnMoZSx0KSxvKXJldHVybiB0aGlzLl9zdmdJY29uQ29uZmlncy5zZXQobixvKSx0aGlzLl9nZXRTdmdGcm9tQ29uZmlnKG8pO2NvbnN0IGk9dGhpcy5faWNvblNldENvbmZpZ3MuZ2V0KGUpO3JldHVybiBpP3RoaXMuX2dldFN2Z0Zyb21JY29uU2V0Q29uZmlncyh0LGkpOlJ0KGhXKG4pKX1uZ09uRGVzdHJveSgpe3RoaXMuX3Jlc29sdmVycz1bXSx0aGlzLl9zdmdJY29uQ29uZmlncy5jbGVhcigpLHRoaXMuX2ljb25TZXRDb25maWdzLmNsZWFyKCksdGhpcy5fY2FjaGVkSWNvbnNCeVVybC5jbGVhcigpfV9nZXRTdmdGcm9tQ29uZmlnKHQpe3JldHVybiB0LnN2Z1RleHQ/RXQoTVcodGhpcy5fc3ZnRWxlbWVudEZyb21Db25maWcodCkpKTp0aGlzLl9sb2FkU3ZnSWNvbkZyb21Db25maWcodCkucGlwZShJdCgodD0+TVcodCkpKSl9X2dldFN2Z0Zyb21JY29uU2V0Q29uZmlncyh0LGUpe2NvbnN0IG49dGhpcy5fZXh0cmFjdEljb25XaXRoTmFtZUZyb21BbnlTZXQodCxlKTtyZXR1cm4gbj9FdChuKTokdChlLmZpbHRlcigodD0+IXQuc3ZnVGV4dCkpLm1hcCgodD0+dGhpcy5fbG9hZFN2Z0ljb25TZXRGcm9tQ29uZmlnKHQpLnBpcGUocGUoKGU9Pntjb25zdCBuPXRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShBcy5SRVNPVVJDRV9VUkwsdC51cmwpO3JldHVybiB0aGlzLl9lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IobmV3IEVycm9yKGBMb2FkaW5nIGljb24gc2V0IFVSTDogJHtufSBmYWlsZWQ6ICR7ZS5tZXNzYWdlfWApKSxFdChudWxsKX0pKSkpKSkucGlwZShJdCgoKCk9Pntjb25zdCBuPXRoaXMuX2V4dHJhY3RJY29uV2l0aE5hbWVGcm9tQW55U2V0KHQsZSk7aWYoIW4pdGhyb3cgaFcodCk7cmV0dXJuIG59KSkpfV9leHRyYWN0SWNvbldpdGhOYW1lRnJvbUFueVNldCh0LGUpe2ZvcihsZXQgbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtjb25zdCBvPWVbbl07aWYoby5zdmdUZXh0JiZvLnN2Z1RleHQuaW5kZXhPZih0KT4tMSl7Y29uc3QgZT10aGlzLl9zdmdFbGVtZW50RnJvbUNvbmZpZyhvKSxuPXRoaXMuX2V4dHJhY3RTdmdJY29uRnJvbVNldChlLHQsby5vcHRpb25zKTtpZihuKXJldHVybiBufX1yZXR1cm4gbnVsbH1fbG9hZFN2Z0ljb25Gcm9tQ29uZmlnKHQpe3JldHVybiB0aGlzLl9mZXRjaEljb24odCkucGlwZShGZSgoZT0+dC5zdmdUZXh0PWUpKSxJdCgoKCk9PnRoaXMuX3N2Z0VsZW1lbnRGcm9tQ29uZmlnKHQpKSkpfV9sb2FkU3ZnSWNvblNldEZyb21Db25maWcodCl7cmV0dXJuIHQuc3ZnVGV4dD9FdChudWxsKTp0aGlzLl9mZXRjaEljb24odCkucGlwZShGZSgoZT0+dC5zdmdUZXh0PWUpKSl9X2V4dHJhY3RTdmdJY29uRnJvbVNldCh0LGUsbil7Y29uc3Qgbz10LnF1ZXJ5U2VsZWN0b3IoYFtpZD0iJHtlfSJdYCk7aWYoIW8pcmV0dXJuIG51bGw7Y29uc3QgaT1vLmNsb25lTm9kZSghMCk7aWYoaS5yZW1vdmVBdHRyaWJ1dGUoImlkIiksInN2ZyI9PT1pLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHRoaXMuX3NldFN2Z0F0dHJpYnV0ZXMoaSxuKTtpZigic3ltYm9sIj09PWkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4gdGhpcy5fc2V0U3ZnQXR0cmlidXRlcyh0aGlzLl90b1N2Z0VsZW1lbnQoaSksbik7Y29uc3QgYT10aGlzLl9zdmdFbGVtZW50RnJvbVN0cmluZygiPHN2Zz48L3N2Zz4iKTtyZXR1cm4gYS5hcHBlbmRDaGlsZChpKSx0aGlzLl9zZXRTdmdBdHRyaWJ1dGVzKGEsbil9X3N2Z0VsZW1lbnRGcm9tU3RyaW5nKHQpe2NvbnN0IGU9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7ZS5pbm5lckhUTUw9dDtjb25zdCBuPWUucXVlcnlTZWxlY3Rvcigic3ZnIik7aWYoIW4pdGhyb3cgRXJyb3IoIjxzdmc+IHRhZyBub3QgZm91bmQiKTtyZXR1cm4gbn1fdG9TdmdFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5fc3ZnRWxlbWVudEZyb21TdHJpbmcoIjxzdmc+PC9zdmc+Iiksbj10LmF0dHJpYnV0ZXM7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspe2NvbnN0e25hbWU6byx2YWx1ZTppfT1uW3RdOyJpZCIhPT1vJiZlLnNldEF0dHJpYnV0ZShvLGkpfWZvcihsZXQgbj0wO248dC5jaGlsZE5vZGVzLmxlbmd0aDtuKyspdC5jaGlsZE5vZGVzW25dLm5vZGVUeXBlPT09dGhpcy5fZG9jdW1lbnQuRUxFTUVOVF9OT0RFJiZlLmFwcGVuZENoaWxkKHQuY2hpbGROb2Rlc1tuXS5jbG9uZU5vZGUoITApKTtyZXR1cm4gZX1fc2V0U3ZnQXR0cmlidXRlcyh0LGUpe3JldHVybiB0LnNldEF0dHJpYnV0ZSgiZml0IiwiIiksdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIjEwMCUiKSx0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCIxMDAlIiksdC5zZXRBdHRyaWJ1dGUoInByZXNlcnZlQXNwZWN0UmF0aW8iLCJ4TWlkWU1pZCBtZWV0IiksdC5zZXRBdHRyaWJ1dGUoImZvY3VzYWJsZSIsImZhbHNlIiksZSYmZS52aWV3Qm94JiZ0LnNldEF0dHJpYnV0ZSgidmlld0JveCIsZS52aWV3Qm94KSx0fV9mZXRjaEljb24odCl7dmFyIGU7Y29uc3R7dXJsOm4sb3B0aW9uczpvfT10LGk9bnVsbCE9PShlPW51bGw9PW8/dm9pZCAwOm8ud2l0aENyZWRlbnRpYWxzKSYmdm9pZCAwIT09ZSYmZTtpZighdGhpcy5faHR0cENsaWVudCl0aHJvdyhmdW5jdGlvbiBhKCl7cmV0dXJuIEVycm9yKCJDb3VsZCBub3QgZmluZCBIdHRwQ2xpZW50IHByb3ZpZGVyIGZvciB1c2Ugd2l0aCBBbmd1bGFyIE1hdGVyaWFsIGljb25zLiBQbGVhc2UgaW5jbHVkZSB0aGUgSHR0cENsaWVudE1vZHVsZSBmcm9tIEBhbmd1bGFyL2NvbW1vbi9odHRwIGluIHlvdXIgYXBwIGltcG9ydHMuIil9KSgpO2lmKG51bGw9PW4pdGhyb3cgRXJyb3IoYENhbm5vdCBmZXRjaCBpY29uIGZyb20gVVJMICIke259Ii5gKTtjb25zdCByPXRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShBcy5SRVNPVVJDRV9VUkwsbik7aWYoIXIpdGhyb3cgYlcobik7Y29uc3Qgcz10aGlzLl9pblByb2dyZXNzVXJsRmV0Y2hlcy5nZXQocik7aWYocylyZXR1cm4gcztjb25zdCBsPXRoaXMuX2h0dHBDbGllbnQuZ2V0KHIse3Jlc3BvbnNlVHlwZToidGV4dCIsd2l0aENyZWRlbnRpYWxzOml9KS5waXBlKChmdW5jdGlvbiBjKHQpe3JldHVybiBSKChmdW5jdGlvbihlLG4pe3RyeXtlLnN1YnNjcmliZShuKX1maW5hbGx5e24uYWRkKHQpfX0pKX0pKCgoKT0+dGhpcy5faW5Qcm9ncmVzc1VybEZldGNoZXMuZGVsZXRlKHIpKSksRWUoKSk7cmV0dXJuIHRoaXMuX2luUHJvZ3Jlc3NVcmxGZXRjaGVzLnNldChyLGwpLGx9X2FkZFN2Z0ljb25Db25maWcodCxlLG4pe3JldHVybiB0aGlzLl9zdmdJY29uQ29uZmlncy5zZXQodlcodCxlKSxuKSx0aGlzfV9hZGRTdmdJY29uU2V0Q29uZmlnKHQsZSl7Y29uc3Qgbj10aGlzLl9pY29uU2V0Q29uZmlncy5nZXQodCk7cmV0dXJuIG4/bi5wdXNoKGUpOnRoaXMuX2ljb25TZXRDb25maWdzLnNldCh0LFtlXSksdGhpc31fc3ZnRWxlbWVudEZyb21Db25maWcodCl7aWYoIXQuc3ZnRWxlbWVudCl7Y29uc3QgZT10aGlzLl9zdmdFbGVtZW50RnJvbVN0cmluZyh0LnN2Z1RleHQpO3RoaXMuX3NldFN2Z0F0dHJpYnV0ZXMoZSx0Lm9wdGlvbnMpLHQuc3ZnRWxlbWVudD1lfXJldHVybiB0LnN2Z0VsZW1lbnR9X2dldEljb25Db25maWdGcm9tUmVzb2x2ZXJzKHQsZSl7Zm9yKGxldCBvPTA7bzx0aGlzLl9yZXNvbHZlcnMubGVuZ3RoO28rKyl7Y29uc3QgaT10aGlzLl9yZXNvbHZlcnNbb10oZSx0KTtpZihpKXJldHVybihuPWkpLnVybCYmbi5vcHRpb25zP25ldyBfVyhpLnVybCxudWxsLGkub3B0aW9ucyk6bmV3IF9XKGksbnVsbCl9dmFyIG47Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL319ZnVuY3Rpb24gTVcodCl7cmV0dXJuIHQuY2xvbmVOb2RlKCEwKX1mdW5jdGlvbiB2Vyh0LGUpe3JldHVybiB0KyI6IitlfUNXLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDVykodnIoUEQsOCksdnIoenYpLHZyKFpfLDgpLHZyKFpzKSl9LENXLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBDVyh2cihQRCw4KSx2cih6diksdnIoWl8sOCksdnIoWnMpKX0sdG9rZW46Q1cscHJvdmlkZWRJbjoicm9vdCJ9KSxDVy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlBELGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnp2fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTpac31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQ1csW3t0eXBlOmltLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlBELGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnp2fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTpac31dfSksbnVsbCksbmV3IFNyLG5ldyBFcixuZXcgU3IsbmV3IFNyO2NvbnN0IHhXPUpJKGNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuX2VsZW1lbnRSZWY9dH19KSxPVz1uZXcgR2EoIm1hdC1pY29uLWxvY2F0aW9uIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBQVygpe2NvbnN0IHQ9T3IoWl8pLGU9dD90LmxvY2F0aW9uOm51bGw7cmV0dXJue2dldFBhdGhuYW1lOigpPT5lP2UucGF0aG5hbWUrZS5zZWFyY2g6IiJ9fX0pLHdXPVsiY2xpcC1wYXRoIiwiY29sb3ItcHJvZmlsZSIsInNyYyIsImN1cnNvciIsImZpbGwiLCJmaWx0ZXIiLCJtYXJrZXIiLCJtYXJrZXItc3RhcnQiLCJtYXJrZXItbWlkIiwibWFya2VyLWVuZCIsIm1hc2siLCJzdHJva2UiXSxrVz13Vy5tYXAoKHQ9PmBbJHt0fV1gKSkuam9pbigiLCAiKSxTVz0vXnVybFwoWyciXT8jKC4qPylbJyJdP1wpJC87Y2xhc3MgRFcgZXh0ZW5kcyB4V3tjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3N1cGVyKHQpLHRoaXMuX2ljb25SZWdpc3RyeT1lLHRoaXMuX2xvY2F0aW9uPW8sdGhpcy5fZXJyb3JIYW5kbGVyPWksdGhpcy5faW5saW5lPSExLHRoaXMuX2N1cnJlbnRJY29uRmV0Y2g9bS5FTVBUWSxufHx0Lm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKX1nZXQgaW5saW5lKCl7cmV0dXJuIHRoaXMuX2lubGluZX1zZXQgaW5saW5lKHQpe3RoaXMuX2lubGluZT15eih0KX1nZXQgc3ZnSWNvbigpe3JldHVybiB0aGlzLl9zdmdJY29ufXNldCBzdmdJY29uKHQpe3QhPT10aGlzLl9zdmdJY29uJiYodD90aGlzLl91cGRhdGVTdmdJY29uKHQpOnRoaXMuX3N2Z0ljb24mJnRoaXMuX2NsZWFyU3ZnRWxlbWVudCgpLHRoaXMuX3N2Z0ljb249dCl9Z2V0IGZvbnRTZXQoKXtyZXR1cm4gdGhpcy5fZm9udFNldH1zZXQgZm9udFNldCh0KXtjb25zdCBlPXRoaXMuX2NsZWFudXBGb250VmFsdWUodCk7ZSE9PXRoaXMuX2ZvbnRTZXQmJih0aGlzLl9mb250U2V0PWUsdGhpcy5fdXBkYXRlRm9udEljb25DbGFzc2VzKCkpfWdldCBmb250SWNvbigpe3JldHVybiB0aGlzLl9mb250SWNvbn1zZXQgZm9udEljb24odCl7Y29uc3QgZT10aGlzLl9jbGVhbnVwRm9udFZhbHVlKHQpO2UhPT10aGlzLl9mb250SWNvbiYmKHRoaXMuX2ZvbnRJY29uPWUsdGhpcy5fdXBkYXRlRm9udEljb25DbGFzc2VzKCkpfV9zcGxpdEljb25OYW1lKHQpe2lmKCF0KXJldHVyblsiIiwiIl07Y29uc3QgZT10LnNwbGl0KCI6Iik7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDE6cmV0dXJuWyIiLGVbMF1dO2Nhc2UgMjpyZXR1cm4gZTtkZWZhdWx0OnRocm93IEVycm9yKGBJbnZhbGlkIGljb24gbmFtZTogIiR7dH0iYCl9fW5nT25Jbml0KCl7dGhpcy5fdXBkYXRlRm9udEljb25DbGFzc2VzKCl9bmdBZnRlclZpZXdDaGVja2VkKCl7Y29uc3QgdD10aGlzLl9lbGVtZW50c1dpdGhFeHRlcm5hbFJlZmVyZW5jZXM7aWYodCYmdC5zaXplKXtjb25zdCB0PXRoaXMuX2xvY2F0aW9uLmdldFBhdGhuYW1lKCk7dCE9PXRoaXMuX3ByZXZpb3VzUGF0aCYmKHRoaXMuX3ByZXZpb3VzUGF0aD10LHRoaXMuX3ByZXBlbmRQYXRoVG9SZWZlcmVuY2VzKHQpKX19bmdPbkRlc3Ryb3koKXt0aGlzLl9jdXJyZW50SWNvbkZldGNoLnVuc3Vic2NyaWJlKCksdGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzJiZ0aGlzLl9lbGVtZW50c1dpdGhFeHRlcm5hbFJlZmVyZW5jZXMuY2xlYXIoKX1fdXNpbmdGb250SWNvbigpe3JldHVybiF0aGlzLnN2Z0ljb259X3NldFN2Z0VsZW1lbnQodCl7dGhpcy5fY2xlYXJTdmdFbGVtZW50KCk7Y29uc3QgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIik7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS50ZXh0Q29udGVudCs9IiAiO2NvbnN0IG49dGhpcy5fbG9jYXRpb24uZ2V0UGF0aG5hbWUoKTt0aGlzLl9wcmV2aW91c1BhdGg9bix0aGlzLl9jYWNoZUNoaWxkcmVuV2l0aEV4dGVybmFsUmVmZXJlbmNlcyh0KSx0aGlzLl9wcmVwZW5kUGF0aFRvUmVmZXJlbmNlcyhuKSx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodCl9X2NsZWFyU3ZnRWxlbWVudCgpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2xldCBlPXQuY2hpbGROb2Rlcy5sZW5ndGg7Zm9yKHRoaXMuX2VsZW1lbnRzV2l0aEV4dGVybmFsUmVmZXJlbmNlcyYmdGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzLmNsZWFyKCk7ZS0tOyl7Y29uc3Qgbj10LmNoaWxkTm9kZXNbZV07MT09PW4ubm9kZVR5cGUmJiJzdmciIT09bi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpfHx0LnJlbW92ZUNoaWxkKG4pfX1fdXBkYXRlRm9udEljb25DbGFzc2VzKCl7aWYoIXRoaXMuX3VzaW5nRm9udEljb24oKSlyZXR1cm47Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsZT10aGlzLmZvbnRTZXQ/dGhpcy5faWNvblJlZ2lzdHJ5LmNsYXNzTmFtZUZvckZvbnRBbGlhcyh0aGlzLmZvbnRTZXQpOnRoaXMuX2ljb25SZWdpc3RyeS5nZXREZWZhdWx0Rm9udFNldENsYXNzKCk7ZSE9dGhpcy5fcHJldmlvdXNGb250U2V0Q2xhc3MmJih0aGlzLl9wcmV2aW91c0ZvbnRTZXRDbGFzcyYmdC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX3ByZXZpb3VzRm9udFNldENsYXNzKSxlJiZ0LmNsYXNzTGlzdC5hZGQoZSksdGhpcy5fcHJldmlvdXNGb250U2V0Q2xhc3M9ZSksdGhpcy5mb250SWNvbiE9dGhpcy5fcHJldmlvdXNGb250SWNvbkNsYXNzJiYodGhpcy5fcHJldmlvdXNGb250SWNvbkNsYXNzJiZ0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fcHJldmlvdXNGb250SWNvbkNsYXNzKSx0aGlzLmZvbnRJY29uJiZ0LmNsYXNzTGlzdC5hZGQodGhpcy5mb250SWNvbiksdGhpcy5fcHJldmlvdXNGb250SWNvbkNsYXNzPXRoaXMuZm9udEljb24pfV9jbGVhbnVwRm9udFZhbHVlKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90LnRyaW0oKS5zcGxpdCgiICIpWzBdOnR9X3ByZXBlbmRQYXRoVG9SZWZlcmVuY2VzKHQpe2NvbnN0IGU9dGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzO2UmJmUuZm9yRWFjaCgoKGUsbik9PntlLmZvckVhY2goKGU9PntuLnNldEF0dHJpYnV0ZShlLm5hbWUsYHVybCgnJHt0fSMke2UudmFsdWV9JylgKX0pKX0pKX1fY2FjaGVDaGlsZHJlbldpdGhFeHRlcm5hbFJlZmVyZW5jZXModCl7Y29uc3QgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoa1cpLG49dGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzPXRoaXMuX2VsZW1lbnRzV2l0aEV4dGVybmFsUmVmZXJlbmNlc3x8bmV3IE1hcDtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl3Vy5mb3JFYWNoKChvPT57Y29uc3QgaT1lW3RdLGE9aS5nZXRBdHRyaWJ1dGUobykscj1hP2EubWF0Y2goU1cpOm51bGw7aWYocil7bGV0IHQ9bi5nZXQoaSk7dHx8KHQ9W10sbi5zZXQoaSx0KSksdC5wdXNoKHtuYW1lOm8sdmFsdWU6clsxXX0pfX0pKX1fdXBkYXRlU3ZnSWNvbih0KXtpZih0aGlzLl9zdmdOYW1lc3BhY2U9bnVsbCx0aGlzLl9zdmdOYW1lPW51bGwsdGhpcy5fY3VycmVudEljb25GZXRjaC51bnN1YnNjcmliZSgpLHQpe2NvbnN0W2Usbl09dGhpcy5fc3BsaXRJY29uTmFtZSh0KTtlJiYodGhpcy5fc3ZnTmFtZXNwYWNlPWUpLG4mJih0aGlzLl9zdmdOYW1lPW4pLHRoaXMuX2N1cnJlbnRJY29uRmV0Y2g9dGhpcy5faWNvblJlZ2lzdHJ5LmdldE5hbWVkU3ZnSWNvbihuLGUpLnBpcGUoYmUoMSkpLnN1YnNjcmliZSgodD0+dGhpcy5fc2V0U3ZnRWxlbWVudCh0KSksKHQ9Pnt0aGlzLl9lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IobmV3IEVycm9yKGBFcnJvciByZXRyaWV2aW5nIGljb24gJHtlfToke259ISAke3QubWVzc2FnZX1gKSl9KSl9fX1EVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RFcpKFNtKGhnKSxTbShDVyksTmEoImFyaWEtaGlkZGVuIiksU20oT1cpLFNtKFpzKSl9LERXLsm1Y21wPXRvKHt0eXBlOkRXLHNlbGVjdG9yczpbWyJtYXQtaWNvbiJdXSxob3N0QXR0cnM6WyJyb2xlIiwiaW1nIiwxLCJtYXQtaWNvbiIsIm5vdHJhbnNsYXRlIl0saG9zdFZhcnM6Nyxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmKGpwKCJkYXRhLW1hdC1pY29uLXR5cGUiLG4uX3VzaW5nRm9udEljb24oKT8iZm9udCI6InN2ZyIpKCJkYXRhLW1hdC1pY29uLW5hbWUiLG4uX3N2Z05hbWV8fG4uZm9udEljb24pKCJkYXRhLW1hdC1pY29uLW5hbWVzcGFjZSIsbi5fc3ZnTmFtZXNwYWNlfHxuLmZvbnRTZXQpLHB1KCJtYXQtaWNvbi1pbmxpbmUiLG4uaW5saW5lKSgibWF0LWljb24tbm8tY29sb3IiLCJwcmltYXJ5IiE9PW4uY29sb3ImJiJhY2NlbnQiIT09bi5jb2xvciYmIndhcm4iIT09bi5jb2xvcikpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciIsaW5saW5lOiJpbmxpbmUiLHN2Z0ljb246InN2Z0ljb24iLGZvbnRTZXQ6ImZvbnRTZXQiLGZvbnRJY29uOiJmb250SWNvbiJ9LGV4cG9ydEFzOlsibWF0SWNvbiJdLGZlYXR1cmVzOlt4cF0sbmdDb250ZW50U2VsZWN0b3JzOlsiKiJdLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFhtKDApKX0sc3R5bGVzOlsiLm1hdC1pY29ue2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtkaXNwbGF5OmlubGluZS1ibG9jaztmaWxsOmN1cnJlbnRDb2xvcjtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS5tYXQtaWNvbi5tYXQtaWNvbi1pbmxpbmV7Zm9udC1zaXplOmluaGVyaXQ7aGVpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDt3aWR0aDppbmhlcml0fVtkaXI9cnRsXSAubWF0LWljb24tcnRsLW1pcnJvcnt0cmFuc2Zvcm06c2NhbGUoLTEsIDEpfS5tYXQtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5KSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb257ZGlzcGxheTpibG9ja30ubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbnttYXJnaW46YXV0b31cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLERXLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOkNXfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbImFyaWEtaGlkZGVuIl19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W09XXX1dfSx7dHlwZTpac31dLERXLnByb3BEZWNvcmF0b3JzPXtpbmxpbmU6W3t0eXBlOnh5fV0sc3ZnSWNvbjpbe3R5cGU6eHl9XSxmb250U2V0Olt7dHlwZTp4eX1dLGZvbnRJY29uOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKERXLFt7dHlwZTpNeSxhcmdzOlt7dGVtcGxhdGU6IjxuZy1jb250ZW50PjwvbmctY29udGVudD4iLHNlbGVjdG9yOiJtYXQtaWNvbiIsZXhwb3J0QXM6Im1hdEljb24iLGlucHV0czpbImNvbG9yIl0saG9zdDp7cm9sZToiaW1nIixjbGFzczoibWF0LWljb24gbm90cmFuc2xhdGUiLCJbYXR0ci5kYXRhLW1hdC1pY29uLXR5cGVdIjonX3VzaW5nRm9udEljb24oKSA/ICJmb250IiA6ICJzdmciJywiW2F0dHIuZGF0YS1tYXQtaWNvbi1uYW1lXSI6Il9zdmdOYW1lIHx8IGZvbnRJY29uIiwiW2F0dHIuZGF0YS1tYXQtaWNvbi1uYW1lc3BhY2VdIjoiX3N2Z05hbWVzcGFjZSB8fCBmb250U2V0IiwiW2NsYXNzLm1hdC1pY29uLWlubGluZV0iOiJpbmxpbmUiLCJbY2xhc3MubWF0LWljb24tbm8tY29sb3JdIjonY29sb3IgIT09ICJwcmltYXJ5IiAmJiBjb2xvciAhPT0gImFjY2VudCIgJiYgY29sb3IgIT09ICJ3YXJuIid9LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHN0eWxlczpbIi5tYXQtaWNvbntiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmlsbDpjdXJyZW50Q29sb3I7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ubWF0LWljb24ubWF0LWljb24taW5saW5le2ZvbnQtc2l6ZTppbmhlcml0O2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7d2lkdGg6aW5oZXJpdH1bZGlyPXJ0bF0gLm1hdC1pY29uLXJ0bC1taXJyb3J7dHJhbnNmb3JtOnNjYWxlKC0xLCAxKX0ubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29ue2Rpc3BsYXk6YmxvY2t9Lm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb257bWFyZ2luOmF1dG99XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpDV30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJhcmlhLWhpZGRlbiJdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltPV119XX0se3R5cGU6WnN9XX0pLHtpbmxpbmU6W3t0eXBlOnh5fV0sc3ZnSWNvbjpbe3R5cGU6eHl9XSxmb250U2V0Olt7dHlwZTp4eX1dLGZvbnRJY29uOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBFV3t9RVcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEVXKX0sRVcuybVtb2Q9YW8oe3R5cGU6RVd9KSxFVy7JtWluaj12bih7aW1wb3J0czpbW1hJXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEVXLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbWEldLGV4cG9ydHM6W0RXLFhJXSxkZWNsYXJhdGlvbnM6W0RXXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEVXLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bRFddfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1hJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltEVyxYSV19fSk7Y2xhc3MgUld7Y29uc3RydWN0b3IodCl7dGhpcy5kaWFsb2dSZWY9dCx0aGlzLnRlbnNvcmJvYXJkRG90RGV2VXJsPSJodHRwczovL3RlbnNvcmJvYXJkLmRldi8/dXRtX3NvdXJjZT10ZW5zb3Jib2FyZCJ9b25DbG9zZSgpe3RoaXMuZGlhbG9nUmVmLmNsb3NlKCl9Z2V0Q29tbWFuZFRleHQoKXtyZXR1cm4gdGhpcy5sb2dkaXI/InRlbnNvcmJvYXJkIGRldiB1cGxvYWQgLS1sb2dkaXIgXFxcbiAgICAnIit0aGlzLmxvZ2Rpci5yZXBsYWNlKC8nL2csIidcXCcnIikrIiciOiJ0ZW5zb3Jib2FyZCBkZXYgdXBsb2FkIC0tbG9nZGlyIHtsb2dkaXJ9In19UlcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJXKShTbShYRykpfSxSVy7JtWNtcD10byh7dHlwZTpSVyxzZWxlY3RvcnM6W1sidGJkZXYtdXBsb2FkLWRpYWxvZy1jb21wb25lbnQiXV0saW5wdXRzOntsb2dkaXI6ImxvZ2RpciJ9LGRlY2xzOjIxLHZhcnM6NCxjb25zdHM6W1sidGFyZ2V0IiwiX2JsYW5rIiwicmVsIiwibm9yZWZlcnJlciBub29wZW5lciIsMSwiYW5jaG9yLXRleHQiLDMsImhyZWYiXSxbMSwiY29tbWFuZCJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwidGl0bGUiLCJDbGljayB0byBjb3B5IHRoZSBjb21tYW5kIiwxLCJjb21tYW5kLWNvcHkiLDMsImNka0NvcHlUb0NsaXBib2FyZCJdLFsic3ZnSWNvbiIsImNvbnRlbnRfY29weV8yNHB4Il0sWzEsImJvdHRvbS1idXR0b25zIl0sWyJtYXQtZmxhdC1idXR0b24iLCIiLDEsImNsb3NlLWJ1dHRvbiIsMywiY2xpY2siXSxbIm1hdC1mbGF0LWJ1dHRvbiIsIiIsInRhcmdldCIsIl9ibGFuayIsInJlbCIsIm5vcmVmZXJyZXIgbm9vcGVuZXIiLDEsImxlYXJuLW1vcmUtYnV0dG9uIiwzLCJocmVmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJoMyIpLGt1KDEsIlVwbG9hZCB0byBUZW5zb3JCb2FyZC5kZXYiKSxBbSgpLFJtKDIsInAiKSxSbSgzLCJhIiwwKSxrdSg0LCIgVGVuc29yQm9hcmQuZGV2IiksQW0oKSxrdSg1LCIgZW5hYmxlcyB5b3UgdG8gZWFzaWx5IGhvc3QsIHRyYWNrLCBhbmQgc2hhcmUgeW91ciBNTCBleHBlcmltZW50cyB3aXRoIGV2ZXJ5b25lLiBZb3UgY2FuIHNoYXJlIGEgbGluayB0byB0aGUgdXBsb2FkZWQgVGVuc29yQm9hcmQgaW4gcGFwZXJzLCBibG9nIHBvc3RzLCBhbmQgc29jaWFsIG1lZGlhLiBUaGlzIGNhbiBzaG93Y2FzZSB0aGUgcmVzdWx0cyBtb3JlIGVmZmVjdGl2ZWx5IGFuZCBoZWxwcyByZXByb2R1Y2liaWxpdHkuXG4iKSxBbSgpLFJtKDYsInAiKSxrdSg3LCJUbyB1cGxvYWQgYSBsb2dkaXIgdG8gVGVuc29yQm9hcmQuZGV2LCBydW4gdGhlIGNvbW1hbmQ6IiksQW0oKSxSbSg4LCJkaXYiLDEpLFJtKDksInByZSIpLFJtKDEwLCJjb2RlIiksa3UoMTEpLEFtKCksQW0oKSxSbSgxMiwiYnV0dG9uIiwyKSxUbSgxMywibWF0LWljb24iLDMpLEFtKCksQW0oKSxSbSgxNCwicCIpLGt1KDE1LCIgT25seSBjZXJ0YWluIHBsdWdpbnMgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuIFVwbG9hZGVkIFRlbnNvckJvYXJkcyBhcmUgcHVibGljIGFuZCB2aXNpYmxlIHRvIGV2ZXJ5b25lOyBkbyBub3QgdXBsb2FkIHNlbnNpdGl2ZSBkYXRhLlxuIiksQW0oKSxSbSgxNiwiZGl2Iiw0KSxSbSgxNywiYnV0dG9uIiw1KSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25DbG9zZSgpfSkpLGt1KDE4LCIgQ2xvc2UgIiksQW0oKSxSbSgxOSwiYSIsNiksa3UoMjAsIiBMZWFybiBtb3JlICIpLEFtKCksQW0oKSksMiZlJiYocmMoMyksS20oImhyZWYiLG4udGVuc29yYm9hcmREb3REZXZVcmwsVHMpLHJjKDgpLFN1KG4uZ2V0Q29tbWFuZFRleHQoKSkscmMoMSksRG0oImNka0NvcHlUb0NsaXBib2FyZCIsbi5nZXRDb21tYW5kVGV4dCgpKSxyYyg3KSxLbSgiaHJlZiIsbi50ZW5zb3Jib2FyZERvdERldlVybCxUcykpfSxkaXJlY3RpdmVzOltYSCxmVyxEVyxLSF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9ZGl2W19uZ2NvbnRlbnQtJUNPTVAlXSwgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjE2cHggMH1bX25naG9zdC0lQ09NUCVdID4gW19uZ2NvbnRlbnQtJUNPTVAlXTpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9W19uZ2hvc3QtJUNPTVAlXSA+IFtfbmdjb250ZW50LSVDT01QJV06bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9aDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxLjV9cFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzIxMjEyMTtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmZmZ9LmFuY2hvci10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWRlY29yYXRpb246bm9uZX0uY29tbWFuZFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6I2Y1ZjZmNztib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoycHggMTJweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuY29tbWFuZFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5jb21tYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiM2MTYxNjF9cHJlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdy14OmF1dG99Y29kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS41fS5ib3R0b20tYnV0dG9uc1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNsb3NlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWFyZ2luLXJpZ2h0OjhweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuY2xvc2UtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNsb3NlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9W19uZ2hvc3QtJUNPTVAlXSAgIC5sZWFybi1tb3JlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzE5NzZkMjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmxlYXJuLW1vcmUtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNDJhNWY1fSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChSVyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0YmRldi11cGxvYWQtZGlhbG9nLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vdGJkZXZfdXBsb2FkX2RpYWxvZ19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi90YmRldl91cGxvYWRfZGlhbG9nX2NvbXBvbmVudC5jc3MiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhHfV19KSx7bG9nZGlyOlt7dHlwZTp4eX1dfSk7Y29uc3QgQVc9WncoeFIsKHQ9PnQuZGF0YV9sb2NhdGlvbikpO2NsYXNzIFRXe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmxvZ2RpciQ9dGhpcy5zdG9yZS5waXBlKEZ3KEFXKSl9fWZ1bmN0aW9uIE5XKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwxKSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkub3BlbkRpYWxvZygpfSkpLFJtKDEsInNwYW4iLDIpLFRtKDIsIm1hdC1pY29uIiwzKSxrdSgzLCIgVXBsb2FkICIpLEFtKCksQW0oKX19VFcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRXKShTbShJdykpfSxUVy7JtWNtcD10byh7dHlwZTpUVyxzZWxlY3RvcnM6W1sidGJkZXYtdXBsb2FkLWRpYWxvZyJdXSxkZWNsczoyLHZhcnM6Myxjb25zdHM6W1szLCJsb2dkaXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsInRiZGV2LXVwbG9hZC1kaWFsb2ctY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpKSwyJmUmJkRtKCJsb2dkaXIiLFRoKDEsMSxuLmxvZ2RpciQpKX0sZGlyZWN0aXZlczpbUlddLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChUVyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0YmRldi11cGxvYWQtZGlhbG9nIix0ZW1wbGF0ZTonXG4gICAgPHRiZGV2LXVwbG9hZC1kaWFsb2ctY29tcG9uZW50XG4gICAgICBbbG9nZGlyXT0ibG9nZGlyJCB8IGFzeW5jIlxuICAgID48L3RiZGV2LXVwbG9hZC1kaWFsb2ctY29tcG9uZW50PlxuICAnfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IHpXPVsibG9jYWxob3N0IiwiMTI3LjAuMC4xIl07Y2xhc3MgSVd7Y29uc3RydWN0b3IodCxlKXt0aGlzLndpbmRvdz10LHRoaXMuZGlhbG9nPWUsdGhpcy5zaG93bj16Vy5pbmNsdWRlcyh0LmxvY2F0aW9uLmhvc3RuYW1lKX1vcGVuRGlhbG9nKCl7dGhpcy5kaWFsb2cub3BlbihUVyx7d2lkdGg6IjU2MHB4In0pfX1mdW5jdGlvbiBIVyh0LGUpezEmdCYmKHFpKCksUm0oMCwic3ZnIiwyKSxUbSgxLCJwb2x5Z29uIiwzKSxBbSgpKX1JVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SVcpKFNtKCJ3aW5kb3ciKSxTbShvVykpfSxJVy7JtWNtcD10byh7dHlwZTpJVyxzZWxlY3RvcnM6W1sidGJkZXYtdXBsb2FkLWJ1dHRvbiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgic2hvd24iLG4uc2hvd24pfSxkZWNsczoxLHZhcnM6MSxjb25zdHM6W1sibWF0LXN0cm9rZWQtYnV0dG9uIiwiIiwzLCJjbGljayIsNCwibmdJZiJdLFsibWF0LXN0cm9rZWQtYnV0dG9uIiwiIiwzLCJjbGljayJdLFsxLCJidXR0b24tY29udGVudHMiXSxbInN2Z0ljb24iLCJpbmZvX291dGxpbmVfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZRcCgwLE5XLDQsMCwiYnV0dG9uIiwwKSwyJmUmJkRtKCJuZ0lmIixuLnNob3duKX0sZGlyZWN0aXZlczpbZE0sWEgsRFddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV0gICBidXR0b24ubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmVifWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIGJ1dHRvbi5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH0uYnV0dG9uLWNvbnRlbnRzW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX1tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjZweH0nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSVcsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGJkZXYtdXBsb2FkLWJ1dHRvbiIsdGVtcGxhdGVVcmw6Ii4vdGJkZXZfdXBsb2FkX2J1dHRvbl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi90YmRldl91cGxvYWRfYnV0dG9uX2NvbXBvbmVudC5jc3MiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOldpbmRvdyxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlsid2luZG93Il19XX0se3R5cGU6b1d9XX0pLHtzaG93bjpbe3R5cGU6UHksYXJnczpbImNsYXNzLnNob3duIl19XX0pO2NvbnN0IEZXPVsiKiJdO2Z1bmN0aW9uIExXKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwwKSxWbSgia2V5ZG93biIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkuX2hhbmRsZUtleWRvd24obil9KSkoImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLmNsb3NlZC5lbWl0KCJjbGljayIpfSkpKCJAdHJhbnNmb3JtTWVudS5zdGFydCIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkuX29uQW5pbWF0aW9uU3RhcnQobil9KSkoIkB0cmFuc2Zvcm1NZW51LmRvbmUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLl9vbkFuaW1hdGlvbkRvbmUobil9KSksUm0oMSwiZGl2IiwxKSxYbSgyKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7RG0oImlkIix0LnBhbmVsSWQpKCJuZ0NsYXNzIix0Ll9jbGFzc0xpc3QpKCJAdHJhbnNmb3JtTWVudSIsdC5fcGFuZWxBbmltYXRpb25TdGF0ZSksanAoImFyaWEtbGFiZWwiLHQuYXJpYUxhYmVsfHxudWxsKSgiYXJpYS1sYWJlbGxlZGJ5Iix0LmFyaWFMYWJlbGxlZGJ5fHxudWxsKSgiYXJpYS1kZXNjcmliZWRieSIsdC5hcmlhRGVzY3JpYmVkYnl8fG51bGwpfX1jb25zdCBCVz17dHJhbnNmb3JtTWVudTpueCgidHJhbnNmb3JtTWVudSIsW3J4KCJ2b2lkIixheCh7b3BhY2l0eTowLHRyYW5zZm9ybToic2NhbGUoMC44KSJ9KSksbHgoInZvaWQgPT4gZW50ZXIiLG94KCIxMjBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSIsYXgoe29wYWNpdHk6MSx0cmFuc2Zvcm06InNjYWxlKDEpIn0pKSksbHgoIiogPT4gdm9pZCIsb3goIjEwMG1zIDI1bXMgbGluZWFyIixheCh7b3BhY2l0eTowfSkpKV0pLGZhZGVJbkl0ZW1zOm54KCJmYWRlSW5JdGVtcyIsW3J4KCJzaG93aW5nIixheCh7b3BhY2l0eToxfSkpLGx4KCJ2b2lkID0+ICoiLFtheCh7b3BhY2l0eTowfSksb3goIjQwMG1zIDEwMG1zIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpIildKV0pfSxWVz1uZXcgR2EoIk1hdE1lbnVDb250ZW50Iik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGpXe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3RoaXMuX3RlbXBsYXRlPXQsdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPWUsdGhpcy5fYXBwUmVmPW4sdGhpcy5faW5qZWN0b3I9byx0aGlzLl92aWV3Q29udGFpbmVyUmVmPWksdGhpcy5fZG9jdW1lbnQ9YSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1yLHRoaXMuX2F0dGFjaGVkPW5ldyBJfWF0dGFjaCh0PXt9KXt0aGlzLl9wb3J0YWx8fCh0aGlzLl9wb3J0YWw9bmV3IHhGKHRoaXMuX3RlbXBsYXRlLHRoaXMuX3ZpZXdDb250YWluZXJSZWYpKSx0aGlzLmRldGFjaCgpLHRoaXMuX291dGxldHx8KHRoaXMuX291dGxldD1uZXcgd0YodGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLHRoaXMuX2FwcFJlZix0aGlzLl9pbmplY3RvcikpO2NvbnN0IGU9dGhpcy5fdGVtcGxhdGUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2UucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5fb3V0bGV0Lm91dGxldEVsZW1lbnQsZSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYmJnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX3BvcnRhbC5hdHRhY2godGhpcy5fb3V0bGV0LHQpLHRoaXMuX2F0dGFjaGVkLm5leHQoKX1kZXRhY2goKXt0aGlzLl9wb3J0YWwuaXNBdHRhY2hlZCYmdGhpcy5fcG9ydGFsLmRldGFjaCgpfW5nT25EZXN0cm95KCl7dGhpcy5fb3V0bGV0JiZ0aGlzLl9vdXRsZXQuZGlzcG9zZSgpfX1qVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8alcpKFNtKFhnKSxTbSh1ZyksU20oT18pLFNtKHJwKSxTbShlaCksU20oWl8pLFNtKFVnKSl9LGpXLsm1ZGlyPWxvKHt0eXBlOmpXLHNlbGVjdG9yczpbWyJuZy10ZW1wbGF0ZSIsIm1hdE1lbnVDb250ZW50IiwiIl1dLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6VlcsdXNlRXhpc3Rpbmc6ald9XSldfSksalcuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYZ30se3R5cGU6dWd9LHt0eXBlOk9ffSx7dHlwZTpycH0se3R5cGU6ZWh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6VWd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGpXLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im5nLXRlbXBsYXRlW21hdE1lbnVDb250ZW50XSIscHJvdmlkZXJzOlt7cHJvdmlkZTpWVyx1c2VFeGlzdGluZzpqV31dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WGd9LHt0eXBlOnVnfSx7dHlwZTpPX30se3R5cGU6cnB9LHt0eXBlOmVofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlVnfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFVXPW5ldyBHYSgiTUFUX01FTlVfUEFORUwiKSxHVz1RSShLSShjbGFzc3t9KSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIFdXIGV4dGVuZHMgR1d7Y29uc3RydWN0b3IodCxlLG4sbyxpKXtzdXBlcigpLHRoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9mb2N1c01vbml0b3I9bix0aGlzLl9wYXJlbnRNZW51PW8sdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9aSx0aGlzLnJvbGU9Im1lbnVpdGVtIix0aGlzLl9ob3ZlcmVkPW5ldyBJLHRoaXMuX2ZvY3VzZWQ9bmV3IEksdGhpcy5faGlnaGxpZ2h0ZWQ9ITEsdGhpcy5fdHJpZ2dlcnNTdWJtZW51PSExLG8mJm8uYWRkSXRlbSYmby5hZGRJdGVtKHRoaXMpfWZvY3VzKHQsZSl7dGhpcy5fZm9jdXNNb25pdG9yJiZ0P3RoaXMuX2ZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLl9nZXRIb3N0RWxlbWVudCgpLHQsZSk6dGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5mb2N1cyhlKSx0aGlzLl9mb2N1c2VkLm5leHQodGhpcyl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZm9jdXNNb25pdG9yJiZ0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCExKX1uZ09uRGVzdHJveSgpe3RoaXMuX2ZvY3VzTW9uaXRvciYmdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpLHRoaXMuX3BhcmVudE1lbnUmJnRoaXMuX3BhcmVudE1lbnUucmVtb3ZlSXRlbSYmdGhpcy5fcGFyZW50TWVudS5yZW1vdmVJdGVtKHRoaXMpLHRoaXMuX2hvdmVyZWQuY29tcGxldGUoKSx0aGlzLl9mb2N1c2VkLmNvbXBsZXRlKCl9X2dldFRhYkluZGV4KCl7cmV0dXJuIHRoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9X2dldEhvc3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudH1fY2hlY2tEaXNhYmxlZCh0KXt0aGlzLmRpc2FibGVkJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpfV9oYW5kbGVNb3VzZUVudGVyKCl7dGhpcy5faG92ZXJlZC5uZXh0KHRoaXMpfWdldExhYmVsKCl7dmFyIHQsZTtjb25zdCBuPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9uZU5vZGUoITApLG89bi5xdWVyeVNlbGVjdG9yQWxsKCJtYXQtaWNvbiwgLm1hdGVyaWFsLWljb25zIik7Zm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspe2NvbnN0IG49b1tlXTtudWxsPT09KHQ9bi5wYXJlbnROb2RlKXx8dm9pZCAwPT09dHx8dC5yZW1vdmVDaGlsZChuKX1yZXR1cm4obnVsbD09PShlPW4udGV4dENvbnRlbnQpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnRyaW0oKSl8fCIifV9zZXRIaWdobGlnaHRlZCh0KXt2YXIgZTt0aGlzLl9oaWdobGlnaHRlZD10LG51bGw9PT0oZT10aGlzLl9jaGFuZ2VEZXRlY3RvclJlZil8fHZvaWQgMD09PWV8fGUubWFya0ZvckNoZWNrKCl9fVdXLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxXVykoU20oaGcpLFNtKFpfKSxTbShTSSksU20oVVcsOCksU20oVWcpKX0sV1cuybVjbXA9dG8oe3R5cGU6V1csc2VsZWN0b3JzOltbIiIsIm1hdC1tZW51LWl0ZW0iLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtZm9jdXMtaW5kaWNhdG9yIl0saG9zdFZhcnM6MTAsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2NoZWNrRGlzYWJsZWQoZSl9KSkoIm1vdXNlZW50ZXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2hhbmRsZU1vdXNlRW50ZXIoKX0pKSwyJmUmJihqcCgicm9sZSIsbi5yb2xlKSgidGFiaW5kZXgiLG4uX2dldFRhYkluZGV4KCkpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkLnRvU3RyaW5nKCkpKCJkaXNhYmxlZCIsbi5kaXNhYmxlZHx8bnVsbCkscHUoIm1hdC1tZW51LWl0ZW0iLCEwKSgibWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCIsbi5faGlnaGxpZ2h0ZWQpKCJtYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlciIsbi5fdHJpZ2dlcnNTdWJtZW51KSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixyb2xlOiJyb2xlIn0sZXhwb3J0QXM6WyJtYXRNZW51SXRlbSJdLGZlYXR1cmVzOlt4cF0sYXR0cnM6WyJtYXQtbWVudS1pdGVtIiwiIl0sbmdDb250ZW50U2VsZWN0b3JzOkZXLGRlY2xzOjMsdmFyczozLGNvbnN0czpbWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1tZW51LXJpcHBsZSIsMywibWF0UmlwcGxlRGlzYWJsZWQiLCJtYXRSaXBwbGVUcmlnZ2VyIl0sWyJjbGFzcyIsIm1hdC1tZW51LXN1Ym1lbnUtaWNvbiIsInZpZXdCb3giLCIwIDAgNSAxMCIsImZvY3VzYWJsZSIsImZhbHNlIiw0LCJuZ0lmIl0sWyJ2aWV3Qm94IiwiMCAwIDUgMTAiLCJmb2N1c2FibGUiLCJmYWxzZSIsMSwibWF0LW1lbnUtc3VibWVudS1pY29uIl0sWyJwb2ludHMiLCIwLDAgNSw1IDAsMTAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFptKCksWG0oMCksVG0oMSwiZGl2IiwwKSxRcCgyLEhXLDIsMCwic3ZnIiwxKSksMiZlJiYocmMoMSksRG0oIm1hdFJpcHBsZURpc2FibGVkIixuLmRpc2FibGVSaXBwbGV8fG4uZGlzYWJsZWQpKCJtYXRSaXBwbGVUcmlnZ2VyIixuLl9nZXRIb3N0RWxlbWVudCgpKSxyYygxKSxEbSgibmdJZiIsbi5fdHJpZ2dlcnNTdWJtZW51KSl9LGRpcmVjdGl2ZXM6W2tILGRNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxXVy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlNJfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbVVddfSx7dHlwZTpTcn1dfSx7dHlwZTpVZ31dLFdXLnByb3BEZWNvcmF0b3JzPXtyb2xlOlt7dHlwZTp4eX1dLF9jaGVja0Rpc2FibGVkOlt7dHlwZTp3eSxhcmdzOlsiY2xpY2siLFsiJGV2ZW50Il1dfV0sX2hhbmRsZU1vdXNlRW50ZXI6W3t0eXBlOnd5LGFyZ3M6WyJtb3VzZWVudGVyIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXVyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJbbWF0LW1lbnUtaXRlbV0iLGV4cG9ydEFzOiJtYXRNZW51SXRlbSIsaW5wdXRzOlsiZGlzYWJsZWQiLCJkaXNhYmxlUmlwcGxlIl0saG9zdDp7IlthdHRyLnJvbGVdIjoicm9sZSIsIltjbGFzcy5tYXQtbWVudS1pdGVtXSI6InRydWUiLCJbY2xhc3MubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZF0iOiJfaGlnaGxpZ2h0ZWQiLCJbY2xhc3MubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXJdIjoiX3RyaWdnZXJzU3VibWVudSIsIlthdHRyLnRhYmluZGV4XSI6Il9nZXRUYWJJbmRleCgpIiwiW2F0dHIuYXJpYS1kaXNhYmxlZF0iOiJkaXNhYmxlZC50b1N0cmluZygpIiwiW2F0dHIuZGlzYWJsZWRdIjoiZGlzYWJsZWQgfHwgbnVsbCIsY2xhc3M6Im1hdC1mb2N1cy1pbmRpY2F0b3IifSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLGVuY2Fwc3VsYXRpb246SG4uTm9uZSx0ZW1wbGF0ZTonPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz0ibWF0LW1lbnUtcmlwcGxlIiBtYXRSaXBwbGVcbiAgICAgW21hdFJpcHBsZURpc2FibGVkXT0iZGlzYWJsZVJpcHBsZSB8fCBkaXNhYmxlZCJcbiAgICAgW21hdFJpcHBsZVRyaWdnZXJdPSJfZ2V0SG9zdEVsZW1lbnQoKSI+XG48L2Rpdj5cblxuPHN2Z1xuICAqbmdJZj0iX3RyaWdnZXJzU3VibWVudSJcbiAgY2xhc3M9Im1hdC1tZW51LXN1Ym1lbnUtaWNvbiJcbiAgdmlld0JveD0iMCAwIDUgMTAiXG4gIGZvY3VzYWJsZT0iZmFsc2UiPjxwb2x5Z29uIHBvaW50cz0iMCwwIDUsNSAwLDEwIi8+PC9zdmc+XG4nfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6U0l9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltVV119LHt0eXBlOlNyfV19LHt0eXBlOlVnfV19KSx7cm9sZTpbe3R5cGU6eHl9XSxfY2hlY2tEaXNhYmxlZDpbe3R5cGU6d3ksYXJnczpbImNsaWNrIixbIiRldmVudCJdXX1dLF9oYW5kbGVNb3VzZUVudGVyOlt7dHlwZTp3eSxhcmdzOlsibW91c2VlbnRlciJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFlXPW5ldyBHYSgibWF0LW1lbnUtZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBxVygpe3JldHVybntvdmVybGFwVHJpZ2dlcjohMSx4UG9zaXRpb246ImFmdGVyIix5UG9zaXRpb246ImJlbG93IixiYWNrZHJvcENsYXNzOiJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCJ9fX0pO2xldCBaVz0wO2NsYXNzIFhXe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fbmdab25lPWUsdGhpcy5fZGVmYXVsdE9wdGlvbnM9bix0aGlzLl94UG9zaXRpb249dGhpcy5fZGVmYXVsdE9wdGlvbnMueFBvc2l0aW9uLHRoaXMuX3lQb3NpdGlvbj10aGlzLl9kZWZhdWx0T3B0aW9ucy55UG9zaXRpb24sdGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zPW5ldyBWaCx0aGlzLl90YWJTdWJzY3JpcHRpb249bS5FTVBUWSx0aGlzLl9jbGFzc0xpc3Q9e30sdGhpcy5fcGFuZWxBbmltYXRpb25TdGF0ZT0idm9pZCIsdGhpcy5fYW5pbWF0aW9uRG9uZT1uZXcgSSx0aGlzLm92ZXJsYXlQYW5lbENsYXNzPXRoaXMuX2RlZmF1bHRPcHRpb25zLm92ZXJsYXlQYW5lbENsYXNzfHwiIix0aGlzLmJhY2tkcm9wQ2xhc3M9dGhpcy5fZGVmYXVsdE9wdGlvbnMuYmFja2Ryb3BDbGFzcyx0aGlzLl9vdmVybGFwVHJpZ2dlcj10aGlzLl9kZWZhdWx0T3B0aW9ucy5vdmVybGFwVHJpZ2dlcix0aGlzLl9oYXNCYWNrZHJvcD10aGlzLl9kZWZhdWx0T3B0aW9ucy5oYXNCYWNrZHJvcCx0aGlzLmNsb3NlZD1uZXcgTGgsdGhpcy5jbG9zZT10aGlzLmNsb3NlZCx0aGlzLnBhbmVsSWQ9Im1hdC1tZW51LXBhbmVsLSIrWlcrK31nZXQgeFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3hQb3NpdGlvbn1zZXQgeFBvc2l0aW9uKHQpeyJiZWZvcmUiPT09dHx8ImFmdGVyIj09PXR8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHwoZnVuY3Rpb24gZSgpe3Rocm93IEVycm9yKCd4UG9zaXRpb24gdmFsdWUgbXVzdCBiZSBlaXRoZXIgXCdiZWZvcmVcJyBvciBhZnRlclwnLlxuICAgICAgRXhhbXBsZTogPG1hdC1tZW51IHhQb3NpdGlvbj0iYmVmb3JlIiAjbWVudT0ibWF0TWVudSI+PC9tYXQtbWVudT4nKX0pKCksdGhpcy5feFBvc2l0aW9uPXQsdGhpcy5zZXRQb3NpdGlvbkNsYXNzZXMoKX1nZXQgeVBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3lQb3NpdGlvbn1zZXQgeVBvc2l0aW9uKHQpeyJhYm92ZSI9PT10fHwiYmVsb3ciPT09dHx8InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fChmdW5jdGlvbiBlKCl7dGhyb3cgRXJyb3IoJ3lQb3NpdGlvbiB2YWx1ZSBtdXN0IGJlIGVpdGhlciBcJ2Fib3ZlXCcgb3IgYmVsb3dcJy5cbiAgICAgIEV4YW1wbGU6IDxtYXQtbWVudSB5UG9zaXRpb249ImFib3ZlIiAjbWVudT0ibWF0TWVudSI+PC9tYXQtbWVudT4nKX0pKCksdGhpcy5feVBvc2l0aW9uPXQsdGhpcy5zZXRQb3NpdGlvbkNsYXNzZXMoKX1nZXQgb3ZlcmxhcFRyaWdnZXIoKXtyZXR1cm4gdGhpcy5fb3ZlcmxhcFRyaWdnZXJ9c2V0IG92ZXJsYXBUcmlnZ2VyKHQpe3RoaXMuX292ZXJsYXBUcmlnZ2VyPXl6KHQpfWdldCBoYXNCYWNrZHJvcCgpe3JldHVybiB0aGlzLl9oYXNCYWNrZHJvcH1zZXQgaGFzQmFja2Ryb3AodCl7dGhpcy5faGFzQmFja2Ryb3A9eXoodCl9c2V0IHBhbmVsQ2xhc3ModCl7Y29uc3QgZT10aGlzLl9wcmV2aW91c1BhbmVsQ2xhc3M7ZSYmZS5sZW5ndGgmJmUuc3BsaXQoIiAiKS5mb3JFYWNoKCh0PT57dGhpcy5fY2xhc3NMaXN0W3RdPSExfSkpLHRoaXMuX3ByZXZpb3VzUGFuZWxDbGFzcz10LHQmJnQubGVuZ3RoJiYodC5zcGxpdCgiICIpLmZvckVhY2goKHQ9Pnt0aGlzLl9jbGFzc0xpc3RbdF09ITB9KSksdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZT0iIil9Z2V0IGNsYXNzTGlzdCgpe3JldHVybiB0aGlzLnBhbmVsQ2xhc3N9c2V0IGNsYXNzTGlzdCh0KXt0aGlzLnBhbmVsQ2xhc3M9dH1uZ09uSW5pdCgpe3RoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5fdXBkYXRlRGlyZWN0RGVzY2VuZGFudHMoKSx0aGlzLl9rZXlNYW5hZ2VyPW5ldyBlSSh0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMpLndpdGhXcmFwKCkud2l0aFR5cGVBaGVhZCgpLndpdGhIb21lQW5kRW5kKCksdGhpcy5fdGFiU3Vic2NyaXB0aW9uPXRoaXMuX2tleU1hbmFnZXIudGFiT3V0LnN1YnNjcmliZSgoKCk9PnRoaXMuY2xvc2VkLmVtaXQoInRhYiIpKSksdGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zLmNoYW5nZXMucGlwZShOZSh0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMpLHplKCh0PT5yZSguLi50Lm1hcCgodD0+dC5fZm9jdXNlZCkpKSkpKS5zdWJzY3JpYmUoKHQ9PnRoaXMuX2tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbSh0KSkpfW5nT25EZXN0cm95KCl7dGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zLmRlc3Ryb3koKSx0aGlzLl90YWJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmNsb3NlZC5jb21wbGV0ZSgpfV9ob3ZlcmVkKCl7cmV0dXJuIHRoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcy5jaGFuZ2VzLnBpcGUoTmUodGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zKSx6ZSgodD0+cmUoLi4udC5tYXAoKHQ9PnQuX2hvdmVyZWQpKSkpKSl9YWRkSXRlbSh0KXt9cmVtb3ZlSXRlbSh0KXt9X2hhbmRsZUtleWRvd24odCl7Y29uc3QgZT10LmtleUNvZGUsbj10aGlzLl9rZXlNYW5hZ2VyO3N3aXRjaChlKXtjYXNlIHV6OmJ6KHQpfHwodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xvc2VkLmVtaXQoImtleWRvd24iKSk7YnJlYWs7Y2FzZSAzNzp0aGlzLnBhcmVudE1lbnUmJiJsdHIiPT09dGhpcy5kaXJlY3Rpb24mJnRoaXMuY2xvc2VkLmVtaXQoImtleWRvd24iKTticmVhaztjYXNlIDM5OnRoaXMucGFyZW50TWVudSYmInJ0bCI9PT10aGlzLmRpcmVjdGlvbiYmdGhpcy5jbG9zZWQuZW1pdCgia2V5ZG93biIpO2JyZWFrO2RlZmF1bHQ6ZSE9PWd6JiZlIT09aHp8fG4uc2V0Rm9jdXNPcmlnaW4oImtleWJvYXJkIiksbi5vbktleWRvd24odCl9fWZvY3VzRmlyc3RJdGVtKHQ9InByb2dyYW0iKXt0aGlzLmxhenlDb250ZW50P3RoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT50aGlzLl9mb2N1c0ZpcnN0SXRlbSh0KSkpOnRoaXMuX2ZvY3VzRmlyc3RJdGVtKHQpfV9mb2N1c0ZpcnN0SXRlbSh0KXtjb25zdCBlPXRoaXMuX2tleU1hbmFnZXI7aWYoZS5zZXRGb2N1c09yaWdpbih0KS5zZXRGaXJzdEl0ZW1BY3RpdmUoKSwhZS5hY3RpdmVJdGVtJiZ0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMubGVuZ3RoKXtsZXQgdD10aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMuZmlyc3QuX2dldEhvc3RFbGVtZW50KCkucGFyZW50RWxlbWVudDtmb3IoO3Q7KXtpZigibWVudSI9PT10LmdldEF0dHJpYnV0ZSgicm9sZSIpKXt0LmZvY3VzKCk7YnJlYWt9dD10LnBhcmVudEVsZW1lbnR9fX1yZXNldEFjdGl2ZUl0ZW0oKXt0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oLTEpfXNldEVsZXZhdGlvbih0KXtjb25zdCBlPU1hdGgubWluKHRoaXMuX2Jhc2VFbGV2YXRpb24rdCwyNCksbj1gJHt0aGlzLl9lbGV2YXRpb25QcmVmaXh9JHtlfWAsbz1PYmplY3Qua2V5cyh0aGlzLl9jbGFzc0xpc3QpLmZpbmQoKHQ9PnQuc3RhcnRzV2l0aCh0aGlzLl9lbGV2YXRpb25QcmVmaXgpKSk7byYmbyE9PXRoaXMuX3ByZXZpb3VzRWxldmF0aW9ufHwodGhpcy5fcHJldmlvdXNFbGV2YXRpb24mJih0aGlzLl9jbGFzc0xpc3RbdGhpcy5fcHJldmlvdXNFbGV2YXRpb25dPSExKSx0aGlzLl9jbGFzc0xpc3Rbbl09ITAsdGhpcy5fcHJldmlvdXNFbGV2YXRpb249bil9c2V0UG9zaXRpb25DbGFzc2VzKHQ9dGhpcy54UG9zaXRpb24sZT10aGlzLnlQb3NpdGlvbil7Y29uc3Qgbj10aGlzLl9jbGFzc0xpc3Q7blsibWF0LW1lbnUtYmVmb3JlIl09ImJlZm9yZSI9PT10LG5bIm1hdC1tZW51LWFmdGVyIl09ImFmdGVyIj09PXQsblsibWF0LW1lbnUtYWJvdmUiXT0iYWJvdmUiPT09ZSxuWyJtYXQtbWVudS1iZWxvdyJdPSJiZWxvdyI9PT1lfV9zdGFydEFuaW1hdGlvbigpe3RoaXMuX3BhbmVsQW5pbWF0aW9uU3RhdGU9ImVudGVyIn1fcmVzZXRBbmltYXRpb24oKXt0aGlzLl9wYW5lbEFuaW1hdGlvblN0YXRlPSJ2b2lkIn1fb25BbmltYXRpb25Eb25lKHQpe3RoaXMuX2FuaW1hdGlvbkRvbmUubmV4dCh0KSx0aGlzLl9pc0FuaW1hdGluZz0hMX1fb25BbmltYXRpb25TdGFydCh0KXt0aGlzLl9pc0FuaW1hdGluZz0hMCwiZW50ZXIiPT09dC50b1N0YXRlJiYwPT09dGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXgmJih0LmVsZW1lbnQuc2Nyb2xsVG9wPTApfV91cGRhdGVEaXJlY3REZXNjZW5kYW50cygpe3RoaXMuX2FsbEl0ZW1zLmNoYW5nZXMucGlwZShOZSh0aGlzLl9hbGxJdGVtcykpLnN1YnNjcmliZSgodD0+e3RoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcy5yZXNldCh0LmZpbHRlcigodD0+dC5fcGFyZW50TWVudT09PXRoaXMpKSksdGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zLm5vdGlmeU9uQ2hhbmdlcygpfSkpfX1YVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WFcpKFNtKGhnKSxTbShhXyksU20oWVcpKX0sWFcuybVkaXI9bG8oe3R5cGU6WFcsY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYoJGgobyxWVyw1KSwkaChvLFdXLDUpLCRoKG8sV1csNCkpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4ubGF6eUNvbnRlbnQ9dC5maXJzdCksSmgodD10YigpKSYmKG4uX2FsbEl0ZW1zPXQpLEpoKHQ9dGIoKSkmJihuLml0ZW1zPXQpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKFhnLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4udGVtcGxhdGVSZWY9dC5maXJzdCl9fSxpbnB1dHM6e2JhY2tkcm9wQ2xhc3M6ImJhY2tkcm9wQ2xhc3MiLHhQb3NpdGlvbjoieFBvc2l0aW9uIix5UG9zaXRpb246InlQb3NpdGlvbiIsb3ZlcmxhcFRyaWdnZXI6Im92ZXJsYXBUcmlnZ2VyIixoYXNCYWNrZHJvcDoiaGFzQmFja2Ryb3AiLHBhbmVsQ2xhc3M6WyJjbGFzcyIsInBhbmVsQ2xhc3MiXSxjbGFzc0xpc3Q6ImNsYXNzTGlzdCIsYXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLGFyaWFMYWJlbGxlZGJ5OlsiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYUxhYmVsbGVkYnkiXSxhcmlhRGVzY3JpYmVkYnk6WyJhcmlhLWRlc2NyaWJlZGJ5IiwiYXJpYURlc2NyaWJlZGJ5Il19LG91dHB1dHM6e2Nsb3NlZDoiY2xvc2VkIixjbG9zZToiY2xvc2UifX0pLFhXLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWVddfV19XSxYVy5wcm9wRGVjb3JhdG9ycz17X2FsbEl0ZW1zOlt7dHlwZTpZYSxhcmdzOltXVyx7ZGVzY2VuZGFudHM6ITB9XX1dLGJhY2tkcm9wQ2xhc3M6W3t0eXBlOnh5fV0sYXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLGFyaWFEZXNjcmliZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtZGVzY3JpYmVkYnkiXX1dLHhQb3NpdGlvbjpbe3R5cGU6eHl9XSx5UG9zaXRpb246W3t0eXBlOnh5fV0sdGVtcGxhdGVSZWY6W3t0eXBlOlphLGFyZ3M6W1hnXX1dLGl0ZW1zOlt7dHlwZTpZYSxhcmdzOltXVyx7ZGVzY2VuZGFudHM6ITF9XX1dLGxhenlDb250ZW50Olt7dHlwZTpxYSxhcmdzOltWV119XSxvdmVybGFwVHJpZ2dlcjpbe3R5cGU6eHl9XSxoYXNCYWNrZHJvcDpbe3R5cGU6eHl9XSxwYW5lbENsYXNzOlt7dHlwZTp4eSxhcmdzOlsiY2xhc3MiXX1dLGNsYXNzTGlzdDpbe3R5cGU6eHl9XSxjbG9zZWQ6W3t0eXBlOk95fV0sY2xvc2U6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWFcsW3t0eXBlOkN5fV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1lXXX1dfV19KSx7YmFja2Ryb3BDbGFzczpbe3R5cGU6eHl9XSxjbG9zZWQ6W3t0eXBlOk95fV0sY2xvc2U6W3t0eXBlOk95fV0seFBvc2l0aW9uOlt7dHlwZTp4eX1dLHlQb3NpdGlvbjpbe3R5cGU6eHl9XSxvdmVybGFwVHJpZ2dlcjpbe3R5cGU6eHl9XSxoYXNCYWNrZHJvcDpbe3R5cGU6eHl9XSxwYW5lbENsYXNzOlt7dHlwZTp4eSxhcmdzOlsiY2xhc3MiXX1dLGNsYXNzTGlzdDpbe3R5cGU6eHl9XSxfYWxsSXRlbXM6W3t0eXBlOllhLGFyZ3M6W1dXLHtkZXNjZW5kYW50czohMH1dfV0sYXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLGFyaWFEZXNjcmliZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtZGVzY3JpYmVkYnkiXX1dLHRlbXBsYXRlUmVmOlt7dHlwZTpaYSxhcmdzOltYZ119XSxpdGVtczpbe3R5cGU6WWEsYXJnczpbV1cse2Rlc2NlbmRhbnRzOiExfV19XSxsYXp5Q29udGVudDpbe3R5cGU6cWEsYXJnczpbVlddfV19KTtjbGFzcyBLVyBleHRlbmRzIFhXe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUsbiksdGhpcy5fZWxldmF0aW9uUHJlZml4PSJtYXQtZWxldmF0aW9uLXoiLHRoaXMuX2Jhc2VFbGV2YXRpb249NH19S1cuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEtXKShTbShoZyksU20oYV8pLFNtKFlXKSl9LEtXLsm1Y21wPXRvKHt0eXBlOktXLHNlbGVjdG9yczpbWyJtYXQtbWVudSJdXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZqcCgiYXJpYS1sYWJlbCIsbnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbnVsbCkoImFyaWEtZGVzY3JpYmVkYnkiLG51bGwpfSxleHBvcnRBczpbIm1hdE1lbnUiXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOlVXLHVzZUV4aXN0aW5nOktXfV0pLHhwXSxuZ0NvbnRlbnRTZWxlY3RvcnM6RlcsZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbInRhYmluZGV4IiwiLTEiLCJyb2xlIiwibWVudSIsMSwibWF0LW1lbnUtcGFuZWwiLDMsImlkIiwibmdDbGFzcyIsImtleWRvd24iLCJjbGljayJdLFsxLCJtYXQtbWVudS1jb250ZW50Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFFwKDAsTFcsMyw2LCJuZy10ZW1wbGF0ZSIpKX0sZGlyZWN0aXZlczpbYU1dLHN0eWxlczpbIm1hdC1tZW51e2Rpc3BsYXk6bm9uZX0ubWF0LW1lbnUtcGFuZWx7bWluLXdpZHRoOjExMnB4O21heC13aWR0aDoyODBweDtvdmVyZmxvdzphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDQ4cHgpO2JvcmRlci1yYWRpdXM6NHB4O291dGxpbmU6MDttaW4taGVpZ2h0OjY0cHh9Lm1hdC1tZW51LXBhbmVsLm5nLWFuaW1hdGluZ3twb2ludGVyLWV2ZW50czpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LXBhbmVse291dGxpbmU6c29saWQgMXB4fS5tYXQtbWVudS1jb250ZW50Om5vdCg6ZW1wdHkpe3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1tZW51LWl0ZW17LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6NDhweDtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMTZweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bWF4LXdpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZW51LWl0ZW06Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0fVtkaXI9cnRsXSAubWF0LW1lbnUtaXRlbXt0ZXh0LWFsaWduOnJpZ2h0fS5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbnttYXJnaW4tcmlnaHQ6MTZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjp0b3B9W2Rpcj1ydGxdIC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbnttYXJnaW4tbGVmdDoxNnB4O21hcmdpbi1yaWdodDowfS5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXXtwb2ludGVyLWV2ZW50czpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LWl0ZW17bWFyZ2luLXRvcDoxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZHtvdXRsaW5lOmRvdHRlZCAxcHh9Lm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2Vye3BhZGRpbmctcmlnaHQ6MzJweH1bZGlyPXJ0bF0gLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2Vye3BhZGRpbmctcmlnaHQ6MTZweDtwYWRkaW5nLWxlZnQ6MzJweH0ubWF0LW1lbnUtc3VibWVudS1pY29ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTZweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDo1cHg7aGVpZ2h0OjEwcHg7ZmlsbDpjdXJyZW50Q29sb3J9W2Rpcj1ydGxdIC5tYXQtbWVudS1zdWJtZW51LWljb257cmlnaHQ6YXV0bztsZWZ0OjE2cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgc2NhbGVYKC0xKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWVudS1zdWJtZW51LWljb257ZmlsbDpDYW52YXNUZXh0fWJ1dHRvbi5tYXQtbWVudS1pdGVte3dpZHRoOjEwMCV9Lm1hdC1tZW51LWl0ZW0gLm1hdC1tZW51LXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lfVxuIl0sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbQlcudHJhbnNmb3JtTWVudSxCVy5mYWRlSW5JdGVtc119LGNoYW5nZURldGVjdGlvbjowfSksS1cuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltZV119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoS1csW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LW1lbnUiLHRlbXBsYXRlOic8bmctdGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz0ibWF0LW1lbnUtcGFuZWwiXG4gICAgW2lkXT0icGFuZWxJZCJcbiAgICBbbmdDbGFzc109Il9jbGFzc0xpc3QiXG4gICAgKGtleWRvd24pPSJfaGFuZGxlS2V5ZG93bigkZXZlbnQpIlxuICAgIChjbGljayk9ImNsb3NlZC5lbWl0KFwnY2xpY2tcJykiXG4gICAgW0B0cmFuc2Zvcm1NZW51XT0iX3BhbmVsQW5pbWF0aW9uU3RhdGUiXG4gICAgKEB0cmFuc2Zvcm1NZW51LnN0YXJ0KT0iX29uQW5pbWF0aW9uU3RhcnQoJGV2ZW50KSJcbiAgICAoQHRyYW5zZm9ybU1lbnUuZG9uZSk9Il9vbkFuaW1hdGlvbkRvbmUoJGV2ZW50KSJcbiAgICB0YWJpbmRleD0iLTEiXG4gICAgcm9sZT0ibWVudSJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT0iYXJpYUxhYmVsIHx8IG51bGwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT0iYXJpYUxhYmVsbGVkYnkgfHwgbnVsbCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT0iYXJpYURlc2NyaWJlZGJ5IHx8IG51bGwiPlxuICAgIDxkaXYgY2xhc3M9Im1hdC1tZW51LWNvbnRlbnQiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4nLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGV4cG9ydEFzOiJtYXRNZW51Iixob3N0OnsiW2F0dHIuYXJpYS1sYWJlbF0iOiJudWxsIiwiW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSI6Im51bGwiLCJbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSI6Im51bGwifSxhbmltYXRpb25zOltCVy50cmFuc2Zvcm1NZW51LEJXLmZhZGVJbkl0ZW1zXSxwcm92aWRlcnM6W3twcm92aWRlOlVXLHVzZUV4aXN0aW5nOktXfV0sc3R5bGVzOlsibWF0LW1lbnV7ZGlzcGxheTpub25lfS5tYXQtbWVudS1wYW5lbHttaW4td2lkdGg6MTEycHg7bWF4LXdpZHRoOjI4MHB4O292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gNDhweCk7Ym9yZGVyLXJhZGl1czo0cHg7b3V0bGluZTowO21pbi1oZWlnaHQ6NjRweH0ubWF0LW1lbnUtcGFuZWwubmctYW5pbWF0aW5ne3BvaW50ZXItZXZlbnRzOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtcGFuZWx7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC1tZW51LWNvbnRlbnQ6bm90KDplbXB0eSl7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LW1lbnUtaXRlbXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTpub25lO2JvcmRlcjpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDo0OHB4O2hlaWdodDo0OHB4O3BhZGRpbmc6MCAxNnB4O3RleHQtYWxpZ246bGVmdDt0ZXh0LWRlY29yYXRpb246bm9uZTttYXgtd2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1lbnUtaXRlbTo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF17Y3Vyc29yOmRlZmF1bHR9W2Rpcj1ydGxdIC5tYXQtbWVudS1pdGVte3RleHQtYWxpZ246cmlnaHR9Lm1hdC1tZW51LWl0ZW0gLm1hdC1pY29ue21hcmdpbi1yaWdodDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubWF0LW1lbnUtaXRlbSAubWF0LWljb24gc3Zne3ZlcnRpY2FsLWFsaWduOnRvcH1bZGlyPXJ0bF0gLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29ue21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjB9Lm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRde3BvaW50ZXItZXZlbnRzOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtaXRlbXttYXJnaW4tdG9wOjFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZCwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVke291dGxpbmU6ZG90dGVkIDFweH0ubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXJ7cGFkZGluZy1yaWdodDozMnB4fVtkaXI9cnRsXSAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXJ7cGFkZGluZy1yaWdodDoxNnB4O3BhZGRpbmctbGVmdDozMnB4fS5tYXQtbWVudS1zdWJtZW51LWljb257cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxNnB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3dpZHRoOjVweDtoZWlnaHQ6MTBweDtmaWxsOmN1cnJlbnRDb2xvcn1bZGlyPXJ0bF0gLm1hdC1tZW51LXN1Ym1lbnUtaWNvbntyaWdodDphdXRvO2xlZnQ6MTZweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSBzY2FsZVgoLTEpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LXN1Ym1lbnUtaWNvbntmaWxsOkNhbnZhc1RleHR9YnV0dG9uLm1hdC1tZW51LWl0ZW17d2lkdGg6MTAwJX0ubWF0LW1lbnUtaXRlbSAubWF0LW1lbnUtcmlwcGxle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmV9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1lXXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEpXPW5ldyBHYSgibWF0LW1lbnUtc2Nyb2xsLXN0cmF0ZWd5IiksUVc9e3Byb3ZpZGU6SlcsZGVwczpbcExdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gJFcodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCl9fSx0WT1Oeih7cGFzc2l2ZTohMH0pO2NsYXNzIGVZe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyl7dGhpcy5fb3ZlcmxheT10LHRoaXMuX2VsZW1lbnQ9ZSx0aGlzLl92aWV3Q29udGFpbmVyUmVmPW4sdGhpcy5fbWVudUl0ZW1JbnN0YW5jZT1hLHRoaXMuX2Rpcj1yLHRoaXMuX2ZvY3VzTW9uaXRvcj1zLHRoaXMuX292ZXJsYXlSZWY9bnVsbCx0aGlzLl9tZW51T3Blbj0hMSx0aGlzLl9jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbj1tLkVNUFRZLHRoaXMuX2hvdmVyU3Vic2NyaXB0aW9uPW0uRU1QVFksdGhpcy5fbWVudUNsb3NlU3Vic2NyaXB0aW9uPW0uRU1QVFksdGhpcy5faGFuZGxlVG91Y2hTdGFydD10PT57aEkodCl8fCh0aGlzLl9vcGVuZWRCeT0idG91Y2giKX0sdGhpcy5fb3BlbmVkQnk9dm9pZCAwLHRoaXMucmVzdG9yZUZvY3VzPSEwLHRoaXMubWVudU9wZW5lZD1uZXcgTGgsdGhpcy5vbk1lbnVPcGVuPXRoaXMubWVudU9wZW5lZCx0aGlzLm1lbnVDbG9zZWQ9bmV3IExoLHRoaXMub25NZW51Q2xvc2U9dGhpcy5tZW51Q2xvc2VkLHRoaXMuX3Njcm9sbFN0cmF0ZWd5PW8sdGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51PWkgaW5zdGFuY2VvZiBYVz9pOnZvaWQgMCxlLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5faGFuZGxlVG91Y2hTdGFydCx0WSksYSYmKGEuX3RyaWdnZXJzU3VibWVudT10aGlzLnRyaWdnZXJzU3VibWVudSgpKX1nZXQgX2RlcHJlY2F0ZWRNYXRNZW51VHJpZ2dlckZvcigpe3JldHVybiB0aGlzLm1lbnV9c2V0IF9kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3IodCl7dGhpcy5tZW51PXR9Z2V0IG1lbnUoKXtyZXR1cm4gdGhpcy5fbWVudX1zZXQgbWVudSh0KXt0IT09dGhpcy5fbWVudSYmKHRoaXMuX21lbnU9dCx0aGlzLl9tZW51Q2xvc2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0JiYodCE9PXRoaXMuX3BhcmVudE1hdGVyaWFsTWVudXx8InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fChmdW5jdGlvbiBlKCl7dGhyb3cgRXJyb3IoIm1hdE1lbnVUcmlnZ2VyRm9yOiBtZW51IGNhbm5vdCBjb250YWluIGl0cyBvd24gdHJpZ2dlci4gQXNzaWduIGEgbWVudSB0aGF0IGlzIG5vdCBhIHBhcmVudCBvZiB0aGUgdHJpZ2dlciBvciBtb3ZlIHRoZSB0cmlnZ2VyIG91dHNpZGUgb2YgdGhlIG1lbnUuIil9KSgpLHRoaXMuX21lbnVDbG9zZVN1YnNjcmlwdGlvbj10LmNsb3NlLnN1YnNjcmliZSgodD0+e3RoaXMuX2Rlc3Ryb3lNZW51KHQpLCJjbGljayIhPT10JiYidGFiIiE9PXR8fCF0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnV8fHRoaXMuX3BhcmVudE1hdGVyaWFsTWVudS5jbG9zZWQuZW1pdCh0KX0pKSkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2NoZWNrTWVudSgpLHRoaXMuX2hhbmRsZUhvdmVyKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9vdmVybGF5UmVmJiYodGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCksdGhpcy5fb3ZlcmxheVJlZj1udWxsKSx0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5faGFuZGxlVG91Y2hTdGFydCx0WSksdGhpcy5fbWVudUNsb3NlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9ob3ZlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfWdldCBtZW51T3Blbigpe3JldHVybiB0aGlzLl9tZW51T3Blbn1nZXQgZGlyKCl7cmV0dXJuIHRoaXMuX2RpciYmInJ0bCI9PT10aGlzLl9kaXIudmFsdWU/InJ0bCI6Imx0ciJ9dHJpZ2dlcnNTdWJtZW51KCl7cmV0dXJuISghdGhpcy5fbWVudUl0ZW1JbnN0YW5jZXx8IXRoaXMuX3BhcmVudE1hdGVyaWFsTWVudSl9dG9nZ2xlTWVudSgpe3JldHVybiB0aGlzLl9tZW51T3Blbj90aGlzLmNsb3NlTWVudSgpOnRoaXMub3Blbk1lbnUoKX1vcGVuTWVudSgpe2lmKHRoaXMuX21lbnVPcGVuKXJldHVybjt0aGlzLl9jaGVja01lbnUoKTtjb25zdCB0PXRoaXMuX2NyZWF0ZU92ZXJsYXkoKSxlPXQuZ2V0Q29uZmlnKCk7dGhpcy5fc2V0UG9zaXRpb24oZS5wb3NpdGlvblN0cmF0ZWd5KSxlLmhhc0JhY2tkcm9wPW51bGw9PXRoaXMubWVudS5oYXNCYWNrZHJvcD8hdGhpcy50cmlnZ2Vyc1N1Ym1lbnUoKTp0aGlzLm1lbnUuaGFzQmFja2Ryb3AsdC5hdHRhY2godGhpcy5fZ2V0UG9ydGFsKCkpLHRoaXMubWVudS5sYXp5Q29udGVudCYmdGhpcy5tZW51LmxhenlDb250ZW50LmF0dGFjaCh0aGlzLm1lbnVEYXRhKSx0aGlzLl9jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbj10aGlzLl9tZW51Q2xvc2luZ0FjdGlvbnMoKS5zdWJzY3JpYmUoKCgpPT50aGlzLmNsb3NlTWVudSgpKSksdGhpcy5faW5pdE1lbnUoKSx0aGlzLm1lbnUgaW5zdGFuY2VvZiBYVyYmdGhpcy5tZW51Ll9zdGFydEFuaW1hdGlvbigpfWNsb3NlTWVudSgpe3RoaXMubWVudS5jbG9zZS5lbWl0KCl9Zm9jdXModCxlKXt0aGlzLl9mb2N1c01vbml0b3ImJnQ/dGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2VsZW1lbnQsdCxlKTp0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoZSl9dXBkYXRlUG9zaXRpb24oKXt2YXIgdDtudWxsPT09KHQ9dGhpcy5fb3ZlcmxheVJlZil8fHZvaWQgMD09PXR8fHQudXBkYXRlUG9zaXRpb24oKX1fZGVzdHJveU1lbnUodCl7aWYoIXRoaXMuX292ZXJsYXlSZWZ8fCF0aGlzLm1lbnVPcGVuKXJldHVybjtjb25zdCBlPXRoaXMubWVudTt0aGlzLl9jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCksIXRoaXMucmVzdG9yZUZvY3VzfHwia2V5ZG93biIhPT10JiZ0aGlzLl9vcGVuZWRCeSYmdGhpcy50cmlnZ2Vyc1N1Ym1lbnUoKXx8dGhpcy5mb2N1cyh0aGlzLl9vcGVuZWRCeSksdGhpcy5fb3BlbmVkQnk9dm9pZCAwLGUgaW5zdGFuY2VvZiBYVz8oZS5fcmVzZXRBbmltYXRpb24oKSxlLmxhenlDb250ZW50P2UuX2FuaW1hdGlvbkRvbmUucGlwZShjZSgodD0+InZvaWQiPT09dC50b1N0YXRlKSksYmUoMSksSWUoZS5sYXp5Q29udGVudC5fYXR0YWNoZWQpKS5zdWJzY3JpYmUoe25leHQ6KCk9PmUubGF6eUNvbnRlbnQuZGV0YWNoKCksY29tcGxldGU6KCk9PnRoaXMuX3NldElzTWVudU9wZW4oITEpfSk6dGhpcy5fc2V0SXNNZW51T3BlbighMSkpOih0aGlzLl9zZXRJc01lbnVPcGVuKCExKSxlLmxhenlDb250ZW50JiZlLmxhenlDb250ZW50LmRldGFjaCgpKX1faW5pdE1lbnUoKXt0aGlzLm1lbnUucGFyZW50TWVudT10aGlzLnRyaWdnZXJzU3VibWVudSgpP3RoaXMuX3BhcmVudE1hdGVyaWFsTWVudTp2b2lkIDAsdGhpcy5tZW51LmRpcmVjdGlvbj10aGlzLmRpcix0aGlzLl9zZXRNZW51RWxldmF0aW9uKCksdGhpcy5tZW51LmZvY3VzRmlyc3RJdGVtKHRoaXMuX29wZW5lZEJ5fHwicHJvZ3JhbSIpLHRoaXMuX3NldElzTWVudU9wZW4oITApfV9zZXRNZW51RWxldmF0aW9uKCl7aWYodGhpcy5tZW51LnNldEVsZXZhdGlvbil7bGV0IHQ9MCxlPXRoaXMubWVudS5wYXJlbnRNZW51O2Zvcig7ZTspdCsrLGU9ZS5wYXJlbnRNZW51O3RoaXMubWVudS5zZXRFbGV2YXRpb24odCl9fV9zZXRJc01lbnVPcGVuKHQpe3RoaXMuX21lbnVPcGVuPXQsdGhpcy5fbWVudU9wZW4/dGhpcy5tZW51T3BlbmVkLmVtaXQoKTp0aGlzLm1lbnVDbG9zZWQuZW1pdCgpLHRoaXMudHJpZ2dlcnNTdWJtZW51KCkmJnRoaXMuX21lbnVJdGVtSW5zdGFuY2UuX3NldEhpZ2hsaWdodGVkKHQpfV9jaGVja01lbnUoKXt0aGlzLm1lbnV8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHwoCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiB0KCl7dGhyb3cgRXJyb3IoJ21hdE1lbnVUcmlnZ2VyRm9yOiBtdXN0IHBhc3MgaW4gYW4gbWF0LW1lbnUgaW5zdGFuY2UuXG5cbiAgICBFeGFtcGxlOlxuICAgICAgPG1hdC1tZW51ICNtZW51PSJtYXRNZW51Ij48L21hdC1tZW51PlxuICAgICAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPSJtZW51Ij48L2J1dHRvbj4nKX0pKCl9X2NyZWF0ZU92ZXJsYXkoKXtpZighdGhpcy5fb3ZlcmxheVJlZil7Y29uc3QgdD10aGlzLl9nZXRPdmVybGF5Q29uZmlnKCk7dGhpcy5fc3Vic2NyaWJlVG9Qb3NpdGlvbnModC5wb3NpdGlvblN0cmF0ZWd5KSx0aGlzLl9vdmVybGF5UmVmPXRoaXMuX292ZXJsYXkuY3JlYXRlKHQpLHRoaXMuX292ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnN1YnNjcmliZSgpfXJldHVybiB0aGlzLl9vdmVybGF5UmVmfV9nZXRPdmVybGF5Q29uZmlnKCl7cmV0dXJuIG5ldyBWRih7cG9zaXRpb25TdHJhdGVneTp0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50KS53aXRoTG9ja2VkUG9zaXRpb24oKS53aXRoR3Jvd0FmdGVyT3BlbigpLndpdGhUcmFuc2Zvcm1PcmlnaW5PbigiLm1hdC1tZW51LXBhbmVsLCAubWF0LW1kYy1tZW51LXBhbmVsIiksYmFja2Ryb3BDbGFzczp0aGlzLm1lbnUuYmFja2Ryb3BDbGFzc3x8ImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIixwYW5lbENsYXNzOnRoaXMubWVudS5vdmVybGF5UGFuZWxDbGFzcyxzY3JvbGxTdHJhdGVneTp0aGlzLl9zY3JvbGxTdHJhdGVneSgpLGRpcmVjdGlvbjp0aGlzLl9kaXJ9KX1fc3Vic2NyaWJlVG9Qb3NpdGlvbnModCl7dGhpcy5tZW51LnNldFBvc2l0aW9uQ2xhc3NlcyYmdC5wb3NpdGlvbkNoYW5nZXMuc3Vic2NyaWJlKCh0PT57dGhpcy5tZW51LnNldFBvc2l0aW9uQ2xhc3Nlcygic3RhcnQiPT09dC5jb25uZWN0aW9uUGFpci5vdmVybGF5WD8iYWZ0ZXIiOiJiZWZvcmUiLCJ0b3AiPT09dC5jb25uZWN0aW9uUGFpci5vdmVybGF5WT8iYmVsb3ciOiJhYm92ZSIpfSkpfV9zZXRQb3NpdGlvbih0KXtsZXRbZSxuXT0iYmVmb3JlIj09PXRoaXMubWVudS54UG9zaXRpb24/WyJlbmQiLCJzdGFydCJdOlsic3RhcnQiLCJlbmQiXSxbbyxpXT0iYWJvdmUiPT09dGhpcy5tZW51LnlQb3NpdGlvbj9bImJvdHRvbSIsInRvcCJdOlsidG9wIiwiYm90dG9tIl0sW2Escl09W28saV0sW3MsbF09W2Usbl0sYz0wO3RoaXMudHJpZ2dlcnNTdWJtZW51KCk/KGw9ZT0iYmVmb3JlIj09PXRoaXMubWVudS54UG9zaXRpb24/InN0YXJ0IjoiZW5kIixuPXM9ImVuZCI9PT1lPyJzdGFydCI6ImVuZCIsYz0iYm90dG9tIj09PW8/ODotOCk6dGhpcy5tZW51Lm92ZXJsYXBUcmlnZ2VyfHwoYT0idG9wIj09PW8/ImJvdHRvbSI6InRvcCIscj0idG9wIj09PWk/ImJvdHRvbSI6InRvcCIpLHQud2l0aFBvc2l0aW9ucyhbe29yaWdpblg6ZSxvcmlnaW5ZOmEsb3ZlcmxheVg6cyxvdmVybGF5WTpvLG9mZnNldFk6Y30se29yaWdpblg6bixvcmlnaW5ZOmEsb3ZlcmxheVg6bCxvdmVybGF5WTpvLG9mZnNldFk6Y30se29yaWdpblg6ZSxvcmlnaW5ZOnIsb3ZlcmxheVg6cyxvdmVybGF5WTppLG9mZnNldFk6LWN9LHtvcmlnaW5YOm4sb3JpZ2luWTpyLG92ZXJsYXlYOmwsb3ZlcmxheVk6aSxvZmZzZXRZOi1jfV0pfV9tZW51Q2xvc2luZ0FjdGlvbnMoKXtjb25zdCB0PXRoaXMuX292ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLGU9dGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpO3JldHVybiByZSh0LHRoaXMuX3BhcmVudE1hdGVyaWFsTWVudT90aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUuY2xvc2VkOkV0KCksdGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51P3RoaXMuX3BhcmVudE1hdGVyaWFsTWVudS5faG92ZXJlZCgpLnBpcGUoY2UoKHQ9PnQhPT10aGlzLl9tZW51SXRlbUluc3RhbmNlKSksY2UoKCgpPT50aGlzLl9tZW51T3BlbikpKTpFdCgpLGUpfV9oYW5kbGVNb3VzZWRvd24odCl7Z0kodCl8fCh0aGlzLl9vcGVuZWRCeT0wPT09dC5idXR0b24/Im1vdXNlIjp2b2lkIDAsdGhpcy50cmlnZ2Vyc1N1Ym1lbnUoKSYmdC5wcmV2ZW50RGVmYXVsdCgpKX1faGFuZGxlS2V5ZG93bih0KXtjb25zdCBlPXQua2V5Q29kZTtlIT09bXomJmUhPT1menx8KHRoaXMuX29wZW5lZEJ5PSJrZXlib2FyZCIpLHRoaXMudHJpZ2dlcnNTdWJtZW51KCkmJigzOT09PWUmJiJsdHIiPT09dGhpcy5kaXJ8fDM3PT09ZSYmInJ0bCI9PT10aGlzLmRpcikmJih0aGlzLl9vcGVuZWRCeT0ia2V5Ym9hcmQiLHRoaXMub3Blbk1lbnUoKSl9X2hhbmRsZUNsaWNrKHQpe3RoaXMudHJpZ2dlcnNTdWJtZW51KCk/KHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vcGVuTWVudSgpKTp0aGlzLnRvZ2dsZU1lbnUoKX1faGFuZGxlSG92ZXIoKXt0aGlzLnRyaWdnZXJzU3VibWVudSgpJiZ0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUmJih0aGlzLl9ob3ZlclN1YnNjcmlwdGlvbj10aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUuX2hvdmVyZWQoKS5waXBlKGNlKCh0PT50PT09dGhpcy5fbWVudUl0ZW1JbnN0YW5jZSYmIXQuZGlzYWJsZWQpKSxDZSgwLCQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fb3BlbmVkQnk9Im1vdXNlIix0aGlzLm1lbnUgaW5zdGFuY2VvZiBYVyYmdGhpcy5tZW51Ll9pc0FuaW1hdGluZz90aGlzLm1lbnUuX2FuaW1hdGlvbkRvbmUucGlwZShiZSgxKSxDZSgwLCQpLEllKHRoaXMuX3BhcmVudE1hdGVyaWFsTWVudS5faG92ZXJlZCgpKSkuc3Vic2NyaWJlKCgoKT0+dGhpcy5vcGVuTWVudSgpKSk6dGhpcy5vcGVuTWVudSgpfSkpKX1fZ2V0UG9ydGFsKCl7cmV0dXJuIHRoaXMuX3BvcnRhbCYmdGhpcy5fcG9ydGFsLnRlbXBsYXRlUmVmPT09dGhpcy5tZW51LnRlbXBsYXRlUmVmfHwodGhpcy5fcG9ydGFsPW5ldyB4Rih0aGlzLm1lbnUudGVtcGxhdGVSZWYsdGhpcy5fdmlld0NvbnRhaW5lclJlZikpLHRoaXMuX3BvcnRhbH19ZVkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGVZKShTbShwTCksU20oaGcpLFNtKGVoKSxTbShKVyksU20oVVcsOCksU20oV1csMTApLFNtKEhJLDgpLFNtKFNJKSl9LGVZLsm1ZGlyPWxvKHt0eXBlOmVZLHNlbGVjdG9yczpbWyIiLCJtYXQtbWVudS10cmlnZ2VyLWZvciIsIiJdLFsiIiwibWF0TWVudVRyaWdnZXJGb3IiLCIiXV0saG9zdEF0dHJzOlsiYXJpYS1oYXNwb3B1cCIsInRydWUiLDEsIm1hdC1tZW51LXRyaWdnZXIiXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgibW91c2Vkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlTW91c2Vkb3duKGUpfSkpKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlS2V5ZG93bihlKX0pKSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVDbGljayhlKX0pKSwyJmUmJmpwKCJhcmlhLWV4cGFuZGVkIixuLm1lbnVPcGVufHxudWxsKSgiYXJpYS1jb250cm9scyIsbi5tZW51T3Blbj9uLm1lbnUucGFuZWxJZDpudWxsKX0saW5wdXRzOntyZXN0b3JlRm9jdXM6WyJtYXRNZW51VHJpZ2dlclJlc3RvcmVGb2N1cyIsInJlc3RvcmVGb2N1cyJdLF9kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3I6WyJtYXQtbWVudS10cmlnZ2VyLWZvciIsIl9kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3IiXSxtZW51OlsibWF0TWVudVRyaWdnZXJGb3IiLCJtZW51Il0sbWVudURhdGE6WyJtYXRNZW51VHJpZ2dlckRhdGEiLCJtZW51RGF0YSJdfSxvdXRwdXRzOnttZW51T3BlbmVkOiJtZW51T3BlbmVkIixvbk1lbnVPcGVuOiJvbk1lbnVPcGVuIixtZW51Q2xvc2VkOiJtZW51Q2xvc2VkIixvbk1lbnVDbG9zZToib25NZW51Q2xvc2UifSxleHBvcnRBczpbIm1hdE1lbnVUcmlnZ2VyIl19KSxlWS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnBMfSx7dHlwZTpoZ30se3R5cGU6ZWh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltKV119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1VXXX0se3R5cGU6U3J9XX0se3R5cGU6V1csZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfV19LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlNJfV0sZVkucHJvcERlY29yYXRvcnM9e19kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3I6W3t0eXBlOnh5LGFyZ3M6WyJtYXQtbWVudS10cmlnZ2VyLWZvciJdfV0sbWVudTpbe3R5cGU6eHksYXJnczpbIm1hdE1lbnVUcmlnZ2VyRm9yIl19XSxtZW51RGF0YTpbe3R5cGU6eHksYXJnczpbIm1hdE1lbnVUcmlnZ2VyRGF0YSJdfV0scmVzdG9yZUZvY3VzOlt7dHlwZTp4eSxhcmdzOlsibWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXMiXX1dLG1lbnVPcGVuZWQ6W3t0eXBlOk95fV0sb25NZW51T3Blbjpbe3R5cGU6T3l9XSxtZW51Q2xvc2VkOlt7dHlwZTpPeX1dLG9uTWVudUNsb3NlOlt7dHlwZTpPeX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGVZLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXQtbWVudS10cmlnZ2VyLWZvcl0sIFttYXRNZW51VHJpZ2dlckZvcl0iLGhvc3Q6e2NsYXNzOiJtYXQtbWVudS10cmlnZ2VyIiwiYXJpYS1oYXNwb3B1cCI6InRydWUiLCJbYXR0ci5hcmlhLWV4cGFuZGVkXSI6Im1lbnVPcGVuIHx8IG51bGwiLCJbYXR0ci5hcmlhLWNvbnRyb2xzXSI6Im1lbnVPcGVuID8gbWVudS5wYW5lbElkIDogbnVsbCIsIihtb3VzZWRvd24pIjoiX2hhbmRsZU1vdXNlZG93bigkZXZlbnQpIiwiKGtleWRvd24pIjoiX2hhbmRsZUtleWRvd24oJGV2ZW50KSIsIihjbGljaykiOiJfaGFuZGxlQ2xpY2soJGV2ZW50KSJ9LGV4cG9ydEFzOiJtYXRNZW51VHJpZ2dlciJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpwTH0se3R5cGU6aGd9LHt0eXBlOmVofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbSlddfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltVV119LHt0eXBlOlNyfV19LHt0eXBlOldXLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpTSX1dfSkse3Jlc3RvcmVGb2N1czpbe3R5cGU6eHksYXJnczpbIm1hdE1lbnVUcmlnZ2VyUmVzdG9yZUZvY3VzIl19XSxtZW51T3BlbmVkOlt7dHlwZTpPeX1dLG9uTWVudU9wZW46W3t0eXBlOk95fV0sbWVudUNsb3NlZDpbe3R5cGU6T3l9XSxvbk1lbnVDbG9zZTpbe3R5cGU6T3l9XSxfZGVwcmVjYXRlZE1hdE1lbnVUcmlnZ2VyRm9yOlt7dHlwZTp4eSxhcmdzOlsibWF0LW1lbnUtdHJpZ2dlci1mb3IiXX1dLG1lbnU6W3t0eXBlOnh5LGFyZ3M6WyJtYXRNZW51VHJpZ2dlckZvciJdfV0sbWVudURhdGE6W3t0eXBlOnh5LGFyZ3M6WyJtYXRNZW51VHJpZ2dlckRhdGEiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBuWXt9blkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5ZKX0sblkuybVtb2Q9YW8oe3R5cGU6bll9KSxuWS7JtWluaj12bih7cHJvdmlkZXJzOltRV10saW1wb3J0czpbWEldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChuWSxbe3R5cGU6QXksYXJnczpbe2V4cG9ydHM6W2VZLGpXLFhJXSxkZWNsYXJhdGlvbnM6W2VZLGpXXSxwcm92aWRlcnM6W1FXXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKG5ZLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bZVksalddfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW2VZLGpXLFhJXX19KTtjbGFzcyBvWXt9ZnVuY3Rpb24gaVkodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiw4KX1mdW5jdGlvbiBhWSh0LGUpezEmdCYmVG0oMCwibWF0LWljb24iLDkpfWZ1bmN0aW9uIHJZKHQsZSl7MSZ0JiZUbSgwLCJtYXQtaWNvbiIsMTApfXZhciBzWTtvWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b1kpfSxvWS7JtW1vZD1hbyh7dHlwZTpvWX0pLG9ZLsm1aW5qPXZuKHtwcm92aWRlcnM6W1FXXSxpbXBvcnRzOltbV00sWEksU0gseUwsblldLHlGLFhJLG5ZXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgob1ksW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltXTSxYSSxTSCx5TCxuWV0sZXhwb3J0czpbeUYsWEksS1csV1csblldLGRlY2xhcmF0aW9uczpbS1csV1ddLHByb3ZpZGVyczpbUVddfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8ob1kse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltLVyxXV119LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bV00sWEksU0gseUwsblldfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3lGLFhJLEtXLFdXLG5ZXX19KSwoZnVuY3Rpb24odCl7dFt0LkRFRkFVTFQ9MF09IkRFRkFVTFQiLHRbdC5EQVJLX01PREVfT049MV09IkRBUktfTU9ERV9PTiIsdFt0LkRBUktfTU9ERV9PRkY9Ml09IkRBUktfTU9ERV9PRkYifSkoc1l8fChzWT17fSkpO2NsYXNzIGxZe2NvbnN0cnVjdG9yKCl7dGhpcy5EYXJrTW9kZU92ZXJyaWRlPXNZLHRoaXMub25PdmVycmlkZUNoYW5nZWQ9bmV3IExofWdldEJ1dHRvblRpdGxlKCl7bGV0IHQ7c3dpdGNoKHRoaXMuZGFya01vZGVPdmVycmlkZSl7Y2FzZSBzWS5ERUZBVUxUOnQ9IkJyb3dzZXIgZGVmYXVsdCI7YnJlYWs7Y2FzZSBzWS5EQVJLX01PREVfT046dD0iRGFyayBtb2RlIjticmVhaztjYXNlIHNZLkRBUktfTU9ERV9PRkY6dD0iTGlnaHQgbW9kZSJ9cmV0dXJuYEN1cnJlbnQgbW9kZTogWyR7dH1dLiBTd2l0Y2ggYmV0d2VlbiBicm93c2VyIGRlZmF1bHQsIGxpZ2h0LCBvciBkYXJrIHRoZW1lLmB9fWxZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsWSl9LGxZLsm1Y21wPXRvKHt0eXBlOmxZLHNlbGVjdG9yczpbWyJhcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGUtY29tcG9uZW50Il1dLGlucHV0czp7ZGFya01vZGVPdmVycmlkZToiZGFya01vZGVPdmVycmlkZSJ9LG91dHB1dHM6e29uT3ZlcnJpZGVDaGFuZ2VkOiJvbk92ZXJyaWRlQ2hhbmdlZCJ9LGRlY2xzOjE1LHZhcnM6Nixjb25zdHM6W1sibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsIk1lbnUgZm9yIGNoYW5naW5nIGxpZ2h0IG9yIGRhcmsgdGhlbWUiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIiwibmdTd2l0Y2giLCJ0aXRsZSJdLFsic3ZnSWNvbiIsImJyaWdodG5lc3NfNl8yNHB4Iiw0LCJuZ1N3aXRjaENhc2UiXSxbInN2Z0ljb24iLCJsaWdodF9tb2RlXzI0cHgiLDQsIm5nU3dpdGNoQ2FzZSJdLFsic3ZnSWNvbiIsImRhcmtfbW9kZV8yNHB4Iiw0LCJuZ1N3aXRjaENhc2UiXSxbIm1lbnUiLCJtYXRNZW51Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwidGl0bGUiLCJTZXQgdGhlIHRoZW1lIHRvIG1hdGNoIHRoZSBkZWZhdWx0IG1vZGUgaW4gdGhlIGJyb3dzZXIuIiwzLCJjbGljayJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInRpdGxlIiwiRm9yY2UgbGlnaHQgVGVuc29yQm9hcmQgdGhlbWUuIiwzLCJjbGljayJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInRpdGxlIiwiRm9yY2UgZGFyayBUZW5zb3JCb2FyZCB0aGVtZS4iLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiYnJpZ2h0bmVzc182XzI0cHgiXSxbInN2Z0ljb24iLCJsaWdodF9tb2RlXzI0cHgiXSxbInN2Z0ljb24iLCJkYXJrX21vZGVfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiYnV0dG9uIiwwKSxRcCgxLGlZLDEsMCwibWF0LWljb24iLDEpLFFwKDIsYVksMSwwLCJtYXQtaWNvbiIsMiksUXAoMyxyWSwxLDAsIm1hdC1pY29uIiwzKSxBbSgpLFJtKDQsIm1hdC1tZW51IixudWxsLDQpLFJtKDYsImJ1dHRvbiIsNSksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uT3ZlcnJpZGVDaGFuZ2VkLmVtaXQobi5EYXJrTW9kZU92ZXJyaWRlLkRFRkFVTFQpfSkpLFJtKDcsImxhYmVsIiksa3UoOCwiQnJvd3NlciBkZWZhdWx0IiksQW0oKSxBbSgpLFJtKDksImJ1dHRvbiIsNiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uT3ZlcnJpZGVDaGFuZ2VkLmVtaXQobi5EYXJrTW9kZU92ZXJyaWRlLkRBUktfTU9ERV9PRkYpfSkpLFJtKDEwLCJsYWJlbCIpLGt1KDExLCJMaWdodCIpLEFtKCksQW0oKSxSbSgxMiwiYnV0dG9uIiw3KSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25PdmVycmlkZUNoYW5nZWQuZW1pdChuLkRhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09OKX0pKSxSbSgxMywibGFiZWwiKSxrdSgxNCwiRGFyayIpLEFtKCksQW0oKSxBbSgpKSwyJmUmJihEbSgibWF0TWVudVRyaWdnZXJGb3IiLCRwKDUpKSgibmdTd2l0Y2giLG4uZGFya01vZGVPdmVycmlkZSkoInRpdGxlIixuLmdldEJ1dHRvblRpdGxlKCkpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLG4uRGFya01vZGVPdmVycmlkZS5ERUZBVUxUKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIixuLkRhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09GRikscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsbi5EYXJrTW9kZU92ZXJyaWRlLkRBUktfTU9ERV9PTikpfSxkaXJlY3RpdmVzOltYSCxlWSxmTSxnTSxLVyxXVyxEV10sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJhcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGUtY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPSJtZW51IlxuICAgICAgYXJpYS1sYWJlbD0iTWVudSBmb3IgY2hhbmdpbmcgbGlnaHQgb3IgZGFyayB0aGVtZSJcbiAgICAgIFtuZ1N3aXRjaF09ImRhcmtNb2RlT3ZlcnJpZGUiXG4gICAgICBbdGl0bGVdPSJnZXRCdXR0b25UaXRsZSgpIlxuICAgID5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICAqbmdTd2l0Y2hDYXNlPSJEYXJrTW9kZU92ZXJyaWRlLkRFRkFVTFQiXG4gICAgICAgIHN2Z0ljb249ImJyaWdodG5lc3NfNl8yNHB4IlxuICAgICAgPjwvbWF0LWljb24+XG4gICAgICA8bWF0LWljb25cbiAgICAgICAgKm5nU3dpdGNoQ2FzZT0iRGFya01vZGVPdmVycmlkZS5EQVJLX01PREVfT0ZGIlxuICAgICAgICBzdmdJY29uPSJsaWdodF9tb2RlXzI0cHgiXG4gICAgICA+PC9tYXQtaWNvbj5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICAqbmdTd2l0Y2hDYXNlPSJEYXJrTW9kZU92ZXJyaWRlLkRBUktfTU9ERV9PTiJcbiAgICAgICAgc3ZnSWNvbj0iZGFya19tb2RlXzI0cHgiXG4gICAgICA+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnUgI21lbnU9Im1hdE1lbnUiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIHRpdGxlPSJTZXQgdGhlIHRoZW1lIHRvIG1hdGNoIHRoZSBkZWZhdWx0IG1vZGUgaW4gdGhlIGJyb3dzZXIuIlxuICAgICAgICAoY2xpY2spPSJvbk92ZXJyaWRlQ2hhbmdlZC5lbWl0KERhcmtNb2RlT3ZlcnJpZGUuREVGQVVMVCkiXG4gICAgICA+XG4gICAgICAgIDxsYWJlbD5Ccm93c2VyIGRlZmF1bHQ8L2xhYmVsPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgdGl0bGU9IkZvcmNlIGxpZ2h0IFRlbnNvckJvYXJkIHRoZW1lLiJcbiAgICAgICAgKGNsaWNrKT0ib25PdmVycmlkZUNoYW5nZWQuZW1pdChEYXJrTW9kZU92ZXJyaWRlLkRBUktfTU9ERV9PRkYpIlxuICAgICAgPlxuICAgICAgICA8bGFiZWw+TGlnaHQ8L2xhYmVsPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgdGl0bGU9IkZvcmNlIGRhcmsgVGVuc29yQm9hcmQgdGhlbWUuIlxuICAgICAgICAoY2xpY2spPSJvbk92ZXJyaWRlQ2hhbmdlZC5lbWl0KERhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09OKSJcbiAgICAgID5cbiAgICAgICAgPGxhYmVsPkRhcms8L2xhYmVsPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtbWVudT5cbiAgJ31dfV0sbnVsbCx7ZGFya01vZGVPdmVycmlkZTpbe3R5cGU6eHl9XSxvbk92ZXJyaWRlQ2hhbmdlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIGNZe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmRhcmtNb2RlT3ZlcnJpZGUkPXRoaXMuc3RvcmUuc2VsZWN0KFFEKS5waXBlKEl0KCh0PT5udWxsPT09dD9zWS5ERUZBVUxUOnQ/c1kuREFSS19NT0RFX09OOnNZLkRBUktfTU9ERV9PRkYpKSl9Y2hhbmdlRGFya01vZGUodCl7bGV0IGU9bnVsbDtzd2l0Y2godCl7Y2FzZSBzWS5ERUZBVUxUOmU9bnVsbDticmVhaztjYXNlIHNZLkRBUktfTU9ERV9PRkY6ZT0hMTticmVhaztjYXNlIHNZLkRBUktfTU9ERV9PTjplPSEwfXRoaXMuc3RvcmUuZGlzcGF0Y2goV0Eoe2VuYWJsZURhcmtNb2RlOmV9KSl9fWNZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjWSkoU20oSXcpKX0sY1kuybVjbXA9dG8oe3R5cGU6Y1ksc2VsZWN0b3JzOltbImFwcC1oZWFkZXItZGFyay1tb2RlLXRvZ2dsZSJdXSxkZWNsczoyLHZhcnM6Myxjb25zdHM6W1szLCJkYXJrTW9kZU92ZXJyaWRlIiwib25PdmVycmlkZUNoYW5nZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImFwcC1oZWFkZXItZGFyay1tb2RlLXRvZ2dsZS1jb21wb25lbnQiLDApLFZtKCJvbk92ZXJyaWRlQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uY2hhbmdlRGFya01vZGUoZSl9KSksQWgoMSwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJkYXJrTW9kZU92ZXJyaWRlIixUaCgxLDEsbi5kYXJrTW9kZU92ZXJyaWRlJCkpfSxkaXJlY3RpdmVzOltsWV0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGNZLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImFwcC1oZWFkZXItZGFyay1tb2RlLXRvZ2dsZSIsdGVtcGxhdGU6J1xuICAgIDxhcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGUtY29tcG9uZW50XG4gICAgICBbZGFya01vZGVPdmVycmlkZV09ImRhcmtNb2RlT3ZlcnJpZGUkIHwgYXN5bmMiXG4gICAgICAob25PdmVycmlkZUNoYW5nZWQpPSJjaGFuZ2VEYXJrTW9kZSgkZXZlbnQpIlxuICAgID5cbiAgICA8L2FwcC1oZWFkZXItZGFyay1tb2RlLXRvZ2dsZS1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y29uc3QgZFk9WncodlIsTVIsKCh0LGUpPT4hKCFlfHwhdFtlXSkmJnRbZV0uZGlzYWJsZV9yZWxvYWQpKTtjbGFzcyBwWXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5yZWxvYWREaXNhYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoZFkpLHRoaXMuaXNSZWxvYWRpbmckPXRoaXMuc3RvcmUuc2VsZWN0KF9SKS5waXBlKGZlKHRoaXMucmVsb2FkRGlzYWJsZWQkKSxJdCgoKFt0LGVdKT0+IWUmJnQ9PT15RS5MT0FESU5HKSkpLHRoaXMubGFzdExvYWRlZFRpbWVJbk1zJD10aGlzLnN0b3JlLnNlbGVjdChDUil9dHJpZ2dlclJlbG9hZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2godkUoKSl9Z2V0UmVsb2FkVGl0bGUodCl7cmV0dXJuIHQ/YExhc3QgVXBkYXRlZDogJHt0fWA6IkxvYWRpbmcuLi4ifX1mdW5jdGlvbiBtWSh0KXtyZXR1cm4gdC5zdGF0ZSE9PXlFLk5PVF9MT0FERUQmJnQuc3RhdGUhPT15RS5MT0FESU5HfXBZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxwWSkoU20oSXcpKX0scFkuybVjbXA9dG8oe3R5cGU6cFksc2VsZWN0b3JzOltbImFwcC1oZWFkZXItcmVsb2FkIl1dLGRlY2xzOjYsdmFyczoxMyxjb25zdHM6W1sibWF0LWljb24tYnV0dG9uIiwiIiwxLCJyZWxvYWQtYnV0dG9uIiwzLCJ0aXRsZSIsImRpc2FibGVkIiwiY2xpY2siXSxbInN2Z0ljb24iLCJyZWZyZXNoXzI0cHgiLDEsInJlZnJlc2gtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiYnV0dG9uIiwwKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4udHJpZ2dlclJlbG9hZCgpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiZGF0ZSIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxUbSg1LCJtYXQtaWNvbiIsMSksQW0oKSksMiZlJiYocHUoImxvYWRpbmciLFRoKDEsNCxuLmlzUmVsb2FkaW5nJCkpLERtKCJ0aXRsZSIsbi5nZXRSZWxvYWRUaXRsZShOaCgyLDYsVGgoMyw5LG4ubGFzdExvYWRlZFRpbWVJbk1zJCksIm1lZGl1bSIpKSkoImRpc2FibGVkIixUaCg0LDExLG4ucmVsb2FkRGlzYWJsZWQkKSkpfSxkaXJlY3RpdmVzOltYSCxEV10scGlwZXM6W3dNLFJNXSxzdHlsZXM6WyIucmVsb2FkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5yZWZyZXNoLWljb25bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5yZWxvYWQtYnV0dG9uLmxvYWRpbmdbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYW5pbWF0aW9uOiByb3RhdGUgMnMgbGluZWFyIGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgICA1MCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJhcHAtaGVhZGVyLXJlbG9hZCIsdGVtcGxhdGU6J1xuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPSJyZWxvYWQtYnV0dG9uIlxuICAgICAgW2NsYXNzLmxvYWRpbmddPSJpc1JlbG9hZGluZyQgfCBhc3luYyJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgKGNsaWNrKT0idHJpZ2dlclJlbG9hZCgpIlxuICAgICAgW3RpdGxlXT0iZ2V0UmVsb2FkVGl0bGUobGFzdExvYWRlZFRpbWVJbk1zJCB8IGFzeW5jIHwgZGF0ZTogXCdtZWRpdW1cJykiXG4gICAgICBbZGlzYWJsZWRdPSJyZWxvYWREaXNhYmxlZCQgfCBhc3luYyJcbiAgICA+XG4gICAgICA8bWF0LWljb24gY2xhc3M9InJlZnJlc2gtaWNvbiIgc3ZnSWNvbj0icmVmcmVzaF8yNHB4Ij48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAnLHN0eWxlczpbIlxuICAgICAgLnJlbG9hZC1idXR0b24sXG4gICAgICAucmVmcmVzaC1pY29uIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5yZWxvYWQtYnV0dG9uLmxvYWRpbmcge1xuICAgICAgICBhbmltYXRpb246IHJvdGF0ZSAycyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgcm90YXRlIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y29uc3QgdVk9eWsod04sYmsodk4sKHQ9Pm1ZKHQpP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ3M6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MpLHtyZWxvYWRFbmFibGVkOiF0LnNldHRpbmdzLnJlbG9hZEVuYWJsZWR9KX0pOnQpKSxiayh4TiwoKHQse3BlcmlvZEluTXM6ZX0pPT57aWYoIW1ZKHQpKXJldHVybiB0O2NvbnN0IG49ZT49M2U0P2U6dC5zZXR0aW5ncy5yZWxvYWRQZXJpb2RJbk1zO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdzKSx7cmVsb2FkUGVyaW9kSW5NczpufSl9KX0pKSxiayhPTiwoKHQse3NpemU6ZX0pPT57aWYoIW1ZKHQpKXJldHVybiB0O2NvbnN0IG49ZT4wP2U6dC5zZXR0aW5ncy5wYWdlU2l6ZTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncykse3BhZ2VTaXplOm59KX0pfSkpLGJrKFdTLCgodCx7cGFydGlhbFNldHRpbmdzOmV9KT0+e2NvbnN0IG49e307cmV0dXJuIE51bWJlci5pc0Zpbml0ZShlLnBhZ2VTaXplKSYmZS5wYWdlU2l6ZT4wJiYobi5wYWdlU2l6ZT1lLnBhZ2VTaXplKSwiYm9vbGVhbiI9PXR5cGVvZiBlLmF1dG9SZWxvYWQmJihuLnJlbG9hZEVuYWJsZWQ9ZS5hdXRvUmVsb2FkKSxOdW1iZXIuaXNGaW5pdGUoZS5hdXRvUmVsb2FkUGVyaW9kSW5NcykmJmUuYXV0b1JlbG9hZFBlcmlvZEluTXM+M2U0JiYobi5yZWxvYWRQZXJpb2RJbk1zPWUuYXV0b1JlbG9hZFBlcmlvZEluTXMpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ3M6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MpLG4pfSl9KSkpO2Z1bmN0aW9uIGZZKHQsZSl7cmV0dXJuIHVZKHQsZSl9Y29uc3QgZ1k9WyJpbnB1dCJdLGhZPWZ1bmN0aW9uKHQpe3JldHVybntlbnRlckR1cmF0aW9uOnR9fSxiWT1uZXcgR2EoIm1hdC1jaGVja2JveC1kZWZhdWx0LW9wdGlvbnMiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIHlZKCl7cmV0dXJue2NvbG9yOiJhY2NlbnQiLGNsaWNrQWN0aW9uOiJjaGVjay1pbmRldGVybWluYXRlIn19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL30pO2xldCBfWT0wO2NvbnN0IENZPXtjb2xvcjoiYWNjZW50IixjbGlja0FjdGlvbjoiY2hlY2staW5kZXRlcm1pbmF0ZSJ9LE1ZPXtwcm92aWRlOklWLHVzZUV4aXN0aW5nOnFlKCgoKT0+T1kpKSxtdWx0aTohMH07Y2xhc3Mgdll7fWNvbnN0IHhZPSRJKEpJKFFJKEtJKGNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuX2VsZW1lbnRSZWY9dH19KSkpKTtjbGFzcyBPWSBleHRlbmRzIHhZe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3N1cGVyKHQpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fZm9jdXNNb25pdG9yPW4sdGhpcy5fbmdab25lPW8sdGhpcy5fYW5pbWF0aW9uTW9kZT1hLHRoaXMuX29wdGlvbnM9cix0aGlzLmFyaWFMYWJlbD0iIix0aGlzLmFyaWFMYWJlbGxlZGJ5PW51bGwsdGhpcy5fdW5pcXVlSWQ9Im1hdC1jaGVja2JveC0iKyArK19ZLHRoaXMuaWQ9dGhpcy5fdW5pcXVlSWQsdGhpcy5sYWJlbFBvc2l0aW9uPSJhZnRlciIsdGhpcy5uYW1lPW51bGwsdGhpcy5jaGFuZ2U9bmV3IExoLHRoaXMuaW5kZXRlcm1pbmF0ZUNoYW5nZT1uZXcgTGgsdGhpcy5fb25Ub3VjaGVkPSgpPT57fSx0aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3M9IiIsdGhpcy5fY3VycmVudENoZWNrU3RhdGU9MCx0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuPSgpPT57fSx0aGlzLl9jaGVja2VkPSExLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX2luZGV0ZXJtaW5hdGU9ITEsdGhpcy5fb3B0aW9ucz10aGlzLl9vcHRpb25zfHxDWSx0aGlzLmNvbG9yPXRoaXMuZGVmYXVsdENvbG9yPXRoaXMuX29wdGlvbnMuY29sb3J8fENZLmNvbG9yLHRoaXMudGFiSW5kZXg9cGFyc2VJbnQoaSl8fDB9Z2V0IGlucHV0SWQoKXtyZXR1cm5gJHt0aGlzLmlkfHx0aGlzLl91bmlxdWVJZH0taW5wdXRgfWdldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLl9yZXF1aXJlZH1zZXQgcmVxdWlyZWQodCl7dGhpcy5fcmVxdWlyZWQ9eXoodCl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwhMCkuc3Vic2NyaWJlKCh0PT57dHx8UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9Pnt0aGlzLl9vblRvdWNoZWQoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pKX0pKSx0aGlzLl9zeW5jSW5kZXRlcm1pbmF0ZSh0aGlzLl9pbmRldGVybWluYXRlKX1uZ0FmdGVyVmlld0NoZWNrZWQoKXt9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZil9Z2V0IGNoZWNrZWQoKXtyZXR1cm4gdGhpcy5fY2hlY2tlZH1zZXQgY2hlY2tlZCh0KXt0IT10aGlzLmNoZWNrZWQmJih0aGlzLl9jaGVja2VkPXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7Y29uc3QgZT15eih0KTtlIT09dGhpcy5kaXNhYmxlZCYmKHRoaXMuX2Rpc2FibGVkPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWdldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuX2luZGV0ZXJtaW5hdGV9c2V0IGluZGV0ZXJtaW5hdGUodCl7Y29uc3QgZT10IT10aGlzLl9pbmRldGVybWluYXRlO3RoaXMuX2luZGV0ZXJtaW5hdGU9eXoodCksZSYmKHRoaXMuX3RyYW5zaXRpb25DaGVja1N0YXRlKHRoaXMuX2luZGV0ZXJtaW5hdGU/Mzp0aGlzLmNoZWNrZWQ/MToyKSx0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2UuZW1pdCh0aGlzLl9pbmRldGVybWluYXRlKSksdGhpcy5fc3luY0luZGV0ZXJtaW5hdGUodGhpcy5faW5kZXRlcm1pbmF0ZSl9X2lzUmlwcGxlRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kaXNhYmxlUmlwcGxlfHx0aGlzLmRpc2FibGVkfV9vbkxhYmVsVGV4dENoYW5nZSgpe3RoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKX13cml0ZVZhbHVlKHQpe3RoaXMuY2hlY2tlZD0hIXR9cmVnaXN0ZXJPbkNoYW5nZSh0KXt0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuPXR9cmVnaXN0ZXJPblRvdWNoZWQodCl7dGhpcy5fb25Ub3VjaGVkPXR9c2V0RGlzYWJsZWRTdGF0ZSh0KXt0aGlzLmRpc2FibGVkPXR9X2dldEFyaWFDaGVja2VkKCl7cmV0dXJuIHRoaXMuY2hlY2tlZD8idHJ1ZSI6dGhpcy5pbmRldGVybWluYXRlPyJtaXhlZCI6ImZhbHNlIn1fdHJhbnNpdGlvbkNoZWNrU3RhdGUodCl7bGV0IGU9dGhpcy5fY3VycmVudENoZWNrU3RhdGUsbj10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7aWYoZSE9PXQmJih0aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3MubGVuZ3RoPjAmJm4uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3MpLHRoaXMuX2N1cnJlbnRBbmltYXRpb25DbGFzcz10aGlzLl9nZXRBbmltYXRpb25DbGFzc0ZvckNoZWNrU3RhdGVUcmFuc2l0aW9uKGUsdCksdGhpcy5fY3VycmVudENoZWNrU3RhdGU9dCx0aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3MubGVuZ3RoPjApKXtuLmNsYXNzTGlzdC5hZGQodGhpcy5fY3VycmVudEFuaW1hdGlvbkNsYXNzKTtjb25zdCB0PXRoaXMuX2N1cnJlbnRBbmltYXRpb25DbGFzczt0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57c2V0VGltZW91dCgoKCk9PntuLmNsYXNzTGlzdC5yZW1vdmUodCl9KSwxZTMpfSkpfX1fZW1pdENoYW5nZUV2ZW50KCl7Y29uc3QgdD1uZXcgdlk7dC5zb3VyY2U9dGhpcyx0LmNoZWNrZWQ9dGhpcy5jaGVja2VkLHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5jaGVja2VkKSx0aGlzLmNoYW5nZS5lbWl0KHQpLHRoaXMuX2lucHV0RWxlbWVudCYmKHRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQ9dGhpcy5jaGVja2VkKX10b2dnbGUoKXt0aGlzLmNoZWNrZWQ9IXRoaXMuY2hlY2tlZH1fb25JbnB1dENsaWNrKHQpe3ZhciBlO2NvbnN0IG49bnVsbD09PShlPXRoaXMuX29wdGlvbnMpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNsaWNrQWN0aW9uO3Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5kaXNhYmxlZHx8Im5vb3AiPT09bj90aGlzLmRpc2FibGVkfHwibm9vcCIhPT1ufHwodGhpcy5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZD10aGlzLmNoZWNrZWQsdGhpcy5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5kZXRlcm1pbmF0ZT10aGlzLmluZGV0ZXJtaW5hdGUpOih0aGlzLmluZGV0ZXJtaW5hdGUmJiJjaGVjayIhPT1uJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX2luZGV0ZXJtaW5hdGU9ITEsdGhpcy5pbmRldGVybWluYXRlQ2hhbmdlLmVtaXQodGhpcy5faW5kZXRlcm1pbmF0ZSl9KSksdGhpcy50b2dnbGUoKSx0aGlzLl90cmFuc2l0aW9uQ2hlY2tTdGF0ZSh0aGlzLl9jaGVja2VkPzE6MiksdGhpcy5fZW1pdENoYW5nZUV2ZW50KCkpfWZvY3VzKHQsZSl7dD90aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5faW5wdXRFbGVtZW50LHQsZSk6dGhpcy5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoZSl9X29uSW50ZXJhY3Rpb25FdmVudCh0KXt0LnN0b3BQcm9wYWdhdGlvbigpfV9nZXRBbmltYXRpb25DbGFzc0ZvckNoZWNrU3RhdGVUcmFuc2l0aW9uKHQsZSl7aWYoIk5vb3BBbmltYXRpb25zIj09PXRoaXMuX2FuaW1hdGlvbk1vZGUpcmV0dXJuIiI7bGV0IG49IiI7c3dpdGNoKHQpe2Nhc2UgMDppZigxPT09ZSluPSJ1bmNoZWNrZWQtY2hlY2tlZCI7ZWxzZXtpZigzIT1lKXJldHVybiIiO249InVuY2hlY2tlZC1pbmRldGVybWluYXRlIn1icmVhaztjYXNlIDI6bj0xPT09ZT8idW5jaGVja2VkLWNoZWNrZWQiOiJ1bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSI7YnJlYWs7Y2FzZSAxOm49Mj09PWU/ImNoZWNrZWQtdW5jaGVja2VkIjoiY2hlY2tlZC1pbmRldGVybWluYXRlIjticmVhaztjYXNlIDM6bj0xPT09ZT8iaW5kZXRlcm1pbmF0ZS1jaGVja2VkIjoiaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQifXJldHVybmBtYXQtY2hlY2tib3gtYW5pbS0ke259YH1fc3luY0luZGV0ZXJtaW5hdGUodCl7Y29uc3QgZT10aGlzLl9pbnB1dEVsZW1lbnQ7ZSYmKGUubmF0aXZlRWxlbWVudC5pbmRldGVybWluYXRlPXQpfX1PWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8T1kpKFNtKGhnKSxTbShVZyksU20oU0kpLFNtKGFfKSxOYSgidGFiaW5kZXgiKSxTbShWUCw4KSxTbShiWSw4KSl9LE9ZLsm1Y21wPXRvKHt0eXBlOk9ZLHNlbGVjdG9yczpbWyJtYXQtY2hlY2tib3giXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChnWSw1KSxRaChrSCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5faW5wdXRFbGVtZW50PXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLnJpcHBsZT10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LWNoZWNrYm94Il0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJihUdSgiaWQiLG4uaWQpLGpwKCJ0YWJpbmRleCIsbnVsbCkscHUoIm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIixuLmluZGV0ZXJtaW5hdGUpKCJtYXQtY2hlY2tib3gtY2hlY2tlZCIsbi5jaGVja2VkKSgibWF0LWNoZWNrYm94LWRpc2FibGVkIixuLmRpc2FibGVkKSgibWF0LWNoZWNrYm94LWxhYmVsLWJlZm9yZSIsImJlZm9yZSI9PW4ubGFiZWxQb3NpdGlvbikoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIiwiTm9vcEFuaW1hdGlvbnMiPT09bi5fYW5pbWF0aW9uTW9kZSkpfSxpbnB1dHM6e2Rpc2FibGVSaXBwbGU6ImRpc2FibGVSaXBwbGUiLGNvbG9yOiJjb2xvciIsdGFiSW5kZXg6InRhYkluZGV4IixhcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdLGlkOiJpZCIsbGFiZWxQb3NpdGlvbjoibGFiZWxQb3NpdGlvbiIsbmFtZToibmFtZSIscmVxdWlyZWQ6InJlcXVpcmVkIixjaGVja2VkOiJjaGVja2VkIixkaXNhYmxlZDoiZGlzYWJsZWQiLGluZGV0ZXJtaW5hdGU6ImluZGV0ZXJtaW5hdGUiLGFyaWFEZXNjcmliZWRieTpbImFyaWEtZGVzY3JpYmVkYnkiLCJhcmlhRGVzY3JpYmVkYnkiXSx2YWx1ZToidmFsdWUifSxvdXRwdXRzOntjaGFuZ2U6ImNoYW5nZSIsaW5kZXRlcm1pbmF0ZUNoYW5nZToiaW5kZXRlcm1pbmF0ZUNoYW5nZSJ9LGV4cG9ydEFzOlsibWF0Q2hlY2tib3giXSxmZWF0dXJlczpbcGcoW01ZXSkseHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczoxNyx2YXJzOjIxLGNvbnN0czpbWzEsIm1hdC1jaGVja2JveC1sYXlvdXQiXSxbImxhYmVsIiwiIl0sWzEsIm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIiXSxbInR5cGUiLCJjaGVja2JveCIsMSwibWF0LWNoZWNrYm94LWlucHV0IiwiY2RrLXZpc3VhbGx5LWhpZGRlbiIsMywiaWQiLCJyZXF1aXJlZCIsImNoZWNrZWQiLCJkaXNhYmxlZCIsInRhYkluZGV4IiwiY2hhbmdlIiwiY2xpY2siXSxbImlucHV0IiwiIl0sWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1jaGVja2JveC1yaXBwbGUiLCJtYXQtZm9jdXMtaW5kaWNhdG9yIiwzLCJtYXRSaXBwbGVUcmlnZ2VyIiwibWF0UmlwcGxlRGlzYWJsZWQiLCJtYXRSaXBwbGVSYWRpdXMiLCJtYXRSaXBwbGVDZW50ZXJlZCIsIm1hdFJpcHBsZUFuaW1hdGlvbiJdLFsxLCJtYXQtcmlwcGxlLWVsZW1lbnQiLCJtYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGUiXSxbMSwibWF0LWNoZWNrYm94LWZyYW1lIl0sWzEsIm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIl0sWyJ2ZXJzaW9uIiwiMS4xIiwiZm9jdXNhYmxlIiwiZmFsc2UiLCJ2aWV3Qm94IiwiMCAwIDI0IDI0IiwwLCJ4bWwiLCJzcGFjZSIsInByZXNlcnZlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtYXQtY2hlY2tib3gtY2hlY2ttYXJrIl0sWyJmaWxsIiwibm9uZSIsInN0cm9rZSIsIndoaXRlIiwiZCIsIk00LjEsMTIuNyA5LDE3LjYgMjAuMyw2LjMiLDEsIm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCJdLFsxLCJtYXQtY2hlY2tib3gtbWl4ZWRtYXJrIl0sWzEsIm1hdC1jaGVja2JveC1sYWJlbCIsMywiY2RrT2JzZXJ2ZUNvbnRlbnQiXSxbImNoZWNrYm94TGFiZWwiLCIiXSxbMiwiZGlzcGxheSIsIm5vbmUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFptKCksUm0oMCwibGFiZWwiLDAsMSksUm0oMiwic3BhbiIsMiksUm0oMywiaW5wdXQiLDMsNCksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uSW50ZXJhY3Rpb25FdmVudChlKX0pKSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9vbklucHV0Q2xpY2soZSl9KSksQW0oKSxSbSg1LCJzcGFuIiw1KSxUbSg2LCJzcGFuIiw2KSxBbSgpLFRtKDcsInNwYW4iLDcpLFJtKDgsInNwYW4iLDgpLHFpKCksUm0oOSwic3ZnIiw5KSxUbSgxMCwicGF0aCIsMTApLEFtKCksWmkoKSxUbSgxMSwic3BhbiIsMTEpLEFtKCksQW0oKSxSbSgxMiwic3BhbiIsMTIsMTMpLFZtKCJjZGtPYnNlcnZlQ29udGVudCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25MYWJlbFRleHRDaGFuZ2UoKX0pKSxSbSgxNCwic3BhbiIsMTQpLGt1KDE1LCLCoCIpLEFtKCksWG0oMTYpLEFtKCksQW0oKSksMiZlKXtjb25zdCB0PSRwKDEpLGU9JHAoMTMpO2pwKCJmb3IiLG4uaW5wdXRJZCkscmMoMikscHUoIm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXItbm8tc2lkZS1tYXJnaW4iLCFlLnRleHRDb250ZW50fHwhZS50ZXh0Q29udGVudC50cmltKCkpLHJjKDEpLERtKCJpZCIsbi5pbnB1dElkKSgicmVxdWlyZWQiLG4ucmVxdWlyZWQpKCJjaGVja2VkIixuLmNoZWNrZWQpKCJkaXNhYmxlZCIsbi5kaXNhYmxlZCkoInRhYkluZGV4IixuLnRhYkluZGV4KSxqcCgidmFsdWUiLG4udmFsdWUpKCJuYW1lIixuLm5hbWUpKCJhcmlhLWxhYmVsIixuLmFyaWFMYWJlbHx8bnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbi5hcmlhTGFiZWxsZWRieSkoImFyaWEtY2hlY2tlZCIsbi5fZ2V0QXJpYUNoZWNrZWQoKSkoImFyaWEtZGVzY3JpYmVkYnkiLG4uYXJpYURlc2NyaWJlZGJ5KSxyYygyKSxEbSgibWF0UmlwcGxlVHJpZ2dlciIsdCkoIm1hdFJpcHBsZURpc2FibGVkIixuLl9pc1JpcHBsZURpc2FibGVkKCkpKCJtYXRSaXBwbGVSYWRpdXMiLDIwKSgibWF0UmlwcGxlQ2VudGVyZWQiLCEwKSgibWF0UmlwcGxlQW5pbWF0aW9uIixNaCgxOSxoWSwiTm9vcEFuaW1hdGlvbnMiPT09bi5fYW5pbWF0aW9uTW9kZT8wOjE1MCkpfX0sZGlyZWN0aXZlczpba0gsanpdLHN0eWxlczpbIkBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZHswJXtvcGFjaXR5OjB9NTAle29wYWNpdHk6MX19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZHswJSw1MCV7b3BhY2l0eToxfTEwMCV7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC11bmNoZWNrZWQtY2hlY2tlZC1jaGVja21hcmstcGF0aHswJSw1MCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjIuOTEwMjU5fTUwJXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSl9MTAwJXtzdHJva2UtZGFzaG9mZnNldDowfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmt7MCUsNjguMiV7dHJhbnNmb3JtOnNjYWxlWCgwKX02OC4yJXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLCAwLCAwLCAxKX0xMDAle3RyYW5zZm9ybTpzY2FsZVgoMSl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWNoZWNrZWQtdW5jaGVja2VkLWNoZWNrbWFyay1wYXRoe2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtzdHJva2UtZGFzaG9mZnNldDowfXRve3N0cm9rZS1kYXNob2Zmc2V0Oi0yMi45MTAyNTl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1jaGVja21hcmt7ZnJvbXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSk7b3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtY2hlY2ttYXJre2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC4xNCwgMCwgMCwgMSk7b3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmt7ZnJvbXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSk7b3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLW1peGVkbWFya3tmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMTQsIDAsIDAsIDEpO29wYWNpdHk6MTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDMxNWRlZyl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkLW1peGVkbWFya3swJXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlWCgxKX0zMi44JSwxMDAle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDApfX0ubWF0LWNoZWNrYm94LWJhY2tncm91bmQsLm1hdC1jaGVja2JveC1mcmFtZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LWNoZWNrYm94e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtY2hlY2tib3h7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZSl7b3BhY2l0eTouMTZ9Lm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LXJpcHBsZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OmNhbGMoNTAlIC0gMjBweCk7dG9wOmNhbGMoNTAlIC0gMjBweCk7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtY2hlY2tib3guY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jaGVja2JveC1yaXBwbGV7b3V0bGluZTpzb2xpZCAzcHh9Lm1hdC1jaGVja2JveC1sYXlvdXR7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjppbmhlcml0O2FsaWduLWl0ZW1zOmJhc2VsaW5lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtkaXNwbGF5OmlubGluZS1mbGV4O3doaXRlLXNwYWNlOm5vd3JhcH0ubWF0LWNoZWNrYm94LWxhYmVsey13ZWJraXQtdXNlci1zZWxlY3Q6YXV0bzstbW96LXVzZXItc2VsZWN0OmF1dG87LW1zLXVzZXItc2VsZWN0OmF1dG87dXNlci1zZWxlY3Q6YXV0b30ubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTZweDtsaW5lLWhlaWdodDowO21hcmdpbjphdXRvO21hcmdpbi1yaWdodDo4cHg7b3JkZXI6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjE2cHg7ZmxleC1zaHJpbms6MH1bZGlyPXJ0bF0gLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXJ7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDphdXRvfS5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyLW5vLXNpZGUtbWFyZ2lue21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjB9Lm1hdC1jaGVja2JveC1mcmFtZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIDkwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKTtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1jaGVja2JveC1mcmFtZXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDkwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSxvcGFjaXR5IDkwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKTstd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDpleGFjdDtjb2xvci1hZGp1c3Q6ZXhhY3R9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHt0cmFuc2l0aW9uOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kOm5vbmV9Lm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dHJhbnNmb3JtOm5vbmV9Lm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXI6aG92ZXIgLm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5Oi4wNH0ubWF0LWNoZWNrYm94LmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGV7b3BhY2l0eTouMTJ9Lm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LWNoZWNrYm94Lm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcjpob3ZlciAubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6MH1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyOmhvdmVyIC5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGV7ZGlzcGxheTpub25lfX0ubWF0LWNoZWNrYm94LWNoZWNrbWFya3t0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlfS5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7c3Ryb2tlLWRhc2hvZmZzZXQ6MjIuOTEwMjU5O3N0cm9rZS1kYXNoYXJyYXk6MjIuOTEwMjU5O3N0cm9rZS13aWR0aDoyLjEzMzMzMzMzMzNweH0uY2RrLWhpZ2gtY29udHJhc3QtYmxhY2stb24td2hpdGUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHtzdHJva2U6IzAwMCAhaW1wb3J0YW50fS5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre3dpZHRoOmNhbGMoMTAwJSAtIDZweCk7aGVpZ2h0OjJweDtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlWCgwKSByb3RhdGUoMGRlZyk7Ym9yZGVyLXJhZGl1czoycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWNoZWNrYm94LW1peGVkbWFya3toZWlnaHQ6MDtib3JkZXItdG9wOnNvbGlkIDJweDttYXJnaW4tdG9wOjJweH0ubWF0LWNoZWNrYm94LWxhYmVsLWJlZm9yZSAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcntvcmRlcjoxO21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6YXV0b31bZGlyPXJ0bF0gLm1hdC1jaGVja2JveC1sYWJlbC1iZWZvcmUgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXJ7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6OHB4fS5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWNoZWNrbWFya3tvcGFjaXR5OjF9Lm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7c3Ryb2tlLWRhc2hvZmZzZXQ6MH0ubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7dHJhbnNmb3JtOnNjYWxlWCgxKSByb3RhdGUoLTQ1ZGVnKX0ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1jaGVja21hcmt7b3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjB9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGVYKDEpIHJvdGF0ZSgwZGVnKX0ubWF0LWNoZWNrYm94LXVuY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LWNoZWNrYm94LWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1jaGVja2JveC1kaXNhYmxlZHtvcGFjaXR5Oi41fS5tYXQtY2hlY2tib3gtYW5pbS11bmNoZWNrZWQtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZH0ubWF0LWNoZWNrYm94LWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHthbmltYXRpb246MTgwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtdW5jaGVja2VkLWNoZWNrZWQtY2hlY2ttYXJrLXBhdGh9Lm1hdC1jaGVja2JveC1hbmltLXVuY2hlY2tlZC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHthbmltYXRpb246MTgwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kfS5tYXQtY2hlY2tib3gtYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LW1peGVkbWFya3thbmltYXRpb246OTBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmt9Lm1hdC1jaGVja2JveC1hbmltLWNoZWNrZWQtdW5jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHthbmltYXRpb246MTgwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZH0ubWF0LWNoZWNrYm94LWFuaW0tY2hlY2tlZC11bmNoZWNrZWQgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHthbmltYXRpb246OTBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aH0ubWF0LWNoZWNrYm94LWFuaW0tY2hlY2tlZC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJre2FuaW1hdGlvbjo5MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1jaGVja21hcmt9Lm1hdC1jaGVja2JveC1hbmltLWNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LW1peGVkbWFya3thbmltYXRpb246OTBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1pbmRldGVybWluYXRlLWNoZWNrZWQgLm1hdC1jaGVja2JveC1jaGVja21hcmt7YW5pbWF0aW9uOjUwMG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1jaGVja21hcmt9Lm1hdC1jaGVja2JveC1hbmltLWluZGV0ZXJtaW5hdGUtY2hlY2tlZCAubWF0LWNoZWNrYm94LW1peGVkbWFya3thbmltYXRpb246NTAwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLW1peGVkbWFya30ubWF0LWNoZWNrYm94LWFuaW0taW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2FuaW1hdGlvbjoxODBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kfS5tYXQtY2hlY2tib3gtYW5pbS1pbmRldGVybWluYXRlLXVuY2hlY2tlZCAubWF0LWNoZWNrYm94LW1peGVkbWFya3thbmltYXRpb246MzAwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQtbWl4ZWRtYXJrfS5tYXQtY2hlY2tib3gtaW5wdXR7Ym90dG9tOjA7bGVmdDo1MCV9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxPWS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6U0l9LHt0eXBlOmFffSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltiWV19XX1dLE9ZLnByb3BEZWNvcmF0b3JzPXthcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0sYXJpYURlc2NyaWJlZGJ5Olt7dHlwZTp4eSxhcmdzOlsiYXJpYS1kZXNjcmliZWRieSJdfV0saWQ6W3t0eXBlOnh5fV0scmVxdWlyZWQ6W3t0eXBlOnh5fV0sbGFiZWxQb3NpdGlvbjpbe3R5cGU6eHl9XSxuYW1lOlt7dHlwZTp4eX1dLGNoYW5nZTpbe3R5cGU6T3l9XSxpbmRldGVybWluYXRlQ2hhbmdlOlt7dHlwZTpPeX1dLHZhbHVlOlt7dHlwZTp4eX1dLF9pbnB1dEVsZW1lbnQ6W3t0eXBlOlphLGFyZ3M6WyJpbnB1dCJdfV0scmlwcGxlOlt7dHlwZTpaYSxhcmdzOltrSF19XSxjaGVja2VkOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dLGluZGV0ZXJtaW5hdGU6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoT1ksW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWNoZWNrYm94Iix0ZW1wbGF0ZTonPGxhYmVsIFthdHRyLmZvcl09ImlucHV0SWQiIGNsYXNzPSJtYXQtY2hlY2tib3gtbGF5b3V0IiAjbGFiZWw+XG4gIDxzcGFuIGNsYXNzPSJtYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIlxuICAgICAgIFtjbGFzcy5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyLW5vLXNpZGUtbWFyZ2luXT0iIWNoZWNrYm94TGFiZWwudGV4dENvbnRlbnQgfHwgIWNoZWNrYm94TGFiZWwudGV4dENvbnRlbnQudHJpbSgpIj5cbiAgICA8aW5wdXQgI2lucHV0XG4gICAgICAgICAgIGNsYXNzPSJtYXQtY2hlY2tib3gtaW5wdXQgY2RrLXZpc3VhbGx5LWhpZGRlbiIgdHlwZT0iY2hlY2tib3giXG4gICAgICAgICAgIFtpZF09ImlucHV0SWQiXG4gICAgICAgICAgIFtyZXF1aXJlZF09InJlcXVpcmVkIlxuICAgICAgICAgICBbY2hlY2tlZF09ImNoZWNrZWQiXG4gICAgICAgICAgIFthdHRyLnZhbHVlXT0idmFsdWUiXG4gICAgICAgICAgIFtkaXNhYmxlZF09ImRpc2FibGVkIlxuICAgICAgICAgICBbYXR0ci5uYW1lXT0ibmFtZSJcbiAgICAgICAgICAgW3RhYkluZGV4XT0idGFiSW5kZXgiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPSJhcmlhTGFiZWwgfHwgbnVsbCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT0iYXJpYUxhYmVsbGVkYnkiXG4gICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09Il9nZXRBcmlhQ2hlY2tlZCgpIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT0iYXJpYURlc2NyaWJlZGJ5IlxuICAgICAgICAgICAoY2hhbmdlKT0iX29uSW50ZXJhY3Rpb25FdmVudCgkZXZlbnQpIlxuICAgICAgICAgICAoY2xpY2spPSJfb25JbnB1dENsaWNrKCRldmVudCkiPlxuICAgIDxzcGFuIG1hdFJpcHBsZSBjbGFzcz0ibWF0LWNoZWNrYm94LXJpcHBsZSBtYXQtZm9jdXMtaW5kaWNhdG9yIlxuICAgICAgICAgW21hdFJpcHBsZVRyaWdnZXJdPSJsYWJlbCJcbiAgICAgICAgIFttYXRSaXBwbGVEaXNhYmxlZF09Il9pc1JpcHBsZURpc2FibGVkKCkiXG4gICAgICAgICBbbWF0UmlwcGxlUmFkaXVzXT0iMjAiXG4gICAgICAgICBbbWF0UmlwcGxlQ2VudGVyZWRdPSJ0cnVlIlxuICAgICAgICAgW21hdFJpcHBsZUFuaW1hdGlvbl09IntlbnRlckR1cmF0aW9uOiBfYW5pbWF0aW9uTW9kZSA9PT0gXCdOb29wQW5pbWF0aW9uc1wnID8gMCA6IDE1MH0iPlxuICAgICAgPHNwYW4gY2xhc3M9Im1hdC1yaXBwbGUtZWxlbWVudCBtYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGUiPjwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9Im1hdC1jaGVja2JveC1mcmFtZSI+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPSJtYXQtY2hlY2tib3gtYmFja2dyb3VuZCI+XG4gICAgICA8c3ZnIHZlcnNpb249IjEuMSJcbiAgICAgICAgICAgZm9jdXNhYmxlPSJmYWxzZSJcbiAgICAgICAgICAgY2xhc3M9Im1hdC1jaGVja2JveC1jaGVja21hcmsiXG4gICAgICAgICAgIHZpZXdCb3g9IjAgMCAyNCAyNCJcbiAgICAgICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSJcbiAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiPlxuICAgICAgICA8cGF0aCBjbGFzcz0ibWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIlxuICAgICAgICAgICAgICBmaWxsPSJub25lIlxuICAgICAgICAgICAgICBzdHJva2U9IndoaXRlIlxuICAgICAgICAgICAgICBkPSJNNC4xLDEyLjcgOSwxNy42IDIwLjMsNi4zIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIFx4M2MhLS0gRWxlbWVudCBmb3IgcmVuZGVyaW5nIHRoZSBpbmRldGVybWluYXRlIHN0YXRlIGNoZWNrYm94LiAtLVx4M2VcbiAgICAgIDxzcGFuIGNsYXNzPSJtYXQtY2hlY2tib3gtbWl4ZWRtYXJrIj48L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPSJtYXQtY2hlY2tib3gtbGFiZWwiICNjaGVja2JveExhYmVsIChjZGtPYnNlcnZlQ29udGVudCk9Il9vbkxhYmVsVGV4dENoYW5nZSgpIj5cbiAgICBceDNjIS0tIEFkZCBhbiBpbnZpc2libGUgc3BhbiBzbyBKQVdTIGNhbiByZWFkIHRoZSBsYWJlbCAtLVx4M2VcbiAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTpub25lIj4mbmJzcDs8L3NwYW4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3NwYW4+XG48L2xhYmVsPlxuJyxleHBvcnRBczoibWF0Q2hlY2tib3giLGhvc3Q6e2NsYXNzOiJtYXQtY2hlY2tib3giLCJbaWRdIjoiaWQiLCJbYXR0ci50YWJpbmRleF0iOiJudWxsIiwiW2NsYXNzLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlXSI6ImluZGV0ZXJtaW5hdGUiLCJbY2xhc3MubWF0LWNoZWNrYm94LWNoZWNrZWRdIjoiY2hlY2tlZCIsIltjbGFzcy5tYXQtY2hlY2tib3gtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbY2xhc3MubWF0LWNoZWNrYm94LWxhYmVsLWJlZm9yZV0iOidsYWJlbFBvc2l0aW9uID09ICJiZWZvcmUiJywiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6Il9hbmltYXRpb25Nb2RlID09PSAnTm9vcEFuaW1hdGlvbnMnIn0scHJvdmlkZXJzOltNWV0saW5wdXRzOlsiZGlzYWJsZVJpcHBsZSIsImNvbG9yIiwidGFiSW5kZXgiXSxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxzdHlsZXM6WyJAa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmR7MCV7b3BhY2l0eTowfTUwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmR7MCUsNTAle29wYWNpdHk6MX0xMDAle29wYWNpdHk6MH19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtdW5jaGVja2VkLWNoZWNrZWQtY2hlY2ttYXJrLXBhdGh7MCUsNTAle3N0cm9rZS1kYXNob2Zmc2V0OjIyLjkxMDI1OX01MCV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpfTEwMCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MH19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrezAlLDY4LjIle3RyYW5zZm9ybTpzY2FsZVgoMCl9NjguMiV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMCwgMSl9MTAwJXt0cmFuc2Zvcm06c2NhbGVYKDEpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aHtmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7c3Ryb2tlLWRhc2hvZmZzZXQ6MH10b3tzdHJva2UtZGFzaG9mZnNldDotMjIuOTEwMjU5fX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJre2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpO29wYWNpdHk6MTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWNoZWNrbWFya3tmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMTQsIDAsIDAsIDEpO29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJre2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpO29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmt7ZnJvbXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjE0LCAwLCAwLCAxKTtvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnJvdGF0ZSgzMTVkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmt7MCV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZVgoMSl9MzIuOCUsMTAwJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlWCgwKX19Lm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLC5tYXQtY2hlY2tib3gtZnJhbWV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNpemluZzpib3JkZXItYm94O3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2l0aW9uOmJhY2tncm91bmQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LWNoZWNrYm94e3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGUpe29wYWNpdHk6LjE2fS5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1yaXBwbGV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDpjYWxjKDUwJSAtIDIwcHgpO3RvcDpjYWxjKDUwJSAtIDIwcHgpO2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWNoZWNrYm94LmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2hlY2tib3gtcmlwcGxle291dGxpbmU6c29saWQgM3B4fS5tYXQtY2hlY2tib3gtbGF5b3V0ey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6aW5oZXJpdDthbGlnbi1pdGVtczpiYXNlbGluZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmUtZmxleDt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1hdC1jaGVja2JveC1sYWJlbHstd2Via2l0LXVzZXItc2VsZWN0OmF1dG87LW1vei11c2VyLXNlbGVjdDphdXRvOy1tcy11c2VyLXNlbGVjdDphdXRvO3VzZXItc2VsZWN0OmF1dG99Lm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6MDttYXJnaW46YXV0bzttYXJnaW4tcmlnaHQ6OHB4O29yZGVyOjA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxNnB4O2ZsZXgtc2hyaW5rOjB9W2Rpcj1ydGxdIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVye21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6YXV0b30ubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lci1uby1zaWRlLW1hcmdpbnttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfS5tYXQtY2hlY2tib3gtZnJhbWV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSk7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtY2hlY2tib3gtZnJhbWV7dHJhbnNpdGlvbjpub25lfS5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSksb3BhY2l0eSA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSk7LXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6ZXhhY3Q7Y29sb3ItYWRqdXN0OmV4YWN0fS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZDpub25lfS5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGV7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RyYW5zZm9ybTpub25lfS5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyOmhvdmVyIC5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGV7b3BhY2l0eTouMDR9Lm1hdC1jaGVja2JveC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6LjEyfS5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1jaGVja2JveC5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXI6aG92ZXIgLm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5OjB9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcjpob3ZlciAubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxle2Rpc3BsYXk6bm9uZX19Lm1hdC1jaGVja2JveC1jaGVja21hcmt7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0ubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjIyLjkxMDI1OTtzdHJva2UtZGFzaGFycmF5OjIyLjkxMDI1OTtzdHJva2Utd2lkdGg6Mi4xMzMzMzMzMzMzcHh9LmNkay1oaWdoLWNvbnRyYXN0LWJsYWNrLW9uLXdoaXRlIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7c3Ryb2tlOiMwMDAgIWltcG9ydGFudH0ubWF0LWNoZWNrYm94LW1peGVkbWFya3t3aWR0aDpjYWxjKDEwMCUgLSA2cHgpO2hlaWdodDoycHg7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZVgoMCkgcm90YXRlKDBkZWcpO2JvcmRlci1yYWRpdXM6MnB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7aGVpZ2h0OjA7Ym9yZGVyLXRvcDpzb2xpZCAycHg7bWFyZ2luLXRvcDoycHh9Lm1hdC1jaGVja2JveC1sYWJlbC1iZWZvcmUgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXJ7b3JkZXI6MTttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OmF1dG99W2Rpcj1ydGxdIC5tYXQtY2hlY2tib3gtbGFiZWwtYmVmb3JlIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVye21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OjhweH0ubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1jaGVja21hcmt7b3BhY2l0eToxfS5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjB9Lm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre3RyYW5zZm9ybTpzY2FsZVgoMSkgcm90YXRlKC00NWRlZyl9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJre29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHtzdHJva2UtZGFzaG9mZnNldDowfS5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LW1peGVkbWFya3tvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlWCgxKSByb3RhdGUoMGRlZyl9Lm1hdC1jaGVja2JveC11bmNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1jaGVja2JveC1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtY2hlY2tib3gtZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LWNoZWNrYm94LWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2FuaW1hdGlvbjoxODBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmR9Lm1hdC1jaGVja2JveC1hbmltLXVuY2hlY2tlZC1jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LXVuY2hlY2tlZC1jaGVja2VkLWNoZWNrbWFyay1wYXRofS5tYXQtY2hlY2tib3gtYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZH0ubWF0LWNoZWNrYm94LWFuaW0tdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjkwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1jaGVja2VkLXVuY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmR9Lm1hdC1jaGVja2JveC1hbmltLWNoZWNrZWQtdW5jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7YW5pbWF0aW9uOjkwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtY2hlY2tlZC11bmNoZWNrZWQtY2hlY2ttYXJrLXBhdGh9Lm1hdC1jaGVja2JveC1hbmltLWNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWNoZWNrbWFya3thbmltYXRpb246OTBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjkwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFya30ubWF0LWNoZWNrYm94LWFuaW0taW5kZXRlcm1pbmF0ZS1jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJre2FuaW1hdGlvbjo1MDBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtY2hlY2ttYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1pbmRldGVybWluYXRlLWNoZWNrZWQgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjUwMG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmt9Lm1hdC1jaGVja2JveC1hbmltLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHthbmltYXRpb246MTgwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZH0ubWF0LWNoZWNrYm94LWFuaW0taW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjMwMG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkLW1peGVkbWFya30ubWF0LWNoZWNrYm94LWlucHV0e2JvdHRvbTowO2xlZnQ6NTAlfVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6VWd9LHt0eXBlOlNJfSx7dHlwZTphX30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbYlldfV19XX0pLHthcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0saWQ6W3t0eXBlOnh5fV0sbGFiZWxQb3NpdGlvbjpbe3R5cGU6eHl9XSxuYW1lOlt7dHlwZTp4eX1dLGNoYW5nZTpbe3R5cGU6T3l9XSxpbmRldGVybWluYXRlQ2hhbmdlOlt7dHlwZTpPeX1dLHJlcXVpcmVkOlt7dHlwZTp4eX1dLGNoZWNrZWQ6W3t0eXBlOnh5fV0sZGlzYWJsZWQ6W3t0eXBlOnh5fV0saW5kZXRlcm1pbmF0ZTpbe3R5cGU6eHl9XSxhcmlhRGVzY3JpYmVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSx2YWx1ZTpbe3R5cGU6eHl9XSxfaW5wdXRFbGVtZW50Olt7dHlwZTpaYSxhcmdzOlsiaW5wdXQiXX1dLHJpcHBsZTpbe3R5cGU6WmEsYXJnczpba0hdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFBZPXtwcm92aWRlOkdWLHVzZUV4aXN0aW5nOnFlKCgoKT0+d1kpKSxtdWx0aTohMH07Y2xhc3Mgd1kgZXh0ZW5kcyBLVXt9d1kuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKHdZKSkpKG58fHdZKX19KSgpLHdZLsm1ZGlyPWxvKHt0eXBlOndZLHNlbGVjdG9yczpbWyJtYXQtY2hlY2tib3giLCJyZXF1aXJlZCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsibWF0LWNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsibWF0LWNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJuZ01vZGVsIiwiIl1dLGZlYXR1cmVzOltwZyhbUFldKSx4cF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHdZLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1jaGVja2JveFtyZXF1aXJlZF1bZm9ybUNvbnRyb2xOYW1lXSxcbiAgICAgICAgICAgICBtYXQtY2hlY2tib3hbcmVxdWlyZWRdW2Zvcm1Db250cm9sXSwgbWF0LWNoZWNrYm94W3JlcXVpcmVkXVtuZ01vZGVsXSIscHJvdmlkZXJzOltQWV19XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBrWXt9a1kuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGtZKX0sa1kuybVtb2Q9YW8oe3R5cGU6a1l9KSxrWS7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrWSxbe3R5cGU6QXksYXJnczpbe2V4cG9ydHM6W3dZXSxkZWNsYXJhdGlvbnM6W3dZXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKGtZLHtkZWNsYXJhdGlvbnM6W3dZXSxleHBvcnRzOlt3WV19KTtjbGFzcyBTWXt9U1kuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFNZKX0sU1kuybVtb2Q9YW8oe3R5cGU6U1l9KSxTWS7JtWluaj12bih7aW1wb3J0czpbW1NILFhJLFV6LGtZXSxYSSxrWV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFNZLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbU0gsWEksVXosa1ldLGV4cG9ydHM6W09ZLFhJLGtZXSxkZWNsYXJhdGlvbnM6W09ZXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFNZLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bT1ldfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1NILFhJLFV6LGtZXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltPWSxYSSxrWV19fSk7Y29uc3QgRFk9Tnooe3Bhc3NpdmU6ITB9KTtjbGFzcyBFWXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3BsYXRmb3JtPXQsdGhpcy5fbmdab25lPWUsdGhpcy5fbW9uaXRvcmVkRWxlbWVudHM9bmV3IE1hcH1tb25pdG9yKHQpe2lmKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpcmV0dXJuIHJ0O2NvbnN0IGU9eHoodCksbj10aGlzLl9tb25pdG9yZWRFbGVtZW50cy5nZXQoZSk7aWYobilyZXR1cm4gbi5zdWJqZWN0O2NvbnN0IG89bmV3IEksaT0iY2RrLXRleHQtZmllbGQtYXV0b2ZpbGxlZCIsYT10PT57ImNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IiE9PXQuYW5pbWF0aW9uTmFtZXx8ZS5jbGFzc0xpc3QuY29udGFpbnMoaSk/ImNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCI9PT10LmFuaW1hdGlvbk5hbWUmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKGkpJiYoZS5jbGFzc0xpc3QucmVtb3ZlKGkpLHRoaXMuX25nWm9uZS5ydW4oKCgpPT5vLm5leHQoe3RhcmdldDp0LnRhcmdldCxpc0F1dG9maWxsZWQ6ITF9KSkpKTooZS5jbGFzc0xpc3QuYWRkKGkpLHRoaXMuX25nWm9uZS5ydW4oKCgpPT5vLm5leHQoe3RhcmdldDp0LnRhcmdldCxpc0F1dG9maWxsZWQ6ITB9KSkpKX07cmV0dXJuIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntlLmFkZEV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbnN0YXJ0IixhLERZKSxlLmNsYXNzTGlzdC5hZGQoImNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZCIpfSkpLHRoaXMuX21vbml0b3JlZEVsZW1lbnRzLnNldChlLHtzdWJqZWN0Om8sdW5saXN0ZW46KCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbnN0YXJ0IixhLERZKX19KSxvfXN0b3BNb25pdG9yaW5nKHQpe2NvbnN0IGU9eHoodCksbj10aGlzLl9tb25pdG9yZWRFbGVtZW50cy5nZXQoZSk7biYmKG4udW5saXN0ZW4oKSxuLnN1YmplY3QuY29tcGxldGUoKSxlLmNsYXNzTGlzdC5yZW1vdmUoImNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZCIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiY2RrLXRleHQtZmllbGQtYXV0b2ZpbGxlZCIpLHRoaXMuX21vbml0b3JlZEVsZW1lbnRzLmRlbGV0ZShlKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9tb25pdG9yZWRFbGVtZW50cy5mb3JFYWNoKCgodCxlKT0+dGhpcy5zdG9wTW9uaXRvcmluZyhlKSkpfX1FWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RVkpKHZyKHd6KSx2cihhXykpfSxFWS7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgRVkodnIod3opLHZyKGFfKSl9LHRva2VuOkVZLHByb3ZpZGVkSW46InJvb3QifSksRVkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp3en0se3R5cGU6YV99XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEVZLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp3en0se3R5cGU6YV99XX0pLG51bGwpO2NsYXNzIFJZe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2F1dG9maWxsTW9uaXRvcj1lLHRoaXMuY2RrQXV0b2ZpbGw9bmV3IExofW5nT25Jbml0KCl7dGhpcy5fYXV0b2ZpbGxNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZikuc3Vic2NyaWJlKCh0PT50aGlzLmNka0F1dG9maWxsLmVtaXQodCkpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2F1dG9maWxsTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKX19UlkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJZKShTbShoZyksU20oRVkpKX0sUlkuybVkaXI9bG8oe3R5cGU6Ulksc2VsZWN0b3JzOltbIiIsImNka0F1dG9maWxsIiwiIl1dLG91dHB1dHM6e2Nka0F1dG9maWxsOiJjZGtBdXRvZmlsbCJ9fSksUlkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6RVl9XSxSWS5wcm9wRGVjb3JhdG9ycz17Y2RrQXV0b2ZpbGw6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUlksW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0F1dG9maWxsXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6RVl9XX0pLHtjZGtBdXRvZmlsbDpbe3R5cGU6T3l9XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgQVl7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX3BsYXRmb3JtPWUsdGhpcy5fbmdab25lPW4sdGhpcy5fZGVzdHJveWVkPW5ldyBJLHRoaXMuX2VuYWJsZWQ9ITAsdGhpcy5fcHJldmlvdXNNaW5Sb3dzPS0xLHRoaXMuX2lzVmlld0luaXRlZD0hMSx0aGlzLl9oYW5kbGVGb2N1c0V2ZW50PXQ9Pnt0aGlzLl9oYXNGb2N1cz0iZm9jdXMiPT09dC50eXBlfSx0aGlzLl9kb2N1bWVudD1vLHRoaXMuX3RleHRhcmVhRWxlbWVudD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR9Z2V0IG1pblJvd3MoKXtyZXR1cm4gdGhpcy5fbWluUm93c31zZXQgbWluUm93cyh0KXt0aGlzLl9taW5Sb3dzPV96KHQpLHRoaXMuX3NldE1pbkhlaWdodCgpfWdldCBtYXhSb3dzKCl7cmV0dXJuIHRoaXMuX21heFJvd3N9c2V0IG1heFJvd3ModCl7dGhpcy5fbWF4Um93cz1feih0KSx0aGlzLl9zZXRNYXhIZWlnaHQoKX1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLl9lbmFibGVkfXNldCBlbmFibGVkKHQpe3Q9eXoodCksdGhpcy5fZW5hYmxlZCE9PXQmJigodGhpcy5fZW5hYmxlZD10KT90aGlzLnJlc2l6ZVRvRml0Q29udGVudCghMCk6dGhpcy5yZXNldCgpKX1nZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy5fdGV4dGFyZWFFbGVtZW50LnBsYWNlaG9sZGVyfXNldCBwbGFjZWhvbGRlcih0KXt0aGlzLl9jYWNoZWRQbGFjZWhvbGRlckhlaWdodD12b2lkIDAsdGhpcy5fdGV4dGFyZWFFbGVtZW50LnBsYWNlaG9sZGVyPXQsdGhpcy5fY2FjaGVUZXh0YXJlYVBsYWNlaG9sZGVySGVpZ2h0KCl9X3NldE1pbkhlaWdodCgpe2NvbnN0IHQ9dGhpcy5taW5Sb3dzJiZ0aGlzLl9jYWNoZWRMaW5lSGVpZ2h0P3RoaXMubWluUm93cyp0aGlzLl9jYWNoZWRMaW5lSGVpZ2h0KyJweCI6bnVsbDt0JiYodGhpcy5fdGV4dGFyZWFFbGVtZW50LnN0eWxlLm1pbkhlaWdodD10KX1fc2V0TWF4SGVpZ2h0KCl7Y29uc3QgdD10aGlzLm1heFJvd3MmJnRoaXMuX2NhY2hlZExpbmVIZWlnaHQ/dGhpcy5tYXhSb3dzKnRoaXMuX2NhY2hlZExpbmVIZWlnaHQrInB4IjpudWxsO3QmJih0aGlzLl90ZXh0YXJlYUVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0PXQpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX3BsYXRmb3JtLmlzQnJvd3NlciYmKHRoaXMuX2luaXRpYWxIZWlnaHQ9dGhpcy5fdGV4dGFyZWFFbGVtZW50LnN0eWxlLmhlaWdodCx0aGlzLnJlc2l6ZVRvRml0Q29udGVudCgpLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntvZSh0aGlzLl9nZXRXaW5kb3coKSwicmVzaXplIikucGlwZShkZSgxNiksSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+dGhpcy5yZXNpemVUb0ZpdENvbnRlbnQoITApKSksdGhpcy5fdGV4dGFyZWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9oYW5kbGVGb2N1c0V2ZW50KSx0aGlzLl90ZXh0YXJlYUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5faGFuZGxlRm9jdXNFdmVudCl9KSksdGhpcy5faXNWaWV3SW5pdGVkPSEwLHRoaXMucmVzaXplVG9GaXRDb250ZW50KCEwKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl90ZXh0YXJlYUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2hhbmRsZUZvY3VzRXZlbnQpLHRoaXMuX3RleHRhcmVhRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9oYW5kbGVGb2N1c0V2ZW50KSx0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpfV9jYWNoZVRleHRhcmVhTGluZUhlaWdodCgpe2lmKHRoaXMuX2NhY2hlZExpbmVIZWlnaHQpcmV0dXJuO2xldCB0PXRoaXMuX3RleHRhcmVhRWxlbWVudC5jbG9uZU5vZGUoITEpO3Qucm93cz0xLHQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsdC5zdHlsZS5ib3JkZXI9Im5vbmUiLHQuc3R5bGUucGFkZGluZz0iMCIsdC5zdHlsZS5oZWlnaHQ9IiIsdC5zdHlsZS5taW5IZWlnaHQ9IiIsdC5zdHlsZS5tYXhIZWlnaHQ9IiIsdC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIix0aGlzLl90ZXh0YXJlYUVsZW1lbnQucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0KSx0aGlzLl9jYWNoZWRMaW5lSGVpZ2h0PXQuY2xpZW50SGVpZ2h0LHRoaXMuX3RleHRhcmVhRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHRoaXMuX3NldE1pbkhlaWdodCgpLHRoaXMuX3NldE1heEhlaWdodCgpfV9tZWFzdXJlU2Nyb2xsSGVpZ2h0KCl7Y29uc3QgdD10aGlzLl90ZXh0YXJlYUVsZW1lbnQsZT10LnN0eWxlLm1hcmdpbkJvdHRvbXx8IiIsbj10aGlzLl9wbGF0Zm9ybS5GSVJFRk9YLG89biYmdGhpcy5faGFzRm9jdXMsaT1uPyJjZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3giOiJjZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIjtvJiYodC5zdHlsZS5tYXJnaW5Cb3R0b209YCR7dC5jbGllbnRIZWlnaHR9cHhgKSx0LmNsYXNzTGlzdC5hZGQoaSk7Y29uc3QgYT10LnNjcm9sbEhlaWdodC00O3JldHVybiB0LmNsYXNzTGlzdC5yZW1vdmUoaSksbyYmKHQuc3R5bGUubWFyZ2luQm90dG9tPWUpLGF9X2NhY2hlVGV4dGFyZWFQbGFjZWhvbGRlckhlaWdodCgpe2lmKCF0aGlzLl9pc1ZpZXdJbml0ZWR8fG51bGwhPXRoaXMuX2NhY2hlZFBsYWNlaG9sZGVySGVpZ2h0KXJldHVybjtpZighdGhpcy5wbGFjZWhvbGRlcilyZXR1cm4gdm9pZCh0aGlzLl9jYWNoZWRQbGFjZWhvbGRlckhlaWdodD0wKTtjb25zdCB0PXRoaXMuX3RleHRhcmVhRWxlbWVudC52YWx1ZTt0aGlzLl90ZXh0YXJlYUVsZW1lbnQudmFsdWU9dGhpcy5fdGV4dGFyZWFFbGVtZW50LnBsYWNlaG9sZGVyLHRoaXMuX2NhY2hlZFBsYWNlaG9sZGVySGVpZ2h0PXRoaXMuX21lYXN1cmVTY3JvbGxIZWlnaHQoKSx0aGlzLl90ZXh0YXJlYUVsZW1lbnQudmFsdWU9dH1uZ0RvQ2hlY2soKXt0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJnRoaXMucmVzaXplVG9GaXRDb250ZW50KCl9cmVzaXplVG9GaXRDb250ZW50KHQ9ITEpe2lmKCF0aGlzLl9lbmFibGVkKXJldHVybjtpZih0aGlzLl9jYWNoZVRleHRhcmVhTGluZUhlaWdodCgpLHRoaXMuX2NhY2hlVGV4dGFyZWFQbGFjZWhvbGRlckhlaWdodCgpLCF0aGlzLl9jYWNoZWRMaW5lSGVpZ2h0KXJldHVybjtjb25zdCBlPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxuPWUudmFsdWU7aWYoIXQmJnRoaXMuX21pblJvd3M9PT10aGlzLl9wcmV2aW91c01pblJvd3MmJm49PT10aGlzLl9wcmV2aW91c1ZhbHVlKXJldHVybjtjb25zdCBvPXRoaXMuX21lYXN1cmVTY3JvbGxIZWlnaHQoKSxpPU1hdGgubWF4KG8sdGhpcy5fY2FjaGVkUGxhY2Vob2xkZXJIZWlnaHR8fDApO2Uuc3R5bGUuaGVpZ2h0PWAke2l9cHhgLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnsidW5kZWZpbmVkIiE9dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLl9zY3JvbGxUb0NhcmV0UG9zaXRpb24oZSkpKTpzZXRUaW1lb3V0KCgoKT0+dGhpcy5fc2Nyb2xsVG9DYXJldFBvc2l0aW9uKGUpKSl9KSksdGhpcy5fcHJldmlvdXNWYWx1ZT1uLHRoaXMuX3ByZXZpb3VzTWluUm93cz10aGlzLl9taW5Sb3dzfXJlc2V0KCl7dm9pZCAwIT09dGhpcy5faW5pdGlhbEhlaWdodCYmKHRoaXMuX3RleHRhcmVhRWxlbWVudC5zdHlsZS5oZWlnaHQ9dGhpcy5faW5pdGlhbEhlaWdodCl9X25vb3BJbnB1dEhhbmRsZXIoKXt9X2dldERvY3VtZW50KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50fHxkb2N1bWVudH1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2dldERvY3VtZW50KCkuZGVmYXVsdFZpZXd8fHdpbmRvd31fc2Nyb2xsVG9DYXJldFBvc2l0aW9uKHQpe2NvbnN0e3NlbGVjdGlvblN0YXJ0OmUsc2VsZWN0aW9uRW5kOm59PXQ7IXRoaXMuX2Rlc3Ryb3llZC5pc1N0b3BwZWQmJnRoaXMuX2hhc0ZvY3VzJiZ0LnNldFNlbGVjdGlvblJhbmdlKGUsbil9fUFZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBWSkoU20oaGcpLFNtKHd6KSxTbShhXyksU20oWl8sOCkpfSxBWS7JtWRpcj1sbyh7dHlwZTpBWSxzZWxlY3RvcnM6W1sidGV4dGFyZWEiLCJjZGtUZXh0YXJlYUF1dG9zaXplIiwiIl1dLGhvc3RBdHRyczpbInJvd3MiLCIxIiwxLCJjZGstdGV4dGFyZWEtYXV0b3NpemUiXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImlucHV0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9ub29wSW5wdXRIYW5kbGVyKCl9KSl9LGlucHV0czp7bWluUm93czpbImNka0F1dG9zaXplTWluUm93cyIsIm1pblJvd3MiXSxtYXhSb3dzOlsiY2RrQXV0b3NpemVNYXhSb3dzIiwibWF4Um93cyJdLGVuYWJsZWQ6WyJjZGtUZXh0YXJlYUF1dG9zaXplIiwiZW5hYmxlZCJdLHBsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciJ9LGV4cG9ydEFzOlsiY2RrVGV4dGFyZWFBdXRvc2l6ZSJdfSksQVkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6d3p9LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfV0sQVkucHJvcERlY29yYXRvcnM9e21pblJvd3M6W3t0eXBlOnh5LGFyZ3M6WyJjZGtBdXRvc2l6ZU1pblJvd3MiXX1dLG1heFJvd3M6W3t0eXBlOnh5LGFyZ3M6WyJjZGtBdXRvc2l6ZU1heFJvd3MiXX1dLGVuYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJjZGtUZXh0YXJlYUF1dG9zaXplIl19XSxwbGFjZWhvbGRlcjpbe3R5cGU6eHl9XSxfbm9vcElucHV0SGFuZGxlcjpbe3R5cGU6d3ksYXJnczpbImlucHV0Il19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChBWSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJ0ZXh0YXJlYVtjZGtUZXh0YXJlYUF1dG9zaXplXSIsZXhwb3J0QXM6ImNka1RleHRhcmVhQXV0b3NpemUiLGhvc3Q6e2NsYXNzOiJjZGstdGV4dGFyZWEtYXV0b3NpemUiLHJvd3M6IjEifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTp3en0se3R5cGU6YV99LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLHttaW5Sb3dzOlt7dHlwZTp4eSxhcmdzOlsiY2RrQXV0b3NpemVNaW5Sb3dzIl19XSxtYXhSb3dzOlt7dHlwZTp4eSxhcmdzOlsiY2RrQXV0b3NpemVNYXhSb3dzIl19XSxlbmFibGVkOlt7dHlwZTp4eSxhcmdzOlsiY2RrVGV4dGFyZWFBdXRvc2l6ZSJdfV0scGxhY2Vob2xkZXI6W3t0eXBlOnh5fV0sX25vb3BJbnB1dEhhbmRsZXI6W3t0eXBlOnd5LGFyZ3M6WyJpbnB1dCJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFRZe31UWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VFkpfSxUWS7JtW1vZD1hbyh7dHlwZTpUWX0pLFRZLsm1aW5qPXZuKHtpbXBvcnRzOltba3pdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVFksW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1JZLEFZXSxpbXBvcnRzOltrel0sZXhwb3J0czpbUlksQVldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVFkse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltSWSxBWV19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5ba3pdfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1JZLEFZXX19KTtjbGFzcyBOWSBleHRlbmRzIEFZe2dldCBtYXRBdXRvc2l6ZU1pblJvd3MoKXtyZXR1cm4gdGhpcy5taW5Sb3dzfXNldCBtYXRBdXRvc2l6ZU1pblJvd3ModCl7dGhpcy5taW5Sb3dzPXR9Z2V0IG1hdEF1dG9zaXplTWF4Um93cygpe3JldHVybiB0aGlzLm1heFJvd3N9c2V0IG1hdEF1dG9zaXplTWF4Um93cyh0KXt0aGlzLm1heFJvd3M9dH1nZXQgbWF0QXV0b3NpemUoKXtyZXR1cm4gdGhpcy5lbmFibGVkfXNldCBtYXRBdXRvc2l6ZSh0KXt0aGlzLmVuYWJsZWQ9dH1nZXQgbWF0VGV4dGFyZWFBdXRvc2l6ZSgpe3JldHVybiB0aGlzLmVuYWJsZWR9c2V0IG1hdFRleHRhcmVhQXV0b3NpemUodCl7dGhpcy5lbmFibGVkPXR9fU5ZLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShOWSkpKShufHxOWSl9fSkoKSxOWS7JtWRpcj1sbyh7dHlwZTpOWSxzZWxlY3RvcnM6W1sidGV4dGFyZWEiLCJtYXQtYXV0b3NpemUiLCIiXSxbInRleHRhcmVhIiwibWF0VGV4dGFyZWFBdXRvc2l6ZSIsIiJdXSxob3N0QXR0cnM6WyJyb3dzIiwiMSIsMSwiY2RrLXRleHRhcmVhLWF1dG9zaXplIiwibWF0LWF1dG9zaXplIl0saW5wdXRzOntjZGtBdXRvc2l6ZU1pblJvd3M6ImNka0F1dG9zaXplTWluUm93cyIsY2RrQXV0b3NpemVNYXhSb3dzOiJjZGtBdXRvc2l6ZU1heFJvd3MiLG1hdEF1dG9zaXplTWluUm93czoibWF0QXV0b3NpemVNaW5Sb3dzIixtYXRBdXRvc2l6ZU1heFJvd3M6Im1hdEF1dG9zaXplTWF4Um93cyIsbWF0QXV0b3NpemU6WyJtYXQtYXV0b3NpemUiLCJtYXRBdXRvc2l6ZSJdLG1hdFRleHRhcmVhQXV0b3NpemU6Im1hdFRleHRhcmVhQXV0b3NpemUifSxleHBvcnRBczpbIm1hdFRleHRhcmVhQXV0b3NpemUiXSxmZWF0dXJlczpbeHBdfSksTlkucHJvcERlY29yYXRvcnM9e21hdEF1dG9zaXplTWluUm93czpbe3R5cGU6eHl9XSxtYXRBdXRvc2l6ZU1heFJvd3M6W3t0eXBlOnh5fV0sbWF0QXV0b3NpemU6W3t0eXBlOnh5LGFyZ3M6WyJtYXQtYXV0b3NpemUiXX1dLG1hdFRleHRhcmVhQXV0b3NpemU6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTlksW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoidGV4dGFyZWFbbWF0LWF1dG9zaXplXSwgdGV4dGFyZWFbbWF0VGV4dGFyZWFBdXRvc2l6ZV0iLGV4cG9ydEFzOiJtYXRUZXh0YXJlYUF1dG9zaXplIixpbnB1dHM6WyJjZGtBdXRvc2l6ZU1pblJvd3MiLCJjZGtBdXRvc2l6ZU1heFJvd3MiXSxob3N0OntjbGFzczoiY2RrLXRleHRhcmVhLWF1dG9zaXplIG1hdC1hdXRvc2l6ZSIscm93czoiMSJ9fV19XSxudWxsLHttYXRBdXRvc2l6ZU1pblJvd3M6W3t0eXBlOnh5fV0sbWF0QXV0b3NpemVNYXhSb3dzOlt7dHlwZTp4eX1dLG1hdEF1dG9zaXplOlt7dHlwZTp4eSxhcmdzOlsibWF0LWF1dG9zaXplIl19XSxtYXRUZXh0YXJlYUF1dG9zaXplOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB6WT1uZXcgR2EoIk1BVF9JTlBVVF9WQUxVRV9BQ0NFU1NPUiIpLElZPVsiYnV0dG9uIiwiY2hlY2tib3giLCJmaWxlIiwiaGlkZGVuIiwiaW1hZ2UiLCJyYWRpbyIsInJhbmdlIiwicmVzZXQiLCJzdWJtaXQiXTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IEhZPTA7Y29uc3QgRlk9dEgoY2xhc3N7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyPXQsdGhpcy5fcGFyZW50Rm9ybT1lLHRoaXMuX3BhcmVudEZvcm1Hcm91cD1uLHRoaXMubmdDb250cm9sPW99fSk7Y2xhc3MgTFkgZXh0ZW5kcyBGWXtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjKXtzdXBlcihhLG8saSxuKSx0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fcGxhdGZvcm09ZSx0aGlzLl9hdXRvZmlsbE1vbml0b3I9cyx0aGlzLl9mb3JtRmllbGQ9Yyx0aGlzLl91aWQ9Im1hdC1pbnB1dC0iK0hZKyssdGhpcy5mb2N1c2VkPSExLHRoaXMuc3RhdGVDaGFuZ2VzPW5ldyBJLHRoaXMuY29udHJvbFR5cGU9Im1hdC1pbnB1dCIsdGhpcy5hdXRvZmlsbGVkPSExLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX3JlcXVpcmVkPSExLHRoaXMuX3R5cGU9InRleHQiLHRoaXMuX3JlYWRvbmx5PSExLHRoaXMuX25ldmVyRW1wdHlJbnB1dFR5cGVzPVsiZGF0ZSIsImRhdGV0aW1lIiwiZGF0ZXRpbWUtbG9jYWwiLCJtb250aCIsInRpbWUiLCJ3ZWVrIl0uZmlsdGVyKCh0PT5EeigpLmhhcyh0KSkpO2NvbnN0IGQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LHA9ZC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3RoaXMuX2lucHV0VmFsdWVBY2Nlc3Nvcj1yfHxkLHRoaXMuX3ByZXZpb3VzTmF0aXZlVmFsdWU9dGhpcy52YWx1ZSx0aGlzLmlkPXRoaXMuaWQsZS5JT1MmJmwucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57dC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwodD0+e2NvbnN0IGU9dC50YXJnZXQ7ZS52YWx1ZXx8MCE9PWUuc2VsZWN0aW9uU3RhcnR8fDAhPT1lLnNlbGVjdGlvbkVuZHx8KGUuc2V0U2VsZWN0aW9uUmFuZ2UoMSwxKSxlLnNldFNlbGVjdGlvblJhbmdlKDAsMCkpfSkpfSkpLHRoaXMuX2lzU2VydmVyPSF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIsdGhpcy5faXNOYXRpdmVTZWxlY3Q9InNlbGVjdCI9PT1wLHRoaXMuX2lzVGV4dGFyZWE9InRleHRhcmVhIj09PXAsdGhpcy5faXNJbkZvcm1GaWVsZD0hIWMsdGhpcy5faXNOYXRpdmVTZWxlY3QmJih0aGlzLmNvbnRyb2xUeXBlPWQubXVsdGlwbGU/Im1hdC1uYXRpdmUtc2VsZWN0LW11bHRpcGxlIjoibWF0LW5hdGl2ZS1zZWxlY3QiKX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5uZ0NvbnRyb2wmJm51bGwhPT10aGlzLm5nQ29udHJvbC5kaXNhYmxlZD90aGlzLm5nQ29udHJvbC5kaXNhYmxlZDp0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9eXoodCksdGhpcy5mb2N1c2VkJiYodGhpcy5mb2N1c2VkPSExLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lkfXNldCBpZCh0KXt0aGlzLl9pZD10fHx0aGlzLl91aWR9Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuX3JlcXVpcmVkfXNldCByZXF1aXJlZCh0KXt0aGlzLl9yZXF1aXJlZD15eih0KX1nZXQgdHlwZSgpe3JldHVybiB0aGlzLl90eXBlfXNldCB0eXBlKHQpe3RoaXMuX3R5cGU9dHx8InRleHQiLHRoaXMuX3ZhbGlkYXRlVHlwZSgpLCF0aGlzLl9pc1RleHRhcmVhJiZEeigpLmhhcyh0aGlzLl90eXBlKSYmKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50eXBlPXRoaXMuX3R5cGUpfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLl9pbnB1dFZhbHVlQWNjZXNzb3IudmFsdWV9c2V0IHZhbHVlKHQpe3QhPT10aGlzLnZhbHVlJiYodGhpcy5faW5wdXRWYWx1ZUFjY2Vzc29yLnZhbHVlPXQsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX1nZXQgcmVhZG9ubHkoKXtyZXR1cm4gdGhpcy5fcmVhZG9ubHl9c2V0IHJlYWRvbmx5KHQpe3RoaXMuX3JlYWRvbmx5PXl6KHQpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX3BsYXRmb3JtLmlzQnJvd3NlciYmdGhpcy5fYXV0b2ZpbGxNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLmF1dG9maWxsZWQ9dC5pc0F1dG9maWxsZWQsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfSkpfW5nT25DaGFuZ2VzKCl7dGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfW5nT25EZXN0cm95KCl7dGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKSx0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJnRoaXMuX2F1dG9maWxsTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpfW5nRG9DaGVjaygpe3RoaXMubmdDb250cm9sJiZ0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKSx0aGlzLl9kaXJ0eUNoZWNrTmF0aXZlVmFsdWUoKSx0aGlzLl9kaXJ0eUNoZWNrUGxhY2Vob2xkZXIoKX1mb2N1cyh0KXt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXModCl9X2ZvY3VzQ2hhbmdlZCh0KXt0IT09dGhpcy5mb2N1c2VkJiYodGhpcy5mb2N1c2VkPXQsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX1fb25JbnB1dCgpe31fZGlydHlDaGVja1BsYWNlaG9sZGVyKCl7dmFyIHQsZTtjb25zdCBuPShudWxsPT09KGU9bnVsbD09PSh0PXRoaXMuX2Zvcm1GaWVsZCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuX2hpZGVDb250cm9sUGxhY2Vob2xkZXIpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNhbGwodCkpP251bGw6dGhpcy5wbGFjZWhvbGRlcjtpZihuIT09dGhpcy5fcHJldmlvdXNQbGFjZWhvbGRlcil7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7dGhpcy5fcHJldmlvdXNQbGFjZWhvbGRlcj1uLG4/dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIixuKTp0LnJlbW92ZUF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiKX19X2RpcnR5Q2hlY2tOYXRpdmVWYWx1ZSgpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO3RoaXMuX3ByZXZpb3VzTmF0aXZlVmFsdWUhPT10JiYodGhpcy5fcHJldmlvdXNOYXRpdmVWYWx1ZT10LHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9X3ZhbGlkYXRlVHlwZSgpe2lmKElZLmluZGV4T2YodGhpcy5fdHlwZSk+LTEmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSkKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCnRocm93KGZ1bmN0aW9uIHQoZSl7cmV0dXJuIEVycm9yKGBJbnB1dCB0eXBlICIke2V9IiBpc24ndCBzdXBwb3J0ZWQgYnkgbWF0SW5wdXQuYCl9KSh0aGlzLl90eXBlKX1faXNOZXZlckVtcHR5KCl7cmV0dXJuIHRoaXMuX25ldmVyRW1wdHlJbnB1dFR5cGVzLmluZGV4T2YodGhpcy5fdHlwZSk+LTF9X2lzQmFkSW5wdXQoKXtsZXQgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsaWRpdHk7cmV0dXJuIHQmJnQuYmFkSW5wdXR9Z2V0IGVtcHR5KCl7cmV0dXJuISh0aGlzLl9pc05ldmVyRW1wdHkoKXx8dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlfHx0aGlzLl9pc0JhZElucHV0KCl8fHRoaXMuYXV0b2ZpbGxlZCl9Z2V0IHNob3VsZExhYmVsRmxvYXQoKXtpZih0aGlzLl9pc05hdGl2ZVNlbGVjdCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsZT10Lm9wdGlvbnNbMF07cmV0dXJuIHRoaXMuZm9jdXNlZHx8dC5tdWx0aXBsZXx8IXRoaXMuZW1wdHl8fCEhKHQuc2VsZWN0ZWRJbmRleD4tMSYmZSYmZS5sYWJlbCl9cmV0dXJuIHRoaXMuZm9jdXNlZHx8IXRoaXMuZW1wdHl9c2V0RGVzY3JpYmVkQnlJZHModCl7dC5sZW5ndGg/dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIsdC5qb2luKCIgIikpOnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtZGVzY3JpYmVkYnkiKX1vbkNvbnRhaW5lckNsaWNrKCl7dGhpcy5mb2N1c2VkfHx0aGlzLmZvY3VzKCl9fUxZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMWSkoU20oaGcpLFNtKHd6KSxTbShNaiwxMCksU20oaVUsOCksU20oUFUsOCksU20oYkgpLFNtKHpZLDEwKSxTbShFWSksU20oYV8pLFNtKFJWLDgpKX0sTFkuybVkaXI9bG8oe3R5cGU6TFksc2VsZWN0b3JzOltbImlucHV0IiwibWF0SW5wdXQiLCIiXSxbInRleHRhcmVhIiwibWF0SW5wdXQiLCIiXSxbInNlbGVjdCIsIm1hdE5hdGl2ZUNvbnRyb2wiLCIiXSxbImlucHV0IiwibWF0TmF0aXZlQ29udHJvbCIsIiJdLFsidGV4dGFyZWEiLCJtYXROYXRpdmVDb250cm9sIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LWlucHV0LWVsZW1lbnQiLCJtYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sIl0saG9zdFZhcnM6OSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImZvY3VzIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9mb2N1c0NoYW5nZWQoITApfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9mb2N1c0NoYW5nZWQoITEpfSkpKCJpbnB1dCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25JbnB1dCgpfSkpLDImZSYmKFR1KCJkaXNhYmxlZCIsbi5kaXNhYmxlZCkoInJlcXVpcmVkIixuLnJlcXVpcmVkKSxqcCgiaWQiLG4uaWQpKCJkYXRhLXBsYWNlaG9sZGVyIixuLnBsYWNlaG9sZGVyKSgicmVhZG9ubHkiLG4ucmVhZG9ubHkmJiFuLl9pc05hdGl2ZVNlbGVjdHx8bnVsbCkoImFyaWEtaW52YWxpZCIsbi5lbXB0eSYmbi5yZXF1aXJlZD9udWxsOm4uZXJyb3JTdGF0ZSkoImFyaWEtcmVxdWlyZWQiLG4ucmVxdWlyZWQpLHB1KCJtYXQtaW5wdXQtc2VydmVyIixuLl9pc1NlcnZlcikpfSxpbnB1dHM6e2lkOiJpZCIsZGlzYWJsZWQ6ImRpc2FibGVkIixyZXF1aXJlZDoicmVxdWlyZWQiLHR5cGU6InR5cGUiLHZhbHVlOiJ2YWx1ZSIscmVhZG9ubHk6InJlYWRvbmx5IixwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIiLGVycm9yU3RhdGVNYXRjaGVyOiJlcnJvclN0YXRlTWF0Y2hlciIsdXNlckFyaWFEZXNjcmliZWRCeTpbImFyaWEtZGVzY3JpYmVkYnkiLCJ1c2VyQXJpYURlc2NyaWJlZEJ5Il19LGV4cG9ydEFzOlsibWF0SW5wdXQiXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOmJWLHVzZUV4aXN0aW5nOkxZfV0pLHhwLEJvXX0pLExZLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOnd6fSx7dHlwZTpNaixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9XX0se3R5cGU6aVUsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6UFUsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6Ykh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6RHJ9LHt0eXBlOmtyLGFyZ3M6W3pZXX1dfSx7dHlwZTpFWX0se3R5cGU6YV99LHt0eXBlOkFWLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltSVl19XX1dLExZLnByb3BEZWNvcmF0b3JzPXtkaXNhYmxlZDpbe3R5cGU6eHl9XSxpZDpbe3R5cGU6eHl9XSxwbGFjZWhvbGRlcjpbe3R5cGU6eHl9XSxyZXF1aXJlZDpbe3R5cGU6eHl9XSx0eXBlOlt7dHlwZTp4eX1dLGVycm9yU3RhdGVNYXRjaGVyOlt7dHlwZTp4eX1dLHVzZXJBcmlhRGVzY3JpYmVkQnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSx2YWx1ZTpbe3R5cGU6eHl9XSxyZWFkb25seTpbe3R5cGU6eHl9XSxfZm9jdXNDaGFuZ2VkOlt7dHlwZTp3eSxhcmdzOlsiZm9jdXMiLFsidHJ1ZSJdXX0se3R5cGU6d3ksYXJnczpbImJsdXIiLFsiZmFsc2UiXV19XSxfb25JbnB1dDpbe3R5cGU6d3ksYXJnczpbImlucHV0Il19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMWSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJpbnB1dFttYXRJbnB1dF0sIHRleHRhcmVhW21hdElucHV0XSwgc2VsZWN0W21hdE5hdGl2ZUNvbnRyb2xdLFxuICAgICAgaW5wdXRbbWF0TmF0aXZlQ29udHJvbF0sIHRleHRhcmVhW21hdE5hdGl2ZUNvbnRyb2xdIixleHBvcnRBczoibWF0SW5wdXQiLGhvc3Q6e2NsYXNzOiJtYXQtaW5wdXQtZWxlbWVudCBtYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sIiwiW2NsYXNzLm1hdC1pbnB1dC1zZXJ2ZXJdIjoiX2lzU2VydmVyIiwiW2F0dHIuaWRdIjoiaWQiLCJbYXR0ci5kYXRhLXBsYWNlaG9sZGVyXSI6InBsYWNlaG9sZGVyIiwiW2Rpc2FibGVkXSI6ImRpc2FibGVkIiwiW3JlcXVpcmVkXSI6InJlcXVpcmVkIiwiW2F0dHIucmVhZG9ubHldIjoicmVhZG9ubHkgJiYgIV9pc05hdGl2ZVNlbGVjdCB8fCBudWxsIiwiW2F0dHIuYXJpYS1pbnZhbGlkXSI6IihlbXB0eSAmJiByZXF1aXJlZCkgPyBudWxsIDogZXJyb3JTdGF0ZSIsIlthdHRyLmFyaWEtcmVxdWlyZWRdIjoicmVxdWlyZWQifSxwcm92aWRlcnM6W3twcm92aWRlOmJWLHVzZUV4aXN0aW5nOkxZfV19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6d3p9LHt0eXBlOk1qLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn1dfSx7dHlwZTppVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpQVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpiSH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn0se3R5cGU6a3IsYXJnczpbelldfV19LHt0eXBlOkVZfSx7dHlwZTphX30se3R5cGU6QVYsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1JWXX1dfV19KSx7aWQ6W3t0eXBlOnh5fV0sZGlzYWJsZWQ6W3t0eXBlOnh5fV0scmVxdWlyZWQ6W3t0eXBlOnh5fV0sdHlwZTpbe3R5cGU6eHl9XSx2YWx1ZTpbe3R5cGU6eHl9XSxyZWFkb25seTpbe3R5cGU6eHl9XSxfZm9jdXNDaGFuZ2VkOlt7dHlwZTp3eSxhcmdzOlsiZm9jdXMiLFsidHJ1ZSJdXX0se3R5cGU6d3ksYXJnczpbImJsdXIiLFsiZmFsc2UiXV19XSxfb25JbnB1dDpbe3R5cGU6d3ksYXJnczpbImlucHV0Il19XSxwbGFjZWhvbGRlcjpbe3R5cGU6eHl9XSxlcnJvclN0YXRlTWF0Y2hlcjpbe3R5cGU6eHl9XSx1c2VyQXJpYURlc2NyaWJlZEJ5Olt7dHlwZTp4eSxhcmdzOlsiYXJpYS1kZXNjcmliZWRieSJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEJZe31mdW5jdGlvbiBWWSh0LGUpe2lmKDEmdCYmKFJtKDAsIm1hdC1lcnJvciIpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLER1KCIgUmVsb2FkIHBlcmlvZCBoYXMgdG8gYmUgbWluaW11bSBvZiAiLHQuTUlOX1JFTE9BRF9QRVJJT0RfSU5fUywiIHNlY29uZHMuICIpfX1mdW5jdGlvbiBqWSh0LGUpezEmdCYmKFJtKDAsIm1hdC1lcnJvciIpLGt1KDEsIiBQYWdlIHNpemUgaGFzIHRvIGJlIGEgcG9zaXRpdmUgaW50ZWdlci4gIiksQW0oKSl9QlkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJZKX0sQlkuybVtb2Q9YW8oe3R5cGU6Qll9KSxCWS7JtWluaj12bih7cHJvdmlkZXJzOltiSF0saW1wb3J0czpbW1RZLFRWLFhJXSxUWSxUVl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJZLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltMWSxOWV0saW1wb3J0czpbVFksVFYsWEldLGV4cG9ydHM6W1RZLFRWLExZLE5ZXSxwcm92aWRlcnM6W2JIXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEJZLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bTFksTlldfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1RZLFRWLFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltUWSxUVixMWSxOWV19fSk7Y2xhc3MgVVl7Y29uc3RydWN0b3IoKXt0aGlzLnJlbG9hZFRvZ2dsZWQ9bmV3IExoLHRoaXMucmVsb2FkUGVyaW9kSW5Nc0NoYW5nZWQ9bmV3IExoLHRoaXMucGFnZVNpemVDaGFuZ2VkPW5ldyBMaCx0aGlzLk1JTl9SRUxPQURfUEVSSU9EX0lOX1M9MzAsdGhpcy5yZWxvYWRQZXJpb2RDb250cm9sPW5ldyAkaih0aGlzLk1JTl9SRUxPQURfUEVSSU9EX0lOX1MsW3FWLnJlcXVpcmVkLHFWLm1pbih0aGlzLk1JTl9SRUxPQURfUEVSSU9EX0lOX1MpXSksdGhpcy5wYWdpbmF0aW9uQ29udHJvbD1uZXcgJGooMSxbcVYucmVxdWlyZWQscVYubWluKDEpLHQ9Pntjb25zdCBlPU51bWJlcih0LnZhbHVlKTtyZXR1cm4gTWF0aC5yb3VuZChlKT09PXQudmFsdWU/bnVsbDp7aW50ZWdlcjp7dmFsdWU6dC52YWx1ZX19fV0pLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgSX1uZ09uSW5pdCgpe3RoaXMucmVsb2FkUGVyaW9kQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLGdlKDUwMCksY2UoKCgpPT50aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wudmFsaWQpKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMucmVsb2FkUGVyaW9kQ29udHJvbC52YWxpZCYmdGhpcy5yZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZC5lbWl0KDFlMyp0aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wudmFsdWUpfSkpLHRoaXMucGFnaW5hdGlvbkNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSxnZSg1MDApLGNlKCgoKT0+dGhpcy5wYWdpbmF0aW9uQ29udHJvbC52YWxpZCkpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5wYWdlU2l6ZUNoYW5nZWQuZW1pdCh0aGlzLnBhZ2luYXRpb25Db250cm9sLnZhbHVlKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9bmdPbkNoYW5nZXModCl7aWYodC5yZWxvYWRQZXJpb2RJbk1zKXtjb25zdCBlPXQucmVsb2FkUGVyaW9kSW5NcztlLnByZXZpb3VzVmFsdWUhPT1lLmN1cnJlbnRWYWx1ZSYmdGhpcy5yZWxvYWRQZXJpb2RDb250cm9sLnNldFZhbHVlKGUuY3VycmVudFZhbHVlLzFlMyl9aWYodC5yZWxvYWRFbmFibGVkJiYodC5yZWxvYWRFbmFibGVkLmN1cnJlbnRWYWx1ZT90aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wuZW5hYmxlKCk6dGhpcy5yZWxvYWRQZXJpb2RDb250cm9sLmRpc2FibGUoKSksdC5wYWdlU2l6ZSl7Y29uc3QgZT10LnBhZ2VTaXplO2UucHJldmlvdXNWYWx1ZSE9PWUuY3VycmVudFZhbHVlJiZ0aGlzLnBhZ2luYXRpb25Db250cm9sLnNldFZhbHVlKGUuY3VycmVudFZhbHVlKX19b25SZWxvYWRUb2dnbGUoKXt0aGlzLnJlbG9hZFRvZ2dsZWQuZW1pdCgpfX1VWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VVkpfSxVWS7JtWNtcD10byh7dHlwZTpVWSxzZWxlY3RvcnM6W1sic2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudCJdXSxpbnB1dHM6e3JlbG9hZEVuYWJsZWQ6InJlbG9hZEVuYWJsZWQiLHJlbG9hZFBlcmlvZEluTXM6InJlbG9hZFBlcmlvZEluTXMiLHBhZ2VTaXplOiJwYWdlU2l6ZSJ9LG91dHB1dHM6e3JlbG9hZFRvZ2dsZWQ6InJlbG9hZFRvZ2dsZWQiLHJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkOiJyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCIscGFnZVNpemVDaGFuZ2VkOiJwYWdlU2l6ZUNoYW5nZWQifSxmZWF0dXJlczpbQm9dLGRlY2xzOjE0LHZhcnM6NSxjb25zdHM6W1sxLCJyZWxvYWQtdG9nZ2xlIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbIm1hdElucHV0IiwiIiwidHlwZSIsIm51bWJlciIsInBsYWNlaG9sZGVyIiwiUmVsb2FkIFBlcmlvZCIsMSwicmVsb2FkLXBlcmlvZCIsMywiZm9ybUNvbnRyb2wiXSxbNCwibmdJZiJdLFsibWF0SW5wdXQiLCIiLCJ0eXBlIiwibnVtYmVyIiwicGxhY2Vob2xkZXIiLCJQYWdpbmF0aW9uIExpbWl0IiwxLCJwYWdlLXNpemUiLDMsImZvcm1Db250cm9sIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJoMyIpLGt1KDEsIlNldHRpbmdzIiksQW0oKSxSbSgyLCJkaXYiKSxSbSgzLCJkaXYiLDApLFJtKDQsIm1hdC1jaGVja2JveCIsMSksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlbG9hZFRvZ2dsZSgpfSkpLGt1KDUsIlJlbG9hZCBkYXRhIiksQW0oKSxBbSgpLFJtKDYsImRpdiIpLFJtKDcsIm1hdC1mb3JtLWZpZWxkIiksVG0oOCwiaW5wdXQiLDIpLEFtKCksUXAoOSxWWSwyLDEsIm1hdC1lcnJvciIsMyksQW0oKSxBbSgpLFJtKDEwLCJkaXYiKSxSbSgxMSwibWF0LWZvcm0tZmllbGQiKSxUbSgxMiwiaW5wdXQiLDQpLEFtKCksUXAoMTMsalksMiwwLCJtYXQtZXJyb3IiLDMpLEFtKCkpLDImZSYmKHJjKDQpLERtKCJjaGVja2VkIixuLnJlbG9hZEVuYWJsZWQpLHJjKDQpLERtKCJmb3JtQ29udHJvbCIsbi5yZWxvYWRQZXJpb2RDb250cm9sKSxyYygxKSxEbSgibmdJZiIsbi5yZWxvYWRQZXJpb2RDb250cm9sLmhhc0Vycm9yKCJtaW4iKXx8bi5yZWxvYWRQZXJpb2RDb250cm9sLmhhc0Vycm9yKCJyZXF1aXJlZCIpKSxyYygzKSxEbSgiZm9ybUNvbnRyb2wiLG4ucGFnaW5hdGlvbkNvbnRyb2wpLHJjKDEpLERtKCJuZ0lmIixuLnBhZ2luYXRpb25Db250cm9sLmludmFsaWQpKX0sZGlyZWN0aXZlczpbT1ksQVYsTFksZlUsVlYseGoseFUsZE0sZ1ZdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbltfbmdob3N0LSVDT01QJV0gICAgPiBkaXZbX25nY29udGVudC0lQ09NUCVdIHtcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbltfbmdob3N0LSVDT01QJV0gICAgPiBbX25nY29udGVudC0lQ09NUCVdOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuW19uZ2hvc3QtJUNPTVAlXSAgICA+IFtfbmdjb250ZW50LSVDT01QJV06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmgzW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLnJlbG9hZC10b2dnbGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn0iXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVVksW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6InNldHRpbmdzX2RpYWxvZ19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9zZXR0aW5nc19kaWFsb2dfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLHtyZWxvYWRFbmFibGVkOlt7dHlwZTp4eX1dLHJlbG9hZFBlcmlvZEluTXM6W3t0eXBlOnh5fV0scGFnZVNpemU6W3t0eXBlOnh5fV0scmVsb2FkVG9nZ2xlZDpbe3R5cGU6T3l9XSxyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZDpbe3R5cGU6T3l9XSxwYWdlU2l6ZUNoYW5nZWQ6W3t0eXBlOk95fV19KTtjbGFzcyBHWXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5yZWxvYWRFbmFibGVkJD10aGlzLnN0b3JlLnNlbGVjdChETiksdGhpcy5yZWxvYWRQZXJpb2RJbk1zJD10aGlzLnN0b3JlLnNlbGVjdChFTiksdGhpcy5wYWdlU2l6ZSQ9dGhpcy5zdG9yZS5zZWxlY3QoUk4pfW9uUmVsb2FkVG9nZ2xlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2godk4oKSl9b25SZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKHhOKHtwZXJpb2RJbk1zOnR9KSl9b25QYWdlU2l6ZUNoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChPTih7c2l6ZTp0fSkpfX1HWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8R1kpKFNtKEl3KSl9LEdZLsm1Y21wPXRvKHt0eXBlOkdZLHNlbGVjdG9yczpbWyJzZXR0aW5ncy1kaWFsb2ciXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywicmVsb2FkRW5hYmxlZCIsInJlbG9hZFBlcmlvZEluTXMiLCJwYWdlU2l6ZSIsInJlbG9hZFRvZ2dsZWQiLCJyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCIsInBhZ2VTaXplQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwic2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudCIsMCksVm0oInJlbG9hZFRvZ2dsZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZWxvYWRUb2dnbGVkKCl9KSkoInJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkKGUpfSkpKCJwYWdlU2l6ZUNoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUGFnZVNpemVDaGFuZ2VkKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFtKCkpLDImZSYmRG0oInJlbG9hZEVuYWJsZWQiLFRoKDEsMyxuLnJlbG9hZEVuYWJsZWQkKSkoInJlbG9hZFBlcmlvZEluTXMiLFRoKDIsNSxuLnJlbG9hZFBlcmlvZEluTXMkKSkoInBhZ2VTaXplIixUaCgzLDcsbi5wYWdlU2l6ZSQpKX0sZGlyZWN0aXZlczpbVVldLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChHWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJzZXR0aW5ncy1kaWFsb2ciLHRlbXBsYXRlOidcbiAgICA8c2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudFxuICAgICAgW3JlbG9hZEVuYWJsZWRdPSJyZWxvYWRFbmFibGVkJCB8IGFzeW5jIlxuICAgICAgW3JlbG9hZFBlcmlvZEluTXNdPSJyZWxvYWRQZXJpb2RJbk1zJCB8IGFzeW5jIlxuICAgICAgW3BhZ2VTaXplXT0icGFnZVNpemUkIHwgYXN5bmMiXG4gICAgICAocmVsb2FkVG9nZ2xlZCk9Im9uUmVsb2FkVG9nZ2xlZCgpIlxuICAgICAgKHJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkKT0ib25SZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCgkZXZlbnQpIlxuICAgICAgKHBhZ2VTaXplQ2hhbmdlZCk9Im9uUGFnZVNpemVDaGFuZ2VkKCRldmVudCkiXG4gICAgPjwvc2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjbGFzcyBXWXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmRpYWxvZz10fWlzQnV0dG9uRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5zZXR0aW5nc0xvYWRTdGF0ZT09PXlFLk5PVF9MT0FERUR8fHRoaXMuc2V0dGluZ3NMb2FkU3RhdGU9PT15RS5MT0FESU5HfW9wZW5EaWFsb2coKXt0aGlzLmRpYWxvZy5vcGVuKEdZLHt3aWR0aDoiNDAwcHgifSl9fVdZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxXWSkoU20ob1cpKX0sV1kuybVjbXA9dG8oe3R5cGU6V1ksc2VsZWN0b3JzOltbInNldHRpbmdzLWJ1dHRvbi1jb21wb25lbnQiXV0saW5wdXRzOntzZXR0aW5nc0xvYWRTdGF0ZToic2V0dGluZ3NMb2FkU3RhdGUifSxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1sibWF0LWljb24tYnV0dG9uIiwiIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzdmdJY29uIiwic2V0dGluZ3NfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiYnV0dG9uIiwwKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub3BlbkRpYWxvZygpfSkpLFRtKDEsIm1hdC1pY29uIiwxKSxBbSgpKSwyJmUmJkRtKCJkaXNhYmxlZCIsbi5pc0J1dHRvbkRpc2FibGVkKCkpfSxkaXJlY3RpdmVzOltYSCxEV10sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJzZXR0aW5ncy1idXR0b24tY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbZGlzYWJsZWRdPSJpc0J1dHRvbkRpc2FibGVkKCkiXG4gICAgICAoY2xpY2spPSJvcGVuRGlhbG9nKCkiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249InNldHRpbmdzXzI0cHgiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpvV31dfSkse3NldHRpbmdzTG9hZFN0YXRlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgWVl7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuc2V0dGluZ3NMb2FkU3RhdGUkPXRoaXMuc3RvcmUuc2VsZWN0KFNOKX19WVkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFlZKShTbShJdykpfSxZWS7JtWNtcD10byh7dHlwZTpZWSxzZWxlY3RvcnM6W1sic2V0dGluZ3MtYnV0dG9uIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsInNldHRpbmdzTG9hZFN0YXRlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJzZXR0aW5ncy1idXR0b24tY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpKSwyJmUmJkRtKCJzZXR0aW5nc0xvYWRTdGF0ZSIsVGgoMSwxLG4uc2V0dGluZ3NMb2FkU3RhdGUkKSl9LGRpcmVjdGl2ZXM6W1dZXSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWVksW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic2V0dGluZ3MtYnV0dG9uIix0ZW1wbGF0ZTonXG4gICAgPHNldHRpbmdzLWJ1dHRvbi1jb21wb25lbnRcbiAgICAgIFtzZXR0aW5nc0xvYWRTdGF0ZV09InNldHRpbmdzTG9hZFN0YXRlJCB8IGFzeW5jIlxuICAgID48L3NldHRpbmdzLWJ1dHRvbi1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgcVl7fXFZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxxWSl9LHFZLsm1Y21wPXRvKHt0eXBlOnFZLHNlbGVjdG9yczpbWyJhcHAtaGVhZGVyIl1dLGRlY2xzOjEwLHZhcnM6MCxjb25zdHM6W1sxLCJicmFuZCJdLFsxLCJwbHVnaW5zIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJocmVmIiwiaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwicmVsIiwibm9vcGVuZXIgbm9yZWZlcnJlciIsInRhcmdldCIsIl9ibGFuayIsImFyaWEtbGFiZWwiLCJIZWxwIiwxLCJyZWFkbWUiXSxbInN2Z0ljb24iLCJoZWxwX291dGxpbmVfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWF0LXRvb2xiYXIiKSxSbSgxLCJzcGFuIiwwKSxrdSgyLCJUZW5zb3JCb2FyZCIpLEFtKCksVG0oMywicGx1Z2luLXNlbGVjdG9yIiwxKSxUbSg0LCJ0YmRldi11cGxvYWQtYnV0dG9uIiksVG0oNSwiYXBwLWhlYWRlci1kYXJrLW1vZGUtdG9nZ2xlIiksVG0oNiwiYXBwLWhlYWRlci1yZWxvYWQiKSxUbSg3LCJzZXR0aW5ncy1idXR0b24iKSxSbSg4LCJhIiwyKSxUbSg5LCJtYXQtaWNvbiIsMyksQW0oKSxBbSgpKX0sZGlyZWN0aXZlczpbZUIsVkcsSVcsY1kscFksWVksS0gsRFddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfW1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjY0cHg7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCV9dGJkZXYtdXBsb2FkLWJ1dHRvbi5zaG93bltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgOHB4IDAgMTZweH0uYnJhbmRbX25nY29udGVudC0lQ09NUCVdLCAucmVhZG1lW19uZ2NvbnRlbnQtJUNPTVAlXSwgYXBwLWhlYWRlci1yZWxvYWRbX25nY29udGVudC0lQ09NUCVdLCBzZXR0aW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZsZXg6MCAwIGF1dG99LmJyYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtsZXR0ZXItc3BhY2luZzotMC4wMjVlbTttYXJnaW4tbGVmdDoxMHB4O3RleHQtcmVuZGVyaW5nOm9wdGltaXplTGVnaWJpbGl0eX0ucGx1Z2luc1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2ZvbnQtc2l6ZToxNHB4O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocVksW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiYXBwLWhlYWRlciIsdGVtcGxhdGU6J1xuICAgIDxtYXQtdG9vbGJhcj5cbiAgICAgIDxzcGFuIGNsYXNzPSJicmFuZCI+VGVuc29yQm9hcmQ8L3NwYW4+XG4gICAgICA8cGx1Z2luLXNlbGVjdG9yIGNsYXNzPSJwbHVnaW5zIj48L3BsdWdpbi1zZWxlY3Rvcj5cbiAgICAgIDx0YmRldi11cGxvYWQtYnV0dG9uPjwvdGJkZXYtdXBsb2FkLWJ1dHRvbj5cbiAgICAgIDxhcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGU+PC9hcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGU+XG4gICAgICA8YXBwLWhlYWRlci1yZWxvYWQ+PC9hcHAtaGVhZGVyLXJlbG9hZD5cbiAgICAgIDxzZXR0aW5ncy1idXR0b24+PC9zZXR0aW5ncy1idXR0b24+XG4gICAgICA8YVxuICAgICAgICBjbGFzcz0icmVhZG1lIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIlxuICAgICAgICByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiXG4gICAgICAgIHRhcmdldD0iX2JsYW5rIlxuICAgICAgICBhcmlhLWxhYmVsPSJIZWxwIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj0iaGVscF9vdXRsaW5lXzI0cHgiPjwvbWF0LWljb24+XG4gICAgICA8L2E+XG4gICAgPC9tYXQtdG9vbGJhcj5cbiAgJyxzdHlsZVVybHM6WyJoZWFkZXJfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLG51bGwpO2NvbnN0IFpZPVsicm91dGVDb250YWluZXIiXTtjbGFzcyBYWXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj10fW5nT25DaGFuZ2VzKHQpe2NvbnN0IGU9dC5hY3RpdmVOZ0NvbXBvbmVudDtpZihlJiYodGhpcy5yb3V0ZUNvbnRhaW5lci5jbGVhcigpLGUuY3VycmVudFZhbHVlKSl7Y29uc3QgdD10aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShlLmN1cnJlbnRWYWx1ZSk7dGhpcy5yb3V0ZUNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodCl9fX1YWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WFkpKFNtKHVnKSl9LFhZLsm1Y21wPXRvKHt0eXBlOlhZLHNlbGVjdG9yczpbWyJyb3V0ZXItb3V0bGV0LWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoWlksNyxlaCksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5yb3V0ZUNvbnRhaW5lcj10LmZpcnN0KX19LGlucHV0czp7YWN0aXZlTmdDb21wb25lbnQ6ImFjdGl2ZU5nQ29tcG9uZW50In0sZmVhdHVyZXM6W0JvXSxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1sicm91dGVDb250YWluZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmSW0oMCxudWxsLDApfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFhZLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InJvdXRlci1vdXRsZXQtY29tcG9uZW50Iix0ZW1wbGF0ZToiIDxuZy1jb250YWluZXIgI3JvdXRlQ29udGFpbmVyPjwvbmctY29udGFpbmVyPiAiLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp1Z31dfSkse3JvdXRlQ29udGFpbmVyOlt7dHlwZTpaYSxhcmdzOlsicm91dGVDb250YWluZXIiLHtzdGF0aWM6ITAscmVhZDplaH1dfV0sYWN0aXZlTmdDb21wb25lbnQ6W3t0eXBlOnh5fV19KTtjbGFzcyBLWXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc3RvcmU9dCx0aGlzLnJlZ2lzdHJ5PWUsdGhpcy5hY3RpdmVOZ0NvbXBvbmVudCQ9V3QoW3RoaXMuc3RvcmUuc2VsZWN0KFNTKSx0aGlzLnN0b3JlLnNlbGVjdChEUyldKS5waXBlKEl0KCgoW3QsZV0pPT50P251bGwhPT1lJiZRayhlLnJvdXRlS2luZCxlLnBhcmFtcykhPT1Rayh0LnJvdXRlS2luZCx0LnBhcmFtcyk/bnVsbDp0aGlzLnJlZ2lzdHJ5LmdldE5nQ29tcG9uZW50QnlSb3V0ZUtpbmQodC5yb3V0ZUtpbmQpOm51bGwpKSl9fXZhciBKWTtLWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8S1kpKFNtKEl3KSxTbShQUykpfSxLWS7JtWNtcD10byh7dHlwZTpLWSxzZWxlY3RvcnM6W1sicm91dGVyLW91dGxldCJdXSxkZWNsczoyLHZhcnM6Myxjb25zdHM6W1szLCJhY3RpdmVOZ0NvbXBvbmVudCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwicm91dGVyLW91dGxldC1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIikpLDImZSYmRG0oImFjdGl2ZU5nQ29tcG9uZW50IixUaCgxLDEsbi5hY3RpdmVOZ0NvbXBvbmVudCQpKX0sZGlyZWN0aXZlczpbWFldLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChLWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJyb3V0ZXItb3V0bGV0Iix0ZW1wbGF0ZTonXG4gICAgPHJvdXRlci1vdXRsZXQtY29tcG9uZW50XG4gICAgICBbYWN0aXZlTmdDb21wb25lbnRdPSJhY3RpdmVOZ0NvbXBvbmVudCQgfCBhc3luYyJcbiAgICA+PC9yb3V0ZXItb3V0bGV0LWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9LHt0eXBlOlBTfV19KSxudWxsKSwoZnVuY3Rpb24odCl7dFt0LkFDVElWRV9QTFVHSU49MF09IkFDVElWRV9QTFVHSU4ifSkoSll8fChKWT17fSkpO2NsYXNzIFFZe2NvbnN0cnVjdG9yKHQpe3RoaXMuZGVlcExpbmtlcj10LHRoaXMub25WYWx1ZUNoYW5nZT1uZXcgTGgsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBJLHRoaXMub25IYXNoQ2hhbmdlPW9lKHdpbmRvdywicG9wc3RhdGUiLHtwYXNzaXZlOiEwfSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpKX1uZ09uSW5pdCgpe3RoaXMub25IYXNoQ2hhbmdlLnN1YnNjcmliZSgoKCk9Pntjb25zdCB0PXRoaXMuZGVlcExpbmtlci5nZXRQbHVnaW5JZCgpO3QhPT10aGlzLmFjdGl2ZVBsdWdpbklkJiZ0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh7cHJvcDpKWS5BQ1RJVkVfUExVR0lOLHZhbHVlOnR9KX0pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9bmdPbkNoYW5nZXModCl7aWYodC5hY3RpdmVQbHVnaW5JZCl7Y29uc3QgZT10LmFjdGl2ZVBsdWdpbklkO3RoaXMuZGVlcExpbmtlci5zZXRQbHVnaW5JZChudWxsPT09ZS5jdXJyZW50VmFsdWU/IiI6ZS5jdXJyZW50VmFsdWUse2RlZmF1bHRWYWx1ZToiIix1c2VMb2NhdGlvblJlcGxhY2U6bnVsbD09PWUucHJldmlvdXNWYWx1ZXx8ZS5maXJzdENoYW5nZX0pfX19UVkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFFZKShTbShWUykpfSxRWS7JtWNtcD10byh7dHlwZTpRWSxzZWxlY3RvcnM6W1siaGFzaC1zdG9yYWdlLWNvbXBvbmVudCJdXSxpbnB1dHM6e2FjdGl2ZVBsdWdpbklkOiJhY3RpdmVQbHVnaW5JZCJ9LG91dHB1dHM6e29uVmFsdWVDaGFuZ2U6Im9uVmFsdWVDaGFuZ2UifSxmZWF0dXJlczpbQm9dLGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXt9LGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUVksW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiaGFzaC1zdG9yYWdlLWNvbXBvbmVudCIsdGVtcGxhdGU6IiIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlZTfV19KSx7YWN0aXZlUGx1Z2luSWQ6W3t0eXBlOnh5fV0sb25WYWx1ZUNoYW5nZTpbe3R5cGU6T3l9XX0pO2NsYXNzICRZe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmFjdGl2ZVBsdWdpbklkJD10aGlzLnN0b3JlLnBpcGUoRncoTVIpKX1vblZhbHVlQ2hhbmdlZCh0KXtzd2l0Y2godC5wcm9wKXtjYXNlIEpZLkFDVElWRV9QTFVHSU46dGhpcy5zdG9yZS5kaXNwYXRjaChDRSh7cGx1Z2luOnQudmFsdWV9KSl9fX0kWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8JFkpKFNtKEl3KSl9LCRZLsm1Y21wPXRvKHt0eXBlOiRZLHNlbGVjdG9yczpbWyJoYXNoLXN0b3JhZ2UiXV0sZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbMywiYWN0aXZlUGx1Z2luSWQiLCJvblZhbHVlQ2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJoYXNoLXN0b3JhZ2UtY29tcG9uZW50IiwwKSxWbSgib25WYWx1ZUNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25WYWx1ZUNoYW5nZWQoZSl9KSksQWgoMSwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJhY3RpdmVQbHVnaW5JZCIsVGgoMSwxLG4uYWN0aXZlUGx1Z2luSWQkKSl9LGRpcmVjdGl2ZXM6W1FZXSxwaXBlczpbd01dLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCgkWSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJoYXNoLXN0b3JhZ2UiLHRlbXBsYXRlOidcbiAgICA8aGFzaC1zdG9yYWdlLWNvbXBvbmVudFxuICAgICAgW2FjdGl2ZVBsdWdpbklkXT0iYWN0aXZlUGx1Z2luSWQkIHwgYXN5bmMiXG4gICAgICAob25WYWx1ZUNoYW5nZSk9Im9uVmFsdWVDaGFuZ2VkKCRldmVudCkiXG4gICAgPlxuICAgIDwvaGFzaC1zdG9yYWdlLWNvbXBvbmVudD5cbiAgJyxzdHlsZXM6WyJcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIHRxe25nT25DaGFuZ2VzKHQpe3QudGl0bGUmJihmdW5jdGlvbiBlKHQpe2RvY3VtZW50LnRpdGxlPXR9KSh0LnRpdGxlLmN1cnJlbnRWYWx1ZSl9fXRxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0cSl9LHRxLsm1Y21wPXRvKHt0eXBlOnRxLHNlbGVjdG9yczpbWyJwYWdlLXRpdGxlLWNvbXBvbmVudCJdXSxpbnB1dHM6e3RpdGxlOiJ0aXRsZSJ9LGZlYXR1cmVzOltCb10sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh0cSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJwYWdlLXRpdGxlLWNvbXBvbmVudCIsdGVtcGxhdGU6IiIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7dGl0bGU6W3t0eXBlOnh5fV19KTtjb25zdCBlcT0iVGVuc29yQm9hcmQiO2NsYXNzIG5xe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zdG9yZT10LHRoaXMuY3VzdG9tQnJhbmROYW1lPWUsdGhpcy5nZXRFeHBlcmltZW50SWQkPXRoaXMuc3RvcmUuc2VsZWN0KFRTKS5waXBlKEl0KCh0PT5udWxsPT10P3ZvaWQgMDp0WzBdKSkpLHRoaXMuZXhwZXJpbWVudE5hbWUkPXRoaXMuZ2V0RXhwZXJpbWVudElkJC5waXBlKGNlKEJvb2xlYW4pLFp0KCh0PT50aGlzLnN0b3JlLnNlbGVjdCh1QSx7ZXhwZXJpbWVudElkOnR9KSkpLEl0KCh0PT50P3QubmFtZTpudWxsKSkpLHRoaXMudGl0bGUkPXRoaXMuc3RvcmUuc2VsZWN0KHhSKS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KFJTKSx0aGlzLmV4cGVyaW1lbnROYW1lJCksSXQoKChbdCxlLG5dKT0+e2NvbnN0IG89dGhpcy5jdXN0b21CcmFuZE5hbWV8fGVxO3JldHVybiB0LndpbmRvd190aXRsZT90LndpbmRvd190aXRsZTplPT09WmsuRVhQRVJJTUVOVCYmbj9gJHtufSAtICR7b31gOm99KSksTmUodGhpcy5jdXN0b21CcmFuZE5hbWV8fGVxKSxNZSgpKX19bnEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5xKShTbShJdyksU20odUUsOCkpfSxucS7JtWNtcD10byh7dHlwZTpucSxzZWxlY3RvcnM6W1sicGFnZS10aXRsZSJdXSxkZWNsczoyLHZhcnM6Myxjb25zdHM6W1szLCJ0aXRsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwicGFnZS10aXRsZS1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIikpLDImZSYmRG0oInRpdGxlIixUaCgxLDEsbi50aXRsZSQpKX0sZGlyZWN0aXZlczpbdHFdLHBpcGVzOlt3TV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG5xLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InBhZ2UtdGl0bGUiLHRlbXBsYXRlOidcbiAgICA8cGFnZS10aXRsZS1jb21wb25lbnQgW3RpdGxlXT0idGl0bGUkIHwgYXN5bmMiPjwvcGFnZS10aXRsZS1jb21wb25lbnQ+XG4gICcsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3VFXX1dfV19KSxudWxsKTtjbGFzcyBvcXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBJLHRoaXMuZ2V0UGFnZVNpemUkPXRoaXMuc3RvcmUucGlwZShGdyhSTikpLHRoaXMucGFnaW5hdGVkVmlld1N0b3JlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRmLXBhZ2luYXRlZC12aWV3LXN0b3JlIikudGZfcGFnaW5hdGVkX3ZpZXd9bmdPbkluaXQoKXt0aGlzLmdldFBhZ2VTaXplJC5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSksTWUoKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5wYWdpbmF0ZWRWaWV3U3RvcmUuc2V0TGltaXQodCl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfX1vcS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b3EpKFNtKEl3KSl9LG9xLsm1Y21wPXRvKHt0eXBlOm9xLHNlbGVjdG9yczpbWyJzZXR0aW5ncy1wb2x5bWVyLWludGVyb3AiXV0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvcSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJzZXR0aW5ncy1wb2x5bWVyLWludGVyb3AiLHRlbXBsYXRlOiIiLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgaXF7Y29uc3RydWN0b3IodCl7dC5zZWxlY3QoSkQpLnN1YnNjcmliZSgodD0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiZGFyay1tb2RlIix0KX0pKX19aXEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGlxKShTbShJdykpfSxpcS7JtWNtcD10byh7dHlwZTppcSxzZWxlY3RvcnM6W1siZGFyay1tb2RlLXN1cHBvcnRlciJdXSxkZWNsczowLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7fSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoaXEsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiZGFyay1tb2RlLXN1cHBvcnRlciIsdGVtcGxhdGU6IiIsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjbGFzcyBhcXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnZjUmVmPXR9fWFxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxhcSkoU20oZWgpKX0sYXEuybVjbXA9dG8oe3R5cGU6YXEsc2VsZWN0b3JzOltbInRiLXdlYmFwcCJdXSxkZWNsczo4LHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwiYXBwLWhlYWRlciIpLFJtKDEsIm1haW4iKSxUbSgyLCJyb3V0ZXItb3V0bGV0IiksQW0oKSxUbSgzLCJhbGVydC1zbmFja2JhciIpLFRtKDQsImhhc2gtc3RvcmFnZSIpLFRtKDUsInBhZ2UtdGl0bGUiKSxUbSg2LCJzZXR0aW5ncy1wb2x5bWVyLWludGVyb3AiKSxUbSg3LCJkYXJrLW1vZGUtc3VwcG9ydGVyIikpfSxkaXJlY3RpdmVzOltxWSxLWSxYTCwkWSxucSxvcSxpcV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9aHRtbFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90byxzYW5zLXNlcmlmO2hlaWdodDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MH1bX25naG9zdC0lQ09NUCVde2JhY2tncm91bmQ6I2Y1ZjVmNTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlfWFwcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MCAxcHggM3B4IDNweCByZ2JhKDAsMCwwLC4yNSk7ZmxleDowIDA7ei1pbmRleDoxfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIGFwcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBhcHAtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjAgMXB4IDNweCAzcHggcmdiYSgyNTUsMjU1LDI1NSwuMSl9bWFpbltfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjE7b3ZlcmZsb3c6YXV0b30nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYXEsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGItd2ViYXBwIix0ZW1wbGF0ZVVybDoiLi9hcHBfY29udGFpbmVyLm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vYXBwX2NvbnRhaW5lci5jc3MiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofV19KSxudWxsKTtjbGFzcyBycXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5zdG9yZT10LHRoaXMubG9jYXRpb249ZSx0aGlzLmFwcFJvb3RQcm92aWRlcj1uLHRoaXMucGF0aG5hbWU9bnVsbH1oYW5kbGVDbGljayh0KXshdGhpcy5wYXRobmFtZXx8dC5jdHJsS2V5fHx0Lm1ldGFLZXl8fCh0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnN0b3JlLmRpc3BhdGNoKGxTKHtwYXRobmFtZTp0aGlzLnBhdGhuYW1lfSkpKX1nZXQgaHJlZigpe3JldHVybiB0aGlzLnBhdGhuYW1lP3RoaXMuYXBwUm9vdFByb3ZpZGVyLmdldEFic1BhdGhuYW1lV2l0aEFwcFJvb3QodGhpcy5sb2NhdGlvbi5nZXRGdWxsUGF0aEZyb21Sb3V0ZU9yTmF2KHtwYXRobmFtZTp0aGlzLnBhdGhuYW1lfSkpOm51bGx9c2V0IHJvdXRlckxpbmsodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYodD1bdF0pLDA9PT10Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigicm91dGVMaW5rIHNob3VsZCBoYXZlIHByb3BlciBwYXRoLiBHb3Qgbm90aGluZy4iKTtjb25zdCBlPVsuLi50XS5qb2luKCIvIik7dGhpcy5wYXRobmFtZT1lLmVuZHNXaXRoKCIvIik/ZTplKyIvIn19cnEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHJxKShTbShJdyksU20odFMpLFNtKGVTKSl9LHJxLsm1ZGlyPWxvKHt0eXBlOnJxLHNlbGVjdG9yczpbWyJhIiwicm91dGVyTGluayIsIiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmhhbmRsZUNsaWNrKGUpfSkpLDImZSYmanAoImhyZWYiLG4uaHJlZixUcyl9LGlucHV0czp7cm91dGVyTGluazoicm91dGVyTGluayJ9fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChycSxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJhW3JvdXRlckxpbmtdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fSx7dHlwZTp0U30se3R5cGU6ZVN9XX0pLHtoYW5kbGVDbGljazpbe3R5cGU6d3ksYXJnczpbImNsaWNrIixbIiRldmVudCJdXX1dLGhyZWY6W3t0eXBlOlB5LGFyZ3M6WyJhdHRyLmhyZWYiXX1dLHJvdXRlckxpbms6W3t0eXBlOnh5fV19KTtjbGFzcyBzcXt9c3EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHNxKX0sc3EuybVtb2Q9YW8oe3R5cGU6c3F9KSxzcS7JtWluaj12bih7aW1wb3J0czpbW1dNLGlTLG9TLFBTXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHNxLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV00saVMsb1MsUFNdLGV4cG9ydHM6W0tZLHJxXSxkZWNsYXJhdGlvbnM6W0tZLFhZLHJxXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHNxLHtkZWNsYXJhdGlvbnM6W0tZLFhZLHJxXSxpbXBvcnRzOltXTSxpUyxvUyxQU10sZXhwb3J0czpbS1kscnFdfSk7Y2xhc3MgbHF7fWxxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxscSl9LGxxLsm1bW9kPWFvKHt0eXBlOmxxfSksbHEuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobHEsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2lxXSxleHBvcnRzOltpcV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhscSx7ZGVjbGFyYXRpb25zOltpcV0sZXhwb3J0czpbaXFdfSk7Y2xhc3MgY3F7fWNxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjcSl9LGNxLsm1bW9kPWFvKHt0eXBlOmNxfSksY3EuybVpbmo9dm4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6VlMsdXNlQ2xhc3M6VVN9XX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoY3EsW3t0eXBlOkF5LGFyZ3M6W3twcm92aWRlcnM6W3twcm92aWRlOlZTLHVzZUNsYXNzOlVTfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgZHF7fWRxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkcSl9LGRxLsm1bW9kPWFvKHt0eXBlOmRxfSksZHEuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjcV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkcSxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbJFksUVldLGV4cG9ydHM6WyRZXSxpbXBvcnRzOltXTSxjcV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhkcSx7ZGVjbGFyYXRpb25zOlskWSxRWV0saW1wb3J0czpbV00sY3FdLGV4cG9ydHM6WyRZXX0pO2NsYXNzIHBxe31wcS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cHEpfSxwcS7JtW1vZD1hbyh7dHlwZTpwcX0pLHBxLsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocHEsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W25xLHRxXSxleHBvcnRzOltucV0saW1wb3J0czpbV01dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8ocHEse2RlY2xhcmF0aW9uczpbbnEsdHFdLGltcG9ydHM6W1dNXSxleHBvcnRzOltucV19KTtjb25zdCBtcT17aWQ6WGssbmFtZToiIixzdGFydF90aW1lOjB9LHVxPXlrKHtleHBlcmltZW50TWFwOntbbXEuaWRdOm1xfX0pO2Z1bmN0aW9uIGZxKHQsZSl7cmV0dXJuIHh3KHtkYXRhOnVxfSkodCxlKX1jbGFzcyBncXt9Z3EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGdxKX0sZ3EuybVtb2Q9YW8oe3R5cGU6Z3F9KSxncS7JtWluaj12bih7aW1wb3J0czpbW2RrLmZvckZlYXR1cmUocEEsZnEpXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGdxLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbZGsuZm9yRmVhdHVyZShwQSxmcSldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZ3Ese2ltcG9ydHM6W2NrXX0pO2NsYXNzIGhxe31mdW5jdGlvbiBicSgpe3JldHVybiBadyhETiwodD0+KHthdXRvUmVsb2FkOnR9KSkpfWZ1bmN0aW9uIHlxKCl7cmV0dXJuIFp3KEVOLCh0PT4oe2F1dG9SZWxvYWRQZXJpb2RJbk1zOnR9KSkpfWZ1bmN0aW9uIF9xKCl7cmV0dXJuIFp3KFJOLCh0PT4oe3BhZ2VTaXplOnR9KSkpfWhxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxocSl9LGhxLsm1bW9kPWFvKHt0eXBlOmhxfSksaHEuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjRyxkRyxKSCxTWSxkVyxFVyxCWV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChocSxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbV1ksWVksVVksR1ksb3FdLGV4cG9ydHM6W1dZLFlZLEdZLG9xXSxlbnRyeUNvbXBvbmVudHM6W0dZXSxpbXBvcnRzOltXTSxjRyxkRyxKSCxTWSxkVyxFVyxCWV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhocSx7ZGVjbGFyYXRpb25zOltXWSxZWSxVWSxHWSxvcV0saW1wb3J0czpbV00sY0csZEcsSkgsU1ksZFcsRVcsQlldLGV4cG9ydHM6W1dZLFlZLEdZLG9xXX0pO2NsYXNzIENxe31DcS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Q3EpfSxDcS7JtW1vZD1hbyh7dHlwZTpDcX0pLENxLsm1aW5qPXZuKHtpbXBvcnRzOltbZGsuZm9yRmVhdHVyZShQTixmWSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhicSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyh5cSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhfcSldLGhxXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQ3EsW3t0eXBlOkF5LGFyZ3M6W3tleHBvcnRzOltocV0saW1wb3J0czpbZGsuZm9yRmVhdHVyZShQTixmWSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhicSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyh5cSkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhfcSldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oQ3Ese2ltcG9ydHM6W2NrLHFTLHFTLHFTXSxleHBvcnRzOltocV19KTtjbGFzcyBNcXt9TXEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE1xKX0sTXEuybVtb2Q9YW8oe3R5cGU6TXF9KSxNcS7JtWluaj12bih7cHJvdmlkZXJzOlt7cHJvdmlkZToid2luZG93Iix1c2VWYWx1ZTp3aW5kb3d9XSxpbXBvcnRzOltbZ1csV00sSkgsZFcsRVddXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTXEsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0lXLFJXLFRXXSxleHBvcnRzOltJV10sZW50cnlDb21wb25lbnRzOltUV10saW1wb3J0czpbZ1csV00sSkgsZFcsRVddLHByb3ZpZGVyczpbe3Byb3ZpZGU6IndpbmRvdyIsdXNlVmFsdWU6d2luZG93fV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhNcSx7ZGVjbGFyYXRpb25zOltJVyxSVyxUV10saW1wb3J0czpbZ1csV00sSkgsZFcsRVddLGV4cG9ydHM6W0lXXX0pO2NsYXNzIHZxe312cS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dnEpfSx2cS7JtW1vZD1hbyh7dHlwZTp2cX0pLHZxLsm1aW5qPXZuKHtwcm92aWRlcnM6W10saW1wb3J0czpbW0pILEVXLEtCLG5CLFRHLG9ZLFdNLEVSLENxLE1xXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHZxLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltsWSxjWSxxWSxGRyxWRyxwWV0sZXhwb3J0czpbY1kscVksVkcscFldLHByb3ZpZGVyczpbXSxpbXBvcnRzOltKSCxFVyxLQixuQixURyxvWSxXTSxFUixDcSxNcV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyh2cSx7ZGVjbGFyYXRpb25zOltsWSxjWSxxWSxGRyxWRyxwWV0saW1wb3J0czpbSkgsRVcsS0IsbkIsVEcsb1ksV00sRVIsQ3EsTXFdLGV4cG9ydHM6W2NZLHFZLFZHLHBZXX0pO2NsYXNzIHhxe2NvbnN0cnVjdG9yKHQsZSl7Y29uc3Qgbj10LmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCgiLi9pY29uX2J1bmRsZS5zdmciKTtlLmFkZFN2Z0ljb25TZXQobil9fXhxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4cSkodnIoenYpLHZyKENXKSl9LHhxLsm1bW9kPWFvKHt0eXBlOnhxfSkseHEuybVpbmo9dm4oe2ltcG9ydHM6W1tFV11dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh4cSxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W0VXXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnp2fSx7dHlwZTpDV31dfSksbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyh4cSx7aW1wb3J0czpbRVddfSk7Y29uc3QgT3E9bmV3IEdhKCJbcGx1Z2luc10gUGx1Z2luIHJlZ2lzdHJ5IGNvbmZpZyIpLFBxPW5ldyBNYXA7Y2xhc3Mgd3F7Y29uc3RydWN0b3IodCl7aWYoIXQpcmV0dXJuO2NvbnN0IGU9bmV3IFNldCh0Lm1hcCgodD0+dC5wbHVnaW5OYW1lKSkpO2NvbnNvbGUuYXNzZXJ0KGUuc2l6ZT09PXQubGVuZ3RoLCJDYW5ub3QgcmVnaXN0ZXIgdGhlIHNhbWUgcGx1Z2luIG11bHRpcGxlIHRpbWVzLiIpO2Zvcihjb25zdCBlIG9mIHQpe2NvbnN0e3BsdWdpbk5hbWU6dCxjb21wb25lbnRDbGFzczpufT1lO1BxLnNldCh0LG4pfX1zdGF0aWMgZm9yUGx1Z2luKHQsZSl7cmV0dXJue25nTW9kdWxlOndxLHByb3ZpZGVyczpbe3Byb3ZpZGU6T3EsbXVsdGk6ITAsdXNlVmFsdWU6e3BsdWdpbk5hbWU6dCxjb21wb25lbnRDbGFzczplfX1dfX1nZXRDb21wb25lbnQodCl7cmV0dXJuIFBxLmdldCh0KXx8bnVsbH19d3EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHdxKSh2cihPcSw4KSl9LHdxLsm1bW9kPWFvKHt0eXBlOndxfSksd3EuybVpbmo9dm4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgod3EsW3t0eXBlOkF5LGFyZ3M6W3t9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W09xXX1dfV19KSxudWxsKTtjbGFzcyBrcXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmh0dHA9dCx0aGlzLmh0dHBQYXRoUHJlZml4PSJkYXRhL3BsdWdpbi9kZWJ1Z2dlci12MiJ9ZmV0Y2hSdW5zKCl7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL3J1bnMiKX1mZXRjaEV4ZWN1dGlvbkRpZ2VzdHModCxlLG4pe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9leGVjdXRpb24vZGlnZXN0cyIse3BhcmFtczp7cnVuOnQsYmVnaW46U3RyaW5nKGUpLGVuZDpTdHJpbmcobil9fSl9ZmV0Y2hFeGVjdXRpb25EYXRhKHQsZSxuKXtyZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4KyIvZXhlY3V0aW9uL2RhdGEiLHtwYXJhbXM6e3J1bjp0LGJlZ2luOlN0cmluZyhlKSxlbmQ6U3RyaW5nKG4pfX0pfWZldGNoR3JhcGhFeGVjdXRpb25EaWdlc3RzKHQsZSxuLG8pe2lmKHZvaWQgMCE9PW8pdGhyb3cgbmV3IEVycm9yKCJ0cmFjZV9pZCBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIGZldGNoR3JhcGhFeGVjdXRpb25EaWdlc3RzKCkgeWV0Iik7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL2dyYXBoX2V4ZWN1dGlvbi9kaWdlc3RzIix7cGFyYW1zOntydW46dCxiZWdpbjpTdHJpbmcoZSksZW5kOlN0cmluZyhuKX19KX1mZXRjaEdyYXBoRXhlY3V0aW9uRGF0YSh0LGUsbixvKXtpZih2b2lkIDAhPT1vKXRocm93IG5ldyBFcnJvcigidHJhY2VfaWQgaXMgbm90IGltcGxlbWVudGVkIGZvciBmZXRjaEdyYXBoRXhlY3V0aW9uRGF0YSgpIHlldCIpO3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9ncmFwaF9leGVjdXRpb24vZGF0YSIse3BhcmFtczp7cnVuOnQsYmVnaW46U3RyaW5nKGUpLGVuZDpTdHJpbmcobil9fSl9ZmV0Y2hHcmFwaE9wSW5mbyh0LGUsbil7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL2dyYXBocy9vcF9pbmZvIix7cGFyYW1zOntydW46dCxncmFwaF9pZDplLG9wX25hbWU6bn19KX1mZXRjaFNvdXJjZUZpbGVMaXN0KHQpe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9zb3VyY2VfZmlsZXMvbGlzdCIse3BhcmFtczp7cnVuOnR9fSl9ZmV0Y2hTb3VyY2VGaWxlKHQsZSl7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL3NvdXJjZV9maWxlcy9maWxlIix7cGFyYW1zOntydW46dCxpbmRleDpTdHJpbmcoZSl9fSl9ZmV0Y2hTdGFja0ZyYW1lcyh0LGUpe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9zdGFja19mcmFtZXMvc3RhY2tfZnJhbWVzIix7cGFyYW1zOntydW46dCxzdGFja19mcmFtZV9pZHM6ZS5qb2luKCIsIil9fSkucGlwZShJdCgodD0+KHtzdGFja19mcmFtZXM6dC5zdGFja19mcmFtZXMubWFwKCh0PT4oZnVuY3Rpb24gZSh0KXtyZXR1cm57aG9zdF9uYW1lOnRbMF0sZmlsZV9wYXRoOnRbMV0sbGluZW5vOnRbMl0sZnVuY3Rpb25fbmFtZTp0WzNdfX0pKHQpKSl9KSkpKX1mZXRjaEFsZXJ0cyh0LGUsbixvKXtjb25zdCBpPXtydW46dCxiZWdpbjpTdHJpbmcoZSksZW5kOlN0cmluZyhuKX07cmV0dXJuIHZvaWQgMCE9PW8mJihpLmFsZXJ0X3R5cGU9byksdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4KyIvYWxlcnRzIix7cGFyYW1zOml9KX19a3EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGtxKSh2cihsRSkpfSxrcS7JtXByb3Y9TW4oe3Rva2VuOmtxLGZhY3Rvcnk6a3EuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGtxLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpsRX1dfSksbnVsbCk7Y2xhc3MgU3F7fVNxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxTcSl9LFNxLsm1bW9kPWFvKHt0eXBlOlNxfSksU3EuybVpbmo9dm4oe3Byb3ZpZGVyczpba3FdLGltcG9ydHM6W1tjRV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChTcSxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W2NFXSxwcm92aWRlcnM6W2txXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFNxLHtpbXBvcnRzOltjRV19KTtjbGFzcyBEcXt9RHEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fERxKX0sRHEuybVjbXA9dG8oe3R5cGU6RHEsc2VsZWN0b3JzOltbImluYWN0aXZlLWNvbXBvbmVudCJdXSxkZWNsczo1NCx2YXJzOjAsY29uc3RzOltbMSwiY29udGFpbmVyIl0sWzEsInRpdGxlIl0sWzEsImNvZGUiXSxbMSwiYXJnIl0sWzEsImV4aGliaXRzLWNvbnRhaW5lciJdLFsxLCJleGhpYml0Il0sWzEsInNjcmVlbnNob3QiXSxbInNyYyIsImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBVFlBQUFFMkNBWUFBQURydkw2cEFBQW95SHBVV0hSU1lYY2djSEp2Wm1sc1pTQjBlWEJsSUdWNGFXWUFBSGphclp4cGRoeTVjb1gvWXhWZUF1WmhPUmdDNTNnSFhyNi9pMkpyZW1xcm4rMVdpNlNLeFV3a0VIR0hRSURPL3VzL3Ivc1AvaHV0WlpkTDYzWFU2dmt2anp6aTVJdnVQLytOOXpINC9ENisvMUw5K2lyOC9Mcjc5bzNJNTZSM2ZyN1I1dWR6bUx4ZXZ2L0FYL2NJNitmWFhmLzZUdXhmRi9yNkJoZitqRUIzMXRmbngwSHlldnk4SHZMWGhZWjl2cWlqdHgrSHVyNHV0TC9lK0lieTlUZC9HOWJuay83dGZucWhNVXVuY0tNVW82V1EvUHVZUHlOSW43K1R2KzE5akx3djhOcE1LUVgzK2ZSMU1TYmtwOGY3NjdQM1AwN1FUNVA4MTFmdTE5bi85dFV2a3gvbjErdnBsN21zWDNQazYrKy9FY292cjZkdnQ0ay9oY08zRWNXZnYzRjd6UC95T0Y5Lzd6MzlYdnM4M2N5VkdhMWZFZlVtKzY4WjBoc1hVNTdlajFYK05QNFd2bTd2eitCUDk5TnZsdno0N1JkL2RoZ2hzaXJYaFJ4T21PRUdlNTkzMkF3eFI0dU56ekh1bU41clBiVTQ0azVhcDZ3LzRjYVdSanFwczI0N21tUE5jb3JmeGhMZWZjZTczdzZkTzUvQVcyUGdZbHJxdi8zai9xZHYvanQvM0wxYlV4UjgvelpYakNzcXJobUdWazRmZVJkTEVPN1h1cFUzd1gvOStWcCsvMFA4RUtxc1lIblQzSG5BNmRmbkVxdUU3N0dWM2pvbjNsZjQvRm5qNE5yNXVnQlR4TDBMZ3dtSkZmQTFwQkpxOEMzR0ZnTHoyRm1neWNoanluR3hBcUdVZUJoa3pDblY2RnJzVWZmbVoxcDQ3NDBsMXFpWHdTWVdvcVJLYm5WV2FMSllPUmZpcCtWT0RNMlNTaTZsMU5KS2QyV1VXVlBOdGRSYVd4WEl6WlphYnFYVjFscHZvODJlZXU2bDE5NTY3NlBQRVVjQ0E4dW9vNDAreHBnenVzbU5KdGVhdkgveXlvb3JyYnpLcXF1dHZzYWFtL0RaZVpkZGQ5dDlqejFQUE9rQUU2ZWVkdm9aWjFwd0JsSll0bUxWbW5VYk5pK3hkdFBOdDl4NjIrMTMzUGx0MWI1VzlWLysvQnVyRnI1V0xiNlYwdnZhdDFYalZkZmFYNWNJZ3BPaU5XUEZZZzZzZU5NS0VOQlJhK1o3eURscTViUm1ma1NTb2tRR1diUTI3Z1N0R0V1WUxjUnl3N2UxKzc1eS8yamRYT24vYU4zaW4xYk9hZW4rUDFiT3NYVC91bTYvV2JVam50dHZ4VDVacURuMWlleTdaWnk0M0k1eDFUTG50SmxhUzJYdUZYTUxhWmVRV3oyMXJucUJrOXZQTHQzSHhyZTZaNVlQbk1Na0hMOXlQYUhvUXIybWZPUHhFM2hmcGQwMTAyRnBrNTZ5TTQ2OVRyNjUzMVVZTFpjRy84NDhPN1JqM0xTc3VGZFk1dG8wbml1bGZYbmtsdkkrbnFRc0J3QmRmVzhtZGQ4V29tK3NaT285NTU3KzRvWWtLTDlsbmpaakp5RDVPSFZ6bTZXdVdjNWNaWmVUSnludnpmTzQyWWM2Um84UnJTR1NQbmxNUzIzbmNRbTFmSS9DeGFVZVRpM3dkZHNnd3RwMzdicHV5TVhhWWJKcnYxWUE3dVhUYWNiVDVkRGEzS3pEQ20weWY1VXhNMzNiNVFrOWhGMW40YVozU1JTRXMyOGZ6V0k2Vm1lSXlXeHM0MXErcmg3V09DMGFWekRpdUsvR1BCRVF3U21KQ09uK3hFUmFZOTdNMEViYnZoeml0bmF5b0xHRVBNSnN1MXBpa1FmZ05jdGw2WHNJMXRmTmxoMXozRzhvZHBLRndjTWh1eTZQNGxFVFFPSHVNNDJ5N0I3TlNDSU9UN3A5WHlZL0hPWDJRaUsxZlJaejFIWUVPWGlZZmtyTithUmx1L2hWZlIrUm1HUnR5VEk3blptb2ljZzcvdVp5RDhHOUR6azZFb05vc2FHUGFneDVaUktOY1laOFd6bjdpQXZQOWJQWktHWWtKdmNOUE5EMW5ZYytQQ1J3UFkxUXlIRHRhdFhjNnJYQ3hKZEpiWk9STWhlVmRMQithMHVSbXhJUmhjbGsyT2UwYm9jdzdpeUVKK1p6Vk1EeWdmK2R4TjJZZXNycnIvWFR5Tmk5V3BuNTlNMDAzV09OQlNZVkV2ZFY2QmF1SFBaS0RETldHeFZZS2JlNFdFY1NjR3crRTZFa3hzbkowQk05dEJLWXQ2QWJWejFPR2d1Z0lmZnZIRVQ2SkZvTDR3UWN6bUN5Szh6V1NLTWFod2ZIeUdHR2txWUdFTllCVG5PRGpNdGNaeEZZMmJZVmNBT1FJMklodDd1TnBTUkY5a1JDZENZWVBPVHJHeUEvVnJjdVltSGNYYStGblJseU9Zblp0VkRTM2p3T29kcHRTZkFrd1U4eU55NloxWGpBS2FCWXVaK3doYlVrRkFoYUEvUkpGdm8rUVFWYkF6Q3ViU2NGb3lka0pwTi9iaUhtSElIT3R3dWh0bmRPZTBtRXdRZkxHOGhSMHdnbEt4UkoyMkp4RTFDRGZONFRlcmRid0VER3lQVldkRHN0QUdPMkM4TGI2Qy9tUmdQTG1KaDRnS3JXenlTbWdmNEZGbGZ3ajVjSlVGRGtLa3dPa1hQbmNZMVpKZ0tQRVZhZ0c2blFvSlNJZGtzeGQ4VlFPMW15K1M0a21TMkZ4QllFVk5ZdWx5UWtZNUZRL2lFTWI2Y1FqdU9za3hKaWxGZ0RNb3p3OEtZQkdWRTZSaGl4MWhJOXQyOWtYeWRLWWp5ekxsWWhJMnVZeXBHQ2dlTTFBWGZlR3lBMDg5T2txSnRNZW1mMGkxd0hNRjYrZjI0a0pNaEZoRVhRaWpnQ0hiRU81QnY4dUMvNUltSWxCZ09NQ21vQ2cyUDdUYWlCM0FFQUJWdFJtSk1GSmlTenFHSEFLYTd1QVVPUEJwcDBCbVNRNGdVTklSTmZZUDFGVk56Yy9ENEFkMEdlb28wclV1MENZUkFCVHlxV3UyazRVQlR0dFhoV0l3Uk5yQXN4RGpKM3JkMVg3Y0lLaFd1VEtTQVNlU0JtSDBpWXl0V05zQWFoaHJtamxTV1ZXQ0x6MnpKRU9zWTlGUTZyd3ZiZWJWOGlrRXVrc2xseUxOQ05zemFBNktZSjN5MkxBY3kydVJnMHlaaFdtdWlVeGhVRUFMVlpJbFFQY01UVkd6UlBzdkxvbXhDY0Z4QWFyV1JDd3RhMUNFbTZUUGdRdXhpL2phNnYrQUFlR3NRaXF3MThJdHBZUjBKZU9Dd1dBVWxMWXVyMktzTUkwbzRuSU5YTjVUU1kraHhaOVhQNUZwZGNDbGVnc0VQSFlHSmg0VWoyVWxZZy9OcmxHbk1zSm1NalZMaFpZRVhUbG1JREZWbVd4SlNqb3pBT3hCY3EyWVBsVVU0M041SFUvWWFGdi8vczlFVUd0a3NtYXJvQWRPOExCWkVFWnlJbGRrSlE5VEJyUlI4Y1VyYklYb01QTWszTVNnT3pab0ZGN0JJWEZ6RllHcU5ackJ4NnlMTmVnRXNpbi9xR3VJS3VqaHpQSFRteVJIQ0VCcmxtRWpSOGU5VGxrT2RubGF0WlBhdW53d2ZqbmR3OEkxb1dkQWI3b3lNazQ5QmVxWEhQR01sbEVtT1VSc0FNTkV3MzVxaEFud0J5T2NnOGtET1RtMnY0WXdVaGdLSElCS1VGcENEUEMvcXh0UDU2VUdSc1lMOEZDUThnTFRtSW5wOHhLWkF1ZE1DSThzT1hmQU9vQUxrOERnK1Z6amFXcDBwSG5BZVI2Q2xtNWFUWmk1WFRGOW0vejE3RUoxbU1jb2w1QXgxTUplQU93Y3E5NEIyUlBRZ0pRaGpVSHVnVnBCeU1kQVc0QUdXVU9IUHRqZ0k4Ly9LeVhtM0tBd3h3MlFOUVFocVFOOEZTWC9ub0ViR1c1V0E5MGE3TXJYY0xXMlZvU2lJeUNla3ZySCtUeEtvRXpnMWkxMFpXMkRwRzhnellkM2Q0STI4bWdYVWhjcVJkajBOaWlYZVFCbVErUzVvQnExU1FDUFBGdk1JRXpHNUZvclNSK0loRzVCd2lPeXRtRTdDQXJKODdPVGlJTllSbHhLOXozNW1ZOTdvV0lnZm9aa2FnTVM3TTRJQUpjQzRkbnBtQmNvdUw2WWRIdHRla3VDQnNxdWVBSk9RMnF5bnhESHNzekFEWVRIREJCd2huSHBVdkNJY05tUFlKODJFSWdoSXpTTnd2aDYyL3FGc3doYWVUa0NJMFlDeFNIV3lYK3I5RFRtS0JUajBiOEVBNHMrNHNDeCtoYzUrUmFYdkRJb2hoWTdxMTVIeGo0SnBLWVdhR3lVRVV5RHFzUmt4MTY1M0Z1TUlXeFhWRnpFR1pDSTJUSlhoZFFoekFXNENwdUFIeVpSUm9OQVlML1JnUDI1RVJnWGtvOEdmZWltK1VRMGZBTGNLU2pPQ0JRYkx0OW43Z2F2Q1RzZkRjbmpTMTlBWlZpSG5NRm9NZjh4UkJHcWc1R0JEZmcrbDZ3MDFKd203MHUxdGdXRldnWENSekp2MlJOUTJHSjlZbmlMbXc1MFJySmtpTXlRVnAwb0pLa1RRcXNzMG5Kb1ltM0JVRi9FQzk2TVlFU1VORzgwenh6UkRBakd0b09MdXFkVitFMkVsZDZvSDVLS3JUbGZEMTJZVmZYdmoxTTg4Qmtac25DbGp5eG1JeVVGSzN5dG9OTFE4cXNVK0Uxc0I0SUZnMnVoOCtSQkloRDhrZVJEaHZ3UzB1RkFUMlUrYXBpcThObzFnRFZnWHJwZVVETTJGSWMwQ2V4OUMwcCtQQkw2SVJUYTRNK2Qyckt5ZEV5bnhnalIwQ2JrRWFNQWRWeXd1SnJMeGRzNDdzeFh6aVVnbG1GbjRsd0JrN0FkSGphSnNQYlMydXdHQU54b0JlMGFHUUY3QkdISGtVb2ljeFR3ZlJWRUVCQUlvaXY0cEZpZkR0S3c0bjRTMEdFOXdKZFZnUmJEdG5zOEI0aWFUS1FITVhKWUlXNnZJc1RLN2hpdURDblFGSkpneTloN2NHUzBHNXhGdkp2cWFFaDNJbVNiZEltYXFVYU0xeDM0cmNRUGZpSTlDSHZVYUZqdzNtc2hLQWd4aEg1c0hPQURrMEVGUEFxUjVWaGRmWDB2SnhaZ2VNRWk2YnFTTWZFUzlkdzdFYjVDTWxSN2tkN0RQSVY3SUJHN3RFQ1pmd0dnMEZIQWNUZmdqQTdiQSt0NkpNSTR4dGsrbkVUbHkvSUkyRGwwMVpNcjBVNG5VRG5TajlQVUg5S2prUDlWd0VKaTVoZ0crT3Q2QVlLdmlCYkNETU10UW1kc3prdXlvdGQrRXZzWDVRTUltUDZpWDRXWktPOVFlbE8yQVo4VHU1T0d3NVVBeWgrUVpSamd1WGJpQk5kRWwrR3c2S0M0MUVrbTlpT1pBODFhOVIwWnk0TGloQWhXMVdGb0lrc1J2RSt5aTF3Vmt6TjJSakJ0K3d0Z1NTS2d1NkczR3lBZU83aENsSFZvaGJvWWFpYkpCTlJ3QTI1bzdjUmxlU3UxYzJoY1ZsWmdGZzFwMHhtT1Myblp3TmFnR0lXQlhRRWlXRlk2N2dzRExaVFRDOE5WVkJ5SDl1TFdGM3lId01mVlJkMTBmSWxEQkRCYWFTNWxCUS9lN216alEyd0xaQzE3OFoyei8rcnZzZnZvM2dIWmkzeWRSVUtMczJTUkNNak9GRXZDcER5TWs0VHdEemVuVG80SHQ1dEJWNU51Z2FUTjk4WjRtMjhZZnBDV0pzZjg4a2ZTakk2Z1QrSWtUQ1NJQXl1cmJzQnRnNWVETmwvR1Z0d1dxMURaVjFnZytkamhDend6eXBOb04wUWI1K2dMWFV2dlFWMmdYMlJWa3RlVXlFVnBtcVFudkJKOCtHaWNkKzRUd2J1blFUMndENUJXdHlSQThOVkJ2UFF5RGpJOUFhcjhhQVJXQXNqdHh2Q0VWNEVHL2pzUkZIUWtRQ0UrZWgwVi9CS2tsRFhCWFFNT0ZYVVZwZ0ZtU25Za1p2cW03OGJrU0FkRVNuSTZUSnhiaE5QbkxqcGcyc0JKY2JNbWc5TTA5aU56eTI3Y0JGSFhaVThnUjl4M1NyYXNFaUJsYnd4U1g0SlcwWGtDbmtlSW1JeGJMRkgrVEU1Q21aS1dWRkdzY2pqM0V1NEFnRElZTFIyQ1VPcEEvS0RLMkxZdVk5ZXlxdXF5MzQ0RjVMQjhPbFM3eVBjV0xJN2kxRWRnRzFmbFZyT0ttR2pPOHBRV212Mm5pSU54Z3g0N1RRUXd2elhQd3dINkpRaW9zNDNCKzQrRDdnQlBCSTZYTlJyb0NJR2ZLb3FSSWNoRWc0aVFCaC9ZSmxuUFRLRUJsU0NIWURLaHhra29UR2ozaE93V3lSU3dnejNtODVTQmtmQ0ZBZWhWczJwb21YcWt6OVFFQTErQUlLQmZ6TlhjZ2NqVGtoTXE4S0NuNGtraGhBUnBYckRQQzh5Qnk4eEFGTVpCYk9aSmNxZjRkd3c1aWhDdEVoSkMzeENRWlBSb3ZiNTJhQU92Zm43ZkJLMFZjQmpWRndQSjJuSXc1c1Y3UVhERUpBRUVFb3ZnaHk0bW1OTWJKUzRhcllTcnFxL25zbVM0WDVneDhMZW42QUg3dE1CV2Jnc2ZkVzlSUGtoc2tOa0x3NVl0Y0JKY3kyYXF3TlQwR3VIZFlEcFRWeG1zd2ZBRlFCK29reElRTHc0N1YyOEpNMXhER2VjRkYzR2VyT3ljV0FCT011aUdnRUVLcHF5Sm1RYXdOSzZVT0tHbUlqRXJhUGVFOUd2YmhDWFRsM01wSjFOSW5maW9oQTJ5MWtQSzRSK1lJTTQ1MVFUdVhmQ0hPVkVaSmtQSlBVV2RJTE1HUkJySHlyN0FWNkhVNjRyVHBaS213dlZITVNiSGV4ZWd1Ym5VT3ZTT25FeHpFUVl5dDY4WkxIQ1NBTGlXK0NCQVZNanNZWm5zNldqYnZJQVVNV2NHTXlxd2tIa1FnZUVpcXF2ZkNvd1BpUmVjSlRkZVViZ2dMaU9vUUl5UzNUVkYzUXM3QWl2ak9mczkvU29tMjRDMHNhSVllTG9tem5WVUhIRURrejVxeDYrZXg1QXhlcVEvaFpnWkZ3dE5raCtjZzZUR050VFNWZjhOeS9FaDJvZytoRFBiK3FKdlluUU12R2NyRUVRN1Y0THllOXRodTRicHhEd0EyZ1ZWQkJYcFZuTXYvakoxWHJCODJEWnlGSVhpL0JlQkx1QlRXSFlxL0llaVFVb3dMOHhkam5xSnlBZEF0RitRRlFza1pqU0NWRHJVaTNoSEt6RElGZ3NqekNvOHJ3a3ozanF0VEh1RjNEaVdPRThheFlIdXlvU0lKVVZIWDU3clZBUTYzOVVCMXNUT3ZvU0RqR0JrNys2NHZOdFU4MGdJMkhHdWhBeE5yVlpzRUowbVBNSUJHS0NHeHlwZmRnTFM3UHRVT2RxZ2hweDhaam9WUjNOMlRocks1Q1krT0JDTG8xdnkvMVJTRXlEY2tXK0RmakIrOUlqZmpBbFM5QnVsNEVuYnhpNVNHWVF4ZUc5N1crcUN5Vzl2YUVrcis5K0U4Ly9lMUhCYnZ1NjZkYlRLbytCRlJ4cmR0dlpCQjhwdklNTVlrNlJHYUdxKzJkRmpzcVRvVm5ySStzWFJmVjE0aUZHQkZ6cXQwZTZkTktsdGpXcm9CQzhFck5HUUJ6dURzMGIzRDAxZzVFT3BYcHFxck40TFFyVjNmaUNvS2lvM3VnUmtnVTBUb0FjOUlyUkJGWnNpelBnek1XOHhUVktyQTJrSTU4SHNhNkU1a1dyMHNKc0FocnFCb0N2MGtoSkhTV2FvbS9HMWw0U3ZQb1ZjVUpXWHVGSmdFWUdmQlV4TVpma2grZm04WXowb2g0TEFoY29rSkpQV21URVBDejEyNnFhbzNaZ3lhRVFCeXd6Q0lFbmZhMnQwcFI4QXlhUEwzU2tYUXljcnFYbXlLWWx5T3d3cGZvWTc1R09hSkFtREVZdmdGZEx5U3V3OTVGV0VGVnRneUt4YXpCTFBUOGxtYkU2U0hyUzBoZVZYU2dIWW1lc1FZcklhako1dkZZVnNiTC9ZNkVZWnA0eHVhS2VSRW1hQ1pCbnlsODhHYWtZekR1Yzg2SThQQ0FYQkdWYm5obUtpZzlxeHl6bkJtQVBCSGpxRmtUbXNCNVZzaUoxeVF5WmNaaE9TZ1RFSUFXeUhRVmZ4b3d3a3dEV0VBMHN1NG13SVhVVEhQQ21vQ3RxclJra3JnS0xESTVHV0FUeHN0UGhxT1hWWkJDN1Rpc1FZQitONmtFWlJ0TEtoUkVScU8vRm9NbGdRRThucFh3dy9zeE5pZ1E5cTRxeXV3bG1FWW1abm1SSHNsOU1rZENTK1VWeEwzMkV1NitNQ0wzYkNRSElRajFRYVg0aEE1dXBKTHhVRUhpRjRhdXpLMDI2Z3hGempLRGc3V2NqRE1uNDdSWmh0c2srdkYzQ1AyTDVnQ3A0WjJsblFrMEhpRmZNVERjcTRvcVhjWjBxdXdudlFJOVZOZ1hsa2xoeTZGY1pET0crdzZicHlEL3NMcEhtdy9ZeUNDcjI3WTIrSFpQK3lMWUkwTUh1Q2RpaEF0Z0V3blpDVjVXeEFoQktLT1hDcEZhWW9GaVgzS1FpdVEvT1lLZVpRV1FQT3BBV054ODVZdmIzdW81V05JVGcwRjZtWkl3aXFvMWhRZ0pTeG1OdDBKV0Z0RXZjaFRXa3JQeWkxd0QxSGU4ZW1ORVJuVnQyMTdwcTRrTVpoNFlFcm9maEJ5bDk2WktWZGNtTWhJSTVRMHFJNXo4d1dBNGVWNjBDN09aNE1vcnpVVEt6anVKeTUyYXNPWUU3UndpUnJURkZBTEVLSmxlVlV5T2pjV2ZSQ1pNU3c2U01RUGdERis3Y21IUFgzY2MvdnpaL2MwM1htSFNFNXcvU04ydmN1VXZyNnBIakNkeXFreWtsTENXYzJ6c1hjS0dJN25nUXBBRGEzRWFHTnFUZ2xKSUFwL0FzUU5OVW1QVHRyK3hGancrOHZnUUZSMVFnTkd5N0dZQ1FsUmd5MHdTcnArOGdlSUlERHlzb1RwMjJFOGNXMGZqc2M0TkVHNTRmVGZsV3JWbkpqZFZ0RHRkRDdKTEdhaUV2ZDZ5akpzQjdKaWhzSGJ2R2RPaktobWtzeUNUS05VK0hIU3Y0bVF3d0dtK1RYK3l0V0VqTmhtSm9vRngxZ3MxZkZHVDd1SG5rTmZKdzNLZElHVmNtRDB1aE1iY0lpaE1pQm5XYThtS1NxV055dU9CbVZmS0hCMkROc1pUdHpXSWtSclgxUDRLdUt4U0xmZU9yazN5R1dtTzMxUHhrZmpSTmh6RDV6NEJMd3BtSXp1MVZjZlBBSDJxRFFOSFFObFJ1d3hRYzNLSkhxZ0ZjZUdscXQyVTNobHdXREZCZkhoRzFJZ0s5eVNqdE93YkFnbU9oMk0yVUxza0xGUUppRi9GT2JsMm1WVFVJWXpieHVFeVRMTlhwcVBGVkpBUFN1NVc0T0JscXBLUkZkclNhZHBKQ1VjNGdpaTczU25BTU1DR3hzR081MUs4NGFvWEQ4Zno1M2FzN1BISVNGeFlWRkJTRldoRm5odEd4WkJtTWdXOGQraUpnVTBHQjRIYXVyRmZBQVBNcG5JZlFzMlBpWHNhVUFiVXJGS0FxY2hVYnhsM2VoVTNWQXcxZExzakVNdFpTRVVpSitNU3h6YjhPalBVQ0lQSmRHT3d5cCtLbFh4MmYzckQrNXpiVTBFL0VWejgrVlgzZVRtckN3RTFMTXdIU0dTM2VWazg4c2M4NC9NYkVkcjBkTDVvaWVBZWlKbmJTWnBUbVNCQWlIeXBRL1VtVm8ybGVjME9zb21nY3VTeFFTNGl2aWdVSFNxL0JrL1VSdUlaQThDaXdRR21iWkVJaFZvNW9seXV0MGxzRUJCWFNKVFd5VzBydDhRY1RmU3piYWZTMWxGVHlXaVZjRlJSQ1c3V1B1a2NRbEdZa3JRUDVFd0k2UGtCQUlqMTRHbUdoanhBU0VPdUN6RUt3ajVmalFyS2hRa2k2azBiaFR3L2RBNnBRSnZFZzk1VENUNlVOTStMV1VyeUhLai9oaFFuVFJ6QWpPSkNaR1FZYTZtS2ZER0pBQk42Zld0UEVmTzhrdTJDTGtFOU1PY2dRNUJwU1ZQa1dERUxyWTZ0elFPeTVMeVo1NUg5djQvV244L3UvNHJXbitqUWhWNkFJTjVlaUJEN3Y0bW1EZmVlRWJCdjJCWSthL0RhR3BvenY2NGVkSzUzMGhqd040WW1MTWdXYVlwcmtPL3J1SlZVK3V6cFpLK2V5Ym04ZHVteTloQ0taRG82bmlraDVUcjZ3cW5KRE5nWnVCVDFUWGpWN0dBWGRXQVl3dnVvMVlEQUF5bjR1WWxuRGIxTDNsUVZZVkdDL2FJYk54WUMyTFBYK1lBeFJLUGFSZTBsaExsS3Y5TURSaDZVMkVXOVVvQUF4dXlxazJHczBodTJaOVpTRnBOUjBVY3NPSk1Xc1dUQXdsak1RRk43QlJKK3FXbWt5NldpQWZqT1BnVDR4QVZtK0JvSXhvYmg0OUNUQ1B2dXdCY0dweDNxSExzdUxxL1oxUWdKbXRYTmNzRmFEWHZLYW5BWFZSWFUwem0xU2RCVTVzWFRJMG1Td3pLamgwL3RYYjA2blZERXR2TG9VTVpSRlloSHIxZWx2ZkRLNHZCdlVMK05qT3dabDhsRUE2cEx4bUhJNzl1MmV3VngrYkpqcjNxdkhXdkVJYWxMOGlCOUcxQnZ0Y2JwVlFkZm9BSitBZnI3Q2tEM3Z3N2xueU5ZWXZRM0lmeEx4ZTJIRVA0UjRJZ1RNTEloWG10UmkxNk8rR1A4ZUN5TDljWktWNVF2RDQ5VnE3YXJIRGlDMEJQQlhxVWNuRUJDQTdJQTBGbU1XQWh0bDNPaHMydGxQVnZIZktwWEVnRWF1am9zSnJvWTB1RTJQVmVWWm1CTkVBakVTMHVYWkFXWENoc3A1UnJVTXR6eDlBb2RtQ2hPUk9ZR2FJOHdWOXhWUUdCK0pEZXAvSml2akZocVRNQ0RmUnpIM1JJV016MkNIS2dZVFFXOGhUaE9GUVcwc0dUb0R6K3h5bDBOZmFCY1VrK2IvaTRRRG43VVprZGhOUkhTWXpnVkdEZnordmJhMFVmaFU2WEVEQmIrNzlwemozSFhyZFJWcVZjRGtMU2U0aDZpR3JFd3dJREFaTVBQVUhwN1pTcDhSWWpTWGdKbDhsTjdudHlsbzVIMHM0Qzh1cW53ZkpnV0ZhdHRxUDJOVkdwZ2RuNmRZdkF5d2tyOWt0cTNTeUpuaUFPUm9KMkRBOTFqUWZFVEpLUnlRclk5WTcxNFhsRDRZcDNkWkxWbXVuNnBsUTJsc3hUejFZTUc2clVpc0M3U1hwMTd2cXV2aTFFQWFVbm1VQW9HeGM2VHMvTFplUXpLM2xQY2J6cTNFQ2ZtRk8vZUZrL3pRd3I4S2NMZFAwMkJQMldBKzY2NUp6RkFrQmIxZEJncUdYYUN0dmREOUxZd0hOQWlHTWVIb3ViVlg2RGQvUXUyQTNTWVpnVDB4dWdGbWUwQTZrMFlMMnJuSGlTREg4cFNHR3NuL1ZXZG1XV25NaWdzZ0RndlNkMkNXNW9XVFF4b0V2cEZFQmRHWk9INTMyUUVNb0RmVkhvbEpxd2tOVlduMVlkRHprRXBFdi8xcXB6ZUVZSmphZGRoRXBuVnQ2Rk95MnEzUklYY0FSbW45bzZJMnlFc1o5eXY1OGdWYlEva0dsbHBobll6U1pLbHU1Y2hHZ3IzSzRYbkFSejVCbUc2TXRrMmNOWXdpWFpReUFpOE9DRGd1QXBFUHRST2NORE9mVExSUk9CYytMcklEWGlDSkgwYWRITGd6akNaYXJDL2c4cjFYQmdzWmd4alBtNW45ZmlOT3pMZUQ4SERpNjlmUzVWRXlHRTh6NHAxcVFuQjM5WHdlUlBMSVFIUDhoWGIwSjE2TlJ3alYvRnRta3BwaUgxU0tsMzFjUUh2eHljbXpBaDRGV2JnNG55bnlnN0UrVkJoYkRRUHdpK0diOEFJcGtmb3JqSUQ2UTFXb2F5RERoUGNYdFJBaHNJMjZXdnRwNWRaQTA0VkZjZWpxWDlwa0NwcTA1N05aZGJ1OWxmeHZyM0pES3NYaUp3cGFnR00yaVZJMmtKSzVvV1FoNGYwOEE1b0JhV3BDV1BDNkFDbnF3aFRWby9waG1NQndTVWRwZE0xVVR2Y1hmWDZCb1l2aENTZUFvU2VjM3oyM0h0Vm5YUjF0Q3ByNG5EMG1EVWNFRWE3NHRYQjFqVDd0NDM0Zi96Wi9jMDMvbkVIUVBjUlZSRVdUS3VlOENITGtyU0IxWkJCVmFVaWdLMEFLT1I0K29XaGdEcmQ4TEZKN0V4ZnFBTlpvMi9xY0FuQ3lxdWlGcjJha2hIS1JITHlhaWxSNDJwR2plRmFNSGRvS0J3ZFlsNGRIT0ZEN1RndEorOWNCK0hpdFZtTzk4UjJ0L3FxVk1nUE5Xek85Yng4WGdnUndjTHhPRGJBQ3A5L2tDQTRjaUk1NGlDemYvNFllSnJxQXQ3STRsN1UxeFl5RDZ2K1gzZ0xndEttcVRRTGtTbzJKWkVKOFM2Nnprd1o1bGlubjFqOHJrTTROWWxRaDdZbFZpbmkrNXEzNnAyS2Z2U2FRZmJocUtyWXlKNWR5MmNYSWRma3VFbUJVUHZDZU12S1hXM1lzQkxZZnVZOUlIYU9PdXlnQWpYTFFabHhuMC9IRjNDR2NpZC84VHpadTJ6dzVGb3lKK3JnWGMxNFoxUTV3UjZwNkZqS1ZJc2hkcDgxU0RMQ1pLR0Z2WGJ6UXkxeitFdWZuSHlrUi9oOStyOVJXbG1OOGlnT2kxUFpScVozYmF0VUJjNGVMS2k2TDBFMWtrQWRPOUFaQ0J1M2s5S056V3Q3cTZrM2w4eGdtdFdsSGRRdWh1TzRBV1M4SW1Jc2pxbStEa0hrckZ1Z1RCZWEwemVienZmWExYSzBjdW9OcS85V1luei83UDV2aWZFOUw5eTN4QWo0Uk9RL0RpbURtQWlURVY0RElsNjN2K1JJbURINVpkT1JNZVNacm5lZTE5TS9uSURBTnI0RGFRTDlxMXVNREF0TDRxbCtkaGplUDhSckJuSTJYQ0N6MWlRTHB0cE1rQ0RFZm5OZUxlc0l5c0p0Tzl4MmNZeFJPOUhNY28zcXRjY3E0MzRhY1lQZ1ltSURaQlFHTE1GZFdTaHR2K0NFQVRaN0hlbllHcEJkNTE5QWFSUjhLd2pEWVF1RkFmYm1nbEdHNzVPMHEwNDhxTzl5cVhZR0d1c3d5WFJYeDBSSXU2QkdXZmpiQXFGOGNNUVdrQVRxNDlldWRvWkJzVFBjUGh2dU5KUFVHVis3dFdIcHB6YitIZTdFOTVuZ09TUURvMndyOTc1MEtJWG9RZGRsRlVSaWJ3ZmszV0JwcXFxV29Va3dNQk5ZelVHbGlOSWN6d0JyQU11Z016bE50QUxTNnBEMUt1WWExTkpLVUhKNWJOWk40RDVLTnV5dFhzUWJNcE9nMHgrWW1taWVhYjd2dUNUMnBUSXo0R01KbUczRTR0WDJQTXQ1WHU4ekNTaU5oc3IwT2dUME5udkZFVWdBNXNoVXBCM3Ewb3dhNTZ2aXF2VmxGNTNDUEZzTlNpVE0rbkRIVUNFclZKUm5Kd3F6Q3VyKzFWMmNIZXRvZy8xNkNab2ttdHFyMGl6L3FJenovYlA3VFgzbmQ5V2RIMTk3cFIzTUpkYXU3cFhSYVlBSnk3K0JYaWtWTW1mc2pBaTFRZndVc21ab245bE9RSEdvS0ZpMHAzTFFZSFY0U2UzUzFCYXJuWGZzdEF2cXdrZi9xbHFwWGkva0lkWmF4dVlNc1NiWEJ4NW0wZUdLaVVBQ0pra1VRRnoxUTNCT0xaT3EvamdTcFduL0hOcVdKQXZpQUxSVWxaa1lhbVFGL2RXb1JGamhQR1RSMUxhaFJsa05IVFdGWmpqekhBY1RsWTVHclZqcFJwQ0NtK1I0bTdlOTB3N1ZKeHpHOTlFa1pROXNGWS9DcE5TbVBXbFpCTGRoa0tyeG9QMzk4QWRpcW5vV0s3eVpZUEhhbndzSlZPSEhkQmYxSXZZZ1p3dW5RYTJEL0sxSFVKdlUyNXZHYXlsL2JieERYYmg3YVljUXlGaVlrS0YyT2dGV3JYSmpUQ05jcTYzUnF0YW5UdlFXWnd3OG9xRG02K0RSOWdTdTRTSjhIbVRob2RZTlFXWW9QZGpHQ1pZTENJSkFvYWt5VFNaS20zcW5iVTBVZG1aQTZ0QU42ajVnK1JFUUdSTkhITVUrSUNwbVQ3M3RpR3F6dHFPMk45b3BVWEtQVUlhZWRYNHRxV1c5ZFo5ZjR4M3FLZXJmQ1p5UTcwRmdDQzNSbUZ4Q3g0VlcvNXlwMWxGd1NVaHNJL2JXU1NZam50WHBpK3lkYitXbTltNlV6RldWVlJ3TE1oblFqeGsvZ0hKWEd5eXBPdS9DSEVKSWt1L2RhWThMVFlHczFvYks3QzNxekp0d2oxemd2ZTBsSzU0bmdRVTZtWWNXNnRsWG5Td2RQSWZPa0xGc0h1NC9Gek9vR3JKT3dPbUlVMUVMNjZoSzQ2UGpCZHRRUUhVUDFNM1N4dUxybitTQm5vRUlrbFRBaXNzcUhrMDFQWU1XMHVPTUNRT3BwblVnbm9qQllDTm1vVDNlcGZYc0M3QmNHNVZtekI3NENBQ0dGcHdLcGR5Zmh3cmEybEhKQzhHRTZsVmp2NDVZUnBEMW5SbHAwa293M0lycVFkd3FNUFNrWXpYdm9JNUxCRHJXZzJBR2pEVFFGZFdzaVl3anUzbHN4V3NpS0ZGK2hiUWhqeit0bkJlVjNsRVEyN1RwaFJWZHFhdEJ3VlRvZ2oySzlpQjErby9rMDZteXJoYWNQeHc2ZUovZHJ5L005THVkMi9FM3I3T2VxSnVHbDNPZWh3R3NWSVpZdGhJY3FiTmhwWXlrVXdGRVhLNXFHQXlxZE1FM3BpTmpxRkI3dS9OcU1EYlpCdnhhOE5ORDE3dkwvY2s2TWpqMU9FaUJialZvUytzT25ZOVVwSVdHNkQxRmlLQitWQWxFd3BwL2RLZDhKV1lqL09FSkxrbFRuZW5EMGxpb1IzWkp2VzFCRnErVC93RktVNnBsakJqeUJCdEU3c3Z2dWxXSWEvUnBtOEFOWVVGV3ZnWGRFcGtaOEVDOElna200cFVNVzhHdnJqT01ZYXNyQ0FEUTBTQUFEMzJFYmh6S3BsNVFRS0FuajAwRUdHTXg5VnV5Nk9yMXdIbGxIV3U5d042Vkt1OWxJS1hxYStVTndKUmpQZFNUcno2bnJhMFMxVUVLUU9WNVo1L29SQkRRZ3A3Z3lOb2lPV1dscG9TMnBXaGJKWXNPUWp1OGJxaGRsbk9oWDh0V1I3anN2Rnc3czZ6ejZJUzJDRncxQWVndnFXYVRYNmRSd0JLaTBPZnJpWWhadmZsSmhqQXh2MXEyT3NMTVY4M21yOU9DcEFRbWN0b2RKVVRlYlIxbkpLbTZqblF3ejZCV3l1YlVkcmluQXFkbWdIcngrSk1sQlpzZ1YvV0E0THEzZlB4bEZDU2Nlb0o3ZjNRRVovS2Rxak9YSXpwQ1U2azZuZ3ByYWpTS2tuMldkZm9MMnBpdnNxNU5nMlpiQWd6M1BKcGtxK3FGRWFRbDZkVVBTVTR2OVVsai9PUFY0UXhGL2xUZm9qYjgwSHVHeG9NVFpvU3BKMitwWUhsOGpXRkxUV2JjOGJVRU9mSmJKMTZBRVNPSmwxcEljQVozRTBYYTF6cWZRajVDT3dlVUtnWXBNOWNYczR4ZXJWRERWZUVlZ25MSTZsZHEwakdmNUYrUE9nQ0t3UENBVFh6dDE4aEtLT2tkU24wSFVPTWVDUmZlV05Ld0paRkx4ZmZQdEhHSVVlNzBDME9ISGdLRnJPT0hPb1h4cmltMkFMTlJPR3IzVVJkTWZtMzdPZ0JVTTRiUGZXN1pzRHM2akR0MUlyUEtQbzFJTW5ENXc0cnNxZTBySXAyNWI2bzJ2T08vK00ycmZqRUdpdlNBKzYrT2hiR3NDeXR3R2ZSZ0RVR0pGZ09HTFJsOEFIZXkzTWp0dzgrbEYxczZqd2xwNDRhSWFsWFEzSzA2SnNQVWtpSjg1SnVIUkFPUGp4Nm9pek1CSHlHMk9vUzlQQXlXc0d2VnA4NG5JYWdRTmI0NmozTWsrSEJyeUUxQ2ZhcHd5OUJFdDR4WVBRVjRrSUpPUHlwUUZCMFAxVzdUaHZrQlpsUjhFbGNXTG9SOWtsYkRxZjBCbG45Q1kzN2lnN3RDWGJDWXlKYXRWbGxoRTZGQko0ZVpFeDN6RzJBR3l6KzBWMkllb0YwQmtVMHVCektBbjJMd09wYW1rM2g0U3ZEbzZLd25ZWTJoVklPS2dFMEt0S21BWFZ0VzZUY0RzV1NjamtzT25ocEpvVUtqam9TK3ZnZlVTSEpFQWg1Nlh2Vm5EMEMzNlZpZ05JeUtGc0Fxcm5vZG5SYnM2dFhJMWxxR0owYVh6SHRPU3NlWFJ5bHV2aE1ES2VvYWdWVTY3OGpNdWtYblVMWVJFc2dpdUpqNXlmbWRrOUZPVEkwNHlxc3lzN3F4dFJQc0pKU2hBclZTVjBtRmhlUFdyNjI1NnQ3UHFobnZaRStiQS93MXFidEtuU2lpSnBBY3lPa2dJdUh0VkRjSlJ5YzVNc0dUbVlaeUZFOXhERFd1RVFvb3RLUTZkYml2WmZNcGJWVEc4VHJZcitvMWRKeW1XK0NsS3ZQQUhnWTBKamtxNExFdWRVMlRyb3I1T0tzaVZoeUtlckRQZm5aV1I0eUJST0tDdDhIUzFGUSs5UXNJTWhuOGRqOVZxaVBSWjFDSHRhb1hxQVVKVDlQdnFDRFJnSE5XaTRUU3IySkk2cUVFYWhrZFdWUlAyYS95QSs5Y0RXUU83ZkhMdnBPNEJFL1NNYnNkbWVXVnRCc2NNSlVIWWEwVEkvNkMyVk9IWC9Ec3dPVzRiNGNCTzRvOE5rblFxOU5HTnBOYTNsL2ZLTm1nTTJNQTF3RjhWVkt4TEFSdEZhYkZlQ1BCQ2srUEwwbUszdTVmK1g2dDE0TkNXSHkwQjZScXFQcnhkVjkxM00ybnhuWHZ0OEh5NiszVjRNWUFqclF5bksvRGpKTHdFUnRRNitmNHE5cml3TkpmeTRkcFpLVVpNWVgxdFQ3R1VjeThaVldoYTBvSkJwQWtMY0dpdWc2NURHOEkrdDBOREV2S2YrbjNWRFMxMzZvU0VnUk5iWVhQK1Q0Y0hjZ1QxZEdpWHNKUWxCZkkzWGNtMGRUT05QeCtIY1U2VG4zZWhvcllweDZOaVNUZjJ1a0RNSnZPVm1vZlVJQ3ZYN1lCWlZicFZjRU9VZTYxSjQ0Q3VNeXhtMTd0T1BoczlCYjZCQXA4OUlPS2FXckMwV1pQbDNnRjE4QTRSTmRhOEJLbzYwZFBIUytONkFFbHN0TzJWd096V2FEWHVRdHZYMi9JMFVTR0tOUGlpam9CSDFHRW9LRWVHUThFOFJIeGFxV2FSQmpMa1Z3UlBML3FCYTVOT3h3NGYvMCtEWlYyZWxFbEFSYUVFb1BNVTlwUGhPRmR1Vi9mWDdVQTJUMEJXM2o5SmloU0xFMUNGOXV1T3ErbDN4UVE5QnQrNXRhdnBqQVUzMmc2RTN1Zkw3MEhVYmtNUzBWMHhLNytvL2RUcjU2b0k5ZjhHeFJsVGhFK1RTNVNwZThoUVlwcTRPblJ2VjNTUUQwL3JFWlFYd3h4YWc3dW5Jb1FKQ3BmcUtYNjg3c2ZqbjZ6Q1c5YThBc29kWmR5R3JRaDlYRWRXK2NLY2xUYnNrNEdBYTZPV2ZTTVl1aFg2YWh6WDRwMWZCMGdJTWFBQ0l1U25UbXJaQnJIZk16NzJWZmxXZFJ2dEl3bmRYM2ppZkRxYW1OcUtNQUlUT3R3SWlLVm1OK1cvWTZDZkdndmFnOTZwUFNNNEg2U0Z5eUR3TlUwNS9DQ0FkRFdXWkNzTGR3dWNhSGZ6aFdDVHFxb2s2UWhNVmo4aGJoQytwYWpYeUtoQmhCMVdPZ2IyTGdWbkZ3cTRrNlRxczR0cG5hdFhaWitwWWM2NS9WZHNhNU9DNkpsbU9oY2xVZ3JhYWNDa0dvK2VUMmpBeEszMnM5WDBMbU5kRmpOZ1JObnBwcnlROGR3MVN5Y1ZDTXNQREpKa0xYRnFaTnhPakx6MTYvTWNnaUU5ZmVWSVJ3ajV0VDlOOUN1dGhqZzZ0MTRBQUFCZzJsRFExQkpRME1nY0hKdlptbHNaUUFBZUp4OWtUMUl3MEFjeFY5VHBhSVZCVHVJT0dTb1RoWkVSUnkxQ2tXb0VHcUZWaDFNTHYyQ0pnMUppb3VqNEZwdzhHT3g2dURpckt1RHF5QUlmb0E0T1RvcHVraUovMHNLTFdJOE9PN0h1M3VQdTNlQVVDOHp6ZW9ZQnpUZE5sT0p1SmpKcm9xaFY0UWdvQjg5Q01qTU11WWtLUW5mOFhXUEFGL3ZZanpMLzl5Zm8xZk5XUXdJaU1TenpEQnQ0ZzNpNlUzYjRMeFBIR0ZGV1NVK0p4NHo2WUxFajF4WFBIN2pYSEJaNEprUk01MmFKNDRRaTRVMlZ0cVlGVTJOZUlvNHFtbzY1UXNaajFYT1c1eTFjcFUxNzhsZkdNN3BLOHRjcHptTUJCYXhCQWtpRkZSUlFoazJZclRxcEZoSTBYN2N4ei9rK2lWeUtlUXFnWkZqQVJWb2tGMC8rQi84N3RiS1QwNTRTZUU0MFBuaU9COGpRR2dYYU5RYzUvdlljUm9uUVBBWnVOSmIva29kbVBra3ZkYlNva2RBM3pad2NkM1NsRDNnY2djWWZESmtVM2FsSUUwaG53ZmV6K2lic3NEQUxkQzk1dlhXM01mcEE1Q21ycEkzd01FaE1GcWc3SFdmZDNlMTkvYnZtV1ovUDhhN2NtTHcwWHh2QUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDVBY0NFQjhmQlZ4SHRBQUFJQUJKUkVGVWVOcnNuWGw4Vk9XOS85L1BtUzA3a0lXd2hNVUVBUkVFcEFXMEltb1JwWXExaUZXdy9rVEZ1clNpWGNDNjBOcUNYYkQxdXR3cVdtcXhyZEQySXJkWHNiVEk5WXBMQ3lpaVV0a0RFUklnZXpLVFdjK2M4L3orbUhNbUo1TUppeUlrOEx4ZnIvTUtaQ1l6a3pOblB2bnVYL0g5cjEzQW1xMVZSSDE5R1RieFp1WmQrQUczejF0RjBSMnJXRHR2R0ZETGlobmptTGRoSElzK1dNNzBQS0Q4R2E2NDlGSEtMMTNNOW1jbjA0cWZGYlBHTXUvTjBTellzSndiaXV6dlJ5bGZzWUNIRnIvQzVqMEJmSVZuTWY3bWU3aW1iZ0YzL0M3S3pHVWJXVGllTGtrNEhPYkFnUVBVMU5SUVYxZEhZMk1qVFUxTkJBSUJXbHBhQ0FhRGhNTmh3dUV3MFdpVWFEUktMQllqRm91aDZ6cTZyaE9QeDVPSFlSakpyNFpoWUpxbTg5L0NORTJjaDVUUy9pcWtsTmdISUZLL0FrZ3BoZlhTazE5VHZpZDI3ZHBWWEZCUTBOdm44eFc3WEs1aVRkT0tORTByRUVMa0F6MkFQQ0ZFSHBBTlpBR1pnTmM2WElCbVBaNEpHRURNT3NKQUNBaEtLZjJBWDByWkpLVnNrRkxXRzRaUnArdDZkU1FTcVRsNDhPREJrU05IMWxpUEl4MUh1LzhMSVZKdnM3OEhJSVVRN2I0NkRxbHBHa0lJTkUxTFBhVEw1Y0xsY3FGcEd2YS8zVzUzOHF0OWVEd2UzRzQzaG1IUXZYdDNmRDRmUHArUHpNeE1Nak16eWM3T0ppY25oOXpjWExwMzcwNlBIajBvTEN5a1o4K2U5T25UaDh6TXpHTzQ2dnlzbXp1Sm16ZFBaZFhhK1F4RGtZcDkwYmVlc2hXekdEdnZUVVl2Mk1EeVZtWDZISWl5YnM1WWJsNVZ4QjJyMWpLdmk3MDdzVmlNQXdjT2NPalFJZXJxNm1ob2FLQ3BxUW0vMzU4VXRGQW9SQ1FTSVJLSkhGSFFuR0xtUEV6VEZMYkFwWWhaR3lHenhja3BVcW1DNWZ4L1RVM040SnljbkVGdXQ3dE0wN1JTSWNSQUljUUFZQUNRMFVsT2N3VFlKNlg4eERUTkNzTXc5c1ppc1QyTmpZM2xBd1lNMkowaWNQSXdndGRPQUczaEUwSzBFVHBOMDJTcXlGbkNsaFE1NStFVU41ZkxoV0VZNU9YbDRmVjY4WHE5K0h3K01qSXl5TWpJSUNzckt5bHdlWGw1ZE8vZW5mejhmQW9MQytuVnF4ZDkrdlRCNi9VZVZ0QzJybmlSbDk1Y3hZcFZsUXhiOENyTGJ5aFJLcFlHZHkzUWFsaHRaZkh2MWhQakxDNGNYM1RjQkd6ck0zTlpWaktQK1ZOTDhObmZMVi9CNG5VQjZEdVZTN3VZcU8zZnY1OURodzVSVzF0TGZYMDlqWTJOK1AxK0FvRkFVdERDNGZCaEJVM1g5YVIxbGlwcTZjVE10c3BzWWJQL0tLVVJzamIvMzdWclY4OCtmZnFNOEhnOEkxd3UxOWxDaUxPQnN5RDVWblJtTW9EQlFvakJ0cEI0dlY1eWNuSXdUVE1LYkROTmMyczhIdDhhRG9jLzNybHo1OGZqeG8ycnN5eEZLUk1uU3RyL2Q0cWNsRklLSWV6N0pBWE9NSXlrOVdaYmM5WWhPaEk1cDdDWnBvbW1hWGc4SGp3ZUQxNnZsM0E0ak0vbkl4UUtFUXdHYVdscElSQUk0UGY3YVdwcW9yR3hrWWFHQm1wcmErblZxeGY5K3ZYcitMTzA2Z2wrdDc2SWNUYy95Wk5LMURxMjJJWmNjRDJUSnc2amlGbzJyMXZEQjFWUWV2TlNWczRmVDk1eGVZcEtWc3lheHJ3My9mUWROWkdKbzB2QXY1WDFyMnhnVDZ3dlZ5NWV5Wk9UaTdyRXlhcXVybTduZGpZM055ZmRUcWVnUlNLUmRvSjJCQ3ROMkc1bmlxQ0pEcXl5ZGhiWnRkZGU2MXF5Wk1rWE16SXl2dUJ5dWNZSUljNEZCcDltMS9RdTB6VGYxM1Y5czkvdmYvL3JYLy82Kyt2V3JUTWQ0cFlVT1NHRW1jNmlTMmZOYVpvbTAxaHh1Rnl1TmlJbnBTUXJLeXZwbmpvRnp1djFKcTIzek14TXNyS3lrdTVwdDI3ZDJybW54Y1hGU3FFK3JiQjkvNmF2c0c3OU51cklwYkJzTkZOdm5zYzkwNGNkSjFHenFXWDlpMCt3ZU5rNk5wZFhFYUNRMHZHVHVmbWVlN2hoZE9jWHRlYm1acXFxcXBKV1dqcTNNMTBjVGRkMVlyRlkwa0pMRTBjVHpqaGFHc3RNcEltWDJWYVorTjczdnVkNitPR0hML0Q1Zk9kcG1uYStFT0k4SUVkZDFtMW9rVkt1ajhmajZ3T0J3TWE3N3Jwci9WLys4cGQ0R3FFem5hNnJRK1NjY1RtWmFzbWx4TitrbEpLTWpJeDJzVGV2MTVzVXVJN2liMDczdEtpb2lGNjlldEczYjErNmRldW0zc1hQR21OVHRLTHJPdnYzNzI5anBUVTFOU1d0dEtPSm82VkxEdGlDbG1LZEpkMU1oMFdHVThpa2xGcERROE93bkp5Y2kxd3UxNFZDaUltQXV1cVA4ZStVYVpwdjZicitkblYxOWRzREJ3N2Nib2xiTzZ2T2FkSFoxcHZ6MzNhQ3dTbHlVa3A4UHA5TWwxeEl0ZDdTeGQ5czY2MTc5KzV0ckxkKy9mcmg4WGpVdTZlRTdiTng2TkFoS2lzcjJ5VUhuRzZuTFdxMmxXWmJhRWNyYUlaaEpOMU0welE3RkxOUUtIU3gxK3VkcEduYUpHQ0VlbmVPSy8rT3grT3YrLzMrTndvTEM5OG1rY1UxVThXdUk1R3prdzIydXdyZzlYcVRGbHhIQW1kYmNMYjFab3ViMHoxTlRTNlVsSlRRcTFjdjlZNHBZVHQyZ3NFZysvYnQ0OENCQTFSWFY2ZE5EaHlwZkNQRjdSUXBpUUduZFNaU0xMU2ttSVhENFNsZXIzZUtFR0lLMEZlOU15ZUVLc013L2hFSUJOYm01K2V2cGJWY0phM0lPV055dHFzSzRIYTdwYk04eEJhNUkxbHZxZTVwYm00dWVYbDU5T2pSZzRLQ0FvcUxpK25UcHcvOSsvY25PenRidlZ0SzJJNk8vZnYzSjYwMFp5d3RYWElnTlphV3hrbzdrcUNKMUpoWk1CaTh4T2Z6WFNXRXVGS0pXYWNRdWRWTlRVMnJpNHFLYkV1dWpjaWxXbkgydngzdWFUdUJjN3ZkSFFxYzAzcExUUzZreHQ1S1Nrb09rejFWS0dFREFvRUFuM3p5Q1ZWVlZXMnN0T2JtNWpZMWFVZFpaQ3RzMTlOMk53OWpuV21OalkzRGMzSnl2cVpwMnRXZ2FpMDdLZHRpc2RnckJ3NGMrRnRwYWVsV2g4QVpEcEZ6eHViYVdIRjI5dFFXT1V2WVpEcjNOTlY2YzlhKzJabFQyM3JyMjdjdkF3WU1JRGMzVjcxRFN0amFXMmwyZ2lCZHhyT2pFZzViMU5JSm1yTkx3Q2xvdHBpdFdyVXFZOUtrU2RlNjNlN3BRb2pMMUdYWWRUQk5jMDBvRkhyNXFhZWVldVhCQng4TUEvR09SQzZkd0RscjROSUpuQzF1SFpXR3BHWk83Y1NDc3Q2VXNBRVFDb1hZdTNkdnV3U0JiYVcxdExRa1kybEg2Qnc0bktBSnA5dloxTlEwSWpzNyt6cE4wNjREMUpYWXhmOG02cnIrMHY3OSsvODZhTkNnYlE1WDFVaDFWUjBDSjQ4a2NCMWxUdTNZVzA1T1R0SjZTMDBzbkhIR0dXUmxaYWwzNW5RVnRvTUhEeVpkejVxYW1qWUpnaVBWcFRsRUxhMmdXUVcxYmR6TlVDZzB4ZXYxemhCQ1hLc3V1VlBTaWx2WjFOVDBVbUZoNGV0U3lyZ1F3aWx3aHRPQ3M0WE9HWWRMRmJpT1ltL3A2dDVzMTdSbno1NUoxN1IzNzk2bi9YdmlQcDErV2NNd0tDOHZaOSsrZlJ3OGVERFpFdFhjM0l6Zjd5Y1lEQ1pGTFJxTnB1MGVzQVhORVVkTEsyZzMzbmlqYThtU0pUZTYzZTRiZ1F2VXgvL1VSZE8wYWZuNStkTmlzZGc3TzNmdS9QTXR0OXp5MHNhTkcrT1dtMnBJS2R0bFZnM0RrS1pwU2szVDdGaXNkSllFeGVOeDZTd1hzajBFWnlqRS9xTnIveEVPaFVMSmRxMnlzakpjTHBjU3RsT2RwcVltOXV6WjB5YnI2V3lKT2xLeGJScTNVemk2QkpLQ3RtblRwdHdSSTBiTWNybGNONkZxems0djkwZUlMMlZuWjMvcFgvLzYxemNqa2NqeVpjdVcvZVcyMjI3elc5WmJ2Q09CazFKS1I2RzJVK0JrYWd1ZXM5ZjRTQUpYV2xwSzkrN2RsU3Q2cWxKWldVbEZSUVdWbFpWcGE5UFNGZHNleGtwTEcwUGJ0bTFiajdLeXNsdGNMdGN0d0NEMU1ULzlNQXlEeXNwS0Jnd1lZSCtyUEJLSi9PR1ZWMTc1ODNYWFhkZG9XM0QyWWNYZ3pIUXhPR2ZkbTlNOVRTMExzWXQ2MDlXOGxaU1VNSERnUUVwS1NwU3duVXBJS2RtNWN5ZWZmUEpKc3VEMmNGblAxQTZDRHR4T084dXBTU25GaHg5K21IZldXV2ZOZHJsY3M0RXk5ZkZXd3VZUU5wczk0WEQ0OTMvNjA1K1czM3JycmMxSEVEalQwWFNmMnJrZzAzVXNkSlExdFF0NkJ3d1l3T0RCZzdHNkpaU3dkV1VDZ1FDN2QrOU94dE5xYW1xU1dVOW53VzBIcnFkSWJZVktzZEswK2ZQbnUrYlBuLzlObDh2MVRWVDkyUWw4WXc5QjlRNW9xSUJ3VStJQXlPeWVPUElIUXZFUXlPM1ZtWVROL2tPN0xSUUt2ZkQxcjM5OTJlclZxMk9Xd05raVp6b0V6a3kxM3B3QzUvRjRaRWY5cHM1cElmbjUrZlRzMlpQZXZYdlR2MzkvQmcwYWROclV2SjJTd2xaZFhVMTVlVG43OSsvbjRNR0Q3VW81VXVOcHpvQnNPcmZUVGd6WVdjNUlKSEs5eCtPNUV4aW5sT1lFMFZBQnU5Y2x2aDROK1FOaDBNVEUxMDRpYkE2QjIrajMrNWQyNzk3OUZTR0VuaUp3N1Z4VVJ3ZURUTFhlVW12ZVVndDY3WktRM3IxNzA2OWZQOHJLeWs2TGNVaW5YUEtnb3FLaVRaTEFucHZXVVR6TmFhWFpnVm1uMitsSURHaWhVT2dTcjlkN2w5WHlwRGhSYlBrclZIMTQ3RUs0c1FMNmpvSVJYKzFjMW9RUVk3dDE2emJXTUl3cmEycHFsdmJ1M2Z1ZlRvRkxUVExZQ1FacldJSk1tZDluLy8rb2tneVJTSVJ3T016QWdRT1ZzSFdWZU5xT0hUdllzMmRQc2pYS0hqUFVVVHl0QTllem5kdlowTkF3T0M4djcxdENpRHVVeXB4QTRoSFk4RUxDL2Z5MFZIMlFjRmZQdlE3Y0daM3ExOU0wN1N1OWV2WDZTaXdXVy9MeHh4Ly9mdlRvMGVVT2diUExSQXpBTkUzVHRQZGIyTmxUdTJYUEtXNnBJbWNud0ZMRkxSS0pNR1RJa0ZNMjduWktDRnM0SEdiSGpoMVVWRlMwNmZlMDY5TTZpcWVsV21tV3FDWGR6bG16WnJtZWUrNjV1MTB1MXh4QXpXRSswV3hZQ29IcTQrUEd2djluR0h0VHAvdzFQUjdQN0ZHalJrMEpCb1BQVHBndzRmZWJOMitPQWJwbHZXbTJpeXFsTk8xeDVsWUNTenFISzZRS1hMcFNFV2ZZeFJhM1kxc2tvNFR0aE5EWTJNak9uVHVwcUtoSURvUjBUdVZJVjU5bS9SVnppcHJUU3RPa2xDSVVDazMyK1h6M0FsOVdDbk9TM00vaklXcE9jZHZ5UDUzT0xYWFFOeXNyNnlmdnZ2dnV4VFUxTlV0NjkrNzlsaEFpNW5CUEJhMDlxVExGZ25NS25FeTNGQ2lkZTJwWEFRd2VQSmdlUFhxY1lzTG1YOEdNVWZQWWtIc052L3Z3VVNaMm9SZGZYVjNkcHB6RGJtSlBWM1RyS09VUXRubWV4a3JUS2lzcmV4VVhGOStyYWRwM2xMcWNKQm9xamoybWRyUnVhZCtSSnpTaDhDbmMwNHQ3OWVwMWNUUWEvZlhycjcvK3V5bFRwaHl5M0ZQTktYQ0pYVFRDN01oNmM3aXFISTJiT25qdzRGTXFxZEJsTGJiOSsvZXphOWN1UHZua2syUTVoN09USUYyU0lOVktNd3pEYWFWcGtVaGt1c2ZqK1E0d1JxbkxTV1RYRzYzLzFnL3gwSS8vd2JJR0dEZmo2eXlma0FrWVZINjRpWWRlM2N2NnlnaGtaak42NUFqbVRSL0NhS3NIUExwL053dFdiT0dWdlg0Q1pGQTZ1RDkzVEIvTDlOM3JZT3pBVG44S3ZGN3Z0eTY3N0xMejYrdnJueTBvS0ZndGhIQlo3cW51aUwwSlovd3RqY0IxR0h0THRlQnNnZXZ5VTBMODVheDdaUm51U2FQbXNRY2c4QkkzbDY1ajVrc2JXVmkybFJjWFBNVGlOVnVwaXZyb08yd2lOODlmeUMyajh6ckZheTh2TDJmMzd0MUpVYlBMT1ZLYjJEc1NOV2ZHVTBxcFZWZFg5eXNvS1BpdUVPSXVwU29ubWNBaGFQd2srZCt0cjI5a1JVUEt0ZnZ4djVqeGJEbFZlQ2dkV0l5dm9aWU42OWN6b3g3V2ZtY0lKYzE3bWZQNE83d1doc0xpWW9iUnpJYXRPNW4zZUl5OEg3cVlmTmFoazFMbmRxd0lJVWJuNStjdmpzVml2M25ublhlZXYvamlpeXVGRUpyRFBZMWp0ZkxaazBUc3pLbFQzSnhiejV6TGcrellzbk80UXl3V282eXNLOWFabDdOaXpod1dyZG1HMzVlTGUrYk1DL25kc2plcDhwWnk2UTNYY0dtUm4zVVB6V0wrS2o5OUw1ek9IU1hsdkxKc0ZRdG4rY2xidTVUcEozbXAxUGJ0MjVPRnQ4NmV6OE5rUG9XejE5TlJsNlpKS1VVa0Vwbm04WGkrQjN4QnFVcG5pQzlzYi8xMy9RNFd2TnBJTE9VdVc3ZldFczNMNXNJckxtZnBoQndJN1diV0Q5N2h6YjM3V0I4YXd1U0tmV3oxWk5CMzJGaFczbm9HUmJUdy9LS1hXRmhSeGFxOU1MbStva3NJbTQzSDQ3bHQ0c1NKWTJwcmF4Y1hGUld0c1dKdm1pVnF0dlZHd25DVHFkYWJTSW5Ea2VxaU9qZW4yUUkzZE9qUUxuYmhSS0hvR3VZdm44cmt2Qlc0YjVsM0phOHRlNU1xMzJobXpyK1RpWlR6VEhrZFVNclVlZk9aTnl6S3BXY3RadFdlWFBMOE9MWXJuMWlrbEh6ODhjZnMzcjI3emNKaWUydVVQWmtqSlVtUUttckplTnIyN2R1N2w1V1ZmVi9UdEhsS1RUb1I5UlhXUDJLcytlc0hiS0FINHdhMnNLRkNUOTVsL0xWZlkyTzZBVkFlTDNrZXlCczVrYmRHcG50d0Yza2VTendIanU5U3AwVUljVzVoWWVGemtVamtpVC8rOFkrL25UMTdkcU5sdmVtMGpzZ3liRUZ6eHQ3c1FhZE9jVXRkKzVnUXVTaE5GZS95NXlmMlVqanJQM2xzNXRsZHFCeGtHTlBuRDdPTnQzUXh0akltWGptS0o3Wjl3T0lyeDdKbTFIakdYM29OTSsrWnpMQ1Q1SW5xdXM3SEgzK2M3Q1pJTGJ4TkxlZXcwdG1wV2M5a2dpQVlERjdvOC9ubUNpRW1LeVhwWkZndFV0RzltMWl3S1VMZkN5WnljM3hkRzJHenFmMXdFd3ZlYTZaMmJ4VWI0aGxjZU8wb0pqczMxQjNhelVPdlZsRlpmNGoxRlJwOXg0emxqc0ZBUE5wbFQ0L1A1N3ZuNXB0dlBudlNwRW5QRGh3NDhGMHI5aGF6WEZNaGhEQVNobHByM00zcG1xWk1Fa2tJV3p4QzNkNHR2TDUvUHdmOEp1Nk1Ya3lkdklNUFA0eHo5dGxuZDhtMWYybVRCOFB1WE03YTBTdFl0dXcxMXExZng3SkhYMlBaNzY1azhkb25tWHlDeFMwU2lhUVZOYnZ3TnQwK0FvZWxsdXA2YXJGWTdIYVh5M1VmMEVlcFNDY2swZ3cwOC96eTNWUmw5dU9KcTN1UnR5TDlYZjE3OTdGcWt6L3huN3h1REN0T3FjZnkxN0ptVXdWMUFPNXNocDNSTGJFSS9MTVUvSFlDTkUyYk5HREFnR0Yrdi84LzgvTHkvZ3hvbG51YXROeHdKQlpzajhleTNvVGxzbUthVVJxcnlxbHRDcU9qNGMzcnlhQnpoelAyM0hNNFM2dGc1ODZFcTNyMjJXZVRrWkhSdGM0UmdNL3lVYU5Sd0wrZVorYk1aZEZyZWN4OGNpbXZibHpMUTZPQXVuV3MybnhpWDF3d0dPU2pqejQ2YkoxYVNseE54R0l4WWZkOFdtYTJacHFtVmxWVjFTY2Vqei9tY3JtZVVLTFd1YW45MTBZV1Y4SzRxOGN5OVRDVHJzdXUvaHA3bnY0R0crNDlpN05DMVN4KzlsK3NDVG51TVBnOE5qNTlFOXNXWE13MUJVRmVXL0U2aS9ZYXA4cHA2cE9ibS92VGFEUjYvNnBWcTBxa2xCbldSOWtMZUtTVUxpbWxabC8vVmd4TjJONU1KQklSNFdBejFRMGhvcVlnbytnTVJvNFl6QmtGR2VqTk5SdzRjSUNLaWdwMjd0ekpSeDk5UkRBWTdHSVdtNitJdkZ3Z3NJWUYwMlpSdm5BaGViVnJXTFZxSFZzclAyQnlTUzNyeWdGdkdhTk9ZTElrRUFpMHNkU2NMVksyb0RuSGQ5dXVwMVdmMWlickdRd0dKL2g4dnZ1RUVKY3EyZWprWkJpcytMOERCSUFOeTEraWRIbnJUUnVXLzRVSis3L0NxNWQ1cWRWZDVCWGtVT1J4VVRSNEdOZVViR05oUlMwYnFtRmlmZ3VWWVFOZlhqZEtzc0JYMEorWnc3SjVxVHJJNXAwdGNNN2dVK1owZWIzZTJWT21UQ25kdTNmdk0yZWNjY1o3VnR6TlRpd0lJWVJobXFacEwzaHVHM2R6aVc3ZE1tVkxNRUs0ZWpjYmF6OGh0N0F2WldjT1lxakRYYldQczg4K3U4dE1CM0hqbThnOTg2OWs2NEkxN0NrdnB5cGF3cDFQTHNYLzBBSit0KzUzTEk1NUtUenJVdTZZdDVCYlRsQlRVWE56YzFMVTdHYjIrdnI2ZHU3bllUS2Z5WGhhTkJyOWh0dnR2aDgxL0xGcmtObVRzalA3Y0tFajVGRmJlWWh0ZnBQYzRtTEdueUZZcy94bDVtMkZjVE8reHZJSk9SQnE0SU1HQUMrRm1WQzUvblV1L1o5R2NzZGN6RnUzOWllUE1PWFZZVUFqTDgvYjZYcEdqNE5yZXNtQUFRTUdORFEwUEpXZm4vK0s1WnFLRk5jVVo5ek5Gam1QSjFOMEwrd21QZWdFQTM2YWF6L2hnOW9xYXVPWGNxSFYyZURzVVQzNzdMUHAxcTFiMTRpeGxVMS9rclhUbmQ4ZXo1M1B2c3FkSitFRk5UVTFmV3BSY3lRSnRGdHV1Y1cxZVBIaUgyaWE5aUNuMlc2SExrM0JjQ1pmZXluT3JNNzYzLytabWVzakRMdGtJbytlbDBtdHB5K0ZXL2V6WWZuTFRIb3ZIMTkxTGR2OGtIdm1FS2IyZ2hMUEVNYXRXYytHVGV1WVZGMUVtZDdNaG1vVDh2b3hjMWdtRkE4OTVVNmJFS0tzUjQ4ZXZ3eUZRbjNHangrLzVLT1BQdEljMXB0dWlWa3k3aGFQeDl0a1RLWFhLM01LZWxQWUcyTEJJTzVvTTQyTnliS1JOc2ZaWjUvZDZVZU9kNm9QZkdOajR4RkZMWjM3bVpva09IVG9VTCtDZ29MN2hSQ3psVkowTVlxSEp1YXVIWWFpTDB4a09adFlzR1l2NjNkVlEyWWU0eTRZd2Z5ckJ5VW1GUlFNNGRsN1hTeGFzWVUxZTZ2WlFBWm5EVHVMTzZhUFlXbzNvR0RncVhyMjNKbVptZlBlZSsrOTR0ZGZmLzAzbDE5K2VhVnR1Vm5XVzl5K1k3cWtRdUtMajh6Y0FqSmxDODNONllYTkZyZk8zRi9hYVFaTk9rWE56bjdhb3VhTXFhV3gxT3pXS00wMFRSRUlCTDZRbVpuNWdKcVoxb1hac0xSTjk4RnhwY2NBR0RmcmMzbm9veDAwZVNJd0RHUDF6cDA3Rnc4Yk5td0xFTFd5cGpxUVhBK29hWm9VUXBqV2RGNXA3VlNRenBIajlrVGU3dDI3VTFCUVFLOWV2WklES3p1enVIVUtpODNwZnFhSzJ1SGNUNnZmTStsK2hzUGh5N3hlNzRPb3liWmRtek12Z28wdmZINlBmUnJnY3JtbURCMDZ0S0N5c3ZMcGtwS1N0NnhFZ20yNUlZVEFtVlN3ZzI2dGxsc3lGc2ZoakovaHc0ZDNTcmYwcEF1Yk0xSGdGTFhHeHNhMEV6cFMzTStrcUVXajBSbHV0L3RCNEV5bERGMmMvSUdKS1J6SGU4SkhKNS9zOFRuRTNjYjI2ZE1udjY2dTdxbkN3c0svU1NtZFNRVWRSMUxCSVdEU2NsM2JxVms2Z1JOQ01IejQ4RTZYVURpcHd1WXM2WERHMUd4Uk81ejc2UlMxV0N4Mmg4dmxlb2lUMXZDbE9PNk11QnI4aDQ3ZlRMWWVBeEtQZVpvaGhCaFVVRkR3VUZOVFUwNzM3dDMveTJHNXRRbEYyZUlXajhmVGlsdEhvbVlmSTBhTTZGU2xJQ2ROMklMQllJZUpnalIxYXNLNTQ5TXBhcnF1ejlVMDdTRWdRNm5CS2NhNFdjZG5pbTZQQVREbSt0UDVUQloxNjladGZrdExTM1pPVHM3dm5XNnBVN1RTaVp1ZFhFZ1Z0RlJoMHpTTkVTTkdrSjJkM1NsK1llMWtQS216VGVvb3NwL0N1VUhLanFrOS9mVFRIbDNYZjZocDJrSWxhcWNvN2d6NDBoMEpGL0t6dUovalpwMXl0V3VmZ296czdPd0hRcUhRN1ZkZWVXVzJvMVBCQTdpdFRnV1hhWnJDTUF6aDZGSWdHbzBLKy9NWURBYngrLzAwTlRWUlgxL1BvVU9IcUt5c3BMeThuSTgvL3BoSUpOSXBmbG5Yd3c4L2ZFS2ZVTmQxL3YzdmY3Y1pQZVMwMUZKaWFzTGV5RzRuQ3FTVTR0MTMzODM1eWxlKzhpTk4wMzZnUHYybkFjVkRFN0d4VUpQVlMzcVVWdG81VjUvUUtSNVNTdngrZjZldThmSjRQT2RObXpZTmw4dTFkZDI2ZGZFT3BuZklOSWtEa2VxU09wcnMyeHhGUlVXNFhLN1RSOWlrbEd6WnNxV05xS1hiSkpVNmRzZ3BhanQyN09neGRPalFIMnFhOWwzMWlUK055T3dPSmFNU0l1ZkxTVGhLbmd5SVdUMk11Y1dRWFpnUXNpR1RvUFNDeE0rY1FMcUNzQUc0M2U2eDU1OS92aWd1THQ3K3Q3LzlUWGRtUmpzU042Y0FPdXZaVWdYTy9scGNYSHhTUng2ZDBCaGJSNzJmVHZlem81SU9LYVVvTHk4djZOKy8vNE5DaUx2VkovMDBKYmRYNGxBTmNwOEpuODkzKzIyMzNhWjV2ZDRsdDk5K2V5MjB4czRjVnBsaEdJYnRhYlZKS0RqamE4NDRtOHZsd3Q1YVAzejQ4Rk5mMk96SnR4Mk5IanBNOFczU1VsT2lwbEFjVjNHNzdhYWJiaUlhalQ0M1o4NmNCcWRsbGs3Y2NHUkxPeEsyVkhFN1daTjRUNGdyV2w1ZW50d21kZkRnd1E3SGVhY3I2YkJqYXBiN09VZGRqb3JPU2xkeFJWUGMwakVqUjQ2VVFvaC92L25tbTRabGpiVnpTMVBFcmwyOHpYa09uTzZweStVaVB6Ly8xTFBZOXUvZmY5UXh0WFIxYWs4Ly9iUm41TWlSRDJxYWRvLzY2Q2dVeDUrTWpJemJIM2pnZ2ZpbVRadWVYYjE2TmVrc045TTBEV2d0QmJIS1JlVGgzRkdYeTRYVnBuWEN0MTk5cnNKV1hWMmRYSkdYdW5qbGNERTFaNTNhN05tekg5UTA3ZnZxOGxNb1BqOHlNek8vdFdMRmlsaDJkdlp2YlVGemlKdkVXdEpzK2FiSm1Kc1FRanJkVU9kaHU2TzJ1SjNJdmFXZm03RFpHOXFkN21kSDQ3eFRZMm9weGJjUHFzdE9vZmo4eWNySytrNGdFSWprNXViK2tiWlpVcGxheEd0L1h5U1FIY1haYkt2TkZyY1QxVFQvdVFoYk9CeHVJMnIyNHBYbTV1YkR1cC9XS085a201VFZVYUJRS0U0UU9UazUzMmxzYkF6MTZORmpwV1cxU1ZKaWJKYTRPUzAySVlTUXRxZzVCYzYyMkd4aE8rZWNjOGpNek94NndpYWxaTWVPSGUxMkZLUmFhdFkyS2VjU1kreUZLOUZvZEliVis2azZDaFNLRTB0RzkrN2Q1MVJYVndlTGk0di9MaFA5VjIwKzMvWlhlMkNsWmEyMXNkeWNGcHZUSmZYNWZJd2NPZkp6cjNFNzdzTG1GTFhVN0tlOTk3T2p5YmVtYVlwd09IeVpOYVZETmJRckZDZUhvcUtpb3J2Mjd0M3JQK09NTS82Wllyblo4VGE3OUFPSG9BbE4wMlJIY1RaYjJESXlNajczTXBEakttd1ZGUlhzMmJPSHFxcXFwS1dXNm40NnVncElLZXZRQW9IQUY2eDVhbXIwa0VKeEVoRkNET3Jmdi8vdG16ZHZiaG85ZXZUSGx1V1duTnNtaEdoanRaR1NJVTJOczduZGJ0eHVOMTZ2RjYvWFMwWkdCZ01IRHV6OHdsWmRYWjBVdGVycTZxU28yZjJmRHZlelRhdVVjNXgzWm1ibUE2Z2hrUXBGcDBEVHRDK09HREZpOXNxVkt4K2RObTFhbFVQY3BHTjJHNlpwbW5hbU5KM1Zac2ZhbkJsU2UwTHY1NVVwUFM3Q0ZnZ0VrcE02cXF1cjJ6UzFPMk5xNmNvNnBKVGlsbHR1Y1ZrN0N0UTRiNFdpRStGeXVTNi80b29yYW9jT0hmclk5dTNielJSeHN6T24wdDRxYjR1Yk01bGdXMnoyVjYvWG0zUkpzN0t5UHBjNWJwOVoyS1NVN1ZxbG5KWmF1cWIyMUF6bzRzV0xmNkFXcnlnVW5ST3YxM3ZqdSsrK1c1T2JtL3Q3UzlETUZIR1RxWmxTVGRQYVdHN3BTajk4UGgrWm1abU1HalhxdUNjVFByT3c3ZHk1azMzNzlpWExPbzVtVFY1S0J2UWJxbFpOb2VqYzVPVGszRk5kWFgyb3VMajQ3NENaeGkxdEUzT3p5ajZTNG5hNFdGdFdWaFpEaGd6cFBNSldXVm5acmxhdGcxWXAwbVZBZzhIZ0JHdVpzZHI3cVZCMGJ0eEZSVVYzYk4yNjlkQ3dZY1BldDZ3ejIwcHJseW1OeCtPeW80TGRkTEcyN094c1NrcU8zMGIyVHkwb1RVMU5hV3ZWT2hBMWtiS2xYVHR3NEVBZm44OTNIMm9BalVMUkpSQkNsQTBlUFBpV0YxOTg4Y0FOTjl4d3dPR1NKaTI0bFBxMnBFdWFUdGljNHBhVmxVVk9UczV4R3lEZy9qVDdHdzNUWk0rL3QxSzVldy9WKzZ0b09GUkRjMzA5Z2FabVF2NEFrV0NJU0NoRU5CSkJqOFNFcnNlSTYzRmhHcWFRTWlGc1BUM2hlYUpwMzZYcWNsR2NuRStwQmk0UGFKN0V3RXB2dGpvblI0SEw1YnA0MnJScEZjQlR0TWJiVE5Ja0UxTEZ6WmxJY0xxa3prVEN5SkVqajh2MDNVOWxzWlh2L1lUS3FvTlUxOVRSME5CSXM5OVBTMHVRVUNoTU9CSWhFbzBTamNYUVk3clE0M0hpY1NNeE5saEtJU1ZhckhyMzdVS0l1OVJsb2pocFNCUGlVU0FLc1JZSU5VSkdMbVRrMmQ2VW9nTXlNakp1cnErdnJ5Z29LUGdyWUhTVVRCQkNTRHZlbG1xNU9kMVJwN0RsNU9Rd2VQRGdFeTlzQjZ0cjJGZFp4YUhxV3VvYkdtbHE5aE1JdEJBTWhRaUZJMFFpVWFMUkdIcE1KeUZxY1JJeE5TbWtsQ0pZdGUxQ2w4dDFuN284RkoxTDZBd0lONEVlaHB5ZUNZdE8wU0g1K2ZsM2JOMjZ0Y0tLdDVrcGg1UlN5b1MyQ2VMeGVESTdHbzFHNlVqY01qTXprK1Vmdlh2M1BuSENGZ3FGK1dSL0pRY1AxVkJiWDA5alV6TW9NaklCQUFBZ0FFbEVRVlQrUUFzdFNWR0xFSTNGaU9reDlIaGM2UEU0aHRFNmdtajdodi90N3ZQNTVnSjkxS1doNkpURW8rQS9tQkEzbCtkemY3cDE2OVoxbWwvOW9vc3VPcGE3OXdadUF2YVNpTEcxRVRaQVdpVmRwbUVZeE9OeEdZdkZSRFFhbGZhMnE1YVdsdVMycStycWFxcXFxcWlvcUdEbnpwMlVsWldSa2ZIcFc4V1BTZGoyN3R0UDFjRnFhdXRzVVF2UUVuUllhckVZc1ppT3JzZUZyc2N4REJORFdpNG9pTEl6Qm54ZndHVDE2VkYwYXN3NGhPb1R1eFZPQUdWbmZyYSt5ZkpkMndIdzlmM2lwMzZNYU5XN0FGU2QrZVN4L05nbFlUTzJiVkQ1OTM5TFlxdThnWjFJQUNrUVVrZ3BNRTFKWEVMVWdHQmNhQ0ltTldKb0lvSkxoSENKSUc2WEg3ZXJDWStuRG8vM0VBY1haWEhHR1dkdzVtMGZmYXJmNTZqdDdmMVZCNmlzT2toTmJSMzFqVTAwK3dNRVdvS0V3bUVpNFVSY0xSYUxFZE4xZEQxTzNEQXdERk5JTXhGWGl4emNPVTNUdEhucVU2UG9NcGJiMGE3Nk80M0oxTHpmZW5mZ2p5ZVFtTVRqQTd5V3dlU1NTSmNFVFNLRmlSUUdramdtT2dZeDRrUmxuSWpVQ2Nzb1FUTkt3QXpUYUFTcGkvdXByYTJscHFibVU3K3VveEsyUUVzTCt5c1BjS2ltbHZyNlJwcWIvUVJhV2hMSkFxZW9XZFphc2w3TnlvQlc3M2l2bjhmai9wNjZEQlJkaW5CeklzbWdPTHhQNnVrKzY5bWlXYjA3RURkTmdtWTZ4RTJYcGtpS0d6b1JxUk9TVVZyTUNINGpUR004bUhSUFc0eFB0NEQ1cUZ6UlQvWlZjYUM2aHJyNkJocWJFM0cxWURCTXlKRUJqU1dTQmJhb1lab1NLYVdRU0swZ3Y4ZDNnUytvUytBVTh0YWFZd1NlMjBIa1g5VVlWYUV1OFpwZGZiUEpPSzhudWQ4Y2d0Yk5leFEvSVJON1MzMjVKKzAxZi9MWEozbUdhL241MWIxUDl0bkQ5L09iS0xpaWpzWXhMeE9PdGQ0aUVLTXZ6UnZ4ZFdyNXRlMlNTakNFTTVrQTBrUktBeE1CYU5JUUxpR2tTMnE0aFlaYnV2Q1lVYnpDamM5d296VTNrNW1aU2FVZVlhanIyRVB5UjdUWTlsY2RwT3JnSVdycjZtbXdrZ1dKREtpenNWMXY2NEphR2RDRUM3cHJ1aXJ0T1BYd1AvRXh3UlY3dTR5b0FSaFZRWUlyOXVKLzR1T2oveUU5ck43c284Q25lVzUrYitCUEpqZ3NOaS9nQWR3U3FRR2FCR0ZDV3BjMEtuWENVcmRjMGdoK3Y1K21waVlPNlUwYzBCdVByOFVXRElhb1BIQ1E2dG82R2hxYWt2VnF3WkF0YWpHaWxxakY0M0VSTjZ3c3FPV0NWbjY4dnBmSDQvNk9ldHRQUFNML3F1bXlyejI2cWY3bzd4eVBkc25mc2ZvZmovRFMzbUlLM0g1YUdnTzRoMDFrY0dBTGU1cjhOSWVMR2YrTm16aTM2UGhtZlh0NXV0MEVmSnpPYXBOSUNVS2FTRk1BQmxMR3BTazBZVWczY2FKb3VIRVJsaTY4cGhzUkROTGMzRXl0SGlWSHk2QzdLNHNzelhkOExMWkV2VnBOc2w3TkZyVkVFVzRzVVlTYkdCaHB1YUFtcGpSdEYxUVVGeFhkQzR4Uk1uQnFJUU02WmtPMHk3NStvemFNR2RDUDhwZnR1akcyZU9HWCtPcnM3M0xydHk4blkrTmE2cys5Z3h2dWVKQ1pZLzI4dmE3aXVEK2ZRSXdDcGx0V213L3dTaXZXWm1tTklHRzFZVnR0Y1dtSUdBWXhhUkNWT2hFWkl5U2poRUloV2xwYWFJd0hxWTM3cVlvMUhCOVg5RkIxTFFjT1ZWTmIxNUFvN1docG9TVVlJaHdKRTdXS2NHTkphODJ3dXd2c0xLZ0lIZGd4V2RPRXN0Wk9RVVN1cDJ2L0FvWkU2K3Evd3hIeGtKMmJtMWdha3BsUGRrNHgvZnNsZnVlYzNFemlrYy9OeGY3bUgvLzR4M1BUdUtSMmxsU2taa25qR09qRWlVa3JVMnJxUkNJUlFxRVFUVWFJK25pQVEzb3pOYnIvc3dtYkhvOWJMbWc5RFZacHh5ZnZyT0t2ZjkvQTN1WW9rVmcwVVlTcjY4U2pBZEhVN0Nlc3QzWVh6SnB4amN2bjlkNmI3ckUzLy9SNlNzKzdseGNQcE54UTl6SXp6cHZHUSsrbGNSMys3eWVNdldrWjVVcFRUaU95eVBqMUxmVForVFd5Q3gwWDdJVHp5Rjk5QzcxMzNrM3ZkNjZueHpmN3Q3bUlqM1M3NHZPblQ1OCtNd2VJN2hrT3E4MWpoYjAwYWNYYVpFTFlFdUxXSmtzYUowSkMyTUxoY0tJRUpCNmlMaDdnb041SVhCcWZYdGlTcFIwTmpUVDUvYlFFZzBSMEEwdy9GZVhWaEdLNm5RVWxiaVJNZGRsYWlLczk5L2pQN3dhKzNPR3p4ajVrMGE5ZXAvYW9YbUlMYTFaOVFNblVTeWhUMTh6cFl4Vk9ta0MzUzFNYTAwdkhrUC8wQ0Z3Yi8wbjlWWCtrN3BkMXVPKytuTzVmeXpxNjJ4VW5CRTNUSnE0KzR3ZFRIVmFicDFYY3BJdWt1TFc2cERwRzRwQnhZbEluR28wU2lVUUlHaEg4Um9qR2VJdmxralorT21GcjlnYzRjS2c2VWRyUjFKem9BdzJHaU1STnBBRFpjcENxeG9qZEJ5cmloa3k0MTFJS3BCUU41UjhNZHJsY2N3NzdyRG5aOE1aL3N1aWZMVWQraFhWdjg5SjdnNWg1VVM5MXhad3U1UFluNzRFQkdLOVZZanBDZWU1SlorS3AzVW56STl1SmJXOUUvKzgzYWRuZ3dqZXA3MUhkcmpoeGRITmwzZlRINHR2N09jV050clZ0d2xuYjVyVGFZc1NKeFdKRW8xRkNNa2FMR2FIWkNGRWZiNkU2M2tUQUNCKzdzRlVkU0hRWE5EUTJPVnFtd3NUaUpyaTdrWjhoQ2RmWEVkVGoxdURJNUtRU0laRmFYcDc0MXVabFB5bVpObmt5cFdNbU0vYWFlU3o2Wjl2QW4zZmdWZHd6R1Y3NjZYTnNQa0lNdXZhTnY3UDVDNWN6dWZCdzRyZVB6VnYyNFZmWFV5Y1RxQjU0Si9URjdTd0RHM3NSUmUvZFFON1lqa2JUdVBEY1BZSE11azAwLzNmYlVwTDQwdi9pME9WdkVZdWwvSWpQZFZTM2QwVUdYRDNuVTlXd0ZWODJqMXN2c3djM25zbVZjKy9tSEd0UHNmdWNPL251Tjg0NXhrYzBpUDdnZVE2TWFGdkRkaGo2bnA4eitHcFNFd2xDdUt4RFF4TkpxODFJSkJLSVc0a0VYZGVKeFdLRVpZeVFHU1ZnUkdpS0I2azdveS9oMzF4RXo5ZHZTaDVGLzNGbXUza3NiY285cW12ck9GUlRTNTA5dGNOcW1RcEhvc1RpRWt4QlpsRTNYQWVhOERlN1JKYTN0UThVaVFnZjJINUozYXI1ZDh4Nk5zWU5QMXZDczROaDYvS2ZNK2YreHpocjFVS21KaS93ZkNaLzc5dHN1T2JuUFBUY1ZieDZkMGV6SmcveHlpdjdHRDlyTEhuMnR3Njh6WUtmTG1OenJEL1gzUDF0SmdlZVk4N1NGc3A2dDdENXFWRTgrdFJNaHZtVXBweHd2SVZrL2VKaXNrdmp4RmYraytZTlJYVDd5Wm13SjRycmdiRkV2dk15TGRzTnFOcEg1TlVvK3A0T1lpVkR4OUo5R29SdS9RQzlhRkpLQ01OQU9nVFFOV0VjT2VPaVJPN2JkM1MzbnlZYzJGZkJDOC8reHhIdk4rbUtyL0hGOHk4NnFzZjBYVFNRZ3VlbUFoQmF1WTJtSDZ3OThzOW9ucHZlNlBmQU94ZnQvK2ttSUc0ZGlYNVNwQW5DTkVHQXhBQnBJSVdPSVYzRUVaYXdSV1Nja0JuREp5SmtHbDZhbTNiUXdCZW85NFNURzY1aWRhT1E3T3BZMkE0Y1RHUkJtNXFhQ2JRa0NuSERZYXNJMTVCSWFhRExESEo5UWpSR3drUTBqOUJNS1VpOE9NM3I5ZDZWZDk2M1diazhuN0krT1FCTW5IRTV3NVl0NDRNS21EckM4V1NGbHpELzdwZVo5S3ZIZVA2YXA3a2xYU0g0M3RkNTZlQW81cDJmay96VytxWEw0UGJIV2RsN0s0c2V1SXNadWRONTlybXJLQVBXLy9SZVh0bzVrMkVqbE02YzhMakt0UFBKcW4yVDJ2dGlaUHppTW9xdTkrUC8xbjhUM2dQaWExZFJjRVVQV3JiWFFkVWVBai9hMDhHajlDRDdKeU1Rci82ZHdJY0dUT3JBb252Z2VncG41Q044Y2VJci8wSHozMExIY1B1cFQ1LytBN24va1NlTzYyTkczNmpnd09Dbmp2bm5TbjA5cndIK0RlaUFMcVdNQzd2T1RhS1I2RXJBQk9LWVVwTkN4SVVoUlR5ZXNOcGtuQWh1UW1iQ0pXMm9yR0hIZFM4UXp5aG1lR2EvSTd1aSs2dGFYZEJtZjhJRlRmU0JKa1lSNllZRWFSQ1B4OEhud3lVa2hoN0hxdkxSN3YvYnJ1dUZFRmY2Q25Pby9jZGpUTHZ5U29hZU41blN5LzZERGJFWTZUek9rdW5mNXA2QnUzbmlwMytuTXMzdFcxZjlIZjlGVnpIZVlZSDV2RkM1WXg5YmQrNm1QT29sTDdDUHlnQkFDLzVBNG5iRmlVZjY0NGlpSG5oSEZlUHJDMmJNaDZjdzhXWm9lUzVrNE1qWkxOZjFFOGp0K3duK1grNXpXRjd0WFNMOXViOVJlKzFmYVBqaEx1U2tTZlM0cWNjeDNLNDRrYmlFZHRtbWdUKzV3T0dTZWxwcjI1SWRDWmhPbDVURTlGMWQxNU5kQ1JFWlMzUWxHR0dhakNCMWV1Q3dIUWx1Z0ppdWM2aTZwdFVGRGJaT3c3WHIxZUptUXRpTWVGekVEWUhISllRUk40VmhDbTFvWHFGTGM3bnZCQ2hmOWhDelh1ckZ3bC85bnFsRDh2RUYvczZNeWM5MThQU0R1T1dCcTNocDFuTXNlbU42cXF5eDdCOHhKdjlzRkU3UGN2VGRQK0RLNTVieHU0cEIzUHlySll5dWY1bTUzNzZMeGJRUUhUaUxKNGVvaStta0NOdmYzc0JmZEQ3Wk0rTEVubnFWNW0wOXlQdVBhUlRsdVlCcUFuY2RJWnZsTFNiN213UFFpcURIUDB1dHYySnVCTkR0Lys0a2ErbC9VZnVyT2l1bTJraThEdUxiNnpEUDZrdkJ0S0c0WC9nWDhXVE05UWkzSzA0b1BUM2RyaDJoOWY3WEZ2T2dibGx1VHBkVWdwQVNhVnJpSnVQU0ZDSWVseTZYQ3gwelVRSWlkY0ptakJZalFyTVdwc0Zvb1VadnBzaWRoMGU0MGd2YkFhc1h0TEdweVdwd1Q4eFlpOW9ON3JwTzNBQ2thWThqd2hRdU5CRVhwcFRDazkvdm04QTRhR0h6UDNlVE4rYWJUQitTbjNpR1FBdUh5dy80UnN4aS9wV3ZjL05UeThpTmVaTWxIZEgzWG1hTjd4S1dwcnFWdnY1TXZmc0hURTI2dEZmeDVBdFhFWTJDVDhYV1RpSWhvaStzSmZxQy9mOEEvaHYzZ2RjRnNhT29QWXJWMFRKN09TR254VDNxZkFwL2trWHcxcldFOS9qeFBuQTkzVXUzMFREN3c2Ukl5U2lKbkJzdXZBOWNlNWpiRlNjdFRJSDQ0cklCZDA4ZXNmZUJWVW1YRkd5WDFHcTVRaVJNcDBUNWg1WVlUb2t1VFhSY1JORUp5eGcrMDBPTEViRUtkMXM0cERmUnoxdlEvam5Ea1FpSGFscG5yTFVFZzRuQmtkRldhMDNYZGVKU0lqR0ZFVTh1T2haQ0NIRk5XZSs4RmlHK21YaTRITW9HNWxQM3IyVTgvOC9kYkgzdjd6eDAvMUkraUVHMFEzWExZZUxkMytaU2dnUmFyM0xXdmJTUm9pc3ZaOWhSbmp3bGFwMlVWRkhyVzBydXo4L0RWOWpleFRUMzFCSGY3ampxb2hDTkpyNWZGMFBmV0ljWU40YThiNWJpTHUyQlo5Slk4cTdJSXY3V25rVDErbUZ2VjV4TWVyaXpyNzA3NTh1NXBEVElKMXhScWFWMkpCaUdJUXpEd0ZrQ2ttaVVqeEUwSXdTczhVYTF1cCtJMmI0OVRtdFhzNVpjbmRjcWFyb2V4N0NHajVpbWFTMW1RVWlFZUd6dTJObGVXdlZuOU8wLzVLRVJoM2ppZTdjeDdZRVYrQytieGN6aE9VVHJEMU96Vm5nSjgrOGUyZnFITmZBMkwvMnpGOWRjMWw5ZEVhY2FmZnVUT2FrVVg5OWpMOEdRYS8rUCtoL3VRWHh0RWtWLy93YUZQeTVGdnJxV3hsOVdIOVh0aXBPSFFBeTlzK2VsbDlLMmFMZE5INmxkdEdzbWhBM0RTSlIvNk5MdUpVMklXOGgyU1kwUTlVWUwxWHBUKytmNzV6OWVZbGQ1UmJzRkxmNFd5eVZ0M1R3bG90SEVMb080WVFocFNtM3Jodi9OSDF4MnhqdHduSnNDRHJ6TjgvL01ZZXIwVVJTcGE2SlRjbURjeTEzNjlmZlpjTlV4bUJzRGp1cHVobUZRV1ZuSmdBRURqdnFodS9ET2d3NTU0NDAzMHY5aGtuTFBILzd3aHp1ZWYvNzVPaUFJaElDd0VDSm11YWlHRU1LMHRsbEphOUdMdExkWTJjdGVjbkp5Nk5hdEcvbjUrUlFYRjFOU1VzS2dRWVBhN0VodzE5VzNyMW16VnVjbHJEVnIwMVE4Ym1CWTFwcVVDWFV0R3pqZ2x1TXVhZ0I5THVDVzZVbzhGS2MrRXlkTzdEU3ZwWFV0Nk9kRzZhaFJveVk5Ly96eksrMVlteEJDeHlyL0VFS1lRb2prbWo3bjNsRjdXM3hPVGc1NWVYbms1K2RUVkZSRTc5Njk2ZCsvUDRNR0RhS3NyRldLTkhzcFN6RG9xRm16ZHhmWW9tYjV1NlpwQ3ROcW5kcjBmNnR5WFM3dEZuVnBLaFNLbzZWYnQyN1h6SjA3TnpmcGprcnBzZHpScEV1YVdOZHBDbXU3bGJCTFB4THJCeEt0VnZhbUs3L2ZUMk5qSXpVMU5ZUkNyZldLbWoxbkxSUU90NDc1dHVKcXVwNFV0bmJXMm9oaFEyWUJnOVJiZFhyaTZwVjFlcngyemFYZTdPT0lFS0xzdnZ2dXU1ajJTUVNYbEZKTFRONld3alJOTEdGTDFyVFo0bVkzeU5zejIrd1Zmb2NPSFdwOTJ4SWRCZ2tYTkdLTitVNjRvRHB4bzYyMUppMXI3Y2F2WCsxeXVWdzNxYmZwOU1VM3BxRHJ2dll2RkI2RENxcGFrZU5OZm43K1YwdExTNzFwckRiTnR0b3NjV3RudGRuaVpvODFDZ2FEQkFJQkdoc2JxYTJ0SlJKSkxIL1JuTmFhTXd0cUQ0ODBEQVBUTUszbExBbHJiY21UaTI0RVZPUFNhVXplUFdlVGRYVi9YSDJ6dTQ2bDFqZUw3T2xua0RkbjJOSC9rQ2RUdmRuSDMybzcrKzIzMzU1d05GYmI0U3czcDlYVzNOemN4bXB6Si9ZWFJOUEcxaEsxSkNhR1phMVpGcHZtZHJ0dlZHL1A2WTNXelV2MyswZWQ0cDlBRGJ3NTZzMytIQ2d1THI0Q2VOTVN0cGlVMGkyRWNKTklKR2d5Z2JES1BxUmhHQ0llajh2VVdGc2tFbWxqdGRYVjFWRlNVb0xiS3VXd2Q0SW1sVEZ1MVpFWXBvRXBKVkpLSklqUXdSMVRnQXZVVzZNNDVjbnNCa0o4L3M5akduQm9LN1RVbkRaYnNUUTRiK2VyaTBjTnZ1S09qWmJGNWtGS0hZRkxTZ3dTaGhTbU5ER2tnU0YxNG1hVXVCRW1IZytpeHdQRVlrMUVvZzJFSXpXMGhBL1FIUHlFK3BiZEhQTC9PeUZzeVdMY3VHMnRHUmkyRzJwS3BKbFl6Z0pTZUQyZUdlcUtWNXp5dUgzZ3kvdjhueWZVQ0pXYlFRK2RkcWQ0WU4vaVNjQUhTYXNOUEVJU1IwZ1hDRk1paFpSZ1Npa053OFF3VE9LR2lXNFk2THBCVEk4VDFYWENrU2pCY0pSQU1FeFRvSVc2eG1hMGFDVGhndXB4dlcwVzFISkRyYVFCVWlLYTltNFpJWVM0VmwzMWlsUGJuSEJCVHM4VDgxd3ROYWVscUFGNDNPNnIvdmUzQy9zbExiWkVuQzFsTndLWVVnb2pFV3NUY1NNUis5ZU5PSG84VGl5bUU0MVo0aFlLMHh3STBkQVVRSE9XZHlRTGNXMFgxRFFUYm1qQ1d0T3lzN091VTFlOTRwUzMxUEo2SitKcko0TG1BNmYxNlI0N1lzaUZwR3l6UWxvWlVva21wUlNtbEppbXhMQVRDYmE0eFExaThUalJtRTRrR2lNWWlSSUlobWdNQk5HU1RlNU9VVXRhYTNiQ0FMSHFUNy9MMERSTkNadmkxRVM0d0pzTnViMFMvejVSbk9hYjVuT3lNcTZZT1dWQ2htMjFTVnZjRXJQYUJJbVpSaUpodFVrTXd4UUpsOVNhL3FISGllbHhJcGJWMWhLTzRBOEUwZXdzcUc2NW9IYlNJR210V1NVZWt5NjY0RnFnbi9vRUtFNE5JZE1TMXBrM0I3SUxvWHNKYmZiOG5TaTY4RUxtNDBUSm8zTnZIWmZHSFhWSjBLUzBoWTJrMVJZM1RPSnhFOTIyMnZSV3F5MFVqaElJaFhIcnVJbmp4c0JGWEFvTUtZUWhCWVlsYUpacWF1N0MwdWtuSkVPa1VDaE9LM29XZEw4RWVOdGh0Ym1GeElXUVd1SXZrSlJTSWd3cE1Vd3BEZE1RY2NPUXR1V214MU9zdGxBRXJkVU5qU2RIaFNSYXA2UjlpTWJHeHVGQ2lNdlVXNkJRZEQyaWIvNkdvWGU4ek5aTyt2cmNMdGNsYTVjc1NFMGl1Q3lyTFRuT1NKclNLdGcxTGN1dE5kWm1KeElTVmxzRWQ3SnV6UkkyTTlrVG1oQTFRT1RrNUh4TlhSNEt4UW1rOGpXdXVQTVZ0clYrL01udE9aREowNmN4ZjBvSmh5MUVhZHpGaS8vclovejBNU2R3eWZndUhycnhLWmFsamtiem5NdmlsYk9ZZklTZi91THd3ZU9BVDFLc05oMkJoaVJSK2lHUXBta2xFcXpTRHp0ODFqYldGbXNWdHRha2dUWEZ3elJ0TjFSb21uYTF1dElVaWhPTVp4QUxmanVIRzNvQTZGUnVXczJjUjU5aWJ2YVBlUGJDd3pUeU4yN2pkOHVxeUx0OERHVW50SEhDemFVUFBzYXo0NC85SjNPek15Y0IvMDNiT0pzYlpOeXFraGFtRldzelRGTWFpVDVTbVlpM0dlaEdhNnd0SEkyaHBicWc5b0hWaUJvTUJpOEJocW1yVEtFNHFTcEh5WmdwM0R4RVovT1dHaXIvNTFkdDNjdnFONWcyN1JmODhyK2VZZXdEYjdCSDM4WGMyUTh6ZDVOMXUxN05TNC8vaWduVDVqRDArb1hNV1Z1ZDNFVVNyZHpFUS9jL3pNaHAzMlhvamIvZzloVzdxTFZ1Vy8vNGc0ejkwWitaZS84dm1IVGpmWXk4NHhtZTMzNk1kWGV4U3A2WjgxMnVXRnFaZU03R1RkeCsvWVBjL3FhMTRyejZJeFkrOE1qUVFmMzZEYlVFcmRVZGxiaE1LVFhEbENKdW1DSnFtQmlteE5RakhLenpVeCt6eXovQzdQN3czN3k1UDhUdURXK2gyYUtXTHI0R0NKL1BkNVc2cUJTS2s0MU83ZlozV0xiRHc3QWgrWlJjT0k3Uk5SK3h5bHJSV3Z2K1Iyd3RPWmV2WFhzbkczOTZFYVdlTTNsMHljTThPc2I2OFpvcWFvZC9nMWRYL29xMXM0dFp2K1JsMXJRQXNRb1dMZndMVzRmY3dOcVZqL0hoenliaFc3MkVPYXZyazg5Y1Z4bm0wbnZ2WSswZkZySjBURDJMWG5nL0tYeEhoYmVFVys2OUNQNytaMTZzOUxQdU55dlpQUHdxRmw2WUI3RUtGdnpvUlRZUHVZN1gvL3I0ZWM0NG03UXlvNENtQ1NGY0FqQk5Jb2JFTUVGQ011YVdHSzBHcG1IUzgreHpFNjZvdy8zRWJuYTNEazBJY2FXNnFCU0trNkZsdTVuLy8rWXdQeGxqNjh2RTZiT1pQeWtQT0lkcmhxeGs4WnVWekN2Tlo5MzZLc291dks3am1GcmZjN2xqVWpGNVFONlljeWg3K2cxcWd4RGQ4VFlyZ2lONGR1YVppVEg4SldPWVAvMGRKcXgrbi9JcGx3SlFPT0pMVEM1T1dJMmpSNVRBK21vcUljM1kvaml2UFRLSFVzZDNMcnpuNXl5ZGxJV3ZkQXFQWHI2TkdRdWZKQzlZd3J3bngxRUVSTGU4d1lyZ0NKNmNlU2I5dkZ3Q0xFMjEyb1JJZENJZ2hLbUJRRXJNaFBVbFRNT1VpVGliaGlIQnRGeFNkNnExWnJ1aGdBaUh3MU9BdnVvS1V5aE9kb3d0bFR3bWZ2bE1Gcnk4amZMcCtieTJJNThyYnlzK1dxODI0WUxxRUcwTUVDMCtpeExIMkxtaW52bjRHcXM3dE1wOG55ckc1bUhZVnk5aTlNc3ZVdjdsNjVodS9VN1JSaitCcGdwdXYvNTlnRDREQnZRZjhja24rOTVyRzJkREJ3UVNJWVFRbWtDYTFoUnowelN0amdRd3BVd0ttNVlxYXBhbEJpQzhYdThVZFhVcEZKMlRvdkZqR1YzelBzdit2b1hOSmVPWVduTHNqK0hya1ltdnVwcktXT3YzYW1zYWlQWW9QczZMbEVLc1g3YWF6U1VEOEwyMW1oZXR4V0crbkR4eWUzNko1U3NmWS92S3g5aSs4aisrbUdxeFNkbmFpV0JLaVNHbE1HV3FLMm9tRnBTYWlkSVB6UkkwZTZpYnNNczhMRGRVQ1p0QzBWbkpPWXRyaGpmdzRyS1BLSmt3Z3FTdWVUUHhFYUt5NmNoQmZ0K0lpNWp1Zlo5Rnl5cW9CYUxWbTFpd29vclJVODQ5cnFVaTBTMnZNUGV0Zk9ZOU9JZEh2K3huMGVOdlV3bjRobzlsTWh0WnRLSUNQNUNoTjE2VVlxMGxWL1JKcEdaYW9tYUNFRWlpRVYzb1JweHd3RTlkSEtTWnFHdHpweVlOYkRjMEZBcGRyTnhRaGFJems4WEVTWVB3YmZCejVYakhxUGFTYzdqNTNIZDQ2TTRmcyszQmhUeDZ1SWZ3RG1UZWo3L09nbDh2WmRJMFA5SHNmQ1orZFRaUFR2azBvOS9ieDlqZ0xCYTlNSWtQZnIyQm9objNjVU94QjJaTVkvSTlMekIzOVZrc256S01oVCtleG9KZkwyWENNajlSYjE2ZnkyWitlOGcvbHYzbmh5VDdSbkZKbVJnWmpoQkNBeUdsa0Y2WElLcEhPVmdmdytWeTQ5TWtwbFgrSVhyMjdFazBHaFd4V0l4NFBDNU0wOVNrbEM1ZDEzK21hZHAzMU1XalVCd2RuMmF2S0IrditteVcwS1kvTW1sNUNjdC9lUkVscDhoNURJWWlTM0xHWHZzaTBBSUVnS0NBTUlLb1FPaENZR2hDbUc2WEpyMGVGejZ2UjJiNnZHVDZmR1JsK3NqT3pFQkx6WWFTcUYvVE5FMmJwQzVWaGFMekVtMnM0UGtWMnlqNThybW5qS2dCWkdYNnprdm5pbUxOYWNOdXM1SlNKRG9SVEd1RmdaSHNSTkJTaW5LUlVvcUdob1pocUdVdENrWG5aYy9MWEhIck03elU0eW9XVHNrN3BYNDFJY1RacTUvNVVlOE94RTFJaVVDQ0thMU1xTE9IMURyY3FRM3ZKSHBETDFKWGprTFJpU205aXJVclQ5M2ErVEZubnprTTJHOExtd1NYa0dnSTIyS1RRb0tVZHUrb2RkaGJyWkpaVVZwSEZBbVh5M1dodW5JVUNzWEpvbnRlemlqTFNrdE8ra2djc2xXcnBOMC9LcE9WSFlaMWFLa1cyL2UrOXoyWEVHS2lPclVLaGVKazRYRzd6aHQ1WnIrVWh2aGtuSzExbEJHV0t5cmJ1cU5haWh2S3d3OC9mQUhRVFoxYWhVSnhFdW4yL0NQZkxYVmFiVExSRkovWUZpL0JtcTZMdEVRdE9kTElhYkZaQ0ovUGQ1NDZwd3FGNG1SVFd0SnJTSHRYRkszVkhVMFlaYVoxR0xJMUVhbzV5enhJekY0N1g1MVNoVUp4c3NuSnpqekhZYkcxS2Z1dzlVcGFXVkpwN1Q4MlpHS3NrV1piYTFKS2NlMjExN3FFRU1waVV5Z1VKeDIzeS9XRkFiM3lYU2tXbThzU05FMUtCRmh4dGpidWFHdU1UUUJpeVpJbFh3UnkxQ2xWS0JTZHdXaGI5dWg5L1oyaUpxMTlvemhXOHlYaWJNNmFOb2ZGQnBDUmtmRUZkUzRWQ2tWbjRjd0JmZHNrRUdnYlp5TTF6aWFsaVNuTlZ1VWpVYjgyUnAxS2hVTFJXZWlXbXpXRWRzbUR0bkUySEhFMjAweTBXYmtkWTRxRUVPSmNkU29WQ2tWbndlTjJENmQ5akMzWkw0cXpuaTNwanJaYWJPemF0YXNuTUZpZFNvVkMwVmtRUWd6NjVmZG01WFFrYmlSVUxWblBacnVsZG94TjlPblRSelc5S3hTS1RzZWw1NS9ieHhJeWErQWtHaEpoVDlXVldKVWRWaGVDbEk3c2dzZmpVY0ttVUNnNkhYMkxDL283ckxSMnRXeFlJNHhhdXhBU3dvYVVVcmhjcnJQVktWUW9GSjJObkt6TU14eWkxa2JZckRoYndpT1ZDTXNWRlpyZEl5cUVVTUttVUNnNkhSNlBlMUNLcUxrY0ZodXQ0cFpJSU5pdUtOWWR6bEtuVUtGUWREWTBJWVk0ckxUMkpSOXBFZ2dhSUdwcWFnWnp1SFdCQ29WQ2NTU3FOekYzem9NTW5Yb2ZjOWJyeC9PUmZTc2Z2Ny9RS1dqU21zZEdzdVREVGlBNExMYWNuSnhCNmwxUktFNVgvTHg0L3k5WVZBbFV2OEcwNzc5QjVURS9oczZhRi83Q3VwNVhzZmFsWC9Ea2VFL2JtN2UveElRYmw3SW05dWxlNGREU2ZrV2tMZEsxT3hBU2dxYnJCdUc0WmJHNTNlNHk5ZVlxRktjcExidDRzM0VnRjVaQTdaWnRSSWNQK2hUTFljTFVOdXFVakJqVVpxdDhrdEtMZUhMZUZNWjdQOTFMTE95UlY1ekdIUlZ0RHlrTTB4UzZBVzRwcGRBMHJWUzl1d3JGNmNaVzV0NzZJdXVDWWVwaUhqYmYrQkhSWUlDb3Q1SUpOZGV4ZHQ0NWJlTlRzVXBlZlByUExGNWZSUzJaRER0M0NndnZ1b0JoT1pVODgvMW5lR0pIbk5pT1JZeGRQWlpuRjEvRGFPZlA3bGpMN1kvb1BQcW5iekQremQ4d2NobmNVQnBtM1k1cWFtT1pUTHpwTmg2ZFZJeXY4VzFtM1BvT2VSZG1Vcm05Z2RvbUtQdnlOQmJjT0tSUFcwc3RHVjhUSmxKb2dHN2F4bU0wNFlvS0lRYXFOMW1oT04wWXhxTy9mWVNWTS9veWF1WjMyZmlIT2R4Uk1vajV6enpDVzZtaVJvZzFqei9ERTQxamVIYkpZMnhmY2lmWEJGY3o2L0ZOMUZMQ25iKzhqL25EM1l5NmFSNGJVMFV0SFRVTk1HVVdhMy83Q0cvZE81RDFTMTVtVFV1cmE4endHMWk1K0dFMlBqT05vdlV2OHBNM1E3MHR5Nnk5dUFGU0NPRjJpY1FkM043RURVS0lBZXBOVmloT1IzUzI3Z2hRZGtZeHRGVHlRYXd2dzNxa2MxZTNzR3g5SnROdnVvaGhPVUJPQ1RmY05vNjg5OTloWGVPbmVOcWVaM0hOaU1UYXdMelNNeW1MTlZBYnRHOHM1c0l4QlFsaDdYRU9kMHpJWmVNN08wbzZFRFY3c1Fza0J4VkozTllOU3RnVWl0T015dFhQTUdOWkpmNm1NR3g1a0hXRXFRdDYySHhyQlRjLytEM3VkQWFvbXZ6VVVrQnBUNmM0OWFXRWo5alRDUFQ0REMvRXlqTkVkU0JOREs2b09BLytIZW1YWXJFSkNacEltYVpyeTV1MmE5ZXVZaUJEdmMwS3hlbEZ5WlE3ZWV1WmFZenYreVdXL3VFUlhwMTVKbWRkZFRjYmY1c2lhZ0RkOHlpaW5qMDFiZDNKV3ZJbzdmSDV2czdLeWdiSXpzMzQyYnhiY2pxMDJGTFFDZ29LZXF1M1dLRTRUYW1wb0prdkJxQUFBQ0FBU1VSQlZMeTRoREtnZkU4OUphWEY2ZStYTTRLWjQ4T3NlT0Z0dHJZQUxaVzh1UFFOYXMvOUVoT1B1N0JWc2VwL0svQUQwY3EzZWVMTk1PTW5uTWtYQjUrUjV4Q3kxbnEyRktScDR2YjVmTVhxM1ZVb1RrLzhsUTFRTW9ZOC9KUlhlaWliNHVuZ25sbE12dmRPYXAvK003Tm1yOFFmeTZScy9CU2V2V3NNUmNmOVZlV1NWN21hYWRmdm9qS1d4K2dwTi9Eb3BEeWFkL2ZJNjhCYWExMUdKUkNHYVVnUmpVYnY5SHE5VDZ1M1dLSDRiQmlHUVdWbEpRTUdIRVBJK3VOVjZzUTVhWHliR2JlK3o1Vy9uY01OS1paZ1pYWGRnbjVmdnZrZElHQWZBa0lJSWdJUkV3SkRFOEowYVpwMGE1cFdwTTZtUXFIbzdHUmwrUEljYm1nYlM4MDU1UU1rbXFacEJlcVVLUlNLem83WDQyNFhZeU5kakExd0N5SHkxU2xUS0JTZGdoNFhzSHpsQldsdmNydmJDRnY3UXlKc21kUDRiQlVvQ29WQ2NVSndhVm82VjVRMlZwdFZxS3NCZWVxVUtSU0t6bzZtaVJ6U3hkWmtHM0VURXRDRUVFcllGQXBGcDBlSTlzS1dhcm5aWFZVYWtLMU9tVUtoNlBUQ2x0QXFwL3VacHV0QUpvVXRTNTB5aFVMUkJTeTJ6QlJSYzJpZWJDTndHcENwVHBsQ29lZ0NaQnpHRFcxanRXbWs3YWRYS0JTS1RvZTN2WGVhVHRaUXdxWlFLSTZHRUp0WFBNT0U2Ny9MME8rL1J2bkpFN1oyQ1lOMkFpZGI1NGNyRklwVGxTMS9adExDajRpaXMyN1JRdVp1K2hRYnBDcmY0YUZsZmlZL3ZKRHR2N3lVNDdja3BaNTEvL01HYTZxUDZzNnV3MWhzMWtaNE1HbHRTMUFvRktjb1d6ZFZVRFJtSUQ2cWVHMVBNUmNPOFJ6N2d6UTJVSnZkbHd1SEh1OWNZd092clZqTmEwZTNGa3ZyMEVxelRMWEVKbmdRVWtxcDNucUY0clBUMmFaN2xQL1BrOHhZVVlXL1NjZlhQUk9mbmxqYVVwamRrNXQvM0g2WVpPMm1sNW43bTNkWVg2UGo2M2ttMDJkOW5mbmpDNGl1WDhxRXh6K2lMZ2k1MlptTW4zMGZ6MDVxVy80YXJkekVnbCsvd2lzNy9FU3ppNW40MVdrc25ING1SY0M2UmZjeE4zczJHNzkxWnVMTzYzL0QwTi9rcy96SGVTeTRmeTFibThLUW5Vdlo1YmZ4NmxjcjB5NXplZlMyY3lnQnhQQ3AwNEFnaWVrZWZxQUZDQXFJU3RDQk9DQTFFcGFiUXFFNHhTajc2aHcyL3ZZbXB2WThoMGQvK3dodjNYc09mUytjemNZL3BKbVFXL2thc3g3OWlKSlo4L2h3NVM5WWUxcys2eDVmd3FJOTRCcy9pNDBQanFPdys3azgrYWRIMm9rYXNRb1dMZndMVzRmY3dOcVZqL0hoenliaFc3MkVPYXZyRC84Q1N5NWw1UjltTTcxN0psUG5Qc0tyc3daYU43UmY1dkxRV2orSDFTcVJtQk9lR01xbW9RR0d1Z1FVaWxPVW1pcktldzVpbUJmS3QxZFROcnh2MnJ0dFh2ME9sY09uTUc5OEFUNDhGSTJaeXJ6aERheFlYWEhFcDRodWVac1Z3UkhNbTVtdzBId2xZNWcvdlMrYlY3Ly9LWk1NN1plNXJIOXJHLzcyV3RXK1Y5VENEY1JJcmxOUUtCU25CbHQ1Nkk2L3NLYkpUMTBzazJrM3JrN3NETTEraEFudlQrUFZlV1BhTkluWE5vYkpLeTV3ZkMrTGtwSmMvSlgxUkJtWXNvb3ZSZGdhQTBTTHoycXpLTG1vWno2K3htcHFqOE52a2xqbUVzYWYwS3FqUXVNWTdxeFFLTG9LdzFpNCtHR1dmam1mQys5NmtJMS9tTVhVbmlNU0xtbUtxQUVVOWNqRVgxMlBQL2tkbmNxYUFIazlDZzRyYWdDK0hwbjRxcXVwZENoSmJVMEQwUjdGaWJIaG43R2d6RnJtUWw1N3JaSXBYOXNJVzFoZEJBckZxVWlJOG1vb0s4bUN4bXJLdmNXVWRTQXlvNmQ4aVpKL3IyWFJKajlSRW9tRUo5N1BaL3FVZ1VkOEZ0K0lpNWp1Zlo5Rnl5cW9CYUxWbTFpd29vclJVODZsRENncHljZS81U1BXTitwRUd5dDRmbldGUTZFOCtMdzZ0VFgxUkpQZlM3L01KUThpUi9Wcnk0UXJHbElYZ0VKeEt0TEFCNVVGbkZVQzdLMml0dWVnanV2UFNpNWw2ZHd3YzMvekNDTWZzYktpOTg1bVh1bFJQSTEzSVBOKy9IVVcvSG9wazZiNWlXYm5NL0dyczNseVNtSTRkOW5sMTNIUGxxWGMvdi9XRWUwK2dLa2o4c2xOL25CZnJwa3lrRm0vZVlSSmUrN2tyWm5RMFRJWEtXVTRqWFhtK0w5QUNJa3BUU21rbEI4QUk5VkZvRkI4TnRReWwrUEFZWmE1bUZKdWNZMjQ2b2UwbG5zNEY3cEVCVUlYZ3JnbWhLbEpLZjNxYkNvVWlzNk9sTEtsWTJ2Tm5wMmJRQU9Vc0NrVWlrNlBhY29XaDRESmRJSm1lYVM0cFpSTlFnaDExaFFLeGNubk1NdGNETU1JSE1aaWMrb2FtcFN5UVoxTmhVTFIyWWtiaGovRllwUHB4VTJnU1NucjFTbFRLQlNkbldoTTkzZmdma3JIdWdNQU5NTXc2dFFwVXlnVW5aMVFKQnFnZld4TnRuZEVRZE4xdlZxZE1vVkMwZGxwOGdjN2NrV1RZbWRuQzl5UlNLUW1KeWRIblRXRm9oUHh5WUVhZFJKUytHRDdua0RIb2lhdEZhT0pRV3p1Z3djUEhpd3NMRlJuVGFIb1JBem8wMU9kaEJTcTZ4dnRjZy9URmpXUjhENmw3WUlLSWRBMGdUWnk1TWdhanJZSFM2RlFLRTRPa2JtL1dobzZqQ3Y2Lzl0NzgvaW82bnYvLy9VNTIreExsc2tlRWhLV0VFUkFLK0R2aWxoLzZOV3FiUzlZV3JTOVNsdSthUHVyMUc4TDFRcTl0cUJ0b2N0RmJ5dFdyMWhic0ZxZ1ZXcFJSQlRVRmxjVU5TeWFSQ0FRUXNqQ3pHU1ptWFBPNS9mSG5IUHltWk16U2JCc3d1ZjFlQndUQW1hWk0vUE02NzE5M3RUYUNZKytvM2IzODhlTmk0dnJUQldsOUlBTlpEcmozREpFRExCUlN1aysvdEJ4Y1hHZHFkSjAvYUFOYWhsdXpkeVliQVNrYWJEcHV2NHhmK2k0dUxqT1ZDV1Rhck9EWTNOcytTQWt2Zk9BYXByV3lCODZMaTZ1TTFYeDdwNW1oeEEwYSt1SGxLWmhza0ZSK041a0xpNnVNMEVwYkZqNkE4eC9UVTMvc1dBYWZuN0haMW94aEJ3YklTUmRHUVZBT3pvNjZ2bUR5Y1YxWmluUjlCWVczWGszeGw5M0cycSs5a3NzMk56RW5ESTdORURVYlg0ZWEzZWZyTE5rVzdCcDdTdlkzbkdpUDYrTTZ4YjlDcnZXL1JMdkxCZ0hCVUJEL2I0MkJtWTIxMmFPVXhIcnZ3SUFXbEZSOFJGd25JOFpGeGZYeVZQeVF5eForaVIyVk0zQStzZC9oczBMejBmVHd3OWd3ZmJqZ1ZRUGRyeXdFV3Yybkt6VC8xdXdiczFMMk5aeGNqNjdTNUVSVEFlU2lUdSt2N3pEN3RRSW9JTms5TFNsQ3dna0hZcWExbTRYZ0FuOEdjWEZkZm9WM2Y0U05tQVNIcDE3ZnZvNDczRlhZT24xYitPYXA5NUQ2NVRKaURpY05MdHA2Zi9Ga3NMYjhQTGNTdXg0OU9lWTkydzdvbDBxa251V1lmempBT1FSV0h6ZlhGeWZBMFEzUDRCSmF5VmNWOWlPSFEzdGFGVktjZjNjRzdGNFN2bzQ3OFMyaHpCK1RTSFdyL3c4YWdFQUgyTFIxeDVHOUxzL3gzMFh0dUNSTysvRGlrWVZpVlFQdHY3d0IxZ053RFg4YWp6KzA4dXlIeitlb1c1c1g3c2FTNTdhaGZvdUlGZzJCblBtZmhtM2pnczYvRnU2eHdZMUhZQk9BUW9LQ3FTM3ZoTmlMQmFsZWpySGhuUmx0RTRRQkE0MkxxNHpRRTBOTFVEVlpBTXFhVldQcmtUd3FROVJqOG5wN1U4RGFPTE5QOERyTjBleCtzNjdzVzdLUXF6L1FsNy9mOVNwWXNLaS80dmxaVEphdHorS0dmKzlHbFVyYnNPTmhZTjlkNFg0K2svdndkZXhFL05tUEkzcWV4Y05iVGNDRzJhL3RSNjNQUVVzL09uUGNYMVpDblViZjQrYjcxbVA2b2R2eHBXMkNVOWQxK3ZSUDdlbUE5Q0oyWlJMUVRWS0lZR0FDQ0lFUWdnRlFGVlZyZU5QSnk2dU0wT0pMaFV1UmNwY2ZlZVQ0RXFwSnk1blZEQUNVOHJTSzRValU2N0dEUVVmNDIvdm5hSUR0UlVacmxRUFdqdWlpTUtMMnF1L2ljMFB6TUkwaDdGMVhVdnVRLy84R2hPQ0Vpb1FBSlJDQTFNOEFFQjdlbm8rNEU4bkxxNHpReTZmaEVUU0JyRXVGUWxaR25UUDV5ZFRBR1U1UUxUejFHempkSTJiZ2NlL093YTcxanlBNlYrNUM5UC9hejAydEtpT1AxdXlOMzdRQmpRTjlwWVBRaWhKVDhKVFF2cEdxdWpldlhzNTJMaTR6aEJWMXhRQ2V6NUVYVVo0Mm9SbzJVZ2poeVVEU0NGeHd0YWR4OURVQWdURG5qUjRGQm11Vk9xa1ZSUVRMUzFJakw0TTkvMTBFVjcvMDEyNGIyb1BWdDY5R21zZENoSFI5Z010QnNBMEJtckdaVlJFS1FVRklCQ1N2a3ppVFo0OCtTaUFEL2xUaW92ckRIQnNGMXlCNitYWHNlU2hPdFRIdTlHNit5VXNXTnVPSzc4d0xwMWZ5eWxGYmNGQi9PM2xKa1NSUXV2dTU3SHFmZFgyV1R3b3k1RlIvL1l1MUNlQlJEeUtLQXZDSXp1eGFYYzNnQlRxTnorTlZVY3FjYTJadkI5ZWllcU9YZmpiZTkwQXVsRzMrU1ZzNnJSL2wwR1U1YlJqKzl0TmlBS0lkblFQR1lTdDI1L0FOWGMrZ1UwdEtRQmVSQW9EY0NYN2c3UTNnWStPSGQ3Wmc2eXRIdWxMcHdDSUFKbWtpd2hXOFFDQXJ1djYyNElnak9SUEt5NnUweXlsRWdzWHpjS1MzenlKYTJhM0ErRlNYSG5EclZnK3hXdjhnekxNLy9abG1QZmZ2OEtFMzhzb1BlOENYSGxlQUUwWm4wVEd0SnRtNE1wN25zWTFNNThFd2hXWWY5ZjNjR3VOOGRjK0wzWTkvaXRNZXE4ZDBaeEtYTC93eHI3Q1FlRy9ZZWxOSCtLMmV4WmhWZEtEQ1pkZWdDbWw5bSt5RXJmTW5ZeDV2L2tWSnZ3ZUNKVCtHKzY3YnlhbURhSFh2K3dMTitQQmp2Vlk5djBmNExZdXdGVlFpZXUvZTZOUjRlMXIwS1dVZnVBVWhwSjBWVlNuNmVQWEFFS29MS2JkR2lFRVJCUkZXZGQxQ1lEYzA5TnpxOHZsK2hsL1ZuRnhIYjgrVFF1VG81c2Z3S1NuUitDWis2NFlZbnZHNmRIaG94Mi9MTDdzUDE5RmVrbHlISmxMa25zQmtoSUlWRUtJTGdrQ1ZTU0JLb3FjenJHWmxkRm9OUG8yZjNweWNYR2RLZHJkY0dDZnphMnhPVFpLakpFcW96R1hrblNPalFwc25EcHIxcXkzRFNweWNYRnhuVzdGdi9hRDVTM0lySVJtZ00yOENDR1VrTDRUZENWQ2lIRktPUFN0VzdmcWxOTHRoSkRwL0RIbDRqcDdGWngrSzNhZjRhOXlWZFBlYW1ydDdBYzFZNVNLQXNSd2JlYU1hQnBxYkI4YmpMZTZxcXJiK1czbjR1STYzWXJHdTk5M0NFUFpjSlNtWTFCWWJvMlk3UjdHSDZpWlo0dkZZcS96aDVTTGkrdDBhKy9IQnhzR2dockpPRG1YUUNCR0g1c2dJQ1BIQmtELzFyZSt0UjNBTWY2d2NuRnhuVVlkKzhhaVh6ZGxnWnBEamcyVUNBU0NRS2dnR0k2TkVYM3l5U2RWWGRkZjVvOHJGeGVYa3lnOStWOGpwYXF2MVRVZVlzTlFOUk51Zldld01lRW5DQkVnRUNGZFBDQ0VtSDF1RklDZVNxVmVjYmxjMS9KYnlNWEZCYVM3WVErblBEaVNVS0NCSUo3UVR1clhhMnRyMjVrdERLWHBBZ0tsNXRRQkNGS1VBRlFFcUFpcWkybXdBVll2bTA0cHBTMHRMYThNR3phTTMwMHVMaTdvRk5nUkN3S3VBUHg1UWZoOGZoU2U1Sy81NFVkL3IzZUFtZ1pBTTFsRkNLRkVFQ0FJQW1SWmhxSzQ0SEs1NEhhNzA4Y1dtWVVEMDdGVlZsYnVCdkErdjZWY1hGeUhVMjdBRlVCaFVRbDhQdjhwQ0hWcDNkeHZmcjNORm9hcUJ0UnNSeGFaUFd5Q2tWOUxnMDRRQkFGTW5zMkNtNnFxVy9ndDVlTGlPcEpRNEE4RVQ5blg2K3JxZWczT3ViVytpbWpha0JrdEhnSUVnY0NDbWloWTdSNW1LQXJqZjlTajBlaEwvSlp5Y1ozYm9oVFFxSkRkcWJWdHg4cnZmUVdmdS94aVRML3FQL0REdnpjREFKcWYvQ1l1dmVSaTQvb20vdHc4OUs5WlgvOVJIVEx6YTdiQ0FYVExpQm1UQm9JZ2dCaFFFd1VSa3VuWUdMaFJTcW1lbjUvL2lwN2V2bHpLYnk4WDE3a3BRb0I0VXN1U1U0dmg1ZnNXNDFsOEN5dWUrZytNVkdLSUlRQUFLSjcxTUxaOUlZRkUrOSt4NE1abmp1ZExIcnIyYzFmdHQ0V2d4bVVQUXlrMFZZY2twNkVtc283TnNHOU9TMGMxVGRPZTQ3ZVdpNHZMV2MzNDRNTWthcS8rSEVZR0FMZ0NDTEJINExwY2NCM251dUtlbnA1dDJkd2FJZENRc1hLUFVsM1hxSjUyYkZRUVJJaUNDRkh2N08vWXpMbFJBSG9zRnRzY0RvZS96bThnRnhjWEUzOWk0NTMvaWZ0M0pKR01KNEZmWEl2UC9RS0FNZ1YzL25rSnBycUc5amxlKytNeVBQamtkdXlQS3lpYWVBM21mZis3eU85c2ZOY0dOYXR3WUxSNTZBUklBODM0VE1sNEhPM3hPQVJQQkZWbFBvakVuUWFiZWVtNm5nRzMzTnpjelR3YzVlTGl5bFFlcnY3cE03Z2FlN0h5aHJuWS8vVy80ZDdweDdlSllkK1RQOENQLzE2Qk94L2NoS201Y2J5MjhuYjgrSHUvUGZUZTFwODBHc1pLdFlNTmxPb2doSUlRS2dvaVJLSWhxUko0d2lFRWpUWVBVUlFnZW5JZ3BDMmNrREV2eXBSVWRVM1ROdklieWNYRmRlSzBGeHYvK2lGcXYvcGRUQzEyQWE0OFRMN2xHNWg0OU9tWDRKaGI2ejlLUlVoNk94VWhBREhDVUVFVUlZb2lSRW1DSUlxaTVkak1rQlI5Ky91MHpzNU9Eall1THE0VHFIYTB0L3RSVkJ6bys1Q3JBZ0Z2MjQ1c1lhZ0Z0NHcyRHdBZ1NFTXRYUTBWUlJHU0tLYkJac0tOZ1pyVnp4YUpSRjVCZWtzOEZ4Y1gxd2xRTG5KejR6amNGck0rUW51Yjkvem1qUVAyYW1qS2hCckpQREhYT0NrMy9mK3lVQk5GQ1pJVzY2dUttbStaWTR5c0FkUmtNcm1CM3d3dUxxNVBySXcxZ2FOdzlSZEhvdTZSMytMbDVnU0FOcnp5MndkZVF2OUpnNHpDZ1hXd3BNRW9RUlJBb05ORWtrSVVDWFFLU0pJSWljWWdzWTZOeWJVUnBqcXFIVHAwNk8rVmxaVUwrZDNoNHVJYWlwcWYvQ2ErZkYvZnF1SjNicndZOXdPWTlNTk4rTVhuQXFpWTlYUDhWOXNTM0QvdlN2dzRya0FMalhqWHdhM1pHM01wVE9NbENCQmtCWDZ0Ry9HT0kyanNKSkQ5WlJpWG13TTVNQkpreElnUjZPM3RSVzl2TDBra0VraWxVa1JWVmFMcnVrQXBsWkRlek9wU1ZmV1BnaUJjeVc4WkY1ZXpQazFicW9ZcVNvRzNZMkVVVnB5OHJaeXFxcjQ0dktKc0pZQmU5RzJqTXE5dVFrZ0NRSW9Rb2hKQ2RGRVVxU1RKVkZFVXVOd3U2bmE3NFhGNzRQVjY0ZlA3RVF3RUlFaVNaRHEyak9xb1BSenQ3dTUrbWo5MXViak9MUkVDU0VSSFY5ZkoyL0hVM0h6b1ZZY1FOQVZBSllSa2JxVXkyQ1FJQWtSUm9GWnVUUkloU1JKa1NZS3NLSDNGQTNzUndWWWQxZSsvLy80TkFBN3dXODNGZFc2cFFFbWdLM1p5RHRXbWxEYjkxNDhXNzJMQWxyS0ZvVHJNSTRyTW5RYlcyRlFmdHlSUlNvTk5scUVvU3A5alkvTnNnaUNBb2FNT1FMdnJycnQ2VXFuVU9uNmJ1YmpPTFJVcENkQkVIRWVhbTA2NGM0dkg0ODg5dittNWxKTmJBNGc5djVhR216RVhhb2VhSk11UUZRVXVsd3VTSktVL2FQd2pLb29pMFRTTkNvSUFUZE1vNDlyVUF3Y08vTFdxcXVxNy9GWnpjWjFiNGVnRmdTaU9KTHB4dUMyTzJGRVJYY2tUYzRMdUs2Kzg4bllXdDZZQzFCeDhUM09JR3RKMWFKcEdOVTJGcXFhUVNvbElKa1ZJdlNKNlpRazlMcVVQYkV5dWpRMUhNMlpIUjR3WXNVdFYxZldDSU16Z3Q1dUw2OXlDVzZGYlJhRTdCa3FCekZVcG4weUpaT3B2bHkxYWROVG0xRklBVWdSUVFjd3dGRlFnb0NJQlpCRlFKTUN0RUhnVXdPc0N2RzRnNEFWQ2ZpQTNDQlRrQUlJc3k3QzVOdGdINDQxUkt3M3BTUVFlam5KeG5lT1FPeEhhM1hqZ1ZRZTNsdEhta2JGaXp6aDNUUlRUb2Fna2lwQWtFYklrUXBZa0tJb010MHVCMStQdUE1c29pdVpiYW9hbHpKSGhWblUwUHo5L0M2WDBWWDU3dWJpNFBxazBUZDgrWWViOHhnSGNtdFozL2xyYVhJbUVVRkVnRUFXUlNxSUlVVXpEVFpZa0tMSUV0eUxENDNiQjczVkRVQlFGc2l6RDd0eHNEYnRXRVFHQTJ0WFY5UVMvTlZ4Y1hKOVVCdzYzdmpDQVcxTU50NmFUOUpaM0toQkFFSWpoMUFSSWttQTROUkdLTE1GbHVUVVhBbDVQSDlnY2lnam1pRlhHN0NnQWJmcjA2ZXNvcFh6WkN4Y1gxM0ZMcDdSdTZsZS8vMzRXdDJiTWgvWVZEZEpnTTl5YUtGRFRxYVhiTzJ4dXplTkdNT0NENEhLNWtBVnVHYTZORFVkZmYvMTF0YmUzOTNGK2k3aTR1STVYUjlvNm4yMXE3V1NobGpTdU5OU0llWkpIdW45Tk1QWWFtQzBlYkc1TmtmcmNtcy90UXNEblJZNGRiRGE0c2E3TlBoaXZybG16NWtrQTlmdzJjWEZ4RFZXVTBvWWYzZitISFlPRW9kWkp1UVJBMnEwSkVNVjBiazJTUk1paVpCVU1YSVpiODNrOUNBVzh5QTBISUhnOEhqakJ6VlloWlVOU0RZQTJkKzdjYUc5djd4LzRyZUxpNGhxcVdqdWlHeDVhOTN6Q3lhMFJJR1VVRFRUQVBFZ3k3ZGhFVVRDS0JRSmtVWVFzRzdrMTJZQ2F4NFdBejROd3dJLzhuRkFhYkc2M3UxODRtcVg5STZQMVk4T0dEVThBYU9DM2k0dUxhd2h1clhIWncwKytaWU1hNjlqNldqelNSUU1JaEVDMGlnWnB0MmJPaENxeURMZExoc2Vsd08vMUlCVHdJUzhjUUZGZURnU2Z6d2UzMjIyNU5oWnc5dFlQVzY1Ti9mS1h2OXpSMDlQekdMOWxYRnhjZzdxMTltTlAvL0t4cDN0dElhanAxbFNRdmhWN3Bsc1RCVUxUYmkwZGhxYUJsbGtKOVhuY0NQZzh5QW1tM1pva2lSRDhmais4WG0rR2F6dWUxbzgvL2VsUGoxTksrUW03WEZ4Y0E3bTFQWGYvNW85dk9rRE5kRzBPTFI1RzBVQVVqUllQZXpPdURLL2JCYi9QY0d1aEFJcnljd0FBUWlBUWdNL25nejBrWmVEbTFQcGhWVWkvOFkxdkhPdnU3djQ5djNWY1hGeloxTnphL3ZRRFR6NDNXRzR0b3lGWE1OeWFKQXEwSDlRVUdSNlhLOE90UlhKRGNCdUxUSVZ3T0F6V3RRMVFKYzNxMm1iTm1yV0dVdm82djMxY1hGeDI2YnIrNXZSdi9IQ0hBOVFHY0d1QUtCQklnamxkMERkaDRKSmx1SlYwTTY3ZjUwRTQ0RU5lT0lpaS9GenJhd281T1RrSUJvT1dhM1BLdGJHdWpka2FiMjFyM3JoeFl6SWFqVDdLYnlFWEY1ZGREVTJIbjluVmVFakY0SlZRSFNCVVNCOGtTVVZCZ0NTSmhsdExRMDJSbWZZT2p4dEJueGM1d1FBS2NzUHdldnAybXdyNStma0loOE1JQkFMd2VyMFczRXpITmxUWEZnNkhOK2k2L25kK0c3bTR1RXlsVlBYNWtaK2J0OHZCcVEzdTFzUk10eVliQlFPUDJ4aWQ4bmtRRHZxUW54TkVVU1FuNCtzS0JRVUZ5TTNOUlRBWWhOL3Z0M0p0RGhNSkE3azJsUkNTT25Ma0NIZHRYRnhjbG5ic3F0K0V6R1pjQzJ5R1cxT0g2dFpjVm51SE1Ucmw5eUkzRkVCQlhoZytqenNUYkNVbEpjalB6MGRPVGc3TVFzSlFjbTFtTVlGMWJjWEZ4ZjlJcFZJUDg5dkp4Y1hWMWRPN1p2THM3eCt3UVMyUnphMEpSaVhVeWEwcHNnU1h5Mnp2Y0NIZzkxcnRIU1dSdkg1ZlcvQjRQQ2dxS2tKZVhoNUNvVkRXUW9KVGhkVGUxMFlJU1gzd3dRZVBBVGpJYnlzWDE3a3JDaHo4NitaL2JvTnp3WUIxYXhsOWExWWwxTzdXRktOZzRIYW4yenY4WHVTRmdpakt6NEhIcmZRSEd3Q1VsSlFnRW9tQUxTUjR2VjY0WEM1a0c1TFBsbXViT0hGaWZYZDM5NFA4MW5KeG5iczZjclRqeWEvZSthc09tMVBMNnRaSWhsc1RNODVaY3lreVhJb0NyMXVCejJzVURFSUJSSEpES0NuSWMvejZBZ0FvaW9LaW9pSmtLeVRZcXFUVW5FcXdyK2d6WGR2VXFWTWYwM1g5Ulg1N3ViZ0drZUk3NjM0a1ZkTmUvc3lYYm50akNHNU5NOXlhYms0WlNFYmZXcjhxcUhFeWJzQ2JidS9JRHdkUkZNbUZJa3Zad1FZQTVlWGxNQXNKWmtqcVZFaGdoK1NaR1ZLZGRXMDdkdXhJSGpseWhPZmF1TGdHVTZqa3JQdVJkdTVwZkthcHRkTStYWkFBa0NETUJpckRyZW5FT2tTU1dFNU50bzFOZVR6cGszSE4wenNLOHNJb0w4clArajBJN0IvTWtOUjBiUVAwdGxtdWpabElZSjFicXJpNCtPVmtNdmtiL3N6bDRocEFrWkZubFd1THhyc2Z2WERXN1I4YmJvMkZXdC9BZS8vejFxaElDRTBQdUlzMGZTcXVuT0hXMGhNR1hvU0Rma1J5c29lZ2ptQXJMQ3pNR3BJNmpGdFJTWkl5Q2dtc2F5T0VKTGRzMmJLS1VycURQM3U1dUxLSUNFRDFwVUJPQlNCN1B0VS9pcTdUZHgvNDB6UDJnb0dWV3lOQTBneEJtZlBXcUdDRm9HbW9aWnlLNnhTQzV1ZWlNQzg4NFBmU0wwQXRMUzFGZTNzN290RW80dkU0ZW5wNmtFZ2trRXdta1V3bWtVcWxvS29xVkZXRnBtblFOQTI2cm9OWjA2ZFJTZ1VBNnRWWFgzMjRyYTN0d2R6YzNKWDhHY3pGbGMxZWlFREp1RS85ai9IaG5qM3I3L2p2eCtJT1VFczdOa0xTQlFOQ05DTjlSUVZSaENqTGtGd3VTQzRYWkk4SGl0Y0xsOThQZHpBSWJ6Z01mMTRlZ29XRnlCMDJEQVVqUnFCMDNEZ2dGQnE2WXdPQVVDZ0VwOTYyTEkyN0dTRXBISnAyOC9MeU5xWlNxWWY0czVlTDYreFZQQjVmWFZOVHM0Y0pRVE9nUmdoaDErcnBBTktOdUtKSXpWWXlXWmFoR0p2YzNXNDNQQjRQZkQ0ZkFvRUFjbkp5a0orZmo1S1NFb1FHZ1pvajJJQjBJY0hzYldPSDVMUE5rdHFhZG5WQ2lOVnBUQWhKdmZycXE0OVFTdC9tdDUrTDYreVRydXZ2UFByb295K2lmMTZOaFZyS01Ec2FJVVEzSnBpc3RaOG0xRXl3ZVR3ZWVMMWUrUDEraE1OaDVPWGxvYWlvQ09YbDVVTXp3VTRmbEdVWlpXVmxLQ3dzN0ZjbGRUaHhkNkJDZ2dvZzlkblBmcmFwcmEyTmg2TmNYR2VoOXV6WnMvNDczL2xPTkdzSTJ0ZTNabXgySjFuZG11blVQQjRQL0g0L1FxRVFjbk56VVZoWWlMS3lNc2l5UEtUdlNjcjJGMFZGUmVqbzZFQTBHa1ZYVjFmV1hCdWJaOU4xbmVxNmJtNjEwaWlseEhCdFFpUVMyZFRiMjd2QzVYTE41MDhGTHE2elE4ZU9IWHU0dHJaMjd3QnV6ZG8rWmJnMWFvTE5iUGhublpycDF2eCtQNExCSUhKeWNoQ0pSRkJTVW9LaW9xSWhmMS9TUUg4NWJOZ3dkSFoySWhhTG9idTdPd051WmdIQnVLaXU2OFJXU0tBQWRFcXBWU1g5NHgvLytMOXo1c3daS3dqQ2RQNlU0T0lDOXUzYjk2bjkzbFZWZmVtZWUrNTUyUWExWHB0Ynk4aXJBYUNFRU90ekdDWUlBSkRHUnZxdHdSSHJZOGY3V0EwSU5wL1BoN0t5TXN1MWRYZDNXMkJMcFZKMjEwWTFUU082cmxQakc5TU54MmJtMjRSdmZ2T2JIZE9uVDMrd29xS2lGa0FKZjFwem5ldXFxS2o0dEg3cnphKysrdXFHVmF0VzlUaUVvTDJ3RlF5TXZKcHVPRFZxT0RScTV0TE1Ja0U0SEVadWJpNEtDZ3BRVmxhR3Fxb3ExTmJXRGptM05pU3dBZWxDd3JGanh5elgxdHZibXdFM3R2WERDRWRCMDRMUjEwWW9wV29hemtTb3JLeDhJeHFOL2s4Z0VMaVhQNjI1dUQ2ZE9uanc0Qjh2dWVTU0pnTnFMTkRzSWFocVRpWVJRcXk4bXIxWTRIYTdMY0FGZzBIazV1WWlFb21ndExUMHVLRUdaQ2tlT1AxV1lWdEEyRUY1V3dzSWRSaVNaOGV0VW9TUVpEQVlmQ0taVFBLUkt5NnVNMVIxUzZhaXF1cG1ySTMyLzd0NFBMNjZyS3pzYldTMmRsZ2hxQzJ2WmtITlZnV2wyYURHdG5aOFVrYzdKTEFGQW9HTUZwQlFLT1E0bFdDRG0xa2x6UmlTTngrSTU1OS8vbUZkMTdmd3B4QVhWMXJSdXJWWU11OGFUQjFmZzZxcUdveWZOQjJ6Rnp5Q3JhMW56dmVvcXVyV2xTdFhib0Z6QmRTQUcwMVNTbFZLcWFicnVxNXBtcTVwT3RWaHVUV3FLQXBFdFF2dDdURWs1WFE0R2dnRUVBcUZNbG83QW9IQUovbytwYUgrdy9MeWNzZHBCSWRjVzdhUUZFYk9UU1dFSksrOTl0cERqWTJORDFSVVZGUVFRcXI1MDVyclhGYnIxZ1dZUFc4ZEdvSVRjTzMxODNGREtSRGJ0UTBiTml6Rm5LMnZZY1V6RCtLNnlPbjlIaW1sRGR1M2IzOTZ3WUlGTVljUXRCZnBJZmNrcFdiQmdHaUVwRWVuS05WcEt0R0RoTWVIZ0dHQ3hHZ3ptbzhvQ05lY2x3RTFNNy8yU1VMUTR3WWJBQXdmUHR5eFF1b3daa1YxWFNkbVpRTUExWFdkYlFFaGhCQmgrUERoYjdhM3Q5K2ZrNVB6aStQOVhyaTR6aDZydGhYTEZxeERRMlFtVnExZmpta1d3RzdGTFRjc3dZeVpxN0JrMlZaY3VYd2FYS2ZSckRVMk5xNlpPblZxazgydFpZYWdsS1lMQmtUUVJNSHFWNE1rYU9qdVNhRTNucUJDWGhBdWx3dWlMSUFRRVc1dlptdEhhV2twaGc4Zi9pOTlzOEx4L0dPdjE0dUtpZ29VRnhkbkhFeVo1ZFJkS3N0eXY1RFVOcFdReU0zTjNkRFQwL01yL3V6bU9uZTV0Z1liamlxNGRQNUMwU0F4c2dBQUlBQkpSRUZVQm1wcEJTZmVnc1VMYnNDVmtRUmFiZm12WmFzWFlNYlVHbFNOWDRDdGFkK0hyUS9jaGhsVHg2T21xZ28xazY3QnpVczJvU25CZk1LdHQyRjgxWFFzV3JzYWkyWlB4L2lhS3RTTW40b1pDOWFpemlHZmxxamZnRVd6cDJQc2lJcUhxcXVyMzJlY1dpOTdFVUlTWUErUVRKL2NvWnVOdUxMTEI3OGtVSUhxSUhvNzluN3dBZDQ3bEFRaGNieS82Uzk0NUsvdkl4V0pvUGpJVTVnemF3NXUvLzJmY05zMWsxQlROUlZMNmdCc21vZWFxa2xZc0Qzeis5dTZZRHlxYXVaaEUvdkJwcTNINzVLS2k0c0hkRzFtT01xR3BHWUxpQkdhc3ZrMkFZQXdaY3FVaDk5ODg4MUNXWlp2NGs5enJuTk5kYS90UUJLMXVHS0tVNndad2JSYmwySmF2NDl2dzhwbFZiamkrdmxZVkZXTGFrU3hkZEVNekZtVHdPUWI1bVBwQkJkYVgxdUhsYXR1d2V6b0ttek9jSHNOV0xOb0ZhNmRQeC8zelE4aXVtMFZscTFjaU5sUkZ6WS9lQjM2dm92dFdIWnpIU28rKy9rbjlyZjhnKzFYNnhlQ3NsQURvRk1LU296RlQrbThtZ0ovVVNtS3ZWNzRQQkp5eHBZQnh4cnd3V0UzeGw0eEhSZVBIb054UlVVWTVnMUJrUko0ZnZrS2pMbjJSc3lmV1lXSkVRQk5RM2UvQzJiUCtXVGhYM1YxTmVMeGVOYjJEd1pzR1NFcHBaVHF1bTV2QVNFN2QrNFV0bXpaOHREMDZkTUxSRkc4bWovVnVjNGRKZERhR2dXVUNDSXMxNkt0YUdXZEZsd0lSb0lNbkVveDg3NzFXRDR0YVB6N1RWaXhIWmh3eTRONGRPSEU5TCs3L2pwRVdpZGg0YWEvWWZ2eWFRd2NGVXhlL0RqdXU5SDRnbE9tb0N3eEhUTlhyY0NxdXV1d3NMYnZhNDYvODRuTm56bXk0ZmtOOFI2blhqVjdGVlFsQXRHaFU1MVNuYVpTS1ZBSVVFUVpzaXhUYTdqZGx3NDlKYmtadTQ1NFVUbHVJaTQ1dndMRHk4cFFmU3k5UnEvcWxzZXhmbUh0Y1lmZWRTdVhZTjNCcWs4R05sRVVVVlZWMVE5czdEU0NiY3lLbUlVRUkrZkdGaE1JSVVTNDZxcXJtdXJxNmxiVzFOVGtFVUltOFNjODE3a0N0a1FpRFJFWDh5cmV2dVFhM0xEdWFOOEhBak94NnQzbERKeXFNWGxpa0lsWnI4VHl6VmZhUG5jUTFXVVJZSHNyb2dtZ2p4SXVSTW9pR2RDY09QTTZWSzFhaWUwN1dvRmE4KzhtdkZXdTdIMTYvdno1VVZ0T3JjZTRlbTM5YXVsR1hJbFFVSjFxdWs3VlpDK090U2RvM09WSFVYa0llVVpyUnlBUWdCU1ZJWW91QlBNTHJXWmM4VjBDSUlEYXliV2ZJSjlZajYxYkc0QXhDejU1d2o0Y0RxT3lzdEtDVzdZS0tldmNUTGdaVXdrZ2hKakZCSUVRUW1wcmE5OXJhbXI2YlVsSlNTNGhaQVIvMG5PZC9US0JaZ0RPZURYWDNuSWZWbDJiQUJERnRtWHpzV29vb1ZpMERtdFhyTUNhVGR0UmR6Q0dwR1hRcXROSUdvZ1VaVlVvQTFEZjBBUWdBa3BSMzlQVDl1ZDdaMTdWWW9OYVh3V1V5YXNadVhNcnJ5YkxMaXJMTW1SQnAycWlGL0dlT0pvYlBnTDFUY2Jra3JSamt6c1VTSklMNGNJU1ZGWldJaHdPLzR1UFpTc2FXZ0ZsWXZXL1Zva3NLeXV6QnVSWnVHWEx0UmxRTTRlL3pMQlVNeDRjQWtBb0t5dDcrZWpSby9mbjVlVXRBaERoVDN5dXN4MXNrVWdRU0RhaHFSVkFtZUcxcXFkZ1dqVUFSTkc2U2hsQ2pxa09EOHllZ2VXdEV6Rm40WElzckM1RDBBWFVyYndaQ3pjTjFUdGFPbnFndlh2MTRjT3ZOQ0p6c0wzWElhK1dNdk5xNWpKMWRyckE3WGJEazErRVNpV0ZwcjM3Y0tUaE1EQ2hDams1T1ZEYVhaQWtEL0xMS2xCV1ZuWkNIOVYvdWNWaTFLaFJHYTZORFVudEozOVFTdGw4bTI0T3d4cmhLU0dFRUVvcHljL1AvM3RuWjZjL0ZBb3RCdURtVDM2dXMxbTFsMDVFWU0xVy9HMVRFNzcrOVUvNEF0K3hCbXQyQVpldWVCQ0xyK3NMVVJQQklRWjA5ZStnQ1VDa3FxejM0TUdEcTY1ZThYWWQrdG82elBDVGRXdjlRbEJDcUs0bWswaUpMbmg5TWhSRnNmSnEza0FleXZNUG9MTXRpVlFnalB6OGZMaU91cUVvUGhSVmpSclNMd0Fna1VIZi9vcWdLZ0lrbTVxT3I5M0RTWVFRakJneHdwcE15TS9QdHlZVDdHTlhaZ3VJYmZHeU9YSmx0b0FrQVNUQzRmQ2Z1N3E2ZUJzSTExbXY0TFJiY0gxcEV1K3NXSUJINmhMOXdxdlcxdVFRN0ZZQ1VRQ0pLUFAvSitydy9JNVd1eHNERUVOOVhUMGJ3MkxUcWswNGlER1lNZ29QR2VOU0xOUjZHYmhsbkxGbXZuN05maldCZ0ZJOWhTVHBLeFo0dlY3NFBDbkU0Z1NDUHc5bGhma29LaXBDUldFSWlxSWdtU1NELzN5UkNDS0lvYjYrS2VQbmU2MHV4dnlqYWt5YlZnWHNXbk5pbW1JRGdRQ3FxNnY3RlJJMFRjczJJRDlZTVlGUVNvbmY3MytzdTd2YjQvRjRidWRQZjY2ek54cWRpSVVQTGtMZDdLVllPbU02bnIvdVNsdzZwaFE0Mm9EWE5tM0F0b1lBSnR3eUV4TUh0SDNYNHNyOGRWaTNaRGJtTlZ5SmFyUml4NllOMkhFd0NTQ0tSQlFBVTJ2WXRYdzJaalJjajJzbjVPUG9hMnV3K205SEViNzA5Z2QvTUtuZ0h3Nmhadzh5anlPeU9UV3pFVmVpYmg4UTYwclMrTkVXSkx1RHlBbW4wQk5ydzc3Mk5yUW5YYWllUGhVWEdJZEdqblNOUXVpSkxWaXpaQWx3eGFXNDdzWnBLQnZvNXl0ZGhWWExic2E4Z3pNeHdYVVE3MnphZ09jYkFEQ0w0R3R2V1l5WkcrYWN1Rzcvd3NKQ3gxeWJxcXBzUDF0R1dNb1dFNHhQbzluRDBsbXpaajM4NXovL1dYRzczZC9tcndDdXM1WnR0Vi9INDV0cjhjaXlGVml6ZFMxV3JJc2hxZVNqcW5ZYWJsazVIL092ckI2NFNoaWNocVdQTDROcjBRcHNXTDBTVzExVm1ITDlmWGg4d3ZOWXRMSUpCNW44SFJEQUZZc1dvMnpiQ3F4YzBvQ29xeFFqcjczN2tmcFhmN2tWL2FjS3JCQ1VFQ1FvTlZmb1dWRHJhOEtWWlNpS2o1YUdLSHFpY2NSN1kyZzlITU5SUVVHNHNBcFRwMTZPYS85dEpFcExTMUZWVllYeXkrL0U0amVic1d6REtxeG96Y2UwRzZjTkRQOUhseUc2WUFVMnJWcU9yWUVxVEx4dU1aWk5YSUdGR3pJZmgrV1Byd1JoRDNJN0VkcTllemQyNzk2TnhzWkdIRHAwQ0VlT0hFRjdlM3ZHMFVjR0FBa0RRR0wwdXdrQVJFcXBCRUFHNEtLVXVuLzBveCtGZi9qREg5N2ljcm5tOFpjQTE1a3FUZFBRMU5SMFpwK3h0dlUyakorekZkTld2WXY3REk3RVlySGZmL3ZiMzk3OGh6LzhvWWR4WlQwQXVvMjNQWVFRcTJCQWpHMVQ3UGxxek5IZTFobHI1dnluZWI1YVNVa0poZzhmanBxYUd0VFUxSnpVSC9PRXoyZU9IajNhQ2tudDdSOVpYSnQ1NGk2UVdTbTF3dEtmL09Rbm5aRkk1T0c1YytjS0xwZHJMbjhKY1hHZEdNVmlzVDhzWHJ4NGl3RzFKQU8xSGdacS9VN0RkYXFBc3NVQ244L25lTHgzWldVbFJvOGVmZEovcmhNT05rSUlSbzhlYllITjN2cWhhWnAxNUMrVGI4dFdLYlUrNTNlKzg1MDJSVkVldnVtbW04RGh4c1YxWXFDMmRPblN6U3RXck9oQ1pxR0FiY0RObGxmVEJVRmdOMHhSY3hHTC9jQkkwNjJaVUdPUEJ2L1VnQTBBUEI0UFJvMGExYTlwMTliUDFxK1lZTGcwMDdXeGNDT0VFREp2M3J6V1JDTHh1N2x6NStwdXQ1dUhwVnhjbjFESjd0anZGeTlldkdVQXFMRk9yZC9xUE9QQVNHcDNhdWJLdkZBb1pCMFlXVnhjaklxS0Nvd2FOUW9lejZuWmRpL2VmZmZkSitVVG13ZFFtbkF6SzZRczNHelhZQmluQUxCeDQ4WVVJZVQ5aXkrK1dKVmxtWTllY1oweG9wUWlHbzJlZ0E3Nms2aktxM0hEelRjODh2U3kvMi9MNzM3M3UrNXNUZzBPa3dWc29jQ0Vtc3Zsb3V3SnVQYVZlV2FoWU15WU1jalB6ejlsUCtaSlBRT3RzTEN3M3pTQ1E0VVVUSjdOcXBRQ2dHMWdIb1FRVUVxeGRPbFN2UFhXV3crdVhiczI2ZlY2ZVNzSUY5Y1ExZEhSOGVBVlYxeXg5YTIzM2twbWMycXdIVVBFVmo4eks2QjlUczNjMnM3bTFJcUtpbEJSVVlHUkkwZWlzTER3bFA2Y0ovMXd4L0x5OGd6WHhrNGoyRjFiK3BjZUpRQ29xcW9tM0RRMkxEWGh0bkhqUnZoOHZ2K054V0s5ZnIvL2R2QUpCUzZ1Z2RUYjJ0cjZVRUZCd1QvUS8vVGJnYUNtRVVJMG9lOElvcXpoWnpBWVJEaWNuaW9vS2lyQ3NHSERyT2I5VTYxVGNtcHRkWFYxMXVQRG1WTjJUVHR2NWRwVVZUWC96aEZ1QUJBSUJQN1kwZEhSSFE2SGJ3T2ZMZVhpY3RMUmd3Y1ByakltQ3RqWnp4NWIrT2tJTldiQmNRYlVuRmJubVZBckx5L0hpQkVqVUYxOWVrNzlQMlhIY2RmVTFHVGJpK0RvM0V5NEFlbitvQUhnUm5OeWN0YTN0TFIwUlNLUmIvRlRRYmk0d0JxRit2cjYrdFVqUjQ2c0c4U3BKYkpCamMycFpRcy9uYUIyc252VnpnaXdBY0RZc1dQN3dTMEwyQ3k0bVFtM2JIQXovMXhZV1Boc1kyTmpkTml3WWZNRVFiaUlQNlc1em5WcG12Yld1KysrKytjTEw3eXdFZjFuUHdkcjZiQ2dObGhPellSYVlXRWh5c3ZMVVYxZGpiRmp4NTdXbi8yVWdvMFFnckZqeDJaMWJRNi9iVmdINXdnMzQvTlNTaWtkUG56NFAzYnMyTkU1YnR5NGI0cWllQlYvYW5PZDhUcjJ1NVB5YVZNcGJmT1diYnVldm1ybS9TMU0rR21mL2V3aHhycThUS2hSalJCS1JZRlFVYUJVbG5USW9nNlhwTUl0cS9BcUtmamRTUVE5Q1lTOVBjanpkNkV3RkVkNVhoVFZoWjBZVzk0R0VuMzkzQUViQU1peWJNRnRFTWZHNXR1eXdZMGFINmRtYURweDRzUVAxcTlmdi95YWE2NXBWUlRsYS95VnczV3VxYnM3K2NURGoyMTdmdjRkZjQ0T0FMVmVBaVJBWUt0K1FpTUVhYWlKaE1xeUFFVVc0WEpKMU8yVzRmVW84UGxjQ1BqZENJZTh5TXYxbzZnd2hQTFNYRlFQTDhEWW1sTElrbmphSDRQVHN2TE83WFpqN05peGpuazIxcTJ4SVNraEJLbFVLbjBVU1ByLzAvcllsdW5jWnN5WWNiQ21wdVpYYjd6eHhoRy8zejhmZkxVZjE3a2h0YTA5L3RENGYvdXZsdzgyeCswN0N0anoxRXlvMlp3YWRJR0FDZ0toa2dFMVdSYVE2RXpRenFBTFkzTFNVQXNHR0tnVmhGQldtb3ZxNFJHTUhWTUN0MXMrSXg2STAvYUM5L2w4RnR6c1lMT0hwWVFRYXVUVDdLMGc5Z2tGYXNKdDkrN2RlaUFRZUt5bHBlVndKQks1aFM5bDVqcFR0ZjJlKzNIejBmOFg3LzY2OWhQdkRhV1VOalR1TzdxbWVzS2k5NUc1VGFyZmVXb00xTlNCb0tZb0luVXBJcWlRUkZLUjRmZTVFVENobHVkSFVVR3dEMm8xcGZCNVhhaC85cC9Zbmo4T04zN0c3L0JkeHJIMXZtZXc1T245YUlwSmlJd2JoOFUvbVk0clM4NGlzQUhwYzl6R2poM3I2TmpZdkJ4Ny93YUJHMldkR3dCYVdGajRiRjFkM2VGUm8wWjlYUlRGei9LWEVkZFpaOU5VYmV2Mk54cWVubnIxTDV5V0dkdVA4MDZBOUIzcDNRYzFRZ1VCVkpJRUtrdkVnSm9NdDF1QUpoS0lMaGNDQVRkeVdLZFcxZ2UxUU1BTlFFWGRjNjlnWlVtVkk5aGFuMzBHdHowdFllbGp0K082a2w1cy9kRWF6THZqRFd4KzdDS1VuVTFnQTRCUUtHVEJiUkNvOVlPYmtXOWp6M096Z0diQVRRZWcxOWJXdnIxNjllcERNMmJNK05qdGRzL2hMd1d1TTFXSlo5ZGgvSVBBamFNVDJMcXpEYTFKRjZiZE5oUExQNThIRjFxdzdEL1dZUHZvS3JqMnRLQXBsb0JZTldiMWVTUFZMYis1NXk4eFpMWnoyTU5QYSs2VFVxUUVRalFRNkNiVVJBRlVUZWswbWRRQlFxZ2dFNVNWeXZCNlJHZ1MwTzEyR1ZEelFEdTBIMzk2TG9aTzNZdnlDOGZqaHo4ZWp1dUMrN0hrUDU3QzJrTWFZbGlEU1hzdXdlTVBYNFMrTUVuRmp1Y09JZmp2czNCZGlRVEFqMmx6eHFINkt4OWllK3dpWEorb3c3eXZiRVhrWjdkaTZXZk9BckFCNlkxWEE1V0hUY0FSUXN5TEVrS0ltWE16YzIyNnJsTzJ2NDExYmpmZWVPTWhBUGUzdGJWOW5KdWJld3VBWXY0eTRqb2pkZWdZY05jc2JQNlpIOUZYbjhIME8xN0Nwcy9PeEhVQkFFaWdWUm1EOVgvNVFuUHk0LzEvTEp0d3o5dGIrNWFxSkJtSXNVZDVKd2hCa2xLa1FLQUtJQm9JTklHQUVvSG9va0JBVXhyVmlJQ2NQQmYxU3hUdHJRbTBkSXNvSzNCQmxRVW8zblQ0NlRuNk1WYnZDdUsySDgvQXZNdHo4ZkZqeitMbWIyOUc1QzlYWWZGZmJzV0UyMytOWlNVMzRPVUY5aEdxWHJUR1ZFUktHQ2VYNzBjRXZXZzlDbUQ0TU54eTE3OGpPTzRzY1d5bWNuSnlNdURHUUt3ZjJPek9EUUJoNWtyN09UY0F1dUhlYUY1ZTNsL3I2dW8rSGpWcTFFMmlLRjdPWDBWY1o1eEtxakRUQ09XQ280ZWhPdmtHV21NQUFnQWdvbVp5eFV0N3QzKzQ0WktyZnRHRWdiZXo5OXBDVHhWSWg1NkVRQmNFUWdXQlFKSUlKUnBCVWdjbGdnaVgzNFVSdVVFb1hpK0NBUWtwUlVEVTcwTnhnUXYxcjNXaCtrdWZ4N3pMaHlFbjdFWE9iWmZodXFmWFljMC9wbVBLWUltZWZxc2JSQUFxWWtrQThHUGlaLzFuVHlocWg5dDU1NTNYRDJvRFFJNlN0UHJsM0N3YjE5Y09Zb2FtV20xdDdkcy8rOW5QR3Ivem5lL3M4bnE5L01oeHJqTlhSalVoWVd4ajZVbHBENy95Mk5xWEgzNXVXNDh0bjlaLzd5ZVFwRUNLV0ZDRER2UkJUUlFKbFNRQ1dSS2dlQ1hxN2traDJ0Nk56clllQkNLNU9ML1lqWnl3Z3FSYlJHY29pUEl5TnhwVUwyb3ZISUdjc05kTUpxR3FSTVh6UjNzeDZMaTJZditBQmtCQ1FEbnhEOXNaMXdZUkRvZUhCRGQ3V0dxK2J4eU5wSnRBWTRvS09pSEVkRzc2SFhmY29kOXh4eDMvZStEQWdiMmxwYVUzRTBJbThsY1IxNWtxcXROM2R1MDVzdjd1VnhyM0FvMnFRejR0dzZVUmdpU29CVFNORUdpZzBFRkFCWkZRU1NCVWt0THRISW9pVWdrRXZrSS95djBLZkxLTzVvK080dDJtZkV3WTRVZlNJNkV0TndjanF2TVFyWGdmcjBaMTVqdUxvK0dvaEVqK1lHZFF1QkhKbDlCNktBNGdsUDdRMFRoYTRVUGtKSnhtSkp5Sk56RVVDbUhjdUhFWU9YSWtoZzBiaHVMaVlrUWlFZVRrNUdSYjdVY1ZSUUd6Mm84eXEvMDA0NHoyRklBa0lTUkJDREhQYys4dUx5L2Z1bTdkdWgvMjl2YXU0aThmcmpOUnFxNnRmdkdKTGY5VE8vbC9kaU56ejZmMVBHWXVhMFVlTloyYWNaWmEraGM4Mjg0aEdJMjNJbExIZXJDL1RZWHNkU09VNDBlK1g0TGk4Nkc0S0loOG40SkFRVDdHamFuQkYyY1BSOTJxRjdEaGtBcWdGenNlMllvTkdJTWIvaDhKZ0FTWFMwS2k3UmhhRS8wOTFKVExoaUg2M0hhc2JWU0J4REZzV3ZVTzZzZU53cFJBR3BBN1hteEFmZUlzZFd5bUFvRUF4bzBiQjBFUUhDOUNpUDJ0NWR4U3FaUlpNV1dMQ3BRSlRVMzNwZ0hRdnZTbEx6VUIrRTFUVTlQT2twS1Ntd2doRS9qTGlldDBTOWZwdXgvV3Q2OWYrK0diZTdEc1RaVUpQWk9PTG8yQkdhVjkrd2xJdWo5TkZ5aEZTdGRwVDFLRXp5dENVU1RxZGtsd3UyWGtqMUNnSEl6aG5UZmpvS0tNZ29waG1IMVZHU3JLdlVnRVhEaFlXb0pBd0kzQTU3K0FCNDgrZ3lYLytXc3NpRW1JakI2RHhiK1pqaWxHeUR6bCtuRW91K01wVFAzUFMvRE1FeGVEYlI0Tlh2WHZlUERRYzFnMDk5ZFlaUFN4M2ZlVGllbFdqNlA3c2ZKSFcxSDJtMXV4K1B4Ly9iRTc0VnVxVHJSNmUzdnh3UWNmb0w2K0hnY09ITURodzRkeDlPaFJkSFoySWhxTm9xdXJ5OXA4bFVna3pGMExoTmwrQlYzWENhVlVNQzhqYXlrQmtDbWxpcEhKY0FGd3JWcTFLakpyMXF6cnZWN3YvK0V2TGE3ajBTZmFVcFZsVmpRYTYzbjBnZjk5Y2RzZGR6OFZSMStCZ0IyUFlzUFFkT2dKTnZRa09rSC9Jb0VzQ1pCbGticVV0THZ5dUdWNHZhNk1pWUw4dkFDS0NrSW9MOHV4eHFUT2xJbUNUNzFqc3lKenR4dm5uMzgrUkZIc2Q3SHV6ZWJnc2hVVktKTjdNNHNLT3RKVlV3MkFPbWZPSEczT25Ea1A3ZDI3OTYycXFxb2JSRkdjeGwreVhLY3M3RlQxbDNlK2YrQ1pDeSs3OTJNRFVuYVh4dWJVa2dSSVprd1JvSzgvelhCcVZCU1lJb0VpVWtXUjRIYkpjQnRROC90Y0NBWTh5QWw1a1ovSHpINVdGV0RzbUROajl2T3NBeHVRSHB3ZlAzNDhKRW5xQnpiN1d3WjJWQkFFSWdnQ1ZGV2x6TDZGOU42L3Z0RFVxQlFSelF4TkFhaWpSbzE2ZmNTSUVUdGZmLzMxNjNKeWNtNENVTXBmZGx3blM1VGk0SkhXWTA5K1p0cFAzbWhLejNteVVFczRYRWtIbDlZWGVwcVRCR0pma1NEdDFHUzQzUkxjYmdVK2IzcjJNeFR3SUJ6MklXSkNyU3dYSTRZWFl1eVlVcHlDaFZMbkx0aUFkSHZIZWVlZEIwbVNqZ2R3L1NxbWhCQnFoS1pnblp1WmQwTjZHNzBHUVAzb280L1UzTnpjOVJzM2Juempzc3N1KzZMYjdiNkp2d1M1VHFoQy93ZGRYVjFyL3ZyWHYyNzc2bGZuZFF6aTBneWdFUk5vS2VNWHNYVitHck9iQUpJa09lNzhORSsrdGUvOVpJL3pQcDJIUko1VFlETlZVMU1EV1piTkNpaU1OV0NPSWFvSk4rTXRZZUFHUFMzclNDU3pnZGZKdlYxOTlkV05BSDViVjFmMzZzaVJJMmRLa3ZUdi9CWEo5YThxbFVvOXYyUEhqazJUSjA4K3dBQXRHOVNTRE5SVTlBMndteEdIdFd6Rk9NYmJmSjFRUlZGZ1B5RFNoRnB1Ym03R2lyelRlWnozT1EwMklMMUR3V3p2TUM4V2NFNmhxWEhEcmRDVXFacGFybzBKVFRYR3ZWbFBvdHJhMnJjQXZOL1UxUFJDY1hIeGwvaEp2VnlmUkxxdXY5blEwUERNeUpFamQ1bS9QRzFBU3pxNHRKU0RTOU9aaXhxLzJMTkN6ZXYxd3V2MUloQUlXSHMvQ3dvS0xLaU5IRG55dEN4ZTRXQmpWRjVlbmdFMzgyYWFvYXJkeFJtZ3MrQ1dTcVVvSWNRODhOSmVXTkFad0dXNE53Q3Bzckt5RnkrODhNSi9QdnZzczFmbTVlVjlpUkJTdzErdVhJUG4wZWllNXVibXA2ZFBuNzVqMTY1ZEtwTWZZM05wN051a0RXb3E4MHZYQXBxNUVrOFVSZmFYUFhXNVhCbFFNNWV1bUhzL0k1RUlTa3BLckdYR3AzcEYzc25VU1Z1WWZDcGsybW1uZkp6NWRvQnhMSHRhMUp3cmhRRTRHSEN6R24xTjJBSFFtNXVidGVYTGx6ZWtVcWtYTHJqZ2dtYTMyMTFDQ01uaEw5OXpHbHlPQzVNcHBZMnRyYTJQTFZ5NDhFK3paOC9lZi9Ub1Vic3I2M2RrTjlMTFZYcnQrVFJtY2JIVFJuWW9pa0lWUmVtWFMyT0J4aTVkcWE2dVB1WExqTGxqRzRKeWNuSncvdm5udy96dHhFd2daT1RoMkN1UlNEaUdwb3g3TTRmckJWdDRxZ0ZRamZBMEJTQjE3NzMzSnUrOTk5Ni9MRjI2OUlWdmYvdmIwME9oMEV4K3FDV1hBYlNHMXRiV0RjdVdMWHZybDcvOFpTK1RHM1BLcGJGaGFBcnA0NFZVUW1CR0N4cEEra1lGQVVwQWFQcXBTa0JCUUNtb1RnRktDWFFLYURxRnBnT3FScEhTZ0pRR0pGV0toQW9rVWtCdmlxQW5SYkQ3b3dNQURweFZqLzJuMnJHWmttVVpoWVdGanFlQURISGUxRzdnekJONzJSTkM3TlZUeTcwQjBMWnMyWkw0K2M5L3ZyZTd1L3Y1Q3k2NG9Nbmo4ZVFTUWdyNHkvdmNjMnpCWUxDdXBhWGxEOS83M3ZjZW56MTdkdU0vLy9uUFhnZUgxbStucHkybnBoSmlnZERJcDZXZmk0UUlFQVdSaXBJSVNUSnlhYklNUlVuL2NuZTUzWEM3UGZCNmZmRDUvQWdFQXdpRndzakp5VVYrcEFERnhTVW9IellNVmRVaklFbnlXWGt2enZqSmcrUFZ4eDkvaklhR0JqUTFOVmxUQ2gwZEhZaEdvNGpGWXVqdTdrWjNkemQ2ZTN1UlNDU1FUQ2JOVGZXRVhlcXM2em94TCtOeE1xY1cyTWtGaVZJcUE1Q1JQcnZBdXFxcXFwUlhYbmxsYW1GaDRUV0NJRnpNWC9abnY1TEo1UFkzM25qamhhOTg1U3Z2TnpVMW1TTk5yRU96RndneUhKb3gwOHlNUWhIemx5aGxLNTVtb1l3dEVHUXJFcGp0SEdiNFdWWldocXFxS2xSV1ZwN1Y5K0tzVzNKU1dWa0pqOGRqRHNlYmVZZWhGQmlvVVUwbHFxcGE0YW5aOTJhNk5TTTgxUWNJVDVNQWxJYUdCcVdrcE9RRkFOdjI3dDA3b2JLeWNyb3N5NS9uTC8relQ0bEU0bSs3ZCs5K2RjS0VDWTBNek5pd00ra0FOUloycWdFMXE5cHBnSTJheFFIanVVbVo1NjRGTkRPbnhoWUovSDUvUms2dHVMall5cW1kVFVXQ2N3WnNBRkJZV0FpdjEyc0J6dTEyZzMwUzJPSFcyOXRyQVM2WlRHYkx2VkZLS1dIUGVEUFBkMk9lbUNuRHdWbUFBNkNNR2pYcWRRRHZ2UERDQzA5TW1qVHBVci9mZncxd3dvOTU1enExWVdkVExCWjc3c1VYWDN6N2kxLzg0dEVzUUhPQ211bk9yR0YxSTQrbTI2dWRCdFJnVmp6TjU2dVRTek9oWmk4VW1PMGNadU50SUJBNEorN1BXUmVLMm5NZWUvZnV4YjU5KzNEbzBDRzB0TFNndmIzZEdxQ1B4K1BXQUwwWm1ocEQ5RWdtazFCVjFYUnZHZUdwc1hoR29KUVN3OEdaNGFsNXNTRXFHNnJLQUpRYmJyakJ2WHo1OHNrRkJRV1hTNUxFVC9IOUZFbFYxUmNQSERqdzZ1MjMzNzdycWFlZVNnMFJhQ2s3MEFDMktKQUJNOTJjZDJiRFR0YWx5YklNdHBYRFBra1FEb2VSbTV1THdzTENqSFlPOG1tZGorSmdjMVpUVXhNKy92aGpORFUxb2FXbEJXMXRiUVBtM2N6Y1d5cVZnbmxLQ0FNNFlxd01KT3cxQU9Da0xJQ1RBY2liTjI4dXYraWlpeVlIQW9IcHZCL3VqUDBGdWFlenMvT2xiZHUydmZ2RkwzNnhqUUdTRTlCU1dZQ20yb0ZtSG54cWhwdDJsOFlDemV4UE0xM2FRUG0wdkx3OEZCWVdvcXlzREpXVmxTZ3JPL2VDZzNNQ2JBRFEyZG1aVVZSb2JXMUZSMGNIamgwN2hsZ3NaaDEvMU52YjYxUllnQUUyWXJvM0ZuQk1nWUVGSEZ0a0VBMEhaNGRjeHZYZWUrL1ZWRmRYWCt6eGVDNEhVTUtSY2xwaGRxaTd1L3VsdXJxNkhaTW1UZHFQdmlyNFlFQ3o1ODVZVjJjUE9hbDVJQU9UNDJWZEdqdnI2Umg2c2syMzdNeW5XU1N3OTlSeHNKMkYwalFOOWZYMTJMOS9QNXFibTlIYTJvcTJ0alljTzNiTU90dXRxNnZMT3R1dHQ3YzNBMjRPN3MwTVQ4MHozd1lDM0ZBZ1ozNU0ycjE3OTdpS2lvcUwzRzczWlJ4eXB3NW1QVDA5Mno3NjZLTjN4NDhmMzJnTEY1MkFwZzRSWnYyQUJtc1BCeWdSQ0JSWjdoZDJzaTdOTEJDNFhDNXIzdFBuOHlFWURDSVVDaUV2THcrUlNNVEtwMVZYVjBNVXhYUDJYcDVUWURQVjNOeU1mZnYyNGVEQmd6aHk1RWhHYUJxUHh5MjRzWWRYc25CakFjY1VGd1lDSERIQUpqaUVxWklOYXJMdFk5TE9uVHRIVjFWVlRmQjZ2UmNUUXNaeUJKMDQ2YnBlMTlYVjlkcWVQWHZxTHJyb0l0YVo2UXlZQmdLYXlnQk5wWlNxUnFYYzZuRTBONld4UURNcm5icXVVMEVRNFhhNytnSE5IbnA2UEo1K1EreG02RmxRVUlEUzBsSlVWRlNndUpodmxqd253UVlBM2QzZGFHeHN6T2gzYTI5dng3Rmp4eENQeHhHUHh5MjRPWVdtV2NKVEMzQU9PVGpDT0xpTVhCd0RPQ2ZRWmZ6ZHhvMGJpeSs4OE1MYWNEZzhRWmJsaTJGdHh1QWFvbzZsVXFuWDJ0cmFkdjd6bi8rc256RmpScHNCSUgwQWQrWUVOZmFFalg3RkFNYWhXYmt6Tm9kbUZnWTBUWWNvaXZENXZPendlci9RMDRTYTMrL3YxOHBoaHA3RGh3K0gxK3ZsZC9oY0JwdXBBd2NPNE1DQkF6aDA2QkJhVzFzSHJKcXlvYWt0OXpZWTRNQVdHV3lRTTUyY0dhYUtkcGc1QVE2QU9INzhlUG1SUng2cHFxcXFHdTMzKzgrWEpPa3pBUHo4YVoyaHVLcXFiMFdqMGZmMzd0M2I4STF2ZktPcHJxNnUzK1NJTFhUTUJqUVdadXovbzl1QVpqazA0NElkYUdiWXFhb2FGU1VKQWI4dkEyaHNiMXEycXFjNXhGNWVYbjdXbk1yQndYWUNGWXZGck5DVXJacWE3czFwcjBJVzk1WUJPRjNYN1ZWVVpBbFQ3WkF6UTFVckwrY0FOc24yZDJKRlJZVzRaczJhWVNOSGpxd0toVUtqWlZrK2p4QXk0aHpMazMyVVRDWS82T2pvK0dqMzd0Mzd2dmExcjdVME5UWHBObGZtNU02eXVUVHI3OHhtYk52bnlJQ1p6YUdCclhLYXgybXhoWUZrU29Va1NRaUhnaGt1elF3OTdRMjNiTlhUREQzUGxkNDBEclovd2IyeFZWUFR2Y1Zpc2F3OWJ3NjVOd3R3cG5zeklXY1BVeG5BT1lXcTluQlZ0QUhPNlgzUmZ2M2lGNy93WDNIRkZTV2xwYVhEL0g3L2NGbVdSd2lDTUJyV0t0NVByUks2cnU5SkpwUDFzVmhzMy83OSt3OCs5OXh6TFhmZGRWZVBDWmhCWUpZTmFobnZNODRzSTh4a1EwM1k1b21adzAySXBRaVhBQUFHR1VsRVFWUXRtREV1alRLTnRrZ2tVNUFrR1htNTRheTlhWUZBSU1PbG1hRW5kMmtjYkVOV1YxY1g5dS9mYnpYMDJudmVzaFVXc2dGTzA3VEJBR2QzY1NiZ2lBUGtCQWZJRGZhKzZPQUdoZlhyMStmWDFOUkU4dlB6Qy8xK2Y0a3N5OFdpS0pZUlFzb3g2RXJ2VTZaZVN1a0JUZE1PSnBQSjVuZzgzbnpreUpIV3VycTZ0aTkvK2NzZFlBNG1HQVJtMlJ5YTQvdjI1RDhMTS9RdEFLSnNNY0IwWndBZ1NWSS9vTEY5YVd4eG9LYzNtVDdFb1NDL1g0SEFxVGV0cEtRRXc0WU5nOC9uNHk5V0RyYmoxK0hEaC9zVkZ1enV6ZDdVYTA0c09MZzNxL2VOQlp5bWFTYll3UFRDd2NIRjJTRm5BWXFCM0dDWFlIdGZzTDF2NWY5Ky9ldGYrOGVOR3hjc0tpb0toa0tob05mckRTcUtFcFFrS1NpS1lsQVFCRDhoeEU4SThSRkNQQVlJelFNQXpNOEpCZ3pXMmpoS2FRK2x0SXRTR3RkMVBhNXBXa3hWMVdnaWtZaDJkM2ZIT2pzN284M056YkdkTzNmR0Z5eFkwTTNBaTlwQVJnZUFtVzV6V05wZ2wvMjh2V3d3WTBGbXVqTm1TeG9GQUVWUkxKalpXamd5aWdPeUxLTzdKd2xGVVZCU1hHQTEyOXBkR2xzZ0tDb3E0aTlPRHJaL1RhbFV5aW9zSERseXhOcG5PdFNtM3FFQ3p1YmlXQWMzRU9RY1ljZE1Qd2dEUUUxMEFKdjlZci9PUUJjYzN0cmZ6MGlET2J6UHZoM29zb1BNZm1WemFmM2VONDkrZDRMWVlEQXozN2Z0MUlBb2lxQ1V3dVZ5WlFXYXZlSVo3K3FGeStWQ3hiRFNqR2JiY0RpTS9QeDhGQlFVV0FVQ1daYjVpNUtEN2NUcDJMRmpPSGp3WUwvYzIxRDYzb3laVTN0NG1oR21HdTdOZ3B3eHpXQ0Zxc3g5c3Vma2lBT0Vzc0ZPeUFJemNRaGdZd0VuT0VCdElNQU5CRGM3ME9BQXNZRWNtcDdGcmRrVCs0TkNqQ2tBVUZ1WWFjTE1LZ1F3RmM2TUhSdWlLRkpLS2R4dWR3YlFKRW15SEpxOU9CQ05kY1B0OFdEVWlPSDlLcDVGUlVVb0xTMUZLTVE3ZWpqWVRxSmFXbG95M0JzN2tqVlFhMGcyOThhMmg1alZVNXVMQXpOMGI3bzNlMDRPRG81dVVPRFpxckZPUUJzSWJzZmozSTRIYk1jVGRqb0NqcWxPWmdVWUF5OFdubUJ6WnVhZjJUQ1RYUTdFQUkyeXVUUktLYnhlYjFhWFptL2g2SXgyd2V2MTRmenphcXh6MDB5WGRpNGNMOFRCZGdicHdJRURsbnR6S2k3WXE2ZE9yU0dwVk1weWJqYkFRZGQxNGdBNDFzbkJGcXJhM1p6OXozWW9aWFZpRHVFdUdRUnMyVnliUFNTbEE4QnRJTURwVG45bW9EU1FzN1AvUHhsZmkvMnpMZFNFM1puWmdFWnRsVTdyYkQ5ZDErSHorUVpzdEdWblBOczZZZ2dFZ3BneWFhTGwwbmkxazRQdHRDbVpUT0xRb1VQOWlndHNlRHBZL20wQTl6WWc1TXhpQStQazdHNE9XUnlkSFVSTzE2RE9qQTJIVDBhT3piWlVodzRSZVBZTHRpUGRZUWVaM1pXWnpvekpuMldGbVIxcUp0ZzBUVU13R0J4d2FKMXR0RzA1ZWd6aGNBNnV1UHdTbEpTVVFGRVUvdUxpWUR2OTZ1bnA2UmVlc3RYVG9iU0gyT0ZtbTJCd21rZTFRNDV0SFlGRFhnNDJLTUhCMldFQUp6YlVmSm9UekxJNXRxRVdFdXlBd3dBQWd4MWM5andaa3krRExXOW0zME9iQVRPMmZZTmQxRzNQcFdtYWhuQTRuSFcrMDZ4Mm1tSG53Y1B0eUk4VTRMSkwrSXJhRXltSlB3VC9tandlRDZxcnExRlVWSVREaHc5bkROV3orVGNUY0hZSE4xRDExQUZ3bE1uREVSdmdxQTEwNWtWTm9GRkt6Y01HMlY5b2c0TEtDWVlEd0d5b3B4blNvVUxPWVMwaWJDRWwrMjh6M21lY21TUElISUJHN1V1M0J3TWFlMm1haHB5Y25INWIxOW1qaGN5aDlhS2lJa0NxNXk4aURyWXpWejZmRDlYVjFTZ3VMdTZYZjJQYlEreUFzOCtlWm1rUGNRcFJxUWsxVGRPcy9Kc1Q2RXpBTWE3T2hGMC8xODVBYkRCb1pRUFlKd1ZiVnNBeEo3LzIwYmdQZHJBNXNneUkyY0xNZmlBek42amJROC9Cd2s1N0RzMjhWRlZGZm42K2RheVFIV2htSG8wUHEzT3dmYXJrOVhwUlZWV0ZrcElTSy8vVzF0YVcwZi9tVkVFOUhnZG5DMDh6M0J5YmczTndjSGJZbVhCajMyWkFqLzI3VTVIQ1lCMlg3V1A5NEdWNzZ3Z3hCNkJsNU5CWXFObkR6c0VjbWoySDVuYTdrVXFsVUZKU2t0R1BscGVYWnpYWnV0MXUvaUxoWVB2MHl1MTJXOGN5c3dVR3RvTEtBdTU0Y25BTzdzMnBUY1FPdW40RkI5UFoyUUhIL0preVJRblcxZldqbWhQOGh1TFVuTTdoWnovR2dzdm14dXp1TEFObWJJdEdsdnlaWTdnNVZJZG16NkdaVXdPcFZBcVZsWlhJeWNuSm1CcVFKUDVTTzVYNi93SEYxRm5aOGoxaXh3QUFBQUJKUlU1RXJrSmdnZz09Il0sWzEsImRlc2NyaXB0aW9uIl0sWyJzcmMiLCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVRZQUFBRTJDQVlBQUFEcnZMNnBBQUJNQzNwVVdIUlNZWGNnY0hKdlptbHNaU0IwZVhCbElHVjRhV1lBQUhqYXJmMVp0aVc1bFdVTC9rc3JvZ2tpcUFSb0Rpb1o0L1VnbTU5ejRpaU5SdEk5SXZ4bG1sSUwzbnV1Rk1BdTF0b1ZydjMvK1grKzYzLzlyLy8xdktta0srVzNsbGJLelgrcHBSWTYvNmozNzc5Mi9uenVkUDQ4LzhYeTUxL1B2Mzc5K3VzYmdiK2puL3g5NCsyL3Y1L08xL00vZitBZjkzakd2Mzc5cW4rK0UrcWZDLzM1QmhmK1BZRjM5dC9yN3cvSjE4UHY2MC82YzZHMmYvOG9yYjUvZjlUeDUwTHp6d2ZQby96NW5mNTZyTjlmL3Yvclg3N3dza29yYzZNWXdvNVB2TStmNmZjRThmZTc4L3M5ZndZKzkvQzFIbU1zRjM4OThmMXpNUmJrWDE3dkgzL2Y5OThYNkY4VytSLy91djU5OWYvNjE3OHRmdWgvdmg3L2JTM0xuelc2eTMvOWpTZi8yOWZqWDdjSi95SU9mejFSK05kdjNDSEYvM2lkUDcrL2I5WHYyNyszNjBoaFMrV1BSSjNGZnY1eEdUNDRXUEo0ZnF6dzYrVjM1dC92K2RYNFZlOStUN1o4M2ZNZS9KcFBld0s3OGwxUGV0YlRuKy9aNSsvNVRCNHhoUjFlL2c1aGhuaStWdU1iV3BqUmZVcitlcjd3eGhaWHJPemJEUHRpNjFJTWZ6M0xjKzdienYzbVU3bnpldmhvZUxpWVcvM2YvcnIrZDkvOG4veTZ2bSs2Uk05ZC8xb3JuaXNvMXp5R08rZWZmSW9OZWI0Lys1YlBBdi9qMTUvdHYvOG1QNGdxTzVqUE1sZGVzTi9qZDRtUm4zL0tWano3SFBsYzV1K2ZDajNYdS81Y2dDWGkzcG1IZVNJN2NKY241cWM4OXh2Qyt6eXNZMldET2s4ZVlncURIWGh5RG91SFJGNWlDZGNiYXZEZS9NejduTStHSEVyd3k5Z21OaUxIZ201VmRxaXpXU2xsNU9kTkZSbnFPZWFVY3k3NXpmWEtMZmNTU3lxNWxQSVdqVngvNDV2ZS9KYjNmZXZiM2w1alRUWFhVdDlhYTZ1OWhSYXhnYm1WOXJiYVd1czlYSjBiZGE3VitYem5LeU9NT05MSW80eDMxTkZHbjRqUFREUFBNdDlaWjV0OWhSVVhabUtWOWE2NjJ1cjd1VGFXWXFlZGQ5bnZycnZ0L2lGclgvelNsNy95dlYvOTJ0Zi8yclUvdS9vZnYvNEh1L2I4MmJWd2RzclB2WC90R2wrOTN2Y2ZsM2cwSjlrOVk4ZENldGp4MXgxQW9JTjdkdGNucGVET3VXZDNDeWhGRGp4a2RtK3U5YmhqYkdIYVQ4amY4OWZlL1hQbi9xLzI3Y3IxLzJyZnd2OXA1eTYzN3Y4Zk8zZXhkZis1Yi8vRnJpMzkzRHc3OXROQzEvU09hQitmNmFGZS9MNXYvdmpyYng2cDdwN0w2SG4xa1dkZXFhTWk5NzdmRjRmeWNObVpZbjkzdjFOWU82VXZocFRlSzliUWE4Wk81YStOc2Q1N2JOYzhzRFp2K3VwVDhGclBkcW5penBVMXJuMitiWS82MUw3ak84dkhoM2R1VjRtNHlCRXdaWVZscjJGekU0eGYvN2hvU3l6QnlPL3FmYzMwM2pQdzFud1hieHZZMGR4YS9ZbytPbzc3WXNPL09ubVorTDVmcVd6RDJobWZIc1lJdmV5TVJ3UUlQTHhsbmFPdHROTllMZk9jdVlYTXBuN0lFd0pVcjRFUlhwWG5DcW4xUFYvZXVlYjFmbThyOWV1MWpQWStYMEVvSXErNVcxOGRPOU16Ky9IdVozQ2hOMjA4d1hzOTdCNHVvdll2NTQ4djFQeWw4ZDFuVC9IZ2RjZTYyVS8ycnFlRW9JNVVTd2hydHZmRncxUldaQjNkdWNvN25sMTR6VmxIaWp6TllBay8xQUlkd0g0OXBha01uMUw1N2Z6bCtaWEpvOFZudDd6MnF1K2VIMXRjVUpGNWYzM3R3ZDUrTWRZNzl6QlN1dG1kOTVsMXphVVhXdC9kZWNiOERsNXZmVWhQV09OYisvbG1yeXU5Kzd0NGlxeDQ3UGNwNzNkdmZNSEx6OHhSMm14WXlQZDk0c2F2enBCdjlndWREM2ZKZGFQckc2ZjI3SW5FUFN0Y0kwMWVrajhpdCtvKzloZm5qWmNiM3JPbFhka3lkaTZ1Kzlzam9Wbzk4WWc3c0lNWWx6SkNyU0d4L1JPUmFDbjB2VldudVQ3V2xsdVArYjBvM1U0RnVZajM3clBpZFhkZ0M5QzV3YzY5TGgxWHcvWWdGL25DUG9Ua3hTcHFGbmZ4L2R0dXdiL1hOOC8vZjNwaHM1Nm5aVFM3M1RFMmZYZ1liM2kvMkhkZUk2MXJMRjRtM1BWTHJHRmlEenNPS2JjUmUvdFFjT0J1VzJOZ21DYmJ3Zjh3Vm14VGIvRWJvV0Nwa0tuVTN0d3ZmTk5DTXdjN0hWSkJxZ2VHQjdBQXNwdklGelp1YllUanJldkxBMlVaZS9LWU55L2xEU0pyMitabXQ2K05UajF6RlV4YlExYjd5bHZkZjdGSTkrQlJFS0cxUUl4ejhyRTNIRDBzV0krZXhoeiticXYwOWFDMDJpYmM1NDVlTGN6R005MnJwcktScjRhdGlieDFmN25MZzB6c2pxbGFxN1FXTUZBcGxkcnZ2TGdPeUw5aXhQWWNEeVlaUk5YQlZ4R2JJaTVlNmR0UC9saFdWZ3ZKU2JraU1hM3hrYlhxTE9sN0VOUVhGVTF4UWlFKzNqUnJUQkhWK21Jd3NBWCtMOFRCNXM0K1o4UWZvTHgzVGhnbDlCZ2wzOXc5THBUM2V3RjZvUTlzZHJ2ZFl2UVQrTVhiOCsrWSsxMnd6YkgzdDk1alloZmkzZG8zSzR2Q1U5MjVZVTE0aFRsQi9yRXNsdnZDek1YTmpzeGNucFI3VFJqcThLUTNJSU1kTHFDSHV3dUxneWZJZzQwYWhlY2N1d0ZXeHV4bGxZU0hBRVRVbVBKNGNrVFVKMnBYc084VDNMcmJmTit1TUxIM3JPUERzaURzdlBsdUdBM1cwVjNFcDdFay9VWXZMcGE1cE1ETEQyMUw0c1ZRSUM1MmYvNTRYaXhmd2dFTlJHVy8yTitNU3FMMGZLNDJibzZ3aDgwRjl0VzRZNHQ1cnJjTzFCem5zSEJ5dURLRUR1L1YwZmZZNTUxS0tNL0h2MnY1VUY5TU9UOHhQOXhGM0R2anhhRlpHNXVYRTUvQUFLWStzRTY4YnVVdlRENWVBdUY4ZTZxajNCT0ZCbVVETmpGeGVYd0ZiVVlpTXo3andXV3ZoUnRwWGg5bm05N2FlbVpWMFFoV0Z2SEg2bUtHZmVmQk15TmhyNUx4ZklNbmEvVjQzdlcxV2E5SEN5S3c1eG5SRnN4NUx3RkJ3STY2L0E4K0d5ZVJ0SWpOVmVUYkJiRFBXN0RTN0ZoVDBsNFpwRnVNVVFOS1lIa2p0cFJYeTFoUlZpYS82RCtDV1ZyR2tDTSsrR0YwclFxbnY3bGJTWURSa2p2T1pWelNndzlHOElZUlpzVUF5VlhDOXVJZG1VSmxrSjVVUGtES2hpdjBnWWdqSDBYUDlXSE1jWWhMYTMwOXFPVVJwWFhqejlhSDJyZHYrWUg3UXhLaEVBVVFrR0NtTENieXhZOGhBN21pTkI4cnpSODM5dll0MTFzbkYwY0pWd2U4N2JleUl3cmRNeFl1ODFiZXNONVR3SUF2akJxMnIyYzgyQXg0eHc5UitmYis4Q0s4SytnQTRJSVJ3b2hqOFlCbGoyNmQ3V3Y3Z3gwTkVNOUNLRUZCS0M2QzhHMFdQN0o2SDc0Qng5QVJodXZHQ29SM0RGejBERHpqM1dOUkZWa3NTQUtQMnBDRDJZb2NXQlB6WWNBQk9Ed1M5OGFWWWtqdzdSSGp2M2paamRGSndDVllJVGRhZU8xajlNZUdaUDM5SnhyS3picC83NUdma0F1N2dZWlhEUGVGN2VVaURTZ3hwRVRsUlZ0QkZHOTlYTlZieGVkR1BDdTdFU2FlVDBjTGF2eGFqZ3BPeGcxaTBGOEFPeVlVQlh1ZlVQQUtlQSswbGdzQXk5Qlp4SGgvZ3hYTEdLRGVubmV5K3FrOEQ1Z25nVGg1SWxaUWczYTlFL1BMT3BaUFUrbEs3YWNDSDBabDYzc3JlYlQwRnFBVzBvaWZIamp5K1FEWXBqR0NxcmlpM1R3WFFHdlA5dUVBRmV3RjZzR2xjR0hVRkNlUGlSTTVndDJ3VDAvSEZVajlVRHBzVlB0dXR2RURmTU9Obm5JMW5BWXFnM0haQmJERjVvQWZzVnFaalgzQU9NMTM1MllWZzg0LzhYMlFYY3dsL2pHT3dpYmphUkhBZENIdFNGbGNRVU1PbW4vVGdpRUNWc1E0b1VBcWNvQktsSXhqdUpWdGRBaVpQOGdETkFFdUwySGdsYTVibUlOb0taTVF4M0dXSGhkWGdhWW85WU92QmdLK0dHTitQSlNXbG55UzF3c1pnY1gvSWNaM25lbWFGVE8xVmU4bXdjZER4L3VOMEZYV1RjU1IwVXpFSFMvT1ZvTlhjcGh6QXdyeGlZSEwzQ3c3TnFpVks3SUhXTGdHL0FNN0k3MW9PU3Yxdks3eWc1NkhoZy9EK0FZd05nUVB1UHNoZWVLdG1yazVxcFVnVFB2cTZCUXdJUmVjV0FJeklBZ29QcThGT1lZYUpZZ0hkMEh5SjJDVkhaL0lGWmoxdzNOdnZBSGZPVngrWFZpbXg4akpDeVg1eDllUHZ5NTFQVEtHOWZzQUZ1VHZINW5IcHYzdEo2Ly85ei82cno5NW5SL2RvK1M3WWd4N2F0aWVDSnFjWTJKT1lTbUk2SVBSaFphQzlMRGZDR25MRUlDWEhTcWlrZC9iWHZOSUs5Ymh4ZTIvOCtBQWRMVCtZeVYrMzRCRitDMlY5MEFaVE5ETnphS2F6eTNuVGhjQ09QRnlvTCtBSG1GdFhpQXI2b082SHVUSFBrSms4Z3NkMkYySGt6SHU3S0M0SFVCWC9mUERNMStMN1VHNzN4VUVkZy9NQU1VT01zOGN2VFdrWmVEbWNXOTR1dyt2SkU2TGdNUTNkamowRFJBZlJqb3VjSERCR1dPQnNac05nY0dBaHhlNENLWm1LYmduZG0wQWNnR2JQR3BNY1dnVEVxaDFwTHVCYWhOeTNPTjFieTRGcWNHUGJSWm5vQzJzQk9hUGp3VEpJSzQrUkZ3WVZvbEhHYkFqckxEUlQ0aGpiM3VQdmRhbzMyWG9DdUFxb0ZMUDBTelVEWjRjV0JBWU5adGJFbWF2cy8wTkdaMDRwcG1mTU1TbjdEUFVHMk4wZi9tcWNHdUFKZENndmtwSmlobjNCUHY0S3A0NUQ1eCtydHh6ZGhGWVNWS01oQ0dhK203czBvSTJMNjU5VFRRU1NsamZJVHBpalhDV2NUenBHOUQvUGxnMWVQNkh6TUNTeDFmeGRqc0hIQlppMVdTUkQyNityUEZnMkxqekIrd0FqZUJESUFqdm01OThLQVIrQWxTR0NQWENZdDBpL1RkTTlMNjlBVjVRUlNKdzZ3UmtYeGVxSGZSVUJidUJ0SDFmKzRQSEFPOXhZNWphRVZoZ0lkWXN3bmcvWE5QODhEdm9pQnl4QXRUWnp5dGovUnF3SDZ6K3BNQnQ1ZUxuaDFHS0cvekE0K1hJM21ON2VDM2VuMzFubFo4TUZvcEE4WTRGRGUwRnNiRWZRRTJlQTFvQjJVS3FOb1JpcHdSNVlVZUN6QXVVOG9DY01KNll4QWc5d3RtaHVDelhEZVNTb2x6RlhjZkRBWFIxbkJtbUpibzNwaWd3TGVnZnNBR1V6dTQwT0lBc21wL2xIYll1YWNKOU1XUGh1WDc4ck9MdG9KYTd2MndUb3BCNWQ1VDFabFZ1VER1MjFUQUdEQjZ6Q1ppTE9NQ2huMDI4WGtxbzdydzZJQnRFaGs0VWJTK09DSGpUV1V6OENZNUJ6b1RvWWVqaE14MUVDQk9GVGtpMjJNNEhhQVhrZkRSc0NUM283eDRzUFJzeThLcUdIOUNXRFBERGMyRW5CTU0za09jYjJBQnNUeEFuZWowZUwyRE1XYjN5WG1VamU5c2NBekNzMyt4U3llOUJoMi9HdjdGRU9OWlZXUkxqYnM4TFRPa2JHN0x3ZExPQWpockVtblcvUU5aWWlpQlpLdm5CaVJvMUFhYkEyTytXSDNYemhNTEV2RGpZd3JPM0ZjTXFBRng0Q2VqdlpRM3ZjcTNxSG1TbGNIVE1Sb1hpSkw0SUJJMlNZdkFOc0czaGpZYVNBdHlJaWdXaTlPb0gxUW53ejQyS0hDWVBtTUpVOFNCcnZTQjZsQi9oNEw2YlZjS0pZYzRDQ2kwWkc1V05CY0hOVzdXOTN3RWhoRzdzQzRJTDlrSFV3ZGY1L011ZGcrT3pZcENxZ0kxR1lQa1NXTmVRNHR3dk9CZWJuc0V1aGlSUVhBUzhYNENZZ0YvQUM1YU5QT0NLdFZ0VG1NRHl1ZXlvVGw4R0NtS29idzRxY3BlMnNtNExFUXlWRndQNnNUZ1lEVVFNdFVSY3VUZXlFUnFNSE13R2FoQ2xWR3c4SGtxdml6MWx6WkNNelRibWdUSFJoT1BicjVNNkFhQXZzUld3Qm16NUhTZ2RjQ0RmMjNIdXJDRzYvQUVPY0pPZjRmWVhIS2tDQVg0MmN1Sy9UVUpwRU1ieFo0TmJJZnBZZm9CV1FMNXF5TytFTFhXOERsNElLNDJkbCtrQkdQazhKQUtXaVZLOXo1VmcrVGphdHU3ZHE2ckFOcUlEckdMSUlqak1icm1CS3dOZXQ5bkhKUDJHb2Y3alNmN3hJTmVmSjBFUCtyR0tCbjBFMVh5SzNVRkl2N3hPZkplMWhnMFhTRFBZQzhWaWRlSmROSjYzRHYzS01GZE1yczVBRXQxUWJYNmcxSUpBWTdaaGM0akFnNmJmZmNsWnZ2TG4xbmp4OVAzejl0ZmY3eDgvd0sxb0F5TEtBcDBGN1N2ajBnRzZCbG1rUWMzb21ORS9CYlBINTJ1WXROd3ZURnFTaWhiSWZ4TkFnOEZiZERGbHNDOE1EUG4rak9nbTZhQ3hJSmdqdHBVdE5jUjlGbjIwY0NVOFVPQ3hmRGZNTnFBVi93YWlEcytJUU9JQWoxUm1jYWI1T1NMellzV2hWTU9jNE4vQ0dwZHhqZFlibmdIZmNvUmdISkFsc1AwRHQvNXRmLzdyN2JuKzJoOHQvd0NCNEN6eWcvK0YzK0JaRjZRSEd3YnN5TFZnT2xJNFVjVWJwTERuMFU4ajZTakx0YkNRYStiS0MwekRCZ0hsWWRNYjJzYzJicnhVbEZzY29MNm1pQXQrTm5CNzZBQVB4eGFEVEZoWUxPUytIeUQ5MHpvdktNM0xFM3M0MEV5TWJOREh3MGw1NmdlSzYxN2lZOS96cW8veDhyMzdUMW11dTVRNzdxckZFeGd2dlB0RUd5RzFrcTRURTRPWHlScll1eE9kVG51QU96NXN6RjVWNW84Q2xIcE5IQ0hLWFRMd3B3Q1RFSVEzd25OQnFCQVVLSGRmVDNCdEIxNk42L085VlFXdWZDTHlUT3dydXJrMEk0anlQV0RBS0JSbW1MWHBFU0tNbTB3UlVJSGx1Q1Zhc21EZUh5dUUxUVVsU1lDZVZlSEtHM2YwakF1RU53d2FHTjFIWmhkcUpOVjh4MmQ4R0JRTWJPblF3aGhpVWRrTldBL2o4SzlCbEtYeGI2dUVkU0hOTUdtRG5Ed2prZzFkZ0thT2IyWWM3YU5aNkJXeWdLeGxLTXFlMHFHeXNaUEdwa1BTbmlKVkkxMUd6bHBubFg1N1d4dE9RQWdIcW1oUWQ3T3JyQ0Uvelpla3B4aGhRK25pdXNERmNaVGdLL2pLVlJzVzJEVDMvYXBMb3J4dkYwWFlUQVJNc3FPQ09JcVYyc2J3c3pOQTA2NVMzRkJsdkRyUGlud1lRS2g0aW5yamJpclVxT25raGlRS1JJKzNpUk1VQTdQN01zdUNnWTN6Qjd3Z2VSR29rbVlBOEVNbzZoVkVRaER1bGNGUCsyQTE0T3YzYmlRYVVpd0kzem5pOHlGbkgxcXc4Ym52QjVUaEpoK1dISk5UOEpoVHhKYkJIK3JzUE9xNGpTMFhWZzI4T1NlMGMrQWpqQUZEUW5HdllHTjR4c2RGY2VHWXpGWnJpZERRQzE3OExwZGQwYTA0RGZnUnEyaUFrNFZQT0dXZUZ3K3dZaDlyNTJXQXc0MVBPck9HRUppb3h0NWY0Snh0M0NFMGJyaGtMM2xVMEUweUFZQVRPK0lYUG53c1duaVhiNlBhS1R6b2Z0WG56VGRXZ05LYVY5MjRiMURZbDJ0Q3NjRE1DTzhOOFgxZ05pdHh1N3FCT3hEdS9EN2dINU1uY0RVdzJNMXRBQXREM1dueE1qUTBaY2NRNm9DdHdEd2x0UmlTZ0dEK0kzUmZzVTFQaHRpKzBFaDBialhFUndlUVZvc2dqU2RmQVMxeVlUZGVlRWltOTZ0MTI1aUNEREsrTzdnVWZ3cnZpMGEwUUxJYkMzaFhjekdGSmZwKzBQN2tSWkJnby9PUEllMG5KYUF6QXNVK0JoMHkwZzNPM2RLQ1J6ZGw0bjdNOVFCSmNWTy9uQkpMbks4aEdETGtnUkZwaUJ2YWJqRHhSSStCSlZKWUVGWXZFcGtRVVNIZUQ1SEZ0Y016dExwUVg2U3FYeGlVa1JBRVZnRi9OdlBocjF0bkFMaUlRcldGSEdKM3NSY0w4OGJydzlJU3VBaWZlWnM0ZUJhVWFGKzZTendIMndTSGhvYTJwMFlBUENKeWcwL3lFWGJJTDZ6dzQ0RmZTQ0FmUUdLNWIwYnVRZjVnUlJ6WkJYcGNieXFEYjQwSi94NzhSalc1aEtIbkFxb0VSeGovdUxHendNY25MK0g0L1Z2aXB4cWdXeXc0K0tpYXQ5ZWNpWE1OdjJoMHFrYkpid0J4bnR1ZzI5MTF5WWFsMEg1WTJtNXhQWGxHSlFIbHVNU01ZS0tOMFVSV09oQnFwaStFYm5YTjFwMXJ0K2FTR2d5SkFQaVVaY05oY1MrTWNZakJqRW9HUkZTd1pQOFA0UlBuLzIzZE1BaDhNR09ySS9BaG9vV1ovOTdYZVBhZEowK0s4VzhtcGRDeEpkbXl4Q2ViSkdXZkRURmhGZmNHNjBNUEJDYi9manNFOHNjRDQ2VTR4bi9lL2NGVFlDbnJNSTJrU0p0clN5Y3FBaitCZE1TVGhHTFhhOCt4Ui9OK3JZZnhYcCtGTGJWalAxSFIyOWcxUk9NRi9KZit6OXVkdTAyREFGdDRPdXVCRUR3UTNuUGh1d0JQRjhKZkUzZ2Y0SVE1eDhzVUF3SjREM3dxZnROMFg2eVloMSt1RDdNWmtzOHdOL0tCUWdCVnh0RFdYUHpiVDZZdllpaTNBZnp2WkFsOTE3TWdmeTBIK0pnSGlUZHdQT0NDc1cyNDFsWngxWERrKzJLSHh6M2h1cmp6cmFpQk5iV3ZrbzErdGg0OGhkbHIvNGViWFArNFN6NFNBVWptM1lFR2FMVUxEOFpENFRDWXVMc09UOG5uOFYvQS9NdDJBQTdteWZMaGZDN2diUnpZNTR4dmVqNFVHb3ZzbXM2VGpmM1hCL2pidHYvTGU4WWFRUDRzRFJ3REl3Rml3b1ZrVGZHSjZXQXlHOXVDRFVIWlFaZEdrYnFrNWUrN2gvWEMrdlN4TDBnNldvbFV5dEFOT09LWEkyWVZNWmJzakNkQzVORkY3REc4NTMyQnYrQTVKS2RYNUMvcXZrenhLWkQ0YnpZQUlpU016bFdhTnF1R3pqaUNGQkZZQnJvcVg5RUdoWm54UkRqdzl5OVFXaWFROFNyQ3VmRUhtcU9WRTRxTFA4VWxRNUFiMmdRVktDK1diVXYvYnBPRnoxR0NabUprUDloUmRIYysxNUJjR01xQnd0enhYdWptTU04SzFvVE5taHpCaEpaM2M5Rzh6d2FBUlQ0enRaQWhQMzFqUExBb2x6NXZtT21ZK0lOOUloRGNqMlhHeDZmNjRXNHhsU2JKd0NhTlp3UTVyY0x5c3VLc25RVmxHYVRSOTJYQWNuMG1ia3J2WEFWbmhJaU1lbWRaRlR1QzZaOW8wSy9LWmZMcTIxZ1lQamF6UWRVOHZrWVN1cjRUeGlQd1hpYlJYK09kNFBScFRka1RQak5VOG9yZXNaWGJJQnY4MzJqWlNRVWE2Q3JyYWV3UHFMWUI4aDgwZnhnOWovMEJFTEd6Y24xY1NHZGpKcVprakNQU1ZVSWhpREFTemNydllPWTRocThIdkVnNzlZbHd1ME1sUHJqbGhMc1ZUR1FHcFVXcjZmZ1paQzByS1ZQSlI2WndhOXorUzVnU3J2Mll6bEE0VFRWSGxwMVZnU3hiaHZDTGFZSDd1NVVqM0RzTmdCNTcyTER5TDh4UlB3aGdCdFVDTFo1OVJlQWxaQ0dEeE9SNG90MjNJWGxKWklodkxTdkRxMXFZNlFTbjJFeUFDK3lETlRTK1h2UEo1RDJtNlJ0MExCWFRHY2FvOFMxY1RFdHV2WU4wVlN5cytjUEhyRU9WWUlOZ2p2UWtCSjM3NDIyeGtkZnptSFNva3gzQVdJeGpXOFBQKzhLanVPTWI0SU1MaElDSUFIQlJhTVRydFdnbWZnQXpBQW52SFBjRlJ2QmJxSk5xdytzaGpMTjNKQjhvQmwrdGVMWnZRZUdXZ1k3OEdMSlMvLys2NDdtZnlVejkweERpb3lUb2RjVHg0TEFnL2pIaGJzVmhpVjJER0NCSCtIU1RnUG5GVTZNQmo5OFB4a3UrZmpYOE5ONW5BblhhKzVqNkJDV0M4WEEyUXFCUWpBTHhMbENXdUZHa2x2QlhKOWxkQVErZ3laR0tNT3JpVVlCd0E0dUREdDVZVThnQ05HcURBU3JZTytYNFlMYVEvMmNOOXEwY0hnYktRWW5CNFA2NUVKaUpQZnBiamtIY0QwQkt0NG5vWDhidnh4VWp5cHpMNFlxWUdmalJCL1FCNUpna1MrOER3Uy9YMXdjWUtpMWVDU2tDSWdMU3A3YnpPWWtIeGRtNm9CdWptdzB5Z3preGozbGpKdzJyOFB3WStyb25oaTNrb1o1dU1XMHlWN3RNdTNmTE9VQ0NTR1FVdExlbDdSUm5Md1AzM1NEaFNVekdYOHIrMHZGSGpPVUh1TTNscERSK2JQN0J1ZTRIQk1iM3Y2YVIrcjJNMG94d3ZMb0JNVFJlQS9xTzBsYVVITitiSVNuV3ZTQ2tCaTd4aVR4L1J5eXl0VXlnRi9CQnJnQ2h1azRCTlVDTHI0RGg0YTVKTk5KTWVrUlVKUFZYVHplTnpnRmFVNDl2d2lJaWdZWWhlU3VVdmNSa3JBNXZQWUJJMGJEY1l4WVJRbnhGODVQc1RyQktSY3FLalZZTnhoaStoN1JCcnhLTHNWV2NTTVhaWW1DeExqaTdjcTlmREtDVUN3c0NyVGdMRmtvK1A0UVJnT2dCL2pDL3JBK0FBNXVCYU93RjhBY0NBcUVtR2phd0pwZ1M3aHRHWFNCL2ZLSkpBTmxOUlJSV3g2RVpOK0RkYmpsQ040akJicUhYVm9weHp3UytFbTZNdjczNEJVK0hHRm1PdHdZdzRzRk9mTUhhRlRnak1tNGxqd2dKbSszV205RUFxeVFnR080WXVDaGVoSzNkMjByZnVBQUZ0UjVCNFBkU0g3SDRIK2dQQUc3cXE4UGxBK3hyak00aWxjejZXRHRpNlZHMFhNRDgyZ2N1aEd3K3hnQS85dVhCcVBQS3JHUnNRMFdDa3FOZ3dMSnlGcTJlOVFQUW16cWYzSVJyWVJMcTFhQVBrSU1ialc4dzluTFNveDlXRVhPSDgrTDN4cDRNakg5OVRmbnZDbWZsZmdLYzIwVFc4YjRqWHRFUTFYbVg4UDZXTUJzVndIWkIzVzVqN29BdGtDTW9CRVNVZ2hsQlNCR2NXNS95R3ZaK2tKNThJWmEzRjBMZVlEd3NVTG9iajlqUjduYkNFam1mdEJhMElxQjdWaXhpa3RrTHNhakpVdlBGT05lejJKWEw1SGREaTRlbEFZY1ZRU0JBRWF3S3lHNXVFSXFBUWJMQVhtQUxjQjVJc01WU1pSbzltWmVSUVpacytkN28xUnJzY0RReXRBeWU2VG0ybVFjNG82Vi9vby83TTBzeEFhdDgwWW9qci9kZE1JV2VyZUVTTW9kYWNJbzMxczJ5aHdTQTJQR1lpUnRuQXhQY2x2NEJDbnZkRFU4Q1dNMElHRVJ0dGdzTGJFUkdlSmg3TlErRlBxTG5HTFo2U20wQXl0V0VOSStYWXNaNkEvQkFoVkNqOVZoU2NHUHVNQWlBQ0o4SDZHRFdMWnJiUndicVFoYkJUK1UrSmRrWnNqMXcyaGJJWTdBTndBRDhkVVliRnkzZ3llT2FXSWVOQi84c21RSlUxMnJBUWIyTTNDSVhnekhmSVJHc3RlbDYxamRYby9pbXdaRHFWSkc0TmkremY1dDdmNERLOXZaaTZHcytJRHVYR0E2QUlOekJNT1g5amZHcjNMOTNISllWQ3NuTnY3SnFMMDhVNzdSUHJTRWdoMGV0cHJjTTJRd2xQT0NkTUtVR2kzQWNpYlY5bXFVTXhnaTNWZWdBc1g1cVF5K3NNcFRLekUweUNtbHBPbERBU2dZeGlMY0hZbVJFeitvQjYzYkFRUjBFanMxN0UzSTF1blVYRDd0V1VUME1NRGZNMnpJelh1M1JqbjI4UGpDaFdTZG9jQTJ2MExSZFlMM0JUc09WbGNOVmVYYkFON3EydDZVVkpvWUFZNy9rUE1TZWEvbyswTGREQTVCa05CYy9oSERMQkxKNTcySlFOb1lUdVYyc2tmZ0llUVludkJWUVBqSkVKQmpEZkRBZ3dMTStoNldURmVqRzZrSUYrNHVBRnhZWkV6YjdBeUR1YjduMkN4UkZiZ0EyWnJSYTNOTTBtcFV2Z0IzaklkKzB3SEVhY0R2NTBSUGJUMzU1TEdReEh3VDJvR3RUSjQxTzdveHQ0WGRTcmpWOGVLWUVlOENXM01naVd4V01WdFlwU2VhS0FsM1E2N1FjTmdmcklRM001WEkva0JaV2hFdmkrcE5PYW9mT3ZyQVh0NFdsNzdES3cyenVsRHVlY0hzM2pKaGVFT0ZsTmVTZnJFUFYxa2JyUmZqaUwxZUwwVFNDekplZzVjbXlhYXRXMUFSNWk2V2UrME1KY0R3Zy93Y0VCUy9PMll2MXRuR01PTS8zUmErbjRSS1RaRHdRV0FBRDJ3empyMmd4Z0xWalNpVk1qQVc4MHZydkh2YmZuMVZUYlREelZ5TVJiaFpDN3d3UVp6L0RaWmhMYVR4MW1LZzlHS0Nua0tCKzBEUTBLV0NacGd5bDUxTyswR1JCVmpKTlhBZG1Ca0lGQTQvcENtd0NnQWhROWVpcXpCQWExZWFudnYvcXFmNDgvbC9KalQ4dk1QSmwwZnc2M3dJcEhCdUZtQlJjNllrQ2hjT3RjenN4M21DVUVvcWJtb0YxSE9EM0V6TGp3Zmw2MVhkMFBJckhrVEVBeWR4OFNzZ0tsSHQxMDEyc2dyeTk3TU1OMTFxditCV29CL01HQjdNb3NLT3EyWVA4VDR2cUJDalZOSElDL21KdThzbGdKK1N2WWVzQVFCYXZKUFBxa05NTUdKbFkrRzRjQjNka08wRDY2VWI0ZmtwUWZsVnN1azZBblJVMXI3c2FUelhiOGF6YjZrRTRMRitZRFNkWjhnVUJZTjlnUmV3WXptSGpBbmx6WEhFQ3lHUFo1MHdnbmhNUldzYWVIMnM1Z1IxQVZaYm13Nyt4YXZsYjEwa1BRRnh1cUhUYkp0T01oVUFzc0grUHhaTGhHMko4bnE3OEl4bjExNk1kMGpST1U4bUZoRXR1VDJ6OXMwSmxHUWxvL3JpUDBIbzB2NkkxSHZoTXN6bTV6aUFWVXZqNXMwNDg0dXFYRnVqR3dUYXd1dVdrMVlMbFZYaE5pQXQyQmM2RUh3WlNscHdOQ2NrT0FpNGlXL0J6M2hIT0JBYStEQTdNZitUSlhPWHh5NkQ5YzVYLzgyVitVT2JGb1lsc29rYjVRWTRPMjhERUE2QlNNTXp5enZITFZvbS9oQ213aHBGWnhWQnV1OFFDNjgxYW5DUkNBd0ZqUHRFMXl4NEVJVkNiKzFldkx1ZEZzd0xNQmljZnNSd3dDQUFsUUJQNkF2Y01tbGFXaDFkRDlMRmFzb01yS1hRNG5BZEVpSWdpaWpDQS9QNWFmVjVERWMxQThuZGFackNTMnR3aGZZYnlCMUNwVFB3R0YxNUdPSU5PMDRRRmFONW1rLy9wcW8wT3AvMUxPTlAzV3pZWWJJNTJKeVRRL1lpamJMTmtKcGZTdEpRQlMyTWR2dVd5ZVJvZEttMWo4VnpzbUc1Z1dNTkNza0R1UFdhUzJ4c1BBMzBYaUdyRy9YSVIvQU9Zb2dQTit1RVcxb1ZEN0VMZ0JhOW45T2VuWWN0V2pHS2NnL1VWclUwNDlyT2EvbnZITzFjdk8wVVArRGFjTDVRWHNIbi85SE9mcEhnL0pGTmptdUl2NEcySjJIRzEvVFV6S1RWM0RmQ01acFBZNWJidUNlZTAxSHh1Q0NPNkZxcmRWY2JPY1VDMkpKZzNlMW13WllrTW9CMUVqZ3V3akJta2lnQmFZR1kwNXpIcmZVUlR2M0VwT1hIVzMxNTgzQlVlUE8yQ1lUMStYN1BraEZkQWhJOFh4VWppUW5oM05nTHppRU8yL21GZUZyN3hxaFhrcjc0OXVNME9vUVF2c1Y3TE5FblpBOXFDRmJFYWN6MW1IaXhtZk15K1ZlUHQ3T29ET1k0NjBQRWZxd01xdjMreWhHRndFYlg4K1FDVytBdmF3YWp2MzRMWk9IQk4yelVSdTN0TGFSQXZaQmJNaEttd3pjc2FJOGpEampnUkMxOTdmV2Y4UUkvc0t5eENYdnZsWW16NytsanhhaTJMelNSWlBwdngwYmZ0TGkvT0FlLzE5dnNFVlgydUIzS04yMnRZbTEydEFVSEYwVHN3TUo2Mnd3M1JSVjU4V2M5a2p1WlRwbUlwa0M0QlNZVGdQbmlhaWRtTDJDalFLMWJpQkdhbXhkNUFMeE4xMml6OGVRbWdKTU5LcGxUdmFtMEFVTHNBWTRWWXRoeFptd0pJKzdSKzRLenZUNUxsdDdzWEx0UTBtWjRudlBCUGxobWJ6MlpJK0FNcktWNkRackhoRnYxSTBvSEttUFFuVnd0ajd0ZmkvejJ1ekRmYk5vQWM1ZytUdlVheE9raFpKQUFUQ0xZbHhYeHlXZmlXK2t6SXJFVlFBZnJiakI1YW9IOHRnQVVnSVNCZDFlUjlZWGRuTFR3RkdQUzI1OHNWV0pZSmdqS0xKWW80WHcwVlZoWEEvaHBWZzNkY3I5MFhjZ0owcWhpUmg4RStXaXBUTGpPQ1NOZW9keHNOaWRnYlc4bHF2OFppbzQwVnBXTlN4b1BzWHRrNkJIemQrMkJ5Z2xIQitTdkFRYmFCRzQvMTNValQ5QVhaZDVNSXNCbXJkTmtIYkhoa2I4Q2J6OVhNVkcxb3h5bTNoc3MrVm1qRENrQjdvSE13R3JUaWZubkJ0NTMvaSt3OHdJZkM0NWI3eTgrbzJKUUpZcHQyUFVCcWpvdkVmaUVxN0NuSU52Q0R2QWI4aTMxL0Nnd01lbXY1MHdPaGd5c0F2bkpHMEFPWUxkNlhqMnpqajdsTWtOakhtMWRiUWxsTGtWMHhEbjRiZGhrbm1vK2t0bWJlRklsNVBvc1dSQzZQRHZKVEVjNDJjbWZ3RDQ3TnFzTXRSOVNzeFpQWHQwVUxGTmpFZmJOYVVNSUw1OU1qOHV3S283dXlyWFFEeTEveUNDZ1M1aXpmS1ExZkIwYkFRMmJjOTJNczB0b1JNMVJ2ejZlMUNkTTVnRkxSeXFyN21paE5BcXdIaVNEMk5PT2EwaTgzYW1yZjZrbzA1OWxOeW1SZWZwWmZkVmNDYzMwTFd3a2wrdVVnc1VVL2ExT3M5VWtuUFduOVpZVDkzeWM2Rk4vL3ZOamY3bm51ZUV3dHlCWklhY0V2bG9WZGVMSFJvVC80K1JmOEJhS0d0UmdOQk12SUNic0I5OWZvaUltUmIwNlVOVi90Ly9LTy83d2grQVlUdml4RHJTYTg3YzVGYWEzd1NSSFBnREIydUdjSGZleW84N3J4QXljYTlWb2hnYW5VdW9TVFBaQWduU0lDRVlOZUNRWlpRSGw5TmE2UC83VDdnMGMyM1JsaHNSRGZvVnRLRWR4eGVqOHdVYk5ZSklXaFJ5Y0JlQmxrYlJFdHZoOVl4N1hjL0lCMVEyM1JWOVFPbWRQNk50OEQwcCtSLzJVN0ZwK0hwRTE0NUVKYjhaSmNHOFp4d1NXVEtkaGZLOVFHWHFIcEZ2MW1TR0RoU3NzTU1wU1l4MEJoaDJuYlVYRExCWE13Wmg0R2NRVVJ6ekJuY1dCTHNYQ25tVHAvMFVVOGNMYXdEM2lDOEQzUmN0YmJMUFJ0bjJOUGFMaWhTalFScWxXUTdGUWI3OXZTblpHemQxbHpjb3YzT2g5ZkZVS2F0dlY1Q1JObk1NeGtxc0VHNjlnQ1hzVU9UdnZQcnJzZ0hiYStueHdQL3k0ejdPM0RBV1hRUW4wcFc0YmMvT3FScFU1NGw5UFJDcjh3QXdlbnVOc1YwQXRydU5Lako3NFBUbjRWb2JFTUFVRXQ4ZjRiUkpPZko3MFdMNXJBd3loQUt1dmRyWm01YlhpNUxNTXg3V3I0OUhQYnJIdVozUzVsaUxpdG9XWWR6Ly9rODM3QlVoYWtJRFpBVmx0OCtFRXFMNzBremdHaWpWTkRIbitVWloyWUNzOVhzbDAxdHNXODJVNndiOThMNjQ3ODNnYVFSb21vVk5peEE5Z25iZ21pZ3hldnZCeUdOZHZMdGF6N2U1QzlPN1lLbEY2R1RTZlMxSzF1Wkd0aE11aW1WWE8zelpHWHdBQXRPRzA0M1M0NFdJaTE0QWFBeStoSlRtaWpkYlVOVkZ6SGZvN0dTeGE4R2dhQ1MvRXlrSnBxWVVlMFR0Z1FOV3NIZU9rZDN3cUJ3NDNWOXJKSkEzRTBoSG9IYlBtOHhRc1p0cnB2T1N6dmsyYTZVS014dWpLQVkwRWlZSkJXQmtQanpLMmNlcEtWTEtCQjhLMXJRTXBDTWRVL2JCL2IvdUJudzlZRnYzaGF0Sm5Gc29rQXhjM0JlUmYzcjlidVJuZnRkc2FpUG5iZEJRdFJjbzg4S0x4MlFwTXR0T0VScmxvd1hKYUw1ZklyNGx0VzRDZjRLeXNRQkZiVHd2VngrbTROUDBBZlpoSjNSQi9KZm9udEY2NXBFQ3lDUEFNN3lRNmR2SVVKSWR1T3JkaFd1RzhiWG80K2RvakhpWjBsYkRJMDZaVVRBQ2NhaUMzYkNZVWtBOWNBQ3ZNR2wvSmNHS2JIUWtUK0Z5SFpFMkNMYnpzWGh1R2hTSjkxcHNrY0J1UWVNUHE5eTQ2QnZaZUZFVHh3MDZIanZMQitFN2VRd3BrZmczSkdheFhTeEQ4Nm9jTW5xVkNjKzdITE9kMFhUSFBxUjVMSkt2WUhEeFAxMHlDR1lZSHpLb2FnNUErMVlRVWVwOGRnVEIzK1lldkdON1hJNzNkZnRqbEE2Y3FKTTBGVTY3QktwMzVyMWV3NjFjOE12c2g0L1lDQnFNbHNBQ0RsRVdBQXd1NDA4MVY5bTJ3N245NzBzL2UxL0JyWDVtNkdsUnFMZ0sycDVvd2UrTTNhVWxOSkZMU2ExWURlRyt3RytWdkdZNzdIM21BMGtLZDVnRlZmaXZZTVRzdUVPeUsxb3kzaEZRT2FkZmpXMmUzYkpCNm9kd1BKcm1KVlNtT0RiNlhSdmNCbnJiQ2JuWlh3M1c3VmtCR0s3TndJNjdRRm90RTFLOUFkSU9MSE5oVjgvelRpakUxOGJQSkh5SGwrOERPU1p2a2IzcVRaK1hCcXRZQkdwdy84Tlo3UDB4a0gyWGsvTDFoM1h3NmpFTk4rMDU3Sk5uUWt4WWc2R0JuUUFZNDNhMmZhK2IxMXhVRjJEWFlBVU5wNTNwTFY5M2RmMXRXZWR0MWhXNER4WTc0Tk9zTU5JSXdmYm5uV2hCV1BCZ1FRZUFQb0ZkWlJtcGp6VFNrT25TbFUxTmdzUDVBQTYxZ3RLOGJITkVsclZwZWwvekJoUm5kcjBoNThBTnBuV1hsLzkvWktYSGpZZUtvVnJ4V3RJUWkxc0JlZ1k2Zzdvb0FPZ1RkZmROT3VOaXo5YWNROWxCMVViVHZMQnpFQWgyQzVYeXZWNTc3YStCV1pEbXNQZGJ0bXhnUG10cUFaN1o4QmoxOVY4bXQxQ0FvZ285c0YycmJtYTZRNVAxNEkwYmp6MDRDY3ZHK3lwdmdCdFg4RkRXVDVnTDQxb0dHUHIvdVlxYnF0Uzc3TmVlZFdPZzdJZlBuMS9xcnhoNE5jOERsUEhJWURwb0hvejNRREtzSnF1dFJnak1lSW5WV3RwcFFOa3RoaW5ubjUrVnc0QlR1UldBdWNyQ0pxdEJOMStVNWhFbTRjQjJBUExONm0zS2dDcUw0cVU3Y0Y0U2lJVVVCem5sZTI2djdyanJWd3B0T3ZJanR1eWZnN3NYamdlREFHdUczaDY3Q2p1T1JpTlFPMFl1c1owMzc3aGpkY1dDS00xTVFzN1JhNEsvY0ZhQ0diZ3FLVEdMVFVZYkZJOVFiRmZraVY3UENKb0NORXIvRkpmTUtLRjVhZGwwSUoyVXRjb0ROTE9tK0thaTV6NmFjRkhYc045YmVieFhqTXRPTUM4Y0w1N2RIdDlXUTN3b1VUc2Nwaldlc0lXMlB2UU9vTDA3Vk1jdHBtanBHMGZBVCtEN1JmV2VVd2lZQVhlaHhLMEZLSEp0Y0xrTm1xZVNxdzl2MUFsRjQ3eVJxdXhraE5ONHhnZWJ3c09laVgrTmZEVXE1VHBldGJQalpqM2VXeWxla3RQNmxGZ3NISHhoTGk5eE8yQlVuL0pyTFBBd3dqK3JvS3FCNXVHUmRtbmhSMGhIM285NFZmL0xhanZuZ0ExdGU1Tm05SmVpSk10L2xJYS9WUS9mYldkVHVNQnZDVjlPV2dNRVF1Yjl0Zys4YlRzc3ZSeGdRdzlPbi9LRnpEZkgwMndqenN0dWtuczVxc1h4Qms4WDc3QVBvTndaNGlnNDFEdjlBZnE0cmlabHRmRUhKSTNEajVpbVpqV0RTZ3haTlBCOGs3ZVV3YjZONWs4M0VDOUo3WUp0YmlUbGMxeExiakVjVFhDb2J5TEhOMm16VjVPdVRPTWxKOVg1ejJHSlFUMjRoQUFXTWtDYkxDRG9BWnRpb0NKbTAyNFFGdmwyTnFESWFGVTRzTWpnY293bVpWOTNVeU5MeFVzRFNqbi9BOWdORWVSejV4L1I4K01qVjRqaFZ3QkUyMjlRbDZISVRQdVFnVG12U2c3VEV1bHVPRWt1b25BRDVZSFAvUXJWNXpoQXZDYkR3K0FUeFo3aTdFd2p3Q2NEQWVlbDVuTmZRT2w3MldOVnZMSG5XMjNqamo1NVFTU0REbU5waUtyS2U2NmdSMGJMbEIrT0VxQmdoNUpKTjZFOU1BNmRhd0xXTXhXRmNnQnNZODNGYStOMXcrWkFiYk5MdVc2Yk5DTEM1OFZiWlFxanFKQjVjSEFnSzJodzFndHlZa3VndjVzWnFrVDhFTU9qMDZTQXlpNEpnTmk5YmdReG5sQWtuQU5CQ0xHMUF2OXVqSUdSRHh1d0xpL3FIengrWTFhUjBQaiswelBsVW4ydzZrUU9vVHB2UERKSnRZMFgxdHl4ZmduY1hDT0V6dGdJc0FLOUgzZnFyUkM3b2hjUi9WK241OGJNYUJRTCtlSUZuWXAyOHJhd3M2QUdvTHE0OFZBb2RmV2xyOUV0TEhTMWg2K0oxRjVnYnZ2NGlEZEREYkFTOXpTSFl5c2s3b0FCQUhyQUFWeGM5ejlSSE5LNE1WeXd0d0dNRVVCMjRmSzNTZnlVaC9YVk42YnpEMng1WEdMMExBQ2x4bjJKSlZhNWhhczByclYzUno2bDMvN2N2RzBITDlieTU1L2ZPYS83OWQ4dnF2SHZQL3pTV3YvLzJiczd5b0lpUTBZRzV2YStLRTBpZjZrSDRMZVRjY24zRklKejhzZyt6MytJL0wvQ3lIY3hCK3RzTXNwZTIrTVBlZ252ZmY0SUJUdTN6OSs5Y05IdjBYTDJ1ZEpPWUZOZDZJbzUxVXVmMW8xN0xNOUF1WFExdWdaSmdpZkNkVzBNTG5Qait3SWh3cGgybzhoSFd3Wk85VEZHMW0xQ1RvaDBRVHVEV3JOc3ZWM20wUEtmYndYTisrS0J6eHJLNFpvR1pWc0RVZUQ3dXd3cHdPdlVHWjRKSExrbmowUmtoczZPYjZiT2I3ckhVR1c1U0JaZGhXZ3pWNzlEc2VheHNVL09JeDNWWnliSXRoYjl1QkhQMFJzRG1mSTVRc3EzN3QrZnF3elJsc2lFTkV4Wko5YXYxNUxJUUFEZk0xVE1vQ2htclA3Q2ZBQW42R21kakU2YlNEMUM4c2FJZkR0RlFDak8wV2pqdEQ3eGpPTjd6THJqSEwvWUp4TlNjZzdRRGdkdnJNNTJ3MTUwN0FDWnBnRk9XSENzT3VvZzJyZU96UDhIODUxWnJSQnVwa21mVm5kYUxmMUNkRE81Rkt5STNKMHUva3RpNFdDNE1KN3Rxd1NDaUNwc2R3ZExGMHlkaTVmdmZPUHB3ellaQkE4UWtJeUM0bDJ5QUNIaUdZcDUxbjlscTNsWDdjRWtNcHhiUXF4Z2Q3VHFPRkpYcXV6MGtmbWRHRUFkejFjTXJIbUR3c0hONlBpdVR1OXA5Q1dNVHh3MlZEN1NQR1pqeXVaUlVHRnlpcDJhdzE4QU1CcDFLQlIxQkV4ZkNiVmlBNDYwTU90VXdhaFZPZkc1emZ4ZzRub3phVzRTNG43U1FMR3V4VWorQXNiUE50UlFxK3JEM3c0eXZjZ29xU3dRYThUY1R4NXo4Vm8zc3NpZFp0WU1PeHBILzl6Zk82RzlYSmZBQnJLT2Q2KzJrNlpZc0ZLamY3QnZDMFZ1aXpNc1FhVllBOGtFYWkxRSt2L3lmYTNXQk9tT1NMVHp5N0NFLzhlRFVUZElvanFNbm04NDRvZ2M1aWJhQkI1eVhzYWY4RlBnWFFCNUp1eHJUZ0NwSzc1THlPamg5YSs4cllvd25LZi9LcDFFZ1dQeWN1RVIxamd4cW5XRXl6Qk9kQ0RXdlljVTdnOVR3aDNSVStMRlYyVE5hRmxDYzI2OHVIcVlJZGRGK0RIWjIrSDhBR2pKWWN1bW1GRFI1OGRoT2lmaFZENHJnWk5JbWRYSmRSSWhNUW9KaU5YSDJ2cERuZXpyNTY0WDRxVjA4akE2YWRXY1crckZTY0ZLZ0REWTVYbTg0OEt0bW8zOWRPSTlkMkxnK3lETDhRbTIyTVUxYjlUMjJ0ZzV6QTNOemxEbVhQMCtBMnNKbVFLR3U4OXJwMHE5QWpPT1pHSmV5N0dNQWdlSkRCTXJHM1JvRFhXYzZGM2ZPa3VrOXgyTnJQbVRsa3JSRlk1bkxTaGZrdExyRGhmMWdpVUt3OXJvNGNhbGhHN004d0NnUVlTaCs2RDIxaC9leGJDZllKWXRjL2N5QVhhQkwvMEU5UzFwQ1ZMc0ZhdFdMT3o1UkR3VmFjVVlmOU9mV2RJZzZ6UVFzQXI3a3JnSVFTeDNWaW5MRllDZHJ2VmNvOWZHM2N1SE1FNnNNWGlnR3RaQVZBZkQ2UXJ6MHM2N1NQYUtqR3I5UXpYVGFyWlhZQk84SnRSc0MyZDJmZzJhMThRMWJ0ZVVnZENXZEo0VkNBYlg4WTJ4a21ycVpOMlBZMFQyUy95Qm03QnVGN0R4NTZONHNrUTg2aVZNU3UyS2pGbi9kb0xMSnhOaU5ucDZNcG41U01jMENRYkpocXNMYnZrTjdxYUtUMWE4MEY5Wm5ZUEpNNVdqVmRtaUhoblo5dk1lUG53bE1iaU1iWmNuMlB5d1FlNzRrdk5uUTUyc24rTzUzUWNWdFlBc2NFYXA0c2NqMnp3Nnh6Y3ppRjB4ak9hdy9SS2RBUDlKNmp5cE5ZNTJVMzFRamxRY1N4VHJFa3kzcHU3MitGNlBQc1dqRDhUcmw3TFNacnR4TjJIcmp0ZGFmakQ4dy9yejJqdFZIZHlISjJobDl1em5jS1JVTGZUNWs5aG5qeDJmdXhiUGlaaGc2YzZ3VmQvL25YZWlxYkhjVmg0ZWRuL3dYNm9iSUgrK2JMWTVQeGQ0dnBIWGgxaGlnYUhyVmMwMExDbmk5WEptRUxNL3R1YkxMYk8zUjNqSThpblo2K2tuT3k3dXhrcEZoNEcyQUpCaW80ZCtwR3E4Nk9MOW1SUGRZMkNaY1BVQXBzeHJJajdOREtZRWtHUGhkYmJWSHJOSXI5dnBGcnB2WWFjc0NsWUFaUlpCemVaWWtRSnBkZnh0anc2Z2dYcERTYmNJeEFHa0dXeVFNY0UwYldHVWRMaWV0Mkx5Sy9xWnJEUi9pdkh0OWpkNFdEZVZ2Q3NoeXlkaGVuRmpxV1l0c0Q4Q0MyR2FZNzdhZVAwYkdNRmlmYUFZeHd3SG4yOVNURnlqSTJRelN2UmFaV3RGblpDV000Q1ZVYkh4elhOL01OSTMyek5YeHMxVDR6Ry9qQmJ1bm1sYzR3UDd1VExhRnc3aGxMNTU3ajNuU01mQXREWWVVc2l6OC95NTk1OU9lTVQwVFJxMmxBVEVtNEZvNm5JMXloTzIvcVBVbUo5U3dzbXoyR1RrZUM3VXdzTnM0aldyeWFMVWFTejhDRjdER2NKclhMZDdHcEFkRWNmQmljQlNiQWU3Q3I5Mm1CZ0pEZ3pzemtETXpZc2xyRE1rellDaUp1bEd3WVlhaldLRjdSOFpOdlNoTllaREwvTnhjeXNxbjZLQTBscEZ1ZG5mWjhuZ0dnYjNST1N2dWdheGpqTUhyQUZrSkY0V3UzMC92TWlnS2dINmpxWjBzTTJtd3I4R09zekM3MVlWTDJzZllyNUk3VzI1WGk0Rm9NZkovOXNvL0hvVzdRK2ZLY1dBSzJIbmdGRkhvNmNtckxTM1JpREFidlVEVTg4SXZCc3NEVEVHZVZRdS8yWHY5KzE2YzVqTEtPdi9jOGZZYm1ZL3lYai83NnN2NzY4SHV0OTlkVy8xOSsyb28ybTJZY3MyRTIwWG04dU05OU85UmdSSXhMZXh6WFluRUZGZzhuc2o0aHB5WGIrMUVOWUFzWmZ5QkJmTWRVdXZsak9rdXRtalVCeWlLbXhjRmZyOVdhVmVMMzNkVnFKZENRUFBxSGplS2ZSTUZwZEJIQ0c3ZGF6YWhzTXFBRU5FaC9taW02NGNocEVnb2R4dVUxaDhvNHRndGJheGNNTG1WYnhCckFSc3ZlZFdjVW1WZDAxSWR3ekVsc2dGZm5XWHd2YkpnMVNoWnhPbm9EVmNkdk81bkYydVFIWTVmNEY1UTRkSWUxMmd6bkZJVzdDZzJSSFQ2emJLaTNjdmU3T202a3h0amRWRXdGTmxhaHRvUnhWa3lpcWZmZEg1Tmh3QlV3eTBRSFR2QjQyQzJCcDhyMloyS1BCdHVHR1J5T3RJTHl4OU15UEgvVk0vdXpFRktKRjlDZU52UDNoeS90TU1nc084c2F1cFBhL296aytYM2l6L2Vmdnk3WC8zNDVuRUw5MTd2NTdiL3VkZjF1OXU4WCszT3pZWnY3KzRBNXdWbzRHSUM1ZnRZSmV1dTBBSm5RUWNEYm50ZWZCV25sdjdqZC8rM0xPWFhwTW1nSkttR2xMVEhGQm1sZklVYWZVb1ZYaGhYQ1g5N3o5ZGFIeGN0RGFobFAvTkZSRFRndDAvU25nK1kzWFhTViswOWxKazl3aXNrUTAxT3lqSE0zRHY0Q2NFYzZVVDRINTVuM2h1RmFIeEZRMnBGTzJXaHp1RkpDbVVCM1RsdnFqckxVNFJ6QVA3czVxWk1NZ1AwKy9UUGJacmV2ZFJ3MzhEcGV1Nlh0dUJIczJENnIwK2RaZk50Sy96enM3MUZ0MVhQU2I5UmxPaThRZC9SYVpmZllmRjJ1VXV1WVozelV2RSt6VE5vQ01qMDJTL0hzcms1N3lBTm9CUHk1bmFXS0FZZEFSTjFXL2NmY0U1RC9mejRKcE5zaEtkRVorZEJ1YTN1TElkb2MwWFZuWUJRMEpGbjNaSjNLWjA5NXU4Qkx2cXdlSXI0aUhpOW9tOG5FYnlaVEozek1OaVY4VzBOZzdFWlhkRWFNelp6M3dOb0tqSzVvYk1GSm1OYitQK0FTcDVjMHAwM01GSVVXay9mb2o2MjExWEc0SVFHUU1USHhWR25nMjRlOWZXVmNqOFBFQnRwbEZCaW9hT1U4Zmo5aGtuTUZhNHJOeStoeWhkMTJjWnpTRkJra0VCN290STZZdWcyMGw2MVYzU1lDUG4xTTFZMG5ldXhtNDRraXZpZndvbkQxM2NOcnRQZ2RDYnJqcXQ0T2NWYjZNRXRmdll6em5xNnp4eXBIVUtqMW5lY2dDZXhLa0gvYjBkUUJHZFpKWWUxNFRJK1hlREIzRDg0WFI4NFNMVlRFZEFBT3lFamx4NElEY2Ezc2M5ekZzbitUSmNNM2RTSENWZ2Ewejh1U1FHN3NTSVIvekNmSEhUbWtDY0M1Q2p6ZXdZZmdGNFVrR3ZBM2JlSElqZkE2d2hoOFVSMXVCcjIwUUxJMWdLVXpYKzFydHUzTStsN0FvNTFyeHIyWDRSQ2JvMWFSa2JYeHE2Und0eDNmaEMxWmpyYnNOdDA2bXJUWkpoMHV4eCtFaEg4RklJSUNiOGU2R01rNEpZb3hPeGtITUhVYjRyUnJhY3ZHckJoNlBXakRnbjBUREVqOGhZWVg2Yk1KV3JNWUMzTDE4R0pwREljQlliZC9NNkRPZkkvYlFWcE9ZZ05RU0hZVjd3ZVozMjFkZGErVFJuZWtLcHdqTy9kMU9FWWt2bzREZGhqK0djRTBucnV5dUdjMkZvRFNzckU3OVpxbFdPV2N3dkR1bk9ZNE15dXpnL0dCYXdyaTQ5em1NNGhrbEYvaG5vYlVtSVVzSHdQZ3pDelRTaGlDQmRHLzBFaFFITlRWdVRaQ25MYVBWZXY2dVhRN1p2Nk1lVisyemZJU29oZHJZVnQzSUlLbGFyQktRT2pGN2pkc2UvSkpIL2t4OStuamNkemN0b0tGMVRlU2J3R1Vsc2lBRkFyOG1DT2Jwb1k3dEFjb0VDNlA0bkE2aHVVTXAxUlNaQXUxL1pWTXZHY3k3ZW5yZDlhVk9lbmwrUS9RUWg3dHBIczYzaFk1WWRmczNPZS9aYk1pVW1TZ1dDNEQvTXZSbWppSFg2RDMzNGtyNlZKTVhyWlNMRmdLMWlzaXM3a0RqNDA3T2t3aE9CaXVRSHZDeWVNNW9VTHNhbkhhWWd1ZEZ2QnQzUUo3S2tWdlR0aVMrRmwyczY1ZG0wMDF3UmpQNUhtZHZNdWwzcE1iZzBBNTNXN0FPRHFJWTlvTEVneldMSHZjc2pLNk16QUE4Ym84cldHaVhzVmhQZ2tFYmwwd0dJR2ZldTM5QSt0SDUyMWlEcjVwODJNcGdoRWJwTzFTYmJhUGFnSXVQcEhuTktYY25QLytBdmRaVVpPUTJRNTlGSGFoM0V1MzdieVFWTGNRMEs0SkdOeGZZNnNReVBjNHhYOGJYU1U3TmdCNUI4ZFEyQnpDbDE5WDNjd29QdEVDQjE4K1FVMjNTWmIzUWw4dytzV3VKMjluSGF3VG1DcytvVGtZMzk2WmFuK2VrUmhkcTEzOWF4Z3lmUzN5UDJWTWQ3b3YwVlpsMjUyNlpnc05FcThZdjZmZGFUazN4dk9Gd3EvQkhxWUU3Ri9SbWhTbk85OUdmZmNKbjF4bzl3ZU4rRHl5Qld6czNNdHpwc2lYbm1pUnFaMGsyUmR5dE42L0pJTnQ0UG5uOUtyckgrT3JUS0RDR1ROY1o3RzVEaWMwL0dYenRPYzFGQ3YxK002MkpnWlB3UVo4VHRSeElqUU9NYldyQkFzNllNUGZWL0swWVE3U1o5UTFzejBRNHJVMTNwYk9Jay93WFNFUUsycHJFdHVLeW1wRTBhekxtY2VtaW02TXFIUFFVU3hXODhYcllhdTFOZEdPdTU0ek1vQjJzOEFzVnJIYkdHeGcvL2hJNHdNMlgvekViZ1dLZHVielduSUwvd3c0clhMR0w3L0FzQWFZRlpwaG84YXRNTllEWlhHMlJsRVFQbEJMdXh5MVpXOHlaSHBiWFZ4US9TQmN5cGEvcy8rc2lpMHNFK1Z6cUluaXNrOVN6V0J4YzJnNE9qNDMwSzh0eStudEdKeVc3ejdPdUxUekZsS0NKUGRqZHJHWThqMEVGa3A0VzhnVzdTMHZkalZhN3ZhT0s1WnNsNS9sbHVaYkxWcEhzT3B2c3VGdGRHSGdZdkNkR3ZjWm5aZFRuSXlRNjNJOVR3Sk5ZQWluL1pPNk94bGQwVU5VTVIwYTR1a1ZSdHFHRXdhaHFvZ2J6Z1FENUtEdzRXd3g0SktqVkR3bTVESzAvMWl0Q1RNMWh1ZjhWNHdHckFUcVlEN0U2Z04rMnFrZ0huNnc5bTVOUDJER0huVlBJempMT1Y5R2N3VmF4YzRzWHVqTVZpeUNZWFNXbDEvT202MU9sd3ptTVQzSVkySnRicTRNamlwWWFSczdXN3lTSmN3V2UzZ1NUN2RkeHE2Wnp3SkI1Nzg3MkRlbHoyS1U3cUJvVzVSOXdBWVE4WkFKamJyenZMN0w3cDdITWo5ci9lMVl6YzV0QmtMd0FqZHd4RzVlNEtUZGNmZm5EQlI3MjdOczEra2tnS2xsRnRTb0g1TG9kSGVZUFU0ME9lcjZYbzdkNG9HcUk1UU02emxWeGxaT0FGV1Foajl2cWc2akFzS01BWjVCQ0s4Y3ExV2p4OHJaTGZJdHAvS2lBT09NZER6YW5mcDYwalRnbUFxUW96alV5cWJGS0RjbzQ0VGpyN2dkTlpSQWpzYWg4Q0dhTlJ2MzdQVzMwdmFjS3VBRXlSSzVQZThlSGd2UERYTy80YlI0bm5rV0YwaU1hK05ieTRCMHoxMnRyTm0ybnpza0paaitCM0k1dTk2aFA5aU1kaVl1QThHclUwT0FBVHJxV2ZCcjRjbkcrZmM2UlgrYWZGYmx6QUZ3aERsNjVVU284Zm9zemFsYzFlbkhqNTJjRS92blJ2Q0NrSnJQU2FMZENiMjJ3L01Hd2VnaDdCZFcvc3lGRllxWkpXdmwxcnc2dE43REVTQWFxS2I5cEkrVHR1TzRUa2xqUGlOdGVYVUhFUlM3a3M0RzhNcjl6SVhVVE85VHkrR0V0MkszK1BLNEJZQklldkZ2MElQTGVwZDU2dGlzcGtBRnN4bDJHM2lUNGNWMHlwMUJ5S2MxcmhlYkdCOXIyRUcraUFZd3J0NW5jUDNGYXRnNmNzVFplcTBqMEZiTW1pZHF2L1RKZzVmL2paMCtFWXBkQnliQzNwdS82Y0FGTk1oT3JuQW9POThZOVVGcDU2K3QrKzNoc3gzODN5NTUzTVcvL0JUN2Z2MVRxSjczRGhXYzhadGZZckZyLy9kTDVwOVgvdHZQOFBRT3g1N3JPbTJUKzBhZHNSdFNhdERGdWoxbUFTY2QyK256WDh0SjFyRmdYdS84cGpQTzRIWkduYk9qMmpodmVQMXpYWDd2S0VQOVBlLy83UG11ZjMzQWZ6eGZCQXkxVlJ5bSs4QVQrMnRhYmp2SXltcmhRMXl6aFdUM2hIZ0hlKzh2Si9hbDkwK2IxOUVXREdob1dIL2tlK1V6Z2p3QWRvS1JHbmI5SElqenJDK2ZTanFMYUNOUTlKa1hacVpGQi9zdW85Vm5Ndmo0NEVleHZ0bm9mTFVrc1owT2lnZU54Rm5EUkR5MkIzNjZmS0w2RnVOL09NaHpSb1V6MVZ5YU5OZzdRTy9lVHA1ajllMVhyTGFpbndwcGlFVURuajhOV2pyMGZjMTRDY3YzWGF2Vlg1djA5MXRJQ2E3elVESXdkd3RPUUFnVGtRZC9ZV3FEWFp2WWs5Y1JCbVU3Ui9nSTZjMGFtV3Q1REV6djRUU3p3Q3Fpc3RZYkJ0Ti9Ob0VOY1VYVnZ3V25yR0VmdjM0N0ZOUVJjSjQwOGE1d2RZODYrdXhmOEFYT21GdkxWbmZ3K0ozdDZ6Nk92SE0yY1hWMkpaWUVZTHVhQ25lT0g5aW5GaVZmbHFQYVRIeE9mTE4xSU5qQ2J3SUVQYmYwZnZ4NjUrQjJtQ3Nza29YUnhlcFE0KzFHdzlLUksvdjd2OXVoSXlmYnlzOVpCV2pmb3FNWnJDMndXVDJmVXlhSDFYVk8vLzh6YXVXY0paWnhwZTB0OGJJWXhrazUzUW01TmlUb3pWNGpNN2dBOGU5WDg2L3lvUUFxTXErRGV3TDBKUHNFdUFOYytuR3c5OFVLZUpsdDdRRTNQNE94c3pkK2s0ZXN4TjRobUNGM1l6cmRvc2o4Y1p2eFdGenVYSWJqeDVEMHF6dkdjejhuaUtIdnJUYm1aTFBpYk13Wk1tcXpUZ2Rhb25RQlJ1bm8zZjQ2WGRKdW1uRG5DY1Z0VHF0K3pWREpIZU1haGp5QmRmYW1PRWpRR0M4S2dWbSsyN2JjYWxxQ09VNWVFRGZhOFJQR3doY28rS3IxeklhWVFxVG1DSU8yeHVOSktmSUttNVF4SXUxZEh0amxxVkZHMEl5L0EvS2NNeFZDZGd5RXNSR1dZWTFpQXl0SzQ4UUE1NDJiQzdZTFlOdEo2SW1ZemRQV0tqaW1DMTBkaXJlc0szRGUza25Jd1duWm1OZFl6YXRCeHNGQkdCMTlaUWUzalh6T0ZzV0ZoWFBnbUFIV1J6RGtsT3BxLzQ1VEJWN0lTZ2NlNHpsWE94cnlaL1N1cDJ2QWR4T0FFTjRJYnVGQy9PY2NEUWRjUEwybWF1TnBIcFpRWVFYcVBuWCtzTmd6NldlOURqVEJ2TDRPRUpsUS9XV0I5N1pIUERudTFRbW1BOUtQNlFBQ2R0WURhY0pwclFlcGdFSmc5QUtJSlRzWFpNOEhON2xnSlU5ZTZEWTR5NVkrYkxUSFVEUlBXektHSEhqR3gzSnBRZloyd0Jpa0pqdEVibjNPemJiSDdBN2I0SlBSRmRUVzdybGx6WnFKdzVGc3REdmI5OERaUEJPdzVXankzOU5WMkRVNzNMZW54bGh3NGlHc096bnpGdkF5RUIzbnpOZ0RjM3VjWEMvL01ndmJ3cVl5L3ZUVHJyK1pzNXovL3ExLy9jNFptbW5hMElIWXcrRjRTOVNRem5sc0ZqSlZxRGtneTU0OUozNGoxL0VjMVZOdFFSdW5yZ1loVHNueDBKYmNJQWpiM3JMVkZwN2Y4ZXpEYWNUMWdqMEQ4bkowSU1ZcGJiSkw1VDBaaVBramR1Q2svKzdyRzNRS0NhczlOb2Nwc0pvNVFKNnFjMlphc01FNnozTjQwV3RJTldHN25qNGQ2M3BtVE5zMGRRcElteFgvQUc4ZStZa1hGc3l3OFRZMWZsc045ajk4cG1LZmZCd0RtcldPcTBxMVNxOGZFSmVlRnhLQVpRNnZoWXlmQjl2QkFaYjcxb0tWQWw4emNPdEpUWFo1UEU0WnhvUlg2eUtBMG0xRDBXMHlkNmJTaVNMWFgyVFlzMjRNVW5pNG5tTWg0NWxZZ3BOMHJ2Q0p1K1Z3cllWN21WYm9POW9SOFppdjRZUHFxQmN3Tjl0NG5qLy82YS8vRFFhM21lc2M5MlVtNk1oTHZJNjRIR0ZoMWY0cFNQSGZ2aTU5M2JxcWZCRC9hMEdEVll0V21zQUVlcnlLM1NnQTh3cTczc1hJMkZxZUJ3QnlIQTcvZENZemJNMDVkbllreE5xQ25pT1krUmVkUDVLaENJVzROZHJzV0xJWWY4azFrM05qMlYvRGljTW12QS9XMEkyS25LbXJ3VnJuNHJGY0ZsSTRJZVdrMWEvL05xL3VtWGIyWWV1NFVZY3prQW9HNGxRVXlQUDBFS1VCV2hTTTQ4UHlKZkMrblV4Z0JiZlJRS2VncmVuOFM2T1pnODEzcUxlVkx2czljNnN0MDlKYWFFL0RtOUY5UXdZWE1LTURUQ1FRY0xKdUlIS2hoUG11VGxWL25DTnVCMkg5bkwvRXowaEwwam5BemtIb0EvNTlnNGJnSW13aE8zWG5BdXBvNW4wL1IxNkJOWndVTmswR2RTbmU2N3dMUkpBMTNBWnJzRWlHcnozaVlJQXNjNGNjODNPbUwvczlTbUczcG1jdW5CcG0yTFZJQmF2bHFaaUlQSTZTSGZIY1NLZytUc3ltclZHSHVZam53b0FCY1l6ZExOU2dUVXc4cmcvbytTNEw4WjdIdHVuaTNOeHNPKzNub0JnYjd5d1pibmZCVEJlanAvQitUS2FuQVZUcmhMTjFFL0djM2dPZ3ZIZkZjSDlHSEVCaVdGV0xXSVlENDdkRE1MbjE2N2xOc0U3ZUJGMnp2QitIZXRjS0JuRzBlUDg4eEk3bk5HY1RuMmRZWi9mbnlDdVB3b0hTL3M3SWFyZ293K1hoSEp5RXE3SC8rM01NdHVld05tZTA0QzdSWUtSb2ZSVWJ3U1dkVStRWXpISnlMYTloeUF6QkJlMTRFa091bDNQSFc3V1h3bmx0ck84SHRrYWVuWWtsbFB0ekdpT2dFUTd4MDd4UExPM1FobmVkempsWTUwVDdiNFBtT3g2bGdmLzliMzdVb0hZOThZVHFKSlhpYVdmQlRuZFcxTUM0VSs2c25KYm1lOUFkZ3Y3OEFOV050Sm5nRzhsTUNWemRtd0h0SEFFenpsR1JxNkRZb0RHbkREZjcweE13cVlLUW5EWDdIQ0x0eU5LN2ZkWFRPejA1OWN4M1FmcnJjRHlEZHJMQUxJRDdEbEQ1S3J1bXhKeUlpWlRIczE4OFpRL2s3YUc0dytIK3dTRkw4VDdCbHBvZHZnZUtWNTVQZHZCclRxcXpXMHhvNFBTNjRjUkZEMGV0UUtLNlBDUFM4U3hkc3V5cjhrOUFoVlUvejMwYUFUeWYwN3A0YkVudjdUcUpGOUNsZzJhVmllaWg1WkM5UitvdkI3REJBb2RRN0hBby9WUWEyMEpsMVE4bTBIR0pTTjFiQUtOcm56TW5vR0JCL1p1Ty9Cb3ZiQnNEYWsyZFo1M1lsb3ZpUEFHaTFQM0JkZWJWb2pPZXc0YkphNWZwL2pySzQwUUtYTXp6TEQzZEVna0oydTNhVC9ZemRyUGxZR2d3RkovSmY1MTNXcitUKzIrWGRZSDNPZHJIQks1UlRNdTFxb25pWUR0TFlWMkFOcERJSTJKL0JBeGt6RlliY3dkbDJpQ1lFY2hUc1c4OThmQW93SGxLWmw2bkhqaFFFMlZ6aXA1OXlSQ2RmV3V0djJqRjdqNk5uTk9CZFpDdmpvWHN2NGtoeTlFUDZWK1Z3b2cvTUJiejI2b0htb0phV2NFRG5XMTVsWDBYNXp4N0NvTVRiMDZ4Mll1dUJ5VVZNMncweFZOdVlyQUZyVnJwNDZrdGtBZnJHZi8yaWtlSGpnWmQ5emxDcHRXRDZJc1RLb0taaXZ2YnhUa1ljWGhnQVlUVUh1dlg4ZGU1ZUE0Wmh0VVUrdHhXaUdEQjM4dVdCQ2R3Mld0NzZ2L3pMMGJDNHRaUWYyWHAzNS8zenZpUCtEcGtPR0liWXJubFpmMTBIcS9MZzJYUVZDZlFUSDRZeEZxc1Q0Mi9uaFljMWZyZlhmcmtyWUtEMDY4bCtMWnRBUmlNT0ZyZGhqbVl4NDk1Mk5BNTZRNi9GZlJYNW91dHpFUHpEVnhDQVlQdE9pYkFMMzJDZ1NlRGpZNmJEeDRQZ0dMQ2NzN1p3STdBZkR6cEdMVjUwMWgydUtmYndmYnY4YTNnVzZoV0hGYzk3V2FtZE9YeVJWeGN6UzNvZjdjVkVjT2h3Q2ExQzQ3S2s1QTlabU1iZ0JxZVZYc0x1a3l3T0hJWExDbjdpNmJjUHFjdEd0TXNRVXAwVGlscUo2ZDVvMzJtSXg4blY1YUQ1aEgrYUlOem1QUDZwU29GYXNIMHROT2YwMkQ5bHFOM25kRWI0enJUbWMyc3RUT1l6VURmNDRtb3poN3BKeTN6b212ak50MWpxV0p4aXFPbE0veVk4MU1xSy9VQXBSMm1XVytQdXdSSEZEdGNBQmt0Z2ZkZTV5SzNQL05xZVVpWThNblF6TlNkQzJTZStINHdBTHVlU1BHTXU4YmtNYjdaREJlT3VucWVGTXpRTXQxNENtRytDd2RXSCtjQ3ZtVTFzQTk0Mm41YnozNTF2TUE2WTF3ODBleHhMay8rZFZNOGY4N1Z3c0J0VDY0QmRGMVdUTnVRNy9HQXJMT1QvZmM1SE9aOHRCNjNQSm9ub0p3SVRzQzdyNG9yaTU1NitwMVJxeDdNbU9EOVZyRkFRSjBYamJleWlMLzhUUzA5Ly91RkJNZm1hUXBPZFRRRVpxT0RTZnVURVR4RFVDOU1qR2JaZVFmSXlHMEZuUU9tSEhhMFR6cXQ1Tjg1UHRaZEZhZXMyMEg0bi9wLzZVS2RvL0NkdlAzZks4M2ZadkFXUkhMYUJUM2w3VTM0eFZvZFRGQTgzdkp6T1BuNzRnKzNaL253bzlwS2VJaGQzazZVQ3c1OXkwaVEyNDM4VktNcjAyTlZzSDhuVHZTZTA3V2hDajFZRGNvbnJuaHFUWkRrVTNuVG5aNTRzeUxvd0x6UElRT2oyVzZKRUU4bktOcDhiM0d5SWJieU9Ea1poZ0RvU0pjTkx0YVBXVG0yaHZQaGtzZmtnYUVmaDhNSEo1YS9uZ3I2Mmd6ZG5PMnBMM0w2cVJXWW5yV0J2RUhYMzlmanc4VHhqL044K1Jtbk8rQ0lkYVpXN0s3b3NNOXUvUTRPK3daMk8zcjhPY1Z5ZUFCMmFEcE00RG9oRkFDNStHVTYyZ0ZnNWJBZ2c5UFJVOEtEeHhFNS9NekRUNnl0aE94Nzh0M3lhRGxJaEFLUzhQMC8wb0tjTjFOaWdHWkQxMkU2cmNhSjJxK05EaW44OHRIMmJpZlU4UFdjS1N1dGNlWEpRdWRRN3N0Y2RRd1oxbStlZHppdVl0M0NRanZSRGV1Yks1SXh6eE9UdzMyV09UQWxveDhrMGV1SUtET28xck1Ta1dYZFRJRkkyS2xSREpuK0NpdzFUTTZlM3RGRGZLM3g3UmFFYnVNTDJHSGtkVHYwc1RuWjY4OWswN25QSVhNZTBwREZhR3hyR3lmVmhLa2YyOWxtRW1qUFMweW1mOHpqLzg0N0F1cjlacks4QzFPQmVTMmUrUHhyZ2JRbXBKNGhua1hHNlFHTjFWbmlGaVpoNHExbWZteDF4S2ZiakhRNldLWm52enpid1ZPNGpUZWVmQjJ2M2U5d3N1YU9uclJvekJTVnc1ejVUQTdBaHZyMWc5YnZEeVhEdFhtMldKYVlwdGtTQW96bU90SGZFNmxONFFHbHpwRkdOcFFBOHl3TEhSNjEzaDJpM0o1cXM0SDlXTTZybFdBODV0M1J5eGgyUUdNTW5qMm1EeDNRVUIyY1d5eWVsdVp0TEhnemNlRXVPNURXSkNPc3RsMW53aXcyMi9PL3krZTVndmFOVEpkbHRHTTVrY1BuOUkwNkNPSjJCb09EWWhUTlpGdnJPUXNsTFk5eWFpZjV4MjRhWGJIeHFXbmVUdnJPWkp3elJ0WFk3V25BVmt4Z0V1SDEvdGpkalZMakE2dERGSk1CYnE5L2gyTWhEcEhTWEVIZWx0bjltTTVSV3g3QXhMN1pHOHU3MnJpaHF6WWN1YkgybDlVZXJ6bnpjelM5REdlbk03YXBXZk53Q2xkVzV6WGY5M1I4WTVGd21kbkdHNk9BbnZzVHo3SGZGK1ROZ2pWTFM1cjhJdU81N3p3OGRDSmo2UlpiWUNWRkVoMDYrUTAzalgzVElYZ3YrWkJkcDlhd3Z4N2VpZzJ3RU1hS0pydzZUMlgwZEZwMyttWHJZVDh1Q01IQ3VaZmxvUjNZeDlJTlpUM3VnTW5UeTAxWVo5Nzk0TW51NVpFWUNJQnpSb1NrRm0rSm9MZkYzR2RtMWhsbzdSQ3d1czhCMzFhN2xQWmRBUy9aN00wS1R0d2Q5em5zT1ZuVHREekJRalY5ekN1YkVuUzRQUGFlYjJlSHdsYjcxN09uRmZlK0w5dWpIVCtGM21WUDMrck9CdkRjUC90WHduTU9WUExRR0E5eHFpYmcyRi9KWnZmSWVnK3R3YXpwZjY1ekxDckk1ZnIvQXBZVHFBOGFKZXJZQUFBQmcybERRMUJKUTBNZ2NISnZabWxzWlFBQWVKeDlrVDFJdzBBY3hWOVRwYUlWQlR1SU9HU29UaFpFUlJ5MUNrV29FR3FGVmgxTUx2MkNKZzFKaW91ajRGcHc4R094NnVEaXJLdURxeUFJZm9BNE9Ub3B1a2lKLzBzS0xXSThPTzdIdTN1UHUzZUFVQzh6emVvWUJ6VGRObE9KdUpqSnJvcWhWNFFnb0I4OUNNak1NdVlrS1FuZjhYV1BBRi92WWp6TC85eWZvMWZOV1F3SWlNU3p6REJ0NGczaTZVM2I0THhQSEdGRldTVStKeDR6NllMRWoxeFhQSDdqWEhCWjRKa1JNNTJhSjQ0UWk0VTJWdHFZRlUyTmVJbzRxbW82NVFzWmoxWE9XNXkxY3BVMTc4bGZHTTdwSzh0Y3B6bU1CQmF4QkFraUZGUlJRaGsyWXJUcXBGaEkwWDdjeHovaytpVnlLZVFxZ1pGakFSVm9rRjAvK0IvODd0YktUMDU0U2VFNDBQbmlPQjhqUUdnWGFOUWM1L3ZZY1JvblFQQVp1TkpiL2tvZG1Qa2t2ZGJTb2tkQTN6WndjZDNTbEQzZ2NnY1lmREprVTNhbElFMGhud2ZleitpYnNzREFMZEM5NXZYVzNNZnBBNUNtcnBJM3dNRWhNRnFnN0hXZmQzZTE5L2J2bVdaL1A4YTdjbUx3MFh4dkFBQUFCbUpMUjBRQS93RC9BUCtndmFlVEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFBQjNSSlRVVUg1QWNDRUNRU1IxL1VNUUFBSUFCSlJFRlVlTnJzWFdkNEZGWGJ2cy9NMW5UU0V3SkpxRUtvU3ErQ1NGRXNLS0orb29DZ2lJclN1d2d2dlNnZFFTa1dSSDFGUklvRkMvS0NnQ0NDUWlDMGtKQzJ1OGx1eXZhZGNyNGZPek5zR29ZU2l1eHpYWE50c2p1N00zUG1uSHVlZWorRVVvcTdWZjc4ODArTUdERUNmLy85TjhMRHc5R3paMC9FeHNiaXE2Kyt3dG16WndFQUd6ZHV4T3paczVHYm00dEhIMzBVTE1zaUpDUUVhOWFzQVFEczNic1hJMGVPeE9uVHA1R1ltSWhHalJyaHQ5OSt3OWl4WTJHejJiQjU4MllVRmhiaTBVY2ZoZHZ0aHNQaHdOR2pSMkV5bVFBQW9hR2hTRTVPaGlpSzRIa2VnaUFvcjRJZ1FCUkYzNytKS0lydzNTaWw4aXVobEVMZUFKQ3lyd0JBS1NYUzVTdXZaZDRqNTg2ZGk0bUlpSWpUYXJVeExNdkdNQXdUeFRCTUJDRWtIRUFOQUNHRWtCQUFnUUFDQU9nQmFLU05CY0JJdnljQ0VBQjRwTTBKd0FIQVRpa3RBVkJDS1MyaWxGb29wV1pCRUFvNGpqTzZYQzVUWGw1ZVh2UG16VTNTNzFDZnJkei9oSkN5bjhudkFRQWxoSlI3OWRrb3d6QWdoSUJobUxJYlpWa1dMTXVDWVJqSWY2dFVLdVZWM3RScU5kUnFOVFFhRFRRYURiUmFMYlJhTGZSNlBmUjZQUUlEQXhFVUZJVGc0R0NFaFlXaFJvMGFpSXlNUkhSME5PTGo0M0g0OEdIVXJYOFAvSEpqaE56TndIWTk0dkY0a0p1YkM0UEJnSUtDQWxnc0ZoUVZGYUdrcEFRMm13MTJ1eDBPaHdNdWx3c3Vsd3R1dHhzZWp3Y2Vqd2NjeDRIak9QQThYMnFUQWN4M0UwV1J5QUJYQnN4S0FabjhmeGtBS3dWWXZ2OXYyN2F0Z1Y2dnI4ZXliRjJHWWVvQVNDS0VKQUpJQktDN1RZYlpCZUFTcFRTVFVwb2hpdUpGanVQU3JWYnJoUUVEQnB5WHdjMEgyQ29EdkhJQVNBaWgwbmhSRUhKNVlBZ3BCWHkrSU9jTGVtWEJ6aGYwZk1GT3A5ZERwOVVpTkRRVU1URXhDc0NGaElRZ0xDd000ZUhoaUl5TVJFWkdCdHEyN3dTMVd1MWZYSDVndTNZWk9YSWtWcTVjZVZ1ZFUzUjB0RmZOcVFETVpLMU1CamI1M3NtYW1pOTQrZjYvYi8vQjZKalkyS1pxdGJvcHd6QXBoSkFVQUkwQWFPL3dXK2dHY0ZvVXhWT0NJSnh5dVp5cDZSZlNVeC9wMjZkQTBoUjlRVTBzQTRDZ2xDci9YMEdqbzRSaHdCQUdERVBBTURLWU1aUmgyQXBCalZXeFVLblVVS3RVVUtuVjBLalZFaGdTcURVYTFFcElRRUJBQUFJREF4RWNISXlRa0JEVXFGRURPVGs1YU5xc0pRUkJRRXhNakIrWi9NQjI4OFJvTkNJM054Y21rd2tGQlFVb0xDeEVjWEV4ckZZcmJEWWJIQTRIbkU2bm9xV1YxZEQrUVVzanN0bFpCdEI4TmJOUzJsaFpVSHU0N3lQczRuZVd0TmJwZEswWWhybVBFSEl2Z0FaMzJXMDZKNHJpbjdrNVdjYzBHdldmWThlTStYUHYzcjJpRDlpSmxRQ2VaTVlTU2dnb1FFQklaU0RIZ0dFWnNBd0RobUZwS1lCVHNWQ3hsN1UybFd5aXF0VVFSUkhCd1VHSWlJaUFYcTlIUUVDQVlwNGFqVWJVYjNBUGFrZ2FYR3hNTENLam92eUx6ZzlzMVNmRnhjWEl5Y21Cd1dCQWZuNStoV2FuMCttRTArbUUyKzFXekU2TzQrRHhlTUR6ZkNsUTgvR2pFVjgvV2dXYUdhbkFYNlpvWm1QSGptVWZlK3p4VHVHUlVlMkRnb0k3RUVMYUF3ankzekhBYnJmQldsS01WdmZkYTZPVUh1SjUvcERWYWozODZxdXZIdnJpaXk5NFFraFpvQk1yTW0zTGFIRzBsRitPVWNBTkxNdUFZYjBncDJKWnNMN2dKZ0Vjd3pCZ2lGY3pMK3QvTTV2TnFGVTdDYUdob1Y0VE5TSUMwZEhSaUl1TFEzQndpUCtHK29IdHhnbkhjY2pLeWlxbHBSVVZGU2xhV2xYOGFHVzFORms3OHcwT3lKcVpiR2I2YUdTK3ZqSkNLV1VzRmt2am9LQ2crMW1XN1FLUXJrZU9IQW1OVDZqdHYxa1ZTRzdPSmJScDNicmNjK3JRNzRmM1JVWEg3aThveU4vZnZtM3JOQW5VS3RMcXhFcEE3cklteHpDVUlUNGFITXVDbGJXNGN0cWJDcUlnSWpJeVFna3c2SFE2NkhRNkZCVVZJUzZ1SmdLREFoRWNISUxRMEZCRmU0dUppVVZ3VUJDeXN6Smh0OXNxdmQ3QXdDQWtKZGRGU0dqb0xSdnprdUppWkZ5OGNNdlBVM1czVFhaS0tRd0dBMHdtRTNoQmdNMXFyWEEvaThVQ2s4bFVTanV6MisyS2R1WUxaUDhBWWhWR05XV0h2MlQvZ1BqNHg4cUNtY1BoNktiUmFIb3dETk1EUUZQZjgzUTZIWDRFcTBTY2pnckhKdFR0Y3ZiVmFyVjlhOVpNd0tYc3ZKTTh6LzlpczlsK2JaclNhRDhoRUh5QmpsSmFUcU9UL0hNQUlaU0lJa1JDd0lnTUJNSlFoaEhBc2d4aEdCWXN6MUtlNWFGU1NSb2NwNElnOExEWnROQm9OSXAyNzNLNVVGSlNBcTFPRDZmTHEvazdITjY1WnJOYVVWSlNnaUpMQVFJREF4RVdGblpGTFRYajRnVTBhM0h2TFJ2emkrbm40WERZLzFHYnJ1N3pWTjF0b0hiczJER0FNQWdNQ2taZ1lCQmlZa3Z2NDNBNGtKT1REYmVIQjhlTDRBUVJna2doVWlpdkZLVDBSbEZtbzZBVUVDbUZLRklpS3BGTDcxYld4S1NVRWlxWm1jUWJybU9jVG1jZmpVYlRoeERTQjBETmE3M21IM2YvZ0kwYjFzTmtNaUkrUGg0ZmIvb001ODZkeGRBaGc1UjlKazJaaG9jZWV2aHV4YjhtS3BXcVNWaFkyQnRaT1hrNWdpRDhZTGZiZjBwcDFPQW55VndWS2dVNVNpa0ZvZDRBS3dVaElrU1JRQkI4QUk1bHdmTXNXQlZQVmJ3S29pakE0WENBNHppbzFXckZYV0czMjZFcExsYUFUblp0T0J4MjJPdzJGSmlNQ0EwTmhjMW1RMlJrSkhRNlhhV2djU3ZsbjBEdFpwM25YUVZzQm9NQklBeWlZK0lxTmwxeWM1R1htd3RUdmdsbXN4bEZoWVdLSDgzaHNNTXBtNTF1Tnp4dU56eWNCNXhIMHRaNEh4OGFMMEFRZU1uY0ZDR0tzc2xKQ2FVaUtBVUJLTGxzY25yLy8rMjNBOTBURTJzL0doOGYzL2Q2d016M2VoYk1uNHVacythZ2RlczJLQ2twQVFEVXExY2ZQLzc4S3dEZ3BhR0RxMjI4TjZ4Zmg4Y2U3NGVJaUloeTU3VnN5VHM0Y2VKdmFEUWE5SGl3RjBhOCtocFlsZ1VBWkdkblk4V3lKVGh4OGdTMFdpMTY5dXlGbDRlUFVENnZEcEdPV2ZQRXlSTXZhclhhRjZkTW5aWXpkTmpMMzludDl1K2FOV20wWHdJNG9ZelpXbGFMazRJUElrU1JnU2dTeWdnQ0JJWUZLekJFWUhtSW9raWRUbWM1WUhNNEhGQ3JOVjVYaGpTLzNHNDNuRTRYSEE0bkNpMEZFdEE1WUxmYkVSRVJnY2pJU0w5YTdnYzJ3R1RLUjJCUWNMbjNiVFlic3JPenZEbHArZm13RkZwUVhDVDcwUzVITzkwdUY5d2VOenh1anhmVU9BNDh4NEZUQUkwSEx3Y0VGRkFUSlRDVEUyaTlJQ2FibWFkT24yMFNFQmpZajJHWXgrMTJXK1A4L0h6RXg4ZmZrT3M5azNZYWtaR1I2Tml4RXdBb0M0RVFBcTFXcS94ZFhmTGh4dlhvM0tWTE9XQ2I4ZlkwTkduU0ZQK1pQUmZGUlVVWU0vcE4xRXlvaVg3OW5vUW9pcGcwWVJ5NmRYOEFzK2JNZzhsb3hMaXhveEFWRlkzK1R3Mm9sdk9zNUpnMW82S2loL1YvYXNDd3JCekQ2YzRkMiszNHoreTUzNzR3OFA5T0FSQWs3VTBneEt1WVg5YmtLS1dVVUVJRVNpa2hvaWhTUWtRSUFrTloxdXVPY0xsY1VLbFVWQTRxcWRWcXVGd3VxTlIyeWFYaDlkTzZQUjdKWEhXaHVLaFEwZVpjTGhjY0RnY2NEZ2Vpb3FLZzErdXY2YnEvMnZJbDNsdTlFai85c2hjQThNckx3MkN4V0VxNVl5Wk5ub0llRC9ZRUFKdytmUXE3ZHU1QTgrWXQ4R0RQWHRXK1hoZk1uNHR2ZCsxVTV1anJJOTlFLzZjR0lEMDlIVXZlWFl5UzRpSUVoNFJpNHFUSnFGWEw2MmMrZU9BM3JGbXordTRDTmw3Z0VSZ1lWRVo3eUVGdVRpNk1SaVBNWm04S2gxZExzMTcycDhuUlRvL2tVL1BJL2pRdnFBazhENTczRFFnSXZta2FwSFJBQU14SEgzK2k2OXlsNjFNc3kvWW5oUFR5ZGFyYVNvcXUrenFQSHorR0dkT25LWnJBNDQ5NnpjeCtUL1RIb01GRHF2UWJodzRld01vVnkyRXc1Q0V4TVFsanhvNUhTcE1teXVkN2Y5MkREUnZXSWQ5a1FreHNMSVlQSDRGMjdUc0FBRWErL2lxeUxtVUNBRWEvK1FaVUtoWUpDYld3Y3ZVYWlLS0lybDI3NGVHK2ZhSFZhaEVkRTROV3JWdmo3Smt6eW1LcUVSNk81d1lPaEVhalFVS3RXdWpZcVRQUzBrNVgyN3lvd2pFYkVVSWF4Y2JHVHJpVW5iZmI2WFJzbnpIOXJSMmZmYmJaQ1lDWE5EY1o3QlNRazMxeGhGQlE2alZUS2FYVTdYYUQ1M2tpQlJVb3ovTnd1OTFnV1JWNE5RK092K3l6NWFSZ2xMV2tSQWxNZVR5ZVVnQVhHUmxab2ZZbWlpSVloaW4zTndEazVlWGgyMTA3UysyLzV2MTF5dDl1bHd0REJyK0FqcDA2QXdCV3IxcUo5UFFMY05qdHFGZXYvdFhaK2syYUtJbnNWenJIc3Y5YnpHYTh0K1lETkU1SktmV2RXZjk1RzZOR2pVSHpGaTJ4YStjT0xGKzJGSXNXdnd1WHk0bUZDK1poNWVxMVlPNG1ZUE1ORkRpZFRwdzVjd1puejU3RnhZdnB5TTdPUWw1ZUh2THpUUXJBRlJjWHd5cVpvamE3SFE2N0EwNkgweWRYelEyMzIwM2NiZy94QmhFODRIbU9TRGxwUkJSRlJoUkZobExLVWtyWjFOTm5tMmRjeXA3ZHJmc0RKMVFxMVFlK29PYXJQVjZ2dEdqUkV0dTI3OEtibzhhZ1pzMEViTnUrQzl1Mjc2b3lxRjA0Zng1dlRadUNFYSs5amwzZjdjWlRBNTdHbU5GdndHUTBBZ0F5TXpNd2U5Wk1USnc0QlR1Ly9RR1BQUElZcGs2ZERJZmtyRit4Y2pXMmJkOEZBRml5YkRtMmJkK0ZsYXU5SldnTXcrQzVnYzhqTEt5RzE5bDhNUjBIZnZzTmJkdTJVN1RLRlN0WFE2ZlRLeFA5K0xGamFOYXNlYlhOaTZzNUppR2taMEJBNE1vRmk5N1pYNzlCZ3lscjMxL1hqRktxaFRmaFdRTkFEVkFWcFZRbDMzZDVIa2h6Z25BY1J6eVNOdVp5dVlqTDVTSXlXRG1kVGpnZFRqanNEdGpzZHRoc05saWx3SlhOWmtOeGNURUtDd3RoTnB0aE1wbVFsNWVIckt3c1hMcDBDVzYzV3puUEkwY09ZK3JraWVBNERoYUxCUzhOSFZKS0cxdTBjRDVHdnZGbXBXUHkzWGZmb2xQbkxvbzJPT3lsbDdING5TV29VN2Z1Vlk5dlNFZ0lOQnBOaFordFgvYytObis2Q1FCdzRzVGZlUE9OMThzOWNNcjZ5Ujk5N0hFMGI5RVNBSERQUFkxZ2xnQXpMeThQWVdFMVVMTm16YnN2S3VvMVNZM0l6c3FXbmlMNUtDeTA0TUtGQzlqOXcvZm8xdTBCdUZ4T09GMnV5NmFucEtWbFptWWdyRVlORUVJZzhEemhlYStHNXZHNElRZ0NZVlVxOEJ4SFpKSE56ZDY5Ky9SWis4SDZaL2Y5Yis5VEgyN2NBSTdqVUxkZVBVeWFQRVZaVExlVDdOeTVIVjN2NzZhWXNMMzdQSVR2dnR1RjNidC93TURuWDBCRVJDUTJiUHdZdFdwNzFmOUhIbjBNUzVlOGc2eXNTMmpZc0dyMWpxa25UMkwwcUpGd3VWeTR2MXQzZE9sNmY0WDdyWGx2RmZRQkFYam80YjQzN2ZxcmNreENTSzJJOEloUlFjSEJvekt6Y3JlV2xCUi8xVFNsMFM4QTRhWElxaUJwYllLdkJnZUE4anhQR1lhUjh4ZXBsTmRJR0lZQkw2Z29ML2dtY1h2OXQwNkhvMVErcEt6UmVSUnoxV3VtUmtsSnZhMWF0Y2F2ZTM3QnpCblRrWk9UalNlZmZBcmhFa2hzLzJZYjZ0YXRoMGFOVXlvMXpiZCs5U1VXTG41WGVhOHlZTHBlZWZiL0JtTDBxRGRnTmhkZzMvLytoMWx6NWlxZm1TMW1USjgyQldhTEdXM2F0TVhvTWVPZzFXclJyOStUeWo1ZmZQNFpldmJ1RFFDSWpZMkR4V0pHZW5yNjNhV3hpYUtJOVBRTE9IUG1qS1NsWFVKZVhoNU1KaFBPcEtXQjUzbGN5cnFrVkJMSWVXcE9oeE5PbHhPVVVuamNIdUp4dTB0cGFGTGFCcUdpeUJCQ0dFb3AwKytKSjFVWExsNGFQRzc4aEIrN2RMMS9xOWxzZm1yRjhtVjRkK2t5ZlBMcFoxQ3IxTmo2MVZlM2JaQWxMcTYwbjY5MjdTUVlESGtBZ0tDZ0lCdzkrZ2VHdnp3VXp6MzdOQWEvTUZBWjM2cEtTcE1tMlAzVEhueng1VmJrNWVWaHcvcDE1ZmI1K0tNUDhmdnZoekIzN255b1ZEZm5HVnpWWTFKS1lTbTBJQ2d3Q0F6RFBCRVdWdVBUUzlsNVc5TE9ubisyZWZNV2VrcXBEcGVKQVh3MU9JWlN5Z2lDd1BBOFQzaWVKeHpIRVo3bjVjQUJjYnZjeE9WeWVWTS9IRTRsVjFJT0h2QThyMVFzaElhR1FxL1h3MlF5SVRjM0YxbFpXVWhQdndCS0tZWVBINEUvai80QnJVYXJnTFRSYU1DTzdkOWcyTENYS3IyMjMvYnZRMUp5SGNUR3hsM1hXUGJ1M1J2OSsvZEhmSHc4T25Ub2dQNzkrNk54NDhhbDlna0tDc0lycjd5S0wvLzdCYnAxNzE3cXdUaCsvRVM4OCs1U2JQcjBjNWpOWm55OWRVdXA3Mjc1OHI4b01CZmdxYWVlQmdEbzlYcE1uaklOOCtmTnZuczB0cUtpSXB3L2Z4NnNTZ3RUdmhFV3N6Yy96V3IxbXBwWldaY1FHeGVIM053Y3hNVEVLRTlDUTE0ZU9JNERJUVNVVXNKeEhnQUVITWNSUWVDQjBqV2FaUE5uWHdRdldqaC84SktseXdjUlFwb2VQSGdBOCtZdkJCVkZ2REZxdEdLQ05iem5IdVRsNWQ2V1l4VVRFd05EWGw2cDkzSnlzdEd5cFRmdmFOLy85dUxUVFo5Z3lkTGxTS2hWQ3dEUXBWUDdpclNhY21EbmRybnczWGZmb2srZmg2RFY2UkFYRjRjZVBSN0UvdjM3eWszYUgzZi9nR1VyVnQyMGhOT3JPZWFSSTRlaFVhdlJvR0ZEMyt2dEdCZ1kySEg3em05ZmRydmRuMzM5OVZmL25UQnViQWtoUkpCOGNiSVdwL2ppQkVHZ2xGSXFpaUk0am9NZ2lKUmxSUWlpUUFSQm9JSktnQ0I0UWM4M0o5SnV0ME9qMFVDbjB5bmxXYkwvN2Z5NTh5aklMOENhTmFzdzhQbEJPSHNtRFF2bXo4V2t5Vk94YzhjT1dHMVd2REw4SllCNHlSeUdESG9lYTlaK0FLMlVRdkxGNTUvaDVWZEdYUGQ0ZnYvOTl3Q0FEaDA2SUNNakE3bTU1ZWY3aFFzWE1IL2VIUHhuMWh4czNMQU90Uk9UOFBERGZTRUlBbHEwdkZjeGhYdjI3SVhEdi8rdWZPL1hQYi9neHg5L3dMdExscGVLbHJkcjN3SHQybmU0T3pTMjdPeHNuRHg1RWxsWldjakt1b1M4M0R5WVRKZURCVWFEQVlJZ0lpZ3dDRVdGaFlvZnJTQS9INElnSUNRa2xHaTFPa0lwaFNBSWhCZDRJZ2c4WVNRQndEejVaUC93aTVuWll6dDE3bklvSmpaMmNkcnBVMDJ6c2k0QkFKS1NraEVWSFkzT25ic29pM3ZIam0vUW84ZUR0eTZRSXBrNkFFQWx5aVFaaEI3dSt3ajI3dDJEdzRkL0I4L3orT1dYbjVGNjhnUjY5dks2Qk0xbU13Z0JHSlpGY1hHUjRpT2hZdWtxbHJqNGVCdzZlQkFjeHlGZm9tblNhTFg0NU9PUDhQbm5tOEZ4SElxS0NyRnYzLy9RckZtenk2YndqdTNZOXZWV0xGMitVakdmcXQzOHJ1SXgzVzQzZmo5MEVQUG56Y0h3VjE1RllHQmdSWURlUktmVHpYbjIyZWUrUDM4aFk4VHE5OVpHU1JxY2xsS3FvWlNxZlRVNHlRL0xlTWtQZU1MeEhQRUdEZHpFN1hZVGw4c05INTljS2UzTmJyZkRLaVh4eXI2M3JLeExPSFRvQU9yVXFZdHUzUi9BdE9rem9ORm9ZYkZZTUhUWVMvajhpeTNZK05FbldMTjJIVFFhRFRaKzlJa0NhcWRQbllMYjQ2bFduNmF2SFAzakNDWk5ub3I3dTNYSHUwdFg0RlRxU1ZCS1VWeGNqQmNHL3ArU29uVDgrREVrSlNjcmYzLzA0VWJNWDdDb3d2RUgvdVhwSHBSU25EMTdGcG1abVFyRkVLdFNvNlM0QkZhYkZRNjdIUTZuRTlrNTJRZ0kwRXZPVjRMaTRtSVFoc0RsY2hPMVdnVVA1NEVvQ2dCQWZPaUJHQURraHg5L0NibDBLWFBZZ2YzN2hqRU1VeGNBT25ic2pJTUhEeUl3TUJDZE8zY3RadzdQbVRNTER6elFvMUlmUjNWTDJRVGRCZlBuWXNIOHVYaXdaeSs4TlgwRzZ0ZHZnTGRuenNKN3ExZkNrSmVIMm9tSldMajRYY1JJMmN4OUhub1lKMCtld05BaEw0QmxWWGpzOFg2b1g3OEJMSVdXVXNjWk0yWWNGaTlhNkgwUzE2Nk5kUnMrZ2thandZS0ZpN0Z5eFRKODhmbG5VS3ZWNkhwL053d2EvQ0lBUUJBRUxGcm9OUU9mZmJwL2FUTngwK2JyTm84cWtxb2VjK1JycjRJUUlERXhDV1BIVFZCOGtGZVF1bHFkYmtiZlJ4NTlvY2VEUFQvK1p0dlhuNDBiTzdwWTF0NGsvNXVpeFhsVFE0aElLQVgxVnFoUVFSUWhpZ0xoZVI0c3kxSzVjcVVpaWl2NVlXVXc1S0ZHalhBMGFOQVFaOCtlZ2NQaHdKaXg0NnFVMnZQNVo1L2lxUnVjVm5QZ3dJRktQeHZ3OURQSzN4RVJFUmcvWVJJQUlEdzhIQzhPRzRiWFh4ME9Tb0hrT25YUTd3bXZiMjMrdkRsd3U5MFk1Uk5vbVByVzIyalFvQ0VLQ3kxNGVkalFmMit0cU5WcXhmbno1M0hwMG1VLzJsOS8vUVdHVmNGdXM4SHVrNXVXbG5iNnN2WkNLZFJxTmRIcGRMQmFyVEx2RnBHSUlBbkRNSVJTeWlRbEpiRjc5dTUvbVdYWmwzLzY2Y2ZHKy8rM0Z6UCtNeHNBa0o2ZWpubHpaeU1vTUJDRFh4eUs1czFiS09lMWJPbTc0RGdPNDhaUHJEZ2llUzROWGJ0MnJmSjE3dDI3MTA5UVdJbFVOcGEzY014T3A1NDQvdEh5NWNzM2YvZmRkeDRKNEJRVEZkN2FWUG1WeXNYMkRNTlFRUkFVL2plVlNrVlpsb1ZhcllaS3BWTElMV1hUTkNtNWpzVDNKcEZaeHNTZ1pzMEVKQ2NubFV0M3V0Rnk4TGYvVlhuZjloMjdWTnQ1L0NzMU5xUFJpQXNYTGlBcnk1dkM0VXNFeWJBcXJ6UFc2WVRMN1lMZGJnZlA4NGlPaVFIUGNYQzZYTVJodDROaFdSQkNpQ0FJY2k2YUV1VThmZWI4TXk4TS9MOFJScU94Ylh4OFBQTEsrQTdxMUtrRHU4Mkdnb0o4TkcxNjJjVGEvT2ttbU0xbXpKZzU2NFpkcTE0ZjRFZXdxeHliV3pobWpXclVDSisvYytmT0owcEtTajRNQ3d2YlFRamhmQUZPMHVLSVY0c0RwVlNnb2xTckovbmpJSW9pVWFsVTFKY1ZSdGJhQUlLaW9pTHdISzhrKzdyZGJyaGRMcmhjVGlRbEpsVXJIVkpBUUdDVnlxb0NBZ0tyZGFEL2RjQ1drWkdCOVBSMFpHZG5LMG1CY3RLdDFXb0Z3N0JLS29mSDQ0SEZiSUZLcFlMYjVTWTh6NE5LQmVyZXRBMkdpQ0pQQkVFZ0FKZzJiZHAyZjJmSjBsY0RBd1A3VHBveUZWTW5UMFNOOEhDb1ZDd0N5aXlXanAwNm82UzRTRWsyTkJvTldQUGVLaVFrMU1LUVFkNG9Jc093MlBqUko5ZDF2U3pMd202M1ZmdVQrRTRUdTgxYWFRa1djNHZHekc2emdsV3BRQWhwRXhvYTJrWVFoTDRtaytuRHVMaTRBNFFRamxMS0UwSmtnQk5CSUlKQ2hDZ3FCSm1pNk0wYWthbXRSRkZVekZNQTBPbjBzSmFVZUZOQ2VEa2xoTHRjeWVCeXcrbHlvWllVOUxuUmtseW4zajhXd2djRUJDSzVUcjFxSGV0L2pTbEtLY1daTTJlUW5wNk9uSndjR0kxR2hXWklydmZNeWNrQllSZ3ZLMGVwc2lpZWVOazRlRi82SUZsTFkwNmtwalVJRGc1K2pSRHl5cTB5bnlvSDhreVlMUmJFeE1iNzBjeFhhemZrSWpJeUFvbTF5MU02WldSbXdteSsrV05tTk9RaUlpSUNTWW1sejRuanVIV3BxYWtmdDJ6WjhnSUFEZ0F2UlZJVkg1ek1IK2ZMQ2VkRGNFbkxtcVV5SlpJY01aVlRROExEd3hFVkZZVzR1RGpVcmwyN1drdnFicVg4S3pRMnVZb2dJeU5EQVRXejJZemk0bUtmSW5ZSDNHNDNSRXA5eTZJSXovUGdCUjZpUWl0RUNRVWxvSlQwZjJvQXUzRFJPeU5abG4wRFFNTE51SmFnNE9DcjJqOHhzVGJ5ODAwd0duSVJGQnh5MTJ0dWRwc1ZOcHNWQXM5WENHb0FrSlNZQ0pQcDVvMlpmRTZpSUpRRE5RQlFxOVhEV3JSbzBjZHV0Ni90M0xueng4ZU9IZlBJQUFkdmtNcTNBRi9oaHBOQmptRVlJdm5mcUV4Ujd0dGNSZ1k0WDlaZXVlZEN3NFlOcjduVzlIYVdPMTVqS3l3c3hObXpaNVU4R1Y4T3RiSmtrSVdGaGZCV0MvRGdLdGZTR0FEazNJV01uaHFOWmhTQUIyN21vblM3bldqV3RPbFZhNnNYTXpKaHNaZ2g4Q0pjcnJ1VG8wMnZEd0REc29pTWlFUmlZcTEvMUVZeU15OGh2NkFBQWk5VTI1anA5UUZnVmFvS05iV0tSQlRGUFNhVGFWMWNYTncrUW9odmdJR1hORGRCQWpSUkRpNndMRXQ5d0l5cTFlcFNKSmErUFJia0JqSnlkNnlrcENRMGFOQUFOV3JVOEFQYmJXTnVHSTJsMGpsazJ1NktHRzdkYmpmc2RqdGNMaGNSS1lVZ0VVRXFXaHFsQktETWthUEhZcU9pb2tjUlFrYmY3T3N4R2ZNUUZ4dUR1TGc0K09YdUZvL0hzK3FYWDM3WjJLZFBINE1VWUpBMU9NRW5jaXFERzVXMU5WbFRVNnZWVkc0QldCYmNmRTNTK1BoNEpDWW1va0dEQnYrcUpqSjNyQ21hbFpXRmMrZk9JVE16VTBubjhHMnVJdE82K0RMZENvSkFQQjZ1SXZZTkJnQno0ZUtsL2lxVmFqU0ErMjdtdFRqc050aXNKUUNvSDlUOEFnRFFhRFN2OWVyVnE0UFpiRjRiRVJIeEhTR0VsY0NOODhsL0kxNGxUeFI5R3Y1UUg2cDVXbG11VzJWMXA5VVZWUEFEV3hYa3dvVUxPSC8rdkFKcWNqcEgyZVlxWmVpN0NjZHhBS2g4MCtVdVQ4eTJiZHRxaFlTRWpNbThlUDdWbTMwdHdjSEJVS2xVaUkrUFEyeHNySDlGKytXeU9VVkl5L0R3OERVZWorZUQzMzc3YlVPM2J0MnlDU0dNYkpwU1NubGNabDRXdlY0SjZoc3BKYjVSMDdMcElUSjl2UysxdmNmalFkMXJZUER3QTl0MVNscGFtcEo0SzNlTktpekZkT3NvQzJyRXB4ZUI0a3VEVkRuZ2RydWZVS3ZWWXdHMDhpOGx2OXlPb2xhclgrcmF0ZXQ5K2ZuNWE2S2lvblpMdmpkR0FqVlplNU5UUWNwcWIrWFNRc3BXTHZoMlRwTUI3cDU3N3V5a2I1S1JrWEZIbktoY0hpVUhDWHo5YVdXMU5KOU9VY1JiV096dERDV25jRkJLeWM4Ly94eVdtSmc0am1HWUNmNmw0NWM3eVBlMmJPdldyZXNuVFpwVUNNRGprK0FyeVA0M3VXcEJTZ254OWIxUjN3b0Z1ZlZmVUZCUU9iK2JIRlM0VTlOQlZJbUppYmY5U1hJY2g5VFVWTVYzVmxHSHFBcTZRdmwyVS9jRk5jWnV0M2ZSYXJYakNTRTkvVXZGTDNlWXZEbCsvUGlVWjU1NVptMVNVdElSQUN3QU9YcEtVSnJKRjZJb2doQWlsMlFSbWYrdHJJYm1XMlR2Y0RoZ3RWcFJWRlNFbEpRVXFOVnF2eWw2bzhYbGNpRTFOVlVwa1pLckNYeGI0aWs5Q1NUQ1BWbFRrMDFQQ2RnWVNpbmo4WGlHc3l3N0VZQS9vOVV2ZDZRd0ROTWpNVEd4Y1VsSnljcVFrSkF2QURDU2VTb25sWmNLTE1nV0QvVUtrYXNYZlByWTRrckY5U2twS1pWMnhicHRUZEhiT2QzRGJyZVhBcld5MVFSbEd4YkwvalRKL0pUclBCbFJGRWx1Ym01OGRIVDBCRUxJcS82bDRaZmIxZDFpTUJoZ05Kb2dDQUpzTnVzL2ZvZm4rWFZIamh4Wk4zbnk1RnhKYzVNckY1VGllcCs4TjBpcElYSVNyNUx6Sm5lbUwxdWxFQjBkalpvMWF5STVPZm0yQUxmZzRCQ3dMSVBvNk9nclpoRGN0aHFiMVdxdEZOUmtobHU1OTZKdmtFQUdOWi9JSjJPMzJ6dHJ0ZHFKaEpBSC9jdkhMN2NycUIwN2Rnd1VSS21HcUdKVzJiRDZEUnZYNmRydGdmYzZ0R3Z6QndBRzNzaXBUSURxcFVYeS9rT2x2cmRlalkxU0wwT1MxQWRYM3VRZXVvSkl3UXNVSEMvQzdSR1FtSnlBb0tCYlg5bGl0OXVRbTJkQWJsNGU3cnYzM2pzSDJJcUxpeFZRazR2WnpXWnpoWnBhSlpGUHhaL21kcnNIcWxTcXlRRHErWmVQWDI1WE1SZ01vQ0RYVkwvS01FejNXclZxSjU1TVRWdlJKT1dlSGFDVW9ZQnYzdzFCb2dzUnZiRUFDc2tDQmJ6cmhDb21xUnhSbGN4VVVhUVFxUlJOcFNJYU5taUk0SkNRV3pwV2dZRkJDQXdNZ3NtWUI0UEJVR0dhMUczRm9QdkREeitnZmZ2MmlJbUpRZGV1WFRGaHdnVHMyYk5IWWVpb0tBTHFWdm9QZUgxcTBzYUlvcWlhUDMvK2xQVDA5TFhmZi8vOWJRTnFQTTlqMUtoUmlJNk9SbWhvS0lZUEg2NTBkL0xMM1NzbVV6NkNncThMTU9xR2hvVXRQbmYrNHZDRzl6UUtBS0NUdW1mSlBSZFlTc0ZTS25mTEVnalBjL0J3bkplcDErV1dlaXg0dTJOWnJWWVVGeFhCWWpIRFpEUWhKeWNIR1Jjdkl1MU1Ha3FLaTIrTE1Rc01Db1pSNnB4V1Z0Z1pNMmJjRmllNWQrOWU5T3paRXlrcEtYamdnUWVRbEpTRW9xSWlIRDU4V0k3c0tJQlcxdnlVdFRRdnRiTEFwS1NrMVByODg4L25kdTNhZGN5QUFRT1lrSkFRZE9uUzViYTR6b2tUSjJMYnRtMzQ5Tk5QOGV5enoyTHAwcVU0ZGVvVUhudnNNZi9xdm9zbE56Y1hOY0lqcnZwN3AwK2xZdDVVN01lSEFBQWdBRWxFUVZTYzJlalZ1dzhBTUNxMXV1T3ovL2RjU0t2V2JTNTh2ZlVyQitCVjNTb3pmeWxBY0xtUnQyU08wc3VicEtrVkZPVGowTUdES0N3c1JFUkVCSUtDZ3FIVDZmRDExMTloL3R6WjJMWnRLd290aFdncG1ZYjUrZmw0YTlvVWJONjhDVC8vOUJPYU5HMkswTkF3QU1CZmZ4M0h0Q21Uc0hYckZody85aWRhdDJsN1RWMndOQm9Ock5aaXhGZmdhN3R0VE5HMWE5ZWlhZE9tZU9hWlo1Q1ZsUVZDQ0ZxMmJJbUNnZ0tjT1hNR0tTa3BsU1hlbGdvU1BQamdnNjBhTldvMHBWdTNibjNsbTNlN2lOMXV4NnBWcTdCcDB5YUZtdWo5OTk5SHo1NDlzV0RCZ2dxYjN2cmw3aENydFFUUjEyQ0dOcnluRWQ2ZStaOVM3Nm5WNmtGZHVuU0ovdVhYLzYzcGZuK1hFNVJTUmtJM3hUU1ZzVTBVQkpHWGZHMkE5OVVMZUJLd2dlSkMrZ1Z3SEFlV1lSRVJFWUdNakF4UUFJR0JnZGk2WlF2V2ZyQWVHbzBHWThlOGlTTkhEcU4xNnpaWXZXb0Z1bmQvQUgwZmVSUi8vSEVFQytiTnhhcjMxb0xuZWN5Yk13dnpGeTVHVWxJeTFuM2c3U3Y2MHN2RHIybmNmSHNGMzNhbWFGRlJFZXgyTzNKeWNuRGh3b1ZTUHJYRXhFUWtKaVlxS1IxMnV4MzUrZm1rc0xBUU5wdU51Rnd1SWdnQ0k0b2lrNVNVMVB2SEgzOWNzbno1OHI2RUVIVHAwZ1ZIang3RlcyKzloWGJ0dkExNTI3VnJoOW16WjZONzkrNElDQWhBdlhyMThQMzMzMlBac21WSVNFaEFhR2dvaGcwYnBoRDNVVW94Yjk0ODFLOWZIeHFOQmhFUkVSZzBhQkRzZGpzOEhnK2FObTJLQngrOEhKUFl0R2tUdEZvdGpoOC9EZ0RvMzc4L1dyWHlGalVjTzNZTVRxZXpGTjlhNTg3ZVR0c0hEeDcwcjI2L2xCT3oyWXl4WTBaaDBQUC9oOEdEQnVMM1E5NTVrcDJkalFIOW44Q1QvUjdGcURkR2x2ck81SW5qTVdUUTgzMW0vMmZHMUpTVWxDNEFkS0RVdDVFTUs0b2lLNjhicFlrTXg2R2twSmdZREhsZVFrcW50M0Z6WkdRa0dqWm9DSTFXZzVLU0V1VG01aUF6SXdPN2YvZ0JLVTJhSUNEQVM3SmFJNndHL3BMbS9WOS9IVWVYTHQ1NUhob2FpclMwMC9CNFBERGs1VUduMXlNcHlkdVlKVHc4SEg4ZFAzYkR4KzJXYTJ4eW9LQmR1M2I0OXR0dk1YZnVYTVRGeFNFa0pBUjZ2UjR5MTd1YzBtRTJtd2tBcUZRcVFpbVZ1NjR6VnF2MVdZMUdNN1Z2Mzc3MUd6WnNpRVdMRm9GaEdMUnYzeDZQUFBJSXBreVpvaHh6L3Z6NTJMRmpCenAxNm9SWFhua0YvZnIxdytPUFA0N1RwMC9qMUtsVDZOYXRHeDU2NkNFODhjUVRXTFZxRlJZdVhJak5temVqY2VQR09INzhPQVlPSElqbXpadGp6Smd4K1BEREQ5R3VYVHQ4OHNrbjZONjlPMGFPSEltWk0yZWlSWXNXQ3JBVkZoWUNBSEp5Y2hSdzlIbTZJaUlpQXRuWjJmNVY3SmR5OHNYbm05R3NXVE1NR3Z3aTB0UFRzWHJWQ3JSdDF4NEpDUW40NzVhdE9IZnVMT2JPTGswMVAyL0JJbWx0RmJVWi90TFE4QTgvK21URjRFSFBmeXNwTWtTeVRqa0tDTjRIT0JHbGZGNFFRcWhLcFNKdXQ5dXJ4QUdnb0NDRWdkdmxnczFtUTc0cEh3QkJabVlHQWdJQ2NQRmlPbFlzV3dwQkZCQXMrUW1MaTR1aDFlbXdZL3MzK09tbjNkQm9OTERaYkNncEtZRldxNFhINDhIS0ZjdVFtNXVMb3FLaUd6NXV0MVJqODAzcEVFVVJBd2NPUk4yNmRXRXltWERxMUNrY1BYb1VxYW1wS0NrcGdkdnRSa2xKQ1pIQVFJbjRNQXpEQkFjSHYvTGxsMTh1MG1nMDllV0dGenFkRGhxTkJvUVFoVmxVbG43OStxRmJ0MjVRcTlWNDRva240SEs1TUhmdVhBUUhCNk50MjdabzBxUUpVbE5UQVFCSlNVbFl2MzQ5K3ZUcGc4VEVSRHoyMkdQbzJyV3I4dmw5OTkySFNaTW1ZZno0OFJneVpBaWFOR21DQ1JNdVYyazk4OHd6R0RIQzI2UFI0WEJVbUF1azFXcWxEbGwrOFV0cGFkMm1MWDcrNlVkODlPRkd1RjB1TEg1blNaVytKNG9pWnM1NEd3LzNmYlRlQXowZW5IWXE3ZHdBQURwcDAxQksxYUJVQllBRktLT2tSd0dFWlZYZ09BL3h1RDArcmY3c2NIczhjRGdjc0JSYWtKOXZRbEZSRVU3OC9SZkdqeHVENTU1L0FkMjZsYVl1bkRkbkZqSXlMbUx4TzB1aDFXcExLVE5qUnIrSnhvMVRNUEtOTjZ0bDNHNFpzUGttMzhvcEhTNlhDM1hxMUVHclZxM1F1SEZqUkVSRVFCQUVHSTFHNG5hN0pYWU83eE5IemxIak9HNThTa3JLZ3RUVTFDcDNxUEF0STVNSFBDRWhvWlJUVWdhYXZuMzdvbmJ0MnBnNWN5YWVlKzQ1dEdqUkF0OTk5NTNVT01NcjA2ZFBSMFJFQlBiczJZT1BQLzVZNlhOUVZ2UjZQVHdlVDduMzNXNTNwZjBSL1hLWEExdnJObGk1YWcxcUppVGc0NDgyNHUyM3BsYnBlK3ZYdlErZFRvZUJ6NzhBQUZIQndjRnZmZjNOOXNFQTlCSzRhUWtoYWtLSWlsTEtBbUI4QW5DRTQzaDRPQTlSSXFaT0p6aVBGK2hLaW90aHNWamdjYnRSWEZLQ3h4OS9BZ1FFSmRZU2hJYUZLZVpuaDQ2ZE1QS05VVkNyMWZCNFBBcHpiMGx4TVVhUEdZZmVmUjZDeStWQ21QU2RPeDdZZk11a3NyT3prWk9UZ3kxYnR1RGl4WXRLbmhySGNkRHI5UWdKQ1NHQWwvN2JGOVJXcjE2dDVqaHVPc013czBWUjFKWHRPSDVGKzF0VjNnS3ZyTmgzeVpJbDZOQ2hBekl6TTlHaFF3ZXNYYnNXdlh2M0xyV1AwV2hFVGs0T0tLWDQ5ZGRmS3oxdVFrSUNYQzVYS2RXYjR6aVl6V2JVckZuVHY0cjlVazdteloyTncwY09vMGVQQnpGNXlqUWNPblFRL3pUWDkrL2ZoNzIvL29vcFU5L3luZGU2SmsyYVRybjMzbnVITjJ2V1BCQlNPZ2lsVkEwcEhRUUFTMFdSOER4SEJJRW5QRmM2SFlUbmViamRic1drVkdzMGNEZ2NLQ2pJeDhXTDZkajl3L2RvMUxneEFLQkZpNWJLZWY1NTlDaVNrcEtoMFdnUUd4ZUgwTEF3YUNVTGF2KytmV2plb3NXZDcyT1RDOXA5YXorTGlvcVFuNThQaDhPQjVPUmszK1JiSW1zNGN2czdBR1RuenAxQlBYdjJuTW93ekxpaW9pS2NPblVLUTRjT3JmQjQxOHRPc0dUSkVreWVQQmt6Wjg1VTNzdkl5Q2dWd1h6cHBaZlFva1VMOU92WEQ2TkhqMGJQbmowckJLcVdMVnRDcjlkajM3NTllT1NSUjZSSnVCOE13eWpCRGIvNHhWY0dEbndCaXhjdndPZWJQNFVvaWhnemRqd1loa0YyZGpiR2pIb0RIT2RCY1hFeEJ2Ui9BdmZlZHg4bVRaNktsY3VYd3VWeTRiVVJMeXUvczNMMVdnUUhCMlBCb25kR3Y3Tm9vYWFnSUg5ZGJtNnUvSVNWbzZXOHROWUViMk1zd2V0aWsvYmhlWUY2T0s4NUNnSUVCd1VqTGk0ZW4yN3lkcEsvOTk3N0VCd2NESjduOGVwckl6Ri8zaHg4K2Q4dm9OZnJNWEh5RkVXcG1ETDFMY3lhTlFPY2gwT3RXclV3WWRLVU94dllLS1hseXFUazZHZHljakxPbnorUDFOUlVCQVFFUUJBRXVOM2Vwd1FoUkNiVEl5a3BLVFZtejU0OU5TSWk0azIxV28wcFU2WWdKQ1FFQXdaVTNMMDZLQ2dJQnc4ZXhLRkRoNjRKUE1MRHczSGd3QUhrNXVaQ0VBUXNYTGdRcDA2ZFFsT3BMOEg2OWV1eFo4OGUvUDMzMzZoWHJ4NDJiZHFFbDE1NkNkOSsreTBBNFBQUFAwZGhZU0ZHakJpQndNQkFEQjA2RksrLy9qcUNnNE9oMFdnd2ZQaHdEQmt5Qk9IaDRmNVY3SmR5VXF0MmJTeGJ2cXBDN2YrL1c3WlcrSjNQLy90VnBiOTN6ejJOOE1INmphKzUzVzdWNWs4M3JadisxbFN6dExaOGxBRUdsSXFDS0RLbHdDMG9LQWdhclVhMm5rQkFVQ01zREVsSlNZaUlpRUJNVEN3eU16TEFzaXdhTjA2cDFCL1l0R2t6ckgxL2ZiV08yMDAxUmE5VTBCNFVGSVRZMkZpSW9paWJvMFFHTlpabENhV1VYTGh3SWVMNzc3OS9LeTR1N3MwSEhuZ0FYYnAwZ1ZhcnhmNzkreXUxMDE5NzdUVWNPSEFBZ3djUHZxWnozckJoQTBwS1NsQzNibDIwYTljT05wc05reVpOd3A5Ly9vbXNyQ3lNR1RNR1U2ZE9SWU1HRGNBd0RENzQ0QVA4K09PUDJMQmhBd0JneTVZdFdMLys4azFjdkhneEhucm9JVHorK09QbzI3Y3Y3ci8vZml4YnRzeS9ndjF5VTBXcjFRNS9idURBbCtjdFdCUUZRQ3RWS2FpOXlvNVNwVUJFMFp0NTRHM0E3QTBvdU4zZUtnV0h3K0UxU3lXZm04bGtRbTV1TGpJeU1uRDJ6SmxiZW4wM2pkMGpMUzBOYVdscFNvczh1WnVVWENibHkzeGJKdm1XVUVySm1UTm5hdFNwVStjdFFzaEkvN1FzTGFJb0lpUHpFaXdXQ3dSQmdNdDVkNVpvNmZSNnNDeUw4Qm9SU0VxcVhXa1FSN1lldkdObUJzOVgzNWpwOUhxb1ZDcEVoRWNnS2FseTdzTzllL2VpYnYyYnoxcnJjYnMvMkxUcGsvZmZuajdOQXNCRkNIRkRhUnhEQkVJZ0VNSW9EV1BVYWhYVUdnM1ZhcVMrcFFFQkNBb01STERVemk4aUloS3hzYkdvWGJzMjZ0YXJqM3IxcXJlYXNiSSt2RGZGRkpWN0ZKVGxVNU03U1IwL2Z0eTNRb0Q0MnYzU0ZsU3ZYcjJwQVA3Vm9HWXdHSzY2VTVEYjdjRmZmLzBGVnFWQ2NFaW92NitvM1liQ29rSVVITTFIaStZdG9OR29Ld1MxUC80NENvWmxFUlJjL1dObXQ5dGd0bGlRWDVDUDFxMnV6RUNmYy9QekdWL3ExcTI3ZUhISWkycy8zTGhCV1lkZTA5UmJZZ1dJZ2loU1VHOHhQQlVFa1FpOFFKVnU4ejRrbFU2SEEzYTdEVlpyQ1lvS2kyQXVLQ2lWY1hBanBlWVZmcmZhZ1Mwcks2dFVqNEt5M2RrZERnZHExNjZ0YUdvZWo2ZFU3ZWZxMWF2Vnc0WU5tOG93ekp2d1N6bkpNK1NCVmFuOG5lQWxrWmtmaklaYzVPYmxJcWtDaHVpTEdabGdXUGFtalpudk9XVm1Ya0xpRmZxTDFreEl1QlhETm56cXRPbDhSa2JHMmwvMy9GS1poaXRjQmp1UlVpb1NTc3YzVWVBbFpsNlBoNFBMNDgyQkk0UWcvaVpIL2FzVjJJeEdvOUlpcjJ6amxRbzZTWkdLdU5Ra1VCdm5YN0lWaTduQWpLQ1FVUDlBbEpHZzRCQVVGSmdyQkRhTHhZTGdXekJtUWNFaEtEQVhYQkhZYnBrWnI5Tzk5djRINnowTjZpV3ZsN1ZhT2FCQXZkRUZLcGJLTXlFVUlBUWdjbGQ2RUVMQWVNa3N3VEFzV0phRmlsVkI1VFZmRVJVVmRlY0RtOXloWFc2Umw1K2ZYeW1kZDFtZm1tL3lMY013VS8zTHRESS9FU0FJd2wxdmZsYW1KUlVYV1NyODdGYU5XV0JnRUlvTExkZjAzWkxpWW1SY3ZBQzczWGJGMzA5S3JvdVEwR3NEYmIxZVB6cnQ3QVhYUFEzcWJwTHdUSmxxUG1NblhtN2Z4MUdPOHhBSitFQVlBc0l3RXJBeFlGa0dLcFhDMWd1TlJvUFEwTkE3RjlpY1RtY3BVQ3ZMcDFZSlNhVGNmSVZJdlFsZVlSaG0ycFVYOXRWVEtkOXVVbFdxNDRxRUVNRHA5SE81VlRvUEsrRzV1NVhCbFd1OVh4ZlR6OFBoc0Y5eEg3dmRob3lMRjlDc3hiM1hBYjZCbzArZU91Tm8wcmpoVmg5UW8yVTBPQkVBRlVXUjhEeFBuVTRIWVZtV01vU0FFQVlNUXlDWE5ubzNGVlJxTlRScURSbzFibnhUS01adk9MQlJTbkhtekJtbFRaNGMvU3lycVpXSmZzcU5KUmlKOWZaWmxtV253VnY2VWVseHJwRksrYmFUcWxBZFg2djh1UHNIYk55d0hpYVRFZkh4OGZoNDAyYzRkKzRzaGc0WnBPd3phY28wUFBUUXczNGt2STNsbjBETmR5NWRyMVVhR2hyNnhyRy9UdHBiTm0veXZhKzJWZ2JjQUVDa2xIcDlhcHlIZUhzclhBWTJobVhCTWhLd3lWcWJWb1BHalZPcXZhM2ZEUWMyWDFBcjI4ellicmRYU09mdDYxZHpPcDI5VkNyVlZBQlhOTWl2aDByNWRqU2Ivb25xK0Zva056Y1hDK2JQeGN4WmM5QzZkUnVVbEpRQUFPclZxNDhmZi80VkFQRFMwTUhWZGwwYjFxL0RZNC8zSzhWbUlwL1hzaVh2NE1TSnY2SFJhTkRqd1Y0WThlcHJZRmtXZ0plU1o4V3lKVGh4OGdTMFdpMTY5dXlGbDRlUFVENnZEdm1uWTNicDFCNXF0UnFFTUVoS1NzS1FvY1BRc1dPbmZ5dU9Sa1ZFUkx5NmN1WEtrdGRmZi8xQUdjMk5Fa0tvOUQrUm0yRHhIT2ZsSW1jSUpRd0JReVEvbTZTNUtjQ20xa0NyMGFKZS9mclZlZ0UzTkVFM0l5TUQ2ZW5wbGVhcHlkUkRVb3M4K0xMZlVrb1pxOVhhU3FQUlRBWHdqMWQ5QTZpVWJ6K0F1d0xWOFRVOVpOSk9Jekl5RWgwN2RvSkdvMUhLd0FnaFNtZWk2bnh5ZnJoeFBTd1djN24zWjd3OURUVVRFdkQxTnp2eC9nY2JjT2pnQVd6ZnZnMkFOeWR2MG9SeGFORHdIbXo3WmlkV3JGaU52Yi91d2RkYnY2cTI4NnpxTVZldVhvTWR1NzdEa0tIRHNIamhmR3o5YXNzdG1TZUVFTng3NzczbzJiTW5ldlRvZ2ZqNHEzdTRDNEtBMzM3Ymo4a1R4eU03SzZ1eVk5U0xpb29hdm1EQmdzYVM1U1RUakt1VnVsSks1VzcwaE9kNThKdzM5Y05US3ZYRGpzS2lRdnowNDI2c1hmTWU1cytmZy8zNzl5RkxPbTdXcFVzWStmcXJlUGFacHpCbTFCc29LaXBVenVHakR6Zml1V2VmeGpOUDk4ZXVuVHR1amNabU5Cb1ZVRE1halFxb3libHF2bDNhZlRxMEs2Qm1NQmhxNmZYNktRRGFWdlhtL051YzVvR0JRYkJacjU5UC92anhZNWd4ZlJvOEVzM000NDk2emN4K1QvVEhvTUZEcXZRYmh3NGV3TW9WeTJFdzVDRXhNUWxqeG81SFNwTW15dWQ3ZjkyRERSdldJZDlrUWt4c0xJWVBINEYyN1RzQUFFYSsvaXF5TG1VQ0FFYS8rUVpVS2hZSkNiV3djdlVhaUtLSXJsMjc0ZUcrZmFIVmFoRWRFNE5XclZzcm1lb1dpd1Uxd3NQeDNNQ0IwR2cwU0toVkN4MDdkVVphMnVscUcvZXJPYVplcjBmSGpwMmduaklOYjArZmhsNjkrOXgwWnBiazVHU3dMSXZkdTNkRHE5V2llL2Z1eU0vUGg4UitVd3F3NVNSbDM3L2ZmT04xMUt4WkU2ZFBuNElnQ2xjQzBOYUppWW5EeG80ZHUraWRkOTdKa2JVMkg1K2JIR0FRQlVFRUlieTM3cEV3bERBTUNFUEFzQXh5YzNOQkNNRURQWG9BbEdMRCtuV29WNzgrOURvZGxpNTVCNDg5M2c4OWVqeUlMejcvRE8rdFhvWEpVNmJoeEltL3ZYTnM0MGR3dTkwWVBud1lXdDU3WDVWQi9JWm9iRmFyVldIcThLMy9sRHUzWHltdGcxSktYbnp4UlRZaUltSXlJYVJ2MVk5WmNrTW5pOWxzeHVSSkUvRGNzMDlqM3R6WnR3emNLcU02dmhwcDBhSWx0bTNmaFRkSGpVSE5tZ25ZdG4wWHRtM2ZWV1ZRdTNEK1BONmFOZ1VqWG5zZHU3N2JqYWNHUEkweG85K0FTZEltTXpNek1IdldURXljT0FVN3YvMEJqenp5R0taT25hdzBwVm14Y2pXMmJkOEZBRml5YkRtMmJkK0ZsYXZYZUNjY3crQzVnYzhqTEt5RzF5bCtNUjBIZnZzTmJkdDY2M2dqSXlPeFl1VnE2SFI2WlVFZVAzWU16Wm8xcjdZeHY1Wmp0bTdURmg2T3V5V2xRNUdSa2NqTnpWVjhYYUlvb2thTkdxWDJPWExrTUtaT25naU80MkN4V1BEUzBDR3dXTHdSMlhlWExNUGtLZE9xcEJnd0ROUDd2dnZ1R3h3VEU2T1h0RGFmMGl1d0FCaHZSemlSdUZ3dTRuSzV3SEVlWWpHYmtaZWJDNWZUaGVMaUlnUUdCcUtrcEFRcXRScUNJQ0QxNUFsa1pHWWdMZTIwY3U4ZmVyZ3ZEdjkrQ0FCdy90eFp0R2paRWxxZERpR2hvV2pmdmdQK09ITDQ1cG1pbE5KeVZRVyttcHB2Qk5TM1E3dHZCSFRObWpXVENDSERic1JOLzJyTGwzanUyYWZ4N0ROUFlmNjhPWEM3WEZYNjN2dHIzOE05OXpUQ3A1OTlnYkhqTGhORm1veEc3Tnl4L2E1eVZPL2N1UjFkNysrR2poMDdRYXZWb25lZmgzQlBvMGJZdmZzSEFFQkVSQ1EyYlB3WWpWTlN3REFNSG5uME1YQWVEN0t5TGxYNUdLa25UNkpuajI0WTlQeHp1S2RSSTNUcGVuK0YrNjE1YnhYMEFRRjQ2T0crTiszNnEzSk1RZ2pDYTRURGR2M08rcXNXalVZRFFSQVFFUkdCVHAwNlFSVEZVa1NPQU5DcVZXdUVSMFJnNW96cEdEdm1UZlI3NGttRmFPRnFHNmVvVktybkZ5MWFOQkJlTGpkZmsxUWxZUWdqVWtvWWhvSEg0eUUybXcwdWw0c0VCZ2JDN1haRHBWTEJZTWlEMVdwRmRuWTJDZ3N0eU0zTlJXNU9EaUlqb3lBbkJSODZlQUJXcTNjODY5U3RoNk4vSEZFb2tsSlRUOEptczkwOFlEdDc5aXd1WGJxa3BIVlVwZmRubVFqb3dCdVZxM2JpeE4vWXN1Vy9XUHZCZW55NitRc3dESVAxNjlkVjZidm56NTFEaDQ0ZHk5MzQvUHg4N05qeHpWMEZiQWFEQVhGeHBWWCsycldUWUREa0FmQ3lQQnc5K2dlR3Z6d1V6ejM3TkFhL01GRFJkS29xS1UyYVlQZFBlL0RGbDF1Umw1ZUhEUlhjcDQ4LytoQy8vMzRJYytmT3I1QkRyenFrcXNla2xNSlNhRUhRTFhLSEpDY25vMUdqUnZqdHQ5K1VvRkJaNEIwK2ZBVCtQUG9IdEJydGRUMFk5SG85Qmc0YytLYkJZT2haZ2IvTnE3bDUvVzBNSVFTQ0lFQ3Qxa0FRQk9MeHVCRVVGQXhlRUhENDkwTTRmU29WRE1QQTRYREFaREtoVjYvZStPYWJyekZrOFBOSVRUMkp3RUJ2LzRUbXpWdWdaNjgrR1BuNkNFeWZOZ1VCK2dEb0EvUTN4OGVXbloxZExsZk50MVRLQjlSUVVRVFVicmQzbHBvWjM1QlphN05hRVJRVWpJQ0FBREFNZ3hlSHZvU0xGOU9seFpxSFJRc1hJTjlrUkdoWURZd2JQd0dKaVVuNCtlZWY4Tjh2UGtObVppYm16cGtGalVhRDU1NTdIbDI2M28rbFM5N0JzVCtQd21Bd1lQakxYcjYzdGUrdng0YjE2L0RubjBkaE5CaVEwcVFKTHFaZlFHUlVOTjU1ZHlrb3BWaTlhaVgrK09Nd09BK0g5aDA2NHJYWFI0SlNpbkZqUnVIK2J0M3h5S09QNGNTSnZ6Rm45bit3YnYySHQwVjNiVitKaVltQklTK3YxSHM1T2RsbzJkS2Jpckx2ZjN2eDZhWlBzR1RwY2lUVXFnWEFHeldzYUhHVkJUdTN5NFh2dnZzV2ZmbzhCSzFPaDdpNE9QVG84U0QyNzk5WGFyOHRYLzRYUCs3K0FjdFdyTHJtaE5PcmxhczU1cEVqaDZGUnE5R2dZY09iZm4ra3NrUDgrZWVmQUFDV1pjdFJ5OXRzTm93ZlB3WURueCtFczJmU3NHRCtYRXlhUFBXYWdrVk9weE5idG14UkFYamxyNy8rTWpSdjN2eFB5ZGNtU3Y0MkpXSktLU1VNdzhMamNWT24wOXVVbmpBTW9xS2lFQkFRQUoxT2g3Ly8rZ3VpSU1KaU1VTWJGNC9uWHhpTUJnMGE0bUo2T2k1bFppckhmVzdnODNodTRQTUFnSmVHdllpNmRhdGVVSC9OR2x0UlVWR0Z1V3FWZ0JvcDA2V2R5YzNOamRkcXRSTnhBenUwdDI3VEZqVnIxc1RMdzE3RTExdTNRS2ZUb1hYck5nQ0FPYk5ub1dmUFh2aDQwMmQ0L29WQm1DNVJMRC93UUErc2ZYODlhdGFNeDdTM1ptRHQrK3NWczJqVTZMR1lNSEVLa3BLVHNmYjk5YVU0cE5xMmJZY1pNMmNoTXpNREgzMnlHWmN5TTJHeFdHQTBHaEFZR0lBTkd6L0d4NXMySS9Ya0NSdy9mZ3lFRUV5Wk5oMmZidm9ZYVdtbk1YZk9MRXg3NisxYkJtclMvZkJxSDZLb2FOSUE4SERmUjdCMzd4NGNQdnc3ZUo3SEw3LzhqTlNUSjlDelZ5L0ZIMGtJd0xBc2lvdUxzUG5UVGRMdmxHYUtpWXVQeDZHREI4RnhIUEpOSnE4MnJOWGlrNDgvd3VlZmJ3YkhjU2dxS3NTK2ZmOURzMmJOTHB2Q083WmoyOWRic1hUNXlwdkdVMWZWWTdyZGJ2eCs2Q0RtejV1RDRhKzhla3NvM2ZQejh4V0EwbWcwQ0FzTEs5Y1E1Y0tGOCtqYXRSdis3N21CbURaOUJqUWFyZUpqdXc2cFc3OSsvUmRIalJvVlc1Ry9qVkxLTUF6RHlGUmpIbzhISE04UnpzUEI0M2JEWVhmZ3pKa3ppSXFLZ3QxaFIxRlJFUW9LQ21BMEdQREhIMGV3Zk5rU1BQbFVhVjVGanVPdzZaT1BRWWlYeDYxYU5UWkJFSkNlbnE0RUMzd2pvQldrZFpBeWFSMkVVc3BFUjBkUElJUThlQ052dUVxbHdveVpzM0Q2VkNxKy9mWmJESDVoSUdiTm5vczZkZXZpN0prMDlGemhKZXhyMDZZdDNuVzVZRElhRVIxemJXbTlXcTBXT3IxZU1Wc0RBdlRnT1E2eHNYR0lqSXpDeEFsandUSXNERWF2MzlIcm00ckE2REhqOFBxcnIrRDVGd2FqU1pPbXR3VFV5aWJvTHBnL0Z3dm16OFdEUFh2aHJla3pVTDkrQTd3OWN4YmVXNzBTaHJ3ODFFNU14TUxGN3lJbXhwdGYxK2VoaDNIeTVBa01IZklDV0ZhRnh4N3ZoL3IxRzhCU3BseG96Smh4V0x4b0lUWnVXSWZhdFd0ajNZYVBvTkZvc0dEaFlxeGNzUXhmZlA0WjFHbzF1dDdmRFlNR3Y2ak1yVVVMdldiZ3MwLzNMMjBtYnRxTTJOaTRHejRlVlQzbXlOZGVCU0ZBWW1JU3hvNmJjRVB6MklLRGc2dThiMFpHQnNMQ3d0Q2pSdzhBd1BIang4djEwbWpldkFXYU4yK2hySXV4NDhiZklQL3J6bTZ0VzdmT0FMRENSMnNUQVZCQ2lEZEdTa1VxMTR2eVBFOFp3cEFTYXdubE9RNmhvV0dJam9tRjNXNkhXcVdHV3EzR3JsMDd3RElzbm5yNmFiU1hJdXVBbCtKOCtkSjMwYng1Uzh4ZnNMaENiYk95Y2JzbVlQT05nRmJHcVZZRzFHUUdBTGxjYWpnaDVOVWJQVUZQbno0Rm5VNkhSbzFUMEtoeENyNzl0akUrK0dBdDVzMWJvSmhHaXBuRU1LQzQ4VngwZi8xMUhMdDI3c0RTWlN1ZzFla3dZM3JwcWpDSHd3RzFXZzJYeTFudEFOYXJkeCs1UTNncHFWKy9BZjYzLzhwOVREdDI3RlRwd3RWcXRaajIxdHVsM3F1bzRXMmJ0dTBxWkhtdFY3OCtsaTVmV2VGdnN5eUx2ZnNPM0ZTZ3I4b3gvMm04YnNRNTJPMjJLa1VxNWFxYjY1VlBQL3ZpbXI2blZxdUhiTml3SWVQRkYxL2NCaS9GcmtnQktyV1NwL0NtZ1lpaUtGS0JGOEFURG9FQkFVU3IxVkdkWGdlMzJ3V253MXVOb0ZLcjBLMWJkOFRHeHFGV3Jkckl5TGlJT25YcUFnQTZkZXFNVHAwNlYzb2VkcHUxVWovb1ZadWllWGw1Q2dXUmIxcEhCUkZRK0lDYW9xM1o3Zll1TE10T3JJN0prWFhwRWhiT253ZTczVnQrWWk0b1FHaG9LTFE2SGVvM2FJZ2ZwYWplSDM4Y2dWcWxRblQwUDJ0cm9hR2hLTWd2cUxDN1ZFVmlOcHVoMSt1aDFtaVFuNS92ellXU2lva05oank4dDNvbDN2OWdBdzcvL2p1T1hFWDR1bkxIYmdEOGNuVmpjeXZIckxKalIwZEh3M0dGV3VlQWdLcVp2RlhkNzNwL0t5Z282SlYzMzMyM2hSSk1rSnJDeUNhcG5BSWlpZ0xoZVFFY3o0UGpQUEI0WkFaZUZ4d09CK3cyRzBxS1M3d012UGxHS2JtL2FrbnFkcHNWMGRIUjF3OXNEb2VqRkZ2SFB3UUx5aVhocHFXbGhXbTEydkVBcXFVT3FtZXYzdWpjcFN0ZUh2WWlubjNtS2FTZVBJSFhSM3BwM0taT200NXZkKzNFNEVFRHNYSDlPc3o0ejV3cU9WSVRhdFZDMjNidDhQU0FKL0hDd0dkaE5CcXV1SCtuVHAyaDArdngxSlA5TUgzYUZOU3RWeDkydXgwOHoyUG0yOVB4MHN1dm9GYnQycGo2MXR0WXZIRCtkZnM5NUNlOVg4cFArc3BLc0poYk5HWjJteFZzSlJwR1hGd2NLQldSYjh5cjhOeVM2OVQ3UjlBS0NBaEVjcDBieDFqN0Q4ZU1pNCtQSC9UQ0M0TnF5T0JHeTRNYlF5a2xvaWdRZ2VmQmNiemtiL1BBN1hMQjVYVEM3bkRBYXJPaXVMZ0lGck1GSnFNUjJWblpTbCtGeXNiUlpNZ0ZDQ290UDd3cWF2RFUxRlNrcGFVaE16TlRxUVgxTlVWOUtneUlyTFZKdmpWR29pR2F4VERNaEJzeDZMZUtTcm02cFRLcTQ4cjlMWmt3V3l4K29za3lZalRrSWpJeUFvbTF5M09mWldSbXdteSsrV05tTk9RaUlpSUNTVmZnWXpPWlREQVlET0I1SGxicjdjOVc0M0s1VnZYdTNYczlBSWUwdVFCNENDRWNBSjRRSWhKQ1JJbGFYS1l2b2xxdGwxbzhJQ0FBZ1lHQkNBNE9SbzBhTlJBUkVZRzR1RGpVcmwwYnljbko1VFhGNEdDb1ZTckV4c1pXcXExZGxZOHRLeXNMMmRuWk1KbE1NSnZORlFZTFBCNVB1ZFFPT1ZqZ2NybWV1RkdnZHJYTzFqdEpydmE2RWhOckl6L2ZCS01oVjJFNXVkczFOWnZOQ29Ibkt3UTFBRWhLVElUSmRQUEdURDRuVVJDdUNHcXlTWHFsQlhzYnltdFpXVmxuYTlXcXRWZjJ0eEZDbElBQ0FIaFpQd2hrY0ZPcFZOQm9OTkJxdGREcjlRcXdoWWFHSWp3OEhGRlJVWWlMaTBPZE9uVlFTMG9udWxxcEVyQlpyVmFsc3FBc3FQbldnUHFtZHZpYW9FYWpzWlphclI1N3E1eXRkOUtpdk5wRVZFSUlXclZxaFlzWm1iQll6Q2l5V09CeTNaMGNiWHA5QUJpV1JXUkVKQklUcjd3ZzJyUnVqY3pNUzhndktLaldNZFByQThDcVZQK29xZDNKVXJObXpjRmZmdm5sMmFlZWVpb2JsNk9rTXJCUk9aTGdKYWZrS2NNd2hHVlp5cklzWEM1WEtTSktHZXdDQWdJUUhKdGcwTndBQUNBQVNVUkJWQnlNc0xDd2ExSmlxclNLWk5QVE53bTNnc29DWDFDVHF3c0lwWlNKaUlnWUE2RFZqUnpNNk9ob0dBekdmeDJ3eGNkZmZUb0RJUVIxa3BOUUp6bkpiNE5lcGJhYitDOEZtNXNwaEpDV2ZmdjJIUUJnRlFCQjZvL2dqWlpLcEpUd0VsTlNDZHpBY1p3Q2JpcVZxa0p3Q3d3TVJFaElDSnI0a0M5VVZmNHhlSkNWbFlXY25CekZuMVlacUYzQkJPMWZIYWtkaXJQVlpJRGpEbmVlTyt3MnJ6TVU5SVp4c2ZuRkx6ZFRkRHJka096czdNNlF5cTBvcFJwSXlidStnUVJCRUlnRWJBcHV5QjJ1SEJMTlVVbUpOMHFhbjUrUG5Kd2NoZUxvaG1sc2RydTl3bncxWDhKSUdkaDRuaTluZ21ablo4ZXExZXJSMVRXWTk5NTdMNHhHSTR3bUU2d2x4WGNrTmJqc0RFMUlxSG1uK1ZiODRwZFNFaDhmUDJqanhvMnBRNFlNRVNSL20rQnJscFkxU2FYcUJPcExSR20zMnhXdFRRNHNoSVNFSUR3OC9LcXFQSzRJYkdYejFjcEVQbjN6MVNveVFVbE1UTXdvQVBkVjUyREd4TVJjZFM5T3YvakZMOVZpa3JZWU1HQkEveUZEaG53QWdQY3hTUVhKSkJYaFpkMVZURktHWVloS3BhSXlDNGh2WUtHb3FLaVVyNjFSbzBaVkI3Wk1uNkpUWDhuUHo4ZVpNMmRLTVhlVTlhK1ZEUno0Y3F5bHBhWDF6TXJLR3UyLzNYN3h5MTBsTCsvWnMrZG90MjdkRHN2Z0JpbFNLaGZMUzAxZzVLcDVoVlB1Y3Zlcnk2WnFXVE8xcWkzOFZJbGhQNVI3aytNRjVGL01BbkVhUU54bUVFOHhDR2NESTloQkJCY2d1QURCNDkxRWpsQlJBQ2dsOGpiNC85cXc5YVAzalBMZlk3LzQ1ZTZUaEdiaS85VkxydkgzK1l1RlBBQ0JBQUpBWmJPVWdSZk5BQ3FDaWp5RjZDWVFYQlNDQXhDc0lJSU9qR0FCNGZKQlBMa2c3a3dRNXpuQWxvcjQ1RnBRcS82NTkwV0Z3WU9zYkFzTXBtS1lMVFlVRlR0aHM3bmdjTHJoZEhKd3V6bDRQRHc4SEErT0Y4RHpJZ1NCUWhRcFJFb0pCWmozbHcwZUNlQUIveTMyaTErdVRTaTljOCtkWlptdWgvZE1md1J5SU1FYlJKQURDU3lWaUNsRmtVSVFLSGhlQk1jTDhIQThQQjRlYmpjSHA1T0R3K21HemVaQ1ViRVRab3NOQmxNeExtVlZyVktubkkrdHVNU0ozTHdpRkJSWVVWamtnTlhxaE4zaEJUV1htNFBidzhQakVjQnhBbmhlSkx4QUlRaVVpSlFTVUJETHhYY2JzQ3p6aG45cStzVXZWeWNpQlF5V1NKZ0t3eUNJTEd4M2RqcmlvQVVMRmh5Wk9ISGlSYTlKNmcwbWVFMVNpSklGU2tSS3dBdUVjZ0pEUER4TDNad0tUbzhhTnBjYUpVNHRDbTA2RkZqMU1CWUZJdHNjQkVOeENQSks0bEFuZ1VOY2VBRXFxNG9zQjJ3NXVZVXc1WmZBVW1oSGlkVUptOTBOaDlNRGw4c2pnUm9QanVQQisycHJGS0FVaEFKTVNJaitOUUFKL21ucUY3OWNIYWdkTzFjZllNTVFGSEpuOThtVnBHWkM3ZVRISjA2Y3VCb0FEMitFVkg0VlFRZ0Z2RzM4Q0NFZ1VyTmxJdEVkc1NvMVZDbzFWR29OMUJvdE5Gb2R0TG9BaUNRUXhUWTE4b29Ta0djT3c3MzF6MWNJYnFWTVVXTitDUXpHWWhSWWJDZ3Fkc0JxYzhIaDhNRHA0dUJ5eTZBbXlDWW80YjBtS0tFaUpaU0NPUEpXZENlRXZQSnZtbkRqcG0zQi9YM2Z1V0cveC9NQ1JrMytBdEgxeGlHMDlwc1lQbW9USEE2UGYyWGY1V0lvakFUWU1NVEV4djlya3M2MVd1MmdQYi91YTQ3TFZPSWFTdUZESmU3Tm5oQkZrUWlDQUY3Z0NjOTVBd2VjNS8vWk8rL3dLS28yaXY5bXRtVlRJRTE2Q1VoSGFWSkUwQUFmVWtSQkJDc2xJQWdxTFlMU2xkNkQ5TjVFcFNnSWlpQktFWkFlbENJSVVnVUVFdEo3c21WbXZqOW1kNUpOSXlCTjJmTTgrMEIyWm5idTNwMTU1MjMzSENzV3F3V0xROFpQMVQ1SUpENHVqdVNVRkhRNkErZ0tjelBlTDlkenV4aTJHeEVKUk1jbWs1Q2dHclhVTkF2cEdkYk12SnJEc05udHNtQzNPMEpRR1VFQkFSQ05Sc1A3N2tzMGZ3d2JzNUZOUC96T3VzOTZzV2wxSDNidStaTitnOWU2SitZUlIxUjhvZitjVGk1QXVmTGxPMlF4YkFaUURHU3FXNG5PMWpCSmxnWEpMbUczMndXYjNaWlpGYlZtVmtWVFVsSklURXdrTGphV3lKdVJlUHY0M3Rxdy9YMDlUZzFCNDFKSlRFb2pKZFZDZXBxVmpBd2JGb3VqV0pEcHJTRkpNcktzT0FzY1lrYlV2RGNFZ1JmZGwyamVTRTIxTUcvcGJzTEdkeUM0Y1NXQ0cxZGk4YXpPckZ4emtKaFlOL1hRb3dwRkFVblMzNUduZHViMEh3d012ZmNwN1ROblRoTTJiWXJHYWVqRXhvM2ZFTkxsTFVLNmRuSVI1SW1Pam1iZ0J3TjR1M3ZYbGkxYXRtcE1GaXB4UlZIVUlvS2lpQTdtSHhSSHE0Y2syYlYyRHlmRlVZYWo1U00xTlpYazVDU05Vand4TVFtN3JNKzEwQ0lDV0cxMk5RU05UU0VoS1kza0ZBdHBhUmJTblViTldUQ3dTOWp0a21DWFpDUVp4N0lweEk4L2FxMHo2SFh2UGVnTDVPbm1rd2tkOWhYQmJjSUlxakdjSnhxTzRmdXRKN1R0ZFp0TVpQallqVlN0UDRyaWxUL2k3UGxJTEJZYll5WnZwbnpORVhnVTdVTzlwaFBac2R0VktOZG1rK2dkK2lYZUpmdFR2UEpIZkRwdmUrWVBHSlBNSzUwWDRsZjJBN3hMOXVlRlYrZHc0VktVdHIxajEwWFViVElSZ0dPLy8wMTZ1bzNnUnBXMDdjODJWRVh2RDRaZmROL2hqeWdFQVZMU2hEczZ0bktWcW93YU0vYWVqbS8rdkxrc1c3cUVTeGN2YWlTdUFGZXZYbUhEK3ZVc1dMU1VaY3RYY3VMRU1ZMDhkZjY4T1RScjlqOVdmcjZLZDk5Ny8xVVBEN09ITXh6RlVTRVZCRUVIT0kyYnl0c21TVWlPVlV3Mm13MnJMWXV5ZkhvNnFTbXBKQ2FxSVdsMFZCUUppVkt1T1RZOXdJMGJDVVRISkJPZmtFcFNrbG9GVFhPMGRsaXNkcXlhcHliaHFJSTZ2RFUxRFAxNDhFdTlLS0NDKzczR2dtVy9zSFY5UDVvOVY0WE5QLzdPSzEwV2Nuam5VR3JYVUJjN3o1aS9rNVVMdW1FeTZxbFVvU2c5KzMzQmp6di9ZT0duYjFHcFFsR1dmcjZQRjE2ZHcvRzlJNmxXUmVYck9uRDRJdVhLQm5CMHp3aU9ucmhLajM2ZlU4akhUTSt1alFrZDlqVVdxNDN3bjRjQzBHL3dWNFM4OXhuN2YxSVptanEycTBOOGdscmV1aDZSZ05Hb0o4QS84OGxzTU9nSThQZmkybzBFOXgzdVJnN0V4c1l5Y2NJNFlxS2pFRVNSOTk3clE0T25HM0x0MmpVR2h2YkhaclBpNit2SGlwVmZaS1k3aG56RWpSdlhBVlYweWRQTGl6VnIxd0VxcmYrY1dUTklURXJFMzgrZndVT0hhVm9XQU91Ky9vb05HOVpyK3dQMGZLY1hScU9Sc0dsVFhNYjIrNGtUUEZXM0xwNmVudGp0ZHZ4OC9UaHgvRGoxNnRYbnhJbmpmUENCU3VqajYrdGJyMFNKNGkwdVhicTBHYkE1WGxvaFFWRVUyUkdTT2xZa1NPaDBkdXgyR3phYkhxdk4wYWlibms2YVNRMUpFeElTaUltTndXVEl2YWRObjU1dTFYcldFcE95VkVFMW8rYklxemx5YTQ0UTFPbXRDU2YyZlZ4SXB4TjdQU3dYd2xzZDY5SHNPWldBOHNWV05XamVwQ29MbC8vQ29wbXE5bVdiRmsveVdudVZhQ1F1UHBYUFZoOWcxWklldk5SYVZmMmVOcTRqaDM3OWl5bXpmbUxsQWxVNXZWalJRaXliMHhXVHlVQ2xDa1g1N2ZnVjVpemVSYyt1amJsOE5aYlNKZjBvV2R3UFQwOGp5K2QyNWRxTmVHMDhiM1NvcC8wL0xkMktoNGMrbHlTckhvdlY3cjZMM2NpQnI5YXVwa2FOR29SMGU1dExseTR4Zjk0Y0dqemRrRktsU3ZIMStnMmNQMytPaWVQSHVSd3phY28wQUJJVEUrajlUZzgrR1BnaG9NcjJUUncvbHZFVEoxTzhlSEYrK25FckMrYlBZL1NZek9OcjFxcVZnM2s0TDRIbHhNUkVQRHc4aUk2T1p0S0VjVWl5aEk4alQ1aVltSWpKdzRQdk4zM0hqaDNiOFBUMGZMVkh6M2YyTEZ1NnhPbzBiSTVWQ1pJajM2YklpaUlJYWtpcTJDVzdZTFByRkwwekpEV29JV2w2ZWpxcHFTbHFTQm9majBFdmtwNHVZemE3amxHOEVhbUdvUEdKbVQxckdlbVpCUU9iemRtemx0VmJBOW5oclZXdFhMd25VTzFodVJEcTFIU2xvYWxlcFRpbnp0elEvcTc0ZU9aQzh6Tm5JNUJsaFliMXlyc2MwL2pwQ3Z4eEpsTlhzMjd0SUV3bWcvWjMvYWZLOGVlNVNHUlpac2lBbG56LzQrOEVQajZRTnEvTjRic2ZUbEM5U3U3TXJHWVBBMWFybE9OOWk4V09sNmZSZlJlN2tRUDE2amRnNTQ3dHJQeHNCWmFNRE1LbXp5alFjYklzTTJiMEtOcTgySmI2OWRWZzZxKy9Mbkh0MnQ4TUh6cVk3aUZkV0wzNlM2SnV1dW9MVktwVW1WYzZkQ3p3K0U2Zi9vT1JJNGJ5VHU5M2FkclV0U2QvMG9SeFhMNzhGMkhUWjJJeW1hcDA2OTdqZVZ3S0NZNEtxWm9TRTFDOU5tUlpRckpMU0hhN1F5dEJyWkphTFJZeUxCbWtwNlZyaFlURXhFUnVSQ2JtOU5qVW5yVVVraHplV3JyVFc3TTRRbEJuejVva0M1SmQ5ZGFjemJobndzZjQ2WFJpejRmcFFwQ3phVnRtV096b2RKbkYzNndHSkx1Vnovb1pXWVYramRuY1hiMWVSSzhYRVVXUnRpL1U1UHFaS1h5LzlYZCszUGtIdzhkK3kveGx1em04WXhpZTJZeFZxUkorWkdUWVNFaE13N2V3cDVhL2k0MUxwV1J4WC9kZDdFWk93MWF2UG5QbkxTVDhTRGlmcjF5QjBXaGt6TGdKdHp4dTJkTEZlSGg0MExsTDF5eTVZaHZGaWhWekNWdi9DUW9YTGt4R1JnWmgwMmRTcUZBaFRwdzRUbUZmWDIzYk00MGEwNkpsSzgxYkxGNjgrS3U5ZXIyN2MvSGloZFlzNGFpZExMeHRMbDZiWFJKMGRydmlVaVcxV0VqUFNDYzFOWTNrNUdUME9vR29hSmxpUlF2aDVXbks5TmhpWXBOSlNFeFhlOWJTclZyQndLWlZRZVZNYjAxV3ZUVm5idTN4Y28rOURUeitNRjBJNFVjdnUveDk2TWdsYXRmSW5VMjFZdmtpNlBVaUI0OWNjbm4vUVBoRnFsVEt6RHVjdmVENlZEdCs4bStxVlZZSklZZU0yc0Q1aTFGMGVlTnBWaTNwd2Y2ZlB1TFU2UnNjUDVtVFE2cDJqZEtZelFiMkhqaXZ2YmZ2MEFWRVVlRHBiRjZqRzI0QVRKbzRudkFqNFRSdi9qekRoby9rMEtHRExnL2QzTEJ2MzE3MjdON044QkVmdXdnV1ZhaFFnYVNrSkg3WnMxdkx0MzIvNlR1WFk4K2ZQOGZHamQ4VWFHeFAxcWlCMVdyRlpESWhTUklIRCt5blppMVZ5N1JXcmRyYU9JLys5aHRCUWVVd21VemwrL1R0MTV4c1JZVHNYcHZzOU5yVVFrSm1sZFNtQ2k5Yk1qSklUMWR6YlNrcEtjVEVKaE41MDlWcjA4Y25xQ3NNVWgzZW1zVmlVOWRzT1VOUW04TmJrMXk5dGQvMkRQZlI2Y1MzSDdxY3hJWmZlYWIrNHp6ZnRDb3JWaDNnNU9ucnJGclNJOWQ5Zlh3ODZOZXJHWU5HcnNmYnkwU2xDa1ZaL3VWK0RvWmZZdXJXRDdYOS9qaHpnNFhMOS9EdTI4RWMvdlV2NWl6YXhkSTVYUnhHTDVJK0g2NWhYdGliQlBoN3NXTFZBYnk5VFpwaFhQdk5FZUlUMG5pdlJ6QmVYaVo2ZEdsTTM4RnI4Zkh4d0dqUTB6djBTN3AzZWdaL1B5LzNYZXhHRG5UdTNKV3dzQ21zWGIwS1daWVpPT2dqUkZGMEtSNGtKaWJ5V3NkWHFQUFVVd3dkTm9LNXMyZVNrWkZCbi9jeVU5OXo1eS9DeDhlSFNWT21NZlBUNlN4YXVBQlBUMDhHWmhOU1BuYjBLQnMycktkOSt3NjNIRnZac2tHMGI5K0JkM3YxUkVIaDJXZURxVmV2UGdEdjkrbkg1RWtUV1BmMVY1ak5ab1lNR3c2QW43OS9oL2F2ZE5pK2NjTTNOc0RxTUc1MlZHVXJsVzFYYmRwMTVOcFVyeTFybGRSaXRXcTliVG9SNGhNa29xS1RLVjdVVjR1U2hGbVRYK1ZHUkR4Uk1jbkV4NmVTbUt3dWVrOU5zMnBMcVRJc2ttQzFTdGp0aWlESmlxZ29pTmJvK2YxME9qSHNZYm9Jbm00K21TZXFsdURDWDlFY09uS0pHdFZMTVgxOFI1NTlSbTJwcU50a0lpKzNxY25Jajlwb3gxaXRka2FPLzQ0dnZqcEVRbUk2dFo0c3pmaVJiZmxmc01yOTlPSEk5Wnc1RjRHZnJ5Yy8vM0lXblU1a2FHZ3IrcnpUQkZEYlBRWU0vWXJ0dTg2UW5KSkJuWnBsbURhMkE0MmVWbVhRT25aZHhPV3JzZnk2ZTdnam4yWWpkTmpYclBubUNLSWcwTEZkSFdaUGVRTVBENFA3TG42RXNlZDQ1ZitrNmxwdWlJK1BuMWpqaWFyZkF5bEFLcEFtQ0lJRlZkM0s3bEMxa25VNm5XSXdHakVaVFlxSGh3a1BzeGxQc3lkZTNsNzQrQlRDdDdBdm9nZ05hMG1VRDNxTWFsVktVRDVJcFRVU3hvOTh5WFVabGNON1MwMnprcDVoSlNQREpsaXNFamFiSWtpU0xNZ3lZdWZYNitrL1c5RGpNUERrdzJiWVdqV3Z6dWloTHoyeU40aWlnQ0M0di92RE1tY0YvZXhIeWJBcGl2SkhvNFlOM3YvNzc2c3BEdU9XSmdoQ09tQkJsZXlUUkZHVVJWRlVEQWFEb2hKUGVpZ2VIaDZZUGMxNGVucmg3ZTFONFVLRkVRU0Zlay9LbENubFQ2VUt4YWo1UkdrOFBBem9VeHk1dFl3TUcxWkwxdFVGV1JhNVordGJXenFuVzVlSHphaGxoK0RiKzEvM2cwZWVtMGJSSXJlL3JFWlM5RnlPcWt4OGtoNUpGc2xJZnpSVnFqek1ablNpZ244aE8wRkZ6aUlLZWJmUXlBcGNpYWxNYklJSlNkYmRzemxUeHlRVFdOaEMyY2ZPM3RMSVhiOTI3Vkg0cWFvdldMajQyUmZidE5ycHlMWFpGRVd4Z1dBWEJMV1FJTXV5QUNnMm15M1RJT0pZNlNTckt4VThUQ2ExdVRsRklqRXBrOW9vcUV3Zyt0UTBpNE81STF0dVRaS1JKRm1RSk1XeHlrQjlvU0RxOWJvdUQvMVRJV0hSSTNFenA5djkrUDFDS2ZRR0Qzd0t1M1ZGVTFOVGlFOU9JaWFoS2pVZnY0cEpuNWlyVWZ2MTNCUG85T2I3TW1lcHFTbkVKaWNSRmY4RTlTcWR5dGU0bFN6MWFCRGpGQzlSb2czd2k4T3dXUUc5SUtESDBkZUdxbXdscU12UUJRVUVRUlFFUlJUVmJnUlJwOE5pdFNLZ2tKb21rWnljUVh4Q0dqRXh5WlFxNFllWW5tNVR2VFdyU3lNdWRydUVKTWxxSmRSQm5xU0FrSFp6Ym11ZzhjTTRXWWQyREgza3d0REl1Q0xvRFI3L0tWYUlmd0l2TDIrS0ZpdUJUdTlCUkZ6dWlsK1hvNnVoMDV2djI1eGxqc25NbFpqS3VBR2lLRGJjcy9kQUxUSkpLQTJLb3VoUUs2U3FOVk1VRkVWV0s2U3lNNHJNdXBaVWxTUklUN2VSa3BwQllsSWFzZkdwUkVZbElhWnJQR3RxejVyTkxtR1hIRWJOR1lKbU1uZ0lSb1B1VGZmUDh2QWdOdEgwbjJTRitLZnc5aWxFVEtJcDEyMXhpZm9ITW1mZVBvV0lTVEM1Znh3SFNwY3VuYjMxdzhuOG9YT3lmamhvalpBbHRmM0Q3bGdrYjdmWnNEcGFRTkl6cktTbVdVbE95U0FoSVkyWTJHVDBGa3NtZWFUV3M2Ym0xZ1MxYjAxeFdFNkVoQ3N6bnhRRTRkWGJDZ2tmNFdUMnZaNGZTZFloeVRxM3A1YUhsNVFZSDRzc2d5aTZ6dmVEbWpOMVRIRjM5SnNuSlNaeSthK0xwT2Fqb2V2bDVVMVF1Y2NwVkxqd1hSbnZ2VDZud1dCb3UvYXI5Vis5OFhySEMyUlNoK3NGUWJBN3dsRlpsZXhUQkVtU0ZVbVNCTWt1S1U2dnpXNnpBUW9XaTB4NnVwWFVWQXVKeWVuRXhhV2lWM05yV1pkTnlRNXZUVmFMQmdvNCtkYTh2RXl2RjJUQS96R0s0M3Y3RlBjRW5VNmlpRzlDdmxUSHVVRW5Tbzlzb2FBZ1NFOVBkekZxb0JxVUJ6bG42ZWxwZC9RZysrdlNCZExTVXZQZEp6VTFoY3QvWGFSR3JUcDNaYXozNDV5MTY5UitEcmlhSmRkbWRYaHRrcUtvdVRaRmtSVlZ4VXB5cFRheTJ4RlFzRmdsTWl3MjFXdEx6aUErTVExOUZ2MENOYTltenl3YXlBNVhFQVZoODFkOVBFUlJlTDBnUnUwL1JuRjh6NUdhbWtKRWdsKytWTWQzaXUzYmZtTEY4bVZFUmQya1JJa1NmUDdsR3M2ZlAwZVA3aUhhUGtPSGorU0ZGOXE0ZjRpSEdMY3lNRm12cFgvVE9UMDl2ZHEwZTduOSt1KyszV2pKekxWaEV3UkVVQnk1TmtGUUZCbEpraFZKbGdTN3VrZ2V1OTJHQUZpdE1oa1dHK25wVmxKU00waEtTa2VmblVEU25pVzNsblg1VlBPbTFWNEZTdDlxb0ZrcGp0MG9lSWppNWVYTnpVaVptL0YrRlBPUHZ5dWZlK1BHRGFaTW5zaVljUk9vVjY4K1NVbEpBRlNvVUpIdE8zY0Q4RTZQYnZmc2V5MWZ0cFIyTDdjbklDQWd4N2htelpqT3laTy9ZelFhYWY1OFM5NTd2NC9HS25IdDJqWG16SnJCeVZNbk1abE10R2pSa2w2OTM4dkJPbkUzY2F0elB0ZTRJUWFEQVVFUUNRb0tvbnVQbmpScTFOaDk4ZjV6bEJyNThhZ0czMzI3Y1JmYUVpdEZEMEttUG9KS0lhNWt6YldwaStRbFFNRnFrN0ZZN0dSWWJLU2xxN2syMFJtQ1NwS2MyZUloWjdaNDRHengwT2tLdE9UL3YwcHhmRi9DMG55b2p1OEVaLzg4UTJCZ0lJMGFOY1pvTkJJWUdPZ0l4d1JNSmhNbWs4bGxMZUhkeG1jcmxoRVhGNXZqL2RHalJsS3lWQ2syZnJlWnhVdVdjK2pnQVRadCtsYjErR1dab1lNL3BGTGxLbno3M1dibXpKblBudDI3MkxqaG0zczJ6b0tlYys3OGhYeS9aU3ZkZS9Ra2JPcGtObnl6L29GY0o0SWdVS2RPSFZxMGFFSHo1czBwVWVMMm5BaEprdGkvZngvRGhuekV0Yi8vdmk4cGdiRmpSdkhXRzYvUnZWc1h6cHcrclczNysrcFZ4bzhiMDR3czFWRWM2MGVkREx1U0pBbVNKQW1LSWd1U2F0d0VwN0N5SktrUnA5VnFkL0hhTk1QbTB0NGhPU20vMVJhUCtLc3puaEFFV3Q3cUMvd1RpbU0zVk04dEw2cmoyOEh4NDhkNHVXMGJwazJkVEdSa0pDKzNiY1BMYmR1dzhyTVZCZjZNUXdjUDBQbXROMmplTEpnZTNVUDQ0OVFwbCsxN2R1OGlwR3NuWG1qMVBOMjdkZUhRd1FQYXRuNTkzK2ZsdG1wbys4R0EvcnpjdGcxOTMzOVhNeUxCd1UzcEd0SU5rOGxFa2FKRnFWdXZIdWZPbmdVZ0xpNE9QMzkvT25YdWpORm9wRlRwMGpScS9DeC8vbm5tbnMzNzdaelRiRGJUcUZGamhnMGZ5WkxGQzEwWVplOFh5cFVyaDA2blk5dTJiZXpkdTVlYU5XdGlNQmh5TmRpNS9YOUEvNzc4c21jM1o4NmNScEtsMnpwMzQ4YU4wZXYxZVQ0Z2N2dDczZGRmNGVucHllcTFYek40OEZER2p4dUQ0cmpJWjg2WXpzdnRYMm0yWnUyNjBtVFRId1YwZ2lBSW9pZzYxNDRpYXpVQVNYczVxZFdzRmpzWkdUYlMwcXlJem9LQlhTc1lPTFVNdEtLQjRPM2wwYjVnVDVJN3B6aDJRMFZLcXZDUGMyeTFhdFhtMjAxYkdCQTZrSklsUy9IdHBpMTh1MmtMSWQyNkYrajRpeGN1OFBISTRielhweTlidG03ajFkZGVaK0FIL1RYdXJpdFhMak4rM0JpR0RCbk81aDkrNHFXWDJqRml4RERTMHRTay9KeTU4L2wyMHhZQVpzeWF6YmVidGpCMy9rSUFSRkdrVStjdStQcXFudWxmZjEzaXdQNzlOR2p3TkFDQmdZSE1tVHNmRHcremRuTWNQM2FNR2pWcTNyTTV2NU56MXF2ZkFLdk5waG5rKzRuQXdFQnUzTGpoY0NaVWlpMC9QMWRQLzhpUmNFWU1HNExOWmlNdUxvNTNlblFuTGs0VkcvNTB4aXlHRFI5NVJ3NUlRRUJBbmw3K2h3TkRPWDdzcUdiTUZzeWY1N2llem11L2I5VnExVEVhalZ5N3BucUs1OCtmbzBHRHA2bFZ1MWFEWEx3MkVSQVZCVUVRQkxYdFE4bGFSSEMwZ05pemVtMTIwak9zaUhaSjFzUlpuR0dvckdTeWVLQW9naWdLTC8rVEgyTFF3RkJlNjlpZWtDNXYwYlh6bTJ6Wi9MMlcxM2l0NHl1MGIvY2kzVVB1N1dLRzdpRmR1SGp4OW5RRnR2MzBJNjkxZklVWFdyZGc5cXk4Q2Y1MjdOak82RTlHL21lTTYrYk5td2h1MHBSR2pScGpNcGxvMWZvRnFsU3R5amFIa0VkQVFDRExWM3hPdGVyVkVVV1JsOXEydzJhMTh2ZmZWd3Q4amo5T25hSkY4NmFFZE9sRWxhcFZlUzY0U2E3N0xWd3dEN09uSnkrMHVYODZRUVU1cHlBSStQdjVrNUo2LzBWNGpFWWpraVFSRUJCQTQ4YU5rV1VaazhtMVA2NXUzWHI0QndRd1p2UW5EQm80Z1BhdmRNRGYzMTg3L2w2Z1Q5LytUSnd3bnJselpyUDFoeTEwNmFvV3FCNnZVSUZmOXV4QmxtVXVYYnJFelp1UnBDU3I4L2I0NHhYWXMzc1hYbDdlemJNWk5YMm1jY3ZzYVZOa1J6anExRWVRVk1kTVZaS1hzRmh0cEdmWUVMTVlOYTFnSUN1QW8yaVFHakczR1hlQklmZWpJY05ZK2NWcTVzeGJ3T2NyVjNEcDBpV04zbmhxMktjUDVRM2VvbVVydmw2L2dXN2QzdVpSUW1Sa0pNV0x1K1p0eXBRSklqSlNaUlgyOXZibXQ5OStwWGV2SG5SNjgzVzZkZTJjYXlpU0g2by84UVRiZHV6aXEzVWJpSWlJY0ZFNGN1THpsWjl4K1BBaEprNmNuR2Y0YzdkUjBITXFpa0pjZkJ6ZUR5anRVcTVjT2FwV3JjcisvZnUxb2xCMnc5dTc5M3NjL2UxWFRFYlRQM293bU0xbU9uYnNTTWVPSFRFWURMUnIxNDZPSFR2eTJHT1B1ZXozZUlVSzZqM3oxUnA2OVg2WFFvWFVYUHVycjcyQlRxK2plN2N1ZlBINVozaDdlMlAyVkwzalFSOE81dWVmZC9KMjk2NVZ1b2FFVkhFWXM2eDVOcDJpS0NwWG0zTTFnaXdqT1VOVFdkWTZPbFN2VGNKaXNhR1hzcXd5Y0RUa09zTlFBTUZrMHJlOW16OUk0Y0srUFBGa0RTNWVPRS81OG5tVEt5WW1KakI1NGdTaW9xS3cyMjEwNnR4VlkrTThjK1kwTTJkTUp6MHRqU0pGaXpGMDJBZ3RNYjU3MTgrc1h2MGxsb3dNcWoveEpCOE0vRkRMUCt6NmVTZGpSMzlNZW5vR2ZmdjExN3lFYjlhdlU1UFhpa0xUWnYralcvY2V0L3dlUjQ2RTgrbjBhWWlDU01sU0pmRTBlMnJiOGh0RDgyYkI5Qi93QVV1WExFSlI0UHN0V3g4NncxYTBhRkVpSXlKYzNydCsvUnExYTZ1OVNudC8yY09xTDc5Z3hzelpsQ3F0RnNxZmE5d3cxNXNydTdHelpHU3dkZXNQdEc3OUFpWVBENG9YTDA3ejVzK3piOTllbC8zV3IvdWE3ZHQrWXRhY2VYZXQ0ZlJXdUoxekhqa1NqdEZnb0ZMbCs3OUV5bXExWXJmYk9YcFVEZnQwT2gwV2k4VTFwWkdTd2tjZkRhUnpseERPbmYyVEtaTW5NblRZaURzcUZxV25wN04rdlZvb2FkZXVIVC84OEFOWkY2ZG5qWEIyNy9xWjhSTW1NVDFzR2hNbVRhWlNwY3FZeldhR0Roc0JRRkpTRW0rODFvRVNKVW9DVUtwMGFUNmRNY3R4Myt4cStQbktsWDlrTld5Q0lEakNVVVhJR25xcktUTUpSUkdRSkFXN1hmWGFiRFk3Rm90ZERVVlZiMDBXSEVVRFRhaEZVUlJSRUlTN0dnTkVSMFZ4NnVUdlZLbFNOZC85enAwN3gvK2FQOCt5RlN1Wk0zY0JzMmJPd09wWUd6YnE0eEdFaGc3azh5L1g4TXd6alZpeWFJR1dyMW0vZmgxejVzeG41UmVyQWZoaHkyYnRNMzE4ZkZqNXhXcEdqeG5IL1BsekFaVlliL1BtVFN4Y3RKUWx5ejdqdDk5K1k5ZlBPL01kbThWaVljSzRNWXdhUFpZdlY2K2xUT215MnJaYmpjRnV0eE1WRmNXNmI3NWwvVGNiSDVqeGNuWnZBeWl5ak4xdTE0eFFteGRmWXMrZVhZU0hIOFp1dC9Qenp6djU0OVJKV3JSVTYwZXhzYkVJQW9nNkhZbUpDYXhlOWFYamMxeXJIc1ZMbE9EUXdZUFliRGFpbzFSSlFxUEp4QmVmcjJUdDJ0WFliRFlTRXVMWnUvY1hhdFNva1JrS2Y3K0piemR1WU9ic3VWcjRkTS9EN3dLZTAyS3hjUGpRUVNaUG1rRHZkOS9IeSt2K0U0UkdSMGRyQnNwb05PTHI2MHRDZ3F2SzJjV0xGd2dPYnNwYm5Ub3o4cFBSR0kwbUxjZDJyM0R5NUVrK25UR0w1NEtiTU9MalQvanQxeU11MjVPU2twZzJkVEl2dnRRMlJ6ajg5OTlYV2JaMGNiTXNJYWhXUkhCNGJLSWdDQzdMckZRYU5kbFJJM0ROdGVuVlNxaXNlV3V5eW1FcEFFSjY1THpXUU1tNzhhV25oMDNGN0dIR2FETFNwMjkvU3BjcGsrLytOV3ZXWXZteUpXemI5aU02blI2TEpZUGs1R1FTNHVQeDl2YWhhclhxQUx6VXRoMU5telVENFBEaFExejcreXJ2OW41SGU3SjVlL3RrNWgwYzdKNVZxMVhURXVIaDRZZDQvdm1XbU0ycWEvemlpeThSSG42WXBzMytsK2ZZcmw2OXdtT1BGZEdNYzVWcTFkajN5NTRDalFHZ2EwaTNlNWJuS0FpeU4raE9tVHlSS1pNbjhueUxsbno4eVdncVZxekVxREhqV0RCL0xwRVJFWlFwVzVhcFlaOXFNbTJ0WDJqRHFWTW42ZEc5S3pxZG5uWXZ0NmRpeFVyRXhidmVPQU1IZmtqWXRLbXNXTDZVTW1YS3NIVDVTb3hHSTFPbWhqRjN6aXkrV3JzR2c4RkFjSk9taERqQ2ZVbVNtRFpWRFFQZmZOMjF3K2p6TDFkVHJGanh1ejRmQlQxbnZ6N3ZJd2dxYyt5Z0R3ZmZ0VDQyUlFGdno0S1h3aTlmdm95dnJ5L05temNINFBqeDQxaXQxaHozdzYyQXVRQUFJQUJKUkVGVVQ4MmFLazIzWHE5blVEYW0zRHZGZDk5OWwzY3VQY3M1YXRXcVRhMWF0YlcvRnk5YXdPNWR1L2hmOCtkekZMSDY5M3VmbE9RVVFycS9YV0wwMlBGUE5ubXUwYS9aOG13MlFiWGt6bkJVVVlzSU1vS2dlbXlTbzFiZ3pMWHBKYWZ5bEhQNWxKcGJBeENNUmwzcnUzWHhEUHB3c0VZYlhCQ3NYYk1LdTgzT2xLblRFUVJCYXg5d2hqaE9HQXdHL1B6VUo2ek5haU80U1ZOTmJpeS94Ry9XRUNtcmR5NElnbGFLemkrL2tsZXphRUhHSUdaZjUzT1AwTEpWYTFxMnl2a1RWcXhZaVYvMkhjejMyRWFOR3VkNTQ1cE1Ka1orUE1ybHZYZDY1ZVMvcTkvZ2FiNWV2eUhIK3hVcVZtVG03TG01ZnJaT3AyUFAzZ1AzMWRBWDVKeTNtcTkvQWtFQXZjNU9hbXBLZ1NxVmlxSnc3Tml4ZjN6ZVZXdSt1bTl6M0t2M2UvVHFuYnVtK3V3NTg3T21LdW9CeDdPRm83cHM0YWlneUxJaVNYWkVRVVNTQk1maWdreXZUWlNkWWFpakdxcVN1V2xoYUdzZUVLS2pZL0QyOFVZUUJJNGZQMFpTVWhLS29sQzZUQm1TazVNNWYvNGNBRC85dUZVVGNxMVh2ejQvNzl6SjlldXFXT3pPblRzNGVmTDNmTTlUdDI1OXRtL2JSbnA2T2phYmpSKzJiS2Erb3pTZEY4cVdEU0k2T2xvcnVVZmN5SlQzdTVNeC9KTW52VGxMYnMrTjdFbHZ6eHc5Z1E5NnpuSWJFMEFSM3dSU2svTVd6ZmIwTEZqSVc5RDk3dVpuM2Mxem1qdzhtbVR6MXB3OWJhTGo1U0RsVUFSSmtoQUV1eUE3bzg0c1hwdGVDME1WQlNWTEdKb1dNYmZwM1FwRDgwSitnaFN2dmZZNlk4ZU00b2N0VzZoY3BRb1ZLbFlrTVNHQndNQkF4b3diejZkaDA3QllMQVErRnNpUW9XcGlza3FWcXZUclA0Q2hnei9FWnJkUkxxZ2NnNGNPeTNjTVQ5V3RTOHRXclhtM2wxb3dlUGE1SmpSdDJreExoaTVkc3BpVTFCUmtTV0xmM3IxMDZSckNTMjNiTVhUNENFWU1HNEtmdno5NnZVNHJIdHpKR1A3SmsxNFU1UUkvNlI4bHBLWWtJNHB5anA1QWRjNmtCekpucVNuSjZFUXAxejdGWXY1eDNJajFKeXBTd2N2SEw4Zll5cFd2Y010RjZaNmVYcFFyWCtHdWpmZEJuQk1vc1gzSHJzclBOMjk2Z2l3MFJrNmpwaG8yQkZtV0hlNGJTTEtnZFhZNEs2UkNrVUF6RnF0ZHNGcGw3SklpeUtwWWk4NFdzMkNTS0FvZjNPNm9IaVh1OW51QmkrZi9KTGhXd1pzK0wwZFZKamE1a0h0dGJqYmNqTHhCUUtFa2doN0xPWmVYb3lzVG0zVC81eXkvTVRtOXlhajRRa1RHQjJDVGpLUStvc1F0NmVucFMxdTNicjBLVlE4aEdWWHdKZDBoK0dJVEJDUlJGR1NEWGxDTVJoR1RVYStZUFF5WXpRWTh6U2E4dkV6b25XR29rb1hKUTFFVVVSU0Y1dmM2Q2VwR1RuaDdLcmZGMTFVbThEeFI4ZFc1R1hrRGJ4ODNOWGhxU2pJcEtjblliUm1VQ1RpWGV5b2g4Q3hSY1UvZXR6bHpqa215cDFNMjhHeStIbmhSL3lTSytpYzk0cUk4U2tQZ3F5emhxTTdCOXFGV1J4RWNDK05CbGhWRlZwdDJGVWxTMUFxcFhVS2ZyU2tYQllTNHl6T3FjUWRpTGJlYkJIVWo1dzJnMTlsdjY0SVdSWm02bGM1d09ib3ljWWxXRXVMaXlNaDROQi8xWnJNbm9pZ1RVTmhHMmNmT0lRcEtudGRwdlVvbnVSSlRtWmdFeXoyZE03UFpFNTBvRWVCcm9XemcyUUwvdG84eU9hc2dDTlczcnU5YnZIWEh1WDlweGsxQmgrRElzWUVnS0tyTmttWFViZzVIWmRUNTBxdlUzOW5XaG5wN05MblRRUlh4VFNBaUljRnQyTzRBS1NtSmxQUzdmY29pVWJCVHZzZ2ZsQy9pbHQrN0hjTVI5TmhaZ2g1N09PVDMzSERGVTdXQ3FnRi9PdzJiQWpvaGF3RkJ6YlVwaXFOTlRYS3NSbkQwdHlFNnZEVUJiVzBvZ2s0VW43dlRBUlh6ajBPUkVvaTZlWTIwQjdDTzd0K0l0TlFVb2lLdWdwUklVYjkveHNYMmFEL3BINzQ1Y3h1MU80T3ZyMmN0MUtLQm5zd0NnaXIwb3RHcEtZS3NJRGk4TmtHV2xTd2VtNU9leU9HeERlclhUQ2NJQlArVEgvS3BTcGU0R2UvRHpmZ0FraE9OcEtTNmY2aTg0TzBGQnAyVlVvRnhGUEZOY2srSUcyNEFCcjJ1WWMzcXhRd24vb2pVWndsSFJRUkVCVVVBUVZBVXh4SXJ4Ykc0d0VHN0pza3lncGRaSjlqc2lpQ3AxVkF4K2Zyc3BwNW00NC91cVhYRERUY2VKSTZldU5MbnFlQ0pwOGhTSFJVRTBnR3JJQWcyUVVEV2FkVlJIUjRtdmVMaFljQnNOcUszUzFrV3ZpdUtjRE1xc2VIOTZveDN3dzAzM01qVGF6UG9LZ04vWmcxRkZRVlJFRkE3T0JDUVpRVzdCSUpOUmhEc2FzZ29nT0RoNFNIYTdYWkJVUlJSVVJTZDNXN2ZKQWpDOCs1cGRjTU5OeDRrN0hiN2JvUEJNREdMeDVZaUNFSXFZQkVFd1NvSWdpUUlncXpYNnhXajBhZzQ2TzRWczltTTZGd1hxU2lLOE9xcnIrb0VRV2pvbmxJMzNIRGpRVU92MTljdFc3WnMxc0tCVmtCd09HS3VWRVpaWG9MUmFCUWxTUklWUmRFbEppWTI5UGIyM3VXZVVqZmN1UDlRRklYSXlFaHUzb3hDa2lSU1VwSWYrVGs1ZGVwVTc3NTkrNTUxZW15T1Y3b2dDRmJBN3ZUYWREcWRvdGZyTVJnTWlzbGtRcCtWeWNMRHc2T3UrL0p5dzQwSFk5U09IVHVHZ3FDdGhuRHI4WUt2LzJQbGdRdGthZnR3a0U5cWpUU0NJQ0FJQXFLb1E2L1hvOWNiTWhlV0FvSk9wM3ZxMy9qbFEwTkRhZFdxVllIMlRVbEpRUkFFZHUvZWZjZm5xMVdyRnBNblQ3N1R2QUdob2FFVUtWS0V3b1VMMDd0M2IwMEV4WTFIRjVHUmtTZ0lGQzFXd3QzY25nVStQajZWczRXaG9wTjRNcXZ0VWhtSlpMV2ZUWkhWSEp0em5hZ2dDSFhjVTNsdk1XellNRFp0MnNTNmRldll0R2tUTzNmdXBGKy9mdTZKZWNRUkZSWHQxdVBOQlFhRDRRbHk1dGl5R1RVRmxXNU5RVkZrRkZuV2R1RDgrZk5GZ0VydXFieDNTRTFOWmQ2OGVZU0ZoUkVjSEV4d2NEQ0xGeTltNWNxVnhNVEV1Q2ZvRVlZa1NYZmtxWjA1L1FjRFEvdmY4L0dkT1hPYXNHbFQyTzVRS25OaTQ4WnZDT255RmlGZE83a0k4a1JIUnpQd2d3R0VkTzFFM3o3dmNmWHFGVzNiaVJQSDZmbDJON3FGZEdiMEp5UHoxV1lWQktIQ3lJOUhlZWRqM0FBRUhBc05uTTI2enFxb1VLSkVpU2YvS3hmSmQ5OTlSLzM2OVRHYnpYaDVlZEc4ZVhQT25YTmxldmpsbDErb1ZxMGFIaDRlTkd2V2pMLysra3ZiSnNzeVk4ZU9wWFRwMG5oN2U5T29VU1AyNzkrZjY3bWlvNk41NVpWWDhQUHp3OXZibXhkZWVJRUxGeTVvMndNREEvbndRNVZOOTlpeFk2U25weE1jbkxtdzQ5bG5ud1hnNE1HRDdydjdFVVp5OHAydE9xbGNwU3FqeG95OXAyT2JQMjh1eTVZdTRkTEZpeTVHNk9yVksyeFl2NTRGaTVheWJQbEtUcHc0eHBFajRZNWo1dENzMmY5WStma3F1blYvbXltVEptcXBtRWtUeGpIeWsxRjh0dkpMU3BVdW8ybG01SVZubndzdTRUQmtMb1NUanJCVVc0R2dLbGlwWHB2bTBoa01oditFWWZ2OTk5OTU1WlZYNk55NU0yZk9uR0hIamgzY3ZIbFRNeTVPekpvMWkwbVRKbkg4K0hHOHZiMXAxcXlacHJ3emNlSkVsaXhad3BJbFN6aDU4aVFkT25TZ2VmUG1uTTFGSERjME5CU0x4VUo0ZURqSGpoMURsbVZDUWpMMUJBWU5HcVJ4MDErL2ZoMmowVWhBUUVCV1Y1dUFnQUN1WGJ2bXZydmR5SUhZMkZnR0RRd2xwTXRiZEF2cHpPRkQ2Z1BRcWNuYm9YMWJRdnU3cGpLR0RmbEk5YUs2dkVXN2wxN2d6VGRlMWJaZHZIaVIwUDU5NmQ2dEM0TStHTURObTVFdXg2NzcraXVYL1FGNnZ0T0xzT2t6S1AvNDQ2NzMyb2tUUEZXM0xwNmVLc21xbjY4Zko0NGYxN3l5NTU1VEgrQ0ZDeGZtenovUFlMVmFpWXlJd01Oc0ppaW9IQUQrL3Y2Y09KNC96WG54WXNYS1pERnFqanhiMW5CVXlReEoxVHdiZWxCNzJIUTZYZlgvd29XZ0tBcWZmdm9wL2Z1cjdubFFVQkFoSVNFc1dMREFaYjlQUHZtRWR1M2FBYkJpeFFwS2xTckY1czJiZWVtbGw1ZzhlVExMbHkvWENoSURCdzVrMTY1ZHpKdzVNOGZuWEw1OG1kS2xTMU95WkVrOFBUMVp2bnk1aTVFYU5peVRQVGN0TFEwUEQ0OGNZemFaVERuazA5eHdBK0NydGF1cFVhTUdJZDNlNXRLbFM4eWZONGNHVHpmVU5IblBuei9IeFBIalhJNlpOR1Vhb0VwWTluNm5oNmEvWWJWYW1UaCtMT01uVHFaNDhlTDg5T05XRnN5ZngrZ3htY2ZYckZVcmg1NUhYc0pEaVltSmVIaDRFQjBkemFRSjQ1QmtDUjlIbmpBeE1SR1Rod2ZmYi9xT0hUdTJZVFFhU1VsSklTa3BDWlBKaE5WcVplNmNXZHk0Y1NPSHdsWjJlSGw3bDh0aTFCd0dUaEVkRkFPT1hqYWN0UUpGVVJSQjcyeHlFd1RoUDJIWWF0YXNTVUJBQU5PblQrZk1tVE9jUFh1V1gzLzlsYUpGWFl2bmpSdG5DcFVFQkFSUXZueDUvdmpqRDU1ODhrbFNVMVBwMXEwYmI3K2RLWlJzdFZwZGpuRml5SkFodlBubW13UUdCdEswYVZOZWZQRkZ1bmJ0bXV2WXpHWnpEalVoVUNYZEhvU01teHNQUCtyVmI4Q2NXVE1BZ2ZyMUd4QTJmVWFCanBObG1UR2pSOUhteGJiVXI5OEFVS1VocjEzN20rRkRCNnY3S0RKZTJmUUtLbFdxVEtWS0JkZEtQWDM2RDQ2TkdFcm9CNE00KytlZlhNeVNocGswWVJ3QmdZR0VUWi9KcXgxZWRqR0lBejhZd0lzdnZrU0hqcTh5WXRqUWZNOWhNQmdxWk11dDVjeXhvYUNBVmtEUVoyNmc2bi9oUWpoNDhDRE5taldqU1pNbU5HM2FsTmRlZTQzdzhIQ1dMbDJhNzFOSXI5ZGpOQm8xcmMwMWE5WlF2YnFycmMvTjIycmJ0aTNYcjEvbisrKy81OGNmZjJUNDhPSE1ueitmdzRjUGF5NjZFNlZLbFNJakk0T0VoQVI4ZlgwQnNObHN4TWJHVXJKa1NmZGQ3RVpPdzFhdlBuUG5MU1Q4U0RpZnIxeUIwV2hrekxnSnR6eHUyZExGZUhoNDBMbEw1a1BXWnJOUnJGZ3hWcXo4NHE2TXJYRGh3bVJrWkJBMmZTYUZDaFhpeEluakZIWmMxNFVMRithWlJvMDFrWE5WaHRLYlFvVUtrWlNZeUlTSlUzajg4Y2M1ZS9aUDdWN0lDNElnVk02U1c4dWFaOHRlUUZDY0JRUVJFS0tpb2lvQnB2L0NoYkJnd1FMcTE2L1AxcTFiR1R4NE1DMWF0T0RHalJzNUpQV3k1c3VTazVPNWVQRWkxYXRYcDN6NThwaE1KaTVjdUVDRkNoVzAxNkpGaTlpeVpVdXVIdHY1OCtmcDBxVUxxMWF0WXYvKy9adzZkWXJqamx4RFZ0U3VYUnV6MmN6ZXZabXE1L3YyN1VNVVJaNSsrbW4zWGV4R0RreWFPSjd3SStFMGIvNDh3NGFQNU5DaGd5N1NrYmxoMzc2OTdObTltK0VqUG5hUnFxeFFvUUpKU1VuOHNtZTNsbS83ZnBPclR1ajU4K2ZZdVBHYkFvM3R5Um8xc0ZxdG1Fd21KRW5pNElIOTFLeWxhcG5XcWxWYkcrZlIzMzRqS0tnY1JxT1JZc1dMVTlqWEY1UERzZGkzZDY5MlRENHdMVjY2UERBWGc2YjFzQUZaUERaSGpzM2IyN3ZDZitWQzhQZjNaK2ZPblp3OGVaS1NKVXV5YnQwNmxpMWJocCtmbjh0KzQ4ZVBwM0hqeHZqNitoSWFHa3JGaWhWcDNibzFvaWd5Y09CQXhvNGRTN0ZpeFdqWXNDSHIxNjlueG93WmJOKytQY2Y1enA0OVM1OCtmWmczYng0QkFRR3NXTEVDYjI5dnFsUlJCVzBtVFpwRTdkcTFhZFdxRlY1ZVh2VG8wWU8rZmZ2aTQrT0QwV2lrZCsvZWRPL2UvYjRwbnJ2eDcwTG56bDBKQzV2QzJ0V3JrR1daZ1lNK1FoVEZmQlhlNXM2ZVNVWkdCbjNlNjZWOXp0ejVpL0R4OFdIU2xHbk0vSFE2aXhZdXdOUFRrNEhaaEpTUEhUM0toZzNyYWQrK3d5M0hWclpzRU8zYmQrRGRYajFSVUhqMjJXQk5PL2o5UHYyWVBHa0M2NzcrQ3JQWnpKQmh3N1hJYVBpSWp4azNialEycTQzU3BVc3plT2p3VzU2clFvV0tqd0hYYy9mWUhEb2hHcmVrZ2lDS29vZkZZaG1nMStzbi8xdC8vTkRRVVA3ODgwOSsvUEZIWW1OajZkbXpKenQzN3NSZ01QRFVVMC94eGh0djBMTm5UNjVldllxdnJ5OCtQajVNblRxVmxTdFg4dmZmZjlPb1VTTVdMbHhJR1ljNnZjMW1ZOHlZTVh6MjJXZkV4TVJRdVhKbFB2bmtFenAwNk9CNEd0WGlqVGZlWU9qUW9VUkhSek5nd0FDMmI5OU9jbkl5ZGVyVVlkcTBhVFJxMUFoUTJ6MjZkZXRHV0ZpWWxrOExEUTFselpvMWlLSkl4NDRkbVQxN2RxNWhyaHVQRHZiczJlTldkOHNIY2JHeFlUVnJWTitPdW1iVStVb1RCQ0VEVlNsZUVrVlJYVE5xTUNpQ0lBaG11OTArVXhURlh1N3BjOE1OdDJGN0dKR1JucjY2WW9WeVgyUXpiS2xaREp0ZEVFUlpweE1WdmNHZzZCM0p1YUIvNnhlZU4yOGVmZnYyL1UvOGVKR1JrVG1xdHdXQkxNdGN2bktWdUxnNEpFa2lJLzNSWEh2cVlUYWowK253OXdzZ0tLZ00rUkdtS29yaW1MTlk3UFo3TjJjZVpqTjZ2WjRBL3dDQ2dzcmVjdi9yN243R1hDRkpVbkVjVGJsWlg0cWlwaEhWN2c0WldRYkpMaUVJZ3VBcHkvSlJvTEo3K3Y1OXNGaXNuRGh4QXAxZTc5WVZCVkpUVTBoSlRrS1M3TlNxV1F1ajBaQ3JVZnYxMTk4UWRicjdveXZxR0pNc1M5U3JXOWZ0c2QwQkZFVTVYNlpVOFEvSUpKMTBFazg2cWNMdGpuQlUwZXYxaXJPNlVOWTlkZjlPUkVSR29OUHIzYXdRRG5oNWVWTzBXQWwwT2owM0ltN2t1czlmbDY4ZzZuVDNiYzZjWXhKRkhWZXVYSFZmdEhjQVFSQktaL1BZc3YvZnBWbFhQSC8rZkZIQW5ibitseUkySnRiTkNwRUx2SDBLRVJNVG0rdTJ1TGk0QnpKbjNqNkZpSWwxa3gzY2FWVC95ZWd4M3VUWjh1SFViUUZRMEFjRUJCUjN6OW0vMVQyL2MxYUlSOEZ6UzB5SXkzWGJnNW96THk5dkV1UGo3dWpZcE1SRUx2OTFrZFI4dEhxOXZMd0pLdmM0aFFvWGZtRHpmaS9IV2JWS3RVSkFUQzdlbXZPT3dObjZvVGVaVEVYdi9nM25wamd1S0h4OENxSFRpUlFwVW9UaXhXL3ZHU01Ja0o3dUpxbk1DK2w1RUhnK3lPTEtuZjVlZjEyNlFGcGEvZ0s5cWFrcFhQN3JJalZxUFRoYXhYczV6c2VLRkNtVTNWdHpGQThFMTNCVVVmUTZuZTZ1R2pZM3hmSHRJelUxaFJzUmtkeUlpT0NwT25mM290eSs3U2RXTEY5R1ZOUk5TcFFvd2VkZnJ1SDgrWFAwNko3SlFESjArRWhlZUtHTis0ZDRpSEVyWTVIMVd2cXZqck5Rb1VLRnNoZ3daM091NEZnTW56V1NFZlNpS0Q1Mk43OVlWb3BqTndvZW9uaDVlUk4xTTRMSXlFaUtGU3QyVno3M3hvMGJUSms4a1RIakpsQ3ZYbjJTa2xUT3J3b1ZLcko5NTI0QTN1blI3WjU5citYTGx0THU1Zll1TkUzT2NjMmFNWjJUSjMvSGFEVFMvUG1XdlBkK0g0MVY0dHExYTh5Wk5ZT1RwMDVpTXBsbzBhSWx2WHEvbDROMTRtN2lWdWQ4cm5GRERBWURnaUFTRkJSRTl4NDlhZFNvc2Z2aXZZOHdtejBLdVJxMUhDL0gwa2tGVVJURmdMdDVjamZGOFQ4d2NONCszTHg1ODY1OTN0ay96eEFZR0VpalJvMHhHbzBFQmdZNlFsZ0Jod2FqeTFyQ3U0M1BWaXdqTGk1bkFuLzBxSkdVTEZXS2pkOXRadkdTNVJ3NmVJQk5tNzRGMUo2OG9ZTS9wRkxsS256NzNXYm16Sm5QbnQyNzJMamhtM3Myem9LZWMrNzhoWHkvWlN2ZGUvUWtiT3BrTm55ei9vRmNKNElnVUtkT0hWcTBhRUh6NXMwcFVlTDJuSWlEQi9ZVDByVVRyNy82Q2pNK0RkUFdkTnBzTnNLbVRTR2t5MXQwRCtuQ3ZuMlphNXJ6WThTOWQ1Rk1LcHUrKzVhaGcxWGFKWVBCbU4xakUzRVVEckpHakZhckZWRVFoTHU2U05HZHpQNW5ucHRka3Y3eDV4dy9mb3lYMjdaaDJ0VEpSRVpHOG5MYk5yemN0ZzByUDF0UjRNODRkUEFBbmQ5NmcrYk5ndW5SUFlRL1RwMXkyYjVuOXk1Q3VuYmloVmJQMDcxYkZ3NGRQS0J0NjlmM2ZWNXVxNGEySHd6b3o4dHQyOUQzL1hjMUl4SWMzSlN1SWQwd21Vd1VLVnFVdXZYcWNjNUJTaEFYRjRlZnZ6K2RPbmZHYURSU3FuUnBHalYrbGovL1BIUFA1djEyem1rMm0yblVxREhEaG85a3llS0YrZEphM3l1VUsxY09uVTdIdG0zYjJMdDNMelZyMXNSZ01PUnFzTFAvUHlNam5hbFRKakZ4MGxSV3IxMUhURXdNMjM3NkVZQ3RQMndoSXlPRGxWK3NadnFNV2N5ZSthbm01ZWZGaUZzUVBQSEVFOXBETmI4eFp2MDdKaWFHZDNwMDU4S0Y4OXJ2b05mckMrWGhxV2t2V1piUjYvV0lnTi9kblBRN3BUaDJRMFZLOGo4dnROU3FWWnR2TjIxaFFPaEFTcFlzeGJlYnR2RHRwaTJFZE90ZW9PTXZYcmpBeHlPSDgxNmZ2bXpadW8xWFgzdWRnUi8wSjhyaFRWNjVjcG54NDhZd1pNaHdOdi93RXkrOTFJNFJJNFpwYWx0ejVzN24yMDBxRThxTVdiUDVkdE1XNXM1ZkNJQW9pblRxM0FWZlgvV3krK3V2U3h6WXY1OEdEVlIyazhEQVFPYk1uWStIaDFtNzBJOGZPMGFOR2pYdjJaemZ5VG5yMVcrQTFXYlREUEw5UkdCZ0lEZHUzTkE4RkZtV2M1QThIRGtTem9oaFE3RFpiTVRGeGZGT2orN0V4Y1VSRVJHQnI2OGZKVXVXUktmVDBhcFZhdzRmUGdTb3JMZlBQdnVjNDNjU01CaU1uRHQzVnR1V0d5TnVBWE5qZVpKVkxsdTZXS01HUDNueWR3YjBWMWNSK2ZyNjhzV3FOWVIweStSRTFPbDB1WVdpdUlhaHFrY3JBdmM4Ymh3ME1KVFhPcllucE10YmRPMzhKbHMyZjYvbE5WN3IrQXJ0MjcxSTk1QXU5M1FNM1VPNmNQSGl4ZHM2WnR0UFAvSmF4MWQ0b1hVTFpzL0ttK0J2eDQ3dGpQNWs1SC9HdUc3ZXZJbmdKazFwMUtneEpwT0pWcTFmb0VyVnFteHpDSGtFQkFTeWZNWG5WS3RlSFZFVWVhbHRPMnhXSzMvL1hmRG0wejlPbmFKRjg2YUVkT2xFbGFwVmVTNjRTYTc3TFZ3d0Q3T25KeSswZWZHK2ZmK0NuRk1RQlB6OS9FbDVBTWw2bzlHSUpFa0VCQVRRdUhGalpGbkdaSEpsSGF0YnR4NytBUUdNR2YwSmd3WU9vUDBySGZEMzk2ZFlzZUxFeGNWeTZkSWw3SFk3NGVIaHBLU28zOEhKaUh2cTFFbUdEUDRRbzhsSVltS2l0czNKaUR0M3ppeU5FZmVmNHMyM09yTnIxOC9NbVQyVGNXTkcwN2RmZjZkM2xpT25LZ2lDZHo2NU5SY2pweGNFNGI0a3hENGFNb3g2OWVxVG1KaEFyNTV2VTdXYXluMldGNzN4dzRBV0xWdlJvbVVydnY1cUxaR1JFWStNMXhnWkdVbUZDaFZkM2l0VEpraWJBMjl2YjNaczM4YjQ4V05JU1U3Sk02eklEOVdmZUlKdE8zWVJFUkhCSngrUFlQbXlwZlI4eDVXSDRmT1ZuM0g0OENIbXpKbVBYcSsvTDkrOW9PZFVGSVc0K0RpOEgxRGF4Um1PN3QrL24xcTU4SmtKZ2tEdjN1L3h4dXNkS1ZPbXJHYWt6V1l6dzRhUFpQS2s4WTdmdFN5ZVpyTjIzUGZmYnlJOVBaMUprNmN4ZSthbkxwK1pGeU51WG1qVnFoWGUzdXI4T1BPQXAwK2Y1dlRwMDlvKzN0N2V2UHZ1KzN3UTJvODMzK3BFNWNwNUx5c1RSZEU3bnpCVU0ybzJtdzA5Y0Y4NXFRc1g5dVdKSjJ0dzhjSjV5cGN2bitkK2lZa0pUSjQ0Z2Fpb0tPeDJHNTA2ZDlYWU9NK2NPYzNNR2ROSlQwdWpTTkZpREIwMlFvdmhkKy82bWRXcnY4U1NrVUgxSjU3a2c0RWZhdm1IWFQvdlpPem9qMGxQejZCdnYvNmFsL0ROK25WcThscFJhTnJzZjNUcjN1T1czK1BJa1hBK25UNE5VUkFwV2Fva251Wk10dHo4eHRDOFdURDlCM3pBMGlXTFVCVDRmc3ZXaDg2d0ZTMWFsTWdJVjBOKy9mbzFhdGRXVzFIMi9yS0hWVjkrd1l5WnN5bFZ1alNnVmcxenU3bXlHenRMUmdaYnQvNUE2OVl2WVBMd29Iang0alJ2L3J4TG9ocGcvYnF2MmI3dEoyYk5tWGZmR2s1djU1eEhqb1JqTkJpb1ZQbitMN0cyV3EzWTdYYU9IajNxRE5GeWFHYWtwS1R3MFVjRDZkd2xoSE5uLzJUSzVJa01IVFlDUVJCNHV1RXpQTjN3R1VmdWJLNUdTMSs0Y0dITVpqTmp4MDFBRkVVc0ZndUZIZk9RRnlOdWZ2anhSelYzOTh3enozRDU4bVV0ZkhaSmUxeTh5T1JKRXhnN2JnSXJsaStsVE5rZzJ1VHRLWHRsTTJKWmpKcVFOV1JGQkR6djU0OFNIUlhGcVpPL1U2Vksva3prNTg2ZDQzL05uMmZaaXBYTW1idUFXVE5uWUxWYXNWcXRqUHA0QktHaEEvbjh5elU4ODB3amxpeGFvT1ZyMXE5Zng1dzU4MW41eFdvQWZ0aXlXZnRNSHg4ZlZuNnhtdEZqeGpGLy9seEFKZGJidkhrVEN4Y3RaY215ei9qdHQ5L1k5ZlBPZk1kbXNWaVlNRzRNbzBhUDVjdlZheWxUT25PcDdhM0dZTGZiaVlxS1l0MDMzN0wrbTQwUHpIalo3WGFOQmwyUlpleDJ1MmFFMnJ6NEVudjI3Q0k4L0RCMnU1MmZmOTdKSDZkTzBxSmxTMEJWVGhJRUVIVTZFaE1UdEJ5SklydXlGQmN2VVlKREJ3OWlzOW1Jam9wU3d5aVRpUzgrWDhuYXRhdXgyV3drSk1TemQrOHYxS2hSSXpNVS9uNFQzMjdjd016WmMrOGJBV2RCejJteFdEaDg2Q0NUSjAyZzk3dnZQeEN0aXVqb2FLMmFiVFFhOGZYMXpTR0ljdkhpQllLRG0vSldwODZNL0dRMFJxT0p1RGpYVlErSER4MWt4NDV0V2c5anJWcTFzZHZ0aUtKSVFrSThGeTllcEZMRlN0cTIzQmh4L3lsKysvVUlRNGVOb0VuVFpudzZjdzZuL3ppVmcrMDZ5NFBTbk0yb1pYMkd1cFQzOVlENWZ2d1kwOE9tWXZZd1l6UVo2ZE8zUDZVZHBJNTVvV2JOV2l4ZnRvUnQyMzVFcDlOanNXU1FuSnhNUW53ODN0NCtWSzJtNmhHODFMWWRUWnMxVTMrb3c0ZTQ5dmRWM3UzOVRwYW5pazltM3NIQjdsbTFXalV0RVI0ZWZvam5uMitKMmVHT3YvamlTNFNISDZacHMvL2xPYmFyVjYvdzJHTkZOT05jcFZvMTl2MnlwMEJqQU9nYTB1MnVYQlIzaXV3TnVsTW1UMlRLNUlrODM2SWxIMzh5bW9vVkt6RnF6RGdXeko5TFpFUUVaY3FXWldyWXB4UXRxdmJYdFg2aERhZE9uYVJIOTY3b2RIcmF2ZHllaWhVckVaZHR1ZERBZ1I4U05tMnEraVF1VTRhbHkxZGlOQnFaTWpXTXVYTm04ZFhhTlJnTUJvS2JOTldTeEpJa01XM3FaUFI2UFcrKzN0RTFUUHh5TmNXSzNmMFZnQVU5Wjc4Kzd5TUlLblBzb0E4SDM5VStOaDhmbndMdmUvbnlaWHg5ZlRWWngrUEhqK2RJNU5lc1dZdWFOV3RwK2FwQldaaHk0K1BqNk5XekI2VkxsMmJpcENrOFZxU0k5cnVlTzNkT3kzZjNHeENxZWE1NU1lSVdCQWNPSE1oejIydXZ2Nkg5UHlBZ2dJOEc1eXZzNHBGUEdPcXdjQ0tTSktFSDdzc2ROdWpEd1JwdGNFR3dkczBxN0RZN1U2Wk9SeEFFclgzQWFaNmRNQmdNK1BtcFQxaWIxVVp3azZhYTNGaCtpZCtzSVZMV1ZpNUJFUEo4WW1UTnIrVFZMRnFRTWVUSEUzWTMwYkpWYTFxMmFwM2ovWW9WSy9ITHZ2d0ZtaHMxYXB6bmpXc3ltUmo1OFNpWDk5N3AxVHZIZnZVYlBNM1g2emZrZUw5Q3hZck1uRDAzMTgvVzZYVHMyWHZndmhyNmdwenpWdk4xTjhhUW1wcFNvRllwNStxZU80V2Zuei9yY29rV3NodkFyQWdNREN5d1F0YmRSRUJBZ0ZaaHo4VldDZG50Z1NDQVRxZTJlenc0MXlGZmR6c0dieDl2QkVIZytQRmpKQ1Vsb1NnS3BjdVVJVGs1bWZQblZXWDNuMzdjU3RpMEtRRFVxMStmbjNmdTVQcjE2d0RzM0xtRGt5ZC96L2M4ZGV2V1ovdTJiYVNucDJPejJmaGh5MmJxTjhoZldLVnMyU0NpbzZPMW5FRkVsdHpCbll6aG44QnM5c1NOMjV1YkJ6bG5lWjI3U0pFaXBPV3pwdHJUczJBaGIwSDN1MWU0eCtNMDV1S3BDVW8ycjgwWml1b2UxQ1RrSjBqeDJtdXZNM2JNS0g3WXNvWEtWYXBRb1dKRkVoTVNDQXdNWk15NDhYd2FOZzJMeFVMZ1k0RU1HVHBDRFFtclZLVmYvd0VNSGZ3aE5ydU5ja0hsR0R4MFdMNWplS3B1WFZxMmFzMjd2ZFNDd2JQUE5hRnBVelcwM2ZiVGp5eGRzcGlVMUJSa1NXTGYzcjEwNlJyQ1MyM2JNWFQ0Q0VZTUc0S2Z2ejk2dlU0ckh0ekpHTzdYay81UlFtcEtjcDVldGZpQTVpdzFKUmxkSHBYVzRzV0xFeEVSUWZUTkNEeTlmWEtNclZ6NUNyZGNZTzdwNlVXNThnOVdsK2tlajFPWG04ZVdXOTVOVUc0VmQ5MG1qaDQ5U3BGaWJvM01PMFZVNUhYcTNNWkMrTXVYcnhBYkYrZGVtNXNOTnlOdkVCZ1lRTmxjY3JtWHIxd2hOdmIrejluTnlCc0VCQVFRVkRidi9ISlVWQlNSa1pIWTdYYVNrOTJzT05uUnBFbVQ5a0FhS29OdUVwbWlMaFkwN1FOQnZ1dk5RVzRQNHA4OTBXKzNYNnRzMlRKRVIwY2pudHFQQUFBZ0FFbEVRVlJ4TS9LR214cmNNWWNwS2NsSWRudXVSZzBncUd4Wm9xTHUzNXc1eHlSTFVyNUd6Um1TRm5Fazg5M0lGZG5EVHNHWll4TUVRVjExSUlxQ29DaUtoTHBFNGE0Z0lpS0N5TWliUEZiVXpWOTUrOTdhRFVxVUtIN2I3QjZLb3ZEWDVTdkV4Y1VpMldVeU1oNU5qamF6MlJOUnB5TXdJSkN5WlV2ZmNvSC9sU3RYaVk2SlFiSkw5MnpPekdaUGRIcjlMVDAxTndvRVdSQ0Vqa0JxRm84dFJSQ0VWTUFpQ0lKTkVBUzdLSXFLb0NpS0ZURGM3WEJVRUhWNGVYbmo2ZmJjYm9rMGg5Z0hLTGNWaHJyaHhpTUdteUFJcjJjeGJNbEFzaUFJYVVCR1ZzT21CKzY2WWF0VHB3NDNiOTdrWmxRVXlVbUpiZ2JkZk9EdDQ0TkJyNmRVcVpMdUVNUU5OL0tIdGFBN09nM2JYYThSRnkxYTlJNDBNdDF3d3cwM0NtallsR3ovYWhDQmRQZDh1ZUdHRy84Q1pCVFlZN3R5NVlwYkRjUU5OOXg0NktFb1Nub3UzcG1pT0JSZG5KMXJpcUlvK3JKbHk2YTZwOHdOTjl4NDJDSExjbXFXMEZNemNObmJQUVJCUUZRVXhVMTU2NFliYnZ3YlBMYnN6SlpLdHY5cmYrdFJlMEhjY01PTkIzL2p1dlY0ODRIZGJrL0pZc0NVTEtHb2tqVVVsV1VadmFJb0NmZFNxY2dOTjl3b21GRno2L0htRDR2RmtweWJ4K1pxdnpKRDBiaEhiWUpLbFNwRnRXclZjaFdqOFBiMjVyUFBQcnVYVHgxQ1EwTXBVcVFJaFFzWHBuZnYzcG9JaWh1UExyTHE4YnFYSStaNTd5Umw4OWdVY21uMUFOV3d4VDZLazNUbXpCa21UWnAwMzg4N2JOZ3dObTNheExwMTY5aTBhUk03ZCs2a1g3OSs3cXYyRVlkYmovZldzRnF0U1ZrOHRWenlhNExLclNpQUtFbFN6S000U2VYS2xXUGl4SW1jT1hQbXZwMHpOVFdWZWZQbUVSWVdSbkJ3TU1IQndTeGV2SmlWSzFjU0V4UGp2bklmWWR5cEh1K1owMzh3TUxUL2ZYQUVUaE0yYlFyYkhVcGxUbXpjK0EwaFhkNGlwR3NubGk5YnFyMmZuOER5aVJQSDZmbDJON3FGZEdiMEp5TUxyTTJhbnA2V2pHdFRicmJxcU5OZkE5Rm1zOTE4RkMrazNyMTdVNzE2ZGQ1NTU1MThHWFBYcjEvUGswOCtpZGxzcG5yMTZpeGR1dFJsKzg4Ly8weWRPblV3bTgzVXExZVBzTEF3RjNIWXdNQkFQdnhRWmRNOWR1d1k2ZW5wQkFjSGE5dWZmZlpaQUE0ZVBPaSt1eDloM0trZWIrVXFWUmsxWnV3OUhkdjhlWE5adG5RSmx5NWVkREZDVjY5ZVljUDY5U3hZdEpSbHkxZHk0c1F4amh3SmR4eVR1OEN5M1c1bjBvUnhqUHhrRkordC9KSlNwY3RvbWhtM1FsSmlVbDZoYUk0VkNQcU1qSXlvVzZuTi9CZWgwK2xZc21RSkRSbzBZTkdpUmJ6NzdyczU5dG03ZHkrZE9uVmk5dXpadEdyVmlxTkhqOUs3ZDI5ME9oM2R1M2ZuNHNXTHRHblRocjU5KzdKbXpScCsrZVVYK3Zmdjd5THdNV2pRSUdyWHJnM0E5ZXZYTVJxTkJBUUVhTnNOQmdNQkFRRmN1M2JOZlhlN2tRT3hzYkZNbkRDT21PZ29CRkhrdmZmNjBPRHBoaTRrcmI2K2ZxeFkrVVZtdW1QSVI5eTRvVEk0SnlRazRPbmx4WnExNndCVkZXck9yQmtrSmlYaTcrZlA0S0hETkMwTGdIVmZmOFdHRGV1MS9RRjZ2dE1MbzlHb01WVTc4ZnVKRXp4VnR5NmVucDdZN1hiOGZQMDRjZnc0OWVyVjU4U0o0M3p3d1NEQVZXQTU2dVpOUE14bWdvTEtBZUR2NzgvUE8zY1VhQzV1UnQxTUxvQlJVd0QwRVJFUkVYbkp6Ly9YOGRSVFR4RWFHc3FRSVVObzI3YXRwbjNveElRSkUralJvd2U5ZTZ0OC9tWExsdVhTcFV0TW5UcVY3dDI3czNEaFFxcFVxY0swYWRQVXAyZmx5cHc4ZVpMVnExZTc1TlNjU0V0THc4UERJOGM0VENaVER2azBOOXdBK0dydGFtclVxRUZJdDdlNWRPa1M4K2ZOb2NIVERTbFZxbFNlbXJ5VHBxalhZMkppQXIzZjZhSHBiMWl0VmlhT0g4djRpWk1wWHJ3NFAvMjRsUVh6NXpGNlRPYnhOV3ZWeXNFOG5KZndrRk5nT1RvNm1ra1R4aUhKRWo2T1BHRldnZVVkTzdacEFzdEpTVW1ZVENhc1ZpdHo1OHppeG8wYk9SUzI4ZzY3VHp2YlBlUzhQRFZuTUNyV3JGa3ppdHRZZy9WZnc5aXhZd2tJQ0tCdjM3NDV0cDA2ZFlwbHk1Ymg3ZTJ0dlVhT0hNbUZDeGVRSkluang0OVR2NzZyUUUyalJvM3lQSmZaYk02MUVtdXhXQjZJakpzYkR6L3ExVy9BemgzYldmblpDaXdaR1FVV1ZKRmxtVEdqUjlIbXhiYlVyOThBVUtVaHIxMzdtK0ZEQjlNOXBBdXJWMytwcWJVNVVhbFNaVjdwMExIQTR6dDkrZzlHamhqS083M2ZwV2xUVjJXM1NSUEdjZm55WDRSTm4rbWlWSitZbU1qQUR3WlFyVnAxK3ZVZlVOQlRaVXdZUHpZdG4xQlVNM1NDb0Rib0Fsd0ZLajJLRjQ2bnB5Y0xGeTZrWmN1V2JOem9xdHhqdDlzWk5HZ1FiNy85ZG83alJGRkVyOWZuRUFUT0wxOVhxbFFwTWpJeVNFaEl3TmZYRjFCVnEyTmpZeWxaMGsybjdrWXVocTFlZmViT1cwajRrWEErWDdrQ285SEltSEVUYm5uY3NxV0w4ZkR3b0hPWHJ0cDdOcHVOWXNXS3VZU3Qvd1NGQ3hjbUl5T0RzT2t6S1ZTb0VDZE9IS2V3NDdyT1MyQzVVS0ZDSkNVbU1tSGlGQjUvL0hIT252MVR1eGZ5ZzZJb2YyY3pZSElXenkzbi9ha2VvMXg1bEMrZUZpMWEwTGx6Wi9yMjdhdUpDQU5VcTFhTmt5ZFBVcUZDQmUxMTRNQUJaczJhaFNBSVBQbmtreHc1Y3NUbHM3TC9uUlcxYTlmR2JEYXpkMittNnZtK2Zmc1FSWkdubjM3YWZSZTdrUU9USm80bi9FZzR6WnMvejdEaEl6bDA2R0NPaDJsMjdOdTNsejI3ZHpOOHhNY3V6YXNWS2xRZ0tTbUpYL2JzMXZKdDMyLzZ6dVhZOCtmUHNYSGpOd1VhMjVNMWFtQzFXakdaVEVpU3hNRUQrNmxaUzlVeXpVdGd1Vmp4NGhUMjljWGtDRy8zN2QyckhaTWZKRW02bnMybzVlR3RxZjBlZWtDUlpmbHlYb28randwbXpKaEIxYXBWWFhKZFE0WU1vVldyVm93ZVBacE9uVHB4K3ZScCt2ZnZ6OENCQXdIbzI3Y3ZzMmZQWnVqUW9iejk5dHNjT25TSUJRc1d1SVNWa3laTm9uYnQyclJxMVFvdkx5OTY5T2hCMzc1OThmSHh3V2cwMHJ0M2I3cDM3MzdmRk0vZCtIZWhjK2V1aElWTlllM3FWY2l5ek1CQkh5R0tZcjRLYjNObnp5UWpJNE0rNy9YU1BtZnUvRVg0K1Bnd2FjbzBabjQ2blVVTEYrRHA2Y25BYkRxaXg0NGVaY09HOWJSdjMrR1dZeXRiTm9qMjdUdndicStlS0NnOCsyeXdwaDJjbDhDeVhxOW4rSWlQR1RkdU5EYXJqZEtsU3pONDZLM0ZsMjAyVzBRdUhwdWlxdSs1ZW0yQ2dDSUlndUNka1pIUnoyZzBUbnhVTHBaU3BVb1JHaHFxdFdFNDhjVVhYOUMxYTFkV3JGaEJ0MjdkQUZpMWFoVVRKMDdrd29VTEZDdFdqSjQ5ZXpKeTVFanRTZmpUVHo4eGNPQkFMbHk0UU8zYXRXblFvQUhyMTYvWGRFVURBd1BwMXEwYllXRmhXajR0TkRTVU5XdldJSW9pSFR0MlpQYnMyYmtXRmR4NGRMQm56eDRlcjFqRlBSRjVJQ1ltNXRQYU5aLzRCVmRhOEJRbkxUZ3FiYmdraXFLczArbFZ3NWFVbE5URzI5dDdyWHY2Ymc4blQ1NGtMUzJOQmcwYWFPK05IajJhSDM3NGdmRHc4UHMyRGxtV3VYemxLbkZ4Y1VpU1JFYjZvN2xFeThOc1JxZlQ0ZThYUUZCUUdVUlJ6QzluNDVpeldPejJlemRuSG1ZemVyMmVBUDhBZ29MS3VnM2JIZUxzbjM4T2EvNi9KcWZKS2VTU0RqaWs5MFJKRkVWWnI5Y3Bla0NKajQrLytDajBza21TZE52eWR2bmRHQmN1WEtCTGx5NnNXcldLV3JWcWNmTGtTZWJObThmdzRjUEpqUGNManNqSXlOdW1VN2RZckp3NGNRS2RYbzlQb2NKdStiM1VGT0lUNG9uNUxacGFOV3RoTkJweS9lMSsvZlUzUkowT2I1OTdQMmVwcVNuRXhzVVJIUk5OdmJwMTg5MzN1cnVmTVZjY09uZ2dsc3lDZ1ZZNGNEQjdPRUpSQlFVRldaWVJCRUh3Qkl6L1orKzc0NXVvLy8rZmQ1ZGNkdmVtcFlXMkRGR2dTQUUvRkJGL2JCemdGMFVGUkN4WWtDRWdJaFFVRkdRclFnc2lVNUNsSUdKWkFySmt5aXBZaG15UTBxYnBidE9SY1hlL1AyNDBTZE5Tb0dYbTlYaEVhZFpkM25mM3ZOZDhQbG1XMVFOUXVKYnc3bXpxMUtsWXZIZ3gwdExTRUJ3Y2pMaTRPSXdlUGJwU2I2RTY3V0dKL3o3cXhvc1RleUVzdEx5WGRPMzZEZVRtNWo0VXdXUWZiMitFT3BIaGMzbHNsZCsvUTJvRjlBRXZZMkIwQ0VWTEFKZ0ZvV1NHSkVsT0pwTnhKTXFTY1JkYzYzZjNGaDhmait2WHI4TmtNdUhxMWFzWU0yYk1Bd00xQU1qT3luWU5UenN4cmM0TldWbk8rUjF5Y25JZXlwcHBkVzdJeW5iTkJOOURxdVVpN0ZzOGJGczk3SXNISW9PdTZKMnpMSHZldFlTUGwzSGN2UTlQUCttbTBXakJza3lGS1ltSHNXWWFqUmFNbFhFZG5MczBpOFZ5RmVYNzF4ejcySGgyRHdIY1pBUkJjQnpIY1ZhcjlYeEZveE11ZXpTTklJQ1NFaGVYVzBWV1VnSFAzY01zcnR6cjhTckl6OGVONjFkUlZHU3NGRGpENm9URHpkMzlvZjIrbXRoUG83SHdwaE5BSytleEVVU1o3b0ZNZktHa3BPU2NDOWdxODQ1NDJtYUR3UUFydzhCWVdEMjB6VnF0RGpLNURINit2Z2dNREt6Mi9kNjFjd2VXTDFzS2d5RURRVUZCV0xscUxTNWZ2b1RZL3Yyazk0eU5uNEN1WGJ1NUR2SWpiTmV2WFVGeGNlWDBQa1ZGUnR5NGZoV05telo3b3Ziejl1MjAydzZBeGdCZ2hhSkJ1WWNJYkFEQVhicDA2VngwZExUckRLb0ExSktUa3dHQ2hFYXI0Mm1iQTZydis0dUtqRWpYWnlBOVBSM05tbFhmU1ptV2xvWVowNmZpeThsZkl6cTZCUW9LZUdxY2lJaEk3TnE5RHdBd01QYjlHbHUzWlV1WDRQWHVQZXpZVE1UOW1qdm5HNlNrL0FPYXB0RytReWNNL21pSU5IeWRtcHFLaExsemtISTJCUXFGQWgwN2RzS0hjWU5SazAza2Q5cm1pekV2UUM2WGd5QkloSVdGb1gvc0FMUnVIZlBBenNFN2dZWHR1ZlF3clNiMmMvKyt2UmtDYURFaXFObDdiYnlYQmx1VktoSGxXclpzbVFYZ3Nndkd5cHRlcndjSUVuNytnVFdTbTlGb3RQRHpEd1JBSUQwOXZkcSs5K0svRitEajQ0UFdyV05BMDdURUUwY1FCQlFLQlJRS0JXcFM3K0xINVV1UmsxTStnVDlwNGdUVUNnN0diNzl2d2FMRnkzRDB5R0VrSlcwQ3dQZmtqUjB6R3ZYcU44Q20zN2NnSVdFQjl1L2JpOTgyL2xwaisxblZiU1l1V0lqTlc3ZWpmK3dBeko0NUhSdC8zZUM2T0dyZXFiZ3ljOGEwa3NyQ1VJSVFRbEhZaDZJUTNzQ3lMSHVLSk1sSTEzTGFtOEdRQ1kxV1YrUGIwZWpjWURBWTdqc2tQWDA2R1pPK21BQ3oyWXppNG1KMGY0MFBNM3U4MFJQOTN1OWZwZTg0ZXVRd0VoUG1RYTlQUjJob0dFWjk4aWthUGZ1czdWMFV5NVl0UWFiQkFQK0FBTVRGRFVhckYvNEhBQmcyOUNQY0VoaFRSMzQ4SERJWmhlRGdFQ1F1V0FpV1pkRzJiVHQwZStVVktCUUsrUG43bzNsME5DNWR2QWlBcjFoNmVubWhkNTgrb0drYXdTRWhhQjNUQnYvK1czTkYrN3ZacGtxbFF1dldNWkRIVDhERUx5YWdVK2N1angwekM4TXdPSHIwQ0xZay9ZNGhRNGNqT0NRRUFEOGtQL2U3YjVIeXp4bVFKSVhZZ1I4aUpvWW5RczNNek1TMHFWT1FuWjBGbmM0Tll6NGJpOXExUXl2ZERrRVFpSXFLZ28rUEQxaVd4Zm56NTVHV2xsYmwvVnp4NDNMOHNYM2JPV2RoS0FDVzR6aTJMTDlHY0NBSXZrRzlvRUFxSGdBQVo3RllraFVLUlM4WGxObWJsYkUra0NxYVJxT0ZzU0R2dnIrbmFkTW9iRXJhaWgxL2JNZktGVDlpOWRxZjcrcnpWNjljd2VjVDRqSHBxeWxvM2p3YWUvZnN4cWlSdy9IVHFyWHc4L2ZIelpzM01HWHlsNWc3Yno0YU5HeUlUYjl0eFBqeDQ3QjV5M2FvMVdva0pDNlF3cmM1YytjaE1yS01PSVlrU2ZUdTA3Y3NKM1A5R2c0Zk9vU1BodkMwVVQ0K1B0TG5SVy9xZEhJeVh1L2VvOGJXL1Y2MkdkMmlKY3dXQ3k1ZHZJaW9aczBleWZPV1pWbXA5Y2oyM3g4UEg0cGF0V3Jod29YellHd3F4OXUzYlVWcGFTbFcvTFFHT1RrNUdQUmhMQm8zYmdJM056ZUpFZmVWVjEvRGlSUEhNV1BhVk16Ly9vZEt0MStuVGgxUUZJV2RPM2RDb1ZEZzVaZGZSbVptSml3V2k5Tjl0UDA3SmVVZjdOKzNGN05tZjN2bGhWYlJqbUdvYlk0TklvQVJBamhydFZxKzNVTk13aFVVRkp4eXdWaDVxNjVDUVpXMlpUUSs5Tis3WlVzUzJyN1VEcTFieDBDaFVLQnpsNjVvMExBaGRncDg5OTdlUGxpMmZDV2VhZFFJSkVuaTFkZGVoOFZzeHExYi8xVjVHK2ZPbmtYSDl1M1FyMjl2TkdqWUVDKzJmY25wK3haK1B4OHF0UnBkdTczeXdINS9WYlpKRUFTOFBMMWdMREkra3VmczhlUEhNSDdjWjdCWUxNakp5Y0hBMlA3SXllRUY2YjZkTXhmajRpZVV1MW1mT1hNYWJkcThLTnlBQ01qbE5DNWR1aWk5OXVLTFBLVzlMU1B1blc0WW9vZkdjZnhFZ0tlbnA5MTdsaTVaSkZHRHA2VDhnNCtIOHplNEs1Y3ZvV2xVRkc3eHJyK3R0OFk0Q1VmQmNad0VjSEk1YmRlZ3k3MzExbHVud0hmMnVxd1NPM1BtTkRwMWVCbDVlYm1TaDlPdjc3dFBWRTR4TU5DK0s3OTI3VERvOVh6K1Q2dlY0dVRKRTRqN01CYTkzK21GOTkvckk5MXRxMnFObm4wV08vL2NpNS9YYjBSNmVycWRFSWhvSzFmOGlMLy9Qb3FwVTZkWDJ5amNuYXlxMitRNERqbTVPZEErb2oyRXpadEh3OHZiRzE5TytnS2ZqUG9ZUGQ3NFA0bEI1azZNdUdmUHB1Q3pNYU5CSzJqazUrZExyNG1NdUlrSmN5VkczTXFNcG1rd0RBTnZiMi9FeE1TQVpWazd3a2tBZU9mZFB0aTdkdzhTNW4ySHlWOU93dEJodkRCTjNmQUluRHh4M0RoMHlFY1pEaUdvSGJBSllGWk8xSVVVa3NjY0FIYi8vdjBzeDNGSFhkQjFaeXNwS2NHYTFhdWZ5Ti9tNys4UHZVTVI0L2J0VklrYi84QmYrN0Y2MVUvNC9QTkpXTDMyNXdwRFhZSWd5b0dkcWJRVW0zN2JDRk1wVDlvY0dCaUk5dTA3NE15WjAzYnYyN0QrRit6YXVRTnp2a3Q0WUgxWmQ3UE40OGVQZ1piTFVhOSsvWWR5ZkRwMjdDZzlIRm1jeGJXUGl4dU1VeWRQUUVFcnF1enhidDZjaE9YTGxtTGE5RmtJZGNpaFZjU0llNmR3dEdIRGhqaDA2SkJVbGJjMXJWYUxRWU0rd3ZwZmZrYTdsMTlHL2ZyOFdGbVRKazNSdmtPbmt3WkRSbVdneHBiTmlZckJLSy96UU1LZU41eTFXcTB1WUt2aUFkdTdaN2ZrM3R2YXZyMTc4T0hBRDlDdjc3dVlPV09hbEZOSVMwdkRvQThIb1BjN3ZUQnI1blFwcWY5UThvWldxMFNxeWJFc3JGYXJCRUxkWG5rVisvZnZ4YkZqZjhOcXRXTFBudDA0ZHpZRkhUdDFBc0FMakJBRVFGSVU4dlB6cEZDQ1krM0pUQU9EZ25EMHlCRllMQlprR2d6OFhWeWh3RThyVjJEZHVqV3dXQ3pJeTh2RmdRTi9vWEhqeG1XaDhPWWtiUHB0STc2YmwvakFlT3FxdWsyVHlZUy9qeDdCOUdsZkkyN1FSdytsY0pDUmtZR2RPM2RLRDJkTU1rYWpFWjkrT2dwOSt2WkRRRUFBWmt5ZldpbTdzeGhpZW5oNFlOYnNiK0hsNVFXVHlRUjNBZUJGUnR4aHcwZEFMcGRMakxpVm1kbHNoc2xrd3NHREIyRXltVUJSVkRsdGo2dFhyMkw2dEsveDFlU3ZjZlRJWVd6ZHVrVjY3ZFZYWHp2ckpBeGxiSE5zb21OR0VJU1VxM056ZDRkTUtJOXlvbHRYV0ZoNHpFVjZlR2RUcXpYbzJLa0xWcTlhaVM1ZHlnRHErdlZyMkxCaFBSSVNGa0NoVkdMbWpHbll0blVMWHUvZUEzUG5mSVAySFRxaTU1dHY0ZGpmUjNIbzRJR0hzdStPRGJvenBrL0ZqT2xUMGFGakozeit4U1JFUnRiRHhDOG40L3NGaWRDbnA2TjJhQ2htenY1Vzh0aTZkTzJHczJkVEVOdi9QVkNVREs5Mzc0SEl5SHJJeWJVSCtWR2pSbVAyckpsWXZtd0phdGV1alNYTFZvQ21hY3lZT1J1SkNYUHg4N3Exa012bGFQdFNPL1I3bjZkZlp4Z0dzMmJ5WWVBN3ZleTU5MWV1V29PQWdPcHZZcTdxTm9jTitRZ0V3Uk1zZmpKNnpBUHRZN3RidTNyMUN0cTJiWWQzZS9lQjFXckYzTy9tSUNjbnAxeFBvYTAxYlJxRmMrZk9naVJKNU9YbDR1clZxNmduRkg0cVlzU3R6REl6TSszQ1h3OFBqM0xDTFNkUEhNZlljZVB4ZlBQbWVLNXhFeXhidWhoZHUzWURRUkM0ZHYzYXRZcEFEUTVUQnlSSlFTYWpZRFlERkVtVlRSNklIdHRISDMxMGROMjZkZmtBM0Yzd1ZibTk4WDg5MGE5dmI0azFGQUQrL3Zzb1VtLzloMEZ4QTZXN2xsWm9GVWxKK1FjVEJVV2c4SWlhNzZycDFMa0xPblh1VXU3NXlNaDYrT3RnNVRxbXJWdkhWSGpoS2hRS1RQaDhvdDF6QXorTUsvZStGaTFiNFpjTkc4czlIeEVaaWUvbUpUcjlib3Fpc1AvQTRRZDZIS3V5elR1dDEvMmFUbGU5N1VSTm1qUkZreVk4NWJaTUpzTW5Ea3k1enF4TDEyNjRkT2tTK3ZmanE5YkRQaDRoaGVRVk1lSldaamR1M0lDSGh3ZmF0MjhQQURoOStuUzVnc05idmQ2Vy91M3Q3WTFQeDR5VlVuNXhBMk5UbllJYVFiRGdPSllUakNSSmppUUpqaUJJYUxWYUxqYzNoL2ZZYkhPaXYvenlpM1hObWpVSFNKSjh4UVZkRlJ0QkVGQ3BWSGlqWjArc1dsVW1qbUV4VzlEMnBYYVM1Smxqd3JrbUcySmQ5dmdhUlZFb0tqSSswT0Y4eDl4b1pRRG80K05UWllVczIvTTlPVG41bnZiTllySDhyZGZyYmNOUXF3aHVCQTl1bkRSbFFKSWdDQklrU1lCV0tPRHU3c0VYRHh4bXJsaUx4WExRZGFyZEdkZ0FvRWYzTjNBNzlaYjBmSFNMRnRpemU3ZEVEYjU3OTU5SVNmbEhjdWUzYjl2S2g0TkNHZjErVGFWU3V3N0dYYTdOdzF5emlyYnQ1K2VIWW1OaHBhbVBxcVpJSG5hS3BqcmVsNXViKzA4bFlhaERLQ3FNVXBFa1NJSUVTWkpTVlJSQ0lvNEZ3R1ZrWkxpQXJZcW1VQ3JScDI5WnZxcEJnNFlZTnZ4ampCMHpHbS8zNm9rL2QrNUFjSEF3QUdENGlGSFl1ZU1QOUg2bkY3WnQyd3F5R21ZZnhUdTl5K3l0eUZoWTRXd3ArWkRXck1oWUNLcUNGcExBd0VCd0hJdk1qSFNuKzFhbmJzUWR3VUN0MXFCTzNZaUh1dTdWdForblRwNjQ2Z1RVeEVlWm1BdEI4SVVza2lnRE5aSUVvVktwQ0t2VlNyQXNTM0ljUjNFY0p3ZWdZRmwySDRCblhaY0ljUExVS2ZnSDNML3U1NFVMNTFHclZqRGMzTnl3Wjg5dWJOKzJGYk5tZjJ2M25nejliVHgvRjUzc04yN2NSSGFPaTBIWDBUTDBhZkR4OFVabzdmSnN0UStMZFpobjlmVkdtQk1HWGRFTUJnUDBlajJzVmlzS0gyQmorS05rSE1lZGI5ZXUzU1R3SWkyMjRpMUZBSW9KZ2hBMERnaUdJQWlXSkVtT29palFOTTNSTkEyRlFnRVpINTlLZVI4cEhMVmFyWHRrTXBrTDJBRElxaW4vVVZwU2lqR2pSL0hLNzFvdFBoczdydHdkWFM2WDM5VjNob2JXUm1hbUFSbjZOR2gxYmk3TkEyTWhqTVpDTUZhclUxQURnTERRVUJnTUQyN054SDFpR2FaU1VCTkRVajgvdjZmNkdCWVdGdjROSjdrMUFJd1lWWXF0SGhSRlFTNlhnNlpwS0pWS0tKVktxRlFxRUZxdGxyQllMQVRETUFUTHNoVEhjUlFBT2lzcjYyVXZMNitOTGxnRDB0UFRrYTdQRUJnNGFzNE1HZWtJRFBDLzZ5RjRqdU53L2NaTjVPUmtnN0d5S0MxOU9za25WU28xU0lxQ2o3Y1BRa05EN2xpb3VYbnpQMlJtWllHeE1qVzJaaXFWR3BSTWRrZFB6V1ZsZHVMRWlVK2pvNk92QWloR21jYUJrU0NJSXNHTE13djZCZ3hGVVp4Y0x1Y1VDZ1dVU2lXblZDcWhWcXRCdUxtNUVXYXpXUVEyMjNCVXliSnNNb0JhcnFVR1RwMUtCa0VRMEdoMVVGZnpIYjY0eUFoallRRUFybHI1MkZ6bXNzY3dERTBqU1hLa1RSaHFDMndsQUVvSmdyRFJFS1U0bXFZbFlGT3BWRkNyMVh3b1NwSWt4ekNNYlNqS0FXQVlodGxCVWRRSHJ1VUdtaldMUW5wNk9neUdUQlFXNUZYYnNMcE9wNE5NSmtOUVVDQUNBZ0pjQysyeXA5cEtTa3IrZ24wMTFDNFVkY0Fvb1llTnh6Q1NKRUZSRkNpS0tzdXhpVzBmd2xBcEM0QXRMQ3o4MDhQRHd3VnNnZ1VHQnRZSWZiZkxYT1l5M3E1Y3VYTEdBZFNzQUt3RVFkaTFlaEFPZld3aW9Jbi9Kc1h5cURoblpkUFR4bnA1ZWYwSjRMWnJ1VjNtTXBjOWlEQzBTWk1tMXdYd3NqbzhHRnRRQXdCYjdMSUZONHFpSUdOWmx1TTRyb3h0MHNaakE4QmV1M1p0TzBWUkExekw3aktYdWF5R3c5QjlqcDZhQTZpSnpMbWNHRjBLUEc4Y3d6QmdHQVpXcXhVV2l3VXloVUloa3JSSjAvOEMyTEVBR0hkMzkrM2UzdDR1WUhPWnkxeFdvM2I4K1BIa1NzSlFpZEZEOU5Ca01obmtjam1Fd2dIRXdvRldxd1ZwRzV2YWNMTko0YWl2cis5QnVGVGlYZVl5bDlWc0dIcXhSWXNXL3ptQW1nVVZNSG80NXRha0VGUW00eDgyRlFXQ0pFbU9aVmxDaUdGRnNRVEdiRFp2cG1tNm9XdjVYZWF5R3IyNG9kZnJrWkZoQU1Nd01CcWZuc21Ed3NMQ2ZiQnZ5cFVlSE1lSmpia2l3U1JZbHVVc0ZndHNkQS9BY1p3VWpzcHNQVGJCYStPSU1vVVhGZ0NUbHBhMkxTd3NiSXpyMUhPWnkyb08xSktUazhHQmtLWWgvSitpMzc5enh4OW5uSGhyVnZEVEJuYkVraVJKY3BSTUJscE9RNkdnb1ZBcW9WS3FvRktyb0ZGcm9OUHB5a0pSVzNCekRFZnIxcTE3bm1YWm5VL2FZaVltSmtLcFZEN1FiVnF0Vm93WU1RSitmbjV3ZDNkSFhGd2Npb3VMWFZmMlUyNTZ2UjRjQ1BnSEJEMTFZM0ZXcTNWdjdBZnZaOXNBbThYQmF5c2Zob29ENzdaaEtDV0RUQzZIWEM0SEtaUEpSRkRqYkR3MnpvYnRnd1hBRkJjWEo3bE92L3UzY2VQR0lTa3BDZXZYcjBkU1VoSjI3OTZOWWNPR3VSYm1LVGVESVJOYW5kdFQrZHZUMDlNT09RbEJMYWk0ZjAxb3hpVTVpaFNBVGNibjErUXlHZVEwWFJhS09oWVJDSUt3YS8xSVNFallQRzdjdU04QWhMaE93M3V6b3FJaXpKOC9INnRXclVMYnRyeVUyYUpGaTlDeFkwZk1tREZEVW1wMzJkTm5ETVBjazZkMjRmdzVMRjcwQTc3OWJsNk43dCtGQytleGRjdG1OR25TRkIwNmRwS2UvKzIzWDdGcDQ2OEFRYUJ0MjNiNElKWnZvS2hNWVBuTW1kTkltUHNkckl3VllhRmhxZGV1WDcvZzRLMUpZYWlJUDQ0TnVTUkZnaVFkdkRXaFNrclRkSm5IWmh1S2l1R29qZGZHakI4L3ZzUmlzZno2dEoxd2E5ZXVSWk1tVGFCU3FWQzNibDNNbTJkL0F1M1pzd2ZObWpXRFNxVkNkSFEwWnMrZWJRZFFQWHYyUlBQbXpRRUF5Y25KS0NrcGtVQU5BTnEwNFpXMmp4dzU0cnE2bjJJckxDeTRwOC9WYjlBUUU3Lzhxa2IzYmNIOFJDeGRzaGpYcmw1RlVWR1I5UHgvLzkzRXhnMGI4UDBQUzdCMDJRcWNPWk9NNDhlUENaL2hCWlpYckZ5TjkvdC9nQm5UcGtxcG1HbGZUOGFFTHliaXh4V3I0T1BydDJQdm50MFdaOTRhUU5oWFJFVndJMGxRdHVOVEFxako1SExJUmRvaXNUd3F2SW1qS0lwZ0dJWWpTUklNdzBoNU5nRFdXN2R1YmFwYnQrNklwK1ZrKyttbm54QWJHNHR2dnZrR25UdDN4bDkvL1lYaHc0ZERyVlpqd0lBQnVIcjFLcnAxNjRhaFE0ZGk3ZHExMHV1MnlrVTllL1pFYmk2dlAzcjc5bTNRTkcwbnFDR1h5K0h0N1kzVTFGVFgxZTJ5Y3BhZG5ZMnBYMDlHVnFZQkJFbGk4T0FoYU5ucUJhU21wbUxVaU9Hd1dNenc4UERFOGhWbDlQVGpQdnNVYVduOHdGQmVYaDdVR2czV3Jsc1BnRmVGU3BnN0Iva0YrZkR5OU1LWXNlTWtrUjRBV1AvTHo5aTRjWVAwZmdBWU1QQkQwRFNOMmJObTJPM2JQMmZPNFBubXphRldxMkcxV3VIcDRZa3pwMDhqT3JvRnpwdzVqWkVqUHdGZ0w3QnN5TWlBVXFWQ1dGZ2QwYk03VllHM1ppVUlNYjlHY0FEQkVRQkhrQ1JIa1NSSWt1S2tTRk1NUXdWdlRhRlFsZ0diVGE3Tk5oeTFteDJOaUlpNFlMVmFONUlrK2NiVGNGSjk4ODAzK09DREQ2UWNXR1JrSkc3Y3VJSEpreWRqd0lBQldMaHdJUm8wYUlCWnMyYnhkOC82OVpHU2tvSTFhOVpJMy9IMjIyVmlGY1hGeFU2TEZRcUZvcHdzbWN0Y0JnQS9yMXVEeG8wYm85LzdIK0RhdFd0WU1EOEJMVnU5Z09EZ1lQeXlZU011WDc2RXFWTW0yMzFtMmd6K2ZNelB6MFBjd0ZoSmY4TnNObVBxbEs4d1plcDBCQVlHWXNjZjIvSDlndm1ZOVBqTzdyUUFBQ0FBU1VSQlZHWFo1NXMwYlZxT2VmaE9Bc3VabVptWTl2VmtNQ3dEblpBbnRCVlkvdlBQblpMQWNrRkJBUlFLQmN4bU0rWis5KzJXWlVzWFp6bDRhcmJnSm9TaDRQaUhXRFN3U1ovSnlydzFXbWpXVmFtVUlPVnlPUnk4TmpnT3hndTlJZ3dBSmk4djc2a0pSOCtmUDQ4WFhuakI3cm1ZbUJqODk5OS9NQnFOT0gzNmREbXgydGF0VzFmNGZTcVZxcHhLRDhCclZUNE1mVXFYUGZvVzNhSWxkdis1Q3l0K1hBNVRhV21WQlZWWWxzV1hreWFpMnl1dm9VV0xsZ0I0YWNqVTFGdUlIenNHL2Z2MXhabzFxMkRJeUxEN1hMMTY5ZkhHLy9XOGkydmtIQ2FNSDR1QmNZUFFydDMvc3dmWUNnU1c4L1B6TVdya3gvQnc5empreEZ1ekxScEliQjYydVRXS3NnbERaUlJrTXJtTnQ2YUFTcVdHVEFRMnNXdFhERWNwaXVJRUhVSGIyVkhHeDhkbkQ4TXdod2lDYVAya24xUXFsY3JwQ1NQK1h5YVRsVk02cjB5VU5qZzRHS1dscGNqTHk0T0hod2NBd0dLeElEczdHN1ZxdVdqdlhPWUUyS0piSUhIK1FodzdmZ3dyVnl3SFRkUDRjdkxYZC96YzBpV0xvRlFxMGFmdmU5SnpGb3NGQVFFQmRtSHIvWmk3dXp0S1Mwc3grNXZ2NE9ibWhqTm5Uc05kT0s5RmdlV09uVHBMM3FKV3E0V2JteHNLOHZNeGVjcTBveSsvMU9aNkpkNmEyTHZHbG5WcENHRW9qMUdTUXlhWHlVREw1YUFWQ2lpVktxZzFhcEEwVFVNdTlINVVFSkxhRlJFQVdJdUtpbjUrR2s2cWhnMGJsa3ZxSHo1OEdJR0JnWEJ6YzhOenp6Mkg0OGVQMjczdStMZXRSVVZGUWFWUzRjQ0JNcUhrZ3djUGdpUkp0R3JWeW5VVnU2eWNUWnM2QmNlT0gwUDc5aDB3TG40Q2poNDlVdTVtNm1nSER4N0EvbjM3RUQvK2N6c1c0WWlJQ0JRVUZPQ3YvZnVrZk52bXBOL3RQbnY1OGlYODlsdlZnckxuR2plRzJXeUdRcUVBd3pBNGN2Z1FtalRsdFV3ckVsZ09DQXlFdTRjSDhuSnpkMWZrclFHRUhac0hRTmg0YkdWNU5jck9XMU5BcVZCQ3JWWkJxOUZDSmdKYlJVVUVtN1lQYVJLaGZmdjJ2eDQ1Y3VSRGdpQWVlMDBFbG1YeHh4OS9sSHUrYmR1MmlJK1BSOCtlUGZIc3M4K2ljK2ZPT0hqd0lPYk1tWU9KRTNteDRLRkRoMkxldkhrWU8zWXNQdmpnQXh3OWVoVGZmLys5WFZpNWJ0MDY1T2JtWXZEZ3dkQm9OSWlOamNYUW9VT2gwK2xBMHpUaTR1TFF2MzkvU1RIYlpTNnp0VDU5M3NQczJUT3diczFxc0N5TFVaOThDcElrN1lvSCtmbjVlS3ZuRzJqMi9QTVlPMjQ4RXVkOWg5TFNVZ3daL0tIMFBZa0xmb0JPcDhPMEdiUHczYmZmNEllRjMwT3RWbU9VZzQ1bzhxbFQyTGh4QTNyMCtMODc3bHRvYUJoNjlQZy9EUHB3QURod2FOT21yU1FlWHBIQXNrd213N2o0Q2VkZmU2WHIyUXE4TlF0QmlLQW1GQTBJOE40YVJZSWlLVTRtVlVMbFV0OGFyYUNoVkNtaEZpWVBpSjQ5ZXlJL1B4K0ZoWVVvS2lwQ2NYRXhTa3BLWURLWkNKUEpCQnM5QkpMak9Ca0FPUUJsVVZIUkFKVks5ZlhqZk5Ja0ppWlcyQng3L2ZwMWhJV0ZZZG15WlpneFl3WnUzTGlCc0xBd0RCOCtIRU9HREpIZXQyUEhEb3dhTlFwWHJseEJWRlFVV3Jac2lRMGJOa2k2b2oxNzlzU05HemR3NHNRSktaODJZc1FJckYyN0ZpUkpvbWZQbnBnM2I5NERuNEJ3MmFObCsvZnZSM2hrZzZmaXR4b01obStmajJwOEJEejl0NmhyWUFSUEJWNUNFRVFwRDNDRWxWZWhvamlaVENZcVVIRzJUQjRhclJZNm5RNmVucDd3OGZGRlVGQVF3c0xDUVBUdTNSdDVlWGtvS0NoQVVWRVJpb3FLVUZKU2d0TFNVcGhNSnNKc05zTnF0WklzeXhJMmVnajA0c1dMdldKalkvOEFFUDYwbm93cEtTa29MaTVHeTVZdHBlY21UWnFFYmR1MjRkaXhZdy9VNjd4eDh6L2s1T1NBWVJpVWxqeWRJMXBLbFFvVVJjSEwweHRoWWJVbDhsUm54bkdjc0diWnNGcHJiczJVS2hWa01obTh2YndSRmhiNjFBTWJ4M0hYUGhzemV1TGFOYXVMQUpTZ1ROZkFDRjVhcndTQVdRQTJScERXWTRWd2sxTW9GZnhjcUVvRnRVWURuVllMTjNkM2VIbDV3OS9mRDhIQklRaVBpSUJNcFZLaHBLUUVORTNEYkRaRExwZkRZckU0VmtodFExSUdBRE53NE1DQzNyMTcvNlJVS2ljOWpnczhiTmd3SkNZbTNzOEJ3cFVyVjlDM2IxK3NYcjBhVFpzMlJVcEtDdWJQbjQvNGVON3R2cE5La3FQcDlYcjQrOS9kNkxQSlpNYVpNMmRBeVdUUXVibTc1UGVLak1qTnkwWFd5VXcwYmRJVU5DMTNldXhPbkRnSmtxS2cxZFg4bWhVVkdaR2RrNFBNckV4RUM4M2FGZG50Sjd5Zk1UYzNkL1BhTmF0Tk5pR29XUVF5QUJZT1lBZ0hiUVB4UHh6SGdXTTVzQ3dMbG1WNUpnK0J6Y05xdGNCaXNjQmlOc05zTXZQQXBsUXFVVkpTWXBkcms4bGtzRnF0b0NnS0RNT0E0emlKTnB6ak9BWUFzM256NXAvZmZQUE45d0RVZmR3V09DRWhBUWtKQ2ZmMUhUMTY5RUI4ZkR4R2pCaUJ0TFEwQkFjSDQ5TlBQOFhISDM4c1hVQTFiZW42ZEZBeW1Vc3dXVENOUmd1TlJvc01mUnJTMHRNUUZscmVTN3ArNHlaSWlucGdhMmE3VHpkdi9vZlFTbVQ0YWdVSFA4bmUydldsUzVlY2RBQTFtOXhhV1l0SEdhRWtCYmxNMUEzbHE1Nml0NmJWYXVIdTdnNVBUeS80K2ZraE9EZ1lkY1BEMGFqUnN5QTFHZzJVU2lVVUNnVm9tb1p0TVVFb0lvQ2lLTTZtbjAxcy9iRDI2dFVydDZTa1pPWFRmQ0hGeDhmait2WHJNSmxNdUhyMUtzYU1HVk5wQ0ZUZGxwMlYvZFFPVDFkbVdwMGJzckt5bmI2V2s1UHpVTlpNcTNORFZuYldVM3RNc3JPemt4WXZXbGdLKzRLQkNHNFNrNGR0aXdjZmlwS2daQlJIVVE3TnVNS1VnVnF0a2tETzI4c2JNcGtNcEZhcmhWcXRobEtweEwyMGZxeGJ0MjR0eDNFdWh0MkhjZ2U4OStIcHA4RnpZMW5HNldzUGE4MDBHaTBZSy9PVW5xdmN4VzltenpyaEJOVEVmRm81d1JaZTZaMTBtQWZsUjZma0FxaXBWRXBvTkJxNHVibkJ3OU1Udm42K0FBQ1pUcWVUS3FKQ3djQXUxeWFUeVRpcjFVb3dET08wWVRjMk5qYi9yYmZlV3FIUmFLWS80UWNHZXIwZUJvTUJWb2FCc2JCNjJFMjFXaDFrY2huOGZIM3ZXdHFQSUlDU0VoZVhXMFZXVWdIUDNjTXNydHpyOFNLU00wSE1Ud2F1NU4zYmhpTTh3QTJKQWhmbFd5Mi9veUEvSHpldVgwVlJrYkZTSUErckV3NDNkM2RrWkdRa3JmcHBSWVc1TlRocHlDVkprdVA3MW1TY1RFYnhvQ2FUZzZiTGRBNTRqUU1kNzYxNSswQ2g0THNMWkI0ZUhpZ29LSURSYUpTcW9XYXpXUUkzcTlVS21Vd0dobUhFcEozVTB5YmsycXh2dmZYV21pMWJ0cnhCRUVTTEp4WFVrcE9UQVlLRVJxdmoyVTJyVWR1NHFNaUlkSDBHMHRQVHExMEpmdGZPSFZpK2JDa01oZ3dFQlFWaDVhcTF1SHo1RW1MNzk1UGVNelorQXJwMjdlWkN3a2ZaRXBPQnEzbjMvdmtyZVNEbUo0TmIwckZhZHVmNnRTc29MaTY2NDNsOTQvcFZQTnU0NllsM2VyMlo3QVRVbkhwcmtKaHliWWZjNVpETDVKRFRmRE91UXFHQVVxV0NSc05QTTNoNjhYazIwV1NlbnA3SXk4dERZV0doYlE4YmFKcm1xd3dPWHBzTjY0ZWsxcng5KzNaelFVSEJqKzd1N2s4a3NPbjFlb0FnNGVkZk0yTEpZbkxab0U5RGVucDZ0WWt5cDZXbFljYjBxZmh5OHRlSWptNkJnZ0tlR2ljaUloSzdkdThEQUF5TWZiL0cxbTNaMGlWNHZYc1BPellUY2IvbXp2a0dLU24vZ0tacHRPL1FDWU0vR2lJTlg2ZW1waUpoN2h5a25FMkJRcUZBeDQ2ZDhHSGM0SExEMmRWcGQ5cm1pekV2UUM2WGd5QkloSVdGb1gvc0FMUnVIZlBBemtIaWZrRE5CdHlxeSs0RWFyYmc5dC9ObTF1dlhMbHN2WU8zeHBUUHJWR1FVUlFualU3SjVUd2RPRTJYZVdzNkxkdzlQT0R0N1dNM0FrbjYrUGpBdzhNRE9wME9hclVhS3BVS0NvVkN5clU1eTdjNXk3VjVlSGhzWmxsMjI1TUliQVpESmpSYVhjM25ZSFJ1TUJnTTFmWjlGLys5QUI4Zkg3UnVIUU9hcGlXZU9JSWdvRkR3ZDcyN2JVbTVHL3R4K1ZMazVKUlA0RSthT0FHMWdvUHgyKzlic0dqeE1odzljaGhKU1pzQThEMTVZOGVNUnIzNkRiRHA5eTFJU0ZpQS9mdjI0cmVOTmNlOVVOVnRKaTVZaU0xYnQ2Ti83QURNbmprZEczL2Q0UElrNzJCV3EzVlhtNWdYTGpqeDFDcjAxa2c3YjYwTTFPVENQS2hDcVlSS3hjdnN1YnU1dzh2VEMvNDIzaG9Ba0g1K2Z2RHk4b0tibXh1MFdpM0U5Zyt4U21vRGJKd05oYmpkaUJYNGFYeUx3V0Q0OFlrOE9JejFnU1NiTlJvdHJGYnJmWC9QNmRQSjZQNWFOOHlhT1IxNnZSN2RYK3VHN3E5MXc0b2ZsMWY1TzQ0ZU9Zdys3NzZOOWkrM1JXei9mamgzOXF6ZDYvdjM3VVcvOTNxamErY082UDkrWHh3OWNsaDZiZGpRajlEOU5UNjBIZm54Y0hSL3JSdUdmalJJQXBHMmJkdmh2WDd2UTZGUXdNL2ZIODJqbzNIcDRrVUFmTVhTMDhzTHZmdjBBVTNUQ0E0SlFldVlOdmozMzVxclQ5M05ObFVxRlZxM2pzRzQrQWxZdkdpaEhmSGlrMkJGUlVWSStuMFR4bzRaWFQwaDYvWHJPMkUvRTJvSGJCekhXVG1PWXppT1kxbVc1UWhBOHRaS1NvcTVUSU1CcWJkdW9hQ2dvSXk5UTZtQ1JxT0dRcUhBZ3ZtSk9IandMNmpVYW50Z0N3b0tnbytQRHp3OVBhSFQ2ZURZL2xGSmxiU2MxeFlZR0hqWVlyRXNlZEtBcmJvS0JWWGFsdEY0MzkvUnRHa1VOaVZ0eGNjalJxRldyV0JzU3RxS1RVbGIwZS85L2xYNi9OVXJWL0Q1aEhnTUhqSVVXN2Z2eEp0djljS29rY01saXB1Yk4yOWd5dVF2OGRsbjhkaXliUWRlZmZWMWpCOC9UaEtsU1VoY2dFMUpXd0VBYytiT3c2YWtyVWhjc0pBLzRVZ1N2ZnYwaFllSHAzRGlYOFBoUTRmUXNpVlBBdURqNDRPRXhBVlFLbFVTRUo1T1RrYmp4azFxYk0zdlpadlJMVnJDYkxGSWdQdzRtZU1RdmZoM1ZsWVdCc2IyeDVVcmw2dmxSbEphV3JwbS9Qanh0eHhBemVUb3JmRmpVenllTUF3RGtxVEFzZ3dzRmdzL1NSQWVqc3lzVExBY0I2VkNDWlhRM25IczJGRW9sVXE0dWJtWDJ6YXBVcWtRRUJBQWIyOXZ1THU3dzdiOW96S3Z6VmxmRzBFUWxuUG56cTBFY052bGhEKyt0bVZMRXRxKzFBNnRXOGRBb1ZDZ2M1ZXVhTkN3SVhidTNBRUE4UGIyd2JMbEsvRk1vMFlnU1JLdnZ2WTZMR1l6YnQzNnI4cmJPSGYyTERxMmI0ZCtmWHVqUWNPR2VMSHRTMDdmdC9ENytWQ3AxZWphN1pVSDl2dXJzazJDSU9EbDZRVmprZkhST1hBRW9QMGdDbTZqL3dkQ0tZUHF0ZnB3RzljR2hKdkM3bTJqUjQzQTZlUlRBSGpHM084WHpBY0FlSGg0NEtmVmE5SHYvUStxWTI5dUh6dDI3SzhLUERYYjNqVVc0SE5yRkVWeEhNZHhGRVdCWlZsT29WQUl3KzBxZUh0NXdXZ3NoRW9vR09UbDVjRnNNdUhGRjErRVhGNSt1b1FFZ0tDZ0lQajYrc0xUMHhOdWJtN1FhRFJRcTlWU0hzWVpBMGhGdWJhb3FLaXJ4Y1hGUHp6cEYzL1h6aDFRV1Boa0N0cnE5WG9FQnRwMzVkZXVIUWE5UGgwQW9OVnFjZkxrQ2NSOUdJdmU3L1RDKysvMWNlb0pWR2FObm4wV08vL2NpNS9YYjBSNmVqcVdMUzN2Nks5YzhTUCsvdnNvcGs2ZERwbE05a0IrZTFXM3lYRWNjbkp6b0gyRWVnaVZIU05BcU9SZ2Mwcmd2ZlExcU45b2lOSS9yOEw5VTN2cXhDRkRoMlBxMTFPUW1EQVAyN2R0UmQvMytBcTVlRzFYaCtYbDVmMlNtSmlZNitDcG1aem4xaml1VE1vWWtNa29LSlJLbU0xbVVDU1BOY1hGeFNBSVFuQzZGRGg4NkJBR0RJaUR6czE1bzdVTTRLbC9Bd0lDa0pPVFUySHJoOFZpRVdheXJKekE5c0d4TEF1Q0lGaU80d2piWEZ1Yk5tMVdIajkrdkIxSmt1MWMvcy9qWi83Ky90Q25wOXZmZm0rbklpcUtiMFU1OE5kK3JGNzFFK1o4TncvQklieG8yWXN4THpqMWFoekJ6bFJhaXUzYnQ2RkxsNjVRS0pVSURBeEUrL1lkY1BEZ0FidjNiVmovQzNidDNJRzVDZlBoNXU3K1FINzMzV3p6K1BGam9PVnkxS3RmLzRFZkgwWHJFTGpIdnlqOWJmazNFN21mN0lTOG5qZEt0bDJHOVhvdWRNTmJJbmZrRHBpUHAwSDdnWDBMVVhoRUJEcDI2b3lWSzVaajVxeHY0T1oyNzFNWWNya2M3ZHJaWCtZN2R1dzRNSHIwNk9OVjhOWVlBVDlZcTlYS0NaRWdLSm1NVXlxVUlBa0NOMjVjbDRZSGVEWVBEVTZmVHNaTDdWNUd2UVlOOE8vRkN4VURHd0NFaElRZ0t5dkxhZXVIQ0d3aXVERU1JejJFR1ZJV0FDSDJ0U1VuSjVzTkJzT1NnSUNBcHhMWWZ0MnducS95Y1J6YXZmei84SDcvV0FCOG04TlhrNzVBWVdFaG1rWkY0ZERCQTFJdTZrR2JiWkdDWTFsWXJWWnB3cVRiSzY5aXlPQTRkT2pVQ2MyYVBZKy8vdHFQYzJkVDhOblljUUI0Z1JHQ0FFaUtRbjUrSHJadTJTSjhqLzFzYkdCUUVJNGVPWUs2ZGNPUmw1c0xYejgvMEFvRmZscTVBdm41ZVhpM2QxOFVGUmx4NE1CZmFOS2tMSisxWlhNU052MjJFWE1UNWo4d25ycXFidE5rTXVGMDhpbk1tREVOY1lNK2VpaVU3cVpEdDJEb3RycjhNYjJlQzdxSlArVFArY0Y2TXcrcVYrdkJjamtiY0RndU8zZjhnWDE3OTJESzE5UHd6ZXhaK0hyYWROU3JkMjhBYmJGWXNIT252WmI2dFd2WHRoWVVGRGhPRjRnZVd6bUdYSXFpUUZJVXdIRlMzNnhjTGtkQVlDQTBHZzEwV2gzKytlY00vUDBEUU5NS1hMMXlCWVVGaGJqNDd3WGs1R1NESkVuSTVYTDBldnVkOHNBbWhxUzV1Ym5JejgrSDBXaEVjWEV4VENhVEhialplbTBNdzNBY3gwRjRTTk1JQUN5QmdZRUhUQ2JUZkpxbWh6eE5vSlo4NmhTMmJFbkN3aCtXZ0tJb2ZESnFCRUpEdzlEdTVmK0h1WE8rUWZzT0hkSHp6YmR3N08rak9PVGdwVHdvYzJ6UW5URjlLbVpNbjRvT0hUdmg4eThtSVRLeUhpWitPUm5mTDBpRVBqMGR0VU5ETVhQMnQ1S2FVWmV1M1hEMmJBcGkrNzhIaXBMaDllNDlFQmxaRHptNU9YYmJHVFZxTkdiUG1vbmx5NWFnZHUzYVdMSnNCV2lheG95WnM1R1lNQmMvcjFzTHVWeU90aSsxay9JNkRNTmcxa3crREh5bmx6MzMvc3BWYXhBUVVQMjloRlhkNXJBaEg0RWdlSUxGVDBhUGVhQjliRld4a3UyWDRmYkovMEQ1cUpIVmV5TTBiejREOTg5aWtEL2pvTjM3VWxKUzhPMmN1ZkR6OTRlYnV6dE9uamgrejhCV2JoOUtTbjRjTjI3Y0RRRzh6STRGQTFRd1pRQ0FzMWdzMEdpMW5OeEd3MEF1cDVHV25nYVpUSVk2ZGVyQ3o4OFAwMmZPUm9QNkRlRGo2NHVGMzgrSFZxdXpBN1Z5d09idjc0L3M3R3prNWVWSndDYU9XWWtlbTQzWDVoaVMyazBqRUFSaDNyTm56L0pPblRyOWp5Q0lxS2NGMkk0ZE80b09IVHBKellLdnZQSXFqaDM3RysxZS9uOUlTZmtIRXdWRm9QQ0l5QnJmbDA2ZHU2QlQ1eTdsbm8rTXJJZS9EbGF1WTlxNmRVeUZGNjVDb2NDRXp5ZmFQVGZ3dzdoeTcydlJzaFYrMmJDeDNQTVJrWkg0YnA1enlpaUtvckQvd09FSGVzeXFzczA3cmRmOW1rNVhEWDJTREllQ21ZZWtQNDNMVHdQTFQ1ZDcyeWMyckxsTm0wYWhhZFBxdVR3NWpqdnp4eDkvT0JZTWJITnJaaW0zUmhDc1FQbk5XYTFXRGdDVVNpV24wK21rV2RDaW9tSmN1bmdSL3Y0QjZOQ3hFOC9rSVV3WStQaFdQaHBXTGp0YXExYXRjcmsyMFdOejhOcWtjSlJsV1Z2VmVJYmpPQktBdFV1WEx2cnM3T3dmdkx5OEZqNU5YcHR0ejZ2QVl5Y2xuR3V5SWRabGo2OVJGSVdpSXVNalFXamc3ZTE5VHltU3RMUzBqV3ZYcmpVNkFUV1RIYWp4bkdzc1FZQWpTWktuOXBielBXcmkySlNDcHVIdDVZWDY5ZXNMdEVTKzhQRHdnSStQajkxa3pxREJ6Z1BDY3Z3Njd1N3VjTmJiVmtIakxpZlNHMVhVdE92dDdiM2RZckVzZmxwTzBPYk5XMkRYenAwb0tTbUJ4V0xCdHExYjBFTG8wV3JhTkFyYnQvRW56T1ZMMWRQL3BGS3BYYWh3bDJ2ek1OZXNvbTM3K2ZtaDJGaHhsWjBMOTdoL2o2b2F2a00wdGRvK3QxaGFXcnA2NU1pUkYyMUNVSk9EdDJaWE1DQUlnaU9FWm44WnJ6akZ5ZVV5WVJhVWxtWkIrU0YzZ1NYWDJ4disvZ0dTZHVsZGVXd0FYMGdRdlRaYnFuQkhyODIyaUNCNmJTeGZCbU9FU2lsSkVBUjE2TkNoWlczYnRuMmVJSWhtVDlLRk0rQ0RmaUFFN2pWZlh6OGtKQzdBODgyYm8xUG5MaGowSVY4d2FQUGlTMmpYN21VQXdQQVJvL0RseE0veDY0YjFDSStJNEJPbVQ5Q2QvbEd5SW1OaGhhMEw1RU5hc3lKaklhZ0tXa2dDQXdPUm5wNk96SXgwcUFXaUJUc2JHZ1V1TWZtZVowYTVjQTlnYVBWbGhPclVqWkFHNFRtT083MW56NTY5VHZKcXR1MGRqa1VEZm5SS0hKdVN5eUNYQzU0YkxZNU5sUTI1ZTNsNndjL1hyOG95bFU1WFdTNlhJemc0Mks2SVlFdHBKSWFpanUwZlRnb0pWZ0NXZHUzYXBXWm1aaTcwOGZGWjlEaGVKRm9uK1k5dGYreXE4UDI5M242blhESVRBUEx5Y2pGejlyZHdjM1BEbmoyN1VWSlNVcVZ0M1Nsc3lNN0pjUUdiZ3htTmhmRHg5WEg2bW8rUE43S3pIL3lhR1kyRjVRZ0JiSzFaczJZd0dBelE2L1VvS3N5Mzc1UFVBaGhiRzBEdCs5aURiT0J5ZHZWZEYxb050Rm9OYnQ2OHVmSEhIMzhzcUNnRWhZT3lPNStWRVpUdk9BNGN5M0ljeTRKbEdUQ01sWDlZTGJCYXpMQ1lTMkV4bDhKVVdneFRhUkZ1WHI5eTc4QUdBQUVCQWNqTnpiWHoycHpsMm13OU5vZENndWkxV1FpQ0lIMTlmWGVXbHBiT1ZTZ1VIejl1RjRtc211N3dwU1dsR0RONkZLLzhydFZLN1JPMmQzUm5YZFNWV1dob2JXUm1HcENoVDROVzUrYlNQREFXd21nc0JHTzFJclMyY3hBSUN3MkZ3ZkRnMWt6Y0o1WmhFQlphT1RENStmblowZTg4NnBhZm43L2twWmRldWxTUnQwWVFoQWhzREVFUWpNamNJYXBPMFRRTmxVb2xlR2RsZE45ZVhsN3c5UzFUbldyUW9BRWFObXhZOVd1MnNoZHIxNjVkWVYrYm85ZkdzaXpoVUVnb1Z5VmR0V3JWMHY3OSt6Y2lTYkw5NDNTeCtQbjVJVjJmY2Q4WFFGU3pabGk0cU9KUjJxSWlJd0lEN2s3TWhTQUlORy9lSE5kdjNFUk9UamJ5Y25KUVd2cDBraytxVkdxUUZBVWZieCtFaG9aVSt0NFcwZEc0ZWZNL1pHWmwxZWlhcVZScVVESVp2TDI5N3docWo1dFpyZFo5RXlkT1BPQUFhcVVpc0FtZ1pwOVhFN1FNUkNWM3VWek95ZVZseEpHMkFPZmg0UUZ2YjI4RUJBU2dkdTI3V3p2aVRvSWp0Mjdkd3ZuejUzSHQyaldrcHFiQ1lEQWdKeWRIQWp4SExWSUI5QWlXWlFtV1pTbU80eWp3V3FRMHgzSEtHemR1dEFvTkRaMEw0TEZTSHpsMUtoa0VRVUNqMVVGZHpYZjQ0aUlqaklVRkFMaHFKNXAwbWN0cXlOSVBIVG8wT3lZbTVwWUFaQ1hnTlVLTFlLOFBhaXVseDloNmF3cUZncFAwUVRXODBMR0hod2U4dkd6RVdlcld4VFBQUElPUWtKQzdpN0x1OUlhUWtCQkpVTmt4MStiWStpSEtZbkc4MlU0a1dIbm5naUREd3NLT0Z4UVVKT3AwdXFtUDAxRnMxaXdLNmVucE1CZ3lVVmlRVnkwc0hBRGZ2eVNUeVJBVUZJaUFnQURYNWVLeXg4SnUzNzY5S2lZbUpsVUlNOFhRczlSSkNHb1Z2RFZwMEYwaWpSUkNVVnVhYjFHL1FBeEZhOVdxZGRlZ1ZpVmc0L000b1U1emJVNTYyc1JDZ21Odm16aHVaU0VJZ25KemMvdlpaRExWcFdsNndPTjBNQU1EQTZ1TjNkWmxMbnRjeldnMHJnNE9EajRGKzlZT3h4RFVZaE9Dc3M1QzBJcEFqVmQxOTBGUVVCQkNRMFB2YVIrcnBCT24wK2tRRWhKaVIyOWt5N2dyRHFrSy9XMTJ2VzJDMXliMXRva0xzV3ZYcmlVc3krNXhuU1l1YzlsamxWZmJ2M0Rod2oxd1hnR1ZQRFk0eklNSzVKR2NMYWpSQXNXM0dJN3FkS0lvQzU5WEN3a0p1ZWVKRE5uTm16ZXJqb0k4VlpIVDdubnhPZkYxNFNFbThGaWhBNThRd2UyVlYxNUpPM0Rnd1BjaElTR2hBTUpkcDR6TFhQWm9HOGR4MTA2Y09KSDA2YWVmRmpvSlFjdUJtaUNBYkNlblo0c2ZGZUVJTCtSQ2dtVlozQTArMlFIYjNiaDZ2cjYrVGljUmJBU1dZVU1mVHBoTUpoQUVBVUc2VDJvQklmaGZSTFpwMCtaRVRrNU9ncWVuNSt5cWhzVXVjNW5MSG82emR1M2F0VFZ2dnZsbXFvTzM1aXdFdGRxMmRvamhwOER2S0JVTXRGcXRYZWdwVmo4akl5UFJ1SEZqcU5YM1BpRnlWMkNpVnFzUkdocGFib2EwZ3ZsUmptVlpRaXdrY0J6SENnVUYyNmtFMHN2TGEzTnhjWEdRU3FVYTR6cDNYT2F5UjlPeXM3TVhoNGVIbjdYeDFFcHRId1JCbUd4QnpURUVGU1FHeXVYVmJNSE5WOURXRFEwTnZTOVF1MnRnQS9nRWVrVjhiYzdHck1UR1hRSGNPR0VxUWN5M2tRRElWcTFhTFRseDRvUy9YQzd2NXpxRlhQWVVoM3JRNi9YSXlEQ0FZUmdZalk4R1EzTnBhZW5QNzc3N3JtMi9XcmtRbE9NNENkUTRqbU1GUmx5T1pWbU9ZUmc3dmo4eHNoTWZZcFZVb1ZCQXJWWkRMcGZqMHFWTER4YllBQ0E4UE56cHFKV1RhUVJPNkdjVFI2M0VXVkxiRmhEaW4zLytJZmZzMmJPNGZmdjJmaFJGZFhHZDRpNTdHa0V0T1RrWkhBaHBHc0wvRWRndmk4WHk1MDhyVit6S3ljbXhPQUUxMndrRGZteUtJRmdDWVBsMEZLL2VMakIzY0VvbEw4U2kwV2o1bmpWM0QzaDVlOEhmUHdDMWdvTVJYamRjMHRHNFg3dW5iNkFvQ25YcjFrVndjREQ4L2YzaDVlVmxWeWxWS3BXMitUZE9aQUt4VmJZUzNGVXIrQllRYytmT25WTXZYYnEwa09PNFk0L3pDYnBwMHlZb2xjcUtFeFZXSzBhTUdBRS9Qeis0dTdzakxpNU9VbmR5MmROcmVyMGVIQWo0QndROU1tTnhMTXVlUEhUd1lOTEVMeVlVT09UVVNvUkhxUjJvU1hSRUpGZStDbHArdWtEbnBvT0hoNmRFUlZRN05MUmFRTzJlZ1EzZ0ZXM0N3c0lRRkJRRVIyMVNKeXBYb3BxelhRdUlBN2labm5ubW1aUzB0TFFGSE1kZGVWSlA0SEhqeGlFcEtRbnIxNjlIVWxJU2R1L2VqV0hEaHJtdTdLZmNESVpNYUhWdWo4eitjQngzOWR5NWMrdjc5bmtud3dIVWJDdWdKanRRRTNyV1NGS2FCNFZjSnVma3RDaDBySUJLWlQ5bDRPUGpBLytBQUlTRTFMNHY3WVZxQXpZQUNBNE9SbWhvS0FJREF5WCt0a3JBRGJiOWJRSi9tMFFsTGp4TXdjSEJCM0p5Y2hJQVpENXBKMjlSVVJIbXo1K1AyYk5ubzIzYnRtamJ0aTBXTFZxRUZTdFdJQ3NyeTNWMVA4WEdNTXc5ZVdvWHpwL0RxQkhEcTN0M3NtN2V2TG02YStjTzEyRS8yRzRIYkFSQldEaU9zNGlDeHh6SENSeHJGRWVRSklxS2pNak56VUdtd1FBQ3ZOaTBScTJHMldUQ2diLyt3cFl0bS9IbnJwM3c5dmF1OXNiMysvYjc2dFdyaDlxMWEwdmc1dUhoWVNmaFp3TnVZa2dxOXNPeHprSlNBQ1lmSDU5dCtmbjUzd2tMV0tQV3FsVXJUSmt5QlMrLy9ETFVhalVpSWlMd3h4OS9ZTzdjdVFnT0RvYTd1enNHREJnZ3FTMk5HREVDblR0M3R2dU83dDI3WTlDZ1FVNi92MmZQbm1qZXZEa0FJRGs1R1NVbEpXamJ0cTMwZXBzMmJRQUFSNDRjY1YzZFQ3RVZGaGJjMCtmcU4yaUlpVjkrVloyN1VxclhweTl2MDdyVmVaUzFkWlRhaEo2OHQyYlgya0V5SkVteEhNZXg0RGpJWkJUTUpoTlVLalVYRWxJYi9nRUJTRTlQaDFxdGdWcWpRVXJLUDNqbDFWY3hldlFZUkVSRTR2Q2hROVcrbnZmZE8wWVFCQ0lpSXB3cVdqbXJqb290SUFBSUFFNkxDUnpIa1I0ZUh1dU5ScU5HbzlIRTEvUkpOWDM2ZEd6ZXZCa3hNVEVZTkdnUWV2VG9nZTdkdStQQ2hRczRmLzQ4MnJWcmg2NWR1K0tOTjk2NDYrL3UyYk1uY25OekFRQzNiOThHVGROMm5GeHl1UnplM3Q1SVRVMTFYZDB1SzJmWjJkbVkrdlZrWkdVYVFKQWtCZzhlZ3BhdFhrQnFhaXBHalJnT2k4VU1EdzlQTEYveFUxbTY0N05Qa1piR2E1Ym41ZVZCcmRGZzdicjFBSUNyVjY4aVllNGM1QmZrdzh2VEMyUEdqcE5FZWdCZytiS2xpNy80ZlB3cEIxQXJ0UUUzdmxnQVdJUnJsaVVJc0FSSmNBUkhnT000VGlhVGdXVlp6dDNESFFxRkFnUkJRSitlRHJWS0RZcWlvRmFyVWI5QlF3VFZxb1dpSWlNT0hUejRNcm5Fd0FBQUlBQkpSRUZVNkFFYndJOWNoWWVIbHlPakZNdThUZ2JrYmZ2YklJU2s0bVNDQ0c2RVZxdGRXVnhjckZLcFZDTnI4dVRwMGFPSHBJMzR4aHR2WU5teVpaZzZkU3AwT2gxYXRteUpaNTk5RnVmT25ic25ZSHY3N2JlbGZ4Y1hGenN0TENnVUNwaE1KdGRWN0xKeTl2TzZOV2pjdURINnZmOEJybDI3aGdYekU5Q3kxUXNJRGc3R0x4czI0dkxsUzVnNlpiTGRaNmJObUFVQXlNL1BROXpBV0l3Y05Sb0FZRGFiTVhYS1Y1Z3lkVG9DQXdPeDQ0L3QrSDdCZkV3U0JJYnk4L04rK09MejhZZWRoSjRsZDhpcmNTekRpRlJsa010cFVad0ZSVVZGTUFwc3hrb1ZINzFwdEZyNCt2cGkrN2F0eU0vUFIxNWUzcU1KYkFDdmNHVkxJVzdidEd2anNkbjJ0VW5neHBhcDZqSUMwRW5nOXRaYmJ5MVp2MzQ5clZRcWEwekd6M2I2UXFGUVNQbEQwV2lhcmhiZ1VhbFVNSnZONVo0M21Vd1BSWi9TWlkrK1JiZG9pWVM1Y3dBUWFOR2lKV1ovTTZkS24yTlpGbDlPbW9odXI3eUdGaTFhQWdDdVg3K0cxTlJiaUIvTDk4S3pIQXVOb0YxUVdGaTQ3SjFlYisxSCtha0MreERVUmtKUEZEdG1HSWFUeStVYzc1eUFvMm1lTERYVFlJQkdvMFYwZEF2OC9mZFJ1THQ3UUtWVWdtVlpyUGh4T1hyMWVoc05uM2tHNDhlTmZYU0JEUURDd3NMc3RCRWNweEZzaUNoaDQ2MXhBdmlKa3drUW12MUFFQVN4WmNzV1l0cTBhVXZpNCtObENvVWlyaVpPSHBrVEh2cUsxS1NjUFcreFdLcTBuZURnWUpTV2xpSXZMdzhlSGg3U1o3T3pzNnZNNWU2eXB3ellvbHNnY2Y1Q0hEdCtEQ3RYTEFkTjAvaHk4dGQzL056U0pZdWdWQ3JScCs5N2R1ZHBRRUNBWGRnS0FFYWpjY1dFK0hGN1UxTCtjZXhUY3dRMU96WmNvZG1lb3hVS2pwYkxZYlpZUUpFa2FJVUNGRVhCMTljWGRlclVoYnU3QndpQ1FHQlFJSFJhSFJpckZSTStuNGp3OEhCY3ZQaXZkQzA4c3NBR0FQWHIxeStuUmVvWWpqcDRiU0s5RVd4eWJveVFneU1JZ2lDKyt1cXJQRjlmM3lVREJ3NGtGUXJGd0lkNW90RTBYYzUxdm5UcFVwVTRvNktpb3FCU3FYRGd3QUc4K3VxckFJQ0RCdytDSkVtMGF0WEtkUlc3ckp4Tm16b0YwUzFhb24zN0RtZ1IzUUp2OXV3QmxtVXI3ZmM2ZVBBQTl1L2JoNFdMbHRqZGlDTWlJbEJRVUlDLzl1L0RpMjFmd3RXclYzSHE1SW1menA0OXUyZmp4ZzBsTnA1YWljUERSQkNFV2NpcDJiSGhNaXpMeVNnWlpESTVTa3BLT0hjdmJ5aVZTdWgwYmxBbytQK1hta3I1SnR4YXdRZ0xEVU5BWUNBVU5NM3Y2NEVEYU5LMDZhTVBiQVJCb0g3OStoS3dPWHBzRE1QWWVteTI0QVpoRkFOQ3ZzM3VPNGNORzVaTjAvU1NmdjM2NFdHQ1c4dVdMVEY3OW13c1c3WU16WnMzeDZKRmk1Q2VubDdoKzlldFc0ZmMzRndNSGp3WUdvMEdzYkd4R0RwMEtIUTZIV2lhUmx4Y0hQcjM3dzh2THkvWFZleXljdGFuejN1WVBYc0cxcTFaRFpabE1lcVRUMEdTcEYzeElEOC9IMi8xZkFQTm5uOGVZOGVOUitLODcxQmFXb29oZ3orVXZpZHh3US9RNlhTWU5tTVd2dnYyRy95dzhIdlFOUDJUaDZmbm54dlcvMUlFKzBLQmJRT3V5WEVPVk9wWG95Z1FESU9Ta21LVWxwWndhclVhbmw1ZVVLbFVxRmUvUG03ZXVJR2pSdzlEcDlPaDE5dnZJaVE0QlBYcTEwZjgrTTh4ZWZJa1dNd1doSVNFWU16WStFY2YyTVJjVXIxNjlld3FwTGE1TmlHdlZxNllBUHRLcVMyNEVRUkJFSEZ4Y1prbWsyblJ3SUVEV2FWU0dmY3dUclRYWDM4ZEkwZU94T2pSbzhHeUxQcjE2NGNCQXdhZ3ROUjVaOHFHRFJ0dzQ4WU5EQjQ4R0FBd2UvWnNXSzFXZE8vZUhTUkpvbWZQbnBnN2Q2N3JDbmFaVXd1cFhSdHo1ODEzbXRiNFpjTkc1emZUWDM2dDhQc2FOR2lJaFl1V3dHZzBycGcxYzhhZVpVc1hWd1Jxa3FjbWdocEprZ3hRUmhvcG95aE9ybFNDcGhVYzMzd3JpTEtvTlhCemQwZGtaQ1Q4L1B3UUZGUUxZWFhxb0c1NE9KUktKWjU3cmpGK1dMUzBSdGZ0anBvSDkyTVpHUms0ZCs0Y3JseTVndFRVVk9qMWVtUm5aNWZUU3hCQ1YwSUFRRUpnNFNVNGppTnROQlBrSE1jcEFDZ25USmpnSGg4Zkg2dFNxWWE0VG4wK1VYemo1bi9JeWNrQnd6QW9MWGs2UjdTVUtoVW9pb0tYcHpmQ3dtcFhHcTV4SENlc1dUYXMxcHBiTTZWS0JabE1CbTh2YjRTRlZVd1J0bi8vZm9SSE5uZ2c2MVJZV0xoc1F2eTR2VGJocHpOUXMyWHNzSWlNSFdKelBVWEpPSUhlbXdjMXBiMjRzYWRubWNwVWFGZ1k2dGR2QUY5ZjN3ZDJMdFFvQjVxL3YzKzU0WGduRlZMWTVObWtTcWx3d2RyMnVJbUZCVXlaTWdVblQ1NzhZY09HRFdhMVduM1ByU0FkT25UQW4zLysrY2hjbUhxOUh2NytkemY2YkRLWmNlYk1HVkF5R1hSdTdpNzV2U0lqY3ZOeWtYVXlFMDJiTklWWW9YTUV0Uk1uVG9La0tHaDFOYjltUlVWR1pPZmtJRE1yRTlGQ3MzWkZkcnVHK3hrTENncCtHRHBrOFA1TGx5NmFLd00xbEZWQUpUMVFnVGhXVUpvaUlJeE9TYXdkSkNWUWYxTVU1RElaeFBsUXRWSUZzOGxVNDcvdGdRRWJ3SXZCaU9CV1dYVlVySkFLdld5YzFXb1Z3WTJ4RFV0RmNOdStmVHMwR3MzU3dzTENVcTFXT3hLQThtNzNiZGV1WFkvOWhaeXVUd2NsazhFL0lBZ3VBelFhTFRRYUxUTDBhVWhMVDBPWUV5TFY2emR1Z3FTb0I3Wm10dnQwOCtaL0NLMUVocStXVFp0Uk5WdHBkbmIyNGxZdG14OUdlZmJiaWp3MUt3aUNJUUNHRUR3MUdVVnhNcG5ncVlsRDdXbzF0Qm9OZEhha2tZR29YVHNVa1pHUkNBMExlK0Rud1FOaHJRMFBENjlJWUZrQ09KdTdxWlJyczFxdDRtdE93UTBBZERyZHF0emMzR0lQRDQvaEFIeWZ0Z3M1T3lzYldqZDNGNkk1bUZibmhxeXNiS2ZBbHBPVEE5MURXRE90emcxWjJWbVZBbHNOV1paZW43NDgrdm1vVTdDZi9YVDAwdXhCRFFLb0VTUkhFaVJIa1FKYkIyMURHQ25NZjJvRnZRSStCUFZEclZwOFh1MWhnTm9EQXpZK2FkbkFLYkE1ZW0yaTV5YUNHOEFQQ0ZjQ2JweW5wK2ZHakl5TUlsOWYzNDhJZ29oNFdpNWVqcnYzNGVtbndYUEx6OHR4K3RyRFdqT05Sb3Y4M0p4NytpeVJuQWxpZmpKdzVlNjY5RGx3VjIrYXNsYTMvbS95K1R0NGFxWnlvRVlJb0VZU0FndXVESEk1elNsb2thbERBRFdKQmRjTGJqb2RMT1pTNU9WbUl6TkRnOHlNTktmckVGWW5IRzd1N284L3NBRkFvMGFOeW9GYkJjQW1nWnVZY0tzSTNNUy8vZjM5LzdoKy9YcEI3ZHExNDBpU2pLNStFT0haVFEwR0E2d01BMk5oOWJDYmFyVTZ5T1F5K0FtMHlIZDFzaE5BU1ltTHk2MGlLNm1BNSs1aEZsZnUrWGdsSmdOWDd3N1VXSEFuejVYY1d0ODVkZloxbEovOXRHL3BzTXVwbFFjMW1RQnF0SUwzMUJ5TEJhTElzZFZpZ29lSFI2WEs3VVZGUnR5NGZoV05telo3TW9DTklBZzBhdFNvUXEvTkdaalllSEJPd1UzNFhvN2pPSzVPblRxSGs1T1Q4NTU3N3JrQkZFVjFyazVRUzA1T0JnZ1NHcTJPWnpldFJtM2pvaUlqMHZVWlNFOVByM1lsK0YwN2QyRDVzcVV3R0RJUUZCU0VsYXZXNHZMbFM0anRYOGJDUGpaK0FycDI3ZVpDd2tmWWlMc0VOUXZIL0htdzhHSlNuNHlGR1RiaHArUHNaNGtBYXVaeU9UVTdVSk9ERmdTT2xRcEJMay9qV0FIMVEyQlFFSXdGZVpXQ211MDUvMFNFb3FMSjVYSUozTzdnc2RubTJ5b0NOM0h3bGhORDA2aW9xSE1iTjI2YzFhMWJ0MHlhcHZ0V3h6N3I5WHFBSU9Iblh6Tml5V0p5MmFCUFEzcDZlclZ4VTZXbHBXSEc5S240Y3ZMWGlJNXVnWUlDbmhvbklpSVN1M2J2QXdBTWpIMi94bzcxc3FWTDhIcjNIblpzSnVKK3paM3pEVkpTL2dGTjAyamZvUk1HZnpRRUZFVUJBRkpUVTVFd2R3NVN6cVpBb1ZDZ1k4ZE8rREJ1c1BSNlRkaWR0dmxpekF1UXkrVWdDQkpoWVdIb0h6c0FyVnZIUEpxZUttditlVTMyb1YxZjVQMVdVQW1vbGZQVUJBTFlDa0NONzFWVHFrUVJGbDBacVBueGJSMWhvV0hJejh1dTBlTlVWU01meGthVlNpVWFOV3FFOFBCd0JBY0hTMExNdGx4dVlyT2ZRcUdReEZWbE1obG5JOFRNMkhLNUNUbUNVZ0FsYjd6eHh1MG1UWnA4YXpRYXZ4RmV2eTh6R0RLaDBlcHFmRjAwT2pjWURJWnErNzZMLzE2QWo0OFBXcmVPQVUzVDhQSHhrVHhuUVFxdHdwblk2ckFmbHk5RlRrNTJ1ZWNuVFp5QVdzSEIrTzMzTFZpMGVCbU9Iam1NcEtSTmZQakVzaGc3WmpUcTFXK0FUYjl2UVVMQ0F1emZ0eGUvYmZ5MXh2YXpxdHRNWExBUW03ZHVSLy9ZQVpnOWN6bzIvcnJob1Z5MDNqOTJoOXZvLzBsL2V5VjBoYkpUQkFCWWM2MUYzN2UrTnZIM0wvSit5M2ZJcFJVTGo3THFweTJvZ1dCZ1UvMmtLRms1VUFNSFpHWm1vcmk0V01xcCtmcjZJaWd3Q0tHaFlhaFh2ejVvWVZSS1BNK2FOV3VHamgwN29uMzc5Z2dLdXJzcTlJb2ZsNlAzTzczd2RxK2UyTHBsYzVrM2FyRmc5cXdaNk5mM1hmVHYxeGNIRHg1NCtCNWJtWmVpUWFOR2pad054WmNMUzBXeFZkaFVTNFVUMG5GQ2dSUEQwbi8vL1pmVjZYUXJNekl5OUw2K3ZvTUlncmhuVVdZclkzMGd5V2FOUmd0andmMVR1Sncrbll4SlgweUEyV3hHY1hFeHVyL0doNWs5M3VpSmZ1LzNyOUozSEQxeUdJa0o4NkRYcHlNME5BeWpQdmtValo1OVZucDkvNzY5V0xac0NUSU5CdmdIQkNBdWJqQmF2Y0JmYk1PR2ZvUmIvL0ZDdHlNL0hnNlpqRUp3Y0FnU0Z5d0V5N0pvMjdZZHVyM3lDaFFLQmZ6OC9kRThPaHFYTGw0RXdGY3NQYjI4MEx0UEg5QTBqZUNRRUxTT2FZTi8vNzFRWSt0K045dFVxVlJvM1RvRzh2Z0ptUGpGQkhUcTNPV2hNTE5vK2pTR2NWa3kySndTSVp6aHJ2MW56bHJ6d3MydnpzSmVUY29abjVvUWZoSldnQk5CamVVZEJ0S21VQ0RuYUtGUWtKK2ZEMFpRbXFKcEdsNWVaWjVhYUJnUGFvNlNlWFhxMUFGRlVkaTVjeWNVQ2dWZWZ2bGxaR1ptMnBGR09NNjlpbitucFB6RG4yUExWOEJrTWlFdWJnQ2ltajJQb0tBZ2JOKzJGYVdscFZqeDB4cms1T1JnMElleGFOeTRpVVF0bnA2ZS9uQThOdEYwT3AxVHo4M1QweE02bmM0WnhiaWRNSXlvbitEZ3Vaa0Z6NjBVUUxHL3YvOGYvLzc3N3lTR1lmYmU2MzVXVjZHZ1N0c3kzbi91b1duVEtHeEsyb3FQUjR4Q3JWckIySlMwRlp1U3RsWVoxSzVldVlMUEo4Umo4SkNoMkxwOUo5NThxeGRHalJ3T1EwWUdBT0RtelJ1WU12bExmUFpaUExaczI0RlhYMzBkNDhlUGswUnBFaElYWUZQU1ZnREFuTG56c0NscEt4SVhMT1JEQkpKRTd6NTk0ZUhoQ1lDbjBqbDg2QkJhdHVSSkFIeDhmSkNRdUFCS3BVbzYwVThuSjZOeDR5WTF0dWIzc3Mzb0ZpMWh0bGdrUUg3UVpqbHJnUGJENS9rYkwydmQvL2Z0Yy9OZnVQbFZDdXdaYjRzZEhxVUUvekFEaEFVRXlrQ056K3h3VnF1Rms4bDVDdis4dkh6STVES29WQ3JVQ2F1RHFHYlB3OHZiRzFxdEZyNitmcnluRmhhRyt2WHFRNnZWT2wzWHRMUTB5VmxoV1JhZW5wNTI3MW02WkJIV3JGNEZBRWhKK1FjZkR4OEtBTGh5K1JLYVJrVkJvVlRDemQwZEw3endQNXc0enVzOG5UbHpHbTNhdkNpY1R3VGtjaHFYTHBVZGgxa3pwejljWUFNQWQzZDNDZHhDUWtMc3dPME9GT08yWVNrcmhLYmluVW9FdHhJQXhjODg4OHlwbjMvK2VVcHBhZWx5VnhyNnpyWmxTeExhdnRRT3JWdkhRS0ZRb0hPWHJtalFzQ0YyN3R6QmgwTGVQbGkyZktVa2xmYnFhNi9EWWpiajFxMy9xcnlOYzJmUG9tUDdkdWpYdHpjYU5HeUlGOXUrNVBSOUM3K2ZENVZhamE3ZFhubGd2NzhxMnlRSUFsNmVYakRXY0JLOHdodmd5ak5RZFk1QWlTZTFPdUhYNVN1Ny9UYm1sZ09vT1FKYkNRR1VBb1NaZjhCS0NLcFNKTUNSSURpYXBqbVNKRkZTWE13VkZCVEEzY01kT3EyT24vMTBjNE83dXp0VUtoWGMzTno0bkpvQWFyb0tSRmhvbWdiRE1QRDI5a1pNVEF4WWxwWDREa1Y3NTkwKzJMdDNEeExtZllmSlgwN0MwR0c4ZmtQZDhBaWNQSEVjUnFNUkJRVUZPSGZ1ckhUVHo4L1BoMUtweE5tektmaHN6R2pRQ2hyNStma0FnS1RmTnlFOFBPTGhoYUsyNXVIaGdVYU5HbFY2RW9uL0Z4NGNRUkNFeFdMaGJPc01MTXR5dHYxdFlsZ0tnT3ZkdTNjYWdJVHM3T3diWGw1ZWd3RGNjNGIrd29YemlCc1lpMlhMVnlJaU1oSkxseXpHNXFSTmtwZFNrWDAzNXhzY1BuUUlPVGs1bURqcFM3UjVzZTBqQ1d4NnZSNFJFWkYyejlXdUhRYTlubWN4MFdxMStIUFhUa3laOGlXTWhVYTdNS0txMXVqWlo3SHp6NzFJVDAvSEY1K1B4N0tsU3pCZzRJZDI3MW01NGtmOC9mZFJKQ1FzY01xWlZ4TlcxVzF5SEllYzNCeG9IMUlQSVZka1NiODhmL2VxaHNlR25NSXhpZnhSQkRaVEJhR25CZUJFcFhhR0FNRUp3QVlLQkNlWHk2RlVxcmk4dkZ4UWxBd0IvZ0ZDOVZNSE56YzNlSGw1UWEvWHdOUExTd2cvRzl5eEYwME1SdzhkT29TbVR1aUp0Rm90QmczNkNDTkhETU03Ny9aRy9mcjh2R3lUSmszUnNWTVhEQnM2R081dTdsQ3IxRkNwVmRMbk5tOU9Ra2xKQ2FaTm40VjUzMzBMQU1qSTBHTnowdTlJblAvOW93RnNBT0RwNldrSGJqWWdWZzdZeEdPTHNpWmV3bWF1VkFRNmFhNE5BQ3VTNG5sN2UyODZmLzc4alhyMTZ2V2pLT3JsZTkxZnVWeU92LzdhajRqSVNCdytWRFhPOWhFalA4R0lrWjlnbk1CZytxaWF2NzgvOUE1VVRMZHZweUlxaW05Rk9mRFhmcXhlOVJQbWZEY1B3UUlQM1lzeEx6aTlJVG1DbmFtMEZOdTNiME9YTGwyaFVDb1JHQmlJOXUwN2xFc0FiMWovQzNidDNJRzVDZk5ydEpIelhyZDUvUGd4MEhJNTZ0V3YvOENQajVXeDd2dGJmMzV6dHgvalUxR0pPcnQ5Z1lDUWV0UUFnaVVKZ2lWQWNDVEhnZ0xKeVVCQ0pwTnorZmw1Y0hOM0IyTzF3bURJd0xQUE5TNmJLUER6aFZ2cUxmajYrcUYrL2YvZjNwbkhSMVhlKy8vem5HWDJ5YjRNeVlTRWtJUmN0dUNsd3JWaVhTNHVWRnNwdUsrWHFxMC8vZlc2SWxhOXJiVjFCWmNxeXExNlJhdTFldVVWYmRVZjlkNjZ3cjBnb2xHSkNZUWtKQ1FrSVNHUVpTYVptYk04dnovT2VVNmVPWmxKUUFGSnpQTjZIZVprTXBNWnpweDVuODkzTDBmcUtNZUlOWnY5N0xQUEFCanppTzJkcUJzYUd2REEvZmZpbnQvZWk3WFBQWXZKaFVVNDIxVEtsMTUyT1M2OXpFaHN1T2JxbjJMcTFCTEx5bk83M2JqbnQvZENFQVJFbzFHa3BxYmlyVGZmUkgrb0g5ZisvSnB2M3hTMXcyM216SmtvS1NsQlFVRkIzRmkvMU5SVXkrZm1kcnVaYVVyWjNGS2JXY3I4Ym9yTk5CMWdwdW1xVmF2dUhoZ1llUExydnRkL21ENERIMys4Q1hWMU94RGcwak0rM3J3Sks1YmZZdjM4NkNPcnZyWG8yWWhmRHJPN01RQlFYYmZhU2dIQTJlZjhDQjkrK0Q2MmJQa1lxcXJpdmZmZXhWZlYyM0RHbVdjQ01BYU1FQUlJb29qZTNoN0xSMEwxK0tEUHBMdzhiTjYwQ1lxaW9NdU05anFjVHJ6NHh4Znd5aXN2UTFFVTlQUWN3SVlOSDJIMjdObERwdkNiZjhVYnIxZmlzY2RYSDdVK2RRZjdtdEZvRkI5djNvUUg3cjhYUDcvMnVxTWVPT2pUQnArOS9mSGZyVDM3YjNlTVpub09BSWlZMDZSaUFCUkN6SUhHRkxvZ2lWUWtBcFVnVUJrQ0hFU2toQUIrZndyeTg0T1lWdjRQY0xuY2NMdmN5TWpJUkU1T0R2THo4cEdlbG82OHZMeFJvUVlZRVZRbVJCd09COUxTMG9ZMWFmMTA2eWU0L1pkMzRwUlRUOE1qanoyQm1xK3E0NEtIaXFMZ3BSZi9DRUtBV2JObVd6NWsxUXhrOVBRY1FFTkRBOHBLeTNEVjFkZmdsVmZYWWUwTEx4NDdpbzAzUzJmT25EbE1zWTJ3VVdJc0VFS3NOdU9ta3FOY2dxL09lclFEMEcrLy9YYjk5dHR2LzQrV2xwYTYvUHo4ZnlHRUhIY283OU1oeS9CNlBIanhqeTlnd1VrbjRhdnFiV1BHaDJaUDBIM3dnZnZ3NEFQMzRmUXp6c1MvL2VwdWxKYVc0ZGUvK1MzV1BMVWFIZTN0bUZ4WWlJZFdQV0pOTTFyMHc3TlJYYjBOVnkyN0FxSW80ZHpGUDBGcGFSbjIyOHFGYnI3NVZxeGErWkJ4Slo0OEdjOCs5d0ljRGdjZWZHZ1ZWai94ZTd6NnlwOGh5ekpPUHVWVVhQa3ZQd1ZnNUNtdWZPZ0JTSktFaXk4OEw5NU1mT2xsQkFLSFA1ZndZRi96RjlkZkIwS0F3c0lpM0hMcmJVYzFqMDBIL2J3aHNyZnlsSmI3NnRBNGxPSmtVMnJXTGNGUUh6VUFSaVVCaUE1UUtnQlVwSVJLZ2dCUkEyUWlVaWNrT05QU2gyby9mVDRVRkJRTTVhbVpnWUlkTzdZUGkzNG1XMDFOVFVoTFM4UENoUXNCQUo5Ly92bXdtUjhYWERnMDdDZ3pNeFBMYnh1YWY3Qng0d1k4L3RnanFLZzREZzg4dU1xQzVLSWZubzI2dWpvc3U5SlFjNys0NGNaaENsczZGcjk0cWFtcG1EVnJsdFVPaFJCaTNmTDczSDBXM0FCUXJxcEI1M3h3aVV4VHJhQ2c0TVBYWG51dDdweHp6cm5BNVhJdE85ajNxS2dxVHZ2bmhmajlZNC9naGh0dnhoL1dQSFhNSGNjenoxcUVNODlhTk96KzB0SXlmTFJ4NURtbUo1NjRJT2tYMStsMDRxNS8rM1hjZmRmOGJIamZ6M256L3lsaE04U1MwbEk4OXZqcWhIOWJGRVY4dU9GL2orcHhPcGpYSE8xNGZkUGw5eWZQa3h3SWgvLzAycjRQMzcvclFHVWZaM3JHRWdITjlLY3BBRFdnUmcyZ0VRcWRnRklDUWtVUUtpb2FKQUF5a1F5b1FZYmI0ekdTYi8xRFByWHM3QndqcGNQTVUvdmU5dzYrV3RHcTJQbWFhOEdDazdCZ3dVbkQ3cGNrQ2JmY3VuekU1eDZUWUdNZk5BODMrNVlBY0JiY0ZFV2hab1VDSDFTZ1hLVUNVMjhhQU8zODg4OXZCZkJrYTJ2cmwzbDVlVmNTUWtadHdxNXJHcjUvNGdJME5UWEZSWG9FVVlSK0JKdDNUcXp4dVVSUlJEZ2Npc3VYMUhYOWkxMjdkbFdlOG9NVGQ0QkxaeG9CYWpFeXBOSllkdzZkQUdhUWdFQUVvUklFeUJBc3FMa2d3K1gwd09QendlZnpXVDYxbkJ5alRLcW9NSEdlV3FMbDhYZ3hNQkErcU1jZHlTVWR5eCsyMSt2RjdObXpJWXFpdFkwQ09tb3FPQll4dFFjVm1HMnEyMDFUQUZvd0dQeGc3ZHExWDExd3dRWG5lVHllbjQzMi9qSXlNdkIvZi9HdjZPZnkzUEx6ZzlqZDNJUllMQWFxNjZpdHJVRmhZZEVSTzBadXQyZUNDb2Q0Ykw3Tlk1YnN0WE55Y3REUnNkY0NXeWpVLy93ZlgzaitvL3Z2dXpka1UybDg1SlBmZUtpWlppZDBFMmpVaUh3S1ZBS0JURVRxZ0FnSFpMaUlETGZEQTA5SkRueG1TZ2VER3QvOTFwNm1rV3hOS1M3QnJzYjZFZUhtOFhneHBiamt1d3Myd0NpL3NzUE5EcmtFSmlwVGIvWXFCY3I1M3BocHFwdW1xUVpBWGJac21iWnMyYkpuNnVycVBpMHVMcjVFRk1WRHlzbkl5OHZEcWFmOU15Ni85Q0trcEtSYVpVeEFmTHJIVjlYYjhNVGp2OGY5RHp5RXFTVmYvME5PZEtXZldFRFlITktiYUFuZjBqRUxoL29oSmtraG1UUnBFdHJiMjlIUjFycGhkMHZyMjB1WExHNUtvdEo0bnhvTGpNV0dWSm94UmNxNGNCczFuNElnVWtrU0lVbG1odzZIREFkckVtbk9LR0Q5MUN6ek16L2Z5Rk9iVm41SXFUWXBxYW1vT0c3dXQvNzVIOUdaQjRkelVVcXQrUWt0TFMzbzZPaEFWMWNYZW5wNjBOdmJpM0E0akhBNGpFZ2t3by8vSTl6Z1pxTHJPcHVsUUFDd2VRcWlDWGlaVXVvQTRBRGdCT0FzS1NseGJkbXk1VWVOdTNaZG1SczRPb00vOTNic3dkeEQ2UERSMU5TTTd2MzdKenJvRGp1T2Jjakt5a1JoZ2s0VFRjM042TzQrK3Nkc2IwY2JNak16VVpTZzBTU2xkRTluWitkL3pwa3o1NU9Pamc3RkJyVm9Jb1VHSzlwSlZCaU5JVFRURXFGc015dDBJRWtTSk1tYVV3QW5CemFQeHdPLzM0KzB0RFJrWkdRZ056Y1grZm41bURKbHloR3RKZjVPS3phTHdJUmc1c3laN0FNYXB0enN0K1kyTEdKS0NLRW0zTUFyTjJhYXdwaEdyd0ZRNit2cjFZeU1qTW9ubjN6eWt3VS9PR1Z4UmtibWxVZjZpaTdMOGlFOXA3QndNcnE2T3JHM293MCtmOHJFeklOUVAwS2hmbWlxbWhCcUFGQlVXSWpPenFOM3pOaDcwalV0SWRUQzRmRExiN3p4eGtlWFhYYlpnVkZVV3BSVGFOWkVkbE9sYVNiTWRBNW1Sc2RiMmRiSzI4MzFValBiZVdkblp5TVFDR0R5NU1rb0tTbEJlWG41bUQ0UHhveGk0MWREUXdQcTYrdlIzTnlNOXZaMjdOdTNEL3YzNzBkZlh4OUNvUkRDNFRBR0J3Y3Q1V2JPWENEY0dFQmV2UW1tZWhOTTBFc0FKRTY5V1FydS9RODJWRXdwTGw0cWl1S1pSK0wvMWJtM0haTUN1WWZjdG9oU2lsMU56ZGkvdnh1YXFpTVMrVzQybjNTN1BSQkVFVm1aV1Nnc0xCaFZiVFEzNzBiWHZuM1FWTzJJSFRPMzJ3TlJraElxTlVWUi9ydXFxdXEvNXMrZjM4SUJMUm5VRXBtZDZwRFphUUhObUUxZ0FzMG9aSTlYYUY2djE0SmFSa1lHc3JLeU1HblNKQlFXRnFLa3BBUlRwMDRkOCtmQ21BUWJBTFMwdEdEbnpwMFczRG83TzNIZ3dBSDA5dmFpdjc4ZkF3TUQvR2kvWVhEVE5JMll3NXZabUQ4R04yYWVzcEYvTWc4M0FNNVBQcTFha0pPVGUvN2g2dFE3RUE0aDFOOEhnQjcyUnBNVDY5aGJ1cTV2Yld4c2ZMdTB0TFRXVkZ4MmxSWkxvTktVQkNwTjV6WnFXakJKb2VZeDB6bjgxbnlDZENQeWFVS3R0TFFVQldZbHlWaGYwbGg5NHdVRkJUQ3JEbUFXeFZ1M2ljeFYwMFNsZ2lBUVFSQ2dLQW9saExDR2wvYkFnaFVwSllRdzA5UTZBWStmZTl6N0pTVWxteDUrK09FelVsSlN6aWVFZkczZDd2ZjdJVWtTOHZJbUlSQUlUSHpyeC9HaWxPNW9iMi8vNjhLRkM2dHFhMnNaek95K3RKak5oOFpEelJZY3NJWVhVMUVVcVNpSzF2ZEJsbVhLZXU0eHFIbTlYZ3RxUnBEQWJEdFVXSWl5c3JKREh2MDRBYllqdEhKemM4R2FVUEtBU3dRMXp2ZkdaaUVTUlZGQUNHRUp2WlFPRFRYVmJXa2hHZ0RWbkcrcW1QNDM1ZHh6ejMzcmpqdnUrUERXVzI4OVBTMHQ3WHhDU1BIRTEzZGlKUURhcnE2dXJyL2VmZmZkVzllc1dSUGxUTWxZQXRPVDNTcDJzNU9kaTh5WHhpYXkyMVdhTE1zVzBPeFFZd0VDbHM1UlZGU0Vzckt5WWUyRXhyd3AydFRVTk9iL0U1RklCSTJOalZhMGROKytmVmEwTkJRS1lXQmdBSU9EZzRoR281WlphaGJvRWxZenljeFNMbXBLYkthcFNDbVZtSW5LK2Q4Y0FKeTMzSEpMeWhWWFhMRXdKU1ZsNlRkcGFqbXh4aFhRR3ZmdjMvL21talZyUG4zMjJXY2pIS0NVSkVDTGNiQ3pSenVaVXJPaW5jejg1S3dVcTlzMFUydDhvQ0ExTlJWcGFXbm0zTThBQ2dvS1VGeGNESmZMTmU2Ty9aajFzU1U0aWJCanh3NDBOalppejU0OTJMdDNyd1U0RmxSZ2dPUDlic3ozeGdHT21GMTlDZk8vSVQ0MVJJUVJYRWdFT01meTVjdjlLMWFzT0RVakkrTmNRc2lNaWEvM2Q5S0hWdFBaMmZtM1gvM3FWMVhQUFBOTWRBU2cyVGZGTkR0VkRtWWFiM2JhVlpxcDFPS0FsaWp5eVlER1VqbUtpNHN4YmRxME1adk84WjBCRzF0TlRVMW9iR3hFYTJ1cnBkNE9IRGlBdnI2K3BFR0ZCSUdGdU1ncFUyOE1jaGpLZlVzS3VPTGlZc2ZHalJ0UHlzM05QVnNRaEJNbXZ1N2pmMm1hdHJtbHBlWGRrMDQ2cWJxMXRaWEJpUWVhY2hCQVk4K3pBZ01BS0IveFpDcU5EeEFrQ3hLa3hFMW5EeUFZREtLNHVCaEYzOUlnNHdrZjI5ZGNSVVZGZkZ1ak9CL2NLQUVHZGlWazZvMXFtbWJsdmNITWRUUFZXMXh3d2VaL2l3RndORFkyT3ZMeTh0NEY4RkZkWGQyY29xS2loYklzLzNqaTZ6LytWalFhZld2Nzl1My9NMmZPbkYwY3pIaVZGa3NBTlNVSjBQamdRRnlTTGEvU2VMUFQ0WEFNODZjeDA1TlA1eWdvS01EVXFWUEhWWkRnT3dNMndBZ3E4SDNiWEM0WCtKUEFEcmRJSkdJQkxoYUxXWkZUQmpjdXVFRDRrWCtzUXdpTWZDSVZnR0lxT0F0d0FCeGxaV1ZiQUh6KzdydnZ2anB2M3J3ZitIeStzd0VFSjVBd3BsMGZyZjM5L2UrOC8vNzdueTFldkhoZkVxQWxncG95a2tJekw1aDhsQjRzcHNXdGtKVHlBQUFUVGtsRVFWVG1CdWk2VG5WZGg2WnBWbDh5UlZHc0JIV202QndPQjhMaE1OeHVOL3I3KzlIYjI0dnQyN2RqKy9idGgrVVkrUDBwRUVYQlNobVpNRVdQb3QrdHJxNE96YzNOYUd0cnc5NjllN0YvLy80Ui9XNW1LVmJDNEFLWDFBdlROR1dsV1hGQkJwdUp5cHVxTWdESEpaZGM0bHE1Y3VYOG5KeWMweVJKT20wQ0UyTm5xYXI2Zmt0THkvL2NkTk5OdFgvNXkxK1Vnd1Nha2dCbzlxQUFnNWxPaUFDanhsT2dnaWhDRWtXSXJDUktraUU3WkRoa0I0eXA3S1pTYzd2aDhYcmg5L21Sa21xTXhzdkt5a0p1SUlCZzBBZ1NIQWwvV3BqTHdaeDdET1Znaml1d1hYVFJSWGoxMVZkeC9mWFhZL1hxb1g1ZnJhMnRhR3Bxd2cwMzNJRFBQdnNNNTU1N0xnb0tDcEw2M2JpRVhwaCt0NUdDQzJRVXdFbEpBQ2NEa0JjdFdsU3dkdTNhK1RrNU9RdS9TVDdjeERxaUY4Z2RQVDA5SDN6MDBVZGZMRjY4dUp1RFVpS2dLVW1BcGlZRG10a2prREpmR2hFRWlLWXZUUlFOb0VteVdSb2xPeUE3SEhDYVVITzdYSERINWFnWjZSeFoyZG1tK1RuNXFLaXB6cjN0eUpzVU9HWnlNY2VkS1NyTE10NTQ0dzA4OGNRVDFoVXFHQXhDRUFSVVYxY0RNRHAxQmdLQllUNDRleTVjTEJhREtJcFFGSVZsZFpORTVxbk5COGM2aFFpbWlTcHhKcXBrbnZBVzJOYXZYMThmQ0FTYUFieStiZHUyOHFsVHA1N2dkcnRQQXpCUjFmN3R3cXh0WUdEZ2c1cWFtcXA1OCtidFpqN1Znd0FhdjZtbVF0TVNtWndNYUlJZ1VFcXBtVjlwSk5xS2tnaEpaTFdlRW1UWllTZzFGaVJ3R3BGUHR4bjU5UHVOeUdkR1pnWnlzbk9SbDVlSHlZV0YxcXpOSTcyOFBqLzI3dDA3QWJZanRSWXNXSUFOR3paZ3k1WXRtRDkvdm5YL3hvMGJNV2ZPSEd6ZHV0VXE5alVuemNjQkxod09XMEdHU0NSaUFjNVViOVFlWE5CMW5ROHdKQW95YUFCRTg0b3RVVW9aMk94S1RwNDFhOWJuQUw0QzhQejI3ZHRuRlJZV0h1OXl1VTZaZ056Umc5bmc0T0JIOWZYMVgxUlVWT3ppMVZVU29La0hDYk9FUU9NREE3cXVVMW1XTVV5bHhabWVUcmo0ZEE2dkY3Rm9GRnMvK1FRWFgzSUpNak96a0dPbWN4UVZUWWtiUlB4TlYyMXREZDUrNjAxVVZNekI2V2NNTDVYMmVuMEk5ZmNlTTUvbHVBTmJSa1lHVGozMVZGUldWc2FCYmQyNmRiamdnZ3Z3NmFlZkloZ01vclMwRkI2UEJ6VTFOYWlzckVSUFR3L2NiamZLeTh1Um41K1B3Y0ZCU0pLRW5UdDNZdCsrZmRhZ0UwbVNhR1ptSmtSUkpLRlFDSkZJaElxaUNOYXhGd0FSUmRFQ25LN3JnbWwyaUdia1ZEUlBmR2FtU2dsQUo1V1hsMjhGOERtQXRWOSsrZVcwNHVMaU9SNlA1NFNKM0xqRHUzUmRyd21Id3gvdjJMR2o1dmpqaitlVm1jNkJhU1NncVJ6UTdPWW1pNXpUWkVCajZSdXFxc0xoY0VCa0hUa2swNEpnS3MzaGhOTTEzUFQwcDZSZ3puSEhJUmljYktSekZBU1JrM040bzU1UFBia2FqWTBOR0FpSGg0MWw1TmZSSEN6K25RTWJBQ3hkdWhRUFAvd3dIbnp3UVFEQTRPQWcxcTlmajVVclYyTEZpaFZJVDAvSDdObXpVVmRYaCtlZmZ4NlhYSElKQ2dvS1VGdGJpemZmZkJPeUxDTVlER0wzN3QzbzZ1cENhV2twWkZsR1QwOFA5dXpaZzRHQkFhU21wdEpZTElaSUpFSjBYWWZYNjZXYXBpRVNpVURYZFNwSkV1R2lxTVM4V2dzMk01V3ZhT0EzSG5UUzdObXp2ekNWM0t2cjE2K2ZOSGZ1M09scGFXbHpaRmsrQVVEcUJKNE9hZlVxaXZKeGQzZjNsNXMyYldwWXNtUkpONFlpa2NuVVdTS284UjAyVk50emRVNmhVYjQvR2t1d0ZTd2ZtaEhCRkFTQk9wMHVQajhOc3NNQmdSRHMzcjBibXFwQ2xDVE1ualViK2NFZ0tBWCszOXR2UVJBRXBLZG40SkhISHJlc2tGK3VXSTYydGowQWdKNmVIbmk4WHZ6NWxkY0FHSjF4bnZqOW8ranQ2MFZHZWdadXUvMlgxcEFlQUhqdFAxOUZaZVU2Ni9FQWNQVTFQNFBENGNDcWxRK09tUTk1WElKdDhlTEZ1TzY2NjFCZFhZMlpNMmRpL2ZyMW1ENTlPZ29MQzYzSGVEd2V2UHp5eTdqNDRvdHg3YlhYb3EydERjRmdFS0ZRQ0pzMmJVSkZSUVZ5YzNQaDkvdVJsWldGU0NRQ244K0hmZnYyUWRNMHVOMXVSQ0lSQUtEcDZla1FCTUV5VVZWVmhTaUtiTllDaTZJUzB6UVZ6UHNZNEVUeml5S1pxazYwUVk0SG5iUm8wYUpkQUZvQS9MMmlva0orN3JubmlvdUxpNmY1Zkw3WmtpUjlEOEJFSzEyYmtGQlY5ZE8rdnI3cXVycTZ4cXV1dXFxMXBxWkd0eWt6eldZNkpnTWFEelArT2JyTjNMUVVtcmtoR2RCWXp6UkNDRnd1MXpDVnRxZHREM0t5Y3pCOXhneW9xb3J0dGJXWS8wOG5JRDA5SGQvLy9vbUl4YUo0OVpVL1l4bzMzL1QrQjFjYUJPL3R3Yyt2dVFvMzNYd3JBR1BPNTMyL3V3ZS91KzhCVEpvMENlLzhiVDNXUFBVazd2N05iNjNuVnN5Wk02enpzTVBoR0hNZityak5ZMXV3WUFGZWYvMTF6Snc1RSt2V3JjTjU1NTAzN0hIVjFkWG82dXBDWldVbHVNbFcwSFVkMmRuWmNMbGNhR3hzeE02ZE82MDBFVVZSa0pLU0FxL1hpNEVCbzRlWDMrK0hwbWxVVlZVTURnNFNWVlVoeTdLVmEyUkdVVmsrRWpYSGFRMVRjS2FaYWxVMmNKQkxCRHZwaXkrK2tPYk9uVnNOWUR1QXR3b0xDOFdYWDM1NWNtbHBhWEZxYXVvMFdaWm5Fa0pLdmtzVW81VFd4Mkt4cnc0Y09GQy9mZnYyNXNzdnYzeHZhMnVyYmxObGlkUlpNcFZtL1k0bFk5ditCdTgzaXpNM2VhQnhDZUJ4UUdNS2pSQUN0OGM5bE1aaG1wN0JZQUYyMXUxQVcxc2JTa3BLY01sbGx5RWozWWg2QmdJQlJLTlJ1TjN1UkNZMmZuUDNyM0gyT1QvR3ZIbUdTMmJYcmthMHRyYmdEbk5ndDA1MWVHMURWY3JLcHFHc2JOcVlQdytrOFhxQ0wxMjZGR3ZYcnNWdHQ5Mkd0OTkrRy9mZWUrK3d4NmlxaWx0dXVRVS8vYWt4MDdLOXZkMXFPUzZLSXQ1NDR3Mjg4ODQ3S0M0dXh1VEprekZqeGd4VVZWVkJraVQ0ZkQ1cmlJdlg2N1ZTUTJSWnB0Rm9GRTZuazVqUlUycUxvREt3V1ZQc0thVzZlUitEbkFBalJZQXZ3QmR0Z0J1MjM5emNMSjU0NG9rN0FOUURlQmVBdUdyVkt0L3BwNStlbDUrZlA5bm44MDJSWmJsRUVJUnBNSHJMamVVVjFYVjlSeXdXYStqdjcyL2V2WHYzbm5mZWVXZnZuWGZlT1FndUoyd0VtQ1dEV3R3K3A4eml6RXliT3FNMm9GRytrd3pmWWNZT05MWUJnTmZqalE4UWVEekl5OHZIak9uVGNhQ25CenZyZHFDOXJRMDMzblFMSnVYbElTOHZEenQzMWlVOE9QL3g3Tk53dVZ5NDdQSXJyUHNVUlVFZ0VNRGFGMTRjOXhlNGNRdTJKVXVXNE1ZYmI4VFRUeitOc3JJeVRKa3laZGhqcGsrZmptM2J0cUhFSEtaU1VsS0NaNTU1QmhzM2JzUlZWMTJGVFpzMlllSENoVml3WUlHVjg3WjU4MmE0M1c3NC9YNXJxclhYNjdVaXB3NkhnNWtWbEc5b3FXa2FCRUdncXFxQ1VncFJGQ21sbEpoQkI4S3BPRlo0VHpqSUNTYmtoQVNRRzNILzFsdHZIUVRRRGFDR00zMkZ5c3JLclBMeTh1eXNyS3hjbjgrWEo4dnlKRkVVZzRTUUFnREhTcnVIQ0tXMFJkTzBQYkZZckQwVUNyVjNkbloyMWRUVWRGOTQ0WVVITUpTZHI0OENzMlFLTGVFK0J6UGREak1NRFFDaXlkUlpJcURaaXRhdGpVWGpBY0RuOThlVlJ2bDhQbXpkK2dtbVRTdkhxYWVlQnJmYmpYdC9kdyttbFpmRDUwdnVjZGk0Y1FNKy9PQUQvUHZUejhZbDVaYVVsS0N2cnc4ZmZmZ0JmbkR5S1dob2FFRE5WOVg0MFkvUHRSNnpjMmNkcXF1MzRTYy9XVG9CdG1OeEJZTkJ6SnMzRDNmZGRSZnV2UFBPaEk5WnNXSUZ6anJyTE54OTk5MjQ5TkpMVVZOVGcrWExsK1BtbTIvR2pCa3prSldWaFk2T0R2ajlmaWlLZ3ZmZWV3K1JTQVN5TENNOVBSMzc5eHVUejMwK24xV3h3RTVTdDlzTlZWV3hmLzkrcWlnS2ZENGZKRWtpZzRPRDBEU05NajhHU3hjUkJJRVYyNE1CYmdUSVdZQ3lkUjBaYWVPVGg0VWxTNVlNQU5qRC9WMzJHdVRSUngvMXpabzFLeVVRQ0tTa3BxYW1lRHllRklmRGtTSkpVb29vaWltQ0lQZ0lJVDVDaUpjUTRqWkJ5Qm9Bc05jQ0J3WnJiQnlsZEpCU0dxYVVoblJkRDJtYTFxK3FhbDgwR3UwYkdCam83K25wNld0dmIrLy84c3N2UTh1WEx4L2c0RVZ0SUtNandFeTNLU3h0dEkxMTBVZ0FzamlZOFNBRFM2ZzFwNlR4NWlhRG1hMnRVQnpRV044MHA5TUpTaWxTVTFOdHJidFRjZFpaUDhTNzcvNDNHaHZxNFhRNmNlZGR2NExQNTBOcmF5dHV2dkZmb1NneDlQYjI0b0x6bHVBZjU4N0Y3Yis4RTZzZmZ3eVJTQVRYLzUraENaS3JuL29EL0g0LzduOXdKUjU3NUdIODRkL1h3T1B4NEdiYjRPR3F6ejVEWmVXNk1RKzJjVmQ1b0tvcTFxMWJCd0JZdVhJbGJydnROalEwTktDNDJPZ0JLVWtTWG5ycEpWeDAwVVVBZ0QvOTZVKzQ3Nzc3VUY5ZmowQWdnS3V2dmhwMzNYVVhDQ0hZc21VTHJyNzZhdFRXMXNMajhhQzgzSml2V0ZWVmhXWExscUcydGhaLy8vdmZzWGp4WXF0cVlkZXVYV2h1YmtaRlJRVVVSY0hPblR1aHFpcUN3U0NibG9YdTdtNm0xQ0FJQWp1eENlZUxzeURIOWhOQUxnNTJuSm9URW9Fc3dUNS9tMmpqWDJla0RRbHU3ZnR4YnJBRSsvenRTSnNkWlBZdG1Vb2J0czhHOXlTQzJHZ3dZL3UyeHFVSEJUUmVwZkhOSUh0NmVqQnBVajY4UGkvOGZuTytwMW5BbnBzYlFINSsvaUdOd2ZzMlZzUE83VGo1NUpNbndEWldWbTl2TC9iczJXUDUzK3oxcG14NGpMMlpKVmR6Q200TW9GVzh6TXhVUHNqQXlyVzRzaTMrY3lJMjBNVkJqbElRZ0E2RDNTSCtuQWhzUE9DRUJGQWJDWEFqd2MwT05DU0EyRWdLVFUraTF1eU8vVkVoWm5zOTNtL0dZR2JkY3FhbmZYQTN0WGR0WmpCenVkeElTZkVQYXdMSkZGcDNkemNLSmhkWnpTQXpNak90NG5LL1AyVk1mRStPSmJDTkcxUDBoQk5Pd09iTm04ZGNFSSsveUtTbXBqTHpsSEpkSEFqWDNZRVFRdUpVSEl4eGdjVHcwMEVBQ0VrRUpVb2gyS0JIUmdIYVNIQTdGT1YyS0dBN0ZMTXpHZUNvRFdnakFVeTNBd3dnbEJCUWdJQVFDMlFHekFRQkFqRWhKZ29RK1JJb3RobWxVRU5xVFpZaENBUUNJVkExRGRtcHFjTWFRZnI5ZmhCQ0VBd0dvV2thZkQ0L1VsTlM0ZlY0MGRmYmg3N2V2bVArUk00UEhsdk5hc1lOMkRadDJuVFVYb3NmMk56ZDNSM1h5REljRG8vVXFkZFNib3FpV01yTlZHOThEU3JoRkJ6bGxCeTdwVFpUbGNGRTU5VWRyN0lJQVVrRVBRNlNvNEZNR0FWb3lhQkdFa0I4TkxWR2t5aTNaS0JqY05KSGVnNXo5ck9ac3B6elA1RXFzOEdNUUJEWTdGcUJDc0x3bVJxU0pCbGdrMlRJSnRRY1pxS3QwK0dBcnV1UUpCbVptWmxXNVFCckJDbUtJb3FMcHlMYm5FVXdzU2JBZHRSWFFVRUJjbk56MGRiV1puWHBUV1Nlc280aEl3R08zeGpZUm9NY0J6aG9ta1lKa3hoRFFJdURqVTNoeFVHUFN6MFpCakRUdEIwSlpFZlN4MmI3bVNtcHBNQ2ppWjdQZGM3QXNIMkQ5Z2JRQ0FFQkFSRUlGUWhCbkRvekZCb1ZCUUdDS0VLMFEwMlNJRW5NcDJaQVRYWTQ0SkJsT0V5ejA2Z3FFQ0dLQWdLQmdOV3VteldDbEdVWjAyZk1PT1NCMlJOckFteUhkVGtjRGhRVkZWbUE2K3pzdE5xUTkvVDBvTCsvZjBUL1d6TEFjZjQzcTRNSUR6a3VpZGlDbkdtZUluNjRQYS9jQ0V4QVlRaDJJT3c3bmd4WU5wVTNxaitOc24wNmltSWoxczNCUUc0VTRQRS9HK1lqLzNkc1RuOEFvTHBPSVFnQ0RKNFJhdlkvQTdHVW1jQUZCa1RUN0RSdmVZVW1Nb1hHQWMxVWFQSEJBVGM4SHNPWHBpb0tKaytlYkxYclp0T2lvdEhvaUZBalZWMGdUMVlCOVQySC8yUXVTUU85L2pqUTQ3SW53RFllRjZVVUhSMGQ2T3pzaEtwcGgxVFVHNGxFME4vZmI1bWpiRXZXeUpKdGxBSTZwWkFrQ1U2bmN5VEFRZE0wdnByQmdwd2dpS0JVcDdwT1RjRHBvQlNnb0t6OUtnQkNUUENaMzNlWUlCd09LaTZnUkVhNWpkdTNlSFZ3L1F6cElTcTUrRGVmNEhkY3poWmwrYytpS0ZyUFllYWxwbWtRUldrWXpBaWZnMmI0enl5b2plWkhrMDJ6MCtGd3d1RjB4QUhONHhtYXZENFE3a2RwYVNseWNuSVFDQVRnOVhvUDdnUmJYUVUwOUJ5WkU3KytCK1RKS3RCbno1Z0EyM2lFV2xWVkZVQUVlSDErZUwwKzVINk4xbEtEZzRQbzdPeEVkL2MrOUppVDZmdjYreEFPaFJBT0QyQndjQUNSd1FnaTBRaGlwbm9iR0J4RUpESUlWVkdNcTNwaTh6UnVZNHBOVlZWSWtnUmRwMFNuT3FpdXd3Q2NNUnFWUldWTkFCRFo0WUJ1bXJxTVJ5eTZOOFFuQWs3TklZbDV5WU1TQjJHQ2pnSTJBa0tTQWk0T1dQR1A0MzRtaEplYW9KUmFkWmpzLzBnSU1TcEVIQTdtTzZNTWFoYk1ERC9hY0xOelJLQ3h0a0l1dU53dXVOMGVlTDBlZUgwK3BKanBHMm5wNlFqMzk2S2lvZ0llaitlUXppdHlwS0RHd1czQ0ZCMkhxNk9qQXlBQ2NuSy9XYmRSdDl1TndzSkNCQUs1Nk9yc1F2ZCtNN2pRMjJ1WnB3TURZUXdNR0RDTFJxTndlenlJeFdMbzcrdUZKRWx3dTkwam1xaE10V21hQmtWUklFbnlVSkJoQ0c1RVZZMi80WFE2emNlWS9qaFJoSzRiMWxzMEdqV1VpaWhpeUpaRkhOZ1NwQVF4Zm1Bb2RrRVRYaXlTdGFObWJhRGkxWlQxUEdyL3ZablF6SVBOQWxnQ3B6OElJZEEwRFE2SHd3SWFNeThCd09sd3hxZHFpSUwxR1ZGSzRUTHJORjF1RjBSUndoZWZWMWwvMStQeG9LUzBGSG1abVhIcEczYUY1dmY3a1pLYWl2VDBkR1JtWkNJN0p4dXR1NXNPR1dvVGF3SnNYM3QxZG5iQjYvTWZ0ci9uZExvUUxDaEFZTklrTS9ldDIxSncvZjM5Q0lWREdEQVYzT0JnQk5Gb0JBNVp4dURnQUh3KzM0ZytPSDZMeFdLUVpVZGNBYjhKT0txR0ZCQkM0UGY3VFJWSENhVTZkTXBNVm1vTXJ5RUNaRW5pL1hTY3YyN0lGY1lCei9xSERPME5neDhiTkdLREcxVlYxWUlWcFlDbXFTQ0VRaENNYWd4RlVVQUVBWkpvdkNkVlZhRHJsQnJGNGtNcXpYTDYyemFCR0NhbXBxblU1WElOeXpkajRPS2hGZ3FGRUFxRlVGdzhGUzYzRzNzN090RFd0Z2V6WnMwR1UzM2ZPMzRlMHRMUzBOZlhoK3B0WDhMcGNHTEd6Rmx3bXdyTjQvWEE1L1daTGJvTmhaYVJrWW5zN096RG1seWIrZnhpS05XZDZGdjF2d0NBakNkK2lJRzM2aEI1cHo3cGMvelhIUS9uS1VYWWQ0SFJqc2g3K1d4SVU5TFJlOCtIQi8yNm96V2JQSmJXL3djYUx0Ynd1T0xUcXdBQUFBQkpSVTVFcmtKZ2dnPT0iXSxbInNyYyIsImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBVFlBQUFFMkNBWUFBQURydkw2cEFBQktvbnBVV0hSU1lYY2djSEp2Wm1sc1pTQjBlWEJsSUdWNGFXWUFBSGphcloxdGx1VzRyV1gvYXhSdkNCSy9PUnp4UTJ2MURIcjR2VGNqczF4VnRsLzdyVzZYcXlJejRzYTlFZ2tjbkFNQzBMWC85Ly82cnYvNnIvOTZTbXZoU3JtMjBrdTUrVi9xcVllWFA3VDc1My85L1BlNTAvbnYrVjhzdi83MC9QWDcxeDgvQ0h5TnZ2TG5CL1g5K2ZxOGZELy80eGQrZjhZei92cjlxLzM2U1dpLzN1alhEM2pqbnl2d2svM3ordk5GOHYzdzgvMG4vWHFqdm4vK1VIcXJmNzdVOGV1TjVxOFhua3Y1OVcvNjQ3Sit2dmozNnkvZnFLelN5bnhRREdISEo5N252K25uQ3VMUHZ5Ly8xdlBmd091ZUdQbnpFOXQxdnZ5K0pSYmtMN2YzKyt0OS8zbUIvckxJdi85MC9YMzEvL2pUM3hZL3ZMKytILysybHVYWEd0M2xYLy9neVgvN2Z2empZOEpmek9HUEt3cC8vY0VZNlo5djU5ZS8zN2ZhOSsyZnUzdFRZVVhMTDRzNmkvMzhmaHRlT0ZqeWVINnQ4RS9sMzh5ZjYvbW44MCs3MzN1eTVldWU5K0NmK2ZRbnNDdmY5YVJuUGUvelBmdDhuYy9rRWxQWW9mSTFoQm5pK1Y2TE5mUXdvL3VVL09mNVFvMDlydGpZeXhuMnhmYWxHUDY0bHVkOGJqK2ZONS9HSjYrSGw0YUhOM3Y0bFgvN3ovWGYvZkIvOHMvMWZkTWxldTcyeDFweFhVRzc1akxjT2YvTHE5aUQ1L3UxYi9rczhPOS9mbTMvL1NmN3dWVFp3WHlXdVhHRDd6MSszbUxrNXgrMkZjOCtSMTZYK2ZxenljOVYxNjgzWUluNDdNekZQSkVkdU1zVDgxT2V1NFpRbjRkMWJHelF5NVdIbU1KZ0I1NmN3K0lpUTRxeGhLdUdGdnhzZnFjKzU3VWhoeEw4TnRqRVJ1Ulk4SzNHRHIxc1Zrb1orNm1wWVVOdmpqbmxuRXV1dVYyNTU3ZkVra291cGRRaXlMMDExbFJ6TGJYV1ZudDlXMnlwNVZaYWJhMzE5dmJRSXhpWWUrbTF0OTc3KzRicjVZTmUzdXZsOVMvZkdXSEVrVVllWmRUUlJoL3Z4SHhtbW5tV1dXZWJmYjRyckxpQWlWVldYVzMxOWU3bjJpREZUanZ2c3V0dXUrLzN3OWErK0tVdmYrV3JYL3Y2OS82eGE3OTI5Wi8rK1IvczJ2TnIxOExaS1Y5WC85ZzF2bnZWK3ZzdEh1RWt1MmZzV0VnUE8xN2RBUXc2dUdkM2UxSUs3cHg3ZHZlQVUrVEFSV2IzNWxxUE84WVdwdjJFL0QxLzdOMC9kdTQvMnJjcnQvOW8zOEwvYmVjdXQrNy94ODVkYk4wLzc5dS8yTFZsbkp0bngzNjgwRFc5STk3SGE5N0FGWDFqZmZ5MXhDKy84YXZqMjdOdVlkSWYvK2MvdlY3dlo3LzE0VjdMdStwVGMwaWx2V3h1SEozTEdIUGlWMmxFTDJXL2laZU1IZExYV255NWc5bldNKzg5cmpCbkhMdTJKKzg2ZHN4ZmU0RzZiK3kxVjU0SmU5cVR6MXExMzJ2dDhYQWZNKzkzalRWQ0duenVFL29NcVY1UDQ2MG02NFgxM1h2WG1RWTJzTCtZNy81OE5lMzY4TE9ZNTczbUhwM3RIUFVlVDhwanMyT0EvOHN1WWxUWFRLTFZzK2FxTDhRa3gwMTRmZGZMT25RdU1lVEJubGJXSjR6U0FmWTN6L3FOVk4vd0xTeHJmaVhPWEVlNklEVjEzaXhHYlFtRDdrU1ozc3Yzc01GZjNTekdIUHh4eGEvTkw5eGNudjR6b0NGMThxNnh6b0J6enE5ZGJlV1MwbUtkWnI1SHVWc1A3UHNjUUg3ZnE0VTFTMXhoclB0TCtWc1kwRno0UVk5NXJ4cHEzeVd3RVNtWHE3U0hQZmxxNXVhTU4rdTcyWXpPNjl6WWY3UDV6OHlyY1RIQVFTejl1MGNxMXpEZ3hidVV0UWF3d3EyRnVQRWpEQk96aldzVXRqbHlLWFBFL1BJSkJjZC9CNSs4NDZoY3lvTWg4R3ZYR01lcS9qdUwreGMvbTZXTVdQYVk4Y09wOTJ6ZkZkWXFIZmVPaWJET1BXTWJLVXhYcHNjMlYvYlcxajYzK1h3dllQL0hXMk10SWJBaFJQcjJmQmVoL1FGOUZtQ0NLZlc1dWNmK3hsQXg0bWVYd1hLWDhSVSt2UlI4OHlQQ1l5ZnRUZmViV250NVQ4eDlyblcxOHVVSmlIM0huTXFMRFg3LzdncStmdlBpcjZWdngvcHhRVEdOc0h0Ym9PUDFzb1A4dFh3UkFNSzd1VXBRRE44SEZVYm5mbk1BU2NTczJPVis3N05lYkNBYUJSZi81bzlYNzY5ZVVoNHV2dGZ2aWQvWi9mMDFYZUZsaTJyQldwNVpndWF5ODRRbUxqeGs4LzZzSWV5R1QzMjBsVEJodFlTVHhJY2tQUXgzL1BhajV3NXNhb1JudlBWaks3aitZNWNkTUs2d0JSY3UxZGJmTC9MaGtYZTRObEc2bDhhT0R1Z1NLMVJUK2JCalhqbEhMOXQ3WHZ5aEZaYWtoNmZuRzJzTEtRZnViNy9TNzdyRzgxNnBqRldlZC9JcGdHdHZCQUt3R09OLzhsdnpSK0J2TlU3d2xML09BejR6cHhiM3lDek1malRIY1dOVTE4TTlWWnowVGJNMjdoNUhlOWRSRUptOWxJN0pMbExBMTBKZ0pmK2R5VjcvdVQwL1h2SEtHdzRYSmpmTkJSY2lUK2NlcERVM3hqZUJWVHhhT2xwRHdUS0pydlV0R3lOczd5N2xHNERBZ3BEbGN2ZlJpbXZFUlk5S0dKMVZUSG9IVjlRelZERUJwcE9RcHJrV1ByVHp5ZzF1d25uNC8vZXlpckVOWUpLVjRwNzUwekQyQVR2c3lWcFB2OHJUZExXT05RSlFmT0p1OGRDdXpYczloQzhDWWt4RXhNZFBHUnU4aWdSVklta3BzZDBFOC9SaUd2dGEvVTQ1Z28rZG5jZW5TOFpRSGx5clB4MThZSjltNUJjcWNjWlBXcVcrWHd0N0VqSW4vc1J2YmFJQWNZMzd3RnJaNWtCRVh1bmV4TS8rZU5zdmlBT3lEZEIxMTRKb1drRERBMFpoTWMvZ2QwZHEvVDdzRysrNVFPRmtWRFdDRFlKYzIxWGt4ZWkrQXRCa1FoUG9jRStDL2lEK3M3SjFQanZpOXgzR1V4OUR6cTQ1WFdQaTd2RVJFTURZeGtKeStiemxuQVQrR3JtaU1jcXp1TTNiMEFRUmdPaDhIU3dCL2lOK0dTQXJmTzlLOFNVOGNodjh6U1VocW1DNjVka3BHOGJBSlZaLzg0dG44VEdMbGdGckl4Vy9qemtsc0FFeUVhK1JGb3NPUUk2YXhTaG9GUHpxL25hQU9zQzI5b2RZTFFOQ1JkUWpYb3pBSGNBaXFtamEwaUljZjVOMXV6Wk9DSVpGU0VlcXdENlVZMGxDcHRZRGpFU1FzUzhpVFNHNFZqQ3NOTDZ1dlo4SmZNU1ZoYkV2dlZkSmE5OGd3ZDczT3dpM2tXQ2VYdXc4QXk4ZjcvSHRZcEM1VTJFbFo5dkljYkFLLzBPTHNWdllQcHp0SmtDK2hPUWJ1cGQwcHp1dnRVSW0zTDdiQ3dVRVNzejVXYmxCSE91SFMzUFJtTUtRSlJMU1lERWZzQkhZTlJ5K2x3eDI5bHN0QmJ6aVFSdkN4d2RqZmRBVUdDQXh6VVdGeExWYUNPRmpBOURneFFmZFpITUpKUmU2ekhDQ3pSUGVJVWg0TjVmUDRzUDFRSFo0M3MwTnNVNHBEYUltZG5BTEJqS24vdjVjRmplVzR4VXlSR2krSFhMWUMvNkN4QUtWY0NQOGpoc2hxT1pudndUbXNEYjJuRURWaVRNUVplL2FpWDdZS0phdjhJdlF4ZzVtOTRGNVlFejNCOW9BRzRtTDc4QXc5S2pnM1VSMGRoNEVaM1hlbk5oWjNwZGJ4V1Q3M250ZFMzNUJOQW9ZZDRzRHozZzdMdnBKQS9BYUtCWnZnQk1YMW4yOVdNbWNIZGJSY3lDWUpTVlc1WGQ2dmZTZVJQZ0k4QnRDOWF1ZHdDZ211QTZsSS83Y0IvV1FCa0FNWkJLK1dONVFGd3FoNUFGWTFjNlBCbS9VZVBsczNuWGlWckVNcENCMG5vMURYMWVNSXh2bmVvTkpnZ0VMcmM2YWFrdWJWWGxZbDRWbEJRSWtiTXJOVGMwZFJjZWtHZ2hvcUljMmMrdDU0b2tUTXdBdVFBYmVlMkUxaTFENlFNWUMwZ0NxU2VSWUY4eXVtU0tBanFVcUhpQkljQTU1R1ZFd3NaUlFwRGsvc0creElZU3JDVTBCUjNadVdncHNZY0w1MkRYQXZHdktQVWFpQXdJS2x3V3BXSFB6UGZ3V1ZCTmtqdEF3VENPV2I3NWdub3QrUWhXdndLbnJ2bnJDbTlZTDJ6VHlQVFVBeklRTDRESmtkQVdYRGdxaFBrQ1laMjNlSFJ3QmFOeHEyR3JxT0FnN2VvUFpnQWg0RHVKcWh2ZFRqVE5xc0JjSlhURENSSFI5Mk1EcFp3Z09OMkU3dzhwQmF3SXpEbG9ENEhvQjVIQ0xVREo0OVFiV0N4VGlBb24reUFEczVlMndpL0tDbkVRWGpIYjM1eDR2Q3h6QlVvSUlXOHJXb1VXZ3IwUWIvSE9OcEJXai8xaXhUdUJoWSsrcHo1NTBHeXNFUnR4dzVwNGpJVGRPSWhpVUFFSjhBL0lRclNlVmhZWUpRanM3N0gyK2NDUXVHWDhrSEJDOE96aUZIRzBoSmNJc1lWTWdMdGd2VXFVU1A5VU1GMFFwanU4dUh4NnNXZ256WXpIblU4SGtyK2NLeHpkU0FUeVREWUlrVHJidWdUQUNQQldUZnJHcmhHOWVMOUhLUDZKTStSTkdVSlArNnk5MWJpWEJzN2lxZ0o0QzFBSExoUVJDVmdTa1RKUTlZa2U0TE5RUHZJa2RKb0NPaWxJNUNkR0FrOVVYaEk0RUtaeDgrOEdHT3Q4WHFwYkN5OW9EVTVDS3lwSzFXY2VGZlV3WXdyY0NvaFg5M1JNc0VIN29Uc0FFMGJtOEFRZ3dDTVBwVWJSQjBJM0ZMNlFFbklhMHNNdDN2ZEFrMzBOY2hLR3lwSERhSmpYZXQxSWJVK3FUaTlrOVpKZ2Y5UGcxakhrRkV6S0dHNktGNzdJaDF3bmhSNmoxcGlEampTVU9vTklORkJwckJ5R08vK0JaZXN6NzVjNTFGUlRsQm9sYklPSmwvQnBKeDFaZUVjditqSTEzbDQrQ3dvRVk5TEsyUkVWZXlKMHZUTjBQWVZNSkZ4MlRhd2d4Z2pPWWl4SHRQSUNrQzdjWUgrOFA0bjFMVGY2OU4wNnZqZ1RtVW1oZ0M0dUh3NEVvMkNUT0FnRUQ2aUJWbnd1R1JZLzh0Z3MwakhzaEJGQUZEZmNObUVyMmN4QzRpK0J1S3F5ejZnTW43cUFRd1pOb2puYzExU3ZtR0hDOHVIRVJYZ2tNYnN4RzVNaUdZUUpRZmt0NkFOZTM0VkhObldjTkRpRDFrMVpFNDM1dk96RnA0akFENGNmSHNoTUp3aEpnNVRBRkZ1ZjgxZ0E4TUNlRFVkc0dJbHk1SnhPYUl4THAyRHN3Q3NrTW5zQjhMdmdBZkp4OU53b013UHJlSU4zTnZSQzdNZU1YTzRiRVRwWWZQdjZDZzF3Rmk4VjExd1RyZWdzYjJVYTRaSE1nQmFvZWlXc3VGYU5KWExNOHBCTnA5dEVvbU1lSUNlRDd5ckd6bDZWbEtURS9TRFpMUDVFUWdBdmsrTlhqbDJaRzRBZGxvQk80U0NWU3dmaUlJWlYvdi81RU16UklpVWVYSm1wT0JkNElZOHpyVFJnOGtRVyt6VzlYV0dFMFJUSkN4NGVKRWdBZ2R3SHlmRk41WHpFUzFQNDlzRnpvMzNvRVFaWWxYeTBaN0RHTDczTzdJakljVGNsNnZRQ0l2MDRVYmtab2ZpV1BEMUkrRXlTQmVBUEhiZnpwWFFpSkhTNTBZTTY5dzJ2TC9neTZCUFBLVnZ4YURoY2pFWWhRaWIyYmdJQUNzemhQVFRkUnFiRzF5QVFXdEpsaGYvZzczeFhIUzVBQmJLUXMxbzZqQ095QVVpb3plYkF3RVRWZlJnMzZTWWczS0czSk4rdk5HN1h3Qk5qZDRIS0krTUFQY2FraTVIQnRERGVqKzlnempHS1lNTVRKaUFBZzI1MzRYRmtOL0NHR2hjVmRFMHZlQ2s2azViY2lLLzF6UWR5RWx5VHFIYTcyNVVHWVFESHp1Wkcvb25wQjVZclNmUkNUZlVOR1lkWTNuSFBJWkFKeUQvNmNYendLQm9uUGNTUEFGWnJQZTRaVndqakdxTVh3U2lSOE5QRE94U0N6cXZENXI1YVZnSWlZUkpNVVJENWU4YjRxUHZpN0Y1TUM3MGNvYnhncGtwQXJZaStoS1lxTHBkOGs0aU4zK21IcGtLcWdac201aEhQa2xYbHYrSXFadEk0NzhUMkUyMjlidi83cFFoQWVLUEJ6SmdGU1lZNnNDT3h0QzNoM0FLSUQyaWplUmxsVys4R0xIaVJSdXZobDZUdWNLK0pWaElZTU9VSU9RRFVLWlA4TExNaG1sWEJzeURBaHlqd21sNy8rdGp2WDkzdHpjTkVjRGp2bURiaWhuUk9Pai9hUmZrYzJDeVoxQ0dEYmtERndGeFNxSzV2VUsxOVpGL3JtSVJ3VDdMeFRqMlpNRldmMkZpYi9uWk01S0J3b1FIamQzQlpzOWc5ei9jZEZzVWJiSzY4WksvbHUxRTh3ek8raDYwSzh3R3o4RFZuUmVLOGxyMFZheE5kTUw2UnU5M0diNlVXV2huakJmRk9ycHNyVVpWa1VoWEdFb2YzOXEwOG1aa2kxVFgraUxZQWErWEo5dUtKOW05dG1IV0NGSGJxeVppRFdvTGlBZkN6SENBZFlZcWNtdkJGUUQzK0R0MmJzR1Y0SHFRYW4wS2tROWc0VE80bW50eUpDUy93M1Y4SUs2TEd4d2poWXJGQU5mOHArSUJVeWVSR3VDdEVUTVlWQThKUjJtME1DODkrQi9YNTF3K2FnS093T2tmZE81dUtXeW1pZ0JBdnFMR2dLNE01MW44djQvdXlvZjc2UWp6MEc5cEN4alNoQzdNWVB3UisyRk9XTnIvRCtjUFRTRzhDR1ZtZ05KWHQvQlZZRyswUEJoeUdoQk53N0lUUEJBR1dxUlAveHFvMGdhWmdZNFA3ZUFEaWtBVFZ5N2VlRnR1NnQ5b0pPUWM0RkZSZzZ2UHJGMU1HZVhUL0UrZ1BxcGc5V2h0U0ZnQU8rQ0llWjNJc0t4RjdRUWVMMWN6d2ptM3NzQ01pQ2VxdlRvNVM0aHprbjJRMXZuRG82SFZva2hxc0x3VFRDMkFNRDJSZWhuc1dBTTNTbzJ3ZnRoeVpBR0Q1MzVYbjVWYVFsd211bXdtMFFOTUNGQ0QzQ05jdnU3RE1lRFV5T1pqNzdoeDdoNU5nSFV0SXMyRHNWaUliS2JDb2FWcDBDTWFoNWpBUDNmVEZMZUJVRWxpZ0hQK1NTTC9VdWxrelEzcmZISEpBT1VDeDZxdHkwY3lrQWVyc1hreVVUR0J6L0dnYXZoR1ErWndQbEhGaW5RLy9RTy9EQlYva0hjR1djQWRuVTRHNGdhekRCNFE3eWxqQmJyamRyLzNnL1AyTDFrVzltc0JBU1k2RllSTTEzNFpLWURmc2lBUUV2Q1NkOENqc1BpM2lmMjBUSVJHczh4T3pyZy8zaWhxQlBXRENMWVdvTUFOdmI3QmJMU3B5RzFTQ1FRRjVBR0NkcEd5Zi96TG1pVEovMkZjK3VJRnEvVHZtRnJNZGZPQm54eVdWTFc3RHZpVkVpa2VEeEExV0ZtMFhzaEhVQjV6QnJOTUdFMW02UE13aFJZRTB6dzVuUUhlemFEVmplSUJOdmpBNzU3cDhVNzRSakxQT2szUGQ0YnUrZlVCUlordlRHY3ZrbHY4bzlJbkJQNkErcEpKdmhrVmhCSXhkVGhCRGVneEJRTnFKa0lBaUdqLy80blR0ajhOKytWTHJmQ2JYdzU0VkJCUk9pR3dHQTViTmx2QzF2VE9BSkNpelRjWVowb2dJQjdtTmxaUTR2dGc4ZWdZVlFRUzQrZUtiTmRpRGNDYXNEQnpSTjVCRjlOK1dKVnVtSFBSVitCTWk4VC9tTWZxbDUxQzBiZWZkRVd3K3dybmt3QXkwRTR3bGhEeHdUaTBEVFdINHczRXZvWXovWkhSVjJCN3d6ZUkyd04rbnJZa1RQcjVROWlwWEYvektNaW5qL0lnTUJYV3hwdGladjczampvL0dDYVd5ZktRSzJjMEVUTDZ3Tklib251eFhEQUptTzNHa1JodEZ1ZHJpYWFrVko4NVkzOFNTWlJNZEF1RnpJVTN4dVhtK2VaMTRtYWowQnd5YUEvY3dPc3NxbUdFQlNMbjFnR2JlSG1oTkdVUU1CQ1ViS3k3aVUwUlZqTmNDU0FuZ0VhcmtzbWRYQUlWajNDblNqREpJL3hjeUJUR1F6TzZJOEI1MlIxZHk0YUdndUszZEFHa0JvL1dMVm9rZXFzczlzRHU0eFZ5QVBVR1crejhSK3NmUjFrc0VwbjNPdUFGQTB6NFYwanFtU2UrS0JFYWkvMG9WMVlGZkxCK2VEUFlNV3c2UUZ3UWQyakl3YmdOczM0RnFMSFlNSVJZVHZzOGRraitIUjE0S05OYzJkVDlDYkg4d285Qzk0Nk5XTS8rSXNzY25ySktCREx3TFhORjVvbm1lQmhJWkJuT3JKek9pUnpnTTZSaERrMzlpSmMwaG9FeDEzckhDOFdhYld2VytjQlRoN01pVFovRHJ4SVJIS3NEZENkb05ZOFJWSEtBRHo5cXpRUThlNUlBTlEvTytjbGo0QkdZQjhSSTQ4QVJUbmdyRW4zQnlGalJEYnJQaUZxK1VZQVdoQ1RabGRvd3d2OGNqTTJGNDNsMkMrK2I2SnQ4MWNYczluZllnb0EwWUlQZ0xzUU5wM2VmenRTVEJHMEhDYjZhSFdMSjV3dWtpN1JzKzhBYlNIVDRXRFpVVHBqU2NYZVlmcFhUNGNXQ3hnTnB1MWM0UVZFc0M1YTZ5ZHBSdjZnam93UG1xOGtuRUpOQURnNG5uQkIxT1FxZDBJbklEWUFzbS9xNThqTU5nMFBnakh3Tzg4cW5qalMrd0pVQjh3Q2c3WElKVlFIVURRT0xsMm5oMEhuYXpmbkh4YTdkWkUrS1hpWk1FY2p3b2MzdjZrS2tYNkNCQUxGaDFNc1dXdUFsVDk5b3ZwNEFiZklwUmcyMWdYNkh2bDBuTkpyWXNCSC94K21VZ3o1bnhvSG9nVkxHc1MzeXN3aGd4aGRTcUxGRTUwY2tzc0JZQkExK2ZpTS9PVFFDVElEUGpKZFhzWWlEMjl0YjFjVW9RYnd1WFBnY09ReTZBRmN5dG1nN2NudVI5V2g2eUx2Qkc4Q1JhYk1wSDlQV3dITzVkUUI1VDlGNUk2S21NZGt4Zy9DWnVZSGF2SkhzTjcwTFlZbzZ4bXNtdmZuYzA4WUtGcEhBVDRJTEVzRlIvVk52RVBzLzlraDZ3S09yT2hQelBXNFdGRGZXRHhlRG5zazhWTzdnWDZFd2FTWVdhK2NVbFI4WHR6U1dBcVhBNFhHY3Jld2QzazduRVE3N21RME85M2t0K3MvY1ZHSnBPa2tmODAxaGFWUWNTSXJpRU96SjVpeEN3OHpHTWNkYzdtQnZWU3ZORUxqOWlOQy9NcDJORURTOWtmWVFMVzBJRW1OSWVxSGw0VWpLVGJzeWJRdE4xNFdJdFlLMzhEcVRJYldHY2tKbVF6T0pjNmVucTRiVjFUelBMaURqUlg3TndFVFVvSk8wTGFjaG1JZkZuRmtxRkdrd090c3h6M1NvVVB2Z2pkY0FzVXlrbER3VEF3Tnk3VkUwK1dNSjZERytKc2d3MXpmNnNRdXNmTjlkK2Ztc0xqekd6S2ZsektRY0IvUXk5Z0o3RDNpZWEya3FZQWN1RlFBaHozeTZZb1AwOWNmMzBsM0RlTFQyN1l5Z3Qzdm9KT25ZMzloSTVVZ3A4Rnl1UVA2czc3d2lMeEI0SCtlVmpvZ28vaWIzdzFpSnVQQkxPSlYxaDI4SXY1V3lJN3NhaXVUckErQlJpeXZtYXhnV3lXV0liUVJnZ2h6bDVwNVZnUW1tWFVBc3NoaVZmUHBwb3RaeWp6M21iNVpHS3lnUVEvQWhNQVgwU2UvczV0VEVJSEVXY3JOV0dQT1cwMEgwSHJDOWZIdldZaURCYnZNWEQ3elZsdVM0OStjUllzOEpBV3YvNm1MWWg1L0l6bC8zNFkwT1Y1RUpkcmpVekdWcTJBeUlxUUxuRnFQNVVSNkJ6ZTMrTnBmQVU0Ky9XRFg5OW1PL2pCWmRWcU9uVUdlRW8za2Zld3ljU2pZS2tTenJKWTBZRGRBT2x3NUtWVCt4UGpuWnc2UVF1UTNPa0NRYUxSazlqbUFjTk0yWElsd2pZVXR2MmNTU1NEQXpIOHNXNGwrZG9Kbm52dUZzdDRUNlZKd3RlZ1RTVnNYcTJjWXk4TlJkd2ZGMi9RUWdkbWVBZ3VtTTM4UmVqSmhLVkhWd2w3KzlRcGlBYnprSXNZSU9oRU0vdGFFdW9HU01FOVZPc2VwN0xOZzQwSXJBWGhYbTRGa3JIcW5xeHREQno5QkI2aDlFSEM0QW5JVWoxOW9TVmpHd29DdkdpZXRkMFZydWpCN0NzMzBFL2VmRnNUZ1Q1Q1Q4WXhQWUx1VUdiYzRnVnlJK292L05iNlppd0paNE1ZV2N3NHhXYVZJandobitOd1pDZmlsMGpiUVhZbzk3cFlmZ2drNUFuVUp1S0JEb1ZZQUhzWWFncmVzSGwrRGl5VzVzY0JlRmh3U2FqVEczT0ZFOHdQMHZhdWE5MWNFaUlkY0s0cHZxYU1NWUxDQnNDWDJQM2pKQURMMTBYbUFNZ1JDRGNSZ3N1SGZTV0oyZ0l1TGd0N0lLZTNDSkNlMTN3anZqYlVDcDRhcWhMWnlqcFpKalllUU5NZXUwa0V6d3E0ZHpaMUxld0k0WlZiZ29SWVZRYlAzZENXNWYyZ1FSY1hrenlJQXdkeFYvUU0xTWxVVEFnblNuYlBrdkJzRER4Y3hJbHVMdWdHL2tDTmVKTGpyeUkvSUJwWnZWY2ptTTNnZ2t5VEk0VnpOdm15YmNDRnJLU3lJTmZSZDZnMUJGRXFUMHFZeDRDZG0zajF2Qnl1WkNHSmxIYXREd0dSY0ZIcmJLWlZYTkdqUWV5SnYxOGVGTTdpZ2ZYTEN5dVlnNTU4MkZ3UUZ2a0x1VFdCZzBJcGFYSi9jSXQ4dng2MGJqMHpHOU83U2RmcnVTWGphRTlNNyszcWNHVDlubnRDTEt6VllnOENieFB1VWFmbFkwMHJHcGlBRlJnRUJUZ2dhaTdBajVUQ1ZpWDI1Mlk5RFNYRTdJWnk1QmZoSjU0eEVtMkkxTkUxaDdFSGF3THdqQUlwK0Y3dkJ2NWFMamFQeFNkQWg2Y3ZyTUxqdVY4NnoyUnBSZXQ4ZWc4TURQYThDSENzQVJqU0lBNHhudFNoWlNQek10ZXdQbFFDV0RndGxVaXNNazZWd1pOUUxDK0J1UlBBOHBzOEl3Q05SM3JpMXVnOW8wSnllMnlkKzJYVm1qVTcwQ1BJUW1GaGtYZ3h3bTFhTE83SVBPVlJyRHU4RkRLNGdyQzA1Yjc4ZzZTMi9xTDE3MUlabm16NnRLcGtla3FIQ3NFaXNQYmFNaUNEN3hLVDhXb1kwSWhHR1NMK1l6VVJUSVJWZzR2dzI5ZkRqNkFzME5FR3UxK285S1A5UHp5WXkzeVFjMzE3d0tXZE5lUVRzb2RJSWlNUjEzRi9sQ29Xdks4eWRydk5hWUVHWFBDRzB6WlBYOTZBcDJZcjFtQm1XQnAweWxNbWdpWnVpc1FHS3daMytwMWpQbXdjcUlXQUZDQm40RFNTSzFIWlBJV25hUStoNFVQeVdVN1NNUC9rMFdnbGRPSHVPeGRVQjN0L2QwakF2RTQyQi9mUzRNRFpMeEQ0SmxweWU3S044V1lnazRpQW12M3dLSWdyOGR3Q0NmWWlXNTExRXpvZU5OcEY4SjRQU0pIUTBGNWt4S1BqQjg1akRBblJBdU41OWNKRFkxNVBnWEI5aE1zODVZSEVHZUJDMkxocWhmbUQrT3o3U3F3dmhKVDFqRStjMzcwOFd1ZTlFYWRWczRKaEdkQytVMWgxa3R5OUtPeDE5Q3RDTVZYRXBadGl5ZFkyQTRnbTF2c0E3Vm9hdC9rMjRlelR4aHZHM2l4WHdpOEpaTU55TzI0blhFUWYxTDVITCtZZmVWdDhJbkROQ09mUUJ1dVpWU2pkMCtpWndrOGQyd3hBeU1PMno0Z2ZIWkhiTUVoQ0N0ekhZZ0ZZVEZ2TjBtTkMxU0wyVmlVT3VMSUhqTnJpa3cxZlN3WmlZdDBIMENvd3VZSEFyUkd3WUJFQnNudnlsZWFNdVp6SGNsOVdlbHFJU3h5dHcwekhucm4vOEpaa2FZRkhJT003b3NqRFRIRDVaRVJZMGZNVkR2Mk5NSElBMllpTWgyMThZRDVzNjJSbldNbnp0Y0ozNEsyUTVHRFJIZXJvNXcyYXF2cHdFV0lGSENUOC9PRFAzNFpYRXd3ZVpEaTBMQ05GRTJ3N0FlZzNXRWFBQlBJSSsraVhCOUNLeVlOS1hOeVRTY2lKdVJURVp4andOWXZaaVpaRWJpQlpvMGsvbkNtejM1OTVTRlBYVnVBVFlxRURFTWdXOFE4enc1RC91QWlZNFpYNVZpZ1RkbW9SVDhBaXBiMmdLeTQ0WnVhS0NITUE2aXVmSDBiN1l2RU9ZZTlGejJHY2dNSE9saW53VGxDQTVkNFFjOU5YM2wwOStRVkRDUUR4YXJDb2hrNUE3dktHajNtS2x3L0hlT0Rsbms5K2ZncHk1ejBWM0hDOVlnVU11QldoTFZrakJCZ0dlSVFOVjlBRFVXUEppUTVIK014UTBVV2MvenduaFBkZ0hjWGNSUkVDaVRGcllYZ0VxUnVIUnZQaXhsY05uaktoQklnenNtSVFHSnd3YzVnc3ZIemhpTVAxZ0x2NFpaMzhCVGMzOS9aSTV5UkhhbHdXNkdaTUhPV3dNbmFER09KdGxmeVlKaDZJNTRscm5tOWtzMWMxSGNrN1gxNWlFYUhKM0w0VEYzNnhteXhreTNCN0FKV3dWNENRRE0rekJvOFFvRktLQ0NJUDhyOWR6Mms2b2loWk1vdFZnRkd2UlJuelFwNjQ3NW13bGphTW9pZ25QZHY0dXZLZExRSEtTdWNqVXJmMjB2cVNHeTNBbFFIakE1cGt6dVpOT0czMEhWK1BlamV1VDNUeXlKN3cwME1GbzJBY2pVMW0vL2tLQXB2M0JkUzlLU3RWTEpmMGlDQmYrU2xXVnVMVlpoQ3g1M21EcUFVL2dZZGJRVzdlZnB0T1dOWGFNNnYyVGY0cytTclVDbXFRaUlEemdwV1diWEVac1N5S0RwMlZHM3dHWVQ2WmpLOWY1ZFZkaFdOdHdjWk0wU0tvYm5odkRCNEF3cEZEdk41SC80R2VJK3pGU1U5MFhXZ2dUU3BIZUFraDVCdDA1aDFkb21xbEZ0d1VpRVAzWWFIcWpWUXYweUxGbnBVdmVvWnJ3aGh2KzFEQjhPd01zQzU3aXhEcTMydWxkaXQ0YkpGb0tURm15OFNJT1UyeWVPcGNMUnhKMW95cVdaRFZxa1pXNjMzTW9pcmRjT0JzMGNCandrT3JUNS90RG55RzlTb1FqWGhKYVYrMldlOENtRnMzdFhCYlYyZHhocFdQZUxGNVNuTVkxVkRIZHFOTXNhRjlKNlFKRWhlWGJOalJTYmhtT050VTdySjVzRHJpNC9Ra1pYbFloZmhBNVFIOXczd1ZvdlN6RlNGOEN2bHFRb2RYak1zNmxUWk9xNDh4MUNvL1VNNktHcVR3dWIvTmxYT0R5MmFnUkJodjVpM1IvamFOUUZiT3I1ZDJIVWpyMXNUMDkvRU0veFJYbmFRak1SRCsxUWpnWEhBTG51L0JzT1J0dUJEclY2eW16eWNmY3BkTC95REc0WlZKYmMvVkVDcDlPMjQyWlFGZzVJZGRzUjZNT0llRVlZa3c2Qml5cm9RdmhKTXJ1anl3eGdDMng2WkZhWlVzOWtWK2N1R2JXQkhiOXliUHVvcThXOGU3N1pSQkVjSkVWT29DQUpkMDNkOUo5QUtFSGx3UFAxVkZDS1MrWmdKaGFVSEx0M2o0c1cxdjJ3QlJvSkhZUDR1QnVYbSsvcXpMRTFsM2lrMEJ2RHBvMTB6TlFEUnY2eWNhUE5hVHdHTGhIZ1NZU01hL0NETm8yWHJWY1lYM2duZGREWjVQSU1TSVh1dmhlejVIMHVobnFIQ3N5end2SnZ3TjNyUGV3U0tmMjFSRVZrZmVrSDZDLzNvQXV3c3oyZ1ZDWVM4RWl3cnFZQUxaSlBPNHQxazJjQk0xaUh3SFlTMVg5elQxMjFCWTFtWS9Ia1N0RnllK2Jtemh0bHAydmVWV2I0YjJlVUx3SlF0UTlvc1VqQjllQ0dVS2NBQ2JIOWdRYzRhbklNbmNhSlNsWEF0MitMelFHbUV5V3ZFSGtQWU9WeUVTWTQ5Sk5meHBCekFXNVRCNmhMdkNVVjhFbkdrc3BHU0RSSnk0RDc5RkJKVTVVZUlzdHZtYkV1QWVqYjJ2cHVwTk1scVRYQzEzeHpxZ1U0UUZsdlFKMWRPU3VTL0xKSW5GbUVVbERJQVVjSHZUVzNWd3o3bjNXbGdza05naUQ2SWZFZXk5VHhVenFxdFkzeVl2aEFaY2lOK2Zia3dyZVRFbjhRRXdlSHN3bzNNYmdMY0ZtaG1pVGdSQXNZQm5BMTVrOUFGZlhHbndaVmxXYlVrWjhmdFU4eUs0Q1drS3FTZXRVM2VBSUlIUXNqQVQxUTJKOEtnakRmUk1oNTI3NTJ3eUNBalBQdFgwbGlUZU54b2RhZFYzdHRpaERvM05JdW0wakRLNVNuZUZKVnU4MnQ4eVRkZC9ubXI2dDVrbUlES25DK1BJcDRwKzNoN1lXYzVhMm8wL1AyaHV2L0hhai94Ly8zcjlKeS9FUUwrbXRBNjdib3MzUWR4NDloZXNjdU5tZXkvdUQ2V1BDbEQwZ1JJNXFxNEpaY0dNd2VrSEdxdlVvMVpQcVJwRVEraDNqMUh2dHFmczUwTkN3Snl6WjkrUXpXbDUvcFEwMitGUW9Sa1YvUE13YnMzWHVrRUxPT3A5aWh5TjE3Q1E1Rm51YThmV1pTbWVhRnR0QVNsVGtZWXJSUTgxS3NJaHZ4V3FBU0VBZzFCZEhnaWlrcERXdUdERFh3bGhmcnVuaS9oYjl5bFF0R1RXZzdueVUxYVIwS3daTmcwclRzMDJtdnNoVUJERlRPNWE4RSs0R3FqNXRPMjdhVmZmMmdvc3Q3SHBTNEsxUVo2QTV4eGJoOHBDUHN4L1ZHTFBUMFo1ZWtoeWpyYjVVSlFtU2ljL1Z3YWxyTHQ2ckZJREFQNWhQTmpVTC9PQm1tbEFmdFdBTkovOFZ3SHhwT3ZmQ0FoOGIySGY0QXVJWkdGRUJsRHVjenh1a3lBK3JFSjhna1NtVFVqUnhZNWk1eDU5MjdrUVpDV3RleWpYSUVVR3ptcllHelovZWZCK0UycUl3LzNlN0d1MEgrV3p5YUxlMTRaenhlR2gycHVoNXpnczRkM0RENXM3b2gxZ0ZqYTFJaUdDMHNMNHRnYklVc0lVSVZpSnV3ZHc3Y3kwemhEbW1LeGxKd3hvUmVqVkl4SU1UeS9raUlWOHZtTDhBazZnVndhRmRIK0laaERyNS9TWFhjdmFEc0RMaW9JNzlvRkhHWnRaSHl0eE5od0VqSUpDOHRiYlZ1TzFMSDM4aW9NS0NPTHBOYVYrM2VkMCtnNzRRclRPOUFVb3VXVVRHUGFDVEl0Tmk4ZUdxNEdIMktiY0ZQSG9ZZWhMa0xESkcxVmFMOHU4eHZzaG5UejVObWNhMzNkYVM1VE5pc3JncDgxTHJNT3cyQzE2VjRRTG5EZDUvdGVuRFJscFhqOFY1NmxteTdyWTdoMWdDY05PRUg0WC80UVVQZk93SmE4TTl2amFIT1JaU05WTzdaUE8vSGhkL0lkdHZLc25udUZXQVZiN3Y0TG50REpjWEJtdzl1aFZDUmM4cmJmWGdNQXk4ZVVNc0Z1cWtQTUZ0Vlh6QXJDc2Q3RTBJd1I3MUJJWHhNb2pRU2UveHR2aTR6REw1NjBRaUk1ck51MGh4Zzk5d0VhTnEyY0N1Y0s1bjQ2Qi9tcEFvMldQS203ZEtVNTc1bEZCSDRUL0ZWYzJGdTBwZWJ3Sm9xZVdGWnBEN0VldFFCclNZNDN4NmYrSW1DQ0tGcDV2VFkwbzVYa1h2TG9wcWdEenoycEtZak1xUzFVSDJNdVBoTHB2blB3b3Q5SHdvcG93RHVMYU9aMTRCU0MyRktLQmF5eGdEUzRNSDhNK0pXRlFvS2RCNXVCSFpaNXlTbUo4Wm1NOFhtTEZZTHhzT3BvanRQSGVmTWNRRGtMY0xnOUFjWHVtSW1TbzJjNVhTejJuYVlGbFVTTUJCYU9UUVdlcjBFR0swV1hucVgrYis5NW93enNFOWJrbEpETWFoOHhjNHliWFNnUmw3ZzNlYkRrYVpsVGE1dzVQdTA3Wk9LVDZkNXZ3WGFhTk1EM0NPWXJmUGpVK1BkU2Z2Rkh4WE1RU0dzbnB0bExIWE0yclhuNHRuRVI2b0dtZTZuRXhHdE9hWURTTnhWYnZ1b25YWU53Z1NBSXkxMk41VkxSYVB4TjFZR3hRTFN3cnZLYjRQUWMxdEkxNFRxZms3MkFHTG05REgyNkNxVmlZNXBuQ2xjL0Z3c3B2MDBlQk5VZmNOL2p6WStEeFhKTGJRbVRZOXhUUGVkZmNrR25yVHRHWllEeDB6MmtDbDZtZG5RNlBNTnRkVDRLbm1PRjVmNTFNL1NYRDg1M1dRZkg1QjUwUE5qc0w1UHBUZnVjSHRYL3lPei9ablpQYnNUVG5qK3pPN3h3T1FlZVAxSTdpRDZlVmV1SVVpeFY1YlpuL1VMakk3WjBscUY4TGxtRVppZE50WitZdHN3a1NTTVc3WndMRVBKSGhRdWg3QklBMnR3U0FuUXNtdzNNRnltMGtpV3pUR3NCR1BOM0ZNbDM3a2lyeExSTUk4YlRhUFcwY0Y1UUxYcVhZUnpCK3RwL2NNdEQ1M3RZNnZUYXZJcEpaUHhRb1FvWXJnQ2w3T3BXRzRpS0FyYTBDOGRkMFpVOTlpRjA0dDVvVXJ3aFdMdGhzQURZUUVvcWRMUTJaYzAvelJWdFRXcXphOE9BcFlMb1FkaFF1Sk5hZ2dneUdvNFNJaUo2akhXbUJVUFBVc3lUQlJDUWhaRUcxVjhSRDhmcmNUOCsvZlRMMWdzbWlZdkMzaytNaWltV1BkajBJRlZDdDlhMGIzMzhMZ3NQdXJXSFJIQ3JWRSsvYk9IQVRpcjhYY2R4TlRyS2lxSWFBWnhlNDlsZHFCcEc1ZUpqMU1uOUlyR3V2OVNQZGNvQTJyZkN5UldVb1hiNlJHNkxHUGxMUDgwYUI2VnREbGl3ditPYnRNUnErdk9SQ2FPRlRJem05Wlg2S3JNZGFvS0UyMUJHaFFyN1FyVVJpT0RoTEVrOXVHQ1FZZDdZUkZDVEJZZmtRQy9ROXM3TVNpQVY5OFZhNEdMYUVVV3picUV1OTJHSG9VN2NZSENIK0pxakVBcXFFWnB5WXo1QXMrMm53ZWpQYWIzREtRaUpZUnoweFB1VlVickZyWDdhZERTbldMVWZGTllqMnBkc2xBSnN3aHJNUkhtczBlY3lLL0xENVNTMzkycERubFhSRnQzOWhrOG1TSG1TTUtRTTdaSzFvYlRicDNnZEo4LzNIVjZ6NkJwMGhML2plSFo1b0RjRzhMM1ljaTl6Mzk0eTFJVDVyUTdGd3RpT0NXVXlUSkpXTCtDeU5lSDRUNG1DYlNEdDBlS2F2OFdhb0kvajNwMERLSnNqTVpTUTRoYjIrbUNwQXNDd3o2bTlWWjI1RFZKdldYWnNWcmVFemJNVVBMbkRaMTczNkdDWUlocXpOWG1ZWUwzelp5dExrb1lLdEZYcVNMYzNFQ0FESG1seHJrakMzdUxsSkZydXNaVTlMTEJrVnVvc0ZCN2pTeVc2Q2pmWnpkb2hWd2UvdEJPcjdIdGF3b3hJZUs3WkNMbVlQaU80WHEyTXUxS1JLOWppR1RjUENoMG1mYW9iWlRuWEwxNkVOeGZROS9Bb0RZWGZoTlhnMEcvVlk4ZGl1MC9xUzJUdjdwOUVxV0JDM1pYZFZ1QWZFeFdLdEdON3ErWkx1YTllYmRTK0liTWlrV2Nxa3BvV043T1VwYURTaFM0ejdxZmdiME5PRDJLUEdPM1FwNDJOM3BvWTkyZEZwQ2pRQ3NNbVpTOEQrd1B0L3VpVFp1MDYwWUM5WWVWdUg0UE8rMnRCRGxBUFdRN2Vub0VPM2hpWDdHNTVyZEZIMUUxYjdaUVVjM2dXdTRvZ2Y4Tlh0dFFuMkNPR25ZSWNqYTlnUlpQdXc5UlY3d0ZBa2xpZUt6OWNHZVJpaDNhdklhSFMwNGFoQ01oYmFOMzBlUzhjQlZUcDVMSHZPaUJnSUxXTEd3QnBxcS9DY2lZOXdrWjhXZjltWGg3TURiOHFMaEJvSFpqeFZ0RDBaQW5qYkJvMENaeHNBeG1FNUNsU0hCYnVmKy9Ub1JHTTRscDFodUJxTjgwRkt0dUVBRGRSKzhvK0xxSXFvUUZuY2xreDN4VjUyUnNyQ1B0aWpVNlpzVWU1VDltVWhaVFJ4aXluWEUreTM4cnoyMCtLRVcwTmoyVmpDWXZZOHN2MzVMOE5oV1orQ2E2WExHa2tMRGdQQjFKemViU1YwaFJ0dkR6R3NFYlR2UGllUEZrL040dW5SdCszSlVzc3h3eTQyKzBCR29jb3ZzWThvQkxDZHMvSWJ6bUVueU5MMnVFZVcwOGtoaFZVM0VmdHVBQVQvdGtldnl1RVF3ZDB5eHVIQkl2WVI3dHdxQk1DVCtmZ2tHM3JzNWcvOFB4RllIUDB3alZlWVN6THA5VVhBQXVqajkzRHlDNXJPajl3QVNGUDd3QzlpUk1JNHQrVlhIWE8zOE9KOTdqUVZpdkt3YytDRExUbE9BV00weTlIV2hTTEhKZ25wbnB0OU50MjJFdTdYSTJnLzJLSnAyeFVnSlhhcUNxU1BSN3AyT0Nkb0tWS2pnYVhodWV5R3g1a3hudWVyZzdqM3ZkK3BvdzBUVWJCNGp5U0JKT1NqWlorYkFMdk1QVUhvZ0tKNWl2UHg3NGJ3ZS9OeUhsaDdmaVo1Z0tyQTZZQXduVGFkYXBVMnY0VmZQeGp1UkpUQTMrMHBPdDIzN054cDRCcmo4aUlkSldFZFFuNklZZzRtd1I3NXRJRFdBNjdpK296Y0lOeEk3Q0pYSUFtMHN2QlVvVG04QUtPNlRsVVFIL0M2U3QzMHBiTmlHaXlEaFpYL2VsWmhKVEdMeDRJRTV4NndVNTVXNVJ2NVorbWFKeUtYZlRBQkxPdFdjTUdTMFozb1BrU2d4Uml3VGxRM0RERTYxYU1OOTZoNmhBUGdqMmRwUURZMVFkakNGWnVOWThsNDVrZ25HYUNESnJUY1J3VmFUNjRSNDhja3JTejc4MS9rM0dBenB2TFdDd0k5WlJ0UVpEemdCa0FncjdZWFk2Tld3VXZtTXpwRzFwK1QxUS9OQTdISFJvRGFSSkxHbmdXSDMvRkRhM3VKSHNSS0xUQkNuNU5kc3M4UDNxemJuZ3lMNElJVkFZWHdMc094cHdtZU9nMGMvYnYrakk1UVNHVEp6YkpNQTJxeU5BRHU5SjBnbDg1UWc1dXR1Z1cyZldhQUNGV3ZSd0g5VWhSOEFXRnpHci82R2dSZEM5bWlaMzJZZFNLOFlVRElVM1BGSnBXd1FidUJUbkV4ZnRRMlRtQmY5c09xT0Jya0NNTS9yYU9KUnJQR09KcEYxZyswM2VKZUdGU3h6aEl6OEt3ZXY2eEhrVGxLSlVsa1VmVm5KNGQ1M2drenQxN0hBenhFc0gyUXhWNWNhd3EzS05JZVI4bDRvQUpGQStnZk1MdStaNG9JNEdMSGJMUnAxcmlZUFZHNms0NXNpZitmY2JIeDQyWHpyNEhOUW1Uczhic2lVSm1zbCtINm9ZamRkUFNSY3BZZDN3TG5Qb1RjWmxKTG05My9aWVZycW56T3kxWGFZYmJqaGJERytzWW5nT3BKbm4rcml0ZjNUQk1yc0kzSERubUVZQnFuWlVpQ041RWhqN0tud0tCN2htcGVyS0F6Wmo3TFd1QWN4NUJlbTBtc2owQVdsUXBXMjJHVG1rSXlUWnRsVHBFMEROdUtYbXRQVTNOa0lXeWd5Vk4xbzNxYTA3SUNnS3RzWjU0T1FJRWtLRmJybUt0MGxrMHdqSjRwUWhGb3RUMitYaXpHK094YnJRdFVZRFhzclZtd2htRGJPOXUxZ2FWcWpTbmZYQkdHVXgzWTByRlI4Rzg1RU1WVlRSQ3RhU3J5ak9xeGhPTk1BYnFqZmNvZjlMM1pSYk9reVkxTGcvVEJxVzdMZng5bDF5bll1NjBPT3J0bTlTcWFuSHUxZHJWVm0yS1JYb252SVR0bWI2Y2ZGSmJTTnJHSXEzalhUNjZ3bnVFaHBwRHVkWUh3ZDdZQjlrVzl0cG9KTzl1NVFzUFhlTDZ1QklJOUlJb2VqTnloQU1zVUVPd2JGc0hXM3ZkSlplRWlQNk1WdUd0VWlBWE1kekluQW1kcDQ0ZGF4Ny9YUC95cjhvZnJmMXovQUg1YU9HUVpPM2JOeFJJZEg1dVhuUkFUUFVpOVpUWGJpbXJ6RGNzVGQvVGRBaEpxc2xFWE0vRmtEbmNoZGp2S3hzazVZWjVFMC8xYzUvVGFPc3p1U0pMUUdzUTdHeS81M0czbGFuRHdUYldIQWxjZml1OVJGcGJaaTUwdDNTaUJXQTVYc0VsYWlaUS9ITHlhRWljUUkvQk9TTWJWYjQ5Umt0VlFOc2VjbVQ1SVpNK0phbStZSnlMV1pOaUZnV0JpdTM0ZDQ3SmNuVEFTVGQzT0JWWERWenhDaHBKVmh3MHNQcU5uQzhuUElGRDkrSDVzbnJON0ZTVDJZb1pWT3RnenIzSll4eTBsZEJwQjk4RFpRVGhIdllQMUVWM0xkUk1aK0trZHlkbUVTTG1Lc3pYZ251Z3hqRG9IbEYrSGVFR1F1aE11Y0xzVnovVEQxMFdxVDdKUE1IdUF3R3VzNWp3ZGlTK1dqVXFyNHlIYUZQU0QxUkIyNFh5MUlna3NjSnEyWHp1OElKeVkrazAvMWNsLzBwNlJjZVE2MkFWTHp3Rit5N3lKY253aVc5QnRXUHlRRE9xK0FDRXl0VzM5MWpRTGpabUF2aXhpa2w5Tlc3WnNIMEN1VjhkL25lRlVMMWorVFJ1OTJOd1A3bzA5bVIwN2RiYjNaNHQyUkJTak00dlZaYytaUlFEbFJmek5jZG1SQmJXeGxmTzBRcldmd1hOSVdkNGd2dXhjRWpHKzNFVTlKSjFDMnV6cHRISktRaFNWQ00zaGQ2RE51S1hYWnVmQUFWc3VBQlRlM3g1T0lnbnNkbHF4bHh6Z1lGMUIxYldKeE9hVkliVTJBRjFsOE9sY20yVWFKWEo5ZGJQLzdIN0MwTHVwQzlNTlQ3Y3NoTldwOXM4OUZnNG9Lci9LZmdDb2hQaXJFWG1iTGQ0bXVyVmlHeWVkYVRvOVJiSlBmZndhN21IN0RQQU1TN0ZFWHJFMHpzZ1IxTk00TTFsZ3lyZWpSQ3A0UjZnd0dXSFZ4dlQ4dWhMV3FpMkg2QnRIM2ppSllscm5pWnNjb3BneXdZS1lNNi8zN3J6YWdRaE9hdUd1c1BlcThzOW13KzYxU2lVbzFRUWR0M3ZlbkdNaHlHS1U0WkVtaEFmayszSzRia3ZkTElqWjBhYks5NXlMejI3d05Zc0wrL1BZRGtGRE9QTzA4bFNnY2tmVlJZZDVSdXZkVUtTWGM0bFFsSXVBZzNpQU41eENjU3MrWCtnQVNoakw2bDRKS0FwZmY1VFh3WUtqS20zeTNGOWhOZVBGTzhPNzdHeDB5b1ZETk12SGhVQUE4UFhGeDhFbnAyT0F5bnRTOEN3aWEyZEZyeVB2SE5YRzMxQVQ0TkZXNGtEemw3eU9FRFhVaytha0F1NXo2aEU5TU5zcXlZMjZzeWkxdjkwalYvemI3aGRFMmszc1ArMnVOZG16MjI0ejVPS01LUUdQNmkwUUtrUTRPMEtTczhLU1V5ekRaK0hFTXpkRTFhcFMvZVZhZXptdkFDT0h3cnlaQzI0UUVIQUExMTJXNmVKZGtIQTdXZVA0R1hsa1NYeXc2cmJhQUV1WVF6c0wvazRKR1N0c3h6UWd2bXhQc0Z0NjJXQnUzUzUwVmNpcUd5cndnV2JOMlg2d2dkNHRjV0JYNEJiN0ptUURzRGR4OFN4c3MxNGRVL0N1TUZ1WW5LM2VqdmNzelpZdlFMTnpnNDdVTzNVaCtod3FFN2VEWjc5bmRxbWQvYkF2cStteEhKUVgvby9Mb3BvN24yRm5mSmxJczFqT1hMUElXdzUyTm0raDBwbGVsMVBnTEloK29ZSndBeFR4K0lnY0x3cDFPYXZGZ0dGeXhoUG1ZcFI0aTNYSmFhTmx4NWswWjRGWHlwYyttZXhhYVNkWHgzNVVzM1phcDZNeVc5V2hsbW5LZFVZSVd0RDdoTStJWVNQNDh0QWM1UUhQdG44bUJpZURmQjY2bm82TVd3NkpxRjNPbkgzc3hjMjREQjVwM1F5TVp6WUhYa0E5VXdJUjdaL3RGOXEybTU0bWFuK0NsbnEyT212bWxNNTBCd1FrU3dOTlJXNUhYam9FeGdoSlJMSlJIUm8vbGFRNExTUXhlcnBSN0pERWUrNkdmSHFKSzhFYVdPazNOM1I3S1o5OVJxZmt2cGpmeERiUTVOeThReit1RnUvdGRKZEtHRnpPN0pDa1RZZnVlWVJwMjhjMExYeWZZdHlLMk9HTnEvT01uSzRRUFQ2NHR6SGdzZ0VTSVpzd1l0VGdhNi81czdtWnluSTBTL1VkSFFzWXNCSFR1VFNkS0JSTXZ6d3FEWENVaU9JMHBHdEd1MFl0T0IyM2c4TEVIWWRSc01VT1FhbTh1L2xLTE96R2daRktFS0JvQ2drS21LRWhlcUhvY0ZrOGJMK1VmZ05MbTl0R01rZEx3UjZ4azk2emhjTmVSN2Z1MHg0NVp4amxKRHNCdTBSK3MyalgvMU5Mem9aaXoxZnpjaEp6OUFEanpPT0RIU0VEMGlNdnpXTTVHY0IyUVBndTI0Y202aGtiQ2VkSWVkbGxrMDgrdFNja3JYTzBWaE5CYlg5NzBVN0padjl6V284YXZKWE5CYUFDWDk3WFlpU3JkbzFWdHNWQWRYck5aK29BTGtKSWNtN0hlckl0N2NYWlFleE5pK3V6d1JBUEZtV3lsQTVjbDllWnNMQVNld0RmZ0prN2JUZkV0Vm4xT3Q1bytsSXl0dmRqVWYzS1lJQjE1UkNGYm5jTGhLZnAyVW9FaTVuU2l6Vmx0Nkp4L3dGZ0s5Qm5pOWo0TzdIS28rL0hVdlY2Y3EzQm9jcjJjeFMwUElqaTRCYXU2Sndxb0FHaXVkTzdtOHF6aHAwZGR3NGVETXhCWTNnOGtZK1kxcTNPTWp0bi9xZkhjMkZlUkROOTcvRElNVE1oMFBsNHRmYnJjZklJOHF6ZVZnRGNRUEhKODVnNUtJNERhZjloTWN2MSt3OThORzcyUmFVT1hCRFQ3eTlhaDh2YnJQZVlhSFBIQjVVelZUT1kzM1FqVUMvd3hNOUJBYWRlL3U0T2hTVnNPaEhyNlU2N08rZFcyQW9CMVNQSEl5U3l3d0N5cmpmL2lpMEo1bS9iQ1FSaW52R29lNnhwZXRLcWVaVFdaOHV2OUFYRkRsTkFISFkxaUQzczlwdUFDZmxNNVFYeDZ1WHM4ZWRNTVlDUERZSlJzZSsxbmxFM2RzMXVhRjZBa2lUbk5jQmliaWR4dmE3L0diTmlsc2Z4MSsxQ040VFRBV0RuVWJROWMvdkJYZ3hibzcwTkoxK3pTTzh3N1dMeGJIZXdYaWV1bnVvYVhCZi8xZnUzdllnT29iMm5rNHNjNmZYWnhJdzlnT2RGZUVNeERLQ3NPUmpxTTFMYi9QMFI5d2g2anI3emVMV2o4c3FwS3Q3Mm9pQ1duTGxjRllOZ1ZtZ2VURmhhdE02QXJoYndwK2JzUTJ1S0FJRFBDdnorMU12bzhqcUhwWG9WMXFJVUQvMXdOY2NkalhiS3kyRU9DWVd4UGZNbUppQXJwc1dObnZUZlo3ejNHeTZvMkQraFVScEswTDlxeWhjelE3NkowS3poR1c3V1hZb0pPMzN4NXN1RmN3VFY0L2dqTzJtS1F5VDNHVm50L0RuSXZQVXpVdVpodmFQZE9aSy9nYmRPcS84UVJRNXlRV1VUbDkya1plOEVhMm5DRFM5OEFYTEgyRVhWcFMxMDRUUXZUUk9iTUNNSCtVNUZwM2w0cTJhdXR3SEpBV3RJRHJSR0ZoYWJSQWg2emxvdEhsdHVod0U0d29hVmN6ajI3enFWdzhYQkRsUHJCV0JEZEExRmFQU1F5ZnFRR1J5TUxRNVh1TjFZRGpFdWpvU2RpZGR0MXBQZFc2WnhQNURXNTNhWTVyNmNFMXljaCtjMFJNelowNXB3TDJBU29zL2xwRE12ZFlHZjZSeVI4Z2M0K1RJTnptZG1TN2tKN2M5anliQ2VhSGNySzJxZ3Nya1BpY2oyZU52OEJKb0JCd25tOWp3dWNKWm82ZEdSSGl3Z2xNVXN1SThGV1phbmVJNTYwcnVaYnpnMUJEcTBDclJ0V3Bqd09wak4vQzRYSGR3U0lPV3hOR1E2NDhHcFYrdUtFRElmcllHMlFwQk9PeDJtSlR2TlVZTFd1Nk8zeStlUGNNQ2l1TDJkK0NBa0wraUNyVU1FREpoLytkZ2tEeENjelNCYjNQbFJ2RnNEQVgwTzlaU2lPc242N2JjbnF0bnhWQjJ1UFpKam0wR2JaWTN4aGRzL3MyUWtxN01XSWNUM0dlTmJZY2g1Yi9tUE8yVzFsbWVQVmc3ZERoTUowMkViYzhwNklSYmx1VHcyaTA3QTR6NHJmTlJCamtHVkg1MHpiOVlnclE3dk1WVU10MEpFSjhoRjZpQ2I5U0tJVFdoYlNlbWFMcDFIZHBBS3p6aXFoK2pCSTh4enlieE5VZzQ3VE0yVGRXeEVQaHlNdmc3WmNkWm5YSkM5aXdYTUdYNzBkc2Z0b1Q2Uk11aGFoN281RStBSTR0Y3lXQmFEbjVtSlBLVjFEbnE1WHlzRWlyMEZuU3VLWjc0SFJMUFlyVTBnOXNoWGQrTzMrNHlDdzdJa0p3Y2Y0MkVxMHRMMFBURS9iT0hCMmVaK3kzVnNidU8waHpIeDRhM1pydXhnT0V6YlRtM3I1bStWZGJLczMrSWw1elRDVkk3c2FNN05ubm5ad2ZKNUVqUk85aUtBUXdUWkRXS3hXbDkzd3VGZy80YWQ1Y0ZheERPNDdNT09paFZ3enNnOFIrL3pxaTNyanpiTmdkWFJtbVJFYVkybjZQdUZTamduU2ZZUXpvbU9mZVFZQktMTXJ2a3p3YzdPOFp3dngrNmY0ZllQQkVuY2VDVkt6NmxXVGFZcm0yMnBjVFJMRWRBOTJxdjFNYzVVdUNIYTIvNzJCUnNCTEIxMkFLNklIcFBMeHJQZjVCeGNCMGJaZUJmdEZMR1V6RWNCNUZkZXRVMzJFQmZMM1J4ZmlicTZBUElVcmI2MDJUNmZLZEtRdkFBdlk0M3Q1cTAyeWNWNVlPcWdYUHVzRERXcjlWcU44Slg5Ni9raTJJVFZVRDdVWVZvWG9QVG5zajMvYnR5Q2pjWWorUnFjeXpxTnh5NGJlZVhqbU1uYlUyV2c0eHFLci9zZFVYMktRSzAycnNleXA3eDNFSitSQ0M5ZlFLdmw1QitSZkczSG5kc1JsQWEzUXdBSW1WMUxKdmVlNHVobFFrUkc3N3dKS1pmc0NLM3pPUWZVWnlxbXd6QnRWMHFFTkxZV3VGeW1kcXFqVnNEc3dqM3NFdXd0Tmxub3RDS3ovVTZmSFVzbURPZGVHb2Z6czNlZDVzNm5kYXI3REdRTVcwbGVpTFErZ2NOUjJGeG9IUjBBZStDSVFMNkhTY1Y0RHgrWUUyWmVrYWtZRnJJS3NpY0xiQVpnRzdUdFJMN09JNEdzQkhwUTBRNmk5akVSblVoNFNtbE45Y1ZmcWZ4N1F1ZVFEaTk0VlFuRURvb01UdFhhbFNEREd0blBDb0lRMFZsc0E3V0gvMjg5WTV3czRmbHI2SFlpYzJ0U0FLRHdUSHpHQTlBczF5bnV0Q29wK2N3SVQvQlJiYXVlMlJaT0luSjhxVnhQbW50T1dKeEpqaUpiQlZWeGp1Q1FacWlDeTdaclowK1lQWWxPUkF5RVlQU2lGTHQxL2dWY3h6bDNzVFhrT1pPNG5NMW9sL1FaTHNSclBNKy93blF1SElEQ0lqcHVibHVKdno1QnpKNzZoQjYzTk5LWlhPOHI2eHZkWTRKa2Q1QkpxK0swYnJ0OHRtTS9Tbldvc01PRE1ERTA0SEppM0YyRHg0WFA4ckV2NXU4ZHd1TlFMdE1QM1Q2K25LeGJDY04raGl2RGIvT1ppZXVBR1FkT1pQMklHOTVvMWZjOHBNcVNwdFBicmZKVGdBWWZLR052a3ZPUnQwOGJtUmYyMFcxdHNMVHlTK0VwNDNhYzRuTzYvWjFJdnUwd1I3WEU2dXhpL05tU2FmNis3UUo4N0dpUzVUaXVHSmJrZFVySGlwTzJUanNoUHR1enRVMVdQRVZreG1zamtHY3NIdGE0eks5anBHQXhYRGtoWlY5V2hMUFFZMGhDUWZaWW5DOXZuc2xHRDBlblRvOE5MU3MyZUxDZ3RpRUxGa1FQTUJxL1FrM0VkS0VTQjl4M09HRy9PcXpiYytVN08vUU1FbXA5b3pNNVlYVk83UWtlM1Rrc0lVNGZJd005WklOWm16SHFaUmRldDM0WldVVTBIUVNheDBJQUVCMU9qSGtSOGZGQzNPWG4rVlV6TmJPd1RuTTJnZVRJN0dYZG5OUFBWdFdqOSsxSjhubUVUc3NlMVRUc09ZbWlxWnpKenQxQ1VqYkVrbGxJZ2hKcm5tZGJGUWRMWGVNOG1DRytDQ3M3M1ZzOFBVNTludEgwSGl3RmorM251VDByTjYyRWhxY2lxT2Vwc2JGWFFXUkNpd3l1M2NkVkNJUGd6SFNLbDlVVmhBLzdqWHlhRlZ4M255Rnh6dWNiRXVGRGFnZUNFZlJweHJLTEdNY0cxZWM4eG9WRkM1Wk1ycy8yVWdMSFo4TmRQc09hc3NZL0hPQVNwSnk5clFjZGhjL3NjeGg1V1JUOUFsa2VqQklDMkZySHJmTFNSY0NQOHVVV3dta25URTZPVjJEWTRGT3JKZzZkcmFkSDhDdlhxeGMvbmd3QXpNMm5YWlNOcEd2eWhHYUNncUJLV0o0d2xCTVVYck1hUGxmRE05MDVMYm5rWFV1NUhCeTFidDRob0ltY1EvUVltanhySDVBZGJzV1p5Q1U1QnM0SGpIbVVPOC9NaG16cnVNaGt3K0FMaHdUbXBKcnJnMVRwSDE4MVRMTnlNU0FmSVlUck5uK0VKWVIwQ29vOXdmS3dhNXhuUnRnd05DcVJGbnJpMEhtSFBVcmhjdjJpVTFvY2cyL2VIdk5uKzNCY1p6S2tkVW94WGdMa1poY01sT3E0TTB6NzRrMVpNMGNxUDdhR212WlhnSG00cEVOeDAzMDVUZUZrK2U0enN2UjliU2diVS9WT2pFZHNGd3d5M3phMm4yZVpmT1laNEp1dzVtQnZHMDd4Uk1mN1EyeFlSQ2RlV3B3Umc4Zmp6dUQwRVNMVG04TWpyd290ZEVobFErWkRmMTVQVTZFaHpZbmgzMm1FZGNLTUZkM2JpZ1VucDhYNzFORi90amxMTTFnT3BDalVhSnVIUkhSL1owNDNHR0MzeUxmOW44blFuUkVNSGk2Zkt2Nzl5VUJBdE1VRjMxYTRxYnFMYklTMVU3dHZITVhpVitkT090TEQ2aE5ZS2lFL3p1REpPRCtOTWpaN1BzOVAxOC9JSDJ3RXNMK2NZZ1NYeHRpakU4RXNOVHd0enE4QS9kMjJ4ei8yQ0hUMnhPWVdKQ09PQzJFR1grNC9xc2FKL1E3YlFRQlpvWWNHdWxXdTFlb3ZyTkU1cnRzcFI1OFliTVVMN0tBNm8vaDk2NWxydVRCTTFOWUdOODhBbkR0Z0E4RmhtUWpONlNEb0JlWkRCTE9QQmJEakhFTHdWZDVjZlltT3RwVUNUUUkzMm1kSTBoZlNaVzF2UDQvVklhcER4bDZrOW52TEFCT29LZkt1TTdOQ1BMQ2p2eUsxUk9xZWJjOTQ3QWhTdDkvWHVPMlVLSStqTW53Q0RqUXUyKzRFUEtsV05OdG4ydkl5dkVrdmRxVEVwUTROanQwN3ovMGc0TmpDTUIyK0RuVERtQkQwVHNmM0lWQnpnTnZRNi9ZemhsTmFycnBTbFVHZnUrZkZ6UUhGODhVZzQ4ZXRvV0E4Z0Ivd016dk1hem5WL0E3d3RxcnE3czZVZW4xMmhGMVF2TmR0SVZwWUJNa0owNnNGVE1SUkw3TzRsaFUyczhDQjJIWUdhRXF3VC9YZmFZSHljTWl4K1gzNGtNSk1KQjBPbkxjNDByWnJLZmdIclhGV2c2ak4rL3U0SE1UNjRjL2JLR2VXRFFKamdZeGo3NTA2aGlna0RGbkZBNEttZVZ0NURGZThRQllZOUxkNklNNWo4SGJUelBFTjA2MGQ4d1VvUFhFa2ZpMFBQUWlrUVA3eTJRanMybXpCL0ZWS2xudllIeDU4T0E5czNQeVNUVWZ1UjhGMUxBODNDVmk0TXdkTDMyOXdZcFd4M2o2K24vS29hdU1wck5idXNuNmU4VE1PaFhYV1BRcjljUWQ5TEJEczBVa25acG50MDRBOXFLelk0b25hOGF6VHFkZDVYczR3N2FhelFJd2tGQ0RwQUJBZ3dybWNyK2Mwc3BYWnpJdG11QnNSb0RvVUdnMmY1RGFuWWRFNUVkRklMbXFkZ3ZCbWR0RHhkTU5YMVdvTnZROXVFUWliZGFESlBEWHJMVUxiL0RESGVTYmFldzFqd3VOa2Z2aml5YXRidEdkQnVQWER5Tkg3VjVuYzU4RCs0UFMxQndMNUZvamg2WkU1VTdReHlONWZINVBuVThoWVRaOFFVY3lyQnlLb1RkWUJIKzRQd1luSTVxTWVzek95YlNhMU5zcHNNU0NUbk1kK2ZVS3lVMzU4SXBVUEV3aU9rcldiL05UaFkxQ0ZOVmJrMkZQc09CM0VySlZxYi9JNUtwYVB5S3pMTloxQWMwb2RvNDl1eUVGUXhxOFFDZmVaeER6RVRaOVQxcVd6RG5UY0hxQzlmRnIwak0wbjZPd0ZyUWxPRFN2MmZTVnJWc3JwaE1WSlVOZG55Q0NZMElGTUk5NlEySnc4M2o3UGw0eU9XSzhSZWZMQklaL3d0WHhTSGphVW0rb1o3N1FySldQeFhFNXhVQ3dLMUFlc2JLT1NUZkdPZlBtNlJQbk1nY1Y2ek5VU3d5MnNIaVhhTzB2NFNJTVhPZVFTTkR4SjB0UDRmYWJhcWZGaC9zdGFKQUlDdi9ZNGJ6dDlWeFlwSkZVTzBYWXVUenE1L25rb3UvSEExT3hKTEh2MnZKMjBCN05wNXJQR012QnhYeXhGZ3ZvdER3NlhCK2pGYnMrNStsaU8zTGZRR2VkSXArcmVzckc1N3VqYzNZM2RPc1lmWSsvZXZvTzE3OHZCRW5leUJBTWk1RUFSOWJRZEx1TzBjeW05enpSVnJNc0RUc05nUm01NkcvYlFtQ1k3UVlQRnZzRVczcHdMSkZaOVRrYVdJamh6eEVmdlFXS2NBdS80Y1hqVk5nZnBXU0ZyWFdkQnF2dUFoNG9kWHdnNmZvWFA1UHF3Ryt4b0JuejZ0SVJidE04aU9hU3BPZmZVc2JtT2tuak91SXpwdWZBY3lyZnc1c3NScnl5SkZQUFhzOU13eUdrVHVNODZlVEUrWU5iNXo0NHI4ZnpFZG9UUHlBdjRQVTVYbVYxMjRPZ0NxM2R1TUxuSWJDdG8rOGdGQUZtazFEcXpvM3pvbk95TEJlUm1wYU1lUmNGSnpUNlpQdnVlaTQxblM1N1hHdTNndVkvVFdRQlRLSGVGVjY5dFRaa0greW9taTJ6T2M5dWVIY2JuUXgvMEZ4K08xYS8zVENpMTFNaE9ZR0lIckxIN2JDZXJzdGxESjhkVkoraDZ6T2ZEUFJ3bGtwMDVXbndLVFBJdVRkMWNJN3BYenpQeVQ1bGVObHc2M2dKRzlxQUNsSENQTGZ0UWlzOENoalBQenc0NTYxRWNWcGxmUi9aZTJJbFBuWU9heEF3bjgzZ1pjSWdvQy9UNnlWcURiUFk4bktkZHpXb3Yrc05LQjRQUjgvajRGeTVzK3JBN2EzRjhvcFoxbXltY1pGeDAzTnVwdC9ZeGRQMHRVSDY4OVIxbldwV0hOdXdLTXVXUjBRTUhNNjdydTAvNUtmdnpoVlZPVnQvU041RFVKOFE1VU1hSFBWaHFOTXlVbU9xTHhCK1dtWS8zc1ljSWU3YTJYWTZYZGlpaWJXNDQ2ODlNWkd3YXh2dTVKeU9jeHpqc2JmL1RZMTdmTWp1YkN5Q2J6bW00bXdlYjR6cVJPL2xZWWVodzhyR1B5OVF3Nkg2eXNkc0gxK0syNTdBMjJoWmpoMlV4a3hOOWhBOE1FWmVFK0RwcmJOa3NrYU1QOCswK29jN1JURWZ3TGl2R2lJUmVDbmJoOFlIc3Zwc3ljSnc2RUlzZjVWUFNjNWxXVUxmNllMdm5IR0RZZUswY1JKN0FUeDdpQmN5TDNmUkpJdzQveFBNOUtYMGo3bHJzdXpsbmxsZER5dmlJaGVjMkxZMjVmUEZNQncvTFRyNWdmWVJUaHdnMnhBZTIydGtFNk96aFUrSFdjdjY0bytTMG8yMWZvTW1qZTV4SGU1YndGSityTVFGbHgxaDlCSE1mK3VSakhHQlIrZGVvcWZ2MHo1aVlQWDRNSGprU3gvTnFXR1VqMkcySEREcmdLeE5wWVhIZFpwWGlRNWtMdU9DY3NtYndSUUlhWHl5ejhEUGZlb204NlZjL0k0cnF0YXdmTmVxMFVqMkEzYkk0eDBjMzJibnNRMTdzUUQxUHViS3BHTnN3N3p6MlJiU1lSaFdIbnBxdDRyY3RteVo4RW9BbXhCYjVacnFia0Izbk14NWJhWHdpeE9jakhoM0RpVHBzRnVnQ2xzMnVNcXR3eTdiU0JEbjNzRGg4RWdCUHdQaFRUeVBCNVBuZG5WN0ZFdnYvZVo4eGg3Tjk3Q0tNU0NHZkFGc0pSaDZiblRHcll6cTVQWHVzV1oyQ0dJZlBkNElGL3IzaGtkVzR0a2Q0UG43cmtZR2JxSExlRU84QzZ6QllFMm5FVFpPZ1RqcVJRVHNJQ1hlSzJlZWNkc2M2eExhdVUxV3JCWml0T2dQYmEyMU9GL1NRenZHM1ZreGd1WHRHQjVXZHB5Q2RWdjd1V0NZVFV5THNlQzRIV0ZydFlNdEtkQW9RaXNRSjYrTnpOQ3ZZOFp5Ukt3NDh4UUNoYThnY09LTlpWQ3VLZ2s4cGZYekNRRlhLcnZBNUU5OE8yZXpqQjZyOXZpamY1VE4vRytLMU9QeTZPOG9TVW5JN0dyOURlN0Y4SStEc25tV2o5VDJmeHlpTEhJb0ZnSSs2OEo1NzRTeE8zYTdMNThQNGJKMEEvcjNxcFNSQi9FenhlUnFSZlFJVHhoaUFWcGpGbUQ3Y2JKdTI5Umpma3Ywelh1MDdCeCtPNXhDK2ZXNVdQdW1vZWNvWUVWOEFjcnYyUExOTWtHZndSVlpLVU1TSnN5VWlIakhHMTltSHFUdSszeDZUSHM2elNhQmV3SWZEK29vUGRBNzJISCtWdXh6V0o5bXBCdXQzakh5MnJRekYzQ3JvYW1JZm1MdWRNTUNOUWRSc3IvQTVqNXMzdzJCWnZldk1BU2svbGNTT0xEelBKNFdPTCtOR3NSbHlxRHpmWGoyMUR6NDJPUHRvaWNma2NiU21mSjJ6MjR1bEhvN0U1aXFRaWhha1R4K1RHcERlTXoxQzJVZjR6QjMxNWZOVUxQVzUyK05qcVo5NysxeW5ZQkhVNHlOVG5UUnpwamVpYzMwR2VmbDV4dGdwSC9MSkFzUVk0N3dkYVdDVkE0SldjVFRwTU4zdHdUVC9zbXU3VjgrKytDN3JBRGtFOXg3SENWaHc4bnBnN0lPcEhYWG84eHA5cU9PcC92Rmh5TDRZazM3VTA5RkJremJIM2FnREJ4dXdXdDI0T2thMU5XQWxqMElSRkQ2emFaWUdlWHJpT2NDM1dKL2xyY3VXdSs4ODdheWZydjdoZ2FYajhweStWeUptZDVxSEljMldyampNd0dNZ0tCZlUyTm84eStVcjB2aStjVnVqOCtWNGcyMEJrMCtzdzRZOWh1WENpVUdPVFhmcUdwVFpKeUY1K2o1Zm43c21mOXYyNHpxeC93VDR1dXBWUEhJZ05IZ1c1SUZ1UDdNOXZvUkxmZFZIRDhHSUFmZnNBY1I5R3ZlVEQwQWJCZG1IQTN5UGVlRVhMZEtHbTRyN29aN1BYRWY4QkNKdm5ScXY5eG1OVnQxR0h3NTlocDFqSDhSdEsxVXNpMkZsZllidERENnB3bno3emhIRWM1enpycWRRREJhbWhTenA1NW56WmFzWnZvRTVMZ25rNFpUSnMxdmxmRW5UY1h6ejFKZEVINXhta2lEeUJxOUQ4ckZqYkljRmwvTE94ZldiZzdRbXloSFdEd1NCejc0L2JxZjduR09zNnZVMHdRZk5BUm5Pckx0dDVhaHE2L2M4eFdQZU9UbmNzMFdUZkZZcjNSNHBwek9nVHp6QlJ5NnJuQUNFODh5MEp3MldNcW1uaStOOWJhYXhlOENHZm9tQ3d3THMvZmc4ZXpZVlBCeGtyaXRhZ1dDVGdnY3pQVHZFMzRkdUpwK2ltQjJ3ZFNyMVgydlpBRUZqNkRlQXpXS2F4SWR3UHpBM3Uza2lvdU02RDFKS1g1cWVmTXRLdWRKbGhwdG8ySDFNd1p1ZHR3WEVxdWVjOHd1YXNXT0FyR08rNjdRamkrVytQaDkvKzRxVEZpVzBEaUI2U05LRzAvaHR6MFc0d3BpMlJsODN1NUVTOGdQZHlmWjRQb2lSR2J2aVpibWxOWWFXZkZvbGlMQllwalNmZDNZRjRPdUVGTHVYMXZESnUydlk4dTJENnQvMlpXUUlkdTVVbTN3VkM5VzZjK1J0OGJQWkdtZGp5WjNZeEJyYk1YdGI3dm42Q0hFY3cvUDU2cEFWYktsWk9rQzQ1SXJTOVZrTWRkdVVaOE5Fc04za3RrTjN3YmJsN0dCcFF3QzJuZzArbm9vNDhqaWFyOGRqN0xVQVp2OFBQUGZ2RWE2TzBVNEFBQUdEYVVORFVFbERReUJ3Y205bWFXeGxBQUI0bkgyUlBVakRRQnpGWDFPbG9oVUZPNGc0WktoT0ZrUkZITFVLUmFnUWFvVldIVXd1L1lJbURVbUtpNlBnV25Ed1k3SHE0T0tzcTRPcklBaCtnRGc1T2ltNlNJbi9Td290WWp3NDdzZTdlNCs3ZDRCUUx6UE42aGdITk4wMlU0bTRtTW11aXFGWGhDQ2dIejBJeU13eTVpUXBDZC94ZFk4QVgrOWlQTXYvM0oralY4MVpEQWlJeExQTU1HM2lEZUxwVGR2Z3ZFOGNZVVZaSlQ0bkhqUHBnc1NQWEZjOGZ1TmNjRm5nbVJFem5ab25qaENMaFRaVzJwZ1ZUWTE0aWppcWFqcmxDeG1QVmM1Ym5MVnlsVFh2eVY4WXp1a3J5MXluT1l3RUZyRUVDU0lVVkZGQ0dUWml0T3FrV0VqUmZ0ekhQK1Q2SlhJcDVDcUJrV01CRldpUVhULzRIL3p1MXNwUFRuaEo0VGpRK2VJNEh5TkFhQmRvMUJ6bis5aHhHaWRBOEJtNDBsditTaDJZK1NTOTF0S2lSMERmTm5CeDNkS1VQZUJ5QnhoOE1tUlRkcVVnVFNHZkI5N1A2SnV5d01BdDBMM205ZGJjeCtrRGtLYXVramZBd1NFd1dxRHNkWjkzZDdYMzl1K1pabjgveHJ0eVl2RFJmRzhBQUFBR1lrdEhSQUQvQVA4QS82QzlwNU1BQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBQUhkRWxOUlFma0J3SVJFZytzaDBPcUFBQWdBRWxFUVZSNDJ1eGRkM2dVMWQ1K3oyekxwdmVFa0lSaUNDMFFhZ2hkT3FHSU5CRkVVY0VHSW9JRnBQaGh1VjdBY20zWDNwQXJLZ29pSUNBaXZZbDBFa3BDU085bGU1dlptZlA5c1R2RDdHWkRVVVRVL1QzUFBKdmR6Y3llT1hQbW5mZlhDYVVVZnZudFlyUFpVRjVlanVycWF0VFcxa0tuMDBHdjE4TmtNc0ZzTnNOaXNjQm1zOEZtczhIaGNNRGhjSUJsV2JBc0M0N2p3SEVjbkU2bnRQRThMNzN5UEE5QkVPUi9FMEVRSU44b3BlSXJvWlJDM0FBUTcxY0FvSlFTOTlDbFY2L1BTRjVlWGx4VVZGUVRqVVlUcDFBbzRoaUdpV0VZSm9vUUVna2dBa0FvSVNRVVFCQ0FRQUJhQUdyM3BnREF1SThuQU9BQnNPN05Cc0FLd0VJcE5RSXdVa3IxbE5KNlNta2R6L08xSE1kVjJlMzI2b3FLaW9yMDlQUnE5M0dvYkd2d25oRGkvWjM0R1FCUVFraURWOWxHR1lZQklRUU13MEFRQktqVmFqQU1BNFpocUVLaGdFS2hBTU13RVA5V0twWFNxN2lwVkNxb1ZDcW8xV3FvMVdwb05CcG9OQnBvdFZwb3RWb0VCUVVoT0RnWUlTRWhDQThQUjBSRUJLS2pveEViRzR1RWhBUm90VnIvelhRZGhmaUI3YmNKeTdJb0x5OUhaV1VsYW10clVWOWZENzFlRDZQUktBR2ExV3FGM1c2SDNXNi9JcURKd1V5K0NZSkFSSUR6QWpNUElCUEJTUTVTM29BbGYxOWRYWjBhSEJ5Y29sUXFiMkVZcGlVaHBEa2hwQm1BWmdBQ2JwSnB0Z01vcHBRV0NZSlF5UE44QWN1eUYzVTZYWDZ6WnMwdWVBRWN2UXpnTlFCQUVmZ0lJUjVBUnltbFNxVlNCRFlKME9RZ0o5L2s0TllZd0FVRUJDQWdJQUNCZ1lFU3dJV0doaUk4UEJ5UmtaR0lqbzVHZkh3OEVoSVNvRmFyL1RlWEg5aitIQ2twS1VGbFpTVnFhbXBRVjFjSG5VNEhvOUVJazhra0Fack5acnNzb0hFY0o3RXpiMUR6QldZaUt4T0JUYngyUG9ETTQzMWVYbDVzUWtKQ0I1VksxVUdoVUxRbmhMUUgwQmFBNXE5OERYaWVkNVNXbHA1TlNrbzY0M1E2ejloc3RwemMzTnljSGoxNjFMcVpvaHpVQkRkVDgyQjIza0FuQXBzSWFDS2J1eExJaWFDbVVDaWdVcWt1QzNCYXJWWUN1SkNRRUlTR2hpSWlJZ0pSVVZHSWlZbEJmSHc4a3BLUy9EZVpIOWh1bkZSVlZUVlFPdzBHZzZSMnlnSE5icmMzQUxRcnNEUWlxcDFlZ0VZYVlXVU5HTm5FaVJNVkgzMzBVZmVBZ0lCdUNvV2lLeUdrQzREVXYrTzE0SGtlcGFXbGFOYXNtZmRYZVlJZ0hPTTQ3cmpSYUR4Mnh4MTNITnU5ZTdjZ0F6c0o5QWdoZ2plamN3TmJBemJITUF6MUFYQlFLQlQwU3V4TkRuQWlleE1CVGxSUHc4TENHcWluY1hGeC9wdk9EMngvbkJnTUJwU1ZsVWtzelpmYTZjdU94bkVjV0phVkdKb1BPeHFSMjlGOE1EUGl3MTRtc2pMeXhCTlBLSll1WGRwSG85SDBaQmltRnlHa0o0RGdmOEkxdVF5d2VZdVpVbnJJNlhRZU1wbE1oMmZPbkhsb3pabzFUaDlBSjRqQTVnWTA2c011UjcyWm5KZjlqWHJiMzBRR3AxYXJKWUJyelA0bVYwOUY5dGEwYVZPRWhZWDViMEkvc0YwLzRUZ09KU1VsSGl4TnI5ZExMTzFxN0dpK25BTWlvSG14TTBuTmxERXl5SUdNVXNyVTE5ZTNDdzRPdmxXaFVQUWpoUFFIOEk5YzlkY0FiQTJlVTRJZzdPVTRibDlWVmRXKzVzMmJuM09EV3dOV0oyZDBJbnVUL3kwNkdPUWdKd0pjWTg2Rks5bmZSUFlXSGg3dXdkNlNrcEtnVXFuOE42VWYySDZmVkZaV29yUzB0SUZ6UUs1MmlxQW1zalNSb1YwdG9QRThMNm1aZ2lBMENtWldxM1dBV3EwZXpERE1ZQUFkL0ZmbmR3R2J0MlE3bmM0ZFJxTnhWM1IwOUQ2NHZMaUNOOWcxQm5JTXcwanFxa0tob0ZjTGNDS0RFOW1iQ0c1eTlkVGJ1WkNZbUlqNCtIai94ZmNEMjdXTHhXSkJjWEV4eXN2TFVWVlY1ZE01Y0tYd0RTKzFrM2c1QnVUc2pIZ3hOQW5NYkRaYmxscXR6aUtFWkFGbzZyOHlOMFRLZUo3LzBXUXliWStNak55T1MrRXFQa0ZPcHE1NnFLb2lpL1B5b05JcnNUZHY5ZFRidVJBWEY0ZUVoQVFrSnljaktDaklmN1g4d0haMVVsSlNJckUwdVMzTmwzUEEyNWJtZzZWZENkQ0l0ODNNWXJFTTFHZzB0eEZDUnZuQjdLWUF1UzE2dlg1TFRFeU15T1E4UU02YnhjbEFybEdBVXlxVmpRS2NuTDE1T3hlOGJXK0ppWWwrNzZrZjJDNHZKcE1KUlVWRktDc3I4MkJwQm9QQkl5YnRLb05zaWFoNml1cm1aZGdabzlQcDBvS0RnOGN5REhNN2dIYitKWGxUeWxtV1pUZVdsNWR2YnRteTVSa1p3UEV5a0tPeTF3WXNUcTZtdW9HTlhrMXdyenoyVGZTY2l1eXRhZE9tYU5hc0dVSkNRdnhYeUE5c0RWbWE2Q0R3NWZGc0xJUkRCRFZmZ0NiUEVwQURtZ2htbXpadENoZzhlUEJFcFZJNWdSQXl6TDhNL3pvaUNNSTJxOVc2NGEyMzN0cTRhTkVpR3dDbkhPUmtMRTRRMlp1M211b1ZIdUlCY0NLNE5SWWE0dTA1RlIwTGZ2Ym1CellBZ05WcVJVRkJRUU1IZ2NqU3pHYXpaRXU3UXViQTVRQ055TlZPdlY3ZklTZ29hQkxETUpNQStGZmlYL3laeUhIYzJwS1NrdlVwS1Nsblphb3E3NjJxeWdDT1hnbmdMaGZZcTlWcUVSd2NMTEUzYjhkQ2l4WXRFQmdZNkw4eS8xUmdxNmlva0ZUUDZ1cHFEd2ZCbGVMU1pLRG1FOURjQWJVZTZxYlZhczFTcTlXVENTRVQvVXZ1YjhuaTF1bjErclhSMGRFNzNBeE9EbkM4THpWVkZpYlNBT0FhczczNWluc1RWZFBZMkZoSk5XM1NwTWsvL3Bvby8wa255L004OHZQelVWeGNqSXFLQ2lrbHltQXd3R2cwd21LeFNLRG1jRGg4WmcrSWdDYXpvL2tFdEx2dnZsdngwVWNmM2ExVUt1OEcwTWQvKy85OWhXR1ljWkdSa2VONG50OXZzVmkrSGp4NDhOckRodzg3UlpDamxEYndyUEk4VHdWQm9HTGlQYy96VkI0UzVIUTZxVHhjU05RUTVLWVE4YUVyUG9TdFZpdk1aak5NSmhOdXVlVVdLQlNLZnk1akt5d3MvRWVjcU5GbzlBbG9vc2RUcm5aZXpvN21TK1dVc1RPeWFkT21rTmF0VzkrclVDaW13Ujl6OW84VVNtbTJ3K0g0Y3YzNjlXc1dMRmhnSklUd01pYlhRRTJWc1RodkJuZForNXRjUFJVRGU4V2MweVpObWlBNU9SbWhvYUgvVEdEak9PNXZmNUpsWldVb0xDeVV2SjVpQm9HMzZ0bFlHSWVYMmtsa2FVOFNxR1ZuWjBlMGJObnlmb1ZDY1QrQUZQL3Q3UmNBK1hhN2ZkV21UWnUrbmpKbGlzNUxUZVhkNENhcHFPNWdYeXJQUWZWV1QzMkZoWGluWkVWSFIwdGUwK2JObTZOcDAzOWU1TkRmMnNaR0tVVnViaTZLaW9xa2dOdkxlVDI5TXdnYVVUdEZMeWRES1NVblQ1NE1iZHUyN1F5RlFqRUR3QzMrZTlrdlB1U2l6V2I3L0t1dnZ2cHkrdlRwaHNzQkhDRkVrQ1hkZTJjdVVGOFpDNDE1VGNXQTNtYk5taUUxTlJYdWJBay9zUDJWeFdReTRjS0ZDNUw2V1YxZExYazk1UUczamVSNUV1OVVLQzlQSjdOa3lSTEZraVZMSGxRb0ZBL0NIMy9tbDZ0NzBKNjFXcTByNzdqamp0VmJ0bXhoM1FBbnFhZ3lnQlBrSGxUdjFDeVZTa1VieXplVnE2V1JrWkdJalkyVjFOS1VsSlIvVE16YjN4TFlxcXFxa0orZmo1S1NFbFJVVkRRSTVmQk9YcGZiMUx4WW1vZGpRUFJ5MnUzMk8xVXExU01BZXZodlY3LzhCb0E3YkRRYVB3c1BEOTlJQ09HOEFNNmJ3VkZaQmdQMVptL2VNVy9lQWIxaVNFaVRKazJRbEpTRVcyNjU1UjlSRHVsdjV4VXRMQ3pFeFlzWFBlTFQ1TG1lM3NucmNwWW1PZ3JrYXFmTWpzWllyZGFCYXJWNnBqdmx5UzkrK1cxc2dwQ01zTEN3REo3blIxVlhWMy9XcEVtVEEzS0E4L2FpOGp4UDNRSkJFS2hYL1Q3eFBYeDVVVVd6aXVoRnRkdnRzTmxzYU42OHVSL1kvaXIydFBQbnorUGl4WXVOT2drdVU5bTJBVXVUcTUzMTlmV3BvYUdoc3dnaEQvdHZTNzljTDJFWVprUjhmUHdJbG1VL3lzbkorYnh6NTg3NU1vQVR3MFI0QUlJZ0NJTFkzOEs5VVRGbFR3NXUzaUFuT3NDOHdjMXV0Nk4xNjlaL1c3dmIzd0xZYkRZYnpwOC83K0g1bE1lbk5XWlA4MlpwYmxDVDFNNTc3NzFYOGNFSEg4eFdLQlNQQVVqMDM0cCsrU05FcFZMTjZOU3BVNWJGWW5tL2I5KytueDgvZnB3RndMblpHeU9xcUpSU3FSaW0yNEZGNWNVVnZBSE91MXF6SE9CWWxwWEE3ZS9ZU09ZdkQydzZuUTY1dWJrb0xDeVVDa0xLcTNMNEtnYnBmb3JKUVUzTzBoaEtLYkZhclVNMUdzM2pBQWI1YnoyLzNBQnBHaGdZK1B5dnYvNDZvTHE2K3FNbVRacnNKWVN3TXZXVTRGSk9LdlZpY0hLQW83NmFBdmxTVDhVb2dOVFVWRVJFUlBpQjdXYVJxcW9xajNBT01ZbmRWNFZiV1NnSEVlbTVENWJHbEphV3hzZkZ4VDNPTU14Yy83M21sejlCUFIwUUh4OC93T0Z3L0hmSGpoMmZabVZsVmJyVlUwWU9jSzRLNWtSb2pMM0pWRlZjalpxYW1wcjZ0M0lxL0dXQnJhU2tCSGw1ZVNncUtwTENPZVROVlh3NUNieFpHcy96Y3BiRzJPMzJDU3FWYW03cHVlTmR5eDNCeUVodmRWT2RjMzE5UFdwcmE1R2FtdXBIZ0wrQTZQVjZiTnEwQ1E2SEE0TUdEYm9tZzcxYXJaNDFiTml3WG5WMWRlOUhSVVZ0SVlRbzNPb3BKN085RWJuOVRRNXdMTXNTbG1VYnRiMTVNemlPNDFCVFV3T3oyUXdBaUlpSVFPdldyWDgzOFNnb0tBQUF4TWZIWDlYNVYxUlV3T0Z3L0c3bkJ0UG9ONndlbnl4N0VvUDdaeUlqc3o4ZVdmZ3F5a3pPbTJMQjVPZm40OHlaTXg1eGFwZlltZzdGRjg3ZzJKRmZrWjJkZzhMaU1saHNkamdjRGlJQ25EczFpZ2lDd0FpQ29LaXNyRXgyT3AydnFWU3Evd0hvdXZvLzgzRFB3bmR1aW5NOWZQZ3czbnp6VFFEQWtTTkg4TnByci8ycFkvZzl3bkVjQmcwYUJJUEI4S2VONFhyTDJiTm5ZYmZiRzN6dWREb3hZY0lFRkJVVklUQXdFRmFyOVpxUFRRanBIQmtaK1I3THNvdDM3TmpSakZJYVFDblZ3TldZV2tVcFZWQktGWUlnS0FSQllIaWVKMDZuazdBc0M1UEpCS1BSU0VRdnFEeVAxR0F3U0ZXaUt5b3FVRnhjakFzWEx1RFFvVVA0K09PUDhmYmJiLy9tZGZiU1N5L2h6Smt6QUlDQ2dnS3NXN2NPSzFhc3dLcFZxNjVxUFd6WnNzWG4vMTdyZW1nVTJMWjk4Q3hlL0hRM1JrNS9CdiszNEQ3ay9mZ2VIbm4yNHo5OUlaMDdkdzVuejU1RmZuNitSN1Zia2ExVkZlY2h2NlFheXNCUWhBUUhnSE5ZU0gyOW5vaU16YzNVaUNBSUlrc2JGeDBkL1JVaFpPYk4rTlQvOHNzdmtaR1I4YmNZZzBxbHd2dnZ2LytidWk3ZERQUGdTK2JNbVlPU2twSUduK2ZsNVlFUWdrV0xGbUh5NU1sbzE2N2Q3NW0zQi9yMzcvL2ZFeWRPWkFIUXd0VVRWZ1EzcFJ2Z0dCSGMzTDAwQ00vemNEZ2N4RzYzRXhIY0xCWUxUQ1lUVHA0OGlZS0NBdFRVMUVqOVBWaVd4Wmd4WXpCdzRNRGZORTZUeVlUZHUzZWpUWnMyQUlETXpFeXNXTEVDdDkxMjJ3MWZENDBDVzFGUkVVaEVjMHlaTkFZamI3OFhMeTkvRWNPNkpNRUpRRjk0RkhQdm40Q01qRXpjTnZraDdENVhCUUE0dXY1TkRNKzZGM2syQUhEaXhZZEc0dUZsWDdwNStVbE15aHFPZDcvWWlEbFRiMGRtUmlZKzIxM29ZbUNIdnNjOTQ0WWlJNk1YcGo3NkhQSnJIU0p0eE5aUGxtUDBnTDdJN0RzWUR5NTRCYWZQblVOQlFZSFVEcys3SjBGRmVUWEFxQkFhRkFDVldrdlVTZ1dvNEhTQm10TkpPSTVsbkU0bjAyUEFpUEJ2OXAxNVFhVlNmUW1nMjRGdjM4VHcvcjB3OExaN2NMalFKS2V1SG1OWTh1WWFPRzdRVFdNMEduSDI3Rm4wNkhFcER0aHF0V0xldkhubzM3OC9IbnZzTVRnY3J0R1l6V1k4OWRSVEdEcDBLQ1pObW9SVHAwNEJBTDc0NGdzOCt1aWpHREJnQUJZdlhveXNyQ3pNbVROSGJMcU10V3ZYWXVUSWtjakt5dkw1cFBRMWhsOSsrUVhqeDQvSDRNR0RzV1RKRXRoc05nQkFiVzB0WnMrZWpheXNMSXdmUHg2Ly9QS0x0TTlkZDkyRmtTTkhZczZjT1pLNkk4cW5uMzZLNGNPSFk4aVFJWGp0dGRmZ0hUVHVQWWJ2di84ZTc3MzNudlQ5NmRPbnNXREJBb2twTFZ1MkRFT0hEc1hZc1dPbE1aak5aa3lmUGgydnYvNDZoZ3daZ29rVEo2S29xQWdBOE1JTEwyRC8vdjNTOFZhdlhvM1ZxMWRmOXRyczJiTUhFeWRPUkdscEtlYk9uWXVKRXlkaTU4NmRBSUNubjM0YVR6enhCQ29xS2pCeDRrUk1uRGdSTE10ZTluanIxNi9INjYrL2poa3pacUJmdjM1WXVuU3BOQS9MbHkvSHFGR2p1aXhjdVBDRFhidDJ6ZjN3d3crakthVUJBRFNVVWhXbFZDa0lncExuZVViYzNNQkdEQVlEYW10clVWdGJTMncyRzNRNkhVNmZQZzJqMFlqczdHeHMyN1lOUjQ4ZVJXVmxKY3JLeWxCUVVJRGk0bUxVMWRWSnY1K1hsNGQ3N3JrSGdpQkk0NTA5ZXphT0hqM3FjUTRiTjI3RXFGR2p3RERNRmRmMjVkYkR1WFBuTUdIQ0JBd1lNQUNmZnZycEZkZmtoUXNYTUhQbVREend3QVBvMzc4L0ZpNWNDTWgwYzQrdDhzUUc5R2pmRXAxNmpjRFNWOTdCNlJMWGlWTGVnRmtqT3FIN3NHbjRidE42ekpwd0sxcjNtSUFTTzhXdWorZWpSWXMrT0dtbW9KVERJNE5TTUd6Mlc2NzlxdmVoUzRzV2FObTZFMmJNbTQ5Rjg1L0Uzbnd6K0xvVEdOQytKVVkvK0N3MnJGK04wVDNiWXRUanJuMU9yRnVHbGkzYVl2N3JLL0hLMGpsSWlvbEMxclFuTUgvK2ZFeWZQaDNqeG8zRDRNR0RrWm1aaVk0ZE95STFOUlVhQlFGUmFoQVpHVWxDUWtLSVZxc2xhcldhVVNxVkN1S3lLYXBYcmZsMjhPSUhSLy9Zc20wZmVxeWFvNDdTUGJSclNnczY5cUdsZFAzYWxYUll0MVRhZXNUamxGSktUNnhiUmx1MmFFdWZlZXQvZE8ybksyaW5sSlowMmJvVDlFYklxbFdyNk50dnZ5MjkvL0hISDJuLy92MXBXVmtaZFRnYzlNNDc3NlJyMTY2bGxGSzZZTUVDK3E5Ly9Zc0tna0FQSHo1TWUvVG9RYTFXSzMzOTlkZnBmLzd6SDNya3lCRTZkT2hReW5FYzdkV3JGNjJ0cmFVSER4NmtJMGVPcEhxOW51cjFlanBreUJCNjh1VEp5NDVCcDlQUjd0MjcwN05uejFLZTUrbkNoUXZwRzIrOFFTbWw5UDMzMzZlZmYvNDVwWlRTUTRjTzBYNzkra243bVV3bWFqUWFhWHA2T2pVWUROTG41OCtmcC8zNjlhTVdpNFZhTEJZNlpjb1Urc3N2djF4MkREVTFOYlIzNzk2VTR6aEtLYVZMbGl5aGE5YXNvWlJTK3ZycnI5T25uMzZhT3AxT2V2YnNXWnFabVVudGRqczFHQXcwSlNXRkhqaHdnRkpLNllvVksrajgrZk9sZVowNWM2WjAvR0hEaHRIQ3dzS3J1a1pEaGd5aHVibTVEVDQvY2VJRUhUTm16RlZmNjQ4Ly9wamVkdHR0VktmVFViUFpUQWNPSEVoLy9mVlhTaW1sTnB1TkdvMUdPbVBHRFByamp6OVNudWQvS2l3c25BQ2dHWUFtQUtJSUlXRUFnZ0FFTUF5akpvUW9DU0VLdFZyTkJBUUVFQUFrTEN5TXhNZkhJems1R1FFQkFXamV2RGt5TXpNeGVQQmdqQnMzRHRPblQ4ZjgrZlB4MEVNUFllREFnVGgrL0RoWWxnV2xGR1BHak1IT25UdEJLY1c1YytmUXQyOWZPSjFPRDh3WU4yNGN5c3JLR21ESnA1OStpdWVmZjk3ak03ZXFqUFQwZEJnTUJ1bnpqei8rR0dQSGpvWFpiRVpWVlJVeU16T1JuWjN0c2UrcVZhdnc5dHR2Uys5UG56Nk5ybDI3b3F5c0RGYXJGUk1uVG15Y3NjV2xqOGJXcmQvanZxd08yUC9OZXhnemVBZysrZmtjaE9JRDJISFdnSWtQUG8zYlI0N0Jvc2Z1Qmx0OUZMdFAxbDhWQ3huMTZISjgrT295dkxqc1pmUnBHWVNDZzd0UmFHVXdmZDRpakI0ekdXKzgrd0ZtanV2dGVnSjh2d0UwTEFGOHhSbmtGQmtRb0hEaTlQR2pVcHlhZDBpSHpXWURUeWtnOEI2cXA4dnJLVEFVVU14K1k5UERVeWVPWDdsay9zeWhHbnNadHUzT1JmNnZoMURQQitEQnA1L0JtSEgzWUdDWGhFdFBvZTgzQUJGSlNGQVlVV1VMUkdJRWcxMjc5dDBReHJaMjdWcU1HemZPNDdNMmJkb2dJU0VCYXJVYTNicDFRMFZGQlFEZ3A1OSt3b3daTTBBSVFmZnUzWkdjbkl3VEowNEFnRlIxTlNRa0JFcWxFa0ZCUVdCWkZwczNiMGFUSmsyd2R1MWFyRjI3RmpFeE1UaDA2TkJseDNENDhHRjA2TkFCYmRxMEFjTXdXTEJnQWNhUEh3OEFtREZqQmhJU0V2RDIyMjlqNTg2ZHFLbXBrZllUZjk4N0lEUXVMZzRxbFFydnZQTU9UcDgralpVclZ6WlFNYnpIRUIwZGpTNWR1bUQzN3QxZ1dSYTdkKy9HcUZHdVpKQWZmdmdCSVNFaFdMbHlKUTRjT0FDR1lYRCsvSGxwREQxNzlnUUFaR1Jrb0tyS3BXa01IRGdRT1RrNTBPbDBPSG55Sk9MaTRxNUhXNzlybHU3ZHV5TThQQnhCUVVGbzM3NDlLaXNyQVFBQkFRRUlDUW1SNnFzeERETzRXYk5tYjN6enpUZFQzS3BwZ0tpYUFoQlZVd1VBUnN5ZUlZUVF0eU9OMk8xMjhEd1B1OTB1cWFaNnZSNTFkWFZTWUx2UmFFUnViaTVPblRvRnU5Mk9HVE5tNFBQUFB3Y0FmUFhWVjdqbm5uczg2cjNsNXVZaUpDUUVDUWtKVjNXdWphMEhBT2pjdVRPQ2dvSVFHeHVMWWNPR2VURC94dTZMaElRRUpDUWtRS3ZWNHE2Nzdtb00yRmhzVy9NWjloY3llR3p4TW16YnN4ZTNkMURobGRmZWQzbFFBR2cwcnVhdEt2Y3J4L0x1ZlFYSUdHc0RDZmVLbDJFNUJ3QUZOQnFYZzdaRmVoOWs5ZTNzb3B3bUN6aWJIaGZPbjBkaFlSSENrMUlSRzZLOFhQY29Ra0VJcFlKVU84M3A1QmllNTVuaXZPMEp2VnEyZUMxQXEzMERRSUpTbzRZQ0FNZXo0Snc4QUFXVW1vWk9ZcnZORGlYRG82YXlFcFdWMWVpU05RVlp2ZHJlRUZ0aWVIajRaYXVoTWd3anFRc2N4MEdqMFVqZmFiWGFLNm8vTnBzTm9hR2gwaloyN0ZqMDZkUG5zbVBnT0E1cXRWcDZIeElTSXBYRmVlMjExN0IrL1hyMDZORURJMGFNdUtyekRBc0x3OGFORzVHYW1vcHZ2dmtHdzRZTlExbFoyUlhuWWVyVXFmajIyMit4ZmZ0MkRCbzBTQW95dGRsc2lJeU1sTTVwN3R5NVB1ZFFQbmRLcFJMang0L0g5OTkvajNYcjF1R3V1Kzc2MDIxM2hCQmNJWTg3UWExV3Z6Uno1c3huTm0zYWxDaXFwaktBRTRHTmNkdVRJUWdDY1FmbkVrRVFpTVBoOEhBcTZQVjY2ZDZ5V0N3b0xDeVV3SzF2Mzc3SXo4L0h1WFBuc0czYk5reWFOTWxqTUd2V3JNR0VDUk91K3p5bzFXcklTNnRkelgyaDBXZ2FBellsanYrNEVrOHRlQlo3VCthanRMUVFlclByeGxFMDY0Wk8wU3I4c081L0tDd3R4YW92TndDQkxkR3RZd3ppWStJQTFPR1hnOW5JUDdrTEY2cjVLdzY4WlpjTVJDaFliUHBtSGNwSzgvRFl1RXowdnVkRm1Fd21ORW0rQlpiYUtnaWg4YmlsWlRNb0JSWUJha1dET0RWM3hWdkNzaXdVaEFCVUlDekxFWjduR1VHZ3pOQ0hYKzNYcEhubWg1bnR3MmJ1MnJnRzU0cEw4ZTJxTmJDUUVHUjBhWTFiT25SRUlDeFl2Mm9kQ3M4ZnhjbThPbWw4ZlhyM0JLZlhJU0VqQ3c4L09BMXQ0c09Ra2RIbEQxL1lhOWFzd1IxMzNIRk5UL3N0VzdaSWJ2YnM3R3gwN05qeGl2dFVWVlZoekpneG1EQmhBbHEzYnUyeFlIeU5vWFBuempoNjlDajBlcjMwUHg5ODhJSGt0UjAzYmh5NmQrOHVxUWxYa2wyN2R1SGxsMS9HYmJmZGhsZGVlUVZ0MjdiRndZTUhyemdQM2J0M1IybHBLVmF1WElrcFU2WkluMmRrWklCbFdVeVlNQUVUSmt4QVFrTENWUVdmVHBvMENldlhyOGZodzRldnlYaXUxV3BSVjFmM3A0QmZlbm82amg0OU9xTlhyMTR2RlJRVTlQRGxXQUNnRUFTQkVkbWI2RFdsbE1LWFUwSE0xckhaYkZJSi9ieThQSnc5ZXhhVEprM0NvNDgraXFGRGgzcFVDZUU0RHJ0MjdjTFFvVU92eTNrVkZoYUNVZ3FIdzRIZHUzZWpRNGNPVjF3UE9wMU9zamYvOU5OUGpjV3hNWGpzcGYraWV2NUN6QmczQkJ3Rm9sdDJ3Y3N2ejRGUzNRVExYdjhYWnM1N0hnUDdyWUk2ckNtZWVlVnRwSVVDR0h3blJxVjlnK1VQMzRaUFcvZERpNlpoMEYzaEpEVEovZkhLMGdmeDFMOFhvZSs3SEtLYWQ4VnpDNmZnOU9uVGlPNDRCSm10TCtEbmJ6NEQ2K1NoMElhZ1pZb0dBWEI2eDZoSjhXbFFLQWdSQkNJSVBBSEFESjc0eU5UWC8rL2had2pScGl4NCtYVVVQVElQSTI3dEIwVkFCTzViK2hxR3R0SUNHSW9sRHc3QnN4OCtqUjlYeDZKOXdxV3FvOE1mZmg2UGx6NkJOeDZmZ3VVOEVOMnFLMTdxUHhsQStCKzJZRm1XeFo0OWV5U0QrTlhJMHFWTE1YUG1UR3phdEFrVkZSVll1blRwRlcvbzhlUEg0L1RwMDhqS3lrSk1UQXdVQ29YazVtOXNEQWtKQ1pnN2R5NG1USmlBbUpnWUFKRGM3ak5tek1EQ2hRc1JHeHVMMk5oWUNJSUFnOEdBc0xBd2pCczNEdlgxOVRDWlRCZzFhaFNDZ29Ld1pjc1daR1ptWXZYcTFSZ3pab3pyd2FsUVNEZkk1ZWFCRUlLSkV5ZGl5NVl0U0VtNVZOZHo0Y0tGZVBUUlJ6RjI3RmhRU3RHdVhidXI4cWFLUFFOYXRXb0ZwZkxxd3p1blRwMktPWFBtb0huejVoZzllalNtVHAxNjNkZkQ4ODgvangwN2RxQzJ0aGJIamgzRFN5KzloUGZmZngrdFc3ZkcxS2xUTVdyVXFJRnhjWEhOQmcwYTlOYlBQLys4MFoyR0phL3N6QU1BcFZSd3gyNUNvVkJRa1JDbzFXb2FIeDhQczltTVU2ZE9TV3p4czg4K1EvdjI3VEZ5NUVnSWdvQTJiZHFndUxnWTk5NTdyOGY0ZnY3NVovVHQyOWVEeVFQQWhnMGI4TnBycjhGa01zSHBkT0xubjMvR0k0ODhna21USmpXNkhrU1FHanQyTFBSNlBYcjA2Q0daRHk2M0hod09CKzY5OTE0cDlPYUtaWXRZaHdsV0I0UHdVSy9PMDRJVDlYbzlna09qb2ZaWUJ3TDA5WG9FUjBaZVUvU3Z3RHFnTjlzQUJqaWJrK01SemxGZFhZWGFlaDBjTmx1RGJBSTVxTW15Q0pocGQwOVZMUC9QZnhkRWh3Y3Rna2Nnc210ODJ1QndhTlNlaE5WbTBRUEtZR2g5cUtTc3d3S2pqVWQwK0I5ZmF2bnMyYk00Y3VRSTdyNzc3bXZldDY2dURxR2hvVkNwVkZlOWo4MW1BOGR4SG1Xa3J6UUdsbVZoTnBzUkdSblpZSUhaYkRhRWgxOGI4SnRNSmhCQ0VCd2NmRjNtd1dBd1FLMVcvKzQ4eUNsVHBqU0l1OXU0Y2FPSDUwL3NrWEdsY3k0dUxzWWpqenppOFZuNzl1MnhZc1dLM3p5K21wb2FhTFZhTUF5RGYvM3JYODdFeE1UWDNudnZ2WTlPblRwbGQ2ZGtjZTdONmE3ekpoQkNCSGtoUzQxR0E3VmFUY1hhYm1McEk3Rm9aVlJVRk9MajQyRTBHcEdUazROVnExWjVuT3VubjM2S1BuMzZvRldyNnhmUUxpYnJ5ME5CR2xzUDJkblpXTGh3SWI3Nzdqdm85WHBFUmtiZVhQWFlkRG9kY3J4QVRYUVNpTTFXNU4yalpLQW1yNXZHVkZaV0prVkZSVDFEQ0prQnYvamxieXFDSU9EdXUrOUcwNlpOd2ZNOFRwMDZoYSsvL2hvaElTRXJkK3pZOGVIdzRjTkxDU0VPTDNEanZjQk5LajB1Z3B1OEc1WUlicVdscFNnb0tNQ3NXYlBRcDA4ZnRHL2YvcWJKTHhXQmJjT0dEWmNZL2MwQ2JISlFLeWtwOFFBMWVjTVZIMHhOVEkxaUJFRWdKcE9wbTFhclhlaXZtZWFYZndxNFpXZG53MjYzSXowOVhYSWc4VHkvSlRjMzk3MTI3ZHFkQnVDUXNUZW51N2tNNys2eElJaU5ZK1RnSnBZY0Y3MlhZZzIzbEpRVXFXRGx6UUp1VnFzVmhZV0ZIa0hRTndXdzZmVjZaR2RuK3dRMWthbjVVajlsV1FTRVVzclliTFpoYXJWNkVmeVZiZjNpRjFCS0Q1ZVhsNytUbUppNDF3dmNPRGU0U2N6TlhYNjhBYmcxcHBhSzRKYVdsbmJOWm9jYklYOTZFcnpCWVBESjFIUTZuYzhLSFY3cXB3UnFEb2Rqc2xLcFhBU2dsWDlKKzhVdnJrcTlDUWtKa2JXMXRXOUZSMGR2cHBReXhCVTRSaWlsSE54T0JjR2RVdUFtT1JRdXh3UDFBWlMrZmdOcGFXbS9LUzNxYnd0c0pwUEpwMDFOQkxYTHFaOXlVR05aOW1HRlFyRVlRSXgvT2Z2Rkx4N0FreElWRmJWWXI5Y0hoNGVIZitNdWQwUzhOVFlSM0p4T3AwOXdhd3pVeEsxRGh3NDNWYU1ZNXMvNllZdkYwcWlqd0VjVFk5SVlxSEVjOTVSQ29WanVCN1hHN1EvMzNYZmZUVFdtd3NKQy9OVWFkYi84OHN2bzNiczNoZzRkS3FVYVRaNDhHWk1uVDhiMDZkT3YrKy90Mzc4ZjE3SG5iMHhZV05nU3M5bDhMd0N0TEpoWG5xa2daU2s0blU3aXJscEpSN1FBQUNBQVNVUkJWTk1tSmREYmJEYVBRTjY2dWpvcGVUNC9QeDg1T1Rtd1dDdzRlL2FzbE5IaExmUG16Wk15WlJxVHpaczNTeGtPZnpsZ3M5dnQxK0w5SlBJT1VxSk43WjEzM2xGeEhQY3N3ekF2d3BWUzRoY2Z3dk04amh3NWNsT042Y1VYWDRURllwSGVHNDFHeko0OSs2YWR3NU1uVDJMTGxpMzQ2YWVmc0czYk5uVHExQWtxbFFxdnZQSUtubnZ1dWVzK3Z6VTFOVmkrZlBrMWhlejRrb3NYTCtLNTU1NFQzd1lFQlFVdHJLeXNmRWlqMFFRMUFtNEtRUkNJdlB5UnU5S3VCRzRXaXdWR283RlJjSHZpaVNjOFVxM2tjdXJVS2FsZ1FtTlNXVmtwRlNmNFM2bWlITWRkMXZ2cFpWTVRjejRoTDhmeTY2Ky9CcWVucHk5aUdPYkp2eU1ZSFRod0FNMmJOOGYrL2ZzUkZ4ZUh2bjM3U2psMVpyTVoyN2R2QndEMDZkTUgwZEhSMG43bDVlWFl0MjhmSWlNak1YRGdRSjlWRms2ZE9nV05SaU1WRWF5dHJjWE9uVHNSR0JpSWZ2MzZlYWdUUjQ4ZVJWNWVIdnIxNjRmYzNGemNldXV0a2xxeWI5OCtsSmVYbzNmdjNraE12TlFPb3F5c0RQdjI3VU5vYUNnR0Roem9rZVlGdUxJaWFtcHEwTDU5ZXdCQVRrNE96cDQ5aTkyN2QyUGJ0bTBBZ0w1OSswcnhaOFhGeFRodzRBQ1NrNVBScTFjdkNRZ3ZYTGlBbUpnWTdOKy9INm1wcWVqU3Bjc1Z4MEFweGQ2OWUxRlJVWUdlUFhzaU9UbFoyaWNuSndkUlVWRW9MUzFGYm00dSt2WHJoOFRFUk96Y3VST0hEaDFDUkVRRTl1M2JCN1ZhTGMxRDA2Wk5ZVEtaR21XbGh3NGRRbEpTRW5yMTZnVkNDSTRkTzRiVTFGUm90VnFjUG4wYW5UcDF3b1VMRnhBWUdPaVJZN2x1M1RxTUhUdjJpdXZoK1BIamlJNk9SbEpTRWdCSWViT0RCZzNDc1dQSGNQVG9VZXphdFVzS2NCMDZkQ2kwV3UzYzFxMWJxNGNORy9iUnl5Ky9ySGVybEtMZHplbFdTM2wzcVh4UkxZWEQ0U0NDSUZDajBRaTFXbzNFeEVRUFZaUVFncEtTRWdRRUJIalkyOFRyNTZ0czA5R2pSNUdibTR0dTNicDV4TUFKZ29BZE8zYWd2cjRlUTRZTWtZNzN5eSsvb0UyYk5nZ0xDd1BMc2podzRJQjBMZXgyTzdadDJ3YWxVb2wyN2RyZFdNWkdLZlVBTlhreXUzZlRGVmx2QWc5UU8zLytmRVI2ZXZyU3Z5dW9BYTR5T2s4KytTVDBlajJXTFZzbVpRUG9kRHJjZHR0dEtDMHRSV0ZoSVVhUEhvM2EybG9Bd0xGanh6QnAwaVRvOVhwczNyd1pEenp3UUlQamJ0bXlCZlBuejVmQThPTEZpNWc0Y2FLVS9EMW16QmdwTFdYMTZ0VjQrdW1uWVRRYXNXalJJano5OU5NZUtzWFhYMzhObzlHSUtWT21JRHM3R3dCdy9QaHgzSDMzM1RBYWpkaTVjeWNtVDU3Y3dEYXpidDA2andUbXVybzZsSmFXUWhBRUZCVVZvYWlvU0xUellPZk9uWGpnZ1FkZ3NWanc3cnZ2U29Hc3BhV2xtRFZyRnQ1NDR3M29kRHJNbWpVTHUzYnR1dUlZNXMyYmh5KysrQUlta3dsVHAwNzFLRlcwYXRVcVRKOCtIZSsrK3k1eWNuSlFYKzhxNmxCU1VvS2FtaHJZYkRZVUZSV2h0TFQwaXRkdjU4NmR1TysrKzJDeFdQRFJSeDlKa2ZJYk4yN0VrU05IY1Bic1dUenh4Qk1BZ1BmZmY5OURQYU9VNHZ2dnY4ZnR0OTkreGZWdy92eDVQUC84ODlML2JkMjZGWjkvL2prWWhrRjFkVFVxS3l2QnNxdzByNkt3TER2TDRYQThQSEhpeEdnQVl2RktGUUNsSUFnS0FBcEtLV0ZaVmxKTFRTWVRxcXFxWUxGWVVGMWRqWnljSEEvbVZsVlZoYTFidDZKZHUzYkl5Y2tCcFJSbnpwekIrUEhqVVYxZGpjOC8vOXhqN2w1OTlWVzgvdnJyc0ZxdGVPU1JSN0JqeHc3cHV3MGJOdURvMGFNNGZmbzB4b3daSTdINzVjdVhTeVlNbzlHSUo1OThVZ0xDcVZPbll2djI3Y2pQejNkbGZ6Uld0dWlQMkU2ZlBvMXZ2LzBXcjd6eUN1Yk5tNGVwVTZkaTVNaVI2Tk9uRHpwMTZvVFUxRlFrSlNVaE5qWVc0ZUhoSkNnb2lHZzBHa2FwVkNvVUNvV3lzTEF3VGhDRU4rbmZYSVlQSDA2enM3TXBwWlNXbHBiU0RoMDZVS2ZUU1d0cmErbXhZOGNvcFpTeUxFdG56SmhCdDJ6WlFpbWw5UDc3NzZlYk5tMmk3dExRZE1HQ0JWU24wMUdqMFVqVDB0TG8xcTFiNlpBaFEyaFZWWlgwTzZXbHBmVE1tVFBTOGJLeXN1anAwNmNwcFpUMjc5OWZHa041ZVRudDNyMDdwWlRTNDhlUDB4RWpSbEJYTldwS3Yvbm1HL3JVVTA5UlNpbjk5Tk5QNmV6WnM2blQ2WlMrczlsczB1OEpna0N6c3JLb1RxZnpPTithbWhyYXRXdlhCdk13ZVBCZ2FRd1dpNFYyN3R5Wk9od09tcE9UUXdjTkdpU040WU1QUHFEUFBmZmNaY2R3NXN3WmV1dXR0MUt4UitldVhidm8rUEhqcGQrYVAzOCtmZjc1NTMxZWowMmJOdEZaczJiNS9NNW9OTktPSFR0NmZEWnExQ2g2K1BCaFNpbWxITWZSbmoxNzB2ejhmUHJkZDkvUmQ5NTVoMzc0NFlkMDRNQ0J0TEt5a280ZE85WmpqbzRjT2RMZ3R4cGJEM2E3bldaa1pORGk0bUpLS2FWMzNua24zYkZqeDJWTEp4a01CcHFXbGtZNWpxTjJ1LzJEMmJOblp3Qm9BU0FCUUJTQVVFSklJTU13R2dCS2htRVVHbzJHSVlTUXdNQkFFaHNiaTRTRUJEQU1nMDZkT3FGUG56NFlPWElrSmsrZWpDWk5tbURGaWhYNDl0dHZwUnA1SDMvOHNYVC85K3ZYRC9uNSthaXNyRVJHUmdic2Rqc29wVGg0OENDbVRKa2lsUzFhdEdpUnRNLzA2ZE94ZnYxNlVFb3hkdXhZbkRoeEFwUlMxTlRVb0d2WHJxQ1U0cGRmZnNHSUVTTWdzc3kzM25ycnhxbWk1ODZkdzRVTEZ5VDFVOTd6VTdTcE5SSjhLekcxNU9Ua1JZU1EyZmdIaUppdjJMUnBVekFNQTZQUmlKQ1FFS3hldlJvclZxeEFhR2dvY25KeXBDZDdZV0docEY0U1F2RHZmLzhiZ012emJMZmJNWC8rZlBUczJWUEs3d1JjcFdPZWYvNTVXQ3dXQkFjSG82S2lBanpQUzZ4SVBKN2MxcE9ibTR2eThuS01IRGxTc3VHMWJldXFkako1OG1RVUZSVmgyTEJoU0UxTnhiUnAweEFRY01uOGVlVElFYVNrcEZ4VjNCUFA4OGpQejhkVFR6M2xNVjR4K1Y2cjFVcnFlWEJ3c0ZUSnBMRXhGQlFVb0czYnRwSjZucGFXSnRYakYrVjZwUVJkdkhoUlVyMlVTaVhhdEdtRHdzSkNwS2VuWStmT25YQTRISmc2ZFNvT0hqd0lwVkxwTVVlTkpYbjdXZzhSRVJHWU9uVXFWcTFhaGNtVEo2T21wZ2I5Ky9lL3FyWGwzaDRZTjI0Yzl1N2QrOEdKRXlmcXZiVXJkODRvTCthWDhqeFBXWllWKy8vQlpyTkphbWg1ZVRsaVkyTlJYVjBObFVvRmhVS0IwNmRQUytXazVPc29QejhmRm90RlVyY0ZRZkJZRTNMelJXcHFxa2UxRjE5U1ZsYm0wU05WcFZMZEdHREx6OC8zQ1dvK0tuUTBDT2tRYldvdFdyVDR4NENhWEl4R0kxaVdSWEJ3TUxaczJRS2owWWd2djNSVkpYNzAwVWVsLzR1T2prWkZSWVdVRUw1bnp4NTA3OTdkNVNGaUdHemV2Qm56NXMzRGUrKzlKK1Vycmw2OUdvbUppVml5WkFrQWVLZy9VVkZScUt5czlMQ2ZpWiszYmR2V1o0WFp2THc4UFB6d3czajIyV2R4N05neFBQamdnOWkyYlJ1aW9xSXVlOU1TUWp5cXN3S0FRcUZBZUhnNFB2endRNmtza2lpaSt1MUxHaHREVEV5TXh3MVNWbGJtQWZMWFU4VGZFcHZ1aUwvVnZIbHpWRlpXSWpBd0VJTUdEY0xpeFlzOUdxWllMQlljUDM1Y2VpaGRhVDBBcmlUOEVTTkdnR1ZaVEpzMnpjT3U2bXRldlVXdFZqL1FwazBiWWRTb1VlKy8rT0tMYUF6Y1JBRGlPRTRLQlJFZEFZUVFYTHg0RWQyNmRVTnRiUzBVQ29Ya1FEaCsvRGg2OSs0dEhVOWNROUhSMGRpMGFaTlBPN0I4ek9YbDVjak16QlRIS2ozQTVDYU9xS2lvQnVyOEh3NXNKU1VsVXRNVmI2Ym1iVlB6RmRMeHpqdnZxTnlPZ2puL0pFQjc3NzMzTUdYS0ZLeGF0UW9qUm95QVNxVkNiR3lzVkErcnVMZ1l1M2J0a2tyc1RKczJUZktrNWVibTRxdXZ2c0tHRFJ2Z2REcWhWcXVSa0pDQXQ5NTZDN2ZmZmp2YXRXdUgvdjM3SXlZbUJsdTNic1dPSFR0dzRzUUpuRGx6UnJLeFRabzBDUXNYTHNTRER6N29rWVBYdDI5ZnZQTEtLM2oxMVZmUnYzOS83Tml4QTBsSlNaZzhlVEtPSERtQ2JkdTJZYzZjT2FpcHFZRmFyWmFldm1MbGlPWExsemM0MS9Ed2NDZ1VDbnoxMVZkbzBxUUoyclZyaDVpWUdEend3QU9ZTTJjTzVzMmJoN3E2T216WnNnWC8vZTkvTHp0dmpZMmhhOWV1SUlUZzdiZmZSa1pHQnBZdFc5YWdTc1cxZXBzM2JOZ0F1OTBPanVQdzNYZmZJVFEwRklNR0RjTDk5OStQSlV1VzRNa25uOFRldlhzUkZoYUd0TFEwRUVJUUdCaUl0bTNiSWprNUdVVkZSUjc5QURadjNvemh3NGY3dk5sOXJRZkExVTFxOE9EQjJMQmhBL2J0OHl5QW1wU1VoT0xpWXZ6d3d3OElDQWlRQU1KYkZBckZRd3NYTG5UdTNMbnovZjM3OXpld2k3cmY4NElnU0hGdWxGTGljRGdvSVFUeXB1TjZ2VjRDdHRUVVZMejc3cnVJakl5RXpXWkRjWEV4QUtCMTY5Wm8zcnc1RmkxYWhQSGp4K1BZc1dPd1dDeVlPM2V1TkE5ZHUzYUZ5V1RDL3YzN3NYanhZZ0JBMTY1ZDhmbm5uOFBoY09DSEgzNlF4cGVabVluLys3Ly93M3Z2dllkV3JWcGh6Wm8xVUN4ZHV2UVB1em1ycXFwd3p0MmpRTjdNMkdBd2VCU0k5RTZUa3NlcHJWKy9mZ25ETUF2K1NhRDJ4UmRmWU5Tb1VUaDQ4Q0JhdEdpQnVYUG5RcVZTSVRFeEVZbUppZGkzYngvaTQrTXhZY0lFUkVWRklURXhFYTFhdFVKU1VwS3JGcFZTaVJkZWVFSHlMQ29VQ25UdjNoMUJRVUhvMGFNSHpwdzVnL1QwZExScjF3NHFsUXFIRGgxQ1dsb2FoZzRkaW9TRUJNVEV4Q0FqSXdOV3F4VkhqaHhCdDI3ZGNPalFJVXlmUGgwS2hRSzMzWFliY25OemNmVG9VYlJwMHdZVEprd0F3ekJJVDA5SFVGQVFkdTdjQ1l2RmdzV0xGMHU5S3RldFc0Y21UWnBJSGpxNU1BeURYcjE2WWQrK2ZhaW9xRUJhV2hwQ1EwT2xpcktpK2pacjFpeUpxUVFHQm5yVTZZcUxpME9MRmkwYUhRTWhCQ05IamtSMmRqYU9IeitPaVJNbk5tZ3kwckpsUzhUR3h2cThKbEZSVVEwOGQ5dTNiNGZGWWtHM2J0MWdNQmpnZERxUm5wNk85UFIwaElXRllmdjI3WWlLaXNLenp6NHJsZlNKaUloQXQyN2RFQjBkamVqb2FHUm1aa3FlNk9lZWV3NlBQLzU0Z3lqK3h0YURuRHcwYjk0Y0F3WU04TmhQcTlXaVk4ZU8yTE5uRDNRNkhUcDE2b1NBZ0FBb0ZBcDA2OVpOK3Ird3NEQjA3Tmd4NDg0Nzc3Uy85TkpMcDJXTVQwUTRLcXFjY2lhblZDcUo2TlFLQ1FueHFLUkNLVVZrWkNTYU5XdUdFeWRPSUNrcENWbFpXVWhMUzROV3EwVldWaGFxcTZ0eDhPQkJ4TWJHNHQ1Nzc1WFU3ZDY5ZXlNdkx3OWxaV1Y0OXRsbkplOTF0MjdkVUZwYWlweWNIRXlhTkFteHNiSG8ycldyVk9ycThPSERxS3FxUW54OC9CK1hLNnJUNlpDZG5lM0Ixcnl6Q3J6RE91UnhhbUx3clR0T3pTOSs4Y3NORUxQWi9PK1FrSkQvQWJDNUs0TTRBTENRVlFZUmMwdVZTaVYxTTJJcTVwV0tTZk1SRVJGU1htbHljakpTVWxLUWxwWjJ3NUxtL3hCVjFHYXpTUjNhS3lvcVVGdGJLN1hIdTV6NnlmTTg1R2xTRE1NczlpODF2L2pseGtsd2NQQmNuVTVuallpSVdPZG1aaFR1V0RhdjlDdnFJblhFbGFORkNHVVlCZ3pEZ0JBQzhXK2xVZ21WU2dWM2NqMDZkdXo0dTJ2ay9TbkFSaW5GK2ZQblVWaFk2S0YreXF0MGlCNVFlWkZJdDZ1V0VSUGEzYm1mL293Q3Yvamx4a3BBZUhqNFkxVlZWWmE0dUxpdDFKVmM2bTF2Zzd1SGd1QjBPa1hQcUFoeUlJUklkalp4RXdGT285RWdQVDNkWnhPWG14clk1S0FtTmpJV0hRVVdpK1d5bFc4RlFTQTJtMjJZdTBxSFAvZlRMMzc1Y3lRbUppWm1aa0ZCZ2JGRml4WUh2SmdiQlVBRlFSQzlvNUFCR2hHTFY0cWJITlJFWUFzSUNKQ2FLdjhsZ0syd3NCQVhMMTVFV1ZtWlQwZUIzVzV2a0ZVZ0MrdGdUQ1pUTjNjOU5YL3BJYi80NVU4VVFraEtjbkx5UThlUEg5ZDM3dHc1eDgzY1JKV1VpbjBSUk5ZR21ZTkJWRVc5R1p0U3FZUmFyWVphclpiNm12NVJjdDI4b2xWVlZaSmRyYnk4M0tkZHJURVBxRmpPT3pRMDlDVkN5RUQvc3ZLTFgyNEtjR3NhRXhNVDJxbFRwOU5mZi8yMXpRMWVrcWNVUG1xMnVWVlM4Vy81NTVCL0xvYSt5SHRjWEZmR2RqMWFoNW5OWnB3NWMwWmlhMklPcUhlYlBJZkQ0ZUVCRmRYUHUrNjZTd0hnbWZyNmVuODViNy80NWVhUzRabVptVFVwS1NtdlhiaHdRWkF4TjFmNmdmc1A5eXZjV1FuRW5VSUgrZVowT3FYTlhUVUU3ZHExKzBQQVRmbDdhejVSU3BHWGw0Zmk0bUpVVkZRMHNLczFWdExiN1N3Z0FKaGx5NVl0Y0RxZE42VHhpdGhUMGJ2cXhKWEVZckVnTUZBTFFoai9VdmZMUDQyNTNiMTE2OWJxbEpTVXo5MDRKc2pCalJBUnh3VEs4enpoT0k2NmFSc1Z2YVJ5RmRYYlk5cStmZnZyN2t4UUJnVUYvcTRENU9YbG9iYTJCbnE5RG1hekNWYXJCWGE3cEhMS0tuUTRpUmlkTFBlQTF0YldUSFU3QzI2SThMd1RUaWVQYXoxdm5VNkh5TWlJYStvNWFUQVlFUklTN0RPUzNDOSsrU3RKVUZEZ25QejhDNVczM0pLeUZZQTNjNVArVHhBRWdlZDVPSjFPS0JRTTRUaU9LcFZLaWFIWjdUWllyUmFZelNibzlUclUxdGFnb3FMOHVyYnVBd0RsdGR5bzNsSldWb2F5c25KVVY5ZWd2bDRIZzhFSXM3bEJqd0kzdUVtZ1J0eFVsZFRXMXZRTkNBaDRCamV3THB6cmFTSGd0NXkzYUFDOVdqR1pUQWdMQzhYdm1XTy8rT1VtRVdWOGZQekR4NDhmcSt6Y3Vjc3hYOHpOL1VvRVFRRFA4NVRqbkdBWXppdmtRd21WU2cyMVdnT05KZ0JhYlNDQ2dvSVJHaHJhSUNmNGR3MjJzV3FYVjVMUzhqSWNQM3NCT25kR2djRndLYW5kYkxiQWJMV0J2UVJzSWxzanZDQVFLbENtcUtnd0lTZ29hRDZBbEJ0THF4a3B6dVphVlc1NWN1OGZ0YzhmSWZwamU2Qm9sb0dRcUJzVEZrZzVPNncxOVZCR1JFT2pWUU53b21Mckp0aHNnS3BwR3lSbHRQbGIzT20vWlY1dGhUbXdPS01SblJMWHlIL1lVYlhqTUNKdjdRZVZtK2c3aWs2ajdGZytBSUxZUWFNUkhNcGN4N0ZFSURvbDRXcDN1YVYxNjliM3IxeTVzbnphdEdubEFNUkFYZkdWaXA1U251ZmhEdHFWUWtBdWVVY3Q3dEFQdGJzVGxoYkJ3VUVJQ3d1N3BxWXdqdEpjR0l4YXhMWkxhbkJPeW10V2s2Z1ZpejdZZ1AxRjVTQjFaU2l2cVVmWHVGQW9MU1pZTEdhVWxKV2hzTjRNd3RrZ0NFQ0lFc1RwZE1MSmNjVEJPUW5nc3F1OWsydCsrcm40K0NIa1QxaVFsT0thMVVNeFArNWE5dnN0Ky93UlV2TFpjZ1JOL2d4aHZRUC84TitxMi9ZWkRyL3lKYlROV3NCUlZvQm04OTlGbS81SlVBVUV3bkp1Tjg0ZHFFS3p6SFovQzJEN0xmTnFPTEFHaGZwTXhLYU9iSXpuSS8rOXp4RFk5MVpvM0VTZlVXcWcxZ2JnNHRzdlFKMStHMExERzY2bnl1OC9Sc0R0YVFpTDhSeEx3ZnRMb2V6MUdKSTZSRGJZeDN6aVI1UVlPaU0yTmZGYU5KNEI0OGFOSzV3MmJkcGJNdFlteUZnYjRJcHpnMXNscFF6REVJV0NvUTZIQWtxbGF4TXpFZFRxUzIzK2dvT0QwYkZqeDZzbUFwYmptM0gyVkJMaTA1bzFPS2RyQnphbzBUK3REWG8yRFVGaG9ScTc5cFppN3prZHVrY29ZTmJYNFdLZEZZbmhnZUR0UUVWMUhURXJsVkFJVG5DdUNHVkNBTVpTbS8vUXlEZjJ6TXpKVEVYSEc1eGJJRGRpL2pZMWx2bkQ5d0VFVURCdzZxdkEwU0FFUm5oNmpTZ0VFREN3VjVWRDBJUWpNUHpTWXJaWGxZSlhoaUlvS3ZUU0Rxd2RvQVRPdW1vSW1qQUVoSHFtdERpTmRiQVpIUWlNaTRkQzlkdEJtQy9kai8yTFY2TEgybzFvMGl3VUVHeXcxbk5nR0EzaUI0OUFNRk9PL0FLTGova1E0S2lwQnNjcEVKUVFBOCtISFE5YmVRVUVWVEFDWThJOXZxTU9LOHhWdGRERXhFR3QxZHhrOCtyN25BalBnVG9GVUtzQk5nc1FIQmZoT1Q1bkRQcCsreG1JYkk2MHpkcWhlYk4ycVB4b0NZQ0dhNWM2bldqLzNDb1FaY1BQemFjT1FObHFPb2dRRGlpVjBqaW80RVQ4N2ZNUUwvdnMwakE0V01zcndFVEdJU0JRMDJDdDhFYkhmVlVWVllWeFRlTFdBK0I5cWFTQ0lBaUVFT3AwT3NFd0JBNGJKWVF3MUtYQktLRlV1dE9zVkdvRWFOUlFPT3pRS0xVSURRMTEyOXNFMkNyTFFRTWlQYTREQUhDNktuQWtCRVRnUUoyOE5CL3ljMUplcXplaW9xSWVhazZQa3FwSzFOWFZnemhaMk13bVdOUXExT29NSUFvQ2NDNjdtb0pRY0N3TEVFcW9xNlk2c1ZoTS9aVE91dmtjbzBTd2tvQ1FHdzFzbHdEdXR6QzJhOW52dCt3REFPZWZtWWlMdVNvd1NpV0V5b3NJdm4waCtzNGQ3ZnJTZUFycit6K0RwR0V4cUR5bEE4dzZkUGprSnpSTE11TFFmVk5SWjQyRXlsSUdrallSdDc0Nkd5b0dvRTRPaFcvTlI3RktBWHZCR2NUUFhvSHVkN2tLRWhiKzUxR2MzRlNDaU9ZUk1GNm9ROFozR3hFclBkd2RPUG5rVEtnR3pVSzdyQzVYWGhzL3JJZXErd1FrTkhlckU0cEFCTW55UndnVlFIbkJhejZxc1hQd2VMQXhMYUdDQVNaZEtQcXUraENSTVJwUVV6SDJUTGtIOXRDV1VBczYyQk1HSXV0VlYwaysvZTdQc1dmUkp3aHRtd0o3MlVVa1Ava0oyZzFzZnBQTWErUG5CSUdIOGVlVjJIN2dLekNXTXFEMW5SajR4aXdvQVZTdSt5OU9mYmtEK21OMUdIeG1MeUs5c1pyakFIaXVKL2JzejlqOS9FZXduUDRWcmQvZWk3YTNObkdwWk1jMllkL0xYOENTVXdKUzhEaktQOUVpK3JaSDBHVnlQd0JsT0hEM2s5QVZua2ZJN1l2Ui8rbExwZHJ0dVh1d2U5WWlNRTFhZ1MzTVE5eERMNkhiWFgxOXJaV0g5eHpJTHV6WEsrMllTeFdsQWtBRVVTMTF1MGtKejdKdzJ1MVVTUWpzT2gzNDZIZzNhMU9DNk10UTlRdUxXcFVkUWVwZ1hGVCtpSUIzWGtDZ3ZReDV6endITnJRWlVIOFJRVVBub3ZjVDQwQWc0T0pyczNGeVl5SENZalhnV0FkSW0yVDNmSGllMHpVQm05VnFsY0k2YW12cm9LK3Z4dkhDU3NRRmg3cmFjOW5zSUx3QW85RUdvOE5KRkZRQUZTaWhEQWhEd0l4YnNpTDhrVFU3bjZxdjB5ZE1HejhZS2VvL1F4SDliY0QyZS9hN1poRGxuWEJHOXNLb2o1NENNZVhoaDh6eHFKZ3lBZ254U2hldnFEa0ZSZVptakY3ZUVRQUxKNnRFMWVvM1VhWHFoOUhmTDRiQ2FjQ3VJWm5JMnpNTzdRY2tBcndUeXJRc0RINXVDcHpsZTdGK3dCSzBHcmNMRVlIVk9QZmhYbVRzT29XRU9BQk9GandqZjlnSU1KdzZBazE3M1ZXZGcrWENCUVFuOTJ6OGY2a0F3ZWtOYkJIb3MzNDcxQ0V1NnA3M3doU2MrV29YK2o0MkhPWURQNkErYkRER2ZlRXFoTW16ckxSdjRlY2ZvTm5UbjZIVEdOZlRuV2VGSzQ3eHhzMXI0K2NFZ1ljVnlSajc3WnRRQ3dic0hOUUQrWWZ1UUp1ZXNXZ3lmZzZhakIrTEg5cE1kQU9ZMS9pZEhFQTlnVTNUYmpDR2ZqVVlSKzdxQnRCTGF5Mnc2MmdNL1dvMGp0L2ZHNm83MzBMYTBHVFprUkxSNTh1dlVQTCtZN2hRVDJYSHMrTElZM09Rc09CcmRCemNHb0xwUERiM200SDZNWHNSRmRKZ3JUUmhxV0xhc21YL0xsaXc0Qm1CVWdpRVFJRE1ZMG9wQlFVRXlpaWcwQVpRRlp6RVhGdER0YUdCVUNqc0lDd0xjMTAxNG9lUFJHeUxKb2lMamtadFJRVjIvdWRWSkkxOEdjTm5EUUdjT3V3WU9BQ2w0MGFpcWZvUWpuNXlBVU1QYjBWNGtJRGo5dzlHbGZTZzlEeW5hM0xYRlJRVW9Lek1uUU5hWDR1REo4N0FvUXBDc3NJSnM5a09qbVVoY0FLYzFFbkFTNG50RUFRUVFhREVrZHpweWJuOTJ3MnRMem1QVjdjZndhalVFWWhUd1M4K0pMWlBMMWVublpCV2lHa0QxSjhxUjBLOGUzRnFVbkhMNkk2U2FVQ3BCblFuVHlLdTc1TlFBSUF5REUxNnQwZjE2ZFBBQUpmOUpLNm5xNHFwTXFFN29xSXVvajdmam9nT2tZanZHWWtqRDB4RDhwQitpQjg0RFBIdDVmYVdRUFQvNmRRZmZLWU1xamUrZzl6dmRzTm10b090TGtLSXU1eTBOcTBybUZNUFlOY2NCK0o2ZEVYeXlKRUlVcnZucDJjdkhQalhMRGpQamtCVWozNUlIdERsSnBwWFphUG5CQUJSbVpsUU13Q1lNTVIzYjRYNjdHeWc1MDJRY0dQS1JYVzJEWXE5MytEWVFaZHFUcDJsMEJXWUVkWFI1MW9aT0h2MjdMTUxGanp6c1ZzbDViM3NiZFNOMEpUbmVUQXFCZ0xsaWMzT1VxVkNBY0p5Y0FaR1FDQXNqRVlqTkJvTkFtc0tVSCtzQ0h6MGVoeXIvd1VVQU90MG9ENm5CQkdxTTJEU01oQWV4QUJnRU4rM0o2ck9OTGFxcnRaUVdsS0MwdEpTVkZkWG9hNnVGa2RPbkVLSlE0SFdvVXJZN2E1cUhWUVFJSEFjR01KQXpRQzhRQWxBQ2FXVW1mYjhmOFpOSGRybjZaN040ekd5YngrMDV3cXhyZERpUjdCRzZjVmx2dE1HNGZkRmtCRDNsVmVpODBmYjBIdnhkS2k1TXV3ZlB4UjV4MnArODFHRFdqYUhzYUQ0bXZheDdGK0pneCtmUkpkMy9vZVJXN2FnNi8xRDNkb01vRXpzZ2RIN2ZrTEtrRTR3N1ZxRkgyNS9ES3g3djZZUHZJd1JYNjVBZUh3QXppKzVCNGZlMzNIVHpPdmx6c25uWG96aUpsbDBBcUNLUlB6SUxDUm1aU0VwYXlSNmZMb1dUVzhKYkhTdEJBWUd6aW9wS2U0TFZ5VWVEYVZVRFZmNGxvSlNxcUFBUXlsMTl5cmx3UVBnT0JZczY0Q0Q0OEJCZ05WcWhjbGtoc0ZnUUYyZERqcU9BZHVxTFVpWExrakt5a0tYTi8rSGxGN1hGZ3B5VmNCbU1wazhlb0FlUDNVS1o0d1VIYUkwWU8wMjJPME9zS3dEQ2dDVXRST0hLMmFOVUVFZ0JHQ3Fxa3FUUWdQVlR4VFZHbHpUWnplZ3hFSVFIT0NQNzJwTXF2Y2VjQmtyVEhtb09RZEVkcnk4U3o0aXZRT3E5dTRGRHdCT0F5cjI1eUJTVm1HMjZ1QmVsL0czL0ZmVTZWb2hxa1VBQUJhc1JVQlVSaiswbS9jc1V2ckZ3cGd2NytMTkl1Zi81dUQ4OXF0amJRbWp4NEhkdHhwbEJRYjNmV0tGcGRwd3llMFVHUW0yckFST3VYbWpyQXdCcmRJUkhoTUVDQmFVL2JUM2txSGFaQUxDNHBBNGFnSzZ2N1lVeXBKenNMcDNaazBtQk4zU0NTbjNQb3hPRDk0Ry9ibThtMlplTDNkT0FGQzNieDlZd1hXOHlsL3pFTmtoN2VyY2RwSGhzRnloc1ltM0tEVWFzSFgxVi9mUElXMFEyOW9HcXlrY3NkMjZJclpiVjRTM2FBWlZFSFBadGRLMGFkTjd2L2xtVFJNUjNBQkk0QWFBb1FMUHVPeHRUc0lUUUhCeWhHVTVPRGduV040Sm04MFZ0T3NDTnc2MGFTREtDcXRnaXdpSHRuVXFvbHEzaERva0VFR2RPb0JtSDRiZUlnQndvbkx2d2NiUCsyck8xNVhZN2k0WVdWT0tBM21Wc0xGMjdDbTNRV0R0Z0FBa0JDbmhwQ0FxeHRXOUJ0UlZoNDRCbUtpb3VIbVBqdXpkN1lGdk4rTG9rUmpvYTJ1UjBMRW5SaVJwL0FqV2lDaHFEK0xIY1hlQXI3NkkwQWRlY051QkdwZjRPeDlIM0E5MzRvY1JKNkN5bFlHa1BZUlcvUytwbGR6SkxkZzZjU3ZzQldmUWZNbGJjRG1hcXJGcjJGandDYWxRb3g1Rzh5MFlPRlFlaXNHaGN0TTNVTWNPUit2QkhhOThFeVgzUjc5L1Q4SCsyL3Nqb0VVTE9FcUxrZkxTYW5RWTZuSW1hTHFNUkt1V1gyRjl0OTdRZEJtQjBSOHNRdFNnU1ZDL2RSZTJURHdLeGxhUGdPaExEZ0R6d2YvaDU4VmZJcUpOQzlnS3ppQjY1Z0tFdWFmaDdJSTdVSFJSaTVBWU5YUzUxZWo2d2VNM3pid0tsemtuQU5BcXl2SFQ3ZVBBV01yQWRIb010MlJFQWREaDREMzNRRmZ2Z05GUWdRUGpSa09wYllFK2E5K0UyTUs2OWR6NTJQbllPT1F2RFViN2w3OUVxNTRKeUZ2eEtQTDJGTUdhV3cxU2NpOEtYOU1pYmZuL2tOemV0VmZ5UFE5ajF4T1BvT3lURU1UZCtUUXlwZzlHN2RaM2NQanRMV0FyTDhMQi9Zck4rMWVpeVgwTDBYbDhUM1I3ODNYc2ZuQXFTdDVMZ1pLcmhkbVNnQ0UvZll6Z3k2d1ZRa2puVWFORzNRSGd2ektWbEhmVFZJRlNTZ1dua3dvQVZTclZjRHFkNERpT0VKNm5uRUJodDl2ZHdidXV5aDlSUFFlZ2F2dEtiRHorRTNJaUF4QmxEVVBmRGQ4akpyNHZ1ajdRRWo4UEc0N1FXQzE0cW5FMURBUWFuQk9oR21uUWdRQUFJQUJKUkVGVVZMaWlDaW9tdUplV2l1V0k2cURYRzN4MW1YSW51SE9FNXdWQ0tWWFk3YmFKS3BYcWZ5N3JMNGR5Z3dVYWJSQ2l0SCtPY2EyNnVob3N5eUV4OGRxb2JYWjJEbEpUVzBtMTYvK29mUURnN0ZPalllbTZGQjJISllJVGdoRVVGWFRWKzdyQ0VrSVFGTlV3ME5GUlV3a2hJQlRha0VBUDljTldXUWtuVkFpT2o4SDFjT2RRMWdwemVUVlVNZkVJQ0xxS2VCNkJoYW00RXVyWUJHZ0NsVjVmV1dHcHJJVXFJaFlCSVo3SFlnMDFjQmdjQ0V4SWhFSjVrODNyWmM0SkFIaExIV3hteGl2YzQyWVJBZGJ5VWxCTkJJS2lRcTU2clpTVmxjMU5URXphQmNBQ1YybHhPNldVSllSdzdyTGl2SGRKY2ExV2k4REFRQVFGQlNFa0pBVGg0V0dJakl4Q2JHd3M0a0lEMGF4WkszVHVuWW5rcEV0QnVHeGRGWnhNTUFJamduNGJZN05ZTENndExVVlZsYnkybWdrV2k5V2REM29wYmNycGxISkJpU0M0Z25CTFMwdmlWU3JWM0V1UFN4VVNJc1BobDZzVGRVUWMxTmU0VDBCYzQ4R1dtcGg0bjlZSWJYekNkUjAzVVFjaTVGcHFiVEZxaERSUGJ1U3JRSVFrKy81T0hSWURkZGhOT3ErWE9TY0FVQVJGSVRqb1psMTVEQUlUa3E5NXJTUWtKRXo3OU5OUGN1Njc3MzRlQUE5UWliWGhVb0ZLTVplVUtoUUt3cklzZFdVa0tLQlNLV0d4cUtUT1lvR0JXaGhZTzhwS1N4RVZHWW1nSU5lRXFhT3VmUDB1YTJPNzFJVEYxVEpQQkRWWGFXOEhIQTRXSE9lUk1pVjZRZ21sbE1URnhUME9vS3Nmb3E1TkVtZjhIMUp1VGZGUGhIOWUvMUpDQ09sMHh4MTNUSERiMlRTVVF1NUlZRVJja0dVbGdPTTR3bkVzSEE0V2Ryc0ROcHNORm92Vm5TU3ZSMTFkTFNvcks2WFdmVmR0VzJ6c2k4cktTcS95M2lhWXpSYlliRllQcHNheW5GUmpTUkI0S2NIZGFyVU1aUmhtcnY5eVg3dUV0TzdtbndUL3ZQNGxKVEF3OE1IYzNQTkhVMU5iSHdiZ2RERzNTN1kyU0lueVVyb1ZXSmFEUXNGS1NmSTJtd3BtczlxZEpLOURVRkFRUWtOREVSRVJnZmo0K0t2a25ENkU0emd2RmRSVlc4MW1zOEptczd1OW9LeFUybHV1Z2xKS3liMzNUbE5vTkpySC9aZlpMMzc1NTBuTGxpMm5wS1NreUQya0tqZUpZdUFPL3hBRU1RVEVDYWZUU1RpT0E4dUtyTTBPbTgwS3M5a01nOEdJK3ZwNlZGVlZvN1MwRkZkYlA5SW5zTGxDTzZyY0txaEJxck5tczhtWkd1dlJBZHBkSlpOUVNwa1BQdmhnTm9CQi9rdDg3VkpkWFkzUzBqTC9SUGpsTHlzS2hhTC80Y08vakJhQmpWS3FFc0dOVXFxZ2xETHU2dGx5bFZUQ0ZZZkRCVzZYNnJZWjNDcHBGVXBLU240YnNCa01CbmZQZ2hyb2RIcVlUSzYyZVdMTFBIbU5OYWVUSS9JdVV3QklmWDFkcWtLaGVNeC9lZjNpbDMrdVJFUkVUTnV5WlhPU0Y3aEpzVzBBaUNBSU10YkdTYXpOVlpEUzdyYTNXV0F5R2FIVDZWRmJXNFB5OG5JWURJWnJCelo1aHlsWGVXOExyRlpQVURPYXpLZzFtS0EzV1dGak9ibkRnQkU0NjZ4WE51eE1YTEJ1TC9hV21TNGQyR25ITjdzUDRjbXZ0dUhmMjArZ3lrSDlWLzk2aTlPQzJ0UG5YY0drdjFNcVZyK0FnKzl2dSs1RDVDdC94WTdaeXozR2FEaTJIY2VXek1lKzJYTng1cnU5RUg3WEx3alFuOWlQOHgrK2d4TnZyb1RENjd1cXJTdHhjUFpqT1BMS2g3QmFaYi9rck1PKysyZkM1RStHdVY3UzlOWmJiNzNkRFd3ZVFic2lhL04wSkhneU54SGNyRlliekdZTGpFYVhTbHBkWFkyeXF3aFM5Z0MycXFvcVZGWld1aExjM1hGcUxoWFVKck9yMldHdzJNRVFWeUVQd2NrUnB5dG1qVmdORlFObmY3VDVZUzRxRVNOYi9qOTc1eDBmUlozLy8rZk1sdXhtMDNzMmdTUWtoQllnR0NEU0lRS0NvS0FDSXZZR25PVzhzNWV2RFU4NXozTHF6M1lxbGtOUkViRmdwQmNGUktRSENNMlFoUFJlTjl0bmZuL3NKdGtVVWhDVTAzazl6QU96bTVuNXpPZnptZmU4Nit0dDRLSDN2dUZBdldzTGY1VCtIVXR6Yk13ZE1Zamcyanh1WHZIenI5ekFDdHJBZEpRdDF6N2FWSGIwcTJSa1hSbVd5dHF6UHNUakx6MUw4TVV6OFN3aXl2bGlKWDdESnhFM1l4VFpqOTlNNW9iY1gzR0ZLakpmZUlYcXpEMWt2dnB4aTdtbzN2dzJQL3pqYTZMblhvZTJhQ09iN251MXVjSktIVXpNRUMwSDN0K2c3S096QkoxT2QwTm01dUhCSGxyYjZhS2tMYlMybHY2Mnhxb0VsMGxhWGw1QmNYRXhKU1VsWFJkc2hZV3VaaXpWMVZVdFRGQ3IxWUxOMWlqWUpQeTl0WUpXRkJBRkJORlZ4aThBWXVISjdOdVArTVZ5LzZqZWpFbStnTGtKQWl2MkZ3QldOaHd1NGRaSkl4a2FFOEg4UzBkZ1AzYVVnMlpsOGM4V2lyNWV3djZYbHVLb084bmh4WXZadi9oNXFpcWtSaWxGMXB2UHMvMk9POW43OGhJYVRGMTdwY2gxaFJ4YS9BamI3MzJFZ294OFQ2bEg5anN2c2YyT085bjkwcEtXbWsrSGd2Y0l4OWFhaUp2Y3A4WEhnNTk1ZzRSTEp4STFjUmFSS1NHWUNvdC94VXdFTS9LajVhVGVmdzJ0S3pDelAxeEs3TUtINlRGcUdJTVdQWUw5dS85UzVtSFZSTTIrbk9ML3ZvZEZlZU9lTmZUdTNmdEtXZ1lSTkI3bWFLUFcxbFJMNmhsSXNObXNXSzB0VGRMcTZpckt5c29vTEN6cW1tREx5M01WdUxlT2dycE1VRmRhaDBlVDQrYUFnU3VDSzFvczVybkh5NnVuSjBTRTRHeW81MVNkbGNTSUVJNlhWZ0ZPSEpLTVN1VytuS2hDSmRkenN0S3VyUHhaZ2svL1lZU05HWUtvQ1NJNExZMnd0TEhvOWE3NVB2SDBBbzd1cVNIK3RsdlI1RzlrdzkwdmRrbGJMbHJ4R2VvaDA0aWRFTWRQMTh5anZNSUJPTWk0ZXc2L1pEcEpXREFmSC9NZU52NzEzMTA2WDkzUFAyQlBISTdmYWJJcmk1Y3RJanUzRi8wdUgzWU9ac2hDOWRFOC9Qc25Vbi95R0RhdlJBSWl5cW5KYW5hWGlCRXBCSWw3S2M2eUtSdnFMRUd0VmwrY241ODNtcWJjdG1aZlcyTkRKemVkZUl0QWdrdTQyZDM1YlcyanBLV2xKZVRsNVhjczJHdzJHOFhGcmxyUTZ1cHF0d25hNEJFRlBVMTZoOU1weUxJczN2SFFZeXFOUnZNWHM4Mkd0MWJGcDJ2V2NzMktuOUZyMU5UYUhZQTNJK0tEV1BGakJtWDFEYXpkdW85Y1djQnNkU2dyZjViZzIzc1F4bUZKaUxvQUlsSlRNYWFtb3ZNR0tDTjc1UzZTSG4yY2lPUmtCaTU2Rk9lNjVWVFVkMzVPLzZsWDAzZktLS0ttMzBiOE1DYzVHektRUzNkeWJLT1RvWXZ1SWlneGtmaTc3MFhjc1lLcWhzN1BWM3Z5Sklib21IYS9hOWkvZ20ydjdTTnQrUkw4Zk04Rmxib0pteGxVbW1LMlRCeExabm91YWowNDZqek5CaDk4WW5UVVpSVXJHK29zSWpJeWNuWktTb3JPcmJXMUNTUTBtcVh0cFgrNHRMYkdLR21EMnlTdHByeThuT0xpSW15MjlsOUNhcGNKV3RpaUg2aXIvck94WktwWlcydE14SFU2bmE0MmRwSWtDSUlndlBMMFkvT0JWTDFXUzRQSnlkWFRMK0VTcDVxOU96ZmpwM0hWaE40Mll3cld0VHU1ZldrV0EvdjBaWHpRQ2J3VmRvOXpEMGMxRGRYK2VJZTUxU1R2VVBTKzFWZ3FnVTc2MUJvOGtpSDF4a2pLSzh0eGxOWml0UlN5NjlZYm05UjlyNlFrc0FLZFVQL0xPT0EwTk9rVk83WVJjUEZzQWtQUEZWZThBYTBlblBZSUp2NjBEMDFJRUQ4c0JyV3Z2dTJmU2s1bDM1eEZpS0k0Yk0yYTFaTkRROE8rQmV6dUh3ZHVXbkZjeWJ1Q3V5OXBrNXp4MU5xMFdsY2dRYWR6QlJLcXFocE4wa0ppMnluZlU1dk41aVk2SWxjdHFHZVQ0NWI1YWc2SFEzQUxOY0h1Y0FtMWpBUDcvVlFxMVh5QVBxR0IvSEswSE5Gck1LSEE4ZUp5RW51NE9oSnB2UU80NS9LTDNTNmFRaVpzOCtYK1VJVmw4dXp1SUFGQmNyYWtIRk1INEIxUVEwT3BEZUswWUNyRFhCZUFMcWdMT282SHI4dGNXSVIrc0JGMW1BRXZRenlqUHY0VVF6ZmZTMzZSY1pnM3RKK0hGRFR4V3BKc29lMGJrU1g1NEIySXp2ZlhGRmZxQ09qZmc1ck00K2d1R0FhbURLcEx3eGdRNzl2Q1hHMG9NQkVTRjludUdKeGFmd3lCdnNvK094UFBaM0R3N0VjZWVmajdaNTlkYkFQc3NpdzczQXdnVHJmVzFxSjFuOXN5bEp1anBEWjNsTFRSSksyaG9zSVZTQWdQRDBldmIvbUNFcHZvaUtvYTIrYzFlRFE4dGpiV2d1SndOUHJXSE5oc0RnQUJXUmIyMURodVhiYi9WSCtBMkw1OTZWZWJ3L1BiVDdCbC8xNCt6WktabGV3cUhpNDZsY3RIZTA2dzZlQXgvcjUwRTRNdUhFcWNJdGZPc2xJU2c2LzZCSm52ZlVIZXVnMDBtQUJDaWIxaUdJZWUrUWZGR2ZzNStNUmlWSlBuRU96VCtlbHExbjdNMFRYYktmajJIYkwyYU9nNXNUOUNXQ3A5eHRyNDhmN25LZDZmUWRIbU5leCs0WjB1cFpqNGpSaUprTGtIVXpzZWlNcE5Lem0rZW5lN3grMjVkZ3piWDE3VjVXa28rdllqam55K0FhZTluS3dQUGlSNyt5RUFlbDEzUFRsdlBFUHU5enM1OFBpemFLWmNTNmhIRWIxY2NZQnkweUFpK3JUVkdnL2NNWVh2bjEydTdMRXpoQ0FJZmUrNzc3NUp0SzFHOEV6OWFKRzA2M0EwK3ZXYlRWS0x4VlZMV2xkWDU4NXRLMjgza0tDYU8vY3FqOXkxS21wcmE5cHBlbXpGWm5PRllwME9SeE43eHlQdmZSYWs5dlo1M1NwcWc0WkhCNEhLaTdSK1VSdzRsa1ZHcFpNN0x4M0hNSGVmUTZmTndwYk1iUGFYMURJd2FUQVBqSW5uOStBTk5abE1PSjBTZm41KzNUcXV0TFNNNE9EZ2J2VUlQWk5qem5SOHJ0M2pqWEhTaFppT0hxUWh2d2pEd0F2UmV3c0VqNW1NcXV3d2VhdTNJTWFPWlBpamYwSGJoWDRUd2VNbVl6dXdscExNV2dZKy9VL0NZL3dBa2ZBcE0xQ1ZIaVF2ZlFPMWhiVUVqeHhMVUZ4azU1Ukgra2pzR1V1cDhSNURXSytXTEMrU3RRRjFXQ3hCY2ExcUFhVmlEdi96Yll4M1BFWlliTmVZWWFwKzJrUkRyWmF3NFFNUkdreUlmajBKN20xRUYzY0JJVkYyVHFXdlJZZ2V6ZkJIRnFEVk5JKzY2SlBYYU9nMW5jUXg3ZmM5OVJzd2pPRDRTRVZLbmFuT3JOTVpOUnJOK2syYk5sdHgxNDgyVW9rTGd0RFlXZDZ6azV3Z2lnS2lxSEwvaU80T1Z5cDNseXMxV3EwV25jNkxvS0NnRnZSZ3dqZmZmTzNSeTZCUnVOVzZtVHdhazNQTldDeU5YR3NPd2VsMGlySXNpemFiOVY2VlN2WHMvOUxrbnU5OGJHYzZ2djhWMkxJMnNQSHBINW44d2VOZGVySFpNcjVnMVNNL00rUGI1emluSGxsSEJWdXUrQXVEUHZ5VW9FQlJrVUxuQ05YVjFmOEtEQXhhaVl1enpTUUlRZ011RDYxTkVBU0hJQWlTU3FXU0dqbmJkRG92V2FmVDQrMnR4MkF3NE9Qamk1K2ZIMEZCZ1lTR2hoRVZaU1F1TG83Ky9mc1RIeC9mYklwNkJnemNaSkdOR2hwMnU4T3RFam9GZDNwSFUrblVuajI3ZlZVcTFjM0tVaW5vRHJUeEU1bmFSYUVHb0UyYXdlVmZMZWFjaDVuVXdZei9acmtpMU00eC9QMzlyN3ovL3Z0OEc4MVJkNFJVUmF0U0szZHVHdzZISzFKcXR6dXcyZXdlVVZKWGJsdGpJS0cwdEpTR2h1YlF2T2dxY3E5dlpYcTJ6RmxyajJ0dDRNQ0JOd0lLdVpXQ2N3dFJqYWhXaE0wZnlOY1cvK0NERDA1d0M3WjJmVzJ0T2R2YTVyWlpXd1FTWEVYeXJrQkMwN1pwV2VUZW1LL1dOaExxWnU0UUFPRzY2NjVWcVZTcUc1UmxVcUJBUVhjUkZCUTBvMWV2WHRwMnREYXhVV3Z6cUVob3lwMXREaVI0a2xJMkZzbTcwajhzRm90THNMbTBOVmVSZXp0Q3paT1NxRWxiZS9mZGQ2OERCaXBMZFBiaEl0VlRVZ29VL0tHMXRnSGJ0bTBkMHhXdHJYM05yVkc0TlJiSnQwei9BQkJicG5mWVd2alduRTZuTzIrdG1Sa1hFTlZxOVhYSzhweEx3ZWFuVElTQ1B6VEN3OE9udVFWYW85YW1waFVaWldNMVFxTU1hdWxyczUwMi9jUGhjS0J1ckFkdDFOWWE4OVdhS3d5YWZHdTRLYituQXFPcmEydXBzWXRFQmZyUXJndkVLWU9xZFFLQWs2S3FPZ3pldnZoNXFaVFZQUTJLMTN4S1ZiRVZNYVFYZmFhUDZkSXh0dndqbEJTSzlCamVwOHZYc1JjZklXdk56OGhBK01RckNJbytWNXFpaE9Sb1cwMHFxTlZucFN0V2l5dFY1Wkt6dDR4ZUYzV0RCcnd1bjJOZmJFUUNBbE12SnFKZjEraW5LN2F2UnRWN0hBRmgzbDIrVk1YV2RFcXp5aEYwNGNUUG5jTFpTdVdVR2lvbzNMSU5xMG5FZU9tbDZIVy8zWDQxbmRoTnJUV1V5S1NZTGg4aml1S0k0OGVQSmJzcHhCdUw0KzF1cmMzcE5rZWJORGFuMDRuRFpzRlVYNDlUcTRYUVNMeTh2RnJWa1RacWJTV0lybnJRNWdvREQyMnRUY0FBRUxScTI5VjMvZnNEcHIzMUxYLy82RXRHdjdTQ0hhV045WFpXbnZ2b0MwWSs5UjhTRmkzSHMwVFZZYXBnL2lzZnNlQ3p6Vno2NGxJK1BGS21TTERUUU9WbFFGTnpoRDJ2Zk43bFl4cjJmY3UrRDlaMnp5UVF0V2dNQm9vL2VaSEN6S3B6ZGorbjNubVlsU2xEV1ptU3pDZkdhRDRmTXBTVktVUForTVJIditxOCtSOHQ1c2lHSXkxZm5RVzcrUG1GLzNidlJLSWFqY0ZBNWRvUHlmN3hlSmNQeTM3ak1Zb09WWGZ2VWw1NnRHSTUrNTk2bmJOWGF1OWc5MDJYOE11bVE1aEx5NUhPSVR2SndZZHVvcml3NVFVcU55MGo4OHRkM1Q1WGJHenNSRTl6dEZXRVZHZ2RTSEE2blRobEdXdDFPZldWZFUwVkNXYXpwVWxyYzlXUmxpRTJVaEo1Q2pWM2hZRm4wQUJabG9YcTZxcUJna283ZThHc21XeC9ZQjRyNzc2T0IvcDdzV2pEd2NaSGtza2pMMlRWZ290by9lNWY5ZjJQMVBVY3pEY0xMMmZsTlVONSthdnRWQ2owTU8waWRNS2w5SnFjZW5ydHJLS0UybE9GT051WlAyZERIWFg1cGJTaDhaUnNtRTdsWURGWm1qNVNoOFVUUDNzV2dWRytwMzFnR3ZKUFVWOVN4YStoQmUxNTIzUE1PckNmV1FkVzRlY2R5S2kxKzVsMVlEOFRuN3EyZVhpU1M3TXo1ZWRncWJOMHJxRTRISmlPSGFEbVZEbVN3MEdiOXJpU2picWNmT3kyTG13eVF3UzlaczhpTlBFMHJlVWNOa3o1cHpCVnRNL2NhaTB0eEZ6VDBNNWExRkNiazk5aW5RS0hweEUvNHlKT0YraVZMQ1pxYzNLd05saTZPTHNTa2lPZnNuMGlTWXNlcFA5ZmJzRGdvVUE2VFJYVW5jcHZkNi9JQUE0TGRUazVYWm9ueWVHZ2V1Y1dURFUyMTV5M3UvZUsyeks5dUs5aGJXaFpjcUxSYUM3YnVIRkREdytOcmNrY2JmSzF1VnNPdUlRYWd1anREUm9WRG1kakxha0h0VkZkRGFVNTJSUms1NkgyVE85b0xwdHk0blJLU0ZLenhnYUlCb1BoS2hCSjh1amczalBJSDB0SkkvMlFtaUc5b3FBbXA4MFU3c2dxWk1KRll3RUlqdWxGUDhkV2RwWTV1U1JjTVVtN1k5THR2R29NWmVaSXZIMGxxck1iU0gzL0U2TDZ1SnJ1Mmc2dlpzMnN6V2lvd3F3Znh1UlBua2V2QmZPeExXeWUveUFxWXlMVzdPTkUzUDR2aGw4L3JzTXJ5WFc1YkprOUQ0dHZMN1J5Slphb1NVeDdwYmsvaiszWUpyWXVXazd5RzI4UjdQOHI3K3JJbDN5eTRITVNldFZSVmlSaHIzSXdldjFhTEovZXcvSFNrVnowMkN6QXdwYVIvWWo5T0pzWXpRN1cvZTFGTENjT1lqYzhSZlYzQVJoR3ptSE1QWFBjNW1nV1c2NmJpNjJ1bnVwU1B5YXZYMEhBR1ZyWjloUHJXSFhOMC9qMjdvVlVmaElwYmpvWHZmRWdXcmRneW43MVhuTFZLaXpabVVUZS9SS3AxNDhISkU2OTh3aTdsL3lFZjN3UXRmbDJSbjY0alBEWWpnZFJ2Zmw5TmovNEx2NzlFN0FVWkJIejRGSUdUSXpyOEppODkvN0I0VzkyVWx0VHhFL3o1cUpXQnpEcy9YY0o5b1dDOXg3aHB6ZTJFUkFYU0hXdWpaR2ZmVXBrbkd1eENwZmN6NEdkRW1MMkxwd2FiNnoreWN6ODVKK25kUTJVci9zUHU5OWVRMTIybVlwN3J1YUVRVVhQK1UvUmYvSUFBTXo3dm1iOXRjdVJLbjVCNm5NTlU5KytGeFZRdldNNVA5ejlQUG8rZlRFZCs0WEVmN3piZEF6QThPR3BZNEZUYnEzTkJySU5CQld5N0pSbFdaUkFscHhPV1JCRTFHcVg1aVpMTW9Ma2JKSCswVkJ5Z3IwcnZpUXkya2lKMUlDNnRXK3QwVkhuMHRhYVRkQnZ2LzFXSjRyaVZTMVgzY1I3TzdPWU0rbXlUcmFIbGJJNkJ5UDhSRjc0YkEzSm8wY1I3Z05sdFdZSTkxSGtWZGNOR1lhOHV3YXRyK3NCS2ZyZ0VmYS9zNUtvRjI1eHpYSzFscWxydjhTZ3M3SDdxbEZrZnIyZmxObUo3UDdyMzRoKzdETUdUZXlEVkhlTTc4YmVTc1hsV3dudTREbXIzNTVPVmZBVXJ2ajRNZGZidUJVOWpMT3VsSXI5aDdDZEpYdEtQckdId0JjMmt6cmNDQTRMVHFEd2RDWjA5QWltckZqQjhTZm1VaFgzZDFKdmJLbmRTcVVtQnE3OW1tQi9rZDFYRFNmMyt5d0Nwc2VmbVZzZ2FnU1gvcmdWalJyQXdyWXBROG5kUFovZXcxMHZFKzNnUzVuNDFEd2NoVnY1YXNKakpNN2FnaUY3TlR2L2M0eUxOMi9DejFlay9JdG4rT241OTVuK2VzZXRRTEtYdmt2Y294K1FQS00zSU9Ic2doYlY0K2JINlhIektWWWxYTTNJRlNzSWFzeGtyc3ZnNTMrdVovUzJyWVNINmNoLy9XNTJQZmMrbDczVi9IS3Eybm1VU3phdEl5QlloOU5pNmREZkdUSjVBVk1tTDJEcmhEaWlYdjJjWHIxYnBreWJIVVl1LytZNTFKWWMwZ2ZOcEt6aVhpSjhDOWw1K3o5SVdycVJYa21oMlBPMzhQWE1wNGlidUJ3M1ZTQStQb1pwOCtiTlc3RnMyVEtyeXh4Rkl5RGJaUkFGd2ZXZjRDS3p4ZWwweWs2blU1QWxXUmFjVG5jdHFic0JqQ0dBNk5temlJd01wMmZQQ05TTlVWQ1hHZXIwU1BGbzZWK2JPSEhpYktDNXo3eGs1L1V2VnVOSVNHVkIvK0N1ZW5VdzZEUm9SRUdSVVdlSW11MHJ5Znc0SFZORkhZN3FFcVMremU4YVE4cG9ERG9BTFNHamgzSDh3Q0dZQXFXSHpLaTJmczdlSFNBaklUdnlxY3F1SjNqUTZWOHErcVFVeEl6YjJISzNsZkRVRkhwT200YkJvekpNUDNRdWN3N1BQWHMzRm5NaHZZYTdUVUcxN2xmVkVhdmlrd2oyZHoxNGh1aEk2cXFyei9oY2dtamh4UE9MeWQ5NUFMdFZ3cHhUUzBCbERlQVNiT0VqUnJtR2JCeEdjUEJKS3JNc21IZHZBMi9JZXZsWlZ3djB5aFBVSFBUQzZYWWVuUTVoSTBieTR6TjM0RGh5Q2NHcFkrazU0WUl6SHJmbFdBYm1xR0dFaGJtaUNCRmp4MUM3TkwzRkdBSW16aVRBWGN1dDB2MjZhRU5neWhCWGRZZ3VBa05JRFpaYWNKYnZvcnpHaTZBdi8wUFZsNEJrUnF6TXBLWUs5TTBpSS9yNTUvK1Z1bXpac3MyTjVxanNNa2NkSUR0bEdjbmxiNU5rU1hLMjB0ZzhvcVJhTThVL2JhR2lwcDRDalJmcVJoUFU2V3lkNHRHY2tBdUlhclZxbHNmN21rOVhyV2FyR01mN1UvdlRlVjY0RjZHK2FzcHFuZnhseGtWQUEvK3BoMUEvdlNLcE9yWThXN29xVHE1ank2UExHZmZGZndtTERhYnE2eGZaOHJXdEl3WFBkUkpORUJIVHB1TGpYcWdlVTZmakcrL2Q0YlhVMGFsY3VtMDlSVnUzVXZqTlV0TGZXY3ZNelcraFBVZTNLdW9OcDlsSFV0Ty9jaGQ1U1FWUEIxWTNpaGJhZTkxbXYvb1ErYVVwakYyMkNKMjNtdDNYRFVPVzVOT2Z3WDA5cjVqQlJFMmQ2djU4S2oxdkRtZ3hsUGF1RlhYYjgxeVN0cCtpclQ5eDdMSHJLYnp1VlVZdFNEdG4yMHZyYy9hZVAwRThUZEdiZnpSUlU2YzJsY1QxbURhN2pWc2dMQ3dzRGRqV3l0Zm1tYkFydTFJL1hKUkdzb3dnT0oyeVMyYTUzR2hWbVlkQk5qSmdTaHJSUFl5SXpjbTR6dmJTTzVCbFdhaXFxa3dTQk9IaVJuOVordnIxZkZZWHdqdFhwalNwbEoxdG1aR0pSallmeXdhZ0xQY2t4OVNScElZcS9yWFR6bGh3Q09yeVhFd2Vjc3RlVklRYzJaZmcyR0RBUWQ2NmxvMUhUSHUyVVc4QnNGRytiUmVoQXdlQmIxL0MrcGhwcUFzZ2JHZ0tZVU5UQ0lpTFFXTm9Yamh0U0FoMUJTMGJxRGpxNnNBL25PanBzeGoyMHBPbzg0N2k2ZnUxWlcxbCsxMFBVMWwzN3ViQUt5Q0FCamY5czdQNEFKVkZMY21SMUhvRGxzcnlzL2VnaHdSaE90V1NicnFob0lDQUljUFFlYXR4Vmh5aWFHZExQcm1TSFZ0ZDgxVzRpNHFxM2dUSDZRZ1pQaHByMWlIMC9ZWTB6Ym1mTWFoWm1CbUMwRHFLTVZXMWxOUzJ1am9NOGNrazNMaVE1UG1YVVgzMHhCbmZpNjdQSUhRRnV5Z3RkUVVoaW4vWWlsL3k0Ri9OcUtQMjFXTXI3MW9FWFJVM2pCQnlzUnBpbStjaExncE5xN2VqV3ExTzI3QmhmWTkyQkp1cTBXSnNsRWVTSkNFTDRMRFpXblMyc3BnYUVQejljVGl0MUpkbm8yNFVhbTJyREpxQ0JvS1BqOC9semNaMENZczNaVkdyOHlMdFdWZW9YUnZhaSswTEp3RHc1TnNma0Y1c284N21ZTWFpSlNRTkhzYUhNd1l4ZmN3b3ZudG5GWmU5ZVpLYXFscitldmswZ3BVU3dOTUx0ckFSREo0Wnd1b0xSNkEycG5EeHQ2K2hIellWSTIremV1WmN0R0lkdXFDUWxvSWdTT0tIV1planBncUw3MFFtenhnRXdOQlhYK2I3K2RlUzkxWUNhbnM1OVNZams5WXZhU0xRN1hYTFBXeTYrVDYrZkY5SDNOOWZKUG5Lb2RUditJaU4vL2NKZ1gzak1HZG5Fbkw3US9oN3ZKU2Q1U2ZKL3V3clloNWJUTkE1U244TG1YZ0Zxbi9PSVgzbVQ2ajlJdEdGdE5SempKZGZ6OUZiSCtLYjFhL2dOLzU2eGo5NjdhKzZYdlRjQlp5WU41K1ZJOThrNHBxSEdIbkhOR0t1dVpYMUN4WlF0M0VnbGhyUUo3UmtYYkVmV00yYTJXdXdaR2NTKzlqL0k4QWJHRENWMUp1MnMzN0NPUHo3eFdJK2xZM2ZwUTh5OXA1TDNVOXlUd2JmZHhGYjAwYWc4b3RoVFBvS2duM2d5RU56eUQycHh6ZFVTOVh4VWxMZS90dVozNHp2SUZJZnVwanQweWZqSHg5TWRiYU5rWjhzK3RWcmtuRFRRcmJmUFpOZi9BM0UzUDBTQTZjbmRmQ21NSkw2MmtOc3ZXa0tKK0w3SWxlVllnbEtaZnBIaTlvSTJHSERocVVDdVo3Q1RaWmx1K0NLa0VxeUlMak5VUW1WbHc3SlZFOVZ0Z2xiWURqYVdDOTA0VVpxTTM4aXEvd2tKWUlPWWZEZ3dlNytCbVlzRm90Z3RWcXgyKzJDdytFUTNDRlhsZFBwMkFQMFB4dTJWVWxWUFhxREFUL3Q3Nk90bmUrMFJaM0RnU2svSDFWZ0JEcERXNytJczZHT2hsb0xQaEdocmN3ZGlZYkNmR1N2UUF6QlhaTkVrcTBCVTNFNW1zQXdkTDY2MzJXOVpKdUordEk2dktNaitMMzBlMmRESFEybE5YajNqRWJWenN2WVdsYU1wUE5ENzl2U3ZKY3NKa3lsRlhpRlJhRFZkVzBQMkdyS3NOWlk4VFpHb3pvTGxDWk9VdzBORlNhOG80M3RqdjIzY2FuWU1PVVhJL3FIb1BkdlA1bFpsdVdqb3FpNkE2Z0g2bkJSR3BrQmk0QmdGMFRCS1FpQ3BGYXJaWTFHSTN0NWVhSFQ2V1M5WG8rM3Q3ZUwwc2hiajQ5V1QxalBIaTZOcmRrRWJkYlljQ2ZJbVV6MWFXZEhxTGtjSHVHQlNyblFyelFHTUVUSG5sNzk5L2JGMTl1MzNibjNOdmJzM21wcHZmSHQyZk4zdlZ0QmE4QTMydkM3amtIbDdZdHZCNmthWHFIdFZ5cUlPZ08rUGJzM2RxMS9LRnIvc3poMmd6KytCdi9mZDh1S1dneWQ3Q05CRVBvZVBKalJkK0RBUWZ2Ym1LUElUbVFrUVJBRVNYSnBiWTJCQk04NlVvY2tJMm5WMkd3V3hNYkdMTTI1YTgzK05VRHc4dks2VEJFbUNoUW9PTmVJajQ4ZjBjb1ViYzM0UVhPWmxZU243UElza0xkYWJZZ2V2alhCN1ZzVFBCeDJvaUFJMDVVcFY2QkF3Ym1HWHE5UG83bjZvTjBXZmE0ZnFaSDVRMmloc1RWMXRySTFhbXlTUitEQXBha0JndG5jTUJXSVVxWmNnUUlGdndHTVI0OGVHVWpMOHFwR3hvL0cxRE5Ca2p5TDQ1czF0MmIyanliQjFvWnp6ZVhlMEdxbktuUDkyNkswdEpUOC9BSmxJaFQ4S1JFVEV6UE1VMk56bTZPcVZ1Wm9DNjQyTjRWNEM2MU5kQWNNbWxTN3hnUGRacWdpMkJRb1VQQ2JRYWZUalcrbHJiVm5qcmFRV2EwRENYYTdIZEhUREczVTFBQ2hvY0Uwb1gwejFNbk9qTU1zV3JtQmU1ZHY0djE5dVI3MEt6SlplWGw4dW0wdnIyNDhTSzNIVVE1ckE5c1BIZWV0alR0Wm5sbWlyT0J2aUVQM1hjR0pIY1hud1Vna2ZyNTZQQVduL2poemF5dk5wYnF3NGd5UHJtUGJaWmRTMnFYRGJWUmxITUorRmhoeGFqY3RZY01UUzgvcVBNZ05GWlFleVczeitjL1hqQ1V2cDN2bWFFYkdnVDRlV2xzTGphM3hweVZYbTlRbVFpcTJNa1B4TUVNbnRyODM2L2hxYnlGOVltUEV6UktVQUFBZ0FFbEVRVlM0dEg4VW03ZHM0UEVmR2tkdTVyMzFlemhTWE1KYlAyUzJFR3lsZVRtOHN6ZWIvYitjNUl0amltRDdMV0V0SzhCdXRwMEhJeEdKbnJjUXY4QS9rT3RnMVN2c1diTCtqQVc5cFNBUFIxZTZUVlBPanF0dnBOcDhGbDR2cGtvYXlzNHUvNTZVK3dNYi92cGltODh0ZVRuWTdkMDdWNjlldlpJOU5iYlRtS040bXFQTldwdExzS21ibzZHTlRCNHVNMVFVeGZZRm14akE0aHNuTmYwYTJGREdYL2Jud3RoWXdKdG5icDRKTlRsOGMzQm5TekdjMEo4UEV2cXplc05hUHFoVGhNMjVRUFhPZEk0dlg0OGREUUVqcDlIL3l2Rk5TYnEyNHFQc2UreDF6RlpmRXY5Mk55RkdYOEJDM3JJUEtkcDdGTHRkVGZDa1dmU1pub29BVlArY1RtV2xub1k5RzZpcEZJbTc2WGFNU2U0aWRVY2QyZSsvUStIK2szakZENkgvd3B2dzl1NDQrOU4wNkFkT3JOb09vaGJ2MGEwRWI4NStNcGQ4Z3FuYWlpRitDSDBYM3RBNUEreHB4bEN6ZHcxRkJmNzB2WFFFQUpXYlYxSWxKUkovVVJKbDZ6NmlRVzJrY25NNkZtY3dDZlB2SURUVzMvMndsM0w4blhlb3lDckJrRFNPL3JkY2lWYmRxSTJVY2VLOTl5ZzdVb0JYejBRU2JyNlZBUDlxTWw5K240bzlHZFRWbGJGL2NUWkNaREtEYjNSNWJ4d1ZXUng5OTBPcVQ5VVNNUFl5K2wyVjVrNHd0cEgzMFZ1YzJubVNnTFRKZEVVQnEveCtCYWQrM0kvWlZNT0pGeFpUb0JXSm5MT1E4SGgvMS9tV3ZVdmVqcU9valFra3pwL2ZWTmplc1FKWXpiR1huNlU4dTRySVdUZlRhMHkvSnMwdy8vUDN5UHZoRUtxSVJCSVhkbjYrM0E5ZW92TGdBZVRpWFBZdFhveWdDcVQzM3hZMmtTYVlUK3hrOTVKUHNYdEZNK0NldS9Gemw3Qlk4ak00OXM3SDFGVTdDSjE2TllsVGhpSUEzdDdlSTREUFdwdWlqZVlvc2lRNUpVbkE2VVFscW1WSkl3bE91MDAyMWRSZ2t5UXNYdDZJalZMUG5aU0xMQ05VVmxiMHA0dk5XbzZVbHBOb0RGR2t5dThNdVdRbkcrWS9UK2pNYStsejNSVUk1cG9XUklBbmwzOUY2Q1d6Q2RCbHMvWEIxNXBNb1pwQ08xR3pyNlAzdkdrVXZYSTdCOWNjQTZCbVZ6bzcvdlk0bXBScHhFN293WTZycjZXaVJnSWNaTnc5aDE4eW5TUXNtSStQZVE4Yi8vcnZUaDlRVFhnc1lXbWpLZm44VlZxU2JUU3c4NmJyY2ZhNW1IN3piOFEvUU1MYTZSdis5R1B3Nnp1SXdsZnY0OFR1UW14Wlcvbmg0ZjhRTUNqUnBmT3MvNHdkRDd4STRPUzVHQk1kYkxuMlRzd09seFd5ODVvWmxKbU1KTjUySXh6OWpCK2VXOTVrb2Z3MDd6SUtDbjFKdUcwKzRiMjhxTTJ0QkxVdndlUFM4RThNUXh2ZGw3QzBOTUtISnJwdktaOHRNK2ZRRUpCQ245dXVvdjdiWjluOXdYWUFTajU5bGwyZkhpTHVwaHNSOXEya3JMRHp5bjVkM0VEQzBsSlJhNzBJSEpOR1dOcDRmSUpjbklpRlN4NWoxNmNaeE41ME13R2FrNnlmZDErWG1IbnIxbjFLUStTRnhNOGN5YUU3cnlMM21JdEVNK3U1djdCL1ZUYXhOODBuTkt5VXpkYzkxT241L0llT0lXUllFdmhHRUo2V1J0aTRDOTAwVHk2dE5HZEZPc1paMTZBdDNjSlB6eTl6T2JSSzk3TnU1aTJJZ3liUlo5NWxGTDU4QjRjM1pRR3VaaStyVjM4WDJaNmZEVmtXWkFSQkVBUVFhSEtqT2UxV25LalJCSWVpRGRDaGJsM3dqcXMyZEh4WEhxWlQyWWQ1ODdDVGQrN3NwMGlXMzl0NzFWQ0p3NkZIYjR3bUpENkNrT1NXMzhkZGR5ZlJJL29qUjExTnh1VWZZQU8waERMZ3J6ZFJzWDgvNW1vYi9vUGlLTjkxRUthNCtpWUVYSHdOZmFhTUFrWVJ0K0k5Y2pjZEkyaFVKY2MyT3BtNDZ5NThOQkIwOTcxa3BWNUxWY085QkhkQS9hOE43WWt4MU1ndmJUUTdLNVpxSzRGaFlRUU1TQ0o0WUhMblFyeDBad2RqTURMeXRhZFpjOHR0NUJocTZmdmlSd1NITnBjelJjNWJTT3lZWVRCbU1Ma2ZEaUIvYnhVeDZ2WGtsdmRuNXIxWG93TDg3NzJEcjJlOGp1WFJPWWdacThrcFR1REtyMjUzTVpza045ZEdocWVtWWo4VVFaazJIbU5xTXlkYzFmcmwxQmluTWY2R2k1R0JRWGZkeUtwRlh6SDh4bEhrcmxoSjc3OStqZkdDT0l6OTcrZkVoMWQyZXIvZVBmdmczZE1YalVaSFNHb3FvWVptb1pHOTRpdjZQdlE5eGdzaUlQa0pjcFplUU1HSmw0anIzWEVKbCthQ1MwbStLZzBCNkRmek0zTFRmeUFtZmpCSGx1d2llZE9QaElhb2tmdmZUKzdTRVJSbE9ZaUpQMzE5VjBEU01IeFYrUWlHdkJiejBJamVDLytPY1dnZ2dmWlpySHJPVlY5ZThQbjdhTWJmU3Y5cG81R0FnUXV1WU1meWRKTFNYSngxS1NrcC9ZRThUM05VRUlTbVpGMEVRVUFVWlVIRXBaaHB2TkQ1YW5BNnJOZ0ZMNWRnYSt6dTN2aWpVcW5HZGpiWkZVVTVMUGo4QUl0dW1FbWlRYWxtLzcyaGlwdkV5SHN5T0hEbkhING90R0s4NXUrTWVHQnVVMzJsVjZDcjVGM1FhUkVjRGlUQVdaSEoraGszNFQxeUtnRVIvalFVMXlQNU5GTlNlMGVFTnYyL1BqU002c29TSEtYbFdDMkY3THIxeGlZYUhxK2tKTEFDM21jeThrQ0d2Zm9NKzE5OW1DLytua2ZBaU1zWThjcVQrSGF3cHh5bFJSMk9RZGRuUERHSml6aGVNSmp4bzFvMkdOR0hOZEovYS9FMit0TlFYazJEc3hpcE1vTnROOXpZUEtvQjhVaUF0YkFZVFV4OHQraWE2b3Z6Y1J6ZHc1WWJtdnNuQlBjZTdqcGZhUjFCWVdGdVZTd0NROEN2S1FnMVl5azFvMnUwbU1SQURHRmdxNndET3VaSTFJVkZOYmtwZE1Zd0dySXFvYVlJczluTW9YdHY1V2pUbStBQ1ZOamM4dVhNL0tycVFKZFRWYVZSSVZ1dHJwRVhGV0Q2OFFpYmI5amNyUGtOYVM1eUNnZ0lTQVkyZUdocnJoOEJBVmtXSktkVGtKMlNJSW9xSkVtU0hlWmFvYWJVS2h0OGZCRjB0cllhMjczMzNxc1NCS0ZEM3VpNmlnSnUrV2diZDg2ZHdiZ0liMFdxbkJkUTAvT1dCK2w1eTRQWVNqTllOMjQyUmRmT0pkcllnZTltNHdvY1EyNWc3TDl1QitENEU3dndERmcyRkRjMzNER1hsZUoxWVRqcU1BMWVobmhHZmZ3cEJ2WFpHWG5nbUZsTUdETUwyVkxGam5tVE9mN2RIRkptbjU0MVFoMFcyZUVZeXI5NWtkenFJY1QzK29XZlg5L0FxRHVhM2NYbTRrSWdCYkRSVUZoRFpFZ0EzdW9JVkpHcFRQanN0VGFGOWpaakJQYmNuZGdrbXVqQVBTRUlBbktyN2lrK0VkRjRwWVF5OGIySDJ3cVVjSC9NcGFWQUhGaUtNVlU3dWl3Z0JGRnExZHRCank1TWo2V3dISHBIZ0ZTRnFSU01YYUJic1pRV0lMczFHVXRoS2Q0UlFlQWZqdDdnejVDM2xoRWVlQWJLU2plNnlPZ2pqZmhmTkpPSlQ3ZlB5S0xSYUVZTUhqeEljK0JBUnF0RVhVRjA2V3VDZ0N6aHROdVJOR3JzWmdzYW4yQjBZZjdvdkhXb1c1bWhQUG5rRTZPQjAxZk4ydXU0YzBrNnV1ZytWQlprczdRQVZQb0E1aVc3aWx5M0h6akV5WXB5ckU0elgyN1BJQ0U4a3FrSm9VZ04xU3c3Y0lyRHA2b3B0VWtzM1FHcEEvcVI2S2RSWk5KWmdDMXJPMGMyRlJDWk9nQkgvazZzMmhoOEFqb3hjYUo2MExBbm5ZS2ZSMFB4TG81OXV3Lzk5RXVhZ3hGclArYm9ta0g0T2c2UnZjL0ErRmY2SVBoTDlCbHI0OGY3bjJmZ0RSY2pWeFZTc0NlUElmZmQxaUg3UnRYKzdaaHFySmhOVGlwM2JrRjl5b3VRMUJIb2RLVWMvTmNLZ3NhTlJFc2w5YVYyZ21QQ094eTNFSlo2MmpFNHM3YXo3UjlyR2ZYTk40VDRsckYreWh4T3BQYW45MUNYaEMvNjVDMXlVaU1Rc2xkVFlyK1FZUmNFb2hXbjB0UDNSYlkvczRRK2w2YmlLRHhHU2JiRUJYK1pqWGJRVkdJai9zMzIvM3VEL25QSFlzdmRneHc1aVo3dTgvbkg5NlhxZzY4NE9UUUliV2dNMGNQN0VUaHBEajR2WE03UGIvWW1ia3dpNXF4RFZKdkNHRFJ2SWpGenJtVGJxNHNKQ2JtZHFxL2VvTDZyY28wUUFtSWNuSGh6S2Ria1NBSlNSdU1ickNOdTFreCtldkZKQW53WFVyL3BBMm9pcGhIVnUzUDkwcjQzblgyZlhZd3hvb1lqM3h4bHlLZmpRZTFMdjVzR3N2dXVoMG4rNnpXbzdlVVViZHBQd21QMzBCbUJ2eW82SG4zQk14ejZmQlgrZ1VHRWp4L1ZGSHhwRDFHemIrVEFKWDhobzM4SXhnRkc2bzd1eE9xVFROOUxoalVwY08rOTkzNnZsSlNVUXpRM1UxWUpJQ0lJSXJMc1JFWkFGR1JabHBGRkFidTVGbHVEQnJtNkZKVmFyUmJjaWJrQ0lENzExSk5YaTZKNGVoK2JaS2ZLcGlMY29NRmlkMkN4TzdDS1dvWkhCd0Z3TFBjVWVWWTFRMk5Ed2VGQXJmY2xLY3dYMlZyUEQ5bGwrUGdIMGkvSUc0dmRRVlI0QkJINjM1YU14bVF5NFhSSzNXNUtYRnBhUm5Cd01DcVY2cHdlYzZialEzQlN0V3M3UlpzMlUxc3FNSERSMDRRYW03ZWpiNzhVRElIdTZKWW1nTEJoL2RIMUhFeGdVQTA1WDY3QmpKR2syMlpqNkpGQVlGdzROYnZTY2NSY2hMNXNENlhIVFF4OCtwK0U5L0FGUk1LbnpFQlZlcEM4OUEzVUZ0WVNQSElzUVhHUkhYTG1sNjFiU2RYeGZIeVRVaEZyQ3pFWGxPQnpRU282THpCbkhhQm8weWJLRHVjUWZjdWpKSTVONkZSN09kMFl5cmR2Sm5UMlh6RDJqVURRQmhBNW9pOFZod3NKR1JoUHhmcFAwSTJkaStQZ0pxcktmRWg1N2duOEEzUWdlQkYxMlV4c1I3ZVR2KzRIVEZWMndzYU93ejhxQkFRdm9pK2JnVDE3Si9scmY4RHFDTUE0WVFRNmI5ZFRxNDBkVEVpVVFQWGg0MWpNV3NJSDl3YU5IejFuVEtMdTU4MFViTnlLMWFvbFl1eDRmTU44TVF3WWdhK1lUKzQzbTlHTm1VMU1TaStDaGc3RnExTlpKQkkrTVExYjFpSHE4L0xSeFNWakNOTGhlOEU0Zk9RQ1RxMWFqODBRei9Cbkg4YmczYmtxYlJpZWhsZkJ6K1QvbkVYQy9jOFNrK3dTMUVHakw4RkhLQ0l2L1R1cXNvcnh1MkEwWWYxaU9pY2k5Z29uYW13L2FqSU9ZUzZzeG45NENvM01aQUhKSTlDN0RUdkJONXl3UVFtSWhraGlMeGxCeFpZMUZHNzdDWWNZVE9UWTBYZ0hORnVBZXIwKzY3bm5uanVCcTkrb0hYQUk0QUNjZ0NRSW9peXFSRmtRQk5SZU9sU1NFNm5CZ3RvUWlLRFQ2VVJQN2pXSHcvNk5JQWlUL3FpYXpmbk94M2FtNHp2YnlIMzlkckpOa3hqL3dPVi9tTFUvY3YrbG1GS2VaT2pjRkVYRi94K0F3K0hZb3RGb242V1pvNjFlRUFRVFlCVUV3U1lJelJ4dFdxMkxvODNMeThYUkpyb1RjcEZsV1pnOWU1WktFSVFSeXBRcThBcUx3eWNpNkE5MVQ3cVlSTHhERkovdy80elhXSzBlR2hNVDB4dzRhTmxNV1d4MG43bVNkUnQvWEtscmFzODBqM2ZmZlhjWW9QVERVMERFN1B1SitJUGRVOXlkTHlvTCs3OEZuMlhMUHU0NWF0VG9ZelQzUUJEZGFSK05wVldDTE11eUxEZm40MHFTMUt5eEFlaDB1cUhLWENwUW9PQjhRZS9ldlh1NWhacG4ya2VqWUtPbHh1YnExU0pKVXN2Q1VwVktwVGdmemlMQ3drSzdGVGdBTUJnTStQbjVLcE9uUUFIZzcrL2ZwNVVaS25yOENLMDBOeVRKUldtazlxQXBFZ1JCdUVDWnlyTXAyTUs2Zll6QllGQW1Ub0VDTnpRYVRSSnRmV3lOeGZCTlRCK2VSZkdlR2hzblRod1BBeEs3ZXNIcTJscHlLK3B4bkM0bno5bTJxYXpWYkNhM3JCcXpRMVpXVElFQ0JaMUNFSVNFRjE1NDNxZWxZSk5ibTZOQ2N6NnVSL0FBRUl4R1k1ZUszcEhxdWV1VkZleTFhd24zY2xKbzEvUHY2NmN4SWt3UFdIbnVvMi81T3F1Y1VpbUFMVTlkUmJUN3NQZFhydVNOekRwNkJIaVJWMlZod1JXWGNPdUFNR1hsRkNoUTBDRW1UWnBrQkNwb0lweEVGQVFFRDgwTmFQYTF5YktFdXRGRzFXaTBYUk5zb29ZRnMyYVMxTU9WMXI3eXUxVXMybkNRMWZPR0F5b21qN3lRV3llYW1mam1uaGFIalVnZHhUVXp3OUdLa0g5MEQ1TlhiT1B5QVZkMFV0R21RSUdDUHp1aW9xSjZBcGx1UWRhaWN4VnRvcU11NFNhNkpaMmdVb2tEdW5ZWnJ5YWhCdEF6eUI5TEU4K01taUc5b2dqV3Q4MTg3aHNWM2xSckZ4YmtoK2l3WTVXVVJWT2dRRUhIOFBIeGlmTVFhcTFiOGpYbHNyazdXQ0ZKa3RDVTVDWUl3b0J1WDlGdTRyMmRXY3hKN2R1TmcyUSsyWHFRWWNPVE1DcWtJQW9VS09nRUdvMG1vWlZRYStGamE1Mm9LOHR5VXdtWUFIU1BWRTJ5OC9vWHEzRWtwTEtnZjljTnloMC9iK1hqY2o5ZW1EUkFXVEVGQ2hSMENsRVUrM2hvYVc2aEpudWFvOUFpZ09BU2JFSnBhVWtpNE5YMVN6bjVkTlZxdG9weHZESzFQMTFWdkE1bTdPS3huMnA1NTdvMGdoVlNEd1VLRkhRTlhpdFhmaEhpSWR4RVdhWUZoNlJuQUVHV1hla2UrUGo0SkhUOUdqTHA2OWZ6V1YwSTcxeVpncjZMVXUzRThRUDhmVk1CYjl3MGhSaHZ4UVpWb0VCQjE5RzNiOTlRVHArazZ5SFVYT2FvR2hEVWFuVjhsNjlnTG1IeHBpeHFkVjZrUGV1aStkV0c5bUw3d2drQVBQbjJCNlFYMjZpek9aaXhhQWxKZzRmeDRZeEIvR2YxRGdvclJhNTUrVVAzaWZTOGQ5ODhCdXFWUlZPZ1FFSEhDQWtKRFc5cmpyYlUyanpNVVZrUUJFSHZjTmhmRmtWeC9wOWhnbjVMMmlJRkNoU2NIWmpONW1YZTNvYWx1T2lMNm9BNk40V1JCYkFMZ3VBUVJWRlNxOVd5UnFPUlJRQkJFR0tWcVZPZ1FNSDVDbzFHRStuV3lzVFRtS0tlYVIrdUx3UkJpRkdtVG9FQ0JlY3JWQ3BWOUdtRW11QWgzQUFaa0p1K1ZBU2JBZ1VLemxzSWd0Q2psY1lteUhLTGxBOTM5UUhJTW9nblRod1BCM1RLMUNsUW9PQThodTdmLzM3SnAzT056V1dPaXNIQndaSEtuQ2xRb09COHg4Q0JBLzA4QkZtYmRJOUdvU2JMTXFLWGwxZjRtVnprVEdpTHpPWUdjc3VxTWRuL1BMUkZzdVJBa3BTaVdBVUtmaTBpSWlMOFRxT3R0ZjVCclZLcHVpZll6cEMyNktPdlZ2TG1VUlBodmxvS0swM2NPR01xQ3dmOXdaWEZ3azBzVDc0ZVZZOElaSnNGcjdnVWhyLzRFaEc5T3k5Qk0rMyttZ1BiSFl5OCswcGxSeXRRQVBqNys3ZlcyRTVuaWdxaUtJcWgzVHE3bTdabyt3UHpXSG4zZFR6UTM0dEZHdzY2djNUUkZxMWFjQkd0eWEydm5EcWQ3UTlkeDhvN3JpTDkycUc4K3MxUFZQd1pWc01ya1VsN2RqUDc0SDc2RG5Hdy9mLytYNHV2SFRWbDFPWVhJN1hROGlUc3hkbVVIdndGeWRFOWpVOEdjRmlveThuQmJwUGM1M045WjZzcW83NjBwczB4OXBveWFrL2w0N0FwbXFXQzh4ZmUzdDUrcHhGcVRkVGdqYVZWYWxFVXUwbUo1a1ZTaitheTBwNUIvbGhLV3RJV1VaUFQ1aWk5UjBkWUNWQ3J4QTRiN1A3eG9DWnNlQXFXelVkeEFpb3NISHY2TGc1dnlNTS9WRU50YlJBVFBsdENRR0FkTytmZlJzV0pIQnJLSk5iTjNRVUJTVXg0OTBtOEtDUzk3K1VNMzdPVFVBTlVmcm1ZYmVzTlhQYkdYMTBLNHBMN09iQlRRc3plaFZQampkVS9tWm1mL0pPOU42VlNJUXhCTmxYVGNEU0RpTCsveFlpYnh3S1EvY0pDOW4yVFMyQnNFTFcvbEhQaHFyV0VOKzBJQy92L3ZnRDFSWGVSTkYzcDg2UGc5NFZXcSszVXgrYlcyRkFMZ25EbXpTTWJhWXNtWGRhbFAvOXB6eTVlM1pYTnlRb3IvNWgzS1VGL2h0V1E2aWpldElscVN3MG5YL3VDdUd1ZVFnVlViM2lQakIwYUx0dTRCaTgxNUx3OG4zMXZyV0xDdzVkejRic3JxUG51VlRaL1pXWEsyL2QzNjNKVk80OXl5YVoxQkFUcmNGb3NUYXV1NlRlVkNRL093TEo3R1YvZXU0emhONDlGUlNsSGwvekloVnN5TUlZRERodk9GbVc4RWpXSDl1RTFzRnA1cWhUOC9xcUJXdTFIeDc0MW9WbU5nTUF6ZTJDN1QxczBzRzgvbmpMR3NHM3ZIbDdkdUorTGJoM1BINzUxaVZSTDhhcHZFWXFQVWFNZnl1UWJKZ0pRdG4wN0drUXlGLzhEQ2JEblZsQmxQUVQ4dXM3ckFSTm5FaERzeXQ1UjZacXplTUtHREFaQUZ4Mk5XRjJOSFZBUlJNU0lJSGJmZGdNOUo0MGxJdTFpSWdaRWV5ci9qRnVmb1R4UkNzNExxRlNxZGt4UkdSQ0UxZzRaRWZEci9pWE9qTGJJWVBDaGQyUVlOMDBkalYvK01YNnMrQk5FUjlWUkpQLzdKY1orc29wZWtjZlk5VnA2MCtRYmtsS0ptanFWSGxPbjBtdmhJNHg5L0phdVNNcm01V3NuSkszMWFaOVZRRkM3VjBsc2FSNFBlWGNkby83dkZyVDJBclpmT1prVGU4dVVKMGpCZVFsUkZIMW80MXRyV1ZMbC9neFJFSVJ1Q3JZem9TMlNLS294TmYxV1dWcE1ua05Mb083UDVHVVQ2WGYvQTVRc2VaN0tHb25RVVNPcHpUeUJmM0lLWVVOVENCczZHRU5Rcy82cTlqVmdMNitrcGVqeXhjdW5sb2JDQnBmV3QyL1ByeHlURFp0SkluajRXUHJmOHpnSlk4T296U3BwOGYzaEorN20yQVpGYTFQdyswTVFCSjlPVE5BbVhqWTFkTk1hUENQYW9yNjhzdlF6dHB0MWhPcEZjaXRNekpsK0VVUC9aQzAwTmJGcDlCMy9MQWYvazg2NEIyNGxhY2ZkcEkrYlRFQ3ZjT3B6ZnlIcWpwZEl1V3FFUzd0Tm1Vb2tOL0xOdUlsb0lsSzQ2TFBuME9GTDcrc25zWFBXeFJ4TENFZHJFTUhuMTR5b2xDMFhYNDdUbUlpV1NtcnI0MG1iM04vamV6dkYzMzZPTm13S2ZTWU9VcDRzQmIrM1lEUFFzdWk5VGFvSHpSSk9LZ0NNdjhYQVRBMG1LaXdPZ24xOU1XaCtIN0xKODQyMnlHbXFvYUdxRG4yWUViVzJhM05pTFN0RTBnV2c5L1UrQ3lPUU1CY1g0MENEVDBUb255eFNyZUIvREVXQ0lDNEVUTGlvaTJxQmVrRVF6SUJWRUFTN0lBaE9sVW9scVlIZmpPclI0RzNBNEsyc2ppZFVCbjk4RGY3ZE9zWXI5R3kraDBUMEVVWmxJUlQ4TDBEWGdSbnFBVmZ3UUdGT1ZLQkF3ZjhDV3N1cWRnME1XVVlSYkFvVUtQaWZFbXh0QWdidENiaEcvbkFGQ2hRb09OK2g2a0JqYXlIZ0dzc1NGSndESERwMEdKdk5wa3lFQWdWbkIySkhXbHA3ZjZoQWdRSUYvd3NRT3ZrZFFCQ0JibEk2T05tWmNaaEZLemR3Ny9KTnZMOHZsMmFkUkNZckw0OVB0KzNsMVkwSHFXM3ZjSWVKOXpmK3hKYjhHbVdKT29LdG1NeC9QVWZlL3R6ZjVmSy92SFF2NlpkTVl2bm9HMmc0aDljeFo2U1RQdjFTVmc0Znd0SHY4My9YS2EvUE9vU3BSdEd3ejJOMFdWYUpnTE43cDY3anE3MkY5SW1ONGRMK1VXemVzb0hIZjhocDNLYTh0MzRQUjRwTGVPdUh6SFlGMitvdDIzamp4d3kyRk5RcXk5VFJRN2JqYXc1OXNKVDkvL255ZDdsK3dqMHZNdTJUNXhHcktqbVhoVy82UWRPWTl1MHFlaVY1NDdEK3ZyUkpKNTVaUVBiT1ltWHpuYjl3bmtaYmE2TzFxUUVib09tNmxSdkE0aHNuTmYwYTJGREdYL2Jud3RoWXdKdG5icDRKTlRsOGMzQm5tME5yaTdOWld1akQ3RGp2YzZvRi9CR1F0M29OdmU1OWlQeVhQNmJXOWpmOHVoQzdydDZaenZIbDY3R2pJV0RrTlBwZk9iNXB4VTFIdG5OczJUZVlheVg4TDd5WWZsZFBSSVdGdkdVZlVyVDNLSGE3bXVCSnMrZ3pQYlhUSk4ySzdhdklYZjBqRFZVbWZBZU5vZTlOczJsa3BhcmJ1NDdTbWlDOFNuNGlkK3RSZk1aY3dlQzVhV2Y4Z2k3NWJpblphM2VCWHhUeHR5d2tOTmJGMlNBM2xITHM3WGNvUDFHRWx6R0dYamNzSkRqYXhRSm9PcnlWSXgrdXhHb1Y4UmswbHY2M3pPaHdnMXV6ZG5GaytRWktqcFlqcm5nVHh4NC8vRVplU3E5eFNVM25PN2IwSzh4V0xWRnpieVEydFE4QWhWKzhnMndjUk9sM0t6RmJmVW44MjkyRUdGMWpzT2JzSjNQSko1aXFyUmppaDlCMzRRM29kUjNmRTVnNDhmcFNncWRjU002U3BWZ2N2dlQ1Mi8wRUd3M0tBK0cyWTdxanNmMHEzZnRJYVRtSnhwQXU3RkViejMzN013dW5Ec05MU1cvdlpLNnF5RitYVGVUVU9VUW1scERmQlMxQ0x0bkpodm5QRXpyeld2cGNkd1dDdWFaSjA3SWNXY09hZVErZ0czb3hmVzZhZzFEVzZENm9vNmJRVHRUczYrZzlieHBGcjl6T3dUWEhPcjFXWFZZdWdXblQ2YmZnZXFUTXovamhtWSthdjl1M25yMzMvWTFUMlY3RXpKcUoybEYzeGhwZjlZYlgrT0haZEtMbTNreGtuSk10Vjk1RXJmdU5lUHpaMjhrdkRLVHY3UXVKSE5JRFM2VzdGdG1Xei9mejdzSTdiUTU5YjVtTEhoT09UcTZqRG9vaUxDME43eEFEUG9NdUpDd3REZis0OE9hNXUvNVJmTkpta25ERk9JN2VlejNaQjZzQUtQcm1YWFkrOXlHaGw4d21RSmZOMWdkZmM1K3hnWjAzWFkreno4WDBtMzhqL2dFU1Zudm45d1Ftc2w1N2tSLy83elg4UjE1TTlLZ0VMT1YxeXZOd2VzRW10L3EzaGNabTVneXBpMDVsSCtiTncwN2V1Yk5mcDMvNzg4NGRWUGRJWm15b2xuM0tBblVJYThaR0tueFNDVGRxa2RMR2NHVHRPdnFQdWI1aldkaFFpY09oUjIrTUppUStncERrNXU5eWxyNU42SFdQMG4rR1MzTUtTUjdtL2lhVUFYKzlpWXI5K3pGWDIvQWZGRWY1cm9Nd3BVK0gxNHE5L25acWoreW5wcUFjLzZUK0hGdXhHN2kyK1cyWmtNYUloMjlEQUtKL3hUemtMbDlCM08wdjBXUEVCVEJpRUlVckI1SDNVejREMHFLeFZsYWlpUXJCTDc0dklRT1NQTForTlZhVENsMVlCSUdENGdnZU5LelQ2NmdDalJoVGpaU0U2TkVrRHNHWTJyTjU3dDcvRDJFM1BFU3ZzY09RZ2I2emg1R2R2b200Z1M3SzlyanI3aVI2Ukgva3FLdkp1UHdEYklBV0s1WnFLNEZoWVFRTVNDSjRZSEtYN3NuMWlKcnBjKzl6eEE4TlZoNkV0ckIwUjJNN0k2dXdvaWlIQlo4ZllORU5VMGswZEJKY3RWWHdqNDNaREEzWHNQN3dTVTdXMk1rckxPWlFoVWxacW5aUXVHNHRHcjJGbzYrL1FVVmVQV1ZyMTJMdDdPR01tOFRJZThaejRNNDVMQitjeXJaL2ZkcmtrREFYRk9BYkY5ZldZVkdSeWRxME5ESlhyS2ZxMEdFYWl1dVJISjN0SFJPN3I3K1lINS85TDVYN0QxT1hYWVJrczdWNFpmb21KcDZWbWxOTFpTWGVJV0ZONzJCOVdDQ1cwbklBK2p6d0FsNTVYL1B0aUtGOGZjbTFGSjV3RTgzN0pESHlwZHM0K2VRQ3ZoaVF6S1lIWHNicU9QTXhtRW9LS2Z2eVRiYmNjQ1BmMzNBanYveFlqazl3czJub0ZlaGlJUkIwV2dTSHcrM2REbVRZcTg5US9zN0RmREV3bVhXM1BrNmRTZXIwbmx3TEdZSnZ2Q0xVMnJWS1pObmNqbmJXbmtFZ3EzRVZsSFlMZFJVRjNQTFJOdTZjTzROeEVWMG8vcFJWakIwWVMyN3VLWEtCN0hvNzl0SlNUbFRFa2hTcytBOWF2NVR5MTI4bGZNSzlxQXhhVkgxSEVwRCtUd29PbXVnMXNLTzVVdFB6bGdmcGVjdUQyRW96V0RkdU5rWFh6aVhhQ1BvZVVaUmtad010TmV2S2pTdHdETG1Cc2YrNjNXWGVQYkdMVXkya3BSclI0V2l4YytUOEhadzRITUdWZTE1R0M5UnVlSTNET3pKZGRIK05iOHN6U0NJUzFDcWtSbnZORFYxUUVBM2xwVUJQd0lHNXRBcS9NSmZid3l2MkFpNTg2MlBBUWRiaUJleC9hd1hHRnhjQUVIN1pRc0l2VzRpekpwOHQweWFRcy9jRytnenZvbEhTcXIrRUlkeEk1T2g3R0hIYm1HN2RUK0NZV1V3WU13dlpVc1dPZVpNNS90MGNVbVluZFhoUGRESi90b3BpYkE0dmZNSUQvNnlDemVRaHpEcjBjS2hsV2E0VmhHNjhYKzExM0xra0hWMTBIeW9Mc2xsYUFDcDlBUE9TWGVyNzlnT0hPRmxSanRWcDVzdnRHU1NFUnpJMUlaVDdab3h2T3NVckgrZFRsVENJeXhOREZUbldXb3ZLLzVIQzNKNU12ZSsycG9DQmZQQXI4amQrVDYrQmw1eGVLYzdhenBGTkJVU21Ec0NSdnhPck5nYWZBTGZwZU0xOERzOTdpc3g0SFdGeHZwUituMEhjWGJmZ0hkV0RoajNwRlB3OEdvcDNjZXpiZmVpbmUxekRweGVoc1VWa3ZQQWhFWDBpTVU2ZGpDNHdDbS96UWJMVzdTRFlZT0x3cXg4RFEzNzFmWWVtam1EWGYxL0JJRTNDZjlDRmhNU0YwblBPTERZOCtTL0M0eDVDeWxwTmZsRWlGMS9vTXRteVAzZ1ZvZWN3ZkVNMVZKekl3eWY1S3JjcGNZZ0R5L1lRUGlZRm9TYUxCcE12dmwxMHZ2djFUdURZOG5meEZjZmlIVGVJME40UnhONndnTU0zUE1iUnlDY0o2ZWxIOWQ0ZkVIdlBvTmVvdUE3T1ZNckJmNjBnYU54SXRGUlNYMm9uT01ibHMrdm9uanJETDA5ZVQyYnBTR1o5OXVTZlZiRFZkNkN0dFJCMnFpZWVlT0pLUVJBU3UrN1l0bE5sVXhGdTBHQ3hPN0RZSFZoRkxjT2pYUjBNanVXZUlzK3FabWhzS0RnY3FQVytKSVg1dGpsTmRIZzRzWDYvZmJjT3Npd0FBQ0FBU1VSQlZBTjZrOG1FMHluaDU5YzlmczNTMGpLQ2c0TlJxVlRuOUJoclFTSHF2c1Bva1J6ZjlKbDNsQkdIWFVOby85Z09WQjRuVmJ1MlU3UnBNN1dsQWdNWFBVMm8wV1VtcVVNVGlCazNnSksxNlJUL2ZBaDk3MVRDQjhiaTFYTXdnVUUxNUh5NUJqTkdrbTZiamFGSEFvRnhqUjBaTlJndnZnanpzUXdzSlNZQ2hxYWc5UTdGbUJwTHdjb3ZxY3F0cDk5ZHQrTWRIa1Y0Y3JQNTZSVVo3M0dPcnNFM2VRdytZaVcxV2Jtb0l4UHhqd3hBMzJzWW9VWWJwNzVLeDFRZnhKQi9MaUlvMUVWRzQ2ak1wV2pUWmtwKzNJY2hkUzdKdDE2Q1NnUkVnZHFNSFJSdDJVVGxMMVVrUHZnMDBmM0N1cVpsRFJ1UDJseE0zUzg1NEJkRllHd1k2ckFFWXNiMHBuaE5Pc1UvSFVEd2pjVTRiamc2Z3l2TzZ0c3ZCVU9nZXg5ckFnZ2I1bUtVTm1jZG9HalRKc29PNXhCOXk2TWtqazBBNlBDZVhOQVNOR3dvV25YN1l6VDBIa3pvZ05nLzUwdmY2VHo2OU5QLytCbFhFTUhhK0s4Z0NIYkFLUWlDSkFpQ0xBaUNMRGlkam85RVViem16ekk1dnlVZjI3bmljRk9nNEUvcHBMRllWdXIxM3YrbExSOWJBeTM0MkVSSmxHVzVVcGt5QlFvVW5POXdPQnkxSGlhbmZIcGZtNEFveTNLRk1tVUtGQ2c0MzJHMVdodkxsVm9MdERZQ1RuUTZuZVhLbENsUW9PQjhSME5EUXgwdGszSlBHeDBWN1haN2lUSmw1d1poWWFIZENod29VS0RnOUtpdXJqNmRLZG9rN0JvelBFU0x4VktxVE5tNUVteGhpbUJUb09Bc29haW9xSzYxUUJPRU5tVlZzaUNBV0ZSVVhIUkcwck8ybHR5S2VoeW5JMlJ3dHRJUUpSbUhVMnI2a2FRL3o0TEk3bngwdVIzV2xkTVZ1elY5TGlrYldvRUNnSXlNZy9YdVIwTnFGbTVDTzQrUGdIcnc0TUdsa3VTMDRPb0Ewem1rZXU1NlpRVjc3VnJDdlp3VTJ2WDgrL3BwakFqVEExYWUrK2hidnM0cXAxUUtZTXRUVnpYVkNuNjFialdQN0NqQXo1MmdNL3JDVWJ4d1VlSWZmelZxOXZERnBIOHo0K2NuU0I5d0Q1TU9yMnBxNUpxLzVCNU8xa3lnbi9FQUI0NGtNUEdwdVUySGJadVFST3lIaHlpOEo1blFwM2ZUcTU5YTJka0svc3l3M0gvLy9RMGRtS0l0L0cyTlQ4c3BvR3RTUnRTd1lOWk1rbnE0MHRwWGZyZUtSUnNPc25yZWNFREY1SkVYY3V0RU14UGZiTnVsZk9xRUNidzRQa0ZaSWdVS0ZIVFA2cEhsdkZZQ1RQTFEzRnJxYTRLQTZEcEc3Z1pOcTFlVFVBUG9HZVNQcGFuR1Q4MlFYbEVFNjl2WExxcXJxOWh5Sklmc0dzdWZhRWtFVkY1ZWdJaEtyMjlSSEM2cXZCQzFJb0pLaGRncTFWelU2MEVFMFV2djRqbFdvT0JQREtmVFdkQktxTFh5dFFteUlBZzBCZy9VZ0N4SlVzNFpPYm50SnQ3Ym1jV2NTWmQxK3FjYUx4MzJrbkpXN1M5aDYvSjFUSjh5aGNjOTZHSCtzUEMvZ011M0xnSGcwdDNMVzN4bHZIRXhybGJGMDJoTnhUanF1MTBBOVBoNGg3S3JGZnpwWWJQWml0clIyTnBOK1JBRVFWWURzdFBwek82MllKUHN2UDdGYWh3SnFTem8zem5OeXJRSmFVeHovMzlaN21FbXZMZWQ2eS9vU2F4R1dUUUZDaFIwalByNitxSjJUTkRUK3RsRXR6UTgyVTNGa0U5WHJXYXJHTWNyVS90M3U5VlZhSFFrVVk1NlRpbjg0QW9VS09nQ1NrdEx5K2lDajYzUkhCVUJ1YXFxS3F2cmw1QkpYNytleitwQ2VPZktGUFJpMTQ2cHJEYzMvWloxN0NRRittRDYrQ2dMcGtDQmdzNlJtWmxaNFNITXBFNU1VUVJCRUx3QnJTUTVpd0d2VHE5Z0xtYjBvaStvMVhuaEpib2NkZHJRWG14Zk9BR0FKOS8rZ1BSaUcxVm1CLzU2TDVJR0QrUERHUU80NzVYMzJPUHd3Vjhqa1ZjcmNlL3NxY3pyRS9LYlQ5QnZ5ZTZoUUlHQ3N3S3JJSWpYNG1walVJK0wyYU5PRUlSNjkyYzJRUkFjb2lnNlZTcFIxbWcwc2lBSWd0NHQyTFlBeWVkdWJCSmwxZldZblFMaEFiNTQvVTRKK1lwZ1U2RGdmd3VTSkdXb1ZPcEZ1Tm9ZZUFvMms0ZGdjN29FbTByV2FEUnlZNDZCTEVsU3BpaUs1MUN3aVlRRytDbXJwRUNCZ203QlpyTmwwZGEzMXRySEpudVlvWWlDSU1pQTdIQTRNcFVwVktCQXdmbUd1cnE2M0hZRVdwT1ByWFVPVzFQd0FKRE5adk5oWlFvVktGQnd2dUhVcVZNRnJRU2FrOU9rZkRRS3VjYVlwbno4K0FsRnNDbFFvT0M4dzlxMTYwcmNnc3ZwSWRUYXBIczBtYUdpNEtvOEFPVFUxTlJ5U1hLZUFIci9wcU4rNTlLMm4xMXdOYVRNVTFaVWdZSS9PV1JaL3VYUlJ4ODF0elpEM1hSRm5wcWFoM0FUbTRyZ1pVQ1NKR212S0lxOS84Z1Q1VldUaTZvd0U2cTcxNVRXNzlRcFJNY0pVQ3NzR3dvVS9GYXcyZXlIMnpWRFpTUUVXUUpCUnBaQmxtUkJsaEdjSURqa3B1QUJnR3kzMi9kMWZpa25Pek1PczJqbEJ1NWR2b24zOStWaWE1YXZaT1hsOGVtMnZieTY4U0MxclczbC9CeWUrWElqOTYzWXpFZVpoWCs2UlNyZnQ1bXhUMzdSNHJPVDI3NWwrcjlXdC92M1A2NVp3ZWpaZDVFODYxSDIxbmg4NGFobDBaUC9ZTkFWZDNQSjRxOS8yNXR3RkhQdFRROHk5SXFGWFB2R0QxMCs3SVVuSCtHL2U2dTZkYWxsLzNtTjBkZituZWdaejNBMjJWQy9XN242LzdOMzduRlIxZm4vZjU0ekY0WmhHRVlZWUVSRVJGSkRSRU15SkRVemM4M016Rnh6eTh5MXNqSXoxM1ZiYTExei9mVTF0MjI3bUd0bWRqTXoxOHpNVE0xWU5EUFh5c3pJQzVrUklSSWlJZ3pETU16bGZINS96SVVad0d2cVZzNzc4VGdQWmM3bDh6bm44em12ODc2K1BwelI3SE0zc0t1b2xCTXRLTC9talpmSkdUV1pubVAvU2NWNWUvQXU5dTByeHRhTW4yLzVpMDh6NS8xdnoraEtCYXRmcCsrNDZhUmQrd2QyMjg1aEZ4VWJVNmJQNDREOTNKRUlIcmZhRHJaaWhnYjcyUENUVFVwSXlGSlQ4QUIvWk5ScXRlNDZkZWZyV0xPcm5DNnBIYmdob3gyYnQrUXphMnVKYjJjREwzLzRCZnNyanJCbzY3NFFZRHRXZG9EZnZicU51TGJKREwwMEdkbmx2dWlBemUyb3AvUm9iY2h2c1IweXVPdnFMcTBjWGNmc2Y3N0h6UGxQc252Vi81RWQwN1NuL0xPUGVMazhnWjJybjJYOXd6ZGUySnRRVzFqMnl0K1pOeXFMR3J2cjlFSDlhQ1ZXdStlTW1ycjFuc2xzV3pnSmRhMlZjL0dxNUc5NGo0SUR4eml3NXh1cTdjZVovL0phcWs1bkd0cExHWDcvaTdTNk9JaTltQmt2RnJKczZiUHNYdlpITE9mdHdkY3ljZEpjaXBvUjQxaXJxNm11ZDUzUmxRYU92SjF0Uy85Q2txdnV4RVN4WnlHRm05YXlyMDBXbmZYbmpvNm1xUGpRRDgyMHRXQWZtNUQ4NE9ZRE9GK3FoMUFIMjZtalI5K3lhL1BtQWh0dzRtSW4yY1RqNDY4Ti9ObkdmcFQ3ZHY4QS9WTUJQZjgzWVFUVWxyRDI2MDlEVGx1eGJSZlhEUnJJdmJsSkZ4V1lPWTRmNXNtWDExSmNyMlZvdWk3a0M3enN0YmNvc2lwWUxzME9PV2ZudHYrdzVzdHZLYXgyczNybFcyeFRSVEx4enB0SmliU3orTVYzMkxYM2F4eFZHdVk4dDR6WWpwbE1HOWJ6WjNHdmJsc1ZpMWZtcy92N0NoU2RrZEUzM2NEZ2pQZ21jQ3Y5aG9mbXZJbE5uOENVMzQrZ2E1eTMwTVYrL0RBTDN0aklubklibWJsOW1UcThGNmRLZzFZYWpyTm8yWHZzK1A0WXNZbUpqQnM5Z3V5MitwTy8wQU91WXRuS3RiejhTU0ZibERVOE5QNG16S2Z3TEd6NVlCMzVYeGRqclQvTUU4OHRRNC9NcldQSGtORkdKdi85dFd6Wjh5MWxqZ2FXdlBRbWVsMGMwKzYrRHRNSnI5YkkwdGMzVWVPcTVxQTlnYUdkbkt6OC9CalQ3NytkakRnTnV6Ly9oQlVGZXlpdmJTRHQwaDVNSFhNMUpnM3MvdTltVnUwOFNJbTlua1dMbG1IUlNBeTk0VWJ5VWcwK0JiNktKeGNzWnM5UkdELzJ0d3k0cE0xUEdFUTd5OTlZdzZadmptRHBlQWxUYnh1S3hRZFVaVVc3ZVdMRlJ5aHRraG1lRlk4anRoUERlN1FMV0hLTC9sM0FyVk9mRHJIdVZpeC9CMk5xZTlaLzhDbTZ4STVNLy8zMVdIeDFtRFVsKzFtMjMwbU85a2VXRkJTUjBPa3laazY0Q2owdTFxOWV4Nm92ZnJDOXNXSHJrV1phbWdkUWhOY2M5Vk9EQzBsQ0tJcUNyY0dEcmRHRjdITzZDVUQ1NktPUEZDSEVqak41RHZzcnEraWNkS3JTS0JkN1MydUpFY2U1Yy9GYjNQcnlCajc0b2VaaThCQXdmZHBzRHVxN01HbFlOc3ZleVEvYXB5STdweWRkdFVkWmxCK2FRcGpjSVowaHVkMHdTUkhrNVdZekpLODdSZzJBaHQ2OUx5T3ZjeUlHY3lKRHJzeW0vNlZ0VDlvRDY2RUR6Rm40SnJPYmJadUt6djNpWk03cUNxcTFDWXkvWlRoais3Vm42b04vWVh0Vms1YTI1SjB0REJvMmhOeW9IeG55aHhleEF6UWNaZFNFUjZtTTZjeVVXNitoWk5QclRQLzMxNmRzYThuOHAxaC9KSnBwZDl6STBPNEpWQjF2T09VNXhRZjJzK09IT3BMajQwblFPZGoweWQ0V3BsMXpTZXQ4S1VONlg0Sk9ZNlQvbGRrTXViSW5DVHJ2aTVuZTlWS0c1S1NqMHhrWWVHVTJneS92Y2dvYTZrYVd2dkltY3FmZWxIKzhuTVY3dGVSR1ZmREV1MThCY0xDa2dwd3I4NWcyZGdnY0tHRE1zNXNBU0VycHhKQXJNNGpWYU9qZE81c2hWMTVHU3BzbTZGKzk3aitrOWVyTHNJNkMwWDk1aVovQ0xmSHFNLzlnZm1FOUUyOGRSdXlQWHpENHJ5dTg2bEZ0TVVNbnpTY2w5eXBHOXpJeWJmWjhWbjhaWk5EYmZtRFRnU2o2ZG9zT0FiWlZiNzdCak5jL1ovU282NGl0M01uSXVVMnVrNW9maXBqOTVIUE0vMjhOSTYrL2lsU2RDd2RRc0h3SlU5NzlqdHQrZTkwWFRwZGJhY1VFOVp1aGlpS0VrUERxYlkxdUJZMUdUWXhlRzRpS0JzRE43WGJ2MEdnMGcwN25JWlIrdjVmbjkzcDRjZktscC9vTVlITzVXYi92Q00rUEdZYXQvQnNtdkxhUmpnK040ZGRNRHE1VTdHWEY5M0hzZVdrZ0ZobG0zdDZmVVIvNEg3ZE1ScmNNNU1PNzRmdlE4eXp0TzJCcHI4T2dpU0NuVndhWkFhMUNRODhlR2FqTGQyTW9qNlJ2ZHNhcExVZU5sZ1J6U3gzQ29EbjNOVzM2bEV5bUQ2L2hzMisrd3laTVpDUTQrR3hmTlhuOXZWcmJtTnQreStEc1M2RG5IYno4MW4xc09UeUoxRDBGN0V2c3c2clJWeUFEYys0Y1NzYlRXNWwvUy9lVHRsVjkzSXErYlF4cHFSM28yU1h0dFBvbkd5ek1lK1ErWHA3N0RFTm0zQWRGM3lPZndtcEs2ZGlKbERnM1dtMDB1ZGtaSWFabWFxZExTSTJwUnhjUlRWNTJ4a2swdGVEdldSeUQrbDJLODBNelNxL0xHT0NwWjlVWDNvL01xTi9lUlBHM0J5bjZzWmJNcnFuTVgxY0VEQ2FoWFFvSjdmUVlOVnF5c3pQSWFhYVlEaHgySFNQN1pNRGwwY3hlT0k4U0oyU2NWZVZmRFV2WDcyZm1xNCtRbDZJaHI5TTRsdlNmeTI3N3JjZ2ZmNEl6YXhEVGgzaXRnd2xYZjBoaDhFZnR4ekxLWXhKSWFVVUR2dmZPMituZlBZYitLV05ZK0p0RkZEOTZFMm0rNCt5R05CYlBIT00xRWZNQUZKYS8vekZUSmovSFpSMjFlMW94UXoyQVI1Szg0Q1lFSUNIOGE3cW8xU29pSXlKUSszSS9oUGNnSWVycTZqNkxqWTA5NVNNNDltTUo5N3oxRlhQdUdFSG5xRlBaMUdyMGFoalcrekpTalpGZ3pLSlAxSFkrSzdmL3FvSE5XVk9MclUwY1p0L2pzY1RHQXhkMlVUQTVRb2ZGM05JME1lcFBIZDFkdHVCSlpxN2REOGc4OGR4OFJuZUpQUG1IYmxjK2cyYSt5NUJCdVNSRXFhbXllM0M0bS93L3lXYmZ2SktOV0dKY1ZOWTBJbGRXWWozNERTTWZQQlE0cm5mSFMxSGdwSFJZOTk1L1A0OHNXRUgyc05mUkpYWmsvditieXNDT0p5L1pTK3ZVQVlBaE4xOVBFbURzMnZIQ1R3cFpqVm9HV2FWQzFraG9aUlgyUmdFME1IUEtJMndScVF6cVpvSGpWVGhjcHhlQk54dDk5NjFXb1ZhNVVjUloreEtvckRWZ01mdElFaU5OSkVUWktEOE82dG9hTE9ZbVd2K0UySmpRanppZ3lGSXJGOVdRbE9BN05pYVdCTWxLcFIzU2ZGMU83cGpjek8vVlNFVlZJME1zSmc2VWZGdmNHcWdGKzllRWQwT1NaYlFvMURjNHNOa2RoUGpZQUdYU3BQdDNyRmp4WmkwUWM2TDdyenQybUR1WGJXUHltQnU1eXFJL2pTZW1vV09pQVpmYkhYZ01MbytFUnY1MUwwMm5qVFZoUEg2TUtnVXNNbFJVSGIzd1ByN3FvNnovNlBNV3p2Y2hwbFF5MjBhZjlOeXhrNmN6ZHZJSjdrMmp4dUVLRFFhc2VtY0RJeWRPWmQ2SVRvQ0w0aTN2aE93dnE2b0N6S0JZcWFqVmtSUWJRWEpDQWdsWmJkajQxTmdUYURncVpMZW5SVVRTMUw0ekMvOCtDL0N3YlA0L21QbmFGcmJQSG41YXo2UnJ0elBNYUpJbFpNVnp4Z0VNbTdXV0tyc2cxWElhdXR5UGUxbjRUUnlsSHp5SUFTaloralpQZkZFU2RJQUUwcG12N3VhMDJ5Zy8za2h5dXppYWtjK2pWU2s0Z29kUWJTQWh4a1pGbFF0U05HQ3ZvYkxlUUZJYjBKbmpLZDNXRlBNdHF6Z0tRZDhSWFdJOENjY3JLVmNnVFE1MVE1VWZxWUVVRTlSV1V5bU1tSU1nUTI0QmhoRll6QkdVVjlUVVB2cjRNMlVuQUxXUWtpclpWM0VRcWRQU1Jxc1JHaFZlalMxSXhNcVZLOTNMbDcveHNTekx3MXAzbDlVeCthWDMwU1Yzb2Zydzk3eCtHRlNSSm03dDZhWDUvdVNyUFJRZnE2TFIwOEE3bnhTU250aVc2OUxqdWJIWHBVd28rQzg5alRuVUh6N0k1NHFGdjdhTCtGVURtNXlRd2EzcHg1anh3bVltWDJIaXNUYytob1MrWHNDcFBjcTJmWWNwUGZBajlxTnE4dis3RzFOQ01qbWR6aTJWazZsVGR4Yi9yZnM1djdlczd0MG9ldWtkRm1mcFNVMXV6K0FlSFVocGw4Q0tyVnZZMlZWaTM4Y2ZzUDRISlVRalgvbkcyd3hPR1UzbHArOVQycUVmZmR2SzZFMERTVnYwQ05OZWE4ZXRWNlJRV1ZMTUhuc2JIaHFaNHowcHFoMEQyaDlqenZNYkdOekp6TUNCbHhPcmhsWC9YZ1h0dXRMWnJHYm45NVdrWjE1ei9nWlNuMGhYZFJrTFZueEVYdHNvY2k3UDRYUys1eHZmWE15WWRSNXM3ODA0OVJKd01mRWtPYjVqMlVkN3lORTdlT0tsRHduTmxUZVIwZDdEb3FVYnFleG1KaU1yaTdRMnA3WTNDemU5emVWemQvSHRaODhTdW94U0RQMTdSUEhVb3JjcDcyVWhMNjhQeVFZVDQ0WmV5bVBQTGlYMnp2NXNXL1VtdXY1WDAxTVBjcjkrSkQ4OWsrbXZwWkFUV2NXcm54NGhOM2h3amVrTTdsakw5cUlHMGpKQ05mdEZMeThqTS9JM2JGKzFrdVJyQjVCK1VrVlU1dGJyKzNIUDh5OTlldkQ3OG1BejFCMENic0svTXFXdlJsUW8xRHNFa2lTanVEMm8xR3ExSklSQUNDSDV0SC81NFljZlRsQ3IxYTM3MlJRWHg1MHFFcU0wT0Z4dUhDNDNqYktXM3NsZU0rT2JIMG81MUtnbUp6VWUzRzdVa2RGa0prUmpUa3lpbTc2UkRWLy93STlLSkErUDZFY25neHAydmRteWpiYmRJYW43ZVptampkWGxLSFZIMGV2MVozUmViVzB0MGRIUnlQS1poTEpWRE9pWHc0R2RPL2pQL3FQY2Njc3dPcVVra2R1NUxiYUtVbFordklkYUtab2VTVkdVVmxSaDE1ckk3aGdNYkZwNlpYY21xaFVOUHlvdWdaeU84Zjh6ME5hWlV4amMxY2dYUlQ5UXI0bWhkM29pR2QyekVPVUhlUHVqUXFJdTdjdTkxM1NrVTNwblV0cDRQMkRYWDNVNS84bmZ6QTlTSWd2K2ZDdUprU3JRUkhIemIzTDQ5c3N2V2ZmSlYxUTZ0UXpzY3hrZDR2UUJOOFkxQTNMNDhidGlTcW9hNk5HakM5RnFzTmRVc09tVFhlUi9mb0NVN0VITXZqV1hpUE8xNkkyazR6Zjl1MUY4c0pqaThtT2tYWnBCZkdUUW9HZ005T21SU212dmEzeFNDbGQxVHdreXExWDA2SkZPSkpEY3NSUEpNVnAwSmpPWFhaTEc0T3kyckZ1L2xjL0xHbmhnd2syMGl6ZlRyMXY3d0F0L1ZiOWVWSlY4ejdlSGo1S1lrazU3azlZWFhPaElla0pVWU03a1pIY2gyRHNVYmJZd29OY2xOSGNrOUwzeUN1b3JTdmp1eCtPa2RlMUdnbDZpWisvZTZLdS9aK1htTDlFa1o3TGd3WnVJMWtpZ01YTFRvQ3dPZkYxRWpiNDkvUklhT0dycXlnM2RMWUg3U2hCVkxOaFZ6MjE5T2dhQ0J5dmZmSThieG81aWUvNFdHaTBaTEhqZ0JxSTBUYzlPWnpMVE96MDBTYVpqOTU3RVdnKzk4ODcydlljQUo5QUlPSHovT2dHWEgrQlVzcXlvSkFtMVNrWlJCRTYzQjZjaUllbDBPdG50ZGt0Q0NGa0lvUkpDYUV0S3Z1K2VrcEt5N1lLOElSZTRwS3IyMjg5eGwrOGpMdTdNS2c5S1MwdEpTa3BDSGE0OENNdEZLa1hmZkVkcXAwNm9uY2U1OWZkL1pPak1weG5mUGNoajVhcGgxTDFQTWVmWjJXUVlaTURKcUJ2R01YYlJDa2FjR2YwaDcrUnZ2Mi9rSCtiOVNDZ0htMDJDZWlRYUpTU25KT0dSSkVsUnk3TFFxbVVSb2RVUUVhRVIvdUNCa0NRSjRZMHZDRUJKVGUxWXBDaWVQVUJtZURqREVwYXdBR3o5Y0EzalpwZWhTSkVNSFRXSmNkMmJ1ZUUxSmxhOU5DZkVMNWpldFJPeFo3aGdreUxFdnBGL21IZXNtUm5xcG1XNmg1QjhPV3orSUtoS2tsSEpFbXBabGdueXN3WEF6ZTEyRjZqVjZsOGRzTGtqWW5ESHBrRkM0cG1ac0xVU0lqNFZOT0ZsdGNKeWNjckVPUzh3OFF6UG1mZmFXMmZjVHIydC90TVQrTlk4U0pJWDFDUUVrb1FreTk0SXMxcUxTcU5GMWtZZ1IrZ0M2UjVJa3VSVDJyeUlhTFZhdDhUR3hrNzV0UTJPUjJmQ0pVZEJ3cG5weG8yVkxrVDhKUkNtQmc5TFdNNnJmRk82Y3graGFSNXV3Q05KVXBER0ppRkpzcEJrRlpKS2c2elJJbXQxeUZvZHFnaDlrOGJXTEo5Tk1admp0eW1LNXpEUTdyemVSZmJ2V3Y3V3RudDRkTU1TbG90UWhCRGxsMS9ldTdTWkNlcmZmSlJGVWdocnJpekxnVTJsVXFGU3lWNWdrMlZaZUR5ZVlGTlVBQjZQeC9PQlNxV2FjRjd2Sk15N0ZwYXdoTVVuRFEwTlcxdlQxb0syRUI0MldaYUZIOE84d09ZRk43azFqYzJQakhWMXR2d1RkYURHYXVXSFk3WVRzd040UXRPZkZVWEI3UW5kZnZXaVZMTmk4U0lXTFZyRSt1MUZ2N3JicXlrdll2V0s1U3hmZHlFQzZFNEtWcSttMG5FUnZOMk9LdGJuZjNiQzNmdTJiNlN3TkxUV2V2ZVdOUlJWdEY0bFdsbThrNVhMbDdObXkrNW04OVBKWndWcldiNXNHWHRLbTdoNFBpdFlUNVh6ZjNQckJ3OSs5MVV6VUhNRDdsQXpsQllhV3hPZ3FWQ3AxRjVnODI4UTREWVNnQkliRzVzUEhBNTlHRFllZVBwVnJsKzBqajhzZTRlK1Q2M2l2NVgrQXVSRy9yN3NiZkwrOWdMcGMxWlNGampKeFVQL2VvMis4M3piNHk5ejZjd2xmRlFqZnVVelZNWmdNRkM2NHkwV3J0N3hpK3U5dTJRTG82YzgxZnBPNng0RzVWM1A5cUpTS2lwck9QK2ZLVHRQVEh1UXdvdUFPMkhkTTM5aS9iNFRFNld0WC93d3E3ZVhoZnkyOGRXL3MrMkF0U1ZHbG13aWQrQ2Q3Q2t0bzdJNjlPR3RuZmQ3N24zaWJjcktLN0RhbTJvN2JIdldNSDMreHYrSkdkcWpSNC92ZmVEVjNBeHRLcVh5RllZR1k1Y1gwSm8ydFUrRms1clNQaVFoU1NoQ0NBVlFQQjdQQnBWS2RWZlR1NnJobmxFanlHenZMUk5admY0OTV1Ui96WVpiZXdNcUJ1ZmxjdGVnQmdZOS8wVlFselU4K2NEdkEzK1ZGMzNKeU0zSDZXT1NmdVc0Wm1MWXJXUFJWWDlDWWNrSnRKN0tNbXJjT2xLYk02UW9Uc3BLeTVBTlpwTE1vVFdRRGxzMTVaVld6RW5KR0hYbkthOU9VWERVbExGcCsxZTQzVzZRWmRUKzVHUkZ3VnEwazFMTFFPYk5uTzZkV0tkMVRVQUdlMDBWbFRaSVRXNjZaNmU5aHJJS0swbXBLZWlDTCtaMlVGSldpU1hsREpkdVZKeVVsWmFqajdVUWE5U0ZkS0t5ckJTMzNreFNyT0gwQU41aHBjb0dsbGd0WmVVMUpDVmJtdTdYTjA0NmN4Sm1RMmc3MVJYbFdKMXFVbElzSWM5SEFSUzdsYklxRzhrcFNhR0p2YzVTNWkzWnljTGRyN1I0ZUJXbHBlak1MV20vRkxlYjZVcytRYTJXVzFoSnhUdDJZT2g3QzdPbVQwT1cxU0huYk4rK2czRlROak41Y0doKzVzRHhrNWlhL1FDbFU0YVFjZ0ZqWlhhN2Zjc0pmR3VlSVArYUFnRWZXOEFNOVd0c2FyVUt0VnFOMm1lUEVteVMrc0tqQ3VDcHFhblpFQmNYMXdSc1JKRFp2cWtVS2lVMkJzY1JmNkd6bXN2UzJrRnR5VWx2NEsyZGV4bVdmVFVYZFh4UnNURjMvQTI4V3VnbVJWOURsYkV2RzljOGowVUg5cklkREI1MEc3cjBuc2pXTW1MNzM4K0t4OFlCc09YVnYzRFgzUFZrWmFaUWV1QUFNNVovenFnc3d6bnYzaE9UaDdOKzV3L1lEbFF4YU1oMXFPVkVGcTVkUm1jZFBEWnhDSnQySDZibVlBMURobHlIbkhvVkc1Zk1QQ1c0amUvZEJuMy9DV3pOMzRKZWRqQmd5Z3M4TVNHUHRmTWZaT3FDcldSME5sTlUyc2lyYTliVE44MklyWFE3Z3diOURsMTZGZzZIaTVvZ2pxRXhtWkdNV3RYQXFLNVFzMk1KWGFkK1NzV09Gd0U0c0cwcG84Yy9TbXpuTEp4VkpReWE5aUt6eC9UR1hyNkwwU051bzhxWUJsVUhTQjN4S010bmp6MXB2OGZudHFYRW5FdnBycy9vbXRzSGEvRlg5Sno0QWdzbURhUnkzeVpHanJrZmJYSUdOUWYzTVhENjh6dzVjUkJRd2Npc2ZsUW1kQ2FXR2c1VW0xaTUvbTJ5TERvMlBuTTNqNnc5UWl5TjJLdUtjR2JjeWZZVnN3THZRa25CS2lvNi80YVFJWFZXTVduRU5XeXJTY0NFQTdldG1zRkRmSXB6NFRwR1RudVdvbDNibUw3OFc2WU9TZmFkVk1XVWtiOWo1OEVERkZmS0RCbXlHVXZ1TFN4NzdDNUt0eTVqd3B6WEtOcFZqcUg4TnRZOXBXUGNySmNZMTk5YkZvbXhKNE03bDdPcW9JUnBRMUl2MkN1eGI5LytMMDlpaGdacGJLRkJneVlUMUd1R3F0VnFTRTV1aDlsc2xxS2pvNldJaUFoWnJWYXJaRm5XU0pJVUtVbVNVWktrQkNHVWZVSW9vc1htckJQM1BmT1NXTGozYU9qdk5jV2k1NnczeGFGV3puSFZIUko1czVlSy9RMnRYTzhDYkVlT1ZJaERodzZkOFhsZmYvMjFhR3gwbkZXYkh6NTNqN2orankrSC9QYkRCMCtLeEY2M2lGcVBJb1J3aUQ5ZmY2bDQ4SVd0UWdoRi9PZTVlOFhWOXkwTUhCdmM3dTJYeFloWFByZjYvbmFLeGtiM1Nkdis4YVBGb20xaW9raHN0ajM2eG1lbjdIZkQxOHRGVEs4N1d0MTMvUE9YUmVLVjk1elJjN2lqVjVTNDVyNW5oTXQvL1FhN3FQMXFsVWpzZUpYNHZ0WjdIMSs4TVVQMHVuMnVFRUlSejk3ZFIvenU4VFhlOXI1YUlXS2tSUEhoajk1emIra1dJZDdhNyt2TGZ4ZUx4Q3Z1OUxiaktoTlh0NDhYcjN4UzVtdlhMWTRkcnhGQ0tPTFJtN3VMKzU3Tjl4MVhKVzdzMWs2OCs2Mzk1SDIrSWxHOHRkOHBYdnZ6OWVMMmY2d1J4ejVaSXJyOWRvNFF3aVorZjNrNzhmZjM5d2doRk9HcDNTTjZ0YjlVZkZIckhjL2EycWJydnZibjY4VHR2dnZZOFBTZG9sMi9lMFc5VUlSb09DaDZ0V2tuUGo3YTFONWJmN3RGM1BqdzBwQStmUEhHSTZManRkTkVvMUNFYUNnVlY3WFRpRWZmTEF3NTVzL1hkeEJQYnlodE9XL2ZuQ1Y2M1BGRXEvZjJ4K3M3aU9jK0xHOTEzK3NQM3lodStkdktDL1plS29xbkNCZ05EQWNHQWJsQU55QlZrcVFFSHhaRnlyS3NVYXZWcW9pSUNEazZPbG95bTgxU2NuSTcwdFBUeWNyS29rK2ZQbHg3N2JXb1pWbmxqeWhJc2l3TFJWRWtYeERCYjQ1Nm5FN25lMXF0TnBSMFRYSHhyN2MzNEU2L2duc3lUcjg4YWR2Ty9jUmYycFd1T2k1cTJiWHJTM3IydlFhakRLQmx3T0E4SHR1NUd5YjJKYk4zZnc3TS9UUGo1Ukw2NXZWbDVNaWgrSW1rQmd6c3k1eTdidVRBeU92b08yZ29RL05PenNsbTZYOFg1UlYzL1d4OGptUEdqZzJZWGpxZGpoM2JDbEQwc0dqdVg3elRxcXFJUGJ0MEtNQ3VuWHNZT01GTEdtREtHa0JQODZrTlh2ZUJiWHdtOTJadFhsS2d6VmlURWFoa3k5WUR4Sm8vWU1hTUQ3MDZqZHRCNGU0U2hxZDNQY2tWOVJnTWFqQWFNQmxpTVJqdE9PdzJzTzVqeTI0N2NzSHJ6TmpxTlJXZDdsTDJITFNSbmExang2b25XYmppUXlxdERtb3Fpa2tkZFhQZ2lqMXplNk1IMENXUm1sQkRWUTNnczhxcnE2c3dKWWV5Z1JUdS9wSzhBWGQ2dFRwZE1nUHowcys3VDlNWWE2S3E3TUk1Tkd0cWFyYlFzdElneEJTVkpFa0pyQnNhRWcwTjhxMnAxV2cwR3E4cDJzd2NGVkpUdHE0Q2VNckx5OWVucHFZK0ZCVHlaTVY3Ry9oWTdzZ3IxMlZ3MnJYSFNpTXJzU09ncEFBQUlBQkpSRUZVZHhZemNzUkZsdUp4aHNYWkNiM0hzRzkzTGdYNUJheGUramVlWExHZGZXdm5JZ01Ubm55WC9ydTJVYkJsQ3pORzlXUDN3bzk0Wk1TSkMwUXFkNnhnOEwxL2IvSDd1Tm12TVcxRTFvVVBwaGhia2c5WTBub3hZb1IvN1lZYkdUVTU5cFNQek92Vjh6cnRGRVZwZXRGUGVxS2VBVU52b25lQzk2OFJJMjRrSlQzbDlBWlA5akZFZU9FVFVGQzBaZ2FQdkpFVTJYKzltMG5ycktkOHkwSW1MUGlDL0kzdjBUWEJ3UG9uNzJSK1JSTVVxZVVUKzBXTkpoTldxN1dWUHNnWGRLUnNWaXNtaytHQ3RiZDE2OGRmTlFNMTEwbk1VQkdhdHhia1cvTUJtK3hQYUdzQ3R3QlZlQ0E2bXBiV2FaK2lLSnQ4c1F2ZS8vQkQvbDFuNXNXYmV4RjVCcy83NkEvZjhJbW5MY1BUREJjVnJsbGkyMUpjWEJMeWxjM092b3pkMi82RFZRRndzbVhqZG5KeWVnWW1sU0VobFJHM1RtRHhNdzlUc1c4L0RwOEQyV3ExazU3ZG40blRadkhRK0w3czJYZmdwRzJiczRlemZ0MTdyR3UyM1RXNDZ5bjdyZFhwVUtxcmZIMDhmVm4yeEJUbUxzMC9yV096K3c2azZzQlhKR1gySmpjM2w5emNYTko4UVlYczNKNFViUEdta3RRVWJtRlhWVk5IWXMxR1NrdThrY0VkMjNZRW5xMDZ2Uys5bGM5WUdZZ2FLdFRVV0lFRUJ2UlA1bUNGTTlCT2RrYm5Wb0gyOUZTYVRBWm0yQ20xeGdhdWw1bWVodEVnVTFGYVNrTFhYblJOTUlCaVkrMjZndE8rYkU1MkwvYnRDYVdLejg2K2pPMWJ0bmxYZzNPVWtiLzk0UG4zZCszWlEwNTJ6Z1Y1UDl4dTkrWVJJMFljQ3dJMkZ5MFRjNE55MTZTUVpOeGczNXBHbzBhcjFhSldxOVYrVVBORlIyVWhTUXJOelZHN3ZXR3R3UkExbUlZalBGN3dIVlpkQkFQbjd2ZStBUEZwZkhMdjFRRE1YdndxNzFjNHFYTzZ1WEhPUzJUMnVKelhidlJxQm05L3ZwOSt2WHBoa2k4cVhDTnorQVR5WHI2SnRLNXZrVFgwUHRZK05abVVRUk9ac3Z4OWNuS3VJa1ZucGNyWW40M2p2R2JYWnl0bU0vR1pqOG5zbWtKeDRXNG1QZktTMTNUQnpVUERlN0JMU1NmSjZLU3d4TTN5OVlOUHJtOW85U1FsbjkzTEs2Y1BaR3J2WjhuSnVneWpJWlZsQmUvUTlUUXV0V1BUVyt4Tzc4d2o0MDdOTUcvTUdzSGlTUjh4c0dkM3VtYW1VMVZ5a0s2ai9zYXJNMGR4MXlOL1orWGczekZnNjRzNDNZTGtJRk4wM01TN0dUcStINXV5T21NeFJ5RGpXL3RCbmNTaTVmOWd6TGlyV05ZMUU2V3FqRUZUbjJmbW1ONDhOUDhWeG82OG5aemx5VmkwRGc2V0NaWnQzVXJPV1ZIZzZabjM2a3VNSG5NRGE1L3FpczVaU2FtdEhmazdWNUUxZER6bUo2NG5iL0NuNk94VldCTFNUdnVxNllOR1lwaDJHd2NkaitGZit5ZHIxQlNHTGIyR25MeHJpWlZkS09ZbW1wK1haOS9CeS9uRkZPK3JRRmR5RTZzZTB6Tmo0WHNNeXpLZS9ZUzFIMkRqTGlQTGw2VmZrUGZqMEtHeVQxb3hRVjBuTUVPRkpNbEIwZEFtVGMydnJXbTFXcVJ1M2JyUjBOQkFRME1EalkwT3FiSFJpY3Zsa2hSRmtSVkZrWVVRYWtEN2YvLzNtUEhoaHgvZUJyVC9KWU5NWldVbFRxZUw1T1F6cXhUYnMyY3ZuVHRmZ3ZZYzE0cldWSlZqZFd0SnNZUytYVTY3bGZMS2Frd0pTWmowMmhiblZOdGxVcEl0cUg4bEh3bTN3MFo1UlJXeGxpUU1PbTN3RHNyS3FraElTVWJiN0Y1dFZlWFlNR0l4dDJJQktFN0tTOHZSbVMzRUdrSWR1dFVWcFRqUVk3R1l6NEdCcDFCUlZncTZXQ3pCYVRtS2s5S1Njb3lXWkV6Nk0wdkpXVDdySm5hblBjd1Q0M3VIdEZOWlhvYk9sSFJhdE80L1JiWXZtY2FUcFRtc25uUCtYVVpDaUxLYmJocjU1M2ZmZmRkT0UwV1JEYkJKa21USHk4UG1sQ1RKTGN1eUlzdXlvdEZvUkVTRWxvZ0luWWlNakNReU1wS29xQ2dNQmdOR281SFkyRFpJUFhyMHdHNjMwOURRZ01QaGtCb2JHM0c1WEZJempqWU5vR3RzZER5aTBXaW1ob0V0TEdFNWY2SllpMW02cVlUeG93YitUOW92V1BVcTZVUEdrV0k0LzE5TnE5WDZVa3lNNlFPZ2dWRHV0WHBKa2hvQWh5UkpMa21Tdk54cmFyWHdBbHNFT3AwWDJQUjZQVkZSVVVSSFJ4TVRFME5jWEp6WEZQV2JveXFWU3FoVUtzbmo4UWhabHZCNFJIQ0psZnZRb1VOcjB0TFNwb2FuWGxoK1BWTEQ4b1hMcUc3Rmoyako3TXVvQVJkK3pWYlptTWI0VVduL3N5Y3ljTlQ0QzliVzVzMWJkalh6clozUXZ5YkxrdkNibno2c0NqSkIxV2kxR2lJaUlvaU0xUG1CVFVXUXI4MFhIWlh4eGtZRDBWRWxQZjJTL1c2M2E3VXN5eVBETDBSWWZoMWk0dFpKazhPUDRYOGdqWTJONjBhTUdGRkZxRi9OQmJna1NRcXdlUkNvRFExbDhRakdMcjl2VGFlTElESlNqNnpSYUFJSEJLZCtCQmZHK3dJSkhyeVZDRytIaHlRc1lRbkxUNVdpb3FKUFd0SFdnb01HbnRZb2lwcW5lR2cwR2pRYUxWcHRCRHFkRHIwK0FHeWFRTGpVcitLcFZMSm96dllCZU16bStBSWh4Q2ZoWVFsTFdNSnl0dUx4ZUhiMDdIblo5eWZSMWxxd2VhaFVUV2FvRjZ2VXFOV2FGdHFhd1JDRldxdlZvTkY0YlZTWHk0dUFicmNiYjBXQ2dxSW9BWEFUUW5nQWQzMTkvYi9kaW5KbHJVdW1YUnRENjVFNWp3QlZzeUozajR2eTR6WWlvZ3pFUllZcHRuL09zcnRnTlRzT1ZJSXVpWEhqaDZNUFA1S3duRU01ZEtqc1B5ZlIxdnlNdVVwb3Nic3F4QVQxNDViZnQ2YlRlUU1KMGRIUnFMVmFMUnFORnJYYTJVb1F3ZDFpb1JmQWs5SWw4KzFMSDV3N01USENrMW51aXVUcGNkZlRKeUVTTDIzUk90Nzlyb3BLeGNTV3Y5MkN2eVQzeUtGdkdiOXNHM0dXZUk1WEhxVnpyenorT2FnTGNuaU1XNVh5SFRCbkN5eWE4YjlwWDZ2VFk1QXJtZnJRRzR3SUExdFl6cUVvaXJLdlg3KytlMXJYMXBxVzFzTy9ZSXNrQ1ZtV1dna2ErRTFRdjdZV2ljRVFoZEVZZ3h3UkVZRlhhL09hcEUzZ0p2dTBOam1Rck9zSHR1UGxoOXo1RDl6MDV1b0hiK2VoakFqbTVIL3Q2N0tYdHVpOWU2NmgrUnJqYjJ6OWxPNTVWN1BzOThONGQ5SzFmTHA1TzE4MVhDUUQ2ZnZYV2dWbEZhSDc3RFZRWEVySVN1ZUtBclp5MkxvTDNHN09hUFZ2QmU5VUtTa0d1ek8wQTdicWx1MmZTREx5aGpCMjlGQk9GUEYzTzZ3VUY1ZGdkN2JzWEUxbEdTV2w1YlRZcFRncEt5bW12TW9hZnJzdllxbXNyTnhZVm5ZNEdOU2NCTllMRFNtaFVrSzF0ZUNnZ2Q4RWJkTFdvcUs4MmxxYk5pYmtpQWdkV20yRXp3SFhsTUdyVXFtRnZ5SWhLSWpnYXd6Mzh1WExWd0xmcGNURzRHZ01wUzJLaTJ5WlFHalFhbEg1bDdPWEFMVVdnK3JpR01qK0ZwajJFT1FOZ3VHRFlJR3ZPRzN4RE9qWkg2Wk1nS3plVUZUdC9mMmhNVEJ1TnBSc2dTRkRZUEFZOE8waTF3eTdmUnlFZTFaQXo3Rk43ZVF2Z0FGallIQXVqQmtMMlNPOHY4OFlDVU5Hd3NneE1DZ2JKaS84aVdicTJtZm8zTGtYVTZiY1E5Zk9QVmk1bzlTM3g4bVRFNitoNzlBN21EcjU5L1RNSG81L2o3MXNCMzB6TG1YODVEOHhmdVMxakptNU5QeUdYNFFpaENpZU5ldlJMMDloaHJZb2VQZVZUWW5nOUE0dnNFVVFFYUh6SmVrYWlJbUpJVFkyRm5Wa3BJNkdCcTg2NTNScWZMNDJkZk1JYWJCSjZnRThkOTg5MFhyYjZCR3Z2L3pwZDdOSFh6djhsRGQweDNYWDhNRHJteGhmdkpmcVl6WGNPZnBhTHJsWWNsM2RFdFd4Z2owK1ptYUhBNHJYdzJOYm9YQVhtTlN3ZGk0ODlCU3NmUXllWEFrSDE4Q0lGWkMvNHN5YTJya05kdTZHRExPM25jQ0hKUk5XellHYUhaQTZFWjZaQkdlVnY2NVVNbTNTLytPeHRkOXdhN2FaZmF0bU0yRGFZNHpZdmhodHpXNFdyTEt5cGVwelVtVlFuTTZBdHJwanpWSzBBLzlFL3NKN3ZSRG9kSWJmOG90UWpoNDkrdDZMTDc3WTJKcTJKa21TM3d6MTBFVC9MVUlqb2NHZ3BpVWlRa3RrcEM2Z3JabE1Kc3ptZU9USVNEMDZuWTRtWDV1R1prbTd3ZWtmSWFrZmsyYiszNy9kNlZjVW53NXQwWmJQdnFCU1orR2VxN0s1NS9KMnZKRy9rd0EvNWE5ZFpNR3RRWnFWVGdmYnRvQWVtRGNUWnN5QWpidGhUK0ZQYjZyblVDK28rZHZ4UzU2dk9zZVVBcnBxYjNyMzJUbi9DaW0wWnpBZzI5dEl4c0JCcUFzL3AxUUJqT24wVDY5a3pMRGJtZnZNSW5hWDFRVEFNN04zZnc2c2VaenhrMmV3WlBrNmJJbzYvSlpmZk5yYTkwODg4Y1FYelVBdFdHTnJrZUxSSE5SYSt0WjB2a2lvSVZCMVlMRWtJa2RGNmRIcEl2SDYyclQ0bzZTaHFSOHFFUVJxQ3Q0SXFmdVYrYzhjLy91QWprdFBIUUJvWk9XbjMzTGJ0VmZTSjlYQzlmMzYwczFWd3FhUytvc0UyTUJvYU9rTFMra0pJMFo0dDNIVFlOVVRaK2F6VTl3dDl4bFBVUHNjWU1vNW45RWFPWmFsMi9jeWYvb3R5Qlc3R056N2NyYVdlVFV6THhYVFI0ekk2OHpXcFg4amIvUk1sUEM3ZnJGcGEydi8rYytuSE0xTVVMKzIxdW9TZThFWUZGeGg0TlhXV3ZyV3pHWXphclVhMldBd29OZEhobWh0VFVtNzZ0YTQybnpnSm5ra1NYS3ZXYm5pVFNIRS9wUGZrZ3BEaElvZnFtcTlMNlNqbGtQMUVnYmR4ZnZWN2o4QURoUkMxeHpJemZWdUtVRjE4SG9qV0N0RGd3b0FDVVlvOVRIeWJQdnNQSGZTWU1ic0xxZWtPcWdYU1psazZmZXhaVmNWQVBzSzhuRm5YZTdsSkhQYXNMcjE5QjQ0akJuekZqSWkzVUZSaVZjM1BERVZVMWd1RW0zdG05bXpaKzlzQmRTY1FmNjFWbEk4WkVKTHAwSzFOYjArc3BtMjVtVStVVWRIRzZtcnE2TyszbzdEMFVCall5Tk9weGFOeG9YTDVVS3RWZ3UzMnkxNVBCNmhlTU56UWdnVUVJb1FlQ1pNdUxQMmhUckxhenVtWERjUFRreGJOUG42SzdsNzFYdDhzVE9lbXFvcWtyTDZNRFJvN1lTTFRkS0d3c3l0a0pNRm1lbmVLT2JRaDJEdU9COSs1SHI1a2JPeXdKQUVHemRDTERCaEl0dzFDQloyQmJNQk9KL1VkdXBVWnM4YXlxMDl1NkEzcGJGaSs0ZGtHaXc4dGVDdmpCclpoK1daYWV6WlY4NkM1ZTk3MlYxckN1bWZlenZtakN6a21oSnFFc1l3TDlmTC9YdGlLcWF3WEF6eTQ0OC9ybjMrK1VXbjhxMkZKT1FHMFJLSmxxQVdFV0QxaUk0MjBxWk5HK0xqNDlINS9DL1NhNis5U21scEtSVVZSemgycklxYW1scnE2cXpZYlBXbnkvcWh2ZTY2SWZwMTY5YXRraVNwOTBudnp1T2l2TGFlaU1pby8xbUM3cytOM2NOaGc0cHFzRmhBZDVxWHJxNEVSUWRtNC85dW9yb2ROc29xcWtoSVRrRWZuS0d0T0ttb0tNZXROcEdjRUVweGZUSXFwckQ4ZWtWUmxKMlptZDJmMnI5L3Z3TXZpMGU5YjdNQmRoK0xoL04wV0R3TUJpK1FtVXd4eE1XWnNWZ1NTVWxKNFpKTExxRkhqeDdvOWQ3UHBicE5temJVMU5SUVYyZkRicStub2NGQlkyTUVXcTBUbDhzYklWV3JWY0x0OXJOK3lIZzhua0N5THVEWnNHR2owMnExdmhvVEUzTnlZRk5wU0lvMWhVYzZTSFFHU0QxRHJTczI0WC9mYjdYT1FHcHJIWmUxV0pKU1d6MUhxemVTbW1vTUQvcEZKc1hGeGUvdjM3L2Z6YWtqb1FwTnE3djd0TFhtdnJVSUg0T0hWMXN6R3IzYVdrSkNRZ0RVQUdTejJZekpaQ0k2Mm9CZUgwVmtwSTZJaUFpZnI2MTFmMXRRMUNLdytJTEoxT1k5UlZIV2g0Y3hMR0VKaTE5Y0x0ZUhsMXpTZVg4elFEdWxiNjAxdjVwR293M1FFdW4xVVVSSEczenBIZWFBYnkwQWJBa0ppY1RHeG1JMHhtQXdST0ZOLzRpZ3FTSkI3VXNCVVlrZ0N2R1FFaXU4aXk2NEtpc3JYdzBQWlZqQ0VoYS9mUG5sbDVzSVRjWU5BSnRQVzNPZlhGdlROS3NIYlNwME54cTl5YmdKQ1lsRVJVV0ZBbHRTVWx2TVpqTnQycGlJam80bU5QMGpJa2hyMHpTUGtyYlEydHEyVGRydWNybVdoSWN6TEdFSlMzMTkvZklycnNnOTFBelVHaytrcmZtWDFHdGVOdVduSkRwUmVrZFNVdHVXSHBISXlFZ3NGZ3R4Y1hIRXhNVGdUZi93SnUxR1JHaDlLU0FCY3pTNHpFbzBxeUYxUzVMazJydDM3MUxnOEs5dGtESXp1NFZwd2NNU2x0TVVJY1RoTld2V2JHMU5VMnVtcllYa3JiVVdDZlZYR1BpNTFwcW5kMFJHUnJZRU5vQ2twQ1RpNCtOcDA2WU5ScU9ScUtnbzlQcElJaUw4NEtZNWJWL2JaWmRsZjJlMzIxOElEMjFZd25MeFNtVmw1Y3F4WTI4LzNreFRPNkcyZGlMZm10Y0UxUklSNGMxWkN3NFl4TWZIazVTVTFHcjczblhJdFZvc0ZxOUo2ZzBrUktQWDZ3T0JCSzAySWxoekU0b1FPTjBlNGZZb1FoRk5yQjkrZE83YUkzdnBzL21GbTBNNEhOd08zdnBvQjlOWGJPTHgvTjBjYVJUaDBROUxXSDZGNG5hN1A4N0p5Zm44TkxTMWtLWDEvTlVGdmxRUFh5VlVSRkRBSUxnZTFJekYwdmFFVmxRZ0FhbDkrMlQ4Z1lTWUdDTUdnd0YvSFdtdzFxYlJ5RGpkb05ab1VLbFVJQVRDMXprL3VCMDZlTUM1WU1OL2x3UUQyN0wzMS9ONmlaTXhmYktJc3g1aXdxclB3aVUxWVFuTHIxQUtDd3ZmTHlzNzNMeTZvQkZvREFZMUg2QXB3VFdoVFZIUUptMHR0QjdVR0FnWXRHK2ZmTUkraEZRT0ppVzFKVDQrSHBPcERkSFJYcE0wTXRKcmtqWnBiVHJNYmFLRklUS0NDSzFHcUZTeThHSmJ3RmIyU0JLdWcwL2Q5N0hMNmZ5WDk4cU41Tzg5d2wzWDVwSFR3Y0xFRy9yZytxYUlyeHZDa3lBc1lmazFpZFZxZmJWWHI1d1NIM2dGZzFwd3dYdHp2aldmdHFacVJWdlRoVlFZbUV4K0U3VHRTZnNSQW15SmlZbFlMQmJNNWpoTXBoaWZTZW9GTjUydXlSejFSVW1GV3ExR0JOR0xOR2x0a2h0d2Jpc29lRVVJOFNWNGNDc0NsY3JYbkt4Q0pXd1VWN3ZDTXlFc1lmbVZpS0lvWHozLy9LTG1BWU9BYjAyU0pDZXQrOVo4SnFoR05HbHJUV1ZUM3B5MWFFeW1HTXhtYjhBZ01USHg5SUVOb0YyN2RpUWtKUGh5MjR3WURGR0JJbmsvQTRnL2tBQUtpcEJRYTlRQklrcEpDakJndXNkZE43VGkrUEhqTDRDZVBwMWlXYlc5a0tNMk94OTgvQ1UvQ0ltR1JuZDROb1FsTEw4UytmYmJiMWZQbURIRDFncW8rVFUyUDZnRnAzaTBXSEdxaWJuRFgrUWU1VnZoUFphRWhBVGF0VHQxT1dRTFlJdUppU0VwS1Ftek9kNlgyOVpra2dhRG15eEJuY01qZEhvOUdwV3ExYVJkSk1rVkYyZmU0SEs1WHJ6N3hpRjA1d2lUWHQvQXAwb2lBMkpWNkhWaFRxNndoT1hYSURhYjdZMnVYUy85SnNnRWJXeW1yYldhak5zVU1OQ0k1cUFXV3VUdUpaQk1Ta29pSmlibWxQMXBGVm5hdDI5UGRYVTFWcXVWK3ZwNlh5RjhJMDZuRTZmVGlhT2huaU8yUm93bUUycVBrOFpHQlVWUkVFSUlSVkVVRUI0aGtDU1FrU1RWSjU5ODh2SlZWMTNWYTlwTnY4a0djTmVWYy9XMmFQNFVIMTZwS2l4aCtSV1lvTHRmZmZXMXphMzQxWUpCellVMzE5VWpTWkxTUEJtM3lhOFdXalpsTUVTSEZMeTNiOS8rdFByVUtyQnBOQnFTazVPcHJhM0ZacXZEYnJmamNEaThsRWFPQnI0K1ZvY3FNZ3BKdUdod0s4SXRKRW10VWdraEZEd2U4TklhU1lvQU53TFgxVmNQTE52ejVhNUZYM3FpRmlkcEZkNzUrSE95Y252VE1ZeHJZUW5MTDE2KytlYWIxUTg4OElEMUpDWm9pMlJjMzZwVExkSTd2SDYxbGxIUXhNUUVrcE9UMFdoT0R6Uk95S2Rxc1ZpYUplNUcrMnBKSTRtUGk4T2tqd0NWQ2ttbFFwSzlxQ3ZMS2lGSkNDUkpTSkt2WWwvQ0pVbVNNL095N0UybEpTWFByaTg2VE0vZWZYbDZjT2Z3akFoTFdIN2hVbHRidXlRam85dUJrMmhyZm1Eeis5WjhBWU1BcUlVdzRucWpvUDVhME9pUVJOem1oZTVuckxINUpTVWxKWWpTeU82ak5Hb2tQVm54Y2JiWnFLKzMwOURRSUJvYkd5V1B4NE5hcmNiajhRaWZCQlpabGlUSm1WaFQrdEtNMy8rK215ekxnOEpUSWl4aCtXV0wyKzNlOHVpanN6OXVCbW9PbW5MV1RoUUZEVFpCaFplMUk1ZzhVdTh6UVUwK0U5UkNTa3JLR2ZYdHBBejRVVkZSSkNjbms1aVk0RXZjamNGZ0NDNlVid29tK0d1N1ZMNUFnbitwUG9JcUV1NjY2KzdqaHc0ZGVnRW9EMCtMc0lUbEZ5MC9mdnJwcCs4OSsreXpEYTJZb0k1bUptaWd3aUEwWUtBV3dacWF2OERkWUlnT0xLUG5OMEdiczNmOEpJME52SUdFMnRyYWdOWVc4TFU1dmRUaGJyY2J0OXVOeCtOQlVacUNDRUlJZk9BbUNTSGNnQ1JKa3B5YTJ2RnpxN1YyUVhSMDlOenczQWhMV0g2WmN2anc0V1Y5Ky9Zcjg0RlhNS0ExTjBIZFFSVUdvbWxSbHRCZ2diL0FQU3JLNEV2dGFFTjh2RGUxNDNRREJtY0ViQUFkT25Ud1JVaHRORFEwME5qb3dPbDA0bkk1ZzRETmpjZmpFUjZQUndvR09KL1dKdmxNVXBja1NTcWpNZWJmalkyT05LMVdlMWQ0aW9RbExMOHNzZGxzYnlRbnQ5OUZhR3BIY3hQVVJXalpWQXNUdElsakxiakFQWlNPcUVPSERtZlZ4OU5hakMwNk9wcjI3ZHNIMFJzRk0rNzZxeEw4eEpTYVU1bWtUcUR4d3cvemx5aUtVaENlSm1FSnl5OUgzRzczUjRzV0xTcWc5UWhvUUdNN21RbnFCeld0TnFKWmRZR0JtQmhUZ0k2b2ZmdjJSRWRIbjFVL1R6dER0bjM3OWxpdDNrVmVRclUydjBucXdlUHg0UEVvSnpKSkVVSklQdFhVT1d6WXNQTHZ2eTkrdmtPSDFBNlNSS2Z3bEFsTFdIN2VJb1FvM3JGang5by8vZW1odWxaTVVBY3RBd2FlRTV1Z1hrMU5wNHYwc1hiNE9kYThCZTdKeWNsblpZS2VrY2JtbDQ0ZE85S3VuVGNGSkZLdkIwMGsrcWlvSUdMS0NMUWFEWklzQzFubFgwaytoRzAzRUVpUUpNblpzV1BhenBxYTQ4L1Jjdm5NaTBhc3BYdFl2MjNQdWJuTzluMFhwTS9iMXErZ3pQcHpmNjZ3ZnR1RmFzMU93Zm90T0g4aGM2VzVmTFpwTlFlclQva0t1b3UvL3UveWZ2MzZselhUMWxvelFmMkp1TDdxQXE4SnF0SDR0YlZRdjVxL1pLcE5tMWppNCtOcDF5NkpqaDA3L3FSN09pTmcwK3YxZEdodjVxMVBDbm45NnpJK0tTbG4wM2VWTktpOU5ySWtQSlJVMTNITTdzUnFkd2k3UzBGV3FZVXNTMEtTVUJUaFhZdFVDT0VXQXBja1NZMnhzWEh2TlRRMFBQVkxBYUluSm85a1c5bTVJMXlxTE16bm1aVmJmdkoxeWo5YnhTTUwxMTZRZTFydzBPL1o4VE9QYTFjV3dqTXJXM2xPTytEZWVlZTJyZDByNS9Ga3dVRzB2NUM1MGx4ZW5uTS8yNHB0SnozbTJMSHFGOU43OU4wVHBLazVnamRKa2hxRFFhM0pCSldFU3FVV1hsRFRpaFBWZ1hyejFjeTBiWnRFaHc0ZFFsYWNPdS9BQnRDMlhYc20vbTRNODM4L2dnZHVHRVMvOWtiMjF6aUppb3JDRUIzRHBSM2FrWjZVUUx1RU5raEN3WVdNTEt1RUlvUUFTY2l5djFCZStCa0FHbk56YzVlNFhLN1hmZ0grQlFxM2ZVaFpqVGRvRWlyZUNhdzRiQlFYbCtJTW1zLzJtaXFLaTB1d3UwTW51YUlvcEE2WnpNYjVrMXU5bHNOV1JVbFoxWm4xMFc2bHBMU2lCZGVkdzFaRFNYRXhOb2Y3RE83SnUzNW9jVWtwZG1mTEY3U21zb3lLNnBZdmhLMnF2TlYrSzA0N0pjWEZWRm50NTNXY0ZBVlNoOERHK1MxL3Q1WEQxbDNnZG52L0R0bnZnSklTc0xlaWVpbDQ3WXFTNHViNzdUejV4QnRNbWpUMmx6VlhGQ2RsSlNYWVdoblg1dU5rdDl2LzNhTkhqK0I4dFJZbUtDMVRPM3hyR0toRU1NZGE4MkNCbnppeUtWK3RQVzNidHYzSmMrQXNxdEFqdUs1dlQ3NzZTc1p1YnlERmtzQ250ZFVZREJHNFhHNGtXY2FHZ3NmalFhMVJDNkZTUzJvWkhJMU9aRmtTRWlLUUFpSzhLU0JTWWVIWGNrRkJ3WXVEQmcxS1VLbFUxLzBjUWExdzNUTk1lK1pkQ2cvYTJYM1hkU3d4cUJrMjlaOU1IWllGd0t2VGIyUjFUVWNxUDlzTWVoM3F6SnZadG1RR1Q5dzdpR1c3UGFRbDZOaXpyNXpacjc3TjJMN3BnSU5aNDRhVFgvZ050cXo3MkxOc1JxQ3RSVk4vdzRvRGNhamR4Nms2V0VqSzZNZFpPMi84S2Z0WVhiaUdBWU0rUUVjMUZmbzhDdFkvVDRJV1ZzNFp5NnpWMzlNNTFjekJ3aUxHUC9FR0Q0M0tPZVU5clZ2d0lGT2Uya1JHVm1mS0R4UXpkKzBYREVuMzZpWExabzluc2ZVSSszYnVZdXJMLzJINnNFeHdWek5yL00yc0xGSkkwZHVwTnZSbTNlcC9ZZEZCeGU0MURCNzFKMUl5czdCVkhpUjcvTk04TlhIZ2VSbXJXZU1ndnhCc1diQm5XZFB2RDQyQmJVVlFVZ0ZEaGdDeHNISWx4QUk3VnNMNEdaQ2VDUWVLWU81eUdKWGpQUzkvQWN6WkJycURZTlZDalFtS2ZBdE5Pb3JXVTJEUFlVbWE3aGN6VjVTYWc0d2MvQnNxREYyUjdRMDRLcDNrK3ZZMUg2ZWV0LzhqUDgzMXpZZUhEeDl1TFZldE5STlVDYTRGOWE4SnF0Rm9SZE1xVTVHQk90Q1lHQk94c1hFa0ppYVNuTnllVHAzT2tidGRDT1dzdHVQSHEvbDQ4d2YwdjJVODE5My9aKzY3N3o1R2ovNHQxMTU3TFZkY2NRV2RMMGxETnNRUmIybExiR3diU1ZLcEpKVldLMHV5ckpKa1dRTlNCSklVSlVtU1NaS2tSS0REdm4xN2h5dUs1MU52d2NMNTJZNGNxUkNIRGgwNjYvTnY2eEVsM3RydmJQSDdLMys4WHNUM0dpVitySGNMSVJUUjBHZ1hRaWlpdHJZbWNNejNHNTRRSGE2ZEduTGUvcmRtaVc2M3pRMzU3ZmtIcnhHWDN6WlhlSVFpWEljTFJMdTRLOFFQbnBQM2EvOWJzNFNtWFQ5eHFFRVJRampFSDMvVFVmenA5YzlhOUtGdS95b1IzK1ZtVVgrS2U2cjlhcFdJYTNlRjJIL000ZjJ0c1VZY3IvUGUyeTNkVk9LUEwyNFhRaWhpNzc5bmlrNDN6QkJDS0dMemM1TkVqNXNmRVkxQ0VVSzR4ZE4zWHluKzhPSTIzL081VHR6eGo3V0I2emMyT2s3K3JCdjNpVDV0RTBWaVl1aDI5ZjN6VDJ1YzlyK2xpRzYzdGZ6OTIzY1UwZTJXME44OFJ4WFJLVkVSbnh6Mi92M2p4NHBvMzA4Ukx0LytENTlUUkdRN1Jldzk2djI3b2FIcDNDOWVteUc2Lys2eFg5UmNlZmZ4c2FMZmZkN24ySGhraCtnVXFSS3ZmRjdkWXB6Y2J0Zk85OTViK3dEd1cyQTRNQmpvQzJRRFhZRU9raVFsK3Q3aEtGbVdJMVFxbFVhdFZxc2lJaUprZzhFZ3hjYkdTbTNidGlVdHJTT1ptZDI0NG9vcnVQYmFheGs5K3JmY2Q5OTkvTzF2ZitPVlYxN200NCszY3Z4NDlWbmpVZlB0ckhtRFRNWW90dXd0SnJKYkg0YkZleWd2Sy9ORlNOMDBOdFJ6eU9yQ2toaUh4dDJJUTNpRUpNbVNKS3VFMS95V0ZDRjVrTHhxcXdUSWtpUkpHUm5kdmk0ck83UXdLU2twVnBLazlGOWFJR0R3eUZ1eDZMM1d2VTdyL1lKWEZHNWk4ak92Y0tDc0dzVlJSYVdjZDFyWDZwMlhpd3pJU2NtWW5kVlluWUR1NU9lazVWNU5zZzVBUy8rQmVTemN1UnZHNW1BcjNjbU1lZjlpOThFS0ZMZU5tbW9qVnVCa1hveGRPd3BJSFhRelhXTjluaU90RVpPMlNkSHZuZWRWWjVKU1VyQlZmUTdBMXEyYjBkcHptRFhqWVFCS1MreFU2QXFCUExMNzltUEc1RDl4YjhWbjVQWHR6NmhoZ3pqcG1sL2FybXd2Ly9HQ2pGdkpkaWhYdzVyNXNOWnJwV0hkNHkyUDhSZnk5QndLR1didi8zVkI0MUJaZlJTak1ma1hOVmQyN2Z5Yy9pT25leDl6UWc1OU00eUJmVTNqOU9sM1NXMlQzbnAwK3YxSG1nVUtnaU9nSi9DcnlhSnBCWGQvc0tBcEFtb3dHSHhyZ3JZaEljRmJCNXFhbW9ySlpEcG5ZM3FXd09aaHhYc2IyQk9md3hQWEdQaitteUtjUGxvamg3Mk9UNDdXMFM0NW1XakZRWDI5MXo4Z3ExUklzcG9JTGNMamNlTlVFRWlTZ2k5eDF3OXd5Y250UDY2cU92cGNYRnpjVENEK2x3UnNPcU9obWJPcGtGR2ovc3BqNno5Z1dIWUs5bDFMc1V6NDhQUUdSZzRhR3ZuTUhkQ0szNE9xVkRGaCtHME1XL1FoOHdkbm9xN2NnaVh6cno4NURDMEg5OC9uckZLQXJOeHJHVEhZOTAwYWNTUEdoRlFBc2tiTVlGL09jUEkzRmJCMDNuMHMzZkpIOHArNTk4UU5PQTh5SXUrM2xEVHJhTmRoRDdEaXNRbm5mT3lNeVRCeVJOUGZJOGRBUXZCK1krdm5tWTNSMk96V1g5WmNrZVhXM0hUQjQxUzE3UFYvdi9IZzlQdS9KN1N3M2RHS1h5MUE5UjIwMkxId3J3bmFNZ0pxOEFVTHZQeHFiZHQ2azNDVGs1UFA2WGllQmJBSjN2L3dRLzVkWjJicDczcGhrQVdlaGdZY0RnY09XdzNyZGh3ak9TMmRSQnhZcmJWNHpGTmlBQUFnQUVsRVFWU0JVcXVveUFoUjV4U1NUcTFHOGJnQlNaRWxDUUY0Q3hTOC9qWWhoR1EyeDYrdnFUbHVpSW1KK2V1cDlaUUxLd2FqbnFyS2F1aWFjT3FEcThzb1ZhZlF0MmNLTXJCK3pidTQwWiszdmhYdjJFeVpZemJKT2lmYkNyYVRNL1lQNEs2a3ROcEkvN3hNMU1DTzlldXBWRTU5VDltNUF5bVo4dytLcXFkNHRUYTNsUnFIQVpQaHhQR21BZjJ2NXFGdHhXVFBHdXZWeGhRN1ZUWGV4cXhXSzdISkdZeWVrRUZ1a3B1OEo0dE9malBhVkJhdmZZL212bTJ0NGFkOTFmVkdzRlo2dmR6K3laK2FCNFpTa0ZPaHQ0OUFvcXJxOUNaZTE1NDVsRCt6QVNlMDBFQi9ybk9sZDA0djVtM2JDcmRtNGF6Y3liWWlLd044KzZ4V3E2TkJpbm5sd1VmKzN6NmEwam9jUUVNSXFMVk03ZkJyYThIOGFxSzF5Z0wvS2xOdDIxcElTZWxBNTg3bm51bm56SUd0NFFpUEYzeUhWUmZCd0xuN0FWQkZXM2lxZHdxRmhWOXlTTkdpUG5LTWIreDF1QnZzdE5GSFl0YnBpRFhGVUgva21LaHY5RWpDSTRSS3JaWmsvTVNVSWZXa2toQkNOcG5hdkdXejFVVkZSVVU5OG5NQ3RnbVQvc0Q0Q1ZleDJHUmd6Q012OHRESW5pYytPR1VBVS9JZXBXL3VOYVFaRk13cDhZRUhYckZqQmFPbS93dDdWUWtsVlRKOSs3NVA1ckFIV1RSajFGbjN6V0wyTUhiUTFhaXBwdEk0bElMUjJhQlZtRDZoTThOeis5QXpXWStjMUI2TGZPcDdNbWFONE5VWkh6RTBwd2NaV1oycExDM2xzWldmTWpqOXhBYmtnSWx6R1ByWmI4bnNlU1VaS1NZT0hpaG04b0wzdVhlUWdiVlBqT2V4OVVmSlNJMWxYMkVSanl4OCs1UlRNeUhwekwvaUZUdGcxSFN3VjBGSkZmVHRDNW5EWUpIUDM1NlVDNE9BckN3d0pNSEdqUkJyaHVYellWeWVOM2hnTFFkdER1UXZPbzBQWGMraDVMa2ZaV3VaazBISjJsL0VYQmx5N3l4ZUhuUTl1UU0vUU8xMFliUTBxYVBMSHYzZGkvYy9zMkZYTTFCekJJR2J0eGEwbFdDQmY2RmpYd1JVdEJZQmpZa3hCZFl0YU44K2hmVDBUa2lTZE03ZlUwbUljNU5uYytUSUVmYnUzY3QzMzMzSG9VTmxIRGxTd2JGanh6aCt2SWE2dWpycTY3MUY5UFgxRFRoZFRzbnRMYUNYUEI2UEpJU1FmWnNhMEFCYUlZUU9pTFRiNisrSmpJejh3N202NGNyS1NweE9GOG5KN1M0WUdGYVZsZURXbTdIRUdzNTdXMjY3bGZJYUI4bEpDU0c1UERXVlpkZ3drSnh3WmhxUDIyR2p2TElhc3lVWnZmYjBzb1BzTlpWVVdkMVlrcExRQm4wNkhiWXF5cXRzV0pKU1R2dGFGMUlVTjVTVmdkRU1wak1ZcW0xTHBqSy9OSStWYzBiL2d1YUttL0xTY2t4QjQzcjgrUEVYWW1QanRqUXpQUnNBdSs5ZnI5WW1TVTdKbTJRZkFEWmZaWUUvVDAwMEFacUI2R2h2L1dkY1hCeUppUmJhdDArbVU2ZE9kT3ZXN1pTTHNweXRxR2JQZnZUY21HZ0dBNUlrMGRqb0xZNTN1ZnlGOFFxSzR2R1hXUGxEc1Q1UUZVMi9CZHU2WHMwTmdLKysrbXJQeUpFalVhdlZ2YzlGUCt2cjYvRjRGSXduY3BxY0I5RWJUUmdpdFJla0xWa1RRVXgwRk0yL2dib29JOGFvTTdmcVpiV1dtSmdZTktyVC82cHFkRkhFeEVTamFvWmRhcTJlTmliVEdWM3JRb29rUTR3SmRHYzRWQ2xadldrOFhFYlhIbDFSL1dMbWlreDAwTGpXMXRhK1BHalF0WnQvL1BGSFZ5dkE1azNDOWZuVkpFbHlOVE0vQTZEbU56LzlDeHo3QXdWdDJyVHhyVm5RTm1CK25tdS8yamtJSHJRdXFhbXBPQndPbkU0dnJaSGI3UXBRR25rOGlnL2t2R0RXQkdwQ2VKTWxGY1ZYVjRvUXd1VjN1cTFiOTc3MCtPUHpsanp5eU1QcWlJaUllN2hvcFlibEM1ZFIzWXFDYmNuc3k2Z0JQUW5MLzBqVXNZd2ROK0lYTzFmcTZ1cGVlK0NCQnpaLzhjVVh6ZlBVbWtETkd3SDFhMm9lZk13ZC9naG84d1JjYndUVW42c1d1c0pVV2xwSFVsTlR6KytRbk9zTGR1blN4Y2ZaNWd5a2YvZ0w1UDJhbTI4VFFnaWYxa1pBbFZNVTRXY0NrZncrdHpsejV0VEV4NXVYM0gzMzNYSkVSTVRkRitmYlkrTFdTWlBESUJLV2N6cFg2dXJxWHYvclgyY1Z2UDc2c29ZZ1RhMGhlUE9ER2tHVkJiSXN0UllCRGZqVnZJU1JocUFhMElSQVdrZVhMbDNPLzdmbW5Ldnpra1NYTGwxb2JHejA4Ylc1L0Z4dEFjMnRLWkZPQklHYlFBaWgrSWhBUWt4VVNaSjQ0SUVweDdSYTdaSTc3cmlEaXhmY3doS1djeWQxZFhXdlAvYllZL25QUHZ0c1BhR0Jnb0EvelFkcUlmbHFYaE5VYmhFQjlTL0UwcHd3MHB1cjFwYlUxQTUwNmRMbHZBUUx6anV3QVVSR1J0SzVjK2NnV2lPdjF0YmthL09hcEQ2ejFBOXV3cWVsK1NPbHdlQW1TUkxTUGZmY2U3U3hzWEh4M1hmZnJlaDB1bnZDVXpNc1lUbHJVSHZ0cjMrZFZYQVNVR3VRcE5CVnBvS1h6Z3VPZ0RacGFrMEp1REV4eG9CZnpaK3Ixcmx6WnlJakl5L0kvWjJ6NEVGcjRLYlQ2UUxnNXZINHdTM0ExZWJYMnZ5YkQ4YkZpWFJCQWJCaHcwYVhKRWw3K3ZUSmRXczBtak1PS1B3dmdnZGhDY3ZQU1dwcmExK2VQSGx5d2VMRkw5cFBwS25SU21WQkU2akp3ci9BY1dnRU5LckZlZ1YrbjlxbGwxNksyV3krWVBkNEZqRjNENThXN21YTzZueit1TEtBVjc3OEljQkQxVmhmdy9LUFBtWEd2emZ4bDNlM1U2eEVjY2tsbDlDaFF3b0o1amdhRkluRDlZM1VDSzF2ZFhsOThPcnlRcVBSb0ZLcGhUK0QyUjkxb1luRHJSRndQUGJZWTdVMzN6enFCYnZkL3ZTRm5oUUg5K3lrMm5HdXJ1WmszNjdkMkU0NzQ2YWNrVG0vNGNCWkVIOVpLNG9wT2dQMmgyMnZQc0s5VDY3NTJiK2tJM09ncUpYbnNXOFhaL0JjVDBmY3pMdHJORnRLN0QvcHVaNUtLa3VMS0trOFM3STc5d0dHWk45TTJVa09PWDc4K0F2WFhETW9QOGluMWtKVG95VU5VWEJodTQrR0tOU25GaG1wOXlYZ2Vxc0s0dVBOV0N4dDZkQWhoVXN1dWVTOHBYV2NPMkJUNmxpenE1d3VxUjI0SWFNZG03ZmtNMnRyQ1FBL0ZKZndkYjNNMWQwN2t4MHJlT0NGVlJ3MnRDVTlQWjFvblliOURSTDFIc0VSUllQUmFNUmdhRVpTNlFNM3Rkb1BibDV5eW1ZRWxZMkFZOE9HRGZWUlVZYVhiRGJiNDc2QnVTQXllK3pWRkpTY0sxN01TaVlPdllraSsra0RZV2xKTWM2emVHRS9XL1U0MHhlc08rM2piVFZIcWFpeS9leUJiZnhVU0dobEZrOGN5aGs4MTlNWXFSMUxXVkdSUnY5VS9VOTZycWVTdGZQL3dMelZoV2Y5b1N3cExqMVJ1WnpqNk5Hano4WEd4bTBKaW42ZURxaDVKRW55K0lNRkxjM1BVTEpJZjFXQm40SW9QVDM5SnpIaFhqZ2ZtMnppOGZIWEJ2NXNZei9LZmJ0L2dQNnBkTzdlazhlNysvZWtzbXZ2ZnJaK1g4MUQyWjF3dVFZU2s5Q085emV1cDZEY2dja2srY3pTUU5vSFByOWF3TmZtZHVNckpjVVQ3SFB6cFlRQUVCMXRYSGI4ZUxYZFpESk40VHpXbHBidVhNZmlOWjlTV09IRS9zeWo3RGJMNUk2NG0yRTUzakxwZlZ0WHMyVDUrMWpsTm95NWR5cURzcnc1T29xOWdrWFB6R2RIMFdGaWt6c3k3dDVwWktjWTJaMi9qRlZidnFERVZzT2lPWC9Gb3BVWk91NFA1SFUrZFFMdDd2eWx6RisxbVlTTXE1ZytiVHdtTmJpdFpTeGU5REs3aTc1SDBjY3hlc0lVQm1lbmdMT2NwK1krejg0ZHV6aGdyV1Rtek8vUUpmZGk1cjBqQWk5RC9zckZyTnI0QlJqYU1tckNKQWIxOVBYZFdjMlN1WSt3N2VBeGhrMzRJNlA2K2twZjNGWldMSnpQcHAzZmt0RDVjcVpPbXhRbzZONjNiVFdMbHI2UERTMFpBMjVpMnEyRE9SK3B1UHUyd3ZKTjNobmNPK1Rad0tvdFVHS0RSWFBBb29XaDR5RFAxL1h0NjJEWkduQWJZT0kweVBGWHVUdmdtUVV3WkRBc1hnQjJBMHlmQmVtKzRYaDE4UXNNSC90QzA3MmM0cm5hcXc2d1lQNGk5cFRVa2pub3Qwd2ROeVJRY3JWajNXSmVYZjFmbkZvamVjTnY0NjZodlZHcTlqSG4vN2QzN3VGUmxIZjcvOHpzSVp2TlpyTXNJUWtoaVRGZ2lDSEVpQmdSSXlJaUlsSkVSS1NJaUpRaVdxcldvclZLS1M4dlB6elVJcVVVclZJOElaNFFFUkVwSXFVVUVSQVJNVWFNTWNRUVlnZ2hoR1d6MmV6T3p2UDdZL1l3dXptQWVLSytQdGMxMTU1blptZWV1ZWYrbnU3dndoZll0YldDdXJLL002dm1uNlFWWHNhTWNZTlB3TkpjTEYvNENCdEx2MkxJMkl1amtheWhnb1VMRjFOV2Zhd2hQam45cVNjZWZXQTMwYldmTFRIbVo3dWdwbXR3SEFWcWtVQkJBb21KMGFDbVZSWDArdlpraUw1ellJc1puOVkza0p0K1Z0c1AvTWVwT0tJeUtUVUpnTHk4UEJSRm9WdEtOK0piV2toT1J1ZHJDeTFoOEFxREcwQWcwQ200aVM1ZG5Lc09IYXByN3RhdDIyM2ZsU3FJUFNPUDRjTnRiSC94RVlwS0xtTkl0cG0wRE0xUFY3NWhFU1B1ZkkwRmkvNlhaRjhsTThaY3hkSnQ3MU9jWW1icGZUZXl6bmNGODJhT283NXlEdzBOYnNpeWs5NnJIOE10RnRZc2VaSGlJVmVRYjRPczVKTklvRldxV1BaeU9RL2Uva3RXekwrRHlYTXNySjQzSGw5OUpZMldiQ2JmTmdwZi9XNXVHMzBaUzNkK3lzQVVPNE9HWG9IczJrMWxiUitHRDc4QzJSYXBYWHh4OWczTTIyWm53Wnhic1hwcUtOMVhIZ2EyTFM4L3g4Z2xEekVoZXhzVHh0NU1jZlc3WkprVkhweHlCWnZOVnpEN3pqc29YZmtvSXlZM3N1dmwyVkMzbFJIai80Y0Z6LzZkYkx1UGJYczB3Y3ZPZ0czYnFzZlpzUGRRek0yeks3ZmRONE9VVG1ablNqWU1Id3BUUjhQWWV5RXQrTjMwWGpEY0FtdVdRUEVRZ3NjMWFGNHZnNmxQd01KSGdGb1lQd3cyN1lFc1N4RFk1c0c2N1RCMU10QUlqUzdBQWREQSt2V1YzRGV2VUhmbGRISmNQZFdNSFh3RitWTWY0dlpSYVN5Yit4dG1laXdzbWo2WXh0MHJHRDN6RlpZdmV3aUgyc0R1YXMyTWxhMHBEQjErQmQ3eURjaFpGekI4ZUJIVzVCTTNDVjQ1N3hjczNKdkJvdnQreWJwRjkxS2hvMnR6cHY2TStuTm5mWEg5OWJiblI0NjhKbFQ3R1p1bkZscGFPd0sxVUZWQlorYW5CbXBkU1V0TEpUTXprMTY5ZXBLWGwvZURNZmx2Qkd6Vit6L2hzVThDUERuajdGaDdsV2ZXYkNUdTdBRmMyU011L0c2ZlBuMUlUMDhub2JtWjFGUTZDaUlFdnkwRWhLT2xIWUliYUlDWW1wcTJmdi8rL2E2c3JNeGJaRmsrLzlzK1VJNjBYcFNrOVNMTlppUy8veUJLOGlLSGJ1bkN2ekJ4MXF1TUtNa0Qrak4xNkZPc1dMdUw0aWtEYVd4b3dKcVZRazV1QVVXRlJib0xNNStVYkR0MnM0VitKU1gwUDlrS0d0bkt6TGx6S000MlVqajN0NlNNZWc3WHZQSFlldzFpNXFROGR1N1pqVnROSVQvZHpjN2R0UXdja1VYL2toS2E5cVNUYk02bHBLUkVCNUxWTEZ5OGxRVjd2bVJZbGhrb1J2Y3BCU052Wk5xb0lVQXhBMmY5bWIyMWtHWFp5c0oxQ3Bzcjd5WGJEUDN1K3dOUDlQb1pwWjdaNUxzYmFGS3NwR1JrMFM4M25YNzlUL3gzTEE0bmFXbHRiaU1ZVDBEemtyT2dKQXRzeHJhQWw1SU5kalAwS3lIcXVDNTZCTzU2QWdZSDkydjAwN0I2Szl3K05QZ0ZEOXk3Q0lha3gyeXNxWkpLVndiWitpSmIyZGJoY1MxYit5eGxHZGV3Y3Zvb1pHRHV2YmVTZjgrTExKbytHRzlESTZyRlJscEdOZ1ZaL1FnZkltc3lKU1VsN0Z2dHBLbFhVZlI1NnRoaHdQSVZHNW01NmlBREM2d1V6NzJISmF2L0VQR25IV3I4b0xYVi9jcklrVGZ1cDIzdHA2NUVpbGFKamtITllEQUlrOG1JMld6U2dWcHNVWHVvWENvelhDNzFRNDVUQnJZalgxVnh5eXNmTWZlbTBlUW02R2VoWU1PbWpieDZQSm5sTnhaRzNhMGxTU0k3TzV2RTR5NHlNOUNab21xVU9ScGFqOGJnb0RQbUJoSWFlUlBpekRQUDNQYmhoN3ViK3ZidE85VmdNQXovdmc1aWRYVXRaWXQveDY1blEvL1d3dENoMnZQcGMvL09mYlArbDM2NTkyUEpLR0xSc3FjWWt2Y05va055Q3VsQmVtSkp5OERhVkU4ajBMVDFhWVpPZnBUaFk2NG14VzZtd2EzZzlaMGd5dUN1cFVaTkl5ZXIvUktlWkljelBFM01aZ1ZGQVc5ZERZM2VHdTRjZDAza2UwWG5vSHJCMkdza3o4N2F6YXhKVjFCZTQyWDQxUHQ1Zk03a1RuWFhiSTRVMHRKaXZpSGJ2NU04cE9wYVdEb0xWdW1JY1QvOWhoeVFtOTZ1WXhsRi9qcmIrUkpYNlhiR2pQNDAvRjV4M2tXb1FQclF5VHc0cG9LcEl5K2syaVV6K2Q1SG1ULzlWS2RxRTNYMUZqS1NOYitmTVMwTlozQS8vWDcveG9zbjNyN214aG0zSHRLWm4zcFFDeGUxUzdSUjZvZ0JOUk1tVTNzTldFS3kzbTFCN2Z2SVZmdldnZTM0a1lQOFl2bFdab3kvbWt2U29wMnA3NzczSC83eXVjelROMStNdlozQ09ZUFJnQ09ySnozUEZLaHFJSWF0aFlBczVHOExtNlFkZ1ZzSURVWElORDMzM0g2ZnJGcjE2cCt1dXVxcXcyYXorY1p2UGRvaXk2Z3hZdmxaV1JrVVRmOGI5NDVxYXdVN2NvcFpzdUlOUUdINXJKOHphOEZ5dGoxeFp5UjJJNnR0dFBjN0Q5N1VVMU9yVUpSanhGdFhnOGVaUVRMd3hMTEhHRFByS1I2YzNBL3dVYm5tejdFNzNtYS9zYVdUSWRkUldlMmpWOWJKMVNlYTB6Sncybko1ZXUxYllmTlBQNTFHelpqTHFCbHpjZFh0Wm5EaDVXeWVPcGxoblpRRVZ1N1p3dHB0QjJKV2swcnhpQ0hZdjRselRtN2IweUFySGNZc2h2RUZYek9VNXNnbXgxSkhUUVAwU3VHRXh6VXIvUXhTQnFTeWZ1VzhkclpoWThyc2hVeVp2WkQ2MGxVVURmdzlVNllPcDVkUlA3OU9OampsSUQzRlMwMkRCOUtzS0hWMU5LclE0dkc4OU5qU2Y3eDl4eDEvY0hVQ2FsNmRXYXFQZnJZQnRVaGhlN3hPcWNPdTYxV1FHaXhzejZGUG56NllUS1lmUEtqMDlZSE5mNXdaLzNnVFMwWnZHZy91NTdtRFlJaDNNS0VvaS8zbGU3ajFyYys1NGRMK3JQOUFpK3ljZGNhWkRFaFBSUFUwc2VLamFqNnBidUtJVDJWdk55ZjJ0RFBJVUtOOWJEcFFDejBYSWF2VDc5ZHkyYlJFWHdJUmJBc3pRaUdFRUdQR1hIc3dMeTl2d2Z2djc2eTMyV3gzOEMwbUl1Zm45Mkw1b2dWWVJoYlFxM0FnK1ZsT3B0NzVLNGJmOVV0eXpQOURybE5tNTZiMTVJeTZoNkg1ZGxZKy9pQmtEeVEzemN5dWZWWDA2bitUM25BaVAwZmg4UVZQVU44L2cvd0JROGc1a1o5TjliSmd6aXhTYmgvRml2bC9adGpFMzJFRHNyS3plWEh0OCt3cWtpbGI5d1RyeWhYMEtsZTV1WDNZdmVRbFhoeVFqQ010aCtFREM4Q1l4WjB6U3JocnlxMHNtUE1yck40YTlqWGFtRHF1NDE0RWNsb0pkdzcxTVhuNkhHWk5Id1dOTmF6ZFhzWGMyYmZqSzkvTW92WFZEQ2twd2xPOWxRWnpEdG5PenYvTzhDbXpHWDRLdXBHN3QwS2pGMXcrMkw0Skdxd3djSEJFRlRnL0J4NWZBUFg5SVg4QTVDVEQ3VE5oNmpTd3pkZUNDbHZXdytEYm9kOEpDWFFhdzRhbXNHMTdPWU5IUld1SHRYZGM4MGRPSW1mdXBkeTFJSThKUS9LcEw5OURxVHVOZTZhTW9HcnJhbGFWK3hqY0w1ZmEzYnVRczdKSjFzM092RjVuOCtDS2Y3QXF3MDF5Umg2RCtuWG1Ncll4Y2VKdzVzKytuNno3ZnM2YVJZOG94eFhseVV0emUvL25VTnNlQlhwQTgwcVMxQ3FFYUNmNVZoOG9NSWFZbW9pUEQ1bWZOaDFUMDBBdDFLdWdUNTgrV0N5bmgzemkxMC9RVmYwYzlSbElUVERoOVN0NC9RcXRzcG5pRENmSG0xdXcybXlZUkNEOFdWSVhKemxKRmtTcm15MzdEMk5MNnNMWlRpdCtJWkdYbTR2VEtGQVVCVldObEZ1cHFnaWJvanF5Um9pOUNkSGgzZ2xKa2dRZ0dob2ExQWNlZUtEc3R0dHVyYkphclQwbFNYTENOMC9RTFI1eUZVcmRQajZ0cUNLK1J4OXkwNVBvMm5NQVZ4WTVXZlBxcTJ4K3Z3eHJabCtHWG53ZWlYRXlub1pLTnF6L0p4czM3eVNyWkRKemZqMmFPRGxDRVM0WmNTVU41WHY0Zkg4MXFiMzZrOW4xQkJORFRtWFVzRE40L3BtVk9NLzlPUS9kTTU0NEdmSXZ1QlJSdFlOWDMvZ1hDZjNHTVgxMEVUMzdGSk9WckdWNkorV2N4NEFzaWQwZmZVcWR4OHpGNTJtTzNZSkxSNU5ycWVPMVYxL240Mm9YRncrOWd1eFU3ZGc0TTNwVGtKTWEzdGMreFJlVEhDOVRNbW9jbHJvUFdiVnFIWjhlT0VhL1M0WnlUcThlR0NTRkQ3ZjlpdzNyLzBuWlZ4Si9XUEFvNS9WSS9FNG03dHN2dzBjVjBQZENjQitFNmhvNGQxQUUyQzRaQVEzbDhQbCtTTzBGbVYwaDYxd1kwQjFXdlFvN1BvSzBQakQ0ZkxBWUlyZjVBUU1ocnAzdFpYZnhNK2ZwWFV3YmUwblUrKzBlVjFNUzE0Njdpcy9mWGMvYXR6WlIzeHJIa0tIRE9DUFZqb3lYN1p2ZjVxMzE3L0JsU3pjZS9zc0RuSmtVT2VlWjU1WndWdHd4UGl3cngyMTBjbjUrZHFmSDRleUxobUUvOUFFdnJYdTNNbWZ3MVkrdFgvblkrODNIajNlazBLRlA1L0FGQVMwcStUWTIraGxxdmhJZnI1bWZpWW4yb0FTUkpoU3BCUXA2VVZCUWdNMW00M1FaMzVvZTI2bU9ZOGVPVVZwYVNrWEZGeHc0Y0lDNnVqcU9IR21JMFhGckNSYld0K0x6K1NSL1VNdE5WVlZKVmRXUW5wc0JNS0RwdVptRUVIRm9jOVJTVnZaSlVXNXU3aFNEd1hEcEQ2SEg5dFA0TVF3UGQ0NitrbEVMMzJKSXR2VzAyak5GVWY2OWZmdjJOUjAwTSs2Z1Q0SHdDMEZBbHVXQVB2bTIvVHkxV0YyMVVFcUhGdjBzS0NnZ0tTbnB0RG9teGg5NkI1S1NrdWpUcDQvTzlOU2JsbEZFVFUvZkpOQjZKMmltYWRqSklVSit0NkJacWdKcWZuNmYzYzgvLzN6dG1ESFhWQUUzbjg2WFQvbXVUZXl0YW16bkV6dkR4ZzdqcDBLd0gycFlXYmo2MzkvN1ZuME5GYXpadktmZHozS0xoNUxqTkQ3LytPT1BiN3I3N251T0U1M09FV3QrNnR2aytTVkpEa2dTcXI1TXFyMktnbENlV3F6NXFSZUxQTjFBN2JRQU5nQ0h3MEdmUHZrNlVKTjBqMUlZNENSSkNpMUNraVJKODdrcFFVQlRVVlVoOVBsdElaOGJJRzY0NFlaYTRLK2ZmYmF2eW1wTm1BNTBQeDB2bjR5OEl1d1o3VVF6WlNPMm45RGwvOXd3MmpNWVZHS2pIYnZxSzdmSHRUd3hNVHNrNDYxUDU5Q2JvTzMxL2d3QUFhMnlSMWJiTDJqWGZHb2g4ek1VL2RTWVdnalU4ci9WemxJL09tQUQ2TktsU3pEM0pRSm1Hb2lGbUpzVWZoM0wzQUJKVlNVVlZDa0VhbnJtQnFoQjlpWjY5ODVidlduVHBxcnUzZE51TWhnTVEwNjNFMksxT2JIK2hHQS9qZEQ5ekd3aEpTYlJUMUdVelR0MjdIaWpwT1RpR2pydnpxNnZKR2l2OFVxb3FYR2Jpb0pJOG0xSGdZSjh1blRwY3RvZXQrOU0zZU5VUm54OFBIYTdQYXpmRmdva2hMSTZPZ2dhZEpZd0U3WnRRd0FIaUdlZWVlYXcxV3JkMGE5ZlA4K3BLSVQ4Tkg0YVA5UTRkdXpZMHZ2dXUvLzFXMjY1NVlqTzlEeFJ6V2RVTWJ0T2VpZ21uY09pNjlJZUt6Mms5Nm4xT2ExQkRVNkQ0RUVISjQ5UFBpbmppeSsrb0tibUFIVjFoemh5NUFoTlRVMjRYQzZhbTV2eGVEenRCQlQ4S0VvZ0ZGQ0lEU29ZMFlJS1pvSkJCU0R1d0lIcWkzdjA2REZaa3FSemY3cHNmaHFuNjFCVmRjOW5uMzIyS2orL1QzbVFwY1g2MC9RbWFKVHBpU2JqSFdKcUl0TFEyRVRIUGpXOStSbk4xRTVIbjlxM3h0aWFYQzRPdWYzWUxHWmtQV2NLS05RMkhzTWpETmpNMFJtNnJTMHRIR3hxSmk0dURwUGNNZEd5V0N3NEhJNXdUOUxvNmdUQ3ZyaVk1R2FwSS9JV1NnSFJtNmFoMTQ4Kyt1akJnb0tDblRrNU9YNmowZmk5ZzV1cnVwUjNQcTduckt5VWsvK1J0NTVWYTNiUTgrd3p2M0h6a05OcFZPM2R5dnAzdGxEWFlpR25SOWZ2ZndkTzhiaHVYZnNpY2xvQjlyanZacmZjYnZmelR6NjU5T1dSSTBjZXBQMTZUMzBxaDFmcXVPZW5ydTdUSEdacVF2Rmh0am13MnhKSVRJdzBYd2xKRDRWVU9nb0tDazZZSnJWM3l6b0NYWHVTYUpaQWJlVEZKNTloNi91N3FQZlpPQ3Z6KzlOaisvbytOdFhOci8reWt0MStNNmx4QVdyOThUdzY2U291VEltbjV2T1B1ZTdGSFRnZGRqeXU0M1R2MVplL1gxZE1vZ3hQclZyRmtyTGpaRHJpT0hEVXl5MWpSakMxVDhjWGMySmlJbjM3OWtXV1pXVFpFSHlNTEpLa2Y0d0VGQ1JKd3UvM2kyQ0ZnaEJDb0twcVZDQWhxUEdtQ2swNkpIRGRkZU5xZ0wvVjFCelltNTZlZnBNa1NkOXFaNVQxUzJkUmtUNmVHU1BhcHJ6WDc5M0l3ZzFHUnBRVW5Qd0tQVlhNZjNBcGc4Y013ZmxmQkZ4NzFpeGtWV01CY3ljUGJmTlozYlluR0RUbE9hWlAvaGx5aXVjNzI0ZmE3Uzh6ZDdQQzQvZE8rSmFPcThxS0JYOWtWTUY0TXI3bGtMV3FxaDk5L3ZubnEvTHl6djVNeDlKaU83TjN4TklVU1pJQ1FxaXFFQWpaYUZJTkJnT1JFcWxJbmxyZG9hOHdkYzBpTVRFeHFxQTlVaWFsVlJRa0pDUjBmbCtvM3N6a1dTK3daY3VJa0ljUW04M0czZzFQc2JiQ3dvaUJlYWN4c01rbWJoazdtb0pNTFJxeWF0MGJ6TjM0TVc5TktNYnFUT2ZWMzk1RXV0V0U2bk16YWNGenZGU2V4OVE4T3hkZWNCRTNqRTdGTEVQTnZnOFl0bklyMS9RWlEyZjM1WVNFQkFvTEM5Rk9pSXpCMEI3SVNVRmdrd21LVTZKRlRQM0JvRUs0SVROaHBOTVlteXBKVWlpb29BS0JqSXpNelU4OXRleVRjZVBHamJWYXJkUGF2WHMyMVZQdlVzbktTb3M2ZUNyZ2RUWFE0SmJKU285Y0ZxcWlVRjMyQWFXK0lTaUtnaXdia2VYd3hDVjcrQXpXanpTMnVWamNqZlg0ekU3c3NvYzZ0MHhHaWozOG1XTHZ4ODd0eTl0VUFDbEtkQ21PYkRSR3ZxUDZxS211d1pLY1RyTE5FcnM1a0ZYcXFxc3dPdEpKdG4vNzJlT3FxbEJYOVFtN2ErenRIQWVGbmR2ZW85L1lXN2huNW5oazQ4bE5TOFhyb3JxMmtiU01tRDZsS3FpS20rcmFKdEt6TThLMXFxcXE0cTZ0WU10dWIzQWZ0RGwwd3VQcWRkSGdoalNubVpyYUp0SXowc0xmVVJTVlJScy9iVk8wcnlwS1ZDUlQvMzhCbXVxcWNjdjJObjFlUTJvb0IvZVhQLzIzZjZ6WThzRC9tK3NtRWlEUWwwZnB6ZEQyVEU5VmtpUlZWVFhyUktnaXVwbXgyWXdzeThSWnJKaGtpRSt3NFhBNHRNVnV3MktPSXkwOWc5emNzNElWQldadER0VTJrcDZSUmtOTk5iYTBMS3k2VS9Yc3dnY1lNdmwvSXRGNzJjSElDUk94Tkw3TDNxb083dEZOOWRTNUZMS3kwcU91SjhYcnBxYTJIa2RLT283WStSbzhTbzIxMWZnc3pxZ2VyS3JQUTNWdHc2bEVSZU1veUl4dzdpeG5FdDVEZmdDY1hTTXdKWnNUeUxBYmFmRnBGMXRlajRpQ1pvclRqcXo0YVQyUnBrM1FMSTJBbXlFRzVDS3NMY0xncEJEQVNaSWtpZERGSGdRNGdTNWkyZzU3VTI2K2VVcmc1cHVuUEZsZS90a0hPVGs1RXd3R3d5V2hnL24wZlQ5bnp1cEs4dE5rS3R6cHJGNzNFdm5KWmxZL2NpT3pWaDdBYmpRZ2U2b3hGOTNDdW1Vek1WZHZZZmlVLzZWbTMyNmFiSGRUc2NwSjl1QWJXVHByRXVCbDlxUlJiTno3R2U3Q1d5bGRIbXhWN3Q1RGJ0YlBLQ2pKWS92ZVJnYjBTMlBmN3IzTVcvMHhZNG9jckh4NEJvK3YyY0cyS2lmVk5XOFRKdmMxV3hnKy92Nmc0cWFQMHAyN1diVDlLSlA2MmFndjI4Q1k4Yi9DbkpGUFUwVVpRMlkreGlQVE5OYWtsTDZJWS94elRNazl4dFlhZ2FkUlljV3VIZlQ3TnFQNDNuSW1qZm9WWmRXbFZMbTNNWHozQzFoeUwyZnRrbnZBVmNyNHNiK2h2THlVR25VWHc3Yy9ROUhvTzNoa3hzZ1Rzcjh4TS81R2ZtRU9lMHRyZWVURk54azNJSXVtN1V2Sm1mQVlSU2xXTEZhRmZlNTBObXg4aFY3Mkp1NFpmejFiOTFWUVZhY3lmUGg3NER5SGwxOStCQ2QwZUZ3bkQraE9WZklBcW5mdkpHL0FoYmdxUDZKbzJ0OVpmTnNReWpjczViYUhuMmZ2OXUwczJkUEMySEQxazR1N3h2Mk1YZlVhdEZYdjI4M1FXYSt3N000UnFLNUtwbzI5anQwZUp3NWZQUlQ4bkxYTDdnMVdUTlJ4Y1dyLy81d3hyT2pORjVhdnErcUFwZW5OVUY4UTBIeDZsaGE2YVV0YXVFM0VtUXlpVlZFSjlmMDBHK0dyMm9Pb0JoUHlWNGVRVkxBbUp0RzFxNU5Ebi95SDF5czlaR2VrOFB3enk3bmwwWmM1N3p3THkrKzlodm1ibXJHN1A4V1ljUjQyNVN2cWs2OWs5OHR6Z3BkSFBTKytYTWJzZTA4MkZ1ZmxpYWN4dkRnQUFDQUFTVVJCVkh0djRwRjFWZVNtbUtsMEpiTnEvU3ZrT1kxc2ZmbytKai84TmdXNTZWU1hsVEx3dHIrdytNN2dmR2phUlhiZXJZd2RuY3FHWFVkUVhJM01XL01SK2FXUE1QemhMUlE1QkUxTnRlZzZScDNDNGp2T3JRdi93WkpQRHJmNXJIWi9LUmZPZjRVRDN0amZCWGg2NVVvbXYvbngxOXFXcWdiNCtPTzl2UGJhYXl4YTlCZnV1Ky8zL1BLWHYrUzY2OFl5Yk5nd0xycG9JRVZGUmVUbDlTWTdPNXZ1M2J1VG5Kd3NKU1VsU1FrSlZpa3VMazQybVV3R2c4RmdsR1haSk10eW5DUkpWa21TRWlWSjZpSkpVZ3FRQWVRQVp3TkZ2WHIxR3REWWVPVC9DYUhXTkgrNlNuVHRmcUhZMzZ3SUlWVHh0MTlkS241Mi83TkNDRlc4OXFjYlJMY0xKb3ZqQVZVSWY0TzQrdXl1NHFrZERVSUlWUWloaWlkL2U0VzQ1YkV0NGRmNjVkTlhab3MrTjh5UHZIZDh0emlyeDZYaXNGREV6ZWNsaVgrODN5aGVlK0FHOGF2SE5rVytjM2lMNk5Iak1uRzRuZlVKb1lwM0h2dTFPUGZxZTdUOUVXNXg4L2s5eEVOdmxnb2hWQkU0VmlyT3l6eGJmSEJNKzY3LzR4WENZT2dpbm5xM1d2dTkzeU5hL08ydlZ3aFZ2UC84YkpHYW1ocXpkQmRQL3J1Mnc5K0VscmYvK2d0eDFlK1d0ZnZaRzMrNlNWejd4eFVuWEljUXFoQ0JPbkZwank3aStRL3FoUkNxK09TVjJhTGJoVk5GcTFERjBmZWVFSWI0czhTT3cxNGhoQ3IrL011THhFMFByUTMvOXZQWDVvcysxODl1ZjczdEhOZWJMa2dWcjN6cUU4Lzg3aXB4NDU5V2l5UHZMaFY5cnB1cis1MVBYTjhuUWJ6eWVmdjcrdFdISzBYdjNpWGk0K0QrUEhYM1ZlTEszeTRUQWFFS0lUemlqc3ZPRW45NXAxcW9hcUNtcnU2akJUTDhIQmdMakFhdUFpNEhCZ0VYQUVYQnVaa0RaRWlTbEJLY3U0bVNKRmxsV1k2VFpkbGtNQmlNSnBQSllKUWxHY2tnSmRrVEpBa2taMnAzc3JPelNYUEVZYktuY3RGRkE3bDg4UG1ZSkNpNWVoTDMzZmQ3SG5yb0lWNTc3VFUrL25ndnJyS1ZkT3Q5TGMxQzVibmZYYzJ2SDl2TWwyODhUT1pWZHlJQzVaeDc1aVVjQ2w2ZmdmM3I2Tkw5TWc2M2MrMisvZGRidU9xM3k2TGUrK0xOaDhtODhBYU8rclhYci8rLzYvblovU3NRUXVYNHNTWUNvZlVlM1U3UHJ1ZnlSZkI3NHVoT3pqQ1orTU1MdTRMcjh0TFNxdkRwSzNPSlAvTUtEcldxQ09INkJubHNxcCsvdmZvV1NxOEx1Q1UvMnFCc2J2eUtXMS8rZ1B0dnVJYU1HSWZxZXp2L3cvTU5kbDZZOHZYMG1pUkpvcUNnQUtQUmlORm93R0F3aGhtY0xPc2ZvM3h4WWIrYkpDa2g5aVpVVlEwcmh1allXNmkvUWlERTNpb3FLaFNucyt1cXQ5NWE5MzdYUTl0SE93ZGNlbE4yVUNsMjZKRExtUC9FYm1BaUFNV0RCbUdUQWRuSjRJRTU3TnBkeXVUaVFhZDBhR1diSFJzeWRvY2R1ODJPeldiRDdUazVtZTdxcmM4eWZVazU2N2E4b2UyUHE0ek5lenpJbTU3ajNpMGE4L1FwMVpSV3VPblhUNlB3NXB4QmpCOFlsT0F3V3VqTUVPMC9ZUTUxRStiOHNNNjYycjNzOWVRek9GaTluajlrS01iSnY2WmFoV1RBbmorUS9zbWFBVHBrME1Vc1c3c0xHSEdLRzdOaXN4bkJic05oYzJLemUvQ2U1TG53TlpReWJ2ejl6SC94WHhRRTkyZlR4aTM0Y3JPNTc5N1BBQ2gzcXh4NWYvdUtGVisxYnBrNDhjYWpKMkJwb1JwUG55UkpvVFNPZ0M3cUtmVDVhVDdGTDR4eDhaamo0akViUEtMVkQ5YXU4YmdQK2VuYW96dDJleEoyZXlLWjl0MGtkVTJoUjQ4TUVrUWpMeTVkVEhXREIxVngwOVJvSjlTQndXNnpZM1hZY2RvOElOdXc0aWJrRGZVMk5lQ3hPemhab3I5MTg3K3hJdlBnck45ckhMZXlubEx2SG1BOGFsTUY5OTcxSjNhV1ZlRlZmZFM3RzJod1EwNW81Wlo4Sm8zdEYzeGh4aEwwTldUM3Y0QVVNNER0VklFdHdJdHZ2TVYvNURONTZzcjhLR3V5MWQzQXJjOXU1TnFycitLcXJPaE0wNC8zdnM4ZnRydjR4OVFSZEQxRlpaTzh2RHhDemsrajBZakJFQUs2aUptcStlSEN2amdSZkpTQ0VWR2RiellLNEZRZHdJWEFMUUFvVjE0NVlqK3dKUE95WDc2cktNcTFScVB4aXBOeEtuL3pJVWRzOVpOWW5hZDJOK09uL0puRnEvOUZMNGN4dkIrcU9abGhZNjRtSzdpcTBhT3ZKU2MzVXU4b1cyMmNyRmR0NytvRlRKcnpYSnYzNzMzOG40d2ZrTUtQYjhqaGg4alpPQWxaSWFXSjI4ZmZRTW5zcHhoVGxCYTF2Z0ZEcjJaa2dRMUZVZDQrNjZ4ZUc2Wk9IWGRnZVFUUU9nSTF2WTlOMFptZVlYOXhxRStJTEJ1RTBTRHdla0gxdWtWRGF6TUlnYi9GUzBLQ2pUaXpqTWxxbzB1WExqaWREcXhHaWE2cFBlaDVabGZtL2ZJUFhMOXNNOU9IRldDczMweGF3UjlpL20zN2M5Sml0MlAydUhCQjI4Q0wzTjdWb1pKVmRER2pSNGR1L2xjejFaRUJLTnczNldvc2s1NW53eE9ETUZOTmNmSkYwZFBmYXNQU0RuTEpzdkViQkE4UXZQbjIyN3gwUEpsbmYzNGU4YnFkVmp4TjNQSFVlZ1lPR2NhTnZhUC8zdWZsSC9HYlRRZFo4b3VSbkdIOVppcjRQWHYyeEd3MkJ3SE9pTWtVRFhEdE1MY2d3RWxTUkhvOFVxRVFZbTI2d0VKQXg5N0NrK2pBTzA5K1lESTlXVnBUYytDZHQ5L1plRjIvL2xQQ1NyMDd0MnpCclU3R3BqYXllVnNsbzZaR1pLUnRWaHVORGZYZjdmWG5xMmY2dUJzWStlQUxETXZYSFh0N0FVUHlQVlM3bkl3YnJrbnV1QnNhTU5wTzdSemtEWnZLMnY3ajJzeGNaOHFKUS9sV2F5SU5EViszbzVPUGhUT25ZeDB5ZzJramduZnA5QUlLcldWczN0M0FoSDdKbEczYWlGSjRQbGt5ZUFCWDJWWjJOZmdvVGphemFjdC82Ti92OTVGOXNOdHcxZGVnOEYyVzNhZ3N2ZWRHYWdwL3paSUpBNkkrR1RKMElLOStYck5yMHVDU04zdWZsZnRwNk9ZWkEyanRnSnJrbHlRTitJUVFBUUVCT1p4d2l4b0lxQUxKZ05sb0VrYWpFZUZyQnRra3pzaE0xd1FpWlM4ZmYvWVZSbHNpNmFsZCtkenRvVnUzYmppdFhnNDJCUmllY1NiNXVRa2NjWGRsME1BQ2pNRDJkZXVvUDhuN3M1emRqMExmUHNvYW9TUUcyZEtjM2FuY1dCVWxFejlvOENYTW1mOFplZjN2UWJzSEs1cHNQaDZxcXoxTUxTbkdMRVBWcGpYc1BZV21YVi8vM0xZYzRvRk5YK0N5eERGa3ZxWVFhdTZXdzd2VEwyWEhoeCt5c2U0NEg3eStsbis4SG1RSGx3L2ovZ0daL1AydDk2aHRsTGxoNFRQQkZjV3piT1lFK3A1aS85VE16RXdkdUpuUWtnMk5ZVk0xbXNXRmdVNElJYVJnUGFtUXBFQW9WeTRjV05DeHR4REFSYkUzd0orUmtma3YyUmovM3I4L2VYNllFT0k2SUMrRlNvWU51Z3lqcHdaenllK1pNQ0J5ZG9lTnY0VkY0MzVGMGVvSHlCdDJDeS9PbjByZDloY1pPL052ZUJxcXFHcVFLU2w1azRLUmQvRDRqRTcwdDd6N0dEZnNsOVI2WGRUWFZ6T3k1R0xNR1JlejhjWDUxRzk2a2VXNzZpaWNlek12ejlWTzdid1YvMlprdnBVSG4vNEg0OGIvakRVTDhyRDQ2cWwyOTJEanJwVmtuTUp4TjF2dFpGaFBMYStoLzhoSk9CNi9nWUtpRjNBV1hjT1dwMmVkRkxCdFhQa2NqclJSRVdDVDAxaXcrQStNSFhNaEt3cHlLQzJyWmZHS056R2pBWnM5emM2OUl5L0ZhbFVwZDJldzdwR0lRbTM2Z05FTTVSb0tDOC9EbG40QjY5Y3Z3ZG5KY2Uxc3pKOTJCZXZLM095cjlMQjMzRVVzdERwWXNPcE5pdTE3ZVhEUmVzaXJvVi9SMzdUcllPWmYrZU1ORjMwMjlCZXoxdnlxNzZBUGV6OGNVSFJSVEwwaWh5K1dvVW5nRjVvYWh4S2NoMm9FMUNRaHl3aEZFVUpJTW1hemRqMGNiM1lKYzBKeXVBdWMxZXJFWVR5QXF6V080dUtMYUZqM1QxNSt6VVc4MFlTemF6d1pQZlBJN05tTG1WTnlHVFhnUW9veXJNanBtYVNkN1AxUHptRGM2Q3pXYjloRHlmam9iS21DVVZNWXVPd2Fjdkplb1hERXJheFpNSU9jRWJjemE4dk45Qzg4bjRKZTZWUlY3bVBFUFU4eWY5SWdicnR6QWxPSFg4Q3lnalM4MXU3ME9vV2NwdE95OHVEcmpLTkhqMUplWGs1VjFaZlUxdFpTWDE5UFkrTVJtcHFPQldXUFFsVUtMWGk5clhnOEhudytIMEtva3RhaFhpRVFDRWpCL2d1aGFnVXBXTEVnQjhIZkNCaURWUXNtdE1vRk14QjMzMzIvVHp6YlVuSDU2c0ExMXkyL2EyaE9nMWNtSStWMHpDNVRxYXVwQm91VHRPUWZoMGFJNG5WVFU5ZEFTa1lXMW1DK1JkUDJwZVROL0lEYVRYK2lwczVGZWt3YXdROHhoQkQ3RHg4K3ZHYk9uRG03SG52czhWYWRLZWxyeC9RTVBmcURFVTlGdDZoNlgxcXdpb0JnMG0zUWVqR0hHaGxqc1VTNnMydXF0NGs0SEVrNG5WMUpTZWxLdk5uQzJlZWNSMkdmM2xFbFVrMzFOYml4dFVsRk9kRndsYTJoWk1ZR2RtNWFmTkt1RGErN2licEdGMmxwR1ZoMEtUdnV4bm9hUERKWkdjbW4xT1hNK044K3VidDA2VUpoWVNGeGNYSEV4Wm5EZHl3OWc5TXpOeUhVVUljckljdCtTWlpsRkVVUmdVQVVld3NWMThzeDVta0FVSUxtcVIvd3o1Ly9nQTk0cmZjZzhZNzN6dUZEZTNSTHVoYm9lZm9kS1ptMGpPd2ZsZmZMYUxHUm5kMitZb0JzdHBHVlpmdWhBYTN5OE9IRGJ6ejg4TU1mL1BuUEM3dzZnUEozQUdpeGdRRkZIeHdJQXBzSWxVVUY1YnZSUUUzTFR3dFdFMFNCbXMybXFkNG1KWVg2RTJnZDJyT3pzK25kdXpmeDhkRm1reU1sZzFQSjlySG5qMkxoakVacVhTbzVKNm5yYnJFNXlMYTEzWnJObVlMdEcvQ0QvM3JHcHB0RWZQYlpaMVJXN3VmZ3dSb09IVHBFUTBPa3Z0VHRkdVB4ZUhDNWp0SFM0a1VJZ2MvbncrZno0ZmY3SlVWcGw3MUpRZ2c1Q0hDaG1sTkRrTDJaZ3V6TnJGL3V2bnRtNHU5Kzk3dExuVTduMVpJazllR244ZjJ5dUtZYXR1eHpNV1JBL2cvSGpWVzFyTDYrZnYzczJYLzg4TWtubjJ6dEJOQmlGMzhRMU5vRE5EMm9oVmxhRU5SRU1FY052ZVJRQk5UMDFRU3A5T2lSUVU3T21mVHUzZnNIYjdyeVhZMGZEYkNGUmxWVkZaV1ZsZFRVMUZCWFYwZERnNmJHNjNJZDQvaHhOMGVQSHNYajhTQ0VDQmJRdCtMeitmSDcvU0ZsM2lCekMwaXFLcVJnNURSa29vWkNRZ2FkZWRvdXdPWGs1SmkzYnYzUHhhbXBxVmZKc256aFQ1RHo0eCtCUUdEN2dRTTE3MXg4Y1VscFRjMUJKU1l3MEJtbzZRRXQ3RWNMVlE4QVFoL3hiTXZTVEpqTmNlZ1ZiNjFXZmQxbnBKRnhSa1lHT1RrNVpHZG4vNmpQaGZISDlvZXlzN09KajQvSFlva25MaTRPc3prdUhHUXdHazBFQWdGa1dVWUlvVE5UV3pFWURLRTdZWWk5aVVBZ2dDUkpvYnkza0VrcXh3WVhZc3hUSDJDdXJLdzBwNmYzZUFmWVVsNytXVkYyZHZaUWs4azA2cWZMLzhjM1dsdGIxKzdidCsvZG9xSno5K3ZBVE0vU2ZPMkFtcjhEUUF2b1VqakNabWNzU3pNYWpVR1dwb0dheFdMUnlYZ25ZTE1sa3BTVWhOT3BseDNLb21mUEhGSlRVMy8wNThUNFkveFRxYW1wV0szV0lNQlpzRmdpQUJjSUtCZ01CbFJWRFVkUXZWNWpDTnp3K1h4Q2x1WDJmRzhpYUpyR1JrOERCSnRpb0lYaVRYcUFBOHk1dWIxM0FudmVlV2ZqUzhYRkZ3eXkyUkt1Z2xNS1N2NDBUaC9YUjgzeDQ4Zi8rYTkvYmQ0OWV2VG9oZzRBclQxUTgzZkcwRG95TzBNc3JYM1RVKzlQMDRJRVNVa09uRTRuS1NuZDZONjlPMWxaWjlDclYwOFNFeFAvVDV5ZlV6WkZtMXd1anZsbGVuU3hSUmNBQnhScWp4N0hFSjlBYWtKMHI4cVdGZy8xYmgvSmppUVNUTkwzTWZrb0x5L255eSsxaU9taFEvVWNPRkROMGFOTnFHb0F0MXVMbUxhMFJKckZ0TGEyNHZmNzhQbTBoakU2M3h1aDVqRnFRS0FLSVFmYm1ZWk0xSTU4Y0hwVDFRU1lKMHlZWVBuVG54NitJQ1VsWllqUmFPeFF4WGZQNXRWWThvYVJsM2J5elVOcXk2QkNnVUdGUDY2SldyRnJNMnBHTWJuaFk2R2lLRkZsNWhpREUvRkVKY2lxcXVxSzM2TStvYjZtR3AvWjBTWWkyTlJRUTZNYjB0TFQvblhvWU0yN3Yvbk5iejU5L2ZYWC9TY0phUDUyQUMzUUFVTlRRL1hPd1FBQjBTd3Qwcnk0clQ4dG9xUG1kR3BCZ3ZUMGRNNDQ0d3h5YzNPL1UzOWE5ZDZ0dUoyRjVHZWNIaEgzNzAyMmFQbnFWVHkycjVuVVJETzFqYzFNdnZwS3BoZCt0MjBISkVtaWQrL2VKQ1FrQlBONTR2SDcvUmdNUmxRMUVKWGtHNWs4QmxwYmpSZ01QdngrdjlDK0wwdUtFa0JSRktINEF2aFZGVWtTS3RwTk5hd1dFc3gzTXdRbmE0akJHWU9BNWdzQjI0b1ZLMXBYckZqeEwyRHJ4bzF2UDNYKytlZGZrSmlZT0ZTU3BDaGRsL1ZQUDBUeWxBRmZDOWoyYllNVmpUOHVZRk5kNVV5Wit2OVlzZjN0OEhzcjU5M0F4QWZYayt5d2hhZnlJMnMrWW55L1JvcHQ1ekp2MzFHR3Q4ZUpQV1VVcEJWZ0gvY3cyNWZPakFCWHhWYkdqYnVKV21NR2RxVWV1ZkJtdGo1OUQzanJ1V1BDMVordC9zUzNPY25RL05ISG41WWYwWUZTZTREbTd3RFFsQk1BbW1nL09HREFhRFRwcFlhSWl6TVRGMmRweDUrbUtkNTI3WnBNYW1vcUdSazkyUDM2WXR6WExhTDNkeHdrc0NrMWpKbStsbTFySDhSOEdzeVpVMkJzclpRZWFJbVNMWHF5S1pXM0poVFRlT1FJM25oN2xHelI0TkUzTURYUFRrdXJqL2c0N1M4ZjJiK1hpNS8vZ3YvTXVvYnZTMDZ3cWFtSnlzcjlsSmFXVWx0YlN5QVE0T2pSUm80ZDA0SUtzZmx1UVdYZVVOUVVSVkh3Ky8xUzgvRUFmalZBbkRrU1BkVUZHQ1Foa0tGTmtNRVFaSERHR0JZWHRYejg4ZDY4bmoxN1hoZ2ZIejlFVlpSMFZjZENUZ29BVkcyUmpUR01KVWhoM0kzUTVJT010SzhKTEY2b3FvV01iQWlsR25tYW9LNFIwcktJa3E0SjFiNVVWMEZ5QmxoMXMxenhRblVkWkdXM3ZhT3F3YzlTMHFOL0E3QngwVFNXTkE1aDFaenhPbUQ3T1F0ckxtSHI0OU5qMWxSRi8wNkFyWEx0ZzR4ZHNndDMyV0UyVi95YmRDT0FtMG45ZTJLZjloS0xwdzBHb0xTMHJQYk1NOC9ZL05KRDB6Nzh4ZisrVUIzeXFaNEVvT2tYSmNqUUF1MlpuQVNGVDRNMXpURm1wd0dEd1JSc1dteWlJOU16SVNHQlJKc1ZDWWt1S2VuMHpNNElCZ2t5eWM3SzRwRnBBM0ZNZnBPN1JtUkh5MWdCN29aYUdyeG1zak9TMjh5VnhycHFGR3N5S2Zib202cW5xWjY2Smk5cDZSblJVbEg0bUQ2b0Q0TVh2cy80Zmo5OGc1ZnZUYllvQkdxaFkyYzB5SHlmZ1dhSHc4RTU1eFRTMnVyRlpES2hLSDdpNHkzRXhWbUNRUWJORWR2Y2JNSm9iTUZrTXVMMWFpek81L1BoYi9WenBNRWdWRldSQkFxdHJZcVE1QUJtazRxRUpIeCtEZHhDUVFaWkRnY1pBa0pnQUNsWXhTTkN6SzBOeVBYdFc3Z0grQVI0K29JTEx1aDc0TE1QejcvN2hZckJkdzdQU0QrWi96aHRPT3lxZ093SnNIcGU1UDE3eDhBZUdWUTNWSmZDMEZtdytMWVRyKy9wbWJDcUNlcDNBbFl3RnNEV3BmRHdkRmkrQjNKU29MUU01andORTB2QXZRY3l4c0hJWEdod3daNDYyTElMY3UxUXR4c0dqNGFNUXUyZjc5c01XNXNnRzlqK01reStGM29WUVBrK21MOEN4dllQd3lFclZyek82RVVQZnl2ellNM3FOeGc2NFZHOFM2OWw3ZllHcHBVazQ5MjNudFVWV2V5WmZFbXR4K1BaVWxIeHhVZm5uSFBPZmoyNzZnRFEyZ08yMEh1aG9GSWdER2l5ckVwQ3FHcW9JemdJSkVrWVRTWU1zaVM4TFMzSTVnUzZXT1BBM3l3YWpyckl6TTdHYXRGQXpXS0pJeTR1MUpIZFNrS0NqWGpKemVzdnY0RTE3UXppMUdaU2lzZng1SnpCMkJwMk0yNzhQWlR2cWNGWWVSTWJGbGtaTVA1dTVrMGRCa29qc3lkZnk4djdWTEtzSGhwdHhheGQ5VGZTTERCelJDYmJQSDB4bWczVVYrNWw5T3puZUhDeVZzLzU0dHdibVBWeUpZVzlrcW5ZVjg4VFczY3dJSXlKWmthTnVvZ2xMNjlsZkwrSlVjZmNWYmFlQ2ZjOHk3emxLeWh5bkxiQXBoditacGJ0K0lKeGw3Y045bjFWOVNsYmpqbDVXVmN6dXYyRDkxbjAvbjRxajdReWI4TFB2bmYxVjRQQlFNK2VQWW1McytEenRXSzFKZ1M3WE1jQ25KbVdGaTJLMnRyYXFvR2IwY2NaMlVhTzF2bUZLK0NuUzZJV1BRMEVBcUxGRndCSnhXeFNoYXFxa3FJZ0NSQ1NGSTZpQmdDREpLR0FaQWhPZkdQUVREVzJBM1RHSFR0MjdBTDIvT2JLcktjdTIvdFI3NXljbkNLcjFYcGhaN2x4U3pmQTJvV3d0SjF5VEZzQnJKd0xUZHNoZXhvc3ZPM2tUdjcyUGJCM082Ulp3UnZzQ2pqOVliZ242RXFwV2crRDU4TEVEY0U3ZWgzY3N4TUtIWERQY0ZpNUVlNGJBdy9mQzJNZmhIa1RvR29EOU5vWXZNazF3TVRiNGRuZE1EQWQ2clpDOFYwd2VrdHcvM3dWN0N5MWMzdEIyeXVpZE0xZkdGcnhxamFSMHk1ZzlmSjVuV2U4cTNXc1hsZkY3SG45OGRSZXl1TnIxekYxNE1TeThnLzM3ZkIwY1pUMWpEUG9tWm1xWTFtZEFacWlZMmVLSHN3a0NUWFlsRmhvaWd1U2tHUkpHTU9SVG9sV2I2dFFoWUY0czRuNE9CT05UY2RGZ0hpT0hXc2hMYXNuU2JiNHNEOHQwajNLaXMybXFkMGUrYlNVaEw0amVmaXVjZlRva1U1NmVqcFpXVm1RbTh2R2plT1pOZlpzSEpPZlorYkk3UEJoMlB6NGJOWjRMMkx2cm5tWVVWazQ3UkllWHI2TkJWTUhhaVJnd0RqV1BUd1pUL1ZHZXZXL20ybmpkNUJqcVdQSjRzMHMyM3VRUVdtQTRzTVhZMHdVRmhheDY4R2RoQlJ2d3JjbVZ4MjdkbjJFMi9mZkVCVTlCZG1pdm5sbjh6L3BaN0IxOXdjc2VtY1BsMDBkVE1JUFFGTlRVbEp3T3J1UW1KaUl6WllRRlVIVkp0RngzRzR6WnJPSGxoYU40WVZNMDJhekQ4bHZ4R0x4aTJCZ1FmSzRGUXltZ0RBYXRSNE5BVVVWSUNSWkRrZFJKUTNraEJ5OFVPVGdoV0FJbXFuaHNxMTJnTTVZV0hqT1IwRW05OUpiYjYzcmZ0NTU1K1U3SEk0aWs4bDBJWEJTblRVR0J2WC9IRmxnYVFRM25GUjIrYkF4R3FnQllYbVl1cjB3WXlHVTEyZ21aTDF1Z3R0eU5WQUR5TXFDVU8vblhidGg5dFBhOCt5QmtCR2NlVlhib05ZSXF4ZkJHa0QxZ2FzVWFvRXNBRmNEalVZSGpuYmNqRG1Ecm1QeG5LREV0OUYyUXQ5TzQvYTFsS1pkZHV6OHJvRWQ5VVhGZTkrWjlOY3ZEQTlOUGhMeWtYYkN6dG9ETmIzQ1JyVHZERlNCcEdxUFFvUjdic2l5TU1nSTdZYW9DSkMwM3BFR0l4YUxSUmlOUnRLTmNQQndBL2JVYkxwM3Rlc0NCQnFvMld6UnFSelpDZWZ6K3FLVlBMc3lnV0hEUnBCYmRHS2h4eTFiL29YWjA1L1o5LzQrNkRid1VHZlpDMmpBTm1TUVpvNWJzd1pTYkM5bGQ1VkNUbDR5UXdZbGM5dTRheGczOGpJR0R4L0ZvTUtzcVBYYW5RNWM5VWZhYk04NVlESjFkWk5QZDFNVVRsVzJLQ0hCeGxrSk5zNjZzb1EzNXE1ZzI1Rkx1THpyRDVQNWJMVmE2ZE9uRDNhN25jVEVSQklTYkZpdFZxeldlSnFhTkFibmRzZGhOamRqTnB2d2VrMTR2YTBjTnhzeDRDYytQdXg3RTdMa0IyTkFNcHMxQnVkcjFSaWNMR3NwSW9HQVFKS0ZoQWdIN0tUZ1hWM1dtSnprMS9uaURERWdwd2M2WTFCQzZRQ3c4Wnh6Q2szTGxqMlZrNU56Wm0rYnpWWm9OQnI3US90OWxjT0tMbCt6OE00U0crUnl3OWl4TUc4ZGpPd0hudDJRTnFXZDdjUnNTemFDVDRuNEl2U2VYWHNHakJrZGVUMW1QSVFGa093TzdJb0xseGRpNlpqVmtVNWUzZ2wxOU4yS29uemdjcmxLRno3K1ZPV1JEN2ZYMk0zTDFSaG1Gb2p4ZzNVRWFIb3cwLzlHMWZ2UGdvMGlWVWxDSUJDeUxLTUdBa0tXRGFoS3F4RElKTm9UTVp1TUhHdHNFQWFUQmw0bWt3bVA1d2l5TE9Ieks5Z1NiY1RIdE1RTDlmbDBPcDEwNjVaQ2V2cUZiTHZtSmo3NzlGTldQZnNnZjMzdEE4cld6Tzg4S2d3VURyaWMwY09DZ2d1anI4YWVrbjFDcUpqejh2dU0zcjZGTFpzMk1ISEkrVHk0N21NbUZFZWtxdHhOTG16TzA2T0QxZmNrVzZUeTFiRVd1aWRwL0t5eHZvNERpcGt1bGgrK25DTXpNeE9Id3hFRU9Gc1k0T0xqajJLeGFPQ21CUlphTUpsYU9CWm53b0NQaEFSanFHS0JoRGdqTHNVdkxIWURpaThndVlXQ3lSd1FKbGtsRUFqZzk2dElraURZVHliVTZGbHZwc3JCQzhRZ1NWSTQ2S0FEdWZiQXp2alJSM3VONTUxM1hpbXdEMWg3eGhsbkdHNGI5WHhXcStHc0hKOHZxYmZKWkNxUUpLblh0M3JBR3FIYUNDVkYyazZ2VzMxUzZtUU1HZ2pyMThDSUdiQjNQZFFvRWZabXF3WTVHNHFEUVkyR0JoMkdtWE1wem0ya3ROeERZZUdKbzhOQ2lBcFZpRStPSHE2cjJGeXg3OHNiYjV4MHFLYW1SbzFoWmUyeHM0NVlXdml6b05LTEVyTU9WUWloVDlVUVdndGNTY2d5QkZTRXdXQkE4ZnVGd1dSQ1ZWb3htT0t4eHNjSmd4UkFVU0UrVG10N0o3eE5mSFZNMEsrNG1PcTlIMURqeXViOE5JY3U0VllmOWRUcVBidDI2VUpxang2Y2ZlNkZETy9uSUcza2MzZzFsNmpHb0MwVzZoc2EwTHlaMmhnODZGTHUyVnBKdjlrVE5aYXJlbWhvaXR4cU5tM1p4TXlSVS9CVWIyT25xNEFGMlViQWg4dXRValJ3S0VVRGg5SlUray9LeW10QkIyeGxaYVVVOVcvTEdOM2xtNWd4ZnhYM0xGcE12djEwQmJaVGtpMUs1Uy9QdmNTN0xSYTZ4Y3Q4ZWFTWmNTTXZvMy9DYVFIdUpDWW1VbEJRUUZKU2tnN2dFckJhRzJscWlzZGljUkVYMTB4Y25KbkdPRE1tNGNWbU05SGFxa1ZOMHpKOXVDdE0xQi8ySTFSRnlHWUZlNElpQlpON2hkY2JRRGFxUWhhcUZFcjAxUVVhUWlBWFpuSEJ2RGcvMGJseGhoaUFhL1A4eXkrL05QenVyeVdmQVJWeEMza0hNRHp5eUo5c2g1b3VUMDkwOWNocWJiV2RhUkttWGlEM1JsTW8rZm9qQzI0ZkNDVURJTWNHeVZrbk40bnVlaGhHajRIOHBaRGJIN0tDZHFPY0RDc1d3YVNCV3ZEQVZRdm0vckR4OFloVGV1eTRLMWk1ZmlNVENrZEZoK2VGK016cjlYNXgvUGp4TDZ1cnF3Lys4NThiRHQxLy8vMHRnRHFoWDdvNEFaaDFCR3F4ejhOTDhQeEVKZElHMndNSmlLUnJJRWxDUXNKb2tJUmYwZEtLZksxZVRPWTRMQ1pWSEdseWM3akJDMExDYUpBd3g4VmpOY1BlZlhYazlSdElhbGM3R1lNdjR1Mk5PL0hrOXlhN1czSlFsY05KdDI3ZHdxVlJtWm1aYkhyaUxpNWUrQjhLOHJLbzNMdUgyKzc3QjNyNEh6dnRONHlkZGdNYkY5c1pQUGwvV0RCakJJT256V1hFenVzb0tMcUkvQ3dIRmVXVnpGajhKdE9IYW1TL2FmdkxEQnI2R2syVnBVeDYrQmx5TEFCMWpDKytGSGRHUG5ZYXFIVG5zbVprWVJSNVdidm0zNHlkTzYvTnVmZldsL1BNTXk4eDhjSHZEOWkrMTFyUlprOHpSN3dLWFJNVFNUREpQd2lJMWRmWDQvUDV5Y2pvMGY0K05qZFRYVjBkVHVnOWNpUlVhK29LeXlDMXRHaSt0OVpXYnhEY3RIcFRqOXVISWhTRXFxV0hoSXJxUTlVTHdScFVnaldvb1VKN1FrQ25lNVNEZ0NmcmxwQ01raUdtQ2ZTSm5odGlmdy9JcTFhOW1weVhsOWN0T2JsYnFzMldrRzR5bWJvYkRJWU1TWkl5MnhwOWJVZEREU2hXU1B1YUVTQkZBV29oYXlpVWwwZnNabFdCbWhxd0o0TWpZa3g3aFJBSFdnL3ZPamh3K0IrL1dySDI2YStVeHZyRFpXVmxSNjYvZnZ4UklocDY0ZlNKRHNDc0k0Ylc0Zk5ROGJudTkvb1VqWENxUnVneDJCMHRxTllzaVpCY3ZXNkpsRU1aWkFRUzFnUWJscmhRbmFjNUdQRU1CUWdTd3Uzd3VuUnhoRmxhS0RpZ2I0WG44N2lvclcvVU9qcFpUejZMek5OVVQ0TkxJUzA5SFhQdzdqUnplQ2JaTTk5bllxR0NZbkdTSEpYdW9kSlFXNHNiTTFucEtkR3BJL3ZXTW5ENk9yWnZYb0wxTkNBclA3b2krRzhLYktGUlYxY1hMS1EvUkVQRFlSb2JHNE1hYnhHbEVJK24vWW9Gdjk4ZnpuM1RWeTRFQW9vVUNLaGhnQXNFMUNDd3FhaHFHTlRRTWJxT1FDNE1VREdxSTUwdGNzeHpPZVo1YUJ2U280OHVzUFh0MjllZWxwWm1UMHBLc2x1dFZydlpiTFlialVhN3dXQ3d5N0pza3lUSkprbFNnaVJKOFVFZ0RBa0FHSFRldFJBdytHcTM0cHY1TE41emU0dVdiYStKNXZRSndyM3dsNm83RUFnY1Z4VEYxZHJhNnZKNFBNZWJtcHBjWDMzMTFmRzllejkyMzMzMzNSNGRlSWtZSUJPZGIrLzA0Z0FBQzh4SlJFRlVnSmtleURwaWFsRkxKMEFXQldaNklBT0VMRXRDNjVJbVlURElPa0NUTVJpTXNaVURSQkp0MjFZUWFNbTJtaUpIWXFJOXpOS1NrN3NGdTdGck9XcmY1UWdCMjR5aFgyODcrN2F0cGNGUlRFbis2U0VQL3hPd2RaYk40dmR6NE1DQnNJQ2xKb04wbEdQSFhPMktXRWFyaGZpQ0FLZTBBM0FSRnFkMXVsZEQ1VnJFTUxqT1FLNWRzTk9WZDhtZGdKcWhIV0NMWGZUYjZXeWhuY2ZZNTlGTzJyYlA5WStkTGJGQUZydDB4TkxhUEE5SnY3Y0hZaWNDczlEem1KNGFVZXlzTGFDRlFDMVN1TjZSR0dSU2toMkhvd3ZKeVYxeHlHNys4MkVsRG1jWERJYm8vdlQ5aDQxblFPNjMyMTE5Mzg3TldIc05KTXRwL3ErK3puOEN0cE1ZeDQ0ZDQrREJnOVRWMVhINGNJaTlSWFRlbXBzOU92TTBVclVRcVRtTkJyaEFJQkJscHFxcUdnVnlRcWlTcW9xd3FVcTQ0Yk9RaEVBUGRGSTdJQlFEVU1LZ1ZVTzB5OUk2QXplcEE0Q1Qyd0cxemdDdU0zQ0xCVFRhQWJIT0dKcmFBVnVMZXEybDJraWRnbGpRWjZick54djJtNFhBTEdocVNraFNOSmpwUUUyRUZHUDBnR1kwUmhoYXFIcWdiVjZhVFZmbkdmR2w5ZWpSZzZTa0pINGEzM2xVOVAvZVNFcEtJaWtwaWE1ZHUxSmIreFgxOVllQ09tOUhneVZaeDRNRjljM2hnbnF2VjErU3BXZHZJUk0xRUtVZW9nbGNCZ2dFVkZSVkZVR1FFNnFxU3FGK00xcS9CcUpZWFBBQ2ptVjBPZ0NTWkVtS0JUd2hCd0d5TTBEckROeStEblA3T3NEMmRjek9kZ0V1Q0VpZEFoalJ6YkxEb0tyM21ZVmVCd0V0aXBscFFDYUgyajZLRUZPTDFIWWF3d3JPRVpZV3FSNndSS1Z3aEZoYUVsMjZkQ0U1T1ptVWxGVFMwN3YvbjVBWCtnbllmdUJSV3ZvSnVibG5rWnFheW9FRE5kVFZmY1hodzRjNWN1UklsSkJseUR6Vks0Ym9hMDQxMzVzR2NvRkFHT0FJQkFKNmlTUkp4K0JFaE1tSjBLT0lNVlhSUjFjamJGeEk3WU5TRk5oRmZhY2RjMWM2QWJCMXhOcGlUVkxSQ2JoMUJuQnFlNjkxb05RWnM0djlUZFMyOUs5alRFMWtXZFlGQS9TQVppQ2t1aEVMYUFaRGhLSHBpOWJiVTdiVnpNNklFR1RYcmwyRExLMDdtWmsvS1ZyOUJHdy93TWpNekNBMU5ZWGEydHF3U205Yjg3UTVHRndJQVp3dnh2L1docjJGQWd4QmtGTTdCRGtkd0JITjVxUllvSXQ2M3M1bmJaWmdIbDBuekV4TDB2b3VmV3hCMW5XeVRLNmpCYjFwR2ZPYTlsaFppSm5wL0dmdGdGbkk3RFIyd3RMMGZqUnpVQk13WGljQ0dXMTJodFJ0MDlQVE1adk5QMTFnUHd5d0JkaXhkeC8vclBpS1k0cE13Vms5dWVIY016QURyYzFOdkxyck0vYldIY05nc1RHeXVKQUx1OGNrd2l2TlBQWHZqem16OTlrTXp2anY5UjJZeldheXM3TkpUVTF0WTU3cW82ZlIvamM5ZytzNGVxb29Db3EvbFpaV0NZdFppZ0k1WGJDaFBaQWowaVlWS2ZaUlZWVWtXUTRKMk1ReU96cGhZcnJYVWtqVzYyVEJyQ1BHRnZXZUNOblpKMlp5ZEFKZ2tkOExJVlJWWURESVVVeE01eTlEbjZJUkMyYWh3SUMrQ2JlZW9YVVc3WXo0MFN4dC9HaWhhR2VzMlJuYlVLVzlVYllic29xZzNaYXc3aW9tVEhtWXhTdVc0TlJkMWJYbGU1QlQ4a2x6ZkR1QTZTbGR4ZUM1dTlqNTh2eHZ2SjRoYzNleC9SVFdjekwvNlJUMDJJNnplbmN0UllYWnBKcFZscjI5a2MrT1g4YURnN0w1c3JLS2o1dGxMdTJiaS92SVFYNzk5NVVzdm1NaUE3cEVOdlBXNXEwc2VlOUxyckwxK0s4R3R0Q0lqNCtuWjg4YzB0SlNxYXVybzc2K1BtaWU2djF2SVlCcmFTT0wxRkgwdExuaENJY2JBK1JrcGVqVFE0VE9ENmNIT1lSUWhSWndVQWtHSHNKQUY3ek9KU0VFa2l3alJjQ09rMkZkTWNCM0lqQTcyWEtTTnFhcGlQdzRDcVJDN0tvanRxY0h4UER6NFA4ekdBemg5Mk1DQUVRZVk4Rk0xalhkMWdPYUlkaVl1Nk5vWjdTc1VFaUZRd08waUIrdGE5ZXVwS1Nra0phV0ZwV1BkcUl4YlFRc3JJRCs3UlROclZzeUI4dUE4VkdnQnJEa3ZwL2ptUHhXVkJIOE43cWhweFZ3KzZSdm50S2hlbDFVVlI4K3BkK2V6SC82K3NBbU8zaGc4dVhobDEwOGg3bDF6NWN3S0p2Y3ZrVTgwRGYwU1RhN1AvbVVMZnNiR2RCRk94Q3V1djA4VjJ2anVqT3RlSDVrMURjaElZR2VQWHZTdlh2M2NQVDBTTzFuUFAvQ2UvUXRLY0hlY2h6WG9VbzJmVkpMbjc2NUpMUzJCQU1Nc1F6T3k0RXZ2cURwV0ROQ0VSdzVjZ1JWTXBHUzRvUkFnSURpNWZEaFkxaXRSbkhNNVVKRnhwN2tRQloreWVWeW93UzBXSUlwemlKTVJna2hCQUcvRDE4Z0lBQkpsZzFJaE1CT1JWRlVMU0NocXFDeGxwTUZyVFlBcGtYWXBUQ2xDNmJrSTdjdmNpakMzd21CclBiOVlGNFlZWUFLN20yUTFXbUFKSVFxaE5CK0wwa3lScU1oQkhBRUZEOENDVW5Xb3BRaFVBdjRXMUV4b3JTMkVoQmd0ZG14eHBuQ1FOWk8yZ1p0ZldudE16U3Q3MEFRMEl6eDdQbkVTdTRaTm5ac1M2UmJUaEkzVDNTUTNrM3pveDJ0U09OdnoxaHh5VEIrT2d3dEJEeXdjQkdNdnhQU0xPQ3JoMGVlaFJsM1FlVW1XTGtacXR6dytGeElNOE9JU1RBd040UVNqU3grNGwvY3RXVnArT0EybFc5andiTnZzYm0wSHN2eVA5TzAzVUhlNEd1Wk9GUnJabHk1Y3kxYm01SkpxZDNDaTVzK0lYZkl6N2x2OG5BcWQyM2c2WmZmb3JxdWtmVGM4NWx4KzNUUzdScE1ySHY2WWJaVkhNZWFkWDdVaWF6WXZvYnRqWGE4ZXphd3RlSUlJNmY4bHJFbHVTZHgxZmhZdldRZWEzWitTYitSTjNIYjJCSmtvTDU4TzB1ZlhVVjU5U0djR2IyWmR2dWQ1S1ZaVC9pZlZFODl5eFl2Wm12cEFiNXgrdituOVEza3ByZVRTK00vVHNVUmxUNnBRVmFtK25obzdVNm1YM2srY1QvT2psK0FWbHlmazVQRE9lZWNRLzY1Z3pqSDBjQ0xHOHZJeWtwangvbzFtRFB5eVV4THBWdTNGSktUdStKME9uRTR1b1RMdWV4Mk82azlNa2gxSmlLWkUwaExTeU0xcFNzSlZvMEJ4TWNaY0x1UGMrUm9NM2FIRTd2Tmd0RWNSNXhSRnJJcFR0aVRrb1F0d1N4OExjMWdER2EwV3pRNUpzMDJNd21UeVNTTVJxTXdHaVFSQkFoaE1CcUUxc1JCVWcwR2d5ckxjbnRMSUxpRUd2ZEdMNXIybkNKSmtxWjRvZFZWaGwvSExBRkprZ0t5SkFWa1dRNG15V3JybG1VcHZCMkJVSVdHdW1wd3U2ckJZRkFsdEk1TkpwTlJTS2hDQ2FqQ2FEUUtrOGtrVENhek1FaUlnQ3AwaXJOeGlJQkNhMnVyc0NRa0NwdFpGbTdYY1JFWHIvbS9Jbzc5NEhHT2o4ZHF0WEM4c1o1RGh3NVJWMWRIYlcwdEJ3OGU1S3NqYnV4Mk8wbEpTVGdjWFlKK3NxNTA2NVpDYW1vcTZjbmRlVzlMQm1VTlozRDk5VGswN3N4bFcxMCs1NXh6RGtwRkR0ZmVhYVZrTEV3YUNYZU5nWjMxZ0JXeWZERHBIazBzZE5ZVWNLV0JYWWIwWGpCOE9Eak5VRHhFZTU2bHUrUjg1WnZZS2ZkblFIcUVwMWlTc3hnMi9BcXlVMnowNm5jeHc0ZGZRYjllRVZtL3lwMXZjdCswWDdDcXdzTDRpZGRqVlZ3QVZGV1UwMnZBbGR4KzF4MWt1ZDlqMkpSNVljR0N2SDZES2NrSzhNaXlOMktBN1ExbVRMc2J0V0FvRTRabU1uM3N6VlNmaEVSUjArNVZiSEQxWXZxVWExazkrem9XYjZnRW9LYXlBbWQrQ1hmZWRRY2xLWWNZTnVJVzNDZjZUNnFMR1NNdVpsMk5uV20zMy9ITmdnZlYrei9oc1U4Q1BEbmo3RmlpeVROck5oSjM5Z0N1N0tHVkpPN2M4UjVObVVVTTZtYm13LzhEemt1THhVSjJkalozTFg2QlR5Ky9tTWNmLzRER3pKSE12dTRTM0M1OWlvaW5UWW1XMVpxSVRiaW85UGpKeU1pSTlzRVp0Um1UY1ZadkVnMUNaNlphTU1mN2FQWTBvMGp4eUhLTFVERVFGMmRHbU0zRVdWUWFXcjJTMFJ4SG5DRm9zaXFDRnE5ZnhOc1NrSVdndGFVWlJZRFJhQ1Jpd1lxUU9Sb21Xa0VpRmtXK2hORGlwcW8vQUxLTWpDb0ZBbUF3R0pHbGprMVFqV1JKK0gwK0pJTVJveHg1RDBBRUFnUWtDWXNsTHNxa05KdE5CQlNGZ0Nvd0dtUjhBVUZjbkJsSmtwRXNGcFFXRjY1V1NWZ3NjV0Z6cy9XNGhDa3VpV1NuQTFsSzRIaGxMWEpjUFBGR2ZiV0FQakFnMDJwTEpJNW9jOVNjMkFXbnMwdVVEMDNmU01WT0VpYWpnOS8rMFVtLzFHNTBQNTdLcXpWR0xCWll1aEFtem9JUkpkci9uem9VVnF5RjRpa3daaFpzSGdGanhrQlRDbXdNeXBxbFpHdUwzUXo5U3RxYW9yWGxWVmh5TXFOa1hTek9ERXBLTWxpZllzV1JYMHhKU1Z1enpaaDNCWS9QdXgwWkdCNThiOGo0R2RSVzdHVnZlUTBaaGVkUzkreGJOQUxKUUU1aE1TbStNdVJsYlUzSWdwRTNNbTNVRUtDWWdiUCt6TjVhVFNtNTA1RStpUG4zanNjQnpKcHhEZmU4dUlyYmg4MmszL0NKWkZmdlkwOVpKZVplNTJDcGZJQUtOeFIxOHA5Y3UxZXp2RGFQbXMwenNRUC9IM2l4Z0ptUU81d3VBQUFBQUVsRlRrU3VRbUNDIl0sWzEsImRldGFpbHMtY29udGFpbmVyIl0sWzEsImRldGFpbHMiXSxbImhyZWYiLCJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9hcGlfZG9jcy9weXRob24vdGYvZGVidWdnaW5nL2V4cGVyaW1lbnRhbC9lbmFibGVfZHVtcF9kZWJ1Z19pbmZvIiwidGFyZ2V0IiwiYmxhbmsiLCJyZWwiLCJub3JlZmVycmVyIG5vb3BlbmVyIl0sWyJocmVmIiwiaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvYXBpX2RvY3MvcHl0aG9uL3RmL2RlYnVnZ2luZyIsInRhcmdldCIsImJsYW5rIiwicmVsIiwibm9yZWZlcnJlciBub29wZW5lciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiLDEpLGt1KDIsIkRlYnVnZ2VyIFYyIGlzIGluYWN0aXZlIGJlY2F1c2Ugbm8gZGF0YSBpcyBhdmFpbGFibGUuIiksQW0oKSxSbSgzLCJkaXYiKSxrdSg0LCJUbyB1c2UgdGhlIGRlYnVnZ2VyLCIpLEFtKCksUm0oNSwiZGl2IiksUm0oNiwib2wiKSxSbSg3LCJsaSIpLGt1KDgsIiBBZGQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHRoZSBiZWdpbm5pbmcgb2YgeW91ciBwcm9ncmFtOiAiKSxSbSg5LCJkaXYiLDIpLFJtKDEwLCJzcGFuIiksa3UoMTEsInRmLmRlYnVnZ2luZy5leHBlcmltZW50YWwuZW5hYmxlX2R1bXBfZGVidWdfaW5mbygiKSxBbSgpLFJtKDEyLCJzcGFuIiwzKSxrdSgxMywibG9nZGlyIiksQW0oKSxrdSgxNCwiLCAiKSxSbSgxNSwic3BhbiIsMyksa3UoMTYsJ3RlbnNvcl9kZWJ1Z19tb2RlPSJGVUxMX0hFQUxUSCInKSxBbSgpLGt1KDE3LCIsICIpLFJtKDE4LCJzcGFuIiwzKSxrdSgxOSwiY2lyY3VsYXJfYnVmZmVyX3NpemU9LTEiKSxBbSgpLFJtKDIwLCJzcGFuIiksa3UoMjEsIikiKSxBbSgpLEFtKCksQW0oKSxSbSgyMiwibGkiKSxrdSgyMywiUmUtcnVuIHRoZSBwcm9ncmFtLiIpLEFtKCksQW0oKSxBbSgpLFJtKDI0LCJkaXYiLDQpLFJtKDI1LCJkaXYiLDUpLFJtKDI2LCJkaXYiLDYpLFRtKDI3LCJpbWciLDcpLEFtKCksUm0oMjgsImRpdiIsOCksa3UoMjksIkF1dG8tYWxlcnRzIGZvciBwcm9ibGVtcyBmb3VuZCIpLEFtKCksQW0oKSxSbSgzMCwiZGl2Iiw1KSxSbSgzMSwiZGl2Iiw2KSxUbSgzMiwiaW1nIiw5KSxBbSgpLFJtKDMzLCJkaXYiLDgpLGt1KDM0LCIgSW50ZWdyYXRlZCBkZWJ1Z2dpbmcgdG8gdHJhY2UgcHJvYmxlbXMgdG8gdGhlaXIgY2F1c2VzICIpLEFtKCksQW0oKSxSbSgzNSwiZGl2Iiw1KSxSbSgzNiwiZGl2Iiw2KSxUbSgzNywiaW1nIiwxMCksQW0oKSxSbSgzOCwiZGl2Iiw4KSxrdSgzOSwiTGluayBsb2cgdG8gY29kZSIpLEFtKCksQW0oKSxBbSgpLFJtKDQwLCJkaXYiLDExKSxSbSg0MSwiZGl2IiwxMiksa3UoNDIsIiBUaGUgbG9nIGRpcmVjdG9yeSBtdXN0IGNvbnRhaW4gVGVuc29yRmxvdyBEZWJ1Z2dlciAoVjIpIGRhdGEuIHRmLmRlYnVnZ2luZy5leHBlcmltZW50YWwuZW5hYmxlX2R1bXBfZGVidWdfaW5mbygpIHdpbGwgY29sbGVjdCB0ZW5zb3IgZGF0YSwgZ3JhcGggc3RydWN0dXJlcywgdGhlIGFzc29jaWF0ZWQgc3RhY2sgdHJhY2VzLCBhbmQgc291cmNlIGNvZGUgdG8gdGhlIHNwZWNpZmljZWQgZGlyZWN0b3J5IGxvZ2RpciBhcyB0aGUgaW5zdHJ1bWVudGVkIFRlbnNvckZsb3cgcHJvZ3JhbSBleGVjdXRlcy4gIiksQW0oKSxSbSg0MywiZGl2IiwxMiksUm0oNDQsImRpdiIpLGt1KDQ1LCIgU2VlICIpLFJtKDQ2LCJhIiwxMyksa3UoNDcsIiBkb2N1bWVudGF0aW9uICIpLEFtKCksa3UoNDgsIiBvZiB0aGUgUHl0aG9uIEFQSSBvZiBEZWJ1Z2dlciBWMi4gIiksQW0oKSxSbSg0OSwiZGl2Iiksa3UoNTAsIiBTZWUgIiksUm0oNTEsImEiLDE0KSxrdSg1MiwiIGhlcmUgIiksQW0oKSxrdSg1MywiIGZvciBvdGhlciBUZW5zb3JGbG93IGRlYnVnZ2luZyBBUElzLiAiKSxBbSgpLEFtKCksQW0oKSxBbSgpKX0sc3R5bGVzOlsiLmFyZ1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBjb2xvcjogbGlnaHRibHVlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIG1hcmdpbjogMnB4O1xufVxuXG4uY29kZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICBtYXJnaW46IDEwcHg7XG59XG5cbi5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LWZhbWlseTogUm9ib3RvO1xuICBmb250LXNpemU6IDE1cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDUwcHg7XG59XG5cbi5kZXRhaWxzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAxMHB4IDYwcHg7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5leGhpYml0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmV4aGliaXRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMTBweCA2MHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogMzEwcHg7XG59XG5cbi5leGhpYml0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kZXNjcmlwdGlvbltfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMzEwcHg7XG59XG5cbi5leGhpYml0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zY3JlZW5zaG90W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNhbnZhc1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBoZWlnaHQ6IDIwMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtc2l6ZTogMTM1JTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG59Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKERxLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImluYWN0aXZlLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vaW5hY3RpdmVfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vaW5hY3RpdmVfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLG51bGwpO2NsYXNzIEVxe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dH19RXEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEVxKShTbShJdykpfSxFcS7JtWNtcD10byh7dHlwZTpFcSxzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItaW5hY3RpdmUiXV0sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmVG0oMCwiaW5hY3RpdmUtY29tcG9uZW50Iil9LGRpcmVjdGl2ZXM6W0RxXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEVxLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLWluYWN0aXZlIix0ZW1wbGF0ZToiIDxpbmFjdGl2ZS1jb21wb25lbnQ+PC9pbmFjdGl2ZS1jb21wb25lbnQ+ICJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y29uc3QgUnE9SlAoIltEZWJ1Z2dlcl0gRGVidWdnZXIgTG9hZGVkIiksQXE9SlAoIltEZWJ1Z2dlcl0gRGVidWdnZXIgVW5sb2FkZWQiKSxUcT1KUCgiW0RlYnVnZ2VyXSBBIE5ldyBEZWJ1Z2dlciBEYXRhIFBvbGxpbmcgRXZlbnQgQmVnaW5zIiksTnE9SlAoIltEZWJ1Z2dlcl0gRGVidWdnZXIgUnVucyBSZXF1ZXN0ZWQiKSx6cT1KUCgiW0RlYnVnZ2VyXSBEZWJ1Z2dlciBSdW5zIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLElxPUpQKCJbRGVidWdnZXJdIERlYnVnZ2VyIFJ1bnMgUmVxdWVzdCBGYWlsZWQiKSxIcT1KUCgiW0RlYnVnZ2VyXSBOdW1iZXIgYW5kIEJyZWFrZG93biBvZiBBbGVydHMgUmVxdWVzdGVkIiksRnE9SlAoIltEZWJ1Z2dlcl0gTnVtYmVyIGFuZCBCcmVha2Rvd24gb2YgQWxlcnRzIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLExxPUpQKCJbRGVidWdnZXJdIEFsZXJ0cyBEYXRhIG9mIGFuIEFsZXJ0VHlwZSBJcyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxCcT1KUCgiW0RlYnVnZ2VyXSBBbGVydCBUeXBlIEZvY3VzIFRvZ2dsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxWcT1KUCgiW0RlYnVnZ2VyXSBOdW1iZXIgb2YgVG9wLUxldmVsIEV4ZWN1dGlvbnMgUmVxdWVzdGVkIiksanE9SlAoIltEZWJ1Z2dlcl0gTnVtYmVyIG9mIFRvcC1MZXZlbCBFeGVjdXRpb25zIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFVxPUpQKCJbRGVidWdnZXJdIEV4ZWN1dGlvbkRpZ2VzdHMgUmVxdWVzdGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksR3E9SlAoIltEZWJ1Z2dlcl0gRXhlY3V0aW9uRGlnZXN0cyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxXcT1KUCgiW0RlYnVnZ2VyXSBTY3JvbGwgTGVmdHdhcmQgb24gdGhlIEV4ZWN1dGlvbiBUaW1lbGluZSIpLFlxPUpQKCJbRGVidWdnZXJdIFNjcm9sbCBSaWdodHdhcmQgb24gdGhlIEV4ZWN1dGlvbiBUaW1lbGluZSIpLHFxPUpQKCJbRGVidWdnZXJdIFNjcm9sbCB0aGUgRXhlY3V0aW9uIFRpbWVsaW5lIHRvIEdpdmVuIEluZGV4Iix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksWnE9SlAoIltEZWJ1Z2dlcl0gRXhlY3V0aW9uIERhdGEgT2JqZWN0cyBCZWluZyBGb2N1c2VkIE9uIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksWHE9SlAoIltEZWJ1Z2dlcl0gRXhlY3V0aW9uIERhdGEgT2JqZWN0cyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxLcT1KUCgiW0RlYnVnZ2VyXSBOdW1iZXIgb2YgSW50cmEtR3JhcGggRXhlY3V0aW9ucyBSZXF1ZXN0ZWQiKSxKcT1KUCgiW0RlYnVnZ2VyXSBOdW1iZXIgb2YgSW50cmEtR3JhcGggRXhlY3V0aW9ucyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxRcT1KUCgiW0RlYnVnZ2VyXSBJbnRyYS1HcmFwaCBFeGVjdXRpb24gRGF0YSBSZXF1ZXN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSwkcT1KUCgiW0RlYnVnZ2VyXSBJbnRyYS1HcmFwaCBFeGVjdXRpb24gRGF0YSBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx0Wj1KUCgiW0RlYnVnZ2VyXSBTY3JvbGwgSW50cmEtR3JhcGggRXhlY3V0aW9uIExpc3QgdG8gR2l2ZW4gSW5kZXgiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxlWj1KUCgiW0RlYnVnZ2VyXSBHcmFwaCBFeGVjdXRpb24gaXMgRm9jdXNlZCBPbiIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLG5aPUpQKCJbRGVidWdnZXJdIEdyYXBoIE9wIElzIEZvY3VzZWQgT24iLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxvWj1KUCgiW0RlYnVnZ2VyXSBHcmFwaCBPcCBJbmZvIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGlaPUpQKCJbRGVidWdnZXJdIEdyYXBoIE9wIEluZm8gTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksYVo9SlAoIltEZWJ1Z2dlcl0gU291cmNlIEZpbGUgTGlzdCBSZXF1ZXN0ZWQuIiksclo9SlAoIltEZWJ1Z2dlcl0gU291cmNlIEZpbGUgTGlzdCBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxzWj1KUCgiW0RlYnVnZ2VyXSBTb3VyY2UgRmlsZSBMaW5lIElzIEZvY3VzZWQgb24iLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxsWj1KUCgiW0RlYnVnZ2VyXSBTb3VyY2UgRmlsZSBSZXF1ZXN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxjWj1KUCgiW0RlYnVnZ2VyXSBTb3VyY2UgRmlsZSBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxkWj1KUCgiW0RlYnVnZ2VyXSBBIFNldCBvZiBTdGFjayBGcmFtZXMgSGF2ZSBCZWVuIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHBaPSJkZWJ1Z2dlciI7dmFyIG1aLHVaLGZaO2Z1bmN0aW9uIGdaKHQpe2lmKG51bGw9PT10LmNvZGVMb2NhdGlvbkZvY3VzVHlwZSlyZXR1cm4gbnVsbDtsZXQgZT1bXTtpZih0LmNvZGVMb2NhdGlvbkZvY3VzVHlwZT09PWZaLkVYRUNVVElPTil7Y29uc3R7Zm9jdXNJbmRleDpuLGV4ZWN1dGlvbkRhdGE6b309dC5leGVjdXRpb25zO2lmKG51bGw9PT1ufHx2b2lkIDA9PT1vW25dKXJldHVybiBudWxsO2U9b1tuXS5zdGFja19mcmFtZV9pZHN9ZWxzZXtpZihudWxsPT09dC5ncmFwaHMuZm9jdXNlZE9wKXJldHVybiBudWxsO2NvbnN0e2dyYXBoSWQ6bixvcE5hbWU6b309dC5ncmFwaHMuZm9jdXNlZE9wO2lmKHZvaWQgMD09PXQuZ3JhcGhzLm9wc1tuXXx8IXQuZ3JhcGhzLm9wc1tuXS5oYXMobykpcmV0dXJuIG51bGw7ZT10LmdyYXBocy5vcHNbbl0uZ2V0KG8pLnN0YWNrX2ZyYW1lX2lkc31jb25zdCBuPVtdO2Zvcihjb25zdCBvIG9mIGUpe2lmKG51bGw9PXQuc3RhY2tGcmFtZXNbb10pcmV0dXJuIG51bGw7bi5wdXNoKHQuc3RhY2tGcmFtZXNbb10pfXJldHVybiBufWZ1bmN0aW9uIGhaKHQsZSl7cmV0dXJuIHQuZmluZEluZGV4KCh0PT50Lmhvc3RfbmFtZT09PWUuaG9zdF9uYW1lJiZ0LmZpbGVfcGF0aD09PWUuZmlsZV9wYXRoKSl9ZnVuY3Rpb24gYloodCxlLG4pe2lmKGU+PW4pdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBiZWdpbiB0byBiZSBsZXNzIHRoYW4gZW5kLCBidXQgZ290IGJlZ2luPSR7ZX0sIGVuZD0ke259YCk7cmV0dXJuIHQuZmluZEluZGV4KCh0PT50LmJlZ2luPT09ZSYmdC5lbmQ9PT1uKSl9ZnVuY3Rpb24geVoodCl7Y29uc3QgZT10LnNvdXJjZUNvZGUuZm9jdXNMaW5lU3BlYztpZighdC5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSlyZXR1cm4gZTtjb25zdCBuPWdaKHQpO2lmKG51bGw9PT1uKXJldHVybiBlO2NvbnN0IG89KGZ1bmN0aW9uIGkodCxlKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtmb3IobGV0IG49dC5sZW5ndGgtMTtuPj0wOy0tbil7Y29uc3Qgbz10W25dLHtob3N0X25hbWU6aSxmaWxlX3BhdGg6YX09bztpZihpPT09ZS5ob3N0X25hbWUmJmE9PT1lLmZpbGVfcGF0aClyZXR1cm4gb31yZXR1cm4gbnVsbH0pKG4sZSk7cmV0dXJuIG51bGw9PT1vP2U6b30hKGZ1bmN0aW9uKHQpe3RbdC5VTlNQRUNJRklFRD0wXT0iVU5TUEVDSUZJRUQiLHRbdC5OT19URU5TT1I9MV09Ik5PX1RFTlNPUiIsdFt0LkNVUlRfSEVBTFRIPTJdPSJDVVJUX0hFQUxUSCIsdFt0LkNPTkNJU0VfSEVBTFRIPTNdPSJDT05DSVNFX0hFQUxUSCIsdFt0LkZVTExfSEVBTFRIPTRdPSJGVUxMX0hFQUxUSCIsdFt0LlNIQVBFPTVdPSJTSEFQRSIsdFt0LkZVTExfTlVNRVJJQ1M9Nl09IkZVTExfTlVNRVJJQ1MiLHRbdC5GVUxMX1RFTlNPUj03XT0iRlVMTF9URU5TT1IiLHRbdC5SRURVQ0VfSU5GX05BTl9USFJFRV9TTE9UUz04XT0iUkVEVUNFX0lORl9OQU5fVEhSRUVfU0xPVFMifSkobVp8fChtWj17fSkpLChmdW5jdGlvbih0KXt0LkZVTkNUSU9OX1JFQ09NUElMRV9BTEVSVD0iRnVuY3Rpb25SZWNvbXBpbGVzQWxlcnQiLHQuSU5GX05BTl9BTEVSVD0iSW5mTmFuQWxlcnQiLHQuVEVOU09SX1NIQVBFX0FMRVJUPSJUZW5zb3JTaGFwZUFsZXJ0In0pKHVafHwodVo9e30pKSwoZnVuY3Rpb24odCl7dFt0LkVYRUNVVElPTj0wXT0iRVhFQ1VUSU9OIix0W3QuR1JBUEhfT1BfQ1JFQVRJT049MV09IkdSQVBIX09QX0NSRUFUSU9OIn0pKGZafHwoZlo9e30pKTtjb25zdCBfWj15ayh7cnVuczp7fSxydW5zTG9hZGVkOntzdGF0ZTp5RS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSxhY3RpdmVSdW5JZDpudWxsLGxhc3REYXRhUG9sbE9uc2V0VGltZU1zOi0xLGxhc3ROb25FbXB0eVBvbGxEYXRhVGltZU1zOjEsYWxlcnRzOnthbGVydHNMb2FkZWQ6e3N0YXRlOnlFLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGx9LG51bUFsZXJ0czowLGFsZXJ0c0JyZWFrZG93bjp7fSxhbGVydHM6e30sZXhlY3V0aW9uSW5kaWNlczp7fSxncmFwaEV4ZWN1dGlvbkluZGljZXM6e30sZm9jdXNUeXBlOm51bGx9LGV4ZWN1dGlvbnM6KGZ1bmN0aW9uIENaKCl7cmV0dXJue251bUV4ZWN1dGlvbnNMb2FkZWQ6e3N0YXRlOnlFLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGx9LGV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQ6e2xvYWRpbmdSYW5nZXM6W10sbnVtRXhlY3V0aW9uczowLHBhZ2VMb2FkZWRTaXplczp7fX0sZGlzcGxheUNvdW50OjUwLHBhZ2VTaXplOjEwMCxzY3JvbGxCZWdpbkluZGV4OjAsZm9jdXNJbmRleDpudWxsLGV4ZWN1dGlvbkRpZ2VzdHM6e30sZXhlY3V0aW9uRGF0YTp7fX19KSgpLGdyYXBoRXhlY3V0aW9uczooZnVuY3Rpb24gTVooKXtyZXR1cm57bnVtRXhlY3V0aW9uc0xvYWRlZDp7c3RhdGU6eUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0sZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDp7bG9hZGluZ1JhbmdlczpbXSxudW1FeGVjdXRpb25zOjAscGFnZUxvYWRlZFNpemVzOnt9fSxkaXNwbGF5Q291bnQ6MTAwLHBhZ2VTaXplOjIwMCxzY3JvbGxCZWdpbkluZGV4OjAsZm9jdXNJbmRleDpudWxsLGdyYXBoRXhlY3V0aW9uRGlnZXN0czp7fSxncmFwaEV4ZWN1dGlvbkRhdGFMb2FkaW5nUGFnZXM6W10sZ3JhcGhFeGVjdXRpb25EYXRhUGFnZUxvYWRlZFNpemVzOnt9LGdyYXBoRXhlY3V0aW9uRGF0YTp7fX19KSgpLGdyYXBoczp7b3BzOnt9LGxvYWRpbmdPcHM6e30sZm9jdXNlZE9wOm51bGx9LHN0YWNrRnJhbWVzOnt9LGNvZGVMb2NhdGlvbkZvY3VzVHlwZTpudWxsLHN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlOiExLHNvdXJjZUNvZGU6e3NvdXJjZUZpbGVMaXN0TG9hZGVkOntzdGF0ZTp5RS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSxzb3VyY2VGaWxlTGlzdDpbXSxmaWxlQ29udGVudHM6W10sZm9jdXNMaW5lU3BlYzpudWxsfX0sYmsoTnEsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cnVuc0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ydW5zTG9hZGVkKSx7c3RhdGU6eUUuTE9BRElOR30pfSkpKSxiayhJcSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtydW5zTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnJ1bnNMb2FkZWQpLHtzdGF0ZTp5RS5GQUlMRUR9KX0pKSksYmsoenEsKCh0LHtydW5zOmV9KT0+e2NvbnN0IG49T2JqZWN0LmtleXMoZSksbz1uLmxlbmd0aD4wJiZudWxsPT09dC5hY3RpdmVSdW5JZDtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtsYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNczpvP0RhdGUubm93KCk6dC5sYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNcyxydW5zOmUscnVuc0xvYWRlZDp7c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSxhY3RpdmVSdW5JZDpuLmxlbmd0aD4wP25bMF06bnVsbH0pfSkpLGJrKFRxLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2xhc3REYXRhUG9sbE9uc2V0VGltZU1zOkRhdGUubm93KCl9KSkpLGJrKEhxLCh0PT5udWxsPT09dC5hY3RpdmVSdW5JZD90Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7YWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cykse2FsZXJ0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuYWxlcnRzTG9hZGVkKSx7c3RhdGU6eUUuTE9BRElOR30pfSl9KSkpLGJrKEZxLCgodCx7bnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm59KT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG89ZT50LmFsZXJ0cy5udW1BbGVydHM7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXM6bz9EYXRlLm5vdygpOnQubGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXMsYWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cykse2FsZXJ0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuYWxlcnRzTG9hZGVkKSx7c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSksbnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm59KX0pfSkpLGJrKExxLCgodCx7bnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm4sYWxlcnRUeXBlOm8sYmVnaW46aSxhbGVydHM6YX0pPT57aWYobnVsbD09PXQuYWN0aXZlUnVuSWQpcmV0dXJuIHQ7Y29uc3Qgcj17fSxzPXQuYWxlcnRzLmV4ZWN1dGlvbkluZGljZXNbb10/dC5hbGVydHMuZXhlY3V0aW9uSW5kaWNlc1tvXS5zbGljZSgpOltdLGw9dC5hbGVydHMuZ3JhcGhFeGVjdXRpb25JbmRpY2VzW29dP3QuYWxlcnRzLmdyYXBoRXhlY3V0aW9uSW5kaWNlc1tvXS5zbGljZSgpOltdO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7Kyt0KXtjb25zdCBlPWkrdCxuPWFbdF07aWYocltlXT1uLG4uYWxlcnRfdHlwZT09PXVaLklORl9OQU5fQUxFUlQpe2NvbnN0IHQ9bjtzW2VdPXQuZXhlY3V0aW9uX2luZGV4LG51bGwhPT10LmdyYXBoX2V4ZWN1dGlvbl90cmFjZV9pbmRleCYmKGxbZV09dC5ncmFwaF9leGVjdXRpb25fdHJhY2VfaW5kZXgpfX12b2lkIDAhPT10LmFsZXJ0cy5hbGVydHNbb10mJk9iamVjdC5hc3NpZ24ocix0LmFsZXJ0cy5hbGVydHNbb10pO2xldCBjPXQuZXhlY3V0aW9ucy5zY3JvbGxCZWdpbkluZGV4LGQ9dC5ncmFwaEV4ZWN1dGlvbnMuZm9jdXNJbmRleDtpZihvPT09dVouSU5GX05BTl9BTEVSVCYmMD09PWkpe2NvbnN0IGU9YVswXTtjPU1hdGgubWF4KDAsZS5leGVjdXRpb25faW5kZXgtTWF0aC5mbG9vcih0LmV4ZWN1dGlvbnMuZGlzcGxheUNvdW50LzIpKSxudWxsIT09ZS5ncmFwaF9leGVjdXRpb25fdHJhY2VfaW5kZXgmJihkPWUuZ3JhcGhfZXhlY3V0aW9uX3RyYWNlX2luZGV4KX1yZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtleGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMpLHtzY3JvbGxCZWdpbkluZGV4OmN9KSxncmFwaEV4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zKSx7Zm9jdXNJbmRleDpkfSksYWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cykse2FsZXJ0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuYWxlcnRzTG9hZGVkKSx7c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSksbnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm4sYWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cy5hbGVydHMpLHtbb106cn0pLGV4ZWN1dGlvbkluZGljZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuYWxlcnRzLmV4ZWN1dGlvbkluZGljZXMpLHtbb106c30pLGdyYXBoRXhlY3V0aW9uSW5kaWNlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuZ3JhcGhFeGVjdXRpb25JbmRpY2VzKSx7W29dOmx9KX0pfSl9KSksYmsoQnEsKCh0LHthbGVydFR5cGU6ZX0pPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2FsZXJ0czpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMpLHtmb2N1c1R5cGU6dC5hbGVydHMuZm9jdXNUeXBlPT09ZT9udWxsOmV9KX0pLG89bi5hbGVydHMuZm9jdXNUeXBlO2lmKG51bGwhPT1vKXtjb25zdCB0PW4uYWxlcnRzLmV4ZWN1dGlvbkluZGljZXNbb118fFtdO3ZvaWQgMCE9PXRbMF0mJihuLmV4ZWN1dGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4uZXhlY3V0aW9ucykse3Njcm9sbEJlZ2luSW5kZXg6TWF0aC5tYXgoMCxOdW1iZXIodFswXSktTWF0aC5mbG9vcihuLmV4ZWN1dGlvbnMuZGlzcGxheUNvdW50LzIpKX0pKX1yZXR1cm4gbn0pKSxiayhWcSwodD0+bnVsbD09PXQuYWN0aXZlUnVuSWQ/dDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2V4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucykse251bUV4ZWN1dGlvbnNMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucy5udW1FeGVjdXRpb25zTG9hZGVkKSx7c3RhdGU6eUUuTE9BRElOR30pfSl9KSkpLGJrKGpxLCgodCx7bnVtRXhlY3V0aW9uczplfSk9PntpZihudWxsPT09dC5hY3RpdmVSdW5JZClyZXR1cm4gdDtjb25zdCBuPWU+dC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubnVtRXhlY3V0aW9ucyxvPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXM6bj9EYXRlLm5vdygpOnQubGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXMsZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7bnVtRXhlY3V0aW9uc0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zLm51bUV4ZWN1dGlvbnNMb2FkZWQpLHtzdGF0ZTp5RS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCl9KSxleGVjdXRpb25EaWdlc3RzTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZCkse251bUV4ZWN1dGlvbnM6ZX0pfSl9KTtyZXR1cm4gZT4wJiZudWxsPT09dC5leGVjdXRpb25zLmZvY3VzSW5kZXgmJihvLmV4ZWN1dGlvbnMuZm9jdXNJbmRleD0wKSxvfSkpLGJrKFVxLCgodCxlKT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG49Wy4uLnQuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkLmxvYWRpbmdSYW5nZXNdO3JldHVybi0xPT09YloobixlLmJlZ2luLGUuZW5kKSYmbi5wdXNoKHtiZWdpbjplLmJlZ2luLGVuZDplLmVuZH0pLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7ZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQpLHtsb2FkaW5nUmFuZ2VzOm59KX0pfSl9KSksYmsoR3EsKCh0LGUpPT57aWYobnVsbD09PXQuYWN0aXZlUnVuSWQpcmV0dXJuIHQ7Y29uc3Qgbj1bLi4udC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubG9hZGluZ1Jhbmdlc10sbz1iWihuLGUuYmVnaW4sZS5lbmQpOy0xIT09byYmbi5zcGxpY2UobywxKTtjb25zdCBpPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7ZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQpLHtudW1FeGVjdXRpb25zOmUubnVtX2RpZ2VzdHMsbG9hZGluZ1JhbmdlczpufSksZXhlY3V0aW9uRGlnZXN0czpPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzKX0pfSk7Zm9yKGxldCB0PWUuYmVnaW47dDxlLmVuZDsrK3QpaS5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNbdF09ZS5leGVjdXRpb25fZGlnZXN0c1t0LWUuYmVnaW5dO2lmKGUuZW5kPmUuYmVnaW4pe2NvbnN0IG49ZS5iZWdpbi90LmV4ZWN1dGlvbnMucGFnZVNpemU7aS5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQucGFnZUxvYWRlZFNpemVzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpLmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZC5wYWdlTG9hZGVkU2l6ZXMpLHtbbl06ZS5lbmQtZS5iZWdpbn0pfXJldHVybiBpfSkpLGJrKFdxLCh0PT57aWYobnVsbD09PXQuYWN0aXZlUnVuSWQpcmV0dXJuIHQ7bGV0IGU9dC5leGVjdXRpb25zLnNjcm9sbEJlZ2luSW5kZXg7cmV0dXJuIGU+MCYmZS0tLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7c2Nyb2xsQmVnaW5JbmRleDplfSl9KX0pKSxiayhZcSwodD0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2xldCBlPXQuZXhlY3V0aW9ucy5zY3JvbGxCZWdpbkluZGV4O3JldHVybiBlK3QuZXhlY3V0aW9ucy5kaXNwbGF5Q291bnQrMTw9dC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubnVtRXhlY3V0aW9ucyYmZSsrLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7c2Nyb2xsQmVnaW5JbmRleDplfSl9KX0pKSxiayhxcSwoKHQsZSk9PntpZihlLmluZGV4PDB8fCFOdW1iZXIuaXNJbnRlZ2VyKGUuaW5kZXgpKXRocm93IG5ldyBFcnJvcihgQXR0ZW1wdCB0byBzY3JvbGwgdG8gbmVnYXRpdmUgb3Igbm9uLWludGVnZXIgZXhlY3V0aW9uIGluZGV4ICgke2UuaW5kZXh9KWApO2NvbnN0e2Rpc3BsYXlDb3VudDpufT10LmV4ZWN1dGlvbnMse251bUV4ZWN1dGlvbnM6b309dC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQ7aWYoZS5pbmRleD5NYXRoLm1heCgwLG8tbikpdGhyb3cgbmV3IEVycm9yKGBBdHRlbXB0IHRvIHNjcm9sbCB0byBleGVjdXRpb24gaW5kZXggKCR7ZS5pbmRleH0pLCB3aGljaCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBpbmRleCAobnVtRXhlY3V0aW9ucz0ke299OyBkaXNwbGF5Q291bnQ9JHtufSlgKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtleGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMpLHtzY3JvbGxCZWdpbkluZGV4OmUuaW5kZXh9KX0pfSkpLGJrKFpxLCgodCxlKT0+e2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtleGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMpLHtmb2N1c0luZGV4OnQuZXhlY3V0aW9ucy5zY3JvbGxCZWdpbkluZGV4K2UuZGlzcGxheUluZGV4fSksY29kZUxvY2F0aW9uRm9jdXNUeXBlOmZaLkVYRUNVVElPTixzb3VyY2VDb2RlOk9iamVjdC5hc3NpZ24oe30sdC5zb3VyY2VDb2RlKX0pO3JldHVybiBuLnNvdXJjZUNvZGUuZm9jdXNMaW5lU3BlYz15WihuKSxufSkpLGJrKFhxLCgodCxlKT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtleGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMpLHtleGVjdXRpb25EYXRhOk9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zLmV4ZWN1dGlvbkRhdGEpfSl9KTtmb3IobGV0IHQ9ZS5iZWdpbjt0PGUuZW5kOysrdCluLmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGF0YVt0XT1lLmV4ZWN1dGlvbnNbdC1lLmJlZ2luXTtyZXR1cm4gbn0pKSxiayhLcSwodD0+bnVsbD09PXQuYWN0aXZlUnVuSWQ/dDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2dyYXBoRXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMpLHtudW1FeGVjdXRpb25zTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBoRXhlY3V0aW9ucy5udW1FeGVjdXRpb25zTG9hZGVkKSx7c3RhdGU6eUUuTE9BRElOR30pfSl9KSkpLGJrKEpxLCgodCx7bnVtR3JhcGhFeGVjdXRpb25zOmV9KT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG49ZT50LmdyYXBoRXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkLm51bUV4ZWN1dGlvbnMsbz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2xhc3ROb25FbXB0eVBvbGxEYXRhVGltZU1zOm4/RGF0ZS5ub3coKTp0Lmxhc3ROb25FbXB0eVBvbGxEYXRhVGltZU1zLGdyYXBoRXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMpLHtudW1FeGVjdXRpb25zTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBoRXhlY3V0aW9ucy5udW1FeGVjdXRpb25zTG9hZGVkKSx7c3RhdGU6eUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSksZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZCkse251bUV4ZWN1dGlvbnM6ZX0pfSl9KTtyZXR1cm4gZT4wJiZudWxsPT09dC5ncmFwaEV4ZWN1dGlvbnMuZm9jdXNJbmRleCYmKG8uZ3JhcGhFeGVjdXRpb25zLmZvY3VzSW5kZXg9MCksb30pKSxiayhRcSwoKHQse3BhZ2VJbmRleDplfSk9PntpZihudWxsPT09dC5hY3RpdmVSdW5JZClyZXR1cm4gdDtjb25zdCBuPXQuZ3JhcGhFeGVjdXRpb25zLmdyYXBoRXhlY3V0aW9uRGF0YUxvYWRpbmdQYWdlcy5zbGljZSgpO3JldHVybi0xPT09bi5pbmRleE9mKGUpJiZuLnB1c2goZSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtncmFwaEV4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zKSx7Z3JhcGhFeGVjdXRpb25EYXRhTG9hZGluZ1BhZ2VzOm59KX0pfSkpLGJrKCRxLCgodCxlKT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0e3BhZ2VTaXplOm59PXQuZ3JhcGhFeGVjdXRpb25zLG89dC5ncmFwaEV4ZWN1dGlvbnMuZ3JhcGhFeGVjdXRpb25EYXRhTG9hZGluZ1BhZ2VzLnNsaWNlKCksaT1PYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zLmdyYXBoRXhlY3V0aW9uRGF0YVBhZ2VMb2FkZWRTaXplcyksYT1PYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zLmdyYXBoRXhlY3V0aW9uRGF0YSk7Zm9yKGxldCB0PWUuYmVnaW47dDxlLmVuZDsrK3Qpe2NvbnN0IHI9TWF0aC5mbG9vcih0L24pOy0xIT09by5pbmRleE9mKHIpJiZvLnNwbGljZShvLmluZGV4T2YociksMSksdm9pZCAwPT09aVtyXSYmKGlbcl09MCksdm9pZCAwPT09YVt0XSYmaVtyXSsrLGFbdF09ZS5ncmFwaF9leGVjdXRpb25zW3QtZS5iZWdpbl19cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Z3JhcGhFeGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBoRXhlY3V0aW9ucykse2dyYXBoRXhlY3V0aW9uRGF0YUxvYWRpbmdQYWdlczpvLGdyYXBoRXhlY3V0aW9uRGF0YVBhZ2VMb2FkZWRTaXplczppLGdyYXBoRXhlY3V0aW9uRGF0YTphfSl9KX0pKSxiayh0WiwoKHQsZSk9PntpZihlLmluZGV4PDB8fCFOdW1iZXIuaXNJbnRlZ2VyKGUuaW5kZXgpKXRocm93IG5ldyBFcnJvcihgQXR0ZW1wdCB0byBzY3JvbGwgdG8gbmVnYXRpdmUgb3Igbm9uLWludGVnZXIgZ3JhcGgtZXhlY3V0aW9uIGluZGV4ICgke2UuaW5kZXh9KWApO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2dyYXBoRXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMpLHtzY3JvbGxCZWdpbkluZGV4OmUuaW5kZXh9KX0pfSkpLGJrKGVaLCgodCxlKT0+dloodCxlLmdyYXBoX2lkLGUub3BfbmFtZSxlLmluZGV4KSkpLGJrKG5aLCgodCxlKT0+dloodCxlLmdyYXBoX2lkLGUub3BfbmFtZSkpKSxiayhvWiwoKHQsZSk9Pntjb25zdHtncmFwaF9pZDpuLG9wX25hbWU6b309ZSxpPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Z3JhcGhzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBocykse2xvYWRpbmdPcHM6T2JqZWN0LmFzc2lnbih7fSx0LmdyYXBocy5sb2FkaW5nT3BzKX0pfSk7cmV0dXJuIHZvaWQgMD09PWkuZ3JhcGhzLmxvYWRpbmdPcHNbbl0mJihpLmdyYXBocy5sb2FkaW5nT3BzW25dPW5ldyBNYXApLGkuZ3JhcGhzLmxvYWRpbmdPcHNbbl0uaGFzKG8pfHxpLmdyYXBocy5sb2FkaW5nT3BzW25dLnNldChvLHlFLkxPQURJTkcpLGl9KSksYmsoaVosKCh0LGUpPT57Y29uc3R7Z3JhcGhPcEluZm9SZXNwb25zZTpufT1lLHtncmFwaF9pZHM6b309bixpPW9bby5sZW5ndGgtMV0sYT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2dyYXBoczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaHMpLHtvcHM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhzLm9wcykse1tpXTpuZXcgTWFwKHQuZ3JhcGhzLm9wc1tpXSl9KSxsb2FkaW5nT3BzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBocy5sb2FkaW5nT3BzKSx7W2ldOm5ldyBNYXAodC5ncmFwaHMubG9hZGluZ09wc1tpXSl9KX0pfSk7Zm9yKGNvbnN0IHQgb2Ygbi5pbnB1dHMpdC5kYXRhJiZhLmdyYXBocy5vcHNbaV0uc2V0KHQub3BfbmFtZSx0LmRhdGEpO2ZvcihsZXQgdD0wO3Q8bi5jb25zdW1lcnMubGVuZ3RoOysrdClmb3IoY29uc3QgZSBvZiBuLmNvbnN1bWVyc1t0XSllLmRhdGEmJmEuZ3JhcGhzLm9wc1tpXS5zZXQoZS5vcF9uYW1lLGUuZGF0YSk7cmV0dXJuIGEuZ3JhcGhzLm9wc1tpXS5zZXQobi5vcF9uYW1lLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSx7aW5wdXRzOm4uaW5wdXRzLm1hcCgodD0+KHtvcF9uYW1lOnQub3BfbmFtZSxvdXRwdXRfc2xvdDp0Lm91dHB1dF9zbG90fSkpKSxjb25zdW1lcnM6bi5jb25zdW1lcnMubWFwKCh0PT50Lm1hcCgodD0+KHtvcF9uYW1lOnQub3BfbmFtZSxpbnB1dF9zbG90OnQuaW5wdXRfc2xvdH0pKSkpKX0pKSxhLmdyYXBocy5sb2FkaW5nT3BzW2ldLnNldChuLm9wX25hbWUseUUuTE9BREVEKSxhfSkpLGJrKGFaLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NvdXJjZUNvZGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc291cmNlQ29kZSkse3NvdXJjZUZpbGVMaXN0TG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUuc291cmNlRmlsZUxpc3RMb2FkZWQpLHtzdGF0ZTp5RS5MT0FESU5HfSl9KX0pKSksYmsoclosKCh0LGUpPT57dmFyIG47Y29uc3Qgbz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NvdXJjZUNvZGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc291cmNlQ29kZSkse3NvdXJjZUZpbGVMaXN0TG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUuc291cmNlRmlsZUxpc3RMb2FkZWQpLHtzdGF0ZTp5RS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCl9KSxzb3VyY2VGaWxlTGlzdDplLnNvdXJjZUZpbGVzLGZpbGVDb250ZW50czp0LnNvdXJjZUNvZGUuZmlsZUNvbnRlbnRzLnNsaWNlKCl9KX0pLGk9ZS5zb3VyY2VGaWxlcy5sZW5ndGgse2ZpbGVDb250ZW50czphfT1vLnNvdXJjZUNvZGU7Zm9yKGxldCBlPTA7ZTxpOysrZSlhW2VdPW51bGwhPT0obj10LnNvdXJjZUNvZGUuZmlsZUNvbnRlbnRzW2VdKSYmdm9pZCAwIT09bj9uOntsb2FkU3RhdGU6eUUuTk9UX0xPQURFRCxsaW5lczpudWxsfTtyZXR1cm4gb30pKSxiayhzWiwoKHQsZSk9Pntjb25zdCBuPWdaKHQpLG89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzb3VyY2VDb2RlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUpLHtmb2N1c0xpbmVTcGVjOmUuc3RhY2tGcmFtZX0pfSk7cmV0dXJuIG51bGwhPT1uJiYoby5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZT0oZnVuY3Rpb24gaSh0LGUpe2xldCBuPS0xLG89LTE7aWYodC5mb3JFYWNoKCgoe2ZpbGVfcGF0aDp0LGxpbmVubzppfSxhKT0+e3Q9PT1lLmZpbGVfcGF0aCYmKG89YSxpPT09ZS5saW5lbm8mJihuPWEpKX0pKSwtMT09PW4pdGhyb3cgbmV3IEVycm9yKGBTdGFjayBmcmFtZSAke0pTT04uc3RyaW5naWZ5KGUpfSBpcyBub3QgZm91bmQuYCk7cmV0dXJuIG49PT1vfSkobixlLnN0YWNrRnJhbWUpKSxvfSkpLGJrKGxaLCgodCxlKT0+e2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzb3VyY2VDb2RlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUpLHtmaWxlQ29udGVudHM6dC5zb3VyY2VDb2RlLmZpbGVDb250ZW50cy5zbGljZSgpfSl9KSxvPWhaKG4uc291cmNlQ29kZS5zb3VyY2VGaWxlTGlzdCxlKTtpZighKG8+PTApKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgdGhlIGZvbGxvd2luZyBmaWxlIGluIGZpbGUgbGlzdDogaG9zdF9uYW1lPSIke2UuaG9zdF9uYW1lfSIsIGZpbGVfcGF0aD0iJHtlLmZpbGVfcGF0aH0iYCk7cmV0dXJuIG4uc291cmNlQ29kZS5maWxlQ29udGVudHMuc3BsaWNlKG8sMSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbi5zb3VyY2VDb2RlLmZpbGVDb250ZW50c1tvXSkse2xvYWRTdGF0ZTp5RS5MT0FESU5HfSkpLG59KSksYmsoY1osKCh0LGUpPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NvdXJjZUNvZGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc291cmNlQ29kZSkse2ZpbGVDb250ZW50czp0LnNvdXJjZUNvZGUuZmlsZUNvbnRlbnRzLnNsaWNlKCl9KX0pLG89aFoobi5zb3VyY2VDb2RlLnNvdXJjZUZpbGVMaXN0LGUpO2lmKCEobz49MCkpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCB0aGUgZm9sbG93aW5nIGZpbGUgaW4gZmlsZSBsaXN0OiBob3N0X25hbWU9IiR7ZS5ob3N0X25hbWV9IiwgZmlsZV9wYXRoPSIke2UuZmlsZV9wYXRofSJgKTtyZXR1cm4gbi5zb3VyY2VDb2RlLmZpbGVDb250ZW50cy5zcGxpY2UobywxLHtsb2FkU3RhdGU6eUUuTE9BREVELGxpbmVzOmUubGluZXN9KSxufSkpLGJrKGRaLCgodCxlKT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzdGFja0ZyYW1lczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zdGFja0ZyYW1lcyksZS5zdGFja0ZyYW1lcyksc291cmNlQ29kZTpPYmplY3QuYXNzaWduKHt9LHQuc291cmNlQ29kZSl9KTtyZXR1cm4gbi5zb3VyY2VDb2RlLmZvY3VzTGluZVNwZWM9eVoobiksbn0pKSk7ZnVuY3Rpb24gdloodCxlLG4sbyl7Y29uc3QgaT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2dyYXBoczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaHMpLHtmb2N1c2VkT3A6e2dyYXBoSWQ6ZSxvcE5hbWU6bn19KSxjb2RlTG9jYXRpb25Gb2N1c1R5cGU6ZlouR1JBUEhfT1BfQ1JFQVRJT04sc291cmNlQ29kZTpPYmplY3QuYXNzaWduKHt9LHQuc291cmNlQ29kZSl9KTtyZXR1cm4gaS5zb3VyY2VDb2RlLmZvY3VzTGluZVNwZWM9eVooaSksdm9pZCAwIT09byYmKGkuZ3JhcGhFeGVjdXRpb25zPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBoRXhlY3V0aW9ucykse2ZvY3VzSW5kZXg6b30pKSxpfWZ1bmN0aW9uIHhaKHQsZSl7cmV0dXJuIF9aKHQsZSl9Y29uc3QgT1o9S3cocFopLFBaPVp3KE9aLCh0PT50LnJ1bnMpKSx3Wj1adyhPWiwodD0+dC5ydW5zTG9hZGVkKSksa1o9WncoT1osKHQ9PnQuYWN0aXZlUnVuSWQpKSxTWj1adyhPWiwodD0+dC5sYXN0RGF0YVBvbGxPbnNldFRpbWVNcy10Lmxhc3ROb25FbXB0eVBvbGxEYXRhVGltZU1zKSksRFo9WncoT1osKHQ9PnQuYWxlcnRzKSksRVo9WncoRFosKHQ9PnQuYWxlcnRzTG9hZGVkKSksUlo9WncoRFosKHQ9PnQubnVtQWxlcnRzKSksQVo9WncoRFosKHQ9PnQuZm9jdXNUeXBlKSksVFo9WncoRFosKHQ9Pm51bGw9PT10LmZvY3VzVHlwZT8wOnQuYWxlcnRzQnJlYWtkb3duW3QuZm9jdXNUeXBlXXx8MCkpLE5aPVp3KERaLCh0PT5udWxsPT09dC5mb2N1c1R5cGV8fHZvaWQgMD09PXQuYWxlcnRzW3QuZm9jdXNUeXBlXT9udWxsOnQuYWxlcnRzW3QuZm9jdXNUeXBlXSkpLHpaPVp3KERaLCh0PT50LmFsZXJ0c0JyZWFrZG93bikpLElaPVp3KE9aLCh0PT50LmV4ZWN1dGlvbnMpKSxIWj1adyhJWiwodD0+dC5udW1FeGVjdXRpb25zTG9hZGVkKSksRlo9WncoSVosKHQ9PnQuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZCkpLExaPVp3KElaLCh0PT50LmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubnVtRXhlY3V0aW9ucykpLEJaPVp3KElaLCh0PT50LnNjcm9sbEJlZ2luSW5kZXgpKSxWWj1adyhJWiwodD0+dC5wYWdlU2l6ZSkpLGpaPVp3KElaLCh0PT50LmRpc3BsYXlDb3VudCkpLFVaPVp3KElaLCh0PT57Y29uc3QgZT1bXTtmb3IobGV0IG49dC5zY3JvbGxCZWdpbkluZGV4O248dC5zY3JvbGxCZWdpbkluZGV4K3QuZGlzcGxheUNvdW50OysrbillLnB1c2gobiBpbiB0LmV4ZWN1dGlvbkRpZ2VzdHM/dC5leGVjdXRpb25EaWdlc3RzW25dOm51bGwpO3JldHVybiBlfSkpLEdaPVp3KE9aLCh0PT50LmdyYXBoRXhlY3V0aW9ucykpLFdaPVp3KEdaLCh0PT50Lm51bUV4ZWN1dGlvbnNMb2FkZWQpKSxZWj1adyhPWiwodD0+dC5ncmFwaEV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZC5udW1FeGVjdXRpb25zKSkscVo9WncoR1osKHQ9PnQuc2Nyb2xsQmVnaW5JbmRleCkpLFpaPVp3KEdaLCh0PT50LmRpc3BsYXlDb3VudCkpLFhaPVp3KEdaLCh0PT50LnBhZ2VTaXplKSksS1o9WncoR1osKHQ9PnQuZ3JhcGhFeGVjdXRpb25EYXRhTG9hZGluZ1BhZ2VzKSksSlo9WncoR1osKHQ9PnQuZ3JhcGhFeGVjdXRpb25EYXRhUGFnZUxvYWRlZFNpemVzKSksUVo9WncoR1osKHQ9PnQuZ3JhcGhFeGVjdXRpb25EYXRhKSksJFo9WncoR1osKHQ9PnQuZm9jdXNJbmRleCkpLHRYPVp3KE9aLCh0PT50LmdyYXBocykpLGVYPVp3KHRYLCh0PT57Y29uc3R7Zm9jdXNlZE9wOmUsb3BzOm59PXQ7cmV0dXJuIG51bGw9PT1lfHx2b2lkIDA9PT1uW2UuZ3JhcGhJZF0/bnVsbDpuW2UuZ3JhcGhJZF0uZ2V0KGUub3BOYW1lKXx8bnVsbH0pKSxuWD1adyh0WCwodD0+e2NvbnN0e2ZvY3VzZWRPcDplLG9wczpufT10O2lmKG51bGwhPT1lJiZ2b2lkIDAhPT1uW2UuZ3JhcGhJZF0mJm5bZS5ncmFwaElkXS5oYXMoZS5vcE5hbWUpKXtjb25zdCB0PW5bZS5ncmFwaElkXSx7aW5wdXRzOm99PXQuZ2V0KGUub3BOYW1lKTtyZXR1cm4gby5tYXAoKGU9Pntjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sZSk7cmV0dXJuIHQuaGFzKGUub3BfbmFtZSkmJihuLmRhdGE9dC5nZXQoZS5vcF9uYW1lKSksbn0pKX1yZXR1cm4gbnVsbH0pKSxvWD1adygkWixRWixuWCwoKHQsZSxuKT0+e2lmKG51bGw9PT10fHxudWxsPT09bilyZXR1cm4gbnVsbDtjb25zdCBvPW4ubWFwKCh0PT4hMSkpLGk9W107aWYoMD09PW4ubGVuZ3RoKXJldHVybiBpO2NvbnN0IGE9ZVt0XS5ncmFwaF9pZCxyPU1hdGgubWF4KDAsdC0yMDApO2ZvcihsZXQgcz10LTE7cz49cjstLXMpaWYodm9pZCAwIT09ZVtzXSlmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoJiYob1t0XXx8ZVtzXS5ncmFwaF9pZCE9PWF8fGVbc10ub3BfbmFtZSE9PW5bdF0ub3BfbmFtZXx8ZVtzXS5vdXRwdXRfc2xvdCE9PW5bdF0ub3V0cHV0X3Nsb3R8fChpLnB1c2gocyksb1t0XT0hMCxpLmxlbmd0aCE9PW4ubGVuZ3RoKSk7Kyt0KTtyZXR1cm4gaX0pKSxpWD1adyh0WCwodD0+e2NvbnN0e2ZvY3VzZWRPcDplLG9wczpufT10O2lmKG51bGwhPT1lJiZ2b2lkIDAhPT1uW2UuZ3JhcGhJZF0mJm5bZS5ncmFwaElkXS5oYXMoZS5vcE5hbWUpKXtjb25zdCB0PW5bZS5ncmFwaElkXSx7Y29uc3VtZXJzOm99PXQuZ2V0KGUub3BOYW1lKTtyZXR1cm4gby5tYXAoKGU9PmUubWFwKChlPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LGUpO3JldHVybiB0LmhhcyhlLm9wX25hbWUpJiYobi5kYXRhPXQuZ2V0KGUub3BfbmFtZSkpLG59KSkpKX1yZXR1cm4gbnVsbH0pKSxhWD1adyhPWiwodD0+e2NvbnN0IGU9dC5leGVjdXRpb25zLnNjcm9sbEJlZ2luSW5kZXgsbj10LmV4ZWN1dGlvbnMuc2Nyb2xsQmVnaW5JbmRleCt0LmV4ZWN1dGlvbnMuZGlzcGxheUNvdW50LG89bmV3IEFycmF5KG4tZSkuZmlsbChudWxsKSxpPXQuYWxlcnRzLmZvY3VzVHlwZTtpZihudWxsPT09aSlyZXR1cm4gbztjb25zdCBhPXQuYWxlcnRzLmV4ZWN1dGlvbkluZGljZXNbaV07aWYodm9pZCAwPT09YSlyZXR1cm4gbztmb3IobGV0IGk9ZTtpPG47KytpKWEuaW5jbHVkZXMoaSkmJihvW2ktZV09dC5hbGVydHMuZm9jdXNUeXBlKTtyZXR1cm4gb30pKSxyWD1adyhPWiwodD0+dC5leGVjdXRpb25zKSksc1g9WncoclgsKHQ9PnQuZm9jdXNJbmRleCkpLGxYPVp3KHJYLCh0PT57aWYobnVsbD09PXQuZm9jdXNJbmRleClyZXR1cm4gbnVsbDtjb25zdHtmb2N1c0luZGV4OmUsc2Nyb2xsQmVnaW5JbmRleDpuLGRpc3BsYXlDb3VudDpvfT10O3JldHVybiBlPG58fGU+PW4rbz9udWxsOmUtbn0pKSxjWD1adyhyWCwodD0+dC5leGVjdXRpb25EYXRhKSksZFg9WncoT1osKHQ9PnQuZ3JhcGhzLmxvYWRpbmdPcHMpKSxwWD1adyhPWiwodD0+dC5zdGFja0ZyYW1lcykpLG1YPVp3KHJYLCh0PT57Y29uc3R7Zm9jdXNJbmRleDplLGV4ZWN1dGlvbkRhdGE6bn09dDtyZXR1cm4gbnVsbD09PWV8fHZvaWQgMD09PW5bZV0/bnVsbDpuW2VdfSkpLHVYPVp3KE9aLHNYLG1YLGVYLCgodCxlLG4sbyk9Pntjb25zdHtjb2RlTG9jYXRpb25Gb2N1c1R5cGU6aX09dDtyZXR1cm4gbnVsbD09PWk/bnVsbDppPT09ZlouRVhFQ1VUSU9OP251bGw9PT1lfHxudWxsPT09bj9udWxsOntjb2RlTG9jYXRpb25UeXBlOmZaLkVYRUNVVElPTixvcFR5cGU6bi5vcF90eXBlLGV4ZWN1dGlvbkluZGV4OmV9Om51bGw9PT1vP251bGw6e2NvZGVMb2NhdGlvblR5cGU6ZlouR1JBUEhfT1BfQ1JFQVRJT04sb3BUeXBlOm8ub3BfdHlwZSxvcE5hbWU6by5vcF9uYW1lfX0pKSxmWD1adyhPWixnWiksZ1g9WncoT1osKHQ9PnQuc291cmNlQ29kZSkpLGhYPVp3KGdYLCh0PT50LnNvdXJjZUZpbGVMaXN0TG9hZGVkKSk7WncoZ1gsKHQ9PnQuc291cmNlRmlsZUxpc3QpKTtjb25zdCBiWD1adyhnWCwodD0+e2NvbnN0e3NvdXJjZUZpbGVMaXN0OmUsZm9jdXNMaW5lU3BlYzpufT10O3JldHVybiBudWxsPT09bj8tMTpoWihlLG4pfSkpLHlYPVp3KGdYLGJYLCgodCxlKT0+LTE9PT1lP251bGw6dC5maWxlQ29udGVudHNbZV18fG51bGwpKSxfWD1adyhPWiwodD0+dC5zb3VyY2VDb2RlLmZvY3VzTGluZVNwZWMpKSxDWD1adyhPWiwodD0+dC5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSkpLE1YPWZ1bmN0aW9uKHQpe3JldHVyblt0XX07ZnVuY3Rpb24gdlgodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDcpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtjb25zdCBuPWhpKHQpLiRpbXBsaWNpdDtyZXR1cm4gWW0oKS5vblRvZ2dsZUZvY3VzVHlwZS5lbWl0KG4udHlwZSl9KSksUm0oMSwiZGl2Iiw4KSxrdSgyKSxBbSgpLFJtKDMsImRpdiIsOSksa3UoNCksQW0oKSxUbSg1LCJkaXYiKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPVltKCk7RG0oIm5nQ2xhc3MiLE1oKDQsTVgsdC50eXBlPT09bi5mb2N1c1R5cGU/ImZvY3VzIjoiIikpLHJjKDIpLFN1KHQuZGlzcGxheU5hbWUpLHJjKDIpLEV1KCIgIix0LmRpc3BsYXlTeW1ib2wsIjogIix0LmNvdW50LCIgIil9fWNsYXNzIHhYe2NvbnN0cnVjdG9yKCl7dGhpcy5udW1BbGVydHM9MCx0aGlzLmFsZXJ0c0JyZWFrZG93bj1bXSx0aGlzLmZvY3VzVHlwZT1udWxsLHRoaXMub25Ub2dnbGVGb2N1c1R5cGU9bmV3IExofX14WC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eFgpfSx4WC7JtWNtcD10byh7dHlwZTp4WCxzZWxlY3RvcnM6W1siYWxlcnRzLWNvbXBvbmVudCJdXSxpbnB1dHM6e251bUFsZXJ0czoibnVtQWxlcnRzIixhbGVydHNCcmVha2Rvd246ImFsZXJ0c0JyZWFrZG93biIsZm9jdXNUeXBlOiJmb2N1c1R5cGUifSxvdXRwdXRzOntvblRvZ2dsZUZvY3VzVHlwZToib25Ub2dnbGVGb2N1c1R5cGUifSxkZWNsczoxMCx2YXJzOjUsY29uc3RzOltbMSwiYWxlcnRzLWNvbnRhaW5lciJdLFsxLCJkZWJ1Z2dpbmctdGl0bGUiXSxbMSwibnVtLWFsZXJ0cy1jb250YWluZXIiXSxbMSwibnVtLWFsZXJ0cy1sYWJlbCJdLFsxLCJudW0tYWxlcnRzLXZhbHVlIiwzLCJuZ0NsYXNzIl0sWzEsImFsZXJ0cy1icmVha2Rvd24tY29udGFpbmVyIl0sWyJjbGFzcyIsImFsZXJ0cy1icmVha2Rvd24tdHlwZSIsMywibmdDbGFzcyIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiYWxlcnRzLWJyZWFrZG93bi10eXBlIiwzLCJuZ0NsYXNzIiwiY2xpY2siXSxbMSwiYWxlcnQtdHlwZS1uYW1lIl0sWzEsImFsZXJ0LXR5cGUtY291bnQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksUm0oMSwiZGl2IiwxKSxrdSgyLCJEZWJ1Z2dpbmciKSxBbSgpLFJtKDMsImRpdiIsMiksUm0oNCwiZGl2IiwzKSxrdSg1LCJBbGVydHMiKSxBbSgpLFJtKDYsImRpdiIsNCksa3UoNyksQW0oKSxBbSgpLFJtKDgsImRpdiIsNSksUXAoOSx2WCw2LDYsImRpdiIsNiksQW0oKSxBbSgpKSwyJmUmJihyYyg2KSxEbSgibmdDbGFzcyIsTWgoMyxNWCxuLm51bUFsZXJ0cz4wPyJub24temVybyI6IiIpKSxyYygxKSxEdSgiICIsbi5udW1BbGVydHMsIiAiKSxyYygyKSxEbSgibmdGb3JPZiIsbi5hbGVydHNCcmVha2Rvd24pKX0sZGlyZWN0aXZlczpbYU0sbE1dLHN0eWxlczpbIi5hbGVydHMtYnJlYWtkb3duLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDEwcHggMTBweCAxMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5hbGVydHMtYnJlYWtkb3duLXR5cGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDEwcHggMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiA2cHggMCA2cHggNTBweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmFsZXJ0cy1icmVha2Rvd24tdHlwZS5mb2N1c1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZWUwO1xufVxuXG4uYWxlcnRzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LWZhbWlseTogJ1JvYm90bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG59XG5cbi5hbGVydC10eXBlLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTUyNTkyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDNweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMjBweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmFsZXJ0LXR5cGUtbmFtZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDNweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRlYnVnZ2luZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5udW0tYWxlcnRzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogMTBweCAxMHB4IDEwcHggMzBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubnVtLWFsZXJ0cy1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLm51bS1hbGVydHMtdmFsdWVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyNHB4O1xufVxuXG4ubnVtLWFsZXJ0cy12YWx1ZS5ub24temVyb1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiNzgwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn0iXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeFgsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiYWxlcnRzLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vYWxlcnRzX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2FsZXJ0c19jb21wb25lbnQuY3NzIl19XX1dLG51bGwse251bUFsZXJ0czpbe3R5cGU6eHl9XSxhbGVydHNCcmVha2Rvd246W3t0eXBlOnh5fV0sZm9jdXNUeXBlOlt7dHlwZTp4eX1dLG9uVG9nZ2xlRm9jdXNUeXBlOlt7dHlwZTpPeX1dfSk7Y29uc3QgT1g9e1t1Wi5GVU5DVElPTl9SRUNPTVBJTEVfQUxFUlRdOntkaXNwbGF5TmFtZToiRnVuY3Rpb24gcmVjb21waWxlcyIsZGlzcGxheVN5bWJvbDoiQyJ9LFt1Wi5JTkZfTkFOX0FMRVJUXTp7ZGlzcGxheU5hbWU6Ik5hTi/iiJ4iLGRpc3BsYXlTeW1ib2w6IuKIniJ9LFt1Wi5URU5TT1JfU0hBUEVfQUxFUlRdOntkaXNwbGF5TmFtZToiVGVuc29yIHNoYXBlIixkaXNwbGF5U3ltYm9sOiLilqAifX07Y2xhc3MgUFh7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMubnVtQWxlcnRzJD10aGlzLnN0b3JlLnBpcGUoRncoUlopKSx0aGlzLmFsZXJ0c0JyZWFrZG93biQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KHpaLCh0PT57Y29uc3QgZT1PYmplY3Qua2V5cyh0KTtyZXR1cm4gZS5zb3J0KCksZS5tYXAoKGU9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7dHlwZTplfSxPWFtlXSkse2NvdW50OnRbZV19KSkpfSkpKSksdGhpcy5mb2N1c1R5cGUkPXRoaXMuc3RvcmUucGlwZShGdyhBWikpfW9uVG9nZ2xlRm9jdXNUeXBlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goQnEoe2FsZXJ0VHlwZTp0fSkpfX1QWC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UFgpKFNtKEl3KSl9LFBYLsm1Y21wPXRvKHt0eXBlOlBYLHNlbGVjdG9yczpbWyJ0Zi1kZWJ1Z2dlci12Mi1hbGVydHMiXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywibnVtQWxlcnRzIiwiYWxlcnRzQnJlYWtkb3duIiwiZm9jdXNUeXBlIiwib25Ub2dnbGVGb2N1c1R5cGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImFsZXJ0cy1jb21wb25lbnQiLDApLFZtKCJvblRvZ2dsZUZvY3VzVHlwZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25Ub2dnbGVGb2N1c1R5cGUoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgibnVtQWxlcnRzIixUaCgxLDMsbi5udW1BbGVydHMkKSkoImFsZXJ0c0JyZWFrZG93biIsVGgoMiw1LG4uYWxlcnRzQnJlYWtkb3duJCkpKCJmb2N1c1R5cGUiLFRoKDMsNyxuLmZvY3VzVHlwZSQpKX0sZGlyZWN0aXZlczpbeFhdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChQWCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Zi1kZWJ1Z2dlci12Mi1hbGVydHMiLHRlbXBsYXRlOidcbiAgICA8YWxlcnRzLWNvbXBvbmVudFxuICAgICAgW251bUFsZXJ0c109Im51bUFsZXJ0cyQgfCBhc3luYyJcbiAgICAgIFthbGVydHNCcmVha2Rvd25dPSJhbGVydHNCcmVha2Rvd24kIHwgYXN5bmMiXG4gICAgICBbZm9jdXNUeXBlXT0iZm9jdXNUeXBlJCB8IGFzeW5jIlxuICAgICAgKG9uVG9nZ2xlRm9jdXNUeXBlKT0ib25Ub2dnbGVGb2N1c1R5cGUoJGV2ZW50KSJcbiAgICA+XG4gICAgPC9hbGVydHMtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y29uc3Qgd1g9WyJzbGlkZXJXcmFwcGVyIl0sa1g9Tnooe3Bhc3NpdmU6ITF9KSxTWD17cHJvdmlkZTpJVix1c2VFeGlzdGluZzpxZSgoKCk9PlJYKSksbXVsdGk6ITB9O2NsYXNzIERYe31jb25zdCBFWD0kSShKSShLSShjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSksImFjY2VudCIpKTtjbGFzcyBSWCBleHRlbmRzIEVYe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyl7c3VwZXIodCksdGhpcy5fZm9jdXNNb25pdG9yPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9bix0aGlzLl9kaXI9byx0aGlzLl9uZ1pvbmU9YSx0aGlzLl9hbmltYXRpb25Nb2RlPXMsdGhpcy5faW52ZXJ0PSExLHRoaXMuX21heD0xMDAsdGhpcy5fbWluPTAsdGhpcy5fc3RlcD0xLHRoaXMuX3RodW1iTGFiZWw9ITEsdGhpcy5fdGlja0ludGVydmFsPTAsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl92ZXJ0aWNhbD0hMSx0aGlzLmNoYW5nZT1uZXcgTGgsdGhpcy5pbnB1dD1uZXcgTGgsdGhpcy52YWx1ZUNoYW5nZT1uZXcgTGgsdGhpcy5vblRvdWNoZWQ9KCk9Pnt9LHRoaXMuX3BlcmNlbnQ9MCx0aGlzLl9pc1NsaWRpbmc9bnVsbCx0aGlzLl9pc0FjdGl2ZT0hMSx0aGlzLl90aWNrSW50ZXJ2YWxQZXJjZW50PTAsdGhpcy5fc2xpZGVyRGltZW5zaW9ucz1udWxsLHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm49KCk9Pnt9LHRoaXMuX2RpckNoYW5nZVN1YnNjcmlwdGlvbj1tLkVNUFRZLHRoaXMuX3BvaW50ZXJEb3duPXQ9Pnt0aGlzLmRpc2FibGVkfHx0aGlzLl9pc1NsaWRpbmd8fCFBWCh0KSYmMCE9PXQuYnV0dG9ufHx0aGlzLl9uZ1pvbmUucnVuKCgoKT0+e3RoaXMuX3RvdWNoSWQ9QVgodCk/KGZ1bmN0aW9uIGUodCxuKXtmb3IobGV0IGU9MDtlPHQudG91Y2hlcy5sZW5ndGg7ZSsrKXtjb25zdCBvPXQudG91Y2hlc1tlXS50YXJnZXQ7aWYobj09PW98fG4uY29udGFpbnMobykpcmV0dXJuIHQudG91Y2hlc1tlXS5pZGVudGlmaWVyfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0LHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk6dm9pZCAwO2NvbnN0IG49VFgodCx0aGlzLl90b3VjaElkKTtpZihuKXtjb25zdCBlPXRoaXMudmFsdWU7dGhpcy5faXNTbGlkaW5nPSJwb2ludGVyIix0aGlzLl9sYXN0UG9pbnRlckV2ZW50PXQsdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzSG9zdEVsZW1lbnQoKSx0aGlzLl9vbk1vdXNlZW50ZXIoKSx0aGlzLl9iaW5kR2xvYmFsRXZlbnRzKHQpLHRoaXMuX2ZvY3VzSG9zdEVsZW1lbnQoKSx0aGlzLl91cGRhdGVWYWx1ZUZyb21Qb3NpdGlvbihuKSx0aGlzLl92YWx1ZU9uU2xpZGVTdGFydD1lLGUhPXRoaXMudmFsdWUmJnRoaXMuX2VtaXRJbnB1dEV2ZW50KCl9fSkpfSx0aGlzLl9wb2ludGVyTW92ZT10PT57aWYoInBvaW50ZXIiPT09dGhpcy5faXNTbGlkaW5nKXtjb25zdCBlPVRYKHQsdGhpcy5fdG91Y2hJZCk7aWYoZSl7dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IG49dGhpcy52YWx1ZTt0aGlzLl9sYXN0UG9pbnRlckV2ZW50PXQsdGhpcy5fdXBkYXRlVmFsdWVGcm9tUG9zaXRpb24oZSksbiE9dGhpcy52YWx1ZSYmdGhpcy5fZW1pdElucHV0RXZlbnQoKX19fSx0aGlzLl9wb2ludGVyVXA9dD0+eyJwb2ludGVyIj09PXRoaXMuX2lzU2xpZGluZyYmKEFYKHQpJiYibnVtYmVyIj09dHlwZW9mIHRoaXMuX3RvdWNoSWQmJiFOWCh0LmNoYW5nZWRUb3VjaGVzLHRoaXMuX3RvdWNoSWQpfHwodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX3JlbW92ZUdsb2JhbEV2ZW50cygpLHRoaXMuX2lzU2xpZGluZz1udWxsLHRoaXMuX3RvdWNoSWQ9dm9pZCAwLHRoaXMuX3ZhbHVlT25TbGlkZVN0YXJ0PT10aGlzLnZhbHVlfHx0aGlzLmRpc2FibGVkfHx0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKSx0aGlzLl92YWx1ZU9uU2xpZGVTdGFydD10aGlzLl9sYXN0UG9pbnRlckV2ZW50PW51bGwpKX0sdGhpcy5fd2luZG93Qmx1cj0oKT0+e3RoaXMuX2xhc3RQb2ludGVyRXZlbnQmJnRoaXMuX3BvaW50ZXJVcCh0aGlzLl9sYXN0UG9pbnRlckV2ZW50KX0sdGhpcy5fZG9jdW1lbnQ9cix0aGlzLnRhYkluZGV4PXBhcnNlSW50KGkpfHwwLGEucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57Y29uc3QgZT10Lm5hdGl2ZUVsZW1lbnQ7ZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX3BvaW50ZXJEb3duLGtYKSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX3BvaW50ZXJEb3duLGtYKX0pKX1nZXQgaW52ZXJ0KCl7cmV0dXJuIHRoaXMuX2ludmVydH1zZXQgaW52ZXJ0KHQpe3RoaXMuX2ludmVydD15eih0KX1nZXQgbWF4KCl7cmV0dXJuIHRoaXMuX21heH1zZXQgbWF4KHQpe3RoaXMuX21heD1feih0LHRoaXMuX21heCksdGhpcy5fcGVyY2VudD10aGlzLl9jYWxjdWxhdGVQZXJjZW50YWdlKHRoaXMuX3ZhbHVlKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1nZXQgbWluKCl7cmV0dXJuIHRoaXMuX21pbn1zZXQgbWluKHQpe3RoaXMuX21pbj1feih0LHRoaXMuX21pbiksdGhpcy5fcGVyY2VudD10aGlzLl9jYWxjdWxhdGVQZXJjZW50YWdlKHRoaXMuX3ZhbHVlKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1nZXQgc3RlcCgpe3JldHVybiB0aGlzLl9zdGVwfXNldCBzdGVwKHQpe3RoaXMuX3N0ZXA9X3oodCx0aGlzLl9zdGVwKSx0aGlzLl9zdGVwJTEhPTAmJih0aGlzLl9yb3VuZFRvRGVjaW1hbD10aGlzLl9zdGVwLnRvU3RyaW5nKCkuc3BsaXQoIi4iKS5wb3AoKS5sZW5ndGgpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfWdldCB0aHVtYkxhYmVsKCl7cmV0dXJuIHRoaXMuX3RodW1iTGFiZWx9c2V0IHRodW1iTGFiZWwodCl7dGhpcy5fdGh1bWJMYWJlbD15eih0KX1nZXQgdGlja0ludGVydmFsKCl7cmV0dXJuIHRoaXMuX3RpY2tJbnRlcnZhbH1zZXQgdGlja0ludGVydmFsKHQpe3RoaXMuX3RpY2tJbnRlcnZhbD0iYXV0byI9PT10PyJhdXRvIjoibnVtYmVyIj09dHlwZW9mIHR8fCJzdHJpbmciPT10eXBlb2YgdD9feih0LHRoaXMuX3RpY2tJbnRlcnZhbCk6MH1nZXQgdmFsdWUoKXtyZXR1cm4gbnVsbD09PXRoaXMuX3ZhbHVlJiYodGhpcy52YWx1ZT10aGlzLl9taW4pLHRoaXMuX3ZhbHVlfXNldCB2YWx1ZSh0KXtpZih0IT09dGhpcy5fdmFsdWUpe2xldCBlPV96KHQsMCk7dGhpcy5fcm91bmRUb0RlY2ltYWwmJmUhPT10aGlzLm1pbiYmZSE9PXRoaXMubWF4JiYoZT1wYXJzZUZsb2F0KGUudG9GaXhlZCh0aGlzLl9yb3VuZFRvRGVjaW1hbCkpKSx0aGlzLl92YWx1ZT1lLHRoaXMuX3BlcmNlbnQ9dGhpcy5fY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLl92YWx1ZSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9fWdldCB2ZXJ0aWNhbCgpe3JldHVybiB0aGlzLl92ZXJ0aWNhbH1zZXQgdmVydGljYWwodCl7dGhpcy5fdmVydGljYWw9eXoodCl9Z2V0IGRpc3BsYXlWYWx1ZSgpe3JldHVybiB0aGlzLmRpc3BsYXlXaXRoP3RoaXMuZGlzcGxheVdpdGgodGhpcy52YWx1ZSk6dGhpcy5fcm91bmRUb0RlY2ltYWwmJnRoaXMudmFsdWUmJnRoaXMudmFsdWUlMSE9MD90aGlzLnZhbHVlLnRvRml4ZWQodGhpcy5fcm91bmRUb0RlY2ltYWwpOnRoaXMudmFsdWV8fDB9Zm9jdXModCl7dGhpcy5fZm9jdXNIb3N0RWxlbWVudCh0KX1ibHVyKCl7dGhpcy5fYmx1ckhvc3RFbGVtZW50KCl9Z2V0IHBlcmNlbnQoKXtyZXR1cm4gdGhpcy5fY2xhbXAodGhpcy5fcGVyY2VudCl9X3Nob3VsZEludmVydEF4aXMoKXtyZXR1cm4gdGhpcy52ZXJ0aWNhbD8hdGhpcy5pbnZlcnQ6dGhpcy5pbnZlcnR9X2lzTWluVmFsdWUoKXtyZXR1cm4gMD09PXRoaXMucGVyY2VudH1fZ2V0VGh1bWJHYXAoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZD83OnRoaXMuX2lzTWluVmFsdWUoKSYmIXRoaXMudGh1bWJMYWJlbD90aGlzLl9pc0FjdGl2ZT8xMDo3OjB9X2dldFRyYWNrQmFja2dyb3VuZFN0eWxlcygpe2NvbnN0IHQ9dGhpcy52ZXJ0aWNhbD9gMSwgJHsxLXRoaXMucGVyY2VudH0sIDFgOjEtdGhpcy5wZXJjZW50KyIsIDEsIDEiO3JldHVybnt0cmFuc2Zvcm06YHRyYW5zbGF0ZSR7dGhpcy52ZXJ0aWNhbD8iWSI6IlgifSgke3RoaXMuX3Nob3VsZEludmVydE1vdXNlQ29vcmRzKCk/Ii0iOiIifSR7dGhpcy5fZ2V0VGh1bWJHYXAoKX1weCkgc2NhbGUzZCgke3R9KWB9fV9nZXRUcmFja0ZpbGxTdHlsZXMoKXtjb25zdCB0PXRoaXMucGVyY2VudCxlPXRoaXMudmVydGljYWw/YDEsICR7dH0sIDFgOmAke3R9LCAxLCAxYDtyZXR1cm57dHJhbnNmb3JtOmB0cmFuc2xhdGUke3RoaXMudmVydGljYWw/IlkiOiJYIn0oJHt0aGlzLl9zaG91bGRJbnZlcnRNb3VzZUNvb3JkcygpPyIiOiItIn0ke3RoaXMuX2dldFRodW1iR2FwKCl9cHgpIHNjYWxlM2QoJHtlfSlgLGRpc3BsYXk6MD09PXQ/Im5vbmUiOiIifX1fZ2V0VGlja3NDb250YWluZXJTdHlsZXMoKXtyZXR1cm57dHJhbnNmb3JtOmB0cmFuc2xhdGUke3RoaXMudmVydGljYWw/IlkiOiJYIn0oJHt0aGlzLnZlcnRpY2FsfHwicnRsIiE9dGhpcy5fZ2V0RGlyZWN0aW9uKCk/Ii0iOiIifSR7dGhpcy5fdGlja0ludGVydmFsUGVyY2VudC8yKjEwMH0lKWB9fV9nZXRUaWNrc1N0eWxlcygpe2xldCB0PTEwMCp0aGlzLl90aWNrSW50ZXJ2YWxQZXJjZW50LGU9e2JhY2tncm91bmRTaXplOnRoaXMudmVydGljYWw/YDJweCAke3R9JWA6YCR7dH0lIDJweGAsdHJhbnNmb3JtOmB0cmFuc2xhdGVaKDApIHRyYW5zbGF0ZSR7dGhpcy52ZXJ0aWNhbD8iWSI6IlgifSgke3RoaXMudmVydGljYWx8fCJydGwiIT10aGlzLl9nZXREaXJlY3Rpb24oKT8iIjoiLSJ9JHt0LzJ9JSkke3RoaXMudmVydGljYWx8fCJydGwiIT10aGlzLl9nZXREaXJlY3Rpb24oKT8iIjoiIHJvdGF0ZSgxODBkZWcpIn1gfTtpZih0aGlzLl9pc01pblZhbHVlKCkmJnRoaXMuX2dldFRodW1iR2FwKCkpe2NvbnN0IHQ9dGhpcy5fc2hvdWxkSW52ZXJ0QXhpcygpO2xldCBuO249dGhpcy52ZXJ0aWNhbD90PyJCb3R0b20iOiJUb3AiOnQ/IlJpZ2h0IjoiTGVmdCIsZVtgcGFkZGluZyR7bn1gXT1gJHt0aGlzLl9nZXRUaHVtYkdhcCgpfXB4YH1yZXR1cm4gZX1fZ2V0VGh1bWJDb250YWluZXJTdHlsZXMoKXtjb25zdCB0PXRoaXMuX3Nob3VsZEludmVydEF4aXMoKTtyZXR1cm57dHJhbnNmb3JtOmB0cmFuc2xhdGUke3RoaXMudmVydGljYWw/IlkiOiJYIn0oLSR7MTAwKigoInJ0bCIhPXRoaXMuX2dldERpcmVjdGlvbigpfHx0aGlzLnZlcnRpY2FsP3Q6IXQpP3RoaXMucGVyY2VudDoxLXRoaXMucGVyY2VudCl9JSlgfX1fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMoKXtjb25zdCB0PXRoaXMuX3Nob3VsZEludmVydEF4aXMoKTtyZXR1cm4icnRsIiE9dGhpcy5fZ2V0RGlyZWN0aW9uKCl8fHRoaXMudmVydGljYWw/dDohdH1fZ2V0RGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpciYmInJ0bCI9PXRoaXMuX2Rpci52YWx1ZT8icnRsIjoibHRyIn1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCEwKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLl9pc0FjdGl2ZT0hIXQmJiJrZXlib2FyZCIhPT10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKX0pKSx0aGlzLl9kaXImJih0aGlzLl9kaXJDaGFuZ2VTdWJzY3JpcHRpb249dGhpcy5fZGlyLmNoYW5nZS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSkpfW5nT25EZXN0cm95KCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7dC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX3BvaW50ZXJEb3duLGtYKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX3BvaW50ZXJEb3duLGtYKSx0aGlzLl9sYXN0UG9pbnRlckV2ZW50PW51bGwsdGhpcy5fcmVtb3ZlR2xvYmFsRXZlbnRzKCksdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpLHRoaXMuX2RpckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfV9vbk1vdXNlZW50ZXIoKXt0aGlzLmRpc2FibGVkfHwodGhpcy5fc2xpZGVyRGltZW5zaW9ucz10aGlzLl9nZXRTbGlkZXJEaW1lbnNpb25zKCksdGhpcy5fdXBkYXRlVGlja0ludGVydmFsUGVyY2VudCgpKX1fb25Gb2N1cygpe3RoaXMuX3NsaWRlckRpbWVuc2lvbnM9dGhpcy5fZ2V0U2xpZGVyRGltZW5zaW9ucygpLHRoaXMuX3VwZGF0ZVRpY2tJbnRlcnZhbFBlcmNlbnQoKX1fb25CbHVyKCl7dGhpcy5vblRvdWNoZWQoKX1fb25LZXlkb3duKHQpe2lmKHRoaXMuZGlzYWJsZWR8fGJ6KHQpfHx0aGlzLl9pc1NsaWRpbmcmJiJrZXlib2FyZCIhPT10aGlzLl9pc1NsaWRpbmcpcmV0dXJuO2NvbnN0IGU9dGhpcy52YWx1ZTtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIDMzOnRoaXMuX2luY3JlbWVudCgxMCk7YnJlYWs7Y2FzZSAzNDp0aGlzLl9pbmNyZW1lbnQoLTEwKTticmVhaztjYXNlIDM1OnRoaXMudmFsdWU9dGhpcy5tYXg7YnJlYWs7Y2FzZSAzNjp0aGlzLnZhbHVlPXRoaXMubWluO2JyZWFrO2Nhc2UgMzc6dGhpcy5faW5jcmVtZW50KCJydGwiPT10aGlzLl9nZXREaXJlY3Rpb24oKT8xOi0xKTticmVhaztjYXNlIGd6OnRoaXMuX2luY3JlbWVudCgxKTticmVhaztjYXNlIDM5OnRoaXMuX2luY3JlbWVudCgicnRsIj09dGhpcy5fZ2V0RGlyZWN0aW9uKCk/LTE6MSk7YnJlYWs7Y2FzZSBoejp0aGlzLl9pbmNyZW1lbnQoLTEpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufWUhPXRoaXMudmFsdWUmJih0aGlzLl9lbWl0SW5wdXRFdmVudCgpLHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpKSx0aGlzLl9pc1NsaWRpbmc9ImtleWJvYXJkIix0LnByZXZlbnREZWZhdWx0KCl9X29uS2V5dXAoKXsia2V5Ym9hcmQiPT09dGhpcy5faXNTbGlkaW5nJiYodGhpcy5faXNTbGlkaW5nPW51bGwpfV9nZXRXaW5kb3coKXtyZXR1cm4gdGhpcy5fZG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvd31fYmluZEdsb2JhbEV2ZW50cyh0KXtjb25zdCBlPXRoaXMuX2RvY3VtZW50LG49QVgodCksbz1uPyJ0b3VjaGVuZCI6Im1vdXNldXAiO2UuYWRkRXZlbnRMaXN0ZW5lcihuPyJ0b3VjaG1vdmUiOiJtb3VzZW1vdmUiLHRoaXMuX3BvaW50ZXJNb3ZlLGtYKSxlLmFkZEV2ZW50TGlzdGVuZXIobyx0aGlzLl9wb2ludGVyVXAsa1gpLG4mJmUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLHRoaXMuX3BvaW50ZXJVcCxrWCk7Y29uc3QgaT10aGlzLl9nZXRXaW5kb3coKTt2b2lkIDAhPT1pJiZpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX3dpbmRvd0JsdXIpfV9yZW1vdmVHbG9iYWxFdmVudHMoKXtjb25zdCB0PXRoaXMuX2RvY3VtZW50O3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9wb2ludGVyTW92ZSxrWCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9wb2ludGVyVXAsa1gpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9wb2ludGVyTW92ZSxrWCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5fcG9pbnRlclVwLGtYKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIix0aGlzLl9wb2ludGVyVXAsa1gpO2NvbnN0IGU9dGhpcy5fZ2V0V2luZG93KCk7dm9pZCAwIT09ZSYmZSYmZS5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl93aW5kb3dCbHVyKX1faW5jcmVtZW50KHQpe3RoaXMudmFsdWU9dGhpcy5fY2xhbXAoKHRoaXMudmFsdWV8fDApK3RoaXMuc3RlcCp0LHRoaXMubWluLHRoaXMubWF4KX1fdXBkYXRlVmFsdWVGcm9tUG9zaXRpb24odCl7aWYoIXRoaXMuX3NsaWRlckRpbWVuc2lvbnMpcmV0dXJuO2xldCBlPXRoaXMuX2NsYW1wKCgodGhpcy52ZXJ0aWNhbD90Lnk6dC54KS0odGhpcy52ZXJ0aWNhbD90aGlzLl9zbGlkZXJEaW1lbnNpb25zLnRvcDp0aGlzLl9zbGlkZXJEaW1lbnNpb25zLmxlZnQpKS8odGhpcy52ZXJ0aWNhbD90aGlzLl9zbGlkZXJEaW1lbnNpb25zLmhlaWdodDp0aGlzLl9zbGlkZXJEaW1lbnNpb25zLndpZHRoKSk7aWYodGhpcy5fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMoKSYmKGU9MS1lKSwwPT09ZSl0aGlzLnZhbHVlPXRoaXMubWluO2Vsc2UgaWYoMT09PWUpdGhpcy52YWx1ZT10aGlzLm1heDtlbHNle2NvbnN0IHQ9dGhpcy5fY2FsY3VsYXRlVmFsdWUoZSksbj1NYXRoLnJvdW5kKCh0LXRoaXMubWluKS90aGlzLnN0ZXApKnRoaXMuc3RlcCt0aGlzLm1pbjt0aGlzLnZhbHVlPXRoaXMuX2NsYW1wKG4sdGhpcy5taW4sdGhpcy5tYXgpfX1fZW1pdENoYW5nZUV2ZW50KCl7dGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbih0aGlzLnZhbHVlKSx0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSksdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudCgpKX1fZW1pdElucHV0RXZlbnQoKXt0aGlzLmlucHV0LmVtaXQodGhpcy5fY3JlYXRlQ2hhbmdlRXZlbnQoKSl9X3VwZGF0ZVRpY2tJbnRlcnZhbFBlcmNlbnQoKXtpZih0aGlzLnRpY2tJbnRlcnZhbCYmdGhpcy5fc2xpZGVyRGltZW5zaW9ucylpZigiYXV0byI9PXRoaXMudGlja0ludGVydmFsKXtsZXQgdD10aGlzLnZlcnRpY2FsP3RoaXMuX3NsaWRlckRpbWVuc2lvbnMuaGVpZ2h0OnRoaXMuX3NsaWRlckRpbWVuc2lvbnMud2lkdGgsZT1NYXRoLmNlaWwoMzAvKHQqdGhpcy5zdGVwLyh0aGlzLm1heC10aGlzLm1pbikpKTt0aGlzLl90aWNrSW50ZXJ2YWxQZXJjZW50PWUqdGhpcy5zdGVwL3R9ZWxzZSB0aGlzLl90aWNrSW50ZXJ2YWxQZXJjZW50PXRoaXMudGlja0ludGVydmFsKnRoaXMuc3RlcC8odGhpcy5tYXgtdGhpcy5taW4pfV9jcmVhdGVDaGFuZ2VFdmVudCh0PXRoaXMudmFsdWUpe2xldCBlPW5ldyBEWDtyZXR1cm4gZS5zb3VyY2U9dGhpcyxlLnZhbHVlPXQsZX1fY2FsY3VsYXRlUGVyY2VudGFnZSh0KXtyZXR1cm4oKHR8fDApLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pfV9jYWxjdWxhdGVWYWx1ZSh0KXtyZXR1cm4gdGhpcy5taW4rdCoodGhpcy5tYXgtdGhpcy5taW4pfV9jbGFtcCh0LGU9MCxuPTEpe3JldHVybiBNYXRoLm1heChlLE1hdGgubWluKHQsbikpfV9nZXRTbGlkZXJEaW1lbnNpb25zKCl7cmV0dXJuIHRoaXMuX3NsaWRlcldyYXBwZXI/dGhpcy5fc2xpZGVyV3JhcHBlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOm51bGx9X2ZvY3VzSG9zdEVsZW1lbnQodCl7dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKHQpfV9ibHVySG9zdEVsZW1lbnQoKXt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpfXdyaXRlVmFsdWUodCl7dGhpcy52YWx1ZT10fXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbj10fXJlZ2lzdGVyT25Ub3VjaGVkKHQpe3RoaXMub25Ub3VjaGVkPXR9c2V0RGlzYWJsZWRTdGF0ZSh0KXt0aGlzLmRpc2FibGVkPXR9fWZ1bmN0aW9uIEFYKHQpe3JldHVybiJ0Ij09PXQudHlwZVswXX1mdW5jdGlvbiBUWCh0LGUpe2xldCBuO3JldHVybiBuPUFYKHQpPyJudW1iZXIiPT10eXBlb2YgZT9OWCh0LnRvdWNoZXMsZSl8fE5YKHQuY2hhbmdlZFRvdWNoZXMsZSk6dC50b3VjaGVzWzBdfHx0LmNoYW5nZWRUb3VjaGVzWzBdOnQsbj97eDpuLmNsaWVudFgseTpuLmNsaWVudFl9OnZvaWQgMH1mdW5jdGlvbiBOWCh0LGUpe2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl0uaWRlbnRpZmllcj09PWUpcmV0dXJuIHRbbl19UlguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJYKShTbShoZyksU20oU0kpLFNtKFVnKSxTbShISSw4KSxOYSgidGFiaW5kZXgiKSxTbShhXyksU20oWl8pLFNtKFZQLDgpKX0sUlguybVjbXA9dG8oe3R5cGU6Ulgsc2VsZWN0b3JzOltbIm1hdC1zbGlkZXIiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKHdYLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX3NsaWRlcldyYXBwZXI9dC5maXJzdCl9fSxob3N0QXR0cnM6WyJyb2xlIiwic2xpZGVyIiwxLCJtYXQtc2xpZGVyIiwibWF0LWZvY3VzLWluZGljYXRvciJdLGhvc3RWYXJzOjI5LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiZm9jdXMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uRm9jdXMoKX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25CbHVyKCl9KSkoImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9vbktleWRvd24oZSl9KSkoImtleXVwIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbktleXVwKCl9KSkoIm1vdXNlZW50ZXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uTW91c2VlbnRlcigpfSkpKCJzZWxlY3RzdGFydCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUucHJldmVudERlZmF1bHQoKX0pKSwyJmUmJihUdSgidGFiSW5kZXgiLG4udGFiSW5kZXgpLGpwKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkKSgiYXJpYS12YWx1ZW1heCIsbi5tYXgpKCJhcmlhLXZhbHVlbWluIixuLm1pbikoImFyaWEtdmFsdWVub3ciLG4udmFsdWUpKCJhcmlhLXZhbHVldGV4dCIsbnVsbD09bi52YWx1ZVRleHQ/bi5kaXNwbGF5VmFsdWU6bi52YWx1ZVRleHQpKCJhcmlhLW9yaWVudGF0aW9uIixuLnZlcnRpY2FsPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwiKSxwdSgibWF0LXNsaWRlci1kaXNhYmxlZCIsbi5kaXNhYmxlZCkoIm1hdC1zbGlkZXItaGFzLXRpY2tzIixuLnRpY2tJbnRlcnZhbCkoIm1hdC1zbGlkZXItaG9yaXpvbnRhbCIsIW4udmVydGljYWwpKCJtYXQtc2xpZGVyLWF4aXMtaW52ZXJ0ZWQiLG4uX3Nob3VsZEludmVydEF4aXMoKSkoIm1hdC1zbGlkZXItaW52ZXJ0LW1vdXNlLWNvb3JkcyIsbi5fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMoKSkoIm1hdC1zbGlkZXItc2xpZGluZyIsbi5faXNTbGlkaW5nKSgibWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIixuLnRodW1iTGFiZWwpKCJtYXQtc2xpZGVyLXZlcnRpY2FsIixuLnZlcnRpY2FsKSgibWF0LXNsaWRlci1taW4tdmFsdWUiLG4uX2lzTWluVmFsdWUoKSkoIm1hdC1zbGlkZXItaGlkZS1sYXN0LXRpY2siLG4uZGlzYWJsZWR8fG4uX2lzTWluVmFsdWUoKSYmbi5fZ2V0VGh1bWJHYXAoKSYmbi5fc2hvdWxkSW52ZXJ0QXhpcygpKSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1uLl9hbmltYXRpb25Nb2RlKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixjb2xvcjoiY29sb3IiLHRhYkluZGV4OiJ0YWJJbmRleCIsaW52ZXJ0OiJpbnZlcnQiLG1heDoibWF4IixtaW46Im1pbiIsc3RlcDoic3RlcCIsdGh1bWJMYWJlbDoidGh1bWJMYWJlbCIsdGlja0ludGVydmFsOiJ0aWNrSW50ZXJ2YWwiLHZhbHVlOiJ2YWx1ZSIsdmVydGljYWw6InZlcnRpY2FsIixkaXNwbGF5V2l0aDoiZGlzcGxheVdpdGgiLHZhbHVlVGV4dDoidmFsdWVUZXh0In0sb3V0cHV0czp7Y2hhbmdlOiJjaGFuZ2UiLGlucHV0OiJpbnB1dCIsdmFsdWVDaGFuZ2U6InZhbHVlQ2hhbmdlIn0sZXhwb3J0QXM6WyJtYXRTbGlkZXIiXSxmZWF0dXJlczpbcGcoW1NYXSkseHBdLGRlY2xzOjEzLHZhcnM6Nixjb25zdHM6W1sxLCJtYXQtc2xpZGVyLXdyYXBwZXIiXSxbInNsaWRlcldyYXBwZXIiLCIiXSxbMSwibWF0LXNsaWRlci10cmFjay13cmFwcGVyIl0sWzEsIm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCIsMywibmdTdHlsZSJdLFsxLCJtYXQtc2xpZGVyLXRyYWNrLWZpbGwiLDMsIm5nU3R5bGUiXSxbMSwibWF0LXNsaWRlci10aWNrcy1jb250YWluZXIiLDMsIm5nU3R5bGUiXSxbMSwibWF0LXNsaWRlci10aWNrcyIsMywibmdTdHlsZSJdLFsxLCJtYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lciIsMywibmdTdHlsZSJdLFsxLCJtYXQtc2xpZGVyLWZvY3VzLXJpbmciXSxbMSwibWF0LXNsaWRlci10aHVtYiJdLFsxLCJtYXQtc2xpZGVyLXRodW1iLWxhYmVsIl0sWzEsIm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwLDEpLFJtKDIsImRpdiIsMiksVG0oMywiZGl2IiwzKSxUbSg0LCJkaXYiLDQpLEFtKCksUm0oNSwiZGl2Iiw1KSxUbSg2LCJkaXYiLDYpLEFtKCksUm0oNywiZGl2Iiw3KSxUbSg4LCJkaXYiLDgpLFRtKDksImRpdiIsOSksUm0oMTAsImRpdiIsMTApLFJtKDExLCJzcGFuIiwxMSksa3UoMTIpLEFtKCksQW0oKSxBbSgpLEFtKCkpLDImZSYmKHJjKDMpLERtKCJuZ1N0eWxlIixuLl9nZXRUcmFja0JhY2tncm91bmRTdHlsZXMoKSkscmMoMSksRG0oIm5nU3R5bGUiLG4uX2dldFRyYWNrRmlsbFN0eWxlcygpKSxyYygxKSxEbSgibmdTdHlsZSIsbi5fZ2V0VGlja3NDb250YWluZXJTdHlsZXMoKSkscmMoMSksRG0oIm5nU3R5bGUiLG4uX2dldFRpY2tzU3R5bGVzKCkpLHJjKDEpLERtKCJuZ1N0eWxlIixuLl9nZXRUaHVtYkNvbnRhaW5lclN0eWxlcygpKSxyYyg1KSxTdShuLmRpc3BsYXlWYWx1ZSkpfSxkaXJlY3RpdmVzOltDTV0sc3R5bGVzOlsnLm1hdC1zbGlkZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6OHB4O291dGxpbmU6bm9uZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKTphY3RpdmUsLm1hdC1zbGlkZXIubWF0LXNsaWRlci1zbGlkaW5nOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCl7Y3Vyc29yOi13ZWJraXQtZ3JhYmJpbmc7Y3Vyc29yOmdyYWJiaW5nfS5tYXQtc2xpZGVyLXdyYXBwZXJ7LXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6ZXhhY3Q7Y29sb3ItYWRqdXN0OmV4YWN0O3Bvc2l0aW9uOmFic29sdXRlfS5tYXQtc2xpZGVyLXRyYWNrLXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO292ZXJmbG93OmhpZGRlbn0ubWF0LXNsaWRlci10cmFjay1maWxse3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zZm9ybS1vcmlnaW46MCAwO3RyYW5zaXRpb246dHJhbnNmb3JtIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7b3ZlcmZsb3c6aGlkZGVufS5tYXQtc2xpZGVyLXRpY2tzey13ZWJraXQtYmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQ7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItdGh1bWItY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci1mb2N1cy1yaW5ne3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czo1MCU7dHJhbnNmb3JtOnNjYWxlKDApO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLG9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1zbGlkZXItZm9jdXMtcmluZywubWF0LXNsaWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX0ubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpOm5vdCgubWF0LXNsaWRlci1zbGlkaW5nKSAubWF0LXNsaWRlci10aHVtYi1sYWJlbCwubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpOm5vdCgubWF0LXNsaWRlci1zbGlkaW5nKSAubWF0LXNsaWRlci10aHVtYntjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFifS5tYXQtc2xpZGVyLXRodW1ie3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi0xMHB4O2JvdHRvbTotMTBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXI6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6NTAlO3RyYW5zZm9ybTpzY2FsZSgwLjcpO3RyYW5zaXRpb246dHJhbnNmb3JtIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYm9yZGVyLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2Rpc3BsYXk6bm9uZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O2JvcmRlci1yYWRpdXM6NTAlO3RyYW5zaXRpb246dHJhbnNmb3JtIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJvcmRlci1yYWRpdXMgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse291dGxpbmU6c29saWQgMXB4fS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7ei1pbmRleDoxO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItc2xpZGluZyAubWF0LXNsaWRlci10cmFjay1maWxsLC5tYXQtc2xpZGVyLXNsaWRpbmcgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCwubWF0LXNsaWRlci1zbGlkaW5nIC5tYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lcnt0cmFuc2l0aW9uLWR1cmF0aW9uOjBtc30ubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItd2lkdGg6MDtib3JkZXItc3R5bGU6c29saWQ7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci1oYXMtdGlja3MuY2RrLWZvY3VzZWQ6bm90KC5tYXQtc2xpZGVyLWhpZGUtbGFzdC10aWNrKSAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciwubWF0LXNsaWRlci1oYXMtdGlja3M6aG92ZXI6bm90KC5tYXQtc2xpZGVyLWhpZGUtbGFzdC10aWNrKSAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntvcGFjaXR5OjF9Lm1hdC1zbGlkZXItaGFzLXRpY2tzLmNkay1mb2N1c2VkOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkgLm1hdC1zbGlkZXItdGlja3MsLm1hdC1zbGlkZXItaGFzLXRpY2tzOmhvdmVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkgLm1hdC1zbGlkZXItdGlja3N7b3BhY2l0eToxfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tkaXNwbGF5Om5vbmV9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtkaXNwbGF5OmZsZXh9Lm1hdC1zbGlkZXItYXhpcy1pbnZlcnRlZCAubWF0LXNsaWRlci10cmFjay1maWxse3RyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlfS5tYXQtc2xpZGVyLWF4aXMtaW52ZXJ0ZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHt0cmFuc2Zvcm0tb3JpZ2luOjAgMH0ubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYnt0cmFuc2Zvcm06c2NhbGUoMCl9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtib3JkZXItcmFkaXVzOjUwJSA1MCUgMH0ubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7b3BhY2l0eToxfS5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkuY2RrLW1vdXNlLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstdG91Y2gtZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWJ7Ym9yZGVyLXdpZHRoOjJweDt0cmFuc2Zvcm06c2NhbGUoMSl9Lm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3t0cmFuc2Zvcm06c2NhbGUoMCk7b3BhY2l0eTowfS5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci13aWR0aDo0cHg7dHJhbnNmb3JtOnNjYWxlKDAuNSl9Lm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7ZGlzcGxheTpub25lfS5tYXQtc2xpZGVyLWhvcml6b250YWx7aGVpZ2h0OjQ4cHg7bWluLXdpZHRoOjEyOHB4fS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItd3JhcHBlcntoZWlnaHQ6MnB4O3RvcDoyM3B4O2xlZnQ6OHB4O3JpZ2h0OjhweH0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye2hlaWdodDoycHg7Ym9yZGVyLWxlZnQtd2lkdGg6MnB4O3JpZ2h0OjA7dG9wOjB9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay13cmFwcGVye2hlaWdodDoycHg7d2lkdGg6MTAwJX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7aGVpZ2h0OjJweDt3aWR0aDoxMDAlO3RyYW5zZm9ybTpzY2FsZVgoMCl9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2hlaWdodDoycHg7d2lkdGg6MTAwJTt0cmFuc2Zvcm06c2NhbGVYKDEpfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3MtY29udGFpbmVye2hlaWdodDoycHg7d2lkdGg6MTAwJX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3MtY29udGFpbmVye2hlaWdodDowO291dGxpbmU6c29saWQgMnB4O3RvcDoxcHh9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrc3toZWlnaHQ6MnB4O3dpZHRoOjEwMCV9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aHVtYi1jb250YWluZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MDt0b3A6NTAlfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3t0b3A6LTE1cHg7cmlnaHQ6LTE1cHh9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtyaWdodDotMTRweDt0b3A6LTQwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjZweCkgc2NhbGUoMC4wMSkgcm90YXRlKDQ1ZGVnKX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS5tYXQtc2xpZGVyLWhvcml6b250YWwuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlci1ob3Jpem9udGFsLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbC5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e3RyYW5zZm9ybTpub25lfS5tYXQtc2xpZGVyLXZlcnRpY2Fse3dpZHRoOjQ4cHg7bWluLWhlaWdodDoxMjhweH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci13cmFwcGVye3dpZHRoOjJweDt0b3A6OHB4O2JvdHRvbTo4cHg7bGVmdDoyM3B4fS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye3dpZHRoOjJweDtib3JkZXItdG9wLXdpZHRoOjJweDtib3R0b206MDtsZWZ0OjB9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdHJhY2std3JhcHBlcntoZWlnaHQ6MTAwJTt3aWR0aDoycHh9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdHJhY2stZmlsbHtoZWlnaHQ6MTAwJTt3aWR0aDoycHg7dHJhbnNmb3JtOnNjYWxlWSgwKX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2hlaWdodDoxMDAlO3dpZHRoOjJweDt0cmFuc2Zvcm06c2NhbGVZKDEpfS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lcnt3aWR0aDoycHg7aGVpZ2h0OjEwMCV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcy1jb250YWluZXJ7d2lkdGg6MDtvdXRsaW5lOnNvbGlkIDJweDtsZWZ0OjFweH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JvdHRvbTotMTVweDtsZWZ0Oi0xNXB4fS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tze3dpZHRoOjJweDtoZWlnaHQ6MTAwJX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aHVtYi1jb250YWluZXJ7aGVpZ2h0OjEwMCU7d2lkdGg6MDtsZWZ0OjUwJX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aHVtYnstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JvdHRvbTotMTRweDtsZWZ0Oi00MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVYKDI2cHgpIHNjYWxlKDAuMDEpIHJvdGF0ZSgtNDVkZWcpfS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9Lm1hdC1zbGlkZXItdmVydGljYWwuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfVtkaXI9cnRsXSAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntsZWZ0OjA7cmlnaHQ6YXV0b31bZGlyPXJ0bF0gLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay1maWxse3RyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlfVtkaXI9cnRsXSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7dHJhbnNmb3JtLW9yaWdpbjowIDB9W2Rpcj1ydGxdIC5tYXQtc2xpZGVyLWhvcml6b250YWwubWF0LXNsaWRlci1heGlzLWludmVydGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7dHJhbnNmb3JtLW9yaWdpbjowIDB9W2Rpcj1ydGxdIC5tYXQtc2xpZGVyLWhvcml6b250YWwubWF0LXNsaWRlci1heGlzLWludmVydGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDEwMCV9Lm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRpY2tzLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lciwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci1mb2N1cy1yaW5nLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye3RyYW5zaXRpb246bm9uZX1cbiddLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLFJYLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlNJfSx7dHlwZTpVZ30se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOmFffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19XSxSWC5wcm9wRGVjb3JhdG9ycz17aW52ZXJ0Olt7dHlwZTp4eX1dLG1heDpbe3R5cGU6eHl9XSxtaW46W3t0eXBlOnh5fV0sc3RlcDpbe3R5cGU6eHl9XSx0aHVtYkxhYmVsOlt7dHlwZTp4eX1dLHRpY2tJbnRlcnZhbDpbe3R5cGU6eHl9XSx2YWx1ZTpbe3R5cGU6eHl9XSxkaXNwbGF5V2l0aDpbe3R5cGU6eHl9XSx2YWx1ZVRleHQ6W3t0eXBlOnh5fV0sdmVydGljYWw6W3t0eXBlOnh5fV0sY2hhbmdlOlt7dHlwZTpPeX1dLGlucHV0Olt7dHlwZTpPeX1dLHZhbHVlQ2hhbmdlOlt7dHlwZTpPeX1dLF9zbGlkZXJXcmFwcGVyOlt7dHlwZTpaYSxhcmdzOlsic2xpZGVyV3JhcHBlciJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUlgsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXNsaWRlciIsZXhwb3J0QXM6Im1hdFNsaWRlciIscHJvdmlkZXJzOltTWF0saG9zdDp7Iihmb2N1cykiOiJfb25Gb2N1cygpIiwiKGJsdXIpIjoiX29uQmx1cigpIiwiKGtleWRvd24pIjoiX29uS2V5ZG93bigkZXZlbnQpIiwiKGtleXVwKSI6Il9vbktleXVwKCkiLCIobW91c2VlbnRlcikiOiJfb25Nb3VzZWVudGVyKCkiLCIoc2VsZWN0c3RhcnQpIjoiJGV2ZW50LnByZXZlbnREZWZhdWx0KCkiLGNsYXNzOiJtYXQtc2xpZGVyIG1hdC1mb2N1cy1pbmRpY2F0b3IiLHJvbGU6InNsaWRlciIsIlt0YWJJbmRleF0iOiJ0YWJJbmRleCIsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbYXR0ci5hcmlhLXZhbHVlbWF4XSI6Im1heCIsIlthdHRyLmFyaWEtdmFsdWVtaW5dIjoibWluIiwiW2F0dHIuYXJpYS12YWx1ZW5vd10iOiJ2YWx1ZSIsIlthdHRyLmFyaWEtdmFsdWV0ZXh0XSI6InZhbHVlVGV4dCA9PSBudWxsID8gZGlzcGxheVZhbHVlIDogdmFsdWVUZXh0IiwiW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0iOid2ZXJ0aWNhbCA/ICJ2ZXJ0aWNhbCIgOiAiaG9yaXpvbnRhbCInLCJbY2xhc3MubWF0LXNsaWRlci1kaXNhYmxlZF0iOiJkaXNhYmxlZCIsIltjbGFzcy5tYXQtc2xpZGVyLWhhcy10aWNrc10iOiJ0aWNrSW50ZXJ2YWwiLCJbY2xhc3MubWF0LXNsaWRlci1ob3Jpem9udGFsXSI6IiF2ZXJ0aWNhbCIsIltjbGFzcy5tYXQtc2xpZGVyLWF4aXMtaW52ZXJ0ZWRdIjoiX3Nob3VsZEludmVydEF4aXMoKSIsIltjbGFzcy5tYXQtc2xpZGVyLWludmVydC1tb3VzZS1jb29yZHNdIjoiX3Nob3VsZEludmVydE1vdXNlQ29vcmRzKCkiLCJbY2xhc3MubWF0LXNsaWRlci1zbGlkaW5nXSI6Il9pc1NsaWRpbmciLCJbY2xhc3MubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nXSI6InRodW1iTGFiZWwiLCJbY2xhc3MubWF0LXNsaWRlci12ZXJ0aWNhbF0iOiJ2ZXJ0aWNhbCIsIltjbGFzcy5tYXQtc2xpZGVyLW1pbi12YWx1ZV0iOiJfaXNNaW5WYWx1ZSgpIiwiW2NsYXNzLm1hdC1zbGlkZXItaGlkZS1sYXN0LXRpY2tdIjoiZGlzYWJsZWQgfHwgX2lzTWluVmFsdWUoKSAmJiBfZ2V0VGh1bWJHYXAoKSAmJiBfc2hvdWxkSW52ZXJ0QXhpcygpIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6J19hbmltYXRpb25Nb2RlID09PSAiTm9vcEFuaW1hdGlvbnMiJ30sdGVtcGxhdGU6JzxkaXYgY2xhc3M9Im1hdC1zbGlkZXItd3JhcHBlciIgI3NsaWRlcldyYXBwZXI+XG4gIDxkaXYgY2xhc3M9Im1hdC1zbGlkZXItdHJhY2std3JhcHBlciI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIiBbbmdTdHlsZV09Il9nZXRUcmFja0JhY2tncm91bmRTdHlsZXMoKSI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci10cmFjay1maWxsIiBbbmdTdHlsZV09Il9nZXRUcmFja0ZpbGxTdHlsZXMoKSI+PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPSJtYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lciIgW25nU3R5bGVdPSJfZ2V0VGlja3NDb250YWluZXJTdHlsZXMoKSI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci10aWNrcyIgW25nU3R5bGVdPSJfZ2V0VGlja3NTdHlsZXMoKSI+PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPSJtYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lciIgW25nU3R5bGVdPSJfZ2V0VGh1bWJDb250YWluZXJTdHlsZXMoKSI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci1mb2N1cy1yaW5nIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPSJtYXQtc2xpZGVyLXRodW1iIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPSJtYXQtc2xpZGVyLXRodW1iLWxhYmVsIj5cbiAgICAgIDxzcGFuIGNsYXNzPSJtYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQiPnt7ZGlzcGxheVZhbHVlfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4nLGlucHV0czpbImRpc2FibGVkIiwiY29sb3IiLCJ0YWJJbmRleCJdLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHN0eWxlczpbJy5tYXQtc2xpZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjhweDtvdXRsaW5lOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCk6YWN0aXZlLC5tYXQtc2xpZGVyLm1hdC1zbGlkZXItc2xpZGluZzpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpe2N1cnNvcjotd2Via2l0LWdyYWJiaW5nO2N1cnNvcjpncmFiYmluZ30ubWF0LXNsaWRlci13cmFwcGVyey13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OmV4YWN0O2NvbG9yLWFkanVzdDpleGFjdDtwb3NpdGlvbjphYnNvbHV0ZX0ubWF0LXNsaWRlci10cmFjay13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW59Lm1hdC1zbGlkZXItdHJhY2stZmlsbHtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDEwMCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci10aWNrcy1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO292ZXJmbG93OmhpZGRlbn0ubWF0LXNsaWRlci10aWNrc3std2Via2l0LWJhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItZm9jdXMtcmluZ3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6NTAlO3RyYW5zZm9ybTpzY2FsZSgwKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcsLm1hdC1zbGlkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LXNsaWRlci1mb2N1cy1yaW5ne3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKTpub3QoLm1hdC1zbGlkZXItc2xpZGluZykgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwsLm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKTpub3QoLm1hdC1zbGlkZXItc2xpZGluZykgLm1hdC1zbGlkZXItdGh1bWJ7Y3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYn0ubWF0LXNsaWRlci10aHVtYntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMTBweDtib3R0b206LTEwcHg7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Ym9yZGVyOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2Zvcm06c2NhbGUoMC43KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJvcmRlci1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci10aHVtYi1sYWJlbHtkaXNwbGF5Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3JkZXItcmFkaXVzIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtvdXRsaW5lOnNvbGlkIDFweH0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e3otaW5kZXg6MTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXNsaWRpbmcgLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXNsaWRlci1zbGlkaW5nIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsLm1hdC1zbGlkZXItc2xpZGluZyAubWF0LXNsaWRlci10aHVtYi1jb250YWluZXJ7dHJhbnNpdGlvbi1kdXJhdGlvbjowbXN9Lm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXdpZHRoOjA7Ym9yZGVyLXN0eWxlOnNvbGlkO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItaGFzLXRpY2tzLmNkay1mb2N1c2VkOm5vdCgubWF0LXNsaWRlci1oaWRlLWxhc3QtdGljaykgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXIsLm1hdC1zbGlkZXItaGFzLXRpY2tzOmhvdmVyOm5vdCgubWF0LXNsaWRlci1oaWRlLWxhc3QtdGljaykgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7b3BhY2l0eToxfS5tYXQtc2xpZGVyLWhhcy10aWNrcy5jZGstZm9jdXNlZDpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpIC5tYXQtc2xpZGVyLXRpY2tzLC5tYXQtc2xpZGVyLWhhcy10aWNrczpob3Zlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpIC5tYXQtc2xpZGVyLXRpY2tze29wYWNpdHk6MX0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7ZGlzcGxheTpub25lfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7ZGlzcGxheTpmbGV4fS5tYXQtc2xpZGVyLWF4aXMtaW52ZXJ0ZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbHt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX0ubWF0LXNsaWRlci1heGlzLWludmVydGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7dHJhbnNmb3JtLW9yaWdpbjowIDB9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDApfS5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7Ym9yZGVyLXJhZGl1czo1MCUgNTAlIDB9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e29wYWNpdHk6MX0ubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpLmNkay1tb3VzZS1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkuY2RrLXRvdWNoLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci13aWR0aDoycHg7dHJhbnNmb3JtOnNjYWxlKDEpfS5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7dHJhbnNmb3JtOnNjYWxlKDApO29wYWNpdHk6MH0ubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItd2lkdGg6NHB4O3RyYW5zZm9ybTpzY2FsZSgwLjUpfS5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2Rpc3BsYXk6bm9uZX0ubWF0LXNsaWRlci1ob3Jpem9udGFse2hlaWdodDo0OHB4O21pbi13aWR0aDoxMjhweH0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXdyYXBwZXJ7aGVpZ2h0OjJweDt0b3A6MjNweDtsZWZ0OjhweDtyaWdodDo4cHh9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntoZWlnaHQ6MnB4O2JvcmRlci1sZWZ0LXdpZHRoOjJweDtyaWdodDowO3RvcDowfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2std3JhcHBlcntoZWlnaHQ6MnB4O3dpZHRoOjEwMCV9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay1maWxse2hlaWdodDoycHg7d2lkdGg6MTAwJTt0cmFuc2Zvcm06c2NhbGVYKDApfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtoZWlnaHQ6MnB4O3dpZHRoOjEwMCU7dHJhbnNmb3JtOnNjYWxlWCgxKX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lcntoZWlnaHQ6MnB4O3dpZHRoOjEwMCV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lcntoZWlnaHQ6MDtvdXRsaW5lOnNvbGlkIDJweDt0b3A6MXB4fS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3N7aGVpZ2h0OjJweDt3aWR0aDoxMDAlfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGh1bWItY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjA7dG9wOjUwJX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7dG9wOi0xNXB4O3JpZ2h0Oi0xNXB4fS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7cmlnaHQ6LTE0cHg7dG9wOi00MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKDI2cHgpIHNjYWxlKDAuMDEpIHJvdGF0ZSg0NWRlZyl9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX0ubWF0LXNsaWRlci1ob3Jpem9udGFsLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbC5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGVyLWhvcml6b250YWwuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHt0cmFuc2Zvcm06bm9uZX0ubWF0LXNsaWRlci12ZXJ0aWNhbHt3aWR0aDo0OHB4O21pbi1oZWlnaHQ6MTI4cHh9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItd3JhcHBlcnt3aWR0aDoycHg7dG9wOjhweDtib3R0b206OHB4O2xlZnQ6MjNweH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcnt3aWR0aDoycHg7Ym9yZGVyLXRvcC13aWR0aDoycHg7Ym90dG9tOjA7bGVmdDowfS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRyYWNrLXdyYXBwZXJ7aGVpZ2h0OjEwMCU7d2lkdGg6MnB4fS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7aGVpZ2h0OjEwMCU7d2lkdGg6MnB4O3RyYW5zZm9ybTpzY2FsZVkoMCl9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtoZWlnaHQ6MTAwJTt3aWR0aDoycHg7dHJhbnNmb3JtOnNjYWxlWSgxKX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcy1jb250YWluZXJ7d2lkdGg6MnB4O2hlaWdodDoxMDAlfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3MtY29udGFpbmVye3dpZHRoOjA7b3V0bGluZTpzb2xpZCAycHg7bGVmdDoxcHh9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tib3R0b206LTE1cHg7bGVmdDotMTVweH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrc3t3aWR0aDoycHg7aGVpZ2h0OjEwMCV9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGh1bWItY29udGFpbmVye2hlaWdodDoxMDAlO3dpZHRoOjA7bGVmdDo1MCV9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGh1bWJ7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbn0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtib3R0b206LTE0cHg7bGVmdDotNDBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyNnB4KSBzY2FsZSgwLjAxKSByb3RhdGUoLTQ1ZGVnKX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYXQtc2xpZGVyLXZlcnRpY2FsLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX1bZGlyPXJ0bF0gLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7bGVmdDowO3JpZ2h0OmF1dG99W2Rpcj1ydGxdIC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2stZmlsbHt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX1bZGlyPXJ0bF0gLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke3RyYW5zZm9ybS1vcmlnaW46MCAwfVtkaXI9cnRsXSAubWF0LXNsaWRlci1ob3Jpem9udGFsLm1hdC1zbGlkZXItYXhpcy1pbnZlcnRlZCAubWF0LXNsaWRlci10cmFjay1maWxse3RyYW5zZm9ybS1vcmlnaW46MCAwfVtkaXI9cnRsXSAubWF0LXNsaWRlci1ob3Jpem9udGFsLm1hdC1zbGlkZXItYXhpcy1pbnZlcnRlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke3RyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlfS5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aWNrcywubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYi1jb250YWluZXIsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItZm9jdXMtcmluZywubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYi1sYWJlbCwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0LC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcnt0cmFuc2l0aW9uOm5vbmV9XG4nXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpTSX0se3R5cGU6VWd9LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpqYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTphX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV19KSx7Y2hhbmdlOlt7dHlwZTpPeX1dLGlucHV0Olt7dHlwZTpPeX1dLHZhbHVlQ2hhbmdlOlt7dHlwZTpPeX1dLGludmVydDpbe3R5cGU6eHl9XSxtYXg6W3t0eXBlOnh5fV0sbWluOlt7dHlwZTp4eX1dLHN0ZXA6W3t0eXBlOnh5fV0sdGh1bWJMYWJlbDpbe3R5cGU6eHl9XSx0aWNrSW50ZXJ2YWw6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV0sdmVydGljYWw6W3t0eXBlOnh5fV0sZGlzcGxheVdpdGg6W3t0eXBlOnh5fV0sdmFsdWVUZXh0Olt7dHlwZTp4eX1dLF9zbGlkZXJXcmFwcGVyOlt7dHlwZTpaYSxhcmdzOlsic2xpZGVyV3JhcHBlciJdfV19KTtjbGFzcyB6WHt9elguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHpYKX0selguybVtb2Q9YW8oe3R5cGU6elh9KSx6WC7JtWluaj12bih7aW1wb3J0czpbW1dNLFhJXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHpYLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV00sWEldLGV4cG9ydHM6W1JYLFhJXSxkZWNsYXJhdGlvbnM6W1JYXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHpYLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bUlhdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1dNLFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltSWCxYSV19fSk7Y29uc3QgSVg9ezE5OiJmbG9hdDE2IiwxOiJmbG9hdDMyIiwyOiJmbG9hdDY0IiwzOiJpbnQzMiIsNDoidWludDgiLDE3OiJ1aW50MTYiLDIyOiJ1aW50MzIiLDIzOiJ1aW50NjQiLDU6ImludDE2Iiw2OiJpbnQ4Iiw3OiJzdHJpbmciLDg6ImNvbXBsZXg2NCIsMTg6ImNvbXBsZXgxMjgiLDk6ImludDY0IiwxMDoiYm9vbCIsMTE6InFpbnQ4IiwxMjoicXVpbnQ4IiwxNToicWludDE2IiwxNjoicXVpbnQxNiIsMTM6InFpbnQzMiIsMTQ6ImJmbG9hdDE2IiwyMDoicmVzb3VyY2UiLDIxOiJ2YXJpYW50IiwxMTk6ImZsb2F0MTZfcmVmIiwxMDE6ImZsb2F0MzJfcmVmIiwxMDI6ImZsb2F0NjRfcmVmIiwxMDM6ImludDMyX3JlZiIsMTIyOiJ1aW50MzJfcmVmIiwxMDQ6InVpbnQ4X3JlZiIsMTE3OiJ1aW50MTZfcmVmIiwxMDU6ImludDE2X3JlZiIsMTA2OiJpbnQ4X3JlZiIsMTA3OiJzdHJpbmdfcmVmIiwxMDg6ImNvbXBsZXg2NF9yZWYiLDExODoiY29tcGxleDEyOF9yZWYiLDEwOToiaW50NjRfcmVmIiwxMjM6InVpbnQ2NF9yZWYiLDExMDoiYm9vbF9yZWYiLDExMToicWludDhfcmVmIiwxMTI6InF1aW50OF9yZWYiLDExNToicWludDE2X3JlZiIsMTE2OiJxdWludDE2X3JlZiIsMTEzOiJxaW50MzJfcmVmIiwxMTQ6ImJmbG9hdDE2X3JlZiIsMTIwOiJyZXNvdXJjZV9yZWYiLDEyMToidmFyaWFudF9yZWYifTtmdW5jdGlvbiBIWCh0KXtjb25zdHt0ZW5zb3JEZWJ1Z01vZGU6ZSxhcnJheTpufT10O3N3aXRjaChlKXtjYXNlIG1aLk5PX1RFTlNPUjppZihudWxsIT09bil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWRseSByZWNlaXZlZCBub24tbnVsbCBkZWJ1Zy10ZW5zb3ItdmFsdWUgYXJyYXkgdW5kZXIgTk9fVEVOU09SIG1vZGUiKTtyZXR1cm57fTtjYXNlIG1aLkNVUlRfSEVBTFRIOmlmKG51bGw9PT1ufHwyIT09bi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBVbmRlciBDVVJUX0hFQUxUSCBtb2RlLCBleHBlY3RlZCBkZWJ1Zy10ZW5zb3ItdmFsdWUgYXJyYXkgdG8gaGF2ZSBsZW5ndGggMiwgYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KG4pfWApO3JldHVybntoYXNJbmZPck5hTjpCb29sZWFuKG5bMV0pfTtjYXNlIG1aLkNPTkNJU0VfSEVBTFRIOntpZihudWxsPT09bnx8NSE9PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5kZXIgQ09OQ0lTRV9IRUFMVEggbW9kZSwgZXhwZWN0ZWQgZGVidWctdGVuc29yLXZhbHVlIGFycmF5IHRvIGhhdmUgbGVuZ3RoIDUsIGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShuKX1gKTtjb25zdCB0PXtzaXplOm5bMV19O3JldHVybiBuWzJdPjAmJih0Lm51bU5lZ2F0aXZlSW5mcz1uWzJdKSxuWzNdPjAmJih0Lm51bVBvc2l0aXZlSW5mcz1uWzNdKSxuWzRdPjAmJih0Lm51bU5hTnM9bls0XSksdH1jYXNlIG1aLlNIQVBFOntpZihudWxsPT09bnx8MTAhPT1uLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFVuZGVyIFNIQVBFIG1vZGUsIGV4cGVjdGVkIGRlYnVnLXRlbnNvci12YWx1ZSBhcnJheSB0byBoYXZlIGxlbmd0aCAxMCwgYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KG4pfWApO2NvbnN0IHQ9blsyXTtsZXQgZT1uLnNsaWNlKDQsTWF0aC5taW4oNCt0LG4ubGVuZ3RoKSk7cmV0dXJuIGUubGVuZ3RoPHQmJihlPW5ldyBBcnJheSh0LWUubGVuZ3RoKS5jb25jYXQoZSkpLHtkdHlwZTpJWFtuWzFdXSxyYW5rOnQsc2l6ZTpuWzNdLHNoYXBlOmV9fWNhc2UgbVouRlVMTF9IRUFMVEg6e2lmKG51bGw9PT1ufHwxMSE9PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5kZXIgRlVMTF9IRUFMVEggbW9kZSwgZXhwZWN0ZWQgZGVidWctdGVuc29yLXZhbHVlIGFycmF5IHRvIGhhdmUgbGVuZ3RoIDExLCBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkobil9YCk7Y29uc3QgdD17ZHR5cGU6SVhbblsyXV0scmFuazpuWzNdLHNpemU6bls0XX07cmV0dXJuIG5bNV0+MCYmKHQubnVtTmVnYXRpdmVJbmZzPW5bNV0pLG5bNl0+MCYmKHQubnVtUG9zaXRpdmVJbmZzPW5bNl0pLG5bN10+MCYmKHQubnVtTmFOcz1uWzddKSxuWzhdPjAmJih0Lm51bU5lZ2F0aXZlRmluaXRlcz1uWzhdKSxuWzldPjAmJih0Lm51bVplcm9zPW5bOV0pLG5bMTBdPjAmJih0Lm51bVBvc2l0aXZlRmluaXRlcz1uWzEwXSksdH1jYXNlIG1aLkZVTExfVEVOU09SOmlmKG51bGwhPT1uKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZGx5IHJlY2VpdmVkIG5vbi1udWxsIGRlYnVnLXRlbnNvci12YWx1ZSBhcnJheSB1bmRlciBGVUxMX1RFTlNPUiBtb2RlIik7cmV0dXJue307ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCB0ZW5zb3JEZWJ1Z01vZGU6ICR7ZX1gKX19Y29uc3QgRlg9Iltfbmdob3N0LSVDT01QJV0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlM2U1ZTg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsIG1vbm9zcGFjZTtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAxcHggM3B4O1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgfSI7ZnVuY3Rpb24gTFgodCxlKXsxJnQmJlRtKDAsImRpdiIsNCl9ZnVuY3Rpb24gQlgodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDcpLFJtKDEsInNwYW4iLDgpLGt1KDIsIk5hTiIpLEFtKCksUm0oMywic3BhbiIsOSksa3UoNCksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoNCksRHUoIsOXIix0Lm51bU5hTnMsIiIpfX1mdW5jdGlvbiBWWCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNyksUm0oMSwic3BhbiIsOCksa3UoMiwiLeKIniIpLEFtKCksUm0oMywic3BhbiIsOSksa3UoNCksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoNCksRHUoIsOXIix0Lm51bU5lZ2F0aXZlSW5mcywiIil9fWZ1bmN0aW9uIGpYKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiw3KSxSbSgxLCJzcGFuIiw4KSxrdSgyLCIr4oieIiksQW0oKSxSbSgzLCJzcGFuIiw5KSxrdSg0KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYyg0KSxEdSgiw5ciLHQubnVtUG9zaXRpdmVJbmZzLCIiKX19ZnVuY3Rpb24gVVgodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDcpLFJtKDEsInNwYW4iLDEwKSxrdSgyLCItIiksQW0oKSxSbSgzLCJzcGFuIiw5KSxrdSg0KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYyg0KSxEdSgiw5ciLHQubnVtTmVnYXRpdmVGaW5pdGVzLCIiKX19ZnVuY3Rpb24gR1godCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDcpLFJtKDEsInNwYW4iLDEwKSxrdSgyLCIwIiksQW0oKSxSbSgzLCJzcGFuIiw5KSxrdSg0KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYyg0KSxEdSgiw5ciLHQubnVtWmVyb3MsIiIpfX1mdW5jdGlvbiBXWCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNyksUm0oMSwic3BhbiIsMTApLGt1KDIsIisiKSxBbSgpLFJtKDMsInNwYW4iLDkpLGt1KDQpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO3JjKDQpLER1KCLDlyIsdC5udW1Qb3NpdGl2ZUZpbml0ZXMsIiIpfX1mdW5jdGlvbiBZWCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNSksUXAoMSxCWCw1LDEsImRpdiIsNiksUXAoMixWWCw1LDEsImRpdiIsNiksUXAoMyxqWCw1LDEsImRpdiIsNiksUXAoNCxVWCw1LDEsImRpdiIsNiksUXAoNSxHWCw1LDEsImRpdiIsNiksUXAoNixXWCw1LDEsImRpdiIsNiksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRG0oIm5nSWYiLHZvaWQgMCE9PXQubnVtTmFOcyYmdC5udW1OYU5zPjApLHJjKDEpLERtKCJuZ0lmIix2b2lkIDAhPT10Lm51bU5lZ2F0aXZlSW5mcyYmdC5udW1OZWdhdGl2ZUluZnM+MCkscmMoMSksRG0oIm5nSWYiLHZvaWQgMCE9PXQubnVtUG9zaXRpdmVJbmZzJiZ0Lm51bVBvc2l0aXZlSW5mcz4wKSxyYygxKSxEbSgibmdJZiIsdm9pZCAwIT09dC5udW1OZWdhdGl2ZUZpbml0ZXMmJnQubnVtTmVnYXRpdmVGaW5pdGVzPjApLHJjKDEpLERtKCJuZ0lmIix2b2lkIDAhPT10Lm51bVplcm9zJiZ0Lm51bVplcm9zPjApLHJjKDEpLERtKCJuZ0lmIix2b2lkIDAhPT10Lm51bVBvc2l0aXZlRmluaXRlcyYmdC5udW1Qb3NpdGl2ZUZpbml0ZXM+MCl9fWNvbnN0IHFYPWZ1bmN0aW9uKHQpe3JldHVyblsiY29udGFpbmVyIix0XX07ZnVuY3Rpb24gWlgodCxlKXsxJnQmJlRtKDAsImRlYnVnLXRlbnNvci1kdHlwZSIsNSksMiZ0JiZEbSgiZHR5cGUiLFltKCkuZGVidWdUZW5zb3JWYWx1ZS5kdHlwZSl9ZnVuY3Rpb24gWFgodCxlKXsxJnQmJlRtKDAsImRlYnVnLXRlbnNvci1yYW5rIiw2KSwyJnQmJkRtKCJyYW5rIixZbSgpLmRlYnVnVGVuc29yVmFsdWUucmFuayl9ZnVuY3Rpb24gS1godCxlKXsxJnQmJlRtKDAsImRlYnVnLXRlbnNvci1zaGFwZSIsNyksMiZ0JiZEbSgic2hhcGUiLFltKCkuZGVidWdUZW5zb3JWYWx1ZS5zaGFwZSl9ZnVuY3Rpb24gSlgodCxlKXsxJnQmJlRtKDAsImRlYnVnLXRlbnNvci1oYXMtaW5mLW9yLW5hbiIsOCksMiZ0JiZEbSgiaGFzSW5mT3JOYU4iLFltKCkuZGVidWdUZW5zb3JWYWx1ZS5oYXNJbmZPck5hTil9ZnVuY3Rpb24gUVgodCxlKXtpZigxJnQmJlRtKDAsImRlYnVnLXRlbnNvci1udW1lcmljLWJyZWFrZG93biIsOSksMiZ0KXtjb25zdCB0PVltKCk7S20oInNpemUiLHQuZGVidWdUZW5zb3JWYWx1ZS5zaXplKSxEbSgibnVtTmVnYXRpdmVJbmZzIix0LmRlYnVnVGVuc29yVmFsdWUubnVtTmVnYXRpdmVJbmZzKSgibnVtUG9zaXRpdmVJbmZzIix0LmRlYnVnVGVuc29yVmFsdWUubnVtUG9zaXRpdmVJbmZzKSgibnVtTmFOcyIsdC5kZWJ1Z1RlbnNvclZhbHVlLm51bU5hTnMpKCJudW1OZWdhdGl2ZUZpbml0ZXMiLHQuZGVidWdUZW5zb3JWYWx1ZS5udW1OZWdhdGl2ZUZpbml0ZXMpKCJudW1aZXJvcyIsdC5kZWJ1Z1RlbnNvclZhbHVlLm51bVplcm9zKSgibnVtUG9zaXRpdmVGaW5pdGVzIix0LmRlYnVnVGVuc29yVmFsdWUubnVtUG9zaXRpdmVGaW5pdGVzKX19Y29uc3QgJFg9IlxuICA6aG9zdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTVlODtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICAgIGhlaWdodDogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHBhZGRpbmc6IDFweCAzcHg7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICB9XG4iO2NsYXNzIHRLe310Sy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dEspfSx0Sy7JtWNtcD10byh7dHlwZTp0SyxzZWxlY3RvcnM6W1siZGVidWctdGVuc29yLWR0eXBlIl1dLGlucHV0czp7ZHR5cGU6ImR0eXBlIn0sZGVjbHM6MSx2YXJzOjEsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYma3UoMCksMiZlJiZEdSgiICIsbi5kdHlwZSwiICIpfSxzdHlsZXM6W0ZYXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodEssW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiZGVidWctdGVuc29yLWR0eXBlIix0ZW1wbGF0ZToiIHt7IGR0eXBlIH19ICIsc3R5bGVzOlskWF19XX1dLG51bGwse2R0eXBlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgZUt7fWVLLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlSyl9LGVLLsm1Y21wPXRvKHt0eXBlOmVLLHNlbGVjdG9yczpbWyJkZWJ1Zy10ZW5zb3ItcmFuayJdXSxpbnB1dHM6e3Jhbms6InJhbmsifSxkZWNsczoxLHZhcnM6MSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZrdSgwKSwyJmUmJkR1KCIgIixuLnJhbmssIkQgIil9LHN0eWxlczpbRlhdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChlSyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJkZWJ1Zy10ZW5zb3ItcmFuayIsdGVtcGxhdGU6IiB7eyByYW5rIH19RCAiLHN0eWxlczpbJFhdfV19XSxudWxsLHtyYW5rOlt7dHlwZTp4eX1dfSk7Y2xhc3Mgbkt7Z2V0IHNoYXBlU3RyaW5nKCl7cmV0dXJuIlsiK3RoaXMuc2hhcGUubWFwKCh0PT52b2lkIDA9PT10PyI/IjpTdHJpbmcodCkpKS5qb2luKCIsIikrIl0ifX1uSy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bkspfSxuSy7JtWNtcD10byh7dHlwZTpuSyxzZWxlY3RvcnM6W1siZGVidWctdGVuc29yLXNoYXBlIl1dLGlucHV0czp7c2hhcGU6InNoYXBlIn0sZGVjbHM6MSx2YXJzOjEsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYma3UoMCksMiZlJiZEdSgiIHNoYXBlOiIsbi5zaGFwZVN0cmluZywiICIpfSxzdHlsZXM6W0ZYXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobkssW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiZGVidWctdGVuc29yLXNoYXBlIix0ZW1wbGF0ZToiIHNoYXBlOnt7IHNoYXBlU3RyaW5nIH19ICIsc3R5bGVzOlskWF19XX1dLG51bGwse3NoYXBlOlt7dHlwZTp4eX1dfSk7Y2xhc3Mgb0t7Z2V0IGJyZWFrZG93bkV4aXN0cygpe3JldHVybiB2b2lkIDAhPT10aGlzLm51bU5hTnN8fHZvaWQgMCE9PXRoaXMubnVtTmVnYXRpdmVJbmZzfHx2b2lkIDAhPT10aGlzLm51bVBvc2l0aXZlSW5mc3x8dm9pZCAwIT09dGhpcy5udW1OZWdhdGl2ZUZpbml0ZXN8fHZvaWQgMCE9PXRoaXMubnVtWmVyb3N8fHZvaWQgMCE9PXRoaXMubnVtUG9zaXRpdmVGaW5pdGVzfX1vSy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b0spfSxvSy7JtWNtcD10byh7dHlwZTpvSyxzZWxlY3RvcnM6W1siZGVidWctdGVuc29yLW51bWVyaWMtYnJlYWtkb3duIl1dLGlucHV0czp7c2l6ZToic2l6ZSIsbnVtTmFOczoibnVtTmFOcyIsbnVtTmVnYXRpdmVJbmZzOiJudW1OZWdhdGl2ZUluZnMiLG51bVBvc2l0aXZlSW5mczoibnVtUG9zaXRpdmVJbmZzIixudW1OZWdhdGl2ZUZpbml0ZXM6Im51bU5lZ2F0aXZlRmluaXRlcyIsbnVtWmVyb3M6Im51bVplcm9zIixudW1Qb3NpdGl2ZUZpbml0ZXM6Im51bVBvc2l0aXZlRmluaXRlcyJ9LGRlY2xzOjcsdmFyczozLGNvbnN0czpbWzEsInNpemUiXSxbMSwic2l6ZS12YWx1ZSJdLFsiY2xhc3MiLCJicmVhayIsNCwibmdJZiJdLFsiY2xhc3MiLCJicmVha2Rvd24iLDQsIm5nSWYiXSxbMSwiYnJlYWsiXSxbMSwiYnJlYWtkb3duIl0sWyJjbGFzcyIsImNhdGVnb3J5Iiw0LCJuZ0lmIl0sWzEsImNhdGVnb3J5Il0sWzEsImNhdGVnb3J5LXRhZyIsImluZmluaXRlIl0sWzEsImNhdGVnb3J5LWNvdW50Il0sWzEsImNhdGVnb3J5LXRhZyIsImZpbml0ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJzcGFuIiksa3UoMiwic2l6ZToiKSxBbSgpLFJtKDMsInNwYW4iLDEpLGt1KDQpLEFtKCksQW0oKSxRcCg1LExYLDEsMCwiZGl2IiwyKSxRcCg2LFlYLDcsNiwiZGl2IiwzKSksMiZlJiYocmMoNCksU3Uobi5zaXplKSxyYygxKSxEbSgibmdJZiIsbi5icmVha2Rvd25FeGlzdHMpLHJjKDEpLERtKCJuZ0lmIixuLmJyZWFrZG93bkV4aXN0cykpfSxkaXJlY3RpdmVzOltkTV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlM2U1ZTg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICB9XG4gICAgICAuYnJlYWtbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICB9XG4gICAgICAuc2l6ZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTFweDtcbiAgICAgICAgbWFyZ2luOiAwIDNweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICAgIC5icmVha2Rvd25bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGhlaWdodDogMTFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDExcHg7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICAgIC5jYXRlZ29yeVtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgaGVpZ3RoOiAxMDAlO1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICB9XG4gICAgICAuY2F0ZWdvcnktdGFnW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICB9XG4gICAgICAuZmluaXRlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhYWE7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgfVxuICAgICAgLmluZmluaXRlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNTI1OTI7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvSyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJkZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd24iLHRlbXBsYXRlOidcbiAgICA8ZGl2IGNsYXNzPSJzaXplIj5cbiAgICAgIDxzcGFuPnNpemU6PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9InNpemUtdmFsdWUiPnt7IHNpemUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj0iYnJlYWtkb3duRXhpc3RzIiBjbGFzcz0iYnJlYWsiPjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9ImJyZWFrZG93bkV4aXN0cyIgY2xhc3M9ImJyZWFrZG93biI+XG4gICAgICA8ZGl2ICpuZ0lmPSJudW1OYU5zICE9PSB1bmRlZmluZWQgJiYgbnVtTmFOcyA+IDAiIGNsYXNzPSJjYXRlZ29yeSI+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS10YWcgaW5maW5pdGUiPk5hTjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LWNvdW50Ij7Dl3t7IG51bU5hTnMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9Im51bU5lZ2F0aXZlSW5mcyAhPT0gdW5kZWZpbmVkICYmIG51bU5lZ2F0aXZlSW5mcyA+IDAiXG4gICAgICAgIGNsYXNzPSJjYXRlZ29yeSJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LXRhZyBpbmZpbml0ZSI+LeKInjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LWNvdW50Ij7Dl3t7IG51bU5lZ2F0aXZlSW5mcyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj0ibnVtUG9zaXRpdmVJbmZzICE9PSB1bmRlZmluZWQgJiYgbnVtUG9zaXRpdmVJbmZzID4gMCJcbiAgICAgICAgY2xhc3M9ImNhdGVnb3J5IlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktdGFnIGluZmluaXRlIj4r4oiePC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktY291bnQiPsOXe3sgbnVtUG9zaXRpdmVJbmZzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPSJudW1OZWdhdGl2ZUZpbml0ZXMgIT09IHVuZGVmaW5lZCAmJiBudW1OZWdhdGl2ZUZpbml0ZXMgPiAwIlxuICAgICAgICBjbGFzcz0iY2F0ZWdvcnkiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS10YWcgZmluaXRlIj4tPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktY291bnQiPsOXe3sgbnVtTmVnYXRpdmVGaW5pdGVzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPSJudW1aZXJvcyAhPT0gdW5kZWZpbmVkICYmIG51bVplcm9zID4gMCIgY2xhc3M9ImNhdGVnb3J5Ij5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LXRhZyBmaW5pdGUiPjA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS1jb3VudCI+w5d7eyBudW1aZXJvcyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj0ibnVtUG9zaXRpdmVGaW5pdGVzICE9PSB1bmRlZmluZWQgJiYgbnVtUG9zaXRpdmVGaW5pdGVzID4gMCJcbiAgICAgICAgY2xhc3M9ImNhdGVnb3J5IlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktdGFnIGZpbml0ZSI+Kzwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LWNvdW50Ij7Dl3t7IG51bVBvc2l0aXZlRmluaXRlcyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAnLHN0eWxlczpbIlxuICAgICAgOmhvc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlNWU4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nLCBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgfVxuICAgICAgLmJyZWFrIHtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICB9XG4gICAgICAuc2l6ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDExcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICAgICAgICBtYXJnaW46IDAgM3B4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgICAgLmJyZWFrZG93biB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBoZWlnaHQ6IDExcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICAgICAgICBwYWRkaW5nOiAycHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgICAuY2F0ZWdvcnkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgaGVpZ3RoOiAxMDAlO1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICB9XG4gICAgICAuY2F0ZWdvcnktdGFnIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDJweDtcbiAgICAgIH1cbiAgICAgIC5maW5pdGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWFhO1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIH1cbiAgICAgIC5pbmZpbml0ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNTI1OTI7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuICAgICJdfV19XSxudWxsLHtzaXplOlt7dHlwZTp4eX1dLG51bU5hTnM6W3t0eXBlOnh5fV0sbnVtTmVnYXRpdmVJbmZzOlt7dHlwZTp4eX1dLG51bVBvc2l0aXZlSW5mczpbe3R5cGU6eHl9XSxudW1OZWdhdGl2ZUZpbml0ZXM6W3t0eXBlOnh5fV0sbnVtWmVyb3M6W3t0eXBlOnh5fV0sbnVtUG9zaXRpdmVGaW5pdGVzOlt7dHlwZTp4eX1dfSk7Y2xhc3MgaUt7Z2V0IGluZm9TdHJpbmcoKXtyZXR1cm4gdGhpcy5oYXNJbmZPck5hTj8iSGFzIOKIni9OYU4iOiJObyDiiJ4vTmFOIn19aUsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGlLKX0saUsuybVjbXA9dG8oe3R5cGU6aUssc2VsZWN0b3JzOltbImRlYnVnLXRlbnNvci1oYXMtaW5mLW9yLW5hbiJdXSxpbnB1dHM6e2hhc0luZk9yTmFOOiJoYXNJbmZPck5hTiJ9LGRlY2xzOjIsdmFyczo0LGNvbnN0czpbWzMsIm5nQ2xhc3MiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksa3UoMSksQW0oKSksMiZlJiYoRG0oIm5nQ2xhc3MiLE1oKDIscVgsbi5oYXNJbmZPck5hTj8iaGFzLWluZi1vci1uYW4iOiIiKSkscmMoMSksRHUoIiAiLG4uaW5mb1N0cmluZywiICIpKX0sZGlyZWN0aXZlczpbYU1dLHN0eWxlczpbIi5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTVlODtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBjb2xvcjogIzY2NjY2NjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgcGFkZGluZzogMXB4IDNweDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgfVxuICAgICAgLmhhcy1pbmYtb3ItbmFuW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNTI1OTI7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChpSyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJkZWJ1Zy10ZW5zb3ItaGFzLWluZi1vci1uYW4iLHRlbXBsYXRlOiJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cIlsnY29udGFpbmVyJywgaGFzSW5mT3JOYU4gPyAnaGFzLWluZi1vci1uYW4nIDogJyddXCI+XG4gICAgICB7eyBpbmZvU3RyaW5nIH19XG4gICAgPC9kaXY+XG4gICIsc3R5bGVzOlsiXG4gICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTVlODtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBjb2xvcjogIzY2NjY2NjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgcGFkZGluZzogMXB4IDNweDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgfVxuICAgICAgLmhhcy1pbmYtb3ItbmFuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1MjU5MjtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgIl19XX1dLG51bGwse2hhc0luZk9yTmFOOlt7dHlwZTp4eX1dfSk7Y2xhc3MgYUt7fWFLLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxhSyl9LGFLLsm1Y21wPXRvKHt0eXBlOmFLLHNlbGVjdG9yczpbWyJkZWJ1Zy10ZW5zb3ItdmFsdWUiXV0saW5wdXRzOntkZWJ1Z1RlbnNvclZhbHVlOiJkZWJ1Z1RlbnNvclZhbHVlIn0sZGVjbHM6NSx2YXJzOjUsY29uc3RzOltbMywiZHR5cGUiLDQsIm5nSWYiXSxbMywicmFuayIsNCwibmdJZiJdLFszLCJzaGFwZSIsNCwibmdJZiJdLFszLCJoYXNJbmZPck5hTiIsNCwibmdJZiJdLFszLCJzaXplIiwibnVtTmVnYXRpdmVJbmZzIiwibnVtUG9zaXRpdmVJbmZzIiwibnVtTmFOcyIsIm51bU5lZ2F0aXZlRmluaXRlcyIsIm51bVplcm9zIiwibnVtUG9zaXRpdmVGaW5pdGVzIiw0LCJuZ0lmIl0sWzMsImR0eXBlIl0sWzMsInJhbmsiXSxbMywic2hhcGUiXSxbMywiaGFzSW5mT3JOYU4iXSxbMywic2l6ZSIsIm51bU5lZ2F0aXZlSW5mcyIsIm51bVBvc2l0aXZlSW5mcyIsIm51bU5hTnMiLCJudW1OZWdhdGl2ZUZpbml0ZXMiLCJudW1aZXJvcyIsIm51bVBvc2l0aXZlRmluaXRlcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUXAoMCxaWCwxLDEsImRlYnVnLXRlbnNvci1kdHlwZSIsMCksUXAoMSxYWCwxLDEsImRlYnVnLXRlbnNvci1yYW5rIiwxKSxRcCgyLEtYLDEsMSwiZGVidWctdGVuc29yLXNoYXBlIiwyKSxRcCgzLEpYLDEsMSwiZGVidWctdGVuc29yLWhhcy1pbmYtb3ItbmFuIiwzKSxRcCg0LFFYLDEsNywiZGVidWctdGVuc29yLW51bWVyaWMtYnJlYWtkb3duIiw0KSksMiZlJiYoRG0oIm5nSWYiLHZvaWQgMCE9PW4uZGVidWdUZW5zb3JWYWx1ZS5kdHlwZSkscmMoMSksRG0oIm5nSWYiLHZvaWQgMCE9PW4uZGVidWdUZW5zb3JWYWx1ZS5yYW5rKSxyYygxKSxEbSgibmdJZiIsdm9pZCAwIT09bi5kZWJ1Z1RlbnNvclZhbHVlLnNoYXBlKSxyYygxKSxEbSgibmdJZiIsdm9pZCAwIT09bi5kZWJ1Z1RlbnNvclZhbHVlLmhhc0luZk9yTmFOKSxyYygxKSxEbSgibmdJZiIsdm9pZCAwIT09bi5kZWJ1Z1RlbnNvclZhbHVlLnNpemUpKX0sZGlyZWN0aXZlczpbZE0sdEssZUssbkssaUssb0tdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICB9XG4gICAgICBkZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd25bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChhSyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJkZWJ1Zy10ZW5zb3ItdmFsdWUiLHRlbXBsYXRlOidcbiAgICA8ZGVidWctdGVuc29yLWR0eXBlXG4gICAgICAqbmdJZj0iZGVidWdUZW5zb3JWYWx1ZS5kdHlwZSAhPT0gdW5kZWZpbmVkIlxuICAgICAgW2R0eXBlXT0iZGVidWdUZW5zb3JWYWx1ZS5kdHlwZSJcbiAgICA+XG4gICAgPC9kZWJ1Zy10ZW5zb3ItZHR5cGU+XG4gICAgPGRlYnVnLXRlbnNvci1yYW5rXG4gICAgICAqbmdJZj0iZGVidWdUZW5zb3JWYWx1ZS5yYW5rICE9PSB1bmRlZmluZWQiXG4gICAgICBbcmFua109ImRlYnVnVGVuc29yVmFsdWUucmFuayJcbiAgICA+XG4gICAgPC9kZWJ1Zy10ZW5zb3ItcmFuaz5cbiAgICA8ZGVidWctdGVuc29yLXNoYXBlXG4gICAgICAqbmdJZj0iZGVidWdUZW5zb3JWYWx1ZS5zaGFwZSAhPT0gdW5kZWZpbmVkIlxuICAgICAgW3NoYXBlXT0iZGVidWdUZW5zb3JWYWx1ZS5zaGFwZSJcbiAgICA+XG4gICAgPC9kZWJ1Zy10ZW5zb3Itc2hhcGU+XG4gICAgPGRlYnVnLXRlbnNvci1oYXMtaW5mLW9yLW5hblxuICAgICAgKm5nSWY9ImRlYnVnVGVuc29yVmFsdWUuaGFzSW5mT3JOYU4gIT09IHVuZGVmaW5lZCJcbiAgICAgIFtoYXNJbmZPck5hTl09ImRlYnVnVGVuc29yVmFsdWUuaGFzSW5mT3JOYU4iXG4gICAgPlxuICAgIDwvZGVidWctdGVuc29yLWhhcy1pbmYtb3ItbmFuPlxuICAgIDxkZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd25cbiAgICAgICpuZ0lmPSJkZWJ1Z1RlbnNvclZhbHVlLnNpemUgIT09IHVuZGVmaW5lZCJcbiAgICAgIHNpemU9Int7IGRlYnVnVGVuc29yVmFsdWUuc2l6ZSB9fSJcbiAgICAgIFtudW1OZWdhdGl2ZUluZnNdPSJkZWJ1Z1RlbnNvclZhbHVlLm51bU5lZ2F0aXZlSW5mcyJcbiAgICAgIFtudW1Qb3NpdGl2ZUluZnNdPSJkZWJ1Z1RlbnNvclZhbHVlLm51bVBvc2l0aXZlSW5mcyJcbiAgICAgIFtudW1OYU5zXT0iZGVidWdUZW5zb3JWYWx1ZS5udW1OYU5zIlxuICAgICAgW251bU5lZ2F0aXZlRmluaXRlc109ImRlYnVnVGVuc29yVmFsdWUubnVtTmVnYXRpdmVGaW5pdGVzIlxuICAgICAgW251bVplcm9zXT0iZGVidWdUZW5zb3JWYWx1ZS5udW1aZXJvcyJcbiAgICAgIFtudW1Qb3NpdGl2ZUZpbml0ZXNdPSJkZWJ1Z1RlbnNvclZhbHVlLm51bVBvc2l0aXZlRmluaXRlcyJcbiAgICA+XG4gICAgPC9kZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd24+XG4gICcsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cbiAgICAgIGRlYnVnLXRlbnNvci1udW1lcmljLWJyZWFrZG93biB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICAiXX1dfV0sbnVsbCx7ZGVidWdUZW5zb3JWYWx1ZTpbe3R5cGU6eHl9XX0pO2NvbnN0IHJLPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3RlbnNvckRlYnVnTW9kZTp0LGFycmF5OmV9fTtmdW5jdGlvbiBzSyh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTIpLFJtKDEsImRpdiIsMTMpLGt1KDIpLEFtKCksUm0oMywiZGl2IiwxNCksVG0oNCwiZGVidWctdGVuc29yLXZhbHVlIiwxNSksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1lLmluZGV4LG89WW0oMyk7cmMoMiksRHUoIk91dHB1dCBzbG90ICIsbiwiOiIpLHJjKDIpLERtKCJkZWJ1Z1RlbnNvclZhbHVlIixvLnBhcnNlRGVidWdUZW5zb3JWYWx1ZSh2aCgyLHJLLG8udGVuc29yRGVidWdNb2RlLHQpKSl9fWZ1bmN0aW9uIGxLKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwxMCksUXAoMSxzSyw1LDUsImRpdiIsMTEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygxKSxEbSgibmdGb3JPZiIsdC5kZWJ1Z1RlbnNvclZhbHVlcyl9fWZ1bmN0aW9uIGNLKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiksUm0oMSwiZGl2IiksUm0oMiwiZGl2IiwzKSxSbSgzLCJzcGFuIiw0KSxrdSg0LCIgT3A6ICIpLEFtKCksUm0oNSwic3BhbiIsNSksa3UoNiksQW0oKSxBbSgpLFJtKDcsImRpdiIsMyksUm0oOCwic3BhbiIsNCksa3UoOSwiICMgb2YgaW5wdXQgdGVuc29yczogIiksQW0oKSxSbSgxMCwic3BhbiIsNiksa3UoMTEpLEFtKCksQW0oKSxSbSgxMiwiZGl2IiwzKSxSbSgxMywic3BhbiIsNCksa3UoMTQsIiAjIG9mIG91dHB1dCB0ZW5zb3JzOiAiKSxBbSgpLFJtKDE1LCJzcGFuIiw3KSxrdSgxNiksQW0oKSxSbSgxNywic3BhbiIsOCksa3UoMTgpLEFtKCksQW0oKSxRcCgxOSxsSywyLDEsImRpdiIsOSksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYyg2KSxEdSgiICIsdC5mb2N1c2VkRXhlY3V0aW9uRGF0YS5vcF90eXBlLCIgIikscmMoNSksRHUoIiAiLG51bGw9PXQuZm9jdXNlZEV4ZWN1dGlvbkRhdGEuaW5wdXRfdGVuc29yX2lkcz8wOnQuZm9jdXNlZEV4ZWN1dGlvbkRhdGEuaW5wdXRfdGVuc29yX2lkcy5sZW5ndGgsIiAiKSxyYyg1KSxEdSgiICIsbnVsbD09dC5mb2N1c2VkRXhlY3V0aW9uRGF0YS5vdXRwdXRfdGVuc29yX2lkcz8wOnQuZm9jdXNlZEV4ZWN1dGlvbkRhdGEub3V0cHV0X3RlbnNvcl9pZHMubGVuZ3RoLCIgIikscmMoMiksRHUoIiAoZGVidWcgbW9kZTogIix0LlRlbnNvckRlYnVnTW9kZVt0LnRlbnNvckRlYnVnTW9kZV0sIikgIikscmMoMSksRG0oIm5nSWYiLHQuaGFzRGVidWdUZW5zb3JWYWx1ZXMpfX1mdW5jdGlvbiBkSyh0LGUpe31jbGFzcyBwS3tjb25zdHJ1Y3Rvcigpe3RoaXMudGVuc29yRGVidWdNb2RlPW1aLlVOU1BFQ0lGSUVELHRoaXMuaGFzRGVidWdUZW5zb3JWYWx1ZXM9ITEsdGhpcy5kZWJ1Z1RlbnNvclZhbHVlcz1udWxsLHRoaXMuZGVidWdUZW5zb3JEdHlwZXM9bnVsbCx0aGlzLlRlbnNvckRlYnVnTW9kZT1tWix0aGlzLnBhcnNlRGVidWdUZW5zb3JWYWx1ZT1IWH19cEsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBLKX0scEsuybVjbXA9dG8oe3R5cGU6cEssc2VsZWN0b3JzOltbImV4ZWN1dGlvbi1kYXRhLWNvbXBvbmVudCJdXSxpbnB1dHM6e2ZvY3VzZWRFeGVjdXRpb25JbmRleDoiZm9jdXNlZEV4ZWN1dGlvbkluZGV4Iixmb2N1c2VkRXhlY3V0aW9uRGF0YToiZm9jdXNlZEV4ZWN1dGlvbkRhdGEiLHRlbnNvckRlYnVnTW9kZToidGVuc29yRGVidWdNb2RlIixoYXNEZWJ1Z1RlbnNvclZhbHVlczoiaGFzRGVidWdUZW5zb3JWYWx1ZXMiLGRlYnVnVGVuc29yVmFsdWVzOiJkZWJ1Z1RlbnNvclZhbHVlcyIsZGVidWdUZW5zb3JEdHlwZXM6ImRlYnVnVGVuc29yRHR5cGVzIn0sZGVjbHM6Nyx2YXJzOjMsY29uc3RzOltbMSwiZm9jdXMtZXhlY3V0aW9uLWNvbnRhaW5lciJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImxvYWRpbmdfc2VjdGlvbiIsIiJdLFsxLCJleGVjdXRpb24tZGF0YS1maWVsZCJdLFsxLCJleGVjdXRpb24tZGF0YS1rZXkiXSxbMSwiZXhlY3V0aW9uLWRhdGEtdmFsdWUiLCJvcC10eXBlIl0sWzEsImV4ZWN1dGlvbi1kYXRhLXZhbHVlIiwiaW5wdXQtdGVuc29ycyJdLFsxLCJleGVjdXRpb24tZGF0YS12YWx1ZSIsIm91dHB1dC10ZW5zb3JzIl0sWzEsImV4ZWN1dGlvbi1kYXRhLXZhbHVlIl0sWyJjbGFzcyIsIm91dHB1dC1zbG90cyIsNCwibmdJZiJdLFsxLCJvdXRwdXQtc2xvdHMiXSxbImNsYXNzIiwib3V0cHV0LXNsb3QtY29udGFpbmVyIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwib3V0cHV0LXNsb3QtY29udGFpbmVyIl0sWzEsIm91dHB1dC1zbG90LW51bWJlciJdLFsxLCJvdXRwdXQtc2xvdC1kZWJ1Zy10ZW5zb3ItdmFsdWUiXSxbMywiZGVidWdUZW5zb3JWYWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiKSxSbSgyLCJzcGFuIiksa3UoMyksQW0oKSxBbSgpLFFwKDQsY0ssMjAsNSwiZGl2IiwxKSxRcCg1LGRLLDAsMCwibmctdGVtcGxhdGUiLG51bGwsMixpYiksQW0oKSksMiZlKXtjb25zdCB0PSRwKDYpO3JjKDMpLER1KCIgUHl0aG9uIEV4ZWN1dGlvbiAjIixuLmZvY3VzZWRFeGVjdXRpb25JbmRleCwiICIpLHJjKDEpLERtKCJuZ0lmIixudWxsIT09bi5mb2N1c2VkRXhlY3V0aW9uRGF0YSkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W2RNLGxNLGFLXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uZGVidWctdGVuc29yLXZhbHVlcy10YWJsZVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uZGVidWctdGVuc29yLXZhbHVlcy10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0ZFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgIzAwMDt0ZXh0LWFsaWduOmxlZnR9LmRlYnVnLXRlbnNvci12YWx1ZXMtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246bGVmdH0uZXhlY3V0aW9uLWRhdGEtZmllbGRbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcH0uZXhlY3V0aW9uLWRhdGEta2V5W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jazttYXgtd2lkdGg6MTIwcHg7dGV4dC1hbGlnbjpyaWdodDt3aWR0aDoxMjBweH0uZXhlY3V0aW9uLWRhdGEtdmFsdWVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OjEwcHh9LmZvY3VzLWV4ZWN1dGlvbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmY2M4MDtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6MTJweDtoZWlnaHQ6MTIwcHg7cGFkZGluZzo1cHg7d2lkdGg6MzYwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmZvY3VzLWV4ZWN1dGlvbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZm9jdXMtZXhlY3V0aW9uLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZTY1MTAwfS5vdXRwdXQtc2xvdHNbX25nY29udGVudC0lQ09NUCVde2hlaWdodDo2MHB4O292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmF1dG99Lm91dHB1dC1zbG90LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgI2ViZWJlYjttYXJnaW4tdG9wOjVweDtwYWRkaW5nOjJweCAwO3ZlcnRpY2FsLWFsaWduOnRvcH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3V0cHV0LXNsb3QtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm91dHB1dC1zbG90LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgIzU1NX0ub3V0cHV0LXNsb3QtbnVtYmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5OiJSb2JvdG8gTW9ubyIsbW9ub3NwYWNlfS5vdXRwdXQtc2xvdC1kZWJ1Zy10ZW5zb3ItdmFsdWVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjNweCAwIDNweCAzMHB4fS5vdXRwdXQtdGVuc29yc1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDo1cHh9J119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHBLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImV4ZWN1dGlvbi1kYXRhLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vZXhlY3V0aW9uX2RhdGFfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vZXhlY3V0aW9uX2RhdGFfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLHtmb2N1c2VkRXhlY3V0aW9uSW5kZXg6W3t0eXBlOnh5fV0sZm9jdXNlZEV4ZWN1dGlvbkRhdGE6W3t0eXBlOnh5fV0sdGVuc29yRGVidWdNb2RlOlt7dHlwZTp4eX1dLGhhc0RlYnVnVGVuc29yVmFsdWVzOlt7dHlwZTp4eX1dLGRlYnVnVGVuc29yVmFsdWVzOlt7dHlwZTp4eX1dLGRlYnVnVGVuc29yRHR5cGVzOlt7dHlwZTp4eX1dfSk7Y29uc3QgbUs9IlVua25vd24gZHR5cGUiO2NsYXNzIHVLe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmZvY3VzZWRFeGVjdXRpb25EYXRhJD10aGlzLnN0b3JlLnBpcGUoRncobVgpKSx0aGlzLnRlbnNvckRlYnVnTW9kZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KG1YLCh0PT5udWxsPT09dD9tWi5VTlNQRUNJRklFRDp0LnRlbnNvcl9kZWJ1Z19tb2RlKSkpKSx0aGlzLmhhc0RlYnVnVGVuc29yVmFsdWVzJD10aGlzLnN0b3JlLnBpcGUoRncoWncobVgsKHQ9PntpZihudWxsPT09dHx8bnVsbD09PXQuZGVidWdfdGVuc29yX3ZhbHVlcylyZXR1cm4hMTtmb3IoY29uc3QgZSBvZiB0LmRlYnVnX3RlbnNvcl92YWx1ZXMpaWYobnVsbCE9PWUmJmUubGVuZ3RoPjApcmV0dXJuITA7cmV0dXJuITF9KSkpKSx0aGlzLmRlYnVnVGVuc29yVmFsdWVzJD10aGlzLnN0b3JlLnBpcGUoRncoWncobVgsKHQ9Pm51bGw9PT10P251bGw6dC5kZWJ1Z190ZW5zb3JfdmFsdWVzKSkpKSx0aGlzLmRlYnVnVGVuc29yRHR5cGVzJD10aGlzLnN0b3JlLnBpcGUoRncoWncobVgsKHQ9PntpZihudWxsPT09dHx8bnVsbD09PXQuZGVidWdfdGVuc29yX3ZhbHVlcylyZXR1cm4gbnVsbDtpZih0LnRlbnNvcl9kZWJ1Z19tb2RlIT09bVouRlVMTF9IRUFMVEgmJnQudGVuc29yX2RlYnVnX21vZGUhPT1tWi5TSEFQRSlyZXR1cm4gbnVsbDtjb25zdCBlPVtdO2Zvcihjb25zdCBuIG9mIHQuZGVidWdfdGVuc29yX3ZhbHVlcylpZihudWxsPT09billLnB1c2gobUspO2Vsc2V7Y29uc3Qgbz1TdHJpbmcodC50ZW5zb3JfZGVidWdfbW9kZT09PW1aLkZVTExfSEVBTFRIP25bMl06blsxXSk7ZS5wdXNoKElYW29dfHxtSyl9cmV0dXJuIGV9KSkpKX19ZnVuY3Rpb24gZksodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJtYXQtc2xpZGVyIiwxMSksVm0oImlucHV0IiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25TbGlkZXJDaGFuZ2UuZW1pdChuLnZhbHVlKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgibWluIiwwKSgibWF4Iix0LnNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0KSgidmFsdWUiLHQuc2Nyb2xsQmVnaW5JbmRleCl9fWZ1bmN0aW9uIGdLKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2Iiw2KSxSbSgxLCJidXR0b24iLDcpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vbk5hdmlnYXRlTGVmdC5lbWl0KCl9KSksa3UoMiwiIDwgIiksQW0oKSxSbSgzLCJkaXYiLDgpLGt1KDQpLEFtKCksUm0oNSwiYnV0dG9uIiw5KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkub25OYXZpZ2F0ZVJpZ2h0LmVtaXQoKX0pKSxrdSg2LCIgPiAiKSxBbSgpLFFwKDcsZkssMSwzLCJtYXQtc2xpZGVyIiwxMCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtyYyg0KSxSdSgiICIsdC5zY3JvbGxCZWdpbkluZGV4LCIgfiAiLHQuc2Nyb2xsQmVnaW5JbmRleCt0LmRpc3BsYXlDb3VudC0xLCIgb2YgIix0Lm51bUV4ZWN1dGlvbnMsIiAiKSxyYygzKSxEbSgibmdJZiIsdC5zY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdD4wKX19dUsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHVLKShTbShJdykpfSx1Sy7JtWNtcD10byh7dHlwZTp1SyxzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItZXhlY3V0aW9uLWRhdGEiXV0saW5wdXRzOntmb2N1c2VkRXhlY3V0aW9uSW5kZXg6ImZvY3VzZWRFeGVjdXRpb25JbmRleCJ9LGRlY2xzOjYsdmFyczoxNixjb25zdHM6W1szLCJmb2N1c2VkRXhlY3V0aW9uSW5kZXgiLCJmb2N1c2VkRXhlY3V0aW9uRGF0YSIsInRlbnNvckRlYnVnTW9kZSIsImhhc0RlYnVnVGVuc29yVmFsdWVzIiwiZGVidWdUZW5zb3JWYWx1ZXMiLCJkZWJ1Z1RlbnNvckR0eXBlcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwiZXhlY3V0aW9uLWRhdGEtY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBaCg0LCJhc3luYyIpLEFoKDUsImFzeW5jIikpLDImZSYmRG0oImZvY3VzZWRFeGVjdXRpb25JbmRleCIsbi5mb2N1c2VkRXhlY3V0aW9uSW5kZXgpKCJmb2N1c2VkRXhlY3V0aW9uRGF0YSIsVGgoMSw2LG4uZm9jdXNlZEV4ZWN1dGlvbkRhdGEkKSkoInRlbnNvckRlYnVnTW9kZSIsVGgoMiw4LG4udGVuc29yRGVidWdNb2RlJCkpKCJoYXNEZWJ1Z1RlbnNvclZhbHVlcyIsVGgoMywxMCxuLmhhc0RlYnVnVGVuc29yVmFsdWVzJCkpKCJkZWJ1Z1RlbnNvclZhbHVlcyIsVGgoNCwxMixuLmRlYnVnVGVuc29yVmFsdWVzJCkpKCJkZWJ1Z1RlbnNvckR0eXBlcyIsVGgoNSwxNCxuLmRlYnVnVGVuc29yRHR5cGVzJCkpfSxkaXJlY3RpdmVzOltwS10scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHVLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLWV4ZWN1dGlvbi1kYXRhIix0ZW1wbGF0ZTonXG4gICAgPGV4ZWN1dGlvbi1kYXRhLWNvbXBvbmVudFxuICAgICAgW2ZvY3VzZWRFeGVjdXRpb25JbmRleF09ImZvY3VzZWRFeGVjdXRpb25JbmRleCJcbiAgICAgIFtmb2N1c2VkRXhlY3V0aW9uRGF0YV09ImZvY3VzZWRFeGVjdXRpb25EYXRhJCB8IGFzeW5jIlxuICAgICAgW3RlbnNvckRlYnVnTW9kZV09InRlbnNvckRlYnVnTW9kZSQgfCBhc3luYyJcbiAgICAgIFtoYXNEZWJ1Z1RlbnNvclZhbHVlc109Imhhc0RlYnVnVGVuc29yVmFsdWVzJCB8IGFzeW5jIlxuICAgICAgW2RlYnVnVGVuc29yVmFsdWVzXT0iZGVidWdUZW5zb3JWYWx1ZXMkIHwgYXN5bmMiXG4gICAgICBbZGVidWdUZW5zb3JEdHlwZXNdPSJkZWJ1Z1RlbnNvckR0eXBlcyQgfCBhc3luYyJcbiAgICA+PC9leGVjdXRpb24tZGF0YS1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSkse2ZvY3VzZWRFeGVjdXRpb25JbmRleDpbe3R5cGU6eHl9XX0pO2NvbnN0IGhLPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bdCxlLG5dfTtmdW5jdGlvbiBiSyh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMTQpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtjb25zdCBuPWhpKHQpLmluZGV4O3JldHVybiBZbSgyKS5vbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQuZW1pdChuKX0pKSxSbSgxLCJkaXYiLDE1KSxrdSgyKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49ZS5pbmRleCxvPVltKDIpO3JjKDEpLEttKCJ0aXRsZSIsdC5vcF90eXBlKSxEbSgibmdDbGFzcyIseGgoMyxoSyx0LmlzX2dyYXBoPyJmdW5jLWdyYXBoLWV4ZWN1dGlvbiI6IiIsbj09PW8uZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleD8iZm9jdXNlZCI6IiIsby5kaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXNbbl18fCIiKSkscmMoMSksRHUoIiAiLHQuc2hvcnRfb3BfdHlwZSwiICIpfX1mdW5jdGlvbiB5Syh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTIpLFFwKDEsYkssMyw3LCJkaXYiLDEzKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEbSgibmdGb3JPZiIsdC5kaXNwbGF5RXhlY3V0aW9uRGlnZXN0cyl9fWZ1bmN0aW9uIF9LKHQsZSl7aWYoMSZ0JiYoTm0oMCksVG0oMSwidGYtZGVidWdnZXItdjItZXhlY3V0aW9uLWRhdGEiLDE2KSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEbSgiZm9jdXNlZEV4ZWN1dGlvbkluZGV4Iix0LmZvY3VzZWRFeGVjdXRpb25JbmRleCl9fWNsYXNzIENLe2NvbnN0cnVjdG9yKCl7dGhpcy5hY3RpdmVSdW5JZD1udWxsLHRoaXMubG9hZGluZ051bUV4ZWN1dGlvbnM9ITEsdGhpcy5udW1FeGVjdXRpb25zPTAsdGhpcy5zY3JvbGxCZWdpbkluZGV4PTAsdGhpcy5zY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdD0wLHRoaXMucGFnZVNpemU9MCx0aGlzLmRpc3BsYXlDb3VudD0wLHRoaXMuZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHM9W10sdGhpcy5kaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXM9W10sdGhpcy5mb2N1c2VkRXhlY3V0aW9uSW5kZXg9bnVsbCx0aGlzLmZvY3VzZWRFeGVjdXRpb25EaXNwbGF5SW5kZXg9bnVsbCx0aGlzLmZvY3VzZWRFeGVjdXRpb25EYXRhPW51bGwsdGhpcy5vbk5hdmlnYXRlTGVmdD1uZXcgTGgsdGhpcy5vbk5hdmlnYXRlUmlnaHQ9bmV3IExoLHRoaXMub25FeGVjdXRpb25EaWdlc3RDbGlja2VkPW5ldyBMaCx0aGlzLm9uU2xpZGVyQ2hhbmdlPW5ldyBMaH19Q0suybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fENLKX0sQ0suybVjbXA9dG8oe3R5cGU6Q0ssc2VsZWN0b3JzOltbInRpbWVsaW5lLWNvbXBvbmVudCJdXSxpbnB1dHM6e2FjdGl2ZVJ1bklkOiJhY3RpdmVSdW5JZCIsbG9hZGluZ051bUV4ZWN1dGlvbnM6ImxvYWRpbmdOdW1FeGVjdXRpb25zIixudW1FeGVjdXRpb25zOiJudW1FeGVjdXRpb25zIixzY3JvbGxCZWdpbkluZGV4OiJzY3JvbGxCZWdpbkluZGV4IixzY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdDoic2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQiLHBhZ2VTaXplOiJwYWdlU2l6ZSIsZGlzcGxheUNvdW50OiJkaXNwbGF5Q291bnQiLGRpc3BsYXlFeGVjdXRpb25EaWdlc3RzOiJkaXNwbGF5RXhlY3V0aW9uRGlnZXN0cyIsZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzOiJkaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXMiLGZvY3VzZWRFeGVjdXRpb25JbmRleDoiZm9jdXNlZEV4ZWN1dGlvbkluZGV4Iixmb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4OiJmb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4Iixmb2N1c2VkRXhlY3V0aW9uRGF0YToiZm9jdXNlZEV4ZWN1dGlvbkRhdGEifSxvdXRwdXRzOntvbk5hdmlnYXRlTGVmdDoib25OYXZpZ2F0ZUxlZnQiLG9uTmF2aWdhdGVSaWdodDoib25OYXZpZ2F0ZVJpZ2h0IixvbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQ6Im9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZCIsb25TbGlkZXJDaGFuZ2U6Im9uU2xpZGVyQ2hhbmdlIn0sZGVjbHM6OSx2YXJzOjQsY29uc3RzOltbMSwidGltZWxpbmUtdGl0bGUiXSxbMSwiZXhlY3V0aW9uLWNvdW50Il0sWzEsInRvcC1sZXZlbC1leGVjdXRpb25zIl0sWyJjbGFzcyIsIm5hdmlnYXRpb24tc2VjdGlvbiIsNCwibmdJZiJdLFsiY2xhc3MiLCJleGVjdXRpb24tdGltZWxpbmUiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsxLCJuYXZpZ2F0aW9uLXNlY3Rpb24iXSxbIm1hdC1idXR0b24iLCIiLDEsIm5hdmlnYXRpb24tYnV0dG9uLWxlZnQiLDMsImNsaWNrIl0sWzEsIm5hdmlnYXRpb24tcG9zaXRpb24taW5mbyJdLFsibWF0LWJ1dHRvbiIsIiIsMSwibmF2aWdhdGlvbi1idXR0b24tcmlnaHQiLDMsImNsaWNrIl0sWyJjbGFzcyIsInRpbWVsaW5lLXNsaWRlciIsInN0ZXAiLCIxIiwzLCJtaW4iLCJtYXgiLCJ2YWx1ZSIsImlucHV0Iiw0LCJuZ0lmIl0sWyJzdGVwIiwiMSIsMSwidGltZWxpbmUtc2xpZGVyIiwzLCJtaW4iLCJtYXgiLCJ2YWx1ZSIsImlucHV0Il0sWzEsImV4ZWN1dGlvbi10aW1lbGluZSJdLFszLCJjbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsImNsaWNrIl0sWzEsImV4ZWN1dGlvbi1kaWdlc3QiLDMsIm5nQ2xhc3MiLCJ0aXRsZSJdLFszLCJmb2N1c2VkRXhlY3V0aW9uSW5kZXgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIpLFJtKDEsImRpdiIsMCksa3UoMiwiIFB5dGhvbiBFeGVjdXRpb24gVGltZWxpbmUgIiksUm0oMywic3BhbiIsMSksa3UoNCksQW0oKSxBbSgpLFJtKDUsImRpdiIsMiksUXAoNixnSyw4LDQsImRpdiIsMyksUXAoNyx5SywyLDEsImRpdiIsNCksUXAoOCxfSywyLDEsIm5nLWNvbnRhaW5lciIsNSksQW0oKSxBbSgpKSwyJmUmJihyYyg0KSxEdSgiICgiLG4ubnVtRXhlY3V0aW9ucywiKSAiKSxyYygyKSxEbSgibmdJZiIsbi5udW1FeGVjdXRpb25zKSxyYygxKSxEbSgibmdJZiIsbi5udW1FeGVjdXRpb25zKSxyYygxKSxEbSgibmdJZiIsbnVsbCE9PW4uYWN0aXZlUnVuSWQmJm51bGwhPT1uLmZvY3VzZWRFeGVjdXRpb25JbmRleCkpfSxkaXJlY3RpdmVzOltkTSxYSCxSWCxsTSxhTSx1S10sc3R5bGVzOlsiLmV4ZWN1dGlvbi1kaWdlc3RbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTVlODtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgY29sb3I6ICM0MjUwNjY7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxMHB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIHBhZGRpbmc6IDFweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMTJweDtcbn1cblxuLmV4ZWN1dGlvbi1kaWdlc3QuZnVuYy1ncmFwaC1leGVjdXRpb25bX25nY29udGVudC0lQ09NUCVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M3ZGJmNTtcbiAgY29sb3I6ICM0ZTU2NjQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uZXhlY3V0aW9uLWRpZ2VzdC5mb2N1c2VkW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ0YjM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZXhlY3V0aW9uLWRpZ2VzdC5JbmZOYW5BbGVydFtfbmdjb250ZW50LSVDT01QJV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTUyNTkyO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuXG4uZXhlY3V0aW9uLWRpZ2VzdFtfbmdjb250ZW50LSVDT01QJV06aG92ZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmV4ZWN1dGlvbi10aW1lbGluZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnRpbWVsaW5lLXNsaWRlcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogNDhweDtcbiAgbGVmdDogMzQwcHg7IFxuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA0MHB4O1xufVxuXG4gIC50aW1lbGluZS1zbGlkZXIgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHJpZ2h0OiAtNDBweDtcbiAgd2lkdGg6IDgwcHg7XG59XG5cblxuLm5hdmlnYXRpb24tcG9zaXRpb24taW5mb1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm5hdmlnYXRpb24tc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0ge1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAxMDAlO1xufSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChDSyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0aW1lbGluZS1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL3RpbWVsaW5lX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL3RpbWVsaW5lX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHthY3RpdmVSdW5JZDpbe3R5cGU6eHl9XSxsb2FkaW5nTnVtRXhlY3V0aW9uczpbe3R5cGU6eHl9XSxudW1FeGVjdXRpb25zOlt7dHlwZTp4eX1dLHNjcm9sbEJlZ2luSW5kZXg6W3t0eXBlOnh5fV0sc2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQ6W3t0eXBlOnh5fV0scGFnZVNpemU6W3t0eXBlOnh5fV0sZGlzcGxheUNvdW50Olt7dHlwZTp4eX1dLGRpc3BsYXlFeGVjdXRpb25EaWdlc3RzOlt7dHlwZTp4eX1dLGRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlczpbe3R5cGU6eHl9XSxmb2N1c2VkRXhlY3V0aW9uSW5kZXg6W3t0eXBlOnh5fV0sZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleDpbe3R5cGU6eHl9XSxmb2N1c2VkRXhlY3V0aW9uRGF0YTpbe3R5cGU6eHl9XSxvbk5hdmlnYXRlTGVmdDpbe3R5cGU6T3l9XSxvbk5hdmlnYXRlUmlnaHQ6W3t0eXBlOk95fV0sb25FeGVjdXRpb25EaWdlc3RDbGlja2VkOlt7dHlwZTpPeX1dLG9uU2xpZGVyQ2hhbmdlOlt7dHlwZTpPeX1dfSk7Y29uc3QgTUs9WyJfX2ZvcndhcmRfIiwiX19iYWNrd2FyZF8iLCJfX2luZmVyZW5jZV8iXTtjbGFzcyB2S3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hY3RpdmVSdW5JZCQ9dGhpcy5zdG9yZS5waXBlKEZ3KGtaKSksdGhpcy5sb2FkaW5nTnVtRXhlY3V0aW9ucyQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KEhaLCh0PT50LnN0YXRlPT15RS5MT0FESU5HKSkpKSx0aGlzLnNjcm9sbEJlZ2luSW5kZXgkPXRoaXMuc3RvcmUucGlwZShGdyhCWikpLHRoaXMuc2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQkPXRoaXMuc3RvcmUucGlwZShGdyhadyhMWixqWiwoKHQsZSk9Pk1hdGgubWF4KDAsdC1lKSkpKSksdGhpcy5wYWdlU2l6ZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KFZaKSksdGhpcy5kaXNwbGF5Q291bnQkPXRoaXMuc3RvcmUucGlwZShGdyhqWikpLHRoaXMuZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHMkPXRoaXMuc3RvcmUucGlwZShGdyhadyhVWiwodD0+dC5tYXAoKHQ9PihmdW5jdGlvbiBlKHQsbj0xKXtpZighdClyZXR1cm57b3BfdHlwZToiKE4vQSkiLHNob3J0X29wX3R5cGU6Ii4uIixpc19ncmFwaDohMX07Y29uc3Qgbz1NSy5maWx0ZXIoKGU9PnQub3BfdHlwZS5zdGFydHNXaXRoKGUpKSk7aWYoby5sZW5ndGgpe2NvbnN0IGU9dC5vcF90eXBlLnNsaWNlKG9bMF0ubGVuZ3RoKTtyZXR1cm57b3BfdHlwZTp0Lm9wX3R5cGUsc2hvcnRfb3BfdHlwZTplLnNsaWNlKDAsbiksaXNfZ3JhcGg6ITB9fXJldHVybntvcF90eXBlOnQub3BfdHlwZSxzaG9ydF9vcF90eXBlOnQub3BfdHlwZS5zbGljZSgwLG4pLGlzX2dyYXBoOiExfX0pKHQpKSkpKSkpLHRoaXMuZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzJD10aGlzLnN0b3JlLnBpcGUoRncoYVgpKSx0aGlzLmZvY3VzZWRFeGVjdXRpb25JbmRleCQ9dGhpcy5zdG9yZS5waXBlKEZ3KHNYKSksdGhpcy5mb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4JD10aGlzLnN0b3JlLnBpcGUoRncobFgpKSx0aGlzLm51bUV4ZWN1dGlvbnMkPXRoaXMuc3RvcmUucGlwZShGdyhMWikpfW9uTmF2aWdhdGVMZWZ0KCl7dGhpcy5zdG9yZS5kaXNwYXRjaChXcSgpKX1vbk5hdmlnYXRlUmlnaHQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFlxKCkpfW9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKFpxKHtkaXNwbGF5SW5kZXg6dH0pKX1vblNsaWRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKHFxKHtpbmRleDp0fSkpfX1mdW5jdGlvbiB4Syh0LGUpezEmdCYmKFJtKDAsInNwYW4iKSxrdSgxLCIgT3V0cHV0ICIpLEFtKCkpfWZ1bmN0aW9uIE9LKHQsZSl7MSZ0JiYoUm0oMCwic3BhbiIpLGt1KDEsIiBJbnB1dCAiKSxBbSgpKX1mdW5jdGlvbiBQSyh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNiksUm0oMSwic3BhbiIsNyksUXAoMix4SywyLDAsInNwYW4iLDgpLFFwKDMsT0ssMiwwLCJzcGFuIiw4KSxBbSgpLGt1KDQpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLERtKCJuZ1N3aXRjaCIsdC5raW5kKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIiwiaW5wdXQiKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIiwiY29uc3VtZXIiKSxyYygxKSxEdSgiIHNsb3Q6ICIsdC5zbG90LCIgIil9fWZ1bmN0aW9uIHdLKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiw5KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEdSgiICIsdC5vcERhdGEub3BfdHlwZSwiICIpfX1mdW5jdGlvbiBrSyh0LGUpezEmdCYmKFJtKDAsInNwYW4iLDEwKSxrdSgxLCIgKE9wIGluZm8gdW5hdmFpbGFibGUuKSAiKSxBbSgpKX12Sy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dkspKFNtKEl3KSl9LHZLLsm1Y21wPXRvKHt0eXBlOnZLLHNlbGVjdG9yczpbWyJ0Zi1kZWJ1Z2dlci12Mi10aW1lbGluZSJdXSxkZWNsczoxMix2YXJzOjMzLGNvbnN0czpbWzMsImFjdGl2ZVJ1bklkIiwibG9hZGluZ051bUV4ZWN1dGlvbnMiLCJudW1FeGVjdXRpb25zIiwic2Nyb2xsQmVnaW5JbmRleCIsInNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0IiwicGFnZVNpemUiLCJkaXNwbGF5Q291bnQiLCJkaXNwbGF5RXhlY3V0aW9uRGlnZXN0cyIsImRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlcyIsImZvY3VzZWRFeGVjdXRpb25JbmRleCIsImZvY3VzZWRFeGVjdXRpb25EaXNwbGF5SW5kZXgiLCJvbk5hdmlnYXRlTGVmdCIsIm9uTmF2aWdhdGVSaWdodCIsIm9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZCIsIm9uU2xpZGVyQ2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJ0aW1lbGluZS1jb21wb25lbnQiLDApLFZtKCJvbk5hdmlnYXRlTGVmdCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbk5hdmlnYXRlTGVmdCgpfSkpKCJvbk5hdmlnYXRlUmlnaHQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25OYXZpZ2F0ZVJpZ2h0KCl9KSkoIm9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25FeGVjdXRpb25EaWdlc3RDbGlja2VkKGUpfSkpKCJvblNsaWRlckNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TbGlkZXJDaGFuZ2UoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxBaCg4LCJhc3luYyIpLEFoKDksImFzeW5jIiksQWgoMTAsImFzeW5jIiksQWgoMTEsImFzeW5jIiksQW0oKSksMiZlJiZEbSgiYWN0aXZlUnVuSWQiLFRoKDEsMTEsbi5hY3RpdmVSdW5JZCQpKSgibG9hZGluZ051bUV4ZWN1dGlvbnMiLFRoKDIsMTMsbi5sb2FkaW5nTnVtRXhlY3V0aW9ucyQpKSgibnVtRXhlY3V0aW9ucyIsVGgoMywxNSxuLm51bUV4ZWN1dGlvbnMkKSkoInNjcm9sbEJlZ2luSW5kZXgiLFRoKDQsMTcsbi5zY3JvbGxCZWdpbkluZGV4JCkpKCJzY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdCIsVGgoNSwxOSxuLnNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0JCkpKCJwYWdlU2l6ZSIsVGgoNiwyMSxuLnBhZ2VTaXplJCkpKCJkaXNwbGF5Q291bnQiLFRoKDcsMjMsbi5kaXNwbGF5Q291bnQkKSkoImRpc3BsYXlFeGVjdXRpb25EaWdlc3RzIixUaCg4LDI1LG4uZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHMkKSkoImRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlcyIsVGgoOSwyNyxuLmRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlcyQpKSgiZm9jdXNlZEV4ZWN1dGlvbkluZGV4IixUaCgxMCwyOSxuLmZvY3VzZWRFeGVjdXRpb25JbmRleCQpKSgiZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleCIsVGgoMTEsMzEsbi5mb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4JCkpfSxkaXJlY3RpdmVzOltDS10scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHZLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLXRpbWVsaW5lIix0ZW1wbGF0ZTonXG4gICAgPHRpbWVsaW5lLWNvbXBvbmVudFxuICAgICAgW2FjdGl2ZVJ1bklkXT0iYWN0aXZlUnVuSWQkIHwgYXN5bmMiXG4gICAgICBbbG9hZGluZ051bUV4ZWN1dGlvbnNdPSJsb2FkaW5nTnVtRXhlY3V0aW9ucyQgfCBhc3luYyJcbiAgICAgIFtudW1FeGVjdXRpb25zXT0ibnVtRXhlY3V0aW9ucyQgfCBhc3luYyJcbiAgICAgIFtzY3JvbGxCZWdpbkluZGV4XT0ic2Nyb2xsQmVnaW5JbmRleCQgfCBhc3luYyJcbiAgICAgIFtzY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdF09InNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0JCB8IGFzeW5jIlxuICAgICAgW3BhZ2VTaXplXT0icGFnZVNpemUkIHwgYXN5bmMiXG4gICAgICBbZGlzcGxheUNvdW50XT0iZGlzcGxheUNvdW50JCB8IGFzeW5jIlxuICAgICAgW2Rpc3BsYXlFeGVjdXRpb25EaWdlc3RzXT0iZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHMkIHwgYXN5bmMiXG4gICAgICBbZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzXT0iZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzJCB8IGFzeW5jIlxuICAgICAgW2ZvY3VzZWRFeGVjdXRpb25JbmRleF09ImZvY3VzZWRFeGVjdXRpb25JbmRleCQgfCBhc3luYyJcbiAgICAgIFtmb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4XT0iZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleCQgfCBhc3luYyJcbiAgICAgIChvbk5hdmlnYXRlTGVmdCk9Im9uTmF2aWdhdGVMZWZ0KCkiXG4gICAgICAob25OYXZpZ2F0ZVJpZ2h0KT0ib25OYXZpZ2F0ZVJpZ2h0KCkiXG4gICAgICAob25FeGVjdXRpb25EaWdlc3RDbGlja2VkKT0ib25FeGVjdXRpb25EaWdlc3RDbGlja2VkKCRldmVudCkiXG4gICAgICAob25TbGlkZXJDaGFuZ2UpPSJvblNsaWRlckNoYW5nZSgkZXZlbnQpIlxuICAgID48L3RpbWVsaW5lLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IFNLPWZ1bmN0aW9uKHQpe3JldHVyblt0XX07Y2xhc3MgREt7Y29uc3RydWN0b3IoKXt0aGlzLm9uT3BOYW1lQ2xpY2s9bmV3IExofX1mdW5jdGlvbiBFSyh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMTMpLFJtKDEsImRpdiIsMTQpLGt1KDIpLEFtKCksUm0oMywiZ3JhcGgtb3AiLDE1KSxWbSgib25PcE5hbWVDbGljayIsKGZ1bmN0aW9uIGUobil7aGkodCk7Y29uc3Qgbz1ZbSgzKTtyZXR1cm4gby5vbkdyYXBoT3BOYXZpZ2F0ZS5lbWl0KHtvcF9uYW1lOm4ub3BfbmFtZSxncmFwaF9pZDpvLmdyYXBoSWR9KX0pKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49ZS5pbmRleDtyYygyKSxEdSgiSW5wdXQgc2xvdCAiLG4sIjoiKSxyYygxKSxEbSgia2luZCIsImlucHV0IikoIm9wTmFtZSIsdC5vcF9uYW1lKSgic2xvdCIsdC5vdXRwdXRfc2xvdCkoIm9wRGF0YSIsdC5kYXRhKX19ZnVuY3Rpb24gUksodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDExKSxSbSgxLCJkaXYiKSxRcCgyLEVLLDQsNSwiZGl2IiwxMiksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoMiksRG0oIm5nRm9yT2YiLHQuaW5wdXRPcHMpfX1mdW5jdGlvbiBBSyh0LGUpezEmdCYmKFJtKDAsImRpdiIsMTYpLGt1KDEsIiAoVGhpcyBvcCBoYXMgbm8gaW5wdXQgdGVuc29yLikgIiksQW0oKSl9ZnVuY3Rpb24gVEsodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDIzKSxSbSgxLCJncmFwaC1vcCIsMTUpLFZtKCJvbk9wTmFtZUNsaWNrIiwoZnVuY3Rpb24gZShuKXtoaSh0KTtjb25zdCBvPVltKDQpO3JldHVybiBvLm9uR3JhcGhPcE5hdmlnYXRlLmVtaXQoe29wX25hbWU6bi5vcF9uYW1lLGdyYXBoX2lkOm8uZ3JhcGhJZH0pfSkpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7cmMoMSksRG0oImtpbmQiLCJjb25zdW1lciIpKCJvcE5hbWUiLHQub3BfbmFtZSkoInNsb3QiLHQuaW5wdXRfc2xvdCkoIm9wRGF0YSIsdC5kYXRhKX19ZnVuY3Rpb24gTksodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDE5KSxSbSgxLCJkaXYiLDIwKSxrdSgyKSxSbSgzLCJzcGFuIiksdGcoNCwyMSksQW0oKSxrdSg1LCIpICIpLEFtKCksUXAoNixUSywyLDQsImRpdiIsMjIpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPWUuaW5kZXg7cmMoMiksRXUoIiBPdXRwdXQgc2xvdCAiLG4sIjogKCIsdC5sZW5ndGgsIiAiKSxyYygyKSxlZyh0Lmxlbmd0aCksbmcoNCkscmMoMiksRG0oIm5nRm9yT2YiLHQpfX1mdW5jdGlvbiB6Syh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTcpLFJtKDEsImRpdiIpLFFwKDIsTkssNyw0LCJkaXYiLDE4KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygyKSxEbSgibmdGb3JPZiIsdC5jb25zdW1lck9wcyl9fWZ1bmN0aW9uIElLKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwyNCksa3UoMSksUm0oMiwic3BhbiIpLHRnKDMsMjUpLEFtKCksa3UoNCwiIGFuZCBubyBjb25zdW1lci4pICIpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygxKSxEdSgiIChUaGlzIG9wIGhhcyAiLHQub3BJbmZvLmNvbnN1bWVycy5sZW5ndGgsIiBvdXRwdXQgIikscmMoMiksZWcodC5vcEluZm8uY29uc3VtZXJzLmxlbmd0aCksbmcoMyl9fWZ1bmN0aW9uIEhLKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiksUXAoMSxSSywzLDEsImRpdiIsNCksUXAoMixBSywyLDAsIm5nLXRlbXBsYXRlIixudWxsLDUsaWIpLFJtKDQsImRpdiIsNiksUm0oNSwiZGl2Iiw3KSxrdSg2LCJPcDoiKSxBbSgpLFJtKDcsImdyYXBoLW9wIiw4KSxWbSgib25PcE5hbWVDbGljayIsKGZ1bmN0aW9uIGUobil7aGkodCk7Y29uc3Qgbz1ZbSgpO3JldHVybiBvLm9uR3JhcGhPcE5hdmlnYXRlLmVtaXQoe29wX25hbWU6bi5vcF9uYW1lLGdyYXBoX2lkOm8uZ3JhcGhJZH0pfSkpLEFtKCksQW0oKSxRcCg4LHpLLDMsMSwiZGl2Iiw5KSxRcCg5LElLLDUsMiwibmctdGVtcGxhdGUiLG51bGwsMTAsaWIpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PSRwKDMpLGU9JHAoMTApLG49WW0oKTtyYygxKSxEbSgibmdJZiIsbi5pbnB1dE9wcy5sZW5ndGg+MCkoIm5nSWZFbHNlIix0KSxyYyg2KSxEbSgia2luZCIsInNlbGYiKSgib3BOYW1lIixuLm9wSW5mby5vcF9uYW1lKSgib3BEYXRhIixuLm9wSW5mbykscmMoMSksRG0oIm5nSWYiLG4udG90YWxOdW1Db25zdW1lcnM+MCkoIm5nSWZFbHNlIixlKX19ZnVuY3Rpb24gRksodCxlKXsxJnQmJihSbSgwLCJzcGFuIiwyNiksa3UoMSwiIChPcCBpbmZvIHVuYXZhaWxhYmxlLikgIiksQW0oKSl9ZnVuY3Rpb24gTEsodCxlKXsxJnQmJihSbSgwLCJkaXYiLDI3KSxrdSgxLCIgTm8gZ3JhcGggb3Agc2VsZWN0ZWQuIENsaWNrIGEgdGVuc29yIG5hbWUgaW4gdGhlIEdyYXBoIEV4ZWN1dGlvbnMgdGFibGUgdG8gdmlldyB0aGUgbmVpZ2hib3Job29kIG9mIHRoZSB0ZW5zb3IncyBvcCBpbiBpdHMgZ3JhcGguICIpLEFtKCkpfURLLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxESyl9LERLLsm1Y21wPXRvKHt0eXBlOkRLLHNlbGVjdG9yczpbWyJncmFwaC1vcCJdXSxpbnB1dHM6e2tpbmQ6ImtpbmQiLG9wTmFtZToib3BOYW1lIixzbG90OiJzbG90IixvcERhdGE6Im9wRGF0YSJ9LG91dHB1dHM6e29uT3BOYW1lQ2xpY2s6Im9uT3BOYW1lQ2xpY2sifSxkZWNsczo5LHZhcnM6Nyxjb25zdHM6W1sxLCJvcC1jb250YWluZXIiXSxbMSwiaW5wdXQtdGVuc29yLW5hbWUiXSxbMSwib3AtbmFtZSIsMywibmdDbGFzcyIsImNsaWNrIl0sWyJjbGFzcyIsInNsb3QiLDQsIm5nSWYiXSxbImNsYXNzIiwib3AtdHlwZSIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJvcEluZm9NaXNzaW5nIiwiIl0sWzEsInNsb3QiXSxbMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzEsIm9wLXR5cGUiXSxbMSwib3AtaW5mby1taXNzaW5nIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJidXR0b24iLDApLFJtKDEsImRpdiIsMSksUm0oMiwiYnV0dG9uIiwyKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25PcE5hbWVDbGljay5lbWl0KHtvcF9uYW1lOm4ub3BOYW1lfSl9KSksUm0oMywic3BhbiIpLGt1KDQpLEFtKCksQW0oKSxRcCg1LFBLLDUsNCwiZGl2IiwzKSxBbSgpLFFwKDYsd0ssMiwxLCJkaXYiLDQpLFFwKDcsa0ssMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw1LGliKSxBbSgpKSwyJmUpe2NvbnN0IHQ9JHAoOCk7cmMoMiksRG0oIm5nQ2xhc3MiLE1oKDUsU0ssInNlbGYiPT09bi5raW5kPyJzZWxmLW9wLW5hbWUiOiIiKSkscmMoMiksU3Uobi5vcE5hbWUpLHJjKDEpLERtKCJuZ0lmIiwic2VsZiIhPT1uLmtpbmQpLHJjKDEpLERtKCJuZ0lmIix2b2lkIDAhPT1uLm9wRGF0YSkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W2FNLGRNLGZNLGdNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ub3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm9wLW5hbWVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoycHggc29saWQgI2ViZWJlYjtib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93OjFweCAzcHggI2VlZTtjdXJzb3I6cG9pbnRlcjttYXJnaW46MCA1cHggMCAwO3BhZGRpbmc6MnB4IDZweDt0ZXh0LWFsaWduOnJpZ2h0O3dpZHRoOjIwMHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAub3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MnB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9wLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MXB4IDNweCAjNzU3NTc1fS5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3Vze291dGxpbmU6MH0ub3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3Zlcntib3JkZXI6MnB4IHNvbGlkICNmZmQzYjJ9Lm9wLWluZm8tbWlzc2luZ1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6Z3JheX0ub3AtbmFtZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTtwYWRkaW5nOjA7dGV4dC1hbGlnbjpyaWdodDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3doaXRlLXNwYWNlOnByZS13cmFwfS5vcC1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1c3tvdXRsaW5lOjB9Lm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2VjZWZmMTtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1mYW1pbHk6IlJvYm90byBNb25vIixtb25vc3BhY2U7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjE0cHg7bGluZS1oZWlnaHQ6MTRweDtwYWRkaW5nOjFweCAzcHg7d2lkdGg6bWF4LWNvbnRlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDozcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzQ1NWE2NH0uc2VsZi1vcC1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpib2xkO3RleHQtZGVjb3JhdGlvbjpub25lfS5zbG90W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zbG90W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnNsb3RbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChESyxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJncmFwaC1vcCIsdGVtcGxhdGVVcmw6ImdyYXBoX29wX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2dyYXBoX29wX2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCx7a2luZDpbe3R5cGU6eHl9XSxvcE5hbWU6W3t0eXBlOnh5fV0sc2xvdDpbe3R5cGU6eHl9XSxvcERhdGE6W3t0eXBlOnh5fV0sb25PcE5hbWVDbGljazpbe3R5cGU6T3l9XX0pO2NsYXNzIEJLe2NvbnN0cnVjdG9yKCl7dGhpcy5vbkdyYXBoT3BOYXZpZ2F0ZT1uZXcgTGh9Z2V0IGdyYXBoSWQoKXtyZXR1cm4gdGhpcy5vcEluZm8uZ3JhcGhfaWRzW3RoaXMub3BJbmZvLmdyYXBoX2lkcy5sZW5ndGgtMV19Z2V0IHRvdGFsTnVtQ29uc3VtZXJzKCl7cmV0dXJuIHRoaXMuY29uc3VtZXJPcHMucmVkdWNlKCgodCxlKT0+dCtlLmxlbmd0aCksMCl9fUJLLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCSyl9LEJLLsm1Y21wPXRvKHt0eXBlOkJLLHNlbGVjdG9yczpbWyJncmFwaC1jb21wb25lbnQiXV0saW5wdXRzOntvcEluZm86Im9wSW5mbyIsaW5wdXRPcHM6ImlucHV0T3BzIixjb25zdW1lck9wczoiY29uc3VtZXJPcHMifSxvdXRwdXRzOntvbkdyYXBoT3BOYXZpZ2F0ZToib25HcmFwaE9wTmF2aWdhdGUifSxkZWNsczo5LHZhcnM6Mixjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdCxlLG4sbztyZXR1cm4gdD0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygie1ZBUl9QTFVSQUwsIHBsdXJhbCwgPTAge2NvbnN1bWVyfSA9MSB7Y29uc3VtZXJ9IG90aGVyIHtjb25zdW1lcnN9fSIpOiRsb2NhbGl6ZWA64pCfZmU1NWY5YjE5M2VhMjBhYWU1YjU2MzVlNjhkOTM4NjUwMzg0Nzc0NuKQnzQ5NTUxMzM3NDA4NDEyOTk4NTE6e1ZBUl9QTFVSQUwsIHBsdXJhbCwgPTAge2NvbnN1bWVyfSA9MSB7Y29uc3VtZXJ9IG90aGVyIHtjb25zdW1lcnN9fWAsdD1vZyh0LHtWQVJfUExVUkFMOiLvv70w77+9In0pLGU9InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIiB7JGljdX0iLHtpY3U6dH0pOiRsb2NhbGl6ZWA64pCfYmFhNDYwZTJmMmI4NTdlMjYyOTJiMjQ2ZmMxOGFlMGVhOWI1ZTUzN+KQnzU1NTYzNDAzNDM4NTAxNjU1MTY6ICR7dH06SUNVOmAsbj0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygie1ZBUl9QTFVSQUwsIHBsdXJhbCwgPTAge3RlbnNvcn0gPTEge3RlbnNvcn0gb3RoZXIge3RlbnNvcnN9fSIpOiRsb2NhbGl6ZWA64pCfNmFhNzVmNjI3ZTBkYzE2MTUwZWY0NDg0NjRlMGM4NTdhYWEwZGMxOOKQnzUxNTY3MTI5MzUxNTA1ODY4Nzg6e1ZBUl9QTFVSQUwsIHBsdXJhbCwgPTAge3RlbnNvcn0gPTEge3RlbnNvcn0gb3RoZXIge3RlbnNvcnN9fWAsbj1vZyhuLHtWQVJfUExVUkFMOiLvv70w77+9In0pLG89InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIiB7JGljdX0iLHtpY3U6bn0pOiRsb2NhbGl6ZWA64pCfODkzNDc2YzJjNDIxY2VlNDc2NjNjOTczMmZhNDFhNzUwZDNhNzNkZuKQnzI0NjA2NzA1MzczNTE2MjYzNDogJHtufTpJQ1U6YCxbWzEsImdyYXBoLXN0cnVjdHVyZS1jb250YWluZXIiXSxbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJvcEluZm9NaXNzaW5nIiwiIl0sWyJub09wRm9jdXNlZCIsIiJdLFsiY2xhc3MiLCJpbnB1dHMtY29udGFpbmVyIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vSW5wdXRzIiwiIl0sWzEsInNlbGYtb3AtY29udGFpbmVyIl0sWzEsInNlbGYtb3AtaGVhZGVyIl0sWzMsImtpbmQiLCJvcE5hbWUiLCJvcERhdGEiLCJvbk9wTmFtZUNsaWNrIl0sWyJjbGFzcyIsImNvbnN1bWVycy1jb250YWluZXIiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibm9Db25zdW1lcnMiLCIiXSxbMSwiaW5wdXRzLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJpbnB1dC1vcC1zZWN0aW9uIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiaW5wdXQtb3Atc2VjdGlvbiJdLFsxLCJpbnB1dC1zbG90LWhlYWRlciJdLFszLCJraW5kIiwib3BOYW1lIiwic2xvdCIsIm9wRGF0YSIsIm9uT3BOYW1lQ2xpY2siXSxbMSwiaW5wdXRzLWNvbnRhaW5lciIsIm5vLWlucHV0cy1pbmRpY2F0b3IiXSxbMSwiY29uc3VtZXJzLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJzbG90LWNvbnN1bWVycy1jb250YWluZXIiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJzbG90LWNvbnN1bWVycy1jb250YWluZXIiXSxbMSwic2xvdC1jb25zdW1lcnMtaGVhZGVyIl0sZSxbImNsYXNzIiwiY29uc3VtZXItc2VjdGlvbiIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnN1bWVyLXNlY3Rpb24iXSxbMSwib3AtY29uc3VtZXJzLWNvbnRhaW5lciJdLG8sWzEsIm9wLWluZm8tbWlzc2luZyJdLFsxLCJuby1vcC1mb2N1c2VkIl1dfSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUm0oMCwiZGl2IiksUm0oMSwiZGl2Iiksa3UoMiwiR3JhcGggU3RydWN0dXJlIiksQW0oKSxSbSgzLCJkaXYiLDApLFFwKDQsSEssMTEsNywiZGl2IiwxKSxBbSgpLFFwKDUsRkssMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLGliKSxRcCg3LExLLDIsMCwibmctdGVtcGxhdGUiLG51bGwsMyxpYiksQW0oKSksMiZlKXtjb25zdCB0PSRwKDgpO3JjKDQpLERtKCJuZ0lmIixudWxsIT1uLm9wSW5mbykoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W2RNLERLLGxNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde292ZXJmbG93LXk6YXV0b30uY29uc3VtZXJzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206NXB4O292ZXJmbG93LXg6YXV0bzt3aGl0ZS1zcGFjZTpub3dyYXB9LmNvbnN1bWVyLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjVweCAwfS5ncmFwaC1zdHJ1Y3R1cmUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtvdmVyZmxvdy15OmF1dG87d2hpdGUtc3BhY2U6bm93cmFwfS5pbnB1dHMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMik7bWFyZ2luLXRvcDo1cHg7b3ZlcmZsb3cteDphdXRvO3BhZGRpbmctYm90dG9tOjA7d2hpdGUtc3BhY2U6bm93cmFwfS5pbnB1dC1vcC1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyKTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6NXB4O3BhZGRpbmctYm90dG9tOjVweH0uaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjA5OTttYXJnaW4tYm90dG9tOjVweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2U2NTEwMH0uaW5wdXQtdGVuc29yLW5hbWVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwfS5uby1vcC1mb2N1c2VkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpncmF5O2ZvbnQtZmFtaWx5OiJSb2JvdG8iLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O3doaXRlLXNwYWNlOm5vcm1hbH0uc2VsZi1vcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luLWJvdHRvbTo1cHh9LnNlbGYtb3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMik7cGFkZGluZy1ib3R0b206NXB4fS5zbG90LWNvbnN1bWVycy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo1cHg7cGFkZGluZy10b3A6NXB4O3ZlcnRpY2FsLWFsaWduOnRvcH0uc2xvdC1jb25zdW1lcnMtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXB9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImdyYXBoLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vZ3JhcGhfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vZ3JhcGhfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse29wSW5mbzpbe3R5cGU6eHl9XSxpbnB1dE9wczpbe3R5cGU6eHl9XSxjb25zdW1lck9wczpbe3R5cGU6eHl9XSxvbkdyYXBoT3BOYXZpZ2F0ZTpbe3R5cGU6T3l9XX0pO2NsYXNzIFZLe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLm9wSW5mbyQ9dGhpcy5zdG9yZS5waXBlKEZ3KGVYKSksdGhpcy5pbnB1dE9wcyQ9dGhpcy5zdG9yZS5waXBlKEZ3KG5YKSksdGhpcy5jb25zdW1lck9wcyQ9dGhpcy5zdG9yZS5waXBlKEZ3KGlYKSl9b25HcmFwaE9wTmF2aWdhdGUodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChuWih0KSl9fWZ1bmN0aW9uIGpLKHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwxMiksa3UoMSwi4pa2IiksQW0oKSl9VksuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZLKShTbShJdykpfSxWSy7JtWNtcD10byh7dHlwZTpWSyxzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItZ3JhcGgiXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywib3BJbmZvIiwiaW5wdXRPcHMiLCJjb25zdW1lck9wcyIsIm9uR3JhcGhPcE5hdmlnYXRlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJncmFwaC1jb21wb25lbnQiLDApLFZtKCJvbkdyYXBoT3BOYXZpZ2F0ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25HcmFwaE9wTmF2aWdhdGUoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgib3BJbmZvIixUaCgxLDMsbi5vcEluZm8kKSkoImlucHV0T3BzIixUaCgyLDUsbi5pbnB1dE9wcyQpKSgiY29uc3VtZXJPcHMiLFRoKDMsNyxuLmNvbnN1bWVyT3BzJCkpfSxkaXJlY3RpdmVzOltCS10scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFZLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLWdyYXBoIix0ZW1wbGF0ZTonXG4gICAgPGdyYXBoLWNvbXBvbmVudFxuICAgICAgW29wSW5mb109Im9wSW5mbyQgfCBhc3luYyJcbiAgICAgIFtpbnB1dE9wc109ImlucHV0T3BzJCB8IGFzeW5jIlxuICAgICAgW2NvbnN1bWVyT3BzXT0iY29uc3VtZXJPcHMkIHwgYXN5bmMiXG4gICAgICAob25HcmFwaE9wTmF2aWdhdGUpPSJvbkdyYXBoT3BOYXZpZ2F0ZSgkZXZlbnQpIlxuICAgID48L2dyYXBoLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjb25zdCBVSz1mdW5jdGlvbih0LGUpe3JldHVybnt0ZW5zb3JEZWJ1Z01vZGU6dCxhcnJheTplfX07ZnVuY3Rpb24gR0sodCxlKXtpZigxJnQmJlRtKDAsImRlYnVnLXRlbnNvci12YWx1ZSIsMTcpLDImdCl7Y29uc3QgdD1ZbSgyKS4kaW1wbGljaXQsZT1ZbSgyKTtEbSgiZGVidWdUZW5zb3JWYWx1ZSIsZS5wYXJzZURlYnVnVGVuc29yVmFsdWUodmgoMSxVSyxlLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS50ZW5zb3JfZGVidWdfbW9kZSxlLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS5kZWJ1Z190ZW5zb3JfdmFsdWUpKSl9fWZ1bmN0aW9uIFdLKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiksUm0oMSwiZGl2IiwxMyksUm0oMiwiYnV0dG9uIiwxNCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe2hpKHQpO2NvbnN0IG49WW0oKS4kaW1wbGljaXQsbz1ZbSgyKTtyZXR1cm4gby5vblRlbnNvck5hbWVDbGljay5lbWl0KHtpbmRleDpuLGdyYXBoX2lkOm8uZ3JhcGhFeGVjdXRpb25EYXRhW25dLmdyYXBoX2lkLG9wX25hbWU6by5ncmFwaEV4ZWN1dGlvbkRhdGFbbl0ub3BfbmFtZX0pfSkpLGt1KDMpLEFtKCksUm0oNCwiZGl2IiwxNSksa3UoNSksQW0oKSxBbSgpLFFwKDYsR0ssMSw0LCJkZWJ1Zy10ZW5zb3ItdmFsdWUiLDE2KSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpLiRpbXBsaWNpdCxlPVltKDIpO3JjKDIpLEttKCJ0aXRsZSIsZS5nZXRUZW5zb3JOYW1lKHQpKSxyYygxKSxEdSgiICIsZS5nZXRUZW5zb3JOYW1lKHQpLCIgIikscmMoMiksU3UoZS5ncmFwaEV4ZWN1dGlvbkRhdGFbdF0ub3BfdHlwZSkscmMoMSksRG0oIm5nSWYiLG51bGwhPT1lLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS5kZWJ1Z190ZW5zb3JfdmFsdWUpfX1mdW5jdGlvbiBZSyh0LGUpezEmdCYmKFJtKDAsImRpdiIsMTgpLGt1KDEsIiBMb2FkaW5nLi4uICIpLEFtKCkpfWNvbnN0IHFLPWZ1bmN0aW9uKHQpe3JldHVybnsiaW5wdXQtb2YtZm9jdXMiOnR9fTtmdW5jdGlvbiBaSyh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNSksUm0oMSwiZGl2Iiw2KSxSbSgyLCJkaXYiLDcpLFFwKDMsakssMiwwLCJkaXYiLDgpLGt1KDQpLEFtKCksUXAoNSxXSyw3LDQsImRpdiIsOSksUXAoNixZSywyLDAsIm5nLXRlbXBsYXRlIiwxMCwxMSxpYiksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj0kcCg3KSxvPVltKDIpO3JjKDEpLERtKCJuZ0NsYXNzIixNaCg1LHFLLG8uaXNJbnB1dE9mRm9jdXModCkpKSxyYygyKSxEbSgibmdJZiIsdD09PW8uZm9jdXNJbmRleCkscmMoMSksRHUoIiAiLHQsIiAiKSxyYygxKSxEbSgibmdJZiIsby5ncmFwaEV4ZWN1dGlvbkRhdGFbdF0pKCJuZ0lmRWxzZSIsbil9fWZ1bmN0aW9uIFhLKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IiwzKSxWbSgic2Nyb2xsZWRJbmRleENoYW5nZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25TY3JvbGxlZEluZGV4Q2hhbmdlLmVtaXQobil9KSksUXAoMSxaSyw4LDcsImRpdiIsNCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEbSgiY2RrVmlydHVhbEZvck9mIix0LmdyYXBoRXhlY3V0aW9uSW5kaWNlcyl9fWNsYXNzIEtLe2NvbnN0cnVjdG9yKCl7dGhpcy5vblNjcm9sbGVkSW5kZXhDaGFuZ2U9bmV3IExoLHRoaXMub25UZW5zb3JOYW1lQ2xpY2s9bmV3IExoLHRoaXMucGFyc2VEZWJ1Z1RlbnNvclZhbHVlPUhYLHRoaXMuVEVTVF9PTkxZPXtnZXRWaWV3UG9ydDooKT0+dGhpcy52aWV3UG9ydH19bmdPbkNoYW5nZXModCl7aWYodGhpcy52aWV3UG9ydCYmdC5mb2N1c0luZGV4JiZudWxsIT09dC5mb2N1c0luZGV4LmN1cnJlbnRWYWx1ZSl7Y29uc3QgZT10aGlzLnZpZXdQb3J0LmdldFJlbmRlcmVkUmFuZ2UoKSxuPXQuZm9jdXNJbmRleC5jdXJyZW50VmFsdWUsbz1NYXRoLnJvdW5kKChlLmVuZC1lLnN0YXJ0KS8zKSxpPU1hdGgubWF4KG4tbywwKTt0aGlzLnZpZXdQb3J0LnNjcm9sbFRvSW5kZXgoaSxuPj1lLnN0YXJ0JiZuPGUuZW5kPyJzbW9vdGgiOnZvaWQgMCl9fWdldFRlbnNvck5hbWUodCl7cmV0dXJuYCR7dGhpcy5ncmFwaEV4ZWN1dGlvbkRhdGFbdF0ub3BfbmFtZX06JHt0aGlzLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS5vdXRwdXRfc2xvdH1gfWlzSW5wdXRPZkZvY3VzKHQpe3JldHVybiBudWxsIT09dGhpcy5mb2N1c0lucHV0SW5kaWNlcyYmdGhpcy5mb2N1c0lucHV0SW5kaWNlcy5pbmNsdWRlcyh0KX19S0suybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEtLKX0sS0suybVjbXA9dG8oe3R5cGU6S0ssc2VsZWN0b3JzOltbImdyYXBoLWV4ZWN1dGlvbnMtY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChnRiw1KSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLnZpZXdQb3J0PXQuZmlyc3QpfX0saW5wdXRzOntudW1HcmFwaEV4ZWN1dGlvbnM6Im51bUdyYXBoRXhlY3V0aW9ucyIsZ3JhcGhFeGVjdXRpb25EYXRhOiJncmFwaEV4ZWN1dGlvbkRhdGEiLGdyYXBoRXhlY3V0aW9uSW5kaWNlczoiZ3JhcGhFeGVjdXRpb25JbmRpY2VzIixmb2N1c0luZGV4OiJmb2N1c0luZGV4Iixmb2N1c0lucHV0SW5kaWNlczoiZm9jdXNJbnB1dEluZGljZXMifSxvdXRwdXRzOntvblNjcm9sbGVkSW5kZXhDaGFuZ2U6Im9uU2Nyb2xsZWRJbmRleENoYW5nZSIsb25UZW5zb3JOYW1lQ2xpY2s6Im9uVGVuc29yTmFtZUNsaWNrIn0sZmVhdHVyZXM6W0JvXSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1sxLCJncmFwaC1leGVjdXRpb25zLWNvbnRhaW5lciJdLFsxLCJncmFwaC1leGVjdXRpb25zLXRpdGxlIl0sWyJpdGVtU2l6ZSIsIjM4IiwiY2xhc3MiLCJncmFwaC1leGVjdXRpb25zLXZpZXdwb3J0IiwzLCJzY3JvbGxlZEluZGV4Q2hhbmdlIiw0LCJuZ0lmIl0sWyJpdGVtU2l6ZSIsIjM4IiwxLCJncmFwaC1leGVjdXRpb25zLXZpZXdwb3J0IiwzLCJzY3JvbGxlZEluZGV4Q2hhbmdlIl0sWyJjbGFzcyIsInRlbnNvci1jb250YWluZXIiLDQsImNka1ZpcnR1YWxGb3IiLCJjZGtWaXJ0dWFsRm9yT2YiXSxbMSwidGVuc29yLWNvbnRhaW5lciJdLFsxLCJ0ZW5zb3ItaXRlbSIsMywibmdDbGFzcyJdLFsxLCJncmFwaC1leGVjdXRpb24taW5kZXgiXSxbImNsYXNzIiwiZ3JhcGgtZXhlY3V0aW9uLWZvY3VzIiw0LCJuZ0lmIl0sWzQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsiY2xhc3MiLCJ0ZW5zb3ItaXRlbSJdLFsiZGF0YUxvYWRpbmciLCIiXSxbMSwiZ3JhcGgtZXhlY3V0aW9uLWZvY3VzIl0sWzEsInRlbnNvci1uYW1lLWFuZC1vcC10eXBlIl0sWzEsInRlbnNvci1uYW1lIiwzLCJ0aXRsZSIsImNsaWNrIl0sWzEsIm9wLXR5cGUiXSxbMywiZGVidWdUZW5zb3JWYWx1ZSIsNCwibmdJZiJdLFszLCJkZWJ1Z1RlbnNvclZhbHVlIl0sWzEsImxvYWRpbmctc3Bpbm5lciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiLDEpLGt1KDIpLEFtKCksUXAoMyxYSywyLDEsImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCIsMiksQW0oKSksMiZlJiYocmMoMiksRHUoIiBHcmFwaCBFeGVjdXRpb25zICgiLG4ubnVtR3JhcGhFeGVjdXRpb25zLCIpICIpLHJjKDEpLERtKCJuZ0lmIixudWxsIT09bi5udW1HcmFwaEV4ZWN1dGlvbnMmJm4ubnVtR3JhcGhFeGVjdXRpb25zPjApKX0sZGlyZWN0aXZlczpbZE0sZ0YsZEYsYkYsYU0sYUtdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5ncmFwaC1leGVjdXRpb25zLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTttYXJnaW4tbGVmdDo4cHg7cGFkZGluZy1sZWZ0OjEwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyYXBoLWV4ZWN1dGlvbnMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyYXBoLWV4ZWN1dGlvbnMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdDoxcHggc29saWQgIzU1NX0uZ3JhcGgtZXhlY3V0aW9uLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9ja30uZ3JhcGgtZXhlY3V0aW9uLWluZGV4W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctcmlnaHQ6NHB4O3RleHQtYWxpZ246cmlnaHQ7d2lkdGg6NDBweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JhcGgtZXhlY3V0aW9uLWluZGV4W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyYXBoLWV4ZWN1dGlvbi1pbmRleFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmdyYXBoLWV4ZWN1dGlvbnMtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MCA1cHggM3B4IC0zcHggI2NjYztwYWRkaW5nLWJvdHRvbTo1cHh9LmdyYXBoLWV4ZWN1dGlvbnMtdmlld3BvcnRbX25nY29udGVudC0lQ09NUCVde2ZsZXgtZ3JvdzoxO2ZvbnQtc2l6ZToxMnB4O3dpZHRoOjEwMCU7b3ZlcmZsb3cteDpoaWRkZW59LmlucHV0LW9mLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYwOTl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmlucHV0LW9mLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmlucHV0LW9mLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlNjUxMDB9LmxvYWRpbmctc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2VjZWZmMTtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1mYW1pbHk6IlJvYm90byBNb25vIixtb25vc3BhY2U7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjE0cHg7bGluZS1oZWlnaHQ6MTRweDtwYWRkaW5nOjFweCAzcHg7d2lkdGg6bWF4LWNvbnRlbnQ7ZGlyZWN0aW9uOnJ0bDtkaXNwbGF5OmJsb2NrfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTVhNjR9LnRlbnNvci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LnRlbnNvci1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwO2hlaWdodDozOHB4O2xpbmUtaGVpZ2h0OjM4cHg7dGV4dC1hbGlnbjpsZWZ0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MTAwJX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudGVuc29yLWl0ZW1bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudGVuc29yLWl0ZW1bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9LnRlbnNvci1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2N1cnNvcjpwb2ludGVyO2RpcmVjdGlvbjpydGw7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTZweDtsaW5lLWhlaWdodDoxNnB4O21hcmdpbjoycHggMCAxcHg7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDJweCk7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MCAycHg7dGV4dC1hbGlnbjpyaWdodDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS50ZW5zb3ItbmFtZVtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7b3V0bGluZToxcHggc29saWQgI2M2Y2FkMX0udGVuc29yLW5hbWUtYW5kLW9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2RpcmVjdGlvbjpydGw7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctcmlnaHQ6OHB4O3RleHQtYWxpZ246cmlnaHQ7d2lkdGg6MjQwcHh9ZGVidWctdGVuc29yLXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MnB4IDB9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEtLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImdyYXBoLWV4ZWN1dGlvbnMtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9ncmFwaF9leGVjdXRpb25zX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2dyYXBoX2V4ZWN1dGlvbnNfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse251bUdyYXBoRXhlY3V0aW9uczpbe3R5cGU6eHl9XSxncmFwaEV4ZWN1dGlvbkRhdGE6W3t0eXBlOnh5fV0sZ3JhcGhFeGVjdXRpb25JbmRpY2VzOlt7dHlwZTp4eX1dLGZvY3VzSW5kZXg6W3t0eXBlOnh5fV0sZm9jdXNJbnB1dEluZGljZXM6W3t0eXBlOnh5fV0sb25TY3JvbGxlZEluZGV4Q2hhbmdlOlt7dHlwZTpPeX1dLG9uVGVuc29yTmFtZUNsaWNrOlt7dHlwZTpPeX1dLHZpZXdQb3J0Olt7dHlwZTpaYSxhcmdzOltnRix7c3RhdGljOiExfV19XX0pO2NsYXNzIEpLe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLm51bUdyYXBoRXhlY3V0aW9ucyQ9dGhpcy5zdG9yZS5waXBlKEZ3KFlaKSksdGhpcy5ncmFwaEV4ZWN1dGlvbkRhdGEkPXRoaXMuc3RvcmUucGlwZShGdyhRWikpLHRoaXMuZ3JhcGhFeGVjdXRpb25JbmRpY2VzJD10aGlzLnN0b3JlLnBpcGUoRncoWncoWVosKHQ9PjA9PT10P251bGw6QXJyYXkuZnJvbSh7bGVuZ3RoOnR9KS5tYXAoKCh0LGUpPT5lKSkpKSkpLHRoaXMuZm9jdXNJbmRleCQ9dGhpcy5zdG9yZS5waXBlKEZ3KCRaKSksdGhpcy5mb2N1c0lucHV0SW5kaWNlcyQ9dGhpcy5zdG9yZS5waXBlKEZ3KG9YKSl9b25TY3JvbGxlZEluZGV4Q2hhbmdlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2godFooe2luZGV4OnR9KSl9b25UZW5zb3JOYW1lQ2xpY2sodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChlWih0KSl9fUpLLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxKSykoU20oSXcpKX0sSksuybVjbXA9dG8oe3R5cGU6Skssc2VsZWN0b3JzOltbInRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnMiXV0sZGVjbHM6Nix2YXJzOjE1LGNvbnN0czpbWzMsIm51bUdyYXBoRXhlY3V0aW9ucyIsImdyYXBoRXhlY3V0aW9uRGF0YSIsImdyYXBoRXhlY3V0aW9uSW5kaWNlcyIsImZvY3VzSW5kZXgiLCJmb2N1c0lucHV0SW5kaWNlcyIsIm9uU2Nyb2xsZWRJbmRleENoYW5nZSIsIm9uVGVuc29yTmFtZUNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJncmFwaC1leGVjdXRpb25zLWNvbXBvbmVudCIsMCksVm0oIm9uU2Nyb2xsZWRJbmRleENoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TY3JvbGxlZEluZGV4Q2hhbmdlKGUpfSkpKCJvblRlbnNvck5hbWVDbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25UZW5zb3JOYW1lQ2xpY2soZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFtKCkpLDImZSYmRG0oIm51bUdyYXBoRXhlY3V0aW9ucyIsVGgoMSw1LG4ubnVtR3JhcGhFeGVjdXRpb25zJCkpKCJncmFwaEV4ZWN1dGlvbkRhdGEiLFRoKDIsNyxuLmdyYXBoRXhlY3V0aW9uRGF0YSQpKSgiZ3JhcGhFeGVjdXRpb25JbmRpY2VzIixUaCgzLDksbi5ncmFwaEV4ZWN1dGlvbkluZGljZXMkKSkoImZvY3VzSW5kZXgiLFRoKDQsMTEsbi5mb2N1c0luZGV4JCkpKCJmb2N1c0lucHV0SW5kaWNlcyIsVGgoNSwxMyxuLmZvY3VzSW5wdXRJbmRpY2VzJCkpfSxkaXJlY3RpdmVzOltLS10scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEpLLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnMiLHRlbXBsYXRlOidcbiAgICA8Z3JhcGgtZXhlY3V0aW9ucy1jb21wb25lbnRcbiAgICAgIFtudW1HcmFwaEV4ZWN1dGlvbnNdPSJudW1HcmFwaEV4ZWN1dGlvbnMkIHwgYXN5bmMiXG4gICAgICBbZ3JhcGhFeGVjdXRpb25EYXRhXT0iZ3JhcGhFeGVjdXRpb25EYXRhJCB8IGFzeW5jIlxuICAgICAgW2dyYXBoRXhlY3V0aW9uSW5kaWNlc109ImdyYXBoRXhlY3V0aW9uSW5kaWNlcyQgfCBhc3luYyJcbiAgICAgIFtmb2N1c0luZGV4XT0iZm9jdXNJbmRleCQgfCBhc3luYyJcbiAgICAgIFtmb2N1c0lucHV0SW5kaWNlc109ImZvY3VzSW5wdXRJbmRpY2VzJCB8IGFzeW5jIlxuICAgICAgKG9uU2Nyb2xsZWRJbmRleENoYW5nZSk9Im9uU2Nyb2xsZWRJbmRleENoYW5nZSgkZXZlbnQpIlxuICAgICAgKG9uVGVuc29yTmFtZUNsaWNrKT0ib25UZW5zb3JOYW1lQ2xpY2soJGV2ZW50KSJcbiAgICA+PC9ncmFwaC1leGVjdXRpb25zLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjb25zdCBRSz1mdW5jdGlvbiAkSygpe3JldHVybiB3aW5kb3d9O2Z1bmN0aW9uIHRKKHQpe2NvbnN0IGU9UUsoKS5yZXF1aXJlO3JldHVybiBuZXcgUHJvbWlzZSgobj0+e2UodCxuKX0pKX1mdW5jdGlvbiBlSigpe3JldHVybiBnQSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9UUsoKTtpZih2b2lkIDA9PT10Lm1vbmFjbyl7aWYoIXQucmVxdWlyZSl0aHJvdyBuZXcgRXJyb3IoImxvYWRNb25hY28oKSBmYWlsZWQgYmVjYXVzZSBmdW5jdGlvbiByZXF1aXJlKCkgaXMgdW5hdmFpbGFibGUiKTt0LnJlcXVpcmUuY29uZmlnKHtwYXRoczp7dnM6Ii90Zi1pbXBvcnRzL3ZzIn19KSx5aWVsZCB0SihbInZzL2VkaXRvci9lZGl0b3IubWFpbiJdKSx5aWVsZCB0SihbInZzL3B5dGhvbi9weXRob24uY29udHJpYnV0aW9uIl0pfX0pKX1mdW5jdGlvbiBuSih0KXtyZXR1cm4gdD8idnMtZGFyayI6InZzIn1jbGFzcyBvSntjb25zdHJ1Y3Rvcih0KXt0aGlzLnJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zPTEwMCx0aGlzLm9uUmVzaXplPW5ldyBMaCx0aGlzLm5nVW5zdWJzY3JpYmUkPW5ldyBJLHRoaXMub25SZXNpemUkPW5ldyBJO2NvbnN0IGU9bmV3IFJlc2l6ZU9ic2VydmVyKCgoKT0+e3RoaXMub25SZXNpemUkLm5leHQoKX0pKTtlLm9ic2VydmUodC5uYXRpdmVFbGVtZW50KSx0aGlzLm5nVW5zdWJzY3JpYmUkLnN1YnNjcmliZSgoKCk9PntlLnVub2JzZXJ2ZSh0Lm5hdGl2ZUVsZW1lbnQpfSkpfW5nT25Jbml0KCl7dGhpcy5vblJlc2l6ZSQucGlwZShUZSgxKSxnZSh0aGlzLnJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zKSxJZSh0aGlzLm5nVW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMub25SZXNpemUuZW1pdCgpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlJC5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpfX1vSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b0opKFNtKGhnKSl9LG9KLsm1ZGlyPWxvKHt0eXBlOm9KLHNlbGVjdG9yczpbWyIiLCJkZXRlY3RSZXNpemUiLCIiXV0saW5wdXRzOntyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5NczoicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMifSxvdXRwdXRzOntvblJlc2l6ZToib25SZXNpemUifX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgob0osW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2RldGVjdFJlc2l6ZV0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9XX0pLHtyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5Nczpbe3R5cGU6eHl9XSxvblJlc2l6ZTpbe3R5cGU6T3l9XX0pO2NvbnN0IGlKPVsiY29kZVZpZXdlckNvbnRhaW5lciJdO2NsYXNzIGFKe2NvbnN0cnVjdG9yKCl7dGhpcy5saW5lcz1udWxsLHRoaXMuZm9jdXNlZExpbmVubz1udWxsLHRoaXMubW9uYWNvPW51bGwsdGhpcy5lZGl0b3I9bnVsbCx0aGlzLmRlY29yYXRpb25zPVtdLHRoaXMuUkVTSVpFX0RFQk9VTkNFX0lOVEVSVkFMX01TPTUwfW9uUmVzaXplKCl7dGhpcy5lZGl0b3ImJnRoaXMuZWRpdG9yLmxheW91dCgpfW5nT25DaGFuZ2VzKHQpe3ZhciBlO2lmKG51bGw9PT10aGlzLm1vbmFjbylyZXR1cm47Y29uc3Qgbj10Lm1vbmFjbyYmbnVsbD09PXRoaXMuZWRpdG9yO251bGw9PT10aGlzLmVkaXRvciYmKHRoaXMuZWRpdG9yPXRoaXMubW9uYWNvLmVkaXRvci5jcmVhdGUodGhpcy5jb2RlVmlld2VyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQse3ZhbHVlOihudWxsIT09KGU9dGhpcy5saW5lcykmJnZvaWQgMCE9PWU/ZTpbXSkuam9pbigiXG4iKSxsYW5ndWFnZToicHl0aG9uIixyZWFkT25seTohMCxmb250U2l6ZToxMCxtaW5pbWFwOntlbmFibGVkOiEwfSx0aGVtZTpuSih0aGlzLnVzZURhcmtNb2RlKX0pKSx0LmxpbmVzJiZ0aGlzLmxpbmVzJiZ0aGlzLmVkaXRvci5zZXRWYWx1ZSh0aGlzLmxpbmVzLmpvaW4oIlxuIikpO2NvbnN0IG89bnx8dC5mb2N1c2VkTGluZW5vP3RoaXMuZm9jdXNlZExpbmVubzpudWxsO2lmKG8mJnRoaXMubGluZXMpe3RoaXMuZWRpdG9yLnJldmVhbExpbmVJbkNlbnRlcihvLHRoaXMubW9uYWNvLmVkaXRvci5TY3JvbGxUeXBlLlNtb290aCk7Y29uc3QgdD10aGlzLmxpbmVzW28tMV0ubGVuZ3RoO3RoaXMuZGVjb3JhdGlvbnM9dGhpcy5lZGl0b3IuZGVsdGFEZWNvcmF0aW9ucyh0aGlzLmRlY29yYXRpb25zLFt7cmFuZ2U6bmV3IHRoaXMubW9uYWNvLlJhbmdlKG8sMSxvLDEpLG9wdGlvbnM6e2lzV2hvbGVMaW5lOiEwLGxpbmVzRGVjb3JhdGlvbnNDbGFzc05hbWU6ImhpZ2hsaWdodC1ndXR0ZXIifX0se3JhbmdlOm5ldyB0aGlzLm1vbmFjby5SYW5nZShvLDEsbyx0KzEpLG9wdGlvbnM6e2lubGluZUNsYXNzTmFtZToiaGlnaGxpZ2h0LWxpbmUifX1dKX10LnVzZURhcmtNb2RlJiZ0aGlzLm1vbmFjby5lZGl0b3Iuc2V0VGhlbWUobkoodGhpcy51c2VEYXJrTW9kZSkpfX1hSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YUopfSxhSi7JtWNtcD10byh7dHlwZTphSixzZWxlY3RvcnM6W1sic291cmNlLWNvZGUtY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChpSiw3LGhnKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLmNvZGVWaWV3ZXJDb250YWluZXI9dC5maXJzdCl9fSxpbnB1dHM6e2xpbmVzOiJsaW5lcyIsZm9jdXNlZExpbmVubzoiZm9jdXNlZExpbmVubyIsbW9uYWNvOiJtb25hY28iLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSJ9LGZlYXR1cmVzOltCb10sZGVjbHM6Mix2YXJzOjEsY29uc3RzOltbImRldGVjdFJlc2l6ZSIsIiIsMSwiY29kZS12aWV3ZXItY29udGFpbmVyIiwzLCJyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5NcyIsIm9uUmVzaXplIl0sWyJjb2RlVmlld2VyQ29udGFpbmVyIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDAsMSksVm0oIm9uUmVzaXplIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVzaXplKCl9KSksQW0oKSksMiZlJiZEbSgicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLG4uUkVTSVpFX0RFQk9VTkNFX0lOVEVSVkFMX01TKX0sZGlyZWN0aXZlczpbb0pdLHN0eWxlczpbIi5jb2RlLXZpZXdlci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5bX25naG9zdC0lQ09NUCVdICAgICAuaGlnaGxpZ2h0LWd1dHRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxMTEsIDAsIDAuNyk7XG4gIHdpZHRoOiA1cHggIWltcG9ydGFudDtcbn1cblxuW19uZ2hvc3QtJUNPTVAlXSAgICAgLmhpZ2hsaWdodC1saW5lIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDExMSwgMCwgMC4zKTtcbn0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYUosW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic291cmNlLWNvZGUtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9zb3VyY2VfY29kZV9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9zb3VyY2VfY29kZV9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7bGluZXM6W3t0eXBlOnh5fV0sZm9jdXNlZExpbmVubzpbe3R5cGU6eHl9XSxtb25hY286W3t0eXBlOnh5fV0sdXNlRGFya01vZGU6W3t0eXBlOnh5fV0sY29kZVZpZXdlckNvbnRhaW5lcjpbe3R5cGU6WmEsYXJnczpbImNvZGVWaWV3ZXJDb250YWluZXIiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV19KTtjbGFzcyBySntjb25zdHJ1Y3Rvcigpe3RoaXMubGluZXM9bnVsbCx0aGlzLmZvY3VzZWRMaW5lbm89bnVsbCx0aGlzLnVzZURhcmtNb2RlPSExLHRoaXMubW9uYWNvJD1udWxsfW5nT25Jbml0KCl7dGhpcy5tb25hY28kPUN0KGVKKCkpLnBpcGUoSXQoKCgpPT53aW5kb3cubW9uYWNvKSkpfX1mdW5jdGlvbiBzSih0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNiksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRHUoIiAiLHQuZm9jdXNlZFNvdXJjZUxpbmVTcGVjLmZpbGVfcGF0aCwiICIpfX1mdW5jdGlvbiBsSih0LGUpezEmdCYmKFJtKDAsImRpdiIsNyksa3UoMSwiIE5vIGZpbGUgc2VsZWN0ZWQuIENsaWNrIGEgbGluZSBudW1iZXIgaW4gdGhlIFN0YWNrIFRyYWNlIHNlY3Rpb24gdG8gc2hvdyB0aGUgc291cmNlIGNvZGUuICIpLEFtKCkpfWZ1bmN0aW9uIGNKKHQsZSl7aWYoMSZ0JiZUbSgwLCJzb3VyY2UtY29kZSIsOCksMiZ0KXtjb25zdCB0PVltKCk7RG0oImxpbmVzIix0LmZvY3VzZWRTb3VyY2VGaWxlQ29udGVudC5saW5lcykoImZvY3VzZWRMaW5lbm8iLHQuZm9jdXNlZFNvdXJjZUxpbmVTcGVjLmxpbmVubykoInVzZURhcmtNb2RlIix0LnVzZURhcmtNb2RlKX19ckouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHJKKX0sckouybVjbXA9dG8oe3R5cGU6ckosc2VsZWN0b3JzOltbInNvdXJjZS1jb2RlIl1dLGlucHV0czp7bGluZXM6ImxpbmVzIixmb2N1c2VkTGluZW5vOiJmb2N1c2VkTGluZW5vIix1c2VEYXJrTW9kZToidXNlRGFya01vZGUifSxkZWNsczoyLHZhcnM6Nixjb25zdHM6W1szLCJsaW5lcyIsImZvY3VzZWRMaW5lbm8iLCJtb25hY28iLCJ1c2VEYXJrTW9kZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwic291cmNlLWNvZGUtY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpKSwyJmUmJkRtKCJsaW5lcyIsbi5saW5lcykoImZvY3VzZWRMaW5lbm8iLG4uZm9jdXNlZExpbmVubykoIm1vbmFjbyIsVGgoMSw0LG4ubW9uYWNvJCkpKCJ1c2VEYXJrTW9kZSIsbi51c2VEYXJrTW9kZSl9LGRpcmVjdGl2ZXM6W2FKXSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgockosW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic291cmNlLWNvZGUiLHRlbXBsYXRlOidcbiAgICA8c291cmNlLWNvZGUtY29tcG9uZW50XG4gICAgICBbbGluZXNdPSJsaW5lcyJcbiAgICAgIFtmb2N1c2VkTGluZW5vXT0iZm9jdXNlZExpbmVubyJcbiAgICAgIFttb25hY29dPSJtb25hY28kIHwgYXN5bmMiXG4gICAgICBbdXNlRGFya01vZGVdPSJ1c2VEYXJrTW9kZSJcbiAgICA+PC9zb3VyY2UtY29kZS1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse2xpbmVzOlt7dHlwZTp4eX1dLGZvY3VzZWRMaW5lbm86W3t0eXBlOnh5fV0sdXNlRGFya01vZGU6W3t0eXBlOnh5fV19KTtjbGFzcyBkSntjb25zdHJ1Y3Rvcigpe3RoaXMuZm9jdXNlZFNvdXJjZUZpbGVDb250ZW50PW51bGwsdGhpcy5mb2N1c2VkU291cmNlTGluZVNwZWM9bnVsbH19ZEouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGRKKX0sZEouybVjbXA9dG8oe3R5cGU6ZEosc2VsZWN0b3JzOltbInNvdXJjZS1maWxlcy1jb21wb25lbnQiXV0saW5wdXRzOntmb2N1c2VkU291cmNlRmlsZUNvbnRlbnQ6ImZvY3VzZWRTb3VyY2VGaWxlQ29udGVudCIsZm9jdXNlZFNvdXJjZUxpbmVTcGVjOiJmb2N1c2VkU291cmNlTGluZVNwZWMiLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSJ9LGRlY2xzOjgsdmFyczozLGNvbnN0czpbWzEsInNvdXJjZS1maWxlcy1jb250YWluZXIiXSxbMSwiaGVhZGVyLXNlY3Rpb24iXSxbMSwidGl0bGUtdGFnIl0sWyJjbGFzcyIsImZpbGUtbGFiZWwiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibm9GaWxlU2VsZWN0ZWQiLCIiXSxbMywibGluZXMiLCJmb2N1c2VkTGluZW5vIiwidXNlRGFya01vZGUiLDQsIm5nSWYiXSxbMSwiZmlsZS1sYWJlbCJdLFsxLCJuby1maWxlLXNlbGVjdGVkIl0sWzMsImxpbmVzIiwiZm9jdXNlZExpbmVubyIsInVzZURhcmtNb2RlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsImRpdiIsMSksUm0oMiwiZGl2IiwyKSxrdSgzLCJTb3VyY2UgQ29kZSIpLEFtKCksUXAoNCxzSiwyLDEsImRpdiIsMyksUXAoNSxsSiwyLDAsIm5nLXRlbXBsYXRlIixudWxsLDQsaWIpLEFtKCksUXAoNyxjSiwxLDMsInNvdXJjZS1jb2RlIiw1KSxBbSgpKSwyJmUpe2NvbnN0IHQ9JHAoNik7cmMoNCksRG0oIm5nSWYiLG51bGwhPT1uLmZvY3VzZWRTb3VyY2VMaW5lU3BlYykoIm5nSWZFbHNlIix0KSxyYygzKSxEbSgibmdJZiIsbnVsbCE9PW4uZm9jdXNlZFNvdXJjZUZpbGVDb250ZW50JiZudWxsIT09bi5mb2N1c2VkU291cmNlTGluZVNwZWMmJm51bGwhPT1uLmZvY3VzZWRTb3VyY2VGaWxlQ29udGVudC5saW5lcyl9fSxkaXJlY3RpdmVzOltkTSxySl0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LmhlYWRlci1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjRweDtwYWRkaW5nLWJvdHRvbTo2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxMDAlfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5oZWFkZXItc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5oZWFkZXItc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0uZmlsZS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC13ZWlnaHQ6bm9ybWFsO3doaXRlLXNwYWNlOm5vcm1hbDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO292ZXJmbG93LXk6YXV0bztwYWRkaW5nOjAgMjBweH0ubm8tZmlsZS1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6IzY2NjtwYWRkaW5nOjAgMjBweDt3aGl0ZS1zcGFjZTpub3JtYWx9LnNvdXJjZS1maWxlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1mYW1pbHk6IlJvYm90byBNb25vIixtb25vc3BhY2U7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjEwMCV9LnRpdGxlLXRhZ1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC13ZWlnaHQ6Ym9sZDtoZWlnaHQ6MTAwJTtwYWRkaW5nLWxlZnQ6NnB4O3ZlcnRpY2FsLWFsaWduOnRvcH1zb3VyY2UtY29kZVtfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjE7d2lkdGg6MTAwJX0nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZEosW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3Rvcjoic291cmNlLWZpbGVzLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vc291cmNlX2ZpbGVzX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL3NvdXJjZV9maWxlc19jb21wb25lbnQuY3NzIl19XX1dLG51bGwse2ZvY3VzZWRTb3VyY2VGaWxlQ29udGVudDpbe3R5cGU6eHl9XSxmb2N1c2VkU291cmNlTGluZVNwZWM6W3t0eXBlOnh5fV0sdXNlRGFya01vZGU6W3t0eXBlOnh5fV19KTtjbGFzcyBwSntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5mb2N1c2VkU291cmNlRmlsZUNvbnRlbnQkPXRoaXMuc3RvcmUuc2VsZWN0KHlYKSx0aGlzLmZvY3VzZWRTb3VyY2VMaW5lU3BlYyQ9dGhpcy5zdG9yZS5zZWxlY3QoX1gpLHRoaXMudXNlRGFya01vZGUkPXRoaXMuc3RvcmUuc2VsZWN0KEpEKX19cEouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBKKShTbShJdykpfSxwSi7JtWNtcD10byh7dHlwZTpwSixzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItc291cmNlLWZpbGVzIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsImZvY3VzZWRTb3VyY2VGaWxlQ29udGVudCIsImZvY3VzZWRTb3VyY2VMaW5lU3BlYyIsInVzZURhcmtNb2RlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJzb3VyY2UtZmlsZXMtY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSksMiZlJiZEbSgiZm9jdXNlZFNvdXJjZUZpbGVDb250ZW50IixUaCgxLDMsbi5mb2N1c2VkU291cmNlRmlsZUNvbnRlbnQkKSkoImZvY3VzZWRTb3VyY2VMaW5lU3BlYyIsVGgoMiw1LG4uZm9jdXNlZFNvdXJjZUxpbmVTcGVjJCkpKCJ1c2VEYXJrTW9kZSIsVGgoMyw3LG4udXNlRGFya01vZGUkKSl9LGRpcmVjdGl2ZXM6W2RKXSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocEosW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGYtZGVidWdnZXItdjItc291cmNlLWZpbGVzIix0ZW1wbGF0ZTonXG4gICAgPHNvdXJjZS1maWxlcy1jb21wb25lbnRcbiAgICAgIFtmb2N1c2VkU291cmNlRmlsZUNvbnRlbnRdPSJmb2N1c2VkU291cmNlRmlsZUNvbnRlbnQkIHwgYXN5bmMiXG4gICAgICBbZm9jdXNlZFNvdXJjZUxpbmVTcGVjXT0iZm9jdXNlZFNvdXJjZUxpbmVTcGVjJCB8IGFzeW5jIlxuICAgICAgW3VzZURhcmtNb2RlXT0idXNlRGFya01vZGUkIHwgYXN5bmMiXG4gICAgPjwvc291cmNlLWZpbGVzLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjb25zdCBtSj1bInN0YWNrRnJhbWVBcnJheSJdO2Z1bmN0aW9uIHVKKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTMpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgzKTtyYygxKSxEdSgiICMiLHQuZXhlY3V0aW9uSW5kZXgsIjogIil9fWZ1bmN0aW9uIGZKKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTQpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgzKTtyYygxKSxEdSgiICIsdC5vcFR5cGUsIiAiKX19ZnVuY3Rpb24gZ0oodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiKSxrdSgxLCIgRWFnZXIgZXhlY3V0aW9uICIpLFFwKDIsdUosMiwxLCJzcGFuIiwxMSksUXAoMyxmSiwyLDEsInNwYW4iLDEyKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoMiksRG0oIm5nSWYiLG51bGwhPT10Lm9wVHlwZSkscmMoMSksRG0oIm5nSWYiLG51bGwhPT10Lm9wVHlwZSl9fWZ1bmN0aW9uIGhKKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTYpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgzKTtyYygxKSxEdSgnICInLHQub3BOYW1lLCciICcpfX1mdW5jdGlvbiBiSih0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDE0KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMyk7cmMoMSksRHUoIiAiLHQub3BUeXBlLCIgIil9fWZ1bmN0aW9uIHlKKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiksa3UoMSwiIENyZWF0aW9uIG9mIGdyYXBoIG9wICIpLFFwKDIsaEosMiwxLCJzcGFuIiwxNSksUXAoMyxiSiwyLDEsInNwYW4iLDEyKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoMiksRG0oIm5nSWYiLG51bGwhPT10Lm9wTmFtZSkscmMoMSksRG0oIm5nSWYiLG51bGwhPT10Lm9wVHlwZSl9fWZ1bmN0aW9uIF9KKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTcpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygxKSxEdSgiIChIb3N0IG5hbWU6ICIsdC5zdGFja0ZyYW1lc0ZvckRpc3BsYXlbMF0uaG9zdF9uYW1lLCIpICIpfX1mdW5jdGlvbiBDSih0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsNyksUm0oMSwic3BhbiIpLFJtKDIsInNwYW4iLDgpLFFwKDMsZ0osNCwyLCJkaXYiLDkpLFFwKDQseUosNCwyLCJkaXYiLDkpLEFtKCksQW0oKSxSbSg1LCJkaXYiKSxRcCg2LF9KLDIsMSwic3BhbiIsMTApLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMiksRG0oIm5nU3dpdGNoIix0LmNvZGVMb2NhdGlvblR5cGUpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLHQuQ29kZUxvY2F0aW9uVHlwZS5FWEVDVVRJT04pLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLHQuQ29kZUxvY2F0aW9uVHlwZS5HUkFQSF9PUF9DUkVBVElPTikscmMoMiksRG0oIm5nSWYiLG51bGwhPT10LnN0YWNrRnJhbWVzRm9yRGlzcGxheSYmdC5zdGFja0ZyYW1lc0ZvckRpc3BsYXkubGVuZ3RoPjApfX1mdW5jdGlvbiBNSih0LGUpezEmdCYmKFJtKDAsImRpdiIsMTgpLGt1KDEsIiBDbGljayBhbiBlYWdlciBleGVjdXRpb24gb3IgZ3JhcGggb3AgdG8gc2hvdyBpdHMgb3JpZ2luYWwgc3RhY2sgdHJhY2UuICIpLEFtKCkpfWZ1bmN0aW9uIHZKKHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwyOCksa3UoMSwiIOKkkyAiKSxBbSgpKX1jb25zdCB4Sj1mdW5jdGlvbih0LGUpe3JldHVyblt0LGVdfTtmdW5jdGlvbiBPSih0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMjIpLFJtKDEsImRpdiIsMjMpLGt1KDIpLEFtKCksUm0oMywiZGl2IiwyNCksUXAoNCx2SiwyLDAsImRpdiIsMjUpLFJtKDUsImRpdiIsMjYpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtjb25zdCBuPWhpKHQpLiRpbXBsaWNpdDtyZXR1cm4gWW0oMikub25Tb3VyY2VMaW5lQ2xpY2tlZC5lbWl0KG4pfSkpLGt1KDYpLEFtKCksUm0oNywiZGl2IiwyNyksa3UoOCksQW0oKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7RG0oIm5nQ2xhc3MiLHZoKDYseEosdC5iZWxvbmdzVG9Gb2N1c2VkRmlsZT8iZm9jdXNlZC1maWxlIjoiIix0LmZvY3VzZWQ/ImZvY3VzZWQtc3RhY2stZnJhbWUiOiIiKSkscmMoMSksS20oInRpdGxlIix0LmZpbGVfcGF0aCkscmMoMSksRHUoIiAiLHQuY29uY2lzZV9maWxlX3BhdGgsIiAiKSxyYygyKSxEbSgibmdJZiIsbi5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSYmdC5mb2N1c2VkKSxyYygyKSxEdSgiIExpbmUgIix0LmxpbmVubywiICIpLHJjKDIpLER1KCIgIix0LmZ1bmN0aW9uX25hbWUsIiAiKX19ZnVuY3Rpb24gUEoodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDE5LDIwKSxRcCgyLE9KLDksOSwiZGl2IiwyMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMiksRG0oIm5nRm9yT2YiLHQuc3RhY2tGcmFtZXNGb3JEaXNwbGF5KX19ZnVuY3Rpb24gd0oodCxlKXt9Y2xhc3Mga0p7Y29uc3RydWN0b3IoKXt0aGlzLnN0YWNrRnJhbWVzRm9yRGlzcGxheT1udWxsLHRoaXMub25Tb3VyY2VMaW5lQ2xpY2tlZD1uZXcgTGgsdGhpcy5Db2RlTG9jYXRpb25UeXBlPWZafW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe2lmKHZvaWQgMD09PXRoaXMuc3RhY2tGcmFtZUFycmF5KXJldHVybjtjb25zdCB0PXRoaXMuc3RhY2tGcmFtZUFycmF5Lm5hdGl2ZUVsZW1lbnQsZT10LnF1ZXJ5U2VsZWN0b3IoIi5mb2N1c2VkLXN0YWNrLWZyYW1lIik7aWYobnVsbCE9PWUpcmV0dXJuIHZvaWQgdGhpcy5zY3JvbGxUb0VsZW1lbnQodCxlKTtjb25zdCBuPXQucXVlcnlTZWxlY3RvcigiLnN0YWNrLWZyYW1lLWNvbnRhaW5lcjpsYXN0LWNoaWxkIik7bnVsbCE9PW4mJnRoaXMuc2Nyb2xsVG9FbGVtZW50KHQsbil9c2Nyb2xsVG9FbGVtZW50KHQsZSl7dC5zY3JvbGxUb3A9ZS5vZmZzZXRUb3B9fWtKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrSil9LGtKLsm1Y21wPXRvKHt0eXBlOmtKLHNlbGVjdG9yczpbWyJzdGFjay10cmFjZS1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKG1KLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uc3RhY2tGcmFtZUFycmF5PXQuZmlyc3QpfX0saW5wdXRzOntjb2RlTG9jYXRpb25UeXBlOiJjb2RlTG9jYXRpb25UeXBlIixvcFR5cGU6Im9wVHlwZSIsb3BOYW1lOiJvcE5hbWUiLGV4ZWN1dGlvbkluZGV4OiJleGVjdXRpb25JbmRleCIsc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGU6InN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlIixzdGFja0ZyYW1lc0ZvckRpc3BsYXk6InN0YWNrRnJhbWVzRm9yRGlzcGxheSJ9LG91dHB1dHM6e29uU291cmNlTGluZUNsaWNrZWQ6Im9uU291cmNlTGluZUNsaWNrZWQifSxkZWNsczoxMCx2YXJzOjQsY29uc3RzOltbMSwic3RhY2stdHJhY2UtY29udGFpbmVyIl0sWzEsInN0YWNrLXRyYWNlLWhlYWRlciJdLFsxLCJzdGFjay10cmFjZS10aXRsZSJdLFsiY2xhc3MiLCJzdGFjay10cmFjZS1hdXgtaW5mbyIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub1N0YWNrVHJhY2UiLCIiXSxbImNsYXNzIiwic3RhY2stZnJhbWUtYXJyYXkiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibG9hZGluZ1NlY3Rpb24iLCIiXSxbMSwic3RhY2stdHJhY2UtYXV4LWluZm8iXSxbMSwiY29kZS1sb2NhdGlvbi1vcmlnaW4iLDMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJzdGFjay10cmFjZS1ob3N0LW5hbWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiZWFnZXItZXhlY3V0aW9uLWluZGV4Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm9wLXR5cGUiLDQsIm5nSWYiXSxbMSwiZWFnZXItZXhlY3V0aW9uLWluZGV4Il0sWzEsIm9wLXR5cGUiXSxbImNsYXNzIiwib3AtbmFtZSIsNCwibmdJZiJdLFsxLCJvcC1uYW1lIl0sWzEsInN0YWNrLXRyYWNlLWhvc3QtbmFtZSJdLFsxLCJzdGFjay10cmFjZS1hdXgtaW5mbyIsIm5vLXN0YWNrLXRyYWNlIl0sWzEsInN0YWNrLWZyYW1lLWFycmF5Il0sWyJzdGFja0ZyYW1lQXJyYXkiLCIiXSxbImNsYXNzIiwic3RhY2stZnJhbWUtY29udGFpbmVyIiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwic3RhY2stZnJhbWUtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWzEsInN0YWNrLWZyYW1lLWZpbGUtcGF0aCIsMywidGl0bGUiXSxbMSwic3RhY2stZnJhbWUtbGluZW5vLWZ1bmN0aW9uIl0sWyJjbGFzcyIsInN0aWNrLXRvLWJvdHRvbW1vc3QtaW5kaWNhdG9yIiwidGl0bGUiLCJTdGlja2luZyB0byB0aGUgYm90dG9tbW9zdCBmcmFtZSBpbiB0aGUgY3VycmVudCBzb3VyY2UgZmlsZSB3aGVuIG5hdmlnYXRpbmcgZXhlY3V0aW9ucyBhbmQgZ3JhcGggb3BzLiBUbyByZW1vdmUgdGhpcyBzdGlja2luZywgY2xpY2sgYW55IG5vbi1ib3R0b21tb3N0IHN0YWNrIGZyYW1lLiIsNCwibmdJZiJdLFsxLCJzdGFjay1mcmFtZS1saW5lbm8iLDMsImNsaWNrIl0sWzEsInN0YWNrLWZyYW1lLWZ1bmN0aW9uIl0sWyJ0aXRsZSIsIlN0aWNraW5nIHRvIHRoZSBib3R0b21tb3N0IGZyYW1lIGluIHRoZSBjdXJyZW50IHNvdXJjZSBmaWxlIHdoZW4gbmF2aWdhdGluZyBleGVjdXRpb25zIGFuZCBncmFwaCBvcHMuIFRvIHJlbW92ZSB0aGlzIHN0aWNraW5nLCBjbGljayBhbnkgbm9uLWJvdHRvbW1vc3Qgc3RhY2sgZnJhbWUuIiwxLCJzdGljay10by1ib3R0b21tb3N0LWluZGljYXRvciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiLDEpLFJtKDIsInNwYW4iLDIpLGt1KDMsIiBTdGFjayBUcmFjZSAiKSxBbSgpLFFwKDQsQ0osNyw0LCJkaXYiLDMpLFFwKDUsTUosMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LGliKSxBbSgpLFFwKDcsUEosMywxLCJkaXYiLDUpLFFwKDgsd0osMCwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw2LGliKSxBbSgpKSwyJmUpe2NvbnN0IHQ9JHAoNiksZT0kcCg5KTtyYyg0KSxEbSgibmdJZiIsbnVsbCE9PW4uY29kZUxvY2F0aW9uVHlwZSkoIm5nSWZFbHNlIix0KSxyYygzKSxEbSgibmdJZiIsbnVsbCE9PW4uc3RhY2tGcmFtZXNGb3JEaXNwbGF5KSgibmdJZkVsc2UiLGUpfX0sZGlyZWN0aXZlczpbZE0sZk0sZ00sbE0sYU1dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5mb2N1c2VkLWZpbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGR9LmZvY3VzZWQtc3RhY2stZnJhbWVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTExLDAsLjMpfS5uby1zdGFjay10cmFjZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6Z3JheX0ub3AtbmFtZVtfbmdjb250ZW50LSVDT01QJV17d29yZC13cmFwOmFueXdoZXJlfS5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlY2VmZjE7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtZmFtaWx5OiJSb2JvdG8gTW9ubyIsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxMHB4O2hlaWdodDoxNHB4O2xpbmUtaGVpZ2h0OjE0cHg7cGFkZGluZzoxcHggM3B4O3dpZHRoOm1heC1jb250ZW50fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTVhNjR9LnN0YWNrLWZyYW1lLWFycmF5W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87d2lkdGg6Y2FsYygxMDAlIC0gOHB4KX0uc3RhY2stZnJhbWUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYTBhMGEwfS5zdGFjay1mcmFtZS1maWxlLXBhdGhbX25nY29udGVudC0lQ09NUCVde21heC13aWR0aDoxODBweDt3aWR0aDoxODBweH0uc3RhY2stZnJhbWUtbGluZW5vLWZ1bmN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOnJpZ2h0O3doaXRlLXNwYWNlOm5vd3JhcH0uc3RhY2stZnJhbWUtZnVuY3Rpb25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoyMDBweDtwYWRkaW5nLWxlZnQ6MTBweDt0ZXh0LWFsaWduOmxlZnQ7d2hpdGUtc3BhY2U6bm9ybWFsO3dpZHRoOjIwMHB4O3dvcmQtd3JhcDphbnl3aGVyZX0uc3RhY2stZnJhbWUtbGluZW5vW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazttYXgtd2lkdGg6ODBweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt3aWR0aDo4MHB4fS5zdGFjay10cmFjZS1hdXgtaW5mb1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxNXB4O3BhZGRpbmctbGVmdDoyNHB4fS5zdGFjay10cmFjZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZWJlYmViO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OmNvbHVtbjtmb250LXNpemU6MTBweDtmb250LWZhbWlseToiUm9ib3RvIE1vbm8iLG1vbm9zcGFjZTtoZWlnaHQ6MTAwJTttYXJnaW4tbGVmdDo4cHg7bWF4LWhlaWdodDozNjBweDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmhpZGRlbjtwYWRkaW5nLWxlZnQ6OHB4O3dpZHRoOjEwMCV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnN0YWNrLXRyYWNlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zdGFjay10cmFjZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjNTU1fS5zdGFjay10cmFjZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MCA1cHggM3B4IC0zcHggI2NjYztwYWRkaW5nLWJvdHRvbTozcHh9LnN0YWNrLXRyYWNlLWhvc3QtbmFtZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6Z3JheX0uc3RhY2stdHJhY2UtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGR9LnN0aWNrLXRvLWJvdHRvbW1vc3QtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmctcmlnaHQ6M3B4fSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrSixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJzdGFjay10cmFjZS1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL3N0YWNrX3RyYWNlX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL3N0YWNrX3RyYWNlX2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCx7Y29kZUxvY2F0aW9uVHlwZTpbe3R5cGU6eHl9XSxvcFR5cGU6W3t0eXBlOnh5fV0sb3BOYW1lOlt7dHlwZTp4eX1dLGV4ZWN1dGlvbkluZGV4Olt7dHlwZTp4eX1dLHN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlOlt7dHlwZTp4eX1dLHN0YWNrRnJhbWVzRm9yRGlzcGxheTpbe3R5cGU6eHl9XSxvblNvdXJjZUxpbmVDbGlja2VkOlt7dHlwZTpPeX1dLHN0YWNrRnJhbWVBcnJheTpbe3R5cGU6WmEsYXJnczpbInN0YWNrRnJhbWVBcnJheSJdfV19KTtjbGFzcyBTSntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5jb2RlTG9jYXRpb25UeXBlJD10aGlzLnN0b3JlLnBpcGUoRncoWncodVgsKHQ9Pm51bGw9PT10P251bGw6dC5jb2RlTG9jYXRpb25UeXBlKSkpKSx0aGlzLm9wVHlwZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KHVYLCh0PT5udWxsPT09dD9udWxsOnQub3BUeXBlKSkpKSx0aGlzLm9wTmFtZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KHVYLCh0PT5udWxsPT09dHx8dC5jb2RlTG9jYXRpb25UeXBlIT09ZlouR1JBUEhfT1BfQ1JFQVRJT04/bnVsbDp0Lm9wTmFtZSkpKSksdGhpcy5leGVjdXRpb25JbmRleCQ9dGhpcy5zdG9yZS5waXBlKEZ3KFp3KHVYLCh0PT5udWxsPT09dHx8dC5jb2RlTG9jYXRpb25UeXBlIT09ZlouRVhFQ1VUSU9OP251bGw6dC5leGVjdXRpb25JbmRleCkpKSksdGhpcy5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KENYKSksdGhpcy5zdGFja0ZyYW1lc0ZvckRpc3BsYXkkPXRoaXMuc3RvcmUucGlwZShGdyhadyhmWCxfWCwoKHQsZSk9PntpZihudWxsPT09dClyZXR1cm4gbnVsbDtjb25zdCBuPVtdO2Zvcihjb25zdCBvIG9mIHQpe2NvbnN0e2hvc3RfbmFtZTp0LGZpbGVfcGF0aDppLGxpbmVubzphLGZ1bmN0aW9uX25hbWU6cn09byxzPWkuc3BsaXQoIi8iKSxsPW51bGwhPT1lJiZ0PT09ZS5ob3N0X25hbWUmJmk9PT1lLmZpbGVfcGF0aDtuLnB1c2goe2hvc3RfbmFtZTp0LGZpbGVfcGF0aDppLGNvbmNpc2VfZmlsZV9wYXRoOnNbcy5sZW5ndGgtMV0sbGluZW5vOmEsZnVuY3Rpb25fbmFtZTpyLGJlbG9uZ3NUb0ZvY3VzZWRGaWxlOmwsZm9jdXNlZDpsJiZhPT09ZS5saW5lbm99KX1yZXR1cm4gbn0pKSkpfW9uU291cmNlTGluZUNsaWNrZWQodCl7Y29uc3R7aG9zdF9uYW1lOmUsZmlsZV9wYXRoOm4sbGluZW5vOm8sZnVuY3Rpb25fbmFtZTppfT10O3RoaXMuc3RvcmUuZGlzcGF0Y2goc1ooe3N0YWNrRnJhbWU6e2hvc3RfbmFtZTplLGZpbGVfcGF0aDpuLGxpbmVubzpvLGZ1bmN0aW9uX25hbWU6aX19KSl9fWZ1bmN0aW9uIERKKHQsZSl7MSZ0JiZUbSgwLCJ0Zi1kZWJ1Z2dlci12Mi1pbmFjdGl2ZSIpfWZ1bmN0aW9uIEVKKHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwzKSxUbSgxLCJ0Zi1kZWJ1Z2dlci12Mi1hbGVydHMiKSxSbSgyLCJkaXYiLDQpLFRtKDMsInRmLWRlYnVnZ2VyLXYyLXRpbWVsaW5lIiksVG0oNCwidGYtZGVidWdnZXItdjItZ3JhcGgiKSxBbSgpLFRtKDUsInRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnMiKSxBbSgpLFJtKDYsImRpdiIsNSksVG0oNywidGYtZGVidWdnZXItdjItc291cmNlLWZpbGVzIiksVG0oOCwidGYtZGVidWdnZXItdjItc3RhY2stdHJhY2UiKSxBbSgpKX1TSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U0opKFNtKEl3KSl9LFNKLsm1Y21wPXRvKHt0eXBlOlNKLHNlbGVjdG9yczpbWyJ0Zi1kZWJ1Z2dlci12Mi1zdGFjay10cmFjZSJdXSxkZWNsczo3LHZhcnM6MTgsY29uc3RzOltbMywiY29kZUxvY2F0aW9uVHlwZSIsIm9wVHlwZSIsIm9wTmFtZSIsImV4ZWN1dGlvbkluZGV4Iiwic3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUiLCJzdGFja0ZyYW1lc0ZvckRpc3BsYXkiLCJvblNvdXJjZUxpbmVDbGlja2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJzdGFjay10cmFjZS1jb21wb25lbnQiLDApLFZtKCJvblNvdXJjZUxpbmVDbGlja2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblNvdXJjZUxpbmVDbGlja2VkKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQWgoNSwiYXN5bmMiKSxBaCg2LCJhc3luYyIpLEFtKCkpLDImZSYmRG0oImNvZGVMb2NhdGlvblR5cGUiLFRoKDEsNixuLmNvZGVMb2NhdGlvblR5cGUkKSkoIm9wVHlwZSIsVGgoMiw4LG4ub3BUeXBlJCkpKCJvcE5hbWUiLFRoKDMsMTAsbi5vcE5hbWUkKSkoImV4ZWN1dGlvbkluZGV4IixUaCg0LDEyLG4uZXhlY3V0aW9uSW5kZXgkKSkoInN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlIixUaCg1LDE0LG4uc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUkKSkoInN0YWNrRnJhbWVzRm9yRGlzcGxheSIsVGgoNiwxNixuLnN0YWNrRnJhbWVzRm9yRGlzcGxheSQpKX0sZGlyZWN0aXZlczpba0pdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChTSixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Zi1kZWJ1Z2dlci12Mi1zdGFjay10cmFjZSIsdGVtcGxhdGU6J1xuICAgIDxzdGFjay10cmFjZS1jb21wb25lbnRcbiAgICAgIFtjb2RlTG9jYXRpb25UeXBlXT0iY29kZUxvY2F0aW9uVHlwZSQgfCBhc3luYyJcbiAgICAgIFtvcFR5cGVdPSJvcFR5cGUkIHwgYXN5bmMiXG4gICAgICBbb3BOYW1lXT0ib3BOYW1lJCB8IGFzeW5jIlxuICAgICAgW2V4ZWN1dGlvbkluZGV4XT0iZXhlY3V0aW9uSW5kZXgkIHwgYXN5bmMiXG4gICAgICBbc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGVdPSJcbiAgICAgICAgc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUkIHwgYXN5bmNcbiAgICAgICJcbiAgICAgIFtzdGFja0ZyYW1lc0ZvckRpc3BsYXldPSJzdGFja0ZyYW1lc0ZvckRpc3BsYXkkIHwgYXN5bmMiXG4gICAgICAob25Tb3VyY2VMaW5lQ2xpY2tlZCk9Im9uU291cmNlTGluZUNsaWNrZWQoJGV2ZW50KSJcbiAgICA+PC9zdGFjay10cmFjZS1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgUkp7Y29uc3RydWN0b3IoKXt0aGlzLnJ1bnM9e30sdGhpcy5ydW5JZHM9W10sdGhpcy5hY3RpdmVSdW5JZD1udWxsfX1SSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UkopfSxSSi7JtWNtcD10byh7dHlwZTpSSixzZWxlY3RvcnM6W1siZGVidWdnZXItY29tcG9uZW50Il1dLGlucHV0czp7cnVuczoicnVucyIscnVuSWRzOiJydW5JZHMiLGFjdGl2ZVJ1bklkOiJhY3RpdmVSdW5JZCJ9LGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWzEsImRlYnVnZ2VyLWNvbnRhaW5lciJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImRhdGFBdmFpbGFibGUiLCIiXSxbMSwidG9wLXNlY3Rpb24iXSxbMSwidG9wLWNlbnRlci1zZWN0aW9uIl0sWzEsImJvdHRvbS1zZWN0aW9uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFFwKDEsREosMSwwLCJ0Zi1kZWJ1Z2dlci12Mi1pbmFjdGl2ZSIsMSksUXAoMixFSiw5LDAsIm5nLXRlbXBsYXRlIixudWxsLDIsaWIpLEFtKCkpLDImZSl7Y29uc3QgdD0kcCgzKTtyYygxKSxEbSgibmdJZiIsMD09PW4ucnVuSWRzLmxlbmd0aCkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W2RNLEVxLFBYLHZLLFZLLEpLLHBKLFNKXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uYm90dG9tLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTtoZWlnaHQ6MzQlO3BhZGRpbmctdG9wOjZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYm90dG9tLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYm90dG9tLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICM1NTV9LmRlYnVnZ2VyLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0udG9wLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7aGVpZ2h0OjY2JTtwYWRkaW5nOjZweCAwfXRmLWRlYnVnZ2VyLXYyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoxMHB4O21pbi13aWR0aDoxNjBweDt3aWR0aDpjYWxjKDE1JSAtIDExcHgpfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIHRmLWRlYnVnZ2VyLXYyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIHRmLWRlYnVnZ2VyLXYyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjNTU1fXRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXgtZ3JvdzoxO21pbi13aWR0aDo1NDBweDt3aWR0aDo1NDBweH10Zi1kZWJ1Z2dlci12Mi1zb3VyY2UtZmlsZXNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjcwJX10Zi1kZWJ1Z2dlci12Mi1zdGFjay10cmFjZVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1ncm93OjE7aGVpZ2h0OjEwMCU7bWluLXdpZHRoOjU0MHB4O3dpZHRoOjU0MHB4fS50b3AtY2VudGVyLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO292ZXJmbG93OmF1dG87d2lkdGg6NTUlfXRmLWRlYnVnZ2VyLXYyLXRpbWVsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmJsb2NrfXRmLWRlYnVnZ2VyLXYyLWdyYXBoW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDo1cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgdGYtZGVidWdnZXItdjItZ3JhcGhbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICB0Zi1kZWJ1Z2dlci12Mi1ncmFwaFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgIzU1NX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUkosW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiZGVidWdnZXItY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9kZWJ1Z2dlcl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9kZWJ1Z2dlcl9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cnVuczpbe3R5cGU6eHl9XSxydW5JZHM6W3t0eXBlOnh5fV0sYWN0aXZlUnVuSWQ6W3t0eXBlOnh5fV19KTtjbGFzcyBBSntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5ydW5zJD10aGlzLnN0b3JlLnBpcGUoRncoUFopKSx0aGlzLnJ1bnNJZHMkPXRoaXMuc3RvcmUucGlwZShGdyhadyhQWiwodD0+T2JqZWN0LmtleXModCkpKSkpLHRoaXMuYWN0aXZlUnVuSWQkPXRoaXMuc3RvcmUucGlwZShGdyhrWikpfW5nT25Jbml0KCl7dGhpcy5zdG9yZS5kaXNwYXRjaChScSgpKX1uZ09uRGVzdHJveSgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goQXEoKSl9fUFKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBSikoU20oSXcpKX0sQUouybVjbXA9dG8oe3R5cGU6QUosc2VsZWN0b3JzOltbInRmLWRlYnVnZ2VyLXYyIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsInJ1bnMiLCJydW5JZHMiLCJhY3RpdmVSdW5JZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwiZGVidWdnZXItY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSksMiZlJiZEbSgicnVucyIsVGgoMSwzLG4ucnVucyQpKSgicnVuSWRzIixUaCgyLDUsbi5ydW5zSWRzJCkpKCJhY3RpdmVSdW5JZCIsVGgoMyw3LG4uYWN0aXZlUnVuSWQkKSl9LGRpcmVjdGl2ZXM6W1JKXSxwaXBlczpbd01dLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChBSixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Zi1kZWJ1Z2dlci12MiIsdGVtcGxhdGU6J1xuICAgIDxkZWJ1Z2dlci1jb21wb25lbnRcbiAgICAgIFtydW5zXT0icnVucyQgfCBhc3luYyJcbiAgICAgIFtydW5JZHNdPSJydW5zSWRzJCB8IGFzeW5jIlxuICAgICAgW2FjdGl2ZVJ1bklkXT0iYWN0aXZlUnVuSWQkIHwgYXN5bmMiXG4gICAgPjwvZGVidWdnZXItY29tcG9uZW50PlxuICAnLHN0eWxlczpbIlxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IFRKPSJkZWJ1Z2dlci12MiI7ZnVuY3Rpb24gTkoodCxlLG4sbyxpKXtpZihuPD0wfHwhTnVtYmVyLmlzSW50ZWdlcihuKSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFnZVNpemU6ICR7bn1gKTtpZihlPm8pdGhyb3cgbmV3IEVycm9yKGBlbmQgaW5kZXggKCR7ZX0pIGV4Y2VlZHMgdG90YWwgbnVtYmVyIG9mIGl0ZW1zICgke299KWApO2lmKGUtdD5uKXRocm93IG5ldyBFcnJvcigiYmVnaW4tZW5kIHNwYW4gZXhjZWVkcyBwYWdlIHNpemUsIHdoaWNoIGlzIG5vdCBhbGxvd2VkIik7Y29uc3QgYT1bXSxyPU1hdGguZmxvb3IodC9uKTsoIShyIGluIGkpfHxpW3JdPG4mJnIqbitpW3JdPG8pJiZhLnB1c2gocik7Y29uc3Qgcz1NYXRoLmZsb29yKChlLTEpL24pO3JldHVybiBzIT09ciYmKCEocyBpbiBpKXx8cypuK2lbc108ZSYmZTxvKSYmYS5wdXNoKHMpLGF9Y2xhc3Mgekp7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5kYXRhU291cmNlPW4sdGhpcy5sb2FkRGF0YSQ9TWsoKCgpPT57Y29uc3QgdD10aGlzLmxvYWREZWJ1Z2dlclJ1bnMocmUodGhpcy5vbkRlYnVnZ2VyRGF0YVBvbGwoKSx0aGlzLm9uQ29yZVJlbG9hZCgpKSkucGlwZShFZSgpKSxlPXRoaXMubG9hZFNvdXJjZUZpbGVMaXN0KHQpLG49dGhpcy5jcmVhdGVOdW1FeGVjdXRpb25Mb2FkZXIodCksbz10aGlzLmNyZWF0ZU51bUFsZXJ0c0FuZEJyZWFrZG93bkxvYWRlcih0KSxpPXRoaXMub25BbGVydFR5cGVGb2N1c2VkKCksYT10aGlzLmZldGNoRXhlY3V0aW9uRGlnZXN0c0ZvckFsZXJ0VHlwZUZvY3VzKGkpLHI9dGhpcy5jcmVhdGVJbml0aWFsRXhlY3V0aW9uRGV0ZWN0b3IobikucGlwZShFZSgpKSxzPXRoaXMuY3JlYXRlRXhlY3V0aW9uRGlnZXN0TG9hZGVyKHJlKHRoaXMub25FeGVjdXRpb25TY3JvbGwoKSx0aGlzLmNyZWF0ZUluaXRpYWxFeGVjdXRpb25EaWdlc3QociksYSkpLGw9dGhpcy5jcmVhdGVFeGVjdXRpb25EYXRhQW5kU3RhY2tGcmFtZXNMb2FkZXIocmUodGhpcy5vbkV4ZWN1dGlvbkRpZ2VzdEZvY3VzZWQoKSxyLnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3Qoa1opLHRoaXMuc3RvcmUuc2VsZWN0KGNYKSksSXQoKChbLHQsZV0pPT4oe2FjdGl2ZVJ1bklkOnQsbG9hZGVkRXhlY3V0aW9uRGF0YTplLGZvY3VzSW5kZXg6MH0pKSkpKSk7cmV0dXJuIHJlKG8scyxsLHRoaXMuY3JlYXRlTnVtR3JhcGhFeGVjdXRpb25Mb2FkZXIodCksZSx0aGlzLm9uU291cmNlRmlsZUZvY3VzZWQoKSx0aGlzLmxvYWRHcmFwaEV4ZWN1dGlvblBhZ2VzKHRoaXMub25HcmFwaEV4ZWN1dGlvblNjcm9sbCgpKSx0aGlzLmxvYWRHcmFwaE9wU3RhY2tGcmFtZXModGhpcy5sb2FkR3JhcGhPcEluZm8oKSkpLnBpcGUoSXQoKCgpPT4oe30pKSkpfSkse2Rpc3BhdGNoOiExfSl9b25EZWJ1Z2dlckRhdGFQb2xsKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShEayhScSksemUoKHQ9PihmdW5jdGlvbiBlKHQsbixvKXtyZXR1cm4gdC5waXBlKChmdW5jdGlvbiBpKHQpe3JldHVybiBSKChmdW5jdGlvbihlLG4pe3ZhciBvLGksYT0hMSxyPSExLHM9ITEsbD1mdW5jdGlvbigpe3JldHVybiBzJiZyJiYobi5jb21wbGV0ZSgpLCEwKX0sYz1mdW5jdGlvbigpe3M9ITEsbz1lLnN1YnNjcmliZShuZXcgVChuLHZvaWQgMCwoZnVuY3Rpb24oKXtzPSEwLCFsKCkmJihpfHwoaT1uZXcgSSx0KGkpLnN1YnNjcmliZShuZXcgVChuLChmdW5jdGlvbigpe28/YygpOmE9ITB9KSwoZnVuY3Rpb24oKXtyPSEwLGwoKX0pKSkpLGkpLm5leHQoKX0pKSksYSYmKG8udW5zdWJzY3JpYmUoKSxvPW51bGwsYT0hMSxjKCkpfTtjKCl9KSl9KSgodD0+dC5waXBlKFZlKG4pLF9lKCgoWyx0XSk9PmFlKHQpKSkpKSksSWUobyksSXQoKCgpPT57fSkpKX0pKEV0KHQpLHRoaXMuc3RvcmUuc2VsZWN0KFNaKS5waXBlKEl0KCh0PT4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdD42ZTQ/NmU0OnQ+NGUzP3Q6MmUzfSkodCkpKSksdGhpcy5hY3Rpb25zJC5waXBlKERrKEFxKSkpKSksRmUoKCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKFRxKCkpKSksSXQoKCgpPT57fSkpKX1vbkNvcmVSZWxvYWQoKXtyZXR1cm4gcmUodGhpcy5hY3Rpb25zJC5waXBlKERrKHZFLHhFKSksdGhpcy5hY3Rpb25zJC5waXBlKERrKF9FKSkucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdCh3WikpLGNlKCgoWyx0XSk9PnQuc3RhdGU9PT15RS5OT1RfTE9BREVEfHx0LnN0YXRlPT09eUUuRkFJTEVEJiZudWxsPT09dC5sYXN0TG9hZGVkVGltZUluTXMpKSkpLnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3QoTVIpKSxjZSgoKFssdF0pPT50PT09VEopKSxGZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goVHEoKSkpKSxJdCgoKCk9Pnt9KSkpfWxvYWREZWJ1Z2dlclJ1bnModCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdCh3WikpLGNlKCgoWyx7c3RhdGU6dH1dKT0+dCE9PXlFLkxPQURJTkcpKSxGZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goTnEoKSkpKSxadCgoKCk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaFJ1bnMoKS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaCh6cSh7cnVuczp0fSkpfSkpLEl0KCgoKT0+e30pKSkpKSl9Y3JlYXRlTnVtRXhlY3V0aW9uTG9hZGVyKHQpe3JldHVybiB0LnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3QoUFopLHRoaXMuc3RvcmUuc2VsZWN0KEhaKSksY2UoKChbLHQsZV0pPT5PYmplY3Qua2V5cyh0KS5sZW5ndGg+MCYmZS5zdGF0ZSE9PXlFLkxPQURJTkcpKSxGZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goVnEoKSkpKSxadCgoKFssdF0pPT57Y29uc3QgZT1PYmplY3Qua2V5cyh0KVswXTtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoRXhlY3V0aW9uRGlnZXN0cyhlLDAsMCkucGlwZShGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goanEoe251bUV4ZWN1dGlvbnM6dC5udW1fZGlnZXN0c30pKX0pKSxJdCgoKCk9Pnt9KSkpfSkpKX1jcmVhdGVOdW1HcmFwaEV4ZWN1dGlvbkxvYWRlcih0KXtyZXR1cm4gdC5waXBlKFZlKHRoaXMuc3RvcmUuc2VsZWN0KFBaKSx0aGlzLnN0b3JlLnNlbGVjdChXWikpLGNlKCgoWyx0LGVdKT0+T2JqZWN0LmtleXModCkubGVuZ3RoPjAmJmUuc3RhdGUhPT15RS5MT0FESU5HKSksRmUoKCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKEtxKCkpKSksWnQoKChbLHRdKT0+e2NvbnN0IGU9T2JqZWN0LmtleXModClbMF07cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaEdyYXBoRXhlY3V0aW9uRGlnZXN0cyhlLDAsMCkucGlwZShGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goSnEoe251bUdyYXBoRXhlY3V0aW9uczp0Lm51bV9kaWdlc3RzfSkpfSkpLEl0KCgoKT0+e30pKSl9KSkpfWNyZWF0ZU51bUFsZXJ0c0FuZEJyZWFrZG93bkxvYWRlcih0KXtyZXR1cm4gdC5waXBlKFZlKHRoaXMuc3RvcmUuc2VsZWN0KFBaKSx0aGlzLnN0b3JlLnNlbGVjdChFWikpLGNlKCgoWyx0LGVdKT0+T2JqZWN0LmtleXModCkubGVuZ3RoPjAmJmUuc3RhdGUhPT15RS5MT0FESU5HKSksRmUoKCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKEhxKCkpKSksWnQoKChbLHRdKT0+e2NvbnN0IGU9T2JqZWN0LmtleXModClbMF07cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaEFsZXJ0cyhlLDAsMCkucGlwZShGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goRnEoe251bUFsZXJ0czp0Lm51bV9hbGVydHMsYWxlcnRzQnJlYWtkb3duOnQuYWxlcnRzX2JyZWFrZG93bn0pKX0pKSxJdCgoKCk9Pnt9KSkpfSkpKX1jcmVhdGVJbml0aWFsRXhlY3V0aW9uRGV0ZWN0b3IodCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChMWiksdGhpcy5zdG9yZS5zZWxlY3QoRlopKSxjZSgoKFssdCxlXSk9PnQ+MCYmMD09PU9iamVjdC5rZXlzKGUucGFnZUxvYWRlZFNpemVzKS5sZW5ndGgpKSxJdCgoKCk9Pnt9KSkpfWNyZWF0ZUluaXRpYWxFeGVjdXRpb25EaWdlc3QodCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChMWiksdGhpcy5zdG9yZS5zZWxlY3Qoa1opLHRoaXMuc3RvcmUuc2VsZWN0KFZaKSksY2UoKChbLCx0XSk9Pm51bGwhPT10KSksSXQoKChbLHQsZSxuXSk9Pih7YmVnaW46MCxlbmQ6TWF0aC5taW4odCxuKSxydW5JZDplfSkpKSl9b25FeGVjdXRpb25TY3JvbGwoKXtyZXR1cm4gdGhpcy5hY3Rpb25zJC5waXBlKERrKFdxLFlxLHFxKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChrWiksdGhpcy5zdG9yZS5zZWxlY3QoQlopLHRoaXMuc3RvcmUuc2VsZWN0KExaKSx0aGlzLnN0b3JlLnNlbGVjdChqWiksdGhpcy5zdG9yZS5zZWxlY3QoVlopKSxjZSgoKFt0XSk9Pm51bGwhPT10KSksSXQoKChbLHQsZSxuLG8saV0pPT4oe3J1bklkOnQsYmVnaW46ZSxlbmQ6TWF0aC5taW4obixlK28pLHBhZ2VTaXplOml9KSkpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KEZaKSksSXQoKChbdCxlXSk9Pih7cHJvcHM6dCxsb2FkZWQ6ZSxtaXNzaW5nUGFnZXM6TkoodC5iZWdpbix0LmVuZCx0LnBhZ2VTaXplLGUubnVtRXhlY3V0aW9ucyxlLnBhZ2VMb2FkZWRTaXplcyl9KSkpLGNlKCgoe21pc3NpbmdQYWdlczp0fSk9PnQubGVuZ3RoPjApKSxJdCgoKHtwcm9wczp0LGxvYWRlZDplLG1pc3NpbmdQYWdlczpufSk9Pntjb25zdHtydW5JZDpvLHBhZ2VTaXplOml9PXQ7cmV0dXJue2JlZ2luOm5bMF0qaSxlbmQ6TWF0aC5taW4oZS5udW1FeGVjdXRpb25zLChuW24ubGVuZ3RoLTFdKzEpKmkpLHJ1bklkOm99fSkpKX1jcmVhdGVFeGVjdXRpb25EaWdlc3RMb2FkZXIodCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChGWikpLGNlKCgoW3tiZWdpbjp0LGVuZDplfSxuXSk9PmU+dCYmIShmdW5jdGlvbiBvKHQsZSxuKXtpZihlPj1uKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYmVnaW4gdG8gYmUgbGVzcyB0aGFuIGVuZCwgYnV0IGdvdCBiZWdpbj0ke2V9LCBlbmQ9JHtufWApO3JldHVybi0xIT09dC5maW5kSW5kZXgoKHQ9PnQuYmVnaW4+PWUmJnQuZW5kPD1uKSl9KShuLmxvYWRpbmdSYW5nZXMsdCxlKSkpLEZlKCgoW3tiZWdpbjp0LGVuZDplfV0pPT57dGhpcy5zdG9yZS5kaXNwYXRjaChVcSh7YmVnaW46dCxlbmQ6ZX0pKX0pKSxadCgoKFt7cnVuSWQ6dCxiZWdpbjplLGVuZDpufV0pPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hFeGVjdXRpb25EaWdlc3RzKHQsZSxuKS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaChHcSh0KSl9KSksSXQoKCgpPT57fSkpKSkpKX1vbkV4ZWN1dGlvbkRpZ2VzdEZvY3VzZWQoKXtyZXR1cm4gdGhpcy5hY3Rpb25zJC5waXBlKERrKFpxKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChrWiksdGhpcy5zdG9yZS5zZWxlY3QoY1gpLHRoaXMuc3RvcmUuc2VsZWN0KEJaKSksSXQoKChbdCxlLG4sb10pPT4oe2FjdGl2ZVJ1bklkOmUsbG9hZGVkRXhlY3V0aW9uRGF0YTpuLGZvY3VzSW5kZXg6byt0LmRpc3BsYXlJbmRleH0pKSkpfWNyZWF0ZUV4ZWN1dGlvbkRhdGFBbmRTdGFja0ZyYW1lc0xvYWRlcih0KXtyZXR1cm4gdC5waXBlKGNlKCgoe2FjdGl2ZVJ1bklkOnQsbG9hZGVkRXhlY3V0aW9uRGF0YTplLGZvY3VzSW5kZXg6bn0pPT5udWxsIT09dCYmbnVsbCE9PW4mJnZvaWQgMD09PWVbbl0pKSxadCgoKHthY3RpdmVSdW5JZDp0LGZvY3VzSW5kZXg6ZX0pPT57Y29uc3Qgbj1lLG89bisxO3JldHVybiB0aGlzLmRhdGFTb3VyY2UuZmV0Y2hFeGVjdXRpb25EYXRhKHQsbixvKS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaChYcSh0KSl9KSksSXQoKHQ9Pih7ZXhlY3V0aW9uRGF0YTp0LGJlZ2luOm4sZW5kOm99KSkpKX0pKSxJdCgoKHtleGVjdXRpb25EYXRhOnR9KT0+dC5leGVjdXRpb25zWzBdKSksVmUodGhpcy5zdG9yZS5zZWxlY3Qoa1opLHRoaXMuc3RvcmUuc2VsZWN0KHBYKSksY2UoKChbdCxlLG5dKT0+e2lmKG51bGw9PT1lKXJldHVybiExO2Zvcihjb25zdCBlIG9mIHQuc3RhY2tfZnJhbWVfaWRzKWlmKHZvaWQgMD09PW5bZV0pcmV0dXJuITA7cmV0dXJuITF9KSksWnQoKChbdCxlXSk9Pntjb25zdCBuPXQuc3RhY2tfZnJhbWVfaWRzO3JldHVybiB0aGlzLmRhdGFTb3VyY2UuZmV0Y2hTdGFja0ZyYW1lcyhlLG4pLnBpcGUoRmUoKHQ9Pntjb25zdCBlPXt9O2ZvcihsZXQgbz0wO288bi5sZW5ndGg7KytvKWVbbltvXV09dC5zdGFja19mcmFtZXNbb107dGhpcy5zdG9yZS5kaXNwYXRjaChkWih7c3RhY2tGcmFtZXM6ZX0pKX0pKSxJdCgoKCk9Pnt9KSkpfSkpKX1vbkdyYXBoRXhlY3V0aW9uU2Nyb2xsKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShEayh0WiksZ2UoMTAwKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChrWiksdGhpcy5zdG9yZS5zZWxlY3QoWVopLHRoaXMuc3RvcmUuc2VsZWN0KHFaKSksY2UoKChbLHQsZV0pPT5udWxsIT09dCYmZT4wKSksSXQoKChbLHQsZSxuXSk9Pih7cnVuSWQ6dCxudW1HcmFwaEV4ZWN1dGlvbnM6ZSxzY3JvbGxCZWdpbkluZGV4Om59KSkpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KFhaKSx0aGlzLnN0b3JlLnNlbGVjdChaWiksdGhpcy5zdG9yZS5zZWxlY3QoS1opLHRoaXMuc3RvcmUuc2VsZWN0KEpaKSksSXQoKChbe3J1bklkOnQsbnVtR3JhcGhFeGVjdXRpb25zOmUsc2Nyb2xsQmVnaW5JbmRleDpufSxvLGksYSxyXSk9PntsZXQgcz1OSihuLE1hdGgubWluKG4raSxlKSxvLGUscik7cmV0dXJuIHM9cy5maWx0ZXIoKHQ9Pi0xPT09YS5pbmRleE9mKHQpKSkse3J1bklkOnQsbWlzc2luZ1BhZ2VzOnMscGFnZVNpemU6byxudW1HcmFwaEV4ZWN1dGlvbnM6ZX19KSkpfWxvYWRHcmFwaEV4ZWN1dGlvblBhZ2VzKHQpe3JldHVybiB0LnBpcGUoY2UoKCh7bWlzc2luZ1BhZ2VzOnR9KT0+dC5sZW5ndGg+MCkpLEZlKCgoe21pc3NpbmdQYWdlczp0fSk9Pnt0LmZvckVhY2goKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKFFxKHtwYWdlSW5kZXg6dH0pKX0pKX0pKSxadCgoKHtydW5JZDp0LG1pc3NpbmdQYWdlczplLHBhZ2VTaXplOm4sbnVtR3JhcGhFeGVjdXRpb25zOm99KT0+e2NvbnN0IGk9ZVswXSpuLGE9TWF0aC5taW4oKGVbZS5sZW5ndGgtMV0rMSkqbixvKTtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoR3JhcGhFeGVjdXRpb25EYXRhKHQsaSxhKS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaCgkcSh0KSl9KSksSXQoKCgpPT57fSkpKX0pKSl9bG9hZEdyYXBoT3BJbmZvKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShEayhuWixlWiksVmUodGhpcy5zdG9yZS5zZWxlY3Qoa1opLHRoaXMuc3RvcmUuc2VsZWN0KGRYKSksY2UoKChbdCxlLG5dKT0+e2NvbnN0e2dyYXBoX2lkOm8sb3BfbmFtZTppfT10O3JldHVybiEobnVsbD09PWV8fHZvaWQgMCE9PW5bb10mJm5bb10uaGFzKGkpJiYobltvXS5nZXQoaSk9PT15RS5MT0FESU5HfHxuW29dLmdldChpKT09PXlFLkxPQURFRCkpfSkpLEZlKCgoW3tncmFwaF9pZDp0LG9wX25hbWU6ZX1dKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChvWih7Z3JhcGhfaWQ6dCxvcF9uYW1lOmV9KSkpKSxadCgoKFt0LGVdKT0+e2NvbnN0e2dyYXBoX2lkOm4sb3BfbmFtZTpvfT10O3JldHVybiB0aGlzLmRhdGFTb3VyY2UuZmV0Y2hHcmFwaE9wSW5mbyhlLG4sbykucGlwZShGZSgodD0+dGhpcy5zdG9yZS5kaXNwYXRjaChpWih7Z3JhcGhPcEluZm9SZXNwb25zZTp0fSkpKSksSXQoKHQ9Pih7cnVuSWQ6ZSxzdGFja0ZyYW1lSWRzOnQuc3RhY2tfZnJhbWVfaWRzfSkpKSl9KSkpfWxvYWRHcmFwaE9wU3RhY2tGcmFtZXModCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChwWCkpLEl0KCgoW3tydW5JZDp0LHN0YWNrRnJhbWVJZHM6ZX0sbl0pPT4oe3J1bklkOnQsbWlzc2luZ1N0YWNrRnJhbWVJZHM6ZS5maWx0ZXIoKHQ9PnZvaWQgMD09PW5bdF0pKX0pKSksY2UoKCh7cnVuSWQ6dCxtaXNzaW5nU3RhY2tGcmFtZUlkczplfSk9Pm51bGwhPT10JiZlLmxlbmd0aD4wKSksWnQoKCh7cnVuSWQ6dCxtaXNzaW5nU3RhY2tGcmFtZUlkczplfSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaFN0YWNrRnJhbWVzKHQsZSkucGlwZShGZSgodD0+e2NvbnN0IG49e307Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDsrK28pbltlW29dXT10LnN0YWNrX2ZyYW1lc1tvXTt0aGlzLnN0b3JlLmRpc3BhdGNoKGRaKHtzdGFja0ZyYW1lczpufSkpfSkpLEl0KCgoKT0+e30pKSkpKSl9b25BbGVydFR5cGVGb2N1c2VkKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShEayhCcSksVmUodGhpcy5zdG9yZS5zZWxlY3Qoa1opLHRoaXMuc3RvcmUuc2VsZWN0KEFaKSx0aGlzLnN0b3JlLnNlbGVjdChUWiksdGhpcy5zdG9yZS5zZWxlY3QoTlopLHRoaXMuc3RvcmUuc2VsZWN0KEVaKSksY2UoKChbLHQsZSxuLG8saV0pPT5udWxsIT09dCYmbnVsbCE9PWUmJm4+MCYmKG51bGw9PT1vfHxPYmplY3Qua2V5cyhvKS5sZW5ndGg8bikmJmkuc3RhdGUhPT15RS5MT0FESU5HKSksRmUoKCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKEhxKCkpKSksWnQoKChbLHQsZV0pPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hBbGVydHModCwwLC0xLGUpKSksRmUoKCh7bnVtX2FsZXJ0czp0LGFsZXJ0c19icmVha2Rvd246ZSxhbGVydF90eXBlOm4sYmVnaW46byxlbmQ6aSxhbGVydHM6YX0pPT57dGhpcy5zdG9yZS5kaXNwYXRjaChMcSh7bnVtQWxlcnRzOnQsYWxlcnRzQnJlYWtkb3duOmUsYWxlcnRUeXBlOm4sYmVnaW46byxlbmQ6aSxhbGVydHM6YX0pKX0pKSl9ZmV0Y2hFeGVjdXRpb25EaWdlc3RzRm9yQWxlcnRUeXBlRm9jdXModCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChWWiksdGhpcy5zdG9yZS5zZWxlY3QoalopLHRoaXMuc3RvcmUuc2VsZWN0KExaKSx0aGlzLnN0b3JlLnNlbGVjdChGWiksdGhpcy5zdG9yZS5zZWxlY3Qoa1opKSxJdCgoKFt0LGUsbixvLGksYV0pPT57Y29uc3Qgcj10LmFsZXJ0c1swXS5leGVjdXRpb25faW5kZXgscz1OSihNYXRoLm1heCgwLHItTWF0aC5mbG9vcihuLzIpKSxNYXRoLm1pbihyK01hdGguZmxvb3Iobi8yKSxvKSxlLG8saS5wYWdlTG9hZGVkU2l6ZXMpO3JldHVybiAwPT09cy5sZW5ndGg/e3J1bklkOmEsYmVnaW46MCxlbmQ6MH06e3J1bklkOmEsYmVnaW46c1swXSplLGVuZDpNYXRoLm1pbihpLm51bUV4ZWN1dGlvbnMsKHNbcy5sZW5ndGgtMV0rMSkqZSl9fSkpKX1sb2FkU291cmNlRmlsZUxpc3QodCl7cmV0dXJuIHQucGlwZShWZSh0aGlzLnN0b3JlLnNlbGVjdChrWiksdGhpcy5zdG9yZS5zZWxlY3QoaFgpKSxjZSgoKFssdCxlXSk9Pm51bGwhPT10JiZlLnN0YXRlIT09eUUuTE9BRElORykpLEZlKCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChhWigpKSkpLFp0KCgoWyx0XSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaFNvdXJjZUZpbGVMaXN0KHQpLnBpcGUoRmUoKHQ9Pntjb25zdCBlPVtdO3QuZm9yRWFjaCgoKFt0LG5dKT0+e2UucHVzaCh7aG9zdF9uYW1lOnQsZmlsZV9wYXRoOm59KX0pKSx0aGlzLnN0b3JlLmRpc3BhdGNoKHJaKHtzb3VyY2VGaWxlczplfSkpfSkpLEl0KCgoKT0+e30pKSkpKSl9b25Tb3VyY2VGaWxlRm9jdXNlZCgpe3JldHVybiB0aGlzLmFjdGlvbnMkLnBpcGUoRGsoc1opLFZlKHRoaXMuc3RvcmUuc2VsZWN0KGtaKSx0aGlzLnN0b3JlLnNlbGVjdChiWCksdGhpcy5zdG9yZS5zZWxlY3QoeVgpKSxJdCgoKFt0LGUsbixvXSk9Pih7cnVuSWQ6ZSxzdGFja0ZyYW1lOnQuc3RhY2tGcmFtZSxmaWxlSW5kZXg6bixmaWxlQ29udGVudDpvfSkpKSxjZSgoKHtydW5JZDp0LGZpbGVDb250ZW50OmV9KT0+bnVsbCE9PXQmJm51bGwhPT1lJiZlLmxvYWRTdGF0ZT09PXlFLk5PVF9MT0FERUQpKSxGZSgoKHtzdGFja0ZyYW1lOnR9KT0+dGhpcy5zdG9yZS5kaXNwYXRjaChsWih7aG9zdF9uYW1lOnQuaG9zdF9uYW1lLGZpbGVfcGF0aDp0LmZpbGVfcGF0aH0pKSkpLFp0KCgoe2ZpbGVJbmRleDp0LHJ1bklkOmV9KT0+dGhpcy5kYXRhU291cmNlLmZldGNoU291cmNlRmlsZShlLHQpLnBpcGUoRmUoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKGNaKHQpKX0pKSxJdCgoKCk9Pnt9KSkpKSkpfX16Si7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ekopKHZyKFNrKSx2cihJdyksdnIoa3EpKX0sekouybVwcm92PU1uKHt0b2tlbjp6SixmYWN0b3J5OnpKLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh6Sixbe3R5cGU6aW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U2t9LHt0eXBlOkl3fSx7dHlwZTprcX1dfSksbnVsbCk7Y2xhc3MgSUp7fUlKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJSil9LElKLsm1bW9kPWFvKHt0eXBlOklKfSksSUouybVpbmo9dm4oe2ltcG9ydHM6W1tXTV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChJSixbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbeFgsUFhdLGltcG9ydHM6W1dNXSxleHBvcnRzOltQWF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhJSix7ZGVjbGFyYXRpb25zOlt4WCxQWF0saW1wb3J0czpbV01dLGV4cG9ydHM6W1BYXX0pO2NsYXNzIEhKe31ISi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SEopfSxISi7JtW1vZD1hbyh7dHlwZTpISn0pLEhKLsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSEosW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0JLLERLLFZLXSxpbXBvcnRzOltXTV0sZXhwb3J0czpbVktdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oSEose2RlY2xhcmF0aW9uczpbQkssREssVktdLGltcG9ydHM6W1dNXSxleHBvcnRzOltWS119KTtjbGFzcyBGSnt9RkouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEZKKX0sRkouybVtb2Q9YW8oe3R5cGU6Rkp9KSxGSi7JtWluaj12bih7aW1wb3J0czpbW1dNXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEZKLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOlt0SyxpSyxvSyxlSyxuSyxhS10saW1wb3J0czpbV01dLGV4cG9ydHM6W2FLXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEZKLHtkZWNsYXJhdGlvbnM6W3RLLGlLLG9LLGVLLG5LLGFLXSxpbXBvcnRzOltXTV0sZXhwb3J0czpbYUtdfSk7Y2xhc3MgTEp7fUxKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMSil9LExKLsm1bW9kPWFvKHt0eXBlOkxKfSksTEouybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxGSixfRl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMSixbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbS0ssSktdLGltcG9ydHM6W1dNLEZKLF9GXSxleHBvcnRzOltKS119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhMSix7ZGVjbGFyYXRpb25zOltLSyxKS10saW1wb3J0czpbV00sRkosX0ZdLGV4cG9ydHM6W0pLXX0pO2NsYXNzIEJKe31CSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QkopfSxCSi7JtW1vZD1hbyh7dHlwZTpCSn0pLEJKLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJKLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltEcSxFcV0sZXhwb3J0czpbRXFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oQkose2RlY2xhcmF0aW9uczpbRHEsRXFdLGV4cG9ydHM6W0VxXX0pO2NsYXNzIFZKe31WSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VkopfSxWSi7JtW1vZD1hbyh7dHlwZTpWSn0pLFZKLsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFZKLFt7dHlwZTpBeSxhcmdzOlt7ZXhwb3J0czpbb0pdLGRlY2xhcmF0aW9uczpbb0pdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVkose2RlY2xhcmF0aW9uczpbb0pdLGV4cG9ydHM6W29KXX0pO2NvbnN0IGpKPVsiY29kZVZpZXdlckNvbnRhaW5lciJdO2NsYXNzIFVKe2NvbnN0cnVjdG9yKCl7dGhpcy5maXJzdFRleHQ9bnVsbCx0aGlzLnNlY29uZFRleHQ9bnVsbCx0aGlzLnJlbmRlclNpZGVCeVNpZGU9ITAsdGhpcy5tb25hY289bnVsbCx0aGlzLmVkaXRvcj1udWxsLHRoaXMuUkVTSVpFX0RFQk9VTkNFX0lOVEVSVkFMX01TPTUwfW9uUmVzaXplKCl7dGhpcy5lZGl0b3ImJnRoaXMuZWRpdG9yLmxheW91dCgpfW5nT25DaGFuZ2VzKHQpe2lmKCF0aGlzLm1vbmFjbylyZXR1cm47Y29uc3QgZT0hdGhpcy5lZGl0b3I7ZSYmKHRoaXMuZWRpdG9yPXRoaXMubW9uYWNvLmVkaXRvci5jcmVhdGVEaWZmRWRpdG9yKHRoaXMuY29kZVZpZXdlckNvbnRhaW5lci5uYXRpdmVFbGVtZW50LHtyZWFkT25seTohMCxmb250U2l6ZToxMCxtaW5pbWFwOntlbmFibGVkOiEwfSxyZW5kZXJTaWRlQnlTaWRlOnRoaXMucmVuZGVyU2lkZUJ5U2lkZSx0aGVtZTpuSih0aGlzLnVzZURhcmtNb2RlKX0pKSwoZXx8dC5maXJzdFRleHR8fHQuc2Vjb25kVGV4dCkmJnRoaXMuZWRpdG9yLnNldE1vZGVsKHtvcmlnaW5hbDp0aGlzLm1vbmFjby5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5maXJzdFRleHR8fCIiKSxtb2RpZmllZDp0aGlzLm1vbmFjby5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5zZWNvbmRUZXh0fHwiIil9KSx0LnJlbmRlclNpZGVCeVNpZGUmJnRoaXMuZWRpdG9yLnVwZGF0ZU9wdGlvbnMoe3JlbmRlclNpZGVCeVNpZGU6dGhpcy5yZW5kZXJTaWRlQnlTaWRlfSksdC51c2VEYXJrTW9kZSYmdGhpcy5tb25hY28uZWRpdG9yLnNldFRoZW1lKG5KKHRoaXMudXNlRGFya01vZGUpKX19VUouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVKKX0sVUouybVjbXA9dG8oe3R5cGU6VUosc2VsZWN0b3JzOltbInNvdXJjZS1jb2RlLWRpZmYtY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChqSiw3LGhnKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLmNvZGVWaWV3ZXJDb250YWluZXI9dC5maXJzdCl9fSxpbnB1dHM6e2ZpcnN0VGV4dDoiZmlyc3RUZXh0IixzZWNvbmRUZXh0OiJzZWNvbmRUZXh0IixyZW5kZXJTaWRlQnlTaWRlOiJyZW5kZXJTaWRlQnlTaWRlIixtb25hY286Im1vbmFjbyIsdXNlRGFya01vZGU6InVzZURhcmtNb2RlIn0sZmVhdHVyZXM6W0JvXSxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1siZGV0ZWN0UmVzaXplIiwiIiwxLCJjb2RlLXZpZXdlci1jb250YWluZXIiLDMsInJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zIiwib25SZXNpemUiXSxbImNvZGVWaWV3ZXJDb250YWluZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCwxKSxWbSgib25SZXNpemUiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZXNpemUoKX0pKSxBbSgpKSwyJmUmJkRtKCJyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5NcyIsbi5SRVNJWkVfREVCT1VOQ0VfSU5URVJWQUxfTVMpfSxkaXJlY3RpdmVzOltvSl0sc3R5bGVzOlsiLmNvZGUtdmlld2VyLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFVKLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InNvdXJjZS1jb2RlLWRpZmYtY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPGRpdlxuICAgICAgI2NvZGVWaWV3ZXJDb250YWluZXJcbiAgICAgIGNsYXNzPSJjb2RlLXZpZXdlci1jb250YWluZXIiXG4gICAgICBkZXRlY3RSZXNpemVcbiAgICAgIFtyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5Nc109IlJFU0laRV9ERUJPVU5DRV9JTlRFUlZBTF9NUyJcbiAgICAgIChvblJlc2l6ZSk9Im9uUmVzaXplKCkiXG4gICAgPjwvZGl2PlxuICAnLHN0eWxlczpbIlxuICAgICAgLmNvZGUtdmlld2VyLWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICAiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtmaXJzdFRleHQ6W3t0eXBlOnh5fV0sc2Vjb25kVGV4dDpbe3R5cGU6eHl9XSxyZW5kZXJTaWRlQnlTaWRlOlt7dHlwZTp4eX1dLG1vbmFjbzpbe3R5cGU6eHl9XSx1c2VEYXJrTW9kZTpbe3R5cGU6eHl9XSxjb2RlVmlld2VyQ29udGFpbmVyOlt7dHlwZTpaYSxhcmdzOlsiY29kZVZpZXdlckNvbnRhaW5lciIse3N0YXRpYzohMCxyZWFkOmhnfV19XX0pO2NsYXNzIEdKe2NvbnN0cnVjdG9yKCl7dGhpcy5maXJzdFRleHQ9bnVsbCx0aGlzLnNlY29uZFRleHQ9bnVsbCx0aGlzLnJlbmRlclNpZGVCeVNpZGU9ITAsdGhpcy51c2VEYXJrTW9kZT0hMSx0aGlzLm1vbmFjbyQ9bnVsbH1uZ09uSW5pdCgpe3RoaXMubW9uYWNvJD1DdChlSigpKS5waXBlKEl0KCgoKT0+d2luZG93Lm1vbmFjbykpKX19R0ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEdKKX0sR0ouybVjbXA9dG8oe3R5cGU6R0osc2VsZWN0b3JzOltbInNvdXJjZS1jb2RlLWRpZmYiXV0saW5wdXRzOntmaXJzdFRleHQ6ImZpcnN0VGV4dCIsc2Vjb25kVGV4dDoic2Vjb25kVGV4dCIscmVuZGVyU2lkZUJ5U2lkZToicmVuZGVyU2lkZUJ5U2lkZSIsdXNlRGFya01vZGU6InVzZURhcmtNb2RlIn0sZGVjbHM6Mix2YXJzOjcsY29uc3RzOltbMywiZmlyc3RUZXh0Iiwic2Vjb25kVGV4dCIsInJlbmRlclNpZGVCeVNpZGUiLCJtb25hY28iLCJ1c2VEYXJrTW9kZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwic291cmNlLWNvZGUtZGlmZi1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIikpLDImZSYmRG0oImZpcnN0VGV4dCIsbi5maXJzdFRleHQpKCJzZWNvbmRUZXh0IixuLnNlY29uZFRleHQpKCJyZW5kZXJTaWRlQnlTaWRlIixuLnJlbmRlclNpZGVCeVNpZGUpKCJtb25hY28iLFRoKDEsNSxuLm1vbmFjbyQpKSgidXNlRGFya01vZGUiLG4udXNlRGFya01vZGUpfSxkaXJlY3RpdmVzOltVSl0scGlwZXM6W3dNXSxzdHlsZXM6WyJzb3VyY2UtY29kZS1kaWZmLWNvbXBvbmVudFtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChHSixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJzb3VyY2UtY29kZS1kaWZmIix0ZW1wbGF0ZTonXG4gICAgPHNvdXJjZS1jb2RlLWRpZmYtY29tcG9uZW50XG4gICAgICBbZmlyc3RUZXh0XT0iZmlyc3RUZXh0IlxuICAgICAgW3NlY29uZFRleHRdPSJzZWNvbmRUZXh0IlxuICAgICAgW3JlbmRlclNpZGVCeVNpZGVdPSJyZW5kZXJTaWRlQnlTaWRlIlxuICAgICAgW21vbmFjb109Im1vbmFjbyQgfCBhc3luYyJcbiAgICAgIFt1c2VEYXJrTW9kZV09InVzZURhcmtNb2RlIlxuICAgID48L3NvdXJjZS1jb2RlLWRpZmYtY29tcG9uZW50PlxuICAnLHN0eWxlczpbIlxuICAgICAgc291cmNlLWNvZGUtZGlmZi1jb21wb25lbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse2ZpcnN0VGV4dDpbe3R5cGU6eHl9XSxzZWNvbmRUZXh0Olt7dHlwZTp4eX1dLHJlbmRlclNpZGVCeVNpZGU6W3t0eXBlOnh5fV0sdXNlRGFya01vZGU6W3t0eXBlOnh5fV19KTtjbGFzcyBXSnt9V0ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFdKKX0sV0ouybVtb2Q9YW8oe3R5cGU6V0p9KSxXSi7JtWluaj12bih7aW1wb3J0czpbW1dNLFZKXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFdKLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOlthSixySixVSixHSl0saW1wb3J0czpbV00sVkpdLGV4cG9ydHM6W3JKLEdKXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFdKLHtkZWNsYXJhdGlvbnM6W2FKLHJKLFVKLEdKXSxpbXBvcnRzOltXTSxWSl0sZXhwb3J0czpbckosR0pdfSk7Y2xhc3MgWUp7fVlKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxZSil9LFlKLsm1bW9kPWFvKHt0eXBlOllKfSksWUouybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxXSl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChZSixbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbZEoscEpdLGltcG9ydHM6W1dNLFdKXSxleHBvcnRzOltwSl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhZSix7ZGVjbGFyYXRpb25zOltkSixwSl0saW1wb3J0czpbV00sV0pdLGV4cG9ydHM6W3BKXX0pO2NsYXNzIHFKe31xSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cUopfSxxSi7JtW1vZD1hbyh7dHlwZTpxSn0pLHFKLsm1aW5qPXZuKHtpbXBvcnRzOltbV00sV0pdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocUosW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2tKLFNKXSxpbXBvcnRzOltXTSxXSl0sZXhwb3J0czpbU0pdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8ocUose2RlY2xhcmF0aW9uczpba0osU0pdLGltcG9ydHM6W1dNLFdKXSxleHBvcnRzOltTSl19KTtjbGFzcyBaSnt9WkouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFpKKX0sWkouybVtb2Q9YW8oe3R5cGU6Wkp9KSxaSi7JtWluaj12bih7aW1wb3J0czpbW1dNLEZKXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFpKLFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltwSyx1S10saW1wb3J0czpbV00sRkpdLGV4cG9ydHM6W3VLXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFpKLHtkZWNsYXJhdGlvbnM6W3BLLHVLXSxpbXBvcnRzOltXTSxGSl0sZXhwb3J0czpbdUtdfSk7Y2xhc3MgWEp7fVhKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYSil9LFhKLsm1bW9kPWFvKHt0eXBlOlhKfSksWEouybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxaSixKSCx6WF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYSixbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbQ0ssdktdLGltcG9ydHM6W1dNLFpKLEpILHpYXSxleHBvcnRzOlt2S119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhYSix7ZGVjbGFyYXRpb25zOltDSyx2S10saW1wb3J0czpbV00sWkosSkgselhdLGV4cG9ydHM6W3ZLXX0pO2NsYXNzIEtKe31mdW5jdGlvbiBKSih0LGUpe2NvbnN0IG49e307Zm9yKGNvbnN0IG8gb2YgT2JqZWN0LmtleXModCkpbltvXT1lKHRbb10sbyk7cmV0dXJuIG59ZnVuY3Rpb24gUUoodCxlLG4pe2NvbnN0e3BsdWdpbjpvLHRhZzppLHJ1bklkOmEsc2FtcGxlOnJ9PWVbdF0scz1uVChuLG8saSxyKTtpZihzKXtpZihudWxsIT09YSYmcy5ydW5Ub1Nlcmllcy5oYXNPd25Qcm9wZXJ0eShhKSl7Y29uc3QgdD1zLnJ1blRvU2VyaWVzW2FdLmxlbmd0aDtyZXR1cm4gdD4wP3QtMTpudWxsfWNvbnN0IHQ9T2JqZWN0LnZhbHVlcyhzLnJ1blRvU2VyaWVzKS5tYXAoKHQ9PnQubGVuZ3RoKSk7aWYodC5sZW5ndGgpcmV0dXJuIE1hdGgubWF4KC4uLnQpLTF9cmV0dXJuIG51bGx9ZnVuY3Rpb24gJEoodCxlLG4sbyl7Y29uc3QgaT1PYmplY3QuYXNzaWduKHt9LGUpO2Zvcihjb25zdCBhIGluIHQpe2lmKCF0Lmhhc093blByb3BlcnR5KGEpKWNvbnRpbnVlO2NvbnN0IHI9UUooYSx0LG4pO2lmKG51bGw9PT1yKXtlLmhhc093blByb3BlcnR5KGEpJiYoaVthXT1udWxsKTtjb250aW51ZX1jb25zdCBzPWUuaGFzT3duUHJvcGVydHkoYSk/ZVthXTpudWxsLGw9UUooYSx0LG8pLGM9bnVsbCE9PXMmJnM9PT1sLGQ9bnVsbD09PXN8fGM7KG51bGwhPT1zJiZzPnJ8fGQpJiYoaVthXT1yKX1yZXR1cm4gaX1mdW5jdGlvbiB0USh0KXtjb25zdCBlPUpKKHQucnVuVG9Mb2FkU3RhdGUsKHQ9PnQ9PT15RS5MT0FESU5HP3lFLkxPQURJTkc6eUUuTk9UX0xPQURFRCkpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3J1blRvTG9hZFN0YXRlOmV9KX1mdW5jdGlvbiBlUSh0LGUsbixvKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoW3QsZSxufHwiIixvXSl9S0ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEtKKX0sS0ouybVtb2Q9YW8oe3R5cGU6S0p9KSxLSi7JtWluaj12bih7aW1wb3J0czpbW0lKLFdNLEVSLExKLEhKLEJKLFlKLHFKLFNxLFhKLGRrLmZvckZlYXR1cmUocFoseFopLFdrLmZvckZlYXR1cmUoW3pKXSksd3EuZm9yUGx1Z2luKFRKLEFKKV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChLSixbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbUkosQUpdLGltcG9ydHM6W0lKLFdNLEVSLExKLEhKLEJKLFlKLHFKLFNxLFhKLGRrLmZvckZlYXR1cmUocFoseFopLFdrLmZvckZlYXR1cmUoW3pKXSksd3EuZm9yUGx1Z2luKFRKLEFKKV0sZXhwb3J0czpbQUpdLGVudHJ5Q29tcG9uZW50czpbQUpdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oS0ose2RlY2xhcmF0aW9uczpbUkosQUpdLGltcG9ydHM6W0lKLFdNLEVSLExKLEhKLEJKLFlKLHFKLFNxLFhKLGNrLEdrLHdxXSxleHBvcnRzOltBSl19KTtjb25zdHtpbml0aWFsU3RhdGU6blEscmVkdWNlcnM6b1F9PUhOKHt0YWdNZXRhZGF0YUxvYWRTdGF0ZTp7c3RhdGU6eUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0sdGFnTWV0YWRhdGE6e3NjYWxhcnM6e3RhZ0Rlc2NyaXB0aW9uczp7fSx0YWdUb1J1bnM6e319LGhpc3RvZ3JhbXM6e3RhZ0Rlc2NyaXB0aW9uczp7fSx0YWdUb1J1bnM6e319LGltYWdlczp7dGFnRGVzY3JpcHRpb25zOnt9LHRhZ1J1blNhbXBsZWRJbmZvOnt9fX0sY2FyZExpc3Q6W10sY2FyZFRvUGlubmVkQ29weTpuZXcgTWFwLHBpbm5lZENhcmRUb09yaWdpbmFsOm5ldyBNYXAsdW5yZXNvbHZlZEltcG9ydGVkUGlubmVkQ2FyZHM6W10sY2FyZE1ldGFkYXRhTWFwOnt9LGNhcmRTdGVwSW5kZXg6e30sdGFnRmlsdGVyOiIiLHRhZ0dyb3VwRXhwYW5kZWQ6bmV3IE1hcCxzZWxlY3RlZFRpbWU6bnVsbCxzZWxlY3RUaW1lRW5hYmxlZDohMSx1c2VSYW5nZVNlbGVjdFRpbWU6ITEsZmlsdGVyZWRQbHVnaW5UeXBlczpuZXcgU2V0LHN0ZXBNaW5NYXg6e21pbjoxLzAsbWF4Oi0xLzB9fSx7aXNTZXR0aW5nc1BhbmVPcGVuOiEwLHByb21vdGVUaW1lU2VyaWVzOiEwLHRpbWVTZXJpZXNEYXRhOntzY2FsYXJzOnt9LGhpc3RvZ3JhbXM6e30saW1hZ2VzOnt9fSxzZXR0aW5nczpwVCxzZXR0aW5nT3ZlcnJpZGVzOnt9LHZpc2libGVDYXJkTWFwOm5ldyBNYXB9LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3Zpc2libGVDYXJkTWFwOm5ldyBNYXB9KSkpLGlRPW5RLGFRPXlrKG5RLGJrKHJTLCgodCx7cm91dGVLaW5kOmUscGFydGlhbFN0YXRlOm59KT0+e2lmKGUhPT1aay5FWFBFUklNRU5UJiZlIT09WmsuQ09NUEFSRV9FWFBFUklNRU5UKXJldHVybiB0O2NvbnN0IG89bmV3IFNldDtmb3IoY29uc3QgZSBvZiB0LnBpbm5lZENhcmRUb09yaWdpbmFsLmtleXMoKSl7Y29uc3R7cGx1Z2luOm4sdGFnOmkscnVuSWQ6YSxzYW1wbGU6cn09dC5jYXJkTWV0YWRhdGFNYXBbZV07by5hZGQoZVEobixpLGEscikpfWNvbnN0IGk9bixhPVtdO2Zvcihjb25zdCBlIG9mWy4uLnQudW5yZXNvbHZlZEltcG9ydGVkUGlubmVkQ2FyZHMsLi4uaS5tZXRyaWNzLnBpbm5lZENhcmRzXSl7Y29uc3QgdD1lUShlLnBsdWdpbixlLnRhZyxlLnJ1bklkLGUuc2FtcGxlKTtvLmhhcyh0KXx8KG8uYWRkKHQpLGEucHVzaChlKSl9Y29uc3Qgcj1zVChhLHQuY2FyZExpc3QsdC5jYXJkTWV0YWRhdGFNYXAsdC5jYXJkVG9QaW5uZWRDb3B5LHQucGlubmVkQ2FyZFRvT3JpZ2luYWwsdC5jYXJkU3RlcEluZGV4KSxzPWkubWV0cmljcy5zbW9vdGhpbmc7bGV0IGw9dC5zZXR0aW5nT3ZlcnJpZGVzO2lmKE51bWJlci5pc0Zpbml0ZShzKSYmbnVsbCE9PXMpe2NvbnN0IGU9TWF0aC5tYXgoMCxNYXRoLm1pbiguOTk5LE51bWJlcihzLnRvUHJlY2lzaW9uKDMpKSkpO2w9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ092ZXJyaWRlcykse3NjYWxhclNtb290aGluZzplfSl9Y29uc3QgYz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSxyKSx7c2V0dGluZ092ZXJyaWRlczpsfSk7cmV0dXJuIG51bGwhPT1pLm1ldHJpY3MudGFnRmlsdGVyJiYoYy50YWdGaWx0ZXI9aS5tZXRyaWNzLnRhZ0ZpbHRlciksY30pKSxiayhXUywoKHQse3BhcnRpYWxTZXR0aW5nczplfSk9Pnt2YXIgbjtjb25zdCBvPXt9O2lmKGUudG9vbHRpcFNvcnRTdHJpbmcpc3dpdGNoKGUudG9vbHRpcFNvcnRTdHJpbmcpe2Nhc2UgYkEuQVNDRU5ESU5HOm8udG9vbHRpcFNvcnQ9YkEuQVNDRU5ESU5HO2JyZWFrO2Nhc2UgYkEuREVTQ0VORElORzpvLnRvb2x0aXBTb3J0PWJBLkRFU0NFTkRJTkc7YnJlYWs7Y2FzZSBiQS5ERUZBVUxUOm8udG9vbHRpcFNvcnQ9YkEuREVGQVVMVDticmVhaztjYXNlIGJBLk5FQVJFU1Q6by50b29sdGlwU29ydD1iQS5ORUFSRVNUfSJib29sZWFuIj09dHlwZW9mIGUuaWdub3JlT3V0bGllcnMmJihvLmlnbm9yZU91dGxpZXJzPWUuaWdub3JlT3V0bGllcnMpLCJudW1iZXIiPT10eXBlb2YgZS5zY2FsYXJTbW9vdGhpbmcmJihvLnNjYWxhclNtb290aGluZz1lLnNjYWxhclNtb290aGluZyk7Y29uc3QgaT0iYm9vbGVhbiI9PXR5cGVvZiBlLnRpbWVTZXJpZXNQcm9tb3Rpb25EaXNtaXNzZWQ/IWUudGltZVNlcmllc1Byb21vdGlvbkRpc21pc3NlZDp0LnByb21vdGVUaW1lU2VyaWVzLGE9bnVsbCE9PShuPWUudGltZVNlcmllc1NldHRpbmdzUGFuZU9wZW5lZCkmJnZvaWQgMCE9PW4/bjp0LmlzU2V0dGluZ3NQYW5lT3BlbjtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwcm9tb3RlVGltZVNlcmllczppLGlzU2V0dGluZ3NQYW5lT3BlbjphLHNldHRpbmdzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdzKSxvKX0pfSkpLGJrKHhFLHZFLCh0PT57Y29uc3QgZT10LnRhZ01ldGFkYXRhTG9hZFN0YXRlLnN0YXRlPT09eUUuTE9BRElORz95RS5MT0FESU5HOnlFLk5PVF9MT0FERUQsbj1KSih0LnRpbWVTZXJpZXNEYXRhLCgodCxlKT0+SkoodCwodD0+TUEoZSk/SkoodCwodD0+dFEodCkpKTp0USh0KSkpKSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7dGFnTWV0YWRhdGFMb2FkU3RhdGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQudGFnTWV0YWRhdGFMb2FkU3RhdGUpLHtzdGF0ZTplfSksdGltZVNlcmllc0RhdGE6bn0pfSkpLGJrKElFLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3RhZ01ldGFkYXRhTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnRhZ01ldGFkYXRhTG9hZFN0YXRlKSx7c3RhdGU6eUUuTE9BRElOR30pfSkpKSxiayhGRSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0YWdNZXRhZGF0YUxvYWRTdGF0ZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC50YWdNZXRhZGF0YUxvYWRTdGF0ZSkse3N0YXRlOnlFLkZBSUxFRH0pfSkpKSxiayhIRSwoKHQse3RhZ01ldGFkYXRhOmV9KT0+e2NvbnN0IG49e3NjYWxhcnM6c1EoZSxoQS5TQ0FMQVJTKSxoaXN0b2dyYW1zOnNRKGUsaEEuSElTVE9HUkFNUyksaW1hZ2VzOmVbaEEuSU1BR0VTXX0sbz1PYmplY3QuYXNzaWduKHt9LHQuY2FyZE1ldGFkYXRhTWFwKSxpPShmdW5jdGlvbiBhKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuIG9mIE9iamVjdC5rZXlzKHQpKXtjb25zdCBvPW47bGV0IGk7aWYoTUEobykpe2lmKCF4QShvKSl0aHJvdyBuZXcgRXJyb3IoIk11bHRpLXJ1biwgc2FtcGxlZCBwbHVnaW4gc3VwcG9ydCBub3QgeWV0IGltcGxlbWVudGVkIik7e2NvbnN0IG49dFtvXS50YWdSdW5TYW1wbGVkSW5mbztmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhuKSlmb3IoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhuW3RdKSl7Y29uc3R7bWF4U2FtcGxlc1BlclN0ZXA6YX09blt0XVtpXTtmb3IobGV0IG49MDtuPGE7bisrKWUucHVzaCh7cGx1Z2luOm8sdGFnOnQscnVuSWQ6aSxzYW1wbGU6bixudW1TYW1wbGU6YX0pfX19ZWxzZSBpZih4QShvKSl7aT10W29dLnRhZ1RvUnVucztmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhpKSlmb3IoY29uc3QgbiBvZiBpW3RdKWUucHVzaCh7cGx1Z2luOm8sdGFnOnQscnVuSWQ6bn0pfWVsc2V7aT10W29dLnRhZ1RvUnVucztmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhpKSllLnB1c2goe3BsdWdpbjpvLHRhZzp0LHJ1bklkOm51bGx9KX19cmV0dXJuIGV9KShuKSxyPVtdO2Zvcihjb25zdCBlIG9mIGkpe2NvbnN0IG49aVQoZSk7dC5jYXJkTWV0YWRhdGFNYXAuaGFzT3duUHJvcGVydHkobil8fChvW25dPWUsci5wdXNoKG4pKX1jb25zdCBzPVsuLi50LmNhcmRMaXN0LC4uLnJdLGw9c1QodC51bnJlc29sdmVkSW1wb3J0ZWRQaW5uZWRDYXJkcyxyLG8sdC5jYXJkVG9QaW5uZWRDb3B5LHQucGlubmVkQ2FyZFRvT3JpZ2luYWwsdC5jYXJkU3RlcEluZGV4KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCksbCkse3RhZ01ldGFkYXRhTG9hZFN0YXRlOntzdGF0ZTp5RS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCl9LHRhZ01ldGFkYXRhOm4sY2FyZExpc3Q6c30pfSkpLGJrKGVSLCgodCx7dGFnRmlsdGVyOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0YWdGaWx0ZXI6ZX0pKSksYmsoTEUsKCh0LHtzb3J0OmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHt0b29sdGlwU29ydDplfSl9KSkpLGJrKEJFLCh0PT57dmFyIGU7Y29uc3Qgbj0hKG51bGwhPT0oZT10LnNldHRpbmdPdmVycmlkZXMuaWdub3JlT3V0bGllcnMpJiZ2b2lkIDAhPT1lP2U6dC5zZXR0aW5ncy5pZ25vcmVPdXRsaWVycyk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5nT3ZlcnJpZGVzKSx7aWdub3JlT3V0bGllcnM6bn0pfSl9KSksYmsoVkUsKCh0LHt4QXhpc1R5cGU6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ092ZXJyaWRlcykse3hBeGlzVHlwZTplfSl9KSkpLGJrKGpFLCgodCx7c21vb3RoaW5nOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtzY2FsYXJTbW9vdGhpbmc6ZX0pfSkpKSxiayhVRSwodD0+e3ZhciBlO2NvbnN0IG49IShudWxsIT09KGU9dC5zZXR0aW5nT3ZlcnJpZGVzLnNjYWxhclBhcnRpdGlvbk5vbk1vbm90b25pY1gpJiZ2b2lkIDAhPT1lP2U6dC5zZXR0aW5ncy5zY2FsYXJQYXJ0aXRpb25Ob25Nb25vdG9uaWNYKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtzY2FsYXJQYXJ0aXRpb25Ob25Nb25vdG9uaWNYOm59KX0pfSkpLGJrKEdFLCgodCx7YnJpZ2h0bmVzc0luTWlsbGk6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ092ZXJyaWRlcykse2ltYWdlQnJpZ2h0bmVzc0luTWlsbGk6ZX0pfSkpKSxiayhXRSwoKHQse2NvbnRyYXN0SW5NaWxsaTplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5nT3ZlcnJpZGVzKSx7aW1hZ2VDb250cmFzdEluTWlsbGk6ZX0pfSkpKSxiayhZRSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtpbWFnZUJyaWdodG5lc3NJbk1pbGxpOnZvaWQgMH0pfSkpKSxiayhxRSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtpbWFnZUNvbnRyYXN0SW5NaWxsaTp2b2lkIDB9KX0pKSksYmsoWkUsKHQ9Pnt2YXIgZTtjb25zdCBuPSEobnVsbCE9PShlPXQuc2V0dGluZ092ZXJyaWRlcy5pbWFnZVNob3dBY3R1YWxTaXplKSYmdm9pZCAwIT09ZT9lOnQuc2V0dGluZ3MuaW1hZ2VTaG93QWN0dWFsU2l6ZSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5nT3ZlcnJpZGVzKSx7aW1hZ2VTaG93QWN0dWFsU2l6ZTpufSl9KX0pKSxiayhYRSwoKHQse2hpc3RvZ3JhbU1vZGU6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ092ZXJyaWRlcykse2hpc3RvZ3JhbU1vZGU6ZX0pfSkpKSxiayhLRSwoKHQse3JlcXVlc3RzOmV9KT0+e2lmKCFlLmxlbmd0aClyZXR1cm4gdDtjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sdC50aW1lU2VyaWVzRGF0YSk7Zm9yKGNvbnN0IG8gb2YgZSl7Y29uc3R7cGx1Z2luOmUsdGFnOmksc2FtcGxlOmF9PW87bltlXT1vVChuLGUsaSxhKTtjb25zdCByPW5UKG4sZSxpLGEpLHM9T0Eobyk/W28ucnVuSWRdOnJUKHQudGFnTWV0YWRhdGEsZSxpLGEpO3IucnVuVG9Mb2FkU3RhdGU9YVQoeUUuTE9BRElORyxzLHIucnVuVG9Mb2FkU3RhdGUpfXJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3RpbWVTZXJpZXNEYXRhOm59KX0pKSxiayhKRSwoKHQse3JlcXVlc3Q6ZX0pPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LHQudGltZVNlcmllc0RhdGEpLHtwbHVnaW46byx0YWc6aSxzYW1wbGU6YX09ZTtuW29dPW9UKG4sbyxpLGEpO2NvbnN0IHI9blQobixvLGksYSkscz1PQShlKT9bZS5ydW5JZF06clQodC50YWdNZXRhZGF0YSxvLGksYSk7cmV0dXJuIHIucnVuVG9Mb2FkU3RhdGU9YVQoeUUuRkFJTEVELHMsci5ydW5Ub0xvYWRTdGF0ZSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0aW1lU2VyaWVzRGF0YTpufSl9KSksYmsoUUUsKCh0LHtyZXNwb25zZTplfSk9Pntjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sdC5zdGVwTWluTWF4KSxvPU9iamVjdC5hc3NpZ24oe30sdC50aW1lU2VyaWVzRGF0YSkse3BsdWdpbjppLHRhZzphLHJ1bklkOnIsc2FtcGxlOnN9PWU7b1tpXT1vVChvLGksYSxzKTtjb25zdCBsPW5UKG8saSxhLHMpO2lmKHdBKGUpKXtjb25zdCBlPXI/W3JdOnJUKHQudGFnTWV0YWRhdGEsaSxhLHMpO2wucnVuVG9Mb2FkU3RhdGU9YVQoeUUuRkFJTEVELGUsbC5ydW5Ub0xvYWRTdGF0ZSl9ZWxzZXtjb25zdCB0PWUucnVuVG9TZXJpZXM7bC5ydW5Ub1Nlcmllcz1PYmplY3QuYXNzaWduKHt9LGwucnVuVG9TZXJpZXMpLGwucnVuVG9Mb2FkU3RhdGU9T2JqZWN0LmFzc2lnbih7fSxsLnJ1blRvTG9hZFN0YXRlKTtmb3IoY29uc3QgZSBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkoZSkpe2wucnVuVG9TZXJpZXNbZV09dFtlXSxsLnJ1blRvTG9hZFN0YXRlW2VdPXlFLkxPQURFRDtmb3IoY29uc3QgbyBvZiB0W2VdKW4ubWluPU1hdGgubWluKG4ubWluLG8uc3RlcCksbi5tYXg9TWF0aC5tYXgobi5tYXgsby5zdGVwKX19cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7dGltZVNlcmllc0RhdGE6byxjYXJkU3RlcEluZGV4OiRKKHQuY2FyZE1ldGFkYXRhTWFwLHQuY2FyZFN0ZXBJbmRleCxvLHQudGltZVNlcmllc0RhdGEpLHN0ZXBNaW5NYXg6bn0pfSkpLGJrKHRSLCgodCx7Y2FyZElkOmUsc3RlcEluZGV4Om59KT0+e2NvbnN0IG89UUooZSx0LmNhcmRNZXRhZGF0YU1hcCx0LnRpbWVTZXJpZXNEYXRhKTtsZXQgaT1uO3JldHVybiBudWxsPT09bz9pPW51bGw6bj5vJiYoaT1vKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NhcmRTdGVwSW5kZXg6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuY2FyZFN0ZXBJbmRleCkse1tlXTppfSl9KX0pKSxiayhuUiwoKHQse3RhZ0dyb3VwOmV9KT0+e2NvbnN0IG49bmV3IE1hcCh0LnRhZ0dyb3VwRXhwYW5kZWQpO3JldHVybiBuLnNldChlLCFuLmdldChlKSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0YWdHcm91cEV4cGFuZGVkOm59KX0pKSxiaygkRSwoKHQse2VudGVyZWRDYXJkczplLGV4aXRlZENhcmRzOm59KT0+e2lmKCFlLmxlbmd0aCYmIW4ubGVuZ3RoKXJldHVybiB0O2NvbnN0IG89bmV3IE1hcCh0LnZpc2libGVDYXJkTWFwKTtyZXR1cm4gZS5mb3JFYWNoKCgoe2VsZW1lbnRJZDp0LGNhcmRJZDplfSk9Pnt2YXIgbjtjb25zdCBpPW51bGwhPT0obj1vLmdldCh0KSkmJnZvaWQgMCE9PW4/bjpudWxsO2lmKG51bGwhPT1pJiZpIT09ZSl0aHJvdyBuZXcgRXJyb3IoIkEgRE9NIGVsZW1lbnQgY2Fubm90IGJlIHJldXNlZCBmb3IgbW9yZSB0aGFuIDEgdW5pcXVlIGNhcmQgbWV0YWRhdGEiKTtvLnNldCh0LGUpfSkpLG4uZm9yRWFjaCgoKHtlbGVtZW50SWQ6dH0pPT57by5kZWxldGUodCl9KSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt2aXNpYmxlQ2FyZE1hcDpvfSl9KSksYmsob1IsKCh0LHtjYXJkSWQ6ZX0pPT57Y29uc3Qgbj10LnBpbm5lZENhcmRUb09yaWdpbmFsLmhhcyhlKSxvPSFuJiYhdC5jYXJkVG9QaW5uZWRDb3B5LmhhcyhlKTtpZihvJiYhY1QodCkpcmV0dXJuIHQ7bGV0IGk9bmV3IE1hcCh0LmNhcmRUb1Bpbm5lZENvcHkpLGE9bmV3IE1hcCh0LnBpbm5lZENhcmRUb09yaWdpbmFsKSxyPU9iamVjdC5hc3NpZ24oe30sdC5jYXJkTWV0YWRhdGFNYXApLHM9T2JqZWN0LmFzc2lnbih7fSx0LmNhcmRTdGVwSW5kZXgpO2lmKG4pe2NvbnN0IG49dC5waW5uZWRDYXJkVG9PcmlnaW5hbC5nZXQoZSk7aS5kZWxldGUobiksYS5kZWxldGUoZSksZGVsZXRlIHJbZV0sZGVsZXRlIHNbZV19ZWxzZSBpZihvKXtjb25zdCB0PWxUKGUsaSxhLHMscik7aT10LmNhcmRUb1Bpbm5lZENvcHksYT10LnBpbm5lZENhcmRUb09yaWdpbmFsLHI9dC5jYXJkTWV0YWRhdGFNYXAscz10LmNhcmRTdGVwSW5kZXh9ZWxzZXtjb25zdCBuPXQuY2FyZFRvUGlubmVkQ29weS5nZXQoZSk7aS5kZWxldGUoZSksYS5kZWxldGUobiksZGVsZXRlIHJbbl0sZGVsZXRlIHNbbl19cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y2FyZE1ldGFkYXRhTWFwOnIsY2FyZFN0ZXBJbmRleDpzLGNhcmRUb1Bpbm5lZENvcHk6aSxwaW5uZWRDYXJkVG9PcmlnaW5hbDphfSl9KSksYmsobFIsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2VsZWN0VGltZUVuYWJsZWQ6IXQuc2VsZWN0VGltZUVuYWJsZWR9KSkpLGJrKHJSLCgodCxlKT0+e3ZhciBuLG8saSxhO2NvbnN0IHI9ZS5zdGFydFN0ZXA7bGV0IHM9bnVsbCE9PShhPW51bGwhPT0obj1lLmVuZFN0ZXApJiZ2b2lkIDAhPT1uP246bnVsbD09PShpPW51bGw9PT0obz10LnNlbGVjdGVkVGltZSl8fHZvaWQgMD09PW8/dm9pZCAwOm8uZW5kKXx8dm9pZCAwPT09aT92b2lkIDA6aS5zdGVwKSYmdm9pZCAwIT09YT9hOnQuc3RlcE1pbk1heC5tYXg7cmV0dXJuIHI+cyYmKHM9ciksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZWxlY3RUaW1lRW5hYmxlZDohMCxzZWxlY3RlZFRpbWU6e3N0YXJ0OntzdGVwOnJ9LGVuZDp7c3RlcDpzfX19KX0pKSxiayhjUiwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt1c2VSYW5nZVNlbGVjdFRpbWU6IXQudXNlUmFuZ2VTZWxlY3RUaW1lfSkpKSxiayhzUiwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZWxlY3RlZFRpbWU6bnVsbH0pKSksYmsoaVIsKCh0LHtwbHVnaW46ZX0pPT57bGV0IG49bmV3IFNldCh0LmZpbHRlcmVkUGx1Z2luVHlwZXMpO3JldHVybiBuLmhhcyhlKT9uLmRlbGV0ZShlKTpuLmFkZChlKSxPYmplY3QudmFsdWVzKGhBKS5ldmVyeSgodD0+bi5oYXModCkpKSYmKG49bmV3IFNldCksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtmaWx0ZXJlZFBsdWdpblR5cGVzOm59KX0pKSxiayhhUiwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtmaWx0ZXJlZFBsdWdpblR5cGVzOm5ldyBTZXR9KSkpLGJrKGRSLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3Byb21vdGVUaW1lU2VyaWVzOiExfSkpKSxiayh6RSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtpc1NldHRpbmdzUGFuZU9wZW46IXQuaXNTZXR0aW5nc1BhbmVPcGVufSkpKSxiayhORSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtpc1NldHRpbmdzUGFuZU9wZW46ITF9KSkpKTtmdW5jdGlvbiByUSh0LGUpe3JldHVybiBCTihhUSxvUSkodCxlKX1mdW5jdGlvbiBzUSh0LGUpe3JldHVybnt0YWdEZXNjcmlwdGlvbnM6dFtlXS50YWdEZXNjcmlwdGlvbnMsdGFnVG9SdW5zOmxRKHRbZV0ucnVuVGFnSW5mbyl9fWZ1bmN0aW9uIGxRKHQpe2NvbnN0IGU9e307Zm9yKGNvbnN0IG4gaW4gdClmb3IoY29uc3QgbyBvZiB0W25dKWVbb109Wy4uLmVbb118fFtdLG5dO3JldHVybiBlfWNvbnN0IGNRPVp3KGdULHlULCgodCxlLG4pPT5lP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7bG9hZFN0YXRlOnQsaWQ6bn0pOm51bGwpKSxkUT1KUCgiW01ldHJpY3MgRWZmZWN0c10gSW5pdCIpO2NsYXNzIHBRe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmFjdGlvbnMkPXQsdGhpcy5zdG9yZT1lLHRoaXMuZGF0YVNvdXJjZT1uLHRoaXMuZGFzaGJvYXJkU2hvd25XaXRob3V0RGF0YSQ9dGhpcy5hY3Rpb25zJC5waXBlKERrKGRRLF9FLFBFLGRTKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChNUiksdGhpcy5zdG9yZS5zZWxlY3QodVQpKSxjZSgoKFssdCxlXSk9PnQ9PT1fQSYmZS5zdGF0ZT09PXlFLk5PVF9MT0FERUQpKSksdGhpcy5yZWxvYWRSZXF1ZXN0ZWRXaGlsZVNob3duJD10aGlzLmFjdGlvbnMkLnBpcGUoRGsoeEUsdkUpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KE1SKSksY2UoKChbLHRdKT0+dD09PV9BKSkpLHRoaXMubG9hZFRhZ01ldGFkYXRhJD1yZSh0aGlzLmRhc2hib2FyZFNob3duV2l0aG91dERhdGEkLHRoaXMucmVsb2FkUmVxdWVzdGVkV2hpbGVTaG93biQpLnBpcGUoVmUodGhpcy5zdG9yZS5zZWxlY3QodVQpLHRoaXMuc3RvcmUuc2VsZWN0KFRTKSksY2UoKChbLHQsZV0pPT50LnN0YXRlIT09eUUuTE9BRElORyYmbnVsbCE9PWUpKSxGZSgoKCk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKElFKCkpfSkpLHplKCgoWywsdF0pPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hUYWdNZXRhZGF0YSh0KS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaChIRSh7dGFnTWV0YWRhdGE6dH0pKX0pKSxwZSgoKCk9Pih0aGlzLnN0b3JlLmRpc3BhdGNoKEZFKCkpLEV0KG51bGwpKSkpKSkpKSx0aGlzLnZpc2libGVDYXJkc1dpdGhvdXREYXRhQ2hhbmdlZCQ9dGhpcy5hY3Rpb25zJC5waXBlKERrKCRFKSx6ZSgoKCk9PnRoaXMuZ2V0VmlzaWJsZUNhcmRGZXRjaEluZm9zKCkucGlwZShiZSgxKSkpKSxJdCgodD0+dC5maWx0ZXIoKHQ9PnQubG9hZFN0YXRlPT09eUUuTk9UX0xPQURFRCkpKSkpLHRoaXMudmlzaWJsZUNhcmRzUmVsb2FkZWQkPXRoaXMucmVsb2FkUmVxdWVzdGVkV2hpbGVTaG93biQucGlwZSh6ZSgoKCk9PnRoaXMuZ2V0VmlzaWJsZUNhcmRGZXRjaEluZm9zKCkucGlwZShiZSgxKSkpKSxJdCgodD0+dC5maWx0ZXIoKHQ9PnQubG9hZFN0YXRlIT09eUUuTE9BRElORykpKSkpLHRoaXMubG9hZFRpbWVTZXJpZXMkPXJlKHRoaXMudmlzaWJsZUNhcmRzV2l0aG91dERhdGFDaGFuZ2VkJCx0aGlzLnZpc2libGVDYXJkc1JlbG9hZGVkJCkucGlwZShjZSgodD0+dC5sZW5ndGg+MCkpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KFRTKS5waXBlKGNlKCh0PT5udWxsIT09dCkpKSksWnQoKChbdCxlXSk9PnRoaXMuZmV0Y2hUaW1lU2VyaWVzRm9yQ2FyZHModCxlKSkpKSx0aGlzLmRhdGFFZmZlY3RzJD1NaygoKCk9PnJlKHRoaXMubG9hZFRhZ01ldGFkYXRhJCx0aGlzLmxvYWRUaW1lU2VyaWVzJCkpLHtkaXNwYXRjaDohMX0pfW5ncnhPbkluaXRFZmZlY3RzKCl7cmV0dXJuIGRRKCl9Z2V0VmlzaWJsZUNhcmRGZXRjaEluZm9zKCl7cmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENUKS5waXBlKHplKCh0PT50LnNpemU/JHQoWy4uLnRdLm1hcCgodD0+dGhpcy5zdG9yZS5zZWxlY3QoY1EsdCkucGlwZShiZSgxKSkpKSk6RXQoW10pKSksSXQoKHQ9PnQuZmlsdGVyKEJvb2xlYW4pKSkpfWZldGNoVGltZVNlcmllcyh0KXtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoVGltZVNlcmllcyhbdF0pLnBpcGUoRmUoKHQ9Pntjb25zdCBlPXQuZmlsdGVyKHdBKTtlLmxlbmd0aCYmY29uc29sZS5lcnJvcigiVGltZSBzZXJpZXMgcmVzcG9uc2UgY29udGFpbmVkIGVycm9yczoiLGUpLHRoaXMuc3RvcmUuZGlzcGF0Y2goUUUoe3Jlc3BvbnNlOnRbMF19KSl9KSkscGUoKCgpPT4odGhpcy5zdG9yZS5kaXNwYXRjaChKRSh7cmVxdWVzdDp0fSkpLEV0KG51bGwpKSkpKX1mZXRjaFRpbWVTZXJpZXNGb3JDYXJkcyh0LGUpe3JldHVybiBFdCh0Lm1hcCgodD0+e2NvbnN0e3BsdWdpbjpuLHRhZzpvLHJ1bklkOmksc2FtcGxlOmF9PXQ7cmV0dXJuIHhBKG4pP3twbHVnaW46bix0YWc6byxzYW1wbGU6YSxydW5JZDppfTp7cGx1Z2luOm4sdGFnOm8sc2FtcGxlOmEsZXhwZXJpbWVudElkczplfX0pKSkucGlwZShGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goS0Uoe3JlcXVlc3RzOnR9KSl9KSksWnQoKHQ9PnJlKC4uLnQubWFwKCh0PT50aGlzLmZldGNoVGltZVNlcmllcyh0KSkpKSkpKX19cFEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHBRKSh2cihTayksdnIoSXcpLHZyKFBBKSl9LHBRLsm1cHJvdj1Nbih7dG9rZW46cFEsZmFjdG9yeTpwUS7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocFEsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlNrfSx7dHlwZTpJd30se3R5cGU6UEF9XX0pLG51bGwpO2NvbnN0IG1RPW5ldyBHYSgiTWV0cmljcyBTdG9yZSBDb25maWciKSx1UT1uZXcgR2EoIk1ldHJpY3MgSW5pdGlhbCBTZXR0aW5ncyBDb25maWciKTtmdW5jdGlvbiBmUSh0KXtyZXR1cm4gdD97aW5pdGlhbFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpUSkse3NldHRpbmdzOnR9KX06e2luaXRpYWxTdGF0ZTppUX19dmFyIGdROyEoZnVuY3Rpb24odCl7dFt0LkxFRlQ9MV09IkxFRlQiLHRbdC5SSUdIVD0yXT0iUklHSFQiLHRbdC5NSURETEU9NF09Ik1JRERMRSIsdFt0LkZPVVJUSD04XT0iRk9VUlRIIix0W3QuRklGVEg9MzJdPSJGSUZUSCJ9KShnUXx8KGdRPXt9KSk7bGV0IGhRPTA7ZnVuY3Rpb24gYlEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJidXR0b24iLDMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5leHBhbmRTaWRlYmFyKCl9KSksVG0oMSwibWF0LWljb24iLDQpLEFtKCl9fWZ1bmN0aW9uIHlRKHQsZSl7aWYoMSZ0JiYoUm0oMCwibmF2Iiw1KSxBaCgxLCJhc3luYyIpLFhtKDIsMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7ZHUoIndpZHRoIixUaCgxLDQsdC53aWR0aCQpLCIlIikoIm1pbi13aWR0aCIsdC5NSU5JTVVNX1NJREVCQVJfV0lEVEhfSU5fUFgsInB4Iil9fWZ1bmN0aW9uIF9RKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2Iiw2KSxWbSgibW91c2Vkb3duIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLnJlc2l6ZUdyYWJiZWQoKX0pKSxUbSgxLCJtYXQtaWNvbiIsNyksQW0oKX19Y29uc3QgQ1E9W1tbIiIsIm1haW4iLCIiXV0sW1siIiwic2lkZWJhciIsIiJdXV07Y2xhc3MgTVF7Y29uc3RydWN0b3IodCxlKXt0aGlzLnN0b3JlPXQsdGhpcy53aWR0aCQ9dGhpcy5zdG9yZS5zZWxlY3QoT1IpLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgSSx0aGlzLnJlc2l6aW5nPSExLHRoaXMuTUlOSU1VTV9TSURFQkFSX1dJRFRIX0lOX1BYPTc1LG9lKGUubmF0aXZlRWxlbWVudCwibW91c2Vtb3ZlIikucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLGNlKCgoKT0+dGhpcy5yZXNpemluZykpKS5zdWJzY3JpYmUoKHQ9PntpZigodC5idXR0b25zJmdRLkxFRlQpIT09Z1EuTEVGVClyZXR1cm4gdm9pZCh0aGlzLnJlc2l6aW5nPSExKTt0LnByZXZlbnREZWZhdWx0KCk7Y29uc3R7d2lkdGg6bn09ZS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuc3RvcmUuZGlzcGF0Y2goVEUoe3dpZHRoSW5QZXJjZW50OnQuY2xpZW50WDw9dGhpcy5NSU5JTVVNX1NJREVCQVJfV0lEVEhfSU5fUFg/MDp0LmNsaWVudFgvbioxMDB9KSl9KSksb2UoZS5uYXRpdmVFbGVtZW50LCJtb3VzZXVwIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMucmVzaXppbmc9ITF9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfXJlc2l6ZUdyYWJiZWQoKXt0aGlzLnJlc2l6aW5nPSEwfWV4cGFuZFNpZGViYXIoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFRFKHt3aWR0aEluUGVyY2VudDoyMH0pKX19dmFyIHZRO01RLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxNUSkoU20oSXcpLFNtKGhnKSl9LE1RLsm1Y21wPXRvKHt0eXBlOk1RLHNlbGVjdG9yczpbWyJ0Yi1kYXNoYm9hcmQtbGF5b3V0Il1dLG5nQ29udGVudFNlbGVjdG9yczpbIlttYWluXSIsIltzaWRlYmFyXSJdLGRlY2xzOjcsdmFyczo5LGNvbnN0czpbWyJjbGFzcyIsImV4cGFuZCIsMywiY2xpY2siLDQsIm5nSWYiXSxbImNsYXNzIiwic2lkZWJhciIsMywid2lkdGgiLCJtaW5XaWR0aCIsNCwibmdJZiJdLFsiY2xhc3MiLCJyZXNpemVyIiwzLCJtb3VzZWRvd24iLDQsIm5nSWYiXSxbMSwiZXhwYW5kIiwzLCJjbGljayJdLFsic3ZnSWNvbiIsImV4cGFuZF9tb3JlXzI0cHgiXSxbMSwic2lkZWJhciJdLFsxLCJyZXNpemVyIiwzLCJtb3VzZWRvd24iXSxbInN2Z0ljb24iLCJkcmFnX2luZGljYXRvcl8yNHB4Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabShDUSksUXAoMCxiUSwyLDAsImJ1dHRvbiIsMCksQWgoMSwiYXN5bmMiKSxRcCgyLHlRLDMsNiwibmF2IiwxKSxBaCgzLCJhc3luYyIpLFFwKDQsX1EsMiwwLCJkaXYiLDIpLEFoKDUsImFzeW5jIiksWG0oNikpLDImZSYmKERtKCJuZ0lmIiwwPT09VGgoMSwzLG4ud2lkdGgkKSkscmMoMiksRG0oIm5nSWYiLFRoKDMsNSxuLndpZHRoJCk+MCkscmMoMiksRG0oIm5nSWYiLFRoKDUsNyxuLndpZHRoJCk+MCkpfSxkaXJlY3RpdmVzOltkTSxEV10scGlwZXM6W3dNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0uc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV17bWF4LXdpZHRoOjgwdnd9LnJlc2l6ZXJbX25nY29udGVudC0lQ09NUCVdLCAuZXhwYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6I2ViZWJlYjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZmxleDowIDAgMjBweDtqdXN0aWZ5LXNlbGY6c3RyZXRjaDt3aWR0aDoyMHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5yZXNpemVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnJlc2l6ZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjojNTU1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5leHBhbmRbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZXhwYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6IzU1NX0ucmVzaXplcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MCAxcHg7Y3Vyc29yOmV3LXJlc2l6ZTtkaXNwbGF5OmZsZXg7anVzdGlmeS1zZWxmOnN0cmV0Y2h9LnJlc2l6ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5leHBhbmRbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MCAxcHggMCAwO2NvbG9yOmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktc2VsZjpzdHJldGNoO3BhZGRpbmc6MH0uZXhwYW5kW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXJ9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE1RLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRiLWRhc2hib2FyZC1sYXlvdXQiLHRlbXBsYXRlOidcbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj0iKHdpZHRoJCB8IGFzeW5jKSA9PT0gMCJcbiAgICAgIGNsYXNzPSJleHBhbmQiXG4gICAgICAoY2xpY2spPSJleHBhbmRTaWRlYmFyKCkiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249ImV4cGFuZF9tb3JlXzI0cHgiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPG5hdlxuICAgICAgKm5nSWY9Iih3aWR0aCQgfCBhc3luYykgPiAwIlxuICAgICAgY2xhc3M9InNpZGViYXIiXG4gICAgICBbc3R5bGUud2lkdGguJV09IndpZHRoJCB8IGFzeW5jIlxuICAgICAgW3N0eWxlLm1pbldpZHRoLnB4XT0iTUlOSU1VTV9TSURFQkFSX1dJRFRIX0lOX1BYIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0iW3NpZGViYXJdIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uYXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9Iih3aWR0aCQgfCBhc3luYykgPiAwIlxuICAgICAgY2xhc3M9InJlc2l6ZXIiXG4gICAgICAobW91c2Vkb3duKT0icmVzaXplR3JhYmJlZCgpIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPSJkcmFnX2luZGljYXRvcl8yNHB4Ij48L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD0iW21haW5dIj48L25nLWNvbnRlbnQ+XG4gICcsc3R5bGVVcmxzOlsibGF5b3V0X2NvbnRhaW5lci5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9LHt0eXBlOmhnfV19KSxudWxsKSwoZnVuY3Rpb24odCl7dC5DSEVDS0JPWD0iY2hlY2tib3giLHQuUlVOX05BTUU9InJ1bl9uYW1lIix0LkVYUEVSSU1FTlRfTkFNRT0iZXhwZXJpbWVudF9uYW1lIix0LlJVTl9DT0xPUj0icnVuX2NvbG9yIn0pKHZRfHwodlE9e30pKTtjb25zdCB4UT1LdyhUUiksT1E9WncoeFEsKCh0LGUpPT57Y29uc3Qgbj1bXTtmb3IoY29uc3QgbyBvZiBlKXQuc3BlY3Nbb10mJm4ucHVzaCh0LnNwZWNzW29dLmhwYXJhbS5kZWZhdWx0RmlsdGVycyk7cmV0dXJuIHRBKG4pfSkpLFBRPVp3KE9RLHhRLCgodCxlLG4pPT57dmFyIG87Y29uc3QgaT0kUihuKSxhPWUuZmlsdGVyc1tpXTtyZXR1cm4gbmV3IE1hcChbLi4udCwuLi5udWxsIT09KG89bnVsbD09YT92b2lkIDA6YS5ocGFyYW1zKSYmdm9pZCAwIT09bz9vOltdXSl9KSksd1E9WncoeFEsKCh0LGUpPT57Y29uc3Qgbj1bXTtmb3IoY29uc3QgbyBvZiBlKXQuc3BlY3Nbb10mJm4ucHVzaCh0LnNwZWNzW29dLm1ldHJpYy5kZWZhdWx0RmlsdGVycyk7cmV0dXJuIGVBKG4pfSkpLGtRPVp3KHdRLHhRLCgodCxlLG4pPT57dmFyIG87Y29uc3QgaT0kUihuKSxhPWUuZmlsdGVyc1tpXTtyZXR1cm4gbmV3IE1hcChbLi4udCwuLi5udWxsIT09KG89bnVsbD09YT92b2lkIDA6YS5tZXRyaWNzKSYmdm9pZCAwIT09bz9vOltdXSl9KSksU1E9WncoeFEsKCh0LGUpPT4oZnVuY3Rpb24gbiguLi50KXtjb25zdCBlPW5ldyBNYXAsbj1uZXcgTWFwLG89bmV3IE1hcCxpPW5ldyBNYXAsYT1bXTtmb3IoY29uc3QgciBvZiB0KXtmb3IoY29uc3QgdCBvZiByLmhwYXJhbXMpaWYobi5oYXModC5uYW1lKXx8bi5zZXQodC5uYW1lLG5ldyBTZXQpLG4uZ2V0KHQubmFtZSkuYWRkKHQuZGlzcGxheU5hbWUpLGUuaGFzKHQubmFtZSkpe2NvbnN0IG49ZS5nZXQodC5uYW1lKSxvPXQ7aWYobi50eXBlIT09by50eXBlJiZhLnB1c2goYEhwYXJhbSwgJHtvLm5hbWV9LCB0eXBlcyBoYXZlIHRvIG1hdGNoLiBHb3Q6ICR7bi50eXBlfSB2cy4gJHtvLnR5cGV9YCksbi5kb21haW4udHlwZT09PVpSLklOVEVSVkFMJiZvLmRvbWFpbi50eXBlPT09WlIuSU5URVJWQUwpbi5kb21haW4ubWluVmFsdWU9PT1vLmRvbWFpbi5taW5WYWx1ZSYmbi5kb21haW4ubWF4VmFsdWU9PT1vLmRvbWFpbi5tYXhWYWx1ZXx8YS5wdXNoKGBIcGFyYW0sICR7by5uYW1lfSwgZG9tYWlucyBoYXZlIHRvIG1hdGNoLiBHb3Q6ICR7bi5kb21haW59IHZzLiAke28uZG9tYWlufWApO2Vsc2UgaWYobi5kb21haW4udHlwZT09PVpSLkRJU0NSRVRFJiZvLmRvbWFpbi50eXBlPT09WlIuRElTQ1JFVEUpe2NvbnN0IHQ9bmV3IFNldChbLi4ubi5kb21haW4udmFsdWVzLC4uLm8uZG9tYWluLnZhbHVlc10pO24uZG9tYWluLnZhbHVlcy5sZW5ndGg9PT1vLmRvbWFpbi52YWx1ZXMubGVuZ3RoJiZuLmRvbWFpbi52YWx1ZXMubGVuZ3RoPT09dC5zaXplfHxhLnB1c2goYEhwYXJhbSwgJHtvLm5hbWV9LCBkb21haW5zIGhhdmUgdG8gbWF0Y2guIEdvdDogJHtuLmRvbWFpbn0gdnMuICR7by5kb21haW59YCl9ZWxzZSBhLnB1c2goYEhwYXJhbSwgJHtvLm5hbWV9LCBkb21haW5zIGhhdmUgdG8gbWF0Y2guIEdvdDogJHtuLmRvbWFpbn0gdnMuICR7by5kb21haW59YCl9ZWxzZSBlLnNldCh0Lm5hbWUsT2JqZWN0LmFzc2lnbih7fSx0KSk7Zm9yKGNvbnN0IHQgb2Ygci5tZXRyaWNzKWlmKGkuaGFzKHQudGFnKXx8aS5zZXQodC50YWcsbmV3IFNldCksaS5nZXQodC50YWcpLmFkZCh0LmRpc3BsYXlOYW1lKSxvLmhhcyh0LnRhZykpe2NvbnN0IGU9by5nZXQodC50YWcpLG49dDtlLmRhdGFzZXRUeXBlIT09bi5kYXRhc2V0VHlwZSYmYS5wdXNoKGBNZXRyaWMsICR7bi50YWd9LCBkYXRhc2V0VHlwZXMgaGF2ZSB0byBtYXRjaC4gR290OiAke2UuZGF0YXNldFR5cGV9IHZzLiAke24uZGF0YXNldFR5cGV9YCl9ZWxzZSBvLnNldCh0LnRhZyxPYmplY3QuYXNzaWduKHt9LHQpKX1pZihhLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFZhbGlkYXRpb24gZXJyb3I6XG4ke2Euam9pbigiXG4iKX1gKTtyZXR1cm57aHBhcmFtczpbLi4uZV0ubWFwKCgoW3QsZV0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse2Rpc3BsYXlOYW1lOlsuLi5uLmdldCh0KV0uam9pbigiIG9yICIpfSkpKSxtZXRyaWNzOlsuLi5vXS5tYXAoKChbdCxlXSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7ZGlzcGxheU5hbWU6Wy4uLmkuZ2V0KHQpXS5qb2luKCIgb3IgIil9KSkpfX0pKC4uLmUuZXhwZXJpbWVudElkcy5tYXAoKGU9Pntjb25zdCBuPXQuc3BlY3NbZV07cmV0dXJuIG4/e2hwYXJhbXM6bi5ocGFyYW0uc3BlY3MsbWV0cmljczpuLm1ldHJpYy5zcGVjc306bnVsbH0pKS5maWx0ZXIoQm9vbGVhbikpKSksRFE9e3Rvb2x0aXBTdGF0ZTpueCgic3RhdGUiLFtyeCgiaW5pdGlhbCwgdm9pZCwgaGlkZGVuIixheCh7b3BhY2l0eTowLHRyYW5zZm9ybToic2NhbGUoMCkifSkpLHJ4KCJ2aXNpYmxlIixheCh7dHJhbnNmb3JtOiJzY2FsZSgxKSJ9KSksbHgoIiogPT4gdmlzaWJsZSIsb3goIjIwMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpIixzeChbYXgoe29wYWNpdHk6MCx0cmFuc2Zvcm06InNjYWxlKDApIixvZmZzZXQ6MH0pLGF4KHtvcGFjaXR5Oi41LHRyYW5zZm9ybToic2NhbGUoMC45OSkiLG9mZnNldDouNX0pLGF4KHtvcGFjaXR5OjEsdHJhbnNmb3JtOiJzY2FsZSgxKSIsb2Zmc2V0OjF9KV0pKSksbHgoIiogPT4gaGlkZGVuIixveCgiMTAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiLGF4KHtvcGFjaXR5OjB9KSkpXSl9LEVRPU56KHtwYXNzaXZlOiEwfSk7ZnVuY3Rpb24gUlEodCl7cmV0dXJuIEVycm9yKGBUb29sdGlwIHBvc2l0aW9uICIke3R9IiBpcyBpbnZhbGlkLmApfWNvbnN0IEFRPW5ldyBHYSgibWF0LXRvb2x0aXAtc2Nyb2xsLXN0cmF0ZWd5IiksVFE9e3Byb3ZpZGU6QVEsZGVwczpbcExdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gTlEodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKHtzY3JvbGxUaHJvdHRsZToyMH0pfX0selE9bmV3IEdhKCJtYXQtdG9vbHRpcC1kZWZhdWx0LW9wdGlvbnMiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIElRKCl7cmV0dXJue3Nob3dEZWxheTowLGhpZGVEZWxheTowLHRvdWNoZW5kSGlkZURlbGF5OjE1MDB9fX0pO2NsYXNzIEhRe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwKXt0aGlzLl9vdmVybGF5PXQsdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX3Njcm9sbERpc3BhdGNoZXI9bix0aGlzLl92aWV3Q29udGFpbmVyUmVmPW8sdGhpcy5fbmdab25lPWksdGhpcy5fcGxhdGZvcm09YSx0aGlzLl9hcmlhRGVzY3JpYmVyPXIsdGhpcy5fZm9jdXNNb25pdG9yPXMsdGhpcy5fZGlyPWMsdGhpcy5fZGVmYXVsdE9wdGlvbnM9ZCx0aGlzLl9wb3NpdGlvbj0iYmVsb3ciLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX3ZpZXdJbml0aWFsaXplZD0hMSx0aGlzLl9wb2ludGVyRXhpdEV2ZW50c0luaXRpYWxpemVkPSExLHRoaXMuX3ZpZXdwb3J0TWFyZ2luPTgsdGhpcy5fY3NzQ2xhc3NQcmVmaXg9Im1hdCIsdGhpcy5zaG93RGVsYXk9dGhpcy5fZGVmYXVsdE9wdGlvbnMuc2hvd0RlbGF5LHRoaXMuaGlkZURlbGF5PXRoaXMuX2RlZmF1bHRPcHRpb25zLmhpZGVEZWxheSx0aGlzLnRvdWNoR2VzdHVyZXM9ImF1dG8iLHRoaXMuX21lc3NhZ2U9IiIsdGhpcy5fcGFzc2l2ZUxpc3RlbmVycz1bXSx0aGlzLl9kZXN0cm95ZWQ9bmV3IEksdGhpcy5faGFuZGxlS2V5ZG93bj10PT57dGhpcy5faXNUb29sdGlwVmlzaWJsZSgpJiZ0LmtleUNvZGU9PT11eiYmIWJ6KHQpJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fbmdab25lLnJ1bigoKCk9PnRoaXMuaGlkZSgwKSkpKX0sdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9bCx0aGlzLl9kb2N1bWVudD1wLGQmJihkLnBvc2l0aW9uJiYodGhpcy5wb3NpdGlvbj1kLnBvc2l0aW9uKSxkLnRvdWNoR2VzdHVyZXMmJih0aGlzLnRvdWNoR2VzdHVyZXM9ZC50b3VjaEdlc3R1cmVzKSksYy5jaGFuZ2UucGlwZShJZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fdXBkYXRlUG9zaXRpb24odGhpcy5fb3ZlcmxheVJlZil9KSksaS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntlLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5faGFuZGxlS2V5ZG93bil9KSl9Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9ufXNldCBwb3NpdGlvbih0KXt2YXIgZTt0IT09dGhpcy5fcG9zaXRpb24mJih0aGlzLl9wb3NpdGlvbj10LHRoaXMuX292ZXJsYXlSZWYmJih0aGlzLl91cGRhdGVQb3NpdGlvbih0aGlzLl9vdmVybGF5UmVmKSxudWxsPT09KGU9dGhpcy5fdG9vbHRpcEluc3RhbmNlKXx8dm9pZCAwPT09ZXx8ZS5zaG93KDApLHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSkpfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9eXoodCksdGhpcy5fZGlzYWJsZWQ/dGhpcy5oaWRlKDApOnRoaXMuX3NldHVwUG9pbnRlckVudGVyRXZlbnRzSWZOZWVkZWQoKX1nZXQgbWVzc2FnZSgpe3JldHVybiB0aGlzLl9tZXNzYWdlfXNldCBtZXNzYWdlKHQpe3RoaXMuX2FyaWFEZXNjcmliZXIucmVtb3ZlRGVzY3JpcHRpb24odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LHRoaXMuX21lc3NhZ2UsInRvb2x0aXAiKSx0aGlzLl9tZXNzYWdlPW51bGwhPXQ/U3RyaW5nKHQpLnRyaW0oKToiIiwhdGhpcy5fbWVzc2FnZSYmdGhpcy5faXNUb29sdGlwVmlzaWJsZSgpP3RoaXMuaGlkZSgwKToodGhpcy5fc2V0dXBQb2ludGVyRW50ZXJFdmVudHNJZk5lZWRlZCgpLHRoaXMuX3VwZGF0ZVRvb2x0aXBNZXNzYWdlKCksdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57dGhpcy5fYXJpYURlc2NyaWJlci5kZXNjcmliZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsdGhpcy5tZXNzYWdlLCJ0b29sdGlwIil9KSl9KSkpfWdldCB0b29sdGlwQ2xhc3MoKXtyZXR1cm4gdGhpcy5fdG9vbHRpcENsYXNzfXNldCB0b29sdGlwQ2xhc3ModCl7dGhpcy5fdG9vbHRpcENsYXNzPXQsdGhpcy5fdG9vbHRpcEluc3RhbmNlJiZ0aGlzLl9zZXRUb29sdGlwQ2xhc3ModGhpcy5fdG9vbHRpcENsYXNzKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl92aWV3SW5pdGlhbGl6ZWQ9ITAsdGhpcy5fc2V0dXBQb2ludGVyRW50ZXJFdmVudHNJZk5lZWRlZCgpLHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYpLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCh0PT57dD8ia2V5Ym9hcmQiPT09dCYmdGhpcy5fbmdab25lLnJ1bigoKCk9PnRoaXMuc2hvdygpKSk6dGhpcy5fbmdab25lLnJ1bigoKCk9PnRoaXMuaGlkZSgwKSkpfSkpfW5nT25EZXN0cm95KCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7Y2xlYXJUaW1lb3V0KHRoaXMuX3RvdWNoc3RhcnRUaW1lb3V0KSx0aGlzLl9vdmVybGF5UmVmJiYodGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCksdGhpcy5fdG9vbHRpcEluc3RhbmNlPW51bGwpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5faGFuZGxlS2V5ZG93biksdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5mb3JFYWNoKCgoW2Usbl0pPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbixFUSl9KSksdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5sZW5ndGg9MCx0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpLHRoaXMuX2FyaWFEZXNjcmliZXIucmVtb3ZlRGVzY3JpcHRpb24odCx0aGlzLm1lc3NhZ2UsInRvb2x0aXAiKSx0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodCl9c2hvdyh0PXRoaXMuc2hvd0RlbGF5KXtpZih0aGlzLmRpc2FibGVkfHwhdGhpcy5tZXNzYWdlfHx0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKCkmJiF0aGlzLl90b29sdGlwSW5zdGFuY2UuX3Nob3dUaW1lb3V0SWQmJiF0aGlzLl90b29sdGlwSW5zdGFuY2UuX2hpZGVUaW1lb3V0SWQpcmV0dXJuO2NvbnN0IGU9dGhpcy5fY3JlYXRlT3ZlcmxheSgpO3RoaXMuX2RldGFjaCgpLHRoaXMuX3BvcnRhbD10aGlzLl9wb3J0YWx8fG5ldyB2Rih0aGlzLl90b29sdGlwQ29tcG9uZW50LHRoaXMuX3ZpZXdDb250YWluZXJSZWYpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZT1lLmF0dGFjaCh0aGlzLl9wb3J0YWwpLmluc3RhbmNlLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5hZnRlckhpZGRlbigpLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+dGhpcy5fZGV0YWNoKCkpKSx0aGlzLl9zZXRUb29sdGlwQ2xhc3ModGhpcy5fdG9vbHRpcENsYXNzKSx0aGlzLl91cGRhdGVUb29sdGlwTWVzc2FnZSgpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5zaG93KHQpfWhpZGUodD10aGlzLmhpZGVEZWxheSl7dGhpcy5fdG9vbHRpcEluc3RhbmNlJiZ0aGlzLl90b29sdGlwSW5zdGFuY2UuaGlkZSh0KX10b2dnbGUoKXt0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKCk/dGhpcy5oaWRlKCk6dGhpcy5zaG93KCl9X2lzVG9vbHRpcFZpc2libGUoKXtyZXR1cm4hIXRoaXMuX3Rvb2x0aXBJbnN0YW5jZSYmdGhpcy5fdG9vbHRpcEluc3RhbmNlLmlzVmlzaWJsZSgpfV9jcmVhdGVPdmVybGF5KCl7aWYodGhpcy5fb3ZlcmxheVJlZilyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZjtjb25zdCB0PXRoaXMuX3Njcm9sbERpc3BhdGNoZXIuZ2V0QW5jZXN0b3JTY3JvbGxDb250YWluZXJzKHRoaXMuX2VsZW1lbnRSZWYpLGU9dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZWxlbWVudFJlZikud2l0aFRyYW5zZm9ybU9yaWdpbk9uKGAuJHt0aGlzLl9jc3NDbGFzc1ByZWZpeH0tdG9vbHRpcGApLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoITEpLndpdGhWaWV3cG9ydE1hcmdpbih0aGlzLl92aWV3cG9ydE1hcmdpbikud2l0aFNjcm9sbGFibGVDb250YWluZXJzKHQpO3JldHVybiBlLnBvc2l0aW9uQ2hhbmdlcy5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodD0+e3RoaXMuX3VwZGF0ZUN1cnJlbnRQb3NpdGlvbkNsYXNzKHQuY29ubmVjdGlvblBhaXIpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZSYmdC5zY3JvbGxhYmxlVmlld1Byb3BlcnRpZXMuaXNPdmVybGF5Q2xpcHBlZCYmdGhpcy5fdG9vbHRpcEluc3RhbmNlLmlzVmlzaWJsZSgpJiZ0aGlzLl9uZ1pvbmUucnVuKCgoKT0+dGhpcy5oaWRlKDApKSl9KSksdGhpcy5fb3ZlcmxheVJlZj10aGlzLl9vdmVybGF5LmNyZWF0ZSh7ZGlyZWN0aW9uOnRoaXMuX2Rpcixwb3NpdGlvblN0cmF0ZWd5OmUscGFuZWxDbGFzczpgJHt0aGlzLl9jc3NDbGFzc1ByZWZpeH0tdG9vbHRpcC1wYW5lbGAsc2Nyb2xsU3RyYXRlZ3k6dGhpcy5fc2Nyb2xsU3RyYXRlZ3koKX0pLHRoaXMuX3VwZGF0ZVBvc2l0aW9uKHRoaXMuX292ZXJsYXlSZWYpLHRoaXMuX292ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9PnRoaXMuX2RldGFjaCgpKSksdGhpcy5fb3ZlcmxheVJlZi5vdXRzaWRlUG9pbnRlckV2ZW50cygpLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3ZhciB0O3JldHVybiBudWxsPT09KHQ9dGhpcy5fdG9vbHRpcEluc3RhbmNlKXx8dm9pZCAwPT09dD92b2lkIDA6dC5faGFuZGxlQm9keUludGVyYWN0aW9uKCl9KSksdGhpcy5fb3ZlcmxheVJlZn1fZGV0YWNoKCl7dGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpJiZ0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZT1udWxsfV91cGRhdGVQb3NpdGlvbih0KXtjb25zdCBlPXQuZ2V0Q29uZmlnKCkucG9zaXRpb25TdHJhdGVneSxuPXRoaXMuX2dldE9yaWdpbigpLG89dGhpcy5fZ2V0T3ZlcmxheVBvc2l0aW9uKCk7ZS53aXRoUG9zaXRpb25zKFt0aGlzLl9hZGRPZmZzZXQoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4ubWFpbiksby5tYWluKSksdGhpcy5fYWRkT2Zmc2V0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuLmZhbGxiYWNrKSxvLmZhbGxiYWNrKSldKX1fYWRkT2Zmc2V0KHQpe3JldHVybiB0fV9nZXRPcmlnaW4oKXtjb25zdCB0PSF0aGlzLl9kaXJ8fCJsdHIiPT10aGlzLl9kaXIudmFsdWUsZT10aGlzLnBvc2l0aW9uO2xldCBuO2lmKCJhYm92ZSI9PWV8fCJiZWxvdyI9PWUpbj17b3JpZ2luWDoiY2VudGVyIixvcmlnaW5ZOiJhYm92ZSI9PWU/InRvcCI6ImJvdHRvbSJ9O2Vsc2UgaWYoImJlZm9yZSI9PWV8fCJsZWZ0Ij09ZSYmdHx8InJpZ2h0Ij09ZSYmIXQpbj17b3JpZ2luWDoic3RhcnQiLG9yaWdpblk6ImNlbnRlciJ9O2Vsc2UgaWYoImFmdGVyIj09ZXx8InJpZ2h0Ij09ZSYmdHx8ImxlZnQiPT1lJiYhdCluPXtvcmlnaW5YOiJlbmQiLG9yaWdpblk6ImNlbnRlciJ9O2Vsc2UgaWYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSl0aHJvdyBSUShlKTtjb25zdHt4Om8seTppfT10aGlzLl9pbnZlcnRQb3NpdGlvbihuLm9yaWdpblgsbi5vcmlnaW5ZKTtyZXR1cm57bWFpbjpuLGZhbGxiYWNrOntvcmlnaW5YOm8sb3JpZ2luWTppfX19X2dldE92ZXJsYXlQb3NpdGlvbigpe2NvbnN0IHQ9IXRoaXMuX2Rpcnx8Imx0ciI9PXRoaXMuX2Rpci52YWx1ZSxlPXRoaXMucG9zaXRpb247bGV0IG47aWYoImFib3ZlIj09ZSluPXtvdmVybGF5WDoiY2VudGVyIixvdmVybGF5WToiYm90dG9tIn07ZWxzZSBpZigiYmVsb3ciPT1lKW49e292ZXJsYXlYOiJjZW50ZXIiLG92ZXJsYXlZOiJ0b3AifTtlbHNlIGlmKCJiZWZvcmUiPT1lfHwibGVmdCI9PWUmJnR8fCJyaWdodCI9PWUmJiF0KW49e292ZXJsYXlYOiJlbmQiLG92ZXJsYXlZOiJjZW50ZXIifTtlbHNlIGlmKCJhZnRlciI9PWV8fCJyaWdodCI9PWUmJnR8fCJsZWZ0Ij09ZSYmIXQpbj17b3ZlcmxheVg6InN0YXJ0IixvdmVybGF5WToiY2VudGVyIn07ZWxzZSBpZigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKXRocm93IFJRKGUpO2NvbnN0e3g6byx5Oml9PXRoaXMuX2ludmVydFBvc2l0aW9uKG4ub3ZlcmxheVgsbi5vdmVybGF5WSk7cmV0dXJue21haW46bixmYWxsYmFjazp7b3ZlcmxheVg6byxvdmVybGF5WTppfX19X3VwZGF0ZVRvb2x0aXBNZXNzYWdlKCl7dGhpcy5fdG9vbHRpcEluc3RhbmNlJiYodGhpcy5fdG9vbHRpcEluc3RhbmNlLm1lc3NhZ2U9dGhpcy5tZXNzYWdlLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5fbWFya0ZvckNoZWNrKCksdGhpcy5fbmdab25lLm9uTWljcm90YXNrRW1wdHkucGlwZShiZSgxKSxJZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fdG9vbHRpcEluc3RhbmNlJiZ0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCl9KSkpfV9zZXRUb29sdGlwQ2xhc3ModCl7dGhpcy5fdG9vbHRpcEluc3RhbmNlJiYodGhpcy5fdG9vbHRpcEluc3RhbmNlLnRvb2x0aXBDbGFzcz10LHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5fbWFya0ZvckNoZWNrKCkpfV9pbnZlcnRQb3NpdGlvbih0LGUpe3JldHVybiJhYm92ZSI9PT10aGlzLnBvc2l0aW9ufHwiYmVsb3ciPT09dGhpcy5wb3NpdGlvbj8idG9wIj09PWU/ZT0iYm90dG9tIjoiYm90dG9tIj09PWUmJihlPSJ0b3AiKToiZW5kIj09PXQ/dD0ic3RhcnQiOiJzdGFydCI9PT10JiYodD0iZW5kIikse3g6dCx5OmV9fV91cGRhdGVDdXJyZW50UG9zaXRpb25DbGFzcyh0KXtjb25zdHtvdmVybGF5WTplLG9yaWdpblg6bixvcmlnaW5ZOm99PXQ7bGV0IGk7aWYoaT0iY2VudGVyIj09PWU/dGhpcy5fZGlyJiYicnRsIj09PXRoaXMuX2Rpci52YWx1ZT8iZW5kIj09PW4/ImxlZnQiOiJyaWdodCI6InN0YXJ0Ij09PW4/ImxlZnQiOiJyaWdodCI6ImJvdHRvbSI9PT1lJiYidG9wIj09PW8/ImFib3ZlIjoiYmVsb3ciLGkhPT10aGlzLl9jdXJyZW50UG9zaXRpb24pe2NvbnN0IHQ9dGhpcy5fb3ZlcmxheVJlZjtpZih0KXtjb25zdCBlPWAke3RoaXMuX2Nzc0NsYXNzUHJlZml4fS10b29sdGlwLXBhbmVsLWA7dC5yZW1vdmVQYW5lbENsYXNzKGUrdGhpcy5fY3VycmVudFBvc2l0aW9uKSx0LmFkZFBhbmVsQ2xhc3MoZStpKX10aGlzLl9jdXJyZW50UG9zaXRpb249aX19X3NldHVwUG9pbnRlckVudGVyRXZlbnRzSWZOZWVkZWQoKXshdGhpcy5fZGlzYWJsZWQmJnRoaXMubWVzc2FnZSYmdGhpcy5fdmlld0luaXRpYWxpemVkJiYhdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5sZW5ndGgmJih0aGlzLl9wbGF0Zm9ybVN1cHBvcnRzTW91c2VFdmVudHMoKT90aGlzLl9wYXNzaXZlTGlzdGVuZXJzLnB1c2goWyJtb3VzZWVudGVyIiwoKT0+e3RoaXMuX3NldHVwUG9pbnRlckV4aXRFdmVudHNJZk5lZWRlZCgpLHRoaXMuc2hvdygpfV0pOiJvZmYiIT09dGhpcy50b3VjaEdlc3R1cmVzJiYodGhpcy5fZGlzYWJsZU5hdGl2ZUdlc3R1cmVzSWZOZWNlc3NhcnkoKSx0aGlzLl9wYXNzaXZlTGlzdGVuZXJzLnB1c2goWyJ0b3VjaHN0YXJ0IiwoKT0+e3RoaXMuX3NldHVwUG9pbnRlckV4aXRFdmVudHNJZk5lZWRlZCgpLGNsZWFyVGltZW91dCh0aGlzLl90b3VjaHN0YXJ0VGltZW91dCksdGhpcy5fdG91Y2hzdGFydFRpbWVvdXQ9c2V0VGltZW91dCgoKCk9PnRoaXMuc2hvdygpKSw1MDApfV0pKSx0aGlzLl9hZGRMaXN0ZW5lcnModGhpcy5fcGFzc2l2ZUxpc3RlbmVycykpfV9zZXR1cFBvaW50ZXJFeGl0RXZlbnRzSWZOZWVkZWQoKXtpZih0aGlzLl9wb2ludGVyRXhpdEV2ZW50c0luaXRpYWxpemVkKXJldHVybjt0aGlzLl9wb2ludGVyRXhpdEV2ZW50c0luaXRpYWxpemVkPSEwO2NvbnN0IHQ9W107aWYodGhpcy5fcGxhdGZvcm1TdXBwb3J0c01vdXNlRXZlbnRzKCkpdC5wdXNoKFsibW91c2VsZWF2ZSIsKCk9PnRoaXMuaGlkZSgpXSxbIndoZWVsIix0PT50aGlzLl93aGVlbExpc3RlbmVyKHQpXSk7ZWxzZSBpZigib2ZmIiE9PXRoaXMudG91Y2hHZXN0dXJlcyl7dGhpcy5fZGlzYWJsZU5hdGl2ZUdlc3R1cmVzSWZOZWNlc3NhcnkoKTtjb25zdCBlPSgpPT57Y2xlYXJUaW1lb3V0KHRoaXMuX3RvdWNoc3RhcnRUaW1lb3V0KSx0aGlzLmhpZGUodGhpcy5fZGVmYXVsdE9wdGlvbnMudG91Y2hlbmRIaWRlRGVsYXkpfTt0LnB1c2goWyJ0b3VjaGVuZCIsZV0sWyJ0b3VjaGNhbmNlbCIsZV0pfXRoaXMuX2FkZExpc3RlbmVycyh0KSx0aGlzLl9wYXNzaXZlTGlzdGVuZXJzLnB1c2goLi4udCl9X2FkZExpc3RlbmVycyh0KXt0LmZvckVhY2goKChbdCxlXSk9Pnt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0LGUsRVEpfSkpfV9wbGF0Zm9ybVN1cHBvcnRzTW91c2VFdmVudHMoKXtyZXR1cm4hdGhpcy5fcGxhdGZvcm0uSU9TJiYhdGhpcy5fcGxhdGZvcm0uQU5EUk9JRH1fd2hlZWxMaXN0ZW5lcih0KXtpZih0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKCkpe2NvbnN0IGU9dGhpcy5fZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh0LmNsaWVudFgsdC5jbGllbnRZKSxuPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtlPT09bnx8bi5jb250YWlucyhlKXx8dGhpcy5oaWRlKCl9fV9kaXNhYmxlTmF0aXZlR2VzdHVyZXNJZk5lY2Vzc2FyeSgpe2NvbnN0IHQ9dGhpcy50b3VjaEdlc3R1cmVzO2lmKCJvZmYiIT09dCl7Y29uc3QgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsbj1lLnN0eWxlOygib24iPT09dHx8IklOUFVUIiE9PWUubm9kZU5hbWUmJiJURVhUQVJFQSIhPT1lLm5vZGVOYW1lKSYmKG4udXNlclNlbGVjdD1uLm1zVXNlclNlbGVjdD1uLndlYmtpdFVzZXJTZWxlY3Q9bi5Nb3pVc2VyU2VsZWN0PSJub25lIiksIm9uIiE9PXQmJmUuZHJhZ2dhYmxlfHwobi53ZWJraXRVc2VyRHJhZz0ibm9uZSIpLG4udG91Y2hBY3Rpb249Im5vbmUiLG4ud2Via2l0VGFwSGlnaGxpZ2h0Q29sb3I9InRyYW5zcGFyZW50In19fUhRLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIUSkoU20ocEwpLFNtKGhnKSxTbShwRiksU20oZWgpLFNtKGFfKSxTbSh3eiksU20oS3opLFNtKFNJKSxTbSh2b2lkIDApLFNtKEhJKSxTbSh2b2lkIDApLFNtKFpfKSl9LEhRLsm1ZGlyPWxvKHt0eXBlOkhRLGlucHV0czp7c2hvd0RlbGF5OlsibWF0VG9vbHRpcFNob3dEZWxheSIsInNob3dEZWxheSJdLGhpZGVEZWxheTpbIm1hdFRvb2x0aXBIaWRlRGVsYXkiLCJoaWRlRGVsYXkiXSx0b3VjaEdlc3R1cmVzOlsibWF0VG9vbHRpcFRvdWNoR2VzdHVyZXMiLCJ0b3VjaEdlc3R1cmVzIl0scG9zaXRpb246WyJtYXRUb29sdGlwUG9zaXRpb24iLCJwb3NpdGlvbiJdLGRpc2FibGVkOlsibWF0VG9vbHRpcERpc2FibGVkIiwiZGlzYWJsZWQiXSxtZXNzYWdlOlsibWF0VG9vbHRpcCIsIm1lc3NhZ2UiXSx0b29sdGlwQ2xhc3M6WyJtYXRUb29sdGlwQ2xhc3MiLCJ0b29sdGlwQ2xhc3MiXX19KSxIUS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnBMfSx7dHlwZTpoZ30se3R5cGU6cEZ9LHt0eXBlOmVofSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOkt6fSx7dHlwZTpTSX0se3R5cGU6dm9pZCAwfSx7dHlwZTpISX0se3R5cGU6dm9pZCAwfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XSxIUS5wcm9wRGVjb3JhdG9ycz17cG9zaXRpb246W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwUG9zaXRpb24iXX1dLGRpc2FibGVkOlt7dHlwZTp4eSxhcmdzOlsibWF0VG9vbHRpcERpc2FibGVkIl19XSxzaG93RGVsYXk6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwU2hvd0RlbGF5Il19XSxoaWRlRGVsYXk6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwSGlkZURlbGF5Il19XSx0b3VjaEdlc3R1cmVzOlt7dHlwZTp4eSxhcmdzOlsibWF0VG9vbHRpcFRvdWNoR2VzdHVyZXMiXX1dLG1lc3NhZ2U6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwIl19XSx0b29sdGlwQ2xhc3M6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwQ2xhc3MiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEhRLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpwTH0se3R5cGU6aGd9LHt0eXBlOnBGfSx7dHlwZTplaH0se3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTpLen0se3R5cGU6U0l9LHt0eXBlOnZvaWQgMH0se3R5cGU6SEl9LHt0eXBlOnZvaWQgMH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfV19KSx7c2hvd0RlbGF5Olt7dHlwZTp4eSxhcmdzOlsibWF0VG9vbHRpcFNob3dEZWxheSJdfV0saGlkZURlbGF5Olt7dHlwZTp4eSxhcmdzOlsibWF0VG9vbHRpcEhpZGVEZWxheSJdfV0sdG91Y2hHZXN0dXJlczpbe3R5cGU6eHksYXJnczpbIm1hdFRvb2x0aXBUb3VjaEdlc3R1cmVzIl19XSxwb3NpdGlvbjpbe3R5cGU6eHksYXJnczpbIm1hdFRvb2x0aXBQb3NpdGlvbiJdfV0sZGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwRGlzYWJsZWQiXX1dLG1lc3NhZ2U6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwIl19XSx0b29sdGlwQ2xhc3M6W3t0eXBlOnh5LGFyZ3M6WyJtYXRUb29sdGlwQ2xhc3MiXX1dfSk7Y2xhc3MgRlEgZXh0ZW5kcyBIUXtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjLGQscCl7c3VwZXIodCxlLG4sbyxpLGEscixzLGwsYyxkLHApLHRoaXMuX3Rvb2x0aXBDb21wb25lbnQ9QlF9fUZRLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGUSkoU20ocEwpLFNtKGhnKSxTbShwRiksU20oZWgpLFNtKGFfKSxTbSh3eiksU20oS3opLFNtKFNJKSxTbShBUSksU20oSEksOCksU20oelEsOCksU20oWl8pKX0sRlEuybVkaXI9bG8oe3R5cGU6RlEsc2VsZWN0b3JzOltbIiIsIm1hdFRvb2x0aXAiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtdG9vbHRpcC10cmlnZ2VyIl0sZXhwb3J0QXM6WyJtYXRUb29sdGlwIl0sZmVhdHVyZXM6W3hwXX0pLEZRLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6cEx9LHt0eXBlOmhnfSx7dHlwZTpwRn0se3R5cGU6ZWh9LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6S3p9LHt0eXBlOlNJfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbQVFdfV19LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbelFdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRlEsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdFRvb2x0aXBdIixleHBvcnRBczoibWF0VG9vbHRpcCIsaG9zdDp7Y2xhc3M6Im1hdC10b29sdGlwLXRyaWdnZXIifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnBMfSx7dHlwZTpoZ30se3R5cGU6cEZ9LHt0eXBlOmVofSx7dHlwZTphX30se3R5cGU6d3p9LHt0eXBlOkt6fSx7dHlwZTpTSX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0FRXX1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3pRXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpO2NsYXNzIExRe2NvbnN0cnVjdG9yKHQpe3RoaXMuX2NoYW5nZURldGVjdG9yUmVmPXQsdGhpcy5fdmlzaWJpbGl0eT0iaW5pdGlhbCIsdGhpcy5fY2xvc2VPbkludGVyYWN0aW9uPSExLHRoaXMuX29uSGlkZT1uZXcgSX1zaG93KHQpe2NsZWFyVGltZW91dCh0aGlzLl9oaWRlVGltZW91dElkKSx0aGlzLl9jbG9zZU9uSW50ZXJhY3Rpb249ITAsdGhpcy5fc2hvd1RpbWVvdXRJZD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX3Zpc2liaWxpdHk9InZpc2libGUiLHRoaXMuX3Nob3dUaW1lb3V0SWQ9dm9pZCAwLHRoaXMuX29uU2hvdygpLHRoaXMuX21hcmtGb3JDaGVjaygpfSksdCl9aGlkZSh0KXtjbGVhclRpbWVvdXQodGhpcy5fc2hvd1RpbWVvdXRJZCksdGhpcy5faGlkZVRpbWVvdXRJZD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX3Zpc2liaWxpdHk9ImhpZGRlbiIsdGhpcy5faGlkZVRpbWVvdXRJZD12b2lkIDAsdGhpcy5fbWFya0ZvckNoZWNrKCl9KSx0KX1hZnRlckhpZGRlbigpe3JldHVybiB0aGlzLl9vbkhpZGV9aXNWaXNpYmxlKCl7cmV0dXJuInZpc2libGUiPT09dGhpcy5fdmlzaWJpbGl0eX1uZ09uRGVzdHJveSgpe2NsZWFyVGltZW91dCh0aGlzLl9zaG93VGltZW91dElkKSxjbGVhclRpbWVvdXQodGhpcy5faGlkZVRpbWVvdXRJZCksdGhpcy5fb25IaWRlLmNvbXBsZXRlKCl9X2FuaW1hdGlvblN0YXJ0KCl7dGhpcy5fY2xvc2VPbkludGVyYWN0aW9uPSExfV9hbmltYXRpb25Eb25lKHQpe2NvbnN0IGU9dC50b1N0YXRlOyJoaWRkZW4iIT09ZXx8dGhpcy5pc1Zpc2libGUoKXx8dGhpcy5fb25IaWRlLm5leHQoKSwidmlzaWJsZSIhPT1lJiYiaGlkZGVuIiE9PWV8fCh0aGlzLl9jbG9zZU9uSW50ZXJhY3Rpb249ITApfV9oYW5kbGVCb2R5SW50ZXJhY3Rpb24oKXt0aGlzLl9jbG9zZU9uSW50ZXJhY3Rpb24mJnRoaXMuaGlkZSgwKX1fbWFya0ZvckNoZWNrKCl7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X29uU2hvdygpe319TFEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExRKShTbShVZykpfSxMUS7JtWRpcj1sbyh7dHlwZTpMUX0pLExRLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6VWd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKExRLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpVZ31dfSksbnVsbCk7Y2xhc3MgQlEgZXh0ZW5kcyBMUXtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQpLHRoaXMuX2JyZWFrcG9pbnRPYnNlcnZlcj1lLHRoaXMuX2lzSGFuZHNldD10aGlzLl9icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZSgiKG1heC13aWR0aDogNTk5Ljk4cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSwgKG1heC13aWR0aDogOTU5Ljk4cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkiKX19QlEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJRKShTbShVZyksU20oUEwpKX0sQlEuybVjbXA9dG8oe3R5cGU6QlEsc2VsZWN0b3JzOltbIm1hdC10b29sdGlwLWNvbXBvbmVudCJdXSxob3N0QXR0cnM6WyJhcmlhLWhpZGRlbiIsInRydWUiXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZkdSgiem9vbSIsInZpc2libGUiPT09bi5fdmlzaWJpbGl0eT8xOm51bGwpfSxmZWF0dXJlczpbeHBdLGRlY2xzOjMsdmFyczo3LGNvbnN0czpbWzEsIm1hdC10b29sdGlwIiwzLCJuZ0NsYXNzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFZtKCJAc3RhdGUuc3RhcnQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2FuaW1hdGlvblN0YXJ0KCl9KSkoIkBzdGF0ZS5kb25lIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5fYW5pbWF0aW9uRG9uZShlKX0pKSxBaCgxLCJhc3luYyIpLGt1KDIpLEFtKCkpLDImZSl7bGV0IHQ7cHUoIm1hdC10b29sdGlwLWhhbmRzZXQiLG51bGw9PSh0PVRoKDEsNSxuLl9pc0hhbmRzZXQpKT9udWxsOnQubWF0Y2hlcyksRG0oIm5nQ2xhc3MiLG4udG9vbHRpcENsYXNzKSgiQHN0YXRlIixuLl92aXNpYmlsaXR5KSxyYygyKSxTdShuLm1lc3NhZ2UpfX0sZGlyZWN0aXZlczpbYU1dLHBpcGVzOlt3TV0sc3R5bGVzOlsiLm1hdC10b29sdGlwLXBhbmVse3BvaW50ZXItZXZlbnRzOm5vbmUgIWltcG9ydGFudH0ubWF0LXRvb2x0aXB7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjRweDttYXJnaW46MTRweDttYXgtd2lkdGg6MjUwcHg7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjhweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdG9vbHRpcHtvdXRsaW5lOnNvbGlkIDFweH0ubWF0LXRvb2x0aXAtaGFuZHNldHttYXJnaW46MjRweDtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjE2cHh9XG4iXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltEUS50b29sdGlwU3RhdGVdfSxjaGFuZ2VEZXRlY3Rpb246MH0pLEJRLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6VWd9LHt0eXBlOlBMfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCUSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtdG9vbHRpcC1jb21wb25lbnQiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJtYXQtdG9vbHRpcCJcbiAgICAgW25nQ2xhc3NdPSJ0b29sdGlwQ2xhc3MiXG4gICAgIFtjbGFzcy5tYXQtdG9vbHRpcC1oYW5kc2V0XT0iKF9pc0hhbmRzZXQgfCBhc3luYyk/Lm1hdGNoZXMiXG4gICAgIFtAc3RhdGVdPSJfdmlzaWJpbGl0eSJcbiAgICAgKEBzdGF0ZS5zdGFydCk9Il9hbmltYXRpb25TdGFydCgpIlxuICAgICAoQHN0YXRlLmRvbmUpPSJfYW5pbWF0aW9uRG9uZSgkZXZlbnQpIj57e21lc3NhZ2V9fTwvZGl2PlxuJyxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxhbmltYXRpb25zOltEUS50b29sdGlwU3RhdGVdLGhvc3Q6eyJbc3R5bGUuem9vbV0iOidfdmlzaWJpbGl0eSA9PT0gInZpc2libGUiID8gMSA6IG51bGwnLCJhcmlhLWhpZGRlbiI6InRydWUifSxzdHlsZXM6WyIubWF0LXRvb2x0aXAtcGFuZWx7cG9pbnRlci1ldmVudHM6bm9uZSAhaW1wb3J0YW50fS5tYXQtdG9vbHRpcHtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NHB4O21hcmdpbjoxNHB4O21heC13aWR0aDoyNTBweDtwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6OHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10b29sdGlwe291dGxpbmU6c29saWQgMXB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0e21hcmdpbjoyNHB4O3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MTZweH1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWd9LHt0eXBlOlBMfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFZRe31mdW5jdGlvbiBqUSh0LGUpe2lmKDEmdCYmKFJtKDAsIm1hdC1vcHRpb24iLDE5KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7RG0oInZhbHVlIix0KSxyYygxKSxEdSgiICIsdCwiICIpfX1mdW5jdGlvbiBVUSh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsIm1hdC1mb3JtLWZpZWxkIiwxNiksUm0oMSwibWF0LXNlbGVjdCIsMTcpLFZtKCJzZWxlY3Rpb25DaGFuZ2UiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5fY2hhbmdlUGFnZVNpemUobi52YWx1ZSl9KSksUXAoMixqUSwyLDIsIm1hdC1vcHRpb24iLDE4KSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJhcHBlYXJhbmNlIix0Ll9mb3JtRmllbGRBcHBlYXJhbmNlKSgiY29sb3IiLHQuY29sb3IpLHJjKDEpLERtKCJ2YWx1ZSIsdC5wYWdlU2l6ZSkoImRpc2FibGVkIix0LmRpc2FibGVkKSgiYXJpYS1sYWJlbCIsdC5faW50bC5pdGVtc1BlclBhZ2VMYWJlbCkscmMoMSksRG0oIm5nRm9yT2YiLHQuX2Rpc3BsYXllZFBhZ2VTaXplT3B0aW9ucyl9fWZ1bmN0aW9uIEdRKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwyMCksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO3JjKDEpLFN1KHQucGFnZVNpemUpfX1mdW5jdGlvbiBXUSh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTIpLFJtKDEsImRpdiIsMTMpLGt1KDIpLEFtKCksUXAoMyxVUSwzLDYsIm1hdC1mb3JtLWZpZWxkIiwxNCksUXAoNCxHUSwyLDEsImRpdiIsMTUpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDIpLER1KCIgIix0Ll9pbnRsLml0ZW1zUGVyUGFnZUxhYmVsLCIgIikscmMoMSksRG0oIm5nSWYiLHQuX2Rpc3BsYXllZFBhZ2VTaXplT3B0aW9ucy5sZW5ndGg+MSkscmMoMSksRG0oIm5nSWYiLHQuX2Rpc3BsYXllZFBhZ2VTaXplT3B0aW9ucy5sZW5ndGg8PTEpfX1mdW5jdGlvbiBZUSh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImJ1dHRvbiIsMjEpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5maXJzdFBhZ2UoKX0pKSxxaSgpLFJtKDEsInN2ZyIsNyksVG0oMiwicGF0aCIsMjIpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtEbSgibWF0VG9vbHRpcCIsdC5faW50bC5maXJzdFBhZ2VMYWJlbCkoIm1hdFRvb2x0aXBEaXNhYmxlZCIsdC5fcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKSkoIm1hdFRvb2x0aXBQb3NpdGlvbiIsImFib3ZlIikoImRpc2FibGVkIix0Ll9wcmV2aW91c0J1dHRvbnNEaXNhYmxlZCgpKSxqcCgiYXJpYS1sYWJlbCIsdC5faW50bC5maXJzdFBhZ2VMYWJlbCl9fWZ1bmN0aW9uIHFRKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7cWkoKSxaaSgpLFJtKDAsImJ1dHRvbiIsMjMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5sYXN0UGFnZSgpfSkpLHFpKCksUm0oMSwic3ZnIiw3KSxUbSgyLCJwYXRoIiwyNCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJtYXRUb29sdGlwIix0Ll9pbnRsLmxhc3RQYWdlTGFiZWwpKCJtYXRUb29sdGlwRGlzYWJsZWQiLHQuX25leHRCdXR0b25zRGlzYWJsZWQoKSkoIm1hdFRvb2x0aXBQb3NpdGlvbiIsImFib3ZlIikoImRpc2FibGVkIix0Ll9uZXh0QnV0dG9uc0Rpc2FibGVkKCkpLGpwKCJhcmlhLWxhYmVsIix0Ll9pbnRsLmxhc3RQYWdlTGFiZWwpfX1WUS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VlEpfSxWUS7JtW1vZD1hbyh7dHlwZTpWUX0pLFZRLsm1aW5qPXZuKHtwcm92aWRlcnM6W1RRXSxpbXBvcnRzOltbTkksV00seUwsWEldLFhJLHlGXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVlEsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltOSSxXTSx5TCxYSV0sZXhwb3J0czpbRlEsQlEsWEkseUZdLGRlY2xhcmF0aW9uczpbRlEsQlFdLGVudHJ5Q29tcG9uZW50czpbQlFdLHByb3ZpZGVyczpbVFFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVlEse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltGUSxCUV19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTkksV00seUwsWEldfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW0ZRLEJRLFhJLHlGXX19KTtjbGFzcyBaUXtjb25zdHJ1Y3Rvcigpe3RoaXMuY2hhbmdlcz1uZXcgSSx0aGlzLml0ZW1zUGVyUGFnZUxhYmVsPSJJdGVtcyBwZXIgcGFnZToiLHRoaXMubmV4dFBhZ2VMYWJlbD0iTmV4dCBwYWdlIix0aGlzLnByZXZpb3VzUGFnZUxhYmVsPSJQcmV2aW91cyBwYWdlIix0aGlzLmZpcnN0UGFnZUxhYmVsPSJGaXJzdCBwYWdlIix0aGlzLmxhc3RQYWdlTGFiZWw9Ikxhc3QgcGFnZSIsdGhpcy5nZXRSYW5nZUxhYmVsPSh0LGUsbik9PntpZigwPT1ufHwwPT1lKXJldHVybmAwIG9mICR7bn1gO2NvbnN0IG89dCplO3JldHVybmAke28rMX0g4oCTICR7bzwobj1NYXRoLm1heChuLDApKT9NYXRoLm1pbihvK2Usbik6bytlfSBvZiAke259YH19fVpRLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxaUSl9LFpRLsm1cHJvdj1Nbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBaUX0sdG9rZW46WlEscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFpRLFt7dHlwZTppbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7Y29uc3QgWFE9e3Byb3ZpZGU6WlEsZGVwczpbW25ldyBTcixuZXcgRXIsWlFdXSx1c2VGYWN0b3J5OmZ1bmN0aW9uIEtRKHQpe3JldHVybiB0fHxuZXcgWlF9fSxKUT1uZXcgR2EoIk1BVF9QQUdJTkFUT1JfREVGQVVMVF9PUFRJT05TIiksUVE9S0koZUgoY2xhc3N7fSkpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyAkUSBleHRlbmRzIFFRe2NvbnN0cnVjdG9yKHQsZSxuKXtpZihzdXBlcigpLHRoaXMuX2ludGw9dCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1lLHRoaXMuX3BhZ2VJbmRleD0wLHRoaXMuX2xlbmd0aD0wLHRoaXMuX3BhZ2VTaXplT3B0aW9ucz1bXSx0aGlzLl9oaWRlUGFnZVNpemU9ITEsdGhpcy5fc2hvd0ZpcnN0TGFzdEJ1dHRvbnM9ITEsdGhpcy5wYWdlPW5ldyBMaCx0aGlzLl9pbnRsQ2hhbmdlcz10LmNoYW5nZXMuc3Vic2NyaWJlKCgoKT0+dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpKSxuKXtjb25zdHtwYWdlU2l6ZTp0LHBhZ2VTaXplT3B0aW9uczplLGhpZGVQYWdlU2l6ZTpvLHNob3dGaXJzdExhc3RCdXR0b25zOml9PW47bnVsbCE9dCYmKHRoaXMuX3BhZ2VTaXplPXQpLG51bGwhPWUmJih0aGlzLl9wYWdlU2l6ZU9wdGlvbnM9ZSksbnVsbCE9byYmKHRoaXMuX2hpZGVQYWdlU2l6ZT1vKSxudWxsIT1pJiYodGhpcy5fc2hvd0ZpcnN0TGFzdEJ1dHRvbnM9aSl9fWdldCBwYWdlSW5kZXgoKXtyZXR1cm4gdGhpcy5fcGFnZUluZGV4fXNldCBwYWdlSW5kZXgodCl7dGhpcy5fcGFnZUluZGV4PU1hdGgubWF4KF96KHQpLDApLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5fbGVuZ3RofXNldCBsZW5ndGgodCl7dGhpcy5fbGVuZ3RoPV96KHQpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfWdldCBwYWdlU2l6ZSgpe3JldHVybiB0aGlzLl9wYWdlU2l6ZX1zZXQgcGFnZVNpemUodCl7dGhpcy5fcGFnZVNpemU9TWF0aC5tYXgoX3oodCksMCksdGhpcy5fdXBkYXRlRGlzcGxheWVkUGFnZVNpemVPcHRpb25zKCl9Z2V0IHBhZ2VTaXplT3B0aW9ucygpe3JldHVybiB0aGlzLl9wYWdlU2l6ZU9wdGlvbnN9c2V0IHBhZ2VTaXplT3B0aW9ucyh0KXt0aGlzLl9wYWdlU2l6ZU9wdGlvbnM9KHR8fFtdKS5tYXAoKHQ9Pl96KHQpKSksdGhpcy5fdXBkYXRlRGlzcGxheWVkUGFnZVNpemVPcHRpb25zKCl9Z2V0IGhpZGVQYWdlU2l6ZSgpe3JldHVybiB0aGlzLl9oaWRlUGFnZVNpemV9c2V0IGhpZGVQYWdlU2l6ZSh0KXt0aGlzLl9oaWRlUGFnZVNpemU9eXoodCl9Z2V0IHNob3dGaXJzdExhc3RCdXR0b25zKCl7cmV0dXJuIHRoaXMuX3Nob3dGaXJzdExhc3RCdXR0b25zfXNldCBzaG93Rmlyc3RMYXN0QnV0dG9ucyh0KXt0aGlzLl9zaG93Rmlyc3RMYXN0QnV0dG9ucz15eih0KX1uZ09uSW5pdCgpe3RoaXMuX2luaXRpYWxpemVkPSEwLHRoaXMuX3VwZGF0ZURpc3BsYXllZFBhZ2VTaXplT3B0aW9ucygpLHRoaXMuX21hcmtJbml0aWFsaXplZCgpfW5nT25EZXN0cm95KCl7dGhpcy5faW50bENoYW5nZXMudW5zdWJzY3JpYmUoKX1uZXh0UGFnZSgpe2lmKCF0aGlzLmhhc05leHRQYWdlKCkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5wYWdlSW5kZXg7dGhpcy5wYWdlSW5kZXgrKyx0aGlzLl9lbWl0UGFnZUV2ZW50KHQpfXByZXZpb3VzUGFnZSgpe2lmKCF0aGlzLmhhc1ByZXZpb3VzUGFnZSgpKXJldHVybjtjb25zdCB0PXRoaXMucGFnZUluZGV4O3RoaXMucGFnZUluZGV4LS0sdGhpcy5fZW1pdFBhZ2VFdmVudCh0KX1maXJzdFBhZ2UoKXtpZighdGhpcy5oYXNQcmV2aW91c1BhZ2UoKSlyZXR1cm47Y29uc3QgdD10aGlzLnBhZ2VJbmRleDt0aGlzLnBhZ2VJbmRleD0wLHRoaXMuX2VtaXRQYWdlRXZlbnQodCl9bGFzdFBhZ2UoKXtpZighdGhpcy5oYXNOZXh0UGFnZSgpKXJldHVybjtjb25zdCB0PXRoaXMucGFnZUluZGV4O3RoaXMucGFnZUluZGV4PXRoaXMuZ2V0TnVtYmVyT2ZQYWdlcygpLTEsdGhpcy5fZW1pdFBhZ2VFdmVudCh0KX1oYXNQcmV2aW91c1BhZ2UoKXtyZXR1cm4gdGhpcy5wYWdlSW5kZXg+PTEmJjAhPXRoaXMucGFnZVNpemV9aGFzTmV4dFBhZ2UoKXtjb25zdCB0PXRoaXMuZ2V0TnVtYmVyT2ZQYWdlcygpLTE7cmV0dXJuIHRoaXMucGFnZUluZGV4PHQmJjAhPXRoaXMucGFnZVNpemV9Z2V0TnVtYmVyT2ZQYWdlcygpe3JldHVybiB0aGlzLnBhZ2VTaXplP01hdGguY2VpbCh0aGlzLmxlbmd0aC90aGlzLnBhZ2VTaXplKTowfV9jaGFuZ2VQYWdlU2l6ZSh0KXtjb25zdCBlPXRoaXMucGFnZUluZGV4O3RoaXMucGFnZUluZGV4PU1hdGguZmxvb3IodGhpcy5wYWdlSW5kZXgqdGhpcy5wYWdlU2l6ZS90KXx8MCx0aGlzLnBhZ2VTaXplPXQsdGhpcy5fZW1pdFBhZ2VFdmVudChlKX1fbmV4dEJ1dHRvbnNEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHwhdGhpcy5oYXNOZXh0UGFnZSgpfV9wcmV2aW91c0J1dHRvbnNEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHwhdGhpcy5oYXNQcmV2aW91c1BhZ2UoKX1fdXBkYXRlRGlzcGxheWVkUGFnZVNpemVPcHRpb25zKCl7dGhpcy5faW5pdGlhbGl6ZWQmJih0aGlzLnBhZ2VTaXplfHwodGhpcy5fcGFnZVNpemU9MCE9dGhpcy5wYWdlU2l6ZU9wdGlvbnMubGVuZ3RoP3RoaXMucGFnZVNpemVPcHRpb25zWzBdOjUwKSx0aGlzLl9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnM9dGhpcy5wYWdlU2l6ZU9wdGlvbnMuc2xpY2UoKSwtMT09PXRoaXMuX2Rpc3BsYXllZFBhZ2VTaXplT3B0aW9ucy5pbmRleE9mKHRoaXMucGFnZVNpemUpJiZ0aGlzLl9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMucHVzaCh0aGlzLnBhZ2VTaXplKSx0aGlzLl9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMuc29ydCgoKHQsZSk9PnQtZSkpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1fZW1pdFBhZ2VFdmVudCh0KXt0aGlzLnBhZ2UuZW1pdCh7cHJldmlvdXNQYWdlSW5kZXg6dCxwYWdlSW5kZXg6dGhpcy5wYWdlSW5kZXgscGFnZVNpemU6dGhpcy5wYWdlU2l6ZSxsZW5ndGg6dGhpcy5sZW5ndGh9KX19JFEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fCRRKShTbShaUSksU20oVWcpLFNtKHZvaWQgMCkpfSwkUS7JtWRpcj1sbyh7dHlwZTokUSxpbnB1dHM6e3BhZ2VJbmRleDoicGFnZUluZGV4IixsZW5ndGg6Imxlbmd0aCIscGFnZVNpemU6InBhZ2VTaXplIixwYWdlU2l6ZU9wdGlvbnM6InBhZ2VTaXplT3B0aW9ucyIsaGlkZVBhZ2VTaXplOiJoaWRlUGFnZVNpemUiLHNob3dGaXJzdExhc3RCdXR0b25zOiJzaG93Rmlyc3RMYXN0QnV0dG9ucyIsY29sb3I6ImNvbG9yIn0sb3V0cHV0czp7cGFnZToicGFnZSJ9LGZlYXR1cmVzOlt4cF19KSwkUS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlpRfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwfV0sJFEucHJvcERlY29yYXRvcnM9e2NvbG9yOlt7dHlwZTp4eX1dLHBhZ2VJbmRleDpbe3R5cGU6eHl9XSxsZW5ndGg6W3t0eXBlOnh5fV0scGFnZVNpemU6W3t0eXBlOnh5fV0scGFnZVNpemVPcHRpb25zOlt7dHlwZTp4eX1dLGhpZGVQYWdlU2l6ZTpbe3R5cGU6eHl9XSxzaG93Rmlyc3RMYXN0QnV0dG9uczpbe3R5cGU6eHl9XSxwYWdlOlt7dHlwZTpPeX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKCRRLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpaUX0se3R5cGU6VWd9LHt0eXBlOnZvaWQgMH1dfSkse3BhZ2U6W3t0eXBlOk95fV0scGFnZUluZGV4Olt7dHlwZTp4eX1dLGxlbmd0aDpbe3R5cGU6eHl9XSxwYWdlU2l6ZTpbe3R5cGU6eHl9XSxwYWdlU2l6ZU9wdGlvbnM6W3t0eXBlOnh5fV0saGlkZVBhZ2VTaXplOlt7dHlwZTp4eX1dLHNob3dGaXJzdExhc3RCdXR0b25zOlt7dHlwZTp4eX1dLGNvbG9yOlt7dHlwZTp4eX1dfSk7Y2xhc3MgdCQgZXh0ZW5kcyAkUXtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlLG4pLG4mJm51bGwhPW4uZm9ybUZpZWxkQXBwZWFyYW5jZSYmKHRoaXMuX2Zvcm1GaWVsZEFwcGVhcmFuY2U9bi5mb3JtRmllbGRBcHBlYXJhbmNlKX19dCQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHQkKShTbShaUSksU20oVWcpLFNtKEpRLDgpKX0sdCQuybVjbXA9dG8oe3R5cGU6dCQsc2VsZWN0b3JzOltbIm1hdC1wYWdpbmF0b3IiXV0saG9zdEF0dHJzOlsicm9sZSIsImdyb3VwIiwxLCJtYXQtcGFnaW5hdG9yIl0saW5wdXRzOntkaXNhYmxlZDoiZGlzYWJsZWQifSxleHBvcnRBczpbIm1hdFBhZ2luYXRvciJdLGZlYXR1cmVzOlt4cF0sZGVjbHM6MTQsdmFyczoxNCxjb25zdHM6W1sxLCJtYXQtcGFnaW5hdG9yLW91dGVyLWNvbnRhaW5lciJdLFsxLCJtYXQtcGFnaW5hdG9yLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSIsNCwibmdJZiJdLFsxLCJtYXQtcGFnaW5hdG9yLXJhbmdlLWFjdGlvbnMiXSxbMSwibWF0LXBhZ2luYXRvci1yYW5nZS1sYWJlbCJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwibWF0LXBhZ2luYXRvci1uYXZpZ2F0aW9uLWZpcnN0IiwzLCJtYXRUb29sdGlwIiwibWF0VG9vbHRpcERpc2FibGVkIiwibWF0VG9vbHRpcFBvc2l0aW9uIiwiZGlzYWJsZWQiLCJjbGljayIsNCwibmdJZiJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwidHlwZSIsImJ1dHRvbiIsMSwibWF0LXBhZ2luYXRvci1uYXZpZ2F0aW9uLXByZXZpb3VzIiwzLCJtYXRUb29sdGlwIiwibWF0VG9vbHRpcERpc2FibGVkIiwibWF0VG9vbHRpcFBvc2l0aW9uIiwiZGlzYWJsZWQiLCJjbGljayJdLFsidmlld0JveCIsIjAgMCAyNCAyNCIsImZvY3VzYWJsZSIsImZhbHNlIiwxLCJtYXQtcGFnaW5hdG9yLWljb24iXSxbImQiLCJNMTUuNDEgNy40MUwxNCA2bC02IDYgNiA2IDEuNDEtMS40MUwxMC44MyAxMnoiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInR5cGUiLCJidXR0b24iLDEsIm1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1uZXh0IiwzLCJtYXRUb29sdGlwIiwibWF0VG9vbHRpcERpc2FibGVkIiwibWF0VG9vbHRpcFBvc2l0aW9uIiwiZGlzYWJsZWQiLCJjbGljayJdLFsiZCIsIk0xMCA2TDguNTkgNy40MSAxMy4xNyAxMmwtNC41OCA0LjU5TDEwIDE4bDYtNnoiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInR5cGUiLCJidXR0b24iLCJjbGFzcyIsIm1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1sYXN0IiwzLCJtYXRUb29sdGlwIiwibWF0VG9vbHRpcERpc2FibGVkIiwibWF0VG9vbHRpcFBvc2l0aW9uIiwiZGlzYWJsZWQiLCJjbGljayIsNCwibmdJZiJdLFsxLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSJdLFsxLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1sYWJlbCJdLFsiY2xhc3MiLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1zZWxlY3QiLDMsImFwcGVhcmFuY2UiLCJjb2xvciIsNCwibmdJZiJdLFsiY2xhc3MiLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS12YWx1ZSIsNCwibmdJZiJdLFsxLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1zZWxlY3QiLDMsImFwcGVhcmFuY2UiLCJjb2xvciJdLFszLCJ2YWx1ZSIsImRpc2FibGVkIiwiYXJpYS1sYWJlbCIsInNlbGVjdGlvbkNoYW5nZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInZhbHVlIl0sWzEsIm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXZhbHVlIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJ0eXBlIiwiYnV0dG9uIiwxLCJtYXQtcGFnaW5hdG9yLW5hdmlnYXRpb24tZmlyc3QiLDMsIm1hdFRvb2x0aXAiLCJtYXRUb29sdGlwRGlzYWJsZWQiLCJtYXRUb29sdGlwUG9zaXRpb24iLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJkIiwiTTE4LjQxIDE2LjU5TDEzLjgyIDEybDQuNTktNC41OUwxNyA2bC02IDYgNiA2ek02IDZoMnYxMkg2eiJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwidHlwZSIsImJ1dHRvbiIsMSwibWF0LXBhZ2luYXRvci1uYXZpZ2F0aW9uLWxhc3QiLDMsIm1hdFRvb2x0aXAiLCJtYXRUb29sdGlwRGlzYWJsZWQiLCJtYXRUb29sdGlwUG9zaXRpb24iLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJkIiwiTTUuNTkgNy40MUwxMC4xOCAxMmwtNC41OSA0LjU5TDcgMThsNi02LTYtNnpNMTYgNmgydjEyaC0yeiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiLDEpLFFwKDIsV1EsNSwzLCJkaXYiLDIpLFJtKDMsImRpdiIsMyksUm0oNCwiZGl2Iiw0KSxrdSg1KSxBbSgpLFFwKDYsWVEsMyw1LCJidXR0b24iLDUpLFJtKDcsImJ1dHRvbiIsNiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnByZXZpb3VzUGFnZSgpfSkpLHFpKCksUm0oOCwic3ZnIiw3KSxUbSg5LCJwYXRoIiw4KSxBbSgpLEFtKCksWmkoKSxSbSgxMCwiYnV0dG9uIiw5KSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ubmV4dFBhZ2UoKX0pKSxxaSgpLFJtKDExLCJzdmciLDcpLFRtKDEyLCJwYXRoIiwxMCksQW0oKSxBbSgpLFFwKDEzLHFRLDMsNSwiYnV0dG9uIiwxMSksQW0oKSxBbSgpLEFtKCkpLDImZSYmKHJjKDIpLERtKCJuZ0lmIiwhbi5oaWRlUGFnZVNpemUpLHJjKDMpLER1KCIgIixuLl9pbnRsLmdldFJhbmdlTGFiZWwobi5wYWdlSW5kZXgsbi5wYWdlU2l6ZSxuLmxlbmd0aCksIiAiKSxyYygxKSxEbSgibmdJZiIsbi5zaG93Rmlyc3RMYXN0QnV0dG9ucykscmMoMSksRG0oIm1hdFRvb2x0aXAiLG4uX2ludGwucHJldmlvdXNQYWdlTGFiZWwpKCJtYXRUb29sdGlwRGlzYWJsZWQiLG4uX3ByZXZpb3VzQnV0dG9uc0Rpc2FibGVkKCkpKCJtYXRUb29sdGlwUG9zaXRpb24iLCJhYm92ZSIpKCJkaXNhYmxlZCIsbi5fcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKSksanAoImFyaWEtbGFiZWwiLG4uX2ludGwucHJldmlvdXNQYWdlTGFiZWwpLHJjKDMpLERtKCJtYXRUb29sdGlwIixuLl9pbnRsLm5leHRQYWdlTGFiZWwpKCJtYXRUb29sdGlwRGlzYWJsZWQiLG4uX25leHRCdXR0b25zRGlzYWJsZWQoKSkoIm1hdFRvb2x0aXBQb3NpdGlvbiIsImFib3ZlIikoImRpc2FibGVkIixuLl9uZXh0QnV0dG9uc0Rpc2FibGVkKCkpLGpwKCJhcmlhLWxhYmVsIixuLl9pbnRsLm5leHRQYWdlTGFiZWwpLHJjKDMpLERtKCJuZ0lmIixuLnNob3dGaXJzdExhc3RCdXR0b25zKSl9LGRpcmVjdGl2ZXM6W2RNLFhILEZRLEFWLEFHLGxNLEJIXSxzdHlsZXM6WyIubWF0LXBhZ2luYXRvcntkaXNwbGF5OmJsb2NrfS5tYXQtcGFnaW5hdG9yLW91dGVyLWNvbnRhaW5lcntkaXNwbGF5OmZsZXh9Lm1hdC1wYWdpbmF0b3ItY29udGFpbmVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BhZGRpbmc6MCA4cHg7ZmxleC13cmFwOndyYXAtcmV2ZXJzZTt3aWR0aDoxMDAlfS5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6YmFzZWxpbmU7bWFyZ2luLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXple21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjhweH0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUtbGFiZWx7bWFyZ2luOjAgNHB4fS5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1zZWxlY3R7bWFyZ2luOjZweCA0cHggMCA0cHg7d2lkdGg6NTZweH0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZXt3aWR0aDo2NHB4fS5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxse3dpZHRoOjY0cHh9Lm1hdC1wYWdpbmF0b3ItcmFuZ2UtbGFiZWx7bWFyZ2luOjAgMzJweCAwIDI0cHh9Lm1hdC1wYWdpbmF0b3ItcmFuZ2UtYWN0aW9uc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5tYXQtcGFnaW5hdG9yLWljb257d2lkdGg6MjhweDtmaWxsOmN1cnJlbnRDb2xvcn1bZGlyPXJ0bF0gLm1hdC1wYWdpbmF0b3ItaWNvbnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXBhZ2luYXRvci1pY29ue2ZpbGw6Q2FudmFzVGV4dH1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLHQkLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WlF9LHt0eXBlOlVnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W0pRXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh0JCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtcGFnaW5hdG9yIixleHBvcnRBczoibWF0UGFnaW5hdG9yIix0ZW1wbGF0ZTonPGRpdiBjbGFzcz0ibWF0LXBhZ2luYXRvci1vdXRlci1jb250YWluZXIiPlxuICA8ZGl2IGNsYXNzPSJtYXQtcGFnaW5hdG9yLWNvbnRhaW5lciI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXBhZ2luYXRvci1wYWdlLXNpemUiICpuZ0lmPSIhaGlkZVBhZ2VTaXplIj5cbiAgICAgIDxkaXYgY2xhc3M9Im1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLWxhYmVsIj5cbiAgICAgICAge3tfaW50bC5pdGVtc1BlclBhZ2VMYWJlbH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgICpuZ0lmPSJfZGlzcGxheWVkUGFnZVNpemVPcHRpb25zLmxlbmd0aCA+IDEiXG4gICAgICAgIFthcHBlYXJhbmNlXT0iX2Zvcm1GaWVsZEFwcGVhcmFuY2UhIlxuICAgICAgICBbY29sb3JdPSJjb2xvciJcbiAgICAgICAgY2xhc3M9Im1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXNlbGVjdCI+XG4gICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgW3ZhbHVlXT0icGFnZVNpemUiXG4gICAgICAgICAgW2Rpc2FibGVkXT0iZGlzYWJsZWQiXG4gICAgICAgICAgW2FyaWEtbGFiZWxdPSJfaW50bC5pdGVtc1BlclBhZ2VMYWJlbCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT0iX2NoYW5nZVBhZ2VTaXplKCRldmVudC52YWx1ZSkiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj0ibGV0IHBhZ2VTaXplT3B0aW9uIG9mIF9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMiIFt2YWx1ZV09InBhZ2VTaXplT3B0aW9uIj5cbiAgICAgICAgICAgIHt7cGFnZVNpemVPcHRpb259fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz0ibWF0LXBhZ2luYXRvci1wYWdlLXNpemUtdmFsdWUiXG4gICAgICAgICpuZ0lmPSJfZGlzcGxheWVkUGFnZVNpemVPcHRpb25zLmxlbmd0aCA8PSAxIj57e3BhZ2VTaXplfX08L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9Im1hdC1wYWdpbmF0b3ItcmFuZ2UtYWN0aW9ucyI+XG4gICAgICA8ZGl2IGNsYXNzPSJtYXQtcGFnaW5hdG9yLXJhbmdlLWxhYmVsIj5cbiAgICAgICAge3tfaW50bC5nZXRSYW5nZUxhYmVsKHBhZ2VJbmRleCwgcGFnZVNpemUsIGxlbmd0aCl9fVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9ImJ1dHRvbiJcbiAgICAgICAgICAgICAgY2xhc3M9Im1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1maXJzdCJcbiAgICAgICAgICAgICAgKGNsaWNrKT0iZmlyc3RQYWdlKCkiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPSJfaW50bC5maXJzdFBhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPSJfaW50bC5maXJzdFBhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09Il9wcmV2aW91c0J1dHRvbnNEaXNhYmxlZCgpIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT0iXCdhYm92ZVwnIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPSJfcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKSJcbiAgICAgICAgICAgICAgKm5nSWY9InNob3dGaXJzdExhc3RCdXR0b25zIj5cbiAgICAgICAgPHN2ZyBjbGFzcz0ibWF0LXBhZ2luYXRvci1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZvY3VzYWJsZT0iZmFsc2UiPlxuICAgICAgICAgIDxwYXRoIGQ9Ik0xOC40MSAxNi41OUwxMy44MiAxMmw0LjU5LTQuNTlMMTcgNmwtNiA2IDYgNnpNNiA2aDJ2MTJINnoiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9ImJ1dHRvbiJcbiAgICAgICAgICAgICAgY2xhc3M9Im1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1wcmV2aW91cyJcbiAgICAgICAgICAgICAgKGNsaWNrKT0icHJldmlvdXNQYWdlKCkiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPSJfaW50bC5wcmV2aW91c1BhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPSJfaW50bC5wcmV2aW91c1BhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09Il9wcmV2aW91c0J1dHRvbnNEaXNhYmxlZCgpIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT0iXCdhYm92ZVwnIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPSJfcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKSI+XG4gICAgICAgIDxzdmcgY2xhc3M9Im1hdC1wYWdpbmF0b3ItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmb2N1c2FibGU9ImZhbHNlIj5cbiAgICAgICAgICA8cGF0aCBkPSJNMTUuNDEgNy40MUwxNCA2bC02IDYgNiA2IDEuNDEtMS40MUwxMC44MyAxMnoiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9ImJ1dHRvbiJcbiAgICAgICAgICAgICAgY2xhc3M9Im1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1uZXh0IlxuICAgICAgICAgICAgICAoY2xpY2spPSJuZXh0UGFnZSgpIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT0iX2ludGwubmV4dFBhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPSJfaW50bC5uZXh0UGFnZUxhYmVsIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT0iX25leHRCdXR0b25zRGlzYWJsZWQoKSJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09IlwnYWJvdmVcJyJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT0iX25leHRCdXR0b25zRGlzYWJsZWQoKSI+XG4gICAgICAgIDxzdmcgY2xhc3M9Im1hdC1wYWdpbmF0b3ItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmb2N1c2FibGU9ImZhbHNlIj5cbiAgICAgICAgICA8cGF0aCBkPSJNMTAgNkw4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6Ii8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPSJidXR0b24iXG4gICAgICAgICAgICAgIGNsYXNzPSJtYXQtcGFnaW5hdG9yLW5hdmlnYXRpb24tbGFzdCJcbiAgICAgICAgICAgICAgKGNsaWNrKT0ibGFzdFBhZ2UoKSJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09Il9pbnRsLmxhc3RQYWdlTGFiZWwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT0iX2ludGwubGFzdFBhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09Il9uZXh0QnV0dG9uc0Rpc2FibGVkKCkiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwUG9zaXRpb25dPSJcJ2Fib3ZlXCciXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09Il9uZXh0QnV0dG9uc0Rpc2FibGVkKCkiXG4gICAgICAgICAgICAgICpuZ0lmPSJzaG93Rmlyc3RMYXN0QnV0dG9ucyI+XG4gICAgICAgIDxzdmcgY2xhc3M9Im1hdC1wYWdpbmF0b3ItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmb2N1c2FibGU9ImZhbHNlIj5cbiAgICAgICAgICA8cGF0aCBkPSJNNS41OSA3LjQxTDEwLjE4IDEybC00LjU5IDQuNTlMNyAxOGw2LTYtNi02ek0xNiA2aDJ2MTJoLTJ6Ii8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4nLGlucHV0czpbImRpc2FibGVkIl0saG9zdDp7Y2xhc3M6Im1hdC1wYWdpbmF0b3IiLHJvbGU6Imdyb3VwIn0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsc3R5bGVzOlsiLm1hdC1wYWdpbmF0b3J7ZGlzcGxheTpibG9ja30ubWF0LXBhZ2luYXRvci1vdXRlci1jb250YWluZXJ7ZGlzcGxheTpmbGV4fS5tYXQtcGFnaW5hdG9yLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nOjAgOHB4O2ZsZXgtd3JhcDp3cmFwLXJldmVyc2U7d2lkdGg6MTAwJX0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemV7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDo4cHh9Lm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLWxhYmVse21hcmdpbjowIDRweH0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUtc2VsZWN0e21hcmdpbjo2cHggNHB4IDAgNHB4O3dpZHRoOjU2cHh9Lm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmV7d2lkdGg6NjRweH0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbHt3aWR0aDo2NHB4fS5tYXQtcGFnaW5hdG9yLXJhbmdlLWxhYmVse21hcmdpbjowIDMycHggMCAyNHB4fS5tYXQtcGFnaW5hdG9yLXJhbmdlLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubWF0LXBhZ2luYXRvci1pY29ue3dpZHRoOjI4cHg7ZmlsbDpjdXJyZW50Q29sb3J9W2Rpcj1ydGxdIC5tYXQtcGFnaW5hdG9yLWljb257dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1wYWdpbmF0b3ItaWNvbntmaWxsOkNhbnZhc1RleHR9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlpRfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltKUV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBlJHt9ZnVuY3Rpb24gbiQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDMpLFZtKCJAYXJyb3dQb3NpdGlvbi5zdGFydCIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbj0hMH0pKSgiQGFycm93UG9zaXRpb24uZG9uZSIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbj0hMX0pKSxUbSgxLCJkaXYiLDQpLFJtKDIsImRpdiIsNSksVG0oMywiZGl2Iiw2KSxUbSg0LCJkaXYiLDcpLFRtKDUsImRpdiIsOCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJAYXJyb3dPcGFjaXR5Iix0Ll9nZXRBcnJvd1ZpZXdTdGF0ZSgpKSgiQGFycm93UG9zaXRpb24iLHQuX2dldEFycm93Vmlld1N0YXRlKCkpKCJAYWxsb3dDaGlsZHJlbiIsdC5fZ2V0QXJyb3dEaXJlY3Rpb25TdGF0ZSgpKSxyYygyKSxEbSgiQGluZGljYXRvciIsdC5fZ2V0QXJyb3dEaXJlY3Rpb25TdGF0ZSgpKSxyYygxKSxEbSgiQGxlZnRQb2ludGVyIix0Ll9nZXRBcnJvd0RpcmVjdGlvblN0YXRlKCkpLHJjKDEpLERtKCJAcmlnaHRQb2ludGVyIix0Ll9nZXRBcnJvd0RpcmVjdGlvblN0YXRlKCkpfX1lJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZSQpfSxlJC7JtW1vZD1hbyh7dHlwZTplJH0pLGUkLsm1aW5qPXZuKHtwcm92aWRlcnM6W1hRXSxpbXBvcnRzOltbV00sSkgsVEcsVlEsWEldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZSQsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltXTSxKSCxURyxWUSxYSV0sZXhwb3J0czpbdCRdLGRlY2xhcmF0aW9uczpbdCRdLHByb3ZpZGVyczpbWFFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZSQse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVyblt0JF19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bV00sSkgsVEcsVlEsWEldfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3QkXX19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IG8kPW5ldyBHYSgiTUFUX1NPUlRfREVGQVVMVF9PUFRJT05TIiksaSQ9ZUgoS0koY2xhc3N7fSkpO2NsYXNzIGEkIGV4dGVuZHMgaSR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9kZWZhdWx0T3B0aW9ucz10LHRoaXMuc29ydGFibGVzPW5ldyBNYXAsdGhpcy5fc3RhdGVDaGFuZ2VzPW5ldyBJLHRoaXMuc3RhcnQ9ImFzYyIsdGhpcy5fZGlyZWN0aW9uPSIiLHRoaXMuc29ydENoYW5nZT1uZXcgTGh9Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLl9kaXJlY3Rpb259c2V0IGRpcmVjdGlvbih0KXtpZih0JiYiYXNjIiE9PXQmJiJkZXNjIiE9PXQmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyhmdW5jdGlvbiBlKHQpe3JldHVybiBFcnJvcihgJHt0fSBpcyBub3QgYSB2YWxpZCBzb3J0IGRpcmVjdGlvbiAoJ2FzYycgb3IgJ2Rlc2MnKS5gKX0pKHQpO3RoaXMuX2RpcmVjdGlvbj10fWdldCBkaXNhYmxlQ2xlYXIoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZUNsZWFyfXNldCBkaXNhYmxlQ2xlYXIodCl7dGhpcy5fZGlzYWJsZUNsZWFyPXl6KHQpfXJlZ2lzdGVyKHQpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpe2lmKCF0LmlkKXRocm93KGZ1bmN0aW9uIGUoKXtyZXR1cm4gRXJyb3IoIk1hdFNvcnRIZWFkZXIgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGEgdW5pcXVlIGlkLiIpfSkoKTtpZih0aGlzLnNvcnRhYmxlcy5oYXModC5pZCkpdGhyb3coZnVuY3Rpb24gbih0KXtyZXR1cm4gRXJyb3IoYENhbm5vdCBoYXZlIHR3byBNYXRTb3J0YWJsZXMgd2l0aCB0aGUgc2FtZSBpZCAoJHt0fSkuYCl9KSh0LmlkKX10aGlzLnNvcnRhYmxlcy5zZXQodC5pZCx0KX1kZXJlZ2lzdGVyKHQpe3RoaXMuc29ydGFibGVzLmRlbGV0ZSh0LmlkKX1zb3J0KHQpe3RoaXMuYWN0aXZlIT10LmlkPyh0aGlzLmFjdGl2ZT10LmlkLHRoaXMuZGlyZWN0aW9uPXQuc3RhcnQ/dC5zdGFydDp0aGlzLnN0YXJ0KTp0aGlzLmRpcmVjdGlvbj10aGlzLmdldE5leHRTb3J0RGlyZWN0aW9uKHQpLHRoaXMuc29ydENoYW5nZS5lbWl0KHthY3RpdmU6dGhpcy5hY3RpdmUsZGlyZWN0aW9uOnRoaXMuZGlyZWN0aW9ufSl9Z2V0TmV4dFNvcnREaXJlY3Rpb24odCl7dmFyIGUsbixvO2lmKCF0KXJldHVybiIiO2NvbnN0IGk9bnVsbCE9PShuPW51bGwhPT0oZT1udWxsPT10P3ZvaWQgMDp0LmRpc2FibGVDbGVhcikmJnZvaWQgMCE9PWU/ZTp0aGlzLmRpc2FibGVDbGVhcikmJnZvaWQgMCE9PW4/bjohIShudWxsPT09KG89dGhpcy5fZGVmYXVsdE9wdGlvbnMpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLmRpc2FibGVDbGVhcik7bGV0IGE9KGZ1bmN0aW9uIHIodCxlKXtsZXQgbj1bImFzYyIsImRlc2MiXTtyZXR1cm4iZGVzYyI9PXQmJm4ucmV2ZXJzZSgpLGV8fG4ucHVzaCgiIiksbn0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0LnN0YXJ0fHx0aGlzLnN0YXJ0LGkpLHM9YS5pbmRleE9mKHRoaXMuZGlyZWN0aW9uKSsxO3JldHVybiBzPj1hLmxlbmd0aCYmKHM9MCksYVtzXX1uZ09uSW5pdCgpe3RoaXMuX21hcmtJbml0aWFsaXplZCgpfW5nT25DaGFuZ2VzKCl7dGhpcy5fc3RhdGVDaGFuZ2VzLm5leHQoKX1uZ09uRGVzdHJveSgpe3RoaXMuX3N0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpfX1hJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YSQpKFNtKG8kLDgpKX0sYSQuybVkaXI9bG8oe3R5cGU6YSQsc2VsZWN0b3JzOltbIiIsIm1hdFNvcnQiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtc29ydCJdLGlucHV0czp7ZGlzYWJsZWQ6WyJtYXRTb3J0RGlzYWJsZWQiLCJkaXNhYmxlZCJdLHN0YXJ0OlsibWF0U29ydFN0YXJ0Iiwic3RhcnQiXSxkaXJlY3Rpb246WyJtYXRTb3J0RGlyZWN0aW9uIiwiZGlyZWN0aW9uIl0sZGlzYWJsZUNsZWFyOlsibWF0U29ydERpc2FibGVDbGVhciIsImRpc2FibGVDbGVhciJdLGFjdGl2ZTpbIm1hdFNvcnRBY3RpdmUiLCJhY3RpdmUiXX0sb3V0cHV0czp7c29ydENoYW5nZToibWF0U29ydENoYW5nZSJ9LGV4cG9ydEFzOlsibWF0U29ydCJdLGZlYXR1cmVzOlt4cCxCb119KSxhJC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbbyRdfV19XSxhJC5wcm9wRGVjb3JhdG9ycz17YWN0aXZlOlt7dHlwZTp4eSxhcmdzOlsibWF0U29ydEFjdGl2ZSJdfV0sc3RhcnQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRTb3J0U3RhcnQiXX1dLGRpcmVjdGlvbjpbe3R5cGU6eHksYXJnczpbIm1hdFNvcnREaXJlY3Rpb24iXX1dLGRpc2FibGVDbGVhcjpbe3R5cGU6eHksYXJnczpbIm1hdFNvcnREaXNhYmxlQ2xlYXIiXX1dLHNvcnRDaGFuZ2U6W3t0eXBlOk95LGFyZ3M6WyJtYXRTb3J0Q2hhbmdlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChhJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0U29ydF0iLGV4cG9ydEFzOiJtYXRTb3J0Iixob3N0OntjbGFzczoibWF0LXNvcnQifSxpbnB1dHM6WyJkaXNhYmxlZDogbWF0U29ydERpc2FibGVkIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W28kXX1dfV19KSx7c3RhcnQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRTb3J0U3RhcnQiXX1dLHNvcnRDaGFuZ2U6W3t0eXBlOk95LGFyZ3M6WyJtYXRTb3J0Q2hhbmdlIl19XSxkaXJlY3Rpb246W3t0eXBlOnh5LGFyZ3M6WyJtYXRTb3J0RGlyZWN0aW9uIl19XSxkaXNhYmxlQ2xlYXI6W3t0eXBlOnh5LGFyZ3M6WyJtYXRTb3J0RGlzYWJsZUNsZWFyIl19XSxhY3RpdmU6W3t0eXBlOnh5LGFyZ3M6WyJtYXRTb3J0QWN0aXZlIl19XX0pO2NvbnN0IHIkPVdJLkVOVEVSSU5HKyIgIitHSS5TVEFOREFSRF9DVVJWRSxzJD17aW5kaWNhdG9yOm54KCJpbmRpY2F0b3IiLFtyeCgiYWN0aXZlLWFzYywgYXNjIixheCh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDBweCkifSkpLHJ4KCJhY3RpdmUtZGVzYywgZGVzYyIsYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlWSgxMHB4KSJ9KSksbHgoImFjdGl2ZS1hc2MgPD0+IGFjdGl2ZS1kZXNjIixveChyJCkpXSksbGVmdFBvaW50ZXI6bngoImxlZnRQb2ludGVyIixbcngoImFjdGl2ZS1hc2MsIGFzYyIsYXgoe3RyYW5zZm9ybToicm90YXRlKC00NWRlZykifSkpLHJ4KCJhY3RpdmUtZGVzYywgZGVzYyIsYXgoe3RyYW5zZm9ybToicm90YXRlKDQ1ZGVnKSJ9KSksbHgoImFjdGl2ZS1hc2MgPD0+IGFjdGl2ZS1kZXNjIixveChyJCkpXSkscmlnaHRQb2ludGVyOm54KCJyaWdodFBvaW50ZXIiLFtyeCgiYWN0aXZlLWFzYywgYXNjIixheCh7dHJhbnNmb3JtOiJyb3RhdGUoNDVkZWcpIn0pKSxyeCgiYWN0aXZlLWRlc2MsIGRlc2MiLGF4KHt0cmFuc2Zvcm06InJvdGF0ZSgtNDVkZWcpIn0pKSxseCgiYWN0aXZlLWFzYyA8PT4gYWN0aXZlLWRlc2MiLG94KHIkKSldKSxhcnJvd09wYWNpdHk6bngoImFycm93T3BhY2l0eSIsW3J4KCJkZXNjLXRvLWFjdGl2ZSwgYXNjLXRvLWFjdGl2ZSwgYWN0aXZlIixheCh7b3BhY2l0eToxfSkpLHJ4KCJkZXNjLXRvLWhpbnQsIGFzYy10by1oaW50LCBoaW50IixheCh7b3BhY2l0eTouNTR9KSkscngoImhpbnQtdG8tZGVzYywgYWN0aXZlLXRvLWRlc2MsIGRlc2MsIGhpbnQtdG8tYXNjLCBhY3RpdmUtdG8tYXNjLCBhc2MsIHZvaWQiLGF4KHtvcGFjaXR5OjB9KSksbHgoIiogPT4gYXNjLCAqID0+IGRlc2MsICogPT4gYWN0aXZlLCAqID0+IGhpbnQsICogPT4gdm9pZCIsb3goIjBtcyIpKSxseCgiKiA8PT4gKiIsb3gociQpKV0pLGFycm93UG9zaXRpb246bngoImFycm93UG9zaXRpb24iLFtseCgiKiA9PiBkZXNjLXRvLWhpbnQsICogPT4gZGVzYy10by1hY3RpdmUiLG94KHIkLHN4KFtheCh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC0yNSUpIn0pLGF4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSldKSkpLGx4KCIqID0+IGhpbnQtdG8tZGVzYywgKiA9PiBhY3RpdmUtdG8tZGVzYyIsb3gociQsc3goW2F4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSksYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlWSgyNSUpIn0pXSkpKSxseCgiKiA9PiBhc2MtdG8taGludCwgKiA9PiBhc2MtdG8tYWN0aXZlIixveChyJCxzeChbYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlWSgyNSUpIn0pLGF4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSldKSkpLGx4KCIqID0+IGhpbnQtdG8tYXNjLCAqID0+IGFjdGl2ZS10by1hc2MiLG94KHIkLHN4KFtheCh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDApIn0pLGF4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTI1JSkifSldKSkpLHJ4KCJkZXNjLXRvLWhpbnQsIGFzYy10by1oaW50LCBoaW50LCBkZXNjLXRvLWFjdGl2ZSwgYXNjLXRvLWFjdGl2ZSwgYWN0aXZlIixheCh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDApIn0pKSxyeCgiaGludC10by1kZXNjLCBhY3RpdmUtdG8tZGVzYywgZGVzYyIsYXgoe3RyYW5zZm9ybToidHJhbnNsYXRlWSgtMjUlKSJ9KSkscngoImhpbnQtdG8tYXNjLCBhY3RpdmUtdG8tYXNjLCBhc2MiLGF4KHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMjUlKSJ9KSldKSxhbGxvd0NoaWxkcmVuOm54KCJhbGxvd0NoaWxkcmVuIixbbHgoIiogPD0+ICoiLFtkeCgiQCoiLGN4KCkse29wdGlvbmFsOiEwfSldKV0pfTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGwke2NvbnN0cnVjdG9yKCl7dGhpcy5jaGFuZ2VzPW5ldyBJfX1sJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bCQpfSxsJC7JtXByb3Y9TW4oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgbCR9LHRva2VuOmwkLHByb3ZpZGVkSW46InJvb3QifSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsJCxbe3R5cGU6aW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NvbnN0IGMkPXtwcm92aWRlOmwkLGRlcHM6W1tuZXcgU3IsbmV3IEVyLGwkXV0sdXNlRmFjdG9yeTpmdW5jdGlvbiBkJCh0KXtyZXR1cm4gdHx8bmV3IGwkfX0scCQ9S0koY2xhc3N7fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIG0kIGV4dGVuZHMgcCR7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe2lmKHN1cGVyKCksdGhpcy5faW50bD10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fc29ydD1uLHRoaXMuX2NvbHVtbkRlZj1vLHRoaXMuX2ZvY3VzTW9uaXRvcj1pLHRoaXMuX2VsZW1lbnRSZWY9YSx0aGlzLl9zaG93SW5kaWNhdG9ySGludD0hMSx0aGlzLl92aWV3U3RhdGU9e30sdGhpcy5fYXJyb3dEaXJlY3Rpb249IiIsdGhpcy5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbj0hMSx0aGlzLmFycm93UG9zaXRpb249ImFmdGVyIiwhbiYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIHIoKXtyZXR1cm4gRXJyb3IoIk1hdFNvcnRIZWFkZXIgbXVzdCBiZSBwbGFjZWQgd2l0aGluIGEgcGFyZW50IGVsZW1lbnQgd2l0aCB0aGUgTWF0U29ydCBkaXJlY3RpdmUuIil9KSgpO3RoaXMuX2hhbmRsZVN0YXRlQ2hhbmdlcygpfWdldCBkaXNhYmxlQ2xlYXIoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZUNsZWFyfXNldCBkaXNhYmxlQ2xlYXIodCl7dGhpcy5fZGlzYWJsZUNsZWFyPXl6KHQpfW5nT25Jbml0KCl7IXRoaXMuaWQmJnRoaXMuX2NvbHVtbkRlZiYmKHRoaXMuaWQ9dGhpcy5fY29sdW1uRGVmLm5hbWUpLHRoaXMuX3VwZGF0ZUFycm93RGlyZWN0aW9uKCksdGhpcy5fc2V0QW5pbWF0aW9uVHJhbnNpdGlvblN0YXRlKHt0b1N0YXRlOnRoaXMuX2lzU29ydGVkKCk/ImFjdGl2ZSI6dGhpcy5fYXJyb3dEaXJlY3Rpb259KSx0aGlzLl9zb3J0LnJlZ2lzdGVyKHRoaXMpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsITApLnN1YnNjcmliZSgodD0+e2NvbnN0IGU9ISF0O2UhPT10aGlzLl9zaG93SW5kaWNhdG9ySGludCYmKHRoaXMuX3NldEluZGljYXRvckhpbnRWaXNpYmxlKGUpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKSx0aGlzLl9zb3J0LmRlcmVnaXN0ZXIodGhpcyksdGhpcy5fcmVyZW5kZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1fc2V0SW5kaWNhdG9ySGludFZpc2libGUodCl7dGhpcy5faXNEaXNhYmxlZCgpJiZ0fHwodGhpcy5fc2hvd0luZGljYXRvckhpbnQ9dCx0aGlzLl9pc1NvcnRlZCgpfHwodGhpcy5fdXBkYXRlQXJyb3dEaXJlY3Rpb24oKSx0aGlzLl9zZXRBbmltYXRpb25UcmFuc2l0aW9uU3RhdGUodGhpcy5fc2hvd0luZGljYXRvckhpbnQ/e2Zyb21TdGF0ZTp0aGlzLl9hcnJvd0RpcmVjdGlvbix0b1N0YXRlOiJoaW50In06e2Zyb21TdGF0ZToiaGludCIsdG9TdGF0ZTp0aGlzLl9hcnJvd0RpcmVjdGlvbn0pKSl9X3NldEFuaW1hdGlvblRyYW5zaXRpb25TdGF0ZSh0KXt0aGlzLl92aWV3U3RhdGU9dHx8e30sdGhpcy5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbiYmKHRoaXMuX3ZpZXdTdGF0ZT17dG9TdGF0ZTp0LnRvU3RhdGV9KX1fdG9nZ2xlT25JbnRlcmFjdGlvbigpe3RoaXMuX3NvcnQuc29ydCh0aGlzKSwiaGludCIhPT10aGlzLl92aWV3U3RhdGUudG9TdGF0ZSYmImFjdGl2ZSIhPT10aGlzLl92aWV3U3RhdGUudG9TdGF0ZXx8KHRoaXMuX2Rpc2FibGVWaWV3U3RhdGVBbmltYXRpb249ITApfV9oYW5kbGVDbGljaygpe3RoaXMuX2lzRGlzYWJsZWQoKXx8dGhpcy5fc29ydC5zb3J0KHRoaXMpfV9oYW5kbGVLZXlkb3duKHQpe3RoaXMuX2lzRGlzYWJsZWQoKXx8dC5rZXlDb2RlIT09ZnomJnQua2V5Q29kZSE9PW16fHwodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX3RvZ2dsZU9uSW50ZXJhY3Rpb24oKSl9X2lzU29ydGVkKCl7cmV0dXJuIHRoaXMuX3NvcnQuYWN0aXZlPT10aGlzLmlkJiYoImFzYyI9PT10aGlzLl9zb3J0LmRpcmVjdGlvbnx8ImRlc2MiPT09dGhpcy5fc29ydC5kaXJlY3Rpb24pfV9nZXRBcnJvd0RpcmVjdGlvblN0YXRlKCl7cmV0dXJuYCR7dGhpcy5faXNTb3J0ZWQoKT8iYWN0aXZlLSI6IiJ9JHt0aGlzLl9hcnJvd0RpcmVjdGlvbn1gfV9nZXRBcnJvd1ZpZXdTdGF0ZSgpe2NvbnN0IHQ9dGhpcy5fdmlld1N0YXRlLmZyb21TdGF0ZTtyZXR1cm4odD9gJHt0fS10by1gOiIiKSt0aGlzLl92aWV3U3RhdGUudG9TdGF0ZX1fdXBkYXRlQXJyb3dEaXJlY3Rpb24oKXt0aGlzLl9hcnJvd0RpcmVjdGlvbj10aGlzLl9pc1NvcnRlZCgpP3RoaXMuX3NvcnQuZGlyZWN0aW9uOnRoaXMuc3RhcnR8fHRoaXMuX3NvcnQuc3RhcnR9X2lzRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fc29ydC5kaXNhYmxlZHx8dGhpcy5kaXNhYmxlZH1fZ2V0QXJpYVNvcnRBdHRyaWJ1dGUoKXtyZXR1cm4gdGhpcy5faXNTb3J0ZWQoKT8iYXNjIj09dGhpcy5fc29ydC5kaXJlY3Rpb24/ImFzY2VuZGluZyI6ImRlc2NlbmRpbmciOiJub25lIn1fcmVuZGVyQXJyb3coKXtyZXR1cm4hdGhpcy5faXNEaXNhYmxlZCgpfHx0aGlzLl9pc1NvcnRlZCgpfV9oYW5kbGVTdGF0ZUNoYW5nZXMoKXt0aGlzLl9yZXJlbmRlclN1YnNjcmlwdGlvbj1yZSh0aGlzLl9zb3J0LnNvcnRDaGFuZ2UsdGhpcy5fc29ydC5fc3RhdGVDaGFuZ2VzLHRoaXMuX2ludGwuY2hhbmdlcykuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2lzU29ydGVkKCkmJih0aGlzLl91cGRhdGVBcnJvd0RpcmVjdGlvbigpLCJoaW50IiE9PXRoaXMuX3ZpZXdTdGF0ZS50b1N0YXRlJiYiYWN0aXZlIiE9PXRoaXMuX3ZpZXdTdGF0ZS50b1N0YXRlfHwodGhpcy5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbj0hMCksdGhpcy5fc2V0QW5pbWF0aW9uVHJhbnNpdGlvblN0YXRlKHtmcm9tU3RhdGU6dGhpcy5fYXJyb3dEaXJlY3Rpb24sdG9TdGF0ZToiYWN0aXZlIn0pLHRoaXMuX3Nob3dJbmRpY2F0b3JIaW50PSExKSwhdGhpcy5faXNTb3J0ZWQoKSYmdGhpcy5fdmlld1N0YXRlJiYiYWN0aXZlIj09PXRoaXMuX3ZpZXdTdGF0ZS50b1N0YXRlJiYodGhpcy5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbj0hMSx0aGlzLl9zZXRBbmltYXRpb25UcmFuc2l0aW9uU3RhdGUoe2Zyb21TdGF0ZToiYWN0aXZlIix0b1N0YXRlOnRoaXMuX2Fycm93RGlyZWN0aW9ufSkpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSkpfX1tJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bSQpKFNtKGwkKSxTbShVZyksU20oYSQsOCksU20oIk1BVF9TT1JUX0hFQURFUl9DT0xVTU5fREVGIiw4KSxTbShTSSksU20oaGcpKX0sbSQuybVjbXA9dG8oe3R5cGU6bSQsc2VsZWN0b3JzOltbIiIsIm1hdC1zb3J0LWhlYWRlciIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1zb3J0LWhlYWRlciJdLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5faGFuZGxlQ2xpY2soKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUtleWRvd24oZSl9KSkoIm1vdXNlZW50ZXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX3NldEluZGljYXRvckhpbnRWaXNpYmxlKCEwKX0pKSgibW91c2VsZWF2ZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc2V0SW5kaWNhdG9ySGludFZpc2libGUoITEpfSkpLDImZSYmKGpwKCJhcmlhLXNvcnQiLG4uX2dldEFyaWFTb3J0QXR0cmlidXRlKCkpLHB1KCJtYXQtc29ydC1oZWFkZXItZGlzYWJsZWQiLG4uX2lzRGlzYWJsZWQoKSkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsYXJyb3dQb3NpdGlvbjoiYXJyb3dQb3NpdGlvbiIsZGlzYWJsZUNsZWFyOiJkaXNhYmxlQ2xlYXIiLGlkOlsibWF0LXNvcnQtaGVhZGVyIiwiaWQiXSxzdGFydDoic3RhcnQifSxleHBvcnRBczpbIm1hdFNvcnRIZWFkZXIiXSxmZWF0dXJlczpbeHBdLGF0dHJzOlsibWF0LXNvcnQtaGVhZGVyIiwiIl0sbmdDb250ZW50U2VsZWN0b3JzOlsiKiJdLGRlY2xzOjQsdmFyczo2LGNvbnN0czpbWyJyb2xlIiwiYnV0dG9uIiwxLCJtYXQtc29ydC1oZWFkZXItY29udGFpbmVyIiwibWF0LWZvY3VzLWluZGljYXRvciJdLFsxLCJtYXQtc29ydC1oZWFkZXItY29udGVudCJdLFsiY2xhc3MiLCJtYXQtc29ydC1oZWFkZXItYXJyb3ciLDQsIm5nSWYiXSxbMSwibWF0LXNvcnQtaGVhZGVyLWFycm93Il0sWzEsIm1hdC1zb3J0LWhlYWRlci1zdGVtIl0sWzEsIm1hdC1zb3J0LWhlYWRlci1pbmRpY2F0b3IiXSxbMSwibWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItbGVmdCJdLFsxLCJtYXQtc29ydC1oZWFkZXItcG9pbnRlci1yaWdodCJdLFsxLCJtYXQtc29ydC1oZWFkZXItcG9pbnRlci1taWRkbGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFptKCksUm0oMCwiZGl2IiwwKSxSbSgxLCJkaXYiLDEpLFhtKDIpLEFtKCksUXAoMyxuJCw2LDYsImRpdiIsMiksQW0oKSksMiZlJiYocHUoIm1hdC1zb3J0LWhlYWRlci1zb3J0ZWQiLG4uX2lzU29ydGVkKCkpKCJtYXQtc29ydC1oZWFkZXItcG9zaXRpb24tYmVmb3JlIiwiYmVmb3JlIj09bi5hcnJvd1Bvc2l0aW9uKSxqcCgidGFiaW5kZXgiLG4uX2lzRGlzYWJsZWQoKT9udWxsOjApLHJjKDMpLERtKCJuZ0lmIixuLl9yZW5kZXJBcnJvdygpKSl9LGRpcmVjdGl2ZXM6W2RNXSxzdHlsZXM6WyIubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7Y3Vyc29yOnBvaW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2xldHRlci1zcGFjaW5nOm5vcm1hbDtvdXRsaW5lOjB9W21hdC1zb3J0LWhlYWRlcl0uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1zb3J0LWhlYWRlci1jb250YWluZXIsW21hdC1zb3J0LWhlYWRlcl0uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntib3JkZXItYm90dG9tOnNvbGlkIDFweCBjdXJyZW50Q29sb3J9Lm1hdC1zb3J0LWhlYWRlci1kaXNhYmxlZCAubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntjdXJzb3I6ZGVmYXVsdH0ubWF0LXNvcnQtaGVhZGVyLWNvbnRlbnR7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0ubWF0LXNvcnQtaGVhZGVyLWFycm93e2hlaWdodDoxMnB4O3dpZHRoOjEycHg7bWluLXdpZHRoOjEycHg7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O29wYWNpdHk6MH0ubWF0LXNvcnQtaGVhZGVyLWFycm93LFtkaXI9cnRsXSAubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZSAubWF0LXNvcnQtaGVhZGVyLWFycm93e21hcmdpbjowIDAgMCA2cHh9Lm1hdC1zb3J0LWhlYWRlci1wb3NpdGlvbi1iZWZvcmUgLm1hdC1zb3J0LWhlYWRlci1hcnJvdyxbZGlyPXJ0bF0gLm1hdC1zb3J0LWhlYWRlci1hcnJvd3ttYXJnaW46MCA2cHggMCAwfS5tYXQtc29ydC1oZWFkZXItc3RlbXtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtoZWlnaHQ6MTBweDt3aWR0aDoycHg7bWFyZ2luOmF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc29ydC1oZWFkZXItc3RlbXt3aWR0aDowO2JvcmRlci1sZWZ0OnNvbGlkIDJweH0ubWF0LXNvcnQtaGVhZGVyLWluZGljYXRvcnt3aWR0aDoxMDAlO2hlaWdodDoycHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLW1pZGRsZXttYXJnaW46YXV0bztoZWlnaHQ6MnB4O3dpZHRoOjJweDtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc29ydC1oZWFkZXItcG9pbnRlci1taWRkbGV7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItdG9wOnNvbGlkIDJweDtib3JkZXItbGVmdDpzb2xpZCAycHh9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnQsLm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLXJpZ2h0e2JhY2tncm91bmQ6Y3VycmVudENvbG9yO3dpZHRoOjZweDtoZWlnaHQ6MnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItcmlnaHR7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDpzb2xpZCA2cHg7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnR7dHJhbnNmb3JtLW9yaWdpbjpyaWdodDtsZWZ0OjB9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLXJpZ2h0e3RyYW5zZm9ybS1vcmlnaW46bGVmdDtyaWdodDowfVxuIl0sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbcyQuaW5kaWNhdG9yLHMkLmxlZnRQb2ludGVyLHMkLnJpZ2h0UG9pbnRlcixzJC5hcnJvd09wYWNpdHkscyQuYXJyb3dQb3NpdGlvbixzJC5hbGxvd0NoaWxkcmVuXX0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxtJC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmwkfSx7dHlwZTpVZ30se3R5cGU6YSQsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6WyJNQVRfU09SVF9IRUFERVJfQ09MVU1OX0RFRiJdfSx7dHlwZTpTcn1dfSx7dHlwZTpTSX0se3R5cGU6aGd9XSxtJC5wcm9wRGVjb3JhdG9ycz17aWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXQtc29ydC1oZWFkZXIiXX1dLGFycm93UG9zaXRpb246W3t0eXBlOnh5fV0sc3RhcnQ6W3t0eXBlOnh5fV0sZGlzYWJsZUNsZWFyOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG0kLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6IlttYXQtc29ydC1oZWFkZXJdIixleHBvcnRBczoibWF0U29ydEhlYWRlciIsdGVtcGxhdGU6J1x4M2MhLS1cbiAgV2Ugc2V0IHRoZSBgdGFiaW5kZXhgIG9uIGFuIGVsZW1lbnQgaW5zaWRlIHRoZSB0YWJsZSBoZWFkZXIsIHJhdGhlciB0aGFuIHRoZSBoZWFkZXIgaXRzZWxmLFxuICBiZWNhdXNlIG9mIGEgYnVnIGluIE5WREEgd2hlcmUgaGF2aW5nIGEgYHRhYmluZGV4YCBvbiBhIGB0aGAgYnJlYWtzIGtleWJvYXJkIG5hdmlnYXRpb24gaW4gdGhlXG4gIHRhYmxlIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL252YWNjZXNzL252ZGEvaXNzdWVzLzc3MTgpLiBUaGlzIGFsbG93cyBmb3IgdGhlIGhlYWRlciB0byBib3RoXG4gIGJlIGZvY3VzYWJsZSwgYW5kIGhhdmUgc2NyZWVuIHJlYWRlcnMgcmVhZCBvdXQgaXRzIGBhcmlhLXNvcnRgIHN0YXRlLiBXZSBwcmVmZXIgdGhpcyBhcHByb2FjaFxuICBvdmVyIGhhdmluZyBhIGJ1dHRvbiB3aXRoIGFuIGBhcmlhLWxhYmVsYCBpbnNpZGUgdGhlIGhlYWRlciwgYmVjYXVzZSB0aGUgYnV0dG9uXCdzIGBhcmlhLWxhYmVsYFxuICB3aWxsIGJlIHJlYWQgb3V0IGFzIHRoZSB1c2VyIGlzIG5hdmlnYXRpbmcgdGhlIHRhYmxlXCdzIGNlbGwgKHNlZSAjMTMwMTIpLlxuXG4gIFRoZSBhcHByb2FjaCBpcyBiYXNlZCBvZmYgb2Y6IGh0dHBzOi8vZGVxdWV1bml2ZXJzaXR5LmNvbS9saWJyYXJ5L2FyaWEvdGFibGVzL3NmLXNvcnRhYmxlLWdyaWRcbi0tXHgzZVxuPGRpdiBjbGFzcz0ibWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lciBtYXQtZm9jdXMtaW5kaWNhdG9yIlxuICAgICBbY2xhc3MubWF0LXNvcnQtaGVhZGVyLXNvcnRlZF09Il9pc1NvcnRlZCgpIlxuICAgICBbY2xhc3MubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZV09ImFycm93UG9zaXRpb24gPT0gXCdiZWZvcmVcJyJcbiAgICAgW2F0dHIudGFiaW5kZXhdPSJfaXNEaXNhYmxlZCgpID8gbnVsbCA6IDAiXG4gICAgIHJvbGU9ImJ1dHRvbiI+XG5cbiAgXHgzYyEtLVxuICAgIFRPRE8oY3Jpc2JldG8pOiB0aGlzIGRpdiBpc25cJ3Qgc3RyaWN0bHkgbmVjZXNzYXJ5LCBidXQgd2UgaGF2ZSB0byBrZWVwIGl0IGR1ZSB0byBhIGxhcmdlXG4gICAgbnVtYmVyIG9mIHNjcmVlbnNob3QgZGlmZiBmYWlsdXJlcy4gSXQgc2hvdWxkIGJlIHJlbW92ZWQgZXZlbnR1YWxseS4gTm90ZSB0aGF0IHRoZSBkaWZmZXJlbmNlXG4gICAgaXNuXCd0IHZpc2libGUgd2l0aCBhIHNob3J0ZXIgaGVhZGVyLCBidXQgb25jZSBpdCBicmVha3MgdXAgaW50byBtdWx0aXBsZSBsaW5lcywgdGhpcyBlbGVtZW50XG4gICAgY2F1c2VzIGl0IHRvIGJlIGNlbnRlci1hbGlnbmVkLCB3aGVyZWFzIHJlbW92aW5nIGl0IHdpbGwga2VlcCB0aGUgdGV4dCB0byB0aGUgbGVmdC5cbiAgLS1ceDNlXG4gIDxkaXYgY2xhc3M9Im1hdC1zb3J0LWhlYWRlci1jb250ZW50Ij5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIFx4M2MhLS0gRGlzYWJsZSBhbmltYXRpb25zIHdoaWxlIGEgY3VycmVudCBhbmltYXRpb24gaXMgcnVubmluZyAtLVx4M2VcbiAgPGRpdiBjbGFzcz0ibWF0LXNvcnQtaGVhZGVyLWFycm93IlxuICAgICAgICpuZ0lmPSJfcmVuZGVyQXJyb3coKSJcbiAgICAgICBbQGFycm93T3BhY2l0eV09Il9nZXRBcnJvd1ZpZXdTdGF0ZSgpIlxuICAgICAgIFtAYXJyb3dQb3NpdGlvbl09Il9nZXRBcnJvd1ZpZXdTdGF0ZSgpIlxuICAgICAgIFtAYWxsb3dDaGlsZHJlbl09Il9nZXRBcnJvd0RpcmVjdGlvblN0YXRlKCkiXG4gICAgICAgKEBhcnJvd1Bvc2l0aW9uLnN0YXJ0KT0iX2Rpc2FibGVWaWV3U3RhdGVBbmltYXRpb24gPSB0cnVlIlxuICAgICAgIChAYXJyb3dQb3NpdGlvbi5kb25lKT0iX2Rpc2FibGVWaWV3U3RhdGVBbmltYXRpb24gPSBmYWxzZSI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNvcnQtaGVhZGVyLXN0ZW0iPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9Im1hdC1zb3J0LWhlYWRlci1pbmRpY2F0b3IiIFtAaW5kaWNhdG9yXT0iX2dldEFycm93RGlyZWN0aW9uU3RhdGUoKSI+XG4gICAgICA8ZGl2IGNsYXNzPSJtYXQtc29ydC1oZWFkZXItcG9pbnRlci1sZWZ0IiBbQGxlZnRQb2ludGVyXT0iX2dldEFycm93RGlyZWN0aW9uU3RhdGUoKSI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPSJtYXQtc29ydC1oZWFkZXItcG9pbnRlci1yaWdodCIgW0ByaWdodFBvaW50ZXJdPSJfZ2V0QXJyb3dEaXJlY3Rpb25TdGF0ZSgpIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9Im1hdC1zb3J0LWhlYWRlci1wb2ludGVyLW1pZGRsZSI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4nLGhvc3Q6e2NsYXNzOiJtYXQtc29ydC1oZWFkZXIiLCIoY2xpY2spIjoiX2hhbmRsZUNsaWNrKCkiLCIoa2V5ZG93bikiOiJfaGFuZGxlS2V5ZG93bigkZXZlbnQpIiwiKG1vdXNlZW50ZXIpIjoiX3NldEluZGljYXRvckhpbnRWaXNpYmxlKHRydWUpIiwiKG1vdXNlbGVhdmUpIjoiX3NldEluZGljYXRvckhpbnRWaXNpYmxlKGZhbHNlKSIsIlthdHRyLmFyaWEtc29ydF0iOiJfZ2V0QXJpYVNvcnRBdHRyaWJ1dGUoKSIsIltjbGFzcy5tYXQtc29ydC1oZWFkZXItZGlzYWJsZWRdIjoiX2lzRGlzYWJsZWQoKSJ9LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLGlucHV0czpbImRpc2FibGVkIl0sYW5pbWF0aW9uczpbcyQuaW5kaWNhdG9yLHMkLmxlZnRQb2ludGVyLHMkLnJpZ2h0UG9pbnRlcixzJC5hcnJvd09wYWNpdHkscyQuYXJyb3dQb3NpdGlvbixzJC5hbGxvd0NoaWxkcmVuXSxzdHlsZXM6WyIubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7Y3Vyc29yOnBvaW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2xldHRlci1zcGFjaW5nOm5vcm1hbDtvdXRsaW5lOjB9W21hdC1zb3J0LWhlYWRlcl0uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1zb3J0LWhlYWRlci1jb250YWluZXIsW21hdC1zb3J0LWhlYWRlcl0uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntib3JkZXItYm90dG9tOnNvbGlkIDFweCBjdXJyZW50Q29sb3J9Lm1hdC1zb3J0LWhlYWRlci1kaXNhYmxlZCAubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcntjdXJzb3I6ZGVmYXVsdH0ubWF0LXNvcnQtaGVhZGVyLWNvbnRlbnR7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0ubWF0LXNvcnQtaGVhZGVyLWFycm93e2hlaWdodDoxMnB4O3dpZHRoOjEycHg7bWluLXdpZHRoOjEycHg7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O29wYWNpdHk6MH0ubWF0LXNvcnQtaGVhZGVyLWFycm93LFtkaXI9cnRsXSAubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZSAubWF0LXNvcnQtaGVhZGVyLWFycm93e21hcmdpbjowIDAgMCA2cHh9Lm1hdC1zb3J0LWhlYWRlci1wb3NpdGlvbi1iZWZvcmUgLm1hdC1zb3J0LWhlYWRlci1hcnJvdyxbZGlyPXJ0bF0gLm1hdC1zb3J0LWhlYWRlci1hcnJvd3ttYXJnaW46MCA2cHggMCAwfS5tYXQtc29ydC1oZWFkZXItc3RlbXtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtoZWlnaHQ6MTBweDt3aWR0aDoycHg7bWFyZ2luOmF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc29ydC1oZWFkZXItc3RlbXt3aWR0aDowO2JvcmRlci1sZWZ0OnNvbGlkIDJweH0ubWF0LXNvcnQtaGVhZGVyLWluZGljYXRvcnt3aWR0aDoxMDAlO2hlaWdodDoycHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLW1pZGRsZXttYXJnaW46YXV0bztoZWlnaHQ6MnB4O3dpZHRoOjJweDtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc29ydC1oZWFkZXItcG9pbnRlci1taWRkbGV7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItdG9wOnNvbGlkIDJweDtib3JkZXItbGVmdDpzb2xpZCAycHh9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnQsLm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLXJpZ2h0e2JhY2tncm91bmQ6Y3VycmVudENvbG9yO3dpZHRoOjZweDtoZWlnaHQ6MnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItcmlnaHR7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDpzb2xpZCA2cHg7Ym9yZGVyLXRvcDpzb2xpZCAycHh9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnR7dHJhbnNmb3JtLW9yaWdpbjpyaWdodDtsZWZ0OjB9Lm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLXJpZ2h0e3RyYW5zZm9ybS1vcmlnaW46bGVmdDtyaWdodDowfVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpsJH0se3R5cGU6VWd9LHt0eXBlOmEkLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlsiTUFUX1NPUlRfSEVBREVSX0NPTFVNTl9ERUYiXX0se3R5cGU6U3J9XX0se3R5cGU6U0l9LHt0eXBlOmhnfV19KSx7YXJyb3dQb3NpdGlvbjpbe3R5cGU6eHl9XSxkaXNhYmxlQ2xlYXI6W3t0eXBlOnh5fV0saWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXQtc29ydC1oZWFkZXIiXX1dLHN0YXJ0Olt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyB1JHt9dSQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHUkKX0sdSQuybVtb2Q9YW8oe3R5cGU6dSR9KSx1JC7JtWluaj12bih7cHJvdmlkZXJzOltjJF0saW1wb3J0czpbW1dNLFhJXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHUkLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV00sWEldLGV4cG9ydHM6W2EkLG0kXSxkZWNsYXJhdGlvbnM6W2EkLG0kXSxwcm92aWRlcnM6W2MkXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHUkLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bYSQsbSRdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1dNLFhJXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVyblthJCxtJF19fSk7Y29uc3QgZiQ9W1tbImNhcHRpb24iXV0sW1siY29sZ3JvdXAiXSxbImNvbCJdXV07ZnVuY3Rpb24gZyQodCxlKXtpZigxJnQmJihSbSgwLCJ0aCIsMyksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7ZHUoInRleHQtYWxpZ24iLHQuanVzdGlmeSkscmMoMSksRHUoIiAiLHQuaGVhZGVyVGV4dCwiICIpfX1mdW5jdGlvbiBoJCh0LGUpe2lmKDEmdCYmKFJtKDAsInRkIiw0KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgpO2R1KCJ0ZXh0LWFsaWduIixuLmp1c3RpZnkpLHJjKDEpLER1KCIgIixuLmRhdGFBY2Nlc3Nvcih0LG4ubmFtZSksIiAiKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGIkKHQpe3JldHVybiBjbGFzcyBleHRlbmRzIHR7Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5fc3RpY2t5PSExLHRoaXMuX2hhc1N0aWNreUNoYW5nZWQ9ITF9Z2V0IHN0aWNreSgpe3JldHVybiB0aGlzLl9zdGlja3l9c2V0IHN0aWNreSh0KXtjb25zdCBlPXRoaXMuX3N0aWNreTt0aGlzLl9zdGlja3k9eXoodCksdGhpcy5faGFzU3RpY2t5Q2hhbmdlZD1lIT09dGhpcy5fc3RpY2t5fWhhc1N0aWNreUNoYW5nZWQoKXtjb25zdCB0PXRoaXMuX2hhc1N0aWNreUNoYW5nZWQ7cmV0dXJuIHRoaXMuX2hhc1N0aWNreUNoYW5nZWQ9ITEsdH1yZXNldFN0aWNreUNoYW5nZWQoKXt0aGlzLl9oYXNTdGlja3lDaGFuZ2VkPSExfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IHkkPW5ldyBHYSgiQ0RLX1RBQkxFIiksXyQ9bmV3IEdhKCJ0ZXh0LWNvbHVtbi1vcHRpb25zIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBDJHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnRlbXBsYXRlPXR9fUMkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDJCkoU20oWGcpKX0sQyQuybVkaXI9bG8oe3R5cGU6QyQsc2VsZWN0b3JzOltbIiIsImNka0NlbGxEZWYiLCIiXV19KSxDJC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChDJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrQ2VsbERlZl0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WGd9XX0pLG51bGwpO2NsYXNzIE0ke2NvbnN0cnVjdG9yKHQpe3RoaXMudGVtcGxhdGU9dH19TSQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE0kKShTbShYZykpfSxNJC7JtWRpcj1sbyh7dHlwZTpNJCxzZWxlY3RvcnM6W1siIiwiY2RrSGVhZGVyQ2VsbERlZiIsIiJdXX0pLE0kLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE0kLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltjZGtIZWFkZXJDZWxsRGVmXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYZ31dfSksbnVsbCk7Y2xhc3MgdiR7Y29uc3RydWN0b3IodCl7dGhpcy50ZW1wbGF0ZT10fX12JC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8diQpKFNtKFhnKSl9LHYkLsm1ZGlyPWxvKHt0eXBlOnYkLHNlbGVjdG9yczpbWyIiLCJjZGtGb290ZXJDZWxsRGVmIiwiIl1dfSksdiQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYZ31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodiQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0Zvb3RlckNlbGxEZWZdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhnfV19KSxudWxsKTtjb25zdCB4JD1iJChjbGFzc3t9KTtjbGFzcyBPJCBleHRlbmRzIHgke2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fdGFibGU9dCx0aGlzLl9zdGlja3lFbmQ9ITF9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5fbmFtZX1zZXQgbmFtZSh0KXt0aGlzLl9zZXROYW1lSW5wdXQodCl9Z2V0IHN0aWNreUVuZCgpe3JldHVybiB0aGlzLl9zdGlja3lFbmR9c2V0IHN0aWNreUVuZCh0KXtjb25zdCBlPXRoaXMuX3N0aWNreUVuZDt0aGlzLl9zdGlja3lFbmQ9eXoodCksdGhpcy5faGFzU3RpY2t5Q2hhbmdlZD1lIT09dGhpcy5fc3RpY2t5RW5kfV91cGRhdGVDb2x1bW5Dc3NDbGFzc05hbWUoKXt0aGlzLl9jb2x1bW5Dc3NDbGFzc05hbWU9W2BjZGstY29sdW1uLSR7dGhpcy5jc3NDbGFzc0ZyaWVuZGx5TmFtZX1gXX1fc2V0TmFtZUlucHV0KHQpe3QmJih0aGlzLl9uYW1lPXQsdGhpcy5jc3NDbGFzc0ZyaWVuZGx5TmFtZT10LnJlcGxhY2UoL1teYS16MC05Xy1dL2dpLCItIiksdGhpcy5fdXBkYXRlQ29sdW1uQ3NzQ2xhc3NOYW1lKCkpfX1PJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TyQpKFNtKHkkLDgpKX0sTyQuybVkaXI9bG8oe3R5cGU6TyQsc2VsZWN0b3JzOltbIiIsImNka0NvbHVtbkRlZiIsIiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJigkaChvLEMkLDUpLCRoKG8sTSQsNSksJGgobyx2JCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5jZWxsPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLmhlYWRlckNlbGw9dC5maXJzdCksSmgodD10YigpKSYmKG4uZm9vdGVyQ2VsbD10LmZpcnN0KX19LGlucHV0czp7c3RpY2t5OiJzdGlja3kiLG5hbWU6WyJjZGtDb2x1bW5EZWYiLCJuYW1lIl0sc3RpY2t5RW5kOiJzdGlja3lFbmQifSxmZWF0dXJlczpbcGcoW3twcm92aWRlOiJNQVRfU09SVF9IRUFERVJfQ09MVU1OX0RFRiIsdXNlRXhpc3Rpbmc6TyR9XSkseHBdfSksTyQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbeSRdfSx7dHlwZTpTcn1dfV0sTyQucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb2x1bW5EZWYiXX1dLHN0aWNreUVuZDpbe3R5cGU6eHksYXJnczpbInN0aWNreUVuZCJdfV0sY2VsbDpbe3R5cGU6cWEsYXJnczpbQyRdfV0saGVhZGVyQ2VsbDpbe3R5cGU6cWEsYXJnczpbTSRdfV0sZm9vdGVyQ2VsbDpbe3R5cGU6cWEsYXJnczpbdiRdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTyQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0NvbHVtbkRlZl0iLGlucHV0czpbInN0aWNreSJdLHByb3ZpZGVyczpbe3Byb3ZpZGU6Ik1BVF9TT1JUX0hFQURFUl9DT0xVTU5fREVGIix1c2VFeGlzdGluZzpPJH1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3kkXX0se3R5cGU6U3J9XX1dfSkse25hbWU6W3t0eXBlOnh5LGFyZ3M6WyJjZGtDb2x1bW5EZWYiXX1dLHN0aWNreUVuZDpbe3R5cGU6eHksYXJnczpbInN0aWNreUVuZCJdfV0sY2VsbDpbe3R5cGU6cWEsYXJnczpbQyRdfV0saGVhZGVyQ2VsbDpbe3R5cGU6cWEsYXJnczpbTSRdfV0sZm9vdGVyQ2VsbDpbe3R5cGU6cWEsYXJnczpbdiRdfV19KTtjbGFzcyBQJHtjb25zdHJ1Y3Rvcih0LGUpe2NvbnN0IG49ZS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtmb3IoY29uc3QgZSBvZiB0Ll9jb2x1bW5Dc3NDbGFzc05hbWUpbi5hZGQoZSl9fWNsYXNzIHckIGV4dGVuZHMgUCR7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpfX13JC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dyQpKFNtKE8kKSxTbShoZykpfSx3JC7JtWRpcj1sbyh7dHlwZTp3JCxzZWxlY3RvcnM6W1siY2RrLWhlYWRlci1jZWxsIl0sWyJ0aCIsImNkay1oZWFkZXItY2VsbCIsIiJdXSxob3N0QXR0cnM6WyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJjZGstaGVhZGVyLWNlbGwiXSxmZWF0dXJlczpbeHBdfSksdyQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpPJH0se3R5cGU6aGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHckLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImNkay1oZWFkZXItY2VsbCwgdGhbY2RrLWhlYWRlci1jZWxsXSIsaG9zdDp7Y2xhc3M6ImNkay1oZWFkZXItY2VsbCIscm9sZToiY29sdW1uaGVhZGVyIn19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpPJH0se3R5cGU6aGd9XX0pLG51bGwpO2NsYXNzIGskIGV4dGVuZHMgUCR7Y29uc3RydWN0b3IodCxlKXt2YXIgbjtpZihzdXBlcih0LGUpLDE9PT0obnVsbD09PShuPXQuX3RhYmxlKXx8dm9pZCAwPT09bj92b2lkIDA6bi5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5vZGVUeXBlKSl7Y29uc3Qgbj10Ll90YWJsZS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgicm9sZSIpO2UubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJncmlkIj09PW58fCJ0cmVlZ3JpZCI9PT1uPyJncmlkY2VsbCI6ImNlbGwiKX19fWskLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrJCkoU20oTyQpLFNtKGhnKSl9LGskLsm1ZGlyPWxvKHt0eXBlOmskLHNlbGVjdG9yczpbWyJjZGstZm9vdGVyLWNlbGwiXSxbInRkIiwiY2RrLWZvb3Rlci1jZWxsIiwiIl1dLGhvc3RBdHRyczpbMSwiY2RrLWZvb3Rlci1jZWxsIl0sZmVhdHVyZXM6W3hwXX0pLGskLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6TyR9LHt0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChrJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJjZGstZm9vdGVyLWNlbGwsIHRkW2Nkay1mb290ZXItY2VsbF0iLGhvc3Q6e2NsYXNzOiJjZGstZm9vdGVyLWNlbGwifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOk8kfSx7dHlwZTpoZ31dfSksbnVsbCk7Y2xhc3MgUyQgZXh0ZW5kcyBQJHtjb25zdHJ1Y3Rvcih0LGUpe3ZhciBuO2lmKHN1cGVyKHQsZSksMT09PShudWxsPT09KG49dC5fdGFibGUpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubm9kZVR5cGUpKXtjb25zdCBuPXQuX3RhYmxlLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJyb2xlIik7ZS5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgicm9sZSIsImdyaWQiPT09bnx8InRyZWVncmlkIj09PW4/ImdyaWRjZWxsIjoiY2VsbCIpfX19UyQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFMkKShTbShPJCksU20oaGcpKX0sUyQuybVkaXI9bG8oe3R5cGU6UyQsc2VsZWN0b3JzOltbImNkay1jZWxsIl0sWyJ0ZCIsImNkay1jZWxsIiwiIl1dLGhvc3RBdHRyczpbMSwiY2RrLWNlbGwiXSxmZWF0dXJlczpbeHBdfSksUyQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpPJH0se3R5cGU6aGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFMkLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6ImNkay1jZWxsLCB0ZFtjZGstY2VsbF0iLGhvc3Q6e2NsYXNzOiJjZGstY2VsbCJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6TyR9LHt0eXBlOmhnfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEQke2NvbnN0cnVjdG9yKCl7dGhpcy50YXNrcz1bXSx0aGlzLmVuZFRhc2tzPVtdfX1jb25zdCBFJD1uZXcgR2EoIl9DT0FMRVNDRURfU1RZTEVfU0NIRURVTEVSIik7Y2xhc3MgUiR7Y29uc3RydWN0b3IodCl7dGhpcy5fbmdab25lPXQsdGhpcy5fY3VycmVudFNjaGVkdWxlPW51bGwsdGhpcy5fZGVzdHJveWVkPW5ldyBJfXNjaGVkdWxlKHQpe3RoaXMuX2NyZWF0ZVNjaGVkdWxlSWZOZWVkZWQoKSx0aGlzLl9jdXJyZW50U2NoZWR1bGUudGFza3MucHVzaCh0KX1zY2hlZHVsZUVuZCh0KXt0aGlzLl9jcmVhdGVTY2hlZHVsZUlmTmVlZGVkKCksdGhpcy5fY3VycmVudFNjaGVkdWxlLmVuZFRhc2tzLnB1c2godCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpfV9jcmVhdGVTY2hlZHVsZUlmTmVlZGVkKCl7dGhpcy5fY3VycmVudFNjaGVkdWxlfHwodGhpcy5fY3VycmVudFNjaGVkdWxlPW5ldyBEJCx0aGlzLl9nZXRTY2hlZHVsZU9ic2VydmFibGUoKS5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9Pntmb3IoO3RoaXMuX2N1cnJlbnRTY2hlZHVsZS50YXNrcy5sZW5ndGh8fHRoaXMuX2N1cnJlbnRTY2hlZHVsZS5lbmRUYXNrcy5sZW5ndGg7KXtjb25zdCB0PXRoaXMuX2N1cnJlbnRTY2hlZHVsZTt0aGlzLl9jdXJyZW50U2NoZWR1bGU9bmV3IEQkO2Zvcihjb25zdCBlIG9mIHQudGFza3MpZSgpO2Zvcihjb25zdCBlIG9mIHQuZW5kVGFza3MpZSgpfXRoaXMuX2N1cnJlbnRTY2hlZHVsZT1udWxsfSkpKX1fZ2V0U2NoZWR1bGVPYnNlcnZhYmxlKCl7cmV0dXJuIHRoaXMuX25nWm9uZS5pc1N0YWJsZT9DdChQcm9taXNlLnJlc29sdmUodm9pZCAwKSk6dGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoYmUoMSkpfX1SJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UiQpKHZyKGFfKSl9LFIkLsm1cHJvdj1Nbih7dG9rZW46UiQsZmFjdG9yeTpSJC7JtWZhY30pLFIkLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6YV99XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFIkLFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTphX31dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBBJD0iPG5nLWNvbnRhaW5lciBjZGtDZWxsT3V0bGV0PjwvbmctY29udGFpbmVyPiI7Y2xhc3MgVCR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnRlbXBsYXRlPXQsdGhpcy5fZGlmZmVycz1lfW5nT25DaGFuZ2VzKHQpe2lmKCF0aGlzLl9jb2x1bW5zRGlmZmVyKXtjb25zdCBlPXQuY29sdW1ucyYmdC5jb2x1bW5zLmN1cnJlbnRWYWx1ZXx8W107dGhpcy5fY29sdW1uc0RpZmZlcj10aGlzLl9kaWZmZXJzLmZpbmQoZSkuY3JlYXRlKCksdGhpcy5fY29sdW1uc0RpZmZlci5kaWZmKGUpfX1nZXRDb2x1bW5zRGlmZigpe3JldHVybiB0aGlzLl9jb2x1bW5zRGlmZmVyLmRpZmYodGhpcy5jb2x1bW5zKX1leHRyYWN0Q2VsbFRlbXBsYXRlKHQpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgeiQ/dC5oZWFkZXJDZWxsLnRlbXBsYXRlOnRoaXMgaW5zdGFuY2VvZiBIJD90LmZvb3RlckNlbGwudGVtcGxhdGU6dC5jZWxsLnRlbXBsYXRlfX1UJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VCQpKFNtKFhnKSxTbShIZykpfSxUJC7JtWRpcj1sbyh7dHlwZTpUJCxmZWF0dXJlczpbQm9dfSksVCQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYZ30se3R5cGU6SGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFQkLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYZ30se3R5cGU6SGd9XX0pLG51bGwpO2NvbnN0IE4kPWIkKGNsYXNzIGV4dGVuZHMgVCR7fSk7Y2xhc3MgeiQgZXh0ZW5kcyBOJHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlKSx0aGlzLl90YWJsZT1ufW5nT25DaGFuZ2VzKHQpe3N1cGVyLm5nT25DaGFuZ2VzKHQpfX16JC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eiQpKFNtKFhnKSxTbShIZyksU20oeSQsOCkpfSx6JC7JtWRpcj1sbyh7dHlwZTp6JCxzZWxlY3RvcnM6W1siIiwiY2RrSGVhZGVyUm93RGVmIiwiIl1dLGlucHV0czp7Y29sdW1uczpbImNka0hlYWRlclJvd0RlZiIsImNvbHVtbnMiXSxzdGlja3k6WyJjZGtIZWFkZXJSb3dEZWZTdGlja3kiLCJzdGlja3kiXX0sZmVhdHVyZXM6W3hwLEJvXX0pLHokLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WGd9LHt0eXBlOkhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbeSRdfSx7dHlwZTpTcn1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh6JCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrSGVhZGVyUm93RGVmXSIsaW5wdXRzOlsiY29sdW1uczogY2RrSGVhZGVyUm93RGVmIiwic3RpY2t5OiBjZGtIZWFkZXJSb3dEZWZTdGlja3kiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhnfSx7dHlwZTpIZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3kkXX0se3R5cGU6U3J9XX1dfSksbnVsbCk7Y29uc3QgSSQ9YiQoY2xhc3MgZXh0ZW5kcyBUJHt9KTtjbGFzcyBIJCBleHRlbmRzIEkke2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUpLHRoaXMuX3RhYmxlPW59bmdPbkNoYW5nZXModCl7c3VwZXIubmdPbkNoYW5nZXModCl9fUgkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIJCkoU20oWGcpLFNtKEhnKSxTbSh5JCw4KSl9LEgkLsm1ZGlyPWxvKHt0eXBlOkgkLHNlbGVjdG9yczpbWyIiLCJjZGtGb290ZXJSb3dEZWYiLCIiXV0saW5wdXRzOntjb2x1bW5zOlsiY2RrRm9vdGVyUm93RGVmIiwiY29sdW1ucyJdLHN0aWNreTpbImNka0Zvb3RlclJvd0RlZlN0aWNreSIsInN0aWNreSJdfSxmZWF0dXJlczpbeHAsQm9dfSksSCQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYZ30se3R5cGU6SGd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlt5JF19LHt0eXBlOlNyfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEgkLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltjZGtGb290ZXJSb3dEZWZdIixpbnB1dHM6WyJjb2x1bW5zOiBjZGtGb290ZXJSb3dEZWYiLCJzdGlja3k6IGNka0Zvb3RlclJvd0RlZlN0aWNreSJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WGd9LHt0eXBlOkhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbeSRdfSx7dHlwZTpTcn1dfV19KSxudWxsKTtjbGFzcyBGJCBleHRlbmRzIFQke2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUpLHRoaXMuX3RhYmxlPW59fUYkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGJCkoU20oWGcpLFNtKEhnKSxTbSh5JCw4KSl9LEYkLsm1ZGlyPWxvKHt0eXBlOkYkLHNlbGVjdG9yczpbWyIiLCJjZGtSb3dEZWYiLCIiXV0saW5wdXRzOntjb2x1bW5zOlsiY2RrUm93RGVmQ29sdW1ucyIsImNvbHVtbnMiXSx3aGVuOlsiY2RrUm93RGVmV2hlbiIsIndoZW4iXX0sZmVhdHVyZXM6W3hwXX0pLEYkLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6WGd9LHt0eXBlOkhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbeSRdfSx7dHlwZTpTcn1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChGJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY2RrUm93RGVmXSIsaW5wdXRzOlsiY29sdW1uczogY2RrUm93RGVmQ29sdW1ucyIsIndoZW46IGNka1Jvd0RlZldoZW4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhnfSx7dHlwZTpIZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3kkXX0se3R5cGU6U3J9XX1dfSksbnVsbCk7Y2xhc3MgTCR7Y29uc3RydWN0b3IodCl7dGhpcy5fdmlld0NvbnRhaW5lcj10LEwkLm1vc3RSZWNlbnRDZWxsT3V0bGV0PXRoaXN9bmdPbkRlc3Ryb3koKXtMJC5tb3N0UmVjZW50Q2VsbE91dGxldD09PXRoaXMmJihMJC5tb3N0UmVjZW50Q2VsbE91dGxldD1udWxsKX19TCQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEwkKShTbShlaCkpfSxMJC7JtWRpcj1sbyh7dHlwZTpMJCxzZWxlY3RvcnM6W1siIiwiY2RrQ2VsbE91dGxldCIsIiJdXX0pLEwkLm1vc3RSZWNlbnRDZWxsT3V0bGV0PW51bGwsTCQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTCQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0NlbGxPdXRsZXRdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofV19KSxudWxsKTtjbGFzcyBCJHt9QiQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEIkKX0sQiQuybVjbXA9dG8oe3R5cGU6QiQsc2VsZWN0b3JzOltbImNkay1oZWFkZXItcm93Il0sWyJ0ciIsImNkay1oZWFkZXItcm93IiwiIl1dLGhvc3RBdHRyczpbInJvbGUiLCJyb3ciLDEsImNkay1oZWFkZXItcm93Il0sZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbImNka0NlbGxPdXRsZXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmSW0oMCwwKX0sZGlyZWN0aXZlczpbTCRdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQiQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiY2RrLWhlYWRlci1yb3csIHRyW2Nkay1oZWFkZXItcm93XSIsdGVtcGxhdGU6QSQsaG9zdDp7Y2xhc3M6ImNkay1oZWFkZXItcm93Iixyb2xlOiJyb3cifSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxlbmNhcHN1bGF0aW9uOkhuLk5vbmV9XX1dLG51bGwsbnVsbCk7Y2xhc3MgViR7fVYkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxWJCl9LFYkLsm1Y21wPXRvKHt0eXBlOlYkLHNlbGVjdG9yczpbWyJjZGstZm9vdGVyLXJvdyJdLFsidHIiLCJjZGstZm9vdGVyLXJvdyIsIiJdXSxob3N0QXR0cnM6WyJyb2xlIiwicm93IiwxLCJjZGstZm9vdGVyLXJvdyJdLGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJjZGtDZWxsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJkltKDAsMCl9LGRpcmVjdGl2ZXM6W0wkXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFYkLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImNkay1mb290ZXItcm93LCB0cltjZGstZm9vdGVyLXJvd10iLHRlbXBsYXRlOkEkLGhvc3Q6e2NsYXNzOiJjZGstZm9vdGVyLXJvdyIscm9sZToicm93In0sY2hhbmdlRGV0ZWN0aW9uOnpuLkRlZmF1bHQsZW5jYXBzdWxhdGlvbjpIbi5Ob25lfV19XSxudWxsLG51bGwpO2NsYXNzIGoke31qJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aiQpfSxqJC7JtWNtcD10byh7dHlwZTpqJCxzZWxlY3RvcnM6W1siY2RrLXJvdyJdLFsidHIiLCJjZGstcm93IiwiIl1dLGhvc3RBdHRyczpbInJvbGUiLCJyb3ciLDEsImNkay1yb3ciXSxkZWNsczoxLHZhcnM6MCxjb25zdHM6W1siY2RrQ2VsbE91dGxldCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZJbSgwLDApfSxkaXJlY3RpdmVzOltMJF0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChqJCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJjZGstcm93LCB0cltjZGstcm93XSIsdGVtcGxhdGU6QSQsaG9zdDp7Y2xhc3M6ImNkay1yb3ciLHJvbGU6InJvdyJ9LGNoYW5nZURldGVjdGlvbjp6bi5EZWZhdWx0LGVuY2Fwc3VsYXRpb246SG4uTm9uZX1dfV0sbnVsbCxudWxsKTtjbGFzcyBVJHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnRlbXBsYXRlUmVmPXR9fVUkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxVJCkoU20oWGcpKX0sVSQuybVkaXI9bG8oe3R5cGU6VSQsc2VsZWN0b3JzOltbIm5nLXRlbXBsYXRlIiwiY2RrTm9EYXRhUm93IiwiIl1dfSksVSQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYZ31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVSQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibmctdGVtcGxhdGVbY2RrTm9EYXRhUm93XSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYZ31dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBHJD1bInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCJdO2NsYXNzIFcke2NvbnN0cnVjdG9yKHQsZSxuLG8saT0hMCxhPSEwLHIpe3RoaXMuX2lzTmF0aXZlSHRtbFRhYmxlPXQsdGhpcy5fc3RpY2tDZWxsQ3NzPWUsdGhpcy5kaXJlY3Rpb249bix0aGlzLl9jb2FsZXNjZWRTdHlsZVNjaGVkdWxlcj1vLHRoaXMuX2lzQnJvd3Nlcj1pLHRoaXMuX25lZWRzUG9zaXRpb25TdGlja3lPbkVsZW1lbnQ9YSx0aGlzLl9wb3NpdGlvbkxpc3RlbmVyPXIsdGhpcy5fY2FjaGVkQ2VsbFdpZHRocz1bXSx0aGlzLl9ib3JkZXJDZWxsQ3NzPXt0b3A6YCR7ZX0tYm9yZGVyLWVsZW0tdG9wYCxib3R0b206YCR7ZX0tYm9yZGVyLWVsZW0tYm90dG9tYCxsZWZ0OmAke2V9LWJvcmRlci1lbGVtLWxlZnRgLHJpZ2h0OmAke2V9LWJvcmRlci1lbGVtLXJpZ2h0YH19Y2xlYXJTdGlja3lQb3NpdGlvbmluZyh0LGUpe2NvbnN0IG49W107Zm9yKGNvbnN0IGUgb2YgdClpZihlLm5vZGVUeXBlPT09ZS5FTEVNRU5UX05PREUpe24ucHVzaChlKTtmb3IobGV0IHQ9MDt0PGUuY2hpbGRyZW4ubGVuZ3RoO3QrKyluLnB1c2goZS5jaGlsZHJlblt0XSl9dGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXIuc2NoZWR1bGUoKCgpPT57Zm9yKGNvbnN0IHQgb2Ygbil0aGlzLl9yZW1vdmVTdGlja3lTdHlsZSh0LGUpfSkpfXVwZGF0ZVN0aWNreUNvbHVtbnModCxlLG4sbz0hMCl7aWYoIXQubGVuZ3RofHwhdGhpcy5faXNCcm93c2VyfHwhZS5zb21lKCh0PT50KSkmJiFuLnNvbWUoKHQ9PnQpKSlyZXR1cm4gdm9pZCh0aGlzLl9wb3NpdGlvbkxpc3RlbmVyJiYodGhpcy5fcG9zaXRpb25MaXN0ZW5lci5zdGlja3lDb2x1bW5zVXBkYXRlZCh7c2l6ZXM6W119KSx0aGlzLl9wb3NpdGlvbkxpc3RlbmVyLnN0aWNreUVuZENvbHVtbnNVcGRhdGVkKHtzaXplczpbXX0pKSk7Y29uc3QgaT10WzBdLGE9aS5jaGlsZHJlbi5sZW5ndGgscj10aGlzLl9nZXRDZWxsV2lkdGhzKGksbykscz10aGlzLl9nZXRTdGlja3lTdGFydENvbHVtblBvc2l0aW9ucyhyLGUpLGw9dGhpcy5fZ2V0U3RpY2t5RW5kQ29sdW1uUG9zaXRpb25zKHIsbiksYz1lLmxhc3RJbmRleE9mKCEwKSxkPW4uaW5kZXhPZighMCk7dGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXIuc2NoZWR1bGUoKCgpPT57Y29uc3Qgbz0icnRsIj09PXRoaXMuZGlyZWN0aW9uLGk9bz8icmlnaHQiOiJsZWZ0IixwPW8/ImxlZnQiOiJyaWdodCI7Zm9yKGNvbnN0IG8gb2YgdClmb3IobGV0IHQ9MDt0PGE7dCsrKXtjb25zdCBhPW8uY2hpbGRyZW5bdF07ZVt0XSYmdGhpcy5fYWRkU3RpY2t5U3R5bGUoYSxpLHNbdF0sdD09PWMpLG5bdF0mJnRoaXMuX2FkZFN0aWNreVN0eWxlKGEscCxsW3RdLHQ9PT1kKX10aGlzLl9wb3NpdGlvbkxpc3RlbmVyJiYodGhpcy5fcG9zaXRpb25MaXN0ZW5lci5zdGlja3lDb2x1bW5zVXBkYXRlZCh7c2l6ZXM6LTE9PT1jP1tdOnIuc2xpY2UoMCxjKzEpLm1hcCgoKHQsbik9PmVbbl0/dDpudWxsKSl9KSx0aGlzLl9wb3NpdGlvbkxpc3RlbmVyLnN0aWNreUVuZENvbHVtbnNVcGRhdGVkKHtzaXplczotMT09PWQ/W106ci5zbGljZShkKS5tYXAoKCh0LGUpPT5uW2UrZF0/dDpudWxsKSkucmV2ZXJzZSgpfSkpfSkpfXN0aWNrUm93cyh0LGUsbil7aWYoIXRoaXMuX2lzQnJvd3NlcilyZXR1cm47Y29uc3Qgbz0iYm90dG9tIj09PW4/dC5zbGljZSgpLnJldmVyc2UoKTp0LGk9ImJvdHRvbSI9PT1uP2Uuc2xpY2UoKS5yZXZlcnNlKCk6ZSxhPVtdLHI9W10scz1bXTtmb3IobGV0IHQ9MCxlPTA7dDxvLmxlbmd0aDt0Kyspe2lmKCFpW3RdKWNvbnRpbnVlO2FbdF09ZTtjb25zdCBuPW9bdF07c1t0XT10aGlzLl9pc05hdGl2ZUh0bWxUYWJsZT9BcnJheS5mcm9tKG4uY2hpbGRyZW4pOltuXTtjb25zdCBsPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O2UrPWwsclt0XT1sfWNvbnN0IGw9aS5sYXN0SW5kZXhPZighMCk7dGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXIuc2NoZWR1bGUoKCgpPT57dmFyIHQsZTtmb3IobGV0IHQ9MDt0PG8ubGVuZ3RoO3QrKyl7aWYoIWlbdF0pY29udGludWU7Y29uc3QgZT1hW3RdLG89dD09PWw7Zm9yKGNvbnN0IGkgb2Ygc1t0XSl0aGlzLl9hZGRTdGlja3lTdHlsZShpLG4sZSxvKX0idG9wIj09PW4/bnVsbD09PSh0PXRoaXMuX3Bvc2l0aW9uTGlzdGVuZXIpfHx2b2lkIDA9PT10fHx0LnN0aWNreUhlYWRlclJvd3NVcGRhdGVkKHtzaXplczpyLG9mZnNldHM6YSxlbGVtZW50czpzfSk6bnVsbD09PShlPXRoaXMuX3Bvc2l0aW9uTGlzdGVuZXIpfHx2b2lkIDA9PT1lfHxlLnN0aWNreUZvb3RlclJvd3NVcGRhdGVkKHtzaXplczpyLG9mZnNldHM6YSxlbGVtZW50czpzfSl9KSl9dXBkYXRlU3RpY2t5Rm9vdGVyQ29udGFpbmVyKHQsZSl7aWYoIXRoaXMuX2lzTmF0aXZlSHRtbFRhYmxlKXJldHVybjtjb25zdCBuPXQucXVlcnlTZWxlY3RvcigidGZvb3QiKTt0aGlzLl9jb2FsZXNjZWRTdHlsZVNjaGVkdWxlci5zY2hlZHVsZSgoKCk9PntlLnNvbWUoKHQ9PiF0KSk/dGhpcy5fcmVtb3ZlU3RpY2t5U3R5bGUobixbImJvdHRvbSJdKTp0aGlzLl9hZGRTdGlja3lTdHlsZShuLCJib3R0b20iLDAsITEpfSkpfV9yZW1vdmVTdGlja3lTdHlsZSh0LGUpe2Zvcihjb25zdCBuIG9mIGUpdC5zdHlsZVtuXT0iIix0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fYm9yZGVyQ2VsbENzc1tuXSk7RyQuc29tZSgobj0+LTE9PT1lLmluZGV4T2YobikmJnQuc3R5bGVbbl0pKT90LnN0eWxlLnpJbmRleD10aGlzLl9nZXRDYWxjdWxhdGVkWkluZGV4KHQpOih0LnN0eWxlLnpJbmRleD0iIix0aGlzLl9uZWVkc1Bvc2l0aW9uU3RpY2t5T25FbGVtZW50JiYodC5zdHlsZS5wb3NpdGlvbj0iIiksdC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX3N0aWNrQ2VsbENzcykpfV9hZGRTdGlja3lTdHlsZSh0LGUsbixvKXt0LmNsYXNzTGlzdC5hZGQodGhpcy5fc3RpY2tDZWxsQ3NzKSxvJiZ0LmNsYXNzTGlzdC5hZGQodGhpcy5fYm9yZGVyQ2VsbENzc1tlXSksdC5zdHlsZVtlXT1gJHtufXB4YCx0LnN0eWxlLnpJbmRleD10aGlzLl9nZXRDYWxjdWxhdGVkWkluZGV4KHQpLHRoaXMuX25lZWRzUG9zaXRpb25TdGlja3lPbkVsZW1lbnQmJih0LnN0eWxlLmNzc1RleHQrPSJwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7IHBvc2l0aW9uOiBzdGlja3k7ICIpfV9nZXRDYWxjdWxhdGVkWkluZGV4KHQpe2NvbnN0IGU9e3RvcDoxMDAsYm90dG9tOjEwLGxlZnQ6MSxyaWdodDoxfTtsZXQgbj0wO2Zvcihjb25zdCBvIG9mIEckKXQuc3R5bGVbb10mJihuKz1lW29dKTtyZXR1cm4gbj9gJHtufWA6IiJ9X2dldENlbGxXaWR0aHModCxlPSEwKXtpZighZSYmdGhpcy5fY2FjaGVkQ2VsbFdpZHRocy5sZW5ndGgpcmV0dXJuIHRoaXMuX2NhY2hlZENlbGxXaWR0aHM7Y29uc3Qgbj1bXSxvPXQuY2hpbGRyZW47Zm9yKGxldCB0PTA7dDxvLmxlbmd0aDt0Kyspbi5wdXNoKG9bdF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpO3JldHVybiB0aGlzLl9jYWNoZWRDZWxsV2lkdGhzPW4sbn1fZ2V0U3RpY2t5U3RhcnRDb2x1bW5Qb3NpdGlvbnModCxlKXtjb25zdCBuPVtdO2xldCBvPTA7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspZVtpXSYmKG5baV09byxvKz10W2ldKTtyZXR1cm4gbn1fZ2V0U3RpY2t5RW5kQ29sdW1uUG9zaXRpb25zKHQsZSl7Y29uc3Qgbj1bXTtsZXQgbz0wO2ZvcihsZXQgaT10Lmxlbmd0aDtpPjA7aS0tKWVbaV0mJihuW2ldPW8sbys9dFtpXSk7cmV0dXJuIG59fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBZJCh0KXtyZXR1cm4gRXJyb3IoYENvdWxkIG5vdCBmaW5kIGNvbHVtbiB3aXRoIGlkICIke3R9Ii5gKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHEkPW5ldyBHYSgiQ0RLX1NQTCIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBaJHt9WiQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFokKX0sWiQuybVkaXI9bG8oe3R5cGU6WiQsc2VsZWN0b3JzOltbImNkay10YWJsZSIsInJlY3ljbGVSb3dzIiwiIl0sWyJ0YWJsZSIsImNkay10YWJsZSIsIiIsInJlY3ljbGVSb3dzIiwiIl1dLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6YUYsdXNlQ2xhc3M6bkZ9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChaJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJjZGstdGFibGVbcmVjeWNsZVJvd3NdLCB0YWJsZVtjZGstdGFibGVdW3JlY3ljbGVSb3dzXSIscHJvdmlkZXJzOlt7cHJvdmlkZTphRix1c2VDbGFzczpuRn1dfV19XSxudWxsLG51bGwpO2NsYXNzIFgke2NvbnN0cnVjdG9yKHQsZSl7dGhpcy52aWV3Q29udGFpbmVyPXQsdGhpcy5lbGVtZW50UmVmPWV9fVgkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYJCkoU20oZWgpLFNtKGhnKSl9LFgkLsm1ZGlyPWxvKHt0eXBlOlgkLHNlbGVjdG9yczpbWyIiLCJyb3dPdXRsZXQiLCIiXV19KSxYJC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmVofSx7dHlwZTpoZ31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWCQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW3Jvd091dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZWh9LHt0eXBlOmhnfV19KSxudWxsKTtjbGFzcyBLJHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMudmlld0NvbnRhaW5lcj10LHRoaXMuZWxlbWVudFJlZj1lfX1LJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SyQpKFNtKGVoKSxTbShoZykpfSxLJC7JtWRpcj1sbyh7dHlwZTpLJCxzZWxlY3RvcnM6W1siIiwiaGVhZGVyUm93T3V0bGV0IiwiIl1dfSksSyQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTplaH0se3R5cGU6aGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEskLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IltoZWFkZXJSb3dPdXRsZXRdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVofSx7dHlwZTpoZ31dfSksbnVsbCk7Y2xhc3MgSiR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnZpZXdDb250YWluZXI9dCx0aGlzLmVsZW1lbnRSZWY9ZX19SiQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEokKShTbShlaCksU20oaGcpKX0sSiQuybVkaXI9bG8oe3R5cGU6SiQsc2VsZWN0b3JzOltbIiIsImZvb3RlclJvd091dGxldCIsIiJdXX0pLEokLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6ZWh9LHt0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChKJCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbZm9vdGVyUm93T3V0bGV0XSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTplaH0se3R5cGU6aGd9XX0pLG51bGwpO2NsYXNzIFEke2NvbnN0cnVjdG9yKHQsZSl7dGhpcy52aWV3Q29udGFpbmVyPXQsdGhpcy5lbGVtZW50UmVmPWV9fVEkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxRJCkoU20oZWgpLFNtKGhnKSl9LFEkLsm1ZGlyPWxvKHt0eXBlOlEkLHNlbGVjdG9yczpbWyIiLCJub0RhdGFSb3dPdXRsZXQiLCIiXV19KSxRJC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmVofSx7dHlwZTpoZ31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUSQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW25vRGF0YVJvd091dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZWh9LHt0eXBlOmhnfV19KSxudWxsKTtjb25zdCAkJD0nXG4gIDxuZy1jb250ZW50IHNlbGVjdD0iY2FwdGlvbiI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9ImNvbGdyb3VwLCBjb2wiPjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRhaW5lciBoZWFkZXJSb3dPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgcm93T3V0bGV0PjwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIG5vRGF0YVJvd091dGxldD48L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBmb290ZXJSb3dPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4nO2NsYXNzIHQwe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMsZCl7dGhpcy5fZGlmZmVycz10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fZWxlbWVudFJlZj1uLHRoaXMuX2Rpcj1pLHRoaXMuX3BsYXRmb3JtPXIsdGhpcy5fdmlld1JlcGVhdGVyPXMsdGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXI9bCx0aGlzLl92aWV3cG9ydFJ1bGVyPWMsdGhpcy5fc3RpY2t5UG9zaXRpb25pbmdMaXN0ZW5lcj1kLHRoaXMuX29uRGVzdHJveT1uZXcgSSx0aGlzLl9jb2x1bW5EZWZzQnlOYW1lPW5ldyBNYXAsdGhpcy5fY3VzdG9tQ29sdW1uRGVmcz1uZXcgU2V0LHRoaXMuX2N1c3RvbVJvd0RlZnM9bmV3IFNldCx0aGlzLl9jdXN0b21IZWFkZXJSb3dEZWZzPW5ldyBTZXQsdGhpcy5fY3VzdG9tRm9vdGVyUm93RGVmcz1uZXcgU2V0LHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQ9ITAsdGhpcy5fZm9vdGVyUm93RGVmQ2hhbmdlZD0hMCx0aGlzLl9zdGlja3lDb2x1bW5TdHlsZXNOZWVkUmVzZXQ9ITAsdGhpcy5fZm9yY2VSZWNhbGN1bGF0ZUNlbGxXaWR0aHM9ITAsdGhpcy5fY2FjaGVkUmVuZGVyUm93c01hcD1uZXcgTWFwLHRoaXMuc3RpY2t5Q3NzQ2xhc3M9ImNkay10YWJsZS1zdGlja3kiLHRoaXMubmVlZHNQb3NpdGlvblN0aWNreU9uRWxlbWVudD0hMCx0aGlzLl9pc1Nob3dpbmdOb0RhdGFSb3c9ITEsdGhpcy5fbXVsdGlUZW1wbGF0ZURhdGFSb3dzPSExLHRoaXMuX2ZpeGVkTGF5b3V0PSExLHRoaXMuY29udGVudENoYW5nZWQ9bmV3IExoLHRoaXMudmlld0NoYW5nZT1uZXcgRih7c3RhcnQ6MCxlbmQ6TnVtYmVyLk1BWF9WQUxVRX0pLG98fHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJ0YWJsZSIpLHRoaXMuX2RvY3VtZW50PWEsdGhpcy5faXNOYXRpdmVIdG1sVGFibGU9IlRBQkxFIj09PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZX1nZXQgdHJhY2tCeSgpe3JldHVybiB0aGlzLl90cmFja0J5Rm59c2V0IHRyYWNrQnkodCl7InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fG51bGw9PXR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0fHxjb25zb2xlLndhcm4oYHRyYWNrQnkgbXVzdCBiZSBhIGZ1bmN0aW9uLCBidXQgcmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeSh0KX0uYCksdGhpcy5fdHJhY2tCeUZuPXR9Z2V0IGRhdGFTb3VyY2UoKXtyZXR1cm4gdGhpcy5fZGF0YVNvdXJjZX1zZXQgZGF0YVNvdXJjZSh0KXt0aGlzLl9kYXRhU291cmNlIT09dCYmdGhpcy5fc3dpdGNoRGF0YVNvdXJjZSh0KX1nZXQgbXVsdGlUZW1wbGF0ZURhdGFSb3dzKCl7cmV0dXJuIHRoaXMuX211bHRpVGVtcGxhdGVEYXRhUm93c31zZXQgbXVsdGlUZW1wbGF0ZURhdGFSb3dzKHQpe3RoaXMuX211bHRpVGVtcGxhdGVEYXRhUm93cz15eih0KSx0aGlzLl9yb3dPdXRsZXQmJnRoaXMuX3Jvd091dGxldC52aWV3Q29udGFpbmVyLmxlbmd0aCYmKHRoaXMuX2ZvcmNlUmVuZGVyRGF0YVJvd3MoKSx0aGlzLnVwZGF0ZVN0aWNreUNvbHVtblN0eWxlcygpKX1nZXQgZml4ZWRMYXlvdXQoKXtyZXR1cm4gdGhpcy5fZml4ZWRMYXlvdXR9c2V0IGZpeGVkTGF5b3V0KHQpe3RoaXMuX2ZpeGVkTGF5b3V0PXl6KHQpLHRoaXMuX2ZvcmNlUmVjYWxjdWxhdGVDZWxsV2lkdGhzPSEwLHRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldD0hMH1uZ09uSW5pdCgpe3RoaXMuX3NldHVwU3RpY2t5U3R5bGVyKCksdGhpcy5faXNOYXRpdmVIdG1sVGFibGUmJnRoaXMuX2FwcGx5TmF0aXZlVGFibGVTZWN0aW9ucygpLHRoaXMuX2RhdGFEaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKCh0LGUpPT50aGlzLnRyYWNrQnk/dGhpcy50cmFja0J5KGUuZGF0YUluZGV4LGUuZGF0YSk6ZSkpLHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKCkucGlwZShJZSh0aGlzLl9vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fZm9yY2VSZWNhbGN1bGF0ZUNlbGxXaWR0aHM9ITB9KSl9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7aWYodGhpcy5fY2FjaGVSb3dEZWZzKCksdGhpcy5fY2FjaGVDb2x1bW5EZWZzKCksIXRoaXMuX2hlYWRlclJvd0RlZnMubGVuZ3RoJiYhdGhpcy5fZm9vdGVyUm93RGVmcy5sZW5ndGgmJiF0aGlzLl9yb3dEZWZzLmxlbmd0aCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIHQoKXtyZXR1cm4gRXJyb3IoIk1pc3NpbmcgZGVmaW5pdGlvbnMgZm9yIGhlYWRlciwgZm9vdGVyLCBhbmQgcm93OyBjYW5ub3QgZGV0ZXJtaW5lIHdoaWNoIGNvbHVtbnMgc2hvdWxkIGJlIHJlbmRlcmVkLiIpfSkoKTtjb25zdCBlPXRoaXMuX3JlbmRlclVwZGF0ZWRDb2x1bW5zKCl8fHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWR8fHRoaXMuX2Zvb3RlclJvd0RlZkNoYW5nZWQ7dGhpcy5fc3RpY2t5Q29sdW1uU3R5bGVzTmVlZFJlc2V0PXRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldHx8ZSx0aGlzLl9mb3JjZVJlY2FsY3VsYXRlQ2VsbFdpZHRocz1lLHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQmJih0aGlzLl9mb3JjZVJlbmRlckhlYWRlclJvd3MoKSx0aGlzLl9oZWFkZXJSb3dEZWZDaGFuZ2VkPSExKSx0aGlzLl9mb290ZXJSb3dEZWZDaGFuZ2VkJiYodGhpcy5fZm9yY2VSZW5kZXJGb290ZXJSb3dzKCksdGhpcy5fZm9vdGVyUm93RGVmQ2hhbmdlZD0hMSksdGhpcy5kYXRhU291cmNlJiZ0aGlzLl9yb3dEZWZzLmxlbmd0aD4wJiYhdGhpcy5fcmVuZGVyQ2hhbmdlU3Vic2NyaXB0aW9uP3RoaXMuX29ic2VydmVSZW5kZXJDaGFuZ2VzKCk6dGhpcy5fc3RpY2t5Q29sdW1uU3R5bGVzTmVlZFJlc2V0JiZ0aGlzLnVwZGF0ZVN0aWNreUNvbHVtblN0eWxlcygpLHRoaXMuX2NoZWNrU3RpY2t5U3RhdGVzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9yb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX25vRGF0YVJvd091dGxldC52aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5faGVhZGVyUm93T3V0bGV0LnZpZXdDb250YWluZXIuY2xlYXIoKSx0aGlzLl9mb290ZXJSb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX2NhY2hlZFJlbmRlclJvd3NNYXAuY2xlYXIoKSx0aGlzLl9vbkRlc3Ryb3kubmV4dCgpLHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpLCRIKHRoaXMuZGF0YVNvdXJjZSkmJnRoaXMuZGF0YVNvdXJjZS5kaXNjb25uZWN0KHRoaXMpfXJlbmRlclJvd3MoKXt0aGlzLl9yZW5kZXJSb3dzPXRoaXMuX2dldEFsbFJlbmRlclJvd3MoKTtjb25zdCB0PXRoaXMuX2RhdGFEaWZmZXIuZGlmZih0aGlzLl9yZW5kZXJSb3dzKTtpZighdClyZXR1cm4gdGhpcy5fdXBkYXRlTm9EYXRhUm93KCksdm9pZCB0aGlzLmNvbnRlbnRDaGFuZ2VkLm5leHQoKTtjb25zdCBlPXRoaXMuX3Jvd091dGxldC52aWV3Q29udGFpbmVyO3RoaXMuX3ZpZXdSZXBlYXRlci5hcHBseUNoYW5nZXModCxlLCgodCxlLG4pPT50aGlzLl9nZXRFbWJlZGRlZFZpZXdBcmdzKHQuaXRlbSxuKSksKHQ9PnQuaXRlbS5kYXRhKSwodD0+ezE9PT10Lm9wZXJhdGlvbiYmdC5jb250ZXh0JiZ0aGlzLl9yZW5kZXJDZWxsVGVtcGxhdGVGb3JJdGVtKHQucmVjb3JkLml0ZW0ucm93RGVmLHQuY29udGV4dCl9KSksdGhpcy5fdXBkYXRlUm93SW5kZXhDb250ZXh0KCksdC5mb3JFYWNoSWRlbnRpdHlDaGFuZ2UoKHQ9PntlLmdldCh0LmN1cnJlbnRJbmRleCkuY29udGV4dC4kaW1wbGljaXQ9dC5pdGVtLmRhdGF9KSksdGhpcy5fdXBkYXRlTm9EYXRhUm93KCksdGhpcy51cGRhdGVTdGlja3lDb2x1bW5TdHlsZXMoKSx0aGlzLmNvbnRlbnRDaGFuZ2VkLm5leHQoKX1hZGRDb2x1bW5EZWYodCl7dGhpcy5fY3VzdG9tQ29sdW1uRGVmcy5hZGQodCl9cmVtb3ZlQ29sdW1uRGVmKHQpe3RoaXMuX2N1c3RvbUNvbHVtbkRlZnMuZGVsZXRlKHQpfWFkZFJvd0RlZih0KXt0aGlzLl9jdXN0b21Sb3dEZWZzLmFkZCh0KX1yZW1vdmVSb3dEZWYodCl7dGhpcy5fY3VzdG9tUm93RGVmcy5kZWxldGUodCl9YWRkSGVhZGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUhlYWRlclJvd0RlZnMuYWRkKHQpLHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQ9ITB9cmVtb3ZlSGVhZGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUhlYWRlclJvd0RlZnMuZGVsZXRlKHQpLHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQ9ITB9YWRkRm9vdGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUZvb3RlclJvd0RlZnMuYWRkKHQpLHRoaXMuX2Zvb3RlclJvd0RlZkNoYW5nZWQ9ITB9cmVtb3ZlRm9vdGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUZvb3RlclJvd0RlZnMuZGVsZXRlKHQpLHRoaXMuX2Zvb3RlclJvd0RlZkNoYW5nZWQ9ITB9c2V0Tm9EYXRhUm93KHQpe3RoaXMuX2N1c3RvbU5vRGF0YVJvdz10fXVwZGF0ZVN0aWNreUhlYWRlclJvd1N0eWxlcygpe2NvbnN0IHQ9dGhpcy5fZ2V0UmVuZGVyZWRSb3dzKHRoaXMuX2hlYWRlclJvd091dGxldCksZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigidGhlYWQiKTtlJiYoZS5zdHlsZS5kaXNwbGF5PXQubGVuZ3RoPyIiOiJub25lIik7Y29uc3Qgbj10aGlzLl9oZWFkZXJSb3dEZWZzLm1hcCgodD0+dC5zdGlja3kpKTt0aGlzLl9zdGlja3lTdHlsZXIuY2xlYXJTdGlja3lQb3NpdGlvbmluZyh0LFsidG9wIl0pLHRoaXMuX3N0aWNreVN0eWxlci5zdGlja1Jvd3ModCxuLCJ0b3AiKSx0aGlzLl9oZWFkZXJSb3dEZWZzLmZvckVhY2goKHQ9PnQucmVzZXRTdGlja3lDaGFuZ2VkKCkpKX11cGRhdGVTdGlja3lGb290ZXJSb3dTdHlsZXMoKXtjb25zdCB0PXRoaXMuX2dldFJlbmRlcmVkUm93cyh0aGlzLl9mb290ZXJSb3dPdXRsZXQpLGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoInRmb290Iik7ZSYmKGUuc3R5bGUuZGlzcGxheT10Lmxlbmd0aD8iIjoibm9uZSIpO2NvbnN0IG49dGhpcy5fZm9vdGVyUm93RGVmcy5tYXAoKHQ9PnQuc3RpY2t5KSk7dGhpcy5fc3RpY2t5U3R5bGVyLmNsZWFyU3RpY2t5UG9zaXRpb25pbmcodCxbImJvdHRvbSJdKSx0aGlzLl9zdGlja3lTdHlsZXIuc3RpY2tSb3dzKHQsbiwiYm90dG9tIiksdGhpcy5fc3RpY2t5U3R5bGVyLnVwZGF0ZVN0aWNreUZvb3RlckNvbnRhaW5lcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsbiksdGhpcy5fZm9vdGVyUm93RGVmcy5mb3JFYWNoKCh0PT50LnJlc2V0U3RpY2t5Q2hhbmdlZCgpKSl9dXBkYXRlU3RpY2t5Q29sdW1uU3R5bGVzKCl7Y29uc3QgdD10aGlzLl9nZXRSZW5kZXJlZFJvd3ModGhpcy5faGVhZGVyUm93T3V0bGV0KSxlPXRoaXMuX2dldFJlbmRlcmVkUm93cyh0aGlzLl9yb3dPdXRsZXQpLG49dGhpcy5fZ2V0UmVuZGVyZWRSb3dzKHRoaXMuX2Zvb3RlclJvd091dGxldCk7KHRoaXMuX2lzTmF0aXZlSHRtbFRhYmxlJiYhdGhpcy5fZml4ZWRMYXlvdXR8fHRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldCkmJih0aGlzLl9zdGlja3lTdHlsZXIuY2xlYXJTdGlja3lQb3NpdGlvbmluZyhbLi4udCwuLi5lLC4uLm5dLFsibGVmdCIsInJpZ2h0Il0pLHRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldD0hMSksdC5mb3JFYWNoKCgodCxlKT0+e3RoaXMuX2FkZFN0aWNreUNvbHVtblN0eWxlcyhbdF0sdGhpcy5faGVhZGVyUm93RGVmc1tlXSl9KSksdGhpcy5fcm93RGVmcy5mb3JFYWNoKCh0PT57Y29uc3Qgbj1bXTtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl0aGlzLl9yZW5kZXJSb3dzW29dLnJvd0RlZj09PXQmJm4ucHVzaChlW29dKTt0aGlzLl9hZGRTdGlja3lDb2x1bW5TdHlsZXMobix0KX0pKSxuLmZvckVhY2goKCh0LGUpPT57dGhpcy5fYWRkU3RpY2t5Q29sdW1uU3R5bGVzKFt0XSx0aGlzLl9mb290ZXJSb3dEZWZzW2VdKX0pKSxBcnJheS5mcm9tKHRoaXMuX2NvbHVtbkRlZnNCeU5hbWUudmFsdWVzKCkpLmZvckVhY2goKHQ9PnQucmVzZXRTdGlja3lDaGFuZ2VkKCkpKX1fZ2V0QWxsUmVuZGVyUm93cygpe2NvbnN0IHQ9W10sZT10aGlzLl9jYWNoZWRSZW5kZXJSb3dzTWFwO3RoaXMuX2NhY2hlZFJlbmRlclJvd3NNYXA9bmV3IE1hcDtmb3IobGV0IG49MDtuPHRoaXMuX2RhdGEubGVuZ3RoO24rKyl7bGV0IG89dGhpcy5fZGF0YVtuXTtjb25zdCBpPXRoaXMuX2dldFJlbmRlclJvd3NGb3JEYXRhKG8sbixlLmdldChvKSk7dGhpcy5fY2FjaGVkUmVuZGVyUm93c01hcC5oYXMobyl8fHRoaXMuX2NhY2hlZFJlbmRlclJvd3NNYXAuc2V0KG8sbmV3IFdlYWtNYXApO2ZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXtsZXQgbj1pW2VdO2NvbnN0IG89dGhpcy5fY2FjaGVkUmVuZGVyUm93c01hcC5nZXQobi5kYXRhKTtvLmhhcyhuLnJvd0RlZik/by5nZXQobi5yb3dEZWYpLnB1c2gobik6by5zZXQobi5yb3dEZWYsW25dKSx0LnB1c2gobil9fXJldHVybiB0fV9nZXRSZW5kZXJSb3dzRm9yRGF0YSh0LGUsbil7cmV0dXJuIHRoaXMuX2dldFJvd0RlZnModCxlKS5tYXAoKG89Pntjb25zdCBpPW4mJm4uaGFzKG8pP24uZ2V0KG8pOltdO2lmKGkubGVuZ3RoKXtjb25zdCB0PWkuc2hpZnQoKTtyZXR1cm4gdC5kYXRhSW5kZXg9ZSx0fXJldHVybntkYXRhOnQscm93RGVmOm8sZGF0YUluZGV4OmV9fSkpfV9jYWNoZUNvbHVtbkRlZnMoKXt0aGlzLl9jb2x1bW5EZWZzQnlOYW1lLmNsZWFyKCksZTAodGhpcy5fZ2V0T3duRGVmcyh0aGlzLl9jb250ZW50Q29sdW1uRGVmcyksdGhpcy5fY3VzdG9tQ29sdW1uRGVmcykuZm9yRWFjaCgodD0+e2lmKHRoaXMuX2NvbHVtbkRlZnNCeU5hbWUuaGFzKHQubmFtZSkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyhmdW5jdGlvbiBlKHQpe3JldHVybiBFcnJvcihgRHVwbGljYXRlIGNvbHVtbiBkZWZpbml0aW9uIG5hbWUgcHJvdmlkZWQ6ICIke3R9Ii5gKX0pKHQubmFtZSk7dGhpcy5fY29sdW1uRGVmc0J5TmFtZS5zZXQodC5uYW1lLHQpfSkpfV9jYWNoZVJvd0RlZnMoKXt0aGlzLl9oZWFkZXJSb3dEZWZzPWUwKHRoaXMuX2dldE93bkRlZnModGhpcy5fY29udGVudEhlYWRlclJvd0RlZnMpLHRoaXMuX2N1c3RvbUhlYWRlclJvd0RlZnMpLHRoaXMuX2Zvb3RlclJvd0RlZnM9ZTAodGhpcy5fZ2V0T3duRGVmcyh0aGlzLl9jb250ZW50Rm9vdGVyUm93RGVmcyksdGhpcy5fY3VzdG9tRm9vdGVyUm93RGVmcyksdGhpcy5fcm93RGVmcz1lMCh0aGlzLl9nZXRPd25EZWZzKHRoaXMuX2NvbnRlbnRSb3dEZWZzKSx0aGlzLl9jdXN0b21Sb3dEZWZzKTtjb25zdCB0PXRoaXMuX3Jvd0RlZnMuZmlsdGVyKCh0PT4hdC53aGVuKSk7aWYoIXRoaXMubXVsdGlUZW1wbGF0ZURhdGFSb3dzJiZ0Lmxlbmd0aD4xJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gZSgpe3JldHVybiBFcnJvcigiVGhlcmUgY2FuIG9ubHkgYmUgb25lIGRlZmF1bHQgcm93IHdpdGhvdXQgYSB3aGVuIHByZWRpY2F0ZSBmdW5jdGlvbi4iKX0pKCk7dGhpcy5fZGVmYXVsdFJvd0RlZj10WzBdfV9yZW5kZXJVcGRhdGVkQ29sdW1ucygpe2NvbnN0IHQ9KHQsZSk9PnR8fCEhZS5nZXRDb2x1bW5zRGlmZigpLGU9dGhpcy5fcm93RGVmcy5yZWR1Y2UodCwhMSk7ZSYmdGhpcy5fZm9yY2VSZW5kZXJEYXRhUm93cygpO2NvbnN0IG49dGhpcy5faGVhZGVyUm93RGVmcy5yZWR1Y2UodCwhMSk7biYmdGhpcy5fZm9yY2VSZW5kZXJIZWFkZXJSb3dzKCk7Y29uc3Qgbz10aGlzLl9mb290ZXJSb3dEZWZzLnJlZHVjZSh0LCExKTtyZXR1cm4gbyYmdGhpcy5fZm9yY2VSZW5kZXJGb290ZXJSb3dzKCksZXx8bnx8b31fc3dpdGNoRGF0YVNvdXJjZSh0KXt0aGlzLl9kYXRhPVtdLCRIKHRoaXMuZGF0YVNvdXJjZSkmJnRoaXMuZGF0YVNvdXJjZS5kaXNjb25uZWN0KHRoaXMpLHRoaXMuX3JlbmRlckNoYW5nZVN1YnNjcmlwdGlvbiYmKHRoaXMuX3JlbmRlckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3JlbmRlckNoYW5nZVN1YnNjcmlwdGlvbj1udWxsKSx0fHwodGhpcy5fZGF0YURpZmZlciYmdGhpcy5fZGF0YURpZmZlci5kaWZmKFtdKSx0aGlzLl9yb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpKSx0aGlzLl9kYXRhU291cmNlPXR9X29ic2VydmVSZW5kZXJDaGFuZ2VzKCl7aWYoIXRoaXMuZGF0YVNvdXJjZSlyZXR1cm47bGV0IHQ7aWYoJEgodGhpcy5kYXRhU291cmNlKT90PXRoaXMuZGF0YVNvdXJjZS5jb25uZWN0KHRoaXMpOk50KHRoaXMuZGF0YVNvdXJjZSk/dD10aGlzLmRhdGFTb3VyY2U6QXJyYXkuaXNBcnJheSh0aGlzLmRhdGFTb3VyY2UpJiYodD1FdCh0aGlzLmRhdGFTb3VyY2UpKSx2b2lkIDA9PT10JiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gZSgpe3JldHVybiBFcnJvcigiUHJvdmlkZWQgZGF0YSBzb3VyY2UgZGlkIG5vdCBtYXRjaCBhbiBhcnJheSwgT2JzZXJ2YWJsZSwgb3IgRGF0YVNvdXJjZSIpfSkoKTt0aGlzLl9yZW5kZXJDaGFuZ2VTdWJzY3JpcHRpb249dC5waXBlKEllKHRoaXMuX29uRGVzdHJveSkpLnN1YnNjcmliZSgodD0+e3RoaXMuX2RhdGE9dHx8W10sdGhpcy5yZW5kZXJSb3dzKCl9KSl9X2ZvcmNlUmVuZGVySGVhZGVyUm93cygpe3RoaXMuX2hlYWRlclJvd091dGxldC52aWV3Q29udGFpbmVyLmxlbmd0aD4wJiZ0aGlzLl9oZWFkZXJSb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX2hlYWRlclJvd0RlZnMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX3JlbmRlclJvdyh0aGlzLl9oZWFkZXJSb3dPdXRsZXQsdCxlKSkpLHRoaXMudXBkYXRlU3RpY2t5SGVhZGVyUm93U3R5bGVzKCl9X2ZvcmNlUmVuZGVyRm9vdGVyUm93cygpe3RoaXMuX2Zvb3RlclJvd091dGxldC52aWV3Q29udGFpbmVyLmxlbmd0aD4wJiZ0aGlzLl9mb290ZXJSb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX2Zvb3RlclJvd0RlZnMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX3JlbmRlclJvdyh0aGlzLl9mb290ZXJSb3dPdXRsZXQsdCxlKSkpLHRoaXMudXBkYXRlU3RpY2t5Rm9vdGVyUm93U3R5bGVzKCl9X2FkZFN0aWNreUNvbHVtblN0eWxlcyh0LGUpe2NvbnN0IG49QXJyYXkuZnJvbShlLmNvbHVtbnN8fFtdKS5tYXAoKHQ9Pntjb25zdCBlPXRoaXMuX2NvbHVtbkRlZnNCeU5hbWUuZ2V0KHQpO2lmKCFlJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgWSQodCk7cmV0dXJuIGV9KSksbz1uLm1hcCgodD0+dC5zdGlja3kpKSxpPW4ubWFwKCh0PT50LnN0aWNreUVuZCkpO3RoaXMuX3N0aWNreVN0eWxlci51cGRhdGVTdGlja3lDb2x1bW5zKHQsbyxpLCF0aGlzLl9maXhlZExheW91dHx8dGhpcy5fZm9yY2VSZWNhbGN1bGF0ZUNlbGxXaWR0aHMpfV9nZXRSZW5kZXJlZFJvd3ModCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPHQudmlld0NvbnRhaW5lci5sZW5ndGg7bisrKXtjb25zdCBvPXQudmlld0NvbnRhaW5lci5nZXQobik7ZS5wdXNoKG8ucm9vdE5vZGVzWzBdKX1yZXR1cm4gZX1fZ2V0Um93RGVmcyh0LGUpe2lmKDE9PXRoaXMuX3Jvd0RlZnMubGVuZ3RoKXJldHVyblt0aGlzLl9yb3dEZWZzWzBdXTtsZXQgbj1bXTtpZih0aGlzLm11bHRpVGVtcGxhdGVEYXRhUm93cyluPXRoaXMuX3Jvd0RlZnMuZmlsdGVyKChuPT4hbi53aGVufHxuLndoZW4oZSx0KSkpO2Vsc2V7bGV0IG89dGhpcy5fcm93RGVmcy5maW5kKChuPT5uLndoZW4mJm4ud2hlbihlLHQpKSl8fHRoaXMuX2RlZmF1bHRSb3dEZWY7byYmbi5wdXNoKG8pfWlmKCFuLmxlbmd0aCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIG8odCl7cmV0dXJuIEVycm9yKGBDb3VsZCBub3QgZmluZCBhIG1hdGNoaW5nIHJvdyBkZWZpbml0aW9uIGZvciB0aGVwcm92aWRlZCByb3cgZGF0YTogJHtKU09OLnN0cmluZ2lmeSh0KX1gKX0pKHQpO3JldHVybiBufV9nZXRFbWJlZGRlZFZpZXdBcmdzKHQsZSl7cmV0dXJue3RlbXBsYXRlUmVmOnQucm93RGVmLnRlbXBsYXRlLGNvbnRleHQ6eyRpbXBsaWNpdDp0LmRhdGF9LGluZGV4OmV9fV9yZW5kZXJSb3codCxlLG4sbz17fSl7Y29uc3QgaT10LnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KGUudGVtcGxhdGUsbyxuKTtyZXR1cm4gdGhpcy5fcmVuZGVyQ2VsbFRlbXBsYXRlRm9ySXRlbShlLG8pLGl9X3JlbmRlckNlbGxUZW1wbGF0ZUZvckl0ZW0odCxlKXtmb3IobGV0IG4gb2YgdGhpcy5fZ2V0Q2VsbFRlbXBsYXRlcyh0KSlMJC5tb3N0UmVjZW50Q2VsbE91dGxldCYmTCQubW9zdFJlY2VudENlbGxPdXRsZXQuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KG4sZSk7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X3VwZGF0ZVJvd0luZGV4Q29udGV4dCgpe2NvbnN0IHQ9dGhpcy5fcm93T3V0bGV0LnZpZXdDb250YWluZXI7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBvPXQuZ2V0KGUpLmNvbnRleHQ7by5jb3VudD1uLG8uZmlyc3Q9MD09PWUsby5sYXN0PWU9PT1uLTEsby5ldmVuPWUlMj09MCxvLm9kZD0hby5ldmVuLHRoaXMubXVsdGlUZW1wbGF0ZURhdGFSb3dzPyhvLmRhdGFJbmRleD10aGlzLl9yZW5kZXJSb3dzW2VdLmRhdGFJbmRleCxvLnJlbmRlckluZGV4PWUpOm8uaW5kZXg9dGhpcy5fcmVuZGVyUm93c1tlXS5kYXRhSW5kZXh9fV9nZXRDZWxsVGVtcGxhdGVzKHQpe3JldHVybiB0JiZ0LmNvbHVtbnM/QXJyYXkuZnJvbSh0LmNvbHVtbnMsKGU9Pntjb25zdCBuPXRoaXMuX2NvbHVtbkRlZnNCeU5hbWUuZ2V0KGUpO2lmKCFuJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgWSQoZSk7cmV0dXJuIHQuZXh0cmFjdENlbGxUZW1wbGF0ZShuKX0pKTpbXX1fYXBwbHlOYXRpdmVUYWJsZVNlY3Rpb25zKCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZT1be3RhZzoidGhlYWQiLG91dGxldHM6W3RoaXMuX2hlYWRlclJvd091dGxldF19LHt0YWc6InRib2R5IixvdXRsZXRzOlt0aGlzLl9yb3dPdXRsZXQsdGhpcy5fbm9EYXRhUm93T3V0bGV0XX0se3RhZzoidGZvb3QiLG91dGxldHM6W3RoaXMuX2Zvb3RlclJvd091dGxldF19XTtmb3IoY29uc3QgbiBvZiBlKXtjb25zdCBlPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQobi50YWcpO2Uuc2V0QXR0cmlidXRlKCJyb2xlIiwicm93Z3JvdXAiKTtmb3IoY29uc3QgdCBvZiBuLm91dGxldHMpZS5hcHBlbmRDaGlsZCh0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7dC5hcHBlbmRDaGlsZChlKX10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodCl9X2ZvcmNlUmVuZGVyRGF0YVJvd3MoKXt0aGlzLl9kYXRhRGlmZmVyLmRpZmYoW10pLHRoaXMuX3Jvd091dGxldC52aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5yZW5kZXJSb3dzKCl9X2NoZWNrU3RpY2t5U3RhdGVzKCl7Y29uc3QgdD0odCxlKT0+dHx8ZS5oYXNTdGlja3lDaGFuZ2VkKCk7dGhpcy5faGVhZGVyUm93RGVmcy5yZWR1Y2UodCwhMSkmJnRoaXMudXBkYXRlU3RpY2t5SGVhZGVyUm93U3R5bGVzKCksdGhpcy5fZm9vdGVyUm93RGVmcy5yZWR1Y2UodCwhMSkmJnRoaXMudXBkYXRlU3RpY2t5Rm9vdGVyUm93U3R5bGVzKCksQXJyYXkuZnJvbSh0aGlzLl9jb2x1bW5EZWZzQnlOYW1lLnZhbHVlcygpKS5yZWR1Y2UodCwhMSkmJih0aGlzLl9zdGlja3lDb2x1bW5TdHlsZXNOZWVkUmVzZXQ9ITAsdGhpcy51cGRhdGVTdGlja3lDb2x1bW5TdHlsZXMoKSl9X3NldHVwU3RpY2t5U3R5bGVyKCl7dGhpcy5fc3RpY2t5U3R5bGVyPW5ldyBXJCh0aGlzLl9pc05hdGl2ZUh0bWxUYWJsZSx0aGlzLnN0aWNreUNzc0NsYXNzLHRoaXMuX2Rpcj90aGlzLl9kaXIudmFsdWU6Imx0ciIsdGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXIsdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyLHRoaXMubmVlZHNQb3NpdGlvblN0aWNreU9uRWxlbWVudCx0aGlzLl9zdGlja3lQb3NpdGlvbmluZ0xpc3RlbmVyKSwodGhpcy5fZGlyP3RoaXMuX2Rpci5jaGFuZ2U6RXQoKSkucGlwZShJZSh0aGlzLl9vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLl9zdGlja3lTdHlsZXIuZGlyZWN0aW9uPXQsdGhpcy51cGRhdGVTdGlja3lDb2x1bW5TdHlsZXMoKX0pKX1fZ2V0T3duRGVmcyh0KXtyZXR1cm4gdC5maWx0ZXIoKHQ9PiF0Ll90YWJsZXx8dC5fdGFibGU9PT10aGlzKSl9X3VwZGF0ZU5vRGF0YVJvdygpe2NvbnN0IHQ9dGhpcy5fY3VzdG9tTm9EYXRhUm93fHx0aGlzLl9ub0RhdGFSb3c7aWYodCl7Y29uc3QgZT0wPT09dGhpcy5fcm93T3V0bGV0LnZpZXdDb250YWluZXIubGVuZ3RoO2lmKGUhPT10aGlzLl9pc1Nob3dpbmdOb0RhdGFSb3cpe2NvbnN0IG49dGhpcy5fbm9EYXRhUm93T3V0bGV0LnZpZXdDb250YWluZXI7ZT9uLmNyZWF0ZUVtYmVkZGVkVmlldyh0LnRlbXBsYXRlUmVmKTpuLmNsZWFyKCksdGhpcy5faXNTaG93aW5nTm9EYXRhUm93PWV9fX19ZnVuY3Rpb24gZTAodCxlKXtyZXR1cm4gdC5jb25jYXQoQXJyYXkuZnJvbShlKSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL3QwLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0MCkoU20oSGcpLFNtKFVnKSxTbShoZyksTmEoInJvbGUiKSxTbShISSw4KSxTbShaXyksU20od3opLFNtKGFGKSxTbShFJCksU20odUYpLFNtKHEkLDEyKSl9LHQwLsm1Y21wPXRvKHt0eXBlOnQwLHNlbGVjdG9yczpbWyJjZGstdGFibGUiXSxbInRhYmxlIiwiY2RrLXRhYmxlIiwiIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uIHQoZSxuLG8pe2lmKDEmZSYmKCRoKG8sVSQsNSksJGgobyxPJCw1KSwkaChvLEYkLDUpLCRoKG8seiQsNSksJGgobyxIJCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5fbm9EYXRhUm93PXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9jb250ZW50Q29sdW1uRGVmcz10KSxKaCh0PXRiKCkpJiYobi5fY29udGVudFJvd0RlZnM9dCksSmgodD10YigpKSYmKG4uX2NvbnRlbnRIZWFkZXJSb3dEZWZzPXQpLEpoKHQ9dGIoKSkmJihuLl9jb250ZW50Rm9vdGVyUm93RGVmcz10KX19LHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUWgoWCQsNyksUWgoSyQsNyksUWgoSiQsNyksUWgoUSQsNykpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX3Jvd091dGxldD10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5faGVhZGVyUm93T3V0bGV0PXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLl9mb290ZXJSb3dPdXRsZXQ9dC5maXJzdCksSmgodD10YigpKSYmKG4uX25vRGF0YVJvd091dGxldD10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwiY2RrLXRhYmxlIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoImNkay10YWJsZS1maXhlZC1sYXlvdXQiLG4uZml4ZWRMYXlvdXQpfSxpbnB1dHM6e3RyYWNrQnk6InRyYWNrQnkiLGRhdGFTb3VyY2U6ImRhdGFTb3VyY2UiLG11bHRpVGVtcGxhdGVEYXRhUm93czoibXVsdGlUZW1wbGF0ZURhdGFSb3dzIixmaXhlZExheW91dDoiZml4ZWRMYXlvdXQifSxvdXRwdXRzOntjb250ZW50Q2hhbmdlZDoiY29udGVudENoYW5nZWQifSxleHBvcnRBczpbImNka1RhYmxlIl0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTp5JCx1c2VFeGlzdGluZzp0MH0se3Byb3ZpZGU6YUYsdXNlQ2xhc3M6ZUZ9LHtwcm92aWRlOkUkLHVzZUNsYXNzOlIkfSx7cHJvdmlkZTpxJCx1c2VWYWx1ZTpudWxsfV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyJjYXB0aW9uIiwiY29sZ3JvdXAsIGNvbCJdLGRlY2xzOjYsdmFyczowLGNvbnN0czpbWyJoZWFkZXJSb3dPdXRsZXQiLCIiXSxbInJvd091dGxldCIsIiJdLFsibm9EYXRhUm93T3V0bGV0IiwiIl0sWyJmb290ZXJSb3dPdXRsZXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFptKGYkKSxYbSgwKSxYbSgxLDEpLEltKDIsMCksSW0oMywxKSxJbSg0LDIpLEltKDUsMykpfSxkaXJlY3RpdmVzOltLJCxYJCxRJCxKJF0sc3R5bGVzOlsiLmNkay10YWJsZS1maXhlZC1sYXlvdXR7dGFibGUtbGF5b3V0OmZpeGVkfVxuIl0sZW5jYXBzdWxhdGlvbjoyfSksdDAuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpIZ30se3R5cGU6VWd9LHt0eXBlOmhnfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInJvbGUiXX1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOnd6fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbYUZdfV19LHt0eXBlOlIkLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0UkXX1dfSx7dHlwZTp1Rn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpFcn0se3R5cGU6a3IsYXJnczpbcSRdfV19XSx0MC5wcm9wRGVjb3JhdG9ycz17dHJhY2tCeTpbe3R5cGU6eHl9XSxkYXRhU291cmNlOlt7dHlwZTp4eX1dLG11bHRpVGVtcGxhdGVEYXRhUm93czpbe3R5cGU6eHl9XSxmaXhlZExheW91dDpbe3R5cGU6eHl9XSxjb250ZW50Q2hhbmdlZDpbe3R5cGU6T3l9XSxfcm93T3V0bGV0Olt7dHlwZTpaYSxhcmdzOltYJCx7c3RhdGljOiEwfV19XSxfaGVhZGVyUm93T3V0bGV0Olt7dHlwZTpaYSxhcmdzOltLJCx7c3RhdGljOiEwfV19XSxfZm9vdGVyUm93T3V0bGV0Olt7dHlwZTpaYSxhcmdzOltKJCx7c3RhdGljOiEwfV19XSxfbm9EYXRhUm93T3V0bGV0Olt7dHlwZTpaYSxhcmdzOltRJCx7c3RhdGljOiEwfV19XSxfY29udGVudENvbHVtbkRlZnM6W3t0eXBlOllhLGFyZ3M6W08kLHtkZXNjZW5kYW50czohMH1dfV0sX2NvbnRlbnRSb3dEZWZzOlt7dHlwZTpZYSxhcmdzOltGJCx7ZGVzY2VuZGFudHM6ITB9XX1dLF9jb250ZW50SGVhZGVyUm93RGVmczpbe3R5cGU6WWEsYXJnczpbeiQse2Rlc2NlbmRhbnRzOiEwfV19XSxfY29udGVudEZvb3RlclJvd0RlZnM6W3t0eXBlOllhLGFyZ3M6W0gkLHtkZXNjZW5kYW50czohMH1dfV0sX25vRGF0YVJvdzpbe3R5cGU6cWEsYXJnczpbVSRdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodDAsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiY2RrLXRhYmxlLCB0YWJsZVtjZGstdGFibGVdIixleHBvcnRBczoiY2RrVGFibGUiLHRlbXBsYXRlOiQkLGhvc3Q6e2NsYXNzOiJjZGstdGFibGUiLCJbY2xhc3MuY2RrLXRhYmxlLWZpeGVkLWxheW91dF0iOiJmaXhlZExheW91dCJ9LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxwcm92aWRlcnM6W3twcm92aWRlOnkkLHVzZUV4aXN0aW5nOnQwfSx7cHJvdmlkZTphRix1c2VDbGFzczplRn0se3Byb3ZpZGU6RSQsdXNlQ2xhc3M6UiR9LHtwcm92aWRlOnEkLHVzZVZhbHVlOm51bGx9XSxzdHlsZXM6WyIuY2RrLXRhYmxlLWZpeGVkLWxheW91dHt0YWJsZS1sYXlvdXQ6Zml4ZWR9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkhnfSx7dHlwZTpVZ30se3R5cGU6aGd9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpqYSxhcmdzOlsicm9sZSJdfV19LHt0eXBlOkhJLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6d3p9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlthRl19XX0se3R5cGU6UiQsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbRSRdfV19LHt0eXBlOnVGfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkVyfSx7dHlwZTprcixhcmdzOltxJF19XX1dfSkse2NvbnRlbnRDaGFuZ2VkOlt7dHlwZTpPeX1dLHRyYWNrQnk6W3t0eXBlOnh5fV0sZGF0YVNvdXJjZTpbe3R5cGU6eHl9XSxtdWx0aVRlbXBsYXRlRGF0YVJvd3M6W3t0eXBlOnh5fV0sZml4ZWRMYXlvdXQ6W3t0eXBlOnh5fV0sX3Jvd091dGxldDpbe3R5cGU6WmEsYXJnczpbWCQse3N0YXRpYzohMH1dfV0sX2hlYWRlclJvd091dGxldDpbe3R5cGU6WmEsYXJnczpbSyQse3N0YXRpYzohMH1dfV0sX2Zvb3RlclJvd091dGxldDpbe3R5cGU6WmEsYXJnczpbSiQse3N0YXRpYzohMH1dfV0sX25vRGF0YVJvd091dGxldDpbe3R5cGU6WmEsYXJnczpbUSQse3N0YXRpYzohMH1dfV0sX2NvbnRlbnRDb2x1bW5EZWZzOlt7dHlwZTpZYSxhcmdzOltPJCx7ZGVzY2VuZGFudHM6ITB9XX1dLF9jb250ZW50Um93RGVmczpbe3R5cGU6WWEsYXJnczpbRiQse2Rlc2NlbmRhbnRzOiEwfV19XSxfY29udGVudEhlYWRlclJvd0RlZnM6W3t0eXBlOllhLGFyZ3M6W3okLHtkZXNjZW5kYW50czohMH1dfV0sX2NvbnRlbnRGb290ZXJSb3dEZWZzOlt7dHlwZTpZYSxhcmdzOltIJCx7ZGVzY2VuZGFudHM6ITB9XX1dLF9ub0RhdGFSb3c6W3t0eXBlOnFhLGFyZ3M6W1UkXX1dfSk7Y2xhc3MgbjB7Y29uc3RydWN0b3IodCxlKXt0aGlzLl90YWJsZT10LHRoaXMuX29wdGlvbnM9ZSx0aGlzLmp1c3RpZnk9InN0YXJ0Iix0aGlzLl9vcHRpb25zPWV8fHt9fWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuX25hbWV9c2V0IG5hbWUodCl7dGhpcy5fbmFtZT10LHRoaXMuX3N5bmNDb2x1bW5EZWZOYW1lKCl9bmdPbkluaXQoKXtpZih0aGlzLl9zeW5jQ29sdW1uRGVmTmFtZSgpLHZvaWQgMD09PXRoaXMuaGVhZGVyVGV4dCYmKHRoaXMuaGVhZGVyVGV4dD10aGlzLl9jcmVhdGVEZWZhdWx0SGVhZGVyVGV4dCgpKSx0aGlzLmRhdGFBY2Nlc3Nvcnx8KHRoaXMuZGF0YUFjY2Vzc29yPXRoaXMuX29wdGlvbnMuZGVmYXVsdERhdGFBY2Nlc3Nvcnx8KCh0LGUpPT50W2VdKSksdGhpcy5fdGFibGUpdGhpcy5jb2x1bW5EZWYuY2VsbD10aGlzLmNlbGwsdGhpcy5jb2x1bW5EZWYuaGVhZGVyQ2VsbD10aGlzLmhlYWRlckNlbGwsdGhpcy5fdGFibGUuYWRkQ29sdW1uRGVmKHRoaXMuY29sdW1uRGVmKTtlbHNlIGlmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpdGhyb3coZnVuY3Rpb24gdCgpe3JldHVybiBFcnJvcigiVGV4dCBjb2x1bW4gY291bGQgbm90IGZpbmQgYSBwYXJlbnQgdGFibGUgZm9yIHJlZ2lzdHJhdGlvbi4iKX0pKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl90YWJsZSYmdGhpcy5fdGFibGUucmVtb3ZlQ29sdW1uRGVmKHRoaXMuY29sdW1uRGVmKX1fY3JlYXRlRGVmYXVsdEhlYWRlclRleHQoKXtjb25zdCB0PXRoaXMubmFtZTtpZighdCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIGUoKXtyZXR1cm4gRXJyb3IoIlRhYmxlIHRleHQgY29sdW1uIG11c3QgaGF2ZSBhIG5hbWUuIil9KSgpO3JldHVybiB0aGlzLl9vcHRpb25zJiZ0aGlzLl9vcHRpb25zLmRlZmF1bHRIZWFkZXJUZXh0VHJhbnNmb3JtP3RoaXMuX29wdGlvbnMuZGVmYXVsdEhlYWRlclRleHRUcmFuc2Zvcm0odCk6dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSl9X3N5bmNDb2x1bW5EZWZOYW1lKCl7dGhpcy5jb2x1bW5EZWYmJih0aGlzLmNvbHVtbkRlZi5uYW1lPXRoaXMubmFtZSl9fW4wLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxuMCkoU20odDAsOCksU20oXyQsOCkpfSxuMC7JtWNtcD10byh7dHlwZTpuMCxzZWxlY3RvcnM6W1siY2RrLXRleHQtY29sdW1uIl1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUWgoTyQsNyksUWgoQyQsNyksUWgoTSQsNykpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uY29sdW1uRGVmPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLmNlbGw9dC5maXJzdCksSmgodD10YigpKSYmKG4uaGVhZGVyQ2VsbD10LmZpcnN0KX19LGlucHV0czp7anVzdGlmeToianVzdGlmeSIsbmFtZToibmFtZSIsaGVhZGVyVGV4dDoiaGVhZGVyVGV4dCIsZGF0YUFjY2Vzc29yOiJkYXRhQWNjZXNzb3IifSxkZWNsczozLHZhcnM6MCxjb25zdHM6W1siY2RrQ29sdW1uRGVmIiwiIl0sWyJjZGstaGVhZGVyLWNlbGwiLCIiLDMsInRleHQtYWxpZ24iLDQsImNka0hlYWRlckNlbGxEZWYiXSxbImNkay1jZWxsIiwiIiwzLCJ0ZXh0LWFsaWduIiw0LCJjZGtDZWxsRGVmIl0sWyJjZGstaGVhZGVyLWNlbGwiLCIiXSxbImNkay1jZWxsIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihObSgwLDApLFFwKDEsZyQsMiwzLCJ0aCIsMSksUXAoMixoJCwyLDMsInRkIiwyKSx6bSgpKX0sZGlyZWN0aXZlczpbTyQsTSQsQyQsdyQsUyRdLGVuY2Fwc3VsYXRpb246Mn0pLG4wLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltfJF19XX1dLG4wLnByb3BEZWNvcmF0b3JzPXtuYW1lOlt7dHlwZTp4eX1dLGhlYWRlclRleHQ6W3t0eXBlOnh5fV0sZGF0YUFjY2Vzc29yOlt7dHlwZTp4eX1dLGp1c3RpZnk6W3t0eXBlOnh5fV0sY29sdW1uRGVmOlt7dHlwZTpaYSxhcmdzOltPJCx7c3RhdGljOiEwfV19XSxjZWxsOlt7dHlwZTpaYSxhcmdzOltDJCx7c3RhdGljOiEwfV19XSxoZWFkZXJDZWxsOlt7dHlwZTpaYSxhcmdzOltNJCx7c3RhdGljOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChuMCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJjZGstdGV4dC1jb2x1bW4iLHRlbXBsYXRlOidcbiAgICA8bmctY29udGFpbmVyIGNka0NvbHVtbkRlZj5cbiAgICAgIDx0aCBjZGstaGVhZGVyLWNlbGwgKmNka0hlYWRlckNlbGxEZWYgW3N0eWxlLnRleHQtYWxpZ25dPSJqdXN0aWZ5Ij5cbiAgICAgICAge3toZWFkZXJUZXh0fX1cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgY2RrLWNlbGwgKmNka0NlbGxEZWY9ImxldCBkYXRhIiBbc3R5bGUudGV4dC1hbGlnbl09Imp1c3RpZnkiPlxuICAgICAgICB7e2RhdGFBY2Nlc3NvcihkYXRhLCBuYW1lKX19XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAnLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnQwLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbXyRdfV19XX0pLHtqdXN0aWZ5Olt7dHlwZTp4eX1dLG5hbWU6W3t0eXBlOnh5fV0saGVhZGVyVGV4dDpbe3R5cGU6eHl9XSxkYXRhQWNjZXNzb3I6W3t0eXBlOnh5fV0sY29sdW1uRGVmOlt7dHlwZTpaYSxhcmdzOltPJCx7c3RhdGljOiEwfV19XSxjZWxsOlt7dHlwZTpaYSxhcmdzOltDJCx7c3RhdGljOiEwfV19XSxoZWFkZXJDZWxsOlt7dHlwZTpaYSxhcmdzOltNJCx7c3RhdGljOiEwfV19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgbzA9W3QwLEYkLEMkLEwkLE0kLHYkLE8kLFMkLGokLHckLGskLEIkLHokLFYkLEgkLFgkLEskLEokLG4wLFUkLFokLFEkXTtjbGFzcyBpMHt9aTAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGkwKX0saTAuybVtb2Q9YW8oe3R5cGU6aTB9KSxpMC7JtWluaj12bih7aW1wb3J0czpbW19GXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGkwLFt7dHlwZTpBeSxhcmdzOlt7ZXhwb3J0czpvMCxkZWNsYXJhdGlvbnM6bzAsaW1wb3J0czpbX0ZdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oaTAse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVyblt0MCxGJCxDJCxMJCxNJCx2JCxPJCxTJCxqJCx3JCxrJCxCJCx6JCxWJCxIJCxYJCxLJCxKJCxuMCxVJCxaJCxRJF19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bX0ZdfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3QwLEYkLEMkLEwkLE0kLHYkLE8kLFMkLGokLHckLGskLEIkLHokLFYkLEgkLFgkLEskLEokLG4wLFUkLFokLFEkXX19KTtjb25zdCBhMD1bW1siY2FwdGlvbiJdXSxbWyJjb2xncm91cCJdLFsiY29sIl1dXTtmdW5jdGlvbiByMCh0LGUpe2lmKDEmdCYmKFJtKDAsInRoIiwzKSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtkdSgidGV4dC1hbGlnbiIsdC5qdXN0aWZ5KSxyYygxKSxEdSgiICIsdC5oZWFkZXJUZXh0LCIgIil9fWZ1bmN0aW9uIHMwKHQsZSl7aWYoMSZ0JiYoUm0oMCwidGQiLDQpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPVltKCk7ZHUoInRleHQtYWxpZ24iLG4uanVzdGlmeSkscmMoMSksRHUoIiAiLG4uZGF0YUFjY2Vzc29yKHQsbi5uYW1lKSwiICIpfX1jbGFzcyBsMHt9bDAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGwwKX0sbDAuybVkaXI9bG8oe3R5cGU6bDAsc2VsZWN0b3JzOltbIm1hdC10YWJsZSIsInJlY3ljbGVSb3dzIiwiIl0sWyJ0YWJsZSIsIm1hdC10YWJsZSIsIiIsInJlY3ljbGVSb3dzIiwiIl1dLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6YUYsdXNlQ2xhc3M6bkZ9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsMCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJtYXQtdGFibGVbcmVjeWNsZVJvd3NdLCB0YWJsZVttYXQtdGFibGVdW3JlY3ljbGVSb3dzXSIscHJvdmlkZXJzOlt7cHJvdmlkZTphRix1c2VDbGFzczpuRn1dfV19XSxudWxsLG51bGwpO2NsYXNzIGMwIGV4dGVuZHMgdDB7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc3RpY2t5Q3NzQ2xhc3M9Im1hdC10YWJsZS1zdGlja3kiLHRoaXMubmVlZHNQb3NpdGlvblN0aWNreU9uRWxlbWVudD0hMX19YzAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKGMwKSkpKG58fGMwKX19KSgpLGMwLsm1Y21wPXRvKHt0eXBlOmMwLHNlbGVjdG9yczpbWyJtYXQtdGFibGUiXSxbInRhYmxlIiwibWF0LXRhYmxlIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LXRhYmxlIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoIm1hdC10YWJsZS1maXhlZC1sYXlvdXQiLG4uZml4ZWRMYXlvdXQpfSxleHBvcnRBczpbIm1hdFRhYmxlIl0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTphRix1c2VDbGFzczplRn0se3Byb3ZpZGU6dDAsdXNlRXhpc3Rpbmc6YzB9LHtwcm92aWRlOnkkLHVzZUV4aXN0aW5nOmMwfSx7cHJvdmlkZTpFJCx1c2VDbGFzczpSJH0se3Byb3ZpZGU6cSQsdXNlVmFsdWU6bnVsbH1dKSx4cF0sbmdDb250ZW50U2VsZWN0b3JzOlsiY2FwdGlvbiIsImNvbGdyb3VwLCBjb2wiXSxkZWNsczo2LHZhcnM6MCxjb25zdHM6W1siaGVhZGVyUm93T3V0bGV0IiwiIl0sWyJyb3dPdXRsZXQiLCIiXSxbIm5vRGF0YVJvd091dGxldCIsIiJdLFsiZm9vdGVyUm93T3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabShhMCksWG0oMCksWG0oMSwxKSxJbSgyLDApLEltKDMsMSksSW0oNCwyKSxJbSg1LDMpKX0sZGlyZWN0aXZlczpbSyQsWCQsUSQsSiRdLHN0eWxlczpbJ21hdC10YWJsZXtkaXNwbGF5OmJsb2NrfW1hdC1oZWFkZXItcm93e21pbi1oZWlnaHQ6NTZweH1tYXQtcm93LG1hdC1mb290ZXItcm93e21pbi1oZWlnaHQ6NDhweH1tYXQtcm93LG1hdC1oZWFkZXItcm93LG1hdC1mb290ZXItcm93e2Rpc3BsYXk6ZmxleDtib3JkZXItd2lkdGg6MDtib3JkZXItYm90dG9tLXdpZHRoOjFweDtib3JkZXItc3R5bGU6c29saWQ7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveH1tYXQtcm93OjphZnRlcixtYXQtaGVhZGVyLXJvdzo6YWZ0ZXIsbWF0LWZvb3Rlci1yb3c6OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi1oZWlnaHQ6aW5oZXJpdDtjb250ZW50OiIifW1hdC1jZWxsOmZpcnN0LW9mLXR5cGUsbWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGUsbWF0LWZvb3Rlci1jZWxsOmZpcnN0LW9mLXR5cGV7cGFkZGluZy1sZWZ0OjI0cHh9W2Rpcj1ydGxdIG1hdC1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIG1hdC1mb290ZXItY2VsbDpmaXJzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjI0cHh9bWF0LWNlbGw6bGFzdC1vZi10eXBlLG1hdC1oZWFkZXItY2VsbDpsYXN0LW9mLXR5cGUsbWF0LWZvb3Rlci1jZWxsOmxhc3Qtb2YtdHlwZXtwYWRkaW5nLXJpZ2h0OjI0cHh9W2Rpcj1ydGxdIG1hdC1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIG1hdC1oZWFkZXItY2VsbDpsYXN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtZm9vdGVyLWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKXtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjI0cHh9bWF0LWNlbGwsbWF0LWhlYWRlci1jZWxsLG1hdC1mb290ZXItY2VsbHtmbGV4OjE7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47d29yZC13cmFwOmJyZWFrLXdvcmQ7bWluLWhlaWdodDppbmhlcml0fXRhYmxlLm1hdC10YWJsZXtib3JkZXItc3BhY2luZzowfXRyLm1hdC1oZWFkZXItcm93e2hlaWdodDo1NnB4fXRyLm1hdC1yb3csdHIubWF0LWZvb3Rlci1yb3d7aGVpZ2h0OjQ4cHh9dGgubWF0LWhlYWRlci1jZWxse3RleHQtYWxpZ246bGVmdH1bZGlyPXJ0bF0gdGgubWF0LWhlYWRlci1jZWxse3RleHQtYWxpZ246cmlnaHR9dGgubWF0LWhlYWRlci1jZWxsLHRkLm1hdC1jZWxsLHRkLm1hdC1mb290ZXItY2VsbHtwYWRkaW5nOjA7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZH10aC5tYXQtaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZSx0ZC5tYXQtY2VsbDpmaXJzdC1vZi10eXBlLHRkLm1hdC1mb290ZXItY2VsbDpmaXJzdC1vZi10eXBle3BhZGRpbmctbGVmdDoyNHB4fVtkaXI9cnRsXSB0aC5tYXQtaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIHRkLm1hdC1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSB0ZC5tYXQtZm9vdGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDoyNHB4fXRoLm1hdC1oZWFkZXItY2VsbDpsYXN0LW9mLXR5cGUsdGQubWF0LWNlbGw6bGFzdC1vZi10eXBlLHRkLm1hdC1mb290ZXItY2VsbDpsYXN0LW9mLXR5cGV7cGFkZGluZy1yaWdodDoyNHB4fVtkaXI9cnRsXSB0aC5tYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gdGQubWF0LWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gdGQubWF0LWZvb3Rlci1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDoyNHB4fS5tYXQtdGFibGUtc3RpY2t5e3Bvc2l0aW9uOi13ZWJraXQtc3RpY2t5ICFpbXBvcnRhbnQ7cG9zaXRpb246c3RpY2t5ICFpbXBvcnRhbnR9Lm1hdC10YWJsZS1maXhlZC1sYXlvdXR7dGFibGUtbGF5b3V0OmZpeGVkfVxuJ10sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChjMCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtdGFibGUsIHRhYmxlW21hdC10YWJsZV0iLGV4cG9ydEFzOiJtYXRUYWJsZSIsdGVtcGxhdGU6JCQsaG9zdDp7Y2xhc3M6Im1hdC10YWJsZSIsIltjbGFzcy5tYXQtdGFibGUtZml4ZWQtbGF5b3V0XSI6ImZpeGVkTGF5b3V0In0scHJvdmlkZXJzOlt7cHJvdmlkZTphRix1c2VDbGFzczplRn0se3Byb3ZpZGU6dDAsdXNlRXhpc3Rpbmc6YzB9LHtwcm92aWRlOnkkLHVzZUV4aXN0aW5nOmMwfSx7cHJvdmlkZTpFJCx1c2VDbGFzczpSJH0se3Byb3ZpZGU6cSQsdXNlVmFsdWU6bnVsbH1dLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxzdHlsZXM6WydtYXQtdGFibGV7ZGlzcGxheTpibG9ja31tYXQtaGVhZGVyLXJvd3ttaW4taGVpZ2h0OjU2cHh9bWF0LXJvdyxtYXQtZm9vdGVyLXJvd3ttaW4taGVpZ2h0OjQ4cHh9bWF0LXJvdyxtYXQtaGVhZGVyLXJvdyxtYXQtZm9vdGVyLXJvd3tkaXNwbGF5OmZsZXg7Ym9yZGVyLXdpZHRoOjA7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3h9bWF0LXJvdzo6YWZ0ZXIsbWF0LWhlYWRlci1yb3c6OmFmdGVyLG1hdC1mb290ZXItcm93OjphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jazttaW4taGVpZ2h0OmluaGVyaXQ7Y29udGVudDoiIn1tYXQtY2VsbDpmaXJzdC1vZi10eXBlLG1hdC1oZWFkZXItY2VsbDpmaXJzdC1vZi10eXBlLG1hdC1mb290ZXItY2VsbDpmaXJzdC1vZi10eXBle3BhZGRpbmctbGVmdDoyNHB4fVtkaXI9cnRsXSBtYXQtY2VsbDpmaXJzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gbWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtZm9vdGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDoyNHB4fW1hdC1jZWxsOmxhc3Qtb2YtdHlwZSxtYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlLG1hdC1mb290ZXItY2VsbDpsYXN0LW9mLXR5cGV7cGFkZGluZy1yaWdodDoyNHB4fVtkaXI9cnRsXSBtYXQtY2VsbDpsYXN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gbWF0LWZvb3Rlci1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDoyNHB4fW1hdC1jZWxsLG1hdC1oZWFkZXItY2VsbCxtYXQtZm9vdGVyLWNlbGx7ZmxleDoxO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3dvcmQtd3JhcDpicmVhay13b3JkO21pbi1oZWlnaHQ6aW5oZXJpdH10YWJsZS5tYXQtdGFibGV7Ym9yZGVyLXNwYWNpbmc6MH10ci5tYXQtaGVhZGVyLXJvd3toZWlnaHQ6NTZweH10ci5tYXQtcm93LHRyLm1hdC1mb290ZXItcm93e2hlaWdodDo0OHB4fXRoLm1hdC1oZWFkZXItY2VsbHt0ZXh0LWFsaWduOmxlZnR9W2Rpcj1ydGxdIHRoLm1hdC1oZWFkZXItY2VsbHt0ZXh0LWFsaWduOnJpZ2h0fXRoLm1hdC1oZWFkZXItY2VsbCx0ZC5tYXQtY2VsbCx0ZC5tYXQtZm9vdGVyLWNlbGx7cGFkZGluZzowO2JvcmRlci1ib3R0b20td2lkdGg6MXB4O2JvcmRlci1ib3R0b20tc3R5bGU6c29saWR9dGgubWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGUsdGQubWF0LWNlbGw6Zmlyc3Qtb2YtdHlwZSx0ZC5tYXQtZm9vdGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZXtwYWRkaW5nLWxlZnQ6MjRweH1bZGlyPXJ0bF0gdGgubWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSB0ZC5tYXQtY2VsbDpmaXJzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gdGQubWF0LWZvb3Rlci1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpe3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MjRweH10aC5tYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlLHRkLm1hdC1jZWxsOmxhc3Qtb2YtdHlwZSx0ZC5tYXQtZm9vdGVyLWNlbGw6bGFzdC1vZi10eXBle3BhZGRpbmctcmlnaHQ6MjRweH1bZGlyPXJ0bF0gdGgubWF0LWhlYWRlci1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIHRkLm1hdC1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIHRkLm1hdC1mb290ZXItY2VsbDpsYXN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpe3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MjRweH0ubWF0LXRhYmxlLXN0aWNreXtwb3NpdGlvbjotd2Via2l0LXN0aWNreSAhaW1wb3J0YW50O3Bvc2l0aW9uOnN0aWNreSAhaW1wb3J0YW50fS5tYXQtdGFibGUtZml4ZWQtbGF5b3V0e3RhYmxlLWxheW91dDpmaXhlZH1cbiddfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgZDAgZXh0ZW5kcyBDJHt9ZDAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKGQwKSkpKG58fGQwKX19KSgpLGQwLsm1ZGlyPWxvKHt0eXBlOmQwLHNlbGVjdG9yczpbWyIiLCJtYXRDZWxsRGVmIiwiIl1dLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6QyQsdXNlRXhpc3Rpbmc6ZDB9XSkseHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkMCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0Q2VsbERlZl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6QyQsdXNlRXhpc3Rpbmc6ZDB9XX1dfV0sbnVsbCxudWxsKTtjbGFzcyBwMCBleHRlbmRzIE0ke31wMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEocDApKSkobnx8cDApfX0pKCkscDAuybVkaXI9bG8oe3R5cGU6cDAsc2VsZWN0b3JzOltbIiIsIm1hdEhlYWRlckNlbGxEZWYiLCIiXV0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpNJCx1c2VFeGlzdGluZzpwMH1dKSx4cF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHAwLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXRIZWFkZXJDZWxsRGVmXSIscHJvdmlkZXJzOlt7cHJvdmlkZTpNJCx1c2VFeGlzdGluZzpwMH1dfV19XSxudWxsLG51bGwpO2NsYXNzIG0wIGV4dGVuZHMgdiR7fW0wLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShtMCkpKShufHxtMCl9fSkoKSxtMC7JtWRpcj1sbyh7dHlwZTptMCxzZWxlY3RvcnM6W1siIiwibWF0Rm9vdGVyQ2VsbERlZiIsIiJdXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOnYkLHVzZUV4aXN0aW5nOm0wfV0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobTAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdEZvb3RlckNlbGxEZWZdIixwcm92aWRlcnM6W3twcm92aWRlOnYkLHVzZUV4aXN0aW5nOm0wfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgdTAgZXh0ZW5kcyBPJHtnZXQgbmFtZSgpe3JldHVybiB0aGlzLl9uYW1lfXNldCBuYW1lKHQpe3RoaXMuX3NldE5hbWVJbnB1dCh0KX1fdXBkYXRlQ29sdW1uQ3NzQ2xhc3NOYW1lKCl7c3VwZXIuX3VwZGF0ZUNvbHVtbkNzc0NsYXNzTmFtZSgpLHRoaXMuX2NvbHVtbkNzc0NsYXNzTmFtZS5wdXNoKGBtYXQtY29sdW1uLSR7dGhpcy5jc3NDbGFzc0ZyaWVuZGx5TmFtZX1gKX19dTAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKHUwKSkpKG58fHUwKX19KSgpLHUwLsm1ZGlyPWxvKHt0eXBlOnUwLHNlbGVjdG9yczpbWyIiLCJtYXRDb2x1bW5EZWYiLCIiXV0saW5wdXRzOntzdGlja3k6InN0aWNreSIsbmFtZTpbIm1hdENvbHVtbkRlZiIsIm5hbWUiXX0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpPJCx1c2VFeGlzdGluZzp1MH0se3Byb3ZpZGU6Ik1BVF9TT1JUX0hFQURFUl9DT0xVTU5fREVGIix1c2VFeGlzdGluZzp1MH1dKSx4cF19KSx1MC5wcm9wRGVjb3JhdG9ycz17bmFtZTpbe3R5cGU6eHksYXJnczpbIm1hdENvbHVtbkRlZiJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodTAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdENvbHVtbkRlZl0iLGlucHV0czpbInN0aWNreSJdLHByb3ZpZGVyczpbe3Byb3ZpZGU6TyQsdXNlRXhpc3Rpbmc6dTB9LHtwcm92aWRlOiJNQVRfU09SVF9IRUFERVJfQ09MVU1OX0RFRiIsdXNlRXhpc3Rpbmc6dTB9XX1dfV0sbnVsbCx7bmFtZTpbe3R5cGU6eHksYXJnczpbIm1hdENvbHVtbkRlZiJdfV19KTtjbGFzcyBmMCBleHRlbmRzIHcke31mMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoZjApKSkobnx8ZjApfX0pKCksZjAuybVkaXI9bG8oe3R5cGU6ZjAsc2VsZWN0b3JzOltbIm1hdC1oZWFkZXItY2VsbCJdLFsidGgiLCJtYXQtaGVhZGVyLWNlbGwiLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsImNvbHVtbmhlYWRlciIsMSwibWF0LWhlYWRlci1jZWxsIl0sZmVhdHVyZXM6W3hwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZjAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWhlYWRlci1jZWxsLCB0aFttYXQtaGVhZGVyLWNlbGxdIixob3N0OntjbGFzczoibWF0LWhlYWRlci1jZWxsIixyb2xlOiJjb2x1bW5oZWFkZXIifX1dfV0sbnVsbCxudWxsKTtjbGFzcyBnMCBleHRlbmRzIGske31nMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoZzApKSkobnx8ZzApfX0pKCksZzAuybVkaXI9bG8oe3R5cGU6ZzAsc2VsZWN0b3JzOltbIm1hdC1mb290ZXItY2VsbCJdLFsidGQiLCJtYXQtZm9vdGVyLWNlbGwiLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsImdyaWRjZWxsIiwxLCJtYXQtZm9vdGVyLWNlbGwiXSxmZWF0dXJlczpbeHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnMCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJtYXQtZm9vdGVyLWNlbGwsIHRkW21hdC1mb290ZXItY2VsbF0iLGhvc3Q6e2NsYXNzOiJtYXQtZm9vdGVyLWNlbGwiLHJvbGU6ImdyaWRjZWxsIn19XX1dLG51bGwsbnVsbCk7Y2xhc3MgaDAgZXh0ZW5kcyBTJHt9aDAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKGgwKSkpKG58fGgwKX19KSgpLGgwLsm1ZGlyPWxvKHt0eXBlOmgwLHNlbGVjdG9yczpbWyJtYXQtY2VsbCJdLFsidGQiLCJtYXQtY2VsbCIsIiJdXSxob3N0QXR0cnM6WyJyb2xlIiwiZ3JpZGNlbGwiLDEsIm1hdC1jZWxsIl0sZmVhdHVyZXM6W3hwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoaDAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWNlbGwsIHRkW21hdC1jZWxsXSIsaG9zdDp7Y2xhc3M6Im1hdC1jZWxsIixyb2xlOiJncmlkY2VsbCJ9fV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgYjAgZXh0ZW5kcyB6JHt9YjAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKGIwKSkpKG58fGIwKX19KSgpLGIwLsm1ZGlyPWxvKHt0eXBlOmIwLHNlbGVjdG9yczpbWyIiLCJtYXRIZWFkZXJSb3dEZWYiLCIiXV0saW5wdXRzOntjb2x1bW5zOlsibWF0SGVhZGVyUm93RGVmIiwiY29sdW1ucyJdLHN0aWNreTpbIm1hdEhlYWRlclJvd0RlZlN0aWNreSIsInN0aWNreSJdfSxmZWF0dXJlczpbcGcoW3twcm92aWRlOnokLHVzZUV4aXN0aW5nOmIwfV0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYjAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdEhlYWRlclJvd0RlZl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6eiQsdXNlRXhpc3Rpbmc6YjB9XSxpbnB1dHM6WyJjb2x1bW5zOiBtYXRIZWFkZXJSb3dEZWYiLCJzdGlja3k6IG1hdEhlYWRlclJvd0RlZlN0aWNreSJdfV19XSxudWxsLG51bGwpO2NsYXNzIHkwIGV4dGVuZHMgSCR7fXkwLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYSh5MCkpKShufHx5MCl9fSkoKSx5MC7JtWRpcj1sbyh7dHlwZTp5MCxzZWxlY3RvcnM6W1siIiwibWF0Rm9vdGVyUm93RGVmIiwiIl1dLGlucHV0czp7Y29sdW1uczpbIm1hdEZvb3RlclJvd0RlZiIsImNvbHVtbnMiXSxzdGlja3k6WyJtYXRGb290ZXJSb3dEZWZTdGlja3kiLCJzdGlja3kiXX0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpIJCx1c2VFeGlzdGluZzp5MH1dKSx4cF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHkwLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6IlttYXRGb290ZXJSb3dEZWZdIixwcm92aWRlcnM6W3twcm92aWRlOkgkLHVzZUV4aXN0aW5nOnkwfV0saW5wdXRzOlsiY29sdW1uczogbWF0Rm9vdGVyUm93RGVmIiwic3RpY2t5OiBtYXRGb290ZXJSb3dEZWZTdGlja3kiXX1dfV0sbnVsbCxudWxsKTtjbGFzcyBfMCBleHRlbmRzIEYke31fMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoXzApKSkobnx8XzApfX0pKCksXzAuybVkaXI9bG8oe3R5cGU6XzAsc2VsZWN0b3JzOltbIiIsIm1hdFJvd0RlZiIsIiJdXSxpbnB1dHM6e2NvbHVtbnM6WyJtYXRSb3dEZWZDb2x1bW5zIiwiY29sdW1ucyJdLHdoZW46WyJtYXRSb3dEZWZXaGVuIiwid2hlbiJdfSxmZWF0dXJlczpbcGcoW3twcm92aWRlOkYkLHVzZUV4aXN0aW5nOl8wfV0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoXzAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdFJvd0RlZl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6RiQsdXNlRXhpc3Rpbmc6XzB9XSxpbnB1dHM6WyJjb2x1bW5zOiBtYXRSb3dEZWZDb2x1bW5zIiwid2hlbjogbWF0Um93RGVmV2hlbiJdfV19XSxudWxsLG51bGwpO2NsYXNzIEMwIGV4dGVuZHMgQiR7fUMwLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShDMCkpKShufHxDMCl9fSkoKSxDMC7JtWNtcD10byh7dHlwZTpDMCxzZWxlY3RvcnM6W1sibWF0LWhlYWRlci1yb3ciXSxbInRyIiwibWF0LWhlYWRlci1yb3ciLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsInJvdyIsMSwibWF0LWhlYWRlci1yb3ciXSxleHBvcnRBczpbIm1hdEhlYWRlclJvdyJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6QiQsdXNlRXhpc3Rpbmc6QzB9XSkseHBdLGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJjZGtDZWxsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJkltKDAsMCl9LGRpcmVjdGl2ZXM6W0wkXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEMwLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC1oZWFkZXItcm93LCB0clttYXQtaGVhZGVyLXJvd10iLHRlbXBsYXRlOkEkLGhvc3Q6e2NsYXNzOiJtYXQtaGVhZGVyLXJvdyIscm9sZToicm93In0sY2hhbmdlRGV0ZWN0aW9uOnpuLkRlZmF1bHQsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGV4cG9ydEFzOiJtYXRIZWFkZXJSb3ciLHByb3ZpZGVyczpbe3Byb3ZpZGU6QiQsdXNlRXhpc3Rpbmc6QzB9XX1dfV0sbnVsbCxudWxsKTtjbGFzcyBNMCBleHRlbmRzIFYke31NMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoTTApKSkobnx8TTApfX0pKCksTTAuybVjbXA9dG8oe3R5cGU6TTAsc2VsZWN0b3JzOltbIm1hdC1mb290ZXItcm93Il0sWyJ0ciIsIm1hdC1mb290ZXItcm93IiwiIl1dLGhvc3RBdHRyczpbInJvbGUiLCJyb3ciLDEsIm1hdC1mb290ZXItcm93Il0sZXhwb3J0QXM6WyJtYXRGb290ZXJSb3ciXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOlYkLHVzZUV4aXN0aW5nOk0wfV0pLHhwXSxkZWNsczoxLHZhcnM6MCxjb25zdHM6W1siY2RrQ2VsbE91dGxldCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZJbSgwLDApfSxkaXJlY3RpdmVzOltMJF0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChNMCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtZm9vdGVyLXJvdywgdHJbbWF0LWZvb3Rlci1yb3ddIix0ZW1wbGF0ZTpBJCxob3N0OntjbGFzczoibWF0LWZvb3Rlci1yb3ciLHJvbGU6InJvdyJ9LGNoYW5nZURldGVjdGlvbjp6bi5EZWZhdWx0LGVuY2Fwc3VsYXRpb246SG4uTm9uZSxleHBvcnRBczoibWF0Rm9vdGVyUm93Iixwcm92aWRlcnM6W3twcm92aWRlOlYkLHVzZUV4aXN0aW5nOk0wfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgdjAgZXh0ZW5kcyBqJHt9djAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKHYwKSkpKG58fHYwKX19KSgpLHYwLsm1Y21wPXRvKHt0eXBlOnYwLHNlbGVjdG9yczpbWyJtYXQtcm93Il0sWyJ0ciIsIm1hdC1yb3ciLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsInJvdyIsMSwibWF0LXJvdyJdLGV4cG9ydEFzOlsibWF0Um93Il0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpqJCx1c2VFeGlzdGluZzp2MH1dKSx4cF0sZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbImNka0NlbGxPdXRsZXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmSW0oMCwwKX0sZGlyZWN0aXZlczpbTCRdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodjAsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXJvdywgdHJbbWF0LXJvd10iLHRlbXBsYXRlOkEkLGhvc3Q6e2NsYXNzOiJtYXQtcm93Iixyb2xlOiJyb3cifSxjaGFuZ2VEZXRlY3Rpb246em4uRGVmYXVsdCxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsZXhwb3J0QXM6Im1hdFJvdyIscHJvdmlkZXJzOlt7cHJvdmlkZTpqJCx1c2VFeGlzdGluZzp2MH1dfV19XSxudWxsLG51bGwpO2NsYXNzIHgwIGV4dGVuZHMgVSR7fXgwLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYSh4MCkpKShufHx4MCl9fSkoKSx4MC7JtWRpcj1sbyh7dHlwZTp4MCxzZWxlY3RvcnM6W1sibmctdGVtcGxhdGUiLCJtYXROb0RhdGFSb3ciLCIiXV0sZmVhdHVyZXM6W3BnKFt7cHJvdmlkZTpVJCx1c2VFeGlzdGluZzp4MH1dKSx4cF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHgwLFt7dHlwZTpDeSxhcmdzOlt7c2VsZWN0b3I6Im5nLXRlbXBsYXRlW21hdE5vRGF0YVJvd10iLHByb3ZpZGVyczpbe3Byb3ZpZGU6VSQsdXNlRXhpc3Rpbmc6eDB9XX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIE8wIGV4dGVuZHMgbjB7fU8wLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1BYShPMCkpKShufHxPMCl9fSkoKSxPMC7JtWNtcD10byh7dHlwZTpPMCxzZWxlY3RvcnM6W1sibWF0LXRleHQtY29sdW1uIl1dLGZlYXR1cmVzOlt4cF0sZGVjbHM6Myx2YXJzOjAsY29uc3RzOltbIm1hdENvbHVtbkRlZiIsIiJdLFsibWF0LWhlYWRlci1jZWxsIiwiIiwzLCJ0ZXh0LWFsaWduIiw0LCJtYXRIZWFkZXJDZWxsRGVmIl0sWyJtYXQtY2VsbCIsIiIsMywidGV4dC1hbGlnbiIsNCwibWF0Q2VsbERlZiJdLFsibWF0LWhlYWRlci1jZWxsIiwiIl0sWyJtYXQtY2VsbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoTm0oMCwwKSxRcCgxLHIwLDIsMywidGgiLDEpLFFwKDIsczAsMiwzLCJ0ZCIsMiksem0oKSl9LGRpcmVjdGl2ZXM6W3UwLHAwLGQwLGYwLGgwXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE8wLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1hdC10ZXh0LWNvbHVtbiIsdGVtcGxhdGU6J1xuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBbc3R5bGUudGV4dC1hbGlnbl09Imp1c3RpZnkiPlxuICAgICAgICB7e2hlYWRlclRleHR9fVxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj0ibGV0IGRhdGEiIFtzdHlsZS50ZXh0LWFsaWduXT0ianVzdGlmeSI+XG4gICAgICAgIHt7ZGF0YUFjY2Vzc29yKGRhdGEsIG5hbWUpfX1cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICcsZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGNoYW5nZURldGVjdGlvbjp6bi5EZWZhdWx0fV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgUDA9W2MwLGwwLHAwLGIwLHUwLGQwLF8wLG0wLHkwLGYwLGgwLGcwLEMwLHYwLE0wLHgwLE8wXTtjbGFzcyB3MHt9dzAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHcwKX0sdzAuybVtb2Q9YW8oe3R5cGU6dzB9KSx3MC7JtWluaj12bih7aW1wb3J0czpbW2kwLFhJXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHcwLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbaTAsWEldLGV4cG9ydHM6W1hJLFAwXSxkZWNsYXJhdGlvbnM6UDB9XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyh3MCx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2MwLGwwLHAwLGIwLHUwLGQwLF8wLG0wLHkwLGYwLGgwLGcwLEMwLHYwLE0wLHgwLE8wXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltpMCxYSV19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bWEksYzAsbDAscDAsYjAsdTAsZDAsXzAsbTAseTAsZjAsaDAsZzAsQzAsdjAsTTAseDAsTzBdfX0pO2NsYXNzIGswIGV4dGVuZHMgUUh7Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoKSx0aGlzLl9yZW5kZXJEYXRhPW5ldyBGKFtdKSx0aGlzLl9maWx0ZXI9bmV3IEYoIiIpLHRoaXMuX2ludGVybmFsUGFnZUNoYW5nZXM9bmV3IEksdGhpcy5fcmVuZGVyQ2hhbmdlc1N1YnNjcmlwdGlvbj1udWxsLHRoaXMuc29ydGluZ0RhdGFBY2Nlc3Nvcj0odCxlKT0+e2NvbnN0IG49dFtlXTtpZihDeihuKSl7Y29uc3QgdD1OdW1iZXIobik7cmV0dXJuIHQ8OTAwNzE5OTI1NDc0MDk5MT90Om59cmV0dXJuIG59LHRoaXMuc29ydERhdGE9KHQsZSk9Pntjb25zdCBuPWUuYWN0aXZlLG89ZS5kaXJlY3Rpb247cmV0dXJuIG4mJiIiIT1vP3Quc29ydCgoKHQsZSk9PntsZXQgaT10aGlzLnNvcnRpbmdEYXRhQWNjZXNzb3IodCxuKSxhPXRoaXMuc29ydGluZ0RhdGFBY2Nlc3NvcihlLG4pO2NvbnN0IHI9dHlwZW9mIGkscz10eXBlb2YgYTtyIT09cyYmKCJudW1iZXIiPT09ciYmKGkrPSIiKSwibnVtYmVyIj09PXMmJihhKz0iIikpO2xldCBsPTA7cmV0dXJuIG51bGwhPWkmJm51bGwhPWE/aT5hP2w9MTppPGEmJihsPS0xKTpudWxsIT1pP2w9MTpudWxsIT1hJiYobD0tMSksbCooImFzYyI9PW8/MTotMSl9KSk6dH0sdGhpcy5maWx0ZXJQcmVkaWNhdGU9KHQsZSk9Pntjb25zdCBuPU9iamVjdC5rZXlzKHQpLnJlZHVjZSgoKGUsbik9PmUrdFtuXSsi4pesIiksIiIpLnRvTG93ZXJDYXNlKCksbz1lLnRyaW0oKS50b0xvd2VyQ2FzZSgpO3JldHVybi0xIT1uLmluZGV4T2Yobyl9LHRoaXMuX2RhdGE9bmV3IEYodCksdGhpcy5fdXBkYXRlQ2hhbmdlU3Vic2NyaXB0aW9uKCl9Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy5fZGF0YS52YWx1ZX1zZXQgZGF0YSh0KXt0aGlzLl9kYXRhLm5leHQodCksdGhpcy5fcmVuZGVyQ2hhbmdlc1N1YnNjcmlwdGlvbnx8dGhpcy5fZmlsdGVyRGF0YSh0KX1nZXQgZmlsdGVyKCl7cmV0dXJuIHRoaXMuX2ZpbHRlci52YWx1ZX1zZXQgZmlsdGVyKHQpe3RoaXMuX2ZpbHRlci5uZXh0KHQpLHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb258fHRoaXMuX2ZpbHRlckRhdGEodGhpcy5kYXRhKX1nZXQgc29ydCgpe3JldHVybiB0aGlzLl9zb3J0fXNldCBzb3J0KHQpe3RoaXMuX3NvcnQ9dCx0aGlzLl91cGRhdGVDaGFuZ2VTdWJzY3JpcHRpb24oKX1nZXQgcGFnaW5hdG9yKCl7cmV0dXJuIHRoaXMuX3BhZ2luYXRvcn1zZXQgcGFnaW5hdG9yKHQpe3RoaXMuX3BhZ2luYXRvcj10LHRoaXMuX3VwZGF0ZUNoYW5nZVN1YnNjcmlwdGlvbigpfV91cGRhdGVDaGFuZ2VTdWJzY3JpcHRpb24oKXt2YXIgdDtjb25zdCBlPXRoaXMuX3NvcnQ/cmUodGhpcy5fc29ydC5zb3J0Q2hhbmdlLHRoaXMuX3NvcnQuaW5pdGlhbGl6ZWQpOkV0KG51bGwpLG49dGhpcy5fcGFnaW5hdG9yP3JlKHRoaXMuX3BhZ2luYXRvci5wYWdlLHRoaXMuX2ludGVybmFsUGFnZUNoYW5nZXMsdGhpcy5fcGFnaW5hdG9yLmluaXRpYWxpemVkKTpFdChudWxsKSxvPVd0KFt0aGlzLl9kYXRhLHRoaXMuX2ZpbHRlcl0pLnBpcGUoSXQoKChbdF0pPT50aGlzLl9maWx0ZXJEYXRhKHQpKSkpLGk9V3QoW28sZV0pLnBpcGUoSXQoKChbdF0pPT50aGlzLl9vcmRlckRhdGEodCkpKSksYT1XdChbaSxuXSkucGlwZShJdCgoKFt0XSk9PnRoaXMuX3BhZ2VEYXRhKHQpKSkpO251bGw9PT0odD10aGlzLl9yZW5kZXJDaGFuZ2VzU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dHx8dC51bnN1YnNjcmliZSgpLHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb249YS5zdWJzY3JpYmUoKHQ9PnRoaXMuX3JlbmRlckRhdGEubmV4dCh0KSkpfV9maWx0ZXJEYXRhKHQpe3JldHVybiB0aGlzLmZpbHRlcmVkRGF0YT1udWxsPT10aGlzLmZpbHRlcnx8IiI9PT10aGlzLmZpbHRlcj90OnQuZmlsdGVyKCh0PT50aGlzLmZpbHRlclByZWRpY2F0ZSh0LHRoaXMuZmlsdGVyKSkpLHRoaXMucGFnaW5hdG9yJiZ0aGlzLl91cGRhdGVQYWdpbmF0b3IodGhpcy5maWx0ZXJlZERhdGEubGVuZ3RoKSx0aGlzLmZpbHRlcmVkRGF0YX1fb3JkZXJEYXRhKHQpe3JldHVybiB0aGlzLnNvcnQ/dGhpcy5zb3J0RGF0YSh0LnNsaWNlKCksdGhpcy5zb3J0KTp0fV9wYWdlRGF0YSh0KXtpZighdGhpcy5wYWdpbmF0b3IpcmV0dXJuIHQ7Y29uc3QgZT10aGlzLnBhZ2luYXRvci5wYWdlSW5kZXgqdGhpcy5wYWdpbmF0b3IucGFnZVNpemU7cmV0dXJuIHQuc2xpY2UoZSxlK3RoaXMucGFnaW5hdG9yLnBhZ2VTaXplKX1fdXBkYXRlUGFnaW5hdG9yKHQpe1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57Y29uc3QgZT10aGlzLnBhZ2luYXRvcjtpZihlJiYoZS5sZW5ndGg9dCxlLnBhZ2VJbmRleD4wKSl7Y29uc3QgdD1NYXRoLmNlaWwoZS5sZW5ndGgvZS5wYWdlU2l6ZSktMXx8MCxuPU1hdGgubWluKGUucGFnZUluZGV4LHQpO24hPT1lLnBhZ2VJbmRleCYmKGUucGFnZUluZGV4PW4sdGhpcy5faW50ZXJuYWxQYWdlQ2hhbmdlcy5uZXh0KCkpfX0pKX1jb25uZWN0KCl7cmV0dXJuIHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb258fHRoaXMuX3VwZGF0ZUNoYW5nZVN1YnNjcmlwdGlvbigpLHRoaXMuX3JlbmRlckRhdGF9ZGlzY29ubmVjdCgpe3ZhciB0O251bGw9PT0odD10aGlzLl9yZW5kZXJDaGFuZ2VzU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dHx8dC51bnN1YnNjcmliZSgpLHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb249bnVsbH19Y2xhc3MgUzAgZXh0ZW5kcyBrMHt9Y29uc3QgRDA9WyJwYW5lbCJdO2Z1bmN0aW9uIEUwKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwwLDEpLFhtKDIpLEFtKCkpLDImdCl7Y29uc3QgdD1lLmlkLG49WW0oKTtEbSgiaWQiLG4uaWQpKCJuZ0NsYXNzIixuLl9jbGFzc0xpc3QpLGpwKCJhcmlhLWxhYmVsIixuLmFyaWFMYWJlbHx8bnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbi5fZ2V0UGFuZWxBcmlhTGFiZWxsZWRieSh0KSl9fWxldCBSMD0wO2NsYXNzIEEwe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zb3VyY2U9dCx0aGlzLm9wdGlvbj1lfX1jb25zdCBUMD1RSShjbGFzc3t9KSxOMD1uZXcgR2EoIm1hdC1hdXRvY29tcGxldGUtZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiB6MCgpe3JldHVybnthdXRvQWN0aXZlRmlyc3RPcHRpb246ITF9fX0pO2NsYXNzIEkwIGV4dGVuZHMgVDB7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj10LHRoaXMuX2VsZW1lbnRSZWY9ZSx0aGlzLl9hY3RpdmVPcHRpb25DaGFuZ2VzPW0uRU1QVFksdGhpcy5zaG93UGFuZWw9ITEsdGhpcy5faXNPcGVuPSExLHRoaXMuZGlzcGxheVdpdGg9bnVsbCx0aGlzLm9wdGlvblNlbGVjdGVkPW5ldyBMaCx0aGlzLm9wZW5lZD1uZXcgTGgsdGhpcy5jbG9zZWQ9bmV3IExoLHRoaXMub3B0aW9uQWN0aXZhdGVkPW5ldyBMaCx0aGlzLl9jbGFzc0xpc3Q9e30sdGhpcy5pZD0ibWF0LWF1dG9jb21wbGV0ZS0iK1IwKyssdGhpcy5pbmVydEdyb3Vwcz0obnVsbD09bz92b2lkIDA6by5TQUZBUkkpfHwhMSx0aGlzLl9hdXRvQWN0aXZlRmlyc3RPcHRpb249ISFuLmF1dG9BY3RpdmVGaXJzdE9wdGlvbn1nZXQgaXNPcGVuKCl7cmV0dXJuIHRoaXMuX2lzT3BlbiYmdGhpcy5zaG93UGFuZWx9Z2V0IGF1dG9BY3RpdmVGaXJzdE9wdGlvbigpe3JldHVybiB0aGlzLl9hdXRvQWN0aXZlRmlyc3RPcHRpb259c2V0IGF1dG9BY3RpdmVGaXJzdE9wdGlvbih0KXt0aGlzLl9hdXRvQWN0aXZlRmlyc3RPcHRpb249eXoodCl9c2V0IGNsYXNzTGlzdCh0KXt0aGlzLl9jbGFzc0xpc3Q9dCYmdC5sZW5ndGg/KGZ1bmN0aW9uIGUodCxuPS9ccysvKXtjb25zdCBvPVtdO2lmKG51bGwhPXQpe2NvbnN0IGU9QXJyYXkuaXNBcnJheSh0KT90OmAke3R9YC5zcGxpdChuKTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPWAke3R9YC50cmltKCk7ZSYmby5wdXNoKGUpfX1yZXR1cm4gb30pKHQpLnJlZHVjZSgoKHQsZSk9Pih0W2VdPSEwLHQpKSx7fSk6e30sdGhpcy5fc2V0VmlzaWJpbGl0eUNsYXNzZXModGhpcy5fY2xhc3NMaXN0KSx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lPSIifW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2tleU1hbmFnZXI9bmV3IHRJKHRoaXMub3B0aW9ucykud2l0aFdyYXAoKSx0aGlzLl9hY3RpdmVPcHRpb25DaGFuZ2VzPXRoaXMuX2tleU1hbmFnZXIuY2hhbmdlLnN1YnNjcmliZSgodD0+e3RoaXMub3B0aW9uQWN0aXZhdGVkLmVtaXQoe3NvdXJjZTp0aGlzLG9wdGlvbjp0aGlzLm9wdGlvbnMudG9BcnJheSgpW3RdfHxudWxsfSl9KSksdGhpcy5fc2V0VmlzaWJpbGl0eSgpfW5nT25EZXN0cm95KCl7dGhpcy5fYWN0aXZlT3B0aW9uQ2hhbmdlcy51bnN1YnNjcmliZSgpfV9zZXRTY3JvbGxUb3AodCl7dGhpcy5wYW5lbCYmKHRoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A9dCl9X2dldFNjcm9sbFRvcCgpe3JldHVybiB0aGlzLnBhbmVsP3RoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A6MH1fc2V0VmlzaWJpbGl0eSgpe3RoaXMuc2hvd1BhbmVsPSEhdGhpcy5vcHRpb25zLmxlbmd0aCx0aGlzLl9zZXRWaXNpYmlsaXR5Q2xhc3Nlcyh0aGlzLl9jbGFzc0xpc3QpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfV9lbWl0U2VsZWN0RXZlbnQodCl7Y29uc3QgZT1uZXcgQTAodGhpcyx0KTt0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoZSl9X2dldFBhbmVsQXJpYUxhYmVsbGVkYnkodCl7cmV0dXJuIHRoaXMuYXJpYUxhYmVsP251bGw6dGhpcy5hcmlhTGFiZWxsZWRieT8odD90KyIgIjoiIikrdGhpcy5hcmlhTGFiZWxsZWRieTp0fV9zZXRWaXNpYmlsaXR5Q2xhc3Nlcyh0KXt0W3RoaXMuX3Zpc2libGVDbGFzc109dGhpcy5zaG93UGFuZWwsdFt0aGlzLl9oaWRkZW5DbGFzc109IXRoaXMuc2hvd1BhbmVsfX1JMC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8STApKFNtKFVnKSxTbShoZyksU20oTjApLFNtKHd6KSl9LEkwLsm1ZGlyPWxvKHt0eXBlOkkwLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUWgoWGcsNyksUWgoRDAsNSkpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4udGVtcGxhdGU9dC5maXJzdCksSmgodD10YigpKSYmKG4ucGFuZWw9dC5maXJzdCl9fSxpbnB1dHM6e2Rpc3BsYXlXaXRoOiJkaXNwbGF5V2l0aCIsYXV0b0FjdGl2ZUZpcnN0T3B0aW9uOiJhdXRvQWN0aXZlRmlyc3RPcHRpb24iLGNsYXNzTGlzdDpbImNsYXNzIiwiY2xhc3NMaXN0Il0sYXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLGFyaWFMYWJlbGxlZGJ5OlsiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYUxhYmVsbGVkYnkiXSxwYW5lbFdpZHRoOiJwYW5lbFdpZHRoIn0sb3V0cHV0czp7b3B0aW9uU2VsZWN0ZWQ6Im9wdGlvblNlbGVjdGVkIixvcGVuZWQ6Im9wZW5lZCIsY2xvc2VkOiJjbG9zZWQiLG9wdGlvbkFjdGl2YXRlZDoib3B0aW9uQWN0aXZhdGVkIn0sZmVhdHVyZXM6W3hwXX0pLEkwLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6VWd9LHt0eXBlOmhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbTjBdfV19LHt0eXBlOnd6fV0sSTAucHJvcERlY29yYXRvcnM9e3RlbXBsYXRlOlt7dHlwZTpaYSxhcmdzOltYZyx7c3RhdGljOiEwfV19XSxwYW5lbDpbe3R5cGU6WmEsYXJnczpbInBhbmVsIl19XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0sZGlzcGxheVdpdGg6W3t0eXBlOnh5fV0sYXV0b0FjdGl2ZUZpcnN0T3B0aW9uOlt7dHlwZTp4eX1dLHBhbmVsV2lkdGg6W3t0eXBlOnh5fV0sb3B0aW9uU2VsZWN0ZWQ6W3t0eXBlOk95fV0sb3BlbmVkOlt7dHlwZTpPeX1dLGNsb3NlZDpbe3R5cGU6T3l9XSxvcHRpb25BY3RpdmF0ZWQ6W3t0eXBlOk95fV0sY2xhc3NMaXN0Olt7dHlwZTp4eSxhcmdzOlsiY2xhc3MiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEkwLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpVZ30se3R5cGU6aGd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltOMF19XX0se3R5cGU6d3p9XX0pLHtkaXNwbGF5V2l0aDpbe3R5cGU6eHl9XSxvcHRpb25TZWxlY3RlZDpbe3R5cGU6T3l9XSxvcGVuZWQ6W3t0eXBlOk95fV0sY2xvc2VkOlt7dHlwZTpPeX1dLG9wdGlvbkFjdGl2YXRlZDpbe3R5cGU6T3l9XSxhdXRvQWN0aXZlRmlyc3RPcHRpb246W3t0eXBlOnh5fV0sY2xhc3NMaXN0Olt7dHlwZTp4eSxhcmdzOlsiY2xhc3MiXX1dLHRlbXBsYXRlOlt7dHlwZTpaYSxhcmdzOltYZyx7c3RhdGljOiEwfV19XSxwYW5lbDpbe3R5cGU6WmEsYXJnczpbInBhbmVsIl19XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0scGFuZWxXaWR0aDpbe3R5cGU6eHl9XX0pO2NsYXNzIEgwIGV4dGVuZHMgSTB7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3Zpc2libGVDbGFzcz0ibWF0LWF1dG9jb21wbGV0ZS12aXNpYmxlIix0aGlzLl9oaWRkZW5DbGFzcz0ibWF0LWF1dG9jb21wbGV0ZS1oaWRkZW4ifX1IMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoSDApKSkobnx8SDApfX0pKCksSDAuybVjbXA9dG8oe3R5cGU6SDAsc2VsZWN0b3JzOltbIm1hdC1hdXRvY29tcGxldGUiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYoJGgobyx6SCw1KSwkaChvLEJILDUpKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLm9wdGlvbkdyb3Vwcz10KSxKaCh0PXRiKCkpJiYobi5vcHRpb25zPXQpfX0saG9zdEF0dHJzOlsxLCJtYXQtYXV0b2NvbXBsZXRlIl0saW5wdXRzOntkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIn0sZXhwb3J0QXM6WyJtYXRBdXRvY29tcGxldGUiXSxmZWF0dXJlczpbcGcoW3twcm92aWRlOlJILHVzZUV4aXN0aW5nOkgwfV0pLHhwXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIl0sZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbInJvbGUiLCJsaXN0Ym94IiwxLCJtYXQtYXV0b2NvbXBsZXRlLXBhbmVsIiwzLCJpZCIsIm5nQ2xhc3MiXSxbInBhbmVsIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFFwKDAsRTAsMyw0LCJuZy10ZW1wbGF0ZSIpKX0sZGlyZWN0aXZlczpbYU1dLHN0eWxlczpbIi5tYXQtYXV0b2NvbXBsZXRlLXBhbmVse21pbi13aWR0aDoxMTJweDttYXgtd2lkdGg6MjgwcHg7b3ZlcmZsb3c6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDt2aXNpYmlsaXR5OmhpZGRlbjttYXgtd2lkdGg6bm9uZTttYXgtaGVpZ2h0OjI1NnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4fS5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsLm1hdC1hdXRvY29tcGxldGUtdmlzaWJsZXt2aXNpYmlsaXR5OnZpc2libGV9Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwubWF0LWF1dG9jb21wbGV0ZS1oaWRkZW57dmlzaWJpbGl0eTpoaWRkZW59Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwtYWJvdmUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWx7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6NHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweH0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LWRpdmlkZXItaG9yaXpvbnRhbHttYXJnaW4tdG9wOi0xcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbHtvdXRsaW5lOnNvbGlkIDFweH1tYXQtYXV0b2NvbXBsZXRle2Rpc3BsYXk6bm9uZX1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLEgwLnByb3BEZWNvcmF0b3JzPXtvcHRpb25Hcm91cHM6W3t0eXBlOllhLGFyZ3M6W3pILHtkZXNjZW5kYW50czohMH1dfV0sb3B0aW9uczpbe3R5cGU6WWEsYXJnczpbQkgse2Rlc2NlbmRhbnRzOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChIMCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtYXV0b2NvbXBsZXRlIix0ZW1wbGF0ZTonPG5nLXRlbXBsYXRlIGxldC1mb3JtRmllbGRJZD0iaWQiPlxuICA8ZGl2IGNsYXNzPSJtYXQtYXV0b2NvbXBsZXRlLXBhbmVsIlxuICAgICAgIHJvbGU9Imxpc3Rib3giXG4gICAgICAgW2lkXT0iaWQiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbF09ImFyaWFMYWJlbCB8fCBudWxsIlxuICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09Il9nZXRQYW5lbEFyaWFMYWJlbGxlZGJ5KGZvcm1GaWVsZElkKSJcbiAgICAgICBbbmdDbGFzc109Il9jbGFzc0xpc3QiXG4gICAgICAgI3BhbmVsPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuJyxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxleHBvcnRBczoibWF0QXV0b2NvbXBsZXRlIixpbnB1dHM6WyJkaXNhYmxlUmlwcGxlIl0saG9zdDp7Y2xhc3M6Im1hdC1hdXRvY29tcGxldGUifSxwcm92aWRlcnM6W3twcm92aWRlOlJILHVzZUV4aXN0aW5nOkgwfV0sc3R5bGVzOlsiLm1hdC1hdXRvY29tcGxldGUtcGFuZWx7bWluLXdpZHRoOjExMnB4O21heC13aWR0aDoyODBweDtvdmVyZmxvdzphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO3Zpc2liaWxpdHk6aGlkZGVuO21heC13aWR0aDpub25lO21heC1oZWlnaHQ6MjU2cHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo0cHh9Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwubWF0LWF1dG9jb21wbGV0ZS12aXNpYmxle3Zpc2liaWxpdHk6dmlzaWJsZX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbC5tYXQtYXV0b2NvbXBsZXRlLWhpZGRlbnt2aXNpYmlsaXR5OmhpZGRlbn0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbC1hYm92ZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NHB4fS5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtZGl2aWRlci1ob3Jpem9udGFse21hcmdpbi10b3A6LTFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVse291dGxpbmU6c29saWQgMXB4fW1hdC1hdXRvY29tcGxldGV7ZGlzcGxheTpub25lfVxuIl19XX1dLG51bGwse29wdGlvbkdyb3Vwczpbe3R5cGU6WWEsYXJnczpbekgse2Rlc2NlbmRhbnRzOiEwfV19XSxvcHRpb25zOlt7dHlwZTpZYSxhcmdzOltCSCx7ZGVzY2VuZGFudHM6ITB9XX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBGMHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmVsZW1lbnRSZWY9dH19RjAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEYwKShTbShoZykpfSxGMC7JtWRpcj1sbyh7dHlwZTpGMH0pLEYwLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEYwLFt7dHlwZTpDeX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ31dfSksbnVsbCk7Y2xhc3MgTDAgZXh0ZW5kcyBGMHt9TDAuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKEwwKSkpKG58fEwwKX19KSgpLEwwLsm1ZGlyPWxvKHt0eXBlOkwwLHNlbGVjdG9yczpbWyIiLCJtYXRBdXRvY29tcGxldGVPcmlnaW4iLCIiXV0sZXhwb3J0QXM6WyJtYXRBdXRvY29tcGxldGVPcmlnaW4iXSxmZWF0dXJlczpbeHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMMCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbbWF0QXV0b2NvbXBsZXRlT3JpZ2luXSIsZXhwb3J0QXM6Im1hdEF1dG9jb21wbGV0ZU9yaWdpbiJ9XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBCMD1uZXcgR2EoIm1hdC1hdXRvY29tcGxldGUtc2Nyb2xsLXN0cmF0ZWd5IiksVjA9e3Byb3ZpZGU6QjAsZGVwczpbcExdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gajAodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCl9fSxVMD17cHJvdmlkZTpJVix1c2VFeGlzdGluZzpxZSgoKCk9PlcwKSksbXVsdGk6ITB9O2NsYXNzIEcwe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMsZCl7dGhpcy5fZWxlbWVudD10LHRoaXMuX292ZXJsYXk9ZSx0aGlzLl92aWV3Q29udGFpbmVyUmVmPW4sdGhpcy5fem9uZT1vLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWksdGhpcy5fZGlyPXIsdGhpcy5fZm9ybUZpZWxkPXMsdGhpcy5fZG9jdW1lbnQ9bCx0aGlzLl92aWV3cG9ydFJ1bGVyPWMsdGhpcy5fZGVmYXVsdHM9ZCx0aGlzLl9jb21wb25lbnREZXN0cm95ZWQ9ITEsdGhpcy5fYXV0b2NvbXBsZXRlRGlzYWJsZWQ9ITEsdGhpcy5fbWFudWFsbHlGbG9hdGluZ0xhYmVsPSExLHRoaXMuX3ZpZXdwb3J0U3Vic2NyaXB0aW9uPW0uRU1QVFksdGhpcy5fY2FuT3Blbk9uTmV4dEZvY3VzPSEwLHRoaXMuX2Nsb3NlS2V5RXZlbnRTdHJlYW09bmV3IEksdGhpcy5fd2luZG93Qmx1ckhhbmRsZXI9KCk9Pnt0aGlzLl9jYW5PcGVuT25OZXh0Rm9jdXM9dGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudHx8dGhpcy5wYW5lbE9wZW59LHRoaXMuX29uQ2hhbmdlPSgpPT57fSx0aGlzLl9vblRvdWNoZWQ9KCk9Pnt9LHRoaXMucG9zaXRpb249ImF1dG8iLHRoaXMuYXV0b2NvbXBsZXRlQXR0cmlidXRlPSJvZmYiLHRoaXMuX292ZXJsYXlBdHRhY2hlZD0hMSx0aGlzLm9wdGlvblNlbGVjdGlvbnM9UXQoKCgpPT50aGlzLmF1dG9jb21wbGV0ZSYmdGhpcy5hdXRvY29tcGxldGUub3B0aW9ucz9yZSguLi50aGlzLmF1dG9jb21wbGV0ZS5vcHRpb25zLm1hcCgodD0+dC5vblNlbGVjdGlvbkNoYW5nZSkpKTp0aGlzLl96b25lLm9uU3RhYmxlLnBpcGUoYmUoMSksemUoKCgpPT50aGlzLm9wdGlvblNlbGVjdGlvbnMpKSkpKSx0aGlzLl9zY3JvbGxTdHJhdGVneT1hfWdldCBhdXRvY29tcGxldGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLl9hdXRvY29tcGxldGVEaXNhYmxlZH1zZXQgYXV0b2NvbXBsZXRlRGlzYWJsZWQodCl7dGhpcy5fYXV0b2NvbXBsZXRlRGlzYWJsZWQ9eXoodCl9bmdBZnRlclZpZXdJbml0KCl7Y29uc3QgdD10aGlzLl9nZXRXaW5kb3coKTt2b2lkIDAhPT10JiZ0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+dC5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl93aW5kb3dCbHVySGFuZGxlcikpKX1uZ09uQ2hhbmdlcyh0KXt0LnBvc2l0aW9uJiZ0aGlzLl9wb3NpdGlvblN0cmF0ZWd5JiYodGhpcy5fc2V0U3RyYXRlZ3lQb3NpdGlvbnModGhpcy5fcG9zaXRpb25TdHJhdGVneSksdGhpcy5wYW5lbE9wZW4mJnRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSl9bmdPbkRlc3Ryb3koKXtjb25zdCB0PXRoaXMuX2dldFdpbmRvdygpO3ZvaWQgMCE9PXQmJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5fd2luZG93Qmx1ckhhbmRsZXIpLHRoaXMuX3ZpZXdwb3J0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fY29tcG9uZW50RGVzdHJveWVkPSEwLHRoaXMuX2Rlc3Ryb3lQYW5lbCgpLHRoaXMuX2Nsb3NlS2V5RXZlbnRTdHJlYW0uY29tcGxldGUoKX1nZXQgcGFuZWxPcGVuKCl7cmV0dXJuIHRoaXMuX292ZXJsYXlBdHRhY2hlZCYmdGhpcy5hdXRvY29tcGxldGUuc2hvd1BhbmVsfW9wZW5QYW5lbCgpe3RoaXMuX2F0dGFjaE92ZXJsYXkoKSx0aGlzLl9mbG9hdExhYmVsKCl9Y2xvc2VQYW5lbCgpe3RoaXMuX3Jlc2V0TGFiZWwoKSx0aGlzLl9vdmVybGF5QXR0YWNoZWQmJih0aGlzLnBhbmVsT3BlbiYmdGhpcy5hdXRvY29tcGxldGUuY2xvc2VkLmVtaXQoKSx0aGlzLmF1dG9jb21wbGV0ZS5faXNPcGVuPXRoaXMuX292ZXJsYXlBdHRhY2hlZD0hMSx0aGlzLl9vdmVybGF5UmVmJiZ0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkmJih0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpLHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpLHRoaXMuX2NvbXBvbmVudERlc3Ryb3llZHx8dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpKX11cGRhdGVQb3NpdGlvbigpe3RoaXMuX292ZXJsYXlBdHRhY2hlZCYmdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpfWdldCBwYW5lbENsb3NpbmdBY3Rpb25zKCl7cmV0dXJuIHJlKHRoaXMub3B0aW9uU2VsZWN0aW9ucyx0aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlci50YWJPdXQucGlwZShjZSgoKCk9PnRoaXMuX292ZXJsYXlBdHRhY2hlZCkpKSx0aGlzLl9jbG9zZUtleUV2ZW50U3RyZWFtLHRoaXMuX2dldE91dHNpZGVDbGlja1N0cmVhbSgpLHRoaXMuX292ZXJsYXlSZWY/dGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpLnBpcGUoY2UoKCgpPT50aGlzLl9vdmVybGF5QXR0YWNoZWQpKSk6RXQoKSkucGlwZShJdCgodD0+dCBpbnN0YW5jZW9mIEZIP3Q6bnVsbCkpKX1nZXQgYWN0aXZlT3B0aW9uKCl7cmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlJiZ0aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlcj90aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlci5hY3RpdmVJdGVtOm51bGx9X2dldE91dHNpZGVDbGlja1N0cmVhbSgpe3JldHVybiByZShvZSh0aGlzLl9kb2N1bWVudCwiY2xpY2siKSxvZSh0aGlzLl9kb2N1bWVudCwiYXV4Y2xpY2siKSxvZSh0aGlzLl9kb2N1bWVudCwidG91Y2hlbmQiKSkucGlwZShjZSgodD0+e2NvbnN0IGU9THoodCksbj10aGlzLl9mb3JtRmllbGQ/dGhpcy5fZm9ybUZpZWxkLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ6bnVsbCxvPXRoaXMuY29ubmVjdGVkVG8/dGhpcy5jb25uZWN0ZWRUby5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ6bnVsbDtyZXR1cm4gdGhpcy5fb3ZlcmxheUF0dGFjaGVkJiZlIT09dGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50JiYoIW58fCFuLmNvbnRhaW5zKGUpKSYmKCFvfHwhby5jb250YWlucyhlKSkmJiEhdGhpcy5fb3ZlcmxheVJlZiYmIXRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuY29udGFpbnMoZSl9KSkpfXdyaXRlVmFsdWUodCl7UHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oKCgpPT50aGlzLl9zZXRUcmlnZ2VyVmFsdWUodCkpKX1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9cmVnaXN0ZXJPblRvdWNoZWQodCl7dGhpcy5fb25Ub3VjaGVkPXR9c2V0RGlzYWJsZWRTdGF0ZSh0KXt0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQ9dH1faGFuZGxlS2V5ZG93bih0KXtjb25zdCBlPXQua2V5Q29kZTtpZihlIT09dXp8fGJ6KHQpfHx0LnByZXZlbnREZWZhdWx0KCksdGhpcy5hY3RpdmVPcHRpb24mJmU9PT1teiYmdGhpcy5wYW5lbE9wZW4pdGhpcy5hY3RpdmVPcHRpb24uX3NlbGVjdFZpYUludGVyYWN0aW9uKCksdGhpcy5fcmVzZXRBY3RpdmVJdGVtKCksdC5wcmV2ZW50RGVmYXVsdCgpO2Vsc2UgaWYodGhpcy5hdXRvY29tcGxldGUpe2NvbnN0IG49dGhpcy5hdXRvY29tcGxldGUuX2tleU1hbmFnZXIuYWN0aXZlSXRlbSxvPWU9PT1nenx8ZT09PWh6O3RoaXMucGFuZWxPcGVufHw5PT09ZT90aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlci5vbktleWRvd24odCk6byYmdGhpcy5fY2FuT3BlbigpJiZ0aGlzLm9wZW5QYW5lbCgpLChvfHx0aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlci5hY3RpdmVJdGVtIT09bikmJnRoaXMuX3Njcm9sbFRvT3B0aW9uKHRoaXMuYXV0b2NvbXBsZXRlLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleHx8MCl9fV9oYW5kbGVJbnB1dCh0KXtsZXQgZT10LnRhcmdldCxuPWUudmFsdWU7Im51bWJlciI9PT1lLnR5cGUmJihuPSIiPT1uP251bGw6cGFyc2VGbG9hdChuKSksdGhpcy5fcHJldmlvdXNWYWx1ZSE9PW4mJih0aGlzLl9wcmV2aW91c1ZhbHVlPW4sdGhpcy5fb25DaGFuZ2UobiksdGhpcy5fY2FuT3BlbigpJiZ0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dC50YXJnZXQmJnRoaXMub3BlblBhbmVsKCkpfV9oYW5kbGVGb2N1cygpe3RoaXMuX2Nhbk9wZW5Pbk5leHRGb2N1cz90aGlzLl9jYW5PcGVuKCkmJih0aGlzLl9wcmV2aW91c1ZhbHVlPXRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSx0aGlzLl9hdHRhY2hPdmVybGF5KCksdGhpcy5fZmxvYXRMYWJlbCghMCkpOnRoaXMuX2Nhbk9wZW5Pbk5leHRGb2N1cz0hMH1fZmxvYXRMYWJlbCh0PSExKXt0aGlzLl9mb3JtRmllbGQmJiJhdXRvIj09PXRoaXMuX2Zvcm1GaWVsZC5mbG9hdExhYmVsJiYodD90aGlzLl9mb3JtRmllbGQuX2FuaW1hdGVBbmRMb2NrTGFiZWwoKTp0aGlzLl9mb3JtRmllbGQuZmxvYXRMYWJlbD0iYWx3YXlzIix0aGlzLl9tYW51YWxseUZsb2F0aW5nTGFiZWw9ITApfV9yZXNldExhYmVsKCl7dGhpcy5fbWFudWFsbHlGbG9hdGluZ0xhYmVsJiYodGhpcy5fZm9ybUZpZWxkLmZsb2F0TGFiZWw9ImF1dG8iLHRoaXMuX21hbnVhbGx5RmxvYXRpbmdMYWJlbD0hMSl9X3N1YnNjcmliZVRvQ2xvc2luZ0FjdGlvbnMoKXtyZXR1cm4gcmUodGhpcy5fem9uZS5vblN0YWJsZS5waXBlKGJlKDEpKSx0aGlzLmF1dG9jb21wbGV0ZS5vcHRpb25zLmNoYW5nZXMucGlwZShGZSgoKCk9PnRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kucmVhcHBseUxhc3RQb3NpdGlvbigpKSksQ2UoMCkpKS5waXBlKHplKCgoKT0+e2NvbnN0IHQ9dGhpcy5wYW5lbE9wZW47cmV0dXJuIHRoaXMuX3Jlc2V0QWN0aXZlSXRlbSgpLHRoaXMuYXV0b2NvbXBsZXRlLl9zZXRWaXNpYmlsaXR5KCksdGhpcy5wYW5lbE9wZW4mJih0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCksdCE9PXRoaXMucGFuZWxPcGVuJiZ0aGlzLmF1dG9jb21wbGV0ZS5vcGVuZWQuZW1pdCgpKSx0aGlzLnBhbmVsQ2xvc2luZ0FjdGlvbnN9KSksYmUoMSkpLnN1YnNjcmliZSgodD0+dGhpcy5fc2V0VmFsdWVBbmRDbG9zZSh0KSkpfV9kZXN0cm95UGFuZWwoKXt0aGlzLl9vdmVybGF5UmVmJiYodGhpcy5jbG9zZVBhbmVsKCksdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCksdGhpcy5fb3ZlcmxheVJlZj1udWxsKX1fc2V0VHJpZ2dlclZhbHVlKHQpe2NvbnN0IGU9dGhpcy5hdXRvY29tcGxldGUmJnRoaXMuYXV0b2NvbXBsZXRlLmRpc3BsYXlXaXRoP3RoaXMuYXV0b2NvbXBsZXRlLmRpc3BsYXlXaXRoKHQpOnQsbj1udWxsIT1lP2U6IiI7dGhpcy5fZm9ybUZpZWxkP3RoaXMuX2Zvcm1GaWVsZC5fY29udHJvbC52YWx1ZT1uOnRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZT1uLHRoaXMuX3ByZXZpb3VzVmFsdWU9bn1fc2V0VmFsdWVBbmRDbG9zZSh0KXt0JiZ0LnNvdXJjZSYmKHRoaXMuX2NsZWFyUHJldmlvdXNTZWxlY3RlZE9wdGlvbih0LnNvdXJjZSksdGhpcy5fc2V0VHJpZ2dlclZhbHVlKHQuc291cmNlLnZhbHVlKSx0aGlzLl9vbkNoYW5nZSh0LnNvdXJjZS52YWx1ZSksdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCksdGhpcy5hdXRvY29tcGxldGUuX2VtaXRTZWxlY3RFdmVudCh0LnNvdXJjZSkpLHRoaXMuY2xvc2VQYW5lbCgpfV9jbGVhclByZXZpb3VzU2VsZWN0ZWRPcHRpb24odCl7dGhpcy5hdXRvY29tcGxldGUub3B0aW9ucy5mb3JFYWNoKChlPT57ZSE9PXQmJmUuc2VsZWN0ZWQmJmUuZGVzZWxlY3QoKX0pKX1fYXR0YWNoT3ZlcmxheSgpe3ZhciB0O2lmKCF0aGlzLmF1dG9jb21wbGV0ZSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIGUoKXtyZXR1cm4gRXJyb3IoIkF0dGVtcHRpbmcgdG8gb3BlbiBhbiB1bmRlZmluZWQgaW5zdGFuY2Ugb2YgYG1hdC1hdXRvY29tcGxldGVgLiBNYWtlIHN1cmUgdGhhdCB0aGUgaWQgcGFzc2VkIHRvIHRoZSBgbWF0QXV0b2NvbXBsZXRlYCBpcyBjb3JyZWN0IGFuZCB0aGF0IHlvdSdyZSBhdHRlbXB0aW5nIHRvIG9wZW4gaXQgYWZ0ZXIgdGhlIG5nQWZ0ZXJDb250ZW50SW5pdCBob29rLiIpfSkoKTtsZXQgbj10aGlzLl9vdmVybGF5UmVmO24/KHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuc2V0T3JpZ2luKHRoaXMuX2dldENvbm5lY3RlZEVsZW1lbnQoKSksbi51cGRhdGVTaXplKHt3aWR0aDp0aGlzLl9nZXRQYW5lbFdpZHRoKCl9KSk6KHRoaXMuX3BvcnRhbD1uZXcgeEYodGhpcy5hdXRvY29tcGxldGUudGVtcGxhdGUsdGhpcy5fdmlld0NvbnRhaW5lclJlZix7aWQ6bnVsbD09PSh0PXRoaXMuX2Zvcm1GaWVsZCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuZ2V0TGFiZWxJZCgpfSksbj10aGlzLl9vdmVybGF5LmNyZWF0ZSh0aGlzLl9nZXRPdmVybGF5Q29uZmlnKCkpLHRoaXMuX292ZXJsYXlSZWY9bixuLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoKHQ9PnsodC5rZXlDb2RlPT09dXomJiFieih0KXx8dC5rZXlDb2RlPT09Z3omJmJ6KHQsImFsdEtleSIpKSYmKHRoaXMuX3Jlc2V0QWN0aXZlSXRlbSgpLHRoaXMuX2Nsb3NlS2V5RXZlbnRTdHJlYW0ubmV4dCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdC5wcmV2ZW50RGVmYXVsdCgpKX0pKSx0aGlzLl92aWV3cG9ydFN1YnNjcmlwdGlvbj10aGlzLl92aWV3cG9ydFJ1bGVyLmNoYW5nZSgpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLnBhbmVsT3BlbiYmbiYmbi51cGRhdGVTaXplKHt3aWR0aDp0aGlzLl9nZXRQYW5lbFdpZHRoKCl9KX0pKSksbiYmIW4uaGFzQXR0YWNoZWQoKSYmKG4uYXR0YWNoKHRoaXMuX3BvcnRhbCksdGhpcy5fY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb249dGhpcy5fc3Vic2NyaWJlVG9DbG9zaW5nQWN0aW9ucygpKTtjb25zdCBvPXRoaXMucGFuZWxPcGVuO3RoaXMuYXV0b2NvbXBsZXRlLl9zZXRWaXNpYmlsaXR5KCksdGhpcy5hdXRvY29tcGxldGUuX2lzT3Blbj10aGlzLl9vdmVybGF5QXR0YWNoZWQ9ITAsdGhpcy5wYW5lbE9wZW4mJm8hPT10aGlzLnBhbmVsT3BlbiYmdGhpcy5hdXRvY29tcGxldGUub3BlbmVkLmVtaXQoKX1fZ2V0T3ZlcmxheUNvbmZpZygpe3ZhciB0O3JldHVybiBuZXcgVkYoe3Bvc2l0aW9uU3RyYXRlZ3k6dGhpcy5fZ2V0T3ZlcmxheVBvc2l0aW9uKCksc2Nyb2xsU3RyYXRlZ3k6dGhpcy5fc2Nyb2xsU3RyYXRlZ3koKSx3aWR0aDp0aGlzLl9nZXRQYW5lbFdpZHRoKCksZGlyZWN0aW9uOnRoaXMuX2RpcixwYW5lbENsYXNzOm51bGw9PT0odD10aGlzLl9kZWZhdWx0cyl8fHZvaWQgMD09PXQ/dm9pZCAwOnQub3ZlcmxheVBhbmVsQ2xhc3N9KX1fZ2V0T3ZlcmxheVBvc2l0aW9uKCl7Y29uc3QgdD10aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9nZXRDb25uZWN0ZWRFbGVtZW50KCkpLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoITEpLndpdGhQdXNoKCExKTtyZXR1cm4gdGhpcy5fc2V0U3RyYXRlZ3lQb3NpdGlvbnModCksdGhpcy5fcG9zaXRpb25TdHJhdGVneT10LHR9X3NldFN0cmF0ZWd5UG9zaXRpb25zKHQpe2NvbnN0IGU9W3tvcmlnaW5YOiJzdGFydCIsb3JpZ2luWToiYm90dG9tIixvdmVybGF5WDoic3RhcnQiLG92ZXJsYXlZOiJ0b3AifSx7b3JpZ2luWDoiZW5kIixvcmlnaW5ZOiJib3R0b20iLG92ZXJsYXlYOiJlbmQiLG92ZXJsYXlZOiJ0b3AifV0sbj10aGlzLl9hYm92ZUNsYXNzLG89W3tvcmlnaW5YOiJzdGFydCIsb3JpZ2luWToidG9wIixvdmVybGF5WDoic3RhcnQiLG92ZXJsYXlZOiJib3R0b20iLHBhbmVsQ2xhc3M6bn0se29yaWdpblg6ImVuZCIsb3JpZ2luWToidG9wIixvdmVybGF5WDoiZW5kIixvdmVybGF5WToiYm90dG9tIixwYW5lbENsYXNzOm59XTtsZXQgaTtpPSJhYm92ZSI9PT10aGlzLnBvc2l0aW9uP286ImJlbG93Ij09PXRoaXMucG9zaXRpb24/ZTpbLi4uZSwuLi5vXSx0LndpdGhQb3NpdGlvbnMoaSl9X2dldENvbm5lY3RlZEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5jb25uZWN0ZWRUbz90aGlzLmNvbm5lY3RlZFRvLmVsZW1lbnRSZWY6dGhpcy5fZm9ybUZpZWxkP3RoaXMuX2Zvcm1GaWVsZC5nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk6dGhpcy5fZWxlbWVudH1fZ2V0UGFuZWxXaWR0aCgpe3JldHVybiB0aGlzLmF1dG9jb21wbGV0ZS5wYW5lbFdpZHRofHx0aGlzLl9nZXRIb3N0V2lkdGgoKX1fZ2V0SG9zdFdpZHRoKCl7cmV0dXJuIHRoaXMuX2dldENvbm5lY3RlZEVsZW1lbnQoKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofV9yZXNldEFjdGl2ZUl0ZW0oKXtjb25zdCB0PXRoaXMuYXV0b2NvbXBsZXRlO3QuYXV0b0FjdGl2ZUZpcnN0T3B0aW9uP3QuX2tleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk6dC5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKC0xKX1fY2FuT3Blbigpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50O3JldHVybiF0LnJlYWRPbmx5JiYhdC5kaXNhYmxlZCYmIXRoaXMuX2F1dG9jb21wbGV0ZURpc2FibGVkfV9nZXRXaW5kb3coKXt2YXIgdDtyZXR1cm4obnVsbD09PSh0PXRoaXMuX2RvY3VtZW50KXx8dm9pZCAwPT09dD92b2lkIDA6dC5kZWZhdWx0Vmlldyl8fHdpbmRvd31fc2Nyb2xsVG9PcHRpb24odCl7Y29uc3QgZT10aGlzLmF1dG9jb21wbGV0ZSxuPVZIKHQsZS5vcHRpb25zLGUub3B0aW9uR3JvdXBzKTtpZigwPT09dCYmMT09PW4pZS5fc2V0U2Nyb2xsVG9wKDApO2Vsc2UgaWYoZS5wYW5lbCl7Y29uc3Qgbj1lLm9wdGlvbnMudG9BcnJheSgpW3RdO2lmKG4pe2NvbnN0IHQ9bi5fZ2V0SG9zdEVsZW1lbnQoKSxvPWpIKHQub2Zmc2V0VG9wLHQub2Zmc2V0SGVpZ2h0LGUuX2dldFNjcm9sbFRvcCgpLGUucGFuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpO2UuX3NldFNjcm9sbFRvcChvKX19fX1HMC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RzApKFNtKGhnKSxTbShwTCksU20oZWgpLFNtKGFfKSxTbShVZyksU20oQjApLFNtKEhJLDgpLFNtKFJWLDkpLFNtKFpfLDgpLFNtKHVGKSxTbShOMCw4KSl9LEcwLsm1ZGlyPWxvKHt0eXBlOkcwLGlucHV0czp7cG9zaXRpb246WyJtYXRBdXRvY29tcGxldGVQb3NpdGlvbiIsInBvc2l0aW9uIl0sYXV0b2NvbXBsZXRlQXR0cmlidXRlOlsiYXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlQXR0cmlidXRlIl0sYXV0b2NvbXBsZXRlRGlzYWJsZWQ6WyJtYXRBdXRvY29tcGxldGVEaXNhYmxlZCIsImF1dG9jb21wbGV0ZURpc2FibGVkIl0sYXV0b2NvbXBsZXRlOlsibWF0QXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlIl0sY29ubmVjdGVkVG86WyJtYXRBdXRvY29tcGxldGVDb25uZWN0ZWRUbyIsImNvbm5lY3RlZFRvIl19LGZlYXR1cmVzOltCb119KSxHMC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpwTH0se3R5cGU6ZWh9LHt0eXBlOmFffSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0IwXX1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpBVixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUlZdfSx7dHlwZTpScn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp1Rn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltOMF19XX1dLEcwLnByb3BEZWNvcmF0b3JzPXthdXRvY29tcGxldGU6W3t0eXBlOnh5LGFyZ3M6WyJtYXRBdXRvY29tcGxldGUiXX1dLHBvc2l0aW9uOlt7dHlwZTp4eSxhcmdzOlsibWF0QXV0b2NvbXBsZXRlUG9zaXRpb24iXX1dLGNvbm5lY3RlZFRvOlt7dHlwZTp4eSxhcmdzOlsibWF0QXV0b2NvbXBsZXRlQ29ubmVjdGVkVG8iXX1dLGF1dG9jb21wbGV0ZUF0dHJpYnV0ZTpbe3R5cGU6eHksYXJnczpbImF1dG9jb21wbGV0ZSJdfV0sYXV0b2NvbXBsZXRlRGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRBdXRvY29tcGxldGVEaXNhYmxlZCJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRzAsW3t0eXBlOkN5fV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpwTH0se3R5cGU6ZWh9LHt0eXBlOmFffSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0IwXX1dfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpBVixkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUlZdfSx7dHlwZTpScn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTp1Rn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltOMF19XX1dfSkse3Bvc2l0aW9uOlt7dHlwZTp4eSxhcmdzOlsibWF0QXV0b2NvbXBsZXRlUG9zaXRpb24iXX1dLGF1dG9jb21wbGV0ZUF0dHJpYnV0ZTpbe3R5cGU6eHksYXJnczpbImF1dG9jb21wbGV0ZSJdfV0sYXV0b2NvbXBsZXRlRGlzYWJsZWQ6W3t0eXBlOnh5LGFyZ3M6WyJtYXRBdXRvY29tcGxldGVEaXNhYmxlZCJdfV0sYXV0b2NvbXBsZXRlOlt7dHlwZTp4eSxhcmdzOlsibWF0QXV0b2NvbXBsZXRlIl19XSxjb25uZWN0ZWRUbzpbe3R5cGU6eHksYXJnczpbIm1hdEF1dG9jb21wbGV0ZUNvbm5lY3RlZFRvIl19XX0pO2NsYXNzIFcwIGV4dGVuZHMgRzB7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2Fib3ZlQ2xhc3M9Im1hdC1hdXRvY29tcGxldGUtcGFuZWwtYWJvdmUifX1XMC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoVzApKSkobnx8VzApfX0pKCksVzAuybVkaXI9bG8oe3R5cGU6VzAsc2VsZWN0b3JzOltbImlucHV0IiwibWF0QXV0b2NvbXBsZXRlIiwiIl0sWyJ0ZXh0YXJlYSIsIm1hdEF1dG9jb21wbGV0ZSIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1hdXRvY29tcGxldGUtdHJpZ2dlciJdLGhvc3RWYXJzOjcsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJmb2N1c2luIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9oYW5kbGVGb2N1cygpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vblRvdWNoZWQoKX0pKSgiaW5wdXQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVJbnB1dChlKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUtleWRvd24oZSl9KSksMiZlJiZqcCgiYXV0b2NvbXBsZXRlIixuLmF1dG9jb21wbGV0ZUF0dHJpYnV0ZSkoInJvbGUiLG4uYXV0b2NvbXBsZXRlRGlzYWJsZWQ/bnVsbDoiY29tYm9ib3giKSgiYXJpYS1hdXRvY29tcGxldGUiLG4uYXV0b2NvbXBsZXRlRGlzYWJsZWQ/bnVsbDoibGlzdCIpKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLG4ucGFuZWxPcGVuJiZuLmFjdGl2ZU9wdGlvbj9uLmFjdGl2ZU9wdGlvbi5pZDpudWxsKSgiYXJpYS1leHBhbmRlZCIsbi5hdXRvY29tcGxldGVEaXNhYmxlZD9udWxsOm4ucGFuZWxPcGVuLnRvU3RyaW5nKCkpKCJhcmlhLW93bnMiLG4uYXV0b2NvbXBsZXRlRGlzYWJsZWR8fCFuLnBhbmVsT3Blbnx8bnVsbD09bi5hdXRvY29tcGxldGU/bnVsbDpuLmF1dG9jb21wbGV0ZS5pZCkoImFyaWEtaGFzcG9wdXAiLCFuLmF1dG9jb21wbGV0ZURpc2FibGVkKX0sZXhwb3J0QXM6WyJtYXRBdXRvY29tcGxldGVUcmlnZ2VyIl0sZmVhdHVyZXM6W3BnKFtVMF0pLHhwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVzAsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiaW5wdXRbbWF0QXV0b2NvbXBsZXRlXSwgdGV4dGFyZWFbbWF0QXV0b2NvbXBsZXRlXSIsaG9zdDp7Y2xhc3M6Im1hdC1hdXRvY29tcGxldGUtdHJpZ2dlciIsIlthdHRyLmF1dG9jb21wbGV0ZV0iOiJhdXRvY29tcGxldGVBdHRyaWJ1dGUiLCJbYXR0ci5yb2xlXSI6J2F1dG9jb21wbGV0ZURpc2FibGVkID8gbnVsbCA6ICJjb21ib2JveCInLCJbYXR0ci5hcmlhLWF1dG9jb21wbGV0ZV0iOidhdXRvY29tcGxldGVEaXNhYmxlZCA/IG51bGwgOiAibGlzdCInLCJbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdIjoiKHBhbmVsT3BlbiAmJiBhY3RpdmVPcHRpb24pID8gYWN0aXZlT3B0aW9uLmlkIDogbnVsbCIsIlthdHRyLmFyaWEtZXhwYW5kZWRdIjoiYXV0b2NvbXBsZXRlRGlzYWJsZWQgPyBudWxsIDogcGFuZWxPcGVuLnRvU3RyaW5nKCkiLCJbYXR0ci5hcmlhLW93bnNdIjoiKGF1dG9jb21wbGV0ZURpc2FibGVkIHx8ICFwYW5lbE9wZW4pID8gbnVsbCA6IGF1dG9jb21wbGV0ZT8uaWQiLCJbYXR0ci5hcmlhLWhhc3BvcHVwXSI6IiFhdXRvY29tcGxldGVEaXNhYmxlZCIsIihmb2N1c2luKSI6Il9oYW5kbGVGb2N1cygpIiwiKGJsdXIpIjoiX29uVG91Y2hlZCgpIiwiKGlucHV0KSI6Il9oYW5kbGVJbnB1dCgkZXZlbnQpIiwiKGtleWRvd24pIjoiX2hhbmRsZUtleWRvd24oJGV2ZW50KSJ9LGV4cG9ydEFzOiJtYXRBdXRvY29tcGxldGVUcmlnZ2VyIixwcm92aWRlcnM6W1UwXX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFkwe31ZMC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WTApfSxZMC7JtW1vZD1hbyh7dHlwZTpZMH0pLFkwLsm1aW5qPXZuKHtwcm92aWRlcnM6W1YwXSxpbXBvcnRzOltbeUwsVUgsWEksV01dLHlGLFVILFhJXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWTAsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOlt5TCxVSCxYSSxXTV0sZXhwb3J0czpbSDAsVzAsTDAseUYsVUgsWEldLGRlY2xhcmF0aW9uczpbSDAsVzAsTDBdLHByb3ZpZGVyczpbVjBdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oWTAse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltIMCxXMCxMMF19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5beUwsVUgsWEksV01dfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW0gwLFcwLEwwLHlGLFVILFhJXX19KTtjbGFzcyBxMHtjb25zdHJ1Y3Rvcigpe3RoaXMudmFsdWU9IiIsdGhpcy5wbGFjZWhvbGRlcj0iIn1vbklucHV0S2V5VXAodCl7IkVudGVyIj09PXQua2V5JiZ0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIuY2xvc2VQYW5lbCgpfX1mdW5jdGlvbiBaMCh0LGUpe2lmKDEmdCYmKHFpKCksVG0oMCwiY2lyY2xlIiwzKSksMiZ0KXtjb25zdCB0PVltKCk7ZHUoImFuaW1hdGlvbi1uYW1lIiwibWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS0iK3QuX3NwaW5uZXJBbmltYXRpb25MYWJlbCkoInN0cm9rZS1kYXNob2Zmc2V0Iix0Ll9nZXRTdHJva2VEYXNoT2Zmc2V0KCksInB4IikoInN0cm9rZS1kYXNoYXJyYXkiLHQuX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSwicHgiKSgic3Ryb2tlLXdpZHRoIix0Ll9nZXRDaXJjbGVTdHJva2VXaWR0aCgpLCIlIiksanAoInIiLHQuX2dldENpcmNsZVJhZGl1cygpKX19ZnVuY3Rpb24gWDAodCxlKXtpZigxJnQmJihxaSgpLFRtKDAsImNpcmNsZSIsMykpLDImdCl7Y29uc3QgdD1ZbSgpO2R1KCJzdHJva2UtZGFzaG9mZnNldCIsdC5fZ2V0U3Ryb2tlRGFzaE9mZnNldCgpLCJweCIpKCJzdHJva2UtZGFzaGFycmF5Iix0Ll9nZXRTdHJva2VDaXJjdW1mZXJlbmNlKCksInB4IikoInN0cm9rZS13aWR0aCIsdC5fZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKSwiJSIpLGpwKCJyIix0Ll9nZXRDaXJjbGVSYWRpdXMoKSl9fWZ1bmN0aW9uIEswKHQsZSl7aWYoMSZ0JiYocWkoKSxUbSgwLCJjaXJjbGUiLDMpKSwyJnQpe2NvbnN0IHQ9WW0oKTtkdSgiYW5pbWF0aW9uLW5hbWUiLCJtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLSIrdC5fc3Bpbm5lckFuaW1hdGlvbkxhYmVsKSgic3Ryb2tlLWRhc2hvZmZzZXQiLHQuX2dldFN0cm9rZURhc2hPZmZzZXQoKSwicHgiKSgic3Ryb2tlLWRhc2hhcnJheSIsdC5fZ2V0U3Ryb2tlQ2lyY3VtZmVyZW5jZSgpLCJweCIpKCJzdHJva2Utd2lkdGgiLHQuX2dldENpcmNsZVN0cm9rZVdpZHRoKCksIiUiKSxqcCgiciIsdC5fZ2V0Q2lyY2xlUmFkaXVzKCkpfX1mdW5jdGlvbiBKMCh0LGUpe2lmKDEmdCYmKHFpKCksVG0oMCwiY2lyY2xlIiwzKSksMiZ0KXtjb25zdCB0PVltKCk7ZHUoInN0cm9rZS1kYXNob2Zmc2V0Iix0Ll9nZXRTdHJva2VEYXNoT2Zmc2V0KCksInB4IikoInN0cm9rZS1kYXNoYXJyYXkiLHQuX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSwicHgiKSgic3Ryb2tlLXdpZHRoIix0Ll9nZXRDaXJjbGVTdHJva2VXaWR0aCgpLCIlIiksanAoInIiLHQuX2dldENpcmNsZVJhZGl1cygpKX19cTAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHEwKX0scTAuybVjbXA9dG8oe3R5cGU6cTAsc2VsZWN0b3JzOltbInRiLWZpbHRlci1pbnB1dCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoVzAsNSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5hdXRvY29tcGxldGVUcmlnZ2VyPXQuZmlyc3QpfX0saW5wdXRzOnt2YWx1ZToidmFsdWUiLG1hdEF1dG9jb21wbGV0ZToibWF0QXV0b2NvbXBsZXRlIixwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIifSxkZWNsczoyLHZhcnM6NCxjb25zdHM6W1sic3ZnSWNvbiIsInNlYXJjaF8yNHB4Il0sWyJ0eXBlIiwidGV4dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywicGxhY2Vob2xkZXIiLCJtYXRBdXRvY29tcGxldGUiLCJtYXRBdXRvY29tcGxldGVEaXNhYmxlZCIsInZhbHVlIiwia2V5dXAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsIm1hdC1pY29uIiwwKSxSbSgxLCJpbnB1dCIsMSksVm0oImtleXVwIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbklucHV0S2V5VXAoZSl9KSksQW0oKSksMiZlJiYocmMoMSksRG0oInBsYWNlaG9sZGVyIixuLnBsYWNlaG9sZGVyKSgibWF0QXV0b2NvbXBsZXRlIixuLm1hdEF1dG9jb21wbGV0ZSkoIm1hdEF1dG9jb21wbGV0ZURpc2FibGVkIiwhbi5tYXRBdXRvY29tcGxldGUpKCJ2YWx1ZSIsbi52YWx1ZSkpfSxkaXJlY3RpdmVzOltEVyxXMF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjEzcHh9bWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7ZmxleDpub25lO21hcmdpbi1yaWdodDo1cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBtYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9aW5wdXRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtjYXJldC1jb2xvcjpjdXJyZW50Q29sb3I7Y29sb3I6Y3VycmVudENvbG9yO2ZvbnQ6aW5oZXJpdDtib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmU7cGFkZGluZzowO2ZsZXgtZ3JvdzoxfSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChxMCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Yi1maWx0ZXItaW5wdXQiLHRlbXBsYXRlOidcbiAgICA8bWF0LWljb24gc3ZnSWNvbj0ic2VhcmNoXzI0cHgiPjwvbWF0LWljb24+XG5cbiAgICBceDNjIS0tIE5vdGU6IHRvIGFsbG93IGZhbHN5IFwnbWF0QXV0b2NvbXBsZXRlXCcgdmFsdWVzLCB3ZSBuZWVkIFwnbWF0QXV0b2NvbXBsZXRlRGlzYWJsZWRcJ1xuICAgIHRvIHByZXZlbnQgcnVudGltZSBlcnJvcnMuIC0tXHgzZVxuICAgIDxpbnB1dFxuICAgICAgdHlwZT0idGV4dCJcbiAgICAgIGF1dG9jb21wbGV0ZT0ib2ZmIlxuICAgICAgW3BsYWNlaG9sZGVyXT0icGxhY2Vob2xkZXIiXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT0ibWF0QXV0b2NvbXBsZXRlIlxuICAgICAgW21hdEF1dG9jb21wbGV0ZURpc2FibGVkXT0iIW1hdEF1dG9jb21wbGV0ZSJcbiAgICAgIFt2YWx1ZV09InZhbHVlIlxuICAgICAgKGtleXVwKT0ib25JbnB1dEtleVVwKCRldmVudCkiXG4gICAgLz5cbiAgJyxzdHlsZVVybHM6WyJmaWx0ZXJfaW5wdXRfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLHt2YWx1ZTpbe3R5cGU6eHl9XSxtYXRBdXRvY29tcGxldGU6W3t0eXBlOnh5fV0scGxhY2Vob2xkZXI6W3t0eXBlOnh5fV0sYXV0b2NvbXBsZXRlVHJpZ2dlcjpbe3R5cGU6WmEsYXJnczpbVzBdfV19KTtjb25zdCBRMD0iLm1hdC1wcm9ncmVzcy1zcGlubmVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBzdmd7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RvcDowO2xlZnQ6MDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7ZmlsbDp0cmFuc3BhcmVudDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2l0aW9uOnN0cm9rZS1kYXNob2Zmc2V0IDIyNW1zIGxpbmVhcn0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2U6Q2FudmFzVGV4dH0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGUgMjAwMG1zIGxpbmVhciBpbmZpbml0ZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIGNpcmNsZXt0cmFuc2l0aW9uLXByb3BlcnR5OnN0cm9rZTthbmltYXRpb24tZHVyYXRpb246NDAwMG1zO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2sgMTAwMDBtcyBjdWJpYy1iZXppZXIoMC44NywgMC4wMywgMC4zMywgMSkgaW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gc3Zne3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBjaXJjbGV7dHJhbnNpdGlvbi1wcm9wZXJ0eTpzdHJva2V9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGV7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLTEwMHswJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41JXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41MDAxJXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoNzIuNWRlZyl9MjUle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSg3Mi41ZGVnKX0yNS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9MzcuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MC4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfTYyLjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9NjIuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NSV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9ODcuNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfTg3LjUwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgzNDEuNWRlZyl9MTAwJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMzQxLjVkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2t7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0yNSV7dHJhbnNmb3JtOnJvdGF0ZSgxMTcwZGVnKX01MCV7dHJhbnNmb3JtOnJvdGF0ZSgyMzQwZGVnKX03NSV7dHJhbnNmb3JtOnJvdGF0ZSgzNTEwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoNDY4MGRlZyl9fVxuIiwkMD1KSShjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSwicHJpbWFyeSIpLHQxPW5ldyBHYSgibWF0LXByb2dyZXNzLXNwaW5uZXItZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBlMSgpe3JldHVybntkaWFtZXRlcjoxMDB9fX0pO2NsYXNzIG4xIGV4dGVuZHMgJDB7Y29uc3RydWN0b3IodCxlLG4sbyxpKXtzdXBlcih0KSx0aGlzLl9kb2N1bWVudD1uLHRoaXMuX2RpYW1ldGVyPTEwMCx0aGlzLl92YWx1ZT0wLHRoaXMuX2ZhbGxiYWNrQW5pbWF0aW9uPSExLHRoaXMubW9kZT0iZGV0ZXJtaW5hdGUiO2NvbnN0IGE9bjEuX2RpYW1ldGVyczt0aGlzLl9zcGlubmVyQW5pbWF0aW9uTGFiZWw9dGhpcy5fZ2V0U3Bpbm5lckFuaW1hdGlvbkxhYmVsKCksYS5oYXMobi5oZWFkKXx8YS5zZXQobi5oZWFkLG5ldyBTZXQoWzEwMF0pKSx0aGlzLl9mYWxsYmFja0FuaW1hdGlvbj1lLkVER0V8fGUuVFJJREVOVCx0aGlzLl9ub29wQW5pbWF0aW9ucz0iTm9vcEFuaW1hdGlvbnMiPT09byYmISFpJiYhaS5fZm9yY2VBbmltYXRpb25zLGkmJihpLmRpYW1ldGVyJiYodGhpcy5kaWFtZXRlcj1pLmRpYW1ldGVyKSxpLnN0cm9rZVdpZHRoJiYodGhpcy5zdHJva2VXaWR0aD1pLnN0cm9rZVdpZHRoKSl9Z2V0IGRpYW1ldGVyKCl7cmV0dXJuIHRoaXMuX2RpYW1ldGVyfXNldCBkaWFtZXRlcih0KXt0aGlzLl9kaWFtZXRlcj1feih0KSx0aGlzLl9zcGlubmVyQW5pbWF0aW9uTGFiZWw9dGhpcy5fZ2V0U3Bpbm5lckFuaW1hdGlvbkxhYmVsKCksIXRoaXMuX2ZhbGxiYWNrQW5pbWF0aW9uJiZ0aGlzLl9zdHlsZVJvb3QmJnRoaXMuX2F0dGFjaFN0eWxlTm9kZSgpfWdldCBzdHJva2VXaWR0aCgpe3JldHVybiB0aGlzLl9zdHJva2VXaWR0aHx8dGhpcy5kaWFtZXRlci8xMH1zZXQgc3Ryb2tlV2lkdGgodCl7dGhpcy5fc3Ryb2tlV2lkdGg9X3oodCl9Z2V0IHZhbHVlKCl7cmV0dXJuImRldGVybWluYXRlIj09PXRoaXMubW9kZT90aGlzLl92YWx1ZTowfXNldCB2YWx1ZSh0KXt0aGlzLl92YWx1ZT1NYXRoLm1heCgwLE1hdGgubWluKDEwMCxfeih0KSkpfW5nT25Jbml0KCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7dGhpcy5fc3R5bGVSb290PUh6KHQpfHx0aGlzLl9kb2N1bWVudC5oZWFkLHRoaXMuX2F0dGFjaFN0eWxlTm9kZSgpLHQuY2xhc3NMaXN0LmFkZChgbWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZSR7dGhpcy5fZmFsbGJhY2tBbmltYXRpb24/Ii1mYWxsYmFjayI6IiJ9LWFuaW1hdGlvbmApfV9nZXRDaXJjbGVSYWRpdXMoKXtyZXR1cm4odGhpcy5kaWFtZXRlci0xMCkvMn1fZ2V0Vmlld0JveCgpe2NvbnN0IHQ9Mip0aGlzLl9nZXRDaXJjbGVSYWRpdXMoKSt0aGlzLnN0cm9rZVdpZHRoO3JldHVybmAwIDAgJHt0fSAke3R9YH1fZ2V0U3Ryb2tlQ2lyY3VtZmVyZW5jZSgpe3JldHVybiAyKk1hdGguUEkqdGhpcy5fZ2V0Q2lyY2xlUmFkaXVzKCl9X2dldFN0cm9rZURhc2hPZmZzZXQoKXtyZXR1cm4iZGV0ZXJtaW5hdGUiPT09dGhpcy5tb2RlP3RoaXMuX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSooMTAwLXRoaXMuX3ZhbHVlKS8xMDA6dGhpcy5fZmFsbGJhY2tBbmltYXRpb24mJiJpbmRldGVybWluYXRlIj09PXRoaXMubW9kZT8uMip0aGlzLl9nZXRTdHJva2VDaXJjdW1mZXJlbmNlKCk6bnVsbH1fZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKXtyZXR1cm4gdGhpcy5zdHJva2VXaWR0aC90aGlzLmRpYW1ldGVyKjEwMH1fYXR0YWNoU3R5bGVOb2RlKCl7Y29uc3QgdD10aGlzLl9zdHlsZVJvb3QsZT10aGlzLl9kaWFtZXRlcixuPW4xLl9kaWFtZXRlcnM7bGV0IG89bi5nZXQodCk7aWYoIW98fCFvLmhhcyhlKSl7Y29uc3QgaT10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2kuc2V0QXR0cmlidXRlKCJtYXQtc3Bpbm5lci1hbmltYXRpb24iLHRoaXMuX3NwaW5uZXJBbmltYXRpb25MYWJlbCksaS50ZXh0Q29udGVudD10aGlzLl9nZXRBbmltYXRpb25UZXh0KCksdC5hcHBlbmRDaGlsZChpKSxvfHwobz1uZXcgU2V0LG4uc2V0KHQsbykpLG8uYWRkKGUpfX1fZ2V0QW5pbWF0aW9uVGV4dCgpe2NvbnN0IHQ9dGhpcy5fZ2V0U3Ryb2tlQ2lyY3VtZmVyZW5jZSgpO3JldHVybiJcbiBAa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtRElBTUVURVIge1xuICAgIDAlICAgICAgeyBzdHJva2UtZGFzaG9mZnNldDogU1RBUlRfVkFMVUU7ICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuICAgIDEyLjUlICAgeyBzdHJva2UtZGFzaG9mZnNldDogRU5EX1ZBTFVFOyAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuICAgIDEyLjUwMDElICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBFTkRfVkFMVUU7ICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZSg3Mi41ZGVnKTsgfVxuICAgIDI1JSAgICAgeyBzdHJva2UtZGFzaG9mZnNldDogU1RBUlRfVkFMVUU7ICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoNzIuNWRlZyk7IH1cblxuICAgIDI1LjAwMDElICAgeyBzdHJva2UtZGFzaG9mZnNldDogU1RBUlRfVkFMVUU7ICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9XG4gICAgMzcuNSUgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBFTkRfVkFMVUU7ICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IH1cbiAgICAzNy41MDAxJSAgeyBzdHJva2UtZGFzaG9mZnNldDogRU5EX1ZBTFVFOyAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMTYxLjVkZWcpOyB9XG4gICAgNTAlICAgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBTVEFSVF9WQUxVRTsgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZSgxNjEuNWRlZyk7IH1cblxuICAgIDUwLjAwMDElICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBTVEFSVF9WQUxVRTsgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgICA2Mi41JSAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IEVORF9WQUxVRTsgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuICAgIDYyLjUwMDElICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBFTkRfVkFMVUU7ICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZSgyNTEuNWRlZyk7IH1cbiAgICA3NSUgICAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IFNUQVJUX1ZBTFVFOyAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKTsgfVxuXG4gICAgNzUuMDAwMSUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IFNUQVJUX1ZBTFVFOyAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG4gICAgODcuNSUgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBFTkRfVkFMVUU7ICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuICAgIDg3LjUwMDElICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBFTkRfVkFMVUU7ICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZSgzNDEuNWRlZyk7IH1cbiAgICAxMDAlICAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IFNUQVJUX1ZBTFVFOyAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZykgcm90YXRlKDM0MS41ZGVnKTsgfVxuICB9XG4iLnJlcGxhY2UoL1NUQVJUX1ZBTFVFL2csIiIrLjk1KnQpLnJlcGxhY2UoL0VORF9WQUxVRS9nLCIiKy4yKnQpLnJlcGxhY2UoL0RJQU1FVEVSL2csYCR7dGhpcy5fc3Bpbm5lckFuaW1hdGlvbkxhYmVsfWApfV9nZXRTcGlubmVyQW5pbWF0aW9uTGFiZWwoKXtyZXR1cm4gdGhpcy5kaWFtZXRlci50b1N0cmluZygpLnJlcGxhY2UoIi4iLCJfIil9fW4xLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxuMSkoU20oaGcpLFNtKHd6KSxTbShaXyw4KSxTbShWUCw4KSxTbSh0MSkpfSxuMS7JtWNtcD10byh7dHlwZTpuMSxzZWxlY3RvcnM6W1sibWF0LXByb2dyZXNzLXNwaW5uZXIiXV0saG9zdEF0dHJzOlsicm9sZSIsInByb2dyZXNzYmFyIiwidGFiaW5kZXgiLCItMSIsMSwibWF0LXByb2dyZXNzLXNwaW5uZXIiXSxob3N0VmFyczoxMCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmKGpwKCJhcmlhLXZhbHVlbWluIiwiZGV0ZXJtaW5hdGUiPT09bi5tb2RlPzA6bnVsbCkoImFyaWEtdmFsdWVtYXgiLCJkZXRlcm1pbmF0ZSI9PT1uLm1vZGU/MTAwOm51bGwpKCJhcmlhLXZhbHVlbm93IiwiZGV0ZXJtaW5hdGUiPT09bi5tb2RlP24udmFsdWU6bnVsbCkoIm1vZGUiLG4ubW9kZSksZHUoIndpZHRoIixuLmRpYW1ldGVyLCJweCIpKCJoZWlnaHQiLG4uZGlhbWV0ZXIsInB4IikscHUoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIixuLl9ub29wQW5pbWF0aW9ucykpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciIsbW9kZToibW9kZSIsZGlhbWV0ZXI6ImRpYW1ldGVyIixzdHJva2VXaWR0aDoic3Ryb2tlV2lkdGgiLHZhbHVlOiJ2YWx1ZSJ9LGV4cG9ydEFzOlsibWF0UHJvZ3Jlc3NTcGlubmVyIl0sZmVhdHVyZXM6W3hwXSxkZWNsczozLHZhcnM6OCxjb25zdHM6W1sicHJlc2VydmVBc3BlY3RSYXRpbyIsInhNaWRZTWlkIG1lZXQiLCJmb2N1c2FibGUiLCJmYWxzZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMywibmdTd2l0Y2giXSxbImN4IiwiNTAlIiwiY3kiLCI1MCUiLDMsImFuaW1hdGlvbi1uYW1lIiwic3Ryb2tlLWRhc2hvZmZzZXQiLCJzdHJva2UtZGFzaGFycmF5Iiwic3Ryb2tlLXdpZHRoIiw0LCJuZ1N3aXRjaENhc2UiXSxbImN4IiwiNTAlIiwiY3kiLCI1MCUiLDMsInN0cm9rZS1kYXNob2Zmc2V0Iiwic3Ryb2tlLWRhc2hhcnJheSIsInN0cm9rZS13aWR0aCIsNCwibmdTd2l0Y2hDYXNlIl0sWyJjeCIsIjUwJSIsImN5IiwiNTAlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihxaSgpLFJtKDAsInN2ZyIsMCksUXAoMSxaMCwxLDksImNpcmNsZSIsMSksUXAoMixYMCwxLDcsImNpcmNsZSIsMiksQW0oKSksMiZlJiYoZHUoIndpZHRoIixuLmRpYW1ldGVyLCJweCIpKCJoZWlnaHQiLG4uZGlhbWV0ZXIsInB4IiksRG0oIm5nU3dpdGNoIiwiaW5kZXRlcm1pbmF0ZSI9PT1uLm1vZGUpLGpwKCJ2aWV3Qm94IixuLl9nZXRWaWV3Qm94KCkpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLCEwKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIiwhMSkpfSxkaXJlY3RpdmVzOltmTSxnTV0sc3R5bGVzOltRMF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbjEuX2RpYW1ldGVycz1uZXcgV2Vha01hcCxuMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3QxXX1dfV0sbjEucHJvcERlY29yYXRvcnM9e2RpYW1ldGVyOlt7dHlwZTp4eX1dLHN0cm9rZVdpZHRoOlt7dHlwZTp4eX1dLG1vZGU6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobjEsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXByb2dyZXNzLXNwaW5uZXIiLGV4cG9ydEFzOiJtYXRQcm9ncmVzc1NwaW5uZXIiLGhvc3Q6e3JvbGU6InByb2dyZXNzYmFyIixjbGFzczoibWF0LXByb2dyZXNzLXNwaW5uZXIiLHRhYmluZGV4OiItMSIsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOiJfbm9vcEFuaW1hdGlvbnMiLCJbc3R5bGUud2lkdGgucHhdIjoiZGlhbWV0ZXIiLCJbc3R5bGUuaGVpZ2h0LnB4XSI6ImRpYW1ldGVyIiwiW2F0dHIuYXJpYS12YWx1ZW1pbl0iOidtb2RlID09PSAiZGV0ZXJtaW5hdGUiID8gMCA6IG51bGwnLCJbYXR0ci5hcmlhLXZhbHVlbWF4XSI6J21vZGUgPT09ICJkZXRlcm1pbmF0ZSIgPyAxMDAgOiBudWxsJywiW2F0dHIuYXJpYS12YWx1ZW5vd10iOidtb2RlID09PSAiZGV0ZXJtaW5hdGUiID8gdmFsdWUgOiBudWxsJywiW2F0dHIubW9kZV0iOiJtb2RlIn0saW5wdXRzOlsiY29sb3IiXSx0ZW1wbGF0ZTonXHgzYyEtLVxuICBwcmVzZXJ2ZUFzcGVjdFJhdGlvIG9mIHhNaWRZTWlkIG1lZXQgYXMgdGhlIGNlbnRlciBvZiB0aGUgdmlld3BvcnQgaXMgdGhlIGNpcmNsZVwnc1xuICBjZW50ZXIuIFRoZSBjZW50ZXIgb2YgdGhlIGNpcmNsZSB3aWxsIHJlbWFpbiBhdCB0aGUgY2VudGVyIG9mIHRoZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICBlbGVtZW50IGNvbnRhaW5pbmcgdGhlIFNWRy4gYGZvY3VzYWJsZT0iZmFsc2UiYCBwcmV2ZW50cyBJRSBmcm9tIGFsbG93aW5nIHRoZSB1c2VyIHRvXG4gIHRhYiBpbnRvIHRoZSBTVkcgZWxlbWVudC5cbi0tXHgzZVxuXHgzYyEtLVxuICBBbGwgY2hpbGRyZW4gbmVlZCB0byBiZSBoaWRkZW4gZm9yIHNjcmVlbiByZWFkZXJzIGluIG9yZGVyIHRvIHN1cHBvcnQgQ2hyb21lVm94LlxuICBNb3JlIGNvbnRleHQgaW4gdGhlIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8yMjE2NS5cbi0tXHgzZVxuPHN2Z1xuICBbc3R5bGUud2lkdGgucHhdPSJkaWFtZXRlciJcbiAgW3N0eWxlLmhlaWdodC5weF09ImRpYW1ldGVyIlxuICBbYXR0ci52aWV3Qm94XT0iX2dldFZpZXdCb3goKSJcbiAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgZm9jdXNhYmxlPSJmYWxzZSJcbiAgW25nU3dpdGNoXT0ibW9kZSA9PT0gXCdpbmRldGVybWluYXRlXCciXG4gIGFyaWEtaGlkZGVuPSJ0cnVlIj5cblxuICBceDNjIS0tXG4gICAgVGVjaG5pY2FsbHkgd2UgY2FuIHJldXNlIHRoZSBzYW1lIGBjaXJjbGVgIGVsZW1lbnQsIGhvd2V2ZXIgU2FmYXJpIGhhcyBhbiBpc3N1ZSB0aGF0IGJyZWFrc1xuICAgIHRoZSBTVkcgcmVuZGVyaW5nIGluIGRldGVybWluYXRlIG1vZGUsIGFmdGVyIHN3aXRjaGluZyBiZXR3ZWVuIGluZGV0ZXJtaW5hdGUgYW5kIGRldGVybWluYXRlLlxuICAgIFVzaW5nIGEgZGlmZmVyZW50IGVsZW1lbnQgYXZvaWRzIHRoZSBpc3N1ZS4gQW4gYWx0ZXJuYXRpdmUgdG8gdGhpcyBpcyBhZGRpbmcgYGRpc3BsYXk6IG5vbmVgXG4gICAgZm9yIGEgc3BsaXQgc2Vjb25kIGFuZCB0aGVuIHJlbW92aW5nIGl0IHdoZW4gc3dpdGNoaW5nIGJldHdlZW4gbW9kZXMsIGJ1dCBpdFwncyBoYXJkIHRvIGtub3dcbiAgICBmb3IgaG93IGxvbmcgdG8gaGlkZSB0aGUgZWxlbWVudCBhbmQgaXQgY2FuIGNhdXNlIHRoZSBVSSB0byBibGluay5cbiAgLS1ceDNlXG4gIDxjaXJjbGVcbiAgICAqbmdTd2l0Y2hDYXNlPSJ0cnVlIlxuICAgIGN4PSI1MCUiXG4gICAgY3k9IjUwJSJcbiAgICBbYXR0ci5yXT0iX2dldENpcmNsZVJhZGl1cygpIlxuICAgIFtzdHlsZS5hbmltYXRpb24tbmFtZV09IlwnbWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS1cJyArIF9zcGlubmVyQW5pbWF0aW9uTGFiZWwiXG4gICAgW3N0eWxlLnN0cm9rZS1kYXNob2Zmc2V0LnB4XT0iX2dldFN0cm9rZURhc2hPZmZzZXQoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLWRhc2hhcnJheS5weF09Il9nZXRTdHJva2VDaXJjdW1mZXJlbmNlKCkiXG4gICAgW3N0eWxlLnN0cm9rZS13aWR0aC4lXT0iX2dldENpcmNsZVN0cm9rZVdpZHRoKCkiPjwvY2lyY2xlPlxuXG4gIDxjaXJjbGVcbiAgICAqbmdTd2l0Y2hDYXNlPSJmYWxzZSJcbiAgICBjeD0iNTAlIlxuICAgIGN5PSI1MCUiXG4gICAgW2F0dHIucl09Il9nZXRDaXJjbGVSYWRpdXMoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLWRhc2hvZmZzZXQucHhdPSJfZ2V0U3Ryb2tlRGFzaE9mZnNldCgpIlxuICAgIFtzdHlsZS5zdHJva2UtZGFzaGFycmF5LnB4XT0iX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoLiVdPSJfZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKSI+PC9jaXJjbGU+XG48L3N2Zz5cbicsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsc3R5bGVzOlsiLm1hdC1wcm9ncmVzcy1zcGlubmVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBzdmd7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RvcDowO2xlZnQ6MDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7ZmlsbDp0cmFuc3BhcmVudDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2l0aW9uOnN0cm9rZS1kYXNob2Zmc2V0IDIyNW1zIGxpbmVhcn0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2U6Q2FudmFzVGV4dH0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGUgMjAwMG1zIGxpbmVhciBpbmZpbml0ZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIGNpcmNsZXt0cmFuc2l0aW9uLXByb3BlcnR5OnN0cm9rZTthbmltYXRpb24tZHVyYXRpb246NDAwMG1zO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2sgMTAwMDBtcyBjdWJpYy1iZXppZXIoMC44NywgMC4wMywgMC4zMywgMSkgaW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gc3Zne3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBjaXJjbGV7dHJhbnNpdGlvbi1wcm9wZXJ0eTpzdHJva2V9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGV7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLTEwMHswJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41JXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41MDAxJXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoNzIuNWRlZyl9MjUle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSg3Mi41ZGVnKX0yNS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9MzcuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MC4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfTYyLjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9NjIuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NSV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9ODcuNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfTg3LjUwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgzNDEuNWRlZyl9MTAwJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMzQxLjVkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2t7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0yNSV7dHJhbnNmb3JtOnJvdGF0ZSgxMTcwZGVnKX01MCV7dHJhbnNmb3JtOnJvdGF0ZSgyMzQwZGVnKX03NSV7dHJhbnNmb3JtOnJvdGF0ZSgzNTEwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoNDY4MGRlZyl9fVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6d3p9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlt0MV19XX1dfSkse21vZGU6W3t0eXBlOnh5fV0sZGlhbWV0ZXI6W3t0eXBlOnh5fV0sc3Ryb2tlV2lkdGg6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV19KTtjbGFzcyBvMSBleHRlbmRzIG4xe2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7c3VwZXIodCxlLG4sbyxpKSx0aGlzLm1vZGU9ImluZGV0ZXJtaW5hdGUifX1vMS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bzEpKFNtKGhnKSxTbSh3eiksU20oWl8sOCksU20oVlAsOCksU20odDEpKX0sbzEuybVjbXA9dG8oe3R5cGU6bzEsc2VsZWN0b3JzOltbIm1hdC1zcGlubmVyIl1dLGhvc3RBdHRyczpbInJvbGUiLCJwcm9ncmVzc2JhciIsIm1vZGUiLCJpbmRldGVybWluYXRlIiwxLCJtYXQtc3Bpbm5lciIsIm1hdC1wcm9ncmVzcy1zcGlubmVyIl0saG9zdFZhcnM6Nixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmKGR1KCJ3aWR0aCIsbi5kaWFtZXRlciwicHgiKSgiaGVpZ2h0IixuLmRpYW1ldGVyLCJweCIpLHB1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsbi5fbm9vcEFuaW1hdGlvbnMpKX0saW5wdXRzOntjb2xvcjoiY29sb3IifSxmZWF0dXJlczpbeHBdLGRlY2xzOjMsdmFyczo4LGNvbnN0czpbWyJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwieE1pZFlNaWQgbWVldCIsImZvY3VzYWJsZSIsImZhbHNlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwzLCJuZ1N3aXRjaCJdLFsiY3giLCI1MCUiLCJjeSIsIjUwJSIsMywiYW5pbWF0aW9uLW5hbWUiLCJzdHJva2UtZGFzaG9mZnNldCIsInN0cm9rZS1kYXNoYXJyYXkiLCJzdHJva2Utd2lkdGgiLDQsIm5nU3dpdGNoQ2FzZSJdLFsiY3giLCI1MCUiLCJjeSIsIjUwJSIsMywic3Ryb2tlLWRhc2hvZmZzZXQiLCJzdHJva2UtZGFzaGFycmF5Iiwic3Ryb2tlLXdpZHRoIiw0LCJuZ1N3aXRjaENhc2UiXSxbImN4IiwiNTAlIiwiY3kiLCI1MCUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHFpKCksUm0oMCwic3ZnIiwwKSxRcCgxLEswLDEsOSwiY2lyY2xlIiwxKSxRcCgyLEowLDEsNywiY2lyY2xlIiwyKSxBbSgpKSwyJmUmJihkdSgid2lkdGgiLG4uZGlhbWV0ZXIsInB4IikoImhlaWdodCIsbi5kaWFtZXRlciwicHgiKSxEbSgibmdTd2l0Y2giLCJpbmRldGVybWluYXRlIj09PW4ubW9kZSksanAoInZpZXdCb3giLG4uX2dldFZpZXdCb3goKSkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsITApLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLCExKSl9LGRpcmVjdGl2ZXM6W2ZNLGdNXSxzdHlsZXM6W1EwXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxvMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W3QxXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvMSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtYXQtc3Bpbm5lciIsaG9zdDp7cm9sZToicHJvZ3Jlc3NiYXIiLG1vZGU6ImluZGV0ZXJtaW5hdGUiLGNsYXNzOiJtYXQtc3Bpbm5lciBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciIsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOiJfbm9vcEFuaW1hdGlvbnMiLCJbc3R5bGUud2lkdGgucHhdIjoiZGlhbWV0ZXIiLCJbc3R5bGUuaGVpZ2h0LnB4XSI6ImRpYW1ldGVyIn0saW5wdXRzOlsiY29sb3IiXSx0ZW1wbGF0ZTonXHgzYyEtLVxuICBwcmVzZXJ2ZUFzcGVjdFJhdGlvIG9mIHhNaWRZTWlkIG1lZXQgYXMgdGhlIGNlbnRlciBvZiB0aGUgdmlld3BvcnQgaXMgdGhlIGNpcmNsZVwnc1xuICBjZW50ZXIuIFRoZSBjZW50ZXIgb2YgdGhlIGNpcmNsZSB3aWxsIHJlbWFpbiBhdCB0aGUgY2VudGVyIG9mIHRoZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICBlbGVtZW50IGNvbnRhaW5pbmcgdGhlIFNWRy4gYGZvY3VzYWJsZT0iZmFsc2UiYCBwcmV2ZW50cyBJRSBmcm9tIGFsbG93aW5nIHRoZSB1c2VyIHRvXG4gIHRhYiBpbnRvIHRoZSBTVkcgZWxlbWVudC5cbi0tXHgzZVxuXHgzYyEtLVxuICBBbGwgY2hpbGRyZW4gbmVlZCB0byBiZSBoaWRkZW4gZm9yIHNjcmVlbiByZWFkZXJzIGluIG9yZGVyIHRvIHN1cHBvcnQgQ2hyb21lVm94LlxuICBNb3JlIGNvbnRleHQgaW4gdGhlIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8yMjE2NS5cbi0tXHgzZVxuPHN2Z1xuICBbc3R5bGUud2lkdGgucHhdPSJkaWFtZXRlciJcbiAgW3N0eWxlLmhlaWdodC5weF09ImRpYW1ldGVyIlxuICBbYXR0ci52aWV3Qm94XT0iX2dldFZpZXdCb3goKSJcbiAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgZm9jdXNhYmxlPSJmYWxzZSJcbiAgW25nU3dpdGNoXT0ibW9kZSA9PT0gXCdpbmRldGVybWluYXRlXCciXG4gIGFyaWEtaGlkZGVuPSJ0cnVlIj5cblxuICBceDNjIS0tXG4gICAgVGVjaG5pY2FsbHkgd2UgY2FuIHJldXNlIHRoZSBzYW1lIGBjaXJjbGVgIGVsZW1lbnQsIGhvd2V2ZXIgU2FmYXJpIGhhcyBhbiBpc3N1ZSB0aGF0IGJyZWFrc1xuICAgIHRoZSBTVkcgcmVuZGVyaW5nIGluIGRldGVybWluYXRlIG1vZGUsIGFmdGVyIHN3aXRjaGluZyBiZXR3ZWVuIGluZGV0ZXJtaW5hdGUgYW5kIGRldGVybWluYXRlLlxuICAgIFVzaW5nIGEgZGlmZmVyZW50IGVsZW1lbnQgYXZvaWRzIHRoZSBpc3N1ZS4gQW4gYWx0ZXJuYXRpdmUgdG8gdGhpcyBpcyBhZGRpbmcgYGRpc3BsYXk6IG5vbmVgXG4gICAgZm9yIGEgc3BsaXQgc2Vjb25kIGFuZCB0aGVuIHJlbW92aW5nIGl0IHdoZW4gc3dpdGNoaW5nIGJldHdlZW4gbW9kZXMsIGJ1dCBpdFwncyBoYXJkIHRvIGtub3dcbiAgICBmb3IgaG93IGxvbmcgdG8gaGlkZSB0aGUgZWxlbWVudCBhbmQgaXQgY2FuIGNhdXNlIHRoZSBVSSB0byBibGluay5cbiAgLS1ceDNlXG4gIDxjaXJjbGVcbiAgICAqbmdTd2l0Y2hDYXNlPSJ0cnVlIlxuICAgIGN4PSI1MCUiXG4gICAgY3k9IjUwJSJcbiAgICBbYXR0ci5yXT0iX2dldENpcmNsZVJhZGl1cygpIlxuICAgIFtzdHlsZS5hbmltYXRpb24tbmFtZV09IlwnbWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS1cJyArIF9zcGlubmVyQW5pbWF0aW9uTGFiZWwiXG4gICAgW3N0eWxlLnN0cm9rZS1kYXNob2Zmc2V0LnB4XT0iX2dldFN0cm9rZURhc2hPZmZzZXQoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLWRhc2hhcnJheS5weF09Il9nZXRTdHJva2VDaXJjdW1mZXJlbmNlKCkiXG4gICAgW3N0eWxlLnN0cm9rZS13aWR0aC4lXT0iX2dldENpcmNsZVN0cm9rZVdpZHRoKCkiPjwvY2lyY2xlPlxuXG4gIDxjaXJjbGVcbiAgICAqbmdTd2l0Y2hDYXNlPSJmYWxzZSJcbiAgICBjeD0iNTAlIlxuICAgIGN5PSI1MCUiXG4gICAgW2F0dHIucl09Il9nZXRDaXJjbGVSYWRpdXMoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLWRhc2hvZmZzZXQucHhdPSJfZ2V0U3Ryb2tlRGFzaE9mZnNldCgpIlxuICAgIFtzdHlsZS5zdHJva2UtZGFzaGFycmF5LnB4XT0iX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoLiVdPSJfZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKSI+PC9jaXJjbGU+XG48L3N2Zz5cbicsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsc3R5bGVzOlsiLm1hdC1wcm9ncmVzcy1zcGlubmVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBzdmd7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RvcDowO2xlZnQ6MDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7ZmlsbDp0cmFuc3BhcmVudDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2l0aW9uOnN0cm9rZS1kYXNob2Zmc2V0IDIyNW1zIGxpbmVhcn0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2U6Q2FudmFzVGV4dH0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGUgMjAwMG1zIGxpbmVhciBpbmZpbml0ZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIGNpcmNsZXt0cmFuc2l0aW9uLXByb3BlcnR5OnN0cm9rZTthbmltYXRpb24tZHVyYXRpb246NDAwMG1zO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7YW5pbWF0aW9uOm1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2sgMTAwMDBtcyBjdWJpYy1iZXppZXIoMC44NywgMC4wMywgMC4zMywgMSkgaW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gc3Zne3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBjaXJjbGV7dHJhbnNpdGlvbi1wcm9wZXJ0eTpzdHJva2V9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLWxpbmVhci1yb3RhdGV7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLTEwMHswJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41JXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMi41MDAxJXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoNzIuNWRlZyl9MjUle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSg3Mi41ZGVnKX0yNS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9MzcuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKX01MC4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfTYyLjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9NjIuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NSV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDI1MS41ZGVnKX03NS4wMDAxJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9ODcuNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfTg3LjUwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgzNDEuNWRlZyl9MTAwJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMzQxLjVkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtZmFsbGJhY2t7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0yNSV7dHJhbnNmb3JtOnJvdGF0ZSgxMTcwZGVnKX01MCV7dHJhbnNmb3JtOnJvdGF0ZSgyMzQwZGVnKX03NSV7dHJhbnNmb3JtOnJvdGF0ZSgzNTEwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoNDY4MGRlZyl9fVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6d3p9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbWl9dfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbVlBdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOlt0MV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBpMXt9aTEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGkxKX0saTEuybVtb2Q9YW8oe3R5cGU6aTF9KSxpMS7JtWluaj12bih7aW1wb3J0czpbW1hJLFdNXSxYSV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGkxLFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbWEksV01dLGV4cG9ydHM6W24xLG8xLFhJXSxkZWNsYXJhdGlvbnM6W24xLG8xXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKGkxLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bbjEsbzFdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1hJLFdNXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltuMSxvMSxYSV19fSk7Y29uc3QgYTE9WyJyZWdleFN0cmluZ0lucHV0Il07ZnVuY3Rpb24gcjEodCxlKXtpZigxJnQmJihObSgwKSxSbSgxLCJsaSIsMjIpLGt1KDIpLEFtKCksem0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0O3JjKDEpLERtKCJ0aXRsZSIsdC5uYW1lKSxyYygxKSxTdSh0Lm5hbWUpfX1mdW5jdGlvbiBzMSh0LGUpe2lmKDEmdCYmKFJtKDAsImxpIiwyMyksUm0oMSwiZW0iKSxrdSgyKSxBaCgzLCJudW1iZXIiKSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpLiRpbXBsaWNpdDtyYygyKSxEdSgiYW5kICIsVGgoMywxLHQucnVucy5sZW5ndGgtNSksIiBtb3JlIil9fWZ1bmN0aW9uIGwxKHQsZSl7MSZ0JiYoUm0oMCwibGkiLDI0KSxSbSgxLCJlbSIpLGt1KDIsIk5vIHJ1bnMgYXJlIGluIHRoZSBncm91cCIpLEFtKCksQW0oKSl9Y29uc3QgYzE9ZnVuY3Rpb24odCl7cmV0dXJue2JvcmRlckNvbG9yOnR9fSxkMT1mdW5jdGlvbih0KXtyZXR1cm57YmFja2dyb3VuZENvbG9yOnR9fTtmdW5jdGlvbiBwMSh0LGUpe2lmKDEmdCYmKFJtKDAsInVsIiwxNiksUm0oMSwibGkiKSxSbSgyLCJsYWJlbCIpLFRtKDMsInNwYW4iLDE3KSxSbSg0LCJjb2RlIiwxOCksa3UoNSksQW0oKSxBbSgpLFJtKDYsInVsIiksUXAoNyxyMSwzLDIsIm5nLWNvbnRhaW5lciIsMTkpLEFoKDgsInNsaWNlIiksUXAoOSxzMSw0LDMsImxpIiwyMCksUXAoMTAsbDEsMywwLCJsaSIsMjEpLEFtKCksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7RG0oIm5nU3R5bGUiLE1oKDExLGMxLHQuY29sb3IpKSxyYygzKSxEbSgibmdTdHlsZSIsTWgoMTMsZDEsdC5jb2xvcikpLHJjKDEpLERtKCJ0aXRsZSIsdC5ncm91cElkKSxyYygxKSxTdSh0Lmdyb3VwSWQpLHJjKDIpLERtKCJuZ0Zvck9mIix6aCg4LDcsdC5ydW5zLDAsNSkpLHJjKDIpLERtKCJuZ0lmIix0LnJ1bnMubGVuZ3RoPjUpLHJjKDEpLERtKCJuZ0lmIiwwPT09dC5ydW5zLmxlbmd0aCl9fWZ1bmN0aW9uIG0xKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwxNCksUXAoMSxwMSwxMSwxNSwidWwiLDE1KSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7cmMoMSksRG0oIm5nRm9yT2YiLHQuY29sb3JSdW5QYWlyTGlzdCl9fWZ1bmN0aW9uIHUxKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwyNSksa3UoMSwiIFRoZXJlIGFyZSBubyBydW5zIG1hdGNoaW5nIHRoZSByZWdleCwgIiksUm0oMiwiY29kZSIpLGt1KDMpLEFtKCksa3UoNCwiLiBQbGVhc2UgY2hlY2sgaWYgeW91ciByZWdleCBzdHJpbmcgaXMgY29ycmVjdC4gIiksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO3JjKDMpLER1KCIvIix0LnJlZ2V4U3RyaW5nLCIvIil9fWZ1bmN0aW9uIGYxKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwxMCksUm0oMSwiaDQiKSxrdSgyLCJDb2xvciBncm91cCBwcmV2aWV3IiksQW0oKSxSbSgzLCJkaXYiLDExKSxRcCg0LG0xLDIsMSwiZGl2IiwxMiksUXAoNSx1MSw1LDEsIm5nLXRlbXBsYXRlIixudWxsLDEzLGliKSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD0kcCg2KSxlPVltKCk7cmMoNCksRG0oIm5nSWYiLGUuY29sb3JSdW5QYWlyTGlzdC5sZW5ndGgpKCJuZ0lmRWxzZSIsdCl9fWNsYXNzIGcxe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5kaWFsb2dSZWY9dCx0aGlzLmhvc3RFbFJlZj1lLHRoaXMub25TYXZlPW5ldyBMaCx0aGlzLnJlZ2V4SW5wdXRPbkNoYW5nZT1uZXcgTGgsdGhpcy50aW1lT3V0SWQ9MH1yZXNldEZvY3VzKCl7dGhpcy5ob3N0RWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KXx8dGhpcy5yZWdleFN0cmluZ0lucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1vbkVudGVyKHQpe3RoaXMub25TYXZlQ2xpY2sodCksdGhpcy5kaWFsb2dSZWYuY2xvc2UoKX1vblNhdmVDbGljayh0KXt0aGlzLm9uU2F2ZS5lbWl0KHQpfWZpbGxFeGFtcGxlKHQpe3RoaXMucmVnZXhTdHJpbmc9dCx0aGlzLnJlZ2V4SW5wdXRDaGFuZ2UodCl9cmVnZXhJbnB1dENoYW5nZSh0KXt0aGlzLnJlZ2V4SW5wdXRPbkNoYW5nZS5lbWl0KHQpfWhhbmRsZUZvY3VzT3V0KCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZU91dElkKSx0aGlzLnRpbWVPdXRJZD1zZXRUaW1lb3V0KHRoaXMucmVzZXRGb2N1cy5iaW5kKHRoaXMpLDApfX1nMS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZzEpKFNtKFhHKSxTbShoZykpfSxnMS7JtWNtcD10byh7dHlwZTpnMSxzZWxlY3RvcnM6W1sicmVnZXgtZWRpdC1kaWFsb2ctY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChhMSw3KSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLnJlZ2V4U3RyaW5nSW5wdXQ9dC5maXJzdCl9fSxpbnB1dHM6e3JlZ2V4U3RyaW5nOiJyZWdleFN0cmluZyIsY29sb3JSdW5QYWlyTGlzdDoiY29sb3JSdW5QYWlyTGlzdCJ9LG91dHB1dHM6e29uU2F2ZToib25TYXZlIixyZWdleElucHV0T25DaGFuZ2U6InJlZ2V4SW5wdXRPbkNoYW5nZSJ9LGRlY2xzOjMwLHZhcnM6Mixjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gdD0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiQ29sb3IgUnVucyBieSBSZWdleCBRdWVyeSIpOiRsb2NhbGl6ZWA6Q29sb3IgUnVucyBieSBSZWdleCBRdWVyeeKQnzE1ZWQ5ZjZmZDJkNDkwNmE0ODAzZmMxMjU1ZGUzYzVkYjJjNTY1MzDikJ85MDg4OTg1MTEzOTYwMzEyODA4OkNvbG9yIFJ1bnMgYnkgUmVnZXggUXVlcnlgLFtbMSwicmVnZXgtZWRpdC1kaWFsb2ciLDMsImZvY3Vzb3V0Il0sWyJtYXQtZGlhbG9nLXRpdGxlIiwiIl0sWyJtYXRJbnB1dCIsIiIsImFyaWEtbGFiZWwiLHQsImNka0ZvY3VzSW5pdGlhbCIsIiIsMywidmFsdWUiLCJrZXlkb3duLmVudGVyIiwiaW5wdXQiXSxbInJlZ2V4U3RyaW5nSW5wdXQiLCIiXSxbMSwiZXhhbXBsZS1kZXRhaWxzIl0sWzMsImNsaWNrIl0sWyJjbGFzcyIsImdyb3VwLWNvbnRhaW5lciIsNCwibmdJZiJdLFsibWF0LWRpYWxvZy1hY3Rpb25zIiwiIiwiYWxpZ24iLCJlbmQiXSxbIm1hdC1idXR0b24iLCIiLCJtYXQtZGlhbG9nLWNsb3NlIiwiIl0sWyJtYXQtcmFpc2VkLWJ1dHRvbiIsIiIsImNvbG9yIiwicHJpbWFyeSIsIm1hdC1kaWFsb2ctY2xvc2UiLCIiLDMsImNsaWNrIl0sWzEsImdyb3VwLWNvbnRhaW5lciJdLFsxLCJncm91cGluZy1wcmV2aWV3Il0sWyJjbGFzcyIsIm1hdGNoLWNvbnRhaW5lciIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJlbXB0eSIsIiJdLFsxLCJtYXRjaC1jb250YWluZXIiXSxbImNsYXNzIiwiZ3JvdXAiLDMsIm5nU3R5bGUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJncm91cCIsMywibmdTdHlsZSJdLFsxLCJjb2xvci1zd2F0Y2giLDMsIm5nU3R5bGUiXSxbMSwiZ3JvdXAtaWQiLDMsInRpdGxlIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xhc3MiLCJtb3JlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm5vLW1hdGNoIiw0LCJuZ0lmIl0sWzMsInRpdGxlIl0sWzEsIm1vcmUiXSxbMSwibm8tbWF0Y2giXSxbMSwid2FybmluZyJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsMCksVm0oImZvY3Vzb3V0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmhhbmRsZUZvY3VzT3V0KCl9KSksUm0oMSwiaDEiLDEpLGt1KDIsIkNvbG9yIHJ1bnMgYnkgcmVnZXgiKSxBbSgpLFJtKDMsIm1hdC1kaWFsb2ctY29udGVudCIpLFJtKDQsInAiKSxrdSg1LCJFbnRlciBhIHJlZ2V4IHdpdGggY2FwdHVyaW5nIGdyb3VwcyB0byBtYXRjaCBhZ2FpbnN0IHJ1biBuYW1lczoiKSxBbSgpLFJtKDYsIm1hdC1mb3JtLWZpZWxkIiksUm0oNywiaW5wdXQiLDIsMyksVm0oImtleWRvd24uZW50ZXIiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uRW50ZXIoZS50YXJnZXQudmFsdWUpfSkpKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ucmVnZXhJbnB1dENoYW5nZShlLnRhcmdldC52YWx1ZSl9KSksQW0oKSxBbSgpLEFtKCksUm0oOSwiZGl2Iiw0KSxSbSgxMCwicCIpLGt1KDExLCcgRWFjaCBtYXRjaGluZyBydW4gd2lsbCBiZSBhc3NpZ25lZCBhIGNvbG9yIGJhc2VkIG9uIHRoZSAia2V5IiBmb3JtZWQgYnkgaXRzIG1hdGNoZXMgdG8gdGhlIGNhcHR1cmluZyBncm91cHMuICcpLFRtKDEyLCJiciIpLFJtKDEzLCJidXR0b24iLDUpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5maWxsRXhhbXBsZSgiKHRyYWlufGV2YWwpIil9KSksa3UoMTQsIiBUcnkgIiksUm0oMTUsImNvZGUiKSxrdSgxNiwiKHRyYWlufGV2YWwpIiksQW0oKSxBbSgpLGt1KDE3LCIgdG8gYXNzaWduIGFsbCBydW5zIGNvbnRhaW5pbmcgIiksUm0oMTgsImNvZGUiKSxrdSgxOSwidHJhaW4iKSxBbSgpLGt1KDIwLCIgdG8gb25lIGNvbG9yIGFuZCBhbGwgcnVucyBjb250YWluaW5nICIpLFJtKDIxLCJjb2RlIiksa3UoMjIsImV2YWwiKSxBbSgpLGt1KDIzLCIgdG8gYW5vdGhlciBjb2xvci4gIiksQW0oKSxBbSgpLFFwKDI0LGYxLDcsMiwiZGl2Iiw2KSxSbSgyNSwiZGl2Iiw3KSxSbSgyNiwiYnV0dG9uIiw4KSxrdSgyNywiQ2FuY2VsIiksQW0oKSxSbSgyOCwiYnV0dG9uIiw5KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7aGkodCk7Y29uc3Qgbz0kcCg4KTtyZXR1cm4gbi5vblNhdmVDbGljayhvLnZhbHVlKX0pKSxrdSgyOSwiIFNhdmUgIiksQW0oKSxBbSgpLEFtKCl9MiZlJiYocmMoNyksS20oInZhbHVlIixuLnJlZ2V4U3RyaW5nKSxyYygxNyksRG0oIm5nSWYiLG4ucmVnZXhTdHJpbmcpKX0sZGlyZWN0aXZlczpbclcsc1csQVYsTFksZE0sbFcsWEgsYVcsbE0sQ01dLHBpcGVzOltVTSxGTV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LmV4YW1wbGUtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7cGFkZGluZzowO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y29sb3I6IzE5NzZkMn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZXhhbXBsZS1kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5leGFtcGxlLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNDJhNWY1fS5leGFtcGxlLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXTp2aXNpdGVke2NvbG9yOiM3YjFmYTJ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmV4YW1wbGUtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVdOnZpc2l0ZWQsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5leGFtcGxlLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXTp2aXNpdGVke2NvbG9yOiNiYTY4Yzh9Lmdyb3VwLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjEwcHggMH0uZ3JvdXAtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tYm90dG9tOjEwcHh9Lmdyb3VwLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAud2FybmluZ1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTtmb250LXNpemU6LjllbX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC53YXJuaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAud2FybmluZ1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Lmdyb3VwaW5nLXByZXZpZXdbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjttYXgtaGVpZ2h0OjUwdmg7b3ZlcmZsb3cteTphdXRvO3BhZGRpbmc6MjBweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXBpbmctcHJldmlld1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cGluZy1wcmV2aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICM1NTV9Lm1hdGNoLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6ZmxleC1zdGFydDtkaXNwbGF5OmdyaWQ7ZmxleC13cmFwOndyYXA7Z2FwOjEwcHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLCBtaW5tYXgoNTAlLCAxZnIpKX0uY29sb3Itc3dhdGNoW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmFkaXVzOjUwJTtib3gtc2hhZG93OjAgMCAycHggIzAwMDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTVweDt3aWR0aDoxNXB4fXVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaXN0LXN0eWxlLXR5cGU6bm9uZTtwYWRkaW5nOjB9bWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9Lmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7Ym9yZGVyLXJhZGl1czozcHg7bWFyZ2luOjA7cGFkZGluZzoxMHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjNTU1fS5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICBsYWJlbFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpncmlkO2dhcDoxMHB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczptYXgtY29udGVudCBhdXRvO3BhZGRpbmc6NXB4IDB9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fS5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICBsYWJlbFtfbmdjb250ZW50LSVDT01QJV0gICAuZ3JvdXAtaWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTouOTVlbTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6LjllbX0uZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgdWxbX25nY29udGVudC0lQ09NUCVdICAgbGlbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgLm1vcmVbX25nY29udGVudC0lQ09NUCVdLCAuZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgLm5vLW1hdGNoW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO21hcmdpbi10b3A6NXB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubW9yZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubW9yZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uby1tYXRjaFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubm8tbWF0Y2hbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnMSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJyZWdleC1lZGl0LWRpYWxvZy1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJyZWdleF9lZGl0X2RpYWxvZy5uZy5odG1sIixzdHlsZVVybHM6WyJyZWdleF9lZGl0X2RpYWxvZ19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhHfSx7dHlwZTpoZ31dfSkse3JlZ2V4U3RyaW5nOlt7dHlwZTp4eX1dLGNvbG9yUnVuUGFpckxpc3Q6W3t0eXBlOnh5fV0sb25TYXZlOlt7dHlwZTpPeX1dLHJlZ2V4SW5wdXRPbkNoYW5nZTpbe3R5cGU6T3l9XSxyZWdleFN0cmluZ0lucHV0Olt7dHlwZTpaYSxhcmdzOlsicmVnZXhTdHJpbmdJbnB1dCIse3N0YXRpYzohMH1dfV19KTtjbGFzcyBoMXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5zdG9yZT10LHRoaXMuZGlhbG9nUmVmPWUsdGhpcy50ZW50YXRpdmVSZWdleFN0cmluZyQ9bmV3IEksdGhpcy5ncm91cEJ5UmVnZXhTdHJpbmckPVF0KCgoKT0+cmUodGhpcy5zdG9yZS5zZWxlY3QoTU4pLnBpcGUoYmUoMSkpLHRoaXMudGVudGF0aXZlUmVnZXhTdHJpbmckKSkpLnBpcGUoTmUoIiIpKSx0aGlzLmNvbG9yUnVuUGFpckxpc3QkPVF0KCgoKT0+dGhpcy5ncm91cEJ5UmVnZXhTdHJpbmckLnBpcGUoZ2UoNTAwKSxjZSgodD0+e3RyeXtjb25zdCBlPW5ldyBSZWdFeHAodCk7cmV0dXJuIEJvb2xlYW4oZSl9Y2F0Y2godCl7cmV0dXJuITF9fSkpLGZlKHRoaXMuYWxsUnVucyQsdGhpcy5ydW5JZFRvRWlkJCx0aGlzLnN0b3JlLnNlbGVjdChBTiksdGhpcy5zdG9yZS5zZWxlY3QoSkQpKSxJdCgoKFt0LGUsbixvLGldKT0+e2NvbnN0IGE9bk4oe2tleTp0Ti5SRUdFWCxyZWdleFN0cmluZzp0fSxlLG4pLHI9bmV3IE1hcCxzPVtdO2Zvcihjb25zdFt0LGVdb2YgT2JqZWN0LmVudHJpZXMoYS5tYXRjaGVzKSl7bGV0IG49ci5nZXQodCk7aWYoIW4pe2NvbnN0IGU9by5jb2xvcnNbci5zaXplJW8uY29sb3JzLmxlbmd0aF07bj1pP2UuZGFya0hleDplLmxpZ2h0SGV4LHIuc2V0KHQsbil9cy5wdXNoKHtncm91cElkOnQsY29sb3I6bixydW5zOmV9KX1yZXR1cm4gc30pKSkpKS5waXBlKE5lKFtdKSksdGhpcy5leHBlcmltZW50SWRzPW4uZXhwZXJpbWVudElkcyx0aGlzLnJ1bklkVG9FaWQkPVd0KHRoaXMuZXhwZXJpbWVudElkcy5tYXAoKHQ9PnRoaXMuc3RvcmUuc2VsZWN0KGNOLHtleHBlcmltZW50SWQ6dH0pLnBpcGUoSXQoKGU9Pih7ZXhwZXJpbWVudElkOnQscnVuSWRzOmV9KSkpKSkpKS5waXBlKEl0KCh0PT57Y29uc3QgZT17fTtmb3IoY29uc3R7cnVuSWRzOm4sZXhwZXJpbWVudElkOm99b2YgdClmb3IoY29uc3QgdCBvZiBuKWVbdF09bztyZXR1cm4gZX0pKSksdGhpcy5hbGxSdW5zJD1XdCh0aGlzLmV4cGVyaW1lbnRJZHMubWFwKCh0PT50aGlzLnN0b3JlLnNlbGVjdChsTix7ZXhwZXJpbWVudElkOnR9KSkpKS5waXBlKEl0KCh0PT50LmZsYXQoKSkpKX1vblJlZ2V4SW5wdXRPbkNoYW5nZSh0KXt0aGlzLnRlbnRhdGl2ZVJlZ2V4U3RyaW5nJC5uZXh0KHQpfW9uU2F2ZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKEdSKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxncm91cEJ5OntrZXk6dE4uUkVHRVgscmVnZXhTdHJpbmc6dH19KSl9fWZ1bmN0aW9uIGIxKHQsZSl7MSZ0JiZUbSgwLCJtYXQtaWNvbiIsMTEpfWZ1bmN0aW9uIHkxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwxMCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe2hpKHQpO2NvbnN0IG49WW0oKTtyZXR1cm4gbi5vbkdyb3VwQnlDaGFuZ2UuZW1pdCh7a2V5Om4uR3JvdXBCeUtleS5FWFBFUklNRU5UfSl9KSksUm0oMSwic3BhbiIpLFFwKDIsYjEsMSwwLCJtYXQtaWNvbiIsNyksQW0oKSxSbSgzLCJsYWJlbCIpLGt1KDQsIkV4cGVyaW1lbnQiKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7anAoImFyaWEtY2hlY2tlZCIsdC5zZWxlY3RlZEdyb3VwQnkua2V5PT09dC5Hcm91cEJ5S2V5LkVYUEVSSU1FTlQpLHJjKDIpLERtKCJuZ0lmIix0LnNlbGVjdGVkR3JvdXBCeS5rZXk9PT10Lkdyb3VwQnlLZXkuRVhQRVJJTUVOVCl9fWZ1bmN0aW9uIF8xKHQsZSl7MSZ0JiZUbSgwLCJtYXQtaWNvbiIsMTEpfWZ1bmN0aW9uIEMxKHQsZSl7MSZ0JiZUbSgwLCJtYXQtaWNvbiIsMTEpfWZ1bmN0aW9uIE0xKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwxMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLm9uR3JvdXBCeVJlZ2V4Q2xpY2soKX0pKSxSbSgxLCJzcGFuIiksUXAoMixDMSwxLDAsIm1hdC1pY29uIiw3KSxBbSgpLFJtKDMsImxhYmVsIiksa3UoNCwiUmVnZXgiKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7anAoImFyaWEtY2hlY2tlZCIsdC5zZWxlY3RlZEdyb3VwQnkua2V5PT09dC5Hcm91cEJ5S2V5LlJFR0VYKSxyYygyKSxEbSgibmdJZiIsdC5zZWxlY3RlZEdyb3VwQnkua2V5PT09dC5Hcm91cEJ5S2V5LlJFR0VYKX19ZnVuY3Rpb24gdjEodCxlKXtpZigxJnQmJihSbSgwLCJsYWJlbCIpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygxKSxTdSh0LnJlZ2V4U3RyaW5nKX19ZnVuY3Rpb24geDEodCxlKXsxJnQmJihSbSgwLCJsYWJlbCIsMTcpLGt1KDEsIihub25lIHNldCkiKSxBbSgpKX1mdW5jdGlvbiBPMSh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImJ1dHRvbiIsMTMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vblJlZ2V4U3RyaW5nRWRpdCgpfSkpLFJtKDEsInNwYW4iKSxUbSgyLCJtYXQtaWNvbiIsMTQpLEFtKCksUXAoMyx2MSwyLDEsImxhYmVsIiwxNSksUXAoNCx4MSwyLDAsImxhYmVsIiwxNiksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtyYygzKSxEbSgibmdJZiIsdC5yZWdleFN0cmluZykscmMoMSksRG0oIm5nSWYiLCF0LnJlZ2V4U3RyaW5nKX19aDEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGgxKShTbShJdyksU20oWEcpLFNtKEpHKSl9LGgxLsm1Y21wPXRvKHt0eXBlOmgxLHNlbGVjdG9yczpbWyJyZWdleC1lZGl0LWRpYWxvZyJdXSxkZWNsczozLHZhcnM6Nixjb25zdHM6W1szLCJyZWdleFN0cmluZyIsImNvbG9yUnVuUGFpckxpc3QiLCJvblNhdmUiLCJyZWdleElucHV0T25DaGFuZ2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsInJlZ2V4LWVkaXQtZGlhbG9nLWNvbXBvbmVudCIsMCksVm0oIm9uU2F2ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TYXZlKGUpfSkpKCJyZWdleElucHV0T25DaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUmVnZXhJbnB1dE9uQ2hhbmdlKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJyZWdleFN0cmluZyIsVGgoMSwyLG4uZ3JvdXBCeVJlZ2V4U3RyaW5nJCkpKCJjb2xvclJ1blBhaXJMaXN0IixUaCgyLDQsbi5jb2xvclJ1blBhaXJMaXN0JCkpfSxkaXJlY3RpdmVzOltnMV0scGlwZXM6W3dNXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdLCByZWdleC1lZGl0LWRpYWxvZy1jb21wb25lbnRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGgxLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InJlZ2V4LWVkaXQtZGlhbG9nIix0ZW1wbGF0ZTonPHJlZ2V4LWVkaXQtZGlhbG9nLWNvbXBvbmVudFxuICAgIFtyZWdleFN0cmluZ109Imdyb3VwQnlSZWdleFN0cmluZyQgfCBhc3luYyJcbiAgICBbY29sb3JSdW5QYWlyTGlzdF09ImNvbG9yUnVuUGFpckxpc3QkIHwgYXN5bmMiXG4gICAgKG9uU2F2ZSk9Im9uU2F2ZSgkZXZlbnQpIlxuICAgIChyZWdleElucHV0T25DaGFuZ2UpPSJvblJlZ2V4SW5wdXRPbkNoYW5nZSgkZXZlbnQpIlxuICA+PC9yZWdleC1lZGl0LWRpYWxvZy1jb21wb25lbnQ+JyxzdHlsZXM6WyJcbiAgICAgIDpob3N0LFxuICAgICAgcmVnZXgtZWRpdC1kaWFsb2ctY29tcG9uZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd30se3R5cGU6WEd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltKR119XX1dfSksbnVsbCk7Y2xhc3MgUDF7Y29uc3RydWN0b3IodCl7dGhpcy5kaWFsb2c9dCx0aGlzLkdyb3VwQnlLZXk9dE4sdGhpcy5vbkdyb3VwQnlDaGFuZ2U9bmV3IExofW9uUmVnZXhTdHJpbmdFZGl0KCl7dGhpcy5kaWFsb2cub3BlbihoMSx7bWF4SGVpZ2h0OiI5NXZoIixtYXhXaWR0aDoiODB2dyIsZGF0YTp7ZXhwZXJpbWVudElkczp0aGlzLmV4cGVyaW1lbnRJZHN9fSl9b25Hcm91cEJ5UmVnZXhDbGljaygpe3RoaXMucmVnZXhTdHJpbmc/dGhpcy5vbkdyb3VwQnlDaGFuZ2UuZW1pdCh7a2V5OnROLlJFR0VYLHJlZ2V4U3RyaW5nOnRoaXMucmVnZXhTdHJpbmd9KTp0aGlzLm9uUmVnZXhTdHJpbmdFZGl0KCl9fVAxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQMSkoU20ob1cpKX0sUDEuybVjbXA9dG8oe3R5cGU6UDEsc2VsZWN0b3JzOltbInJ1bnMtZ3JvdXAtbWVudS1idXR0b24tY29tcG9uZW50Il1dLGlucHV0czp7c2hvd0V4cGVyaW1lbnRzR3JvdXBCeToic2hvd0V4cGVyaW1lbnRzR3JvdXBCeSIsZXhwZXJpbWVudElkczoiZXhwZXJpbWVudElkcyIscmVnZXhTdHJpbmc6InJlZ2V4U3RyaW5nIixzZWxlY3RlZEdyb3VwQnk6InNlbGVjdGVkR3JvdXBCeSIsc2hvd0dyb3VwQnlSZWdleDoic2hvd0dyb3VwQnlSZWdleCJ9LG91dHB1dHM6e29uR3JvdXBCeUNoYW5nZToib25Hcm91cEJ5Q2hhbmdlIn0sZGVjbHM6MTQsdmFyczo2LGNvbnN0czpbWyJtYXQtaWNvbi1idXR0b24iLCIiLCJ0aXRsZSIsIkNvbG9yIHJ1bnMgYnkuLi4iLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIl0sWyJzdmdJY29uIiwicGFsZXR0ZV8yNHB4Il0sWzEsInJ1bi10YWJsZS1jb2xvci1ncm91cC1ieSJdLFsiZ3JvdXBCeU1lbnUiLCJtYXRNZW51Il0sWzEsImxhYmVsIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtcmFkaW8iLCJkYXRhLXZhbHVlIiwiZXhwZXJpbWVudCIsMywiY2xpY2siLDQsIm5nSWYiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJyb2xlIiwibWVudWl0ZW1yYWRpbyIsImRhdGEtdmFsdWUiLCJydW4iLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiZG9uZV8yNHB4Iiw0LCJuZ0lmIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtcmFkaW8iLCJkYXRhLXZhbHVlIiwicmVnZXgiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtIiwiZGF0YS12YWx1ZSIsInJlZ2V4LWVkaXQiLCJjbGFzcyIsImRpc3BsYXktcmVnZXgtc3RyaW5nIiwzLCJjbGljayIsNCwibmdJZiJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInJvbGUiLCJtZW51aXRlbXJhZGlvIiwiZGF0YS12YWx1ZSIsImV4cGVyaW1lbnQiLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiZG9uZV8yNHB4Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtcmFkaW8iLCJkYXRhLXZhbHVlIiwicmVnZXgiLDMsImNsaWNrIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtIiwiZGF0YS12YWx1ZSIsInJlZ2V4LWVkaXQiLDEsImRpc3BsYXktcmVnZXgtc3RyaW5nIiwzLCJjbGljayJdLFsic3ZnSWNvbiIsImVkaXRfMjRweCJdLFs0LCJuZ0lmIl0sWyJjbGFzcyIsIm5vbmUtc2V0LXN0cmluZyIsNCwibmdJZiJdLFsxLCJub25lLXNldC1zdHJpbmciXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImJ1dHRvbiIsMCksVG0oMSwibWF0LWljb24iLDEpLEFtKCksUm0oMiwibWF0LW1lbnUiLDIsMyksUm0oNCwiZGl2Iiw0KSxrdSg1LCJDb2xvciBydW5zIGJ5IiksQW0oKSxRcCg2LHkxLDUsMiwiYnV0dG9uIiw1KSxSbSg3LCJidXR0b24iLDYpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkdyb3VwQnlDaGFuZ2UuZW1pdCh7a2V5Om4uR3JvdXBCeUtleS5SVU59KX0pKSxSbSg4LCJzcGFuIiksUXAoOSxfMSwxLDAsIm1hdC1pY29uIiw3KSxBbSgpLFJtKDEwLCJsYWJlbCIpLGt1KDExLCJSdW4iKSxBbSgpLEFtKCksUXAoMTIsTTEsNSwyLCJidXR0b24iLDgpLFFwKDEzLE8xLDUsMiwiYnV0dG9uIiw5KSxBbSgpKSwyJmUmJihEbSgibWF0TWVudVRyaWdnZXJGb3IiLCRwKDMpKSxyYyg2KSxEbSgibmdJZiIsbi5zaG93RXhwZXJpbWVudHNHcm91cEJ5KSxyYygxKSxqcCgiYXJpYS1jaGVja2VkIixuLnNlbGVjdGVkR3JvdXBCeS5rZXk9PT1uLkdyb3VwQnlLZXkuUlVOKSxyYygyKSxEbSgibmdJZiIsbi5zZWxlY3RlZEdyb3VwQnkua2V5PT09bi5Hcm91cEJ5S2V5LlJVTikscmMoMyksRG0oIm5nSWYiLG4uc2hvd0dyb3VwQnlSZWdleCkscmMoMSksRG0oIm5nSWYiLG4uc2hvd0dyb3VwQnlSZWdleCkpfSxkaXJlY3RpdmVzOltYSCxlWSxEVyxLVyxkTSxXV10sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9ICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5e2ZvbnQtc2l6ZToxNnB4fSAgLnJ1bi10YWJsZS1jb2xvci1ncm91cC1ieSAubGFiZWx7Y29sb3I6IzYxNjE2MTtmb250LXNpemU6LjllbTttYXJnaW46MTBweCAwO3BhZGRpbmc6MCAxNnB4O3BvaW50ZXItZXZlbnRzOm5vbmV9ICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5IGJ1dHRvbntkaXNwbGF5OmdyaWQ7Z2FwOjJweCAxMHB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczoyMHB4IGF1dG99ICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5IG1hdC1pY29ue2hlaWdodDoyMHB4O3dpZHRoOjIwcHh9ICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5IC5kaXNwbGF5LXJlZ2V4LXN0cmluZ3twYWRkaW5nLWxlZnQ6NDBweH0gIC5ydW4tdGFibGUtY29sb3ItZ3JvdXAtYnkgLmRpc3BsYXktcmVnZXgtc3RyaW5nIC5ub25lLXNldC1zdHJpbmd7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAgIC5ydW4tdGFibGUtY29sb3ItZ3JvdXAtYnkgLmRpc3BsYXktcmVnZXgtc3RyaW5nIC5ub25lLXNldC1zdHJpbmcsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgICAgLnJ1bi10YWJsZS1jb2xvci1ncm91cC1ieSAuZGlzcGxheS1yZWdleC1zdHJpbmcgLm5vbmUtc2V0LXN0cmluZ3tjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUDEsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoicnVucy1ncm91cC1tZW51LWJ1dHRvbi1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJydW5zX2dyb3VwX21lbnVfYnV0dG9uX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyJydW5zX2dyb3VwX21lbnVfYnV0dG9uX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6b1d9XX0pLHtzaG93RXhwZXJpbWVudHNHcm91cEJ5Olt7dHlwZTp4eX1dLGV4cGVyaW1lbnRJZHM6W3t0eXBlOnh5fV0scmVnZXhTdHJpbmc6W3t0eXBlOnh5fV0sc2VsZWN0ZWRHcm91cEJ5Olt7dHlwZTp4eX1dLHNob3dHcm91cEJ5UmVnZXg6W3t0eXBlOnh5fV0sb25Hcm91cEJ5Q2hhbmdlOlt7dHlwZTpPeX1dfSk7Y2xhc3MgdzF7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuc2hvd0dyb3VwQnlSZWdleCQ9dGhpcy5zdG9yZS5zZWxlY3QobkUpLHRoaXMuc2hvd0V4cGVyaW1lbnRzR3JvdXBCeSQ9dGhpcy5zdG9yZS5zZWxlY3QoRVMpLnBpcGUoSXQoKHQ9PnQuaGFzKFprLkNPTVBBUkVfRVhQRVJJTUVOVCkpKSksdGhpcy5zZWxlY3RlZEdyb3VwQnkkPXRoaXMuc3RvcmUuc2VsZWN0KGZOKSx0aGlzLmdyb3VwQnlSZWdleFN0cmluZyQ9dGhpcy5zdG9yZS5zZWxlY3QoTU4pfW9uR3JvdXBCeUNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKEdSKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxncm91cEJ5OnR9KSl9fXcxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx3MSkoU20oSXcpKX0sdzEuybVjbXA9dG8oe3R5cGU6dzEsc2VsZWN0b3JzOltbInJ1bnMtZ3JvdXAtbWVudS1idXR0b24iXV0saW5wdXRzOntleHBlcmltZW50SWRzOiJleHBlcmltZW50SWRzIn0sZGVjbHM6NSx2YXJzOjEzLGNvbnN0czpbWzMsInJlZ2V4U3RyaW5nIiwic2VsZWN0ZWRHcm91cEJ5Iiwic2hvd0dyb3VwQnlSZWdleCIsInNob3dFeHBlcmltZW50c0dyb3VwQnkiLCJleHBlcmltZW50SWRzIiwib25Hcm91cEJ5Q2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJydW5zLWdyb3VwLW1lbnUtYnV0dG9uLWNvbXBvbmVudCIsMCksVm0oIm9uR3JvdXBCeUNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25Hcm91cEJ5Q2hhbmdlKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQW0oKSksMiZlJiZEbSgicmVnZXhTdHJpbmciLFRoKDEsNSxuLmdyb3VwQnlSZWdleFN0cmluZyQpKSgic2VsZWN0ZWRHcm91cEJ5IixUaCgyLDcsbi5zZWxlY3RlZEdyb3VwQnkkKSkoInNob3dHcm91cEJ5UmVnZXgiLFRoKDMsOSxuLnNob3dHcm91cEJ5UmVnZXgkKSkoInNob3dFeHBlcmltZW50c0dyb3VwQnkiLFRoKDQsMTEsbi5zaG93RXhwZXJpbWVudHNHcm91cEJ5JCkpKCJleHBlcmltZW50SWRzIixuLmV4cGVyaW1lbnRJZHMpfSxkaXJlY3RpdmVzOltQMV0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHcxLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InJ1bnMtZ3JvdXAtbWVudS1idXR0b24iLHRlbXBsYXRlOidcbiAgICA8cnVucy1ncm91cC1tZW51LWJ1dHRvbi1jb21wb25lbnRcbiAgICAgIFtyZWdleFN0cmluZ109Imdyb3VwQnlSZWdleFN0cmluZyQgfCBhc3luYyJcbiAgICAgIFtzZWxlY3RlZEdyb3VwQnldPSJzZWxlY3RlZEdyb3VwQnkkIHwgYXN5bmMiXG4gICAgICBbc2hvd0dyb3VwQnlSZWdleF09InNob3dHcm91cEJ5UmVnZXgkIHwgYXN5bmMiXG4gICAgICBbc2hvd0V4cGVyaW1lbnRzR3JvdXBCeV09InNob3dFeHBlcmltZW50c0dyb3VwQnkkIHwgYXN5bmMiXG4gICAgICBbZXhwZXJpbWVudElkc109ImV4cGVyaW1lbnRJZHMiXG4gICAgICAob25Hcm91cEJ5Q2hhbmdlKT0ib25Hcm91cEJ5Q2hhbmdlKCRldmVudCkiXG4gICAgPjwvcnVucy1ncm91cC1tZW51LWJ1dHRvbi1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7ZXhwZXJpbWVudElkczpbe3R5cGU6eHl9XX0pO2NvbnN0IGsxPVsiY29udGFpbmVyIl07dmFyIFMxOyEoZnVuY3Rpb24odCl7dFt0Lk5PTkU9MF09Ik5PTkUiLHRbdC5MRUZUPTFdPSJMRUZUIix0W3QuUklHSFQ9Ml09IlJJR0hUIn0pKFMxfHwoUzE9e30pKTtjbGFzcyBEMXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmNoYW5nZURldGVjdG9yPXQsdGhpcy50aWNrQ291bnQ9MjAsdGhpcy52YWx1ZT1uZXcgTGgsdGhpcy5Qb3NpdGlvbj1TMSx0aGlzLmFjdGl2ZVRodW1iPVMxLk5PTkUsdGhpcy5vZmZzZXRYRnJvbU9yaWdpbk9mQWN0aXZlVGh1bWI9MCx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEl9Z2V0VGh1bWJQb3NpdGlvbih0KXtjb25zdCBlPXRoaXMuZ2V0Q2xpcHBlZFZhbHVlKHQpLG49dGhpcy5tYXgtdGhpcy5taW47cmV0dXJuIG48PTA/IjUwJSI6KGUtdGhpcy5taW4pL24qMTAwKyIlIn1nZXRUcmFja1dpZHRoKCl7Y29uc3QgdD10aGlzLm1heC10aGlzLm1pbjtyZXR1cm4gdDw9MD8iMCUiOih0aGlzLmdldENsaXBwZWRWYWx1ZSh0aGlzLnVwcGVyVmFsdWUpLXRoaXMuZ2V0Q2xpcHBlZFZhbHVlKHRoaXMubG93ZXJWYWx1ZSkpL3QqMTAwKyIlIn1nZXRDbGlwcGVkVmFsdWUodCl7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KHQsdGhpcy5taW4pLHRoaXMubWF4KX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9bmdPbkluaXQoKXtvZShkb2N1bWVudCwibW91c2Vtb3ZlIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5oYW5kbGVNb3VzZU1vdmUodCl9KSksb2UoZG9jdW1lbnQsIm1vdXNldXAiLHtwYXNzaXZlOiEwfSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLmhhbmRsZU1vdXNlT3V0KHQpfSkpfWhhbmRsZU1vdXNlRG93bih0LGUpe3RoaXMuYWN0aXZlVGh1bWI9ZSx0aGlzLm9mZnNldFhGcm9tT3JpZ2luT2ZBY3RpdmVUaHVtYj02LXQub2Zmc2V0WH1jYWxjdWxhdGVWYWx1ZUZyb21Nb3VzZUV2ZW50KHQpe2NvbnN0e2xlZnQ6ZSxyaWdodDpufT10aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dC5jbGllbnRYLWUrdGhpcy5vZmZzZXRYRnJvbU9yaWdpbk9mQWN0aXZlVGh1bWI7bGV0IGk7aWYobnVsbCE9PXRoaXMudGlja0NvdW50JiZ0aGlzLnRpY2tDb3VudD4wKXtjb25zdCB0PShuLWUpL3RoaXMudGlja0NvdW50O2k9TWF0aC5yb3VuZChvL3QpKnQvKG4tZSl9ZWxzZSBpPW8vKG4tZSk7Y29uc3QgYT10aGlzLmdldENsaXBwZWRWYWx1ZSh0aGlzLm1pbisodGhpcy5tYXgtdGhpcy5taW4pKmkpO3JldHVybiBOdW1iZXIoYS50b0ZpeGVkKDEwKSl9aGFuZGxlTW91c2VNb3ZlKHQpe2lmKHRoaXMuYWN0aXZlVGh1bWI9PT1TMS5OT05FKXJldHVybjtjb25zdCBlPXRoaXMuY2FsY3VsYXRlVmFsdWVGcm9tTW91c2VFdmVudCh0KTtsZXQgbj1bdGhpcy5sb3dlclZhbHVlLHRoaXMudXBwZXJWYWx1ZV07dGhpcy5hY3RpdmVUaHVtYj09PVMxLkxFRlQ/KGU+dGhpcy51cHBlclZhbHVlJiYodGhpcy5hY3RpdmVUaHVtYj1TMS5SSUdIVCksbj1bZSx0aGlzLnVwcGVyVmFsdWVdKTooZTx0aGlzLmxvd2VyVmFsdWUmJih0aGlzLmFjdGl2ZVRodW1iPVMxLkxFRlQpLG49W3RoaXMubG93ZXJWYWx1ZSxlXSksdGhpcy5tYXliZU5vdGlmeU5leHRWYWx1ZShuKSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpfW1heWJlTm90aWZ5TmV4dFZhbHVlKHQpe2NvbnN0W2Usbl09dC5zb3J0KCgodCxlKT0+dC1lKSk7dGhpcy5sb3dlclZhbHVlPT09ZSYmdGhpcy51cHBlclZhbHVlPT09bnx8dGhpcy52YWx1ZS5lbWl0KHtsb3dlclZhbHVlOmUsdXBwZXJWYWx1ZTpufSl9aGFuZGxlTW91c2VPdXQodCl7dGhpcy5hY3RpdmVUaHVtYiE9PVMxLk5PTkUmJih0aGlzLmFjdGl2ZVRodW1iPVMxLk5PTkUsdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKSl9aGFuZGxlSW5wdXRDaGFuZ2UodCxlKXtjb25zdCBuPXRoaXMuZ2V0Q2xpcHBlZFZhbHVlKE51bWJlcih0LnRhcmdldC52YWx1ZSkpO2lmKGlzTmFOKG4pKXJldHVybjtsZXQgbz1bdGhpcy5sb3dlclZhbHVlLHRoaXMudXBwZXJWYWx1ZV07bz1lPT09UzEuTEVGVD9bbix0aGlzLnVwcGVyVmFsdWVdOlt0aGlzLmxvd2VyVmFsdWUsbl0sdGhpcy5tYXliZU5vdGlmeU5leHRWYWx1ZShvKX1pc1RodW1iQWN0aXZlKHQpe3JldHVybiB0aGlzLmFjdGl2ZVRodW1iPT09dH19RDEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEQxKShTbShVZykpfSxEMS7JtWNtcD10byh7dHlwZTpEMSxzZWxlY3RvcnM6W1sidGItcmFuZ2UtaW5wdXQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKGsxLDcsaGcpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uY29udGFpbmVyPXQuZmlyc3QpfX0saW5wdXRzOnttaW46Im1pbiIsbWF4OiJtYXgiLGxvd2VyVmFsdWU6Imxvd2VyVmFsdWUiLHVwcGVyVmFsdWU6InVwcGVyVmFsdWUiLHRpY2tDb3VudDoidGlja0NvdW50In0sb3V0cHV0czp7dmFsdWU6InZhbHVlIn0sZGVjbHM6OCx2YXJzOjE0LGNvbnN0czpbWyJ0eXBlIiwibnVtYmVyIiwxLCJsb3dlci1pbnB1dCIsMywidmFsdWUiLCJjaGFuZ2UiXSxbInR5cGUiLCJudW1iZXIiLDEsInVwcGVyLWlucHV0IiwzLCJ2YWx1ZSIsImNoYW5nZSJdLFsxLCJjb250YWluZXIiXSxbImNvbnRhaW5lciIsIiJdLFsxLCJzbGlkZXItdHJhY2siXSxbMSwic2xpZGVyLXRyYWNrLWZpbGwiXSxbMSwidGh1bWIiLDMsIm1vdXNlZG93biJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiaW5wdXQiLDApLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmhhbmRsZUlucHV0Q2hhbmdlKGUsbi5Qb3NpdGlvbi5MRUZUKX0pKSxBbSgpLFJtKDEsImlucHV0IiwxKSxWbSgiY2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVJbnB1dENoYW5nZShlLG4uUG9zaXRpb24uUklHSFQpfSkpLEFtKCksUm0oMiwic3BhbiIsMiwzKSxUbSg0LCJzcGFuIiw0KSxUbSg1LCJzcGFuIiw1KSxSbSg2LCJzcGFuIiw2KSxWbSgibW91c2Vkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVNb3VzZURvd24oZSxuLlBvc2l0aW9uLkxFRlQpfSkpLEFtKCksUm0oNywic3BhbiIsNiksVm0oIm1vdXNlZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uaGFuZGxlTW91c2VEb3duKGUsbi5Qb3NpdGlvbi5SSUdIVCl9KSksQW0oKSxBbSgpKSwyJmUmJihEbSgidmFsdWUiLG4ubG93ZXJWYWx1ZSkscmMoMSksRG0oInZhbHVlIixuLnVwcGVyVmFsdWUpLHJjKDQpLGR1KCJsZWZ0IixuLmdldFRodW1iUG9zaXRpb24obi5sb3dlclZhbHVlKSkoIndpZHRoIixuLmdldFRyYWNrV2lkdGgoKSkscmMoMSksZHUoImxlZnQiLG4uZ2V0VGh1bWJQb3NpdGlvbihuLmxvd2VyVmFsdWUpKSxwdSgiYWN0aXZlIixuLmlzVGh1bWJBY3RpdmUobi5Qb3NpdGlvbi5MRUZUKSkscmMoMSksZHUoImxlZnQiLG4uZ2V0VGh1bWJQb3NpdGlvbihuLnVwcGVyVmFsdWUpKSxwdSgiYWN0aXZlIixuLmlzVGh1bWJBY3RpdmUobi5Qb3NpdGlvbi5SSUdIVCkpKX0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtZ3JpZDtncmlkLWdhcDoxMHB4O2dyaWQtdGVtcGxhdGUtYXJlYXM6Imxvd2VyLWlucHV0IHVwcGVyLWlucHV0IiAic2xpZGVyIHNsaWRlciI7Zm9udC1zaXplOjA7bWluLXdpZHRoOjEwMHB4O3BhZGRpbmc6NnB4fWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlfS5sb3dlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOmxvd2VyLWlucHV0fS51cHBlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOnVwcGVyLWlucHV0O2p1c3RpZnktc2VsZjpmbGV4LWVuZH0uY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLWFyZWE6c2xpZGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtZmxleDtoZWlnaHQ6MTJweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LnNsaWRlci10cmFja1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yNik7aGVpZ2h0OjJweDt3aWR0aDoxMDAlfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItdHJhY2tbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2xpZGVyLXRyYWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjMpfS5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjJweH0udGh1bWJbX25nY29udGVudC0lQ09NUCVde2JveC1zYWRob3c6MCAwIDAgMXB4IHJnYmEoMCwwLDAsLjI2KTtib3JkZXItcmFkaXVzOjEwMCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEycHg7bWFyZ2luLWxlZnQ6LTZweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZTt3aWR0aDoxMnB4O3dpbGwtY2hhbmdlOnRyYW5zZm9ybX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudGh1bWJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudGh1bWJbX25nY29udGVudC0lQ09NUCVde2JveC1zYWRob3c6MCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjMpfS50aHVtYi5hY3RpdmVbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTpzY2FsZSgxLjIpfS5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV0sIC50aHVtYltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZjU3YzAwfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC50aHVtYltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC50aHVtYltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZWY2YzAwfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChEMSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Yi1yYW5nZS1pbnB1dCIsdGVtcGxhdGVVcmw6Ii4vcmFuZ2VfaW5wdXRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vcmFuZ2VfaW5wdXRfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpVZ31dfSkse2NvbnRhaW5lcjpbe3R5cGU6WmEsYXJnczpbImNvbnRhaW5lciIse3N0YXRpYzohMCxyZWFkOmhnfV19XSxtaW46W3t0eXBlOnh5fV0sbWF4Olt7dHlwZTp4eX1dLGxvd2VyVmFsdWU6W3t0eXBlOnh5fV0sdXBwZXJWYWx1ZTpbe3R5cGU6eHl9XSx0aWNrQ291bnQ6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOk95fV19KTtjb25zdCBFMT1bImRpYWxvZ1BvcHVwIl0sUjE9WyJodWVTbGlkZXIiXSxBMT1bImFscGhhU2xpZGVyIl07ZnVuY3Rpb24gVDEodCxlKXtpZigxJnQmJlRtKDAsImRpdiIpLDImdCl7Y29uc3QgdD1ZbSgpO0F1KCJhcnJvdyBhcnJvdy0iLHQuY3BVc2VQb3NpdGlvbiwiIiksZHUoInRvcCIsdC5hcnJvd1RvcCwicHgiKX19ZnVuY3Rpb24gTjEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDI2KSxWbSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQ29sb3JDaGFuZ2Uobil9KSkoImRyYWdTdGFydCIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vbkRyYWdTdGFydCgic2F0dXJhdGlvbi1saWdodG5lc3MiKX0pKSgiZHJhZ0VuZCIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vbkRyYWdFbmQoInNhdHVyYXRpb24tbGlnaHRuZXNzIil9KSksVG0oMSwiZGl2IiwxMyksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtkdSgiYmFja2dyb3VuZC1jb2xvciIsdC5odWVTbGlkZXJDb2xvciksRG0oInJnWCIsMSkoInJnWSIsMSkscmMoMSksZHUoInRvcCIsbnVsbD09dC5zbGlkZXI/bnVsbDp0LnNsaWRlci52LCJweCIpKCJsZWZ0IixudWxsPT10LnNsaWRlcj9udWxsOnQuc2xpZGVyLnMsInB4Iil9fWZ1bmN0aW9uIHoxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwyNyksVm0oImNsaWNrIiwoZnVuY3Rpb24gZShuKXtoaSh0KTtjb25zdCBvPVltKCk7cmV0dXJuIG8ub25BZGRQcmVzZXRDb2xvcihuLG8uc2VsZWN0ZWRDb2xvcil9KSksa3UoMSksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtmdSh0LmNwQWRkQ29sb3JCdXR0b25DbGFzcyksRG0oImRpc2FibGVkIix0LmNwUHJlc2V0Q29sb3JzJiZ0LmNwUHJlc2V0Q29sb3JzLmxlbmd0aD49dC5jcE1heFByZXNldENvbG9yc0xlbmd0aCkscmMoMSksRHUoIiAiLHQuY3BBZGRDb2xvckJ1dHRvblRleHQsIiAiKX19ZnVuY3Rpb24gSTEodCxlKXsxJnQmJlRtKDAsImRpdiIsMjgpfWZ1bmN0aW9uIEgxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiaW5wdXQiLDM0KSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uQWxwaGFJbnB1dChuKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgicmciLDEpKCJ2YWx1ZSIsbnVsbD09dC5jbXlrVGV4dD9udWxsOnQuY215a1RleHQuYSl9fWZ1bmN0aW9uIEYxKHQsZSl7MSZ0JiYoUm0oMCwiZGl2Iiksa3UoMSwiQSIpLEFtKCkpfWZ1bmN0aW9uIEwxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwyOSksUm0oMSwiZGl2IiwzMCksUm0oMiwiaW5wdXQiLDMxKSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vbkN5YW5JbnB1dChuKX0pKSxBbSgpLFJtKDMsImlucHV0IiwzMSksVm0oImtleXVwLmVudGVyIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25NYWdlbnRhSW5wdXQobil9KSksQW0oKSxSbSg0LCJpbnB1dCIsMzEpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uWWVsbG93SW5wdXQobil9KSksQW0oKSxSbSg1LCJpbnB1dCIsMzEpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQmxhY2tJbnB1dChuKX0pKSxBbSgpLFFwKDYsSDEsMSwyLCJpbnB1dCIsMzIpLEFtKCksUm0oNywiZGl2IiwzMCksUm0oOCwiZGl2Iiksa3UoOSwiQyIpLEFtKCksUm0oMTAsImRpdiIpLGt1KDExLCJNIiksQW0oKSxSbSgxMiwiZGl2Iiksa3UoMTMsIlkiKSxBbSgpLFJtKDE0LCJkaXYiKSxrdSgxNSwiSyIpLEFtKCksUXAoMTYsRjEsMiwwLCJkaXYiLDMzKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7ZHUoImRpc3BsYXkiLDMhPT10LmZvcm1hdD8ibm9uZSI6ImJsb2NrIikscmMoMiksRG0oInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09dC5jbXlrVGV4dD9udWxsOnQuY215a1RleHQuYykscmMoMSksRG0oInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09dC5jbXlrVGV4dD9udWxsOnQuY215a1RleHQubSkscmMoMSksRG0oInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09dC5jbXlrVGV4dD9udWxsOnQuY215a1RleHQueSkscmMoMSksRG0oInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09dC5jbXlrVGV4dD9udWxsOnQuY215a1RleHQuaykscmMoMSksRG0oIm5nSWYiLCJkaXNhYmxlZCIhPT10LmNwQWxwaGFDaGFubmVsKSxyYygxMCksRG0oIm5nSWYiLCJkaXNhYmxlZCIhPT10LmNwQWxwaGFDaGFubmVsKX19ZnVuY3Rpb24gQjEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJpbnB1dCIsMzQpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25BbHBoYUlucHV0KG4pfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJyZyIsMSkoInZhbHVlIixudWxsPT10LmhzbGFUZXh0P251bGw6dC5oc2xhVGV4dC5hKX19ZnVuY3Rpb24gVjEodCxlKXsxJnQmJihSbSgwLCJkaXYiKSxrdSgxLCJBIiksQW0oKSl9ZnVuY3Rpb24gajEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDM1KSxSbSgxLCJkaXYiLDMwKSxSbSgyLCJpbnB1dCIsMzYpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uSHVlSW5wdXQobil9KSksQW0oKSxSbSgzLCJpbnB1dCIsMzEpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uU2F0dXJhdGlvbklucHV0KG4pfSkpLEFtKCksUm0oNCwiaW5wdXQiLDMxKSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vbkxpZ2h0bmVzc0lucHV0KG4pfSkpLEFtKCksUXAoNSxCMSwxLDIsImlucHV0IiwzMiksQW0oKSxSbSg2LCJkaXYiLDMwKSxSbSg3LCJkaXYiKSxrdSg4LCJIIiksQW0oKSxSbSg5LCJkaXYiKSxrdSgxMCwiUyIpLEFtKCksUm0oMTEsImRpdiIpLGt1KDEyLCJMIiksQW0oKSxRcCgxMyxWMSwyLDAsImRpdiIsMzMpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtkdSgiZGlzcGxheSIsMiE9PXQuZm9ybWF0PyJub25lIjoiYmxvY2siKSxyYygyKSxEbSgicmciLDM2MCkoInZhbHVlIixudWxsPT10LmhzbGFUZXh0P251bGw6dC5oc2xhVGV4dC5oKSxyYygxKSxEbSgicmciLDEwMCkoInZhbHVlIixudWxsPT10LmhzbGFUZXh0P251bGw6dC5oc2xhVGV4dC5zKSxyYygxKSxEbSgicmciLDEwMCkoInZhbHVlIixudWxsPT10LmhzbGFUZXh0P251bGw6dC5oc2xhVGV4dC5sKSxyYygxKSxEbSgibmdJZiIsImRpc2FibGVkIiE9PXQuY3BBbHBoYUNoYW5uZWwpLHJjKDgpLERtKCJuZ0lmIiwiZGlzYWJsZWQiIT09dC5jcEFscGhhQ2hhbm5lbCl9fWZ1bmN0aW9uIFUxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiaW5wdXQiLDM0KSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uQWxwaGFJbnB1dChuKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgicmciLDEpKCJ2YWx1ZSIsbnVsbD09dC5yZ2JhVGV4dD9udWxsOnQucmdiYVRleHQuYSl9fWZ1bmN0aW9uIEcxKHQsZSl7MSZ0JiYoUm0oMCwiZGl2Iiksa3UoMSwiQSIpLEFtKCkpfWZ1bmN0aW9uIFcxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwzNyksUm0oMSwiZGl2IiwzMCksUm0oMiwiaW5wdXQiLDM4KSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vblJlZElucHV0KG4pfSkpLEFtKCksUm0oMywiaW5wdXQiLDM4KSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vbkdyZWVuSW5wdXQobil9KSksQW0oKSxSbSg0LCJpbnB1dCIsMzgpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uQmx1ZUlucHV0KG4pfSkpLEFtKCksUXAoNSxVMSwxLDIsImlucHV0IiwzMiksQW0oKSxSbSg2LCJkaXYiLDMwKSxSbSg3LCJkaXYiKSxrdSg4LCJSIiksQW0oKSxSbSg5LCJkaXYiKSxrdSgxMCwiRyIpLEFtKCksUm0oMTEsImRpdiIpLGt1KDEyLCJCIiksQW0oKSxRcCgxMyxHMSwyLDAsImRpdiIsMzMpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtkdSgiZGlzcGxheSIsMSE9PXQuZm9ybWF0PyJub25lIjoiYmxvY2siKSxyYygyKSxEbSgicmciLDI1NSkoInZhbHVlIixudWxsPT10LnJnYmFUZXh0P251bGw6dC5yZ2JhVGV4dC5yKSxyYygxKSxEbSgicmciLDI1NSkoInZhbHVlIixudWxsPT10LnJnYmFUZXh0P251bGw6dC5yZ2JhVGV4dC5nKSxyYygxKSxEbSgicmciLDI1NSkoInZhbHVlIixudWxsPT10LnJnYmFUZXh0P251bGw6dC5yZ2JhVGV4dC5iKSxyYygxKSxEbSgibmdJZiIsImRpc2FibGVkIiE9PXQuY3BBbHBoYUNoYW5uZWwpLHJjKDgpLERtKCJuZ0lmIiwiZGlzYWJsZWQiIT09dC5jcEFscGhhQ2hhbm5lbCl9fWZ1bmN0aW9uIFkxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiaW5wdXQiLDM0KSxWbSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uQWxwaGFJbnB1dChuKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgicmciLDEpKCJ2YWx1ZSIsdC5oZXhBbHBoYSl9fWZ1bmN0aW9uIHExKHQsZSl7MSZ0JiYoUm0oMCwiZGl2Iiksa3UoMSwiQSIpLEFtKCkpfWZ1bmN0aW9uIFoxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwzOSksUm0oMSwiZGl2IiwzMCksUm0oMiwiaW5wdXQiLDQwKSxWbSgiYmx1ciIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vbkhleElucHV0KG51bGwpfSkpKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uSGV4SW5wdXQobil9KSksQW0oKSxRcCgzLFkxLDEsMiwiaW5wdXQiLDMyKSxBbSgpLFJtKDQsImRpdiIsMzApLFJtKDUsImRpdiIpLGt1KDYsIkhleCIpLEFtKCksUXAoNyxxMSwyLDAsImRpdiIsMzMpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtkdSgiZGlzcGxheSIsMCE9PXQuZm9ybWF0PyJub25lIjoiYmxvY2siKSxwdSgiaGV4LWFscGhhIiwiZm9yY2VkIj09PXQuY3BBbHBoYUNoYW5uZWwpLHJjKDIpLERtKCJ2YWx1ZSIsdC5oZXhUZXh0KSxyYygxKSxEbSgibmdJZiIsImZvcmNlZCI9PT10LmNwQWxwaGFDaGFubmVsKSxyYyg0KSxEbSgibmdJZiIsImZvcmNlZCI9PT10LmNwQWxwaGFDaGFubmVsKX19ZnVuY3Rpb24gWDEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJpbnB1dCIsMzQpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25BbHBoYUlucHV0KG4pfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJyZyIsMSkoInZhbHVlIixudWxsPT10LmhzbGFUZXh0P251bGw6dC5oc2xhVGV4dC5hKX19ZnVuY3Rpb24gSzEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDQxKSxSbSgxLCJkaXYiLDMwKSxSbSgyLCJpbnB1dCIsMzEpLFZtKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uVmFsdWVJbnB1dChuKX0pKSxBbSgpLFFwKDMsWDEsMSwyLCJpbnB1dCIsMzIpLEFtKCksUm0oNCwiZGl2IiwzMCksUm0oNSwiZGl2Iiksa3UoNiwiViIpLEFtKCksUm0oNywiZGl2Iiksa3UoOCwiQSIpLEFtKCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO3JjKDIpLERtKCJyZyIsMTAwKSgidmFsdWUiLG51bGw9PXQuaHNsYVRleHQ/bnVsbDp0LmhzbGFUZXh0LmwpLHJjKDEpLERtKCJuZ0lmIiwiZGlzYWJsZWQiIT09dC5jcEFscGhhQ2hhbm5lbCl9fWZ1bmN0aW9uIEoxKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2Iiw0MiksUm0oMSwic3BhbiIsNDMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5vbkZvcm1hdFRvZ2dsZSgtMSl9KSksQW0oKSxSbSgyLCJzcGFuIiw0MyksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLm9uRm9ybWF0VG9nZ2xlKDEpfSkpLEFtKCksQW0oKX19ZnVuY3Rpb24gUTEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJzcGFuIiw1MCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZShuKXtoaSh0KTtjb25zdCBvPVltKCkuJGltcGxpY2l0O3JldHVybiBZbSgzKS5vblJlbW92ZVByZXNldENvbG9yKG4sbyl9KSksQW0oKX0yJnQmJmZ1KFltKDQpLmNwUmVtb3ZlQ29sb3JCdXR0b25DbGFzcyl9ZnVuY3Rpb24gJDEodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDQ4KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7Y29uc3Qgbj1oaSh0KS4kaW1wbGljaXQ7cmV0dXJuIFltKDMpLnNldENvbG9yRnJvbVN0cmluZyhuKX0pKSxRcCgxLFExLDEsMywic3BhbiIsNDkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMyk7ZHUoImJhY2tncm91bmQtY29sb3IiLHQpLHJjKDEpLERtKCJuZ0lmIixuLmNwQWRkQ29sb3JCdXR0b24pfX1mdW5jdGlvbiB0Myh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIpLFFwKDEsJDEsMiwzLCJkaXYiLDQ3KSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7ZnUodC5jcFByZXNldENvbG9yc0NsYXNzKSxyYygxKSxEbSgibmdGb3JPZiIsdC5jcFByZXNldENvbG9ycyl9fWZ1bmN0aW9uIGUzKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO2Z1KHQuY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzcykscmMoMSksU3UodC5jcFByZXNldEVtcHR5TWVzc2FnZSl9fWZ1bmN0aW9uIG4zKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiw0NCksVG0oMSwiaHIiKSxSbSgyLCJkaXYiLDQ1KSxrdSgzKSxBbSgpLFFwKDQsdDMsMiw0LCJkaXYiLDQ2KSxRcCg1LGUzLDIsNCwiZGl2Iiw0NiksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMyksU3UodC5jcFByZXNldExhYmVsKSxyYygxKSxEbSgibmdJZiIsbnVsbD09dC5jcFByZXNldENvbG9ycz9udWxsOnQuY3BQcmVzZXRDb2xvcnMubGVuZ3RoKSxyYygxKSxEbSgibmdJZiIsIShudWxsIT10LmNwUHJlc2V0Q29sb3JzJiZ0LmNwUHJlc2V0Q29sb3JzLmxlbmd0aCkmJnQuY3BBZGRDb2xvckJ1dHRvbil9fWZ1bmN0aW9uIG8zKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiw1MyksVm0oImNsaWNrIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25DYW5jZWxDb2xvcihuKX0pKSxrdSgxKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtmdSh0LmNwQ2FuY2VsQnV0dG9uQ2xhc3MpLHJjKDEpLFN1KHQuY3BDYW5jZWxCdXR0b25UZXh0KX19ZnVuY3Rpb24gaTModCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJidXR0b24iLDUzKSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5vbkFjY2VwdENvbG9yKG4pfSkpLGt1KDEpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO2Z1KHQuY3BPS0J1dHRvbkNsYXNzKSxyYygxKSxTdSh0LmNwT0tCdXR0b25UZXh0KX19ZnVuY3Rpb24gYTModCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDUxKSxRcCgxLG8zLDIsNCwiYnV0dG9uIiw1MiksUXAoMixpMywyLDQsImJ1dHRvbiIsNTIpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLERtKCJuZ0lmIix0LmNwQ2FuY2VsQnV0dG9uKSxyYygxKSxEbSgibmdJZiIsdC5jcE9LQnV0dG9uKX19dmFyIHIzOyEoZnVuY3Rpb24odCl7dFt0LkhFWD0wXT0iSEVYIix0W3QuUkdCQT0xXT0iUkdCQSIsdFt0LkhTTEE9Ml09IkhTTEEiLHRbdC5DTVlLPTNdPSJDTVlLIn0pKHIzfHwocjM9e30pKTtjbGFzcyBzM3tjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLnI9dCx0aGlzLmc9ZSx0aGlzLmI9bix0aGlzLmE9b319Y2xhc3MgbDN7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5oPXQsdGhpcy5zPWUsdGhpcy52PW4sdGhpcy5hPW99fWNsYXNzIGMze2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuaD10LHRoaXMucz1lLHRoaXMubD1uLHRoaXMuYT1vfX1jbGFzcyBkM3tjb25zdHJ1Y3Rvcih0LGUsbixvLGk9MSl7dGhpcy5jPXQsdGhpcy5tPWUsdGhpcy55PW4sdGhpcy5rPW8sdGhpcy5hPWl9fWNsYXNzIHAze2NvbnN0cnVjdG9yKCl7dGhpcy5uZXdWYWx1ZT1uZXcgTGh9aW5wdXRDaGFuZ2UodCl7Y29uc3QgZT10LnRhcmdldC52YWx1ZTtpZih2b2lkIDA9PT10aGlzLnJnKXRoaXMubmV3VmFsdWUuZW1pdChlKTtlbHNle2NvbnN0IHQ9cGFyc2VGbG9hdChlKTt0aGlzLm5ld1ZhbHVlLmVtaXQoe3Y6dCxyZzp0aGlzLnJnfSl9fX1wMy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cDMpfSxwMy7JtWRpcj1sbyh7dHlwZTpwMyxzZWxlY3RvcnM6W1siIiwidGV4dCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5pbnB1dENoYW5nZShlKX0pKX0saW5wdXRzOntyZzoicmciLHRleHQ6InRleHQifSxvdXRwdXRzOntuZXdWYWx1ZToibmV3VmFsdWUifX0pLHAzLnByb3BEZWNvcmF0b3JzPXtyZzpbe3R5cGU6eHl9XSx0ZXh0Olt7dHlwZTp4eX1dLG5ld1ZhbHVlOlt7dHlwZTpPeX1dLGlucHV0Q2hhbmdlOlt7dHlwZTp3eSxhcmdzOlsiaW5wdXQiLFsiJGV2ZW50Il1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocDMsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW3RleHRdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7bmV3VmFsdWU6W3t0eXBlOk95fV0saW5wdXRDaGFuZ2U6W3t0eXBlOnd5LGFyZ3M6WyJpbnB1dCIsWyIkZXZlbnQiXV19XSxyZzpbe3R5cGU6eHl9XSx0ZXh0Olt7dHlwZTp4eX1dfSk7Y2xhc3MgbTN7Y29uc3RydWN0b3IodCl7dGhpcy5lbFJlZj10LHRoaXMuZHJhZ0VuZD1uZXcgTGgsdGhpcy5kcmFnU3RhcnQ9bmV3IExoLHRoaXMubmV3VmFsdWU9bmV3IExoLHRoaXMubGlzdGVuZXJNb3ZlPXQ9PnRoaXMubW92ZSh0KSx0aGlzLmxpc3RlbmVyU3RvcD0oKT0+dGhpcy5zdG9wKCl9bW91c2VEb3duKHQpe3RoaXMuc3RhcnQodCl9dG91Y2hTdGFydCh0KXt0aGlzLnN0YXJ0KHQpfW1vdmUodCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2V0Q3Vyc29yKHQpfXN0YXJ0KHQpe3RoaXMuc2V0Q3Vyc29yKHQpLHQuc3RvcFByb3BhZ2F0aW9uKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5saXN0ZW5lclN0b3ApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLmxpc3RlbmVyU3RvcCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmxpc3RlbmVyTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLmxpc3RlbmVyTW92ZSksdGhpcy5kcmFnU3RhcnQuZW1pdCgpfXN0b3AoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmxpc3RlbmVyU3RvcCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMubGlzdGVuZXJTdG9wKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubGlzdGVuZXJNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMubGlzdGVuZXJNb3ZlKSx0aGlzLmRyYWdFbmQuZW1pdCgpfWdldFgodCl7Y29uc3QgZT10aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuKHZvaWQgMCE9PXQucGFnZVg/dC5wYWdlWDp0LnRvdWNoZXNbMF0ucGFnZVgpLWUubGVmdC13aW5kb3cucGFnZVhPZmZzZXR9Z2V0WSh0KXtjb25zdCBlPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4odm9pZCAwIT09dC5wYWdlWT90LnBhZ2VZOnQudG91Y2hlc1swXS5wYWdlWSktZS50b3Atd2luZG93LnBhZ2VZT2Zmc2V0fXNldEN1cnNvcih0KXtjb25zdCBlPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCxuPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQsbz1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuZ2V0WCh0KSxlKSksaT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuZ2V0WSh0KSxuKSk7dm9pZCAwIT09dGhpcy5yZ1gmJnZvaWQgMCE9PXRoaXMucmdZP3RoaXMubmV3VmFsdWUuZW1pdCh7czpvL2UsdjoxLWkvbixyZ1g6dGhpcy5yZ1gscmdZOnRoaXMucmdZfSk6dm9pZCAwPT09dGhpcy5yZ1gmJnZvaWQgMCE9PXRoaXMucmdZP3RoaXMubmV3VmFsdWUuZW1pdCh7djppL24scmdZOnRoaXMucmdZfSk6dm9pZCAwIT09dGhpcy5yZ1gmJnZvaWQgMD09PXRoaXMucmdZJiZ0aGlzLm5ld1ZhbHVlLmVtaXQoe3Y6by9lLHJnWDp0aGlzLnJnWH0pfX1tMy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bTMpKFNtKGhnKSl9LG0zLsm1ZGlyPWxvKHt0eXBlOm0zLHNlbGVjdG9yczpbWyIiLCJzbGlkZXIiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJtb3VzZWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm1vdXNlRG93bihlKX0pKSgidG91Y2hzdGFydCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4udG91Y2hTdGFydChlKX0pKX0saW5wdXRzOntyZ1g6InJnWCIscmdZOiJyZ1kiLHNsaWRlcjoic2xpZGVyIn0sb3V0cHV0czp7ZHJhZ0VuZDoiZHJhZ0VuZCIsZHJhZ1N0YXJ0OiJkcmFnU3RhcnQiLG5ld1ZhbHVlOiJuZXdWYWx1ZSJ9fSksbTMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ31dLG0zLnByb3BEZWNvcmF0b3JzPXtyZ1g6W3t0eXBlOnh5fV0scmdZOlt7dHlwZTp4eX1dLHNsaWRlcjpbe3R5cGU6eHl9XSxkcmFnRW5kOlt7dHlwZTpPeX1dLGRyYWdTdGFydDpbe3R5cGU6T3l9XSxuZXdWYWx1ZTpbe3R5cGU6T3l9XSxtb3VzZURvd246W3t0eXBlOnd5LGFyZ3M6WyJtb3VzZWRvd24iLFsiJGV2ZW50Il1dfV0sdG91Y2hTdGFydDpbe3R5cGU6d3ksYXJnczpbInRvdWNoc3RhcnQiLFsiJGV2ZW50Il1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobTMsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW3NsaWRlcl0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9XX0pLHtkcmFnRW5kOlt7dHlwZTpPeX1dLGRyYWdTdGFydDpbe3R5cGU6T3l9XSxuZXdWYWx1ZTpbe3R5cGU6T3l9XSxtb3VzZURvd246W3t0eXBlOnd5LGFyZ3M6WyJtb3VzZWRvd24iLFsiJGV2ZW50Il1dfV0sdG91Y2hTdGFydDpbe3R5cGU6d3ksYXJnczpbInRvdWNoc3RhcnQiLFsiJGV2ZW50Il1dfV0scmdYOlt7dHlwZTp4eX1dLHJnWTpbe3R5cGU6eHl9XSxzbGlkZXI6W3t0eXBlOnh5fV19KTtjbGFzcyB1M3tjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLmg9dCx0aGlzLnM9ZSx0aGlzLnY9bix0aGlzLmE9b319Y2xhc3MgZjN7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5oPXQsdGhpcy5zPWUsdGhpcy52PW4sdGhpcy5hPW99fWNsYXNzIGcze2NvbnN0cnVjdG9yKCl7dGhpcy5hY3RpdmU9bnVsbH1zZXRBY3RpdmUodCl7dGhpcy5hY3RpdmUmJnRoaXMuYWN0aXZlIT09dCYmImlubGluZSIhPT10aGlzLmFjdGl2ZS5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuYWN0aXZlLmNsb3NlRGlhbG9nKCksdGhpcy5hY3RpdmU9dH1oc3ZhMmhzbGEodCl7Y29uc3QgZT10Lmgsbj10LnMsbz10LnYsaT10LmE7aWYoMD09PW8pcmV0dXJuIG5ldyBjMyhlLDAsMCxpKTtpZigwPT09biYmMT09PW8pcmV0dXJuIG5ldyBjMyhlLDEsMSxpKTt7Y29uc3QgdD1vKigyLW4pLzI7cmV0dXJuIG5ldyBjMyhlLG8qbi8oMS1NYXRoLmFicygyKnQtMSkpLHQsaSl9fWhzbGEyaHN2YSh0KXtjb25zdCBlPU1hdGgubWluKHQuaCwxKSxuPU1hdGgubWluKHQucywxKSxvPU1hdGgubWluKHQubCwxKSxpPU1hdGgubWluKHQuYSwxKTtpZigwPT09bylyZXR1cm4gbmV3IGwzKGUsMCwwLGkpO3tjb25zdCB0PW8rbiooMS1NYXRoLmFicygyKm8tMSkpLzI7cmV0dXJuIG5ldyBsMyhlLDIqKHQtbykvdCx0LGkpfX1oc3ZhVG9SZ2JhKHQpe2xldCBlLG4sbztjb25zdCBpPXQuaCxhPXQucyxyPXQudixzPXQuYSxsPU1hdGguZmxvb3IoNippKSxjPTYqaS1sLGQ9ciooMS1hKSxwPXIqKDEtYyphKSxtPXIqKDEtKDEtYykqYSk7c3dpdGNoKGwlNil7Y2FzZSAwOmU9cixuPW0sbz1kO2JyZWFrO2Nhc2UgMTplPXAsbj1yLG89ZDticmVhaztjYXNlIDI6ZT1kLG49cixvPW07YnJlYWs7Y2FzZSAzOmU9ZCxuPXAsbz1yO2JyZWFrO2Nhc2UgNDplPW0sbj1kLG89cjticmVhaztjYXNlIDU6ZT1yLG49ZCxvPXA7YnJlYWs7ZGVmYXVsdDplPTAsbj0wLG89MH1yZXR1cm4gbmV3IHMzKGUsbixvLHMpfWNteWtUb1JnYih0KXtyZXR1cm4gbmV3IHMzKCgxLXQuYykqKDEtdC5rKSwoMS10Lm0pKigxLXQuayksKDEtdC55KSooMS10LmspLHQuYSl9cmdiYVRvQ215ayh0KXtjb25zdCBlPTEtTWF0aC5tYXgodC5yLHQuZyx0LmIpO3JldHVybiAxPT09ZT9uZXcgZDMoMCwwLDAsMSx0LmEpOm5ldyBkMygoMS10LnItZSkvKDEtZSksKDEtdC5nLWUpLygxLWUpLCgxLXQuYi1lKS8oMS1lKSxlLHQuYSl9cmdiYVRvSHN2YSh0KXtsZXQgZSxuO2NvbnN0IG89TWF0aC5taW4odC5yLDEpLGk9TWF0aC5taW4odC5nLDEpLGE9TWF0aC5taW4odC5iLDEpLHI9TWF0aC5taW4odC5hLDEpLHM9TWF0aC5tYXgobyxpLGEpLGw9TWF0aC5taW4obyxpLGEpLGM9cyxkPXMtbDtpZihuPTA9PT1zPzA6ZC9zLHM9PT1sKWU9MDtlbHNle3N3aXRjaChzKXtjYXNlIG86ZT0oaS1hKS9kKyhpPGE/NjowKTticmVhaztjYXNlIGk6ZT0oYS1vKS9kKzI7YnJlYWs7Y2FzZSBhOmU9KG8taSkvZCs0O2JyZWFrO2RlZmF1bHQ6ZT0wfWUvPTZ9cmV0dXJuIG5ldyBsMyhlLG4sYyxyKX1yZ2JhVG9IZXgodCxlKXtsZXQgbj0iIyIrKDE8PDI0fHQucjw8MTZ8dC5nPDw4fHQuYikudG9TdHJpbmcoMTYpLnN1YnN0cigxKTtyZXR1cm4gZSYmKG4rPSgyNTZ8TWF0aC5yb3VuZCgyNTUqdC5hKSkudG9TdHJpbmcoMTYpLnN1YnN0cigxKSksbn1ub3JtYWxpemVDTVlLKHQpe3JldHVybiBuZXcgZDModC5jLzEwMCx0Lm0vMTAwLHQueS8xMDAsdC5rLzEwMCx0LmEpfWRlbm9ybWFsaXplQ01ZSyh0KXtyZXR1cm4gbmV3IGQzKE1hdGguZmxvb3IoMTAwKnQuYyksTWF0aC5mbG9vcigxMDAqdC5tKSxNYXRoLmZsb29yKDEwMCp0LnkpLE1hdGguZmxvb3IoMTAwKnQuayksdC5hKX1kZW5vcm1hbGl6ZVJHQkEodCl7cmV0dXJuIG5ldyBzMyhNYXRoLnJvdW5kKDI1NSp0LnIpLE1hdGgucm91bmQoMjU1KnQuZyksTWF0aC5yb3VuZCgyNTUqdC5iKSx0LmEpfXN0cmluZ1RvSHN2YSh0PSIiLGU9ITEpe2xldCBuPW51bGw7dD0odHx8IiIpLnRvTG93ZXJDYXNlKCk7Y29uc3Qgbz1be3JlOi8ocmdiKWE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqJT8sXHMqKFxkezEsM30pXHMqJT8oPzosXHMqKFxkKyg/OlwuXGQrKT8pXHMqKT9cKS8scGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBzMyhwYXJzZUludCh0WzJdLDEwKS8yNTUscGFyc2VJbnQodFszXSwxMCkvMjU1LHBhcnNlSW50KHRbNF0sMTApLzI1NSxpc05hTihwYXJzZUZsb2F0KHRbNV0pKT8xOnBhcnNlRmxvYXQodFs1XSkpfX0se3JlOi8oaHNsKWE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pJVxzKixccyooXGR7MSwzfSklXHMqKD86LFxzKihcZCsoPzpcLlxkKyk/KVxzKik/XCkvLHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgYzMocGFyc2VJbnQodFsyXSwxMCkvMzYwLHBhcnNlSW50KHRbM10sMTApLzEwMCxwYXJzZUludCh0WzRdLDEwKS8xMDAsaXNOYU4ocGFyc2VGbG9hdCh0WzVdKSk/MTpwYXJzZUZsb2F0KHRbNV0pKX19XTtvLnB1c2goZT97cmU6LyMoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSkoW2EtZkEtRjAtOV17Mn0pPyQvLHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgczMocGFyc2VJbnQodFsxXSwxNikvMjU1LHBhcnNlSW50KHRbMl0sMTYpLzI1NSxwYXJzZUludCh0WzNdLDE2KS8yNTUscGFyc2VJbnQodFs0XXx8IkZGIiwxNikvMjU1KX19OntyZTovIyhbYS1mQS1GMC05XXsyfSkoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KSQvLHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgczMocGFyc2VJbnQodFsxXSwxNikvMjU1LHBhcnNlSW50KHRbMl0sMTYpLzI1NSxwYXJzZUludCh0WzNdLDE2KS8yNTUsMSl9fSksby5wdXNoKHtyZTovIyhbYS1mQS1GMC05XSkoW2EtZkEtRjAtOV0pKFthLWZBLUYwLTldKSQvLHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgczMocGFyc2VJbnQodFsxXSt0WzFdLDE2KS8yNTUscGFyc2VJbnQodFsyXSt0WzJdLDE2KS8yNTUscGFyc2VJbnQodFszXSt0WzNdLDE2KS8yNTUsMSl9fSk7Zm9yKGNvbnN0IGUgaW4gbylpZihvLmhhc093blByb3BlcnR5KGUpKXtjb25zdCBpPW9bZV0sYT1pLnJlLmV4ZWModCkscj1hJiZpLnBhcnNlKGEpO2lmKHIpcmV0dXJuIHIgaW5zdGFuY2VvZiBzMz9uPXRoaXMucmdiYVRvSHN2YShyKTpyIGluc3RhbmNlb2YgYzMmJihuPXRoaXMuaHNsYTJoc3ZhKHIpKSxufXJldHVybiBufW91dHB1dEZvcm1hdCh0LGUsbil7c3dpdGNoKCJhdXRvIj09PWUmJihlPXQuYTwxPyJyZ2JhIjoiaGV4IiksZSl7Y2FzZSJoc2xhIjpjb25zdCBlPXRoaXMuaHN2YTJoc2xhKHQpLG89bmV3IGMzKE1hdGgucm91bmQoMzYwKmUuaCksTWF0aC5yb3VuZCgxMDAqZS5zKSxNYXRoLnJvdW5kKDEwMCplLmwpLE1hdGgucm91bmQoMTAwKmUuYSkvMTAwKTtyZXR1cm4gdC5hPDF8fCJhbHdheXMiPT09bj8iaHNsYSgiK28uaCsiLCIrby5zKyIlLCIrby5sKyIlLCIrby5hKyIpIjoiaHNsKCIrby5oKyIsIitvLnMrIiUsIitvLmwrIiUpIjtjYXNlInJnYmEiOmNvbnN0IGk9dGhpcy5kZW5vcm1hbGl6ZVJHQkEodGhpcy5oc3ZhVG9SZ2JhKHQpKTtyZXR1cm4gdC5hPDF8fCJhbHdheXMiPT09bj8icmdiYSgiK2kucisiLCIraS5nKyIsIitpLmIrIiwiK01hdGgucm91bmQoMTAwKmkuYSkvMTAwKyIpIjoicmdiKCIraS5yKyIsIitpLmcrIiwiK2kuYisiKSI7ZGVmYXVsdDpjb25zdCBhPSJhbHdheXMiPT09bnx8ImZvcmNlZCI9PT1uO3JldHVybiB0aGlzLnJnYmFUb0hleCh0aGlzLmRlbm9ybWFsaXplUkdCQSh0aGlzLmhzdmFUb1JnYmEodCkpLGEpfX19ZzMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGczKX0sZzMuybVwcm92PU1uKHt0b2tlbjpnMyxmYWN0b3J5OmczLsm1ZmFjfSksZzMuY3RvclBhcmFtZXRlcnM9KCk9PltdLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZzMsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSxudWxsKTtjbGFzcyBoM3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5lbFJlZj10LHRoaXMuY2RSZWY9ZSx0aGlzLnNlcnZpY2U9bix0aGlzLmlzSUUxMD0hMSx0aGlzLmRpYWxvZ0Fycm93U2l6ZT0xMCx0aGlzLmRpYWxvZ0Fycm93T2Zmc2V0PTE1LHRoaXMuZGlhbG9nSW5wdXRGaWVsZHM9W3IzLkhFWCxyMy5SR0JBLHIzLkhTTEEscjMuQ01ZS10sdGhpcy51c2VSb290Vmlld0NvbnRhaW5lcj0hMX1oYW5kbGVFc2ModCl7dGhpcy5zaG93JiYicG9wdXAiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMub25DYW5jZWxDb2xvcih0KX1oYW5kbGVFbnRlcih0KXt0aGlzLnNob3cmJiJwb3B1cCI9PT10aGlzLmNwRGlhbG9nRGlzcGxheSYmdGhpcy5vbkFjY2VwdENvbG9yKHQpfW5nT25Jbml0KCl7dGhpcy5zbGlkZXI9bmV3IHUzKDAsMCwwLDApLHRoaXMuc2xpZGVyRGltTWF4PW5ldyBmMyh0aGlzLmh1ZVNsaWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofHwxNDAsdGhpcy5jcFdpZHRoLDEzMCx0aGlzLmFscGhhU2xpZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGh8fDE0MCksdGhpcy5mb3JtYXQ9dGhpcy5jcENteWtFbmFibGVkP3IzLkNNWUs6InJnYmEiPT09dGhpcy5jcE91dHB1dEZvcm1hdD9yMy5SR0JBOiJoc2xhIj09PXRoaXMuY3BPdXRwdXRGb3JtYXQ/cjMuSFNMQTpyMy5IRVgsdGhpcy5saXN0ZW5lck1vdXNlRG93bj10PT57dGhpcy5vbk1vdXNlRG93bih0KX0sdGhpcy5saXN0ZW5lclJlc2l6ZT0oKT0+e3RoaXMub25SZXNpemUoKX0sdGhpcy5vcGVuRGlhbG9nKHRoaXMuaW5pdGlhbENvbG9yLCExKX1uZ09uRGVzdHJveSgpe3RoaXMuY2xvc2VEaWFsb2coKX1uZ0FmdGVyVmlld0luaXQoKXsyMzA9PT10aGlzLmNwV2lkdGgmJiJpbmxpbmUiIT09dGhpcy5jcERpYWxvZ0Rpc3BsYXl8fCh0aGlzLnNsaWRlckRpbU1heD1uZXcgZjModGhpcy5odWVTbGlkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aHx8MTQwLHRoaXMuY3BXaWR0aCwxMzAsdGhpcy5hbHBoYVNsaWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofHwxNDApLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoITEpLHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpKX1vcGVuRGlhbG9nKHQsZT0hMCl7dGhpcy5zZXJ2aWNlLnNldEFjdGl2ZSh0aGlzKSx0aGlzLndpZHRofHwodGhpcy5jcFdpZHRoPXRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSx0aGlzLmhlaWdodHx8KHRoaXMuaGVpZ2h0PTMyMCksdGhpcy5zZXRJbml0aWFsQ29sb3IodCksdGhpcy5zZXRDb2xvckZyb21TdHJpbmcodCxlKSx0aGlzLm9wZW5Db2xvclBpY2tlcigpfWNsb3NlRGlhbG9nKCl7dGhpcy5jbG9zZUNvbG9yUGlja2VyKCl9c2V0dXBEaWFsb2codCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSx1LGYsZyxoLGIseSxfLEMsTSx2LHgsTyxQLHcsayxTLEQsRSxSLEEsVCxOLHope3RoaXMuc2V0SW5pdGlhbENvbG9yKG4pLHRoaXMuc2V0Q29sb3JNb2RlKHMpLHRoaXMuaXNJRTEwPTEwPT09KGZ1bmN0aW9uIEkoKXtsZXQgdD0iIjsidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmKHQ9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTtjb25zdCBlPXQuaW5kZXhPZigibXNpZSAiKTtyZXR1cm4gZT4wJiZwYXJzZUludCh0LnN1YnN0cmluZyhlKzUsdC5pbmRleE9mKCIuIixlKSksMTApfSkoKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlPXQsdGhpcy5kaXJlY3RpdmVFbGVtZW50UmVmPWUsdGhpcy5jcERpc2FibGVJbnB1dD1wLHRoaXMuY3BDbXlrRW5hYmxlZD1sLHRoaXMuY3BBbHBoYUNoYW5uZWw9Yyx0aGlzLmNwT3V0cHV0Rm9ybWF0PWQsdGhpcy5jcERpYWxvZ0Rpc3BsYXk9YSx0aGlzLmNwSWdub3JlZEVsZW1lbnRzPW0sdGhpcy5jcFNhdmVDbGlja091dHNpZGU9dSx0aGlzLmNwQ2xvc2VDbGlja091dHNpZGU9Zix0aGlzLnVzZVJvb3RWaWV3Q29udGFpbmVyPWcsdGhpcy53aWR0aD10aGlzLmNwV2lkdGg9cGFyc2VJbnQobywxMCksdGhpcy5oZWlnaHQ9dGhpcy5jcEhlaWdodD1wYXJzZUludChpLDEwKSx0aGlzLmNwUG9zaXRpb249aCx0aGlzLmNwUG9zaXRpb25PZmZzZXQ9cGFyc2VJbnQoYiwxMCksdGhpcy5jcE9LQnV0dG9uPVAsdGhpcy5jcE9LQnV0dG9uVGV4dD1rLHRoaXMuY3BPS0J1dHRvbkNsYXNzPXcsdGhpcy5jcENhbmNlbEJ1dHRvbj1TLHRoaXMuY3BDYW5jZWxCdXR0b25UZXh0PUUsdGhpcy5jcENhbmNlbEJ1dHRvbkNsYXNzPUQsdGhpcy5mYWxsYmFja0NvbG9yPXJ8fCIjZmZmIix0aGlzLnNldFByZXNldENvbmZpZyhfLEMpLHRoaXMuY3BQcmVzZXRDb2xvcnNDbGFzcz1NLHRoaXMuY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGg9dix0aGlzLmNwUHJlc2V0RW1wdHlNZXNzYWdlPXgsdGhpcy5jcFByZXNldEVtcHR5TWVzc2FnZUNsYXNzPU8sdGhpcy5jcEFkZENvbG9yQnV0dG9uPVIsdGhpcy5jcEFkZENvbG9yQnV0dG9uVGV4dD1ULHRoaXMuY3BBZGRDb2xvckJ1dHRvbkNsYXNzPUEsdGhpcy5jcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3M9Tix0aGlzLmNwVHJpZ2dlckVsZW1lbnQ9eix5fHwodGhpcy5kaWFsb2dBcnJvd09mZnNldD0wKSwiaW5saW5lIj09PWEmJih0aGlzLmRpYWxvZ0Fycm93U2l6ZT0wLHRoaXMuZGlhbG9nQXJyb3dPZmZzZXQ9MCksImhleCI9PT1kJiYiYWx3YXlzIiE9PWMmJiJmb3JjZWQiIT09YyYmKHRoaXMuY3BBbHBoYUNoYW5uZWw9ImRpc2FibGVkIil9c2V0Q29sb3JNb2RlKHQpe3N3aXRjaCh0LnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKSl7Y2FzZSIxIjpjYXNlIkMiOmNhc2UiQ09MT1IiOnRoaXMuY3BDb2xvck1vZGU9MTticmVhaztjYXNlIjIiOmNhc2UiRyI6Y2FzZSJHUkFZU0NBTEUiOnRoaXMuY3BDb2xvck1vZGU9MjticmVhaztjYXNlIjMiOmNhc2UiUCI6Y2FzZSJQUkVTRVRTIjp0aGlzLmNwQ29sb3JNb2RlPTM7YnJlYWs7ZGVmYXVsdDp0aGlzLmNwQ29sb3JNb2RlPTF9fXNldEluaXRpYWxDb2xvcih0KXt0aGlzLmluaXRpYWxDb2xvcj10fXNldFByZXNldENvbmZpZyh0LGUpe3RoaXMuY3BQcmVzZXRMYWJlbD10LHRoaXMuY3BQcmVzZXRDb2xvcnM9ZX1zZXRDb2xvckZyb21TdHJpbmcodCxlPSEwLG49ITApe2xldCBvOyJhbHdheXMiPT09dGhpcy5jcEFscGhhQ2hhbm5lbHx8ImZvcmNlZCI9PT10aGlzLmNwQWxwaGFDaGFubmVsPyhvPXRoaXMuc2VydmljZS5zdHJpbmdUb0hzdmEodCwhMCksb3x8dGhpcy5oc3ZhfHwobz10aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHQsITEpKSk6bz10aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHQsITEpLG98fHRoaXMuaHN2YXx8KG89dGhpcy5zZXJ2aWNlLnN0cmluZ1RvSHN2YSh0aGlzLmZhbGxiYWNrQ29sb3IsITEpKSxvJiYodGhpcy5oc3ZhPW8sdGhpcy5zbGlkZXJIPXRoaXMuaHN2YS5oLCJoZXgiPT09dGhpcy5jcE91dHB1dEZvcm1hdCYmImRpc2FibGVkIj09PXRoaXMuY3BBbHBoYUNoYW5uZWwmJih0aGlzLmhzdmEuYT0xKSx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKGUsbikpfW9uUmVzaXplKCl7ImZpeGVkIj09PXRoaXMucG9zaXRpb24/dGhpcy5zZXREaWFsb2dQb3NpdGlvbigpOiJpbmxpbmUiIT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuY2xvc2VDb2xvclBpY2tlcigpfW9uRHJhZ0VuZCh0KXt0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckRyYWdFbmQoe3NsaWRlcjp0LGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkRyYWdTdGFydCh0KXt0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckRyYWdTdGFydCh7c2xpZGVyOnQsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uTW91c2VEb3duKHQpeyF0aGlzLnNob3d8fHRoaXMuaXNJRTEwfHwicG9wdXAiIT09dGhpcy5jcERpYWxvZ0Rpc3BsYXl8fHQudGFyZ2V0PT09dGhpcy5kaXJlY3RpdmVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR8fHRoaXMuaXNEZXNjZW5kYW50KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCx0LnRhcmdldCl8fHRoaXMuaXNEZXNjZW5kYW50KHRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LHQudGFyZ2V0KXx8MCE9PXRoaXMuY3BJZ25vcmVkRWxlbWVudHMuZmlsdGVyKChlPT5lPT09dC50YXJnZXQpKS5sZW5ndGh8fCh0aGlzLmNwU2F2ZUNsaWNrT3V0c2lkZT90aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yU2VsZWN0ZWQodGhpcy5vdXRwdXRDb2xvcik6KHRoaXMuaHN2YT1udWxsLHRoaXMuc2V0Q29sb3JGcm9tU3RyaW5nKHRoaXMuaW5pdGlhbENvbG9yLCExKSx0aGlzLmNwQ215a0VuYWJsZWQmJnRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY215a0NoYW5nZWQodGhpcy5jbXlrQ29sb3IpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY29sb3JDaGFuZ2VkKHRoaXMuaW5pdGlhbENvbG9yKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2FuY2VsZWQoKSksdGhpcy5jcENsb3NlQ2xpY2tPdXRzaWRlJiZ0aGlzLmNsb3NlQ29sb3JQaWNrZXIoKSl9b25BY2NlcHRDb2xvcih0KXt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3V0cHV0Q29sb3ImJnRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY29sb3JTZWxlY3RlZCh0aGlzLm91dHB1dENvbG9yKSwicG9wdXAiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuY2xvc2VDb2xvclBpY2tlcigpfW9uQ2FuY2VsQ29sb3IodCl7dGhpcy5oc3ZhPW51bGwsdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2FuY2VsZWQoKSx0aGlzLnNldENvbG9yRnJvbVN0cmluZyh0aGlzLmluaXRpYWxDb2xvciwhMCksInBvcHVwIj09PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiYodGhpcy5jcENteWtFbmFibGVkJiZ0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNteWtDaGFuZ2VkKHRoaXMuY215a0NvbG9yKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2hhbmdlZCh0aGlzLmluaXRpYWxDb2xvciwhMCksdGhpcy5jbG9zZUNvbG9yUGlja2VyKCkpfW9uRm9ybWF0VG9nZ2xlKHQpe2NvbnN0IGU9dGhpcy5kaWFsb2dJbnB1dEZpZWxkcy5sZW5ndGgtKHRoaXMuY3BDbXlrRW5hYmxlZD8wOjEpLG49KCh0aGlzLmRpYWxvZ0lucHV0RmllbGRzLmluZGV4T2YodGhpcy5mb3JtYXQpK3QpJWUrZSklZTt0aGlzLmZvcm1hdD10aGlzLmRpYWxvZ0lucHV0RmllbGRzW25dfW9uQ29sb3JDaGFuZ2UodCl7dGhpcy5oc3ZhLnM9dC5zL3QucmdYLHRoaXMuaHN2YS52PXQudi90LnJnWSx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5zbGlkZXJDaGFuZ2VkKHtzbGlkZXI6ImxpZ2h0bmVzcyIsdmFsdWU6dGhpcy5oc3ZhLnYsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc2xpZGVyQ2hhbmdlZCh7c2xpZGVyOiJzYXR1cmF0aW9uIix2YWx1ZTp0aGlzLmhzdmEucyxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25IdWVDaGFuZ2UodCl7dGhpcy5oc3ZhLmg9dC52L3QucmdYLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5zbGlkZXJDaGFuZ2VkKHtzbGlkZXI6Imh1ZSIsdmFsdWU6dGhpcy5oc3ZhLmgsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uVmFsdWVDaGFuZ2UodCl7dGhpcy5oc3ZhLnY9dC52L3QucmdYLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckNoYW5nZWQoe3NsaWRlcjoidmFsdWUiLHZhbHVlOnRoaXMuaHN2YS52LGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkFscGhhQ2hhbmdlKHQpe3RoaXMuaHN2YS5hPXQudi90LnJnWCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5zbGlkZXJDaGFuZ2VkKHtzbGlkZXI6ImFscGhhIix2YWx1ZTp0aGlzLmhzdmEuYSxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25IZXhJbnB1dCh0KXtpZihudWxsPT09dCl0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCk7ZWxzZXt0JiYiIyIhPT10WzBdJiYodD0iIyIrdCk7bGV0IGU9L14jKFthLWYwLTldezN9fFthLWYwLTldezZ9KSQvZ2k7ImFsd2F5cyI9PT10aGlzLmNwQWxwaGFDaGFubmVsJiYoZT0vXiMoW2EtZjAtOV17M318W2EtZjAtOV17Nn18W2EtZjAtOV17OH0pJC9naSk7Y29uc3Qgbj1lLnRlc3QodCk7biYmKHQubGVuZ3RoPDUmJih0PSIjIit0LnN1YnN0cmluZygxKS5zcGxpdCgiIikubWFwKCh0PT50K3QpKS5qb2luKCIiKSksImZvcmNlZCI9PT10aGlzLmNwQWxwaGFDaGFubmVsJiYodCs9TWF0aC5yb3VuZCgyNTUqdGhpcy5oc3ZhLmEpLnRvU3RyaW5nKDE2KSksdGhpcy5zZXRDb2xvckZyb21TdHJpbmcodCwhMCwhMSkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoiaGV4Iix2YWxpZDpuLHZhbHVlOnQsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfX1vblJlZElucHV0KHQpe2NvbnN0IGU9dGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKSxuPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztuJiYoZS5yPXQudi90LnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UucmdiYVRvSHN2YShlKSx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6InJlZCIsdmFsaWQ6bix2YWx1ZTplLnIsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQmx1ZUlucHV0KHQpe2NvbnN0IGU9dGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKSxuPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztuJiYoZS5iPXQudi90LnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UucmdiYVRvSHN2YShlKSx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImJsdWUiLHZhbGlkOm4sdmFsdWU6ZS5iLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkdyZWVuSW5wdXQodCl7Y29uc3QgZT10aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpLG49IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO24mJihlLmc9dC52L3QucmcsdGhpcy5oc3ZhPXRoaXMuc2VydmljZS5yZ2JhVG9Ic3ZhKGUpLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoiZ3JlZW4iLHZhbGlkOm4sdmFsdWU6ZS5nLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkh1ZUlucHV0KHQpe2NvbnN0IGU9IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO2UmJih0aGlzLmhzdmEuaD10LnYvdC5yZyx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6Imh1ZSIsdmFsaWQ6ZSx2YWx1ZTp0aGlzLmhzdmEuaCxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25WYWx1ZUlucHV0KHQpe2NvbnN0IGU9IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO2UmJih0aGlzLmhzdmEudj10LnYvdC5yZyx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoidmFsdWUiLHZhbGlkOmUsdmFsdWU6dGhpcy5oc3ZhLnYsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQWxwaGFJbnB1dCh0KXtjb25zdCBlPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztlJiYodGhpcy5oc3ZhLmE9dC52L3QucmcsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImFscGhhIix2YWxpZDplLHZhbHVlOnRoaXMuaHN2YS5hLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkxpZ2h0bmVzc0lucHV0KHQpe2NvbnN0IGU9dGhpcy5zZXJ2aWNlLmhzdmEyaHNsYSh0aGlzLmhzdmEpLG49IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO24mJihlLmw9dC52L3QucmcsdGhpcy5oc3ZhPXRoaXMuc2VydmljZS5oc2xhMmhzdmEoZSksdGhpcy5zbGlkZXJIPXRoaXMuaHN2YS5oLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJsaWdodG5lc3MiLHZhbGlkOm4sdmFsdWU6ZS5sLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vblNhdHVyYXRpb25JbnB1dCh0KXtjb25zdCBlPXRoaXMuc2VydmljZS5oc3ZhMmhzbGEodGhpcy5oc3ZhKSxuPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztuJiYoZS5zPXQudi90LnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UuaHNsYTJoc3ZhKGUpLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoic2F0dXJhdGlvbiIsdmFsaWQ6bix2YWx1ZTplLnMsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQ3lhbklucHV0KHQpeyFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZyYmKHRoaXMuY215ay5jPXQudix0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCExLCEwLCEwKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJjeWFuIix2YWxpZDohMCx2YWx1ZTp0aGlzLmNteWsuYyxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25NYWdlbnRhSW5wdXQodCl7IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnJiYodGhpcy5jbXlrLm09dC52LHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoITEsITAsITApKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6Im1hZ2VudGEiLHZhbGlkOiEwLHZhbHVlOnRoaXMuY215ay5tLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vblllbGxvd0lucHV0KHQpeyFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZyYmKHRoaXMuY215ay55PXQudix0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCExLCEwLCEwKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJ5ZWxsb3ciLHZhbGlkOiEwLHZhbHVlOnRoaXMuY215ay55LGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkJsYWNrSW5wdXQodCl7IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnJiYodGhpcy5jbXlrLms9dC52LHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoITEsITAsITApKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImJsYWNrIix2YWxpZDohMCx2YWx1ZTp0aGlzLmNteWsuayxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25BZGRQcmVzZXRDb2xvcih0LGUpe3Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jcFByZXNldENvbG9ycy5maWx0ZXIoKHQ9PnQ9PT1lKSkubGVuZ3RofHwodGhpcy5jcFByZXNldENvbG9ycz10aGlzLmNwUHJlc2V0Q29sb3JzLmNvbmNhdChlKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnByZXNldENvbG9yc0NoYW5nZWQodGhpcy5jcFByZXNldENvbG9ycykpfW9uUmVtb3ZlUHJlc2V0Q29sb3IodCxlKXt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY3BQcmVzZXRDb2xvcnM9dGhpcy5jcFByZXNldENvbG9ycy5maWx0ZXIoKHQ9PnQhPT1lKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5wcmVzZXRDb2xvcnNDaGFuZ2VkKHRoaXMuY3BQcmVzZXRDb2xvcnMpfW9wZW5Db2xvclBpY2tlcigpe3RoaXMuc2hvd3x8KHRoaXMuc2hvdz0hMCx0aGlzLmhpZGRlbj0hMCxzZXRUaW1lb3V0KCgoKT0+e3RoaXMuaGlkZGVuPSExLHRoaXMuc2V0RGlhbG9nUG9zaXRpb24oKSx0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKX0pLDApLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc3RhdGVDaGFuZ2VkKCEwKSx0aGlzLmlzSUUxMHx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5saXN0ZW5lck1vdXNlRG93biksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5saXN0ZW5lck1vdXNlRG93bikpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMubGlzdGVuZXJSZXNpemUpKX1jbG9zZUNvbG9yUGlja2VyKCl7dGhpcy5zaG93JiYodGhpcy5zaG93PSExLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc3RhdGVDaGFuZ2VkKCExKSx0aGlzLmlzSUUxMHx8KGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5saXN0ZW5lck1vdXNlRG93biksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5saXN0ZW5lck1vdXNlRG93bikpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMubGlzdGVuZXJSZXNpemUpLHRoaXMuY2RSZWYuZGVzdHJveWVkfHx0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKSl9dXBkYXRlQ29sb3JQaWNrZXIodD0hMCxlPSEwLG49ITEpe2lmKHRoaXMuc2xpZGVyRGltTWF4KXtsZXQgbyxpLGE7Mj09PXRoaXMuY3BDb2xvck1vZGUmJih0aGlzLmhzdmEucz0wKTtjb25zdCByPXRoaXMub3V0cHV0Q29sb3I7aWYoaT10aGlzLnNlcnZpY2UuaHN2YTJoc2xhKHRoaXMuaHN2YSksdGhpcy5jcENteWtFbmFibGVkPyhuPyhhPXRoaXMuc2VydmljZS5jbXlrVG9SZ2IodGhpcy5zZXJ2aWNlLm5vcm1hbGl6ZUNNWUsodGhpcy5jbXlrKSksdGhpcy5oc3ZhPXRoaXMuc2VydmljZS5yZ2JhVG9Ic3ZhKGEpKTooYT10aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpLHRoaXMuY215az10aGlzLnNlcnZpY2UuZGVub3JtYWxpemVDTVlLKHRoaXMuc2VydmljZS5yZ2JhVG9DbXlrKGEpKSksYT10aGlzLnNlcnZpY2UuZGVub3JtYWxpemVSR0JBKGEpLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCk6YT10aGlzLnNlcnZpY2UuZGVub3JtYWxpemVSR0JBKHRoaXMuc2VydmljZS5oc3ZhVG9SZ2JhKHRoaXMuaHN2YSkpLG89dGhpcy5zZXJ2aWNlLmRlbm9ybWFsaXplUkdCQSh0aGlzLnNlcnZpY2UuaHN2YVRvUmdiYShuZXcgbDModGhpcy5zbGlkZXJIfHx0aGlzLmhzdmEuaCwxLDEsMSkpKSxlJiYodGhpcy5oc2xhVGV4dD1uZXcgYzMoTWF0aC5yb3VuZCgzNjAqaS5oKSxNYXRoLnJvdW5kKDEwMCppLnMpLE1hdGgucm91bmQoMTAwKmkubCksTWF0aC5yb3VuZCgxMDAqaS5hKS8xMDApLHRoaXMucmdiYVRleHQ9bmV3IHMzKGEucixhLmcsYS5iLE1hdGgucm91bmQoMTAwKmEuYSkvMTAwKSx0aGlzLmNwQ215a0VuYWJsZWQmJih0aGlzLmNteWtUZXh0PW5ldyBkMyh0aGlzLmNteWsuYyx0aGlzLmNteWsubSx0aGlzLmNteWsueSx0aGlzLmNteWsuayxNYXRoLnJvdW5kKDEwMCp0aGlzLmNteWsuYSkvMTAwKSksdGhpcy5oZXhUZXh0PXRoaXMuc2VydmljZS5yZ2JhVG9IZXgoYSwiYWx3YXlzIj09PXRoaXMuY3BBbHBoYUNoYW5uZWwpLHRoaXMuaGV4QWxwaGE9dGhpcy5yZ2JhVGV4dC5hKSwiYXV0byI9PT10aGlzLmNwT3V0cHV0Rm9ybWF0JiZ0aGlzLmZvcm1hdCE9PXIzLlJHQkEmJnRoaXMuZm9ybWF0IT09cjMuQ01ZSyYmdGhpcy5oc3ZhLmE8MSYmKHRoaXMuZm9ybWF0PXRoaXMuaHN2YS5hPDE/cjMuUkdCQTpyMy5IRVgpLHRoaXMuaHVlU2xpZGVyQ29sb3I9InJnYigiK28ucisiLCIrby5nKyIsIitvLmIrIikiLHRoaXMuYWxwaGFTbGlkZXJDb2xvcj0icmdiKCIrYS5yKyIsIithLmcrIiwiK2EuYisiKSIsdGhpcy5vdXRwdXRDb2xvcj10aGlzLnNlcnZpY2Uub3V0cHV0Rm9ybWF0KHRoaXMuaHN2YSx0aGlzLmNwT3V0cHV0Rm9ybWF0LHRoaXMuY3BBbHBoYUNoYW5uZWwpLHRoaXMuc2VsZWN0ZWRDb2xvcj10aGlzLnNlcnZpY2Uub3V0cHV0Rm9ybWF0KHRoaXMuaHN2YSwicmdiYSIsbnVsbCksdGhpcy5mb3JtYXQhPT1yMy5DTVlLKXRoaXMuY215a0NvbG9yPSIiO2Vsc2UgaWYoImFsd2F5cyI9PT10aGlzLmNwQWxwaGFDaGFubmVsfHwiZW5hYmxlZCI9PT10aGlzLmNwQWxwaGFDaGFubmVsfHwiZm9yY2VkIj09PXRoaXMuY3BBbHBoYUNoYW5uZWwpe2NvbnN0IHQ9TWF0aC5yb3VuZCgxMDAqdGhpcy5jbXlrLmEpLzEwMDt0aGlzLmNteWtDb2xvcj1gY215a2EoJHt0aGlzLmNteWsuY30sJHt0aGlzLmNteWsubX0sJHt0aGlzLmNteWsueX0sJHt0aGlzLmNteWsua30sJHt0fSlgfWVsc2UgdGhpcy5jbXlrQ29sb3I9YGNteWsoJHt0aGlzLmNteWsuY30sJHt0aGlzLmNteWsubX0sJHt0aGlzLmNteWsueX0sJHt0aGlzLmNteWsua30pYDt0aGlzLnNsaWRlcj1uZXcgdTMoKHRoaXMuc2xpZGVySHx8dGhpcy5oc3ZhLmgpKnRoaXMuc2xpZGVyRGltTWF4LmgtOCx0aGlzLmhzdmEucyp0aGlzLnNsaWRlckRpbU1heC5zLTgsKDEtdGhpcy5oc3ZhLnYpKnRoaXMuc2xpZGVyRGltTWF4LnYtOCx0aGlzLmhzdmEuYSp0aGlzLnNsaWRlckRpbU1heC5hLTgpLHQmJnIhPT10aGlzLm91dHB1dENvbG9yJiYodGhpcy5jcENteWtFbmFibGVkJiZ0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNteWtDaGFuZ2VkKHRoaXMuY215a0NvbG9yKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2hhbmdlZCh0aGlzLm91dHB1dENvbG9yKSl9fXNldERpYWxvZ1Bvc2l0aW9uKCl7aWYoImlubGluZSI9PT10aGlzLmNwRGlhbG9nRGlzcGxheSl0aGlzLnBvc2l0aW9uPSJyZWxhdGl2ZSI7ZWxzZXtsZXQgdCxlPSJzdGF0aWMiLG49IiIsbz1udWxsLGk9bnVsbCxhPXRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7Y29uc3Qgcj10aGlzLmRpYWxvZ0VsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7Zm9yKDtudWxsIT09YSYmIkhUTUwiIT09YS50YWdOYW1lOyl7aWYodD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhKSxlPXQuZ2V0UHJvcGVydHlWYWx1ZSgicG9zaXRpb24iKSxuPXQuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIiksInN0YXRpYyIhPT1lJiZudWxsPT09byYmKG89YSksbiYmIm5vbmUiIT09biYmbnVsbD09PWkmJihpPWEpLCJmaXhlZCI9PT1lKXtvPWk7YnJlYWt9YT1hLnBhcmVudE5vZGV9Y29uc3Qgcz10aGlzLmNyZWF0ZURpYWxvZ0JveCh0aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwiZml4ZWQiIT09ZSk7aWYodGhpcy51c2VSb290Vmlld0NvbnRhaW5lcnx8ImZpeGVkIj09PWUmJighb3x8byBpbnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudCkpdGhpcy50b3A9cy50b3AsdGhpcy5sZWZ0PXMubGVmdDtlbHNle251bGw9PT1vJiYobz1hKTtjb25zdCB0PXRoaXMuY3JlYXRlRGlhbG9nQm94KG8sImZpeGVkIiE9PWUpO3RoaXMudG9wPXMudG9wLXQudG9wLHRoaXMubGVmdD1zLmxlZnQtdC5sZWZ0fSJmaXhlZCI9PT1lJiYodGhpcy5wb3NpdGlvbj0iZml4ZWQiKTtsZXQgbD10aGlzLmNwUG9zaXRpb247ImF1dG8iPT09dGhpcy5jcFBvc2l0aW9uJiYobD0oZnVuY3Rpb24gYyh0LGUpe2xldCBuPSJyaWdodCIsbz0iYm90dG9tIjtjb25zdHtoZWlnaHQ6aSx3aWR0aDphfT10LHt0b3A6cixsZWZ0OnN9PWUsbD1yK2UuaGVpZ2h0LGM9cytlLndpZHRoLGQ9ci1pPDAscD1sK2k+KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCksbT1zLWE8MCx1PWMrYT4od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCk7cmV0dXJuIHAmJihvPSJ0b3AiKSxkJiYobz0iYm90dG9tIiksbSYmKG49InJpZ2h0IiksdSYmKG49ImxlZnQiKSxkJiZwJiZtJiZ1P1sibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIl0ucmVkdWNlKCgoZSxuKT0+dFtlXT50W25dP2U6bikpOm0mJnU/ZD8iYm90dG9tIjpwfHxyPmw/InRvcCI6ImJvdHRvbSI6ZCYmcD9tPyJyaWdodCI6dXx8cz5jPyJsZWZ0IjoicmlnaHQiOmAke299LSR7bn1gfSkodGhpcy5kaWFsb2dFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5jcFRyaWdnZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpKSwidG9wIj09PWw/KHRoaXMuYXJyb3dUb3A9ci0xLHRoaXMudG9wLT1yK3RoaXMuZGlhbG9nQXJyb3dTaXplLHRoaXMubGVmdCs9dGhpcy5jcFBvc2l0aW9uT2Zmc2V0LzEwMCpzLndpZHRoLXRoaXMuZGlhbG9nQXJyb3dPZmZzZXQpOiJib3R0b20iPT09bD8odGhpcy50b3ArPXMuaGVpZ2h0K3RoaXMuZGlhbG9nQXJyb3dTaXplLHRoaXMubGVmdCs9dGhpcy5jcFBvc2l0aW9uT2Zmc2V0LzEwMCpzLndpZHRoLXRoaXMuZGlhbG9nQXJyb3dPZmZzZXQpOiJ0b3AtbGVmdCI9PT1sfHwibGVmdC10b3AiPT09bD8odGhpcy50b3AtPXItcy5oZWlnaHQrcy5oZWlnaHQqdGhpcy5jcFBvc2l0aW9uT2Zmc2V0LzEwMCx0aGlzLmxlZnQtPXRoaXMuY3BXaWR0aCt0aGlzLmRpYWxvZ0Fycm93U2l6ZS0yLXRoaXMuZGlhbG9nQXJyb3dPZmZzZXQpOiJ0b3AtcmlnaHQiPT09bHx8InJpZ2h0LXRvcCI9PT1sPyh0aGlzLnRvcC09ci1zLmhlaWdodCtzLmhlaWdodCp0aGlzLmNwUG9zaXRpb25PZmZzZXQvMTAwLHRoaXMubGVmdCs9cy53aWR0aCt0aGlzLmRpYWxvZ0Fycm93U2l6ZS0yLXRoaXMuZGlhbG9nQXJyb3dPZmZzZXQpOiJsZWZ0Ij09PWx8fCJib3R0b20tbGVmdCI9PT1sfHwibGVmdC1ib3R0b20iPT09bD8odGhpcy50b3ArPXMuaGVpZ2h0KnRoaXMuY3BQb3NpdGlvbk9mZnNldC8xMDAtdGhpcy5kaWFsb2dBcnJvd09mZnNldCx0aGlzLmxlZnQtPXRoaXMuY3BXaWR0aCt0aGlzLmRpYWxvZ0Fycm93U2l6ZS0yKToodGhpcy50b3ArPXMuaGVpZ2h0KnRoaXMuY3BQb3NpdGlvbk9mZnNldC8xMDAtdGhpcy5kaWFsb2dBcnJvd09mZnNldCx0aGlzLmxlZnQrPXMud2lkdGgrdGhpcy5kaWFsb2dBcnJvd1NpemUtMiksdGhpcy5jcFVzZVBvc2l0aW9uPWx9fWlzRGVzY2VuZGFudCh0LGUpe2xldCBuPWUucGFyZW50Tm9kZTtmb3IoO251bGwhPT1uOyl7aWYobj09PXQpcmV0dXJuITA7bj1uLnBhcmVudE5vZGV9cmV0dXJuITF9Y3JlYXRlRGlhbG9nQm94KHQsZSl7cmV0dXJue3RvcDp0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCsoZT93aW5kb3cucGFnZVlPZmZzZXQ6MCksbGVmdDp0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQrKGU/d2luZG93LnBhZ2VYT2Zmc2V0OjApLHdpZHRoOnQub2Zmc2V0V2lkdGgsaGVpZ2h0OnQub2Zmc2V0SGVpZ2h0fX19aDMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGgzKShTbShoZyksU20oVWcpLFNtKGczKSl9LGgzLsm1Y21wPXRvKHt0eXBlOmgzLHNlbGVjdG9yczpbWyJjb2xvci1waWNrZXIiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChFMSw3KSxRaChSMSw3KSxRaChBMSw3KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5kaWFsb2dFbGVtZW50PXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLmh1ZVNsaWRlcj10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5hbHBoYVNsaWRlcj10LmZpcnN0KX19LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgia2V5dXAuZXNjIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVFc2MoZSl9KSwhMSxpbCkoImtleXVwLmVudGVyIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVFbnRlcihlKX0pLCExLGlsKX0sZGVjbHM6MjgsdmFyczo0Nyxjb25zdHM6W1sxLCJjb2xvci1waWNrZXIiLDMsImNsaWNrIl0sWyJkaWFsb2dQb3B1cCIsIiJdLFszLCJjbGFzcyIsInRvcCIsNCwibmdJZiJdLFsiY2xhc3MiLCJzYXR1cmF0aW9uLWxpZ2h0bmVzcyIsMywic2xpZGVyIiwicmdYIiwicmdZIiwiYmFja2dyb3VuZC1jb2xvciIsIm5ld1ZhbHVlIiwiZHJhZ1N0YXJ0IiwiZHJhZ0VuZCIsNCwibmdJZiJdLFsxLCJodWUtYWxwaGEiLCJib3giXSxbMSwibGVmdCJdLFsxLCJzZWxlY3RlZC1jb2xvci1iYWNrZ3JvdW5kIl0sWzEsInNlbGVjdGVkLWNvbG9yIl0sWyJ0eXBlIiwiYnV0dG9uIiwzLCJjbGFzcyIsImRpc2FibGVkIiwiY2xpY2siLDQsIm5nSWYiXSxbMSwicmlnaHQiXSxbInN0eWxlIiwiaGVpZ2h0OiAxNnB4OyIsNCwibmdJZiJdLFsxLCJodWUiLDMsInNsaWRlciIsInJnWCIsIm5ld1ZhbHVlIiwiZHJhZ1N0YXJ0IiwiZHJhZ0VuZCJdLFsiaHVlU2xpZGVyIiwiIl0sWzEsImN1cnNvciJdLFsxLCJ2YWx1ZSIsMywic2xpZGVyIiwicmdYIiwibmV3VmFsdWUiLCJkcmFnU3RhcnQiLCJkcmFnRW5kIl0sWyJ2YWx1ZVNsaWRlciIsIiJdLFsxLCJhbHBoYSIsMywic2xpZGVyIiwicmdYIiwibmV3VmFsdWUiLCJkcmFnU3RhcnQiLCJkcmFnRW5kIl0sWyJhbHBoYVNsaWRlciIsIiJdLFsiY2xhc3MiLCJjbXlrLXRleHQiLDMsImRpc3BsYXkiLDQsIm5nSWYiXSxbImNsYXNzIiwiaHNsYS10ZXh0IiwzLCJkaXNwbGF5Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsInJnYmEtdGV4dCIsMywiZGlzcGxheSIsNCwibmdJZiJdLFsiY2xhc3MiLCJoZXgtdGV4dCIsMywiaGV4LWFscGhhIiwiZGlzcGxheSIsNCwibmdJZiJdLFsiY2xhc3MiLCJ2YWx1ZS10ZXh0Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsInR5cGUtcG9saWN5Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsInByZXNldC1hcmVhIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImJ1dHRvbi1hcmVhIiw0LCJuZ0lmIl0sWzEsInNhdHVyYXRpb24tbGlnaHRuZXNzIiwzLCJzbGlkZXIiLCJyZ1giLCJyZ1kiLCJuZXdWYWx1ZSIsImRyYWdTdGFydCIsImRyYWdFbmQiXSxbInR5cGUiLCJidXR0b24iLDMsImRpc2FibGVkIiwiY2xpY2siXSxbMiwiaGVpZ2h0IiwiMTZweCJdLFsxLCJjbXlrLXRleHQiXSxbMSwiYm94Il0sWyJ0eXBlIiwibnVtYmVyIiwicGF0dGVybiIsIlswLTldKiIsIm1pbiIsIjAiLCJtYXgiLCIxMDAiLDMsInRleHQiLCJyZyIsInZhbHVlIiwia2V5dXAuZW50ZXIiLCJuZXdWYWx1ZSJdLFsidHlwZSIsIm51bWJlciIsInBhdHRlcm4iLCJbMC05XSsoW1xcLixdWzAtOV17MSwyfSk/IiwibWluIiwiMCIsIm1heCIsIjEiLCJzdGVwIiwiMC4xIiwzLCJ0ZXh0IiwicmciLCJ2YWx1ZSIsImtleXVwLmVudGVyIiwibmV3VmFsdWUiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsidHlwZSIsIm51bWJlciIsInBhdHRlcm4iLCJbMC05XSsoW1xcLixdWzAtOV17MSwyfSk/IiwibWluIiwiMCIsIm1heCIsIjEiLCJzdGVwIiwiMC4xIiwzLCJ0ZXh0IiwicmciLCJ2YWx1ZSIsImtleXVwLmVudGVyIiwibmV3VmFsdWUiXSxbMSwiaHNsYS10ZXh0Il0sWyJ0eXBlIiwibnVtYmVyIiwicGF0dGVybiIsIlswLTldKiIsIm1pbiIsIjAiLCJtYXgiLCIzNjAiLDMsInRleHQiLCJyZyIsInZhbHVlIiwia2V5dXAuZW50ZXIiLCJuZXdWYWx1ZSJdLFsxLCJyZ2JhLXRleHQiXSxbInR5cGUiLCJudW1iZXIiLCJwYXR0ZXJuIiwiWzAtOV0qIiwibWluIiwiMCIsIm1heCIsIjI1NSIsMywidGV4dCIsInJnIiwidmFsdWUiLCJrZXl1cC5lbnRlciIsIm5ld1ZhbHVlIl0sWzEsImhleC10ZXh0Il0sWzMsInRleHQiLCJ2YWx1ZSIsImJsdXIiLCJrZXl1cC5lbnRlciIsIm5ld1ZhbHVlIl0sWzEsInZhbHVlLXRleHQiXSxbMSwidHlwZS1wb2xpY3kiXSxbMSwidHlwZS1wb2xpY3ktYXJyb3ciLDMsImNsaWNrIl0sWzEsInByZXNldC1hcmVhIl0sWzEsInByZXNldC1sYWJlbCJdLFszLCJjbGFzcyIsNCwibmdJZiJdLFsiY2xhc3MiLCJwcmVzZXQtY29sb3IiLDMsImJhY2tncm91bmRDb2xvciIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwicHJlc2V0LWNvbG9yIiwzLCJjbGljayJdLFszLCJjbGFzcyIsImNsaWNrIiw0LCJuZ0lmIl0sWzMsImNsaWNrIl0sWzEsImJ1dHRvbi1hcmVhIl0sWyJ0eXBlIiwiYnV0dG9uIiwzLCJjbGFzcyIsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwLDEpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCl9KSksUXAoMixUMSwxLDUsImRpdiIsMiksUXAoMyxOMSwyLDgsImRpdiIsMyksUm0oNCwiZGl2Iiw0KSxSbSg1LCJkaXYiLDUpLFRtKDYsImRpdiIsNiksVG0oNywiZGl2Iiw3KSxRcCg4LHoxLDIsNSwiYnV0dG9uIiw4KSxBbSgpLFJtKDksImRpdiIsOSksUXAoMTAsSTEsMSwwLCJkaXYiLDEwKSxSbSgxMSwiZGl2IiwxMSwxMiksVm0oIm5ld1ZhbHVlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkh1ZUNoYW5nZShlKX0pKSgiZHJhZ1N0YXJ0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRHJhZ1N0YXJ0KCJodWUiKX0pKSgiZHJhZ0VuZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkRyYWdFbmQoImh1ZSIpfSkpLFRtKDEzLCJkaXYiLDEzKSxBbSgpLFJtKDE0LCJkaXYiLDE0LDE1KSxWbSgibmV3VmFsdWUiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uVmFsdWVDaGFuZ2UoZSl9KSkoImRyYWdTdGFydCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkRyYWdTdGFydCgidmFsdWUiKX0pKSgiZHJhZ0VuZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkRyYWdFbmQoInZhbHVlIil9KSksVG0oMTYsImRpdiIsMTMpLEFtKCksUm0oMTcsImRpdiIsMTYsMTcpLFZtKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25BbHBoYUNoYW5nZShlKX0pKSgiZHJhZ1N0YXJ0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRHJhZ1N0YXJ0KCJhbHBoYSIpfSkpKCJkcmFnRW5kIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRHJhZ0VuZCgiYWxwaGEiKX0pKSxUbSgxOSwiZGl2IiwxMyksQW0oKSxBbSgpLEFtKCksUXAoMjAsTDEsMTcsMTIsImRpdiIsMTgpLFFwKDIxLGoxLDE0LDEwLCJkaXYiLDE5KSxRcCgyMixXMSwxNCwxMCwiZGl2IiwyMCksUXAoMjMsWjEsOCw3LCJkaXYiLDIxKSxRcCgyNCxLMSw5LDMsImRpdiIsMjIpLFFwKDI1LEoxLDMsMCwiZGl2IiwyMyksUXAoMjYsbjMsNiwzLCJkaXYiLDI0KSxRcCgyNyxhMywzLDIsImRpdiIsMjUpLEFtKCkpLDImZSYmKGR1KCJkaXNwbGF5IixuLnNob3c/ImJsb2NrIjoibm9uZSIpKCJ2aXNpYmlsaXR5IixuLmhpZGRlbj8iaGlkZGVuIjoidmlzaWJsZSIpKCJ0b3AiLG4udG9wLCJweCIpKCJsZWZ0IixuLmxlZnQsInB4IikoInBvc2l0aW9uIixuLnBvc2l0aW9uKSgiaGVpZ2h0IixuLmNwSGVpZ2h0LCJweCIpKCJ3aWR0aCIsbi5jcFdpZHRoLCJweCIpLHB1KCJvcGVuIixuLnNob3cpLHJjKDIpLERtKCJuZ0lmIiwicG9wdXAiPT1uLmNwRGlhbG9nRGlzcGxheSkscmMoMSksRG0oIm5nSWYiLDE9PT0obi5jcENvbG9yTW9kZXx8MSkpLHJjKDQpLGR1KCJiYWNrZ3JvdW5kLWNvbG9yIixuLnNlbGVjdGVkQ29sb3IpLHJjKDEpLERtKCJuZ0lmIixuLmNwQWRkQ29sb3JCdXR0b24pLHJjKDIpLERtKCJuZ0lmIiwiZGlzYWJsZWQiPT09bi5jcEFscGhhQ2hhbm5lbCkscmMoMSksZHUoImRpc3BsYXkiLDE9PT0obi5jcENvbG9yTW9kZXx8MSk/ImJsb2NrIjoibm9uZSIpLERtKCJyZ1giLDEpLHJjKDIpLGR1KCJsZWZ0IixudWxsPT1uLnNsaWRlcj9udWxsOm4uc2xpZGVyLmgsInB4IikscmMoMSksZHUoImRpc3BsYXkiLDI9PT0obi5jcENvbG9yTW9kZXx8MSk/ImJsb2NrIjoibm9uZSIpLERtKCJyZ1giLDEpLHJjKDIpLGR1KCJyaWdodCIsbnVsbD09bi5zbGlkZXI/bnVsbDpuLnNsaWRlci52LCJweCIpLHJjKDEpLGR1KCJkaXNwbGF5IiwiZGlzYWJsZWQiPT09bi5jcEFscGhhQ2hhbm5lbD8ibm9uZSI6ImJsb2NrIikoImJhY2tncm91bmQtY29sb3IiLG4uYWxwaGFTbGlkZXJDb2xvciksRG0oInJnWCIsMSkscmMoMiksZHUoImxlZnQiLG51bGw9PW4uc2xpZGVyP251bGw6bi5zbGlkZXIuYSwicHgiKSxyYygxKSxEbSgibmdJZiIsIW4uY3BEaXNhYmxlSW5wdXQmJjE9PT0obi5jcENvbG9yTW9kZXx8MSkpLHJjKDEpLERtKCJuZ0lmIiwhbi5jcERpc2FibGVJbnB1dCYmMT09PShuLmNwQ29sb3JNb2RlfHwxKSkscmMoMSksRG0oIm5nSWYiLCFuLmNwRGlzYWJsZUlucHV0JiYxPT09KG4uY3BDb2xvck1vZGV8fDEpKSxyYygxKSxEbSgibmdJZiIsIW4uY3BEaXNhYmxlSW5wdXQmJjE9PT0obi5jcENvbG9yTW9kZXx8MSkpLHJjKDEpLERtKCJuZ0lmIiwhbi5jcERpc2FibGVJbnB1dCYmMj09PShuLmNwQ29sb3JNb2RlfHwxKSkscmMoMSksRG0oIm5nSWYiLCFuLmNwRGlzYWJsZUlucHV0JiYxPT09KG4uY3BDb2xvck1vZGV8fDEpKSxyYygxKSxEbSgibmdJZiIsKG51bGw9PW4uY3BQcmVzZXRDb2xvcnM/bnVsbDpuLmNwUHJlc2V0Q29sb3JzLmxlbmd0aCl8fG4uY3BBZGRDb2xvckJ1dHRvbikscmMoMSksRG0oIm5nSWYiLG4uY3BPS0J1dHRvbnx8bi5jcENhbmNlbEJ1dHRvbikpfSxkaXJlY3RpdmVzOltkTSxtMyxwMyxsTV0sc3R5bGVzOlsnLmNvbG9yLXBpY2tlcnstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICM3Nzc7Y3Vyc29yOmRlZmF1bHQ7aGVpZ2h0OmF1dG87cG9zaXRpb246YWJzb2x1dGU7dXNlci1zZWxlY3Q6bm9uZTt3aWR0aDoyMzBweDt6LWluZGV4OjEwMDB9LmNvbG9yLXBpY2tlciAqe2JveC1zaXppbmc6Ym9yZGVyLWJveDtmb250LXNpemU6MTFweDttYXJnaW46MH0uY29sb3ItcGlja2VyIGlucHV0e2NvbG9yOiMwMDA7Zm9udC1zaXplOjEzcHg7aGVpZ2h0OjI2cHg7bWluLXdpZHRoOjA7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MH0uY29sb3ItcGlja2VyIGlucHV0Oi1tb3otc3VibWl0LWludmFsaWQsLmNvbG9yLXBpY2tlciBpbnB1dDotbW96LXVpLWludmFsaWQsLmNvbG9yLXBpY2tlciBpbnB1dDppbnZhbGlke2JveC1zaGFkb3c6bm9uZX0uY29sb3ItcGlja2VyIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLC5jb2xvci1waWNrZXIgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjB9LmNvbG9yLXBpY2tlciAuYXJyb3d7Ym9yZGVyLXN0eWxlOnNvbGlkO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjA7ei1pbmRleDo5OTk5OTl9LmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctdG9we2JvcmRlci1jb2xvcjojNzc3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O2JvcmRlci13aWR0aDoxMHB4IDVweDtsZWZ0OjhweH0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1ib3R0b217Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM3Nzc7Ym9yZGVyLXdpZHRoOjEwcHggNXB4O2xlZnQ6OHB4O3RvcDotMjBweH0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1sZWZ0LXRvcCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy10b3AtbGVmdHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzc3Nztib3JkZXItd2lkdGg6NXB4IDEwcHg7Ym90dG9tOjhweDtyaWdodDotMjFweH0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1yaWdodC10b3AsLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctdG9wLXJpZ2h0e2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjNzc3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O2JvcmRlci13aWR0aDo1cHggMTBweDtib3R0b206OHB4O2xlZnQ6LTIwcHh9LmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctYm90dG9tLWxlZnQsLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctbGVmdCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1sZWZ0LWJvdHRvbXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzc3Nztib3JkZXItd2lkdGg6NXB4IDEwcHg7cmlnaHQ6LTIxcHg7dG9wOjhweH0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1ib3R0b20tcmlnaHQsLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctcmlnaHQsLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctcmlnaHQtYm90dG9te2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjNzc3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O2JvcmRlci13aWR0aDo1cHggMTBweDtsZWZ0Oi0yMHB4O3RvcDo4cHh9LmNvbG9yLXBpY2tlciAuY3Vyc29ye2JvcmRlcjoycHggc29saWQgIzIyMjtib3JkZXItcmFkaXVzOjUwJTtjdXJzb3I6ZGVmYXVsdDtoZWlnaHQ6MTZweDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxNnB4fS5jb2xvci1waWNrZXIgLmJveHtkaXNwbGF5OmZsZXg7cGFkZGluZzo0cHggOHB4fS5jb2xvci1waWNrZXIgLmxlZnR7cGFkZGluZzoxNnB4IDhweDtwb3NpdGlvbjpyZWxhdGl2ZX0uY29sb3ItcGlja2VyIC5yaWdodHtmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MTJweCA4cHh9LmNvbG9yLXBpY2tlciAuYnV0dG9uLWFyZWF7cGFkZGluZzowIDE2cHggMTZweDt0ZXh0LWFsaWduOnJpZ2h0fS5jb2xvci1waWNrZXIgLmJ1dHRvbi1hcmVhIGJ1dHRvbnttYXJnaW4tbGVmdDo4cHh9LmNvbG9yLXBpY2tlciAucHJlc2V0LWFyZWF7cGFkZGluZzo0cHggMTVweH0uY29sb3ItcGlja2VyIC5wcmVzZXQtYXJlYSAucHJlc2V0LWxhYmVse2NvbG9yOiM1NTU7Zm9udC1zaXplOjExcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NHB4O3RleHQtYWxpZ246bGVmdDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLnByZXNldC1hcmVhIC5wcmVzZXQtY29sb3J7Ym9yZGVyOjFweCBzb2xpZCAjYTlhOWE5O2JvcmRlci1yYWRpdXM6MjUlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxOHB4O21hcmdpbjo0cHggNnB4IDhweDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxOHB4fS5jb2xvci1waWNrZXIgLnByZXNldC1hcmVhIC5wcmVzZXQtZW1wdHktbWVzc2FnZXtmb250LXN0eWxlOml0YWxpYzttYXJnaW4tYm90dG9tOjhweDttYXJnaW4tdG9wOjRweDttaW4taGVpZ2h0OjE4cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmNvbG9yLXBpY2tlciAuaGV4LXRleHR7Zm9udC1zaXplOjExcHg7cGFkZGluZzo0cHggOHB4O3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAuaGV4LXRleHQgLmJveHtwYWRkaW5nOjAgMjRweCA4cHggOHB4fS5jb2xvci1waWNrZXIgLmhleC10ZXh0IC5ib3ggZGl2e2NsZWFyOmxlZnQ7Y29sb3I6IzU1NTtmbGV4OjEgMSBhdXRvO2Zsb2F0OmxlZnQ7dGV4dC1hbGlnbjpjZW50ZXJ9LmNvbG9yLXBpY2tlciAuaGV4LXRleHQgLmJveCBpbnB1dHtib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7ZmxleDoxIDEgYXV0bztwYWRkaW5nOjFweH0uY29sb3ItcGlja2VyIC5oZXgtYWxwaGEgLmJveCBkaXY6Zmlyc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAuaGV4LWFscGhhIC5ib3ggaW5wdXQ6Zmlyc3QtY2hpbGR7ZmxleC1ncm93OjM7bWFyZ2luLXJpZ2h0OjhweH0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0LC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCwuY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0e2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6NHB4IDhweDt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94LC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94LC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCAuYm94e3BhZGRpbmc6MCAyNHB4IDhweCA4cHh9LmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94e3BhZGRpbmc6MCA4cHggOHB4fS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94IGRpdiwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQgLmJveCBkaXYsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggZGl2LC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHQgLmJveCBkaXZ7Y29sb3I6IzU1NTtmbGV4OjEgMSBhdXRvO21hcmdpbi1yaWdodDo4cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94IGRpdjpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94IGlucHV0LC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94IGlucHV0LC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCAuYm94IGlucHV0LC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHQgLmJveCBpbnB1dHtib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7ZmxleDoxO2Zsb2F0OmxlZnQ7bWFyZ2luOjAgOHB4IDAgMDtwYWRkaW5nOjFweH0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQgLmJveCBpbnB1dDpsYXN0LWNoaWxkLC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94IGlucHV0Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggaW5wdXQ6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0IC5ib3ggaW5wdXQ6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MH0uY29sb3ItcGlja2VyIC5odWUtYWxwaGF7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1ib3R0b206M3B4fS5jb2xvci1waWNrZXIgLmh1ZXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFKWUFBQUFRQ0FZQUFBRDA2SVluQUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDRBSVdEd2tVRldiQ0NBQUFBRnhKUkVGVWFON3Qwa0VLZzBBUUFNRTJ4ODMvbjJxdTVxQ2dEMWlEaENvWWRwbmJRQzliYlkxcVZPL2p2YzZrM2FkOTFzNy83RjEvY3NnUHJ1anVRMTdCRFlTRnNCQVd3Z0poSVN5RUJjSkNXQWdMaElXd0VCWUlpMmY3QXIvMVRDZ0ZIMlg5QUFBQUFFbEZUa1N1UW1DQyIpO2RpcmVjdGlvbjpsdHJ9LmNvbG9yLXBpY2tlciAuaHVlLC5jb2xvci1waWNrZXIgLnZhbHVle2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjE2cHg7bWFyZ2luLWJvdHRvbToxNnB4O3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAudmFsdWV7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSllBQUFBUUNBWUFBQUQwNklZbkFBQUNUa2xFUVZSNDJ1M1NZVWNyQUJoQTRVMlNrbVJKTW1XU0prbEtKaVdaWnBLVUpKc2tLVW1hVEZJbUtaT1V6TXlTcEdSbWxpUk5KaWxKU3BLU0pFdG1TcElwbVdtU2RPNzM2LzZEK3g3T1AzZ1VDb1dDdjFjcWxTUWxKWkdjbkV4S1NncXBxYW1rcGFXUm5wNU9Sa1lHbVptWnFGUXFzckt5eU03T0ppY25oOXpjWE5ScU5YbDVlZVRuNTZQUmFDZ29LS0N3c0pDaW9pSzBXaTNGeGNXVWxKUlFXbHBLV1ZrWjVlWGxWRlJVVUZsWmlVNm5vNnFxaXVycWFtcHFhcWl0cmFXdXJnNjlYazk5ZlQwR2d3R2owVWhEUXdPTmpZMDBOVFhSM054TVMwc0xyYTJ0dExXMTBkN2Vqc2xrd213MjA5SFJRV2RuSjExZFhYUjNkOVBUMDBOdmJ5OTlmWDMwOS9jek1EREE0T0FnRm91Rm9hRWhyRllydzhQRGpJeU1NRG82eXRqWUdEYWJqZkh4Y1NZbUpwaWNuR1JxYWdxNzNjNzA5RFF6TXpQTXpzNHlOemZIL1B3OERvY0RwOU9KeStYQzdYYXpzTERBNHVJaVMwdExMQzh2czdLeXd1cnFLbXRyYTNnOEhyeGVMejZmRDcvZnovcjZPaHNiRzJ4dWJySzF0Y1gyOWphQlFJQ2RuUjJDd1NDN3U3dnM3ZTJ4djcvUHdjRUJoNGVISEIwZGNYeDh6TW5KQ2FlbnA1eWRuWEYrZnM3RnhRV1hsNWRjWFYxeGZYM056YzBOdDdlMzNOM2RFUXFGdUwrLzUrSGhnWEE0VENRUzRmSHhrYWVuSjU2Zm4zbDVlZUgxOVpWb05NcmIyeHZ2Nys5OGZId1FpOFdJeCtOOGZuNlNTQ1Q0K3ZyaSsvdWJuNThmZm45LytWY0tnU1d3QkpiQUVsZ0NTMkFKTElFbHNBU1d3QkpZQWt0Z0NTeUJKYkFFbHNBU1dBSkxZQWtzZ1NXd0JKYkFFbGdDUzJBSkxJRWxzUDQvV0g4QW1KNVo2akhTNGg4QUFBQUFTVVZPUks1Q1lJST0iKTtkaXJlY3Rpb246cnRsfS5jb2xvci1waWNrZXIgLmFscGhhe2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUpZQUFBQVFDQVlBQUFEMDZJWW5BQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVINEFJV0R3WVFsWk1hM2dBQUFXVkpSRUZVYU43dG1FR082akFRUkNzT0FySGdCcHlBSllHamNHb2N4QW00QTJJSHBtb1dFMGVCSCtlem1GbE52VTA2c2hKM1c2VkVlbFdNVVFBSUlGOWY2cVpwaW1zQTFMWXRTMnVGNTEvdTI3WVZBRlpWUlVrRW9HSGRQVi9zSWNiSUVJSWtVZEkvOVhhN25leXY2MStTV0ZVVkFWQ1NjdDAwVFduMmZ2NnUzK0VjZmQzdFh6eS8wK25FVXUrU1Bqby9rcXpybWlRcFNjTjZ2OThYZXdmQTgvbE1raUxKMld4R1NVb3BjVDZmTTZVME5YOS9mcmZiamV2MVd0ZnJsWmZMaFlmRFFRSEcvQUlPbG5Hd2pJTmxIQ3hqSEN6allKbS9USldkQ3dxdUpYc2VGRnpHd0ROTmVpS01PSlRPOHhRZERRYWVCMjkrSzllZmVMYUJvOUo3dmR2dEpqMVJqRkZqZml2N3F2OTV0angvN2xlU1FnaDkzZTFmZk1lSXA2TytZUWpoby9ONzkxdDFYVk9TU0k3Ti8vSys0L0dveFdMQngrUEI1L09wNVhMSisvM09sSkpXcXhVM204M292djVpR2Y4S2pZTmxIQ3hqSEN6allCa0h5NWdmNWd1c3ZRVTdVMzdqVEFBQUFBQkpSVTVFcmtKZ2dnPT0iKTtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO2RpcmVjdGlvbjpsdHI7aGVpZ2h0OjE2cHg7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC50eXBlLXBvbGljeXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCSUFBQUFnQ0FZQUFBQWZmQ2p4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQUFsd1NGbHpBQUFDZXdBQUFuc0IwMUNPM0FBQUFCbDBSVmgwVTI5bWRIZGhjbVVBZDNkM0xtbHVhM05qWVhCbExtOXlaNXZ1UEJvQUFBSUFTVVJCVkVpSjdaWTlheFJSRklhZnN4TVN0ckxRSnBBZ3BCRmhpK0M5dzFZU28wMEk2UlovZzl2WnBCZi9RT3I0R3lSZ2tTS05TckFhZHNacVFHd0NrdUFXeVJaSnN5U3d2aFo3Ti92aHpyZ2JMSDNMZDg1OTdqbHp6NTB6Sm9reXhYSDhEcURWYXIwcWk2djhCYkl0cVNHcEVjZnhkbG1zRldYa3ZYOEFmQVZXZzNVS1BFblQ5R0t1ak16c0FGZ1pzVmFDTjFWVFFkNzdYVW5yZ0Uxa3YrNjkzNTI2OFdScHpybkhadllSV0M3WXZDM3BSWlpsM3dvenF0VnFpeUg5SWdqQXNwa2QxR3ExeFVKUXRWcmRCOVpLSUFPdGhkZy9RYzY1TFVrN3dOSU1vQ1ZKTzg2NXJZRmhrcWpYNi9kN3ZWNEdQSndCTXFvZlVSUzVKRWs2RllCZXIvZWVZYi9NbzlXd0ZuUE92UWJlQXZmdUFBSzRCTjRzQUp0QUcvZ0pJRWxtTnVpSnliYTNFR05tWmlQZVp1RVZtVmVsbC9ZLzZOK0N6RG4zQVhoRU9PbzdIdi8zQmVBejhJelFrTVBuSmJ1UHgxd0MreVlKNy8wbllJUDVTLzBGSEtkcCtyd0NFRVhSUy9yZjVIbDFHdGIyTTBpU3BDT3BDWnpQQVRtWDFFeVNwSE1MQXNpeTdNak1Eb0hyR1NEWFpuYVlaZG5Sd0JoN0o5MXV0d21jekFBNkNiRzNHZ1BsZVg0anFVSC9hMUNrdHFSR251YzNoU0NBTUIzMmdLc3BrQ3RnYjNLQ1FNbWtqZVA0V05KVGhyTk5admFsMVdwdFRJc3Y3SnRRNHRtSWRSYThxU29FcFdsNllXWk5vQU4wekt4Wk5QZWhwTFNCWnYydCtRMENKOWxMbkFSUUxBQUFBQUJKUlU1RXJrSmdnZz09Iik7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTo4cHggMTZweDtoZWlnaHQ6MjRweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMnB4O3RvcDoyMThweDt3aWR0aDoxNnB4fS5jb2xvci1waWNrZXIgLnR5cGUtcG9saWN5IC50eXBlLXBvbGljeS1hcnJvd3tkaXNwbGF5OmJsb2NrO2hlaWdodDo1MCU7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC5zZWxlY3RlZC1jb2xvcntib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjQwcHg7bGVmdDo4cHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjE2cHg7d2lkdGg6NDBweH0uY29sb3ItcGlja2VyIC5zZWxlY3RlZC1jb2xvci1iYWNrZ3JvdW5ke2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNnQUFBQW9DQVlBQUFDTS9yaHRBQUFBaDBsRVFWUllSKzJXMFFsQU1RZ0Q2MHpkZndPZHFhOFRtSS93UU1yNUswSTViWkxJekxPYTJudDM3VlZWYmQrZER4NW9iZ0NDM0tCTHdKMmZmNFBuVmlka2YrdWNJaHc4MEhRYUNMbzNETUgzQ1JLM2lGc21BV1ZsNmhQTkR3dDhFdk5FNXErWXVFWGNNZ2tvblZNNlNkeUNvRXZBblo4djFIang4MTdNaWxteFNVQjVyZExKRHljWmdVQVpVY2gvQUFBQUFFbEZUa1N1UW1DQyIpO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDo0MHB4O3dpZHRoOjQwcHh9LmNvbG9yLXBpY2tlciAuc2F0dXJhdGlvbi1saWdodG5lc3N7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBT1lBQUFDQ0NBWUFBQUJTRDdUM0FBQUFCbUpMUjBRQS93RC9BUCtndmFlVEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFBQjNSSlRVVUg0QUlXRHdrc1BXUjZsZ0FBSUFCSlJFRlVlTnJ0blZ1VDQ3Z1JyQUhOK1AvL09yLzYxWTV3T05aN21aMXUzWEFlTE1qSlpHWlZnZEtzZmM1eFIzUzBSSUlVVytDSHpDcGMyTWNZbzdYR3YzZXg3VWlaZDU3cmp5enp2K3YrMzNYL1IvKzNyL2Y3dlIzODZZK1R2S05jZi93ZGhUTFBjdjlxVTJ3WmQ3NHV0aDB0MTgyMWprSVpMUGNzSS82bldhNFh2dXRxdVUwWjg1bW54ODBTL1p6Z3BuTG5PdEhOdDcvb2Z4MVRLWGNTTnpOLzdxYk1RM2p1N3JOUW1NWVlkLzRzMmo5YWErUCtnR2FNY1pyYjFNL3RkcnZmNy9kMnY5OVA5L3Q5M08vM2NidmR4dTEyRzlmcmRWd3VsM0UrbjhjLy8vblArMisvL1hiNjZhZWZ4bC8vK3RmeDV6Ly8yWUs1QWwycmd2ZjRVc2JwZEdyQjUyYkF2QXJYcHV6am1pcUFWU0d6NWVEbUdZWHpoYkFabUNybm16ZGRwVVUrOFkxZEFPWWVYQ3REVXdWd1Y3WUNHSDZ1QW15TWNaOWw1dmtVYUJQR01VWjcvSjV3Lzc5Mi9mdnY5WHE5MzI2M2RyL2ZUeFBFQ2VNRThuSzVqTS9Qei9IVFR6L2R2MzM3ZHZybGwxL0dQLzd4ai9HM3YvMXQvT1V2ZndrVnN3b25namRPcDlQekgzVTNEM3ptV0duWlZYbjRqQ3FzN3dDMkJLUDQvOHRBemtac29XeDZYcnFlSFp5bXZwNEFCQ0JKaFRRd0tmRFQ4Z3pyWkNJcWk1QWhpQUNqQmZFQjJyUDgvWDYzTU03ZjYvVjZ2OS92N1hhN2JZQzgzVzdqY3Jsc1ZISXE1ZmZ2MzArLy9mYmIrT1dYWDhaUFAvMDAvdjczdjQrZmYvNzVKU3ZiZXUrYkwyV01NYUZiQWxwQk5NODVRWCtjdDZxb1Nxa1BBd3VRbEJWS3FHTkZTVU9BQTNCbXU3Z0M1aE5PZDE1blN3dkFPVVc3QzRnaVVDVjhTZ241TDloTkZJcVRzcDBHeEkweXNpb3lqQWprWS90R0pWRXB6K2Z6K09XWFgrN2Z2MzgvL2Y3NzcrUGJ0Mi9qMTE5L0hULy8vUFA0OWRkZng4ZkhSd3JtVGpWNzc5RVh1MnB4Mnhoand0ZEpaUWNBV1FJUExQSVNzTUphU3dpRDhneklLcndTeUFURTVqNW5BYlI1YzFkQlV3QmxzRVdXMGg2THFpWXNxRlBBUXhDeVJaM3dPU0FSeG1sWE1YNWs2NHBRZnZ2MjdmNzUrZGsrUGo1T0h4OGY0L3YzNytQYnQyL2p0OTkrRzkrK2ZSc2ZIeC9qY3JtVUZMTzMxZ1lEV2JseFJJcy9UcWZUN291c3hKc0F4WEEyR2M3VEE5WGRnZmRvSGJGc2o3NlgyKzFXQXJnSTFhZ2VHd0EzcXVwcW9Ic21jYkk2RnU5M3F1Z2dGYTlkN0xlRHRnS2ZBRkhCSitORUJ5SWtjSjVLZXJ2ZFRtaGhHY2dKSlNaNXZuLy9maitmeisxOFBwOCtQei9INStmbm1HRCsvdnZ2NC92MzcrUGo0Mk44Zm42TzIrMVdzN0pqalA2d3JhTUk1RTRSWjh4MnZWNVRTd2txdW90VjcvZDdUejZIRldzRC9xTmNkdzBDUTNxLzMyMWM2ODZUd0RWSWRidXk3M3pObGRoU0hiOEkya2xaem5tK0luQlM0VTZuMDMwMmFCRnNMaEhEQUtKVkpWZ2xmSTlqaHZ1NTNXNTNzTEFOWU54QWlEQTZNQ2VVSHg4ZjkrdjEyaTZYUzd0Y0xxY1pXNTdQNXllWTgvZno4M09jeitmbnNTbVlVeWtuV0VHODVXQnN0OXN0elNMeU1kZnI5UWkwOGlZMTVVWjBMbERHTGhSM281eksyajdPUFVURDBFK25VM3RrN1hiLzE2TkZiaGxvQU11WTF6akxVT08zQktlSURlK1o4czMvSjRnRm80VE01alBtdVJnMjhmb1VLS1ZTd28xNlRnQTVucHl3Y1dMSGdZbC9QejgvNzMvNjA1L2FiNy85MW02M1c3dGNMaWUwc1pqNG1hbzVnVHlmejg4RTBmMStqOEVjWXp3VFBFRzJjcWp5ZkhORjBNOGZ1cUVpYU9WblJ6WlpRTmg1ZndReUhnL0hER2ZKbzg5UTF6Yi9xdXU1WEM2NzczSTJYS2ZUcWQvdjkrZDN3dXFXdmEvWVRkVWRFVjNmaEl2L1ZpeXBzNllFM3gzcjQzSzViSlFTNjZ6YXhWR0ZzdmQrLy9qNGFGKy9mbTNmdjM5dnQ5dXRmZjM2dGYzKysrL3RkcnVkdm4zN1p1TkxCYWFDTWdVekMrclpSaUZvd3hVdUpJOFlNcWNDcDlPcHE1dmFnYVlVNmxHSkExWFFxZWpjaHc2Q2owR3c1bllCckd3MDFBMk8yMDZuMDRCR291Tk55VGZwL0Z3RWxoVWV5Nm5YcklLdzdRUVdkZHh1TjJsZEw1Zkw4MzlnU1BGOGFodS9KdkJPNDhDUFN1cU1mOFZwOS9QNTNMNTgrZEx1OTNzN244L3RmcjgvMzkvdjkvYjUrVGtoUEozUDU2bVE0MzYvaisvZnYrL2lTZ2J6ZXIwK0FaeC81Kzg4YnY2T01kYTZTNXo2a2QyMWZZQzlkeHY3Y0lKSjJkOUFPUzMwZlBNenlIaVRNOEI0REY2WFVsWUhwNEtRVzNXKzF0NzdNTkIxdkdIeFdxN1hhN3ZmNzgreTUvTjVBK0gxZXQyOXh1UDVkYll0eWFSdTRBa3NiUHE2OTM2ZmpSelhSeEJiUHIvYitiMTgrZktsalRIYUJCQmZuOC9uMC8xK0gxKytmQm5uOHptMHNCOGZINXU0Y3I1R3VCaE1WazBFRW45UnNjdGdWaE0raXhsSnRNQTIzUjhCNnl5c0FzdEJPZ0ZYSUtLQ01JZ1RvTXFORXUyZllNSDd6dGM3MzJkUUtrQ2oxeXRBWnRZMEt4OHBJcjhHR0orQVQzVisySGlyaGwrK2ZCbVh5Mld6NzN3K2IxN1A4cCtmbjgvdFV3R1ZsZVZrVHlVYjY4RGtmYXlXWTR6eE5SaWhVNEVwTEpQWlZySyt1N0o0L21nZktxZUxXOVgyUkVXbEl0TDFkaXluYkREYjMralhnWWpRcW4wcnJ4V2MrTmtJTFA3Rjd4SWJNdng3dlY1M3g0MHhubGJXSkYxMlpTYWcvTjBwVzZ0K1p6bU9NekhqYWpLd0Rmb25kNzh6WVRkZnExOHVwOTd6cjJxOHYzSWlvQnByUnRCbDBFWjlvZzVXQlJHT2RPSGpJalhGN1VvdEZiZ09Xblh6SUp5ell2akc1SVlnc21NT3hIa3o4T3NNU3JWTldlcTVUOERhT2NiRXYxT2Q1cmJzOWFPN1l2TWV0NjNFa0YrK2ZNRXhxK01SbDQvTDViTFpOLytleitmblo2S2F6dU1xWFNRVk81c3BKWGZsSEFJemVzL3hKc2Vja1JKaURNb2c5ZDZWZlJycVhNcjZLcFZWMjdqUndKYWNHb3ZPQU0xek1kUU1ud0sxQXViSzYza2RDQ2h2STFDN2cwejluZi9EK1h6ZTJWajhIN0d4NFA5ZHVRbHNZQ3JxeU44WHFHM0htLzEwT2ozancvbitjcmxzdHVNK2pQbW14VDJkVHVQejgzUHp0MnBuMVhzRUhYL2JuUGFWcVZtaDB4d090MG82WExMQUhlUFVVMjAzd0hmY3JzcEN3bVYzVHJ5QjVzME1zZWVnOTd4L0J3ekNqQmxiQitwUkFQbGEwQlZRdVQ2VjZRSGRCbGozZDBLRzE0N2IrRHF4UWVVeW1ETzQzVzRkUWFyK1RJandtQWQwejgvaDY1dmYwL3lMdjNQYjVYTHBydS95ZERvOXM3RVQwSStQajZkS0s5VlVFSWVLV1FXUEFPcko4TEtkNHZFK3Q5MVkzZTdVRmxXYXRnMlZ3Sm5iK0hQbXR2bS9zZks1OS9PYVdGM3gvZVAxVVBIdkE1RERZRHBZWGZiMGRydjFWMkRrQmt4dHcvdEVXVlZsWFdkQzlwRllzNS9qZmg5ZFMvMTZ2VzdzNmxURytUZnFzeFNKSHhrWFhxL1hkcjFldTRMc2ZENlAzdnNUM043N0RrTCt6UG01alNkS0w0elIzQXhRZDZySGtMa1lsU293c3JxN3puenU2d1N3ZHNNSk9YbUE1ZkJjanh0Z01HQllIbHI1em9raHRzTUNUZ1hMUU9XNFhDNmRFeUVNcHJMOG1BUXpYUmdkdWl4Mnlaem9yeGtZc0RuM2hCMVZlTUxHc1hzVnRnbDJwVzhTM3N2azB2dzdSNGhOYUh2djRjQUNsNUhGendJSDBLYzZ6dTRYakRQUi9qcEFWeFd6TzFYazJERGIzdlRjeGVHVTFpV1pIa21JRFd6aVdLdmlyQ0o0RHJhdnM2SUovR0c2Y1RxV2RYRHkrZkFyUURWVmtMcWtWakFvWklJVGRtbUlxWHdxYTk1TjMrTUdZb1pRZFJWTk81M1kxeFJraE8xNnZZN2V1NTA3Q2E5bEpuYkdweE9lbVFoU3cvQVFzbW1wNXpVOUJpVThHNnd2WDc2TTYvVTZQajQrZG8wQno0Q3BnaWtuVFVlRHF3bEtCbWczdTRPVmpyWjFBK3JBY2dhZWpXcTZlSkN2Q1lGRE9OU3dPZ0hYNEVRUnc4bHhiekRPZEVLNmdaM0hrMWIrOGcybzFKRnRLWHl2L2ZFZFRYdVdqV1hkQVppQnA2QURlRHJDRmlpbTdCNlpGbmVlSTdHdm0vUE1rVURYNjdXN3hJOGIwRDcvdjhkQTlxZk41b2FDZjc0V1pqSDBtZjFjbWZZMVkwSlVGbVZyVFd1OHV6a05jTHRFajd1NUZYQlRrZkM2R09BNXE4WU14TzhLVnZGNnNBVkdkY3JVYnNLT0RjUUtrTE1PTWRtbHh1bTY0MllyUG0yNkFsaFpXMVlCMVIrcnJHc3dFOFRhWUFXZVVNeGRmK1dqd1N2WjJFZjN5dE95Zm41K1BwVlBBYXFPbjQzTXROQnF2bWpqeGJqTTRsWmpaWTRncU5NSTVrdGFXL3NZS053Uys5bEZRekdpaG1NQ0tQYTcrWjBWNkViMEdSbW9idHBYOEpsald1NUZNTE41amE2aEc5a3dRZ1pxZjUrMU5INVV4emtGUmVDZFdoSjhYZGxHVWt4TzdIUmxZUm00bVZPNDNXN3RlcjEyVFBKRXcvcm1FTjNMNVNLSElXWmc5bXorcFVvS09ZcTViSlRKZFgyZ21lMVVjeE1aUUZhRVFJbEhjdDMyTStZMUJ6R2tHdXpmaXlBTjl6K3VncGxaMXN5bUNyRENZWWtHeERUcEk5UnpCeTBySHllRFVDMW5XYWVVYUQ5bjR4a055WU1CRFp0elozQisrZkpsWTIxWEZET2NBUkpsYWJPeWlTM3VDcExJOWpyWmpDRGthVnZjQ0Nqd29nbktTaFdkelhaV2xaTXZWVGdEOExwcWxDTHJxZ2JjQitxWXdyZ0tZcFQwY2NDcWJLeUNWYWxrRWFibi9GeW5vZ0NyUEtmcWY1MXhKN3NHQjJaWGNabXhvU096dGp4MzAwRFppN2EwLzJBSVIwVWxCYWc5U3VEdzZLY0F6bGFCN3ZIWnZXcGpLOTBkeXJxNmJLeURVWlFiUjBCMDViaUxRa0hJY1NVbWdJSytTd3VxZ0hDbm9pbzJSUVUxeWorQm5CeTlwcGhWS0xHeUM3WnpGSzFweFdLK0U4SWhWQ1dMTi91THRuVVU0YXlvWUxvYUFOejhGZHRhU3ZZNHBWMEJFVzJsczYxY3pxbGxCS3BUeUtnTUFocloxY2RjMVJST3RQbXZXTmtkY0taN1pLeGFXamlQTEpNcHA3T1pLeEErcnFHL29KTGp4ZjBwbkpscUxvRFpvM2d5VTBtS0d5czJ0YUtlY2ovZDFDK3JKU3BsQnFsVHlBcWdSK0Q4S2pLbG1STDJndFVjQWRDdHNMK2lqQ05UMW9xcXFrSDJPSEViRzVzREZuVWc1QWEreUxvdTJWVTFwdGoxUzJaUXF2MU9SWk45SVd6UmZnYVJCeEtvQkU4VVd5cWxKRnRySWMwQXhOalNqZWQ5OUNUWS9YRGZTekN6NU0wSVpvVkVzV25QRk5Uc2w4b29WQzFUemJHZ3FGWk5EU2dWd0tLKzFzR0RNS3F4WkNXR1ZNRHlzaUVyMWpWU1FKVVl3ajVpSE9sVGhkSHQ0NFNRZzlDTitubDhEOTBOTUlnQWRncjQ2SnFSaVI5STh2UmRGdmJyMTdtL3l4VU1Lak5MTWlWVUFEd3UyQ1dHaGhpK0Y1NVRXTTlNOWNvZ3ptczFkbk00dU9GL0xBRVlXZGNxbk03eUZteXEzSWZ3bU9ST2Q3WTFpRld0T2pvWThUbzQxbVRWNUl5c2dGRnVSenNiV0ZHYk5JSUpDRHYxZE9vNGxaRzdqV0J3UkZ0VlRLdVd5ZUNCeUpLT2FuOG9aM2VwOVhkZE5sMHREdWF5d0x6OWNYUFllREFBMFNwa0JPOXNiVmNUT1ZXbGRQdjR1eXpFa3p4SHRqdm9uSG9Ta0ZFV05vbzFkOERoY1FwdXRkMnBwTm9uNEJ6b0FpSjFoQkZRZzBkVnRkYkdISERRV3VzaG1ORVF1a0xNMlFPMUcyWThiZ1RYcUZoY0JKajdFalBnY1B0czhVUzhxUHBQQi9kWHpuT2g1WjQzOHR6SDVlYzZRZ3JPS3JSUmZLbXlzQm1VREIrUGhZYWJNbFZQRVIrR0NTSVRUenI3YW0ydEFySDNiZ2NFelBKbStjcjVqSjRObkhORkRWckZYY0k1TGU5azVKbncrYmVkYlYrRmZSelpJSGFPT2FPc0xZMC83VUdzNThEanJHd0tNSU1GSUd6T0VXMS9qR3NkQXRDTjZoRUFJNGhCZTlZWGVSUk9CU1ZQQVZQQXF2SU01Yng1aFZLV0FNUDZ6QlJ5M2llc2NyaWRWZEZCaW5CeFhEbkcyR1JZMlhiQ3ZwMWxodkd0TzlCeHU1aDkwOFhRdTQybG5TQXJNRmRpek1pbTh1d1JDeFBHbm5PUzhsd3BuYk9pRHFUQWpzclJOL1Bjb0FTY0NiYUFDcVZNNDB5bG5qalRCcytid1dsQUcyMy9VS2Jka2l3S1dJUVBHeldhY3pwb1NseFBFajgyMmNOV2twUzdGeXpzRHJxcGZncEczamFodzJ2Z2JhU1FBeHVMV1pZdDdKenlOZThKb1pwTkFjdkRGT2R3MHdxWVQ5QUsxclp6L0RkYlNsTFBwMHJ5SXhnUUpsSzlBWmxFcTdJT1hwb2hnOVBJaHJDbmc4OEpzT3hpVjRaV0FZZmc0c2lreC84a3kyWjlsODYydXF3cmZzY0lIOCt1Z1RtVkd5aWRkZVZZVWdFTW40R1p6ZzE0RXdJc2g5c3gyY0tLaVdYUmV1T0U1Z3pHT1FnZGxSS1ZWZGxldnFiMjc5WHEwUW5zdHMyVkRhQk8wY29lenNydVd0SEFwdTZzS0c0SUJoTjBhR1Uya0xyTUtHUlROM0htYkNEd0tWMTR6dmtNRURHNFFmWlZzcFZsYU5VMm1oYzVURVozTjFoL3pxVGhldUxwVzA1WldUR1ZqYjNkYm5ObXhLWkJuTjhKcWlkYVZMS0FPeUFSTkxTK01CNTRaMitWYXFvTUxLcm9WQmxuZ2VmblRQQWNvSE5XQ1N2bGZBOENJMEhFbUJOQm5CbFh5TXJ6VTdBN1dWbTk0UFBxUTJnbXFLeCtXREdzbnZpbG1jU09CSnFPSzFuWXlBSXp1QXllc3EzVWRTSzNLZldjWUtEOTVIbWZZT1UzcXNlcjJDdFlFVUErRnBmcWROdmdQQlpVQmhEckdPTlJWbFFzaDhyTGNhVUN5a0hHME9PVXdUbExCcnNoNXNvRU1HZXppMUU0SFJWdDFpY3A1d1pFRlhkaWJDa0c4WTh2WDc1c2JPNEUwaW9tOXoraGpTaU9meTNEaHBYSXRwVmhFK1VHUWR2b1dqdENobXJHSGY0WUF6S2dCTm5HdHVKeEZDZUdkaFVBZlFMTEs4a0JZQVA2Z3ZGSlphak1HM1hreWN5OEt1QzBxNEV5eW13dHdkeGR2Mk0wbUlCdEswTEtuZjY0MGowMEF1cTRnVWtkV0dsaHMyMnFKYzZkWkNzTDE5b3hubFRKRzRTWVZSSUdwRDhUUEZCdU02T0VsYlMxcGxkaWQ0bUdBeU42Wkl1cGJDNWJYSk45ZmRwYlRoU3hMVWFJOElHMVhJWUJ4VzNUanM2S1Fvc0tjeGZ4Y1FtZG53UkdNMTBHbkZjQ3kyWFl1bkxNeUFrZGdrNG1lUGljenNMeWd0aGNCdXQ2Z29PcVM3WVZGWEFETGphb3NCNnM2b2ZjWldBWlNJUllxU1VraXpZd3R0WWFiM3ZVT1E5dzJIUnhJSWc4V3dSVmVFNjh4aTRVdEwzelJwaHhwbHp3dVpyY3FZQ3ExSTNqUEk1ZG5KSXlnRW9oTWJQcVZKU3pyd3p4QkpUczV6TitSZVVTZ3hpa1BRVkYzSlZCZU5ReGJIRU5yRU1OdkVkRlpWVjlsSDkrT1JHRXNOWlFweVROYzRDM0FHN1hGNG5nenErRHJPMnpidWFhT1hnZGFGY2RrRW90b1NGQlZYMnFKMEM4T1daZUc0S0dscGdoQTBYZlRPUENxVjJxcXdRMjZRV2ZGMlBNTGhJMncxbFZBYTJhUHNZZDB6YTI1TVFSd2djWk42dVFEQ2krWnhpRDRYRU0ya1p4T1Q0MUZuWm5hUmxjcFpvdXpsUnFxZGJRVldvcFFvU0I1OFJWNTBsQk5ySGkvQXdYUzVMcndEVmxwWTNGYzNCeWlZR2M1MlRyaXN0NmtPWGR3SW5BUXRKcHA1UWNoeWFxdVlPVjdTdStmeFZNYVYzZGMwUkUyUzZtVVkwZ0x0MnBNY1lxcktJUTl3MmwxZ3BRVU10UVljbW1idDVEVE54ZGhuVUNqUXF0Yks5U1VTenZyQzBtbWhoRTFlMkZTMitveHlweS9aQVN1dGttdGp4M3ZjQkMyNFBYNjVuYnFrQkNSaGZqUzlrSVlQbmVlOGNNYWdWT2hJLzNUMWZBbWR0QVdac0Nzd1RKQ2tRVk5hMHFXS1NLUE9wSEFVaEQ5RHJiVmN5b1lrd3FodmgxN3ZZQWF5WExReUtHWWR4bFVERnA0OTRyQlhSallnTzE3RERZZXROSVVqL2V6cDZTMGxubHBFd3NXbUpNa093c0tYZVpLRUFqSUhuMEVRSklTYVJCY082VU1JTno3cC9iRWpqbnc0ZnQreG1EdmtzeFg0RzJySXJpczdxYWVLd0FGTVAyT2k3bjRjcml1Wnd0cFNVd3BmTHhTbk9SU3JJcXVzYzVaRmFYeXNxUldqaVoyRHlBV0VJTDM1dFZTb1FFbEZBQ2pPZUdHU0U3QUhFUWdkby9MU3ZDT2dHQnZreHNtRGJ2bFMzRnA1dmhhQjJUQUdxUktyS0tNcmhMVnBhR3pFVmpaME9ReERoYUNUQStReVJSMWQxNWFRenJKbnRMM1JpYnNpcGpHNmpsZ0w0eXFiUzBzTllnMWU4NHZoYkJWckVsSzY0Q1VjV1lYRGZLeGhwSXV4aVZKWlV4c2JNeS91UkJLVE5SUTRrUTNMZFJZTFMwckpqUlBsVFBxWTZnZEpzRURjK2FRWEFuK0hnc05VQ2JSdUYwT2owenduQTdiV0RrYmhPNUVuczAwcWVRaFMxbGFCTWw1TS9jQWF4c0xGOHJLeXFsK1RmN0VMTEVHdS9peGlpbWRDdm8wVGpmcGpLd2FnZ2VuNGVoNXY3TG9rTEtiTHV5dkhoY1pHOGRoR3JFRHg3SGc5M1pwcEpGN3FCcU8zaVZ2ZVhFRFFOSW56ZW9lOFlxNmVQYVpCWjJKdmlNM1cyVUFHb3Rla1JDQUdxNEVrRjFYM0RPblIxMXlSc0JMMXRSYTBQVmNaaU5GWFoyYzM0RnNrdm9tSW5RUTZsenBKb1piSnhrNDNOd0tKRkJxdUpTc3JCeUh5ZHhLT25UeFFBU0JtUzNqK0pNbnNIU2xhM0VjNks5VldvSlZuOXpmandPTTdocVlBQXFKUXdFMmEzbkE0OEoyUUdlZ1JrcFpOaXZTWSt5czNFa0tkNG9KSXdzdklIbDNjV2dMdDVrNE5INk9tdExXZHB1ck9rd0VNdXBZYzdlTXREUmhPY0kydWk1SmhWSXpYekx5dG8vR0FQdVpveW84d2tvZHVWZ0pnbEN0N09oR2JnSUQ0TXE0c2krNjN6VVMxRnVGRlhGbHF5YWoyZW1IbExNY0JxWXUwRk11UjI4QmJCN2xPeFJNU2lDUVhGaENLdXdraForcFlEaUdTZ2JzS0tWOE1pU1JzdUhTSVdNOXJrbFJpSWxaWnVxWGpzUUs4b29ZSk1ncTNKS1dWa2hIYmhzVnhGVXp0aE9XUGtZaWpjYng1NElLc1NkVCt1THIzY3JHS3lvWWdGaUdSOWlCazRrZmxvVVgrSklsUVJRcWFibXBnbmhxdHBRcGI2UlZRMVdINURuclM0aEVvR1pxYWVyUTJkaEZiejhYZVB4U2htRGJvNzBlSVNqb29yTzJ2SzhTSlhJNFNVbUVVNHpXS0R6VUR0V1RZdzd4WGxiU1RFajRGUmc3ektuS29HUkFMdjBHczlUZ2MxQnBDeXdHWlJRQXRxVnoyeHJCY0FNekVwZlp3RlNhMkc1VzBRQkZqU01hcFdBRUZhM0hjR043Q3hEekVDeUlrSjk3cXdycVdOVFdWbzg3NlBQc2pQa2oyd3Zncm9NNWxMWktNRVRLVnFsL0N2bldWRmlGYS9TekpVUXdrb1pzcjY3WTZ2bFNSVjMvMnRtTlRPWTN2bmF4WXdNdW9QS3FkelIxdzdJcUh5bWxQeGFBVGhmVTdLbzJaWFlqNEFZSkhMK2tOZEt3UlFZRVNUUmE1ZnNVWi9yVkMxVE1UeVdWeVlvcU50dXphSHNNeXYydHZvYXJ4ZGZxd1lnVTFheEZvL2NucWwxRkdzcUsrdUFST1Y4Qlg0R1U4V2NaVEFUaTJxN1FjeWkwTzBWK0doV0JNTlJVa244SDFTc1dWRTVCeTNHaTBFQ3FVZUpvQmZBdERhNGFta2RYRzM3QUdQNUdnZWI4NHA3VWF6cG9LUnpkRnplUThIa29IR3hwckt5L0hwbTV0MTJwNDdKNnhUWURFejd1SU5FWFN1eFlYdkZza1lBYyt5U3hIOXNmNWZ0S3pVNklid1ZCY1VHZzVlNUZNQ0VYU0VyWlIwd0dheVYxOXdvTTlndVBqVHFKZFZUcVI0dUU0bkpuTGxkV1ZrRUNDWkxkMlZMRit4dGFtZXg3SXBpcmlTRFVwdnJwbjlscndHTUNIeXBwTUgrcHM2TElMc3VGR1VqMVhFT1hpcWJxU0hQVUtuQ2xwV1Y2OGtxdFVSVk5EWTRUTmFvY3lrb1llVFU1bmdHRVFhL1MxRG5uRTRBZVhNY0tqSFBBbUZWakNCRU5hZXlMVk5IZnIzcHg4eFVzdEo5NGhJcGZINEhLRS9lRGFBcks2bFN5VlZGYmR0MWd4VElWazNwcHBWbEZYaTRwRWhWQlRPYnF1b2hVODVNTFhuMWlhaHZVa0hKalNDTWMwMXRMRnZlVlZCeDBEb2RNNmpmdEN1N0RPdEl6WXhyYzBxcDFKR1AyYXlZRnoyR2I2SHZNck84Y25HdFY2R2ptM3VJbVNmRDJHcFdLNnVvd2JaR014RktRQ28xcE9NdGNNWEZwUnN0K2hYR29Bb21GM3NTVEJHZ1RnbGJCS1d3c1EzdFpxYVlTcDBaMUNpbVJEV0ZjQ0pVUFlKMDBCSTVGa0tZTm9pZnVReG1OODhTV1ZYV0xNYVVxcXFnQzBCbVFKUjZzazN1OU5DZjZqWUxYeEFmcXNZRWdWTEFoUlkyQXRndGZsWk5GbUZ5aHhkckxrQWRXbGs0RDg4TTJpeEh5ZXBJZGhNSHJHL2lSMVpHdHEwTUdwYkRiUlBZT1hlU1kxTTZOeTRac3R2R1NrdEsrWGJGUEFUajJEMzcxc2FQRXNBTVhoWHJzWjBrbS9YU3RraGhNeUJmc2E2dVhGWmUyVkNlK1lNcjErR0tnd3JReU5ZcTFWUnJCK0VpekFvdzZOc2ROS2N5VkVrWWVNNzN5czZxNGtBSHA2QmlGa2xUa0lyVkM1b1lWN3V6d09HQ3o0VUowU3RxMmxXTUp5NHd0YitSZXRMNnRaRmljbkptQnc1VWpDdlhYTVpWSlgyTVFrYmYrWE41RVdkNzhWejgvSkVzTVpUQmlLTnpzbTFpbkxSVVE3NEg0TmlkYXFJNjhqNXNBRmd4Y1J2ZUM3aWVMSlhmUVl4alpaMkNzaVdGZXdaWEptQklsWjF0ZHRyWDRoU3VhdGVLc28vUlpPdE9LVzJubXExb1R6ZUs2ZFJXQVd1Mk5SVmI0aHEwU1htMUd2dHVnSHJicjVJWHFtU2t0ZzVDdURFMk1TbFB3c1k1a05FMldwM0FxaVpiV1ZMQXhpQkYrMmlCWmJ1Tmo2TUI2cnNNTEM3Rnlhc2FZRHlvN0trb1B5RXR3M3BFTVhmUHZ4QUppMmpBUVFnanJ6MHJMSVpTV1psSW9OaHdkNXhLNEFSOW1ZTmpXQWFMcm51SW1KZUJWTjl6Qk9ST2JWdmJyK21UVGZGU0VKTFNSbkhvN2hFSm9JaThNRnFqeG12Z21GNVVSWno0ekxGZ1paOEN0dTJYN2dnVmNjS205Z1Z4SXNPSHF4WGdOTUtuRldaWW5mMWRCbk9oYXlYcTE3UXdGbFdXMDllTkt5VkpGbVhxYU9OR0E1YUNlZ01iSjNVVWtHWTFpYzNuS1dnanE4cWZWWUdRRzFnUnQ2cnM2MmE2SGlxcVVPcWRlc0s1Tm1YNG5Hb2ZKb2lFMWQwZEY5bFZWa3ZUMS9rRUVhYUNvWU93RnBjVmNvTE0rNzY2OVB4QzlyV3FrdEgwc1dVWWxkMFZDcHVCWi9zdFZSY0dneTlXWDIrVTFRdGhpOVN6QXFTeHpac3krT2lGekJZbnlTR1Y2R2t1NDRyRDhCQ09aQlYzQnZENStBS1JITndNRXNCNkV6SG5KcGtUQWVpVWxFR2tjRUNlQjZHRFpUcDVZRUpUbHZkcmtueFlqVGxsTWtmTnRYd0RqTTd1VmpLNUpYVVVuNDNycnFwSzJqeXRheEhXME01RzhEQzhydEhNWXM3S1NnZHVWUU1HVFlGcUZ2VlM2cmtEM3NESjQ2YWZkWUZ3b3ExMUFPS0NCTGh2d29VZ2M4SUdBTnljUjZrblpyZEpQZHN1eG55amZkM0ZvdlRsUk1kRWR0T2w1Q01WNUVIc1hRQmlzN1RPd3ZJRFphR2oyVm5wYmg3Y3BLNjNWd1lFTUx3cWJqenlsNjk5c2F3RkZrRjF5cWpVVTMxSGZDNnNXMVpGVkZ1WFZYVmd6OWtlRWF3MHlzMWxXZm0rYXpRQVFTV0EraEtZVmZzWmpQbmNBY1VCOW9JYXl5L1VaWFJOY2tER2ppNzdHc1didkJvNnRQcldQcU95VmtCVXErSU5lcXB6TmRZcy91MGlmaDVxbXBxSVcrMzNKVlNVY3dZNzBLTDRVOWxZZFU2bGp0U2xzN2xtZmk5ZzNZemVRZlZrYUdGYVYzT0RDbmFEMk44d3NFREZrbEUzUnpNM1pnaGRZa1dIc3N6cTcwRkllY25La1ZrdDhlek16UnE5YmtHdUtvalJMQlZTb2QzWTF5UHFLZ1lXN0pSUVRQVnl5NXhJWUxqT2d4Z1Q1MlJLSlVZMWRPcklpUmQ0ZnV0UXgvQTVBY1NtRWp6MHZGV3JrTHp2YldBdTlIT1diR2d4RmsxVk5UcG5CS2s2VGd3aXNJL0hjeFlYUDF1QVdPNzJVTEZsQlRxK2FTdTJWVFVzNmhyeE0yQ0YraEVvcjFWSUE5Wm1GVWFhYjFsU1NnWnNWczRzeHpIbFZMb0pIcjlINERoT05Ua0kxWEMwL3dpWTJOb1dBRzVSbG5IRm5xNm9MY2NwUWRkTXVKL08xN0pWQTVPSExpMEJxQ3p0cTdZMSsrdWNDZDk4cUxJOE1JSEJWL2NLanhRVG1lM2hGQlMzTXlDcW5Ec3V5bTJvODBIanZGRlR0clVSbU5hR0pzbVZhaEltalRzVVhLdFFaVEFWczdNdnY4LytmelVyWkFYY0xKNk00a29lNlhQMGI2U21XV05EenlVcFE4YmwrTHRXeDR0dXFaMzZjUllWM3l1VnhQTnd2SWlxaVFDU211N3NyZ1R6UjZua3locENhclh3RnkxdkdkNWlQMmNZMDZsRnI1TmpoaGcxWTYrTkIyOGZ0Yks4M3M4cmY3a0xKYkt3REZQYkxnMjVhMEFkWkpFaXFyNXBoaXhLTURsUlV0Y3NzcTFocmlMcUdvSCt6ZU5nVm05T2VtanNFVFY4SmRGME5IbmtJRnhXWTFPQjRZcnA3cnRXSjdOZ0FBQVBYa2xFUVZRM29OczVucGx5VmY4dTJGb0x1MUpySHZlYVpXUWpxQWtzaHRGYTJnenNTRzNacGtidmczSGFmRjlzbFBQbGxkakZsSzgwR3lzbThNcjRNUGhuZU5XRU5QR2pBSXBtaWxUUEFUZFRSVFhsQ0JZSFlBUXVQd0EzNnhJcFd0R040cTNZMk1oaUdzVXB1U1NubEVKUkQ4UG9yQzdDRllWdytGNTFxVGhnYWJ4c1R4V3pDR1kwWlNzYjNsZnFBeTBPUE5qTnk4eGlRUUtzSFlGUTJIQlpWdlZiQnVxM20xb1dLYWpxYW9uc002dVpVcjZDalhXTlowbDVFM2gzalVSbWE2a1AzTUpJaXkxTG0ra2FoUXE0MU4yaVpqYTVzanRsTFlOWkhackg2cVVHbTR2TWJEcDZSdzJDRm12dXlGa3JCY0N5TXRGcUJhRUNtc0hvSzlCWjJMQS9sSmNScVNhRHFuYVdiclpkR2F6M0RMZ0l2QmxuNHdvR3p0YnlKR3FzbHd4a2hoSHJUalRZRlhDdE9vS1M4dUxkb2ZWZEFiT3lsR1U2bmxZcFhXWnRzNG5YQnE2V3hKaXRNTm9rSFVKbmJuSnBsUW0rYUdwWTJhNUdNVjJRRDFoUnViQlBGS2R1bWY1T0hrTEh6MEY5bHVFNWtqQmpSYTBuRkU1Q1VHcUh3MzJNbWpaNnhrZ0lOVm5TbloxVlpTdEsycUtsUmFMbFFnSzd1VHE3SkZYSndNKzNTT0VLeWhaTkkrdEowSTVxTVl5OWsycUpEN2RWV2RxS1hhMENLTlIwQ2NqZytCMklZdTJmY0JaSlprTUZnTTExcjBYOTJ3aWxnaEZHZ3pWbmV4bHFCN3hMOW1TMjlTaVlVVlkyblhPWmpOQlJzeURzUVBSV1c1aHJaNFhjZEM0SFZXUmJqZ0pyNHNGb2ZLNVN6alE3cmhJMVVlYmRQZEViajZzcUl2VFpRWjV2YTA4ckFCc0FXMFV4ZVd5dEFrN0EyS0o5WnB4ekNpb0IyNFhGdFlBZVhZeHI2YW5TcWhMZ3BwRXFXYkd3THVuVGdyVitJaldsTDI5bGphQWw0RVFNR3NFcnA0YXBlWmlxdXdSWExYQXFPQ2VydTMybW15ZGM2b1dUU1dwRkFHZHplVEI4UlRIVk1FdGxNOTBDYmJRQ1loUGpxM2VnWXIxRkdkWUlRaml1REdaNXpaL0F6b2JLR095THh0aTZjNFJ3dHYyYW55V2xMSUNubExoeEpSWHQ2QTVlYkRCV0ZOT05ieFdaMmQwMm1udTRTOVlFQ3BlcHBWMXpTV1JCV3hIWXpWSXYxQ1hTb3V3cXFYM2pCQkJEWmRZUWJwVFFXNFpRbFM4cjVrSDRzdVNSbWcyKyszSk4xMHgxUGFBbUVrbXRZbEVkZUdwSkVNNmtPdUNxQ1IyMm9TdWpqNUlWMkhkVDB6ajVwckxLVGpYRkFQamRRbHlxN3hJQnhBUVA1eU1jekc0VnhBS3cwbjZpbFoyUUJjZTJwTHVsa3V4eHFub0l6RmZncXlxamlsOVMxVk53QnJGbWV5ZW9wczh5T2paVXliWmRmUzhDdWFUSUp1bXpzNXRPRGFOdExwRkRRL1BjSkd3ZUxobWVMMW5CMEtxaVVEU2NzaVVWRDg5RGkzSHRyS3RTVUx3M1JMaXlnWkQrN3NGOEpUT2JnWXNyR3ZETlVGUkdsMWl5MExsMVlrVWMyYUpZTW9nOTIwSThxVzZZRENnMU1xazBKSEpGS1hrYmdiUnJlSStxcFlOT1pIclZjRFViYTdwanNwaFNKTnRLNnVwZ1JOQVZvT1MwbXVnQmVONGJJWmdIaHVQWi9zMUVOYVg2S3NWcitZTnJoMU5iN2lwUjBQRTV6Yk5SZWdDYnJIUlV3NllmMDdkTEJKbDFmOEtCOWFzMlYxbk5xQXNsNjJMQkJoZWh3YWxlcmtIbUIxSkZJRVpLU0V1c2RsNUpRajFuSmxIWFNDRjM0MmdKOUNZR3JYZWxrbkpJWHFWUDhzRCtxdHBsQ1IzWEgycWZLcTB5Z01wK0tuVmtLeE5sWjhtMllrSWxWTWlDblhVd2w3cXpuQktTdlF6M20zUHQ2b1FiWE81YjVGaXhDaC9mSHhVUVcvQUVjSzZ6Q05xS1FuTDlzeXdxbUt1d3ZxU1l6VC9hUFZOTnBWeWh2UlcyMWFxY2lDc2pkV3ZCd0lMVXZoNVZ5Q3piV29DMXBKako2ODBDV3NsK3VkS0I2VDVSd0cxbWxvaG5scGJnNDdpejVVOWhhMEZHdG1STEZZQnRPOTl5OTdBcDB6K1pEVEFvZzZrU0xac01IZy9JRmtrZ3A2Q3B2VTJVMGNZVlNkbm1randCZE9tWGJ4VFdOV3p1SWJpcE1pb1Z4RWNrWkVvYWhTT2l5Mk0zSzBqY0MxTGhWRHdhcUcwWnZrY1dxQ25yRzRHSXh5a3JxbGJXZHc2TFF5QmFaUjhIbUxSSWhRV3NIc3dENDJaWFZMTmtmOWwrRmxXMEhWUTJsd0ZzQy9aMUZkemxRUjBLYVBmbytGZGZ1Ky9kd1ZSSUN1MUNHUjdBRUlpQWhjK0FaVUYwa09CYVB4bVVxZzRpNjR2UW5VNG5GRFlKOU56KzFmVlh2ZUg5cW1yK2tQSUx4OG9LY1JWL0JGYnhiRTBKTVQwa1NENHc2TC9sTlk4b2NzcWFnVmRVM0EzTWp4aHhjR3VxenNQSDRpcnBhb3cxcTZPeXJWanZwOU5wYzU5RTkxTGxkYm9ZVnpKV2RpbVdmQVcyU05FS2NEYVgyRm1CTExBL3VLeGxtaGg2MTNJczFVUlFBcGJLZnR0d3hMMDJxNk9ueDVwUXhTYlBvakFnK3Y1aEFuTjZMSFZSRFhJc3ZLdFJqaVMwcUpVeVpUQVhWYkFLODJFbEZKV2FRZFZvcVVDMVVudDdCVmFUUXVkTTZTdXFleGpRSk40KzBpY2F4di91dGJLdjgzRVRiVDhIOGdqY09LeE9KbWJVYTZPT1ZYaHQzZEZZNnJIdjlYb056RkxjZUVBMW84K3BLbTBMQUhQSFoycllLakZxMGhmWkZpeHNxSEpnRDNlRDVuK1Uwa2IxbUZqWGtuMmx2TVNTT3NORS9DZElBS0YwU3l0cTZ1ck9IVU41Z3dnNEdab3NnYm1nZ001dWNyYTJxclMySWcxY2JpQkJjeFl6Z3pVRE5MQ3ZMOEdiWlhOcDZPUnkzTG1TK0trODN6UklBSzZBMWlvS2EySTlOYXBJdWlVRmRmQzk3NjZQRlpVdHFVcjZLYldrK3paVTFhL1pySVhFenRyalRPZno3aHdLemlDZVhJYXJhSHRiWklNeisycEdnYXpDbXc0cVdBRnZFZGhvZFlwMFhxMHBWN0cxWVdZV2JPNHFoR3E0MitaOEJZdHJMV3ZsdU5QcFpBZWFGRlMxdnViUGdiZ3hzcWNwbkFhc3pCb3ZLYUZvRFE4Qkd0amZVT2w0TkFHMm5tUVYwNGZlSmd1bXZYMmZzclFFV1pnaEwwSm5WZFlrbjNET1pJZVJOODZScVBXQ21zdkdWcUVNUm53eFFBeHdTOEVNWW8zSXptWTIrQkNjTHA0TUtpdXl1aEltYW1sYlpGY05vTmw3dHArUkhkMThaalFJUkt5WGRGUmhOOTgvaHlLcXdYV05vN08xd2lhWG9ITjEwOFJFWlpXRXE2Z3JuSWZqemVnOGpkUmYxWEVMNGtrWGE1YkJqS3hvS2FsakJqZUhsVnhRNEdheWNwVzRsRE9BS3RuVHhIQXRPZnpPdFp3SEFNN3NxVlhrVjZ5dTZrYXAxbkhrWEtxV0YvNFhIcWplbk5LcUJqcFIzbDFjaDNFamcxK0VzZ2RRaHNkRzBCNEZNOXNXQVZXcHVBeWl3VFBsZVp4dDlWeVpWUzJxWGZSZVdxVEFpbHByOUFwb1dUanh5bWl0N053VjRKVHJpWnlPQTlCMGs3SEZmVUxvdXJtS1lIVm5SUXZxR0w1SE1IZHFGY1IycVdwbWNLNmVUd3gyZGlwV3J2aURpbHIrZktXcTNPV1JXZEhLd0E0ZXU4d2pjaGJlUnpGaWxxampaTjN1ZkNwZmtKMC9zY1ZwbllrNkwwUEk3N2x4ZFdDWjg3V2lXbTdCL0FHcXVRU251akdLc0I4Q0ptaUpxOHExcEtJVld5cU9pVEs2NnIxOEJOOHI3NC9BRTcxZmRDM3lQUzJNeGRPcG5FMXRsVnhEOUptVk9vZ2dOK3I0UGpBWFZGUGEzRWc1alZKR0ZWVUdOb2xIMjBHVnJVQjdCT3lTV3E2V3FZUWRXUjkycGNGTVlNd2NrYlNnQ0tDcUQ2N0RpaVd1MWc4TVFDOUJ5ZmNGcVcxTCtqTDcxNHFOQ3V6bm9TeHQwZGEyZ3RXTjFHOEYwQkswTk4wbnVpbWVsVUY5ZElkQWZqTzQ0VVQzQ2pRTG9VZUxISkZUTzNnbXBSdUlJT3Z3QlFDYnFOZW8zcXRaOWlGNnhWSzEzR1JsbzR6cWltcStDR2RUaVIxdVJZOG9xZ0UwMmhaQmE3OWtaWFBNcXV4UkhLbGEyc2FaV040bVJxWlVqMHZMQ0toa2pLbnFPUUhOdVNaVkpvS3ZBcVMxd3BFcXV2V0RDMUIyeXB3ckNQc1JNRVBWVE9ETUxKTUR2NnFlS1h3aTJKWVY1U3E0cUt5dmdHc0hDTGl1ajJqUjU5VjhnTXFTSjJGSlpSWEVIVlJIajNzRlByY3Q2T3BxbFcxR3BhdFFkdDBHdndmTTZuNjNJbnNHVkZoSkdhQnFncXFJVjZJc1hsbFpneVNQcTRSM2JudDN3aTVjditjTjJ5cVFMVzFUOTVLWVZzV1d0S2s0Y0I5VzUzV1FRZmxRWVI2V2w0SGFKWmp2VkUwRDV5dnErUktnWkNzNXFkQkVQNXNEOTRjQXZRTGxTZ05hU01BdEh4ODhCdU5RNDF6ZEZzWDMwektiY3MwTUxEL2loa3BRemwwd2lUcUtMVGZiS21DbXlZSUNuSzBJYmFpZUM0Q0c5aVN5TFE3Y0lNR1F3YXU2VEtvcTYwQXBsM1dONDBMWnBjYTFDS0tLOVZReXlJRW44dzBGOEY2Q0wyaDhvM2l4R3dDN3M3RVd6Q09xbWNBcFl4WUQ0anNBelZTMHNsMnQ5OHBBN3ZyS29waENWU29uYllwZ0g2bXZTbjI0cFRCVjRzZHRWM0J0TXE1azgyeStJQUR2VUowdUFsa0NWVHhJYVBtK1VOdS9xa1Y0RjFUekhYQ0dyWElBcUl0Qkt5cHFLOTlWdEFPVnM2NE80T2JYN3BITFZDcFlIY1Jtd3ZMUjdUdllBS0JCTjU4TEdWekR1RnoraFFiV2duY1F5Q1pBaytWYnNQU291ZjkzMjYxaVpnbWZDcHdSYkF2cW1TcXJpVTJQd2hqYW9PeVlxdEllZ1ZYVmlUc215dGE2Ykd5U3BZM2d5UnJwSXlBZWFXRER4dHBzWHdLeWFsTURLTlA3WUJYTXFFc2tVc2kydUM4Rk5BUHhBS1RWZlQxbzZWek0wRTBqRisxcldjVXVIdmR5Zzd2Z29GcGxYOEhwdkhwTUNPTVJVUEh6WmtJbnNxbEZLTlgvRUlPNTJFMFN4U3pPd29iMlZtUkxXNUQxWElVMHJiZ00xQXpXZ3lDN2ZlOEc3eFVBSy90YUVCYXQ3bHVxdHlQN0Vtc2FKUU9qNUYrbXJuWmZDdVlDZkJVQVd3U2h5ZDZwTVkvdkFIRzFVcU9ZcGJJL2d5NVQwQ01LbStVTzNnRnVDODVkZ2ZEVmVndVBEZklUcklCTHNMcmNnZGgzQ0ZnRlpqYUtKNEl2M0Y4QU5FcXZ1eFIxdFZLT2dMb0NhMWp4Ym9CQWtqNnY3ai9pY0ZiQTdmNHJmUm5RRExSVmlHMTNpMHZxQlFyWVZxQmJBRFpUMFpwaUhvU3p2UXBvcEtJRlMzc0UxSGZCV2xIWGQwSDdMbkFycXZvdWdNdGxqSEJnWm5oM0Vvei9CS2pMTUw0WjJBcTAraEVKcjlqYVZVQmJ2TnpDSVVpcm9DN0FXbW1GdzRvNUFLM010QjVWeXBaTVNGZ3MwNUp5R1Z3bHdCcXNFR0FBYTJaVTFDalVleFhHc0U0cktyaWlsQnZGek9LS28zQXVBcm9FNlFGUVUzdThZcE5Yd1M1aysxVFp0NVVyd291TjRLaVVFdytrM1pXRHAxUlhITlJxWGIyMVRzMzk5NDV5WlNnM1ZuWkZOUTlDRjNYZVp5cjVEZ0JYS2l3Q01hMk14ZVREWVhnUDFGc2Y5UU5LWmMwazgxUkprM3I2RVEzckNtQlZ5TEw3NUVqWjFwSVZESG9GdGlPQUhvQjBCZFRWeWxxQnNLS0tTK0FlQlhKVkxZK0NYQVN1R3ZPL0F1cTdHdUVqRGZHS2cxb0thMXovZG1taTlJOVNVR05obDBBdGZ1bEhBYXdvWXJuU2ttTlhBVnVHRWhyRVZYdlVGK0E1Q3QyUHFOT2pEZXR5bmE0Q21lVW9sbWVYTE40QXE3QzVTajEwUTd5amdsK3Q2Q054U1JIbUk1WCtDcHdyZVlCM1FmZHFuYTRxMjFLZEJ1YzRHb1pzbjQ5Wk9PaVZpbndIcUs5V3pqdmdld2VFaDJBVTUrdnR4WjlDZDlXcWtoNDlWMThFNW9qNnZWeW4wUlN0QXlHSU81ZWRYUktkNUIwVkdWWHEyeXIzeFlwKzVVdCtDNFFKNFAxTjMzOXBRTWpSZWpqNHZiL0RjcjZyUWMzTy8wcmptdFpwZVlDQmlDSGZDZW1SYk5oYksvcE5VUGMzd2ZLeTVmMkQ3T2xMMy91UGh2ZS9vVTRUMEY4ZitWTk0ydnlvaXYwaksrS0hRZmRIcSswYm5jejRvejczLytZNkxiS3cxby81QjdlT2YxUmwvMGR1OUI5dG4vOWJ2cmYvait2MGg2dHRuMnRwL3IvNDgxOXk0L3p2NTM5MXV2enpmd0RpZno2cGhUMU1QZ0FBQUFCSlJVNUVya0pnZ2c9PSIpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7ZGlyZWN0aW9uOmx0cjtoZWlnaHQ6MTMwcHg7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLmNwLWFkZC1jb2xvci1idXR0b24tY2xhc3N7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZTttYXJnaW46M3B4IC0zcHg7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlfS5jb2xvci1waWNrZXIgLmNwLWFkZC1jb2xvci1idXR0b24tY2xhc3M6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY29sb3ItcGlja2VyIC5jcC1hZGQtY29sb3ItYnV0dG9uLWNsYXNzOmRpc2FibGVke2NvbG9yOiM5OTk7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jb2xvci1waWNrZXIgLmNwLWFkZC1jb2xvci1idXR0b24tY2xhc3M6ZGlzYWJsZWQ6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmNvbG9yLXBpY2tlciAuY3AtcmVtb3ZlLWNvbG9yLWJ1dHRvbi1jbGFzc3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czo1MCU7Ym94LXNoYWRvdzoxcHggMXB4IDVweCAjMzMzO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwcHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTVweDt0ZXh0LWFsaWduOmNlbnRlcjt0b3A6LTVweDt3aWR0aDoxMHB4fS5jb2xvci1waWNrZXIgLmNwLXJlbW92ZS1jb2xvci1idXR0b24tY2xhc3M6YmVmb3Jle2JvdHRvbTozLjVweDtjb250ZW50OiJ4IjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTBweDtwb3NpdGlvbjpyZWxhdGl2ZX0nXSxlbmNhcHN1bGF0aW9uOjJ9KSxoMy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6ZzN9XSxoMy5wcm9wRGVjb3JhdG9ycz17ZGlhbG9nRWxlbWVudDpbe3R5cGU6WmEsYXJnczpbImRpYWxvZ1BvcHVwIix7c3RhdGljOiEwfV19XSxodWVTbGlkZXI6W3t0eXBlOlphLGFyZ3M6WyJodWVTbGlkZXIiLHtzdGF0aWM6ITB9XX1dLGFscGhhU2xpZGVyOlt7dHlwZTpaYSxhcmdzOlsiYWxwaGFTbGlkZXIiLHtzdGF0aWM6ITB9XX1dLGhhbmRsZUVzYzpbe3R5cGU6d3ksYXJnczpbImRvY3VtZW50OmtleXVwLmVzYyIsWyIkZXZlbnQiXV19XSxoYW5kbGVFbnRlcjpbe3R5cGU6d3ksYXJnczpbImRvY3VtZW50OmtleXVwLmVudGVyIixbIiRldmVudCJdXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGgzLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImNvbG9yLXBpY2tlciIsdGVtcGxhdGU6JzxkaXYgI2RpYWxvZ1BvcHVwIGNsYXNzPSJjb2xvci1waWNrZXIiIFtjbGFzcy5vcGVuXT0ic2hvdyIgW3N0eWxlLmRpc3BsYXldPSIhc2hvdyA/IFwnbm9uZVwnIDogXCdibG9ja1wnIiBbc3R5bGUudmlzaWJpbGl0eV09ImhpZGRlbiA/IFwnaGlkZGVuXCcgOiBcJ3Zpc2libGVcJyIgW3N0eWxlLnRvcC5weF09InRvcCIgW3N0eWxlLmxlZnQucHhdPSJsZWZ0IiBbc3R5bGUucG9zaXRpb25dPSJwb3NpdGlvbiIgW3N0eWxlLmhlaWdodC5weF09ImNwSGVpZ2h0IiBbc3R5bGUud2lkdGgucHhdPSJjcFdpZHRoIiAoY2xpY2spPSIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkiPlxuICA8ZGl2ICpuZ0lmPSJjcERpYWxvZ0Rpc3BsYXk9PVwncG9wdXBcJyIgY2xhc3M9ImFycm93IGFycm93LXt7Y3BVc2VQb3NpdGlvbn19IiBbc3R5bGUudG9wLnB4XT0iYXJyb3dUb3AiPjwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9IihjcENvbG9yTW9kZSB8fMKgMSkgPT09IDEiIGNsYXNzPSJzYXR1cmF0aW9uLWxpZ2h0bmVzcyIgW3NsaWRlcl0gW3JnWF09IjEiIFtyZ1ldPSIxIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09Imh1ZVNsaWRlckNvbG9yIiAobmV3VmFsdWUpPSJvbkNvbG9yQ2hhbmdlKCRldmVudCkiIChkcmFnU3RhcnQpPSJvbkRyYWdTdGFydChcJ3NhdHVyYXRpb24tbGlnaHRuZXNzXCcpIiAoZHJhZ0VuZCk9Im9uRHJhZ0VuZChcJ3NhdHVyYXRpb24tbGlnaHRuZXNzXCcpIj5cbiAgICA8ZGl2IGNsYXNzPSJjdXJzb3IiIFtzdHlsZS50b3AucHhdPSJzbGlkZXI/LnYiIFtzdHlsZS5sZWZ0LnB4XT0ic2xpZGVyPy5zIj48L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz0iaHVlLWFscGhhIGJveCI+XG4gICAgPGRpdiBjbGFzcz0ibGVmdCI+XG4gICAgICA8ZGl2IGNsYXNzPSJzZWxlY3RlZC1jb2xvci1iYWNrZ3JvdW5kIj48L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0ZWQtY29sb3IiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT0ic2VsZWN0ZWRDb2xvciI+PC9kaXY+XG5cbiAgICAgIDxidXR0b24gKm5nSWY9ImNwQWRkQ29sb3JCdXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Int7Y3BBZGRDb2xvckJ1dHRvbkNsYXNzfX0iIFtkaXNhYmxlZF09ImNwUHJlc2V0Q29sb3JzICYmIGNwUHJlc2V0Q29sb3JzLmxlbmd0aCA+PSBjcE1heFByZXNldENvbG9yc0xlbmd0aCIgKGNsaWNrKT0ib25BZGRQcmVzZXRDb2xvcigkZXZlbnQsIHNlbGVjdGVkQ29sb3IpIj5cbiAgICAgICAge3tjcEFkZENvbG9yQnV0dG9uVGV4dH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9InJpZ2h0Ij5cbiAgICAgIDxkaXYgKm5nSWY9ImNwQWxwaGFDaGFubmVsPT09XCdkaXNhYmxlZFwnIiBzdHlsZT0iaGVpZ2h0OiAxNnB4OyI+PC9kaXY+XG5cbiAgICAgIDxkaXYgI2h1ZVNsaWRlciBjbGFzcz0iaHVlIiBbc2xpZGVyXSBbcmdYXT0iMSIgW3N0eWxlLmRpc3BsYXldPSIoY3BDb2xvck1vZGUgfHzCoDEpID09PSAxID8gXCdibG9ja1wnIDogXCdub25lXCciIChuZXdWYWx1ZSk9Im9uSHVlQ2hhbmdlKCRldmVudCkiIChkcmFnU3RhcnQpPSJvbkRyYWdTdGFydChcJ2h1ZVwnKSIgKGRyYWdFbmQpPSJvbkRyYWdFbmQoXCdodWVcJykiPlxuICAgICAgICA8ZGl2IGNsYXNzPSJjdXJzb3IiIFtzdHlsZS5sZWZ0LnB4XT0ic2xpZGVyPy5oIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICN2YWx1ZVNsaWRlciBjbGFzcz0idmFsdWUiIFtzbGlkZXJdIFtyZ1hdPSIxIiBbc3R5bGUuZGlzcGxheV09IihjcENvbG9yTW9kZSB8fMKgMSkgPT09IDIgPyBcJ2Jsb2NrXCc6IFwnbm9uZVwnIiAobmV3VmFsdWUpPSJvblZhbHVlQ2hhbmdlKCRldmVudCkiIChkcmFnU3RhcnQpPSJvbkRyYWdTdGFydChcJ3ZhbHVlXCcpIiAoZHJhZ0VuZCk9Im9uRHJhZ0VuZChcJ3ZhbHVlXCcpIj5cbiAgICAgICAgPGRpdiBjbGFzcz0iY3Vyc29yIiBbc3R5bGUucmlnaHQucHhdPSJzbGlkZXI/LnYiPjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgI2FscGhhU2xpZGVyIGNsYXNzPSJhbHBoYSIgW3NsaWRlcl0gW3JnWF09IjEiIFtzdHlsZS5kaXNwbGF5XT0iY3BBbHBoYUNoYW5uZWwgPT09IFwnZGlzYWJsZWRcJyA/IFwnbm9uZVwnIDogXCdibG9ja1wnIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09ImFscGhhU2xpZGVyQ29sb3IiIChuZXdWYWx1ZSk9Im9uQWxwaGFDaGFuZ2UoJGV2ZW50KSIgKGRyYWdTdGFydCk9Im9uRHJhZ1N0YXJ0KFwnYWxwaGFcJykiIChkcmFnRW5kKT0ib25EcmFnRW5kKFwnYWxwaGFcJykiPlxuICAgICAgICA8ZGl2IGNsYXNzPSJjdXJzb3IiIFtzdHlsZS5sZWZ0LnB4XT0ic2xpZGVyPy5hIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPSIhY3BEaXNhYmxlSW5wdXQgJiYgKGNwQ29sb3JNb2RlIHx8wqAxKSA9PT0gMSIgY2xhc3M9ImNteWstdGV4dCIgW3N0eWxlLmRpc3BsYXldPSJmb3JtYXQgIT09IDMgPyBcJ25vbmVcJyA6IFwnYmxvY2tcJyI+XG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjEwMCIgW3RleHRdIFtyZ109IjEwMCIgW3ZhbHVlXT0iY215a1RleHQ/LmMiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25DeWFuSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjEwMCIgW3RleHRdIFtyZ109IjEwMCIgW3ZhbHVlXT0iY215a1RleHQ/Lm0iIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25NYWdlbnRhSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjEwMCIgW3RleHRdIFtyZ109IjEwMCIgW3ZhbHVlXT0iY215a1RleHQ/LnkiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25ZZWxsb3dJbnB1dCgkZXZlbnQpIiAvPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMTAwIiBbdGV4dF0gW3JnXT0iMTAwIiBbdmFsdWVdPSJjbXlrVGV4dD8uayIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkJsYWNrSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCAqbmdJZj0iY3BBbHBoYUNoYW5uZWwhPT1cJ2Rpc2FibGVkXCciIHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0rKFtcXC4sXVswLTldezEsMn0pPyIgbWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMSIgW3RleHRdIFtyZ109IjEiIFt2YWx1ZV09ImNteWtUZXh0Py5hIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uQWxwaGFJbnB1dCgkZXZlbnQpIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgIDxkaXYgY2xhc3M9ImJveCI+XG4gICAgICA8ZGl2PkM8L2Rpdj48ZGl2Pk08L2Rpdj48ZGl2Plk8L2Rpdj48ZGl2Pks8L2Rpdj48ZGl2ICpuZ0lmPSJjcEFscGhhQ2hhbm5lbCE9PVwnZGlzYWJsZWRcJyIgPkE8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj0iIWNwRGlzYWJsZUlucHV0ICYmIChjcENvbG9yTW9kZSB8fMKgMSkgPT09IDEgIiBjbGFzcz0iaHNsYS10ZXh0IiBbc3R5bGUuZGlzcGxheV09ImZvcm1hdCAhPT0gMiA/IFwnbm9uZVwnIDogXCdibG9ja1wnIj5cbiAgICA8ZGl2IGNsYXNzPSJib3giPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMzYwIiBbdGV4dF0gW3JnXT0iMzYwIiBbdmFsdWVdPSJoc2xhVGV4dD8uaCIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkh1ZUlucHV0KCRldmVudCkiIC8+XG4gICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSoiIG1pbj0iMCIgbWF4PSIxMDAiIFt0ZXh0XSBbcmddPSIxMDAiIFt2YWx1ZV09ImhzbGFUZXh0Py5zIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uU2F0dXJhdGlvbklucHV0KCRldmVudCkiIC8+XG4gICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSoiIG1pbj0iMCIgbWF4PSIxMDAiIFt0ZXh0XSBbcmddPSIxMDAiIFt2YWx1ZV09ImhzbGFUZXh0Py5sIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uTGlnaHRuZXNzSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCAqbmdJZj0iY3BBbHBoYUNoYW5uZWwhPT1cJ2Rpc2FibGVkXCciIHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0rKFtcXC4sXVswLTldezEsMn0pPyIgbWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMSIgW3RleHRdIFtyZ109IjEiIFt2YWx1ZV09ImhzbGFUZXh0Py5hIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uQWxwaGFJbnB1dCgkZXZlbnQpIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxkaXY+SDwvZGl2PjxkaXY+UzwvZGl2PjxkaXY+TDwvZGl2PjxkaXYgKm5nSWY9ImNwQWxwaGFDaGFubmVsIT09XCdkaXNhYmxlZFwnIj5BPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9IiFjcERpc2FibGVJbnB1dCAmJiAoY3BDb2xvck1vZGUgfHzCoDEpID09PSAxICIgW3N0eWxlLmRpc3BsYXldPSJmb3JtYXQgIT09IDEgPyBcJ25vbmVcJyA6IFwnYmxvY2tcJyIgY2xhc3M9InJnYmEtdGV4dCI+XG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjI1NSIgW3RleHRdIFtyZ109IjI1NSIgW3ZhbHVlXT0icmdiYVRleHQ/LnIiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25SZWRJbnB1dCgkZXZlbnQpIiAvPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMjU1IiBbdGV4dF0gW3JnXT0iMjU1IiBbdmFsdWVdPSJyZ2JhVGV4dD8uZyIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkdyZWVuSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjI1NSIgW3RleHRdIFtyZ109IjI1NSIgW3ZhbHVlXT0icmdiYVRleHQ/LmIiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25CbHVlSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCAqbmdJZj0iY3BBbHBoYUNoYW5uZWwhPT1cJ2Rpc2FibGVkXCciIHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0rKFtcXC4sXVswLTldezEsMn0pPyIgbWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMSIgW3RleHRdIFtyZ109IjEiIFt2YWx1ZV09InJnYmFUZXh0Py5hIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uQWxwaGFJbnB1dCgkZXZlbnQpIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxkaXY+UjwvZGl2PjxkaXY+RzwvZGl2PjxkaXY+QjwvZGl2PjxkaXYgKm5nSWY9ImNwQWxwaGFDaGFubmVsIT09XCdkaXNhYmxlZFwnIiA+QTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPSIhY3BEaXNhYmxlSW5wdXQgJiYgKGNwQ29sb3JNb2RlIHx8wqAxKSA9PT0gMSIgY2xhc3M9ImhleC10ZXh0IiBbY2xhc3MuaGV4LWFscGhhXT0iY3BBbHBoYUNoYW5uZWw9PT1cJ2ZvcmNlZFwnIlxuICAgIFtzdHlsZS5kaXNwbGF5XT0iZm9ybWF0ICE9PSAwID8gXCdub25lXCcgOiBcJ2Jsb2NrXCciPlxuICAgIDxkaXYgY2xhc3M9ImJveCI+XG4gICAgICA8aW5wdXQgW3RleHRdIFt2YWx1ZV09ImhleFRleHQiIChibHVyKT0ib25IZXhJbnB1dChudWxsKSIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkhleElucHV0KCRldmVudCkiLz5cbiAgICAgIDxpbnB1dCAqbmdJZj0iY3BBbHBoYUNoYW5uZWw9PT1cJ2ZvcmNlZFwnIiB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKyhbXFwuLF1bMC05XXsxLDJ9KT8iIG1pbj0iMCIgbWF4PSIxIiBzdGVwPSIwLjEiIFt0ZXh0XSBbcmddPSIxIiBbdmFsdWVdPSJoZXhBbHBoYSIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkFscGhhSW5wdXQoJGV2ZW50KSIvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxkaXY+SGV4PC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPSJjcEFscGhhQ2hhbm5lbD09PVwnZm9yY2VkXCciPkE8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj0iIWNwRGlzYWJsZUlucHV0ICYmIChjcENvbG9yTW9kZSB8fMKgMSkgPT09IDIiIGNsYXNzPSJ2YWx1ZS10ZXh0Ij5cbiAgICA8ZGl2IGNsYXNzPSJib3giPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMTAwIiBbdGV4dF0gW3JnXT0iMTAwIiBbdmFsdWVdPSJoc2xhVGV4dD8ubCIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvblZhbHVlSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCAqbmdJZj0iY3BBbHBoYUNoYW5uZWwhPT1cJ2Rpc2FibGVkXCciIHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0rKFtcXC4sXVswLTldezEsMn0pPyIgbWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMSIgIFt0ZXh0XSBbcmddPSIxIiBbdmFsdWVdPSJoc2xhVGV4dD8uYSIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkFscGhhSW5wdXQoJGV2ZW50KSIgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9ImJveCI+XG4gICAgICA8ZGl2PlY8L2Rpdj48ZGl2PkE8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj0iIWNwRGlzYWJsZUlucHV0ICYmIChjcENvbG9yTW9kZSB8fMKgMSkgPT09IDEiIGNsYXNzPSJ0eXBlLXBvbGljeSI+XG4gICAgPHNwYW4gY2xhc3M9InR5cGUtcG9saWN5LWFycm93IiAoY2xpY2spPSJvbkZvcm1hdFRvZ2dsZSgtMSkiPjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz0idHlwZS1wb2xpY3ktYXJyb3ciIChjbGljayk9Im9uRm9ybWF0VG9nZ2xlKDEpIj48L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9ImNwUHJlc2V0Q29sb3JzPy5sZW5ndGggfHwgY3BBZGRDb2xvckJ1dHRvbiIgY2xhc3M9InByZXNldC1hcmVhIj5cbiAgICA8aHI+XG5cbiAgICA8ZGl2IGNsYXNzPSJwcmVzZXQtbGFiZWwiPnt7Y3BQcmVzZXRMYWJlbH19PC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPSJjcFByZXNldENvbG9ycz8ubGVuZ3RoIiBjbGFzcz0ie3tjcFByZXNldENvbG9yc0NsYXNzfX0iPlxuICAgICAgPGRpdiAqbmdGb3I9ImxldCBjb2xvciBvZiBjcFByZXNldENvbG9ycyIgY2xhc3M9InByZXNldC1jb2xvciIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09ImNvbG9yIiAoY2xpY2spPSJzZXRDb2xvckZyb21TdHJpbmcoY29sb3IpIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9ImNwQWRkQ29sb3JCdXR0b24iIGNsYXNzPSJ7e2NwUmVtb3ZlQ29sb3JCdXR0b25DbGFzc319IiAoY2xpY2spPSJvblJlbW92ZVByZXNldENvbG9yKCRldmVudCwgY29sb3IpIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9IiFjcFByZXNldENvbG9ycz8ubGVuZ3RoICYmIGNwQWRkQ29sb3JCdXR0b24iIGNsYXNzPSJ7e2NwUHJlc2V0RW1wdHlNZXNzYWdlQ2xhc3N9fSI+e3tjcFByZXNldEVtcHR5TWVzc2FnZX19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9ImNwT0tCdXR0b24gfHwgY3BDYW5jZWxCdXR0b24iIGNsYXNzPSJidXR0b24tYXJlYSI+XG4gICAgPGJ1dHRvbiAqbmdJZj0iY3BDYW5jZWxCdXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Int7Y3BDYW5jZWxCdXR0b25DbGFzc319IiAoY2xpY2spPSJvbkNhbmNlbENvbG9yKCRldmVudCkiPnt7Y3BDYW5jZWxCdXR0b25UZXh0fX08L2J1dHRvbj5cblxuICAgIDxidXR0b24gKm5nSWY9ImNwT0tCdXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Int7Y3BPS0J1dHRvbkNsYXNzfX0iIChjbGljayk9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSI+e3tjcE9LQnV0dG9uVGV4dH19PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4nLGVuY2Fwc3VsYXRpb246SG4uTm9uZSxzdHlsZXM6WycuY29sb3ItcGlja2Vyey1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgIzc3NztjdXJzb3I6ZGVmYXVsdDtoZWlnaHQ6YXV0bztwb3NpdGlvbjphYnNvbHV0ZTt1c2VyLXNlbGVjdDpub25lO3dpZHRoOjIzMHB4O3otaW5kZXg6MTAwMH0uY29sb3ItcGlja2VyICp7Ym94LXNpemluZzpib3JkZXItYm94O2ZvbnQtc2l6ZToxMXB4O21hcmdpbjowfS5jb2xvci1waWNrZXIgaW5wdXR7Y29sb3I6IzAwMDtmb250LXNpemU6MTNweDtoZWlnaHQ6MjZweDttaW4td2lkdGg6MDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDowfS5jb2xvci1waWNrZXIgaW5wdXQ6LW1vei1zdWJtaXQtaW52YWxpZCwuY29sb3ItcGlja2VyIGlucHV0Oi1tb3otdWktaW52YWxpZCwuY29sb3ItcGlja2VyIGlucHV0OmludmFsaWR7Ym94LXNoYWRvdzpub25lfS5jb2xvci1waWNrZXIgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sLmNvbG9yLXBpY2tlciBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0uY29sb3ItcGlja2VyIC5hcnJvd3tib3JkZXItc3R5bGU6c29saWQ7aGVpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDt6LWluZGV4Ojk5OTk5OX0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy10b3B7Ym9yZGVyLWNvbG9yOiM3NzcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOjEwcHggNXB4O2xlZnQ6OHB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWJvdHRvbXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzc3Nztib3JkZXItd2lkdGg6MTBweCA1cHg7bGVmdDo4cHg7dG9wOi0yMHB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWxlZnQtdG9wLC5jb2xvci1waWNrZXIgLmFycm93LmFycm93LXRvcC1sZWZ0e2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNzc3O2JvcmRlci13aWR0aDo1cHggMTBweDtib3R0b206OHB4O3JpZ2h0Oi0yMXB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LXJpZ2h0LXRvcCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy10b3AtcmlnaHR7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICM3NzcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOjVweCAxMHB4O2JvdHRvbTo4cHg7bGVmdDotMjBweH0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1ib3R0b20tbGVmdCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1sZWZ0LC5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWxlZnQtYm90dG9te2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNzc3O2JvcmRlci13aWR0aDo1cHggMTBweDtyaWdodDotMjFweDt0b3A6OHB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWJvdHRvbS1yaWdodCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1yaWdodCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1yaWdodC1ib3R0b217Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICM3NzcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOjVweCAxMHB4O2xlZnQ6LTIwcHg7dG9wOjhweH0uY29sb3ItcGlja2VyIC5jdXJzb3J7Ym9yZGVyOjJweCBzb2xpZCAjMjIyO2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpkZWZhdWx0O2hlaWdodDoxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjE2cHh9LmNvbG9yLXBpY2tlciAuYm94e2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjRweCA4cHh9LmNvbG9yLXBpY2tlciAubGVmdHtwYWRkaW5nOjE2cHggOHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5jb2xvci1waWNrZXIgLnJpZ2h0e2ZsZXg6MSAxIGF1dG87cGFkZGluZzoxMnB4IDhweH0uY29sb3ItcGlja2VyIC5idXR0b24tYXJlYXtwYWRkaW5nOjAgMTZweCAxNnB4O3RleHQtYWxpZ246cmlnaHR9LmNvbG9yLXBpY2tlciAuYnV0dG9uLWFyZWEgYnV0dG9ue21hcmdpbi1sZWZ0OjhweH0uY29sb3ItcGlja2VyIC5wcmVzZXQtYXJlYXtwYWRkaW5nOjRweCAxNXB4fS5jb2xvci1waWNrZXIgLnByZXNldC1hcmVhIC5wcmVzZXQtbGFiZWx7Y29sb3I6IzU1NTtmb250LXNpemU6MTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAucHJlc2V0LWFyZWEgLnByZXNldC1jb2xvcntib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7Ym9yZGVyLXJhZGl1czoyNSU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjE4cHg7bWFyZ2luOjRweCA2cHggOHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjE4cHh9LmNvbG9yLXBpY2tlciAucHJlc2V0LWFyZWEgLnByZXNldC1lbXB0eS1tZXNzYWdle2ZvbnQtc3R5bGU6aXRhbGljO21hcmdpbi1ib3R0b206OHB4O21hcmdpbi10b3A6NHB4O21pbi1oZWlnaHQ6MThweDt0ZXh0LWFsaWduOmNlbnRlcn0uY29sb3ItcGlja2VyIC5oZXgtdGV4dHtmb250LXNpemU6MTFweDtwYWRkaW5nOjRweCA4cHg7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC5oZXgtdGV4dCAuYm94e3BhZGRpbmc6MCAyNHB4IDhweCA4cHh9LmNvbG9yLXBpY2tlciAuaGV4LXRleHQgLmJveCBkaXZ7Y2xlYXI6bGVmdDtjb2xvcjojNTU1O2ZsZXg6MSAxIGF1dG87ZmxvYXQ6bGVmdDt0ZXh0LWFsaWduOmNlbnRlcn0uY29sb3ItcGlja2VyIC5oZXgtdGV4dCAuYm94IGlucHV0e2JvcmRlcjoxcHggc29saWQgI2E5YTlhOTtmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MXB4fS5jb2xvci1waWNrZXIgLmhleC1hbHBoYSAuYm94IGRpdjpmaXJzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5oZXgtYWxwaGEgLmJveCBpbnB1dDpmaXJzdC1jaGlsZHtmbGV4LWdyb3c6MzttYXJnaW4tcmlnaHQ6OHB4fS5jb2xvci1waWNrZXIgLmNteWstdGV4dCwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0LC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHR7Zm9udC1zaXplOjExcHg7cGFkZGluZzo0cHggOHB4O3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3gsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3gsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3h7cGFkZGluZzowIDI0cHggOHB4IDhweH0uY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0IC5ib3h7cGFkZGluZzowIDhweCA4cHh9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3ggZGl2LC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94IGRpdiwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQgLmJveCBkaXYsLmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94IGRpdntjb2xvcjojNTU1O2ZsZXg6MSAxIGF1dG87bWFyZ2luLXJpZ2h0OjhweDt0ZXh0LWFsaWduOmNlbnRlcn0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQgLmJveCBkaXY6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQgLmJveCBkaXY6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQgLmJveCBkaXY6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjB9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3ggaW5wdXQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3ggaW5wdXQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggaW5wdXQsLmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94IGlucHV0e2JvcmRlcjoxcHggc29saWQgI2E5YTlhOTtmbGV4OjE7ZmxvYXQ6bGVmdDttYXJnaW46MCA4cHggMCAwO3BhZGRpbmc6MXB4fS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94IGlucHV0Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3ggaW5wdXQ6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQgLmJveCBpbnB1dDpsYXN0LWNoaWxkLC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHQgLmJveCBpbnB1dDpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5jb2xvci1waWNrZXIgLmh1ZS1hbHBoYXthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbTozcHh9LmNvbG9yLXBpY2tlciAuaHVle2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUpZQUFBQVFDQVlBQUFEMDZJWW5BQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVINEFJV0R3a1VGV2JDQ0FBQUFGeEpSRUZVYU43dDBrRUtnMEFRQU1FMng4My9uMnF1NXFDZ0QxaURoQ29ZZHBuYlFDOWJiWTFxVk8vanZjNmszYWQ5MXM3LzdGMS9jc2dQcnVqdVExN0JEWVNGc0JBV3dnSmhJU3lFQmNKQ1dBZ0xoSVd3RUJZSWkyZjdBci8xVENnRkgyWDlBQUFBQUVsRlRrU3VRbUNDIik7ZGlyZWN0aW9uOmx0cn0uY29sb3ItcGlja2VyIC5odWUsLmNvbG9yLXBpY2tlciAudmFsdWV7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MTZweDttYXJnaW4tYm90dG9tOjE2cHg7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC52YWx1ZXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFKWUFBQUFRQ0FZQUFBRDA2SVluQUFBQ1RrbEVRVlI0MnUzU1lVY3JBQmhBNFUyU2ttUkpNbVdTSmtsS0ppV1pacEtVSkpza0tVbWFURkltS1pPVXpNeVNwR1JtbGlSTkppbEpTcEtTSkV0bVNwSXBtV21TZE83MzYvNkQreDdPUDNnVUNvV0N2MWNxbFNRbEpaR2NuRXhLU2dxcHFhbWtwYVdSbnA1T1JrWUdtWm1acUZRcXNyS3l5TTdPSmljbmg5emNYTlJxTlhsNWVlVG41NlBSYUNnb0tLQ3dzSkNpb2lLMFdpM0Z4Y1dVbEpSUVdscEtXVmtaNWVYbFZGUlVVRmxaaVU2bm82cXFpdXJxYW1wcWFxaXRyYVd1cmc2OVhrOTlmVDBHZ3dHajBVaERRd09OalkwME5UWFIzTnhNUzBzTHJhMnR0TFcxMGQ3ZWpzbGt3bXcyMDlIUlFXZG5KMTFkWFhSM2Q5UFQwME52Ynk5OWZYMzA5L2N6TUREQTRPQWdGb3VGb2FFaHJGWXJ3OFBEakl5TU1EbzZ5dGpZR0RhYmpmSHhjU1ltSnBpY25HUnFhZ3E3M2M3MDlEUXpNelBNenM0eU56ZkgvUHc4RG9jRHA5T0p5K1hDN1hhenNMREE0dUlpUzB0TExDOHZzN0t5d3VycUttdHJhM2c4SHJ4ZUx6NmZENy9mei9yNk9oc2JHMnh1YnJLMXRjWDI5amFCUUlDZG5SMkN3U0M3dTd2czdlMnh2Ny9Qd2NFQmg0ZUhIQjBkY1h4OHpNbkpDYWVucDV5ZG5YRitmczdGeFFXWGw1ZGNYVjF4ZlgzTnpjME50N2UzM04zZEVRcUZ1TCsvNStIaGdYQTRUQ1FTNGZIeGthZW5KNTZmbjNsNWVlSDE5WlZvTk1yYjJ4dnY3Kzk4Zkh3UWk4V0l4K044Zm42U1NDVDQrdnJpKy91Ym41OGZmbjkvK1ZjS2dTV3dCSmJBRWxnQ1MyQUpMSUVsc0FTV3dCSllBa3RnQ1N5QkpiQUVsc0FTV0FKTFlBa3NnU1d3QkpiQUVsZ0NTMkFKTElFbHNQNC9XSDhBbUo1WjZqSFM0aDhBQUFBQVNVVk9SSzVDWUlJPSIpO2RpcmVjdGlvbjpydGx9LmNvbG9yLXBpY2tlciAuYWxwaGF7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSllBQUFBUUNBWUFBQUQwNklZbkFBQUFCbUpMUjBRQS93RC9BUCtndmFlVEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFBQjNSSlRVVUg0QUlXRHdZUWxaTWEzZ0FBQVdWSlJFRlVhTjd0bUVHTzZqQVFSQ3NPQXJIZ0JweUFKWUdqY0dvY3hBbTRBMklIcG1vV0UwZUJIK2V6bUZsTnZVMDZzaEozVzZWRWVsV01VUUFJSUY5ZjZxWnBpbXNBMUxZdFMydUY1MS91MjdZVkFGWlZSVWtFb0dIZFBWL3NJY2JJRUlJa1VkSS85WGE3bmV5djYxK1NXRlVWQVZDU2N0MDBUV24yZnY2dTMrRWNmZDN0WHp5LzArbkVVdStTUGpvL2txenJtaVFwU2NONnY5OFhld2ZBOC9sTWtpTEoyV3hHU1VvcGNUNmZNNlUwTlg5L2ZyZmJqZXYxV3RmcmxaZkxoWWZEUVFIRy9BSU9sbkd3aklObEhDeGpIQ3pqWUptL1RKV2RDd3F1SlhzZUZGekd3RE5OZWlLTU9KVE84eFFkRFFhZUIyOStLOWVmZUxhQm85Sjd2ZHZ0SmoxUmpGRmpmaXY3cXY5NXRqeC83bGVTUWdoOTNlMWZmTWVJcDZPK1lRamhvL043OTF0MVhWT1NTSTdOLy9LKzQvR294V0xCeCtQQjUvT3A1WExKKy8zT2xKSldxeFUzbTgzb3Z2NWlHZjhLallObEhDeGpIQ3pqWUJrSHk1Z2Y1Z3VzdlFVN1UzN2pUQUFBQUFCSlJVNUVya0pnZ2c9PSIpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7ZGlyZWN0aW9uOmx0cjtoZWlnaHQ6MTZweDt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLnR5cGUtcG9saWN5e2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJJQUFBQWdDQVlBQUFBZmZDanhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUNld0FBQW5zQjAxQ08zQUFBQUJsMFJWaDBVMjltZEhkaGNtVUFkM2QzTG1sdWEzTmpZWEJsTG05eVo1dnVQQm9BQUFJQVNVUkJWRWlKN1pZOWF4UlJGSWFmc3hNU3RyTFFKcEFncEJGaGkrQzl3MVlTbzAwSTZSWi9nOXZacEJmL1FPcjRHeVJna1NLTlNyQWFkc1pxUUd3Q2t1QVd5UlpKc3lTd3ZoWjdOL3ZoenJnYkxIM0xkODU5N2pseno1MHpKb2t5eFhIOERxRFZhcjBxaTZ2OEJiSXRxU0dwRWNmeGRsbXNGV1hrdlg4QWZBVldnM1VLUEVuVDlHS3VqTXpzQUZnWnNWYUNOMVZUUWQ3N1hVbnJnRTFrdis2OTM1MjY4V1JwenJuSFp2WVJXQzdZdkMzcFJaWmwzd296cXRWcWl5SDlJZ2pBc3BrZDFHcTF4VUpRdFZyZEI5WktJQU90aGRnL1FjNjVMVWs3d05JTW9DVkpPODY1cllGaGtxalg2L2Q3dlY0R1BKd0JNcW9mVVJTNUpFazZGWUJlci9lZVliL01vOVd3Rm5QT3ZRYmVBdmZ1QUFLNEJONHNBSnRBRy9nSklFbG1OdWlKeWJhM0VHTm1aaVBlWnVFVm1WZWxsL1kvNk4rQ3pEbjNBWGhFT09vN0h2LzNCZUF6OEl6UWtNUG5KYnVQeDF3Qyt5WUo3LzBuWUlQNVMvMEZIS2RwK3J3Q0VFWFJTL3JmNUhsMUd0YjJNMGlTcENPcENaelBBVG1YMUV5U3BITUxBc2l5N01qTURvSHJHU0RYWm5hWVpkblJ3Qmg3SjkxdXR3bWN6QUE2Q2JHM0dnUGxlWDRqcVVIL2ExQ2t0cVJHbnVjM2hTQ0FNQjMyZ0tzcGtDdGdiM0tDUU1ta2plUDRXTkpUaHJOTlp2YWwxV3B0VElzdjdKdFE0dG1JZFJhOHFTb0VwV2w2WVdaTm9BTjB6S3haTlBlaHBMU0JadjJ0K1EwQ0o5bExuQVJRTEFBQUFBQkpSVTVFcmtKZ2dnPT0iKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjhweCAxNnB4O2hlaWdodDoyNHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEycHg7dG9wOjIxOHB4O3dpZHRoOjE2cHh9LmNvbG9yLXBpY2tlciAudHlwZS1wb2xpY3kgLnR5cGUtcG9saWN5LWFycm93e2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjUwJTt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLnNlbGVjdGVkLWNvbG9ye2JvcmRlcjoxcHggc29saWQgI2E5YTlhOTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6NDBweDtsZWZ0OjhweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTZweDt3aWR0aDo0MHB4fS5jb2xvci1waWNrZXIgLnNlbGVjdGVkLWNvbG9yLWJhY2tncm91bmR7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ2dBQUFBb0NBWUFBQUNNL3JodEFBQUFoMGxFUVZSWVIrMlcwUWxBTVFnRDYwemRmd09kcWE4VG1JL3dRTXI1SzBJNWJaTEl6TE9hMm50MzdWVlZiZCtkRHg1b2JnQ0MzS0JMd0oyZmY0UG5WaWRrZit1Y0lodzgwSFFhQ0xvM0RNSDNDUkszaUZzbUFXVmw2aFBORHd0OEV2TkU1cStZdUVYY01na29uVk02U2R5Q29FdkFuWjh2MUhqeDgxN01pbG14U1VCNXJkTEpEeWNaZ1VBWlVjaC9BQUFBQUVsRlRrU3VRbUNDIik7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweH0uY29sb3ItcGlja2VyIC5zYXR1cmF0aW9uLWxpZ2h0bmVzc3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFPWUFBQUNDQ0FZQUFBQlNEN1QzQUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDRBSVdEd2tzUFdSNmxnQUFJQUJKUkVGVWVOcnRuVnVUNDdnUnJBSE4rUC8vT3IvNjFZNXdPTlo3bVoxdTNYQWVMTWpKWkdaVmdkS3NmYzV4UjNTMFJJSVVXK0NIekNwYzJNY1lvN1hHdjNleDdVaVpkNTdyanl6enYrdiszM1gvUi8rM3IvZjd2UjM4NlkrVHZLTmNmL3dkaFRMUGN2OXFVMndaZDc0dXRoMHQxODIxamtJWkxQY3NJLzZuV2E0WHZ1dHF1VTBaODVtbng4MFMvWnpncG5Mbk90SE50Ny9vZngxVEtYY1NOek4vN3FiTVEzanU3ck5RbU1ZWWQvNHMyajlhYStQK2dHYU1jWnJiMU0vdGRydmY3L2Qydjk5UDkvdDkzTy8zY2J2ZHh1MTJHOWZyZFZ3dWwzRStuOGMvLy9uUCsyKy8vWGI2NmFlZnhsLy8rdGZ4NXovLzJZSzVBbDJyZ3ZmNFVzYnBkR3JCNTJiQXZBclhwdXpqbWlxQVZTR3o1ZURtR1lYemhiQVptQ3JubXpkZHBVVSs4WTFkQU9ZZVhDdERVd1Z3VjdZQ0dINnVBbXlNY1o5bDV2a1VhQlBHTVVaNy9KNXcvNzkyL2Z2djlYcTkzMjYzZHIvZlR4UEVDZU1FOG5LNWpNL1B6L0hUVHovZHYzMzdkdnJsbDEvR1AvN3hqL0czdi8xdC9PVXZmd2tWc3dvbmdqZE9wOVB6SDNVM0Qzem1XR25aVlhuNGpDcXM3d0MyQktQNC84dEF6a1pzb1d4NlhycWVIWnltdnA0QUJDQkpoVFF3S2ZEVDhnenJaQ0lxaTVBaGlBQ2pCZkVCMnJQOC9YNjNNTTdmNi9WNnY5L3Y3WGE3YllDODNXN2pjcmxzVkhJcTVmZnYzMCsvL2ZiYitPV1hYOFpQUC8wMC92NzN2NCtmZi83NUpTdmJldStiTDJXTU1hRmJBbHBCTk04NVFYK2N0NnFvU3FrUEF3dVFsQlZLcUdORlNVT0FBM0JtdTdnQzVoTk9kMTVuU3d2QU9VVzdDNGdpVUNWOFNnbjVMOWhORklxVHNwMEd4STB5c2lveWpBamtZL3RHSlZFcHorZnorT1dYWCs3ZnYzOC8vZjc3NytQYnQyL2oxMTkvSFQvLy9QUDQ5ZGRmeDhmSFJ3cm1UalY3NzlFWHUycHgyeGhqd3RkSlpRY0FXUUlQTFBJU3NNSmFTd2lEOGd6SUtyd1N5QVRFNWo1bkFiUjVjMWRCVXdCbHNFV1cwaDZMcWlZc3FGUEFReEN5Ulozd09TQVJ4bWxYTVg1azY0cFFmdnYyN2Y3NStkaytQajVPSHg4ZjQvdjM3K1BidDIvanQ5OStHOSsrZlJzZkh4L2pjcm1VRkxPMzFnWURXYmx4UklzL1RxZlQ3b3VzeEpzQXhYQTJHYzdUQTlYZGdmZG9IYkZzajc2WDIrMVdBcmdJMWFnZUd3QTNxdXBxb0hzbWNiSTZGdTkzcXVnZ0ZhOWQ3TGVEdGdLZkFGSEJKK05FQnlJa2NKNUtlcnZkVG1oaEdjZ0pKU1o1dm4vL2ZqK2Z6KzE4UHA4K1B6L0g1K2ZubUdEKy92dnY0L3YzNytQajQyTjhmbjZPMisxV3M3SmpqUDZ3cmFNSTVFNFJaOHgydlY1VFN3a3F1b3RWNy9kN1R6NkhGV3NEL3FOY2R3MENRM3EvMzIxYzY4NlR3RFZJZGJ1eTczek5sZGhTSGI4STJrbFp6bm0rSW5CUzRVNm4wMzAyYUJGc0xoSERBS0pWSlZnbGZJOWpodnU1M1c1M3NMQU5ZTnhBaURBNk1DZVVIeDhmOSt2MTJpNlhTN3RjTHFjWlc1N1A1eWVZOC9mejgzT2N6K2Zuc1NtWVV5a25XRUc4NVdCc3Q5c3R6U0x5TWRmcjlRaTA4aVkxNVVaMExsREdMaFIzbzV6SzJqN09QVVREMEUrblUzdGs3WGIvMTZORmJobG9BTXVZMXpqTFVPTzNCS2VJRGUrWjhzMy9KNGdGbzRUTTVqUG11UmcyOGZvVUtLVlN3bzE2VGdBNW5weXdjV0xIZ1lsL1B6OC83My82MDUvYWI3LzkxbTYzVzd0Y0xpZTBzWmo0bWFvNWdUeWZ6ODhFMGYxK2o4RWNZendUUEVHMmNxanlmSE5GME04ZnVxRWlhT1ZuUnpaWlFOaDVmd1F5SGcvSERHZkpvODlRMXpiL3F1dTVYQzY3NzNJMlhLZlRxZC92OStkM3d1cVd2YS9ZVGRVZEVWM2ZoSXYvVml5cHM2WUUzeDNyNDNLNWJKUVM2NnpheFZHRnN2ZCsvL2o0YUYrL2ZtM2Z2Mzl2dDl1dGZmMzZ0ZjMrKysvdGRydWR2bjM3WnVOTEJhYUNNZ1V6QytyWlJpRm93eFV1Skk4WU1xY0NwOU9wcTV2YWdhWVU2bEdKQTFYUXFlamNodzZDajBHdzVuWUJyR3cwMUEyTzIwNm4wNEJHb3VOTnlUZnAvRndFbGhVZXk2blhySUt3N1FRV2RkeHVOMmxkTDVmTDgzOWdTUEY4YWh1L0p2Qk80OENQU3VxTWY4VnA5L1A1M0w1OCtkTHU5M3M3bjgvdGZyOC8zOS92OS9iNStUa2hQSjNQNTZtUTQzNi9qKy9mdisvaVNnYnplcjArQVp4LzUrODhidjZPTWRhNlM1ejZrZDIxZllDOWR4djdjSUpKMmQ5QU9TMzBmUE16eUhpVE04QjRERjZYVWxZSHA0S1FXM1crMXQ3N01OQjF2R0h4V3E3WGE3dmY3OCt5NS9ONUErSDFldDI5eHVQNWRiWXR5YVJ1NEFrc2JQcTY5MzZmalJ6WFJ4QmJQci9iK2IxOCtmS2xqVEhhQkJCZm44L24wLzErSDErK2ZCbm44em0wc0I4Zkg1dTRjcjVHdUJoTVZrMEVFbjlSc2N0Z1ZoTStpeGxKdE1BMjNSOEI2eXlzQXN0Qk9nRlhJS0tDTUlnVG9NcU5FdTJmWU1IN3p0YzczMmRRS2tDajF5dEFadFkwS3g4cElyOEdHSitBVDNWKzJIaXJobCsrZkJtWHkyV3o3M3crYjE3UDhwK2ZuOC90VXdHVmxlVmtUeVViNjhEa2ZheVdZNHp4TlJpaFU0RXBMSlBaVnJLK3U3SjQvbWdmS3FlTFc5WDJSRVdsSXRMMWRpeW5iRERiMytqWGdZalFxbjBycnhXYytOa0lMUDdGN3hJYk12eDd2VjUzeDQweG5sYldKRjEyWlNhZy9OMHBXNnQrWnptT016SGphakt3RGZvbmQ3OHpZVGRmcTE4dXA5N3pyMnE4djNJaW9CcHJSdEJsMEVaOW9nNVdCUkdPZE9IaklqWEY3VW90RmJnT1duWHpJSnl6WXZqRzVJWWdzbU1PeEhrejhPc01TclZOV2VxNVQ4RGFPY2JFdjFPZDVyYnM5YU83WXZNZXQ2M0VrRisrZk1FeHErTVJsNC9MNWJMWk4vK2V6K2ZuWjZLYXp1TXFYU1FWTzVzcEpYZmxIQUl6ZXMveEpzZWNrUkppRE1vZzlkNlZmUnJxWE1yNktwVlYyN2pSd0phY0dvdk9BTTF6TWRRTW53SzFBdWJLNjNrZENDaHZJMUM3ZzB6OW5mL0QrWHplMlZqOEg3R3g0UDlkdVFsc1lDcnF5TjhYcUczSG0vMTBPajNqdy9uK2NybHN0dU0ralBtbXhUMmRUdVB6ODNQenQycG4xWHNFSFgvYm5QYVZxVm1oMHh3T3QwbzZYTExBSGVQVVUyMDN3SGZjcnNwQ3dtVjNUcnlCNXMwTXNlZWc5N3gvQnd6Q2pCbGJCK3BSQVBsYTBCVlF1VDZWNlFIZEJsajNkMEtHMTQ3YitEcXhRZVV5bURPNDNXNGRRYXIrVElqd21BZDB6OC9oNjV2ZjAveUx2M1BiNVhMcHJ1L3lkRG85czdFVDBJK1BqNmRLSzlWVUVJZUtXUVdQQU9ySjhMS2Q0dkUrdDkxWTNlN1VGbFdhdGcyVndKbmIrSFBtdHZtL3NmSzU5L09hV0YzeC9lUDFVUEh2QTVERFlEcFlYZmIwZHJ2MVYyRGtCa3h0dy90RVdWVmxYV2RDOXBGWXM1L2pmaDlkUy8xNnZXN3M2bFRHK1RmcXN4U0pIeGtYWHEvWGRyMWV1NExzZkQ2UDN2c1QzTjc3RGtMK3pQbTVqU2RLTDR6UjNBeFFkNnJIa0xrWWxTb3dzcnE3em56dTZ3U3dkc01KT1htQTVmQmNqeHRnTUdCWUhscjV6b2todHNNQ1RnWExRT1c0WEM2ZEV5RU1wckw4bUFRelhSZ2R1aXgyeVp6b3J4a1lzRG4zaEIxVmVNTEdzWHNWdGdsMnBXOFMzc3ZrMHZ3N1I0aE5hSHZ2NGNBQ2w1SEZ6d0lIMEtjNnp1NFhqRFBSL2pwQVZ4V3pPMVhrMkREYjN2VGN4ZUdVMWlXWkhrbUlEV3ppV0t2aXJDSjREcmF2czZJSi9HRzZjVHFXZFhEeStmQXJRRFZWa0xxa1ZqQW9aSUlUZG1tSXFYd3FhOTVOMytNR1lvWlFkUlZOTzUzWTF4UmtoTzE2dlk3ZXU1MDdDYTlsSm5iR3B4T2VtUWhTdy9BUXNtbXA1elU5QmlVOEc2d3ZYNzZNNi9VNlBqNCtkbzBCejRDcGdpa25UVWVEcXdsS0JtZzN1NE9WanJaMUErckFjZ2FlaldxNmVKQ3ZDWUZET05Td09nSFg0RVFSdzhseGJ6RE9kRUs2Z1ozSGsxYis4ZzJvMUpGdEtYeXYvZkVkVFh1V2pXWGRBWmlCcDZBRGVEckNGaWltN0I2WkZuZWVJN0d2bS9QTWtVRFg2N1c3eEk4YjBENy92OGRBOXFmTjVvYUNmNzRXWmpIMG1mMWNtZlkxWTBKVUZtVnJUV3U4dXprTmNMdEVqN3U1RlhCVGtmQzZHT0E1cThZTXhPOEtWdkY2c0FWR2RjclVic0tPRGNRS2tMTU9NZG1seHVtNjQyWXJQbTI2QWxoWlcxWUIxUityckdzd0U4VGFZQVdlVU14ZGYrV2p3U3ZaMkVmM3l0T3lmbjUrUHBWUEFhcU9uNDNNdE5CcXZtamp4YmpNNGxaalpZNGdxTk1JNWt0YVcvc1lLTndTKzlsRlF6R2lobU1DS1BhNytaMFY2RWIwR1Jtb2J0cFg4SmxqV3U1Rk1MTjVqYTZoRzlrd1FnWnFmNSsxTkg1VXh6a0ZSZUNkV2hKOFhkbEdVa3hPN0hSbFlSbTRtVk80M1c3dGVyMTJUUEpFdy9ybUVOM0w1U0tISVdaZzlteitwVW9LT1lxNWJKVEpkWDJnbWUxVWN4TVpRRmFFUUlsSGN0MzJNK1kxQnpHa0d1emZpeUFOOXordWdwbFoxc3ltQ3JEQ1lZa0d4RFRwSTlSekJ5MHJIeWVEVUMxbldhZVVhRDluNHhrTnlZTUJEWnR6WjNCKytmSmxZMjFYRkRPY0FSSmxhYk95aVMzdUNwTEk5anJaakNEa2FWdmNDQ2p3b2duS1NoV2R6WFpXbFpNdlZUZ0Q4THBxbENMcnFnYmNCK3FZd3JnS1lwVDBjY0NxYkt5Q1ZhbGtFYWJuL0Z5bm9nQ3JQS2ZxZjUxeEo3c0dCMlpYY1pteG9TT3p0angzMDBEWmk3YTAvMkFJUjBVbEJhZzlTdUR3NktjQXpsYUI3dkhadldwaks5MGR5cnE2Ykt5RFVaUWJSMEIwNWJpTFFrSEljU1VtZ0lLK1N3dXFnSENub2lvMlJRVTF5aitCbkJ5OXBwaFZLTEd5QzdaekZLMXB4V0srRThJaFZDV0xOL3VMdG5VVTRheW9ZTG9hQU56OEZkdGFTdlk0cFYwQkVXMmxzNjFjenFsbEJLcFR5S2dNQWhyWjFjZGMxUlJPdFBtdldOa2RjS1o3Wkt4YVdqaVBMSk1wcDdPWkt4QStycUcvb0pManhmMHBuSmxxTG9EWm8zZ3lVMG1LR3lzMnRhS2Vjai9kMUMrckpTcGxCcWxUeUFxZ1IrRDhLaktsbVJMMmd0VWNBZEN0c0wraWpDTlQxb3FxcWtIMk9IRWJHNXNERm5VZzVBYSt5TG91MlZVMXB0ajFTMlpRcXYxT1JaTjlJV3pSZmdhUkJ4S29CRThVV3lxbEpGdHJJYzBBeE5qU2plZDk5Q1RZL1hEZlN6Q3o1TTBJWm9WRXNXblBGTlRzbDhvb1ZDMVR6YkdncUZaTkRTZ1Z3S0srMXNHRE1LcXhaQ1dHVk1EeXNpRXIxalZTUUpVWXdqNWlIT2xUaGRIdDQ0U1FnOUNOK25sOEQ5ME5NSWdBZGdyNDZKcVJpUjlJOHZSZEZ2YnIxN20veXhVTUtqTkxNaVZVQUR3dTJDV0doaGkrRjU1VFdNOU05Y29nem1zMWRuTTR1T0YvTEFFWVdkY3FuTTd5Rm15cTNJZndtT1JPZDdZMWlGV3RPam9ZOFRvNDFtVFY1SXlzZ0ZGdVJ6c2JXRkdiTklJSkNEdjFkT280bFpHN2pXQndSRnRWVEt1V3llQ0J5SktPYW44b1ozZXA5WGRkTmwwdER1YXl3THo5Y1hQWWVEQUEwU3BrQk85c2JWY1RPVldsZFB2NHV5ekVrenhIdGp2b25Ib1NrRkVXTm9vMWQ4RGhjUXB1dGQycHBOb240QnpvQWlKMWhCRlFnMGRWdGRiR0hIRFFXdXNobU5FUXVrTE0yUU8xRzJZOGJnVFhxRmhjQkpqN0VqUGdjUHRzOFVTOHFQcFBCL2RYem5PaDVaNDM4dHpINWVjNlFnck9LclJSZktteXNCbVVEQitQaFlhYk1sVlBFUitHQ1NJVFR6cjdhbTJ0QXJIM2JnY0V6UEptK2NyNWpKNE5uSE5GRFZyRlhjSTVMZTlrNUpudytiZWRiVitGZlJ6WklIYU9PYU9zTFkwLzdVR3M1OERqckd3S01JTUZJR3pPRVcxL2pHc2RBdENONmhFQUk0aEJlOVlYZVJST0JTVlBBVlBBcXZJTTVieDVoVktXQU1QNnpCUnkzaWVzY3JpZFZkRkJpbkJ4WERuRzJHUlkyWGJDdnAxbGh2R3RPOUJ4dTVoOTA4WFF1NDJsblNBck1GZGl6TWltOHV3UkN4UEdubk9TOGx3cG5iT2lEcVRBanNyUk4vUGNvQVNjQ2JhQUNxVk00MHlsbmpqVEJzK2J3V2xBRzIzL1VLYmRraXdLV0lRUEd6V2FjenBvU2x4UEVqODIyY05Xa3BTN0Z5enNEcnFwZmdwRzNqYWh3MnZnYmFTUUF4dUxXWll0N0p6eU5lOEpvWnBOQWN2REZPZHcwd3FZVDlBSzFyWnovRGRiU2xMUHAwcnlJeGdRSmxLOUFabEVxN0lPWHBvaGc5UElockNuZzg4SnNPeGlWNFpXQVlmZzRzaWt4LzhreTJaOWw4NjJ1cXdyZnNjSUg4K3VnVG1WR3lpZGRlVllVZ0VNbjRHWnpnMTRFd0lzaDlzeDJjS0tpV1hSZXVPRTVnekdPUWdkbFJLVlZkbGV2cWIyNzlYcTBRbnN0czJWRGFCTzBjb2V6c3J1V3RIQXB1NnNLRzRJQmhOMGFHVTJrTHJNS0dSVE4zSG1iQ0R3S1YxNHp2a01FREc0UWZaVnNwVmxhTlUybWhjNVRFWjNOMWgvenFUaGV1THBXMDVaV1RHVmpiM2Ribk5teEtaQm5OOEpxaWRhVkxLQU95QVJOTFMrTUI1NFoyK1ZhcW9NTEtyb1ZCbG5nZWZuVFBBY29ITldDU3ZsZkE4Q0kwSEVtQk5CbkJsWHlNcnpVN0E3V1ZtOTRQUHFRMmdtcUt4K1dER3NudmlsbWNTT0JKcU9LMW5ZeUFJenVBeWVzcTNVZFNLM0tmV2NZS0Q5NUhtZllPVTNxc2VyMkN0WUVVQStGcGZxZE52Z1BCWlVCaERyR09OUlZsUXNoOHJMY2FVQ3lrSEcwT09Vd1RsTEJyc2g1c29FTUdlemkxRTRIUlZ0MWljcDV3WkVGWGRpYkNrRzhZOHZYNzVzYk80RTBpb205eitoalNpT2Z5M0RocFhJdHBWaEUrVUdRZHZvV2p0Q2htckdIZjRZQXpLZ0JObkd0dUp4RkNlR2RoVUFmUUxMSzhrQllBUDZndkZKWmFqTUczWGt5Y3k4S3VDMHE0RXl5bXd0d2R4ZHYyTTBtSUJ0SzBMS25mNjQwajAwQXVxNGdVa2RXR2xoczIycUpjNmRaQ3NMMTlveG5sVEpHNFNZVlJJR3BEOFRQRkJ1TTZPRWxiUzFwbGRpZDRtR0F5TjZaSXVwYkM1YlhKTjlmZHBiVGhTeExVYUk4SUcxWElZQnhXM1RqczZLUW9zS2N4ZnhjUW1kbndSR00xMEduRmNDeTJYWXVuTE15QWtkZ2s0bWVQaWN6c0x5Z3RoY0J1dDZnb09xUzdZVkZYQURMamFvc0I2czZvZmNaV0FaU0lSWXFTVWtpell3dHRZYWIzdlVPUTl3MkhSeElJZzhXd1JWZUU2OHhpNFV0TDN6UnBoeHBsend1WnJjcVlDcTFJM2pQSTVkbkpJeWdFb2hNYlBxVkpTenJ3enhCSlRzNXpOK1JlVVNneGlrUFFWRjNKVkJlTlF4YkhFTnJFTU52RWRGWlZWOWxIOStPUkdFc05aUXB5VE5jNEMzQUc3WEY0bmd6cStEck8yemJ1YWFPWGdkYUZjZGtFb3RvU0ZCVlgycUowQzhPV1plRzRLR2xwZ2hBMFhmVE9QQ3FWMnFxd1EyNlFXZkYyUE1MaEkydzFsVkFhMmFQc1lkMHphMjVNUVJ3Z2NaTjZ1UURDaStaeGlENFhFTTJrWnhPVDQxRm5abmFSbGNwWm91emxScXFkYlFWV29wUW9TQjU4UlY1MGxCTnJIaS9Bd1hTNUxyd0RWbHBZM0ZjM0J5aVlHYzUyVHJpc3Q2a09YZHdJbkFRdEpwcDVRY2h5YXF1WU9WN1N1K2Z4Vk1hVjNkYzBSRTJTNm1VWTBnTHQycE1jWXFyS0lROXcybDFncFFVTXRRWWNtbWJ0NURUTnhkaG5VQ2pRcXRiSzlTVVN6dnJDMG1taGhFMWUyRlMyK294eXB5L1pBU3V0a210angzdmNCQzI0UFg2NW5icWtCQ1JoZmpTOWtJWVBuZWU4Y01hZ1ZPaEkvM1QxZkFtZHRBV1pzQ3N3VEpDa1FWTmEwcVdLU0tQT3BIQVVoRDlEcmJWY3lvWWt3cWh2aDE3dllBYXlYTFF5S0dZZHhsVURGcDQ5NHJCWFJqWWdPMTdERFlldE5JVWovZXpwNlMwbG5scEV3c1dtSk1rT3dzS1hlWktFQWpJSG4wRVFKSVNhUkJjTzZVTUlOejdwL2JFampudzRmdCt4bUR2a3N4WDRHMnJJcmlzN3FhZUt3QUZNUDJPaTduNGNyaXVad3RwU1V3cGZMeFNuT1JTcklxdXNjNVpGYVh5c3FSV2ppWjJEeUFXRUlMMzV0VlNvUUVsRkFDak9lR0dTRTdBSEVRZ2RvL0xTdkNPZ0dCdmt4c21EYnZsUzNGcDV2aGFCMlRBR3FSS3JLS01yaExWcGFHekVWalowT1F4RGhhQ1RBK1F5UlIxZDE1YVF6ckpudEwzUmlic2lwakc2amxnTDR5cWJTMHNOWWcxZTg0dmhiQlZyRWxLNjRDVWNXWVhEZkt4aHBJdXhpVkpaVXhzYk15L3VSQktUTlJRNGtRM0xkUllMUzBySmpSUGxUUHFZNmdkSnNFRGMrYVFYQW4rSGdzTlVDYlJ1RjBPajB6d25BN2JXRGtiaE81RW5zMDBxZVFoUzFsYUJNbDVNL2NBYXhzTEY4ckt5cWwrVGY3RUxMRUd1L2l4aWltZEN2bzBUamZwakt3YWdnZW40ZWg1djdMb2tMS2JMdXl2SGhjWkc4ZGhHckVEeDdIZzkzWnBwSkY3cUJxTzNpVnZlWEVEUU5Jbnplb2U4WXE2ZVBhWkJaMkp2aU0zVzJVQUdvdGVrUkNBR3E0RWtGMVgzRE9uUjExeVJzQkwxdFJhMFBWY1ppTkZYWjJjMzRGc2t2b21JblFRNmx6cEpvWmJKeGs0M053S0pGQnF1SlNzckJ5SHlkeEtPblR4UUFTQm1TM2orSk1uc0hTbGEzRWM2SzlWV29KVm45emZqd09NN2hxWUFBcUpRd0UyYTNuQTQ4SjJRR2VnUmtwWk5pdlNZK3lzM0VrS2Q0b0pJd3N2SUhsM2NXZ0x0NWs0Tkg2T210TFdkcHVyT2t3RU11cFljN2VNdERSaE9jSTJ1aTVKaFZJelh6THl0by9HQVB1Wm95bzh3a29kdVZnSmdsQ3Q3T2hHYmdJRDRNcTRzaSs2M3pVUzFGdUZGWEZscXlhajJlbUhsTE1jQnFZdTBGTXVSMjhCYkI3bE94Uk1TaUNRWEZoQ0t1d2toWitwWURpR1NnYnNLS1Y4TWlTUnN1SFNJV005cmtsUmlJbFpadXFYanNRSzhvb1lKTWdxM0pLV1ZraEhiaHNWeEZVenRoT1dQa1lpamNieDU0SUtzU2RUK3VMcjNjckdLeW9ZZ0ZpR1I5aUJrNGtmbG9VWCtKSWxRUlFxYWJtcGduaHF0cFFwYjZSVlExV0g1RG5yUzRoRW9HWnFhZXJRMmRoRmJ6OFhlUHhTaG1EYm83MGVJU2pvb3JPMnZLOFNKWEk0U1VtRVU0eldLRHpVRHRXVFl3N3hYbGJTVEVqNEZSZzd6S25Lb0dSQUx2MEdzOVRnYzFCcEN5d0daUlFBdHFWejJ4ckJjQU16RXBmWndGU2EyRzVXMFFCRmpTTWFwV0FFRmEzSGNHTjdDeER6RUN5SWtKOTdxd3JxV05UV1ZvODc2UFBzalBrajJ3dmdyb001bExaS01FVEtWcWwvQ3ZuV1ZGaUZhL1N6SlVRd2tvWnNyNjdZNnZsU1JWMy8ydG1OVE9ZM3ZuYXhZd011b1BLcWR6UjF3N0lxSHltbFB4YUFUaGZVN0tvMlpYWWo0QVlKSEwra05kS3dSUVlFU1RSYTVmc1VaL3JWQzFUTVR5V1Z5WW9xTnR1emFIc015djJ0dm9hcnhkZnF3WWdVMWF4Rm8vY25xbDFGR3NxSyt1QVJPVjhCWDRHVThXY1pUQVRpMnE3UWN5aTBPMFYrR2hXQk1OUlVrbjhIMVNzV1ZFNUJ5M0dpMEVDcVVlSm9CZkF0RGE0YW1rZFhHMzdBR1A1R2dlYjg0cDdVYXpwb0tSemRGemVROEhrb0hHeHByS3kvSHBtNXQxMnA0N0o2eFRZREV6N3VJTkVYU3V4WVh2RnNrWUFjK3lTeEg5c2Y1ZnRLelU2SWJ3VkJjVUdnNWU1Rk1DRVhTRXJaUjB3R2F5VjE5d29NOWd1UGpUcUpkVlRxUjR1RTRuSm5MbGRXVmtFQ0NaTGQyVkxGK3h0YW1leDdJcGlyaVNEVXB2cnBuOWxyd0dNQ0h5cHBNSCtwczZMSUxzdUZHVWoxWEVPWGlxYnFTSFBVS25DbHBXVjY4a3F0VVJWTkRZNFROYW9jeWtvWWVUVTVuZ0dFUWEvUzFEbm5FNEFlWE1jS2pIUEFtRlZqQ0JFTmFleUxWTkhmcjNweDh4VXN0Sjk0aElwZkg0SEtFL2VEYUFySzZsU3lWVkZiZHQxZ3hUSVZrM3BwcFZsRlhpNHBFaFZCVE9icXVvaFU4NU1MWG4xaWFodlVrSEpqU0NNYzAxdExGdmVWVkJ4MERvZE02amZ0Q3U3RE90SXpZeHJjMHFwMUpHUDJheVlGejJHYjZIdk1yTzhjbkd0VjZHam0zdUltU2ZEMkdwV0s2dW93YlpHTXhGS1FDbzFwT010Y01YRnBSc3QraFhHb0FvbUYzc1NUQkdnVGdsYkJLV3dzUTN0WnFhWVNwMFoxQ2ltUkRXRmNDSlVQWUowMEJJNUZrS1lOb2lmdVF4bU44OFNXVlhXTE1hVXFxcWdDMEJtUUpSNnNrM3U5TkNmNmpZTFh4QWZxc1lFZ1ZMQWhSWTJBdGd0ZmxaTkZtRnloeGRyTGtBZFdsazREODhNMml4SHllcElkaE1IckcvaVIxWkd0cTBNR3BiRGJSUFlPWGVTWTFNNk55NFpzdHZHU2t0SytYYkZQQVRqMkQzNzFzYVBFc0FNWGhYcnNaMGttL1hTdGtoaE15QmZzYTZ1WEZaZTJWQ2UrWU1yMStHS2d3clF5TllxMVZSckIrRWl6QW93Nk5zZE5LY3lWRWtZZU03M3lzNnE0a0FIcDZCaUZrbFRrSXJWQzVvWVY3dXp3T0dDejRVSjBTdHEybFdNSnk0d3RiK1JldEw2dFpGaWNuSm1CdzVVakN2WFhNWlZKWDJNUWtiZitYTjVFV2Q3OFZ6OC9KRXNNWlRCaUtOenNtMWluTFJVUTc0SDROaWRhcUk2OGo1c0FGZ3hjUnZlQzdpZUxKWGZRWXhqWloyQ3NpV0Zld1pYSm1CSWxaMXRkdHJYNGhTdWF0ZUtzby9SWk90T0tXMm5tcTFvVHplSzZkUldBV3UyTlJWYjRocTBTWG0xR3Z0dWdIcmJyNUlYcW1Ta3RnNUN1REUyTVNsUHdzWTVrTkUyV3AzQXFpWmJXVkxBeGlCRisyaUJaYnVOajZNQjZyc01MQzdGeWFzYVlEeW83S2tvUHlFdHczcEVNWGZQdnhBSmkyakFRUWdqcnowckxJWlNXWmxJb05od2Q1eEs0QVI5bVlOaldBYUxybnVJbUplQlZOOXpCT1JPYlZ2YnIrbVRUZkZTRUpMU1JuSG83aEVKb0lpOE1GcWp4bXZnbUY1VVJaejR6TEZnWlo4Q3R1Mlg3Z2dWY2NLbTlnVnhJc09IcXhYZ05NS25GV1pZbmYxZEJuT2hheVhxMTdRd0ZsV1cwOWVOS3lWSkZtWHFhT05HQTVhQ2VnTWJKM1VVa0dZMWljM25LV2dqcThxZlZZR1FHMWdSdDZyczYyYTZIaXFxVU9xZGVzSzVObVg0bkdvZkpvaUUxZDBkRjlsVlZrdlQxL2tFRWFhQ29ZT3dGcGNWY29MTSs3NjY5UHhDOXJXcWt0SDBzV1VZbGQwVkNwdUJaL3N0VlJjR2d5OVdYMitVMVF0aGk5U3pBcVN4elpzeStPaUZ6QllueVNHVjZHa3U0NHJEOEJDT1pCVjNCdkQ1K0FLUkhOd01Fc0I2RXpIbkpwa1RBZWlVbEVHa2NFQ2VCNkdEWlRwNVlFSlRsdmRya254WWpUbGxNa2ZOdFh3RGpNN3VWaks1SlhVVW40M3JycXBLMmp5dGF4SFcwTTVHOERDOHJ0SE1ZczdLU2dkdVZRTUdUWUZxRnZWUzZya0Qzc0RKNDZhZmRZRndvcTExQU9LQ0JMaHZ3b1VnYzhJR0FOeWNSNmtuWnJkSlBkc3V4bnlqZmQzRm92VGxSTWRFZHRPbDVDTVY1RUhzWFFCaXM3VE93dklEWmFHajJWbnBiaDdjcEs2M1Z3WUVNTHdxYmp6eWw2OTlzYXdGRmtGMXlxalVVMzFIZkM2c1cxWkZWRnVYVlhWZ3o5a2VFYXcweXMxbFdmbSthelFBUVNXQStoS1lWZnNaalBuY0FjVUI5b0lheXkvVVpYUk5ja0RHamk3N0dzV2J2Qm82dFByV1BxT3lWa0JVcStJTmVxcHpOZFlzL3UwaWZoNXFtcHFJVyszM0pWU1Vjd1k3MEtMNFU5bFlkVTZsanRTbHM3bG1maTlnM1l6ZVFmVmthR0ZhVjNPRENuYUQyTjh3c0VERmtsRTNSek0zWmdoZFlrV0hzc3pxNzBGSWVjbktrVmt0OGV6TXpScTlia0d1S29qUkxCVlNvZDNZMXlQcUtnWVc3SlJRVFBWeXk1eElZTGpPZ3hnVDUyUktKVVkxZE9ySWlSZDRmdXRReC9BNUFjU21FanowdkZXcmtMenZiV0F1OUhPV2JHZ3hGazFWTlRwbkJLazZUZ3dpc0kvSGN4WVhQMXVBV083MlVMRmxCVHErYVN1MlZUVXM2aHJ4TTJDRitoRW9yMVZJQTlabUZVYWFiMWxTU2dac1ZzNHN4ekhsVkxvSkhyOUg0RGhPTlRrSTFYQzAvd2lZMk5vV0FHNVJsbkhGbnE2b0xjY3BRZGRNdUovTzE3SlZBNU9ITGkwQnFDenRxN1kxKyt1Y0NkOThxTEk4TUlIQlYvY0tqeFFUbWUzaEZCUzNNeUNxbkRzdXltMm84MEhqdkZGVHRyVVJtTmFHSnNtVmFoSW1qVHNVWEt0UVpUQVZzN012djgvK2Z6VXJaQVhjTEo2TTRrb2U2WFAwYjZTbVdXTkR6eVVwUThibCtMdFd4NHR1cVozNmNSWVYzeXVWeFBOd3ZJaXFpUUNTbXU3c3JnVHpSNm5reWhwQ2FyWHdGeTF2R2Q1aVAyY1kwNmxGcjVOamhoZzFZNitOQjI4ZnRiSzgzczhyZjdrTEpiS3dERlBiTGcyNWEwQWRaSkVpcXI1cGhpeEtNRGxSVXRjc3NxMWhyaUxxR29IK3plTmdWbTlPZW1qc0VUVjhKZEYwTkhua0lGeFdZMU9CNFlycDdydFdKN05nQUFBUFhrbEVRVlEzb05zNW5wbHlWZjh1MkZvTHUxSnJIdmVhWldRanFBa3NodEZhMmd6c1NHM1pwa2J2ZzNIYWZGOXNsUFBsbGRqRmxLODBHeXNtOE1yNE1QaG5lTldFTlBHakFJcG1pbFRQQVRkVFJUWGxDQllIWUFRdVB3QTM2eElwV3RHTjRxM1kyTWhpR3NVcHVTU25sRUpSRDhQb3JDN0NGWVZ3K0Y1MXFUaGdhYnhzVHhXekNHWTBaU3NiM2xmcUF5ME9QTmpOeTh4aVFRS3NIWUZRMkhCWlZ2VmJCdXEzbTFvV0thanFhb25zTTZ1WlVyNkNqWFdOWjBsNUUzaDNqVVJtYTZrUDNNSklpeTFMbStrYWhRcTQxTjJpWmphNXNqdGxMWU5aSFpySDZxVUdtNHZNYkRwNlJ3MkNGbXZ1eUZrckJjQ3lNdEZxQmFFQ21zSG9LOUJaMkxBL2xKY1JxU2FEcW5hV2JyWmRHYXozRExnSXZCbG40d29HenRieUpHcXNsd3hraGhIclRqVFlGWEN0T29LUzh1TGRvZlZkQWJPeWxHVTZubFlwWFdadHM0blhCcTZXeEppdE1Ob2tIVUpuYm5KcGxRbSthR3BZMmE1R01WMlFEMWhSdWJCUEZLZHVtZjVPSGtMSHowRjlsdUU1a2pCalJhMG5GRTVDVUdxSHczMk1talo2eGtnSU5WblNuWjFWWlN0SzJxS2xSYUxsUWdLN3VUcTdKRlhKd00rM1NPRUt5aFpOSSt0SjBJNXFNWXk5azJxSkQ3ZFZXZHFLWGEwQ0tOUjBDY2pnK0IySVl1MmZjQlpKWmtNRmdNMTFyMFg5MndpbGdoRkdnelZuZXhscUI3eEw5bVMyOVNpWVVWWTJuWE9aak5CUnN5RHNRUFJXVzVoclo0WGNkQzRIVldSYmpnSnI0c0ZvZks1U3pqUTdyaEkxVWViZFBkRWJqNnNxSXZUWlFaNXZhMDhyQUJzQVcwVXhlV3l0QWs3QTJLSjlacHh6Q2lvQjI0WEZ0WUFlWFl4cjZhblNxaExncHBFcVdiR3dMdW5UZ3JWK0lqV2xMMjlsamFBbDRFUU1Hc0VycDRhcGVaaXF1d1JYTFhBcU9DZXJ1MzJtbXlkYzZvV1RTV3BGQUdkemVUQjhSVEhWTUV0bE05MENiYlFDWWhQanEzZWdZcjFGR2RZSVFqaXVER1o1elovQXpvYktHT3lMeHRpNmM0Und0djJhbnlXbExJQ25sTGh4SlJYdDZBNWViREJXRk5PTmJ4V1oyZDAybW51NFM5WUVDcGVwcFYxelNXUkJXeEhZelZJdjFDWFNvdXdxcVgzakJCQkRaZFlRYnBUUVc0WlFsUzhyNWtINHN1U1JtZzIrKzNKTjEweDFQYUFtRWttdFlsRWRlR3BKRU02a091Q3FDUjIyb1N1amo1SVYySGRUMHpqNXByTEtUalhGQVBqZFFseXE3eElCeEFRUDV5TWN6RzRWeEFLdzBuNmlsWjJRQmNlMnBMdWxrdXh4cW5vSXpGZmdxeXFqaWw5UzFWTndCckZtZXllb3BzOHlPalpVeWJaZGZTOEN1YVRJSnVtenM1dE9EYU50THBGRFEvUGNKR3dlTGhtZUwxbkIwS3FpVURTY3NpVVZEODlEaTNIdHJLdFNVTHczUkxpeWdaRCs3c0Y4SlRPYmdZc3JHdkROVUZSR2wxaXkwTGwxWWtVYzJhSllNb2c5MjBJOHFXNllEQ2cxTXFrMEpISkZLWGtiZ2JScmVJK3FwWU5PWkhyVmNEVWJhN3Bqc3BoU0pOdEs2dXBnUk5BVm9PUzBtdWdCZU40YklaZ0hodVBaL3MxRU5hWDZLc1ZyK1lOcmgxTmI3aXBSMFBFNXpiTlJlZ0NickhSVXc2WWYwN2RMQkpsMWY4S0I5YXMyVjFuTnFBc2w2MkxCQmhlaHdhbGVya0htQjFKRklFWktTRXVzZGw1SlFqMW5KbEhYU0NGMzQyZ0o5Q1lHclhlbGtuSklYcVZQOHNEK3F0cGxDUjNYSDJxZktxMHlnTXArS25Wa0t4TmxaOG0yWWtJbFZNaUNuWFV3bDdxem5CS1N2UXozbTNQdDZvUWJYTzViNUZpeENoL2ZIeFVRVy9BRWNLNnpDTnFLUW5MOXN5d3FtS3V3dnFTWXpUL2FQVk5OcFZ5aHZSVzIxYXFjaUNzamRXdkJ3SUxVdmg1VnlDemJXb0MxcEpqSjY4MENXc2wrdWRLQjZUNVJ3RzFtbG9obmxwYmc0N2l6NVU5aGEwRkd0bVJMRllCdE85OXk5N0FwMHorWkRUQW9nNmtTTFpzTUhnL0lGa2tncDZDcHZVMlUwY1lWU2RubWtqd0JkT21YYnhUV05XenVJYmlwTWlvVnhFY2taRW9haFNPaXkyTTNLMGpjQzFMaFZEd2FxRzBadmtjV3FDbnJHNEdJeHlrcnFsYldkdzZMUXlCYVpSOEhtTFJJaFFXc0hzd0Q0MlpYVkxOa2Y5bCtGbFcwSFZRMmx3RnNDL1oxRmR6bFFSMEthUGZvK0ZkZnUrL2R3VlJJQ3UxQ0dSN0FFSWlBaGMrQVpVRjBrT0JhUHhtVXFnNGk2NHZRblU0bkZEWUo5TnorMWZWWHZlSDlxbXIra1BJTHg4b0tjUlYvQkZieGJFMEpNVDBrU0Q0dzZML2xOWThvY3NxYWdWZFUzQTNNanhoeGNHdXF6c1BINGlycGFvdzFxNk95clZqdnA5TnBjNTlFOTFMbGRib1lWekpXZGltV2ZBVzJTTkVLY0RhWDJGbUJMTEEvdUt4bG1oaDYxM0lzMVVSUUFwYktmdHR3eEwwMnE2T254NXBReFNiUG9qQWcrdjVoQW5ONkxIVlJEWElzdkt0UmppUzBxSlV5WlRBWFZiQUs4MkVsRkpXYVFkVm9xVUMxVW50N0JWYVRRdWRNNlN1cWV4alFKTjQrMGljYXh2L3V0Ykt2ODNFVGJUOEg4Z2pjT0t4T0ptYlVhNk9PVlhodDNkRlk2ckh2OVhvTnpGTGNlRUExbzgrcEttMExBSFBIWjJyWUtqRnEwaGZaRml4c3FISmdEM2VENW4rVTBrYjFtRmpYa24ybHZNU1NPc05FL0NkSUFLRjBTeXRxNnVyT0hVTjVnd2c0R1pvc2dibWdnTTV1Y3JhMnFyUzJJZzFjYmlCQmN4WXpnelVETkxDdkw4R2JaWE5wNk9SeTNMbVMrS2s4M3pSSUFLNkExaW9LYTJJOU5hcEl1aVVGZGZDOTc2NlBGWlV0cVVyNktiV2srelpVMWEvWnJJWEV6dHJqVE9mejdod0t6aUNlWElhcmFIdGJaSU16KzJwR2dhekNtdzRxV0FGdkVkaG9kWXAwWHEwcFY3RzFZV1lXYk80cWhHcTQyK1o4Qll0ckxXdmx1TlBwWkFlYUZGUzF2dWJQZ2JneHNxY3BuQWFzekJvdkthRm9EUThCR3RqZlVPbDROQUcybm1RVjA0ZmVKZ3VtdlgyZnNyUUVXWmdoTDBKblZkWWtuM0RPWkllUk44NlJxUFdDbXN2R1ZxRU1Sbnd4UUF4d1M4RU1ZbzNJem1ZMitCQ2NMcDRNS2l1eXVoSW1hbWxiWkZjTm9ObDd0cCtSSGQxOFpqUUlSS3lYZEZSaE45OC9oeUtxd1hXTm83TzF3aWFYb0hOMTA4UkVaWldFcTZncm5JZmp6ZWc4amRSZjFYRUw0a2tYYTViQmpLeG9LYWxqQmplSGxWeFE0R2F5Y3BXNGxET0FLdG5UeEhBdE9mek90WndIQU03c3FWWGtWNnl1NmthcDFuSGtYS3FXRi80WEhxamVuTktxQmpwUjNsMWNoM0VqZzErRXNnZFFoc2RHMEI0Rk05c1dBVldwdUF5aXdUUGxlWnh0OVZ5WlZTMnFYZlJlV3FUQWlscHI5QXBvV1RqeHltaXQ3TndWNEpUcmlaeU9BOUIwazdIRmZVTG91cm1LWUhWblJRdnFHTDVITUhkcUZjUjJxV3BtY0s2ZVR3eDJkaXBXcnZpRGlscitmS1dxM09XUldkSEt3QTRldTh3amNoYmVSekZpbHFqalpOM3VmQ3Bma0owL3NjVnBuWWs2TDBQSTc3bHhkV0NaODdXaVdtN0IvQUdxdVFTbnVqR0tzQjhDSm1pSnE4cTFwS0lWV3lxT2lUSzY2cjE4Qk44cjc0L0FFNzFmZEMzeVBTMk14ZE9wbkUxdGxWeEQ5Sm1WT29nZ04rcjRQakFYVkZQYTNFZzVqVkpHRlZVR05vbEgyMEdWclVCN0JPeVNXcTZXcVlRZFdSOTJwY0ZNWU13Y2tiU2dDS0NxRDY3RGlpV3UxZzhNUUM5QnlmY0ZxVzFMK2pMNzE0cU5DdXpub1N4dDBkYTJndFdOMUc4RjBCSzBOTjBudWltZWxVRjlkSWRBZmpPNDRVVDNDalFMb1VlTEhKRlRPM2dtcFJ1SUlPdndCUUNicU5lbzNxdFo5aUY2eFZLMTNHUmxvNHpxaW1xK0NHZFRpUjF1Ulk4b3FnRTAyaFpCYTc5a1pYUE1xdXhSSEtsYTJzYVpXTjRtUnFaVWowdkxDS2hraktucU9RSE51U1pWSm9LdkFxUzF3cEVxdXZXREMxQjJ5cHdyQ1BzUk1FUFZUT0RNTEpNRHY2cWVLWHdpMkpZVjVTcTRxS3l2Z0dzSENMaXVqMmpSNTlWOGdNcVNKMkZKWlJYRUhWUkhqM3NGUHJjdDZPcHFsVzFHcGF0UWR0MEd2d2ZNNm42M0luc0dWRmhKR2FCcWdxcUlWNklzWGxsWmd5U1BxNFIzYm50M3dpNWN2K2NOMnlxUUxXMVQ5NUtZVnNXV3RLazRjQjlXNTNXUVFmbFFZUjZXbDRIYUpaanZWRTBENXl2cStSS2daQ3M1cWRCRVA1c0Q5NGNBdlFMbFNnTmFTTUF0SHg4OEJ1TlE0MXpkRnNYMzB6S2JjczBNTEQvaWhrcFF6bDB3aVRxS0xUZmJLbUNteVlJQ25LMEliYWllQzRDRzlpU3lMUTdjSU1HUXdhdTZUS29xNjBBcGwzV040MExacGNhMUNLS0s5VlF5eUlFbjh3MEY4RjZDTDJoOG8zaXhHd0M3czdFV3pDT3FtY0FwWXhZRDRqc0F6VlMwc2wydDk4cEE3dnJLb3BoQ1ZTb25iWXBnSDZtdlNuMjRwVEJWNHNkdFYzQnRNcTVrODJ5K0lBRHZVSjB1QWxrQ1ZUeElhUG0rVU51L3FrVjRGMVR6SFhDR3JYSUFxSXRCS3lwcUs5OVZ0QU9WczY0TzRPYlg3cEhMVkNwWUhjUm13dkxSN1R2WUFLQkJONThMR1Z6RHVGeitoUWJXZ25jUXlDWkFrK1Zic1BTb3VmOTMyNjFpWmdtZkNwd1JiQXZxbVNxcmlVMlB3aGphb095WXF0SWVnVlhWaVRzbXl0YTZiR3lTcFkzZ3lScnBJeUFlYVdERHh0cHNYd0t5YWxNREtOUDdZQlhNcUVza1VzaTJ1QzhGTkFQeEFLVFZmVDFvNlZ6TTBFMGpGKzFyV2NVdUh2ZHlnN3Znb0ZwbFg4SHB2SHBNQ09NUlVQSHpaa0luc3FsRktOWC9FSU81MkUwU3hTek93b2IyVm1STFc1RDFYSVUwcmJnTTFBeldneUM3ZmU4Rzd4VUFLL3RhRUJhdDdsdXF0eVA3RW1zYUpRT2o1Rittcm5aZkN1WUNmQlVBV3dTaHlkNnBNWS92QUhHMVVxT1lwYkkvZ3k1VDBDTUttK1VPM2dGdUM4NWRnZkRWZWd1UERmSVRySUJMc0xyY2dkaDNDRmdGWmphS0o0SXYzRjhBTkVxdnV4UjF0VktPZ0xvQ2Exanhib0JBa2o2djdqL2ljRmJBN2Y0cmZSblFETFJWaUcxM2kwdnFCUXJZVnFCYkFEWlQwWnBpSG9TenZRcG9wS0lGUzNzRTFIZkJXbEhYZDBIN0xuQXJxdm91Z010bGpIQmdabmgzRW96L0JLakxNTDRaMkFxMCtoRUpyOWphVlVCYnZOekNJVWlyb0M3QVdtbUZ3NG81QUszTXRCNVZ5cFpNU0ZnczA1SnlHVndsd0Jxc0VHQUFhMlpVMUNqVWV4WEdzRTRyS3JpaWxCdkZ6T0tLbzNBdUFyb0U2UUZRVTN1OFlwTlh3UzVrKzFUWnQ1VXJ3b3VONEtpVUV3K2szWldEcDFSWEhOUnFYYjIxVHMzOTk0NXlaU2czVm5aRk5ROUNGM1hlWnlyNURnQlhLaXdDTWEyTXhlVERZWGdQMUZzZjlRTktaYzBrODFSSmszcjZFUTNyQ21CVnlMTDc1RWpaMXBJVkRIb0Z0aU9BSG9CMEJkVFZ5bHFCc0tLS1MrQWVCWEpWTFkrQ1hBU3VHdk8vQXVxN0d1RWpEZkdLZzFvS2Exei9kbW1pOUk5U1VHTmhsMEF0ZnVsSEFhd29Zcm5Ta21OWEFWdUdFaHJFVlh2VUYrQTVDdDJQcU5PakRldHluYTRDbWVVb2xtZVhMTjRBcTdDNVNqMTBRN3lqZ2wrdDZDTnhTUkhtSTVYK0Nwd3JlWUIzUWZkcW5hNHEyMUtkQnVjNEdvWnNuNDlaT09pVmlud0hxSzlXemp2Z2V3ZUVoMkFVNSt2dHhaOUNkOVdxa2g0OVYxOEU1b2o2dlZ5bjBSU3RBeUdJTzVlZFhSS2Q1QjBWR1ZYcTJ5cjN4WXArNVV0K0M0UUo0UDFOMzM5cFFNalJlamo0dmIvRGNyNnJRYzNPLzByam10WnBlWUNCaUNIZkNlbVJiTmhiSy9wTlVQYzN3Zkt5NWYyRDdPbEwzL3VQaHZlL29VNFQwRjhmK1ZOTTJ2eW9pdjBqSytLSFFmZEhxKzBibmN6NG96NzMvK1k2TGJLdzFvLzVCN2VPZjFSbC8wZHU5Qjl0bi85YnZyZi9qK3YwaDZ0dG4ydHAvci80ODE5eTQvenY1MzkxdXZ6emZ3RGlmejZwaFQxTVBnQUFBQUJKUlU1RXJrSmdnZz09Iik7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtkaXJlY3Rpb246bHRyO2hlaWdodDoxMzBweDt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAuY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzc3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lO21hcmdpbjozcHggLTNweDtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGV9LmNvbG9yLXBpY2tlciAuY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzczpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5jb2xvci1waWNrZXIgLmNwLWFkZC1jb2xvci1idXR0b24tY2xhc3M6ZGlzYWJsZWR7Y29sb3I6Izk5OTtjdXJzb3I6bm90LWFsbG93ZWR9LmNvbG9yLXBpY2tlciAuY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzczpkaXNhYmxlZDpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZX0uY29sb3ItcGlja2VyIC5jcC1yZW1vdmUtY29sb3ItYnV0dG9uLWNsYXNze2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTtib3gtc2hhZG93OjFweCAxcHggNXB4ICMzMzM7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotNXB4O3RleHQtYWxpZ246Y2VudGVyO3RvcDotNXB4O3dpZHRoOjEwcHh9LmNvbG9yLXBpY2tlciAuY3AtcmVtb3ZlLWNvbG9yLWJ1dHRvbi1jbGFzczpiZWZvcmV7Ym90dG9tOjMuNXB4O2NvbnRlbnQ6IngiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxMHB4O3Bvc2l0aW9uOnJlbGF0aXZlfSddfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTpnM31dfSkse2hhbmRsZUVzYzpbe3R5cGU6d3ksYXJnczpbImRvY3VtZW50OmtleXVwLmVzYyIsWyIkZXZlbnQiXV19XSxoYW5kbGVFbnRlcjpbe3R5cGU6d3ksYXJnczpbImRvY3VtZW50OmtleXVwLmVudGVyIixbIiRldmVudCJdXX1dLGRpYWxvZ0VsZW1lbnQ6W3t0eXBlOlphLGFyZ3M6WyJkaWFsb2dQb3B1cCIse3N0YXRpYzohMH1dfV0saHVlU2xpZGVyOlt7dHlwZTpaYSxhcmdzOlsiaHVlU2xpZGVyIix7c3RhdGljOiEwfV19XSxhbHBoYVNsaWRlcjpbe3R5cGU6WmEsYXJnczpbImFscGhhU2xpZGVyIix7c3RhdGljOiEwfV19XX0pO2NsYXNzIGIze2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhKXt0aGlzLmluamVjdG9yPXQsdGhpcy5jZnI9ZSx0aGlzLmFwcFJlZj1uLHRoaXMudmNSZWY9byx0aGlzLmVsUmVmPWksdGhpcy5fc2VydmljZT1hLHRoaXMuZGlhbG9nQ3JlYXRlZD0hMSx0aGlzLmlnbm9yZUNoYW5nZXM9ITEsdGhpcy52aWV3QXR0YWNoZWRUb0FwcFJlZj0hMSx0aGlzLmNwV2lkdGg9IjIzMHB4Iix0aGlzLmNwSGVpZ2h0PSJhdXRvIix0aGlzLmNwVG9nZ2xlPSExLHRoaXMuY3BEaXNhYmxlZD0hMSx0aGlzLmNwSWdub3JlZEVsZW1lbnRzPVtdLHRoaXMuY3BGYWxsYmFja0NvbG9yPSIiLHRoaXMuY3BDb2xvck1vZGU9ImNvbG9yIix0aGlzLmNwQ215a0VuYWJsZWQ9ITEsdGhpcy5jcE91dHB1dEZvcm1hdD0iYXV0byIsdGhpcy5jcEFscGhhQ2hhbm5lbD0iZW5hYmxlZCIsdGhpcy5jcERpc2FibGVJbnB1dD0hMSx0aGlzLmNwRGlhbG9nRGlzcGxheT0icG9wdXAiLHRoaXMuY3BTYXZlQ2xpY2tPdXRzaWRlPSEwLHRoaXMuY3BDbG9zZUNsaWNrT3V0c2lkZT0hMCx0aGlzLmNwVXNlUm9vdFZpZXdDb250YWluZXI9ITEsdGhpcy5jcFBvc2l0aW9uPSJhdXRvIix0aGlzLmNwUG9zaXRpb25PZmZzZXQ9IjAlIix0aGlzLmNwUG9zaXRpb25SZWxhdGl2ZVRvQXJyb3c9ITEsdGhpcy5jcE9LQnV0dG9uPSExLHRoaXMuY3BPS0J1dHRvblRleHQ9Ik9LIix0aGlzLmNwT0tCdXR0b25DbGFzcz0iY3Atb2stYnV0dG9uLWNsYXNzIix0aGlzLmNwQ2FuY2VsQnV0dG9uPSExLHRoaXMuY3BDYW5jZWxCdXR0b25UZXh0PSJDYW5jZWwiLHRoaXMuY3BDYW5jZWxCdXR0b25DbGFzcz0iY3AtY2FuY2VsLWJ1dHRvbi1jbGFzcyIsdGhpcy5jcFByZXNldExhYmVsPSJQcmVzZXQgY29sb3JzIix0aGlzLmNwUHJlc2V0Q29sb3JzQ2xhc3M9ImNwLXByZXNldC1jb2xvcnMtY2xhc3MiLHRoaXMuY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGg9Nix0aGlzLmNwUHJlc2V0RW1wdHlNZXNzYWdlPSJObyBjb2xvcnMgYWRkZWQiLHRoaXMuY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzcz0icHJlc2V0LWVtcHR5LW1lc3NhZ2UiLHRoaXMuY3BBZGRDb2xvckJ1dHRvbj0hMSx0aGlzLmNwQWRkQ29sb3JCdXR0b25UZXh0PSJBZGQgY29sb3IiLHRoaXMuY3BBZGRDb2xvckJ1dHRvbkNsYXNzPSJjcC1hZGQtY29sb3ItYnV0dG9uLWNsYXNzIix0aGlzLmNwUmVtb3ZlQ29sb3JCdXR0b25DbGFzcz0iY3AtcmVtb3ZlLWNvbG9yLWJ1dHRvbi1jbGFzcyIsdGhpcy5jcElucHV0Q2hhbmdlPW5ldyBMaCghMCksdGhpcy5jcFRvZ2dsZUNoYW5nZT1uZXcgTGgoITApLHRoaXMuY3BTbGlkZXJDaGFuZ2U9bmV3IExoKCEwKSx0aGlzLmNwU2xpZGVyRHJhZ0VuZD1uZXcgTGgoITApLHRoaXMuY3BTbGlkZXJEcmFnU3RhcnQ9bmV3IExoKCEwKSx0aGlzLmNvbG9yUGlja2VyT3Blbj1uZXcgTGgoITApLHRoaXMuY29sb3JQaWNrZXJDbG9zZT1uZXcgTGgoITApLHRoaXMuY29sb3JQaWNrZXJDYW5jZWw9bmV3IExoKCEwKSx0aGlzLmNvbG9yUGlja2VyU2VsZWN0PW5ldyBMaCghMCksdGhpcy5jb2xvclBpY2tlckNoYW5nZT1uZXcgTGgoITEpLHRoaXMuY3BDbXlrQ29sb3JDaGFuZ2U9bmV3IExoKCEwKSx0aGlzLmNwUHJlc2V0Q29sb3JzQ2hhbmdlPW5ldyBMaCghMCl9aGFuZGxlQ2xpY2soKXt0aGlzLmlucHV0Rm9jdXMoKX1oYW5kbGVGb2N1cygpe3RoaXMuaW5wdXRGb2N1cygpfWhhbmRsZUlucHV0KHQpe3RoaXMuaW5wdXRDaGFuZ2UodCl9bmdPbkRlc3Ryb3koKXtudWxsIT10aGlzLmNtcFJlZiYmKHRoaXMudmlld0F0dGFjaGVkVG9BcHBSZWYmJnRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5jbXBSZWYuaG9zdFZpZXcpLHRoaXMuY21wUmVmLmRlc3Ryb3koKSx0aGlzLmNtcFJlZj1udWxsLHRoaXMuZGlhbG9nPW51bGwpfW5nT25DaGFuZ2VzKHQpe3QuY3BUb2dnbGUmJiF0aGlzLmNwRGlzYWJsZWQmJih0LmNwVG9nZ2xlLmN1cnJlbnRWYWx1ZT90aGlzLm9wZW5EaWFsb2coKTp0LmNwVG9nZ2xlLmN1cnJlbnRWYWx1ZXx8dGhpcy5jbG9zZURpYWxvZygpKSx0LmNvbG9yUGlja2VyJiYodGhpcy5kaWFsb2cmJiF0aGlzLmlnbm9yZUNoYW5nZXMmJigiaW5saW5lIj09PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiZ0aGlzLmRpYWxvZy5zZXRJbml0aWFsQ29sb3IodC5jb2xvclBpY2tlci5jdXJyZW50VmFsdWUpLHRoaXMuZGlhbG9nLnNldENvbG9yRnJvbVN0cmluZyh0LmNvbG9yUGlja2VyLmN1cnJlbnRWYWx1ZSwhMSksdGhpcy5jcFVzZVJvb3RWaWV3Q29udGFpbmVyJiYiaW5saW5lIiE9PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiZ0aGlzLmNtcFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCkpLHRoaXMuaWdub3JlQ2hhbmdlcz0hMSksKHQuY3BQcmVzZXRMYWJlbHx8dC5jcFByZXNldENvbG9ycykmJnRoaXMuZGlhbG9nJiZ0aGlzLmRpYWxvZy5zZXRQcmVzZXRDb25maWcodGhpcy5jcFByZXNldExhYmVsLHRoaXMuY3BQcmVzZXRDb2xvcnMpfW9wZW5EaWFsb2coKXtpZih0aGlzLmRpYWxvZ0NyZWF0ZWQpdGhpcy5kaWFsb2cmJnRoaXMuZGlhbG9nLm9wZW5EaWFsb2codGhpcy5jb2xvclBpY2tlcik7ZWxzZXtsZXQgdD10aGlzLnZjUmVmO2lmKHRoaXMuZGlhbG9nQ3JlYXRlZD0hMCx0aGlzLnZpZXdBdHRhY2hlZFRvQXBwUmVmPSExLHRoaXMuY3BVc2VSb290Vmlld0NvbnRhaW5lciYmImlubGluZSIhPT10aGlzLmNwRGlhbG9nRGlzcGxheSl7Y29uc3QgZT10aGlzLmluamVjdG9yLmdldCh0aGlzLmFwcFJlZi5jb21wb25lbnRUeXBlc1swXSxycC5OVUxMKTtlIT09cnAuTlVMTD8odD1lLnZjUmVmfHxlLnZpZXdDb250YWluZXJSZWZ8fHRoaXMudmNSZWYsdD09PXRoaXMudmNSZWYmJmNvbnNvbGUud2FybigiWW91IGFyZSB1c2luZyBjcFVzZVJvb3RWaWV3Q29udGFpbmVyLCBidXQgdGhlIHJvb3QgY29tcG9uZW50IGlzIG5vdCBleHBvc2luZyB2aWV3Q29udGFpbmVyUmVmIVBsZWFzZSBleHBvc2UgaXQgYnkgYWRkaW5nICdwdWJsaWMgdmNSZWY6IFZpZXdDb250YWluZXJSZWYnIHRvIHRoZSBjb25zdHJ1Y3Rvci4iKSk6dGhpcy52aWV3QXR0YWNoZWRUb0FwcFJlZj0hMH1jb25zdCBlPXRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGgzKTtpZih0aGlzLnZpZXdBdHRhY2hlZFRvQXBwUmVmKXRoaXMuY21wUmVmPWUuY3JlYXRlKHRoaXMuaW5qZWN0b3IpLHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jbXBSZWYuaG9zdFZpZXcpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5jbXBSZWYuaG9zdFZpZXcucm9vdE5vZGVzWzBdKTtlbHNle2NvbnN0IG49d20uZnJvbVJlc29sdmVkUHJvdmlkZXJzKFtdLHQucGFyZW50SW5qZWN0b3IpO3RoaXMuY21wUmVmPXQuY3JlYXRlQ29tcG9uZW50KGUsMCxuLFtdKX10aGlzLmNtcFJlZi5pbnN0YW5jZS5zZXR1cERpYWxvZyh0aGlzLHRoaXMuZWxSZWYsdGhpcy5jb2xvclBpY2tlcix0aGlzLmNwV2lkdGgsdGhpcy5jcEhlaWdodCx0aGlzLmNwRGlhbG9nRGlzcGxheSx0aGlzLmNwRmFsbGJhY2tDb2xvcix0aGlzLmNwQ29sb3JNb2RlLHRoaXMuY3BDbXlrRW5hYmxlZCx0aGlzLmNwQWxwaGFDaGFubmVsLHRoaXMuY3BPdXRwdXRGb3JtYXQsdGhpcy5jcERpc2FibGVJbnB1dCx0aGlzLmNwSWdub3JlZEVsZW1lbnRzLHRoaXMuY3BTYXZlQ2xpY2tPdXRzaWRlLHRoaXMuY3BDbG9zZUNsaWNrT3V0c2lkZSx0aGlzLmNwVXNlUm9vdFZpZXdDb250YWluZXIsdGhpcy5jcFBvc2l0aW9uLHRoaXMuY3BQb3NpdGlvbk9mZnNldCx0aGlzLmNwUG9zaXRpb25SZWxhdGl2ZVRvQXJyb3csdGhpcy5jcFByZXNldExhYmVsLHRoaXMuY3BQcmVzZXRDb2xvcnMsdGhpcy5jcFByZXNldENvbG9yc0NsYXNzLHRoaXMuY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGgsdGhpcy5jcFByZXNldEVtcHR5TWVzc2FnZSx0aGlzLmNwUHJlc2V0RW1wdHlNZXNzYWdlQ2xhc3MsdGhpcy5jcE9LQnV0dG9uLHRoaXMuY3BPS0J1dHRvbkNsYXNzLHRoaXMuY3BPS0J1dHRvblRleHQsdGhpcy5jcENhbmNlbEJ1dHRvbix0aGlzLmNwQ2FuY2VsQnV0dG9uQ2xhc3MsdGhpcy5jcENhbmNlbEJ1dHRvblRleHQsdGhpcy5jcEFkZENvbG9yQnV0dG9uLHRoaXMuY3BBZGRDb2xvckJ1dHRvbkNsYXNzLHRoaXMuY3BBZGRDb2xvckJ1dHRvblRleHQsdGhpcy5jcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3MsdGhpcy5lbFJlZiksdGhpcy5kaWFsb2c9dGhpcy5jbXBSZWYuaW5zdGFuY2UsdGhpcy52Y1JlZiE9PXQmJnRoaXMuY21wUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKX19Y2xvc2VEaWFsb2coKXt0aGlzLmRpYWxvZyYmInBvcHVwIj09PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiZ0aGlzLmRpYWxvZy5jbG9zZURpYWxvZygpfWNteWtDaGFuZ2VkKHQpe3RoaXMuY3BDbXlrQ29sb3JDaGFuZ2UuZW1pdCh0KX1zdGF0ZUNoYW5nZWQodCl7dGhpcy5jcFRvZ2dsZUNoYW5nZS5lbWl0KHQpLHQ/dGhpcy5jb2xvclBpY2tlck9wZW4uZW1pdCh0aGlzLmNvbG9yUGlja2VyKTp0aGlzLmNvbG9yUGlja2VyQ2xvc2UuZW1pdCh0aGlzLmNvbG9yUGlja2VyKX1jb2xvckNoYW5nZWQodCxlPSEwKXt0aGlzLmlnbm9yZUNoYW5nZXM9ZSx0aGlzLmNvbG9yUGlja2VyQ2hhbmdlLmVtaXQodCl9Y29sb3JTZWxlY3RlZCh0KXt0aGlzLmNvbG9yUGlja2VyU2VsZWN0LmVtaXQodCl9Y29sb3JDYW5jZWxlZCgpe3RoaXMuY29sb3JQaWNrZXJDYW5jZWwuZW1pdCgpfWlucHV0Rm9jdXMoKXtjb25zdCB0PXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxlPXRoaXMuY3BJZ25vcmVkRWxlbWVudHMuZmlsdGVyKChlPT5lPT09dCkpO3RoaXMuY3BEaXNhYmxlZHx8ZS5sZW5ndGh8fCgidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiZ0PT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD90aGlzLm9wZW5EaWFsb2coKTp0aGlzLmRpYWxvZyYmdGhpcy5kaWFsb2cuc2hvdz90aGlzLmNsb3NlRGlhbG9nKCk6dGhpcy5vcGVuRGlhbG9nKCkpfWlucHV0Q2hhbmdlKHQpe3RoaXMuZGlhbG9nP3RoaXMuZGlhbG9nLnNldENvbG9yRnJvbVN0cmluZyh0LnRhcmdldC52YWx1ZSwhMCk6KHRoaXMuY29sb3JQaWNrZXI9dC50YXJnZXQudmFsdWUsdGhpcy5jb2xvclBpY2tlckNoYW5nZS5lbWl0KHRoaXMuY29sb3JQaWNrZXIpKX1pbnB1dENoYW5nZWQodCl7dGhpcy5jcElucHV0Q2hhbmdlLmVtaXQodCl9c2xpZGVyQ2hhbmdlZCh0KXt0aGlzLmNwU2xpZGVyQ2hhbmdlLmVtaXQodCl9c2xpZGVyRHJhZ0VuZCh0KXt0aGlzLmNwU2xpZGVyRHJhZ0VuZC5lbWl0KHQpfXNsaWRlckRyYWdTdGFydCh0KXt0aGlzLmNwU2xpZGVyRHJhZ1N0YXJ0LmVtaXQodCl9cHJlc2V0Q29sb3JzQ2hhbmdlZCh0KXt0aGlzLmNwUHJlc2V0Q29sb3JzQ2hhbmdlLmVtaXQodCl9fWIzLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxiMykoU20ocnApLFNtKHVnKSxTbShPXyksU20oZWgpLFNtKGhnKSxTbShnMykpfSxiMy7JtWRpcj1sbyh7dHlwZTpiMyxzZWxlY3RvcnM6W1siIiwiY29sb3JQaWNrZXIiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5oYW5kbGVDbGljaygpfSkpKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5oYW5kbGVGb2N1cygpfSkpKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uaGFuZGxlSW5wdXQoZSl9KSl9LGlucHV0czp7Y3BXaWR0aDoiY3BXaWR0aCIsY3BIZWlnaHQ6ImNwSGVpZ2h0IixjcFRvZ2dsZToiY3BUb2dnbGUiLGNwRGlzYWJsZWQ6ImNwRGlzYWJsZWQiLGNwSWdub3JlZEVsZW1lbnRzOiJjcElnbm9yZWRFbGVtZW50cyIsY3BGYWxsYmFja0NvbG9yOiJjcEZhbGxiYWNrQ29sb3IiLGNwQ29sb3JNb2RlOiJjcENvbG9yTW9kZSIsY3BDbXlrRW5hYmxlZDoiY3BDbXlrRW5hYmxlZCIsY3BPdXRwdXRGb3JtYXQ6ImNwT3V0cHV0Rm9ybWF0IixjcEFscGhhQ2hhbm5lbDoiY3BBbHBoYUNoYW5uZWwiLGNwRGlzYWJsZUlucHV0OiJjcERpc2FibGVJbnB1dCIsY3BEaWFsb2dEaXNwbGF5OiJjcERpYWxvZ0Rpc3BsYXkiLGNwU2F2ZUNsaWNrT3V0c2lkZToiY3BTYXZlQ2xpY2tPdXRzaWRlIixjcENsb3NlQ2xpY2tPdXRzaWRlOiJjcENsb3NlQ2xpY2tPdXRzaWRlIixjcFVzZVJvb3RWaWV3Q29udGFpbmVyOiJjcFVzZVJvb3RWaWV3Q29udGFpbmVyIixjcFBvc2l0aW9uOiJjcFBvc2l0aW9uIixjcFBvc2l0aW9uT2Zmc2V0OiJjcFBvc2l0aW9uT2Zmc2V0IixjcFBvc2l0aW9uUmVsYXRpdmVUb0Fycm93OiJjcFBvc2l0aW9uUmVsYXRpdmVUb0Fycm93IixjcE9LQnV0dG9uOiJjcE9LQnV0dG9uIixjcE9LQnV0dG9uVGV4dDoiY3BPS0J1dHRvblRleHQiLGNwT0tCdXR0b25DbGFzczoiY3BPS0J1dHRvbkNsYXNzIixjcENhbmNlbEJ1dHRvbjoiY3BDYW5jZWxCdXR0b24iLGNwQ2FuY2VsQnV0dG9uVGV4dDoiY3BDYW5jZWxCdXR0b25UZXh0IixjcENhbmNlbEJ1dHRvbkNsYXNzOiJjcENhbmNlbEJ1dHRvbkNsYXNzIixjcFByZXNldExhYmVsOiJjcFByZXNldExhYmVsIixjcFByZXNldENvbG9yc0NsYXNzOiJjcFByZXNldENvbG9yc0NsYXNzIixjcE1heFByZXNldENvbG9yc0xlbmd0aDoiY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGgiLGNwUHJlc2V0RW1wdHlNZXNzYWdlOiJjcFByZXNldEVtcHR5TWVzc2FnZSIsY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzczoiY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzcyIsY3BBZGRDb2xvckJ1dHRvbjoiY3BBZGRDb2xvckJ1dHRvbiIsY3BBZGRDb2xvckJ1dHRvblRleHQ6ImNwQWRkQ29sb3JCdXR0b25UZXh0IixjcEFkZENvbG9yQnV0dG9uQ2xhc3M6ImNwQWRkQ29sb3JCdXR0b25DbGFzcyIsY3BSZW1vdmVDb2xvckJ1dHRvbkNsYXNzOiJjcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3MiLGNvbG9yUGlja2VyOiJjb2xvclBpY2tlciIsY3BQcmVzZXRDb2xvcnM6ImNwUHJlc2V0Q29sb3JzIn0sb3V0cHV0czp7Y3BJbnB1dENoYW5nZToiY3BJbnB1dENoYW5nZSIsY3BUb2dnbGVDaGFuZ2U6ImNwVG9nZ2xlQ2hhbmdlIixjcFNsaWRlckNoYW5nZToiY3BTbGlkZXJDaGFuZ2UiLGNwU2xpZGVyRHJhZ0VuZDoiY3BTbGlkZXJEcmFnRW5kIixjcFNsaWRlckRyYWdTdGFydDoiY3BTbGlkZXJEcmFnU3RhcnQiLGNvbG9yUGlja2VyT3BlbjoiY29sb3JQaWNrZXJPcGVuIixjb2xvclBpY2tlckNsb3NlOiJjb2xvclBpY2tlckNsb3NlIixjb2xvclBpY2tlckNhbmNlbDoiY29sb3JQaWNrZXJDYW5jZWwiLGNvbG9yUGlja2VyU2VsZWN0OiJjb2xvclBpY2tlclNlbGVjdCIsY29sb3JQaWNrZXJDaGFuZ2U6ImNvbG9yUGlja2VyQ2hhbmdlIixjcENteWtDb2xvckNoYW5nZToiY3BDbXlrQ29sb3JDaGFuZ2UiLGNwUHJlc2V0Q29sb3JzQ2hhbmdlOiJjcFByZXNldENvbG9yc0NoYW5nZSJ9LGV4cG9ydEFzOlsibmd4Q29sb3JQaWNrZXIiXSxmZWF0dXJlczpbQm9dfSksYjMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpycH0se3R5cGU6dWd9LHt0eXBlOk9ffSx7dHlwZTplaH0se3R5cGU6aGd9LHt0eXBlOmczfV0sYjMucHJvcERlY29yYXRvcnM9e2NvbG9yUGlja2VyOlt7dHlwZTp4eX1dLGNwV2lkdGg6W3t0eXBlOnh5fV0sY3BIZWlnaHQ6W3t0eXBlOnh5fV0sY3BUb2dnbGU6W3t0eXBlOnh5fV0sY3BEaXNhYmxlZDpbe3R5cGU6eHl9XSxjcElnbm9yZWRFbGVtZW50czpbe3R5cGU6eHl9XSxjcEZhbGxiYWNrQ29sb3I6W3t0eXBlOnh5fV0sY3BDb2xvck1vZGU6W3t0eXBlOnh5fV0sY3BDbXlrRW5hYmxlZDpbe3R5cGU6eHl9XSxjcE91dHB1dEZvcm1hdDpbe3R5cGU6eHl9XSxjcEFscGhhQ2hhbm5lbDpbe3R5cGU6eHl9XSxjcERpc2FibGVJbnB1dDpbe3R5cGU6eHl9XSxjcERpYWxvZ0Rpc3BsYXk6W3t0eXBlOnh5fV0sY3BTYXZlQ2xpY2tPdXRzaWRlOlt7dHlwZTp4eX1dLGNwQ2xvc2VDbGlja091dHNpZGU6W3t0eXBlOnh5fV0sY3BVc2VSb290Vmlld0NvbnRhaW5lcjpbe3R5cGU6eHl9XSxjcFBvc2l0aW9uOlt7dHlwZTp4eX1dLGNwUG9zaXRpb25PZmZzZXQ6W3t0eXBlOnh5fV0sY3BQb3NpdGlvblJlbGF0aXZlVG9BcnJvdzpbe3R5cGU6eHl9XSxjcE9LQnV0dG9uOlt7dHlwZTp4eX1dLGNwT0tCdXR0b25UZXh0Olt7dHlwZTp4eX1dLGNwT0tCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcENhbmNlbEJ1dHRvbjpbe3R5cGU6eHl9XSxjcENhbmNlbEJ1dHRvblRleHQ6W3t0eXBlOnh5fV0sY3BDYW5jZWxCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcFByZXNldExhYmVsOlt7dHlwZTp4eX1dLGNwUHJlc2V0Q29sb3JzOlt7dHlwZTp4eX1dLGNwUHJlc2V0Q29sb3JzQ2xhc3M6W3t0eXBlOnh5fV0sY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGg6W3t0eXBlOnh5fV0sY3BQcmVzZXRFbXB0eU1lc3NhZ2U6W3t0eXBlOnh5fV0sY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzczpbe3R5cGU6eHl9XSxjcEFkZENvbG9yQnV0dG9uOlt7dHlwZTp4eX1dLGNwQWRkQ29sb3JCdXR0b25UZXh0Olt7dHlwZTp4eX1dLGNwQWRkQ29sb3JCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3M6W3t0eXBlOnh5fV0sY3BJbnB1dENoYW5nZTpbe3R5cGU6T3l9XSxjcFRvZ2dsZUNoYW5nZTpbe3R5cGU6T3l9XSxjcFNsaWRlckNoYW5nZTpbe3R5cGU6T3l9XSxjcFNsaWRlckRyYWdFbmQ6W3t0eXBlOk95fV0sY3BTbGlkZXJEcmFnU3RhcnQ6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJPcGVuOlt7dHlwZTpPeX1dLGNvbG9yUGlja2VyQ2xvc2U6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJDYW5jZWw6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJTZWxlY3Q6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJDaGFuZ2U6W3t0eXBlOk95fV0sY3BDbXlrQ29sb3JDaGFuZ2U6W3t0eXBlOk95fV0sY3BQcmVzZXRDb2xvcnNDaGFuZ2U6W3t0eXBlOk95fV0saGFuZGxlQ2xpY2s6W3t0eXBlOnd5LGFyZ3M6WyJjbGljayJdfV0saGFuZGxlRm9jdXM6W3t0eXBlOnd5LGFyZ3M6WyJmb2N1cyJdfV0saGFuZGxlSW5wdXQ6W3t0eXBlOnd5LGFyZ3M6WyJpbnB1dCIsWyIkZXZlbnQiXV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChiMyxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbY29sb3JQaWNrZXJdIixleHBvcnRBczoibmd4Q29sb3JQaWNrZXIifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6cnB9LHt0eXBlOnVnfSx7dHlwZTpPX30se3R5cGU6ZWh9LHt0eXBlOmhnfSx7dHlwZTpnM31dfSkse2NwV2lkdGg6W3t0eXBlOnh5fV0sY3BIZWlnaHQ6W3t0eXBlOnh5fV0sY3BUb2dnbGU6W3t0eXBlOnh5fV0sY3BEaXNhYmxlZDpbe3R5cGU6eHl9XSxjcElnbm9yZWRFbGVtZW50czpbe3R5cGU6eHl9XSxjcEZhbGxiYWNrQ29sb3I6W3t0eXBlOnh5fV0sY3BDb2xvck1vZGU6W3t0eXBlOnh5fV0sY3BDbXlrRW5hYmxlZDpbe3R5cGU6eHl9XSxjcE91dHB1dEZvcm1hdDpbe3R5cGU6eHl9XSxjcEFscGhhQ2hhbm5lbDpbe3R5cGU6eHl9XSxjcERpc2FibGVJbnB1dDpbe3R5cGU6eHl9XSxjcERpYWxvZ0Rpc3BsYXk6W3t0eXBlOnh5fV0sY3BTYXZlQ2xpY2tPdXRzaWRlOlt7dHlwZTp4eX1dLGNwQ2xvc2VDbGlja091dHNpZGU6W3t0eXBlOnh5fV0sY3BVc2VSb290Vmlld0NvbnRhaW5lcjpbe3R5cGU6eHl9XSxjcFBvc2l0aW9uOlt7dHlwZTp4eX1dLGNwUG9zaXRpb25PZmZzZXQ6W3t0eXBlOnh5fV0sY3BQb3NpdGlvblJlbGF0aXZlVG9BcnJvdzpbe3R5cGU6eHl9XSxjcE9LQnV0dG9uOlt7dHlwZTp4eX1dLGNwT0tCdXR0b25UZXh0Olt7dHlwZTp4eX1dLGNwT0tCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcENhbmNlbEJ1dHRvbjpbe3R5cGU6eHl9XSxjcENhbmNlbEJ1dHRvblRleHQ6W3t0eXBlOnh5fV0sY3BDYW5jZWxCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcFByZXNldExhYmVsOlt7dHlwZTp4eX1dLGNwUHJlc2V0Q29sb3JzQ2xhc3M6W3t0eXBlOnh5fV0sY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGg6W3t0eXBlOnh5fV0sY3BQcmVzZXRFbXB0eU1lc3NhZ2U6W3t0eXBlOnh5fV0sY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzczpbe3R5cGU6eHl9XSxjcEFkZENvbG9yQnV0dG9uOlt7dHlwZTp4eX1dLGNwQWRkQ29sb3JCdXR0b25UZXh0Olt7dHlwZTp4eX1dLGNwQWRkQ29sb3JCdXR0b25DbGFzczpbe3R5cGU6eHl9XSxjcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3M6W3t0eXBlOnh5fV0sY3BJbnB1dENoYW5nZTpbe3R5cGU6T3l9XSxjcFRvZ2dsZUNoYW5nZTpbe3R5cGU6T3l9XSxjcFNsaWRlckNoYW5nZTpbe3R5cGU6T3l9XSxjcFNsaWRlckRyYWdFbmQ6W3t0eXBlOk95fV0sY3BTbGlkZXJEcmFnU3RhcnQ6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJPcGVuOlt7dHlwZTpPeX1dLGNvbG9yUGlja2VyQ2xvc2U6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJDYW5jZWw6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJTZWxlY3Q6W3t0eXBlOk95fV0sY29sb3JQaWNrZXJDaGFuZ2U6W3t0eXBlOk95fV0sY3BDbXlrQ29sb3JDaGFuZ2U6W3t0eXBlOk95fV0sY3BQcmVzZXRDb2xvcnNDaGFuZ2U6W3t0eXBlOk95fV0saGFuZGxlQ2xpY2s6W3t0eXBlOnd5LGFyZ3M6WyJjbGljayJdfV0saGFuZGxlRm9jdXM6W3t0eXBlOnd5LGFyZ3M6WyJmb2N1cyJdfV0saGFuZGxlSW5wdXQ6W3t0eXBlOnd5LGFyZ3M6WyJpbnB1dCIsWyIkZXZlbnQiXV19XSxjb2xvclBpY2tlcjpbe3R5cGU6eHl9XSxjcFByZXNldENvbG9yczpbe3R5cGU6eHl9XX0pO2NsYXNzIHkze315My7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eTMpfSx5My7JtW1vZD1hbyh7dHlwZTp5M30pLHkzLsm1aW5qPXZuKHtwcm92aWRlcnM6W2czXSxpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeTMsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltXTV0sZXhwb3J0czpbYjNdLHByb3ZpZGVyczpbZzNdLGRlY2xhcmF0aW9uczpbaDMsYjMscDMsbTNdLGVudHJ5Q29tcG9uZW50czpbaDNdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oeTMse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltoMyxiMyxwMyxtM119LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bV01dfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW2IzXX19KTtjb25zdCBfMz1bImZpbHRlciJdO2Z1bmN0aW9uIEMzKHQsZSl7MSZ0JiZJbSgwKX1mdW5jdGlvbiBNMyh0LGUpezEmdCYmSW0oMCl9Y29uc3QgdjM9ZnVuY3Rpb24odCl7cmV0dXJue2l0ZW06dH19O2Z1bmN0aW9uIHgzKHQsZSl7aWYoMSZ0JiYoTm0oMCksUXAoMSxNMywxLDAsIm5nLWNvbnRhaW5lciIsMTIpLHptKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtZbSgpO2NvbnN0IG49JHAoMTQpO3JjKDEpLERtKCJuZ1RlbXBsYXRlT3V0bGV0IixuKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLE1oKDIsdjMsdCkpfX1mdW5jdGlvbiBPMyh0LGUpezEmdCYmKFJtKDAsImRpdiIsMTMpLFRtKDEsIm1hdC1zcGlubmVyIiwxNCksQW0oKSl9ZnVuY3Rpb24gUDModCxlKXsxJnQmJihSbSgwLCJkaXYiLDE1KSxrdSgxLCJObyBSdW5zIiksQW0oKSl9ZnVuY3Rpb24gdzModCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDE1KSxSbSgxLCJzcGFuIiksa3UoMiwnTm8gcnVucyBtYXRjaCAiJyksUm0oMywiY29kZSIpLGt1KDQpLEFtKCksa3UoNSwnIicpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoNCksU3UodC5yZWdleEZpbHRlcil9fWNvbnN0IGszPWZ1bmN0aW9uKCl7cmV0dXJuWzUsMTAsMjBdfTtmdW5jdGlvbiBTMyh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsIm1hdC1wYWdpbmF0b3IiLDE2KSxWbSgicGFnZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25QYWdpbmF0aW9uQ2hhbmdlLmVtaXQobil9KSksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtEbSgicGFnZVNpemVPcHRpb25zIixDaCg0LGszKSkoInBhZ2VJbmRleCIsdC5wYWdpbmF0aW9uT3B0aW9uLnBhZ2VJbmRleCkoInBhZ2VTaXplIix0LnBhZ2luYXRpb25PcHRpb24ucGFnZVNpemUpKCJsZW5ndGgiLHQuZmlsdGVyZWRJdGVtc0xlbmd0aCl9fWZ1bmN0aW9uIEQzKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwibWF0LWNoZWNrYm94IiwyNiksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oMykuaGFuZGxlUGFnZVRvZ2dsZSgpfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDMpO0RtKCJjaGVja2VkIix0LmFsbFBhZ2VJdGVtc1NlbGVjdGVkKCkpKCJpbmRldGVybWluYXRlIiwhdC5hbGxQYWdlSXRlbXNTZWxlY3RlZCgpJiZ0LnNvbWVQYWdlSXRlbXNTZWxlY3RlZCgpKX19Y29uc3QgRTM9ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6dH19O2Z1bmN0aW9uIFIzKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMjcpLGt1KDEsIkV4cGVyaW1lbnQiKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMyk7RG0oIm1hdC1zb3J0LWhlYWRlciIsTWgoMSxFMyx0LlNvcnRUeXBlLkVYUEVSSU1FTlRfTkFNRSkpfX1mdW5jdGlvbiBBMyh0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDI3KSxrdSgxLCJSdW4iKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMyk7RG0oIm1hdC1zb3J0LWhlYWRlciIsTWgoMSxFMyx0LlNvcnRUeXBlLlJVTl9OQU1FKSl9fWZ1bmN0aW9uIFQzKHQsZSl7MSZ0JiZUbSgwLCJydW5zLWdyb3VwLW1lbnUtYnV0dG9uIiwyOSksMiZ0JiZEbSgiZXhwZXJpbWVudElkcyIsWW0oNCkuZXhwZXJpbWVudElkcyl9ZnVuY3Rpb24gTjModCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiksUXAoMSxUMywxLDEsInJ1bnMtZ3JvdXAtbWVudS1idXR0b24iLDI4KSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMyk7cmMoMSksRG0oIm5nSWYiLHQuc2hvd0dyb3VwQ29udHJvbCl9fWNvbnN0IHozPWZ1bmN0aW9uKHQpe3JldHVyblsiY29sdW1uIix0XX07ZnVuY3Rpb24gSTModCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiwyMSksTm0oMSwyMiksUXAoMixEMywxLDIsIm1hdC1jaGVja2JveCIsMjMpLFFwKDMsUjMsMiwzLCJzcGFuIiwyNCksUXAoNCxBMywyLDMsInNwYW4iLDI0KSxRcCg1LE4zLDIsMSwic3BhbiIsMjUpLHptKCksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7RG0oIm5nQ2xhc3MiLE1oKDYsejMsInRiLWNvbHVtbi0iK3QpKSxyYygxKSxEbSgibmdTd2l0Y2giLHQpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLG4uUnVuc1RhYmxlQ29sdW1uLkNIRUNLQk9YKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5FWFBFUklNRU5UX05BTUUpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLG4uUnVuc1RhYmxlQ29sdW1uLlJVTl9OQU1FKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5SVU5fQ09MT1IpfX1mdW5jdGlvbiBIMyh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO05tKDApLFJtKDEsImRpdiIsMzgpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCl9KSksUm0oMiwidGItcmFuZ2UtaW5wdXQiLDM5KSxWbSgidmFsdWUiLChmdW5jdGlvbiBlKG4pe2hpKHQpO2NvbnN0IG89WW0oMikuJGltcGxpY2l0O3JldHVybiBZbSgyKS5oYW5kbGVIcGFyYW1JbnRlcnZhbENoYW5nZWQobyxuKX0pKSxBbSgpLEFtKCksem0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oMikuJGltcGxpY2l0O3JjKDIpLERtKCJtaW4iLHQuZmlsdGVyLm1pblZhbHVlKSgibWF4Iix0LmZpbHRlci5tYXhWYWx1ZSkoImxvd2VyVmFsdWUiLHQuZmlsdGVyLmZpbHRlckxvd2VyVmFsdWUpKCJ1cHBlclZhbHVlIix0LmZpbHRlci5maWx0ZXJVcHBlclZhbHVlKX19ZnVuY3Rpb24gRjModCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDQxKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpfSkpLFJtKDEsIm1hdC1jaGVja2JveCIsMzcpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7Y29uc3Qgbj1oaSh0KS4kaW1wbGljaXQsbz1ZbSgzKS4kaW1wbGljaXQ7cmV0dXJuIFltKDIpLmhhbmRsZUhwYXJhbURpc2NyZXRlQ2hhbmdlZChvLG4pfSkpLFJtKDIsInNwYW4iKSxrdSgzKSxBbSgpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgzKS4kaW1wbGljaXQ7cmMoMSksRG0oImNoZWNrZWQiLG4uZmlsdGVyLmZpbHRlclZhbHVlcy5pbmNsdWRlcyh0KSkscmMoMiksU3UodCl9fWZ1bmN0aW9uIEwzKHQsZSl7aWYoMSZ0JiYoTm0oMCksUXAoMSxGMyw0LDIsImRpdiIsNDApLHptKCkpLDImdCl7Y29uc3QgdD1ZbSgyKS4kaW1wbGljaXQ7cmMoMSksRG0oIm5nRm9yT2YiLHQuZmlsdGVyLnBvc3NpYmxlVmFsdWVzKX19ZnVuY3Rpb24gQjModCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtObSgwKSxSbSgxLCJidXR0b24iLDMzKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpfSkpLFRtKDIsIm1hdC1pY29uIiwzNCksQW0oKSxSbSgzLCJtYXQtbWVudSIsbnVsbCwzNSksUm0oNSwiZGl2IiwzNiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSxSbSg2LCJtYXQtY2hlY2tib3giLDM3KSxWbSgiY2hhbmdlIiwoZnVuY3Rpb24gZSgpe2hpKHQpO2NvbnN0IG49WW0oKS4kaW1wbGljaXQ7cmV0dXJuIFltKDIpLmhhbmRsZUhwYXJhbUluY2x1ZGVVbmRlZmluZWRUb2dnbGVkKG4pfSkpLFJtKDcsInNwYW4iKSxrdSg4LCIoc2hvdyBlbXB0eSB2YWx1ZSkiKSxBbSgpLEFtKCksQW0oKSxRcCg5LEgzLDMsNCwibmctY29udGFpbmVyIiwzMiksUXAoMTAsTDMsMiwxLCJuZy1jb250YWluZXIiLDMyKSxBbSgpLHptKCl9aWYoMiZ0KXtjb25zdCB0PSRwKDQpLGU9WW0oKS4kaW1wbGljaXQsbj1ZbSgyKTtyYygxKSxEbSgibWF0TWVudVRyaWdnZXJGb3IiLHQpLGpwKCJhcmlhLWxhYmVsIiwiRmlsdGVyIGhwYXJhbSAiKyhlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKSxyYyg1KSxEbSgiY2hlY2tlZCIsZS5maWx0ZXIuaW5jbHVkZVVuZGVmaW5lZCkscmMoMyksRG0oIm5nSWYiLGUuZmlsdGVyLnR5cGU9PT1uLkRvbWFpblR5cGUuSU5URVJWQUwpLHJjKDEpLERtKCJuZ0lmIixlLmZpbHRlci50eXBlPT09bi5Eb21haW5UeXBlLkRJU0NSRVRFKX19Y29uc3QgVjM9ZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZTp0LG5hbWU6ZX19O2Z1bmN0aW9uIGozKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMzApLFJtKDEsInNwYW4iLDMxKSxrdSgyKSxBbSgpLFFwKDMsQjMsMTEsNSwibmctY29udGFpbmVyIiwzMiksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7RG0oIm1hdC1zb3J0LWhlYWRlciIsdmgoMyxWMyxuLlNvcnRUeXBlLkhQQVJBTSx0Lm5hbWUpKSxyYygyKSxTdSh0LmRpc3BsYXlOYW1lfHx0Lm5hbWUpLHJjKDEpLERtKCJuZ0lmIix0LmZpbHRlcil9fWZ1bmN0aW9uIFUzKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Tm0oMCksUm0oMSwiYnV0dG9uIiwzMyksVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSxUbSgyLCJtYXQtaWNvbiIsMzQpLEFtKCksUm0oMywibWF0LW1lbnUiLG51bGwsMzUpLFJtKDUsImRpdiIsMzYpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCl9KSksUm0oNiwibWF0LWNoZWNrYm94IiwzNyksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIGUoKXtoaSh0KTtjb25zdCBuPVltKCkuJGltcGxpY2l0O3JldHVybiBZbSgyKS5oYW5kbGVNZXRyaWNJbmNsdWRlVW5kZWZpbmVkQ2hhbmdlZChuKX0pKSxSbSg3LCJzcGFuIiksa3UoOCwiKHNob3cgZW1wdHkgdmFsdWUpIiksQW0oKSxBbSgpLEFtKCksUm0oOSwiZGl2IiwzOCksVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSxSbSgxMCwidGItcmFuZ2UtaW5wdXQiLDM5KSxWbSgidmFsdWUiLChmdW5jdGlvbiBlKG4pe2hpKHQpO2NvbnN0IG89WW0oKS4kaW1wbGljaXQ7cmV0dXJuIFltKDIpLmhhbmRsZU1ldHJpY0ZpbHRlckNoYW5nZWQobyxuKX0pKSxBbSgpLEFtKCksQW0oKSx6bSgpfWlmKDImdCl7Y29uc3QgdD0kcCg0KSxlPVltKCkuJGltcGxpY2l0O3JjKDEpLERtKCJtYXRNZW51VHJpZ2dlckZvciIsdCksanAoImFyaWEtbGFiZWwiLCJGaWx0ZXIgbWV0cmljICIrKGUuZGlzcGxheU5hbWV8fGUudGFnKSkscmMoNSksRG0oImNoZWNrZWQiLGUuZmlsdGVyLmluY2x1ZGVVbmRlZmluZWQpLHJjKDQpLERtKCJtaW4iLGUuZmlsdGVyLm1pblZhbHVlKSgibWF4IixlLmZpbHRlci5tYXhWYWx1ZSkoImxvd2VyVmFsdWUiLGUuZmlsdGVyLmZpbHRlckxvd2VyVmFsdWUpKCJ1cHBlclZhbHVlIixlLmZpbHRlci5maWx0ZXJVcHBlclZhbHVlKX19Y29uc3QgRzM9ZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZTp0LHRhZzplfX07ZnVuY3Rpb24gVzModCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiwzMCksUm0oMSwic3BhbiIsMzEpLGt1KDIpLEFtKCksUXAoMyxVMywxMSw3LCJuZy1jb250YWluZXIiLDMyKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgyKTtEbSgibWF0LXNvcnQtaGVhZGVyIix2aCgzLEczLG4uU29ydFR5cGUuTUVUUklDLHQudGFnKSkscmMoMiksU3UodC5kaXNwbGF5TmFtZXx8dC50YWcpLHJjKDEpLERtKCJuZ0lmIix0LmZpbHRlcil9fWZ1bmN0aW9uIFkzKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwxNyksUm0oMSwiZGl2IiwxOCksVm0oIm1hdFNvcnRDaGFuZ2UiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLmhhbmRsZVNvcnRDaGFuZ2Uobil9KSksUXAoMixJMyw2LDgsInNwYW4iLDE5KSxRcCgzLGozLDQsNiwic3BhbiIsMjApLFFwKDQsVzMsNCw2LCJzcGFuIiwyMCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLERtKCJtYXRTb3J0QWN0aXZlIix0LnNvcnRPcHRpb24uY29sdW1uKSxyYygxKSxEbSgibmdGb3JPZiIsdC5jb2x1bW5zKSxyYygxKSxEbSgibmdGb3JPZiIsdC5ocGFyYW1Db2x1bW5zKSgibmdGb3JUcmFja0J5Iix0LnRyYWNrQnlIcGFyYW1Db2x1bW4pLHJjKDEpLERtKCJuZ0Zvck9mIix0Lm1ldHJpY0NvbHVtbnMpKCJuZ0ZvclRyYWNrQnkiLHQudHJhY2tCeU1ldHJpY0NvbHVtbil9fWZ1bmN0aW9uIHEzKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwic3BhbiIpLFJtKDEsIm1hdC1jaGVja2JveCIsMzcpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7aGkodCk7Y29uc3Qgbj1ZbSgyKS5pdGVtO3JldHVybiBZbSgpLm9uU2VsZWN0aW9uVG9nZ2xlLmVtaXQobil9KSksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKS5pdGVtO3JjKDEpLERtKCJjaGVja2VkIix0LnNlbGVjdGVkKX19ZnVuY3Rpb24gWjModCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiwzMSksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpLml0ZW07anAoInRpdGxlIix0LmV4cGVyaW1lbnROYW1lKSxyYygxKSxTdSh0LmV4cGVyaW1lbnRBbGlhcyl9fWZ1bmN0aW9uIFgzKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMzEpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKS5pdGVtO3JjKDEpLFN1KHQucnVuLm5hbWUpfX1jb25zdCBLMz1mdW5jdGlvbih0KXtyZXR1cm57InJ1bi1jb2xvci1zd2F0Y2giOiEwLCJuby1jb2xvciI6dH19O2Z1bmN0aW9uIEozKHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwic3BhbiIpLFJtKDEsImJ1dHRvbiIsNDcpLFZtKCJjb2xvclBpY2tlckNoYW5nZSIsKGZ1bmN0aW9uIGUobil7aGkodCk7Y29uc3Qgbz1ZbSgyKS5pdGVtO3JldHVybiBZbSgpLm9uUnVuQ29sb3JDaGFuZ2UuZW1pdCh7cnVuSWQ6by5ydW4uaWQsbmV3Q29sb3I6bn0pfSkpLEFtKCksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oMikuaXRlbTtyYygxKSxkdSgiYmFja2dyb3VuZCIsdC5ydW5Db2xvciksRG0oIm5nQ2xhc3MiLE1oKDgsSzMsIXQucnVuQ29sb3IpKSgiY29sb3JQaWNrZXIiLHQucnVuQ29sb3IpKCJjcERpYWxvZ0Rpc3BsYXkiLCJwb3B1cCIpKCJjcFBvc2l0aW9uT2Zmc2V0IiwtMjApKCJjcFVzZVJvb3RWaWV3Q29udGFpbmVyIiwhMCkoImNwT3V0cHV0Rm9ybWF0IiwiaGV4Iil9fWZ1bmN0aW9uIFEzKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsNDUpLE5tKDEsMjIpLFFwKDIscTMsMiwxLCJzcGFuIiwyNSksUXAoMyxaMywyLDIsInNwYW4iLDQ2KSxRcCg0LFgzLDIsMSwic3BhbiIsNDYpLFFwKDUsSjMsMiwxMCwic3BhbiIsMjUpLHptKCksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7RG0oIm5nQ2xhc3MiLE1oKDYsejMsInRiLWNvbHVtbi0iK3QpKSxyYygxKSxEbSgibmdTd2l0Y2giLHQpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLG4uUnVuc1RhYmxlQ29sdW1uLkNIRUNLQk9YKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5FWFBFUklNRU5UX05BTUUpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLG4uUnVuc1RhYmxlQ29sdW1uLlJVTl9OQU1FKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5SVU5fQ09MT1IpfX1mdW5jdGlvbiAkMyh0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDQ4KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgpLml0ZW07cmMoMSksU3Uobi5ocGFyYW1zLmdldCh0Lm5hbWUpKX19ZnVuY3Rpb24gdDIodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiw0OCksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oKS5pdGVtO3JjKDEpLFN1KG4ubWV0cmljcy5nZXQodC50YWcpKX19ZnVuY3Rpb24gZTIodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDQyKSxRcCgxLFEzLDYsOCwic3BhbiIsNDMpLFFwKDIsJDMsMiwxLCJzcGFuIiw0NCksUXAoMyx0MiwyLDEsInNwYW4iLDQ0KSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS5pdGVtLG49WW0oKTtqcCgiZGF0YS1pZCIsdC5ydW4uaWQpLHJjKDEpLERtKCJuZ0Zvck9mIixuLmNvbHVtbnMpLHJjKDEpLERtKCJuZ0Zvck9mIixuLmhwYXJhbUNvbHVtbnMpLHJjKDEpLERtKCJuZ0Zvck9mIixuLm1ldHJpY0NvbHVtbnMpfX1jbGFzcyBuMiBleHRlbmRzIFpRe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLml0ZW1zUGVyUGFnZUxhYmVsPSJTaG93IHJ1bnM6In19bjIuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PUFhKG4yKSkpKG58fG4yKX19KSgpLG4yLsm1cHJvdj1Nbih7dG9rZW46bjIsZmFjdG9yeTpuMi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobjIsW3t0eXBlOmltfV0sbnVsbCxudWxsKTtjbGFzcyBvMntjb25zdHJ1Y3Rvcigpe3RoaXMuZGF0YVNvdXJjZT1uZXcgUzAsdGhpcy5Eb21haW5UeXBlPVpSLHRoaXMuUnVuc1RhYmxlQ29sdW1uPXZRLHRoaXMuU29ydFR5cGU9JFQsdGhpcy5vblJlZ2V4RmlsdGVyQ2hhbmdlPW5ldyBMaCx0aGlzLm9uU2VsZWN0aW9uVG9nZ2xlPW5ldyBMaCx0aGlzLm9uUGFnZVNlbGVjdGlvblRvZ2dsZT1uZXcgTGgsdGhpcy5vblBhZ2luYXRpb25DaGFuZ2U9bmV3IExoLHRoaXMub25Tb3J0Q2hhbmdlPW5ldyBMaCx0aGlzLm9uUnVuQ29sb3JDaGFuZ2U9bmV3IExoLHRoaXMub25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQ9bmV3IExoLHRoaXMub25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQ9bmV3IExoLHRoaXMub25NZXRyaWNGaWx0ZXJDaGFuZ2VkPW5ldyBMaH1uZ09uQ2hhbmdlcygpe3RoaXMuZGF0YVNvdXJjZS5kYXRhPXRoaXMucGFnZUl0ZW1zfWdldEhwYXJhbUNvbHVtbklkKHQpe3JldHVybmBoOiR7dC5uYW1lfWB9Z2V0TWV0cmljQ29sdW1uSWQodCl7cmV0dXJuYG06JHt0LnRhZ31gfWdldENvbHVtbklkcygpe3JldHVyblsuLi50aGlzLmNvbHVtbnMsLi4udGhpcy5ocGFyYW1Db2x1bW5zLm1hcCh0aGlzLmdldEhwYXJhbUNvbHVtbklkKSwuLi50aGlzLm1ldHJpY0NvbHVtbnMubWFwKHRoaXMuZ2V0TWV0cmljQ29sdW1uSWQpXX1hbGxQYWdlSXRlbXNTZWxlY3RlZCgpe3JldHVybiBCb29sZWFuKHRoaXMucGFnZUl0ZW1zLmxlbmd0aCkmJnRoaXMucGFnZUl0ZW1zLmV2ZXJ5KCh0PT50LnNlbGVjdGVkKSl9c29tZVBhZ2VJdGVtc1NlbGVjdGVkKCl7cmV0dXJuIHRoaXMucGFnZUl0ZW1zLnNvbWUoKHQ9PnQuc2VsZWN0ZWQpKX1oYW5kbGVQYWdlVG9nZ2xlKCl7dGhpcy5vblBhZ2VTZWxlY3Rpb25Ub2dnbGUuZW1pdCh7aXRlbXM6dGhpcy5wYWdlSXRlbXN9KX1oYW5kbGVTb3J0Q2hhbmdlKHQpe2xldCBlO3N3aXRjaCh0LmRpcmVjdGlvbil7Y2FzZSJhc2MiOmU9Rk4uQVNDO2JyZWFrO2Nhc2UiZGVzYyI6ZT1GTi5ERVNDO2JyZWFrO2RlZmF1bHQ6ZT1GTi5VTlNFVH10aGlzLm9uU29ydENoYW5nZS5lbWl0KHtrZXk6dC5hY3RpdmUsZGlyZWN0aW9uOmV9KX1vbkZpbHRlcktleVVwKHQpe3RoaXMub25SZWdleEZpbHRlckNoYW5nZS5lbWl0KHQudGFyZ2V0LnZhbHVlKX10YWJsZVRyYWNrQnkodCxlKXtyZXR1cm4gZS5ydW4uaWR9aGFuZGxlSHBhcmFtSW5jbHVkZVVuZGVmaW5lZFRvZ2dsZWQodCl7Y29uc3R7bmFtZTplLGZpbHRlcjpufT10O2lmKCFuKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhcmlhbnQgZXJyb3I6IHJlcXVpcmUgZmlsdGVyIHRvIGV4aXN0IGZvciBpdCB0byBjaGFuZ2UiKTtuLnR5cGU9PT1aUi5ESVNDUkVURT90aGlzLm9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkLmVtaXQoe2hwYXJhbU5hbWU6ZSxpbmNsdWRlVW5kZWZpbmVkOiFuLmluY2x1ZGVVbmRlZmluZWQsZmlsdGVyVmFsdWVzOm4uZmlsdGVyVmFsdWVzfSk6dGhpcy5vbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZC5lbWl0KHtuYW1lOmUsaW5jbHVkZVVuZGVmaW5lZDohbi5pbmNsdWRlVW5kZWZpbmVkLGZpbHRlckxvd2VyVmFsdWU6bi5maWx0ZXJMb3dlclZhbHVlLGZpbHRlclVwcGVyVmFsdWU6bi5maWx0ZXJVcHBlclZhbHVlfSl9aGFuZGxlSHBhcmFtSW50ZXJ2YWxDaGFuZ2VkKHQsZSl7Y29uc3R7bmFtZTpuLGZpbHRlcjpvfT10O2lmKCFvKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhcmlhbnQgZXJyb3I6IHJlcXVpcmUgZmlsdGVyIHRvIGV4aXN0IGZvciBpdCB0byBjaGFuZ2UiKTt0aGlzLm9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkLmVtaXQoe25hbWU6bixpbmNsdWRlVW5kZWZpbmVkOm8uaW5jbHVkZVVuZGVmaW5lZCxmaWx0ZXJMb3dlclZhbHVlOmUubG93ZXJWYWx1ZSxmaWx0ZXJVcHBlclZhbHVlOmUudXBwZXJWYWx1ZX0pfWhhbmRsZUhwYXJhbURpc2NyZXRlQ2hhbmdlZCh0LGUpe2NvbnN0e25hbWU6bixmaWx0ZXI6b309dDtpZighbyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YXJpYW50IGVycm9yOiByZXF1aXJlIGZpbHRlciB0byBleGlzdCBmb3IgaXQgdG8gY2hhbmdlIik7aWYoby50eXBlIT09WlIuRElTQ1JFVEUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFyaWFudCBlcnJvcjogZXhwZWN0ZWQgZGlzY3JldGUgZG9tYWluIGZvciAke259YCk7Y29uc3QgaT1uZXcgU2V0KFsuLi5vLmZpbHRlclZhbHVlc10pO2kuaGFzKGUpP2kuZGVsZXRlKGUpOmkuYWRkKGUpLHRoaXMub25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQuZW1pdCh7aHBhcmFtTmFtZTpuLGluY2x1ZGVVbmRlZmluZWQ6by5pbmNsdWRlVW5kZWZpbmVkLGZpbHRlclZhbHVlczpbLi4uaV19KX1oYW5kbGVNZXRyaWNJbmNsdWRlVW5kZWZpbmVkQ2hhbmdlZCh0KXtpZighdC5maWx0ZXIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFyaWFudCBlcnJvcjogcmVxdWlyZSBmaWx0ZXIgdG8gZXhpc3QgZm9yIGl0IHRvIGNoYW5nZSIpO3RoaXMub25NZXRyaWNGaWx0ZXJDaGFuZ2VkLmVtaXQoe25hbWU6dC50YWcsaW5jbHVkZVVuZGVmaW5lZDohdC5maWx0ZXIuaW5jbHVkZVVuZGVmaW5lZCxmaWx0ZXJMb3dlclZhbHVlOnQuZmlsdGVyLmZpbHRlckxvd2VyVmFsdWUsZmlsdGVyVXBwZXJWYWx1ZTp0LmZpbHRlci5maWx0ZXJVcHBlclZhbHVlfSl9aGFuZGxlTWV0cmljRmlsdGVyQ2hhbmdlZCh0LGUpe2lmKCF0LmZpbHRlcil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YXJpYW50IGVycm9yOiByZXF1aXJlIGZpbHRlciB0byBleGlzdCBmb3IgaXQgdG8gY2hhbmdlIik7dGhpcy5vbk1ldHJpY0ZpbHRlckNoYW5nZWQuZW1pdCh7bmFtZTp0LnRhZyxpbmNsdWRlVW5kZWZpbmVkOnQuZmlsdGVyLmluY2x1ZGVVbmRlZmluZWQsZmlsdGVyTG93ZXJWYWx1ZTplLmxvd2VyVmFsdWUsZmlsdGVyVXBwZXJWYWx1ZTplLnVwcGVyVmFsdWV9KX10cmFja0J5SHBhcmFtQ29sdW1uKHQpe3JldHVybiB0Lm5hbWV9dHJhY2tCeU1ldHJpY0NvbHVtbih0KXtyZXR1cm4gdC50YWd9fW8yLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxvMil9LG8yLsm1Y21wPXRvKHt0eXBlOm8yLHNlbGVjdG9yczpbWyJydW5zLXRhYmxlLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKF8zLDcsaGcpLFFoKHQkLDcpLFFoKGEkLDcpKSwyJmUpe2xldCB0O0poKHQ9dGIoKSkmJihuLmZpbHRlcj10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5wYWdpbmF0b3I9dC5maXJzdCksSmgodD10YigpKSYmKG4uc29ydD10LmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJmbGV4LWxheW91dCIsbi51c2VGbGV4aWJsZUxheW91dCl9LGlucHV0czp7ZXhwZXJpbWVudElkczoiZXhwZXJpbWVudElkcyIsc2hvd0V4cGVyaW1lbnROYW1lOiJzaG93RXhwZXJpbWVudE5hbWUiLGNvbHVtbnM6ImNvbHVtbnMiLGhwYXJhbUNvbHVtbnM6ImhwYXJhbUNvbHVtbnMiLG1ldHJpY0NvbHVtbnM6Im1ldHJpY0NvbHVtbnMiLGFsbEl0ZW1zTGVuZ3RoOiJhbGxJdGVtc0xlbmd0aCIsZmlsdGVyZWRJdGVtc0xlbmd0aDoiZmlsdGVyZWRJdGVtc0xlbmd0aCIsdXNlRmxleGlibGVMYXlvdXQ6InVzZUZsZXhpYmxlTGF5b3V0Iix1c2VQYWdpbmF0aW9uOiJ1c2VQYWdpbmF0aW9uIixzaG93R3JvdXBDb250cm9sOiJzaG93R3JvdXBDb250cm9sIixwYWdlSXRlbXM6InBhZ2VJdGVtcyIsbG9hZGluZzoibG9hZGluZyIsbnVtU2VsZWN0ZWRJdGVtczoibnVtU2VsZWN0ZWRJdGVtcyIsc29ydE9wdGlvbjoic29ydE9wdGlvbiIscGFnaW5hdGlvbk9wdGlvbjoicGFnaW5hdGlvbk9wdGlvbiIscmVnZXhGaWx0ZXI6InJlZ2V4RmlsdGVyIn0sb3V0cHV0czp7b25SZWdleEZpbHRlckNoYW5nZToib25SZWdleEZpbHRlckNoYW5nZSIsb25TZWxlY3Rpb25Ub2dnbGU6Im9uU2VsZWN0aW9uVG9nZ2xlIixvblBhZ2VTZWxlY3Rpb25Ub2dnbGU6Im9uUGFnZVNlbGVjdGlvblRvZ2dsZSIsb25QYWdpbmF0aW9uQ2hhbmdlOiJvblBhZ2luYXRpb25DaGFuZ2UiLG9uU29ydENoYW5nZToib25Tb3J0Q2hhbmdlIixvblJ1bkNvbG9yQ2hhbmdlOiJvblJ1bkNvbG9yQ2hhbmdlIixvbkhwYXJhbURpc2NyZXRlRmlsdGVyQ2hhbmdlZDoib25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQiLG9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkOiJvbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZCIsb25NZXRyaWNGaWx0ZXJDaGFuZ2VkOiJvbk1ldHJpY0ZpbHRlckNoYW5nZWQifSxmZWF0dXJlczpbcGcoW3twcm92aWRlOlpRLHVzZUNsYXNzOm4yfV0pLEJvXSxkZWNsczoxNSx2YXJzOjcsY29uc3RzOltbMSwiZmlsdGVyLXJvdyJdLFsicGxhY2Vob2xkZXIiLCJGaWx0ZXIgcnVucyAocmVnZXgpIiwxLCJydW4tZmlsdGVyIiwzLCJrZXl1cCJdLFsxLCJ0YWJsZS1jb250YWluZXIiXSxbInJvbGUiLCJ0YWJsZSJdLFs0LCJuZ1RlbXBsYXRlT3V0bGV0Il0sWyJyb2xlIiwicm93Z3JvdXAiLDEsInJvd3MiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWyJjbGFzcyIsImxvYWRpbmciLDQsIm5nSWYiXSxbImNsYXNzIiwibm8tcnVucyIsNCwibmdJZiJdLFsic2hvd0ZpcnN0TGFzdEJ1dHRvbnMiLCIiLDMsInBhZ2VTaXplT3B0aW9ucyIsInBhZ2VJbmRleCIsInBhZ2VTaXplIiwibGVuZ3RoIiwicGFnZSIsNCwibmdJZiJdLFsiaGVhZGVyIiwiIl0sWyJyb3ciLCIiXSxbNCwibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il0sWzEsImxvYWRpbmciXSxbIm1vZGUiLCJpbmRldGVybWluYXRlIiwiZGlhbWV0ZXIiLCIyOCJdLFsxLCJuby1ydW5zIl0sWyJzaG93Rmlyc3RMYXN0QnV0dG9ucyIsIiIsMywicGFnZVNpemVPcHRpb25zIiwicGFnZUluZGV4IiwicGFnZVNpemUiLCJsZW5ndGgiLCJwYWdlIl0sWyJyb2xlIiwicm93Z3JvdXAiLDEsImhlYWRlciJdLFsibWF0U29ydCIsIiIsInJvbGUiLCJyb3ciLDMsIm1hdFNvcnRBY3RpdmUiLCJtYXRTb3J0Q2hhbmdlIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLCJjbGFzcyIsImNvbHVtbiIsMywibWF0LXNvcnQtaGVhZGVyIiw0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLDMsIm5nQ2xhc3MiXSxbMywibmdTd2l0Y2giXSxbMywiY2hlY2tlZCIsImluZGV0ZXJtaW5hdGUiLCJjaGFuZ2UiLDQsIm5nU3dpdGNoQ2FzZSJdLFszLCJtYXQtc29ydC1oZWFkZXIiLDQsIm5nU3dpdGNoQ2FzZSJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbMywiY2hlY2tlZCIsImluZGV0ZXJtaW5hdGUiLCJjaGFuZ2UiXSxbMywibWF0LXNvcnQtaGVhZGVyIl0sWzMsImV4cGVyaW1lbnRJZHMiLDQsIm5nSWYiXSxbMywiZXhwZXJpbWVudElkcyJdLFsicm9sZSIsImNvbHVtbmhlYWRlciIsMSwiY29sdW1uIiwzLCJtYXQtc29ydC1oZWFkZXIiXSxbMSwibmFtZSJdLFs0LCJuZ0lmIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIiwiY2xpY2siXSxbInN2Z0ljb24iLCJmaWx0ZXJfYWx0XzI0cHgiXSxbImZpbHRlck1lbnUiLCJtYXRNZW51Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtY2hlY2tib3giLCJkaXNhYmxlUmlwcGxlIiwiIiwxLCJmaWx0ZXItbWVudS1jaGVja2JveC1yb3ciLDMsImNsaWNrIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbImRpc2FibGVSaXBwbGUiLCIiLCJtYXQtbWVudS1pdGVtIiwiIiwxLCJyYW5nZS1pbnB1dC1jb250YWluZXIiLDMsImNsaWNrIl0sWzMsIm1pbiIsIm1heCIsImxvd2VyVmFsdWUiLCJ1cHBlclZhbHVlIiwidmFsdWUiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJjbGFzcyIsImZpbHRlci1tZW51LWNoZWNrYm94LXJvdyIsInJvbGUiLCJtZW51aXRlbWNoZWNrYm94IiwzLCJjbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtY2hlY2tib3giLDEsImZpbHRlci1tZW51LWNoZWNrYm94LXJvdyIsMywiY2xpY2siXSxbInJvbGUiLCJyb3ciXSxbInJvbGUiLCJjZWxsIiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInJvbGUiLCJjZWxsIiwiY2xhc3MiLCJjb2x1bW4iLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsicm9sZSIsImNlbGwiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwibmFtZSIsNCwibmdTd2l0Y2hDYXNlIl0sWzMsIm5nQ2xhc3MiLCJjb2xvclBpY2tlciIsImNwRGlhbG9nRGlzcGxheSIsImNwUG9zaXRpb25PZmZzZXQiLCJjcFVzZVJvb3RWaWV3Q29udGFpbmVyIiwiY3BPdXRwdXRGb3JtYXQiLCJjb2xvclBpY2tlckNoYW5nZSJdLFsicm9sZSIsImNlbGwiLDEsImNvbHVtbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJ0Yi1maWx0ZXItaW5wdXQiLDEpLFZtKCJrZXl1cCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25GaWx0ZXJLZXlVcChlKX0pKSxBbSgpLEFtKCksUm0oMiwiZGl2IiwyKSxSbSgzLCJkaXYiLDMpLFFwKDQsQzMsMSwwLCJuZy1jb250YWluZXIiLDQpLFJtKDUsImRpdiIsNSksUXAoNix4MywyLDQsIm5nLWNvbnRhaW5lciIsNiksQW0oKSxBbSgpLFFwKDcsTzMsMiwwLCJkaXYiLDcpLFFwKDgsUDMsMiwwLCJkaXYiLDgpLFFwKDksdzMsNiwxLCJkaXYiLDgpLEFtKCksUXAoMTAsUzMsMSw1LCJtYXQtcGFnaW5hdG9yIiw5KSxRcCgxMSxZMyw1LDYsIm5nLXRlbXBsYXRlIixudWxsLDEwLGliKSxRcCgxMyxlMiw0LDQsIm5nLXRlbXBsYXRlIixudWxsLDExLGliKSksMiZlKXtjb25zdCB0PSRwKDEyKTtyYyg0KSxEbSgibmdUZW1wbGF0ZU91dGxldCIsdCkscmMoMiksRG0oIm5nRm9yT2YiLG4ucGFnZUl0ZW1zKSgibmdGb3JUcmFja0J5IixuLnRhYmxlVHJhY2tCeSkscmMoMSksRG0oIm5nSWYiLG4ubG9hZGluZykscmMoMSksRG0oIm5nSWYiLCFuLmxvYWRpbmcmJjA9PT1uLmFsbEl0ZW1zTGVuZ3RoKSxyYygxKSxEbSgibmdJZiIsIW4ubG9hZGluZyYmbi5hbGxJdGVtc0xlbmd0aD4wJiYwPT09bi5maWx0ZXJlZEl0ZW1zTGVuZ3RoKSxyYygxKSxEbSgibmdJZiIsbi51c2VQYWdpbmF0aW9uKX19LGRpcmVjdGl2ZXM6W3EwLE1NLGxNLGRNLG8xLHQkLGEkLGFNLGZNLGdNLE9ZLG0kLHcxLFhILGVZLERXLEtXLFdXLEQxLGIzXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1zaXplOjEzcHg7b3ZlcmZsb3c6aGlkZGVufS5maWx0ZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4Om5vbmV9LnRhYmxlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Y29udGFpbjpsYXlvdXQgcGFpbnQ7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6YXV0bzt3aWxsLWNoYW5nZTp0cmFuc2Zvcm0sc2Nyb2xsLXBvc2l0aW9ufS5mbGV4LWxheW91dFtfbmdob3N0LSVDT01QJV0gICAubmFtZVtfbmdjb250ZW50LSVDT01QJV17d29yZC1icmVhazpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0uZmxleC1sYXlvdXRbX25naG9zdC0lQ09NUCVdICAgbWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgI2ViZWJlYjtwYWRkaW5nLWJvdHRvbToxMnB4fWJvZHkuZGFyay1tb2RlICAgLmZsZXgtbGF5b3V0W19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICM1NTV9W3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OnRhYmxlO3dpZHRoOjEwMCV9W3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcH1bcm9sZT10YWJsZV1bX25nY29udGVudC0lQ09NUCVdICAgLmhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICBbcm9sZT1jb2x1bW5oZWFkZXJdW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBbcm9sZT10YWJsZV1bX25nY29udGVudC0lQ09NUCVdICAgLmhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICBbcm9sZT1jb2x1bW5oZWFkZXJdW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgW3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgW3JvbGU9Y29sdW1uaGVhZGVyXVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfVtyb2xlPXRhYmxlXVtfbmdjb250ZW50LSVDT01QJV0gICBbcm9sZT1yb3ddW19uZ2NvbnRlbnQtJUNPTVAlXXtjb250YWluOnN0cmljdDtkaXNwbGF5OnRhYmxlLXJvdztoZWlnaHQ6NDNweH1bcm9sZT10YWJsZV1bX25nY29udGVudC0lQ09NUCVdICAgW3JvbGU9cm93XVtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6dGFibGUtY2VsbDtwYWRkaW5nOjVweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgW3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtyb2xlPXJvd11bX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIFtyb2xlPXRhYmxlXVtfbmdjb250ZW50LSVDT01QJV0gICBbcm9sZT1yb3ddW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9W3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtyb2xlPXJvd11bX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbltfbmdjb250ZW50LSVDT01QJV06Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0OjI0cHh9W3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtyb2xlPXJvd11bX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbltfbmdjb250ZW50LSVDT01QJV06bGFzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0OjI0cHh9W3JvbGU9cm93Z3JvdXBdW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OnRhYmxlLXJvdy1ncm91cH1bcm9sZT1yb3dncm91cF0uaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OnRhYmxlLWhlYWRlci1ncm91cH0ubG9hZGluZ1tfbmdjb250ZW50LSVDT01QJV0sIC5uby1ydW5zW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyOjA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDI0cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmxvYWRpbmdbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAubG9hZGluZ1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAubm8tcnVuc1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5uby1ydW5zW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fS5sb2FkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5zZWxlY3QtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxMnB4O3BhZGRpbmctdG9wOjEycHh9LnNlbGVjdC1hbGwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0sIC5zZWxlY3QtYWxsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS42O3RleHQtYWxpZ246bGVmdH0uc2VsZWN0LWFsbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmc6MCA0cHh9LmZpbHRlci1yb3dbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMTZweCAwIDIxcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmZpbHRlci1yb3dbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZmlsdGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0uZmlsdGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICB0Yi1maWx0ZXItaW5wdXRbX25nY29udGVudC0lQ09NUCVde2ZsZXgtZ3JvdzoxfS50Yi1jb2x1bW4tY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVdLCAudGItY29sdW1uLXJ1bl9jb2xvcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MjBweH0udGItY29sdW1uLXJ1bl9jb2xvcltfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9LnJ1bi1jb2xvci1zd2F0Y2hbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yYWRpdXM6MTAwJTtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtvdXRsaW5lOm5vbmV9LnJ1bi1jb2xvci1zd2F0Y2gubm8tY29sb3JbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjojYzZjYWQxO2JvcmRlci13aWR0aDoycHh9LnJhbmdlLWlucHV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OmF1dG99W19uZ2hvc3QtJUNPTVAlXSAgICAgbWF0LXBhZ2luYXRvciBtYXQtZm9ybS1maWVsZHttYXJnaW46MH0uZmlsdGVyLW1lbnUtY2hlY2tib3gtcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV0gICAgIGxhYmVse2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTthbGlnbi1pdGVtczpjZW50ZXJ9LmZpbHRlci1tZW51LWNoZWNrYm94LXJvd1tfbmdjb250ZW50LSVDT01QJV0gICBtYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVdICAgICBsYWJlbCAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcnttYXJnaW4tbGVmdDowfS5maWx0ZXItbWVudS1jaGVja2JveC1yb3dbX25nY29udGVudC0lQ09NUCVdICAgbWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgbGFiZWwgLm1hdC1jaGVja2JveC1sYWJlbHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc31ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBtYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvMixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJydW5zLXRhYmxlLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6InJ1bnNfdGFibGVfY29tcG9uZW50Lm5nLmh0bWwiLGhvc3Q6eyJbY2xhc3MuZmxleC1sYXlvdXRdIjoidXNlRmxleGlibGVMYXlvdXQifSxzdHlsZVVybHM6WyJydW5zX3RhYmxlX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLHByb3ZpZGVyczpbe3Byb3ZpZGU6WlEsdXNlQ2xhc3M6bjJ9XX1dfV0sbnVsbCx7ZXhwZXJpbWVudElkczpbe3R5cGU6eHl9XSxzaG93RXhwZXJpbWVudE5hbWU6W3t0eXBlOnh5fV0sY29sdW1uczpbe3R5cGU6eHl9XSxocGFyYW1Db2x1bW5zOlt7dHlwZTp4eX1dLG1ldHJpY0NvbHVtbnM6W3t0eXBlOnh5fV0sYWxsSXRlbXNMZW5ndGg6W3t0eXBlOnh5fV0sZmlsdGVyZWRJdGVtc0xlbmd0aDpbe3R5cGU6eHl9XSx1c2VGbGV4aWJsZUxheW91dDpbe3R5cGU6eHl9XSx1c2VQYWdpbmF0aW9uOlt7dHlwZTp4eX1dLHNob3dHcm91cENvbnRyb2w6W3t0eXBlOnh5fV0scGFnZUl0ZW1zOlt7dHlwZTp4eX1dLGxvYWRpbmc6W3t0eXBlOnh5fV0sbnVtU2VsZWN0ZWRJdGVtczpbe3R5cGU6eHl9XSxzb3J0T3B0aW9uOlt7dHlwZTp4eX1dLHBhZ2luYXRpb25PcHRpb246W3t0eXBlOnh5fV0scmVnZXhGaWx0ZXI6W3t0eXBlOnh5fV0sb25SZWdleEZpbHRlckNoYW5nZTpbe3R5cGU6T3l9XSxvblNlbGVjdGlvblRvZ2dsZTpbe3R5cGU6T3l9XSxvblBhZ2VTZWxlY3Rpb25Ub2dnbGU6W3t0eXBlOk95fV0sb25QYWdpbmF0aW9uQ2hhbmdlOlt7dHlwZTpPeX1dLG9uU29ydENoYW5nZTpbe3R5cGU6T3l9XSxvblJ1bkNvbG9yQ2hhbmdlOlt7dHlwZTpPeX1dLG9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkOlt7dHlwZTpPeX1dLG9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkOlt7dHlwZTpPeX1dLG9uTWV0cmljRmlsdGVyQ2hhbmdlZDpbe3R5cGU6T3l9XSxmaWx0ZXI6W3t0eXBlOlphLGFyZ3M6WyJmaWx0ZXIiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0scGFnaW5hdG9yOlt7dHlwZTpaYSxhcmdzOlt0JCx7c3RhdGljOiEwfV19XSxzb3J0Olt7dHlwZTpaYSxhcmdzOlthJCx7c3RhdGljOiEwfV19XX0pO2NvbnN0IGkyPVp3KHBOLCh0PT50LnN0YXRlPT09eUUuTE9BRElORykpO2Z1bmN0aW9uIGEyKHQsZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSAkVC5FWFBFUklNRU5UX05BTUU6cmV0dXJuW3QuZXhwZXJpbWVudEFsaWFzLHQucnVuLm5hbWUsdC5ydW4uaWRdO2Nhc2UgJFQuUlVOX05BTUU6cmV0dXJuW3QucnVuLm5hbWUsdC5leHBlcmltZW50QWxpYXMsdC5ydW4uaWRdO2Nhc2UgJFQuSFBBUkFNOnJldHVyblt0LmhwYXJhbXMuZ2V0KGUubmFtZSksdC5ydW4ubmFtZSx0LmV4cGVyaW1lbnRBbGlhcyx0LnJ1bi5pZF07Y2FzZSAkVC5NRVRSSUM6cmV0dXJuW3QubWV0cmljcy5nZXQoZS50YWcpLHQucnVuLm5hbWUsdC5leHBlcmltZW50QWxpYXMsdC5ydW4uaWRdO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBOb3QgeWV0IGltcGxlbWVudGVkOiAke2V9YCl9fWZ1bmN0aW9uIHIyKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/dC5pbmNsdWRlVW5kZWZpbmVkOnQudHlwZT09PVpSLkRJU0NSRVRFP3QuZmlsdGVyVmFsdWVzLmluY2x1ZGVzKGUpOnQudHlwZT09PVpSLklOVEVSVkFMJiZ0LmZpbHRlckxvd2VyVmFsdWU8PWUmJmU8PXQuZmlsdGVyVXBwZXJWYWx1ZX1jbGFzcyBzMntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5sb2FkaW5nJD1udWxsLHRoaXMuaHBhcmFtQ29sdW1ucyQ9RXQoW10pLHRoaXMubWV0cmljQ29sdW1ucyQ9RXQoW10pLHRoaXMudXNlRmxleGlibGVMYXlvdXQ9ITEsdGhpcy51c2VQYWdpbmF0aW9uPSExLHRoaXMuY29sdW1ucz1bdlEuUlVOX05BTUVdLHRoaXMuc2hvd0hwYXJhbXNBbmRNZXRyaWNzPSExLHRoaXMuc29ydE9wdGlvbiQ9dGhpcy5zdG9yZS5zZWxlY3QoeU4pLHRoaXMucGFnaW5hdGlvbk9wdGlvbiQ9dGhpcy5zdG9yZS5zZWxlY3QoYk4pLHRoaXMucmVnZXhGaWx0ZXIkPXRoaXMuc3RvcmUuc2VsZWN0KGdOKSx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEl9aXNFeHBlcmltZW50TmFtZVZpc2libGUoKXtyZXR1cm4gdGhpcy5jb2x1bW5zLnNvbWUoKHQ9PnQ9PT12US5FWFBFUklNRU5UX05BTUUpKX1uZ09uSW5pdCgpe2NvbnN0IHQ9V3QodGhpcy5leHBlcmltZW50SWRzLm1hcCgodD0+dGhpcy5nZXRSdW5UYWJsZUl0ZW1zRm9yRXhwZXJpbWVudCh0KSkpKS5waXBlKEl0KCh0PT5bXS5jb25jYXQoLi4udCkpKSk7dGhpcy5hbGxVbnNvcnRlZFJ1blRhYmxlSXRlbXMkPXQucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLEFlKDEpKSx0aGlzLmFsbEl0ZW1zTGVuZ3RoJD10aGlzLmFsbFVuc29ydGVkUnVuVGFibGVJdGVtcyQucGlwZShJdCgodD0+dC5sZW5ndGgpKSk7Y29uc3QgZT10aGlzLmdldEZpbHRlcmVkSXRlbXMkKHRoaXMuYWxsVW5zb3J0ZWRSdW5UYWJsZUl0ZW1zJCkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLEFlKDEpKTt0aGlzLmZpbHRlcmVkSXRlbXNMZW5ndGgkPWUucGlwZShJdCgodD0+dC5sZW5ndGgpKSksdGhpcy5wYWdlSXRlbXMkPXRoaXMuc29ydGVkQW5kU2xpY2VkSXRlbXMkKGUpLHRoaXMubnVtU2VsZWN0ZWRJdGVtcyQ9dGhpcy5hbGxVbnNvcnRlZFJ1blRhYmxlSXRlbXMkLnBpcGUoSXQoKHQ9PnQucmVkdWNlKCgodCxlKT0+dCtOdW1iZXIoZS5zZWxlY3RlZCkpLDApKSkpO2NvbnN0IG49dGhpcy5leHBlcmltZW50SWRzLm1hcCgodD0+dGhpcy5zdG9yZS5zZWxlY3QoaTIse2V4cGVyaW1lbnRJZDp0fSkpKTtpZih0aGlzLmxvYWRpbmckPVd0KG4pLnBpcGUoSXQoKHQ9PnQuc29tZSgodD0+dCkpKSkpLHRoaXMuc2hvd0hwYXJhbXNBbmRNZXRyaWNzKXtjb25zdCB0PXRoaXMuc3RvcmUuc2VsZWN0KFNRLHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkc30pO3RoaXMuaHBhcmFtQ29sdW1ucyQ9V3QoW3RoaXMuc3RvcmUuc2VsZWN0KFBRLHRoaXMuZXhwZXJpbWVudElkcyksdF0pLnBpcGUoSXQoKChbdCx7aHBhcmFtczplfV0pPT5lLm1hcCgoKHtuYW1lOmUsZGlzcGxheU5hbWU6bn0pPT57Y29uc3Qgbz10LmdldChlKTtpZighbyl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YXJpYW50IGVycm9yOiBhIGZpbHRlciBmb3IgJHtlfSBtdXN0IGV4aXN0IHdoZW4gdGhlIGhwYXJhbSBleGlzdHNgKTtyZXR1cm57ZGlzcGxheU5hbWU6bixuYW1lOmUsZmlsdGVyOm99fSkpKSkpLHRoaXMubWV0cmljQ29sdW1ucyQ9V3QoW3RoaXMuc3RvcmUuc2VsZWN0KGtRLHRoaXMuZXhwZXJpbWVudElkcyksdF0pLnBpcGUoSXQoKChbdCx7bWV0cmljczplfV0pPT5lLm1hcCgoKHt0YWc6ZSxkaXNwbGF5TmFtZTpufSk9Pntjb25zdCBvPXQuZ2V0KGUpO2lmKCFvKXRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhcmlhbnQgZXJyb3I6IGEgZmlsdGVyIGZvciAke2V9IG11c3QgZXhpc3Qgd2hlbiB0aGUgbWV0cmljIGV4aXN0c2ApO3JldHVybntkaXNwbGF5TmFtZTpuLHRhZzplLGZpbHRlcjpvfX0pKSkpKX10aGlzLmNvbHVtbnMuaW5jbHVkZXModlEuQ0hFQ0tCT1gpJiZ0aGlzLnN0b3JlLnNlbGVjdChOUykucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLHplKCgoKT0+dC5waXBlKGNlKCh0PT50Lmxlbmd0aD41MDApKSxiZSgxKSkpKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2gobHooe2xvY2FsaXplZE1lc3NhZ2U6IlRoZSBudW1iZXIgb2YgcnVucyBleGNlZWRzIDUwMC4gTmV3IHJ1bnMgYXJlIHVuc2VsZWN0ZWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIn0pKX0pKSx0aGlzLnNob3dHcm91cENvbnRyb2wkPXRoaXMuc3RvcmUuc2VsZWN0KGVFKS5waXBlKEl0KCh0PT50JiZ0aGlzLmNvbHVtbnMuaW5jbHVkZXModlEuUlVOX0NPTE9SKSkpKSx0aGlzLnN0b3JlLmRpc3BhdGNoKFVSKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkc30pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9Z2V0RmlsdGVyZWRJdGVtcyQodCl7cmV0dXJuIFd0KFt0LHRoaXMuc3RvcmUuc2VsZWN0KGdOKV0pLnBpcGUoSXQoKChbdCxlXSk9PntpZighZSlyZXR1cm4gdDtjb25zdCBuPXRoaXMuY29sdW1ucy5pbmNsdWRlcyh2US5FWFBFUklNRU5UX05BTUUpO3JldHVybiB0LmZpbHRlcigodD0+VE4oe3J1bk5hbWU6dC5ydW4ubmFtZSxleHBlcmltZW50QWxpYXM6dC5leHBlcmltZW50QWxpYXMsZXhwZXJpbWVudE5hbWU6dC5leHBlcmltZW50TmFtZX0sZSxuKSkpfSkpLHplKCh0PT50aGlzLnNob3dIcGFyYW1zQW5kTWV0cmljcz9XdCh0aGlzLnN0b3JlLnNlbGVjdChQUSx0aGlzLmV4cGVyaW1lbnRJZHMpLHRoaXMuc3RvcmUuc2VsZWN0KGtRLHRoaXMuZXhwZXJpbWVudElkcykpLnBpcGUoSXQoKChbZSxuXSk9PnQuZmlsdGVyKCgoe2hwYXJhbXM6dCxtZXRyaWNzOm99KT0+Wy4uLmUuZW50cmllcygpXS5ldmVyeSgoKFtlLG5dKT0+cjIobix0LmdldChlKSkpKSYmWy4uLm4uZW50cmllcygpXS5ldmVyeSgoKFt0LGVdKT0+cjIoZSxvLmdldCh0KSkpKSkpKSkpOkV0KHQpKSkpfXNvcnRlZEFuZFNsaWNlZEl0ZW1zJCh0KXtjb25zdCBlPVd0KFt0LHRoaXMuc3RvcmUuc2VsZWN0KHlOKV0pLnBpcGUoSXQoKChbdCxlXSk9PihmdW5jdGlvbiBuKHQsZSl7Y29uc3Qgbj1lLmtleSxvPVsuLi50XTtyZXR1cm4gbnVsbD09PW58fGUuZGlyZWN0aW9uPT09Rk4uVU5TRVR8fG8uc29ydCgoKHQsbyk9Pntjb25zdCBpPWEyKHQsbiksYT1hMihvLG4pO2lmKGkubGVuZ3RoIT09YS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBJbnZhcmlhbnQgZXJyb3I6IGEgZ2l2ZW4gc29ydCBzaG91bGQgcmVzdWx0IGluIHNhbWUgbnVtYmVyIG9mIGl0ZW1zOiAke2V9YCk7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0IG49aVt0XSxvPWFbdF07aWYobiE9PW8pe2lmKHZvaWQgMD09PW58fHZvaWQgMD09PW8pcmV0dXJuIHZvaWQgMD09PW8/LTE6MTtpZih0eXBlb2YgbiE9dHlwZW9mIG8pdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY29tcGFyZSB2YWx1ZXMgb2YgZGlmZmVyZW50IHR5cGVzOiAke3R5cGVvZiBufSB2cy4gJHt0eXBlb2Ygb31gKTtyZXR1cm4gbjxvPT0oZS5kaXJlY3Rpb249PT1GTi5BU0MpPy0xOjF9fXJldHVybiAwfSkpLG99KSh0LGUpKSkpO3JldHVybiBXdChbZSx0aGlzLnN0b3JlLnNlbGVjdChiTildKS5waXBlKEl0KCgoW3QsZV0pPT57aWYoIXRoaXMudXNlUGFnaW5hdGlvbilyZXR1cm4gdC5zbGljZSgpO2NvbnN0e3BhZ2VTaXplOm4scGFnZUluZGV4Om99PWU7cmV0dXJuIHQuc2xpY2UobypuLChvKzEpKm4pfSkpLE5lKFtdKSl9Z2V0UnVuVGFibGVJdGVtc0ZvckV4cGVyaW1lbnQodCl7cmV0dXJuIFd0KFt0aGlzLnN0b3JlLnNlbGVjdChsTix7ZXhwZXJpbWVudElkOnR9KSx0aGlzLnN0b3JlLnNlbGVjdCh1QSx7ZXhwZXJpbWVudElkOnR9KSx0aGlzLnN0b3JlLnNlbGVjdChOTiksdGhpcy5zdG9yZS5zZWxlY3Qoek4pLHRoaXMuc3RvcmUuc2VsZWN0KHpTKV0pLnBpcGUoSXQoKChbZSxuLG8saSxhXSk9PmUubWFwKChlPT57Y29uc3Qgcj1uZXcgTWFwOyhlLmhwYXJhbXN8fFtdKS5mb3JFYWNoKCh0PT57ci5zZXQodC5uYW1lLHQudmFsdWUpfSkpO2NvbnN0IHM9bmV3IE1hcDtyZXR1cm4oZS5tZXRyaWNzfHxbXSkuZm9yRWFjaCgodD0+e3Muc2V0KHQudGFnLHQudmFsdWUpfSkpLHtydW46ZSxleHBlcmltZW50TmFtZToobnVsbD09bj92b2lkIDA6bi5uYW1lKXx8IiIsZXhwZXJpbWVudEFsaWFzOmFbdF0sc2VsZWN0ZWQ6Qm9vbGVhbihvJiZvLmdldChlLmlkKSkscnVuQ29sb3I6aVtlLmlkXSxocGFyYW1zOnIsbWV0cmljczpzfX0pKSkpKX1vblJ1blNlbGVjdGlvblRvZ2dsZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKEhSKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxydW5JZDp0LnJ1bi5pZH0pKX1vblBhZ2VTZWxlY3Rpb25Ub2dnbGUodCl7Y29uc3R7aXRlbXM6ZX09dCxuPWUubWFwKCgoe3J1bjp0fSk9PnQuaWQpKTt0aGlzLnN0b3JlLmRpc3BhdGNoKEZSKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxydW5JZHM6bn0pKX1vblBhZ2luYXRpb25DaGFuZ2UodCl7aWYoIXRoaXMudXNlUGFnaW5hdGlvbil0aHJvdyBuZXcgRXJyb3IoIlBhZ2luYXRpb24gZXZlbnRzIGNhbm5vdCBiZSBkaXNwYXRjaGVkIHdoZW4gcGFnaW5hdGlvbiBpcyBkaXNhYmxlZCIpO2NvbnN0e3BhZ2VJbmRleDplLHBhZ2VTaXplOm59PXQ7dGhpcy5zdG9yZS5kaXNwYXRjaChMUih7cGFnZUluZGV4OmUscGFnZVNpemU6bn0pKX1vblNvcnRDaGFuZ2UodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChCUih0KSl9b25SZWdleEZpbHRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKFZSKHtyZWdleFN0cmluZzp0fSkpfW9uUnVuQ29sb3JDaGFuZ2Uoe3J1bklkOnQsbmV3Q29sb3I6ZX0pe3RoaXMuc3RvcmUuZGlzcGF0Y2goalIoe3J1bklkOnQsbmV3Q29sb3I6ZX0pKX1vbkhwYXJhbURpc2NyZXRlRmlsdGVyQ2hhbmdlZCh0KXtjb25zdHtocGFyYW1OYW1lOmUsZmlsdGVyVmFsdWVzOm4saW5jbHVkZVVuZGVmaW5lZDpvfT10O3RoaXMuc3RvcmUuZGlzcGF0Y2goS1Ioe2V4cGVyaW1lbnRJZHM6dGhpcy5leHBlcmltZW50SWRzLGhwYXJhbU5hbWU6ZSxmaWx0ZXJWYWx1ZXM6bixpbmNsdWRlVW5kZWZpbmVkOm99KSl9b25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQodCl7Y29uc3R7bmFtZTplLGZpbHRlckxvd2VyVmFsdWU6bixmaWx0ZXJVcHBlclZhbHVlOm8saW5jbHVkZVVuZGVmaW5lZDppfT10O3RoaXMuc3RvcmUuZGlzcGF0Y2goSlIoe2V4cGVyaW1lbnRJZHM6dGhpcy5leHBlcmltZW50SWRzLGhwYXJhbU5hbWU6ZSxmaWx0ZXJMb3dlclZhbHVlOm4sZmlsdGVyVXBwZXJWYWx1ZTpvLGluY2x1ZGVVbmRlZmluZWQ6aX0pKX1vbk1ldHJpY0ZpbHRlckNoYW5nZWQodCl7Y29uc3R7bmFtZTplLGluY2x1ZGVVbmRlZmluZWQ6bixmaWx0ZXJMb3dlclZhbHVlOm8sZmlsdGVyVXBwZXJWYWx1ZTppfT10O3RoaXMuc3RvcmUuZGlzcGF0Y2goUVIoe2V4cGVyaW1lbnRJZHM6dGhpcy5leHBlcmltZW50SWRzLG1ldHJpY1RhZzplLGluY2x1ZGVVbmRlZmluZWQ6bixmaWx0ZXJMb3dlclZhbHVlOm8sZmlsdGVyVXBwZXJWYWx1ZTppfSkpfX1zMi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8czIpKFNtKEl3KSl9LHMyLsm1Y21wPXRvKHt0eXBlOnMyLHNlbGVjdG9yczpbWyJydW5zLXRhYmxlIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJmbGV4LWxheW91dCIsbi51c2VGbGV4aWJsZUxheW91dCl9LGlucHV0czp7dXNlRmxleGlibGVMYXlvdXQ6InVzZUZsZXhpYmxlTGF5b3V0Iix1c2VQYWdpbmF0aW9uOiJ1c2VQYWdpbmF0aW9uIixjb2x1bW5zOiJjb2x1bW5zIixleHBlcmltZW50SWRzOiJleHBlcmltZW50SWRzIixzaG93SHBhcmFtc0FuZE1ldHJpY3M6InNob3dIcGFyYW1zQW5kTWV0cmljcyJ9LGRlY2xzOjEyLHZhcnM6MzgsY29uc3RzOltbMywiZXhwZXJpbWVudElkcyIsInVzZUZsZXhpYmxlTGF5b3V0IiwibnVtU2VsZWN0ZWRJdGVtcyIsImNvbHVtbnMiLCJocGFyYW1Db2x1bW5zIiwibWV0cmljQ29sdW1ucyIsInNob3dFeHBlcmltZW50TmFtZSIsInBhZ2VJdGVtcyIsImZpbHRlcmVkSXRlbXNMZW5ndGgiLCJhbGxJdGVtc0xlbmd0aCIsImxvYWRpbmciLCJwYWdpbmF0aW9uT3B0aW9uIiwicmVnZXhGaWx0ZXIiLCJzaG93R3JvdXBDb250cm9sIiwic29ydE9wdGlvbiIsInVzZVBhZ2luYXRpb24iLCJvblNlbGVjdGlvblRvZ2dsZSIsIm9uUGFnZVNlbGVjdGlvblRvZ2dsZSIsIm9uUGFnaW5hdGlvbkNoYW5nZSIsIm9uUmVnZXhGaWx0ZXJDaGFuZ2UiLCJvblNvcnRDaGFuZ2UiLCJvblJ1bkNvbG9yQ2hhbmdlIiwib25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQiLCJvbkhwYXJhbURpc2NyZXRlRmlsdGVyQ2hhbmdlZCIsIm9uTWV0cmljRmlsdGVyQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwicnVucy10YWJsZS1jb21wb25lbnQiLDApLFZtKCJvblNlbGVjdGlvblRvZ2dsZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25SdW5TZWxlY3Rpb25Ub2dnbGUoZSl9KSkoIm9uUGFnZVNlbGVjdGlvblRvZ2dsZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25QYWdlU2VsZWN0aW9uVG9nZ2xlKGUpfSkpKCJvblBhZ2luYXRpb25DaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUGFnaW5hdGlvbkNoYW5nZShlKX0pKSgib25SZWdleEZpbHRlckNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25SZWdleEZpbHRlckNoYW5nZShlKX0pKSgib25Tb3J0Q2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblNvcnRDaGFuZ2UoZSl9KSkoIm9uUnVuQ29sb3JDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUnVuQ29sb3JDaGFuZ2UoZSl9KSkoIm9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZChlKX0pKSgib25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkKGUpfSkpKCJvbk1ldHJpY0ZpbHRlckNoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uTWV0cmljRmlsdGVyQ2hhbmdlZChlKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBaCg0LCJhc3luYyIpLEFoKDUsImFzeW5jIiksQWgoNiwiYXN5bmMiKSxBaCg3LCJhc3luYyIpLEFoKDgsImFzeW5jIiksQWgoOSwiYXN5bmMiKSxBaCgxMCwiYXN5bmMiKSxBaCgxMSwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJleHBlcmltZW50SWRzIixuLmV4cGVyaW1lbnRJZHMpKCJ1c2VGbGV4aWJsZUxheW91dCIsbi51c2VGbGV4aWJsZUxheW91dCkoIm51bVNlbGVjdGVkSXRlbXMiLFRoKDEsMTYsbi5udW1TZWxlY3RlZEl0ZW1zJCkpKCJjb2x1bW5zIixuLmNvbHVtbnMpKCJocGFyYW1Db2x1bW5zIixUaCgyLDE4LG4uaHBhcmFtQ29sdW1ucyQpKSgibWV0cmljQ29sdW1ucyIsVGgoMywyMCxuLm1ldHJpY0NvbHVtbnMkKSkoInNob3dFeHBlcmltZW50TmFtZSIsbi5pc0V4cGVyaW1lbnROYW1lVmlzaWJsZSgpKSgicGFnZUl0ZW1zIixUaCg0LDIyLG4ucGFnZUl0ZW1zJCkpKCJmaWx0ZXJlZEl0ZW1zTGVuZ3RoIixUaCg1LDI0LG4uZmlsdGVyZWRJdGVtc0xlbmd0aCQpKSgiYWxsSXRlbXNMZW5ndGgiLFRoKDYsMjYsbi5hbGxJdGVtc0xlbmd0aCQpKSgibG9hZGluZyIsVGgoNywyOCxuLmxvYWRpbmckKSkoInBhZ2luYXRpb25PcHRpb24iLFRoKDgsMzAsbi5wYWdpbmF0aW9uT3B0aW9uJCkpKCJyZWdleEZpbHRlciIsVGgoOSwzMixuLnJlZ2V4RmlsdGVyJCkpKCJzaG93R3JvdXBDb250cm9sIixUaCgxMCwzNCxuLnNob3dHcm91cENvbnRyb2wkKSkoInNvcnRPcHRpb24iLFRoKDExLDM2LG4uc29ydE9wdGlvbiQpKSgidXNlUGFnaW5hdGlvbiIsbi51c2VQYWdpbmF0aW9uKX0sZGlyZWN0aXZlczpbbzJdLHBpcGVzOlt3TV0sc3R5bGVzOlsiLmZsZXgtbGF5b3V0W19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG5cbiAgICAgIC5mbGV4LWxheW91dFtfbmdob3N0LSVDT01QJV0gICAgPiBydW5zLXRhYmxlLWNvbXBvbmVudFtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoczIsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoicnVucy10YWJsZSIsdGVtcGxhdGU6J1xuICAgIDxydW5zLXRhYmxlLWNvbXBvbmVudFxuICAgICAgW2V4cGVyaW1lbnRJZHNdPSJleHBlcmltZW50SWRzIlxuICAgICAgW3VzZUZsZXhpYmxlTGF5b3V0XT0idXNlRmxleGlibGVMYXlvdXQiXG4gICAgICBbbnVtU2VsZWN0ZWRJdGVtc109Im51bVNlbGVjdGVkSXRlbXMkIHwgYXN5bmMiXG4gICAgICBbY29sdW1uc109ImNvbHVtbnMiXG4gICAgICBbaHBhcmFtQ29sdW1uc109ImhwYXJhbUNvbHVtbnMkIHwgYXN5bmMiXG4gICAgICBbbWV0cmljQ29sdW1uc109Im1ldHJpY0NvbHVtbnMkIHwgYXN5bmMiXG4gICAgICBbc2hvd0V4cGVyaW1lbnROYW1lXT0iaXNFeHBlcmltZW50TmFtZVZpc2libGUoKSJcbiAgICAgIFtwYWdlSXRlbXNdPSJwYWdlSXRlbXMkIHwgYXN5bmMiXG4gICAgICBbZmlsdGVyZWRJdGVtc0xlbmd0aF09ImZpbHRlcmVkSXRlbXNMZW5ndGgkIHwgYXN5bmMiXG4gICAgICBbYWxsSXRlbXNMZW5ndGhdPSJhbGxJdGVtc0xlbmd0aCQgfCBhc3luYyJcbiAgICAgIFtsb2FkaW5nXT0ibG9hZGluZyQgfCBhc3luYyJcbiAgICAgIFtwYWdpbmF0aW9uT3B0aW9uXT0icGFnaW5hdGlvbk9wdGlvbiQgfCBhc3luYyJcbiAgICAgIFtyZWdleEZpbHRlcl09InJlZ2V4RmlsdGVyJCB8IGFzeW5jIlxuICAgICAgW3Nob3dHcm91cENvbnRyb2xdPSJzaG93R3JvdXBDb250cm9sJCB8IGFzeW5jIlxuICAgICAgW3NvcnRPcHRpb25dPSJzb3J0T3B0aW9uJCB8IGFzeW5jIlxuICAgICAgW3VzZVBhZ2luYXRpb25dPSJ1c2VQYWdpbmF0aW9uIlxuICAgICAgKG9uU2VsZWN0aW9uVG9nZ2xlKT0ib25SdW5TZWxlY3Rpb25Ub2dnbGUoJGV2ZW50KSJcbiAgICAgIChvblBhZ2VTZWxlY3Rpb25Ub2dnbGUpPSJvblBhZ2VTZWxlY3Rpb25Ub2dnbGUoJGV2ZW50KSJcbiAgICAgIChvblBhZ2luYXRpb25DaGFuZ2UpPSJvblBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KSJcbiAgICAgIChvblJlZ2V4RmlsdGVyQ2hhbmdlKT0ib25SZWdleEZpbHRlckNoYW5nZSgkZXZlbnQpIlxuICAgICAgKG9uU29ydENoYW5nZSk9Im9uU29ydENoYW5nZSgkZXZlbnQpIlxuICAgICAgKG9uUnVuQ29sb3JDaGFuZ2UpPSJvblJ1bkNvbG9yQ2hhbmdlKCRldmVudCkiXG4gICAgICAob25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQpPSJvbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZCgkZXZlbnQpIlxuICAgICAgKG9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkKT0ib25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQoJGV2ZW50KSJcbiAgICAgIChvbk1ldHJpY0ZpbHRlckNoYW5nZWQpPSJvbk1ldHJpY0ZpbHRlckNoYW5nZWQoJGV2ZW50KSJcbiAgICA+PC9ydW5zLXRhYmxlLWNvbXBvbmVudD5cbiAgJyxob3N0OnsiW2NsYXNzLmZsZXgtbGF5b3V0XSI6InVzZUZsZXhpYmxlTGF5b3V0In0sc3R5bGVzOlsiXG4gICAgICA6aG9zdC5mbGV4LWxheW91dCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LmZsZXgtbGF5b3V0ID4gcnVucy10YWJsZS1jb21wb25lbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLHt1c2VGbGV4aWJsZUxheW91dDpbe3R5cGU6eHl9XSx1c2VQYWdpbmF0aW9uOlt7dHlwZTp4eX1dLGNvbHVtbnM6W3t0eXBlOnh5fV0sZXhwZXJpbWVudElkczpbe3R5cGU6eHl9XSxzaG93SHBhcmFtc0FuZE1ldHJpY3M6W3t0eXBlOnh5fV19KTtjbGFzcyBsMnt9bDIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGwyKX0sbDIuybVjbXA9dG8oe3R5cGU6bDIsc2VsZWN0b3JzOltbInJ1bnMtc2VsZWN0b3ItY29tcG9uZW50Il1dLGlucHV0czp7ZXhwZXJpbWVudElkczoiZXhwZXJpbWVudElkcyIsc2hvd0hwYXJhbXNBbmRNZXRyaWNzOiJzaG93SHBhcmFtc0FuZE1ldHJpY3MiLGNvbHVtbnM6ImNvbHVtbnMifSxkZWNsczoxLHZhcnM6NCxjb25zdHM6W1szLCJ1c2VGbGV4aWJsZUxheW91dCIsImNvbHVtbnMiLCJleHBlcmltZW50SWRzIiwic2hvd0hwYXJhbXNBbmRNZXRyaWNzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlRtKDAsInJ1bnMtdGFibGUiLDApLDImZSYmRG0oInVzZUZsZXhpYmxlTGF5b3V0IiwhMCkoImNvbHVtbnMiLG4uY29sdW1ucykoImV4cGVyaW1lbnRJZHMiLG4uZXhwZXJpbWVudElkcykoInNob3dIcGFyYW1zQW5kTWV0cmljcyIsbi5zaG93SHBhcmFtc0FuZE1ldHJpY3MpfSxkaXJlY3RpdmVzOltzMl0sc3R5bGVzOlsicnVucy10YWJsZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGwyLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InJ1bnMtc2VsZWN0b3ItY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPHJ1bnMtdGFibGVcbiAgICAgIFt1c2VGbGV4aWJsZUxheW91dF09InRydWUiXG4gICAgICBbY29sdW1uc109ImNvbHVtbnMiXG4gICAgICBbZXhwZXJpbWVudElkc109ImV4cGVyaW1lbnRJZHMiXG4gICAgICBbc2hvd0hwYXJhbXNBbmRNZXRyaWNzXT0ic2hvd0hwYXJhbXNBbmRNZXRyaWNzIlxuICAgID48L3J1bnMtdGFibGU+XG4gICcsc3R5bGVzOlsiXG4gICAgICBydW5zLXRhYmxlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse2V4cGVyaW1lbnRJZHM6W3t0eXBlOnh5fV0sc2hvd0hwYXJhbXNBbmRNZXRyaWNzOlt7dHlwZTp4eX1dLGNvbHVtbnM6W3t0eXBlOnh5fV19KTtjbGFzcyBjMntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5leHBlcmltZW50SWRzJD10aGlzLnN0b3JlLnNlbGVjdChUUykucGlwZShJdCgodD0+bnVsbCE9dD90OltdKSkpLHRoaXMuY29sdW1ucyQ9dGhpcy5zdG9yZS5zZWxlY3QoVFMpLnBpcGUoSXQoKHQ9Plt2US5DSEVDS0JPWCx2US5SVU5fTkFNRSx0JiZ0Lmxlbmd0aD4xP3ZRLkVYUEVSSU1FTlRfTkFNRTpudWxsLHZRLlJVTl9DT0xPUl0uZmlsdGVyKCh0PT5udWxsIT09dCkpKSkpfX1jMi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YzIpKFNtKEl3KSl9LGMyLsm1Y21wPXRvKHt0eXBlOmMyLHNlbGVjdG9yczpbWyJydW5zLXNlbGVjdG9yIl1dLGlucHV0czp7c2hvd0hwYXJhbXNBbmRNZXRyaWNzOiJzaG93SHBhcmFtc0FuZE1ldHJpY3MifSxkZWNsczozLHZhcnM6Nyxjb25zdHM6W1szLCJleHBlcmltZW50SWRzIiwiY29sdW1ucyIsInNob3dIcGFyYW1zQW5kTWV0cmljcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwicnVucy1zZWxlY3Rvci1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSksMiZlJiZEbSgiZXhwZXJpbWVudElkcyIsVGgoMSwzLG4uZXhwZXJpbWVudElkcyQpKSgiY29sdW1ucyIsVGgoMiw1LG4uY29sdW1ucyQpKSgic2hvd0hwYXJhbXNBbmRNZXRyaWNzIixuLnNob3dIcGFyYW1zQW5kTWV0cmljcyl9LGRpcmVjdGl2ZXM6W2wyXSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoYzIsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoicnVucy1zZWxlY3RvciIsdGVtcGxhdGU6J1xuICAgIDxydW5zLXNlbGVjdG9yLWNvbXBvbmVudFxuICAgICAgW2V4cGVyaW1lbnRJZHNdPSJleHBlcmltZW50SWRzJCB8IGFzeW5jIlxuICAgICAgW2NvbHVtbnNdPSJjb2x1bW5zJCB8IGFzeW5jIlxuICAgICAgW3Nob3dIcGFyYW1zQW5kTWV0cmljc109InNob3dIcGFyYW1zQW5kTWV0cmljcyJcbiAgICA+PC9ydW5zLXNlbGVjdG9yLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLHtzaG93SHBhcmFtc0FuZE1ldHJpY3M6W3t0eXBlOnh5fV19KTtjb25zdCBkMj1uZXcgV2Vha01hcDtjbGFzcyBwMntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMucm9vdD10LHRoaXMuYnVmZmVyPWUsdGhpcy5kZXN0cm95ZWRUYXJnZXRzPW5ldyBXZWFrU2V0fWluaXRpYWxpemUodCl7dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcnx8KHRoaXMuaW50ZXJzZWN0aW9uQ2FsbGJhY2s9dCx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLm9uQ2FyZEludGVyc2VjdGlvbi5iaW5kKHRoaXMpLHt0aHJlc2hvbGQ6MCxyb290OnRoaXMucm9vdCxyb290TWFyZ2luOnRoaXMuYnVmZmVyfSkpfWFkZCh0KXt0aGlzLmVuc3VyZUluaXRpYWxpemVkKCkmJnRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0KX13aWxsRGVzdHJveSh0KXt0aGlzLmVuc3VyZUluaXRpYWxpemVkKCkmJnRoaXMuZGVzdHJveWVkVGFyZ2V0cy5hZGQodCl9ZW5zdXJlSW5pdGlhbGl6ZWQoKXtpZighdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcil0aHJvdyBuZXcgRXJyb3IoIkNhcmRPYnNlcnZlciBtdXN0IGJlIGluaXRpYWxpemVkIGJlZm9yZSB1c2UiKTtyZXR1cm4hMH1vbkNhcmRJbnRlcnNlY3Rpb24odCl7dC5zb3J0KCgodCxlKT0+dC50aW1lLWUudGltZSkpO2NvbnN0IGU9bmV3IFNldCxuPW5ldyBTZXQ7Zm9yKGNvbnN0e2lzSW50ZXJzZWN0aW5nOm8sdGFyZ2V0Oml9b2YgdClvPyhlLmFkZChpKSxuLmRlbGV0ZShpKSk6KGUuZGVsZXRlKGkpLG4uYWRkKGkpKSx0aGlzLmRlc3Ryb3llZFRhcmdldHMuaGFzKGkpJiYhbyYmKHRoaXMuZGVzdHJveWVkVGFyZ2V0cy5kZWxldGUoaSksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci51bm9ic2VydmUoaSkpO3RoaXMuaW50ZXJzZWN0aW9uQ2FsbGJhY2soZSxuKX1vbkNhcmRJbnRlcnNlY3Rpb25Gb3JUZXN0KHQpe3RoaXMub25DYXJkSW50ZXJzZWN0aW9uKHQpfX1jbGFzcyBtMntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuaG9zdD10LHRoaXMuc3RvcmU9ZX1vbkNhcmRJbnRlcnNlY3Rpb24odCxlKXtjb25zdCBuPVsuLi50XS5tYXAoKHQ9Pntjb25zdCBlPWQyLmdldCh0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkEgQ2FyZE9ic2VydmVyIGVsZW1lbnQgbXVzdCBoYXZlIGFuIGFzc29jaWF0ZWQgZWxlbWVudCBpZCBhbmQgY2FyZCBpZC4iKTtyZXR1cm57ZWxlbWVudElkOmUuZWxlbWVudElkLGNhcmRJZDplLmNhcmRJZH19KSksbz1bLi4uZV0ubWFwKCh0PT57Y29uc3QgZT1kMi5nZXQodCk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJBIENhcmRPYnNlcnZlciBlbGVtZW50IG11c3QgaGF2ZSBhbiBhc3NvY2lhdGVkIGVsZW1lbnQgaWQgYW5kIGNhcmQgaWQuIik7cmV0dXJue2VsZW1lbnRJZDplLmVsZW1lbnRJZCxjYXJkSWQ6ZS5jYXJkSWR9fSkpO3RoaXMuc3RvcmUuZGlzcGF0Y2goJEUoe2VudGVyZWRDYXJkczpuLGV4aXRlZENhcmRzOm99KSl9bmdPbkluaXQoKXtjb25zdCB0PXRoaXMuaG9zdC5uYXRpdmVFbGVtZW50O2QyLnNldCh0LHtlbGVtZW50SWQ6KGhRKyssU3ltYm9sKGhRKSksY2FyZElkOnRoaXMuY2FyZElkfSksdGhpcy5jYXJkT2JzZXJ2ZXJ8fCh0aGlzLmNhcmRPYnNlcnZlcj1uZXcgcDIpLHRoaXMuY2FyZE9ic2VydmVyLmluaXRpYWxpemUodGhpcy5vbkNhcmRJbnRlcnNlY3Rpb24uYmluZCh0aGlzKSksdGhpcy5jYXJkT2JzZXJ2ZXIuYWRkKHQpfW5nT25EZXN0cm95KCl7dGhpcy5jYXJkT2JzZXJ2ZXImJnRoaXMuY2FyZE9ic2VydmVyLndpbGxEZXN0cm95KHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50KX1ob3N0Rm9yVGVzdCgpe3JldHVybiB0aGlzLmhvc3R9fW0yLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxtMikoU20oaGcpLFNtKEl3KSl9LG0yLsm1ZGlyPWxvKHt0eXBlOm0yLHNlbGVjdG9yczpbWyIiLCJjYXJkTGF6eUxvYWRlciIsIiJdXSxpbnB1dHM6e2NhcmRJZDpbImNhcmRMYXp5TG9hZGVyIiwiY2FyZElkIl0sY2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobTIsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW2NhcmRMYXp5TG9hZGVyXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6SXd9XX0pLHtjYXJkSWQ6W3t0eXBlOnh5LGFyZ3M6WyJjYXJkTGF6eUxvYWRlciJdfV0sY2FyZE9ic2VydmVyOlt7dHlwZTp4eX1dfSk7Y29uc3QgdTI9Ii9zY2FsYXJfc3VtbWFyeSI7ZnVuY3Rpb24gZjIodCxlKXtsZXQgbj10O3JldHVybiBlJiZ0LnN0YXJ0c1dpdGgoZSsiLyIpJiYobj10LnNsaWNlKGUubGVuZ3RoKzEpKSxuLmVuZHNXaXRoKHUyKSYmKG49bi5zbGljZSgwLC11Mi5sZW5ndGgpKSxufHx0fWZ1bmN0aW9uIGcyKHQsZSl7bGV0IG49MCxvPTA7Zm9yKDs7KXtpZihuPT09dC5sZW5ndGgpcmV0dXJuIG89PT1lLmxlbmd0aD8wOi0xO2lmKG89PT1lLmxlbmd0aClyZXR1cm4gMTtpZihiMih0W25dKSYmYjIoZVtvXSkpe2NvbnN0IGk9bixhPW87bj1oMih0LG4rMSksbz1oMihlLG8rMSk7Y29uc3Qgcj1OdW1iZXIodC5zbGljZShpLG4pKSxzPU51bWJlcihlLnNsaWNlKGEsbykpO2lmKHI8cylyZXR1cm4tMTtpZihyPnMpcmV0dXJuIDF9ZWxzZXtpZih5Mih0W25dKSl7aWYoIXkyKGVbb10pKXJldHVybi0xfWVsc2V7aWYoeTIoZVtvXSkpcmV0dXJuIDE7aWYodFtuXTxlW29dKXJldHVybi0xO2lmKHRbbl0+ZVtvXSlyZXR1cm4gMX1uKyssbysrfX19ZnVuY3Rpb24gaDIodCxlKXtsZXQgbjshKGZ1bmN0aW9uKHQpe3RbdC5OQVRVUkFMPTBdPSJOQVRVUkFMIix0W3QuUkVBTD0xXT0iUkVBTCIsdFt0LkVYUE9ORU5UX1NJR049Ml09IkVYUE9ORU5UX1NJR04iLHRbdC5FWFBPTkVOVD0zXT0iRVhQT05FTlQifSkobnx8KG49e30pKTtsZXQgbz1uLk5BVFVSQUwsaT1lO2Zvcig7aTx0Lmxlbmd0aDtpKyspaWYobz09PW4uTkFUVVJBTCl7aWYoIi4iPT09dFtpXSlvPW4uUkVBTDtlbHNlIGlmKCJlIj09PXRbaV18fCJFIj09PXRbaV0pbz1uLkVYUE9ORU5UX1NJR047ZWxzZSBpZighYjIodFtpXSkpYnJlYWt9ZWxzZSBpZihvPT09bi5SRUFMKXtpZigiZSI9PT10W2ldfHwiRSI9PT10W2ldKW89bi5FWFBPTkVOVF9TSUdOO2Vsc2UgaWYoIWIyKHRbaV0pKWJyZWFrfWVsc2UgaWYobz09PW4uRVhQT05FTlRfU0lHTil7aWYoIWIyKHRbaV0pJiYiKyIhPT10W2ldJiYiLSIhPT10W2ldKWJyZWFrO289bi5FWFBPTkVOVH1lbHNlIGlmKG89PT1uLkVYUE9ORU5UJiYhYjIodFtpXSkpYnJlYWs7cmV0dXJuIGl9ZnVuY3Rpb24gYjIodCl7cmV0dXJuIjAiPD10JiZ0PD0iOSJ9ZnVuY3Rpb24geTIodCl7cmV0dXJuIi8iPT09dHx8YjIodCl9ZnVuY3Rpb24gXzIodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiw3KX1mdW5jdGlvbiBDMih0LGUpe2lmKDEmdCYmKFJtKDAsIm1hdC1vcHRpb24iLDgpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtEbSgidmFsdWUiLHQpLGpwKCJ0aXRsZSIsdCkscmMoMSksU3UodCl9fWZ1bmN0aW9uIE0yKHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiw5KSxSbSgxLCJlbSIpLGt1KDIpLEFoKDMsIm51bWJlciIpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMiksRHUoImFuZCAiLFRoKDMsMSx0LmNvbXBsZXRpb25zLmxlbmd0aC0yNSksIiBtb3JlIHRhZ3MgbWF0Y2hlZCIpfX1jbGFzcyB2Mntjb25zdHJ1Y3Rvcigpe3RoaXMub25SZWdleEZpbHRlclZhbHVlQ2hhbmdlPW5ldyBMaH1vbkNvbXBsZXRpb25BY2NlcHRlZCh0KXt0aGlzLm9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KChmdW5jdGlvbiBlKHQpe3JldHVybiB0LnJlcGxhY2UoQkwsIlxcJCYiKX0pKHQpKX19djIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHYyKX0sdjIuybVjbXA9dG8oe3R5cGU6djIsc2VsZWN0b3JzOltbIm1ldHJpY3MtdGFnLWZpbHRlci1jb21wb25lbnQiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoInZhbGlkIixuLmlzUmVnZXhGaWx0ZXJWYWxpZCl9LGlucHV0czp7cmVnZXhGaWx0ZXJWYWx1ZToicmVnZXhGaWx0ZXJWYWx1ZSIsaXNSZWdleEZpbHRlclZhbGlkOiJpc1JlZ2V4RmlsdGVyVmFsaWQiLGNvbXBsZXRpb25zOiJjb21wbGV0aW9ucyJ9LG91dHB1dHM6e29uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZToib25SZWdleEZpbHRlclZhbHVlQ2hhbmdlIn0sZGVjbHM6Nyx2YXJzOjUsY29uc3RzOltbMSwidGFnLWZpbHRlciJdLFsicGxhY2Vob2xkZXIiLCJGaWx0ZXIgdGFncyAocmVnZXgpIiwzLCJ2YWx1ZSIsIm1hdEF1dG9jb21wbGV0ZSIsImlucHV0Il0sWyJzdmdJY29uIiwiZXJyb3JfMjRweCIsImNsYXNzIiwiZXJyb3ItaWNvbiIsInRpdGxlIiwiSW52YWxpZCByZWdleCBmaWx0ZXIuIFRoZSByZXN1bHQgbWF5IGJlIHN0YWxlLiIsNCwibmdJZiJdLFsxLCJ0YWctb3B0aW9ucyIsMywib3B0aW9uU2VsZWN0ZWQiXSxbImZpbHRlck1hdGNoZXMiLCJtYXRBdXRvY29tcGxldGUiXSxbImNsYXNzIiwib3B0aW9uIiwzLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsImFuZC1tb3JlIiw0LCJuZ0lmIl0sWyJzdmdJY29uIiwiZXJyb3JfMjRweCIsInRpdGxlIiwiSW52YWxpZCByZWdleCBmaWx0ZXIuIFRoZSByZXN1bHQgbWF5IGJlIHN0YWxlLiIsMSwiZXJyb3ItaWNvbiJdLFsxLCJvcHRpb24iLDMsInZhbHVlIl0sWzEsImFuZC1tb3JlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsInRiLWZpbHRlci1pbnB1dCIsMSksVm0oImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChlLnRhcmdldC52YWx1ZSl9KSksQW0oKSxRcCgyLF8yLDEsMCwibWF0LWljb24iLDIpLEFtKCksUm0oMywibWF0LWF1dG9jb21wbGV0ZSIsMyw0KSxWbSgib3B0aW9uU2VsZWN0ZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uQ29tcGxldGlvbkFjY2VwdGVkKGUub3B0aW9uLnZhbHVlKX0pKSxRcCg1LEMyLDIsMywibWF0LW9wdGlvbiIsNSksUXAoNixNMiw0LDMsImRpdiIsNiksQW0oKSksMiZlKXtjb25zdCB0PSRwKDQpO3JjKDEpLERtKCJ2YWx1ZSIsbi5yZWdleEZpbHRlclZhbHVlKSgibWF0QXV0b2NvbXBsZXRlIix0KSxyYygxKSxEbSgibmdJZiIsIW4uaXNSZWdleEZpbHRlclZhbGlkKSxyYygzKSxEbSgibmdGb3JPZiIsbnVsbD09bi5jb21wbGV0aW9ucz9udWxsOm4uY29tcGxldGlvbnMuc2xpY2UoMCwyNSkpLHJjKDEpLERtKCJuZ0lmIiwobnVsbD09bi5jb21wbGV0aW9ucz9udWxsOm4uY29tcGxldGlvbnMubGVuZ3RoKT4yNSl9fSxkaXJlY3RpdmVzOltxMCxkTSxIMCxsTSxEVyxCSF0scGlwZXM6W0ZNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0udGFnLWZpbHRlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfXRiLWZpbHRlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjF9W19uZ2hvc3QtJUNPTVAlXXtjb2xvcjojMjEyMTIxfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXXtjb2xvcjojZmZmfVtfbmdob3N0LSVDT01QJV06bm90KC52YWxpZCl7Y29sb3I6I2M2MjgyOH1bX25naG9zdC0lQ09NUCVdOm5vdCgudmFsaWQpICAgLmVycm9yLWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNjNjI4Mjg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0gIC50YWctb3B0aW9ucyAub3B0aW9uLCAgIC50YWctb3B0aW9ucyAuYW5kLW1vcmV7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDozO2Rpc3BsYXk6LXdlYmtpdC1ib3g7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS40O3BhZGRpbmc6OHB4IDE2cHh9ICAudGFnLW9wdGlvbnMgLmFuZC1tb3Jle2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgICAudGFnLW9wdGlvbnMgLmFuZC1tb3JlLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAgIC50YWctb3B0aW9ucyAuYW5kLW1vcmV7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHYyLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtdGFnLWZpbHRlci1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJmaWx0ZXJfaW5wdXRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbImZpbHRlcl9pbnB1dF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cmVnZXhGaWx0ZXJWYWx1ZTpbe3R5cGU6eHl9XSxpc1JlZ2V4RmlsdGVyVmFsaWQ6W3t0eXBlOlB5LGFyZ3M6WyJjbGFzcy52YWxpZCJdfSx7dHlwZTp4eX1dLGNvbXBsZXRpb25zOlt7dHlwZTp4eX1dLG9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZTpbe3R5cGU6T3l9XX0pO2NsYXNzIHgye2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnRhZ0ZpbHRlciQ9dGhpcy5zdG9yZS5zZWxlY3QoQlQpLHRoaXMuaXNUYWdGaWx0ZXJSZWdleFZhbGlkJD10aGlzLnRhZ0ZpbHRlciQucGlwZShJdCgodD0+e3RyeXtyZXR1cm4gbmV3IFJlZ0V4cCh0KSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KSkpLHRoaXMuY29tcGxldGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KE1UKS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KHFUKSksSXQoKChbdCxlXSk9PnQuZmlsdGVyKCgoe3BsdWdpbjp0fSk9PiFlLnNpemV8fGUuaGFzKHQpKSkubWFwKCgoe3RhZzp0fSk9PnQpKSkpLEl0KCh0PT5bLi4ubmV3IFNldCh0KV0pKSxJdCgodD0+dC5zb3J0KGcyKSkpLGZlKHRoaXMuc3RvcmUuc2VsZWN0KEJUKSksSXQoKChbdCxlXSk9Pnt0cnl7cmV0dXJuW3QsbmV3IFJlZ0V4cChlLCJpIildfWNhdGNoKGUpe3JldHVyblt0LG51bGxdfX0pKSxjZSgoKFssdF0pPT5udWxsIT09dCkpLEl0KCgoW3QsZV0pPT50LmZpbHRlcigodD0+ZS50ZXN0KHQpKSkpKSl9b25UYWdGaWx0ZXJDaGFuZ2UodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChlUih7dGFnRmlsdGVyOnR9KSl9fXgyLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4MikoU20oSXcpKX0seDIuybVjbXA9dG8oe3R5cGU6eDIsc2VsZWN0b3JzOltbIm1ldHJpY3MtdGFnLWZpbHRlciJdXSxkZWNsczo0LHZhcnM6OSxjb25zdHM6W1szLCJyZWdleEZpbHRlclZhbHVlIiwiaXNSZWdleEZpbHRlclZhbGlkIiwiY29tcGxldGlvbnMiLCJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsIm1ldHJpY3MtdGFnLWZpbHRlci1jb21wb25lbnQiLDApLFZtKCJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uVGFnRmlsdGVyQ2hhbmdlKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFtKCkpLDImZSYmRG0oInJlZ2V4RmlsdGVyVmFsdWUiLFRoKDEsMyxuLnRhZ0ZpbHRlciQpKSgiaXNSZWdleEZpbHRlclZhbGlkIixUaCgyLDUsbi5pc1RhZ0ZpbHRlclJlZ2V4VmFsaWQkKSkoImNvbXBsZXRpb25zIixUaCgzLDcsbi5jb21wbGV0aW9ucyQpKX0sZGlyZWN0aXZlczpbdjJdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh4Mixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLXRhZy1maWx0ZXIiLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy10YWctZmlsdGVyLWNvbXBvbmVudFxuICAgICAgW3JlZ2V4RmlsdGVyVmFsdWVdPSJ0YWdGaWx0ZXIkIHwgYXN5bmMiXG4gICAgICBbaXNSZWdleEZpbHRlclZhbGlkXT0iaXNUYWdGaWx0ZXJSZWdleFZhbGlkJCB8IGFzeW5jIlxuICAgICAgW2NvbXBsZXRpb25zXT0iY29tcGxldGlvbnMkIHwgYXN5bmMiXG4gICAgICAob25SZWdleEZpbHRlclZhbHVlQ2hhbmdlKT0ib25UYWdGaWx0ZXJDaGFuZ2UoJGV2ZW50KSJcbiAgICA+PC9tZXRyaWNzLXRhZy1maWx0ZXItY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y29uc3QgTzI9WyJidXR0b24iXSxQMj1uZXcgR2EoIk1BVF9CVVRUT05fVE9HR0xFX0RFRkFVTFRfT1BUSU9OUyIpLHcyPW5ldyBHYSgiTWF0QnV0dG9uVG9nZ2xlR3JvdXAiKSxrMj17cHJvdmlkZTpJVix1c2VFeGlzdGluZzpxZSgoKCk9PkUyKSksbXVsdGk6ITB9O2xldCBTMj0wO2NsYXNzIEQye2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zb3VyY2U9dCx0aGlzLnZhbHVlPWV9fWNsYXNzIEUye2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fY2hhbmdlRGV0ZWN0b3I9dCx0aGlzLl92ZXJ0aWNhbD0hMSx0aGlzLl9tdWx0aXBsZT0hMSx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuPSgpPT57fSx0aGlzLl9vblRvdWNoZWQ9KCk9Pnt9LHRoaXMuX25hbWU9Im1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLSIrUzIrKyx0aGlzLnZhbHVlQ2hhbmdlPW5ldyBMaCx0aGlzLmNoYW5nZT1uZXcgTGgsdGhpcy5hcHBlYXJhbmNlPWUmJmUuYXBwZWFyYW5jZT9lLmFwcGVhcmFuY2U6InN0YW5kYXJkIn1nZXQgbmFtZSgpe3JldHVybiB0aGlzLl9uYW1lfXNldCBuYW1lKHQpe3RoaXMuX25hbWU9dCx0aGlzLl9idXR0b25Ub2dnbGVzJiZ0aGlzLl9idXR0b25Ub2dnbGVzLmZvckVhY2goKHQ9Pnt0Lm5hbWU9dGhpcy5fbmFtZSx0Ll9tYXJrRm9yQ2hlY2soKX0pKX1nZXQgdmVydGljYWwoKXtyZXR1cm4gdGhpcy5fdmVydGljYWx9c2V0IHZlcnRpY2FsKHQpe3RoaXMuX3ZlcnRpY2FsPXl6KHQpfWdldCB2YWx1ZSgpe2NvbnN0IHQ9dGhpcy5fc2VsZWN0aW9uTW9kZWw/dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQ6W107cmV0dXJuIHRoaXMubXVsdGlwbGU/dC5tYXAoKHQ9PnQudmFsdWUpKTp0WzBdP3RbMF0udmFsdWU6dm9pZCAwfXNldCB2YWx1ZSh0KXt0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKHQpLHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKX1nZXQgc2VsZWN0ZWQoKXtjb25zdCB0PXRoaXMuX3NlbGVjdGlvbk1vZGVsP3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkOltdO3JldHVybiB0aGlzLm11bHRpcGxlP3Q6dFswXXx8bnVsbH1nZXQgbXVsdGlwbGUoKXtyZXR1cm4gdGhpcy5fbXVsdGlwbGV9c2V0IG11bHRpcGxlKHQpe3RoaXMuX211bHRpcGxlPXl6KHQpfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9eXoodCksdGhpcy5fYnV0dG9uVG9nZ2xlcyYmdGhpcy5fYnV0dG9uVG9nZ2xlcy5mb3JFYWNoKCh0PT50Ll9tYXJrRm9yQ2hlY2soKSkpfW5nT25Jbml0KCl7dGhpcy5fc2VsZWN0aW9uTW9kZWw9bmV3IG9GKHRoaXMubXVsdGlwbGUsdm9pZCAwLCExKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoLi4udGhpcy5fYnV0dG9uVG9nZ2xlcy5maWx0ZXIoKHQ9PnQuY2hlY2tlZCkpKX13cml0ZVZhbHVlKHQpe3RoaXMudmFsdWU9dCx0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKX1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm49dH1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLl9vblRvdWNoZWQ9dH1zZXREaXNhYmxlZFN0YXRlKHQpe3RoaXMuZGlzYWJsZWQ9dH1fZW1pdENoYW5nZUV2ZW50KCl7Y29uc3QgdD10aGlzLnNlbGVjdGVkLGU9QXJyYXkuaXNBcnJheSh0KT90W3QubGVuZ3RoLTFdOnQsbj1uZXcgRDIoZSx0aGlzLnZhbHVlKTt0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKG4udmFsdWUpLHRoaXMuY2hhbmdlLmVtaXQobil9X3N5bmNCdXR0b25Ub2dnbGUodCxlLG49ITEsbz0hMSl7dGhpcy5tdWx0aXBsZXx8IXRoaXMuc2VsZWN0ZWR8fHQuY2hlY2tlZHx8KHRoaXMuc2VsZWN0ZWQuY2hlY2tlZD0hMSksdGhpcy5fc2VsZWN0aW9uTW9kZWw/ZT90aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QodCk6dGhpcy5fc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3QodCk6bz0hMCxvP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT50aGlzLl91cGRhdGVNb2RlbFZhbHVlKG4pKSk6dGhpcy5fdXBkYXRlTW9kZWxWYWx1ZShuKX1faXNTZWxlY3RlZCh0KXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uTW9kZWwmJnRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQodCl9X2lzUHJlY2hlY2tlZCh0KXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmF3VmFsdWUmJih0aGlzLm11bHRpcGxlJiZBcnJheS5pc0FycmF5KHRoaXMuX3Jhd1ZhbHVlKT90aGlzLl9yYXdWYWx1ZS5zb21lKChlPT5udWxsIT10LnZhbHVlJiZlPT09dC52YWx1ZSkpOnQudmFsdWU9PT10aGlzLl9yYXdWYWx1ZSl9X3NldFNlbGVjdGlvbkJ5VmFsdWUodCl7aWYodGhpcy5fcmF3VmFsdWU9dCx0aGlzLl9idXR0b25Ub2dnbGVzKWlmKHRoaXMubXVsdGlwbGUmJnQpe2lmKCFBcnJheS5pc0FycmF5KHQpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoIlZhbHVlIG11c3QgYmUgYW4gYXJyYXkgaW4gbXVsdGlwbGUtc2VsZWN0aW9uIG1vZGUuIik7dGhpcy5fY2xlYXJTZWxlY3Rpb24oKSx0LmZvckVhY2goKHQ9PnRoaXMuX3NlbGVjdFZhbHVlKHQpKSl9ZWxzZSB0aGlzLl9jbGVhclNlbGVjdGlvbigpLHRoaXMuX3NlbGVjdFZhbHVlKHQpfV9jbGVhclNlbGVjdGlvbigpe3RoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCksdGhpcy5fYnV0dG9uVG9nZ2xlcy5mb3JFYWNoKCh0PT50LmNoZWNrZWQ9ITEpKX1fc2VsZWN0VmFsdWUodCl7Y29uc3QgZT10aGlzLl9idXR0b25Ub2dnbGVzLmZpbmQoKGU9Pm51bGwhPWUudmFsdWUmJmUudmFsdWU9PT10KSk7ZSYmKGUuY2hlY2tlZD0hMCx0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoZSkpfV91cGRhdGVNb2RlbFZhbHVlKHQpe3QmJnRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpLHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKX19RTIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEUyKShTbShVZyksU20oUDIsOCkpfSxFMi7JtWRpcj1sbyh7dHlwZTpFMixzZWxlY3RvcnM6W1sibWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYkaChvLEEyLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX2J1dHRvblRvZ2dsZXM9dCl9fSxob3N0QXR0cnM6WyJyb2xlIiwiZ3JvdXAiLDEsIm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIl0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmKGpwKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkKSxwdSgibWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwiLG4udmVydGljYWwpKCJtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIiwic3RhbmRhcmQiPT09bi5hcHBlYXJhbmNlKSl9LGlucHV0czp7YXBwZWFyYW5jZToiYXBwZWFyYW5jZSIsbmFtZToibmFtZSIsdmVydGljYWw6InZlcnRpY2FsIix2YWx1ZToidmFsdWUiLG11bHRpcGxlOiJtdWx0aXBsZSIsZGlzYWJsZWQ6ImRpc2FibGVkIn0sb3V0cHV0czp7dmFsdWVDaGFuZ2U6InZhbHVlQ2hhbmdlIixjaGFuZ2U6ImNoYW5nZSJ9LGV4cG9ydEFzOlsibWF0QnV0dG9uVG9nZ2xlR3JvdXAiXSxmZWF0dXJlczpbcGcoW2syLHtwcm92aWRlOncyLHVzZUV4aXN0aW5nOkUyfV0pXX0pLEUyLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUDJdfV19XSxFMi5wcm9wRGVjb3JhdG9ycz17X2J1dHRvblRvZ2dsZXM6W3t0eXBlOllhLGFyZ3M6W3FlKCgoKT0+QTIpKSx7ZGVzY2VuZGFudHM6ITB9XX1dLGFwcGVhcmFuY2U6W3t0eXBlOnh5fV0sbmFtZTpbe3R5cGU6eHl9XSx2ZXJ0aWNhbDpbe3R5cGU6eHl9XSx2YWx1ZTpbe3R5cGU6eHl9XSx2YWx1ZUNoYW5nZTpbe3R5cGU6T3l9XSxtdWx0aXBsZTpbe3R5cGU6eHl9XSxkaXNhYmxlZDpbe3R5cGU6eHl9XSxjaGFuZ2U6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRTIsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAiLHByb3ZpZGVyczpbazIse3Byb3ZpZGU6dzIsdXNlRXhpc3Rpbmc6RTJ9XSxob3N0Ontyb2xlOiJncm91cCIsY2xhc3M6Im1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIiwiW2F0dHIuYXJpYS1kaXNhYmxlZF0iOiJkaXNhYmxlZCIsIltjbGFzcy5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbF0iOiJ2ZXJ0aWNhbCIsIltjbGFzcy5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkXSI6J2FwcGVhcmFuY2UgPT09ICJzdGFuZGFyZCInfSxleHBvcnRBczoibWF0QnV0dG9uVG9nZ2xlR3JvdXAifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUDJdfV19XX0pLHt2YWx1ZUNoYW5nZTpbe3R5cGU6T3l9XSxjaGFuZ2U6W3t0eXBlOk95fV0sYXBwZWFyYW5jZTpbe3R5cGU6eHl9XSxuYW1lOlt7dHlwZTp4eX1dLHZlcnRpY2FsOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLG11bHRpcGxlOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dLF9idXR0b25Ub2dnbGVzOlt7dHlwZTpZYSxhcmdzOltxZSgoKCk9PkEyKSkse2Rlc2NlbmRhbnRzOiEwfV19XX0pO2NvbnN0IFIyPVFJKGNsYXNze30pO2NsYXNzIEEyIGV4dGVuZHMgUjJ7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe3N1cGVyKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9lbGVtZW50UmVmPW4sdGhpcy5fZm9jdXNNb25pdG9yPW8sdGhpcy5faXNTaW5nbGVTZWxlY3Rvcj0hMSx0aGlzLl9jaGVja2VkPSExLHRoaXMuYXJpYUxhYmVsbGVkYnk9bnVsbCx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLmNoYW5nZT1uZXcgTGg7Y29uc3Qgcj1OdW1iZXIoaSk7dGhpcy50YWJJbmRleD1yfHwwPT09cj9yOm51bGwsdGhpcy5idXR0b25Ub2dnbGVHcm91cD10LHRoaXMuYXBwZWFyYW5jZT1hJiZhLmFwcGVhcmFuY2U/YS5hcHBlYXJhbmNlOiJzdGFuZGFyZCJ9Z2V0IGJ1dHRvbklkKCl7cmV0dXJuYCR7dGhpcy5pZH0tYnV0dG9uYH1nZXQgYXBwZWFyYW5jZSgpe3JldHVybiB0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwP3RoaXMuYnV0dG9uVG9nZ2xlR3JvdXAuYXBwZWFyYW5jZTp0aGlzLl9hcHBlYXJhbmNlfXNldCBhcHBlYXJhbmNlKHQpe3RoaXMuX2FwcGVhcmFuY2U9dH1nZXQgY2hlY2tlZCgpe3JldHVybiB0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwP3RoaXMuYnV0dG9uVG9nZ2xlR3JvdXAuX2lzU2VsZWN0ZWQodGhpcyk6dGhpcy5fY2hlY2tlZH1zZXQgY2hlY2tlZCh0KXtjb25zdCBlPXl6KHQpO2UhPT10aGlzLl9jaGVja2VkJiYodGhpcy5fY2hlY2tlZD1lLHRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAmJnRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAuX3N5bmNCdXR0b25Ub2dnbGUodGhpcyx0aGlzLl9jaGVja2VkKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfHx0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwJiZ0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwLmRpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD15eih0KX1uZ09uSW5pdCgpe2NvbnN0IHQ9dGhpcy5idXR0b25Ub2dnbGVHcm91cDt0aGlzLl9pc1NpbmdsZVNlbGVjdG9yPXQmJiF0Lm11bHRpcGxlLHRoaXMuaWQ9dGhpcy5pZHx8Im1hdC1idXR0b24tdG9nZ2xlLSIrUzIrKyx0aGlzLl9pc1NpbmdsZVNlbGVjdG9yJiYodGhpcy5uYW1lPXQubmFtZSksdCYmKHQuX2lzUHJlY2hlY2tlZCh0aGlzKT90aGlzLmNoZWNrZWQ9ITA6dC5faXNTZWxlY3RlZCh0aGlzKSE9PXRoaXMuX2NoZWNrZWQmJnQuX3N5bmNCdXR0b25Ub2dnbGUodGhpcyx0aGlzLl9jaGVja2VkKSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwhMCl9bmdPbkRlc3Ryb3koKXtjb25zdCB0PXRoaXMuYnV0dG9uVG9nZ2xlR3JvdXA7dGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpLHQmJnQuX2lzU2VsZWN0ZWQodGhpcykmJnQuX3N5bmNCdXR0b25Ub2dnbGUodGhpcywhMSwhMSwhMCl9Zm9jdXModCl7dGhpcy5fYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKHQpfV9vbkJ1dHRvbkNsaWNrKCl7Y29uc3QgdD0hIXRoaXMuX2lzU2luZ2xlU2VsZWN0b3J8fCF0aGlzLl9jaGVja2VkO3QhPT10aGlzLl9jaGVja2VkJiYodGhpcy5fY2hlY2tlZD10LHRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAmJih0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwLl9zeW5jQnV0dG9uVG9nZ2xlKHRoaXMsdGhpcy5fY2hlY2tlZCwhMCksdGhpcy5idXR0b25Ub2dnbGVHcm91cC5fb25Ub3VjaGVkKCkpKSx0aGlzLmNoYW5nZS5lbWl0KG5ldyBEMih0aGlzLHRoaXMudmFsdWUpKX1fbWFya0ZvckNoZWNrKCl7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9fUEyLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBMikoU20odzIsOCksU20oVWcpLFNtKGhnKSxTbShTSSksTmEoInRhYmluZGV4IiksU20oUDIsOCkpfSxBMi7JtWNtcD10byh7dHlwZTpBMixzZWxlY3RvcnM6W1sibWF0LWJ1dHRvbi10b2dnbGUiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlFoKE8yLDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uX2J1dHRvbkVsZW1lbnQ9dC5maXJzdCl9fSxob3N0QXR0cnM6WyJyb2xlIiwicHJlc2VudGF0aW9uIiwxLCJtYXQtYnV0dG9uLXRvZ2dsZSJdLGhvc3RWYXJzOjEyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgiZm9jdXMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uZm9jdXMoKX0pKSwyJmUmJihqcCgiYXJpYS1sYWJlbCIsbnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbnVsbCkoImlkIixuLmlkKSgibmFtZSIsbnVsbCkscHUoIm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUiLCFuLmJ1dHRvblRvZ2dsZUdyb3VwKSgibWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCIsbi5jaGVja2VkKSgibWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJtYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIiwic3RhbmRhcmQiPT09bi5hcHBlYXJhbmNlKSl9LGlucHV0czp7ZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdLHRhYkluZGV4OiJ0YWJJbmRleCIsYXBwZWFyYW5jZToiYXBwZWFyYW5jZSIsY2hlY2tlZDoiY2hlY2tlZCIsZGlzYWJsZWQ6ImRpc2FibGVkIixpZDoiaWQiLG5hbWU6Im5hbWUiLGFyaWFMYWJlbDpbImFyaWEtbGFiZWwiLCJhcmlhTGFiZWwiXSx2YWx1ZToidmFsdWUifSxvdXRwdXRzOntjaGFuZ2U6ImNoYW5nZSJ9LGV4cG9ydEFzOlsibWF0QnV0dG9uVG9nZ2xlIl0sZmVhdHVyZXM6W3hwXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIl0sZGVjbHM6Nix2YXJzOjksY29uc3RzOltbInR5cGUiLCJidXR0b24iLDEsIm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiIsIm1hdC1mb2N1cy1pbmRpY2F0b3IiLDMsImlkIiwiZGlzYWJsZWQiLCJjbGljayJdLFsiYnV0dG9uIiwiIl0sWzEsIm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQiXSxbMSwibWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSJdLFsibWF0UmlwcGxlIiwiIiwxLCJtYXQtYnV0dG9uLXRvZ2dsZS1yaXBwbGUiLDMsIm1hdFJpcHBsZVRyaWdnZXIiLCJtYXRSaXBwbGVEaXNhYmxlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoWm0oKSxSbSgwLCJidXR0b24iLDAsMSksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbkJ1dHRvbkNsaWNrKCl9KSksUm0oMiwic3BhbiIsMiksWG0oMyksQW0oKSxBbSgpLFRtKDQsInNwYW4iLDMpLFRtKDUsInNwYW4iLDQpKSwyJmUpe2NvbnN0IHQ9JHAoMSk7RG0oImlkIixuLmJ1dHRvbklkKSgiZGlzYWJsZWQiLG4uZGlzYWJsZWR8fG51bGwpLGpwKCJ0YWJpbmRleCIsbi5kaXNhYmxlZD8tMTpuLnRhYkluZGV4KSgiYXJpYS1wcmVzc2VkIixuLmNoZWNrZWQpKCJuYW1lIixuLm5hbWV8fG51bGwpKCJhcmlhLWxhYmVsIixuLmFyaWFMYWJlbCkoImFyaWEtbGFiZWxsZWRieSIsbi5hcmlhTGFiZWxsZWRieSkscmMoNSksRG0oIm1hdFJpcHBsZVRyaWdnZXIiLHQpKCJtYXRSaXBwbGVEaXNhYmxlZCIsbi5kaXNhYmxlUmlwcGxlfHxuLmRpc2FibGVkKX19LGRpcmVjdGl2ZXM6W2tIXSxzdHlsZXM6WyIubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSwubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjJweDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cHtvdXRsaW5lOnNvbGlkIDFweH0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJke2JvcmRlci1yYWRpdXM6NHB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJke291dGxpbmU6MH0ubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWx7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudHtkaXNwbGF5OmJsb2NrfS5tYXQtYnV0dG9uLXRvZ2dsZXt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtaWNvbiBzdmd7dmVydGljYWwtYWxpZ246dG9wfS5tYXQtYnV0dG9uLXRvZ2dsZS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouNX0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZDpub3QoLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkKTpob3ZlciAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4wNH0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkKSAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjV9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZDpub3QoLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkKTpob3ZlciAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtkaXNwbGF5Om5vbmV9fS5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50ey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50e3BhZGRpbmc6MCAxMnB4fS5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50Pip7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZX0ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtib3JkZXItYm90dG9tOnNvbGlkIDM2cHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi41O2hlaWdodDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtib3JkZXItYm90dG9tOnNvbGlkIDUwMHB4fS5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWJ1dHRvbi10b2dnbGUtcmlwcGxle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbntib3JkZXI6MDtiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6aW5oZXJpdDtwYWRkaW5nOjA7bWFyZ2luOjA7Zm9udDppbmhlcml0O291dGxpbmU6bm9uZTt3aWR0aDoxMDAlO2N1cnNvcjpwb2ludGVyfS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCAubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9ue2N1cnNvcjpkZWZhdWx0fS5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxBMi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkUyLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt3Ml19XX0se3R5cGU6VWd9LHt0eXBlOmhnfSx7dHlwZTpTSX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpTcn0se3R5cGU6a3IsYXJnczpbUDJdfV19XSxBMi5wcm9wRGVjb3JhdG9ycz17YXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLF9idXR0b25FbGVtZW50Olt7dHlwZTpaYSxhcmdzOlsiYnV0dG9uIl19XSxpZDpbe3R5cGU6eHl9XSxuYW1lOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLHRhYkluZGV4Olt7dHlwZTp4eX1dLGFwcGVhcmFuY2U6W3t0eXBlOnh5fV0sY2hlY2tlZDpbe3R5cGU6eHl9XSxkaXNhYmxlZDpbe3R5cGU6eHl9XSxjaGFuZ2U6W3t0eXBlOk95fV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQTIsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWJ1dHRvbi10b2dnbGUiLHRlbXBsYXRlOic8YnV0dG9uICNidXR0b24gY2xhc3M9Im1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiBtYXQtZm9jdXMtaW5kaWNhdG9yIlxuICAgICAgICB0eXBlPSJidXR0b24iXG4gICAgICAgIFtpZF09ImJ1dHRvbklkIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09ImRpc2FibGVkID8gLTEgOiB0YWJJbmRleCJcbiAgICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT0iY2hlY2tlZCJcbiAgICAgICAgW2Rpc2FibGVkXT0iZGlzYWJsZWQgfHwgbnVsbCJcbiAgICAgICAgW2F0dHIubmFtZV09Im5hbWUgfHwgbnVsbCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09ImFyaWFMYWJlbCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT0iYXJpYUxhYmVsbGVkYnkiXG4gICAgICAgIChjbGljayk9Il9vbkJ1dHRvbkNsaWNrKCkiPlxuICA8c3BhbiBjbGFzcz0ibWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3NwYW4+XG48L2J1dHRvbj5cblxuPHNwYW4gY2xhc3M9Im1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkiPjwvc3Bhbj5cbjxzcGFuIGNsYXNzPSJtYXQtYnV0dG9uLXRvZ2dsZS1yaXBwbGUiIG1hdFJpcHBsZVxuICAgICBbbWF0UmlwcGxlVHJpZ2dlcl09ImJ1dHRvbiJcbiAgICAgW21hdFJpcHBsZURpc2FibGVkXT0idGhpcy5kaXNhYmxlUmlwcGxlIHx8IHRoaXMuZGlzYWJsZWQiPlxuPC9zcGFuPlxuJyxlbmNhcHN1bGF0aW9uOkhuLk5vbmUsZXhwb3J0QXM6Im1hdEJ1dHRvblRvZ2dsZSIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxpbnB1dHM6WyJkaXNhYmxlUmlwcGxlIl0saG9zdDp7IltjbGFzcy5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lXSI6IiFidXR0b25Ub2dnbGVHcm91cCIsIltjbGFzcy5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkXSI6ImNoZWNrZWQiLCJbY2xhc3MubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbY2xhc3MubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZF0iOidhcHBlYXJhbmNlID09PSAic3RhbmRhcmQiJyxjbGFzczoibWF0LWJ1dHRvbi10b2dnbGUiLCJbYXR0ci5hcmlhLWxhYmVsXSI6Im51bGwiLCJbYXR0ci5hcmlhLWxhYmVsbGVkYnldIjoibnVsbCIsIlthdHRyLmlkXSI6ImlkIiwiW2F0dHIubmFtZV0iOiJudWxsIiwiKGZvY3VzKSI6ImZvY3VzKCkiLHJvbGU6InByZXNlbnRhdGlvbiJ9LHN0eWxlczpbIi5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6MnB4Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3Vwe291dGxpbmU6c29saWQgMXB4fS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmR7Ym9yZGVyLXJhZGl1czo0cHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmR7b3V0bGluZTowfS5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50e2Rpc3BsYXk6YmxvY2t9Lm1hdC1idXR0b24tdG9nZ2xle3doaXRlLXNwYWNlOm5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1pY29uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjp0b3B9Lm1hdC1idXR0b24tdG9nZ2xlLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi41fS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpOmhvdmVyIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjA0fS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCkgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouNX1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpOmhvdmVyIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2Rpc3BsYXk6bm9uZX19Lm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7cGFkZGluZzowIDEycHh9Lm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQ+Knt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7Ym9yZGVyLXJhZGl1czppbmhlcml0O3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlfS5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2JvcmRlci1ib3R0b206c29saWQgMzZweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjU7aGVpZ2h0OjB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2JvcmRlci1ib3R0b206c29saWQgNTAwcHh9Lm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1yaXBwbGV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9ue2JvcmRlcjowO2JhY2tncm91bmQ6bm9uZTtjb2xvcjppbmhlcml0O3BhZGRpbmc6MDttYXJnaW46MDtmb250OmluaGVyaXQ7b3V0bGluZTpub25lO3dpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXJ9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIC5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b257Y3Vyc29yOmRlZmF1bHR9Lm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RTIsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3cyXX1dfSx7dHlwZTpVZ30se3R5cGU6aGd9LHt0eXBlOlNJfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltQMl19XX1dfSkse2FyaWFMYWJlbGxlZGJ5Olt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbGxlZGJ5Il19XSxjaGFuZ2U6W3t0eXBlOk95fV0sdGFiSW5kZXg6W3t0eXBlOnh5fV0sYXBwZWFyYW5jZTpbe3R5cGU6eHl9XSxjaGVja2VkOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dLGlkOlt7dHlwZTp4eX1dLG5hbWU6W3t0eXBlOnh5fV0sYXJpYUxhYmVsOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sX2J1dHRvbkVsZW1lbnQ6W3t0eXBlOlphLGFyZ3M6WyJidXR0b24iXX1dLHZhbHVlOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBUMnt9ZnVuY3Rpb24gTjIodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiwyKSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxTdSh0LmZpcnN0VGV4dFBhcnQoKSl9fVQyLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUMil9LFQyLsm1bW9kPWFvKHt0eXBlOlQyfSksVDIuybVpbmo9dm4oe2ltcG9ydHM6W1tYSSxTSF0sWEldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChUMixbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1hJLFNIXSxleHBvcnRzOltYSSxFMixBMl0sZGVjbGFyYXRpb25zOltFMixBMl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhUMix7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW0UyLEEyXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltYSSxTSF19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bWEksRTIsQTJdfX0pO2NsYXNzIHoye3BhcnNlVmFsdWUoKXtjb25zdCB0PXRoaXMudmFsdWUubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4tMT09PXQ/e2ZpcnN0OiIiLHNlY29uZDp0aGlzLnZhbHVlfTp7Zmlyc3Q6dGhpcy52YWx1ZS5zbGljZSgwLHQpLHNlY29uZDp0aGlzLnZhbHVlLnNsaWNlKHQpfX1maXJzdFRleHRQYXJ0KCl7cmV0dXJuIHRoaXMucGFyc2VWYWx1ZSgpLmZpcnN0fXNlY29uZFRleHRQYXJ0KCl7cmV0dXJuIHRoaXMucGFyc2VWYWx1ZSgpLnNlY29uZH19ZnVuY3Rpb24gSTIodCxlLG4pe3JldHVybiBlfHxuP1tuLGU/ZS5uYW1lOiIuLi4iXS5maWx0ZXIoQm9vbGVhbikuam9pbigiLyIpOnR9ZnVuY3Rpb24gSDIodCxlLG4pe3ZhciBvLGksYSxyO3JldHVybiB0LnN0YXJ0LnN0ZXA8PWUmJnQuZW5kJiZuPD10LmVuZC5zdGVwfHxlPD10LnN0YXJ0LnN0ZXAmJnQuc3RhcnQuc3RlcDw9bnx8dC5lbmQmJmU8PShudWxsPT09KG89dC5lbmQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnN0ZXApJiYobnVsbD09PShpPXQuZW5kKXx8dm9pZCAwPT09aT92b2lkIDA6aS5zdGVwKTw9bj97c3RhcnRTdGVwOnQuc3RhcnQuc3RlcCxlbmRTdGVwOm51bGwhPT0ocj1udWxsPT09KGE9dC5lbmQpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLnN0ZXApJiZ2b2lkIDAhPT1yP3I6bnVsbCxjbGlwcGVkOiExfTpuPD10LnN0YXJ0LnN0ZXA/e3N0YXJ0U3RlcDpuLGVuZFN0ZXA6bnVsbCxjbGlwcGVkOiEwfTp7c3RhcnRTdGVwOmUsZW5kU3RlcDpudWxsLGNsaXBwZWQ6ITB9fXoyLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx6Mil9LHoyLsm1Y21wPXRvKHt0eXBlOnoyLHNlbGVjdG9yczpbWyJ0Yi10cnVuY2F0ZWQtcGF0aCJdXSxpbnB1dHM6e3ZhbHVlOiJ2YWx1ZSJ9LGRlY2xzOjMsdmFyczoyLGNvbnN0czpbWyJjbGFzcyIsImZpcnN0LXRleHQtcGFydCIsNCwibmdJZiJdLFsxLCJzZWNvbmQtdGV4dC1wYXJ0Il0sWzEsImZpcnN0LXRleHQtcGFydCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUXAoMCxOMiwyLDEsInNwYW4iLDApLFJtKDEsInNwYW4iLDEpLGt1KDIpLEFtKCkpLDImZSYmKERtKCJuZ0lmIixuLmZpcnN0VGV4dFBhcnQoKS5sZW5ndGg+MCkscmMoMiksU3Uobi5zZWNvbmRUZXh0UGFydCgpKSl9LGRpcmVjdGl2ZXM6W2RNXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWZsZXg7d2hpdGUtc3BhY2U6bm93cmFwfS5maXJzdC10ZXh0LXBhcnRbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxIDRjaDttYXgtd2lkdGg6bWF4LWNvbnRlbnR9LmZpcnN0LXRleHQtcGFydFtfbmdjb250ZW50LSVDT01QJV0sIC5zZWNvbmQtdGV4dC1wYXJ0W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30iXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoejIsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGItdHJ1bmNhdGVkLXBhdGgiLHRlbXBsYXRlOidcbiAgICA8c3BhbiAqbmdJZj0iZmlyc3RUZXh0UGFydCgpLmxlbmd0aCA+IDAiIGNsYXNzPSJmaXJzdC10ZXh0LXBhcnQiPnt7XG4gICAgICBmaXJzdFRleHRQYXJ0KClcbiAgICB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz0ic2Vjb25kLXRleHQtcGFydCI+e3sgc2Vjb25kVGV4dFBhcnQoKSB9fTwvc3Bhbj5cbiAgJyxzdHlsZVVybHM6WyJ0cnVuY2F0ZWRfcGF0aF9jb21wb25lbnQuY3NzIl19XX1dLG51bGwse3ZhbHVlOlt7dHlwZTp4eX1dfSk7Y2xhc3MgRjJ7fUYyLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGMil9LEYyLsm1Y21wPXRvKHt0eXBlOkYyLHNlbGVjdG9yczpbWyJjYXJkLXJ1bi1uYW1lLWNvbXBvbmVudCJdXSxpbnB1dHM6e25hbWU6Im5hbWUifSxkZWNsczoxLHZhcnM6MSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZrdSgwKSwyJmUmJlN1KG4ubmFtZSl9LHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEYyLFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImNhcmQtcnVuLW5hbWUtY29tcG9uZW50Iix0ZW1wbGF0ZToie3sgbmFtZSB9fSIsc3R5bGVVcmxzOlsicnVuX25hbWVfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse25hbWU6W3t0eXBlOnh5fV19KTtjbGFzcyBMMntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXR9bmdPbkluaXQoKXt0aGlzLm5hbWUkPVd0KFt0aGlzLnN0b3JlLnNlbGVjdChzTix7cnVuSWQ6dGhpcy5ydW5JZH0pLHRoaXMuc3RvcmUuc2VsZWN0KHJOLHtydW5JZDp0aGlzLnJ1bklkfSksdGhpcy5zdG9yZS5zZWxlY3QoelMpXSkucGlwZShJdCgoKFt0LGUsbl0pPT5JMih0aGlzLnJ1bklkLHQsZT9uW2VdOm51bGwpKSkpfX1mdW5jdGlvbiBCMih0LGUpe2lmKDEmdCYmKFJtKDAsInNwYW4iLDE3KSxrdSgxKSxBaCgyLCJudW1iZXIiKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEdSgiU3RlcCAiLFRoKDIsMSx0LnN0ZXBWYWx1ZXNbdC5zdGVwSW5kZXhdKSwiIil9fWZ1bmN0aW9uIFYyKHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTgpLGt1KDEpLEFoKDIsIm51bWJlciIpLEFoKDMsIm51bWJlciIpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLEV1KCJTYW1wbGUgIixUaCgyLDIsdC5zYW1wbGUrMSksIi8iLFRoKDMsNCx0Lm51bVNhbXBsZSksIiIpfX1mdW5jdGlvbiBqMih0LGUpezEmdCYmVG0oMCwibWF0LXNwaW5uZXIiLDE5KX1MMi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TDIpKFNtKEl3KSl9LEwyLsm1Y21wPXRvKHt0eXBlOkwyLHNlbGVjdG9yczpbWyJjYXJkLXJ1bi1uYW1lIl1dLGlucHV0czp7cnVuSWQ6InJ1bklkIn0sZGVjbHM6Myx2YXJzOjYsY29uc3RzOltbMywibmFtZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwiY2FyZC1ydW4tbmFtZS1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSksMiZlJiYoRG0oIm5hbWUiLFRoKDEsMixuLm5hbWUkKSksanAoInRpdGxlIixUaCgyLDQsbi5uYW1lJCkpKX0sZGlyZWN0aXZlczpbRjJdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMMixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJjYXJkLXJ1bi1uYW1lIix0ZW1wbGF0ZTonXG4gICAgPGNhcmQtcnVuLW5hbWUtY29tcG9uZW50XG4gICAgICBbbmFtZV09Im5hbWUkIHwgYXN5bmMiXG4gICAgICBbYXR0ci50aXRsZV09Im5hbWUkIHwgYXN5bmMiXG4gICAgPjwvY2FyZC1ydW4tbmFtZS1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7cnVuSWQ6W3t0eXBlOnh5fV19KTtjb25zdCBVMj1mdW5jdGlvbih0KXtyZXR1cm57ZmlsdGVyOnR9fTtmdW5jdGlvbiBHMih0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO05tKDApLFJtKDEsImRpdiIsMjApLFJtKDIsIm1hdC1zbGlkZXIiLDIxKSxWbSgiaW5wdXQiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLm9uU2xpZGVySW5wdXQobil9KSksQW0oKSxBbSgpLFJtKDMsImRpdiIsMjIpLFRtKDQsImltZyIsMjMpLEFtKCksem0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKTtyYygyKSxEbSgiZGlzYWJsZWQiLHQuc3RlcFZhbHVlcy5sZW5ndGg8PTEpKCJtaW4iLDApKCJtYXgiLHQuc3RlcFZhbHVlcy5sZW5ndGgtMSkoInN0ZXAiLDEpKCJ0aWNrSW50ZXJ2YWwiLDEpKCJ2YWx1ZSIsdC5zdGVwSW5kZXgpLHJjKDIpLEptKCJhbHQiLCJJbWFnZSBhdCBzdGVwICIsdC5zdGVwVmFsdWVzW3Quc3RlcEluZGV4XSwiIiksS20oInNyYyIsdC5pbWFnZVVybCxUcyksRG0oIm5nU3R5bGUiLE1oKDksVTIsdC5jc3NGaWx0ZXIoKSkpfX1mdW5jdGlvbiBXMih0LGUpezEmdCYmKFJtKDAsImRpdiIsMjUpLGt1KDEsIiBEYXRhIGZhaWxlZCB0byBsb2FkLiAiKSxBbSgpKX1mdW5jdGlvbiBZMih0LGUpe2lmKDEmdCYmUXAoMCxXMiwyLDAsImRpdiIsMjQpLDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJuZ0lmIix0LmxvYWRTdGF0ZT09PXQuRGF0YUxvYWRTdGF0ZS5GQUlMRUQpfX1jb25zdCBxMj1mdW5jdGlvbih0KXtyZXR1cm57YmFja2dyb3VuZENvbG9yOnR9fTtjbGFzcyBaMntjb25zdHJ1Y3Rvcigpe3RoaXMuRGF0YUxvYWRTdGF0ZT15RSx0aGlzLm9uQWN0dWFsU2l6ZVRvZ2dsZT1uZXcgTGgsdGhpcy5zdGVwSW5kZXhDaGFuZ2U9bmV3IExoLHRoaXMub25QaW5DbGlja2VkPW5ldyBMaH1jc3NGaWx0ZXIoKXtyZXR1cm5gY29udHJhc3QoJHt0aGlzLmNvbnRyYXN0SW5NaWxsaS8xMH0lKSBicmlnaHRuZXNzKCR7dGhpcy5icmlnaHRuZXNzSW5NaWxsaS8xZTN9KWB9b25TbGlkZXJJbnB1dCh0KXt0aGlzLnN0ZXBJbmRleENoYW5nZS5lbWl0KHQudmFsdWUpfX1aMi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WjIpfSxaMi7JtWNtcD10byh7dHlwZTpaMixzZWxlY3RvcnM6W1siaW1hZ2UtY2FyZC1jb21wb25lbnQiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmcHUoImFjdHVhbC1zaXplIixuLnNob3dBY3R1YWxTaXplKX0saW5wdXRzOntsb2FkU3RhdGU6ImxvYWRTdGF0ZSIsdGl0bGU6InRpdGxlIix0YWc6InRhZyIscnVuSWQ6InJ1bklkIixzYW1wbGU6InNhbXBsZSIsbnVtU2FtcGxlOiJudW1TYW1wbGUiLGltYWdlVXJsOiJpbWFnZVVybCIsc3RlcEluZGV4OiJzdGVwSW5kZXgiLHN0ZXBWYWx1ZXM6InN0ZXBWYWx1ZXMiLGJyaWdodG5lc3NJbk1pbGxpOiJicmlnaHRuZXNzSW5NaWxsaSIsY29udHJhc3RJbk1pbGxpOiJjb250cmFzdEluTWlsbGkiLHNob3dBY3R1YWxTaXplOiJzaG93QWN0dWFsU2l6ZSIscnVuQ29sb3JTY2FsZToicnVuQ29sb3JTY2FsZSIsYWxsb3dUb2dnbGVBY3R1YWxTaXplOiJhbGxvd1RvZ2dsZUFjdHVhbFNpemUiLGlzUGlubmVkOiJpc1Bpbm5lZCJ9LG91dHB1dHM6e29uQWN0dWFsU2l6ZVRvZ2dsZToib25BY3R1YWxTaXplVG9nZ2xlIixzdGVwSW5kZXhDaGFuZ2U6InN0ZXBJbmRleENoYW5nZSIsb25QaW5DbGlja2VkOiJvblBpbkNsaWNrZWQifSxkZWNsczoxOSx2YXJzOjE0LGNvbnN0czpmdW5jdGlvbigpe2xldCB0LGU7cmV0dXJuIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIlBpbiBjYXJkIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0byBwaW4gYSBjYXJkLuKQn2U2NjVkYzcxMmJkNWYxOGQ0ZGZhM2EyOWUxMjVkNTY1Y2M1MWUyZjbikJ83Mjg0NjA2NDI2MjM0Mzc1MzQ0OlBpbiBjYXJkYCxlPSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJUb2dnbGUgYWN0dWFsIGltYWdlIHNpemUiKTokbG9jYWxpemVgOkEgYnV0dG9uIG9uIGFuIGltYWdlIGNhcmQgdGhhdCB0b2dnbGVzIGFjdHVhbCBpbWFnZSBzaXplLuKQnzNjYTA1ZWYzYTZlM2EzNzA2NWY1ZTBmNjljNWQ1YTIxNzhkOTA3OTHikJ83NjM1MTAxOTM2NjY0Nzg5MTQwOlRvZ2dsZSBhY3R1YWwgaW1hZ2Ugc2l6ZWAsW1sxLCJoZWFkaW5nIl0sWzEsImxpbmUiXSxbMSwidGFnIiwzLCJ0aXRsZSIsInZhbHVlIl0sWzEsImNvbnRyb2xzIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LDEsInBpbi1idXR0b24iLDMsImNsaWNrIl0sWzMsInN2Z0ljb24iXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGUsInRpdGxlIiwiVG9nZ2xlIGFjdHVhbCBpbWFnZSBzaXplIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzdmdJY29uIiwiaW1hZ2Vfc2VhcmNoXzI0cHgiXSxbMSwicnVuIl0sWzEsImRvdCIsMywibmdTdHlsZSJdLFsxLCJydW4tdGV4dCIsMywicnVuSWQiXSxbMSwibWV0YWRhdGEiXSxbImNsYXNzIiwic3RlcCIsNCwibmdJZiJdLFsiY2xhc3MiLCJzYW1wbGUiLDQsIm5nSWYiXSxbImNsYXNzIiwibG9hZGluZyIsImRpYW1ldGVyIiwiMTgiLDQsIm5nSWYiXSxbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub0ltYWdlRGF0YSIsIiJdLFsxLCJzdGVwIl0sWzEsInNhbXBsZSJdLFsiZGlhbWV0ZXIiLCIxOCIsMSwibG9hZGluZyJdLFsxLCJzbGlkZXItcm93Il0sWyJjb2xvciIsInByaW1hcnkiLDEsInN0ZXAtc2xpZGVyIiwzLCJkaXNhYmxlZCIsIm1pbiIsIm1heCIsInN0ZXAiLCJ0aWNrSW50ZXJ2YWwiLCJ2YWx1ZSIsImlucHV0Il0sWzEsImltZy1jb250YWluZXIiXSxbMywiYWx0Iiwic3JjIiwibmdTdHlsZSJdLFsiY2xhc3MiLCJlbXB0eS1tZXNzYWdlIiw0LCJuZ0lmIl0sWzEsImVtcHR5LW1lc3NhZ2UiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsImRpdiIsMSksVG0oMiwidGItdHJ1bmNhdGVkLXBhdGgiLDIpLFJtKDMsInNwYW4iLDMpLFJtKDQsImJ1dHRvbiIsNCksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGluQ2xpY2tlZC5lbWl0KCFuLmlzUGlubmVkKX0pKSxUbSg1LCJtYXQtaWNvbiIsNSksQW0oKSxSbSg2LCJidXR0b24iLDYpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkFjdHVhbFNpemVUb2dnbGUuZW1pdCgpfSkpLFRtKDcsIm1hdC1pY29uIiw3KSxBbSgpLEFtKCksQW0oKSxSbSg4LCJkaXYiLDEpLFJtKDksInNwYW4iLDgpLFRtKDEwLCJzcGFuIiw5KSxUbSgxMSwiY2FyZC1ydW4tbmFtZSIsMTApLEFtKCksUm0oMTIsImRpdiIsMTEpLFFwKDEzLEIyLDMsMywic3BhbiIsMTIpLFFwKDE0LFYyLDQsNiwic3BhbiIsMTMpLFFwKDE1LGoyLDEsMCwibWF0LXNwaW5uZXIiLDE0KSxBbSgpLEFtKCksQW0oKSxRcCgxNixHMiw1LDExLCJuZy1jb250YWluZXIiLDE1KSxRcCgxNyxZMiwxLDEsIm5nLXRlbXBsYXRlIixudWxsLDE2LGliKSksMiZlKXtjb25zdCB0PSRwKDE4KTtyYygyKSxLbSgidGl0bGUiLG4udGFnKSxLbSgidmFsdWUiLG4udGl0bGUpLHJjKDIpLGpwKCJ0aXRsZSIsbi5pc1Bpbm5lZD8iVW5waW4gY2FyZCI6IlBpbiBjYXJkIikscmMoMSksRG0oInN2Z0ljb24iLG4uaXNQaW5uZWQ/ImtlZXBfMjRweCI6ImtlZXBfb3V0bGluZV8yNHB4IikscmMoMSksRG0oImRpc2FibGVkIiwhbi5hbGxvd1RvZ2dsZUFjdHVhbFNpemUpLHJjKDQpLERtKCJuZ1N0eWxlIixNaCgxMixxMixuLnJ1bkNvbG9yU2NhbGUobi5ydW5JZCkpKSxyYygxKSxEbSgicnVuSWQiLG4ucnVuSWQpLHJjKDIpLERtKCJuZ0lmIixudWxsIT09bi5zdGVwSW5kZXgmJm4uc3RlcEluZGV4PG4uc3RlcFZhbHVlcy5sZW5ndGgpLHJjKDEpLERtKCJuZ0lmIixuLm51bVNhbXBsZT4xKSxyYygxKSxEbSgibmdJZiIsbi5sb2FkU3RhdGU9PT1uLkRhdGFMb2FkU3RhdGUuTE9BRElORykscmMoMSksRG0oIm5nSWYiLG51bGwhPT1uLnN0ZXBJbmRleCYmbi5zdGVwSW5kZXg8bi5zdGVwVmFsdWVzLmxlbmd0aCkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W3oyLFhILERXLENNLEwyLGRNLG8xLFJYXSxwaXBlczpbRk1dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6YXV0bztwYWRkaW5nOjE2cHg7cGFkZGluZy10b3A6NHB4fS5hY3R1YWwtc2l6ZVtfbmdob3N0LSVDT01QJV17aGVpZ2h0OmF1dG99LmhlYWRpbmdbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXNpemU6MTRweDttYXJnaW4tYm90dG9tOjRweDtwb3NpdGlvbjpyZWxhdGl2ZX0ubGluZVtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIG1heC1jb250ZW50fS5tZXRhZGF0YVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo1cHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21heC13aWR0aDoxNzVweDt0ZXh0LWFsaWduOmVuZH0udGFnW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW59LnBpbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxOHB4fS5ydW5bX25nY29udGVudC0lQ09NUCVde2FsaWduLXNlbGY6YmFzZWxpbmU7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXB9LnJ1bltfbmdjb250ZW50LSVDT01QJV0gICAuZG90W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4Om5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTNweDtoZWlnaHQ6MTNweDtib3JkZXItcmFkaXVzOjUwJTttYXJnaW4tcmlnaHQ6NHB4fS5ydW5bX25nY29udGVudC0lQ09NUCVdICAgLnJ1bi10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczttYXgtd2lkdGg6MTIwcHh9LnJ1bltfbmdjb250ZW50LSVDT01QJV0sIC5zYW1wbGVbX25nY29udGVudC0lQ09NUCVdLCAuc3RlcFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTtmb250LXNpemU6MTNweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAucnVuW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnJ1bltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnNhbXBsZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zYW1wbGVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zdGVwW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnN0ZXBbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTt3aGl0ZS1zcGFjZTpub3dyYXA7anVzdGlmeS1zZWxmOmZsZXgtZW5kO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXJpZ2h0Oi0xMnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmltZy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxIDA7b3ZlcmZsb3cteTphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlfS5pbWctY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGltZ1tfbmdjb250ZW50LSVDT01QJV17aW1hZ2UtcmVuZGVyaW5nOi1tb3otY3Jpc3AtZWRnZXM7aW1hZ2UtcmVuZGVyaW5nOnBpeGVsYXRlZH0uYWN0dWFsLXNpemVbX25naG9zdC0lQ09NUCVdICAgLmltZy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmF1dG87ZmxleDpub25lfVtfbmdob3N0LSVDT01QJV06bm90KC5hY3R1YWwtc2l6ZSkgICBpbWdbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO21heC1oZWlnaHQ6MTAwJTttYXgtd2lkdGg6MTAwJTt3aWR0aDphdXRvO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbn0uc2xpZGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MjRweH0uc3RlcC1zbGlkZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MX1bX25naG9zdC0lQ09NUCVdICAgICAubWF0LXNsaWRlci1taW4tdmFsdWUgLm1hdC1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5lbXB0eS1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjFlbTtmb250LXNpemU6MTNweH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWjIsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiaW1hZ2UtY2FyZC1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJpbWFnZV9jYXJkX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyJpbWFnZV9jYXJkX2NvbXBvbmVudC5jc3MiXSxob3N0OnsiW2NsYXNzLmFjdHVhbC1zaXplXSI6InNob3dBY3R1YWxTaXplIn0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7bG9hZFN0YXRlOlt7dHlwZTp4eX1dLHRpdGxlOlt7dHlwZTp4eX1dLHRhZzpbe3R5cGU6eHl9XSxydW5JZDpbe3R5cGU6eHl9XSxzYW1wbGU6W3t0eXBlOnh5fV0sbnVtU2FtcGxlOlt7dHlwZTp4eX1dLGltYWdlVXJsOlt7dHlwZTp4eX1dLHN0ZXBJbmRleDpbe3R5cGU6eHl9XSxzdGVwVmFsdWVzOlt7dHlwZTp4eX1dLGJyaWdodG5lc3NJbk1pbGxpOlt7dHlwZTp4eX1dLGNvbnRyYXN0SW5NaWxsaTpbe3R5cGU6eHl9XSxzaG93QWN0dWFsU2l6ZTpbe3R5cGU6eHl9XSxydW5Db2xvclNjYWxlOlt7dHlwZTp4eX1dLGFsbG93VG9nZ2xlQWN0dWFsU2l6ZTpbe3R5cGU6eHl9XSxpc1Bpbm5lZDpbe3R5cGU6eHl9XSxvbkFjdHVhbFNpemVUb2dnbGU6W3t0eXBlOk95fV0sc3RlcEluZGV4Q2hhbmdlOlt7dHlwZTpPeX1dLG9uUGluQ2xpY2tlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIFgye2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zdG9yZT10LHRoaXMuZGF0YVNvdXJjZT1lLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZD1uZXcgTGgsdGhpcy5waW5TdGF0ZUNoYW5nZWQ9bmV3IExoLHRoaXMuYnJpZ2h0bmVzc0luTWlsbGkkPXRoaXMuc3RvcmUuc2VsZWN0KEhUKSx0aGlzLmNvbnRyYXN0SW5NaWxsaSQ9dGhpcy5zdG9yZS5zZWxlY3QoRlQpLHRoaXMuYWN0dWFsU2l6ZUdsb2JhbFNldHRpbmckPXRoaXMuc3RvcmUuc2VsZWN0KExUKSx0aGlzLnNob3dBY3R1YWxTaXplPSExLHRoaXMuYWN0dWFsU2l6ZVVpVG9nZ2xlZD0hMSx0aGlzLmFjdHVhbFNpemVVaVRvZ2dsZVN1YmplY3Q9bmV3IEYodGhpcy5hY3R1YWxTaXplVWlUb2dnbGVkKSx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEl9b25TdGVwSW5kZXhDaGFuZ2VkKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2godFIoe2NhcmRJZDp0aGlzLmNhcmRJZCxzdGVwSW5kZXg6dH0pKX1pc0ltYWdlQ2FyZE1ldGFkYXRhKHQpe2NvbnN0e3BsdWdpbjplfT10O3JldHVybiBlPT09aEEuSU1BR0VTfW9uQWN0dWFsU2l6ZVRvZ2dsZSgpe3RoaXMuYWN0dWFsU2l6ZVVpVG9nZ2xlZD0hdGhpcy5hY3R1YWxTaXplVWlUb2dnbGVkLHRoaXMuYWN0dWFsU2l6ZVVpVG9nZ2xlU3ViamVjdC5uZXh0KHRoaXMuYWN0dWFsU2l6ZVVpVG9nZ2xlZCl9bmdPbkluaXQoKXtXdChbdGhpcy5hY3R1YWxTaXplR2xvYmFsU2V0dGluZyQsdGhpcy5hY3R1YWxTaXplVWlUb2dnbGVTdWJqZWN0XSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLEZlKCgoW3QsZV0pPT57dGhpcy5zaG93QWN0dWFsU2l6ZT10fHxlLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZC5lbWl0KHRoaXMuc2hvd0FjdHVhbFNpemUpfSkpKS5zdWJzY3JpYmUoKCgpPT57fSkpO2NvbnN0IHQ9dGhpcy5zdG9yZS5zZWxlY3QoeVQsdGhpcy5jYXJkSWQpLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSxjZSgodD0+ISF0JiZ0aGlzLmlzSW1hZ2VDYXJkTWV0YWRhdGEodCkpKSxJdCgodD0+dCkpLEFlKDEpKSxlPVd0KFt0LHRoaXMuc3RvcmUuc2VsZWN0KGhULHRoaXMuY2FyZElkKV0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSxJdCgoKFt0LGVdKT0+e2NvbnN0IG49dC5ydW5JZDtyZXR1cm4gZSYmZS5oYXNPd25Qcm9wZXJ0eShuKT9lW25dOltdfSkpLE1lKCgodCxlKT0+dC5sZW5ndGg9PT1lLmxlbmd0aCYmMD09PXQubGVuZ3RofHx0PT09ZSkpLEFlKDEpKTt0aGlzLnN0ZXBJbmRleCQ9dGhpcy5zdG9yZS5zZWxlY3QodlQsdGhpcy5jYXJkSWQpLHRoaXMubG9hZFN0YXRlJD10aGlzLnN0b3JlLnNlbGVjdChnVCx0aGlzLmNhcmRJZCk7Y29uc3Qgbj1XdChbZSx0aGlzLnN0ZXBJbmRleCRdKS5waXBlKEl0KCgoW3QsZV0pPT5udWxsIT09ZSYmdFtlXT90W2VdOm51bGwpKSk7dGhpcy50YWckPXQucGlwZShJdCgodD0+dC50YWcpKSksdGhpcy50aXRsZSQ9dGhpcy50YWckLnBpcGUoSXQoKHQ9PmYyKHQsdGhpcy5ncm91cE5hbWUpKSkpLHRoaXMucnVuSWQkPXQucGlwZShJdCgodD0+dC5ydW5JZCkpKSx0aGlzLnNhbXBsZSQ9dC5waXBlKEl0KCh0PT50LnNhbXBsZSkpKSx0aGlzLm51bVNhbXBsZSQ9dC5waXBlKEl0KCh0PT50Lm51bVNhbXBsZSkpKSx0aGlzLmltYWdlVXJsJD1uLnBpcGUoSXQoKHQ9PnQ/dGhpcy5kYXRhU291cmNlLmltYWdlVXJsKHQuaW1hZ2VJZCk6bnVsbCkpKSx0aGlzLnN0ZXBWYWx1ZXMkPWUucGlwZShJdCgodD0+dC5tYXAoKHQ9PnQuc3RlcCkpKSkpLHRoaXMuaXNQaW5uZWQkPXRoaXMuc3RvcmUuc2VsZWN0KHdULHRoaXMuY2FyZElkKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9fXZhciBLMixKMixRMjtmdW5jdGlvbiAkMih0LGUpezEmdCYmKFJtKDAsInNwYW4iKSxrdSgxLCJzY2FsYXIiKSxBbSgpKX1mdW5jdGlvbiB0NSh0LGUpezEmdCYmKFJtKDAsInNwYW4iKSxrdSgxLCJoaXN0b2dyYW0iKSxBbSgpKX1mdW5jdGlvbiBlNSh0LGUpezEmdCYmKFJtKDAsInNwYW4iKSxrdSgxLCJ1bmtub3duIiksQW0oKSl9ZnVuY3Rpb24gbjUodCxlKXtpZigxJnQmJihObSgwLDEzKSxRcCgxLCQyLDIsMCwic3BhbiIsMTQpLFFwKDIsdDUsMiwwLCJzcGFuIiwxNCksUXAoMyxlNSwyLDAsInNwYW4iLDE1KSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oMik7RG0oIm5nU3dpdGNoIix0LmNhcmRNZXRhZGF0YS5wbHVnaW4pLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLHQuUGx1Z2luVHlwZS5TQ0FMQVJTKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIix0LlBsdWdpblR5cGUuSElTVE9HUkFNUyl9fWZ1bmN0aW9uIG81KHQsZSl7MSZ0JiZJbSgwKX1mdW5jdGlvbiBpNSh0LGUpe2lmKDEmdCYmKFJtKDAsIm9wdGlvbiIsMTYpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtEbSgidmFsdWUiLHQuaWQpLHJjKDEpLFN1KHQubmFtZSl9fWZ1bmN0aW9uIGE1KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Tm0oMCksUm0oMSwiaDIiKSxRcCgyLG41LDQsMywibmctdGVtcGxhdGUiLG51bGwsMixpYiksUm0oNCwic3BhbiIpLGt1KDUsIkRvd25sb2FkwqAiKSxBbSgpLFFwKDYsbzUsMSwwLCJuZy1jb250YWluZXIiLDMpLFJtKDcsInNwYW4iKSxrdSg4LCLCoGRhdGEgZm9ywqAiKSxBbSgpLFJtKDksImNvZGUiLDQpLGt1KDEwKSxBbSgpLEFtKCksUm0oMTEsIm1hdC1kaWFsb2ctY29udGVudCIpLFJtKDEyLCJtYXQtZm9ybS1maWVsZCIsNSksUm0oMTMsIm1hdC1sYWJlbCIpLGt1KDE0LCJTZWxlY3QgYSBydW4gdG8gZG93bmxvYWQgYSBkYXRhIGZvciBhIHNlcmllcyIpLEFtKCksUm0oMTUsInNlbGVjdCIsNiksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkucnVuU2VsZWN0ZWQuZW1pdChuLnRhcmdldC52YWx1ZSl9KSksUm0oMTYsIm9wdGlvbiIsNyksa3UoMTcsIi0iKSxBbSgpLFFwKDE4LGk1LDIsMiwib3B0aW9uIiw4KSxBbSgpLEFtKCksUm0oMTksImRpdiIsOSksUm0oMjAsInNwYW4iKSxrdSgyMSwiRG93bmxvYWQgYXPigKYiKSxBbSgpLGt1KDIyLCLCoCIpLFJtKDIzLCJhIiwxMCksa3UoMjQsIkpTT04iKSxBbSgpLFJtKDI1LCJhIiwxMCksa3UoMjYsIkNTViIpLEFtKCksQW0oKSxBbSgpLFJtKDI3LCJtYXQtZGlhbG9nLWFjdGlvbnMiLDExKSxSbSgyOCwiYnV0dG9uIiwxMiksa3UoMjksIkNsb3NlIiksQW0oKSxBbSgpLHptKCl9aWYoMiZ0KXtjb25zdCB0PSRwKDMpLGU9WW0oKTtyYyg2KSxEbSgibmdUZW1wbGF0ZU91dGxldCIsdCkscmMoMyksRG0oInRpdGxlIixlLmNhcmRNZXRhZGF0YS50YWcpLHJjKDEpLFN1KGUuY2FyZE1ldGFkYXRhLnRhZykscmMoNSksRG0oInZhbHVlIixlLnNlbGVjdGVkUnVuSWR8fCIiKSxyYygxKSxEbSgidmFsdWUiLCIiKSxyYygyKSxEbSgibmdGb3JPZiIsZS5ydW5zKSxyYyg1KSxEbSgiZGlzYWJsZWQiLCFlLmRvd25sb2FkVXJsSnNvbikoImRvd25sb2FkIixlLmdldERvd25sb2FkTmFtZSgianNvbiIpKSxqcCgiaHJlZiIsZS5kb3dubG9hZFVybEpzb24sVHMpLHJjKDIpLERtKCJkaXNhYmxlZCIsIWUuZG93bmxvYWRVcmxDc3YpKCJkb3dubG9hZCIsZS5nZXREb3dubG9hZE5hbWUoImNzdiIpKSxqcCgiaHJlZiIsZS5kb3dubG9hZFVybENzdixUcyl9fWZ1bmN0aW9uIHI1KHQsZSl7MSZ0JiZrdSgwLCJMb2FkaW5nLi4uIil9WDIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFgyKShTbShJdyksU20oUEEpKX0sWDIuybVjbXA9dG8oe3R5cGU6WDIsc2VsZWN0b3JzOltbImltYWdlLWNhcmQiXV0saW5wdXRzOntjYXJkSWQ6ImNhcmRJZCIsZ3JvdXBOYW1lOiJncm91cE5hbWUiLHJ1bkNvbG9yU2NhbGU6InJ1bkNvbG9yU2NhbGUifSxvdXRwdXRzOntmdWxsV2lkdGhDaGFuZ2VkOiJmdWxsV2lkdGhDaGFuZ2VkIixwaW5TdGF0ZUNoYW5nZWQ6InBpblN0YXRlQ2hhbmdlZCJ9LGRlY2xzOjE0LHZhcnM6NDEsY29uc3RzOltbMywibG9hZFN0YXRlIiwidGl0bGUiLCJ0YWciLCJydW5JZCIsInNhbXBsZSIsIm51bVNhbXBsZSIsImltYWdlVXJsIiwic3RlcEluZGV4Iiwic3RlcFZhbHVlcyIsImJyaWdodG5lc3NJbk1pbGxpIiwiY29udHJhc3RJbk1pbGxpIiwicnVuQ29sb3JTY2FsZSIsInNob3dBY3R1YWxTaXplIiwiYWxsb3dUb2dnbGVBY3R1YWxTaXplIiwiaXNQaW5uZWQiLCJzdGVwSW5kZXhDaGFuZ2UiLCJvbkFjdHVhbFNpemVUb2dnbGUiLCJvblBpbkNsaWNrZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImltYWdlLWNhcmQtY29tcG9uZW50IiwwKSxWbSgic3RlcEluZGV4Q2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblN0ZXBJbmRleENoYW5nZWQoZSl9KSkoIm9uQWN0dWFsU2l6ZVRvZ2dsZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkFjdHVhbFNpemVUb2dnbGUoKX0pKSgib25QaW5DbGlja2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5waW5TdGF0ZUNoYW5nZWQuZW1pdChlKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBaCg0LCJhc3luYyIpLEFoKDUsImFzeW5jIiksQWgoNiwiYXN5bmMiKSxBaCg3LCJhc3luYyIpLEFoKDgsImFzeW5jIiksQWgoOSwiYXN5bmMiKSxBaCgxMCwiYXN5bmMiKSxBaCgxMSwiYXN5bmMiKSxBaCgxMiwiYXN5bmMiKSxBaCgxMywiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJsb2FkU3RhdGUiLFRoKDEsMTUsbi5sb2FkU3RhdGUkKSkoInRpdGxlIixUaCgyLDE3LG4udGl0bGUkKSkoInRhZyIsVGgoMywxOSxuLnRhZyQpKSgicnVuSWQiLFRoKDQsMjEsbi5ydW5JZCQpKSgic2FtcGxlIixUaCg1LDIzLG4uc2FtcGxlJCkpKCJudW1TYW1wbGUiLFRoKDYsMjUsbi5udW1TYW1wbGUkKSkoImltYWdlVXJsIixUaCg3LDI3LG4uaW1hZ2VVcmwkKSkoInN0ZXBJbmRleCIsVGgoOCwyOSxuLnN0ZXBJbmRleCQpKSgic3RlcFZhbHVlcyIsVGgoOSwzMSxuLnN0ZXBWYWx1ZXMkKSkoImJyaWdodG5lc3NJbk1pbGxpIixUaCgxMCwzMyxuLmJyaWdodG5lc3NJbk1pbGxpJCkpKCJjb250cmFzdEluTWlsbGkiLFRoKDExLDM1LG4uY29udHJhc3RJbk1pbGxpJCkpKCJydW5Db2xvclNjYWxlIixuLnJ1bkNvbG9yU2NhbGUpKCJzaG93QWN0dWFsU2l6ZSIsbi5zaG93QWN0dWFsU2l6ZSkoImFsbG93VG9nZ2xlQWN0dWFsU2l6ZSIsITE9PT1UaCgxMiwzNyxuLmFjdHVhbFNpemVHbG9iYWxTZXR0aW5nJCkpKCJpc1Bpbm5lZCIsVGgoMTMsMzksbi5pc1Bpbm5lZCQpKX0sZGlyZWN0aXZlczpbWjJdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYMixbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJpbWFnZS1jYXJkIix0ZW1wbGF0ZTonXG4gICAgPGltYWdlLWNhcmQtY29tcG9uZW50XG4gICAgICBbbG9hZFN0YXRlXT0ibG9hZFN0YXRlJCB8IGFzeW5jIlxuICAgICAgW3RpdGxlXT0idGl0bGUkIHwgYXN5bmMiXG4gICAgICBbdGFnXT0idGFnJCB8IGFzeW5jIlxuICAgICAgW3J1bklkXT0icnVuSWQkIHwgYXN5bmMiXG4gICAgICBbc2FtcGxlXT0ic2FtcGxlJCB8IGFzeW5jIlxuICAgICAgW251bVNhbXBsZV09Im51bVNhbXBsZSQgfCBhc3luYyJcbiAgICAgIFtpbWFnZVVybF09ImltYWdlVXJsJCB8IGFzeW5jIlxuICAgICAgW3N0ZXBJbmRleF09InN0ZXBJbmRleCQgfCBhc3luYyJcbiAgICAgIFtzdGVwVmFsdWVzXT0ic3RlcFZhbHVlcyQgfCBhc3luYyJcbiAgICAgIChzdGVwSW5kZXhDaGFuZ2UpPSJvblN0ZXBJbmRleENoYW5nZWQoJGV2ZW50KSJcbiAgICAgIFticmlnaHRuZXNzSW5NaWxsaV09ImJyaWdodG5lc3NJbk1pbGxpJCB8IGFzeW5jIlxuICAgICAgW2NvbnRyYXN0SW5NaWxsaV09ImNvbnRyYXN0SW5NaWxsaSQgfCBhc3luYyJcbiAgICAgIFtydW5Db2xvclNjYWxlXT0icnVuQ29sb3JTY2FsZSJcbiAgICAgIFtzaG93QWN0dWFsU2l6ZV09InNob3dBY3R1YWxTaXplIlxuICAgICAgW2FsbG93VG9nZ2xlQWN0dWFsU2l6ZV09IihhY3R1YWxTaXplR2xvYmFsU2V0dGluZyQgfCBhc3luYykgPT09IGZhbHNlIlxuICAgICAgW2lzUGlubmVkXT0iaXNQaW5uZWQkIHwgYXN5bmMiXG4gICAgICAob25BY3R1YWxTaXplVG9nZ2xlKT0ib25BY3R1YWxTaXplVG9nZ2xlKCkiXG4gICAgICAob25QaW5DbGlja2VkKT0icGluU3RhdGVDaGFuZ2VkLmVtaXQoJGV2ZW50KSJcbiAgICA+PC9pbWFnZS1jYXJkLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9LHt0eXBlOlBBfV19KSx7Y2FyZElkOlt7dHlwZTp4eX1dLGdyb3VwTmFtZTpbe3R5cGU6eHl9XSxydW5Db2xvclNjYWxlOlt7dHlwZTp4eX1dLGZ1bGxXaWR0aENoYW5nZWQ6W3t0eXBlOk95fV0scGluU3RhdGVDaGFuZ2VkOlt7dHlwZTpPeX1dfSksKGZ1bmN0aW9uKHQpe3RbdC5TVkc9MF09IlNWRyIsdFt0LldFQkdMPTFdPSJXRUJHTCJ9KShLMnx8KEsyPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5MSU5FQVI9MF09IkxJTkVBUiIsdFt0LkxPRzEwPTFdPSJMT0cxMCIsdFt0LlRJTUU9Ml09IlRJTUUifSkoSjJ8fChKMj17fSkpO2NsYXNzIHM1e2NvbnN0cnVjdG9yKCl7dGhpcy5ydW5TZWxlY3RlZD1uZXcgTGgsdGhpcy5QbHVnaW5UeXBlPWhBfWdldERvd25sb2FkTmFtZSh0KXtjb25zdCBlPXRoaXMucnVucy5maW5kKCh0PT50LmlkPT09dGhpcy5zZWxlY3RlZFJ1bklkKSk7cmV0dXJuIGU/YCR7ZS5uYW1lfS4ke3R9YDoiIn19czUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHM1KX0sczUuybVjbXA9dG8oe3R5cGU6czUsc2VsZWN0b3JzOltbImRhdGFfZG93bmxvYWRfZGlhbG9nX2NvbXBvbmVudCJdXSxpbnB1dHM6e2NhcmRNZXRhZGF0YToiY2FyZE1ldGFkYXRhIixydW5zOiJydW5zIixzZWxlY3RlZFJ1bklkOiJzZWxlY3RlZFJ1bklkIixkb3dubG9hZFVybENzdjoiZG93bmxvYWRVcmxDc3YiLGRvd25sb2FkVXJsSnNvbjoiZG93bmxvYWRVcmxKc29uIn0sb3V0cHV0czp7cnVuU2VsZWN0ZWQ6InJ1blNlbGVjdGVkIn0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub0NhcmRNZXRhZGF0YSIsIiJdLFsiZGF0YU5hbWUiLCIiXSxbNCwibmdUZW1wbGF0ZU91dGxldCJdLFsxLCJ0YWctbmFtZSIsMywidGl0bGUiXSxbImFwcGVhcmFuY2UiLCJmaWxsIiwxLCJydW4tc2VsZWN0b3IiXSxbIm1hdE5hdGl2ZUNvbnRyb2wiLCIiLCJuYW1lIiwicnVuIiwiY2RrRm9jdXNJbml0aWFsIiwiIiwicmVxdWlyZWQiLCIiLDMsInZhbHVlIiwiY2hhbmdlIl0sWyJzZWxlY3RlZCIsIiIsMywidmFsdWUiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJkb3dubG9hZC1jb250cm9scyJdLFsibWF0LXN0cm9rZWQtYnV0dG9uIiwiIiwzLCJkaXNhYmxlZCIsImRvd25sb2FkIl0sWyJhbGlnbiIsImVuZCJdLFsibWF0LWJ1dHRvbiIsIiIsIm1hdC1kaWFsb2ctY2xvc2UiLCIiXSxbMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzQsIk5nU3dpdGNoRGVmYXVsdCJdLFszLCJ2YWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUXAoMCxhNSwzMCwxMiwibmctY29udGFpbmVyIiwwKSxRcCgxLHI1LDEsMCwibmctdGVtcGxhdGUiLG51bGwsMSxpYikpLDImZSl7Y29uc3QgdD0kcCgyKTtEbSgibmdJZiIsbi5jYXJkTWV0YWRhdGEpKCJuZ0lmRWxzZSIsdCl9fSxkaXJlY3RpdmVzOltkTSxNTSxzVyxBVix2VixMWSxJVSxCVSxsTSxLSCxsVyxYSCxhVyxmTSxnTV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9aDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxLjI1ZW07b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfS5ydW4tc2VsZWN0b3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTouOWVtO3dpZHRoOjEwMCV9LmRvd25sb2FkLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6LjllbX0uZG93bmxvYWQtY29udHJvbHNbX25nY29udGVudC0lQ09NUCVdICAgYVtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjNweCAxMHB4IDNweCAwfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChzNSxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJkYXRhX2Rvd25sb2FkX2RpYWxvZ19jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJkYXRhX2Rvd25sb2FkX2RpYWxvZ19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiZGF0YV9kb3dubG9hZF9kaWFsb2dfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse2NhcmRNZXRhZGF0YTpbe3R5cGU6eHl9XSxydW5zOlt7dHlwZTp4eX1dLHNlbGVjdGVkUnVuSWQ6W3t0eXBlOnh5fV0sZG93bmxvYWRVcmxDc3Y6W3t0eXBlOnh5fV0sZG93bmxvYWRVcmxKc29uOlt7dHlwZTp4eX1dLHJ1blNlbGVjdGVkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgbDV7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuc2VsZWN0ZWRSdW5JZCQ9bmV3IEYobnVsbCksdGhpcy5jYXJkTWV0YWRhdGEkPXQuc2VsZWN0KHlULG4uY2FyZElkKS5waXBlKGNlKCh0PT5Cb29sZWFuKHQpKSkpLHRoaXMuZG93bmxvYWRVcmxDc3YkPVd0KFt0LnNlbGVjdCh5VCxuLmNhcmRJZCksdGhpcy5zZWxlY3RlZFJ1bklkJF0pLnBpcGUoSXQoKChbdCxuXSk9PnQmJm4/ZS5kb3dubG9hZFVybCh0LnBsdWdpbix0LnRhZyxuLCJjc3YiKTpudWxsKSksTmUobnVsbCkpLHRoaXMuZG93bmxvYWRVcmxKc29uJD1XdChbdC5zZWxlY3QoeVQsbi5jYXJkSWQpLHRoaXMuc2VsZWN0ZWRSdW5JZCRdKS5waXBlKEl0KCgoW3Qsbl0pPT50JiZuP2UuZG93bmxvYWRVcmwodC5wbHVnaW4sdC50YWcsbiwianNvbiIpOm51bGwpKSxOZShudWxsKSksdGhpcy5ydW5zJD1XdChbdC5zZWxlY3QoZE4pLHQuc2VsZWN0KGhULG4uY2FyZElkKV0pLnBpcGUoSXQoKChbdCxlXSk9PmU/T2JqZWN0LmtleXMoZSkubWFwKChlPT50LmdldChlKSkpLmZpbHRlcihCb29sZWFuKTpbXSkpKX19ZnVuY3Rpb24gYzUodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gZDUodCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIGM1KHQoZSksbil9fSkodCkpLHtsZWZ0OmZ1bmN0aW9uKGUsbixvLGkpe2ZvcihudWxsPT1vJiYobz0wKSxudWxsPT1pJiYoaT1lLmxlbmd0aCk7bzxpOyl7dmFyIGE9bytpPj4+MTt0KGVbYV0sbik8MD9vPWErMTppPWF9cmV0dXJuIG99LHJpZ2h0OmZ1bmN0aW9uKGUsbixvLGkpe2ZvcihudWxsPT1vJiYobz0wKSxudWxsPT1pJiYoaT1lLmxlbmd0aCk7bzxpOyl7dmFyIGE9bytpPj4+MTt0KGVbYV0sbik+MD9pPWE6bz1hKzF9cmV0dXJuIG99fX1sNS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bDUpKFNtKEl3KSxTbShQQSksU20oSkcpKX0sbDUuybVjbXA9dG8oe3R5cGU6bDUsc2VsZWN0b3JzOltbImRhdGFfZG93bmxvYWRfZGlhbG9nIl1dLGRlY2xzOjYsdmFyczoxNSxjb25zdHM6W1szLCJjYXJkTWV0YWRhdGEiLCJydW5zIiwic2VsZWN0ZWRSdW5JZCIsImRvd25sb2FkVXJsQ3N2IiwiZG93bmxvYWRVcmxKc29uIiwicnVuU2VsZWN0ZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRhdGFfZG93bmxvYWRfZGlhbG9nX2NvbXBvbmVudCIsMCksVm0oInJ1blNlbGVjdGVkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5zZWxlY3RlZFJ1bklkJC5uZXh0KGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQWgoNSwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJjYXJkTWV0YWRhdGEiLFRoKDEsNSxuLmNhcmRNZXRhZGF0YSQpKSgicnVucyIsVGgoMiw3LG4ucnVucyQpKSgic2VsZWN0ZWRSdW5JZCIsVGgoMyw5LG4uc2VsZWN0ZWRSdW5JZCQpKSgiZG93bmxvYWRVcmxDc3YiLFRoKDQsMTEsbi5kb3dubG9hZFVybENzdiQpKSgiZG93bmxvYWRVcmxKc29uIixUaCg1LDEzLG4uZG93bmxvYWRVcmxKc29uJCkpfSxkaXJlY3RpdmVzOltzNV0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGw1LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImRhdGFfZG93bmxvYWRfZGlhbG9nIix0ZW1wbGF0ZTonPGRhdGFfZG93bmxvYWRfZGlhbG9nX2NvbXBvbmVudFxuICAgIFtjYXJkTWV0YWRhdGFdPSJjYXJkTWV0YWRhdGEkIHwgYXN5bmMiXG4gICAgW3J1bnNdPSJydW5zJCB8IGFzeW5jIlxuICAgIFtzZWxlY3RlZFJ1bklkXT0ic2VsZWN0ZWRSdW5JZCQgfCBhc3luYyJcbiAgICBbZG93bmxvYWRVcmxDc3ZdPSJkb3dubG9hZFVybENzdiQgfCBhc3luYyJcbiAgICBbZG93bmxvYWRVcmxKc29uXT0iZG93bmxvYWRVcmxKc29uJCB8IGFzeW5jIlxuICAgIChydW5TZWxlY3RlZCk9InNlbGVjdGVkUnVuSWQkLm5leHQoJGV2ZW50KSJcbiAgPjwvZGF0YV9kb3dubG9hZF9kaWFsb2dfY29tcG9uZW50PicsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fSx7dHlwZTpQQX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W0pHXX1dfV19KSxudWxsKSwoZnVuY3Rpb24odCl7dFt0Lk9SSUdJTkFMPTBdPSJPUklHSU5BTCIsdFt0LkRFUklWRUQ9MV09IkRFUklWRUQifSkoUTJ8fChRMj17fSkpO3ZhciBwNT1kNShjNSkucmlnaHQ7ZnVuY3Rpb24gbTUodCxlKXt2YXIgbixvLGksYT10Lmxlbmd0aCxyPS0xO2lmKG51bGw9PWUpe2Zvcig7KytyPGE7KWlmKG51bGwhPShuPXRbcl0pJiZuPj1uKWZvcihvPWk9bjsrK3I8YTspbnVsbCE9KG49dFtyXSkmJihvPm4mJihvPW4pLGk8biYmKGk9bikpfWVsc2UgZm9yKDsrK3I8YTspaWYobnVsbCE9KG49ZSh0W3JdLHIsdCkpJiZuPj1uKWZvcihvPWk9bjsrK3I8YTspbnVsbCE9KG49ZSh0W3JdLHIsdCkpJiYobz5uJiYobz1uKSxpPG4mJihpPW4pKTtyZXR1cm5bbyxpXX12YXIgdTU9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIGY1KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBnNSh0KXtyZXR1cm4gdH1mdW5jdGlvbiBoNSh0LGUsbil7dD0rdCxlPStlLG49KGk9YXJndW1lbnRzLmxlbmd0aCk8Mj8oZT10LHQ9MCwxKTppPDM/MTorbjtmb3IodmFyIG89LTEsaT0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChlLXQpL24pKSxhPW5ldyBBcnJheShpKTsrK288aTspYVtvXT10K28qbjtyZXR1cm4gYX12YXIgYjU9TWF0aC5zcXJ0KDUwKSx5NT1NYXRoLnNxcnQoMTApLF81PU1hdGguc3FydCgyKTtmdW5jdGlvbiBDNSh0LGUsbil7dmFyIG8saSxhLHIscz0tMTtpZihuPStuLCh0PSt0KT09KGU9K2UpJiZuPjApcmV0dXJuW3RdO2lmKChvPWU8dCkmJihpPXQsdD1lLGU9aSksMD09PShyPU01KHQsZSxuKSl8fCFpc0Zpbml0ZShyKSlyZXR1cm5bXTtpZihyPjApZm9yKHQ9TWF0aC5jZWlsKHQvciksZT1NYXRoLmZsb29yKGUvciksYT1uZXcgQXJyYXkoaT1NYXRoLmNlaWwoZS10KzEpKTsrK3M8aTspYVtzXT0odCtzKSpyO2Vsc2UgZm9yKHQ9TWF0aC5mbG9vcih0KnIpLGU9TWF0aC5jZWlsKGUqciksYT1uZXcgQXJyYXkoaT1NYXRoLmNlaWwodC1lKzEpKTsrK3M8aTspYVtzXT0odC1zKS9yO3JldHVybiBvJiZhLnJldmVyc2UoKSxhfWZ1bmN0aW9uIE01KHQsZSxuKXt2YXIgbz0oZS10KS9NYXRoLm1heCgwLG4pLGk9TWF0aC5mbG9vcihNYXRoLmxvZyhvKS9NYXRoLkxOMTApLGE9by9NYXRoLnBvdygxMCxpKTtyZXR1cm4gaT49MD8oYT49YjU/MTA6YT49eTU/NTphPj1fNT8yOjEpKk1hdGgucG93KDEwLGkpOi1NYXRoLnBvdygxMCwtaSkvKGE+PWI1PzEwOmE+PXk1PzU6YT49XzU/MjoxKX1mdW5jdGlvbiB2NSh0LGUsbil7dmFyIG89TWF0aC5hYnMoZS10KS9NYXRoLm1heCgwLG4pLGk9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhvKS9NYXRoLkxOMTApKSxhPW8vaTtyZXR1cm4gYT49YjU/aSo9MTA6YT49eTU/aSo9NTphPj1fNSYmKGkqPTIpLGU8dD8taTppfWZ1bmN0aW9uIHg1KHQpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5sb2codC5sZW5ndGgpL01hdGguTE4yKSsxfWZ1bmN0aW9uIE81KCl7dmFyIHQ9ZzUsZT1tNSxuPXg1O2Z1bmN0aW9uIG8obyl7dmFyIGksYSxyPW8ubGVuZ3RoLHM9bmV3IEFycmF5KHIpO2ZvcihpPTA7aTxyOysraSlzW2ldPXQob1tpXSxpLG8pO3ZhciBsPWUocyksYz1sWzBdLGQ9bFsxXSxwPW4ocyxjLGQpO0FycmF5LmlzQXJyYXkocCl8fChwPXY1KGMsZCxwKSxwPWg1KE1hdGguY2VpbChjL3ApKnAsZCxwKSk7Zm9yKHZhciBtPXAubGVuZ3RoO3BbMF08PWM7KXAuc2hpZnQoKSwtLW07Zm9yKDtwW20tMV0+ZDspcC5wb3AoKSwtLW07dmFyIHUsZj1uZXcgQXJyYXkobSsxKTtmb3IoaT0wO2k8PW07KytpKSh1PWZbaV09W10pLngwPWk+MD9wW2ktMV06Yyx1LngxPWk8bT9wW2ldOmQ7Zm9yKGk9MDtpPHI7KytpKWM8PShhPXNbaV0pJiZhPD1kJiZmW3A1KHAsYSwwLG0pXS5wdXNoKG9baV0pO3JldHVybiBmfXJldHVybiBvLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6ZjUoZSksbyk6dH0sby5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpmNShbdFswXSx0WzFdXSksbyk6ZX0sby50aHJlc2hvbGRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6QXJyYXkuaXNBcnJheSh0KT9mNSh1NS5jYWxsKHQpKTpmNSh0KSxvKTpufSxvfXZhciBQNT1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gdzUodCl7cmV0dXJuIHR9dmFyIGs1PTFlLTY7ZnVuY3Rpb24gUzUodCl7cmV0dXJuInRyYW5zbGF0ZSgiKyh0Ky41KSsiLDApIn1mdW5jdGlvbiBENSh0KXtyZXR1cm4idHJhbnNsYXRlKDAsIisodCsuNSkrIikifWZ1bmN0aW9uIEU1KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4rdChlKX19ZnVuY3Rpb24gUjUodCl7dmFyIGU9TWF0aC5tYXgoMCx0LmJhbmR3aWR0aCgpLTEpLzI7cmV0dXJuIHQucm91bmQoKSYmKGU9TWF0aC5yb3VuZChlKSksZnVuY3Rpb24obil7cmV0dXJuK3QobikrZX19ZnVuY3Rpb24gQTUoKXtyZXR1cm4hdGhpcy5fX2F4aXN9ZnVuY3Rpb24gVDUodCxlKXt2YXIgbj1bXSxvPW51bGwsaT1udWxsLGE9NixyPTYscz0zLGw9MT09PXR8fDQ9PT10Py0xOjEsYz00PT09dHx8Mj09PXQ/IngiOiJ5IixkPTE9PT10fHwzPT09dD9TNTpENTtmdW5jdGlvbiBwKHApe3ZhciBtPW51bGw9PW8/ZS50aWNrcz9lLnRpY2tzLmFwcGx5KGUsbik6ZS5kb21haW4oKTpvLHU9bnVsbD09aT9lLnRpY2tGb3JtYXQ/ZS50aWNrRm9ybWF0LmFwcGx5KGUsbik6dzU6aSxmPU1hdGgubWF4KGEsMCkrcyxnPWUucmFuZ2UoKSxoPStnWzBdKy41LGI9K2dbZy5sZW5ndGgtMV0rLjUseT0oZS5iYW5kd2lkdGg/UjU6RTUpKGUuY29weSgpKSxfPXAuc2VsZWN0aW9uP3Auc2VsZWN0aW9uKCk6cCxDPV8uc2VsZWN0QWxsKCIuZG9tYWluIikuZGF0YShbbnVsbF0pLE09Xy5zZWxlY3RBbGwoIi50aWNrIikuZGF0YShtLGUpLm9yZGVyKCksdj1NLmV4aXQoKSx4PU0uZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInRpY2siKSxPPU0uc2VsZWN0KCJsaW5lIiksUD1NLnNlbGVjdCgidGV4dCIpO0M9Qy5tZXJnZShDLmVudGVyKCkuaW5zZXJ0KCJwYXRoIiwiLnRpY2siKS5hdHRyKCJjbGFzcyIsImRvbWFpbiIpLmF0dHIoInN0cm9rZSIsImN1cnJlbnRDb2xvciIpKSxNPU0ubWVyZ2UoeCksTz1PLm1lcmdlKHguYXBwZW5kKCJsaW5lIikuYXR0cigic3Ryb2tlIiwiY3VycmVudENvbG9yIikuYXR0cihjKyIyIixsKmEpKSxQPVAubWVyZ2UoeC5hcHBlbmQoInRleHQiKS5hdHRyKCJmaWxsIiwiY3VycmVudENvbG9yIikuYXR0cihjLGwqZikuYXR0cigiZHkiLDE9PT10PyIwZW0iOjM9PT10PyIwLjcxZW0iOiIwLjMyZW0iKSkscCE9PV8mJihDPUMudHJhbnNpdGlvbihwKSxNPU0udHJhbnNpdGlvbihwKSxPPU8udHJhbnNpdGlvbihwKSxQPVAudHJhbnNpdGlvbihwKSx2PXYudHJhbnNpdGlvbihwKS5hdHRyKCJvcGFjaXR5IixrNSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9eSh0KSk/ZCh0KTp0aGlzLmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIil9KSkseC5hdHRyKCJvcGFjaXR5IixrNSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5wYXJlbnROb2RlLl9fYXhpcztyZXR1cm4gZChlJiZpc0Zpbml0ZShlPWUodCkpP2U6eSh0KSl9KSkpLHYucmVtb3ZlKCksQy5hdHRyKCJkIiw0PT09dHx8Mj09dD9yPyJNIitsKnIrIiwiK2grIkgwLjVWIitiKyJIIitsKnI6Ik0wLjUsIitoKyJWIitiOnI/Ik0iK2grIiwiK2wqcisiVjAuNUgiK2IrIlYiK2wqcjoiTSIraCsiLDAuNUgiK2IpLE0uYXR0cigib3BhY2l0eSIsMSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIGQoeSh0KSl9KSksTy5hdHRyKGMrIjIiLGwqYSksUC5hdHRyKGMsbCpmKS50ZXh0KHUpLF8uZmlsdGVyKEE1KS5hdHRyKCJmaWxsIiwibm9uZSIpLmF0dHIoImZvbnQtc2l6ZSIsMTApLmF0dHIoImZvbnQtZmFtaWx5Iiwic2Fucy1zZXJpZiIpLmF0dHIoInRleHQtYW5jaG9yIiwyPT09dD8ic3RhcnQiOjQ9PT10PyJlbmQiOiJtaWRkbGUiKSxfLmVhY2goKGZ1bmN0aW9uKCl7dGhpcy5fX2F4aXM9eX0pKX1yZXR1cm4gcC5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LHApOmV9LHAudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gbj1QNS5jYWxsKGFyZ3VtZW50cykscH0scC50aWNrQXJndW1lbnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/W106UDUuY2FsbCh0KSxwKTpuLnNsaWNlKCl9LHAudGlja1ZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT10P251bGw6UDUuY2FsbCh0KSxwKTpvJiZvLnNsaWNlKCl9LHAudGlja0Zvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LHApOml9LHAudGlja1NpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9cj0rdCxwKTphfSxwLnRpY2tTaXplSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3QscCk6YX0scC50aWNrU2l6ZU91dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LHApOnJ9LHAudGlja1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9K3QscCk6c30scH1mdW5jdGlvbiBONSh0KXtyZXR1cm4gVDUoMix0KX1mdW5jdGlvbiB6NSh0KXtyZXR1cm4gVDUoMyx0KX12YXIgSTU9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gSDUoKXtmb3IodmFyIHQsZT0wLG49YXJndW1lbnRzLmxlbmd0aCxvPXt9O2U8bjsrK2Upe2lmKCEodD1hcmd1bWVudHNbZV0rIiIpfHx0IGluIG98fC9bXHMuXS8udGVzdCh0KSl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgdHlwZTogIit0KTtvW3RdPVtdfXJldHVybiBuZXcgRjUobyl9ZnVuY3Rpb24gRjUodCl7dGhpcy5fPXR9ZnVuY3Rpb24gTDUodCxlKXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgbj0iIixvPXQuaW5kZXhPZigiLiIpO2lmKG8+PTAmJihuPXQuc2xpY2UobysxKSx0PXQuc2xpY2UoMCxvKSksdCYmIWUuaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOm59fSkpfWZ1bmN0aW9uIEI1KHQsZSl7Zm9yKHZhciBuLG89MCxpPXQubGVuZ3RoO288aTsrK28paWYoKG49dFtvXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24gVjUodCxlLG4pe2Zvcih2YXIgbz0wLGk9dC5sZW5ndGg7bzxpOysrbylpZih0W29dLm5hbWU9PT1lKXt0W29dPUk1LHQ9dC5zbGljZSgwLG8pLmNvbmNhdCh0LnNsaWNlKG8rMSkpO2JyZWFrfXJldHVybiBudWxsIT1uJiZ0LnB1c2goe25hbWU6ZSx2YWx1ZTpufSksdH1GNS5wcm90b3R5cGU9SDUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpGNSxvbjpmdW5jdGlvbih0LGUpe3ZhciBuLG89dGhpcy5fLGk9TDUodCsiIixvKSxhPS0xLHI9aS5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK2E8cjspaWYobj0odD1pW2FdKS50eXBlKW9bbl09VjUob1tuXSx0Lm5hbWUsZSk7ZWxzZSBpZihudWxsPT1lKWZvcihuIGluIG8pb1tuXT1WNShvW25dLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrYTxyOylpZigobj0odD1pW2FdKS50eXBlKSYmKG49QjUob1tuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcgRjUodCl9LGNhbGw6ZnVuY3Rpb24odCxlKXtpZigobj1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBuLG8saT1uZXcgQXJyYXkobiksYT0wO2E8bjsrK2EpaVthXT1hcmd1bWVudHNbYSsyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2ZvcihhPTAsbj0obz10aGlzLl9bdF0pLmxlbmd0aDthPG47KythKW9bYV0udmFsdWUuYXBwbHkoZSxpKX0sYXBwbHk6ZnVuY3Rpb24odCxlLG4pe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKHZhciBvPXRoaXMuX1t0XSxpPTAsYT1vLmxlbmd0aDtpPGE7KytpKW9baV0udmFsdWUuYXBwbHkoZSxuKX19O3ZhciBqNT0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsVTU9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOmo1LHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn07ZnVuY3Rpb24gRzUodCl7dmFyIGU9dCs9IiIsbj1lLmluZGV4T2YoIjoiKTtyZXR1cm4gbj49MCYmInhtbG5zIiE9PShlPXQuc2xpY2UoMCxuKSkmJih0PXQuc2xpY2UobisxKSksVTUuaGFzT3duUHJvcGVydHkoZSk/e3NwYWNlOlU1W2VdLGxvY2FsOnR9OnR9ZnVuY3Rpb24gVzUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50LG49dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIG49PT1qNSYmZS5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09ajU/ZS5jcmVhdGVFbGVtZW50KHQpOmUuY3JlYXRlRWxlbWVudE5TKG4sdCl9fWZ1bmN0aW9uIFk1KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIHE1KHQpe3ZhciBlPUc1KHQpO3JldHVybihlLmxvY2FsP1k1Olc1KShlKX1mdW5jdGlvbiBaNSgpe31mdW5jdGlvbiBYNSh0KXtyZXR1cm4gbnVsbD09dD9aNTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IodCl9fWZ1bmN0aW9uIEs1KCl7cmV0dXJuW119ZnVuY3Rpb24gSjUodCl7cmV0dXJuIG51bGw9PXQ/SzU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKHQpfX1mdW5jdGlvbiBRNSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKHQpfX1mdW5jdGlvbiAkNSh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiB0NCh0LGUpe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189ZX1mdW5jdGlvbiBlNCh0LGUsbixvLGksYSl7Zm9yKHZhciByLHM9MCxsPWUubGVuZ3RoLGM9YS5sZW5ndGg7czxjOysrcykocj1lW3NdKT8oci5fX2RhdGFfXz1hW3NdLG9bc109cik6bltzXT1uZXcgdDQodCxhW3NdKTtmb3IoO3M8bDsrK3MpKHI9ZVtzXSkmJihpW3NdPXIpfWZ1bmN0aW9uIG40KHQsZSxuLG8saSxhLHIpe3ZhciBzLGwsYyxkPXt9LHA9ZS5sZW5ndGgsbT1hLmxlbmd0aCx1PW5ldyBBcnJheShwKTtmb3Iocz0wO3M8cDsrK3MpKGw9ZVtzXSkmJih1W3NdPWM9IiQiK3IuY2FsbChsLGwuX19kYXRhX18scyxlKSxjIGluIGQ/aVtzXT1sOmRbY109bCk7Zm9yKHM9MDtzPG07KytzKShsPWRbYz0iJCIrci5jYWxsKHQsYVtzXSxzLGEpXSk/KG9bc109bCxsLl9fZGF0YV9fPWFbc10sZFtjXT1udWxsKTpuW3NdPW5ldyB0NCh0LGFbc10pO2ZvcihzPTA7czxwOysrcykobD1lW3NdKSYmZFt1W3NdXT09PWwmJihpW3NdPWwpfWZ1bmN0aW9uIG80KHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIGk0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiBhNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIHI0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19ZnVuY3Rpb24gczQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlKX19ZnVuY3Rpb24gbDQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpOnRoaXMuc2V0QXR0cmlidXRlKHQsbil9fWZ1bmN0aW9uIGM0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsbil9fWZ1bmN0aW9uIGQ0KHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBwNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBtNCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUsbil9fWZ1bmN0aW9uIHU0KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1vP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LG8sbil9fWZ1bmN0aW9uIGY0KHQsZSl7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShlKXx8ZDQodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUoZSl9ZnVuY3Rpb24gZzQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19fWZ1bmN0aW9uIGg0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1lfX1mdW5jdGlvbiBiNCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/ZGVsZXRlIHRoaXNbdF06dGhpc1t0XT1ufX1mdW5jdGlvbiB5NCh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVuY3Rpb24gXzQodCl7cmV0dXJuIHQuY2xhc3NMaXN0fHxuZXcgQzQodCl9ZnVuY3Rpb24gQzQodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPXk0KHQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9ZnVuY3Rpb24gTTQodCxlKXtmb3IodmFyIG49XzQodCksbz0tMSxpPWUubGVuZ3RoOysrbzxpOyluLmFkZChlW29dKX1mdW5jdGlvbiB2NCh0LGUpe2Zvcih2YXIgbj1fNCh0KSxvPS0xLGk9ZS5sZW5ndGg7KytvPGk7KW4ucmVtb3ZlKGVbb10pfWZ1bmN0aW9uIHg0KHQpe3JldHVybiBmdW5jdGlvbigpe000KHRoaXMsdCl9fWZ1bmN0aW9uIE80KHQpe3JldHVybiBmdW5jdGlvbigpe3Y0KHRoaXMsdCl9fWZ1bmN0aW9uIFA0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7KGUuYXBwbHkodGhpcyxhcmd1bWVudHMpP000OnY0KSh0aGlzLHQpfX1mdW5jdGlvbiB3NCgpe3RoaXMudGV4dENvbnRlbnQ9IiJ9ZnVuY3Rpb24gazQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX1mdW5jdGlvbiBTNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gRDQoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBFNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX1mdW5jdGlvbiBSNCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIEE0KCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIFQ0KCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gTjQoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiB6NCgpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIEk0KCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITEpLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH1mdW5jdGlvbiBINCgpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCEwKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9dDQucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp0NCxhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LGUpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSxDNC5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt0aGlzLl9uYW1lcy5pbmRleE9mKHQpPDAmJih0aGlzLl9uYW1lcy5wdXNoKHQpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9uYW1lcy5pbmRleE9mKHQpO2U+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UoZSwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciBGND17fSxMND1udWxsO2Z1bmN0aW9uIEI0KHQsZSxuKXtyZXR1cm4gdD1WNCh0LGUsbiksZnVuY3Rpb24oZSl7dmFyIG49ZS5yZWxhdGVkVGFyZ2V0O24mJihuPT09dGhpc3x8OCZuLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMpKXx8dC5jYWxsKHRoaXMsZSl9fWZ1bmN0aW9uIFY0KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24obyl7dmFyIGk9TDQ7TDQ9bzt0cnl7dC5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxlLG4pfWZpbmFsbHl7TDQ9aX19fWZ1bmN0aW9uIGo0KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihlPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOmV9fSkpfWZ1bmN0aW9uIFU0KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMuX19vbjtpZihlKXtmb3IodmFyIG4sbz0wLGk9LTEsYT1lLmxlbmd0aDtvPGE7KytvKW49ZVtvXSx0LnR5cGUmJm4udHlwZSE9PXQudHlwZXx8bi5uYW1lIT09dC5uYW1lP2VbKytpXT1uOnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLnR5cGUsbi5saXN0ZW5lcixuLmNhcHR1cmUpOysraT9lLmxlbmd0aD1pOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBHNCh0LGUsbil7dmFyIG89RjQuaGFzT3duUHJvcGVydHkodC50eXBlKT9CNDpWNDtyZXR1cm4gZnVuY3Rpb24oaSxhLHIpe3ZhciBzLGw9dGhpcy5fX29uLGM9byhlLGEscik7aWYobClmb3IodmFyIGQ9MCxwPWwubGVuZ3RoO2Q8cDsrK2QpaWYoKHM9bFtkXSkudHlwZT09PXQudHlwZSYmcy5uYW1lPT09dC5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXIscy5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXI9YyxzLmNhcHR1cmU9biksdm9pZChzLnZhbHVlPWUpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcih0LnR5cGUsYyxuKSxzPXt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSx2YWx1ZTplLGxpc3RlbmVyOmMsY2FwdHVyZTpufSxsP2wucHVzaChzKTp0aGlzLl9fb249W3NdfX1mdW5jdGlvbiBXNCh0LGUsbil7dmFyIG89ZDQodCksaT1vLkN1c3RvbUV2ZW50OyJmdW5jdGlvbiI9PXR5cGVvZiBpP2k9bmV3IGkoZSxuKTooaT1vLmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLG4/KGkuaW5pdEV2ZW50KGUsbi5idWJibGVzLG4uY2FuY2VsYWJsZSksaS5kZXRhaWw9bi5kZXRhaWwpOmkuaW5pdEV2ZW50KGUsITEsITEpKSx0LmRpc3BhdGNoRXZlbnQoaSl9ZnVuY3Rpb24gWTQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gVzQodGhpcyx0LGUpfX1mdW5jdGlvbiBxNCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBXNCh0aGlzLHQsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChGND17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7dmFyIFo0PVtudWxsXTtmdW5jdGlvbiBYNCh0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBLNCgpe3JldHVybiBuZXcgWDQoW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSxaNCl9ZnVuY3Rpb24gSjQodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P25ldyBYNChbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCldXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IFg0KFtbdF1dLFo0KX1mdW5jdGlvbiBRNCgpe2Zvcih2YXIgdCxlPUw0O3Q9ZS5zb3VyY2VFdmVudDspZT10O3JldHVybiBlfWZ1bmN0aW9uICQ0KHQsZSl7dmFyIG49dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIG89bi5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBvLng9ZS5jbGllbnRYLG8ueT1lLmNsaWVudFksWyhvPW8ubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxvLnldfXZhciBpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW2UuY2xpZW50WC1pLmxlZnQtdC5jbGllbnRMZWZ0LGUuY2xpZW50WS1pLnRvcC10LmNsaWVudFRvcF19ZnVuY3Rpb24gdDYodCl7dmFyIGU9UTQoKTtyZXR1cm4gZS5jaGFuZ2VkVG91Y2hlcyYmKGU9ZS5jaGFuZ2VkVG91Y2hlc1swXSksJDQodCxlKX1mdW5jdGlvbiBlNigpe0w0LnByZXZlbnREZWZhdWx0KCksTDQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gbjYodCl7dmFyIGU9dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1KNCh0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLGU2LCEwKTsib25zZWxlY3RzdGFydCJpbiBlP24ub24oInNlbGVjdHN0YXJ0LmRyYWciLGU2LCEwKTooZS5fX25vc2VsZWN0PWUuc3R5bGUuTW96VXNlclNlbGVjdCxlLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiKX1mdW5jdGlvbiBvNih0LGUpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG89SjQodCkub24oImRyYWdzdGFydC5kcmFnIixudWxsKTtlJiYoby5vbigiY2xpY2suZHJhZyIsZTYsITApLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7by5vbigiY2xpY2suZHJhZyIsbnVsbCl9KSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gbj9vLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKToobi5zdHlsZS5Nb3pVc2VyU2VsZWN0PW4uX19ub3NlbGVjdCxkZWxldGUgbi5fX25vc2VsZWN0KX1mdW5jdGlvbiBpNih0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gYTYodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIG8gaW4gZSluW29dPWVbb107cmV0dXJuIG59ZnVuY3Rpb24gcjYoKXt9WDQucHJvdG90eXBlPUs0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6WDQsc2VsZWN0OmZ1bmN0aW9uIHM2KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1YNSh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLG89bmV3IEFycmF5KG4pLGk9MDtpPG47KytpKWZvcih2YXIgYSxyLHM9ZVtpXSxsPXMubGVuZ3RoLGM9b1tpXT1uZXcgQXJyYXkobCksZD0wO2Q8bDsrK2QpKGE9c1tkXSkmJihyPXQuY2FsbChhLGEuX19kYXRhX18sZCxzKSkmJigiX19kYXRhX18iaW4gYSYmKHIuX19kYXRhX189YS5fX2RhdGFfXyksY1tkXT1yKTtyZXR1cm4gbmV3IFg0KG8sdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBsNih0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9SjUodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxvPVtdLGk9W10sYT0wO2E8bjsrK2EpZm9yKHZhciByLHM9ZVthXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKShyPXNbY10pJiYoby5wdXNoKHQuY2FsbChyLHIuX19kYXRhX18sYyxzKSksaS5wdXNoKHIpKTtyZXR1cm4gbmV3IFg0KG8saSl9LGZpbHRlcjpmdW5jdGlvbiBjNih0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9UTUodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxvPW5ldyBBcnJheShuKSxpPTA7aTxuOysraSlmb3IodmFyIGEscj1lW2ldLHM9ci5sZW5ndGgsbD1vW2ldPVtdLGM9MDtjPHM7KytjKShhPXJbY10pJiZ0LmNhbGwoYSxhLl9fZGF0YV9fLGMscikmJmwucHVzaChhKTtyZXR1cm4gbmV3IFg0KG8sdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gZDYodCxlKXtpZighdClyZXR1cm4gZj1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGQ9LTEsdGhpcy5lYWNoKChmdW5jdGlvbih0KXtmWysrZF09dH0pKSxmO3ZhciBuPWU/bjQ6ZTQsbz10aGlzLl9wYXJlbnRzLGk9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gYSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciByPWkubGVuZ3RoLHM9bmV3IEFycmF5KHIpLGw9bmV3IEFycmF5KHIpLGM9bmV3IEFycmF5KHIpLGQ9MDtkPHI7KytkKXt2YXIgcD1vW2RdLG09aVtkXSx1PW0ubGVuZ3RoLGY9dC5jYWxsKHAscCYmcC5fX2RhdGFfXyxkLG8pLGc9Zi5sZW5ndGgsaD1sW2RdPW5ldyBBcnJheShnKSxiPXNbZF09bmV3IEFycmF5KGcpO24ocCxtLGgsYixjW2RdPW5ldyBBcnJheSh1KSxmLGUpO2Zvcih2YXIgeSxfLEM9MCxNPTA7QzxnOysrQylpZih5PWhbQ10pe2ZvcihDPj1NJiYoTT1DKzEpOyEoXz1iW01dKSYmKytNPGc7KTt5Ll9uZXh0PV98fG51bGx9fXJldHVybihzPW5ldyBYNChzLG8pKS5fZW50ZXI9bCxzLl9leGl0PWMsc30sZW50ZXI6ZnVuY3Rpb24gcDYoKXtyZXR1cm4gbmV3IFg0KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKCQ1KSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbiBtNigpe3JldHVybiBuZXcgWDQodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcCgkNSksdGhpcy5fcGFyZW50cyl9LGpvaW46ZnVuY3Rpb24gdTYodCxlLG4pe3ZhciBvPXRoaXMuZW50ZXIoKSxpPXRoaXMsYT10aGlzLmV4aXQoKTtyZXR1cm4gbz0iZnVuY3Rpb24iPT10eXBlb2YgdD90KG8pOm8uYXBwZW5kKHQrIiIpLG51bGwhPWUmJihpPWUoaSkpLG51bGw9PW4/YS5yZW1vdmUoKTpuKGEpLG8mJmk/by5tZXJnZShpKS5vcmRlcigpOml9LG1lcmdlOmZ1bmN0aW9uIGY2KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsbz1lLmxlbmd0aCxpPU1hdGgubWluKG8sbi5sZW5ndGgpLGE9bmV3IEFycmF5KG8pLHI9MDtyPGk7KytyKWZvcih2YXIgcyxsPWVbcl0sYz1uW3JdLGQ9bC5sZW5ndGgscD1hW3JdPW5ldyBBcnJheShkKSxtPTA7bTxkOysrbSkocz1sW21dfHxjW21dKSYmKHBbbV09cyk7Zm9yKDtyPG87KytyKWFbcl09ZVtyXTtyZXR1cm4gbmV3IFg0KGEsdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uIGc2KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPS0xLG49dC5sZW5ndGg7KytlPG47KWZvcih2YXIgbyxpPXRbZV0sYT1pLmxlbmd0aC0xLHI9aVthXTstLWE+PTA7KShvPWlbYV0pJiYociYmNF5vLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpJiZyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG8scikscj1vKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbiBoNih0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIGUmJm4/dChlLl9fZGF0YV9fLG4uX19kYXRhX18pOiFlLSFufXR8fCh0PW80KTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLG89bi5sZW5ndGgsaT1uZXcgQXJyYXkobyksYT0wO2E8bzsrK2Epe2Zvcih2YXIgcixzPW5bYV0sbD1zLmxlbmd0aCxjPWlbYV09bmV3IEFycmF5KGwpLGQ9MDtkPGw7KytkKShyPXNbZF0pJiYoY1tkXT1yKTtjLnNvcnQoZSl9cmV0dXJuIG5ldyBYNChpLHRoaXMuX3BhcmVudHMpLm9yZGVyKCl9LGNhbGw6ZnVuY3Rpb24gYjYoKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIHk2KCl7dmFyIHQ9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxlPS0xO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7dFsrK2VdPXRoaXN9KSksdH0sbm9kZTpmdW5jdGlvbiBfNigpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT0wLG49dC5sZW5ndGg7ZTxuOysrZSlmb3IodmFyIG89dFtlXSxpPTAsYT1vLmxlbmd0aDtpPGE7KytpKXt2YXIgcj1vW2ldO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24gQzYoKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9LGVtcHR5OmZ1bmN0aW9uIE02KCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uIHY2KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj0wLG89ZS5sZW5ndGg7bjxvOysrbilmb3IodmFyIGksYT1lW25dLHI9MCxzPWEubGVuZ3RoO3I8czsrK3IpKGk9YVtyXSkmJnQuY2FsbChpLGkuX19kYXRhX18scixhKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbiB4Nih0LGUpe3ZhciBuPUc1KHQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIG89dGhpcy5ub2RlKCk7cmV0dXJuIG4ubG9jYWw/by5nZXRBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwpOm8uZ2V0QXR0cmlidXRlKG4pfXJldHVybiB0aGlzLmVhY2goKG51bGw9PWU/bi5sb2NhbD9hNDppNDoiZnVuY3Rpb24iPT10eXBlb2YgZT9uLmxvY2FsP2M0Omw0Om4ubG9jYWw/czQ6cjQpKG4sZSkpfSxzdHlsZTpmdW5jdGlvbiBPNih0LGUsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/cDQ6ImZ1bmN0aW9uIj09dHlwZW9mIGU/dTQ6bTQpKHQsZSxudWxsPT1uPyIiOm4pKTpmNCh0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24gUDYodCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9nNDoiZnVuY3Rpb24iPT10eXBlb2YgZT9iNDpoNCkodCxlKSk6dGhpcy5ub2RlKClbdF19LGNsYXNzZWQ6ZnVuY3Rpb24gdzYodCxlKXt2YXIgbj15NCh0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgbz1fNCh0aGlzLm5vZGUoKSksaT0tMSxhPW4ubGVuZ3RoOysraTxhOylpZighby5jb250YWlucyhuW2ldKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgZT9QNDplP3g0Ok80KShuLGUpKX0sdGV4dDpmdW5jdGlvbiBrNih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD93NDooImZ1bmN0aW9uIj09dHlwZW9mIHQ/UzQ6azQpKHQpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0saHRtbDpmdW5jdGlvbiBTNih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9ENDooImZ1bmN0aW9uIj09dHlwZW9mIHQ/UjQ6RTQpKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIEQ2KCl7cmV0dXJuIHRoaXMuZWFjaChBNCl9LGxvd2VyOmZ1bmN0aW9uIEU2KCl7cmV0dXJuIHRoaXMuZWFjaChUNCl9LGFwcGVuZDpmdW5jdGlvbiBSNih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnE1KHQpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KSl9LGluc2VydDpmdW5jdGlvbiBBNih0LGUpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cTUodCksbz1udWxsPT1lP040OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6WDUoZSk7cmV0dXJuIHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KSl9LHJlbW92ZTpmdW5jdGlvbiBUNigpe3JldHVybiB0aGlzLmVhY2goejQpfSxjbG9uZTpmdW5jdGlvbiBONih0KXtyZXR1cm4gdGhpcy5zZWxlY3QodD9INDpJNCl9LGRhdHVtOmZ1bmN0aW9uIHo2KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIix0KTp0aGlzLm5vZGUoKS5fX2RhdGFfX30sb246ZnVuY3Rpb24gSTYodCxlLG4pe3ZhciBvLGksYT1qNCh0KyIiKSxyPWEubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHM9ZT9HNDpVNCxudWxsPT1uJiYobj0hMSksbz0wO288cjsrK28pdGhpcy5lYWNoKHMoYVtvXSxlLG4pKTtyZXR1cm4gdGhpc312YXIgcz10aGlzLm5vZGUoKS5fX29uO2lmKHMpZm9yKHZhciBsLGM9MCxkPXMubGVuZ3RoO2M8ZDsrK2MpZm9yKG89MCxsPXNbY107bzxyOysrbylpZigoaT1hW29dKS50eXBlPT09bC50eXBlJiZpLm5hbWU9PT1sLm5hbWUpcmV0dXJuIGwudmFsdWV9LGRpc3BhdGNoOmZ1bmN0aW9uIEg2KHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/cTQ6WTQpKHQsZSkpfX07dmFyIEY2PS43LEw2PTEvRjYsQjY9IlxccyooWystXT9cXGQrKVxccyoiLFY2PSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLGo2PSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixVNj0vXiMoWzAtOWEtZl17Myw4fSkkLyxHNj1uZXcgUmVnRXhwKCJecmdiXFwoIitbQjYsQjYsQjZdKyJcXCkkIiksVzY9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW2o2LGo2LGo2XSsiXFwpJCIpLFk2PW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbQjYsQjYsQjYsVjZdKyJcXCkkIikscTY9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tqNixqNixqNixWNl0rIlxcKSQiKSxaNj1uZXcgUmVnRXhwKCJeaHNsXFwoIitbVjYsajYsajZdKyJcXCkkIiksWDY9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tWNixqNixqNixWNl0rIlxcKSQiKSxLNj17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBKNigpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIFE2KCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gJDYodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9VTYuZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj90NyhlKTozPT09bj9uZXcgaTcoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP2U3KGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP2U3KGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9RzYuZXhlYyh0KSk/bmV3IGk3KGVbMV0sZVsyXSxlWzNdLDEpOihlPVc2LmV4ZWModCkpP25ldyBpNygyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1ZNi5leGVjKHQpKT9lNyhlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1xNi5leGVjKHQpKT9lNygyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1aNi5leGVjKHQpKT9sNyhlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVg2LmV4ZWModCkpP2w3KGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6SzYuaGFzT3duUHJvcGVydHkodCk/dDcoSzZbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyBpNyhOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIHQ3KHQpe3JldHVybiBuZXcgaTcodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIGU3KHQsZSxuLG8pe3JldHVybiBvPD0wJiYodD1lPW49TmFOKSxuZXcgaTcodCxlLG4sbyl9ZnVuY3Rpb24gbjcodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiByNnx8KHQ9JDYodCkpLHQ/bmV3IGk3KCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyBpN31mdW5jdGlvbiBvNyh0LGUsbixvKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/bjcodCk6bmV3IGk3KHQsZSxuLG51bGw9PW8/MTpvKX1mdW5jdGlvbiBpNyh0LGUsbixvKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K299ZnVuY3Rpb24gYTcoKXtyZXR1cm4iIyIrczcodGhpcy5yKStzNyh0aGlzLmcpK3M3KHRoaXMuYil9ZnVuY3Rpb24gcjcoKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBzNyh0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIGw3KHQsZSxuLG8pe3JldHVybiBvPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgcDcodCxlLG4sbyl9ZnVuY3Rpb24gYzcodCl7aWYodCBpbnN0YW5jZW9mIHA3KXJldHVybiBuZXcgcDcodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgcjZ8fCh0PSQ2KHQpKSwhdClyZXR1cm4gbmV3IHA3O2lmKHQgaW5zdGFuY2VvZiBwNylyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsbz10LmIvMjU1LGk9TWF0aC5taW4oZSxuLG8pLGE9TWF0aC5tYXgoZSxuLG8pLHI9TmFOLHM9YS1pLGw9KGEraSkvMjtyZXR1cm4gcz8ocj1lPT09YT8obi1vKS9zKzYqKG48byk6bj09PWE/KG8tZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P2EraToyLWEtaSxyKj02MCk6cz1sPjAmJmw8MT8wOnIsbmV3IHA3KHIscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gZDcodCxlLG4sbyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2M3KHQpOm5ldyBwNyh0LGUsbixudWxsPT1vPzE6byl9ZnVuY3Rpb24gcDcodCxlLG4sbyl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStvfWZ1bmN0aW9uIG03KHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1pNihyNiwkNix7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpKNixmb3JtYXRIZXg6SjYsZm9ybWF0SHNsOmZ1bmN0aW9uIHU3KCl7cmV0dXJuIGM3KHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6UTYsdG9TdHJpbmc6UTZ9KSxpNihpNyxvNyxhNihyNix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9MNjpNYXRoLnBvdyhMNix0KSxuZXcgaTcodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/RjY6TWF0aC5wb3coRjYsdCksbmV3IGk3KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6YTcsZm9ybWF0SGV4OmE3LGZvcm1hdFJnYjpyNyx0b1N0cmluZzpyN30pKSxpNihwNyxkNyxhNihyNix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9MNjpNYXRoLnBvdyhMNix0KSxuZXcgcDcodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9GNjpNYXRoLnBvdyhGNix0KSxuZXcgcDcodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsbz1uKyhuPC41P246MS1uKSplLGk9MipuLW87cmV0dXJuIG5ldyBpNyhtNyh0Pj0yNDA/dC0yNDA6dCsxMjAsaSxvKSxtNyh0LGksbyksbTcodDwxMjA/dCsyNDA6dC0xMjAsaSxvKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgZjc9TWF0aC5QSS8xODAsZzc9MTgwL01hdGguUEksaDc9Ljk2NDIyLGI3PS44MjUyMSx5Nz00LzI5LF83PTYvMjksQzc9MypfNypfNztmdW5jdGlvbiBNNyh0KXtpZih0IGluc3RhbmNlb2YgdjcpcmV0dXJuIG5ldyB2Nyh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBENylyZXR1cm4gRTcodCk7dCBpbnN0YW5jZW9mIGk3fHwodD1uNyh0KSk7dmFyIGUsbixvPXc3KHQuciksaT13Nyh0LmcpLGE9dzcodC5iKSxyPXg3KCguMjIyNTA0NSpvKy43MTY4Nzg2KmkrLjA2MDYxNjkqYSkvMSk7cmV0dXJuIG89PT1pJiZpPT09YT9lPW49cjooZT14NygoLjQzNjA3NDcqbysuMzg1MDY0OSppKy4xNDMwODA0KmEpL2g3KSxuPXg3KCguMDEzOTMyMipvKy4wOTcxMDQ1KmkrLjcxNDE3MzMqYSkvYjcpKSxuZXcgdjcoMTE2KnItMTYsNTAwKihlLXIpLDIwMCooci1uKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIHY3KHQsZSxuLG8pe3RoaXMubD0rdCx0aGlzLmE9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0rb31mdW5jdGlvbiB4Nyh0KXtyZXR1cm4gdD4uMDA4ODU2NDUxNjc5MDM1NjMxP01hdGgucG93KHQsMS8zKTp0L0M3K3k3fWZ1bmN0aW9uIE83KHQpe3JldHVybiB0Pl83P3QqdCp0OkM3Kih0LXk3KX1mdW5jdGlvbiBQNyh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIHc3KHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIGs3KHQpe2lmKHQgaW5zdGFuY2VvZiBENylyZXR1cm4gbmV3IEQ3KHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIHY3fHwodD1NNyh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IEQ3KE5hTiwwPHQubCYmdC5sPDEwMD8wOk5hTix0LmwsdC5vcGFjaXR5KTt2YXIgZT1NYXRoLmF0YW4yKHQuYix0LmEpKmc3O3JldHVybiBuZXcgRDcoZTwwP2UrMzYwOmUsTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gUzcodCxlLG4sbyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2s3KHQpOm5ldyBENyh0LGUsbixudWxsPT1vPzE6byl9ZnVuY3Rpb24gRDcodCxlLG4sbyl7dGhpcy5oPSt0LHRoaXMuYz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStvfWZ1bmN0aW9uIEU3KHQpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyB2Nyh0LmwsMCwwLHQub3BhY2l0eSk7dmFyIGU9dC5oKmY3O3JldHVybiBuZXcgdjcodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX1mdW5jdGlvbiBSNyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gQTcodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQrbiplfX1mdW5jdGlvbiBUNyh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9BNyh0LG4+MTgwfHxuPC0xODA/bi0zNjAqTWF0aC5yb3VuZChuLzM2MCk6bik6UjcoaXNOYU4odCk/ZTp0KX1mdW5jdGlvbiBONyh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9BNyh0LG4pOlI3KGlzTmFOKHQpP2U6dCl9aTYodjcsKGZ1bmN0aW9uIHo3KHQsZSxuLG8pe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9NNyh0KTpuZXcgdjcodCxlLG4sbnVsbD09bz8xOm8pfSksYTYocjYse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdjcodGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB2Nyh0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmwrMTYpLzExNixlPWlzTmFOKHRoaXMuYSk/dDp0K3RoaXMuYS81MDAsbj1pc05hTih0aGlzLmIpP3Q6dC10aGlzLmIvMjAwO3JldHVybiBuZXcgaTcoUDcoMy4xMzM4NTYxKihlPWg3Kk83KGUpKS0xLjYxNjg2NjcqKHQ9MSpPNyh0KSktLjQ5MDYxNDYqKG49YjcqTzcobikpKSxQNygtLjk3ODc2ODQqZSsxLjkxNjE0MTUqdCsuMDMzNDU0Km4pLFA3KC4wNzE5NDUzKmUtLjIyODk5MTQqdCsxLjQwNTI0MjcqbiksdGhpcy5vcGFjaXR5KX19KSksaTYoRDcsUzcsYTYocjYse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRDcodGhpcy5oLHRoaXMuYyx0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBENyh0aGlzLmgsdGhpcy5jLHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiBFNyh0aGlzKS5yZ2IoKX19KSk7dmFyIEk3PShmdW5jdGlvbiB0KGUpe3ZhciBuPShmdW5jdGlvbiBvKHQpe3JldHVybiAxPT0odD0rdCk/Tjc6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbi1lPyhmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gdD1NYXRoLnBvdyh0LG4pLGU9TWF0aC5wb3coZSxuKS10LG49MS9uLGZ1bmN0aW9uKG8pe3JldHVybiBNYXRoLnBvdyh0K28qZSxuKX19KShlLG4sdCk6UjcoaXNOYU4oZSk/bjplKX19KShlKTtmdW5jdGlvbiBpKHQsZSl7dmFyIG89bigodD1vNyh0KSkuciwoZT1vNyhlKSkuciksaT1uKHQuZyxlLmcpLGE9bih0LmIsZS5iKSxyPU43KHQub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5yPW8oZSksdC5nPWkoZSksdC5iPWEoZSksdC5vcGFjaXR5PXIoZSksdCsiIn19cmV0dXJuIGkuZ2FtbWE9dCxpfSkoMSksSDc9KGZ1bmN0aW9uIEw3KHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbixvLGk9ZS5sZW5ndGgsYT1uZXcgQXJyYXkoaSkscj1uZXcgQXJyYXkoaSkscz1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPGk7KytuKW89bzcoZVtuXSksYVtuXT1vLnJ8fDAscltuXT1vLmd8fDAsc1tuXT1vLmJ8fDA7cmV0dXJuIGE9dChhKSxyPXQocikscz10KHMpLG8ub3BhY2l0eT0xLGZ1bmN0aW9uKHQpe3JldHVybiBvLnI9YSh0KSxvLmc9cih0KSxvLmI9cyh0KSxvKyIifX19KSgoZnVuY3Rpb24gRjcodCl7dmFyIGU9dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIG89bjw9MD9uPTA6bj49MT8obj0xLGUtMSk6TWF0aC5mbG9vcihuKmUpLGk9dFtvXSxhPXRbbysxXTtyZXR1cm4oZnVuY3Rpb24gcih0LGUsbixvLGkpe3ZhciBhPXQqdCxyPWEqdDtyZXR1cm4oKDEtMyp0KzMqYS1yKSplKyg0LTYqYSszKnIpKm4rKDErMyp0KzMqYS0zKnIpKm8rcippKS82fSkoKG4tby9lKSplLG8+MD90W28tMV06MippLWEsaSxhLG88ZS0xP3RbbysyXToyKmEtaSl9fSkpO2Z1bmN0aW9uIEI3KHQsZSl7ZXx8KGU9W10pO3ZhciBuLG89dD9NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk6MCxpPWUuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24oYSl7Zm9yKG49MDtuPG87KytuKWlbbl09dFtuXSooMS1hKStlW25dKmE7cmV0dXJuIGl9fWZ1bmN0aW9uIFY3KHQsZSl7dmFyIG4sbz1lP2UubGVuZ3RoOjAsaT10P01hdGgubWluKG8sdC5sZW5ndGgpOjAsYT1uZXcgQXJyYXkoaSkscj1uZXcgQXJyYXkobyk7Zm9yKG49MDtuPGk7KytuKWFbbl09WjcodFtuXSxlW25dKTtmb3IoO248bzsrK24pcltuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3Iobj0wO248aTsrK24pcltuXT1hW25dKHQpO3JldHVybiByfX1mdW5jdGlvbiBqNyh0LGUpe3ZhciBuPW5ldyBEYXRlO3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24obyl7cmV0dXJuIG4uc2V0VGltZSh0KigxLW8pK2Uqbyksbn19ZnVuY3Rpb24gVTcodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiB0KigxLW4pK2Uqbn19ZnVuY3Rpb24gRzcodCxlKXt2YXIgbixvPXt9LGk9e307Zm9yKG4gaW4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e30pLG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fChlPXt9KSxlKW4gaW4gdD9vW25dPVo3KHRbbl0sZVtuXSk6aVtuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3IobiBpbiBvKWlbbl09b1tuXSh0KTtyZXR1cm4gaX19dmFyIFc3PS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyxZNz1uZXcgUmVnRXhwKFc3LnNvdXJjZSwiZyIpO2Z1bmN0aW9uIHE3KHQsZSl7dmFyIG4sbyxpLGE9VzcubGFzdEluZGV4PVk3Lmxhc3RJbmRleD0wLHI9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsobj1XNy5leGVjKHQpKSYmKG89WTcuZXhlYyhlKSk7KShpPW8uaW5kZXgpPmEmJihpPWUuc2xpY2UoYSxpKSxzW3JdP3Nbcl0rPWk6c1srK3JdPWkpLChuPW5bMF0pPT09KG89b1swXSk/c1tyXT9zW3JdKz1vOnNbKytyXT1vOihzWysrcl09bnVsbCxsLnB1c2goe2k6cix4OlU3KG4sbyl9KSksYT1ZNy5sYXN0SW5kZXg7cmV0dXJuIGE8ZS5sZW5ndGgmJihpPWUuc2xpY2UoYSksc1tyXT9zW3JdKz1pOnNbKytyXT1pKSxzLmxlbmd0aDwyP2xbMF0/KGZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpKyIifX0pKGxbMF0ueCk6KGZ1bmN0aW9uIGQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkoZSk6KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBuLG89MDtvPGU7KytvKXNbKG49bFtvXSkuaV09bi54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24gWjcodCxlKXt2YXIgbixvPXR5cGVvZiBlO3JldHVybiBudWxsPT1lfHwiYm9vbGVhbiI9PT1vP1I3KGUpOigibnVtYmVyIj09PW8/VTc6InN0cmluZyI9PT1vPyhuPSQ2KGUpKT8oZT1uLEk3KTpxNzplIGluc3RhbmNlb2YgJDY/STc6ZSBpbnN0YW5jZW9mIERhdGU/ajc6KGZ1bmN0aW9uIGkodCl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgRGF0YVZpZXcpfSkoZSk/Qjc6QXJyYXkuaXNBcnJheShlKT9WNzoiZnVuY3Rpb24iIT10eXBlb2YgZS52YWx1ZU9mJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZ3x8aXNOYU4oZSk/Rzc6VTcpKHQsZSl9ZnVuY3Rpb24gWDcodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKHQqKDEtbikrZSpuKX19dmFyIEs3LEo3LFE3LCQ3LHQ4PTE4MC9NYXRoLlBJLGU4PXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIG44KHQsZSxuLG8saSxhKXt2YXIgcixzLGw7cmV0dXJuKHI9TWF0aC5zcXJ0KHQqdCtlKmUpKSYmKHQvPXIsZS89ciksKGw9dCpuK2UqbykmJihuLT10Kmwsby09ZSpsKSwocz1NYXRoLnNxcnQobipuK28qbykpJiYobi89cyxvLz1zLGwvPXMpLHQqbzxlKm4mJih0PS10LGU9LWUsbD0tbCxyPS1yKSx7dHJhbnNsYXRlWDppLHRyYW5zbGF0ZVk6YSxyb3RhdGU6TWF0aC5hdGFuMihlLHQpKnQ4LHNrZXdYOk1hdGguYXRhbihsKSp0OCxzY2FsZVg6cixzY2FsZVk6c319ZnVuY3Rpb24gbzgodCxlLG4sbyl7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKGEscil7dmFyIHM9W10sbD1bXTtyZXR1cm4gYT10KGEpLHI9dChyKSwoZnVuY3Rpb24gYyh0LG8saSxhLHIscyl7aWYodCE9PWl8fG8hPT1hKXt2YXIgbD1yLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsZSxudWxsLG4pO3MucHVzaCh7aTpsLTQseDpVNyh0LGkpfSx7aTpsLTIseDpVNyhvLGEpfSl9ZWxzZShpfHxhKSYmci5wdXNoKCJ0cmFuc2xhdGUoIitpK2UrYStuKX0pKGEudHJhbnNsYXRlWCxhLnRyYW5zbGF0ZVksci50cmFuc2xhdGVYLHIudHJhbnNsYXRlWSxzLGwpLChmdW5jdGlvbiBkKHQsZSxuLGEpe3QhPT1lPyh0LWU+MTgwP2UrPTM2MDplLXQ+MTgwJiYodCs9MzYwKSxhLnB1c2goe2k6bi5wdXNoKGkobikrInJvdGF0ZSgiLG51bGwsbyktMix4OlU3KHQsZSl9KSk6ZSYmbi5wdXNoKGkobikrInJvdGF0ZSgiK2Urbyl9KShhLnJvdGF0ZSxyLnJvdGF0ZSxzLGwpLChmdW5jdGlvbiBwKHQsZSxuLGEpe3QhPT1lP2EucHVzaCh7aTpuLnB1c2goaShuKSsic2tld1goIixudWxsLG8pLTIseDpVNyh0LGUpfSk6ZSYmbi5wdXNoKGkobikrInNrZXdYKCIrZStvKX0pKGEuc2tld1gsci5za2V3WCxzLGwpLChmdW5jdGlvbiBtKHQsZSxuLG8sYSxyKXtpZih0IT09bnx8ZSE9PW8pe3ZhciBzPWEucHVzaChpKGEpKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTtyLnB1c2goe2k6cy00LHg6VTcodCxuKX0se2k6cy0yLHg6VTcoZSxvKX0pfWVsc2UgMT09PW4mJjE9PT1vfHxhLnB1c2goaShhKSsic2NhbGUoIituKyIsIitvKyIpIil9KShhLnNjYWxlWCxhLnNjYWxlWSxyLnNjYWxlWCxyLnNjYWxlWSxzLGwpLGE9cj1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPS0xLG89bC5sZW5ndGg7KytuPG87KXNbKGU9bFtuXSkuaV09ZS54KHQpO3JldHVybiBzLmpvaW4oIiIpfX19dmFyIGk4LGE4LHI4PW84KChmdW5jdGlvbiBzOCh0KXtyZXR1cm4ibm9uZSI9PT10P2U4OihLN3x8KEs3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLEo3PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxRNz1kb2N1bWVudC5kZWZhdWx0VmlldyksSzcuc3R5bGUudHJhbnNmb3JtPXQsdD1RNy5nZXRDb21wdXRlZFN0eWxlKEo3LmFwcGVuZENoaWxkKEs3KSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxKNy5yZW1vdmVDaGlsZChLNyksbjgoKyh0PXQuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSlbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0pLCJweCwgIiwicHgpIiwiZGVnKSIpLGw4PW84KChmdW5jdGlvbiBjOCh0KXtyZXR1cm4gbnVsbD09dD9lODooJDd8fCgkNz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSwkNy5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9JDcudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/bjgoKHQ9dC5tYXRyaXgpLmEsdC5iLHQuYyx0LmQsdC5lLHQuZik6ZTgpfSksIiwgIiwiKSIsIikiKSxkOD0oZnVuY3Rpb24gcDgodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIG89dCgoZT1kNyhlKSkuaCwobj1kNyhuKSkuaCksaT1ONyhlLnMsbi5zKSxhPU43KGUubCxuLmwpLHI9TjcoZS5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmg9byh0KSxlLnM9aSh0KSxlLmw9YSh0KSxlLm9wYWNpdHk9cih0KSxlKyIifX19KShUNyksbTg9KGZ1bmN0aW9uIHU4KHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBvPXQoKGU9UzcoZSkpLmgsKG49UzcobikpLmgpLGk9TjcoZS5jLG4uYyksYT1ONyhlLmwsbi5sKSxyPU43KGUub3BhY2l0eSxuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5oPW8odCksZS5jPWkodCksZS5sPWEodCksZS5vcGFjaXR5PXIodCksZSsiIn19fSkoVDcpLGY4PTAsZzg9MCxoOD0wLGI4PTAseTg9MCxfOD0wLEM4PSJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLE04PSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIHY4KCl7cmV0dXJuIHk4fHwoTTgoeDgpLHk4PUM4Lm5vdygpK184KX1mdW5jdGlvbiB4OCgpe3k4PTB9ZnVuY3Rpb24gTzgoKXt0aGlzLl9jYWxsPXRoaXMuX3RpbWU9dGhpcy5fbmV4dD1udWxsfWZ1bmN0aW9uIFA4KHQsZSxuKXt2YXIgbz1uZXcgTzg7cmV0dXJuIG8ucmVzdGFydCh0LGUsbiksb31mdW5jdGlvbiB3OCgpe3k4PShiOD1DOC5ub3coKSkrXzgsZjg9Zzg9MDt0cnl7IShmdW5jdGlvbiB0KCl7djgoKSwrK2Y4O2Zvcih2YXIgdCxlPWk4O2U7KSh0PXk4LWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS1mOH0pKCl9ZmluYWxseXtmOD0wLChmdW5jdGlvbiBlKCl7Zm9yKHZhciB0LGUsbj1pOCxvPTEvMDtuOyluLl9jYWxsPyhvPm4uX3RpbWUmJihvPW4uX3RpbWUpLHQ9bixuPW4uX25leHQpOihlPW4uX25leHQsbi5fbmV4dD1udWxsLG49dD90Ll9uZXh0PWU6aTg9ZSk7YTg9dCxTOChvKX0pKCkseTg9MH19ZnVuY3Rpb24gazgoKXt2YXIgdD1DOC5ub3coKSxlPXQtYjg7ZT4xZTMmJihfOC09ZSxiOD10KX1mdW5jdGlvbiBTOCh0KXtmOHx8KGc4JiYoZzg9Y2xlYXJUaW1lb3V0KGc4KSksdC15OD4yND8odDwxLzAmJihnOD1zZXRUaW1lb3V0KHc4LHQtQzgubm93KCktXzgpKSxoOCYmKGg4PWNsZWFySW50ZXJ2YWwoaDgpKSk6KGg4fHwoYjg9Qzgubm93KCksaDg9c2V0SW50ZXJ2YWwoazgsMWUzKSksZjg9MSxNOCh3OCkpKX1mdW5jdGlvbiBEOCh0LGUsbil7dmFyIG89bmV3IE84O3JldHVybiBvLnJlc3RhcnQoKGZ1bmN0aW9uKG4pe28uc3RvcCgpLHQobitlKX0pLGU9bnVsbD09ZT8wOitlLG4pLG99TzgucHJvdG90eXBlPVA4LnByb3RvdHlwZT17Y29uc3RydWN0b3I6TzgscmVzdGFydDpmdW5jdGlvbih0LGUsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtuPShudWxsPT1uP3Y4KCk6K24pKyhudWxsPT1lPzA6K2UpLHRoaXMuX25leHR8fGE4PT09dGhpc3x8KGE4P2E4Ll9uZXh0PXRoaXM6aTg9dGhpcyxhOD10aGlzKSx0aGlzLl9jYWxsPXQsdGhpcy5fdGltZT1uLFM4KCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLFM4KCkpfX07dmFyIEU4PUg1KCJzdGFydCIsImVuZCIsImNhbmNlbCIsImludGVycnVwdCIpLFI4PVtdO2Z1bmN0aW9uIEE4KHQsZSxuLG8saSxhKXt2YXIgcj10Ll9fdHJhbnNpdGlvbjtpZihyKXtpZihuIGluIHIpcmV0dXJufWVsc2UgdC5fX3RyYW5zaXRpb249e307IShmdW5jdGlvbiBzKHQsZSxuKXt2YXIgbyxpPXQuX190cmFuc2l0aW9uO2Z1bmN0aW9uIGEobCl7dmFyIGMsZCxwLG07aWYoMSE9PW4uc3RhdGUpcmV0dXJuIHMoKTtmb3IoYyBpbiBpKWlmKChtPWlbY10pLm5hbWU9PT1uLm5hbWUpe2lmKDM9PT1tLnN0YXRlKXJldHVybiBEOChhKTs0PT09bS5zdGF0ZT8obS5zdGF0ZT02LG0udGltZXIuc3RvcCgpLG0ub24uY2FsbCgiaW50ZXJydXB0Iix0LHQuX19kYXRhX18sbS5pbmRleCxtLmdyb3VwKSxkZWxldGUgaVtjXSk6K2M8ZSYmKG0uc3RhdGU9NixtLnRpbWVyLnN0b3AoKSxtLm9uLmNhbGwoImNhbmNlbCIsdCx0Ll9fZGF0YV9fLG0uaW5kZXgsbS5ncm91cCksZGVsZXRlIGlbY10pfWlmKEQ4KChmdW5jdGlvbigpezM9PT1uLnN0YXRlJiYobi5zdGF0ZT00LG4udGltZXIucmVzdGFydChyLG4uZGVsYXksbi50aW1lKSxyKGwpKX0pKSxuLnN0YXRlPTIsbi5vbi5jYWxsKCJzdGFydCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksMj09PW4uc3RhdGUpe2ZvcihuLnN0YXRlPTMsbz1uZXcgQXJyYXkocD1uLnR3ZWVuLmxlbmd0aCksYz0wLGQ9LTE7YzxwOysrYykobT1uLnR3ZWVuW2NdLnZhbHVlLmNhbGwodCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCkpJiYob1srK2RdPW0pO28ubGVuZ3RoPWQrMX19ZnVuY3Rpb24gcihlKXtmb3IodmFyIGk9ZTxuLmR1cmF0aW9uP24uZWFzZS5jYWxsKG51bGwsZS9uLmR1cmF0aW9uKToobi50aW1lci5yZXN0YXJ0KHMpLG4uc3RhdGU9NSwxKSxhPS0xLHI9by5sZW5ndGg7KythPHI7KW9bYV0uY2FsbCh0LGkpOzU9PT1uLnN0YXRlJiYobi5vbi5jYWxsKCJlbmQiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLHMoKSl9ZnVuY3Rpb24gcygpe2Zvcih2YXIgbyBpbiBuLnN0YXRlPTYsbi50aW1lci5zdG9wKCksZGVsZXRlIGlbZV0saSlyZXR1cm47ZGVsZXRlIHQuX190cmFuc2l0aW9ufWlbZV09bixuLnRpbWVyPVA4KChmdW5jdGlvbiBsKHQpe24uc3RhdGU9MSxuLnRpbWVyLnJlc3RhcnQoYSxuLmRlbGF5LG4udGltZSksbi5kZWxheTw9dCYmYSh0LW4uZGVsYXkpfSksMCxuLnRpbWUpfSkodCxuLHtuYW1lOmUsaW5kZXg6byxncm91cDppLG9uOkU4LHR3ZWVuOlI4LHRpbWU6YS50aW1lLGRlbGF5OmEuZGVsYXksZHVyYXRpb246YS5kdXJhdGlvbixlYXNlOmEuZWFzZSx0aW1lcjpudWxsLHN0YXRlOjB9KX1mdW5jdGlvbiBUOCh0LGUpe3ZhciBuPXo4KHQsZSk7aWYobi5zdGF0ZT4wKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgc2NoZWR1bGVkIik7cmV0dXJuIG59ZnVuY3Rpb24gTjgodCxlKXt2YXIgbj16OCh0LGUpO2lmKG4uc3RhdGU+Myl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHJ1bm5pbmciKTtyZXR1cm4gbn1mdW5jdGlvbiB6OCh0LGUpe3ZhciBuPXQuX190cmFuc2l0aW9uO2lmKCFufHwhKG49bltlXSkpdGhyb3cgbmV3IEVycm9yKCJ0cmFuc2l0aW9uIG5vdCBmb3VuZCIpO3JldHVybiBufWZ1bmN0aW9uIEk4KHQsZSl7dmFyIG4sbyxpLGE9dC5fX3RyYW5zaXRpb24scj0hMDtpZihhKXtmb3IoaSBpbiBlPW51bGw9PWU/bnVsbDplKyIiLGEpKG49YVtpXSkubmFtZT09PWU/KG89bi5zdGF0ZT4yJiZuLnN0YXRlPDUsbi5zdGF0ZT02LG4udGltZXIuc3RvcCgpLG4ub24uY2FsbChvPyJpbnRlcnJ1cHQiOiJjYW5jZWwiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLGRlbGV0ZSBhW2ldKTpyPSExO3ImJmRlbGV0ZSB0Ll9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gSDgodCxlKXt2YXIgbixvO3JldHVybiBmdW5jdGlvbigpe3ZhciBpPU44KHRoaXMsdCksYT1pLnR3ZWVuO2lmKGEhPT1uKWZvcih2YXIgcj0wLHM9KG89bj1hKS5sZW5ndGg7cjxzOysrcilpZihvW3JdLm5hbWU9PT1lKXsobz1vLnNsaWNlKCkpLnNwbGljZShyLDEpO2JyZWFrfWkudHdlZW49b319ZnVuY3Rpb24gRjgodCxlLG4pe3ZhciBvLGk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPU44KHRoaXMsdCkscj1hLnR3ZWVuO2lmKHIhPT1vKXtpPShvPXIpLnNsaWNlKCk7Zm9yKHZhciBzPXtuYW1lOmUsdmFsdWU6bn0sbD0wLGM9aS5sZW5ndGg7bDxjOysrbClpZihpW2xdLm5hbWU9PT1lKXtpW2xdPXM7YnJlYWt9bD09PWMmJmkucHVzaChzKX1hLnR3ZWVuPWl9fWZ1bmN0aW9uIEw4KHQsZSxuKXt2YXIgbz10Ll9pZDtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbigpe3ZhciB0PU44KHRoaXMsbyk7KHQudmFsdWV8fCh0LnZhbHVlPXt9KSlbZV09bi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSksZnVuY3Rpb24odCl7cmV0dXJuIHo4KHQsbykudmFsdWVbZV19fWZ1bmN0aW9uIEI4KHQsZSl7dmFyIG47cmV0dXJuKCJudW1iZXIiPT10eXBlb2YgZT9VNzplIGluc3RhbmNlb2YgJDY/STc6KG49JDYoZSkpPyhlPW4sSTcpOnE3KSh0LGUpfWZ1bmN0aW9uIFY4KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiBqOCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIFU4KHQsZSxuKXt2YXIgbyxpLGE9bisiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10aGlzLmdldEF0dHJpYnV0ZSh0KTtyZXR1cm4gcj09PWE/bnVsbDpyPT09bz9pOmk9ZShvPXIsbil9fWZ1bmN0aW9uIEc4KHQsZSxuKXt2YXIgbyxpLGE9bisiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk7cmV0dXJuIHI9PT1hP251bGw6cj09PW8/aTppPWUobz1yLG4pfX1mdW5jdGlvbiBXOCh0LGUsbil7dmFyIG8saSxhO3JldHVybiBmdW5jdGlvbigpe3ZhciByLHMsbD1uKHRoaXMpO2lmKG51bGwhPWwpcmV0dXJuKHI9dGhpcy5nZXRBdHRyaWJ1dGUodCkpPT09KHM9bCsiIik/bnVsbDpyPT09byYmcz09PWk/YTooaT1zLGE9ZShvPXIsbCkpO3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiBZOCh0LGUsbil7dmFyIG8saSxhO3JldHVybiBmdW5jdGlvbigpe3ZhciByLHMsbD1uKHRoaXMpO2lmKG51bGwhPWwpcmV0dXJuKHI9dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpKT09PShzPWwrIiIpP251bGw6cj09PW8mJnM9PT1pP2E6KGk9cyxhPWUobz1yLGwpKTt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIHE4KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RoaXMuc2V0QXR0cmlidXRlKHQsZS5jYWxsKHRoaXMsbikpfX1mdW5jdGlvbiBaOCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlLmNhbGwodGhpcyxuKSl9fWZ1bmN0aW9uIFg4KHQsZSl7dmFyIG4sbztmdW5jdGlvbiBpKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGkhPT1vJiYobj0obz1pKSYmWjgodCxpKSksbn1yZXR1cm4gaS5fdmFsdWU9ZSxpfWZ1bmN0aW9uIEs4KHQsZSl7dmFyIG4sbztmdW5jdGlvbiBpKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGkhPT1vJiYobj0obz1pKSYmcTgodCxpKSksbn1yZXR1cm4gaS5fdmFsdWU9ZSxpfWZ1bmN0aW9uIEo4KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7VDgodGhpcyx0KS5kZWxheT0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIFE4KHQsZSl7cmV0dXJuIGU9K2UsZnVuY3Rpb24oKXtUOCh0aGlzLHQpLmRlbGF5PWV9fWZ1bmN0aW9uICQ4KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7TjgodGhpcyx0KS5kdXJhdGlvbj0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIHQ5KHQsZSl7cmV0dXJuIGU9K2UsZnVuY3Rpb24oKXtOOCh0aGlzLHQpLmR1cmF0aW9uPWV9fWZ1bmN0aW9uIGU5KHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe044KHRoaXMsdCkuZWFzZT1lfX1mdW5jdGlvbiBuOSh0LGUsbil7dmFyIG8saSxhPShmdW5jdGlvbiByKHQpe3JldHVybih0KyIiKS50cmltKCkuc3BsaXQoL158XHMrLykuZXZlcnkoKGZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhPZigiLiIpO3JldHVybiBlPj0wJiYodD10LnNsaWNlKDAsZSkpLCF0fHwic3RhcnQiPT09dH0pKX0pKGUpP1Q4Ok44O3JldHVybiBmdW5jdGlvbigpe3ZhciByPWEodGhpcyx0KSxzPXIub247cyE9PW8mJihpPShvPXMpLmNvcHkoKSkub24oZSxuKSxyLm9uPWl9fXZhciBvOT1LNC5wcm90b3R5cGUuY29uc3RydWN0b3I7ZnVuY3Rpb24gaTkodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19ZnVuY3Rpb24gYTkodCxlLG4pe3JldHVybiBmdW5jdGlvbihvKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsZS5jYWxsKHRoaXMsbyksbil9fWZ1bmN0aW9uIHI5KHQsZSxuKXt2YXIgbyxpO2Z1bmN0aW9uIGEoKXt2YXIgYT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYSE9PWkmJihvPShpPWEpJiZhOSh0LGEsbikpLG99cmV0dXJuIGEuX3ZhbHVlPWUsYX1mdW5jdGlvbiBzOSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dGhpcy50ZXh0Q29udGVudD10LmNhbGwodGhpcyxlKX19ZnVuY3Rpb24gbDkodCl7dmFyIGUsbjtmdW5jdGlvbiBvKCl7dmFyIG89dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG8hPT1uJiYoZT0obj1vKSYmczkobykpLGV9cmV0dXJuIG8uX3ZhbHVlPXQsb312YXIgYzk9MDtmdW5jdGlvbiBkOSh0LGUsbixvKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWUsdGhpcy5fbmFtZT1uLHRoaXMuX2lkPW99ZnVuY3Rpb24gcDkoKXtyZXR1cm4rK2M5fXZhciBtOT1LNC5wcm90b3R5cGU7ZDkucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpkOSxzZWxlY3Q6ZnVuY3Rpb24gdTkodCl7dmFyIGU9dGhpcy5fbmFtZSxuPXRoaXMuX2lkOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1YNSh0KSk7Zm9yKHZhciBvPXRoaXMuX2dyb3VwcyxpPW8ubGVuZ3RoLGE9bmV3IEFycmF5KGkpLHI9MDtyPGk7KytyKWZvcih2YXIgcyxsLGM9b1tyXSxkPWMubGVuZ3RoLHA9YVtyXT1uZXcgQXJyYXkoZCksbT0wO208ZDsrK20pKHM9Y1ttXSkmJihsPXQuY2FsbChzLHMuX19kYXRhX18sbSxjKSkmJigiX19kYXRhX18iaW4gcyYmKGwuX19kYXRhX189cy5fX2RhdGFfXykscFttXT1sLEE4KHBbbV0sZSxuLG0scCx6OChzLG4pKSk7cmV0dXJuIG5ldyBkOShhLHRoaXMuX3BhcmVudHMsZSxuKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIGY5KHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9SjUodCkpO2Zvcih2YXIgbz10aGlzLl9ncm91cHMsaT1vLmxlbmd0aCxhPVtdLHI9W10scz0wO3M8aTsrK3MpZm9yKHZhciBsLGM9b1tzXSxkPWMubGVuZ3RoLHA9MDtwPGQ7KytwKWlmKGw9Y1twXSl7Zm9yKHZhciBtLHU9dC5jYWxsKGwsbC5fX2RhdGFfXyxwLGMpLGY9ejgobCxuKSxnPTAsaD11Lmxlbmd0aDtnPGg7KytnKShtPXVbZ10pJiZBOChtLGUsbixnLHUsZik7YS5wdXNoKHUpLHIucHVzaChsKX1yZXR1cm4gbmV3IGQ5KGEscixlLG4pfSxmaWx0ZXI6ZnVuY3Rpb24gZzkodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVE1KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsbz1uZXcgQXJyYXkobiksaT0wO2k8bjsrK2kpZm9yKHZhciBhLHI9ZVtpXSxzPXIubGVuZ3RoLGw9b1tpXT1bXSxjPTA7YzxzOysrYykoYT1yW2NdKSYmdC5jYWxsKGEsYS5fX2RhdGFfXyxjLHIpJiZsLnB1c2goYSk7cmV0dXJuIG5ldyBkOShvLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LG1lcmdlOmZ1bmN0aW9uIGg5KHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsbz1lLmxlbmd0aCxpPU1hdGgubWluKG8sbi5sZW5ndGgpLGE9bmV3IEFycmF5KG8pLHI9MDtyPGk7KytyKWZvcih2YXIgcyxsPWVbcl0sYz1uW3JdLGQ9bC5sZW5ndGgscD1hW3JdPW5ldyBBcnJheShkKSxtPTA7bTxkOysrbSkocz1sW21dfHxjW21dKSYmKHBbbV09cyk7Zm9yKDtyPG87KytyKWFbcl09ZVtyXTtyZXR1cm4gbmV3IGQ5KGEsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uIGI5KCl7cmV0dXJuIG5ldyBvOSh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24geTkoKXtmb3IodmFyIHQ9dGhpcy5fbmFtZSxlPXRoaXMuX2lkLG49cDkoKSxvPXRoaXMuX2dyb3VwcyxpPW8ubGVuZ3RoLGE9MDthPGk7KythKWZvcih2YXIgcixzPW9bYV0sbD1zLmxlbmd0aCxjPTA7YzxsOysrYylpZihyPXNbY10pe3ZhciBkPXo4KHIsZSk7QTgocix0LG4sYyxzLHt0aW1lOmQudGltZStkLmRlbGF5K2QuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjpkLmR1cmF0aW9uLGVhc2U6ZC5lYXNlfSl9cmV0dXJuIG5ldyBkOShvLHRoaXMuX3BhcmVudHMsdCxuKX0sY2FsbDptOS5jYWxsLG5vZGVzOm05Lm5vZGVzLG5vZGU6bTkubm9kZSxzaXplOm05LnNpemUsZW1wdHk6bTkuZW1wdHksZWFjaDptOS5lYWNoLG9uOmZ1bmN0aW9uIF85KHQsZSl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj96OCh0aGlzLm5vZGUoKSxuKS5vbi5vbih0KTp0aGlzLmVhY2gobjkobix0LGUpKX0sYXR0cjpmdW5jdGlvbiBDOSh0LGUpe3ZhciBuPUc1KHQpLG89InRyYW5zZm9ybSI9PT1uP2w4OkI4O3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LCJmdW5jdGlvbiI9PXR5cGVvZiBlPyhuLmxvY2FsP1k4Olc4KShuLG8sTDgodGhpcywiYXR0ci4iK3QsZSkpOm51bGw9PWU/KG4ubG9jYWw/ajg6VjgpKG4pOihuLmxvY2FsP0c4OlU4KShuLG8sZSkpfSxhdHRyVHdlZW46ZnVuY3Rpb24gTTkodCxlKXt2YXIgbj0iYXR0ci4iK3Q7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihuPXRoaXMudHdlZW4obikpJiZuLl92YWx1ZTtpZihudWxsPT1lKXJldHVybiB0aGlzLnR3ZWVuKG4sbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3ZhciBvPUc1KHQpO3JldHVybiB0aGlzLnR3ZWVuKG4sKG8ubG9jYWw/WDg6SzgpKG8sZSkpfSxzdHlsZTpmdW5jdGlvbiB2OSh0LGUsbil7dmFyIG89InRyYW5zZm9ybSI9PSh0Kz0iIik/cjg6Qjg7cmV0dXJuIG51bGw9PWU/dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIGkodCxlKXt2YXIgbixvLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9ZjQodGhpcyx0KSxyPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLGY0KHRoaXMsdCkpO3JldHVybiBhPT09cj9udWxsOmE9PT1uJiZyPT09bz9pOmk9ZShuPWEsbz1yKX19KSh0LG8pKS5vbigiZW5kLnN0eWxlLiIrdCxpOSh0KSk6ImZ1bmN0aW9uIj09dHlwZW9mIGU/dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHIodCxlLG4pe3ZhciBvLGksYTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1mNCh0aGlzLHQpLHM9bih0aGlzKSxsPXMrIiI7cmV0dXJuIG51bGw9PXMmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLGw9cz1mNCh0aGlzLHQpKSxyPT09bD9udWxsOnI9PT1vJiZsPT09aT9hOihpPWwsYT1lKG89cixzKSl9fSkodCxvLEw4KHRoaXMsInN0eWxlLiIrdCxlKSkpLmVhY2goKGZ1bmN0aW9uIGEodCxlKXt2YXIgbixvLGksYSxyPSJzdHlsZS4iK2Uscz0iZW5kLiIrcjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD1OOCh0aGlzLHQpLGM9bC5vbixkPW51bGw9PWwudmFsdWVbcl0/YXx8KGE9aTkoZSkpOnZvaWQgMDtjPT09biYmaT09PWR8fChvPShuPWMpLmNvcHkoKSkub24ocyxpPWQpLGwub249b319KSh0aGlzLl9pZCx0KSk6dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBvLGksYT1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciByPWY0KHRoaXMsdCk7cmV0dXJuIHI9PT1hP251bGw6cj09PW8/aTppPWUobz1yLG4pfX0pKHQsbyxlKSxuKS5vbigiZW5kLnN0eWxlLiIrdCxudWxsKX0sc3R5bGVUd2VlbjpmdW5jdGlvbiB4OSh0LGUsbil7dmFyIG89InN0eWxlLiIrKHQrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKG89dGhpcy50d2VlbihvKSkmJm8uX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4obyxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4obyxyOSh0LGUsbnVsbD09bj8iIjpuKSl9LHRleHQ6ZnVuY3Rpb24gTzkodCl7cmV0dXJuIHRoaXMudHdlZW4oInRleHQiLCJmdW5jdGlvbiI9PXR5cGVvZiB0PyhmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQodGhpcyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9fSkoTDgodGhpcywidGV4dCIsdCkpOihmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KShudWxsPT10PyIiOnQrIiIpKX0sdGV4dFR3ZWVuOmZ1bmN0aW9uIFA5KHQpe3ZhciBlPSJ0ZXh0IjtpZihhcmd1bWVudHMubGVuZ3RoPDEpcmV0dXJuKGU9dGhpcy50d2VlbihlKSkmJmUuX3ZhbHVlO2lmKG51bGw9PXQpcmV0dXJuIHRoaXMudHdlZW4oZSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oZSxsOSh0KSl9LHJlbW92ZTpmdW5jdGlvbiB3OSgpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtuIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19KSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiBrOSh0LGUpe3ZhciBuPXRoaXMuX2lkO2lmKHQrPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBvLGk9ejgodGhpcy5ub2RlKCksbikudHdlZW4sYT0wLHI9aS5sZW5ndGg7YTxyOysrYSlpZigobz1pW2FdKS5uYW1lPT09dClyZXR1cm4gby52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP0g4OkY4KShuLHQsZSkpfSxkZWxheTpmdW5jdGlvbiBTOSh0KXt2YXIgZT10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiB0P0o4OlE4KShlLHQpKTp6OCh0aGlzLm5vZGUoKSxlKS5kZWxheX0sZHVyYXRpb246ZnVuY3Rpb24gRDkodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD8kODp0OSkoZSx0KSk6ejgodGhpcy5ub2RlKCksZSkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24gRTkodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKGU5KGUsdCkpOno4KHRoaXMubm9kZSgpLGUpLmVhc2V9LGVuZDpmdW5jdGlvbiBSOSgpe3ZhciB0LGUsbj10aGlzLG89bi5faWQsaT1uLnNpemUoKTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGEscil7dmFyIHM9e3ZhbHVlOnJ9LGw9e3ZhbHVlOmZ1bmN0aW9uKCl7MD09LS1pJiZhKCl9fTtuLmVhY2goKGZ1bmN0aW9uKCl7dmFyIG49TjgodGhpcyxvKSxpPW4ub247aSE9PXQmJigoZT0odD1pKS5jb3B5KCkpLl8uY2FuY2VsLnB1c2gocyksZS5fLmludGVycnVwdC5wdXNoKHMpLGUuXy5lbmQucHVzaChsKSksbi5vbj1lfSkpfSkpfX07dmFyIEE5PXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpmdW5jdGlvbiBUOSh0KXtyZXR1cm4oKHQqPTIpPD0xP3QqdCp0Oih0LT0yKSp0KnQrMikvMn19O2Z1bmN0aW9uIE45KHQsZSl7Zm9yKHZhciBuOyEobj10Ll9fdHJhbnNpdGlvbil8fCEobj1uW2VdKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIEE5LnRpbWU9djgoKSxBOTtyZXR1cm4gbn1mdW5jdGlvbiB6OSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gSTkodCxlLG4pe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPWUsdGhpcy5zZWxlY3Rpb249bn1mdW5jdGlvbiBIOSgpe0w0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIEY5KCl7TDQucHJldmVudERlZmF1bHQoKSxMNC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1LNC5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0aW9uIEw5KHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7STgodGhpcyx0KX0pKX0sSzQucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24gQjkodCl7dmFyIGUsbjt0IGluc3RhbmNlb2YgZDk/KGU9dC5faWQsdD10Ll9uYW1lKTooZT1wOSgpLChuPUE5KS50aW1lPXY4KCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBvPXRoaXMuX2dyb3VwcyxpPW8ubGVuZ3RoLGE9MDthPGk7KythKWZvcih2YXIgcixzPW9bYV0sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykocj1zW2NdKSYmQTgocix0LGUsYyxzLG58fE45KHIsZSkpO3JldHVybiBuZXcgZDkobyx0aGlzLl9wYXJlbnRzLHQsZSl9O3ZhciBWOT17bmFtZToiZHJhZyJ9LGo5PXtuYW1lOiJzcGFjZSJ9LFU5PXtuYW1lOiJoYW5kbGUifSxHOT17bmFtZToiY2VudGVyIn07ZnVuY3Rpb24gVzkodCl7cmV0dXJuWyt0WzBdLCt0WzFdXX1mdW5jdGlvbiBZOSh0KXtyZXR1cm5bVzkodFswXSksVzkodFsxXSldfWZ1bmN0aW9uIHE5KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4oZnVuY3Rpb24gbih0LGUsbyl7YXJndW1lbnRzLmxlbmd0aDwzJiYobz1lLGU9UTQoKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciBpLGE9MCxyPWU/ZS5sZW5ndGg6MDthPHI7KythKWlmKChpPWVbYV0pLmlkZW50aWZpZXI9PT1vKXJldHVybiAkNCh0LGkpO3JldHVybiBudWxsfSkoZSxMNC50b3VjaGVzLHQpfX12YXIgWjk9e25hbWU6IngiLGhhbmRsZXM6WyJ3IiwiZSJdLm1hcChldHQpLGlucHV0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/bnVsbDpbWyt0WzBdLGVbMF1bMV1dLFsrdFsxXSxlWzFdWzFdXV19LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdCYmW3RbMF1bMF0sdFsxXVswXV19fSxYOT17bmFtZToieSIsaGFuZGxlczpbIm4iLCJzIl0ubWFwKGV0dCksaW5wdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD9udWxsOltbZVswXVswXSwrdFswXV0sW2VbMV1bMF0sK3RbMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVsxXSx0WzFdWzFdXX19LEs5PXtvdmVybGF5OiJjcm9zc2hhaXIiLHNlbGVjdGlvbjoibW92ZSIsbjoibnMtcmVzaXplIixlOiJldy1yZXNpemUiLHM6Im5zLXJlc2l6ZSIsdzoiZXctcmVzaXplIixudzoibndzZS1yZXNpemUiLG5lOiJuZXN3LXJlc2l6ZSIsc2U6Im53c2UtcmVzaXplIixzdzoibmVzdy1yZXNpemUifSxKOT17ZToidyIsdzoiZSIsbnc6Im5lIixuZToibnciLHNlOiJzdyIsc3c6InNlIn0sUTk9e246InMiLHM6Im4iLG53OiJzdyIsbmU6InNlIixzZToibmUiLHN3OiJudyJ9LCQ5PXtvdmVybGF5OjEsc2VsZWN0aW9uOjEsbjpudWxsLGU6MSxzOm51bGwsdzotMSxudzotMSxuZToxLHNlOjEsc3c6LTF9LHR0dD17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46LTEsZTpudWxsLHM6MSx3Om51bGwsbnc6LTEsbmU6LTEsc2U6MSxzdzoxfTtmdW5jdGlvbiBldHQodCl7cmV0dXJue3R5cGU6dH19ZnVuY3Rpb24gbnR0KCl7cmV0dXJuIUw0LmN0cmxLZXkmJiFMNC5idXR0b259ZnVuY3Rpb24gb3R0KCl7dmFyIHQ9dGhpcy5vd25lclNWR0VsZW1lbnR8fHRoaXM7cmV0dXJuIHQuaGFzQXR0cmlidXRlKCJ2aWV3Qm94Iik/W1sodD10LnZpZXdCb3guYmFzZVZhbCkueCx0LnldLFt0LngrdC53aWR0aCx0LnkrdC5oZWlnaHRdXTpbWzAsMF0sW3Qud2lkdGguYmFzZVZhbC52YWx1ZSx0LmhlaWdodC5iYXNlVmFsLnZhbHVlXV19ZnVuY3Rpb24gaXR0KCl7cmV0dXJuIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50c3x8Im9udG91Y2hzdGFydCJpbiB0aGlzfWZ1bmN0aW9uIGF0dCh0KXtmb3IoOyF0Ll9fYnJ1c2g7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gdC5fX2JydXNofWZ1bmN0aW9uIHJ0dCh0KXtyZXR1cm4gdFswXVswXT09PXRbMV1bMF18fHRbMF1bMV09PT10WzFdWzFdfXZhciBzdHQ9TWF0aC5QSSxsdHQ9MipzdHQsY3R0PTFlLTYsZHR0PWx0dC1jdHQ7ZnVuY3Rpb24gcHR0KCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gbXR0KCl7cmV0dXJuIG5ldyBwdHR9cHR0LnByb3RvdHlwZT1tdHQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpwdHQsbW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJMIisodGhpcy5feDE9K3QpKyIsIisodGhpcy5feTE9K2UpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLG8pe3RoaXMuXys9IlEiKyArdCsiLCIrICtlKyIsIisodGhpcy5feDE9K24pKyIsIisodGhpcy5feTE9K28pfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLG8saSxhKXt0aGlzLl8rPSJDIisgK3QrIiwiKyArZSsiLCIrICtuKyIsIisgK28rIiwiKyh0aGlzLl94MT0raSkrIiwiKyh0aGlzLl95MT0rYSl9LGFyY1RvOmZ1bmN0aW9uKHQsZSxuLG8saSl7dmFyIGE9dGhpcy5feDEscj10aGlzLl95MSxzPShuPStuKS0odD0rdCksbD0obz0rbyktKGU9K2UpLGM9YS10LGQ9ci1lLHA9YypjK2QqZDtpZigoaT0raSk8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIitpKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSk7ZWxzZSBpZihwPmN0dClpZihNYXRoLmFicyhkKnMtbCpjKT5jdHQmJmkpe3ZhciBtPW4tYSx1PW8tcixmPXMqcytsKmwsZz1tKm0rdSp1LGg9TWF0aC5zcXJ0KGYpLGI9TWF0aC5zcXJ0KHApLHk9aSpNYXRoLnRhbigoc3R0LU1hdGguYWNvcygoZitwLWcpLygyKmgqYikpKS8yKSxfPXkvYixDPXkvaDtNYXRoLmFicyhfLTEpPmN0dCYmKHRoaXMuXys9IkwiKyh0K18qYykrIiwiKyhlK18qZCkpLHRoaXMuXys9IkEiK2krIiwiK2krIiwwLDAsIisgKyhkKm0+Yyp1KSsiLCIrKHRoaXMuX3gxPXQrQypzKSsiLCIrKHRoaXMuX3kxPWUrQypsKX1lbHNlIHRoaXMuXys9IkwiKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPWUpfSxhcmM6ZnVuY3Rpb24odCxlLG4sbyxpLGEpe3Q9K3QsZT0rZSxhPSEhYTt2YXIgcj0obj0rbikqTWF0aC5jb3Mobykscz1uKk1hdGguc2luKG8pLGw9dCtyLGM9ZStzLGQ9MV5hLHA9YT9vLWk6aS1vO2lmKG48MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIituKTtudWxsPT09dGhpcy5feDE/dGhpcy5fKz0iTSIrbCsiLCIrYzooTWF0aC5hYnModGhpcy5feDEtbCk+Y3R0fHxNYXRoLmFicyh0aGlzLl95MS1jKT5jdHQpJiYodGhpcy5fKz0iTCIrbCsiLCIrYyksbiYmKHA8MCYmKHA9cCVsdHQrbHR0KSxwPmR0dD90aGlzLl8rPSJBIituKyIsIituKyIsMCwxLCIrZCsiLCIrKHQtcikrIiwiKyhlLXMpKyJBIituKyIsIituKyIsMCwxLCIrZCsiLCIrKHRoaXMuX3gxPWwpKyIsIisodGhpcy5feTE9Yyk6cD5jdHQmJih0aGlzLl8rPSJBIituKyIsIituKyIsMCwiKyArKHA+PXN0dCkrIiwiK2QrIiwiKyh0aGlzLl94MT10K24qTWF0aC5jb3MoaSkpKyIsIisodGhpcy5feTE9ZStuKk1hdGguc2luKGkpKSkpfSxyZWN0OmZ1bmN0aW9uKHQsZSxuLG8pe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rZSkrImgiKyArbisidiIrICtvKyJoIistbisiWiJ9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX319O3ZhciB1dHQ9IiQiO2Z1bmN0aW9uIGZ0dCgpe31mdW5jdGlvbiBndHQodCxlKXt2YXIgbj1uZXcgZnR0O2lmKHQgaW5zdGFuY2VvZiBmdHQpdC5lYWNoKChmdW5jdGlvbih0LGUpe24uc2V0KGUsdCl9KSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgbyxpPS0xLGE9dC5sZW5ndGg7aWYobnVsbD09ZSlmb3IoOysraTxhOyluLnNldChpLHRbaV0pO2Vsc2UgZm9yKDsrK2k8YTspbi5zZXQoZShvPXRbaV0saSx0KSxvKX1lbHNlIGlmKHQpZm9yKHZhciByIGluIHQpbi5zZXQocix0W3JdKTtyZXR1cm4gbn1mdW5jdGlvbiBodHQoKXt9ZnR0LnByb3RvdHlwZT1ndHQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpmdHQsaGFzOmZ1bmN0aW9uKHQpe3JldHVybiB1dHQrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbdXR0K3RdfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpc1t1dHQrdF09ZSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dXR0K3Q7cmV0dXJuIGUgaW4gdGhpcyYmZGVsZXRlIHRoaXNbZV19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PXV0dCYmZGVsZXRlIHRoaXNbdF19LGtleXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09dXR0JiZ0LnB1c2goZS5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT11dHQmJnQucHVzaCh0aGlzW2VdKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT11dHQmJnQucHVzaCh7a2V5OmUuc2xpY2UoMSksdmFsdWU6dGhpc1tlXX0pO3JldHVybiB0fSxzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9MDtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09dXR0JiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYodFswXT09PXV0dClyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09dXR0JiZ0KHRoaXNbZV0sZS5zbGljZSgxKSx0aGlzKX19O3ZhciBidHQ9Z3R0LnByb3RvdHlwZTtmdW5jdGlvbiB5dHQodCxlKXtpZigobj0odD1lP3QudG9FeHBvbmVudGlhbChlLTEpOnQudG9FeHBvbmVudGlhbCgpKS5pbmRleE9mKCJlIikpPDApcmV0dXJuIG51bGw7dmFyIG4sbz10LnNsaWNlKDAsbik7cmV0dXJuW28ubGVuZ3RoPjE/b1swXStvLnNsaWNlKDIpOm8sK3Quc2xpY2UobisxKV19ZnVuY3Rpb24gX3R0KHQpe3JldHVybih0PXl0dChNYXRoLmFicyh0KSkpP3RbMV06TmFOfWh0dC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmh0dCxoYXM6YnR0LmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbdXR0Kyh0Kz0iIildPXQsdGhpc30scmVtb3ZlOmJ0dC5yZW1vdmUsY2xlYXI6YnR0LmNsZWFyLHZhbHVlczpidHQua2V5cyxzaXplOmJ0dC5zaXplLGVtcHR5OmJ0dC5lbXB0eSxlYWNoOmJ0dC5lYWNofTt2YXIgQ3R0LE10dD0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiB2dHQodCl7aWYoIShlPU10dC5leGVjKHQpKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZm9ybWF0OiAiK3QpO3ZhciBlO3JldHVybiBuZXcgeHR0KHtmaWxsOmVbMV0sYWxpZ246ZVsyXSxzaWduOmVbM10sc3ltYm9sOmVbNF0semVybzplWzVdLHdpZHRoOmVbNl0sY29tbWE6ZVs3XSxwcmVjaXNpb246ZVs4XSYmZVs4XS5zbGljZSgxKSx0cmltOmVbOV0sdHlwZTplWzEwXX0pfWZ1bmN0aW9uIHh0dCh0KXt0aGlzLmZpbGw9dm9pZCAwPT09dC5maWxsPyIgIjp0LmZpbGwrIiIsdGhpcy5hbGlnbj12b2lkIDA9PT10LmFsaWduPyI+Ijp0LmFsaWduKyIiLHRoaXMuc2lnbj12b2lkIDA9PT10LnNpZ24/Ii0iOnQuc2lnbisiIix0aGlzLnN5bWJvbD12b2lkIDA9PT10LnN5bWJvbD8iIjp0LnN5bWJvbCsiIix0aGlzLnplcm89ISF0Lnplcm8sdGhpcy53aWR0aD12b2lkIDA9PT10LndpZHRoP3ZvaWQgMDordC53aWR0aCx0aGlzLmNvbW1hPSEhdC5jb21tYSx0aGlzLnByZWNpc2lvbj12b2lkIDA9PT10LnByZWNpc2lvbj92b2lkIDA6K3QucHJlY2lzaW9uLHRoaXMudHJpbT0hIXQudHJpbSx0aGlzLnR5cGU9dm9pZCAwPT09dC50eXBlPyIiOnQudHlwZSsiIn1mdW5jdGlvbiBPdHQodCxlKXt2YXIgbj15dHQodCxlKTtpZighbilyZXR1cm4gdCsiIjt2YXIgbz1uWzBdLGk9blsxXTtyZXR1cm4gaTwwPyIwLiIrbmV3IEFycmF5KC1pKS5qb2luKCIwIikrbzpvLmxlbmd0aD5pKzE/by5zbGljZSgwLGkrMSkrIi4iK28uc2xpY2UoaSsxKTpvK25ldyBBcnJheShpLW8ubGVuZ3RoKzIpLmpvaW4oIjAiKX12dHQucHJvdG90eXBlPXh0dC5wcm90b3R5cGUseHR0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz8iMCI6IiIpKyh2b2lkIDA9PT10aGlzLndpZHRoPyIiOk1hdGgubWF4KDEsMHx0aGlzLndpZHRoKSkrKHRoaXMuY29tbWE/IiwiOiIiKSsodm9pZCAwPT09dGhpcy5wcmVjaXNpb24/IiI6Ii4iK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpKyh0aGlzLnRyaW0/In4iOiIiKSt0aGlzLnR5cGV9O3ZhciBQdHQ9eyIlIjpmdW5jdGlvbih0LGUpe3JldHVybigxMDAqdCkudG9GaXhlZChlKX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygyKX0sYzpmdW5jdGlvbih0KXtyZXR1cm4gdCsiIn0sZDpmdW5jdGlvbiB3dHQodCl7cmV0dXJuIE1hdGguYWJzKHQ9TWF0aC5yb3VuZCh0KSk+PTFlMjE/dC50b0xvY2FsZVN0cmluZygiZW4iKS5yZXBsYWNlKC8sL2csIiIpOnQudG9TdHJpbmcoMTApfSxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9FeHBvbmVudGlhbChlKX0sZjpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRml4ZWQoZSl9LGc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b1ByZWNpc2lvbihlKX0sbzpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZyg4KX0scDpmdW5jdGlvbih0LGUpe3JldHVybiBPdHQoMTAwKnQsZSl9LHI6T3R0LHM6ZnVuY3Rpb24ga3R0KHQsZSl7dmFyIG49eXR0KHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIG89blswXSxpPW5bMV0sYT1pLShDdHQ9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoaS8zKSkpKSsxLHI9by5sZW5ndGg7cmV0dXJuIGE9PT1yP286YT5yP28rbmV3IEFycmF5KGEtcisxKS5qb2luKCIwIik6YT4wP28uc2xpY2UoMCxhKSsiLiIrby5zbGljZShhKToiMC4iK25ldyBBcnJheSgxLWEpLmpvaW4oIjAiKSt5dHQodCxNYXRoLm1heCgwLGUrYS0xKSlbMF19LFg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9LHg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpfX07ZnVuY3Rpb24gU3R0KHQpe3JldHVybiB0fXZhciBEdHQsRXR0LFJ0dCxBdHQ9QXJyYXkucHJvdG90eXBlLm1hcCxUdHQ9WyJ5IiwieiIsImEiLCJmIiwicCIsIm4iLCLCtSIsIm0iLCIiLCJrIiwiTSIsIkciLCJUIiwiUCIsIkUiLCJaIiwiWSJdO2Z1bmN0aW9uIE50dCh0LGUpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOnRoaXMucmFuZ2UodCk7YnJlYWs7ZGVmYXVsdDp0aGlzLnJhbmdlKGUpLmRvbWFpbih0KX1yZXR1cm4gdGhpc30hKGZ1bmN0aW9uIHp0dCh0KXtEdHQ9KGZ1bmN0aW9uIGUodCl7dmFyIGU9dm9pZCAwPT09dC5ncm91cGluZ3x8dm9pZCAwPT09dC50aG91c2FuZHM/U3R0OihmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4sbyl7Zm9yKHZhciBpPW4ubGVuZ3RoLGE9W10scj0wLHM9dFswXSxsPTA7aT4wJiZzPjAmJihsK3MrMT5vJiYocz1NYXRoLm1heCgxLG8tbCkpLGEucHVzaChuLnN1YnN0cmluZyhpLT1zLGkrcykpLCEoKGwrPXMrMSk+bykpOylzPXRbcj0ocisxKSV0Lmxlbmd0aF07cmV0dXJuIGEucmV2ZXJzZSgpLmpvaW4oZSl9fSkoQXR0LmNhbGwodC5ncm91cGluZyxOdW1iZXIpLHQudGhvdXNhbmRzKyIiKSxvPXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVswXSsiIixpPXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVsxXSsiIixhPXZvaWQgMD09PXQuZGVjaW1hbD8iLiI6dC5kZWNpbWFsKyIiLHI9dm9pZCAwPT09dC5udW1lcmFscz9TdHQ6KGZ1bmN0aW9uIHModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1swLTldL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0WytlXX0pKX19KShBdHQuY2FsbCh0Lm51bWVyYWxzLFN0cmluZykpLGw9dm9pZCAwPT09dC5wZXJjZW50PyIlIjp0LnBlcmNlbnQrIiIsYz12b2lkIDA9PT10Lm1pbnVzPyItIjp0Lm1pbnVzKyIiLGQ9dm9pZCAwPT09dC5uYW4/Ik5hTiI6dC5uYW4rIiI7ZnVuY3Rpb24gcCh0KXt2YXIgbj0odD12dHQodCkpLmZpbGwscz10LmFsaWduLHA9dC5zaWduLG09dC5zeW1ib2wsdT10Lnplcm8sZj10LndpZHRoLGc9dC5jb21tYSxoPXQucHJlY2lzaW9uLGI9dC50cmltLHk9dC50eXBlOyJuIj09PXk/KGc9ITAseT0iZyIpOlB0dFt5XXx8KHZvaWQgMD09PWgmJihoPTEyKSxiPSEwLHk9ImciKSwodXx8IjAiPT09biYmIj0iPT09cykmJih1PSEwLG49IjAiLHM9Ij0iKTt2YXIgXz0iJCI9PT1tP286IiMiPT09bSYmL1tib3hYXS8udGVzdCh5KT8iMCIreS50b0xvd2VyQ2FzZSgpOiIiLEM9IiQiPT09bT9pOi9bJXBdLy50ZXN0KHkpP2w6IiIsTT1QdHRbeV0sdj0vW2RlZmdwcnMlXS8udGVzdCh5KTtmdW5jdGlvbiB4KHQpe3ZhciBvLGksbCxtPV8seD1DO2lmKCJjIj09PXkpeD1NKHQpK3gsdD0iIjtlbHNle3ZhciBPPSh0PSt0KTwwfHwxL3Q8MDtpZih0PWlzTmFOKHQpP2Q6TShNYXRoLmFicyh0KSxoKSxiJiYodD0oZnVuY3Rpb24gUCh0KXt0OmZvcih2YXIgZSxuPXQubGVuZ3RoLG89MSxpPS0xO288bjsrK28pc3dpdGNoKHRbb10pe2Nhc2UiLiI6aT1lPW87YnJlYWs7Y2FzZSIwIjowPT09aSYmKGk9byksZT1vO2JyZWFrO2RlZmF1bHQ6aWYoISt0W29dKWJyZWFrIHQ7aT4wJiYoaT0wKX1yZXR1cm4gaT4wP3Quc2xpY2UoMCxpKSt0LnNsaWNlKGUrMSk6dH0pKHQpKSxPJiYwPT0rdCYmIisiIT09cCYmKE89ITEpLG09KE8/IigiPT09cD9wOmM6Ii0iPT09cHx8IigiPT09cD8iIjpwKSttLHg9KCJzIj09PXk/VHR0WzgrQ3R0LzNdOiIiKSt4KyhPJiYiKCI9PT1wPyIpIjoiIiksdilmb3Iobz0tMSxpPXQubGVuZ3RoOysrbzxpOylpZig0OD4obD10LmNoYXJDb2RlQXQobykpfHxsPjU3KXt4PSg0Nj09PWw/YSt0LnNsaWNlKG8rMSk6dC5zbGljZShvKSkreCx0PXQuc2xpY2UoMCxvKTticmVha319ZyYmIXUmJih0PWUodCwxLzApKTt2YXIgdz1tLmxlbmd0aCt0Lmxlbmd0aCt4Lmxlbmd0aCxrPXc8Zj9uZXcgQXJyYXkoZi13KzEpLmpvaW4obik6IiI7c3dpdGNoKGcmJnUmJih0PWUoayt0LGsubGVuZ3RoP2YteC5sZW5ndGg6MS8wKSxrPSIiKSxzKXtjYXNlIjwiOnQ9bSt0K3grazticmVhaztjYXNlIj0iOnQ9bStrK3QreDticmVhaztjYXNlIl4iOnQ9ay5zbGljZSgwLHc9ay5sZW5ndGg+PjEpK20rdCt4K2suc2xpY2Uodyk7YnJlYWs7ZGVmYXVsdDp0PWsrbSt0K3h9cmV0dXJuIHIodCl9cmV0dXJuIGg9dm9pZCAwPT09aD82Oi9bZ3Byc10vLnRlc3QoeSk/TWF0aC5tYXgoMSxNYXRoLm1pbigyMSxoKSk6TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxoKSkseC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0KyIifSx4fXJldHVybntmb3JtYXQ6cCxmb3JtYXRQcmVmaXg6ZnVuY3Rpb24gbSh0LGUpe3ZhciBuPXAoKCh0PXZ0dCh0KSkudHlwZT0iZiIsdCkpLG89MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoX3R0KGUpLzMpKSksaT1NYXRoLnBvdygxMCwtbyksYT1UdHRbOCtvLzNdO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbihpKnQpK2F9fX19KSh0KSxFdHQ9RHR0LmZvcm1hdCxSdHQ9RHR0LmZvcm1hdFByZWZpeH0pKHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXSxtaW51czoiLSJ9KTt2YXIgSXR0PUFycmF5LnByb3RvdHlwZSxIdHQ9SXR0Lm1hcCxGdHQ9SXR0LnNsaWNlLEx0dD17bmFtZToiaW1wbGljaXQifTtmdW5jdGlvbiBCdHQoKXt2YXIgdD1ndHQoKSxlPVtdLG49W10sbz1MdHQ7ZnVuY3Rpb24gaShpKXt2YXIgYT1pKyIiLHI9dC5nZXQoYSk7aWYoIXIpe2lmKG8hPT1MdHQpcmV0dXJuIG87dC5zZXQoYSxyPWUucHVzaChpKSl9cmV0dXJuIG5bKHItMSklbi5sZW5ndGhdfXJldHVybiBpLmRvbWFpbj1mdW5jdGlvbihuKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZS5zbGljZSgpO2U9W10sdD1ndHQoKTtmb3IodmFyIG8sYSxyPS0xLHM9bi5sZW5ndGg7KytyPHM7KXQuaGFzKGE9KG89bltyXSkrIiIpfHx0LnNldChhLGUucHVzaChvKSk7cmV0dXJuIGl9LGkucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49RnR0LmNhbGwodCksaSk6bi5zbGljZSgpfSxpLnVua25vd249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCxpKTpvfSxpLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQnR0KGUsbikudW5rbm93bihvKX0sTnR0LmFwcGx5KGksYXJndW1lbnRzKSxpfWZ1bmN0aW9uIFZ0dCgpe3ZhciB0LGUsbj1CdHQoKS51bmtub3duKHZvaWQgMCksbz1uLmRvbWFpbixpPW4ucmFuZ2UsYT1bMCwxXSxyPSExLHM9MCxsPTAsYz0uNTtmdW5jdGlvbiBkKCl7dmFyIG49bygpLmxlbmd0aCxkPWFbMV08YVswXSxwPWFbZC0wXSxtPWFbMS1kXTt0PShtLXApL01hdGgubWF4KDEsbi1zKzIqbCksciYmKHQ9TWF0aC5mbG9vcih0KSkscCs9KG0tcC10KihuLXMpKSpjLGU9dCooMS1zKSxyJiYocD1NYXRoLnJvdW5kKHApLGU9TWF0aC5yb3VuZChlKSk7dmFyIHU9aDUobikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcCt0KmV9KSk7cmV0dXJuIGkoZD91LnJldmVyc2UoKTp1KX1yZXR1cm4gZGVsZXRlIG4udW5rbm93bixuLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obyh0KSxkKCkpOm8oKX0sbi5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1bK3RbMF0sK3RbMV1dLGQoKSk6YS5zbGljZSgpfSxuLnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGE9Wyt0WzBdLCt0WzFdXSxyPSEwLGQoKX0sbi5iYW5kd2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sbi5zdGVwPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LG4ucm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ISF0LGQoKSk6cn0sbi5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPU1hdGgubWluKDEsbD0rdCksZCgpKTpzfSxuLnBhZGRpbmdJbm5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1NYXRoLm1pbigxLHQpLGQoKSk6c30sbi5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9K3QsZCgpKTpsfSxuLmFsaWduPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksZCgpKTpjfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gVnR0KG8oKSxhKS5yb3VuZChyKS5wYWRkaW5nSW5uZXIocykucGFkZGluZ091dGVyKGwpLmFsaWduKGMpfSxOdHQuYXBwbHkoZCgpLGFyZ3VtZW50cyl9ZnVuY3Rpb24ganR0KHQpe3ZhciBlPXQuY29weTtyZXR1cm4gdC5wYWRkaW5nPXQucGFkZGluZ091dGVyLGRlbGV0ZSB0LnBhZGRpbmdJbm5lcixkZWxldGUgdC5wYWRkaW5nT3V0ZXIsdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGp0dChlKCkpfSx0fWZ1bmN0aW9uIFV0dCgpe3JldHVybiBqdHQoVnR0LmFwcGx5KG51bGwsYXJndW1lbnRzKS5wYWRkaW5nSW5uZXIoMSkpfWZ1bmN0aW9uIEd0dCh0KXtyZXR1cm4rdH12YXIgV3R0PVswLDFdO2Z1bmN0aW9uIFl0dCh0KXtyZXR1cm4gdH1mdW5jdGlvbiBxdHQodCxlKXtyZXR1cm4oZS09dD0rdCk/ZnVuY3Rpb24obil7cmV0dXJuKG4tdCkvZX06KGZ1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkoaXNOYU4oZSk/TmFOOi41KX1mdW5jdGlvbiBadHQodCl7dmFyIGUsbj10WzBdLG89dFt0Lmxlbmd0aC0xXTtyZXR1cm4gbj5vJiYoZT1uLG49byxvPWUpLGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heChuLE1hdGgubWluKG8sdCkpfX1mdW5jdGlvbiBYdHQodCxlLG4pe3ZhciBvPXRbMF0saT10WzFdLGE9ZVswXSxyPWVbMV07cmV0dXJuIGk8bz8obz1xdHQoaSxvKSxhPW4ocixhKSk6KG89cXR0KG8saSksYT1uKGEscikpLGZ1bmN0aW9uKHQpe3JldHVybiBhKG8odCkpfX1mdW5jdGlvbiBLdHQodCxlLG4pe3ZhciBvPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKS0xLGk9bmV3IEFycmF5KG8pLGE9bmV3IEFycmF5KG8pLHI9LTE7Zm9yKHRbb108dFswXSYmKHQ9dC5zbGljZSgpLnJldmVyc2UoKSxlPWUuc2xpY2UoKS5yZXZlcnNlKCkpOysrcjxvOylpW3JdPXF0dCh0W3JdLHRbcisxXSksYVtyXT1uKGVbcl0sZVtyKzFdKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49cDUodCxlLDEsbyktMTtyZXR1cm4gYVtuXShpW25dKGUpKX19ZnVuY3Rpb24gSnR0KHQsZSl7cmV0dXJuIGUuZG9tYWluKHQuZG9tYWluKCkpLnJhbmdlKHQucmFuZ2UoKSkuaW50ZXJwb2xhdGUodC5pbnRlcnBvbGF0ZSgpKS5jbGFtcCh0LmNsYW1wKCkpLnVua25vd24odC51bmtub3duKCkpfWZ1bmN0aW9uIFF0dCgpe3ZhciB0LGUsbixvLGksYSxyPVd0dCxzPVd0dCxsPVo3LGM9WXR0O2Z1bmN0aW9uIGQoKXtyZXR1cm4gbz1NYXRoLm1pbihyLmxlbmd0aCxzLmxlbmd0aCk+Mj9LdHQ6WHR0LGk9YT1udWxsLHB9ZnVuY3Rpb24gcChlKXtyZXR1cm4gaXNOYU4oZT0rZSk/bjooaXx8KGk9byhyLm1hcCh0KSxzLGwpKSkodChjKGUpKSl9cmV0dXJuIHAuaW52ZXJ0PWZ1bmN0aW9uKG4pe3JldHVybiBjKGUoKGF8fChhPW8ocyxyLm1hcCh0KSxVNykpKShuKSkpfSxwLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1IdHQuY2FsbCh0LEd0dCksYz09PVl0dHx8KGM9WnR0KHIpKSxkKCkpOnIuc2xpY2UoKX0scC5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1GdHQuY2FsbCh0KSxkKCkpOnMuc2xpY2UoKX0scC5yYW5nZVJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBzPUZ0dC5jYWxsKHQpLGw9WDcsZCgpfSxwLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQ/WnR0KHIpOll0dCxwKTpjIT09WXR0fSxwLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPXQsZCgpKTpsfSxwLnVua25vd249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxwKTpufSxmdW5jdGlvbihuLG8pe3JldHVybiB0PW4sZT1vLGQoKX19ZnVuY3Rpb24gJHR0KHQsZSl7cmV0dXJuIFF0dCgpKHQsZSl9ZnVuY3Rpb24gdGV0KHQpe3ZhciBlPXQuZG9tYWluO3JldHVybiB0LnRpY2tzPWZ1bmN0aW9uKHQpe3ZhciBuPWUoKTtyZXR1cm4gQzUoblswXSxuW24ubGVuZ3RoLTFdLG51bGw9PXQ/MTA6dCl9LHQudGlja0Zvcm1hdD1mdW5jdGlvbih0LG4pe3ZhciBvPWUoKTtyZXR1cm4oZnVuY3Rpb24gaSh0LGUsbixvKXt2YXIgaSxhPXY1KHQsZSxuKTtzd2l0Y2goKG89dnR0KG51bGw9PW8/IixmIjpvKSkudHlwZSl7Y2FzZSJzIjp2YXIgcj1NYXRoLm1heChNYXRoLmFicyh0KSxNYXRoLmFicyhlKSk7cmV0dXJuIG51bGwhPW8ucHJlY2lzaW9ufHxpc05hTihpPShmdW5jdGlvbiBzKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsMypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoX3R0KGUpLzMpKSktX3R0KE1hdGguYWJzKHQpKSl9KShhLHIpKXx8KG8ucHJlY2lzaW9uPWkpLFJ0dChvLHIpO2Nhc2UiIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlInIiOm51bGwhPW8ucHJlY2lzaW9ufHxpc05hTihpPShmdW5jdGlvbiBsKHQsZSl7cmV0dXJuIHQ9TWF0aC5hYnModCksZT1NYXRoLmFicyhlKS10LE1hdGgubWF4KDAsX3R0KGUpLV90dCh0KSkrMX0pKGEsTWF0aC5tYXgoTWF0aC5hYnModCksTWF0aC5hYnMoZSkpKSl8fChvLnByZWNpc2lvbj1pLSgiZSI9PT1vLnR5cGUpKTticmVhaztjYXNlImYiOmNhc2UiJSI6bnVsbCE9by5wcmVjaXNpb258fGlzTmFOKGk9KGZ1bmN0aW9uIGModCl7cmV0dXJuIE1hdGgubWF4KDAsLV90dChNYXRoLmFicyh0KSkpfSkoYSkpfHwoby5wcmVjaXNpb249aS0yKigiJSI9PT1vLnR5cGUpKX1yZXR1cm4gRXR0KG8pfSkob1swXSxvW28ubGVuZ3RoLTFdLG51bGw9PXQ/MTA6dCxuKX0sdC5uaWNlPWZ1bmN0aW9uKG4pe251bGw9PW4mJihuPTEwKTt2YXIgbyxpPWUoKSxhPTAscj1pLmxlbmd0aC0xLHM9aVthXSxsPWlbcl07cmV0dXJuIGw8cyYmKG89cyxzPWwsbD1vLG89YSxhPXIscj1vKSwobz1NNShzLGwsbikpPjA/bz1NNShzPU1hdGguZmxvb3Iocy9vKSpvLGw9TWF0aC5jZWlsKGwvbykqbyxuKTpvPDAmJihvPU01KHM9TWF0aC5jZWlsKHMqbykvbyxsPU1hdGguZmxvb3IobCpvKS9vLG4pKSxvPjA/KGlbYV09TWF0aC5mbG9vcihzL28pKm8saVtyXT1NYXRoLmNlaWwobC9vKSpvLGUoaSkpOm88MCYmKGlbYV09TWF0aC5jZWlsKHMqbykvbyxpW3JdPU1hdGguZmxvb3IobCpvKS9vLGUoaSkpLHR9LHR9ZnVuY3Rpb24gZWV0KCl7dmFyIHQ9JHR0KFl0dCxZdHQpO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gSnR0KHQsZWV0KCkpfSxOdHQuYXBwbHkodCxhcmd1bWVudHMpLHRldCh0KX1mdW5jdGlvbiBuZXQodCxlKXt2YXIgbixvPTAsaT0odD10LnNsaWNlKCkpLmxlbmd0aC0xLGE9dFtvXSxyPXRbaV07cmV0dXJuIHI8YSYmKG49byxvPWksaT1uLG49YSxhPXIscj1uKSx0W29dPWUuZmxvb3IoYSksdFtpXT1lLmNlaWwociksdH1mdW5jdGlvbiBvZXQodCl7cmV0dXJuIE1hdGgubG9nKHQpfWZ1bmN0aW9uIGlldCh0KXtyZXR1cm4gTWF0aC5leHAodCl9ZnVuY3Rpb24gYWV0KHQpe3JldHVybi1NYXRoLmxvZygtdCl9ZnVuY3Rpb24gcmV0KHQpe3JldHVybi1NYXRoLmV4cCgtdCl9ZnVuY3Rpb24gc2V0KHQpe3JldHVybiBpc0Zpbml0ZSh0KT8rKCIxZSIrdCk6dDwwPzA6dH1mdW5jdGlvbiBjZXQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybi10KC1lKX19ZnVuY3Rpb24gZGV0KHQpe3ZhciBlLG4sbz10KG9ldCxpZXQpLGk9by5kb21haW4sYT0xMDtmdW5jdGlvbiByKCl7cmV0dXJuIGU9KGZ1bmN0aW9uIHIodCl7cmV0dXJuIHQ9PT1NYXRoLkU/TWF0aC5sb2c6MTA9PT10JiZNYXRoLmxvZzEwfHwyPT09dCYmTWF0aC5sb2cyfHwodD1NYXRoLmxvZyh0KSxmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkvdH0pfSkoYSksbj0oZnVuY3Rpb24gcyh0KXtyZXR1cm4gMTA9PT10P3NldDp0PT09TWF0aC5FP01hdGguZXhwOmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnBvdyh0LGUpfX0pKGEpLGkoKVswXTwwPyhlPWNldChlKSxuPWNldChuKSx0KGFldCxyZXQpKTp0KG9ldCxpZXQpLG99cmV0dXJuIG8uYmFzZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxyKCkpOmF9LG8uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpKHQpLHIoKSk6aSgpfSxvLnRpY2tzPWZ1bmN0aW9uKHQpe3ZhciBvLHI9aSgpLHM9clswXSxsPXJbci5sZW5ndGgtMV07KG89bDxzKSYmKG09cyxzPWwsbD1tKTt2YXIgYyxkLHAsbT1lKHMpLHU9ZShsKSxmPW51bGw9PXQ/MTA6K3QsZz1bXTtpZighKGElMSkmJnUtbTxmKXtpZihtPU1hdGgucm91bmQobSktMSx1PU1hdGgucm91bmQodSkrMSxzPjApe2Zvcig7bTx1OysrbSlmb3IoZD0xLGM9bihtKTtkPGE7KytkKWlmKCEoKHA9YypkKTxzKSl7aWYocD5sKWJyZWFrO2cucHVzaChwKX19ZWxzZSBmb3IoO208dTsrK20pZm9yKGQ9YS0xLGM9bihtKTtkPj0xOy0tZClpZighKChwPWMqZCk8cykpe2lmKHA+bClicmVhaztnLnB1c2gocCl9fWVsc2UgZz1DNShtLHUsTWF0aC5taW4odS1tLGYpKS5tYXAobik7cmV0dXJuIG8/Zy5yZXZlcnNlKCk6Z30sby50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsaSl7aWYobnVsbD09aSYmKGk9MTA9PT1hPyIuMGUiOiIsIiksImZ1bmN0aW9uIiE9dHlwZW9mIGkmJihpPUV0dChpKSksdD09PTEvMClyZXR1cm4gaTtudWxsPT10JiYodD0xMCk7dmFyIHI9TWF0aC5tYXgoMSxhKnQvby50aWNrcygpLmxlbmd0aCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBvPXQvbihNYXRoLnJvdW5kKGUodCkpKTtyZXR1cm4gbyphPGEtLjUmJihvKj1hKSxvPD1yP2kodCk6IiJ9fSxvLm5pY2U9ZnVuY3Rpb24oKXtyZXR1cm4gaShuZXQoaSgpLHtmbG9vcjpmdW5jdGlvbih0KXtyZXR1cm4gbihNYXRoLmZsb29yKGUodCkpKX0sY2VpbDpmdW5jdGlvbih0KXtyZXR1cm4gbihNYXRoLmNlaWwoZSh0KSkpfX0pKX0sb31mdW5jdGlvbiBwZXQoKXt2YXIgdD1kZXQoUXR0KCkpLmRvbWFpbihbMSwxMF0pO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gSnR0KHQscGV0KCkpLmJhc2UodC5iYXNlKCkpfSxOdHQuYXBwbHkodCxhcmd1bWVudHMpLHR9dmFyIG1ldD1uZXcgRGF0ZSx1ZXQ9bmV3IERhdGU7ZnVuY3Rpb24gZmV0KHQsZSxuLG8pe2Z1bmN0aW9uIGkoZSl7cmV0dXJuIHQoZT0wPT09YXJndW1lbnRzLmxlbmd0aD9uZXcgRGF0ZTpuZXcgRGF0ZSgrZSkpLGV9cmV0dXJuIGkuZmxvb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZT1uZXcgRGF0ZSgrZSkpLGV9LGkuY2VpbD1mdW5jdGlvbihuKXtyZXR1cm4gdChuPW5ldyBEYXRlKG4tMSkpLGUobiwxKSx0KG4pLG59LGkucm91bmQ9ZnVuY3Rpb24odCl7dmFyIGU9aSh0KSxuPWkuY2VpbCh0KTtyZXR1cm4gdC1lPG4tdD9lOm59LGkub2Zmc2V0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodD1uZXcgRGF0ZSgrdCksbnVsbD09bj8xOk1hdGguZmxvb3IobikpLHR9LGkucmFuZ2U9ZnVuY3Rpb24obixvLGEpe3ZhciByLHM9W107aWYobj1pLmNlaWwobiksYT1udWxsPT1hPzE6TWF0aC5mbG9vcihhKSwhKG48byYmYT4wKSlyZXR1cm4gcztkb3tzLnB1c2gocj1uZXcgRGF0ZSgrbikpLGUobixhKSx0KG4pfXdoaWxlKHI8biYmbjxvKTtyZXR1cm4gc30saS5maWx0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGZldCgoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsbyl7aWYodD49dClpZihvPDApZm9yKDsrK288PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLW8+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoaS5jb3VudD1mdW5jdGlvbihlLG8pe3JldHVybiBtZXQuc2V0VGltZSgrZSksdWV0LnNldFRpbWUoK28pLHQobWV0KSx0KHVldCksTWF0aC5mbG9vcihuKG1ldCx1ZXQpKX0saS5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP2kuZmlsdGVyKG8/ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY291bnQoMCxlKSV0PT0wfSk6aTpudWxsfSksaX12YXIgZ2V0PWZldCgoZnVuY3Rpb24oKXt9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS10fSkpO2dldC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP2ZldCgoZnVuY3Rpb24oZSl7ZS5zZXRUaW1lKE1hdGguZmxvb3IoZS90KSp0KX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0VGltZSgrZStuKnQpfSksKGZ1bmN0aW9uKGUsbil7cmV0dXJuKG4tZSkvdH0pKTpnZXQ6bnVsbH07dmFyIGhldD1nZXQsYmV0PTFlMyx5ZXQ9NmU0LF9ldD0zNmU1LENldD04NjRlNSxNZXQ9NjA0OGU1LHZldD1mZXQoKGZ1bmN0aW9uKHQpe3Quc2V0VGltZSh0LXQuZ2V0TWlsbGlzZWNvbmRzKCkpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqYmV0KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL2JldH0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENTZWNvbmRzKCl9KSkseGV0PWZldCgoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKS10LmdldFNlY29uZHMoKSpiZXQpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqeWV0KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL3lldH0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNaW51dGVzKCl9KSksT2V0PWZldCgoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKS10LmdldFNlY29uZHMoKSpiZXQtdC5nZXRNaW51dGVzKCkqeWV0KX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKl9ldCl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9fZXR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pKSxQZXQ9ZmV0KChmdW5jdGlvbih0KXt0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdC0oZS5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqeWV0KS9DZXR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpLTF9KSk7ZnVuY3Rpb24gd2V0KHQpe3JldHVybiBmZXQoKGZ1bmN0aW9uKGUpe2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs3LXQpJTcpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnlldCkvTWV0fSkpfXZhciBrZXQ9d2V0KDApLERldD13ZXQoMSk7d2V0KDIpLHdldCgzKTt2YXIgRWV0PXdldCg0KTt3ZXQoNSksd2V0KDYpO3ZhciBSZXQ9ZmV0KChmdW5jdGlvbih0KXt0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0TW9udGgodC5nZXRNb250aCgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0TW9udGgoKS10LmdldE1vbnRoKCkrMTIqKGUuZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCkpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSksQWV0PWZldCgoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KSk7QWV0LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/ZmV0KChmdW5jdGlvbihlKXtlLnNldEZ1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRGdWxsWWVhcigpL3QpKnQpLGUuc2V0TW9udGgoMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgVGV0PUFldCxOZXQ9ZmV0KChmdW5jdGlvbih0KXt0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvQ2V0fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSkpO2Z1bmN0aW9uIHpldCh0KXtyZXR1cm4gZmV0KChmdW5jdGlvbihlKXtlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCktKGUuZ2V0VVRDRGF5KCkrNy10KSU3KSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9NZXR9KSl9dmFyIElldD16ZXQoMCksSGV0PXpldCgxKTt6ZXQoMiksemV0KDMpO3ZhciBGZXQ9emV0KDQpO3pldCg1KSx6ZXQoNik7dmFyIExldD1mZXQoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpfSkpO0xldC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP2ZldCgoZnVuY3Rpb24oZSl7ZS5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0VVRDRnVsbFllYXIoKS90KSp0KSxlLnNldFVUQ01vbnRoKDAsMSksZS5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0VVRDRnVsbFllYXIoZS5nZXRVVENGdWxsWWVhcigpK24qdCl9KSk6bnVsbH07dmFyIEJldD1MZXQ7ZnVuY3Rpb24gVmV0KHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIGU9bmV3IERhdGUoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpO3JldHVybiBlLnNldEZ1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUodC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKX1mdW5jdGlvbiBqZXQodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZShEYXRlLlVUQygtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpO3JldHVybiBlLnNldFVUQ0Z1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSl9ZnVuY3Rpb24gVWV0KHQsZSxuKXtyZXR1cm57eTp0LG06ZSxkOm4sSDowLE06MCxTOjAsTDowfX12YXIgR2V0LFdldCxZZXQ9eyItIjoiIixfOiIgIiwwOiIwIn0scWV0PS9eXHMqXGQrLyxaZXQ9L14lLyxYZXQ9L1tcXF4kKis/fFtcXSgpLnt9XS9nO2Z1bmN0aW9uIEtldCh0LGUsbil7dmFyIG89dDwwPyItIjoiIixpPShvPy10OnQpKyIiLGE9aS5sZW5ndGg7cmV0dXJuIG8rKGE8bj9uZXcgQXJyYXkobi1hKzEpLmpvaW4oZSkraTppKX1mdW5jdGlvbiBKZXQodCl7cmV0dXJuIHQucmVwbGFjZShYZXQsIlxcJCYiKX1mdW5jdGlvbiBRZXQodCl7cmV0dXJuIG5ldyBSZWdFeHAoIl4oPzoiK3QubWFwKEpldCkuam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uICRldCh0KXtmb3IodmFyIGU9e30sbj0tMSxvPXQubGVuZ3RoOysrbjxvOyllW3Rbbl0udG9Mb3dlckNhc2UoKV09bjtyZXR1cm4gZX1mdW5jdGlvbiB0bnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzEpKTtyZXR1cm4gbz8odC53PStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGVudCh0LGUsbil7dmFyIG89cWV0LmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBvPyh0LnU9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbm50KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIG8/KHQuVT0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBvbnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC5WPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGludCh0LGUsbil7dmFyIG89cWV0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBvPyh0Llc9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYW50KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4sbis0KSk7cmV0dXJuIG8/KHQueT0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBybnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC55PStvWzBdKygrb1swXT42OD8xOTAwOjJlMyksbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gc250KHQsZSxuKXt2YXIgbz0vXihaKXwoWystXVxkXGQpKD86Oj8oXGRcZCkpPy8uZXhlYyhlLnNsaWNlKG4sbis2KSk7cmV0dXJuIG8/KHQuWj1vWzFdPzA6LShvWzJdKyhvWzNdfHwiMDAiKSksbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbG50KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIG8/KHQucT0zKm9bMF0tMyxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBjbnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC5tPW9bMF0tMSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBkbnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC5kPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHBudCh0LGUsbil7dmFyIG89cWV0LmV4ZWMoZS5zbGljZShuLG4rMykpO3JldHVybiBvPyh0Lm09MCx0LmQ9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbW50KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIG8/KHQuSD0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB1bnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC5NPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGZudCh0LGUsbil7dmFyIG89cWV0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBvPyh0LlM9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZ250KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4sbiszKSk7cmV0dXJuIG8/KHQuTD0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBobnQodCxlLG4pe3ZhciBvPXFldC5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gbz8odC5MPU1hdGguZmxvb3Iob1swXS8xZTMpLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGJudCh0LGUsbil7dmFyIG89WmV0LmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBvP24rb1swXS5sZW5ndGg6LTF9ZnVuY3Rpb24geW50KHQsZSxuKXt2YXIgbz1xZXQuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gbz8odC5RPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIF9udCh0LGUsbil7dmFyIG89cWV0LmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIG8/KHQucz0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBDbnQodCxlKXtyZXR1cm4gS2V0KHQuZ2V0RGF0ZSgpLGUsMil9ZnVuY3Rpb24gTW50KHQsZSl7cmV0dXJuIEtldCh0LmdldEhvdXJzKCksZSwyKX1mdW5jdGlvbiB2bnQodCxlKXtyZXR1cm4gS2V0KHQuZ2V0SG91cnMoKSUxMnx8MTIsZSwyKX1mdW5jdGlvbiB4bnQodCxlKXtyZXR1cm4gS2V0KDErUGV0LmNvdW50KFRldCh0KSx0KSxlLDMpfWZ1bmN0aW9uIE9udCh0LGUpe3JldHVybiBLZXQodC5nZXRNaWxsaXNlY29uZHMoKSxlLDMpfWZ1bmN0aW9uIFBudCh0LGUpe3JldHVybiBPbnQodCxlKSsiMDAwIn1mdW5jdGlvbiB3bnQodCxlKXtyZXR1cm4gS2V0KHQuZ2V0TW9udGgoKSsxLGUsMil9ZnVuY3Rpb24ga250KHQsZSl7cmV0dXJuIEtldCh0LmdldE1pbnV0ZXMoKSxlLDIpfWZ1bmN0aW9uIFNudCh0LGUpe3JldHVybiBLZXQodC5nZXRTZWNvbmRzKCksZSwyKX1mdW5jdGlvbiBEbnQodCl7dmFyIGU9dC5nZXREYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIEVudCh0LGUpe3JldHVybiBLZXQoa2V0LmNvdW50KFRldCh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gUm50KHQpe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIGU+PTR8fDA9PT1lP0VldCh0KTpFZXQuY2VpbCh0KX1mdW5jdGlvbiBBbnQodCxlKXtyZXR1cm4gdD1SbnQodCksS2V0KEVldC5jb3VudChUZXQodCksdCkrKDQ9PT1UZXQodCkuZ2V0RGF5KCkpLGUsMil9ZnVuY3Rpb24gVG50KHQpe3JldHVybiB0LmdldERheSgpfWZ1bmN0aW9uIE5udCh0LGUpe3JldHVybiBLZXQoRGV0LmNvdW50KFRldCh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gem50KHQsZSl7cmV0dXJuIEtldCh0LmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gSW50KHQsZSl7cmV0dXJuIEtldCgodD1SbnQodCkpLmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gSG50KHQsZSl7cmV0dXJuIEtldCh0LmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gRm50KHQsZSl7dmFyIG49dC5nZXREYXkoKTtyZXR1cm4gS2V0KCh0PW4+PTR8fDA9PT1uP0VldCh0KTpFZXQuY2VpbCh0KSkuZ2V0RnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiBMbnQodCl7dmFyIGU9dC5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihlPjA/Ii0iOihlKj0tMSwiKyIpKStLZXQoZS82MHwwLCIwIiwyKStLZXQoZSU2MCwiMCIsMil9ZnVuY3Rpb24gQm50KHQsZSl7cmV0dXJuIEtldCh0LmdldFVUQ0RhdGUoKSxlLDIpfWZ1bmN0aW9uIFZudCh0LGUpe3JldHVybiBLZXQodC5nZXRVVENIb3VycygpLGUsMil9ZnVuY3Rpb24gam50KHQsZSl7cmV0dXJuIEtldCh0LmdldFVUQ0hvdXJzKCklMTJ8fDEyLGUsMil9ZnVuY3Rpb24gVW50KHQsZSl7cmV0dXJuIEtldCgxK05ldC5jb3VudChCZXQodCksdCksZSwzKX1mdW5jdGlvbiBHbnQodCxlKXtyZXR1cm4gS2V0KHQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksZSwzKX1mdW5jdGlvbiBXbnQodCxlKXtyZXR1cm4gR250KHQsZSkrIjAwMCJ9ZnVuY3Rpb24gWW50KHQsZSl7cmV0dXJuIEtldCh0LmdldFVUQ01vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIHFudCh0LGUpe3JldHVybiBLZXQodC5nZXRVVENNaW51dGVzKCksZSwyKX1mdW5jdGlvbiBabnQodCxlKXtyZXR1cm4gS2V0KHQuZ2V0VVRDU2Vjb25kcygpLGUsMil9ZnVuY3Rpb24gWG50KHQpe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIDA9PT1lPzc6ZX1mdW5jdGlvbiBLbnQodCxlKXtyZXR1cm4gS2V0KElldC5jb3VudChCZXQodCktMSx0KSxlLDIpfWZ1bmN0aW9uIEpudCh0KXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiBlPj00fHwwPT09ZT9GZXQodCk6RmV0LmNlaWwodCl9ZnVuY3Rpb24gUW50KHQsZSl7cmV0dXJuIHQ9Sm50KHQpLEtldChGZXQuY291bnQoQmV0KHQpLHQpKyg0PT09QmV0KHQpLmdldFVUQ0RheSgpKSxlLDIpfWZ1bmN0aW9uICRudCh0KXtyZXR1cm4gdC5nZXRVVENEYXkoKX1mdW5jdGlvbiB0b3QodCxlKXtyZXR1cm4gS2V0KEhldC5jb3VudChCZXQodCktMSx0KSxlLDIpfWZ1bmN0aW9uIGVvdCh0LGUpe3JldHVybiBLZXQodC5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIG5vdCh0LGUpe3JldHVybiBLZXQoKHQ9Sm50KHQpKS5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIG9vdCh0LGUpe3JldHVybiBLZXQodC5nZXRVVENGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIGlvdCh0LGUpe3ZhciBuPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIEtldCgodD1uPj00fHwwPT09bj9GZXQodCk6RmV0LmNlaWwodCkpLmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gYW90KCl7cmV0dXJuIiswMDAwIn1mdW5jdGlvbiByb3QoKXtyZXR1cm4iJSJ9ZnVuY3Rpb24gc290KHQpe3JldHVybit0fWZ1bmN0aW9uIGxvdCh0KXtyZXR1cm4gTWF0aC5mbG9vcigrdC8xZTMpfSEoZnVuY3Rpb24gY290KHQpe0dldD0oZnVuY3Rpb24gZSh0KXt2YXIgZT10LmRhdGVUaW1lLG49dC5kYXRlLG89dC50aW1lLGk9dC5wZXJpb2RzLGE9dC5kYXlzLHI9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsYz1RZXQoaSksZD0kZXQoaSkscD1RZXQoYSksbT0kZXQoYSksdT1RZXQociksZj0kZXQociksZz1RZXQocyksaD0kZXQocyksYj1RZXQobCkseT0kZXQobCksXz17YTpmdW5jdGlvbiBDKHQpe3JldHVybiByW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uIE0odCl7cmV0dXJuIGFbdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24gdih0KXtyZXR1cm4gbFt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uIHgodCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6Q250LGU6Q250LGY6UG50LGc6SW50LEc6Rm50LEg6TW50LEk6dm50LGo6eG50LEw6T250LG06d250LE06a250LHA6ZnVuY3Rpb24gTyh0KXtyZXR1cm4gaVsrKHQuZ2V0SG91cnMoKT49MTIpXX0scTpmdW5jdGlvbiBQKHQpe3JldHVybiAxK35+KHQuZ2V0TW9udGgoKS8zKX0sUTpzb3Qsczpsb3QsUzpTbnQsdTpEbnQsVTpFbnQsVjpBbnQsdzpUbnQsVzpObnQseDpudWxsLFg6bnVsbCx5OnpudCxZOkhudCxaOkxudCwiJSI6cm90fSx3PXthOmZ1bmN0aW9uIGsodCl7cmV0dXJuIHJbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24gUyh0KXtyZXR1cm4gYVt0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbiBEKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24gRSh0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDpCbnQsZTpCbnQsZjpXbnQsZzpub3QsRzppb3QsSDpWbnQsSTpqbnQsajpVbnQsTDpHbnQsbTpZbnQsTTpxbnQscDpmdW5jdGlvbiBSKHQpe3JldHVybiBpWysodC5nZXRVVENIb3VycygpPj0xMildfSxxOmZ1bmN0aW9uIEEodCl7cmV0dXJuIDErfn4odC5nZXRVVENNb250aCgpLzMpfSxROnNvdCxzOmxvdCxTOlpudCx1OlhudCxVOktudCxWOlFudCx3OiRudCxXOnRvdCx4Om51bGwsWDpudWxsLHk6ZW90LFk6b290LFo6YW90LCIlIjpyb3R9LFQ9e2E6ZnVuY3Rpb24gTih0LGUsbil7dmFyIG89dS5leGVjKGUuc2xpY2UobikpO3JldHVybiBvPyh0Lnc9ZltvWzBdLnRvTG93ZXJDYXNlKCldLG4rb1swXS5sZW5ndGgpOi0xfSxBOmZ1bmN0aW9uIHoodCxlLG4pe3ZhciBvPXAuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gbz8odC53PW1bb1swXS50b0xvd2VyQ2FzZSgpXSxuK29bMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbiBJKHQsZSxuKXt2YXIgbz1iLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIG8/KHQubT15W29bMF0udG9Mb3dlckNhc2UoKV0sbitvWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24gSCh0LGUsbil7dmFyIG89Zy5leGVjKGUuc2xpY2UobikpO3JldHVybiBvPyh0Lm09aFtvWzBdLnRvTG93ZXJDYXNlKCldLG4rb1swXS5sZW5ndGgpOi0xfSxjOmZ1bmN0aW9uIEYodCxuLG8pe3JldHVybiBHKHQsZSxuLG8pfSxkOmRudCxlOmRudCxmOmhudCxnOnJudCxHOmFudCxIOm1udCxJOm1udCxqOnBudCxMOmdudCxtOmNudCxNOnVudCxwOmZ1bmN0aW9uIEwodCxlLG4pe3ZhciBvPWMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gbz8odC5wPWRbb1swXS50b0xvd2VyQ2FzZSgpXSxuK29bMF0ubGVuZ3RoKTotMX0scTpsbnQsUTp5bnQsczpfbnQsUzpmbnQsdTplbnQsVTpubnQsVjpvbnQsdzp0bnQsVzppbnQseDpmdW5jdGlvbiBCKHQsZSxvKXtyZXR1cm4gRyh0LG4sZSxvKX0sWDpmdW5jdGlvbiBWKHQsZSxuKXtyZXR1cm4gRyh0LG8sZSxuKX0seTpybnQsWTphbnQsWjpzbnQsIiUiOmJudH07ZnVuY3Rpb24gaih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgbyxpLGEscj1bXSxzPS0xLGw9MCxjPXQubGVuZ3RoO2ZvcihuIGluc3RhbmNlb2YgRGF0ZXx8KG49bmV3IERhdGUoK24pKTsrK3M8YzspMzc9PT10LmNoYXJDb2RlQXQocykmJihyLnB1c2godC5zbGljZShsLHMpKSxudWxsIT0oaT1ZZXRbbz10LmNoYXJBdCgrK3MpXSk/bz10LmNoYXJBdCgrK3MpOmk9ImUiPT09bz8iICI6IjAiLChhPWVbb10pJiYobz1hKG4saSkpLHIucHVzaChvKSxsPXMrMSk7cmV0dXJuIHIucHVzaCh0LnNsaWNlKGwscykpLHIuam9pbigiIil9fWZ1bmN0aW9uIFUodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIG8saSxhPVVldCgxOTAwLHZvaWQgMCwxKTtpZihHKGEsdCxuKz0iIiwwKSE9bi5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gYSlyZXR1cm4gbmV3IERhdGUoYS5RKTtpZigicyJpbiBhKXJldHVybiBuZXcgRGF0ZSgxZTMqYS5zKygiTCJpbiBhP2EuTDowKSk7aWYoZSYmISgiWiJpbiBhKSYmKGEuWj0wKSwicCJpbiBhJiYoYS5IPWEuSCUxMisxMiphLnApLHZvaWQgMD09PWEubSYmKGEubT0icSJpbiBhP2EucTowKSwiViJpbiBhKXtpZihhLlY8MXx8YS5WPjUzKXJldHVybiBudWxsOyJ3ImluIGF8fChhLnc9MSksIloiaW4gYT8oaT0obz1qZXQoVWV0KGEueSwwLDEpKSkuZ2V0VVRDRGF5KCksbz1pPjR8fDA9PT1pP0hldC5jZWlsKG8pOkhldChvKSxvPU5ldC5vZmZzZXQobyw3KihhLlYtMSkpLGEueT1vLmdldFVUQ0Z1bGxZZWFyKCksYS5tPW8uZ2V0VVRDTW9udGgoKSxhLmQ9by5nZXRVVENEYXRlKCkrKGEudys2KSU3KTooaT0obz1WZXQoVWV0KGEueSwwLDEpKSkuZ2V0RGF5KCksbz1pPjR8fDA9PT1pP0RldC5jZWlsKG8pOkRldChvKSxvPVBldC5vZmZzZXQobyw3KihhLlYtMSkpLGEueT1vLmdldEZ1bGxZZWFyKCksYS5tPW8uZ2V0TW9udGgoKSxhLmQ9by5nZXREYXRlKCkrKGEudys2KSU3KX1lbHNlKCJXImluIGF8fCJVImluIGEpJiYoInciaW4gYXx8KGEudz0idSJpbiBhP2EudSU3OiJXImluIGE/MTowKSxpPSJaImluIGE/amV0KFVldChhLnksMCwxKSkuZ2V0VVRDRGF5KCk6VmV0KFVldChhLnksMCwxKSkuZ2V0RGF5KCksYS5tPTAsYS5kPSJXImluIGE/KGEudys2KSU3KzcqYS5XLShpKzUpJTc6YS53KzcqYS5VLShpKzYpJTcpO3JldHVybiJaImluIGE/KGEuSCs9YS5aLzEwMHwwLGEuTSs9YS5aJTEwMCxqZXQoYSkpOlZldChhKX19ZnVuY3Rpb24gRyh0LGUsbixvKXtmb3IodmFyIGksYSxyPTAscz1lLmxlbmd0aCxsPW4ubGVuZ3RoO3I8czspe2lmKG8+PWwpcmV0dXJuLTE7aWYoMzc9PT0oaT1lLmNoYXJDb2RlQXQocisrKSkpe2lmKGk9ZS5jaGFyQXQocisrKSwhKGE9VFtpIGluIFlldD9lLmNoYXJBdChyKyspOmldKXx8KG89YSh0LG4sbykpPDApcmV0dXJuLTF9ZWxzZSBpZihpIT1uLmNoYXJDb2RlQXQobysrKSlyZXR1cm4tMX1yZXR1cm4gb31yZXR1cm4gXy54PWoobixfKSxfLlg9aihvLF8pLF8uYz1qKGUsXyksdy54PWoobix3KSx3Llg9aihvLHcpLHcuYz1qKGUsdykse2Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLF8pO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPVUodCs9IiIsITEpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y0Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLHcpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y1BhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPVUodCs9IiIsITApO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9fX0pKHQpLFdldD1HZXQuZm9ybWF0fSkoe2RhdGVUaW1lOiIleCwgJVgiLGRhdGU6IiUtbS8lLWQvJVkiLHRpbWU6IiUtSTolTTolUyAlcCIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KTt2YXIgZG90PTMxNTM2ZTY7ZnVuY3Rpb24gcG90KHQpe3JldHVybiBuZXcgRGF0ZSh0KX1mdW5jdGlvbiBtb3QodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlPyt0OituZXcgRGF0ZSgrdCl9ZnVuY3Rpb24gdW90KHQsZSxuLG8saSxhLHIscyxsKXt2YXIgYz0kdHQoWXR0LFl0dCksZD1jLmludmVydCxwPWMuZG9tYWluLG09bCgiLiVMIiksdT1sKCI6JVMiKSxmPWwoIiVJOiVNIiksZz1sKCIlSSAlcCIpLGg9bCgiJWEgJWQiKSxiPWwoIiViICVkIikseT1sKCIlQiIpLF89bCgiJVkiKSxDPVtbciwxLDFlM10sW3IsNSw1ZTNdLFtyLDE1LDE1ZTNdLFtyLDMwLDNlNF0sW2EsMSw2ZTRdLFthLDUsM2U1XSxbYSwxNSw5ZTVdLFthLDMwLDE4ZTVdLFtpLDEsMzZlNV0sW2ksMywxMDhlNV0sW2ksNiwyMTZlNV0sW2ksMTIsNDMyZTVdLFtvLDEsODY0ZTVdLFtvLDIsMTcyOGU1XSxbbiwxLDYwNDhlNV0sW2UsMSwyNTkyZTZdLFtlLDMsNzc3NmU2XSxbdCwxLGRvdF1dO2Z1bmN0aW9uIE0ocyl7cmV0dXJuKHIocyk8cz9tOmEocyk8cz91Omkocyk8cz9mOm8ocyk8cz9nOmUocyk8cz9uKHMpPHM/aDpiOnQocyk8cz95Ol8pKHMpfWZ1bmN0aW9uIHYoZSxuLG8saSl7aWYobnVsbD09ZSYmKGU9MTApLCJudW1iZXIiPT10eXBlb2YgZSl7dmFyIGE9TWF0aC5hYnMoby1uKS9lLHI9ZDUoKGZ1bmN0aW9uKHQpe3JldHVybiB0WzJdfSkpLnJpZ2h0KEMsYSk7cj09PUMubGVuZ3RoPyhpPXY1KG4vZG90LG8vZG90LGUpLGU9dCk6cj8oaT0ocj1DW2EvQ1tyLTFdWzJdPENbcl1bMl0vYT9yLTE6cl0pWzFdLGU9clswXSk6KGk9TWF0aC5tYXgodjUobixvLGUpLDEpLGU9cyl9cmV0dXJuIG51bGw9PWk/ZTplLmV2ZXJ5KGkpfXJldHVybiBjLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IERhdGUoZCh0KSl9LGMuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3AoSHR0LmNhbGwodCxtb3QpKTpwKCkubWFwKHBvdCl9LGMudGlja3M9ZnVuY3Rpb24odCxlKXt2YXIgbixvPXAoKSxpPW9bMF0sYT1vW28ubGVuZ3RoLTFdLHI9YTxpO3JldHVybiByJiYobj1pLGk9YSxhPW4pLG49KG49dih0LGksYSxlKSk/bi5yYW5nZShpLGErMSk6W10scj9uLnJldmVyc2UoKTpufSxjLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09ZT9NOmwoZSl9LGMubmljZT1mdW5jdGlvbih0LGUpe3ZhciBuPXAoKTtyZXR1cm4odD12KHQsblswXSxuW24ubGVuZ3RoLTFdLGUpKT9wKG5ldChuLHQpKTpjfSxjLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gSnR0KGMsdW90KHQsZSxuLG8saSxhLHIscyxsKSl9LGN9ZnVuY3Rpb24gZm90KCl7cmV0dXJuIE50dC5hcHBseSh1b3QoVGV0LFJldCxrZXQsUGV0LE9ldCx4ZXQsdmV0LGhldCxXZXQpLmRvbWFpbihbbmV3IERhdGUoMmUzLDAsMSksbmV3IERhdGUoMmUzLDAsMildKSxhcmd1bWVudHMpfWZ1bmN0aW9uIGdvdCh0KXtmb3IodmFyIGU9dC5sZW5ndGgvNnwwLG49bmV3IEFycmF5KGUpLG89MDtvPGU7KW5bb109IiMiK3Quc2xpY2UoNipvLDYqKytvKTtyZXR1cm4gbn1mdW5jdGlvbiBob3QodCl7cmV0dXJuIEg3KHRbdC5sZW5ndGgtMV0pfXZhciBib3Q9aG90KG5ldyBBcnJheSgzKS5jb25jYXQoImRlZWJmNzllY2FlMTMxODJiZCIsImVmZjNmZmJkZDdlNzZiYWVkNjIxNzFiNSIsImVmZjNmZmJkZDdlNzZiYWVkNjMxODJiZDA4NTE5YyIsImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjMxODJiZDA4NTE5YyIsImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NCIsImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NCIsImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NTE5YzA4MzA2YiIpLm1hcChnb3QpKSx5b3Q9aG90KG5ldyBBcnJheSgzKS5jb25jYXQoImYwZjBmMGJkYmRiZDYzNjM2MyIsImY3ZjdmN2NjY2NjYzk2OTY5NjUyNTI1MiIsImY3ZjdmN2NjY2NjYzk2OTY5NjYzNjM2MzI1MjUyNSIsImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjYzNjM2MzI1MjUyNSIsImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNSIsImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNSIsImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNTAwMDAwMCIpLm1hcChnb3QpKSxfb3Q9aG90KG5ldyBBcnJheSgzKS5jb25jYXQoImZlZTBkMmZjOTI3MmRlMmQyNiIsImZlZTVkOWZjYWU5MWZiNmE0YWNiMTgxZCIsImZlZTVkOWZjYWU5MWZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZGE1MGYxNTY3MDAwZCIpLm1hcChnb3QpKTtmdW5jdGlvbiBDb3QodCl7cmV0dXJuIGZ1bmN0aW9uIGUoKXtyZXR1cm4gdH19ZnVuY3Rpb24gTW90KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiB2b3QodCl7cmV0dXJuIG5ldyBNb3QodCl9ZnVuY3Rpb24geG90KHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIE9vdCh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBQb3QoKXt2YXIgdD14b3QsZT1Pb3Qsbj1Db3QoITApLG89bnVsbCxpPXZvdCxhPW51bGw7ZnVuY3Rpb24gcihyKXt2YXIgcyxsLGMsZD1yLmxlbmd0aCxwPSExO2ZvcihudWxsPT1vJiYoYT1pKGM9bXR0KCkpKSxzPTA7czw9ZDsrK3MpIShzPGQmJm4obD1yW3NdLHMscikpPT09cCYmKChwPSFwKT9hLmxpbmVTdGFydCgpOmEubGluZUVuZCgpKSxwJiZhLnBvaW50KCt0KGwscyxyKSwrZShsLHMscikpO2lmKGMpcmV0dXJuIGE9bnVsbCxjKyIifHxudWxsfXJldHVybiByLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpDb3QoK2UpLHIpOnR9LHIueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkNvdCgrdCkscik6ZX0sci5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Q290KCEhdCkscik6bn0sci5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LG51bGwhPW8mJihhPWkobykpLHIpOml9LHIuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9vPWE9bnVsbDphPWkobz10KSxyKTpvfSxyfWZ1bmN0aW9uIHdvdCh0LGUsbil7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHQuX3gxK3QuX2sqKHQuX3gyLXQuX3gwKSx0Ll95MSt0Ll9rKih0Ll95Mi10Ll95MCksdC5feDIrdC5fayoodC5feDEtZSksdC5feTIrdC5fayoodC5feTEtbiksdC5feDIsdC5feTIpfWZ1bmN0aW9uIGtvdCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLWUpLzZ9ZnVuY3Rpb24gU290KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9TW90LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpfX19LGtvdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6d290KHRoaXMsdGhpcy5feDEsdGhpcy5feTEpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94MT10LHRoaXMuX3kxPWU7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7ZGVmYXVsdDp3b3QodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19LFNvdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mil9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe2lmKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7dmFyIG49dGhpcy5feDItdCxvPXRoaXMuX3kyLWU7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhuKm4rbypvLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OiEoZnVuY3Rpb24gaSh0LGUsbil7dmFyIG89dC5feDEsaT10Ll95MSxhPXQuX3gyLHI9dC5feTI7aWYodC5fbDAxX2E+MWUtMTIpe3ZhciBzPTIqdC5fbDAxXzJhKzMqdC5fbDAxX2EqdC5fbDEyX2ErdC5fbDEyXzJhLGw9Myp0Ll9sMDFfYSoodC5fbDAxX2ErdC5fbDEyX2EpO289KG8qcy10Ll94MCp0Ll9sMTJfMmErdC5feDIqdC5fbDAxXzJhKS9sLGk9KGkqcy10Ll95MCp0Ll9sMTJfMmErdC5feTIqdC5fbDAxXzJhKS9sfWlmKHQuX2wyM19hPjFlLTEyKXt2YXIgYz0yKnQuX2wyM18yYSszKnQuX2wyM19hKnQuX2wxMl9hK3QuX2wxMl8yYSxkPTMqdC5fbDIzX2EqKHQuX2wyM19hK3QuX2wxMl9hKTthPShhKmMrdC5feDEqdC5fbDIzXzJhLWUqdC5fbDEyXzJhKS9kLHI9KHIqYyt0Ll95MSp0Ll9sMjNfMmEtbip0Ll9sMTJfMmEpL2R9dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG8saSxhLHIsdC5feDIsdC5feTIpfSkodGhpcyx0LGUpfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgRG90PShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGU/bmV3IFNvdCh0LGUpOm5ldyBrb3QodCwwKX1yZXR1cm4gbi5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSguNSk7Y29uc3QgRW90PTFlNCxSb3Q9LjAwMSxBb3Q9RXR0KCIuMn5lIiksVG90PUV0dCgiLjR+ciIpLE5vdD1FdHQoIix+Iik7ZnVuY3Rpb24gem90KHQpe2lmKDA9PT10KXJldHVybiIwIjtjb25zdCBlPU1hdGguYWJzKHQpO3JldHVybiBlPj1Fb3R8fGU8Um90P0FvdCh0KTpUb3QodCl9Y29uc3QgSW90PXtmb3JtYXRUaWNrOnpvdCxmb3JtYXRTaG9ydDp6b3QsZm9ybWF0UmVhZGFibGUodCl7Y29uc3QgZT1NYXRoLmFicyh0KTtyZXR1cm4gZT49RW90fHxlPFJvdD9Bb3QodCk6Tm90KHQpfSxmb3JtYXRMb25nOk5vdH0sSG90PW5ldyBJbnRsLk51bWJlckZvcm1hdCh2b2lkIDAse21heGltdW1GcmFjdGlvbkRpZ2l0czozfSk7ZnVuY3Rpb24gRm90KHQpe3JldHVybiBIb3QuZm9ybWF0KHQpfWNvbnN0IExvdD17Zm9ybWF0VGljazpGb3QsZm9ybWF0U2hvcnQ6Rm90LGZvcm1hdFJlYWRhYmxlOkZvdCxmb3JtYXRMb25nOkZvdH0sQm90PUV0dCgiMC4zfnMiKSxWb3Q9RXR0KCIsLjN+ZiIpO2Z1bmN0aW9uIGpvdCh0KXtjb25zdCBlPU1hdGguYWJzKHQpO3JldHVybiBlPj1Fb3R8fGU8Um90P0JvdCh0KTpWb3QodCl9Y29uc3QgVW90PXtmb3JtYXRUaWNrOmpvdCxmb3JtYXRTaG9ydDpqb3QsZm9ybWF0UmVhZGFibGU6am90LGZvcm1hdExvbmc6am90fSxHb3Q9MzZlNSxXb3Q9ODY0ZTUsWW90PTMxNTM2ZTYscW90PUV0dCgiLjR+Iik7ZnVuY3Rpb24gWm90KHQpe2lmKDA9PT10KXJldHVybiIwIjtsZXQgZT1NYXRoLnNpZ24odCk+MD8iIjoiLSI7Y29uc3Qgbj1NYXRoLmFicyh0KTtyZXR1cm4gZSs9bjwxZTM/YCR7cW90KG4pfSBtc2A6bjw2ZTQ/YCR7cW90KG4vMWUzKX0gc2VjYDpuPEdvdD9gJHtxb3Qobi82ZTQpfSBtaW5gOm48V290P2Ake3FvdChuL0dvdCl9IGhyYDpuPFlvdD9gJHtxb3Qobi9Xb3QpfSBkYXlgOmAke3FvdChuL1lvdCl9IHlyYCxlfWNvbnN0IFhvdD17Zm9ybWF0VGljazpab3QsZm9ybWF0U2hvcnQ6Wm90LGZvcm1hdFJlYWRhYmxlOlpvdCxmb3JtYXRMb25nOlpvdH0sS290PWZvdCgpLnRpY2tGb3JtYXQoKTtsZXQgSm90O2NvbnN0IFFvdD17Zm9ybWF0VGljazp0PT5Lb3QobmV3IERhdGUodCkpLGZvcm1hdFNob3J0OnQ9Pm5ldyBEYXRlKHQpLnRvTG9jYWxlU3RyaW5nKEpvdCx7eWVhcjoibnVtZXJpYyIsbW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIn0pLGZvcm1hdFJlYWRhYmxlOnQ9Pm5ldyBEYXRlKHQpLnRvTG9jYWxlU3RyaW5nKEpvdCx7eWVhcjoibnVtZXJpYyIsbW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIix0aW1lWm9uZU5hbWU6InNob3J0In0pLGZvcm1hdExvbmc6dD0+bmV3IERhdGUodCkudG9Mb2NhbGVTdHJpbmcoSm90LHt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsdGltZVpvbmVOYW1lOiJzaG9ydCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9O2Z1bmN0aW9uICRvdCh0KXtzd2l0Y2godCl7Y2FzZSBKMi5MSU5FQVI6cmV0dXJuIG5ldyB0aXQ7Y2FzZSBKMi5MT0cxMDpyZXR1cm4gbmV3IGVpdDtjYXNlIEoyLlRJTUU6cmV0dXJuIG5ldyBuaXQ7ZGVmYXVsdDp0aHJvdyBuZXcgUmFuZ2VFcnJvcihgU2NhbGVUeXBlICR7dH0gbm90IHN1cHBvcnRlZC5gKX19Y2xhc3MgdGl0e2NvbnN0cnVjdG9yKCl7dGhpcy5kZWZhdWx0Rm9ybWF0dGVyPUlvdH10cmFuc2Zvcm0odCxlLG4pe2NvbnN0W28saV09dCxhPWktbyxbcixzXT1lO3JldHVybiAwPT09YT9yOihzLXIpL2EqKG4tbykrcn1mb3J3YXJkKHQsZSxuKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0odCxlLG4pfXJldmVyc2UodCxlLG4pe3JldHVybiB0aGlzLnRyYW5zZm9ybShlLHQsbil9bmljZURvbWFpbih0KXtsZXRbZSxuXT10O2lmKG48ZSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW5wdXQ6IG1pbiBpcyBsYXJnZXIgdGhhbiBtYXgiKTtpZihuPT09ZSlyZXR1cm4gMD09PWU/Wy0xLDFdOmU8MD9bMiplLDBdOlswLDIqZV07Y29uc3Qgbz1lZXQoKSxpPS4wNSoobi1lK051bWJlci5FUFNJTE9OKSxbYSxyXT1vLmRvbWFpbihbZS1pLG4raV0pLm5pY2UoKS5kb21haW4oKTtyZXR1cm5bYSxyXX10aWNrcyh0LGUpe3JldHVybiBlZXQoKS5kb21haW4odCkudGlja3MoZSl9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCl9fWNsYXNzIGVpdHtjb25zdHJ1Y3Rvcigpe3RoaXMuZGVmYXVsdEZvcm1hdHRlcj1Jb3R9dHJhbnNmb3JtKHQpe3JldHVybiBNYXRoLmxvZzEwKHQ+MD90Ok51bWJlci5NSU5fVkFMVUUpfXVudHJhbnNmb3JtKHQpe3JldHVybiBNYXRoLmV4cCh0L01hdGguTE9HMTBFKX1mb3J3YXJkKHQsZSxuKXtpZihuPD0wKXJldHVybiBlWzBdO2NvbnN0W28saV09dCxbYSxyXT1lLHM9dGhpcy50cmFuc2Zvcm0obyksbD10aGlzLnRyYW5zZm9ybShpKS1zLGM9ci1hO3JldHVybiBuPXRoaXMudHJhbnNmb3JtKG4pLGMvKGwrTnVtYmVyLkVQU0lMT04pKihuLXMpK2F9cmV2ZXJzZSh0LGUsbil7Y29uc3RbbyxpXT10LFthLHJdPWUscz10aGlzLnRyYW5zZm9ybShvKSxsPXRoaXMudHJhbnNmb3JtKGkpO3JldHVybiB0aGlzLnVudHJhbnNmb3JtKChsLXMpLyhyLWErTnVtYmVyLkVQU0lMT04pKihuLWEpK3MpfW5pY2VEb21haW4odCl7Y29uc3RbZSxuXT10O2lmKGU+bil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW5wdXQ6IG1pbiBpcyBsYXJnZXIgdGhhbiBtYXgiKTtjb25zdCBvPU1hdGgubWF4KGUsTnVtYmVyLk1JTl9WQUxVRSksaT1NYXRoLm1heChuLE51bWJlci5NSU5fVkFMVUUpO3JldHVybiBuPD0wP1tOdW1iZXIuTUlOX1ZBTFVFLDFdOltNYXRoLm1heChOdW1iZXIuTUlOX1ZBTFVFLC41Km8pLDIqaV19dGlja3ModCxlKXtjb25zdCBuPXRbMF08PTA/TnVtYmVyLk1JTl9WQUxVRTp0WzBdLG89dFsxXTw9MD9OdW1iZXIuTUlOX1ZBTFVFOnRbMV0saT1wZXQoKS5kb21haW4oW24sb10pLnRpY2tzKGUpO3JldHVybiBpLmxlbmd0aD9pOnR9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCkmJnQ+MH19Y2xhc3Mgbml0e2NvbnN0cnVjdG9yKCl7dGhpcy5zY2FsZT1mb3QoKSx0aGlzLmRlZmF1bHRGb3JtYXR0ZXI9UW90fWZvcndhcmQodCxlLG4pe3JldHVybiB0aGlzLnNjYWxlLmRvbWFpbih0KS5yYW5nZShlKShuKX1yZXZlcnNlKHQsZSxuKXtyZXR1cm4gdGhpcy5zY2FsZS5kb21haW4odCkucmFuZ2UoZSkuaW52ZXJ0KG4pLmdldFRpbWUoKX1uaWNlRG9tYWluKHQpe2NvbnN0W2Usbl09dGhpcy5zY2FsZS5kb21haW4odCkubmljZSgpLmRvbWFpbigpO3JldHVybltlLmdldFRpbWUoKSxuLmdldFRpbWUoKV19dGlja3ModCxlKXtyZXR1cm4gdGhpcy5zY2FsZS5kb21haW4odCkudGlja3MoZSkubWFwKCh0PT50LmdldFRpbWUoKSkpfWlzU2FmZU51bWJlcih0KXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpfX1jb25zdCBvaXQ9Qm9vbGVhbihzZWxmLmhhc093blByb3BlcnR5KCJkb2N1bWVudCIpJiZkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCJ3ZWJnbDIiKSk7ZnVuY3Rpb24gaWl0KCl7cmV0dXJuIHNlbGYuaGFzT3duUHJvcGVydHkoIk9mZnNjcmVlbkNhbnZhcyIpfWZ1bmN0aW9uIGFpdCh0LGUpe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXSE9PWVbbl0pcmV0dXJuITE7cmV0dXJuITB9Y2xhc3Mgcml0e2NvbnN0cnVjdG9yKCl7dGhpcy54U2NhbGU9JG90KEoyLkxJTkVBUiksdGhpcy55U2NhbGU9JG90KEoyLkxJTkVBUiksdGhpcy5kb21Db250YWluZXJSZWN0PXt4OjAsd2lkdGg6MSx5OjAsaGVpZ2h0OjF9LHRoaXMubGFzdFVwZGF0ZWQ9MCx0aGlzLmN1cnJlbnRWaWV3Qm94UmVjdD17eDowLHdpZHRoOjEseTowLGhlaWdodDoxfX1nZXRVcGRhdGVJZGVudGlmaWVyKCl7cmV0dXJuIHRoaXMubGFzdFVwZGF0ZWR9dXBkYXRlSWRlbnRpZmllcigpe3RoaXMubGFzdFVwZGF0ZWQrK31pc1lBeGlzUG9pbnRlZERvd24oKXtyZXR1cm4hMH1zZXRYU2NhbGUodCl7dGhpcy54U2NhbGU9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1zZXRZU2NhbGUodCl7dGhpcy55U2NhbGU9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1nZXRDdXJyZW50Vmlld0JveFJlY3QoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld0JveFJlY3R9c2V0Vmlld0JveFJlY3QodCl7dGhpcy5jdXJyZW50Vmlld0JveFJlY3Q9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1zZXREb21Db250YWluZXJSZWN0KHQpe3RoaXMuZG9tQ29udGFpbmVyUmVjdD10LHRoaXMudXBkYXRlSWRlbnRpZmllcigpfXRyYW5zZm9ybURhdGFUb1VpQ29vcmQodCxlKXtjb25zdCBuPXQsbz0oZnVuY3Rpb24gaSh0KXtyZXR1cm57eDpbdC54LHQueCt0LndpZHRoXSx5Olt0LnksdC55K3QuaGVpZ2h0XX19KSh0aGlzLmN1cnJlbnRWaWV3Qm94UmVjdCk7cmV0dXJuW3RoaXMueFNjYWxlLmZvcndhcmQoby54LFtuLngsbi54K24ud2lkdGhdLGVbMF0pLHRoaXMueVNjYWxlLmZvcndhcmQoby55LHRoaXMuaXNZQXhpc1BvaW50ZWREb3duKCk/W24ueStuLmhlaWdodCxuLnldOltuLnksbi55K24uaGVpZ2h0XSxlWzFdKV19fWZ1bmN0aW9uIHNpdCh0LGUsbixvKXtjb25zdHtjb2xvcjppLHZpc2libGU6YSxvcGFjaXR5OnJ9PW87bGV0IHM9dDtpZihzKXtpZighYSlyZXR1cm4gcy5zdHlsZS5kaXNwbGF5PSJub25lIixzfWVsc2V7aWYoIWEpcmV0dXJuIG51bGw7cz1lKCl9cmV0dXJuIHM9bihzKSxzLnN0eWxlLmRpc3BsYXk9IiIscy5zdHlsZS5zdHJva2U9aSxzLnN0eWxlLm9wYWNpdHk9U3RyaW5nKG51bGwhPXI/cjoxKSxzfWNsYXNzIGxpdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN2Zz10fWZsdXNoKCl7fW9uUmVzaXplKHQpe31kZXN0cm95T2JqZWN0KHQpe3RoaXMuc3ZnLnJlbW92ZUNoaWxkKHQuZG9tKX1zZXRVc2VEYXJrTW9kZSh0KXt9Y3JlYXRlUGF0aERTdHJpbmcodCl7aWYoIXQubGVuZ3RoKXJldHVybiIiO2NvbnN0IGU9bmV3IEFycmF5KHQubGVuZ3RoLzIpO2VbMF09YE0ke3RbMF19LCR7dFsxXX1gO2ZvcihsZXQgbj0xO248dC5sZW5ndGgvMjtuKyspZVtuXT1gTCR7dFsyKm5dfSwke3RbMipuKzFdfWA7cmV0dXJuIGUuam9pbigiIil9Y3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHQsZSxuKXtjb25zdCBvPXNpdChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7dC5zdHlsZS5maWxsPSJub25lIjtjb25zdCBuPXRoaXMuY3JlYXRlUGF0aERTdHJpbmcoZSk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCJkIixuKSx0aGlzLnN2Zy5hcHBlbmRDaGlsZCh0KSx0fSksKG49PntpZighKG51bGw9PXQ/dm9pZCAwOnQuZGF0YSl8fCFhaXQoZSxudWxsPT10P3ZvaWQgMDp0LmRhdGEpKXtjb25zdCB0PXRoaXMuY3JlYXRlUGF0aERTdHJpbmcoZSk7bi5zZXRBdHRyaWJ1dGUoImQiLHQpfXJldHVybiBufSksbik7cmV0dXJuIG51bGw9PT1vP251bGw6KG8uc3R5bGUuc3Ryb2tlV2lkdGg9U3RyaW5nKG4ud2lkdGgpLHtkb206byxkYXRhOmV9KX1jcmVhdGVPclVwZGF0ZVRyaWFuZ2xlT2JqZWN0KHQsZSxuKXtjb25zdHtzaXplOm8sY29sb3I6aX09bixhPW8qTWF0aC5zcXJ0KDMpLzIscj1uZXcgRmxvYXQzMkFycmF5KFtlLngtby8yLGUueSthLzMsZS54K28vMixlLnkrYS8zLGUueCxlLnktMiphLzNdKSxzPXNpdChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7dC5jbGFzc0xpc3QuYWRkKCJ0cmlhbmdsZSIpLHQuc3R5bGUuZmlsbD0ibm9uZSI7Y29uc3QgZT10aGlzLmNyZWF0ZVBhdGhEU3RyaW5nKHIpO3JldHVybiB0LnNldEF0dHJpYnV0ZSgiZCIsZSsiWiIpLHRoaXMuc3ZnLmFwcGVuZENoaWxkKHQpLHR9KSwodD0+e2NvbnN0IGU9dGhpcy5jcmVhdGVQYXRoRFN0cmluZyhyKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoImQiLGUrIloiKSx0fSksbik7cmV0dXJuIG51bGw9PT1zP251bGw6KHMuc3R5bGUuZmlsbD1pLHtkb206cyxkYXRhOnJ9KX1jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0LGUsbil7Y29uc3R7Y29sb3I6byxyYWRpdXM6aX09bixhPXNpdChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJjaXJjbGUiKTtyZXR1cm4gdC5zdHlsZS5maWxsPW8sdC5zZXRBdHRyaWJ1dGUoImN4IixTdHJpbmcoZS54KSksdC5zZXRBdHRyaWJ1dGUoImN5IixTdHJpbmcoZS55KSksdC5zZXRBdHRyaWJ1dGUoInIiLFN0cmluZyhpKSksdGhpcy5zdmcuYXBwZW5kQ2hpbGQodCksdH0pLCh0PT4odC5zdHlsZS5maWxsPW8sdC5zZXRBdHRyaWJ1dGUoImN4IixTdHJpbmcoZS54KSksdC5zZXRBdHRyaWJ1dGUoImN5IixTdHJpbmcoZS55KSksdC5zZXRBdHRyaWJ1dGUoInIiLFN0cmluZyhpKSksdCkpLG4pO3JldHVybiBudWxsPT09YT9udWxsOntkb206YSxkYXRhOmV9fWNyZWF0ZU9yVXBkYXRlVHJhcGV6b2lkT2JqZWN0KHQsZSxuLG8pe2lmKGUueSE9PW4ueSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5wdXQgZXJyb3I6IHN0YXJ0LnkgIT0gZW5kLnkuIik7Y29uc3R7YWx0aXR1ZGU6aSxjb2xvcjphfT1vLHI9Mi9NYXRoLnNxcnQoMykqaSxzPW5ldyBGbG9hdDMyQXJyYXkoW2UueC1yLzIsZS55K2kvMixlLngsZS55LWkvMixuLngsbi55LWkvMixuLngrci8yLG4ueStpLzJdKSxsPXNpdChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7dC5jbGFzc0xpc3QuYWRkKCJ0cmFwZXpvaWQiKSx0LnN0eWxlLmZpbGw9Im5vbmUiO2NvbnN0IGU9dGhpcy5jcmVhdGVQYXRoRFN0cmluZyhzKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoImQiLGUrIloiKSx0aGlzLnN2Zy5hcHBlbmRDaGlsZCh0KSx0fSksKHQ9Pntjb25zdCBlPXRoaXMuY3JlYXRlUGF0aERTdHJpbmcocyk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCJkIixlKyJaIiksdH0pLG8pO3JldHVybiBudWxsPT09bD9udWxsOihsLnN0eWxlLmZpbGw9YSx7ZG9tOmwsZGF0YTpzfSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgMjAxMC0yMDIxIFRocmVlLmpzIEF1dGhvcnMKICAgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKICAgICAqL2NvbnN0IGNpdD0xMDAsZGl0PTMwMSxwaXQ9MzAyLG1pdD0zMDYsdWl0PTFlMyxmaXQ9MTAwMSxnaXQ9MTAwMixoaXQ9MTAwMyxiaXQ9MTAwNix5aXQ9MTAwOCxfaXQ9MTAwOSxDaXQ9MTAxMixNaXQ9MTAxNCx2aXQ9MTAxNSx4aXQ9MTAxNixPaXQ9MTAyMCxQaXQ9MTAyMix3aXQ9MTAyMyxraXQ9MTAyNixTaXQ9MTAyNyxEaXQ9MjMwMCxFaXQ9MjMwMSxSaXQ9MjMwMixBaXQ9MjQwMCxUaXQ9MjQwMSxOaXQ9MjQwMix6aXQ9M2UzLElpdD0zMDAxLEhpdD0zMDA3LEZpdD0zMDAyLExpdD03NjgwLEJpdD0zNTA0NCxWaXQ9MzUwNDgsaml0PSIzMDAgZXMiO2NsYXNzIFVpdHthZGRFdmVudExpc3RlbmVyKHQsZSl7dm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzJiYodGhpcy5fbGlzdGVuZXJzPXt9KTtjb25zdCBuPXRoaXMuX2xpc3RlbmVyczt2b2lkIDA9PT1uW3RdJiYoblt0XT1bXSksLTE9PT1uW3RdLmluZGV4T2YoZSkmJm5bdF0ucHVzaChlKX1oYXNFdmVudExpc3RlbmVyKHQsZSl7aWYodm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzKXJldHVybiExO2NvbnN0IG49dGhpcy5fbGlzdGVuZXJzO3JldHVybiB2b2lkIDAhPT1uW3RdJiYtMSE9PW5bdF0uaW5kZXhPZihlKX1yZW1vdmVFdmVudExpc3RlbmVyKHQsZSl7aWYodm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzKXJldHVybjtjb25zdCBuPXRoaXMuX2xpc3RlbmVyc1t0XTtpZih2b2lkIDAhPT1uKXtjb25zdCB0PW4uaW5kZXhPZihlKTstMSE9PXQmJm4uc3BsaWNlKHQsMSl9fWRpc3BhdGNoRXZlbnQodCl7aWYodm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzKXJldHVybjtjb25zdCBlPXRoaXMuX2xpc3RlbmVyc1t0LnR5cGVdO2lmKHZvaWQgMCE9PWUpe3QudGFyZ2V0PXRoaXM7Y29uc3Qgbj1lLnNsaWNlKDApO2ZvcihsZXQgZT0wLG89bi5sZW5ndGg7ZTxvO2UrKyluW2VdLmNhbGwodGhpcyx0KTt0LnRhcmdldD1udWxsfX19Y29uc3QgR2l0PVtdO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKylHaXRbdF09KHQ8MTY/IjAiOiIiKSt0LnRvU3RyaW5nKDE2KTtjb25zdCBXaXQ9TWF0aC5QSS8xODAsWWl0PTE4MC9NYXRoLlBJO2Z1bmN0aW9uIHFpdCgpe2NvbnN0IHQ9NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDAsZT00Mjk0OTY3Mjk1Kk1hdGgucmFuZG9tKCl8MCxuPTQyOTQ5NjcyOTUqTWF0aC5yYW5kb20oKXwwLG89NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDA7cmV0dXJuKEdpdFsyNTUmdF0rR2l0W3Q+PjgmMjU1XStHaXRbdD4+MTYmMjU1XStHaXRbdD4+MjQmMjU1XSsiLSIrR2l0WzI1NSZlXStHaXRbZT4+OCYyNTVdKyItIitHaXRbZT4+MTYmMTV8NjRdK0dpdFtlPj4yNCYyNTVdKyItIitHaXRbNjMmbnwxMjhdK0dpdFtuPj44JjI1NV0rIi0iK0dpdFtuPj4xNiYyNTVdK0dpdFtuPj4yNCYyNTVdK0dpdFsyNTUmb10rR2l0W28+PjgmMjU1XStHaXRbbz4+MTYmMjU1XStHaXRbbz4+MjQmMjU1XSkudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBaaXQodCxlLG4pe3JldHVybiBNYXRoLm1heChlLE1hdGgubWluKG4sdCkpfWZ1bmN0aW9uIFhpdCh0LGUsbil7cmV0dXJuKDEtbikqdCtuKmV9ZnVuY3Rpb24gS2l0KHQpe3JldHVybiAwPT0odCZ0LTEpJiYwIT09dH1mdW5jdGlvbiBKaXQodCl7cmV0dXJuIE1hdGgucG93KDIsTWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMikpfWNsYXNzIFFpdHtjb25zdHJ1Y3Rvcih0PTAsZT0wKXt0aGlzLng9dCx0aGlzLnk9ZX1nZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy54fXNldCB3aWR0aCh0KXt0aGlzLng9dH1nZXQgaGVpZ2h0KCl7cmV0dXJuIHRoaXMueX1zZXQgaGVpZ2h0KHQpe3RoaXMueT10fXNldCh0LGUpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9ZSx0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PXQsdGhpc31zZXRYKHQpe3JldHVybiB0aGlzLng9dCx0aGlzfXNldFkodCl7cmV0dXJuIHRoaXMueT10LHRoaXN9c2V0Q29tcG9uZW50KHQsZSl7c3dpdGNoKHQpe2Nhc2UgMDp0aGlzLng9ZTticmVhaztjYXNlIDE6dGhpcy55PWU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX1yZXR1cm4gdGhpc31nZXRDb21wb25lbnQodCl7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdGhpcy54O2Nhc2UgMTpyZXR1cm4gdGhpcy55O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMueCx0aGlzLnkpfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzfWFkZCh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5hZGQoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5hZGRWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmFkZFZlY3RvcnModCxlKSk6KHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXMpfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kz10LHRoaXMueSs9dCx0aGlzfWFkZFZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCtlLngsdGhpcy55PXQueStlLnksdGhpc31hZGRTY2FsZWRWZWN0b3IodCxlKXtyZXR1cm4gdGhpcy54Kz10LngqZSx0aGlzLnkrPXQueSplLHRoaXN9c3ViKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuc3ViVmVjdG9ycyh0LGUpKToodGhpcy54LT10LngsdGhpcy55LT10LnksdGhpcyl9c3ViU2NhbGFyKHQpe3JldHVybiB0aGlzLngtPXQsdGhpcy55LT10LHRoaXN9c3ViVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54LWUueCx0aGlzLnk9dC55LWUueSx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLngqPXQueCx0aGlzLnkqPXQueSx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLngqPXQsdGhpcy55Kj10LHRoaXN9ZGl2aWRlKHQpe3JldHVybiB0aGlzLngvPXQueCx0aGlzLnkvPXQueSx0aGlzfWRpdmlkZVNjYWxhcih0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVNjYWxhcigxL3QpfWFwcGx5TWF0cml4Myh0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxvPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1vWzBdKmUrb1szXSpuK29bNl0sdGhpcy55PW9bMV0qZStvWzRdKm4rb1s3XSx0aGlzfW1pbih0KXtyZXR1cm4gdGhpcy54PU1hdGgubWluKHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1pbih0aGlzLnksdC55KSx0aGlzfW1heCh0KXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1heCh0aGlzLnksdC55KSx0aGlzfWNsYW1wKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LngsTWF0aC5taW4oZS54LHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LnksTWF0aC5taW4oZS55LHRoaXMueSkpLHRoaXN9Y2xhbXBTY2FsYXIodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueSkpLHRoaXN9Y2xhbXBMZW5ndGgodCxlKXtjb25zdCBuPXRoaXMubGVuZ3RoKCk7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKG58fDEpLm11bHRpcGx5U2NhbGFyKE1hdGgubWF4KHQsTWF0aC5taW4oZSxuKSkpfWZsb29yKCl7cmV0dXJuIHRoaXMueD1NYXRoLmZsb29yKHRoaXMueCksdGhpcy55PU1hdGguZmxvb3IodGhpcy55KSx0aGlzfWNlaWwoKXtyZXR1cm4gdGhpcy54PU1hdGguY2VpbCh0aGlzLngpLHRoaXMueT1NYXRoLmNlaWwodGhpcy55KSx0aGlzfXJvdW5kKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJvdW5kKHRoaXMueCksdGhpcy55PU1hdGgucm91bmQodGhpcy55KSx0aGlzfXJvdW5kVG9aZXJvKCl7cmV0dXJuIHRoaXMueD10aGlzLng8MD9NYXRoLmNlaWwodGhpcy54KTpNYXRoLmZsb29yKHRoaXMueCksdGhpcy55PXRoaXMueTwwP01hdGguY2VpbCh0aGlzLnkpOk1hdGguZmxvb3IodGhpcy55KSx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLng9LXRoaXMueCx0aGlzLnk9LXRoaXMueSx0aGlzfWRvdCh0KXtyZXR1cm4gdGhpcy54KnQueCt0aGlzLnkqdC55fWNyb3NzKHQpe3JldHVybiB0aGlzLngqdC55LXRoaXMueSp0Lnh9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55fWxlbmd0aCgpe3JldHVybiBNYXRoLnNxcnQodGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55KX1tYW5oYXR0YW5MZW5ndGgoKXtyZXR1cm4gTWF0aC5hYnModGhpcy54KStNYXRoLmFicyh0aGlzLnkpfW5vcm1hbGl6ZSgpe3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcih0aGlzLmxlbmd0aCgpfHwxKX1hbmdsZSgpe3JldHVybiBNYXRoLmF0YW4yKC10aGlzLnksLXRoaXMueCkrTWF0aC5QSX1kaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLnNxcnQodGhpcy5kaXN0YW5jZVRvU3F1YXJlZCh0KSl9ZGlzdGFuY2VUb1NxdWFyZWQodCl7Y29uc3QgZT10aGlzLngtdC54LG49dGhpcy55LXQueTtyZXR1cm4gZSplK24qbn1tYW5oYXR0YW5EaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLmFicyh0aGlzLngtdC54KStNYXRoLmFicyh0aGlzLnktdC55KX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LGUpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSplLHRoaXMueSs9KHQueS10aGlzLnkpKmUsdGhpc31sZXJwVmVjdG9ycyh0LGUsbil7cmV0dXJuIHRoaXMueD10LngrKGUueC10LngpKm4sdGhpcy55PXQueSsoZS55LXQueSkqbix0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnl9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy54PXRbZV0sdGhpcy55PXRbZSsxXSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMueCx0W2UrMV09dGhpcy55LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil7cmV0dXJuIHZvaWQgMCE9PW4mJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgoZSksdGhpcy55PXQuZ2V0WShlKSx0aGlzfXJvdGF0ZUFyb3VuZCh0LGUpe2NvbnN0IG49TWF0aC5jb3MoZSksbz1NYXRoLnNpbihlKSxpPXRoaXMueC10LngsYT10aGlzLnktdC55O3JldHVybiB0aGlzLng9aSpuLWEqbyt0LngsdGhpcy55PWkqbythKm4rdC55LHRoaXN9cmFuZG9tKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJhbmRvbSgpLHRoaXMueT1NYXRoLnJhbmRvbSgpLHRoaXN9fVFpdC5wcm90b3R5cGUuaXNWZWN0b3IyPSEwO2NsYXNzICRpdHtjb25zdHJ1Y3Rvcigpe3RoaXMuZWxlbWVudHM9WzEsMCwwLDAsMSwwLDAsMCwxXSxhcmd1bWVudHMubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDM6IHRoZSBjb25zdHJ1Y3RvciBubyBsb25nZXIgcmVhZHMgYXJndW1lbnRzLiB1c2UgLnNldCgpIGluc3RlYWQuIil9c2V0KHQsZSxuLG8saSxhLHIscyxsKXtjb25zdCBjPXRoaXMuZWxlbWVudHM7cmV0dXJuIGNbMF09dCxjWzFdPW8sY1syXT1yLGNbM109ZSxjWzRdPWksY1s1XT1zLGNbNl09bixjWzddPWEsY1s4XT1sLHRoaXN9aWRlbnRpdHkoKXtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwxLDAsMCwwLDEpLHRoaXN9Y29weSh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzO3JldHVybiBlWzBdPW5bMF0sZVsxXT1uWzFdLGVbMl09blsyXSxlWzNdPW5bM10sZVs0XT1uWzRdLGVbNV09bls1XSxlWzZdPW5bNl0sZVs3XT1uWzddLGVbOF09bls4XSx0aGlzfWV4dHJhY3RCYXNpcyh0LGUsbil7cmV0dXJuIHQuc2V0RnJvbU1hdHJpeDNDb2x1bW4odGhpcywwKSxlLnNldEZyb21NYXRyaXgzQ29sdW1uKHRoaXMsMSksbi5zZXRGcm9tTWF0cml4M0NvbHVtbih0aGlzLDIpLHRoaXN9c2V0RnJvbU1hdHJpeDQodCl7Y29uc3QgZT10LmVsZW1lbnRzO3JldHVybiB0aGlzLnNldChlWzBdLGVbNF0sZVs4XSxlWzFdLGVbNV0sZVs5XSxlWzJdLGVbNl0sZVsxMF0pLHRoaXN9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0aGlzLHQpfXByZW11bHRpcGx5KHQpe3JldHVybiB0aGlzLm11bHRpcGx5TWF0cmljZXModCx0aGlzKX1tdWx0aXBseU1hdHJpY2VzKHQsZSl7Y29uc3Qgbj10LmVsZW1lbnRzLG89ZS5lbGVtZW50cyxpPXRoaXMuZWxlbWVudHMsYT1uWzBdLHI9blszXSxzPW5bNl0sbD1uWzFdLGM9bls0XSxkPW5bN10scD1uWzJdLG09bls1XSx1PW5bOF0sZj1vWzBdLGc9b1szXSxoPW9bNl0sYj1vWzFdLHk9b1s0XSxfPW9bN10sQz1vWzJdLE09b1s1XSx2PW9bOF07cmV0dXJuIGlbMF09YSpmK3IqYitzKkMsaVszXT1hKmcrcip5K3MqTSxpWzZdPWEqaCtyKl8rcyp2LGlbMV09bCpmK2MqYitkKkMsaVs0XT1sKmcrYyp5K2QqTSxpWzddPWwqaCtjKl8rZCp2LGlbMl09cCpmK20qYit1KkMsaVs1XT1wKmcrbSp5K3UqTSxpWzhdPXAqaCttKl8rdSp2LHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzO3JldHVybiBlWzBdKj10LGVbM10qPXQsZVs2XSo9dCxlWzFdKj10LGVbNF0qPXQsZVs3XSo9dCxlWzJdKj10LGVbNV0qPXQsZVs4XSo9dCx0aGlzfWRldGVybWluYW50KCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxuPXRbMV0sbz10WzJdLGk9dFszXSxhPXRbNF0scj10WzVdLHM9dFs2XSxsPXRbN10sYz10WzhdO3JldHVybiBlKmEqYy1lKnIqbC1uKmkqYytuKnIqcytvKmkqbC1vKmEqc31pbnZlcnQoKXtjb25zdCB0PXRoaXMuZWxlbWVudHMsZT10WzBdLG49dFsxXSxvPXRbMl0saT10WzNdLGE9dFs0XSxyPXRbNV0scz10WzZdLGw9dFs3XSxjPXRbOF0sZD1jKmEtcipsLHA9cipzLWMqaSxtPWwqaS1hKnMsdT1lKmQrbipwK28qbTtpZigwPT09dSlyZXR1cm4gdGhpcy5zZXQoMCwwLDAsMCwwLDAsMCwwLDApO2NvbnN0IGY9MS91O3JldHVybiB0WzBdPWQqZix0WzFdPShvKmwtYypuKSpmLHRbMl09KHIqbi1vKmEpKmYsdFszXT1wKmYsdFs0XT0oYyplLW8qcykqZix0WzVdPShvKmktciplKSpmLHRbNl09bSpmLHRbN109KG4qcy1sKmUpKmYsdFs4XT0oYSplLW4qaSkqZix0aGlzfXRyYW5zcG9zZSgpe2xldCB0O2NvbnN0IGU9dGhpcy5lbGVtZW50cztyZXR1cm4gdD1lWzFdLGVbMV09ZVszXSxlWzNdPXQsdD1lWzJdLGVbMl09ZVs2XSxlWzZdPXQsdD1lWzVdLGVbNV09ZVs3XSxlWzddPXQsdGhpc31nZXROb3JtYWxNYXRyaXgodCl7cmV0dXJuIHRoaXMuc2V0RnJvbU1hdHJpeDQodCkuaW52ZXJ0KCkudHJhbnNwb3NlKCl9dHJhbnNwb3NlSW50b0FycmF5KHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cztyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVszXSx0WzJdPWVbNl0sdFszXT1lWzFdLHRbNF09ZVs0XSx0WzVdPWVbN10sdFs2XT1lWzJdLHRbN109ZVs1XSx0WzhdPWVbOF0sdGhpc31zZXRVdlRyYW5zZm9ybSh0LGUsbixvLGksYSxyKXtjb25zdCBzPU1hdGguY29zKGkpLGw9TWF0aC5zaW4oaSk7cmV0dXJuIHRoaXMuc2V0KG4qcyxuKmwsLW4qKHMqYStsKnIpK2ErdCwtbypsLG8qcywtbyooLWwqYStzKnIpK3IrZSwwLDAsMSksdGhpc31zY2FsZSh0LGUpe2NvbnN0IG49dGhpcy5lbGVtZW50cztyZXR1cm4gblswXSo9dCxuWzNdKj10LG5bNl0qPXQsblsxXSo9ZSxuWzRdKj1lLG5bN10qPWUsdGhpc31yb3RhdGUodCl7Y29uc3QgZT1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpLG89dGhpcy5lbGVtZW50cyxpPW9bMF0sYT1vWzNdLHI9b1s2XSxzPW9bMV0sbD1vWzRdLGM9b1s3XTtyZXR1cm4gb1swXT1lKmkrbipzLG9bM109ZSphK24qbCxvWzZdPWUqcituKmMsb1sxXT0tbippK2UqcyxvWzRdPS1uKmErZSpsLG9bN109LW4qcitlKmMsdGhpc310cmFuc2xhdGUodCxlKXtjb25zdCBuPXRoaXMuZWxlbWVudHM7cmV0dXJuIG5bMF0rPXQqblsyXSxuWzNdKz10Km5bNV0sbls2XSs9dCpuWzhdLG5bMV0rPWUqblsyXSxuWzRdKz1lKm5bNV0sbls3XSs9ZSpuWzhdLHRoaXN9ZXF1YWxzKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7Zm9yKGxldCB0PTA7dDw5O3QrKylpZihlW3RdIT09blt0XSlyZXR1cm4hMTtyZXR1cm4hMH1mcm9tQXJyYXkodCxlPTApe2ZvcihsZXQgbj0wO248OTtuKyspdGhpcy5lbGVtZW50c1tuXT10W24rZV07cmV0dXJuIHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7Y29uc3Qgbj10aGlzLmVsZW1lbnRzO3JldHVybiB0W2VdPW5bMF0sdFtlKzFdPW5bMV0sdFtlKzJdPW5bMl0sdFtlKzNdPW5bM10sdFtlKzRdPW5bNF0sdFtlKzVdPW5bNV0sdFtlKzZdPW5bNl0sdFtlKzddPW5bN10sdFtlKzhdPW5bOF0sdH1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuZnJvbUFycmF5KHRoaXMuZWxlbWVudHMpfX1sZXQgdGF0OyRpdC5wcm90b3R5cGUuaXNNYXRyaXgzPSEwO2NsYXNzIGVhdHtzdGF0aWMgZ2V0RGF0YVVSTCh0KXtpZigvXmRhdGE6L2kudGVzdCh0LnNyYykpcmV0dXJuIHQuc3JjO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQpcmV0dXJuIHQuc3JjO2xldCBlO2lmKHQgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudCllPXQ7ZWxzZXt2b2lkIDA9PT10YXQmJih0YXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiY2FudmFzIikpLHRhdC53aWR0aD10LndpZHRoLHRhdC5oZWlnaHQ9dC5oZWlnaHQ7Y29uc3Qgbj10YXQuZ2V0Q29udGV4dCgiMmQiKTt0IGluc3RhbmNlb2YgSW1hZ2VEYXRhP24ucHV0SW1hZ2VEYXRhKHQsMCwwKTpuLmRyYXdJbWFnZSh0LDAsMCx0LndpZHRoLHQuaGVpZ2h0KSxlPXRhdH1yZXR1cm4gZS53aWR0aD4yMDQ4fHxlLmhlaWdodD4yMDQ4Pyhjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlVXRpbHMuZ2V0RGF0YVVSTDogSW1hZ2UgY29udmVydGVkIHRvIGpwZyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyIsdCksZS50b0RhdGFVUkwoImltYWdlL2pwZWciLC42KSk6ZS50b0RhdGFVUkwoImltYWdlL3BuZyIpfX1sZXQgbmF0PTA7Y2xhc3Mgb2F0IGV4dGVuZHMgVWl0e2NvbnN0cnVjdG9yKHQ9b2F0LkRFRkFVTFRfSU1BR0UsZT1vYXQuREVGQVVMVF9NQVBQSU5HLG49MTAwMSxvPTEwMDEsaT0xMDA2LGE9MTAwOCxyPTEwMjMscz0xMDA5LGw9MSxjPTNlMyl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTpuYXQrK30pLHRoaXMudXVpZD1xaXQoKSx0aGlzLm5hbWU9IiIsdGhpcy5pbWFnZT10LHRoaXMubWlwbWFwcz1bXSx0aGlzLm1hcHBpbmc9ZSx0aGlzLndyYXBTPW4sdGhpcy53cmFwVD1vLHRoaXMubWFnRmlsdGVyPWksdGhpcy5taW5GaWx0ZXI9YSx0aGlzLmFuaXNvdHJvcHk9bCx0aGlzLmZvcm1hdD1yLHRoaXMuaW50ZXJuYWxGb3JtYXQ9bnVsbCx0aGlzLnR5cGU9cyx0aGlzLm9mZnNldD1uZXcgUWl0KDAsMCksdGhpcy5yZXBlYXQ9bmV3IFFpdCgxLDEpLHRoaXMuY2VudGVyPW5ldyBRaXQoMCwwKSx0aGlzLnJvdGF0aW9uPTAsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSEwLHRoaXMubWF0cml4PW5ldyAkaXQsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITAsdGhpcy5wcmVtdWx0aXBseUFscGhhPSExLHRoaXMuZmxpcFk9ITAsdGhpcy51bnBhY2tBbGlnbm1lbnQ9NCx0aGlzLmVuY29kaW5nPWMsdGhpcy52ZXJzaW9uPTAsdGhpcy5vblVwZGF0ZT1udWxsLHRoaXMuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSExfXVwZGF0ZU1hdHJpeCgpe3RoaXMubWF0cml4LnNldFV2VHJhbnNmb3JtKHRoaXMub2Zmc2V0LngsdGhpcy5vZmZzZXQueSx0aGlzLnJlcGVhdC54LHRoaXMucmVwZWF0LnksdGhpcy5yb3RhdGlvbix0aGlzLmNlbnRlci54LHRoaXMuY2VudGVyLnkpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMubmFtZT10Lm5hbWUsdGhpcy5pbWFnZT10LmltYWdlLHRoaXMubWlwbWFwcz10Lm1pcG1hcHMuc2xpY2UoMCksdGhpcy5tYXBwaW5nPXQubWFwcGluZyx0aGlzLndyYXBTPXQud3JhcFMsdGhpcy53cmFwVD10LndyYXBULHRoaXMubWFnRmlsdGVyPXQubWFnRmlsdGVyLHRoaXMubWluRmlsdGVyPXQubWluRmlsdGVyLHRoaXMuYW5pc290cm9weT10LmFuaXNvdHJvcHksdGhpcy5mb3JtYXQ9dC5mb3JtYXQsdGhpcy5pbnRlcm5hbEZvcm1hdD10LmludGVybmFsRm9ybWF0LHRoaXMudHlwZT10LnR5cGUsdGhpcy5vZmZzZXQuY29weSh0Lm9mZnNldCksdGhpcy5yZXBlYXQuY29weSh0LnJlcGVhdCksdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5yb3RhdGlvbj10LnJvdGF0aW9uLHRoaXMubWF0cml4QXV0b1VwZGF0ZT10Lm1hdHJpeEF1dG9VcGRhdGUsdGhpcy5tYXRyaXguY29weSh0Lm1hdHJpeCksdGhpcy5nZW5lcmF0ZU1pcG1hcHM9dC5nZW5lcmF0ZU1pcG1hcHMsdGhpcy5wcmVtdWx0aXBseUFscGhhPXQucHJlbXVsdGlwbHlBbHBoYSx0aGlzLmZsaXBZPXQuZmxpcFksdGhpcy51bnBhY2tBbGlnbm1lbnQ9dC51bnBhY2tBbGlnbm1lbnQsdGhpcy5lbmNvZGluZz10LmVuY29kaW5nLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9dm9pZCAwPT09dHx8InN0cmluZyI9PXR5cGVvZiB0O2lmKCFlJiZ2b2lkIDAhPT10LnRleHR1cmVzW3RoaXMudXVpZF0pcmV0dXJuIHQudGV4dHVyZXNbdGhpcy51dWlkXTtjb25zdCBuPXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiVGV4dHVyZSIsZ2VuZXJhdG9yOiJUZXh0dXJlLnRvSlNPTiJ9LHV1aWQ6dGhpcy51dWlkLG5hbWU6dGhpcy5uYW1lLG1hcHBpbmc6dGhpcy5tYXBwaW5nLHJlcGVhdDpbdGhpcy5yZXBlYXQueCx0aGlzLnJlcGVhdC55XSxvZmZzZXQ6W3RoaXMub2Zmc2V0LngsdGhpcy5vZmZzZXQueV0sY2VudGVyOlt0aGlzLmNlbnRlci54LHRoaXMuY2VudGVyLnldLHJvdGF0aW9uOnRoaXMucm90YXRpb24sd3JhcDpbdGhpcy53cmFwUyx0aGlzLndyYXBUXSxmb3JtYXQ6dGhpcy5mb3JtYXQsdHlwZTp0aGlzLnR5cGUsZW5jb2Rpbmc6dGhpcy5lbmNvZGluZyxtaW5GaWx0ZXI6dGhpcy5taW5GaWx0ZXIsbWFnRmlsdGVyOnRoaXMubWFnRmlsdGVyLGFuaXNvdHJvcHk6dGhpcy5hbmlzb3Ryb3B5LGZsaXBZOnRoaXMuZmxpcFkscHJlbXVsdGlwbHlBbHBoYTp0aGlzLnByZW11bHRpcGx5QWxwaGEsdW5wYWNrQWxpZ25tZW50OnRoaXMudW5wYWNrQWxpZ25tZW50fTtpZih2b2lkIDAhPT10aGlzLmltYWdlKXtjb25zdCBvPXRoaXMuaW1hZ2U7aWYodm9pZCAwPT09by51dWlkJiYoby51dWlkPXFpdCgpKSwhZSYmdm9pZCAwPT09dC5pbWFnZXNbby51dWlkXSl7bGV0IGU7aWYoQXJyYXkuaXNBcnJheShvKSl7ZT1bXTtmb3IobGV0IHQ9MCxuPW8ubGVuZ3RoO3Q8bjt0KyspZS5wdXNoKGlhdChvW3RdLmlzRGF0YVRleHR1cmU/b1t0XS5pbWFnZTpvW3RdKSl9ZWxzZSBlPWlhdChvKTt0LmltYWdlc1tvLnV1aWRdPXt1dWlkOm8udXVpZCx1cmw6ZX19bi5pbWFnZT1vLnV1aWR9cmV0dXJuIGV8fCh0LnRleHR1cmVzW3RoaXMudXVpZF09biksbn1kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfXRyYW5zZm9ybVV2KHQpe2lmKDMwMCE9PXRoaXMubWFwcGluZylyZXR1cm4gdDtpZih0LmFwcGx5TWF0cml4Myh0aGlzLm1hdHJpeCksdC54PDB8fHQueD4xKXN3aXRjaCh0aGlzLndyYXBTKXtjYXNlIHVpdDp0Lng9dC54LU1hdGguZmxvb3IodC54KTticmVhaztjYXNlIGZpdDp0Lng9dC54PDA/MDoxO2JyZWFrO2Nhc2UgZ2l0OnQueD0xPT09TWF0aC5hYnMoTWF0aC5mbG9vcih0LngpJTIpP01hdGguY2VpbCh0LngpLXQueDp0LngtTWF0aC5mbG9vcih0LngpfWlmKHQueTwwfHx0Lnk+MSlzd2l0Y2godGhpcy53cmFwVCl7Y2FzZSB1aXQ6dC55PXQueS1NYXRoLmZsb29yKHQueSk7YnJlYWs7Y2FzZSBmaXQ6dC55PXQueTwwPzA6MTticmVhaztjYXNlIGdpdDp0Lnk9MT09PU1hdGguYWJzKE1hdGguZmxvb3IodC55KSUyKT9NYXRoLmNlaWwodC55KS10Lnk6dC55LU1hdGguZmxvb3IodC55KX1yZXR1cm4gdGhpcy5mbGlwWSYmKHQueT0xLXQueSksdH1zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK319ZnVuY3Rpb24gaWF0KHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTEltYWdlRWxlbWVudCYmdCBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnR8fCJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBJbWFnZUJpdG1hcCYmdCBpbnN0YW5jZW9mIEltYWdlQml0bWFwP2VhdC5nZXREYXRhVVJMKHQpOnQuZGF0YT97ZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LmRhdGEpLHdpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVpZ2h0LHR5cGU6dC5kYXRhLmNvbnN0cnVjdG9yLm5hbWV9Oihjb25zb2xlLndhcm4oIlRIUkVFLlRleHR1cmU6IFVuYWJsZSB0byBzZXJpYWxpemUgVGV4dHVyZS4iKSx7fSl9b2F0LkRFRkFVTFRfSU1BR0U9dm9pZCAwLG9hdC5ERUZBVUxUX01BUFBJTkc9MzAwLG9hdC5wcm90b3R5cGUuaXNUZXh0dXJlPSEwO2NsYXNzIGFhdHtjb25zdHJ1Y3Rvcih0PTAsZT0wLG49MCxvPTEpe3RoaXMueD10LHRoaXMueT1lLHRoaXMuej1uLHRoaXMudz1vfWdldCB3aWR0aCgpe3JldHVybiB0aGlzLnp9c2V0IHdpZHRoKHQpe3RoaXMuej10fWdldCBoZWlnaHQoKXtyZXR1cm4gdGhpcy53fXNldCBoZWlnaHQodCl7dGhpcy53PXR9c2V0KHQsZSxuLG8pe3JldHVybiB0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9bix0aGlzLnc9byx0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PXQsdGhpcy56PXQsdGhpcy53PXQsdGhpc31zZXRYKHQpe3JldHVybiB0aGlzLng9dCx0aGlzfXNldFkodCl7cmV0dXJuIHRoaXMueT10LHRoaXN9c2V0Wih0KXtyZXR1cm4gdGhpcy56PXQsdGhpc31zZXRXKHQpe3JldHVybiB0aGlzLnc9dCx0aGlzfXNldENvbXBvbmVudCh0LGUpe3N3aXRjaCh0KXtjYXNlIDA6dGhpcy54PWU7YnJlYWs7Y2FzZSAxOnRoaXMueT1lO2JyZWFrO2Nhc2UgMjp0aGlzLno9ZTticmVhaztjYXNlIDM6dGhpcy53PWU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX1yZXR1cm4gdGhpc31nZXRDb21wb25lbnQodCl7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdGhpcy54O2Nhc2UgMTpyZXR1cm4gdGhpcy55O2Nhc2UgMjpyZXR1cm4gdGhpcy56O2Nhc2UgMzpyZXR1cm4gdGhpcy53O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMueCx0aGlzLnksdGhpcy56LHRoaXMudyl9Y29weSh0KXtyZXR1cm4gdGhpcy54PXQueCx0aGlzLnk9dC55LHRoaXMuej10LnosdGhpcy53PXZvaWQgMCE9PXQudz90Lnc6MSx0aGlzfWFkZCh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5hZGQoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5hZGRWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmFkZFZlY3RvcnModCxlKSk6KHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXMueis9dC56LHRoaXMudys9dC53LHRoaXMpfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kz10LHRoaXMueSs9dCx0aGlzLnorPXQsdGhpcy53Kz10LHRoaXN9YWRkVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54K2UueCx0aGlzLnk9dC55K2UueSx0aGlzLno9dC56K2Uueix0aGlzLnc9dC53K2Uudyx0aGlzfWFkZFNjYWxlZFZlY3Rvcih0LGUpe3JldHVybiB0aGlzLngrPXQueCplLHRoaXMueSs9dC55KmUsdGhpcy56Kz10LnoqZSx0aGlzLncrPXQudyplLHRoaXN9c3ViKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuc3ViVmVjdG9ycyh0LGUpKToodGhpcy54LT10LngsdGhpcy55LT10LnksdGhpcy56LT10LnosdGhpcy53LT10LncsdGhpcyl9c3ViU2NhbGFyKHQpe3JldHVybiB0aGlzLngtPXQsdGhpcy55LT10LHRoaXMuei09dCx0aGlzLnctPXQsdGhpc31zdWJWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngtZS54LHRoaXMueT10LnktZS55LHRoaXMuej10LnotZS56LHRoaXMudz10LnctZS53LHRoaXN9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMueCo9dC54LHRoaXMueSo9dC55LHRoaXMueio9dC56LHRoaXMudyo9dC53LHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7cmV0dXJuIHRoaXMueCo9dCx0aGlzLnkqPXQsdGhpcy56Kj10LHRoaXMudyo9dCx0aGlzfWFwcGx5TWF0cml4NCh0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxvPXRoaXMueixpPXRoaXMudyxhPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1hWzBdKmUrYVs0XSpuK2FbOF0qbythWzEyXSppLHRoaXMueT1hWzFdKmUrYVs1XSpuK2FbOV0qbythWzEzXSppLHRoaXMuej1hWzJdKmUrYVs2XSpuK2FbMTBdKm8rYVsxNF0qaSx0aGlzLnc9YVszXSplK2FbN10qbithWzExXSpvK2FbMTVdKmksdGhpc31kaXZpZGVTY2FsYXIodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlTY2FsYXIoMS90KX1zZXRBeGlzQW5nbGVGcm9tUXVhdGVybmlvbih0KXt0aGlzLnc9MipNYXRoLmFjb3ModC53KTtjb25zdCBlPU1hdGguc3FydCgxLXQudyp0LncpO3JldHVybiBlPDFlLTQ/KHRoaXMueD0xLHRoaXMueT0wLHRoaXMuej0wKToodGhpcy54PXQueC9lLHRoaXMueT10LnkvZSx0aGlzLno9dC56L2UpLHRoaXN9c2V0QXhpc0FuZ2xlRnJvbVJvdGF0aW9uTWF0cml4KHQpe2xldCBlLG4sbyxpO2NvbnN0IGE9LjAxLHI9LjEscz10LmVsZW1lbnRzLGw9c1swXSxjPXNbNF0sZD1zWzhdLHA9c1sxXSxtPXNbNV0sdT1zWzldLGY9c1syXSxnPXNbNl0saD1zWzEwXTtpZihNYXRoLmFicyhjLXApPGEmJk1hdGguYWJzKGQtZik8YSYmTWF0aC5hYnModS1nKTxhKXtpZihNYXRoLmFicyhjK3ApPHImJk1hdGguYWJzKGQrZik8ciYmTWF0aC5hYnModStnKTxyJiZNYXRoLmFicyhsK20raC0zKTxyKXJldHVybiB0aGlzLnNldCgxLDAsMCwwKSx0aGlzO2U9TWF0aC5QSTtjb25zdCB0PShsKzEpLzIscz0obSsxKS8yLGI9KGgrMSkvMix5PShjK3ApLzQsXz0oZCtmKS80LEM9KHUrZykvNDtyZXR1cm4gdD5zJiZ0PmI/dDxhPyhuPTAsbz0uNzA3MTA2NzgxLGk9LjcwNzEwNjc4MSk6KG49TWF0aC5zcXJ0KHQpLG89eS9uLGk9Xy9uKTpzPmI/czxhPyhuPS43MDcxMDY3ODEsbz0wLGk9LjcwNzEwNjc4MSk6KG89TWF0aC5zcXJ0KHMpLG49eS9vLGk9Qy9vKTpiPGE/KG49LjcwNzEwNjc4MSxvPS43MDcxMDY3ODEsaT0wKTooaT1NYXRoLnNxcnQoYiksbj1fL2ksbz1DL2kpLHRoaXMuc2V0KG4sbyxpLGUpLHRoaXN9bGV0IGI9TWF0aC5zcXJ0KChnLXUpKihnLXUpKyhkLWYpKihkLWYpKyhwLWMpKihwLWMpKTtyZXR1cm4gTWF0aC5hYnMoYik8LjAwMSYmKGI9MSksdGhpcy54PShnLXUpL2IsdGhpcy55PShkLWYpL2IsdGhpcy56PShwLWMpL2IsdGhpcy53PU1hdGguYWNvcygobCttK2gtMSkvMiksdGhpc31taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpcy56PU1hdGgubWluKHRoaXMueix0LnopLHRoaXMudz1NYXRoLm1pbih0aGlzLncsdC53KSx0aGlzfW1heCh0KXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1heCh0aGlzLnksdC55KSx0aGlzLno9TWF0aC5tYXgodGhpcy56LHQueiksdGhpcy53PU1hdGgubWF4KHRoaXMudyx0LncpLHRoaXN9Y2xhbXAodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQueCxNYXRoLm1pbihlLngsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQueSxNYXRoLm1pbihlLnksdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQueixNYXRoLm1pbihlLnosdGhpcy56KSksdGhpcy53PU1hdGgubWF4KHQudyxNYXRoLm1pbihlLncsdGhpcy53KSksdGhpc31jbGFtcFNjYWxhcih0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnopKSx0aGlzLnc9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMudykpLHRoaXN9Y2xhbXBMZW5ndGgodCxlKXtjb25zdCBuPXRoaXMubGVuZ3RoKCk7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKG58fDEpLm11bHRpcGx5U2NhbGFyKE1hdGgubWF4KHQsTWF0aC5taW4oZSxuKSkpfWZsb29yKCl7cmV0dXJuIHRoaXMueD1NYXRoLmZsb29yKHRoaXMueCksdGhpcy55PU1hdGguZmxvb3IodGhpcy55KSx0aGlzLno9TWF0aC5mbG9vcih0aGlzLnopLHRoaXMudz1NYXRoLmZsb29yKHRoaXMudyksdGhpc31jZWlsKCl7cmV0dXJuIHRoaXMueD1NYXRoLmNlaWwodGhpcy54KSx0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSksdGhpcy56PU1hdGguY2VpbCh0aGlzLnopLHRoaXMudz1NYXRoLmNlaWwodGhpcy53KSx0aGlzfXJvdW5kKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJvdW5kKHRoaXMueCksdGhpcy55PU1hdGgucm91bmQodGhpcy55KSx0aGlzLno9TWF0aC5yb3VuZCh0aGlzLnopLHRoaXMudz1NYXRoLnJvdW5kKHRoaXMudyksdGhpc31yb3VuZFRvWmVybygpe3JldHVybiB0aGlzLng9dGhpcy54PDA/TWF0aC5jZWlsKHRoaXMueCk6TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT10aGlzLnk8MD9NYXRoLmNlaWwodGhpcy55KTpNYXRoLmZsb29yKHRoaXMueSksdGhpcy56PXRoaXMuejwwP01hdGguY2VpbCh0aGlzLnopOk1hdGguZmxvb3IodGhpcy56KSx0aGlzLnc9dGhpcy53PDA/TWF0aC5jZWlsKHRoaXMudyk6TWF0aC5mbG9vcih0aGlzLncpLHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMueD0tdGhpcy54LHRoaXMueT0tdGhpcy55LHRoaXMuej0tdGhpcy56LHRoaXMudz0tdGhpcy53LHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLngqdC54K3RoaXMueSp0LnkrdGhpcy56KnQueit0aGlzLncqdC53fWxlbmd0aFNxKCl7cmV0dXJuIHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSt0aGlzLnoqdGhpcy56K3RoaXMudyp0aGlzLnd9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMueit0aGlzLncqdGhpcy53KX1tYW5oYXR0YW5MZW5ndGgoKXtyZXR1cm4gTWF0aC5hYnModGhpcy54KStNYXRoLmFicyh0aGlzLnkpK01hdGguYWJzKHRoaXMueikrTWF0aC5hYnModGhpcy53KX1ub3JtYWxpemUoKXtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIodGhpcy5sZW5ndGgoKXx8MSl9c2V0TGVuZ3RoKHQpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHQpfWxlcnAodCxlKXtyZXR1cm4gdGhpcy54Kz0odC54LXRoaXMueCkqZSx0aGlzLnkrPSh0LnktdGhpcy55KSplLHRoaXMueis9KHQuei10aGlzLnopKmUsdGhpcy53Kz0odC53LXRoaXMudykqZSx0aGlzfWxlcnBWZWN0b3JzKHQsZSxuKXtyZXR1cm4gdGhpcy54PXQueCsoZS54LXQueCkqbix0aGlzLnk9dC55KyhlLnktdC55KSpuLHRoaXMuej10LnorKGUuei10LnopKm4sdGhpcy53PXQudysoZS53LXQudykqbix0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnkmJnQuej09PXRoaXMueiYmdC53PT09dGhpcy53fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMueD10W2VdLHRoaXMueT10W2UrMV0sdGhpcy56PXRbZSsyXSx0aGlzLnc9dFtlKzNdLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy54LHRbZSsxXT10aGlzLnksdFtlKzJdPXRoaXMueix0W2UrM109dGhpcy53LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil7cmV0dXJuIHZvaWQgMCE9PW4mJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgoZSksdGhpcy55PXQuZ2V0WShlKSx0aGlzLno9dC5nZXRaKGUpLHRoaXMudz10LmdldFcoZSksdGhpc31yYW5kb20oKXtyZXR1cm4gdGhpcy54PU1hdGgucmFuZG9tKCksdGhpcy55PU1hdGgucmFuZG9tKCksdGhpcy56PU1hdGgucmFuZG9tKCksdGhpcy53PU1hdGgucmFuZG9tKCksdGhpc319YWF0LnByb3RvdHlwZS5pc1ZlY3RvcjQ9ITA7Y2xhc3MgcmF0IGV4dGVuZHMgVWl0e2NvbnN0cnVjdG9yKHQsZSxuPXt9KXtzdXBlcigpLHRoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMuZGVwdGg9MSx0aGlzLnNjaXNzb3I9bmV3IGFhdCgwLDAsdCxlKSx0aGlzLnNjaXNzb3JUZXN0PSExLHRoaXMudmlld3BvcnQ9bmV3IGFhdCgwLDAsdCxlKSx0aGlzLnRleHR1cmU9bmV3IG9hdCh2b2lkIDAsbi5tYXBwaW5nLG4ud3JhcFMsbi53cmFwVCxuLm1hZ0ZpbHRlcixuLm1pbkZpbHRlcixuLmZvcm1hdCxuLnR5cGUsbi5hbmlzb3Ryb3B5LG4uZW5jb2RpbmcpLHRoaXMudGV4dHVyZS5pc1JlbmRlclRhcmdldFRleHR1cmU9ITAsdGhpcy50ZXh0dXJlLmltYWdlPXt3aWR0aDp0LGhlaWdodDplLGRlcHRoOjF9LHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9dm9pZCAwIT09bi5nZW5lcmF0ZU1pcG1hcHMmJm4uZ2VuZXJhdGVNaXBtYXBzLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9dm9pZCAwIT09bi5taW5GaWx0ZXI/bi5taW5GaWx0ZXI6Yml0LHRoaXMuZGVwdGhCdWZmZXI9dm9pZCAwPT09bi5kZXB0aEJ1ZmZlcnx8bi5kZXB0aEJ1ZmZlcix0aGlzLnN0ZW5jaWxCdWZmZXI9dm9pZCAwIT09bi5zdGVuY2lsQnVmZmVyJiZuLnN0ZW5jaWxCdWZmZXIsdGhpcy5kZXB0aFRleHR1cmU9dm9pZCAwIT09bi5kZXB0aFRleHR1cmU/bi5kZXB0aFRleHR1cmU6bnVsbH1zZXRUZXh0dXJlKHQpe3QuaW1hZ2U9e3dpZHRoOnRoaXMud2lkdGgsaGVpZ2h0OnRoaXMuaGVpZ2h0LGRlcHRoOnRoaXMuZGVwdGh9LHRoaXMudGV4dHVyZT10fXNldFNpemUodCxlLG49MSl7dGhpcy53aWR0aD09PXQmJnRoaXMuaGVpZ2h0PT09ZSYmdGhpcy5kZXB0aD09PW58fCh0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLmRlcHRoPW4sdGhpcy50ZXh0dXJlLmltYWdlLndpZHRoPXQsdGhpcy50ZXh0dXJlLmltYWdlLmhlaWdodD1lLHRoaXMudGV4dHVyZS5pbWFnZS5kZXB0aD1uLHRoaXMuZGlzcG9zZSgpKSx0aGlzLnZpZXdwb3J0LnNldCgwLDAsdCxlKSx0aGlzLnNjaXNzb3Iuc2V0KDAsMCx0LGUpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzLmRlcHRoPXQuZGVwdGgsdGhpcy52aWV3cG9ydC5jb3B5KHQudmlld3BvcnQpLHRoaXMudGV4dHVyZT10LnRleHR1cmUuY2xvbmUoKSx0aGlzLnRleHR1cmUuaW1hZ2U9ey4uLnRoaXMudGV4dHVyZS5pbWFnZX0sdGhpcy5kZXB0aEJ1ZmZlcj10LmRlcHRoQnVmZmVyLHRoaXMuc3RlbmNpbEJ1ZmZlcj10LnN0ZW5jaWxCdWZmZXIsdGhpcy5kZXB0aFRleHR1cmU9dC5kZXB0aFRleHR1cmUsdGhpc31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfX1yYXQucHJvdG90eXBlLmlzV2ViR0xSZW5kZXJUYXJnZXQ9ITAsY2xhc3MgZXh0ZW5kcyByYXR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSk7Y29uc3Qgbz10aGlzLnRleHR1cmU7dGhpcy50ZXh0dXJlPVtdO2ZvcihsZXQgdD0wO3Q8bjt0KyspdGhpcy50ZXh0dXJlW3RdPW8uY2xvbmUoKX1zZXRTaXplKHQsZSxuPTEpe2lmKHRoaXMud2lkdGghPT10fHx0aGlzLmhlaWdodCE9PWV8fHRoaXMuZGVwdGghPT1uKXt0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLmRlcHRoPW47Zm9yKGxldCBvPTAsaT10aGlzLnRleHR1cmUubGVuZ3RoO288aTtvKyspdGhpcy50ZXh0dXJlW29dLmltYWdlLndpZHRoPXQsdGhpcy50ZXh0dXJlW29dLmltYWdlLmhlaWdodD1lLHRoaXMudGV4dHVyZVtvXS5pbWFnZS5kZXB0aD1uO3RoaXMuZGlzcG9zZSgpfXJldHVybiB0aGlzLnZpZXdwb3J0LnNldCgwLDAsdCxlKSx0aGlzLnNjaXNzb3Iuc2V0KDAsMCx0LGUpLHRoaXN9Y29weSh0KXt0aGlzLmRpc3Bvc2UoKSx0aGlzLndpZHRoPXQud2lkdGgsdGhpcy5oZWlnaHQ9dC5oZWlnaHQsdGhpcy5kZXB0aD10LmRlcHRoLHRoaXMudmlld3BvcnQuc2V0KDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSx0aGlzLnNjaXNzb3Iuc2V0KDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSx0aGlzLmRlcHRoQnVmZmVyPXQuZGVwdGhCdWZmZXIsdGhpcy5zdGVuY2lsQnVmZmVyPXQuc3RlbmNpbEJ1ZmZlcix0aGlzLmRlcHRoVGV4dHVyZT10LmRlcHRoVGV4dHVyZSx0aGlzLnRleHR1cmUubGVuZ3RoPTA7Zm9yKGxldCBlPTAsbj10LnRleHR1cmUubGVuZ3RoO2U8bjtlKyspdGhpcy50ZXh0dXJlW2VdPXQudGV4dHVyZVtlXS5jbG9uZSgpO3JldHVybiB0aGlzfX0ucHJvdG90eXBlLmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHM9ITA7Y2xhc3Mgc2F0IGV4dGVuZHMgcmF0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUsbiksdGhpcy5zYW1wbGVzPTR9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weS5jYWxsKHRoaXMsdCksdGhpcy5zYW1wbGVzPXQuc2FtcGxlcyx0aGlzfX1zYXQucHJvdG90eXBlLmlzV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldD0hMDtjbGFzcyBsYXR7Y29uc3RydWN0b3IodD0wLGU9MCxuPTAsbz0xKXt0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3o9bix0aGlzLl93PW99c3RhdGljIHNsZXJwKHQsZSxuLG8pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IFN0YXRpYyAuc2xlcnAoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgcW0uc2xlcnBRdWF0ZXJuaW9ucyggcWEsIHFiLCB0ICkgaW5zdGVhZC4iKSxuLnNsZXJwUXVhdGVybmlvbnModCxlLG8pfXN0YXRpYyBzbGVycEZsYXQodCxlLG4sbyxpLGEscil7bGV0IHM9bltvKzBdLGw9bltvKzFdLGM9bltvKzJdLGQ9bltvKzNdO2NvbnN0IHA9aVthKzBdLG09aVthKzFdLHU9aVthKzJdLGY9aVthKzNdO2lmKDA9PT1yKXJldHVybiB0W2UrMF09cyx0W2UrMV09bCx0W2UrMl09Yyx2b2lkKHRbZSszXT1kKTtpZigxPT09cilyZXR1cm4gdFtlKzBdPXAsdFtlKzFdPW0sdFtlKzJdPXUsdm9pZCh0W2UrM109Zik7aWYoZCE9PWZ8fHMhPT1wfHxsIT09bXx8YyE9PXUpe2xldCB0PTEtcjtjb25zdCBlPXMqcCtsKm0rYyp1K2QqZixuPWU+PTA/MTotMSxvPTEtZSplO2lmKG8+TnVtYmVyLkVQU0lMT04pe2NvbnN0IGk9TWF0aC5zcXJ0KG8pLGE9TWF0aC5hdGFuMihpLGUqbik7dD1NYXRoLnNpbih0KmEpL2kscj1NYXRoLnNpbihyKmEpL2l9Y29uc3QgaT1yKm47aWYocz1zKnQrcCppLGw9bCp0K20qaSxjPWMqdCt1KmksZD1kKnQrZippLHQ9PT0xLXIpe2NvbnN0IHQ9MS9NYXRoLnNxcnQocypzK2wqbCtjKmMrZCpkKTtzKj10LGwqPXQsYyo9dCxkKj10fX10W2VdPXMsdFtlKzFdPWwsdFtlKzJdPWMsdFtlKzNdPWR9c3RhdGljIG11bHRpcGx5UXVhdGVybmlvbnNGbGF0KHQsZSxuLG8saSxhKXtjb25zdCByPW5bb10scz1uW28rMV0sbD1uW28rMl0sYz1uW28rM10sZD1pW2FdLHA9aVthKzFdLG09aVthKzJdLHU9aVthKzNdO3JldHVybiB0W2VdPXIqdStjKmQrcyptLWwqcCx0W2UrMV09cyp1K2MqcCtsKmQtciptLHRbZSsyXT1sKnUrYyptK3IqcC1zKmQsdFtlKzNdPWMqdS1yKmQtcypwLWwqbSx0fWdldCB4KCl7cmV0dXJuIHRoaXMuX3h9c2V0IHgodCl7dGhpcy5feD10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeSgpe3JldHVybiB0aGlzLl95fXNldCB5KHQpe3RoaXMuX3k9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHooKXtyZXR1cm4gdGhpcy5fen1zZXQgeih0KXt0aGlzLl96PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB3KCl7cmV0dXJuIHRoaXMuX3d9c2V0IHcodCl7dGhpcy5fdz10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1zZXQodCxlLG4sbyl7cmV0dXJuIHRoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1uLHRoaXMuX3c9byx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLl94LHRoaXMuX3ksdGhpcy5feix0aGlzLl93KX1jb3B5KHQpe3JldHVybiB0aGlzLl94PXQueCx0aGlzLl95PXQueSx0aGlzLl96PXQueix0aGlzLl93PXQudyx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tRXVsZXIodCxlKXtpZighdHx8IXQuaXNFdWxlcil0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLlF1YXRlcm5pb246IC5zZXRGcm9tRXVsZXIoKSBub3cgZXhwZWN0cyBhbiBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLiIpO2NvbnN0IG49dC5feCxvPXQuX3ksaT10Ll96LGE9dC5fb3JkZXIscj1NYXRoLmNvcyxzPU1hdGguc2luLGw9cihuLzIpLGM9cihvLzIpLGQ9cihpLzIpLHA9cyhuLzIpLG09cyhvLzIpLHU9cyhpLzIpO3N3aXRjaChhKXtjYXNlIlhZWiI6dGhpcy5feD1wKmMqZCtsKm0qdSx0aGlzLl95PWwqbSpkLXAqYyp1LHRoaXMuX3o9bCpjKnUrcCptKmQsdGhpcy5fdz1sKmMqZC1wKm0qdTticmVhaztjYXNlIllYWiI6dGhpcy5feD1wKmMqZCtsKm0qdSx0aGlzLl95PWwqbSpkLXAqYyp1LHRoaXMuX3o9bCpjKnUtcCptKmQsdGhpcy5fdz1sKmMqZCtwKm0qdTticmVhaztjYXNlIlpYWSI6dGhpcy5feD1wKmMqZC1sKm0qdSx0aGlzLl95PWwqbSpkK3AqYyp1LHRoaXMuX3o9bCpjKnUrcCptKmQsdGhpcy5fdz1sKmMqZC1wKm0qdTticmVhaztjYXNlIlpZWCI6dGhpcy5feD1wKmMqZC1sKm0qdSx0aGlzLl95PWwqbSpkK3AqYyp1LHRoaXMuX3o9bCpjKnUtcCptKmQsdGhpcy5fdz1sKmMqZCtwKm0qdTticmVhaztjYXNlIllaWCI6dGhpcy5feD1wKmMqZCtsKm0qdSx0aGlzLl95PWwqbSpkK3AqYyp1LHRoaXMuX3o9bCpjKnUtcCptKmQsdGhpcy5fdz1sKmMqZC1wKm0qdTticmVhaztjYXNlIlhaWSI6dGhpcy5feD1wKmMqZC1sKm0qdSx0aGlzLl95PWwqbSpkLXAqYyp1LHRoaXMuX3o9bCpjKnUrcCptKmQsdGhpcy5fdz1sKmMqZCtwKm0qdTticmVhaztkZWZhdWx0OmNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLnNldEZyb21FdWxlcigpIGVuY291bnRlcmVkIGFuIHVua25vd24gb3JkZXI6ICIrYSl9cmV0dXJuITEhPT1lJiZ0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tQXhpc0FuZ2xlKHQsZSl7Y29uc3Qgbj1lLzIsbz1NYXRoLnNpbihuKTtyZXR1cm4gdGhpcy5feD10Lngqbyx0aGlzLl95PXQueSpvLHRoaXMuX3o9dC56Km8sdGhpcy5fdz1NYXRoLmNvcyhuKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUm90YXRpb25NYXRyaXgodCl7Y29uc3QgZT10LmVsZW1lbnRzLG49ZVswXSxvPWVbNF0saT1lWzhdLGE9ZVsxXSxyPWVbNV0scz1lWzldLGw9ZVsyXSxjPWVbNl0sZD1lWzEwXSxwPW4rcitkO2lmKHA+MCl7Y29uc3QgdD0uNS9NYXRoLnNxcnQocCsxKTt0aGlzLl93PS4yNS90LHRoaXMuX3g9KGMtcykqdCx0aGlzLl95PShpLWwpKnQsdGhpcy5fej0oYS1vKSp0fWVsc2UgaWYobj5yJiZuPmQpe2NvbnN0IHQ9MipNYXRoLnNxcnQoMStuLXItZCk7dGhpcy5fdz0oYy1zKS90LHRoaXMuX3g9LjI1KnQsdGhpcy5feT0obythKS90LHRoaXMuX3o9KGkrbCkvdH1lbHNlIGlmKHI+ZCl7Y29uc3QgdD0yKk1hdGguc3FydCgxK3Itbi1kKTt0aGlzLl93PShpLWwpL3QsdGhpcy5feD0obythKS90LHRoaXMuX3k9LjI1KnQsdGhpcy5fej0ocytjKS90fWVsc2V7Y29uc3QgdD0yKk1hdGguc3FydCgxK2Qtbi1yKTt0aGlzLl93PShhLW8pL3QsdGhpcy5feD0oaStsKS90LHRoaXMuX3k9KHMrYykvdCx0aGlzLl96PS4yNSp0fXJldHVybiB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tVW5pdFZlY3RvcnModCxlKXtsZXQgbj10LmRvdChlKSsxO3JldHVybiBuPE51bWJlci5FUFNJTE9OPyhuPTAsTWF0aC5hYnModC54KT5NYXRoLmFicyh0LnopPyh0aGlzLl94PS10LnksdGhpcy5feT10LngsdGhpcy5fej0wLHRoaXMuX3c9bik6KHRoaXMuX3g9MCx0aGlzLl95PS10LnosdGhpcy5fej10LnksdGhpcy5fdz1uKSk6KHRoaXMuX3g9dC55KmUuei10LnoqZS55LHRoaXMuX3k9dC56KmUueC10LngqZS56LHRoaXMuX3o9dC54KmUueS10LnkqZS54LHRoaXMuX3c9biksdGhpcy5ub3JtYWxpemUoKX1hbmdsZVRvKHQpe3JldHVybiAyKk1hdGguYWNvcyhNYXRoLmFicyhaaXQodGhpcy5kb3QodCksLTEsMSkpKX1yb3RhdGVUb3dhcmRzKHQsZSl7Y29uc3Qgbj10aGlzLmFuZ2xlVG8odCk7aWYoMD09PW4pcmV0dXJuIHRoaXM7Y29uc3Qgbz1NYXRoLm1pbigxLGUvbik7cmV0dXJuIHRoaXMuc2xlcnAodCxvKSx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDAsMCwwLDEpfWludmVydCgpe3JldHVybiB0aGlzLmNvbmp1Z2F0ZSgpfWNvbmp1Z2F0ZSgpe3JldHVybiB0aGlzLl94Kj0tMSx0aGlzLl95Kj0tMSx0aGlzLl96Kj0tMSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31kb3QodCl7cmV0dXJuIHRoaXMuX3gqdC5feCt0aGlzLl95KnQuX3krdGhpcy5feip0Ll96K3RoaXMuX3cqdC5fd31sZW5ndGhTcSgpe3JldHVybiB0aGlzLl94KnRoaXMuX3grdGhpcy5feSp0aGlzLl95K3RoaXMuX3oqdGhpcy5feit0aGlzLl93KnRoaXMuX3d9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLl94KnRoaXMuX3grdGhpcy5feSp0aGlzLl95K3RoaXMuX3oqdGhpcy5feit0aGlzLl93KnRoaXMuX3cpfW5vcm1hbGl6ZSgpe2xldCB0PXRoaXMubGVuZ3RoKCk7cmV0dXJuIDA9PT10Pyh0aGlzLl94PTAsdGhpcy5feT0wLHRoaXMuX3o9MCx0aGlzLl93PTEpOih0PTEvdCx0aGlzLl94PXRoaXMuX3gqdCx0aGlzLl95PXRoaXMuX3kqdCx0aGlzLl96PXRoaXMuX3oqdCx0aGlzLl93PXRoaXMuX3cqdCksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9bXVsdGlwbHkodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAubXVsdGlwbHkoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5tdWx0aXBseVF1YXRlcm5pb25zKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLm11bHRpcGx5UXVhdGVybmlvbnModCxlKSk6dGhpcy5tdWx0aXBseVF1YXRlcm5pb25zKHRoaXMsdCl9cHJlbXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyh0LHRoaXMpfW11bHRpcGx5UXVhdGVybmlvbnModCxlKXtjb25zdCBuPXQuX3gsbz10Ll95LGk9dC5feixhPXQuX3cscj1lLl94LHM9ZS5feSxsPWUuX3osYz1lLl93O3JldHVybiB0aGlzLl94PW4qYythKnIrbypsLWkqcyx0aGlzLl95PW8qYythKnMraSpyLW4qbCx0aGlzLl96PWkqYythKmwrbipzLW8qcix0aGlzLl93PWEqYy1uKnItbypzLWkqbCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zbGVycCh0LGUpe2lmKDA9PT1lKXJldHVybiB0aGlzO2lmKDE9PT1lKXJldHVybiB0aGlzLmNvcHkodCk7Y29uc3Qgbj10aGlzLl94LG89dGhpcy5feSxpPXRoaXMuX3osYT10aGlzLl93O2xldCByPWEqdC5fdytuKnQuX3grbyp0Ll95K2kqdC5fejtpZihyPDA/KHRoaXMuX3c9LXQuX3csdGhpcy5feD0tdC5feCx0aGlzLl95PS10Ll95LHRoaXMuX3o9LXQuX3oscj0tcik6dGhpcy5jb3B5KHQpLHI+PTEpcmV0dXJuIHRoaXMuX3c9YSx0aGlzLl94PW4sdGhpcy5feT1vLHRoaXMuX3o9aSx0aGlzO2NvbnN0IHM9MS1yKnI7aWYoczw9TnVtYmVyLkVQU0lMT04pe2NvbnN0IHQ9MS1lO3JldHVybiB0aGlzLl93PXQqYStlKnRoaXMuX3csdGhpcy5feD10Km4rZSp0aGlzLl94LHRoaXMuX3k9dCpvK2UqdGhpcy5feSx0aGlzLl96PXQqaStlKnRoaXMuX3osdGhpcy5ub3JtYWxpemUoKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31jb25zdCBsPU1hdGguc3FydChzKSxjPU1hdGguYXRhbjIobCxyKSxkPU1hdGguc2luKCgxLWUpKmMpL2wscD1NYXRoLnNpbihlKmMpL2w7cmV0dXJuIHRoaXMuX3c9YSpkK3RoaXMuX3cqcCx0aGlzLl94PW4qZCt0aGlzLl94KnAsdGhpcy5feT1vKmQrdGhpcy5feSpwLHRoaXMuX3o9aSpkK3RoaXMuX3oqcCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zbGVycFF1YXRlcm5pb25zKHQsZSxuKXt0aGlzLmNvcHkodCkuc2xlcnAoZSxuKX1lcXVhbHModCl7cmV0dXJuIHQuX3g9PT10aGlzLl94JiZ0Ll95PT09dGhpcy5feSYmdC5fej09PXRoaXMuX3omJnQuX3c9PT10aGlzLl93fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMuX3g9dFtlXSx0aGlzLl95PXRbZSsxXSx0aGlzLl96PXRbZSsyXSx0aGlzLl93PXRbZSszXSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLl94LHRbZSsxXT10aGlzLl95LHRbZSsyXT10aGlzLl96LHRbZSszXT10aGlzLl93LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpe3JldHVybiB0aGlzLl94PXQuZ2V0WChlKSx0aGlzLl95PXQuZ2V0WShlKSx0aGlzLl96PXQuZ2V0WihlKSx0aGlzLl93PXQuZ2V0VyhlKSx0aGlzfV9vbkNoYW5nZSh0KXtyZXR1cm4gdGhpcy5fb25DaGFuZ2VDYWxsYmFjaz10LHRoaXN9X29uQ2hhbmdlQ2FsbGJhY2soKXt9fWxhdC5wcm90b3R5cGUuaXNRdWF0ZXJuaW9uPSEwO2NsYXNzIGNhdHtjb25zdHJ1Y3Rvcih0PTAsZT0wLG49MCl7dGhpcy54PXQsdGhpcy55PWUsdGhpcy56PW59c2V0KHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49dGhpcy56KSx0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9bix0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PXQsdGhpcy56PXQsdGhpc31zZXRYKHQpe3JldHVybiB0aGlzLng9dCx0aGlzfXNldFkodCl7cmV0dXJuIHRoaXMueT10LHRoaXN9c2V0Wih0KXtyZXR1cm4gdGhpcy56PXQsdGhpc31zZXRDb21wb25lbnQodCxlKXtzd2l0Y2godCl7Y2FzZSAwOnRoaXMueD1lO2JyZWFrO2Nhc2UgMTp0aGlzLnk9ZTticmVhaztjYXNlIDI6dGhpcy56PWU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX1yZXR1cm4gdGhpc31nZXRDb21wb25lbnQodCl7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdGhpcy54O2Nhc2UgMTpyZXR1cm4gdGhpcy55O2Nhc2UgMjpyZXR1cm4gdGhpcy56O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMueCx0aGlzLnksdGhpcy56KX1jb3B5KHQpe3JldHVybiB0aGlzLng9dC54LHRoaXMueT10LnksdGhpcy56PXQueix0aGlzfWFkZCh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5hZGQoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5hZGRWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmFkZFZlY3RvcnModCxlKSk6KHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXMueis9dC56LHRoaXMpfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kz10LHRoaXMueSs9dCx0aGlzLnorPXQsdGhpc31hZGRWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngrZS54LHRoaXMueT10LnkrZS55LHRoaXMuej10LnorZS56LHRoaXN9YWRkU2NhbGVkVmVjdG9yKHQsZSl7cmV0dXJuIHRoaXMueCs9dC54KmUsdGhpcy55Kz10LnkqZSx0aGlzLnorPXQueiplLHRoaXN9c3ViKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuc3ViVmVjdG9ycyh0LGUpKToodGhpcy54LT10LngsdGhpcy55LT10LnksdGhpcy56LT10LnosdGhpcyl9c3ViU2NhbGFyKHQpe3JldHVybiB0aGlzLngtPXQsdGhpcy55LT10LHRoaXMuei09dCx0aGlzfXN1YlZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueC1lLngsdGhpcy55PXQueS1lLnksdGhpcy56PXQuei1lLnosdGhpc31tdWx0aXBseSh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5tdWx0aXBseSgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLm11bHRpcGx5VmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5tdWx0aXBseVZlY3RvcnModCxlKSk6KHRoaXMueCo9dC54LHRoaXMueSo9dC55LHRoaXMueio9dC56LHRoaXMpfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLngqPXQsdGhpcy55Kj10LHRoaXMueio9dCx0aGlzfW11bHRpcGx5VmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54KmUueCx0aGlzLnk9dC55KmUueSx0aGlzLno9dC56KmUueix0aGlzfWFwcGx5RXVsZXIodCl7cmV0dXJuIHQmJnQuaXNFdWxlcnx8Y29uc29sZS5lcnJvcigiVEhSRUUuVmVjdG9yMzogLmFwcGx5RXVsZXIoKSBub3cgZXhwZWN0cyBhbiBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLiIpLHRoaXMuYXBwbHlRdWF0ZXJuaW9uKHBhdC5zZXRGcm9tRXVsZXIodCkpfWFwcGx5QXhpc0FuZ2xlKHQsZSl7cmV0dXJuIHRoaXMuYXBwbHlRdWF0ZXJuaW9uKHBhdC5zZXRGcm9tQXhpc0FuZ2xlKHQsZSkpfWFwcGx5TWF0cml4Myh0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxvPXRoaXMueixpPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1pWzBdKmUraVszXSpuK2lbNl0qbyx0aGlzLnk9aVsxXSplK2lbNF0qbitpWzddKm8sdGhpcy56PWlbMl0qZStpWzVdKm4raVs4XSpvLHRoaXN9YXBwbHlOb3JtYWxNYXRyaXgodCl7cmV0dXJuIHRoaXMuYXBwbHlNYXRyaXgzKHQpLm5vcm1hbGl6ZSgpfWFwcGx5TWF0cml4NCh0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxvPXRoaXMueixpPXQuZWxlbWVudHMsYT0xLyhpWzNdKmUraVs3XSpuK2lbMTFdKm8raVsxNV0pO3JldHVybiB0aGlzLng9KGlbMF0qZStpWzRdKm4raVs4XSpvK2lbMTJdKSphLHRoaXMueT0oaVsxXSplK2lbNV0qbitpWzldKm8raVsxM10pKmEsdGhpcy56PShpWzJdKmUraVs2XSpuK2lbMTBdKm8raVsxNF0pKmEsdGhpc31hcHBseVF1YXRlcm5pb24odCl7Y29uc3QgZT10aGlzLngsbj10aGlzLnksbz10aGlzLnosaT10LngsYT10Lnkscj10Lnoscz10LncsbD1zKmUrYSpvLXIqbixjPXMqbityKmUtaSpvLGQ9cypvK2kqbi1hKmUscD0taSplLWEqbi1yKm87cmV0dXJuIHRoaXMueD1sKnMrcCotaStjKi1yLWQqLWEsdGhpcy55PWMqcytwKi1hK2QqLWktbCotcix0aGlzLno9ZCpzK3AqLXIrbCotYS1jKi1pLHRoaXN9cHJvamVjdCh0KXtyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZEludmVyc2UpLmFwcGx5TWF0cml4NCh0LnByb2plY3Rpb25NYXRyaXgpfXVucHJvamVjdCh0KXtyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDQodC5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZSkuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpfXRyYW5zZm9ybURpcmVjdGlvbih0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxvPXRoaXMueixpPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1pWzBdKmUraVs0XSpuK2lbOF0qbyx0aGlzLnk9aVsxXSplK2lbNV0qbitpWzldKm8sdGhpcy56PWlbMl0qZStpWzZdKm4raVsxMF0qbyx0aGlzLm5vcm1hbGl6ZSgpfWRpdmlkZSh0KXtyZXR1cm4gdGhpcy54Lz10LngsdGhpcy55Lz10LnksdGhpcy56Lz10LnosdGhpc31kaXZpZGVTY2FsYXIodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlTY2FsYXIoMS90KX1taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpcy56PU1hdGgubWluKHRoaXMueix0LnopLHRoaXN9bWF4KHQpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodGhpcy54LHQueCksdGhpcy55PU1hdGgubWF4KHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1heCh0aGlzLnosdC56KSx0aGlzfWNsYW1wKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LngsTWF0aC5taW4oZS54LHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LnksTWF0aC5taW4oZS55LHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LnosTWF0aC5taW4oZS56LHRoaXMueikpLHRoaXN9Y2xhbXBTY2FsYXIodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy56KSksdGhpc31jbGFtcExlbmd0aCh0LGUpe2NvbnN0IG49dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIobnx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihlLG4pKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej1NYXRoLmZsb29yKHRoaXMueiksdGhpc31jZWlsKCl7cmV0dXJuIHRoaXMueD1NYXRoLmNlaWwodGhpcy54KSx0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSksdGhpcy56PU1hdGguY2VpbCh0aGlzLnopLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXMuej1NYXRoLnJvdW5kKHRoaXMueiksdGhpc31yb3VuZFRvWmVybygpe3JldHVybiB0aGlzLng9dGhpcy54PDA/TWF0aC5jZWlsKHRoaXMueCk6TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT10aGlzLnk8MD9NYXRoLmNlaWwodGhpcy55KTpNYXRoLmZsb29yKHRoaXMueSksdGhpcy56PXRoaXMuejwwP01hdGguY2VpbCh0aGlzLnopOk1hdGguZmxvb3IodGhpcy56KSx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLng9LXRoaXMueCx0aGlzLnk9LXRoaXMueSx0aGlzLno9LXRoaXMueix0aGlzfWRvdCh0KXtyZXR1cm4gdGhpcy54KnQueCt0aGlzLnkqdC55K3RoaXMueip0Lnp9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnp9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMueil9bWFuaGF0dGFuTGVuZ3RoKCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueCkrTWF0aC5hYnModGhpcy55KStNYXRoLmFicyh0aGlzLnopfW5vcm1hbGl6ZSgpe3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcih0aGlzLmxlbmd0aCgpfHwxKX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LGUpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSplLHRoaXMueSs9KHQueS10aGlzLnkpKmUsdGhpcy56Kz0odC56LXRoaXMueikqZSx0aGlzfWxlcnBWZWN0b3JzKHQsZSxuKXtyZXR1cm4gdGhpcy54PXQueCsoZS54LXQueCkqbix0aGlzLnk9dC55KyhlLnktdC55KSpuLHRoaXMuej10LnorKGUuei10LnopKm4sdGhpc31jcm9zcyh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5jcm9zcygpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmNyb3NzVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5jcm9zc1ZlY3RvcnModCxlKSk6dGhpcy5jcm9zc1ZlY3RvcnModGhpcyx0KX1jcm9zc1ZlY3RvcnModCxlKXtjb25zdCBuPXQueCxvPXQueSxpPXQueixhPWUueCxyPWUueSxzPWUuejtyZXR1cm4gdGhpcy54PW8qcy1pKnIsdGhpcy55PWkqYS1uKnMsdGhpcy56PW4qci1vKmEsdGhpc31wcm9qZWN0T25WZWN0b3IodCl7Y29uc3QgZT10Lmxlbmd0aFNxKCk7aWYoMD09PWUpcmV0dXJuIHRoaXMuc2V0KDAsMCwwKTtjb25zdCBuPXQuZG90KHRoaXMpL2U7cmV0dXJuIHRoaXMuY29weSh0KS5tdWx0aXBseVNjYWxhcihuKX1wcm9qZWN0T25QbGFuZSh0KXtyZXR1cm4gZGF0LmNvcHkodGhpcykucHJvamVjdE9uVmVjdG9yKHQpLHRoaXMuc3ViKGRhdCl9cmVmbGVjdCh0KXtyZXR1cm4gdGhpcy5zdWIoZGF0LmNvcHkodCkubXVsdGlwbHlTY2FsYXIoMip0aGlzLmRvdCh0KSkpfWFuZ2xlVG8odCl7Y29uc3QgZT1NYXRoLnNxcnQodGhpcy5sZW5ndGhTcSgpKnQubGVuZ3RoU3EoKSk7aWYoMD09PWUpcmV0dXJuIE1hdGguUEkvMjtjb25zdCBuPXRoaXMuZG90KHQpL2U7cmV0dXJuIE1hdGguYWNvcyhaaXQobiwtMSwxKSl9ZGlzdGFuY2VUbyh0KXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuZGlzdGFuY2VUb1NxdWFyZWQodCkpfWRpc3RhbmNlVG9TcXVhcmVkKHQpe2NvbnN0IGU9dGhpcy54LXQueCxuPXRoaXMueS10Lnksbz10aGlzLnotdC56O3JldHVybiBlKmUrbipuK28qb31tYW5oYXR0YW5EaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLmFicyh0aGlzLngtdC54KStNYXRoLmFicyh0aGlzLnktdC55KStNYXRoLmFicyh0aGlzLnotdC56KX1zZXRGcm9tU3BoZXJpY2FsKHQpe3JldHVybiB0aGlzLnNldEZyb21TcGhlcmljYWxDb29yZHModC5yYWRpdXMsdC5waGksdC50aGV0YSl9c2V0RnJvbVNwaGVyaWNhbENvb3Jkcyh0LGUsbil7Y29uc3Qgbz1NYXRoLnNpbihlKSp0O3JldHVybiB0aGlzLng9bypNYXRoLnNpbihuKSx0aGlzLnk9TWF0aC5jb3MoZSkqdCx0aGlzLno9bypNYXRoLmNvcyhuKSx0aGlzfXNldEZyb21DeWxpbmRyaWNhbCh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tQ3lsaW5kcmljYWxDb29yZHModC5yYWRpdXMsdC50aGV0YSx0LnkpfXNldEZyb21DeWxpbmRyaWNhbENvb3Jkcyh0LGUsbil7cmV0dXJuIHRoaXMueD10Kk1hdGguc2luKGUpLHRoaXMueT1uLHRoaXMuej10Kk1hdGguY29zKGUpLHRoaXN9c2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQpe2NvbnN0IGU9dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PWVbMTJdLHRoaXMueT1lWzEzXSx0aGlzLno9ZVsxNF0sdGhpc31zZXRGcm9tTWF0cml4U2NhbGUodCl7Y29uc3QgZT10aGlzLnNldEZyb21NYXRyaXhDb2x1bW4odCwwKS5sZW5ndGgoKSxuPXRoaXMuc2V0RnJvbU1hdHJpeENvbHVtbih0LDEpLmxlbmd0aCgpLG89dGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMikubGVuZ3RoKCk7cmV0dXJuIHRoaXMueD1lLHRoaXMueT1uLHRoaXMuej1vLHRoaXN9c2V0RnJvbU1hdHJpeENvbHVtbih0LGUpe3JldHVybiB0aGlzLmZyb21BcnJheSh0LmVsZW1lbnRzLDQqZSl9c2V0RnJvbU1hdHJpeDNDb2x1bW4odCxlKXtyZXR1cm4gdGhpcy5mcm9tQXJyYXkodC5lbGVtZW50cywzKmUpfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnkmJnQuej09PXRoaXMuen1mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLng9dFtlXSx0aGlzLnk9dFtlKzFdLHRoaXMuej10W2UrMl0sdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLngsdFtlKzFdPXRoaXMueSx0W2UrMl09dGhpcy56LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil7cmV0dXJuIHZvaWQgMCE9PW4mJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgoZSksdGhpcy55PXQuZ2V0WShlKSx0aGlzLno9dC5nZXRaKGUpLHRoaXN9cmFuZG9tKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJhbmRvbSgpLHRoaXMueT1NYXRoLnJhbmRvbSgpLHRoaXMuej1NYXRoLnJhbmRvbSgpLHRoaXN9fWNhdC5wcm90b3R5cGUuaXNWZWN0b3IzPSEwO2NvbnN0IGRhdD1uZXcgY2F0LHBhdD1uZXcgbGF0O2NsYXNzIG1hdHtjb25zdHJ1Y3Rvcih0PW5ldyBjYXQoMS8wLDEvMCwxLzApLGU9bmV3IGNhdCgtMS8wLC0xLzAsLTEvMCkpe3RoaXMubWluPXQsdGhpcy5tYXg9ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5taW4uY29weSh0KSx0aGlzLm1heC5jb3B5KGUpLHRoaXN9c2V0RnJvbUFycmF5KHQpe2xldCBlPTEvMCxuPTEvMCxvPTEvMCxpPS0xLzAsYT0tMS8wLHI9LTEvMDtmb3IobGV0IHM9MCxsPXQubGVuZ3RoO3M8bDtzKz0zKXtjb25zdCBsPXRbc10sYz10W3MrMV0sZD10W3MrMl07bDxlJiYoZT1sKSxjPG4mJihuPWMpLGQ8byYmKG89ZCksbD5pJiYoaT1sKSxjPmEmJihhPWMpLGQ+ciYmKHI9ZCl9cmV0dXJuIHRoaXMubWluLnNldChlLG4sbyksdGhpcy5tYXguc2V0KGksYSxyKSx0aGlzfXNldEZyb21CdWZmZXJBdHRyaWJ1dGUodCl7bGV0IGU9MS8wLG49MS8wLG89MS8wLGk9LTEvMCxhPS0xLzAscj0tMS8wO2ZvcihsZXQgcz0wLGw9dC5jb3VudDtzPGw7cysrKXtjb25zdCBsPXQuZ2V0WChzKSxjPXQuZ2V0WShzKSxkPXQuZ2V0WihzKTtsPGUmJihlPWwpLGM8biYmKG49YyksZDxvJiYobz1kKSxsPmkmJihpPWwpLGM+YSYmKGE9YyksZD5yJiYocj1kKX1yZXR1cm4gdGhpcy5taW4uc2V0KGUsbixvKSx0aGlzLm1heC5zZXQoaSxhLHIpLHRoaXN9c2V0RnJvbVBvaW50cyh0KXt0aGlzLm1ha2VFbXB0eSgpO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl0aGlzLmV4cGFuZEJ5UG9pbnQodFtlXSk7cmV0dXJuIHRoaXN9c2V0RnJvbUNlbnRlckFuZFNpemUodCxlKXtjb25zdCBuPWZhdC5jb3B5KGUpLm11bHRpcGx5U2NhbGFyKC41KTtyZXR1cm4gdGhpcy5taW4uY29weSh0KS5zdWIobiksdGhpcy5tYXguY29weSh0KS5hZGQobiksdGhpc31zZXRGcm9tT2JqZWN0KHQpe3JldHVybiB0aGlzLm1ha2VFbXB0eSgpLHRoaXMuZXhwYW5kQnlPYmplY3QodCl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy5taW4uY29weSh0Lm1pbiksdGhpcy5tYXguY29weSh0Lm1heCksdGhpc31tYWtlRW1wdHkoKXtyZXR1cm4gdGhpcy5taW4ueD10aGlzLm1pbi55PXRoaXMubWluLno9MS8wLHRoaXMubWF4Lng9dGhpcy5tYXgueT10aGlzLm1heC56PS0xLzAsdGhpc31pc0VtcHR5KCl7cmV0dXJuIHRoaXMubWF4Lng8dGhpcy5taW4ueHx8dGhpcy5tYXgueTx0aGlzLm1pbi55fHx0aGlzLm1heC56PHRoaXMubWluLnp9Z2V0Q2VudGVyKHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90LnNldCgwLDAsMCk6dC5hZGRWZWN0b3JzKHRoaXMubWluLHRoaXMubWF4KS5tdWx0aXBseVNjYWxhciguNSl9Z2V0U2l6ZSh0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dC5zZXQoMCwwLDApOnQuc3ViVmVjdG9ycyh0aGlzLm1heCx0aGlzLm1pbil9ZXhwYW5kQnlQb2ludCh0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQpLHRoaXMubWF4Lm1heCh0KSx0aGlzfWV4cGFuZEJ5VmVjdG9yKHQpe3JldHVybiB0aGlzLm1pbi5zdWIodCksdGhpcy5tYXguYWRkKHQpLHRoaXN9ZXhwYW5kQnlTY2FsYXIodCl7cmV0dXJuIHRoaXMubWluLmFkZFNjYWxhcigtdCksdGhpcy5tYXguYWRkU2NhbGFyKHQpLHRoaXN9ZXhwYW5kQnlPYmplY3QodCl7dC51cGRhdGVXb3JsZE1hdHJpeCghMSwhMSk7Y29uc3QgZT10Lmdlb21ldHJ5O3ZvaWQgMCE9PWUmJihudWxsPT09ZS5ib3VuZGluZ0JveCYmZS5jb21wdXRlQm91bmRpbmdCb3goKSxnYXQuY29weShlLmJvdW5kaW5nQm94KSxnYXQuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpLHRoaXMudW5pb24oZ2F0KSk7Y29uc3Qgbj10LmNoaWxkcmVuO2ZvcihsZXQgdD0wLGU9bi5sZW5ndGg7dDxlO3QrKyl0aGlzLmV4cGFuZEJ5T2JqZWN0KG5bdF0pO3JldHVybiB0aGlzfWNvbnRhaW5zUG9pbnQodCl7cmV0dXJuISh0Lng8dGhpcy5taW4ueHx8dC54PnRoaXMubWF4Lnh8fHQueTx0aGlzLm1pbi55fHx0Lnk+dGhpcy5tYXgueXx8dC56PHRoaXMubWluLnp8fHQuej50aGlzLm1heC56KX1jb250YWluc0JveCh0KXtyZXR1cm4gdGhpcy5taW4ueDw9dC5taW4ueCYmdC5tYXgueDw9dGhpcy5tYXgueCYmdGhpcy5taW4ueTw9dC5taW4ueSYmdC5tYXgueTw9dGhpcy5tYXgueSYmdGhpcy5taW4uejw9dC5taW4ueiYmdC5tYXguejw9dGhpcy5tYXguen1nZXRQYXJhbWV0ZXIodCxlKXtyZXR1cm4gZS5zZXQoKHQueC10aGlzLm1pbi54KS8odGhpcy5tYXgueC10aGlzLm1pbi54KSwodC55LXRoaXMubWluLnkpLyh0aGlzLm1heC55LXRoaXMubWluLnkpLCh0LnotdGhpcy5taW4ueikvKHRoaXMubWF4LnotdGhpcy5taW4ueikpfWludGVyc2VjdHNCb3godCl7cmV0dXJuISh0Lm1heC54PHRoaXMubWluLnh8fHQubWluLng+dGhpcy5tYXgueHx8dC5tYXgueTx0aGlzLm1pbi55fHx0Lm1pbi55PnRoaXMubWF4Lnl8fHQubWF4Lno8dGhpcy5taW4uenx8dC5taW4uej50aGlzLm1heC56KX1pbnRlcnNlY3RzU3BoZXJlKHQpe3JldHVybiB0aGlzLmNsYW1wUG9pbnQodC5jZW50ZXIsZmF0KSxmYXQuZGlzdGFuY2VUb1NxdWFyZWQodC5jZW50ZXIpPD10LnJhZGl1cyp0LnJhZGl1c31pbnRlcnNlY3RzUGxhbmUodCl7bGV0IGUsbjtyZXR1cm4gdC5ub3JtYWwueD4wPyhlPXQubm9ybWFsLngqdGhpcy5taW4ueCxuPXQubm9ybWFsLngqdGhpcy5tYXgueCk6KGU9dC5ub3JtYWwueCp0aGlzLm1heC54LG49dC5ub3JtYWwueCp0aGlzLm1pbi54KSx0Lm5vcm1hbC55PjA/KGUrPXQubm9ybWFsLnkqdGhpcy5taW4ueSxuKz10Lm5vcm1hbC55KnRoaXMubWF4LnkpOihlKz10Lm5vcm1hbC55KnRoaXMubWF4Lnksbis9dC5ub3JtYWwueSp0aGlzLm1pbi55KSx0Lm5vcm1hbC56PjA/KGUrPXQubm9ybWFsLnoqdGhpcy5taW4ueixuKz10Lm5vcm1hbC56KnRoaXMubWF4LnopOihlKz10Lm5vcm1hbC56KnRoaXMubWF4Lnosbis9dC5ub3JtYWwueip0aGlzLm1pbi56KSxlPD0tdC5jb25zdGFudCYmbj49LXQuY29uc3RhbnR9aW50ZXJzZWN0c1RyaWFuZ2xlKHQpe2lmKHRoaXMuaXNFbXB0eSgpKXJldHVybiExO3RoaXMuZ2V0Q2VudGVyKHZhdCkseGF0LnN1YlZlY3RvcnModGhpcy5tYXgsdmF0KSxoYXQuc3ViVmVjdG9ycyh0LmEsdmF0KSxiYXQuc3ViVmVjdG9ycyh0LmIsdmF0KSx5YXQuc3ViVmVjdG9ycyh0LmMsdmF0KSxfYXQuc3ViVmVjdG9ycyhiYXQsaGF0KSxDYXQuc3ViVmVjdG9ycyh5YXQsYmF0KSxNYXQuc3ViVmVjdG9ycyhoYXQseWF0KTtsZXQgZT1bMCwtX2F0LnosX2F0LnksMCwtQ2F0LnosQ2F0LnksMCwtTWF0LnosTWF0LnksX2F0LnosMCwtX2F0LngsQ2F0LnosMCwtQ2F0LngsTWF0LnosMCwtTWF0LngsLV9hdC55LF9hdC54LDAsLUNhdC55LENhdC54LDAsLU1hdC55LE1hdC54LDBdO3JldHVybiEhd2F0KGUsaGF0LGJhdCx5YXQseGF0KSYmKGU9WzEsMCwwLDAsMSwwLDAsMCwxXSwhIXdhdChlLGhhdCxiYXQseWF0LHhhdCkmJihPYXQuY3Jvc3NWZWN0b3JzKF9hdCxDYXQpLGU9W09hdC54LE9hdC55LE9hdC56XSx3YXQoZSxoYXQsYmF0LHlhdCx4YXQpKSl9Y2xhbXBQb2ludCh0LGUpe3JldHVybiBlLmNvcHkodCkuY2xhbXAodGhpcy5taW4sdGhpcy5tYXgpfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gZmF0LmNvcHkodCkuY2xhbXAodGhpcy5taW4sdGhpcy5tYXgpLnN1Yih0KS5sZW5ndGgoKX1nZXRCb3VuZGluZ1NwaGVyZSh0KXtyZXR1cm4gdGhpcy5nZXRDZW50ZXIodC5jZW50ZXIpLHQucmFkaXVzPS41KnRoaXMuZ2V0U2l6ZShmYXQpLmxlbmd0aCgpLHR9aW50ZXJzZWN0KHQpe3JldHVybiB0aGlzLm1pbi5tYXgodC5taW4pLHRoaXMubWF4Lm1pbih0Lm1heCksdGhpcy5pc0VtcHR5KCkmJnRoaXMubWFrZUVtcHR5KCksdGhpc311bmlvbih0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQubWluKSx0aGlzLm1heC5tYXgodC5tYXgpLHRoaXN9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKXx8KHVhdFswXS5zZXQodGhpcy5taW4ueCx0aGlzLm1pbi55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSx1YXRbMV0uc2V0KHRoaXMubWluLngsdGhpcy5taW4ueSx0aGlzLm1heC56KS5hcHBseU1hdHJpeDQodCksdWF0WzJdLnNldCh0aGlzLm1pbi54LHRoaXMubWF4LnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLHVhdFszXS5zZXQodGhpcy5taW4ueCx0aGlzLm1heC55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSx1YXRbNF0uc2V0KHRoaXMubWF4LngsdGhpcy5taW4ueSx0aGlzLm1pbi56KS5hcHBseU1hdHJpeDQodCksdWF0WzVdLnNldCh0aGlzLm1heC54LHRoaXMubWluLnksdGhpcy5tYXgueikuYXBwbHlNYXRyaXg0KHQpLHVhdFs2XS5zZXQodGhpcy5tYXgueCx0aGlzLm1heC55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSx1YXRbN10uc2V0KHRoaXMubWF4LngsdGhpcy5tYXgueSx0aGlzLm1heC56KS5hcHBseU1hdHJpeDQodCksdGhpcy5zZXRGcm9tUG9pbnRzKHVhdCkpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLm1pbi5hZGQodCksdGhpcy5tYXguYWRkKHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm1pbi5lcXVhbHModGhpcy5taW4pJiZ0Lm1heC5lcXVhbHModGhpcy5tYXgpfX1tYXQucHJvdG90eXBlLmlzQm94Mz0hMDtjb25zdCB1YXQ9W25ldyBjYXQsbmV3IGNhdCxuZXcgY2F0LG5ldyBjYXQsbmV3IGNhdCxuZXcgY2F0LG5ldyBjYXQsbmV3IGNhdF0sZmF0PW5ldyBjYXQsZ2F0PW5ldyBtYXQsaGF0PW5ldyBjYXQsYmF0PW5ldyBjYXQseWF0PW5ldyBjYXQsX2F0PW5ldyBjYXQsQ2F0PW5ldyBjYXQsTWF0PW5ldyBjYXQsdmF0PW5ldyBjYXQseGF0PW5ldyBjYXQsT2F0PW5ldyBjYXQsUGF0PW5ldyBjYXQ7ZnVuY3Rpb24gd2F0KHQsZSxuLG8saSl7Zm9yKGxldCBhPTAscj10Lmxlbmd0aC0zO2E8PXI7YSs9Myl7UGF0LmZyb21BcnJheSh0LGEpO2NvbnN0IHI9aS54Kk1hdGguYWJzKFBhdC54KStpLnkqTWF0aC5hYnMoUGF0LnkpK2kueipNYXRoLmFicyhQYXQueikscz1lLmRvdChQYXQpLGw9bi5kb3QoUGF0KSxjPW8uZG90KFBhdCk7aWYoTWF0aC5tYXgoLU1hdGgubWF4KHMsbCxjKSxNYXRoLm1pbihzLGwsYykpPnIpcmV0dXJuITF9cmV0dXJuITB9Y29uc3Qga2F0PW5ldyBtYXQsU2F0PW5ldyBjYXQsRGF0PW5ldyBjYXQsRWF0PW5ldyBjYXQ7Y2xhc3MgUmF0e2NvbnN0cnVjdG9yKHQ9bmV3IGNhdCxlPS0xKXt0aGlzLmNlbnRlcj10LHRoaXMucmFkaXVzPWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMuY2VudGVyLmNvcHkodCksdGhpcy5yYWRpdXM9ZSx0aGlzfXNldEZyb21Qb2ludHModCxlKXtjb25zdCBuPXRoaXMuY2VudGVyO3ZvaWQgMCE9PWU/bi5jb3B5KGUpOmthdC5zZXRGcm9tUG9pbnRzKHQpLmdldENlbnRlcihuKTtsZXQgbz0wO2ZvcihsZXQgZT0wLGk9dC5sZW5ndGg7ZTxpO2UrKylvPU1hdGgubWF4KG8sbi5kaXN0YW5jZVRvU3F1YXJlZCh0W2VdKSk7cmV0dXJuIHRoaXMucmFkaXVzPU1hdGguc3FydChvKSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMuY2VudGVyLmNvcHkodC5jZW50ZXIpLHRoaXMucmFkaXVzPXQucmFkaXVzLHRoaXN9aXNFbXB0eSgpe3JldHVybiB0aGlzLnJhZGl1czwwfW1ha2VFbXB0eSgpe3JldHVybiB0aGlzLmNlbnRlci5zZXQoMCwwLDApLHRoaXMucmFkaXVzPS0xLHRoaXN9Y29udGFpbnNQb2ludCh0KXtyZXR1cm4gdC5kaXN0YW5jZVRvU3F1YXJlZCh0aGlzLmNlbnRlcik8PXRoaXMucmFkaXVzKnRoaXMucmFkaXVzfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gdC5kaXN0YW5jZVRvKHRoaXMuY2VudGVyKS10aGlzLnJhZGl1c31pbnRlcnNlY3RzU3BoZXJlKHQpe2NvbnN0IGU9dGhpcy5yYWRpdXMrdC5yYWRpdXM7cmV0dXJuIHQuY2VudGVyLmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuY2VudGVyKTw9ZSplfWludGVyc2VjdHNCb3godCl7cmV0dXJuIHQuaW50ZXJzZWN0c1NwaGVyZSh0aGlzKX1pbnRlcnNlY3RzUGxhbmUodCl7cmV0dXJuIE1hdGguYWJzKHQuZGlzdGFuY2VUb1BvaW50KHRoaXMuY2VudGVyKSk8PXRoaXMucmFkaXVzfWNsYW1wUG9pbnQodCxlKXtjb25zdCBuPXRoaXMuY2VudGVyLmRpc3RhbmNlVG9TcXVhcmVkKHQpO3JldHVybiBlLmNvcHkodCksbj50aGlzLnJhZGl1cyp0aGlzLnJhZGl1cyYmKGUuc3ViKHRoaXMuY2VudGVyKS5ub3JtYWxpemUoKSxlLm11bHRpcGx5U2NhbGFyKHRoaXMucmFkaXVzKS5hZGQodGhpcy5jZW50ZXIpKSxlfWdldEJvdW5kaW5nQm94KHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT8odC5tYWtlRW1wdHkoKSx0KToodC5zZXQodGhpcy5jZW50ZXIsdGhpcy5jZW50ZXIpLHQuZXhwYW5kQnlTY2FsYXIodGhpcy5yYWRpdXMpLHQpfWFwcGx5TWF0cml4NCh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuYXBwbHlNYXRyaXg0KHQpLHRoaXMucmFkaXVzPXRoaXMucmFkaXVzKnQuZ2V0TWF4U2NhbGVPbkF4aXMoKSx0aGlzfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuYWRkKHQpLHRoaXN9ZXhwYW5kQnlQb2ludCh0KXtFYXQuc3ViVmVjdG9ycyh0LHRoaXMuY2VudGVyKTtjb25zdCBlPUVhdC5sZW5ndGhTcSgpO2lmKGU+dGhpcy5yYWRpdXMqdGhpcy5yYWRpdXMpe2NvbnN0IHQ9TWF0aC5zcXJ0KGUpLG49LjUqKHQtdGhpcy5yYWRpdXMpO3RoaXMuY2VudGVyLmFkZChFYXQubXVsdGlwbHlTY2FsYXIobi90KSksdGhpcy5yYWRpdXMrPW59cmV0dXJuIHRoaXN9dW5pb24odCl7cmV0dXJuIERhdC5zdWJWZWN0b3JzKHQuY2VudGVyLHRoaXMuY2VudGVyKS5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0LnJhZGl1cyksdGhpcy5leHBhbmRCeVBvaW50KFNhdC5jb3B5KHQuY2VudGVyKS5hZGQoRGF0KSksdGhpcy5leHBhbmRCeVBvaW50KFNhdC5jb3B5KHQuY2VudGVyKS5zdWIoRGF0KSksdGhpc31lcXVhbHModCl7cmV0dXJuIHQuY2VudGVyLmVxdWFscyh0aGlzLmNlbnRlcikmJnQucmFkaXVzPT09dGhpcy5yYWRpdXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9fWNvbnN0IEFhdD1uZXcgY2F0LFRhdD1uZXcgY2F0LE5hdD1uZXcgY2F0LHphdD1uZXcgY2F0LElhdD1uZXcgY2F0LEhhdD1uZXcgY2F0LEZhdD1uZXcgY2F0O2NsYXNzIExhdHtjb25zdHJ1Y3Rvcih0PW5ldyBjYXQsZT1uZXcgY2F0KDAsMCwtMSkpe3RoaXMub3JpZ2luPXQsdGhpcy5kaXJlY3Rpb249ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5vcmlnaW4uY29weSh0KSx0aGlzLmRpcmVjdGlvbi5jb3B5KGUpLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5vcmlnaW4uY29weSh0Lm9yaWdpbiksdGhpcy5kaXJlY3Rpb24uY29weSh0LmRpcmVjdGlvbiksdGhpc31hdCh0LGUpe3JldHVybiBlLmNvcHkodGhpcy5kaXJlY3Rpb24pLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLm9yaWdpbil9bG9va0F0KHQpe3JldHVybiB0aGlzLmRpcmVjdGlvbi5jb3B5KHQpLnN1Yih0aGlzLm9yaWdpbikubm9ybWFsaXplKCksdGhpc31yZWNhc3QodCl7cmV0dXJuIHRoaXMub3JpZ2luLmNvcHkodGhpcy5hdCh0LEFhdCkpLHRoaXN9Y2xvc2VzdFBvaW50VG9Qb2ludCh0LGUpe2Uuc3ViVmVjdG9ycyh0LHRoaXMub3JpZ2luKTtjb25zdCBuPWUuZG90KHRoaXMuZGlyZWN0aW9uKTtyZXR1cm4gbjwwP2UuY29weSh0aGlzLm9yaWdpbik6ZS5jb3B5KHRoaXMuZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcihuKS5hZGQodGhpcy5vcmlnaW4pfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuZGlzdGFuY2VTcVRvUG9pbnQodCkpfWRpc3RhbmNlU3FUb1BvaW50KHQpe2NvbnN0IGU9QWF0LnN1YlZlY3RvcnModCx0aGlzLm9yaWdpbikuZG90KHRoaXMuZGlyZWN0aW9uKTtyZXR1cm4gZTwwP3RoaXMub3JpZ2luLmRpc3RhbmNlVG9TcXVhcmVkKHQpOihBYXQuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIoZSkuYWRkKHRoaXMub3JpZ2luKSxBYXQuZGlzdGFuY2VUb1NxdWFyZWQodCkpfWRpc3RhbmNlU3FUb1NlZ21lbnQodCxlLG4sbyl7VGF0LmNvcHkodCkuYWRkKGUpLm11bHRpcGx5U2NhbGFyKC41KSxOYXQuY29weShlKS5zdWIodCkubm9ybWFsaXplKCksemF0LmNvcHkodGhpcy5vcmlnaW4pLnN1YihUYXQpO2NvbnN0IGk9LjUqdC5kaXN0YW5jZVRvKGUpLGE9LXRoaXMuZGlyZWN0aW9uLmRvdChOYXQpLHI9emF0LmRvdCh0aGlzLmRpcmVjdGlvbikscz0temF0LmRvdChOYXQpLGw9emF0Lmxlbmd0aFNxKCksYz1NYXRoLmFicygxLWEqYSk7bGV0IGQscCxtLHU7aWYoYz4wKWlmKGQ9YSpzLXIscD1hKnItcyx1PWkqYyxkPj0wKWlmKHA+PS11KWlmKHA8PXUpe2NvbnN0IHQ9MS9jO2QqPXQscCo9dCxtPWQqKGQrYSpwKzIqcikrcCooYSpkK3ArMipzKStsfWVsc2UgcD1pLGQ9TWF0aC5tYXgoMCwtKGEqcCtyKSksbT0tZCpkK3AqKHArMipzKStsO2Vsc2UgcD0taSxkPU1hdGgubWF4KDAsLShhKnArcikpLG09LWQqZCtwKihwKzIqcykrbDtlbHNlIHA8PS11PyhkPU1hdGgubWF4KDAsLSgtYSppK3IpKSxwPWQ+MD8taTpNYXRoLm1pbihNYXRoLm1heCgtaSwtcyksaSksbT0tZCpkK3AqKHArMipzKStsKTpwPD11PyhkPTAscD1NYXRoLm1pbihNYXRoLm1heCgtaSwtcyksaSksbT1wKihwKzIqcykrbCk6KGQ9TWF0aC5tYXgoMCwtKGEqaStyKSkscD1kPjA/aTpNYXRoLm1pbihNYXRoLm1heCgtaSwtcyksaSksbT0tZCpkK3AqKHArMipzKStsKTtlbHNlIHA9YT4wPy1pOmksZD1NYXRoLm1heCgwLC0oYSpwK3IpKSxtPS1kKmQrcCoocCsyKnMpK2w7cmV0dXJuIG4mJm4uY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIoZCkuYWRkKHRoaXMub3JpZ2luKSxvJiZvLmNvcHkoTmF0KS5tdWx0aXBseVNjYWxhcihwKS5hZGQoVGF0KSxtfWludGVyc2VjdFNwaGVyZSh0LGUpe0FhdC5zdWJWZWN0b3JzKHQuY2VudGVyLHRoaXMub3JpZ2luKTtjb25zdCBuPUFhdC5kb3QodGhpcy5kaXJlY3Rpb24pLG89QWF0LmRvdChBYXQpLW4qbixpPXQucmFkaXVzKnQucmFkaXVzO2lmKG8+aSlyZXR1cm4gbnVsbDtjb25zdCBhPU1hdGguc3FydChpLW8pLHI9bi1hLHM9bithO3JldHVybiByPDAmJnM8MD9udWxsOnRoaXMuYXQocjwwP3M6cixlKX1pbnRlcnNlY3RzU3BoZXJlKHQpe3JldHVybiB0aGlzLmRpc3RhbmNlU3FUb1BvaW50KHQuY2VudGVyKTw9dC5yYWRpdXMqdC5yYWRpdXN9ZGlzdGFuY2VUb1BsYW5lKHQpe2NvbnN0IGU9dC5ub3JtYWwuZG90KHRoaXMuZGlyZWN0aW9uKTtpZigwPT09ZSlyZXR1cm4gMD09PXQuZGlzdGFuY2VUb1BvaW50KHRoaXMub3JpZ2luKT8wOm51bGw7Y29uc3Qgbj0tKHRoaXMub3JpZ2luLmRvdCh0Lm5vcm1hbCkrdC5jb25zdGFudCkvZTtyZXR1cm4gbj49MD9uOm51bGx9aW50ZXJzZWN0UGxhbmUodCxlKXtjb25zdCBuPXRoaXMuZGlzdGFuY2VUb1BsYW5lKHQpO3JldHVybiBudWxsPT09bj9udWxsOnRoaXMuYXQobixlKX1pbnRlcnNlY3RzUGxhbmUodCl7Y29uc3QgZT10LmRpc3RhbmNlVG9Qb2ludCh0aGlzLm9yaWdpbik7cmV0dXJuIDA9PT1lfHx0Lm5vcm1hbC5kb3QodGhpcy5kaXJlY3Rpb24pKmU8MH1pbnRlcnNlY3RCb3godCxlKXtsZXQgbixvLGksYSxyLHM7Y29uc3QgbD0xL3RoaXMuZGlyZWN0aW9uLngsYz0xL3RoaXMuZGlyZWN0aW9uLnksZD0xL3RoaXMuZGlyZWN0aW9uLnoscD10aGlzLm9yaWdpbjtyZXR1cm4gbD49MD8obj0odC5taW4ueC1wLngpKmwsbz0odC5tYXgueC1wLngpKmwpOihuPSh0Lm1heC54LXAueCkqbCxvPSh0Lm1pbi54LXAueCkqbCksYz49MD8oaT0odC5taW4ueS1wLnkpKmMsYT0odC5tYXgueS1wLnkpKmMpOihpPSh0Lm1heC55LXAueSkqYyxhPSh0Lm1pbi55LXAueSkqYyksbj5hfHxpPm8/bnVsbDooKGk+bnx8biE9bikmJihuPWkpLChhPG98fG8hPW8pJiYobz1hKSxkPj0wPyhyPSh0Lm1pbi56LXAueikqZCxzPSh0Lm1heC56LXAueikqZCk6KHI9KHQubWF4LnotcC56KSpkLHM9KHQubWluLnotcC56KSpkKSxuPnN8fHI+bz9udWxsOigocj5ufHxuIT1uKSYmKG49ciksKHM8b3x8byE9bykmJihvPXMpLG88MD9udWxsOnRoaXMuYXQobj49MD9uOm8sZSkpKX1pbnRlcnNlY3RzQm94KHQpe3JldHVybiBudWxsIT09dGhpcy5pbnRlcnNlY3RCb3godCxBYXQpfWludGVyc2VjdFRyaWFuZ2xlKHQsZSxuLG8saSl7SWF0LnN1YlZlY3RvcnMoZSx0KSxIYXQuc3ViVmVjdG9ycyhuLHQpLEZhdC5jcm9zc1ZlY3RvcnMoSWF0LEhhdCk7bGV0IGEscj10aGlzLmRpcmVjdGlvbi5kb3QoRmF0KTtpZihyPjApe2lmKG8pcmV0dXJuIG51bGw7YT0xfWVsc2V7aWYoIShyPDApKXJldHVybiBudWxsO2E9LTEscj0tcn16YXQuc3ViVmVjdG9ycyh0aGlzLm9yaWdpbix0KTtjb25zdCBzPWEqdGhpcy5kaXJlY3Rpb24uZG90KEhhdC5jcm9zc1ZlY3RvcnMoemF0LEhhdCkpO2lmKHM8MClyZXR1cm4gbnVsbDtjb25zdCBsPWEqdGhpcy5kaXJlY3Rpb24uZG90KElhdC5jcm9zcyh6YXQpKTtpZihsPDApcmV0dXJuIG51bGw7aWYocytsPnIpcmV0dXJuIG51bGw7Y29uc3QgYz0tYSp6YXQuZG90KEZhdCk7cmV0dXJuIGM8MD9udWxsOnRoaXMuYXQoYy9yLGkpfWFwcGx5TWF0cml4NCh0KXtyZXR1cm4gdGhpcy5vcmlnaW4uYXBwbHlNYXRyaXg0KHQpLHRoaXMuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5vcmlnaW4uZXF1YWxzKHRoaXMub3JpZ2luKSYmdC5kaXJlY3Rpb24uZXF1YWxzKHRoaXMuZGlyZWN0aW9uKX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19Y2xhc3MgQmF0e2NvbnN0cnVjdG9yKCl7dGhpcy5lbGVtZW50cz1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV0sYXJndW1lbnRzLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiB0aGUgY29uc3RydWN0b3Igbm8gbG9uZ2VyIHJlYWRzIGFyZ3VtZW50cy4gdXNlIC5zZXQoKSBpbnN0ZWFkLiIpfXNldCh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLHUsZixnKXtjb25zdCBoPXRoaXMuZWxlbWVudHM7cmV0dXJuIGhbMF09dCxoWzRdPWUsaFs4XT1uLGhbMTJdPW8saFsxXT1pLGhbNV09YSxoWzldPXIsaFsxM109cyxoWzJdPWwsaFs2XT1jLGhbMTBdPWQsaFsxNF09cCxoWzNdPW0saFs3XT11LGhbMTFdPWYsaFsxNV09Zyx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDEpLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IEJhdCkuZnJvbUFycmF5KHRoaXMuZWxlbWVudHMpfWNvcHkodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztyZXR1cm4gZVswXT1uWzBdLGVbMV09blsxXSxlWzJdPW5bMl0sZVszXT1uWzNdLGVbNF09bls0XSxlWzVdPW5bNV0sZVs2XT1uWzZdLGVbN109bls3XSxlWzhdPW5bOF0sZVs5XT1uWzldLGVbMTBdPW5bMTBdLGVbMTFdPW5bMTFdLGVbMTJdPW5bMTJdLGVbMTNdPW5bMTNdLGVbMTRdPW5bMTRdLGVbMTVdPW5bMTVdLHRoaXN9Y29weVBvc2l0aW9uKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7cmV0dXJuIGVbMTJdPW5bMTJdLGVbMTNdPW5bMTNdLGVbMTRdPW5bMTRdLHRoaXN9c2V0RnJvbU1hdHJpeDModCl7Y29uc3QgZT10LmVsZW1lbnRzO3JldHVybiB0aGlzLnNldChlWzBdLGVbM10sZVs2XSwwLGVbMV0sZVs0XSxlWzddLDAsZVsyXSxlWzVdLGVbOF0sMCwwLDAsMCwxKSx0aGlzfWV4dHJhY3RCYXNpcyh0LGUsbil7cmV0dXJuIHQuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDApLGUuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDEpLG4uc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDIpLHRoaXN9bWFrZUJhc2lzKHQsZSxuKXtyZXR1cm4gdGhpcy5zZXQodC54LGUueCxuLngsMCx0LnksZS55LG4ueSwwLHQueixlLnosbi56LDAsMCwwLDAsMSksdGhpc31leHRyYWN0Um90YXRpb24odCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cyxvPTEvVmF0LnNldEZyb21NYXRyaXhDb2x1bW4odCwwKS5sZW5ndGgoKSxpPTEvVmF0LnNldEZyb21NYXRyaXhDb2x1bW4odCwxKS5sZW5ndGgoKSxhPTEvVmF0LnNldEZyb21NYXRyaXhDb2x1bW4odCwyKS5sZW5ndGgoKTtyZXR1cm4gZVswXT1uWzBdKm8sZVsxXT1uWzFdKm8sZVsyXT1uWzJdKm8sZVszXT0wLGVbNF09bls0XSppLGVbNV09bls1XSppLGVbNl09bls2XSppLGVbN109MCxlWzhdPW5bOF0qYSxlWzldPW5bOV0qYSxlWzEwXT1uWzEwXSphLGVbMTFdPTAsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTAsZVsxNV09MSx0aGlzfW1ha2VSb3RhdGlvbkZyb21FdWxlcih0KXt0JiZ0LmlzRXVsZXJ8fGNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5tYWtlUm90YXRpb25Gcm9tRXVsZXIoKSBub3cgZXhwZWN0cyBhIEV1bGVyIHJvdGF0aW9uIHJhdGhlciB0aGFuIGEgVmVjdG9yMyBhbmQgb3JkZXIuIik7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC54LG89dC55LGk9dC56LGE9TWF0aC5jb3Mobikscj1NYXRoLnNpbihuKSxzPU1hdGguY29zKG8pLGw9TWF0aC5zaW4obyksYz1NYXRoLmNvcyhpKSxkPU1hdGguc2luKGkpO2lmKCJYWVoiPT09dC5vcmRlcil7Y29uc3QgdD1hKmMsbj1hKmQsbz1yKmMsaT1yKmQ7ZVswXT1zKmMsZVs0XT0tcypkLGVbOF09bCxlWzFdPW4rbypsLGVbNV09dC1pKmwsZVs5XT0tcipzLGVbMl09aS10KmwsZVs2XT1vK24qbCxlWzEwXT1hKnN9ZWxzZSBpZigiWVhaIj09PXQub3JkZXIpe2NvbnN0IHQ9cypjLG49cypkLG89bCpjLGk9bCpkO2VbMF09dCtpKnIsZVs0XT1vKnItbixlWzhdPWEqbCxlWzFdPWEqZCxlWzVdPWEqYyxlWzldPS1yLGVbMl09bipyLW8sZVs2XT1pK3QqcixlWzEwXT1hKnN9ZWxzZSBpZigiWlhZIj09PXQub3JkZXIpe2NvbnN0IHQ9cypjLG49cypkLG89bCpjLGk9bCpkO2VbMF09dC1pKnIsZVs0XT0tYSpkLGVbOF09bytuKnIsZVsxXT1uK28qcixlWzVdPWEqYyxlWzldPWktdCpyLGVbMl09LWEqbCxlWzZdPXIsZVsxMF09YSpzfWVsc2UgaWYoIlpZWCI9PT10Lm9yZGVyKXtjb25zdCB0PWEqYyxuPWEqZCxvPXIqYyxpPXIqZDtlWzBdPXMqYyxlWzRdPW8qbC1uLGVbOF09dCpsK2ksZVsxXT1zKmQsZVs1XT1pKmwrdCxlWzldPW4qbC1vLGVbMl09LWwsZVs2XT1yKnMsZVsxMF09YSpzfWVsc2UgaWYoIllaWCI9PT10Lm9yZGVyKXtjb25zdCB0PWEqcyxuPWEqbCxvPXIqcyxpPXIqbDtlWzBdPXMqYyxlWzRdPWktdCpkLGVbOF09bypkK24sZVsxXT1kLGVbNV09YSpjLGVbOV09LXIqYyxlWzJdPS1sKmMsZVs2XT1uKmQrbyxlWzEwXT10LWkqZH1lbHNlIGlmKCJYWlkiPT09dC5vcmRlcil7Y29uc3QgdD1hKnMsbj1hKmwsbz1yKnMsaT1yKmw7ZVswXT1zKmMsZVs0XT0tZCxlWzhdPWwqYyxlWzFdPXQqZCtpLGVbNV09YSpjLGVbOV09bipkLW8sZVsyXT1vKmQtbixlWzZdPXIqYyxlWzEwXT1pKmQrdH1yZXR1cm4gZVszXT0wLGVbN109MCxlWzExXT0wLGVbMTJdPTAsZVsxM109MCxlWzE0XT0wLGVbMTVdPTEsdGhpc31tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy5jb21wb3NlKFVhdCx0LEdhdCl9bG9va0F0KHQsZSxuKXtjb25zdCBvPXRoaXMuZWxlbWVudHM7cmV0dXJuIHFhdC5zdWJWZWN0b3JzKHQsZSksMD09PXFhdC5sZW5ndGhTcSgpJiYocWF0Lno9MSkscWF0Lm5vcm1hbGl6ZSgpLFdhdC5jcm9zc1ZlY3RvcnMobixxYXQpLDA9PT1XYXQubGVuZ3RoU3EoKSYmKDE9PT1NYXRoLmFicyhuLnopP3FhdC54Kz0xZS00OnFhdC56Kz0xZS00LHFhdC5ub3JtYWxpemUoKSxXYXQuY3Jvc3NWZWN0b3JzKG4scWF0KSksV2F0Lm5vcm1hbGl6ZSgpLFlhdC5jcm9zc1ZlY3RvcnMocWF0LFdhdCksb1swXT1XYXQueCxvWzRdPVlhdC54LG9bOF09cWF0Lngsb1sxXT1XYXQueSxvWzVdPVlhdC55LG9bOV09cWF0Lnksb1syXT1XYXQueixvWzZdPVlhdC56LG9bMTBdPXFhdC56LHRoaXN9bXVsdGlwbHkodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHkoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5tdWx0aXBseU1hdHJpY2VzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLm11bHRpcGx5TWF0cmljZXModCxlKSk6dGhpcy5tdWx0aXBseU1hdHJpY2VzKHRoaXMsdCl9cHJlbXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0LHRoaXMpfW11bHRpcGx5TWF0cmljZXModCxlKXtjb25zdCBuPXQuZWxlbWVudHMsbz1lLmVsZW1lbnRzLGk9dGhpcy5lbGVtZW50cyxhPW5bMF0scj1uWzRdLHM9bls4XSxsPW5bMTJdLGM9blsxXSxkPW5bNV0scD1uWzldLG09blsxM10sdT1uWzJdLGY9bls2XSxnPW5bMTBdLGg9blsxNF0sYj1uWzNdLHk9bls3XSxfPW5bMTFdLEM9blsxNV0sTT1vWzBdLHY9b1s0XSx4PW9bOF0sTz1vWzEyXSxQPW9bMV0sdz1vWzVdLGs9b1s5XSxTPW9bMTNdLEQ9b1syXSxFPW9bNl0sUj1vWzEwXSxBPW9bMTRdLFQ9b1szXSxOPW9bN10sej1vWzExXSxJPW9bMTVdO3JldHVybiBpWzBdPWEqTStyKlArcypEK2wqVCxpWzRdPWEqdityKncrcypFK2wqTixpWzhdPWEqeCtyKmsrcypSK2wqeixpWzEyXT1hKk8rcipTK3MqQStsKkksaVsxXT1jKk0rZCpQK3AqRCttKlQsaVs1XT1jKnYrZCp3K3AqRSttKk4saVs5XT1jKngrZCprK3AqUittKnosaVsxM109YypPK2QqUytwKkErbSpJLGlbMl09dSpNK2YqUCtnKkQraCpULGlbNl09dSp2K2YqdytnKkUraCpOLGlbMTBdPXUqeCtmKmsrZypSK2gqeixpWzE0XT11Kk8rZipTK2cqQStoKkksaVszXT1iKk0reSpQK18qRCtDKlQsaVs3XT1iKnYreSp3K18qRStDKk4saVsxMV09Yip4K3kqaytfKlIrQyp6LGlbMTVdPWIqTyt5KlMrXypBK0MqSSx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cztyZXR1cm4gZVswXSo9dCxlWzRdKj10LGVbOF0qPXQsZVsxMl0qPXQsZVsxXSo9dCxlWzVdKj10LGVbOV0qPXQsZVsxM10qPXQsZVsyXSo9dCxlWzZdKj10LGVbMTBdKj10LGVbMTRdKj10LGVbM10qPXQsZVs3XSo9dCxlWzExXSo9dCxlWzE1XSo9dCx0aGlzfWRldGVybWluYW50KCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxuPXRbNF0sbz10WzhdLGk9dFsxMl0sYT10WzFdLHI9dFs1XSxzPXRbOV0sbD10WzEzXSxjPXRbMl0sZD10WzZdLHA9dFsxMF0sbT10WzE0XTtyZXR1cm4gdFszXSooK2kqcypkLW8qbCpkLWkqcipwK24qbCpwK28qciptLW4qcyptKSt0WzddKigrZSpzKm0tZSpsKnAraSphKnAtbyphKm0rbypsKmMtaSpzKmMpK3RbMTFdKigrZSpsKmQtZSpyKm0taSphKmQrbiphKm0raSpyKmMtbipsKmMpK3RbMTVdKigtbypyKmMtZSpzKmQrZSpyKnArbyphKmQtbiphKnArbipzKmMpfXRyYW5zcG9zZSgpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cztsZXQgZTtyZXR1cm4gZT10WzFdLHRbMV09dFs0XSx0WzRdPWUsZT10WzJdLHRbMl09dFs4XSx0WzhdPWUsZT10WzZdLHRbNl09dFs5XSx0WzldPWUsZT10WzNdLHRbM109dFsxMl0sdFsxMl09ZSxlPXRbN10sdFs3XT10WzEzXSx0WzEzXT1lLGU9dFsxMV0sdFsxMV09dFsxNF0sdFsxNF09ZSx0aGlzfXNldFBvc2l0aW9uKHQsZSxuKXtjb25zdCBvPXRoaXMuZWxlbWVudHM7cmV0dXJuIHQuaXNWZWN0b3IzPyhvWzEyXT10Lngsb1sxM109dC55LG9bMTRdPXQueik6KG9bMTJdPXQsb1sxM109ZSxvWzE0XT1uKSx0aGlzfWludmVydCgpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cyxlPXRbMF0sbj10WzFdLG89dFsyXSxpPXRbM10sYT10WzRdLHI9dFs1XSxzPXRbNl0sbD10WzddLGM9dFs4XSxkPXRbOV0scD10WzEwXSxtPXRbMTFdLHU9dFsxMl0sZj10WzEzXSxnPXRbMTRdLGg9dFsxNV0sYj1kKmcqbC1mKnAqbCtmKnMqbS1yKmcqbS1kKnMqaCtyKnAqaCx5PXUqcCpsLWMqZypsLXUqcyptK2EqZyptK2MqcypoLWEqcCpoLF89YypmKmwtdSpkKmwrdSpyKm0tYSpmKm0tYypyKmgrYSpkKmgsQz11KmQqcy1jKmYqcy11KnIqcCthKmYqcCtjKnIqZy1hKmQqZyxNPWUqYituKnkrbypfK2kqQztpZigwPT09TSlyZXR1cm4gdGhpcy5zZXQoMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCk7Y29uc3Qgdj0xL007cmV0dXJuIHRbMF09Yip2LHRbMV09KGYqcCppLWQqZyppLWYqbyptK24qZyptK2QqbypoLW4qcCpoKSp2LHRbMl09KHIqZyppLWYqcyppK2YqbypsLW4qZypsLXIqbypoK24qcypoKSp2LHRbM109KGQqcyppLXIqcCppLWQqbypsK24qcCpsK3IqbyptLW4qcyptKSp2LHRbNF09eSp2LHRbNV09KGMqZyppLXUqcCppK3UqbyptLWUqZyptLWMqbypoK2UqcCpoKSp2LHRbNl09KHUqcyppLWEqZyppLXUqbypsK2UqZypsK2EqbypoLWUqcypoKSp2LHRbN109KGEqcCppLWMqcyppK2MqbypsLWUqcCpsLWEqbyptK2UqcyptKSp2LHRbOF09Xyp2LHRbOV09KHUqZCppLWMqZippLXUqbiptK2UqZiptK2MqbipoLWUqZCpoKSp2LHRbMTBdPShhKmYqaS11KnIqaSt1Km4qbC1lKmYqbC1hKm4qaCtlKnIqaCkqdix0WzExXT0oYypyKmktYSpkKmktYypuKmwrZSpkKmwrYSpuKm0tZSpyKm0pKnYsdFsxMl09Qyp2LHRbMTNdPShjKmYqby11KmQqbyt1Km4qcC1lKmYqcC1jKm4qZytlKmQqZykqdix0WzE0XT0odSpyKm8tYSpmKm8tdSpuKnMrZSpmKnMrYSpuKmctZSpyKmcpKnYsdFsxNV09KGEqZCpvLWMqcipvK2MqbipzLWUqZCpzLWEqbipwK2UqcipwKSp2LHRoaXN9c2NhbGUodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC54LG89dC55LGk9dC56O3JldHVybiBlWzBdKj1uLGVbNF0qPW8sZVs4XSo9aSxlWzFdKj1uLGVbNV0qPW8sZVs5XSo9aSxlWzJdKj1uLGVbNl0qPW8sZVsxMF0qPWksZVszXSo9bixlWzddKj1vLGVbMTFdKj1pLHRoaXN9Z2V0TWF4U2NhbGVPbkF4aXMoKXtjb25zdCB0PXRoaXMuZWxlbWVudHM7cmV0dXJuIE1hdGguc3FydChNYXRoLm1heCh0WzBdKnRbMF0rdFsxXSp0WzFdK3RbMl0qdFsyXSx0WzRdKnRbNF0rdFs1XSp0WzVdK3RbNl0qdFs2XSx0WzhdKnRbOF0rdFs5XSp0WzldK3RbMTBdKnRbMTBdKSl9bWFrZVRyYW5zbGF0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsdCwwLDEsMCxlLDAsMCwxLG4sMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25YKHQpe2NvbnN0IGU9TWF0aC5jb3ModCksbj1NYXRoLnNpbih0KTtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwwLGUsLW4sMCwwLG4sZSwwLDAsMCwwLDEpLHRoaXN9bWFrZVJvdGF0aW9uWSh0KXtjb25zdCBlPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCk7cmV0dXJuIHRoaXMuc2V0KGUsMCxuLDAsMCwxLDAsMCwtbiwwLGUsMCwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvbloodCl7Y29uc3QgZT1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpO3JldHVybiB0aGlzLnNldChlLC1uLDAsMCxuLGUsMCwwLDAsMCwxLDAsMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25BeGlzKHQsZSl7Y29uc3Qgbj1NYXRoLmNvcyhlKSxvPU1hdGguc2luKGUpLGk9MS1uLGE9dC54LHI9dC55LHM9dC56LGw9aSphLGM9aSpyO3JldHVybiB0aGlzLnNldChsKmErbixsKnItbypzLGwqcytvKnIsMCxsKnIrbypzLGMqcituLGMqcy1vKmEsMCxsKnMtbypyLGMqcytvKmEsaSpzKnMrbiwwLDAsMCwwLDEpLHRoaXN9bWFrZVNjYWxlKHQsZSxuKXtyZXR1cm4gdGhpcy5zZXQodCwwLDAsMCwwLGUsMCwwLDAsMCxuLDAsMCwwLDAsMSksdGhpc31tYWtlU2hlYXIodCxlLG4sbyxpLGEpe3JldHVybiB0aGlzLnNldCgxLG4saSwwLHQsMSxhLDAsZSxvLDEsMCwwLDAsMCwxKSx0aGlzfWNvbXBvc2UodCxlLG4pe2NvbnN0IG89dGhpcy5lbGVtZW50cyxpPWUuX3gsYT1lLl95LHI9ZS5feixzPWUuX3csbD1pK2ksYz1hK2EsZD1yK3IscD1pKmwsbT1pKmMsdT1pKmQsZj1hKmMsZz1hKmQsaD1yKmQsYj1zKmwseT1zKmMsXz1zKmQsQz1uLngsTT1uLnksdj1uLno7cmV0dXJuIG9bMF09KDEtKGYraCkpKkMsb1sxXT0obStfKSpDLG9bMl09KHUteSkqQyxvWzNdPTAsb1s0XT0obS1fKSpNLG9bNV09KDEtKHAraCkpKk0sb1s2XT0oZytiKSpNLG9bN109MCxvWzhdPSh1K3kpKnYsb1s5XT0oZy1iKSp2LG9bMTBdPSgxLShwK2YpKSp2LG9bMTFdPTAsb1sxMl09dC54LG9bMTNdPXQueSxvWzE0XT10Lnosb1sxNV09MSx0aGlzfWRlY29tcG9zZSh0LGUsbil7Y29uc3Qgbz10aGlzLmVsZW1lbnRzO2xldCBpPVZhdC5zZXQob1swXSxvWzFdLG9bMl0pLmxlbmd0aCgpO2NvbnN0IGE9VmF0LnNldChvWzRdLG9bNV0sb1s2XSkubGVuZ3RoKCkscj1WYXQuc2V0KG9bOF0sb1s5XSxvWzEwXSkubGVuZ3RoKCk7dGhpcy5kZXRlcm1pbmFudCgpPDAmJihpPS1pKSx0Lng9b1sxMl0sdC55PW9bMTNdLHQuej1vWzE0XSxqYXQuY29weSh0aGlzKTtjb25zdCBzPTEvaSxsPTEvYSxjPTEvcjtyZXR1cm4gamF0LmVsZW1lbnRzWzBdKj1zLGphdC5lbGVtZW50c1sxXSo9cyxqYXQuZWxlbWVudHNbMl0qPXMsamF0LmVsZW1lbnRzWzRdKj1sLGphdC5lbGVtZW50c1s1XSo9bCxqYXQuZWxlbWVudHNbNl0qPWwsamF0LmVsZW1lbnRzWzhdKj1jLGphdC5lbGVtZW50c1s5XSo9YyxqYXQuZWxlbWVudHNbMTBdKj1jLGUuc2V0RnJvbVJvdGF0aW9uTWF0cml4KGphdCksbi54PWksbi55PWEsbi56PXIsdGhpc31tYWtlUGVyc3BlY3RpdmUodCxlLG4sbyxpLGEpe3ZvaWQgMD09PWEmJmNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm1ha2VQZXJzcGVjdGl2ZSgpIGhhcyBiZWVuIHJlZGVmaW5lZCBhbmQgaGFzIGEgbmV3IHNpZ25hdHVyZS4gUGxlYXNlIGNoZWNrIHRoZSBkb2NzLiIpO2NvbnN0IHI9dGhpcy5lbGVtZW50cyxzPTIqaS8obi1vKSxsPShlK3QpLyhlLXQpLGM9KG4rbykvKG4tbyksZD0tKGEraSkvKGEtaSkscD0tMiphKmkvKGEtaSk7cmV0dXJuIHJbMF09MippLyhlLXQpLHJbNF09MCxyWzhdPWwsclsxMl09MCxyWzFdPTAscls1XT1zLHJbOV09YyxyWzEzXT0wLHJbMl09MCxyWzZdPTAsclsxMF09ZCxyWzE0XT1wLHJbM109MCxyWzddPTAsclsxMV09LTEsclsxNV09MCx0aGlzfW1ha2VPcnRob2dyYXBoaWModCxlLG4sbyxpLGEpe2NvbnN0IHI9dGhpcy5lbGVtZW50cyxzPTEvKGUtdCksbD0xLyhuLW8pLGM9MS8oYS1pKSxkPShlK3QpKnMscD0obitvKSpsLG09KGEraSkqYztyZXR1cm4gclswXT0yKnMscls0XT0wLHJbOF09MCxyWzEyXT0tZCxyWzFdPTAscls1XT0yKmwscls5XT0wLHJbMTNdPS1wLHJbMl09MCxyWzZdPTAsclsxMF09LTIqYyxyWzE0XT0tbSxyWzNdPTAscls3XT0wLHJbMTFdPTAsclsxNV09MSx0aGlzfWVxdWFscyh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzO2ZvcihsZXQgdD0wO3Q8MTY7dCsrKWlmKGVbdF0hPT1uW3RdKXJldHVybiExO3JldHVybiEwfWZyb21BcnJheSh0LGU9MCl7Zm9yKGxldCBuPTA7bjwxNjtuKyspdGhpcy5lbGVtZW50c1tuXT10W24rZV07cmV0dXJuIHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7Y29uc3Qgbj10aGlzLmVsZW1lbnRzO3JldHVybiB0W2VdPW5bMF0sdFtlKzFdPW5bMV0sdFtlKzJdPW5bMl0sdFtlKzNdPW5bM10sdFtlKzRdPW5bNF0sdFtlKzVdPW5bNV0sdFtlKzZdPW5bNl0sdFtlKzddPW5bN10sdFtlKzhdPW5bOF0sdFtlKzldPW5bOV0sdFtlKzEwXT1uWzEwXSx0W2UrMTFdPW5bMTFdLHRbZSsxMl09blsxMl0sdFtlKzEzXT1uWzEzXSx0W2UrMTRdPW5bMTRdLHRbZSsxNV09blsxNV0sdH19QmF0LnByb3RvdHlwZS5pc01hdHJpeDQ9ITA7Y29uc3QgVmF0PW5ldyBjYXQsamF0PW5ldyBCYXQsVWF0PW5ldyBjYXQoMCwwLDApLEdhdD1uZXcgY2F0KDEsMSwxKSxXYXQ9bmV3IGNhdCxZYXQ9bmV3IGNhdCxxYXQ9bmV3IGNhdCxaYXQ9bmV3IEJhdCxYYXQ9bmV3IGxhdDtjbGFzcyBLYXR7Y29uc3RydWN0b3IodD0wLGU9MCxuPTAsbz1LYXQuRGVmYXVsdE9yZGVyKXt0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3o9bix0aGlzLl9vcmRlcj1vfWdldCB4KCl7cmV0dXJuIHRoaXMuX3h9c2V0IHgodCl7dGhpcy5feD10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeSgpe3JldHVybiB0aGlzLl95fXNldCB5KHQpe3RoaXMuX3k9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHooKXtyZXR1cm4gdGhpcy5fen1zZXQgeih0KXt0aGlzLl96PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCBvcmRlcigpe3JldHVybiB0aGlzLl9vcmRlcn1zZXQgb3JkZXIodCl7dGhpcy5fb3JkZXI9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9c2V0KHQsZSxuLG89dGhpcy5fb3JkZXIpe3JldHVybiB0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3o9bix0aGlzLl9vcmRlcj1vLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuX3gsdGhpcy5feSx0aGlzLl96LHRoaXMuX29yZGVyKX1jb3B5KHQpe3JldHVybiB0aGlzLl94PXQuX3gsdGhpcy5feT10Ll95LHRoaXMuX3o9dC5feix0aGlzLl9vcmRlcj10Ll9vcmRlcix0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUm90YXRpb25NYXRyaXgodCxlPXRoaXMuX29yZGVyLG49ITApe2NvbnN0IG89dC5lbGVtZW50cyxpPW9bMF0sYT1vWzRdLHI9b1s4XSxzPW9bMV0sbD1vWzVdLGM9b1s5XSxkPW9bMl0scD1vWzZdLG09b1sxMF07c3dpdGNoKGUpe2Nhc2UiWFlaIjp0aGlzLl95PU1hdGguYXNpbihaaXQociwtMSwxKSksTWF0aC5hYnMocik8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMigtYyxtKSx0aGlzLl96PU1hdGguYXRhbjIoLWEsaSkpOih0aGlzLl94PU1hdGguYXRhbjIocCxsKSx0aGlzLl96PTApO2JyZWFrO2Nhc2UiWVhaIjp0aGlzLl94PU1hdGguYXNpbigtWml0KGMsLTEsMSkpLE1hdGguYWJzKGMpPC45OTk5OTk5Pyh0aGlzLl95PU1hdGguYXRhbjIocixtKSx0aGlzLl96PU1hdGguYXRhbjIocyxsKSk6KHRoaXMuX3k9TWF0aC5hdGFuMigtZCxpKSx0aGlzLl96PTApO2JyZWFrO2Nhc2UiWlhZIjp0aGlzLl94PU1hdGguYXNpbihaaXQocCwtMSwxKSksTWF0aC5hYnMocCk8Ljk5OTk5OTk/KHRoaXMuX3k9TWF0aC5hdGFuMigtZCxtKSx0aGlzLl96PU1hdGguYXRhbjIoLWEsbCkpOih0aGlzLl95PTAsdGhpcy5fej1NYXRoLmF0YW4yKHMsaSkpO2JyZWFrO2Nhc2UiWllYIjp0aGlzLl95PU1hdGguYXNpbigtWml0KGQsLTEsMSkpLE1hdGguYWJzKGQpPC45OTk5OTk5Pyh0aGlzLl94PU1hdGguYXRhbjIocCxtKSx0aGlzLl96PU1hdGguYXRhbjIocyxpKSk6KHRoaXMuX3g9MCx0aGlzLl96PU1hdGguYXRhbjIoLWEsbCkpO2JyZWFrO2Nhc2UiWVpYIjp0aGlzLl96PU1hdGguYXNpbihaaXQocywtMSwxKSksTWF0aC5hYnMocyk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMigtYyxsKSx0aGlzLl95PU1hdGguYXRhbjIoLWQsaSkpOih0aGlzLl94PTAsdGhpcy5feT1NYXRoLmF0YW4yKHIsbSkpO2JyZWFrO2Nhc2UiWFpZIjp0aGlzLl96PU1hdGguYXNpbigtWml0KGEsLTEsMSkpLE1hdGguYWJzKGEpPC45OTk5OTk5Pyh0aGlzLl94PU1hdGguYXRhbjIocCxsKSx0aGlzLl95PU1hdGguYXRhbjIocixpKSk6KHRoaXMuX3g9TWF0aC5hdGFuMigtYyxtKSx0aGlzLl95PTApO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5FdWxlcjogLnNldEZyb21Sb3RhdGlvbk1hdHJpeCgpIGVuY291bnRlcmVkIGFuIHVua25vd24gb3JkZXI6ICIrZSl9cmV0dXJuIHRoaXMuX29yZGVyPWUsITA9PT1uJiZ0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUXVhdGVybmlvbih0LGUsbil7cmV0dXJuIFphdC5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KSx0aGlzLnNldEZyb21Sb3RhdGlvbk1hdHJpeChaYXQsZSxuKX1zZXRGcm9tVmVjdG9yMyh0LGU9dGhpcy5fb3JkZXIpe3JldHVybiB0aGlzLnNldCh0LngsdC55LHQueixlKX1yZW9yZGVyKHQpe3JldHVybiBYYXQuc2V0RnJvbUV1bGVyKHRoaXMpLHRoaXMuc2V0RnJvbVF1YXRlcm5pb24oWGF0LHQpfWVxdWFscyh0KXtyZXR1cm4gdC5feD09PXRoaXMuX3gmJnQuX3k9PT10aGlzLl95JiZ0Ll96PT09dGhpcy5feiYmdC5fb3JkZXI9PT10aGlzLl9vcmRlcn1mcm9tQXJyYXkodCl7cmV0dXJuIHRoaXMuX3g9dFswXSx0aGlzLl95PXRbMV0sdGhpcy5fej10WzJdLHZvaWQgMCE9PXRbM10mJih0aGlzLl9vcmRlcj10WzNdKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLl94LHRbZSsxXT10aGlzLl95LHRbZSsyXT10aGlzLl96LHRbZSszXT10aGlzLl9vcmRlcix0fXRvVmVjdG9yMyh0KXtyZXR1cm4gdD90LnNldCh0aGlzLl94LHRoaXMuX3ksdGhpcy5feik6bmV3IGNhdCh0aGlzLl94LHRoaXMuX3ksdGhpcy5feil9X29uQ2hhbmdlKHQpe3JldHVybiB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrPXQsdGhpc31fb25DaGFuZ2VDYWxsYmFjaygpe319S2F0LnByb3RvdHlwZS5pc0V1bGVyPSEwLEthdC5EZWZhdWx0T3JkZXI9IlhZWiIsS2F0LlJvdGF0aW9uT3JkZXJzPVsiWFlaIiwiWVpYIiwiWlhZIiwiWFpZIiwiWVhaIiwiWllYIl07Y2xhc3MgSmF0e2NvbnN0cnVjdG9yKCl7dGhpcy5tYXNrPTF9c2V0KHQpe3RoaXMubWFzaz0xPDx0fDB9ZW5hYmxlKHQpe3RoaXMubWFza3w9MTw8dHwwfWVuYWJsZUFsbCgpe3RoaXMubWFzaz0tMX10b2dnbGUodCl7dGhpcy5tYXNrXj0xPDx0fDB9ZGlzYWJsZSh0KXt0aGlzLm1hc2smPX4oMTw8dHwwKX1kaXNhYmxlQWxsKCl7dGhpcy5tYXNrPTB9dGVzdCh0KXtyZXR1cm4gMCE9KHRoaXMubWFzayZ0Lm1hc2spfX1sZXQgUWF0PTA7Y29uc3QgJGF0PW5ldyBjYXQsdHJ0PW5ldyBsYXQsZXJ0PW5ldyBCYXQsbnJ0PW5ldyBjYXQsb3J0PW5ldyBjYXQsaXJ0PW5ldyBjYXQsYXJ0PW5ldyBsYXQscnJ0PW5ldyBjYXQoMSwwLDApLHNydD1uZXcgY2F0KDAsMSwwKSxscnQ9bmV3IGNhdCgwLDAsMSksY3J0PXt0eXBlOiJhZGRlZCJ9LGRydD17dHlwZToicmVtb3ZlZCJ9O2NsYXNzIHBydCBleHRlbmRzIFVpdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6UWF0Kyt9KSx0aGlzLnV1aWQ9cWl0KCksdGhpcy5uYW1lPSIiLHRoaXMudHlwZT0iT2JqZWN0M0QiLHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbj1bXSx0aGlzLnVwPXBydC5EZWZhdWx0VXAuY2xvbmUoKTtjb25zdCB0PW5ldyBjYXQsZT1uZXcgS2F0LG49bmV3IGxhdCxvPW5ldyBjYXQoMSwxLDEpO2UuX29uQ2hhbmdlKChmdW5jdGlvbiBpKCl7bi5zZXRGcm9tRXVsZXIoZSwhMSl9KSksbi5fb25DaGFuZ2UoKGZ1bmN0aW9uIGEoKXtlLnNldEZyb21RdWF0ZXJuaW9uKG4sdm9pZCAwLCExKX0pKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLHtwb3NpdGlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6dH0scm90YXRpb246e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOmV9LHF1YXRlcm5pb246e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm59LHNjYWxlOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpvfSxtb2RlbFZpZXdNYXRyaXg6e3ZhbHVlOm5ldyBCYXR9LG5vcm1hbE1hdHJpeDp7dmFsdWU6bmV3ICRpdH19KSx0aGlzLm1hdHJpeD1uZXcgQmF0LHRoaXMubWF0cml4V29ybGQ9bmV3IEJhdCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9cHJ0LkRlZmF1bHRNYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMSx0aGlzLmxheWVycz1uZXcgSmF0LHRoaXMudmlzaWJsZT0hMCx0aGlzLmNhc3RTaGFkb3c9ITEsdGhpcy5yZWNlaXZlU2hhZG93PSExLHRoaXMuZnJ1c3R1bUN1bGxlZD0hMCx0aGlzLnJlbmRlck9yZGVyPTAsdGhpcy5hbmltYXRpb25zPVtdLHRoaXMudXNlckRhdGE9e319b25CZWZvcmVSZW5kZXIoKXt9b25BZnRlclJlbmRlcigpe31hcHBseU1hdHJpeDQodCl7dGhpcy5tYXRyaXhBdXRvVXBkYXRlJiZ0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMubWF0cml4LnByZW11bHRpcGx5KHQpLHRoaXMubWF0cml4LmRlY29tcG9zZSh0aGlzLnBvc2l0aW9uLHRoaXMucXVhdGVybmlvbix0aGlzLnNjYWxlKX1hcHBseVF1YXRlcm5pb24odCl7cmV0dXJuIHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseSh0KSx0aGlzfXNldFJvdGF0aW9uRnJvbUF4aXNBbmdsZSh0LGUpe3RoaXMucXVhdGVybmlvbi5zZXRGcm9tQXhpc0FuZ2xlKHQsZSl9c2V0Um90YXRpb25Gcm9tRXVsZXIodCl7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21FdWxlcih0LCEwKX1zZXRSb3RhdGlvbkZyb21NYXRyaXgodCl7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21Sb3RhdGlvbk1hdHJpeCh0KX1zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpe3RoaXMucXVhdGVybmlvbi5jb3B5KHQpfXJvdGF0ZU9uQXhpcyh0LGUpe3JldHVybiB0cnQuc2V0RnJvbUF4aXNBbmdsZSh0LGUpLHRoaXMucXVhdGVybmlvbi5tdWx0aXBseSh0cnQpLHRoaXN9cm90YXRlT25Xb3JsZEF4aXModCxlKXtyZXR1cm4gdHJ0LnNldEZyb21BeGlzQW5nbGUodCxlKSx0aGlzLnF1YXRlcm5pb24ucHJlbXVsdGlwbHkodHJ0KSx0aGlzfXJvdGF0ZVgodCl7cmV0dXJuIHRoaXMucm90YXRlT25BeGlzKHJydCx0KX1yb3RhdGVZKHQpe3JldHVybiB0aGlzLnJvdGF0ZU9uQXhpcyhzcnQsdCl9cm90YXRlWih0KXtyZXR1cm4gdGhpcy5yb3RhdGVPbkF4aXMobHJ0LHQpfXRyYW5zbGF0ZU9uQXhpcyh0LGUpe3JldHVybiAkYXQuY29weSh0KS5hcHBseVF1YXRlcm5pb24odGhpcy5xdWF0ZXJuaW9uKSx0aGlzLnBvc2l0aW9uLmFkZCgkYXQubXVsdGlwbHlTY2FsYXIoZSkpLHRoaXN9dHJhbnNsYXRlWCh0KXtyZXR1cm4gdGhpcy50cmFuc2xhdGVPbkF4aXMocnJ0LHQpfXRyYW5zbGF0ZVkodCl7cmV0dXJuIHRoaXMudHJhbnNsYXRlT25BeGlzKHNydCx0KX10cmFuc2xhdGVaKHQpe3JldHVybiB0aGlzLnRyYW5zbGF0ZU9uQXhpcyhscnQsdCl9bG9jYWxUb1dvcmxkKHQpe3JldHVybiB0LmFwcGx5TWF0cml4NCh0aGlzLm1hdHJpeFdvcmxkKX13b3JsZFRvTG9jYWwodCl7cmV0dXJuIHQuYXBwbHlNYXRyaXg0KGVydC5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpKX1sb29rQXQodCxlLG4pe3QuaXNWZWN0b3IzP25ydC5jb3B5KHQpOm5ydC5zZXQodCxlLG4pO2NvbnN0IG89dGhpcy5wYXJlbnQ7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksb3J0LnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLm1hdHJpeFdvcmxkKSx0aGlzLmlzQ2FtZXJhfHx0aGlzLmlzTGlnaHQ/ZXJ0Lmxvb2tBdChvcnQsbnJ0LHRoaXMudXApOmVydC5sb29rQXQobnJ0LG9ydCx0aGlzLnVwKSx0aGlzLnF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KGVydCksbyYmKGVydC5leHRyYWN0Um90YXRpb24oby5tYXRyaXhXb3JsZCksdHJ0LnNldEZyb21Sb3RhdGlvbk1hdHJpeChlcnQpLHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseSh0cnQuaW52ZXJ0KCkpKX1hZGQodCl7aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtmb3IobGV0IHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXRoaXMuYWRkKGFyZ3VtZW50c1t0XSk7cmV0dXJuIHRoaXN9cmV0dXJuIHQ9PT10aGlzPyhjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3QzRC5hZGQ6IG9iamVjdCBjYW4ndCBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIGl0c2VsZi4iLHQpLHRoaXMpOih0JiZ0LmlzT2JqZWN0M0Q/KG51bGwhPT10LnBhcmVudCYmdC5wYXJlbnQucmVtb3ZlKHQpLHQucGFyZW50PXRoaXMsdGhpcy5jaGlsZHJlbi5wdXNoKHQpLHQuZGlzcGF0Y2hFdmVudChjcnQpKTpjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3QzRC5hZGQ6IG9iamVjdCBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuT2JqZWN0M0QuIix0KSx0aGlzKX1yZW1vdmUodCl7aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtmb3IobGV0IHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXRoaXMucmVtb3ZlKGFyZ3VtZW50c1t0XSk7cmV0dXJuIHRoaXN9Y29uc3QgZT10aGlzLmNoaWxkcmVuLmluZGV4T2YodCk7cmV0dXJuLTEhPT1lJiYodC5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuLnNwbGljZShlLDEpLHQuZGlzcGF0Y2hFdmVudChkcnQpKSx0aGlzfXJlbW92ZUZyb21QYXJlbnQoKXtjb25zdCB0PXRoaXMucGFyZW50O3JldHVybiBudWxsIT09dCYmdC5yZW1vdmUodGhpcyksdGhpc31jbGVhcigpe2ZvcihsZXQgdD0wO3Q8dGhpcy5jaGlsZHJlbi5sZW5ndGg7dCsrKXtjb25zdCBlPXRoaXMuY2hpbGRyZW5bdF07ZS5wYXJlbnQ9bnVsbCxlLmRpc3BhdGNoRXZlbnQoZHJ0KX1yZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGg9MCx0aGlzfWF0dGFjaCh0KXtyZXR1cm4gdGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksZXJ0LmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCksbnVsbCE9PXQucGFyZW50JiYodC5wYXJlbnQudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLGVydC5tdWx0aXBseSh0LnBhcmVudC5tYXRyaXhXb3JsZCkpLHQuYXBwbHlNYXRyaXg0KGVydCksdGhpcy5hZGQodCksdC51cGRhdGVXb3JsZE1hdHJpeCghMSwhMCksdGhpc31nZXRPYmplY3RCeUlkKHQpe3JldHVybiB0aGlzLmdldE9iamVjdEJ5UHJvcGVydHkoImlkIix0KX1nZXRPYmplY3RCeU5hbWUodCl7cmV0dXJuIHRoaXMuZ2V0T2JqZWN0QnlQcm9wZXJ0eSgibmFtZSIsdCl9Z2V0T2JqZWN0QnlQcm9wZXJ0eSh0LGUpe2lmKHRoaXNbdF09PT1lKXJldHVybiB0aGlzO2ZvcihsZXQgbj0wLG89dGhpcy5jaGlsZHJlbi5sZW5ndGg7bjxvO24rKyl7Y29uc3Qgbz10aGlzLmNoaWxkcmVuW25dLmdldE9iamVjdEJ5UHJvcGVydHkodCxlKTtpZih2b2lkIDAhPT1vKXJldHVybiBvfX1nZXRXb3JsZFBvc2l0aW9uKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0LnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLm1hdHJpeFdvcmxkKX1nZXRXb3JsZFF1YXRlcm5pb24odCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4V29ybGQuZGVjb21wb3NlKG9ydCx0LGlydCksdH1nZXRXb3JsZFNjYWxlKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0aGlzLm1hdHJpeFdvcmxkLmRlY29tcG9zZShvcnQsYXJ0LHQpLHR9Z2V0V29ybGREaXJlY3Rpb24odCl7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSk7Y29uc3QgZT10aGlzLm1hdHJpeFdvcmxkLmVsZW1lbnRzO3JldHVybiB0LnNldChlWzhdLGVbOV0sZVsxMF0pLm5vcm1hbGl6ZSgpfXJheWNhc3QoKXt9dHJhdmVyc2UodCl7dCh0aGlzKTtjb25zdCBlPXRoaXMuY2hpbGRyZW47Zm9yKGxldCBuPTAsbz1lLmxlbmd0aDtuPG87bisrKWVbbl0udHJhdmVyc2UodCl9dHJhdmVyc2VWaXNpYmxlKHQpe2lmKCExPT09dGhpcy52aXNpYmxlKXJldHVybjt0KHRoaXMpO2NvbnN0IGU9dGhpcy5jaGlsZHJlbjtmb3IobGV0IG49MCxvPWUubGVuZ3RoO248bztuKyspZVtuXS50cmF2ZXJzZVZpc2libGUodCl9dHJhdmVyc2VBbmNlc3RvcnModCl7Y29uc3QgZT10aGlzLnBhcmVudDtudWxsIT09ZSYmKHQoZSksZS50cmF2ZXJzZUFuY2VzdG9ycyh0KSl9dXBkYXRlTWF0cml4KCl7dGhpcy5tYXRyaXguY29tcG9zZSh0aGlzLnBvc2l0aW9uLHRoaXMucXVhdGVybmlvbix0aGlzLnNjYWxlKSx0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9dXBkYXRlTWF0cml4V29ybGQodCl7dGhpcy5tYXRyaXhBdXRvVXBkYXRlJiZ0aGlzLnVwZGF0ZU1hdHJpeCgpLCh0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGV8fHQpJiYobnVsbD09PXRoaXMucGFyZW50P3RoaXMubWF0cml4V29ybGQuY29weSh0aGlzLm1hdHJpeCk6dGhpcy5tYXRyaXhXb3JsZC5tdWx0aXBseU1hdHJpY2VzKHRoaXMucGFyZW50Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4KSx0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITEsdD0hMCk7Y29uc3QgZT10aGlzLmNoaWxkcmVuO2ZvcihsZXQgbj0wLG89ZS5sZW5ndGg7bjxvO24rKyllW25dLnVwZGF0ZU1hdHJpeFdvcmxkKHQpfXVwZGF0ZVdvcmxkTWF0cml4KHQsZSl7Y29uc3Qgbj10aGlzLnBhcmVudDtpZighMD09PXQmJm51bGwhPT1uJiZuLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksbnVsbD09PXRoaXMucGFyZW50P3RoaXMubWF0cml4V29ybGQuY29weSh0aGlzLm1hdHJpeCk6dGhpcy5tYXRyaXhXb3JsZC5tdWx0aXBseU1hdHJpY2VzKHRoaXMucGFyZW50Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4KSwhMD09PWUpe2NvbnN0IHQ9dGhpcy5jaGlsZHJlbjtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspdFtlXS51cGRhdGVXb3JsZE1hdHJpeCghMSwhMCl9fXRvSlNPTih0KXtjb25zdCBlPXZvaWQgMD09PXR8fCJzdHJpbmciPT10eXBlb2YgdCxuPXt9O2UmJih0PXtnZW9tZXRyaWVzOnt9LG1hdGVyaWFsczp7fSx0ZXh0dXJlczp7fSxpbWFnZXM6e30sc2hhcGVzOnt9LHNrZWxldG9uczp7fSxhbmltYXRpb25zOnt9fSxuLm1ldGFkYXRhPXt2ZXJzaW9uOjQuNSx0eXBlOiJPYmplY3QiLGdlbmVyYXRvcjoiT2JqZWN0M0QudG9KU09OIn0pO2NvbnN0IG89e307ZnVuY3Rpb24gaShlLG4pe3JldHVybiB2b2lkIDA9PT1lW24udXVpZF0mJihlW24udXVpZF09bi50b0pTT04odCkpLG4udXVpZH1pZihvLnV1aWQ9dGhpcy51dWlkLG8udHlwZT10aGlzLnR5cGUsIiIhPT10aGlzLm5hbWUmJihvLm5hbWU9dGhpcy5uYW1lKSwhMD09PXRoaXMuY2FzdFNoYWRvdyYmKG8uY2FzdFNoYWRvdz0hMCksITA9PT10aGlzLnJlY2VpdmVTaGFkb3cmJihvLnJlY2VpdmVTaGFkb3c9ITApLCExPT09dGhpcy52aXNpYmxlJiYoby52aXNpYmxlPSExKSwhMT09PXRoaXMuZnJ1c3R1bUN1bGxlZCYmKG8uZnJ1c3R1bUN1bGxlZD0hMSksMCE9PXRoaXMucmVuZGVyT3JkZXImJihvLnJlbmRlck9yZGVyPXRoaXMucmVuZGVyT3JkZXIpLCJ7fSIhPT1KU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJEYXRhKSYmKG8udXNlckRhdGE9dGhpcy51c2VyRGF0YSksby5sYXllcnM9dGhpcy5sYXllcnMubWFzayxvLm1hdHJpeD10aGlzLm1hdHJpeC50b0FycmF5KCksITE9PT10aGlzLm1hdHJpeEF1dG9VcGRhdGUmJihvLm1hdHJpeEF1dG9VcGRhdGU9ITEpLHRoaXMuaXNJbnN0YW5jZWRNZXNoJiYoby50eXBlPSJJbnN0YW5jZWRNZXNoIixvLmNvdW50PXRoaXMuY291bnQsby5pbnN0YW5jZU1hdHJpeD10aGlzLmluc3RhbmNlTWF0cml4LnRvSlNPTigpLG51bGwhPT10aGlzLmluc3RhbmNlQ29sb3ImJihvLmluc3RhbmNlQ29sb3I9dGhpcy5pbnN0YW5jZUNvbG9yLnRvSlNPTigpKSksdGhpcy5pc1NjZW5lKXRoaXMuYmFja2dyb3VuZCYmKHRoaXMuYmFja2dyb3VuZC5pc0NvbG9yP28uYmFja2dyb3VuZD10aGlzLmJhY2tncm91bmQudG9KU09OKCk6dGhpcy5iYWNrZ3JvdW5kLmlzVGV4dHVyZSYmKG8uYmFja2dyb3VuZD10aGlzLmJhY2tncm91bmQudG9KU09OKHQpLnV1aWQpKSx0aGlzLmVudmlyb25tZW50JiZ0aGlzLmVudmlyb25tZW50LmlzVGV4dHVyZSYmKG8uZW52aXJvbm1lbnQ9dGhpcy5lbnZpcm9ubWVudC50b0pTT04odCkudXVpZCk7ZWxzZSBpZih0aGlzLmlzTWVzaHx8dGhpcy5pc0xpbmV8fHRoaXMuaXNQb2ludHMpe28uZ2VvbWV0cnk9aSh0Lmdlb21ldHJpZXMsdGhpcy5nZW9tZXRyeSk7Y29uc3QgZT10aGlzLmdlb21ldHJ5LnBhcmFtZXRlcnM7aWYodm9pZCAwIT09ZSYmdm9pZCAwIT09ZS5zaGFwZXMpe2NvbnN0IG49ZS5zaGFwZXM7aWYoQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IGU9MCxvPW4ubGVuZ3RoO2U8bztlKyspaSh0LnNoYXBlcyxuW2VdKTtlbHNlIGkodC5zaGFwZXMsbil9fWlmKHRoaXMuaXNTa2lubmVkTWVzaCYmKG8uYmluZE1vZGU9dGhpcy5iaW5kTW9kZSxvLmJpbmRNYXRyaXg9dGhpcy5iaW5kTWF0cml4LnRvQXJyYXkoKSx2b2lkIDAhPT10aGlzLnNrZWxldG9uJiYoaSh0LnNrZWxldG9ucyx0aGlzLnNrZWxldG9uKSxvLnNrZWxldG9uPXRoaXMuc2tlbGV0b24udXVpZCkpLHZvaWQgMCE9PXRoaXMubWF0ZXJpYWwpaWYoQXJyYXkuaXNBcnJheSh0aGlzLm1hdGVyaWFsKSl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxvPXRoaXMubWF0ZXJpYWwubGVuZ3RoO248bztuKyspZS5wdXNoKGkodC5tYXRlcmlhbHMsdGhpcy5tYXRlcmlhbFtuXSkpO28ubWF0ZXJpYWw9ZX1lbHNlIG8ubWF0ZXJpYWw9aSh0Lm1hdGVyaWFscyx0aGlzLm1hdGVyaWFsKTtpZih0aGlzLmNoaWxkcmVuLmxlbmd0aD4wKXtvLmNoaWxkcmVuPVtdO2ZvcihsZXQgZT0wO2U8dGhpcy5jaGlsZHJlbi5sZW5ndGg7ZSsrKW8uY2hpbGRyZW4ucHVzaCh0aGlzLmNoaWxkcmVuW2VdLnRvSlNPTih0KS5vYmplY3QpfWlmKHRoaXMuYW5pbWF0aW9ucy5sZW5ndGg+MCl7by5hbmltYXRpb25zPVtdO2ZvcihsZXQgZT0wO2U8dGhpcy5hbmltYXRpb25zLmxlbmd0aDtlKyspby5hbmltYXRpb25zLnB1c2goaSh0LmFuaW1hdGlvbnMsdGhpcy5hbmltYXRpb25zW2VdKSl9aWYoZSl7Y29uc3QgZT1hKHQuZ2VvbWV0cmllcyksbz1hKHQubWF0ZXJpYWxzKSxpPWEodC50ZXh0dXJlcykscj1hKHQuaW1hZ2VzKSxzPWEodC5zaGFwZXMpLGw9YSh0LnNrZWxldG9ucyksYz1hKHQuYW5pbWF0aW9ucyk7ZS5sZW5ndGg+MCYmKG4uZ2VvbWV0cmllcz1lKSxvLmxlbmd0aD4wJiYobi5tYXRlcmlhbHM9byksaS5sZW5ndGg+MCYmKG4udGV4dHVyZXM9aSksci5sZW5ndGg+MCYmKG4uaW1hZ2VzPXIpLHMubGVuZ3RoPjAmJihuLnNoYXBlcz1zKSxsLmxlbmd0aD4wJiYobi5za2VsZXRvbnM9bCksYy5sZW5ndGg+MCYmKG4uYW5pbWF0aW9ucz1jKX1yZXR1cm4gbi5vYmplY3Q9byxuO2Z1bmN0aW9uIGEodCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgbiBpbiB0KXtjb25zdCBvPXRbbl07ZGVsZXRlIG8ubWV0YWRhdGEsZS5wdXNoKG8pfXJldHVybiBlfX1jbG9uZSh0KXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyx0KX1jb3B5KHQsZT0hMCl7aWYodGhpcy5uYW1lPXQubmFtZSx0aGlzLnVwLmNvcHkodC51cCksdGhpcy5wb3NpdGlvbi5jb3B5KHQucG9zaXRpb24pLHRoaXMucm90YXRpb24ub3JkZXI9dC5yb3RhdGlvbi5vcmRlcix0aGlzLnF1YXRlcm5pb24uY29weSh0LnF1YXRlcm5pb24pLHRoaXMuc2NhbGUuY29weSh0LnNjYWxlKSx0aGlzLm1hdHJpeC5jb3B5KHQubWF0cml4KSx0aGlzLm1hdHJpeFdvcmxkLmNvcHkodC5tYXRyaXhXb3JsZCksdGhpcy5tYXRyaXhBdXRvVXBkYXRlPXQubWF0cml4QXV0b1VwZGF0ZSx0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9dC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlLHRoaXMubGF5ZXJzLm1hc2s9dC5sYXllcnMubWFzayx0aGlzLnZpc2libGU9dC52aXNpYmxlLHRoaXMuY2FzdFNoYWRvdz10LmNhc3RTaGFkb3csdGhpcy5yZWNlaXZlU2hhZG93PXQucmVjZWl2ZVNoYWRvdyx0aGlzLmZydXN0dW1DdWxsZWQ9dC5mcnVzdHVtQ3VsbGVkLHRoaXMucmVuZGVyT3JkZXI9dC5yZW5kZXJPcmRlcix0aGlzLnVzZXJEYXRhPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodC51c2VyRGF0YSkpLCEwPT09ZSlmb3IobGV0IGU9MDtlPHQuY2hpbGRyZW4ubGVuZ3RoO2UrKyl0aGlzLmFkZCh0LmNoaWxkcmVuW2VdLmNsb25lKCkpO3JldHVybiB0aGlzfX1wcnQuRGVmYXVsdFVwPW5ldyBjYXQoMCwxLDApLHBydC5EZWZhdWx0TWF0cml4QXV0b1VwZGF0ZT0hMCxwcnQucHJvdG90eXBlLmlzT2JqZWN0M0Q9ITA7Y29uc3QgbXJ0PW5ldyBjYXQsdXJ0PW5ldyBjYXQsZnJ0PW5ldyBjYXQsZ3J0PW5ldyBjYXQsaHJ0PW5ldyBjYXQsYnJ0PW5ldyBjYXQseXJ0PW5ldyBjYXQsX3J0PW5ldyBjYXQsQ3J0PW5ldyBjYXQsTXJ0PW5ldyBjYXQ7Y2xhc3MgdnJ0e2NvbnN0cnVjdG9yKHQ9bmV3IGNhdCxlPW5ldyBjYXQsbj1uZXcgY2F0KXt0aGlzLmE9dCx0aGlzLmI9ZSx0aGlzLmM9bn1zdGF0aWMgZ2V0Tm9ybWFsKHQsZSxuLG8pe28uc3ViVmVjdG9ycyhuLGUpLG1ydC5zdWJWZWN0b3JzKHQsZSksby5jcm9zcyhtcnQpO2NvbnN0IGk9by5sZW5ndGhTcSgpO3JldHVybiBpPjA/by5tdWx0aXBseVNjYWxhcigxL01hdGguc3FydChpKSk6by5zZXQoMCwwLDApfXN0YXRpYyBnZXRCYXJ5Y29vcmQodCxlLG4sbyxpKXttcnQuc3ViVmVjdG9ycyhvLGUpLHVydC5zdWJWZWN0b3JzKG4sZSksZnJ0LnN1YlZlY3RvcnModCxlKTtjb25zdCBhPW1ydC5kb3QobXJ0KSxyPW1ydC5kb3QodXJ0KSxzPW1ydC5kb3QoZnJ0KSxsPXVydC5kb3QodXJ0KSxjPXVydC5kb3QoZnJ0KSxkPWEqbC1yKnI7aWYoMD09PWQpcmV0dXJuIGkuc2V0KC0yLC0xLC0xKTtjb25zdCBwPTEvZCxtPShsKnMtcipjKSpwLHU9KGEqYy1yKnMpKnA7cmV0dXJuIGkuc2V0KDEtbS11LHUsbSl9c3RhdGljIGNvbnRhaW5zUG9pbnQodCxlLG4sbyl7cmV0dXJuIHRoaXMuZ2V0QmFyeWNvb3JkKHQsZSxuLG8sZ3J0KSxncnQueD49MCYmZ3J0Lnk+PTAmJmdydC54K2dydC55PD0xfXN0YXRpYyBnZXRVVih0LGUsbixvLGksYSxyLHMpe3JldHVybiB0aGlzLmdldEJhcnljb29yZCh0LGUsbixvLGdydCkscy5zZXQoMCwwKSxzLmFkZFNjYWxlZFZlY3RvcihpLGdydC54KSxzLmFkZFNjYWxlZFZlY3RvcihhLGdydC55KSxzLmFkZFNjYWxlZFZlY3RvcihyLGdydC56KSxzfXN0YXRpYyBpc0Zyb250RmFjaW5nKHQsZSxuLG8pe3JldHVybiBtcnQuc3ViVmVjdG9ycyhuLGUpLHVydC5zdWJWZWN0b3JzKHQsZSksbXJ0LmNyb3NzKHVydCkuZG90KG8pPDB9c2V0KHQsZSxuKXtyZXR1cm4gdGhpcy5hLmNvcHkodCksdGhpcy5iLmNvcHkoZSksdGhpcy5jLmNvcHkobiksdGhpc31zZXRGcm9tUG9pbnRzQW5kSW5kaWNlcyh0LGUsbixvKXtyZXR1cm4gdGhpcy5hLmNvcHkodFtlXSksdGhpcy5iLmNvcHkodFtuXSksdGhpcy5jLmNvcHkodFtvXSksdGhpc31jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLmEuY29weSh0LmEpLHRoaXMuYi5jb3B5KHQuYiksdGhpcy5jLmNvcHkodC5jKSx0aGlzfWdldEFyZWEoKXtyZXR1cm4gbXJ0LnN1YlZlY3RvcnModGhpcy5jLHRoaXMuYiksdXJ0LnN1YlZlY3RvcnModGhpcy5hLHRoaXMuYiksLjUqbXJ0LmNyb3NzKHVydCkubGVuZ3RoKCl9Z2V0TWlkcG9pbnQodCl7cmV0dXJuIHQuYWRkVmVjdG9ycyh0aGlzLmEsdGhpcy5iKS5hZGQodGhpcy5jKS5tdWx0aXBseVNjYWxhcigxLzMpfWdldE5vcm1hbCh0KXtyZXR1cm4gdnJ0LmdldE5vcm1hbCh0aGlzLmEsdGhpcy5iLHRoaXMuYyx0KX1nZXRQbGFuZSh0KXtyZXR1cm4gdC5zZXRGcm9tQ29wbGFuYXJQb2ludHModGhpcy5hLHRoaXMuYix0aGlzLmMpfWdldEJhcnljb29yZCh0LGUpe3JldHVybiB2cnQuZ2V0QmFyeWNvb3JkKHQsdGhpcy5hLHRoaXMuYix0aGlzLmMsZSl9Z2V0VVYodCxlLG4sbyxpKXtyZXR1cm4gdnJ0LmdldFVWKHQsdGhpcy5hLHRoaXMuYix0aGlzLmMsZSxuLG8saSl9Y29udGFpbnNQb2ludCh0KXtyZXR1cm4gdnJ0LmNvbnRhaW5zUG9pbnQodCx0aGlzLmEsdGhpcy5iLHRoaXMuYyl9aXNGcm9udEZhY2luZyh0KXtyZXR1cm4gdnJ0LmlzRnJvbnRGYWNpbmcodGhpcy5hLHRoaXMuYix0aGlzLmMsdCl9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzVHJpYW5nbGUodGhpcyl9Y2xvc2VzdFBvaW50VG9Qb2ludCh0LGUpe2NvbnN0IG49dGhpcy5hLG89dGhpcy5iLGk9dGhpcy5jO2xldCBhLHI7aHJ0LnN1YlZlY3RvcnMobyxuKSxicnQuc3ViVmVjdG9ycyhpLG4pLF9ydC5zdWJWZWN0b3JzKHQsbik7Y29uc3Qgcz1ocnQuZG90KF9ydCksbD1icnQuZG90KF9ydCk7aWYoczw9MCYmbDw9MClyZXR1cm4gZS5jb3B5KG4pO0NydC5zdWJWZWN0b3JzKHQsbyk7Y29uc3QgYz1ocnQuZG90KENydCksZD1icnQuZG90KENydCk7aWYoYz49MCYmZDw9YylyZXR1cm4gZS5jb3B5KG8pO2NvbnN0IHA9cypkLWMqbDtpZihwPD0wJiZzPj0wJiZjPD0wKXJldHVybiBhPXMvKHMtYyksZS5jb3B5KG4pLmFkZFNjYWxlZFZlY3RvcihocnQsYSk7TXJ0LnN1YlZlY3RvcnModCxpKTtjb25zdCBtPWhydC5kb3QoTXJ0KSx1PWJydC5kb3QoTXJ0KTtpZih1Pj0wJiZtPD11KXJldHVybiBlLmNvcHkoaSk7Y29uc3QgZj1tKmwtcyp1O2lmKGY8PTAmJmw+PTAmJnU8PTApcmV0dXJuIHI9bC8obC11KSxlLmNvcHkobikuYWRkU2NhbGVkVmVjdG9yKGJydCxyKTtjb25zdCBnPWMqdS1tKmQ7aWYoZzw9MCYmZC1jPj0wJiZtLXU+PTApcmV0dXJuIHlydC5zdWJWZWN0b3JzKGksbykscj0oZC1jKS8oZC1jKyhtLXUpKSxlLmNvcHkobykuYWRkU2NhbGVkVmVjdG9yKHlydCxyKTtjb25zdCBoPTEvKGcrZitwKTtyZXR1cm4gYT1mKmgscj1wKmgsZS5jb3B5KG4pLmFkZFNjYWxlZFZlY3RvcihocnQsYSkuYWRkU2NhbGVkVmVjdG9yKGJydCxyKX1lcXVhbHModCl7cmV0dXJuIHQuYS5lcXVhbHModGhpcy5hKSYmdC5iLmVxdWFscyh0aGlzLmIpJiZ0LmMuZXF1YWxzKHRoaXMuYyl9fWxldCB4cnQ9MDtjbGFzcyBPcnQgZXh0ZW5kcyBVaXR7Y29uc3RydWN0b3IoKXtzdXBlcigpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJpZCIse3ZhbHVlOnhydCsrfSksdGhpcy51dWlkPXFpdCgpLHRoaXMubmFtZT0iIix0aGlzLnR5cGU9Ik1hdGVyaWFsIix0aGlzLmZvZz0hMCx0aGlzLmJsZW5kaW5nPTEsdGhpcy5zaWRlPTAsdGhpcy52ZXJ0ZXhDb2xvcnM9ITEsdGhpcy5vcGFjaXR5PTEsdGhpcy50cmFuc3BhcmVudD0hMSx0aGlzLmJsZW5kU3JjPTIwNCx0aGlzLmJsZW5kRHN0PTIwNSx0aGlzLmJsZW5kRXF1YXRpb249Y2l0LHRoaXMuYmxlbmRTcmNBbHBoYT1udWxsLHRoaXMuYmxlbmREc3RBbHBoYT1udWxsLHRoaXMuYmxlbmRFcXVhdGlvbkFscGhhPW51bGwsdGhpcy5kZXB0aEZ1bmM9Myx0aGlzLmRlcHRoVGVzdD0hMCx0aGlzLmRlcHRoV3JpdGU9ITAsdGhpcy5zdGVuY2lsV3JpdGVNYXNrPTI1NSx0aGlzLnN0ZW5jaWxGdW5jPTUxOSx0aGlzLnN0ZW5jaWxSZWY9MCx0aGlzLnN0ZW5jaWxGdW5jTWFzaz0yNTUsdGhpcy5zdGVuY2lsRmFpbD1MaXQsdGhpcy5zdGVuY2lsWkZhaWw9TGl0LHRoaXMuc3RlbmNpbFpQYXNzPUxpdCx0aGlzLnN0ZW5jaWxXcml0ZT0hMSx0aGlzLmNsaXBwaW5nUGxhbmVzPW51bGwsdGhpcy5jbGlwSW50ZXJzZWN0aW9uPSExLHRoaXMuY2xpcFNoYWRvd3M9ITEsdGhpcy5zaGFkb3dTaWRlPW51bGwsdGhpcy5jb2xvcldyaXRlPSEwLHRoaXMucHJlY2lzaW9uPW51bGwsdGhpcy5wb2x5Z29uT2Zmc2V0PSExLHRoaXMucG9seWdvbk9mZnNldEZhY3Rvcj0wLHRoaXMucG9seWdvbk9mZnNldFVuaXRzPTAsdGhpcy5kaXRoZXJpbmc9ITEsdGhpcy5hbHBoYVRlc3Q9MCx0aGlzLmFscGhhVG9Db3ZlcmFnZT0hMSx0aGlzLnByZW11bHRpcGxpZWRBbHBoYT0hMSx0aGlzLnZpc2libGU9ITAsdGhpcy50b25lTWFwcGVkPSEwLHRoaXMudXNlckRhdGE9e30sdGhpcy52ZXJzaW9uPTB9b25CdWlsZCgpe31vbkJlZm9yZUNvbXBpbGUoKXt9Y3VzdG9tUHJvZ3JhbUNhY2hlS2V5KCl7cmV0dXJuIHRoaXMub25CZWZvcmVDb21waWxlLnRvU3RyaW5nKCl9c2V0VmFsdWVzKHQpe2lmKHZvaWQgMCE9PXQpZm9yKGNvbnN0IGUgaW4gdCl7Y29uc3Qgbj10W2VdO2lmKHZvaWQgMD09PW4pe2NvbnNvbGUud2FybigiVEhSRUUuTWF0ZXJpYWw6ICciK2UrIicgcGFyYW1ldGVyIGlzIHVuZGVmaW5lZC4iKTtjb250aW51ZX1pZigic2hhZGluZyI9PT1lKXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKSx0aGlzLmZsYXRTaGFkaW5nPTE9PT1uO2NvbnRpbnVlfWNvbnN0IG89dGhpc1tlXTt2b2lkIDAhPT1vP28mJm8uaXNDb2xvcj9vLnNldChuKTpvJiZvLmlzVmVjdG9yMyYmbiYmbi5pc1ZlY3RvcjM/by5jb3B5KG4pOnRoaXNbZV09bjpjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6ICciK2UrIicgaXMgbm90IGEgcHJvcGVydHkgb2YgdGhpcyBtYXRlcmlhbC4iKX19dG9KU09OKHQpe2NvbnN0IGU9dm9pZCAwPT09dHx8InN0cmluZyI9PXR5cGVvZiB0O2UmJih0PXt0ZXh0dXJlczp7fSxpbWFnZXM6e319KTtjb25zdCBuPXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiTWF0ZXJpYWwiLGdlbmVyYXRvcjoiTWF0ZXJpYWwudG9KU09OIn19O2Z1bmN0aW9uIG8odCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgbiBpbiB0KXtjb25zdCBvPXRbbl07ZGVsZXRlIG8ubWV0YWRhdGEsZS5wdXNoKG8pfXJldHVybiBlfWlmKG4udXVpZD10aGlzLnV1aWQsbi50eXBlPXRoaXMudHlwZSwiIiE9PXRoaXMubmFtZSYmKG4ubmFtZT10aGlzLm5hbWUpLHRoaXMuY29sb3ImJnRoaXMuY29sb3IuaXNDb2xvciYmKG4uY29sb3I9dGhpcy5jb2xvci5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5yb3VnaG5lc3MmJihuLnJvdWdobmVzcz10aGlzLnJvdWdobmVzcyksdm9pZCAwIT09dGhpcy5tZXRhbG5lc3MmJihuLm1ldGFsbmVzcz10aGlzLm1ldGFsbmVzcyksdGhpcy5zaGVlbiYmdGhpcy5zaGVlbi5pc0NvbG9yJiYobi5zaGVlbj10aGlzLnNoZWVuLmdldEhleCgpKSx0aGlzLmVtaXNzaXZlJiZ0aGlzLmVtaXNzaXZlLmlzQ29sb3ImJihuLmVtaXNzaXZlPXRoaXMuZW1pc3NpdmUuZ2V0SGV4KCkpLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHkmJjEhPT10aGlzLmVtaXNzaXZlSW50ZW5zaXR5JiYobi5lbWlzc2l2ZUludGVuc2l0eT10aGlzLmVtaXNzaXZlSW50ZW5zaXR5KSx0aGlzLnNwZWN1bGFyJiZ0aGlzLnNwZWN1bGFyLmlzQ29sb3ImJihuLnNwZWN1bGFyPXRoaXMuc3BlY3VsYXIuZ2V0SGV4KCkpLHZvaWQgMCE9PXRoaXMuc3BlY3VsYXJJbnRlbnNpdHkmJihuLnNwZWN1bGFySW50ZW5zaXR5PXRoaXMuc3BlY3VsYXJJbnRlbnNpdHkpLHRoaXMuc3BlY3VsYXJUaW50JiZ0aGlzLnNwZWN1bGFyVGludC5pc0NvbG9yJiYobi5zcGVjdWxhclRpbnQ9dGhpcy5zcGVjdWxhclRpbnQuZ2V0SGV4KCkpLHZvaWQgMCE9PXRoaXMuc2hpbmluZXNzJiYobi5zaGluaW5lc3M9dGhpcy5zaGluaW5lc3MpLHZvaWQgMCE9PXRoaXMuY2xlYXJjb2F0JiYobi5jbGVhcmNvYXQ9dGhpcy5jbGVhcmNvYXQpLHZvaWQgMCE9PXRoaXMuY2xlYXJjb2F0Um91Z2huZXNzJiYobi5jbGVhcmNvYXRSb3VnaG5lc3M9dGhpcy5jbGVhcmNvYXRSb3VnaG5lc3MpLHRoaXMuY2xlYXJjb2F0TWFwJiZ0aGlzLmNsZWFyY29hdE1hcC5pc1RleHR1cmUmJihuLmNsZWFyY29hdE1hcD10aGlzLmNsZWFyY29hdE1hcC50b0pTT04odCkudXVpZCksdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXAmJnRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwLmlzVGV4dHVyZSYmKG4uY2xlYXJjb2F0Um91Z2huZXNzTWFwPXRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmNsZWFyY29hdE5vcm1hbE1hcCYmdGhpcy5jbGVhcmNvYXROb3JtYWxNYXAuaXNUZXh0dXJlJiYobi5jbGVhcmNvYXROb3JtYWxNYXA9dGhpcy5jbGVhcmNvYXROb3JtYWxNYXAudG9KU09OKHQpLnV1aWQsbi5jbGVhcmNvYXROb3JtYWxTY2FsZT10aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlLnRvQXJyYXkoKSksdGhpcy5tYXAmJnRoaXMubWFwLmlzVGV4dHVyZSYmKG4ubWFwPXRoaXMubWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLm1hdGNhcCYmdGhpcy5tYXRjYXAuaXNUZXh0dXJlJiYobi5tYXRjYXA9dGhpcy5tYXRjYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuYWxwaGFNYXAmJnRoaXMuYWxwaGFNYXAuaXNUZXh0dXJlJiYobi5hbHBoYU1hcD10aGlzLmFscGhhTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmxpZ2h0TWFwJiZ0aGlzLmxpZ2h0TWFwLmlzVGV4dHVyZSYmKG4ubGlnaHRNYXA9dGhpcy5saWdodE1hcC50b0pTT04odCkudXVpZCxuLmxpZ2h0TWFwSW50ZW5zaXR5PXRoaXMubGlnaHRNYXBJbnRlbnNpdHkpLHRoaXMuYW9NYXAmJnRoaXMuYW9NYXAuaXNUZXh0dXJlJiYobi5hb01hcD10aGlzLmFvTWFwLnRvSlNPTih0KS51dWlkLG4uYW9NYXBJbnRlbnNpdHk9dGhpcy5hb01hcEludGVuc2l0eSksdGhpcy5idW1wTWFwJiZ0aGlzLmJ1bXBNYXAuaXNUZXh0dXJlJiYobi5idW1wTWFwPXRoaXMuYnVtcE1hcC50b0pTT04odCkudXVpZCxuLmJ1bXBTY2FsZT10aGlzLmJ1bXBTY2FsZSksdGhpcy5ub3JtYWxNYXAmJnRoaXMubm9ybWFsTWFwLmlzVGV4dHVyZSYmKG4ubm9ybWFsTWFwPXRoaXMubm9ybWFsTWFwLnRvSlNPTih0KS51dWlkLG4ubm9ybWFsTWFwVHlwZT10aGlzLm5vcm1hbE1hcFR5cGUsbi5ub3JtYWxTY2FsZT10aGlzLm5vcm1hbFNjYWxlLnRvQXJyYXkoKSksdGhpcy5kaXNwbGFjZW1lbnRNYXAmJnRoaXMuZGlzcGxhY2VtZW50TWFwLmlzVGV4dHVyZSYmKG4uZGlzcGxhY2VtZW50TWFwPXRoaXMuZGlzcGxhY2VtZW50TWFwLnRvSlNPTih0KS51dWlkLG4uZGlzcGxhY2VtZW50U2NhbGU9dGhpcy5kaXNwbGFjZW1lbnRTY2FsZSxuLmRpc3BsYWNlbWVudEJpYXM9dGhpcy5kaXNwbGFjZW1lbnRCaWFzKSx0aGlzLnJvdWdobmVzc01hcCYmdGhpcy5yb3VnaG5lc3NNYXAuaXNUZXh0dXJlJiYobi5yb3VnaG5lc3NNYXA9dGhpcy5yb3VnaG5lc3NNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMubWV0YWxuZXNzTWFwJiZ0aGlzLm1ldGFsbmVzc01hcC5pc1RleHR1cmUmJihuLm1ldGFsbmVzc01hcD10aGlzLm1ldGFsbmVzc01hcC50b0pTT04odCkudXVpZCksdGhpcy5lbWlzc2l2ZU1hcCYmdGhpcy5lbWlzc2l2ZU1hcC5pc1RleHR1cmUmJihuLmVtaXNzaXZlTWFwPXRoaXMuZW1pc3NpdmVNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuc3BlY3VsYXJNYXAmJnRoaXMuc3BlY3VsYXJNYXAuaXNUZXh0dXJlJiYobi5zcGVjdWxhck1hcD10aGlzLnNwZWN1bGFyTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5TWFwJiZ0aGlzLnNwZWN1bGFySW50ZW5zaXR5TWFwLmlzVGV4dHVyZSYmKG4uc3BlY3VsYXJJbnRlbnNpdHlNYXA9dGhpcy5zcGVjdWxhckludGVuc2l0eU1hcC50b0pTT04odCkudXVpZCksdGhpcy5zcGVjdWxhclRpbnRNYXAmJnRoaXMuc3BlY3VsYXJUaW50TWFwLmlzVGV4dHVyZSYmKG4uc3BlY3VsYXJUaW50TWFwPXRoaXMuc3BlY3VsYXJUaW50TWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmVudk1hcCYmdGhpcy5lbnZNYXAuaXNUZXh0dXJlJiYobi5lbnZNYXA9dGhpcy5lbnZNYXAudG9KU09OKHQpLnV1aWQsdm9pZCAwIT09dGhpcy5jb21iaW5lJiYobi5jb21iaW5lPXRoaXMuY29tYmluZSkpLHZvaWQgMCE9PXRoaXMuZW52TWFwSW50ZW5zaXR5JiYobi5lbnZNYXBJbnRlbnNpdHk9dGhpcy5lbnZNYXBJbnRlbnNpdHkpLHZvaWQgMCE9PXRoaXMucmVmbGVjdGl2aXR5JiYobi5yZWZsZWN0aXZpdHk9dGhpcy5yZWZsZWN0aXZpdHkpLHZvaWQgMCE9PXRoaXMucmVmcmFjdGlvblJhdGlvJiYobi5yZWZyYWN0aW9uUmF0aW89dGhpcy5yZWZyYWN0aW9uUmF0aW8pLHRoaXMuZ3JhZGllbnRNYXAmJnRoaXMuZ3JhZGllbnRNYXAuaXNUZXh0dXJlJiYobi5ncmFkaWVudE1hcD10aGlzLmdyYWRpZW50TWFwLnRvSlNPTih0KS51dWlkKSx2b2lkIDAhPT10aGlzLnRyYW5zbWlzc2lvbiYmKG4udHJhbnNtaXNzaW9uPXRoaXMudHJhbnNtaXNzaW9uKSx0aGlzLnRyYW5zbWlzc2lvbk1hcCYmdGhpcy50cmFuc21pc3Npb25NYXAuaXNUZXh0dXJlJiYobi50cmFuc21pc3Npb25NYXA9dGhpcy50cmFuc21pc3Npb25NYXAudG9KU09OKHQpLnV1aWQpLHZvaWQgMCE9PXRoaXMudGhpY2tuZXNzJiYobi50aGlja25lc3M9dGhpcy50aGlja25lc3MpLHRoaXMudGhpY2tuZXNzTWFwJiZ0aGlzLnRoaWNrbmVzc01hcC5pc1RleHR1cmUmJihuLnRoaWNrbmVzc01hcD10aGlzLnRoaWNrbmVzc01hcC50b0pTT04odCkudXVpZCksdm9pZCAwIT09dGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlJiYobi5hdHRlbnVhdGlvbkRpc3RhbmNlPXRoaXMuYXR0ZW51YXRpb25EaXN0YW5jZSksdm9pZCAwIT09dGhpcy5hdHRlbnVhdGlvblRpbnQmJihuLmF0dGVudWF0aW9uVGludD10aGlzLmF0dGVudWF0aW9uVGludC5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5zaXplJiYobi5zaXplPXRoaXMuc2l6ZSksbnVsbCE9PXRoaXMuc2hhZG93U2lkZSYmKG4uc2hhZG93U2lkZT10aGlzLnNoYWRvd1NpZGUpLHZvaWQgMCE9PXRoaXMuc2l6ZUF0dGVudWF0aW9uJiYobi5zaXplQXR0ZW51YXRpb249dGhpcy5zaXplQXR0ZW51YXRpb24pLDEhPT10aGlzLmJsZW5kaW5nJiYobi5ibGVuZGluZz10aGlzLmJsZW5kaW5nKSwwIT09dGhpcy5zaWRlJiYobi5zaWRlPXRoaXMuc2lkZSksdGhpcy52ZXJ0ZXhDb2xvcnMmJihuLnZlcnRleENvbG9ycz0hMCksdGhpcy5vcGFjaXR5PDEmJihuLm9wYWNpdHk9dGhpcy5vcGFjaXR5KSwhMD09PXRoaXMudHJhbnNwYXJlbnQmJihuLnRyYW5zcGFyZW50PXRoaXMudHJhbnNwYXJlbnQpLG4uZGVwdGhGdW5jPXRoaXMuZGVwdGhGdW5jLG4uZGVwdGhUZXN0PXRoaXMuZGVwdGhUZXN0LG4uZGVwdGhXcml0ZT10aGlzLmRlcHRoV3JpdGUsbi5jb2xvcldyaXRlPXRoaXMuY29sb3JXcml0ZSxuLnN0ZW5jaWxXcml0ZT10aGlzLnN0ZW5jaWxXcml0ZSxuLnN0ZW5jaWxXcml0ZU1hc2s9dGhpcy5zdGVuY2lsV3JpdGVNYXNrLG4uc3RlbmNpbEZ1bmM9dGhpcy5zdGVuY2lsRnVuYyxuLnN0ZW5jaWxSZWY9dGhpcy5zdGVuY2lsUmVmLG4uc3RlbmNpbEZ1bmNNYXNrPXRoaXMuc3RlbmNpbEZ1bmNNYXNrLG4uc3RlbmNpbEZhaWw9dGhpcy5zdGVuY2lsRmFpbCxuLnN0ZW5jaWxaRmFpbD10aGlzLnN0ZW5jaWxaRmFpbCxuLnN0ZW5jaWxaUGFzcz10aGlzLnN0ZW5jaWxaUGFzcyx0aGlzLnJvdGF0aW9uJiYwIT09dGhpcy5yb3RhdGlvbiYmKG4ucm90YXRpb249dGhpcy5yb3RhdGlvbiksITA9PT10aGlzLnBvbHlnb25PZmZzZXQmJihuLnBvbHlnb25PZmZzZXQ9ITApLDAhPT10aGlzLnBvbHlnb25PZmZzZXRGYWN0b3ImJihuLnBvbHlnb25PZmZzZXRGYWN0b3I9dGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yKSwwIT09dGhpcy5wb2x5Z29uT2Zmc2V0VW5pdHMmJihuLnBvbHlnb25PZmZzZXRVbml0cz10aGlzLnBvbHlnb25PZmZzZXRVbml0cyksdGhpcy5saW5ld2lkdGgmJjEhPT10aGlzLmxpbmV3aWR0aCYmKG4ubGluZXdpZHRoPXRoaXMubGluZXdpZHRoKSx2b2lkIDAhPT10aGlzLmRhc2hTaXplJiYobi5kYXNoU2l6ZT10aGlzLmRhc2hTaXplKSx2b2lkIDAhPT10aGlzLmdhcFNpemUmJihuLmdhcFNpemU9dGhpcy5nYXBTaXplKSx2b2lkIDAhPT10aGlzLnNjYWxlJiYobi5zY2FsZT10aGlzLnNjYWxlKSwhMD09PXRoaXMuZGl0aGVyaW5nJiYobi5kaXRoZXJpbmc9ITApLHRoaXMuYWxwaGFUZXN0PjAmJihuLmFscGhhVGVzdD10aGlzLmFscGhhVGVzdCksITA9PT10aGlzLmFscGhhVG9Db3ZlcmFnZSYmKG4uYWxwaGFUb0NvdmVyYWdlPXRoaXMuYWxwaGFUb0NvdmVyYWdlKSwhMD09PXRoaXMucHJlbXVsdGlwbGllZEFscGhhJiYobi5wcmVtdWx0aXBsaWVkQWxwaGE9dGhpcy5wcmVtdWx0aXBsaWVkQWxwaGEpLCEwPT09dGhpcy53aXJlZnJhbWUmJihuLndpcmVmcmFtZT10aGlzLndpcmVmcmFtZSksdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg+MSYmKG4ud2lyZWZyYW1lTGluZXdpZHRoPXRoaXMud2lyZWZyYW1lTGluZXdpZHRoKSwicm91bmQiIT09dGhpcy53aXJlZnJhbWVMaW5lY2FwJiYobi53aXJlZnJhbWVMaW5lY2FwPXRoaXMud2lyZWZyYW1lTGluZWNhcCksInJvdW5kIiE9PXRoaXMud2lyZWZyYW1lTGluZWpvaW4mJihuLndpcmVmcmFtZUxpbmVqb2luPXRoaXMud2lyZWZyYW1lTGluZWpvaW4pLCEwPT09dGhpcy5mbGF0U2hhZGluZyYmKG4uZmxhdFNoYWRpbmc9dGhpcy5mbGF0U2hhZGluZyksITE9PT10aGlzLnZpc2libGUmJihuLnZpc2libGU9ITEpLCExPT09dGhpcy50b25lTWFwcGVkJiYobi50b25lTWFwcGVkPSExKSwie30iIT09SlNPTi5zdHJpbmdpZnkodGhpcy51c2VyRGF0YSkmJihuLnVzZXJEYXRhPXRoaXMudXNlckRhdGEpLGUpe2NvbnN0IGU9byh0LnRleHR1cmVzKSxpPW8odC5pbWFnZXMpO2UubGVuZ3RoPjAmJihuLnRleHR1cmVzPWUpLGkubGVuZ3RoPjAmJihuLmltYWdlcz1pKX1yZXR1cm4gbn1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3RoaXMubmFtZT10Lm5hbWUsdGhpcy5mb2c9dC5mb2csdGhpcy5ibGVuZGluZz10LmJsZW5kaW5nLHRoaXMuc2lkZT10LnNpZGUsdGhpcy52ZXJ0ZXhDb2xvcnM9dC52ZXJ0ZXhDb2xvcnMsdGhpcy5vcGFjaXR5PXQub3BhY2l0eSx0aGlzLnRyYW5zcGFyZW50PXQudHJhbnNwYXJlbnQsdGhpcy5ibGVuZFNyYz10LmJsZW5kU3JjLHRoaXMuYmxlbmREc3Q9dC5ibGVuZERzdCx0aGlzLmJsZW5kRXF1YXRpb249dC5ibGVuZEVxdWF0aW9uLHRoaXMuYmxlbmRTcmNBbHBoYT10LmJsZW5kU3JjQWxwaGEsdGhpcy5ibGVuZERzdEFscGhhPXQuYmxlbmREc3RBbHBoYSx0aGlzLmJsZW5kRXF1YXRpb25BbHBoYT10LmJsZW5kRXF1YXRpb25BbHBoYSx0aGlzLmRlcHRoRnVuYz10LmRlcHRoRnVuYyx0aGlzLmRlcHRoVGVzdD10LmRlcHRoVGVzdCx0aGlzLmRlcHRoV3JpdGU9dC5kZXB0aFdyaXRlLHRoaXMuc3RlbmNpbFdyaXRlTWFzaz10LnN0ZW5jaWxXcml0ZU1hc2ssdGhpcy5zdGVuY2lsRnVuYz10LnN0ZW5jaWxGdW5jLHRoaXMuc3RlbmNpbFJlZj10LnN0ZW5jaWxSZWYsdGhpcy5zdGVuY2lsRnVuY01hc2s9dC5zdGVuY2lsRnVuY01hc2ssdGhpcy5zdGVuY2lsRmFpbD10LnN0ZW5jaWxGYWlsLHRoaXMuc3RlbmNpbFpGYWlsPXQuc3RlbmNpbFpGYWlsLHRoaXMuc3RlbmNpbFpQYXNzPXQuc3RlbmNpbFpQYXNzLHRoaXMuc3RlbmNpbFdyaXRlPXQuc3RlbmNpbFdyaXRlO2NvbnN0IGU9dC5jbGlwcGluZ1BsYW5lcztsZXQgbj1udWxsO2lmKG51bGwhPT1lKXtjb25zdCB0PWUubGVuZ3RoO249bmV3IEFycmF5KHQpO2ZvcihsZXQgbz0wO28hPT10OysrbyluW29dPWVbb10uY2xvbmUoKX1yZXR1cm4gdGhpcy5jbGlwcGluZ1BsYW5lcz1uLHRoaXMuY2xpcEludGVyc2VjdGlvbj10LmNsaXBJbnRlcnNlY3Rpb24sdGhpcy5jbGlwU2hhZG93cz10LmNsaXBTaGFkb3dzLHRoaXMuc2hhZG93U2lkZT10LnNoYWRvd1NpZGUsdGhpcy5jb2xvcldyaXRlPXQuY29sb3JXcml0ZSx0aGlzLnByZWNpc2lvbj10LnByZWNpc2lvbix0aGlzLnBvbHlnb25PZmZzZXQ9dC5wb2x5Z29uT2Zmc2V0LHRoaXMucG9seWdvbk9mZnNldEZhY3Rvcj10LnBvbHlnb25PZmZzZXRGYWN0b3IsdGhpcy5wb2x5Z29uT2Zmc2V0VW5pdHM9dC5wb2x5Z29uT2Zmc2V0VW5pdHMsdGhpcy5kaXRoZXJpbmc9dC5kaXRoZXJpbmcsdGhpcy5hbHBoYVRlc3Q9dC5hbHBoYVRlc3QsdGhpcy5hbHBoYVRvQ292ZXJhZ2U9dC5hbHBoYVRvQ292ZXJhZ2UsdGhpcy5wcmVtdWx0aXBsaWVkQWxwaGE9dC5wcmVtdWx0aXBsaWVkQWxwaGEsdGhpcy52aXNpYmxlPXQudmlzaWJsZSx0aGlzLnRvbmVNYXBwZWQ9dC50b25lTWFwcGVkLHRoaXMudXNlckRhdGE9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0LnVzZXJEYXRhKSksdGhpc31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfXNldCBuZWVkc1VwZGF0ZSh0KXshMD09PXQmJnRoaXMudmVyc2lvbisrfX1PcnQucHJvdG90eXBlLmlzTWF0ZXJpYWw9ITA7Y29uc3QgUHJ0PXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9LHdydD17aDowLHM6MCxsOjB9LGtydD17aDowLHM6MCxsOjB9O2Z1bmN0aW9uIFNydCh0LGUsbil7cmV0dXJuIG48MCYmKG4rPTEpLG4+MSYmKG4tPTEpLG48MS82P3QrNiooZS10KSpuOm48LjU/ZTpuPDIvMz90KzYqKGUtdCkqKDIvMy1uKTp0fWZ1bmN0aW9uIERydCh0KXtyZXR1cm4gdDwuMDQwNDU/LjA3NzM5OTM4MDgqdDpNYXRoLnBvdyguOTQ3ODY3Mjk4Nip0Ky4wNTIxMzI3MDE0LDIuNCl9ZnVuY3Rpb24gRXJ0KHQpe3JldHVybiB0PC4wMDMxMzA4PzEyLjkyKnQ6MS4wNTUqTWF0aC5wb3codCwuNDE2NjYpLS4wNTV9Y2xhc3MgUnJ0e2NvbnN0cnVjdG9yKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09ZSYmdm9pZCAwPT09bj90aGlzLnNldCh0KTp0aGlzLnNldFJHQih0LGUsbil9c2V0KHQpe3JldHVybiB0JiZ0LmlzQ29sb3I/dGhpcy5jb3B5KHQpOiJudW1iZXIiPT10eXBlb2YgdD90aGlzLnNldEhleCh0KToic3RyaW5nIj09dHlwZW9mIHQmJnRoaXMuc2V0U3R5bGUodCksdGhpc31zZXRTY2FsYXIodCl7cmV0dXJuIHRoaXMucj10LHRoaXMuZz10LHRoaXMuYj10LHRoaXN9c2V0SGV4KHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksdGhpcy5yPSh0Pj4xNiYyNTUpLzI1NSx0aGlzLmc9KHQ+PjgmMjU1KS8yNTUsdGhpcy5iPSgyNTUmdCkvMjU1LHRoaXN9c2V0UkdCKHQsZSxuKXtyZXR1cm4gdGhpcy5yPXQsdGhpcy5nPWUsdGhpcy5iPW4sdGhpc31zZXRIU0wodCxlLG4pe2lmKHQ9KGZ1bmN0aW9uIG8odCxlKXtyZXR1cm4odCVlK2UpJWV9KSh0LDEpLGU9Wml0KGUsMCwxKSxuPVppdChuLDAsMSksMD09PWUpdGhpcy5yPXRoaXMuZz10aGlzLmI9bjtlbHNle2NvbnN0IG89bjw9LjU/biooMStlKTpuK2UtbiplLGk9MipuLW87dGhpcy5yPVNydChpLG8sdCsxLzMpLHRoaXMuZz1TcnQoaSxvLHQpLHRoaXMuYj1TcnQoaSxvLHQtMS8zKX1yZXR1cm4gdGhpc31zZXRTdHlsZSh0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMCE9PWUmJnBhcnNlRmxvYXQoZSk8MSYmY29uc29sZS53YXJuKCJUSFJFRS5Db2xvcjogQWxwaGEgY29tcG9uZW50IG9mICIrdCsiIHdpbGwgYmUgaWdub3JlZC4iKX1sZXQgbjtpZihuPS9eKCg/OnJnYnxoc2wpYT8pXCgoW15cKV0qKVwpLy5leGVjKHQpKXtsZXQgdDtjb25zdCBvPW5bMl07c3dpdGNoKG5bMV0pe2Nhc2UicmdiIjpjYXNlInJnYmEiOmlmKHQ9L15ccyooXGQrKVxzKixccyooXGQrKVxzKixccyooXGQrKVxzKig/OixccyooXGQqXC4/XGQrKVxzKik/JC8uZXhlYyhvKSlyZXR1cm4gdGhpcy5yPU1hdGgubWluKDI1NSxwYXJzZUludCh0WzFdLDEwKSkvMjU1LHRoaXMuZz1NYXRoLm1pbigyNTUscGFyc2VJbnQodFsyXSwxMCkpLzI1NSx0aGlzLmI9TWF0aC5taW4oMjU1LHBhcnNlSW50KHRbM10sMTApKS8yNTUsZSh0WzRdKSx0aGlzO2lmKHQ9L15ccyooXGQrKVwlXHMqLFxzKihcZCspXCVccyosXHMqKFxkKylcJVxzKig/OixccyooXGQqXC4/XGQrKVxzKik/JC8uZXhlYyhvKSlyZXR1cm4gdGhpcy5yPU1hdGgubWluKDEwMCxwYXJzZUludCh0WzFdLDEwKSkvMTAwLHRoaXMuZz1NYXRoLm1pbigxMDAscGFyc2VJbnQodFsyXSwxMCkpLzEwMCx0aGlzLmI9TWF0aC5taW4oMTAwLHBhcnNlSW50KHRbM10sMTApKS8xMDAsZSh0WzRdKSx0aGlzO2JyZWFrO2Nhc2UiaHNsIjpjYXNlImhzbGEiOmlmKHQ9L15ccyooXGQqXC4/XGQrKVxzKixccyooXGQrKVwlXHMqLFxzKihcZCspXCVccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMobykpe2NvbnN0IG49cGFyc2VGbG9hdCh0WzFdKS8zNjAsbz1wYXJzZUludCh0WzJdLDEwKS8xMDAsaT1wYXJzZUludCh0WzNdLDEwKS8xMDA7cmV0dXJuIGUodFs0XSksdGhpcy5zZXRIU0wobixvLGkpfX19ZWxzZSBpZihuPS9eXCMoW0EtRmEtZlxkXSspJC8uZXhlYyh0KSl7Y29uc3QgdD1uWzFdLGU9dC5sZW5ndGg7aWYoMz09PWUpcmV0dXJuIHRoaXMucj1wYXJzZUludCh0LmNoYXJBdCgwKSt0LmNoYXJBdCgwKSwxNikvMjU1LHRoaXMuZz1wYXJzZUludCh0LmNoYXJBdCgxKSt0LmNoYXJBdCgxKSwxNikvMjU1LHRoaXMuYj1wYXJzZUludCh0LmNoYXJBdCgyKSt0LmNoYXJBdCgyKSwxNikvMjU1LHRoaXM7aWYoNj09PWUpcmV0dXJuIHRoaXMucj1wYXJzZUludCh0LmNoYXJBdCgwKSt0LmNoYXJBdCgxKSwxNikvMjU1LHRoaXMuZz1wYXJzZUludCh0LmNoYXJBdCgyKSt0LmNoYXJBdCgzKSwxNikvMjU1LHRoaXMuYj1wYXJzZUludCh0LmNoYXJBdCg0KSt0LmNoYXJBdCg1KSwxNikvMjU1LHRoaXN9cmV0dXJuIHQmJnQubGVuZ3RoPjA/dGhpcy5zZXRDb2xvck5hbWUodCk6dGhpc31zZXRDb2xvck5hbWUodCl7Y29uc3QgZT1QcnRbdC50b0xvd2VyQ2FzZSgpXTtyZXR1cm4gdm9pZCAwIT09ZT90aGlzLnNldEhleChlKTpjb25zb2xlLndhcm4oIlRIUkVFLkNvbG9yOiBVbmtub3duIGNvbG9yICIrdCksdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLnIsdGhpcy5nLHRoaXMuYil9Y29weSh0KXtyZXR1cm4gdGhpcy5yPXQucix0aGlzLmc9dC5nLHRoaXMuYj10LmIsdGhpc31jb3B5R2FtbWFUb0xpbmVhcih0LGU9Mil7cmV0dXJuIHRoaXMucj1NYXRoLnBvdyh0LnIsZSksdGhpcy5nPU1hdGgucG93KHQuZyxlKSx0aGlzLmI9TWF0aC5wb3codC5iLGUpLHRoaXN9Y29weUxpbmVhclRvR2FtbWEodCxlPTIpe2NvbnN0IG49ZT4wPzEvZToxO3JldHVybiB0aGlzLnI9TWF0aC5wb3codC5yLG4pLHRoaXMuZz1NYXRoLnBvdyh0LmcsbiksdGhpcy5iPU1hdGgucG93KHQuYixuKSx0aGlzfWNvbnZlcnRHYW1tYVRvTGluZWFyKHQpe3JldHVybiB0aGlzLmNvcHlHYW1tYVRvTGluZWFyKHRoaXMsdCksdGhpc31jb252ZXJ0TGluZWFyVG9HYW1tYSh0KXtyZXR1cm4gdGhpcy5jb3B5TGluZWFyVG9HYW1tYSh0aGlzLHQpLHRoaXN9Y29weVNSR0JUb0xpbmVhcih0KXtyZXR1cm4gdGhpcy5yPURydCh0LnIpLHRoaXMuZz1EcnQodC5nKSx0aGlzLmI9RHJ0KHQuYiksdGhpc31jb3B5TGluZWFyVG9TUkdCKHQpe3JldHVybiB0aGlzLnI9RXJ0KHQuciksdGhpcy5nPUVydCh0LmcpLHRoaXMuYj1FcnQodC5iKSx0aGlzfWNvbnZlcnRTUkdCVG9MaW5lYXIoKXtyZXR1cm4gdGhpcy5jb3B5U1JHQlRvTGluZWFyKHRoaXMpLHRoaXN9Y29udmVydExpbmVhclRvU1JHQigpe3JldHVybiB0aGlzLmNvcHlMaW5lYXJUb1NSR0IodGhpcyksdGhpc31nZXRIZXgoKXtyZXR1cm4gMjU1KnRoaXMucjw8MTZeMjU1KnRoaXMuZzw8OF4yNTUqdGhpcy5iPDwwfWdldEhleFN0cmluZygpe3JldHVybigiMDAwMDAwIit0aGlzLmdldEhleCgpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpfWdldEhTTCh0KXtjb25zdCBlPXRoaXMucixuPXRoaXMuZyxvPXRoaXMuYixpPU1hdGgubWF4KGUsbixvKSxhPU1hdGgubWluKGUsbixvKTtsZXQgcixzO2NvbnN0IGw9KGEraSkvMjtpZihhPT09aSlyPTAscz0wO2Vsc2V7Y29uc3QgdD1pLWE7c3dpdGNoKHM9bDw9LjU/dC8oaSthKTp0LygyLWktYSksaSl7Y2FzZSBlOnI9KG4tbykvdCsobjxvPzY6MCk7YnJlYWs7Y2FzZSBuOnI9KG8tZSkvdCsyO2JyZWFrO2Nhc2UgbzpyPShlLW4pL3QrNH1yLz02fXJldHVybiB0Lmg9cix0LnM9cyx0Lmw9bCx0fWdldFN0eWxlKCl7cmV0dXJuInJnYigiKygyNTUqdGhpcy5yfDApKyIsIisoMjU1KnRoaXMuZ3wwKSsiLCIrKDI1NSp0aGlzLmJ8MCkrIikifW9mZnNldEhTTCh0LGUsbil7cmV0dXJuIHRoaXMuZ2V0SFNMKHdydCksd3J0LmgrPXQsd3J0LnMrPWUsd3J0LmwrPW4sdGhpcy5zZXRIU0wod3J0Lmgsd3J0LnMsd3J0LmwpLHRoaXN9YWRkKHQpe3JldHVybiB0aGlzLnIrPXQucix0aGlzLmcrPXQuZyx0aGlzLmIrPXQuYix0aGlzfWFkZENvbG9ycyh0LGUpe3JldHVybiB0aGlzLnI9dC5yK2Uucix0aGlzLmc9dC5nK2UuZyx0aGlzLmI9dC5iK2UuYix0aGlzfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy5yKz10LHRoaXMuZys9dCx0aGlzLmIrPXQsdGhpc31zdWIodCl7cmV0dXJuIHRoaXMucj1NYXRoLm1heCgwLHRoaXMuci10LnIpLHRoaXMuZz1NYXRoLm1heCgwLHRoaXMuZy10LmcpLHRoaXMuYj1NYXRoLm1heCgwLHRoaXMuYi10LmIpLHRoaXN9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMucio9dC5yLHRoaXMuZyo9dC5nLHRoaXMuYio9dC5iLHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7cmV0dXJuIHRoaXMucio9dCx0aGlzLmcqPXQsdGhpcy5iKj10LHRoaXN9bGVycCh0LGUpe3JldHVybiB0aGlzLnIrPSh0LnItdGhpcy5yKSplLHRoaXMuZys9KHQuZy10aGlzLmcpKmUsdGhpcy5iKz0odC5iLXRoaXMuYikqZSx0aGlzfWxlcnBDb2xvcnModCxlLG4pe3JldHVybiB0aGlzLnI9dC5yKyhlLnItdC5yKSpuLHRoaXMuZz10LmcrKGUuZy10LmcpKm4sdGhpcy5iPXQuYisoZS5iLXQuYikqbix0aGlzfWxlcnBIU0wodCxlKXt0aGlzLmdldEhTTCh3cnQpLHQuZ2V0SFNMKGtydCk7Y29uc3Qgbj1YaXQod3J0Lmgsa3J0LmgsZSksbz1YaXQod3J0LnMsa3J0LnMsZSksaT1YaXQod3J0Lmwsa3J0LmwsZSk7cmV0dXJuIHRoaXMuc2V0SFNMKG4sbyxpKSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5yPT09dGhpcy5yJiZ0Lmc9PT10aGlzLmcmJnQuYj09PXRoaXMuYn1mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLnI9dFtlXSx0aGlzLmc9dFtlKzFdLHRoaXMuYj10W2UrMl0sdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLnIsdFtlKzFdPXRoaXMuZyx0W2UrMl09dGhpcy5iLHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpe3JldHVybiB0aGlzLnI9dC5nZXRYKGUpLHRoaXMuZz10LmdldFkoZSksdGhpcy5iPXQuZ2V0WihlKSwhMD09PXQubm9ybWFsaXplZCYmKHRoaXMuci89MjU1LHRoaXMuZy89MjU1LHRoaXMuYi89MjU1KSx0aGlzfXRvSlNPTigpe3JldHVybiB0aGlzLmdldEhleCgpfX1ScnQuTkFNRVM9UHJ0LFJydC5wcm90b3R5cGUuaXNDb2xvcj0hMCxScnQucHJvdG90eXBlLnI9MSxScnQucHJvdG90eXBlLmc9MSxScnQucHJvdG90eXBlLmI9MTtjbGFzcyBBcnQgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hCYXNpY01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBScnQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuc3BlY3VsYXJNYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5lbnZNYXA9bnVsbCx0aGlzLmNvbWJpbmU9MCx0aGlzLnJlZmxlY3Rpdml0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hcD10Lm1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5zcGVjdWxhck1hcD10LnNwZWN1bGFyTWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmVudk1hcD10LmVudk1hcCx0aGlzLmNvbWJpbmU9dC5jb21iaW5lLHRoaXMucmVmbGVjdGl2aXR5PXQucmVmbGVjdGl2aXR5LHRoaXMucmVmcmFjdGlvblJhdGlvPXQucmVmcmFjdGlvblJhdGlvLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXMud2lyZWZyYW1lTGluZWNhcD10LndpcmVmcmFtZUxpbmVjYXAsdGhpcy53aXJlZnJhbWVMaW5lam9pbj10LndpcmVmcmFtZUxpbmVqb2luLHRoaXN9fUFydC5wcm90b3R5cGUuaXNNZXNoQmFzaWNNYXRlcmlhbD0hMDtjb25zdCBUcnQ9bmV3IGNhdCxOcnQ9bmV3IFFpdDtjbGFzcyB6cnR7Y29uc3RydWN0b3IodCxlLG4pe2lmKEFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiBhcnJheSBzaG91bGQgYmUgYSBUeXBlZCBBcnJheS4iKTt0aGlzLm5hbWU9IiIsdGhpcy5hcnJheT10LHRoaXMuaXRlbVNpemU9ZSx0aGlzLmNvdW50PXZvaWQgMCE9PXQ/dC5sZW5ndGgvZTowLHRoaXMubm9ybWFsaXplZD0hMD09PW4sdGhpcy51c2FnZT1CaXQsdGhpcy51cGRhdGVSYW5nZT17b2Zmc2V0OjAsY291bnQ6LTF9LHRoaXMudmVyc2lvbj0wfW9uVXBsb2FkQ2FsbGJhY2soKXt9c2V0IG5lZWRzVXBkYXRlKHQpeyEwPT09dCYmdGhpcy52ZXJzaW9uKyt9c2V0VXNhZ2UodCl7cmV0dXJuIHRoaXMudXNhZ2U9dCx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMubmFtZT10Lm5hbWUsdGhpcy5hcnJheT1uZXcgdC5hcnJheS5jb25zdHJ1Y3Rvcih0LmFycmF5KSx0aGlzLml0ZW1TaXplPXQuaXRlbVNpemUsdGhpcy5jb3VudD10LmNvdW50LHRoaXMubm9ybWFsaXplZD10Lm5vcm1hbGl6ZWQsdGhpcy51c2FnZT10LnVzYWdlLHRoaXN9Y29weUF0KHQsZSxuKXt0Kj10aGlzLml0ZW1TaXplLG4qPWUuaXRlbVNpemU7Zm9yKGxldCBvPTAsaT10aGlzLml0ZW1TaXplO288aTtvKyspdGhpcy5hcnJheVt0K29dPWUuYXJyYXlbbitvXTtyZXR1cm4gdGhpc31jb3B5QXJyYXkodCl7cmV0dXJuIHRoaXMuYXJyYXkuc2V0KHQpLHRoaXN9Y29weUNvbG9yc0FycmF5KHQpe2NvbnN0IGU9dGhpcy5hcnJheTtsZXQgbj0wO2ZvcihsZXQgbz0wLGk9dC5sZW5ndGg7bzxpO28rKyl7bGV0IGk9dFtvXTt2b2lkIDA9PT1pJiYoY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGUuY29weUNvbG9yc0FycmF5KCk6IGNvbG9yIGlzIHVuZGVmaW5lZCIsbyksaT1uZXcgUnJ0KSxlW24rK109aS5yLGVbbisrXT1pLmcsZVtuKytdPWkuYn1yZXR1cm4gdGhpc31jb3B5VmVjdG9yMnNBcnJheSh0KXtjb25zdCBlPXRoaXMuYXJyYXk7bGV0IG49MDtmb3IobGV0IG89MCxpPXQubGVuZ3RoO288aTtvKyspe2xldCBpPXRbb107dm9pZCAwPT09aSYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3Iyc0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLG8pLGk9bmV3IFFpdCksZVtuKytdPWkueCxlW24rK109aS55fXJldHVybiB0aGlzfWNvcHlWZWN0b3Izc0FycmF5KHQpe2NvbnN0IGU9dGhpcy5hcnJheTtsZXQgbj0wO2ZvcihsZXQgbz0wLGk9dC5sZW5ndGg7bzxpO28rKyl7bGV0IGk9dFtvXTt2b2lkIDA9PT1pJiYoY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGUuY29weVZlY3RvcjNzQXJyYXkoKTogdmVjdG9yIGlzIHVuZGVmaW5lZCIsbyksaT1uZXcgY2F0KSxlW24rK109aS54LGVbbisrXT1pLnksZVtuKytdPWkuen1yZXR1cm4gdGhpc31jb3B5VmVjdG9yNHNBcnJheSh0KXtjb25zdCBlPXRoaXMuYXJyYXk7bGV0IG49MDtmb3IobGV0IG89MCxpPXQubGVuZ3RoO288aTtvKyspe2xldCBpPXRbb107dm9pZCAwPT09aSYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3I0c0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLG8pLGk9bmV3IGFhdCksZVtuKytdPWkueCxlW24rK109aS55LGVbbisrXT1pLnosZVtuKytdPWkud31yZXR1cm4gdGhpc31hcHBseU1hdHJpeDModCl7aWYoMj09PXRoaXMuaXRlbVNpemUpZm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspTnJ0LmZyb21CdWZmZXJBdHRyaWJ1dGUodGhpcyxlKSxOcnQuYXBwbHlNYXRyaXgzKHQpLHRoaXMuc2V0WFkoZSxOcnQueCxOcnQueSk7ZWxzZSBpZigzPT09dGhpcy5pdGVtU2l6ZSlmb3IobGV0IGU9MCxuPXRoaXMuY291bnQ7ZTxuO2UrKylUcnQuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0aGlzLGUpLFRydC5hcHBseU1hdHJpeDModCksdGhpcy5zZXRYWVooZSxUcnQueCxUcnQueSxUcnQueik7cmV0dXJuIHRoaXN9YXBwbHlNYXRyaXg0KHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKVRydC54PXRoaXMuZ2V0WChlKSxUcnQueT10aGlzLmdldFkoZSksVHJ0Lno9dGhpcy5nZXRaKGUpLFRydC5hcHBseU1hdHJpeDQodCksdGhpcy5zZXRYWVooZSxUcnQueCxUcnQueSxUcnQueik7cmV0dXJuIHRoaXN9YXBwbHlOb3JtYWxNYXRyaXgodCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspVHJ0Lng9dGhpcy5nZXRYKGUpLFRydC55PXRoaXMuZ2V0WShlKSxUcnQuej10aGlzLmdldFooZSksVHJ0LmFwcGx5Tm9ybWFsTWF0cml4KHQpLHRoaXMuc2V0WFlaKGUsVHJ0LngsVHJ0LnksVHJ0LnopO3JldHVybiB0aGlzfXRyYW5zZm9ybURpcmVjdGlvbih0KXtmb3IobGV0IGU9MCxuPXRoaXMuY291bnQ7ZTxuO2UrKylUcnQueD10aGlzLmdldFgoZSksVHJ0Lnk9dGhpcy5nZXRZKGUpLFRydC56PXRoaXMuZ2V0WihlKSxUcnQudHJhbnNmb3JtRGlyZWN0aW9uKHQpLHRoaXMuc2V0WFlaKGUsVHJ0LngsVHJ0LnksVHJ0LnopO3JldHVybiB0aGlzfXNldCh0LGU9MCl7cmV0dXJuIHRoaXMuYXJyYXkuc2V0KHQsZSksdGhpc31nZXRYKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZV19c2V0WCh0LGUpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZV09ZSx0aGlzfWdldFkodCl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzFdfXNldFkodCxlKXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrMV09ZSx0aGlzfWdldFoodCl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzJdfXNldFoodCxlKXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrMl09ZSx0aGlzfWdldFcodCl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzNdfXNldFcodCxlKXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrM109ZSx0aGlzfXNldFhZKHQsZSxuKXtyZXR1cm4gdGhpcy5hcnJheVswKyh0Kj10aGlzLml0ZW1TaXplKV09ZSx0aGlzLmFycmF5W3QrMV09bix0aGlzfXNldFhZWih0LGUsbixvKXtyZXR1cm4gdGhpcy5hcnJheVswKyh0Kj10aGlzLml0ZW1TaXplKV09ZSx0aGlzLmFycmF5W3QrMV09bix0aGlzLmFycmF5W3QrMl09byx0aGlzfXNldFhZWlcodCxlLG4sbyxpKXtyZXR1cm4gdGhpcy5hcnJheVswKyh0Kj10aGlzLml0ZW1TaXplKV09ZSx0aGlzLmFycmF5W3QrMV09bix0aGlzLmFycmF5W3QrMl09byx0aGlzLmFycmF5W3QrM109aSx0aGlzfW9uVXBsb2FkKHQpe3JldHVybiB0aGlzLm9uVXBsb2FkQ2FsbGJhY2s9dCx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuYXJyYXksdGhpcy5pdGVtU2l6ZSkuY29weSh0aGlzKX10b0pTT04oKXtjb25zdCB0PXtpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuYXJyYXkpLG5vcm1hbGl6ZWQ6dGhpcy5ub3JtYWxpemVkfTtyZXR1cm4iIiE9PXRoaXMubmFtZSYmKHQubmFtZT10aGlzLm5hbWUpLHRoaXMudXNhZ2UhPT1CaXQmJih0LnVzYWdlPXRoaXMudXNhZ2UpLDA9PT10aGlzLnVwZGF0ZVJhbmdlLm9mZnNldCYmLTE9PT10aGlzLnVwZGF0ZVJhbmdlLmNvdW50fHwodC51cGRhdGVSYW5nZT10aGlzLnVwZGF0ZVJhbmdlKSx0fX16cnQucHJvdG90eXBlLmlzQnVmZmVyQXR0cmlidXRlPSEwO2NsYXNzIElydCBleHRlbmRzIHpydHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IFVpbnQxNkFycmF5KHQpLGUsbil9fWNsYXNzIEhydCBleHRlbmRzIHpydHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IFVpbnQzMkFycmF5KHQpLGUsbil9fShjbGFzcyBleHRlbmRzIHpydHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IFVpbnQxNkFycmF5KHQpLGUsbil9fSkucHJvdG90eXBlLmlzRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyBGcnQgZXh0ZW5kcyB6cnR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBGbG9hdDMyQXJyYXkodCksZSxuKX19ZnVuY3Rpb24gTHJ0KHQpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4tMS8wO2xldCBlPXRbMF07Zm9yKGxldCBuPTEsbz10Lmxlbmd0aDtuPG87KytuKXRbbl0+ZSYmKGU9dFtuXSk7cmV0dXJuIGV9bGV0IEJydD0wO2NvbnN0IFZydD1uZXcgQmF0LGpydD1uZXcgcHJ0LFVydD1uZXcgY2F0LEdydD1uZXcgbWF0LFdydD1uZXcgbWF0LFlydD1uZXcgY2F0O2NsYXNzIHFydCBleHRlbmRzIFVpdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6QnJ0Kyt9KSx0aGlzLnV1aWQ9cWl0KCksdGhpcy5uYW1lPSIiLHRoaXMudHlwZT0iQnVmZmVyR2VvbWV0cnkiLHRoaXMuaW5kZXg9bnVsbCx0aGlzLmF0dHJpYnV0ZXM9e30sdGhpcy5tb3JwaEF0dHJpYnV0ZXM9e30sdGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZT0hMSx0aGlzLmdyb3Vwcz1bXSx0aGlzLmJvdW5kaW5nQm94PW51bGwsdGhpcy5ib3VuZGluZ1NwaGVyZT1udWxsLHRoaXMuZHJhd1JhbmdlPXtzdGFydDowLGNvdW50OjEvMH0sdGhpcy51c2VyRGF0YT17fX1nZXRJbmRleCgpe3JldHVybiB0aGlzLmluZGV4fXNldEluZGV4KHQpe3JldHVybiB0aGlzLmluZGV4PUFycmF5LmlzQXJyYXkodCk/bmV3KExydCh0KT42NTUzNT9IcnQ6SXJ0KSh0LDEpOnQsdGhpc31nZXRBdHRyaWJ1dGUodCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc1t0XX1zZXRBdHRyaWJ1dGUodCxlKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW3RdPWUsdGhpc31kZWxldGVBdHRyaWJ1dGUodCl7cmV0dXJuIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbdF0sdGhpc31oYXNBdHRyaWJ1dGUodCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuYXR0cmlidXRlc1t0XX1hZGRHcm91cCh0LGUsbj0wKXt0aGlzLmdyb3Vwcy5wdXNoKHtzdGFydDp0LGNvdW50OmUsbWF0ZXJpYWxJbmRleDpufSl9Y2xlYXJHcm91cHMoKXt0aGlzLmdyb3Vwcz1bXX1zZXREcmF3UmFuZ2UodCxlKXt0aGlzLmRyYXdSYW5nZS5zdGFydD10LHRoaXMuZHJhd1JhbmdlLmNvdW50PWV9YXBwbHlNYXRyaXg0KHQpe2NvbnN0IGU9dGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uO3ZvaWQgMCE9PWUmJihlLmFwcGx5TWF0cml4NCh0KSxlLm5lZWRzVXBkYXRlPSEwKTtjb25zdCBuPXRoaXMuYXR0cmlidXRlcy5ub3JtYWw7aWYodm9pZCAwIT09bil7Y29uc3QgZT0obmV3ICRpdCkuZ2V0Tm9ybWFsTWF0cml4KHQpO24uYXBwbHlOb3JtYWxNYXRyaXgoZSksbi5uZWVkc1VwZGF0ZT0hMH1jb25zdCBvPXRoaXMuYXR0cmlidXRlcy50YW5nZW50O3JldHVybiB2b2lkIDAhPT1vJiYoby50cmFuc2Zvcm1EaXJlY3Rpb24odCksby5uZWVkc1VwZGF0ZT0hMCksbnVsbCE9PXRoaXMuYm91bmRpbmdCb3gmJnRoaXMuY29tcHV0ZUJvdW5kaW5nQm94KCksbnVsbCE9PXRoaXMuYm91bmRpbmdTcGhlcmUmJnRoaXMuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCksdGhpc31hcHBseVF1YXRlcm5pb24odCl7cmV0dXJuIFZydC5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KSx0aGlzLmFwcGx5TWF0cml4NChWcnQpLHRoaXN9cm90YXRlWCh0KXtyZXR1cm4gVnJ0Lm1ha2VSb3RhdGlvblgodCksdGhpcy5hcHBseU1hdHJpeDQoVnJ0KSx0aGlzfXJvdGF0ZVkodCl7cmV0dXJuIFZydC5tYWtlUm90YXRpb25ZKHQpLHRoaXMuYXBwbHlNYXRyaXg0KFZydCksdGhpc31yb3RhdGVaKHQpe3JldHVybiBWcnQubWFrZVJvdGF0aW9uWih0KSx0aGlzLmFwcGx5TWF0cml4NChWcnQpLHRoaXN9dHJhbnNsYXRlKHQsZSxuKXtyZXR1cm4gVnJ0Lm1ha2VUcmFuc2xhdGlvbih0LGUsbiksdGhpcy5hcHBseU1hdHJpeDQoVnJ0KSx0aGlzfXNjYWxlKHQsZSxuKXtyZXR1cm4gVnJ0Lm1ha2VTY2FsZSh0LGUsbiksdGhpcy5hcHBseU1hdHJpeDQoVnJ0KSx0aGlzfWxvb2tBdCh0KXtyZXR1cm4ganJ0Lmxvb2tBdCh0KSxqcnQudXBkYXRlTWF0cml4KCksdGhpcy5hcHBseU1hdHJpeDQoanJ0Lm1hdHJpeCksdGhpc31jZW50ZXIoKXtyZXR1cm4gdGhpcy5jb21wdXRlQm91bmRpbmdCb3goKSx0aGlzLmJvdW5kaW5nQm94LmdldENlbnRlcihVcnQpLm5lZ2F0ZSgpLHRoaXMudHJhbnNsYXRlKFVydC54LFVydC55LFVydC56KSx0aGlzfXNldEZyb21Qb2ludHModCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxvPXQubGVuZ3RoO248bztuKyspe2NvbnN0IG89dFtuXTtlLnB1c2goby54LG8ueSxvLnp8fDApfXJldHVybiB0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBGcnQoZSwzKSksdGhpc31jb21wdXRlQm91bmRpbmdCb3goKXtudWxsPT09dGhpcy5ib3VuZGluZ0JveCYmKHRoaXMuYm91bmRpbmdCb3g9bmV3IG1hdCk7Y29uc3QgdD10aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24sZT10aGlzLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbjtpZih0JiZ0LmlzR0xCdWZmZXJBdHRyaWJ1dGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpOiBHTEJ1ZmZlckF0dHJpYnV0ZSByZXF1aXJlcyBhIG1hbnVhbCBib3VuZGluZyBib3guIEFsdGVybmF0aXZlbHkgc2V0ICJtZXNoLmZydXN0dW1DdWxsZWQiIHRvICJmYWxzZSIuJyx0aGlzKSx2b2lkIHRoaXMuYm91bmRpbmdCb3guc2V0KG5ldyBjYXQoLTEvMCwtMS8wLC0xLzApLG5ldyBjYXQoMS8wLDEvMCwxLzApKTtpZih2b2lkIDAhPT10KXtpZih0aGlzLmJvdW5kaW5nQm94LnNldEZyb21CdWZmZXJBdHRyaWJ1dGUodCksZSlmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3Q8bjt0KyspR3J0LnNldEZyb21CdWZmZXJBdHRyaWJ1dGUoZVt0XSksdGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZT8oWXJ0LmFkZFZlY3RvcnModGhpcy5ib3VuZGluZ0JveC5taW4sR3J0Lm1pbiksdGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KFlydCksWXJ0LmFkZFZlY3RvcnModGhpcy5ib3VuZGluZ0JveC5tYXgsR3J0Lm1heCksdGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KFlydCkpOih0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQoR3J0Lm1pbiksdGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KEdydC5tYXgpKX1lbHNlIHRoaXMuYm91bmRpbmdCb3gubWFrZUVtcHR5KCk7KGlzTmFOKHRoaXMuYm91bmRpbmdCb3gubWluLngpfHxpc05hTih0aGlzLmJvdW5kaW5nQm94Lm1pbi55KXx8aXNOYU4odGhpcy5ib3VuZGluZ0JveC5taW4ueikpJiZjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTogQ29tcHV0ZWQgbWluL21heCBoYXZlIE5hTiB2YWx1ZXMuIFRoZSAicG9zaXRpb24iIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicsdGhpcyl9Y29tcHV0ZUJvdW5kaW5nU3BoZXJlKCl7bnVsbD09PXRoaXMuYm91bmRpbmdTcGhlcmUmJih0aGlzLmJvdW5kaW5nU3BoZXJlPW5ldyBSYXQpO2NvbnN0IHQ9dGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLGU9dGhpcy5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb247aWYodCYmdC5pc0dMQnVmZmVyQXR0cmlidXRlKXJldHVybiBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogR0xCdWZmZXJBdHRyaWJ1dGUgcmVxdWlyZXMgYSBtYW51YWwgYm91bmRpbmcgc3BoZXJlLiBBbHRlcm5hdGl2ZWx5IHNldCAibWVzaC5mcnVzdHVtQ3VsbGVkIiB0byAiZmFsc2UiLicsdGhpcyksdm9pZCB0aGlzLmJvdW5kaW5nU3BoZXJlLnNldChuZXcgY2F0LDEvMCk7aWYodCl7Y29uc3Qgbj10aGlzLmJvdW5kaW5nU3BoZXJlLmNlbnRlcjtpZihHcnQuc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KSxlKWZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKylXcnQuc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZShlW3RdKSx0aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPyhZcnQuYWRkVmVjdG9ycyhHcnQubWluLFdydC5taW4pLEdydC5leHBhbmRCeVBvaW50KFlydCksWXJ0LmFkZFZlY3RvcnMoR3J0Lm1heCxXcnQubWF4KSxHcnQuZXhwYW5kQnlQb2ludChZcnQpKTooR3J0LmV4cGFuZEJ5UG9pbnQoV3J0Lm1pbiksR3J0LmV4cGFuZEJ5UG9pbnQoV3J0Lm1heCkpO0dydC5nZXRDZW50ZXIobik7bGV0IG89MDtmb3IobGV0IGU9MCxpPXQuY291bnQ7ZTxpO2UrKylZcnQuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpLG89TWF0aC5tYXgobyxuLmRpc3RhbmNlVG9TcXVhcmVkKFlydCkpO2lmKGUpZm9yKGxldCBpPTAsYT1lLmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPWVbaV0scj10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlO2ZvcihsZXQgZT0wLGk9YS5jb3VudDtlPGk7ZSsrKVlydC5mcm9tQnVmZmVyQXR0cmlidXRlKGEsZSksciYmKFVydC5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSksWXJ0LmFkZChVcnQpKSxvPU1hdGgubWF4KG8sbi5kaXN0YW5jZVRvU3F1YXJlZChZcnQpKX10aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cz1NYXRoLnNxcnQobyksaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpJiZjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICJwb3NpdGlvbiIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJyx0aGlzKX19Y29tcHV0ZUZhY2VOb3JtYWxzKCl7fWNvbXB1dGVUYW5nZW50cygpe2NvbnN0IHQ9dGhpcy5pbmRleCxlPXRoaXMuYXR0cmlidXRlcztpZihudWxsPT09dHx8dm9pZCAwPT09ZS5wb3NpdGlvbnx8dm9pZCAwPT09ZS5ub3JtYWx8fHZvaWQgMD09PWUudXYpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5jb21wdXRlVGFuZ2VudHMoKSBmYWlsZWQuIE1pc3NpbmcgcmVxdWlyZWQgYXR0cmlidXRlcyAoaW5kZXgsIHBvc2l0aW9uLCBub3JtYWwgb3IgdXYpIik7Y29uc3Qgbj10LmFycmF5LG89ZS5wb3NpdGlvbi5hcnJheSxpPWUubm9ybWFsLmFycmF5LGE9ZS51di5hcnJheSxyPW8ubGVuZ3RoLzM7dm9pZCAwPT09ZS50YW5nZW50JiZ0aGlzLnNldEF0dHJpYnV0ZSgidGFuZ2VudCIsbmV3IHpydChuZXcgRmxvYXQzMkFycmF5KDQqciksNCkpO2NvbnN0IHM9ZS50YW5nZW50LmFycmF5LGw9W10sYz1bXTtmb3IobGV0IHQ9MDt0PHI7dCsrKWxbdF09bmV3IGNhdCxjW3RdPW5ldyBjYXQ7Y29uc3QgZD1uZXcgY2F0LHA9bmV3IGNhdCxtPW5ldyBjYXQsdT1uZXcgUWl0LGY9bmV3IFFpdCxnPW5ldyBRaXQsaD1uZXcgY2F0LGI9bmV3IGNhdDtmdW5jdGlvbiB5KHQsZSxuKXtkLmZyb21BcnJheShvLDMqdCkscC5mcm9tQXJyYXkobywzKmUpLG0uZnJvbUFycmF5KG8sMypuKSx1LmZyb21BcnJheShhLDIqdCksZi5mcm9tQXJyYXkoYSwyKmUpLGcuZnJvbUFycmF5KGEsMipuKSxwLnN1YihkKSxtLnN1YihkKSxmLnN1Yih1KSxnLnN1Yih1KTtjb25zdCBpPTEvKGYueCpnLnktZy54KmYueSk7aXNGaW5pdGUoaSkmJihoLmNvcHkocCkubXVsdGlwbHlTY2FsYXIoZy55KS5hZGRTY2FsZWRWZWN0b3IobSwtZi55KS5tdWx0aXBseVNjYWxhcihpKSxiLmNvcHkobSkubXVsdGlwbHlTY2FsYXIoZi54KS5hZGRTY2FsZWRWZWN0b3IocCwtZy54KS5tdWx0aXBseVNjYWxhcihpKSxsW3RdLmFkZChoKSxsW2VdLmFkZChoKSxsW25dLmFkZChoKSxjW3RdLmFkZChiKSxjW2VdLmFkZChiKSxjW25dLmFkZChiKSl9bGV0IF89dGhpcy5ncm91cHM7MD09PV8ubGVuZ3RoJiYoXz1be3N0YXJ0OjAsY291bnQ6bi5sZW5ndGh9XSk7Zm9yKGxldCB0PTAsZT1fLmxlbmd0aDt0PGU7Kyt0KXtjb25zdCBlPV9bdF0sbz1lLnN0YXJ0O2ZvcihsZXQgdD1vLGk9bytlLmNvdW50O3Q8aTt0Kz0zKXkoblt0KzBdLG5bdCsxXSxuW3QrMl0pfWNvbnN0IEM9bmV3IGNhdCxNPW5ldyBjYXQsdj1uZXcgY2F0LHg9bmV3IGNhdDtmdW5jdGlvbiBPKHQpe3YuZnJvbUFycmF5KGksMyp0KSx4LmNvcHkodik7Y29uc3QgZT1sW3RdO0MuY29weShlKSxDLnN1Yih2Lm11bHRpcGx5U2NhbGFyKHYuZG90KGUpKSkubm9ybWFsaXplKCksTS5jcm9zc1ZlY3RvcnMoeCxlKTtjb25zdCBuPU0uZG90KGNbdF0pPDA/LTE6MTtzWzQqdF09Qy54LHNbNCp0KzFdPUMueSxzWzQqdCsyXT1DLnosc1s0KnQrM109bn1mb3IobGV0IHQ9MCxlPV8ubGVuZ3RoO3Q8ZTsrK3Qpe2NvbnN0IGU9X1t0XSxvPWUuc3RhcnQ7Zm9yKGxldCB0PW8saT1vK2UuY291bnQ7dDxpO3QrPTMpTyhuW3QrMF0pLE8oblt0KzFdKSxPKG5bdCsyXSl9fWNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCl7Y29uc3QgdD10aGlzLmluZGV4LGU9dGhpcy5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIik7aWYodm9pZCAwIT09ZSl7bGV0IG49dGhpcy5nZXRBdHRyaWJ1dGUoIm5vcm1hbCIpO2lmKHZvaWQgMD09PW4pbj1uZXcgenJ0KG5ldyBGbG9hdDMyQXJyYXkoMyplLmNvdW50KSwzKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuKTtlbHNlIGZvcihsZXQgdD0wLGU9bi5jb3VudDt0PGU7dCsrKW4uc2V0WFlaKHQsMCwwLDApO2NvbnN0IG89bmV3IGNhdCxpPW5ldyBjYXQsYT1uZXcgY2F0LHI9bmV3IGNhdCxzPW5ldyBjYXQsbD1uZXcgY2F0LGM9bmV3IGNhdCxkPW5ldyBjYXQ7aWYodClmb3IobGV0IHA9MCxtPXQuY291bnQ7cDxtO3ArPTMpe2NvbnN0IG09dC5nZXRYKHArMCksdT10LmdldFgocCsxKSxmPXQuZ2V0WChwKzIpO28uZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLG0pLGkuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHUpLGEuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLGYpLGMuc3ViVmVjdG9ycyhhLGkpLGQuc3ViVmVjdG9ycyhvLGkpLGMuY3Jvc3MoZCksci5mcm9tQnVmZmVyQXR0cmlidXRlKG4sbSkscy5mcm9tQnVmZmVyQXR0cmlidXRlKG4sdSksbC5mcm9tQnVmZmVyQXR0cmlidXRlKG4sZiksci5hZGQoYykscy5hZGQoYyksbC5hZGQoYyksbi5zZXRYWVoobSxyLngsci55LHIueiksbi5zZXRYWVoodSxzLngscy55LHMueiksbi5zZXRYWVooZixsLngsbC55LGwueil9ZWxzZSBmb3IobGV0IHQ9MCxyPWUuY291bnQ7dDxyO3QrPTMpby5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCswKSxpLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx0KzEpLGEuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQrMiksYy5zdWJWZWN0b3JzKGEsaSksZC5zdWJWZWN0b3JzKG8saSksYy5jcm9zcyhkKSxuLnNldFhZWih0KzAsYy54LGMueSxjLnopLG4uc2V0WFlaKHQrMSxjLngsYy55LGMueiksbi5zZXRYWVoodCsyLGMueCxjLnksYy56KTt0aGlzLm5vcm1hbGl6ZU5vcm1hbHMoKSxuLm5lZWRzVXBkYXRlPSEwfX1tZXJnZSh0LGUpe2lmKCF0fHwhdC5pc0J1ZmZlckdlb21ldHJ5KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckdlb21ldHJ5Lm1lcmdlKCk6IGdlb21ldHJ5IG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeS4iLHQpO3ZvaWQgMD09PWUmJihlPTAsY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS5tZXJnZSgpOiBPdmVyd3JpdGluZyBvcmlnaW5hbCBnZW9tZXRyeSwgc3RhcnRpbmcgYXQgb2Zmc2V0PTAuIFVzZSBCdWZmZXJHZW9tZXRyeVV0aWxzLm1lcmdlQnVmZmVyR2VvbWV0cmllcygpIGZvciBsb3NzbGVzcyBtZXJnZS4iKSk7Y29uc3Qgbj10aGlzLmF0dHJpYnV0ZXM7Zm9yKGNvbnN0IG8gaW4gbil7aWYodm9pZCAwPT09dC5hdHRyaWJ1dGVzW29dKWNvbnRpbnVlO2NvbnN0IGk9bltvXS5hcnJheSxhPXQuYXR0cmlidXRlc1tvXSxyPWEuYXJyYXkscz1hLml0ZW1TaXplKmUsbD1NYXRoLm1pbihyLmxlbmd0aCxpLmxlbmd0aC1zKTtmb3IobGV0IHQ9MCxlPXM7dDxsO3QrKyxlKyspaVtlXT1yW3RdfXJldHVybiB0aGlzfW5vcm1hbGl6ZU5vcm1hbHMoKXtjb25zdCB0PXRoaXMuYXR0cmlidXRlcy5ub3JtYWw7Zm9yKGxldCBlPTAsbj10LmNvdW50O2U8bjtlKyspWXJ0LmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlKSxZcnQubm9ybWFsaXplKCksdC5zZXRYWVooZSxZcnQueCxZcnQueSxZcnQueil9dG9Ob25JbmRleGVkKCl7ZnVuY3Rpb24gdCh0LGUpe2NvbnN0IG49dC5hcnJheSxvPXQuaXRlbVNpemUsaT10Lm5vcm1hbGl6ZWQsYT1uZXcgbi5jb25zdHJ1Y3RvcihlLmxlbmd0aCpvKTtsZXQgcj0wLHM9MDtmb3IobGV0IGk9MCxsPWUubGVuZ3RoO2k8bDtpKyspe3I9dC5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlP2VbaV0qdC5kYXRhLnN0cmlkZSt0Lm9mZnNldDplW2ldKm87Zm9yKGxldCB0PTA7dDxvO3QrKylhW3MrK109bltyKytdfXJldHVybiBuZXcgenJ0KGEsbyxpKX1pZihudWxsPT09dGhpcy5pbmRleClyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS50b05vbkluZGV4ZWQoKTogQnVmZmVyR2VvbWV0cnkgaXMgYWxyZWFkeSBub24taW5kZXhlZC4iKSx0aGlzO2NvbnN0IGU9bmV3IHFydCxuPXRoaXMuaW5kZXguYXJyYXksbz10aGlzLmF0dHJpYnV0ZXM7Zm9yKGNvbnN0IGkgaW4gbyl7Y29uc3QgYT10KG9baV0sbik7ZS5zZXRBdHRyaWJ1dGUoaSxhKX1jb25zdCBpPXRoaXMubW9ycGhBdHRyaWJ1dGVzO2Zvcihjb25zdCBvIGluIGkpe2NvbnN0IGE9W10scj1pW29dO2ZvcihsZXQgZT0wLG89ci5sZW5ndGg7ZTxvO2UrKyl7Y29uc3Qgbz10KHJbZV0sbik7YS5wdXNoKG8pfWUubW9ycGhBdHRyaWJ1dGVzW29dPWF9ZS5tb3JwaFRhcmdldHNSZWxhdGl2ZT10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlO2NvbnN0IGE9dGhpcy5ncm91cHM7Zm9yKGxldCB0PTAsbj1hLmxlbmd0aDt0PG47dCsrKXtjb25zdCBuPWFbdF07ZS5hZGRHcm91cChuLnN0YXJ0LG4uY291bnQsbi5tYXRlcmlhbEluZGV4KX1yZXR1cm4gZX10b0pTT04oKXtjb25zdCB0PXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiQnVmZmVyR2VvbWV0cnkiLGdlbmVyYXRvcjoiQnVmZmVyR2VvbWV0cnkudG9KU09OIn19O2lmKHQudXVpZD10aGlzLnV1aWQsdC50eXBlPXRoaXMudHlwZSwiIiE9PXRoaXMubmFtZSYmKHQubmFtZT10aGlzLm5hbWUpLE9iamVjdC5rZXlzKHRoaXMudXNlckRhdGEpLmxlbmd0aD4wJiYodC51c2VyRGF0YT10aGlzLnVzZXJEYXRhKSx2b2lkIDAhPT10aGlzLnBhcmFtZXRlcnMpe2NvbnN0IGU9dGhpcy5wYXJhbWV0ZXJzO2Zvcihjb25zdCBuIGluIGUpdm9pZCAwIT09ZVtuXSYmKHRbbl09ZVtuXSk7cmV0dXJuIHR9dC5kYXRhPXthdHRyaWJ1dGVzOnt9fTtjb25zdCBlPXRoaXMuaW5kZXg7bnVsbCE9PWUmJih0LmRhdGEuaW5kZXg9e3R5cGU6ZS5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUuYXJyYXkpfSk7Y29uc3Qgbj10aGlzLmF0dHJpYnV0ZXM7Zm9yKGNvbnN0IGUgaW4gbil0LmRhdGEuYXR0cmlidXRlc1tlXT1uW2VdLnRvSlNPTih0LmRhdGEpO2NvbnN0IG89e307bGV0IGk9ITE7Zm9yKGNvbnN0IGUgaW4gdGhpcy5tb3JwaEF0dHJpYnV0ZXMpe2NvbnN0IG49dGhpcy5tb3JwaEF0dHJpYnV0ZXNbZV0sYT1bXTtmb3IobGV0IGU9MCxvPW4ubGVuZ3RoO2U8bztlKyspYS5wdXNoKG5bZV0udG9KU09OKHQuZGF0YSkpO2EubGVuZ3RoPjAmJihvW2VdPWEsaT0hMCl9aSYmKHQuZGF0YS5tb3JwaEF0dHJpYnV0ZXM9byx0LmRhdGEubW9ycGhUYXJnZXRzUmVsYXRpdmU9dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZSk7Y29uc3QgYT10aGlzLmdyb3VwczthLmxlbmd0aD4wJiYodC5kYXRhLmdyb3Vwcz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGEpKSk7Y29uc3Qgcj10aGlzLmJvdW5kaW5nU3BoZXJlO3JldHVybiBudWxsIT09ciYmKHQuZGF0YS5ib3VuZGluZ1NwaGVyZT17Y2VudGVyOnIuY2VudGVyLnRvQXJyYXkoKSxyYWRpdXM6ci5yYWRpdXN9KSx0fWNsb25lKCl7cmV0dXJuKG5ldyBxcnQpLmNvcHkodGhpcyl9Y29weSh0KXt0aGlzLmluZGV4PW51bGwsdGhpcy5hdHRyaWJ1dGVzPXt9LHRoaXMubW9ycGhBdHRyaWJ1dGVzPXt9LHRoaXMuZ3JvdXBzPVtdLHRoaXMuYm91bmRpbmdCb3g9bnVsbCx0aGlzLmJvdW5kaW5nU3BoZXJlPW51bGw7Y29uc3QgZT17fTt0aGlzLm5hbWU9dC5uYW1lO2NvbnN0IG49dC5pbmRleDtudWxsIT09biYmdGhpcy5zZXRJbmRleChuLmNsb25lKGUpKTtjb25zdCBvPXQuYXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiBvKXRoaXMuc2V0QXR0cmlidXRlKHQsb1t0XS5jbG9uZShlKSk7Y29uc3QgaT10Lm1vcnBoQXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiBpKXtjb25zdCBuPVtdLG89aVt0XTtmb3IobGV0IHQ9MCxpPW8ubGVuZ3RoO3Q8aTt0Kyspbi5wdXNoKG9bdF0uY2xvbmUoZSkpO3RoaXMubW9ycGhBdHRyaWJ1dGVzW3RdPW59dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZT10Lm1vcnBoVGFyZ2V0c1JlbGF0aXZlO2NvbnN0IGE9dC5ncm91cHM7Zm9yKGxldCB0PTAsZT1hLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWFbdF07dGhpcy5hZGRHcm91cChlLnN0YXJ0LGUuY291bnQsZS5tYXRlcmlhbEluZGV4KX1jb25zdCByPXQuYm91bmRpbmdCb3g7bnVsbCE9PXImJih0aGlzLmJvdW5kaW5nQm94PXIuY2xvbmUoKSk7Y29uc3Qgcz10LmJvdW5kaW5nU3BoZXJlO3JldHVybiBudWxsIT09cyYmKHRoaXMuYm91bmRpbmdTcGhlcmU9cy5jbG9uZSgpKSx0aGlzLmRyYXdSYW5nZS5zdGFydD10LmRyYXdSYW5nZS5zdGFydCx0aGlzLmRyYXdSYW5nZS5jb3VudD10LmRyYXdSYW5nZS5jb3VudCx0aGlzLnVzZXJEYXRhPXQudXNlckRhdGEsdGhpc31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfX1xcnQucHJvdG90eXBlLmlzQnVmZmVyR2VvbWV0cnk9ITA7Y29uc3QgWnJ0PW5ldyBCYXQsWHJ0PW5ldyBMYXQsS3J0PW5ldyBSYXQsSnJ0PW5ldyBjYXQsUXJ0PW5ldyBjYXQsJHJ0PW5ldyBjYXQsdHN0PW5ldyBjYXQsZXN0PW5ldyBjYXQsbnN0PW5ldyBjYXQsb3N0PW5ldyBjYXQsaXN0PW5ldyBjYXQsYXN0PW5ldyBjYXQscnN0PW5ldyBRaXQsc3N0PW5ldyBRaXQsbHN0PW5ldyBRaXQsY3N0PW5ldyBjYXQsZHN0PW5ldyBjYXQ7Y2xhc3MgcHN0IGV4dGVuZHMgcHJ0e2NvbnN0cnVjdG9yKHQ9bmV3IHFydCxlPW5ldyBBcnQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoIix0aGlzLmdlb21ldHJ5PXQsdGhpcy5tYXRlcmlhbD1lLHRoaXMudXBkYXRlTW9ycGhUYXJnZXRzKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx2b2lkIDAhPT10Lm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyYmKHRoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPXQubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnNsaWNlKCkpLHZvaWQgMCE9PXQubW9ycGhUYXJnZXREaWN0aW9uYXJ5JiYodGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9T2JqZWN0LmFzc2lnbih7fSx0Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeSkpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpc311cGRhdGVNb3JwaFRhcmdldHMoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBlPXQubW9ycGhBdHRyaWJ1dGVzLG49T2JqZWN0LmtleXMoZSk7aWYobi5sZW5ndGg+MCl7Y29uc3QgdD1lW25bMF1dO2lmKHZvaWQgMCE9PXQpe3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPVtdLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5PXt9O2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdLm5hbWV8fFN0cmluZyhlKTt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcy5wdXNoKDApLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5W25dPWV9fX19ZWxzZXtjb25zdCBlPXQubW9ycGhUYXJnZXRzO3ZvaWQgMCE9PWUmJmUubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2gudXBkYXRlTW9ycGhUYXJnZXRzKCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX19cmF5Y2FzdCh0LGUpe2NvbnN0IG49dGhpcy5nZW9tZXRyeSxvPXRoaXMubWF0ZXJpYWwsaT10aGlzLm1hdHJpeFdvcmxkO2lmKHZvaWQgMD09PW8pcmV0dXJuO2lmKG51bGw9PT1uLmJvdW5kaW5nU3BoZXJlJiZuLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLEtydC5jb3B5KG4uYm91bmRpbmdTcGhlcmUpLEtydC5hcHBseU1hdHJpeDQoaSksITE9PT10LnJheS5pbnRlcnNlY3RzU3BoZXJlKEtydCkpcmV0dXJuO2lmKFpydC5jb3B5KGkpLmludmVydCgpLFhydC5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQoWnJ0KSxudWxsIT09bi5ib3VuZGluZ0JveCYmITE9PT1YcnQuaW50ZXJzZWN0c0JveChuLmJvdW5kaW5nQm94KSlyZXR1cm47bGV0IGE7aWYobi5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBpPW4uaW5kZXgscj1uLmF0dHJpYnV0ZXMucG9zaXRpb24scz1uLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbixsPW4ubW9ycGhUYXJnZXRzUmVsYXRpdmUsYz1uLmF0dHJpYnV0ZXMudXYsZD1uLmF0dHJpYnV0ZXMudXYyLHA9bi5ncm91cHMsbT1uLmRyYXdSYW5nZTtpZihudWxsIT09aSlpZihBcnJheS5pc0FycmF5KG8pKWZvcihsZXQgbj0wLHU9cC5sZW5ndGg7bjx1O24rKyl7Y29uc3QgdT1wW25dLGY9b1t1Lm1hdGVyaWFsSW5kZXhdO2ZvcihsZXQgbj1NYXRoLm1heCh1LnN0YXJ0LG0uc3RhcnQpLG89TWF0aC5taW4odS5zdGFydCt1LmNvdW50LG0uc3RhcnQrbS5jb3VudCk7bjxvO24rPTMpe2NvbnN0IG89aS5nZXRYKG4pLHA9aS5nZXRYKG4rMSksbT1pLmdldFgobisyKTthPW1zdCh0aGlzLGYsdCxYcnQscixzLGwsYyxkLG8scCxtKSxhJiYoYS5mYWNlSW5kZXg9TWF0aC5mbG9vcihuLzMpLGEuZmFjZS5tYXRlcmlhbEluZGV4PXUubWF0ZXJpYWxJbmRleCxlLnB1c2goYSkpfX1lbHNlIGZvcihsZXQgbj1NYXRoLm1heCgwLG0uc3RhcnQpLHA9TWF0aC5taW4oaS5jb3VudCxtLnN0YXJ0K20uY291bnQpO248cDtuKz0zKXtjb25zdCBwPWkuZ2V0WChuKSxtPWkuZ2V0WChuKzEpLHU9aS5nZXRYKG4rMik7YT1tc3QodGhpcyxvLHQsWHJ0LHIscyxsLGMsZCxwLG0sdSksYSYmKGEuZmFjZUluZGV4PU1hdGguZmxvb3Iobi8zKSxlLnB1c2goYSkpfWVsc2UgaWYodm9pZCAwIT09cilpZihBcnJheS5pc0FycmF5KG8pKWZvcihsZXQgbj0wLGk9cC5sZW5ndGg7bjxpO24rKyl7Y29uc3QgaT1wW25dLHU9b1tpLm1hdGVyaWFsSW5kZXhdO2ZvcihsZXQgbj1NYXRoLm1heChpLnN0YXJ0LG0uc3RhcnQpLG89TWF0aC5taW4oaS5zdGFydCtpLmNvdW50LG0uc3RhcnQrbS5jb3VudCk7bjxvO24rPTMpYT1tc3QodGhpcyx1LHQsWHJ0LHIscyxsLGMsZCxuLG4rMSxuKzIpLGEmJihhLmZhY2VJbmRleD1NYXRoLmZsb29yKG4vMyksYS5mYWNlLm1hdGVyaWFsSW5kZXg9aS5tYXRlcmlhbEluZGV4LGUucHVzaChhKSl9ZWxzZSBmb3IobGV0IG49TWF0aC5tYXgoMCxtLnN0YXJ0KSxpPU1hdGgubWluKHIuY291bnQsbS5zdGFydCttLmNvdW50KTtuPGk7bis9MylhPW1zdCh0aGlzLG8sdCxYcnQscixzLGwsYyxkLG4sbisxLG4rMiksYSYmKGEuZmFjZUluZGV4PU1hdGguZmxvb3Iobi8zKSxlLnB1c2goYSkpfWVsc2Ugbi5pc0dlb21ldHJ5JiZjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoLnJheWNhc3QoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX1mdW5jdGlvbiBtc3QodCxlLG4sbyxpLGEscixzLGwsYyxkLHApe0pydC5mcm9tQnVmZmVyQXR0cmlidXRlKGksYyksUXJ0LmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxkKSwkcnQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShpLHApO2NvbnN0IG09dC5tb3JwaFRhcmdldEluZmx1ZW5jZXM7aWYoYSYmbSl7b3N0LnNldCgwLDAsMCksaXN0LnNldCgwLDAsMCksYXN0LnNldCgwLDAsMCk7Zm9yKGxldCB0PTAsZT1hLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPW1bdF0sbj1hW3RdOzAhPT1lJiYodHN0LmZyb21CdWZmZXJBdHRyaWJ1dGUobixjKSxlc3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShuLGQpLG5zdC5mcm9tQnVmZmVyQXR0cmlidXRlKG4scCkscj8ob3N0LmFkZFNjYWxlZFZlY3Rvcih0c3QsZSksaXN0LmFkZFNjYWxlZFZlY3Rvcihlc3QsZSksYXN0LmFkZFNjYWxlZFZlY3Rvcihuc3QsZSkpOihvc3QuYWRkU2NhbGVkVmVjdG9yKHRzdC5zdWIoSnJ0KSxlKSxpc3QuYWRkU2NhbGVkVmVjdG9yKGVzdC5zdWIoUXJ0KSxlKSxhc3QuYWRkU2NhbGVkVmVjdG9yKG5zdC5zdWIoJHJ0KSxlKSkpfUpydC5hZGQob3N0KSxRcnQuYWRkKGlzdCksJHJ0LmFkZChhc3QpfXQuaXNTa2lubmVkTWVzaCYmKHQuYm9uZVRyYW5zZm9ybShjLEpydCksdC5ib25lVHJhbnNmb3JtKGQsUXJ0KSx0LmJvbmVUcmFuc2Zvcm0ocCwkcnQpKTtjb25zdCB1PShmdW5jdGlvbiBmKHQsZSxuLG8saSxhLHIscyl7bGV0IGw7aWYobD0xPT09ZS5zaWRlP28uaW50ZXJzZWN0VHJpYW5nbGUocixhLGksITAscyk6by5pbnRlcnNlY3RUcmlhbmdsZShpLGEsciwyIT09ZS5zaWRlLHMpLG51bGw9PT1sKXJldHVybiBudWxsO2RzdC5jb3B5KHMpLGRzdC5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCk7Y29uc3QgYz1uLnJheS5vcmlnaW4uZGlzdGFuY2VUbyhkc3QpO3JldHVybiBjPG4ubmVhcnx8Yz5uLmZhcj9udWxsOntkaXN0YW5jZTpjLHBvaW50OmRzdC5jbG9uZSgpLG9iamVjdDp0fX0pKHQsZSxuLG8sSnJ0LFFydCwkcnQsY3N0KTtpZih1KXtzJiYocnN0LmZyb21CdWZmZXJBdHRyaWJ1dGUocyxjKSxzc3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShzLGQpLGxzdC5mcm9tQnVmZmVyQXR0cmlidXRlKHMscCksdS51dj12cnQuZ2V0VVYoY3N0LEpydCxRcnQsJHJ0LHJzdCxzc3QsbHN0LG5ldyBRaXQpKSxsJiYocnN0LmZyb21CdWZmZXJBdHRyaWJ1dGUobCxjKSxzc3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShsLGQpLGxzdC5mcm9tQnVmZmVyQXR0cmlidXRlKGwscCksdS51djI9dnJ0LmdldFVWKGNzdCxKcnQsUXJ0LCRydCxyc3Qsc3N0LGxzdCxuZXcgUWl0KSk7Y29uc3QgdD17YTpjLGI6ZCxjOnAsbm9ybWFsOm5ldyBjYXQsbWF0ZXJpYWxJbmRleDowfTt2cnQuZ2V0Tm9ybWFsKEpydCxRcnQsJHJ0LHQubm9ybWFsKSx1LmZhY2U9dH1yZXR1cm4gdX1wc3QucHJvdG90eXBlLmlzTWVzaD0hMDtjbGFzcyB1c3QgZXh0ZW5kcyBxcnR7Y29uc3RydWN0b3IodD0xLGU9MSxuPTEsbz0xLGk9MSxhPTEpe3N1cGVyKCksdGhpcy50eXBlPSJCb3hHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXt3aWR0aDp0LGhlaWdodDplLGRlcHRoOm4sd2lkdGhTZWdtZW50czpvLGhlaWdodFNlZ21lbnRzOmksZGVwdGhTZWdtZW50czphfTtjb25zdCByPXRoaXM7bz1NYXRoLmZsb29yKG8pLGk9TWF0aC5mbG9vcihpKSxhPU1hdGguZmxvb3IoYSk7Y29uc3Qgcz1bXSxsPVtdLGM9W10sZD1bXTtsZXQgcD0wLG09MDtmdW5jdGlvbiB1KHQsZSxuLG8saSxhLHUsZixnLGgsYil7Y29uc3QgeT1hL2csXz11L2gsQz1hLzIsTT11LzIsdj1mLzIseD1nKzEsTz1oKzE7bGV0IFA9MCx3PTA7Y29uc3Qgaz1uZXcgY2F0O2ZvcihsZXQgYT0wO2E8TzthKyspe2NvbnN0IHI9YSpfLU07Zm9yKGxldCBzPTA7czx4O3MrKylrW3RdPShzKnktQykqbyxrW2VdPXIqaSxrW25dPXYsbC5wdXNoKGsueCxrLnksay56KSxrW3RdPTAsa1tlXT0wLGtbbl09Zj4wPzE6LTEsYy5wdXNoKGsueCxrLnksay56KSxkLnB1c2gocy9nKSxkLnB1c2goMS1hL2gpLFArPTF9Zm9yKGxldCB0PTA7dDxoO3QrKylmb3IobGV0IGU9MDtlPGc7ZSsrKXtjb25zdCBuPXArZSt4Kih0KzEpLG89cCsoZSsxKSt4Kih0KzEpLGk9cCsoZSsxKSt4KnQ7cy5wdXNoKHArZSt4KnQsbixpKSxzLnB1c2gobixvLGkpLHcrPTZ9ci5hZGRHcm91cChtLHcsYiksbSs9dyxwKz1QfXUoInoiLCJ5IiwieCIsLTEsLTEsbixlLHQsYSxpLDApLHUoInoiLCJ5IiwieCIsMSwtMSxuLGUsLXQsYSxpLDEpLHUoIngiLCJ6IiwieSIsMSwxLHQsbixlLG8sYSwyKSx1KCJ4IiwieiIsInkiLDEsLTEsdCxuLC1lLG8sYSwzKSx1KCJ4IiwieSIsInoiLDEsLTEsdCxlLG4sbyxpLDQpLHUoIngiLCJ5IiwieiIsLTEsLTEsdCxlLC1uLG8saSw1KSx0aGlzLnNldEluZGV4KHMpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IEZydChsLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgRnJ0KGMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IEZydChkLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyB1c3QodC53aWR0aCx0LmhlaWdodCx0LmRlcHRoLHQud2lkdGhTZWdtZW50cyx0LmhlaWdodFNlZ21lbnRzLHQuZGVwdGhTZWdtZW50cyl9fWZ1bmN0aW9uIGZzdCh0KXtjb25zdCBlPXt9O2Zvcihjb25zdCBuIGluIHQpe2Vbbl09e307Zm9yKGNvbnN0IG8gaW4gdFtuXSl7Y29uc3QgaT10W25dW29dO2Vbbl1bb109aSYmKGkuaXNDb2xvcnx8aS5pc01hdHJpeDN8fGkuaXNNYXRyaXg0fHxpLmlzVmVjdG9yMnx8aS5pc1ZlY3RvcjN8fGkuaXNWZWN0b3I0fHxpLmlzVGV4dHVyZXx8aS5pc1F1YXRlcm5pb24pP2kuY2xvbmUoKTpBcnJheS5pc0FycmF5KGkpP2kuc2xpY2UoKTppfX1yZXR1cm4gZX1mdW5jdGlvbiBnc3QodCl7Y29uc3QgZT17fTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7Y29uc3Qgbz1mc3QodFtuXSk7Zm9yKGNvbnN0IHQgaW4gbyllW3RdPW9bdF19cmV0dXJuIGV9Y29uc3QgaHN0PXtjbG9uZTpmc3QsbWVyZ2U6Z3N0fTtjbGFzcyBic3QgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYWRlck1hdGVyaWFsIix0aGlzLmRlZmluZXM9e30sdGhpcy51bmlmb3Jtcz17fSx0aGlzLnZlcnRleFNoYWRlcj0idm9pZCBtYWluKCkge1xuXHRnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7XG59Iix0aGlzLmZyYWdtZW50U2hhZGVyPSJ2b2lkIG1haW4oKSB7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIDEuMCwgMC4wLCAwLjAsIDEuMCApO1xufSIsdGhpcy5saW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMubGlnaHRzPSExLHRoaXMuY2xpcHBpbmc9ITEsdGhpcy5leHRlbnNpb25zPXtkZXJpdmF0aXZlczohMSxmcmFnRGVwdGg6ITEsZHJhd0J1ZmZlcnM6ITEsc2hhZGVyVGV4dHVyZUxPRDohMX0sdGhpcy5kZWZhdWx0QXR0cmlidXRlVmFsdWVzPXtjb2xvcjpbMSwxLDFdLHV2OlswLDBdLHV2MjpbMCwwXX0sdGhpcy5pbmRleDBBdHRyaWJ1dGVOYW1lPXZvaWQgMCx0aGlzLnVuaWZvcm1zTmVlZFVwZGF0ZT0hMSx0aGlzLmdsc2xWZXJzaW9uPW51bGwsdm9pZCAwIT09dCYmKHZvaWQgMCE9PXQuYXR0cmlidXRlcyYmY29uc29sZS5lcnJvcigiVEhSRUUuU2hhZGVyTWF0ZXJpYWw6IGF0dHJpYnV0ZXMgc2hvdWxkIG5vdyBiZSBkZWZpbmVkIGluIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIiksdGhpcy5zZXRWYWx1ZXModCkpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5mcmFnbWVudFNoYWRlcj10LmZyYWdtZW50U2hhZGVyLHRoaXMudmVydGV4U2hhZGVyPXQudmVydGV4U2hhZGVyLHRoaXMudW5pZm9ybXM9ZnN0KHQudW5pZm9ybXMpLHRoaXMuZGVmaW5lcz1PYmplY3QuYXNzaWduKHt9LHQuZGVmaW5lcyksdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy5saWdodHM9dC5saWdodHMsdGhpcy5jbGlwcGluZz10LmNsaXBwaW5nLHRoaXMuZXh0ZW5zaW9ucz1PYmplY3QuYXNzaWduKHt9LHQuZXh0ZW5zaW9ucyksdGhpcy5nbHNsVmVyc2lvbj10Lmdsc2xWZXJzaW9uLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO2UuZ2xzbFZlcnNpb249dGhpcy5nbHNsVmVyc2lvbixlLnVuaWZvcm1zPXt9O2Zvcihjb25zdCBuIGluIHRoaXMudW5pZm9ybXMpe2NvbnN0IG89dGhpcy51bmlmb3Jtc1tuXS52YWx1ZTtlLnVuaWZvcm1zW25dPW8mJm8uaXNUZXh0dXJlP3t0eXBlOiJ0Iix2YWx1ZTpvLnRvSlNPTih0KS51dWlkfTpvJiZvLmlzQ29sb3I/e3R5cGU6ImMiLHZhbHVlOm8uZ2V0SGV4KCl9Om8mJm8uaXNWZWN0b3IyP3t0eXBlOiJ2MiIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNWZWN0b3IzP3t0eXBlOiJ2MyIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNWZWN0b3I0P3t0eXBlOiJ2NCIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNNYXRyaXgzP3t0eXBlOiJtMyIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNNYXRyaXg0P3t0eXBlOiJtNCIsdmFsdWU6by50b0FycmF5KCl9Ont2YWx1ZTpvfX1PYmplY3Qua2V5cyh0aGlzLmRlZmluZXMpLmxlbmd0aD4wJiYoZS5kZWZpbmVzPXRoaXMuZGVmaW5lcyksZS52ZXJ0ZXhTaGFkZXI9dGhpcy52ZXJ0ZXhTaGFkZXIsZS5mcmFnbWVudFNoYWRlcj10aGlzLmZyYWdtZW50U2hhZGVyO2NvbnN0IG49e307Zm9yKGNvbnN0IHQgaW4gdGhpcy5leHRlbnNpb25zKSEwPT09dGhpcy5leHRlbnNpb25zW3RdJiYoblt0XT0hMCk7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmxlbmd0aD4wJiYoZS5leHRlbnNpb25zPW4pLGV9fWJzdC5wcm90b3R5cGUuaXNTaGFkZXJNYXRlcmlhbD0hMDtjbGFzcyB5c3QgZXh0ZW5kcyBwcnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iQ2FtZXJhIix0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZT1uZXcgQmF0LHRoaXMucHJvamVjdGlvbk1hdHJpeD1uZXcgQmF0LHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2U9bmV3IEJhdH1jb3B5KHQsZSl7cmV0dXJuIHN1cGVyLmNvcHkodCxlKSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHQubWF0cml4V29ybGRJbnZlcnNlKSx0aGlzLnByb2plY3Rpb25NYXRyaXguY29weSh0LnByb2plY3Rpb25NYXRyaXgpLHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2UuY29weSh0LnByb2plY3Rpb25NYXRyaXhJbnZlcnNlKSx0aGlzfWdldFdvcmxkRGlyZWN0aW9uKHQpe3RoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpO2NvbnN0IGU9dGhpcy5tYXRyaXhXb3JsZC5lbGVtZW50cztyZXR1cm4gdC5zZXQoLWVbOF0sLWVbOV0sLWVbMTBdKS5ub3JtYWxpemUoKX11cGRhdGVNYXRyaXhXb3JsZCh0KXtzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpfXVwZGF0ZVdvcmxkTWF0cml4KHQsZSl7c3VwZXIudXBkYXRlV29ybGRNYXRyaXgodCxlKSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX15c3QucHJvdG90eXBlLmlzQ2FtZXJhPSEwO2NsYXNzIF9zdCBleHRlbmRzIHlzdHtjb25zdHJ1Y3Rvcih0PTUwLGU9MSxuPS4xLG89MmUzKXtzdXBlcigpLHRoaXMudHlwZT0iUGVyc3BlY3RpdmVDYW1lcmEiLHRoaXMuZm92PXQsdGhpcy56b29tPTEsdGhpcy5uZWFyPW4sdGhpcy5mYXI9byx0aGlzLmZvY3VzPTEwLHRoaXMuYXNwZWN0PWUsdGhpcy52aWV3PW51bGwsdGhpcy5maWxtR2F1Z2U9MzUsdGhpcy5maWxtT2Zmc2V0PTAsdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksdGhpcy5mb3Y9dC5mb3YsdGhpcy56b29tPXQuem9vbSx0aGlzLm5lYXI9dC5uZWFyLHRoaXMuZmFyPXQuZmFyLHRoaXMuZm9jdXM9dC5mb2N1cyx0aGlzLmFzcGVjdD10LmFzcGVjdCx0aGlzLnZpZXc9bnVsbD09PXQudmlldz9udWxsOk9iamVjdC5hc3NpZ24oe30sdC52aWV3KSx0aGlzLmZpbG1HYXVnZT10LmZpbG1HYXVnZSx0aGlzLmZpbG1PZmZzZXQ9dC5maWxtT2Zmc2V0LHRoaXN9c2V0Rm9jYWxMZW5ndGgodCl7Y29uc3QgZT0uNSp0aGlzLmdldEZpbG1IZWlnaHQoKS90O3RoaXMuZm92PTIqWWl0Kk1hdGguYXRhbihlKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1nZXRGb2NhbExlbmd0aCgpe2NvbnN0IHQ9TWF0aC50YW4oLjUqV2l0KnRoaXMuZm92KTtyZXR1cm4uNSp0aGlzLmdldEZpbG1IZWlnaHQoKS90fWdldEVmZmVjdGl2ZUZPVigpe3JldHVybiAyKllpdCpNYXRoLmF0YW4oTWF0aC50YW4oLjUqV2l0KnRoaXMuZm92KS90aGlzLnpvb20pfWdldEZpbG1XaWR0aCgpe3JldHVybiB0aGlzLmZpbG1HYXVnZSpNYXRoLm1pbih0aGlzLmFzcGVjdCwxKX1nZXRGaWxtSGVpZ2h0KCl7cmV0dXJuIHRoaXMuZmlsbUdhdWdlL01hdGgubWF4KHRoaXMuYXNwZWN0LDEpfXNldFZpZXdPZmZzZXQodCxlLG4sbyxpLGEpe3RoaXMuYXNwZWN0PXQvZSxudWxsPT09dGhpcy52aWV3JiYodGhpcy52aWV3PXtlbmFibGVkOiEwLGZ1bGxXaWR0aDoxLGZ1bGxIZWlnaHQ6MSxvZmZzZXRYOjAsb2Zmc2V0WTowLHdpZHRoOjEsaGVpZ2h0OjF9KSx0aGlzLnZpZXcuZW5hYmxlZD0hMCx0aGlzLnZpZXcuZnVsbFdpZHRoPXQsdGhpcy52aWV3LmZ1bGxIZWlnaHQ9ZSx0aGlzLnZpZXcub2Zmc2V0WD1uLHRoaXMudmlldy5vZmZzZXRZPW8sdGhpcy52aWV3LndpZHRoPWksdGhpcy52aWV3LmhlaWdodD1hLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWNsZWFyVmlld09mZnNldCgpe251bGwhPT10aGlzLnZpZXcmJih0aGlzLnZpZXcuZW5hYmxlZD0hMSksdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9dXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpe2NvbnN0IHQ9dGhpcy5uZWFyO2xldCBlPXQqTWF0aC50YW4oLjUqV2l0KnRoaXMuZm92KS90aGlzLnpvb20sbj0yKmUsbz10aGlzLmFzcGVjdCpuLGk9LS41Km87Y29uc3QgYT10aGlzLnZpZXc7aWYobnVsbCE9PXRoaXMudmlldyYmdGhpcy52aWV3LmVuYWJsZWQpe2NvbnN0IHQ9YS5mdWxsV2lkdGgscj1hLmZ1bGxIZWlnaHQ7aSs9YS5vZmZzZXRYKm8vdCxlLT1hLm9mZnNldFkqbi9yLG8qPWEud2lkdGgvdCxuKj1hLmhlaWdodC9yfWNvbnN0IHI9dGhpcy5maWxtT2Zmc2V0OzAhPT1yJiYoaSs9dCpyL3RoaXMuZ2V0RmlsbVdpZHRoKCkpLHRoaXMucHJvamVjdGlvbk1hdHJpeC5tYWtlUGVyc3BlY3RpdmUoaSxpK28sZSxlLW4sdCx0aGlzLmZhciksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMucHJvamVjdGlvbk1hdHJpeCkuaW52ZXJ0KCl9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC5mb3Y9dGhpcy5mb3YsZS5vYmplY3Quem9vbT10aGlzLnpvb20sZS5vYmplY3QubmVhcj10aGlzLm5lYXIsZS5vYmplY3QuZmFyPXRoaXMuZmFyLGUub2JqZWN0LmZvY3VzPXRoaXMuZm9jdXMsZS5vYmplY3QuYXNwZWN0PXRoaXMuYXNwZWN0LG51bGwhPT10aGlzLnZpZXcmJihlLm9iamVjdC52aWV3PU9iamVjdC5hc3NpZ24oe30sdGhpcy52aWV3KSksZS5vYmplY3QuZmlsbUdhdWdlPXRoaXMuZmlsbUdhdWdlLGUub2JqZWN0LmZpbG1PZmZzZXQ9dGhpcy5maWxtT2Zmc2V0LGV9fV9zdC5wcm90b3R5cGUuaXNQZXJzcGVjdGl2ZUNhbWVyYT0hMDtjb25zdCBDc3Q9OTA7Y2xhc3MgTXN0IGV4dGVuZHMgcHJ0e2NvbnN0cnVjdG9yKHQsZSxuKXtpZihzdXBlcigpLHRoaXMudHlwZT0iQ3ViZUNhbWVyYSIsITAhPT1uLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkN1YmVDYW1lcmE6IFRoZSBjb25zdHJ1Y3RvciBub3cgZXhwZWN0cyBhbiBpbnN0YW5jZSBvZiBXZWJHTEN1YmVSZW5kZXJUYXJnZXQgYXMgdGhpcmQgcGFyYW1ldGVyLiIpO3RoaXMucmVuZGVyVGFyZ2V0PW47Y29uc3Qgbz1uZXcgX3N0KENzdCwxLHQsZSk7by5sYXllcnM9dGhpcy5sYXllcnMsby51cC5zZXQoMCwtMSwwKSxvLmxvb2tBdChuZXcgY2F0KDEsMCwwKSksdGhpcy5hZGQobyk7Y29uc3QgaT1uZXcgX3N0KENzdCwxLHQsZSk7aS5sYXllcnM9dGhpcy5sYXllcnMsaS51cC5zZXQoMCwtMSwwKSxpLmxvb2tBdChuZXcgY2F0KC0xLDAsMCkpLHRoaXMuYWRkKGkpO2NvbnN0IGE9bmV3IF9zdChDc3QsMSx0LGUpO2EubGF5ZXJzPXRoaXMubGF5ZXJzLGEudXAuc2V0KDAsMCwxKSxhLmxvb2tBdChuZXcgY2F0KDAsMSwwKSksdGhpcy5hZGQoYSk7Y29uc3Qgcj1uZXcgX3N0KENzdCwxLHQsZSk7ci5sYXllcnM9dGhpcy5sYXllcnMsci51cC5zZXQoMCwwLC0xKSxyLmxvb2tBdChuZXcgY2F0KDAsLTEsMCkpLHRoaXMuYWRkKHIpO2NvbnN0IHM9bmV3IF9zdChDc3QsMSx0LGUpO3MubGF5ZXJzPXRoaXMubGF5ZXJzLHMudXAuc2V0KDAsLTEsMCkscy5sb29rQXQobmV3IGNhdCgwLDAsMSkpLHRoaXMuYWRkKHMpO2NvbnN0IGw9bmV3IF9zdChDc3QsMSx0LGUpO2wubGF5ZXJzPXRoaXMubGF5ZXJzLGwudXAuc2V0KDAsLTEsMCksbC5sb29rQXQobmV3IGNhdCgwLDAsLTEpKSx0aGlzLmFkZChsKX11cGRhdGUodCxlKXtudWxsPT09dGhpcy5wYXJlbnQmJnRoaXMudXBkYXRlTWF0cml4V29ybGQoKTtjb25zdCBuPXRoaXMucmVuZGVyVGFyZ2V0LFtvLGksYSxyLHMsbF09dGhpcy5jaGlsZHJlbixjPXQueHIuZW5hYmxlZCxkPXQuZ2V0UmVuZGVyVGFyZ2V0KCk7dC54ci5lbmFibGVkPSExO2NvbnN0IHA9bi50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcztuLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPSExLHQuc2V0UmVuZGVyVGFyZ2V0KG4sMCksdC5yZW5kZXIoZSxvKSx0LnNldFJlbmRlclRhcmdldChuLDEpLHQucmVuZGVyKGUsaSksdC5zZXRSZW5kZXJUYXJnZXQobiwyKSx0LnJlbmRlcihlLGEpLHQuc2V0UmVuZGVyVGFyZ2V0KG4sMyksdC5yZW5kZXIoZSxyKSx0LnNldFJlbmRlclRhcmdldChuLDQpLHQucmVuZGVyKGUscyksbi50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz1wLHQuc2V0UmVuZGVyVGFyZ2V0KG4sNSksdC5yZW5kZXIoZSxsKSx0LnNldFJlbmRlclRhcmdldChkKSx0LnhyLmVuYWJsZWQ9Y319Y2xhc3MgdnN0IGV4dGVuZHMgb2F0e2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMpe3N1cGVyKHQ9dm9pZCAwIT09dD90OltdLGU9dm9pZCAwIT09ZT9lOmRpdCxuLG8saSxhLHI9dm9pZCAwIT09cj9yOlBpdCxzLGwsYyksdGhpcy5mbGlwWT0hMX1nZXQgaW1hZ2VzKCl7cmV0dXJuIHRoaXMuaW1hZ2V9c2V0IGltYWdlcyh0KXt0aGlzLmltYWdlPXR9fXZzdC5wcm90b3R5cGUuaXNDdWJlVGV4dHVyZT0hMDtjbGFzcyB4c3QgZXh0ZW5kcyByYXR7Y29uc3RydWN0b3IodCxlLG4pe051bWJlci5pc0ludGVnZXIoZSkmJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMQ3ViZVJlbmRlclRhcmdldDogY29uc3RydWN0b3Igc2lnbmF0dXJlIGlzIG5vdyBXZWJHTEN1YmVSZW5kZXJUYXJnZXQoIHNpemUsIG9wdGlvbnMgKSIpLGU9biksc3VwZXIodCx0LGUpLHRoaXMudGV4dHVyZT1uZXcgdnN0KHZvaWQgMCwoZT1lfHx7fSkubWFwcGluZyxlLndyYXBTLGUud3JhcFQsZS5tYWdGaWx0ZXIsZS5taW5GaWx0ZXIsZS5mb3JtYXQsZS50eXBlLGUuYW5pc290cm9weSxlLmVuY29kaW5nKSx0aGlzLnRleHR1cmUuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSEwLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9dm9pZCAwIT09ZS5nZW5lcmF0ZU1pcG1hcHMmJmUuZ2VuZXJhdGVNaXBtYXBzLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9dm9pZCAwIT09ZS5taW5GaWx0ZXI/ZS5taW5GaWx0ZXI6Yml0LHRoaXMudGV4dHVyZS5fbmVlZHNGbGlwRW52TWFwPSExfWZyb21FcXVpcmVjdGFuZ3VsYXJUZXh0dXJlKHQsZSl7dGhpcy50ZXh0dXJlLnR5cGU9ZS50eXBlLHRoaXMudGV4dHVyZS5mb3JtYXQ9d2l0LHRoaXMudGV4dHVyZS5lbmNvZGluZz1lLmVuY29kaW5nLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ZS5nZW5lcmF0ZU1pcG1hcHMsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj1lLm1pbkZpbHRlcix0aGlzLnRleHR1cmUubWFnRmlsdGVyPWUubWFnRmlsdGVyO2NvbnN0IG49bmV3IHVzdCg1LDUsNSksbz1uZXcgYnN0KHtuYW1lOiJDdWJlbWFwRnJvbUVxdWlyZWN0Iix1bmlmb3Jtczpmc3Qoe3RFcXVpcmVjdDp7dmFsdWU6bnVsbH19KSx2ZXJ0ZXhTaGFkZXI6IlxuXG5cdFx0XHRcdHZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG5cblx0XHRcdFx0dmVjMyB0cmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblxuXHRcdFx0XHRcdHJldHVybiBub3JtYWxpemUoICggbWF0cml4ICogdmVjNCggZGlyLCAwLjAgKSApLnh5eiApO1xuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0XHR2V29ybGREaXJlY3Rpb24gPSB0cmFuc2Zvcm1EaXJlY3Rpb24oIHBvc2l0aW9uLCBtb2RlbE1hdHJpeCApO1xuXG5cdFx0XHRcdFx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0XHRcdFx0XHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cblx0XHRcdFx0fVxuXHRcdFx0IixmcmFnbWVudFNoYWRlcjoiXG5cblx0XHRcdFx0dW5pZm9ybSBzYW1wbGVyMkQgdEVxdWlyZWN0O1xuXG5cdFx0XHRcdHZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG5cblx0XHRcdFx0I2luY2x1ZGUgPGNvbW1vbj5cblxuXHRcdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0XHR2ZWMzIGRpcmVjdGlvbiA9IG5vcm1hbGl6ZSggdldvcmxkRGlyZWN0aW9uICk7XG5cblx0XHRcdFx0XHR2ZWMyIHNhbXBsZVVWID0gZXF1aXJlY3RVdiggZGlyZWN0aW9uICk7XG5cblx0XHRcdFx0XHRnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQoIHRFcXVpcmVjdCwgc2FtcGxlVVYgKTtcblxuXHRcdFx0XHR9XG5cdFx0XHQiLHNpZGU6MSxibGVuZGluZzowfSk7by51bmlmb3Jtcy50RXF1aXJlY3QudmFsdWU9ZTtjb25zdCBpPW5ldyBwc3QobixvKSxhPWUubWluRmlsdGVyO3JldHVybiBlLm1pbkZpbHRlcj09PXlpdCYmKGUubWluRmlsdGVyPWJpdCksbmV3IE1zdCgxLDEwLHRoaXMpLnVwZGF0ZSh0LGkpLGUubWluRmlsdGVyPWEsaS5nZW9tZXRyeS5kaXNwb3NlKCksaS5tYXRlcmlhbC5kaXNwb3NlKCksdGhpc31jbGVhcih0LGUsbixvKXtjb25zdCBpPXQuZ2V0UmVuZGVyVGFyZ2V0KCk7Zm9yKGxldCBpPTA7aTw2O2krKyl0LnNldFJlbmRlclRhcmdldCh0aGlzLGkpLHQuY2xlYXIoZSxuLG8pO3Quc2V0UmVuZGVyVGFyZ2V0KGkpfX14c3QucHJvdG90eXBlLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0PSEwO2NvbnN0IE9zdD1uZXcgY2F0LFBzdD1uZXcgY2F0LHdzdD1uZXcgJGl0O2NsYXNzIGtzdHtjb25zdHJ1Y3Rvcih0PW5ldyBjYXQoMSwwLDApLGU9MCl7dGhpcy5ub3JtYWw9dCx0aGlzLmNvbnN0YW50PWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodCksdGhpcy5jb25zdGFudD1lLHRoaXN9c2V0Q29tcG9uZW50cyh0LGUsbixvKXtyZXR1cm4gdGhpcy5ub3JtYWwuc2V0KHQsZSxuKSx0aGlzLmNvbnN0YW50PW8sdGhpc31zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCh0LGUpe3JldHVybiB0aGlzLm5vcm1hbC5jb3B5KHQpLHRoaXMuY29uc3RhbnQ9LWUuZG90KHRoaXMubm9ybWFsKSx0aGlzfXNldEZyb21Db3BsYW5hclBvaW50cyh0LGUsbil7Y29uc3Qgbz1Pc3Quc3ViVmVjdG9ycyhuLGUpLmNyb3NzKFBzdC5zdWJWZWN0b3JzKHQsZSkpLm5vcm1hbGl6ZSgpO3JldHVybiB0aGlzLnNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KG8sdCksdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm5vcm1hbC5jb3B5KHQubm9ybWFsKSx0aGlzLmNvbnN0YW50PXQuY29uc3RhbnQsdGhpc31ub3JtYWxpemUoKXtjb25zdCB0PTEvdGhpcy5ub3JtYWwubGVuZ3RoKCk7cmV0dXJuIHRoaXMubm9ybWFsLm11bHRpcGx5U2NhbGFyKHQpLHRoaXMuY29uc3RhbnQqPXQsdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy5jb25zdGFudCo9LTEsdGhpcy5ub3JtYWwubmVnYXRlKCksdGhpc31kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIHRoaXMubm9ybWFsLmRvdCh0KSt0aGlzLmNvbnN0YW50fWRpc3RhbmNlVG9TcGhlcmUodCl7cmV0dXJuIHRoaXMuZGlzdGFuY2VUb1BvaW50KHQuY2VudGVyKS10LnJhZGl1c31wcm9qZWN0UG9pbnQodCxlKXtyZXR1cm4gZS5jb3B5KHRoaXMubm9ybWFsKS5tdWx0aXBseVNjYWxhcigtdGhpcy5kaXN0YW5jZVRvUG9pbnQodCkpLmFkZCh0KX1pbnRlcnNlY3RMaW5lKHQsZSl7Y29uc3Qgbj10LmRlbHRhKE9zdCksbz10aGlzLm5vcm1hbC5kb3Qobik7aWYoMD09PW8pcmV0dXJuIDA9PT10aGlzLmRpc3RhbmNlVG9Qb2ludCh0LnN0YXJ0KT9lLmNvcHkodC5zdGFydCk6bnVsbDtjb25zdCBpPS0odC5zdGFydC5kb3QodGhpcy5ub3JtYWwpK3RoaXMuY29uc3RhbnQpL287cmV0dXJuIGk8MHx8aT4xP251bGw6ZS5jb3B5KG4pLm11bHRpcGx5U2NhbGFyKGkpLmFkZCh0LnN0YXJ0KX1pbnRlcnNlY3RzTGluZSh0KXtjb25zdCBlPXRoaXMuZGlzdGFuY2VUb1BvaW50KHQuc3RhcnQpLG49dGhpcy5kaXN0YW5jZVRvUG9pbnQodC5lbmQpO3JldHVybiBlPDAmJm4+MHx8bjwwJiZlPjB9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzUGxhbmUodGhpcyl9aW50ZXJzZWN0c1NwaGVyZSh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzUGxhbmUodGhpcyl9Y29wbGFuYXJQb2ludCh0KXtyZXR1cm4gdC5jb3B5KHRoaXMubm9ybWFsKS5tdWx0aXBseVNjYWxhcigtdGhpcy5jb25zdGFudCl9YXBwbHlNYXRyaXg0KHQsZSl7Y29uc3Qgbj1lfHx3c3QuZ2V0Tm9ybWFsTWF0cml4KHQpLG89dGhpcy5jb3BsYW5hclBvaW50KE9zdCkuYXBwbHlNYXRyaXg0KHQpLGk9dGhpcy5ub3JtYWwuYXBwbHlNYXRyaXgzKG4pLm5vcm1hbGl6ZSgpO3JldHVybiB0aGlzLmNvbnN0YW50PS1vLmRvdChpKSx0aGlzfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5jb25zdGFudC09dC5kb3QodGhpcy5ub3JtYWwpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm5vcm1hbC5lcXVhbHModGhpcy5ub3JtYWwpJiZ0LmNvbnN0YW50PT09dGhpcy5jb25zdGFudH1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19a3N0LnByb3RvdHlwZS5pc1BsYW5lPSEwO2NvbnN0IFNzdD1uZXcgUmF0LERzdD1uZXcgY2F0O2NsYXNzIEVzdHtjb25zdHJ1Y3Rvcih0PW5ldyBrc3QsZT1uZXcga3N0LG49bmV3IGtzdCxvPW5ldyBrc3QsaT1uZXcga3N0LGE9bmV3IGtzdCl7dGhpcy5wbGFuZXM9W3QsZSxuLG8saSxhXX1zZXQodCxlLG4sbyxpLGEpe2NvbnN0IHI9dGhpcy5wbGFuZXM7cmV0dXJuIHJbMF0uY29weSh0KSxyWzFdLmNvcHkoZSksclsyXS5jb3B5KG4pLHJbM10uY29weShvKSxyWzRdLmNvcHkoaSkscls1XS5jb3B5KGEpLHRoaXN9Y29weSh0KXtjb25zdCBlPXRoaXMucGxhbmVzO2ZvcihsZXQgbj0wO248NjtuKyspZVtuXS5jb3B5KHQucGxhbmVzW25dKTtyZXR1cm4gdGhpc31zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCh0KXtjb25zdCBlPXRoaXMucGxhbmVzLG49dC5lbGVtZW50cyxvPW5bMF0saT1uWzFdLGE9blsyXSxyPW5bM10scz1uWzRdLGw9bls1XSxjPW5bNl0sZD1uWzddLHA9bls4XSxtPW5bOV0sdT1uWzEwXSxmPW5bMTFdLGc9blsxMl0saD1uWzEzXSxiPW5bMTRdLHk9blsxNV07cmV0dXJuIGVbMF0uc2V0Q29tcG9uZW50cyhyLW8sZC1zLGYtcCx5LWcpLm5vcm1hbGl6ZSgpLGVbMV0uc2V0Q29tcG9uZW50cyhyK28sZCtzLGYrcCx5K2cpLm5vcm1hbGl6ZSgpLGVbMl0uc2V0Q29tcG9uZW50cyhyK2ksZCtsLGYrbSx5K2gpLm5vcm1hbGl6ZSgpLGVbM10uc2V0Q29tcG9uZW50cyhyLWksZC1sLGYtbSx5LWgpLm5vcm1hbGl6ZSgpLGVbNF0uc2V0Q29tcG9uZW50cyhyLWEsZC1jLGYtdSx5LWIpLm5vcm1hbGl6ZSgpLGVbNV0uc2V0Q29tcG9uZW50cyhyK2EsZCtjLGYrdSx5K2IpLm5vcm1hbGl6ZSgpLHRoaXN9aW50ZXJzZWN0c09iamVjdCh0KXtjb25zdCBlPXQuZ2VvbWV0cnk7cmV0dXJuIG51bGw9PT1lLmJvdW5kaW5nU3BoZXJlJiZlLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLFNzdC5jb3B5KGUuYm91bmRpbmdTcGhlcmUpLmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkKSx0aGlzLmludGVyc2VjdHNTcGhlcmUoU3N0KX1pbnRlcnNlY3RzU3ByaXRlKHQpe3JldHVybiBTc3QuY2VudGVyLnNldCgwLDAsMCksU3N0LnJhZGl1cz0uNzA3MTA2NzgxMTg2NTQ3NixTc3QuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZShTc3QpfWludGVyc2VjdHNTcGhlcmUodCl7Y29uc3QgZT10aGlzLnBsYW5lcyxuPXQuY2VudGVyLG89LXQucmFkaXVzO2ZvcihsZXQgdD0wO3Q8Njt0KyspaWYoZVt0XS5kaXN0YW5jZVRvUG9pbnQobik8bylyZXR1cm4hMTtyZXR1cm4hMH1pbnRlcnNlY3RzQm94KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXM7Zm9yKGxldCBuPTA7bjw2O24rKyl7Y29uc3Qgbz1lW25dO2lmKERzdC54PW8ubm9ybWFsLng+MD90Lm1heC54OnQubWluLngsRHN0Lnk9by5ub3JtYWwueT4wP3QubWF4Lnk6dC5taW4ueSxEc3Quej1vLm5vcm1hbC56PjA/dC5tYXguejp0Lm1pbi56LG8uZGlzdGFuY2VUb1BvaW50KERzdCk8MClyZXR1cm4hMX1yZXR1cm4hMH1jb250YWluc1BvaW50KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXM7Zm9yKGxldCBuPTA7bjw2O24rKylpZihlW25dLmRpc3RhbmNlVG9Qb2ludCh0KTwwKXJldHVybiExO3JldHVybiEwfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX1mdW5jdGlvbiBSc3QoKXtsZXQgdD1udWxsLGU9ITEsbj1udWxsLG89bnVsbDtmdW5jdGlvbiBpKGUsYSl7bihlLGEpLG89dC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaSl9cmV0dXJue3N0YXJ0OmZ1bmN0aW9uKCl7ITAhPT1lJiZudWxsIT09biYmKG89dC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaSksZT0hMCl9LHN0b3A6ZnVuY3Rpb24oKXt0LmNhbmNlbEFuaW1hdGlvbkZyYW1lKG8pLGU9ITF9LHNldEFuaW1hdGlvbkxvb3A6ZnVuY3Rpb24odCl7bj10fSxzZXRDb250ZXh0OmZ1bmN0aW9uKGUpe3Q9ZX19fWZ1bmN0aW9uIEFzdCh0LGUpe2NvbnN0IG49ZS5pc1dlYkdMMixvPW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlJiYodD10LmRhdGEpLG8uZ2V0KHQpfSxyZW1vdmU6ZnVuY3Rpb24gYShlKXtlLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUmJihlPWUuZGF0YSk7Y29uc3Qgbj1vLmdldChlKTtuJiYodC5kZWxldGVCdWZmZXIobi5idWZmZXIpLG8uZGVsZXRlKGUpKX0sdXBkYXRlOmZ1bmN0aW9uIHIoZSxpKXtpZihlLmlzR0xCdWZmZXJBdHRyaWJ1dGUpe2NvbnN0IHQ9by5nZXQoZSk7cmV0dXJuIHZvaWQoKCF0fHx0LnZlcnNpb248ZS52ZXJzaW9uKSYmby5zZXQoZSx7YnVmZmVyOmUuYnVmZmVyLHR5cGU6ZS50eXBlLGJ5dGVzUGVyRWxlbWVudDplLmVsZW1lbnRTaXplLHZlcnNpb246ZS52ZXJzaW9ufSkpfWUuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSYmKGU9ZS5kYXRhKTtjb25zdCBhPW8uZ2V0KGUpO3ZvaWQgMD09PWE/by5zZXQoZSwoZnVuY3Rpb24gcihlLG8pe2NvbnN0IGk9ZS5hcnJheSxhPWUudXNhZ2Uscj10LmNyZWF0ZUJ1ZmZlcigpO3QuYmluZEJ1ZmZlcihvLHIpLHQuYnVmZmVyRGF0YShvLGksYSksZS5vblVwbG9hZENhbGxiYWNrKCk7bGV0IHM9NTEyNjtyZXR1cm4gaSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheT9zPTUxMjY6aSBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheT9jb25zb2xlLndhcm4oIlRIUkVFLldlYkdMQXR0cmlidXRlczogVW5zdXBwb3J0ZWQgZGF0YSBidWZmZXIgZm9ybWF0OiBGbG9hdDY0QXJyYXkuIik6aSBpbnN0YW5jZW9mIFVpbnQxNkFycmF5P2UuaXNGbG9hdDE2QnVmZmVyQXR0cmlidXRlP24/cz01MTMxOmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xBdHRyaWJ1dGVzOiBVc2FnZSBvZiBGbG9hdDE2QnVmZmVyQXR0cmlidXRlIHJlcXVpcmVzIFdlYkdMMi4iKTpzPTUxMjM6aSBpbnN0YW5jZW9mIEludDE2QXJyYXk/cz01MTIyOmkgaW5zdGFuY2VvZiBVaW50MzJBcnJheT9zPTUxMjU6aSBpbnN0YW5jZW9mIEludDMyQXJyYXk/cz01MTI0OmkgaW5zdGFuY2VvZiBJbnQ4QXJyYXk/cz01MTIwOihpIGluc3RhbmNlb2YgVWludDhBcnJheXx8aSBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5KSYmKHM9NTEyMSkse2J1ZmZlcjpyLHR5cGU6cyxieXRlc1BlckVsZW1lbnQ6aS5CWVRFU19QRVJfRUxFTUVOVCx2ZXJzaW9uOmUudmVyc2lvbn19KShlLGkpKTphLnZlcnNpb248ZS52ZXJzaW9uJiYoKGZ1bmN0aW9uIHMoZSxvLGkpe2NvbnN0IGE9by5hcnJheSxyPW8udXBkYXRlUmFuZ2U7dC5iaW5kQnVmZmVyKGksZSksLTE9PT1yLmNvdW50P3QuYnVmZmVyU3ViRGF0YShpLDAsYSk6KG4/dC5idWZmZXJTdWJEYXRhKGksci5vZmZzZXQqYS5CWVRFU19QRVJfRUxFTUVOVCxhLHIub2Zmc2V0LHIuY291bnQpOnQuYnVmZmVyU3ViRGF0YShpLHIub2Zmc2V0KmEuQllURVNfUEVSX0VMRU1FTlQsYS5zdWJhcnJheShyLm9mZnNldCxyLm9mZnNldCtyLmNvdW50KSksci5jb3VudD0tMSl9KShhLmJ1ZmZlcixlLGkpLGEudmVyc2lvbj1lLnZlcnNpb24pfX19Y2xhc3MgVHN0IGV4dGVuZHMgcXJ0e2NvbnN0cnVjdG9yKHQ9MSxlPTEsbj0xLG89MSl7c3VwZXIoKSx0aGlzLnR5cGU9IlBsYW5lR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17d2lkdGg6dCxoZWlnaHQ6ZSx3aWR0aFNlZ21lbnRzOm4saGVpZ2h0U2VnbWVudHM6b307Y29uc3QgaT10LzIsYT1lLzIscj1NYXRoLmZsb29yKG4pLHM9TWF0aC5mbG9vcihvKSxsPXIrMSxjPXMrMSxkPXQvcixwPWUvcyxtPVtdLHU9W10sZj1bXSxnPVtdO2ZvcihsZXQgdD0wO3Q8Yzt0Kyspe2NvbnN0IGU9dCpwLWE7Zm9yKGxldCBuPTA7bjxsO24rKyl1LnB1c2gobipkLWksLWUsMCksZi5wdXNoKDAsMCwxKSxnLnB1c2gobi9yKSxnLnB1c2goMS10L3MpfWZvcihsZXQgdD0wO3Q8czt0KyspZm9yKGxldCBlPTA7ZTxyO2UrKyl7Y29uc3Qgbj1lK2wqKHQrMSksbz1lKzErbCoodCsxKSxpPWUrMStsKnQ7bS5wdXNoKGUrbCp0LG4saSksbS5wdXNoKG4sbyxpKX10aGlzLnNldEluZGV4KG0pLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IEZydCh1LDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgRnJ0KGYsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IEZydChnLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBUc3QodC53aWR0aCx0LmhlaWdodCx0LndpZHRoU2VnbWVudHMsdC5oZWlnaHRTZWdtZW50cyl9fWNvbnN0IE5zdD17YWxwaGFtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQUxQSEFNQVBcblx0ZGlmZnVzZUNvbG9yLmEgKj0gdGV4dHVyZTJEKCBhbHBoYU1hcCwgdlV2ICkuZztcbiNlbmRpZiIsYWxwaGFtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9BTFBIQU1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBhbHBoYU1hcDtcbiNlbmRpZiIsYWxwaGF0ZXN0X2ZyYWdtZW50OiIjaWZkZWYgQUxQSEFURVNUXG5cdGlmICggZGlmZnVzZUNvbG9yLmEgPCBBTFBIQVRFU1QgKSBkaXNjYXJkO1xuI2VuZGlmIixhb21hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9BT01BUFxuXHRmbG9hdCBhbWJpZW50T2NjbHVzaW9uID0gKCB0ZXh0dXJlMkQoIGFvTWFwLCB2VXYyICkuciAtIDEuMCApICogYW9NYXBJbnRlbnNpdHkgKyAxLjA7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSAqPSBhbWJpZW50T2NjbHVzaW9uO1xuXHQjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApICYmIGRlZmluZWQoIFNUQU5EQVJEIClcblx0XHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZ2VvbWV0cnkudmlld0RpciApICk7XG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3RTcGVjdWxhciAqPSBjb21wdXRlU3BlY3VsYXJPY2NsdXNpb24oIGRvdE5WLCBhbWJpZW50T2NjbHVzaW9uLCBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcyApO1xuXHQjZW5kaWZcbiNlbmRpZiIsYW9tYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9BT01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBhb01hcDtcblx0dW5pZm9ybSBmbG9hdCBhb01hcEludGVuc2l0eTtcbiNlbmRpZiIsYmVnaW5fdmVydGV4OiJ2ZWMzIHRyYW5zZm9ybWVkID0gdmVjMyggcG9zaXRpb24gKTsiLGJlZ2lubm9ybWFsX3ZlcnRleDoidmVjMyBvYmplY3ROb3JtYWwgPSB2ZWMzKCBub3JtYWwgKTtcbiNpZmRlZiBVU0VfVEFOR0VOVFxuXHR2ZWMzIG9iamVjdFRhbmdlbnQgPSB2ZWMzKCB0YW5nZW50Lnh5eiApO1xuI2VuZGlmIixic2RmczoidmVjMiBpbnRlZ3JhdGVTcGVjdWxhckJSREYoIGNvbnN0IGluIGZsb2F0IGRvdE5WLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGNvbnN0IHZlYzQgYzAgPSB2ZWM0KCAtIDEsIC0gMC4wMjc1LCAtIDAuNTcyLCAwLjAyMiApO1xuXHRjb25zdCB2ZWM0IGMxID0gdmVjNCggMSwgMC4wNDI1LCAxLjA0LCAtIDAuMDQgKTtcblx0dmVjNCByID0gcm91Z2huZXNzICogYzAgKyBjMTtcblx0ZmxvYXQgYTAwNCA9IG1pbiggci54ICogci54LCBleHAyKCAtIDkuMjggKiBkb3ROViApICkgKiByLnggKyByLnk7XG5cdHJldHVybiB2ZWMyKCAtMS4wNCwgMS4wNCApICogYTAwNCArIHIuenc7XG59XG5mbG9hdCBwdW5jdHVhbExpZ2h0SW50ZW5zaXR5VG9JcnJhZGlhbmNlRmFjdG9yKCBjb25zdCBpbiBmbG9hdCBsaWdodERpc3RhbmNlLCBjb25zdCBpbiBmbG9hdCBjdXRvZmZEaXN0YW5jZSwgY29uc3QgaW4gZmxvYXQgZGVjYXlFeHBvbmVudCApIHtcbiNpZiBkZWZpbmVkICggUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUUyApXG5cdGZsb2F0IGRpc3RhbmNlRmFsbG9mZiA9IDEuMCAvIG1heCggcG93KCBsaWdodERpc3RhbmNlLCBkZWNheUV4cG9uZW50ICksIDAuMDEgKTtcblx0aWYoIGN1dG9mZkRpc3RhbmNlID4gMC4wICkge1xuXHRcdGRpc3RhbmNlRmFsbG9mZiAqPSBwb3cyKCBzYXR1cmF0ZSggMS4wIC0gcG93NCggbGlnaHREaXN0YW5jZSAvIGN1dG9mZkRpc3RhbmNlICkgKSApO1xuXHR9XG5cdHJldHVybiBkaXN0YW5jZUZhbGxvZmY7XG4jZWxzZVxuXHRpZiggY3V0b2ZmRGlzdGFuY2UgPiAwLjAgJiYgZGVjYXlFeHBvbmVudCA+IDAuMCApIHtcblx0XHRyZXR1cm4gcG93KCBzYXR1cmF0ZSggLWxpZ2h0RGlzdGFuY2UgLyBjdXRvZmZEaXN0YW5jZSArIDEuMCApLCBkZWNheUV4cG9uZW50ICk7XG5cdH1cblx0cmV0dXJuIDEuMDtcbiNlbmRpZlxufVxudmVjMyBCUkRGX0RpZmZ1c2VfTGFtYmVydCggY29uc3QgaW4gdmVjMyBkaWZmdXNlQ29sb3IgKSB7XG5cdHJldHVybiBSRUNJUFJPQ0FMX1BJICogZGlmZnVzZUNvbG9yO1xufVxudmVjMyBGX1NjaGxpY2soIGNvbnN0IGluIHZlYzMgZjAsIGNvbnN0IGluIHZlYzMgZjkwLCBjb25zdCBpbiBmbG9hdCBkb3RWSCApIHtcblx0ZmxvYXQgZnJlc25lbCA9IGV4cDIoICggLTUuNTU0NzMgKiBkb3RWSCAtIDYuOTgzMTYgKSAqIGRvdFZIICk7XG5cdHJldHVybiAoIGY5MCAtIGYwICkgKiBmcmVzbmVsICsgZjA7XG59XG52ZWMzIEZfU2NobGlja19Sb3VnaG5lc3NEZXBlbmRlbnQoIGNvbnN0IGluIHZlYzMgRjAsIGNvbnN0IGluIGZsb2F0IGRvdE5WLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGZsb2F0IGZyZXNuZWwgPSBleHAyKCAoIC01LjU1NDczICogZG90TlYgLSA2Ljk4MzE2ICkgKiBkb3ROViApO1xuXHR2ZWMzIEZyID0gbWF4KCB2ZWMzKCAxLjAgLSByb3VnaG5lc3MgKSwgRjAgKSAtIEYwO1xuXHRyZXR1cm4gRnIgKiBmcmVzbmVsICsgRjA7XG59XG5mbG9hdCBHX0dHWF9TbWl0aCggY29uc3QgaW4gZmxvYXQgYWxwaGEsIGNvbnN0IGluIGZsb2F0IGRvdE5MLCBjb25zdCBpbiBmbG9hdCBkb3ROViApIHtcblx0ZmxvYXQgYTIgPSBwb3cyKCBhbHBoYSApO1xuXHRmbG9hdCBnbCA9IGRvdE5MICsgc3FydCggYTIgKyAoIDEuMCAtIGEyICkgKiBwb3cyKCBkb3ROTCApICk7XG5cdGZsb2F0IGd2ID0gZG90TlYgKyBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5WICkgKTtcblx0cmV0dXJuIDEuMCAvICggZ2wgKiBndiApO1xufVxuZmxvYXQgR19HR1hfU21pdGhDb3JyZWxhdGVkKCBjb25zdCBpbiBmbG9hdCBhbHBoYSwgY29uc3QgaW4gZmxvYXQgZG90TkwsIGNvbnN0IGluIGZsb2F0IGRvdE5WICkge1xuXHRmbG9hdCBhMiA9IHBvdzIoIGFscGhhICk7XG5cdGZsb2F0IGd2ID0gZG90TkwgKiBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5WICkgKTtcblx0ZmxvYXQgZ2wgPSBkb3ROViAqIHNxcnQoIGEyICsgKCAxLjAgLSBhMiApICogcG93MiggZG90TkwgKSApO1xuXHRyZXR1cm4gMC41IC8gbWF4KCBndiArIGdsLCBFUFNJTE9OICk7XG59XG5mbG9hdCBEX0dHWCggY29uc3QgaW4gZmxvYXQgYWxwaGEsIGNvbnN0IGluIGZsb2F0IGRvdE5IICkge1xuXHRmbG9hdCBhMiA9IHBvdzIoIGFscGhhICk7XG5cdGZsb2F0IGRlbm9tID0gcG93MiggZG90TkggKSAqICggYTIgLSAxLjAgKSArIDEuMDtcblx0cmV0dXJuIFJFQ0lQUk9DQUxfUEkgKiBhMiAvIHBvdzIoIGRlbm9tICk7XG59XG52ZWMzIEJSREZfU3BlY3VsYXJfR0dYKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGluY2lkZW50TGlnaHQsIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIHZlYzMgZjAsIGNvbnN0IGluIHZlYzMgZjkwLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGZsb2F0IGFscGhhID0gcG93Miggcm91Z2huZXNzICk7XG5cdHZlYzMgaGFsZkRpciA9IG5vcm1hbGl6ZSggaW5jaWRlbnRMaWdodC5kaXJlY3Rpb24gKyB2aWV3RGlyICk7XG5cdGZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCBpbmNpZGVudExpZ2h0LmRpcmVjdGlvbiApICk7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCB2aWV3RGlyICkgKTtcblx0ZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIGhhbGZEaXIgKSApO1xuXHRmbG9hdCBkb3RMSCA9IHNhdHVyYXRlKCBkb3QoIGluY2lkZW50TGlnaHQuZGlyZWN0aW9uLCBoYWxmRGlyICkgKTtcblx0dmVjMyBGID0gRl9TY2hsaWNrKCBmMCwgZjkwLCBkb3RMSCApO1xuXHRmbG9hdCBHID0gR19HR1hfU21pdGhDb3JyZWxhdGVkKCBhbHBoYSwgZG90TkwsIGRvdE5WICk7XG5cdGZsb2F0IEQgPSBEX0dHWCggYWxwaGEsIGRvdE5IICk7XG5cdHJldHVybiBGICogKCBHICogRCApO1xufVxudmVjMiBMVENfVXYoIGNvbnN0IGluIHZlYzMgTiwgY29uc3QgaW4gdmVjMyBWLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGNvbnN0IGZsb2F0IExVVF9TSVpFID0gNjQuMDtcblx0Y29uc3QgZmxvYXQgTFVUX1NDQUxFID0gKCBMVVRfU0laRSAtIDEuMCApIC8gTFVUX1NJWkU7XG5cdGNvbnN0IGZsb2F0IExVVF9CSUFTID0gMC41IC8gTFVUX1NJWkU7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggTiwgViApICk7XG5cdHZlYzIgdXYgPSB2ZWMyKCByb3VnaG5lc3MsIHNxcnQoIDEuMCAtIGRvdE5WICkgKTtcblx0dXYgPSB1diAqIExVVF9TQ0FMRSArIExVVF9CSUFTO1xuXHRyZXR1cm4gdXY7XG59XG5mbG9hdCBMVENfQ2xpcHBlZFNwaGVyZUZvcm1GYWN0b3IoIGNvbnN0IGluIHZlYzMgZiApIHtcblx0ZmxvYXQgbCA9IGxlbmd0aCggZiApO1xuXHRyZXR1cm4gbWF4KCAoIGwgKiBsICsgZi56ICkgLyAoIGwgKyAxLjAgKSwgMC4wICk7XG59XG52ZWMzIExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29uc3QgaW4gdmVjMyB2MSwgY29uc3QgaW4gdmVjMyB2MiApIHtcblx0ZmxvYXQgeCA9IGRvdCggdjEsIHYyICk7XG5cdGZsb2F0IHkgPSBhYnMoIHggKTtcblx0ZmxvYXQgYSA9IDAuODU0Mzk4NSArICggMC40OTY1MTU1ICsgMC4wMTQ1MjA2ICogeSApICogeTtcblx0ZmxvYXQgYiA9IDMuNDE3NTk0MCArICggNC4xNjE2NzI0ICsgeSApICogeTtcblx0ZmxvYXQgdiA9IGEgLyBiO1xuXHRmbG9hdCB0aGV0YV9zaW50aGV0YSA9ICggeCA+IDAuMCApID8gdiA6IDAuNSAqIGludmVyc2VzcXJ0KCBtYXgoIDEuMCAtIHggKiB4LCAxZS03ICkgKSAtIHY7XG5cdHJldHVybiBjcm9zcyggdjEsIHYyICkgKiB0aGV0YV9zaW50aGV0YTtcbn1cbnZlYzMgTFRDX0V2YWx1YXRlKCBjb25zdCBpbiB2ZWMzIE4sIGNvbnN0IGluIHZlYzMgViwgY29uc3QgaW4gdmVjMyBQLCBjb25zdCBpbiBtYXQzIG1JbnYsIGNvbnN0IGluIHZlYzMgcmVjdENvb3Jkc1sgNCBdICkge1xuXHR2ZWMzIHYxID0gcmVjdENvb3Jkc1sgMSBdIC0gcmVjdENvb3Jkc1sgMCBdO1xuXHR2ZWMzIHYyID0gcmVjdENvb3Jkc1sgMyBdIC0gcmVjdENvb3Jkc1sgMCBdO1xuXHR2ZWMzIGxpZ2h0Tm9ybWFsID0gY3Jvc3MoIHYxLCB2MiApO1xuXHRpZiggZG90KCBsaWdodE5vcm1hbCwgUCAtIHJlY3RDb29yZHNbIDAgXSApIDwgMC4wICkgcmV0dXJuIHZlYzMoIDAuMCApO1xuXHR2ZWMzIFQxLCBUMjtcblx0VDEgPSBub3JtYWxpemUoIFYgLSBOICogZG90KCBWLCBOICkgKTtcblx0VDIgPSAtIGNyb3NzKCBOLCBUMSApO1xuXHRtYXQzIG1hdCA9IG1JbnYgKiB0cmFuc3Bvc2VNYXQzKCBtYXQzKCBUMSwgVDIsIE4gKSApO1xuXHR2ZWMzIGNvb3Jkc1sgNCBdO1xuXHRjb29yZHNbIDAgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMCBdIC0gUCApO1xuXHRjb29yZHNbIDEgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMSBdIC0gUCApO1xuXHRjb29yZHNbIDIgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMiBdIC0gUCApO1xuXHRjb29yZHNbIDMgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMyBdIC0gUCApO1xuXHRjb29yZHNbIDAgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAwIF0gKTtcblx0Y29vcmRzWyAxIF0gPSBub3JtYWxpemUoIGNvb3Jkc1sgMSBdICk7XG5cdGNvb3Jkc1sgMiBdID0gbm9ybWFsaXplKCBjb29yZHNbIDIgXSApO1xuXHRjb29yZHNbIDMgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAzIF0gKTtcblx0dmVjMyB2ZWN0b3JGb3JtRmFjdG9yID0gdmVjMyggMC4wICk7XG5cdHZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDAgXSwgY29vcmRzWyAxIF0gKTtcblx0dmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMSBdLCBjb29yZHNbIDIgXSApO1xuXHR2ZWN0b3JGb3JtRmFjdG9yICs9IExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29vcmRzWyAyIF0sIGNvb3Jkc1sgMyBdICk7XG5cdHZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDMgXSwgY29vcmRzWyAwIF0gKTtcblx0ZmxvYXQgcmVzdWx0ID0gTFRDX0NsaXBwZWRTcGhlcmVGb3JtRmFjdG9yKCB2ZWN0b3JGb3JtRmFjdG9yICk7XG5cdHJldHVybiB2ZWMzKCByZXN1bHQgKTtcbn1cbnZlYzMgQlJERl9TcGVjdWxhcl9HR1hfRW52aXJvbm1lbnQoIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIHZlYzMgc3BlY3VsYXJDb2xvciwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkge1xuXHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgdmlld0RpciApICk7XG5cdHZlYzIgYnJkZiA9IGludGVncmF0ZVNwZWN1bGFyQlJERiggZG90TlYsIHJvdWdobmVzcyApO1xuXHRyZXR1cm4gc3BlY3VsYXJDb2xvciAqIGJyZGYueCArIGJyZGYueTtcbn1cbnZvaWQgQlJERl9TcGVjdWxhcl9NdWx0aXNjYXR0ZXJpbmdfRW52aXJvbm1lbnQoIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIHZlYzMgc3BlY3VsYXJDb2xvciwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBpbm91dCB2ZWMzIHNpbmdsZVNjYXR0ZXIsIGlub3V0IHZlYzMgbXVsdGlTY2F0dGVyICkge1xuXHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZ2VvbWV0cnkudmlld0RpciApICk7XG5cdHZlYzMgRiA9IEZfU2NobGlja19Sb3VnaG5lc3NEZXBlbmRlbnQoIHNwZWN1bGFyQ29sb3IsIGRvdE5WLCByb3VnaG5lc3MgKTtcblx0dmVjMiBicmRmID0gaW50ZWdyYXRlU3BlY3VsYXJCUkRGKCBkb3ROViwgcm91Z2huZXNzICk7XG5cdHZlYzMgRnNzRXNzID0gRiAqIGJyZGYueCArIGJyZGYueTtcblx0ZmxvYXQgRXNzID0gYnJkZi54ICsgYnJkZi55O1xuXHRmbG9hdCBFbXMgPSAxLjAgLSBFc3M7XG5cdHZlYzMgRmF2ZyA9IHNwZWN1bGFyQ29sb3IgKyAoIDEuMCAtIHNwZWN1bGFyQ29sb3IgKSAqIDAuMDQ3NjE5O1x0dmVjMyBGbXMgPSBGc3NFc3MgKiBGYXZnIC8gKCAxLjAgLSBFbXMgKiBGYXZnICk7XG5cdHNpbmdsZVNjYXR0ZXIgKz0gRnNzRXNzO1xuXHRtdWx0aVNjYXR0ZXIgKz0gRm1zICogRW1zO1xufVxuZmxvYXQgR19CbGlublBob25nX0ltcGxpY2l0KCApIHtcblx0cmV0dXJuIDAuMjU7XG59XG5mbG9hdCBEX0JsaW5uUGhvbmcoIGNvbnN0IGluIGZsb2F0IHNoaW5pbmVzcywgY29uc3QgaW4gZmxvYXQgZG90TkggKSB7XG5cdHJldHVybiBSRUNJUFJPQ0FMX1BJICogKCBzaGluaW5lc3MgKiAwLjUgKyAxLjAgKSAqIHBvdyggZG90TkgsIHNoaW5pbmVzcyApO1xufVxudmVjMyBCUkRGX1NwZWN1bGFyX0JsaW5uUGhvbmcoIGNvbnN0IGluIEluY2lkZW50TGlnaHQgaW5jaWRlbnRMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gdmVjMyBzcGVjdWxhckNvbG9yLCBjb25zdCBpbiBmbG9hdCBzaGluaW5lc3MgKSB7XG5cdHZlYzMgaGFsZkRpciA9IG5vcm1hbGl6ZSggaW5jaWRlbnRMaWdodC5kaXJlY3Rpb24gKyBnZW9tZXRyeS52aWV3RGlyICk7XG5cdGZsb2F0IGRvdE5IID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBoYWxmRGlyICkgKTtcblx0ZmxvYXQgZG90TEggPSBzYXR1cmF0ZSggZG90KCBpbmNpZGVudExpZ2h0LmRpcmVjdGlvbiwgaGFsZkRpciApICk7XG5cdHZlYzMgRiA9IEZfU2NobGljayggc3BlY3VsYXJDb2xvciwgdmVjMyggMS4wICksIGRvdExIICk7XG5cdGZsb2F0IEcgPSBHX0JsaW5uUGhvbmdfSW1wbGljaXQoICk7XG5cdGZsb2F0IEQgPSBEX0JsaW5uUGhvbmcoIHNoaW5pbmVzcywgZG90TkggKTtcblx0cmV0dXJuIEYgKiAoIEcgKiBEICk7XG59XG5mbG9hdCBHR1hSb3VnaG5lc3NUb0JsaW5uRXhwb25lbnQoIGNvbnN0IGluIGZsb2F0IGdneFJvdWdobmVzcyApIHtcblx0cmV0dXJuICggMi4wIC8gcG93MiggZ2d4Um91Z2huZXNzICsgMC4wMDAxICkgLSAyLjAgKTtcbn1cbmZsb2F0IEJsaW5uRXhwb25lbnRUb0dHWFJvdWdobmVzcyggY29uc3QgaW4gZmxvYXQgYmxpbm5FeHBvbmVudCApIHtcblx0cmV0dXJuIHNxcnQoIDIuMCAvICggYmxpbm5FeHBvbmVudCArIDIuMCApICk7XG59XG4jaWYgZGVmaW5lZCggVVNFX1NIRUVOIClcbmZsb2F0IERfQ2hhcmxpZShmbG9hdCByb3VnaG5lc3MsIGZsb2F0IE5vSCkge1xuXHRmbG9hdCBpbnZBbHBoYSA9IDEuMCAvIHJvdWdobmVzcztcblx0ZmxvYXQgY29zMmggPSBOb0ggKiBOb0g7XG5cdGZsb2F0IHNpbjJoID0gbWF4KDEuMCAtIGNvczJoLCAwLjAwNzgxMjUpO1x0cmV0dXJuICgyLjAgKyBpbnZBbHBoYSkgKiBwb3coc2luMmgsIGludkFscGhhICogMC41KSAvICgyLjAgKiBQSSk7XG59XG5mbG9hdCBWX05ldWJlbHQoZmxvYXQgTm9WLCBmbG9hdCBOb0wpIHtcblx0cmV0dXJuIHNhdHVyYXRlKDEuMCAvICg0LjAgKiAoTm9MICsgTm9WIC0gTm9MICogTm9WKSkpO1xufVxudmVjMyBCUkRGX1NwZWN1bGFyX1NoZWVuKCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIHZlYzMgTCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgdmVjMyBzcGVjdWxhckNvbG9yICkge1xuXHR2ZWMzIE4gPSBnZW9tZXRyeS5ub3JtYWw7XG5cdHZlYzMgViA9IGdlb21ldHJ5LnZpZXdEaXI7XG5cdHZlYzMgSCA9IG5vcm1hbGl6ZSggViArIEwgKTtcblx0ZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBOLCBIICkgKTtcblx0cmV0dXJuIHNwZWN1bGFyQ29sb3IgKiBEX0NoYXJsaWUoIHJvdWdobmVzcywgZG90TkggKSAqIFZfTmV1YmVsdCggZG90KE4sIFYpLCBkb3QoTiwgTCkgKTtcbn1cbiNlbmRpZiIsYnVtcG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0JVTVBNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgYnVtcE1hcDtcblx0dW5pZm9ybSBmbG9hdCBidW1wU2NhbGU7XG5cdHZlYzIgZEhkeHlfZndkKCkge1xuXHRcdHZlYzIgZFNUZHggPSBkRmR4KCB2VXYgKTtcblx0XHR2ZWMyIGRTVGR5ID0gZEZkeSggdlV2ICk7XG5cdFx0ZmxvYXQgSGxsID0gYnVtcFNjYWxlICogdGV4dHVyZTJEKCBidW1wTWFwLCB2VXYgKS54O1xuXHRcdGZsb2F0IGRCeCA9IGJ1bXBTY2FsZSAqIHRleHR1cmUyRCggYnVtcE1hcCwgdlV2ICsgZFNUZHggKS54IC0gSGxsO1xuXHRcdGZsb2F0IGRCeSA9IGJ1bXBTY2FsZSAqIHRleHR1cmUyRCggYnVtcE1hcCwgdlV2ICsgZFNUZHkgKS54IC0gSGxsO1xuXHRcdHJldHVybiB2ZWMyKCBkQngsIGRCeSApO1xuXHR9XG5cdHZlYzMgcGVydHVyYk5vcm1hbEFyYiggdmVjMyBzdXJmX3BvcywgdmVjMyBzdXJmX25vcm0sIHZlYzIgZEhkeHksIGZsb2F0IGZhY2VEaXJlY3Rpb24gKSB7XG5cdFx0dmVjMyB2U2lnbWFYID0gdmVjMyggZEZkeCggc3VyZl9wb3MueCApLCBkRmR4KCBzdXJmX3Bvcy55ICksIGRGZHgoIHN1cmZfcG9zLnogKSApO1xuXHRcdHZlYzMgdlNpZ21hWSA9IHZlYzMoIGRGZHkoIHN1cmZfcG9zLnggKSwgZEZkeSggc3VyZl9wb3MueSApLCBkRmR5KCBzdXJmX3Bvcy56ICkgKTtcblx0XHR2ZWMzIHZOID0gc3VyZl9ub3JtO1xuXHRcdHZlYzMgUjEgPSBjcm9zcyggdlNpZ21hWSwgdk4gKTtcblx0XHR2ZWMzIFIyID0gY3Jvc3MoIHZOLCB2U2lnbWFYICk7XG5cdFx0ZmxvYXQgZkRldCA9IGRvdCggdlNpZ21hWCwgUjEgKSAqIGZhY2VEaXJlY3Rpb247XG5cdFx0dmVjMyB2R3JhZCA9IHNpZ24oIGZEZXQgKSAqICggZEhkeHkueCAqIFIxICsgZEhkeHkueSAqIFIyICk7XG5cdFx0cmV0dXJuIG5vcm1hbGl6ZSggYWJzKCBmRGV0ICkgKiBzdXJmX25vcm0gLSB2R3JhZCApO1xuXHR9XG4jZW5kaWYiLGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudDoiI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwXG5cdHZlYzQgcGxhbmU7XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgVU5JT05fQ0xJUFBJTkdfUExBTkVTOyBpICsrICkge1xuXHRcdHBsYW5lID0gY2xpcHBpbmdQbGFuZXNbIGkgXTtcblx0XHRpZiAoIGRvdCggdkNsaXBQb3NpdGlvbiwgcGxhbmUueHl6ICkgPiBwbGFuZS53ICkgZGlzY2FyZDtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjaWYgVU5JT05fQ0xJUFBJTkdfUExBTkVTIDwgTlVNX0NMSVBQSU5HX1BMQU5FU1xuXHRcdGJvb2wgY2xpcHBlZCA9IHRydWU7XG5cdFx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRcdGZvciAoIGludCBpID0gVU5JT05fQ0xJUFBJTkdfUExBTkVTOyBpIDwgTlVNX0NMSVBQSU5HX1BMQU5FUzsgaSArKyApIHtcblx0XHRcdHBsYW5lID0gY2xpcHBpbmdQbGFuZXNbIGkgXTtcblx0XHRcdGNsaXBwZWQgPSAoIGRvdCggdkNsaXBQb3NpdGlvbiwgcGxhbmUueHl6ICkgPiBwbGFuZS53ICkgJiYgY2xpcHBlZDtcblx0XHR9XG5cdFx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0XHRpZiAoIGNsaXBwZWQgKSBkaXNjYXJkO1xuXHQjZW5kaWZcbiNlbmRpZiIsY2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ6IiNpZiBOVU1fQ0xJUFBJTkdfUExBTkVTID4gMFxuXHR2YXJ5aW5nIHZlYzMgdkNsaXBQb3NpdGlvbjtcblx0dW5pZm9ybSB2ZWM0IGNsaXBwaW5nUGxhbmVzWyBOVU1fQ0xJUFBJTkdfUExBTkVTIF07XG4jZW5kaWYiLGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleDoiI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwXG5cdHZhcnlpbmcgdmVjMyB2Q2xpcFBvc2l0aW9uO1xuI2VuZGlmIixjbGlwcGluZ19wbGFuZXNfdmVydGV4OiIjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDBcblx0dkNsaXBQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7XG4jZW5kaWYiLGNvbG9yX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0ZGlmZnVzZUNvbG9yICo9IHZDb2xvcjtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApXG5cdGRpZmZ1c2VDb2xvci5yZ2IgKj0gdkNvbG9yO1xuI2VuZGlmIixjb2xvcl9wYXJzX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0dmFyeWluZyB2ZWM0IHZDb2xvcjtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApXG5cdHZhcnlpbmcgdmVjMyB2Q29sb3I7XG4jZW5kaWYiLGNvbG9yX3BhcnNfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0dmFyeWluZyB2ZWM0IHZDb2xvcjtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApIHx8IGRlZmluZWQoIFVTRV9JTlNUQU5DSU5HX0NPTE9SIClcblx0dmFyeWluZyB2ZWMzIHZDb2xvcjtcbiNlbmRpZiIsY29sb3JfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0dkNvbG9yID0gdmVjNCggMS4wICk7XG4jZWxpZiBkZWZpbmVkKCBVU0VfQ09MT1IgKSB8fCBkZWZpbmVkKCBVU0VfSU5TVEFOQ0lOR19DT0xPUiApXG5cdHZDb2xvciA9IHZlYzMoIDEuMCApO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0NPTE9SXG5cdHZDb2xvciAqPSBjb2xvcjtcbiNlbmRpZlxuI2lmZGVmIFVTRV9JTlNUQU5DSU5HX0NPTE9SXG5cdHZDb2xvci54eXogKj0gaW5zdGFuY2VDb2xvci54eXo7XG4jZW5kaWYiLGNvbW1vbjoiI2RlZmluZSBQSSAzLjE0MTU5MjY1MzU4OTc5M1xuI2RlZmluZSBQSTIgNi4yODMxODUzMDcxNzk1ODZcbiNkZWZpbmUgUElfSEFMRiAxLjU3MDc5NjMyNjc5NDg5NjZcbiNkZWZpbmUgUkVDSVBST0NBTF9QSSAwLjMxODMwOTg4NjE4Mzc5MDdcbiNkZWZpbmUgUkVDSVBST0NBTF9QSTIgMC4xNTkxNTQ5NDMwOTE4OTUzNVxuI2RlZmluZSBFUFNJTE9OIDFlLTZcbiNpZm5kZWYgc2F0dXJhdGVcbiNkZWZpbmUgc2F0dXJhdGUoYSkgY2xhbXAoIGEsIDAuMCwgMS4wIClcbiNlbmRpZlxuI2RlZmluZSB3aGl0ZUNvbXBsZW1lbnQoYSkgKCAxLjAgLSBzYXR1cmF0ZSggYSApIClcbmZsb2F0IHBvdzIoIGNvbnN0IGluIGZsb2F0IHggKSB7IHJldHVybiB4Kng7IH1cbmZsb2F0IHBvdzMoIGNvbnN0IGluIGZsb2F0IHggKSB7IHJldHVybiB4KngqeDsgfVxuZmxvYXQgcG93NCggY29uc3QgaW4gZmxvYXQgeCApIHsgZmxvYXQgeDIgPSB4Kng7IHJldHVybiB4Mip4MjsgfVxuZmxvYXQgYXZlcmFnZSggY29uc3QgaW4gdmVjMyBjb2xvciApIHsgcmV0dXJuIGRvdCggY29sb3IsIHZlYzMoIDAuMzMzMyApICk7IH1cbmhpZ2hwIGZsb2F0IHJhbmQoIGNvbnN0IGluIHZlYzIgdXYgKSB7XG5cdGNvbnN0IGhpZ2hwIGZsb2F0IGEgPSAxMi45ODk4LCBiID0gNzguMjMzLCBjID0gNDM3NTguNTQ1Mztcblx0aGlnaHAgZmxvYXQgZHQgPSBkb3QoIHV2Lnh5LCB2ZWMyKCBhLGIgKSApLCBzbiA9IG1vZCggZHQsIFBJICk7XG5cdHJldHVybiBmcmFjdChzaW4oc24pICogYyk7XG59XG4jaWZkZWYgSElHSF9QUkVDSVNJT05cblx0ZmxvYXQgcHJlY2lzaW9uU2FmZUxlbmd0aCggdmVjMyB2ICkgeyByZXR1cm4gbGVuZ3RoKCB2ICk7IH1cbiNlbHNlXG5cdGZsb2F0IG1heDMoIHZlYzMgdiApIHsgcmV0dXJuIG1heCggbWF4KCB2LngsIHYueSApLCB2LnogKTsgfVxuXHRmbG9hdCBwcmVjaXNpb25TYWZlTGVuZ3RoKCB2ZWMzIHYgKSB7XG5cdFx0ZmxvYXQgbWF4Q29tcG9uZW50ID0gbWF4MyggYWJzKCB2ICkgKTtcblx0XHRyZXR1cm4gbGVuZ3RoKCB2IC8gbWF4Q29tcG9uZW50ICkgKiBtYXhDb21wb25lbnQ7XG5cdH1cbiNlbmRpZlxuc3RydWN0IEluY2lkZW50TGlnaHQge1xuXHR2ZWMzIGNvbG9yO1xuXHR2ZWMzIGRpcmVjdGlvbjtcblx0Ym9vbCB2aXNpYmxlO1xufTtcbnN0cnVjdCBSZWZsZWN0ZWRMaWdodCB7XG5cdHZlYzMgZGlyZWN0RGlmZnVzZTtcblx0dmVjMyBkaXJlY3RTcGVjdWxhcjtcblx0dmVjMyBpbmRpcmVjdERpZmZ1c2U7XG5cdHZlYzMgaW5kaXJlY3RTcGVjdWxhcjtcbn07XG5zdHJ1Y3QgR2VvbWV0cmljQ29udGV4dCB7XG5cdHZlYzMgcG9zaXRpb247XG5cdHZlYzMgbm9ybWFsO1xuXHR2ZWMzIHZpZXdEaXI7XG4jaWZkZWYgQ0xFQVJDT0FUXG5cdHZlYzMgY2xlYXJjb2F0Tm9ybWFsO1xuI2VuZGlmXG59O1xudmVjMyB0cmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggKCBtYXRyaXggKiB2ZWM0KCBkaXIsIDAuMCApICkueHl6ICk7XG59XG52ZWMzIGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggKCB2ZWM0KCBkaXIsIDAuMCApICogbWF0cml4ICkueHl6ICk7XG59XG52ZWMzIHByb2plY3RPblBsYW5lKGluIHZlYzMgcG9pbnQsIGluIHZlYzMgcG9pbnRPblBsYW5lLCBpbiB2ZWMzIHBsYW5lTm9ybWFsICkge1xuXHRmbG9hdCBkaXN0YW5jZSA9IGRvdCggcGxhbmVOb3JtYWwsIHBvaW50IC0gcG9pbnRPblBsYW5lICk7XG5cdHJldHVybiAtIGRpc3RhbmNlICogcGxhbmVOb3JtYWwgKyBwb2ludDtcbn1cbmZsb2F0IHNpZGVPZlBsYW5lKCBpbiB2ZWMzIHBvaW50LCBpbiB2ZWMzIHBvaW50T25QbGFuZSwgaW4gdmVjMyBwbGFuZU5vcm1hbCApIHtcblx0cmV0dXJuIHNpZ24oIGRvdCggcG9pbnQgLSBwb2ludE9uUGxhbmUsIHBsYW5lTm9ybWFsICkgKTtcbn1cbnZlYzMgbGluZVBsYW5lSW50ZXJzZWN0KCBpbiB2ZWMzIHBvaW50T25MaW5lLCBpbiB2ZWMzIGxpbmVEaXJlY3Rpb24sIGluIHZlYzMgcG9pbnRPblBsYW5lLCBpbiB2ZWMzIHBsYW5lTm9ybWFsICkge1xuXHRyZXR1cm4gbGluZURpcmVjdGlvbiAqICggZG90KCBwbGFuZU5vcm1hbCwgcG9pbnRPblBsYW5lIC0gcG9pbnRPbkxpbmUgKSAvIGRvdCggcGxhbmVOb3JtYWwsIGxpbmVEaXJlY3Rpb24gKSApICsgcG9pbnRPbkxpbmU7XG59XG5tYXQzIHRyYW5zcG9zZU1hdDMoIGNvbnN0IGluIG1hdDMgbSApIHtcblx0bWF0MyB0bXA7XG5cdHRtcFsgMCBdID0gdmVjMyggbVsgMCBdLngsIG1bIDEgXS54LCBtWyAyIF0ueCApO1xuXHR0bXBbIDEgXSA9IHZlYzMoIG1bIDAgXS55LCBtWyAxIF0ueSwgbVsgMiBdLnkgKTtcblx0dG1wWyAyIF0gPSB2ZWMzKCBtWyAwIF0ueiwgbVsgMSBdLnosIG1bIDIgXS56ICk7XG5cdHJldHVybiB0bXA7XG59XG5mbG9hdCBsaW5lYXJUb1JlbGF0aXZlTHVtaW5hbmNlKCBjb25zdCBpbiB2ZWMzIGNvbG9yICkge1xuXHR2ZWMzIHdlaWdodHMgPSB2ZWMzKCAwLjIxMjYsIDAuNzE1MiwgMC4wNzIyICk7XG5cdHJldHVybiBkb3QoIHdlaWdodHMsIGNvbG9yLnJnYiApO1xufVxuYm9vbCBpc1BlcnNwZWN0aXZlTWF0cml4KCBtYXQ0IG0gKSB7XG5cdHJldHVybiBtWyAyIF1bIDMgXSA9PSAtIDEuMDtcbn1cbnZlYzIgZXF1aXJlY3RVdiggaW4gdmVjMyBkaXIgKSB7XG5cdGZsb2F0IHUgPSBhdGFuKCBkaXIueiwgZGlyLnggKSAqIFJFQ0lQUk9DQUxfUEkyICsgMC41O1xuXHRmbG9hdCB2ID0gYXNpbiggY2xhbXAoIGRpci55LCAtIDEuMCwgMS4wICkgKSAqIFJFQ0lQUk9DQUxfUEkgKyAwLjU7XG5cdHJldHVybiB2ZWMyKCB1LCB2ICk7XG59IixjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ6IiNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFX1VWXG5cdCNkZWZpbmUgY3ViZVVWX21heE1pcExldmVsIDguMFxuXHQjZGVmaW5lIGN1YmVVVl9taW5NaXBMZXZlbCA0LjBcblx0I2RlZmluZSBjdWJlVVZfbWF4VGlsZVNpemUgMjU2LjBcblx0I2RlZmluZSBjdWJlVVZfbWluVGlsZVNpemUgMTYuMFxuXHRmbG9hdCBnZXRGYWNlKCB2ZWMzIGRpcmVjdGlvbiApIHtcblx0XHR2ZWMzIGFic0RpcmVjdGlvbiA9IGFicyggZGlyZWN0aW9uICk7XG5cdFx0ZmxvYXQgZmFjZSA9IC0gMS4wO1xuXHRcdGlmICggYWJzRGlyZWN0aW9uLnggPiBhYnNEaXJlY3Rpb24ueiApIHtcblx0XHRcdGlmICggYWJzRGlyZWN0aW9uLnggPiBhYnNEaXJlY3Rpb24ueSApXG5cdFx0XHRcdGZhY2UgPSBkaXJlY3Rpb24ueCA+IDAuMCA/IDAuMCA6IDMuMDtcblx0XHRcdGVsc2Vcblx0XHRcdFx0ZmFjZSA9IGRpcmVjdGlvbi55ID4gMC4wID8gMS4wIDogNC4wO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIGFic0RpcmVjdGlvbi56ID4gYWJzRGlyZWN0aW9uLnkgKVxuXHRcdFx0XHRmYWNlID0gZGlyZWN0aW9uLnogPiAwLjAgPyAyLjAgOiA1LjA7XG5cdFx0XHRlbHNlXG5cdFx0XHRcdGZhY2UgPSBkaXJlY3Rpb24ueSA+IDAuMCA/IDEuMCA6IDQuMDtcblx0XHR9XG5cdFx0cmV0dXJuIGZhY2U7XG5cdH1cblx0dmVjMiBnZXRVViggdmVjMyBkaXJlY3Rpb24sIGZsb2F0IGZhY2UgKSB7XG5cdFx0dmVjMiB1djtcblx0XHRpZiAoIGZhY2UgPT0gMC4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCBkaXJlY3Rpb24ueiwgZGlyZWN0aW9uLnkgKSAvIGFicyggZGlyZWN0aW9uLnggKTtcblx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDEuMCApIHtcblx0XHRcdHV2ID0gdmVjMiggLSBkaXJlY3Rpb24ueCwgLSBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueiApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi56LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueCApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR1diA9IHZlYzIoIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueiApO1xuXHRcdH1cblx0XHRyZXR1cm4gMC41ICogKCB1diArIDEuMCApO1xuXHR9XG5cdHZlYzMgYmlsaW5lYXJDdWJlVVYoIHNhbXBsZXIyRCBlbnZNYXAsIHZlYzMgZGlyZWN0aW9uLCBmbG9hdCBtaXBJbnQgKSB7XG5cdFx0ZmxvYXQgZmFjZSA9IGdldEZhY2UoIGRpcmVjdGlvbiApO1xuXHRcdGZsb2F0IGZpbHRlckludCA9IG1heCggY3ViZVVWX21pbk1pcExldmVsIC0gbWlwSW50LCAwLjAgKTtcblx0XHRtaXBJbnQgPSBtYXgoIG1pcEludCwgY3ViZVVWX21pbk1pcExldmVsICk7XG5cdFx0ZmxvYXQgZmFjZVNpemUgPSBleHAyKCBtaXBJbnQgKTtcblx0XHRmbG9hdCB0ZXhlbFNpemUgPSAxLjAgLyAoIDMuMCAqIGN1YmVVVl9tYXhUaWxlU2l6ZSApO1xuXHRcdHZlYzIgdXYgPSBnZXRVViggZGlyZWN0aW9uLCBmYWNlICkgKiAoIGZhY2VTaXplIC0gMS4wICk7XG5cdFx0dmVjMiBmID0gZnJhY3QoIHV2ICk7XG5cdFx0dXYgKz0gMC41IC0gZjtcblx0XHRpZiAoIGZhY2UgPiAyLjAgKSB7XG5cdFx0XHR1di55ICs9IGZhY2VTaXplO1xuXHRcdFx0ZmFjZSAtPSAzLjA7XG5cdFx0fVxuXHRcdHV2LnggKz0gZmFjZSAqIGZhY2VTaXplO1xuXHRcdGlmICggbWlwSW50IDwgY3ViZVVWX21heE1pcExldmVsICkge1xuXHRcdFx0dXYueSArPSAyLjAgKiBjdWJlVVZfbWF4VGlsZVNpemU7XG5cdFx0fVxuXHRcdHV2LnkgKz0gZmlsdGVySW50ICogMi4wICogY3ViZVVWX21pblRpbGVTaXplO1xuXHRcdHV2LnggKz0gMy4wICogbWF4KCAwLjAsIGN1YmVVVl9tYXhUaWxlU2l6ZSAtIDIuMCAqIGZhY2VTaXplICk7XG5cdFx0dXYgKj0gdGV4ZWxTaXplO1xuXHRcdHZlYzMgdGwgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCB0ZXh0dXJlMkQoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHR1di54ICs9IHRleGVsU2l6ZTtcblx0XHR2ZWMzIHRyID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEKCBlbnZNYXAsIHV2ICkgKS5yZ2I7XG5cdFx0dXYueSArPSB0ZXhlbFNpemU7XG5cdFx0dmVjMyBiciA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCggZW52TWFwLCB1diApICkucmdiO1xuXHRcdHV2LnggLT0gdGV4ZWxTaXplO1xuXHRcdHZlYzMgYmwgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCB0ZXh0dXJlMkQoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHR2ZWMzIHRtID0gbWl4KCB0bCwgdHIsIGYueCApO1xuXHRcdHZlYzMgYm0gPSBtaXgoIGJsLCBiciwgZi54ICk7XG5cdFx0cmV0dXJuIG1peCggdG0sIGJtLCBmLnkgKTtcblx0fVxuXHQjZGVmaW5lIHIwIDEuMFxuXHQjZGVmaW5lIHYwIDAuMzM5XG5cdCNkZWZpbmUgbTAgLSAyLjBcblx0I2RlZmluZSByMSAwLjhcblx0I2RlZmluZSB2MSAwLjI3NlxuXHQjZGVmaW5lIG0xIC0gMS4wXG5cdCNkZWZpbmUgcjQgMC40XG5cdCNkZWZpbmUgdjQgMC4wNDZcblx0I2RlZmluZSBtNCAyLjBcblx0I2RlZmluZSByNSAwLjMwNVxuXHQjZGVmaW5lIHY1IDAuMDE2XG5cdCNkZWZpbmUgbTUgMy4wXG5cdCNkZWZpbmUgcjYgMC4yMVxuXHQjZGVmaW5lIHY2IDAuMDAzOFxuXHQjZGVmaW5lIG02IDQuMFxuXHRmbG9hdCByb3VnaG5lc3NUb01pcCggZmxvYXQgcm91Z2huZXNzICkge1xuXHRcdGZsb2F0IG1pcCA9IDAuMDtcblx0XHRpZiAoIHJvdWdobmVzcyA+PSByMSApIHtcblx0XHRcdG1pcCA9ICggcjAgLSByb3VnaG5lc3MgKSAqICggbTEgLSBtMCApIC8gKCByMCAtIHIxICkgKyBtMDtcblx0XHR9IGVsc2UgaWYgKCByb3VnaG5lc3MgPj0gcjQgKSB7XG5cdFx0XHRtaXAgPSAoIHIxIC0gcm91Z2huZXNzICkgKiAoIG00IC0gbTEgKSAvICggcjEgLSByNCApICsgbTE7XG5cdFx0fSBlbHNlIGlmICggcm91Z2huZXNzID49IHI1ICkge1xuXHRcdFx0bWlwID0gKCByNCAtIHJvdWdobmVzcyApICogKCBtNSAtIG00ICkgLyAoIHI0IC0gcjUgKSArIG00O1xuXHRcdH0gZWxzZSBpZiAoIHJvdWdobmVzcyA+PSByNiApIHtcblx0XHRcdG1pcCA9ICggcjUgLSByb3VnaG5lc3MgKSAqICggbTYgLSBtNSApIC8gKCByNSAtIHI2ICkgKyBtNTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWlwID0gLSAyLjAgKiBsb2cyKCAxLjE2ICogcm91Z2huZXNzICk7XHRcdH1cblx0XHRyZXR1cm4gbWlwO1xuXHR9XG5cdHZlYzQgdGV4dHVyZUN1YmVVViggc2FtcGxlcjJEIGVudk1hcCwgdmVjMyBzYW1wbGVEaXIsIGZsb2F0IHJvdWdobmVzcyApIHtcblx0XHRmbG9hdCBtaXAgPSBjbGFtcCggcm91Z2huZXNzVG9NaXAoIHJvdWdobmVzcyApLCBtMCwgY3ViZVVWX21heE1pcExldmVsICk7XG5cdFx0ZmxvYXQgbWlwRiA9IGZyYWN0KCBtaXAgKTtcblx0XHRmbG9hdCBtaXBJbnQgPSBmbG9vciggbWlwICk7XG5cdFx0dmVjMyBjb2xvcjAgPSBiaWxpbmVhckN1YmVVViggZW52TWFwLCBzYW1wbGVEaXIsIG1pcEludCApO1xuXHRcdGlmICggbWlwRiA9PSAwLjAgKSB7XG5cdFx0XHRyZXR1cm4gdmVjNCggY29sb3IwLCAxLjAgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dmVjMyBjb2xvcjEgPSBiaWxpbmVhckN1YmVVViggZW52TWFwLCBzYW1wbGVEaXIsIG1pcEludCArIDEuMCApO1xuXHRcdFx0cmV0dXJuIHZlYzQoIG1peCggY29sb3IwLCBjb2xvcjEsIG1pcEYgKSwgMS4wICk7XG5cdFx0fVxuXHR9XG4jZW5kaWYiLGRlZmF1bHRub3JtYWxfdmVydGV4OiJ2ZWMzIHRyYW5zZm9ybWVkTm9ybWFsID0gb2JqZWN0Tm9ybWFsO1xuI2lmZGVmIFVTRV9JTlNUQU5DSU5HXG5cdG1hdDMgbSA9IG1hdDMoIGluc3RhbmNlTWF0cml4ICk7XG5cdHRyYW5zZm9ybWVkTm9ybWFsIC89IHZlYzMoIGRvdCggbVsgMCBdLCBtWyAwIF0gKSwgZG90KCBtWyAxIF0sIG1bIDEgXSApLCBkb3QoIG1bIDIgXSwgbVsgMiBdICkgKTtcblx0dHJhbnNmb3JtZWROb3JtYWwgPSBtICogdHJhbnNmb3JtZWROb3JtYWw7XG4jZW5kaWZcbnRyYW5zZm9ybWVkTm9ybWFsID0gbm9ybWFsTWF0cml4ICogdHJhbnNmb3JtZWROb3JtYWw7XG4jaWZkZWYgRkxJUF9TSURFRFxuXHR0cmFuc2Zvcm1lZE5vcm1hbCA9IC0gdHJhbnNmb3JtZWROb3JtYWw7XG4jZW5kaWZcbiNpZmRlZiBVU0VfVEFOR0VOVFxuXHR2ZWMzIHRyYW5zZm9ybWVkVGFuZ2VudCA9ICggbW9kZWxWaWV3TWF0cml4ICogdmVjNCggb2JqZWN0VGFuZ2VudCwgMC4wICkgKS54eXo7XG5cdCNpZmRlZiBGTElQX1NJREVEXG5cdFx0dHJhbnNmb3JtZWRUYW5nZW50ID0gLSB0cmFuc2Zvcm1lZFRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmIixkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGRpc3BsYWNlbWVudE1hcDtcblx0dW5pZm9ybSBmbG9hdCBkaXNwbGFjZW1lbnRTY2FsZTtcblx0dW5pZm9ybSBmbG9hdCBkaXNwbGFjZW1lbnRCaWFzO1xuI2VuZGlmIixkaXNwbGFjZW1lbnRtYXBfdmVydGV4OiIjaWZkZWYgVVNFX0RJU1BMQUNFTUVOVE1BUFxuXHR0cmFuc2Zvcm1lZCArPSBub3JtYWxpemUoIG9iamVjdE5vcm1hbCApICogKCB0ZXh0dXJlMkQoIGRpc3BsYWNlbWVudE1hcCwgdlV2ICkueCAqIGRpc3BsYWNlbWVudFNjYWxlICsgZGlzcGxhY2VtZW50QmlhcyApO1xuI2VuZGlmIixlbWlzc2l2ZW1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9FTUlTU0lWRU1BUFxuXHR2ZWM0IGVtaXNzaXZlQ29sb3IgPSB0ZXh0dXJlMkQoIGVtaXNzaXZlTWFwLCB2VXYgKTtcblx0ZW1pc3NpdmVDb2xvci5yZ2IgPSBlbWlzc2l2ZU1hcFRleGVsVG9MaW5lYXIoIGVtaXNzaXZlQ29sb3IgKS5yZ2I7XG5cdHRvdGFsRW1pc3NpdmVSYWRpYW5jZSAqPSBlbWlzc2l2ZUNvbG9yLnJnYjtcbiNlbmRpZiIsZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9FTUlTU0lWRU1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBlbWlzc2l2ZU1hcDtcbiNlbmRpZiIsZW5jb2RpbmdzX2ZyYWdtZW50OiJnbF9GcmFnQ29sb3IgPSBsaW5lYXJUb091dHB1dFRleGVsKCBnbF9GcmFnQ29sb3IgKTsiLGVuY29kaW5nc19wYXJzX2ZyYWdtZW50OiJcbnZlYzQgTGluZWFyVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUgKSB7XG5cdHJldHVybiB2YWx1ZTtcbn1cbnZlYzQgR2FtbWFUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgZ2FtbWFGYWN0b3IgKSB7XG5cdHJldHVybiB2ZWM0KCBwb3coIHZhbHVlLnJnYiwgdmVjMyggZ2FtbWFGYWN0b3IgKSApLCB2YWx1ZS5hICk7XG59XG52ZWM0IExpbmVhclRvR2FtbWEoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IGdhbW1hRmFjdG9yICkge1xuXHRyZXR1cm4gdmVjNCggcG93KCB2YWx1ZS5yZ2IsIHZlYzMoIDEuMCAvIGdhbW1hRmFjdG9yICkgKSwgdmFsdWUuYSApO1xufVxudmVjNCBzUkdCVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUgKSB7XG5cdHJldHVybiB2ZWM0KCBtaXgoIHBvdyggdmFsdWUucmdiICogMC45NDc4NjcyOTg2ICsgdmVjMyggMC4wNTIxMzI3MDE0ICksIHZlYzMoIDIuNCApICksIHZhbHVlLnJnYiAqIDAuMDc3Mzk5MzgwOCwgdmVjMyggbGVzc1RoYW5FcXVhbCggdmFsdWUucmdiLCB2ZWMzKCAwLjA0MDQ1ICkgKSApICksIHZhbHVlLmEgKTtcbn1cbnZlYzQgTGluZWFyVG9zUkdCKCBpbiB2ZWM0IHZhbHVlICkge1xuXHRyZXR1cm4gdmVjNCggbWl4KCBwb3coIHZhbHVlLnJnYiwgdmVjMyggMC40MTY2NiApICkgKiAxLjA1NSAtIHZlYzMoIDAuMDU1ICksIHZhbHVlLnJnYiAqIDEyLjkyLCB2ZWMzKCBsZXNzVGhhbkVxdWFsKCB2YWx1ZS5yZ2IsIHZlYzMoIDAuMDAzMTMwOCApICkgKSApLCB2YWx1ZS5hICk7XG59XG52ZWM0IFJHQkVUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSApIHtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAqIGV4cDIoIHZhbHVlLmEgKiAyNTUuMCAtIDEyOC4wICksIDEuMCApO1xufVxudmVjNCBMaW5lYXJUb1JHQkUoIGluIHZlYzQgdmFsdWUgKSB7XG5cdGZsb2F0IG1heENvbXBvbmVudCA9IG1heCggbWF4KCB2YWx1ZS5yLCB2YWx1ZS5nICksIHZhbHVlLmIgKTtcblx0ZmxvYXQgZkV4cCA9IGNsYW1wKCBjZWlsKCBsb2cyKCBtYXhDb21wb25lbnQgKSApLCAtMTI4LjAsIDEyNy4wICk7XG5cdHJldHVybiB2ZWM0KCB2YWx1ZS5yZ2IgLyBleHAyKCBmRXhwICksICggZkV4cCArIDEyOC4wICkgLyAyNTUuMCApO1xufVxudmVjNCBSR0JNVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IG1heFJhbmdlICkge1xuXHRyZXR1cm4gdmVjNCggdmFsdWUucmdiICogdmFsdWUuYSAqIG1heFJhbmdlLCAxLjAgKTtcbn1cbnZlYzQgTGluZWFyVG9SR0JNKCBpbiB2ZWM0IHZhbHVlLCBpbiBmbG9hdCBtYXhSYW5nZSApIHtcblx0ZmxvYXQgbWF4UkdCID0gbWF4KCB2YWx1ZS5yLCBtYXgoIHZhbHVlLmcsIHZhbHVlLmIgKSApO1xuXHRmbG9hdCBNID0gY2xhbXAoIG1heFJHQiAvIG1heFJhbmdlLCAwLjAsIDEuMCApO1xuXHRNID0gY2VpbCggTSAqIDI1NS4wICkgLyAyNTUuMDtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAvICggTSAqIG1heFJhbmdlICksIE0gKTtcbn1cbnZlYzQgUkdCRFRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlLCBpbiBmbG9hdCBtYXhSYW5nZSApIHtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAqICggKCBtYXhSYW5nZSAvIDI1NS4wICkgLyB2YWx1ZS5hICksIDEuMCApO1xufVxudmVjNCBMaW5lYXJUb1JHQkQoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IG1heFJhbmdlICkge1xuXHRmbG9hdCBtYXhSR0IgPSBtYXgoIHZhbHVlLnIsIG1heCggdmFsdWUuZywgdmFsdWUuYiApICk7XG5cdGZsb2F0IEQgPSBtYXgoIG1heFJhbmdlIC8gbWF4UkdCLCAxLjAgKTtcblx0RCA9IGNsYW1wKCBmbG9vciggRCApIC8gMjU1LjAsIDAuMCwgMS4wICk7XG5cdHJldHVybiB2ZWM0KCB2YWx1ZS5yZ2IgKiAoIEQgKiAoIDI1NS4wIC8gbWF4UmFuZ2UgKSApLCBEICk7XG59XG5jb25zdCBtYXQzIGNMb2dMdXZNID0gbWF0MyggMC4yMjA5LCAwLjMzOTAsIDAuNDE4NCwgMC4xMTM4LCAwLjY3ODAsIDAuNzMxOSwgMC4wMTAyLCAwLjExMzAsIDAuMjk2OSApO1xudmVjNCBMaW5lYXJUb0xvZ0x1diggaW4gdmVjNCB2YWx1ZSApIHtcblx0dmVjMyBYcF9ZX1hZWnAgPSBjTG9nTHV2TSAqIHZhbHVlLnJnYjtcblx0WHBfWV9YWVpwID0gbWF4KCBYcF9ZX1hZWnAsIHZlYzMoIDFlLTYsIDFlLTYsIDFlLTYgKSApO1xuXHR2ZWM0IHZSZXN1bHQ7XG5cdHZSZXN1bHQueHkgPSBYcF9ZX1hZWnAueHkgLyBYcF9ZX1hZWnAuejtcblx0ZmxvYXQgTGUgPSAyLjAgKiBsb2cyKFhwX1lfWFlacC55KSArIDEyNy4wO1xuXHR2UmVzdWx0LncgPSBmcmFjdCggTGUgKTtcblx0dlJlc3VsdC56ID0gKCBMZSAtICggZmxvb3IoIHZSZXN1bHQudyAqIDI1NS4wICkgKSAvIDI1NS4wICkgLyAyNTUuMDtcblx0cmV0dXJuIHZSZXN1bHQ7XG59XG5jb25zdCBtYXQzIGNMb2dMdXZJbnZlcnNlTSA9IG1hdDMoIDYuMDAxNCwgLTIuNzAwOCwgLTEuNzk5NiwgLTEuMzMyMCwgMy4xMDI5LCAtNS43NzIxLCAwLjMwMDgsIC0xLjA4ODIsIDUuNjI2OCApO1xudmVjNCBMb2dMdXZUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSApIHtcblx0ZmxvYXQgTGUgPSB2YWx1ZS56ICogMjU1LjAgKyB2YWx1ZS53O1xuXHR2ZWMzIFhwX1lfWFlacDtcblx0WHBfWV9YWVpwLnkgPSBleHAyKCAoIExlIC0gMTI3LjAgKSAvIDIuMCApO1xuXHRYcF9ZX1hZWnAueiA9IFhwX1lfWFlacC55IC8gdmFsdWUueTtcblx0WHBfWV9YWVpwLnggPSB2YWx1ZS54ICogWHBfWV9YWVpwLno7XG5cdHZlYzMgdlJHQiA9IGNMb2dMdXZJbnZlcnNlTSAqIFhwX1lfWFlacC5yZ2I7XG5cdHJldHVybiB2ZWM0KCBtYXgoIHZSR0IsIDAuMCApLCAxLjAgKTtcbn0iLGVudm1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdHZlYzMgY2FtZXJhVG9GcmFnO1xuXHRcdGlmICggaXNPcnRob2dyYXBoaWMgKSB7XG5cdFx0XHRjYW1lcmFUb0ZyYWcgPSBub3JtYWxpemUoIHZlYzMoIC0gdmlld01hdHJpeFsgMCBdWyAyIF0sIC0gdmlld01hdHJpeFsgMSBdWyAyIF0sIC0gdmlld01hdHJpeFsgMiBdWyAyIF0gKSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjYW1lcmFUb0ZyYWcgPSBub3JtYWxpemUoIHZXb3JsZFBvc2l0aW9uIC0gY2FtZXJhUG9zaXRpb24gKTtcblx0XHR9XG5cdFx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIG5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRcdCNpZmRlZiBFTlZNQVBfTU9ERV9SRUZMRUNUSU9OXG5cdFx0XHR2ZWMzIHJlZmxlY3RWZWMgPSByZWZsZWN0KCBjYW1lcmFUb0ZyYWcsIHdvcmxkTm9ybWFsICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZnJhY3QoIGNhbWVyYVRvRnJhZywgd29ybGROb3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApO1xuXHRcdCNlbmRpZlxuXHQjZWxzZVxuXHRcdHZlYzMgcmVmbGVjdFZlYyA9IHZSZWZsZWN0O1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVk1BUF9UWVBFX0NVQkVcblx0XHR2ZWM0IGVudkNvbG9yID0gdGV4dHVyZUN1YmUoIGVudk1hcCwgdmVjMyggZmxpcEVudk1hcCAqIHJlZmxlY3RWZWMueCwgcmVmbGVjdFZlYy55eiApICk7XG5cdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKVxuXHRcdHZlYzQgZW52Q29sb3IgPSB0ZXh0dXJlQ3ViZVVWKCBlbnZNYXAsIHJlZmxlY3RWZWMsIDAuMCApO1xuXHQjZWxzZVxuXHRcdHZlYzQgZW52Q29sb3IgPSB2ZWM0KCAwLjAgKTtcblx0I2VuZGlmXG5cdCNpZm5kZWYgRU5WTUFQX1RZUEVfQ1VCRV9VVlxuXHRcdGVudkNvbG9yID0gZW52TWFwVGV4ZWxUb0xpbmVhciggZW52Q29sb3IgKTtcblx0I2VuZGlmXG5cdCNpZmRlZiBFTlZNQVBfQkxFTkRJTkdfTVVMVElQTFlcblx0XHRvdXRnb2luZ0xpZ2h0ID0gbWl4KCBvdXRnb2luZ0xpZ2h0LCBvdXRnb2luZ0xpZ2h0ICogZW52Q29sb3IueHl6LCBzcGVjdWxhclN0cmVuZ3RoICogcmVmbGVjdGl2aXR5ICk7XG5cdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9CTEVORElOR19NSVggKVxuXHRcdG91dGdvaW5nTGlnaHQgPSBtaXgoIG91dGdvaW5nTGlnaHQsIGVudkNvbG9yLnh5eiwgc3BlY3VsYXJTdHJlbmd0aCAqIHJlZmxlY3Rpdml0eSApO1xuXHQjZWxpZiBkZWZpbmVkKCBFTlZNQVBfQkxFTkRJTkdfQUREIClcblx0XHRvdXRnb2luZ0xpZ2h0ICs9IGVudkNvbG9yLnh5eiAqIHNwZWN1bGFyU3RyZW5ndGggKiByZWZsZWN0aXZpdHk7XG5cdCNlbmRpZlxuI2VuZGlmIixlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdHVuaWZvcm0gZmxvYXQgZW52TWFwSW50ZW5zaXR5O1xuXHR1bmlmb3JtIGZsb2F0IGZsaXBFbnZNYXA7XG5cdHVuaWZvcm0gaW50IG1heE1pcExldmVsO1xuXHQjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRVxuXHRcdHVuaWZvcm0gc2FtcGxlckN1YmUgZW52TWFwO1xuXHQjZWxzZVxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIGVudk1hcDtcblx0I2VuZGlmXG5cdFxuI2VuZGlmIixlbnZtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0dW5pZm9ybSBmbG9hdCByZWZsZWN0aXZpdHk7XG5cdCNpZiBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFVTRV9OT1JNQUxNQVAgKSB8fCBkZWZpbmVkKCBQSE9ORyApXG5cdFx0I2RlZmluZSBFTlZfV09STERQT1Ncblx0I2VuZGlmXG5cdCNpZmRlZiBFTlZfV09STERQT1Ncblx0XHR2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG5cdFx0dW5pZm9ybSBmbG9hdCByZWZyYWN0aW9uUmF0aW87XG5cdCNlbHNlXG5cdFx0dmFyeWluZyB2ZWMzIHZSZWZsZWN0O1xuXHQjZW5kaWZcbiNlbmRpZiIsZW52bWFwX3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX0VOVk1BUFxuXHQjaWYgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBVU0VfTk9STUFMTUFQICkgfHxkZWZpbmVkKCBQSE9ORyApXG5cdFx0I2RlZmluZSBFTlZfV09STERQT1Ncblx0I2VuZGlmXG5cdCNpZmRlZiBFTlZfV09STERQT1Ncblx0XHRcblx0XHR2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG5cdCNlbHNlXG5cdFx0dmFyeWluZyB2ZWMzIHZSZWZsZWN0O1xuXHRcdHVuaWZvcm0gZmxvYXQgcmVmcmFjdGlvblJhdGlvO1xuXHQjZW5kaWZcbiNlbmRpZiIsZW52bWFwX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQIClcblx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRlJBQ1RJT05cblx0XHR1bmlmb3JtIGZsb2F0IHJlZnJhY3Rpb25SYXRpbztcblx0I2VuZGlmXG5cdHZlYzMgZ2V0TGlnaHRQcm9iZUluZGlyZWN0SXJyYWRpYW5jZSggY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gaW50IG1heE1JUExldmVsICkge1xuXHRcdHZlYzMgd29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBnZW9tZXRyeS5ub3JtYWwsIHZpZXdNYXRyaXggKTtcblx0XHQjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRVxuXHRcdFx0dmVjMyBxdWVyeVZlYyA9IHZlYzMoIGZsaXBFbnZNYXAgKiB3b3JsZE5vcm1hbC54LCB3b3JsZE5vcm1hbC55eiApO1xuXHRcdFx0I2lmZGVmIFRFWFRVUkVfTE9EX0VYVFxuXHRcdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmVMb2RFWFQoIGVudk1hcCwgcXVlcnlWZWMsIGZsb2F0KCBtYXhNSVBMZXZlbCApICk7XG5cdFx0XHQjZWxzZVxuXHRcdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmUoIGVudk1hcCwgcXVlcnlWZWMsIGZsb2F0KCBtYXhNSVBMZXZlbCApICk7XG5cdFx0XHQjZW5kaWZcblx0XHRcdGVudk1hcENvbG9yLnJnYiA9IGVudk1hcFRleGVsVG9MaW5lYXIoIGVudk1hcENvbG9yICkucmdiO1xuXHRcdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKVxuXHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlVVYoIGVudk1hcCwgd29ybGROb3JtYWwsIDEuMCApO1xuXHRcdCNlbHNlXG5cdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdmVjNCggMC4wICk7XG5cdFx0I2VuZGlmXG5cdFx0cmV0dXJuIFBJICogZW52TWFwQ29sb3IucmdiICogZW52TWFwSW50ZW5zaXR5O1xuXHR9XG5cdGZsb2F0IGdldFNwZWN1bGFyTUlQTGV2ZWwoIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcywgY29uc3QgaW4gaW50IG1heE1JUExldmVsICkge1xuXHRcdGZsb2F0IG1heE1JUExldmVsU2NhbGFyID0gZmxvYXQoIG1heE1JUExldmVsICk7XG5cdFx0ZmxvYXQgc2lnbWEgPSBQSSAqIHJvdWdobmVzcyAqIHJvdWdobmVzcyAvICggMS4wICsgcm91Z2huZXNzICk7XG5cdFx0ZmxvYXQgZGVzaXJlZE1JUExldmVsID0gbWF4TUlQTGV2ZWxTY2FsYXIgKyBsb2cyKCBzaWdtYSApO1xuXHRcdHJldHVybiBjbGFtcCggZGVzaXJlZE1JUExldmVsLCAwLjAsIG1heE1JUExldmVsU2NhbGFyICk7XG5cdH1cblx0dmVjMyBnZXRMaWdodFByb2JlSW5kaXJlY3RSYWRpYW5jZSggY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiBpbnQgbWF4TUlQTGV2ZWwgKSB7XG5cdFx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRkxFQ1RJT05cblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZmxlY3QoIC12aWV3RGlyLCBub3JtYWwgKTtcblx0XHRcdHJlZmxlY3RWZWMgPSBub3JtYWxpemUoIG1peCggcmVmbGVjdFZlYywgbm9ybWFsLCByb3VnaG5lc3MgKiByb3VnaG5lc3MpICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZnJhY3QoIC12aWV3RGlyLCBub3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApO1xuXHRcdCNlbmRpZlxuXHRcdHJlZmxlY3RWZWMgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCByZWZsZWN0VmVjLCB2aWV3TWF0cml4ICk7XG5cdFx0ZmxvYXQgc3BlY3VsYXJNSVBMZXZlbCA9IGdldFNwZWN1bGFyTUlQTGV2ZWwoIHJvdWdobmVzcywgbWF4TUlQTGV2ZWwgKTtcblx0XHQjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRVxuXHRcdFx0dmVjMyBxdWVyeVJlZmxlY3RWZWMgPSB2ZWMzKCBmbGlwRW52TWFwICogcmVmbGVjdFZlYy54LCByZWZsZWN0VmVjLnl6ICk7XG5cdFx0XHQjaWZkZWYgVEVYVFVSRV9MT0RfRVhUXG5cdFx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZUxvZEVYVCggZW52TWFwLCBxdWVyeVJlZmxlY3RWZWMsIHNwZWN1bGFyTUlQTGV2ZWwgKTtcblx0XHRcdCNlbHNlXG5cdFx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZSggZW52TWFwLCBxdWVyeVJlZmxlY3RWZWMsIHNwZWN1bGFyTUlQTGV2ZWwgKTtcblx0XHRcdCNlbmRpZlxuXHRcdFx0ZW52TWFwQ29sb3IucmdiID0gZW52TWFwVGV4ZWxUb0xpbmVhciggZW52TWFwQ29sb3IgKS5yZ2I7XG5cdFx0I2VsaWYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApXG5cdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmVVViggZW52TWFwLCByZWZsZWN0VmVjLCByb3VnaG5lc3MgKTtcblx0XHQjZW5kaWZcblx0XHRyZXR1cm4gZW52TWFwQ29sb3IucmdiICogZW52TWFwSW50ZW5zaXR5O1xuXHR9XG4jZW5kaWYiLGVudm1hcF92ZXJ0ZXg6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdCNpZmRlZiBFTlZfV09STERQT1Ncblx0XHR2V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24ueHl6O1xuXHQjZWxzZVxuXHRcdHZlYzMgY2FtZXJhVG9WZXJ0ZXg7XG5cdFx0aWYgKCBpc09ydGhvZ3JhcGhpYyApIHtcblx0XHRcdGNhbWVyYVRvVmVydGV4ID0gbm9ybWFsaXplKCB2ZWMzKCAtIHZpZXdNYXRyaXhbIDAgXVsgMiBdLCAtIHZpZXdNYXRyaXhbIDEgXVsgMiBdLCAtIHZpZXdNYXRyaXhbIDIgXVsgMiBdICkgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y2FtZXJhVG9WZXJ0ZXggPSBub3JtYWxpemUoIHdvcmxkUG9zaXRpb24ueHl6IC0gY2FtZXJhUG9zaXRpb24gKTtcblx0XHR9XG5cdFx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIHRyYW5zZm9ybWVkTm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdFx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRkxFQ1RJT05cblx0XHRcdHZSZWZsZWN0ID0gcmVmbGVjdCggY2FtZXJhVG9WZXJ0ZXgsIHdvcmxkTm9ybWFsICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZSZWZsZWN0ID0gcmVmcmFjdCggY2FtZXJhVG9WZXJ0ZXgsIHdvcmxkTm9ybWFsLCByZWZyYWN0aW9uUmF0aW8gKTtcblx0XHQjZW5kaWZcblx0I2VuZGlmXG4jZW5kaWYiLGZvZ192ZXJ0ZXg6IiNpZmRlZiBVU0VfRk9HXG5cdGZvZ0RlcHRoID0gLSBtdlBvc2l0aW9uLno7XG4jZW5kaWYiLGZvZ19wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9GT0dcblx0dmFyeWluZyBmbG9hdCBmb2dEZXB0aDtcbiNlbmRpZiIsZm9nX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0ZPR1xuXHQjaWZkZWYgRk9HX0VYUDJcblx0XHRmbG9hdCBmb2dGYWN0b3IgPSAxLjAgLSBleHAoIC0gZm9nRGVuc2l0eSAqIGZvZ0RlbnNpdHkgKiBmb2dEZXB0aCAqIGZvZ0RlcHRoICk7XG5cdCNlbHNlXG5cdFx0ZmxvYXQgZm9nRmFjdG9yID0gc21vb3Roc3RlcCggZm9nTmVhciwgZm9nRmFyLCBmb2dEZXB0aCApO1xuXHQjZW5kaWZcblx0Z2xfRnJhZ0NvbG9yLnJnYiA9IG1peCggZ2xfRnJhZ0NvbG9yLnJnYiwgZm9nQ29sb3IsIGZvZ0ZhY3RvciApO1xuI2VuZGlmIixmb2dfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9GT0dcblx0dW5pZm9ybSB2ZWMzIGZvZ0NvbG9yO1xuXHR2YXJ5aW5nIGZsb2F0IGZvZ0RlcHRoO1xuXHQjaWZkZWYgRk9HX0VYUDJcblx0XHR1bmlmb3JtIGZsb2F0IGZvZ0RlbnNpdHk7XG5cdCNlbHNlXG5cdFx0dW5pZm9ybSBmbG9hdCBmb2dOZWFyO1xuXHRcdHVuaWZvcm0gZmxvYXQgZm9nRmFyO1xuXHQjZW5kaWZcbiNlbmRpZiIsZ3JhZGllbnRtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9HUkFESUVOVE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBncmFkaWVudE1hcDtcbiNlbmRpZlxudmVjMyBnZXRHcmFkaWVudElycmFkaWFuY2UoIHZlYzMgbm9ybWFsLCB2ZWMzIGxpZ2h0RGlyZWN0aW9uICkge1xuXHRmbG9hdCBkb3ROTCA9IGRvdCggbm9ybWFsLCBsaWdodERpcmVjdGlvbiApO1xuXHR2ZWMyIGNvb3JkID0gdmVjMiggZG90TkwgKiAwLjUgKyAwLjUsIDAuMCApO1xuXHQjaWZkZWYgVVNFX0dSQURJRU5UTUFQXG5cdFx0cmV0dXJuIHRleHR1cmUyRCggZ3JhZGllbnRNYXAsIGNvb3JkICkucmdiO1xuXHQjZWxzZVxuXHRcdHJldHVybiAoIGNvb3JkLnggPCAwLjcgKSA/IHZlYzMoIDAuNyApIDogdmVjMyggMS4wICk7XG5cdCNlbmRpZlxufSIsbGlnaHRtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTElHSFRNQVBcblx0dmVjNCBsaWdodE1hcFRleGVsPSB0ZXh0dXJlMkQoIGxpZ2h0TWFwLCB2VXYyICk7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBQSSAqIGxpZ2h0TWFwVGV4ZWxUb0xpbmVhciggbGlnaHRNYXBUZXhlbCApLnJnYiAqIGxpZ2h0TWFwSW50ZW5zaXR5O1xuI2VuZGlmIixsaWdodG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0xJR0hUTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGxpZ2h0TWFwO1xuXHR1bmlmb3JtIGZsb2F0IGxpZ2h0TWFwSW50ZW5zaXR5O1xuI2VuZGlmIixsaWdodHNfbGFtYmVydF92ZXJ0ZXg6InZlYzMgZGlmZnVzZSA9IHZlYzMoIDEuMCApO1xuR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeTtcbmdlb21ldHJ5LnBvc2l0aW9uID0gbXZQb3NpdGlvbi54eXo7XG5nZW9tZXRyeS5ub3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG5nZW9tZXRyeS52aWV3RGlyID0gKCBpc09ydGhvZ3JhcGhpYyApID8gdmVjMyggMCwgMCwgMSApIDogbm9ybWFsaXplKCAtbXZQb3NpdGlvbi54eXogKTtcbkdlb21ldHJpY0NvbnRleHQgYmFja0dlb21ldHJ5O1xuYmFja0dlb21ldHJ5LnBvc2l0aW9uID0gZ2VvbWV0cnkucG9zaXRpb247XG5iYWNrR2VvbWV0cnkubm9ybWFsID0gLWdlb21ldHJ5Lm5vcm1hbDtcbmJhY2tHZW9tZXRyeS52aWV3RGlyID0gZ2VvbWV0cnkudmlld0RpcjtcbnZMaWdodEZyb250ID0gdmVjMyggMC4wICk7XG52SW5kaXJlY3RGcm9udCA9IHZlYzMoIDAuMCApO1xuI2lmZGVmIERPVUJMRV9TSURFRFxuXHR2TGlnaHRCYWNrID0gdmVjMyggMC4wICk7XG5cdHZJbmRpcmVjdEJhY2sgPSB2ZWMzKCAwLjAgKTtcbiNlbmRpZlxuSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodDtcbmZsb2F0IGRvdE5MO1xudmVjMyBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG52SW5kaXJlY3RGcm9udCArPSBnZXRBbWJpZW50TGlnaHRJcnJhZGlhbmNlKCBhbWJpZW50TGlnaHRDb2xvciApO1xudkluZGlyZWN0RnJvbnQgKz0gZ2V0TGlnaHRQcm9iZUlycmFkaWFuY2UoIGxpZ2h0UHJvYmUsIGdlb21ldHJ5ICk7XG4jaWZkZWYgRE9VQkxFX1NJREVEXG5cdHZJbmRpcmVjdEJhY2sgKz0gZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggYW1iaWVudExpZ2h0Q29sb3IgKTtcblx0dkluZGlyZWN0QmFjayArPSBnZXRMaWdodFByb2JlSXJyYWRpYW5jZSggbGlnaHRQcm9iZSwgYmFja0dlb21ldHJ5ICk7XG4jZW5kaWZcbiNpZiBOVU1fUE9JTlRfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0Z2V0UG9pbnREaXJlY3RMaWdodElycmFkaWFuY2UoIHBvaW50TGlnaHRzWyBpIF0sIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdGRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZSA9IFBJICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdFx0dkxpZ2h0RnJvbnQgKz0gc2F0dXJhdGUoIGRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdFx0dkxpZ2h0QmFjayArPSBzYXR1cmF0ZSggLWRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2VuZGlmXG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmIE5VTV9TUE9UX0xJR0hUUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0Z2V0U3BvdERpcmVjdExpZ2h0SXJyYWRpYW5jZSggc3BvdExpZ2h0c1sgaSBdLCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHRkb3ROTCA9IGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKTtcblx0XHRkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2UgPSBQSSAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHRcdHZMaWdodEZyb250ICs9IHNhdHVyYXRlKCBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHZMaWdodEJhY2sgKz0gc2F0dXJhdGUoIC1kb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNlbmRpZlxuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiBOVU1fRElSX0xJR0hUUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUUzsgaSArKyApIHtcblx0XHRnZXREaXJlY3Rpb25hbERpcmVjdExpZ2h0SXJyYWRpYW5jZSggZGlyZWN0aW9uYWxMaWdodHNbIGkgXSwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0ZG90TkwgPSBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICk7XG5cdFx0ZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlID0gUEkgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0XHR2TGlnaHRGcm9udCArPSBzYXR1cmF0ZSggZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0XHR2TGlnaHRCYWNrICs9IHNhdHVyYXRlKCAtZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjZW5kaWZcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgTlVNX0hFTUlfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9IRU1JX0xJR0hUUzsgaSArKyApIHtcblx0XHR2SW5kaXJlY3RGcm9udCArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGdlb21ldHJ5ICk7XG5cdFx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdFx0dkluZGlyZWN0QmFjayArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGJhY2tHZW9tZXRyeSApO1xuXHRcdCNlbmRpZlxuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWYiLGxpZ2h0c19wYXJzX2JlZ2luOiJ1bmlmb3JtIGJvb2wgcmVjZWl2ZVNoYWRvdztcbnVuaWZvcm0gdmVjMyBhbWJpZW50TGlnaHRDb2xvcjtcbnVuaWZvcm0gdmVjMyBsaWdodFByb2JlWyA5IF07XG52ZWMzIHNoR2V0SXJyYWRpYW5jZUF0KCBpbiB2ZWMzIG5vcm1hbCwgaW4gdmVjMyBzaENvZWZmaWNpZW50c1sgOSBdICkge1xuXHRmbG9hdCB4ID0gbm9ybWFsLngsIHkgPSBub3JtYWwueSwgeiA9IG5vcm1hbC56O1xuXHR2ZWMzIHJlc3VsdCA9IHNoQ29lZmZpY2llbnRzWyAwIF0gKiAwLjg4NjIyNztcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyAxIF0gKiAyLjAgKiAwLjUxMTY2NCAqIHk7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgMiBdICogMi4wICogMC41MTE2NjQgKiB6O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDMgXSAqIDIuMCAqIDAuNTExNjY0ICogeDtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA0IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHggKiB5O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDUgXSAqIDIuMCAqIDAuNDI5MDQzICogeSAqIHo7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgNiBdICogKCAwLjc0MzEyNSAqIHogKiB6IC0gMC4yNDc3MDggKTtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA3IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHggKiB6O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDggXSAqIDAuNDI5MDQzICogKCB4ICogeCAtIHkgKiB5ICk7XG5cdHJldHVybiByZXN1bHQ7XG59XG52ZWMzIGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIGxpZ2h0UHJvYmVbIDkgXSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSApIHtcblx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIGdlb21ldHJ5Lm5vcm1hbCwgdmlld01hdHJpeCApO1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBzaEdldElycmFkaWFuY2VBdCggd29ybGROb3JtYWwsIGxpZ2h0UHJvYmUgKTtcblx0cmV0dXJuIGlycmFkaWFuY2U7XG59XG52ZWMzIGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIHZlYzMgYW1iaWVudExpZ2h0Q29sb3IgKSB7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGFtYmllbnRMaWdodENvbG9yO1xuXHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRpcnJhZGlhbmNlICo9IFBJO1xuXHQjZW5kaWZcblx0cmV0dXJuIGlycmFkaWFuY2U7XG59XG4jaWYgTlVNX0RJUl9MSUdIVFMgPiAwXG5cdHN0cnVjdCBEaXJlY3Rpb25hbExpZ2h0IHtcblx0XHR2ZWMzIGRpcmVjdGlvbjtcblx0XHR2ZWMzIGNvbG9yO1xuXHR9O1xuXHR1bmlmb3JtIERpcmVjdGlvbmFsTGlnaHQgZGlyZWN0aW9uYWxMaWdodHNbIE5VTV9ESVJfTElHSFRTIF07XG5cdHZvaWQgZ2V0RGlyZWN0aW9uYWxEaXJlY3RMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIERpcmVjdGlvbmFsTGlnaHQgZGlyZWN0aW9uYWxMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgb3V0IEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQgKSB7XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgPSBkaXJlY3Rpb25hbExpZ2h0LmNvbG9yO1xuXHRcdGRpcmVjdExpZ2h0LmRpcmVjdGlvbiA9IGRpcmVjdGlvbmFsTGlnaHQuZGlyZWN0aW9uO1xuXHRcdGRpcmVjdExpZ2h0LnZpc2libGUgPSB0cnVlO1xuXHR9XG4jZW5kaWZcbiNpZiBOVU1fUE9JTlRfTElHSFRTID4gMFxuXHRzdHJ1Y3QgUG9pbnRMaWdodCB7XG5cdFx0dmVjMyBwb3NpdGlvbjtcblx0XHR2ZWMzIGNvbG9yO1xuXHRcdGZsb2F0IGRpc3RhbmNlO1xuXHRcdGZsb2F0IGRlY2F5O1xuXHR9O1xuXHR1bmlmb3JtIFBvaW50TGlnaHQgcG9pbnRMaWdodHNbIE5VTV9QT0lOVF9MSUdIVFMgXTtcblx0dm9pZCBnZXRQb2ludERpcmVjdExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gUG9pbnRMaWdodCBwb2ludExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBvdXQgSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCApIHtcblx0XHR2ZWMzIGxWZWN0b3IgPSBwb2ludExpZ2h0LnBvc2l0aW9uIC0gZ2VvbWV0cnkucG9zaXRpb247XG5cdFx0ZGlyZWN0TGlnaHQuZGlyZWN0aW9uID0gbm9ybWFsaXplKCBsVmVjdG9yICk7XG5cdFx0ZmxvYXQgbGlnaHREaXN0YW5jZSA9IGxlbmd0aCggbFZlY3RvciApO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yID0gcG9pbnRMaWdodC5jb2xvcjtcblx0XHRkaXJlY3RMaWdodC5jb2xvciAqPSBwdW5jdHVhbExpZ2h0SW50ZW5zaXR5VG9JcnJhZGlhbmNlRmFjdG9yKCBsaWdodERpc3RhbmNlLCBwb2ludExpZ2h0LmRpc3RhbmNlLCBwb2ludExpZ2h0LmRlY2F5ICk7XG5cdFx0ZGlyZWN0TGlnaHQudmlzaWJsZSA9ICggZGlyZWN0TGlnaHQuY29sb3IgIT0gdmVjMyggMC4wICkgKTtcblx0fVxuI2VuZGlmXG4jaWYgTlVNX1NQT1RfTElHSFRTID4gMFxuXHRzdHJ1Y3QgU3BvdExpZ2h0IHtcblx0XHR2ZWMzIHBvc2l0aW9uO1xuXHRcdHZlYzMgZGlyZWN0aW9uO1xuXHRcdHZlYzMgY29sb3I7XG5cdFx0ZmxvYXQgZGlzdGFuY2U7XG5cdFx0ZmxvYXQgZGVjYXk7XG5cdFx0ZmxvYXQgY29uZUNvcztcblx0XHRmbG9hdCBwZW51bWJyYUNvcztcblx0fTtcblx0dW5pZm9ybSBTcG90TGlnaHQgc3BvdExpZ2h0c1sgTlVNX1NQT1RfTElHSFRTIF07XG5cdHZvaWQgZ2V0U3BvdERpcmVjdExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gU3BvdExpZ2h0IHNwb3RMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgb3V0IEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQgKSB7XG5cdFx0dmVjMyBsVmVjdG9yID0gc3BvdExpZ2h0LnBvc2l0aW9uIC0gZ2VvbWV0cnkucG9zaXRpb247XG5cdFx0ZGlyZWN0TGlnaHQuZGlyZWN0aW9uID0gbm9ybWFsaXplKCBsVmVjdG9yICk7XG5cdFx0ZmxvYXQgbGlnaHREaXN0YW5jZSA9IGxlbmd0aCggbFZlY3RvciApO1xuXHRcdGZsb2F0IGFuZ2xlQ29zID0gZG90KCBkaXJlY3RMaWdodC5kaXJlY3Rpb24sIHNwb3RMaWdodC5kaXJlY3Rpb24gKTtcblx0XHRpZiAoIGFuZ2xlQ29zID4gc3BvdExpZ2h0LmNvbmVDb3MgKSB7XG5cdFx0XHRmbG9hdCBzcG90RWZmZWN0ID0gc21vb3Roc3RlcCggc3BvdExpZ2h0LmNvbmVDb3MsIHNwb3RMaWdodC5wZW51bWJyYUNvcywgYW5nbGVDb3MgKTtcblx0XHRcdGRpcmVjdExpZ2h0LmNvbG9yID0gc3BvdExpZ2h0LmNvbG9yO1xuXHRcdFx0ZGlyZWN0TGlnaHQuY29sb3IgKj0gc3BvdEVmZmVjdCAqIHB1bmN0dWFsTGlnaHRJbnRlbnNpdHlUb0lycmFkaWFuY2VGYWN0b3IoIGxpZ2h0RGlzdGFuY2UsIHNwb3RMaWdodC5kaXN0YW5jZSwgc3BvdExpZ2h0LmRlY2F5ICk7XG5cdFx0XHRkaXJlY3RMaWdodC52aXNpYmxlID0gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGlyZWN0TGlnaHQuY29sb3IgPSB2ZWMzKCAwLjAgKTtcblx0XHRcdGRpcmVjdExpZ2h0LnZpc2libGUgPSBmYWxzZTtcblx0XHR9XG5cdH1cbiNlbmRpZlxuI2lmIE5VTV9SRUNUX0FSRUFfTElHSFRTID4gMFxuXHRzdHJ1Y3QgUmVjdEFyZWFMaWdodCB7XG5cdFx0dmVjMyBjb2xvcjtcblx0XHR2ZWMzIHBvc2l0aW9uO1xuXHRcdHZlYzMgaGFsZldpZHRoO1xuXHRcdHZlYzMgaGFsZkhlaWdodDtcblx0fTtcblx0dW5pZm9ybSBzYW1wbGVyMkQgbHRjXzE7XHR1bmlmb3JtIHNhbXBsZXIyRCBsdGNfMjtcblx0dW5pZm9ybSBSZWN0QXJlYUxpZ2h0IHJlY3RBcmVhTGlnaHRzWyBOVU1fUkVDVF9BUkVBX0xJR0hUUyBdO1xuI2VuZGlmXG4jaWYgTlVNX0hFTUlfTElHSFRTID4gMFxuXHRzdHJ1Y3QgSGVtaXNwaGVyZUxpZ2h0IHtcblx0XHR2ZWMzIGRpcmVjdGlvbjtcblx0XHR2ZWMzIHNreUNvbG9yO1xuXHRcdHZlYzMgZ3JvdW5kQ29sb3I7XG5cdH07XG5cdHVuaWZvcm0gSGVtaXNwaGVyZUxpZ2h0IGhlbWlzcGhlcmVMaWdodHNbIE5VTV9IRU1JX0xJR0hUUyBdO1xuXHR2ZWMzIGdldEhlbWlzcGhlcmVMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIEhlbWlzcGhlcmVMaWdodCBoZW1pTGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnkgKSB7XG5cdFx0ZmxvYXQgZG90TkwgPSBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgaGVtaUxpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGZsb2F0IGhlbWlEaWZmdXNlV2VpZ2h0ID0gMC41ICogZG90TkwgKyAwLjU7XG5cdFx0dmVjMyBpcnJhZGlhbmNlID0gbWl4KCBoZW1pTGlnaHQuZ3JvdW5kQ29sb3IsIGhlbWlMaWdodC5za3lDb2xvciwgaGVtaURpZmZ1c2VXZWlnaHQgKTtcblx0XHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRcdGlycmFkaWFuY2UgKj0gUEk7XG5cdFx0I2VuZGlmXG5cdFx0cmV0dXJuIGlycmFkaWFuY2U7XG5cdH1cbiNlbmRpZiIsbGlnaHRzX3Rvb25fZnJhZ21lbnQ6IlRvb25NYXRlcmlhbCBtYXRlcmlhbDtcbm1hdGVyaWFsLmRpZmZ1c2VDb2xvciA9IGRpZmZ1c2VDb2xvci5yZ2I7IixsaWdodHNfdG9vbl9wYXJzX2ZyYWdtZW50OiJ2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbnN0cnVjdCBUb29uTWF0ZXJpYWwge1xuXHR2ZWMzIGRpZmZ1c2VDb2xvcjtcbn07XG52b2lkIFJFX0RpcmVjdF9Ub29uKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBUb29uTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBnZXRHcmFkaWVudElycmFkaWFuY2UoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0aXJyYWRpYW5jZSAqPSBQSTtcblx0I2VuZGlmXG5cdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcbn1cbnZvaWQgUkVfSW5kaXJlY3REaWZmdXNlX1Rvb24oIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gVG9vbk1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X1Rvb25cbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9Ub29uXG4jZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsIClcdCgwKSIsbGlnaHRzX3Bob25nX2ZyYWdtZW50OiJCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWw7XG5tYXRlcmlhbC5kaWZmdXNlQ29sb3IgPSBkaWZmdXNlQ29sb3IucmdiO1xubWF0ZXJpYWwuc3BlY3VsYXJDb2xvciA9IHNwZWN1bGFyO1xubWF0ZXJpYWwuc3BlY3VsYXJTaGluaW5lc3MgPSBzaGluaW5lc3M7XG5tYXRlcmlhbC5zcGVjdWxhclN0cmVuZ3RoID0gc3BlY3VsYXJTdHJlbmd0aDsiLGxpZ2h0c19waG9uZ19wYXJzX2ZyYWdtZW50OiJ2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbnN0cnVjdCBCbGlublBob25nTWF0ZXJpYWwge1xuXHR2ZWMzIGRpZmZ1c2VDb2xvcjtcblx0dmVjMyBzcGVjdWxhckNvbG9yO1xuXHRmbG9hdCBzcGVjdWxhclNoaW5pbmVzcztcblx0ZmxvYXQgc3BlY3VsYXJTdHJlbmd0aDtcbn07XG52b2lkIFJFX0RpcmVjdF9CbGlublBob25nKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRmbG9hdCBkb3ROTCA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKTtcblx0dmVjMyBpcnJhZGlhbmNlID0gZG90TkwgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0aXJyYWRpYW5jZSAqPSBQSTtcblx0I2VuZGlmXG5cdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gaXJyYWRpYW5jZSAqIEJSREZfU3BlY3VsYXJfQmxpbm5QaG9uZyggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhclNoaW5pbmVzcyApICogbWF0ZXJpYWwuc3BlY3VsYXJTdHJlbmd0aDtcbn1cbnZvaWQgUkVfSW5kaXJlY3REaWZmdXNlX0JsaW5uUGhvbmcoIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gQmxpbm5QaG9uZ01hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X0JsaW5uUGhvbmdcbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9CbGlublBob25nXG4jZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsIClcdCgwKSIsbGlnaHRzX3BoeXNpY2FsX2ZyYWdtZW50OiJQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsO1xubWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYiAqICggMS4wIC0gbWV0YWxuZXNzRmFjdG9yICk7XG52ZWMzIGR4eSA9IG1heCggYWJzKCBkRmR4KCBnZW9tZXRyeU5vcm1hbCApICksIGFicyggZEZkeSggZ2VvbWV0cnlOb3JtYWwgKSApICk7XG5mbG9hdCBnZW9tZXRyeVJvdWdobmVzcyA9IG1heCggbWF4KCBkeHkueCwgZHh5LnkgKSwgZHh5LnogKTtcbm1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzID0gbWF4KCByb3VnaG5lc3NGYWN0b3IsIDAuMDUyNSApO21hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzICs9IGdlb21ldHJ5Um91Z2huZXNzO1xubWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MgPSBtaW4oIG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzLCAxLjAgKTtcbiNpZmRlZiBSRUZMRUNUSVZJVFlcblx0I2lmZGVmIFNQRUNVTEFSXG5cdFx0dmVjMyBzcGVjdWxhckludGVuc2l0eUZhY3RvciA9IHZlYzMoIHNwZWN1bGFySW50ZW5zaXR5ICk7XG5cdFx0dmVjMyBzcGVjdWxhclRpbnRGYWN0b3IgPSBzcGVjdWxhclRpbnQ7XG5cdFx0I2lmZGVmIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUFxuXHRcdFx0c3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgKj0gdGV4dHVyZTJEKCBzcGVjdWxhckludGVuc2l0eU1hcCwgdlV2ICkuYTtcblx0XHQjZW5kaWZcblx0XHQjaWZkZWYgVVNFX1NQRUNVTEFSVElOVE1BUFxuXHRcdFx0c3BlY3VsYXJUaW50RmFjdG9yICo9IHNwZWN1bGFyVGludE1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCggc3BlY3VsYXJUaW50TWFwLCB2VXYgKSApLnJnYjtcblx0XHQjZW5kaWZcblx0XHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yRjkwID0gbWl4KCBzcGVjdWxhckludGVuc2l0eUZhY3RvciwgdmVjMyggMS4wICksIG1ldGFsbmVzc0ZhY3RvciApO1xuXHQjZWxzZVxuXHRcdHZlYzMgc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgPSB2ZWMzKCAxLjAgKTtcblx0XHR2ZWMzIHNwZWN1bGFyVGludEZhY3RvciA9IHZlYzMoIDEuMCApO1xuXHRcdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3JGOTAgPSB2ZWMzKCAxLjAgKTtcblx0I2VuZGlmXG5cdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgPSBtaXgoIG1pbiggdmVjMyggTUFYSU1VTV9TUEVDVUxBUl9DT0VGRklDSUVOVCAqIHBvdzIoIHJlZmxlY3Rpdml0eSApICkgKiBzcGVjdWxhclRpbnRGYWN0b3IsIHZlYzMoIDEuMCApICkgKiBzcGVjdWxhckludGVuc2l0eUZhY3RvciwgZGlmZnVzZUNvbG9yLnJnYiwgbWV0YWxuZXNzRmFjdG9yICk7XG4jZWxzZVxuXHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yID0gbWl4KCB2ZWMzKCBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UICksIGRpZmZ1c2VDb2xvci5yZ2IsIG1ldGFsbmVzc0ZhY3RvciApO1xuXHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yRjkwID0gdmVjMyggMS4wICk7XG4jZW5kaWZcbiNpZmRlZiBDTEVBUkNPQVRcblx0bWF0ZXJpYWwuY2xlYXJjb2F0ID0gY2xlYXJjb2F0O1xuXHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgPSBjbGVhcmNvYXRSb3VnaG5lc3M7XG5cdCNpZmRlZiBVU0VfQ0xFQVJDT0FUTUFQXG5cdFx0bWF0ZXJpYWwuY2xlYXJjb2F0ICo9IHRleHR1cmUyRCggY2xlYXJjb2F0TWFwLCB2VXYgKS54O1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9DTEVBUkNPQVRfUk9VR0hORVNTTUFQXG5cdFx0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzICo9IHRleHR1cmUyRCggY2xlYXJjb2F0Um91Z2huZXNzTWFwLCB2VXYgKS55O1xuXHQjZW5kaWZcblx0bWF0ZXJpYWwuY2xlYXJjb2F0ID0gc2F0dXJhdGUoIG1hdGVyaWFsLmNsZWFyY29hdCApO1x0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzID0gbWF4KCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIDAuMDUyNSApO1xuXHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKz0gZ2VvbWV0cnlSb3VnaG5lc3M7XG5cdG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyA9IG1pbiggbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzLCAxLjAgKTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9TSEVFTlxuXHRtYXRlcmlhbC5zaGVlbkNvbG9yID0gc2hlZW47XG4jZW5kaWYiLGxpZ2h0c19waHlzaWNhbF9wYXJzX2ZyYWdtZW50OiJzdHJ1Y3QgUGh5c2ljYWxNYXRlcmlhbCB7XG5cdHZlYzMgZGlmZnVzZUNvbG9yO1xuXHRmbG9hdCBzcGVjdWxhclJvdWdobmVzcztcblx0dmVjMyBzcGVjdWxhckNvbG9yO1xuXHR2ZWMzIHNwZWN1bGFyQ29sb3JGOTA7XG4jaWZkZWYgQ0xFQVJDT0FUXG5cdGZsb2F0IGNsZWFyY29hdDtcblx0ZmxvYXQgY2xlYXJjb2F0Um91Z2huZXNzO1xuI2VuZGlmXG4jaWZkZWYgVVNFX1NIRUVOXG5cdHZlYzMgc2hlZW5Db2xvcjtcbiNlbmRpZlxufTtcbiNkZWZpbmUgTUFYSU1VTV9TUEVDVUxBUl9DT0VGRklDSUVOVCAwLjE2XG4jZGVmaW5lIERFRkFVTFRfU1BFQ1VMQVJfQ09FRkZJQ0lFTlQgMC4wNFxuZmxvYXQgY2xlYXJjb2F0REhSQXBwcm94KCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIGZsb2F0IGRvdE5MICkge1xuXHRyZXR1cm4gREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCArICggMS4wIC0gREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCApICogKCBwb3coIDEuMCAtIGRvdE5MLCA1LjAgKSAqIHBvdyggMS4wIC0gcm91Z2huZXNzLCAyLjAgKSApO1xufVxuI2lmIE5VTV9SRUNUX0FSRUFfTElHSFRTID4gMFxuXHR2b2lkIFJFX0RpcmVjdF9SZWN0QXJlYV9QaHlzaWNhbCggY29uc3QgaW4gUmVjdEFyZWFMaWdodCByZWN0QXJlYUxpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0XHR2ZWMzIG5vcm1hbCA9IGdlb21ldHJ5Lm5vcm1hbDtcblx0XHR2ZWMzIHZpZXdEaXIgPSBnZW9tZXRyeS52aWV3RGlyO1xuXHRcdHZlYzMgcG9zaXRpb24gPSBnZW9tZXRyeS5wb3NpdGlvbjtcblx0XHR2ZWMzIGxpZ2h0UG9zID0gcmVjdEFyZWFMaWdodC5wb3NpdGlvbjtcblx0XHR2ZWMzIGhhbGZXaWR0aCA9IHJlY3RBcmVhTGlnaHQuaGFsZldpZHRoO1xuXHRcdHZlYzMgaGFsZkhlaWdodCA9IHJlY3RBcmVhTGlnaHQuaGFsZkhlaWdodDtcblx0XHR2ZWMzIGxpZ2h0Q29sb3IgPSByZWN0QXJlYUxpZ2h0LmNvbG9yO1xuXHRcdGZsb2F0IHJvdWdobmVzcyA9IG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzO1xuXHRcdHZlYzMgcmVjdENvb3Jkc1sgNCBdO1xuXHRcdHJlY3RDb29yZHNbIDAgXSA9IGxpZ2h0UG9zICsgaGFsZldpZHRoIC0gaGFsZkhlaWdodDtcdFx0cmVjdENvb3Jkc1sgMSBdID0gbGlnaHRQb3MgLSBoYWxmV2lkdGggLSBoYWxmSGVpZ2h0O1xuXHRcdHJlY3RDb29yZHNbIDIgXSA9IGxpZ2h0UG9zIC0gaGFsZldpZHRoICsgaGFsZkhlaWdodDtcblx0XHRyZWN0Q29vcmRzWyAzIF0gPSBsaWdodFBvcyArIGhhbGZXaWR0aCArIGhhbGZIZWlnaHQ7XG5cdFx0dmVjMiB1diA9IExUQ19Vdiggbm9ybWFsLCB2aWV3RGlyLCByb3VnaG5lc3MgKTtcblx0XHR2ZWM0IHQxID0gdGV4dHVyZTJEKCBsdGNfMSwgdXYgKTtcblx0XHR2ZWM0IHQyID0gdGV4dHVyZTJEKCBsdGNfMiwgdXYgKTtcblx0XHRtYXQzIG1JbnYgPSBtYXQzKFxuXHRcdFx0dmVjMyggdDEueCwgMCwgdDEueSApLFxuXHRcdFx0dmVjMyggICAgMCwgMSwgICAgMCApLFxuXHRcdFx0dmVjMyggdDEueiwgMCwgdDEudyApXG5cdFx0KTtcblx0XHR2ZWMzIGZyZXNuZWwgPSAoIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgKiB0Mi54ICsgKCB2ZWMzKCAxLjAgKSAtIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgKSAqIHQyLnkgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBsaWdodENvbG9yICogZnJlc25lbCAqIExUQ19FdmFsdWF0ZSggbm9ybWFsLCB2aWV3RGlyLCBwb3NpdGlvbiwgbUludiwgcmVjdENvb3JkcyApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gbGlnaHRDb2xvciAqIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciAqIExUQ19FdmFsdWF0ZSggbm9ybWFsLCB2aWV3RGlyLCBwb3NpdGlvbiwgbWF0MyggMS4wICksIHJlY3RDb29yZHMgKTtcblx0fVxuI2VuZGlmXG52b2lkIFJFX0RpcmVjdF9QaHlzaWNhbCggY29uc3QgaW4gSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdGZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSApO1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBkb3ROTCAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRpcnJhZGlhbmNlICo9IFBJO1xuXHQjZW5kaWZcblx0I2lmZGVmIENMRUFSQ09BVFxuXHRcdGZsb2F0IGNjRG90TkwgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApICk7XG5cdFx0dmVjMyBjY0lycmFkaWFuY2UgPSBjY0RvdE5MICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdFx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0XHRjY0lycmFkaWFuY2UgKj0gUEk7XG5cdFx0I2VuZGlmXG5cdFx0ZmxvYXQgY2xlYXJjb2F0REhSID0gbWF0ZXJpYWwuY2xlYXJjb2F0ICogY2xlYXJjb2F0REhSQXBwcm94KCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIGNjRG90TkwgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBjY0lycmFkaWFuY2UgKiBtYXRlcmlhbC5jbGVhcmNvYXQgKiBCUkRGX1NwZWN1bGFyX0dHWCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgdmVjMyggREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCApLCB2ZWMzKCAxLjAgKSwgbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzICk7XG5cdCNlbHNlXG5cdFx0ZmxvYXQgY2xlYXJjb2F0REhSID0gMC4wO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9TSEVFTlxuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9ICggMS4wIC0gY2xlYXJjb2F0REhSICkgKiBpcnJhZGlhbmNlICogQlJERl9TcGVjdWxhcl9TaGVlbihcblx0XHRcdG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzLFxuXHRcdFx0ZGlyZWN0TGlnaHQuZGlyZWN0aW9uLFxuXHRcdFx0Z2VvbWV0cnksXG5cdFx0XHRtYXRlcmlhbC5zaGVlbkNvbG9yXG5cdFx0KTtcblx0I2Vsc2Vcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSAoIDEuMCAtIGNsZWFyY29hdERIUiApICogaXJyYWRpYW5jZSAqIEJSREZfU3BlY3VsYXJfR0dYKCBkaXJlY3RMaWdodCwgZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkubm9ybWFsLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yRjkwLCBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcyk7XG5cdCNlbmRpZlxuXHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICs9ICggMS4wIC0gY2xlYXJjb2F0REhSICkgKiBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxudm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfUGh5c2ljYWwoIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxudm9pZCBSRV9JbmRpcmVjdFNwZWN1bGFyX1BoeXNpY2FsKCBjb25zdCBpbiB2ZWMzIHJhZGlhbmNlLCBjb25zdCBpbiB2ZWMzIGlycmFkaWFuY2UsIGNvbnN0IGluIHZlYzMgY2xlYXJjb2F0UmFkaWFuY2UsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0KSB7XG5cdCNpZmRlZiBDTEVBUkNPQVRcblx0XHRmbG9hdCBjY0RvdE5WID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyICkgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICs9IGNsZWFyY29hdFJhZGlhbmNlICogbWF0ZXJpYWwuY2xlYXJjb2F0ICogQlJERl9TcGVjdWxhcl9HR1hfRW52aXJvbm1lbnQoIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgdmVjMyggREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCApLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKTtcblx0XHRmbG9hdCBjY0RvdE5MID0gY2NEb3ROVjtcblx0XHRmbG9hdCBjbGVhcmNvYXRESFIgPSBtYXRlcmlhbC5jbGVhcmNvYXQgKiBjbGVhcmNvYXRESFJBcHByb3goIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgY2NEb3ROTCApO1xuXHQjZWxzZVxuXHRcdGZsb2F0IGNsZWFyY29hdERIUiA9IDAuMDtcblx0I2VuZGlmXG5cdGZsb2F0IGNsZWFyY29hdEludiA9IDEuMCAtIGNsZWFyY29hdERIUjtcblx0dmVjMyBzaW5nbGVTY2F0dGVyaW5nID0gdmVjMyggMC4wICk7XG5cdHZlYzMgbXVsdGlTY2F0dGVyaW5nID0gdmVjMyggMC4wICk7XG5cdHZlYzMgY29zaW5lV2VpZ2h0ZWRJcnJhZGlhbmNlID0gaXJyYWRpYW5jZSAqIFJFQ0lQUk9DQUxfUEk7XG5cdEJSREZfU3BlY3VsYXJfTXVsdGlzY2F0dGVyaW5nX0Vudmlyb25tZW50KCBnZW9tZXRyeSwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MsIHNpbmdsZVNjYXR0ZXJpbmcsIG11bHRpU2NhdHRlcmluZyApO1xuXHR2ZWMzIGRpZmZ1c2UgPSBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKiAoIDEuMCAtICggc2luZ2xlU2NhdHRlcmluZyArIG11bHRpU2NhdHRlcmluZyApICk7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKz0gY2xlYXJjb2F0SW52ICogcmFkaWFuY2UgKiBzaW5nbGVTY2F0dGVyaW5nO1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICs9IG11bHRpU2NhdHRlcmluZyAqIGNvc2luZVdlaWdodGVkSXJyYWRpYW5jZTtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGRpZmZ1c2UgKiBjb3NpbmVXZWlnaHRlZElycmFkaWFuY2U7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X1BoeXNpY2FsXG4jZGVmaW5lIFJFX0RpcmVjdF9SZWN0QXJlYVx0XHRSRV9EaXJlY3RfUmVjdEFyZWFfUGh5c2ljYWxcbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9QaHlzaWNhbFxuI2RlZmluZSBSRV9JbmRpcmVjdFNwZWN1bGFyXHRcdFJFX0luZGlyZWN0U3BlY3VsYXJfUGh5c2ljYWxcbmZsb2F0IGNvbXB1dGVTcGVjdWxhck9jY2x1c2lvbiggY29uc3QgaW4gZmxvYXQgZG90TlYsIGNvbnN0IGluIGZsb2F0IGFtYmllbnRPY2NsdXNpb24sIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0cmV0dXJuIHNhdHVyYXRlKCBwb3coIGRvdE5WICsgYW1iaWVudE9jY2x1c2lvbiwgZXhwMiggLSAxNi4wICogcm91Z2huZXNzIC0gMS4wICkgKSAtIDEuMCArIGFtYmllbnRPY2NsdXNpb24gKTtcbn0iLGxpZ2h0c19mcmFnbWVudF9iZWdpbjoiXG5HZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5O1xuZ2VvbWV0cnkucG9zaXRpb24gPSAtIHZWaWV3UG9zaXRpb247XG5nZW9tZXRyeS5ub3JtYWwgPSBub3JtYWw7XG5nZW9tZXRyeS52aWV3RGlyID0gKCBpc09ydGhvZ3JhcGhpYyApID8gdmVjMyggMCwgMCwgMSApIDogbm9ybWFsaXplKCB2Vmlld1Bvc2l0aW9uICk7XG4jaWZkZWYgQ0xFQVJDT0FUXG5cdGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCA9IGNsZWFyY29hdE5vcm1hbDtcbiNlbmRpZlxuSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodDtcbiNpZiAoIE5VTV9QT0lOVF9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0IClcblx0UG9pbnRMaWdodCBwb2ludExpZ2h0O1xuXHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHRTaGFkb3c7XG5cdCNlbmRpZlxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0cG9pbnRMaWdodCA9IHBvaW50TGlnaHRzWyBpIF07XG5cdFx0Z2V0UG9pbnREaXJlY3RMaWdodElycmFkaWFuY2UoIHBvaW50TGlnaHQsIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgKCBVTlJPTExFRF9MT09QX0lOREVYIDwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgKVxuXHRcdHBvaW50TGlnaHRTaGFkb3cgPSBwb2ludExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yICo9IGFsbCggYnZlYzIoIGRpcmVjdExpZ2h0LnZpc2libGUsIHJlY2VpdmVTaGFkb3cgKSApID8gZ2V0UG9pbnRTaGFkb3coIHBvaW50U2hhZG93TWFwWyBpIF0sIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93TWFwU2l6ZSwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd1JhZGl1cywgdlBvaW50U2hhZG93Q29vcmRbIGkgXSwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dDYW1lcmFOZWFyLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd0NhbWVyYUZhciApIDogMS4wO1xuXHRcdCNlbmRpZlxuXHRcdFJFX0RpcmVjdCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgKCBOVU1fU1BPVF9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0IClcblx0U3BvdExpZ2h0IHNwb3RMaWdodDtcblx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHRTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0U2hhZG93O1xuXHQjZW5kaWZcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0c3BvdExpZ2h0ID0gc3BvdExpZ2h0c1sgaSBdO1xuXHRcdGdldFNwb3REaXJlY3RMaWdodElycmFkaWFuY2UoIHNwb3RMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIClcblx0XHRzcG90TGlnaHRTaGFkb3cgPSBzcG90TGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgKj0gYWxsKCBidmVjMiggZGlyZWN0TGlnaHQudmlzaWJsZSwgcmVjZWl2ZVNoYWRvdyApICkgPyBnZXRTaGFkb3coIHNwb3RTaGFkb3dNYXBbIGkgXSwgc3BvdExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIHNwb3RMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBzcG90TGlnaHRTaGFkb3cuc2hhZG93UmFkaXVzLCB2U3BvdFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcblx0XHQjZW5kaWZcblx0XHRSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmICggTlVNX0RJUl9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0IClcblx0RGlyZWN0aW9uYWxMaWdodCBkaXJlY3Rpb25hbExpZ2h0O1xuXHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0U2hhZG93O1xuXHQjZW5kaWZcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUUzsgaSArKyApIHtcblx0XHRkaXJlY3Rpb25hbExpZ2h0ID0gZGlyZWN0aW9uYWxMaWdodHNbIGkgXTtcblx0XHRnZXREaXJlY3Rpb25hbERpcmVjdExpZ2h0SXJyYWRpYW5jZSggZGlyZWN0aW9uYWxMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fRElSX0xJR0hUX1NIQURPV1MgKVxuXHRcdGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cgPSBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yICo9IGFsbCggYnZlYzIoIGRpcmVjdExpZ2h0LnZpc2libGUsIHJlY2VpdmVTaGFkb3cgKSApID8gZ2V0U2hhZG93KCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgaSBdLCBkaXJlY3Rpb25hbExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cuc2hhZG93QmlhcywgZGlyZWN0aW9uYWxMaWdodFNoYWRvdy5zaGFkb3dSYWRpdXMsIHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcblx0XHQjZW5kaWZcblx0XHRSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmICggTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0X1JlY3RBcmVhIClcblx0UmVjdEFyZWFMaWdodCByZWN0QXJlYUxpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9SRUNUX0FSRUFfTElHSFRTOyBpICsrICkge1xuXHRcdHJlY3RBcmVhTGlnaHQgPSByZWN0QXJlYUxpZ2h0c1sgaSBdO1xuXHRcdFJFX0RpcmVjdF9SZWN0QXJlYSggcmVjdEFyZWFMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdERpZmZ1c2UgKVxuXHR2ZWMzIGlibElycmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTtcblx0dmVjMyBpcnJhZGlhbmNlID0gZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggYW1iaWVudExpZ2h0Q29sb3IgKTtcblx0aXJyYWRpYW5jZSArPSBnZXRMaWdodFByb2JlSXJyYWRpYW5jZSggbGlnaHRQcm9iZSwgZ2VvbWV0cnkgKTtcblx0I2lmICggTlVNX0hFTUlfTElHSFRTID4gMCApXG5cdFx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRcdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9IRU1JX0xJR0hUUzsgaSArKyApIHtcblx0XHRcdGlycmFkaWFuY2UgKz0gZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggaGVtaXNwaGVyZUxpZ2h0c1sgaSBdLCBnZW9tZXRyeSApO1xuXHRcdH1cblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0U3BlY3VsYXIgKVxuXHR2ZWMzIHJhZGlhbmNlID0gdmVjMyggMC4wICk7XG5cdHZlYzMgY2xlYXJjb2F0UmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTtcbiNlbmRpZiIsbGlnaHRzX2ZyYWdtZW50X21hcHM6IiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdERpZmZ1c2UgKVxuXHQjaWZkZWYgVVNFX0xJR0hUTUFQXG5cdFx0dmVjNCBsaWdodE1hcFRleGVsPSB0ZXh0dXJlMkQoIGxpZ2h0TWFwLCB2VXYyICk7XG5cdFx0dmVjMyBsaWdodE1hcElycmFkaWFuY2UgPSBsaWdodE1hcFRleGVsVG9MaW5lYXIoIGxpZ2h0TWFwVGV4ZWwgKS5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTtcblx0XHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRcdGxpZ2h0TWFwSXJyYWRpYW5jZSAqPSBQSTtcblx0XHQjZW5kaWZcblx0XHRpcnJhZGlhbmNlICs9IGxpZ2h0TWFwSXJyYWRpYW5jZTtcblx0I2VuZGlmXG5cdCNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgJiYgZGVmaW5lZCggU1RBTkRBUkQgKSAmJiBkZWZpbmVkKCBFTlZNQVBfVFlQRV9DVUJFX1VWIClcblx0XHRpYmxJcnJhZGlhbmNlICs9IGdldExpZ2h0UHJvYmVJbmRpcmVjdElycmFkaWFuY2UoIGdlb21ldHJ5LCBtYXhNaXBMZXZlbCApO1xuXHQjZW5kaWZcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSAmJiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyIClcblx0cmFkaWFuY2UgKz0gZ2V0TGlnaHRQcm9iZUluZGlyZWN0UmFkaWFuY2UoIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5Lm5vcm1hbCwgbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MsIG1heE1pcExldmVsICk7XG5cdCNpZmRlZiBDTEVBUkNPQVRcblx0XHRjbGVhcmNvYXRSYWRpYW5jZSArPSBnZXRMaWdodFByb2JlSW5kaXJlY3RSYWRpYW5jZSggZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIG1heE1pcExldmVsICk7XG5cdCNlbmRpZlxuI2VuZGlmIixsaWdodHNfZnJhZ21lbnRfZW5kOiIjaWYgZGVmaW5lZCggUkVfSW5kaXJlY3REaWZmdXNlIClcblx0UkVfSW5kaXJlY3REaWZmdXNlKCBpcnJhZGlhbmNlLCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG4jZW5kaWZcbiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyIClcblx0UkVfSW5kaXJlY3RTcGVjdWxhciggcmFkaWFuY2UsIGlibElycmFkaWFuY2UsIGNsZWFyY29hdFJhZGlhbmNlLCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG4jZW5kaWYiLGxvZ2RlcHRoYnVmX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGICkgJiYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGX0VYVCApXG5cdGdsX0ZyYWdEZXB0aEVYVCA9IHZJc1BlcnNwZWN0aXZlID09IDAuMCA/IGdsX0ZyYWdDb29yZC56IDogbG9nMiggdkZyYWdEZXB0aCApICogbG9nRGVwdGhCdWZGQyAqIDAuNTtcbiNlbmRpZiIsbG9nZGVwdGhidWZfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRiApICYmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRl9FWFQgKVxuXHR1bmlmb3JtIGZsb2F0IGxvZ0RlcHRoQnVmRkM7XG5cdHZhcnlpbmcgZmxvYXQgdkZyYWdEZXB0aDtcblx0dmFyeWluZyBmbG9hdCB2SXNQZXJzcGVjdGl2ZTtcbiNlbmRpZiIsbG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfTE9HREVQVEhCVUZcblx0I2lmZGVmIFVTRV9MT0dERVBUSEJVRl9FWFRcblx0XHR2YXJ5aW5nIGZsb2F0IHZGcmFnRGVwdGg7XG5cdFx0dmFyeWluZyBmbG9hdCB2SXNQZXJzcGVjdGl2ZTtcblx0I2Vsc2Vcblx0XHR1bmlmb3JtIGZsb2F0IGxvZ0RlcHRoQnVmRkM7XG5cdCNlbmRpZlxuI2VuZGlmIixsb2dkZXB0aGJ1Zl92ZXJ0ZXg6IiNpZmRlZiBVU0VfTE9HREVQVEhCVUZcblx0I2lmZGVmIFVTRV9MT0dERVBUSEJVRl9FWFRcblx0XHR2RnJhZ0RlcHRoID0gMS4wICsgZ2xfUG9zaXRpb24udztcblx0XHR2SXNQZXJzcGVjdGl2ZSA9IGZsb2F0KCBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICkgKTtcblx0I2Vsc2Vcblx0XHRpZiAoIGlzUGVyc3BlY3RpdmVNYXRyaXgoIHByb2plY3Rpb25NYXRyaXggKSApIHtcblx0XHRcdGdsX1Bvc2l0aW9uLnogPSBsb2cyKCBtYXgoIEVQU0lMT04sIGdsX1Bvc2l0aW9uLncgKyAxLjAgKSApICogbG9nRGVwdGhCdWZGQyAtIDEuMDtcblx0XHRcdGdsX1Bvc2l0aW9uLnogKj0gZ2xfUG9zaXRpb24udztcblx0XHR9XG5cdCNlbmRpZlxuI2VuZGlmIixtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTUFQXG5cdHZlYzQgdGV4ZWxDb2xvciA9IHRleHR1cmUyRCggbWFwLCB2VXYgKTtcblx0dGV4ZWxDb2xvciA9IG1hcFRleGVsVG9MaW5lYXIoIHRleGVsQ29sb3IgKTtcblx0ZGlmZnVzZUNvbG9yICo9IHRleGVsQ29sb3I7XG4jZW5kaWYiLG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBtYXA7XG4jZW5kaWYiLG1hcF9wYXJ0aWNsZV9mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9NQVAgKSB8fCBkZWZpbmVkKCBVU0VfQUxQSEFNQVAgKVxuXHR2ZWMyIHV2ID0gKCB1dlRyYW5zZm9ybSAqIHZlYzMoIGdsX1BvaW50Q29vcmQueCwgMS4wIC0gZ2xfUG9pbnRDb29yZC55LCAxICkgKS54eTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9NQVBcblx0dmVjNCBtYXBUZXhlbCA9IHRleHR1cmUyRCggbWFwLCB1diApO1xuXHRkaWZmdXNlQ29sb3IgKj0gbWFwVGV4ZWxUb0xpbmVhciggbWFwVGV4ZWwgKTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9BTFBIQU1BUFxuXHRkaWZmdXNlQ29sb3IuYSAqPSB0ZXh0dXJlMkQoIGFscGhhTWFwLCB1diApLmc7XG4jZW5kaWYiLG1hcF9wYXJ0aWNsZV9wYXJzX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX01BUCApIHx8IGRlZmluZWQoIFVTRV9BTFBIQU1BUCApXG5cdHVuaWZvcm0gbWF0MyB1dlRyYW5zZm9ybTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9NQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbWFwO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0FMUEhBTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGFscGhhTWFwO1xuI2VuZGlmIixtZXRhbG5lc3NtYXBfZnJhZ21lbnQ6ImZsb2F0IG1ldGFsbmVzc0ZhY3RvciA9IG1ldGFsbmVzcztcbiNpZmRlZiBVU0VfTUVUQUxORVNTTUFQXG5cdHZlYzQgdGV4ZWxNZXRhbG5lc3MgPSB0ZXh0dXJlMkQoIG1ldGFsbmVzc01hcCwgdlV2ICk7XG5cdG1ldGFsbmVzc0ZhY3RvciAqPSB0ZXhlbE1ldGFsbmVzcy5iO1xuI2VuZGlmIixtZXRhbG5lc3NtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9NRVRBTE5FU1NNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbWV0YWxuZXNzTWFwO1xuI2VuZGlmIixtb3JwaG5vcm1hbF92ZXJ0ZXg6IiNpZmRlZiBVU0VfTU9SUEhOT1JNQUxTXG5cdG9iamVjdE5vcm1hbCAqPSBtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2U7XG5cdG9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDAgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDAgXTtcblx0b2JqZWN0Tm9ybWFsICs9IG1vcnBoTm9ybWFsMSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMSBdO1xuXHRvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwyICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAyIF07XG5cdG9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDMgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDMgXTtcbiNlbmRpZiIsbW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfTU9SUEhUQVJHRVRTXG5cdHVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlO1xuXHQjaWZuZGVmIFVTRV9NT1JQSE5PUk1BTFNcblx0XHR1bmlmb3JtIGZsb2F0IG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgOCBdO1xuXHQjZWxzZVxuXHRcdHVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA0IF07XG5cdCNlbmRpZlxuI2VuZGlmIixtb3JwaHRhcmdldF92ZXJ0ZXg6IiNpZmRlZiBVU0VfTU9SUEhUQVJHRVRTXG5cdHRyYW5zZm9ybWVkICo9IG1vcnBoVGFyZ2V0QmFzZUluZmx1ZW5jZTtcblx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQwICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAwIF07XG5cdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMSBdO1xuXHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDIgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDIgXTtcblx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQzICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAzIF07XG5cdCNpZm5kZWYgVVNFX01PUlBITk9STUFMU1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NCAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNCBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNSBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NiAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNiBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NyAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNyBdO1xuXHQjZW5kaWZcbiNlbmRpZiIsbm9ybWFsX2ZyYWdtZW50X2JlZ2luOiJmbG9hdCBmYWNlRGlyZWN0aW9uID0gZ2xfRnJvbnRGYWNpbmcgPyAxLjAgOiAtIDEuMDtcbiNpZmRlZiBGTEFUX1NIQURFRFxuXHR2ZWMzIGZkeCA9IHZlYzMoIGRGZHgoIHZWaWV3UG9zaXRpb24ueCApLCBkRmR4KCB2Vmlld1Bvc2l0aW9uLnkgKSwgZEZkeCggdlZpZXdQb3NpdGlvbi56ICkgKTtcblx0dmVjMyBmZHkgPSB2ZWMzKCBkRmR5KCB2Vmlld1Bvc2l0aW9uLnggKSwgZEZkeSggdlZpZXdQb3NpdGlvbi55ICksIGRGZHkoIHZWaWV3UG9zaXRpb24ueiApICk7XG5cdHZlYzMgbm9ybWFsID0gbm9ybWFsaXplKCBjcm9zcyggZmR4LCBmZHkgKSApO1xuI2Vsc2Vcblx0dmVjMyBub3JtYWwgPSBub3JtYWxpemUoIHZOb3JtYWwgKTtcblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdG5vcm1hbCA9IG5vcm1hbCAqIGZhY2VEaXJlY3Rpb247XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2ZWMzIHRhbmdlbnQgPSBub3JtYWxpemUoIHZUYW5nZW50ICk7XG5cdFx0dmVjMyBiaXRhbmdlbnQgPSBub3JtYWxpemUoIHZCaXRhbmdlbnQgKTtcblx0XHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0XHR0YW5nZW50ID0gdGFuZ2VudCAqIGZhY2VEaXJlY3Rpb247XG5cdFx0XHRiaXRhbmdlbnQgPSBiaXRhbmdlbnQgKiBmYWNlRGlyZWN0aW9uO1xuXHRcdCNlbmRpZlxuXHRcdCNpZiBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQICkgfHwgZGVmaW5lZCggVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAgKVxuXHRcdFx0bWF0MyB2VEJOID0gbWF0MyggdGFuZ2VudCwgYml0YW5nZW50LCBub3JtYWwgKTtcblx0XHQjZW5kaWZcblx0I2VuZGlmXG4jZW5kaWZcbnZlYzMgZ2VvbWV0cnlOb3JtYWwgPSBub3JtYWw7Iixub3JtYWxfZnJhZ21lbnRfbWFwczoiI2lmZGVmIE9CSkVDVFNQQUNFX05PUk1BTE1BUFxuXHRub3JtYWwgPSB0ZXh0dXJlMkQoIG5vcm1hbE1hcCwgdlV2ICkueHl6ICogMi4wIC0gMS4wO1xuXHQjaWZkZWYgRkxJUF9TSURFRFxuXHRcdG5vcm1hbCA9IC0gbm9ybWFsO1xuXHQjZW5kaWZcblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdG5vcm1hbCA9IG5vcm1hbCAqIGZhY2VEaXJlY3Rpb247XG5cdCNlbmRpZlxuXHRub3JtYWwgPSBub3JtYWxpemUoIG5vcm1hbE1hdHJpeCAqIG5vcm1hbCApO1xuI2VsaWYgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApXG5cdHZlYzMgbWFwTiA9IHRleHR1cmUyRCggbm9ybWFsTWFwLCB2VXYgKS54eXogKiAyLjAgLSAxLjA7XG5cdG1hcE4ueHkgKj0gbm9ybWFsU2NhbGU7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdG5vcm1hbCA9IG5vcm1hbGl6ZSggdlRCTiAqIG1hcE4gKTtcblx0I2Vsc2Vcblx0XHRub3JtYWwgPSBwZXJ0dXJiTm9ybWFsMkFyYiggLXZWaWV3UG9zaXRpb24sIG5vcm1hbCwgbWFwTiwgZmFjZURpcmVjdGlvbiApO1xuXHQjZW5kaWZcbiNlbGlmIGRlZmluZWQoIFVTRV9CVU1QTUFQIClcblx0bm9ybWFsID0gcGVydHVyYk5vcm1hbEFyYiggLXZWaWV3UG9zaXRpb24sIG5vcm1hbCwgZEhkeHlfZndkKCksIGZhY2VEaXJlY3Rpb24gKTtcbiNlbmRpZiIsbm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTk9STUFMTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIG5vcm1hbE1hcDtcblx0dW5pZm9ybSB2ZWMyIG5vcm1hbFNjYWxlO1xuI2VuZGlmXG4jaWZkZWYgT0JKRUNUU1BBQ0VfTk9STUFMTUFQXG5cdHVuaWZvcm0gbWF0MyBub3JtYWxNYXRyaXg7XG4jZW5kaWZcbiNpZiAhIGRlZmluZWQgKCBVU0VfVEFOR0VOVCApICYmICggZGVmaW5lZCAoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKSB8fCBkZWZpbmVkICggVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAgKSApXG5cdHZlYzMgcGVydHVyYk5vcm1hbDJBcmIoIHZlYzMgZXllX3BvcywgdmVjMyBzdXJmX25vcm0sIHZlYzMgbWFwTiwgZmxvYXQgZmFjZURpcmVjdGlvbiApIHtcblx0XHR2ZWMzIHEwID0gdmVjMyggZEZkeCggZXllX3Bvcy54ICksIGRGZHgoIGV5ZV9wb3MueSApLCBkRmR4KCBleWVfcG9zLnogKSApO1xuXHRcdHZlYzMgcTEgPSB2ZWMzKCBkRmR5KCBleWVfcG9zLnggKSwgZEZkeSggZXllX3Bvcy55ICksIGRGZHkoIGV5ZV9wb3MueiApICk7XG5cdFx0dmVjMiBzdDAgPSBkRmR4KCB2VXYuc3QgKTtcblx0XHR2ZWMyIHN0MSA9IGRGZHkoIHZVdi5zdCApO1xuXHRcdHZlYzMgTiA9IHN1cmZfbm9ybTtcblx0XHR2ZWMzIHExcGVycCA9IGNyb3NzKCBxMSwgTiApO1xuXHRcdHZlYzMgcTBwZXJwID0gY3Jvc3MoIE4sIHEwICk7XG5cdFx0dmVjMyBUID0gcTFwZXJwICogc3QwLnggKyBxMHBlcnAgKiBzdDEueDtcblx0XHR2ZWMzIEIgPSBxMXBlcnAgKiBzdDAueSArIHEwcGVycCAqIHN0MS55O1xuXHRcdGZsb2F0IGRldCA9IG1heCggZG90KCBULCBUICksIGRvdCggQiwgQiApICk7XG5cdFx0ZmxvYXQgc2NhbGUgPSAoIGRldCA9PSAwLjAgKSA/IDAuMCA6IGZhY2VEaXJlY3Rpb24gKiBpbnZlcnNlc3FydCggZGV0ICk7XG5cdFx0cmV0dXJuIG5vcm1hbGl6ZSggVCAqICggbWFwTi54ICogc2NhbGUgKSArIEIgKiAoIG1hcE4ueSAqIHNjYWxlICkgKyBOICogbWFwTi56ICk7XG5cdH1cbiNlbmRpZiIsY2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9iZWdpbjoiI2lmZGVmIENMRUFSQ09BVFxuXHR2ZWMzIGNsZWFyY29hdE5vcm1hbCA9IGdlb21ldHJ5Tm9ybWFsO1xuI2VuZGlmIixjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X21hcHM6IiNpZmRlZiBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUFxuXHR2ZWMzIGNsZWFyY29hdE1hcE4gPSB0ZXh0dXJlMkQoIGNsZWFyY29hdE5vcm1hbE1hcCwgdlV2ICkueHl6ICogMi4wIC0gMS4wO1xuXHRjbGVhcmNvYXRNYXBOLnh5ICo9IGNsZWFyY29hdE5vcm1hbFNjYWxlO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHRjbGVhcmNvYXROb3JtYWwgPSBub3JtYWxpemUoIHZUQk4gKiBjbGVhcmNvYXRNYXBOICk7XG5cdCNlbHNlXG5cdFx0Y2xlYXJjb2F0Tm9ybWFsID0gcGVydHVyYk5vcm1hbDJBcmIoIC0gdlZpZXdQb3NpdGlvbiwgY2xlYXJjb2F0Tm9ybWFsLCBjbGVhcmNvYXRNYXBOLCBmYWNlRGlyZWN0aW9uICk7XG5cdCNlbmRpZlxuI2VuZGlmIixjbGVhcmNvYXRfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9DTEVBUkNPQVRNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0TWFwO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0Um91Z2huZXNzTWFwO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0Tm9ybWFsTWFwO1xuXHR1bmlmb3JtIHZlYzIgY2xlYXJjb2F0Tm9ybWFsU2NhbGU7XG4jZW5kaWYiLHBhY2tpbmc6InZlYzMgcGFja05vcm1hbFRvUkdCKCBjb25zdCBpbiB2ZWMzIG5vcm1hbCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggbm9ybWFsICkgKiAwLjUgKyAwLjU7XG59XG52ZWMzIHVucGFja1JHQlRvTm9ybWFsKCBjb25zdCBpbiB2ZWMzIHJnYiApIHtcblx0cmV0dXJuIDIuMCAqIHJnYi54eXogLSAxLjA7XG59XG5jb25zdCBmbG9hdCBQYWNrVXBzY2FsZSA9IDI1Ni4gLyAyNTUuO2NvbnN0IGZsb2F0IFVucGFja0Rvd25zY2FsZSA9IDI1NS4gLyAyNTYuO1xuY29uc3QgdmVjMyBQYWNrRmFjdG9ycyA9IHZlYzMoIDI1Ni4gKiAyNTYuICogMjU2LiwgMjU2LiAqIDI1Ni4sIDI1Ni4gKTtcbmNvbnN0IHZlYzQgVW5wYWNrRmFjdG9ycyA9IFVucGFja0Rvd25zY2FsZSAvIHZlYzQoIFBhY2tGYWN0b3JzLCAxLiApO1xuY29uc3QgZmxvYXQgU2hpZnRSaWdodDggPSAxLiAvIDI1Ni47XG52ZWM0IHBhY2tEZXB0aFRvUkdCQSggY29uc3QgaW4gZmxvYXQgdiApIHtcblx0dmVjNCByID0gdmVjNCggZnJhY3QoIHYgKiBQYWNrRmFjdG9ycyApLCB2ICk7XG5cdHIueXp3IC09IHIueHl6ICogU2hpZnRSaWdodDg7XHRyZXR1cm4gciAqIFBhY2tVcHNjYWxlO1xufVxuZmxvYXQgdW5wYWNrUkdCQVRvRGVwdGgoIGNvbnN0IGluIHZlYzQgdiApIHtcblx0cmV0dXJuIGRvdCggdiwgVW5wYWNrRmFjdG9ycyApO1xufVxudmVjNCBwYWNrMkhhbGZUb1JHQkEoIHZlYzIgdiApIHtcblx0dmVjNCByID0gdmVjNCggdi54LCBmcmFjdCggdi54ICogMjU1LjAgKSwgdi55LCBmcmFjdCggdi55ICogMjU1LjAgKSk7XG5cdHJldHVybiB2ZWM0KCByLnggLSByLnkgLyAyNTUuMCwgci55LCByLnogLSByLncgLyAyNTUuMCwgci53KTtcbn1cbnZlYzIgdW5wYWNrUkdCQVRvMkhhbGYoIHZlYzQgdiApIHtcblx0cmV0dXJuIHZlYzIoIHYueCArICggdi55IC8gMjU1LjAgKSwgdi56ICsgKCB2LncgLyAyNTUuMCApICk7XG59XG5mbG9hdCB2aWV3WlRvT3J0aG9ncmFwaGljRGVwdGgoIGNvbnN0IGluIGZsb2F0IHZpZXdaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7XG5cdHJldHVybiAoIHZpZXdaICsgbmVhciApIC8gKCBuZWFyIC0gZmFyICk7XG59XG5mbG9hdCBvcnRob2dyYXBoaWNEZXB0aFRvVmlld1ooIGNvbnN0IGluIGZsb2F0IGxpbmVhckNsaXBaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7XG5cdHJldHVybiBsaW5lYXJDbGlwWiAqICggbmVhciAtIGZhciApIC0gbmVhcjtcbn1cbmZsb2F0IHZpZXdaVG9QZXJzcGVjdGl2ZURlcHRoKCBjb25zdCBpbiBmbG9hdCB2aWV3WiwgY29uc3QgaW4gZmxvYXQgbmVhciwgY29uc3QgaW4gZmxvYXQgZmFyICkge1xuXHRyZXR1cm4gKCggbmVhciArIHZpZXdaICkgKiBmYXIgKSAvICgoIGZhciAtIG5lYXIgKSAqIHZpZXdaICk7XG59XG5mbG9hdCBwZXJzcGVjdGl2ZURlcHRoVG9WaWV3WiggY29uc3QgaW4gZmxvYXQgaW52Q2xpcFosIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHtcblx0cmV0dXJuICggbmVhciAqIGZhciApIC8gKCAoIGZhciAtIG5lYXIgKSAqIGludkNsaXBaIC0gZmFyICk7XG59IixwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50OiIjaWZkZWYgUFJFTVVMVElQTElFRF9BTFBIQVxuXHRnbF9GcmFnQ29sb3IucmdiICo9IGdsX0ZyYWdDb2xvci5hO1xuI2VuZGlmIixwcm9qZWN0X3ZlcnRleDoidmVjNCBtdlBvc2l0aW9uID0gdmVjNCggdHJhbnNmb3JtZWQsIDEuMCApO1xuI2lmZGVmIFVTRV9JTlNUQU5DSU5HXG5cdG12UG9zaXRpb24gPSBpbnN0YW5jZU1hdHJpeCAqIG12UG9zaXRpb247XG4jZW5kaWZcbm12UG9zaXRpb24gPSBtb2RlbFZpZXdNYXRyaXggKiBtdlBvc2l0aW9uO1xuZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjsiLGRpdGhlcmluZ19mcmFnbWVudDoiI2lmZGVmIERJVEhFUklOR1xuXHRnbF9GcmFnQ29sb3IucmdiID0gZGl0aGVyaW5nKCBnbF9GcmFnQ29sb3IucmdiICk7XG4jZW5kaWYiLGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50OiIjaWZkZWYgRElUSEVSSU5HXG5cdHZlYzMgZGl0aGVyaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRcdGZsb2F0IGdyaWRfcG9zaXRpb24gPSByYW5kKCBnbF9GcmFnQ29vcmQueHkgKTtcblx0XHR2ZWMzIGRpdGhlcl9zaGlmdF9SR0IgPSB2ZWMzKCAwLjI1IC8gMjU1LjAsIC0wLjI1IC8gMjU1LjAsIDAuMjUgLyAyNTUuMCApO1xuXHRcdGRpdGhlcl9zaGlmdF9SR0IgPSBtaXgoIDIuMCAqIGRpdGhlcl9zaGlmdF9SR0IsIC0yLjAgKiBkaXRoZXJfc2hpZnRfUkdCLCBncmlkX3Bvc2l0aW9uICk7XG5cdFx0cmV0dXJuIGNvbG9yICsgZGl0aGVyX3NoaWZ0X1JHQjtcblx0fVxuI2VuZGlmIixyb3VnaG5lc3NtYXBfZnJhZ21lbnQ6ImZsb2F0IHJvdWdobmVzc0ZhY3RvciA9IHJvdWdobmVzcztcbiNpZmRlZiBVU0VfUk9VR0hORVNTTUFQXG5cdHZlYzQgdGV4ZWxSb3VnaG5lc3MgPSB0ZXh0dXJlMkQoIHJvdWdobmVzc01hcCwgdlV2ICk7XG5cdHJvdWdobmVzc0ZhY3RvciAqPSB0ZXhlbFJvdWdobmVzcy5nO1xuI2VuZGlmIixyb3VnaG5lc3NtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9ST1VHSE5FU1NNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgcm91Z2huZXNzTWFwO1xuI2VuZGlmIixzaGFkb3dtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9TSEFET1dNQVBcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgRGlyZWN0aW9uYWxMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHR9O1xuXHRcdHVuaWZvcm0gRGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHQjaWYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBzcG90U2hhZG93TWFwWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZTcG90U2hhZG93Q29vcmRbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgU3BvdExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0U2hhZG93c1sgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHBvaW50U2hhZG93TWFwWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2UG9pbnRTaGFkb3dDb29yZFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgUG9pbnRMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHRcdGZsb2F0IHNoYWRvd0NhbWVyYU5lYXI7XG5cdFx0XHRmbG9hdCBzaGFkb3dDYW1lcmFGYXI7XG5cdFx0fTtcblx0XHR1bmlmb3JtIFBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodFNoYWRvd3NbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHRmbG9hdCB0ZXh0dXJlMkRDb21wYXJlKCBzYW1wbGVyMkQgZGVwdGhzLCB2ZWMyIHV2LCBmbG9hdCBjb21wYXJlICkge1xuXHRcdHJldHVybiBzdGVwKCBjb21wYXJlLCB1bnBhY2tSR0JBVG9EZXB0aCggdGV4dHVyZTJEKCBkZXB0aHMsIHV2ICkgKSApO1xuXHR9XG5cdHZlYzIgdGV4dHVyZTJERGlzdHJpYnV0aW9uKCBzYW1wbGVyMkQgc2hhZG93LCB2ZWMyIHV2ICkge1xuXHRcdHJldHVybiB1bnBhY2tSR0JBVG8ySGFsZiggdGV4dHVyZTJEKCBzaGFkb3csIHV2ICkgKTtcblx0fVxuXHRmbG9hdCBWU01TaGFkb3cgKHNhbXBsZXIyRCBzaGFkb3csIHZlYzIgdXYsIGZsb2F0IGNvbXBhcmUgKXtcblx0XHRmbG9hdCBvY2NsdXNpb24gPSAxLjA7XG5cdFx0dmVjMiBkaXN0cmlidXRpb24gPSB0ZXh0dXJlMkREaXN0cmlidXRpb24oIHNoYWRvdywgdXYgKTtcblx0XHRmbG9hdCBoYXJkX3NoYWRvdyA9IHN0ZXAoIGNvbXBhcmUgLCBkaXN0cmlidXRpb24ueCApO1xuXHRcdGlmIChoYXJkX3NoYWRvdyAhPSAxLjAgKSB7XG5cdFx0XHRmbG9hdCBkaXN0YW5jZSA9IGNvbXBhcmUgLSBkaXN0cmlidXRpb24ueCA7XG5cdFx0XHRmbG9hdCB2YXJpYW5jZSA9IG1heCggMC4wMDAwMCwgZGlzdHJpYnV0aW9uLnkgKiBkaXN0cmlidXRpb24ueSApO1xuXHRcdFx0ZmxvYXQgc29mdG5lc3NfcHJvYmFiaWxpdHkgPSB2YXJpYW5jZSAvICh2YXJpYW5jZSArIGRpc3RhbmNlICogZGlzdGFuY2UgKTtcdFx0XHRzb2Z0bmVzc19wcm9iYWJpbGl0eSA9IGNsYW1wKCAoIHNvZnRuZXNzX3Byb2JhYmlsaXR5IC0gMC4zICkgLyAoIDAuOTUgLSAwLjMgKSwgMC4wLCAxLjAgKTtcdFx0XHRvY2NsdXNpb24gPSBjbGFtcCggbWF4KCBoYXJkX3NoYWRvdywgc29mdG5lc3NfcHJvYmFiaWxpdHkgKSwgMC4wLCAxLjAgKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9jY2x1c2lvbjtcblx0fVxuXHRmbG9hdCBnZXRTaGFkb3coIHNhbXBsZXIyRCBzaGFkb3dNYXAsIHZlYzIgc2hhZG93TWFwU2l6ZSwgZmxvYXQgc2hhZG93QmlhcywgZmxvYXQgc2hhZG93UmFkaXVzLCB2ZWM0IHNoYWRvd0Nvb3JkICkge1xuXHRcdGZsb2F0IHNoYWRvdyA9IDEuMDtcblx0XHRzaGFkb3dDb29yZC54eXogLz0gc2hhZG93Q29vcmQudztcblx0XHRzaGFkb3dDb29yZC56ICs9IHNoYWRvd0JpYXM7XG5cdFx0YnZlYzQgaW5GcnVzdHVtVmVjID0gYnZlYzQgKCBzaGFkb3dDb29yZC54ID49IDAuMCwgc2hhZG93Q29vcmQueCA8PSAxLjAsIHNoYWRvd0Nvb3JkLnkgPj0gMC4wLCBzaGFkb3dDb29yZC55IDw9IDEuMCApO1xuXHRcdGJvb2wgaW5GcnVzdHVtID0gYWxsKCBpbkZydXN0dW1WZWMgKTtcblx0XHRidmVjMiBmcnVzdHVtVGVzdFZlYyA9IGJ2ZWMyKCBpbkZydXN0dW0sIHNoYWRvd0Nvb3JkLnogPD0gMS4wICk7XG5cdFx0Ym9vbCBmcnVzdHVtVGVzdCA9IGFsbCggZnJ1c3R1bVRlc3RWZWMgKTtcblx0XHRpZiAoIGZydXN0dW1UZXN0ICkge1xuXHRcdCNpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0YgKVxuXHRcdFx0dmVjMiB0ZXhlbFNpemUgPSB2ZWMyKCAxLjAgKSAvIHNoYWRvd01hcFNpemU7XG5cdFx0XHRmbG9hdCBkeDAgPSAtIHRleGVsU2l6ZS54ICogc2hhZG93UmFkaXVzO1xuXHRcdFx0ZmxvYXQgZHkwID0gLSB0ZXhlbFNpemUueSAqIHNoYWRvd1JhZGl1cztcblx0XHRcdGZsb2F0IGR4MSA9ICsgdGV4ZWxTaXplLnggKiBzaGFkb3dSYWRpdXM7XG5cdFx0XHRmbG9hdCBkeTEgPSArIHRleGVsU2l6ZS55ICogc2hhZG93UmFkaXVzO1xuXHRcdFx0ZmxvYXQgZHgyID0gZHgwIC8gMi4wO1xuXHRcdFx0ZmxvYXQgZHkyID0gZHkwIC8gMi4wO1xuXHRcdFx0ZmxvYXQgZHgzID0gZHgxIC8gMi4wO1xuXHRcdFx0ZmxvYXQgZHkzID0gZHkxIC8gMi4wO1xuXHRcdFx0c2hhZG93ID0gKFxuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgwLCBkeTAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkwICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDEsIGR5MCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgyLCBkeTIgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkyICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDMsIGR5MiApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgwLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MiwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDMsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgxLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MiwgZHkzICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCAwLjAsIGR5MyApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgzLCBkeTMgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MCwgZHkxICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCAwLjAsIGR5MSApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgxLCBkeTEgKSwgc2hhZG93Q29vcmQueiApXG5cdFx0XHQpICogKCAxLjAgLyAxNy4wICk7XG5cdFx0I2VsaWYgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfUENGX1NPRlQgKVxuXHRcdFx0dmVjMiB0ZXhlbFNpemUgPSB2ZWMyKCAxLjAgKSAvIHNoYWRvd01hcFNpemU7XG5cdFx0XHRmbG9hdCBkeCA9IHRleGVsU2l6ZS54O1xuXHRcdFx0ZmxvYXQgZHkgPSB0ZXhlbFNpemUueTtcblx0XHRcdHZlYzIgdXYgPSBzaGFkb3dDb29yZC54eTtcblx0XHRcdHZlYzIgZiA9IGZyYWN0KCB1diAqIHNoYWRvd01hcFNpemUgKyAwLjUgKTtcblx0XHRcdHV2IC09IGYgKiB0ZXhlbFNpemU7XG5cdFx0XHRzaGFkb3cgPSAoXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYsIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAwLjAsIGR5ICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB0ZXhlbFNpemUsIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHQgZi54ICkgK1xuXHRcdFx0XHRtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAtZHgsIGR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdCBmLnggKSArXG5cdFx0XHRcdG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDAuMCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAwLjAsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHQgZi55ICkgK1xuXHRcdFx0XHRtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdCBmLnkgKSArXG5cdFx0XHRcdG1peCggbWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCAtZHkgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHRcdCAgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCAtZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdFx0ICBmLnggKSxcblx0XHRcdFx0XHQgbWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdFx0ICB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHRcdCAgZi54ICksXG5cdFx0XHRcdFx0IGYueSApXG5cdFx0XHQpICogKCAxLjAgLyA5LjAgKTtcblx0XHQjZWxpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9WU00gKVxuXHRcdFx0c2hhZG93ID0gVlNNU2hhZG93KCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5LCBzaGFkb3dDb29yZC56ICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHNoYWRvdyA9IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHksIHNoYWRvd0Nvb3JkLnogKTtcblx0XHQjZW5kaWZcblx0XHR9XG5cdFx0cmV0dXJuIHNoYWRvdztcblx0fVxuXHR2ZWMyIGN1YmVUb1VWKCB2ZWMzIHYsIGZsb2F0IHRleGVsU2l6ZVkgKSB7XG5cdFx0dmVjMyBhYnNWID0gYWJzKCB2ICk7XG5cdFx0ZmxvYXQgc2NhbGVUb0N1YmUgPSAxLjAgLyBtYXgoIGFic1YueCwgbWF4KCBhYnNWLnksIGFic1YueiApICk7XG5cdFx0YWJzViAqPSBzY2FsZVRvQ3ViZTtcblx0XHR2ICo9IHNjYWxlVG9DdWJlICogKCAxLjAgLSAyLjAgKiB0ZXhlbFNpemVZICk7XG5cdFx0dmVjMiBwbGFuYXIgPSB2Lnh5O1xuXHRcdGZsb2F0IGFsbW9zdEFUZXhlbCA9IDEuNSAqIHRleGVsU2l6ZVk7XG5cdFx0ZmxvYXQgYWxtb3N0T25lID0gMS4wIC0gYWxtb3N0QVRleGVsO1xuXHRcdGlmICggYWJzVi56ID49IGFsbW9zdE9uZSApIHtcblx0XHRcdGlmICggdi56ID4gMC4wIClcblx0XHRcdFx0cGxhbmFyLnggPSA0LjAgLSB2Lng7XG5cdFx0fSBlbHNlIGlmICggYWJzVi54ID49IGFsbW9zdE9uZSApIHtcblx0XHRcdGZsb2F0IHNpZ25YID0gc2lnbiggdi54ICk7XG5cdFx0XHRwbGFuYXIueCA9IHYueiAqIHNpZ25YICsgMi4wICogc2lnblg7XG5cdFx0fSBlbHNlIGlmICggYWJzVi55ID49IGFsbW9zdE9uZSApIHtcblx0XHRcdGZsb2F0IHNpZ25ZID0gc2lnbiggdi55ICk7XG5cdFx0XHRwbGFuYXIueCA9IHYueCArIDIuMCAqIHNpZ25ZICsgMi4wO1xuXHRcdFx0cGxhbmFyLnkgPSB2LnogKiBzaWduWSAtIDIuMDtcblx0XHR9XG5cdFx0cmV0dXJuIHZlYzIoIDAuMTI1LCAwLjI1ICkgKiBwbGFuYXIgKyB2ZWMyKCAwLjM3NSwgMC43NSApO1xuXHR9XG5cdGZsb2F0IGdldFBvaW50U2hhZG93KCBzYW1wbGVyMkQgc2hhZG93TWFwLCB2ZWMyIHNoYWRvd01hcFNpemUsIGZsb2F0IHNoYWRvd0JpYXMsIGZsb2F0IHNoYWRvd1JhZGl1cywgdmVjNCBzaGFkb3dDb29yZCwgZmxvYXQgc2hhZG93Q2FtZXJhTmVhciwgZmxvYXQgc2hhZG93Q2FtZXJhRmFyICkge1xuXHRcdHZlYzIgdGV4ZWxTaXplID0gdmVjMiggMS4wICkgLyAoIHNoYWRvd01hcFNpemUgKiB2ZWMyKCA0LjAsIDIuMCApICk7XG5cdFx0dmVjMyBsaWdodFRvUG9zaXRpb24gPSBzaGFkb3dDb29yZC54eXo7XG5cdFx0ZmxvYXQgZHAgPSAoIGxlbmd0aCggbGlnaHRUb1Bvc2l0aW9uICkgLSBzaGFkb3dDYW1lcmFOZWFyICkgLyAoIHNoYWRvd0NhbWVyYUZhciAtIHNoYWRvd0NhbWVyYU5lYXIgKTtcdFx0ZHAgKz0gc2hhZG93Qmlhcztcblx0XHR2ZWMzIGJkM0QgPSBub3JtYWxpemUoIGxpZ2h0VG9Qb3NpdGlvbiApO1xuXHRcdCNpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0YgKSB8fCBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0ZfU09GVCApIHx8IGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1ZTTSApXG5cdFx0XHR2ZWMyIG9mZnNldCA9IHZlYzIoIC0gMSwgMSApICogc2hhZG93UmFkaXVzICogdGV4ZWxTaXplLnk7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh5eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXl5LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eXgsIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl5eCwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QsIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh4eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXh5LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eHgsIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl4eCwgdGV4ZWxTaXplLnkgKSwgZHAgKVxuXHRcdFx0KSAqICggMS4wIC8gOS4wICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHJldHVybiB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNELCB0ZXhlbFNpemUueSApLCBkcCApO1xuXHRcdCNlbmRpZlxuXHR9XG4jZW5kaWYiLHNoYWRvd21hcF9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9TSEFET1dNQVBcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIG1hdDQgZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXhbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IERpcmVjdGlvbmFsTGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0fTtcblx0XHR1bmlmb3JtIERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBtYXQ0IHNwb3RTaGFkb3dNYXRyaXhbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdlNwb3RTaGFkb3dDb29yZFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBTcG90TGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0fTtcblx0XHR1bmlmb3JtIFNwb3RMaWdodFNoYWRvdyBzcG90TGlnaHRTaGFkb3dzWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHQjaWYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBtYXQ0IHBvaW50U2hhZG93TWF0cml4WyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2UG9pbnRTaGFkb3dDb29yZFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgUG9pbnRMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHRcdGZsb2F0IHNoYWRvd0NhbWVyYU5lYXI7XG5cdFx0XHRmbG9hdCBzaGFkb3dDYW1lcmFGYXI7XG5cdFx0fTtcblx0XHR1bmlmb3JtIFBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodFNoYWRvd3NbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuI2VuZGlmIixzaGFkb3dtYXBfdmVydGV4OiIjaWZkZWYgVVNFX1NIQURPV01BUFxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMCB8fCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMCB8fCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR2ZWMzIHNoYWRvd1dvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggdHJhbnNmb3JtZWROb3JtYWwsIHZpZXdNYXRyaXggKTtcblx0XHR2ZWM0IHNoYWRvd1dvcmxkUG9zaXRpb247XG5cdCNlbmRpZlxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9ESVJfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRzaGFkb3dXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbiArIHZlYzQoIHNoYWRvd1dvcmxkTm9ybWFsICogZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIGkgXS5zaGFkb3dOb3JtYWxCaWFzLCAwICk7XG5cdFx0dkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIGkgXSA9IGRpcmVjdGlvbmFsU2hhZG93TWF0cml4WyBpIF0gKiBzaGFkb3dXb3JsZFBvc2l0aW9uO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjaWYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHNoYWRvd1dvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uICsgdmVjNCggc2hhZG93V29ybGROb3JtYWwgKiBzcG90TGlnaHRTaGFkb3dzWyBpIF0uc2hhZG93Tm9ybWFsQmlhcywgMCApO1xuXHRcdHZTcG90U2hhZG93Q29vcmRbIGkgXSA9IHNwb3RTaGFkb3dNYXRyaXhbIGkgXSAqIHNoYWRvd1dvcmxkUG9zaXRpb247XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRzaGFkb3dXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbiArIHZlYzQoIHNoYWRvd1dvcmxkTm9ybWFsICogcG9pbnRMaWdodFNoYWRvd3NbIGkgXS5zaGFkb3dOb3JtYWxCaWFzLCAwICk7XG5cdFx0dlBvaW50U2hhZG93Q29vcmRbIGkgXSA9IHBvaW50U2hhZG93TWF0cml4WyBpIF0gKiBzaGFkb3dXb3JsZFBvc2l0aW9uO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuI2VuZGlmIixzaGFkb3dtYXNrX3BhcnNfZnJhZ21lbnQ6ImZsb2F0IGdldFNoYWRvd01hc2soKSB7XG5cdGZsb2F0IHNoYWRvdyA9IDEuMDtcblx0I2lmZGVmIFVTRV9TSEFET1dNQVBcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9ESVJfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRkaXJlY3Rpb25hbExpZ2h0ID0gZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRzaGFkb3cgKj0gcmVjZWl2ZVNoYWRvdyA/IGdldFNoYWRvdyggZGlyZWN0aW9uYWxTaGFkb3dNYXBbIGkgXSwgZGlyZWN0aW9uYWxMaWdodC5zaGFkb3dNYXBTaXplLCBkaXJlY3Rpb25hbExpZ2h0LnNoYWRvd0JpYXMsIGRpcmVjdGlvbmFsTGlnaHQuc2hhZG93UmFkaXVzLCB2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgaSBdICkgOiAxLjA7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHRTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0c3BvdExpZ2h0ID0gc3BvdExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdHNoYWRvdyAqPSByZWNlaXZlU2hhZG93ID8gZ2V0U2hhZG93KCBzcG90U2hhZG93TWFwWyBpIF0sIHNwb3RMaWdodC5zaGFkb3dNYXBTaXplLCBzcG90TGlnaHQuc2hhZG93Qmlhcywgc3BvdExpZ2h0LnNoYWRvd1JhZGl1cywgdlNwb3RTaGFkb3dDb29yZFsgaSBdICkgOiAxLjA7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0UG9pbnRMaWdodFNoYWRvdyBwb2ludExpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHBvaW50TGlnaHQgPSBwb2ludExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdHNoYWRvdyAqPSByZWNlaXZlU2hhZG93ID8gZ2V0UG9pbnRTaGFkb3coIHBvaW50U2hhZG93TWFwWyBpIF0sIHBvaW50TGlnaHQuc2hhZG93TWFwU2l6ZSwgcG9pbnRMaWdodC5zaGFkb3dCaWFzLCBwb2ludExpZ2h0LnNoYWRvd1JhZGl1cywgdlBvaW50U2hhZG93Q29vcmRbIGkgXSwgcG9pbnRMaWdodC5zaGFkb3dDYW1lcmFOZWFyLCBwb2ludExpZ2h0LnNoYWRvd0NhbWVyYUZhciApIDogMS4wO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjZW5kaWZcblx0cmV0dXJuIHNoYWRvdztcbn0iLHNraW5iYXNlX3ZlcnRleDoiI2lmZGVmIFVTRV9TS0lOTklOR1xuXHRtYXQ0IGJvbmVNYXRYID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LnggKTtcblx0bWF0NCBib25lTWF0WSA9IGdldEJvbmVNYXRyaXgoIHNraW5JbmRleC55ICk7XG5cdG1hdDQgYm9uZU1hdFogPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgueiApO1xuXHRtYXQ0IGJvbmVNYXRXID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LncgKTtcbiNlbmRpZiIsc2tpbm5pbmdfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfU0tJTk5JTkdcblx0dW5pZm9ybSBtYXQ0IGJpbmRNYXRyaXg7XG5cdHVuaWZvcm0gbWF0NCBiaW5kTWF0cml4SW52ZXJzZTtcblx0I2lmZGVmIEJPTkVfVEVYVFVSRVxuXHRcdHVuaWZvcm0gaGlnaHAgc2FtcGxlcjJEIGJvbmVUZXh0dXJlO1xuXHRcdHVuaWZvcm0gaW50IGJvbmVUZXh0dXJlU2l6ZTtcblx0XHRtYXQ0IGdldEJvbmVNYXRyaXgoIGNvbnN0IGluIGZsb2F0IGkgKSB7XG5cdFx0XHRmbG9hdCBqID0gaSAqIDQuMDtcblx0XHRcdGZsb2F0IHggPSBtb2QoIGosIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKSApO1xuXHRcdFx0ZmxvYXQgeSA9IGZsb29yKCBqIC8gZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApICk7XG5cdFx0XHRmbG9hdCBkeCA9IDEuMCAvIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKTtcblx0XHRcdGZsb2F0IGR5ID0gMS4wIC8gZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApO1xuXHRcdFx0eSA9IGR5ICogKCB5ICsgMC41ICk7XG5cdFx0XHR2ZWM0IHYxID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAwLjUgKSwgeSApICk7XG5cdFx0XHR2ZWM0IHYyID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAxLjUgKSwgeSApICk7XG5cdFx0XHR2ZWM0IHYzID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAyLjUgKSwgeSApICk7XG5cdFx0XHR2ZWM0IHY0ID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAzLjUgKSwgeSApICk7XG5cdFx0XHRtYXQ0IGJvbmUgPSBtYXQ0KCB2MSwgdjIsIHYzLCB2NCApO1xuXHRcdFx0cmV0dXJuIGJvbmU7XG5cdFx0fVxuXHQjZWxzZVxuXHRcdHVuaWZvcm0gbWF0NCBib25lTWF0cmljZXNbIE1BWF9CT05FUyBdO1xuXHRcdG1hdDQgZ2V0Qm9uZU1hdHJpeCggY29uc3QgaW4gZmxvYXQgaSApIHtcblx0XHRcdG1hdDQgYm9uZSA9IGJvbmVNYXRyaWNlc1sgaW50KGkpIF07XG5cdFx0XHRyZXR1cm4gYm9uZTtcblx0XHR9XG5cdCNlbmRpZlxuI2VuZGlmIixza2lubmluZ192ZXJ0ZXg6IiNpZmRlZiBVU0VfU0tJTk5JTkdcblx0dmVjNCBza2luVmVydGV4ID0gYmluZE1hdHJpeCAqIHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTtcblx0dmVjNCBza2lubmVkID0gdmVjNCggMC4wICk7XG5cdHNraW5uZWQgKz0gYm9uZU1hdFggKiBza2luVmVydGV4ICogc2tpbldlaWdodC54O1xuXHRza2lubmVkICs9IGJvbmVNYXRZICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQueTtcblx0c2tpbm5lZCArPSBib25lTWF0WiAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lno7XG5cdHNraW5uZWQgKz0gYm9uZU1hdFcgKiBza2luVmVydGV4ICogc2tpbldlaWdodC53O1xuXHR0cmFuc2Zvcm1lZCA9ICggYmluZE1hdHJpeEludmVyc2UgKiBza2lubmVkICkueHl6O1xuI2VuZGlmIixza2lubm9ybWFsX3ZlcnRleDoiI2lmZGVmIFVTRV9TS0lOTklOR1xuXHRtYXQ0IHNraW5NYXRyaXggPSBtYXQ0KCAwLjAgKTtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LnggKiBib25lTWF0WDtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LnkgKiBib25lTWF0WTtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LnogKiBib25lTWF0Wjtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LncgKiBib25lTWF0Vztcblx0c2tpbk1hdHJpeCA9IGJpbmRNYXRyaXhJbnZlcnNlICogc2tpbk1hdHJpeCAqIGJpbmRNYXRyaXg7XG5cdG9iamVjdE5vcm1hbCA9IHZlYzQoIHNraW5NYXRyaXggKiB2ZWM0KCBvYmplY3ROb3JtYWwsIDAuMCApICkueHl6O1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHRvYmplY3RUYW5nZW50ID0gdmVjNCggc2tpbk1hdHJpeCAqIHZlYzQoIG9iamVjdFRhbmdlbnQsIDAuMCApICkueHl6O1xuXHQjZW5kaWZcbiNlbmRpZiIsc3BlY3VsYXJtYXBfZnJhZ21lbnQ6ImZsb2F0IHNwZWN1bGFyU3RyZW5ndGg7XG4jaWZkZWYgVVNFX1NQRUNVTEFSTUFQXG5cdHZlYzQgdGV4ZWxTcGVjdWxhciA9IHRleHR1cmUyRCggc3BlY3VsYXJNYXAsIHZVdiApO1xuXHRzcGVjdWxhclN0cmVuZ3RoID0gdGV4ZWxTcGVjdWxhci5yO1xuI2Vsc2Vcblx0c3BlY3VsYXJTdHJlbmd0aCA9IDEuMDtcbiNlbmRpZiIsc3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9TUEVDVUxBUk1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBzcGVjdWxhck1hcDtcbiNlbmRpZiIsdG9uZW1hcHBpbmdfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBUT05FX01BUFBJTkcgKVxuXHRnbF9GcmFnQ29sb3IucmdiID0gdG9uZU1hcHBpbmcoIGdsX0ZyYWdDb2xvci5yZ2IgKTtcbiNlbmRpZiIsdG9uZW1hcHBpbmdfcGFyc19mcmFnbWVudDoiI2lmbmRlZiBzYXR1cmF0ZVxuI2RlZmluZSBzYXR1cmF0ZShhKSBjbGFtcCggYSwgMC4wLCAxLjAgKVxuI2VuZGlmXG51bmlmb3JtIGZsb2F0IHRvbmVNYXBwaW5nRXhwb3N1cmU7XG52ZWMzIExpbmVhclRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRyZXR1cm4gdG9uZU1hcHBpbmdFeHBvc3VyZSAqIGNvbG9yO1xufVxudmVjMyBSZWluaGFyZFRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRjb2xvciAqPSB0b25lTWFwcGluZ0V4cG9zdXJlO1xuXHRyZXR1cm4gc2F0dXJhdGUoIGNvbG9yIC8gKCB2ZWMzKCAxLjAgKSArIGNvbG9yICkgKTtcbn1cbnZlYzMgT3B0aW1pemVkQ2luZW9uVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7XG5cdGNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmU7XG5cdGNvbG9yID0gbWF4KCB2ZWMzKCAwLjAgKSwgY29sb3IgLSAwLjAwNCApO1xuXHRyZXR1cm4gcG93KCAoIGNvbG9yICogKCA2LjIgKiBjb2xvciArIDAuNSApICkgLyAoIGNvbG9yICogKCA2LjIgKiBjb2xvciArIDEuNyApICsgMC4wNiApLCB2ZWMzKCAyLjIgKSApO1xufVxudmVjMyBSUlRBbmRPRFRGaXQoIHZlYzMgdiApIHtcblx0dmVjMyBhID0gdiAqICggdiArIDAuMDI0NTc4NiApIC0gMC4wMDAwOTA1Mzc7XG5cdHZlYzMgYiA9IHYgKiAoIDAuOTgzNzI5ICogdiArIDAuNDMyOTUxMCApICsgMC4yMzgwODE7XG5cdHJldHVybiBhIC8gYjtcbn1cbnZlYzMgQUNFU0ZpbG1pY1RvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRjb25zdCBtYXQzIEFDRVNJbnB1dE1hdCA9IG1hdDMoXG5cdFx0dmVjMyggMC41OTcxOSwgMC4wNzYwMCwgMC4wMjg0MCApLFx0XHR2ZWMzKCAwLjM1NDU4LCAwLjkwODM0LCAwLjEzMzgzICksXG5cdFx0dmVjMyggMC4wNDgyMywgMC4wMTU2NiwgMC44Mzc3NyApXG5cdCk7XG5cdGNvbnN0IG1hdDMgQUNFU091dHB1dE1hdCA9IG1hdDMoXG5cdFx0dmVjMyggIDEuNjA0NzUsIC0wLjEwMjA4LCAtMC4wMDMyNyApLFx0XHR2ZWMzKCAtMC41MzEwOCwgIDEuMTA4MTMsIC0wLjA3Mjc2ICksXG5cdFx0dmVjMyggLTAuMDczNjcsIC0wLjAwNjA1LCAgMS4wNzYwMiApXG5cdCk7XG5cdGNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmUgLyAwLjY7XG5cdGNvbG9yID0gQUNFU0lucHV0TWF0ICogY29sb3I7XG5cdGNvbG9yID0gUlJUQW5kT0RURml0KCBjb2xvciApO1xuXHRjb2xvciA9IEFDRVNPdXRwdXRNYXQgKiBjb2xvcjtcblx0cmV0dXJuIHNhdHVyYXRlKCBjb2xvciApO1xufVxudmVjMyBDdXN0b21Ub25lTWFwcGluZyggdmVjMyBjb2xvciApIHsgcmV0dXJuIGNvbG9yOyB9Iix0cmFuc21pc3Npb25fZnJhZ21lbnQ6IiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5cdGZsb2F0IHRyYW5zbWlzc2lvbkZhY3RvciA9IHRyYW5zbWlzc2lvbjtcblx0ZmxvYXQgdGhpY2tuZXNzRmFjdG9yID0gdGhpY2tuZXNzO1xuXHQjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTk1BUFxuXHRcdHRyYW5zbWlzc2lvbkZhY3RvciAqPSB0ZXh0dXJlMkQoIHRyYW5zbWlzc2lvbk1hcCwgdlV2ICkucjtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfVEhJQ0tORVNTTUFQXG5cdFx0dGhpY2tuZXNzRmFjdG9yICo9IHRleHR1cmUyRCggdGhpY2tuZXNzTWFwLCB2VXYgKS5nO1xuXHQjZW5kaWZcblx0dmVjMyBwb3MgPSB2V29ybGRQb3NpdGlvbi54eXogLyB2V29ybGRQb3NpdGlvbi53O1xuXHR2ZWMzIHYgPSBub3JtYWxpemUoIGNhbWVyYVBvc2l0aW9uIC0gcG9zICk7XG5cdHZlYzMgbiA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIG5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRmbG9hdCBpb3IgPSAoIDEuMCArIDAuNCAqIHJlZmxlY3Rpdml0eSApIC8gKCAxLjAgLSAwLjQgKiByZWZsZWN0aXZpdHkgKTtcblx0dmVjMyB0cmFuc21pc3Npb24gPSB0cmFuc21pc3Npb25GYWN0b3IgKiBnZXRJQkxWb2x1bWVSZWZyYWN0aW9uKFxuXHRcdG4sIHYsIHJvdWdobmVzc0ZhY3RvciwgbWF0ZXJpYWwuZGlmZnVzZUNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLFxuXHRcdHBvcywgbW9kZWxNYXRyaXgsIHZpZXdNYXRyaXgsIHByb2plY3Rpb25NYXRyaXgsIGlvciwgdGhpY2tuZXNzRmFjdG9yLFxuXHRcdGF0dGVudWF0aW9uVGludCwgYXR0ZW51YXRpb25EaXN0YW5jZSApO1xuXHR0b3RhbERpZmZ1c2UgPSBtaXgoIHRvdGFsRGlmZnVzZSwgdHJhbnNtaXNzaW9uLCB0cmFuc21pc3Npb25GYWN0b3IgKTtcbiNlbmRpZiIsdHJhbnNtaXNzaW9uX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5cdCNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OTUFQXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgdHJhbnNtaXNzaW9uTWFwO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9USElDS05FU1NNQVBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCB0aGlja25lc3NNYXA7XG5cdCNlbmRpZlxuXHR1bmlmb3JtIHZlYzIgdHJhbnNtaXNzaW9uU2FtcGxlclNpemU7XG5cdHVuaWZvcm0gc2FtcGxlcjJEIHRyYW5zbWlzc2lvblNhbXBsZXJNYXA7XG5cdHVuaWZvcm0gbWF0NCBtb2RlbE1hdHJpeDtcblx0dW5pZm9ybSBtYXQ0IHByb2plY3Rpb25NYXRyaXg7XG5cdHZhcnlpbmcgdmVjNCB2V29ybGRQb3NpdGlvbjtcblx0dmVjMyBnZXRWb2x1bWVUcmFuc21pc3Npb25SYXkodmVjMyBuLCB2ZWMzIHYsIGZsb2F0IHRoaWNrbmVzcywgZmxvYXQgaW9yLCBtYXQ0IG1vZGVsTWF0cml4KSB7XG5cdFx0dmVjMyByZWZyYWN0aW9uVmVjdG9yID0gcmVmcmFjdCgtdiwgbm9ybWFsaXplKG4pLCAxLjAgLyBpb3IpO1xuXHRcdHZlYzMgbW9kZWxTY2FsZTtcblx0XHRtb2RlbFNjYWxlLnggPSBsZW5ndGgodmVjMyhtb2RlbE1hdHJpeFswXS54eXopKTtcblx0XHRtb2RlbFNjYWxlLnkgPSBsZW5ndGgodmVjMyhtb2RlbE1hdHJpeFsxXS54eXopKTtcblx0XHRtb2RlbFNjYWxlLnogPSBsZW5ndGgodmVjMyhtb2RlbE1hdHJpeFsyXS54eXopKTtcblx0XHRyZXR1cm4gbm9ybWFsaXplKHJlZnJhY3Rpb25WZWN0b3IpICogdGhpY2tuZXNzICogbW9kZWxTY2FsZTtcblx0fVxuXHRmbG9hdCBhcHBseUlvclRvUm91Z2huZXNzKGZsb2F0IHJvdWdobmVzcywgZmxvYXQgaW9yKSB7XG5cdFx0cmV0dXJuIHJvdWdobmVzcyAqIGNsYW1wKGlvciAqIDIuMCAtIDIuMCwgMC4wLCAxLjApO1xuXHR9XG5cdHZlYzMgZ2V0VHJhbnNtaXNzaW9uU2FtcGxlKHZlYzIgZnJhZ0Nvb3JkLCBmbG9hdCByb3VnaG5lc3MsIGZsb2F0IGlvcikge1xuXHRcdGZsb2F0IGZyYW1lYnVmZmVyTG9kID0gbG9nMih0cmFuc21pc3Npb25TYW1wbGVyU2l6ZS54KSAqIGFwcGx5SW9yVG9Sb3VnaG5lc3Mocm91Z2huZXNzLCBpb3IpO1xuXHRcdHJldHVybiB0ZXh0dXJlMkRMb2RFWFQodHJhbnNtaXNzaW9uU2FtcGxlck1hcCwgZnJhZ0Nvb3JkLnh5LCBmcmFtZWJ1ZmZlckxvZCkucmdiO1xuXHR9XG5cdHZlYzMgYXBwbHlWb2x1bWVBdHRlbnVhdGlvbih2ZWMzIHJhZGlhbmNlLCBmbG9hdCB0cmFuc21pc3Npb25EaXN0YW5jZSwgdmVjMyBhdHRlbnVhdGlvbkNvbG9yLCBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlKSB7XG5cdFx0aWYgKGF0dGVudWF0aW9uRGlzdGFuY2UgPT0gMC4wKSB7XG5cdFx0XHRyZXR1cm4gcmFkaWFuY2U7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZlYzMgYXR0ZW51YXRpb25Db2VmZmljaWVudCA9IC1sb2coYXR0ZW51YXRpb25Db2xvcikgLyBhdHRlbnVhdGlvbkRpc3RhbmNlO1xuXHRcdFx0dmVjMyB0cmFuc21pdHRhbmNlID0gZXhwKC1hdHRlbnVhdGlvbkNvZWZmaWNpZW50ICogdHJhbnNtaXNzaW9uRGlzdGFuY2UpO1x0XHRcdHJldHVybiB0cmFuc21pdHRhbmNlICogcmFkaWFuY2U7XG5cdFx0fVxuXHR9XG5cdHZlYzMgZ2V0SUJMVm9sdW1lUmVmcmFjdGlvbih2ZWMzIG4sIHZlYzMgdiwgZmxvYXQgcGVyY2VwdHVhbFJvdWdobmVzcywgdmVjMyBiYXNlQ29sb3IsIHZlYzMgc3BlY3VsYXJDb2xvcixcblx0XHR2ZWMzIHBvc2l0aW9uLCBtYXQ0IG1vZGVsTWF0cml4LCBtYXQ0IHZpZXdNYXRyaXgsIG1hdDQgcHJvak1hdHJpeCwgZmxvYXQgaW9yLCBmbG9hdCB0aGlja25lc3MsXG5cdFx0dmVjMyBhdHRlbnVhdGlvbkNvbG9yLCBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlKSB7XG5cdFx0dmVjMyB0cmFuc21pc3Npb25SYXkgPSBnZXRWb2x1bWVUcmFuc21pc3Npb25SYXkobiwgdiwgdGhpY2tuZXNzLCBpb3IsIG1vZGVsTWF0cml4KTtcblx0XHR2ZWMzIHJlZnJhY3RlZFJheUV4aXQgPSBwb3NpdGlvbiArIHRyYW5zbWlzc2lvblJheTtcblx0XHR2ZWM0IG5kY1BvcyA9IHByb2pNYXRyaXggKiB2aWV3TWF0cml4ICogdmVjNChyZWZyYWN0ZWRSYXlFeGl0LCAxLjApO1xuXHRcdHZlYzIgcmVmcmFjdGlvbkNvb3JkcyA9IG5kY1Bvcy54eSAvIG5kY1Bvcy53O1xuXHRcdHJlZnJhY3Rpb25Db29yZHMgKz0gMS4wO1xuXHRcdHJlZnJhY3Rpb25Db29yZHMgLz0gMi4wO1xuXHRcdHZlYzMgdHJhbnNtaXR0ZWRMaWdodCA9IGdldFRyYW5zbWlzc2lvblNhbXBsZShyZWZyYWN0aW9uQ29vcmRzLCBwZXJjZXB0dWFsUm91Z2huZXNzLCBpb3IpO1xuXHRcdHZlYzMgYXR0ZW51YXRlZENvbG9yID0gYXBwbHlWb2x1bWVBdHRlbnVhdGlvbih0cmFuc21pdHRlZExpZ2h0LCBsZW5ndGgodHJhbnNtaXNzaW9uUmF5KSwgYXR0ZW51YXRpb25Db2xvciwgYXR0ZW51YXRpb25EaXN0YW5jZSk7XG5cdFx0cmV0dXJuICgxLjAgLSBzcGVjdWxhckNvbG9yKSAqIGF0dGVudWF0ZWRDb2xvciAqIGJhc2VDb2xvcjtcblx0fVxuI2VuZGlmIix1dl9wYXJzX2ZyYWdtZW50OiIjaWYgKCBkZWZpbmVkKCBVU0VfVVYgKSAmJiAhIGRlZmluZWQoIFVWU19WRVJURVhfT05MWSApIClcblx0dmFyeWluZyB2ZWMyIHZVdjtcbiNlbmRpZiIsdXZfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfVVZcblx0I2lmZGVmIFVWU19WRVJURVhfT05MWVxuXHRcdHZlYzIgdlV2O1xuXHQjZWxzZVxuXHRcdHZhcnlpbmcgdmVjMiB2VXY7XG5cdCNlbmRpZlxuXHR1bmlmb3JtIG1hdDMgdXZUcmFuc2Zvcm07XG4jZW5kaWYiLHV2X3ZlcnRleDoiI2lmZGVmIFVTRV9VVlxuXHR2VXYgPSAoIHV2VHJhbnNmb3JtICogdmVjMyggdXYsIDEgKSApLnh5O1xuI2VuZGlmIix1djJfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9MSUdIVE1BUCApIHx8IGRlZmluZWQoIFVTRV9BT01BUCApXG5cdHZhcnlpbmcgdmVjMiB2VXYyO1xuI2VuZGlmIix1djJfcGFyc192ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfTElHSFRNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQU9NQVAgKVxuXHRhdHRyaWJ1dGUgdmVjMiB1djI7XG5cdHZhcnlpbmcgdmVjMiB2VXYyO1xuXHR1bmlmb3JtIG1hdDMgdXYyVHJhbnNmb3JtO1xuI2VuZGlmIix1djJfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0xJR0hUTUFQICkgfHwgZGVmaW5lZCggVVNFX0FPTUFQIClcblx0dlV2MiA9ICggdXYyVHJhbnNmb3JtICogdmVjMyggdXYyLCAxICkgKS54eTtcbiNlbmRpZiIsd29ybGRwb3NfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApIHx8IGRlZmluZWQoIERJU1RBTkNFICkgfHwgZGVmaW5lZCAoIFVTRV9TSEFET1dNQVAgKSB8fCBkZWZpbmVkICggVVNFX1RSQU5TTUlTU0lPTiApXG5cdHZlYzQgd29ybGRQb3NpdGlvbiA9IHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTtcblx0I2lmZGVmIFVTRV9JTlNUQU5DSU5HXG5cdFx0d29ybGRQb3NpdGlvbiA9IGluc3RhbmNlTWF0cml4ICogd29ybGRQb3NpdGlvbjtcblx0I2VuZGlmXG5cdHdvcmxkUG9zaXRpb24gPSBtb2RlbE1hdHJpeCAqIHdvcmxkUG9zaXRpb247XG4jZW5kaWYiLGJhY2tncm91bmRfZnJhZzoidW5pZm9ybSBzYW1wbGVyMkQgdDJEO1xudmFyeWluZyB2ZWMyIHZVdjtcbnZvaWQgbWFpbigpIHtcblx0dmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRCggdDJELCB2VXYgKTtcblx0Z2xfRnJhZ0NvbG9yID0gbWFwVGV4ZWxUb0xpbmVhciggdGV4Q29sb3IgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufSIsYmFja2dyb3VuZF92ZXJ0OiJ2YXJ5aW5nIHZlYzIgdlV2O1xudW5pZm9ybSBtYXQzIHV2VHJhbnNmb3JtO1xudm9pZCBtYWluKCkge1xuXHR2VXYgPSAoIHV2VHJhbnNmb3JtICogdmVjMyggdXYsIDEgKSApLnh5O1xuXHRnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLnh5LCAxLjAsIDEuMCApO1xufSIsY3ViZV9mcmFnOiIjaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PlxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdHZlYzMgdlJlZmxlY3QgPSB2V29ybGREaXJlY3Rpb247XG5cdCNpbmNsdWRlIDxlbnZtYXBfZnJhZ21lbnQ+XG5cdGdsX0ZyYWdDb2xvciA9IGVudkNvbG9yO1xuXHRnbF9GcmFnQ29sb3IuYSAqPSBvcGFjaXR5O1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG59IixjdWJlX3ZlcnQ6InZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxudm9pZCBtYWluKCkge1xuXHR2V29ybGREaXJlY3Rpb24gPSB0cmFuc2Zvcm1EaXJlY3Rpb24oIHBvc2l0aW9uLCBtb2RlbE1hdHJpeCApO1xuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdGdsX1Bvc2l0aW9uLnogPSBnbF9Qb3NpdGlvbi53O1xufSIsZGVwdGhfZnJhZzoiI2lmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMFxuXHR1bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZhcnlpbmcgdmVjMiB2SGlnaFByZWNpc2lvblpXO1xudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIDEuMCApO1xuXHQjaWYgREVQVEhfUEFDS0lORyA9PSAzMjAwXG5cdFx0ZGlmZnVzZUNvbG9yLmEgPSBvcGFjaXR5O1xuXHQjZW5kaWZcblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdGZsb2F0IGZyYWdDb29yZFogPSAwLjUgKiB2SGlnaFByZWNpc2lvblpXWzBdIC8gdkhpZ2hQcmVjaXNpb25aV1sxXSArIDAuNTtcblx0I2lmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMFxuXHRcdGdsX0ZyYWdDb2xvciA9IHZlYzQoIHZlYzMoIDEuMCAtIGZyYWdDb29yZFogKSwgb3BhY2l0eSApO1xuXHQjZWxpZiBERVBUSF9QQUNLSU5HID09IDMyMDFcblx0XHRnbF9GcmFnQ29sb3IgPSBwYWNrRGVwdGhUb1JHQkEoIGZyYWdDb29yZFogKTtcblx0I2VuZGlmXG59IixkZXB0aF92ZXJ0OiIjaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52YXJ5aW5nIHZlYzIgdkhpZ2hQcmVjaXNpb25aVztcbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVBcblx0XHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZIaWdoUHJlY2lzaW9uWlcgPSBnbF9Qb3NpdGlvbi56dztcbn0iLGRpc3RhbmNlUkdCQV9mcmFnOiIjZGVmaW5lIERJU1RBTkNFXG51bmlmb3JtIHZlYzMgcmVmZXJlbmNlUG9zaXRpb247XG51bmlmb3JtIGZsb2F0IG5lYXJEaXN0YW5jZTtcbnVuaWZvcm0gZmxvYXQgZmFyRGlzdGFuY2U7XG52YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluICgpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCAxLjAgKTtcblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHRmbG9hdCBkaXN0ID0gbGVuZ3RoKCB2V29ybGRQb3NpdGlvbiAtIHJlZmVyZW5jZVBvc2l0aW9uICk7XG5cdGRpc3QgPSAoIGRpc3QgLSBuZWFyRGlzdGFuY2UgKSAvICggZmFyRGlzdGFuY2UgLSBuZWFyRGlzdGFuY2UgKTtcblx0ZGlzdCA9IHNhdHVyYXRlKCBkaXN0ICk7XG5cdGdsX0ZyYWdDb2xvciA9IHBhY2tEZXB0aFRvUkdCQSggZGlzdCApO1xufSIsZGlzdGFuY2VSR0JBX3ZlcnQ6IiNkZWZpbmUgRElTVEFOQ0VcbnZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVBcblx0XHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbi54eXo7XG59IixlcXVpcmVjdF9mcmFnOiJ1bmlmb3JtIHNhbXBsZXIyRCB0RXF1aXJlY3Q7XG52YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbnZvaWQgbWFpbigpIHtcblx0dmVjMyBkaXJlY3Rpb24gPSBub3JtYWxpemUoIHZXb3JsZERpcmVjdGlvbiApO1xuXHR2ZWMyIHNhbXBsZVVWID0gZXF1aXJlY3RVdiggZGlyZWN0aW9uICk7XG5cdHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQoIHRFcXVpcmVjdCwgc2FtcGxlVVYgKTtcblx0Z2xfRnJhZ0NvbG9yID0gbWFwVGV4ZWxUb0xpbmVhciggdGV4Q29sb3IgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufSIsZXF1aXJlY3RfdmVydDoidmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG52b2lkIG1haW4oKSB7XG5cdHZXb3JsZERpcmVjdGlvbiA9IHRyYW5zZm9ybURpcmVjdGlvbiggcG9zaXRpb24sIG1vZGVsTWF0cml4ICk7XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cbn0iLGxpbmVkYXNoZWRfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG51bmlmb3JtIGZsb2F0IGRhc2hTaXplO1xudW5pZm9ybSBmbG9hdCB0b3RhbFNpemU7XG52YXJ5aW5nIGZsb2F0IHZMaW5lRGlzdGFuY2U7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0aWYgKCBtb2QoIHZMaW5lRGlzdGFuY2UsIHRvdGFsU2l6ZSApID4gZGFzaFNpemUgKSB7XG5cdFx0ZGlzY2FyZDtcblx0fVxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTtcblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHRvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cbn0iLGxpbmVkYXNoZWRfdmVydDoidW5pZm9ybSBmbG9hdCBzY2FsZTtcbmF0dHJpYnV0ZSBmbG9hdCBsaW5lRGlzdGFuY2U7XG52YXJ5aW5nIGZsb2F0IHZMaW5lRGlzdGFuY2U7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdHZMaW5lRGlzdGFuY2UgPSBzY2FsZSAqIGxpbmVEaXN0YW5jZTtcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixtZXNoYmFzaWNfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxzcGVjdWxhcm1hcF9mcmFnbWVudD5cblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0I2lmZGVmIFVTRV9MSUdIVE1BUFxuXHRcblx0XHR2ZWM0IGxpZ2h0TWFwVGV4ZWw9IHRleHR1cmUyRCggbGlnaHRNYXAsIHZVdjIgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gbGlnaHRNYXBUZXhlbFRvTGluZWFyKCBsaWdodE1hcFRleGVsICkucmdiICogbGlnaHRNYXBJbnRlbnNpdHk7XG5cdCNlbHNlXG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IHZlYzMoIDEuMCApO1xuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKj0gZGlmZnVzZUNvbG9yLnJnYjtcblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlO1xuXHQjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PlxuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaGJhc2ljX3ZlcnQ6IiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8dXYyX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2lmIGRlZmluZWQgKCBVU0VfRU5WTUFQICkgfHwgZGVmaW5lZCAoIFVTRV9TS0lOTklORyApXG5cdFx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxlbnZtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2hsYW1iZXJ0X2ZyYWc6InVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSB2ZWMzIGVtaXNzaXZlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudmFyeWluZyB2ZWMzIHZMaWdodEZyb250O1xudmFyeWluZyB2ZWMzIHZJbmRpcmVjdEZyb250O1xuI2lmZGVmIERPVUJMRV9TSURFRFxuXHR2YXJ5aW5nIHZlYzMgdkxpZ2h0QmFjaztcblx0dmFyeWluZyB2ZWMzIHZJbmRpcmVjdEJhY2s7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hc2tfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzcGVjdWxhcm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8c3BlY3VsYXJtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD5cblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSAoIGdsX0Zyb250RmFjaW5nICkgPyB2SW5kaXJlY3RGcm9udCA6IHZJbmRpcmVjdEJhY2s7XG5cdCNlbHNlXG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IHZJbmRpcmVjdEZyb250O1xuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGxpZ2h0bWFwX2ZyYWdtZW50PlxuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKj0gQlJERl9EaWZmdXNlX0xhbWJlcnQoIGRpZmZ1c2VDb2xvci5yZ2IgKTtcblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgPSAoIGdsX0Zyb250RmFjaW5nICkgPyB2TGlnaHRGcm9udCA6IHZMaWdodEJhY2s7XG5cdCNlbHNlXG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSA9IHZMaWdodEZyb250O1xuXHQjZW5kaWZcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSAqPSBCUkRGX0RpZmZ1c2VfTGFtYmVydCggZGlmZnVzZUNvbG9yLnJnYiApICogZ2V0U2hhZG93TWFzaygpO1xuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdCNpbmNsdWRlIDxlbnZtYXBfZnJhZ21lbnQ+XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNobGFtYmVydF92ZXJ0OiIjZGVmaW5lIExBTUJFUlRcbnZhcnlpbmcgdmVjMyB2TGlnaHRGcm9udDtcbnZhcnlpbmcgdmVjMyB2SW5kaXJlY3RGcm9udDtcbiNpZmRlZiBET1VCTEVfU0lERURcblx0dmFyeWluZyB2ZWMzIHZMaWdodEJhY2s7XG5cdHZhcnlpbmcgdmVjMyB2SW5kaXJlY3RCYWNrO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsaWdodHNfbGFtYmVydF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2htYXRjYXBfZnJhZzoiI2RlZmluZSBNQVRDQVBcbnVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudW5pZm9ybSBzYW1wbGVyMkQgbWF0Y2FwO1xudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHR2ZWMzIHZpZXdEaXIgPSBub3JtYWxpemUoIHZWaWV3UG9zaXRpb24gKTtcblx0dmVjMyB4ID0gbm9ybWFsaXplKCB2ZWMzKCB2aWV3RGlyLnosIDAuMCwgLSB2aWV3RGlyLnggKSApO1xuXHR2ZWMzIHkgPSBjcm9zcyggdmlld0RpciwgeCApO1xuXHR2ZWMyIHV2ID0gdmVjMiggZG90KCB4LCBub3JtYWwgKSwgZG90KCB5LCBub3JtYWwgKSApICogMC40OTUgKyAwLjU7XG5cdCNpZmRlZiBVU0VfTUFUQ0FQXG5cdFx0dmVjNCBtYXRjYXBDb2xvciA9IHRleHR1cmUyRCggbWF0Y2FwLCB1diApO1xuXHRcdG1hdGNhcENvbG9yID0gbWF0Y2FwVGV4ZWxUb0xpbmVhciggbWF0Y2FwQ29sb3IgKTtcblx0I2Vsc2Vcblx0XHR2ZWM0IG1hdGNhcENvbG9yID0gdmVjNCggMS4wICk7XG5cdCNlbmRpZlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSBkaWZmdXNlQ29sb3IucmdiICogbWF0Y2FwQ29sb3IucmdiO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaG1hdGNhcF92ZXJ0OiIjZGVmaW5lIE1BVENBUFxudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2lmbmRlZiBGTEFUX1NIQURFRFxuXHRcdHZOb3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG5cdFx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0XHR2VGFuZ2VudCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWRUYW5nZW50ICk7XG5cdFx0XHR2Qml0YW5nZW50ID0gbm9ybWFsaXplKCBjcm9zcyggdk5vcm1hbCwgdlRhbmdlbnQgKSAqIHRhbmdlbnQudyApO1xuXHRcdCNlbmRpZlxuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcbn0iLG1lc2h0b29uX2ZyYWc6IiNkZWZpbmUgVE9PTlxudW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIHZlYzMgZW1pc3NpdmU7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Z3JhZGllbnRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxsaWdodHNfdG9vbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0dmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfdG9vbl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2VuZD5cblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaHRvb25fdmVydDoiI2RlZmluZSBUT09OXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaHBob25nX2ZyYWc6IiNkZWZpbmUgUEhPTkdcbnVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSB2ZWMzIGVtaXNzaXZlO1xudW5pZm9ybSB2ZWMzIHNwZWN1bGFyO1xudW5pZm9ybSBmbG9hdCBzaGluaW5lc3M7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxsaWdodHNfcGhvbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0dmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPHNwZWN1bGFybWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c19waG9uZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2VuZD5cblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xuXHQjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PlxuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaHBob25nX3ZlcnQ6IiNkZWZpbmUgUEhPTkdcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2hwaHlzaWNhbF9mcmFnOiIjZGVmaW5lIFNUQU5EQVJEXG4jaWZkZWYgUEhZU0lDQUxcblx0I2RlZmluZSBSRUZMRUNUSVZJVFlcblx0I2RlZmluZSBDTEVBUkNPQVRcblx0I2RlZmluZSBTUEVDVUxBUlxuI2VuZGlmXG51bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gdmVjMyBlbWlzc2l2ZTtcbnVuaWZvcm0gZmxvYXQgcm91Z2huZXNzO1xudW5pZm9ybSBmbG9hdCBtZXRhbG5lc3M7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaWZkZWYgVVNFX1RSQU5TTUlTU0lPTlxuXHR1bmlmb3JtIGZsb2F0IHRyYW5zbWlzc2lvbjtcblx0dW5pZm9ybSBmbG9hdCB0aGlja25lc3M7XG5cdHVuaWZvcm0gZmxvYXQgYXR0ZW51YXRpb25EaXN0YW5jZTtcblx0dW5pZm9ybSB2ZWMzIGF0dGVudWF0aW9uVGludDtcbiNlbmRpZlxuI2lmZGVmIFJFRkxFQ1RJVklUWVxuXHR1bmlmb3JtIGZsb2F0IHJlZmxlY3Rpdml0eTtcbiNlbmRpZlxuI2lmZGVmIFNQRUNVTEFSXG5cdHVuaWZvcm0gZmxvYXQgc3BlY3VsYXJJbnRlbnNpdHk7XG5cdHVuaWZvcm0gdmVjMyBzcGVjdWxhclRpbnQ7XG5cdCNpZmRlZiBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBzcGVjdWxhckludGVuc2l0eU1hcDtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfU1BFQ1VMQVJUSU5UTUFQXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgc3BlY3VsYXJUaW50TWFwO1xuXHQjZW5kaWZcbiNlbmRpZlxuI2lmZGVmIENMRUFSQ09BVFxuXHR1bmlmb3JtIGZsb2F0IGNsZWFyY29hdDtcblx0dW5pZm9ybSBmbG9hdCBjbGVhcmNvYXRSb3VnaG5lc3M7XG4jZW5kaWZcbiNpZmRlZiBVU0VfU0hFRU5cblx0dW5pZm9ybSB2ZWMzIHNoZWVuO1xuI2VuZGlmXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDx0cmFuc21pc3Npb25fcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9waHlzaWNhbF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPGxpZ2h0c19waHlzaWNhbF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGVhcmNvYXRfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxyb3VnaG5lc3NtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtZXRhbG5lc3NtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0dmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPHJvdWdobmVzc21hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1ldGFsbmVzc21hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8Y2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPGNsZWFyY29hdF9ub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX3BoeXNpY2FsX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfZW5kPlxuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgdG90YWxEaWZmdXNlID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZTtcblx0dmVjMyB0b3RhbFNwZWN1bGFyID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyO1xuXHQjaW5jbHVkZSA8dHJhbnNtaXNzaW9uX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB0b3RhbERpZmZ1c2UgKyB0b3RhbFNwZWN1bGFyICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaHBoeXNpY2FsX3ZlcnQ6IiNkZWZpbmUgU1RBTkRBUkRcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmFyeWluZyB2ZWMzIHZUYW5nZW50O1xuXHRcdHZhcnlpbmcgdmVjMyB2Qml0YW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZlxuI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0dmFyeWluZyB2ZWM0IHZXb3JsZFBvc2l0aW9uO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dlRhbmdlbnQgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkVGFuZ2VudCApO1xuXHRcdHZCaXRhbmdlbnQgPSBub3JtYWxpemUoIGNyb3NzKCB2Tm9ybWFsLCB2VGFuZ2VudCApICogdGFuZ2VudC53ICk7XG5cdCNlbmRpZlxuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxuI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0dldvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uO1xuI2VuZGlmXG59Iixub3JtYWxfZnJhZzoiI2RlZmluZSBOT1JNQUxcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpZiBkZWZpbmVkKCBGTEFUX1NIQURFRCApIHx8IGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApXG5cdHZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2VuZGlmXG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggcGFja05vcm1hbFRvUkdCKCBub3JtYWwgKSwgb3BhY2l0eSApO1xufSIsbm9ybWFsX3ZlcnQ6IiNkZWZpbmUgTk9STUFMXG4jaWYgZGVmaW5lZCggRkxBVF9TSEFERUQgKSB8fCBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKVxuXHR2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNlbmRpZlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmFyeWluZyB2ZWMzIHZUYW5nZW50O1xuXHRcdHZhcnlpbmcgdmVjMyB2Qml0YW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dlRhbmdlbnQgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkVGFuZ2VudCApO1xuXHRcdHZCaXRhbmdlbnQgPSBub3JtYWxpemUoIGNyb3NzKCB2Tm9ybWFsLCB2VGFuZ2VudCApICogdGFuZ2VudC53ICk7XG5cdCNlbmRpZlxuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuI2lmIGRlZmluZWQoIEZMQVRfU0hBREVEICkgfHwgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIClcblx0dlZpZXdQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7XG4jZW5kaWZcbn0iLHBvaW50c19mcmFnOiJ1bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFydGljbGVfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTtcblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9wYXJ0aWNsZV9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHRvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cbn0iLHBvaW50c192ZXJ0OiJ1bmlmb3JtIGZsb2F0IHNpemU7XG51bmlmb3JtIGZsb2F0IHNjYWxlO1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdGdsX1BvaW50U2l6ZSA9IHNpemU7XG5cdCNpZmRlZiBVU0VfU0laRUFUVEVOVUFUSU9OXG5cdFx0Ym9vbCBpc1BlcnNwZWN0aXZlID0gaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApO1xuXHRcdGlmICggaXNQZXJzcGVjdGl2ZSApIGdsX1BvaW50U2l6ZSAqPSAoIHNjYWxlIC8gLSBtdlBvc2l0aW9uLnogKTtcblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLHNoYWRvd19mcmFnOiJ1bmlmb3JtIHZlYzMgY29sb3I7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFza19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSAqICggMS4wIC0gZ2V0U2hhZG93TWFzaygpICkgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxufSIsc2hhZG93X3ZlcnQ6IiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsc3ByaXRlX2ZyYWc6InVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gdmVjMyggMC4wICk7XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0b3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2I7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cbn0iLHNwcml0ZV92ZXJ0OiJ1bmlmb3JtIGZsb2F0IHJvdGF0aW9uO1xudW5pZm9ybSB2ZWMyIGNlbnRlcjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0dmVjNCBtdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVjNCggMC4wLCAwLjAsIDAuMCwgMS4wICk7XG5cdHZlYzIgc2NhbGU7XG5cdHNjYWxlLnggPSBsZW5ndGgoIHZlYzMoIG1vZGVsTWF0cml4WyAwIF0ueCwgbW9kZWxNYXRyaXhbIDAgXS55LCBtb2RlbE1hdHJpeFsgMCBdLnogKSApO1xuXHRzY2FsZS55ID0gbGVuZ3RoKCB2ZWMzKCBtb2RlbE1hdHJpeFsgMSBdLngsIG1vZGVsTWF0cml4WyAxIF0ueSwgbW9kZWxNYXRyaXhbIDEgXS56ICkgKTtcblx0I2lmbmRlZiBVU0VfU0laRUFUVEVOVUFUSU9OXG5cdFx0Ym9vbCBpc1BlcnNwZWN0aXZlID0gaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApO1xuXHRcdGlmICggaXNQZXJzcGVjdGl2ZSApIHNjYWxlICo9IC0gbXZQb3NpdGlvbi56O1xuXHQjZW5kaWZcblx0dmVjMiBhbGlnbmVkUG9zaXRpb24gPSAoIHBvc2l0aW9uLnh5IC0gKCBjZW50ZXIgLSB2ZWMyKCAwLjUgKSApICkgKiBzY2FsZTtcblx0dmVjMiByb3RhdGVkUG9zaXRpb247XG5cdHJvdGF0ZWRQb3NpdGlvbi54ID0gY29zKCByb3RhdGlvbiApICogYWxpZ25lZFBvc2l0aW9uLnggLSBzaW4oIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueTtcblx0cm90YXRlZFBvc2l0aW9uLnkgPSBzaW4oIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueCArIGNvcyggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi55O1xuXHRtdlBvc2l0aW9uLnh5ICs9IHJvdGF0ZWRQb3NpdGlvbjtcblx0Z2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSJ9LHpzdD17Y29tbW9uOntkaWZmdXNlOnt2YWx1ZTpuZXcgUnJ0KDE2Nzc3MjE1KX0sb3BhY2l0eTp7dmFsdWU6MX0sbWFwOnt2YWx1ZTpudWxsfSx1dlRyYW5zZm9ybTp7dmFsdWU6bmV3ICRpdH0sdXYyVHJhbnNmb3JtOnt2YWx1ZTpuZXcgJGl0fSxhbHBoYU1hcDp7dmFsdWU6bnVsbH19LHNwZWN1bGFybWFwOntzcGVjdWxhck1hcDp7dmFsdWU6bnVsbH19LGVudm1hcDp7ZW52TWFwOnt2YWx1ZTpudWxsfSxmbGlwRW52TWFwOnt2YWx1ZTotMX0scmVmbGVjdGl2aXR5Ont2YWx1ZToxfSxyZWZyYWN0aW9uUmF0aW86e3ZhbHVlOi45OH0sbWF4TWlwTGV2ZWw6e3ZhbHVlOjB9fSxhb21hcDp7YW9NYXA6e3ZhbHVlOm51bGx9LGFvTWFwSW50ZW5zaXR5Ont2YWx1ZToxfX0sbGlnaHRtYXA6e2xpZ2h0TWFwOnt2YWx1ZTpudWxsfSxsaWdodE1hcEludGVuc2l0eTp7dmFsdWU6MX19LGVtaXNzaXZlbWFwOntlbWlzc2l2ZU1hcDp7dmFsdWU6bnVsbH19LGJ1bXBtYXA6e2J1bXBNYXA6e3ZhbHVlOm51bGx9LGJ1bXBTY2FsZTp7dmFsdWU6MX19LG5vcm1hbG1hcDp7bm9ybWFsTWFwOnt2YWx1ZTpudWxsfSxub3JtYWxTY2FsZTp7dmFsdWU6bmV3IFFpdCgxLDEpfX0sZGlzcGxhY2VtZW50bWFwOntkaXNwbGFjZW1lbnRNYXA6e3ZhbHVlOm51bGx9LGRpc3BsYWNlbWVudFNjYWxlOnt2YWx1ZToxfSxkaXNwbGFjZW1lbnRCaWFzOnt2YWx1ZTowfX0scm91Z2huZXNzbWFwOntyb3VnaG5lc3NNYXA6e3ZhbHVlOm51bGx9fSxtZXRhbG5lc3NtYXA6e21ldGFsbmVzc01hcDp7dmFsdWU6bnVsbH19LGdyYWRpZW50bWFwOntncmFkaWVudE1hcDp7dmFsdWU6bnVsbH19LGZvZzp7Zm9nRGVuc2l0eTp7dmFsdWU6MjVlLTV9LGZvZ05lYXI6e3ZhbHVlOjF9LGZvZ0Zhcjp7dmFsdWU6MmUzfSxmb2dDb2xvcjp7dmFsdWU6bmV3IFJydCgxNjc3NzIxNSl9fSxsaWdodHM6e2FtYmllbnRMaWdodENvbG9yOnt2YWx1ZTpbXX0sbGlnaHRQcm9iZTp7dmFsdWU6W119LGRpcmVjdGlvbmFsTGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntkaXJlY3Rpb246e30sY29sb3I6e319fSxkaXJlY3Rpb25hbExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9fX0sZGlyZWN0aW9uYWxTaGFkb3dNYXA6e3ZhbHVlOltdfSxkaXJlY3Rpb25hbFNoYWRvd01hdHJpeDp7dmFsdWU6W119LHNwb3RMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2NvbG9yOnt9LHBvc2l0aW9uOnt9LGRpcmVjdGlvbjp7fSxkaXN0YW5jZTp7fSxjb25lQ29zOnt9LHBlbnVtYnJhQ29zOnt9LGRlY2F5Ont9fX0sc3BvdExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9fX0sc3BvdFNoYWRvd01hcDp7dmFsdWU6W119LHNwb3RTaGFkb3dNYXRyaXg6e3ZhbHVlOltdfSxwb2ludExpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7Y29sb3I6e30scG9zaXRpb246e30sZGVjYXk6e30sZGlzdGFuY2U6e319fSxwb2ludExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9LHNoYWRvd0NhbWVyYU5lYXI6e30sc2hhZG93Q2FtZXJhRmFyOnt9fX0scG9pbnRTaGFkb3dNYXA6e3ZhbHVlOltdfSxwb2ludFNoYWRvd01hdHJpeDp7dmFsdWU6W119LGhlbWlzcGhlcmVMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2RpcmVjdGlvbjp7fSxza3lDb2xvcjp7fSxncm91bmRDb2xvcjp7fX19LHJlY3RBcmVhTGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntjb2xvcjp7fSxwb3NpdGlvbjp7fSx3aWR0aDp7fSxoZWlnaHQ6e319fSxsdGNfMTp7dmFsdWU6bnVsbH0sbHRjXzI6e3ZhbHVlOm51bGx9fSxwb2ludHM6e2RpZmZ1c2U6e3ZhbHVlOm5ldyBScnQoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxzaXplOnt2YWx1ZToxfSxzY2FsZTp7dmFsdWU6MX0sbWFwOnt2YWx1ZTpudWxsfSxhbHBoYU1hcDp7dmFsdWU6bnVsbH0sdXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyAkaXR9fSxzcHJpdGU6e2RpZmZ1c2U6e3ZhbHVlOm5ldyBScnQoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxjZW50ZXI6e3ZhbHVlOm5ldyBRaXQoLjUsLjUpfSxyb3RhdGlvbjp7dmFsdWU6MH0sbWFwOnt2YWx1ZTpudWxsfSxhbHBoYU1hcDp7dmFsdWU6bnVsbH0sdXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyAkaXR9fX0sSXN0PXtiYXNpYzp7dW5pZm9ybXM6Z3N0KFt6c3QuY29tbW9uLHpzdC5zcGVjdWxhcm1hcCx6c3QuZW52bWFwLHpzdC5hb21hcCx6c3QubGlnaHRtYXAsenN0LmZvZ10pLHZlcnRleFNoYWRlcjpOc3QubWVzaGJhc2ljX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0Lm1lc2hiYXNpY19mcmFnfSxsYW1iZXJ0Ont1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LnNwZWN1bGFybWFwLHpzdC5lbnZtYXAsenN0LmFvbWFwLHpzdC5saWdodG1hcCx6c3QuZW1pc3NpdmVtYXAsenN0LmZvZyx6c3QubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3IFJydCgwKX19XSksdmVydGV4U2hhZGVyOk5zdC5tZXNobGFtYmVydF92ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5tZXNobGFtYmVydF9mcmFnfSxwaG9uZzp7dW5pZm9ybXM6Z3N0KFt6c3QuY29tbW9uLHpzdC5zcGVjdWxhcm1hcCx6c3QuZW52bWFwLHpzdC5hb21hcCx6c3QubGlnaHRtYXAsenN0LmVtaXNzaXZlbWFwLHpzdC5idW1wbWFwLHpzdC5ub3JtYWxtYXAsenN0LmRpc3BsYWNlbWVudG1hcCx6c3QuZm9nLHpzdC5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgUnJ0KDApfSxzcGVjdWxhcjp7dmFsdWU6bmV3IFJydCgxMTE4NDgxKX0sc2hpbmluZXNzOnt2YWx1ZTozMH19XSksdmVydGV4U2hhZGVyOk5zdC5tZXNocGhvbmdfdmVydCxmcmFnbWVudFNoYWRlcjpOc3QubWVzaHBob25nX2ZyYWd9LHN0YW5kYXJkOnt1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LmVudm1hcCx6c3QuYW9tYXAsenN0LmxpZ2h0bWFwLHpzdC5lbWlzc2l2ZW1hcCx6c3QuYnVtcG1hcCx6c3Qubm9ybWFsbWFwLHpzdC5kaXNwbGFjZW1lbnRtYXAsenN0LnJvdWdobmVzc21hcCx6c3QubWV0YWxuZXNzbWFwLHpzdC5mb2csenN0LmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyBScnQoMCl9LHJvdWdobmVzczp7dmFsdWU6MX0sbWV0YWxuZXNzOnt2YWx1ZTowfSxlbnZNYXBJbnRlbnNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjpOc3QubWVzaHBoeXNpY2FsX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0Lm1lc2hwaHlzaWNhbF9mcmFnfSx0b29uOnt1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LmFvbWFwLHpzdC5saWdodG1hcCx6c3QuZW1pc3NpdmVtYXAsenN0LmJ1bXBtYXAsenN0Lm5vcm1hbG1hcCx6c3QuZGlzcGxhY2VtZW50bWFwLHpzdC5ncmFkaWVudG1hcCx6c3QuZm9nLHpzdC5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgUnJ0KDApfX1dKSx2ZXJ0ZXhTaGFkZXI6TnN0Lm1lc2h0b29uX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0Lm1lc2h0b29uX2ZyYWd9LG1hdGNhcDp7dW5pZm9ybXM6Z3N0KFt6c3QuY29tbW9uLHpzdC5idW1wbWFwLHpzdC5ub3JtYWxtYXAsenN0LmRpc3BsYWNlbWVudG1hcCx6c3QuZm9nLHttYXRjYXA6e3ZhbHVlOm51bGx9fV0pLHZlcnRleFNoYWRlcjpOc3QubWVzaG1hdGNhcF92ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5tZXNobWF0Y2FwX2ZyYWd9LHBvaW50czp7dW5pZm9ybXM6Z3N0KFt6c3QucG9pbnRzLHpzdC5mb2ddKSx2ZXJ0ZXhTaGFkZXI6TnN0LnBvaW50c192ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5wb2ludHNfZnJhZ30sZGFzaGVkOnt1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LmZvZyx7c2NhbGU6e3ZhbHVlOjF9LGRhc2hTaXplOnt2YWx1ZToxfSx0b3RhbFNpemU6e3ZhbHVlOjJ9fV0pLHZlcnRleFNoYWRlcjpOc3QubGluZWRhc2hlZF92ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5saW5lZGFzaGVkX2ZyYWd9LGRlcHRoOnt1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LmRpc3BsYWNlbWVudG1hcF0pLHZlcnRleFNoYWRlcjpOc3QuZGVwdGhfdmVydCxmcmFnbWVudFNoYWRlcjpOc3QuZGVwdGhfZnJhZ30sbm9ybWFsOnt1bmlmb3Jtczpnc3QoW3pzdC5jb21tb24senN0LmJ1bXBtYXAsenN0Lm5vcm1hbG1hcCx6c3QuZGlzcGxhY2VtZW50bWFwLHtvcGFjaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6TnN0Lm5vcm1hbF92ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5ub3JtYWxfZnJhZ30sc3ByaXRlOnt1bmlmb3Jtczpnc3QoW3pzdC5zcHJpdGUsenN0LmZvZ10pLHZlcnRleFNoYWRlcjpOc3Quc3ByaXRlX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0LnNwcml0ZV9mcmFnfSxiYWNrZ3JvdW5kOnt1bmlmb3Jtczp7dXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyAkaXR9LHQyRDp7dmFsdWU6bnVsbH19LHZlcnRleFNoYWRlcjpOc3QuYmFja2dyb3VuZF92ZXJ0LGZyYWdtZW50U2hhZGVyOk5zdC5iYWNrZ3JvdW5kX2ZyYWd9LGN1YmU6e3VuaWZvcm1zOmdzdChbenN0LmVudm1hcCx7b3BhY2l0eTp7dmFsdWU6MX19XSksdmVydGV4U2hhZGVyOk5zdC5jdWJlX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0LmN1YmVfZnJhZ30sZXF1aXJlY3Q6e3VuaWZvcm1zOnt0RXF1aXJlY3Q6e3ZhbHVlOm51bGx9fSx2ZXJ0ZXhTaGFkZXI6TnN0LmVxdWlyZWN0X3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0LmVxdWlyZWN0X2ZyYWd9LGRpc3RhbmNlUkdCQTp7dW5pZm9ybXM6Z3N0KFt6c3QuY29tbW9uLHpzdC5kaXNwbGFjZW1lbnRtYXAse3JlZmVyZW5jZVBvc2l0aW9uOnt2YWx1ZTpuZXcgY2F0fSxuZWFyRGlzdGFuY2U6e3ZhbHVlOjF9LGZhckRpc3RhbmNlOnt2YWx1ZToxZTN9fV0pLHZlcnRleFNoYWRlcjpOc3QuZGlzdGFuY2VSR0JBX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0LmRpc3RhbmNlUkdCQV9mcmFnfSxzaGFkb3c6e3VuaWZvcm1zOmdzdChbenN0LmxpZ2h0cyx6c3QuZm9nLHtjb2xvcjp7dmFsdWU6bmV3IFJydCgwKX0sb3BhY2l0eTp7dmFsdWU6MX19XSksdmVydGV4U2hhZGVyOk5zdC5zaGFkb3dfdmVydCxmcmFnbWVudFNoYWRlcjpOc3Quc2hhZG93X2ZyYWd9fTtmdW5jdGlvbiBIc3QodCxlLG4sbyxpKXtjb25zdCBhPW5ldyBScnQoMCk7bGV0IHIscyxsPTAsYz1udWxsLGQ9MCxwPW51bGw7ZnVuY3Rpb24gbSh0LGUpe24uYnVmZmVycy5jb2xvci5zZXRDbGVhcih0LnIsdC5nLHQuYixlLGkpfXJldHVybntnZXRDbGVhckNvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHNldENsZWFyQ29sb3I6ZnVuY3Rpb24odCxlPTEpe2Euc2V0KHQpLGw9ZSxtKGEsbCl9LGdldENsZWFyQWxwaGE6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sc2V0Q2xlYXJBbHBoYTpmdW5jdGlvbih0KXtsPXQsbShhLGwpfSxyZW5kZXI6ZnVuY3Rpb24gdShuLGkpe2xldCB1PSExLGY9ITA9PT1pLmlzU2NlbmU/aS5iYWNrZ3JvdW5kOm51bGw7ZiYmZi5pc1RleHR1cmUmJihmPWUuZ2V0KGYpKTtjb25zdCBnPXQueHIsaD1nLmdldFNlc3Npb24mJmcuZ2V0U2Vzc2lvbigpO2gmJiJhZGRpdGl2ZSI9PT1oLmVudmlyb25tZW50QmxlbmRNb2RlJiYoZj1udWxsKSxudWxsPT09Zj9tKGEsbCk6ZiYmZi5pc0NvbG9yJiYobShmLDEpLHU9ITApLCh0LmF1dG9DbGVhcnx8dSkmJnQuY2xlYXIodC5hdXRvQ2xlYXJDb2xvcix0LmF1dG9DbGVhckRlcHRoLHQuYXV0b0NsZWFyU3RlbmNpbCksZiYmKGYuaXNDdWJlVGV4dHVyZXx8Zi5tYXBwaW5nPT09bWl0KT8odm9pZCAwPT09cyYmKHM9bmV3IHBzdChuZXcgdXN0KDEsMSwxKSxuZXcgYnN0KHtuYW1lOiJCYWNrZ3JvdW5kQ3ViZU1hdGVyaWFsIix1bmlmb3Jtczpmc3QoSXN0LmN1YmUudW5pZm9ybXMpLHZlcnRleFNoYWRlcjpJc3QuY3ViZS52ZXJ0ZXhTaGFkZXIsZnJhZ21lbnRTaGFkZXI6SXN0LmN1YmUuZnJhZ21lbnRTaGFkZXIsc2lkZToxLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExLGZvZzohMX0pKSxzLmdlb21ldHJ5LmRlbGV0ZUF0dHJpYnV0ZSgibm9ybWFsIikscy5nZW9tZXRyeS5kZWxldGVBdHRyaWJ1dGUoInV2Iikscy5vbkJlZm9yZVJlbmRlcj1mdW5jdGlvbih0LGUsbil7dGhpcy5tYXRyaXhXb3JsZC5jb3B5UG9zaXRpb24obi5tYXRyaXhXb3JsZCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLm1hdGVyaWFsLCJlbnZNYXAiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51bmlmb3Jtcy5lbnZNYXAudmFsdWV9fSksby51cGRhdGUocykpLHMubWF0ZXJpYWwudW5pZm9ybXMuZW52TWFwLnZhbHVlPWYscy5tYXRlcmlhbC51bmlmb3Jtcy5mbGlwRW52TWFwLnZhbHVlPWYuaXNDdWJlVGV4dHVyZSYmITE9PT1mLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT8tMToxLGM9PT1mJiZkPT09Zi52ZXJzaW9uJiZwPT09dC50b25lTWFwcGluZ3x8KHMubWF0ZXJpYWwubmVlZHNVcGRhdGU9ITAsYz1mLGQ9Zi52ZXJzaW9uLHA9dC50b25lTWFwcGluZyksbi51bnNoaWZ0KHMscy5nZW9tZXRyeSxzLm1hdGVyaWFsLDAsMCxudWxsKSk6ZiYmZi5pc1RleHR1cmUmJih2b2lkIDA9PT1yJiYocj1uZXcgcHN0KG5ldyBUc3QoMiwyKSxuZXcgYnN0KHtuYW1lOiJCYWNrZ3JvdW5kTWF0ZXJpYWwiLHVuaWZvcm1zOmZzdChJc3QuYmFja2dyb3VuZC51bmlmb3JtcyksdmVydGV4U2hhZGVyOklzdC5iYWNrZ3JvdW5kLnZlcnRleFNoYWRlcixmcmFnbWVudFNoYWRlcjpJc3QuYmFja2dyb3VuZC5mcmFnbWVudFNoYWRlcixzaWRlOjAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITEsZm9nOiExfSkpLHIuZ2VvbWV0cnkuZGVsZXRlQXR0cmlidXRlKCJub3JtYWwiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoci5tYXRlcmlhbCwibWFwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5pZm9ybXMudDJELnZhbHVlfX0pLG8udXBkYXRlKHIpKSxyLm1hdGVyaWFsLnVuaWZvcm1zLnQyRC52YWx1ZT1mLCEwPT09Zi5tYXRyaXhBdXRvVXBkYXRlJiZmLnVwZGF0ZU1hdHJpeCgpLHIubWF0ZXJpYWwudW5pZm9ybXMudXZUcmFuc2Zvcm0udmFsdWUuY29weShmLm1hdHJpeCksYz09PWYmJmQ9PT1mLnZlcnNpb24mJnA9PT10LnRvbmVNYXBwaW5nfHwoci5tYXRlcmlhbC5uZWVkc1VwZGF0ZT0hMCxjPWYsZD1mLnZlcnNpb24scD10LnRvbmVNYXBwaW5nKSxuLnVuc2hpZnQocixyLmdlb21ldHJ5LHIubWF0ZXJpYWwsMCwwLG51bGwpKX19fWZ1bmN0aW9uIEZzdCh0LGUsbixvKXtjb25zdCBpPXQuZ2V0UGFyYW1ldGVyKDM0OTIxKSxhPW8uaXNXZWJHTDI/bnVsbDplLmdldCgiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSxyPW8uaXNXZWJHTDJ8fG51bGwhPT1hLHM9e30sbD1tKG51bGwpO2xldCBjPWw7ZnVuY3Rpb24gZChlKXtyZXR1cm4gby5pc1dlYkdMMj90LmJpbmRWZXJ0ZXhBcnJheShlKTphLmJpbmRWZXJ0ZXhBcnJheU9FUyhlKX1mdW5jdGlvbiBwKGUpe3JldHVybiBvLmlzV2ViR0wyP3QuZGVsZXRlVmVydGV4QXJyYXkoZSk6YS5kZWxldGVWZXJ0ZXhBcnJheU9FUyhlKX1mdW5jdGlvbiBtKHQpe2NvbnN0IGU9W10sbj1bXSxvPVtdO2ZvcihsZXQgdD0wO3Q8aTt0KyspZVt0XT0wLG5bdF09MCxvW3RdPTA7cmV0dXJue2dlb21ldHJ5Om51bGwscHJvZ3JhbTpudWxsLHdpcmVmcmFtZTohMSxuZXdBdHRyaWJ1dGVzOmUsZW5hYmxlZEF0dHJpYnV0ZXM6bixhdHRyaWJ1dGVEaXZpc29yczpvLG9iamVjdDp0LGF0dHJpYnV0ZXM6e30saW5kZXg6bnVsbH19ZnVuY3Rpb24gdSgpe2NvbnN0IHQ9Yy5uZXdBdHRyaWJ1dGVzO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl0W2VdPTB9ZnVuY3Rpb24gZih0KXtnKHQsMCl9ZnVuY3Rpb24gZyhuLGkpe2NvbnN0IGE9Yy5lbmFibGVkQXR0cmlidXRlcyxyPWMuYXR0cmlidXRlRGl2aXNvcnM7Yy5uZXdBdHRyaWJ1dGVzW25dPTEsMD09PWFbbl0mJih0LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG4pLGFbbl09MSkscltuXSE9PWkmJigoby5pc1dlYkdMMj90OmUuZ2V0KCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikpW28uaXNXZWJHTDI/InZlcnRleEF0dHJpYkRpdmlzb3IiOiJ2ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUiXShuLGkpLHJbbl09aSl9ZnVuY3Rpb24gaCgpe2NvbnN0IGU9Yy5uZXdBdHRyaWJ1dGVzLG49Yy5lbmFibGVkQXR0cmlidXRlcztmb3IobGV0IG89MCxpPW4ubGVuZ3RoO288aTtvKyspbltvXSE9PWVbb10mJih0LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShvKSxuW29dPTApfWZ1bmN0aW9uIGIoZSxuLGksYSxyLHMpeyEwIT09by5pc1dlYkdMMnx8NTEyNCE9PWkmJjUxMjUhPT1pP3QudmVydGV4QXR0cmliUG9pbnRlcihlLG4saSxhLHIscyk6dC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcihlLG4saSxyLHMpfWZ1bmN0aW9uIHkoKXtfKCksYyE9PWwmJihjPWwsZChjLm9iamVjdCkpfWZ1bmN0aW9uIF8oKXtsLmdlb21ldHJ5PW51bGwsbC5wcm9ncmFtPW51bGwsbC53aXJlZnJhbWU9ITF9cmV0dXJue3NldHVwOmZ1bmN0aW9uIEMoaSxsLHAseSxfKXtsZXQgQz0hMTtpZihyKXtjb25zdCBlPShmdW5jdGlvbiBNKGUsbixpKXtjb25zdCByPSEwPT09aS53aXJlZnJhbWU7bGV0IGw9c1tlLmlkXTt2b2lkIDA9PT1sJiYobD17fSxzW2UuaWRdPWwpO2xldCBjPWxbbi5pZF07dm9pZCAwPT09YyYmKGM9e30sbFtuLmlkXT1jKTtsZXQgZD1jW3JdO3JldHVybiB2b2lkIDA9PT1kJiYoZD1tKChmdW5jdGlvbiBwKCl7cmV0dXJuIG8uaXNXZWJHTDI/dC5jcmVhdGVWZXJ0ZXhBcnJheSgpOmEuY3JlYXRlVmVydGV4QXJyYXlPRVMoKX0pKCkpLGNbcl09ZCksZH0pKHkscCxsKTtjIT09ZSYmKGM9ZSxkKGMub2JqZWN0KSksQz0oZnVuY3Rpb24gdih0LGUpe2NvbnN0IG49Yy5hdHRyaWJ1dGVzLG89dC5hdHRyaWJ1dGVzO2xldCBpPTA7Zm9yKGNvbnN0IHQgaW4gbyl7Y29uc3QgZT1uW3RdLGE9b1t0XTtpZih2b2lkIDA9PT1lKXJldHVybiEwO2lmKGUuYXR0cmlidXRlIT09YSlyZXR1cm4hMDtpZihlLmRhdGEhPT1hLmRhdGEpcmV0dXJuITA7aSsrfXJldHVybiBjLmF0dHJpYnV0ZXNOdW0hPT1pfHxjLmluZGV4IT09ZX0pKHksXyksQyYmKGZ1bmN0aW9uIHgodCxlKXtjb25zdCBuPXt9LG89dC5hdHRyaWJ1dGVzO2xldCBpPTA7Zm9yKGNvbnN0IHQgaW4gbyl7Y29uc3QgZT1vW3RdLGE9e307YS5hdHRyaWJ1dGU9ZSxlLmRhdGEmJihhLmRhdGE9ZS5kYXRhKSxuW3RdPWEsaSsrfWMuYXR0cmlidXRlcz1uLGMuYXR0cmlidXRlc051bT1pLGMuaW5kZXg9ZX0pKHksXyl9ZWxzZXtjb25zdCB0PSEwPT09bC53aXJlZnJhbWU7Yy5nZW9tZXRyeT09PXkuaWQmJmMucHJvZ3JhbT09PXAuaWQmJmMud2lyZWZyYW1lPT09dHx8KGMuZ2VvbWV0cnk9eS5pZCxjLnByb2dyYW09cC5pZCxjLndpcmVmcmFtZT10LEM9ITApfSEwPT09aS5pc0luc3RhbmNlZE1lc2gmJihDPSEwKSxudWxsIT09XyYmbi51cGRhdGUoXywzNDk2MyksQyYmKChmdW5jdGlvbiBPKGksYSxyLHMpe2lmKCExPT09by5pc1dlYkdMMiYmKGkuaXNJbnN0YW5jZWRNZXNofHxzLmlzSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkpJiZudWxsPT09ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSlyZXR1cm47dSgpO2NvbnN0IGw9cy5hdHRyaWJ1dGVzLGM9ci5nZXRBdHRyaWJ1dGVzKCksZD1hLmRlZmF1bHRBdHRyaWJ1dGVWYWx1ZXM7Zm9yKGNvbnN0IGUgaW4gYyl7Y29uc3Qgbz1jW2VdO2lmKG8+PTApe2NvbnN0IGE9bFtlXTtpZih2b2lkIDAhPT1hKXtjb25zdCBlPWEubm9ybWFsaXplZCxpPWEuaXRlbVNpemUscj1uLmdldChhKTtpZih2b2lkIDA9PT1yKWNvbnRpbnVlO2NvbnN0IGw9ci5idWZmZXIsYz1yLnR5cGUsZD1yLmJ5dGVzUGVyRWxlbWVudDtpZihhLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUpe2NvbnN0IG49YS5kYXRhLHI9bi5zdHJpZGUscD1hLm9mZnNldDtuJiZuLmlzSW5zdGFuY2VkSW50ZXJsZWF2ZWRCdWZmZXI/KGcobyxuLm1lc2hQZXJBdHRyaWJ1dGUpLHZvaWQgMD09PXMuX21heEluc3RhbmNlQ291bnQmJihzLl9tYXhJbnN0YW5jZUNvdW50PW4ubWVzaFBlckF0dHJpYnV0ZSpuLmNvdW50KSk6ZihvKSx0LmJpbmRCdWZmZXIoMzQ5NjIsbCksYihvLGksYyxlLHIqZCxwKmQpfWVsc2UgYS5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT8oZyhvLGEubWVzaFBlckF0dHJpYnV0ZSksdm9pZCAwPT09cy5fbWF4SW5zdGFuY2VDb3VudCYmKHMuX21heEluc3RhbmNlQ291bnQ9YS5tZXNoUGVyQXR0cmlidXRlKmEuY291bnQpKTpmKG8pLHQuYmluZEJ1ZmZlcigzNDk2MixsKSxiKG8saSxjLGUsMCwwKX1lbHNlIGlmKCJpbnN0YW5jZU1hdHJpeCI9PT1lKXtjb25zdCBlPW4uZ2V0KGkuaW5zdGFuY2VNYXRyaXgpO2lmKHZvaWQgMD09PWUpY29udGludWU7Y29uc3QgYT1lLmJ1ZmZlcixyPWUudHlwZTtnKG8rMCwxKSxnKG8rMSwxKSxnKG8rMiwxKSxnKG8rMywxKSx0LmJpbmRCdWZmZXIoMzQ5NjIsYSksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG8rMCw0LHIsITEsNjQsMCksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG8rMSw0LHIsITEsNjQsMTYpLHQudmVydGV4QXR0cmliUG9pbnRlcihvKzIsNCxyLCExLDY0LDMyKSx0LnZlcnRleEF0dHJpYlBvaW50ZXIobyszLDQsciwhMSw2NCw0OCl9ZWxzZSBpZigiaW5zdGFuY2VDb2xvciI9PT1lKXtjb25zdCBlPW4uZ2V0KGkuaW5zdGFuY2VDb2xvcik7aWYodm9pZCAwPT09ZSljb250aW51ZTtjb25zdCBhPWUuYnVmZmVyLHI9ZS50eXBlO2cobywxKSx0LmJpbmRCdWZmZXIoMzQ5NjIsYSksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG8sMyxyLCExLDEyLDApfWVsc2UgaWYodm9pZCAwIT09ZCl7Y29uc3Qgbj1kW2VdO2lmKHZvaWQgMCE9PW4pc3dpdGNoKG4ubGVuZ3RoKXtjYXNlIDI6dC52ZXJ0ZXhBdHRyaWIyZnYobyxuKTticmVhaztjYXNlIDM6dC52ZXJ0ZXhBdHRyaWIzZnYobyxuKTticmVhaztjYXNlIDQ6dC52ZXJ0ZXhBdHRyaWI0ZnYobyxuKTticmVhaztkZWZhdWx0OnQudmVydGV4QXR0cmliMWZ2KG8sbil9fX19aCgpfSkoaSxsLHAseSksbnVsbCE9PV8mJnQuYmluZEJ1ZmZlcigzNDk2MyxuLmdldChfKS5idWZmZXIpKX0scmVzZXQ6eSxyZXNldERlZmF1bHRTdGF0ZTpfLGRpc3Bvc2U6ZnVuY3Rpb24gTSgpe3koKTtmb3IoY29uc3QgdCBpbiBzKXtjb25zdCBlPXNbdF07Zm9yKGNvbnN0IHQgaW4gZSl7Y29uc3Qgbj1lW3RdO2Zvcihjb25zdCB0IGluIG4pcChuW3RdLm9iamVjdCksZGVsZXRlIG5bdF07ZGVsZXRlIGVbdF19ZGVsZXRlIHNbdF19fSxyZWxlYXNlU3RhdGVzT2ZHZW9tZXRyeTpmdW5jdGlvbiB2KHQpe2lmKHZvaWQgMD09PXNbdC5pZF0pcmV0dXJuO2NvbnN0IGU9c1t0LmlkXTtmb3IoY29uc3QgdCBpbiBlKXtjb25zdCBuPWVbdF07Zm9yKGNvbnN0IHQgaW4gbilwKG5bdF0ub2JqZWN0KSxkZWxldGUgblt0XTtkZWxldGUgZVt0XX1kZWxldGUgc1t0LmlkXX0scmVsZWFzZVN0YXRlc09mUHJvZ3JhbTpmdW5jdGlvbiB4KHQpe2Zvcihjb25zdCBlIGluIHMpe2NvbnN0IG49c1tlXTtpZih2b2lkIDA9PT1uW3QuaWRdKWNvbnRpbnVlO2NvbnN0IG89blt0LmlkXTtmb3IoY29uc3QgdCBpbiBvKXAob1t0XS5vYmplY3QpLGRlbGV0ZSBvW3RdO2RlbGV0ZSBuW3QuaWRdfX0saW5pdEF0dHJpYnV0ZXM6dSxlbmFibGVBdHRyaWJ1dGU6ZixkaXNhYmxlVW51c2VkQXR0cmlidXRlczpofX1mdW5jdGlvbiBMc3QodCxlLG4sbyl7Y29uc3QgaT1vLmlzV2ViR0wyO2xldCBhO3RoaXMuc2V0TW9kZT1mdW5jdGlvbiByKHQpe2E9dH0sdGhpcy5yZW5kZXI9ZnVuY3Rpb24gcyhlLG8pe3QuZHJhd0FycmF5cyhhLGUsbyksbi51cGRhdGUobyxhLDEpfSx0aGlzLnJlbmRlckluc3RhbmNlcz1mdW5jdGlvbiBsKG8scixzKXtpZigwPT09cylyZXR1cm47bGV0IGwsYztpZihpKWw9dCxjPSJkcmF3QXJyYXlzSW5zdGFuY2VkIjtlbHNlIGlmKGw9ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSxjPSJkcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUiLG51bGw9PT1sKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMQnVmZmVyUmVuZGVyZXI6IHVzaW5nIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5IGJ1dCBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IGV4dGVuc2lvbiBBTkdMRV9pbnN0YW5jZWRfYXJyYXlzLiIpO2xbY10oYSxvLHIscyksbi51cGRhdGUocixhLHMpfX1mdW5jdGlvbiBCc3QodCxlLG4pe2xldCBvO2Z1bmN0aW9uIGkoZSl7aWYoImhpZ2hwIj09PWUpe2lmKHQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KDM1NjMzLDM2MzM4KS5wcmVjaXNpb24+MCYmdC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzIsMzYzMzgpLnByZWNpc2lvbj4wKXJldHVybiJoaWdocCI7ZT0ibWVkaXVtcCJ9cmV0dXJuIm1lZGl1bXAiPT09ZSYmdC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzMsMzYzMzcpLnByZWNpc2lvbj4wJiZ0LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMiwzNjMzNykucHJlY2lzaW9uPjA/Im1lZGl1bXAiOiJsb3dwIn1jb25zdCBhPSJ1bmRlZmluZWQiIT10eXBlb2YgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCYmdCBpbnN0YW5jZW9mIFdlYkdMMlJlbmRlcmluZ0NvbnRleHR8fCJ1bmRlZmluZWQiIT10eXBlb2YgV2ViR0wyQ29tcHV0ZVJlbmRlcmluZ0NvbnRleHQmJnQgaW5zdGFuY2VvZiBXZWJHTDJDb21wdXRlUmVuZGVyaW5nQ29udGV4dDtsZXQgcj12b2lkIDAhPT1uLnByZWNpc2lvbj9uLnByZWNpc2lvbjoiaGlnaHAiO2NvbnN0IHM9aShyKTtzIT09ciYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjoiLHIsIm5vdCBzdXBwb3J0ZWQsIHVzaW5nIixzLCJpbnN0ZWFkLiIpLHI9cyk7Y29uc3QgbD1hfHxlLmhhcygiV0VCR0xfZHJhd19idWZmZXJzIiksYz0hMD09PW4ubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcixkPXQuZ2V0UGFyYW1ldGVyKDM0OTMwKSxwPXQuZ2V0UGFyYW1ldGVyKDM1NjYwKSxtPXQuZ2V0UGFyYW1ldGVyKDMzNzkpLHU9dC5nZXRQYXJhbWV0ZXIoMzQwNzYpLGY9dC5nZXRQYXJhbWV0ZXIoMzQ5MjEpLGc9dC5nZXRQYXJhbWV0ZXIoMzYzNDcpLGg9dC5nZXRQYXJhbWV0ZXIoMzYzNDgpLGI9dC5nZXRQYXJhbWV0ZXIoMzYzNDkpLHk9cD4wLF89YXx8ZS5oYXMoIk9FU190ZXh0dXJlX2Zsb2F0Iik7cmV0dXJue2lzV2ViR0wyOmEsZHJhd0J1ZmZlcnM6bCxnZXRNYXhBbmlzb3Ryb3B5OmZ1bmN0aW9uIEMoKXtpZih2b2lkIDAhPT1vKXJldHVybiBvO2lmKCEwPT09ZS5oYXMoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKXtjb25zdCBuPWUuZ2V0KCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTtvPXQuZ2V0UGFyYW1ldGVyKG4uTUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUKX1lbHNlIG89MDtyZXR1cm4gb30sZ2V0TWF4UHJlY2lzaW9uOmkscHJlY2lzaW9uOnIsbG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcjpjLG1heFRleHR1cmVzOmQsbWF4VmVydGV4VGV4dHVyZXM6cCxtYXhUZXh0dXJlU2l6ZTptLG1heEN1YmVtYXBTaXplOnUsbWF4QXR0cmlidXRlczpmLG1heFZlcnRleFVuaWZvcm1zOmcsbWF4VmFyeWluZ3M6aCxtYXhGcmFnbWVudFVuaWZvcm1zOmIsdmVydGV4VGV4dHVyZXM6eSxmbG9hdEZyYWdtZW50VGV4dHVyZXM6XyxmbG9hdFZlcnRleFRleHR1cmVzOnkmJl8sbWF4U2FtcGxlczphP3QuZ2V0UGFyYW1ldGVyKDM2MTgzKTowfX1mdW5jdGlvbiBWc3QodCl7Y29uc3QgZT10aGlzO2xldCBuPW51bGwsbz0wLGk9ITEsYT0hMTtjb25zdCByPW5ldyBrc3Qscz1uZXcgJGl0LGw9e3ZhbHVlOm51bGwsbmVlZHNVcGRhdGU6ITF9O2Z1bmN0aW9uIGMoKXtsLnZhbHVlIT09biYmKGwudmFsdWU9bixsLm5lZWRzVXBkYXRlPW8+MCksZS5udW1QbGFuZXM9byxlLm51bUludGVyc2VjdGlvbj0wfWZ1bmN0aW9uIGQodCxuLG8saSl7Y29uc3QgYT1udWxsIT09dD90Lmxlbmd0aDowO2xldCBjPW51bGw7aWYoMCE9PWEpe2lmKGM9bC52YWx1ZSwhMCE9PWl8fG51bGw9PT1jKXtjb25zdCBlPW8rNCphLGk9bi5tYXRyaXhXb3JsZEludmVyc2U7cy5nZXROb3JtYWxNYXRyaXgoaSksKG51bGw9PT1jfHxjLmxlbmd0aDxlKSYmKGM9bmV3IEZsb2F0MzJBcnJheShlKSk7Zm9yKGxldCBlPTAsbj1vO2UhPT1hOysrZSxuKz00KXIuY29weSh0W2VdKS5hcHBseU1hdHJpeDQoaSxzKSxyLm5vcm1hbC50b0FycmF5KGMsbiksY1tuKzNdPXIuY29uc3RhbnR9bC52YWx1ZT1jLGwubmVlZHNVcGRhdGU9ITB9cmV0dXJuIGUubnVtUGxhbmVzPWEsZS5udW1JbnRlcnNlY3Rpb249MCxjfXRoaXMudW5pZm9ybT1sLHRoaXMubnVtUGxhbmVzPTAsdGhpcy5udW1JbnRlcnNlY3Rpb249MCx0aGlzLmluaXQ9ZnVuY3Rpb24odCxlLGEpe2NvbnN0IHI9MCE9PXQubGVuZ3RofHxlfHwwIT09b3x8aTtyZXR1cm4gaT1lLG49ZCh0LGEsMCksbz10Lmxlbmd0aCxyfSx0aGlzLmJlZ2luU2hhZG93cz1mdW5jdGlvbigpe2E9ITAsZChudWxsKX0sdGhpcy5lbmRTaGFkb3dzPWZ1bmN0aW9uKCl7YT0hMSxjKCl9LHRoaXMuc2V0U3RhdGU9ZnVuY3Rpb24oZSxyLHMpe2NvbnN0IHA9ZS5jbGlwcGluZ1BsYW5lcyxtPWUuY2xpcEludGVyc2VjdGlvbix1PWUuY2xpcFNoYWRvd3MsZj10LmdldChlKTtpZighaXx8bnVsbD09PXB8fDA9PT1wLmxlbmd0aHx8YSYmIXUpYT9kKG51bGwpOmMoKTtlbHNle2NvbnN0IHQ9YT8wOm8sZT00KnQ7bGV0IGk9Zi5jbGlwcGluZ1N0YXRlfHxudWxsO2wudmFsdWU9aSxpPWQocCxyLGUscyk7Zm9yKGxldCB0PTA7dCE9PWU7Kyt0KWlbdF09blt0XTtmLmNsaXBwaW5nU3RhdGU9aSx0aGlzLm51bUludGVyc2VjdGlvbj1tP3RoaXMubnVtUGxhbmVzOjAsdGhpcy5udW1QbGFuZXMrPXR9fX1mdW5jdGlvbiBqc3QodCl7bGV0IGU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gbih0LGUpe3JldHVybiAzMDM9PT1lP3QubWFwcGluZz1kaXQ6MzA0PT09ZSYmKHQubWFwcGluZz1waXQpLHR9ZnVuY3Rpb24gbyh0KXtjb25zdCBuPXQudGFyZ2V0O24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbyk7Y29uc3QgaT1lLmdldChuKTt2b2lkIDAhPT1pJiYoZS5kZWxldGUobiksaS5kaXNwb3NlKCkpfXJldHVybntnZXQ6ZnVuY3Rpb24gaShhKXtpZihhJiZhLmlzVGV4dHVyZSYmITE9PT1hLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZSl7Y29uc3QgaT1hLm1hcHBpbmc7aWYoMzAzPT09aXx8MzA0PT09aSl7aWYoZS5oYXMoYSkpcmV0dXJuIG4oZS5nZXQoYSkudGV4dHVyZSxhLm1hcHBpbmcpO3tjb25zdCBpPWEuaW1hZ2U7aWYoaSYmaS5oZWlnaHQ+MCl7Y29uc3Qgcj10LmdldFJlbmRlclRhcmdldCgpLHM9bmV3IHhzdChpLmhlaWdodC8yKTtyZXR1cm4gcy5mcm9tRXF1aXJlY3Rhbmd1bGFyVGV4dHVyZSh0LGEpLGUuc2V0KGEscyksdC5zZXRSZW5kZXJUYXJnZXQociksYS5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIixvKSxuKHMudGV4dHVyZSxhLm1hcHBpbmcpfXJldHVybiBudWxsfX19cmV0dXJuIGF9LGRpc3Bvc2U6ZnVuY3Rpb24gYSgpe2U9bmV3IFdlYWtNYXB9fX1Jc3QucGh5c2ljYWw9e3VuaWZvcm1zOmdzdChbSXN0LnN0YW5kYXJkLnVuaWZvcm1zLHtjbGVhcmNvYXQ6e3ZhbHVlOjB9LGNsZWFyY29hdE1hcDp7dmFsdWU6bnVsbH0sY2xlYXJjb2F0Um91Z2huZXNzOnt2YWx1ZTowfSxjbGVhcmNvYXRSb3VnaG5lc3NNYXA6e3ZhbHVlOm51bGx9LGNsZWFyY29hdE5vcm1hbFNjYWxlOnt2YWx1ZTpuZXcgUWl0KDEsMSl9LGNsZWFyY29hdE5vcm1hbE1hcDp7dmFsdWU6bnVsbH0sc2hlZW46e3ZhbHVlOm5ldyBScnQoMCl9LHRyYW5zbWlzc2lvbjp7dmFsdWU6MH0sdHJhbnNtaXNzaW9uTWFwOnt2YWx1ZTpudWxsfSx0cmFuc21pc3Npb25TYW1wbGVyU2l6ZTp7dmFsdWU6bmV3IFFpdH0sdHJhbnNtaXNzaW9uU2FtcGxlck1hcDp7dmFsdWU6bnVsbH0sdGhpY2tuZXNzOnt2YWx1ZTowfSx0aGlja25lc3NNYXA6e3ZhbHVlOm51bGx9LGF0dGVudWF0aW9uRGlzdGFuY2U6e3ZhbHVlOjB9LGF0dGVudWF0aW9uVGludDp7dmFsdWU6bmV3IFJydCgwKX0sc3BlY3VsYXJJbnRlbnNpdHk6e3ZhbHVlOjB9LHNwZWN1bGFySW50ZW5zaXR5TWFwOnt2YWx1ZTpudWxsfSxzcGVjdWxhclRpbnQ6e3ZhbHVlOm5ldyBScnQoMSwxLDEpfSxzcGVjdWxhclRpbnRNYXA6e3ZhbHVlOm51bGx9fV0pLHZlcnRleFNoYWRlcjpOc3QubWVzaHBoeXNpY2FsX3ZlcnQsZnJhZ21lbnRTaGFkZXI6TnN0Lm1lc2hwaHlzaWNhbF9mcmFnfTtjbGFzcyBVc3QgZXh0ZW5kcyB5c3R7Y29uc3RydWN0b3IodD0tMSxlPTEsbj0xLG89LTEsaT0uMSxhPTJlMyl7c3VwZXIoKSx0aGlzLnR5cGU9Ik9ydGhvZ3JhcGhpY0NhbWVyYSIsdGhpcy56b29tPTEsdGhpcy52aWV3PW51bGwsdGhpcy5sZWZ0PXQsdGhpcy5yaWdodD1lLHRoaXMudG9wPW4sdGhpcy5ib3R0b209byx0aGlzLm5lYXI9aSx0aGlzLmZhcj1hLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWNvcHkodCxlKXtyZXR1cm4gc3VwZXIuY29weSh0LGUpLHRoaXMubGVmdD10LmxlZnQsdGhpcy5yaWdodD10LnJpZ2h0LHRoaXMudG9wPXQudG9wLHRoaXMuYm90dG9tPXQuYm90dG9tLHRoaXMubmVhcj10Lm5lYXIsdGhpcy5mYXI9dC5mYXIsdGhpcy56b29tPXQuem9vbSx0aGlzLnZpZXc9bnVsbD09PXQudmlldz9udWxsOk9iamVjdC5hc3NpZ24oe30sdC52aWV3KSx0aGlzfXNldFZpZXdPZmZzZXQodCxlLG4sbyxpLGEpe251bGw9PT10aGlzLnZpZXcmJih0aGlzLnZpZXc9e2VuYWJsZWQ6ITAsZnVsbFdpZHRoOjEsZnVsbEhlaWdodDoxLG9mZnNldFg6MCxvZmZzZXRZOjAsd2lkdGg6MSxoZWlnaHQ6MX0pLHRoaXMudmlldy5lbmFibGVkPSEwLHRoaXMudmlldy5mdWxsV2lkdGg9dCx0aGlzLnZpZXcuZnVsbEhlaWdodD1lLHRoaXMudmlldy5vZmZzZXRYPW4sdGhpcy52aWV3Lm9mZnNldFk9byx0aGlzLnZpZXcud2lkdGg9aSx0aGlzLnZpZXcuaGVpZ2h0PWEsdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y2xlYXJWaWV3T2Zmc2V0KCl7bnVsbCE9PXRoaXMudmlldyYmKHRoaXMudmlldy5lbmFibGVkPSExKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX11cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl7Y29uc3QgdD0odGhpcy5yaWdodC10aGlzLmxlZnQpLygyKnRoaXMuem9vbSksZT0odGhpcy50b3AtdGhpcy5ib3R0b20pLygyKnRoaXMuem9vbSksbj0odGhpcy5yaWdodCt0aGlzLmxlZnQpLzIsbz0odGhpcy50b3ArdGhpcy5ib3R0b20pLzI7bGV0IGk9bi10LGE9bit0LHI9bytlLHM9by1lO2lmKG51bGwhPT10aGlzLnZpZXcmJnRoaXMudmlldy5lbmFibGVkKXtjb25zdCB0PSh0aGlzLnJpZ2h0LXRoaXMubGVmdCkvdGhpcy52aWV3LmZ1bGxXaWR0aC90aGlzLnpvb20sZT0odGhpcy50b3AtdGhpcy5ib3R0b20pL3RoaXMudmlldy5mdWxsSGVpZ2h0L3RoaXMuem9vbTtpKz10KnRoaXMudmlldy5vZmZzZXRYLGE9aSt0KnRoaXMudmlldy53aWR0aCxyLT1lKnRoaXMudmlldy5vZmZzZXRZLHM9ci1lKnRoaXMudmlldy5oZWlnaHR9dGhpcy5wcm9qZWN0aW9uTWF0cml4Lm1ha2VPcnRob2dyYXBoaWMoaSxhLHIscyx0aGlzLm5lYXIsdGhpcy5mYXIpLHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2UuY29weSh0aGlzLnByb2plY3Rpb25NYXRyaXgpLmludmVydCgpfXRvSlNPTih0KXtjb25zdCBlPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gZS5vYmplY3Quem9vbT10aGlzLnpvb20sZS5vYmplY3QubGVmdD10aGlzLmxlZnQsZS5vYmplY3QucmlnaHQ9dGhpcy5yaWdodCxlLm9iamVjdC50b3A9dGhpcy50b3AsZS5vYmplY3QuYm90dG9tPXRoaXMuYm90dG9tLGUub2JqZWN0Lm5lYXI9dGhpcy5uZWFyLGUub2JqZWN0LmZhcj10aGlzLmZhcixudWxsIT09dGhpcy52aWV3JiYoZS5vYmplY3Qudmlldz1PYmplY3QuYXNzaWduKHt9LHRoaXMudmlldykpLGV9fVVzdC5wcm90b3R5cGUuaXNPcnRob2dyYXBoaWNDYW1lcmE9ITA7Y2xhc3MgR3N0IGV4dGVuZHMgYnN0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMudHlwZT0iUmF3U2hhZGVyTWF0ZXJpYWwifX1Hc3QucHJvdG90eXBlLmlzUmF3U2hhZGVyTWF0ZXJpYWw9ITA7Y29uc3QgV3N0PU1hdGgucG93KDIsOCksWXN0PVsuMTI1LC4yMTUsLjM1LC40NDYsLjUyNiwuNTgyXSxxc3Q9NStZc3QubGVuZ3RoLFpzdD17W3ppdF06MCxbSWl0XToxLFtGaXRdOjIsMzAwNDozLDMwMDU6NCwzMDA2OjUsW0hpdF06Nn0sWHN0PW5ldyBBcnQoe3NpZGU6MSxkZXB0aFdyaXRlOiExLGRlcHRoVGVzdDohMX0pLEtzdD1uZXcgcHN0KG5ldyB1c3QsWHN0KSxKc3Q9bmV3IFVzdCx7X2xvZFBsYW5lczpRc3QsX3NpemVMb2RzOiRzdCxfc2lnbWFzOnRsdH09Y2x0KCksZWx0PW5ldyBScnQ7bGV0IG5sdD1udWxsO2NvbnN0IG9sdD0oMStNYXRoLnNxcnQoNSkpLzIsaWx0PTEvb2x0LGFsdD1bbmV3IGNhdCgxLDEsMSksbmV3IGNhdCgtMSwxLDEpLG5ldyBjYXQoMSwxLC0xKSxuZXcgY2F0KC0xLDEsLTEpLG5ldyBjYXQoMCxvbHQsaWx0KSxuZXcgY2F0KDAsb2x0LC1pbHQpLG5ldyBjYXQoaWx0LDAsb2x0KSxuZXcgY2F0KC1pbHQsMCxvbHQpLG5ldyBjYXQob2x0LGlsdCwwKSxuZXcgY2F0KC1vbHQsaWx0LDApXTtmdW5jdGlvbiBybHQodCl7Y29uc3QgZT1NYXRoLm1heCh0LnIsdC5nLHQuYiksbj1NYXRoLm1pbihNYXRoLm1heChNYXRoLmNlaWwoTWF0aC5sb2cyKGUpKSwtMTI4KSwxMjcpO3JldHVybiB0Lm11bHRpcGx5U2NhbGFyKE1hdGgucG93KDIsLW4pKSwobisxMjgpLzI1NX1jbGFzcyBzbHR7Y29uc3RydWN0b3IodCl7dGhpcy5fcmVuZGVyZXI9dCx0aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldD1udWxsLHRoaXMuX2JsdXJNYXRlcmlhbD0oZnVuY3Rpb24gZSh0KXtjb25zdCBlPW5ldyBGbG9hdDMyQXJyYXkodCksbj1uZXcgY2F0KDAsMSwwKTtyZXR1cm4gbmV3IEdzdCh7bmFtZToiU3BoZXJpY2FsR2F1c3NpYW5CbHVyIixkZWZpbmVzOntuOnR9LHVuaWZvcm1zOntlbnZNYXA6e3ZhbHVlOm51bGx9LHNhbXBsZXM6e3ZhbHVlOjF9LHdlaWdodHM6e3ZhbHVlOmV9LGxhdGl0dWRpbmFsOnt2YWx1ZTohMX0sZFRoZXRhOnt2YWx1ZTowfSxtaXBJbnQ6e3ZhbHVlOjB9LHBvbGVBeGlzOnt2YWx1ZTpufSxpbnB1dEVuY29kaW5nOnt2YWx1ZTpac3RbM2UzXX0sb3V0cHV0RW5jb2Rpbmc6e3ZhbHVlOlpzdFszZTNdfX0sdmVydGV4U2hhZGVyOiJcblxuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdGF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXHRcdGF0dHJpYnV0ZSB2ZWMyIHV2O1xuXHRcdGF0dHJpYnV0ZSBmbG9hdCBmYWNlSW5kZXg7XG5cblx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdC8vIFJIIGNvb3JkaW5hdGUgc3lzdGVtOyBQTVJFTSBmYWNlLWluZGV4aW5nIGNvbnZlbnRpb25cblx0XHR2ZWMzIGdldERpcmVjdGlvbiggdmVjMiB1diwgZmxvYXQgZmFjZSApIHtcblxuXHRcdFx0dXYgPSAyLjAgKiB1diAtIDEuMDtcblxuXHRcdFx0dmVjMyBkaXJlY3Rpb24gPSB2ZWMzKCB1diwgMS4wICk7XG5cblx0XHRcdGlmICggZmFjZSA9PSAwLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDsgLy8gKCAxLCB2LCB1ICkgcG9zIHhcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAxLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnh6eTtcblx0XHRcdFx0ZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLXUsIDEsIC12ICkgcG9zIHlcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uLnggKj0gLTEuMDsgLy8gKCAtdSwgdiwgMSApIHBvcyB6XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC0xLCB2LCAtdSApIG5lZyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eSAqPSAtMS4wOyAvLyAoIC11LCAtMSwgdiApIG5lZyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi56ICo9IC0xLjA7IC8vICggdSwgdiwgLTEgKSBuZWcgelxuXG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBkaXJlY3Rpb247XG5cblx0XHR9XG5cblx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdHZPdXRwdXREaXJlY3Rpb24gPSBnZXREaXJlY3Rpb24oIHV2LCBmYWNlSW5kZXggKTtcblx0XHRcdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApO1xuXG5cdFx0fVxuXHQiLGZyYWdtZW50U2hhZGVyOiJcblxuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7XG5cdFx0XHR1bmlmb3JtIGludCBzYW1wbGVzO1xuXHRcdFx0dW5pZm9ybSBmbG9hdCB3ZWlnaHRzWyBuIF07XG5cdFx0XHR1bmlmb3JtIGJvb2wgbGF0aXR1ZGluYWw7XG5cdFx0XHR1bmlmb3JtIGZsb2F0IGRUaGV0YTtcblx0XHRcdHVuaWZvcm0gZmxvYXQgbWlwSW50O1xuXHRcdFx0dW5pZm9ybSB2ZWMzIHBvbGVBeGlzO1xuXG5cdFx0XHRcblxuXHRcdHVuaWZvcm0gaW50IGlucHV0RW5jb2Rpbmc7XG5cdFx0dW5pZm9ybSBpbnQgb3V0cHV0RW5jb2Rpbmc7XG5cblx0XHQjaW5jbHVkZSA8ZW5jb2RpbmdzX3BhcnNfZnJhZ21lbnQ+XG5cblx0XHR2ZWM0IGlucHV0VGV4ZWxUb0xpbmVhciggdmVjNCB2YWx1ZSApIHtcblxuXHRcdFx0aWYgKCBpbnB1dEVuY29kaW5nID09IDAgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDEgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHNSR0JUb0xpbmVhciggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAyICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JFVG9MaW5lYXIoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMyApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCTVRvTGluZWFyKCB2YWx1ZSwgNy4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gNCApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCTVRvTGluZWFyKCB2YWx1ZSwgMTYuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDUgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQkRUb0xpbmVhciggdmFsdWUsIDI1Ni4wICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0cmV0dXJuIEdhbW1hVG9MaW5lYXIoIHZhbHVlLCAyLjIgKTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0dmVjNCBsaW5lYXJUb091dHB1dFRleGVsKCB2ZWM0IHZhbHVlICkge1xuXG5cdFx0XHRpZiAoIG91dHB1dEVuY29kaW5nID09IDAgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAxICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb3NSR0IoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDIgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCRSggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMyApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JNKCB2YWx1ZSwgNy4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCTSggdmFsdWUsIDE2LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gNSApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JEKCB2YWx1ZSwgMjU2LjAgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9HYW1tYSggdmFsdWUsIDIuMiApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHR2ZWM0IGVudk1hcFRleGVsVG9MaW5lYXIoIHZlYzQgY29sb3IgKSB7XG5cblx0XHRcdHJldHVybiBpbnB1dFRleGVsVG9MaW5lYXIoIGNvbG9yICk7XG5cblx0XHR9XG5cdFxuXG5cdFx0XHQjZGVmaW5lIEVOVk1BUF9UWVBFX0NVQkVfVVZcblx0XHRcdCNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG5cblx0XHRcdHZlYzMgZ2V0U2FtcGxlKCBmbG9hdCB0aGV0YSwgdmVjMyBheGlzICkge1xuXG5cdFx0XHRcdGZsb2F0IGNvc1RoZXRhID0gY29zKCB0aGV0YSApO1xuXHRcdFx0XHQvLyBSb2RyaWd1ZXMnIGF4aXMtYW5nbGUgcm90YXRpb25cblx0XHRcdFx0dmVjMyBzYW1wbGVEaXJlY3Rpb24gPSB2T3V0cHV0RGlyZWN0aW9uICogY29zVGhldGFcblx0XHRcdFx0XHQrIGNyb3NzKCBheGlzLCB2T3V0cHV0RGlyZWN0aW9uICkgKiBzaW4oIHRoZXRhIClcblx0XHRcdFx0XHQrIGF4aXMgKiBkb3QoIGF4aXMsIHZPdXRwdXREaXJlY3Rpb24gKSAqICggMS4wIC0gY29zVGhldGEgKTtcblxuXHRcdFx0XHRyZXR1cm4gYmlsaW5lYXJDdWJlVVYoIGVudk1hcCwgc2FtcGxlRGlyZWN0aW9uLCBtaXBJbnQgKTtcblxuXHRcdFx0fVxuXG5cdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0dmVjMyBheGlzID0gbGF0aXR1ZGluYWwgPyBwb2xlQXhpcyA6IGNyb3NzKCBwb2xlQXhpcywgdk91dHB1dERpcmVjdGlvbiApO1xuXG5cdFx0XHRcdGlmICggYWxsKCBlcXVhbCggYXhpcywgdmVjMyggMC4wICkgKSApICkge1xuXG5cdFx0XHRcdFx0YXhpcyA9IHZlYzMoIHZPdXRwdXREaXJlY3Rpb24ueiwgMC4wLCAtIHZPdXRwdXREaXJlY3Rpb24ueCApO1xuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHRheGlzID0gbm9ybWFsaXplKCBheGlzICk7XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggMC4wLCAwLjAsIDAuMCwgMS4wICk7XG5cdFx0XHRcdGdsX0ZyYWdDb2xvci5yZ2IgKz0gd2VpZ2h0c1sgMCBdICogZ2V0U2FtcGxlKCAwLjAsIGF4aXMgKTtcblxuXHRcdFx0XHRmb3IgKCBpbnQgaSA9IDE7IGkgPCBuOyBpKysgKSB7XG5cblx0XHRcdFx0XHRpZiAoIGkgPj0gc2FtcGxlcyApIHtcblxuXHRcdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRmbG9hdCB0aGV0YSA9IGRUaGV0YSAqIGZsb2F0KCBpICk7XG5cdFx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyBpIF0gKiBnZXRTYW1wbGUoIC0xLjAgKiB0aGV0YSwgYXhpcyApO1xuXHRcdFx0XHRcdGdsX0ZyYWdDb2xvci5yZ2IgKz0gd2VpZ2h0c1sgaSBdICogZ2V0U2FtcGxlKCB0aGV0YSwgYXhpcyApO1xuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSBsaW5lYXJUb091dHB1dFRleGVsKCBnbF9GcmFnQ29sb3IgKTtcblxuXHRcdFx0fVxuXHRcdCIsYmxlbmRpbmc6MCxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMX0pfSkoMjApLHRoaXMuX2VxdWlyZWN0U2hhZGVyPW51bGwsdGhpcy5fY3ViZW1hcFNoYWRlcj1udWxsLHRoaXMuX2NvbXBpbGVNYXRlcmlhbCh0aGlzLl9ibHVyTWF0ZXJpYWwpfWZyb21TY2VuZSh0LGU9MCxuPS4xLG89MTAwKXtubHQ9dGhpcy5fcmVuZGVyZXIuZ2V0UmVuZGVyVGFyZ2V0KCk7Y29uc3QgaT10aGlzLl9hbGxvY2F0ZVRhcmdldHMoKTtyZXR1cm4gdGhpcy5fc2NlbmVUb0N1YmVVVih0LG4sbyxpKSxlPjAmJnRoaXMuX2JsdXIoaSwwLDAsZSksdGhpcy5fYXBwbHlQTVJFTShpKSx0aGlzLl9jbGVhbnVwKGkpLGl9ZnJvbUVxdWlyZWN0YW5ndWxhcih0KXtyZXR1cm4gdGhpcy5fZnJvbVRleHR1cmUodCl9ZnJvbUN1YmVtYXAodCl7cmV0dXJuIHRoaXMuX2Zyb21UZXh0dXJlKHQpfWNvbXBpbGVDdWJlbWFwU2hhZGVyKCl7bnVsbD09PXRoaXMuX2N1YmVtYXBTaGFkZXImJih0aGlzLl9jdWJlbWFwU2hhZGVyPXVsdCgpLHRoaXMuX2NvbXBpbGVNYXRlcmlhbCh0aGlzLl9jdWJlbWFwU2hhZGVyKSl9Y29tcGlsZUVxdWlyZWN0YW5ndWxhclNoYWRlcigpe251bGw9PT10aGlzLl9lcXVpcmVjdFNoYWRlciYmKHRoaXMuX2VxdWlyZWN0U2hhZGVyPW1sdCgpLHRoaXMuX2NvbXBpbGVNYXRlcmlhbCh0aGlzLl9lcXVpcmVjdFNoYWRlcikpfWRpc3Bvc2UoKXt0aGlzLl9ibHVyTWF0ZXJpYWwuZGlzcG9zZSgpLG51bGwhPT10aGlzLl9jdWJlbWFwU2hhZGVyJiZ0aGlzLl9jdWJlbWFwU2hhZGVyLmRpc3Bvc2UoKSxudWxsIT09dGhpcy5fZXF1aXJlY3RTaGFkZXImJnRoaXMuX2VxdWlyZWN0U2hhZGVyLmRpc3Bvc2UoKTtmb3IobGV0IHQ9MDt0PFFzdC5sZW5ndGg7dCsrKVFzdFt0XS5kaXNwb3NlKCl9X2NsZWFudXAodCl7dGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQuZGlzcG9zZSgpLHRoaXMuX3JlbmRlcmVyLnNldFJlbmRlclRhcmdldChubHQpLHQuc2Npc3NvclRlc3Q9ITEscGx0KHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpfV9mcm9tVGV4dHVyZSh0KXtubHQ9dGhpcy5fcmVuZGVyZXIuZ2V0UmVuZGVyVGFyZ2V0KCk7Y29uc3QgZT10aGlzLl9hbGxvY2F0ZVRhcmdldHModCk7cmV0dXJuIHRoaXMuX3RleHR1cmVUb0N1YmVVVih0LGUpLHRoaXMuX2FwcGx5UE1SRU0oZSksdGhpcy5fY2xlYW51cChlKSxlfV9hbGxvY2F0ZVRhcmdldHModCl7Y29uc3QgZT17bWFnRmlsdGVyOmhpdCxtaW5GaWx0ZXI6aGl0LGdlbmVyYXRlTWlwbWFwczohMSx0eXBlOl9pdCxmb3JtYXQ6MTAyMyxlbmNvZGluZzpsbHQodCk/dC5lbmNvZGluZzpGaXQsZGVwdGhCdWZmZXI6ITF9LG49ZGx0KGUpO3JldHVybiBuLmRlcHRoQnVmZmVyPSF0LHRoaXMuX3BpbmdQb25nUmVuZGVyVGFyZ2V0PWRsdChlKSxufV9jb21waWxlTWF0ZXJpYWwodCl7Y29uc3QgZT1uZXcgcHN0KFFzdFswXSx0KTt0aGlzLl9yZW5kZXJlci5jb21waWxlKGUsSnN0KX1fc2NlbmVUb0N1YmVVVih0LGUsbixvKXtjb25zdCBpPW5ldyBfc3QoOTAsMSxlLG4pLGE9WzEsLTEsMSwxLDEsMV0scj1bMSwxLDEsLTEsLTEsLTFdLHM9dGhpcy5fcmVuZGVyZXIsbD1zLmF1dG9DbGVhcixjPXMub3V0cHV0RW5jb2RpbmcsZD1zLnRvbmVNYXBwaW5nO3MuZ2V0Q2xlYXJDb2xvcihlbHQpLHMudG9uZU1hcHBpbmc9MCxzLm91dHB1dEVuY29kaW5nPXppdCxzLmF1dG9DbGVhcj0hMTtsZXQgcD0hMTtjb25zdCBtPXQuYmFja2dyb3VuZDtpZihtKXtpZihtLmlzQ29sb3Ipe1hzdC5jb2xvci5jb3B5KG0pLmNvbnZlcnRTUkdCVG9MaW5lYXIoKSx0LmJhY2tncm91bmQ9bnVsbDtjb25zdCBlPXJsdChYc3QuY29sb3IpO1hzdC5vcGFjaXR5PWUscD0hMH19ZWxzZXtYc3QuY29sb3IuY29weShlbHQpLmNvbnZlcnRTUkdCVG9MaW5lYXIoKTtjb25zdCB0PXJsdChYc3QuY29sb3IpO1hzdC5vcGFjaXR5PXQscD0hMH1mb3IobGV0IGU9MDtlPDY7ZSsrKXtjb25zdCBuPWUlMzswPT1uPyhpLnVwLnNldCgwLGFbZV0sMCksaS5sb29rQXQocltlXSwwLDApKToxPT1uPyhpLnVwLnNldCgwLDAsYVtlXSksaS5sb29rQXQoMCxyW2VdLDApKTooaS51cC5zZXQoMCxhW2VdLDApLGkubG9va0F0KDAsMCxyW2VdKSkscGx0KG8sbipXc3QsZT4yP1dzdDowLFdzdCxXc3QpLHMuc2V0UmVuZGVyVGFyZ2V0KG8pLHAmJnMucmVuZGVyKEtzdCxpKSxzLnJlbmRlcih0LGkpfXMudG9uZU1hcHBpbmc9ZCxzLm91dHB1dEVuY29kaW5nPWMscy5hdXRvQ2xlYXI9bH1fdGV4dHVyZVRvQ3ViZVVWKHQsZSl7Y29uc3Qgbj10aGlzLl9yZW5kZXJlcjt0LmlzQ3ViZVRleHR1cmU/bnVsbD09dGhpcy5fY3ViZW1hcFNoYWRlciYmKHRoaXMuX2N1YmVtYXBTaGFkZXI9dWx0KCkpOm51bGw9PXRoaXMuX2VxdWlyZWN0U2hhZGVyJiYodGhpcy5fZXF1aXJlY3RTaGFkZXI9bWx0KCkpO2NvbnN0IG89dC5pc0N1YmVUZXh0dXJlP3RoaXMuX2N1YmVtYXBTaGFkZXI6dGhpcy5fZXF1aXJlY3RTaGFkZXIsaT1uZXcgcHN0KFFzdFswXSxvKSxhPW8udW5pZm9ybXM7YS5lbnZNYXAudmFsdWU9dCx0LmlzQ3ViZVRleHR1cmV8fGEudGV4ZWxTaXplLnZhbHVlLnNldCgxL3QuaW1hZ2Uud2lkdGgsMS90LmltYWdlLmhlaWdodCksYS5pbnB1dEVuY29kaW5nLnZhbHVlPVpzdFt0LmVuY29kaW5nXSxhLm91dHB1dEVuY29kaW5nLnZhbHVlPVpzdFtlLnRleHR1cmUuZW5jb2RpbmddLHBsdChlLDAsMCwzKldzdCwyKldzdCksbi5zZXRSZW5kZXJUYXJnZXQoZSksbi5yZW5kZXIoaSxKc3QpfV9hcHBseVBNUkVNKHQpe2NvbnN0IGU9dGhpcy5fcmVuZGVyZXIsbj1lLmF1dG9DbGVhcjtlLmF1dG9DbGVhcj0hMTtmb3IobGV0IGU9MTtlPHFzdDtlKyspe2NvbnN0IG49TWF0aC5zcXJ0KHRsdFtlXSp0bHRbZV0tdGx0W2UtMV0qdGx0W2UtMV0pO3RoaXMuX2JsdXIodCxlLTEsZSxuLGFsdFsoZS0xKSVhbHQubGVuZ3RoXSl9ZS5hdXRvQ2xlYXI9bn1fYmx1cih0LGUsbixvLGkpe2NvbnN0IGE9dGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ7dGhpcy5faGFsZkJsdXIodCxhLGUsbixvLCJsYXRpdHVkaW5hbCIsaSksdGhpcy5faGFsZkJsdXIoYSx0LG4sbixvLCJsb25naXR1ZGluYWwiLGkpfV9oYWxmQmx1cih0LGUsbixvLGksYSxyKXtjb25zdCBzPXRoaXMuX3JlbmRlcmVyLGw9dGhpcy5fYmx1ck1hdGVyaWFsOyJsYXRpdHVkaW5hbCIhPT1hJiYibG9uZ2l0dWRpbmFsIiE9PWEmJmNvbnNvbGUuZXJyb3IoImJsdXIgZGlyZWN0aW9uIG11c3QgYmUgZWl0aGVyIGxhdGl0dWRpbmFsIG9yIGxvbmdpdHVkaW5hbCEiKTtjb25zdCBjPW5ldyBwc3QoUXN0W29dLGwpLGQ9bC51bmlmb3JtcyxwPSRzdFtuXS0xLG09aXNGaW5pdGUoaSk/TWF0aC5QSS8oMipwKToyKk1hdGguUEkvMzksdT1pL20sZj1pc0Zpbml0ZShpKT8xK01hdGguZmxvb3IoMyp1KToyMDtmPjIwJiZjb25zb2xlLndhcm4oYHNpZ21hUmFkaWFucywgJHtpfSwgaXMgdG9vIGxhcmdlIGFuZCB3aWxsIGNsaXAsIGFzIGl0IHJlcXVlc3RlZCAke2Z9IHNhbXBsZXMgd2hlbiB0aGUgbWF4aW11bSBpcyBzZXQgdG8gMjBgKTtjb25zdCBnPVtdO2xldCBoPTA7Zm9yKGxldCB0PTA7dDwyMDsrK3Qpe2NvbnN0IGU9dC91LG49TWF0aC5leHAoLWUqZS8yKTtnLnB1c2gobiksMD09dD9oKz1uOnQ8ZiYmKGgrPTIqbil9Zm9yKGxldCB0PTA7dDxnLmxlbmd0aDt0KyspZ1t0XT1nW3RdL2g7ZC5lbnZNYXAudmFsdWU9dC50ZXh0dXJlLGQuc2FtcGxlcy52YWx1ZT1mLGQud2VpZ2h0cy52YWx1ZT1nLGQubGF0aXR1ZGluYWwudmFsdWU9ImxhdGl0dWRpbmFsIj09PWEsciYmKGQucG9sZUF4aXMudmFsdWU9ciksZC5kVGhldGEudmFsdWU9bSxkLm1pcEludC52YWx1ZT04LW4sZC5pbnB1dEVuY29kaW5nLnZhbHVlPVpzdFt0LnRleHR1cmUuZW5jb2RpbmddLGQub3V0cHV0RW5jb2RpbmcudmFsdWU9WnN0W3QudGV4dHVyZS5lbmNvZGluZ107Y29uc3QgYj0kc3Rbb107cGx0KGUsMypNYXRoLm1heCgwLFdzdC0yKmIpLCgwPT09bz8wOjIqV3N0KSsyKmIqKG8+ND9vLTgrNDowKSwzKmIsMipiKSxzLnNldFJlbmRlclRhcmdldChlKSxzLnJlbmRlcihjLEpzdCl9fWZ1bmN0aW9uIGxsdCh0KXtyZXR1cm4gdm9pZCAwIT09dCYmdC50eXBlPT09X2l0JiYodC5lbmNvZGluZz09PXppdHx8dC5lbmNvZGluZz09PUlpdHx8dC5lbmNvZGluZz09PUhpdCl9ZnVuY3Rpb24gY2x0KCl7Y29uc3QgdD1bXSxlPVtdLG49W107bGV0IG89ODtmb3IobGV0IGk9MDtpPHFzdDtpKyspe2NvbnN0IGE9TWF0aC5wb3coMixvKTtlLnB1c2goYSk7bGV0IHI9MS9hO2k+ND9yPVlzdFtpLTgrNC0xXTowPT1pJiYocj0wKSxuLnB1c2gocik7Y29uc3Qgcz0xLyhhLTEpLGw9LXMvMixjPTErcy8yLGQ9W2wsbCxjLGwsYyxjLGwsbCxjLGMsbCxjXSxwPTYsbT02LHU9MyxmPTIsZz0xLGg9bmV3IEZsb2F0MzJBcnJheSh1Km0qcCksYj1uZXcgRmxvYXQzMkFycmF5KGYqbSpwKSx5PW5ldyBGbG9hdDMyQXJyYXkoZyptKnApO2ZvcihsZXQgdD0wO3Q8cDt0Kyspe2NvbnN0IGU9dCUzKjIvMy0xLG49dD4yPzA6LTE7aC5zZXQoW2UsbiwwLGUrMi8zLG4sMCxlKzIvMyxuKzEsMCxlLG4sMCxlKzIvMyxuKzEsMCxlLG4rMSwwXSx1Km0qdCksYi5zZXQoZCxmKm0qdCkseS5zZXQoW3QsdCx0LHQsdCx0XSxnKm0qdCl9Y29uc3QgXz1uZXcgcXJ0O18uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IHpydChoLHUpKSxfLnNldEF0dHJpYnV0ZSgidXYiLG5ldyB6cnQoYixmKSksXy5zZXRBdHRyaWJ1dGUoImZhY2VJbmRleCIsbmV3IHpydCh5LGcpKSx0LnB1c2goXyksbz40JiZvLS19cmV0dXJue19sb2RQbGFuZXM6dCxfc2l6ZUxvZHM6ZSxfc2lnbWFzOm59fWZ1bmN0aW9uIGRsdCh0KXtjb25zdCBlPW5ldyByYXQoMypXc3QsMypXc3QsdCk7cmV0dXJuIGUudGV4dHVyZS5tYXBwaW5nPW1pdCxlLnRleHR1cmUubmFtZT0iUE1SRU0uY3ViZVV2IixlLnNjaXNzb3JUZXN0PSEwLGV9ZnVuY3Rpb24gcGx0KHQsZSxuLG8saSl7dC52aWV3cG9ydC5zZXQoZSxuLG8saSksdC5zY2lzc29yLnNldChlLG4sbyxpKX1mdW5jdGlvbiBtbHQoKXtjb25zdCB0PW5ldyBRaXQoMSwxKTtyZXR1cm4gbmV3IEdzdCh7bmFtZToiRXF1aXJlY3Rhbmd1bGFyVG9DdWJlVVYiLHVuaWZvcm1zOntlbnZNYXA6e3ZhbHVlOm51bGx9LHRleGVsU2l6ZTp7dmFsdWU6dH0saW5wdXRFbmNvZGluZzp7dmFsdWU6WnN0WzNlM119LG91dHB1dEVuY29kaW5nOnt2YWx1ZTpac3RbM2UzXX19LHZlcnRleFNoYWRlcjoiXG5cblx0XHRwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcblx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcblx0XHRhdHRyaWJ1dGUgdmVjMiB1djtcblx0XHRhdHRyaWJ1dGUgZmxvYXQgZmFjZUluZGV4O1xuXG5cdFx0dmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247XG5cblx0XHQvLyBSSCBjb29yZGluYXRlIHN5c3RlbTsgUE1SRU0gZmFjZS1pbmRleGluZyBjb252ZW50aW9uXG5cdFx0dmVjMyBnZXREaXJlY3Rpb24oIHZlYzIgdXYsIGZsb2F0IGZhY2UgKSB7XG5cblx0XHRcdHV2ID0gMi4wICogdXYgLSAxLjA7XG5cblx0XHRcdHZlYzMgZGlyZWN0aW9uID0gdmVjMyggdXYsIDEuMCApO1xuXG5cdFx0XHRpZiAoIGZhY2UgPT0gMC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7IC8vICggMSwgdiwgdSApIHBvcyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC11LCAxLCAtdiApIHBvcyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi54ICo9IC0xLjA7IC8vICggLXUsIHYsIDEgKSBwb3MgelxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDMuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24uenl4O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHogKj0gLTEuMDsgLy8gKCAtMSwgdiwgLXUgKSBuZWcgeFxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDQuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24ueHp5O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHkgKj0gLTEuMDsgLy8gKCAtdSwgLTEsIHYgKSBuZWcgeVxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDUuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24ueiAqPSAtMS4wOyAvLyAoIHUsIHYsIC0xICkgbmVnIHpcblxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZGlyZWN0aW9uO1xuXG5cdFx0fVxuXG5cdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHR2T3V0cHV0RGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uKCB1diwgZmFjZUluZGV4ICk7XG5cdFx0XHRnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtcblxuXHRcdH1cblx0IixmcmFnbWVudFNoYWRlcjoiXG5cblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgaW50O1xuXG5cdFx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdFx0dW5pZm9ybSBzYW1wbGVyMkQgZW52TWFwO1xuXHRcdFx0dW5pZm9ybSB2ZWMyIHRleGVsU2l6ZTtcblxuXHRcdFx0XG5cblx0XHR1bmlmb3JtIGludCBpbnB1dEVuY29kaW5nO1xuXHRcdHVuaWZvcm0gaW50IG91dHB1dEVuY29kaW5nO1xuXG5cdFx0I2luY2x1ZGUgPGVuY29kaW5nc19wYXJzX2ZyYWdtZW50PlxuXG5cdFx0dmVjNCBpbnB1dFRleGVsVG9MaW5lYXIoIHZlYzQgdmFsdWUgKSB7XG5cblx0XHRcdGlmICggaW5wdXRFbmNvZGluZyA9PSAwICkge1xuXG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAxICkge1xuXG5cdFx0XHRcdHJldHVybiBzUkdCVG9MaW5lYXIoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMiApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCRVRvTGluZWFyKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDMgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQk1Ub0xpbmVhciggdmFsdWUsIDcuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQk1Ub0xpbmVhciggdmFsdWUsIDE2LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSA1ICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JEVG9MaW5lYXIoIHZhbHVlLCAyNTYuMCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHJldHVybiBHYW1tYVRvTGluZWFyKCB2YWx1ZSwgMi4yICk7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdHZlYzQgbGluZWFyVG9PdXRwdXRUZXhlbCggdmVjNCB2YWx1ZSApIHtcblxuXHRcdFx0aWYgKCBvdXRwdXRFbmNvZGluZyA9PSAwICkge1xuXG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMSApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9zUkdCKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAyICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQkUoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDMgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCTSggdmFsdWUsIDcuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSA0ICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQk0oIHZhbHVlLCAxNi4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDUgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCRCggdmFsdWUsIDI1Ni4wICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvR2FtbWEoIHZhbHVlLCAyLjIgKTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0dmVjNCBlbnZNYXBUZXhlbFRvTGluZWFyKCB2ZWM0IGNvbG9yICkge1xuXG5cdFx0XHRyZXR1cm4gaW5wdXRUZXhlbFRvTGluZWFyKCBjb2xvciApO1xuXG5cdFx0fVxuXHRcblxuXHRcdFx0I2luY2x1ZGUgPGNvbW1vbj5cblxuXHRcdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApO1xuXG5cdFx0XHRcdHZlYzMgb3V0cHV0RGlyZWN0aW9uID0gbm9ybWFsaXplKCB2T3V0cHV0RGlyZWN0aW9uICk7XG5cdFx0XHRcdHZlYzIgdXYgPSBlcXVpcmVjdFV2KCBvdXRwdXREaXJlY3Rpb24gKTtcblxuXHRcdFx0XHR2ZWMyIGYgPSBmcmFjdCggdXYgLyB0ZXhlbFNpemUgLSAwLjUgKTtcblx0XHRcdFx0dXYgLT0gZiAqIHRleGVsU2l6ZTtcblx0XHRcdFx0dmVjMyB0bCA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHRcdFx0dXYueCArPSB0ZXhlbFNpemUueDtcblx0XHRcdFx0dmVjMyB0ciA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHRcdFx0dXYueSArPSB0ZXhlbFNpemUueTtcblx0XHRcdFx0dmVjMyBiciA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHRcdFx0dXYueCAtPSB0ZXhlbFNpemUueDtcblx0XHRcdFx0dmVjMyBibCA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblxuXHRcdFx0XHR2ZWMzIHRtID0gbWl4KCB0bCwgdHIsIGYueCApO1xuXHRcdFx0XHR2ZWMzIGJtID0gbWl4KCBibCwgYnIsIGYueCApO1xuXHRcdFx0XHRnbF9GcmFnQ29sb3IucmdiID0gbWl4KCB0bSwgYm0sIGYueSApO1xuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IGxpbmVhclRvT3V0cHV0VGV4ZWwoIGdsX0ZyYWdDb2xvciApO1xuXG5cdFx0XHR9XG5cdFx0IixibGVuZGluZzowLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExfSl9ZnVuY3Rpb24gdWx0KCl7cmV0dXJuIG5ldyBHc3Qoe25hbWU6IkN1YmVtYXBUb0N1YmVVViIsdW5pZm9ybXM6e2Vudk1hcDp7dmFsdWU6bnVsbH0saW5wdXRFbmNvZGluZzp7dmFsdWU6WnN0WzNlM119LG91dHB1dEVuY29kaW5nOnt2YWx1ZTpac3RbM2UzXX19LHZlcnRleFNoYWRlcjoiXG5cblx0XHRwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcblx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcblx0XHRhdHRyaWJ1dGUgdmVjMiB1djtcblx0XHRhdHRyaWJ1dGUgZmxvYXQgZmFjZUluZGV4O1xuXG5cdFx0dmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247XG5cblx0XHQvLyBSSCBjb29yZGluYXRlIHN5c3RlbTsgUE1SRU0gZmFjZS1pbmRleGluZyBjb252ZW50aW9uXG5cdFx0dmVjMyBnZXREaXJlY3Rpb24oIHZlYzIgdXYsIGZsb2F0IGZhY2UgKSB7XG5cblx0XHRcdHV2ID0gMi4wICogdXYgLSAxLjA7XG5cblx0XHRcdHZlYzMgZGlyZWN0aW9uID0gdmVjMyggdXYsIDEuMCApO1xuXG5cdFx0XHRpZiAoIGZhY2UgPT0gMC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7IC8vICggMSwgdiwgdSApIHBvcyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC11LCAxLCAtdiApIHBvcyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi54ICo9IC0xLjA7IC8vICggLXUsIHYsIDEgKSBwb3MgelxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDMuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24uenl4O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHogKj0gLTEuMDsgLy8gKCAtMSwgdiwgLXUgKSBuZWcgeFxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDQuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24ueHp5O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHkgKj0gLTEuMDsgLy8gKCAtdSwgLTEsIHYgKSBuZWcgeVxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDUuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24ueiAqPSAtMS4wOyAvLyAoIHUsIHYsIC0xICkgbmVnIHpcblxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZGlyZWN0aW9uO1xuXG5cdFx0fVxuXG5cdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHR2T3V0cHV0RGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uKCB1diwgZmFjZUluZGV4ICk7XG5cdFx0XHRnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtcblxuXHRcdH1cblx0IixmcmFnbWVudFNoYWRlcjoiXG5cblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgaW50O1xuXG5cdFx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdFx0dW5pZm9ybSBzYW1wbGVyQ3ViZSBlbnZNYXA7XG5cblx0XHRcdFxuXG5cdFx0dW5pZm9ybSBpbnQgaW5wdXRFbmNvZGluZztcblx0XHR1bmlmb3JtIGludCBvdXRwdXRFbmNvZGluZztcblxuXHRcdCNpbmNsdWRlIDxlbmNvZGluZ3NfcGFyc19mcmFnbWVudD5cblxuXHRcdHZlYzQgaW5wdXRUZXhlbFRvTGluZWFyKCB2ZWM0IHZhbHVlICkge1xuXG5cdFx0XHRpZiAoIGlucHV0RW5jb2RpbmcgPT0gMCApIHtcblxuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMSApIHtcblxuXHRcdFx0XHRyZXR1cm4gc1JHQlRvTGluZWFyKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDIgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQkVUb0xpbmVhciggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAzICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JNVG9MaW5lYXIoIHZhbHVlLCA3LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSA0ICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JNVG9MaW5lYXIoIHZhbHVlLCAxNi4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gNSApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCRFRvTGluZWFyKCB2YWx1ZSwgMjU2LjAgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRyZXR1cm4gR2FtbWFUb0xpbmVhciggdmFsdWUsIDIuMiApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHR2ZWM0IGxpbmVhclRvT3V0cHV0VGV4ZWwoIHZlYzQgdmFsdWUgKSB7XG5cblx0XHRcdGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMCApIHtcblxuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDEgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvc1JHQiggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMiApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JFKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAzICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQk0oIHZhbHVlLCA3LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gNCApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JNKCB2YWx1ZSwgMTYuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSA1ICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQkQoIHZhbHVlLCAyNTYuMCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb0dhbW1hKCB2YWx1ZSwgMi4yICk7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdHZlYzQgZW52TWFwVGV4ZWxUb0xpbmVhciggdmVjNCBjb2xvciApIHtcblxuXHRcdFx0cmV0dXJuIGlucHV0VGV4ZWxUb0xpbmVhciggY29sb3IgKTtcblxuXHRcdH1cblx0XG5cblx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCAwLjAsIDAuMCwgMC4wLCAxLjAgKTtcblx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmVDdWJlKCBlbnZNYXAsIHZlYzMoIC0gdk91dHB1dERpcmVjdGlvbi54LCB2T3V0cHV0RGlyZWN0aW9uLnl6ICkgKSApLnJnYjtcblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gbGluZWFyVG9PdXRwdXRUZXhlbCggZ2xfRnJhZ0NvbG9yICk7XG5cblx0XHRcdH1cblx0XHQiLGJsZW5kaW5nOjAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITF9KX1mdW5jdGlvbiBmbHQodCl7bGV0IGU9bmV3IFdlYWtNYXAsbj1udWxsO2Z1bmN0aW9uIG8odCl7Y29uc3Qgbj10LnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLG8pO2NvbnN0IGk9ZS5nZXQobik7dm9pZCAwIT09aSYmKGkuZGVsZXRlKG4pLGkuZGlzcG9zZSgpKX1yZXR1cm57Z2V0OmZ1bmN0aW9uIGkoYSl7aWYoYSYmYS5pc1RleHR1cmUmJiExPT09YS5pc1JlbmRlclRhcmdldFRleHR1cmUpe2NvbnN0IGk9YS5tYXBwaW5nLHI9MzAzPT09aXx8MzA0PT09aSxzPWk9PT1kaXR8fGk9PT1waXQ7aWYocnx8cyl7aWYoZS5oYXMoYSkpcmV0dXJuIGUuZ2V0KGEpLnRleHR1cmU7e2NvbnN0IGk9YS5pbWFnZTtpZihyJiZpJiZpLmhlaWdodD4wfHxzJiZpJiYoZnVuY3Rpb24gcih0KXtsZXQgZT0wO2ZvcihsZXQgbj0wO248NjtuKyspdm9pZCAwIT09dFtuXSYmZSsrO3JldHVybiA2PT09ZX0pKGkpKXtjb25zdCBpPXQuZ2V0UmVuZGVyVGFyZ2V0KCk7bnVsbD09PW4mJihuPW5ldyBzbHQodCkpO2NvbnN0IHM9cj9uLmZyb21FcXVpcmVjdGFuZ3VsYXIoYSk6bi5mcm9tQ3ViZW1hcChhKTtyZXR1cm4gZS5zZXQoYSxzKSx0LnNldFJlbmRlclRhcmdldChpKSxhLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLG8pLHMudGV4dHVyZX1yZXR1cm4gbnVsbH19fXJldHVybiBhfSxkaXNwb3NlOmZ1bmN0aW9uIGEoKXtlPW5ldyBXZWFrTWFwLG51bGwhPT1uJiYobi5kaXNwb3NlKCksbj1udWxsKX19fWZ1bmN0aW9uIGdsdCh0KXtjb25zdCBlPXt9O2Z1bmN0aW9uIG4obil7aWYodm9pZCAwIT09ZVtuXSlyZXR1cm4gZVtuXTtsZXQgbztzd2l0Y2gobil7Y2FzZSJXRUJHTF9kZXB0aF90ZXh0dXJlIjpvPXQuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9kZXB0aF90ZXh0dXJlIil8fHQuZ2V0RXh0ZW5zaW9uKCJNT1pfV0VCR0xfZGVwdGhfdGV4dHVyZSIpfHx0LmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2RlcHRoX3RleHR1cmUiKTticmVhaztjYXNlIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyI6bz10LmdldEV4dGVuc2lvbigiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJNT1pfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7YnJlYWs7Y2FzZSJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyI6bz10LmdldEV4dGVuc2lvbigiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKXx8dC5nZXRFeHRlbnNpb24oIk1PWl9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpfHx0LmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7YnJlYWs7Y2FzZSJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiOm89dC5nZXRFeHRlbnNpb24oIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpfHx0LmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpO2JyZWFrO2RlZmF1bHQ6bz10LmdldEV4dGVuc2lvbihuKX1yZXR1cm4gZVtuXT1vLG99cmV0dXJue2hhczpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9PW4odCl9LGluaXQ6ZnVuY3Rpb24odCl7dC5pc1dlYkdMMj9uKCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0Iik6KG4oIldFQkdMX2RlcHRoX3RleHR1cmUiKSxuKCJPRVNfdGV4dHVyZV9mbG9hdCIpLG4oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSxuKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpLG4oIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpLG4oIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKSxuKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpLG4oIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSksbigiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiksbigiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0Iil9LGdldDpmdW5jdGlvbih0KXtjb25zdCBlPW4odCk7cmV0dXJuIG51bGw9PT1lJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6ICIrdCsiIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkLiIpLGV9fX1mdW5jdGlvbiBobHQodCxlLG4sbyl7Y29uc3QgaT17fSxhPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHIodCl7Y29uc3Qgcz10LnRhcmdldDtudWxsIT09cy5pbmRleCYmZS5yZW1vdmUocy5pbmRleCk7Zm9yKGNvbnN0IHQgaW4gcy5hdHRyaWJ1dGVzKWUucmVtb3ZlKHMuYXR0cmlidXRlc1t0XSk7cy5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixyKSxkZWxldGUgaVtzLmlkXTtjb25zdCBsPWEuZ2V0KHMpO2wmJihlLnJlbW92ZShsKSxhLmRlbGV0ZShzKSksby5yZWxlYXNlU3RhdGVzT2ZHZW9tZXRyeShzKSwhMD09PXMuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSYmZGVsZXRlIHMuX21heEluc3RhbmNlQ291bnQsbi5tZW1vcnkuZ2VvbWV0cmllcy0tfWZ1bmN0aW9uIHModCl7Y29uc3Qgbj1bXSxvPXQuaW5kZXgsaT10LmF0dHJpYnV0ZXMucG9zaXRpb247bGV0IHI9MDtpZihudWxsIT09byl7Y29uc3QgdD1vLmFycmF5O3I9by52ZXJzaW9uO2ZvcihsZXQgZT0wLG89dC5sZW5ndGg7ZTxvO2UrPTMpe2NvbnN0IG89dFtlKzBdLGk9dFtlKzFdLGE9dFtlKzJdO24ucHVzaChvLGksaSxhLGEsbyl9fWVsc2V7cj1pLnZlcnNpb247Zm9yKGxldCB0PTAsZT1pLmFycmF5Lmxlbmd0aC8zLTE7dDxlO3QrPTMpe2NvbnN0IGU9dCswLG89dCsxLGk9dCsyO24ucHVzaChlLG8sbyxpLGksZSl9fWNvbnN0IHM9bmV3KExydChuKT42NTUzNT9IcnQ6SXJ0KShuLDEpO3MudmVyc2lvbj1yO2NvbnN0IGw9YS5nZXQodCk7bCYmZS5yZW1vdmUobCksYS5zZXQodCxzKX1yZXR1cm57Z2V0OmZ1bmN0aW9uIGwodCxlKXtyZXR1cm4hMD09PWlbZS5pZF18fChlLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHIpLGlbZS5pZF09ITAsbi5tZW1vcnkuZ2VvbWV0cmllcysrKSxlfSx1cGRhdGU6ZnVuY3Rpb24gYyh0KXtjb25zdCBuPXQuYXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiBuKWUudXBkYXRlKG5bdF0sMzQ5NjIpO2NvbnN0IG89dC5tb3JwaEF0dHJpYnV0ZXM7Zm9yKGNvbnN0IHQgaW4gbyl7Y29uc3Qgbj1vW3RdO2ZvcihsZXQgdD0wLG89bi5sZW5ndGg7dDxvO3QrKyllLnVwZGF0ZShuW3RdLDM0OTYyKX19LGdldFdpcmVmcmFtZUF0dHJpYnV0ZTpmdW5jdGlvbiBkKHQpe2NvbnN0IGU9YS5nZXQodCk7aWYoZSl7Y29uc3Qgbj10LmluZGV4O251bGwhPT1uJiZlLnZlcnNpb248bi52ZXJzaW9uJiZzKHQpfWVsc2Ugcyh0KTtyZXR1cm4gYS5nZXQodCl9fX1mdW5jdGlvbiBibHQodCxlLG4sbyl7Y29uc3QgaT1vLmlzV2ViR0wyO2xldCBhLHIsczt0aGlzLnNldE1vZGU9ZnVuY3Rpb24gbCh0KXthPXR9LHRoaXMuc2V0SW5kZXg9ZnVuY3Rpb24gYyh0KXtyPXQudHlwZSxzPXQuYnl0ZXNQZXJFbGVtZW50fSx0aGlzLnJlbmRlcj1mdW5jdGlvbiBkKGUsbyl7dC5kcmF3RWxlbWVudHMoYSxvLHIsZSpzKSxuLnVwZGF0ZShvLGEsMSl9LHRoaXMucmVuZGVySW5zdGFuY2VzPWZ1bmN0aW9uIHAobyxsLGMpe2lmKDA9PT1jKXJldHVybjtsZXQgZCxwO2lmKGkpZD10LHA9ImRyYXdFbGVtZW50c0luc3RhbmNlZCI7ZWxzZSBpZihkPWUuZ2V0KCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikscD0iZHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUiLG51bGw9PT1kKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMSW5kZXhlZEJ1ZmZlclJlbmRlcmVyOiB1c2luZyBUSFJFRS5JbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSBidXQgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydCBleHRlbnNpb24gQU5HTEVfaW5zdGFuY2VkX2FycmF5cy4iKTtkW3BdKGEsbCxyLG8qcyxjKSxuLnVwZGF0ZShsLGEsYyl9fWZ1bmN0aW9uIHlsdCh0KXtjb25zdCBlPXtmcmFtZTowLGNhbGxzOjAsdHJpYW5nbGVzOjAscG9pbnRzOjAsbGluZXM6MH07cmV0dXJue21lbW9yeTp7Z2VvbWV0cmllczowLHRleHR1cmVzOjB9LHJlbmRlcjplLHByb2dyYW1zOm51bGwsYXV0b1Jlc2V0OiEwLHJlc2V0OmZ1bmN0aW9uIG4oKXtlLmZyYW1lKyssZS5jYWxscz0wLGUudHJpYW5nbGVzPTAsZS5wb2ludHM9MCxlLmxpbmVzPTB9LHVwZGF0ZTpmdW5jdGlvbiBvKHQsbixpKXtzd2l0Y2goZS5jYWxscysrLG4pe2Nhc2UgNDplLnRyaWFuZ2xlcys9aSoodC8zKTticmVhaztjYXNlIDE6ZS5saW5lcys9aSoodC8yKTticmVhaztjYXNlIDM6ZS5saW5lcys9aSoodC0xKTticmVhaztjYXNlIDI6ZS5saW5lcys9aSp0O2JyZWFrO2Nhc2UgMDplLnBvaW50cys9aSp0O2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xJbmZvOiBVbmtub3duIGRyYXcgbW9kZToiLG4pfX19fWZ1bmN0aW9uIF9sdCh0LGUpe3JldHVybiB0WzBdLWVbMF19ZnVuY3Rpb24gQ2x0KHQsZSl7cmV0dXJuIE1hdGguYWJzKGVbMV0pLU1hdGguYWJzKHRbMV0pfWZ1bmN0aW9uIE1sdCh0KXtjb25zdCBlPXt9LG49bmV3IEZsb2F0MzJBcnJheSg4KSxvPVtdO2ZvcihsZXQgdD0wO3Q8ODt0Kyspb1t0XT1bdCwwXTtyZXR1cm57dXBkYXRlOmZ1bmN0aW9uIGkoYSxyLHMsbCl7Y29uc3QgYz1hLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyxkPXZvaWQgMD09PWM/MDpjLmxlbmd0aDtsZXQgcD1lW3IuaWRdO2lmKHZvaWQgMD09PXB8fHAubGVuZ3RoIT09ZCl7cD1bXTtmb3IobGV0IHQ9MDt0PGQ7dCsrKXBbdF09W3QsMF07ZVtyLmlkXT1wfWZvcihsZXQgdD0wO3Q8ZDt0Kyspe2NvbnN0IGU9cFt0XTtlWzBdPXQsZVsxXT1jW3RdfXAuc29ydChDbHQpO2ZvcihsZXQgdD0wO3Q8ODt0KyspdDxkJiZwW3RdWzFdPyhvW3RdWzBdPXBbdF1bMF0sb1t0XVsxXT1wW3RdWzFdKToob1t0XVswXT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUixvW3RdWzFdPTApO28uc29ydChfbHQpO2NvbnN0IG09ci5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sdT1yLm1vcnBoQXR0cmlidXRlcy5ub3JtYWw7bGV0IGY9MDtmb3IobGV0IHQ9MDt0PDg7dCsrKXtjb25zdCBlPW9bdF0saT1lWzBdLGE9ZVsxXTtpIT09TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVImJmE/KG0mJnIuZ2V0QXR0cmlidXRlKCJtb3JwaFRhcmdldCIrdCkhPT1tW2ldJiZyLnNldEF0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK3QsbVtpXSksdSYmci5nZXRBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0KSE9PXVbaV0mJnIuc2V0QXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrdCx1W2ldKSxuW3RdPWEsZis9YSk6KG0mJiEwPT09ci5oYXNBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0Iit0KSYmci5kZWxldGVBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0Iit0KSx1JiYhMD09PXIuaGFzQXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrdCkmJnIuZGVsZXRlQXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrdCksblt0XT0wKX1jb25zdCBnPXIubW9ycGhUYXJnZXRzUmVsYXRpdmU/MToxLWY7bC5nZXRVbmlmb3JtcygpLnNldFZhbHVlKHQsIm1vcnBoVGFyZ2V0QmFzZUluZmx1ZW5jZSIsZyksbC5nZXRVbmlmb3JtcygpLnNldFZhbHVlKHQsIm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyIsbil9fX1mdW5jdGlvbiB2bHQodCxlLG4sbyl7bGV0IGk9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYSh0KXtjb25zdCBlPXQudGFyZ2V0O2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsYSksbi5yZW1vdmUoZS5pbnN0YW5jZU1hdHJpeCksbnVsbCE9PWUuaW5zdGFuY2VDb2xvciYmbi5yZW1vdmUoZS5pbnN0YW5jZUNvbG9yKX1yZXR1cm57dXBkYXRlOmZ1bmN0aW9uIHIodCl7Y29uc3Qgcj1vLnJlbmRlci5mcmFtZSxzPWUuZ2V0KHQsdC5nZW9tZXRyeSk7cmV0dXJuIGkuZ2V0KHMpIT09ciYmKGUudXBkYXRlKHMpLGkuc2V0KHMscikpLHQuaXNJbnN0YW5jZWRNZXNoJiYoITE9PT10Lmhhc0V2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpJiZ0LmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpLG4udXBkYXRlKHQuaW5zdGFuY2VNYXRyaXgsMzQ5NjIpLG51bGwhPT10Lmluc3RhbmNlQ29sb3ImJm4udXBkYXRlKHQuaW5zdGFuY2VDb2xvciwzNDk2MikpLHN9LGRpc3Bvc2U6ZnVuY3Rpb24gcygpe2k9bmV3IFdlYWtNYXB9fX1jbGFzcyB4bHQgZXh0ZW5kcyBvYXR7Y29uc3RydWN0b3IodD1udWxsLGU9MSxuPTEsbz0xKXtzdXBlcihudWxsKSx0aGlzLmltYWdlPXtkYXRhOnQsd2lkdGg6ZSxoZWlnaHQ6bixkZXB0aDpvfSx0aGlzLm1hZ0ZpbHRlcj1oaXQsdGhpcy5taW5GaWx0ZXI9aGl0LHRoaXMud3JhcFI9Zml0LHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExLHRoaXMuZmxpcFk9ITEsdGhpcy51bnBhY2tBbGlnbm1lbnQ9MSx0aGlzLm5lZWRzVXBkYXRlPSEwfX14bHQucHJvdG90eXBlLmlzRGF0YVRleHR1cmUyREFycmF5PSEwO2NsYXNzIE9sdCBleHRlbmRzIG9hdHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxvPTEpe3N1cGVyKG51bGwpLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpuLGRlcHRoOm99LHRoaXMubWFnRmlsdGVyPWhpdCx0aGlzLm1pbkZpbHRlcj1oaXQsdGhpcy53cmFwUj1maXQsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fU9sdC5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZTNEPSEwO2NvbnN0IFBsdD1uZXcgb2F0LHdsdD1uZXcgeGx0LGtsdD1uZXcgT2x0LFNsdD1uZXcgdnN0LERsdD1bXSxFbHQ9W10sUmx0PW5ldyBGbG9hdDMyQXJyYXkoMTYpLEFsdD1uZXcgRmxvYXQzMkFycmF5KDkpLFRsdD1uZXcgRmxvYXQzMkFycmF5KDQpO2Z1bmN0aW9uIE5sdCh0LGUsbil7Y29uc3Qgbz10WzBdO2lmKG88PTB8fG8+MClyZXR1cm4gdDtjb25zdCBpPWUqbjtsZXQgYT1EbHRbaV07aWYodm9pZCAwPT09YSYmKGE9bmV3IEZsb2F0MzJBcnJheShpKSxEbHRbaV09YSksMCE9PWUpe28udG9BcnJheShhLDApO2ZvcihsZXQgbz0xLGk9MDtvIT09ZTsrK28paSs9bix0W29dLnRvQXJyYXkoYSxpKX1yZXR1cm4gYX1mdW5jdGlvbiB6bHQodCxlKXtpZih0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgbj0wLG89dC5sZW5ndGg7bjxvO24rKylpZih0W25dIT09ZVtuXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBJbHQodCxlKXtmb3IobGV0IG49MCxvPWUubGVuZ3RoO248bztuKyspdFtuXT1lW25dfWZ1bmN0aW9uIEhsdCh0LGUpe2xldCBuPUVsdFtlXTt2b2lkIDA9PT1uJiYobj1uZXcgSW50MzJBcnJheShlKSxFbHRbZV09bik7Zm9yKGxldCBvPTA7byE9PWU7KytvKW5bb109dC5hbGxvY2F0ZVRleHR1cmVVbml0KCk7cmV0dXJuIG59ZnVuY3Rpb24gRmx0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO25bMF0hPT1lJiYodC51bmlmb3JtMWYodGhpcy5hZGRyLGUpLG5bMF09ZSl9ZnVuY3Rpb24gTGx0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2lmKHZvaWQgMCE9PWUueCluWzBdPT09ZS54JiZuWzFdPT09ZS55fHwodC51bmlmb3JtMmYodGhpcy5hZGRyLGUueCxlLnkpLG5bMF09ZS54LG5bMV09ZS55KTtlbHNle2lmKHpsdChuLGUpKXJldHVybjt0LnVuaWZvcm0yZnYodGhpcy5hZGRyLGUpLElsdChuLGUpfX1mdW5jdGlvbiBCbHQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7aWYodm9pZCAwIT09ZS54KW5bMF09PT1lLngmJm5bMV09PT1lLnkmJm5bMl09PT1lLnp8fCh0LnVuaWZvcm0zZih0aGlzLmFkZHIsZS54LGUueSxlLnopLG5bMF09ZS54LG5bMV09ZS55LG5bMl09ZS56KTtlbHNlIGlmKHZvaWQgMCE9PWUuciluWzBdPT09ZS5yJiZuWzFdPT09ZS5nJiZuWzJdPT09ZS5ifHwodC51bmlmb3JtM2YodGhpcy5hZGRyLGUucixlLmcsZS5iKSxuWzBdPWUucixuWzFdPWUuZyxuWzJdPWUuYik7ZWxzZXtpZih6bHQobixlKSlyZXR1cm47dC51bmlmb3JtM2Z2KHRoaXMuYWRkcixlKSxJbHQobixlKX19ZnVuY3Rpb24gVmx0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2lmKHZvaWQgMCE9PWUueCluWzBdPT09ZS54JiZuWzFdPT09ZS55JiZuWzJdPT09ZS56JiZuWzNdPT09ZS53fHwodC51bmlmb3JtNGYodGhpcy5hZGRyLGUueCxlLnksZS56LGUudyksblswXT1lLngsblsxXT1lLnksblsyXT1lLnosblszXT1lLncpO2Vsc2V7aWYoemx0KG4sZSkpcmV0dXJuO3QudW5pZm9ybTRmdih0aGlzLmFkZHIsZSksSWx0KG4sZSl9fWZ1bmN0aW9uIGpsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZSxvPWUuZWxlbWVudHM7aWYodm9pZCAwPT09byl7aWYoemx0KG4sZSkpcmV0dXJuO3QudW5pZm9ybU1hdHJpeDJmdih0aGlzLmFkZHIsITEsZSksSWx0KG4sZSl9ZWxzZXtpZih6bHQobixvKSlyZXR1cm47VGx0LnNldChvKSx0LnVuaWZvcm1NYXRyaXgyZnYodGhpcy5hZGRyLCExLFRsdCksSWx0KG4sbyl9fWZ1bmN0aW9uIFVsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZSxvPWUuZWxlbWVudHM7aWYodm9pZCAwPT09byl7aWYoemx0KG4sZSkpcmV0dXJuO3QudW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEsZSksSWx0KG4sZSl9ZWxzZXtpZih6bHQobixvKSlyZXR1cm47QWx0LnNldChvKSx0LnVuaWZvcm1NYXRyaXgzZnYodGhpcy5hZGRyLCExLEFsdCksSWx0KG4sbyl9fWZ1bmN0aW9uIEdsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZSxvPWUuZWxlbWVudHM7aWYodm9pZCAwPT09byl7aWYoemx0KG4sZSkpcmV0dXJuO3QudW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEsZSksSWx0KG4sZSl9ZWxzZXtpZih6bHQobixvKSlyZXR1cm47Umx0LnNldChvKSx0LnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5hZGRyLCExLFJsdCksSWx0KG4sbyl9fWZ1bmN0aW9uIFdsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtuWzBdIT09ZSYmKHQudW5pZm9ybTFpKHRoaXMuYWRkcixlKSxuWzBdPWUpfWZ1bmN0aW9uIFlsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTt6bHQobixlKXx8KHQudW5pZm9ybTJpdih0aGlzLmFkZHIsZSksSWx0KG4sZSkpfWZ1bmN0aW9uIHFsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTt6bHQobixlKXx8KHQudW5pZm9ybTNpdih0aGlzLmFkZHIsZSksSWx0KG4sZSkpfWZ1bmN0aW9uIFpsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTt6bHQobixlKXx8KHQudW5pZm9ybTRpdih0aGlzLmFkZHIsZSksSWx0KG4sZSkpfWZ1bmN0aW9uIFhsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtuWzBdIT09ZSYmKHQudW5pZm9ybTF1aSh0aGlzLmFkZHIsZSksblswXT1lKX1mdW5jdGlvbiBLbHQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7emx0KG4sZSl8fCh0LnVuaWZvcm0ydWl2KHRoaXMuYWRkcixlKSxJbHQobixlKSl9ZnVuY3Rpb24gSmx0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO3psdChuLGUpfHwodC51bmlmb3JtM3Vpdih0aGlzLmFkZHIsZSksSWx0KG4sZSkpfWZ1bmN0aW9uIFFsdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTt6bHQobixlKXx8KHQudW5pZm9ybTR1aXYodGhpcy5hZGRyLGUpLElsdChuLGUpKX1mdW5jdGlvbiAkbHQodCxlLG4pe2NvbnN0IG89dGhpcy5jYWNoZSxpPW4uYWxsb2NhdGVUZXh0dXJlVW5pdCgpO29bMF0hPT1pJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLGkpLG9bMF09aSksbi5zYWZlU2V0VGV4dHVyZTJEKGV8fFBsdCxpKX1mdW5jdGlvbiB0Y3QodCxlLG4pe2NvbnN0IG89dGhpcy5jYWNoZSxpPW4uYWxsb2NhdGVUZXh0dXJlVW5pdCgpO29bMF0hPT1pJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLGkpLG9bMF09aSksbi5zZXRUZXh0dXJlM0QoZXx8a2x0LGkpfWZ1bmN0aW9uIGVjdCh0LGUsbil7Y29uc3Qgbz10aGlzLmNhY2hlLGk9bi5hbGxvY2F0ZVRleHR1cmVVbml0KCk7b1swXSE9PWkmJih0LnVuaWZvcm0xaSh0aGlzLmFkZHIsaSksb1swXT1pKSxuLnNhZmVTZXRUZXh0dXJlQ3ViZShlfHxTbHQsaSl9ZnVuY3Rpb24gbmN0KHQsZSxuKXtjb25zdCBvPXRoaXMuY2FjaGUsaT1uLmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtvWzBdIT09aSYmKHQudW5pZm9ybTFpKHRoaXMuYWRkcixpKSxvWzBdPWkpLG4uc2V0VGV4dHVyZTJEQXJyYXkoZXx8d2x0LGkpfWZ1bmN0aW9uIG9jdCh0LGUpe3QudW5pZm9ybTFmdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gaWN0KHQsZSl7Y29uc3Qgbj1ObHQoZSx0aGlzLnNpemUsMik7dC51bmlmb3JtMmZ2KHRoaXMuYWRkcixuKX1mdW5jdGlvbiBhY3QodCxlKXtjb25zdCBuPU5sdChlLHRoaXMuc2l6ZSwzKTt0LnVuaWZvcm0zZnYodGhpcy5hZGRyLG4pfWZ1bmN0aW9uIHJjdCh0LGUpe2NvbnN0IG49Tmx0KGUsdGhpcy5zaXplLDQpO3QudW5pZm9ybTRmdih0aGlzLmFkZHIsbil9ZnVuY3Rpb24gc2N0KHQsZSl7Y29uc3Qgbj1ObHQoZSx0aGlzLnNpemUsNCk7dC51bmlmb3JtTWF0cml4MmZ2KHRoaXMuYWRkciwhMSxuKX1mdW5jdGlvbiBsY3QodCxlKXtjb25zdCBuPU5sdChlLHRoaXMuc2l6ZSw5KTt0LnVuaWZvcm1NYXRyaXgzZnYodGhpcy5hZGRyLCExLG4pfWZ1bmN0aW9uIGNjdCh0LGUpe2NvbnN0IG49Tmx0KGUsdGhpcy5zaXplLDE2KTt0LnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5hZGRyLCExLG4pfWZ1bmN0aW9uIGRjdCh0LGUpe3QudW5pZm9ybTFpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gcGN0KHQsZSl7dC51bmlmb3JtMml2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBtY3QodCxlKXt0LnVuaWZvcm0zaXYodGhpcy5hZGRyLGUpfWZ1bmN0aW9uIHVjdCh0LGUpe3QudW5pZm9ybTRpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gZmN0KHQsZSl7dC51bmlmb3JtMXVpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gZ2N0KHQsZSl7dC51bmlmb3JtMnVpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gaGN0KHQsZSl7dC51bmlmb3JtM3Vpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gYmN0KHQsZSl7dC51bmlmb3JtNHVpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24geWN0KHQsZSxuKXtjb25zdCBvPWUubGVuZ3RoLGk9SGx0KG4sbyk7dC51bmlmb3JtMWl2KHRoaXMuYWRkcixpKTtmb3IobGV0IHQ9MDt0IT09bzsrK3Qpbi5zYWZlU2V0VGV4dHVyZTJEKGVbdF18fFBsdCxpW3RdKX1mdW5jdGlvbiBfY3QodCxlLG4pe2NvbnN0IG89ZS5sZW5ndGgsaT1IbHQobixvKTt0LnVuaWZvcm0xaXYodGhpcy5hZGRyLGkpO2ZvcihsZXQgdD0wO3QhPT1vOysrdCluLnNhZmVTZXRUZXh0dXJlQ3ViZShlW3RdfHxTbHQsaVt0XSl9ZnVuY3Rpb24gQ2N0KHQsZSxuKXt0aGlzLmlkPXQsdGhpcy5hZGRyPW4sdGhpcy5jYWNoZT1bXSx0aGlzLnNldFZhbHVlPShmdW5jdGlvbiBvKHQpe3N3aXRjaCh0KXtjYXNlIDUxMjY6cmV0dXJuIEZsdDtjYXNlIDM1NjY0OnJldHVybiBMbHQ7Y2FzZSAzNTY2NTpyZXR1cm4gQmx0O2Nhc2UgMzU2NjY6cmV0dXJuIFZsdDtjYXNlIDM1Njc0OnJldHVybiBqbHQ7Y2FzZSAzNTY3NTpyZXR1cm4gVWx0O2Nhc2UgMzU2NzY6cmV0dXJuIEdsdDtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpyZXR1cm4gV2x0O2Nhc2UgMzU2Njc6Y2FzZSAzNTY3MTpyZXR1cm4gWWx0O2Nhc2UgMzU2Njg6Y2FzZSAzNTY3MjpyZXR1cm4gcWx0O2Nhc2UgMzU2Njk6Y2FzZSAzNTY3MzpyZXR1cm4gWmx0O2Nhc2UgNTEyNTpyZXR1cm4gWGx0O2Nhc2UgMzYyOTQ6cmV0dXJuIEtsdDtjYXNlIDM2Mjk1OnJldHVybiBKbHQ7Y2FzZSAzNjI5NjpyZXR1cm4gUWx0O2Nhc2UgMzU2Nzg6Y2FzZSAzNjE5ODpjYXNlIDM2Mjk4OmNhc2UgMzYzMDY6Y2FzZSAzNTY4MjpyZXR1cm4gJGx0O2Nhc2UgMzU2Nzk6Y2FzZSAzNjI5OTpjYXNlIDM2MzA3OnJldHVybiB0Y3Q7Y2FzZSAzNTY4MDpjYXNlIDM2MzAwOmNhc2UgMzYzMDg6Y2FzZSAzNjI5MzpyZXR1cm4gZWN0O2Nhc2UgMzYyODk6Y2FzZSAzNjMwMzpjYXNlIDM2MzExOmNhc2UgMzYyOTI6cmV0dXJuIG5jdH19KShlLnR5cGUpfWZ1bmN0aW9uIE1jdCh0LGUsbil7dGhpcy5pZD10LHRoaXMuYWRkcj1uLHRoaXMuY2FjaGU9W10sdGhpcy5zaXplPWUuc2l6ZSx0aGlzLnNldFZhbHVlPShmdW5jdGlvbiBvKHQpe3N3aXRjaCh0KXtjYXNlIDUxMjY6cmV0dXJuIG9jdDtjYXNlIDM1NjY0OnJldHVybiBpY3Q7Y2FzZSAzNTY2NTpyZXR1cm4gYWN0O2Nhc2UgMzU2NjY6cmV0dXJuIHJjdDtjYXNlIDM1Njc0OnJldHVybiBzY3Q7Y2FzZSAzNTY3NTpyZXR1cm4gbGN0O2Nhc2UgMzU2NzY6cmV0dXJuIGNjdDtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpyZXR1cm4gZGN0O2Nhc2UgMzU2Njc6Y2FzZSAzNTY3MTpyZXR1cm4gcGN0O2Nhc2UgMzU2Njg6Y2FzZSAzNTY3MjpyZXR1cm4gbWN0O2Nhc2UgMzU2Njk6Y2FzZSAzNTY3MzpyZXR1cm4gdWN0O2Nhc2UgNTEyNTpyZXR1cm4gZmN0O2Nhc2UgMzYyOTQ6cmV0dXJuIGdjdDtjYXNlIDM2Mjk1OnJldHVybiBoY3Q7Y2FzZSAzNjI5NjpyZXR1cm4gYmN0O2Nhc2UgMzU2Nzg6Y2FzZSAzNjE5ODpjYXNlIDM2Mjk4OmNhc2UgMzYzMDY6Y2FzZSAzNTY4MjpyZXR1cm4geWN0O2Nhc2UgMzU2ODA6Y2FzZSAzNjMwMDpjYXNlIDM2MzA4OmNhc2UgMzYyOTM6cmV0dXJuIF9jdH19KShlLnR5cGUpfWZ1bmN0aW9uIHZjdCh0KXt0aGlzLmlkPXQsdGhpcy5zZXE9W10sdGhpcy5tYXA9e319TWN0LnByb3RvdHlwZS51cGRhdGVDYWNoZT1mdW5jdGlvbih0KXtjb25zdCBlPXRoaXMuY2FjaGU7dCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSYmZS5sZW5ndGghPT10Lmxlbmd0aCYmKHRoaXMuY2FjaGU9bmV3IEZsb2F0MzJBcnJheSh0Lmxlbmd0aCkpLElsdChlLHQpfSx2Y3QucHJvdG90eXBlLnNldFZhbHVlPWZ1bmN0aW9uKHQsZSxuKXtjb25zdCBvPXRoaXMuc2VxO2ZvcihsZXQgaT0wLGE9by5sZW5ndGg7aSE9PWE7KytpKXtjb25zdCBhPW9baV07YS5zZXRWYWx1ZSh0LGVbYS5pZF0sbil9fTtjb25zdCB4Y3Q9LyhcdyspKFxdKT8oXFt8XC4pPy9nO2Z1bmN0aW9uIE9jdCh0LGUpe3Quc2VxLnB1c2goZSksdC5tYXBbZS5pZF09ZX1mdW5jdGlvbiBQY3QodCxlLG4pe2NvbnN0IG89dC5uYW1lLGk9by5sZW5ndGg7Zm9yKHhjdC5sYXN0SW5kZXg9MDs7KXtjb25zdCBhPXhjdC5leGVjKG8pLHI9eGN0Lmxhc3RJbmRleDtsZXQgcz1hWzFdO2NvbnN0IGw9YVszXTtpZigiXSI9PT1hWzJdJiYoc3w9MCksdm9pZCAwPT09bHx8IlsiPT09bCYmcisyPT09aSl7T2N0KG4sdm9pZCAwPT09bD9uZXcgQ2N0KHMsdCxlKTpuZXcgTWN0KHMsdCxlKSk7YnJlYWt9e2xldCB0PW4ubWFwW3NdO3ZvaWQgMD09PXQmJih0PW5ldyB2Y3QocyksT2N0KG4sdCkpLG49dH19fWZ1bmN0aW9uIHdjdCh0LGUpe3RoaXMuc2VxPVtdLHRoaXMubWFwPXt9O2NvbnN0IG49dC5nZXRQcm9ncmFtUGFyYW1ldGVyKGUsMzU3MTgpO2ZvcihsZXQgbz0wO288bjsrK28pe2NvbnN0IG49dC5nZXRBY3RpdmVVbmlmb3JtKGUsbyk7UGN0KG4sdC5nZXRVbmlmb3JtTG9jYXRpb24oZSxuLm5hbWUpLHRoaXMpfX1mdW5jdGlvbiBrY3QodCxlLG4pe2NvbnN0IG89dC5jcmVhdGVTaGFkZXIoZSk7cmV0dXJuIHQuc2hhZGVyU291cmNlKG8sbiksdC5jb21waWxlU2hhZGVyKG8pLG99d2N0LnByb3RvdHlwZS5zZXRWYWx1ZT1mdW5jdGlvbih0LGUsbixvKXtjb25zdCBpPXRoaXMubWFwW2VdO3ZvaWQgMCE9PWkmJmkuc2V0VmFsdWUodCxuLG8pfSx3Y3QucHJvdG90eXBlLnNldE9wdGlvbmFsPWZ1bmN0aW9uKHQsZSxuKXtjb25zdCBvPWVbbl07dm9pZCAwIT09byYmdGhpcy5zZXRWYWx1ZSh0LG4sbyl9LHdjdC51cGxvYWQ9ZnVuY3Rpb24odCxlLG4sbyl7Zm9yKGxldCBpPTAsYT1lLmxlbmd0aDtpIT09YTsrK2kpe2NvbnN0IGE9ZVtpXSxyPW5bYS5pZF07ITEhPT1yLm5lZWRzVXBkYXRlJiZhLnNldFZhbHVlKHQsci52YWx1ZSxvKX19LHdjdC5zZXFXaXRoVmFsdWU9ZnVuY3Rpb24odCxlKXtjb25zdCBuPVtdO2ZvcihsZXQgbz0wLGk9dC5sZW5ndGg7byE9PWk7KytvKXtjb25zdCBpPXRbb107aS5pZCBpbiBlJiZuLnB1c2goaSl9cmV0dXJuIG59O2xldCBTY3Q9MDtmdW5jdGlvbiBEY3QodCl7c3dpdGNoKHQpe2Nhc2Ugeml0OnJldHVyblsiTGluZWFyIiwiKCB2YWx1ZSApIl07Y2FzZSBJaXQ6cmV0dXJuWyJzUkdCIiwiKCB2YWx1ZSApIl07Y2FzZSBGaXQ6cmV0dXJuWyJSR0JFIiwiKCB2YWx1ZSApIl07Y2FzZSAzMDA0OnJldHVyblsiUkdCTSIsIiggdmFsdWUsIDcuMCApIl07Y2FzZSAzMDA1OnJldHVyblsiUkdCTSIsIiggdmFsdWUsIDE2LjAgKSJdO2Nhc2UgMzAwNjpyZXR1cm5bIlJHQkQiLCIoIHZhbHVlLCAyNTYuMCApIl07Y2FzZSBIaXQ6cmV0dXJuWyJHYW1tYSIsIiggdmFsdWUsIGZsb2F0KCBHQU1NQV9GQUNUT1IgKSApIl07Y2FzZSAzMDAzOnJldHVyblsiTG9nTHV2IiwiKCB2YWx1ZSApIl07ZGVmYXVsdDpyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW06IFVuc3VwcG9ydGVkIGVuY29kaW5nOiIsdCksWyJMaW5lYXIiLCIoIHZhbHVlICkiXX19ZnVuY3Rpb24gRWN0KHQsZSxuKXtjb25zdCBvPXQuZ2V0U2hhZGVyUGFyYW1ldGVyKGUsMzU3MTMpLGk9dC5nZXRTaGFkZXJJbmZvTG9nKGUpLnRyaW0oKTtyZXR1cm4gbyYmIiI9PT1pPyIiOiJUSFJFRS5XZWJHTFNoYWRlcjogZ2wuZ2V0U2hhZGVySW5mb0xvZygpICIrbisiXG4iK2krKGZ1bmN0aW9uIGEodCl7Y29uc3QgZT10LnNwbGl0KCJcbiIpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF09dCsxKyI6ICIrZVt0XTtyZXR1cm4gZS5qb2luKCJcbiIpfSkodC5nZXRTaGFkZXJTb3VyY2UoZSkpfWZ1bmN0aW9uIFJjdCh0LGUpe2NvbnN0IG49RGN0KGUpO3JldHVybiJ2ZWM0ICIrdCsiKCB2ZWM0IHZhbHVlICkgeyByZXR1cm4gIituWzBdKyJUb0xpbmVhciIrblsxXSsiOyB9In1mdW5jdGlvbiBBY3QodCxlKXtjb25zdCBuPURjdChlKTtyZXR1cm4idmVjNCAiK3QrIiggdmVjNCB2YWx1ZSApIHsgcmV0dXJuIExpbmVhclRvIituWzBdK25bMV0rIjsgfSJ9ZnVuY3Rpb24gVGN0KHQsZSl7bGV0IG47c3dpdGNoKGUpe2Nhc2UgMTpuPSJMaW5lYXIiO2JyZWFrO2Nhc2UgMjpuPSJSZWluaGFyZCI7YnJlYWs7Y2FzZSAzOm49Ik9wdGltaXplZENpbmVvbiI7YnJlYWs7Y2FzZSA0Om49IkFDRVNGaWxtaWMiO2JyZWFrO2Nhc2UgNTpuPSJDdXN0b20iO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW06IFVuc3VwcG9ydGVkIHRvbmVNYXBwaW5nOiIsZSksbj0iTGluZWFyIn1yZXR1cm4idmVjMyAiK3QrIiggdmVjMyBjb2xvciApIHsgcmV0dXJuICIrbisiVG9uZU1hcHBpbmcoIGNvbG9yICk7IH0ifWZ1bmN0aW9uIE5jdCh0KXtyZXR1cm4iIiE9PXR9ZnVuY3Rpb24gemN0KHQsZSl7cmV0dXJuIHQucmVwbGFjZSgvTlVNX0RJUl9MSUdIVFMvZyxlLm51bURpckxpZ2h0cykucmVwbGFjZSgvTlVNX1NQT1RfTElHSFRTL2csZS5udW1TcG90TGlnaHRzKS5yZXBsYWNlKC9OVU1fUkVDVF9BUkVBX0xJR0hUUy9nLGUubnVtUmVjdEFyZWFMaWdodHMpLnJlcGxhY2UoL05VTV9QT0lOVF9MSUdIVFMvZyxlLm51bVBvaW50TGlnaHRzKS5yZXBsYWNlKC9OVU1fSEVNSV9MSUdIVFMvZyxlLm51bUhlbWlMaWdodHMpLnJlcGxhY2UoL05VTV9ESVJfTElHSFRfU0hBRE9XUy9nLGUubnVtRGlyTGlnaHRTaGFkb3dzKS5yZXBsYWNlKC9OVU1fU1BPVF9MSUdIVF9TSEFET1dTL2csZS5udW1TcG90TGlnaHRTaGFkb3dzKS5yZXBsYWNlKC9OVU1fUE9JTlRfTElHSFRfU0hBRE9XUy9nLGUubnVtUG9pbnRMaWdodFNoYWRvd3MpfWZ1bmN0aW9uIEljdCh0LGUpe3JldHVybiB0LnJlcGxhY2UoL05VTV9DTElQUElOR19QTEFORVMvZyxlLm51bUNsaXBwaW5nUGxhbmVzKS5yZXBsYWNlKC9VTklPTl9DTElQUElOR19QTEFORVMvZyxlLm51bUNsaXBwaW5nUGxhbmVzLWUubnVtQ2xpcEludGVyc2VjdGlvbil9Y29uc3QgSGN0PS9eWyBcdF0qI2luY2x1ZGUgKzwoW1x3XGQuL10rKT4vZ207ZnVuY3Rpb24gRmN0KHQpe3JldHVybiB0LnJlcGxhY2UoSGN0LExjdCl9ZnVuY3Rpb24gTGN0KHQsZSl7Y29uc3Qgbj1Oc3RbZV07aWYodm9pZCAwPT09bil0aHJvdyBuZXcgRXJyb3IoIkNhbiBub3QgcmVzb2x2ZSAjaW5jbHVkZSA8IitlKyI+Iik7cmV0dXJuIEZjdChuKX1jb25zdCBCY3Q9LyNwcmFnbWEgdW5yb2xsX2xvb3BbXHNdKz9mb3IgXCggaW50IGkgXD0gKFxkKylcOyBpIDwgKFxkKylcOyBpIFwrXCsgXCkgXHsoW1xzXFNdKz8pKD89XH0pXH0vZyxWY3Q9LyNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRccytmb3JccypcKFxzKmludFxzK2lccyo9XHMqKFxkKylccyo7XHMqaVxzKjxccyooXGQrKVxzKjtccyppXHMqXCtcK1xzKlwpXHMqeyhbXHNcU10rPyl9XHMrI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQvZztmdW5jdGlvbiBqY3QodCl7cmV0dXJuIHQucmVwbGFjZShWY3QsR2N0KS5yZXBsYWNlKEJjdCxVY3QpfWZ1bmN0aW9uIFVjdCh0LGUsbixvKXtyZXR1cm4gY29uc29sZS53YXJuKCJXZWJHTFByb2dyYW06ICNwcmFnbWEgdW5yb2xsX2xvb3Agc2hhZGVyIHN5bnRheCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQgc3ludGF4IGluc3RlYWQuIiksR2N0KDAsZSxuLG8pfWZ1bmN0aW9uIEdjdCh0LGUsbixvKXtsZXQgaT0iIjtmb3IobGV0IHQ9cGFyc2VJbnQoZSk7dDxwYXJzZUludChuKTt0KyspaSs9by5yZXBsYWNlKC9cW1xzKmlccypcXS9nLCJbICIrdCsiIF0iKS5yZXBsYWNlKC9VTlJPTExFRF9MT09QX0lOREVYL2csdCk7cmV0dXJuIGl9ZnVuY3Rpb24gV2N0KHQpe2xldCBlPSJwcmVjaXNpb24gIit0LnByZWNpc2lvbisiIGZsb2F0O1xucHJlY2lzaW9uICIrdC5wcmVjaXNpb24rIiBpbnQ7IjtyZXR1cm4iaGlnaHAiPT09dC5wcmVjaXNpb24/ZSs9IlxuI2RlZmluZSBISUdIX1BSRUNJU0lPTiI6Im1lZGl1bXAiPT09dC5wcmVjaXNpb24/ZSs9IlxuI2RlZmluZSBNRURJVU1fUFJFQ0lTSU9OIjoibG93cCI9PT10LnByZWNpc2lvbiYmKGUrPSJcbiNkZWZpbmUgTE9XX1BSRUNJU0lPTiIpLGV9ZnVuY3Rpb24gWWN0KHQsZSxuLG8pe2NvbnN0IGk9dC5nZXRDb250ZXh0KCksYT1uLmRlZmluZXM7bGV0IHI9bi52ZXJ0ZXhTaGFkZXIscz1uLmZyYWdtZW50U2hhZGVyO2NvbnN0IGw9KGZ1bmN0aW9uIGModCl7bGV0IGU9IlNIQURPV01BUF9UWVBFX0JBU0lDIjtyZXR1cm4gMT09PXQuc2hhZG93TWFwVHlwZT9lPSJTSEFET1dNQVBfVFlQRV9QQ0YiOjI9PT10LnNoYWRvd01hcFR5cGU/ZT0iU0hBRE9XTUFQX1RZUEVfUENGX1NPRlQiOjM9PT10LnNoYWRvd01hcFR5cGUmJihlPSJTSEFET1dNQVBfVFlQRV9WU00iKSxlfSkobiksZD0oZnVuY3Rpb24gcCh0KXtsZXQgZT0iRU5WTUFQX1RZUEVfQ1VCRSI7aWYodC5lbnZNYXApc3dpdGNoKHQuZW52TWFwTW9kZSl7Y2FzZSBkaXQ6Y2FzZSBwaXQ6ZT0iRU5WTUFQX1RZUEVfQ1VCRSI7YnJlYWs7Y2FzZSBtaXQ6Y2FzZSAzMDc6ZT0iRU5WTUFQX1RZUEVfQ1VCRV9VViJ9cmV0dXJuIGV9KShuKSxtPShmdW5jdGlvbiB1KHQpe2xldCBlPSJFTlZNQVBfTU9ERV9SRUZMRUNUSU9OIjtpZih0LmVudk1hcClzd2l0Y2godC5lbnZNYXBNb2RlKXtjYXNlIHBpdDpjYXNlIDMwNzplPSJFTlZNQVBfTU9ERV9SRUZSQUNUSU9OIn1yZXR1cm4gZX0pKG4pLGY9KGZ1bmN0aW9uIGcodCl7bGV0IGU9IkVOVk1BUF9CTEVORElOR19OT05FIjtpZih0LmVudk1hcClzd2l0Y2godC5jb21iaW5lKXtjYXNlIDA6ZT0iRU5WTUFQX0JMRU5ESU5HX01VTFRJUExZIjticmVhaztjYXNlIDE6ZT0iRU5WTUFQX0JMRU5ESU5HX01JWCI7YnJlYWs7Y2FzZSAyOmU9IkVOVk1BUF9CTEVORElOR19BREQifXJldHVybiBlfSkobiksaD10LmdhbW1hRmFjdG9yPjA/dC5nYW1tYUZhY3RvcjoxLGI9bi5pc1dlYkdMMj8iIjooZnVuY3Rpb24geSh0KXtyZXR1cm5bdC5leHRlbnNpb25EZXJpdmF0aXZlc3x8dC5lbnZNYXBDdWJlVVZ8fHQuYnVtcE1hcHx8dC50YW5nZW50U3BhY2VOb3JtYWxNYXB8fHQuY2xlYXJjb2F0Tm9ybWFsTWFwfHx0LmZsYXRTaGFkaW5nfHwicGh5c2ljYWwiPT09dC5zaGFkZXJJRD8iI2V4dGVuc2lvbiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgOiBlbmFibGUiOiIiLCh0LmV4dGVuc2lvbkZyYWdEZXB0aHx8dC5sb2dhcml0aG1pY0RlcHRoQnVmZmVyKSYmdC5yZW5kZXJlckV4dGVuc2lvbkZyYWdEZXB0aD8iI2V4dGVuc2lvbiBHTF9FWFRfZnJhZ19kZXB0aCA6IGVuYWJsZSI6IiIsdC5leHRlbnNpb25EcmF3QnVmZmVycyYmdC5yZW5kZXJlckV4dGVuc2lvbkRyYXdCdWZmZXJzPyIjZXh0ZW5zaW9uIEdMX0VYVF9kcmF3X2J1ZmZlcnMgOiByZXF1aXJlIjoiIiwodC5leHRlbnNpb25TaGFkZXJUZXh0dXJlTE9EfHx0LmVudk1hcHx8dC50cmFuc21pc3Npb24+MCkmJnQucmVuZGVyZXJFeHRlbnNpb25TaGFkZXJUZXh0dXJlTG9kPyIjZXh0ZW5zaW9uIEdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QgOiBlbmFibGUiOiIiXS5maWx0ZXIoTmN0KS5qb2luKCJcbiIpfSkobiksXz0oZnVuY3Rpb24gQyh0KXtjb25zdCBlPVtdO2Zvcihjb25zdCBuIGluIHQpe2NvbnN0IG89dFtuXTshMSE9PW8mJmUucHVzaCgiI2RlZmluZSAiK24rIiAiK28pfXJldHVybiBlLmpvaW4oIlxuIil9KShhKSxNPWkuY3JlYXRlUHJvZ3JhbSgpO2xldCB2LHgsTz1uLmdsc2xWZXJzaW9uPyIjdmVyc2lvbiAiK24uZ2xzbFZlcnNpb24rIlxuIjoiIjtuLmlzUmF3U2hhZGVyTWF0ZXJpYWw/KHY9W19dLmZpbHRlcihOY3QpLmpvaW4oIlxuIiksdi5sZW5ndGg+MCYmKHYrPSJcbiIpLHg9W2IsX10uZmlsdGVyKE5jdCkuam9pbigiXG4iKSx4Lmxlbmd0aD4wJiYoeCs9IlxuIikpOih2PVtXY3QobiksIiNkZWZpbmUgU0hBREVSX05BTUUgIituLnNoYWRlck5hbWUsXyxuLmluc3RhbmNpbmc/IiNkZWZpbmUgVVNFX0lOU1RBTkNJTkciOiIiLG4uaW5zdGFuY2luZ0NvbG9yPyIjZGVmaW5lIFVTRV9JTlNUQU5DSU5HX0NPTE9SIjoiIixuLnN1cHBvcnRzVmVydGV4VGV4dHVyZXM/IiNkZWZpbmUgVkVSVEVYX1RFWFRVUkVTIjoiIiwiI2RlZmluZSBHQU1NQV9GQUNUT1IgIitoLCIjZGVmaW5lIE1BWF9CT05FUyAiK24ubWF4Qm9uZXMsbi51c2VGb2cmJm4uZm9nPyIjZGVmaW5lIFVTRV9GT0ciOiIiLG4udXNlRm9nJiZuLmZvZ0V4cDI/IiNkZWZpbmUgRk9HX0VYUDIiOiIiLG4ubWFwPyIjZGVmaW5lIFVTRV9NQVAiOiIiLG4uZW52TWFwPyIjZGVmaW5lIFVTRV9FTlZNQVAiOiIiLG4uZW52TWFwPyIjZGVmaW5lICIrbToiIixuLmxpZ2h0TWFwPyIjZGVmaW5lIFVTRV9MSUdIVE1BUCI6IiIsbi5hb01hcD8iI2RlZmluZSBVU0VfQU9NQVAiOiIiLG4uZW1pc3NpdmVNYXA/IiNkZWZpbmUgVVNFX0VNSVNTSVZFTUFQIjoiIixuLmJ1bXBNYXA/IiNkZWZpbmUgVVNFX0JVTVBNQVAiOiIiLG4ubm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9OT1JNQUxNQVAiOiIiLG4ubm9ybWFsTWFwJiZuLm9iamVjdFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIE9CSkVDVFNQQUNFX05PUk1BTE1BUCI6IiIsbi5ub3JtYWxNYXAmJm4udGFuZ2VudFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAiOiIiLG4uY2xlYXJjb2F0TWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRNQVAiOiIiLG4uY2xlYXJjb2F0Um91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfUk9VR0hORVNTTUFQIjoiIixuLmNsZWFyY29hdE5vcm1hbE1hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCI6IiIsbi5kaXNwbGFjZW1lbnRNYXAmJm4uc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcz8iI2RlZmluZSBVU0VfRElTUExBQ0VNRU5UTUFQIjoiIixuLnNwZWN1bGFyTWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUk1BUCI6IiIsbi5zcGVjdWxhckludGVuc2l0eU1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVAiOiIiLG4uc3BlY3VsYXJUaW50TWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUlRJTlRNQVAiOiIiLG4ucm91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9ST1VHSE5FU1NNQVAiOiIiLG4ubWV0YWxuZXNzTWFwPyIjZGVmaW5lIFVTRV9NRVRBTE5FU1NNQVAiOiIiLG4uYWxwaGFNYXA/IiNkZWZpbmUgVVNFX0FMUEhBTUFQIjoiIixuLnRyYW5zbWlzc2lvbj8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OIjoiIixuLnRyYW5zbWlzc2lvbk1hcD8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OTUFQIjoiIixuLnRoaWNrbmVzc01hcD8iI2RlZmluZSBVU0VfVEhJQ0tORVNTTUFQIjoiIixuLnZlcnRleFRhbmdlbnRzPyIjZGVmaW5lIFVTRV9UQU5HRU5UIjoiIixuLnZlcnRleENvbG9ycz8iI2RlZmluZSBVU0VfQ09MT1IiOiIiLG4udmVydGV4QWxwaGFzPyIjZGVmaW5lIFVTRV9DT0xPUl9BTFBIQSI6IiIsbi52ZXJ0ZXhVdnM/IiNkZWZpbmUgVVNFX1VWIjoiIixuLnV2c1ZlcnRleE9ubHk/IiNkZWZpbmUgVVZTX1ZFUlRFWF9PTkxZIjoiIixuLmZsYXRTaGFkaW5nPyIjZGVmaW5lIEZMQVRfU0hBREVEIjoiIixuLnNraW5uaW5nPyIjZGVmaW5lIFVTRV9TS0lOTklORyI6IiIsbi51c2VWZXJ0ZXhUZXh0dXJlPyIjZGVmaW5lIEJPTkVfVEVYVFVSRSI6IiIsbi5tb3JwaFRhcmdldHM/IiNkZWZpbmUgVVNFX01PUlBIVEFSR0VUUyI6IiIsbi5tb3JwaE5vcm1hbHMmJiExPT09bi5mbGF0U2hhZGluZz8iI2RlZmluZSBVU0VfTU9SUEhOT1JNQUxTIjoiIixuLmRvdWJsZVNpZGVkPyIjZGVmaW5lIERPVUJMRV9TSURFRCI6IiIsbi5mbGlwU2lkZWQ/IiNkZWZpbmUgRkxJUF9TSURFRCI6IiIsbi5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lIFVTRV9TSEFET1dNQVAiOiIiLG4uc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSAiK2w6IiIsbi5zaXplQXR0ZW51YXRpb24/IiNkZWZpbmUgVVNFX1NJWkVBVFRFTlVBVElPTiI6IiIsbi5sb2dhcml0aG1pY0RlcHRoQnVmZmVyPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRiI6IiIsbi5sb2dhcml0aG1pY0RlcHRoQnVmZmVyJiZuLnJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRl9FWFQiOiIiLCJ1bmlmb3JtIG1hdDQgbW9kZWxNYXRyaXg7IiwidW5pZm9ybSBtYXQ0IG1vZGVsVmlld01hdHJpeDsiLCJ1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsiLCJ1bmlmb3JtIG1hdDQgdmlld01hdHJpeDsiLCJ1bmlmb3JtIG1hdDMgbm9ybWFsTWF0cml4OyIsInVuaWZvcm0gdmVjMyBjYW1lcmFQb3NpdGlvbjsiLCJ1bmlmb3JtIGJvb2wgaXNPcnRob2dyYXBoaWM7IiwiI2lmZGVmIFVTRV9JTlNUQU5DSU5HIiwiXHRhdHRyaWJ1dGUgbWF0NCBpbnN0YW5jZU1hdHJpeDsiLCIjZW5kaWYiLCIjaWZkZWYgVVNFX0lOU1RBTkNJTkdfQ09MT1IiLCJcdGF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlQ29sb3I7IiwiI2VuZGlmIiwiYXR0cmlidXRlIHZlYzMgcG9zaXRpb247IiwiYXR0cmlidXRlIHZlYzMgbm9ybWFsOyIsImF0dHJpYnV0ZSB2ZWMyIHV2OyIsIiNpZmRlZiBVU0VfVEFOR0VOVCIsIlx0YXR0cmlidXRlIHZlYzQgdGFuZ2VudDsiLCIjZW5kaWYiLCIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBICkiLCJcdGF0dHJpYnV0ZSB2ZWM0IGNvbG9yOyIsIiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApIiwiXHRhdHRyaWJ1dGUgdmVjMyBjb2xvcjsiLCIjZW5kaWYiLCIjaWZkZWYgVVNFX01PUlBIVEFSR0VUUyIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQwOyIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQxOyIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQyOyIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQzOyIsIlx0I2lmZGVmIFVTRV9NT1JQSE5PUk1BTFMiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhOb3JtYWwwOyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDE7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMjsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhOb3JtYWwzOyIsIlx0I2Vsc2UiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQ0OyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDU7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NjsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQ3OyIsIlx0I2VuZGlmIiwiI2VuZGlmIiwiI2lmZGVmIFVTRV9TS0lOTklORyIsIlx0YXR0cmlidXRlIHZlYzQgc2tpbkluZGV4OyIsIlx0YXR0cmlidXRlIHZlYzQgc2tpbldlaWdodDsiLCIjZW5kaWYiLCJcbiJdLmZpbHRlcihOY3QpLmpvaW4oIlxuIikseD1bYixXY3QobiksIiNkZWZpbmUgU0hBREVSX05BTUUgIituLnNoYWRlck5hbWUsXyxuLmFscGhhVGVzdD8iI2RlZmluZSBBTFBIQVRFU1QgIituLmFscGhhVGVzdCsobi5hbHBoYVRlc3QlMT8iIjoiLjAiKToiIiwiI2RlZmluZSBHQU1NQV9GQUNUT1IgIitoLG4udXNlRm9nJiZuLmZvZz8iI2RlZmluZSBVU0VfRk9HIjoiIixuLnVzZUZvZyYmbi5mb2dFeHAyPyIjZGVmaW5lIEZPR19FWFAyIjoiIixuLm1hcD8iI2RlZmluZSBVU0VfTUFQIjoiIixuLm1hdGNhcD8iI2RlZmluZSBVU0VfTUFUQ0FQIjoiIixuLmVudk1hcD8iI2RlZmluZSBVU0VfRU5WTUFQIjoiIixuLmVudk1hcD8iI2RlZmluZSAiK2Q6IiIsbi5lbnZNYXA/IiNkZWZpbmUgIittOiIiLG4uZW52TWFwPyIjZGVmaW5lICIrZjoiIixuLmxpZ2h0TWFwPyIjZGVmaW5lIFVTRV9MSUdIVE1BUCI6IiIsbi5hb01hcD8iI2RlZmluZSBVU0VfQU9NQVAiOiIiLG4uZW1pc3NpdmVNYXA/IiNkZWZpbmUgVVNFX0VNSVNTSVZFTUFQIjoiIixuLmJ1bXBNYXA/IiNkZWZpbmUgVVNFX0JVTVBNQVAiOiIiLG4ubm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9OT1JNQUxNQVAiOiIiLG4ubm9ybWFsTWFwJiZuLm9iamVjdFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIE9CSkVDVFNQQUNFX05PUk1BTE1BUCI6IiIsbi5ub3JtYWxNYXAmJm4udGFuZ2VudFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAiOiIiLG4uY2xlYXJjb2F0TWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRNQVAiOiIiLG4uY2xlYXJjb2F0Um91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfUk9VR0hORVNTTUFQIjoiIixuLmNsZWFyY29hdE5vcm1hbE1hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCI6IiIsbi5zcGVjdWxhck1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJNQVAiOiIiLG4uc3BlY3VsYXJJbnRlbnNpdHlNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSSU5URU5TSVRZTUFQIjoiIixuLnNwZWN1bGFyVGludE1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJUSU5UTUFQIjoiIixuLnJvdWdobmVzc01hcD8iI2RlZmluZSBVU0VfUk9VR0hORVNTTUFQIjoiIixuLm1ldGFsbmVzc01hcD8iI2RlZmluZSBVU0VfTUVUQUxORVNTTUFQIjoiIixuLmFscGhhTWFwPyIjZGVmaW5lIFVTRV9BTFBIQU1BUCI6IiIsbi5zaGVlbj8iI2RlZmluZSBVU0VfU0hFRU4iOiIiLG4udHJhbnNtaXNzaW9uPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT04iOiIiLG4udHJhbnNtaXNzaW9uTWFwPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT05NQVAiOiIiLG4udGhpY2tuZXNzTWFwPyIjZGVmaW5lIFVTRV9USElDS05FU1NNQVAiOiIiLG4udmVydGV4VGFuZ2VudHM/IiNkZWZpbmUgVVNFX1RBTkdFTlQiOiIiLG4udmVydGV4Q29sb3JzfHxuLmluc3RhbmNpbmdDb2xvcj8iI2RlZmluZSBVU0VfQ09MT1IiOiIiLG4udmVydGV4QWxwaGFzPyIjZGVmaW5lIFVTRV9DT0xPUl9BTFBIQSI6IiIsbi52ZXJ0ZXhVdnM/IiNkZWZpbmUgVVNFX1VWIjoiIixuLnV2c1ZlcnRleE9ubHk/IiNkZWZpbmUgVVZTX1ZFUlRFWF9PTkxZIjoiIixuLmdyYWRpZW50TWFwPyIjZGVmaW5lIFVTRV9HUkFESUVOVE1BUCI6IiIsbi5mbGF0U2hhZGluZz8iI2RlZmluZSBGTEFUX1NIQURFRCI6IiIsbi5kb3VibGVTaWRlZD8iI2RlZmluZSBET1VCTEVfU0lERUQiOiIiLG4uZmxpcFNpZGVkPyIjZGVmaW5lIEZMSVBfU0lERUQiOiIiLG4uc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSBVU0VfU0hBRE9XTUFQIjoiIixuLnNoYWRvd01hcEVuYWJsZWQ/IiNkZWZpbmUgIitsOiIiLG4ucHJlbXVsdGlwbGllZEFscGhhPyIjZGVmaW5lIFBSRU1VTFRJUExJRURfQUxQSEEiOiIiLG4ucGh5c2ljYWxseUNvcnJlY3RMaWdodHM/IiNkZWZpbmUgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUUyI6IiIsbi5sb2dhcml0aG1pY0RlcHRoQnVmZmVyPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRiI6IiIsbi5sb2dhcml0aG1pY0RlcHRoQnVmZmVyJiZuLnJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRl9FWFQiOiIiLChuLmV4dGVuc2lvblNoYWRlclRleHR1cmVMT0R8fG4uZW52TWFwKSYmbi5yZW5kZXJlckV4dGVuc2lvblNoYWRlclRleHR1cmVMb2Q/IiNkZWZpbmUgVEVYVFVSRV9MT0RfRVhUIjoiIiwidW5pZm9ybSBtYXQ0IHZpZXdNYXRyaXg7IiwidW5pZm9ybSB2ZWMzIGNhbWVyYVBvc2l0aW9uOyIsInVuaWZvcm0gYm9vbCBpc09ydGhvZ3JhcGhpYzsiLDAhPT1uLnRvbmVNYXBwaW5nPyIjZGVmaW5lIFRPTkVfTUFQUElORyI6IiIsMCE9PW4udG9uZU1hcHBpbmc/TnN0LnRvbmVtYXBwaW5nX3BhcnNfZnJhZ21lbnQ6IiIsMCE9PW4udG9uZU1hcHBpbmc/VGN0KCJ0b25lTWFwcGluZyIsbi50b25lTWFwcGluZyk6IiIsbi5kaXRoZXJpbmc/IiNkZWZpbmUgRElUSEVSSU5HIjoiIixOc3QuZW5jb2RpbmdzX3BhcnNfZnJhZ21lbnQsbi5tYXA/UmN0KCJtYXBUZXhlbFRvTGluZWFyIixuLm1hcEVuY29kaW5nKToiIixuLm1hdGNhcD9SY3QoIm1hdGNhcFRleGVsVG9MaW5lYXIiLG4ubWF0Y2FwRW5jb2RpbmcpOiIiLG4uZW52TWFwP1JjdCgiZW52TWFwVGV4ZWxUb0xpbmVhciIsbi5lbnZNYXBFbmNvZGluZyk6IiIsbi5lbWlzc2l2ZU1hcD9SY3QoImVtaXNzaXZlTWFwVGV4ZWxUb0xpbmVhciIsbi5lbWlzc2l2ZU1hcEVuY29kaW5nKToiIixuLnNwZWN1bGFyVGludE1hcD9SY3QoInNwZWN1bGFyVGludE1hcFRleGVsVG9MaW5lYXIiLG4uc3BlY3VsYXJUaW50TWFwRW5jb2RpbmcpOiIiLG4ubGlnaHRNYXA/UmN0KCJsaWdodE1hcFRleGVsVG9MaW5lYXIiLG4ubGlnaHRNYXBFbmNvZGluZyk6IiIsQWN0KCJsaW5lYXJUb091dHB1dFRleGVsIixuLm91dHB1dEVuY29kaW5nKSxuLmRlcHRoUGFja2luZz8iI2RlZmluZSBERVBUSF9QQUNLSU5HICIrbi5kZXB0aFBhY2tpbmc6IiIsIlxuIl0uZmlsdGVyKE5jdCkuam9pbigiXG4iKSkscj1GY3Qocikscj16Y3QocixuKSxyPUljdChyLG4pLHM9RmN0KHMpLHM9emN0KHMsbikscz1JY3QocyxuKSxyPWpjdChyKSxzPWpjdChzKSxuLmlzV2ViR0wyJiYhMCE9PW4uaXNSYXdTaGFkZXJNYXRlcmlhbCYmKE89IiN2ZXJzaW9uIDMwMCBlc1xuIix2PVsiI2RlZmluZSBhdHRyaWJ1dGUgaW4iLCIjZGVmaW5lIHZhcnlpbmcgb3V0IiwiI2RlZmluZSB0ZXh0dXJlMkQgdGV4dHVyZSJdLmpvaW4oIlxuIikrIlxuIit2LHg9WyIjZGVmaW5lIHZhcnlpbmcgaW4iLG4uZ2xzbFZlcnNpb249PT1qaXQ/IiI6Im91dCBoaWdocCB2ZWM0IHBjX2ZyYWdDb2xvcjsiLG4uZ2xzbFZlcnNpb249PT1qaXQ/IiI6IiNkZWZpbmUgZ2xfRnJhZ0NvbG9yIHBjX2ZyYWdDb2xvciIsIiNkZWZpbmUgZ2xfRnJhZ0RlcHRoRVhUIGdsX0ZyYWdEZXB0aCIsIiNkZWZpbmUgdGV4dHVyZTJEIHRleHR1cmUiLCIjZGVmaW5lIHRleHR1cmVDdWJlIHRleHR1cmUiLCIjZGVmaW5lIHRleHR1cmUyRFByb2ogdGV4dHVyZVByb2oiLCIjZGVmaW5lIHRleHR1cmUyRExvZEVYVCB0ZXh0dXJlTG9kIiwiI2RlZmluZSB0ZXh0dXJlMkRQcm9qTG9kRVhUIHRleHR1cmVQcm9qTG9kIiwiI2RlZmluZSB0ZXh0dXJlQ3ViZUxvZEVYVCB0ZXh0dXJlTG9kIiwiI2RlZmluZSB0ZXh0dXJlMkRHcmFkRVhUIHRleHR1cmVHcmFkIiwiI2RlZmluZSB0ZXh0dXJlMkRQcm9qR3JhZEVYVCB0ZXh0dXJlUHJvakdyYWQiLCIjZGVmaW5lIHRleHR1cmVDdWJlR3JhZEVYVCB0ZXh0dXJlR3JhZCJdLmpvaW4oIlxuIikrIlxuIit4KTtjb25zdCBQPU8reCtzLHc9a2N0KGksMzU2MzMsTyt2K3IpLGs9a2N0KGksMzU2MzIsUCk7aWYoaS5hdHRhY2hTaGFkZXIoTSx3KSxpLmF0dGFjaFNoYWRlcihNLGspLHZvaWQgMCE9PW4uaW5kZXgwQXR0cmlidXRlTmFtZT9pLmJpbmRBdHRyaWJMb2NhdGlvbihNLDAsbi5pbmRleDBBdHRyaWJ1dGVOYW1lKTohMD09PW4ubW9ycGhUYXJnZXRzJiZpLmJpbmRBdHRyaWJMb2NhdGlvbihNLDAsInBvc2l0aW9uIiksaS5saW5rUHJvZ3JhbShNKSx0LmRlYnVnLmNoZWNrU2hhZGVyRXJyb3JzKXtjb25zdCB0PWkuZ2V0UHJvZ3JhbUluZm9Mb2coTSkudHJpbSgpLGU9aS5nZXRTaGFkZXJJbmZvTG9nKHcpLnRyaW0oKSxuPWkuZ2V0U2hhZGVySW5mb0xvZyhrKS50cmltKCk7bGV0IG89ITAsYT0hMDtpZighMT09PWkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihNLDM1NzE0KSl7bz0hMTtjb25zdCBlPUVjdChpLHcsInZlcnRleCIpLG49RWN0KGksaywiZnJhZ21lbnQiKTtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFByb2dyYW06IHNoYWRlciBlcnJvcjogIixpLmdldEVycm9yKCksIjM1NzE1IixpLmdldFByb2dyYW1QYXJhbWV0ZXIoTSwzNTcxNSksImdsLmdldFByb2dyYW1JbmZvTG9nIix0LGUsbil9ZWxzZSIiIT09dD9jb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbTogZ2wuZ2V0UHJvZ3JhbUluZm9Mb2coKSIsdCk6IiIhPT1lJiYiIiE9PW58fChhPSExKTthJiYodGhpcy5kaWFnbm9zdGljcz17cnVubmFibGU6byxwcm9ncmFtTG9nOnQsdmVydGV4U2hhZGVyOntsb2c6ZSxwcmVmaXg6dn0sZnJhZ21lbnRTaGFkZXI6e2xvZzpuLHByZWZpeDp4fX0pfWxldCBTLEQ7cmV0dXJuIGkuZGVsZXRlU2hhZGVyKHcpLGkuZGVsZXRlU2hhZGVyKGspLHRoaXMuZ2V0VW5pZm9ybXM9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09UyYmKFM9bmV3IHdjdChpLE0pKSxTfSx0aGlzLmdldEF0dHJpYnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09RCYmKEQ9KGZ1bmN0aW9uIHQoZSxuKXtjb25zdCBvPXt9LGk9ZS5nZXRQcm9ncmFtUGFyYW1ldGVyKG4sMzU3MjEpO2ZvcihsZXQgdD0wO3Q8aTt0Kyspe2NvbnN0IGk9ZS5nZXRBY3RpdmVBdHRyaWIobix0KS5uYW1lO29baV09ZS5nZXRBdHRyaWJMb2NhdGlvbihuLGkpfXJldHVybiBvfSkoaSxNKSksRH0sdGhpcy5kZXN0cm95PWZ1bmN0aW9uKCl7by5yZWxlYXNlU3RhdGVzT2ZQcm9ncmFtKHRoaXMpLGkuZGVsZXRlUHJvZ3JhbShNKSx0aGlzLnByb2dyYW09dm9pZCAwfSx0aGlzLm5hbWU9bi5zaGFkZXJOYW1lLHRoaXMuaWQ9U2N0KyssdGhpcy5jYWNoZUtleT1lLHRoaXMudXNlZFRpbWVzPTEsdGhpcy5wcm9ncmFtPU0sdGhpcy52ZXJ0ZXhTaGFkZXI9dyx0aGlzLmZyYWdtZW50U2hhZGVyPWssdGhpc31mdW5jdGlvbiBxY3QodCxlLG4sbyxpLGEscil7Y29uc3Qgcz1bXSxsPWkuaXNXZWJHTDIsYz1pLmxvZ2FyaXRobWljRGVwdGhCdWZmZXIsZD1pLmZsb2F0VmVydGV4VGV4dHVyZXMscD1pLm1heFZlcnRleFVuaWZvcm1zLG09aS52ZXJ0ZXhUZXh0dXJlcztsZXQgdT1pLnByZWNpc2lvbjtjb25zdCBmPXtNZXNoRGVwdGhNYXRlcmlhbDoiZGVwdGgiLE1lc2hEaXN0YW5jZU1hdGVyaWFsOiJkaXN0YW5jZVJHQkEiLE1lc2hOb3JtYWxNYXRlcmlhbDoibm9ybWFsIixNZXNoQmFzaWNNYXRlcmlhbDoiYmFzaWMiLE1lc2hMYW1iZXJ0TWF0ZXJpYWw6ImxhbWJlcnQiLE1lc2hQaG9uZ01hdGVyaWFsOiJwaG9uZyIsTWVzaFRvb25NYXRlcmlhbDoidG9vbiIsTWVzaFN0YW5kYXJkTWF0ZXJpYWw6InBoeXNpY2FsIixNZXNoUGh5c2ljYWxNYXRlcmlhbDoicGh5c2ljYWwiLE1lc2hNYXRjYXBNYXRlcmlhbDoibWF0Y2FwIixMaW5lQmFzaWNNYXRlcmlhbDoiYmFzaWMiLExpbmVEYXNoZWRNYXRlcmlhbDoiZGFzaGVkIixQb2ludHNNYXRlcmlhbDoicG9pbnRzIixTaGFkb3dNYXRlcmlhbDoic2hhZG93IixTcHJpdGVNYXRlcmlhbDoic3ByaXRlIn0sZz1bInByZWNpc2lvbiIsImlzV2ViR0wyIiwic3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcyIsIm91dHB1dEVuY29kaW5nIiwiaW5zdGFuY2luZyIsImluc3RhbmNpbmdDb2xvciIsIm1hcCIsIm1hcEVuY29kaW5nIiwibWF0Y2FwIiwibWF0Y2FwRW5jb2RpbmciLCJlbnZNYXAiLCJlbnZNYXBNb2RlIiwiZW52TWFwRW5jb2RpbmciLCJlbnZNYXBDdWJlVVYiLCJsaWdodE1hcCIsImxpZ2h0TWFwRW5jb2RpbmciLCJhb01hcCIsImVtaXNzaXZlTWFwIiwiZW1pc3NpdmVNYXBFbmNvZGluZyIsImJ1bXBNYXAiLCJub3JtYWxNYXAiLCJvYmplY3RTcGFjZU5vcm1hbE1hcCIsInRhbmdlbnRTcGFjZU5vcm1hbE1hcCIsImNsZWFyY29hdE1hcCIsImNsZWFyY29hdFJvdWdobmVzc01hcCIsImNsZWFyY29hdE5vcm1hbE1hcCIsImRpc3BsYWNlbWVudE1hcCIsInNwZWN1bGFyTWFwIiwic3BlY3VsYXJJbnRlbnNpdHlNYXAiLCJzcGVjdWxhclRpbnRNYXAiLCJzcGVjdWxhclRpbnRNYXBFbmNvZGluZyIsInJvdWdobmVzc01hcCIsIm1ldGFsbmVzc01hcCIsImdyYWRpZW50TWFwIiwiYWxwaGFNYXAiLCJjb21iaW5lIiwidmVydGV4Q29sb3JzIiwidmVydGV4QWxwaGFzIiwidmVydGV4VGFuZ2VudHMiLCJ2ZXJ0ZXhVdnMiLCJ1dnNWZXJ0ZXhPbmx5IiwiZm9nIiwidXNlRm9nIiwiZm9nRXhwMiIsImZsYXRTaGFkaW5nIiwic2l6ZUF0dGVudWF0aW9uIiwibG9nYXJpdGhtaWNEZXB0aEJ1ZmZlciIsInNraW5uaW5nIiwibWF4Qm9uZXMiLCJ1c2VWZXJ0ZXhUZXh0dXJlIiwibW9ycGhUYXJnZXRzIiwibW9ycGhOb3JtYWxzIiwicHJlbXVsdGlwbGllZEFscGhhIiwibnVtRGlyTGlnaHRzIiwibnVtUG9pbnRMaWdodHMiLCJudW1TcG90TGlnaHRzIiwibnVtSGVtaUxpZ2h0cyIsIm51bVJlY3RBcmVhTGlnaHRzIiwibnVtRGlyTGlnaHRTaGFkb3dzIiwibnVtUG9pbnRMaWdodFNoYWRvd3MiLCJudW1TcG90TGlnaHRTaGFkb3dzIiwic2hhZG93TWFwRW5hYmxlZCIsInNoYWRvd01hcFR5cGUiLCJ0b25lTWFwcGluZyIsInBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzIiwiYWxwaGFUZXN0IiwiZG91YmxlU2lkZWQiLCJmbGlwU2lkZWQiLCJudW1DbGlwcGluZ1BsYW5lcyIsIm51bUNsaXBJbnRlcnNlY3Rpb24iLCJkZXB0aFBhY2tpbmciLCJkaXRoZXJpbmciLCJzaGVlbiIsInRyYW5zbWlzc2lvbiIsInRyYW5zbWlzc2lvbk1hcCIsInRoaWNrbmVzc01hcCJdO2Z1bmN0aW9uIGgodCl7bGV0IGU7cmV0dXJuIHQmJnQuaXNUZXh0dXJlP2U9dC5lbmNvZGluZzp0JiZ0LmlzV2ViR0xSZW5kZXJUYXJnZXQ/KGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xQcm9ncmFtcy5nZXRUZXh0dXJlRW5jb2RpbmdGcm9tTWFwOiBkb24ndCB1c2UgcmVuZGVyIHRhcmdldHMgYXMgdGV4dHVyZXMuIFVzZSB0aGVpciAudGV4dHVyZSBwcm9wZXJ0eSBpbnN0ZWFkLiIpLGU9dC50ZXh0dXJlLmVuY29kaW5nKTplPXppdCxlfXJldHVybntnZXRQYXJhbWV0ZXJzOmZ1bmN0aW9uIGIoYSxzLGcseSxfKXtjb25zdCBDPXkuZm9nLE09KGEuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9uOmUpLmdldChhLmVudk1hcHx8KGEuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD95LmVudmlyb25tZW50Om51bGwpKSx2PWZbYS50eXBlXSx4PV8uaXNTa2lubmVkTWVzaD8oZnVuY3Rpb24gTyh0KXtjb25zdCBlPXQuc2tlbGV0b24uYm9uZXM7aWYoZClyZXR1cm4gMTAyNDt7Y29uc3QgdD1NYXRoLmZsb29yKChwLTIwKS80KSxuPU1hdGgubWluKHQsZS5sZW5ndGgpO3JldHVybiBuPGUubGVuZ3RoPyhjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFNrZWxldG9uIGhhcyAiK2UubGVuZ3RoKyIgYm9uZXMuIFRoaXMgR1BVIHN1cHBvcnRzICIrbisiLiIpLDApOm59fSkoXyk6MDtsZXQgUCx3O2lmKG51bGwhPT1hLnByZWNpc2lvbiYmKHU9aS5nZXRNYXhQcmVjaXNpb24oYS5wcmVjaXNpb24pLHUhPT1hLnByZWNpc2lvbiYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW0uZ2V0UGFyYW1ldGVyczoiLGEucHJlY2lzaW9uLCJub3Qgc3VwcG9ydGVkLCB1c2luZyIsdSwiaW5zdGVhZC4iKSksdil7Y29uc3QgdD1Jc3Rbdl07UD10LnZlcnRleFNoYWRlcix3PXQuZnJhZ21lbnRTaGFkZXJ9ZWxzZSBQPWEudmVydGV4U2hhZGVyLHc9YS5mcmFnbWVudFNoYWRlcjtjb25zdCBrPXQuZ2V0UmVuZGVyVGFyZ2V0KCk7cmV0dXJue2lzV2ViR0wyOmwsc2hhZGVySUQ6dixzaGFkZXJOYW1lOmEudHlwZSx2ZXJ0ZXhTaGFkZXI6UCxmcmFnbWVudFNoYWRlcjp3LGRlZmluZXM6YS5kZWZpbmVzLGlzUmF3U2hhZGVyTWF0ZXJpYWw6ITA9PT1hLmlzUmF3U2hhZGVyTWF0ZXJpYWwsZ2xzbFZlcnNpb246YS5nbHNsVmVyc2lvbixwcmVjaXNpb246dSxpbnN0YW5jaW5nOiEwPT09Xy5pc0luc3RhbmNlZE1lc2gsaW5zdGFuY2luZ0NvbG9yOiEwPT09Xy5pc0luc3RhbmNlZE1lc2gmJm51bGwhPT1fLmluc3RhbmNlQ29sb3Isc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlczptLG91dHB1dEVuY29kaW5nOm51bGwhPT1rP2goay50ZXh0dXJlKTp0Lm91dHB1dEVuY29kaW5nLG1hcDohIWEubWFwLG1hcEVuY29kaW5nOmgoYS5tYXApLG1hdGNhcDohIWEubWF0Y2FwLG1hdGNhcEVuY29kaW5nOmgoYS5tYXRjYXApLGVudk1hcDohIU0sZW52TWFwTW9kZTpNJiZNLm1hcHBpbmcsZW52TWFwRW5jb2Rpbmc6aChNKSxlbnZNYXBDdWJlVVY6ISFNJiYoTS5tYXBwaW5nPT09bWl0fHwzMDc9PT1NLm1hcHBpbmcpLGxpZ2h0TWFwOiEhYS5saWdodE1hcCxsaWdodE1hcEVuY29kaW5nOmgoYS5saWdodE1hcCksYW9NYXA6ISFhLmFvTWFwLGVtaXNzaXZlTWFwOiEhYS5lbWlzc2l2ZU1hcCxlbWlzc2l2ZU1hcEVuY29kaW5nOmgoYS5lbWlzc2l2ZU1hcCksYnVtcE1hcDohIWEuYnVtcE1hcCxub3JtYWxNYXA6ISFhLm5vcm1hbE1hcCxvYmplY3RTcGFjZU5vcm1hbE1hcDoxPT09YS5ub3JtYWxNYXBUeXBlLHRhbmdlbnRTcGFjZU5vcm1hbE1hcDowPT09YS5ub3JtYWxNYXBUeXBlLGNsZWFyY29hdE1hcDohIWEuY2xlYXJjb2F0TWFwLGNsZWFyY29hdFJvdWdobmVzc01hcDohIWEuY2xlYXJjb2F0Um91Z2huZXNzTWFwLGNsZWFyY29hdE5vcm1hbE1hcDohIWEuY2xlYXJjb2F0Tm9ybWFsTWFwLGRpc3BsYWNlbWVudE1hcDohIWEuZGlzcGxhY2VtZW50TWFwLHJvdWdobmVzc01hcDohIWEucm91Z2huZXNzTWFwLG1ldGFsbmVzc01hcDohIWEubWV0YWxuZXNzTWFwLHNwZWN1bGFyTWFwOiEhYS5zcGVjdWxhck1hcCxzcGVjdWxhckludGVuc2l0eU1hcDohIWEuc3BlY3VsYXJJbnRlbnNpdHlNYXAsc3BlY3VsYXJUaW50TWFwOiEhYS5zcGVjdWxhclRpbnRNYXAsc3BlY3VsYXJUaW50TWFwRW5jb2Rpbmc6aChhLnNwZWN1bGFyVGludE1hcCksYWxwaGFNYXA6ISFhLmFscGhhTWFwLGdyYWRpZW50TWFwOiEhYS5ncmFkaWVudE1hcCxzaGVlbjohIWEuc2hlZW4sdHJhbnNtaXNzaW9uOiEhYS50cmFuc21pc3Npb24sdHJhbnNtaXNzaW9uTWFwOiEhYS50cmFuc21pc3Npb25NYXAsdGhpY2tuZXNzTWFwOiEhYS50aGlja25lc3NNYXAsY29tYmluZTphLmNvbWJpbmUsdmVydGV4VGFuZ2VudHM6ISFhLm5vcm1hbE1hcCYmISFfLmdlb21ldHJ5JiYhIV8uZ2VvbWV0cnkuYXR0cmlidXRlcy50YW5nZW50LHZlcnRleENvbG9yczphLnZlcnRleENvbG9ycyx2ZXJ0ZXhBbHBoYXM6ITA9PT1hLnZlcnRleENvbG9ycyYmISFfLmdlb21ldHJ5JiYhIV8uZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvciYmND09PV8uZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvci5pdGVtU2l6ZSx2ZXJ0ZXhVdnM6ISEoYS5tYXB8fGEuYnVtcE1hcHx8YS5ub3JtYWxNYXB8fGEuc3BlY3VsYXJNYXB8fGEuYWxwaGFNYXB8fGEuZW1pc3NpdmVNYXB8fGEucm91Z2huZXNzTWFwfHxhLm1ldGFsbmVzc01hcHx8YS5jbGVhcmNvYXRNYXB8fGEuY2xlYXJjb2F0Um91Z2huZXNzTWFwfHxhLmNsZWFyY29hdE5vcm1hbE1hcHx8YS5kaXNwbGFjZW1lbnRNYXB8fGEudHJhbnNtaXNzaW9uTWFwfHxhLnRoaWNrbmVzc01hcHx8YS5zcGVjdWxhckludGVuc2l0eU1hcHx8YS5zcGVjdWxhclRpbnRNYXApLHV2c1ZlcnRleE9ubHk6IShhLm1hcHx8YS5idW1wTWFwfHxhLm5vcm1hbE1hcHx8YS5zcGVjdWxhck1hcHx8YS5hbHBoYU1hcHx8YS5lbWlzc2l2ZU1hcHx8YS5yb3VnaG5lc3NNYXB8fGEubWV0YWxuZXNzTWFwfHxhLmNsZWFyY29hdE5vcm1hbE1hcHx8YS50cmFuc21pc3Npb258fGEudHJhbnNtaXNzaW9uTWFwfHxhLnRoaWNrbmVzc01hcHx8YS5zcGVjdWxhckludGVuc2l0eU1hcHx8YS5zcGVjdWxhclRpbnRNYXB8fCFhLmRpc3BsYWNlbWVudE1hcCksZm9nOiEhQyx1c2VGb2c6YS5mb2csZm9nRXhwMjpDJiZDLmlzRm9nRXhwMixmbGF0U2hhZGluZzohIWEuZmxhdFNoYWRpbmcsc2l6ZUF0dGVudWF0aW9uOmEuc2l6ZUF0dGVudWF0aW9uLGxvZ2FyaXRobWljRGVwdGhCdWZmZXI6Yyxza2lubmluZzohMD09PV8uaXNTa2lubmVkTWVzaCYmeD4wLG1heEJvbmVzOngsdXNlVmVydGV4VGV4dHVyZTpkLG1vcnBoVGFyZ2V0czohIV8uZ2VvbWV0cnkmJiEhXy5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sbW9ycGhOb3JtYWxzOiEhXy5nZW9tZXRyeSYmISFfLmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5ub3JtYWwsbnVtRGlyTGlnaHRzOnMuZGlyZWN0aW9uYWwubGVuZ3RoLG51bVBvaW50TGlnaHRzOnMucG9pbnQubGVuZ3RoLG51bVNwb3RMaWdodHM6cy5zcG90Lmxlbmd0aCxudW1SZWN0QXJlYUxpZ2h0czpzLnJlY3RBcmVhLmxlbmd0aCxudW1IZW1pTGlnaHRzOnMuaGVtaS5sZW5ndGgsbnVtRGlyTGlnaHRTaGFkb3dzOnMuZGlyZWN0aW9uYWxTaGFkb3dNYXAubGVuZ3RoLG51bVBvaW50TGlnaHRTaGFkb3dzOnMucG9pbnRTaGFkb3dNYXAubGVuZ3RoLG51bVNwb3RMaWdodFNoYWRvd3M6cy5zcG90U2hhZG93TWFwLmxlbmd0aCxudW1DbGlwcGluZ1BsYW5lczpyLm51bVBsYW5lcyxudW1DbGlwSW50ZXJzZWN0aW9uOnIubnVtSW50ZXJzZWN0aW9uLGRpdGhlcmluZzphLmRpdGhlcmluZyxzaGFkb3dNYXBFbmFibGVkOnQuc2hhZG93TWFwLmVuYWJsZWQmJmcubGVuZ3RoPjAsc2hhZG93TWFwVHlwZTp0LnNoYWRvd01hcC50eXBlLHRvbmVNYXBwaW5nOmEudG9uZU1hcHBlZD90LnRvbmVNYXBwaW5nOjAscGh5c2ljYWxseUNvcnJlY3RMaWdodHM6dC5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cyxwcmVtdWx0aXBsaWVkQWxwaGE6YS5wcmVtdWx0aXBsaWVkQWxwaGEsYWxwaGFUZXN0OmEuYWxwaGFUZXN0LGRvdWJsZVNpZGVkOjI9PT1hLnNpZGUsZmxpcFNpZGVkOjE9PT1hLnNpZGUsZGVwdGhQYWNraW5nOnZvaWQgMCE9PWEuZGVwdGhQYWNraW5nJiZhLmRlcHRoUGFja2luZyxpbmRleDBBdHRyaWJ1dGVOYW1lOmEuaW5kZXgwQXR0cmlidXRlTmFtZSxleHRlbnNpb25EZXJpdmF0aXZlczphLmV4dGVuc2lvbnMmJmEuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcyxleHRlbnNpb25GcmFnRGVwdGg6YS5leHRlbnNpb25zJiZhLmV4dGVuc2lvbnMuZnJhZ0RlcHRoLGV4dGVuc2lvbkRyYXdCdWZmZXJzOmEuZXh0ZW5zaW9ucyYmYS5leHRlbnNpb25zLmRyYXdCdWZmZXJzLGV4dGVuc2lvblNoYWRlclRleHR1cmVMT0Q6YS5leHRlbnNpb25zJiZhLmV4dGVuc2lvbnMuc2hhZGVyVGV4dHVyZUxPRCxyZW5kZXJlckV4dGVuc2lvbkZyYWdEZXB0aDpsfHxvLmhhcygiRVhUX2ZyYWdfZGVwdGgiKSxyZW5kZXJlckV4dGVuc2lvbkRyYXdCdWZmZXJzOmx8fG8uaGFzKCJXRUJHTF9kcmF3X2J1ZmZlcnMiKSxyZW5kZXJlckV4dGVuc2lvblNoYWRlclRleHR1cmVMb2Q6bHx8by5oYXMoIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKSxjdXN0b21Qcm9ncmFtQ2FjaGVLZXk6YS5jdXN0b21Qcm9ncmFtQ2FjaGVLZXkoKX19LGdldFByb2dyYW1DYWNoZUtleTpmdW5jdGlvbiB5KGUpe2NvbnN0IG49W107aWYoZS5zaGFkZXJJRD9uLnB1c2goZS5zaGFkZXJJRCk6KG4ucHVzaChlLmZyYWdtZW50U2hhZGVyKSxuLnB1c2goZS52ZXJ0ZXhTaGFkZXIpKSx2b2lkIDAhPT1lLmRlZmluZXMpZm9yKGNvbnN0IHQgaW4gZS5kZWZpbmVzKW4ucHVzaCh0KSxuLnB1c2goZS5kZWZpbmVzW3RdKTtpZighMT09PWUuaXNSYXdTaGFkZXJNYXRlcmlhbCl7Zm9yKGxldCB0PTA7dDxnLmxlbmd0aDt0Kyspbi5wdXNoKGVbZ1t0XV0pO24ucHVzaCh0Lm91dHB1dEVuY29kaW5nKSxuLnB1c2godC5nYW1tYUZhY3Rvcil9cmV0dXJuIG4ucHVzaChlLmN1c3RvbVByb2dyYW1DYWNoZUtleSksbi5qb2luKCl9LGdldFVuaWZvcm1zOmZ1bmN0aW9uIF8odCl7Y29uc3QgZT1mW3QudHlwZV07bGV0IG47cmV0dXJuIG49ZT9oc3QuY2xvbmUoSXN0W2VdLnVuaWZvcm1zKTp0LnVuaWZvcm1zLG59LGFjcXVpcmVQcm9ncmFtOmZ1bmN0aW9uIEMoZSxuKXtsZXQgbztmb3IobGV0IHQ9MCxlPXMubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9c1t0XTtpZihlLmNhY2hlS2V5PT09bil7bz1lLCsrby51c2VkVGltZXM7YnJlYWt9fXJldHVybiB2b2lkIDA9PT1vJiYobz1uZXcgWWN0KHQsbixlLGEpLHMucHVzaChvKSksb30scmVsZWFzZVByb2dyYW06ZnVuY3Rpb24gTSh0KXtpZigwPT0tLXQudXNlZFRpbWVzKXtjb25zdCBlPXMuaW5kZXhPZih0KTtzW2VdPXNbcy5sZW5ndGgtMV0scy5wb3AoKSx0LmRlc3Ryb3koKX19LHByb2dyYW1zOnN9fWZ1bmN0aW9uIFpjdCgpe2xldCB0PW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24gZShuKXtsZXQgbz10LmdldChuKTtyZXR1cm4gdm9pZCAwPT09byYmKG89e30sdC5zZXQobixvKSksb30scmVtb3ZlOmZ1bmN0aW9uIG4oZSl7dC5kZWxldGUoZSl9LHVwZGF0ZTpmdW5jdGlvbiBvKGUsbixpKXt0LmdldChlKVtuXT1pfSxkaXNwb3NlOmZ1bmN0aW9uIGkoKXt0PW5ldyBXZWFrTWFwfX19ZnVuY3Rpb24gWGN0KHQsZSl7cmV0dXJuIHQuZ3JvdXBPcmRlciE9PWUuZ3JvdXBPcmRlcj90Lmdyb3VwT3JkZXItZS5ncm91cE9yZGVyOnQucmVuZGVyT3JkZXIhPT1lLnJlbmRlck9yZGVyP3QucmVuZGVyT3JkZXItZS5yZW5kZXJPcmRlcjp0LnByb2dyYW0hPT1lLnByb2dyYW0/dC5wcm9ncmFtLmlkLWUucHJvZ3JhbS5pZDp0Lm1hdGVyaWFsLmlkIT09ZS5tYXRlcmlhbC5pZD90Lm1hdGVyaWFsLmlkLWUubWF0ZXJpYWwuaWQ6dC56IT09ZS56P3Quei1lLno6dC5pZC1lLmlkfWZ1bmN0aW9uIEtjdCh0LGUpe3JldHVybiB0Lmdyb3VwT3JkZXIhPT1lLmdyb3VwT3JkZXI/dC5ncm91cE9yZGVyLWUuZ3JvdXBPcmRlcjp0LnJlbmRlck9yZGVyIT09ZS5yZW5kZXJPcmRlcj90LnJlbmRlck9yZGVyLWUucmVuZGVyT3JkZXI6dC56IT09ZS56P2Uuei10Lno6dC5pZC1lLmlkfWZ1bmN0aW9uIEpjdCh0KXtjb25zdCBlPVtdO2xldCBuPTA7Y29uc3Qgbz1bXSxpPVtdLGE9W10scj17aWQ6LTF9O2Z1bmN0aW9uIHMobyxpLGEscyxsLGMpe2xldCBkPWVbbl07Y29uc3QgcD10LmdldChhKTtyZXR1cm4gdm9pZCAwPT09ZD8oZD17aWQ6by5pZCxvYmplY3Q6byxnZW9tZXRyeTppLG1hdGVyaWFsOmEscHJvZ3JhbTpwLnByb2dyYW18fHIsZ3JvdXBPcmRlcjpzLHJlbmRlck9yZGVyOm8ucmVuZGVyT3JkZXIsejpsLGdyb3VwOmN9LGVbbl09ZCk6KGQuaWQ9by5pZCxkLm9iamVjdD1vLGQuZ2VvbWV0cnk9aSxkLm1hdGVyaWFsPWEsZC5wcm9ncmFtPXAucHJvZ3JhbXx8cixkLmdyb3VwT3JkZXI9cyxkLnJlbmRlck9yZGVyPW8ucmVuZGVyT3JkZXIsZC56PWwsZC5ncm91cD1jKSxuKyssZH1yZXR1cm57b3BhcXVlOm8sdHJhbnNtaXNzaXZlOmksdHJhbnNwYXJlbnQ6YSxpbml0OmZ1bmN0aW9uIGwoKXtuPTAsby5sZW5ndGg9MCxpLmxlbmd0aD0wLGEubGVuZ3RoPTB9LHB1c2g6ZnVuY3Rpb24gYyh0LGUsbixyLGwsZCl7Y29uc3QgcD1zKHQsZSxuLHIsbCxkKTtuLnRyYW5zbWlzc2lvbj4wP2kucHVzaChwKTohMD09PW4udHJhbnNwYXJlbnQ/YS5wdXNoKHApOm8ucHVzaChwKX0sdW5zaGlmdDpmdW5jdGlvbiBkKHQsZSxuLHIsbCxjKXtjb25zdCBkPXModCxlLG4scixsLGMpO24udHJhbnNtaXNzaW9uPjA/aS51bnNoaWZ0KGQpOiEwPT09bi50cmFuc3BhcmVudD9hLnVuc2hpZnQoZCk6by51bnNoaWZ0KGQpfSxmaW5pc2g6ZnVuY3Rpb24gcCgpe2ZvcihsZXQgdD1uLG89ZS5sZW5ndGg7dDxvO3QrKyl7Y29uc3Qgbj1lW3RdO2lmKG51bGw9PT1uLmlkKWJyZWFrO24uaWQ9bnVsbCxuLm9iamVjdD1udWxsLG4uZ2VvbWV0cnk9bnVsbCxuLm1hdGVyaWFsPW51bGwsbi5wcm9ncmFtPW51bGwsbi5ncm91cD1udWxsfX0sc29ydDpmdW5jdGlvbiBtKHQsZSl7by5sZW5ndGg+MSYmby5zb3J0KHR8fFhjdCksaS5sZW5ndGg+MSYmaS5zb3J0KGV8fEtjdCksYS5sZW5ndGg+MSYmYS5zb3J0KGV8fEtjdCl9fX1mdW5jdGlvbiBRY3QodCl7bGV0IGU9bmV3IFdlYWtNYXA7cmV0dXJue2dldDpmdW5jdGlvbiBuKG8saSl7bGV0IGE7cmV0dXJuITE9PT1lLmhhcyhvKT8oYT1uZXcgSmN0KHQpLGUuc2V0KG8sW2FdKSk6aT49ZS5nZXQobykubGVuZ3RoPyhhPW5ldyBKY3QodCksZS5nZXQobykucHVzaChhKSk6YT1lLmdldChvKVtpXSxhfSxkaXNwb3NlOmZ1bmN0aW9uIG8oKXtlPW5ldyBXZWFrTWFwfX19ZnVuY3Rpb24gJGN0KCl7Y29uc3QgdD17fTtyZXR1cm57Z2V0OmZ1bmN0aW9uKGUpe2lmKHZvaWQgMCE9PXRbZS5pZF0pcmV0dXJuIHRbZS5pZF07bGV0IG47c3dpdGNoKGUudHlwZSl7Y2FzZSJEaXJlY3Rpb25hbExpZ2h0IjpuPXtkaXJlY3Rpb246bmV3IGNhdCxjb2xvcjpuZXcgUnJ0fTticmVhaztjYXNlIlNwb3RMaWdodCI6bj17cG9zaXRpb246bmV3IGNhdCxkaXJlY3Rpb246bmV3IGNhdCxjb2xvcjpuZXcgUnJ0LGRpc3RhbmNlOjAsY29uZUNvczowLHBlbnVtYnJhQ29zOjAsZGVjYXk6MH07YnJlYWs7Y2FzZSJQb2ludExpZ2h0IjpuPXtwb3NpdGlvbjpuZXcgY2F0LGNvbG9yOm5ldyBScnQsZGlzdGFuY2U6MCxkZWNheTowfTticmVhaztjYXNlIkhlbWlzcGhlcmVMaWdodCI6bj17ZGlyZWN0aW9uOm5ldyBjYXQsc2t5Q29sb3I6bmV3IFJydCxncm91bmRDb2xvcjpuZXcgUnJ0fTticmVhaztjYXNlIlJlY3RBcmVhTGlnaHQiOm49e2NvbG9yOm5ldyBScnQscG9zaXRpb246bmV3IGNhdCxoYWxmV2lkdGg6bmV3IGNhdCxoYWxmSGVpZ2h0Om5ldyBjYXR9fXJldHVybiB0W2UuaWRdPW4sbn19fWxldCB0ZHQ9MDtmdW5jdGlvbiBlZHQodCxlKXtyZXR1cm4oZS5jYXN0U2hhZG93PzE6MCktKHQuY2FzdFNoYWRvdz8xOjApfWZ1bmN0aW9uIG5kdCh0LGUpe2NvbnN0IG49bmV3ICRjdCxvPShmdW5jdGlvbiBpKCl7Y29uc3QgdD17fTtyZXR1cm57Z2V0OmZ1bmN0aW9uKGUpe2lmKHZvaWQgMCE9PXRbZS5pZF0pcmV0dXJuIHRbZS5pZF07bGV0IG47c3dpdGNoKGUudHlwZSl7Y2FzZSJEaXJlY3Rpb25hbExpZ2h0IjpjYXNlIlNwb3RMaWdodCI6bj17c2hhZG93QmlhczowLHNoYWRvd05vcm1hbEJpYXM6MCxzaGFkb3dSYWRpdXM6MSxzaGFkb3dNYXBTaXplOm5ldyBRaXR9O2JyZWFrO2Nhc2UiUG9pbnRMaWdodCI6bj17c2hhZG93QmlhczowLHNoYWRvd05vcm1hbEJpYXM6MCxzaGFkb3dSYWRpdXM6MSxzaGFkb3dNYXBTaXplOm5ldyBRaXQsc2hhZG93Q2FtZXJhTmVhcjoxLHNoYWRvd0NhbWVyYUZhcjoxZTN9fXJldHVybiB0W2UuaWRdPW4sbn19fSkoKSxhPXt2ZXJzaW9uOjAsaGFzaDp7ZGlyZWN0aW9uYWxMZW5ndGg6LTEscG9pbnRMZW5ndGg6LTEsc3BvdExlbmd0aDotMSxyZWN0QXJlYUxlbmd0aDotMSxoZW1pTGVuZ3RoOi0xLG51bURpcmVjdGlvbmFsU2hhZG93czotMSxudW1Qb2ludFNoYWRvd3M6LTEsbnVtU3BvdFNoYWRvd3M6LTF9LGFtYmllbnQ6WzAsMCwwXSxwcm9iZTpbXSxkaXJlY3Rpb25hbDpbXSxkaXJlY3Rpb25hbFNoYWRvdzpbXSxkaXJlY3Rpb25hbFNoYWRvd01hcDpbXSxkaXJlY3Rpb25hbFNoYWRvd01hdHJpeDpbXSxzcG90OltdLHNwb3RTaGFkb3c6W10sc3BvdFNoYWRvd01hcDpbXSxzcG90U2hhZG93TWF0cml4OltdLHJlY3RBcmVhOltdLHJlY3RBcmVhTFRDMTpudWxsLHJlY3RBcmVhTFRDMjpudWxsLHBvaW50OltdLHBvaW50U2hhZG93OltdLHBvaW50U2hhZG93TWFwOltdLHBvaW50U2hhZG93TWF0cml4OltdLGhlbWk6W119O2ZvcihsZXQgdD0wO3Q8OTt0KyspYS5wcm9iZS5wdXNoKG5ldyBjYXQpO2NvbnN0IHI9bmV3IGNhdCxzPW5ldyBCYXQsbD1uZXcgQmF0O3JldHVybntzZXR1cDpmdW5jdGlvbiBjKGkpe2xldCByPTAscz0wLGw9MDtmb3IobGV0IHQ9MDt0PDk7dCsrKWEucHJvYmVbdF0uc2V0KDAsMCwwKTtsZXQgYz0wLGQ9MCxwPTAsbT0wLHU9MCxmPTAsZz0wLGg9MDtpLnNvcnQoZWR0KTtmb3IobGV0IHQ9MCxlPWkubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9aVt0XSxiPWUuY29sb3IseT1lLmludGVuc2l0eSxfPWUuZGlzdGFuY2UsQz1lLnNoYWRvdyYmZS5zaGFkb3cubWFwP2Uuc2hhZG93Lm1hcC50ZXh0dXJlOm51bGw7aWYoZS5pc0FtYmllbnRMaWdodClyKz1iLnIqeSxzKz1iLmcqeSxsKz1iLmIqeTtlbHNlIGlmKGUuaXNMaWdodFByb2JlKWZvcihsZXQgdD0wO3Q8OTt0KyspYS5wcm9iZVt0XS5hZGRTY2FsZWRWZWN0b3IoZS5zaC5jb2VmZmljaWVudHNbdF0seSk7ZWxzZSBpZihlLmlzRGlyZWN0aW9uYWxMaWdodCl7Y29uc3QgdD1uLmdldChlKTtpZih0LmNvbG9yLmNvcHkoZS5jb2xvcikubXVsdGlwbHlTY2FsYXIoZS5pbnRlbnNpdHkpLGUuY2FzdFNoYWRvdyl7Y29uc3QgdD1lLnNoYWRvdyxuPW8uZ2V0KGUpO24uc2hhZG93Qmlhcz10LmJpYXMsbi5zaGFkb3dOb3JtYWxCaWFzPXQubm9ybWFsQmlhcyxuLnNoYWRvd1JhZGl1cz10LnJhZGl1cyxuLnNoYWRvd01hcFNpemU9dC5tYXBTaXplLGEuZGlyZWN0aW9uYWxTaGFkb3dbY109bixhLmRpcmVjdGlvbmFsU2hhZG93TWFwW2NdPUMsYS5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeFtjXT1lLnNoYWRvdy5tYXRyaXgsZisrfWEuZGlyZWN0aW9uYWxbY109dCxjKyt9ZWxzZSBpZihlLmlzU3BvdExpZ2h0KXtjb25zdCB0PW4uZ2V0KGUpO2lmKHQucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGUubWF0cml4V29ybGQpLHQuY29sb3IuY29weShiKS5tdWx0aXBseVNjYWxhcih5KSx0LmRpc3RhbmNlPV8sdC5jb25lQ29zPU1hdGguY29zKGUuYW5nbGUpLHQucGVudW1icmFDb3M9TWF0aC5jb3MoZS5hbmdsZSooMS1lLnBlbnVtYnJhKSksdC5kZWNheT1lLmRlY2F5LGUuY2FzdFNoYWRvdyl7Y29uc3QgdD1lLnNoYWRvdyxuPW8uZ2V0KGUpO24uc2hhZG93Qmlhcz10LmJpYXMsbi5zaGFkb3dOb3JtYWxCaWFzPXQubm9ybWFsQmlhcyxuLnNoYWRvd1JhZGl1cz10LnJhZGl1cyxuLnNoYWRvd01hcFNpemU9dC5tYXBTaXplLGEuc3BvdFNoYWRvd1twXT1uLGEuc3BvdFNoYWRvd01hcFtwXT1DLGEuc3BvdFNoYWRvd01hdHJpeFtwXT1lLnNoYWRvdy5tYXRyaXgsaCsrfWEuc3BvdFtwXT10LHArK31lbHNlIGlmKGUuaXNSZWN0QXJlYUxpZ2h0KXtjb25zdCB0PW4uZ2V0KGUpO3QuY29sb3IuY29weShiKS5tdWx0aXBseVNjYWxhcih5KSx0LmhhbGZXaWR0aC5zZXQoLjUqZS53aWR0aCwwLDApLHQuaGFsZkhlaWdodC5zZXQoMCwuNSplLmhlaWdodCwwKSxhLnJlY3RBcmVhW21dPXQsbSsrfWVsc2UgaWYoZS5pc1BvaW50TGlnaHQpe2NvbnN0IHQ9bi5nZXQoZSk7aWYodC5jb2xvci5jb3B5KGUuY29sb3IpLm11bHRpcGx5U2NhbGFyKGUuaW50ZW5zaXR5KSx0LmRpc3RhbmNlPWUuZGlzdGFuY2UsdC5kZWNheT1lLmRlY2F5LGUuY2FzdFNoYWRvdyl7Y29uc3QgdD1lLnNoYWRvdyxuPW8uZ2V0KGUpO24uc2hhZG93Qmlhcz10LmJpYXMsbi5zaGFkb3dOb3JtYWxCaWFzPXQubm9ybWFsQmlhcyxuLnNoYWRvd1JhZGl1cz10LnJhZGl1cyxuLnNoYWRvd01hcFNpemU9dC5tYXBTaXplLG4uc2hhZG93Q2FtZXJhTmVhcj10LmNhbWVyYS5uZWFyLG4uc2hhZG93Q2FtZXJhRmFyPXQuY2FtZXJhLmZhcixhLnBvaW50U2hhZG93W2RdPW4sYS5wb2ludFNoYWRvd01hcFtkXT1DLGEucG9pbnRTaGFkb3dNYXRyaXhbZF09ZS5zaGFkb3cubWF0cml4LGcrK31hLnBvaW50W2RdPXQsZCsrfWVsc2UgaWYoZS5pc0hlbWlzcGhlcmVMaWdodCl7Y29uc3QgdD1uLmdldChlKTt0LnNreUNvbG9yLmNvcHkoZS5jb2xvcikubXVsdGlwbHlTY2FsYXIoeSksdC5ncm91bmRDb2xvci5jb3B5KGUuZ3JvdW5kQ29sb3IpLm11bHRpcGx5U2NhbGFyKHkpLGEuaGVtaVt1XT10LHUrK319bT4wJiYoZS5pc1dlYkdMMnx8ITA9PT10LmhhcygiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik/KGEucmVjdEFyZWFMVEMxPXpzdC5MVENfRkxPQVRfMSxhLnJlY3RBcmVhTFRDMj16c3QuTFRDX0ZMT0FUXzIpOiEwPT09dC5oYXMoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik/KGEucmVjdEFyZWFMVEMxPXpzdC5MVENfSEFMRl8xLGEucmVjdEFyZWFMVEMyPXpzdC5MVENfSEFMRl8yKTpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBVbmFibGUgdG8gdXNlIFJlY3RBcmVhTGlnaHQuIE1pc3NpbmcgV2ViR0wgZXh0ZW5zaW9ucy4iKSksYS5hbWJpZW50WzBdPXIsYS5hbWJpZW50WzFdPXMsYS5hbWJpZW50WzJdPWw7Y29uc3QgYj1hLmhhc2g7Yi5kaXJlY3Rpb25hbExlbmd0aD09PWMmJmIucG9pbnRMZW5ndGg9PT1kJiZiLnNwb3RMZW5ndGg9PT1wJiZiLnJlY3RBcmVhTGVuZ3RoPT09bSYmYi5oZW1pTGVuZ3RoPT09dSYmYi5udW1EaXJlY3Rpb25hbFNoYWRvd3M9PT1mJiZiLm51bVBvaW50U2hhZG93cz09PWcmJmIubnVtU3BvdFNoYWRvd3M9PT1ofHwoYS5kaXJlY3Rpb25hbC5sZW5ndGg9YyxhLnNwb3QubGVuZ3RoPXAsYS5yZWN0QXJlYS5sZW5ndGg9bSxhLnBvaW50Lmxlbmd0aD1kLGEuaGVtaS5sZW5ndGg9dSxhLmRpcmVjdGlvbmFsU2hhZG93Lmxlbmd0aD1mLGEuZGlyZWN0aW9uYWxTaGFkb3dNYXAubGVuZ3RoPWYsYS5wb2ludFNoYWRvdy5sZW5ndGg9ZyxhLnBvaW50U2hhZG93TWFwLmxlbmd0aD1nLGEuc3BvdFNoYWRvdy5sZW5ndGg9aCxhLnNwb3RTaGFkb3dNYXAubGVuZ3RoPWgsYS5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeC5sZW5ndGg9ZixhLnBvaW50U2hhZG93TWF0cml4Lmxlbmd0aD1nLGEuc3BvdFNoYWRvd01hdHJpeC5sZW5ndGg9aCxiLmRpcmVjdGlvbmFsTGVuZ3RoPWMsYi5wb2ludExlbmd0aD1kLGIuc3BvdExlbmd0aD1wLGIucmVjdEFyZWFMZW5ndGg9bSxiLmhlbWlMZW5ndGg9dSxiLm51bURpcmVjdGlvbmFsU2hhZG93cz1mLGIubnVtUG9pbnRTaGFkb3dzPWcsYi5udW1TcG90U2hhZG93cz1oLGEudmVyc2lvbj10ZHQrKyl9LHNldHVwVmlldzpmdW5jdGlvbiBkKHQsZSl7bGV0IG49MCxvPTAsaT0wLGM9MCxkPTA7Y29uc3QgcD1lLm1hdHJpeFdvcmxkSW52ZXJzZTtmb3IobGV0IGU9MCxtPXQubGVuZ3RoO2U8bTtlKyspe2NvbnN0IG09dFtlXTtpZihtLmlzRGlyZWN0aW9uYWxMaWdodCl7Y29uc3QgdD1hLmRpcmVjdGlvbmFsW25dO3QuZGlyZWN0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihtLm1hdHJpeFdvcmxkKSxyLnNldEZyb21NYXRyaXhQb3NpdGlvbihtLnRhcmdldC5tYXRyaXhXb3JsZCksdC5kaXJlY3Rpb24uc3ViKHIpLHQuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbihwKSxuKyt9ZWxzZSBpZihtLmlzU3BvdExpZ2h0KXtjb25zdCB0PWEuc3BvdFtpXTt0LnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihtLm1hdHJpeFdvcmxkKSx0LnBvc2l0aW9uLmFwcGx5TWF0cml4NChwKSx0LmRpcmVjdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24obS5tYXRyaXhXb3JsZCksci5zZXRGcm9tTWF0cml4UG9zaXRpb24obS50YXJnZXQubWF0cml4V29ybGQpLHQuZGlyZWN0aW9uLnN1YihyKSx0LmRpcmVjdGlvbi50cmFuc2Zvcm1EaXJlY3Rpb24ocCksaSsrfWVsc2UgaWYobS5pc1JlY3RBcmVhTGlnaHQpe2NvbnN0IHQ9YS5yZWN0QXJlYVtjXTt0LnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihtLm1hdHJpeFdvcmxkKSx0LnBvc2l0aW9uLmFwcGx5TWF0cml4NChwKSxsLmlkZW50aXR5KCkscy5jb3B5KG0ubWF0cml4V29ybGQpLHMucHJlbXVsdGlwbHkocCksbC5leHRyYWN0Um90YXRpb24ocyksdC5oYWxmV2lkdGguc2V0KC41Km0ud2lkdGgsMCwwKSx0LmhhbGZIZWlnaHQuc2V0KDAsLjUqbS5oZWlnaHQsMCksdC5oYWxmV2lkdGguYXBwbHlNYXRyaXg0KGwpLHQuaGFsZkhlaWdodC5hcHBseU1hdHJpeDQobCksYysrfWVsc2UgaWYobS5pc1BvaW50TGlnaHQpe2NvbnN0IHQ9YS5wb2ludFtvXTt0LnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihtLm1hdHJpeFdvcmxkKSx0LnBvc2l0aW9uLmFwcGx5TWF0cml4NChwKSxvKyt9ZWxzZSBpZihtLmlzSGVtaXNwaGVyZUxpZ2h0KXtjb25zdCB0PWEuaGVtaVtkXTt0LmRpcmVjdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24obS5tYXRyaXhXb3JsZCksdC5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKHApLHQuZGlyZWN0aW9uLm5vcm1hbGl6ZSgpLGQrK319fSxzdGF0ZTphfX1mdW5jdGlvbiBvZHQodCxlKXtjb25zdCBuPW5ldyBuZHQodCxlKSxvPVtdLGk9W107cmV0dXJue2luaXQ6ZnVuY3Rpb24gYSgpe28ubGVuZ3RoPTAsaS5sZW5ndGg9MH0sc3RhdGU6e2xpZ2h0c0FycmF5Om8sc2hhZG93c0FycmF5OmksbGlnaHRzOm59LHNldHVwTGlnaHRzOmZ1bmN0aW9uIHIoKXtuLnNldHVwKG8pfSxzZXR1cExpZ2h0c1ZpZXc6ZnVuY3Rpb24gcyh0KXtuLnNldHVwVmlldyhvLHQpfSxwdXNoTGlnaHQ6ZnVuY3Rpb24gbCh0KXtvLnB1c2godCl9LHB1c2hTaGFkb3c6ZnVuY3Rpb24gYyh0KXtpLnB1c2godCl9fX1mdW5jdGlvbiBpZHQodCxlKXtsZXQgbj1uZXcgV2Vha01hcDtyZXR1cm57Z2V0OmZ1bmN0aW9uIG8oaSxhPTApe2xldCByO3JldHVybiExPT09bi5oYXMoaSk/KHI9bmV3IG9kdCh0LGUpLG4uc2V0KGksW3JdKSk6YT49bi5nZXQoaSkubGVuZ3RoPyhyPW5ldyBvZHQodCxlKSxuLmdldChpKS5wdXNoKHIpKTpyPW4uZ2V0KGkpW2FdLHJ9LGRpc3Bvc2U6ZnVuY3Rpb24gaSgpe249bmV3IFdlYWtNYXB9fX1jbGFzcyBhZHQgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hEZXB0aE1hdGVyaWFsIix0aGlzLmRlcHRoUGFja2luZz0zMjAwLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy5mb2c9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRlcHRoUGFja2luZz10LmRlcHRoUGFja2luZyx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpc319YWR0LnByb3RvdHlwZS5pc01lc2hEZXB0aE1hdGVyaWFsPSEwO2NsYXNzIHJkdCBleHRlbmRzIE9ydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaERpc3RhbmNlTWF0ZXJpYWwiLHRoaXMucmVmZXJlbmNlUG9zaXRpb249bmV3IGNhdCx0aGlzLm5lYXJEaXN0YW5jZT0xLHRoaXMuZmFyRGlzdGFuY2U9MWUzLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuZm9nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5yZWZlcmVuY2VQb3NpdGlvbi5jb3B5KHQucmVmZXJlbmNlUG9zaXRpb24pLHRoaXMubmVhckRpc3RhbmNlPXQubmVhckRpc3RhbmNlLHRoaXMuZmFyRGlzdGFuY2U9dC5mYXJEaXN0YW5jZSx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpc319ZnVuY3Rpb24gc2R0KHQsZSxuKXtsZXQgbz1uZXcgRXN0O2NvbnN0IGk9bmV3IFFpdCxhPW5ldyBRaXQscj1uZXcgYWF0LHM9bmV3IGFkdCh7ZGVwdGhQYWNraW5nOjMyMDF9KSxsPW5ldyByZHQsYz17fSxkPW4ubWF4VGV4dHVyZVNpemUscD17MDoxLDE6MCwyOjJ9LG09bmV3IGJzdCh7ZGVmaW5lczp7U0FNUExFX1JBVEU6Mi84LEhBTEZfU0FNUExFX1JBVEU6MS84fSx1bmlmb3Jtczp7c2hhZG93X3Bhc3M6e3ZhbHVlOm51bGx9LHJlc29sdXRpb246e3ZhbHVlOm5ldyBRaXR9LHJhZGl1czp7dmFsdWU6NH19LHZlcnRleFNoYWRlcjoidm9pZCBtYWluKCkge1xuXHRnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtcbn0iLGZyYWdtZW50U2hhZGVyOiJ1bmlmb3JtIHNhbXBsZXIyRCBzaGFkb3dfcGFzcztcbnVuaWZvcm0gdmVjMiByZXNvbHV0aW9uO1xudW5pZm9ybSBmbG9hdCByYWRpdXM7XG4jaW5jbHVkZSA8cGFja2luZz5cbnZvaWQgbWFpbigpIHtcblx0ZmxvYXQgbWVhbiA9IDAuMDtcblx0ZmxvYXQgc3F1YXJlZF9tZWFuID0gMC4wO1xuXHRmbG9hdCBkZXB0aCA9IHVucGFja1JHQkFUb0RlcHRoKCB0ZXh0dXJlMkQoIHNoYWRvd19wYXNzLCAoIGdsX0ZyYWdDb29yZC54eSApIC8gcmVzb2x1dGlvbiApICk7XG5cdGZvciAoIGZsb2F0IGkgPSAtMS4wOyBpIDwgMS4wIDsgaSArPSBTQU1QTEVfUkFURSkge1xuXHRcdCNpZmRlZiBIT1JJWk9OVEFMX1BBU1Ncblx0XHRcdHZlYzIgZGlzdHJpYnV0aW9uID0gdW5wYWNrUkdCQVRvMkhhbGYoIHRleHR1cmUyRCggc2hhZG93X3Bhc3MsICggZ2xfRnJhZ0Nvb3JkLnh5ICsgdmVjMiggaSwgMC4wICkgKiByYWRpdXMgKSAvIHJlc29sdXRpb24gKSApO1xuXHRcdFx0bWVhbiArPSBkaXN0cmlidXRpb24ueDtcblx0XHRcdHNxdWFyZWRfbWVhbiArPSBkaXN0cmlidXRpb24ueSAqIGRpc3RyaWJ1dGlvbi55ICsgZGlzdHJpYnV0aW9uLnggKiBkaXN0cmlidXRpb24ueDtcblx0XHQjZWxzZVxuXHRcdFx0ZmxvYXQgZGVwdGggPSB1bnBhY2tSR0JBVG9EZXB0aCggdGV4dHVyZTJEKCBzaGFkb3dfcGFzcywgKCBnbF9GcmFnQ29vcmQueHkgKyB2ZWMyKCAwLjAsIGkgKSAqIHJhZGl1cyApIC8gcmVzb2x1dGlvbiApICk7XG5cdFx0XHRtZWFuICs9IGRlcHRoO1xuXHRcdFx0c3F1YXJlZF9tZWFuICs9IGRlcHRoICogZGVwdGg7XG5cdFx0I2VuZGlmXG5cdH1cblx0bWVhbiA9IG1lYW4gKiBIQUxGX1NBTVBMRV9SQVRFO1xuXHRzcXVhcmVkX21lYW4gPSBzcXVhcmVkX21lYW4gKiBIQUxGX1NBTVBMRV9SQVRFO1xuXHRmbG9hdCBzdGRfZGV2ID0gc3FydCggc3F1YXJlZF9tZWFuIC0gbWVhbiAqIG1lYW4gKTtcblx0Z2xfRnJhZ0NvbG9yID0gcGFjazJIYWxmVG9SR0JBKCB2ZWMyKCBtZWFuLCBzdGRfZGV2ICkgKTtcbn0ifSksdT1tLmNsb25lKCk7dS5kZWZpbmVzLkhPUklaT05UQUxfUEFTUz0xO2NvbnN0IGY9bmV3IHFydDtmLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyB6cnQobmV3IEZsb2F0MzJBcnJheShbLTEsLTEsLjUsMywtMSwuNSwtMSwzLC41XSksMykpO2NvbnN0IGc9bmV3IHBzdChmLG0pLGg9dGhpcztmdW5jdGlvbiBiKG4sbyl7Y29uc3QgaT1lLnVwZGF0ZShnKTttLnVuaWZvcm1zLnNoYWRvd19wYXNzLnZhbHVlPW4ubWFwLnRleHR1cmUsbS51bmlmb3Jtcy5yZXNvbHV0aW9uLnZhbHVlPW4ubWFwU2l6ZSxtLnVuaWZvcm1zLnJhZGl1cy52YWx1ZT1uLnJhZGl1cyx0LnNldFJlbmRlclRhcmdldChuLm1hcFBhc3MpLHQuY2xlYXIoKSx0LnJlbmRlckJ1ZmZlckRpcmVjdChvLG51bGwsaSxtLGcsbnVsbCksdS51bmlmb3Jtcy5zaGFkb3dfcGFzcy52YWx1ZT1uLm1hcFBhc3MudGV4dHVyZSx1LnVuaWZvcm1zLnJlc29sdXRpb24udmFsdWU9bi5tYXBTaXplLHUudW5pZm9ybXMucmFkaXVzLnZhbHVlPW4ucmFkaXVzLHQuc2V0UmVuZGVyVGFyZ2V0KG4ubWFwKSx0LmNsZWFyKCksdC5yZW5kZXJCdWZmZXJEaXJlY3QobyxudWxsLGksdSxnLG51bGwpfWZ1bmN0aW9uIHkoZSxuLG8saSxhLHIsZCl7bGV0IG09bnVsbDtjb25zdCB1PSEwPT09aS5pc1BvaW50TGlnaHQ/ZS5jdXN0b21EaXN0YW5jZU1hdGVyaWFsOmUuY3VzdG9tRGVwdGhNYXRlcmlhbDtpZihtPXZvaWQgMCE9PXU/dTohMD09PWkuaXNQb2ludExpZ2h0P2w6cyx0LmxvY2FsQ2xpcHBpbmdFbmFibGVkJiYhMD09PW8uY2xpcFNoYWRvd3MmJjAhPT1vLmNsaXBwaW5nUGxhbmVzLmxlbmd0aCl7Y29uc3QgdD1tLnV1aWQsZT1vLnV1aWQ7bGV0IG49Y1t0XTt2b2lkIDA9PT1uJiYobj17fSxjW3RdPW4pO2xldCBpPW5bZV07dm9pZCAwPT09aSYmKGk9bS5jbG9uZSgpLG5bZV09aSksbT1pfXJldHVybiBtLnZpc2libGU9by52aXNpYmxlLG0ud2lyZWZyYW1lPW8ud2lyZWZyYW1lLG0uc2lkZT0zPT09ZD9udWxsIT09by5zaGFkb3dTaWRlP28uc2hhZG93U2lkZTpvLnNpZGU6bnVsbCE9PW8uc2hhZG93U2lkZT9vLnNoYWRvd1NpZGU6cFtvLnNpZGVdLG0uY2xpcFNoYWRvd3M9by5jbGlwU2hhZG93cyxtLmNsaXBwaW5nUGxhbmVzPW8uY2xpcHBpbmdQbGFuZXMsbS5jbGlwSW50ZXJzZWN0aW9uPW8uY2xpcEludGVyc2VjdGlvbixtLndpcmVmcmFtZUxpbmV3aWR0aD1vLndpcmVmcmFtZUxpbmV3aWR0aCxtLmxpbmV3aWR0aD1vLmxpbmV3aWR0aCwhMD09PWkuaXNQb2ludExpZ2h0JiYhMD09PW0uaXNNZXNoRGlzdGFuY2VNYXRlcmlhbCYmKG0ucmVmZXJlbmNlUG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGkubWF0cml4V29ybGQpLG0ubmVhckRpc3RhbmNlPWEsbS5mYXJEaXN0YW5jZT1yKSxtfWZ1bmN0aW9uIF8obixpLGEscixzKXtpZighMT09PW4udmlzaWJsZSlyZXR1cm47aWYobi5sYXllcnMudGVzdChpLmxheWVycykmJihuLmlzTWVzaHx8bi5pc0xpbmV8fG4uaXNQb2ludHMpJiYobi5jYXN0U2hhZG93fHxuLnJlY2VpdmVTaGFkb3cmJjM9PT1zKSYmKCFuLmZydXN0dW1DdWxsZWR8fG8uaW50ZXJzZWN0c09iamVjdChuKSkpe24ubW9kZWxWaWV3TWF0cml4Lm11bHRpcGx5TWF0cmljZXMoYS5tYXRyaXhXb3JsZEludmVyc2Usbi5tYXRyaXhXb3JsZCk7Y29uc3Qgbz1lLnVwZGF0ZShuKSxpPW4ubWF0ZXJpYWw7aWYoQXJyYXkuaXNBcnJheShpKSl7Y29uc3QgZT1vLmdyb3Vwcztmb3IobGV0IGw9MCxjPWUubGVuZ3RoO2w8YztsKyspe2NvbnN0IGM9ZVtsXSxkPWlbYy5tYXRlcmlhbEluZGV4XTtpZihkJiZkLnZpc2libGUpe2NvbnN0IGU9eShuLDAsZCxyLGEubmVhcixhLmZhcixzKTt0LnJlbmRlckJ1ZmZlckRpcmVjdChhLG51bGwsbyxlLG4sYyl9fX1lbHNlIGlmKGkudmlzaWJsZSl7Y29uc3QgZT15KG4sMCxpLHIsYS5uZWFyLGEuZmFyLHMpO3QucmVuZGVyQnVmZmVyRGlyZWN0KGEsbnVsbCxvLGUsbixudWxsKX19Y29uc3QgbD1uLmNoaWxkcmVuO2ZvcihsZXQgdD0wLGU9bC5sZW5ndGg7dDxlO3QrKylfKGxbdF0saSxhLHIscyl9dGhpcy5lbmFibGVkPSExLHRoaXMuYXV0b1VwZGF0ZT0hMCx0aGlzLm5lZWRzVXBkYXRlPSExLHRoaXMudHlwZT0xLHRoaXMucmVuZGVyPWZ1bmN0aW9uKGUsbixzKXtpZighMT09PWguZW5hYmxlZClyZXR1cm47aWYoITE9PT1oLmF1dG9VcGRhdGUmJiExPT09aC5uZWVkc1VwZGF0ZSlyZXR1cm47aWYoMD09PWUubGVuZ3RoKXJldHVybjtjb25zdCBsPXQuZ2V0UmVuZGVyVGFyZ2V0KCksYz10LmdldEFjdGl2ZUN1YmVGYWNlKCkscD10LmdldEFjdGl2ZU1pcG1hcExldmVsKCksbT10LnN0YXRlO20uc2V0QmxlbmRpbmcoMCksbS5idWZmZXJzLmNvbG9yLnNldENsZWFyKDEsMSwxLDEpLG0uYnVmZmVycy5kZXB0aC5zZXRUZXN0KCEwKSxtLnNldFNjaXNzb3JUZXN0KCExKTtmb3IobGV0IGw9MCxjPWUubGVuZ3RoO2w8YztsKyspe2NvbnN0IGM9ZVtsXSxwPWMuc2hhZG93O2lmKHZvaWQgMD09PXApe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xTaGFkb3dNYXA6IixjLCJoYXMgbm8gc2hhZG93LiIpO2NvbnRpbnVlfWlmKCExPT09cC5hdXRvVXBkYXRlJiYhMT09PXAubmVlZHNVcGRhdGUpY29udGludWU7aS5jb3B5KHAubWFwU2l6ZSk7Y29uc3QgdT1wLmdldEZyYW1lRXh0ZW50cygpO2lmKGkubXVsdGlwbHkodSksYS5jb3B5KHAubWFwU2l6ZSksKGkueD5kfHxpLnk+ZCkmJihpLng+ZCYmKGEueD1NYXRoLmZsb29yKGQvdS54KSxpLng9YS54KnUueCxwLm1hcFNpemUueD1hLngpLGkueT5kJiYoYS55PU1hdGguZmxvb3IoZC91LnkpLGkueT1hLnkqdS55LHAubWFwU2l6ZS55PWEueSkpLG51bGw9PT1wLm1hcCYmIXAuaXNQb2ludExpZ2h0U2hhZG93JiYzPT09dGhpcy50eXBlKXtjb25zdCB0PXttaW5GaWx0ZXI6Yml0LG1hZ0ZpbHRlcjpiaXQsZm9ybWF0OndpdH07cC5tYXA9bmV3IHJhdChpLngsaS55LHQpLHAubWFwLnRleHR1cmUubmFtZT1jLm5hbWUrIi5zaGFkb3dNYXAiLHAubWFwUGFzcz1uZXcgcmF0KGkueCxpLnksdCkscC5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfW51bGw9PT1wLm1hcCYmKHAubWFwPW5ldyByYXQoaS54LGkueSx7bWluRmlsdGVyOmhpdCxtYWdGaWx0ZXI6aGl0LGZvcm1hdDp3aXR9KSxwLm1hcC50ZXh0dXJlLm5hbWU9Yy5uYW1lKyIuc2hhZG93TWFwIixwLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkpLHQuc2V0UmVuZGVyVGFyZ2V0KHAubWFwKSx0LmNsZWFyKCk7Y29uc3QgZj1wLmdldFZpZXdwb3J0Q291bnQoKTtmb3IobGV0IHQ9MDt0PGY7dCsrKXtjb25zdCBlPXAuZ2V0Vmlld3BvcnQodCk7ci5zZXQoYS54KmUueCxhLnkqZS55LGEueCplLnosYS55KmUudyksbS52aWV3cG9ydChyKSxwLnVwZGF0ZU1hdHJpY2VzKGMsdCksbz1wLmdldEZydXN0dW0oKSxfKG4scyxwLmNhbWVyYSxjLHRoaXMudHlwZSl9cC5pc1BvaW50TGlnaHRTaGFkb3d8fDMhPT10aGlzLnR5cGV8fGIocCxzKSxwLm5lZWRzVXBkYXRlPSExfWgubmVlZHNVcGRhdGU9ITEsdC5zZXRSZW5kZXJUYXJnZXQobCxjLHApfX1mdW5jdGlvbiBsZHQodCxlLG4pe2NvbnN0IG89bi5pc1dlYkdMMixpPW5ldyhmdW5jdGlvbiBhKCl7bGV0IGU9ITE7Y29uc3Qgbj1uZXcgYWF0O2xldCBvPW51bGw7Y29uc3QgaT1uZXcgYWF0KDAsMCwwLDApO3JldHVybntzZXRNYXNrOmZ1bmN0aW9uKG4pe289PT1ufHxlfHwodC5jb2xvck1hc2sobixuLG4sbiksbz1uKX0sc2V0TG9ja2VkOmZ1bmN0aW9uKHQpe2U9dH0sc2V0Q2xlYXI6ZnVuY3Rpb24oZSxvLGEscixzKXshMD09PXMmJihlKj1yLG8qPXIsYSo9ciksbi5zZXQoZSxvLGEsciksITE9PT1pLmVxdWFscyhuKSYmKHQuY2xlYXJDb2xvcihlLG8sYSxyKSxpLmNvcHkobikpfSxyZXNldDpmdW5jdGlvbigpe2U9ITEsbz1udWxsLGkuc2V0KC0xLDAsMCwwKX19fSkscj1uZXcoZnVuY3Rpb24gcygpe2xldCBlPSExLG49bnVsbCxvPW51bGwsaT1udWxsO3JldHVybntzZXRUZXN0OmZ1bmN0aW9uKHQpe3Q/QigyOTI5KTpWKDI5MjkpfSxzZXRNYXNrOmZ1bmN0aW9uKG8pe249PT1vfHxlfHwodC5kZXB0aE1hc2sobyksbj1vKX0sc2V0RnVuYzpmdW5jdGlvbihlKXtpZihvIT09ZSl7aWYoZSlzd2l0Y2goZSl7Y2FzZSAwOnQuZGVwdGhGdW5jKDUxMik7YnJlYWs7Y2FzZSAxOnQuZGVwdGhGdW5jKDUxOSk7YnJlYWs7Y2FzZSAyOnQuZGVwdGhGdW5jKDUxMyk7YnJlYWs7Y2FzZSAzOnQuZGVwdGhGdW5jKDUxNSk7YnJlYWs7Y2FzZSA0OnQuZGVwdGhGdW5jKDUxNCk7YnJlYWs7Y2FzZSA1OnQuZGVwdGhGdW5jKDUxOCk7YnJlYWs7Y2FzZSA2OnQuZGVwdGhGdW5jKDUxNik7YnJlYWs7Y2FzZSA3OnQuZGVwdGhGdW5jKDUxNyk7YnJlYWs7ZGVmYXVsdDp0LmRlcHRoRnVuYyg1MTUpfWVsc2UgdC5kZXB0aEZ1bmMoNTE1KTtvPWV9fSxzZXRMb2NrZWQ6ZnVuY3Rpb24odCl7ZT10fSxzZXRDbGVhcjpmdW5jdGlvbihlKXtpIT09ZSYmKHQuY2xlYXJEZXB0aChlKSxpPWUpfSxyZXNldDpmdW5jdGlvbigpe2U9ITEsbj1udWxsLG89bnVsbCxpPW51bGx9fX0pLGw9bmV3KGZ1bmN0aW9uIGMoKXtsZXQgZT0hMSxuPW51bGwsbz1udWxsLGk9bnVsbCxhPW51bGwscj1udWxsLHM9bnVsbCxsPW51bGwsYz1udWxsO3JldHVybntzZXRUZXN0OmZ1bmN0aW9uKHQpe2V8fCh0P0IoMjk2MCk6VigyOTYwKSl9LHNldE1hc2s6ZnVuY3Rpb24obyl7bj09PW98fGV8fCh0LnN0ZW5jaWxNYXNrKG8pLG49byl9LHNldEZ1bmM6ZnVuY3Rpb24oZSxuLHIpe289PT1lJiZpPT09biYmYT09PXJ8fCh0LnN0ZW5jaWxGdW5jKGUsbixyKSxvPWUsaT1uLGE9cil9LHNldE9wOmZ1bmN0aW9uKGUsbixvKXtyPT09ZSYmcz09PW4mJmw9PT1vfHwodC5zdGVuY2lsT3AoZSxuLG8pLHI9ZSxzPW4sbD1vKX0sc2V0TG9ja2VkOmZ1bmN0aW9uKHQpe2U9dH0sc2V0Q2xlYXI6ZnVuY3Rpb24oZSl7YyE9PWUmJih0LmNsZWFyU3RlbmNpbChlKSxjPWUpfSxyZXNldDpmdW5jdGlvbigpe2U9ITEsbj1udWxsLG89bnVsbCxpPW51bGwsYT1udWxsLHI9bnVsbCxzPW51bGwsbD1udWxsLGM9bnVsbH19fSk7bGV0IGQ9e30scD1udWxsLG09e30sdT1udWxsLGY9ITEsZz1udWxsLGg9bnVsbCxiPW51bGwseT1udWxsLF89bnVsbCxDPW51bGwsTT1udWxsLHY9ITEseD1udWxsLE89bnVsbCxQPW51bGwsdz1udWxsLGs9bnVsbDtjb25zdCBTPXQuZ2V0UGFyYW1ldGVyKDM1NjYxKTtsZXQgRD0hMSxFPTA7Y29uc3QgUj10LmdldFBhcmFtZXRlcig3OTM4KTstMSE9PVIuaW5kZXhPZigiV2ViR0wiKT8oRT1wYXJzZUZsb2F0KC9eV2ViR0wgKFxkKS8uZXhlYyhSKVsxXSksRD1FPj0xKTotMSE9PVIuaW5kZXhPZigiT3BlbkdMIEVTIikmJihFPXBhcnNlRmxvYXQoL15PcGVuR0wgRVMgKFxkKS8uZXhlYyhSKVsxXSksRD1FPj0yKTtsZXQgQT1udWxsLFQ9e307Y29uc3QgTj10LmdldFBhcmFtZXRlcigzMDg4KSx6PXQuZ2V0UGFyYW1ldGVyKDI5NzgpLEk9KG5ldyBhYXQpLmZyb21BcnJheShOKSxIPShuZXcgYWF0KS5mcm9tQXJyYXkoeik7ZnVuY3Rpb24gRihlLG4sbyl7Y29uc3QgaT1uZXcgVWludDhBcnJheSg0KSxhPXQuY3JlYXRlVGV4dHVyZSgpO3QuYmluZFRleHR1cmUoZSxhKSx0LnRleFBhcmFtZXRlcmkoZSwxMDI0MSw5NzI4KSx0LnRleFBhcmFtZXRlcmkoZSwxMDI0MCw5NzI4KTtmb3IobGV0IGU9MDtlPG87ZSsrKXQudGV4SW1hZ2UyRChuK2UsMCw2NDA4LDEsMSwwLDY0MDgsNTEyMSxpKTtyZXR1cm4gYX1jb25zdCBMPXt9O2Z1bmN0aW9uIEIoZSl7ITAhPT1kW2VdJiYodC5lbmFibGUoZSksZFtlXT0hMCl9ZnVuY3Rpb24gVihlKXshMSE9PWRbZV0mJih0LmRpc2FibGUoZSksZFtlXT0hMSl9TFszNTUzXT1GKDM1NTMsMzU1MywxKSxMWzM0MDY3XT1GKDM0MDY3LDM0MDY5LDYpLGkuc2V0Q2xlYXIoMCwwLDAsMSksci5zZXRDbGVhcigxKSxsLnNldENsZWFyKDApLEIoMjkyOSksci5zZXRGdW5jKDMpLFcoITEpLFkoMSksQigyODg0KSxHKDApO2NvbnN0IGo9e1tjaXRdOjMyNzc0LDEwMTozMjc3OCwxMDI6MzI3Nzl9O2lmKG8palsxMDNdPTMyNzc1LGpbMTA0XT0zMjc3NjtlbHNle2NvbnN0IHQ9ZS5nZXQoIkVYVF9ibGVuZF9taW5tYXgiKTtudWxsIT09dCYmKGpbMTAzXT10Lk1JTl9FWFQsalsxMDRdPXQuTUFYX0VYVCl9Y29uc3QgVT17MjAwOjAsMjAxOjEsMjAyOjc2OCwyMDQ6NzcwLDIxMDo3NzYsMjA4Ojc3NCwyMDY6NzcyLDIwMzo3NjksMjA1Ojc3MSwyMDk6Nzc1LDIwNzo3NzN9O2Z1bmN0aW9uIEcoZSxuLG8saSxhLHIscyxsKXtpZigwIT09ZSl7aWYoITE9PT1mJiYoQigzMDQyKSxmPSEwKSw1PT09ZSlhPWF8fG4scj1yfHxvLHM9c3x8aSxuPT09aCYmYT09PV98fCh0LmJsZW5kRXF1YXRpb25TZXBhcmF0ZShqW25dLGpbYV0pLGg9bixfPWEpLG89PT1iJiZpPT09eSYmcj09PUMmJnM9PT1NfHwodC5ibGVuZEZ1bmNTZXBhcmF0ZShVW29dLFVbaV0sVVtyXSxVW3NdKSxiPW8seT1pLEM9cixNPXMpLGc9ZSx2PW51bGw7ZWxzZSBpZihlIT09Z3x8bCE9PXYpe2lmKGg9PT1jaXQmJl89PT1jaXR8fCh0LmJsZW5kRXF1YXRpb24oMzI3NzQpLGg9Y2l0LF89Y2l0KSxsKXN3aXRjaChlKXtjYXNlIDE6dC5ibGVuZEZ1bmNTZXBhcmF0ZSgxLDc3MSwxLDc3MSk7YnJlYWs7Y2FzZSAyOnQuYmxlbmRGdW5jKDEsMSk7YnJlYWs7Y2FzZSAzOnQuYmxlbmRGdW5jU2VwYXJhdGUoMCwwLDc2OSw3NzEpO2JyZWFrO2Nhc2UgNDp0LmJsZW5kRnVuY1NlcGFyYXRlKDAsNzY4LDAsNzcwKTticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IEludmFsaWQgYmxlbmRpbmc6ICIsZSl9ZWxzZSBzd2l0Y2goZSl7Y2FzZSAxOnQuYmxlbmRGdW5jU2VwYXJhdGUoNzcwLDc3MSwxLDc3MSk7YnJlYWs7Y2FzZSAyOnQuYmxlbmRGdW5jKDc3MCwxKTticmVhaztjYXNlIDM6dC5ibGVuZEZ1bmMoMCw3NjkpO2JyZWFrO2Nhc2UgNDp0LmJsZW5kRnVuYygwLDc2OCk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiBJbnZhbGlkIGJsZW5kaW5nOiAiLGUpfWI9bnVsbCx5PW51bGwsQz1udWxsLE09bnVsbCxnPWUsdj1sfX1lbHNlITA9PT1mJiYoVigzMDQyKSxmPSExKX1mdW5jdGlvbiBXKGUpe3ghPT1lJiYodC5mcm9udEZhY2UoZT8yMzA0OjIzMDUpLHg9ZSl9ZnVuY3Rpb24gWShlKXswIT09ZT8oQigyODg0KSxlIT09TyYmdC5jdWxsRmFjZSgxPT09ZT8xMDI5OjI9PT1lPzEwMjg6MTAzMikpOlYoMjg4NCksTz1lfWZ1bmN0aW9uIHEoZSxuLG8pe2U/KEIoMzI4MjMpLHc9PT1uJiZrPT09b3x8KHQucG9seWdvbk9mZnNldChuLG8pLHc9bixrPW8pKTpWKDMyODIzKX1mdW5jdGlvbiBaKGUpe3ZvaWQgMD09PWUmJihlPTMzOTg0K1MtMSksQSE9PWUmJih0LmFjdGl2ZVRleHR1cmUoZSksQT1lKX1yZXR1cm57YnVmZmVyczp7Y29sb3I6aSxkZXB0aDpyLHN0ZW5jaWw6bH0sZW5hYmxlOkIsZGlzYWJsZTpWLGJpbmRGcmFtZWJ1ZmZlcjpmdW5jdGlvbiBYKGUsbil7cmV0dXJuIG51bGw9PT1uJiZudWxsIT09cCYmKG49cCksbVtlXSE9PW4mJih0LmJpbmRGcmFtZWJ1ZmZlcihlLG4pLG1bZV09bixvJiYoMzYwMDk9PT1lJiYobVszNjE2MF09biksMzYxNjA9PT1lJiYobVszNjAwOV09bikpLCEwKX0sYmluZFhSRnJhbWVidWZmZXI6ZnVuY3Rpb24gSyhlKXtlIT09cCYmKHQuYmluZEZyYW1lYnVmZmVyKDM2MTYwLGUpLHA9ZSl9LHVzZVByb2dyYW06ZnVuY3Rpb24gSihlKXtyZXR1cm4gdSE9PWUmJih0LnVzZVByb2dyYW0oZSksdT1lLCEwKX0sc2V0QmxlbmRpbmc6RyxzZXRNYXRlcmlhbDpmdW5jdGlvbiBRKHQsZSl7Mj09PXQuc2lkZT9WKDI4ODQpOkIoMjg4NCk7bGV0IG49MT09PXQuc2lkZTtlJiYobj0hbiksVyhuKSwxPT09dC5ibGVuZGluZyYmITE9PT10LnRyYW5zcGFyZW50P0coMCk6Ryh0LmJsZW5kaW5nLHQuYmxlbmRFcXVhdGlvbix0LmJsZW5kU3JjLHQuYmxlbmREc3QsdC5ibGVuZEVxdWF0aW9uQWxwaGEsdC5ibGVuZFNyY0FscGhhLHQuYmxlbmREc3RBbHBoYSx0LnByZW11bHRpcGxpZWRBbHBoYSksci5zZXRGdW5jKHQuZGVwdGhGdW5jKSxyLnNldFRlc3QodC5kZXB0aFRlc3QpLHIuc2V0TWFzayh0LmRlcHRoV3JpdGUpLGkuc2V0TWFzayh0LmNvbG9yV3JpdGUpO2NvbnN0IG89dC5zdGVuY2lsV3JpdGU7bC5zZXRUZXN0KG8pLG8mJihsLnNldE1hc2sodC5zdGVuY2lsV3JpdGVNYXNrKSxsLnNldEZ1bmModC5zdGVuY2lsRnVuYyx0LnN0ZW5jaWxSZWYsdC5zdGVuY2lsRnVuY01hc2spLGwuc2V0T3AodC5zdGVuY2lsRmFpbCx0LnN0ZW5jaWxaRmFpbCx0LnN0ZW5jaWxaUGFzcykpLHEodC5wb2x5Z29uT2Zmc2V0LHQucG9seWdvbk9mZnNldEZhY3Rvcix0LnBvbHlnb25PZmZzZXRVbml0cyksITA9PT10LmFscGhhVG9Db3ZlcmFnZT9CKDMyOTI2KTpWKDMyOTI2KX0sc2V0RmxpcFNpZGVkOlcsc2V0Q3VsbEZhY2U6WSxzZXRMaW5lV2lkdGg6ZnVuY3Rpb24gJChlKXtlIT09UCYmKEQmJnQubGluZVdpZHRoKGUpLFA9ZSl9LHNldFBvbHlnb25PZmZzZXQ6cSxzZXRTY2lzc29yVGVzdDpmdW5jdGlvbiB0dCh0KXt0P0IoMzA4OSk6VigzMDg5KX0sYWN0aXZlVGV4dHVyZTpaLGJpbmRUZXh0dXJlOmZ1bmN0aW9uIGV0KGUsbil7bnVsbD09PUEmJlooKTtsZXQgbz1UW0FdO3ZvaWQgMD09PW8mJihvPXt0eXBlOnZvaWQgMCx0ZXh0dXJlOnZvaWQgMH0sVFtBXT1vKSxvLnR5cGU9PT1lJiZvLnRleHR1cmU9PT1ufHwodC5iaW5kVGV4dHVyZShlLG58fExbZV0pLG8udHlwZT1lLG8udGV4dHVyZT1uKX0sdW5iaW5kVGV4dHVyZTpmdW5jdGlvbiBudCgpe2NvbnN0IGU9VFtBXTt2b2lkIDAhPT1lJiZ2b2lkIDAhPT1lLnR5cGUmJih0LmJpbmRUZXh0dXJlKGUudHlwZSxudWxsKSxlLnR5cGU9dm9pZCAwLGUudGV4dHVyZT12b2lkIDApfSxjb21wcmVzc2VkVGV4SW1hZ2UyRDpmdW5jdGlvbiBvdCgpe3RyeXt0LmNvbXByZXNzZWRUZXhJbWFnZTJELmFwcGx5KHQsYXJndW1lbnRzKX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsdCl9fSx0ZXhJbWFnZTJEOmZ1bmN0aW9uIGl0KCl7dHJ5e3QudGV4SW1hZ2UyRC5hcHBseSh0LGFyZ3VtZW50cyl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLHQpfX0sdGV4SW1hZ2UzRDpmdW5jdGlvbiBhdCgpe3RyeXt0LnRleEltYWdlM0QuYXBwbHkodCxhcmd1bWVudHMpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6Iix0KX19LHNjaXNzb3I6ZnVuY3Rpb24gcnQoZSl7ITE9PT1JLmVxdWFscyhlKSYmKHQuc2Npc3NvcihlLngsZS55LGUueixlLncpLEkuY29weShlKSl9LHZpZXdwb3J0OmZ1bmN0aW9uIHN0KGUpeyExPT09SC5lcXVhbHMoZSkmJih0LnZpZXdwb3J0KGUueCxlLnksZS56LGUudyksSC5jb3B5KGUpKX0scmVzZXQ6ZnVuY3Rpb24gbHQoKXt0LmRpc2FibGUoMzA0MiksdC5kaXNhYmxlKDI4ODQpLHQuZGlzYWJsZSgyOTI5KSx0LmRpc2FibGUoMzI4MjMpLHQuZGlzYWJsZSgzMDg5KSx0LmRpc2FibGUoMjk2MCksdC5kaXNhYmxlKDMyOTI2KSx0LmJsZW5kRXF1YXRpb24oMzI3NzQpLHQuYmxlbmRGdW5jKDEsMCksdC5ibGVuZEZ1bmNTZXBhcmF0ZSgxLDAsMSwwKSx0LmNvbG9yTWFzayghMCwhMCwhMCwhMCksdC5jbGVhckNvbG9yKDAsMCwwLDApLHQuZGVwdGhNYXNrKCEwKSx0LmRlcHRoRnVuYyg1MTMpLHQuY2xlYXJEZXB0aCgxKSx0LnN0ZW5jaWxNYXNrKDQyOTQ5NjcyOTUpLHQuc3RlbmNpbEZ1bmMoNTE5LDAsNDI5NDk2NzI5NSksdC5zdGVuY2lsT3AoNzY4MCw3NjgwLDc2ODApLHQuY2xlYXJTdGVuY2lsKDApLHQuY3VsbEZhY2UoMTAyOSksdC5mcm9udEZhY2UoMjMwNSksdC5wb2x5Z29uT2Zmc2V0KDAsMCksdC5hY3RpdmVUZXh0dXJlKDMzOTg0KSx0LmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxudWxsKSwhMD09PW8mJih0LmJpbmRGcmFtZWJ1ZmZlcigzNjAwOSxudWxsKSx0LmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxudWxsKSksdC51c2VQcm9ncmFtKG51bGwpLHQubGluZVdpZHRoKDEpLHQuc2Npc3NvcigwLDAsdC5jYW52YXMud2lkdGgsdC5jYW52YXMuaGVpZ2h0KSx0LnZpZXdwb3J0KDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLGQ9e30sQT1udWxsLFQ9e30scD1udWxsLG09e30sdT1udWxsLGY9ITEsZz1udWxsLGg9bnVsbCxiPW51bGwseT1udWxsLF89bnVsbCxDPW51bGwsTT1udWxsLHY9ITEseD1udWxsLE89bnVsbCxQPW51bGwsdz1udWxsLGs9bnVsbCxJLnNldCgwLDAsdC5jYW52YXMud2lkdGgsdC5jYW52YXMuaGVpZ2h0KSxILnNldCgwLDAsdC5jYW52YXMud2lkdGgsdC5jYW52YXMuaGVpZ2h0KSxpLnJlc2V0KCksci5yZXNldCgpLGwucmVzZXQoKX19fWZ1bmN0aW9uIGNkdCh0LGUsbixvLGksYSxyKXtjb25zdCBzPWkuaXNXZWJHTDIsbD1pLm1heFRleHR1cmVzLGM9aS5tYXhDdWJlbWFwU2l6ZSxkPWkubWF4VGV4dHVyZVNpemUscD1pLm1heFNhbXBsZXMsbT1uZXcgV2Vha01hcDtsZXQgdSxmPSExO3RyeXtmPSJ1bmRlZmluZWQiIT10eXBlb2YgT2Zmc2NyZWVuQ2FudmFzJiZudWxsIT09bmV3IE9mZnNjcmVlbkNhbnZhcygxLDEpLmdldENvbnRleHQoIjJkIil9Y2F0Y2godCl7fWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4gZj9uZXcgT2Zmc2NyZWVuQ2FudmFzKHQsZSk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiY2FudmFzIil9ZnVuY3Rpb24gaCh0LGUsbixvKXtsZXQgaT0xO2lmKCh0LndpZHRoPm98fHQuaGVpZ2h0Pm8pJiYoaT1vL01hdGgubWF4KHQud2lkdGgsdC5oZWlnaHQpKSxpPDF8fCEwPT09ZSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MSW1hZ2VFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCYmdCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEltYWdlQml0bWFwJiZ0IGluc3RhbmNlb2YgSW1hZ2VCaXRtYXApe2NvbnN0IG89ZT9KaXQ6TWF0aC5mbG9vcixhPW8oaSp0LndpZHRoKSxyPW8oaSp0LmhlaWdodCk7dm9pZCAwPT09dSYmKHU9ZyhhLHIpKTtjb25zdCBzPW4/ZyhhLHIpOnU7cmV0dXJuIHMud2lkdGg9YSxzLmhlaWdodD1yLHMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UodCwwLDAsYSxyKSxjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaGFzIGJlZW4gcmVzaXplZCBmcm9tICgiK3Qud2lkdGgrIngiK3QuaGVpZ2h0KyIpIHRvICgiK2ErIngiK3IrIikuIiksc31yZXR1cm4iZGF0YSJpbiB0JiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEltYWdlIGluIERhdGFUZXh0dXJlIGlzIHRvbyBiaWcgKCIrdC53aWR0aCsieCIrdC5oZWlnaHQrIikuIiksdH1yZXR1cm4gdH1mdW5jdGlvbiBiKHQpe3JldHVybiBLaXQodC53aWR0aCkmJktpdCh0LmhlaWdodCl9ZnVuY3Rpb24geSh0LGUpe3JldHVybiB0LmdlbmVyYXRlTWlwbWFwcyYmZSYmdC5taW5GaWx0ZXIhPT1oaXQmJnQubWluRmlsdGVyIT09Yml0fWZ1bmN0aW9uIF8oZSxuLGksYSxyPTEpe3QuZ2VuZXJhdGVNaXBtYXAoZSksby5nZXQobikuX19tYXhNaXBMZXZlbD1NYXRoLmxvZzIoTWF0aC5tYXgoaSxhLHIpKX1mdW5jdGlvbiBDKG4sbyxpKXtpZighMT09PXMpcmV0dXJuIG87aWYobnVsbCE9PW4pe2lmKHZvaWQgMCE9PXRbbl0pcmV0dXJuIHRbbl07Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBBdHRlbXB0IHRvIHVzZSBub24tZXhpc3RpbmcgV2ViR0wgaW50ZXJuYWwgZm9ybWF0ICciK24rIiciKX1sZXQgYT1vO3JldHVybiA2NDAzPT09byYmKDUxMjY9PT1pJiYoYT0zMzMyNiksNTEzMT09PWkmJihhPTMzMzI1KSw1MTIxPT09aSYmKGE9MzMzMjEpKSw2NDA3PT09byYmKDUxMjY9PT1pJiYoYT0zNDgzNyksNTEzMT09PWkmJihhPTM0ODQzKSw1MTIxPT09aSYmKGE9MzI4NDkpKSw2NDA4PT09byYmKDUxMjY9PT1pJiYoYT0zNDgzNiksNTEzMT09PWkmJihhPTM0ODQyKSw1MTIxPT09aSYmKGE9MzI4NTYpKSwzMzMyNSE9PWEmJjMzMzI2IT09YSYmMzQ4NDIhPT1hJiYzNDgzNiE9PWF8fGUuZ2V0KCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0IiksYX1mdW5jdGlvbiBNKHQpe3JldHVybiB0PT09aGl0fHwxMDA0PT09dHx8MTAwNT09PXQ/OTcyODo5NzI5fWZ1bmN0aW9uIHYoZSl7Y29uc3Qgbj1lLnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHYpLChmdW5jdGlvbiBpKGUpe2NvbnN0IG49by5nZXQoZSk7dm9pZCAwIT09bi5fX3dlYmdsSW5pdCYmKHQuZGVsZXRlVGV4dHVyZShuLl9fd2ViZ2xUZXh0dXJlKSxvLnJlbW92ZShlKSl9KShuKSxuLmlzVmlkZW9UZXh0dXJlJiZtLmRlbGV0ZShuKSxyLm1lbW9yeS50ZXh0dXJlcy0tfWZ1bmN0aW9uIHgoZSl7Y29uc3Qgbj1lLnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHgpLChmdW5jdGlvbiBpKGUpe2NvbnN0IG49ZS50ZXh0dXJlLGk9by5nZXQoZSksYT1vLmdldChuKTtpZihlKXtpZih2b2lkIDAhPT1hLl9fd2ViZ2xUZXh0dXJlJiYodC5kZWxldGVUZXh0dXJlKGEuX193ZWJnbFRleHR1cmUpLHIubWVtb3J5LnRleHR1cmVzLS0pLGUuZGVwdGhUZXh0dXJlJiZlLmRlcHRoVGV4dHVyZS5kaXNwb3NlKCksZS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldClmb3IobGV0IGU9MDtlPDY7ZSsrKXQuZGVsZXRlRnJhbWVidWZmZXIoaS5fX3dlYmdsRnJhbWVidWZmZXJbZV0pLGkuX193ZWJnbERlcHRoYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihpLl9fd2ViZ2xEZXB0aGJ1ZmZlcltlXSk7ZWxzZSB0LmRlbGV0ZUZyYW1lYnVmZmVyKGkuX193ZWJnbEZyYW1lYnVmZmVyKSxpLl9fd2ViZ2xEZXB0aGJ1ZmZlciYmdC5kZWxldGVSZW5kZXJidWZmZXIoaS5fX3dlYmdsRGVwdGhidWZmZXIpLGkuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyJiZ0LmRlbGV0ZUZyYW1lYnVmZmVyKGkuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKSxpLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciYmdC5kZWxldGVSZW5kZXJidWZmZXIoaS5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpLGkuX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihpLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcik7aWYoZS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzKWZvcihsZXQgZT0wLGk9bi5sZW5ndGg7ZTxpO2UrKyl7Y29uc3QgaT1vLmdldChuW2VdKTtpLl9fd2ViZ2xUZXh0dXJlJiYodC5kZWxldGVUZXh0dXJlKGkuX193ZWJnbFRleHR1cmUpLHIubWVtb3J5LnRleHR1cmVzLS0pLG8ucmVtb3ZlKG5bZV0pfW8ucmVtb3ZlKG4pLG8ucmVtb3ZlKGUpfX0pKG4pfWxldCBPPTA7ZnVuY3Rpb24gUCh0LGUpe2NvbnN0IGk9by5nZXQodCk7aWYodC5pc1ZpZGVvVGV4dHVyZSYmKGZ1bmN0aW9uIGEodCl7Y29uc3QgZT1yLnJlbmRlci5mcmFtZTttLmdldCh0KSE9PWUmJihtLnNldCh0LGUpLHQudXBkYXRlKCkpfSkodCksdC52ZXJzaW9uPjAmJmkuX192ZXJzaW9uIT09dC52ZXJzaW9uKXtjb25zdCBuPXQuaW1hZ2U7aWYodm9pZCAwPT09biljb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgbWFya2VkIGZvciB1cGRhdGUgYnV0IGltYWdlIGlzIHVuZGVmaW5lZCIpO2Vsc2V7aWYoITEhPT1uLmNvbXBsZXRlKXJldHVybiB2b2lkIFIoaSx0LGUpO2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBtYXJrZWQgZm9yIHVwZGF0ZSBidXQgaW1hZ2UgaXMgaW5jb21wbGV0ZSIpfX1uLmFjdGl2ZVRleHR1cmUoMzM5ODQrZSksbi5iaW5kVGV4dHVyZSgzNTUzLGkuX193ZWJnbFRleHR1cmUpfWZ1bmN0aW9uIHcoZSxpKXtjb25zdCByPW8uZ2V0KGUpO2UudmVyc2lvbj4wJiZyLl9fdmVyc2lvbiE9PWUudmVyc2lvbj8oZnVuY3Rpb24gbChlLG8saSl7aWYoNiE9PW8uaW1hZ2UubGVuZ3RoKXJldHVybjtFKGUsbyksbi5hY3RpdmVUZXh0dXJlKDMzOTg0K2kpLG4uYmluZFRleHR1cmUoMzQwNjcsZS5fX3dlYmdsVGV4dHVyZSksdC5waXhlbFN0b3JlaSgzNzQ0MCxvLmZsaXBZKSx0LnBpeGVsU3RvcmVpKDM3NDQxLG8ucHJlbXVsdGlwbHlBbHBoYSksdC5waXhlbFN0b3JlaSgzMzE3LG8udW5wYWNrQWxpZ25tZW50KSx0LnBpeGVsU3RvcmVpKDM3NDQzLDApO2NvbnN0IHI9byYmKG8uaXNDb21wcmVzc2VkVGV4dHVyZXx8by5pbWFnZVswXS5pc0NvbXByZXNzZWRUZXh0dXJlKSxsPW8uaW1hZ2VbMF0mJm8uaW1hZ2VbMF0uaXNEYXRhVGV4dHVyZSxkPVtdO2ZvcihsZXQgdD0wO3Q8Njt0KyspZFt0XT1yfHxsP2w/by5pbWFnZVt0XS5pbWFnZTpvLmltYWdlW3RdOmgoby5pbWFnZVt0XSwhMSwhMCxjKTtjb25zdCBwPWRbMF0sbT1iKHApfHxzLHU9YS5jb252ZXJ0KG8uZm9ybWF0KSxmPWEuY29udmVydChvLnR5cGUpLGc9QyhvLmludGVybmFsRm9ybWF0LHUsZik7bGV0IE07aWYoRCgzNDA2NyxvLG0pLHIpe2ZvcihsZXQgdD0wO3Q8Njt0Kyspe009ZFt0XS5taXBtYXBzO2ZvcihsZXQgZT0wO2U8TS5sZW5ndGg7ZSsrKXtjb25zdCBpPU1bZV07by5mb3JtYXQhPT13aXQmJm8uZm9ybWF0IT09UGl0P251bGwhPT11P24uY29tcHJlc3NlZFRleEltYWdlMkQoMzQwNjkrdCxlLGcsaS53aWR0aCxpLmhlaWdodCwwLGkuZGF0YSk6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBBdHRlbXB0IHRvIGxvYWQgdW5zdXBwb3J0ZWQgY29tcHJlc3NlZCB0ZXh0dXJlIGZvcm1hdCBpbiAuc2V0VGV4dHVyZUN1YmUoKSIpOm4udGV4SW1hZ2UyRCgzNDA2OSt0LGUsZyxpLndpZHRoLGkuaGVpZ2h0LDAsdSxmLGkuZGF0YSl9fWUuX19tYXhNaXBMZXZlbD1NLmxlbmd0aC0xfWVsc2V7TT1vLm1pcG1hcHM7Zm9yKGxldCB0PTA7dDw2O3QrKylpZihsKXtuLnRleEltYWdlMkQoMzQwNjkrdCwwLGcsZFt0XS53aWR0aCxkW3RdLmhlaWdodCwwLHUsZixkW3RdLmRhdGEpO2ZvcihsZXQgZT0wO2U8TS5sZW5ndGg7ZSsrKXtjb25zdCBvPU1bZV0uaW1hZ2VbdF0uaW1hZ2U7bi50ZXhJbWFnZTJEKDM0MDY5K3QsZSsxLGcsby53aWR0aCxvLmhlaWdodCwwLHUsZixvLmRhdGEpfX1lbHNle24udGV4SW1hZ2UyRCgzNDA2OSt0LDAsZyx1LGYsZFt0XSk7Zm9yKGxldCBlPTA7ZTxNLmxlbmd0aDtlKyspbi50ZXhJbWFnZTJEKDM0MDY5K3QsZSsxLGcsdSxmLE1bZV0uaW1hZ2VbdF0pfWUuX19tYXhNaXBMZXZlbD1NLmxlbmd0aH15KG8sbSkmJl8oMzQwNjcsbyxwLndpZHRoLHAuaGVpZ2h0KSxlLl9fdmVyc2lvbj1vLnZlcnNpb24sby5vblVwZGF0ZSYmby5vblVwZGF0ZShvKX0pKHIsZSxpKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K2kpLG4uYmluZFRleHR1cmUoMzQwNjcsci5fX3dlYmdsVGV4dHVyZSkpfWNvbnN0IGs9e1t1aXRdOjEwNDk3LFtmaXRdOjMzMDcxLFtnaXRdOjMzNjQ4fSxTPXtbaGl0XTo5NzI4LDEwMDQ6OTk4NCwxMDA1Ojk5ODYsW2JpdF06OTcyOSwxMDA3Ojk5ODUsW3lpdF06OTk4N307ZnVuY3Rpb24gRChuLGEscil7aWYocj8odC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDIsa1thLndyYXBTXSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsa1thLndyYXBUXSksMzI4NzkhPT1uJiYzNTg2NiE9PW58fHQudGV4UGFyYW1ldGVyaShuLDMyODgyLGtbYS53cmFwUl0pLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLFNbYS5tYWdGaWx0ZXJdKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSxTW2EubWluRmlsdGVyXSkpOih0LnRleFBhcmFtZXRlcmkobiwxMDI0MiwzMzA3MSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsMzMwNzEpLDMyODc5IT09biYmMzU4NjYhPT1ufHx0LnRleFBhcmFtZXRlcmkobiwzMjg4MiwzMzA3MSksYS53cmFwUz09PWZpdCYmYS53cmFwVD09PWZpdHx8Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIGlzIG5vdCBwb3dlciBvZiB0d28uIFRleHR1cmUud3JhcFMgYW5kIFRleHR1cmUud3JhcFQgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nLiIpLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLE0oYS5tYWdGaWx0ZXIpKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSxNKGEubWluRmlsdGVyKSksYS5taW5GaWx0ZXIhPT1oaXQmJmEubWluRmlsdGVyIT09Yml0JiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaXMgbm90IHBvd2VyIG9mIHR3by4gVGV4dHVyZS5taW5GaWx0ZXIgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5OZWFyZXN0RmlsdGVyIG9yIFRIUkVFLkxpbmVhckZpbHRlci4iKSksITA9PT1lLmhhcygiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpe2NvbnN0IHI9ZS5nZXQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO2lmKGEudHlwZT09PXZpdCYmITE9PT1lLmhhcygiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpcmV0dXJuO2lmKCExPT09cyYmYS50eXBlPT09eGl0JiYhMT09PWUuaGFzKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKXJldHVybjsoYS5hbmlzb3Ryb3B5PjF8fG8uZ2V0KGEpLl9fY3VycmVudEFuaXNvdHJvcHkpJiYodC50ZXhQYXJhbWV0ZXJmKG4sci5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCxNYXRoLm1pbihhLmFuaXNvdHJvcHksaS5nZXRNYXhBbmlzb3Ryb3B5KCkpKSxvLmdldChhKS5fX2N1cnJlbnRBbmlzb3Ryb3B5PWEuYW5pc290cm9weSl9fWZ1bmN0aW9uIEUoZSxuKXt2b2lkIDA9PT1lLl9fd2ViZ2xJbml0JiYoZS5fX3dlYmdsSW5pdD0hMCxuLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHYpLGUuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksci5tZW1vcnkudGV4dHVyZXMrKyl9ZnVuY3Rpb24gUihlLG8saSl7bGV0IHI9MzU1MztvLmlzRGF0YVRleHR1cmUyREFycmF5JiYocj0zNTg2Niksby5pc0RhdGFUZXh0dXJlM0QmJihyPTMyODc5KSxFKGUsbyksbi5hY3RpdmVUZXh0dXJlKDMzOTg0K2kpLG4uYmluZFRleHR1cmUocixlLl9fd2ViZ2xUZXh0dXJlKSx0LnBpeGVsU3RvcmVpKDM3NDQwLG8uZmxpcFkpLHQucGl4ZWxTdG9yZWkoMzc0NDEsby5wcmVtdWx0aXBseUFscGhhKSx0LnBpeGVsU3RvcmVpKDMzMTcsby51bnBhY2tBbGlnbm1lbnQpLHQucGl4ZWxTdG9yZWkoMzc0NDMsMCk7Y29uc3QgbD0oZnVuY3Rpb24gYyh0KXtyZXR1cm4hcyYmKHQud3JhcFMhPT1maXR8fHQud3JhcFQhPT1maXR8fHQubWluRmlsdGVyIT09aGl0JiZ0Lm1pbkZpbHRlciE9PWJpdCl9KShvKSYmITE9PT1iKG8uaW1hZ2UpLHA9aChvLmltYWdlLGwsITEsZCksbT1iKHApfHxzLHU9YS5jb252ZXJ0KG8uZm9ybWF0KTtsZXQgZixnPWEuY29udmVydChvLnR5cGUpLE09QyhvLmludGVybmFsRm9ybWF0LHUsZyk7RChyLG8sbSk7Y29uc3Qgdj1vLm1pcG1hcHM7aWYoby5pc0RlcHRoVGV4dHVyZSlNPTY0MDIscz9NPW8udHlwZT09PXZpdD8zNjAxMjpvLnR5cGU9PT1NaXQ/MzMxOTA6by50eXBlPT09T2l0PzM1MDU2OjMzMTg5Om8udHlwZT09PXZpdCYmY29uc29sZS5lcnJvcigiV2ViR0xSZW5kZXJlcjogRmxvYXRpbmcgcG9pbnQgZGVwdGggdGV4dHVyZSByZXF1aXJlcyBXZWJHTDIuIiksby5mb3JtYXQ9PT1raXQmJjY0MDI9PT1NJiZvLnR5cGUhPT1DaXQmJm8udHlwZSE9PU1pdCYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVXNlIFVuc2lnbmVkU2hvcnRUeXBlIG9yIFVuc2lnbmVkSW50VHlwZSBmb3IgRGVwdGhGb3JtYXQgRGVwdGhUZXh0dXJlLiIpLG8udHlwZT1DaXQsZz1hLmNvbnZlcnQoby50eXBlKSksby5mb3JtYXQ9PT1TaXQmJjY0MDI9PT1NJiYoTT0zNDA0MSxvLnR5cGUhPT1PaXQmJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFVzZSBVbnNpZ25lZEludDI0OFR5cGUgZm9yIERlcHRoU3RlbmNpbEZvcm1hdCBEZXB0aFRleHR1cmUuIiksby50eXBlPU9pdCxnPWEuY29udmVydChvLnR5cGUpKSksbi50ZXhJbWFnZTJEKDM1NTMsMCxNLHAud2lkdGgscC5oZWlnaHQsMCx1LGcsbnVsbCk7ZWxzZSBpZihvLmlzRGF0YVRleHR1cmUpaWYodi5sZW5ndGg+MCYmbSl7Zm9yKGxldCB0PTAsZT12Lmxlbmd0aDt0PGU7dCsrKWY9dlt0XSxuLnRleEltYWdlMkQoMzU1Myx0LE0sZi53aWR0aCxmLmhlaWdodCwwLHUsZyxmLmRhdGEpO28uZ2VuZXJhdGVNaXBtYXBzPSExLGUuX19tYXhNaXBMZXZlbD12Lmxlbmd0aC0xfWVsc2Ugbi50ZXhJbWFnZTJEKDM1NTMsMCxNLHAud2lkdGgscC5oZWlnaHQsMCx1LGcscC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKG8uaXNDb21wcmVzc2VkVGV4dHVyZSl7Zm9yKGxldCB0PTAsZT12Lmxlbmd0aDt0PGU7dCsrKWY9dlt0XSxvLmZvcm1hdCE9PXdpdCYmby5mb3JtYXQhPT1QaXQ/bnVsbCE9PXU/bi5jb21wcmVzc2VkVGV4SW1hZ2UyRCgzNTUzLHQsTSxmLndpZHRoLGYuaGVpZ2h0LDAsZi5kYXRhKTpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gbG9hZCB1bnN1cHBvcnRlZCBjb21wcmVzc2VkIHRleHR1cmUgZm9ybWF0IGluIC51cGxvYWRUZXh0dXJlKCkiKTpuLnRleEltYWdlMkQoMzU1Myx0LE0sZi53aWR0aCxmLmhlaWdodCwwLHUsZyxmLmRhdGEpO2UuX19tYXhNaXBMZXZlbD12Lmxlbmd0aC0xfWVsc2UgaWYoby5pc0RhdGFUZXh0dXJlMkRBcnJheSluLnRleEltYWdlM0QoMzU4NjYsMCxNLHAud2lkdGgscC5oZWlnaHQscC5kZXB0aCwwLHUsZyxwLmRhdGEpLGUuX19tYXhNaXBMZXZlbD0wO2Vsc2UgaWYoby5pc0RhdGFUZXh0dXJlM0Qpbi50ZXhJbWFnZTNEKDMyODc5LDAsTSxwLndpZHRoLHAuaGVpZ2h0LHAuZGVwdGgsMCx1LGcscC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKHYubGVuZ3RoPjAmJm0pe2ZvcihsZXQgdD0wLGU9di5sZW5ndGg7dDxlO3QrKylmPXZbdF0sbi50ZXhJbWFnZTJEKDM1NTMsdCxNLHUsZyxmKTtvLmdlbmVyYXRlTWlwbWFwcz0hMSxlLl9fbWF4TWlwTGV2ZWw9di5sZW5ndGgtMX1lbHNlIG4udGV4SW1hZ2UyRCgzNTUzLDAsTSx1LGcscCksZS5fX21heE1pcExldmVsPTA7eShvLG0pJiZfKHIsbyxwLndpZHRoLHAuaGVpZ2h0KSxlLl9fdmVyc2lvbj1vLnZlcnNpb24sby5vblVwZGF0ZSYmby5vblVwZGF0ZShvKX1mdW5jdGlvbiBBKGUsaSxyLHMsbCl7Y29uc3QgYz1hLmNvbnZlcnQoci5mb3JtYXQpLGQ9YS5jb252ZXJ0KHIudHlwZSkscD1DKHIuaW50ZXJuYWxGb3JtYXQsYyxkKTszMjg3OT09PWx8fDM1ODY2PT09bD9uLnRleEltYWdlM0QobCwwLHAsaS53aWR0aCxpLmhlaWdodCxpLmRlcHRoLDAsYyxkLG51bGwpOm4udGV4SW1hZ2UyRChsLDAscCxpLndpZHRoLGkuaGVpZ2h0LDAsYyxkLG51bGwpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLGUpLHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAscyxsLG8uZ2V0KHIpLl9fd2ViZ2xUZXh0dXJlLDApLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWZ1bmN0aW9uIFQoZSxuLG8pe2lmKHQuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxlKSxuLmRlcHRoQnVmZmVyJiYhbi5zdGVuY2lsQnVmZmVyKXtsZXQgaT0zMzE4OTtpZihvKXtjb25zdCBlPW4uZGVwdGhUZXh0dXJlO2UmJmUuaXNEZXB0aFRleHR1cmUmJihlLnR5cGU9PT12aXQ/aT0zNjAxMjplLnR5cGU9PT1NaXQmJihpPTMzMTkwKSk7Y29uc3Qgbz1OKG4pO3QucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLG8saSxuLndpZHRoLG4uaGVpZ2h0KX1lbHNlIHQucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxpLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzYwOTYsMzYxNjEsZSl9ZWxzZSBpZihuLmRlcHRoQnVmZmVyJiZuLnN0ZW5jaWxCdWZmZXIpe2lmKG8pe2NvbnN0IGU9TihuKTt0LnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSgzNjE2MSxlLDM1MDU2LG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLDM0MDQxLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzMzMDYsMzYxNjEsZSl9ZWxzZXtjb25zdCBlPSEwPT09bi5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzP24udGV4dHVyZVswXTpuLnRleHR1cmUsaT1hLmNvbnZlcnQoZS5mb3JtYXQpLHI9YS5jb252ZXJ0KGUudHlwZSkscz1DKGUuaW50ZXJuYWxGb3JtYXQsaSxyKTtpZihvKXtjb25zdCBlPU4obik7dC5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoMzYxNjEsZSxzLG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLHMsbi53aWR0aCxuLmhlaWdodCl9dC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpfWZ1bmN0aW9uIE4odCl7cmV0dXJuIHMmJnQuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0P01hdGgubWluKHAsdC5zYW1wbGVzKTowfWxldCB6PSExLEk9ITE7dGhpcy5hbGxvY2F0ZVRleHR1cmVVbml0PWZ1bmN0aW9uIEgoKXtjb25zdCB0PU87cmV0dXJuIHQ+PWwmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xUZXh0dXJlczogVHJ5aW5nIHRvIHVzZSAiK3QrIiB0ZXh0dXJlIHVuaXRzIHdoaWxlIHRoaXMgR1BVIHN1cHBvcnRzIG9ubHkgIitsKSxPKz0xLHR9LHRoaXMucmVzZXRUZXh0dXJlVW5pdHM9ZnVuY3Rpb24gRigpe089MH0sdGhpcy5zZXRUZXh0dXJlMkQ9UCx0aGlzLnNldFRleHR1cmUyREFycmF5PWZ1bmN0aW9uIEwodCxlKXtjb25zdCBpPW8uZ2V0KHQpO3QudmVyc2lvbj4wJiZpLl9fdmVyc2lvbiE9PXQudmVyc2lvbj9SKGksdCxlKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K2UpLG4uYmluZFRleHR1cmUoMzU4NjYsaS5fX3dlYmdsVGV4dHVyZSkpfSx0aGlzLnNldFRleHR1cmUzRD1mdW5jdGlvbiBCKHQsZSl7Y29uc3QgaT1vLmdldCh0KTt0LnZlcnNpb24+MCYmaS5fX3ZlcnNpb24hPT10LnZlcnNpb24/UihpLHQsZSk6KG4uYWN0aXZlVGV4dHVyZSgzMzk4NCtlKSxuLmJpbmRUZXh0dXJlKDMyODc5LGkuX193ZWJnbFRleHR1cmUpKX0sdGhpcy5zZXRUZXh0dXJlQ3ViZT13LHRoaXMuc2V0dXBSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24gVihlKXtjb25zdCBsPWUudGV4dHVyZSxjPW8uZ2V0KGUpLGQ9by5nZXQobCk7ZS5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIix4KSwhMCE9PWUuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyYmKGQuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksZC5fX3ZlcnNpb249bC52ZXJzaW9uLHIubWVtb3J5LnRleHR1cmVzKyspO2NvbnN0IHA9ITA9PT1lLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0LG09ITA9PT1lLmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMsdT0hMD09PWUuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0LGY9bC5pc0RhdGFUZXh0dXJlM0R8fGwuaXNEYXRhVGV4dHVyZTJEQXJyYXksZz1iKGUpfHxzO2lmKCFzfHxsLmZvcm1hdCE9PVBpdHx8bC50eXBlIT09dml0JiZsLnR5cGUhPT14aXR8fChsLmZvcm1hdD13aXQsY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBSZW5kZXJpbmcgdG8gdGV4dHVyZXMgd2l0aCBSR0IgZm9ybWF0IGlzIG5vdCBzdXBwb3J0ZWQuIFVzaW5nIFJHQkEgZm9ybWF0IGluc3RlYWQuIikpLHApe2MuX193ZWJnbEZyYW1lYnVmZmVyPVtdO2ZvcihsZXQgZT0wO2U8NjtlKyspYy5fX3dlYmdsRnJhbWVidWZmZXJbZV09dC5jcmVhdGVGcmFtZWJ1ZmZlcigpfWVsc2UgaWYoYy5fX3dlYmdsRnJhbWVidWZmZXI9dC5jcmVhdGVGcmFtZWJ1ZmZlcigpLG0paWYoaS5kcmF3QnVmZmVycyl7Y29uc3Qgbj1lLnRleHR1cmU7Zm9yKGxldCBlPTAsaT1uLmxlbmd0aDtlPGk7ZSsrKXtjb25zdCBpPW8uZ2V0KG5bZV0pO3ZvaWQgMD09PWkuX193ZWJnbFRleHR1cmUmJihpLl9fd2ViZ2xUZXh0dXJlPXQuY3JlYXRlVGV4dHVyZSgpLHIubWVtb3J5LnRleHR1cmVzKyspfX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMiBvciBXRUJHTF9kcmF3X2J1ZmZlcnMgZXh0ZW5zaW9uLiIpO2Vsc2UgaWYodSlpZihzKXtjLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcj10LmNyZWF0ZUZyYW1lYnVmZmVyKCksYy5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXI9dC5jcmVhdGVSZW5kZXJidWZmZXIoKSx0LmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsYy5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpO2NvbnN0IG89YS5jb252ZXJ0KGwuZm9ybWF0KSxpPWEuY29udmVydChsLnR5cGUpLHI9QyhsLmludGVybmFsRm9ybWF0LG8saSkscz1OKGUpO3QucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLHMscixlLndpZHRoLGUuaGVpZ2h0KSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxjLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlciksdC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigzNjE2MCwzNjA2NCwzNjE2MSxjLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciksdC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpLGUuZGVwdGhCdWZmZXImJihjLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLFQoYy5fX3dlYmdsRGVwdGhSZW5kZXJidWZmZXIsZSwhMCkpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIik7aWYocCl7bi5iaW5kVGV4dHVyZSgzNDA2NyxkLl9fd2ViZ2xUZXh0dXJlKSxEKDM0MDY3LGwsZyk7Zm9yKGxldCB0PTA7dDw2O3QrKylBKGMuX193ZWJnbEZyYW1lYnVmZmVyW3RdLGUsbCwzNjA2NCwzNDA2OSt0KTt5KGwsZykmJl8oMzQwNjcsbCxlLndpZHRoLGUuaGVpZ2h0KSxuLmJpbmRUZXh0dXJlKDM0MDY3LG51bGwpfWVsc2UgaWYobSl7Y29uc3QgdD1lLnRleHR1cmU7Zm9yKGxldCBpPTAsYT10Lmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPXRbaV0scj1vLmdldChhKTtuLmJpbmRUZXh0dXJlKDM1NTMsci5fX3dlYmdsVGV4dHVyZSksRCgzNTUzLGEsZyksQShjLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlLGEsMzYwNjQraSwzNTUzKSx5KGEsZykmJl8oMzU1MyxhLGUud2lkdGgsZS5oZWlnaHQpfW4uYmluZFRleHR1cmUoMzU1MyxudWxsKX1lbHNle2xldCB0PTM1NTM7ZiYmKHM/dD1sLmlzRGF0YVRleHR1cmUzRD8zMjg3OTozNTg2Njpjb25zb2xlLndhcm4oIlRIUkVFLkRhdGFUZXh0dXJlM0QgYW5kIFRIUkVFLkRhdGFUZXh0dXJlMkRBcnJheSBvbmx5IHN1cHBvcnRlZCB3aXRoIFdlYkdMMi4iKSksbi5iaW5kVGV4dHVyZSh0LGQuX193ZWJnbFRleHR1cmUpLEQodCxsLGcpLEEoYy5fX3dlYmdsRnJhbWVidWZmZXIsZSxsLDM2MDY0LHQpLHkobCxnKSYmXyh0LGwsZS53aWR0aCxlLmhlaWdodCxlLmRlcHRoKSxuLmJpbmRUZXh0dXJlKHQsbnVsbCl9ZS5kZXB0aEJ1ZmZlciYmKGZ1bmN0aW9uIGgoZSl7Y29uc3QgaT1vLmdldChlKSxhPSEwPT09ZS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldDtpZihlLmRlcHRoVGV4dHVyZSl7aWYoYSl0aHJvdyBuZXcgRXJyb3IoInRhcmdldC5kZXB0aFRleHR1cmUgbm90IHN1cHBvcnRlZCBpbiBDdWJlIHJlbmRlciB0YXJnZXRzIik7IShmdW5jdGlvbiByKGUsaSl7aWYoaSYmaS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldCl0aHJvdyBuZXcgRXJyb3IoIkRlcHRoIFRleHR1cmUgd2l0aCBjdWJlIHJlbmRlciB0YXJnZXRzIGlzIG5vdCBzdXBwb3J0ZWQiKTtpZihuLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxlKSwhaS5kZXB0aFRleHR1cmV8fCFpLmRlcHRoVGV4dHVyZS5pc0RlcHRoVGV4dHVyZSl0aHJvdyBuZXcgRXJyb3IoInJlbmRlclRhcmdldC5kZXB0aFRleHR1cmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBUSFJFRS5EZXB0aFRleHR1cmUiKTtvLmdldChpLmRlcHRoVGV4dHVyZSkuX193ZWJnbFRleHR1cmUmJmkuZGVwdGhUZXh0dXJlLmltYWdlLndpZHRoPT09aS53aWR0aCYmaS5kZXB0aFRleHR1cmUuaW1hZ2UuaGVpZ2h0PT09aS5oZWlnaHR8fChpLmRlcHRoVGV4dHVyZS5pbWFnZS53aWR0aD1pLndpZHRoLGkuZGVwdGhUZXh0dXJlLmltYWdlLmhlaWdodD1pLmhlaWdodCxpLmRlcHRoVGV4dHVyZS5uZWVkc1VwZGF0ZT0hMCksUChpLmRlcHRoVGV4dHVyZSwwKTtjb25zdCBhPW8uZ2V0KGkuZGVwdGhUZXh0dXJlKS5fX3dlYmdsVGV4dHVyZTtpZihpLmRlcHRoVGV4dHVyZS5mb3JtYXQ9PT1raXQpdC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLGEsMCk7ZWxzZXtpZihpLmRlcHRoVGV4dHVyZS5mb3JtYXQhPT1TaXQpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoVGV4dHVyZSBmb3JtYXQiKTt0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDMzMzA2LDM1NTMsYSwwKX19KShpLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlKX1lbHNlIGlmKGEpe2kuX193ZWJnbERlcHRoYnVmZmVyPVtdO2ZvcihsZXQgbz0wO288NjtvKyspbi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsaS5fX3dlYmdsRnJhbWVidWZmZXJbb10pLGkuX193ZWJnbERlcHRoYnVmZmVyW29dPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCksVChpLl9fd2ViZ2xEZXB0aGJ1ZmZlcltvXSxlLCExKX1lbHNlIG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLGkuX193ZWJnbEZyYW1lYnVmZmVyKSxpLl9fd2ViZ2xEZXB0aGJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLFQoaS5fX3dlYmdsRGVwdGhidWZmZXIsZSwhMSk7bi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9KShlKX0sdGhpcy51cGRhdGVSZW5kZXJUYXJnZXRNaXBtYXA9ZnVuY3Rpb24gaih0KXtjb25zdCBlPWIodCl8fHMsaT0hMD09PXQuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cz90LnRleHR1cmU6W3QudGV4dHVyZV07Zm9yKGxldCBhPTAscj1pLmxlbmd0aDthPHI7YSsrKXtjb25zdCByPWlbYV07aWYoeShyLGUpKXtjb25zdCBlPXQuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ/MzQwNjc6MzU1MyxpPW8uZ2V0KHIpLl9fd2ViZ2xUZXh0dXJlO24uYmluZFRleHR1cmUoZSxpKSxfKGUscix0LndpZHRoLHQuaGVpZ2h0KSxuLmJpbmRUZXh0dXJlKGUsbnVsbCl9fX0sdGhpcy51cGRhdGVNdWx0aXNhbXBsZVJlbmRlclRhcmdldD1mdW5jdGlvbiBVKGUpe2lmKGUuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KWlmKHMpe2NvbnN0IGk9ZS53aWR0aCxhPWUuaGVpZ2h0O2xldCByPTE2Mzg0O2UuZGVwdGhCdWZmZXImJihyfD0yNTYpLGUuc3RlbmNpbEJ1ZmZlciYmKHJ8PTEwMjQpO2NvbnN0IHM9by5nZXQoZSk7bi5iaW5kRnJhbWVidWZmZXIoMzYwMDgscy5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXIpLG4uYmluZEZyYW1lYnVmZmVyKDM2MDA5LHMuX193ZWJnbEZyYW1lYnVmZmVyKSx0LmJsaXRGcmFtZWJ1ZmZlcigwLDAsaSxhLDAsMCxpLGEsciw5NzI4KSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxudWxsKSxuLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOSxzLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcil9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFdlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMi4iKX0sdGhpcy5zYWZlU2V0VGV4dHVyZTJEPWZ1bmN0aW9uIEcodCxlKXt0JiZ0LmlzV2ViR0xSZW5kZXJUYXJnZXQmJighMT09PXomJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMVGV4dHVyZXMuc2FmZVNldFRleHR1cmUyRDogZG9uJ3QgdXNlIHJlbmRlciB0YXJnZXRzIGFzIHRleHR1cmVzLiBVc2UgdGhlaXIgLnRleHR1cmUgcHJvcGVydHkgaW5zdGVhZC4iKSx6PSEwKSx0PXQudGV4dHVyZSksUCh0LGUpfSx0aGlzLnNhZmVTZXRUZXh0dXJlQ3ViZT1mdW5jdGlvbiBXKHQsZSl7dCYmdC5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldCYmKCExPT09SSYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xUZXh0dXJlcy5zYWZlU2V0VGV4dHVyZUN1YmU6IGRvbid0IHVzZSBjdWJlIHJlbmRlciB0YXJnZXRzIGFzIHRleHR1cmVzLiBVc2UgdGhlaXIgLnRleHR1cmUgcHJvcGVydHkgaW5zdGVhZC4iKSxJPSEwKSx0PXQudGV4dHVyZSksdyh0LGUpfX1mdW5jdGlvbiBkZHQodCxlLG4pe2NvbnN0IG89bi5pc1dlYkdMMjtyZXR1cm57Y29udmVydDpmdW5jdGlvbiBpKHQpe2xldCBuO2lmKHQ9PT1faXQpcmV0dXJuIDUxMjE7aWYoMTAxNz09PXQpcmV0dXJuIDMyODE5O2lmKDEwMTg9PT10KXJldHVybiAzMjgyMDtpZigxMDE5PT09dClyZXR1cm4gMzM2MzU7aWYoMTAxMD09PXQpcmV0dXJuIDUxMjA7aWYoMTAxMT09PXQpcmV0dXJuIDUxMjI7aWYodD09PUNpdClyZXR1cm4gNTEyMztpZigxMDEzPT09dClyZXR1cm4gNTEyNDtpZih0PT09TWl0KXJldHVybiA1MTI1O2lmKHQ9PT12aXQpcmV0dXJuIDUxMjY7aWYodD09PXhpdClyZXR1cm4gbz81MTMxOihuPWUuZ2V0KCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiksbnVsbCE9PW4/bi5IQUxGX0ZMT0FUX09FUzpudWxsKTtpZigxMDIxPT09dClyZXR1cm4gNjQwNjtpZih0PT09UGl0KXJldHVybiA2NDA3O2lmKHQ9PT13aXQpcmV0dXJuIDY0MDg7aWYoMTAyND09PXQpcmV0dXJuIDY0MDk7aWYoMTAyNT09PXQpcmV0dXJuIDY0MTA7aWYodD09PWtpdClyZXR1cm4gNjQwMjtpZih0PT09U2l0KXJldHVybiAzNDA0MTtpZigxMDI4PT09dClyZXR1cm4gNjQwMztpZigxMDI5PT09dClyZXR1cm4gMzYyNDQ7aWYoMTAzMD09PXQpcmV0dXJuIDMzMzE5O2lmKDEwMzE9PT10KXJldHVybiAzMzMyMDtpZigxMDMyPT09dClyZXR1cm4gMzYyNDg7aWYoMTAzMz09PXQpcmV0dXJuIDM2MjQ5O2lmKDMzNzc2PT09dHx8MzM3Nzc9PT10fHwzMzc3OD09PXR8fDMzNzc5PT09dCl7aWYobj1lLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKSxudWxsPT09bilyZXR1cm4gbnVsbDtpZigzMzc3Nj09PXQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVDtpZigzMzc3Nz09PXQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQ7aWYoMzM3Nzg9PT10KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDNfRVhUO2lmKDMzNzc5PT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQ1X0VYVH1pZigzNTg0MD09PXR8fDM1ODQxPT09dHx8MzU4NDI9PT10fHwzNTg0Mz09PXQpe2lmKG49ZS5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpLG51bGw9PT1uKXJldHVybiBudWxsO2lmKDM1ODQwPT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HO2lmKDM1ODQxPT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQl9QVlJUQ18yQlBQVjFfSU1HO2lmKDM1ODQyPT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRztpZigzNTg0Mz09PXQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUd9aWYoMzYxOTY9PT10KXJldHVybiBuPWUuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfZXRjMSIpLG51bGwhPT1uP24uQ09NUFJFU1NFRF9SR0JfRVRDMV9XRUJHTDpudWxsO2lmKCgzNzQ5Mj09PXR8fDM3NDk2PT09dCkmJihuPWUuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfZXRjIiksbnVsbCE9PW4pKXtpZigzNzQ5Mj09PXQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0I4X0VUQzI7aWYoMzc0OTY9PT10KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQThfRVRDMl9FQUN9cmV0dXJuIDM3ODA4PT09dHx8Mzc4MDk9PT10fHwzNzgxMD09PXR8fDM3ODExPT09dHx8Mzc4MTI9PT10fHwzNzgxMz09PXR8fDM3ODE0PT09dHx8Mzc4MTU9PT10fHwzNzgxNj09PXR8fDM3ODE3PT09dHx8Mzc4MTg9PT10fHwzNzgxOT09PXR8fDM3ODIwPT09dHx8Mzc4MjE9PT10fHwzNzg0MD09PXR8fDM3ODQxPT09dHx8Mzc4NDI9PT10fHwzNzg0Mz09PXR8fDM3ODQ0PT09dHx8Mzc4NDU9PT10fHwzNzg0Nj09PXR8fDM3ODQ3PT09dHx8Mzc4NDg9PT10fHwzNzg0OT09PXR8fDM3ODUwPT09dHx8Mzc4NTE9PT10fHwzNzg1Mj09PXR8fDM3ODUzPT09dD8obj1lLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2FzdGMiKSxudWxsIT09bj90Om51bGwpOjM2NDkyPT09dD8obj1lLmdldCgiRVhUX3RleHR1cmVfY29tcHJlc3Npb25fYnB0YyIpLG51bGwhPT1uP3Q6bnVsbCk6dD09PU9pdD9vPzM0MDQyOihuPWUuZ2V0KCJXRUJHTF9kZXB0aF90ZXh0dXJlIiksbnVsbCE9PW4/bi5VTlNJR05FRF9JTlRfMjRfOF9XRUJHTDpudWxsKTp2b2lkIDB9fX1yZHQucHJvdG90eXBlLmlzTWVzaERpc3RhbmNlTWF0ZXJpYWw9ITA7Y2xhc3MgcGR0IGV4dGVuZHMgX3N0e2NvbnN0cnVjdG9yKHQ9W10pe3N1cGVyKCksdGhpcy5jYW1lcmFzPXR9fXBkdC5wcm90b3R5cGUuaXNBcnJheUNhbWVyYT0hMDtjbGFzcyBtZHQgZXh0ZW5kcyBwcnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iR3JvdXAifX1tZHQucHJvdG90eXBlLmlzR3JvdXA9ITA7Y29uc3QgdWR0PXt0eXBlOiJtb3ZlIn07Y2xhc3MgZmR0e2NvbnN0cnVjdG9yKCl7dGhpcy5fdGFyZ2V0UmF5PW51bGwsdGhpcy5fZ3JpcD1udWxsLHRoaXMuX2hhbmQ9bnVsbH1nZXRIYW5kU3BhY2UoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2hhbmQmJih0aGlzLl9oYW5kPW5ldyBtZHQsdGhpcy5faGFuZC5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX2hhbmQudmlzaWJsZT0hMSx0aGlzLl9oYW5kLmpvaW50cz17fSx0aGlzLl9oYW5kLmlucHV0U3RhdGU9e3BpbmNoaW5nOiExfSksdGhpcy5faGFuZH1nZXRUYXJnZXRSYXlTcGFjZSgpe3JldHVybiBudWxsPT09dGhpcy5fdGFyZ2V0UmF5JiYodGhpcy5fdGFyZ2V0UmF5PW5ldyBtZHQsdGhpcy5fdGFyZ2V0UmF5Lm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5fdGFyZ2V0UmF5LnZpc2libGU9ITEsdGhpcy5fdGFyZ2V0UmF5Lmhhc0xpbmVhclZlbG9jaXR5PSExLHRoaXMuX3RhcmdldFJheS5saW5lYXJWZWxvY2l0eT1uZXcgY2F0LHRoaXMuX3RhcmdldFJheS5oYXNBbmd1bGFyVmVsb2NpdHk9ITEsdGhpcy5fdGFyZ2V0UmF5LmFuZ3VsYXJWZWxvY2l0eT1uZXcgY2F0KSx0aGlzLl90YXJnZXRSYXl9Z2V0R3JpcFNwYWNlKCl7cmV0dXJuIG51bGw9PT10aGlzLl9ncmlwJiYodGhpcy5fZ3JpcD1uZXcgbWR0LHRoaXMuX2dyaXAubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLl9ncmlwLnZpc2libGU9ITEsdGhpcy5fZ3JpcC5oYXNMaW5lYXJWZWxvY2l0eT0hMSx0aGlzLl9ncmlwLmxpbmVhclZlbG9jaXR5PW5ldyBjYXQsdGhpcy5fZ3JpcC5oYXNBbmd1bGFyVmVsb2NpdHk9ITEsdGhpcy5fZ3JpcC5hbmd1bGFyVmVsb2NpdHk9bmV3IGNhdCksdGhpcy5fZ3JpcH1kaXNwYXRjaEV2ZW50KHQpe3JldHVybiBudWxsIT09dGhpcy5fdGFyZ2V0UmF5JiZ0aGlzLl90YXJnZXRSYXkuZGlzcGF0Y2hFdmVudCh0KSxudWxsIT09dGhpcy5fZ3JpcCYmdGhpcy5fZ3JpcC5kaXNwYXRjaEV2ZW50KHQpLG51bGwhPT10aGlzLl9oYW5kJiZ0aGlzLl9oYW5kLmRpc3BhdGNoRXZlbnQodCksdGhpc31kaXNjb25uZWN0KHQpe3JldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc2Nvbm5lY3RlZCIsZGF0YTp0fSksbnVsbCE9PXRoaXMuX3RhcmdldFJheSYmKHRoaXMuX3RhcmdldFJheS52aXNpYmxlPSExKSxudWxsIT09dGhpcy5fZ3JpcCYmKHRoaXMuX2dyaXAudmlzaWJsZT0hMSksbnVsbCE9PXRoaXMuX2hhbmQmJih0aGlzLl9oYW5kLnZpc2libGU9ITEpLHRoaXN9dXBkYXRlKHQsZSxuKXtsZXQgbz1udWxsLGk9bnVsbCxhPW51bGw7Y29uc3Qgcj10aGlzLl90YXJnZXRSYXkscz10aGlzLl9ncmlwLGw9dGhpcy5faGFuZDtpZih0JiYidmlzaWJsZS1ibHVycmVkIiE9PWUuc2Vzc2lvbi52aXNpYmlsaXR5U3RhdGUpaWYobnVsbCE9PXImJihvPWUuZ2V0UG9zZSh0LnRhcmdldFJheVNwYWNlLG4pLG51bGwhPT1vJiYoci5tYXRyaXguZnJvbUFycmF5KG8udHJhbnNmb3JtLm1hdHJpeCksci5tYXRyaXguZGVjb21wb3NlKHIucG9zaXRpb24sci5yb3RhdGlvbixyLnNjYWxlKSxvLmxpbmVhclZlbG9jaXR5PyhyLmhhc0xpbmVhclZlbG9jaXR5PSEwLHIubGluZWFyVmVsb2NpdHkuY29weShvLmxpbmVhclZlbG9jaXR5KSk6ci5oYXNMaW5lYXJWZWxvY2l0eT0hMSxvLmFuZ3VsYXJWZWxvY2l0eT8oci5oYXNBbmd1bGFyVmVsb2NpdHk9ITAsci5hbmd1bGFyVmVsb2NpdHkuY29weShvLmFuZ3VsYXJWZWxvY2l0eSkpOnIuaGFzQW5ndWxhclZlbG9jaXR5PSExLHRoaXMuZGlzcGF0Y2hFdmVudCh1ZHQpKSksbCYmdC5oYW5kKXthPSEwO2Zvcihjb25zdCBvIG9mIHQuaGFuZC52YWx1ZXMoKSl7Y29uc3QgdD1lLmdldEpvaW50UG9zZShvLG4pO2lmKHZvaWQgMD09PWwuam9pbnRzW28uam9pbnROYW1lXSl7Y29uc3QgdD1uZXcgbWR0O3QubWF0cml4QXV0b1VwZGF0ZT0hMSx0LnZpc2libGU9ITEsbC5qb2ludHNbby5qb2ludE5hbWVdPXQsbC5hZGQodCl9Y29uc3QgaT1sLmpvaW50c1tvLmpvaW50TmFtZV07bnVsbCE9PXQmJihpLm1hdHJpeC5mcm9tQXJyYXkodC50cmFuc2Zvcm0ubWF0cml4KSxpLm1hdHJpeC5kZWNvbXBvc2UoaS5wb3NpdGlvbixpLnJvdGF0aW9uLGkuc2NhbGUpLGkuam9pbnRSYWRpdXM9dC5yYWRpdXMpLGkudmlzaWJsZT1udWxsIT09dH1jb25zdCBvPWwuam9pbnRzWyJpbmRleC1maW5nZXItdGlwIl0ucG9zaXRpb24uZGlzdGFuY2VUbyhsLmpvaW50c1sidGh1bWItdGlwIl0ucG9zaXRpb24pLGk9LjAyLHI9LjAwNTtsLmlucHV0U3RhdGUucGluY2hpbmcmJm8+aStyPyhsLmlucHV0U3RhdGUucGluY2hpbmc9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJwaW5jaGVuZCIsaGFuZGVkbmVzczp0LmhhbmRlZG5lc3MsdGFyZ2V0OnRoaXN9KSk6IWwuaW5wdXRTdGF0ZS5waW5jaGluZyYmbzw9aS1yJiYobC5pbnB1dFN0YXRlLnBpbmNoaW5nPSEwLHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToicGluY2hzdGFydCIsaGFuZGVkbmVzczp0LmhhbmRlZG5lc3MsdGFyZ2V0OnRoaXN9KSl9ZWxzZSBudWxsIT09cyYmdC5ncmlwU3BhY2UmJihpPWUuZ2V0UG9zZSh0LmdyaXBTcGFjZSxuKSxudWxsIT09aSYmKHMubWF0cml4LmZyb21BcnJheShpLnRyYW5zZm9ybS5tYXRyaXgpLHMubWF0cml4LmRlY29tcG9zZShzLnBvc2l0aW9uLHMucm90YXRpb24scy5zY2FsZSksaS5saW5lYXJWZWxvY2l0eT8ocy5oYXNMaW5lYXJWZWxvY2l0eT0hMCxzLmxpbmVhclZlbG9jaXR5LmNvcHkoaS5saW5lYXJWZWxvY2l0eSkpOnMuaGFzTGluZWFyVmVsb2NpdHk9ITEsaS5hbmd1bGFyVmVsb2NpdHk/KHMuaGFzQW5ndWxhclZlbG9jaXR5PSEwLHMuYW5ndWxhclZlbG9jaXR5LmNvcHkoaS5hbmd1bGFyVmVsb2NpdHkpKTpzLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSkpO3JldHVybiBudWxsIT09ciYmKHIudmlzaWJsZT1udWxsIT09byksbnVsbCE9PXMmJihzLnZpc2libGU9bnVsbCE9PWkpLG51bGwhPT1sJiYobC52aXNpYmxlPW51bGwhPT1hKSx0aGlzfX1jbGFzcyBnZHQgZXh0ZW5kcyBVaXR7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpO2NvbnN0IG49dGhpcyxvPXQuc3RhdGU7bGV0IGk9bnVsbCxhPTEscj1udWxsLHM9ImxvY2FsLWZsb29yIixsPW51bGwsYz1udWxsLGQ9bnVsbCxwPW51bGwsbT1udWxsO2NvbnN0IHU9W10sZj1uZXcgTWFwLGc9bmV3IF9zdDtnLmxheWVycy5lbmFibGUoMSksZy52aWV3cG9ydD1uZXcgYWF0O2NvbnN0IGg9bmV3IF9zdDtoLmxheWVycy5lbmFibGUoMiksaC52aWV3cG9ydD1uZXcgYWF0O2NvbnN0IGI9W2csaF0seT1uZXcgcGR0O3kubGF5ZXJzLmVuYWJsZSgxKSx5LmxheWVycy5lbmFibGUoMik7bGV0IF89bnVsbCxDPW51bGw7ZnVuY3Rpb24gTSh0KXtjb25zdCBlPWYuZ2V0KHQuaW5wdXRTb3VyY2UpO2UmJmUuZGlzcGF0Y2hFdmVudCh7dHlwZTp0LnR5cGUsZGF0YTp0LmlucHV0U291cmNlfSl9ZnVuY3Rpb24gdigpe2YuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LmRpc2Nvbm5lY3QoZSl9KSksZi5jbGVhcigpLF89bnVsbCxDPW51bGwsby5iaW5kWFJGcmFtZWJ1ZmZlcihudWxsKSx0LnNldFJlbmRlclRhcmdldCh0LmdldFJlbmRlclRhcmdldCgpKSxTLnN0b3AoKSxuLmlzUHJlc2VudGluZz0hMSxuLmRpc3BhdGNoRXZlbnQoe3R5cGU6InNlc3Npb25lbmQifSl9ZnVuY3Rpb24geCh0KXtjb25zdCBlPWkuaW5wdXRTb3VyY2VzO2ZvcihsZXQgdD0wO3Q8dS5sZW5ndGg7dCsrKWYuc2V0KGVbdF0sdVt0XSk7Zm9yKGxldCBlPTA7ZTx0LnJlbW92ZWQubGVuZ3RoO2UrKyl7Y29uc3Qgbj10LnJlbW92ZWRbZV0sbz1mLmdldChuKTtvJiYoby5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNjb25uZWN0ZWQiLGRhdGE6bn0pLGYuZGVsZXRlKG4pKX1mb3IobGV0IGU9MDtlPHQuYWRkZWQubGVuZ3RoO2UrKyl7Y29uc3Qgbj10LmFkZGVkW2VdLG89Zi5nZXQobik7byYmby5kaXNwYXRjaEV2ZW50KHt0eXBlOiJjb25uZWN0ZWQiLGRhdGE6bn0pfX10aGlzLmNhbWVyYUF1dG9VcGRhdGU9ITAsdGhpcy5lbmFibGVkPSExLHRoaXMuaXNQcmVzZW50aW5nPSExLHRoaXMuZ2V0Q29udHJvbGxlcj1mdW5jdGlvbih0KXtsZXQgZT11W3RdO3JldHVybiB2b2lkIDA9PT1lJiYoZT1uZXcgZmR0LHVbdF09ZSksZS5nZXRUYXJnZXRSYXlTcGFjZSgpfSx0aGlzLmdldENvbnRyb2xsZXJHcmlwPWZ1bmN0aW9uKHQpe2xldCBlPXVbdF07cmV0dXJuIHZvaWQgMD09PWUmJihlPW5ldyBmZHQsdVt0XT1lKSxlLmdldEdyaXBTcGFjZSgpfSx0aGlzLmdldEhhbmQ9ZnVuY3Rpb24odCl7bGV0IGU9dVt0XTtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9bmV3IGZkdCx1W3RdPWUpLGUuZ2V0SGFuZFNwYWNlKCl9LHRoaXMuc2V0RnJhbWVidWZmZXJTY2FsZUZhY3Rvcj1mdW5jdGlvbih0KXthPXQsITA9PT1uLmlzUHJlc2VudGluZyYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJYUk1hbmFnZXI6IENhbm5vdCBjaGFuZ2UgZnJhbWVidWZmZXIgc2NhbGUgd2hpbGUgcHJlc2VudGluZy4iKX0sdGhpcy5zZXRSZWZlcmVuY2VTcGFjZVR5cGU9ZnVuY3Rpb24odCl7cz10LCEwPT09bi5pc1ByZXNlbnRpbmcmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViWFJNYW5hZ2VyOiBDYW5ub3QgY2hhbmdlIHJlZmVyZW5jZSBzcGFjZSB0eXBlIHdoaWxlIHByZXNlbnRpbmcuIil9LHRoaXMuZ2V0UmVmZXJlbmNlU3BhY2U9ZnVuY3Rpb24oKXtyZXR1cm4gcn0sdGhpcy5nZXRTZXNzaW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGl9LHRoaXMuc2V0U2Vzc2lvbj1hc3luYyBmdW5jdGlvbih0KXtpZihpPXQsbnVsbCE9PWkpe2kuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0IixNKSxpLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdHN0YXJ0IixNKSxpLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVuZCIsTSksaS5hZGRFdmVudExpc3RlbmVyKCJzcXVlZXplIixNKSxpLmFkZEV2ZW50TGlzdGVuZXIoInNxdWVlemVzdGFydCIsTSksaS5hZGRFdmVudExpc3RlbmVyKCJzcXVlZXplZW5kIixNKSxpLmFkZEV2ZW50TGlzdGVuZXIoImVuZCIsdiksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dHNvdXJjZXNjaGFuZ2UiLHgpO2NvbnN0IHQ9ZS5nZXRDb250ZXh0QXR0cmlidXRlcygpO2lmKCEwIT09dC54ckNvbXBhdGlibGUmJmF3YWl0IGUubWFrZVhSQ29tcGF0aWJsZSgpLHZvaWQgMD09PWkucmVuZGVyU3RhdGUubGF5ZXJzKW09bmV3IFhSV2ViR0xMYXllcihpLGUse2FudGlhbGlhczp0LmFudGlhbGlhcyxhbHBoYTp0LmFscGhhLGRlcHRoOnQuZGVwdGgsc3RlbmNpbDp0LnN0ZW5jaWwsZnJhbWVidWZmZXJTY2FsZUZhY3RvcjphfSksaS51cGRhdGVSZW5kZXJTdGF0ZSh7YmFzZUxheWVyOm19KTtlbHNle2xldCBuPTA7aWYodC5hbnRpYWxpYXMpbT1uZXcgWFJXZWJHTExheWVyKGksZSx7YW50aWFsaWFzOiEwLGFscGhhOnQuYWxwaGEsZGVwdGg6dC5kZXB0aCxzdGVuY2lsOnQuc3RlbmNpbCxmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yOmF9KSxpLnVwZGF0ZVJlbmRlclN0YXRlKHtsYXllcnM6W21dfSk7ZWxzZXt0LmRlcHRoJiYobj10LnN0ZW5jaWw/MzQwNDE6NjQwMik7Y29uc3Qgbz17Y29sb3JGb3JtYXQ6dC5hbHBoYT82NDA4OjY0MDcsZGVwdGhGb3JtYXQ6bixzY2FsZUZhY3RvcjphfTtjPW5ldyBYUldlYkdMQmluZGluZyhpLGUpLHA9Yy5jcmVhdGVQcm9qZWN0aW9uTGF5ZXIobyksZD1lLmNyZWF0ZUZyYW1lYnVmZmVyKCksaS51cGRhdGVSZW5kZXJTdGF0ZSh7bGF5ZXJzOltwXX0pfX1yPWF3YWl0IGkucmVxdWVzdFJlZmVyZW5jZVNwYWNlKHMpLFMuc2V0Q29udGV4dChpKSxTLnN0YXJ0KCksbi5pc1ByZXNlbnRpbmc9ITAsbi5kaXNwYXRjaEV2ZW50KHt0eXBlOiJzZXNzaW9uc3RhcnQifSl9fTtjb25zdCBPPW5ldyBjYXQsUD1uZXcgY2F0O2Z1bmN0aW9uIHcodCxlKXtudWxsPT09ZT90Lm1hdHJpeFdvcmxkLmNvcHkodC5tYXRyaXgpOnQubWF0cml4V29ybGQubXVsdGlwbHlNYXRyaWNlcyhlLm1hdHJpeFdvcmxkLHQubWF0cml4KSx0Lm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHQubWF0cml4V29ybGQpLmludmVydCgpfXRoaXMudXBkYXRlQ2FtZXJhPWZ1bmN0aW9uKHQpe2lmKG51bGw9PT1pKXJldHVybjt5Lm5lYXI9aC5uZWFyPWcubmVhcj10Lm5lYXIseS5mYXI9aC5mYXI9Zy5mYXI9dC5mYXIsXz09PXkubmVhciYmQz09PXkuZmFyfHwoaS51cGRhdGVSZW5kZXJTdGF0ZSh7ZGVwdGhOZWFyOnkubmVhcixkZXB0aEZhcjp5LmZhcn0pLF89eS5uZWFyLEM9eS5mYXIpO2NvbnN0IGU9dC5wYXJlbnQsbj15LmNhbWVyYXM7dyh5LGUpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXcoblt0XSxlKTt5Lm1hdHJpeFdvcmxkLmRlY29tcG9zZSh5LnBvc2l0aW9uLHkucXVhdGVybmlvbix5LnNjYWxlKSx0LnBvc2l0aW9uLmNvcHkoeS5wb3NpdGlvbiksdC5xdWF0ZXJuaW9uLmNvcHkoeS5xdWF0ZXJuaW9uKSx0LnNjYWxlLmNvcHkoeS5zY2FsZSksdC5tYXRyaXguY29weSh5Lm1hdHJpeCksdC5tYXRyaXhXb3JsZC5jb3B5KHkubWF0cml4V29ybGQpO2NvbnN0IG89dC5jaGlsZHJlbjtmb3IobGV0IHQ9MCxlPW8ubGVuZ3RoO3Q8ZTt0Kyspb1t0XS51cGRhdGVNYXRyaXhXb3JsZCghMCk7Mj09PW4ubGVuZ3RoPyhmdW5jdGlvbiBhKHQsZSxuKXtPLnNldEZyb21NYXRyaXhQb3NpdGlvbihlLm1hdHJpeFdvcmxkKSxQLnNldEZyb21NYXRyaXhQb3NpdGlvbihuLm1hdHJpeFdvcmxkKTtjb25zdCBvPU8uZGlzdGFuY2VUbyhQKSxpPWUucHJvamVjdGlvbk1hdHJpeC5lbGVtZW50cyxhPW4ucHJvamVjdGlvbk1hdHJpeC5lbGVtZW50cyxyPWlbMTRdLyhpWzEwXS0xKSxzPWlbMTRdLyhpWzEwXSsxKSxsPShpWzldKzEpL2lbNV0sYz0oaVs5XS0xKS9pWzVdLGQ9KGlbOF0tMSkvaVswXSxwPShhWzhdKzEpL2FbMF0sbT1yKmQsdT1yKnAsZj1vLygtZCtwKSxnPWYqLWQ7ZS5tYXRyaXhXb3JsZC5kZWNvbXBvc2UodC5wb3NpdGlvbix0LnF1YXRlcm5pb24sdC5zY2FsZSksdC50cmFuc2xhdGVYKGcpLHQudHJhbnNsYXRlWihmKSx0Lm1hdHJpeFdvcmxkLmNvbXBvc2UodC5wb3NpdGlvbix0LnF1YXRlcm5pb24sdC5zY2FsZSksdC5tYXRyaXhXb3JsZEludmVyc2UuY29weSh0Lm1hdHJpeFdvcmxkKS5pbnZlcnQoKTtjb25zdCBoPXIrZixiPXMrZjt0LnByb2plY3Rpb25NYXRyaXgubWFrZVBlcnNwZWN0aXZlKG0tZyx1KyhvLWcpLGwqcy9iKmgsYypzL2IqaCxoLGIpfSkoeSxnLGgpOnkucHJvamVjdGlvbk1hdHJpeC5jb3B5KGcucHJvamVjdGlvbk1hdHJpeCl9LHRoaXMuZ2V0Q2FtZXJhPWZ1bmN0aW9uKCl7cmV0dXJuIHl9LHRoaXMuZ2V0Rm92ZWF0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1wP3AuZml4ZWRGb3ZlYXRpb246bnVsbCE9PW0/bS5maXhlZEZvdmVhdGlvbjp2b2lkIDB9LHRoaXMuc2V0Rm92ZWF0aW9uPWZ1bmN0aW9uKHQpe251bGwhPT1wJiYocC5maXhlZEZvdmVhdGlvbj10KSxudWxsIT09bSYmdm9pZCAwIT09bS5maXhlZEZvdmVhdGlvbiYmKG0uZml4ZWRGb3ZlYXRpb249dCl9O2xldCBrPW51bGw7Y29uc3QgUz1uZXcgUnN0O1Muc2V0QW5pbWF0aW9uTG9vcCgoZnVuY3Rpb24gRCh0LG4pe2lmKGw9bi5nZXRWaWV3ZXJQb3NlKHIpLG51bGwhPT1sKXtjb25zdCB0PWwudmlld3M7bnVsbCE9PW0mJm8uYmluZFhSRnJhbWVidWZmZXIobS5mcmFtZWJ1ZmZlcik7bGV0IG49ITE7dC5sZW5ndGghPT15LmNhbWVyYXMubGVuZ3RoJiYoeS5jYW1lcmFzLmxlbmd0aD0wLG49ITApO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXtjb25zdCBhPXRbaV07bGV0IHI9bnVsbDtpZihudWxsIT09bSlyPW0uZ2V0Vmlld3BvcnQoYSk7ZWxzZXtjb25zdCB0PWMuZ2V0Vmlld1N1YkltYWdlKHAsYSk7by5iaW5kWFJGcmFtZWJ1ZmZlcihkKSx2b2lkIDAhPT10LmRlcHRoU3RlbmNpbFRleHR1cmUmJmUuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwOTYsMzU1Myx0LmRlcHRoU3RlbmNpbFRleHR1cmUsMCksZS5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA2NCwzNTUzLHQuY29sb3JUZXh0dXJlLDApLHI9dC52aWV3cG9ydH1jb25zdCBzPWJbaV07cy5tYXRyaXguZnJvbUFycmF5KGEudHJhbnNmb3JtLm1hdHJpeCkscy5wcm9qZWN0aW9uTWF0cml4LmZyb21BcnJheShhLnByb2plY3Rpb25NYXRyaXgpLHMudmlld3BvcnQuc2V0KHIueCxyLnksci53aWR0aCxyLmhlaWdodCksMD09PWkmJnkubWF0cml4LmNvcHkocy5tYXRyaXgpLCEwPT09biYmeS5jYW1lcmFzLnB1c2gocyl9fWNvbnN0IGE9aS5pbnB1dFNvdXJjZXM7Zm9yKGxldCB0PTA7dDx1Lmxlbmd0aDt0KyspdVt0XS51cGRhdGUoYVt0XSxuLHIpO2smJmsodCxuKX0pKSx0aGlzLnNldEFuaW1hdGlvbkxvb3A9ZnVuY3Rpb24odCl7az10fSx0aGlzLmRpc3Bvc2U9ZnVuY3Rpb24oKXt9fX1mdW5jdGlvbiBoZHQodCl7ZnVuY3Rpb24gZShlLG4pe2Uub3BhY2l0eS52YWx1ZT1uLm9wYWNpdHksbi5jb2xvciYmZS5kaWZmdXNlLnZhbHVlLmNvcHkobi5jb2xvciksbi5lbWlzc2l2ZSYmZS5lbWlzc2l2ZS52YWx1ZS5jb3B5KG4uZW1pc3NpdmUpLm11bHRpcGx5U2NhbGFyKG4uZW1pc3NpdmVJbnRlbnNpdHkpLG4ubWFwJiYoZS5tYXAudmFsdWU9bi5tYXApLG4uYWxwaGFNYXAmJihlLmFscGhhTWFwLnZhbHVlPW4uYWxwaGFNYXApLG4uc3BlY3VsYXJNYXAmJihlLnNwZWN1bGFyTWFwLnZhbHVlPW4uc3BlY3VsYXJNYXApO2NvbnN0IG89dC5nZXQobikuZW52TWFwO2lmKG8pe2UuZW52TWFwLnZhbHVlPW8sZS5mbGlwRW52TWFwLnZhbHVlPW8uaXNDdWJlVGV4dHVyZSYmITE9PT1vLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT8tMToxLGUucmVmbGVjdGl2aXR5LnZhbHVlPW4ucmVmbGVjdGl2aXR5LGUucmVmcmFjdGlvblJhdGlvLnZhbHVlPW4ucmVmcmFjdGlvblJhdGlvO2NvbnN0IGk9dC5nZXQobykuX19tYXhNaXBMZXZlbDt2b2lkIDAhPT1pJiYoZS5tYXhNaXBMZXZlbC52YWx1ZT1pKX1sZXQgaSxhO24ubGlnaHRNYXAmJihlLmxpZ2h0TWFwLnZhbHVlPW4ubGlnaHRNYXAsZS5saWdodE1hcEludGVuc2l0eS52YWx1ZT1uLmxpZ2h0TWFwSW50ZW5zaXR5KSxuLmFvTWFwJiYoZS5hb01hcC52YWx1ZT1uLmFvTWFwLGUuYW9NYXBJbnRlbnNpdHkudmFsdWU9bi5hb01hcEludGVuc2l0eSksbi5tYXA/aT1uLm1hcDpuLnNwZWN1bGFyTWFwP2k9bi5zcGVjdWxhck1hcDpuLmRpc3BsYWNlbWVudE1hcD9pPW4uZGlzcGxhY2VtZW50TWFwOm4ubm9ybWFsTWFwP2k9bi5ub3JtYWxNYXA6bi5idW1wTWFwP2k9bi5idW1wTWFwOm4ucm91Z2huZXNzTWFwP2k9bi5yb3VnaG5lc3NNYXA6bi5tZXRhbG5lc3NNYXA/aT1uLm1ldGFsbmVzc01hcDpuLmFscGhhTWFwP2k9bi5hbHBoYU1hcDpuLmVtaXNzaXZlTWFwP2k9bi5lbWlzc2l2ZU1hcDpuLmNsZWFyY29hdE1hcD9pPW4uY2xlYXJjb2F0TWFwOm4uY2xlYXJjb2F0Tm9ybWFsTWFwP2k9bi5jbGVhcmNvYXROb3JtYWxNYXA6bi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/aT1uLmNsZWFyY29hdFJvdWdobmVzc01hcDpuLnNwZWN1bGFySW50ZW5zaXR5TWFwP2k9bi5zcGVjdWxhckludGVuc2l0eU1hcDpuLnNwZWN1bGFyVGludE1hcCYmKGk9bi5zcGVjdWxhclRpbnRNYXApLHZvaWQgMCE9PWkmJihpLmlzV2ViR0xSZW5kZXJUYXJnZXQmJihpPWkudGV4dHVyZSksITA9PT1pLm1hdHJpeEF1dG9VcGRhdGUmJmkudXBkYXRlTWF0cml4KCksZS51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KGkubWF0cml4KSksbi5hb01hcD9hPW4uYW9NYXA6bi5saWdodE1hcCYmKGE9bi5saWdodE1hcCksdm9pZCAwIT09YSYmKGEuaXNXZWJHTFJlbmRlclRhcmdldCYmKGE9YS50ZXh0dXJlKSwhMD09PWEubWF0cml4QXV0b1VwZGF0ZSYmYS51cGRhdGVNYXRyaXgoKSxlLnV2MlRyYW5zZm9ybS52YWx1ZS5jb3B5KGEubWF0cml4KSl9ZnVuY3Rpb24gbihlLG4pe2Uucm91Z2huZXNzLnZhbHVlPW4ucm91Z2huZXNzLGUubWV0YWxuZXNzLnZhbHVlPW4ubWV0YWxuZXNzLG4ucm91Z2huZXNzTWFwJiYoZS5yb3VnaG5lc3NNYXAudmFsdWU9bi5yb3VnaG5lc3NNYXApLG4ubWV0YWxuZXNzTWFwJiYoZS5tZXRhbG5lc3NNYXAudmFsdWU9bi5tZXRhbG5lc3NNYXApLG4uZW1pc3NpdmVNYXAmJihlLmVtaXNzaXZlTWFwLnZhbHVlPW4uZW1pc3NpdmVNYXApLG4uYnVtcE1hcCYmKGUuYnVtcE1hcC52YWx1ZT1uLmJ1bXBNYXAsZS5idW1wU2NhbGUudmFsdWU9bi5idW1wU2NhbGUsMT09PW4uc2lkZSYmKGUuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLG4ubm9ybWFsTWFwJiYoZS5ub3JtYWxNYXAudmFsdWU9bi5ub3JtYWxNYXAsZS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KG4ubm9ybWFsU2NhbGUpLDE9PT1uLnNpZGUmJmUubm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpLG4uZGlzcGxhY2VtZW50TWFwJiYoZS5kaXNwbGFjZW1lbnRNYXAudmFsdWU9bi5kaXNwbGFjZW1lbnRNYXAsZS5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1uLmRpc3BsYWNlbWVudFNjYWxlLGUuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1uLmRpc3BsYWNlbWVudEJpYXMpLHQuZ2V0KG4pLmVudk1hcCYmKGUuZW52TWFwSW50ZW5zaXR5LnZhbHVlPW4uZW52TWFwSW50ZW5zaXR5KX1yZXR1cm57cmVmcmVzaEZvZ1VuaWZvcm1zOmZ1bmN0aW9uIG8odCxlKXt0LmZvZ0NvbG9yLnZhbHVlLmNvcHkoZS5jb2xvciksZS5pc0ZvZz8odC5mb2dOZWFyLnZhbHVlPWUubmVhcix0LmZvZ0Zhci52YWx1ZT1lLmZhcik6ZS5pc0ZvZ0V4cDImJih0LmZvZ0RlbnNpdHkudmFsdWU9ZS5kZW5zaXR5KX0scmVmcmVzaE1hdGVyaWFsVW5pZm9ybXM6ZnVuY3Rpb24gaSh0LG8sYSxyLHMpe28uaXNNZXNoQmFzaWNNYXRlcmlhbD9lKHQsbyk6by5pc01lc2hMYW1iZXJ0TWF0ZXJpYWw/KGUodCxvKSwoZnVuY3Rpb24gbCh0LGUpe2UuZW1pc3NpdmVNYXAmJih0LmVtaXNzaXZlTWFwLnZhbHVlPWUuZW1pc3NpdmVNYXApfSkodCxvKSk6by5pc01lc2hUb29uTWF0ZXJpYWw/KGUodCxvKSwoZnVuY3Rpb24gYyh0LGUpe2UuZ3JhZGllbnRNYXAmJih0LmdyYWRpZW50TWFwLnZhbHVlPWUuZ3JhZGllbnRNYXApLGUuZW1pc3NpdmVNYXAmJih0LmVtaXNzaXZlTWFwLnZhbHVlPWUuZW1pc3NpdmVNYXApLGUuYnVtcE1hcCYmKHQuYnVtcE1hcC52YWx1ZT1lLmJ1bXBNYXAsdC5idW1wU2NhbGUudmFsdWU9ZS5idW1wU2NhbGUsMT09PWUuc2lkZSYmKHQuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLGUubm9ybWFsTWFwJiYodC5ub3JtYWxNYXAudmFsdWU9ZS5ub3JtYWxNYXAsdC5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KGUubm9ybWFsU2NhbGUpLDE9PT1lLnNpZGUmJnQubm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpLGUuZGlzcGxhY2VtZW50TWFwJiYodC5kaXNwbGFjZW1lbnRNYXAudmFsdWU9ZS5kaXNwbGFjZW1lbnRNYXAsdC5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1lLmRpc3BsYWNlbWVudFNjYWxlLHQuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1lLmRpc3BsYWNlbWVudEJpYXMpfSkodCxvKSk6by5pc01lc2hQaG9uZ01hdGVyaWFsPyhlKHQsbyksKGZ1bmN0aW9uIGQodCxlKXt0LnNwZWN1bGFyLnZhbHVlLmNvcHkoZS5zcGVjdWxhciksdC5zaGluaW5lc3MudmFsdWU9TWF0aC5tYXgoZS5zaGluaW5lc3MsMWUtNCksZS5lbWlzc2l2ZU1hcCYmKHQuZW1pc3NpdmVNYXAudmFsdWU9ZS5lbWlzc2l2ZU1hcCksZS5idW1wTWFwJiYodC5idW1wTWFwLnZhbHVlPWUuYnVtcE1hcCx0LmJ1bXBTY2FsZS52YWx1ZT1lLmJ1bXBTY2FsZSwxPT09ZS5zaWRlJiYodC5idW1wU2NhbGUudmFsdWUqPS0xKSksZS5ub3JtYWxNYXAmJih0Lm5vcm1hbE1hcC52YWx1ZT1lLm5vcm1hbE1hcCx0Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5ub3JtYWxTY2FsZSksMT09PWUuc2lkZSYmdC5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LG8pKTpvLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/KGUodCxvKSxvLmlzTWVzaFBoeXNpY2FsTWF0ZXJpYWw/KGZ1bmN0aW9uIHAodCxlLG8pe24odCxlKSx0LnJlZmxlY3Rpdml0eS52YWx1ZT1lLnJlZmxlY3Rpdml0eSx0LmNsZWFyY29hdC52YWx1ZT1lLmNsZWFyY29hdCx0LmNsZWFyY29hdFJvdWdobmVzcy52YWx1ZT1lLmNsZWFyY29hdFJvdWdobmVzcyxlLnNoZWVuJiZ0LnNoZWVuLnZhbHVlLmNvcHkoZS5zaGVlbiksZS5jbGVhcmNvYXRNYXAmJih0LmNsZWFyY29hdE1hcC52YWx1ZT1lLmNsZWFyY29hdE1hcCksZS5jbGVhcmNvYXRSb3VnaG5lc3NNYXAmJih0LmNsZWFyY29hdFJvdWdobmVzc01hcC52YWx1ZT1lLmNsZWFyY29hdFJvdWdobmVzc01hcCksZS5jbGVhcmNvYXROb3JtYWxNYXAmJih0LmNsZWFyY29hdE5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5jbGVhcmNvYXROb3JtYWxTY2FsZSksdC5jbGVhcmNvYXROb3JtYWxNYXAudmFsdWU9ZS5jbGVhcmNvYXROb3JtYWxNYXAsMT09PWUuc2lkZSYmdC5jbGVhcmNvYXROb3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksdC50cmFuc21pc3Npb24udmFsdWU9ZS50cmFuc21pc3Npb24sZS50cmFuc21pc3Npb25NYXAmJih0LnRyYW5zbWlzc2lvbk1hcC52YWx1ZT1lLnRyYW5zbWlzc2lvbk1hcCksZS50cmFuc21pc3Npb24+MCYmKHQudHJhbnNtaXNzaW9uU2FtcGxlck1hcC52YWx1ZT1vLnRleHR1cmUsdC50cmFuc21pc3Npb25TYW1wbGVyU2l6ZS52YWx1ZS5zZXQoby53aWR0aCxvLmhlaWdodCkpLHQudGhpY2tuZXNzLnZhbHVlPWUudGhpY2tuZXNzLGUudGhpY2tuZXNzTWFwJiYodC50aGlja25lc3NNYXAudmFsdWU9ZS50aGlja25lc3NNYXApLHQuYXR0ZW51YXRpb25EaXN0YW5jZS52YWx1ZT1lLmF0dGVudWF0aW9uRGlzdGFuY2UsdC5hdHRlbnVhdGlvblRpbnQudmFsdWUuY29weShlLmF0dGVudWF0aW9uVGludCksdC5zcGVjdWxhckludGVuc2l0eS52YWx1ZT1lLnNwZWN1bGFySW50ZW5zaXR5LHQuc3BlY3VsYXJUaW50LnZhbHVlLmNvcHkoZS5zcGVjdWxhclRpbnQpLGUuc3BlY3VsYXJJbnRlbnNpdHlNYXAmJih0LnNwZWN1bGFySW50ZW5zaXR5TWFwLnZhbHVlPWUuc3BlY3VsYXJJbnRlbnNpdHlNYXApLGUuc3BlY3VsYXJUaW50TWFwJiYodC5zcGVjdWxhclRpbnRNYXAudmFsdWU9ZS5zcGVjdWxhclRpbnRNYXApfSkodCxvLHMpOm4odCxvKSk6by5pc01lc2hNYXRjYXBNYXRlcmlhbD8oZSh0LG8pLChmdW5jdGlvbiBtKHQsZSl7ZS5tYXRjYXAmJih0Lm1hdGNhcC52YWx1ZT1lLm1hdGNhcCksZS5idW1wTWFwJiYodC5idW1wTWFwLnZhbHVlPWUuYnVtcE1hcCx0LmJ1bXBTY2FsZS52YWx1ZT1lLmJ1bXBTY2FsZSwxPT09ZS5zaWRlJiYodC5idW1wU2NhbGUudmFsdWUqPS0xKSksZS5ub3JtYWxNYXAmJih0Lm5vcm1hbE1hcC52YWx1ZT1lLm5vcm1hbE1hcCx0Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5ub3JtYWxTY2FsZSksMT09PWUuc2lkZSYmdC5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LG8pKTpvLmlzTWVzaERlcHRoTWF0ZXJpYWw/KGUodCxvKSwoZnVuY3Rpb24gdSh0LGUpe2UuZGlzcGxhY2VtZW50TWFwJiYodC5kaXNwbGFjZW1lbnRNYXAudmFsdWU9ZS5kaXNwbGFjZW1lbnRNYXAsdC5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1lLmRpc3BsYWNlbWVudFNjYWxlLHQuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1lLmRpc3BsYWNlbWVudEJpYXMpfSkodCxvKSk6by5pc01lc2hEaXN0YW5jZU1hdGVyaWFsPyhlKHQsbyksKGZ1bmN0aW9uIGYodCxlKXtlLmRpc3BsYWNlbWVudE1hcCYmKHQuZGlzcGxhY2VtZW50TWFwLnZhbHVlPWUuZGlzcGxhY2VtZW50TWFwLHQuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9ZS5kaXNwbGFjZW1lbnRTY2FsZSx0LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9ZS5kaXNwbGFjZW1lbnRCaWFzKSx0LnJlZmVyZW5jZVBvc2l0aW9uLnZhbHVlLmNvcHkoZS5yZWZlcmVuY2VQb3NpdGlvbiksdC5uZWFyRGlzdGFuY2UudmFsdWU9ZS5uZWFyRGlzdGFuY2UsdC5mYXJEaXN0YW5jZS52YWx1ZT1lLmZhckRpc3RhbmNlfSkodCxvKSk6by5pc01lc2hOb3JtYWxNYXRlcmlhbD8oZSh0LG8pLChmdW5jdGlvbiBnKHQsZSl7ZS5idW1wTWFwJiYodC5idW1wTWFwLnZhbHVlPWUuYnVtcE1hcCx0LmJ1bXBTY2FsZS52YWx1ZT1lLmJ1bXBTY2FsZSwxPT09ZS5zaWRlJiYodC5idW1wU2NhbGUudmFsdWUqPS0xKSksZS5ub3JtYWxNYXAmJih0Lm5vcm1hbE1hcC52YWx1ZT1lLm5vcm1hbE1hcCx0Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5ub3JtYWxTY2FsZSksMT09PWUuc2lkZSYmdC5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSksZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LG8pKTpvLmlzTGluZUJhc2ljTWF0ZXJpYWw/KChmdW5jdGlvbiBoKHQsZSl7dC5kaWZmdXNlLnZhbHVlLmNvcHkoZS5jb2xvciksdC5vcGFjaXR5LnZhbHVlPWUub3BhY2l0eX0pKHQsbyksby5pc0xpbmVEYXNoZWRNYXRlcmlhbCYmKGZ1bmN0aW9uIGIodCxlKXt0LmRhc2hTaXplLnZhbHVlPWUuZGFzaFNpemUsdC50b3RhbFNpemUudmFsdWU9ZS5kYXNoU2l6ZStlLmdhcFNpemUsdC5zY2FsZS52YWx1ZT1lLnNjYWxlfSkodCxvKSk6by5pc1BvaW50c01hdGVyaWFsPyhmdW5jdGlvbiB5KHQsZSxuLG8pe2xldCBpO3QuZGlmZnVzZS52YWx1ZS5jb3B5KGUuY29sb3IpLHQub3BhY2l0eS52YWx1ZT1lLm9wYWNpdHksdC5zaXplLnZhbHVlPWUuc2l6ZSpuLHQuc2NhbGUudmFsdWU9LjUqbyxlLm1hcCYmKHQubWFwLnZhbHVlPWUubWFwKSxlLmFscGhhTWFwJiYodC5hbHBoYU1hcC52YWx1ZT1lLmFscGhhTWFwKSxlLm1hcD9pPWUubWFwOmUuYWxwaGFNYXAmJihpPWUuYWxwaGFNYXApLHZvaWQgMCE9PWkmJighMD09PWkubWF0cml4QXV0b1VwZGF0ZSYmaS51cGRhdGVNYXRyaXgoKSx0LnV2VHJhbnNmb3JtLnZhbHVlLmNvcHkoaS5tYXRyaXgpKX0pKHQsbyxhLHIpOm8uaXNTcHJpdGVNYXRlcmlhbD8oZnVuY3Rpb24gXyh0LGUpe2xldCBuO3QuZGlmZnVzZS52YWx1ZS5jb3B5KGUuY29sb3IpLHQub3BhY2l0eS52YWx1ZT1lLm9wYWNpdHksdC5yb3RhdGlvbi52YWx1ZT1lLnJvdGF0aW9uLGUubWFwJiYodC5tYXAudmFsdWU9ZS5tYXApLGUuYWxwaGFNYXAmJih0LmFscGhhTWFwLnZhbHVlPWUuYWxwaGFNYXApLGUubWFwP249ZS5tYXA6ZS5hbHBoYU1hcCYmKG49ZS5hbHBoYU1hcCksdm9pZCAwIT09biYmKCEwPT09bi5tYXRyaXhBdXRvVXBkYXRlJiZuLnVwZGF0ZU1hdHJpeCgpLHQudXZUcmFuc2Zvcm0udmFsdWUuY29weShuLm1hdHJpeCkpfSkodCxvKTpvLmlzU2hhZG93TWF0ZXJpYWw/KHQuY29sb3IudmFsdWUuY29weShvLmNvbG9yKSx0Lm9wYWNpdHkudmFsdWU9by5vcGFjaXR5KTpvLmlzU2hhZGVyTWF0ZXJpYWwmJihvLnVuaWZvcm1zTmVlZFVwZGF0ZT0hMSl9fX1mdW5jdGlvbiBiZHQodD17fSl7Y29uc3QgZT12b2lkIDAhPT10LmNhbnZhcz90LmNhbnZhczooZnVuY3Rpb24gbigpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiY2FudmFzIik7cmV0dXJuIHQuc3R5bGUuZGlzcGxheT0iYmxvY2siLHR9KSgpLG89dm9pZCAwIT09dC5jb250ZXh0P3QuY29udGV4dDpudWxsLGk9dm9pZCAwIT09dC5hbHBoYSYmdC5hbHBoYSxhPXZvaWQgMD09PXQuZGVwdGh8fHQuZGVwdGgscj12b2lkIDA9PT10LnN0ZW5jaWx8fHQuc3RlbmNpbCxzPXZvaWQgMCE9PXQuYW50aWFsaWFzJiZ0LmFudGlhbGlhcyxsPXZvaWQgMD09PXQucHJlbXVsdGlwbGllZEFscGhhfHx0LnByZW11bHRpcGxpZWRBbHBoYSxjPXZvaWQgMCE9PXQucHJlc2VydmVEcmF3aW5nQnVmZmVyJiZ0LnByZXNlcnZlRHJhd2luZ0J1ZmZlcixkPXZvaWQgMCE9PXQucG93ZXJQcmVmZXJlbmNlP3QucG93ZXJQcmVmZXJlbmNlOiJkZWZhdWx0IixwPXZvaWQgMCE9PXQuZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdCYmdC5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0O2xldCBtPW51bGwsdT1udWxsO2NvbnN0IGY9W10sZz1bXTt0aGlzLmRvbUVsZW1lbnQ9ZSx0aGlzLmRlYnVnPXtjaGVja1NoYWRlckVycm9yczohMH0sdGhpcy5hdXRvQ2xlYXI9ITAsdGhpcy5hdXRvQ2xlYXJDb2xvcj0hMCx0aGlzLmF1dG9DbGVhckRlcHRoPSEwLHRoaXMuYXV0b0NsZWFyU3RlbmNpbD0hMCx0aGlzLnNvcnRPYmplY3RzPSEwLHRoaXMuY2xpcHBpbmdQbGFuZXM9W10sdGhpcy5sb2NhbENsaXBwaW5nRW5hYmxlZD0hMSx0aGlzLmdhbW1hRmFjdG9yPTIsdGhpcy5vdXRwdXRFbmNvZGluZz16aXQsdGhpcy5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cz0hMSx0aGlzLnRvbmVNYXBwaW5nPTAsdGhpcy50b25lTWFwcGluZ0V4cG9zdXJlPTE7Y29uc3QgaD10aGlzO2xldCBiPSExLHk9MCxfPTAsQz1udWxsLE09LTEsdj1udWxsO2NvbnN0IHg9bmV3IGFhdCxPPW5ldyBhYXQ7bGV0IFA9bnVsbCx3PWUud2lkdGgsaz1lLmhlaWdodCxTPTEsRD1udWxsLEU9bnVsbDtjb25zdCBSPW5ldyBhYXQoMCwwLHcsayksQT1uZXcgYWF0KDAsMCx3LGspO2xldCBUPSExO2NvbnN0IE49W10sej1uZXcgRXN0O2xldCBJPSExLEg9ITEsRj1udWxsO2NvbnN0IEw9bmV3IEJhdCxCPW5ldyBjYXQsVj17YmFja2dyb3VuZDpudWxsLGZvZzpudWxsLGVudmlyb25tZW50Om51bGwsb3ZlcnJpZGVNYXRlcmlhbDpudWxsLGlzU2NlbmU6ITB9O2Z1bmN0aW9uIGooKXtyZXR1cm4gbnVsbD09PUM/UzoxfWxldCBVLEcsVyxZLHEsWixYLEssSixRLCQsdHQsZXQsbnQsb3QsaXQsYXQscnQsc3QsbHQsY3QsZHQscHQsbXQ9bztmdW5jdGlvbiB1dCh0LG4pe2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKXtjb25zdCBpPWUuZ2V0Q29udGV4dCh0W29dLG4pO2lmKG51bGwhPT1pKXJldHVybiBpfXJldHVybiBudWxsfXRyeXtjb25zdCB0PXthbHBoYTppLGRlcHRoOmEsc3RlbmNpbDpyLGFudGlhbGlhczpzLHByZW11bHRpcGxpZWRBbHBoYTpsLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjpjLHBvd2VyUHJlZmVyZW5jZTpkLGZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ6cH07aWYoZS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixodCwhMSksZS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsYnQsITEpLG51bGw9PT1tdCl7Y29uc3QgZT1bIndlYmdsMiIsIndlYmdsIiwiZXhwZXJpbWVudGFsLXdlYmdsIl07aWYoITA9PT1oLmlzV2ViR0wxUmVuZGVyZXImJmUuc2hpZnQoKSxtdD11dChlLHQpLG51bGw9PT1tdCl0aHJvdyB1dChlKT9uZXcgRXJyb3IoIkVycm9yIGNyZWF0aW5nIFdlYkdMIGNvbnRleHQgd2l0aCB5b3VyIHNlbGVjdGVkIGF0dHJpYnV0ZXMuIik6bmV3IEVycm9yKCJFcnJvciBjcmVhdGluZyBXZWJHTCBjb250ZXh0LiIpfXZvaWQgMD09PW10LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCYmKG10LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdD1mdW5jdGlvbigpe3JldHVybntyYW5nZU1pbjoxLHJhbmdlTWF4OjEscHJlY2lzaW9uOjF9fSl9Y2F0Y2godCl7dGhyb3cgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlcjogIit0Lm1lc3NhZ2UpLHR9ZnVuY3Rpb24gZnQoKXtVPW5ldyBnbHQobXQpLEc9bmV3IEJzdChtdCxVLHQpLFUuaW5pdChHKSxkdD1uZXcgZGR0KG10LFUsRyksVz1uZXcgbGR0KG10LFUsRyksTlswXT0xMDI5LFk9bmV3IHlsdChtdCkscT1uZXcgWmN0LFo9bmV3IGNkdChtdCxVLFcscSxHLGR0LFkpLFg9bmV3IGpzdChoKSxLPW5ldyBmbHQoaCksSj1uZXcgQXN0KG10LEcpLHB0PW5ldyBGc3QobXQsVSxKLEcpLFE9bmV3IGhsdChtdCxKLFkscHQpLCQ9bmV3IHZsdChtdCxRLEosWSksc3Q9bmV3IE1sdChtdCksaXQ9bmV3IFZzdChxKSx0dD1uZXcgcWN0KGgsWCxLLFUsRyxwdCxpdCksZXQ9bmV3IGhkdChxKSxudD1uZXcgUWN0KHEpLG90PW5ldyBpZHQoVSxHKSxydD1uZXcgSHN0KGgsWCxXLCQsbCksYXQ9bmV3IHNkdChoLCQsRyksbHQ9bmV3IExzdChtdCxVLFksRyksY3Q9bmV3IGJsdChtdCxVLFksRyksWS5wcm9ncmFtcz10dC5wcm9ncmFtcyxoLmNhcGFiaWxpdGllcz1HLGguZXh0ZW5zaW9ucz1VLGgucHJvcGVydGllcz1xLGgucmVuZGVyTGlzdHM9bnQsaC5zaGFkb3dNYXA9YXQsaC5zdGF0ZT1XLGguaW5mbz1ZfWZ0KCk7Y29uc3QgZ3Q9bmV3IGdkdChoLG10KTtmdW5jdGlvbiBodCh0KXt0LnByZXZlbnREZWZhdWx0KCksY29uc29sZS5sb2coIlRIUkVFLldlYkdMUmVuZGVyZXI6IENvbnRleHQgTG9zdC4iKSxiPSEwfWZ1bmN0aW9uIGJ0KCl7Y29uc29sZS5sb2coIlRIUkVFLldlYkdMUmVuZGVyZXI6IENvbnRleHQgUmVzdG9yZWQuIiksYj0hMTtjb25zdCB0PVkuYXV0b1Jlc2V0LGU9YXQuZW5hYmxlZCxuPWF0LmF1dG9VcGRhdGUsbz1hdC5uZWVkc1VwZGF0ZSxpPWF0LnR5cGU7ZnQoKSxZLmF1dG9SZXNldD10LGF0LmVuYWJsZWQ9ZSxhdC5hdXRvVXBkYXRlPW4sYXQubmVlZHNVcGRhdGU9byxhdC50eXBlPWl9ZnVuY3Rpb24geXQodCl7Y29uc3QgZT10LnRhcmdldDtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHl0KSwoZnVuY3Rpb24gbih0KXsoZnVuY3Rpb24gZSh0KXtjb25zdCBlPXEuZ2V0KHQpLnByb2dyYW1zO3ZvaWQgMCE9PWUmJmUuZm9yRWFjaCgoZnVuY3Rpb24odCl7dHQucmVsZWFzZVByb2dyYW0odCl9KSl9KSh0KSxxLnJlbW92ZSh0KX0pKGUpfXRoaXMueHI9Z3QsdGhpcy5nZXRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIG10fSx0aGlzLmdldENvbnRleHRBdHRyaWJ1dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIG10LmdldENvbnRleHRBdHRyaWJ1dGVzKCl9LHRoaXMuZm9yY2VDb250ZXh0TG9zcz1mdW5jdGlvbigpe2NvbnN0IHQ9VS5nZXQoIldFQkdMX2xvc2VfY29udGV4dCIpO3QmJnQubG9zZUNvbnRleHQoKX0sdGhpcy5mb3JjZUNvbnRleHRSZXN0b3JlPWZ1bmN0aW9uKCl7Y29uc3QgdD1VLmdldCgiV0VCR0xfbG9zZV9jb250ZXh0Iik7dCYmdC5yZXN0b3JlQ29udGV4dCgpfSx0aGlzLmdldFBpeGVsUmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gU30sdGhpcy5zZXRQaXhlbFJhdGlvPWZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXQmJihTPXQsdGhpcy5zZXRTaXplKHcsaywhMSkpfSx0aGlzLmdldFNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2V0KHcsayl9LHRoaXMuc2V0U2l6ZT1mdW5jdGlvbih0LG4sbyl7Z3QuaXNQcmVzZW50aW5nP2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogQ2FuJ3QgY2hhbmdlIHNpemUgd2hpbGUgVlIgZGV2aWNlIGlzIHByZXNlbnRpbmcuIik6KHc9dCxrPW4sZS53aWR0aD1NYXRoLmZsb29yKHQqUyksZS5oZWlnaHQ9TWF0aC5mbG9vcihuKlMpLCExIT09byYmKGUuc3R5bGUud2lkdGg9dCsicHgiLGUuc3R5bGUuaGVpZ2h0PW4rInB4IiksdGhpcy5zZXRWaWV3cG9ydCgwLDAsdCxuKSl9LHRoaXMuZ2V0RHJhd2luZ0J1ZmZlclNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2V0KHcqUyxrKlMpLmZsb29yKCl9LHRoaXMuc2V0RHJhd2luZ0J1ZmZlclNpemU9ZnVuY3Rpb24odCxuLG8pe3c9dCxrPW4sUz1vLGUud2lkdGg9TWF0aC5mbG9vcih0Km8pLGUuaGVpZ2h0PU1hdGguZmxvb3IobipvKSx0aGlzLnNldFZpZXdwb3J0KDAsMCx0LG4pfSx0aGlzLmdldEN1cnJlbnRWaWV3cG9ydD1mdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KHgpfSx0aGlzLmdldFZpZXdwb3J0PWZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoUil9LHRoaXMuc2V0Vmlld3BvcnQ9ZnVuY3Rpb24odCxlLG4sbyl7dC5pc1ZlY3RvcjQ/Ui5zZXQodC54LHQueSx0LnosdC53KTpSLnNldCh0LGUsbixvKSxXLnZpZXdwb3J0KHguY29weShSKS5tdWx0aXBseVNjYWxhcihTKS5mbG9vcigpKX0sdGhpcy5nZXRTY2lzc29yPWZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoQSl9LHRoaXMuc2V0U2Npc3Nvcj1mdW5jdGlvbih0LGUsbixvKXt0LmlzVmVjdG9yND9BLnNldCh0LngsdC55LHQueix0LncpOkEuc2V0KHQsZSxuLG8pLFcuc2Npc3NvcihPLmNvcHkoQSkubXVsdGlwbHlTY2FsYXIoUykuZmxvb3IoKSl9LHRoaXMuZ2V0U2Npc3NvclRlc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gVH0sdGhpcy5zZXRTY2lzc29yVGVzdD1mdW5jdGlvbih0KXtXLnNldFNjaXNzb3JUZXN0KFQ9dCl9LHRoaXMuc2V0T3BhcXVlU29ydD1mdW5jdGlvbih0KXtEPXR9LHRoaXMuc2V0VHJhbnNwYXJlbnRTb3J0PWZ1bmN0aW9uKHQpe0U9dH0sdGhpcy5nZXRDbGVhckNvbG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkocnQuZ2V0Q2xlYXJDb2xvcigpKX0sdGhpcy5zZXRDbGVhckNvbG9yPWZ1bmN0aW9uKCl7cnQuc2V0Q2xlYXJDb2xvci5hcHBseShydCxhcmd1bWVudHMpfSx0aGlzLmdldENsZWFyQWxwaGE9ZnVuY3Rpb24oKXtyZXR1cm4gcnQuZ2V0Q2xlYXJBbHBoYSgpfSx0aGlzLnNldENsZWFyQWxwaGE9ZnVuY3Rpb24oKXtydC5zZXRDbGVhckFscGhhLmFwcGx5KHJ0LGFyZ3VtZW50cyl9LHRoaXMuY2xlYXI9ZnVuY3Rpb24odCxlLG4pe2xldCBvPTA7KHZvaWQgMD09PXR8fHQpJiYob3w9MTYzODQpLCh2b2lkIDA9PT1lfHxlKSYmKG98PTI1NiksKHZvaWQgMD09PW58fG4pJiYob3w9MTAyNCksbXQuY2xlYXIobyl9LHRoaXMuY2xlYXJDb2xvcj1mdW5jdGlvbigpe3RoaXMuY2xlYXIoITAsITEsITEpfSx0aGlzLmNsZWFyRGVwdGg9ZnVuY3Rpb24oKXt0aGlzLmNsZWFyKCExLCEwLCExKX0sdGhpcy5jbGVhclN0ZW5jaWw9ZnVuY3Rpb24oKXt0aGlzLmNsZWFyKCExLCExLCEwKX0sdGhpcy5kaXNwb3NlPWZ1bmN0aW9uKCl7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixodCwhMSksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsYnQsITEpLG50LmRpc3Bvc2UoKSxvdC5kaXNwb3NlKCkscS5kaXNwb3NlKCksWC5kaXNwb3NlKCksSy5kaXNwb3NlKCksJC5kaXNwb3NlKCkscHQuZGlzcG9zZSgpLGd0LmRpc3Bvc2UoKSxndC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZXNzaW9uc3RhcnQiLEN0KSxndC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZXNzaW9uZW5kIixNdCksRiYmKEYuZGlzcG9zZSgpLEY9bnVsbCksdnQuc3RvcCgpfSx0aGlzLnJlbmRlckJ1ZmZlckltbWVkaWF0ZT1mdW5jdGlvbih0LGUpe3B0LmluaXRBdHRyaWJ1dGVzKCk7Y29uc3Qgbj1xLmdldCh0KTt0Lmhhc1Bvc2l0aW9ucyYmIW4ucG9zaXRpb24mJihuLnBvc2l0aW9uPW10LmNyZWF0ZUJ1ZmZlcigpKSx0Lmhhc05vcm1hbHMmJiFuLm5vcm1hbCYmKG4ubm9ybWFsPW10LmNyZWF0ZUJ1ZmZlcigpKSx0Lmhhc1V2cyYmIW4udXYmJihuLnV2PW10LmNyZWF0ZUJ1ZmZlcigpKSx0Lmhhc0NvbG9ycyYmIW4uY29sb3ImJihuLmNvbG9yPW10LmNyZWF0ZUJ1ZmZlcigpKTtjb25zdCBvPWUuZ2V0QXR0cmlidXRlcygpO3QuaGFzUG9zaXRpb25zJiYobXQuYmluZEJ1ZmZlcigzNDk2MixuLnBvc2l0aW9uKSxtdC5idWZmZXJEYXRhKDM0OTYyLHQucG9zaXRpb25BcnJheSwzNTA0OCkscHQuZW5hYmxlQXR0cmlidXRlKG8ucG9zaXRpb24pLG10LnZlcnRleEF0dHJpYlBvaW50ZXIoby5wb3NpdGlvbiwzLDUxMjYsITEsMCwwKSksdC5oYXNOb3JtYWxzJiYobXQuYmluZEJ1ZmZlcigzNDk2MixuLm5vcm1hbCksbXQuYnVmZmVyRGF0YSgzNDk2Mix0Lm5vcm1hbEFycmF5LDM1MDQ4KSxwdC5lbmFibGVBdHRyaWJ1dGUoby5ub3JtYWwpLG10LnZlcnRleEF0dHJpYlBvaW50ZXIoby5ub3JtYWwsMyw1MTI2LCExLDAsMCkpLHQuaGFzVXZzJiYobXQuYmluZEJ1ZmZlcigzNDk2MixuLnV2KSxtdC5idWZmZXJEYXRhKDM0OTYyLHQudXZBcnJheSwzNTA0OCkscHQuZW5hYmxlQXR0cmlidXRlKG8udXYpLG10LnZlcnRleEF0dHJpYlBvaW50ZXIoby51diwyLDUxMjYsITEsMCwwKSksdC5oYXNDb2xvcnMmJihtdC5iaW5kQnVmZmVyKDM0OTYyLG4uY29sb3IpLG10LmJ1ZmZlckRhdGEoMzQ5NjIsdC5jb2xvckFycmF5LDM1MDQ4KSxwdC5lbmFibGVBdHRyaWJ1dGUoby5jb2xvciksbXQudmVydGV4QXR0cmliUG9pbnRlcihvLmNvbG9yLDMsNTEyNiwhMSwwLDApKSxwdC5kaXNhYmxlVW51c2VkQXR0cmlidXRlcygpLG10LmRyYXdBcnJheXMoNCwwLHQuY291bnQpLHQuY291bnQ9MH0sdGhpcy5yZW5kZXJCdWZmZXJEaXJlY3Q9ZnVuY3Rpb24odCxlLG4sbyxpLGEpe251bGw9PT1lJiYoZT1WKTtjb25zdCByPWkuaXNNZXNoJiZpLm1hdHJpeFdvcmxkLmRldGVybWluYW50KCk8MCxzPVN0KHQsZSxvLGkpO1cuc2V0TWF0ZXJpYWwobyxyKTtsZXQgbD1uLmluZGV4O2NvbnN0IGM9bi5hdHRyaWJ1dGVzLnBvc2l0aW9uO2lmKG51bGw9PT1sKXtpZih2b2lkIDA9PT1jfHwwPT09Yy5jb3VudClyZXR1cm59ZWxzZSBpZigwPT09bC5jb3VudClyZXR1cm47bGV0IGQscD0xOyEwPT09by53aXJlZnJhbWUmJihsPVEuZ2V0V2lyZWZyYW1lQXR0cmlidXRlKG4pLHA9Miksdm9pZCAwPT09bi5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24mJnZvaWQgMD09PW4ubW9ycGhBdHRyaWJ1dGVzLm5vcm1hbHx8c3QudXBkYXRlKGksbixvLHMpLHB0LnNldHVwKGksbyxzLG4sbCk7bGV0IG09bHQ7bnVsbCE9PWwmJihkPUouZ2V0KGwpLG09Y3QsbS5zZXRJbmRleChkKSk7Y29uc3QgdT1udWxsIT09bD9sLmNvdW50OmMuY291bnQsZj1uLmRyYXdSYW5nZS5zdGFydCpwLGc9bi5kcmF3UmFuZ2UuY291bnQqcCxoPW51bGwhPT1hP2Euc3RhcnQqcDowLGI9bnVsbCE9PWE/YS5jb3VudCpwOjEvMCx5PU1hdGgubWF4KGYsaCksXz1NYXRoLm1pbih1LGYrZyxoK2IpLTEsQz1NYXRoLm1heCgwLF8teSsxKTtpZigwIT09Qyl7aWYoaS5pc01lc2gpITA9PT1vLndpcmVmcmFtZT8oVy5zZXRMaW5lV2lkdGgoby53aXJlZnJhbWVMaW5ld2lkdGgqaigpKSxtLnNldE1vZGUoMSkpOm0uc2V0TW9kZSg0KTtlbHNlIGlmKGkuaXNMaW5lKXtsZXQgdD1vLmxpbmV3aWR0aDt2b2lkIDA9PT10JiYodD0xKSxXLnNldExpbmVXaWR0aCh0KmooKSksbS5zZXRNb2RlKGkuaXNMaW5lU2VnbWVudHM/MTppLmlzTGluZUxvb3A/MjozKX1lbHNlIGkuaXNQb2ludHM/bS5zZXRNb2RlKDApOmkuaXNTcHJpdGUmJm0uc2V0TW9kZSg0KTtpZihpLmlzSW5zdGFuY2VkTWVzaCltLnJlbmRlckluc3RhbmNlcyh5LEMsaS5jb3VudCk7ZWxzZSBpZihuLmlzSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkpe2NvbnN0IHQ9TWF0aC5taW4obi5pbnN0YW5jZUNvdW50LG4uX21heEluc3RhbmNlQ291bnQpO20ucmVuZGVySW5zdGFuY2VzKHksQyx0KX1lbHNlIG0ucmVuZGVyKHksQyl9fSx0aGlzLmNvbXBpbGU9ZnVuY3Rpb24odCxlKXt1PW90LmdldCh0KSx1LmluaXQoKSxnLnB1c2godSksdC50cmF2ZXJzZVZpc2libGUoKGZ1bmN0aW9uKHQpe3QuaXNMaWdodCYmdC5sYXllcnMudGVzdChlLmxheWVycykmJih1LnB1c2hMaWdodCh0KSx0LmNhc3RTaGFkb3cmJnUucHVzaFNoYWRvdyh0KSl9KSksdS5zZXR1cExpZ2h0cygpLHQudHJhdmVyc2UoKGZ1bmN0aW9uKGUpe2NvbnN0IG49ZS5tYXRlcmlhbDtpZihuKWlmKEFycmF5LmlzQXJyYXkobikpZm9yKGxldCBvPTA7bzxuLmxlbmd0aDtvKyspd3QobltvXSx0LGUpO2Vsc2Ugd3Qobix0LGUpfSkpLGcucG9wKCksdT1udWxsfTtsZXQgX3Q9bnVsbDtmdW5jdGlvbiBDdCgpe3Z0LnN0b3AoKX1mdW5jdGlvbiBNdCgpe3Z0LnN0YXJ0KCl9Y29uc3QgdnQ9bmV3IFJzdDtmdW5jdGlvbiB4dCh0LGUsbixvKXtpZighMT09PXQudmlzaWJsZSlyZXR1cm47aWYodC5sYXllcnMudGVzdChlLmxheWVycykpaWYodC5pc0dyb3VwKW49dC5yZW5kZXJPcmRlcjtlbHNlIGlmKHQuaXNMT0QpITA9PT10LmF1dG9VcGRhdGUmJnQudXBkYXRlKGUpO2Vsc2UgaWYodC5pc0xpZ2h0KXUucHVzaExpZ2h0KHQpLHQuY2FzdFNoYWRvdyYmdS5wdXNoU2hhZG93KHQpO2Vsc2UgaWYodC5pc1Nwcml0ZSl7aWYoIXQuZnJ1c3R1bUN1bGxlZHx8ei5pbnRlcnNlY3RzU3ByaXRlKHQpKXtvJiZCLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKS5hcHBseU1hdHJpeDQoTCk7Y29uc3QgZT0kLnVwZGF0ZSh0KSxpPXQubWF0ZXJpYWw7aS52aXNpYmxlJiZtLnB1c2godCxlLGksbixCLnosbnVsbCl9fWVsc2UgaWYodC5pc0ltbWVkaWF0ZVJlbmRlck9iamVjdClvJiZCLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKS5hcHBseU1hdHJpeDQoTCksbS5wdXNoKHQsbnVsbCx0Lm1hdGVyaWFsLG4sQi56LG51bGwpO2Vsc2UgaWYoKHQuaXNNZXNofHx0LmlzTGluZXx8dC5pc1BvaW50cykmJih0LmlzU2tpbm5lZE1lc2gmJnQuc2tlbGV0b24uZnJhbWUhPT1ZLnJlbmRlci5mcmFtZSYmKHQuc2tlbGV0b24udXBkYXRlKCksdC5za2VsZXRvbi5mcmFtZT1ZLnJlbmRlci5mcmFtZSksIXQuZnJ1c3R1bUN1bGxlZHx8ei5pbnRlcnNlY3RzT2JqZWN0KHQpKSl7byYmQi5zZXRGcm9tTWF0cml4UG9zaXRpb24odC5tYXRyaXhXb3JsZCkuYXBwbHlNYXRyaXg0KEwpO2NvbnN0IGU9JC51cGRhdGUodCksaT10Lm1hdGVyaWFsO2lmKEFycmF5LmlzQXJyYXkoaSkpe2NvbnN0IG89ZS5ncm91cHM7Zm9yKGxldCBhPTAscj1vLmxlbmd0aDthPHI7YSsrKXtjb25zdCByPW9bYV0scz1pW3IubWF0ZXJpYWxJbmRleF07cyYmcy52aXNpYmxlJiZtLnB1c2godCxlLHMsbixCLnoscil9fWVsc2UgaS52aXNpYmxlJiZtLnB1c2godCxlLGksbixCLnosbnVsbCl9Y29uc3QgaT10LmNoaWxkcmVuO2ZvcihsZXQgdD0wLGE9aS5sZW5ndGg7dDxhO3QrKyl4dChpW3RdLGUsbixvKX1mdW5jdGlvbiBPdCh0LGUsbil7Y29uc3Qgbz0hMD09PWUuaXNTY2VuZT9lLm92ZXJyaWRlTWF0ZXJpYWw6bnVsbDtpZihuLmlzQXJyYXlDYW1lcmEpe2NvbnN0IGk9bi5jYW1lcmFzO2ZvcihsZXQgbj0wLGE9aS5sZW5ndGg7bjxhO24rKyl7Y29uc3QgYT1pW25dO1cudmlld3BvcnQoeC5jb3B5KGEudmlld3BvcnQpKSx1LnNldHVwTGlnaHRzVmlldyhhKTtmb3IobGV0IG49MCxpPXQubGVuZ3RoO248aTtuKyspe2NvbnN0IGk9dFtuXSxyPWkub2JqZWN0LHM9aS5nZW9tZXRyeSxsPW51bGw9PT1vP2kubWF0ZXJpYWw6byxjPWkuZ3JvdXA7ci5sYXllcnMudGVzdChhLmxheWVycykmJlB0KHIsZSxhLHMsbCxjKX19fWVsc2UgZm9yKGxldCBpPTAsYT10Lmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPXRbaV07UHQoYS5vYmplY3QsZSxuLGEuZ2VvbWV0cnksbnVsbD09PW8/YS5tYXRlcmlhbDpvLGEuZ3JvdXApfX1mdW5jdGlvbiBQdCh0LGUsbixvLGksYSl7aWYodC5vbkJlZm9yZVJlbmRlcihoLGUsbixvLGksYSksdC5tb2RlbFZpZXdNYXRyaXgubXVsdGlwbHlNYXRyaWNlcyhuLm1hdHJpeFdvcmxkSW52ZXJzZSx0Lm1hdHJpeFdvcmxkKSx0Lm5vcm1hbE1hdHJpeC5nZXROb3JtYWxNYXRyaXgodC5tb2RlbFZpZXdNYXRyaXgpLHQuaXNJbW1lZGlhdGVSZW5kZXJPYmplY3Qpe2NvbnN0IG89U3QobixlLGksdCk7Vy5zZXRNYXRlcmlhbChpKSxwdC5yZXNldCgpLChmdW5jdGlvbiByKHQsZSl7dC5yZW5kZXIoKGZ1bmN0aW9uKHQpe2gucmVuZGVyQnVmZmVySW1tZWRpYXRlKHQsZSl9KSl9KSh0LG8pfWVsc2UhMD09PWkudHJhbnNwYXJlbnQmJjI9PT1pLnNpZGU/KGkuc2lkZT0xLGkubmVlZHNVcGRhdGU9ITAsaC5yZW5kZXJCdWZmZXJEaXJlY3QobixlLG8saSx0LGEpLGkuc2lkZT0wLGkubmVlZHNVcGRhdGU9ITAsaC5yZW5kZXJCdWZmZXJEaXJlY3QobixlLG8saSx0LGEpLGkuc2lkZT0yKTpoLnJlbmRlckJ1ZmZlckRpcmVjdChuLGUsbyxpLHQsYSk7dC5vbkFmdGVyUmVuZGVyKGgsZSxuLG8saSxhKX1mdW5jdGlvbiB3dCh0LGUsbil7ITAhPT1lLmlzU2NlbmUmJihlPVYpO2NvbnN0IG89cS5nZXQodCksaT11LnN0YXRlLmxpZ2h0cyxhPWkuc3RhdGUudmVyc2lvbixyPXR0LmdldFBhcmFtZXRlcnModCxpLnN0YXRlLHUuc3RhdGUuc2hhZG93c0FycmF5LGUsbikscz10dC5nZXRQcm9ncmFtQ2FjaGVLZXkocik7bGV0IGw9by5wcm9ncmFtcztvLmVudmlyb25tZW50PXQuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9lLmVudmlyb25tZW50Om51bGwsby5mb2c9ZS5mb2csby5lbnZNYXA9KHQuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9LOlgpLmdldCh0LmVudk1hcHx8by5lbnZpcm9ubWVudCksdm9pZCAwPT09bCYmKHQuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIseXQpLGw9bmV3IE1hcCxvLnByb2dyYW1zPWwpO2xldCBjPWwuZ2V0KHMpO2lmKHZvaWQgMCE9PWMpe2lmKG8uY3VycmVudFByb2dyYW09PT1jJiZvLmxpZ2h0c1N0YXRlVmVyc2lvbj09PWEpcmV0dXJuIGt0KHQsciksY31lbHNlIHIudW5pZm9ybXM9dHQuZ2V0VW5pZm9ybXModCksdC5vbkJ1aWxkKHIsaCksdC5vbkJlZm9yZUNvbXBpbGUocixoKSxjPXR0LmFjcXVpcmVQcm9ncmFtKHIscyksbC5zZXQocyxjKSxvLnVuaWZvcm1zPXIudW5pZm9ybXM7Y29uc3QgZD1vLnVuaWZvcm1zOyh0LmlzU2hhZGVyTWF0ZXJpYWx8fHQuaXNSYXdTaGFkZXJNYXRlcmlhbCkmJiEwIT09dC5jbGlwcGluZ3x8KGQuY2xpcHBpbmdQbGFuZXM9aXQudW5pZm9ybSksa3QodCxyKSxvLm5lZWRzTGlnaHRzPShmdW5jdGlvbiBwKHQpe3JldHVybiB0LmlzTWVzaExhbWJlcnRNYXRlcmlhbHx8dC5pc01lc2hUb29uTWF0ZXJpYWx8fHQuaXNNZXNoUGhvbmdNYXRlcmlhbHx8dC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHx0LmlzU2hhZG93TWF0ZXJpYWx8fHQuaXNTaGFkZXJNYXRlcmlhbCYmITA9PT10LmxpZ2h0c30pKHQpLG8ubGlnaHRzU3RhdGVWZXJzaW9uPWEsby5uZWVkc0xpZ2h0cyYmKGQuYW1iaWVudExpZ2h0Q29sb3IudmFsdWU9aS5zdGF0ZS5hbWJpZW50LGQubGlnaHRQcm9iZS52YWx1ZT1pLnN0YXRlLnByb2JlLGQuZGlyZWN0aW9uYWxMaWdodHMudmFsdWU9aS5zdGF0ZS5kaXJlY3Rpb25hbCxkLmRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzLnZhbHVlPWkuc3RhdGUuZGlyZWN0aW9uYWxTaGFkb3csZC5zcG90TGlnaHRzLnZhbHVlPWkuc3RhdGUuc3BvdCxkLnNwb3RMaWdodFNoYWRvd3MudmFsdWU9aS5zdGF0ZS5zcG90U2hhZG93LGQucmVjdEFyZWFMaWdodHMudmFsdWU9aS5zdGF0ZS5yZWN0QXJlYSxkLmx0Y18xLnZhbHVlPWkuc3RhdGUucmVjdEFyZWFMVEMxLGQubHRjXzIudmFsdWU9aS5zdGF0ZS5yZWN0QXJlYUxUQzIsZC5wb2ludExpZ2h0cy52YWx1ZT1pLnN0YXRlLnBvaW50LGQucG9pbnRMaWdodFNoYWRvd3MudmFsdWU9aS5zdGF0ZS5wb2ludFNoYWRvdyxkLmhlbWlzcGhlcmVMaWdodHMudmFsdWU9aS5zdGF0ZS5oZW1pLGQuZGlyZWN0aW9uYWxTaGFkb3dNYXAudmFsdWU9aS5zdGF0ZS5kaXJlY3Rpb25hbFNoYWRvd01hcCxkLmRpcmVjdGlvbmFsU2hhZG93TWF0cml4LnZhbHVlPWkuc3RhdGUuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXgsZC5zcG90U2hhZG93TWFwLnZhbHVlPWkuc3RhdGUuc3BvdFNoYWRvd01hcCxkLnNwb3RTaGFkb3dNYXRyaXgudmFsdWU9aS5zdGF0ZS5zcG90U2hhZG93TWF0cml4LGQucG9pbnRTaGFkb3dNYXAudmFsdWU9aS5zdGF0ZS5wb2ludFNoYWRvd01hcCxkLnBvaW50U2hhZG93TWF0cml4LnZhbHVlPWkuc3RhdGUucG9pbnRTaGFkb3dNYXRyaXgpO2NvbnN0IG09Yy5nZXRVbmlmb3JtcygpLGY9d2N0LnNlcVdpdGhWYWx1ZShtLnNlcSxkKTtyZXR1cm4gby5jdXJyZW50UHJvZ3JhbT1jLG8udW5pZm9ybXNMaXN0PWYsY31mdW5jdGlvbiBrdCh0LGUpe2NvbnN0IG49cS5nZXQodCk7bi5vdXRwdXRFbmNvZGluZz1lLm91dHB1dEVuY29kaW5nLG4uaW5zdGFuY2luZz1lLmluc3RhbmNpbmcsbi5za2lubmluZz1lLnNraW5uaW5nLG4ubW9ycGhUYXJnZXRzPWUubW9ycGhUYXJnZXRzLG4ubW9ycGhOb3JtYWxzPWUubW9ycGhOb3JtYWxzLG4ubnVtQ2xpcHBpbmdQbGFuZXM9ZS5udW1DbGlwcGluZ1BsYW5lcyxuLm51bUludGVyc2VjdGlvbj1lLm51bUNsaXBJbnRlcnNlY3Rpb24sbi52ZXJ0ZXhBbHBoYXM9ZS52ZXJ0ZXhBbHBoYXMsbi52ZXJ0ZXhUYW5nZW50cz1lLnZlcnRleFRhbmdlbnRzfWZ1bmN0aW9uIFN0KHQsZSxuLG8peyEwIT09ZS5pc1NjZW5lJiYoZT1WKSxaLnJlc2V0VGV4dHVyZVVuaXRzKCk7Y29uc3QgaT1lLmZvZyxhPW51bGw9PT1DP2gub3V0cHV0RW5jb2Rpbmc6Qy50ZXh0dXJlLmVuY29kaW5nLHI9KG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9LOlgpLmdldChuLmVudk1hcHx8KG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9lLmVudmlyb25tZW50Om51bGwpKSxzPSEwPT09bi52ZXJ0ZXhDb2xvcnMmJiEhby5nZW9tZXRyeSYmISFvLmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3ImJjQ9PT1vLmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3IuaXRlbVNpemUsbD0hIW8uZ2VvbWV0cnkmJiEhby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnRhbmdlbnQsYz0hIW8uZ2VvbWV0cnkmJiEhby5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sZD0hIW8uZ2VvbWV0cnkmJiEhby5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsLHA9cS5nZXQobiksbT11LnN0YXRlLmxpZ2h0czshMCE9PUl8fCEwIT09SCYmdD09PXZ8fGl0LnNldFN0YXRlKG4sdCx0PT09diYmbi5pZD09PU0pO2xldCBmPSExO24udmVyc2lvbj09PXAuX192ZXJzaW9uP3AubmVlZHNMaWdodHMmJnAubGlnaHRzU3RhdGVWZXJzaW9uIT09bS5zdGF0ZS52ZXJzaW9ufHxwLm91dHB1dEVuY29kaW5nIT09YXx8by5pc0luc3RhbmNlZE1lc2gmJiExPT09cC5pbnN0YW5jaW5nP2Y9ITA6by5pc0luc3RhbmNlZE1lc2h8fCEwIT09cC5pbnN0YW5jaW5nP28uaXNTa2lubmVkTWVzaCYmITE9PT1wLnNraW5uaW5nP2Y9ITA6by5pc1NraW5uZWRNZXNofHwhMCE9PXAuc2tpbm5pbmc/cC5lbnZNYXAhPT1yfHxuLmZvZyYmcC5mb2chPT1pP2Y9ITA6dm9pZCAwPT09cC5udW1DbGlwcGluZ1BsYW5lc3x8cC5udW1DbGlwcGluZ1BsYW5lcz09PWl0Lm51bVBsYW5lcyYmcC5udW1JbnRlcnNlY3Rpb249PT1pdC5udW1JbnRlcnNlY3Rpb24/KHAudmVydGV4QWxwaGFzIT09c3x8cC52ZXJ0ZXhUYW5nZW50cyE9PWx8fHAubW9ycGhUYXJnZXRzIT09Y3x8cC5tb3JwaE5vcm1hbHMhPT1kKSYmKGY9ITApOmY9ITA6Zj0hMDpmPSEwOihmPSEwLHAuX192ZXJzaW9uPW4udmVyc2lvbik7bGV0IGc9cC5jdXJyZW50UHJvZ3JhbTshMD09PWYmJihnPXd0KG4sZSxvKSk7bGV0IGI9ITEseT0hMSxfPSExO2NvbnN0IHg9Zy5nZXRVbmlmb3JtcygpLE89cC51bmlmb3JtcztpZihXLnVzZVByb2dyYW0oZy5wcm9ncmFtKSYmKGI9ITAseT0hMCxfPSEwKSxuLmlkIT09TSYmKE09bi5pZCx5PSEwKSxifHx2IT09dCl7aWYoeC5zZXRWYWx1ZShtdCwicHJvamVjdGlvbk1hdHJpeCIsdC5wcm9qZWN0aW9uTWF0cml4KSxHLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJnguc2V0VmFsdWUobXQsImxvZ0RlcHRoQnVmRkMiLDIvKE1hdGgubG9nKHQuZmFyKzEpL01hdGguTE4yKSksdiE9PXQmJih2PXQseT0hMCxfPSEwKSxuLmlzU2hhZGVyTWF0ZXJpYWx8fG4uaXNNZXNoUGhvbmdNYXRlcmlhbHx8bi5pc01lc2hUb29uTWF0ZXJpYWx8fG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbHx8bi5lbnZNYXApe2NvbnN0IGU9eC5tYXAuY2FtZXJhUG9zaXRpb247dm9pZCAwIT09ZSYmZS5zZXRWYWx1ZShtdCxCLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSl9KG4uaXNNZXNoUGhvbmdNYXRlcmlhbHx8bi5pc01lc2hUb29uTWF0ZXJpYWx8fG4uaXNNZXNoTGFtYmVydE1hdGVyaWFsfHxuLmlzTWVzaEJhc2ljTWF0ZXJpYWx8fG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbHx8bi5pc1NoYWRlck1hdGVyaWFsKSYmeC5zZXRWYWx1ZShtdCwiaXNPcnRob2dyYXBoaWMiLCEwPT09dC5pc09ydGhvZ3JhcGhpY0NhbWVyYSksKG4uaXNNZXNoUGhvbmdNYXRlcmlhbHx8bi5pc01lc2hUb29uTWF0ZXJpYWx8fG4uaXNNZXNoTGFtYmVydE1hdGVyaWFsfHxuLmlzTWVzaEJhc2ljTWF0ZXJpYWx8fG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbHx8bi5pc1NoYWRlck1hdGVyaWFsfHxuLmlzU2hhZG93TWF0ZXJpYWx8fG8uaXNTa2lubmVkTWVzaCkmJnguc2V0VmFsdWUobXQsInZpZXdNYXRyaXgiLHQubWF0cml4V29ybGRJbnZlcnNlKX1pZihvLmlzU2tpbm5lZE1lc2gpe3guc2V0T3B0aW9uYWwobXQsbywiYmluZE1hdHJpeCIpLHguc2V0T3B0aW9uYWwobXQsbywiYmluZE1hdHJpeEludmVyc2UiKTtjb25zdCB0PW8uc2tlbGV0b247dCYmKEcuZmxvYXRWZXJ0ZXhUZXh0dXJlcz8obnVsbD09PXQuYm9uZVRleHR1cmUmJnQuY29tcHV0ZUJvbmVUZXh0dXJlKCkseC5zZXRWYWx1ZShtdCwiYm9uZVRleHR1cmUiLHQuYm9uZVRleHR1cmUsWikseC5zZXRWYWx1ZShtdCwiYm9uZVRleHR1cmVTaXplIix0LmJvbmVUZXh0dXJlU2l6ZSkpOnguc2V0T3B0aW9uYWwobXQsdCwiYm9uZU1hdHJpY2VzIikpfXJldHVybih5fHxwLnJlY2VpdmVTaGFkb3chPT1vLnJlY2VpdmVTaGFkb3cpJiYocC5yZWNlaXZlU2hhZG93PW8ucmVjZWl2ZVNoYWRvdyx4LnNldFZhbHVlKG10LCJyZWNlaXZlU2hhZG93IixvLnJlY2VpdmVTaGFkb3cpKSx5JiYoeC5zZXRWYWx1ZShtdCwidG9uZU1hcHBpbmdFeHBvc3VyZSIsaC50b25lTWFwcGluZ0V4cG9zdXJlKSxwLm5lZWRzTGlnaHRzJiYoZnVuY3Rpb24gUCh0LGUpe3QuYW1iaWVudExpZ2h0Q29sb3IubmVlZHNVcGRhdGU9ZSx0LmxpZ2h0UHJvYmUubmVlZHNVcGRhdGU9ZSx0LmRpcmVjdGlvbmFsTGlnaHRzLm5lZWRzVXBkYXRlPWUsdC5kaXJlY3Rpb25hbExpZ2h0U2hhZG93cy5uZWVkc1VwZGF0ZT1lLHQucG9pbnRMaWdodHMubmVlZHNVcGRhdGU9ZSx0LnBvaW50TGlnaHRTaGFkb3dzLm5lZWRzVXBkYXRlPWUsdC5zcG90TGlnaHRzLm5lZWRzVXBkYXRlPWUsdC5zcG90TGlnaHRTaGFkb3dzLm5lZWRzVXBkYXRlPWUsdC5yZWN0QXJlYUxpZ2h0cy5uZWVkc1VwZGF0ZT1lLHQuaGVtaXNwaGVyZUxpZ2h0cy5uZWVkc1VwZGF0ZT1lfSkoTyxfKSxpJiZuLmZvZyYmZXQucmVmcmVzaEZvZ1VuaWZvcm1zKE8saSksZXQucmVmcmVzaE1hdGVyaWFsVW5pZm9ybXMoTyxuLFMsayxGKSx3Y3QudXBsb2FkKG10LHAudW5pZm9ybXNMaXN0LE8sWikpLG4uaXNTaGFkZXJNYXRlcmlhbCYmITA9PT1uLnVuaWZvcm1zTmVlZFVwZGF0ZSYmKHdjdC51cGxvYWQobXQscC51bmlmb3Jtc0xpc3QsTyxaKSxuLnVuaWZvcm1zTmVlZFVwZGF0ZT0hMSksbi5pc1Nwcml0ZU1hdGVyaWFsJiZ4LnNldFZhbHVlKG10LCJjZW50ZXIiLG8uY2VudGVyKSx4LnNldFZhbHVlKG10LCJtb2RlbFZpZXdNYXRyaXgiLG8ubW9kZWxWaWV3TWF0cml4KSx4LnNldFZhbHVlKG10LCJub3JtYWxNYXRyaXgiLG8ubm9ybWFsTWF0cml4KSx4LnNldFZhbHVlKG10LCJtb2RlbE1hdHJpeCIsby5tYXRyaXhXb3JsZCksZ312dC5zZXRBbmltYXRpb25Mb29wKChmdW5jdGlvbiBEdCh0KXtfdCYmX3QodCl9KSksInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZ0LnNldENvbnRleHQod2luZG93KSx0aGlzLnNldEFuaW1hdGlvbkxvb3A9ZnVuY3Rpb24odCl7X3Q9dCxndC5zZXRBbmltYXRpb25Mb29wKHQpLG51bGw9PT10P3Z0LnN0b3AoKTp2dC5zdGFydCgpfSxndC5hZGRFdmVudExpc3RlbmVyKCJzZXNzaW9uc3RhcnQiLEN0KSxndC5hZGRFdmVudExpc3RlbmVyKCJzZXNzaW9uZW5kIixNdCksdGhpcy5yZW5kZXI9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lJiYhMCE9PWUuaXNDYW1lcmEpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZW5kZXI6IGNhbWVyYSBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuQ2FtZXJhLiIpO2lmKCEwPT09YilyZXR1cm47ITA9PT10LmF1dG9VcGRhdGUmJnQudXBkYXRlTWF0cml4V29ybGQoKSxudWxsPT09ZS5wYXJlbnQmJmUudXBkYXRlTWF0cml4V29ybGQoKSwhMD09PWd0LmVuYWJsZWQmJiEwPT09Z3QuaXNQcmVzZW50aW5nJiYoITA9PT1ndC5jYW1lcmFBdXRvVXBkYXRlJiZndC51cGRhdGVDYW1lcmEoZSksZT1ndC5nZXRDYW1lcmEoKSksITA9PT10LmlzU2NlbmUmJnQub25CZWZvcmVSZW5kZXIoaCx0LGUsQyksdT1vdC5nZXQodCxnLmxlbmd0aCksdS5pbml0KCksZy5wdXNoKHUpLEwubXVsdGlwbHlNYXRyaWNlcyhlLnByb2plY3Rpb25NYXRyaXgsZS5tYXRyaXhXb3JsZEludmVyc2UpLHouc2V0RnJvbVByb2plY3Rpb25NYXRyaXgoTCksSD10aGlzLmxvY2FsQ2xpcHBpbmdFbmFibGVkLEk9aXQuaW5pdCh0aGlzLmNsaXBwaW5nUGxhbmVzLEgsZSksbT1udC5nZXQodCxmLmxlbmd0aCksbS5pbml0KCksZi5wdXNoKG0pLHh0KHQsZSwwLGguc29ydE9iamVjdHMpLG0uZmluaXNoKCksITA9PT1oLnNvcnRPYmplY3RzJiZtLnNvcnQoRCxFKSwhMD09PUkmJml0LmJlZ2luU2hhZG93cygpLGF0LnJlbmRlcih1LnN0YXRlLnNoYWRvd3NBcnJheSx0LGUpLHUuc2V0dXBMaWdodHMoKSx1LnNldHVwTGlnaHRzVmlldyhlKSwhMD09PUkmJml0LmVuZFNoYWRvd3MoKSwhMD09PXRoaXMuaW5mby5hdXRvUmVzZXQmJnRoaXMuaW5mby5yZXNldCgpLHJ0LnJlbmRlcihtLHQpO2NvbnN0IG49bS5vcGFxdWUsbz1tLnRyYW5zbWlzc2l2ZSxpPW0udHJhbnNwYXJlbnQ7bi5sZW5ndGg+MCYmT3Qobix0LGUpLG8ubGVuZ3RoPjAmJihmdW5jdGlvbiBhKHQsZSxuLG8pe251bGw9PT1GJiYoRj1uZXcoITA9PT1zJiYhMD09PUcuaXNXZWJHTDI/c2F0OnJhdCkoMTAyNCwxMDI0LHtnZW5lcmF0ZU1pcG1hcHM6ITAsdHlwZTpudWxsIT09ZHQuY29udmVydCh4aXQpP3hpdDpfaXQsbWluRmlsdGVyOnlpdCxtYWdGaWx0ZXI6aGl0LHdyYXBTOmZpdCx3cmFwVDpmaXR9KSk7Y29uc3QgaT1oLmdldFJlbmRlclRhcmdldCgpO2guc2V0UmVuZGVyVGFyZ2V0KEYpLGguY2xlYXIoKTtjb25zdCBhPWgudG9uZU1hcHBpbmc7aC50b25lTWFwcGluZz0wLE90KHQsbixvKSxoLnRvbmVNYXBwaW5nPWEsWi51cGRhdGVNdWx0aXNhbXBsZVJlbmRlclRhcmdldChGKSxaLnVwZGF0ZVJlbmRlclRhcmdldE1pcG1hcChGKSxoLnNldFJlbmRlclRhcmdldChpKSxPdChlLG4sbyl9KShuLG8sdCxlKSxpLmxlbmd0aD4wJiZPdChpLHQsZSksbnVsbCE9PUMmJihaLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KEMpLFoudXBkYXRlUmVuZGVyVGFyZ2V0TWlwbWFwKEMpKSwhMD09PXQuaXNTY2VuZSYmdC5vbkFmdGVyUmVuZGVyKGgsdCxlKSxXLmJ1ZmZlcnMuZGVwdGguc2V0VGVzdCghMCksVy5idWZmZXJzLmRlcHRoLnNldE1hc2soITApLFcuYnVmZmVycy5jb2xvci5zZXRNYXNrKCEwKSxXLnNldFBvbHlnb25PZmZzZXQoITEpLHB0LnJlc2V0RGVmYXVsdFN0YXRlKCksTT0tMSx2PW51bGwsZy5wb3AoKSx1PWcubGVuZ3RoPjA/Z1tnLmxlbmd0aC0xXTpudWxsLGYucG9wKCksbT1mLmxlbmd0aD4wP2ZbZi5sZW5ndGgtMV06bnVsbH0sdGhpcy5nZXRBY3RpdmVDdWJlRmFjZT1mdW5jdGlvbigpe3JldHVybiB5fSx0aGlzLmdldEFjdGl2ZU1pcG1hcExldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIF99LHRoaXMuZ2V0UmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIEN9LHRoaXMuc2V0UmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKHQsZT0wLG49MCl7Qz10LHk9ZSxfPW4sdCYmdm9pZCAwPT09cS5nZXQodCkuX193ZWJnbEZyYW1lYnVmZmVyJiZaLnNldHVwUmVuZGVyVGFyZ2V0KHQpO2xldCBvPW51bGwsaT0hMSxhPSExO2lmKHQpe2NvbnN0IG49dC50ZXh0dXJlOyhuLmlzRGF0YVRleHR1cmUzRHx8bi5pc0RhdGFUZXh0dXJlMkRBcnJheSkmJihhPSEwKTtjb25zdCByPXEuZ2V0KHQpLl9fd2ViZ2xGcmFtZWJ1ZmZlcjt0LmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0PyhvPXJbZV0saT0hMCk6bz10LmlzV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldD9xLmdldCh0KS5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXI6cix4LmNvcHkodC52aWV3cG9ydCksTy5jb3B5KHQuc2Npc3NvciksUD10LnNjaXNzb3JUZXN0fWVsc2UgeC5jb3B5KFIpLm11bHRpcGx5U2NhbGFyKFMpLmZsb29yKCksTy5jb3B5KEEpLm11bHRpcGx5U2NhbGFyKFMpLmZsb29yKCksUD1UO2lmKFcuYmluZEZyYW1lYnVmZmVyKDM2MTYwLG8pJiZHLmRyYXdCdWZmZXJzKXtsZXQgZT0hMTtpZih0KWlmKHQuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyl7Y29uc3Qgbj10LnRleHR1cmU7aWYoTi5sZW5ndGghPT1uLmxlbmd0aHx8MzYwNjQhPT1OWzBdKXtmb3IobGV0IHQ9MCxlPW4ubGVuZ3RoO3Q8ZTt0KyspTlt0XT0zNjA2NCt0O04ubGVuZ3RoPW4ubGVuZ3RoLGU9ITB9fWVsc2UgMT09PU4ubGVuZ3RoJiYzNjA2ND09PU5bMF18fChOWzBdPTM2MDY0LE4ubGVuZ3RoPTEsZT0hMCk7ZWxzZSAxPT09Ti5sZW5ndGgmJjEwMjk9PT1OWzBdfHwoTlswXT0xMDI5LE4ubGVuZ3RoPTEsZT0hMCk7ZSYmKEcuaXNXZWJHTDI/bXQuZHJhd0J1ZmZlcnMoTik6VS5nZXQoIldFQkdMX2RyYXdfYnVmZmVycyIpLmRyYXdCdWZmZXJzV0VCR0woTikpfWlmKFcudmlld3BvcnQoeCksVy5zY2lzc29yKE8pLFcuc2V0U2Npc3NvclRlc3QoUCksaSl7Y29uc3Qgbz1xLmdldCh0LnRleHR1cmUpO210LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDM2MDY0LDM0MDY5K2Usby5fX3dlYmdsVGV4dHVyZSxuKX1lbHNlIGlmKGEpe2NvbnN0IG89cS5nZXQodC50ZXh0dXJlKTttdC5mcmFtZWJ1ZmZlclRleHR1cmVMYXllcigzNjE2MCwzNjA2NCxvLl9fd2ViZ2xUZXh0dXJlLG58fDAsZXx8MCl9fSx0aGlzLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM9ZnVuY3Rpb24odCxlLG4sbyxpLGEscil7aWYoIXR8fCF0LmlzV2ViR0xSZW5kZXJUYXJnZXQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZW5kZXJUYXJnZXQgaXMgbm90IFRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0LiIpO2xldCBzPXEuZ2V0KHQpLl9fd2ViZ2xGcmFtZWJ1ZmZlcjtpZih0LmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0JiZ2b2lkIDAhPT1yJiYocz1zW3JdKSxzKXtXLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxzKTt0cnl7Y29uc3Qgcj10LnRleHR1cmUscz1yLmZvcm1hdCxsPXIudHlwZTtpZihzIT09d2l0JiZkdC5jb252ZXJ0KHMpIT09bXQuZ2V0UGFyYW1ldGVyKDM1NzM5KSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM6IHJlbmRlclRhcmdldCBpcyBub3QgaW4gUkdCQSBvciBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIGZvcm1hdC4iKTtjb25zdCBjPWw9PT14aXQmJihVLmhhcygiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0Iil8fEcuaXNXZWJHTDImJlUuaGFzKCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0IikpO2lmKCEobD09PV9pdHx8ZHQuY29udmVydChsKT09PW10LmdldFBhcmFtZXRlcigzNTczOCl8fGw9PT12aXQmJihHLmlzV2ViR0wyfHxVLmhhcygiT0VTX3RleHR1cmVfZmxvYXQiKXx8VS5oYXMoIldFQkdMX2NvbG9yX2J1ZmZlcl9mbG9hdCIpKXx8YykpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZW5kZXJUYXJnZXQgaXMgbm90IGluIFVuc2lnbmVkQnl0ZVR5cGUgb3IgaW1wbGVtZW50YXRpb24gZGVmaW5lZCB0eXBlLiIpOzM2MDUzPT09bXQuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cygzNjE2MCk/ZT49MCYmZTw9dC53aWR0aC1vJiZuPj0wJiZuPD10LmhlaWdodC1pJiZtdC5yZWFkUGl4ZWxzKGUsbixvLGksZHQuY29udmVydChzKSxkdC5jb252ZXJ0KGwpLGEpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVhZFJlbmRlclRhcmdldFBpeGVsczogcmVhZFBpeGVscyBmcm9tIHJlbmRlclRhcmdldCBmYWlsZWQuIEZyYW1lYnVmZmVyIG5vdCBjb21wbGV0ZS4iKX1maW5hbGx5e2NvbnN0IHQ9bnVsbCE9PUM/cS5nZXQoQykuX193ZWJnbEZyYW1lYnVmZmVyOm51bGw7Vy5iaW5kRnJhbWVidWZmZXIoMzYxNjAsdCl9fX0sdGhpcy5jb3B5RnJhbWVidWZmZXJUb1RleHR1cmU9ZnVuY3Rpb24odCxlLG49MCl7Y29uc3Qgbz1NYXRoLnBvdygyLC1uKSxpPU1hdGguZmxvb3IoZS5pbWFnZS53aWR0aCpvKSxhPU1hdGguZmxvb3IoZS5pbWFnZS5oZWlnaHQqbyk7bGV0IHI9ZHQuY29udmVydChlLmZvcm1hdCk7Ry5pc1dlYkdMMiYmKDY0MDc9PT1yJiYocj0zMjg0OSksNjQwOD09PXImJihyPTMyODU2KSksWi5zZXRUZXh0dXJlMkQoZSwwKSxtdC5jb3B5VGV4SW1hZ2UyRCgzNTUzLG4scix0LngsdC55LGksYSwwKSxXLnVuYmluZFRleHR1cmUoKX0sdGhpcy5jb3B5VGV4dHVyZVRvVGV4dHVyZT1mdW5jdGlvbih0LGUsbixvPTApe2NvbnN0IGk9ZS5pbWFnZS53aWR0aCxhPWUuaW1hZ2UuaGVpZ2h0LHI9ZHQuY29udmVydChuLmZvcm1hdCkscz1kdC5jb252ZXJ0KG4udHlwZSk7Wi5zZXRUZXh0dXJlMkQobiwwKSxtdC5waXhlbFN0b3JlaSgzNzQ0MCxuLmZsaXBZKSxtdC5waXhlbFN0b3JlaSgzNzQ0MSxuLnByZW11bHRpcGx5QWxwaGEpLG10LnBpeGVsU3RvcmVpKDMzMTcsbi51bnBhY2tBbGlnbm1lbnQpLGUuaXNEYXRhVGV4dHVyZT9tdC50ZXhTdWJJbWFnZTJEKDM1NTMsbyx0LngsdC55LGksYSxyLHMsZS5pbWFnZS5kYXRhKTplLmlzQ29tcHJlc3NlZFRleHR1cmU/bXQuY29tcHJlc3NlZFRleFN1YkltYWdlMkQoMzU1MyxvLHQueCx0LnksZS5taXBtYXBzWzBdLndpZHRoLGUubWlwbWFwc1swXS5oZWlnaHQscixlLm1pcG1hcHNbMF0uZGF0YSk6bXQudGV4U3ViSW1hZ2UyRCgzNTUzLG8sdC54LHQueSxyLHMsZS5pbWFnZSksMD09PW8mJm4uZ2VuZXJhdGVNaXBtYXBzJiZtdC5nZW5lcmF0ZU1pcG1hcCgzNTUzKSxXLnVuYmluZFRleHR1cmUoKX0sdGhpcy5jb3B5VGV4dHVyZVRvVGV4dHVyZTNEPWZ1bmN0aW9uKHQsZSxuLG8saT0wKXtpZihoLmlzV2ViR0wxUmVuZGVyZXIpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q6IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIik7Y29uc3QgYT10Lm1heC54LXQubWluLngrMSxyPXQubWF4LnktdC5taW4ueSsxLHM9dC5tYXguei10Lm1pbi56KzEsbD1kdC5jb252ZXJ0KG8uZm9ybWF0KSxjPWR0LmNvbnZlcnQoby50eXBlKTtsZXQgZDtpZihvLmlzRGF0YVRleHR1cmUzRClaLnNldFRleHR1cmUzRChvLDApLGQ9MzI4Nzk7ZWxzZXtpZighby5pc0RhdGFUZXh0dXJlMkRBcnJheSlyZXR1cm4gdm9pZCBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXIuY29weVRleHR1cmVUb1RleHR1cmUzRDogb25seSBzdXBwb3J0cyBUSFJFRS5EYXRhVGV4dHVyZTNEIGFuZCBUSFJFRS5EYXRhVGV4dHVyZTJEQXJyYXkuIik7Wi5zZXRUZXh0dXJlMkRBcnJheShvLDApLGQ9MzU4NjZ9bXQucGl4ZWxTdG9yZWkoMzc0NDAsby5mbGlwWSksbXQucGl4ZWxTdG9yZWkoMzc0NDEsby5wcmVtdWx0aXBseUFscGhhKSxtdC5waXhlbFN0b3JlaSgzMzE3LG8udW5wYWNrQWxpZ25tZW50KTtjb25zdCBwPW10LmdldFBhcmFtZXRlcigzMzE0KSxtPW10LmdldFBhcmFtZXRlcigzMjg3OCksdT1tdC5nZXRQYXJhbWV0ZXIoMzMxNiksZj1tdC5nZXRQYXJhbWV0ZXIoMzMxNSksZz1tdC5nZXRQYXJhbWV0ZXIoMzI4NzcpLGI9bi5pc0NvbXByZXNzZWRUZXh0dXJlP24ubWlwbWFwc1swXTpuLmltYWdlO210LnBpeGVsU3RvcmVpKDMzMTQsYi53aWR0aCksbXQucGl4ZWxTdG9yZWkoMzI4NzgsYi5oZWlnaHQpLG10LnBpeGVsU3RvcmVpKDMzMTYsdC5taW4ueCksbXQucGl4ZWxTdG9yZWkoMzMxNSx0Lm1pbi55KSxtdC5waXhlbFN0b3JlaSgzMjg3Nyx0Lm1pbi56KSxuLmlzRGF0YVRleHR1cmV8fG4uaXNEYXRhVGV4dHVyZTNEP210LnRleFN1YkltYWdlM0QoZCxpLGUueCxlLnksZS56LGEscixzLGwsYyxiLmRhdGEpOm4uaXNDb21wcmVzc2VkVGV4dHVyZT8oY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q6IHVudGVzdGVkIHN1cHBvcnQgZm9yIGNvbXByZXNzZWQgc3JjVGV4dHVyZS4iKSxtdC5jb21wcmVzc2VkVGV4U3ViSW1hZ2UzRChkLGksZS54LGUueSxlLnosYSxyLHMsbCxiLmRhdGEpKTptdC50ZXhTdWJJbWFnZTNEKGQsaSxlLngsZS55LGUueixhLHIscyxsLGMsYiksbXQucGl4ZWxTdG9yZWkoMzMxNCxwKSxtdC5waXhlbFN0b3JlaSgzMjg3OCxtKSxtdC5waXhlbFN0b3JlaSgzMzE2LHUpLG10LnBpeGVsU3RvcmVpKDMzMTUsZiksbXQucGl4ZWxTdG9yZWkoMzI4NzcsZyksMD09PWkmJm8uZ2VuZXJhdGVNaXBtYXBzJiZtdC5nZW5lcmF0ZU1pcG1hcChkKSxXLnVuYmluZFRleHR1cmUoKX0sdGhpcy5pbml0VGV4dHVyZT1mdW5jdGlvbih0KXtaLnNldFRleHR1cmUyRCh0LDApLFcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLnJlc2V0U3RhdGU9ZnVuY3Rpb24oKXt5PTAsXz0wLEM9bnVsbCxXLnJlc2V0KCkscHQucmVzZXQoKX0sInVuZGVmaW5lZCIhPXR5cGVvZiBfX1RIUkVFX0RFVlRPT0xTX18mJl9fVEhSRUVfREVWVE9PTFNfXy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib2JzZXJ2ZSIse2RldGFpbDp0aGlzfSkpfShjbGFzcyBleHRlbmRzIGJkdHt9KS5wcm90b3R5cGUuaXNXZWJHTDFSZW5kZXJlcj0hMDtjbGFzcyB5ZHQgZXh0ZW5kcyBwcnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iU2NlbmUiLHRoaXMuYmFja2dyb3VuZD1udWxsLHRoaXMuZW52aXJvbm1lbnQ9bnVsbCx0aGlzLmZvZz1udWxsLHRoaXMub3ZlcnJpZGVNYXRlcmlhbD1udWxsLHRoaXMuYXV0b1VwZGF0ZT0hMCwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJvYnNlcnZlIix7ZGV0YWlsOnRoaXN9KSl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksbnVsbCE9PXQuYmFja2dyb3VuZCYmKHRoaXMuYmFja2dyb3VuZD10LmJhY2tncm91bmQuY2xvbmUoKSksbnVsbCE9PXQuZW52aXJvbm1lbnQmJih0aGlzLmVudmlyb25tZW50PXQuZW52aXJvbm1lbnQuY2xvbmUoKSksbnVsbCE9PXQuZm9nJiYodGhpcy5mb2c9dC5mb2cuY2xvbmUoKSksbnVsbCE9PXQub3ZlcnJpZGVNYXRlcmlhbCYmKHRoaXMub3ZlcnJpZGVNYXRlcmlhbD10Lm92ZXJyaWRlTWF0ZXJpYWwuY2xvbmUoKSksdGhpcy5hdXRvVXBkYXRlPXQuYXV0b1VwZGF0ZSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBudWxsIT09dGhpcy5mb2cmJihlLm9iamVjdC5mb2c9dGhpcy5mb2cudG9KU09OKCkpLGV9fXlkdC5wcm90b3R5cGUuaXNTY2VuZT0hMDtjbGFzcyBfZHR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmFycmF5PXQsdGhpcy5zdHJpZGU9ZSx0aGlzLmNvdW50PXZvaWQgMCE9PXQ/dC5sZW5ndGgvZTowLHRoaXMudXNhZ2U9Qml0LHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MCx0aGlzLnV1aWQ9cWl0KCl9b25VcGxvYWRDYWxsYmFjaygpe31zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK31zZXRVc2FnZSh0KXtyZXR1cm4gdGhpcy51c2FnZT10LHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5hcnJheT1uZXcgdC5hcnJheS5jb25zdHJ1Y3Rvcih0LmFycmF5KSx0aGlzLmNvdW50PXQuY291bnQsdGhpcy5zdHJpZGU9dC5zdHJpZGUsdGhpcy51c2FnZT10LnVzYWdlLHRoaXN9Y29weUF0KHQsZSxuKXt0Kj10aGlzLnN0cmlkZSxuKj1lLnN0cmlkZTtmb3IobGV0IG89MCxpPXRoaXMuc3RyaWRlO288aTtvKyspdGhpcy5hcnJheVt0K29dPWUuYXJyYXlbbitvXTtyZXR1cm4gdGhpc31zZXQodCxlPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LGUpLHRoaXN9Y2xvbmUodCl7dm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1xaXQoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPXRoaXMuYXJyYXkuc2xpY2UoMCkuYnVmZmVyKTtjb25zdCBlPW5ldyB0aGlzLmFycmF5LmNvbnN0cnVjdG9yKHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXSksbj1uZXcgdGhpcy5jb25zdHJ1Y3RvcihlLHRoaXMuc3RyaWRlKTtyZXR1cm4gbi5zZXRVc2FnZSh0aGlzLnVzYWdlKSxufW9uVXBsb2FkKHQpe3JldHVybiB0aGlzLm9uVXBsb2FkQ2FsbGJhY2s9dCx0aGlzfXRvSlNPTih0KXtyZXR1cm4gdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1xaXQoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG5ldyBVaW50MzJBcnJheSh0aGlzLmFycmF5LmJ1ZmZlcikpKSx7dXVpZDp0aGlzLnV1aWQsYnVmZmVyOnRoaXMuYXJyYXkuYnVmZmVyLl91dWlkLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLHN0cmlkZTp0aGlzLnN0cmlkZX19fV9kdC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlcj0hMDtjb25zdCBDZHQ9bmV3IGNhdDtjbGFzcyBNZHR7Y29uc3RydWN0b3IodCxlLG4sbz0hMSl7dGhpcy5uYW1lPSIiLHRoaXMuZGF0YT10LHRoaXMuaXRlbVNpemU9ZSx0aGlzLm9mZnNldD1uLHRoaXMubm9ybWFsaXplZD0hMD09PW99Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuZGF0YS5jb3VudH1nZXQgYXJyYXkoKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5fXNldCBuZWVkc1VwZGF0ZSh0KXt0aGlzLmRhdGEubmVlZHNVcGRhdGU9dH1hcHBseU1hdHJpeDQodCl7Zm9yKGxldCBlPTAsbj10aGlzLmRhdGEuY291bnQ7ZTxuO2UrKylDZHQueD10aGlzLmdldFgoZSksQ2R0Lnk9dGhpcy5nZXRZKGUpLENkdC56PXRoaXMuZ2V0WihlKSxDZHQuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKGUsQ2R0LngsQ2R0LnksQ2R0LnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKUNkdC54PXRoaXMuZ2V0WChlKSxDZHQueT10aGlzLmdldFkoZSksQ2R0Lno9dGhpcy5nZXRaKGUpLENkdC5hcHBseU5vcm1hbE1hdHJpeCh0KSx0aGlzLnNldFhZWihlLENkdC54LENkdC55LENkdC56KTtyZXR1cm4gdGhpc310cmFuc2Zvcm1EaXJlY3Rpb24odCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspQ2R0Lng9dGhpcy5nZXRYKGUpLENkdC55PXRoaXMuZ2V0WShlKSxDZHQuej10aGlzLmdldFooZSksQ2R0LnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzLnNldFhZWihlLENkdC54LENkdC55LENkdC56KTtyZXR1cm4gdGhpc31zZXRYKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXRdPWUsdGhpc31zZXRZKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMV09ZSx0aGlzfXNldFoodCxlKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCsyXT1lLHRoaXN9c2V0Vyh0LGUpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzNdPWUsdGhpc31nZXRYKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0XX1nZXRZKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzFdfWdldFoodCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMl19Z2V0Vyh0KXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCszXX1zZXRYWSh0LGUsbil7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzfXNldFhZWih0LGUsbixvKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5Wyh0PXQqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCkrMF09ZSx0aGlzLmRhdGEuYXJyYXlbdCsxXT1uLHRoaXMuZGF0YS5hcnJheVt0KzJdPW8sdGhpc31zZXRYWVpXKHQsZSxuLG8saSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzLmRhdGEuYXJyYXlbdCsyXT1vLHRoaXMuZGF0YS5hcnJheVt0KzNdPWksdGhpc31jbG9uZSh0KXtpZih2b2lkIDA9PT10KXtjb25zb2xlLmxvZygiVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUuY2xvbmUoKTogQ2xvbmluZyBhbiBpbnRlcmxhdmVkIGJ1ZmZlciBhdHRyaWJ1dGUgd2lsbCBkZWludGVybGVhdmUgYnVmZmVyIGRhdGEuIik7Y29uc3QgdD1bXTtmb3IobGV0IGU9MDtlPHRoaXMuY291bnQ7ZSsrKXtjb25zdCBuPWUqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldDtmb3IobGV0IGU9MDtlPHRoaXMuaXRlbVNpemU7ZSsrKXQucHVzaCh0aGlzLmRhdGEuYXJyYXlbbitlXSl9cmV0dXJuIG5ldyB6cnQobmV3IHRoaXMuYXJyYXkuY29uc3RydWN0b3IodCksdGhpcy5pdGVtU2l6ZSx0aGlzLm5vcm1hbGl6ZWQpfXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLmNsb25lKHQpKSxuZXcgTWR0KHQuaW50ZXJsZWF2ZWRCdWZmZXJzW3RoaXMuZGF0YS51dWlkXSx0aGlzLml0ZW1TaXplLHRoaXMub2Zmc2V0LHRoaXMubm9ybWFsaXplZCl9dG9KU09OKHQpe2lmKHZvaWQgMD09PXQpe2NvbnNvbGUubG9nKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZS50b0pTT04oKTogU2VyaWFsaXppbmcgYW4gaW50ZXJsYXZlZCBidWZmZXIgYXR0cmlidXRlIHdpbGwgZGVpbnRlcmxlYXZlIGJ1ZmZlciBkYXRhLiIpO2NvbnN0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLmNvdW50O2UrKyl7Y29uc3Qgbj1lKnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQ7Zm9yKGxldCBlPTA7ZTx0aGlzLml0ZW1TaXplO2UrKyl0LnB1c2godGhpcy5kYXRhLmFycmF5W24rZV0pfXJldHVybntpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OnQsbm9ybWFsaXplZDp0aGlzLm5vcm1hbGl6ZWR9fXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLnRvSlNPTih0KSkse2lzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU6ITAsaXRlbVNpemU6dGhpcy5pdGVtU2l6ZSxkYXRhOnRoaXMuZGF0YS51dWlkLG9mZnNldDp0aGlzLm9mZnNldCxub3JtYWxpemVkOnRoaXMubm9ybWFsaXplZH19fU1kdC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyB2ZHQgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwcml0ZU1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBScnQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMucm90YXRpb249MCx0aGlzLnNpemVBdHRlbnVhdGlvbj0hMCx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLnJvdGF0aW9uPXQucm90YXRpb24sdGhpcy5zaXplQXR0ZW51YXRpb249dC5zaXplQXR0ZW51YXRpb24sdGhpc319bGV0IHhkdDt2ZHQucHJvdG90eXBlLmlzU3ByaXRlTWF0ZXJpYWw9ITA7Y29uc3QgT2R0PW5ldyBjYXQsUGR0PW5ldyBjYXQsd2R0PW5ldyBjYXQsa2R0PW5ldyBRaXQsU2R0PW5ldyBRaXQsRGR0PW5ldyBCYXQsRWR0PW5ldyBjYXQsUmR0PW5ldyBjYXQsQWR0PW5ldyBjYXQsVGR0PW5ldyBRaXQsTmR0PW5ldyBRaXQsemR0PW5ldyBRaXQ7ZnVuY3Rpb24gSWR0KHQsZSxuLG8saSxhKXtrZHQuc3ViVmVjdG9ycyh0LG4pLmFkZFNjYWxhciguNSkubXVsdGlwbHkobyksdm9pZCAwIT09aT8oU2R0Lng9YSprZHQueC1pKmtkdC55LFNkdC55PWkqa2R0LngrYSprZHQueSk6U2R0LmNvcHkoa2R0KSx0LmNvcHkoZSksdC54Kz1TZHQueCx0LnkrPVNkdC55LHQuYXBwbHlNYXRyaXg0KERkdCl9KGNsYXNzIGV4dGVuZHMgcHJ0e2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKCksdGhpcy50eXBlPSJTcHJpdGUiLHZvaWQgMD09PXhkdCl7eGR0PW5ldyBxcnQ7Y29uc3QgdD1uZXcgRmxvYXQzMkFycmF5KFstLjUsLS41LDAsMCwwLC41LC0uNSwwLDEsMCwuNSwuNSwwLDEsMSwtLjUsLjUsMCwwLDFdKSxlPW5ldyBfZHQodCw1KTt4ZHQuc2V0SW5kZXgoWzAsMSwyLDAsMiwzXSkseGR0LnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBNZHQoZSwzLDAsITEpKSx4ZHQuc2V0QXR0cmlidXRlKCJ1diIsbmV3IE1kdChlLDIsMywhMSkpfXRoaXMuZ2VvbWV0cnk9eGR0LHRoaXMubWF0ZXJpYWw9dm9pZCAwIT09dD90Om5ldyB2ZHQsdGhpcy5jZW50ZXI9bmV3IFFpdCguNSwuNSl9cmF5Y2FzdCh0LGUpe251bGw9PT10LmNhbWVyYSYmY29uc29sZS5lcnJvcignVEhSRUUuU3ByaXRlOiAiUmF5Y2FzdGVyLmNhbWVyYSIgbmVlZHMgdG8gYmUgc2V0IGluIG9yZGVyIHRvIHJheWNhc3QgYWdhaW5zdCBzcHJpdGVzLicpLFBkdC5zZXRGcm9tTWF0cml4U2NhbGUodGhpcy5tYXRyaXhXb3JsZCksRGR0LmNvcHkodC5jYW1lcmEubWF0cml4V29ybGQpLHRoaXMubW9kZWxWaWV3TWF0cml4Lm11bHRpcGx5TWF0cmljZXModC5jYW1lcmEubWF0cml4V29ybGRJbnZlcnNlLHRoaXMubWF0cml4V29ybGQpLHdkdC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tb2RlbFZpZXdNYXRyaXgpLHQuY2FtZXJhLmlzUGVyc3BlY3RpdmVDYW1lcmEmJiExPT09dGhpcy5tYXRlcmlhbC5zaXplQXR0ZW51YXRpb24mJlBkdC5tdWx0aXBseVNjYWxhcigtd2R0LnopO2NvbnN0IG49dGhpcy5tYXRlcmlhbC5yb3RhdGlvbjtsZXQgbyxpOzAhPT1uJiYoaT1NYXRoLmNvcyhuKSxvPU1hdGguc2luKG4pKTtjb25zdCBhPXRoaXMuY2VudGVyO0lkdChFZHQuc2V0KC0uNSwtLjUsMCksd2R0LGEsUGR0LG8saSksSWR0KFJkdC5zZXQoLjUsLS41LDApLHdkdCxhLFBkdCxvLGkpLElkdChBZHQuc2V0KC41LC41LDApLHdkdCxhLFBkdCxvLGkpLFRkdC5zZXQoMCwwKSxOZHQuc2V0KDEsMCksemR0LnNldCgxLDEpO2xldCByPXQucmF5LmludGVyc2VjdFRyaWFuZ2xlKEVkdCxSZHQsQWR0LCExLE9kdCk7aWYobnVsbD09PXImJihJZHQoUmR0LnNldCgtLjUsLjUsMCksd2R0LGEsUGR0LG8saSksTmR0LnNldCgwLDEpLHI9dC5yYXkuaW50ZXJzZWN0VHJpYW5nbGUoRWR0LEFkdCxSZHQsITEsT2R0KSxudWxsPT09cikpcmV0dXJuO2NvbnN0IHM9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8oT2R0KTtzPHQubmVhcnx8cz50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTpzLHBvaW50Ok9kdC5jbG9uZSgpLHV2OnZydC5nZXRVVihPZHQsRWR0LFJkdCxBZHQsVGR0LE5kdCx6ZHQsbmV3IFFpdCksZmFjZTpudWxsLG9iamVjdDp0aGlzfSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx2b2lkIDAhPT10LmNlbnRlciYmdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXN9fSkucHJvdG90eXBlLmlzU3ByaXRlPSEwO2NvbnN0IEhkdD1uZXcgY2F0LEZkdD1uZXcgYWF0LExkdD1uZXcgYWF0LEJkdD1uZXcgY2F0LFZkdD1uZXcgQmF0O2NsYXNzIGpkdCBleHRlbmRzIHBzdHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJTa2lubmVkTWVzaCIsdGhpcy5iaW5kTW9kZT0iYXR0YWNoZWQiLHRoaXMuYmluZE1hdHJpeD1uZXcgQmF0LHRoaXMuYmluZE1hdHJpeEludmVyc2U9bmV3IEJhdH1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuYmluZE1vZGU9dC5iaW5kTW9kZSx0aGlzLmJpbmRNYXRyaXguY29weSh0LmJpbmRNYXRyaXgpLHRoaXMuYmluZE1hdHJpeEludmVyc2UuY29weSh0LmJpbmRNYXRyaXhJbnZlcnNlKSx0aGlzLnNrZWxldG9uPXQuc2tlbGV0b24sdGhpc31iaW5kKHQsZSl7dGhpcy5za2VsZXRvbj10LHZvaWQgMD09PWUmJih0aGlzLnVwZGF0ZU1hdHJpeFdvcmxkKCEwKSx0aGlzLnNrZWxldG9uLmNhbGN1bGF0ZUludmVyc2VzKCksZT10aGlzLm1hdHJpeFdvcmxkKSx0aGlzLmJpbmRNYXRyaXguY29weShlKSx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkoZSkuaW52ZXJ0KCl9cG9zZSgpe3RoaXMuc2tlbGV0b24ucG9zZSgpfW5vcm1hbGl6ZVNraW5XZWlnaHRzKCl7Y29uc3QgdD1uZXcgYWF0LGU9dGhpcy5nZW9tZXRyeS5hdHRyaWJ1dGVzLnNraW5XZWlnaHQ7Zm9yKGxldCBuPTAsbz1lLmNvdW50O248bztuKyspe3QueD1lLmdldFgobiksdC55PWUuZ2V0WShuKSx0Lno9ZS5nZXRaKG4pLHQudz1lLmdldFcobik7Y29uc3Qgbz0xL3QubWFuaGF0dGFuTGVuZ3RoKCk7byE9PTEvMD90Lm11bHRpcGx5U2NhbGFyKG8pOnQuc2V0KDEsMCwwLDApLGUuc2V0WFlaVyhuLHQueCx0LnksdC56LHQudyl9fXVwZGF0ZU1hdHJpeFdvcmxkKHQpe3N1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpLCJhdHRhY2hlZCI9PT10aGlzLmJpbmRNb2RlP3RoaXMuYmluZE1hdHJpeEludmVyc2UuY29weSh0aGlzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKToiZGV0YWNoZWQiPT09dGhpcy5iaW5kTW9kZT90aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5iaW5kTWF0cml4KS5pbnZlcnQoKTpjb25zb2xlLndhcm4oIlRIUkVFLlNraW5uZWRNZXNoOiBVbnJlY29nbml6ZWQgYmluZE1vZGU6ICIrdGhpcy5iaW5kTW9kZSl9Ym9uZVRyYW5zZm9ybSh0LGUpe2NvbnN0IG49dGhpcy5za2VsZXRvbixvPXRoaXMuZ2VvbWV0cnk7RmR0LmZyb21CdWZmZXJBdHRyaWJ1dGUoby5hdHRyaWJ1dGVzLnNraW5JbmRleCx0KSxMZHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLmF0dHJpYnV0ZXMuc2tpbldlaWdodCx0KSxIZHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLmF0dHJpYnV0ZXMucG9zaXRpb24sdCkuYXBwbHlNYXRyaXg0KHRoaXMuYmluZE1hdHJpeCksZS5zZXQoMCwwLDApO2ZvcihsZXQgdD0wO3Q8NDt0Kyspe2NvbnN0IG89TGR0LmdldENvbXBvbmVudCh0KTtpZigwIT09byl7Y29uc3QgaT1GZHQuZ2V0Q29tcG9uZW50KHQpO1ZkdC5tdWx0aXBseU1hdHJpY2VzKG4uYm9uZXNbaV0ubWF0cml4V29ybGQsbi5ib25lSW52ZXJzZXNbaV0pLGUuYWRkU2NhbGVkVmVjdG9yKEJkdC5jb3B5KEhkdCkuYXBwbHlNYXRyaXg0KFZkdCksbyl9fXJldHVybiBlLmFwcGx5TWF0cml4NCh0aGlzLmJpbmRNYXRyaXhJbnZlcnNlKX19amR0LnByb3RvdHlwZS5pc1NraW5uZWRNZXNoPSEwLGNsYXNzIGV4dGVuZHMgcHJ0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9IkJvbmUifX0ucHJvdG90eXBlLmlzQm9uZT0hMCxjbGFzcyBleHRlbmRzIG9hdHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxvLGksYSxyLHMsbD0xMDAzLGM9MTAwMyxkLHApe3N1cGVyKG51bGwsYSxyLHMsbCxjLG8saSxkLHApLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpufSx0aGlzLm1hZ0ZpbHRlcj1sLHRoaXMubWluRmlsdGVyPWMsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fS5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZT0hMDtjb25zdCBVZHQ9bmV3IEJhdCxHZHQ9bmV3IEJhdCxXZHQ9W10sWWR0PW5ldyBwc3Q7KGNsYXNzIGV4dGVuZHMgcHN0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUpLHRoaXMuaW5zdGFuY2VNYXRyaXg9bmV3IHpydChuZXcgRmxvYXQzMkFycmF5KDE2Km4pLDE2KSx0aGlzLmluc3RhbmNlQ29sb3I9bnVsbCx0aGlzLmNvdW50PW4sdGhpcy5mcnVzdHVtQ3VsbGVkPSExfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5pbnN0YW5jZU1hdHJpeC5jb3B5KHQuaW5zdGFuY2VNYXRyaXgpLG51bGwhPT10Lmluc3RhbmNlQ29sb3ImJih0aGlzLmluc3RhbmNlQ29sb3I9dC5pbnN0YW5jZUNvbG9yLmNsb25lKCkpLHRoaXMuY291bnQ9dC5jb3VudCx0aGlzfWdldENvbG9yQXQodCxlKXtlLmZyb21BcnJheSh0aGlzLmluc3RhbmNlQ29sb3IuYXJyYXksMyp0KX1nZXRNYXRyaXhBdCh0LGUpe2UuZnJvbUFycmF5KHRoaXMuaW5zdGFuY2VNYXRyaXguYXJyYXksMTYqdCl9cmF5Y2FzdCh0LGUpe2NvbnN0IG49dGhpcy5tYXRyaXhXb3JsZCxvPXRoaXMuY291bnQ7aWYoWWR0Lmdlb21ldHJ5PXRoaXMuZ2VvbWV0cnksWWR0Lm1hdGVyaWFsPXRoaXMubWF0ZXJpYWwsdm9pZCAwIT09WWR0Lm1hdGVyaWFsKWZvcihsZXQgaT0wO2k8bztpKyspe3RoaXMuZ2V0TWF0cml4QXQoaSxVZHQpLEdkdC5tdWx0aXBseU1hdHJpY2VzKG4sVWR0KSxZZHQubWF0cml4V29ybGQ9R2R0LFlkdC5yYXljYXN0KHQsV2R0KTtmb3IobGV0IHQ9MCxuPVdkdC5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1XZHRbdF07bi5pbnN0YW5jZUlkPWksbi5vYmplY3Q9dGhpcyxlLnB1c2gobil9V2R0Lmxlbmd0aD0wfX1zZXRDb2xvckF0KHQsZSl7bnVsbD09PXRoaXMuaW5zdGFuY2VDb2xvciYmKHRoaXMuaW5zdGFuY2VDb2xvcj1uZXcgenJ0KG5ldyBGbG9hdDMyQXJyYXkoMyp0aGlzLmluc3RhbmNlTWF0cml4LmNvdW50KSwzKSksZS50b0FycmF5KHRoaXMuaW5zdGFuY2VDb2xvci5hcnJheSwzKnQpfXNldE1hdHJpeEF0KHQsZSl7ZS50b0FycmF5KHRoaXMuaW5zdGFuY2VNYXRyaXguYXJyYXksMTYqdCl9dXBkYXRlTW9ycGhUYXJnZXRzKCl7fWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9fSkucHJvdG90eXBlLmlzSW5zdGFuY2VkTWVzaD0hMDtjbGFzcyBxZHQgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmVCYXNpY01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBScnQoMTY3NzcyMTUpLHRoaXMubGluZXdpZHRoPTEsdGhpcy5saW5lY2FwPSJyb3VuZCIsdGhpcy5saW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubGluZXdpZHRoPXQubGluZXdpZHRoLHRoaXMubGluZWNhcD10LmxpbmVjYXAsdGhpcy5saW5lam9pbj10LmxpbmVqb2luLHRoaXN9fXFkdC5wcm90b3R5cGUuaXNMaW5lQmFzaWNNYXRlcmlhbD0hMDtjb25zdCBaZHQ9bmV3IGNhdCxYZHQ9bmV3IGNhdCxLZHQ9bmV3IEJhdCxKZHQ9bmV3IExhdCxRZHQ9bmV3IFJhdDtjbGFzcyAkZHQgZXh0ZW5kcyBwcnR7Y29uc3RydWN0b3IodD1uZXcgcXJ0LGU9bmV3IHFkdCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmUiLHRoaXMuZ2VvbWV0cnk9dCx0aGlzLm1hdGVyaWFsPWUsdGhpcy51cGRhdGVNb3JwaFRhcmdldHMoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpc31jb21wdXRlTGluZURpc3RhbmNlcygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpaWYobnVsbD09PXQuaW5kZXgpe2NvbnN0IGU9dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLG49WzBdO2ZvcihsZXQgdD0xLG89ZS5jb3VudDt0PG87dCsrKVpkdC5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdC0xKSxYZHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQpLG5bdF09blt0LTFdLG5bdF0rPVpkdC5kaXN0YW5jZVRvKFhkdCk7dC5zZXRBdHRyaWJ1dGUoImxpbmVEaXN0YW5jZSIsbmV3IEZydChuLDEpKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuTGluZS5jb21wdXRlTGluZURpc3RhbmNlcygpOiBDb21wdXRhdGlvbiBvbmx5IHBvc3NpYmxlIHdpdGggbm9uLWluZGV4ZWQgQnVmZmVyR2VvbWV0cnkuIik7ZWxzZSB0LmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpO3JldHVybiB0aGlzfXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMuZ2VvbWV0cnksbz10aGlzLm1hdHJpeFdvcmxkLGk9dC5wYXJhbXMuTGluZS50aHJlc2hvbGQsYT1uLmRyYXdSYW5nZTtpZihudWxsPT09bi5ib3VuZGluZ1NwaGVyZSYmbi5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxRZHQuY29weShuLmJvdW5kaW5nU3BoZXJlKSxRZHQuYXBwbHlNYXRyaXg0KG8pLFFkdC5yYWRpdXMrPWksITE9PT10LnJheS5pbnRlcnNlY3RzU3BoZXJlKFFkdCkpcmV0dXJuO0tkdC5jb3B5KG8pLmludmVydCgpLEpkdC5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQoS2R0KTtjb25zdCByPWkvKCh0aGlzLnNjYWxlLngrdGhpcy5zY2FsZS55K3RoaXMuc2NhbGUueikvMykscz1yKnIsbD1uZXcgY2F0LGM9bmV3IGNhdCxkPW5ldyBjYXQscD1uZXcgY2F0LG09dGhpcy5pc0xpbmVTZWdtZW50cz8yOjE7aWYobi5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBvPW4uaW5kZXgsaT1uLmF0dHJpYnV0ZXMucG9zaXRpb247aWYobnVsbCE9PW8pZm9yKGxldCBuPU1hdGgubWF4KDAsYS5zdGFydCkscj1NYXRoLm1pbihvLmNvdW50LGEuc3RhcnQrYS5jb3VudCktMTtuPHI7bis9bSl7Y29uc3QgYT1vLmdldFgobikscj1vLmdldFgobisxKTtpZihsLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxhKSxjLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxyKSxKZHQuZGlzdGFuY2VTcVRvU2VnbWVudChsLGMscCxkKT5zKWNvbnRpbnVlO3AuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpO2NvbnN0IG09dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8ocCk7bTx0Lm5lYXJ8fG0+dC5mYXJ8fGUucHVzaCh7ZGlzdGFuY2U6bSxwb2ludDpkLmNsb25lKCkuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpLGluZGV4Om4sZmFjZTpudWxsLGZhY2VJbmRleDpudWxsLG9iamVjdDp0aGlzfSl9ZWxzZSBmb3IobGV0IG49TWF0aC5tYXgoMCxhLnN0YXJ0KSxvPU1hdGgubWluKGkuY291bnQsYS5zdGFydCthLmNvdW50KS0xO248bztuKz1tKXtpZihsLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxuKSxjLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxuKzEpLEpkdC5kaXN0YW5jZVNxVG9TZWdtZW50KGwsYyxwLGQpPnMpY29udGludWU7cC5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCk7Y29uc3Qgbz10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhwKTtvPHQubmVhcnx8bz50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTpvLHBvaW50OmQuY2xvbmUoKS5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCksaW5kZXg6bixmYWNlOm51bGwsZmFjZUluZGV4Om51bGwsb2JqZWN0OnRoaXN9KX19ZWxzZSBuLmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9dXBkYXRlTW9ycGhUYXJnZXRzKCl7Y29uc3QgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSl7Y29uc3QgZT10Lm1vcnBoQXR0cmlidXRlcyxuPU9iamVjdC5rZXlzKGUpO2lmKG4ubGVuZ3RoPjApe2NvbnN0IHQ9ZVtuWzBdXTtpZih2b2lkIDAhPT10KXt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcz1bXSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT17fTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dFtlXS5uYW1lfHxTdHJpbmcoZSk7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXMucHVzaCgwKSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtuXT1lfX19fWVsc2V7Y29uc3QgZT10Lm1vcnBoVGFyZ2V0czt2b2lkIDAhPT1lJiZlLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5MaW5lLnVwZGF0ZU1vcnBoVGFyZ2V0cygpIGRvZXMgbm90IHN1cHBvcnQgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX19JGR0LnByb3RvdHlwZS5pc0xpbmU9ITA7Y29uc3QgdHB0PW5ldyBjYXQsZXB0PW5ldyBjYXQ7Y2xhc3MgbnB0IGV4dGVuZHMgJGR0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkxpbmVTZWdtZW50cyJ9Y29tcHV0ZUxpbmVEaXN0YW5jZXMoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KWlmKG51bGw9PT10LmluZGV4KXtjb25zdCBlPXQuYXR0cmlidXRlcy5wb3NpdGlvbixuPVtdO2ZvcihsZXQgdD0wLG89ZS5jb3VudDt0PG87dCs9Mil0cHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQpLGVwdC5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCsxKSxuW3RdPTA9PT10PzA6blt0LTFdLG5bdCsxXT1uW3RdK3RwdC5kaXN0YW5jZVRvKGVwdCk7dC5zZXRBdHRyaWJ1dGUoImxpbmVEaXN0YW5jZSIsbmV3IEZydChuLDEpKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuTGluZVNlZ21lbnRzLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCk6IENvbXB1dGF0aW9uIG9ubHkgcG9zc2libGUgd2l0aCBub24taW5kZXhlZCBCdWZmZXJHZW9tZXRyeS4iKTtlbHNlIHQuaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZVNlZ21lbnRzLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKTtyZXR1cm4gdGhpc319bnB0LnByb3RvdHlwZS5pc0xpbmVTZWdtZW50cz0hMCxjbGFzcyBleHRlbmRzICRkdHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJMaW5lTG9vcCJ9fS5wcm90b3R5cGUuaXNMaW5lTG9vcD0hMDtjbGFzcyBvcHQgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBvaW50c01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBScnQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuc2l6ZT0xLHRoaXMuc2l6ZUF0dGVudWF0aW9uPSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLnNpemU9dC5zaXplLHRoaXMuc2l6ZUF0dGVudWF0aW9uPXQuc2l6ZUF0dGVudWF0aW9uLHRoaXN9fW9wdC5wcm90b3R5cGUuaXNQb2ludHNNYXRlcmlhbD0hMDtjb25zdCBpcHQ9bmV3IEJhdCxhcHQ9bmV3IExhdCxycHQ9bmV3IFJhdCxzcHQ9bmV3IGNhdDtmdW5jdGlvbiBscHQodCxlLG4sbyxpLGEscil7Y29uc3Qgcz1hcHQuZGlzdGFuY2VTcVRvUG9pbnQodCk7aWYoczxuKXtjb25zdCBuPW5ldyBjYXQ7YXB0LmNsb3Nlc3RQb2ludFRvUG9pbnQodCxuKSxuLmFwcGx5TWF0cml4NChvKTtjb25zdCBsPWkucmF5Lm9yaWdpbi5kaXN0YW5jZVRvKG4pO2lmKGw8aS5uZWFyfHxsPmkuZmFyKXJldHVybjthLnB1c2goe2Rpc3RhbmNlOmwsZGlzdGFuY2VUb1JheTpNYXRoLnNxcnQocykscG9pbnQ6bixpbmRleDplLGZhY2U6bnVsbCxvYmplY3Q6cn0pfX0oY2xhc3MgZXh0ZW5kcyBwcnR7Y29uc3RydWN0b3IodD1uZXcgcXJ0LGU9bmV3IG9wdCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBvaW50cyIsdGhpcy5nZW9tZXRyeT10LHRoaXMubWF0ZXJpYWw9ZSx0aGlzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXMuZ2VvbWV0cnk9dC5nZW9tZXRyeSx0aGlzfXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMuZ2VvbWV0cnksbz10aGlzLm1hdHJpeFdvcmxkLGk9dC5wYXJhbXMuUG9pbnRzLnRocmVzaG9sZCxhPW4uZHJhd1JhbmdlO2lmKG51bGw9PT1uLmJvdW5kaW5nU3BoZXJlJiZuLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLHJwdC5jb3B5KG4uYm91bmRpbmdTcGhlcmUpLHJwdC5hcHBseU1hdHJpeDQobykscnB0LnJhZGl1cys9aSwhMT09PXQucmF5LmludGVyc2VjdHNTcGhlcmUocnB0KSlyZXR1cm47aXB0LmNvcHkobykuaW52ZXJ0KCksYXB0LmNvcHkodC5yYXkpLmFwcGx5TWF0cml4NChpcHQpO2NvbnN0IHI9aS8oKHRoaXMuc2NhbGUueCt0aGlzLnNjYWxlLnkrdGhpcy5zY2FsZS56KS8zKSxzPXIqcjtpZihuLmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IGk9bi5pbmRleCxyPW4uYXR0cmlidXRlcy5wb3NpdGlvbjtpZihudWxsIT09aSlmb3IobGV0IG49TWF0aC5tYXgoMCxhLnN0YXJ0KSxsPU1hdGgubWluKGkuY291bnQsYS5zdGFydCthLmNvdW50KTtuPGw7bisrKXtjb25zdCBhPWkuZ2V0WChuKTtzcHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLGEpLGxwdChzcHQsYSxzLG8sdCxlLHRoaXMpfWVsc2UgZm9yKGxldCBuPU1hdGgubWF4KDAsYS5zdGFydCksaT1NYXRoLm1pbihyLmNvdW50LGEuc3RhcnQrYS5jb3VudCk7bjxpO24rKylzcHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLG4pLGxwdChzcHQsbixzLG8sdCxlLHRoaXMpfWVsc2UgY29uc29sZS5lcnJvcigiVEhSRUUuUG9pbnRzLnJheWNhc3QoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IGU9dC5tb3JwaEF0dHJpYnV0ZXMsbj1PYmplY3Qua2V5cyhlKTtpZihuLmxlbmd0aD4wKXtjb25zdCB0PWVbblswXV07aWYodm9pZCAwIT09dCl7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9W10sdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9e307Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0ubmFtZXx8U3RyaW5nKGUpO3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnB1c2goMCksdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnlbbl09ZX19fX1lbHNle2NvbnN0IGU9dC5tb3JwaFRhcmdldHM7dm9pZCAwIT09ZSYmZS5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuUG9pbnRzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpIGRvZXMgbm90IHN1cHBvcnQgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX19KS5wcm90b3R5cGUuaXNQb2ludHM9ITAsY2xhc3MgZXh0ZW5kcyBvYXR7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwpe3N1cGVyKHQsZSxuLG8saSxhLHIscyxsKSx0aGlzLmZvcm1hdD12b2lkIDAhPT1yP3I6UGl0LHRoaXMubWluRmlsdGVyPXZvaWQgMCE9PWE/YTpiaXQsdGhpcy5tYWdGaWx0ZXI9dm9pZCAwIT09aT9pOmJpdCx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMTtjb25zdCBjPXRoaXM7InJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siaW4gdCYmdC5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChmdW5jdGlvbiBlKCl7Yy5uZWVkc1VwZGF0ZT0hMCx0LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soZSl9KSl9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5pbWFnZSkuY29weSh0aGlzKX11cGRhdGUoKXtjb25zdCB0PXRoaXMuaW1hZ2U7MD09InJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siaW4gdCYmdC5yZWFkeVN0YXRlPj10LkhBVkVfQ1VSUkVOVF9EQVRBJiYodGhpcy5uZWVkc1VwZGF0ZT0hMCl9fS5wcm90b3R5cGUuaXNWaWRlb1RleHR1cmU9ITAsY2xhc3MgZXh0ZW5kcyBvYXR7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwsYyxkLHApe3N1cGVyKG51bGwsYSxyLHMsbCxjLG8saSxkLHApLHRoaXMuaW1hZ2U9e3dpZHRoOmUsaGVpZ2h0Om59LHRoaXMubWlwbWFwcz10LHRoaXMuZmxpcFk9ITEsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITF9fS5wcm90b3R5cGUuaXNDb21wcmVzc2VkVGV4dHVyZT0hMCxjbGFzcyBleHRlbmRzIG9hdHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCl7c3VwZXIodCxlLG4sbyxpLGEscixzLGwpLHRoaXMubmVlZHNVcGRhdGU9ITB9fS5wcm90b3R5cGUuaXNDYW52YXNUZXh0dXJlPSEwLGNsYXNzIGV4dGVuZHMgb2F0e2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMpe2lmKChjPXZvaWQgMCE9PWM/YzpraXQpIT09a2l0JiZjIT09U2l0KXRocm93IG5ldyBFcnJvcigiRGVwdGhUZXh0dXJlIGZvcm1hdCBtdXN0IGJlIGVpdGhlciBUSFJFRS5EZXB0aEZvcm1hdCBvciBUSFJFRS5EZXB0aFN0ZW5jaWxGb3JtYXQiKTt2b2lkIDA9PT1uJiZjPT09a2l0JiYobj1DaXQpLHZvaWQgMD09PW4mJmM9PT1TaXQmJihuPU9pdCksc3VwZXIobnVsbCxvLGksYSxyLHMsYyxuLGwpLHRoaXMuaW1hZ2U9e3dpZHRoOnQsaGVpZ2h0OmV9LHRoaXMubWFnRmlsdGVyPXZvaWQgMCE9PXI/cjpoaXQsdGhpcy5taW5GaWx0ZXI9dm9pZCAwIT09cz9zOmhpdCx0aGlzLmZsaXBZPSExLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExfX0ucHJvdG90eXBlLmlzRGVwdGhUZXh0dXJlPSEwO2NsYXNzIGNwdCBleHRlbmRzIHFydHtjb25zdHJ1Y3Rvcih0PTEsZT04LG49MCxvPTIqTWF0aC5QSSl7c3VwZXIoKSx0aGlzLnR5cGU9IkNpcmNsZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LHNlZ21lbnRzOmUsdGhldGFTdGFydDpuLHRoZXRhTGVuZ3RoOm99LGU9TWF0aC5tYXgoMyxlKTtjb25zdCBpPVtdLGE9W10scj1bXSxzPVtdLGw9bmV3IGNhdCxjPW5ldyBRaXQ7YS5wdXNoKDAsMCwwKSxyLnB1c2goMCwwLDEpLHMucHVzaCguNSwuNSk7Zm9yKGxldCBpPTAsZD0zO2k8PWU7aSsrLGQrPTMpe2NvbnN0IHA9bitpL2UqbztsLng9dCpNYXRoLmNvcyhwKSxsLnk9dCpNYXRoLnNpbihwKSxhLnB1c2gobC54LGwueSxsLnopLHIucHVzaCgwLDAsMSksYy54PShhW2RdL3QrMSkvMixjLnk9KGFbZCsxXS90KzEpLzIscy5wdXNoKGMueCxjLnkpfWZvcihsZXQgdD0xO3Q8PWU7dCsrKWkucHVzaCh0LHQrMSwwKTt0aGlzLnNldEluZGV4KGkpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IEZydChhLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgRnJ0KHIsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IEZydChzLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBjcHQodC5yYWRpdXMsdC5zZWdtZW50cyx0LnRoZXRhU3RhcnQsdC50aGV0YUxlbmd0aCl9fW5ldyBjYXQsbmV3IGNhdCxuZXcgY2F0LG5ldyB2cnQ7Y2xhc3MgZHB0e2NvbnN0cnVjdG9yKCl7dGhpcy50eXBlPSJDdXJ2ZSIsdGhpcy5hcmNMZW5ndGhEaXZpc2lvbnM9MjAwfWdldFBvaW50KCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3VydmU6IC5nZXRQb2ludCgpIG5vdCBpbXBsZW1lbnRlZC4iKSxudWxsfWdldFBvaW50QXQodCxlKXtjb25zdCBuPXRoaXMuZ2V0VXRvVG1hcHBpbmcodCk7cmV0dXJuIHRoaXMuZ2V0UG9pbnQobixlKX1nZXRQb2ludHModD01KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248PXQ7bisrKWUucHVzaCh0aGlzLmdldFBvaW50KG4vdCkpO3JldHVybiBlfWdldFNwYWNlZFBvaW50cyh0PTUpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjw9dDtuKyspZS5wdXNoKHRoaXMuZ2V0UG9pbnRBdChuL3QpKTtyZXR1cm4gZX1nZXRMZW5ndGgoKXtjb25zdCB0PXRoaXMuZ2V0TGVuZ3RocygpO3JldHVybiB0W3QubGVuZ3RoLTFdfWdldExlbmd0aHModD10aGlzLmFyY0xlbmd0aERpdmlzaW9ucyl7aWYodGhpcy5jYWNoZUFyY0xlbmd0aHMmJnRoaXMuY2FjaGVBcmNMZW5ndGhzLmxlbmd0aD09PXQrMSYmIXRoaXMubmVlZHNVcGRhdGUpcmV0dXJuIHRoaXMuY2FjaGVBcmNMZW5ndGhzO3RoaXMubmVlZHNVcGRhdGU9ITE7Y29uc3QgZT1bXTtsZXQgbixvPXRoaXMuZ2V0UG9pbnQoMCksaT0wO2UucHVzaCgwKTtmb3IobGV0IGE9MTthPD10O2ErKyluPXRoaXMuZ2V0UG9pbnQoYS90KSxpKz1uLmRpc3RhbmNlVG8obyksZS5wdXNoKGkpLG89bjtyZXR1cm4gdGhpcy5jYWNoZUFyY0xlbmd0aHM9ZSxlfXVwZGF0ZUFyY0xlbmd0aHMoKXt0aGlzLm5lZWRzVXBkYXRlPSEwLHRoaXMuZ2V0TGVuZ3RocygpfWdldFV0b1RtYXBwaW5nKHQsZSl7Y29uc3Qgbj10aGlzLmdldExlbmd0aHMoKTtsZXQgbz0wO2NvbnN0IGk9bi5sZW5ndGg7bGV0IGE7YT1lfHx0Km5baS0xXTtsZXQgcixzPTAsbD1pLTE7Zm9yKDtzPD1sOylpZihvPU1hdGguZmxvb3IocysobC1zKS8yKSxyPW5bb10tYSxyPDApcz1vKzE7ZWxzZXtpZighKHI+MCkpe2w9bzticmVha31sPW8tMX1pZihvPWwsbltvXT09PWEpcmV0dXJuIG8vKGktMSk7Y29uc3QgYz1uW29dO3JldHVybihvKyhhLWMpLyhuW28rMV0tYykpLyhpLTEpfWdldFRhbmdlbnQodCxlKXtjb25zdCBuPTFlLTQ7bGV0IG89dC1uLGk9dCtuO288MCYmKG89MCksaT4xJiYoaT0xKTtjb25zdCBhPXRoaXMuZ2V0UG9pbnQobykscj10aGlzLmdldFBvaW50KGkpLHM9ZXx8KGEuaXNWZWN0b3IyP25ldyBRaXQ6bmV3IGNhdCk7cmV0dXJuIHMuY29weShyKS5zdWIoYSkubm9ybWFsaXplKCksc31nZXRUYW5nZW50QXQodCxlKXtjb25zdCBuPXRoaXMuZ2V0VXRvVG1hcHBpbmcodCk7cmV0dXJuIHRoaXMuZ2V0VGFuZ2VudChuLGUpfWNvbXB1dGVGcmVuZXRGcmFtZXModCxlKXtjb25zdCBuPW5ldyBjYXQsbz1bXSxpPVtdLGE9W10scj1uZXcgY2F0LHM9bmV3IEJhdDtmb3IobGV0IGU9MDtlPD10O2UrKylvW2VdPXRoaXMuZ2V0VGFuZ2VudEF0KGUvdCxuZXcgY2F0KSxvW2VdLm5vcm1hbGl6ZSgpO2lbMF09bmV3IGNhdCxhWzBdPW5ldyBjYXQ7bGV0IGw9TnVtYmVyLk1BWF9WQUxVRTtjb25zdCBjPU1hdGguYWJzKG9bMF0ueCksZD1NYXRoLmFicyhvWzBdLnkpLHA9TWF0aC5hYnMob1swXS56KTtjPD1sJiYobD1jLG4uc2V0KDEsMCwwKSksZDw9bCYmKGw9ZCxuLnNldCgwLDEsMCkpLHA8PWwmJm4uc2V0KDAsMCwxKSxyLmNyb3NzVmVjdG9ycyhvWzBdLG4pLm5vcm1hbGl6ZSgpLGlbMF0uY3Jvc3NWZWN0b3JzKG9bMF0sciksYVswXS5jcm9zc1ZlY3RvcnMob1swXSxpWzBdKTtmb3IobGV0IGU9MTtlPD10O2UrKyl7aWYoaVtlXT1pW2UtMV0uY2xvbmUoKSxhW2VdPWFbZS0xXS5jbG9uZSgpLHIuY3Jvc3NWZWN0b3JzKG9bZS0xXSxvW2VdKSxyLmxlbmd0aCgpPk51bWJlci5FUFNJTE9OKXtyLm5vcm1hbGl6ZSgpO2NvbnN0IHQ9TWF0aC5hY29zKFppdChvW2UtMV0uZG90KG9bZV0pLC0xLDEpKTtpW2VdLmFwcGx5TWF0cml4NChzLm1ha2VSb3RhdGlvbkF4aXMocix0KSl9YVtlXS5jcm9zc1ZlY3RvcnMob1tlXSxpW2VdKX1pZighMD09PWUpe2xldCBlPU1hdGguYWNvcyhaaXQoaVswXS5kb3QoaVt0XSksLTEsMSkpO2UvPXQsb1swXS5kb3Qoci5jcm9zc1ZlY3RvcnMoaVswXSxpW3RdKSk+MCYmKGU9LWUpO2ZvcihsZXQgbj0xO248PXQ7bisrKWlbbl0uYXBwbHlNYXRyaXg0KHMubWFrZVJvdGF0aW9uQXhpcyhvW25dLGUqbikpLGFbbl0uY3Jvc3NWZWN0b3JzKG9bbl0saVtuXSl9cmV0dXJue3RhbmdlbnRzOm8sbm9ybWFsczppLGJpbm9ybWFsczphfX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLmFyY0xlbmd0aERpdmlzaW9ucz10LmFyY0xlbmd0aERpdmlzaW9ucyx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJDdXJ2ZSIsZ2VuZXJhdG9yOiJDdXJ2ZS50b0pTT04ifX07cmV0dXJuIHQuYXJjTGVuZ3RoRGl2aXNpb25zPXRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zLHQudHlwZT10aGlzLnR5cGUsdH1mcm9tSlNPTih0KXtyZXR1cm4gdGhpcy5hcmNMZW5ndGhEaXZpc2lvbnM9dC5hcmNMZW5ndGhEaXZpc2lvbnMsdGhpc319Y2xhc3MgcHB0IGV4dGVuZHMgZHB0e2NvbnN0cnVjdG9yKHQ9MCxlPTAsbj0xLG89MSxpPTAsYT0yKk1hdGguUEkscj0hMSxzPTApe3N1cGVyKCksdGhpcy50eXBlPSJFbGxpcHNlQ3VydmUiLHRoaXMuYVg9dCx0aGlzLmFZPWUsdGhpcy54UmFkaXVzPW4sdGhpcy55UmFkaXVzPW8sdGhpcy5hU3RhcnRBbmdsZT1pLHRoaXMuYUVuZEFuZ2xlPWEsdGhpcy5hQ2xvY2t3aXNlPXIsdGhpcy5hUm90YXRpb249c31nZXRQb2ludCh0LGUpe2NvbnN0IG49ZXx8bmV3IFFpdCxvPTIqTWF0aC5QSTtsZXQgaT10aGlzLmFFbmRBbmdsZS10aGlzLmFTdGFydEFuZ2xlO2NvbnN0IGE9TWF0aC5hYnMoaSk8TnVtYmVyLkVQU0lMT047Zm9yKDtpPDA7KWkrPW87Zm9yKDtpPm87KWktPW87aTxOdW1iZXIuRVBTSUxPTiYmKGk9YT8wOm8pLCEwIT09dGhpcy5hQ2xvY2t3aXNlfHxhfHwoaT09PW8/aT0tbzppLT1vKTtjb25zdCByPXRoaXMuYVN0YXJ0QW5nbGUrdCppO2xldCBzPXRoaXMuYVgrdGhpcy54UmFkaXVzKk1hdGguY29zKHIpLGw9dGhpcy5hWSt0aGlzLnlSYWRpdXMqTWF0aC5zaW4ocik7aWYoMCE9PXRoaXMuYVJvdGF0aW9uKXtjb25zdCB0PU1hdGguY29zKHRoaXMuYVJvdGF0aW9uKSxlPU1hdGguc2luKHRoaXMuYVJvdGF0aW9uKSxuPXMtdGhpcy5hWCxvPWwtdGhpcy5hWTtzPW4qdC1vKmUrdGhpcy5hWCxsPW4qZStvKnQrdGhpcy5hWX1yZXR1cm4gbi5zZXQocyxsKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuYVg9dC5hWCx0aGlzLmFZPXQuYVksdGhpcy54UmFkaXVzPXQueFJhZGl1cyx0aGlzLnlSYWRpdXM9dC55UmFkaXVzLHRoaXMuYVN0YXJ0QW5nbGU9dC5hU3RhcnRBbmdsZSx0aGlzLmFFbmRBbmdsZT10LmFFbmRBbmdsZSx0aGlzLmFDbG9ja3dpc2U9dC5hQ2xvY2t3aXNlLHRoaXMuYVJvdGF0aW9uPXQuYVJvdGF0aW9uLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC5hWD10aGlzLmFYLHQuYVk9dGhpcy5hWSx0LnhSYWRpdXM9dGhpcy54UmFkaXVzLHQueVJhZGl1cz10aGlzLnlSYWRpdXMsdC5hU3RhcnRBbmdsZT10aGlzLmFTdGFydEFuZ2xlLHQuYUVuZEFuZ2xlPXRoaXMuYUVuZEFuZ2xlLHQuYUNsb2Nrd2lzZT10aGlzLmFDbG9ja3dpc2UsdC5hUm90YXRpb249dGhpcy5hUm90YXRpb24sdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy5hWD10LmFYLHRoaXMuYVk9dC5hWSx0aGlzLnhSYWRpdXM9dC54UmFkaXVzLHRoaXMueVJhZGl1cz10LnlSYWRpdXMsdGhpcy5hU3RhcnRBbmdsZT10LmFTdGFydEFuZ2xlLHRoaXMuYUVuZEFuZ2xlPXQuYUVuZEFuZ2xlLHRoaXMuYUNsb2Nrd2lzZT10LmFDbG9ja3dpc2UsdGhpcy5hUm90YXRpb249dC5hUm90YXRpb24sdGhpc319cHB0LnByb3RvdHlwZS5pc0VsbGlwc2VDdXJ2ZT0hMDtjbGFzcyBtcHQgZXh0ZW5kcyBwcHR7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe3N1cGVyKHQsZSxuLG4sbyxpLGEpLHRoaXMudHlwZT0iQXJjQ3VydmUifX1mdW5jdGlvbiB1cHQoKXtsZXQgdD0wLGU9MCxuPTAsbz0wO2Z1bmN0aW9uIGkoaSxhLHIscyl7dD1pLGU9cixuPS0zKmkrMyphLTIqci1zLG89MippLTIqYStyK3N9cmV0dXJue2luaXRDYXRtdWxsUm9tOmZ1bmN0aW9uKHQsZSxuLG8sYSl7aShlLG4sYSoobi10KSxhKihvLWUpKX0saW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tOmZ1bmN0aW9uKHQsZSxuLG8sYSxyLHMpe2xldCBsPShlLXQpL2EtKG4tdCkvKGErcikrKG4tZSkvcixjPShuLWUpL3ItKG8tZSkvKHIrcykrKG8tbikvcztsKj1yLGMqPXIsaShlLG4sbCxjKX0sY2FsYzpmdW5jdGlvbihpKXtjb25zdCBhPWkqaTtyZXR1cm4gdCtlKmkrbiphK28qKGEqaSl9fX1tcHQucHJvdG90eXBlLmlzQXJjQ3VydmU9ITA7Y29uc3QgZnB0PW5ldyBjYXQsZ3B0PW5ldyB1cHQsaHB0PW5ldyB1cHQsYnB0PW5ldyB1cHQ7Y2xhc3MgeXB0IGV4dGVuZHMgZHB0e2NvbnN0cnVjdG9yKHQ9W10sZT0hMSxuPSJjZW50cmlwZXRhbCIsbz0uNSl7c3VwZXIoKSx0aGlzLnR5cGU9IkNhdG11bGxSb21DdXJ2ZTMiLHRoaXMucG9pbnRzPXQsdGhpcy5jbG9zZWQ9ZSx0aGlzLmN1cnZlVHlwZT1uLHRoaXMudGVuc2lvbj1vfWdldFBvaW50KHQsZT1uZXcgY2F0KXtjb25zdCBuPWUsbz10aGlzLnBvaW50cyxpPW8ubGVuZ3RoLGE9KGktKHRoaXMuY2xvc2VkPzA6MSkpKnQ7bGV0IHIscyxsPU1hdGguZmxvb3IoYSksYz1hLWw7dGhpcy5jbG9zZWQ/bCs9bD4wPzA6KE1hdGguZmxvb3IoTWF0aC5hYnMobCkvaSkrMSkqaTowPT09YyYmbD09PWktMSYmKGw9aS0yLGM9MSksdGhpcy5jbG9zZWR8fGw+MD9yPW9bKGwtMSklaV06KGZwdC5zdWJWZWN0b3JzKG9bMF0sb1sxXSkuYWRkKG9bMF0pLHI9ZnB0KTtjb25zdCBkPW9bbCVpXSxwPW9bKGwrMSklaV07aWYodGhpcy5jbG9zZWR8fGwrMjxpP3M9b1sobCsyKSVpXTooZnB0LnN1YlZlY3RvcnMob1tpLTFdLG9baS0yXSkuYWRkKG9baS0xXSkscz1mcHQpLCJjZW50cmlwZXRhbCI9PT10aGlzLmN1cnZlVHlwZXx8ImNob3JkYWwiPT09dGhpcy5jdXJ2ZVR5cGUpe2NvbnN0IHQ9ImNob3JkYWwiPT09dGhpcy5jdXJ2ZVR5cGU/LjU6LjI1O2xldCBlPU1hdGgucG93KHIuZGlzdGFuY2VUb1NxdWFyZWQoZCksdCksbj1NYXRoLnBvdyhkLmRpc3RhbmNlVG9TcXVhcmVkKHApLHQpLG89TWF0aC5wb3cocC5kaXN0YW5jZVRvU3F1YXJlZChzKSx0KTtuPDFlLTQmJihuPTEpLGU8MWUtNCYmKGU9biksbzwxZS00JiYobz1uKSxncHQuaW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tKHIueCxkLngscC54LHMueCxlLG4sbyksaHB0LmluaXROb251bmlmb3JtQ2F0bXVsbFJvbShyLnksZC55LHAueSxzLnksZSxuLG8pLGJwdC5pbml0Tm9udW5pZm9ybUNhdG11bGxSb20oci56LGQueixwLnoscy56LGUsbixvKX1lbHNlImNhdG11bGxyb20iPT09dGhpcy5jdXJ2ZVR5cGUmJihncHQuaW5pdENhdG11bGxSb20oci54LGQueCxwLngscy54LHRoaXMudGVuc2lvbiksaHB0LmluaXRDYXRtdWxsUm9tKHIueSxkLnkscC55LHMueSx0aGlzLnRlbnNpb24pLGJwdC5pbml0Q2F0bXVsbFJvbShyLnosZC56LHAueixzLnosdGhpcy50ZW5zaW9uKSk7cmV0dXJuIG4uc2V0KGdwdC5jYWxjKGMpLGhwdC5jYWxjKGMpLGJwdC5jYWxjKGMpKSxufWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLnBvaW50cz1bXTtmb3IobGV0IGU9MCxuPXQucG9pbnRzLmxlbmd0aDtlPG47ZSsrKXRoaXMucG9pbnRzLnB1c2godC5wb2ludHNbZV0uY2xvbmUoKSk7cmV0dXJuIHRoaXMuY2xvc2VkPXQuY2xvc2VkLHRoaXMuY3VydmVUeXBlPXQuY3VydmVUeXBlLHRoaXMudGVuc2lvbj10LnRlbnNpb24sdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5wb2ludHMubGVuZ3RoO2U8bjtlKyspdC5wb2ludHMucHVzaCh0aGlzLnBvaW50c1tlXS50b0FycmF5KCkpO3JldHVybiB0LmNsb3NlZD10aGlzLmNsb3NlZCx0LmN1cnZlVHlwZT10aGlzLmN1cnZlVHlwZSx0LnRlbnNpb249dGhpcy50ZW5zaW9uLHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy5wb2ludHM9W107Zm9yKGxldCBlPTAsbj10LnBvaW50cy5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10LnBvaW50c1tlXTt0aGlzLnBvaW50cy5wdXNoKChuZXcgY2F0KS5mcm9tQXJyYXkobikpfXJldHVybiB0aGlzLmNsb3NlZD10LmNsb3NlZCx0aGlzLmN1cnZlVHlwZT10LmN1cnZlVHlwZSx0aGlzLnRlbnNpb249dC50ZW5zaW9uLHRoaXN9fWZ1bmN0aW9uIF9wdCh0LGUsbixvLGkpe2NvbnN0IGE9LjUqKG8tZSkscj0uNSooaS1uKSxzPXQqdDtyZXR1cm4oMipuLTIqbythK3IpKih0KnMpKygtMypuKzMqby0yKmEtcikqcythKnQrbn1mdW5jdGlvbiBDcHQodCxlLG4sbyl7cmV0dXJuKGZ1bmN0aW9uIGkodCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gbipuKmV9KSh0LGUpKyhmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIDIqKDEtdCkqdCplfSkodCxuKSsoZnVuY3Rpb24gcih0LGUpe3JldHVybiB0KnQqZX0pKHQsbyl9ZnVuY3Rpb24gTXB0KHQsZSxuLG8saSl7cmV0dXJuKGZ1bmN0aW9uIGEodCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gbipuKm4qZX0pKHQsZSkrKGZ1bmN0aW9uIHIodCxlKXtjb25zdCBuPTEtdDtyZXR1cm4gMypuKm4qdCplfSkodCxuKSsoZnVuY3Rpb24gcyh0LGUpe3JldHVybiAzKigxLXQpKnQqdCplfSkodCxvKSsoZnVuY3Rpb24gbCh0LGUpe3JldHVybiB0KnQqdCplfSkodCxpKX15cHQucHJvdG90eXBlLmlzQ2F0bXVsbFJvbUN1cnZlMz0hMDtjbGFzcyB2cHQgZXh0ZW5kcyBkcHR7Y29uc3RydWN0b3IodD1uZXcgUWl0LGU9bmV3IFFpdCxuPW5ldyBRaXQsbz1uZXcgUWl0KXtzdXBlcigpLHRoaXMudHlwZT0iQ3ViaWNCZXppZXJDdXJ2ZSIsdGhpcy52MD10LHRoaXMudjE9ZSx0aGlzLnYyPW4sdGhpcy52Mz1vfWdldFBvaW50KHQsZT1uZXcgUWl0KXtjb25zdCBuPWUsbz10aGlzLnYwLGk9dGhpcy52MSxhPXRoaXMudjIscj10aGlzLnYzO3JldHVybiBuLnNldChNcHQodCxvLngsaS54LGEueCxyLngpLE1wdCh0LG8ueSxpLnksYS55LHIueSkpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzLnYzLmNvcHkodC52MyksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0LnYzPXRoaXMudjMudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXMudjMuZnJvbUFycmF5KHQudjMpLHRoaXN9fXZwdC5wcm90b3R5cGUuaXNDdWJpY0JlemllckN1cnZlPSEwO2NsYXNzIHhwdCBleHRlbmRzIGRwdHtjb25zdHJ1Y3Rvcih0PW5ldyBjYXQsZT1uZXcgY2F0LG49bmV3IGNhdCxvPW5ldyBjYXQpe3N1cGVyKCksdGhpcy50eXBlPSJDdWJpY0JlemllckN1cnZlMyIsdGhpcy52MD10LHRoaXMudjE9ZSx0aGlzLnYyPW4sdGhpcy52Mz1vfWdldFBvaW50KHQsZT1uZXcgY2F0KXtjb25zdCBuPWUsbz10aGlzLnYwLGk9dGhpcy52MSxhPXRoaXMudjIscj10aGlzLnYzO3JldHVybiBuLnNldChNcHQodCxvLngsaS54LGEueCxyLngpLE1wdCh0LG8ueSxpLnksYS55LHIueSksTXB0KHQsby56LGkueixhLnosci56KSksbn1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjAuY29weSh0LnYwKSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXMudjMuY29weSh0LnYzKSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHQudjM9dGhpcy52My50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MC5mcm9tQXJyYXkodC52MCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpcy52My5mcm9tQXJyYXkodC52MyksdGhpc319eHB0LnByb3RvdHlwZS5pc0N1YmljQmV6aWVyQ3VydmUzPSEwO2NsYXNzIE9wdCBleHRlbmRzIGRwdHtjb25zdHJ1Y3Rvcih0PW5ldyBRaXQsZT1uZXcgUWl0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUN1cnZlIix0aGlzLnYxPXQsdGhpcy52Mj1lfWdldFBvaW50KHQsZT1uZXcgUWl0KXtjb25zdCBuPWU7cmV0dXJuIDE9PT10P24uY29weSh0aGlzLnYyKToobi5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKSxuLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLnYxKSksbn1nZXRQb2ludEF0KHQsZSl7cmV0dXJuIHRoaXMuZ2V0UG9pbnQodCxlKX1nZXRUYW5nZW50KHQsZSl7Y29uc3Qgbj1lfHxuZXcgUWl0O3JldHVybiBuLmNvcHkodGhpcy52Mikuc3ViKHRoaXMudjEpLm5vcm1hbGl6ZSgpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fU9wdC5wcm90b3R5cGUuaXNMaW5lQ3VydmU9ITA7Y2xhc3MgUHB0IGV4dGVuZHMgZHB0e2NvbnN0cnVjdG9yKHQ9bmV3IFFpdCxlPW5ldyBRaXQsbj1uZXcgUWl0KXtzdXBlcigpLHRoaXMudHlwZT0iUXVhZHJhdGljQmV6aWVyQ3VydmUiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1ufWdldFBvaW50KHQsZT1uZXcgUWl0KXtjb25zdCBuPWUsbz10aGlzLnYwLGk9dGhpcy52MSxhPXRoaXMudjI7cmV0dXJuIG4uc2V0KENwdCh0LG8ueCxpLngsYS54KSxDcHQodCxvLnksaS55LGEueSkpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fVBwdC5wcm90b3R5cGUuaXNRdWFkcmF0aWNCZXppZXJDdXJ2ZT0hMDtjbGFzcyB3cHQgZXh0ZW5kcyBkcHR7Y29uc3RydWN0b3IodD1uZXcgY2F0LGU9bmV3IGNhdCxuPW5ldyBjYXQpe3N1cGVyKCksdGhpcy50eXBlPSJRdWFkcmF0aWNCZXppZXJDdXJ2ZTMiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1ufWdldFBvaW50KHQsZT1uZXcgY2F0KXtjb25zdCBuPWUsbz10aGlzLnYwLGk9dGhpcy52MSxhPXRoaXMudjI7cmV0dXJuIG4uc2V0KENwdCh0LG8ueCxpLngsYS54KSxDcHQodCxvLnksaS55LGEueSksQ3B0KHQsby56LGkueixhLnopKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYwLmZyb21BcnJheSh0LnYwKSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzfX13cHQucHJvdG90eXBlLmlzUXVhZHJhdGljQmV6aWVyQ3VydmUzPSEwO2NsYXNzIGtwdCBleHRlbmRzIGRwdHtjb25zdHJ1Y3Rvcih0PVtdKXtzdXBlcigpLHRoaXMudHlwZT0iU3BsaW5lQ3VydmUiLHRoaXMucG9pbnRzPXR9Z2V0UG9pbnQodCxlPW5ldyBRaXQpe2NvbnN0IG49ZSxvPXRoaXMucG9pbnRzLGk9KG8ubGVuZ3RoLTEpKnQsYT1NYXRoLmZsb29yKGkpLHI9aS1hLHM9b1swPT09YT9hOmEtMV0sbD1vW2FdLGM9b1thPm8ubGVuZ3RoLTI/by5sZW5ndGgtMTphKzFdLGQ9b1thPm8ubGVuZ3RoLTM/by5sZW5ndGgtMTphKzJdO3JldHVybiBuLnNldChfcHQocixzLngsbC54LGMueCxkLngpLF9wdChyLHMueSxsLnksYy55LGQueSkpLG59Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspdGhpcy5wb2ludHMucHVzaCh0LnBvaW50c1tlXS5jbG9uZSgpKTtyZXR1cm4gdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5wb2ludHMubGVuZ3RoO2U8bjtlKyspdC5wb2ludHMucHVzaCh0aGlzLnBvaW50c1tlXS50b0FycmF5KCkpO3JldHVybiB0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dC5wb2ludHNbZV07dGhpcy5wb2ludHMucHVzaCgobmV3IFFpdCkuZnJvbUFycmF5KG4pKX1yZXR1cm4gdGhpc319a3B0LnByb3RvdHlwZS5pc1NwbGluZUN1cnZlPSEwO3ZhciBTcHQ9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQXJjQ3VydmU6bXB0LENhdG11bGxSb21DdXJ2ZTM6eXB0LEN1YmljQmV6aWVyQ3VydmU6dnB0LEN1YmljQmV6aWVyQ3VydmUzOnhwdCxFbGxpcHNlQ3VydmU6cHB0LExpbmVDdXJ2ZTpPcHQsTGluZUN1cnZlMzpjbGFzcyBleHRlbmRzIGRwdHtjb25zdHJ1Y3Rvcih0PW5ldyBjYXQsZT1uZXcgY2F0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUN1cnZlMyIsdGhpcy5pc0xpbmVDdXJ2ZTM9ITAsdGhpcy52MT10LHRoaXMudjI9ZX1nZXRQb2ludCh0LGU9bmV3IGNhdCl7Y29uc3Qgbj1lO3JldHVybiAxPT09dD9uLmNvcHkodGhpcy52Mik6KG4uY29weSh0aGlzLnYyKS5zdWIodGhpcy52MSksbi5tdWx0aXBseVNjYWxhcih0KS5hZGQodGhpcy52MSkpLG59Z2V0UG9pbnRBdCh0LGUpe3JldHVybiB0aGlzLmdldFBvaW50KHQsZSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fSxRdWFkcmF0aWNCZXppZXJDdXJ2ZTpQcHQsUXVhZHJhdGljQmV6aWVyQ3VydmUzOndwdCxTcGxpbmVDdXJ2ZTprcHR9KTtmdW5jdGlvbiBEcHQodCxlLG4sbyxpKXtsZXQgYSxyO2lmKGk9PT0oZnVuY3Rpb24gcyh0LGUsbixvKXtsZXQgaT0wO2ZvcihsZXQgYT1lLHI9bi1vO2E8bjthKz1vKWkrPSh0W3JdLXRbYV0pKih0W2ErMV0rdFtyKzFdKSxyPWE7cmV0dXJuIGl9KSh0LGUsbixvKT4wKWZvcihhPWU7YTxuO2ErPW8pcj1LcHQoYSx0W2FdLHRbYSsxXSxyKTtlbHNlIGZvcihhPW4tbzthPj1lO2EtPW8pcj1LcHQoYSx0W2FdLHRbYSsxXSxyKTtyZXR1cm4gciYmR3B0KHIsci5uZXh0KSYmKEpwdChyKSxyPXIubmV4dCkscn1mdW5jdGlvbiBFcHQodCxlKXtpZighdClyZXR1cm4gdDtlfHwoZT10KTtsZXQgbixvPXQ7ZG97aWYobj0hMSxvLnN0ZWluZXJ8fCFHcHQobyxvLm5leHQpJiYwIT09VXB0KG8ucHJldixvLG8ubmV4dCkpbz1vLm5leHQ7ZWxzZXtpZihKcHQobyksbz1lPW8ucHJldixvPT09by5uZXh0KWJyZWFrO249ITB9fXdoaWxlKG58fG8hPT1lKTtyZXR1cm4gZX1mdW5jdGlvbiBScHQodCxlLG4sbyxpLGEscil7aWYoIXQpcmV0dXJuOyFyJiZhJiYoZnVuY3Rpb24gcyh0LGUsbixvKXtsZXQgaT10O2Rve251bGw9PT1pLnomJihpLno9THB0KGkueCxpLnksZSxuLG8pKSxpLnByZXZaPWkucHJldixpLm5leHRaPWkubmV4dCxpPWkubmV4dH13aGlsZShpIT09dCk7aS5wcmV2Wi5uZXh0Wj1udWxsLGkucHJldlo9bnVsbCwoZnVuY3Rpb24gYSh0KXtsZXQgZSxuLG8saSxhLHIscyxsLGM9MTtkb3tmb3Iobj10LHQ9bnVsbCxhPW51bGwscj0wO247KXtmb3IocisrLG89bixzPTAsZT0wO2U8YyYmKHMrKyxvPW8ubmV4dFosbyk7ZSsrKTtmb3IobD1jO3M+MHx8bD4wJiZvOykwIT09cyYmKDA9PT1sfHwhb3x8bi56PD1vLnopPyhpPW4sbj1uLm5leHRaLHMtLSk6KGk9byxvPW8ubmV4dFosbC0tKSxhP2EubmV4dFo9aTp0PWksaS5wcmV2Wj1hLGE9aTtuPW99YS5uZXh0Wj1udWxsLGMqPTJ9d2hpbGUocj4xKX0pKGkpfSkodCxvLGksYSk7bGV0IGwsYyxkPXQ7Zm9yKDt0LnByZXYhPT10Lm5leHQ7KWlmKGw9dC5wcmV2LGM9dC5uZXh0LGE/VHB0KHQsbyxpLGEpOkFwdCh0KSllLnB1c2gobC5pL24pLGUucHVzaCh0LmkvbiksZS5wdXNoKGMuaS9uKSxKcHQodCksdD1jLm5leHQsZD1jLm5leHQ7ZWxzZSBpZigodD1jKT09PWQpe3I/MT09PXI/UnB0KHQ9TnB0KEVwdCh0KSxlLG4pLGUsbixvLGksYSwyKToyPT09ciYmenB0KHQsZSxuLG8saSxhKTpScHQoRXB0KHQpLGUsbixvLGksYSwxKTticmVha319ZnVuY3Rpb24gQXB0KHQpe2NvbnN0IGU9dC5wcmV2LG49dCxvPXQubmV4dDtpZihVcHQoZSxuLG8pPj0wKXJldHVybiExO2xldCBpPXQubmV4dC5uZXh0O2Zvcig7aSE9PXQucHJldjspe2lmKFZwdChlLngsZS55LG4ueCxuLnksby54LG8ueSxpLngsaS55KSYmVXB0KGkucHJldixpLGkubmV4dCk+PTApcmV0dXJuITE7aT1pLm5leHR9cmV0dXJuITB9ZnVuY3Rpb24gVHB0KHQsZSxuLG8pe2NvbnN0IGk9dC5wcmV2LGE9dCxyPXQubmV4dDtpZihVcHQoaSxhLHIpPj0wKXJldHVybiExO2NvbnN0IHM9aS54PmEueD9pLng+ci54P2kueDpyLng6YS54PnIueD9hLng6ci54LGw9aS55PmEueT9pLnk+ci55P2kueTpyLnk6YS55PnIueT9hLnk6ci55LGM9THB0KGkueDxhLng/aS54PHIueD9pLng6ci54OmEueDxyLng/YS54OnIueCxpLnk8YS55P2kueTxyLnk/aS55OnIueTphLnk8ci55P2EueTpyLnksZSxuLG8pLGQ9THB0KHMsbCxlLG4sbyk7bGV0IHA9dC5wcmV2WixtPXQubmV4dFo7Zm9yKDtwJiZwLno+PWMmJm0mJm0uejw9ZDspe2lmKHAhPT10LnByZXYmJnAhPT10Lm5leHQmJlZwdChpLngsaS55LGEueCxhLnksci54LHIueSxwLngscC55KSYmVXB0KHAucHJldixwLHAubmV4dCk+PTApcmV0dXJuITE7aWYocD1wLnByZXZaLG0hPT10LnByZXYmJm0hPT10Lm5leHQmJlZwdChpLngsaS55LGEueCxhLnksci54LHIueSxtLngsbS55KSYmVXB0KG0ucHJldixtLG0ubmV4dCk+PTApcmV0dXJuITE7bT1tLm5leHRafWZvcig7cCYmcC56Pj1jOyl7aWYocCE9PXQucHJldiYmcCE9PXQubmV4dCYmVnB0KGkueCxpLnksYS54LGEueSxyLngsci55LHAueCxwLnkpJiZVcHQocC5wcmV2LHAscC5uZXh0KT49MClyZXR1cm4hMTtwPXAucHJldlp9Zm9yKDttJiZtLno8PWQ7KXtpZihtIT09dC5wcmV2JiZtIT09dC5uZXh0JiZWcHQoaS54LGkueSxhLngsYS55LHIueCxyLnksbS54LG0ueSkmJlVwdChtLnByZXYsbSxtLm5leHQpPj0wKXJldHVybiExO209bS5uZXh0Wn1yZXR1cm4hMH1mdW5jdGlvbiBOcHQodCxlLG4pe2xldCBvPXQ7ZG97Y29uc3QgaT1vLnByZXYsYT1vLm5leHQubmV4dDshR3B0KGksYSkmJldwdChpLG8sby5uZXh0LGEpJiZacHQoaSxhKSYmWnB0KGEsaSkmJihlLnB1c2goaS5pL24pLGUucHVzaChvLmkvbiksZS5wdXNoKGEuaS9uKSxKcHQobyksSnB0KG8ubmV4dCksbz10PWEpLG89by5uZXh0fXdoaWxlKG8hPT10KTtyZXR1cm4gRXB0KG8pfWZ1bmN0aW9uIHpwdCh0LGUsbixvLGksYSl7bGV0IHI9dDtkb3tsZXQgdD1yLm5leHQubmV4dDtmb3IoO3QhPT1yLnByZXY7KXtpZihyLmkhPT10LmkmJmpwdChyLHQpKXtsZXQgcz1YcHQocix0KTtyZXR1cm4gcj1FcHQocixyLm5leHQpLHM9RXB0KHMscy5uZXh0KSxScHQocixlLG4sbyxpLGEpLHZvaWQgUnB0KHMsZSxuLG8saSxhKX10PXQubmV4dH1yPXIubmV4dH13aGlsZShyIT09dCl9ZnVuY3Rpb24gSXB0KHQsZSl7cmV0dXJuIHQueC1lLnh9ZnVuY3Rpb24gSHB0KHQsZSl7aWYoZT0oZnVuY3Rpb24gbih0LGUpe2xldCBuPWU7Y29uc3Qgbz10LngsaT10Lnk7bGV0IGEscj0tMS8wO2Rve2lmKGk8PW4ueSYmaT49bi5uZXh0LnkmJm4ubmV4dC55IT09bi55KXtjb25zdCB0PW4ueCsoaS1uLnkpKihuLm5leHQueC1uLngpLyhuLm5leHQueS1uLnkpO2lmKHQ8PW8mJnQ+cil7aWYocj10LHQ9PT1vKXtpZihpPT09bi55KXJldHVybiBuO2lmKGk9PT1uLm5leHQueSlyZXR1cm4gbi5uZXh0fWE9bi54PG4ubmV4dC54P246bi5uZXh0fX1uPW4ubmV4dH13aGlsZShuIT09ZSk7aWYoIWEpcmV0dXJuIG51bGw7aWYobz09PXIpcmV0dXJuIGE7Y29uc3Qgcz1hLGw9YS54LGM9YS55O2xldCBkLHA9MS8wO249YTtkb3tvPj1uLngmJm4ueD49bCYmbyE9PW4ueCYmVnB0KGk8Yz9vOnIsaSxsLGMsaTxjP3I6byxpLG4ueCxuLnkpJiYoZD1NYXRoLmFicyhpLW4ueSkvKG8tbi54KSxacHQobix0KSYmKGQ8cHx8ZD09PXAmJihuLng+YS54fHxuLng9PT1hLngmJkZwdChhLG4pKSkmJihhPW4scD1kKSksbj1uLm5leHR9d2hpbGUobiE9PXMpO3JldHVybiBhfSkodCxlKSl7Y29uc3Qgbj1YcHQoZSx0KTtFcHQoZSxlLm5leHQpLEVwdChuLG4ubmV4dCl9fWZ1bmN0aW9uIEZwdCh0LGUpe3JldHVybiBVcHQodC5wcmV2LHQsZS5wcmV2KTwwJiZVcHQoZS5uZXh0LHQsdC5uZXh0KTwwfWZ1bmN0aW9uIExwdCh0LGUsbixvLGkpe3JldHVybih0PTE0MzE2NTU3NjUmKCh0PTg1ODk5MzQ1OSYoKHQ9MjUyNjQ1MTM1JigodD0xNjcxMTkzNSYoKHQ9MzI3NjcqKHQtbikqaSl8dDw8OCkpfHQ8PDQpKXx0PDwyKSl8dDw8MSkpfChlPTE0MzE2NTU3NjUmKChlPTg1ODk5MzQ1OSYoKGU9MjUyNjQ1MTM1JigoZT0xNjcxMTkzNSYoKGU9MzI3NjcqKGUtbykqaSl8ZTw8OCkpfGU8PDQpKXxlPDwyKSl8ZTw8MSkpPDwxfWZ1bmN0aW9uIEJwdCh0KXtsZXQgZT10LG49dDtkb3soZS54PG4ueHx8ZS54PT09bi54JiZlLnk8bi55KSYmKG49ZSksZT1lLm5leHR9d2hpbGUoZSE9PXQpO3JldHVybiBufWZ1bmN0aW9uIFZwdCh0LGUsbixvLGksYSxyLHMpe3JldHVybihpLXIpKihlLXMpLSh0LXIpKihhLXMpPj0wJiYodC1yKSooby1zKS0obi1yKSooZS1zKT49MCYmKG4tcikqKGEtcyktKGktcikqKG8tcyk+PTB9ZnVuY3Rpb24ganB0KHQsZSl7cmV0dXJuIHQubmV4dC5pIT09ZS5pJiZ0LnByZXYuaSE9PWUuaSYmIShmdW5jdGlvbiBuKHQsZSl7bGV0IG49dDtkb3tpZihuLmkhPT10LmkmJm4ubmV4dC5pIT09dC5pJiZuLmkhPT1lLmkmJm4ubmV4dC5pIT09ZS5pJiZXcHQobixuLm5leHQsdCxlKSlyZXR1cm4hMDtuPW4ubmV4dH13aGlsZShuIT09dCk7cmV0dXJuITF9KSh0LGUpJiYoWnB0KHQsZSkmJlpwdChlLHQpJiYoZnVuY3Rpb24gbyh0LGUpe2xldCBuPXQsbz0hMTtjb25zdCBpPSh0LngrZS54KS8yLGE9KHQueStlLnkpLzI7ZG97bi55PmEhPW4ubmV4dC55PmEmJm4ubmV4dC55IT09bi55JiZpPChuLm5leHQueC1uLngpKihhLW4ueSkvKG4ubmV4dC55LW4ueSkrbi54JiYobz0hbyksbj1uLm5leHR9d2hpbGUobiE9PXQpO3JldHVybiBvfSkodCxlKSYmKFVwdCh0LnByZXYsdCxlLnByZXYpfHxVcHQodCxlLnByZXYsZSkpfHxHcHQodCxlKSYmVXB0KHQucHJldix0LHQubmV4dCk+MCYmVXB0KGUucHJldixlLGUubmV4dCk+MCl9ZnVuY3Rpb24gVXB0KHQsZSxuKXtyZXR1cm4oZS55LXQueSkqKG4ueC1lLngpLShlLngtdC54KSoobi55LWUueSl9ZnVuY3Rpb24gR3B0KHQsZSl7cmV0dXJuIHQueD09PWUueCYmdC55PT09ZS55fWZ1bmN0aW9uIFdwdCh0LGUsbixvKXtjb25zdCBpPXFwdChVcHQodCxlLG4pKSxhPXFwdChVcHQodCxlLG8pKSxyPXFwdChVcHQobixvLHQpKSxzPXFwdChVcHQobixvLGUpKTtyZXR1cm4gaSE9PWEmJnIhPT1zfHwhKDAhPT1pfHwhWXB0KHQsbixlKSl8fCEoMCE9PWF8fCFZcHQodCxvLGUpKXx8ISgwIT09cnx8IVlwdChuLHQsbykpfHwhKDAhPT1zfHwhWXB0KG4sZSxvKSl9ZnVuY3Rpb24gWXB0KHQsZSxuKXtyZXR1cm4gZS54PD1NYXRoLm1heCh0Lngsbi54KSYmZS54Pj1NYXRoLm1pbih0Lngsbi54KSYmZS55PD1NYXRoLm1heCh0Lnksbi55KSYmZS55Pj1NYXRoLm1pbih0Lnksbi55KX1mdW5jdGlvbiBxcHQodCl7cmV0dXJuIHQ+MD8xOnQ8MD8tMTowfWZ1bmN0aW9uIFpwdCh0LGUpe3JldHVybiBVcHQodC5wcmV2LHQsdC5uZXh0KTwwP1VwdCh0LGUsdC5uZXh0KT49MCYmVXB0KHQsdC5wcmV2LGUpPj0wOlVwdCh0LGUsdC5wcmV2KTwwfHxVcHQodCx0Lm5leHQsZSk8MH1mdW5jdGlvbiBYcHQodCxlKXtjb25zdCBuPW5ldyBRcHQodC5pLHQueCx0LnkpLG89bmV3IFFwdChlLmksZS54LGUueSksaT10Lm5leHQsYT1lLnByZXY7cmV0dXJuIHQubmV4dD1lLGUucHJldj10LG4ubmV4dD1pLGkucHJldj1uLG8ubmV4dD1uLG4ucHJldj1vLGEubmV4dD1vLG8ucHJldj1hLG99ZnVuY3Rpb24gS3B0KHQsZSxuLG8pe2NvbnN0IGk9bmV3IFFwdCh0LGUsbik7cmV0dXJuIG8/KGkubmV4dD1vLm5leHQsaS5wcmV2PW8sby5uZXh0LnByZXY9aSxvLm5leHQ9aSk6KGkucHJldj1pLGkubmV4dD1pKSxpfWZ1bmN0aW9uIEpwdCh0KXt0Lm5leHQucHJldj10LnByZXYsdC5wcmV2Lm5leHQ9dC5uZXh0LHQucHJldlomJih0LnByZXZaLm5leHRaPXQubmV4dFopLHQubmV4dFomJih0Lm5leHRaLnByZXZaPXQucHJldlopfWZ1bmN0aW9uIFFwdCh0LGUsbil7dGhpcy5pPXQsdGhpcy54PWUsdGhpcy55PW4sdGhpcy5wcmV2PW51bGwsdGhpcy5uZXh0PW51bGwsdGhpcy56PW51bGwsdGhpcy5wcmV2Wj1udWxsLHRoaXMubmV4dFo9bnVsbCx0aGlzLnN0ZWluZXI9ITF9Y2xhc3MgJHB0e3N0YXRpYyBhcmVhKHQpe2NvbnN0IGU9dC5sZW5ndGg7bGV0IG49MDtmb3IobGV0IG89ZS0xLGk9MDtpPGU7bz1pKyspbis9dFtvXS54KnRbaV0ueS10W2ldLngqdFtvXS55O3JldHVybi41Km59c3RhdGljIGlzQ2xvY2tXaXNlKHQpe3JldHVybiAkcHQuYXJlYSh0KTwwfXN0YXRpYyB0cmlhbmd1bGF0ZVNoYXBlKHQsZSl7Y29uc3Qgbj1bXSxvPVtdLGk9W107dG10KHQpLGVtdChuLHQpO2xldCBhPXQubGVuZ3RoO2UuZm9yRWFjaCh0bXQpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW8ucHVzaChhKSxhKz1lW3RdLmxlbmd0aCxlbXQobixlW3RdKTtjb25zdCByPShmdW5jdGlvbih0LGUsbj0yKXtjb25zdCBvPWUmJmUubGVuZ3RoLGk9bz9lWzBdKm46dC5sZW5ndGg7bGV0IGE9RHB0KHQsMCxpLG4sITApO2NvbnN0IHI9W107aWYoIWF8fGEubmV4dD09PWEucHJldilyZXR1cm4gcjtsZXQgcyxsLGMsZCxwLG0sdTtpZihvJiYoYT0oZnVuY3Rpb24gZih0LGUsbixvKXtjb25zdCBpPVtdO2xldCBhLHIscyxsLGM7Zm9yKGE9MCxyPWUubGVuZ3RoO2E8cjthKyspcz1lW2FdKm8sbD1hPHItMT9lW2ErMV0qbzp0Lmxlbmd0aCxjPURwdCh0LHMsbCxvLCExKSxjPT09Yy5uZXh0JiYoYy5zdGVpbmVyPSEwKSxpLnB1c2goQnB0KGMpKTtmb3IoaS5zb3J0KElwdCksYT0wO2E8aS5sZW5ndGg7YSsrKUhwdChpW2FdLG4pLG49RXB0KG4sbi5uZXh0KTtyZXR1cm4gbn0pKHQsZSxhLG4pKSx0Lmxlbmd0aD44MCpuKXtzPWM9dFswXSxsPWQ9dFsxXTtmb3IobGV0IGU9bjtlPGk7ZSs9bilwPXRbZV0sbT10W2UrMV0scDxzJiYocz1wKSxtPGwmJihsPW0pLHA+YyYmKGM9cCksbT5kJiYoZD1tKTt1PU1hdGgubWF4KGMtcyxkLWwpLHU9MCE9PXU/MS91OjB9cmV0dXJuIFJwdChhLHIsbixzLGwsdSkscn0pKG4sbyk7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kz0zKWkucHVzaChyLnNsaWNlKHQsdCszKSk7cmV0dXJuIGl9fWZ1bmN0aW9uIHRtdCh0KXtjb25zdCBlPXQubGVuZ3RoO2U+MiYmdFtlLTFdLmVxdWFscyh0WzBdKSYmdC5wb3AoKX1mdW5jdGlvbiBlbXQodCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl0LnB1c2goZVtuXS54KSx0LnB1c2goZVtuXS55KX1jbGFzcyBubXQgZXh0ZW5kcyBxcnR7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMudHlwZT0iRXh0cnVkZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3NoYXBlczp0LG9wdGlvbnM6ZX0sdD1BcnJheS5pc0FycmF5KHQpP3Q6W3RdO2NvbnN0IG49dGhpcyxvPVtdLGk9W107Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKWEodFtlXSk7ZnVuY3Rpb24gYSh0KXtjb25zdCBhPVtdLHI9dm9pZCAwIT09ZS5jdXJ2ZVNlZ21lbnRzP2UuY3VydmVTZWdtZW50czoxMixzPXZvaWQgMCE9PWUuc3RlcHM/ZS5zdGVwczoxO2xldCBsPXZvaWQgMCE9PWUuZGVwdGg/ZS5kZXB0aDoxMDAsYz12b2lkIDA9PT1lLmJldmVsRW5hYmxlZHx8ZS5iZXZlbEVuYWJsZWQsZD12b2lkIDAhPT1lLmJldmVsVGhpY2tuZXNzP2UuYmV2ZWxUaGlja25lc3M6NixwPXZvaWQgMCE9PWUuYmV2ZWxTaXplP2UuYmV2ZWxTaXplOmQtMixtPXZvaWQgMCE9PWUuYmV2ZWxPZmZzZXQ/ZS5iZXZlbE9mZnNldDowLHU9dm9pZCAwIT09ZS5iZXZlbFNlZ21lbnRzP2UuYmV2ZWxTZWdtZW50czozO2NvbnN0IGY9ZS5leHRydWRlUGF0aCxnPXZvaWQgMCE9PWUuVVZHZW5lcmF0b3I/ZS5VVkdlbmVyYXRvcjpvbXQ7dm9pZCAwIT09ZS5hbW91bnQmJihjb25zb2xlLndhcm4oIlRIUkVFLkV4dHJ1ZGVCdWZmZXJHZW9tZXRyeTogYW1vdW50IGhhcyBiZWVuIHJlbmFtZWQgdG8gZGVwdGguIiksbD1lLmFtb3VudCk7bGV0IGgsYix5LF8sQyxNPSExO2YmJihoPWYuZ2V0U3BhY2VkUG9pbnRzKHMpLE09ITAsYz0hMSxiPWYuY29tcHV0ZUZyZW5ldEZyYW1lcyhzLCExKSx5PW5ldyBjYXQsXz1uZXcgY2F0LEM9bmV3IGNhdCksY3x8KHU9MCxkPTAscD0wLG09MCk7Y29uc3Qgdj10LmV4dHJhY3RQb2ludHMocik7bGV0IHg9di5zaGFwZTtjb25zdCBPPXYuaG9sZXM7aWYoISRwdC5pc0Nsb2NrV2lzZSh4KSl7eD14LnJldmVyc2UoKTtmb3IobGV0IHQ9MCxlPU8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9T1t0XTskcHQuaXNDbG9ja1dpc2UoZSkmJihPW3RdPWUucmV2ZXJzZSgpKX19Y29uc3QgUD0kcHQudHJpYW5ndWxhdGVTaGFwZSh4LE8pLHc9eDtmb3IobGV0IHQ9MCxlPU8ubGVuZ3RoO3Q8ZTt0KyspeD14LmNvbmNhdChPW3RdKTtmdW5jdGlvbiBrKHQsZSxuKXtyZXR1cm4gZXx8Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiB2ZWMgZG9lcyBub3QgZXhpc3QiKSxlLmNsb25lKCkubXVsdGlwbHlTY2FsYXIobikuYWRkKHQpfWNvbnN0IFM9eC5sZW5ndGgsRD1QLmxlbmd0aDtmdW5jdGlvbiBFKHQsZSxuKXtsZXQgbyxpLGE7Y29uc3Qgcj10LngtZS54LHM9dC55LWUueSxsPW4ueC10LngsYz1uLnktdC55LGQ9cipyK3MqcztpZihNYXRoLmFicyhyKmMtcypsKT5OdW1iZXIuRVBTSUxPTil7Y29uc3QgcD1NYXRoLnNxcnQoZCksbT1NYXRoLnNxcnQobCpsK2MqYyksdT1lLngtcy9wLGY9ZS55K3IvcCxnPSgobi54LWMvbS11KSpjLShuLnkrbC9tLWYpKmwpLyhyKmMtcypsKTtvPXUrcipnLXQueCxpPWYrcypnLXQueTtjb25zdCBoPW8qbytpKmk7aWYoaDw9MilyZXR1cm4gbmV3IFFpdChvLGkpO2E9TWF0aC5zcXJ0KGgvMil9ZWxzZXtsZXQgdD0hMTtyPk51bWJlci5FUFNJTE9OP2w+TnVtYmVyLkVQU0lMT04mJih0PSEwKTpyPC1OdW1iZXIuRVBTSUxPTj9sPC1OdW1iZXIuRVBTSUxPTiYmKHQ9ITApOk1hdGguc2lnbihzKT09PU1hdGguc2lnbihjKSYmKHQ9ITApLHQ/KG89LXMsaT1yLGE9TWF0aC5zcXJ0KGQpKToobz1yLGk9cyxhPU1hdGguc3FydChkLzIpKX1yZXR1cm4gbmV3IFFpdChvL2EsaS9hKX1jb25zdCBSPVtdO2ZvcihsZXQgdD0wLGU9dy5sZW5ndGgsbj1lLTEsbz10KzE7dDxlO3QrKyxuKyssbysrKW49PT1lJiYobj0wKSxvPT09ZSYmKG89MCksUlt0XT1FKHdbdF0sd1tuXSx3W29dKTtjb25zdCBBPVtdO2xldCBULE49Ui5jb25jYXQoKTtmb3IobGV0IHQ9MCxlPU8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9T1t0XTtUPVtdO2ZvcihsZXQgdD0wLG49ZS5sZW5ndGgsbz1uLTEsaT10KzE7dDxuO3QrKyxvKyssaSsrKW89PT1uJiYobz0wKSxpPT09biYmKGk9MCksVFt0XT1FKGVbdF0sZVtvXSxlW2ldKTtBLnB1c2goVCksTj1OLmNvbmNhdChUKX1mb3IobGV0IHQ9MDt0PHU7dCsrKXtjb25zdCBlPXQvdSxuPWQqTWF0aC5jb3MoZSpNYXRoLlBJLzIpLG89cCpNYXRoLnNpbihlKk1hdGguUEkvMikrbTtmb3IobGV0IHQ9MCxlPXcubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9ayh3W3RdLFJbdF0sbyk7SChlLngsZS55LC1uKX1mb3IobGV0IHQ9MCxlPU8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9T1t0XTtUPUFbdF07Zm9yKGxldCB0PTAsaT1lLmxlbmd0aDt0PGk7dCsrKXtjb25zdCBpPWsoZVt0XSxUW3RdLG8pO0goaS54LGkueSwtbil9fX1jb25zdCB6PXArbTtmb3IobGV0IHQ9MDt0PFM7dCsrKXtjb25zdCBlPWM/ayh4W3RdLE5bdF0seik6eFt0XTtNPyhfLmNvcHkoYi5ub3JtYWxzWzBdKS5tdWx0aXBseVNjYWxhcihlLngpLHkuY29weShiLmJpbm9ybWFsc1swXSkubXVsdGlwbHlTY2FsYXIoZS55KSxDLmNvcHkoaFswXSkuYWRkKF8pLmFkZCh5KSxIKEMueCxDLnksQy56KSk6SChlLngsZS55LDApfWZvcihsZXQgdD0xO3Q8PXM7dCsrKWZvcihsZXQgZT0wO2U8UztlKyspe2NvbnN0IG49Yz9rKHhbZV0sTltlXSx6KTp4W2VdO00/KF8uY29weShiLm5vcm1hbHNbdF0pLm11bHRpcGx5U2NhbGFyKG4ueCkseS5jb3B5KGIuYmlub3JtYWxzW3RdKS5tdWx0aXBseVNjYWxhcihuLnkpLEMuY29weShoW3RdKS5hZGQoXykuYWRkKHkpLEgoQy54LEMueSxDLnopKTpIKG4ueCxuLnksbC9zKnQpfWZvcihsZXQgdD11LTE7dD49MDt0LS0pe2NvbnN0IGU9dC91LG49ZCpNYXRoLmNvcyhlKk1hdGguUEkvMiksbz1wKk1hdGguc2luKGUqTWF0aC5QSS8yKSttO2ZvcihsZXQgdD0wLGU9dy5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1rKHdbdF0sUlt0XSxvKTtIKGUueCxlLnksbCtuKX1mb3IobGV0IHQ9MCxlPU8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9T1t0XTtUPUFbdF07Zm9yKGxldCB0PTAsaT1lLmxlbmd0aDt0PGk7dCsrKXtjb25zdCBpPWsoZVt0XSxUW3RdLG8pO00/SChpLngsaS55K2hbcy0xXS55LGhbcy0xXS54K24pOkgoaS54LGkueSxsK24pfX19ZnVuY3Rpb24gSSh0LGUpe2xldCBuPXQubGVuZ3RoO2Zvcig7LS1uPj0wOyl7Y29uc3Qgbz1uO2xldCBpPW4tMTtpPDAmJihpPXQubGVuZ3RoLTEpO2ZvcihsZXQgdD0wLG49cysyKnU7dDxuO3QrKyl7Y29uc3Qgbj1TKnQsYT1TKih0KzEpO0woZStvK24sZStpK24sZStpK2EsZStvK2EpfX19ZnVuY3Rpb24gSCh0LGUsbil7YS5wdXNoKHQpLGEucHVzaChlKSxhLnB1c2gobil9ZnVuY3Rpb24gRih0LGUsaSl7Qih0KSxCKGUpLEIoaSk7Y29uc3QgYT1vLmxlbmd0aC8zLHI9Zy5nZW5lcmF0ZVRvcFVWKG4sbyxhLTMsYS0yLGEtMSk7VihyWzBdKSxWKHJbMV0pLFYoclsyXSl9ZnVuY3Rpb24gTCh0LGUsaSxhKXtCKHQpLEIoZSksQihhKSxCKGUpLEIoaSksQihhKTtjb25zdCByPW8ubGVuZ3RoLzMscz1nLmdlbmVyYXRlU2lkZVdhbGxVVihuLG8sci02LHItMyxyLTIsci0xKTtWKHNbMF0pLFYoc1sxXSksVihzWzNdKSxWKHNbMV0pLFYoc1syXSksVihzWzNdKX1mdW5jdGlvbiBCKHQpe28ucHVzaChhWzMqdCswXSksby5wdXNoKGFbMyp0KzFdKSxvLnB1c2goYVszKnQrMl0pfWZ1bmN0aW9uIFYodCl7aS5wdXNoKHQueCksaS5wdXNoKHQueSl9IShmdW5jdGlvbiBqKCl7Y29uc3QgdD1vLmxlbmd0aC8zO2lmKGMpe2xldCB0PTAsZT1TKnQ7Zm9yKGxldCB0PTA7dDxEO3QrKyl7Y29uc3Qgbj1QW3RdO0YoblsyXStlLG5bMV0rZSxuWzBdK2UpfXQ9cysyKnUsZT1TKnQ7Zm9yKGxldCB0PTA7dDxEO3QrKyl7Y29uc3Qgbj1QW3RdO0YoblswXStlLG5bMV0rZSxuWzJdK2UpfX1lbHNle2ZvcihsZXQgdD0wO3Q8RDt0Kyspe2NvbnN0IGU9UFt0XTtGKGVbMl0sZVsxXSxlWzBdKX1mb3IobGV0IHQ9MDt0PEQ7dCsrKXtjb25zdCBlPVBbdF07RihlWzBdK1MqcyxlWzFdK1MqcyxlWzJdK1Mqcyl9fW4uYWRkR3JvdXAodCxvLmxlbmd0aC8zLXQsMCl9KSgpLChmdW5jdGlvbiBVKCl7Y29uc3QgdD1vLmxlbmd0aC8zO2xldCBlPTA7SSh3LGUpLGUrPXcubGVuZ3RoO2ZvcihsZXQgdD0wLG49Ty5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1PW3RdO0kobixlKSxlKz1uLmxlbmd0aH1uLmFkZEdyb3VwKHQsby5sZW5ndGgvMy10LDEpfSkoKX10aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBGcnQobywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgRnJ0KGksMikpLHRoaXMuY29tcHV0ZVZlcnRleE5vcm1hbHMoKX10b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybihmdW5jdGlvbiBlKHQsbixvKXtpZihvLnNoYXBlcz1bXSxBcnJheS5pc0FycmF5KHQpKWZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKylvLnNoYXBlcy5wdXNoKHRbZV0udXVpZCk7ZWxzZSBvLnNoYXBlcy5wdXNoKHQudXVpZCk7cmV0dXJuIHZvaWQgMCE9PW4uZXh0cnVkZVBhdGgmJihvLm9wdGlvbnMuZXh0cnVkZVBhdGg9bi5leHRydWRlUGF0aC50b0pTT04oKSksb30pKHRoaXMucGFyYW1ldGVycy5zaGFwZXMsdGhpcy5wYXJhbWV0ZXJzLm9wdGlvbnMsdCl9c3RhdGljIGZyb21KU09OKHQsZSl7Y29uc3Qgbj1bXTtmb3IobGV0IG89MCxpPXQuc2hhcGVzLmxlbmd0aDtvPGk7bysrKW4ucHVzaChlW3Quc2hhcGVzW29dXSk7Y29uc3Qgbz10Lm9wdGlvbnMuZXh0cnVkZVBhdGg7cmV0dXJuIHZvaWQgMCE9PW8mJih0Lm9wdGlvbnMuZXh0cnVkZVBhdGg9KG5ldyBTcHRbby50eXBlXSkuZnJvbUpTT04obykpLG5ldyBubXQobix0Lm9wdGlvbnMpfX1jb25zdCBvbXQ9e2dlbmVyYXRlVG9wVVY6ZnVuY3Rpb24odCxlLG4sbyxpKXtjb25zdCBhPWVbMypvXSxyPWVbMypvKzFdLHM9ZVszKmldLGw9ZVszKmkrMV07cmV0dXJuW25ldyBRaXQoZVszKm5dLGVbMypuKzFdKSxuZXcgUWl0KGEsciksbmV3IFFpdChzLGwpXX0sZ2VuZXJhdGVTaWRlV2FsbFVWOmZ1bmN0aW9uKHQsZSxuLG8saSxhKXtjb25zdCByPWVbMypuXSxzPWVbMypuKzFdLGw9ZVszKm4rMl0sYz1lWzMqb10sZD1lWzMqbysxXSxwPWVbMypvKzJdLG09ZVszKmldLHU9ZVszKmkrMV0sZj1lWzMqaSsyXSxnPWVbMyphXSxoPWVbMyphKzFdLGI9ZVszKmErMl07cmV0dXJuIE1hdGguYWJzKHMtZCk8TWF0aC5hYnMoci1jKT9bbmV3IFFpdChyLDEtbCksbmV3IFFpdChjLDEtcCksbmV3IFFpdChtLDEtZiksbmV3IFFpdChnLDEtYildOltuZXcgUWl0KHMsMS1sKSxuZXcgUWl0KGQsMS1wKSxuZXcgUWl0KHUsMS1mKSxuZXcgUWl0KGgsMS1iKV19fTtjbGFzcyBpbXQgZXh0ZW5kcyBxcnR7Y29uc3RydWN0b3IodCxlPTEyKXtzdXBlcigpLHRoaXMudHlwZT0iU2hhcGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtzaGFwZXM6dCxjdXJ2ZVNlZ21lbnRzOmV9O2NvbnN0IG49W10sbz1bXSxpPVtdLGE9W107bGV0IHI9MCxzPTA7aWYoITE9PT1BcnJheS5pc0FycmF5KHQpKWwodCk7ZWxzZSBmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylsKHRbZV0pLHRoaXMuYWRkR3JvdXAocixzLGUpLHIrPXMscz0wO2Z1bmN0aW9uIGwodCl7Y29uc3Qgcj1vLmxlbmd0aC8zLGw9dC5leHRyYWN0UG9pbnRzKGUpO2xldCBjPWwuc2hhcGU7Y29uc3QgZD1sLmhvbGVzOyExPT09JHB0LmlzQ2xvY2tXaXNlKGMpJiYoYz1jLnJldmVyc2UoKSk7Zm9yKGxldCB0PTAsZT1kLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWRbdF07ITA9PT0kcHQuaXNDbG9ja1dpc2UoZSkmJihkW3RdPWUucmV2ZXJzZSgpKX1jb25zdCBwPSRwdC50cmlhbmd1bGF0ZVNoYXBlKGMsZCk7Zm9yKGxldCB0PTAsZT1kLmxlbmd0aDt0PGU7dCsrKWM9Yy5jb25jYXQoZFt0XSk7Zm9yKGxldCB0PTAsZT1jLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWNbdF07by5wdXNoKGUueCxlLnksMCksaS5wdXNoKDAsMCwxKSxhLnB1c2goZS54LGUueSl9Zm9yKGxldCB0PTAsZT1wLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPXBbdF07bi5wdXNoKGVbMF0rcixlWzFdK3IsZVsyXStyKSxzKz0zfX10aGlzLnNldEluZGV4KG4pLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IEZydChvLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgRnJ0KGksMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IEZydChhLDIpKX10b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybihmdW5jdGlvbiBlKHQsbil7aWYobi5zaGFwZXM9W10sQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IGU9MCxvPXQubGVuZ3RoO2U8bztlKyspbi5zaGFwZXMucHVzaCh0W2VdLnV1aWQpO2Vsc2Ugbi5zaGFwZXMucHVzaCh0LnV1aWQpO3JldHVybiBufSkodGhpcy5wYXJhbWV0ZXJzLnNoYXBlcyx0KX1zdGF0aWMgZnJvbUpTT04odCxlKXtjb25zdCBuPVtdO2ZvcihsZXQgbz0wLGk9dC5zaGFwZXMubGVuZ3RoO288aTtvKyspbi5wdXNoKGVbdC5zaGFwZXNbb11dKTtyZXR1cm4gbmV3IGltdChuLHQuY3VydmVTZWdtZW50cyl9fShjbGFzcyBleHRlbmRzIE9ydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iU2hhZG93TWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IFJydCgwKSx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXN9fSkucHJvdG90eXBlLmlzU2hhZG93TWF0ZXJpYWw9ITA7Y2xhc3MgYW10IGV4dGVuZHMgT3J0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIn0sdGhpcy50eXBlPSJNZXNoU3RhbmRhcmRNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgUnJ0KDE2Nzc3MjE1KSx0aGlzLnJvdWdobmVzcz0xLHRoaXMubWV0YWxuZXNzPTAsdGhpcy5tYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZT1uZXcgUnJ0KDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT0wLHRoaXMubm9ybWFsU2NhbGU9bmV3IFFpdCgxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMucm91Z2huZXNzTWFwPW51bGwsdGhpcy5tZXRhbG5lc3NNYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5lbnZNYXA9bnVsbCx0aGlzLmVudk1hcEludGVuc2l0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIn0sdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMucm91Z2huZXNzPXQucm91Z2huZXNzLHRoaXMubWV0YWxuZXNzPXQubWV0YWxuZXNzLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMucm91Z2huZXNzTWFwPXQucm91Z2huZXNzTWFwLHRoaXMubWV0YWxuZXNzTWFwPXQubWV0YWxuZXNzTWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmVudk1hcD10LmVudk1hcCx0aGlzLmVudk1hcEludGVuc2l0eT10LmVudk1hcEludGVuc2l0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319YW10LnByb3RvdHlwZS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsPSEwLGNsYXNzIGV4dGVuZHMgYW10e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIixQSFlTSUNBTDoiIn0sdGhpcy50eXBlPSJNZXNoUGh5c2ljYWxNYXRlcmlhbCIsdGhpcy5jbGVhcmNvYXQ9MCx0aGlzLmNsZWFyY29hdE1hcD1udWxsLHRoaXMuY2xlYXJjb2F0Um91Z2huZXNzPTAsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9bnVsbCx0aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlPW5ldyBRaXQoMSwxKSx0aGlzLmNsZWFyY29hdE5vcm1hbE1hcD1udWxsLHRoaXMucmVmbGVjdGl2aXR5PS41LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJpb3IiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMSsuNCp0aGlzLnJlZmxlY3Rpdml0eSkvKDEtLjQqdGhpcy5yZWZsZWN0aXZpdHkpfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZWZsZWN0aXZpdHk9Wml0KDIuNSoodC0xKS8odCsxKSwwLDEpfX0pLHRoaXMuc2hlZW49bnVsbCx0aGlzLnRyYW5zbWlzc2lvbj0wLHRoaXMudHJhbnNtaXNzaW9uTWFwPW51bGwsdGhpcy50aGlja25lc3M9LjAxLHRoaXMudGhpY2tuZXNzTWFwPW51bGwsdGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlPTAsdGhpcy5hdHRlbnVhdGlvblRpbnQ9bmV3IFJydCgxLDEsMSksdGhpcy5zcGVjdWxhckludGVuc2l0eT0xLHRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXA9bnVsbCx0aGlzLnNwZWN1bGFyVGludD1uZXcgUnJ0KDEsMSwxKSx0aGlzLnNwZWN1bGFyVGludE1hcD1udWxsLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIixQSFlTSUNBTDoiIn0sdGhpcy5jbGVhcmNvYXQ9dC5jbGVhcmNvYXQsdGhpcy5jbGVhcmNvYXRNYXA9dC5jbGVhcmNvYXRNYXAsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3M9dC5jbGVhcmNvYXRSb3VnaG5lc3MsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9dC5jbGVhcmNvYXRSb3VnaG5lc3NNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxNYXA9dC5jbGVhcmNvYXROb3JtYWxNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxTY2FsZS5jb3B5KHQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUpLHRoaXMucmVmbGVjdGl2aXR5PXQucmVmbGVjdGl2aXR5LHRoaXMuc2hlZW49dC5zaGVlbj8odGhpcy5zaGVlbnx8bmV3IFJydCkuY29weSh0LnNoZWVuKTpudWxsLHRoaXMudHJhbnNtaXNzaW9uPXQudHJhbnNtaXNzaW9uLHRoaXMudHJhbnNtaXNzaW9uTWFwPXQudHJhbnNtaXNzaW9uTWFwLHRoaXMudGhpY2tuZXNzPXQudGhpY2tuZXNzLHRoaXMudGhpY2tuZXNzTWFwPXQudGhpY2tuZXNzTWFwLHRoaXMuYXR0ZW51YXRpb25EaXN0YW5jZT10LmF0dGVudWF0aW9uRGlzdGFuY2UsdGhpcy5hdHRlbnVhdGlvblRpbnQuY29weSh0LmF0dGVudWF0aW9uVGludCksdGhpcy5zcGVjdWxhckludGVuc2l0eT10LnNwZWN1bGFySW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXA9dC5zcGVjdWxhckludGVuc2l0eU1hcCx0aGlzLnNwZWN1bGFyVGludC5jb3B5KHQuc3BlY3VsYXJUaW50KSx0aGlzLnNwZWN1bGFyVGludE1hcD10LnNwZWN1bGFyVGludE1hcCx0aGlzfX0ucHJvdG90eXBlLmlzTWVzaFBoeXNpY2FsTWF0ZXJpYWw9ITAsY2xhc3MgZXh0ZW5kcyBPcnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hQaG9uZ01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBScnQoMTY3NzcyMTUpLHRoaXMuc3BlY3VsYXI9bmV3IFJydCgxMTE4NDgxKSx0aGlzLnNoaW5pbmVzcz0zMCx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyBScnQoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPTAsdGhpcy5ub3JtYWxTY2FsZT1uZXcgUWl0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5zcGVjdWxhck1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuY29tYmluZT0wLHRoaXMucmVmbGVjdGl2aXR5PTEsdGhpcy5yZWZyYWN0aW9uUmF0aW89Ljk4LHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuZmxhdFNoYWRpbmc9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5zcGVjdWxhci5jb3B5KHQuc3BlY3VsYXIpLHRoaXMuc2hpbmluZXNzPXQuc2hpbmluZXNzLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319LnByb3RvdHlwZS5pc01lc2hQaG9uZ01hdGVyaWFsPSEwLGNsYXNzIGV4dGVuZHMgT3J0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtUT09OOiIifSx0aGlzLnR5cGU9Ik1lc2hUb29uTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IFJydCgxNjc3NzIxNSksdGhpcy5tYXA9bnVsbCx0aGlzLmdyYWRpZW50TWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3IFJydCgwKSx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZU1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9MCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBRaXQoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5ncmFkaWVudE1hcD10LmdyYWRpZW50TWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX0ucHJvdG90eXBlLmlzTWVzaFRvb25NYXRlcmlhbD0hMCxjbGFzcyBleHRlbmRzIE9ydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaE5vcm1hbE1hdGVyaWFsIix0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPTAsdGhpcy5ub3JtYWxTY2FsZT1uZXcgUWl0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLmZvZz0hMSx0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319LnByb3RvdHlwZS5pc01lc2hOb3JtYWxNYXRlcmlhbD0hMCxjbGFzcyBleHRlbmRzIE9ydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaExhbWJlcnRNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgUnJ0KDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyBScnQoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLnNwZWN1bGFyTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5jb21iaW5lPTAsdGhpcy5yZWZsZWN0aXZpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuZW1pc3NpdmUuY29weSh0LmVtaXNzaXZlKSx0aGlzLmVtaXNzaXZlTWFwPXQuZW1pc3NpdmVNYXAsdGhpcy5lbWlzc2l2ZUludGVuc2l0eT10LmVtaXNzaXZlSW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX0ucHJvdG90eXBlLmlzTWVzaExhbWJlcnRNYXRlcmlhbD0hMCxjbGFzcyBleHRlbmRzIE9ydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGVmaW5lcz17TUFUQ0FQOiIifSx0aGlzLnR5cGU9Ik1lc2hNYXRjYXBNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgUnJ0KDE2Nzc3MjE1KSx0aGlzLm1hdGNhcD1udWxsLHRoaXMubWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT0wLHRoaXMubm9ybWFsU2NhbGU9bmV3IFFpdCgxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtNQVRDQVA6IiJ9LHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hdGNhcD10Lm1hdGNhcCx0aGlzLm1hcD10Lm1hcCx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319LnByb3RvdHlwZS5pc01lc2hNYXRjYXBNYXRlcmlhbD0hMCxjbGFzcyBleHRlbmRzIHFkdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZURhc2hlZE1hdGVyaWFsIix0aGlzLnNjYWxlPTEsdGhpcy5kYXNoU2l6ZT0zLHRoaXMuZ2FwU2l6ZT0xLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5zY2FsZT10LnNjYWxlLHRoaXMuZGFzaFNpemU9dC5kYXNoU2l6ZSx0aGlzLmdhcFNpemU9dC5nYXBTaXplLHRoaXN9fS5wcm90b3R5cGUuaXNMaW5lRGFzaGVkTWF0ZXJpYWw9ITA7Y29uc3Qgcm10PXthcnJheVNsaWNlOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gcm10LmlzVHlwZWRBcnJheSh0KT9uZXcgdC5jb25zdHJ1Y3Rvcih0LnN1YmFycmF5KGUsdm9pZCAwIT09bj9uOnQubGVuZ3RoKSk6dC5zbGljZShlLG4pfSxjb252ZXJ0QXJyYXk6ZnVuY3Rpb24odCxlLG4pe3JldHVybiF0fHwhbiYmdC5jb25zdHJ1Y3Rvcj09PWU/dDoibnVtYmVyIj09dHlwZW9mIGUuQllURVNfUEVSX0VMRU1FTlQ/bmV3IGUodCk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCl9LGlzVHlwZWRBcnJheTpmdW5jdGlvbih0KXtyZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KHQpJiYhKHQgaW5zdGFuY2VvZiBEYXRhVmlldyl9LGdldEtleWZyYW1lT3JkZXI6ZnVuY3Rpb24odCl7Y29uc3QgZT10Lmxlbmd0aCxuPW5ldyBBcnJheShlKTtmb3IobGV0IHQ9MDt0IT09ZTsrK3Qpblt0XT10O3JldHVybiBuLnNvcnQoKGZ1bmN0aW9uIG8oZSxuKXtyZXR1cm4gdFtlXS10W25dfSkpLG59LHNvcnRlZEFycmF5OmZ1bmN0aW9uKHQsZSxuKXtjb25zdCBvPXQubGVuZ3RoLGk9bmV3IHQuY29uc3RydWN0b3Iobyk7Zm9yKGxldCBhPTAscj0wO3IhPT1vOysrYSl7Y29uc3Qgbz1uW2FdKmU7Zm9yKGxldCBuPTA7biE9PWU7KytuKWlbcisrXT10W28rbl19cmV0dXJuIGl9LGZsYXR0ZW5KU09OOmZ1bmN0aW9uKHQsZSxuLG8pe2xldCBpPTEsYT10WzBdO2Zvcig7dm9pZCAwIT09YSYmdm9pZCAwPT09YVtvXTspYT10W2krK107aWYodm9pZCAwPT09YSlyZXR1cm47bGV0IHI9YVtvXTtpZih2b2lkIDAhPT1yKWlmKEFycmF5LmlzQXJyYXkocikpZG97cj1hW29dLHZvaWQgMCE9PXImJihlLnB1c2goYS50aW1lKSxuLnB1c2guYXBwbHkobixyKSksYT10W2krK119d2hpbGUodm9pZCAwIT09YSk7ZWxzZSBpZih2b2lkIDAhPT1yLnRvQXJyYXkpZG97cj1hW29dLHZvaWQgMCE9PXImJihlLnB1c2goYS50aW1lKSxyLnRvQXJyYXkobixuLmxlbmd0aCkpLGE9dFtpKytdfXdoaWxlKHZvaWQgMCE9PWEpO2Vsc2UgZG97cj1hW29dLHZvaWQgMCE9PXImJihlLnB1c2goYS50aW1lKSxuLnB1c2gocikpLGE9dFtpKytdfXdoaWxlKHZvaWQgMCE9PWEpfSxzdWJjbGlwOmZ1bmN0aW9uKHQsZSxuLG8saT0zMCl7Y29uc3QgYT10LmNsb25lKCk7YS5uYW1lPWU7Y29uc3Qgcj1bXTtmb3IobGV0IHQ9MDt0PGEudHJhY2tzLmxlbmd0aDsrK3Qpe2NvbnN0IGU9YS50cmFja3NbdF0scz1lLmdldFZhbHVlU2l6ZSgpLGw9W10sYz1bXTtmb3IobGV0IHQ9MDt0PGUudGltZXMubGVuZ3RoOysrdCl7Y29uc3QgYT1lLnRpbWVzW3RdKmk7aWYoIShhPG58fGE+PW8pKXtsLnB1c2goZS50aW1lc1t0XSk7Zm9yKGxldCBuPTA7bjxzOysrbiljLnB1c2goZS52YWx1ZXNbdCpzK25dKX19MCE9PWwubGVuZ3RoJiYoZS50aW1lcz1ybXQuY29udmVydEFycmF5KGwsZS50aW1lcy5jb25zdHJ1Y3RvciksZS52YWx1ZXM9cm10LmNvbnZlcnRBcnJheShjLGUudmFsdWVzLmNvbnN0cnVjdG9yKSxyLnB1c2goZSkpfWEudHJhY2tzPXI7bGV0IHM9MS8wO2ZvcihsZXQgdD0wO3Q8YS50cmFja3MubGVuZ3RoOysrdClzPmEudHJhY2tzW3RdLnRpbWVzWzBdJiYocz1hLnRyYWNrc1t0XS50aW1lc1swXSk7Zm9yKGxldCB0PTA7dDxhLnRyYWNrcy5sZW5ndGg7Kyt0KWEudHJhY2tzW3RdLnNoaWZ0KC0xKnMpO3JldHVybiBhLnJlc2V0RHVyYXRpb24oKSxhfSxtYWtlQ2xpcEFkZGl0aXZlOmZ1bmN0aW9uKHQsZT0wLG49dCxvPTMwKXtvPD0wJiYobz0zMCk7Y29uc3QgaT1uLnRyYWNrcy5sZW5ndGgsYT1lL287Zm9yKGxldCBlPTA7ZTxpOysrZSl7Y29uc3Qgbz1uLnRyYWNrc1tlXSxpPW8uVmFsdWVUeXBlTmFtZTtpZigiYm9vbCI9PT1pfHwic3RyaW5nIj09PWkpY29udGludWU7Y29uc3Qgcj10LnRyYWNrcy5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5uYW1lPT09by5uYW1lJiZ0LlZhbHVlVHlwZU5hbWU9PT1pfSkpO2lmKHZvaWQgMD09PXIpY29udGludWU7bGV0IHM9MDtjb25zdCBsPW8uZ2V0VmFsdWVTaXplKCk7by5jcmVhdGVJbnRlcnBvbGFudC5pc0ludGVycG9sYW50RmFjdG9yeU1ldGhvZEdMVEZDdWJpY1NwbGluZSYmKHM9bC8zKTtsZXQgYz0wO2NvbnN0IGQ9ci5nZXRWYWx1ZVNpemUoKTtyLmNyZWF0ZUludGVycG9sYW50LmlzSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kR0xURkN1YmljU3BsaW5lJiYoYz1kLzMpO2NvbnN0IHA9by50aW1lcy5sZW5ndGgtMTtsZXQgbTtpZihhPD1vLnRpbWVzWzBdKW09cm10LmFycmF5U2xpY2Uoby52YWx1ZXMscyxsLXMpO2Vsc2UgaWYoYT49by50aW1lc1twXSl7Y29uc3QgdD1wKmwrczttPXJtdC5hcnJheVNsaWNlKG8udmFsdWVzLHQsdCtsLXMpfWVsc2V7Y29uc3QgdD1vLmNyZWF0ZUludGVycG9sYW50KCksZT1zLG49bC1zO3QuZXZhbHVhdGUoYSksbT1ybXQuYXJyYXlTbGljZSh0LnJlc3VsdEJ1ZmZlcixlLG4pfSJxdWF0ZXJuaW9uIj09PWkmJihuZXcgbGF0KS5mcm9tQXJyYXkobSkubm9ybWFsaXplKCkuY29uanVnYXRlKCkudG9BcnJheShtKTtjb25zdCB1PXIudGltZXMubGVuZ3RoO2ZvcihsZXQgdD0wO3Q8dTsrK3Qpe2NvbnN0IGU9dCpkK2M7aWYoInF1YXRlcm5pb24iPT09aSlsYXQubXVsdGlwbHlRdWF0ZXJuaW9uc0ZsYXQoci52YWx1ZXMsZSxtLDAsci52YWx1ZXMsZSk7ZWxzZXtjb25zdCB0PWQtMipjO2ZvcihsZXQgbj0wO248dDsrK24pci52YWx1ZXNbZStuXS09bVtuXX19fXJldHVybiB0LmJsZW5kTW9kZT0yNTAxLHR9fTtjbGFzcyBzbXR7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnM9dCx0aGlzLl9jYWNoZWRJbmRleD0wLHRoaXMucmVzdWx0QnVmZmVyPXZvaWQgMCE9PW8/bzpuZXcgZS5jb25zdHJ1Y3RvcihuKSx0aGlzLnNhbXBsZVZhbHVlcz1lLHRoaXMudmFsdWVTaXplPW4sdGhpcy5zZXR0aW5ncz1udWxsLHRoaXMuRGVmYXVsdFNldHRpbmdzXz17fX1ldmFsdWF0ZSh0KXtjb25zdCBlPXRoaXMucGFyYW1ldGVyUG9zaXRpb25zO2xldCBuPXRoaXMuX2NhY2hlZEluZGV4LG89ZVtuXSxpPWVbbi0xXTt0OntlOntsZXQgYTtuOntvOmlmKCEodDxvKSl7Zm9yKGxldCBhPW4rMjs7KXtpZih2b2lkIDA9PT1vKXtpZih0PGkpYnJlYWsgbztyZXR1cm4gbj1lLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1uLHRoaXMuYWZ0ZXJFbmRfKG4tMSx0LGkpfWlmKG49PT1hKWJyZWFrO2lmKGk9byxvPWVbKytuXSx0PG8pYnJlYWsgZX1hPWUubGVuZ3RoO2JyZWFrIG59aWYodD49aSlicmVhayB0O3tjb25zdCByPWVbMV07dDxyJiYobj0yLGk9cik7Zm9yKGxldCBhPW4tMjs7KXtpZih2b2lkIDA9PT1pKXJldHVybiB0aGlzLl9jYWNoZWRJbmRleD0wLHRoaXMuYmVmb3JlU3RhcnRfKDAsdCxvKTtpZihuPT09YSlicmVhaztpZihvPWksaT1lWy0tbi0xXSx0Pj1pKWJyZWFrIGV9YT1uLG49MH19Zm9yKDtuPGE7KXtjb25zdCBvPW4rYT4+PjE7dDxlW29dP2E9bzpuPW8rMX1pZihvPWVbbl0saT1lW24tMV0sdm9pZCAwPT09aSlyZXR1cm4gdGhpcy5fY2FjaGVkSW5kZXg9MCx0aGlzLmJlZm9yZVN0YXJ0XygwLHQsbyk7aWYodm9pZCAwPT09bylyZXR1cm4gbj1lLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1uLHRoaXMuYWZ0ZXJFbmRfKG4tMSxpLHQpfXRoaXMuX2NhY2hlZEluZGV4PW4sdGhpcy5pbnRlcnZhbENoYW5nZWRfKG4saSxvKX1yZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZV8obixpLHQsbyl9Z2V0U2V0dGluZ3NfKCl7cmV0dXJuIHRoaXMuc2V0dGluZ3N8fHRoaXMuRGVmYXVsdFNldHRpbmdzX31jb3B5U2FtcGxlVmFsdWVfKHQpe2NvbnN0IGU9dGhpcy5yZXN1bHRCdWZmZXIsbj10aGlzLnNhbXBsZVZhbHVlcyxvPXRoaXMudmFsdWVTaXplLGk9dCpvO2ZvcihsZXQgdD0wO3QhPT1vOysrdCllW3RdPW5baSt0XTtyZXR1cm4gZX1pbnRlcnBvbGF0ZV8oKXt0aHJvdyBuZXcgRXJyb3IoImNhbGwgdG8gYWJzdHJhY3QgbWV0aG9kIil9aW50ZXJ2YWxDaGFuZ2VkXygpe319c210LnByb3RvdHlwZS5iZWZvcmVTdGFydF89c210LnByb3RvdHlwZS5jb3B5U2FtcGxlVmFsdWVfLHNtdC5wcm90b3R5cGUuYWZ0ZXJFbmRfPXNtdC5wcm90b3R5cGUuY29weVNhbXBsZVZhbHVlXztjbGFzcyBsbXQgZXh0ZW5kcyBzbXR7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCxlLG4sbyksdGhpcy5fd2VpZ2h0UHJldj0tMCx0aGlzLl9vZmZzZXRQcmV2PS0wLHRoaXMuX3dlaWdodE5leHQ9LTAsdGhpcy5fb2Zmc2V0TmV4dD0tMCx0aGlzLkRlZmF1bHRTZXR0aW5nc189e2VuZGluZ1N0YXJ0OkFpdCxlbmRpbmdFbmQ6QWl0fX1pbnRlcnZhbENoYW5nZWRfKHQsZSxuKXtjb25zdCBvPXRoaXMucGFyYW1ldGVyUG9zaXRpb25zO2xldCBpPXQtMixhPXQrMSxyPW9baV0scz1vW2FdO2lmKHZvaWQgMD09PXIpc3dpdGNoKHRoaXMuZ2V0U2V0dGluZ3NfKCkuZW5kaW5nU3RhcnQpe2Nhc2UgVGl0Omk9dCxyPTIqZS1uO2JyZWFrO2Nhc2UgTml0Omk9by5sZW5ndGgtMixyPWUrb1tpXS1vW2krMV07YnJlYWs7ZGVmYXVsdDppPXQscj1ufWlmKHZvaWQgMD09PXMpc3dpdGNoKHRoaXMuZ2V0U2V0dGluZ3NfKCkuZW5kaW5nRW5kKXtjYXNlIFRpdDphPXQscz0yKm4tZTticmVhaztjYXNlIE5pdDphPTEscz1uK29bMV0tb1swXTticmVhaztkZWZhdWx0OmE9dC0xLHM9ZX1jb25zdCBsPS41KihuLWUpLGM9dGhpcy52YWx1ZVNpemU7dGhpcy5fd2VpZ2h0UHJldj1sLyhlLXIpLHRoaXMuX3dlaWdodE5leHQ9bC8ocy1uKSx0aGlzLl9vZmZzZXRQcmV2PWkqYyx0aGlzLl9vZmZzZXROZXh0PWEqY31pbnRlcnBvbGF0ZV8odCxlLG4sbyl7Y29uc3QgaT10aGlzLnJlc3VsdEJ1ZmZlcixhPXRoaXMuc2FtcGxlVmFsdWVzLHI9dGhpcy52YWx1ZVNpemUscz10KnIsbD1zLXIsYz10aGlzLl9vZmZzZXRQcmV2LGQ9dGhpcy5fb2Zmc2V0TmV4dCxwPXRoaXMuX3dlaWdodFByZXYsbT10aGlzLl93ZWlnaHROZXh0LHU9KG4tZSkvKG8tZSksZj11KnUsZz1mKnUsaD0tcCpnKzIqcCpmLXAqdSxiPSgxK3ApKmcrKC0xLjUtMipwKSpmKygtLjUrcCkqdSsxLHk9KC0xLW0pKmcrKDEuNSttKSpmKy41KnUsXz1tKmctbSpmO2ZvcihsZXQgdD0wO3QhPT1yOysrdClpW3RdPWgqYVtjK3RdK2IqYVtsK3RdK3kqYVtzK3RdK18qYVtkK3RdO3JldHVybiBpfX1jbGFzcyBjbXQgZXh0ZW5kcyBzbXR7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCxlLG4sbyl9aW50ZXJwb2xhdGVfKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5yZXN1bHRCdWZmZXIsYT10aGlzLnNhbXBsZVZhbHVlcyxyPXRoaXMudmFsdWVTaXplLHM9dCpyLGw9cy1yLGM9KG4tZSkvKG8tZSksZD0xLWM7Zm9yKGxldCB0PTA7dCE9PXI7Kyt0KWlbdF09YVtsK3RdKmQrYVtzK3RdKmM7cmV0dXJuIGl9fWNsYXNzIGRtdCBleHRlbmRzIHNtdHtjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0LGUsbixvKX1pbnRlcnBvbGF0ZV8odCl7cmV0dXJuIHRoaXMuY29weVNhbXBsZVZhbHVlXyh0LTEpfX1jbGFzcyBwbXR7Y29uc3RydWN0b3IodCxlLG4sbyl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IHRyYWNrIG5hbWUgaXMgdW5kZWZpbmVkIik7aWYodm9pZCAwPT09ZXx8MD09PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogbm8ga2V5ZnJhbWVzIGluIHRyYWNrIG5hbWVkICIrdCk7dGhpcy5uYW1lPXQsdGhpcy50aW1lcz1ybXQuY29udmVydEFycmF5KGUsdGhpcy5UaW1lQnVmZmVyVHlwZSksdGhpcy52YWx1ZXM9cm10LmNvbnZlcnRBcnJheShuLHRoaXMuVmFsdWVCdWZmZXJUeXBlKSx0aGlzLnNldEludGVycG9sYXRpb24ob3x8dGhpcy5EZWZhdWx0SW50ZXJwb2xhdGlvbil9c3RhdGljIHRvSlNPTih0KXtjb25zdCBlPXQuY29uc3RydWN0b3I7bGV0IG47aWYoZS50b0pTT04hPT10aGlzLnRvSlNPTiluPWUudG9KU09OKHQpO2Vsc2V7bj17bmFtZTp0Lm5hbWUsdGltZXM6cm10LmNvbnZlcnRBcnJheSh0LnRpbWVzLEFycmF5KSx2YWx1ZXM6cm10LmNvbnZlcnRBcnJheSh0LnZhbHVlcyxBcnJheSl9O2NvbnN0IGU9dC5nZXRJbnRlcnBvbGF0aW9uKCk7ZSE9PXQuRGVmYXVsdEludGVycG9sYXRpb24mJihuLmludGVycG9sYXRpb249ZSl9cmV0dXJuIG4udHlwZT10LlZhbHVlVHlwZU5hbWUsbn1JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZSh0KXtyZXR1cm4gbmV3IGRtdCh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9SW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyKHQpe3JldHVybiBuZXcgY210KHRoaXMudGltZXMsdGhpcy52YWx1ZXMsdGhpcy5nZXRWYWx1ZVNpemUoKSx0KX1JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGgodCl7cmV0dXJuIG5ldyBsbXQodGhpcy50aW1lcyx0aGlzLnZhbHVlcyx0aGlzLmdldFZhbHVlU2l6ZSgpLHQpfXNldEludGVycG9sYXRpb24odCl7bGV0IGU7c3dpdGNoKHQpe2Nhc2UgRGl0OmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTticmVhaztjYXNlIEVpdDplPXRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyO2JyZWFrO2Nhc2UgUml0OmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGh9aWYodm9pZCAwPT09ZSl7Y29uc3QgZT0idW5zdXBwb3J0ZWQgaW50ZXJwb2xhdGlvbiBmb3IgIit0aGlzLlZhbHVlVHlwZU5hbWUrIiBrZXlmcmFtZSB0cmFjayBuYW1lZCAiK3RoaXMubmFtZTtpZih2b2lkIDA9PT10aGlzLmNyZWF0ZUludGVycG9sYW50KXtpZih0PT09dGhpcy5EZWZhdWx0SW50ZXJwb2xhdGlvbil0aHJvdyBuZXcgRXJyb3IoZSk7dGhpcy5zZXRJbnRlcnBvbGF0aW9uKHRoaXMuRGVmYXVsdEludGVycG9sYXRpb24pfXJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLktleWZyYW1lVHJhY2s6IixlKSx0aGlzfXJldHVybiB0aGlzLmNyZWF0ZUludGVycG9sYW50PWUsdGhpc31nZXRJbnRlcnBvbGF0aW9uKCl7c3dpdGNoKHRoaXMuY3JlYXRlSW50ZXJwb2xhbnQpe2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTpyZXR1cm4gRGl0O2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI6cmV0dXJuIEVpdDtjYXNlIHRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoOnJldHVybiBSaXR9fWdldFZhbHVlU2l6ZSgpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGgvdGhpcy50aW1lcy5sZW5ndGh9c2hpZnQodCl7aWYoMCE9PXQpe2NvbnN0IGU9dGhpcy50aW1lcztmb3IobGV0IG49MCxvPWUubGVuZ3RoO24hPT1vOysrbillW25dKz10fXJldHVybiB0aGlzfXNjYWxlKHQpe2lmKDEhPT10KXtjb25zdCBlPXRoaXMudGltZXM7Zm9yKGxldCBuPTAsbz1lLmxlbmd0aDtuIT09bzsrK24pZVtuXSo9dH1yZXR1cm4gdGhpc310cmltKHQsZSl7Y29uc3Qgbj10aGlzLnRpbWVzLG89bi5sZW5ndGg7bGV0IGk9MCxhPW8tMTtmb3IoO2khPT1vJiZuW2ldPHQ7KSsraTtmb3IoOy0xIT09YSYmblthXT5lOyktLWE7aWYoKythLDAhPT1pfHxhIT09byl7aT49YSYmKGE9TWF0aC5tYXgoYSwxKSxpPWEtMSk7Y29uc3QgdD10aGlzLmdldFZhbHVlU2l6ZSgpO3RoaXMudGltZXM9cm10LmFycmF5U2xpY2UobixpLGEpLHRoaXMudmFsdWVzPXJtdC5hcnJheVNsaWNlKHRoaXMudmFsdWVzLGkqdCxhKnQpfXJldHVybiB0aGlzfXZhbGlkYXRlKCl7bGV0IHQ9ITA7Y29uc3QgZT10aGlzLmdldFZhbHVlU2l6ZSgpO2UtTWF0aC5mbG9vcihlKSE9MCYmKGNvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IEludmFsaWQgdmFsdWUgc2l6ZSBpbiB0cmFjay4iLHRoaXMpLHQ9ITEpO2NvbnN0IG49dGhpcy50aW1lcyxvPXRoaXMudmFsdWVzLGk9bi5sZW5ndGg7MD09PWkmJihjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBUcmFjayBpcyBlbXB0eS4iLHRoaXMpLHQ9ITEpO2xldCBhPW51bGw7Zm9yKGxldCBlPTA7ZSE9PWk7ZSsrKXtjb25zdCBvPW5bZV07aWYoIm51bWJlciI9PXR5cGVvZiBvJiZpc05hTihvKSl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVGltZSBpcyBub3QgYSB2YWxpZCBudW1iZXIuIix0aGlzLGUsbyksdD0hMTticmVha31pZihudWxsIT09YSYmYT5vKXtjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBPdXQgb2Ygb3JkZXIga2V5cy4iLHRoaXMsZSxvLGEpLHQ9ITE7YnJlYWt9YT1vfWlmKHZvaWQgMCE9PW8mJnJtdC5pc1R5cGVkQXJyYXkobykpZm9yKGxldCBlPTAsbj1vLmxlbmd0aDtlIT09bjsrK2Upe2NvbnN0IG49b1tlXTtpZihpc05hTihuKSl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVmFsdWUgaXMgbm90IGEgdmFsaWQgbnVtYmVyLiIsdGhpcyxlLG4pLHQ9ITE7YnJlYWt9fXJldHVybiB0fW9wdGltaXplKCl7Y29uc3QgdD1ybXQuYXJyYXlTbGljZSh0aGlzLnRpbWVzKSxlPXJtdC5hcnJheVNsaWNlKHRoaXMudmFsdWVzKSxuPXRoaXMuZ2V0VmFsdWVTaXplKCksbz10aGlzLmdldEludGVycG9sYXRpb24oKT09PVJpdCxpPXQubGVuZ3RoLTE7bGV0IGE9MTtmb3IobGV0IHI9MTtyPGk7KytyKXtsZXQgaT0hMTtjb25zdCBzPXRbcl07aWYocyE9PXRbcisxXSYmKDEhPT1yfHxzIT09dFswXSkpaWYobylpPSEwO2Vsc2V7Y29uc3QgdD1yKm4sbz10LW4sYT10K247Zm9yKGxldCByPTA7ciE9PW47KytyKXtjb25zdCBuPWVbdCtyXTtpZihuIT09ZVtvK3JdfHxuIT09ZVthK3JdKXtpPSEwO2JyZWFrfX19aWYoaSl7aWYociE9PWEpe3RbYV09dFtyXTtjb25zdCBvPXIqbixpPWEqbjtmb3IobGV0IHQ9MDt0IT09bjsrK3QpZVtpK3RdPWVbbyt0XX0rK2F9fWlmKGk+MCl7dFthXT10W2ldO2ZvcihsZXQgdD1pKm4sbz1hKm4scj0wO3IhPT1uOysrcillW28rcl09ZVt0K3JdOysrYX1yZXR1cm4gYSE9PXQubGVuZ3RoPyh0aGlzLnRpbWVzPXJtdC5hcnJheVNsaWNlKHQsMCxhKSx0aGlzLnZhbHVlcz1ybXQuYXJyYXlTbGljZShlLDAsYSpuKSk6KHRoaXMudGltZXM9dCx0aGlzLnZhbHVlcz1lKSx0aGlzfWNsb25lKCl7Y29uc3QgdD1ybXQuYXJyYXlTbGljZSh0aGlzLnRpbWVzLDApLGU9cm10LmFycmF5U2xpY2UodGhpcy52YWx1ZXMsMCksbj1uZXcoMCx0aGlzLmNvbnN0cnVjdG9yKSh0aGlzLm5hbWUsdCxlKTtyZXR1cm4gbi5jcmVhdGVJbnRlcnBvbGFudD10aGlzLmNyZWF0ZUludGVycG9sYW50LG59fXBtdC5wcm90b3R5cGUuVGltZUJ1ZmZlclR5cGU9RmxvYXQzMkFycmF5LHBtdC5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUZsb2F0MzJBcnJheSxwbXQucHJvdG90eXBlLkRlZmF1bHRJbnRlcnBvbGF0aW9uPUVpdDtjbGFzcyBtbXQgZXh0ZW5kcyBwbXR7fW1tdC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0iYm9vbCIsbW10LnByb3RvdHlwZS5WYWx1ZUJ1ZmZlclR5cGU9QXJyYXksbW10LnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1EaXQsbW10LnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI9dm9pZCAwLG1tdC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoPXZvaWQgMDtjbGFzcyB1bXQgZXh0ZW5kcyBwbXR7fXVtdC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0iY29sb3IiO2NsYXNzIGZtdCBleHRlbmRzIHBtdHt9Zm10LnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJudW1iZXIiO2NsYXNzIGdtdCBleHRlbmRzIHNtdHtjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0LGUsbixvKX1pbnRlcnBvbGF0ZV8odCxlLG4sbyl7Y29uc3QgaT10aGlzLnJlc3VsdEJ1ZmZlcixhPXRoaXMuc2FtcGxlVmFsdWVzLHI9dGhpcy52YWx1ZVNpemUscz0obi1lKS8oby1lKTtsZXQgbD10KnI7Zm9yKGxldCB0PWwrcjtsIT09dDtsKz00KWxhdC5zbGVycEZsYXQoaSwwLGEsbC1yLGEsbCxzKTtyZXR1cm4gaX19Y2xhc3MgaG10IGV4dGVuZHMgcG10e0ludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcih0KXtyZXR1cm4gbmV3IGdtdCh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9fWhtdC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0icXVhdGVybmlvbiIsaG10LnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1FaXQsaG10LnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGg9dm9pZCAwO2NsYXNzIGJtdCBleHRlbmRzIHBtdHt9Ym10LnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJzdHJpbmciLGJtdC5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUFycmF5LGJtdC5wcm90b3R5cGUuRGVmYXVsdEludGVycG9sYXRpb249RGl0LGJtdC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyPXZvaWQgMCxibXQucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aD12b2lkIDA7Y2xhc3MgeW10IGV4dGVuZHMgcG10e315bXQucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9InZlY3RvciI7Y2xhc3MgX210e2NvbnN0cnVjdG9yKHQsZT0tMSxuLG89MjUwMCl7dGhpcy5uYW1lPXQsdGhpcy50cmFja3M9bix0aGlzLmR1cmF0aW9uPWUsdGhpcy5ibGVuZE1vZGU9byx0aGlzLnV1aWQ9cWl0KCksdGhpcy5kdXJhdGlvbjwwJiZ0aGlzLnJlc2V0RHVyYXRpb24oKX1zdGF0aWMgcGFyc2UodCl7Y29uc3QgZT1bXSxuPXQudHJhY2tzLG89MS8odC5mcHN8fDEpO2ZvcihsZXQgdD0wLGk9bi5sZW5ndGg7dCE9PWk7Kyt0KWUucHVzaChDbXQoblt0XSkuc2NhbGUobykpO2NvbnN0IGk9bmV3IHRoaXModC5uYW1lLHQuZHVyYXRpb24sZSx0LmJsZW5kTW9kZSk7cmV0dXJuIGkudXVpZD10LnV1aWQsaX1zdGF0aWMgdG9KU09OKHQpe2NvbnN0IGU9W10sbj10LnRyYWNrcyxvPXtuYW1lOnQubmFtZSxkdXJhdGlvbjp0LmR1cmF0aW9uLHRyYWNrczplLHV1aWQ6dC51dWlkLGJsZW5kTW9kZTp0LmJsZW5kTW9kZX07Zm9yKGxldCB0PTAsbz1uLmxlbmd0aDt0IT09bzsrK3QpZS5wdXNoKHBtdC50b0pTT04oblt0XSkpO3JldHVybiBvfXN0YXRpYyBDcmVhdGVGcm9tTW9ycGhUYXJnZXRTZXF1ZW5jZSh0LGUsbixvKXtjb25zdCBpPWUubGVuZ3RoLGE9W107Zm9yKGxldCB0PTA7dDxpO3QrKyl7bGV0IHI9W10scz1bXTtyLnB1c2goKHQraS0xKSVpLHQsKHQrMSklaSkscy5wdXNoKDAsMSwwKTtjb25zdCBsPXJtdC5nZXRLZXlmcmFtZU9yZGVyKHIpO3I9cm10LnNvcnRlZEFycmF5KHIsMSxsKSxzPXJtdC5zb3J0ZWRBcnJheShzLDEsbCksb3x8MCE9PXJbMF18fChyLnB1c2goaSkscy5wdXNoKHNbMF0pKSxhLnB1c2gobmV3IGZtdCgiLm1vcnBoVGFyZ2V0SW5mbHVlbmNlc1siK2VbdF0ubmFtZSsiXSIscixzKS5zY2FsZSgxL24pKX1yZXR1cm4gbmV3IHRoaXModCwtMSxhKX1zdGF0aWMgZmluZEJ5TmFtZSh0LGUpe2xldCBuPXQ7aWYoIUFycmF5LmlzQXJyYXkodCkpe2NvbnN0IGU9dDtuPWUuZ2VvbWV0cnkmJmUuZ2VvbWV0cnkuYW5pbWF0aW9uc3x8ZS5hbmltYXRpb25zfWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKWlmKG5bdF0ubmFtZT09PWUpcmV0dXJuIG5bdF07cmV0dXJuIG51bGx9c3RhdGljIENyZWF0ZUNsaXBzRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2VzKHQsZSxuKXtjb25zdCBvPXt9LGk9L14oW1x3LV0qPykoW1xkXSspJC87Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0sYT1uLm5hbWUubWF0Y2goaSk7aWYoYSYmYS5sZW5ndGg+MSl7Y29uc3QgdD1hWzFdO2xldCBlPW9bdF07ZXx8KG9bdF09ZT1bXSksZS5wdXNoKG4pfX1jb25zdCBhPVtdO2Zvcihjb25zdCB0IGluIG8pYS5wdXNoKHRoaXMuQ3JlYXRlRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2UodCxvW3RdLGUsbikpO3JldHVybiBhfXN0YXRpYyBwYXJzZUFuaW1hdGlvbih0LGUpe2lmKCF0KXJldHVybiBjb25zb2xlLmVycm9yKCJUSFJFRS5BbmltYXRpb25DbGlwOiBObyBhbmltYXRpb24gaW4gSlNPTkxvYWRlciBkYXRhLiIpLG51bGw7Y29uc3Qgbj1mdW5jdGlvbih0LGUsbixvLGkpe2lmKDAhPT1uLmxlbmd0aCl7Y29uc3QgYT1bXSxyPVtdO3JtdC5mbGF0dGVuSlNPTihuLGEscixvKSwwIT09YS5sZW5ndGgmJmkucHVzaChuZXcgdChlLGEscikpfX0sbz1bXSxpPXQubmFtZXx8ImRlZmF1bHQiLGE9dC5mcHN8fDMwLHI9dC5ibGVuZE1vZGU7bGV0IHM9dC5sZW5ndGh8fC0xO2NvbnN0IGw9dC5oaWVyYXJjaHl8fFtdO2ZvcihsZXQgdD0wO3Q8bC5sZW5ndGg7dCsrKXtjb25zdCBpPWxbdF0ua2V5cztpZihpJiYwIT09aS5sZW5ndGgpaWYoaVswXS5tb3JwaFRhcmdldHMpe2NvbnN0IHQ9e307bGV0IGU7Zm9yKGU9MDtlPGkubGVuZ3RoO2UrKylpZihpW2VdLm1vcnBoVGFyZ2V0cylmb3IobGV0IG49MDtuPGlbZV0ubW9ycGhUYXJnZXRzLmxlbmd0aDtuKyspdFtpW2VdLm1vcnBoVGFyZ2V0c1tuXV09LTE7Zm9yKGNvbnN0IG4gaW4gdCl7Y29uc3QgdD1bXSxhPVtdO2ZvcihsZXQgbz0wO28hPT1pW2VdLm1vcnBoVGFyZ2V0cy5sZW5ndGg7KytvKXtjb25zdCBvPWlbZV07dC5wdXNoKG8udGltZSksYS5wdXNoKG8ubW9ycGhUYXJnZXQ9PT1uPzE6MCl9by5wdXNoKG5ldyBmbXQoIi5tb3JwaFRhcmdldEluZmx1ZW5jZVsiK24rIl0iLHQsYSkpfXM9dC5sZW5ndGgqKGF8fDEpfWVsc2V7Y29uc3QgYT0iLmJvbmVzWyIrZVt0XS5uYW1lKyJdIjtuKHltdCxhKyIucG9zaXRpb24iLGksInBvcyIsbyksbihobXQsYSsiLnF1YXRlcm5pb24iLGksInJvdCIsbyksbih5bXQsYSsiLnNjYWxlIixpLCJzY2wiLG8pfX1yZXR1cm4gMD09PW8ubGVuZ3RoP251bGw6bmV3IHRoaXMoaSxzLG8scil9cmVzZXREdXJhdGlvbigpe2xldCB0PTA7Zm9yKGxldCBlPTAsbj10aGlzLnRyYWNrcy5sZW5ndGg7ZSE9PW47KytlKXtjb25zdCBuPXRoaXMudHJhY2tzW2VdO3Q9TWF0aC5tYXgodCxuLnRpbWVzW24udGltZXMubGVuZ3RoLTFdKX1yZXR1cm4gdGhpcy5kdXJhdGlvbj10LHRoaXN9dHJpbSgpe2ZvcihsZXQgdD0wO3Q8dGhpcy50cmFja3MubGVuZ3RoO3QrKyl0aGlzLnRyYWNrc1t0XS50cmltKDAsdGhpcy5kdXJhdGlvbik7cmV0dXJuIHRoaXN9dmFsaWRhdGUoKXtsZXQgdD0hMDtmb3IobGV0IGU9MDtlPHRoaXMudHJhY2tzLmxlbmd0aDtlKyspdD10JiZ0aGlzLnRyYWNrc1tlXS52YWxpZGF0ZSgpO3JldHVybiB0fW9wdGltaXplKCl7Zm9yKGxldCB0PTA7dDx0aGlzLnRyYWNrcy5sZW5ndGg7dCsrKXRoaXMudHJhY2tzW3RdLm9wdGltaXplKCk7cmV0dXJuIHRoaXN9Y2xvbmUoKXtjb25zdCB0PVtdO2ZvcihsZXQgZT0wO2U8dGhpcy50cmFja3MubGVuZ3RoO2UrKyl0LnB1c2godGhpcy50cmFja3NbZV0uY2xvbmUoKSk7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMubmFtZSx0aGlzLmR1cmF0aW9uLHQsdGhpcy5ibGVuZE1vZGUpfXRvSlNPTigpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLnRvSlNPTih0aGlzKX19ZnVuY3Rpb24gQ210KHQpe2lmKHZvaWQgMD09PXQudHlwZSl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IHRyYWNrIHR5cGUgdW5kZWZpbmVkLCBjYW4gbm90IHBhcnNlIik7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtzd2l0Y2godC50b0xvd2VyQ2FzZSgpKXtjYXNlInNjYWxhciI6Y2FzZSJkb3VibGUiOmNhc2UiZmxvYXQiOmNhc2UibnVtYmVyIjpjYXNlImludGVnZXIiOnJldHVybiBmbXQ7Y2FzZSJ2ZWN0b3IiOmNhc2UidmVjdG9yMiI6Y2FzZSJ2ZWN0b3IzIjpjYXNlInZlY3RvcjQiOnJldHVybiB5bXQ7Y2FzZSJjb2xvciI6cmV0dXJuIHVtdDtjYXNlInF1YXRlcm5pb24iOnJldHVybiBobXQ7Y2FzZSJib29sIjpjYXNlImJvb2xlYW4iOnJldHVybiBtbXQ7Y2FzZSJzdHJpbmciOnJldHVybiBibXR9dGhyb3cgbmV3IEVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBVbnN1cHBvcnRlZCB0eXBlTmFtZTogIit0KX0pKHQudHlwZSk7aWYodm9pZCAwPT09dC50aW1lcyl7Y29uc3QgZT1bXSxuPVtdO3JtdC5mbGF0dGVuSlNPTih0LmtleXMsZSxuLCJ2YWx1ZSIpLHQudGltZXM9ZSx0LnZhbHVlcz1ufXJldHVybiB2b2lkIDAhPT1lLnBhcnNlP2UucGFyc2UodCk6bmV3IGUodC5uYW1lLHQudGltZXMsdC52YWx1ZXMsdC5pbnRlcnBvbGF0aW9uKX1jb25zdCBNbXQ9e2VuYWJsZWQ6ITEsZmlsZXM6e30sYWRkOmZ1bmN0aW9uKHQsZSl7ITEhPT10aGlzLmVuYWJsZWQmJih0aGlzLmZpbGVzW3RdPWUpfSxnZXQ6ZnVuY3Rpb24odCl7aWYoITEhPT10aGlzLmVuYWJsZWQpcmV0dXJuIHRoaXMuZmlsZXNbdF19LHJlbW92ZTpmdW5jdGlvbih0KXtkZWxldGUgdGhpcy5maWxlc1t0XX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmZpbGVzPXt9fX0sdm10PW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbil7Y29uc3Qgbz10aGlzO2xldCBpLGE9ITEscj0wLHM9MDtjb25zdCBsPVtdO3RoaXMub25TdGFydD12b2lkIDAsdGhpcy5vbkxvYWQ9dCx0aGlzLm9uUHJvZ3Jlc3M9ZSx0aGlzLm9uRXJyb3I9bix0aGlzLml0ZW1TdGFydD1mdW5jdGlvbih0KXtzKyssITE9PT1hJiZ2b2lkIDAhPT1vLm9uU3RhcnQmJm8ub25TdGFydCh0LHIscyksYT0hMH0sdGhpcy5pdGVtRW5kPWZ1bmN0aW9uKHQpe3IrKyx2b2lkIDAhPT1vLm9uUHJvZ3Jlc3MmJm8ub25Qcm9ncmVzcyh0LHIscykscj09PXMmJihhPSExLHZvaWQgMCE9PW8ub25Mb2FkJiZvLm9uTG9hZCgpKX0sdGhpcy5pdGVtRXJyb3I9ZnVuY3Rpb24odCl7dm9pZCAwIT09by5vbkVycm9yJiZvLm9uRXJyb3IodCl9LHRoaXMucmVzb2x2ZVVSTD1mdW5jdGlvbih0KXtyZXR1cm4gaT9pKHQpOnR9LHRoaXMuc2V0VVJMTW9kaWZpZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGk9dCx0aGlzfSx0aGlzLmFkZEhhbmRsZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbC5wdXNoKHQsZSksdGhpc30sdGhpcy5yZW1vdmVIYW5kbGVyPWZ1bmN0aW9uKHQpe2NvbnN0IGU9bC5pbmRleE9mKHQpO3JldHVybi0xIT09ZSYmbC5zcGxpY2UoZSwyKSx0aGlzfSx0aGlzLmdldEhhbmRsZXI9ZnVuY3Rpb24odCl7Zm9yKGxldCBlPTAsbj1sLmxlbmd0aDtlPG47ZSs9Mil7Y29uc3Qgbj1sW2VdLG89bFtlKzFdO2lmKG4uZ2xvYmFsJiYobi5sYXN0SW5kZXg9MCksbi50ZXN0KHQpKXJldHVybiBvfXJldHVybiBudWxsfX19O2NsYXNzIHhtdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLm1hbmFnZXI9dm9pZCAwIT09dD90OnZtdCx0aGlzLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHRoaXMud2l0aENyZWRlbnRpYWxzPSExLHRoaXMucGF0aD0iIix0aGlzLnJlc291cmNlUGF0aD0iIix0aGlzLnJlcXVlc3RIZWFkZXI9e319bG9hZCgpe31sb2FkQXN5bmModCxlKXtjb25zdCBuPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihvLGkpe24ubG9hZCh0LG8sZSxpKX0pKX1wYXJzZSgpe31zZXRDcm9zc09yaWdpbih0KXtyZXR1cm4gdGhpcy5jcm9zc09yaWdpbj10LHRoaXN9c2V0V2l0aENyZWRlbnRpYWxzKHQpe3JldHVybiB0aGlzLndpdGhDcmVkZW50aWFscz10LHRoaXN9c2V0UGF0aCh0KXtyZXR1cm4gdGhpcy5wYXRoPXQsdGhpc31zZXRSZXNvdXJjZVBhdGgodCl7cmV0dXJuIHRoaXMucmVzb3VyY2VQYXRoPXQsdGhpc31zZXRSZXF1ZXN0SGVhZGVyKHQpe3JldHVybiB0aGlzLnJlcXVlc3RIZWFkZXI9dCx0aGlzfX1jb25zdCBPbXQ9e307Y2xhc3MgUG10IGV4dGVuZHMgeG10e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4sbyl7dm9pZCAwPT09dCYmKHQ9IiIpLHZvaWQgMCE9PXRoaXMucGF0aCYmKHQ9dGhpcy5wYXRoK3QpLHQ9dGhpcy5tYW5hZ2VyLnJlc29sdmVVUkwodCk7Y29uc3QgaT10aGlzLGE9TW10LmdldCh0KTtpZih2b2lkIDAhPT1hKXJldHVybiBpLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZSYmZShhKSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pLDApLGE7aWYodm9pZCAwIT09T210W3RdKXJldHVybiB2b2lkIE9tdFt0XS5wdXNoKHtvbkxvYWQ6ZSxvblByb2dyZXNzOm4sb25FcnJvcjpvfSk7Y29uc3Qgcj10Lm1hdGNoKC9eZGF0YTooLio/KSg7YmFzZTY0KT8sKC4qKSQvKTtsZXQgcztpZihyKXtjb25zdCBuPXJbMV0sYT0hIXJbMl07bGV0IHM9clszXTtzPWRlY29kZVVSSUNvbXBvbmVudChzKSxhJiYocz1hdG9iKHMpKTt0cnl7bGV0IG87Y29uc3QgYT0odGhpcy5yZXNwb25zZVR5cGV8fCIiKS50b0xvd2VyQ2FzZSgpO3N3aXRjaChhKXtjYXNlImFycmF5YnVmZmVyIjpjYXNlImJsb2IiOmNvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkocy5sZW5ndGgpO2ZvcihsZXQgZT0wO2U8cy5sZW5ndGg7ZSsrKXRbZV09cy5jaGFyQ29kZUF0KGUpO289ImJsb2IiPT09YT9uZXcgQmxvYihbdC5idWZmZXJdLHt0eXBlOm59KTp0LmJ1ZmZlcjticmVhaztjYXNlImRvY3VtZW50Ijpjb25zdCBlPW5ldyBET01QYXJzZXI7bz1lLnBhcnNlRnJvbVN0cmluZyhzLG4pO2JyZWFrO2Nhc2UianNvbiI6bz1KU09OLnBhcnNlKHMpO2JyZWFrO2RlZmF1bHQ6bz1zfXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZSYmZShvKSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pLDApfWNhdGNoKGUpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7byYmbyhlKSxpLm1hbmFnZXIuaXRlbUVycm9yKHQpLGkubWFuYWdlci5pdGVtRW5kKHQpfSksMCl9fWVsc2V7T210W3RdPVtdLE9tdFt0XS5wdXNoKHtvbkxvYWQ6ZSxvblByb2dyZXNzOm4sb25FcnJvcjpvfSkscz1uZXcgWE1MSHR0cFJlcXVlc3Qscy5vcGVuKCJHRVQiLHQsITApLHMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKGZ1bmN0aW9uKGUpe2NvbnN0IG49dGhpcy5yZXNwb25zZSxvPU9tdFt0XTtpZihkZWxldGUgT210W3RdLDIwMD09PXRoaXMuc3RhdHVzfHwwPT09dGhpcy5zdGF0dXMpezA9PT10aGlzLnN0YXR1cyYmY29uc29sZS53YXJuKCJUSFJFRS5GaWxlTG9hZGVyOiBIVFRQIFN0YXR1cyAwIHJlY2VpdmVkLiIpLE1tdC5hZGQodCxuKTtmb3IobGV0IHQ9MCxlPW8ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9b1t0XTtlLm9uTG9hZCYmZS5vbkxvYWQobil9aS5tYW5hZ2VyLml0ZW1FbmQodCl9ZWxzZXtmb3IobGV0IHQ9MCxuPW8ubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49b1t0XTtuLm9uRXJyb3ImJm4ub25FcnJvcihlKX1pLm1hbmFnZXIuaXRlbUVycm9yKHQpLGkubWFuYWdlci5pdGVtRW5kKHQpfX0pLCExKSxzLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIiwoZnVuY3Rpb24oZSl7Y29uc3Qgbj1PbXRbdF07Zm9yKGxldCB0PTAsbz1uLmxlbmd0aDt0PG87dCsrKXtjb25zdCBvPW5bdF07by5vblByb2dyZXNzJiZvLm9uUHJvZ3Jlc3MoZSl9fSksITEpLHMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLChmdW5jdGlvbihlKXtjb25zdCBuPU9tdFt0XTtkZWxldGUgT210W3RdO2ZvcihsZXQgdD0wLG89bi5sZW5ndGg7dDxvO3QrKyl7Y29uc3Qgbz1uW3RdO28ub25FcnJvciYmby5vbkVycm9yKGUpfWkubWFuYWdlci5pdGVtRXJyb3IodCksaS5tYW5hZ2VyLml0ZW1FbmQodCl9KSwhMSkscy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKGZ1bmN0aW9uKGUpe2NvbnN0IG49T210W3RdO2RlbGV0ZSBPbXRbdF07Zm9yKGxldCB0PTAsbz1uLmxlbmd0aDt0PG87dCsrKXtjb25zdCBvPW5bdF07by5vbkVycm9yJiZvLm9uRXJyb3IoZSl9aS5tYW5hZ2VyLml0ZW1FcnJvcih0KSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pLCExKSx2b2lkIDAhPT10aGlzLnJlc3BvbnNlVHlwZSYmKHMucmVzcG9uc2VUeXBlPXRoaXMucmVzcG9uc2VUeXBlKSx2b2lkIDAhPT10aGlzLndpdGhDcmVkZW50aWFscyYmKHMud2l0aENyZWRlbnRpYWxzPXRoaXMud2l0aENyZWRlbnRpYWxzKSxzLm92ZXJyaWRlTWltZVR5cGUmJnMub3ZlcnJpZGVNaW1lVHlwZSh2b2lkIDAhPT10aGlzLm1pbWVUeXBlP3RoaXMubWltZVR5cGU6InRleHQvcGxhaW4iKTtmb3IoY29uc3QgdCBpbiB0aGlzLnJlcXVlc3RIZWFkZXIpcy5zZXRSZXF1ZXN0SGVhZGVyKHQsdGhpcy5yZXF1ZXN0SGVhZGVyW3RdKTtzLnNlbmQobnVsbCl9cmV0dXJuIGkubWFuYWdlci5pdGVtU3RhcnQodCksc31zZXRSZXNwb25zZVR5cGUodCl7cmV0dXJuIHRoaXMucmVzcG9uc2VUeXBlPXQsdGhpc31zZXRNaW1lVHlwZSh0KXtyZXR1cm4gdGhpcy5taW1lVHlwZT10LHRoaXN9fWNsYXNzIHdtdCBleHRlbmRzIHhtdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLG8pe3ZvaWQgMCE9PXRoaXMucGF0aCYmKHQ9dGhpcy5wYXRoK3QpLHQ9dGhpcy5tYW5hZ2VyLnJlc29sdmVVUkwodCk7Y29uc3QgaT10aGlzLGE9TW10LmdldCh0KTtpZih2b2lkIDAhPT1hKXJldHVybiBpLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZSYmZShhKSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pLDApLGE7Y29uc3Qgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJpbWciKTtmdW5jdGlvbiBzKCl7ci5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixzLCExKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixsLCExKSxNbXQuYWRkKHQsdGhpcyksZSYmZSh0aGlzKSxpLm1hbmFnZXIuaXRlbUVuZCh0KX1mdW5jdGlvbiBsKGUpe3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIscywhMSksci5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsbCwhMSksbyYmbyhlKSxpLm1hbmFnZXIuaXRlbUVycm9yKHQpLGkubWFuYWdlci5pdGVtRW5kKHQpfXJldHVybiByLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLHMsITEpLHIuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGwsITEpLCJkYXRhOiIhPT10LnN1YnN0cigwLDUpJiZ2b2lkIDAhPT10aGlzLmNyb3NzT3JpZ2luJiYoci5jcm9zc09yaWdpbj10aGlzLmNyb3NzT3JpZ2luKSxpLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHIuc3JjPXQscn19Y2xhc3Mga210IGV4dGVuZHMgeG10e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4sbyl7Y29uc3QgaT1uZXcgdnN0LGE9bmV3IHdtdCh0aGlzLm1hbmFnZXIpO2Euc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbiksYS5zZXRQYXRoKHRoaXMucGF0aCk7bGV0IHI9MDtmdW5jdGlvbiBzKG4pe2EubG9hZCh0W25dLChmdW5jdGlvbih0KXtpLmltYWdlc1tuXT10LHIrKyw2PT09ciYmKGkubmVlZHNVcGRhdGU9ITAsZSYmZShpKSl9KSx2b2lkIDAsbyl9Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDsrK2UpcyhlKTtyZXR1cm4gaX19Y2xhc3MgU210IGV4dGVuZHMgeG10e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4sbyl7Y29uc3QgaT1uZXcgb2F0LGE9bmV3IHdtdCh0aGlzLm1hbmFnZXIpO3JldHVybiBhLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pLGEuc2V0UGF0aCh0aGlzLnBhdGgpLGEubG9hZCh0LChmdW5jdGlvbihuKXtpLmltYWdlPW47Y29uc3Qgbz10LnNlYXJjaCgvXC5qcGU/ZygkfFw/KS9pKT4wfHwwPT09dC5zZWFyY2goL15kYXRhXDppbWFnZVwvanBlZy8pO2kuZm9ybWF0PW8/UGl0OndpdCxpLm5lZWRzVXBkYXRlPSEwLHZvaWQgMCE9PWUmJmUoaSl9KSxuLG8pLGl9fWNsYXNzIERtdCBleHRlbmRzIGRwdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJDdXJ2ZVBhdGgiLHRoaXMuY3VydmVzPVtdLHRoaXMuYXV0b0Nsb3NlPSExfWFkZCh0KXt0aGlzLmN1cnZlcy5wdXNoKHQpfWNsb3NlUGF0aCgpe2NvbnN0IHQ9dGhpcy5jdXJ2ZXNbMF0uZ2V0UG9pbnQoMCksZT10aGlzLmN1cnZlc1t0aGlzLmN1cnZlcy5sZW5ndGgtMV0uZ2V0UG9pbnQoMSk7dC5lcXVhbHMoZSl8fHRoaXMuY3VydmVzLnB1c2gobmV3IE9wdChlLHQpKX1nZXRQb2ludCh0KXtjb25zdCBlPXQqdGhpcy5nZXRMZW5ndGgoKSxuPXRoaXMuZ2V0Q3VydmVMZW5ndGhzKCk7bGV0IG89MDtmb3IoO288bi5sZW5ndGg7KXtpZihuW29dPj1lKXtjb25zdCB0PW5bb10tZSxpPXRoaXMuY3VydmVzW29dLGE9aS5nZXRMZW5ndGgoKTtyZXR1cm4gaS5nZXRQb2ludEF0KDA9PT1hPzA6MS10L2EpfW8rK31yZXR1cm4gbnVsbH1nZXRMZW5ndGgoKXtjb25zdCB0PXRoaXMuZ2V0Q3VydmVMZW5ndGhzKCk7cmV0dXJuIHRbdC5sZW5ndGgtMV19dXBkYXRlQXJjTGVuZ3Rocygpe3RoaXMubmVlZHNVcGRhdGU9ITAsdGhpcy5jYWNoZUxlbmd0aHM9bnVsbCx0aGlzLmdldEN1cnZlTGVuZ3RocygpfWdldEN1cnZlTGVuZ3Rocygpe2lmKHRoaXMuY2FjaGVMZW5ndGhzJiZ0aGlzLmNhY2hlTGVuZ3Rocy5sZW5ndGg9PT10aGlzLmN1cnZlcy5sZW5ndGgpcmV0dXJuIHRoaXMuY2FjaGVMZW5ndGhzO2NvbnN0IHQ9W107bGV0IGU9MDtmb3IobGV0IG49MCxvPXRoaXMuY3VydmVzLmxlbmd0aDtuPG87bisrKWUrPXRoaXMuY3VydmVzW25dLmdldExlbmd0aCgpLHQucHVzaChlKTtyZXR1cm4gdGhpcy5jYWNoZUxlbmd0aHM9dCx0fWdldFNwYWNlZFBvaW50cyh0PTQwKXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248PXQ7bisrKWUucHVzaCh0aGlzLmdldFBvaW50KG4vdCkpO3JldHVybiB0aGlzLmF1dG9DbG9zZSYmZS5wdXNoKGVbMF0pLGV9Z2V0UG9pbnRzKHQ9MTIpe2NvbnN0IGU9W107bGV0IG47Zm9yKGxldCBvPTAsaT10aGlzLmN1cnZlcztvPGkubGVuZ3RoO28rKyl7Y29uc3QgYT1pW29dLHI9YS5nZXRQb2ludHMoYSYmYS5pc0VsbGlwc2VDdXJ2ZT8yKnQ6YSYmKGEuaXNMaW5lQ3VydmV8fGEuaXNMaW5lQ3VydmUzKT8xOmEmJmEuaXNTcGxpbmVDdXJ2ZT90KmEucG9pbnRzLmxlbmd0aDp0KTtmb3IobGV0IHQ9MDt0PHIubGVuZ3RoO3QrKyl7Y29uc3Qgbz1yW3RdO24mJm4uZXF1YWxzKG8pfHwoZS5wdXNoKG8pLG49byl9fXJldHVybiB0aGlzLmF1dG9DbG9zZSYmZS5sZW5ndGg+MSYmIWVbZS5sZW5ndGgtMV0uZXF1YWxzKGVbMF0pJiZlLnB1c2goZVswXSksZX1jb3B5KHQpe3N1cGVyLmNvcHkodCksdGhpcy5jdXJ2ZXM9W107Zm9yKGxldCBlPTAsbj10LmN1cnZlcy5sZW5ndGg7ZTxuO2UrKyl0aGlzLmN1cnZlcy5wdXNoKHQuY3VydmVzW2VdLmNsb25lKCkpO3JldHVybiB0aGlzLmF1dG9DbG9zZT10LmF1dG9DbG9zZSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7dC5hdXRvQ2xvc2U9dGhpcy5hdXRvQ2xvc2UsdC5jdXJ2ZXM9W107Zm9yKGxldCBlPTAsbj10aGlzLmN1cnZlcy5sZW5ndGg7ZTxuO2UrKyl0LmN1cnZlcy5wdXNoKHRoaXMuY3VydmVzW2VdLnRvSlNPTigpKTtyZXR1cm4gdH1mcm9tSlNPTih0KXtzdXBlci5mcm9tSlNPTih0KSx0aGlzLmF1dG9DbG9zZT10LmF1dG9DbG9zZSx0aGlzLmN1cnZlcz1bXTtmb3IobGV0IGU9MCxuPXQuY3VydmVzLmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXQuY3VydmVzW2VdO3RoaXMuY3VydmVzLnB1c2goKG5ldyBTcHRbbi50eXBlXSkuZnJvbUpTT04obikpfXJldHVybiB0aGlzfX1jbGFzcyBFbXQgZXh0ZW5kcyBEbXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBhdGgiLHRoaXMuY3VycmVudFBvaW50PW5ldyBRaXQsdCYmdGhpcy5zZXRGcm9tUG9pbnRzKHQpfXNldEZyb21Qb2ludHModCl7dGhpcy5tb3ZlVG8odFswXS54LHRbMF0ueSk7Zm9yKGxldCBlPTEsbj10Lmxlbmd0aDtlPG47ZSsrKXRoaXMubGluZVRvKHRbZV0ueCx0W2VdLnkpO3JldHVybiB0aGlzfW1vdmVUbyh0LGUpe3JldHVybiB0aGlzLmN1cnJlbnRQb2ludC5zZXQodCxlKSx0aGlzfWxpbmVUbyh0LGUpe2NvbnN0IG49bmV3IE9wdCh0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpLG5ldyBRaXQodCxlKSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2gobiksdGhpcy5jdXJyZW50UG9pbnQuc2V0KHQsZSksdGhpc31xdWFkcmF0aWNDdXJ2ZVRvKHQsZSxuLG8pe2NvbnN0IGk9bmV3IFBwdCh0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpLG5ldyBRaXQodCxlKSxuZXcgUWl0KG4sbykpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKGkpLHRoaXMuY3VycmVudFBvaW50LnNldChuLG8pLHRoaXN9YmV6aWVyQ3VydmVUbyh0LGUsbixvLGksYSl7Y29uc3Qgcj1uZXcgdnB0KHRoaXMuY3VycmVudFBvaW50LmNsb25lKCksbmV3IFFpdCh0LGUpLG5ldyBRaXQobixvKSxuZXcgUWl0KGksYSkpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKHIpLHRoaXMuY3VycmVudFBvaW50LnNldChpLGEpLHRoaXN9c3BsaW5lVGhydSh0KXtjb25zdCBlPVt0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpXS5jb25jYXQodCksbj1uZXcga3B0KGUpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKG4pLHRoaXMuY3VycmVudFBvaW50LmNvcHkodFt0Lmxlbmd0aC0xXSksdGhpc31hcmModCxlLG4sbyxpLGEpe3JldHVybiB0aGlzLmFic2FyYyh0K3RoaXMuY3VycmVudFBvaW50LngsZSt0aGlzLmN1cnJlbnRQb2ludC55LG4sbyxpLGEpLHRoaXN9YWJzYXJjKHQsZSxuLG8saSxhKXtyZXR1cm4gdGhpcy5hYnNlbGxpcHNlKHQsZSxuLG4sbyxpLGEpLHRoaXN9ZWxsaXBzZSh0LGUsbixvLGksYSxyLHMpe3JldHVybiB0aGlzLmFic2VsbGlwc2UodCt0aGlzLmN1cnJlbnRQb2ludC54LGUrdGhpcy5jdXJyZW50UG9pbnQueSxuLG8saSxhLHIscyksdGhpc31hYnNlbGxpcHNlKHQsZSxuLG8saSxhLHIscyl7Y29uc3QgbD1uZXcgcHB0KHQsZSxuLG8saSxhLHIscyk7aWYodGhpcy5jdXJ2ZXMubGVuZ3RoPjApe2NvbnN0IHQ9bC5nZXRQb2ludCgwKTt0LmVxdWFscyh0aGlzLmN1cnJlbnRQb2ludCl8fHRoaXMubGluZVRvKHQueCx0LnkpfXRoaXMuY3VydmVzLnB1c2gobCk7Y29uc3QgYz1sLmdldFBvaW50KDEpO3JldHVybiB0aGlzLmN1cnJlbnRQb2ludC5jb3B5KGMpLHRoaXN9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmN1cnJlbnRQb2ludC5jb3B5KHQuY3VycmVudFBvaW50KSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQuY3VycmVudFBvaW50PXRoaXMuY3VycmVudFBvaW50LnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLmN1cnJlbnRQb2ludC5mcm9tQXJyYXkodC5jdXJyZW50UG9pbnQpLHRoaXN9fWNsYXNzIFJtdCBleHRlbmRzIEVtdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLnV1aWQ9cWl0KCksdGhpcy50eXBlPSJTaGFwZSIsdGhpcy5ob2xlcz1bXX1nZXRQb2ludHNIb2xlcyh0KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wLG89dGhpcy5ob2xlcy5sZW5ndGg7bjxvO24rKyllW25dPXRoaXMuaG9sZXNbbl0uZ2V0UG9pbnRzKHQpO3JldHVybiBlfWV4dHJhY3RQb2ludHModCl7cmV0dXJue3NoYXBlOnRoaXMuZ2V0UG9pbnRzKHQpLGhvbGVzOnRoaXMuZ2V0UG9pbnRzSG9sZXModCl9fWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLmhvbGVzPVtdO2ZvcihsZXQgZT0wLG49dC5ob2xlcy5sZW5ndGg7ZTxuO2UrKyl0aGlzLmhvbGVzLnB1c2godC5ob2xlc1tlXS5jbG9uZSgpKTtyZXR1cm4gdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QudXVpZD10aGlzLnV1aWQsdC5ob2xlcz1bXTtmb3IobGV0IGU9MCxuPXRoaXMuaG9sZXMubGVuZ3RoO2U8bjtlKyspdC5ob2xlcy5wdXNoKHRoaXMuaG9sZXNbZV0udG9KU09OKCkpO3JldHVybiB0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMudXVpZD10LnV1aWQsdGhpcy5ob2xlcz1bXTtmb3IobGV0IGU9MCxuPXQuaG9sZXMubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dC5ob2xlc1tlXTt0aGlzLmhvbGVzLnB1c2goKG5ldyBFbXQpLmZyb21KU09OKG4pKX1yZXR1cm4gdGhpc319Y2xhc3MgQW10IGV4dGVuZHMgcHJ0e2NvbnN0cnVjdG9yKHQsZT0xKXtzdXBlcigpLHRoaXMudHlwZT0iTGlnaHQiLHRoaXMuY29sb3I9bmV3IFJydCh0KSx0aGlzLmludGVuc2l0eT1lfWRpc3Bvc2UoKXt9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5pbnRlbnNpdHk9dC5pbnRlbnNpdHksdGhpc310b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LmNvbG9yPXRoaXMuY29sb3IuZ2V0SGV4KCksZS5vYmplY3QuaW50ZW5zaXR5PXRoaXMuaW50ZW5zaXR5LHZvaWQgMCE9PXRoaXMuZ3JvdW5kQ29sb3ImJihlLm9iamVjdC5ncm91bmRDb2xvcj10aGlzLmdyb3VuZENvbG9yLmdldEhleCgpKSx2b2lkIDAhPT10aGlzLmRpc3RhbmNlJiYoZS5vYmplY3QuZGlzdGFuY2U9dGhpcy5kaXN0YW5jZSksdm9pZCAwIT09dGhpcy5hbmdsZSYmKGUub2JqZWN0LmFuZ2xlPXRoaXMuYW5nbGUpLHZvaWQgMCE9PXRoaXMuZGVjYXkmJihlLm9iamVjdC5kZWNheT10aGlzLmRlY2F5KSx2b2lkIDAhPT10aGlzLnBlbnVtYnJhJiYoZS5vYmplY3QucGVudW1icmE9dGhpcy5wZW51bWJyYSksdm9pZCAwIT09dGhpcy5zaGFkb3cmJihlLm9iamVjdC5zaGFkb3c9dGhpcy5zaGFkb3cudG9KU09OKCkpLGV9fUFtdC5wcm90b3R5cGUuaXNMaWdodD0hMCxjbGFzcyBleHRlbmRzIEFtdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxuKSx0aGlzLnR5cGU9IkhlbWlzcGhlcmVMaWdodCIsdGhpcy5wb3NpdGlvbi5jb3B5KHBydC5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy5ncm91bmRDb2xvcj1uZXcgUnJ0KGUpfWNvcHkodCl7cmV0dXJuIEFtdC5wcm90b3R5cGUuY29weS5jYWxsKHRoaXMsdCksdGhpcy5ncm91bmRDb2xvci5jb3B5KHQuZ3JvdW5kQ29sb3IpLHRoaXN9fS5wcm90b3R5cGUuaXNIZW1pc3BoZXJlTGlnaHQ9ITA7Y29uc3QgVG10PW5ldyBCYXQsTm10PW5ldyBjYXQsem10PW5ldyBjYXQ7Y2xhc3MgSW10e2NvbnN0cnVjdG9yKHQpe3RoaXMuY2FtZXJhPXQsdGhpcy5iaWFzPTAsdGhpcy5ub3JtYWxCaWFzPTAsdGhpcy5yYWRpdXM9MSx0aGlzLm1hcFNpemU9bmV3IFFpdCg1MTIsNTEyKSx0aGlzLm1hcD1udWxsLHRoaXMubWFwUGFzcz1udWxsLHRoaXMubWF0cml4PW5ldyBCYXQsdGhpcy5hdXRvVXBkYXRlPSEwLHRoaXMubmVlZHNVcGRhdGU9ITEsdGhpcy5fZnJ1c3R1bT1uZXcgRXN0LHRoaXMuX2ZyYW1lRXh0ZW50cz1uZXcgUWl0KDEsMSksdGhpcy5fdmlld3BvcnRDb3VudD0xLHRoaXMuX3ZpZXdwb3J0cz1bbmV3IGFhdCgwLDAsMSwxKV19Z2V0Vmlld3BvcnRDb3VudCgpe3JldHVybiB0aGlzLl92aWV3cG9ydENvdW50fWdldEZydXN0dW0oKXtyZXR1cm4gdGhpcy5fZnJ1c3R1bX11cGRhdGVNYXRyaWNlcyh0KXtjb25zdCBlPXRoaXMuY2FtZXJhLG49dGhpcy5tYXRyaXg7Tm10LnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSxlLnBvc2l0aW9uLmNvcHkoTm10KSx6bXQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQudGFyZ2V0Lm1hdHJpeFdvcmxkKSxlLmxvb2tBdCh6bXQpLGUudXBkYXRlTWF0cml4V29ybGQoKSxUbXQubXVsdGlwbHlNYXRyaWNlcyhlLnByb2plY3Rpb25NYXRyaXgsZS5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMuX2ZydXN0dW0uc2V0RnJvbVByb2plY3Rpb25NYXRyaXgoVG10KSxuLnNldCguNSwwLDAsLjUsMCwuNSwwLC41LDAsMCwuNSwuNSwwLDAsMCwxKSxuLm11bHRpcGx5KGUucHJvamVjdGlvbk1hdHJpeCksbi5tdWx0aXBseShlLm1hdHJpeFdvcmxkSW52ZXJzZSl9Z2V0Vmlld3BvcnQodCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0c1t0XX1nZXRGcmFtZUV4dGVudHMoKXtyZXR1cm4gdGhpcy5fZnJhbWVFeHRlbnRzfWRpc3Bvc2UoKXt0aGlzLm1hcCYmdGhpcy5tYXAuZGlzcG9zZSgpLHRoaXMubWFwUGFzcyYmdGhpcy5tYXBQYXNzLmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiB0aGlzLmNhbWVyYT10LmNhbWVyYS5jbG9uZSgpLHRoaXMuYmlhcz10LmJpYXMsdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpcy5tYXBTaXplLmNvcHkodC5tYXBTaXplKSx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfXRvSlNPTigpe2NvbnN0IHQ9e307cmV0dXJuIDAhPT10aGlzLmJpYXMmJih0LmJpYXM9dGhpcy5iaWFzKSwwIT09dGhpcy5ub3JtYWxCaWFzJiYodC5ub3JtYWxCaWFzPXRoaXMubm9ybWFsQmlhcyksMSE9PXRoaXMucmFkaXVzJiYodC5yYWRpdXM9dGhpcy5yYWRpdXMpLDUxMj09PXRoaXMubWFwU2l6ZS54JiY1MTI9PT10aGlzLm1hcFNpemUueXx8KHQubWFwU2l6ZT10aGlzLm1hcFNpemUudG9BcnJheSgpKSx0LmNhbWVyYT10aGlzLmNhbWVyYS50b0pTT04oITEpLm9iamVjdCxkZWxldGUgdC5jYW1lcmEubWF0cml4LHR9fWNsYXNzIEhtdCBleHRlbmRzIEltdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKG5ldyBfc3QoNTAsMSwuNSw1MDApKSx0aGlzLmZvY3VzPTF9dXBkYXRlTWF0cmljZXModCl7Y29uc3QgZT10aGlzLmNhbWVyYSxuPTIqWWl0KnQuYW5nbGUqdGhpcy5mb2N1cyxvPXRoaXMubWFwU2l6ZS53aWR0aC90aGlzLm1hcFNpemUuaGVpZ2h0LGk9dC5kaXN0YW5jZXx8ZS5mYXI7bj09PWUuZm92JiZvPT09ZS5hc3BlY3QmJmk9PT1lLmZhcnx8KGUuZm92PW4sZS5hc3BlY3Q9byxlLmZhcj1pLGUudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpKSxzdXBlci51cGRhdGVNYXRyaWNlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZm9jdXM9dC5mb2N1cyx0aGlzfX1IbXQucHJvdG90eXBlLmlzU3BvdExpZ2h0U2hhZG93PSEwLGNsYXNzIGV4dGVuZHMgQW10e2NvbnN0cnVjdG9yKHQsZSxuPTAsbz1NYXRoLlBJLzMsaT0wLGE9MSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IlNwb3RMaWdodCIsdGhpcy5wb3NpdGlvbi5jb3B5KHBydC5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy50YXJnZXQ9bmV3IHBydCx0aGlzLmRpc3RhbmNlPW4sdGhpcy5hbmdsZT1vLHRoaXMucGVudW1icmE9aSx0aGlzLmRlY2F5PWEsdGhpcy5zaGFkb3c9bmV3IEhtdH1nZXQgcG93ZXIoKXtyZXR1cm4gdGhpcy5pbnRlbnNpdHkqTWF0aC5QSX1zZXQgcG93ZXIodCl7dGhpcy5pbnRlbnNpdHk9dC9NYXRoLlBJfWRpc3Bvc2UoKXt0aGlzLnNoYWRvdy5kaXNwb3NlKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRpc3RhbmNlPXQuZGlzdGFuY2UsdGhpcy5hbmdsZT10LmFuZ2xlLHRoaXMucGVudW1icmE9dC5wZW51bWJyYSx0aGlzLmRlY2F5PXQuZGVjYXksdGhpcy50YXJnZXQ9dC50YXJnZXQuY2xvbmUoKSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fS5wcm90b3R5cGUuaXNTcG90TGlnaHQ9ITA7Y29uc3QgRm10PW5ldyBCYXQsTG10PW5ldyBjYXQsQm10PW5ldyBjYXQ7Y2xhc3MgVm10IGV4dGVuZHMgSW10e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IF9zdCg5MCwxLC41LDUwMCkpLHRoaXMuX2ZyYW1lRXh0ZW50cz1uZXcgUWl0KDQsMiksdGhpcy5fdmlld3BvcnRDb3VudD02LHRoaXMuX3ZpZXdwb3J0cz1bbmV3IGFhdCgyLDEsMSwxKSxuZXcgYWF0KDAsMSwxLDEpLG5ldyBhYXQoMywxLDEsMSksbmV3IGFhdCgxLDEsMSwxKSxuZXcgYWF0KDMsMCwxLDEpLG5ldyBhYXQoMSwwLDEsMSldLHRoaXMuX2N1YmVEaXJlY3Rpb25zPVtuZXcgY2F0KDEsMCwwKSxuZXcgY2F0KC0xLDAsMCksbmV3IGNhdCgwLDAsMSksbmV3IGNhdCgwLDAsLTEpLG5ldyBjYXQoMCwxLDApLG5ldyBjYXQoMCwtMSwwKV0sdGhpcy5fY3ViZVVwcz1bbmV3IGNhdCgwLDEsMCksbmV3IGNhdCgwLDEsMCksbmV3IGNhdCgwLDEsMCksbmV3IGNhdCgwLDEsMCksbmV3IGNhdCgwLDAsMSksbmV3IGNhdCgwLDAsLTEpXX11cGRhdGVNYXRyaWNlcyh0LGU9MCl7Y29uc3Qgbj10aGlzLmNhbWVyYSxvPXRoaXMubWF0cml4LGk9dC5kaXN0YW5jZXx8bi5mYXI7aSE9PW4uZmFyJiYobi5mYXI9aSxuLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSksTG10LnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSxuLnBvc2l0aW9uLmNvcHkoTG10KSxCbXQuY29weShuLnBvc2l0aW9uKSxCbXQuYWRkKHRoaXMuX2N1YmVEaXJlY3Rpb25zW2VdKSxuLnVwLmNvcHkodGhpcy5fY3ViZVVwc1tlXSksbi5sb29rQXQoQm10KSxuLnVwZGF0ZU1hdHJpeFdvcmxkKCksby5tYWtlVHJhbnNsYXRpb24oLUxtdC54LC1MbXQueSwtTG10LnopLEZtdC5tdWx0aXBseU1hdHJpY2VzKG4ucHJvamVjdGlvbk1hdHJpeCxuLm1hdHJpeFdvcmxkSW52ZXJzZSksdGhpcy5fZnJ1c3R1bS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChGbXQpfX1WbXQucHJvdG90eXBlLmlzUG9pbnRMaWdodFNoYWRvdz0hMCxjbGFzcyBleHRlbmRzIEFtdHtjb25zdHJ1Y3Rvcih0LGUsbj0wLG89MSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IlBvaW50TGlnaHQiLHRoaXMuZGlzdGFuY2U9bix0aGlzLmRlY2F5PW8sdGhpcy5zaGFkb3c9bmV3IFZtdH1nZXQgcG93ZXIoKXtyZXR1cm4gNCp0aGlzLmludGVuc2l0eSpNYXRoLlBJfXNldCBwb3dlcih0KXt0aGlzLmludGVuc2l0eT10Lyg0Kk1hdGguUEkpfWRpc3Bvc2UoKXt0aGlzLnNoYWRvdy5kaXNwb3NlKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRpc3RhbmNlPXQuZGlzdGFuY2UsdGhpcy5kZWNheT10LmRlY2F5LHRoaXMuc2hhZG93PXQuc2hhZG93LmNsb25lKCksdGhpc319LnByb3RvdHlwZS5pc1BvaW50TGlnaHQ9ITA7Y2xhc3Mgam10IGV4dGVuZHMgSW10e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IFVzdCgtNSw1LDUsLTUsLjUsNTAwKSl9fWptdC5wcm90b3R5cGUuaXNEaXJlY3Rpb25hbExpZ2h0U2hhZG93PSEwLGNsYXNzIGV4dGVuZHMgQW10e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkRpcmVjdGlvbmFsTGlnaHQiLHRoaXMucG9zaXRpb24uY29weShwcnQuRGVmYXVsdFVwKSx0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMudGFyZ2V0PW5ldyBwcnQsdGhpcy5zaGFkb3c9bmV3IGptdH1kaXNwb3NlKCl7dGhpcy5zaGFkb3cuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy50YXJnZXQ9dC50YXJnZXQuY2xvbmUoKSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fS5wcm90b3R5cGUuaXNEaXJlY3Rpb25hbExpZ2h0PSEwLGNsYXNzIGV4dGVuZHMgQW10e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkFtYmllbnRMaWdodCJ9fS5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHQ9ITAsY2xhc3MgZXh0ZW5kcyBBbXR7Y29uc3RydWN0b3IodCxlLG49MTAsbz0xMCl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IlJlY3RBcmVhTGlnaHQiLHRoaXMud2lkdGg9bix0aGlzLmhlaWdodD1vfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy53aWR0aD10LndpZHRoLHRoaXMuaGVpZ2h0PXQuaGVpZ2h0LHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC53aWR0aD10aGlzLndpZHRoLGUub2JqZWN0LmhlaWdodD10aGlzLmhlaWdodCxlfX0ucHJvdG90eXBlLmlzUmVjdEFyZWFMaWdodD0hMDtjbGFzcyBVbXR7Y29uc3RydWN0b3IoKXt0aGlzLmNvZWZmaWNpZW50cz1bXTtmb3IobGV0IHQ9MDt0PDk7dCsrKXRoaXMuY29lZmZpY2llbnRzLnB1c2gobmV3IGNhdCl9c2V0KHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspdGhpcy5jb2VmZmljaWVudHNbZV0uY29weSh0W2VdKTtyZXR1cm4gdGhpc316ZXJvKCl7Zm9yKGxldCB0PTA7dDw5O3QrKyl0aGlzLmNvZWZmaWNpZW50c1t0XS5zZXQoMCwwLDApO3JldHVybiB0aGlzfWdldEF0KHQsZSl7Y29uc3Qgbj10Lngsbz10LnksaT10LnosYT10aGlzLmNvZWZmaWNpZW50cztyZXR1cm4gZS5jb3B5KGFbMF0pLm11bHRpcGx5U2NhbGFyKC4yODIwOTUpLGUuYWRkU2NhbGVkVmVjdG9yKGFbMV0sLjQ4ODYwMypvKSxlLmFkZFNjYWxlZFZlY3RvcihhWzJdLC40ODg2MDMqaSksZS5hZGRTY2FsZWRWZWN0b3IoYVszXSwuNDg4NjAzKm4pLGUuYWRkU2NhbGVkVmVjdG9yKGFbNF0sbipvKjEuMDkyNTQ4KSxlLmFkZFNjYWxlZFZlY3RvcihhWzVdLG8qaSoxLjA5MjU0OCksZS5hZGRTY2FsZWRWZWN0b3IoYVs2XSwuMzE1MzkyKigzKmkqaS0xKSksZS5hZGRTY2FsZWRWZWN0b3IoYVs3XSxuKmkqMS4wOTI1NDgpLGUuYWRkU2NhbGVkVmVjdG9yKGFbOF0sLjU0NjI3NCoobipuLW8qbykpLGV9Z2V0SXJyYWRpYW5jZUF0KHQsZSl7Y29uc3Qgbj10Lngsbz10LnksaT10LnosYT10aGlzLmNvZWZmaWNpZW50cztyZXR1cm4gZS5jb3B5KGFbMF0pLm11bHRpcGx5U2NhbGFyKC44ODYyMjcpLGUuYWRkU2NhbGVkVmVjdG9yKGFbMV0sMS4wMjMzMjgqbyksZS5hZGRTY2FsZWRWZWN0b3IoYVsyXSwxLjAyMzMyOCppKSxlLmFkZFNjYWxlZFZlY3RvcihhWzNdLDEuMDIzMzI4Km4pLGUuYWRkU2NhbGVkVmVjdG9yKGFbNF0sLjg1ODA4NipuKm8pLGUuYWRkU2NhbGVkVmVjdG9yKGFbNV0sLjg1ODA4NipvKmkpLGUuYWRkU2NhbGVkVmVjdG9yKGFbNl0sLjc0MzEyNSppKmktLjI0NzcwOCksZS5hZGRTY2FsZWRWZWN0b3IoYVs3XSwuODU4MDg2Km4qaSksZS5hZGRTY2FsZWRWZWN0b3IoYVs4XSwuNDI5MDQzKihuKm4tbypvKSksZX1hZGQodCl7Zm9yKGxldCBlPTA7ZTw5O2UrKyl0aGlzLmNvZWZmaWNpZW50c1tlXS5hZGQodC5jb2VmZmljaWVudHNbZV0pO3JldHVybiB0aGlzfWFkZFNjYWxlZFNIKHQsZSl7Zm9yKGxldCBuPTA7bjw5O24rKyl0aGlzLmNvZWZmaWNpZW50c1tuXS5hZGRTY2FsZWRWZWN0b3IodC5jb2VmZmljaWVudHNbbl0sZSk7cmV0dXJuIHRoaXN9c2NhbGUodCl7Zm9yKGxldCBlPTA7ZTw5O2UrKyl0aGlzLmNvZWZmaWNpZW50c1tlXS5tdWx0aXBseVNjYWxhcih0KTtyZXR1cm4gdGhpc31sZXJwKHQsZSl7Zm9yKGxldCBuPTA7bjw5O24rKyl0aGlzLmNvZWZmaWNpZW50c1tuXS5sZXJwKHQuY29lZmZpY2llbnRzW25dLGUpO3JldHVybiB0aGlzfWVxdWFscyh0KXtmb3IobGV0IGU9MDtlPDk7ZSsrKWlmKCF0aGlzLmNvZWZmaWNpZW50c1tlXS5lcXVhbHModC5jb2VmZmljaWVudHNbZV0pKXJldHVybiExO3JldHVybiEwfWNvcHkodCl7cmV0dXJuIHRoaXMuc2V0KHQuY29lZmZpY2llbnRzKX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1mcm9tQXJyYXkodCxlPTApe2NvbnN0IG49dGhpcy5jb2VmZmljaWVudHM7Zm9yKGxldCBvPTA7bzw5O28rKyluW29dLmZyb21BcnJheSh0LGUrMypvKTtyZXR1cm4gdGhpc310b0FycmF5KHQ9W10sZT0wKXtjb25zdCBuPXRoaXMuY29lZmZpY2llbnRzO2ZvcihsZXQgbz0wO288OTtvKyspbltvXS50b0FycmF5KHQsZSszKm8pO3JldHVybiB0fXN0YXRpYyBnZXRCYXNpc0F0KHQsZSl7Y29uc3Qgbj10Lngsbz10LnksaT10Lno7ZVswXT0uMjgyMDk1LGVbMV09LjQ4ODYwMypvLGVbMl09LjQ4ODYwMyppLGVbM109LjQ4ODYwMypuLGVbNF09MS4wOTI1NDgqbipvLGVbNV09MS4wOTI1NDgqbyppLGVbNl09LjMxNTM5MiooMyppKmktMSksZVs3XT0xLjA5MjU0OCpuKmksZVs4XT0uNTQ2Mjc0KihuKm4tbypvKX19VW10LnByb3RvdHlwZS5pc1NwaGVyaWNhbEhhcm1vbmljczM9ITA7Y2xhc3MgR210IGV4dGVuZHMgQW10e2NvbnN0cnVjdG9yKHQ9bmV3IFVtdCxlPTEpe3N1cGVyKHZvaWQgMCxlKSx0aGlzLnNoPXR9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnNoLmNvcHkodC5zaCksdGhpc31mcm9tSlNPTih0KXtyZXR1cm4gdGhpcy5pbnRlbnNpdHk9dC5pbnRlbnNpdHksdGhpcy5zaC5mcm9tQXJyYXkodC5zaCksdGhpc310b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LnNoPXRoaXMuc2gudG9BcnJheSgpLGV9fWxldCBXbXQ7R210LnByb3RvdHlwZS5pc0xpZ2h0UHJvYmU9ITAsY2xhc3MgZXh0ZW5kcyBxcnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkiLHRoaXMuaW5zdGFuY2VDb3VudD0xLzB9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmluc3RhbmNlQ291bnQ9dC5pbnN0YW5jZUNvdW50LHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04odGhpcyk7cmV0dXJuIHQuaW5zdGFuY2VDb3VudD10aGlzLmluc3RhbmNlQ291bnQsdC5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5PSEwLHR9fS5wcm90b3R5cGUuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeT0hMCxjbGFzcyBleHRlbmRzIHpydHtjb25zdHJ1Y3Rvcih0LGUsbixvPTEpeyJudW1iZXIiPT10eXBlb2YgbiYmKG89bixuPSExLGNvbnNvbGUuZXJyb3IoIlRIUkVFLkluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZTogVGhlIGNvbnN0cnVjdG9yIG5vdyBleHBlY3RzIG5vcm1hbGl6ZWQgYXMgdGhlIHRoaXJkIGFyZ3VtZW50LiIpKSxzdXBlcih0LGUsbiksdGhpcy5tZXNoUGVyQXR0cmlidXRlPW99Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9dC5tZXNoUGVyQXR0cmlidXRlLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC5tZXNoUGVyQXR0cmlidXRlPXRoaXMubWVzaFBlckF0dHJpYnV0ZSx0LmlzSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlPSEwLHR9fS5wcm90b3R5cGUuaXNJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU9ITAsY2xhc3MgZXh0ZW5kcyB4bXR7Y29uc3RydWN0b3IodCl7c3VwZXIodCksInVuZGVmaW5lZCI9PXR5cGVvZiBjcmVhdGVJbWFnZUJpdG1hcCYmY29uc29sZS53YXJuKCJUSFJFRS5JbWFnZUJpdG1hcExvYWRlcjogY3JlYXRlSW1hZ2VCaXRtYXAoKSBub3Qgc3VwcG9ydGVkLiIpLCJ1bmRlZmluZWQiPT10eXBlb2YgZmV0Y2gmJmNvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VCaXRtYXBMb2FkZXI6IGZldGNoKCkgbm90IHN1cHBvcnRlZC4iKSx0aGlzLm9wdGlvbnM9e3ByZW11bHRpcGx5QWxwaGE6Im5vbmUifX1zZXRPcHRpb25zKHQpe3JldHVybiB0aGlzLm9wdGlvbnM9dCx0aGlzfWxvYWQodCxlLG4sbyl7dm9pZCAwPT09dCYmKHQ9IiIpLHZvaWQgMCE9PXRoaXMucGF0aCYmKHQ9dGhpcy5wYXRoK3QpLHQ9dGhpcy5tYW5hZ2VyLnJlc29sdmVVUkwodCk7Y29uc3QgaT10aGlzLGE9TW10LmdldCh0KTtpZih2b2lkIDAhPT1hKXJldHVybiBpLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZSYmZShhKSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pLDApLGE7Y29uc3Qgcj17fTtyLmNyZWRlbnRpYWxzPSJhbm9ueW1vdXMiPT09dGhpcy5jcm9zc09yaWdpbj8ic2FtZS1vcmlnaW4iOiJpbmNsdWRlIixyLmhlYWRlcnM9dGhpcy5yZXF1ZXN0SGVhZGVyLGZldGNoKHQscikudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuYmxvYigpfSkpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiBjcmVhdGVJbWFnZUJpdG1hcCh0LE9iamVjdC5hc3NpZ24oaS5vcHRpb25zLHtjb2xvclNwYWNlQ29udmVyc2lvbjoibm9uZSJ9KSl9KSkudGhlbigoZnVuY3Rpb24obil7TW10LmFkZCh0LG4pLGUmJmUobiksaS5tYW5hZ2VyLml0ZW1FbmQodCl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe28mJm8oZSksaS5tYW5hZ2VyLml0ZW1FcnJvcih0KSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pKSxpLm1hbmFnZXIuaXRlbVN0YXJ0KHQpfX0ucHJvdG90eXBlLmlzSW1hZ2VCaXRtYXBMb2FkZXI9ITA7Y2xhc3MgWW10IGV4dGVuZHMgeG10e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4sbyl7Y29uc3QgaT10aGlzLGE9bmV3IFBtdCh0aGlzLm1hbmFnZXIpO2Euc2V0UmVzcG9uc2VUeXBlKCJhcnJheWJ1ZmZlciIpLGEuc2V0UGF0aCh0aGlzLnBhdGgpLGEuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLGEuc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKSxhLmxvYWQodCwoZnVuY3Rpb24obil7dHJ5e2NvbnN0IHQ9bi5zbGljZSgwKTsodm9pZCAwPT09V210JiYoV210PW5ldyh3aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSksV210KS5kZWNvZGVBdWRpb0RhdGEodCwoZnVuY3Rpb24odCl7ZSh0KX0pKX1jYXRjaChlKXtvP28oZSk6Y29uc29sZS5lcnJvcihlKSxpLm1hbmFnZXIuaXRlbUVycm9yKHQpfX0pLG4sbyl9fShjbGFzcyBleHRlbmRzIEdtdHtjb25zdHJ1Y3Rvcih0LGUsbj0xKXtzdXBlcih2b2lkIDAsbik7Y29uc3Qgbz0obmV3IFJydCkuc2V0KHQpLGk9KG5ldyBScnQpLnNldChlKSxhPW5ldyBjYXQoby5yLG8uZyxvLmIpLHI9bmV3IGNhdChpLnIsaS5nLGkuYikscz1NYXRoLnNxcnQoTWF0aC5QSSksbD1zKk1hdGguc3FydCguNzUpO3RoaXMuc2guY29lZmZpY2llbnRzWzBdLmNvcHkoYSkuYWRkKHIpLm11bHRpcGx5U2NhbGFyKHMpLHRoaXMuc2guY29lZmZpY2llbnRzWzFdLmNvcHkoYSkuc3ViKHIpLm11bHRpcGx5U2NhbGFyKGwpfX0pLnByb3RvdHlwZS5pc0hlbWlzcGhlcmVMaWdodFByb2JlPSEwLGNsYXNzIGV4dGVuZHMgR210e2NvbnN0cnVjdG9yKHQsZT0xKXtzdXBlcih2b2lkIDAsZSk7Y29uc3Qgbj0obmV3IFJydCkuc2V0KHQpO3RoaXMuc2guY29lZmZpY2llbnRzWzBdLnNldChuLnIsbi5nLG4uYikubXVsdGlwbHlTY2FsYXIoMipNYXRoLnNxcnQoTWF0aC5QSSkpfX0ucHJvdG90eXBlLmlzQW1iaWVudExpZ2h0UHJvYmU9ITA7Y2xhc3MgcW10e2NvbnN0cnVjdG9yKHQsZSxuKXtsZXQgbyxpLGE7c3dpdGNoKHRoaXMuYmluZGluZz10LHRoaXMudmFsdWVTaXplPW4sZSl7Y2FzZSJxdWF0ZXJuaW9uIjpvPXRoaXMuX3NsZXJwLGk9dGhpcy5fc2xlcnBBZGRpdGl2ZSxhPXRoaXMuX3NldEFkZGl0aXZlSWRlbnRpdHlRdWF0ZXJuaW9uLHRoaXMuYnVmZmVyPW5ldyBGbG9hdDY0QXJyYXkoNipuKSx0aGlzLl93b3JrSW5kZXg9NTticmVhaztjYXNlInN0cmluZyI6Y2FzZSJib29sIjpvPXRoaXMuX3NlbGVjdCxpPXRoaXMuX3NlbGVjdCxhPXRoaXMuX3NldEFkZGl0aXZlSWRlbnRpdHlPdGhlcix0aGlzLmJ1ZmZlcj1uZXcgQXJyYXkoNSpuKTticmVhaztkZWZhdWx0Om89dGhpcy5fbGVycCxpPXRoaXMuX2xlcnBBZGRpdGl2ZSxhPXRoaXMuX3NldEFkZGl0aXZlSWRlbnRpdHlOdW1lcmljLHRoaXMuYnVmZmVyPW5ldyBGbG9hdDY0QXJyYXkoNSpuKX10aGlzLl9taXhCdWZmZXJSZWdpb249byx0aGlzLl9taXhCdWZmZXJSZWdpb25BZGRpdGl2ZT1pLHRoaXMuX3NldElkZW50aXR5PWEsdGhpcy5fb3JpZ0luZGV4PTMsdGhpcy5fYWRkSW5kZXg9NCx0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9MCx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT0wLHRoaXMudXNlQ291bnQ9MCx0aGlzLnJlZmVyZW5jZUNvdW50PTB9YWNjdW11bGF0ZSh0LGUpe2NvbnN0IG49dGhpcy5idWZmZXIsbz10aGlzLnZhbHVlU2l6ZSxpPXQqbytvO2xldCBhPXRoaXMuY3VtdWxhdGl2ZVdlaWdodDtpZigwPT09YSl7Zm9yKGxldCB0PTA7dCE9PW87Kyt0KW5baSt0XT1uW3RdO2E9ZX1lbHNlIGErPWUsdGhpcy5fbWl4QnVmZmVyUmVnaW9uKG4saSwwLGUvYSxvKTt0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9YX1hY2N1bXVsYXRlQWRkaXRpdmUodCl7Y29uc3QgZT10aGlzLmJ1ZmZlcixuPXRoaXMudmFsdWVTaXplLG89bip0aGlzLl9hZGRJbmRleDswPT09dGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmUmJnRoaXMuX3NldElkZW50aXR5KCksdGhpcy5fbWl4QnVmZmVyUmVnaW9uQWRkaXRpdmUoZSxvLDAsdCxuKSx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZSs9dH1hcHBseSh0KXtjb25zdCBlPXRoaXMudmFsdWVTaXplLG49dGhpcy5idWZmZXIsbz10KmUrZSxpPXRoaXMuY3VtdWxhdGl2ZVdlaWdodCxhPXRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlLHI9dGhpcy5iaW5kaW5nO3RoaXMuY3VtdWxhdGl2ZVdlaWdodD0wLHRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlPTAsaTwxJiZ0aGlzLl9taXhCdWZmZXJSZWdpb24obixvLGUqdGhpcy5fb3JpZ0luZGV4LDEtaSxlKSxhPjAmJnRoaXMuX21peEJ1ZmZlclJlZ2lvbkFkZGl0aXZlKG4sbyx0aGlzLl9hZGRJbmRleCplLDEsZSk7Zm9yKGxldCB0PWUsaT1lK2U7dCE9PWk7Kyt0KWlmKG5bdF0hPT1uW3QrZV0pe3Iuc2V0VmFsdWUobixvKTticmVha319c2F2ZU9yaWdpbmFsU3RhdGUoKXtjb25zdCB0PXRoaXMuYnVmZmVyLGU9dGhpcy52YWx1ZVNpemUsbj1lKnRoaXMuX29yaWdJbmRleDt0aGlzLmJpbmRpbmcuZ2V0VmFsdWUodCxuKTtmb3IobGV0IG89ZSxpPW47byE9PWk7KytvKXRbb109dFtuK28lZV07dGhpcy5fc2V0SWRlbnRpdHkoKSx0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9MCx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT0wfXJlc3RvcmVPcmlnaW5hbFN0YXRlKCl7dGhpcy5iaW5kaW5nLnNldFZhbHVlKHRoaXMuYnVmZmVyLDMqdGhpcy52YWx1ZVNpemUpfV9zZXRBZGRpdGl2ZUlkZW50aXR5TnVtZXJpYygpe2NvbnN0IHQ9dGhpcy5fYWRkSW5kZXgqdGhpcy52YWx1ZVNpemUsZT10K3RoaXMudmFsdWVTaXplO2ZvcihsZXQgbj10O248ZTtuKyspdGhpcy5idWZmZXJbbl09MH1fc2V0QWRkaXRpdmVJZGVudGl0eVF1YXRlcm5pb24oKXt0aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5TnVtZXJpYygpLHRoaXMuYnVmZmVyW3RoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplKzNdPTF9X3NldEFkZGl0aXZlSWRlbnRpdHlPdGhlcigpe2NvbnN0IHQ9dGhpcy5fb3JpZ0luZGV4KnRoaXMudmFsdWVTaXplLGU9dGhpcy5fYWRkSW5kZXgqdGhpcy52YWx1ZVNpemU7Zm9yKGxldCBuPTA7bjx0aGlzLnZhbHVlU2l6ZTtuKyspdGhpcy5idWZmZXJbZStuXT10aGlzLmJ1ZmZlclt0K25dfV9zZWxlY3QodCxlLG4sbyxpKXtpZihvPj0uNSlmb3IobGV0IG89MDtvIT09aTsrK28pdFtlK29dPXRbbitvXX1fc2xlcnAodCxlLG4sbyl7bGF0LnNsZXJwRmxhdCh0LGUsdCxlLHQsbixvKX1fc2xlcnBBZGRpdGl2ZSh0LGUsbixvLGkpe2NvbnN0IGE9dGhpcy5fd29ya0luZGV4Kmk7bGF0Lm11bHRpcGx5UXVhdGVybmlvbnNGbGF0KHQsYSx0LGUsdCxuKSxsYXQuc2xlcnBGbGF0KHQsZSx0LGUsdCxhLG8pfV9sZXJwKHQsZSxuLG8saSl7Y29uc3QgYT0xLW87Zm9yKGxldCByPTA7ciE9PWk7KytyKXtjb25zdCBpPWUrcjt0W2ldPXRbaV0qYSt0W24rcl0qb319X2xlcnBBZGRpdGl2ZSh0LGUsbixvLGkpe2ZvcihsZXQgYT0wO2EhPT1pOysrYSl7Y29uc3QgaT1lK2E7dFtpXT10W2ldK3RbbithXSpvfX19Y29uc3QgWm10PW5ldyBSZWdFeHAoIltcXFtcXF1cXC46XFwvXSIsImciKSxYbXQ9IlteXFxbXFxdXFwuOlxcL10iLEttdD0iW14iKyJcXFtcXF1cXC46XFwvIi5yZXBsYWNlKCJcXC4iLCIiKSsiXSIsSm10PS8oKD86V0MrW1wvOl0pKikvLnNvdXJjZS5yZXBsYWNlKCJXQyIsWG10KSxRbXQ9LyhXQ09EKyk/Ly5zb3VyY2UucmVwbGFjZSgiV0NPRCIsS210KSwkbXQ9Lyg/OlwuKFdDKykoPzpcWyguKylcXSk/KT8vLnNvdXJjZS5yZXBsYWNlKCJXQyIsWG10KSx0dXQ9L1wuKFdDKykoPzpcWyguKylcXSk/Ly5zb3VyY2UucmVwbGFjZSgiV0MiLFhtdCksZXV0PW5ldyBSZWdFeHAoIl4iK0ptdCtRbXQrJG10K3R1dCsiJCIpLG51dD1bIm1hdGVyaWFsIiwibWF0ZXJpYWxzIiwiYm9uZXMiXTtjbGFzcyBvdXR7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMucGF0aD1lLHRoaXMucGFyc2VkUGF0aD1ufHxvdXQucGFyc2VUcmFja05hbWUoZSksdGhpcy5ub2RlPW91dC5maW5kTm9kZSh0LHRoaXMucGFyc2VkUGF0aC5ub2RlTmFtZSl8fHQsdGhpcy5yb290Tm9kZT10LHRoaXMuZ2V0VmFsdWU9dGhpcy5fZ2V0VmFsdWVfdW5ib3VuZCx0aGlzLnNldFZhbHVlPXRoaXMuX3NldFZhbHVlX3VuYm91bmR9c3RhdGljIGNyZWF0ZSh0LGUsbil7cmV0dXJuIHQmJnQuaXNBbmltYXRpb25PYmplY3RHcm91cD9uZXcgb3V0LkNvbXBvc2l0ZSh0LGUsbik6bmV3IG91dCh0LGUsbil9c3RhdGljIHNhbml0aXplTm9kZU5hbWUodCl7cmV0dXJuIHQucmVwbGFjZSgvXHMvZywiXyIpLnJlcGxhY2UoWm10LCIiKX1zdGF0aWMgcGFyc2VUcmFja05hbWUodCl7Y29uc3QgZT1ldXQuZXhlYyh0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIlByb3BlcnR5QmluZGluZzogQ2Fubm90IHBhcnNlIHRyYWNrTmFtZTogIit0KTtjb25zdCBuPXtub2RlTmFtZTplWzJdLG9iamVjdE5hbWU6ZVszXSxvYmplY3RJbmRleDplWzRdLHByb3BlcnR5TmFtZTplWzVdLHByb3BlcnR5SW5kZXg6ZVs2XX0sbz1uLm5vZGVOYW1lJiZuLm5vZGVOYW1lLmxhc3RJbmRleE9mKCIuIik7aWYodm9pZCAwIT09byYmLTEhPT1vKXtjb25zdCB0PW4ubm9kZU5hbWUuc3Vic3RyaW5nKG8rMSk7LTEhPT1udXQuaW5kZXhPZih0KSYmKG4ubm9kZU5hbWU9bi5ub2RlTmFtZS5zdWJzdHJpbmcoMCxvKSxuLm9iamVjdE5hbWU9dCl9aWYobnVsbD09PW4ucHJvcGVydHlOYW1lfHwwPT09bi5wcm9wZXJ0eU5hbWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiUHJvcGVydHlCaW5kaW5nOiBjYW4gbm90IHBhcnNlIHByb3BlcnR5TmFtZSBmcm9tIHRyYWNrTmFtZTogIit0KTtyZXR1cm4gbn1zdGF0aWMgZmluZE5vZGUodCxlKXtpZighZXx8IiI9PT1lfHwiLiI9PT1lfHwtMT09PWV8fGU9PT10Lm5hbWV8fGU9PT10LnV1aWQpcmV0dXJuIHQ7aWYodC5za2VsZXRvbil7Y29uc3Qgbj10LnNrZWxldG9uLmdldEJvbmVCeU5hbWUoZSk7aWYodm9pZCAwIT09bilyZXR1cm4gbn1pZih0LmNoaWxkcmVuKXtjb25zdCBuPWZ1bmN0aW9uKHQpe2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKXtjb25zdCBpPXRbb107aWYoaS5uYW1lPT09ZXx8aS51dWlkPT09ZSlyZXR1cm4gaTtjb25zdCBhPW4oaS5jaGlsZHJlbik7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sbz1uKHQuY2hpbGRyZW4pO2lmKG8pcmV0dXJuIG99cmV0dXJuIG51bGx9X2dldFZhbHVlX3VuYXZhaWxhYmxlKCl7fV9zZXRWYWx1ZV91bmF2YWlsYWJsZSgpe31fZ2V0VmFsdWVfZGlyZWN0KHQsZSl7dFtlXT10aGlzLm5vZGVbdGhpcy5wcm9wZXJ0eU5hbWVdfV9nZXRWYWx1ZV9hcnJheSh0LGUpe2NvbnN0IG49dGhpcy5yZXNvbHZlZFByb3BlcnR5O2ZvcihsZXQgbz0wLGk9bi5sZW5ndGg7byE9PWk7KytvKXRbZSsrXT1uW29dfV9nZXRWYWx1ZV9hcnJheUVsZW1lbnQodCxlKXt0W2VdPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eVt0aGlzLnByb3BlcnR5SW5kZXhdfV9nZXRWYWx1ZV90b0FycmF5KHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LnRvQXJyYXkodCxlKX1fc2V0VmFsdWVfZGlyZWN0KHQsZSl7dGhpcy50YXJnZXRPYmplY3RbdGhpcy5wcm9wZXJ0eU5hbWVdPXRbZV19X3NldFZhbHVlX2RpcmVjdF9zZXROZWVkc1VwZGF0ZSh0LGUpe3RoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9kaXJlY3Rfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZSh0LGUpe3RoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2FycmF5KHQsZSl7Y29uc3Qgbj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBvPTAsaT1uLmxlbmd0aDtvIT09aTsrK28pbltvXT10W2UrK119X3NldFZhbHVlX2FycmF5X3NldE5lZWRzVXBkYXRlKHQsZSl7Y29uc3Qgbj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBvPTAsaT1uLmxlbmd0aDtvIT09aTsrK28pbltvXT10W2UrK107dGhpcy50YXJnZXRPYmplY3QubmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2FycmF5X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxlKXtjb25zdCBuPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eTtmb3IobGV0IG89MCxpPW4ubGVuZ3RoO28hPT1pOysrbyluW29dPXRbZSsrXTt0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheUVsZW1lbnQodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XT10W2VdfV9zZXRWYWx1ZV9hcnJheUVsZW1lbnRfc2V0TmVlZHNVcGRhdGUodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheUVsZW1lbnRfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eVt0aGlzLnByb3BlcnR5SW5kZXhdPXRbZV0sdGhpcy50YXJnZXRPYmplY3QubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfZnJvbUFycmF5KHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LmZyb21BcnJheSh0LGUpfV9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TmVlZHNVcGRhdGUodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHkuZnJvbUFycmF5KHQsZSksdGhpcy50YXJnZXRPYmplY3QubmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2Zyb21BcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlKHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LmZyb21BcnJheSh0LGUpLHRoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X2dldFZhbHVlX3VuYm91bmQodCxlKXt0aGlzLmJpbmQoKSx0aGlzLmdldFZhbHVlKHQsZSl9X3NldFZhbHVlX3VuYm91bmQodCxlKXt0aGlzLmJpbmQoKSx0aGlzLnNldFZhbHVlKHQsZSl9YmluZCgpe2xldCB0PXRoaXMubm9kZTtjb25zdCBlPXRoaXMucGFyc2VkUGF0aCxuPWUub2JqZWN0TmFtZSxvPWUucHJvcGVydHlOYW1lO2xldCBpPWUucHJvcGVydHlJbmRleDtpZih0fHwodD1vdXQuZmluZE5vZGUodGhpcy5yb290Tm9kZSxlLm5vZGVOYW1lKXx8dGhpcy5yb290Tm9kZSx0aGlzLm5vZGU9dCksdGhpcy5nZXRWYWx1ZT10aGlzLl9nZXRWYWx1ZV91bmF2YWlsYWJsZSx0aGlzLnNldFZhbHVlPXRoaXMuX3NldFZhbHVlX3VuYXZhaWxhYmxlLCF0KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogVHJ5aW5nIHRvIHVwZGF0ZSBub2RlIGZvciB0cmFjazogIit0aGlzLnBhdGgrIiBidXQgaXQgd2Fzbid0IGZvdW5kLiIpO2lmKG4pe2xldCBvPWUub2JqZWN0SW5kZXg7c3dpdGNoKG4pe2Nhc2UibWF0ZXJpYWxzIjppZighdC5tYXRlcmlhbClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtYXRlcmlhbCBhcyBub2RlIGRvZXMgbm90IGhhdmUgYSBtYXRlcmlhbC4iLHRoaXMpO2lmKCF0Lm1hdGVyaWFsLm1hdGVyaWFscylyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtYXRlcmlhbC5tYXRlcmlhbHMgYXMgbm9kZS5tYXRlcmlhbCBkb2VzIG5vdCBoYXZlIGEgbWF0ZXJpYWxzIGFycmF5LiIsdGhpcyk7dD10Lm1hdGVyaWFsLm1hdGVyaWFsczticmVhaztjYXNlImJvbmVzIjppZighdC5za2VsZXRvbilyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBib25lcyBhcyBub2RlIGRvZXMgbm90IGhhdmUgYSBza2VsZXRvbi4iLHRoaXMpO3Q9dC5za2VsZXRvbi5ib25lcztmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpZih0W2VdLm5hbWU9PT1vKXtvPWU7YnJlYWt9YnJlYWs7ZGVmYXVsdDppZih2b2lkIDA9PT10W25dKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG9iamVjdE5hbWUgb2Ygbm9kZSB1bmRlZmluZWQuIix0aGlzKTt0PXRbbl19aWYodm9pZCAwIT09byl7aWYodm9pZCAwPT09dFtvXSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IFRyeWluZyB0byBiaW5kIHRvIG9iamVjdEluZGV4IG9mIG9iamVjdE5hbWUsIGJ1dCBpcyB1bmRlZmluZWQuIix0aGlzLHQpO3Q9dFtvXX19Y29uc3QgYT10W29dO2lmKHZvaWQgMD09PWEpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBUcnlpbmcgdG8gdXBkYXRlIHByb3BlcnR5IGZvciB0cmFjazogIitlLm5vZGVOYW1lKyIuIitvKyIgYnV0IGl0IHdhc24ndCBmb3VuZC4iLHQpO2xldCByPXRoaXMuVmVyc2lvbmluZy5Ob25lO3RoaXMudGFyZ2V0T2JqZWN0PXQsdm9pZCAwIT09dC5uZWVkc1VwZGF0ZT9yPXRoaXMuVmVyc2lvbmluZy5OZWVkc1VwZGF0ZTp2b2lkIDAhPT10Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGUmJihyPXRoaXMuVmVyc2lvbmluZy5NYXRyaXhXb3JsZE5lZWRzVXBkYXRlKTtsZXQgcz10aGlzLkJpbmRpbmdUeXBlLkRpcmVjdDtpZih2b2lkIDAhPT1pKXtpZigibW9ycGhUYXJnZXRJbmZsdWVuY2VzIj09PW8pe2lmKCF0Lmdlb21ldHJ5KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG1vcnBoVGFyZ2V0SW5mbHVlbmNlcyBiZWNhdXNlIG5vZGUgZG9lcyBub3QgaGF2ZSBhIGdlb21ldHJ5LiIsdGhpcyk7aWYoIXQuZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtb3JwaFRhcmdldEluZmx1ZW5jZXMgb24gVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIsdGhpcyk7aWYoIXQuZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG1vcnBoVGFyZ2V0SW5mbHVlbmNlcyBiZWNhdXNlIG5vZGUgZG9lcyBub3QgaGF2ZSBhIGdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy4iLHRoaXMpO3ZvaWQgMCE9PXQubW9ycGhUYXJnZXREaWN0aW9uYXJ5W2ldJiYoaT10Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtpXSl9cz10aGlzLkJpbmRpbmdUeXBlLkFycmF5RWxlbWVudCx0aGlzLnJlc29sdmVkUHJvcGVydHk9YSx0aGlzLnByb3BlcnR5SW5kZXg9aX1lbHNlIHZvaWQgMCE9PWEuZnJvbUFycmF5JiZ2b2lkIDAhPT1hLnRvQXJyYXk/KHM9dGhpcy5CaW5kaW5nVHlwZS5IYXNGcm9tVG9BcnJheSx0aGlzLnJlc29sdmVkUHJvcGVydHk9YSk6QXJyYXkuaXNBcnJheShhKT8ocz10aGlzLkJpbmRpbmdUeXBlLkVudGlyZUFycmF5LHRoaXMucmVzb2x2ZWRQcm9wZXJ0eT1hKTp0aGlzLnByb3BlcnR5TmFtZT1vO3RoaXMuZ2V0VmFsdWU9dGhpcy5HZXR0ZXJCeUJpbmRpbmdUeXBlW3NdLHRoaXMuc2V0VmFsdWU9dGhpcy5TZXR0ZXJCeUJpbmRpbmdUeXBlQW5kVmVyc2lvbmluZ1tzXVtyXX11bmJpbmQoKXt0aGlzLm5vZGU9bnVsbCx0aGlzLmdldFZhbHVlPXRoaXMuX2dldFZhbHVlX3VuYm91bmQsdGhpcy5zZXRWYWx1ZT10aGlzLl9zZXRWYWx1ZV91bmJvdW5kfX1vdXQuQ29tcG9zaXRlPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxuKXtjb25zdCBvPW58fG91dC5wYXJzZVRyYWNrTmFtZShlKTt0aGlzLl90YXJnZXRHcm91cD10LHRoaXMuX2JpbmRpbmdzPXQuc3Vic2NyaWJlXyhlLG8pfWdldFZhbHVlKHQsZSl7dGhpcy5iaW5kKCk7Y29uc3Qgbj10aGlzLl9iaW5kaW5nc1t0aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c19dO3ZvaWQgMCE9PW4mJm4uZ2V0VmFsdWUodCxlKX1zZXRWYWx1ZSh0LGUpe2NvbnN0IG49dGhpcy5fYmluZGluZ3M7Zm9yKGxldCBvPXRoaXMuX3RhcmdldEdyb3VwLm5DYWNoZWRPYmplY3RzXyxpPW4ubGVuZ3RoO28hPT1pOysrbyluW29dLnNldFZhbHVlKHQsZSl9YmluZCgpe2NvbnN0IHQ9dGhpcy5fYmluZGluZ3M7Zm9yKGxldCBlPXRoaXMuX3RhcmdldEdyb3VwLm5DYWNoZWRPYmplY3RzXyxuPXQubGVuZ3RoO2UhPT1uOysrZSl0W2VdLmJpbmQoKX11bmJpbmQoKXtjb25zdCB0PXRoaXMuX2JpbmRpbmdzO2ZvcihsZXQgZT10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18sbj10Lmxlbmd0aDtlIT09bjsrK2UpdFtlXS51bmJpbmQoKX19LG91dC5wcm90b3R5cGUuQmluZGluZ1R5cGU9e0RpcmVjdDowLEVudGlyZUFycmF5OjEsQXJyYXlFbGVtZW50OjIsSGFzRnJvbVRvQXJyYXk6M30sb3V0LnByb3RvdHlwZS5WZXJzaW9uaW5nPXtOb25lOjAsTmVlZHNVcGRhdGU6MSxNYXRyaXhXb3JsZE5lZWRzVXBkYXRlOjJ9LG91dC5wcm90b3R5cGUuR2V0dGVyQnlCaW5kaW5nVHlwZT1bb3V0LnByb3RvdHlwZS5fZ2V0VmFsdWVfZGlyZWN0LG91dC5wcm90b3R5cGUuX2dldFZhbHVlX2FycmF5LG91dC5wcm90b3R5cGUuX2dldFZhbHVlX2FycmF5RWxlbWVudCxvdXQucHJvdG90eXBlLl9nZXRWYWx1ZV90b0FycmF5XSxvdXQucHJvdG90eXBlLlNldHRlckJ5QmluZGluZ1R5cGVBbmRWZXJzaW9uaW5nPVtbb3V0LnByb3RvdHlwZS5fc2V0VmFsdWVfZGlyZWN0LG91dC5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdF9zZXROZWVkc1VwZGF0ZSxvdXQucHJvdG90eXBlLl9zZXRWYWx1ZV9kaXJlY3Rfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZV0sW291dC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5LG91dC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5X3NldE5lZWRzVXBkYXRlLG91dC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdLFtvdXQucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheUVsZW1lbnQsb3V0LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE5lZWRzVXBkYXRlLG91dC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5RWxlbWVudF9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXSxbb3V0LnByb3RvdHlwZS5fc2V0VmFsdWVfZnJvbUFycmF5LG91dC5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheV9zZXROZWVkc1VwZGF0ZSxvdXQucHJvdG90eXBlLl9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZV1dO2NsYXNzIGl1dHtjb25zdHJ1Y3Rvcih0LGUsbj1udWxsLG89ZS5ibGVuZE1vZGUpe3RoaXMuX21peGVyPXQsdGhpcy5fY2xpcD1lLHRoaXMuX2xvY2FsUm9vdD1uLHRoaXMuYmxlbmRNb2RlPW87Y29uc3QgaT1lLnRyYWNrcyxhPWkubGVuZ3RoLHI9bmV3IEFycmF5KGEpLHM9e2VuZGluZ1N0YXJ0OkFpdCxlbmRpbmdFbmQ6QWl0fTtmb3IobGV0IHQ9MDt0IT09YTsrK3Qpe2NvbnN0IGU9aVt0XS5jcmVhdGVJbnRlcnBvbGFudChudWxsKTtyW3RdPWUsZS5zZXR0aW5ncz1zfXRoaXMuX2ludGVycG9sYW50U2V0dGluZ3M9cyx0aGlzLl9pbnRlcnBvbGFudHM9cix0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzPW5ldyBBcnJheShhKSx0aGlzLl9jYWNoZUluZGV4PW51bGwsdGhpcy5fYnlDbGlwQ2FjaGVJbmRleD1udWxsLHRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50PW51bGwsdGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ9bnVsbCx0aGlzLmxvb3A9MjIwMSx0aGlzLl9sb29wQ291bnQ9LTEsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy50aW1lPTAsdGhpcy50aW1lU2NhbGU9MSx0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9MSx0aGlzLndlaWdodD0xLHRoaXMuX2VmZmVjdGl2ZVdlaWdodD0xLHRoaXMucmVwZXRpdGlvbnM9MS8wLHRoaXMucGF1c2VkPSExLHRoaXMuZW5hYmxlZD0hMCx0aGlzLmNsYW1wV2hlbkZpbmlzaGVkPSExLHRoaXMuemVyb1Nsb3BlQXRTdGFydD0hMCx0aGlzLnplcm9TbG9wZUF0RW5kPSEwfXBsYXkoKXtyZXR1cm4gdGhpcy5fbWl4ZXIuX2FjdGl2YXRlQWN0aW9uKHRoaXMpLHRoaXN9c3RvcCgpe3JldHVybiB0aGlzLl9taXhlci5fZGVhY3RpdmF0ZUFjdGlvbih0aGlzKSx0aGlzLnJlc2V0KCl9cmVzZXQoKXtyZXR1cm4gdGhpcy5wYXVzZWQ9ITEsdGhpcy5lbmFibGVkPSEwLHRoaXMudGltZT0wLHRoaXMuX2xvb3BDb3VudD0tMSx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLnN0b3BGYWRpbmcoKS5zdG9wV2FycGluZygpfWlzUnVubmluZygpe3JldHVybiB0aGlzLmVuYWJsZWQmJiF0aGlzLnBhdXNlZCYmMCE9PXRoaXMudGltZVNjYWxlJiZudWxsPT09dGhpcy5fc3RhcnRUaW1lJiZ0aGlzLl9taXhlci5faXNBY3RpdmVBY3Rpb24odGhpcyl9aXNTY2hlZHVsZWQoKXtyZXR1cm4gdGhpcy5fbWl4ZXIuX2lzQWN0aXZlQWN0aW9uKHRoaXMpfXN0YXJ0QXQodCl7cmV0dXJuIHRoaXMuX3N0YXJ0VGltZT10LHRoaXN9c2V0TG9vcCh0LGUpe3JldHVybiB0aGlzLmxvb3A9dCx0aGlzLnJlcGV0aXRpb25zPWUsdGhpc31zZXRFZmZlY3RpdmVXZWlnaHQodCl7cmV0dXJuIHRoaXMud2VpZ2h0PXQsdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PXRoaXMuZW5hYmxlZD90OjAsdGhpcy5zdG9wRmFkaW5nKCl9Z2V0RWZmZWN0aXZlV2VpZ2h0KCl7cmV0dXJuIHRoaXMuX2VmZmVjdGl2ZVdlaWdodH1mYWRlSW4odCl7cmV0dXJuIHRoaXMuX3NjaGVkdWxlRmFkaW5nKHQsMCwxKX1mYWRlT3V0KHQpe3JldHVybiB0aGlzLl9zY2hlZHVsZUZhZGluZyh0LDEsMCl9Y3Jvc3NGYWRlRnJvbSh0LGUsbil7aWYodC5mYWRlT3V0KGUpLHRoaXMuZmFkZUluKGUpLG4pe2NvbnN0IG49dGhpcy5fY2xpcC5kdXJhdGlvbixvPXQuX2NsaXAuZHVyYXRpb24saT1uL287dC53YXJwKDEsby9uLGUpLHRoaXMud2FycChpLDEsZSl9cmV0dXJuIHRoaXN9Y3Jvc3NGYWRlVG8odCxlLG4pe3JldHVybiB0LmNyb3NzRmFkZUZyb20odGhpcyxlLG4pfXN0b3BGYWRpbmcoKXtjb25zdCB0PXRoaXMuX3dlaWdodEludGVycG9sYW50O3JldHVybiBudWxsIT09dCYmKHRoaXMuX3dlaWdodEludGVycG9sYW50PW51bGwsdGhpcy5fbWl4ZXIuX3Rha2VCYWNrQ29udHJvbEludGVycG9sYW50KHQpKSx0aGlzfXNldEVmZmVjdGl2ZVRpbWVTY2FsZSh0KXtyZXR1cm4gdGhpcy50aW1lU2NhbGU9dCx0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9dGhpcy5wYXVzZWQ/MDp0LHRoaXMuc3RvcFdhcnBpbmcoKX1nZXRFZmZlY3RpdmVUaW1lU2NhbGUoKXtyZXR1cm4gdGhpcy5fZWZmZWN0aXZlVGltZVNjYWxlfXNldER1cmF0aW9uKHQpe3JldHVybiB0aGlzLnRpbWVTY2FsZT10aGlzLl9jbGlwLmR1cmF0aW9uL3QsdGhpcy5zdG9wV2FycGluZygpfXN5bmNXaXRoKHQpe3JldHVybiB0aGlzLnRpbWU9dC50aW1lLHRoaXMudGltZVNjYWxlPXQudGltZVNjYWxlLHRoaXMuc3RvcFdhcnBpbmcoKX1oYWx0KHQpe3JldHVybiB0aGlzLndhcnAodGhpcy5fZWZmZWN0aXZlVGltZVNjYWxlLDAsdCl9d2FycCh0LGUsbil7Y29uc3Qgbz10aGlzLl9taXhlcixpPW8udGltZSxhPXRoaXMudGltZVNjYWxlO2xldCByPXRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50O251bGw9PT1yJiYocj1vLl9sZW5kQ29udHJvbEludGVycG9sYW50KCksdGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9cik7Y29uc3Qgcz1yLnBhcmFtZXRlclBvc2l0aW9ucyxsPXIuc2FtcGxlVmFsdWVzO3JldHVybiBzWzBdPWksc1sxXT1pK24sbFswXT10L2EsbFsxXT1lL2EsdGhpc31zdG9wV2FycGluZygpe2NvbnN0IHQ9dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7cmV0dXJuIG51bGwhPT10JiYodGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl9taXhlci5fdGFrZUJhY2tDb250cm9sSW50ZXJwb2xhbnQodCkpLHRoaXN9Z2V0TWl4ZXIoKXtyZXR1cm4gdGhpcy5fbWl4ZXJ9Z2V0Q2xpcCgpe3JldHVybiB0aGlzLl9jbGlwfWdldFJvb3QoKXtyZXR1cm4gdGhpcy5fbG9jYWxSb290fHx0aGlzLl9taXhlci5fcm9vdH1fdXBkYXRlKHQsZSxuLG8pe2lmKCF0aGlzLmVuYWJsZWQpcmV0dXJuIHZvaWQgdGhpcy5fdXBkYXRlV2VpZ2h0KHQpO2NvbnN0IGk9dGhpcy5fc3RhcnRUaW1lO2lmKG51bGwhPT1pKXtjb25zdCBvPSh0LWkpKm47aWYobzwwfHwwPT09bilyZXR1cm47dGhpcy5fc3RhcnRUaW1lPW51bGwsZT1uKm99ZSo9dGhpcy5fdXBkYXRlVGltZVNjYWxlKHQpO2NvbnN0IGE9dGhpcy5fdXBkYXRlVGltZShlKSxyPXRoaXMuX3VwZGF0ZVdlaWdodCh0KTtpZihyPjApe2NvbnN0IHQ9dGhpcy5faW50ZXJwb2xhbnRzLGU9dGhpcy5fcHJvcGVydHlCaW5kaW5ncztzd2l0Y2godGhpcy5ibGVuZE1vZGUpe2Nhc2UgMjUwMTpmb3IobGV0IG49MCxvPXQubGVuZ3RoO24hPT1vOysrbil0W25dLmV2YWx1YXRlKGEpLGVbbl0uYWNjdW11bGF0ZUFkZGl0aXZlKHIpO2JyZWFrO2Nhc2UgMjUwMDpkZWZhdWx0OmZvcihsZXQgbj0wLGk9dC5sZW5ndGg7biE9PWk7KytuKXRbbl0uZXZhbHVhdGUoYSksZVtuXS5hY2N1bXVsYXRlKG8scil9fX1fdXBkYXRlV2VpZ2h0KHQpe2xldCBlPTA7aWYodGhpcy5lbmFibGVkKXtlPXRoaXMud2VpZ2h0O2NvbnN0IG49dGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ7aWYobnVsbCE9PW4pe2NvbnN0IG89bi5ldmFsdWF0ZSh0KVswXTtlKj1vLHQ+bi5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BGYWRpbmcoKSwwPT09byYmKHRoaXMuZW5hYmxlZD0hMSkpfX1yZXR1cm4gdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PWUsZX1fdXBkYXRlVGltZVNjYWxlKHQpe2xldCBlPTA7aWYoIXRoaXMucGF1c2VkKXtlPXRoaXMudGltZVNjYWxlO2NvbnN0IG49dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7bnVsbCE9PW4mJihlKj1uLmV2YWx1YXRlKHQpWzBdLHQ+bi5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BXYXJwaW5nKCksMD09PWU/dGhpcy5wYXVzZWQ9ITA6dGhpcy50aW1lU2NhbGU9ZSkpfXJldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9ZSxlfV91cGRhdGVUaW1lKHQpe2NvbnN0IGU9dGhpcy5fY2xpcC5kdXJhdGlvbixuPXRoaXMubG9vcDtsZXQgbz10aGlzLnRpbWUrdCxpPXRoaXMuX2xvb3BDb3VudDtjb25zdCBhPTIyMDI9PT1uO2lmKDA9PT10KXJldHVybi0xPT09aT9vOmEmJjE9PSgxJmkpP2UtbzpvO2lmKDIyMDA9PT1uKXstMT09PWkmJih0aGlzLl9sb29wQ291bnQ9MCx0aGlzLl9zZXRFbmRpbmdzKCEwLCEwLCExKSk7dDp7aWYobz49ZSlvPWU7ZWxzZXtpZighKG88MCkpe3RoaXMudGltZT1vO2JyZWFrIHR9bz0wfXRoaXMuY2xhbXBXaGVuRmluaXNoZWQ/dGhpcy5wYXVzZWQ9ITA6dGhpcy5lbmFibGVkPSExLHRoaXMudGltZT1vLHRoaXMuX21peGVyLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImZpbmlzaGVkIixhY3Rpb246dGhpcyxkaXJlY3Rpb246dDwwPy0xOjF9KX19ZWxzZXtpZigtMT09PWkmJih0Pj0wPyhpPTAsdGhpcy5fc2V0RW5kaW5ncyghMCwwPT09dGhpcy5yZXBldGl0aW9ucyxhKSk6dGhpcy5fc2V0RW5kaW5ncygwPT09dGhpcy5yZXBldGl0aW9ucywhMCxhKSksbz49ZXx8bzwwKXtjb25zdCBuPU1hdGguZmxvb3Ioby9lKTtvLT1lKm4saSs9TWF0aC5hYnMobik7Y29uc3Qgcj10aGlzLnJlcGV0aXRpb25zLWk7aWYocjw9MCl0aGlzLmNsYW1wV2hlbkZpbmlzaGVkP3RoaXMucGF1c2VkPSEwOnRoaXMuZW5hYmxlZD0hMSxvPXQ+MD9lOjAsdGhpcy50aW1lPW8sdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToiZmluaXNoZWQiLGFjdGlvbjp0aGlzLGRpcmVjdGlvbjp0PjA/MTotMX0pO2Vsc2V7aWYoMT09PXIpe2NvbnN0IGU9dDwwO3RoaXMuX3NldEVuZGluZ3MoZSwhZSxhKX1lbHNlIHRoaXMuX3NldEVuZGluZ3MoITEsITEsYSk7dGhpcy5fbG9vcENvdW50PWksdGhpcy50aW1lPW8sdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToibG9vcCIsYWN0aW9uOnRoaXMsbG9vcERlbHRhOm59KX19ZWxzZSB0aGlzLnRpbWU9bztpZihhJiYxPT0oMSZpKSlyZXR1cm4gZS1vfXJldHVybiBvfV9zZXRFbmRpbmdzKHQsZSxuKXtjb25zdCBvPXRoaXMuX2ludGVycG9sYW50U2V0dGluZ3M7bj8oby5lbmRpbmdTdGFydD1UaXQsby5lbmRpbmdFbmQ9VGl0KTooby5lbmRpbmdTdGFydD10P3RoaXMuemVyb1Nsb3BlQXRTdGFydD9UaXQ6QWl0Ok5pdCxvLmVuZGluZ0VuZD1lP3RoaXMuemVyb1Nsb3BlQXRFbmQ/VGl0OkFpdDpOaXQpfV9zY2hlZHVsZUZhZGluZyh0LGUsbil7Y29uc3Qgbz10aGlzLl9taXhlcixpPW8udGltZTtsZXQgYT10aGlzLl93ZWlnaHRJbnRlcnBvbGFudDtudWxsPT09YSYmKGE9by5fbGVuZENvbnRyb2xJbnRlcnBvbGFudCgpLHRoaXMuX3dlaWdodEludGVycG9sYW50PWEpO2NvbnN0IHI9YS5wYXJhbWV0ZXJQb3NpdGlvbnMscz1hLnNhbXBsZVZhbHVlcztyZXR1cm4gclswXT1pLHNbMF09ZSxyWzFdPWkrdCxzWzFdPW4sdGhpc319KGNsYXNzIGV4dGVuZHMgVWl0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fcm9vdD10LHRoaXMuX2luaXRNZW1vcnlNYW5hZ2VyKCksdGhpcy5fYWNjdUluZGV4PTAsdGhpcy50aW1lPTAsdGhpcy50aW1lU2NhbGU9MX1fYmluZEFjdGlvbih0LGUpe2NvbnN0IG49dC5fbG9jYWxSb290fHx0aGlzLl9yb290LG89dC5fY2xpcC50cmFja3MsaT1vLmxlbmd0aCxhPXQuX3Byb3BlcnR5QmluZGluZ3Mscj10Ll9pbnRlcnBvbGFudHMscz1uLnV1aWQsbD10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWU7bGV0IGM9bFtzXTt2b2lkIDA9PT1jJiYoYz17fSxsW3NdPWMpO2ZvcihsZXQgdD0wO3QhPT1pOysrdCl7Y29uc3QgaT1vW3RdLGw9aS5uYW1lO2xldCBkPWNbbF07aWYodm9pZCAwIT09ZClhW3RdPWQ7ZWxzZXtpZihkPWFbdF0sdm9pZCAwIT09ZCl7bnVsbD09PWQuX2NhY2hlSW5kZXgmJigrK2QucmVmZXJlbmNlQ291bnQsdGhpcy5fYWRkSW5hY3RpdmVCaW5kaW5nKGQscyxsKSk7Y29udGludWV9ZD1uZXcgcW10KG91dC5jcmVhdGUobixsLGUmJmUuX3Byb3BlcnR5QmluZGluZ3NbdF0uYmluZGluZy5wYXJzZWRQYXRoKSxpLlZhbHVlVHlwZU5hbWUsaS5nZXRWYWx1ZVNpemUoKSksKytkLnJlZmVyZW5jZUNvdW50LHRoaXMuX2FkZEluYWN0aXZlQmluZGluZyhkLHMsbCksYVt0XT1kfXJbdF0ucmVzdWx0QnVmZmVyPWQuYnVmZmVyfX1fYWN0aXZhdGVBY3Rpb24odCl7aWYoIXRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtpZihudWxsPT09dC5fY2FjaGVJbmRleCl7Y29uc3QgZT0odC5fbG9jYWxSb290fHx0aGlzLl9yb290KS51dWlkLG49dC5fY2xpcC51dWlkLG89dGhpcy5fYWN0aW9uc0J5Q2xpcFtuXTt0aGlzLl9iaW5kQWN0aW9uKHQsbyYmby5rbm93bkFjdGlvbnNbMF0pLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKHQsbixlKX1jb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT1uLnVzZUNvdW50KysmJih0aGlzLl9sZW5kQmluZGluZyhuKSxuLnNhdmVPcmlnaW5hbFN0YXRlKCkpfXRoaXMuX2xlbmRBY3Rpb24odCl9fV9kZWFjdGl2YXRlQWN0aW9uKHQpe2lmKHRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtjb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT0tLW4udXNlQ291bnQmJihuLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fdGFrZUJhY2tCaW5kaW5nKG4pKX10aGlzLl90YWtlQmFja0FjdGlvbih0KX19X2luaXRNZW1vcnlNYW5hZ2VyKCl7dGhpcy5fYWN0aW9ucz1bXSx0aGlzLl9uQWN0aXZlQWN0aW9ucz0wLHRoaXMuX2FjdGlvbnNCeUNsaXA9e30sdGhpcy5fYmluZGluZ3M9W10sdGhpcy5fbkFjdGl2ZUJpbmRpbmdzPTAsdGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lPXt9LHRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHM9W10sdGhpcy5fbkFjdGl2ZUNvbnRyb2xJbnRlcnBvbGFudHM9MDtjb25zdCB0PXRoaXM7dGhpcy5zdGF0cz17YWN0aW9uczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2FjdGlvbnMubGVuZ3RofSxnZXQgaW5Vc2UoKXtyZXR1cm4gdC5fbkFjdGl2ZUFjdGlvbnN9fSxiaW5kaW5nczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2JpbmRpbmdzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVCaW5kaW5nc319LGNvbnRyb2xJbnRlcnBvbGFudHM6e2dldCB0b3RhbCgpe3JldHVybiB0Ll9jb250cm9sSW50ZXJwb2xhbnRzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVDb250cm9sSW50ZXJwb2xhbnRzfX19fV9pc0FjdGl2ZUFjdGlvbih0KXtjb25zdCBlPXQuX2NhY2hlSW5kZXg7cmV0dXJuIG51bGwhPT1lJiZlPHRoaXMuX25BY3RpdmVBY3Rpb25zfV9hZGRJbmFjdGl2ZUFjdGlvbih0LGUsbil7Y29uc3Qgbz10aGlzLl9hY3Rpb25zLGk9dGhpcy5fYWN0aW9uc0J5Q2xpcDtsZXQgYT1pW2VdO2lmKHZvaWQgMD09PWEpYT17a25vd25BY3Rpb25zOlt0XSxhY3Rpb25CeVJvb3Q6e319LHQuX2J5Q2xpcENhY2hlSW5kZXg9MCxpW2VdPWE7ZWxzZXtjb25zdCBlPWEua25vd25BY3Rpb25zO3QuX2J5Q2xpcENhY2hlSW5kZXg9ZS5sZW5ndGgsZS5wdXNoKHQpfXQuX2NhY2hlSW5kZXg9by5sZW5ndGgsby5wdXNoKHQpLGEuYWN0aW9uQnlSb290W25dPXR9X3JlbW92ZUluYWN0aXZlQWN0aW9uKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPWVbZS5sZW5ndGgtMV0sbz10Ll9jYWNoZUluZGV4O24uX2NhY2hlSW5kZXg9byxlW29dPW4sZS5wb3AoKSx0Ll9jYWNoZUluZGV4PW51bGw7Y29uc3QgaT10Ll9jbGlwLnV1aWQsYT10aGlzLl9hY3Rpb25zQnlDbGlwLHI9YVtpXSxzPXIua25vd25BY3Rpb25zLGw9c1tzLmxlbmd0aC0xXSxjPXQuX2J5Q2xpcENhY2hlSW5kZXg7bC5fYnlDbGlwQ2FjaGVJbmRleD1jLHNbY109bCxzLnBvcCgpLHQuX2J5Q2xpcENhY2hlSW5kZXg9bnVsbCxkZWxldGUgci5hY3Rpb25CeVJvb3RbKHQuX2xvY2FsUm9vdHx8dGhpcy5fcm9vdCkudXVpZF0sMD09PXMubGVuZ3RoJiZkZWxldGUgYVtpXSx0aGlzLl9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpfV9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpe2NvbnN0IGU9dC5fcHJvcGVydHlCaW5kaW5ncztmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3QhPT1uOysrdCl7Y29uc3Qgbj1lW3RdOzA9PS0tbi5yZWZlcmVuY2VDb3VudCYmdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKG4pfX1fbGVuZEFjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LG89dGhpcy5fbkFjdGl2ZUFjdGlvbnMrKyxpPWVbb107dC5fY2FjaGVJbmRleD1vLGVbb109dCxpLl9jYWNoZUluZGV4PW4sZVtuXT1pfV90YWtlQmFja0FjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LG89LS10aGlzLl9uQWN0aXZlQWN0aW9ucyxpPWVbb107dC5fY2FjaGVJbmRleD1vLGVbb109dCxpLl9jYWNoZUluZGV4PW4sZVtuXT1pfV9hZGRJbmFjdGl2ZUJpbmRpbmcodCxlLG4pe2NvbnN0IG89dGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lLGk9dGhpcy5fYmluZGluZ3M7bGV0IGE9b1tlXTt2b2lkIDA9PT1hJiYoYT17fSxvW2VdPWEpLGFbbl09dCx0Ll9jYWNoZUluZGV4PWkubGVuZ3RoLGkucHVzaCh0KX1fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKHQpe2NvbnN0IGU9dGhpcy5fYmluZGluZ3Msbj10LmJpbmRpbmcsbz1uLnJvb3ROb2RlLnV1aWQsaT1uLnBhdGgsYT10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWUscj1hW29dLHM9ZVtlLmxlbmd0aC0xXSxsPXQuX2NhY2hlSW5kZXg7cy5fY2FjaGVJbmRleD1sLGVbbF09cyxlLnBvcCgpLGRlbGV0ZSByW2ldLDA9PT1PYmplY3Qua2V5cyhyKS5sZW5ndGgmJmRlbGV0ZSBhW29dfV9sZW5kQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxvPXRoaXMuX25BY3RpdmVCaW5kaW5ncysrLGk9ZVtvXTt0Ll9jYWNoZUluZGV4PW8sZVtvXT10LGkuX2NhY2hlSW5kZXg9bixlW25dPWl9X3Rha2VCYWNrQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxvPS0tdGhpcy5fbkFjdGl2ZUJpbmRpbmdzLGk9ZVtvXTt0Ll9jYWNoZUluZGV4PW8sZVtvXT10LGkuX2NhY2hlSW5kZXg9bixlW25dPWl9X2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKXtjb25zdCB0PXRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHMsZT10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cysrO2xldCBuPXRbZV07cmV0dXJuIHZvaWQgMD09PW4mJihuPW5ldyBjbXQobmV3IEZsb2F0MzJBcnJheSgyKSxuZXcgRmxvYXQzMkFycmF5KDIpLDEsdGhpcy5fY29udHJvbEludGVycG9sYW50c1Jlc3VsdEJ1ZmZlciksbi5fX2NhY2hlSW5kZXg9ZSx0W2VdPW4pLG59X3Rha2VCYWNrQ29udHJvbEludGVycG9sYW50KHQpe2NvbnN0IGU9dGhpcy5fY29udHJvbEludGVycG9sYW50cyxuPXQuX19jYWNoZUluZGV4LG89LS10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cyxpPWVbb107dC5fX2NhY2hlSW5kZXg9byxlW29dPXQsaS5fX2NhY2hlSW5kZXg9bixlW25dPWl9Y2xpcEFjdGlvbih0LGUsbil7Y29uc3Qgbz1lfHx0aGlzLl9yb290LGk9by51dWlkO2xldCBhPSJzdHJpbmciPT10eXBlb2YgdD9fbXQuZmluZEJ5TmFtZShvLHQpOnQ7Y29uc3Qgcj1udWxsIT09YT9hLnV1aWQ6dCxzPXRoaXMuX2FjdGlvbnNCeUNsaXBbcl07bGV0IGw9bnVsbDtpZih2b2lkIDA9PT1uJiYobj1udWxsIT09YT9hLmJsZW5kTW9kZToyNTAwKSx2b2lkIDAhPT1zKXtjb25zdCB0PXMuYWN0aW9uQnlSb290W2ldO2lmKHZvaWQgMCE9PXQmJnQuYmxlbmRNb2RlPT09bilyZXR1cm4gdDtsPXMua25vd25BY3Rpb25zWzBdLG51bGw9PT1hJiYoYT1sLl9jbGlwKX1pZihudWxsPT09YSlyZXR1cm4gbnVsbDtjb25zdCBjPW5ldyBpdXQodGhpcyxhLGUsbik7cmV0dXJuIHRoaXMuX2JpbmRBY3Rpb24oYyxsKSx0aGlzLl9hZGRJbmFjdGl2ZUFjdGlvbihjLHIsaSksY31leGlzdGluZ0FjdGlvbih0LGUpe2NvbnN0IG49ZXx8dGhpcy5fcm9vdCxvPW4udXVpZCxpPSJzdHJpbmciPT10eXBlb2YgdD9fbXQuZmluZEJ5TmFtZShuLHQpOnQsYT10aGlzLl9hY3Rpb25zQnlDbGlwW2k/aS51dWlkOnRdO3JldHVybiB2b2lkIDAhPT1hJiZhLmFjdGlvbkJ5Um9vdFtvXXx8bnVsbH1zdG9wQWxsQWN0aW9uKCl7Y29uc3QgdD10aGlzLl9hY3Rpb25zO2ZvcihsZXQgZT10aGlzLl9uQWN0aXZlQWN0aW9ucy0xO2U+PTA7LS1lKXRbZV0uc3RvcCgpO3JldHVybiB0aGlzfXVwZGF0ZSh0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10aGlzLl9uQWN0aXZlQWN0aW9ucyxvPXRoaXMudGltZSs9dCo9dGhpcy50aW1lU2NhbGUsaT1NYXRoLnNpZ24odCksYT10aGlzLl9hY2N1SW5kZXhePTE7Zm9yKGxldCByPTA7ciE9PW47KytyKWVbcl0uX3VwZGF0ZShvLHQsaSxhKTtjb25zdCByPXRoaXMuX2JpbmRpbmdzLHM9dGhpcy5fbkFjdGl2ZUJpbmRpbmdzO2ZvcihsZXQgdD0wO3QhPT1zOysrdClyW3RdLmFwcGx5KGEpO3JldHVybiB0aGlzfXNldFRpbWUodCl7dGhpcy50aW1lPTA7Zm9yKGxldCB0PTA7dDx0aGlzLl9hY3Rpb25zLmxlbmd0aDt0KyspdGhpcy5fYWN0aW9uc1t0XS50aW1lPTA7cmV0dXJuIHRoaXMudXBkYXRlKHQpfWdldFJvb3QoKXtyZXR1cm4gdGhpcy5fcm9vdH11bmNhY2hlQ2xpcCh0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10LnV1aWQsbz10aGlzLl9hY3Rpb25zQnlDbGlwLGk9b1tuXTtpZih2b2lkIDAhPT1pKXtjb25zdCB0PWkua25vd25BY3Rpb25zO2ZvcihsZXQgbj0wLG89dC5sZW5ndGg7biE9PW87KytuKXtjb25zdCBvPXRbbl07dGhpcy5fZGVhY3RpdmF0ZUFjdGlvbihvKTtjb25zdCBpPW8uX2NhY2hlSW5kZXgsYT1lW2UubGVuZ3RoLTFdO28uX2NhY2hlSW5kZXg9bnVsbCxvLl9ieUNsaXBDYWNoZUluZGV4PW51bGwsYS5fY2FjaGVJbmRleD1pLGVbaV09YSxlLnBvcCgpLHRoaXMuX3JlbW92ZUluYWN0aXZlQmluZGluZ3NGb3JBY3Rpb24obyl9ZGVsZXRlIG9bbl19fXVuY2FjaGVSb290KHQpe2NvbnN0IGU9dC51dWlkLG49dGhpcy5fYWN0aW9uc0J5Q2xpcDtmb3IoY29uc3QgdCBpbiBuKXtjb25zdCBvPW5bdF0uYWN0aW9uQnlSb290W2VdO3ZvaWQgMCE9PW8mJih0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKG8pLHRoaXMuX3JlbW92ZUluYWN0aXZlQWN0aW9uKG8pKX1jb25zdCBvPXRoaXMuX2JpbmRpbmdzQnlSb290QW5kTmFtZVtlXTtpZih2b2lkIDAhPT1vKWZvcihjb25zdCB0IGluIG8pe2NvbnN0IGU9b1t0XTtlLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKGUpfX11bmNhY2hlQWN0aW9uKHQsZSl7Y29uc3Qgbj10aGlzLmV4aXN0aW5nQWN0aW9uKHQsZSk7bnVsbCE9PW4mJih0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKG4pLHRoaXMuX3JlbW92ZUluYWN0aXZlQWN0aW9uKG4pKX19KS5wcm90b3R5cGUuX2NvbnRyb2xJbnRlcnBvbGFudHNSZXN1bHRCdWZmZXI9bmV3IEZsb2F0MzJBcnJheSgxKSxjbGFzcyBleHRlbmRzIF9kdHtjb25zdHJ1Y3Rvcih0LGUsbj0xKXtzdXBlcih0LGUpLHRoaXMubWVzaFBlckF0dHJpYnV0ZT1ufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tZXNoUGVyQXR0cmlidXRlPXQubWVzaFBlckF0dHJpYnV0ZSx0aGlzfWNsb25lKHQpe2NvbnN0IGU9c3VwZXIuY2xvbmUodCk7cmV0dXJuIGUubWVzaFBlckF0dHJpYnV0ZT10aGlzLm1lc2hQZXJBdHRyaWJ1dGUsZX10b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMCxlLm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLGV9fS5wcm90b3R5cGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMCxjbGFzcyBleHRlbmRzIHBydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMubWF0ZXJpYWw9dCx0aGlzLnJlbmRlcj1mdW5jdGlvbigpe30sdGhpcy5oYXNQb3NpdGlvbnM9ITEsdGhpcy5oYXNOb3JtYWxzPSExLHRoaXMuaGFzQ29sb3JzPSExLHRoaXMuaGFzVXZzPSExLHRoaXMucG9zaXRpb25BcnJheT1udWxsLHRoaXMubm9ybWFsQXJyYXk9bnVsbCx0aGlzLmNvbG9yQXJyYXk9bnVsbCx0aGlzLnV2QXJyYXk9bnVsbCx0aGlzLmNvdW50PTB9fS5wcm90b3R5cGUuaXNJbW1lZGlhdGVSZW5kZXJPYmplY3Q9ITA7Y29uc3QgYXV0PW5ldyBjYXQscnV0PW5ldyBCYXQsc3V0PW5ldyBCYXQ7ZnVuY3Rpb24gbHV0KHQpe2NvbnN0IGU9W107dCYmdC5pc0JvbmUmJmUucHVzaCh0KTtmb3IobGV0IG49MDtuPHQuY2hpbGRyZW4ubGVuZ3RoO24rKyllLnB1c2guYXBwbHkoZSxsdXQodC5jaGlsZHJlbltuXSkpO3JldHVybiBlfWNvbnN0IGN1dD1uZXcgRmxvYXQzMkFycmF5KDEpO2Z1bmN0aW9uIGR1dCh0LGUsbil7aWYoMT09PW4pcmV0dXJuIG5ldyBScnQoZSk7Y29uc3Qgbz1kNyhlKTtpZighbyl0aHJvdyBuZXcgRXJyb3IoYGQzIGZhaWxlZCB0byByZWNvZ25pemUgdGhlIGNvbG9yOiAke2V9YCk7cmV0dXJuIG5ldyBScnQoZDgobyx0KSgxLW4pKX12YXIgcHV0LG11dCx1dXQsZnV0O2Z1bmN0aW9uIGd1dCh0LGUpe2NvbnN0IG49ZS5sZW5ndGgvMjtsZXQgbz10LmF0dHJpYnV0ZXMucG9zaXRpb247byYmby5jb3VudD09PTMqbnx8KG89bmV3IHpydChuZXcgRmxvYXQzMkFycmF5KDMqbiksMyksdC5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixvKSk7Y29uc3QgaT1vLmFycmF5O2ZvcihsZXQgdD0wO3Q8bjt0KyspaVszKnRdPWVbMip0XSxpWzMqdCsxXT1lWzIqdCsxXTtvLm5lZWRzVXBkYXRlPSEwLHQuc2V0RHJhd1JhbmdlKDAsMypuKSx0LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpfWZ1bmN0aW9uIGh1dCh0LGUsbil7Y29uc3Qgbz1NYXRoLm1heChlLmxlbmd0aC8yLTEsMCksaT0yKm8qMyxhPTMqaTtsZXQgcj10LmF0dHJpYnV0ZXMucG9zaXRpb247ciYmci5jb3VudD09PWl8fChyPW5ldyB6cnQobmV3IEZsb2F0MzJBcnJheShhKSwzKSx0LnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLHIpKTtjb25zdCBzPXIuYXJyYXk7Zm9yKGxldCB0PTA7dDxvO3QrKyl7Y29uc3RbbyxpLGEscl09W2VbMip0XSxlWzIqdCsxXSxlWzIqdCsyXSxlWzIqdCszXV0sbD1uZXcgUWl0KG8saSksYz1uZXcgUWl0KGEsciksZD1uZXcgUWl0KGEtbyxyLWkpLHA9bmV3IFFpdCgtZC55LGQueCkuc2V0TGVuZ3RoKG4vMiksbT1sLmNsb25lKCkuYWRkKHApLHU9bC5jbG9uZSgpLnN1YihwKSxmPWMuY2xvbmUoKS5hZGQocCksZz1jLmNsb25lKCkuc3ViKHApLGg9W20ueCxtLnksMCx1LngsdS55LDAsZi54LGYueSwwLGYueCxmLnksMCx1LngsdS55LDAsZy54LGcueSwwXTtzLnNldChoLHQqaC5sZW5ndGgpfXIubmVlZHNVcGRhdGU9ITAsdC5zZXREcmF3UmFuZ2UoMCxhKSx0LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpfWZ1bmN0aW9uIGJ1dCh0LGUsbixvKXtjb25zdHt2aXNpYmxlOmksY29sb3I6YSxvcGFjaXR5OnJ9PW87aWYoQXJyYXkuaXNBcnJheShlLm1hdGVyaWFsKSl0aHJvdyBuZXcgRXJyb3IoIkludmFyaWFudCBlcnJvcjogb25seSBleHBlY3Qgb25lIG1hdGVyaWFsIG9uIGFuIG9iamVjdCIpO2NvbnN0IHM9ZS5tYXRlcmlhbDtpZihzLnZpc2libGUhPT1pJiYocy52aXNpYmxlPWkscy5uZWVkc1VwZGF0ZT0hMCksIWkpcmV0dXJuITE7Y29uc3QgbD1kdXQodCxhLG51bGwhPXI/cjoxKSxjPW4oZS5nZW9tZXRyeSk7cmV0dXJuIGUuZ2VvbWV0cnkhPT1jJiYoZS5nZW9tZXRyeT1jKSxzLmNvbG9yLmVxdWFscyhsKXx8KHMuY29sb3Iuc2V0KGwpLHMubmVlZHNVcGRhdGU9ITApLCEwfW5ldyBJbnQzMkFycmF5KGN1dC5idWZmZXIpLGRwdC5jcmVhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS5sb2coIlRIUkVFLkN1cnZlLmNyZWF0ZSgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQiKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGRwdC5wcm90b3R5cGUpLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQsdC5wcm90b3R5cGUuZ2V0UG9pbnQ9ZSx0fSxFbXQucHJvdG90eXBlLmZyb21Qb2ludHM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUGF0aDogLmZyb21Qb2ludHMoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tUG9pbnRzKCkuIiksdGhpcy5zZXRGcm9tUG9pbnRzKHQpfSxjbGFzcyBleHRlbmRzIG5wdHtjb25zdHJ1Y3Rvcih0PTEwLGU9MTAsbj00NDczOTI0LG89ODk0Nzg0OCl7bj1uZXcgUnJ0KG4pLG89bmV3IFJydChvKTtjb25zdCBpPWUvMixhPXQvZSxyPXQvMixzPVtdLGw9W107Zm9yKGxldCB0PTAsYz0wLGQ9LXI7dDw9ZTt0KyssZCs9YSl7cy5wdXNoKC1yLDAsZCxyLDAsZCkscy5wdXNoKGQsMCwtcixkLDAscik7Y29uc3QgZT10PT09aT9uOm87ZS50b0FycmF5KGwsYyksYys9MyxlLnRvQXJyYXkobCxjKSxjKz0zLGUudG9BcnJheShsLGMpLGMrPTMsZS50b0FycmF5KGwsYyksYys9M31jb25zdCBjPW5ldyBxcnQ7Yy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgRnJ0KHMsMykpLGMuc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IEZydChsLDMpKSxzdXBlcihjLG5ldyBxZHQoe3ZlcnRleENvbG9yczohMCx0b25lTWFwcGVkOiExfSkpLHRoaXMudHlwZT0iR3JpZEhlbHBlciJ9fS5wcm90b3R5cGUuc2V0Q29sb3JzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuR3JpZEhlbHBlcjogc2V0Q29sb3JzKCkgaGFzIGJlZW4gZGVwcmVjYXRlZCwgcGFzcyB0aGVtIGluIHRoZSBjb25zdHJ1Y3RvciBpbnN0ZWFkLiIpfSxjbGFzcyBleHRlbmRzIG5wdHtjb25zdHJ1Y3Rvcih0KXtjb25zdCBlPWx1dCh0KSxuPW5ldyBxcnQsbz1bXSxpPVtdLGE9bmV3IFJydCgwLDAsMSkscj1uZXcgUnJ0KDAsMSwwKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdO24ucGFyZW50JiZuLnBhcmVudC5pc0JvbmUmJihvLnB1c2goMCwwLDApLG8ucHVzaCgwLDAsMCksaS5wdXNoKGEucixhLmcsYS5iKSxpLnB1c2goci5yLHIuZyxyLmIpKX1uLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBGcnQobywzKSksbi5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgRnJ0KGksMykpLHN1cGVyKG4sbmV3IHFkdCh7dmVydGV4Q29sb3JzOiEwLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExLHRvbmVNYXBwZWQ6ITEsdHJhbnNwYXJlbnQ6ITB9KSksdGhpcy50eXBlPSJTa2VsZXRvbkhlbHBlciIsdGhpcy5pc1NrZWxldG9uSGVscGVyPSEwLHRoaXMucm9vdD10LHRoaXMuYm9uZXM9ZSx0aGlzLm1hdHJpeD10Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4QXV0b1VwZGF0ZT0hMX11cGRhdGVNYXRyaXhXb3JsZCh0KXtjb25zdCBlPXRoaXMuYm9uZXMsbj10aGlzLmdlb21ldHJ5LG89bi5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIik7c3V0LmNvcHkodGhpcy5yb290Lm1hdHJpeFdvcmxkKS5pbnZlcnQoKTtmb3IobGV0IHQ9MCxuPTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IGk9ZVt0XTtpLnBhcmVudCYmaS5wYXJlbnQuaXNCb25lJiYocnV0Lm11bHRpcGx5TWF0cmljZXMoc3V0LGkubWF0cml4V29ybGQpLGF1dC5zZXRGcm9tTWF0cml4UG9zaXRpb24ocnV0KSxvLnNldFhZWihuLGF1dC54LGF1dC55LGF1dC56KSxydXQubXVsdGlwbHlNYXRyaWNlcyhzdXQsaS5wYXJlbnQubWF0cml4V29ybGQpLGF1dC5zZXRGcm9tTWF0cml4UG9zaXRpb24ocnV0KSxvLnNldFhZWihuKzEsYXV0LngsYXV0LnksYXV0LnopLG4rPTIpfW4uZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpLm5lZWRzVXBkYXRlPSEwLHN1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpfX0ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNrZWxldG9uSGVscGVyOiB1cGRhdGUoKSBubyBsb25nZXIgbmVlZHMgdG8gYmUgY2FsbGVkLiIpfSx4bXQucHJvdG90eXBlLmV4dHJhY3RVcmxCYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkxvYWRlcjogLmV4dHJhY3RVcmxCYXNlKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkxvYWRlclV0aWxzLmV4dHJhY3RVcmxCYXNlKCkgaW5zdGVhZC4iKSxjbGFzc3tzdGF0aWMgZGVjb2RlVGV4dCh0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFRleHREZWNvZGVyKXJldHVybihuZXcgVGV4dERlY29kZXIpLmRlY29kZSh0KTtsZXQgZT0iIjtmb3IobGV0IG49MCxvPXQubGVuZ3RoO248bztuKyspZSs9U3RyaW5nLmZyb21DaGFyQ29kZSh0W25dKTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoZSkpfWNhdGNoKHQpe3JldHVybiBlfX1zdGF0aWMgZXh0cmFjdFVybEJhc2UodCl7Y29uc3QgZT10Lmxhc3RJbmRleE9mKCIvIik7cmV0dXJuLTE9PT1lPyIuLyI6dC5zdWJzdHIoMCxlKzEpfX0uZXh0cmFjdFVybEJhc2UodCl9LHhtdC5IYW5kbGVycz17YWRkOmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTG9hZGVyOiBIYW5kbGVycy5hZGQoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgTG9hZGluZ01hbmFnZXIuYWRkSGFuZGxlcigpIGluc3RlYWQuIil9LGdldDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkxvYWRlcjogSGFuZGxlcnMuZ2V0KCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIExvYWRpbmdNYW5hZ2VyLmdldEhhbmRsZXIoKSBpbnN0ZWFkLiIpfX0sbWF0LnByb3RvdHlwZS5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmNlbnRlcigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldENlbnRlcigpLiIpLHRoaXMuZ2V0Q2VudGVyKHQpfSxtYXQucHJvdG90eXBlLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmVtcHR5KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaXNFbXB0eSgpLiIpLHRoaXMuaXNFbXB0eSgpfSxtYXQucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5pc0ludGVyc2VjdGlvbkJveCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNCb3goKS4iKSx0aGlzLmludGVyc2VjdHNCb3godCl9LG1hdC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25TcGhlcmU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmlzSW50ZXJzZWN0aW9uU3BoZXJlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c1NwaGVyZSgpLiIpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZSh0KX0sbWF0LnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5zaXplKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0U2l6ZSgpLiIpLHRoaXMuZ2V0U2l6ZSh0KX0sUmF0LnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNwaGVyZTogLmVtcHR5KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaXNFbXB0eSgpLiIpLHRoaXMuaXNFbXB0eSgpfSxFc3QucHJvdG90eXBlLnNldEZyb21NYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuRnJ1c3R1bTogLnNldEZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCgpLiIpLHRoaXMuc2V0RnJvbVByb2plY3Rpb25NYXRyaXgodCl9LCRpdC5wcm90b3R5cGUuZmxhdHRlblRvQXJyYXlPZmZzZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAuZmxhdHRlblRvQXJyYXlPZmZzZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnRvQXJyYXkoKSBpbnN0ZWFkLiIpLHRoaXMudG9BcnJheSh0LGUpfSwkaXQucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDMoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDModGhpcyl9LCRpdC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXgzOiAubXVsdGlwbHlWZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSwkaXQucHJvdG90eXBlLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYXR0cmlidXRlLmFwcGx5TWF0cml4MyggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4Myh0aGlzKX0sJGl0LnByb3RvdHlwZS5hcHBseVRvVmVjdG9yM0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4MzogLmFwcGx5VG9WZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSwkaXQucHJvdG90eXBlLmdldEludmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLmdldEludmVyc2UoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbWF0cml4SW52LmNvcHkoIG1hdHJpeCApLmludmVydCgpOyBpbnN0ZWFkLiIpLHRoaXMuY29weSh0KS5pbnZlcnQoKX0sQmF0LnByb3RvdHlwZS5leHRyYWN0UG9zaXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmV4dHJhY3RQb3NpdGlvbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmNvcHlQb3NpdGlvbigpLiIpLHRoaXMuY29weVBvc2l0aW9uKHQpfSxCYXQucHJvdG90eXBlLmZsYXR0ZW5Ub0FycmF5T2Zmc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmZsYXR0ZW5Ub0FycmF5T2Zmc2V0KCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC50b0FycmF5KCkgaW5zdGVhZC4iKSx0aGlzLnRvQXJyYXkodCxlKX0sQmF0LnByb3RvdHlwZS5nZXRQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5nZXRQb3NpdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBWZWN0b3IzLnNldEZyb21NYXRyaXhQb3NpdGlvbiggbWF0cml4ICkgaW5zdGVhZC4iKSwobmV3IGNhdCkuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDMpfSxCYXQucHJvdG90eXBlLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb249ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbigpLiIpLHRoaXMubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCl9LEJhdC5wcm90b3R5cGUubXVsdGlwbHlUb0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlUb0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sQmF0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm11bHRpcGx5VmVjdG9yMygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB2ZWN0b3IuYXBwbHlNYXRyaXg0KCBtYXRyaXggKSBpbnN0ZWFkLiIpLHQuYXBwbHlNYXRyaXg0KHRoaXMpfSxCYXQucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yND1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3I0KCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDQodGhpcyl9LEJhdC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxCYXQucHJvdG90eXBlLnJvdGF0ZUF4aXM9ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlQXhpcygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBWZWN0b3IzLnRyYW5zZm9ybURpcmVjdGlvbiggbWF0cml4ICkgaW5zdGVhZC4iKSx0LnRyYW5zZm9ybURpcmVjdGlvbih0aGlzKX0sQmF0LnByb3RvdHlwZS5jcm9zc1ZlY3Rvcj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuY3Jvc3NWZWN0b3IoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4NCggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4NCh0aGlzKX0sQmF0LnByb3RvdHlwZS50cmFuc2xhdGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sQmF0LnByb3RvdHlwZS5yb3RhdGVYPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLnJvdGF0ZVgoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxCYXQucHJvdG90eXBlLnJvdGF0ZVk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlWSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LEJhdC5wcm90b3R5cGUucm90YXRlWj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVaKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sQmF0LnByb3RvdHlwZS5yb3RhdGVCeUF4aXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlQnlBeGlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sQmF0LnByb3RvdHlwZS5hcHBseVRvQnVmZmVyQXR0cmlidXRlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5hcHBseVRvQnVmZmVyQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIGF0dHJpYnV0ZS5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDQodGhpcyl9LEJhdC5wcm90b3R5cGUuYXBwbHlUb1ZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5hcHBseVRvVmVjdG9yM0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sQmF0LnByb3RvdHlwZS5tYWtlRnJ1c3R1bT1mdW5jdGlvbih0LGUsbixvLGksYSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm1ha2VGcnVzdHVtKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5tYWtlUGVyc3BlY3RpdmUoIGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSwgbmVhciwgZmFyICkgaW5zdGVhZC4iKSx0aGlzLm1ha2VQZXJzcGVjdGl2ZSh0LGUsbyxuLGksYSl9LEJhdC5wcm90b3R5cGUuZ2V0SW52ZXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZ2V0SW52ZXJzZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBtYXRyaXhJbnYuY29weSggbWF0cml4ICkuaW52ZXJ0KCk7IGluc3RlYWQuIiksdGhpcy5jb3B5KHQpLmludmVydCgpfSxrc3QucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uTGluZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QbGFuZTogLmlzSW50ZXJzZWN0aW9uTGluZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNMaW5lKCkuIiksdGhpcy5pbnRlcnNlY3RzTGluZSh0KX0sbGF0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLm11bHRpcGx5VmVjdG9yMygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBpcyBub3cgdmVjdG9yLmFwcGx5UXVhdGVybmlvbiggcXVhdGVybmlvbiApIGluc3RlYWQuIiksdC5hcHBseVF1YXRlcm5pb24odGhpcyl9LGxhdC5wcm90b3R5cGUuaW52ZXJzZT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IC5pbnZlcnNlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byBpbnZlcnQoKS4iKSx0aGlzLmludmVydCgpfSxMYXQucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uQm94KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0JveCgpLiIpLHRoaXMuaW50ZXJzZWN0c0JveCh0KX0sTGF0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblBsYW5lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uUGxhbmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzUGxhbmUoKS4iKSx0aGlzLmludGVyc2VjdHNQbGFuZSh0KX0sTGF0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblNwaGVyZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5SYXk6IC5pc0ludGVyc2VjdGlvblNwaGVyZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNTcGhlcmUoKS4iKSx0aGlzLmludGVyc2VjdHNTcGhlcmUodCl9LHZydC5wcm90b3R5cGUuYXJlYT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYXJlYSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEFyZWEoKS4iKSx0aGlzLmdldEFyZWEoKX0sdnJ0LnByb3RvdHlwZS5iYXJ5Y29vcmRGcm9tUG9pbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLmJhcnljb29yZEZyb21Qb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEJhcnljb29yZCgpLiIpLHRoaXMuZ2V0QmFyeWNvb3JkKHQsZSl9LHZydC5wcm90b3R5cGUubWlkcG9pbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5taWRwb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE1pZHBvaW50KCkuIiksdGhpcy5nZXRNaWRwb2ludCh0KX0sdnJ0LnByb3RvdHlwZW5vcm1hbD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm5vcm1hbCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE5vcm1hbCgpLiIpLHRoaXMuZ2V0Tm9ybWFsKHQpfSx2cnQucHJvdG90eXBlLnBsYW5lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAucGxhbmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRQbGFuZSgpLiIpLHRoaXMuZ2V0UGxhbmUodCl9LHZydC5iYXJ5Y29vcmRGcm9tUG9pbnQ9ZnVuY3Rpb24odCxlLG4sbyxpKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLmJhcnljb29yZEZyb21Qb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEJhcnljb29yZCgpLiIpLHZydC5nZXRCYXJ5Y29vcmQodCxlLG4sbyxpKX0sdnJ0Lm5vcm1hbD1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm5vcm1hbCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE5vcm1hbCgpLiIpLHZydC5nZXROb3JtYWwodCxlLG4sbyl9LFJtdC5wcm90b3R5cGUuZXh0cmFjdEFsbFBvaW50cz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFwZTogLmV4dHJhY3RBbGxQb2ludHMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLmV4dHJhY3RQb2ludHMoKSBpbnN0ZWFkLiIpLHRoaXMuZXh0cmFjdFBvaW50cyh0KX0sUm10LnByb3RvdHlwZS5leHRydWRlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNoYXBlOiAuZXh0cnVkZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBFeHRydWRlR2VvbWV0cnkoKSBpbnN0ZWFkLiIpLG5ldyBubXQodGhpcyx0KX0sUm10LnByb3RvdHlwZS5tYWtlR2VvbWV0cnk9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhcGU6IC5tYWtlR2VvbWV0cnkoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgU2hhcGVHZW9tZXRyeSgpIGluc3RlYWQuIiksbmV3IGltdCh0aGlzLHQpfSxRaXQucHJvdG90eXBlLmZyb21BdHRyaWJ1dGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5mcm9tQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil9LFFpdC5wcm90b3R5cGUuZGlzdGFuY2VUb01hbmhhdHRhbj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAuZGlzdGFuY2VUb01hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkRpc3RhbmNlVG8oKS4iKSx0aGlzLm1hbmhhdHRhbkRpc3RhbmNlVG8odCl9LFFpdC5wcm90b3R5cGUubGVuZ3RoTWFuaGF0dGFuPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLmxlbmd0aE1hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkxlbmd0aCgpLiIpLHRoaXMubWFuaGF0dGFuTGVuZ3RoKCl9LGNhdC5wcm90b3R5cGUuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXg9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXgoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXVsZXIuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgaW5zdGVhZC4iKX0sY2F0LnByb3RvdHlwZS5zZXRFdWxlckZyb21RdWF0ZXJuaW9uPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuVmVjdG9yMzogLnNldEV1bGVyRnJvbVF1YXRlcm5pb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXVsZXIuc2V0RnJvbVF1YXRlcm5pb24oKSBpbnN0ZWFkLiIpfSxjYXQucHJvdG90eXBlLmdldFBvc2l0aW9uRnJvbU1hdHJpeD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuZ2V0UG9zaXRpb25Gcm9tTWF0cml4KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCkuIiksdGhpcy5zZXRGcm9tTWF0cml4UG9zaXRpb24odCl9LGNhdC5wcm90b3R5cGUuZ2V0U2NhbGVGcm9tTWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRTY2FsZUZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4U2NhbGUoKS4iKSx0aGlzLnNldEZyb21NYXRyaXhTY2FsZSh0KX0sY2F0LnByb3RvdHlwZS5nZXRDb2x1bW5Gcm9tTWF0cml4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmdldENvbHVtbkZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4Q29sdW1uKCkuIiksdGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKGUsdCl9LGNhdC5wcm90b3R5cGUuYXBwbHlQcm9qZWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5hcHBseVByb2plY3Rpb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLmFwcGx5TWF0cml4NCggbSApIGluc3RlYWQuIiksdGhpcy5hcHBseU1hdHJpeDQodCl9LGNhdC5wcm90b3R5cGUuZnJvbUF0dHJpYnV0ZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmZyb21BdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKX0sY2F0LnByb3RvdHlwZS5kaXN0YW5jZVRvTWFuaGF0dGFuPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5kaXN0YW5jZVRvTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuRGlzdGFuY2VUbygpLiIpLHRoaXMubWFuaGF0dGFuRGlzdGFuY2VUbyh0KX0sY2F0LnByb3RvdHlwZS5sZW5ndGhNYW5oYXR0YW49ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAubGVuZ3RoTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuTGVuZ3RoKCkuIiksdGhpcy5tYW5oYXR0YW5MZW5ndGgoKX0sYWF0LnByb3RvdHlwZS5mcm9tQXR0cmlidXRlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiAuZnJvbUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLG4pfSxhYXQucHJvdG90eXBlLmxlbmd0aE1hbmhhdHRhbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5sZW5ndGhNYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5MZW5ndGgoKS4iKSx0aGlzLm1hbmhhdHRhbkxlbmd0aCgpfSxwcnQucHJvdG90eXBlLmdldENoaWxkQnlOYW1lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAuZ2V0Q2hpbGRCeU5hbWUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRPYmplY3RCeU5hbWUoKS4iKSx0aGlzLmdldE9iamVjdEJ5TmFtZSh0KX0scHJ0LnByb3RvdHlwZS5yZW5kZXJEZXB0aD1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5yZW5kZXJEZXB0aCBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnJlbmRlck9yZGVyLCBpbnN0ZWFkLiIpfSxwcnQucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC50cmFuc2xhdGVPbkF4aXMoIGF4aXMsIGRpc3RhbmNlICkgaW5zdGVhZC4iKSx0aGlzLnRyYW5zbGF0ZU9uQXhpcyhlLHQpfSxwcnQucHJvdG90eXBlLmdldFdvcmxkUm90YXRpb249ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3QzRDogLmdldFdvcmxkUm90YXRpb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuT2JqZWN0M0QuZ2V0V29ybGRRdWF0ZXJuaW9uKCB0YXJnZXQgKSBpbnN0ZWFkLiIpfSxwcnQucHJvdG90eXBlLmFwcGx5TWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAuYXBwbHlNYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5hcHBseU1hdHJpeDQoKS4iKSx0aGlzLmFwcGx5TWF0cml4NCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocHJ0LnByb3RvdHlwZSx7ZXVsZXJPcmRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcn0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcj10fX0sdXNlUXVhdGVybmlvbjp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX19fSkscHN0LnByb3RvdHlwZS5zZXREcmF3TW9kZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2g6IC5zZXREcmF3TW9kZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIFRyYW5zZm9ybSB5b3VyIGdlb21ldHJ5IHZpYSBCdWZmZXJHZW9tZXRyeVV0aWxzLnRvVHJpYW5nbGVzRHJhd01vZGUoKSBpZiBuZWNlc3NhcnkuIil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHBzdC5wcm90b3R5cGUse2RyYXdNb2RlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLmRyYXdNb2RlIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIiksMH0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLmRyYXdNb2RlIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIFRyYW5zZm9ybSB5b3VyIGdlb21ldHJ5IHZpYSBCdWZmZXJHZW9tZXRyeVV0aWxzLnRvVHJpYW5nbGVzRHJhd01vZGUoKSBpZiBuZWNlc3NhcnkuIil9fX0pLGpkdC5wcm90b3R5cGUuaW5pdEJvbmVzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2tpbm5lZE1lc2g6IGluaXRCb25lcygpIGhhcyBiZWVuIHJlbW92ZWQuIil9LF9zdC5wcm90b3R5cGUuc2V0TGVucz1mdW5jdGlvbih0LGUpe2NvbnNvbGUud2FybigiVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEuc2V0TGVucyBpcyBkZXByZWNhdGVkLiBVc2UgLnNldEZvY2FsTGVuZ3RoIGFuZCAuZmlsbUdhdWdlIGZvciBhIHBob3RvZ3JhcGhpYyBzZXR1cC4iKSx2b2lkIDAhPT1lJiYodGhpcy5maWxtR2F1Z2U9ZSksdGhpcy5zZXRGb2NhbExlbmd0aCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQW10LnByb3RvdHlwZSx7b25seVNoYWRvdzp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLm9ubHlTaGFkb3cgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHNoYWRvd0NhbWVyYUZvdjp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFGb3YgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmZvdi4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuZm92PXR9fSxzaGFkb3dDYW1lcmFMZWZ0OntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYUxlZnQgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmxlZnQuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmxlZnQ9dH19LHNoYWRvd0NhbWVyYVJpZ2h0OntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVJpZ2h0IGlzIG5vdyAuc2hhZG93LmNhbWVyYS5yaWdodC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEucmlnaHQ9dH19LHNoYWRvd0NhbWVyYVRvcDp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFUb3AgaXMgbm93IC5zaGFkb3cuY2FtZXJhLnRvcC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEudG9wPXR9fSxzaGFkb3dDYW1lcmFCb3R0b206e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhQm90dG9tIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5ib3R0b20uIiksdGhpcy5zaGFkb3cuY2FtZXJhLmJvdHRvbT10fX0sc2hhZG93Q2FtZXJhTmVhcjp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFOZWFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5uZWFyLiIpLHRoaXMuc2hhZG93LmNhbWVyYS5uZWFyPXR9fSxzaGFkb3dDYW1lcmFGYXI6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhRmFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5mYXIuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmZhcj10fX0sc2hhZG93Q2FtZXJhVmlzaWJsZTp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVZpc2libGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5DYW1lcmFIZWxwZXIoIGxpZ2h0LnNoYWRvdy5jYW1lcmEgKSBpbnN0ZWFkLiIpfX0sc2hhZG93Qmlhczp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dCaWFzIGlzIG5vdyAuc2hhZG93LmJpYXMuIiksdGhpcy5zaGFkb3cuYmlhcz10fX0sc2hhZG93RGFya25lc3M6e3NldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dEYXJrbmVzcyBoYXMgYmVlbiByZW1vdmVkLiIpfX0sc2hhZG93TWFwV2lkdGg6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwV2lkdGggaXMgbm93IC5zaGFkb3cubWFwU2l6ZS53aWR0aC4iKSx0aGlzLnNoYWRvdy5tYXBTaXplLndpZHRoPXR9fSxzaGFkb3dNYXBIZWlnaHQ6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwSGVpZ2h0IGlzIG5vdyAuc2hhZG93Lm1hcFNpemUuaGVpZ2h0LiIpLHRoaXMuc2hhZG93Lm1hcFNpemUuaGVpZ2h0PXR9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHpydC5wcm90b3R5cGUse2xlbmd0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAubGVuZ3RoIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuY291bnQgaW5zdGVhZC4iKSx0aGlzLmFycmF5Lmxlbmd0aH19LGR5bmFtaWM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLmR5bmFtaWMgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC51c2FnZSBpbnN0ZWFkLiIpLHRoaXMudXNhZ2U9PT1WaXR9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuZHluYW1pYyBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnVzYWdlIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZShWaXQpfX19KSx6cnQucHJvdG90eXBlLnNldER5bmFtaWM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuc2V0RHluYW1pYygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuc2V0VXNhZ2UoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoITA9PT10P1ZpdDpCaXQpLHRoaXN9LHpydC5wcm90b3R5cGUuY29weUluZGljZXNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLmNvcHlJbmRpY2VzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSx6cnQucHJvdG90eXBlLnNldEFycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuc2V0QXJyYXkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEJ1ZmZlckdlb21ldHJ5IC5zZXRBdHRyaWJ1dGUgdG8gcmVwbGFjZS9yZXNpemUgYXR0cmlidXRlIGJ1ZmZlcnMiKX0scXJ0LnByb3RvdHlwZS5hZGRJbmRleD1mdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkSW5kZXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRJbmRleCgpLiIpLHRoaXMuc2V0SW5kZXgodCl9LHFydC5wcm90b3R5cGUuYWRkQXR0cmlidXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGRBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRBdHRyaWJ1dGUoKS4iKSxlJiZlLmlzQnVmZmVyQXR0cmlidXRlfHxlJiZlLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU/ImluZGV4Ij09PXQ/KGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnkuYWRkQXR0cmlidXRlOiBVc2UgLnNldEluZGV4KCkgZm9yIGluZGV4IGF0dHJpYnV0ZS4iKSx0aGlzLnNldEluZGV4KGUpLHRoaXMpOnRoaXMuc2V0QXR0cmlidXRlKHQsZSk6KGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGRBdHRyaWJ1dGUoKSBub3cgZXhwZWN0cyAoIG5hbWUsIGF0dHJpYnV0ZSApLiIpLHRoaXMuc2V0QXR0cmlidXRlKHQsbmV3IHpydChhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdKSkpfSxxcnQucHJvdG90eXBlLmFkZERyYXdDYWxsPWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDAhPT1uJiZjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkRHJhd0NhbGwoKSBubyBsb25nZXIgc3VwcG9ydHMgaW5kZXhPZmZzZXQuIiksY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZERyYXdDYWxsKCkgaXMgbm93IC5hZGRHcm91cCgpLiIpLHRoaXMuYWRkR3JvdXAodCxlKX0scXJ0LnByb3RvdHlwZS5jbGVhckRyYXdDYWxscz1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5jbGVhckRyYXdDYWxscygpIGlzIG5vdyAuY2xlYXJHcm91cHMoKS4iKSx0aGlzLmNsZWFyR3JvdXBzKCl9LHFydC5wcm90b3R5cGUuY29tcHV0ZU9mZnNldHM9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuY29tcHV0ZU9mZnNldHMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxxcnQucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLnJlbW92ZUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmRlbGV0ZUF0dHJpYnV0ZSgpLiIpLHRoaXMuZGVsZXRlQXR0cmlidXRlKHQpfSxxcnQucHJvdG90eXBlLmFwcGx5TWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYXBwbHlNYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5hcHBseU1hdHJpeDQoKS4iKSx0aGlzLmFwcGx5TWF0cml4NCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocXJ0LnByb3RvdHlwZSx7ZHJhd2NhbGxzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5kcmF3Y2FsbHMgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ3JvdXBzLiIpLHRoaXMuZ3JvdXBzfX0sb2Zmc2V0czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5vZmZzZXRzIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdyb3Vwcy4iKSx0aGlzLmdyb3Vwc319fSksX2R0LnByb3RvdHlwZS5zZXREeW5hbWljPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkludGVybGVhdmVkQnVmZmVyOiAuc2V0RHluYW1pYygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuc2V0VXNhZ2UoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoITA9PT10P1ZpdDpCaXQpLHRoaXN9LF9kdC5wcm90b3R5cGUuc2V0QXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlcjogLnNldEFycmF5IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBCdWZmZXJHZW9tZXRyeSAuc2V0QXR0cmlidXRlIHRvIHJlcGxhY2UvcmVzaXplIGF0dHJpYnV0ZSBidWZmZXJzIil9LG5tdC5wcm90b3R5cGUuZ2V0QXJyYXlzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuZ2V0QXJyYXlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sbm10LnByb3RvdHlwZS5hZGRTaGFwZUxpc3Q9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5hZGRTaGFwZUxpc3QoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxubXQucHJvdG90eXBlLmFkZFNoYXBlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuYWRkU2hhcGUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSx5ZHQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5TY2VuZTogLmRpc3Bvc2UoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhPcnQucHJvdG90eXBlLHt3cmFwQXJvdW5kOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfX0sb3ZlcmRyYXc6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTWF0ZXJpYWw6IC5vdmVyZHJhdyBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAub3ZlcmRyYXcgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHdyYXBSR0I6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcFJHQiBoYXMgYmVlbiByZW1vdmVkLiIpLG5ldyBScnR9fSxzaGFkaW5nOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc2hhZGluZyBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdGhlIGJvb2xlYW4gLmZsYXRTaGFkaW5nIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKSx0aGlzLmZsYXRTaGFkaW5nPTE9PT10fX0sc3RlbmNpbE1hc2s6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zdGVuY2lsTWFzayBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnN0ZW5jaWxGdW5jTWFzayBpbnN0ZWFkLiIpLHRoaXMuc3RlbmNpbEZ1bmNNYXNrfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc3RlbmNpbE1hc2sgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5zdGVuY2lsRnVuY01hc2sgaW5zdGVhZC4iKSx0aGlzLnN0ZW5jaWxGdW5jTWFzaz10fX0sdmVydGV4VGFuZ2VudHM6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGJzdC5wcm90b3R5cGUse2Rlcml2YXRpdmVzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFkZXJNYXRlcmlhbDogLmRlcml2YXRpdmVzIGhhcyBiZWVuIG1vdmVkIHRvIC5leHRlbnNpb25zLmRlcml2YXRpdmVzLiIpLHRoaXMuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlc30sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuIFNoYWRlck1hdGVyaWFsOiAuZGVyaXZhdGl2ZXMgaGFzIGJlZW4gbW92ZWQgdG8gLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMuIiksdGhpcy5leHRlbnNpb25zLmRlcml2YXRpdmVzPXR9fX0pLGJkdC5wcm90b3R5cGUuY2xlYXJUYXJnZXQ9ZnVuY3Rpb24odCxlLG4sbyl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuY2xlYXJUYXJnZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnNldFJlbmRlclRhcmdldCgpIGFuZCAuY2xlYXIoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0UmVuZGVyVGFyZ2V0KHQpLHRoaXMuY2xlYXIoZSxuLG8pfSxiZHQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYW5pbWF0ZSgpIGlzIG5vdyAuc2V0QW5pbWF0aW9uTG9vcCgpLiIpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcCh0KX0sYmR0LnByb3RvdHlwZS5nZXRDdXJyZW50UmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdldEN1cnJlbnRSZW5kZXJUYXJnZXQoKSBpcyBub3cgLmdldFJlbmRlclRhcmdldCgpLiIpLHRoaXMuZ2V0UmVuZGVyVGFyZ2V0KCl9LGJkdC5wcm90b3R5cGUuZ2V0TWF4QW5pc290cm9weT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRNYXhBbmlzb3Ryb3B5KCkgaXMgbm93IC5jYXBhYmlsaXRpZXMuZ2V0TWF4QW5pc290cm9weSgpLiIpLHRoaXMuY2FwYWJpbGl0aWVzLmdldE1heEFuaXNvdHJvcHkoKX0sYmR0LnByb3RvdHlwZS5nZXRQcmVjaXNpb249ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0UHJlY2lzaW9uKCkgaXMgbm93IC5jYXBhYmlsaXRpZXMucHJlY2lzaW9uLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnByZWNpc2lvbn0sYmR0LnByb3RvdHlwZS5yZXNldEdMU3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAucmVzZXRHTFN0YXRlKCkgaXMgbm93IC5zdGF0ZS5yZXNldCgpLiIpLHRoaXMuc3RhdGUucmVzZXQoKX0sYmR0LnByb3RvdHlwZS5zdXBwb3J0c0Zsb2F0VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2Zsb2F0JyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU190ZXh0dXJlX2Zsb2F0Iil9LGJkdC5wcm90b3R5cGUuc3VwcG9ydHNIYWxmRmxvYXRUZXh0dXJlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0hhbGZGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2hhbGZfZmxvYXQnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpfSxiZHQucHJvdG90eXBlLnN1cHBvcnRzU3RhbmRhcmREZXJpdmF0aXZlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c1N0YW5kYXJkRGVyaXZhdGl2ZXMoKSBpcyBub3cgLmV4dGVuc2lvbnMuZ2V0KCAnT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpfSxiZHQucHJvdG90eXBlLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIil9LGJkdC5wcm90b3R5cGUuc3VwcG9ydHNDb21wcmVzc2VkVGV4dHVyZVBWUlRDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVQVlJUQygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIil9LGJkdC5wcm90b3R5cGUuc3VwcG9ydHNCbGVuZE1pbk1heD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0JsZW5kTWluTWF4KCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0VYVF9ibGVuZF9taW5tYXgnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiRVhUX2JsZW5kX21pbm1heCIpfSxiZHQucHJvdG90eXBlLnN1cHBvcnRzVmVydGV4VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcygpIGlzIG5vdyAuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzfSxiZHQucHJvdG90eXBlLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0FOR0xFX2luc3RhbmNlZF9hcnJheXMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpfSxiZHQucHJvdG90eXBlLmVuYWJsZVNjaXNzb3JUZXN0PWZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmVuYWJsZVNjaXNzb3JUZXN0KCkgaXMgbm93IC5zZXRTY2lzc29yVGVzdCgpLiIpLHRoaXMuc2V0U2Npc3NvclRlc3QodCl9LGJkdC5wcm90b3R5cGUuaW5pdE1hdGVyaWFsPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuaW5pdE1hdGVyaWFsKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sYmR0LnByb3RvdHlwZS5hZGRQcmVQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQcmVQbHVnaW4oKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxiZHQucHJvdG90eXBlLmFkZFBvc3RQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQb3N0UGx1Z2luKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sYmR0LnByb3RvdHlwZS51cGRhdGVTaGFkb3dNYXA9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC51cGRhdGVTaGFkb3dNYXAoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxiZHQucHJvdG90eXBlLnNldEZhY2VDdWxsaW5nPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0RmFjZUN1bGxpbmcoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxiZHQucHJvdG90eXBlLmFsbG9jVGV4dHVyZVVuaXQ9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hbGxvY1RleHR1cmVVbml0KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sYmR0LnByb3RvdHlwZS5zZXRUZXh0dXJlPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LGJkdC5wcm90b3R5cGUuc2V0VGV4dHVyZTJEPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZTJEKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sYmR0LnByb3RvdHlwZS5zZXRUZXh0dXJlQ3ViZT1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNldFRleHR1cmVDdWJlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sYmR0LnByb3RvdHlwZS5nZXRBY3RpdmVNaXBNYXBMZXZlbD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRBY3RpdmVNaXBNYXBMZXZlbCgpIGlzIG5vdyAuZ2V0QWN0aXZlTWlwbWFwTGV2ZWwoKS4iKSx0aGlzLmdldEFjdGl2ZU1pcG1hcExldmVsKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGJkdC5wcm90b3R5cGUse3NoYWRvd01hcEVuYWJsZWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC5lbmFibGVkfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwRW5hYmxlZCBpcyBub3cgLnNoYWRvd01hcC5lbmFibGVkLiIpLHRoaXMuc2hhZG93TWFwLmVuYWJsZWQ9dH19LHNoYWRvd01hcFR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC50eXBlfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwVHlwZSBpcyBub3cgLnNoYWRvd01hcC50eXBlLiIpLHRoaXMuc2hhZG93TWFwLnR5cGU9dH19LHNoYWRvd01hcEN1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0sY29udGV4dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmNvbnRleHQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5nZXRDb250ZXh0KCkgaW5zdGVhZC4iKSx0aGlzLmdldENvbnRleHQoKX19LHZyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudnIgaGFzIGJlZW4gcmVuYW1lZCB0byAueHIiKSx0aGlzLnhyfX0sZ2FtbWFJbnB1dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hSW5wdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IHRoZSBlbmNvZGluZyBmb3IgdGV4dHVyZXMgdmlhIFRleHR1cmUuZW5jb2RpbmcgaW5zdGVhZC4iKSwhMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFJbnB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgdGhlIGVuY29kaW5nIGZvciB0ZXh0dXJlcyB2aWEgVGV4dHVyZS5lbmNvZGluZyBpbnN0ZWFkLiIpfX0sZ2FtbWFPdXRwdXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYU91dHB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgV2ViR0xSZW5kZXJlci5vdXRwdXRFbmNvZGluZyBpbnN0ZWFkLiIpLCExfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFPdXRwdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IFdlYkdMUmVuZGVyZXIub3V0cHV0RW5jb2RpbmcgaW5zdGVhZC4iKSx0aGlzLm91dHB1dEVuY29kaW5nPSEwPT09dD9JaXQ6eml0fX0sdG9uZU1hcHBpbmdXaGl0ZVBvaW50OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIiksMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHNkdC5wcm90b3R5cGUse2N1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAuY3VsbEZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLmN1bGxGYWNlIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9fSxyZW5kZXJSZXZlcnNlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJSZXZlcnNlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLnJlbmRlclJldmVyc2VTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0scmVuZGVyU2luZ2xlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJTaW5nbGVTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAucmVuZGVyU2luZ2xlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX19fSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocmF0LnByb3RvdHlwZSx7d3JhcFM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFMgaXMgbm93IC50ZXh0dXJlLndyYXBTLiIpLHRoaXMudGV4dHVyZS53cmFwU30sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwUyBpcyBub3cgLnRleHR1cmUud3JhcFMuIiksdGhpcy50ZXh0dXJlLndyYXBTPXR9fSx3cmFwVDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwVCBpcyBub3cgLnRleHR1cmUud3JhcFQuIiksdGhpcy50ZXh0dXJlLndyYXBUfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLndyYXBUIGlzIG5vdyAudGV4dHVyZS53cmFwVC4iKSx0aGlzLnRleHR1cmUud3JhcFQ9dH19LG1hZ0ZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5tYWdGaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1hZ0ZpbHRlci4iKSx0aGlzLnRleHR1cmUubWFnRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1hZ0ZpbHRlciBpcyBub3cgLnRleHR1cmUubWFnRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5tYWdGaWx0ZXI9dH19LG1pbkZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5taW5GaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1pbkZpbHRlci4iKSx0aGlzLnRleHR1cmUubWluRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1pbkZpbHRlciBpcyBub3cgLnRleHR1cmUubWluRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9dH19LGFuaXNvdHJvcHk6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuYW5pc290cm9weSBpcyBub3cgLnRleHR1cmUuYW5pc290cm9weS4iKSx0aGlzLnRleHR1cmUuYW5pc290cm9weX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5hbmlzb3Ryb3B5IGlzIG5vdyAudGV4dHVyZS5hbmlzb3Ryb3B5LiIpLHRoaXMudGV4dHVyZS5hbmlzb3Ryb3B5PXR9fSxvZmZzZXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAub2Zmc2V0IGlzIG5vdyAudGV4dHVyZS5vZmZzZXQuIiksdGhpcy50ZXh0dXJlLm9mZnNldH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5vZmZzZXQgaXMgbm93IC50ZXh0dXJlLm9mZnNldC4iKSx0aGlzLnRleHR1cmUub2Zmc2V0PXR9fSxyZXBlYXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAucmVwZWF0IGlzIG5vdyAudGV4dHVyZS5yZXBlYXQuIiksdGhpcy50ZXh0dXJlLnJlcGVhdH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5yZXBlYXQgaXMgbm93IC50ZXh0dXJlLnJlcGVhdC4iKSx0aGlzLnRleHR1cmUucmVwZWF0PXR9fSxmb3JtYXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZm9ybWF0IGlzIG5vdyAudGV4dHVyZS5mb3JtYXQuIiksdGhpcy50ZXh0dXJlLmZvcm1hdH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5mb3JtYXQgaXMgbm93IC50ZXh0dXJlLmZvcm1hdC4iKSx0aGlzLnRleHR1cmUuZm9ybWF0PXR9fSx0eXBlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnR5cGUgaXMgbm93IC50ZXh0dXJlLnR5cGUuIiksdGhpcy50ZXh0dXJlLnR5cGV9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAudHlwZSBpcyBub3cgLnRleHR1cmUudHlwZS4iKSx0aGlzLnRleHR1cmUudHlwZT10fX0sZ2VuZXJhdGVNaXBtYXBzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmdlbmVyYXRlTWlwbWFwcyBpcyBub3cgLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzLiIpLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHN9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZ2VuZXJhdGVNaXBtYXBzIGlzIG5vdyAudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMuIiksdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz10fX19KSxjbGFzcyBleHRlbmRzIHBydHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iQXVkaW8iLHRoaXMubGlzdGVuZXI9dCx0aGlzLmNvbnRleHQ9dC5jb250ZXh0LHRoaXMuZ2Fpbj10aGlzLmNvbnRleHQuY3JlYXRlR2FpbigpLHRoaXMuZ2Fpbi5jb25uZWN0KHQuZ2V0SW5wdXQoKSksdGhpcy5hdXRvcGxheT0hMSx0aGlzLmJ1ZmZlcj1udWxsLHRoaXMuZGV0dW5lPTAsdGhpcy5sb29wPSExLHRoaXMubG9vcFN0YXJ0PTAsdGhpcy5sb29wRW5kPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmR1cmF0aW9uPXZvaWQgMCx0aGlzLnBsYXliYWNrUmF0ZT0xLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSEwLHRoaXMuc291cmNlPW51bGwsdGhpcy5zb3VyY2VUeXBlPSJlbXB0eSIsdGhpcy5fc3RhcnRlZEF0PTAsdGhpcy5fcHJvZ3Jlc3M9MCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5maWx0ZXJzPVtdfWdldE91dHB1dCgpe3JldHVybiB0aGlzLmdhaW59c2V0Tm9kZVNvdXJjZSh0KXtyZXR1cm4gdGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9ITEsdGhpcy5zb3VyY2VUeXBlPSJhdWRpb05vZGUiLHRoaXMuc291cmNlPXQsdGhpcy5jb25uZWN0KCksdGhpc31zZXRNZWRpYUVsZW1lbnRTb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFOb2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlKHQpLHRoaXMuY29ubmVjdCgpLHRoaXN9c2V0TWVkaWFTdHJlYW1Tb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFTdHJlYW1Ob2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UodCksdGhpcy5jb25uZWN0KCksdGhpc31zZXRCdWZmZXIodCl7cmV0dXJuIHRoaXMuYnVmZmVyPXQsdGhpcy5zb3VyY2VUeXBlPSJidWZmZXIiLHRoaXMuYXV0b3BsYXkmJnRoaXMucGxheSgpLHRoaXN9cGxheSh0PTApe2lmKCEwPT09dGhpcy5pc1BsYXlpbmcpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogQXVkaW8gaXMgYWxyZWFkeSBwbGF5aW5nLiIpO2lmKCExPT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKTt0aGlzLl9zdGFydGVkQXQ9dGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lK3Q7Y29uc3QgZT10aGlzLmNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7cmV0dXJuIGUuYnVmZmVyPXRoaXMuYnVmZmVyLGUubG9vcD10aGlzLmxvb3AsZS5sb29wU3RhcnQ9dGhpcy5sb29wU3RhcnQsZS5sb29wRW5kPXRoaXMubG9vcEVuZCxlLm9uZW5kZWQ9dGhpcy5vbkVuZGVkLmJpbmQodGhpcyksZS5zdGFydCh0aGlzLl9zdGFydGVkQXQsdGhpcy5fcHJvZ3Jlc3MrdGhpcy5vZmZzZXQsdGhpcy5kdXJhdGlvbiksdGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zb3VyY2U9ZSx0aGlzLnNldERldHVuZSh0aGlzLmRldHVuZSksdGhpcy5zZXRQbGF5YmFja1JhdGUodGhpcy5wbGF5YmFja1JhdGUpLHRoaXMuY29ubmVjdCgpfXBhdXNlKCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4hMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5fcHJvZ3Jlc3MrPU1hdGgubWF4KHRoaXMuY29udGV4dC5jdXJyZW50VGltZS10aGlzLl9zdGFydGVkQXQsMCkqdGhpcy5wbGF5YmFja1JhdGUsITA9PT10aGlzLmxvb3AmJih0aGlzLl9wcm9ncmVzcz10aGlzLl9wcm9ncmVzcyUodGhpcy5kdXJhdGlvbnx8dGhpcy5idWZmZXIuZHVyYXRpb24pKSx0aGlzLnNvdXJjZS5zdG9wKCksdGhpcy5zb3VyY2Uub25lbmRlZD1udWxsLHRoaXMuaXNQbGF5aW5nPSExKSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9c3RvcCgpe2lmKCExIT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHRoaXMuX3Byb2dyZXNzPTAsdGhpcy5zb3VyY2Uuc3RvcCgpLHRoaXMuc291cmNlLm9uZW5kZWQ9bnVsbCx0aGlzLmlzUGxheWluZz0hMSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9Y29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmNvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5jb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSEwLHRoaXN9ZGlzY29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmRpc2Nvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5kaXNjb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSExLHRoaXN9Z2V0RmlsdGVycygpe3JldHVybiB0aGlzLmZpbHRlcnN9c2V0RmlsdGVycyh0KXtyZXR1cm4gdHx8KHQ9W10pLCEwPT09dGhpcy5fY29ubmVjdGVkPyh0aGlzLmRpc2Nvbm5lY3QoKSx0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXMuY29ubmVjdCgpKTp0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXN9c2V0RGV0dW5lKHQpe2lmKHRoaXMuZGV0dW5lPXQsdm9pZCAwIT09dGhpcy5zb3VyY2UuZGV0dW5lKXJldHVybiEwPT09dGhpcy5pc1BsYXlpbmcmJnRoaXMuc291cmNlLmRldHVuZS5zZXRUYXJnZXRBdFRpbWUodGhpcy5kZXR1bmUsdGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lLC4wMSksdGhpc31nZXREZXR1bmUoKXtyZXR1cm4gdGhpcy5kZXR1bmV9Z2V0RmlsdGVyKCl7cmV0dXJuIHRoaXMuZ2V0RmlsdGVycygpWzBdfXNldEZpbHRlcih0KXtyZXR1cm4gdGhpcy5zZXRGaWx0ZXJzKHQ/W3RdOltdKX1zZXRQbGF5YmFja1JhdGUodCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGU9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiZ0aGlzLnNvdXJjZS5wbGF5YmFja1JhdGUuc2V0VGFyZ2V0QXRUaW1lKHRoaXMucGxheWJhY2tSYXRlLHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1nZXRQbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGV9b25FbmRlZCgpe3RoaXMuaXNQbGF5aW5nPSExfWdldExvb3AoKXtyZXR1cm4hMT09PXRoaXMuaGFzUGxheWJhY2tDb250cm9sPyhjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpLCExKTp0aGlzLmxvb3B9c2V0TG9vcCh0KXtpZighMSE9PXRoaXMuaGFzUGxheWJhY2tDb250cm9sKXJldHVybiB0aGlzLmxvb3A9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5zb3VyY2UubG9vcD10aGlzLmxvb3ApLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1zZXRMb29wU3RhcnQodCl7cmV0dXJuIHRoaXMubG9vcFN0YXJ0PXQsdGhpc31zZXRMb29wRW5kKHQpe3JldHVybiB0aGlzLmxvb3BFbmQ9dCx0aGlzfWdldFZvbHVtZSgpe3JldHVybiB0aGlzLmdhaW4uZ2Fpbi52YWx1ZX1zZXRWb2x1bWUodCl7cmV0dXJuIHRoaXMuZ2Fpbi5nYWluLnNldFRhcmdldEF0VGltZSh0LHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXN9fS5wcm90b3R5cGUubG9hZD1mdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiAubG9hZCBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuQXVkaW9Mb2FkZXIgaW5zdGVhZC4iKTtjb25zdCBlPXRoaXM7cmV0dXJuKG5ldyBZbXQpLmxvYWQodCwoZnVuY3Rpb24odCl7ZS5zZXRCdWZmZXIodCl9KSksdGhpc30sTXN0LnByb3RvdHlwZS51cGRhdGVDdWJlTWFwPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3ViZUNhbWVyYTogLnVwZGF0ZUN1YmVNYXAoKSBpcyBub3cgLnVwZGF0ZSgpLiIpLHRoaXMudXBkYXRlKHQsZSl9LE1zdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3ViZUNhbWVyYTogLmNsZWFyKCkgaXMgbm93IC5yZW5kZXJUYXJnZXQuY2xlYXIoKS4iKSx0aGlzLnJlbmRlclRhcmdldC5jbGVhcih0LGUsbixvKX0sZWF0LmNyb3NzT3JpZ2luPXZvaWQgMCxlYXQubG9hZFRleHR1cmU9ZnVuY3Rpb24odCxlLG4sbyl7Y29uc29sZS53YXJuKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRUZXh0dXJlIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBUSFJFRS5UZXh0dXJlTG9hZGVyKCkgaW5zdGVhZC4iKTtjb25zdCBpPW5ldyBTbXQ7aS5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKTtjb25zdCBhPWkubG9hZCh0LG4sdm9pZCAwLG8pO3JldHVybiBlJiYoYS5tYXBwaW5nPWUpLGF9LGVhdC5sb2FkVGV4dHVyZUN1YmU9ZnVuY3Rpb24odCxlLG4sbyl7Y29uc29sZS53YXJuKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRUZXh0dXJlQ3ViZSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuQ3ViZVRleHR1cmVMb2FkZXIoKSBpbnN0ZWFkLiIpO2NvbnN0IGk9bmV3IGttdDtpLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pO2NvbnN0IGE9aS5sb2FkKHQsbix2b2lkIDAsbyk7cmV0dXJuIGUmJihhLm1hcHBpbmc9ZSksYX0sZWF0LmxvYWRDb21wcmVzc2VkVGV4dHVyZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkltYWdlVXRpbHMubG9hZENvbXByZXNzZWRUZXh0dXJlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5ERFNMb2FkZXIgaW5zdGVhZC4iKX0sZWF0LmxvYWRDb21wcmVzc2VkVGV4dHVyZUN1YmU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRDb21wcmVzc2VkVGV4dHVyZUN1YmUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFRIUkVFLkREU0xvYWRlciBpbnN0ZWFkLiIpfSwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZWdpc3RlciIse2RldGFpbDp7cmV2aXNpb246IjEzMSJ9fSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93Ll9fVEhSRUVfXz9jb25zb2xlLndhcm4oIldBUk5JTkc6IE11bHRpcGxlIGluc3RhbmNlcyBvZiBUaHJlZS5qcyBiZWluZyBpbXBvcnRlZC4iKTp3aW5kb3cuX19USFJFRV9fPSIxMzEiKSwoZnVuY3Rpb24odCl7dFt0LkNJUkNMRT0wXT0iQ0lSQ0xFIix0W3QuTElORT0xXT0iTElORSIsdFt0LlRSSUFOR0xFPTJdPSJUUklBTkdMRSIsdFt0LlRSQVBFWk9JRD0zXT0iVFJBUEVaT0lEIn0pKHB1dHx8KHB1dD17fSkpO2NsYXNzIHl1dHtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLmNvb3JkaW5hdG9yPWUsdGhpcy5zY2VuZT1uZXcgeWR0LHRoaXMuYmFja2dyb3VuZENvbG9yPSIjZmZmIixpaXQoKSYmdCBpbnN0YW5jZW9mIE9mZnNjcmVlbkNhbnZhcyYmKHQuc3R5bGU9dC5zdHlsZXx8e30pLG8mJnQuYWRkRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIsbyksdGhpcy5yZW5kZXJlcj1uZXcgYmR0KHtjYW52YXM6dCxjb250ZXh0OnQuZ2V0Q29udGV4dCgid2ViZ2wyIix7YW50aWFsaWFzOiEwLHByZWNpc2lvbjoiaGlnaHAiLGFscGhhOiEwfSl9KSx0aGlzLnJlbmRlcmVyLnNldFBpeGVsUmF0aW8obil9b25SZXNpemUodCl7dGhpcy5yZW5kZXJlci5zZXRTaXplKHQud2lkdGgsdC5oZWlnaHQpfWRlc3Ryb3lPYmplY3QodCl7Y29uc3QgZT10Lm9iajNkO2lmKHRoaXMuc2NlbmUucmVtb3ZlKGUpLGUgaW5zdGFuY2VvZiBwc3Qpe2UuZ2VvbWV0cnkuZGlzcG9zZSgpO2NvbnN0IHQ9QXJyYXkuaXNBcnJheShlLm1hdGVyaWFsKT9lLm1hdGVyaWFsOltlLm1hdGVyaWFsXTtmb3IoY29uc3QgZSBvZiB0KWUuZGlzcG9zZSgpfX1zZXRVc2VEYXJrTW9kZSh0KXt0aGlzLmJhY2tncm91bmRDb2xvcj10PyIjMzAzMDMwIjoiI2ZmZiJ9Y3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHQsZSxuKXt2YXIgbztpZighdCYmIW4udmlzaWJsZSlyZXR1cm4gbnVsbDtjb25zdHt2aXNpYmxlOmksd2lkdGg6YX09bjtpZighdCl7Y29uc3QgdD1kdXQodGhpcy5iYWNrZ3JvdW5kQ29sb3Isbi5jb2xvcixudWxsIT09KG89bi5vcGFjaXR5KSYmdm9pZCAwIT09bz9vOjEpLHI9bmV3IHFydCxzPW5ldyBxZHQoe2NvbG9yOnR9KSxsPW5ldyBwc3QocixzKTtyZXR1cm4gcy52aXNpYmxlPWksaHV0KHIsZSxhKSx0aGlzLnNjZW5lLmFkZChsKSx7dHlwZTpwdXQuTElORSxkYXRhOmUsb2JqM2Q6bCx3aWR0aDphfX1jb25zdHtkYXRhOnIsb2JqM2Q6cyx3aWR0aDpsfT10O3JldHVybiBidXQodGhpcy5iYWNrZ3JvdW5kQ29sb3IscywodD0+KGE9PT1sJiZyJiZhaXQocixlKXx8aHV0KHQsZSxhKSx0KSksbik/e3R5cGU6cHV0LkxJTkUsZGF0YTplLG9iajNkOnMsd2lkdGg6YX06dH1jcmVhdGVNZXNoKHQsZSl7aWYoIWUudmlzaWJsZSlyZXR1cm4gbnVsbDtjb25zdHt2aXNpYmxlOm4sY29sb3I6byxvcGFjaXR5Oml9PWUsYT1kdXQodGhpcy5iYWNrZ3JvdW5kQ29sb3IsbyxudWxsIT1pP2k6MSkscj1uZXcgQXJ0KHtjb2xvcjphLHZpc2libGU6bn0pO3JldHVybiBuZXcgcHN0KHQscil9Y3JlYXRlT3JVcGRhdGVUcmlhbmdsZU9iamVjdCh0LGUsbil7Y29uc3R7c2l6ZTpvfT1uLGk9bypNYXRoLnNxcnQoMykvMixhPW5ldyBGbG9hdDMyQXJyYXkoW2UueC1vLzIsZS55LWkvMyxlLngrby8yLGUueS1pLzMsZS54LGUueSsyKmkvM10pO2lmKCF0KXtjb25zdCB0PW5ldyBxcnQ7Z3V0KHQsYSk7Y29uc3Qgbz10aGlzLmNyZWF0ZU1lc2godCxuKTtyZXR1cm4gbnVsbD09PW8/bnVsbDoodGhpcy5zY2VuZS5hZGQobykse3R5cGU6cHV0LlRSSUFOR0xFLGRhdGE6ZSxvYmozZDpvfSl9cmV0dXJuIGJ1dCh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLCh0PT4oZ3V0KHQsYSksdCkpLG4pP3t0eXBlOnB1dC5UUklBTkdMRSxkYXRhOmUsb2JqM2Q6dC5vYmozZH06dH1jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0LGUsbil7Y29uc3R7cmFkaXVzOm99PW4saT1uZXcgY3B0KG4ucmFkaXVzKTtpZighdCl7Y29uc3QgdD10aGlzLmNyZWF0ZU1lc2goaSxuKTtyZXR1cm4gbnVsbD09PXQ/bnVsbDoodC5wb3NpdGlvbi5zZXQoZS54LGUueSwwKSx0aGlzLnNjZW5lLmFkZCh0KSx7dHlwZTpwdXQuQ0lSQ0xFLGRhdGE6e2xvYzplLHJhZGl1czpvfSxvYmozZDp0fSl9cmV0dXJuIGJ1dCh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLCgoKT0+aSksbik/KHQub2JqM2QucG9zaXRpb24uc2V0KGUueCxlLnksMCkse3R5cGU6cHV0LkNJUkNMRSxkYXRhOntsb2M6ZSxyYWRpdXM6b30sb2JqM2Q6dC5vYmozZH0pOnR9Y3JlYXRlT3JVcGRhdGVUcmFwZXpvaWRPYmplY3QodCxlLG4sbyl7aWYoZS55IT09bi55KXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnB1dCBlcnJvcjogc3RhcnQueSAhPSBlbmQueS4iKTtjb25zdHthbHRpdHVkZTppfT1vLGE9Mi9NYXRoLnNxcnQoMykqaSxyPW5ldyBSbXQoW25ldyBRaXQoZS54LWEvMixlLnktaS8yKSxuZXcgUWl0KGUueCxlLnkraS8yKSxuZXcgUWl0KG4ueCxuLnkraS8yKSxuZXcgUWl0KG4ueCthLzIsbi55LWkvMildKTtyLmF1dG9DbG9zZT0hMDtjb25zdCBzPW5ldyBpbXQocik7aWYoIXQpe2NvbnN0IHQ9dGhpcy5jcmVhdGVNZXNoKHMsbyk7cmV0dXJuIG51bGw9PT10P251bGw6KHRoaXMuc2NlbmUuYWRkKHQpLHt0eXBlOnB1dC5UUkFQRVpPSUQsZGF0YTpbZSxuXSxvYmozZDp0fSl9cmV0dXJuIGJ1dCh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLCgoKT0+cyksbyk/e3R5cGU6cHV0LlRSQVBFWk9JRCxkYXRhOltlLG5dLG9iajNkOnQub2JqM2R9OnR9Zmx1c2goKXt0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnNjZW5lLHRoaXMuY29vcmRpbmF0b3IuZ2V0Q2FtZXJhKCkpfX1jbGFzcyBfdXR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlbmRlckNhY2hlPXQsdGhpcy5yZW5kZXJlcj1lfXNldExpbmUodCxlLG4pe2NvbnN0IG89dGhpcy5yZW5kZXJlci5jcmVhdGVPclVwZGF0ZUxpbmVPYmplY3QodGhpcy5yZW5kZXJDYWNoZS5nZXRGcm9tUHJldmlvdXNGcmFtZSh0KSxlLG4pO28mJnRoaXMucmVuZGVyQ2FjaGUuc2V0VG9DdXJyZW50RnJhbWUodCxvKX1zZXRUcmlhbmdsZSh0LGUsbil7Y29uc3Qgbz10aGlzLnJlbmRlcmVyLmNyZWF0ZU9yVXBkYXRlVHJpYW5nbGVPYmplY3QodGhpcy5yZW5kZXJDYWNoZS5nZXRGcm9tUHJldmlvdXNGcmFtZSh0KSxlLG4pO28mJnRoaXMucmVuZGVyQ2FjaGUuc2V0VG9DdXJyZW50RnJhbWUodCxvKX1zZXRDaXJjbGUodCxlLG4pe2NvbnN0IG89dGhpcy5yZW5kZXJlci5jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0aGlzLnJlbmRlckNhY2hlLmdldEZyb21QcmV2aW91c0ZyYW1lKHQpLGUsbik7byYmdGhpcy5yZW5kZXJDYWNoZS5zZXRUb0N1cnJlbnRGcmFtZSh0LG8pfXNldFRyYXBlem9pZCh0LGUsbixvKXtjb25zdCBpPXRoaXMucmVuZGVyZXIuY3JlYXRlT3JVcGRhdGVUcmFwZXpvaWRPYmplY3QodGhpcy5yZW5kZXJDYWNoZS5nZXRGcm9tUHJldmlvdXNGcmFtZSh0KSxlLG4sbyk7aSYmdGhpcy5yZW5kZXJDYWNoZS5zZXRUb0N1cnJlbnRGcmFtZSh0LGkpfX1jbGFzcyBDdXR7Y29uc3RydWN0b3IoKXt0aGlzLnByZXZGcmFtZUNhY2hlPW5ldyBNYXAsdGhpcy5jdXJyRnJhbWVDYWNoZT1uZXcgTWFwfWdldEZyb21QcmV2aW91c0ZyYW1lKHQpe2NvbnN0IGU9dGhpcy5wcmV2RnJhbWVDYWNoZS5nZXQodCk7cmV0dXJuIG51bGwhPWU/ZTpudWxsfXNldFRvQ3VycmVudEZyYW1lKHQsZSl7dGhpcy5jdXJyRnJhbWVDYWNoZS5zZXQodCxlKX1maW5hbGl6ZUZyYW1lQW5kR2V0UmVtb3ZlZCgpe2NvbnN0IHQ9W107Zm9yKGNvbnN0W2Usbl1vZiB0aGlzLnByZXZGcmFtZUNhY2hlLmVudHJpZXMoKSl0aGlzLmN1cnJGcmFtZUNhY2hlLmhhcyhlKXx8dC5wdXNoKG4pO3JldHVybiB0aGlzLnByZXZGcmFtZUNhY2hlPXRoaXMuY3VyckZyYW1lQ2FjaGUsdGhpcy5jdXJyRnJhbWVDYWNoZT1uZXcgTWFwLHR9fSEoZnVuY3Rpb24odCl7dFt0Lk5VTUJFUj0wXT0iTlVNQkVSIix0W3QuTkFOPTFdPSJOQU4ifSkobXV0fHwobXV0PXt9KSk7Y2xhc3MgTXV0IGV4dGVuZHMgY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5yYXdTZXJpZXNEYXRhPVtdLHRoaXMuc2VyaWVzPVtdLHRoaXMucGFpbnREaXJ0eT0hMCx0aGlzLnJlbmRlckNhY2hlPW5ldyBDdXQsdGhpcy5jb29yZGluYXRlSWRlbnRpZmllcj1udWxsLHRoaXMubGF5b3V0PXt4OjAsd2lkdGg6MSx5OjAsaGVpZ2h0OjF9LHRoaXMuZ2V0TWV0YWRhdGFNYXBJbXBsPXQuZ2V0TWV0YWRhdGFNYXAsdGhpcy5jb29yZGluYXRvcj10LmNvb3JkaW5hdG9yLHRoaXMucmVuZGVyZXI9dC5yZW5kZXJlcix0aGlzLnBhaW50QnJ1c2g9bmV3IF91dCh0aGlzLnJlbmRlckNhY2hlLHRoaXMucmVuZGVyZXIpfXNldExheW91dFJlY3QodCl7dGhpcy5sYXlvdXQueD09PXQueCYmdGhpcy5sYXlvdXQud2lkdGg9PT10LndpZHRoJiZ0aGlzLmxheW91dC55PT09dC55JiZ0aGlzLmxheW91dC5oZWlnaHQ9PT10LmhlaWdodHx8KHRoaXMucGFpbnREaXJ0eT0hMCksdGhpcy5sYXlvdXQ9dH1nZXRMYXlvdXRSZWN0KCl7cmV0dXJuIHRoaXMubGF5b3V0fWdldE1ldGFkYXRhTWFwKCl7cmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFNYXBJbXBsKCl9bWFya0FzUGFpbnREaXJ0eSgpe3RoaXMucGFpbnREaXJ0eT0hMH1yZW5kZXIoKXtpZih0aGlzLnRyYW5zZm9ybUNvb3JkaW5hdGVzSWZTdGFsZSgpLHRoaXMucGFpbnREaXJ0eSl7dGhpcy5yZWRyYXcoKTtmb3IoY29uc3QgdCBvZiB0aGlzLnJlbmRlckNhY2hlLmZpbmFsaXplRnJhbWVBbmRHZXRSZW1vdmVkKCkpdGhpcy5yZW5kZXJlci5kZXN0cm95T2JqZWN0KHQpO3RoaXMucGFpbnREaXJ0eT0hMX19aXNDb29yZGluYXRlVXBkYXRlZCgpe3JldHVybiB0aGlzLmNvb3JkaW5hdG9yLmdldFVwZGF0ZUlkZW50aWZpZXIoKSE9PXRoaXMuY29vcmRpbmF0ZUlkZW50aWZpZXJ9Y2xlYXJDb29yZGluYXRlSWRlbnRpZmllcigpe3RoaXMuY29vcmRpbmF0ZUlkZW50aWZpZXI9bnVsbH1zZXREYXRhKHQpe3RoaXMuY2xlYXJDb29yZGluYXRlSWRlbnRpZmllcigpLHRoaXMucmF3U2VyaWVzRGF0YT10fXRyYW5zZm9ybUNvb3JkaW5hdGVzSWZTdGFsZSgpe2lmKCF0aGlzLmlzQ29vcmRpbmF0ZVVwZGF0ZWQoKSlyZXR1cm47Y29uc3QgdD10aGlzLmdldExheW91dFJlY3QoKTt0aGlzLnNlcmllcz1uZXcgQXJyYXkodGhpcy5yYXdTZXJpZXNEYXRhLmxlbmd0aCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJhd1Nlcmllc0RhdGEubGVuZ3RoO2UrKyl7Y29uc3Qgbj10aGlzLnJhd1Nlcmllc0RhdGFbZV07dGhpcy5zZXJpZXNbZV09e2lkOm4uaWQscG9seWxpbmU6bmV3IEZsb2F0MzJBcnJheSgyKm4ucG9pbnRzLmxlbmd0aCl9O2ZvcihsZXQgbz0wO288bi5wb2ludHMubGVuZ3RoO28rKyl7Y29uc3RbaSxhXT10aGlzLmNvb3JkaW5hdG9yLnRyYW5zZm9ybURhdGFUb1VpQ29vcmQodCxbbi5wb2ludHNbb10ueCxuLnBvaW50c1tvXS55XSk7dGhpcy5zZXJpZXNbZV0ucG9seWxpbmVbMipvXT1pLHRoaXMuc2VyaWVzW2VdLnBvbHlsaW5lWzIqbysxXT1hfX10aGlzLmNvb3JkaW5hdGVJZGVudGlmaWVyPXRoaXMuY29vcmRpbmF0b3IuZ2V0VXBkYXRlSWRlbnRpZmllcigpLHRoaXMubWFya0FzUGFpbnREaXJ0eSgpfX17cmVjb3JkUGFydGl0aW9uKHQsZSxuKXtyZXR1cm4gdD97dHlwZTptdXQuTlVNQkVSLHBvbHlsaW5lOmV9Ont0eXBlOm11dC5OQU4scG9seWxpbmU6ZS5tYXAoKCh0LGUpPT5pc05hTih0KT9lJTI9PTA/bi54Om4ueTp0KSl9fXBhcnRpdGlvblBvbHlsaW5lKHQpe2NvbnN0IGU9W107bGV0IG49MCxvPSExO2NvbnN0IGk9dGhpcy5jb29yZGluYXRvci50cmFuc2Zvcm1EYXRhVG9VaUNvb3JkKHRoaXMuZ2V0TGF5b3V0UmVjdCgpLFswLDBdKSxhPXt4OmlbMF0seTppWzFdfTtsZXQgcj1udWxsO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSs9Mil7Y29uc3QgYT10W2ldLHM9dFtpKzFdLGw9aXNOYU4oYSl8fGlzTmFOKHMpO2whPT1vJiZuIT09aSYmKGUucHVzaCh0aGlzLnJlY29yZFBhcnRpdGlvbighbyx0LnNsaWNlKG4saSksbnVsbD09PXI/e3g6YSx5OnN9OnIpKSxuPWkpLGx8fChyPXt4OmEseTpzfSksbz1sfXJldHVybiBuIT09dC5sZW5ndGgtMSYmZS5wdXNoKHRoaXMucmVjb3JkUGFydGl0aW9uKCFvLHQuc2xpY2Uobix0Lmxlbmd0aCksbnVsbCE9cj9yOmEpKSxlfXJlZHJhdygpe3ZhciB0LGUsbjtmb3IoY29uc3QgbyBvZiB0aGlzLnNlcmllcyl7Y29uc3QgaT10aGlzLmdldE1ldGFkYXRhTWFwKClbby5pZF07aWYoIWkpY29udGludWU7aWYoby5wb2x5bGluZS5sZW5ndGglMiE9MCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBoYXZlIG9kZCBsZW5ndGgtZWQgcG9seWxpbmU6ICR7by5wb2x5bGluZS5sZW5ndGh9YCk7Y29uc3QgYT10aGlzLnBhcnRpdGlvblBvbHlsaW5lKG8ucG9seWxpbmUpO2Zvcihjb25zdFtyLHt0eXBlOnMscG9seWxpbmU6bH1db2YgYS5lbnRyaWVzKCkpaWYocz09PW11dC5OVU1CRVIpMj09PWwubGVuZ3RoP3RoaXMucGFpbnRCcnVzaC5zZXRDaXJjbGUoSlNPTi5zdHJpbmdpZnkoWyJjaXJjbGUiLG8uaWQscl0pLHt4OmxbMF0seTpsWzFdfSx7Y29sb3I6aS5jb2xvcix2aXNpYmxlOmkudmlzaWJsZSxvcGFjaXR5Om51bGwhPT0odD1pLm9wYWNpdHkpJiZ2b2lkIDAhPT10P3Q6MSxyYWRpdXM6NH0pOnRoaXMucGFpbnRCcnVzaC5zZXRMaW5lKEpTT04uc3RyaW5naWZ5KFsibGluZSIsby5pZCxyXSksbCx7Y29sb3I6aS5jb2xvcix2aXNpYmxlOmkudmlzaWJsZSxvcGFjaXR5Om51bGwhPT0oZT1pLm9wYWNpdHkpJiZ2b2lkIDAhPT1lP2U6MSx3aWR0aDoyfSk7ZWxzZSBpZighaS5hdXgpZm9yKGxldCB0PTA7dDxsLmxlbmd0aDt0Kz0yKXRoaXMucGFpbnRCcnVzaC5zZXRUcmlhbmdsZShKU09OLnN0cmluZ2lmeShbIk5hTiIsby5pZCxsW3RdLGxbdCsxXV0pLHt4OmxbdF0seTpsW3QrMV19LHtjb2xvcjppLmNvbG9yLHZpc2libGU6aS52aXNpYmxlLG9wYWNpdHk6bnVsbCE9PShuPWkub3BhY2l0eSkmJnZvaWQgMCE9PW4/bjoxLHNpemU6MTJ9KX19fWNsYXNzIHZ1dCBleHRlbmRzIHJpdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jYW1lcmE9bmV3IFVzdCgwLDFlMywxZTMsMCwwLDEwMCl9aXNZQXhpc1BvaW50ZWREb3duKCl7cmV0dXJuITF9c2V0RG9tQ29udGFpbmVyUmVjdCh0KXtzdXBlci5zZXREb21Db250YWluZXJSZWN0KHQpLHRoaXMuY2FtZXJhLmxlZnQ9dC54LHRoaXMuY2FtZXJhLnJpZ2h0PXQueCt0LndpZHRoLHRoaXMuY2FtZXJhLnRvcD10LnkrdC5oZWlnaHQsdGhpcy5jYW1lcmEuYm90dG9tPXQueSx0aGlzLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Z2V0Q2FtZXJhKCl7cmV0dXJuIHRoaXMuY2FtZXJhfX1jbGFzcyB4dXR7Y29uc3RydWN0b3IodCl7c3dpdGNoKHRoaXMubWV0YWRhdGFNYXA9e30sdGhpcy5zaG91bGRSZXBhaW50PSExLHRoaXMuY2FsbGJhY2tzPXQuY2FsbGJhY2tzLHQudHlwZSl7Y2FzZSBLMi5TVkc6dGhpcy5jb29yZGluYXRvcj1uZXcgcml0LHRoaXMucmVuZGVyZXI9bmV3IGxpdCh0LmNvbnRhaW5lcik7YnJlYWs7Y2FzZSBLMi5XRUJHTDp7Y29uc3QgZT1uZXcgdnV0O3RoaXMuY29vcmRpbmF0b3I9ZSx0aGlzLnJlbmRlcmVyPW5ldyB5dXQodC5jb250YWluZXIsZSx0LmRldmljZVBpeGVsUmF0aW8sdC5jYWxsYmFja3Mub25Db250ZXh0TG9zdCk7YnJlYWt9fXRoaXMucmVuZGVyZXIuc2V0VXNlRGFya01vZGUodC51c2VEYXJrTW9kZSksdGhpcy5zZXJpZXNMaW5lVmlldz1uZXcgTXV0KHtyZW5kZXJlcjp0aGlzLnJlbmRlcmVyLGNvb3JkaW5hdG9yOnRoaXMuY29vcmRpbmF0b3IsZ2V0TWV0YWRhdGFNYXA6KCk9PnRoaXMubWV0YWRhdGFNYXB9KSx0aGlzLnJlc2l6ZSh0LmRvbURpbWVuc2lvbil9ZGlzcG9zZSgpe31zZXRYU2NhbGVUeXBlKHQpe3RoaXMuY29vcmRpbmF0b3Iuc2V0WFNjYWxlKCRvdCh0KSksdGhpcy5zY2hlZHVsZVJlcGFpbnQoKX1zZXRZU2NhbGVUeXBlKHQpe3RoaXMuY29vcmRpbmF0b3Iuc2V0WVNjYWxlKCRvdCh0KSksdGhpcy5zY2hlZHVsZVJlcGFpbnQoKX1yZXNpemUodCl7dGhpcy5jb29yZGluYXRvci5zZXREb21Db250YWluZXJSZWN0KE9iamVjdC5hc3NpZ24oe3g6MCx5OjB9LHQpKSx0aGlzLnJlbmRlcmVyLm9uUmVzaXplKE9iamVjdC5hc3NpZ24oe3g6MCx5OjB9LHQpKSx0aGlzLnNlcmllc0xpbmVWaWV3LnNldExheW91dFJlY3QoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt4OjAseTowfSkpLHRoaXMuc2NoZWR1bGVSZXBhaW50KCl9c2V0TWV0YWRhdGEodCl7bGV0IGU9ITE7T2JqZWN0LmVudHJpZXModCkuZm9yRWFjaCgoKFt0LG5dKT0+e2NvbnN0IG89dGhpcy5tZXRhZGF0YU1hcFt0XTtvJiZuLmNvbG9yPT09by5jb2xvciYmbi52aXNpYmxlPT09by52aXNpYmxlJiZuLm9wYWNpdHk9PT1vLm9wYWNpdHl8fChlPSEwKSx0aGlzLm1ldGFkYXRhTWFwW3RdPW59KSksZSYmdGhpcy5zZXJpZXNMaW5lVmlldy5tYXJrQXNQYWludERpcnR5KCksdGhpcy5zY2hlZHVsZVJlcGFpbnQoKX1zZXRWaWV3Qm94KHQpe3RoaXMuY29vcmRpbmF0b3Iuc2V0Vmlld0JveFJlY3Qoe3g6dC54WzBdLHdpZHRoOnQueFsxXS10LnhbMF0seTp0LnlbMF0saGVpZ2h0OnQueVsxXS10LnlbMF19KSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNldERhdGEodCl7dGhpcy5zZXJpZXNMaW5lVmlldy5zZXREYXRhKHQpLHRoaXMuc2NoZWR1bGVSZXBhaW50KCl9c2V0VXNlRGFya01vZGUodCl7dGhpcy5yZW5kZXJlci5zZXRVc2VEYXJrTW9kZSh0KSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNjaGVkdWxlUmVwYWludCgpe3RoaXMuc2hvdWxkUmVwYWludHx8KHRoaXMuc2hvdWxkUmVwYWludD0hMCxzZWxmLnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLnJlcGFpbnQoKSx0aGlzLnNob3VsZFJlcGFpbnQ9ITF9KSkpfXJlcGFpbnQoKXt0aGlzLnNlcmllc0xpbmVWaWV3LnJlbmRlcigpLHRoaXMucmVuZGVyZXIuZmx1c2goKSx0aGlzLmNhbGxiYWNrcy5vbkRyYXdFbmQoKX19ZnVuY3Rpb24gT3V0KHQpe2lmKHQuaW5jbHVkZXMoIi8iKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiV29ya2VyIGZhY3Rvcnkgb25seSBhbGxvd3MgZmlsZSBuYW1lIGFuZCBubyByZXNvdXJjZSBwYXRoLiIpO3JldHVybiBuZXcgV29ya2VyKHQpfSEoZnVuY3Rpb24odCl7dFt0LlNFUklFU19EQVRBX1VQREFURUQ9MF09IlNFUklFU19EQVRBX1VQREFURUQiLHRbdC5TRVJJRVNfTUVUQURBVEFfQ0hBTkdFRD0xXT0iU0VSSUVTX01FVEFEQVRBX0NIQU5HRUQiLHRbdC5TQ0FMRV9VUERBVEVEPTJdPSJTQ0FMRV9VUERBVEVEIix0W3QuVklFV19CT1hfVVBEQVRFRD0zXT0iVklFV19CT1hfVVBEQVRFRCIsdFt0LklOSVQ9NF09IklOSVQiLHRbdC5ET01fUkVTSVpFRD01XT0iRE9NX1JFU0laRUQiLHRbdC5EQVJLX01PREVfVVBEQVRFRD02XT0iREFSS19NT0RFX1VQREFURUQifSkodXV0fHwodXV0PXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5PTl9SRURSQVdfRU5EPTBdPSJPTl9SRURSQVdfRU5EIix0W3QuT05fQ09OVEVYVF9MT1NUPTFdPSJPTl9DT05URVhUX0xPU1QifSkoZnV0fHwoZnV0PXt9KSk7Y2xhc3MgUHV0e2NvbnN0cnVjdG9yKHQpe2lmKHRoaXMuY2FsbGJhY2tzPXQuY2FsbGJhY2tzLHQudHlwZSE9PUsyLldFQkdMKXRocm93IG5ldyBSYW5nZUVycm9yKGBDYW5ub3QgdXNlIG5vbiBXRUJHTCByZW5kZXJlciBmb3IgdGhlIG9mZnNjcmVlbiBsaW5lIGNoYXJ0LiBSZWNlaXZlZCAke0syW3QudHlwZV19IGApO2NvbnN0IGU9bmV3IE1lc3NhZ2VDaGFubmVsO2UucG9ydDEub25tZXNzYWdlPXQ9Pnt0aGlzLm9uTWVzc2FnZUZyb21Xb3JrZXIodC5kYXRhKX0sdGhpcy50eE1lc3NhZ2VQb3J0PWUucG9ydDE7Y29uc3Qgbj10LmNvbnRhaW5lci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpO3RoaXMud29ya2VySW5zdGFuY2U9UHV0LndvcmtlclBvb2wuZ2V0TmV4dCgpO2NvbnN0IG89e3R5cGU6dXV0LklOSVQsY2FudmFzOm4sZGV2aWNlUGl4ZWxSYXRpbzp3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyxkaW06dC5kb21EaW1lbnNpb24scmVuZGVyZXJUeXBlOnQudHlwZSx1c2VEYXJrTW9kZTp0LnVzZURhcmtNb2RlfTt0aGlzLndvcmtlckluc3RhbmNlLnBvc3RNZXNzYWdlKG8sW24sZS5wb3J0Ml0pfWRpc3Bvc2UoKXt0aGlzLndvcmtlckluc3RhbmNlLmZyZWUoKSx0aGlzLnR4TWVzc2FnZVBvcnQuY2xvc2UoKX1zZXRYU2NhbGVUeXBlKHQpe3RoaXMuc2VuZE1lc3NhZ2Uoe3R5cGU6dXV0LlNDQUxFX1VQREFURUQsYXhpczoieCIsc2NhbGVUeXBlOnR9KX1zZXRZU2NhbGVUeXBlKHQpe3RoaXMuc2VuZE1lc3NhZ2Uoe3R5cGU6dXV0LlNDQUxFX1VQREFURUQsYXhpczoieSIsc2NhbGVUeXBlOnR9KX1yZXNpemUodCl7dGhpcy5zZW5kTWVzc2FnZSh7dHlwZTp1dXQuRE9NX1JFU0laRUQsZGltOnR9KX1zZXRNZXRhZGF0YSh0KXt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOnV1dC5TRVJJRVNfTUVUQURBVEFfQ0hBTkdFRCxtZXRhZGF0YTp0fSl9c2V0Vmlld0JveCh0KXt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOnV1dC5WSUVXX0JPWF9VUERBVEVELGV4dGVudDp0fSl9c2V0RGF0YSh0KXtjb25zdCBlPShmdW5jdGlvbiBuKHQpe2NvbnN0IGU9dC5yZWR1Y2UoKCh0LGUpPT50K2UucG9pbnRzLmxlbmd0aCksMCk7bGV0IG49MDtjb25zdCBvPW5ldyBGbG9hdDY0QXJyYXkoMiplKSxpPVtdO2Zvcihjb25zdCBlIG9mIHQpe2kucHVzaCh7aWQ6ZS5pZCxsZW5ndGg6ZS5wb2ludHMubGVuZ3RofSk7Zm9yKGxldCB0PTA7dDxlLnBvaW50cy5sZW5ndGg7dCsrKW9bbisrXT1lLnBvaW50c1t0XS54LG9bbisrXT1lLnBvaW50c1t0XS55fXJldHVybntpZHNBbmRMZW5ndGhzOmksZmxhdHRlbmVkU2VyaWVzOm8uYnVmZmVyfX0pKHQpO3RoaXMuc2VuZE1lc3NhZ2Uoe3R5cGU6dXV0LlNFUklFU19EQVRBX1VQREFURUQsY29tcGFjdERhdGFTZXJpZXM6ZX0sW2UuZmxhdHRlbmVkU2VyaWVzXSl9c2V0VXNlRGFya01vZGUodCl7dGhpcy5zZW5kTWVzc2FnZSh7dHlwZTp1dXQuREFSS19NT0RFX1VQREFURUQsdXNlRGFya01vZGU6dH0pfXNlbmRNZXNzYWdlKHQsZSl7ZT90aGlzLnR4TWVzc2FnZVBvcnQucG9zdE1lc3NhZ2UodCxlKTp0aGlzLnR4TWVzc2FnZVBvcnQucG9zdE1lc3NhZ2UodCl9b25NZXNzYWdlRnJvbVdvcmtlcih0KXtzd2l0Y2godC50eXBlKXtjYXNlIGZ1dC5PTl9SRURSQVdfRU5EOnRoaXMuY2FsbGJhY2tzLm9uRHJhd0VuZCgpO2JyZWFrO2Nhc2UgZnV0Lk9OX0NPTlRFWFRfTE9TVDp0aGlzLmNhbGxiYWNrcy5vbkNvbnRleHRMb3N0KCl9fX1mdW5jdGlvbiB3dXQodCxlKXtyZXR1cm4ieCI9PT1lP1swLHQud2lkdGhdOlt0LmhlaWdodCwwXX1mdW5jdGlvbiBrdXQodCxlKXtjb25zdCBuPU1hdGguZmxvb3IodC81MCk7cmV0dXJuIE1hdGgubWluKG4sZSl9ZnVuY3Rpb24gU3V0KHQsZSl7aWYoMSZ0JiYocWkoKSxUbSgwLCJsaW5lIiwyKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oKTtwdSgiemVybyIsMD09PXQpLGpwKCJ4MSIsbi5nZXREb21YKHQpKSgieDIiLG4uZ2V0RG9tWCh0KSkoInkyIixuLmRvbURpbS5oZWlnaHQpfX1mdW5jdGlvbiBEdXQodCxlKXtpZigxJnQmJihxaSgpLFRtKDAsImxpbmUiLDMpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgpO3B1KCJ6ZXJvIiwwPT09dCksanAoInkxIixuLmdldERvbVkodCkpKCJ4MiIsbi5kb21EaW0ud2lkdGgpKCJ5MiIsbi5nZXREb21ZKHQpKX19UHV0LndvcmtlclBvb2w9bmV3IGNsYXNze2NvbnN0cnVjdG9yKHQsZT0xMCxuPU91dCl7dGhpcy53b3JrZXJSZXNvdXJjZVBhdGg9dCx0aGlzLm1heFBvb2xTaXplPWUsdGhpcy53b3JrZXJGYWN0b3J5PW4sdGhpcy53b3JrZXJzPVtdfWdldE5leHQoKXtsZXQgdDtpZih0aGlzLndvcmtlcnMuZXZlcnkoKCh7YWN0aXZlQ291bnQ6dH0pPT50PjApKSYmdGhpcy53b3JrZXJzLmxlbmd0aDx0aGlzLm1heFBvb2xTaXplKXtjb25zdCBlPXRoaXMud29ya2VyRmFjdG9yeSh0aGlzLndvcmtlclJlc291cmNlUGF0aCk7dD17YWN0aXZlQ291bnQ6MCxwb3N0TWVzc2FnZToodCxuKT0+e2UucG9zdE1lc3NhZ2UodCxuKX0sZnJlZTooKT0+e3QuYWN0aXZlQ291bnQ9TWF0aC5tYXgodC5hY3RpdmVDb3VudC0xLDApfX0sdGhpcy53b3JrZXJzLnB1c2godCl9ZWxzZXtjb25zdCBlPXRoaXMud29ya2Vycy5tYXAoKCh7YWN0aXZlQ291bnQ6dH0pPT50KSksbj1lLmluZGV4T2YoTWF0aC5taW4oLi4uZSkpO3Q9dGhpcy53b3JrZXJzW25dfXJldHVybiB0LmFjdGl2ZUNvdW50KyssdH19KCJjaGFydF93b3JrZXIuanM/X2ZpbGVfaGFzaD0yNTMzODA2NSIpO2NsYXNzIEV1dHtnZXREb21YKHQpe3JldHVybiB0aGlzLnhTY2FsZS5mb3J3YXJkKHRoaXMudmlld0V4dGVudC54LHd1dCh0aGlzLmRvbURpbSwieCIpLHQpfWdldERvbVkodCl7cmV0dXJuIHRoaXMueVNjYWxlLmZvcndhcmQodGhpcy52aWV3RXh0ZW50Lnksd3V0KHRoaXMuZG9tRGltLCJ5IiksdCl9Z2V0WFRpY2tzKCl7cmV0dXJuIHRoaXMueFNjYWxlLnRpY2tzKHRoaXMudmlld0V4dGVudC54LGt1dCh0aGlzLmRvbURpbS53aWR0aCx0aGlzLnhHcmlkQ291bnQpKX1nZXRZVGlja3MoKXtyZXR1cm4gdGhpcy55U2NhbGUudGlja3ModGhpcy52aWV3RXh0ZW50Lnksa3V0KHRoaXMuZG9tRGltLmhlaWdodCx0aGlzLnlHcmlkQ291bnQpKX19ZnVuY3Rpb24gUnV0KHQsZSxuLG8saSxhKXtsZXQgcjtzd2l0Y2godC5kZWx0YU1vZGUpe2Nhc2UgV2hlZWxFdmVudC5ET01fREVMVEFfUElYRUw6cj0xO2JyZWFrO2Nhc2UgV2hlZWxFdmVudC5ET01fREVMVEFfTElORTpyPTg7YnJlYWs7Y2FzZSBXaGVlbEV2ZW50LkRPTV9ERUxUQV9QQUdFOnI9MjA7YnJlYWs7ZGVmYXVsdDpyPTEsY29uc29sZS53YXJuKGBVbmtub3duIFdoZWVsRXZlbnQgZGVsdGFNb2RlOiAke3QuZGVsdGFNb2RlfS5gKX1jb25zdCBzPXQuZGVsdGFZKnIsbD1zPDA/TWF0aC5tYXgocypvLC0uOTUpOnMqbyx7d2lkdGg6YyxoZWlnaHQ6ZH09bixwPVtpLnJldmVyc2UoZS54LFswLGNdLC10Lm9mZnNldFgqbCksaS5yZXZlcnNlKGUueCxbMCxjXSxjKyhjLXQub2Zmc2V0WCkqbCldLG09W2EucmV2ZXJzZShlLnksW2QsMF0sLXQub2Zmc2V0WSpsKSxhLnJldmVyc2UoZS55LFtkLDBdLGQrKGQtdC5vZmZzZXRZKSpsKV07cmV0dXJue3g6cFsxXTxwWzBdP1twWzFdLHBbMF1dOnAseTptWzFdPG1bMF0/W21bMV0sbVswXV06bX19RXV0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxFdXQpfSxFdXQuybVjbXA9dG8oe3R5cGU6RXV0LHNlbGVjdG9yczpbWyJsaW5lLWNoYXJ0LWdyaWQtdmlldyJdXSxpbnB1dHM6e3ZpZXdFeHRlbnQ6InZpZXdFeHRlbnQiLHhTY2FsZToieFNjYWxlIix4R3JpZENvdW50OiJ4R3JpZENvdW50Iix5U2NhbGU6InlTY2FsZSIseUdyaWRDb3VudDoieUdyaWRDb3VudCIsZG9tRGltOiJkb21EaW0ifSxkZWNsczozLHZhcnM6Mixjb25zdHM6W1sieTEiLCIwIiwzLCJ6ZXJvIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbIngxIiwiMCIsMywiemVybyIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJ5MSIsIjAiXSxbIngxIiwiMCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYocWkoKSxSbSgwLCJzdmciKSxRcCgxLFN1dCwxLDUsImxpbmUiLDApLFFwKDIsRHV0LDEsNSwibGluZSIsMSksQW0oKSksMiZlJiYocmMoMSksRG0oIm5nRm9yT2YiLG4uZ2V0WFRpY2tzKCkpLHJjKDEpLERtKCJuZ0Zvck9mIixuLmdldFlUaWNrcygpKSl9LGRpcmVjdGl2ZXM6W2xNXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgc3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGxpbmVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgc3Ryb2tlOiAjY2NjO1xuICAgICAgICBzdHJva2Utd2lkdGg6IDFweDtcbiAgICAgIH1cblxuICAgICAgLnplcm9bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgc3Ryb2tlOiAjYWFhO1xuICAgICAgICBzdHJva2Utd2lkdGg6IDEuNXB4O1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChFdXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibGluZS1jaGFydC1ncmlkLXZpZXciLHRlbXBsYXRlOic8c3ZnPlxuICAgIDxsaW5lXG4gICAgICAqbmdGb3I9ImxldCB0aWNrIG9mIGdldFhUaWNrcygpIlxuICAgICAgW2NsYXNzLnplcm9dPSJ0aWNrID09PSAwIlxuICAgICAgW2F0dHIueDFdPSJnZXREb21YKHRpY2spIlxuICAgICAgeTE9IjAiXG4gICAgICBbYXR0ci54Ml09ImdldERvbVgodGljaykiXG4gICAgICBbYXR0ci55Ml09ImRvbURpbS5oZWlnaHQiXG4gICAgPjwvbGluZT5cbiAgICA8bGluZVxuICAgICAgKm5nRm9yPSJsZXQgdGljayBvZiBnZXRZVGlja3MoKSJcbiAgICAgIFtjbGFzcy56ZXJvXT0idGljayA9PT0gMCJcbiAgICAgIHgxPSIwIlxuICAgICAgW2F0dHIueTFdPSJnZXREb21ZKHRpY2spIlxuICAgICAgW2F0dHIueDJdPSJkb21EaW0ud2lkdGgiXG4gICAgICBbYXR0ci55Ml09ImdldERvbVkodGljaykiXG4gICAgPjwvbGluZT5cbiAgPC9zdmc+JyxzdHlsZXM6WyJcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgbGluZSB7XG4gICAgICAgIHN0cm9rZTogI2NjYztcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gICAgICB9XG5cbiAgICAgIC56ZXJvIHtcbiAgICAgICAgc3Ryb2tlOiAjYWFhO1xuICAgICAgICBzdHJva2Utd2lkdGg6IDEuNXB4O1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse3ZpZXdFeHRlbnQ6W3t0eXBlOnh5fV0seFNjYWxlOlt7dHlwZTp4eX1dLHhHcmlkQ291bnQ6W3t0eXBlOnh5fV0seVNjYWxlOlt7dHlwZTp4eX1dLHlHcmlkQ291bnQ6W3t0eXBlOnh5fV0sZG9tRGltOlt7dHlwZTp4eX1dfSk7Y29uc3QgQXV0PVsiZG90cyJdO2Z1bmN0aW9uIFR1dCh0LGUpe2lmKDEmdCYmKHFpKCksVG0oMCwiY2lyY2xlIiwxMikpLDImdCl7Y29uc3QgdD1ZbSgpLiRpbXBsaWNpdCxlPVltKDIpO2pwKCJjeCIsZS5nZXREb21YKHQucG9pbnQueCkpKCJjeSIsZS5nZXREb21ZKHQucG9pbnQueSkpKCJmaWxsIix0Lm1ldGFkYXRhLmNvbG9yKX19ZnVuY3Rpb24gTnV0KHQsZSl7aWYoMSZ0JiYocWkoKSxObSgwKSxRcCgxLFR1dCwxLDMsImNpcmNsZSIsMTEpLHptKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPVltKDIpO3JjKDEpLERtKCJuZ0lmIixuLnNob3VsZFJlbmRlclRvb2x0aXBQb2ludCh0LnBvaW50KSl9fWZ1bmN0aW9uIHp1dCh0LGUpe2lmKDEmdCYmKHFpKCksTm0oMCksUXAoMSxOdXQsMiwxLCJuZy1jb250YWluZXIiLDEwKSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEbSgibmdGb3JPZiIsdC5jdXJzb3JlZERhdGEpKCJuZ0ZvclRyYWNrQnkiLHQudHJhY2tCeVNlcmllc05hbWUpfX1mdW5jdGlvbiBJdXQodCxlKXtpZigxJnQmJihxaSgpLFRtKDAsInJlY3QiLDEzKSksMiZ0KXtjb25zdCB0PVltKCk7anAoIngiLHQuem9vbUJveEluVWlDb29yZGluYXRlLngpKCJ3aWR0aCIsdC56b29tQm94SW5VaUNvb3JkaW5hdGUud2lkdGgpKCJ5Iix0Lnpvb21Cb3hJblVpQ29vcmRpbmF0ZS55KSgiaGVpZ2h0Iix0Lnpvb21Cb3hJblVpQ29vcmRpbmF0ZS5oZWlnaHQpfX1jb25zdCBIdXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm57ZGF0YTp0LGN1cnNvckxvY2F0aW9uSW5EYXRhQ29vcmQ6ZX19O2Z1bmN0aW9uIEZ1dCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTQpLEltKDEsMTUpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpLGU9JHAoMTEpO3JjKDEpLERtKCJuZ1RlbXBsYXRlT3V0bGV0Iix0LnRvb2x0aXBUZW1wbGF0ZT90LnRvb2x0aXBUZW1wbGF0ZTplKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLHZoKDIsSHV0LHQuY3Vyc29yZWREYXRhLHQuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZCkpfX1mdW5jdGlvbiBMdXQodCxlKXtpZigxJnQmJihObSgwKSxSbSgxLCJ0ciIsMTcpLFJtKDIsInRkIiwxOCksVG0oMywic3BhbiIpLEFtKCksUm0oNCwidGQiLDE5KSxrdSg1KSxBbSgpLFJtKDYsInRkIiksa3UoNyksQW0oKSxSbSg4LCJ0ZCIpLGt1KDkpLEFtKCksQW0oKSx6bSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7cmMoMyksZHUoImJhY2tncm91bmQtY29sb3IiLHQubWV0YWRhdGEuY29sb3IpLHJjKDIpLFN1KHQubWV0YWRhdGEuZGlzcGxheU5hbWUpLHJjKDIpLFN1KHQucG9pbnQueSkscmMoMiksU3UodC5wb2ludC54KX19ZnVuY3Rpb24gQnV0KHQsZSl7aWYoMSZ0JiYoUm0oMCwidGFibGUiKSxSbSgxLCJ0aGVhZCIpLFJtKDIsInRyIiksVG0oMywidGgiLDE2KSxSbSg0LCJ0aCIpLGt1KDUsIk5hbWUiKSxBbSgpLFJtKDYsInRoIiksa3UoNywiWSIpLEFtKCksUm0oOCwidGgiKSxrdSg5LCJYIiksQW0oKSxBbSgpLEFtKCksUm0oMTAsInRib2R5IiksUXAoMTEsTHV0LDEwLDUsIm5nLWNvbnRhaW5lciIsMTApLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PWUuZGF0YSxuPVltKCk7cmMoMTEpLERtKCJuZ0Zvck9mIix0KSgibmdGb3JUcmFja0J5IixuLnRyYWNrQnlTZXJpZXNOYW1lKX19dmFyIFZ1dDtmdW5jdGlvbiBqdXQodCl7cmV0dXJuIHQuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCl9IShmdW5jdGlvbih0KXt0W3QuTk9ORT0wXT0iTk9ORSIsdFt0LkRSQUdfWk9PTUlORz0xXT0iRFJBR19aT09NSU5HIix0W3QuU0NST0xMX1pPT01JTkc9Ml09IlNDUk9MTF9aT09NSU5HIix0W3QuUEFOTklORz0zXT0iUEFOTklORyJ9KShWdXR8fChWdXQ9e30pKTtjbGFzcyBVdXR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmNoYW5nZURldGVjdG9yPXQsdGhpcy5zY3JvbGxTdHJhdGVneT1lLHRoaXMub25WaWV3RXh0ZW50Q2hhbmdlPW5ldyBMaCx0aGlzLm9uVmlld0V4dGVudFJlc2V0PW5ldyBMaCx0aGlzLkludGVyYWN0aW9uU3RhdGU9VnV0LHRoaXMuc3RhdGU9VnV0Lk5PTkUsdGhpcy5zcGVjaWFsS2V5UHJlc3NlZD0hMSx0aGlzLnpvb21Cb3hJblVpQ29vcmRpbmF0ZT17eDowLHdpZHRoOjAsaGVpZ2h0OjAseTowfSx0aGlzLnRvb2x0aXBQb3NpdGlvbnM9W3tvZmZzZXRZOjUsb3JpZ2luWDoic3RhcnQiLG92ZXJsYXlYOiJzdGFydCIsb3JpZ2luWToiYm90dG9tIixvdmVybGF5WToidG9wIn0se29mZnNldFk6NSxvcmlnaW5YOiJlbmQiLG92ZXJsYXlYOiJlbmQiLG9yaWdpblk6ImJvdHRvbSIsb3ZlcmxheVk6InRvcCJ9LHtvZmZzZXRZOi0xNSxvcmlnaW5YOiJzdGFydCIsb3ZlcmxheVg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJib3R0b20ifSx7b2Zmc2V0WTotMTUsb3JpZ2luWDoiZW5kIixvdmVybGF5WDoiZW5kIixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJib3R0b20ifSx7b2Zmc2V0WDo1LG9yaWdpblg6ImVuZCIsb3ZlcmxheVg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJ0b3AifSx7b2Zmc2V0WDotNSxvcmlnaW5YOiJzdGFydCIsb3ZlcmxheVg6ImVuZCIsb3JpZ2luWToidG9wIixvdmVybGF5WToidG9wIn1dLHRoaXMuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZD1udWxsLHRoaXMuY3Vyc29yZWREYXRhPVtdLHRoaXMudG9vbHRpcERpc3BsYXlBdHRhY2hlZD0hMSx0aGlzLnNob3dab29tSW5zdHJ1Y3Rpb249ITEsdGhpcy5kcmFnU3RhcnRDb29yZD1udWxsLHRoaXMuaXNDdXJzb3JJbnNpZGU9ITEsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBJfW5nQWZ0ZXJWaWV3SW5pdCgpe29lKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJkYmxjbGljayIse3Bhc3NpdmU6ITB9KS5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLm9uVmlld0V4dGVudFJlc2V0LmVtaXQoKSx0aGlzLnN0YXRlPVZ1dC5OT05FLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9KSksb2Uod2luZG93LCJrZXlkb3duIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10aGlzLnNob3VsZFBhbih0KTtlIT09dGhpcy5zcGVjaWFsS2V5UHJlc3NlZCYmKHRoaXMuc3BlY2lhbEtleVByZXNzZWQ9ZSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpKX0pKSxvZSh3aW5kb3csImtleXVwIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10aGlzLnNob3VsZFBhbih0KTtlIT09dGhpcy5zcGVjaWFsS2V5UHJlc3NlZCYmKHRoaXMuc3BlY2lhbEtleVByZXNzZWQ9ZSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpKX0pKSxvZSh0aGlzLmRvdHNDb250YWluZXIubmF0aXZlRWxlbWVudCwibW91c2Vkb3duIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10aGlzLnN0YXRlLG49dGhpcy5zaG91bGRQYW4odCk/VnV0LlBBTk5JTkc6VnV0LkRSQUdfWk9PTUlORztlPT09VnV0Lk5PTkUmJm49PT1WdXQuRFJBR19aT09NSU5HJiYodGhpcy5kcmFnU3RhcnRDb29yZD17eDp0Lm9mZnNldFgseTp0Lm9mZnNldFl9LHRoaXMuem9vbUJveEluVWlDb29yZGluYXRlPXt4OnQub2Zmc2V0WCx3aWR0aDowLHk6dC5vZmZzZXRZLGhlaWdodDowfSksZSE9PW4mJih0aGlzLnN0YXRlPW4sdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKSl9KSksb2UodGhpcy5kb3RzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIm1vdXNldXAiLHtwYXNzaXZlOiEwfSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHQ9Pntjb25zdCBlPSh0LmJ1dHRvbnMmZ1EuTEVGVCk9PT1nUS5MRUZUO3RoaXMuZHJhZ1N0YXJ0Q29vcmQ9bnVsbDtjb25zdCBuPXRoaXMuem9vbUJveEluVWlDb29yZGluYXRlO2lmKCFlJiZ0aGlzLnN0YXRlPT09VnV0LkRSQUdfWk9PTUlORyYmbi53aWR0aD4wJiZuLmhlaWdodD4wKXtjb25zdCB0PXRoaXMuZ2V0RGF0YVgobi54KSxlPXRoaXMuZ2V0RGF0YVgobi54K24ud2lkdGgpLG89dGhpcy5nZXREYXRhWShuLnkrbi5oZWlnaHQpLGk9dGhpcy5nZXREYXRhWShuLnkpO3RoaXMub25WaWV3RXh0ZW50Q2hhbmdlLmVtaXQoe2RhdGFFeHRlbnQ6e3g6W3QsZV0seTpbbyxpXX19KX10aGlzLnN0YXRlIT09VnV0Lk5PTkUmJih0aGlzLnN0YXRlPVZ1dC5OT05FLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCkpfSkpLG9lKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJtb3VzZWVudGVyIix7cGFzc2l2ZTohMH0pLnBpcGUoSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5pc0N1cnNvckluc2lkZT0hMCx0aGlzLnVwZGF0ZVRvb2x0aXAodCksdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKX0pKSxvZSh0aGlzLmRvdHNDb250YWluZXIubmF0aXZlRWxlbWVudCwibW91c2VsZWF2ZSIse3Bhc3NpdmU6ITB9KS5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgodD0+e3RoaXMuZHJhZ1N0YXJ0Q29vcmQ9bnVsbCx0aGlzLmlzQ3Vyc29ySW5zaWRlPSExLHRoaXMudXBkYXRlVG9vbHRpcCh0KSx0aGlzLnN0YXRlPVZ1dC5OT05FLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9KSksb2UodGhpcy5kb3RzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIm1vdXNlbW92ZSIse3Bhc3NpdmU6ITB9KS5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgodD0+e3N3aXRjaCh0aGlzLnN0YXRlKXtjYXNlIFZ1dC5TQ1JPTExfWk9PTUlORzp0aGlzLnN0YXRlPVZ1dC5OT05FLHRoaXMudXBkYXRlVG9vbHRpcCh0KSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO2JyZWFrO2Nhc2UgVnV0Lk5PTkU6dGhpcy51cGRhdGVUb29sdGlwKHQpLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7YnJlYWs7Y2FzZSBWdXQuUEFOTklORzp7Y29uc3QgZT0tdC5tb3ZlbWVudFgsbj0tdC5tb3ZlbWVudFkse3dpZHRoOm8saGVpZ2h0Oml9PXRoaXMuZG9tRGltLGE9dGhpcy5nZXREYXRhWChlKSxyPXRoaXMuZ2V0RGF0YVgobytlKSxzPXRoaXMuZ2V0RGF0YVkoaStuKSxsPXRoaXMuZ2V0RGF0YVkobik7dGhpcy5vblZpZXdFeHRlbnRDaGFuZ2UuZW1pdCh7ZGF0YUV4dGVudDp7eDpbYSxyXSx5OltzLGxdfX0pO2JyZWFrfWNhc2UgVnV0LkRSQUdfWk9PTUlORzp7aWYoIXRoaXMuZHJhZ1N0YXJ0Q29vcmQpYnJlYWs7Y29uc3QgZT1bdGhpcy5kcmFnU3RhcnRDb29yZC54LHQub2Zmc2V0WF0sbj1bdGhpcy5kcmFnU3RhcnRDb29yZC55LHQub2Zmc2V0WV07dGhpcy56b29tQm94SW5VaUNvb3JkaW5hdGU9e3g6TWF0aC5taW4oLi4uZSksd2lkdGg6TWF0aC5tYXgoLi4uZSktTWF0aC5taW4oLi4uZSkseTpNYXRoLm1pbiguLi5uKSxoZWlnaHQ6TWF0aC5tYXgoLi4ubiktTWF0aC5taW4oLi4ubil9fXRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9fSkpLG9lKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJ3aGVlbCIse3Bhc3NpdmU6ITF9KS5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSksemUoKHQ9Pntjb25zdCBlPSF0LmN0cmxLZXkmJiF0LnNoaWZ0S2V5JiZ0LmFsdEtleTtyZXR1cm4gdGhpcy5zaG93Wm9vbUluc3RydWN0aW9uPSFlLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCksZT8odC5wcmV2ZW50RGVmYXVsdCgpLEV0KHQpKTphZSgzZTMpLnBpcGUoRmUoKCgpPT57dGhpcy5zaG93Wm9vbUluc3RydWN0aW9uPSExLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9KSksSXQoKCgpPT5udWxsKSkpfSkpLGNlKCh0PT5Cb29sZWFuKHQpKSkpLnN1YnNjcmliZSgodD0+e3RoaXMub25WaWV3RXh0ZW50Q2hhbmdlLmVtaXQoe2RhdGFFeHRlbnQ6UnV0KHQsdGhpcy52aWV3RXh0ZW50LHRoaXMuZG9tRGltLC4wMSx0aGlzLnhTY2FsZSx0aGlzLnlTY2FsZSl9KSx0aGlzLnN0YXRlIT09VnV0LlNDUk9MTF9aT09NSU5HJiYodGhpcy5zdGF0ZT1WdXQuU0NST0xMX1pPT01JTkcsdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKSl9KSl9bmdPbkNoYW5nZXMoKXt0aGlzLnVwZGF0ZUN1cnNvcmVkRGF0YUFuZFRvb2x0aXBWaXNpYmlsaXR5KCl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfXNob3VsZFBhbih0KXtjb25zdCBlPXQuc2hpZnRLZXl8fHQuYWx0S2V5O2lmKHQgaW5zdGFuY2VvZiBLZXlib2FyZEV2ZW50KXJldHVybiBlO2NvbnN0IG49KHQuYnV0dG9ucyZnUS5MRUZUKT09PWdRLkxFRlQsbz0odC5idXR0b25zJmdRLk1JRERMRSk9PT1nUS5NSURETEU7cmV0dXJuISghbiYmIW8pJiYobyYmIW58fGUpfXRyYWNrQnlTZXJpZXNOYW1lKHQsZSl7cmV0dXJuIGUuaWR9Z2V0RG9tWCh0KXtyZXR1cm4gdGhpcy54U2NhbGUuZm9yd2FyZCh0aGlzLnZpZXdFeHRlbnQueCx3dXQodGhpcy5kb21EaW0sIngiKSx0KX1nZXREYXRhWCh0KXtyZXR1cm4gdGhpcy54U2NhbGUucmV2ZXJzZSh0aGlzLnZpZXdFeHRlbnQueCx3dXQodGhpcy5kb21EaW0sIngiKSx0KX1nZXREb21ZKHQpe3JldHVybiB0aGlzLnlTY2FsZS5mb3J3YXJkKHRoaXMudmlld0V4dGVudC55LHd1dCh0aGlzLmRvbURpbSwieSIpLHQpfWdldERhdGFZKHQpe3JldHVybiB0aGlzLnlTY2FsZS5yZXZlcnNlKHRoaXMudmlld0V4dGVudC55LHd1dCh0aGlzLmRvbURpbSwieSIpLHQpfXNob3VsZFJlbmRlclRvb2x0aXBQb2ludCh0KXtyZXR1cm4gbnVsbCE9PXQmJiFpc05hTih0LngpJiYhaXNOYU4odC55KX11cGRhdGVUb29sdGlwKHQpe3RoaXMuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZD17eDp0aGlzLmdldERhdGFYKHQub2Zmc2V0WCkseTp0aGlzLmdldERhdGFZKHQub2Zmc2V0WSl9LHRoaXMudXBkYXRlQ3Vyc29yZWREYXRhQW5kVG9vbHRpcFZpc2liaWxpdHkoKX1vblRvb2x0aXBEaXNwbGF5RGV0YWNoZWQoKXt0aGlzLnRvb2x0aXBEaXNwbGF5QXR0YWNoZWQ9ITF9dXBkYXRlQ3Vyc29yZWREYXRhQW5kVG9vbHRpcFZpc2liaWxpdHkoKXtjb25zdCB0PXRoaXMuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZDtpZihudWxsPT09dClyZXR1cm4gdGhpcy5jdXJzb3JlZERhdGE9W10sdm9pZCh0aGlzLnRvb2x0aXBEaXNwbGF5QXR0YWNoZWQ9ITEpO3RoaXMuY3Vyc29yZWREYXRhPXRoaXMuaXNDdXJzb3JJbnNpZGU/dGhpcy5zZXJpZXNEYXRhLm1hcCgodD0+KHtzZXJpZXNEYXR1bTp0LG1ldGFkYXRhOnRoaXMuc2VyaWVzTWV0YWRhdGFNYXBbdC5pZF19KSkpLmZpbHRlcigoKHttZXRhZGF0YTp0fSk9PnQmJnQudmlzaWJsZSYmIUJvb2xlYW4odC5hdXgpKSkubWFwKCgoe3Nlcmllc0RhdHVtOmUsbWV0YWRhdGE6bn0pPT57Y29uc3Qgbz0oZnVuY3Rpb24gaSh0LGUpe2NvbnN0IG49TWF0aC5taW4ocDUodC5tYXAoKCh7eDp0fSk9PnQpKSxlKSx0Lmxlbmd0aC0xKSxvPU1hdGgubWF4KDAsbi0xKTtyZXR1cm4gTWF0aC5hYnModFtvXS54LWUpLU1hdGguYWJzKHRbbl0ueC1lKTw9MD9vOm59KShlLnBvaW50cyx0LngpO3JldHVybntpZDplLmlkLGNsb3Nlc3RQb2ludEluZGV4Om8scG9pbnQ6ZS5wb2ludHNbb10sbWV0YWRhdGE6bn19KSkuZmlsdGVyKCh0PT50KSk6W10sdGhpcy50b29sdGlwRGlzcGxheUF0dGFjaGVkPUJvb2xlYW4odGhpcy5jdXJzb3JlZERhdGEubGVuZ3RoKX19ZnVuY3Rpb24gR3V0KHQsZSxuLG8pe3JldHVybnttYWpvcjpbXSxtaW5vcjp0LnRpY2tzKG8sbikubWFwKCh0PT4oe3ZhbHVlOnQsdGlja0Zvcm1hdHRlZFN0cmluZzplLmZvcm1hdFRpY2sodCl9KSkpfX1VdXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFV1dCkoU20oVWcpLFNtKExGKSl9LFV1dC7JtWNtcD10byh7dHlwZTpVdXQsc2VsZWN0b3JzOltbImxpbmUtY2hhcnQtaW50ZXJhY3RpdmUtdmlldyJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKEF1dCw3LGhnKSxRaChnTCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5kb3RzQ29udGFpbmVyPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLm92ZXJsYXk9dC5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgic2hvdy16b29tLWluc3RydWN0aW9uIixuLnNob3dab29tSW5zdHJ1Y3Rpb24pfSxpbnB1dHM6e3Nlcmllc0RhdGE6InNlcmllc0RhdGEiLHNlcmllc01ldGFkYXRhTWFwOiJzZXJpZXNNZXRhZGF0YU1hcCIsdmlld0V4dGVudDoidmlld0V4dGVudCIseFNjYWxlOiJ4U2NhbGUiLHlTY2FsZToieVNjYWxlIixkb21EaW06ImRvbURpbSIsdG9vbHRpcE9yaWdpbkVsOiJ0b29sdGlwT3JpZ2luRWwiLHRvb2x0aXBUZW1wbGF0ZToidG9vbHRpcFRlbXBsYXRlIn0sb3V0cHV0czp7b25WaWV3RXh0ZW50Q2hhbmdlOiJvblZpZXdFeHRlbnRDaGFuZ2UiLG9uVmlld0V4dGVudFJlc2V0OiJvblZpZXdFeHRlbnRSZXNldCJ9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6TEYsdXNlRmFjdG9yeTpqdXQsZGVwczpbcExdfV0pLEJvXSxkZWNsczoxMix2YXJzOjE1LGNvbnN0czpbWzEsImRvdHMiXSxbImRvdHMiLCIiXSxbNCwibmdJZiJdLFsiY2xhc3MiLCJ6b29tLWJveCIsNCwibmdJZiJdLFsxLCJ6b29tLWluc3RydWN0aW9uIl0sWzEsImluc3RydWN0aW9uLWNvbnRlbnQiXSxbImNka092ZXJsYXlPcmlnaW4iLCIiLDEsInRvb2x0aXAtb3JpZ2luIl0sWyJ0b29sdGlwT3JpZ2luIiwiY2RrT3ZlcmxheU9yaWdpbiJdLFsiY2RrQ29ubmVjdGVkT3ZlcmxheSIsIiIsMywiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiIsImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIiwiY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9ucyIsImNka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneSIsImNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb24iLCJjZGtDb25uZWN0ZWRPdmVybGF5RmxleGlibGVEaW1lbnNpb25zIiwiY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW4iLCJkZXRhY2giXSxbImRlZmF1bHRUb29sdGlwIiwiIl0sWzQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsiciIsIjQiLDQsIm5nSWYiXSxbInIiLCI0Il0sWzEsInpvb20tYm94Il0sWzEsInRvb2x0aXAtY29udGFpbmVyIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdLFsxLCJjaXJjbGUtaGVhZGVyIl0sWzEsInRvb2x0aXAtcm93Il0sWzEsInRvb2x0aXAtcm93LWNpcmNsZSJdLFsxLCJuYW1lIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihxaSgpLFJtKDAsInN2ZyIsMCwxKSxRcCgyLHp1dCwyLDIsIm5nLWNvbnRhaW5lciIsMiksUXAoMyxJdXQsMSw0LCJyZWN0IiwzKSxBbSgpLFppKCksUm0oNCwiZGl2Iiw0KSxSbSg1LCJzcGFuIiw1KSxrdSg2LCJBbHQgKyBTY3JvbGwgdG8gWm9vbSIpLEFtKCksQW0oKSxUbSg3LCJkaXYiLDYsNyksUXAoOSxGdXQsMiw1LCJuZy10ZW1wbGF0ZSIsOCksVm0oImRldGFjaCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvb2x0aXBEaXNwbGF5RGV0YWNoZWQoKX0pKSxRcCgxMCxCdXQsMTIsMiwibmctdGVtcGxhdGUiLG51bGwsOSxpYikpLDImZSYmKHB1KCJwYW5uYWJsZSIsbi5zcGVjaWFsS2V5UHJlc3NlZCkoImRyYWdnYWJsZSIsbi5zdGF0ZT09PW4uSW50ZXJhY3Rpb25TdGF0ZS5OT05FfHxuLnN0YXRlPT09bi5JbnRlcmFjdGlvblN0YXRlLkRSQUdfWk9PTUlORykoInBhbm5pbmciLG4uc3RhdGU9PT1uLkludGVyYWN0aW9uU3RhdGUuUEFOTklORykscmMoMiksRG0oIm5nSWYiLG4uc3RhdGU9PT1uLkludGVyYWN0aW9uU3RhdGUuTk9ORSkscmMoMSksRG0oIm5nSWYiLG4uc3RhdGU9PT1uLkludGVyYWN0aW9uU3RhdGUuRFJBR19aT09NSU5HKSxyYyg2KSxEbSgiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiIsbi50b29sdGlwT3JpZ2luRWwpKCJjZGtDb25uZWN0ZWRPdmVybGF5T3BlbiIsbi50b29sdGlwRGlzcGxheUF0dGFjaGVkJiZuLnN0YXRlPT09bi5JbnRlcmFjdGlvblN0YXRlLk5PTkUpKCJjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zIixuLnRvb2x0aXBQb3NpdGlvbnMpKCJjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3kiLG4uc2Nyb2xsU3RyYXRlZ3kpKCJjZGtDb25uZWN0ZWRPdmVybGF5TG9ja1Bvc2l0aW9uIiwhMSkoImNka0Nvbm5lY3RlZE92ZXJsYXlGbGV4aWJsZURpbWVuc2lvbnMiLCEwKSgiY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW4iLCEwKSl9LGRpcmVjdGl2ZXM6W2RNLGZMLGdMLGxNLE1NXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt1c2VyLXNlbGVjdDpub25lfS5kb3RzW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5kb3RzLmRyYWdnYWJsZVtfbmdjb250ZW50LSVDT01QJV17Y3Vyc29yOmNyb3NzaGFpcn0uZG90cy5wYW5uYWJsZVtfbmdjb250ZW50LSVDT01QJV17Y3Vyc29yOmdyYWJ9LmRvdHMucGFubmluZ1tfbmdjb250ZW50LSVDT01QJV17Y3Vyc29yOmdyYWJiaW5nfS50b29sdGlwLXJvdy1jaXJjbGVbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2hlaWdodDoxMnB4O3dpZHRoOjEycHh9LnRvb2x0aXAtcm93LWNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0gPiBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjYpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMHB4O3dpZHRoOjEwcHh9LnRvb2x0aXAtb3JpZ2luW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0udG9vbHRpcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuODUpO2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiNmZmY7Y29udGFpbjpwYWludCBzdHlsZSBsYXlvdXQ7Zm9udC1zaXplOi45ZW07b3ZlcmZsb3c6YXV0bztwYWRkaW5nOjVweDtwb2ludGVyLWV2ZW50czpub25lO3dpZHRoOjEwMCV9dGhbX25nY29udGVudC0lQ09NUCVdLCB0ZFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggNXB4O3RleHQtYWxpZ246bGVmdH10aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmctYm90dG9tOjVweH0uem9vbS1ib3hbX25nY29udGVudC0lQ09NUCVde2ZpbGwtb3BhY2l0eTouMDM7ZmlsbDojMDAwO3N0cm9rZTojY2NjfS56b29tLWluc3RydWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bGVmdDowO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjEwcHg7dHJhbnNpdGlvbjpvcGFjaXR5IC41czt6LWluZGV4OjF9Lmluc3RydWN0aW9uLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNik7Ym9yZGVyLXJhZGl1czo1cHg7Y29sb3I6I2ZmZjtwYWRkaW5nOjVweCAxMHB4O3VzZXItc2VsZWN0Om5vbmV9LnNob3ctem9vbS1pbnN0cnVjdGlvbltfbmdob3N0LSVDT01QJV0gICAuem9vbS1pbnN0cnVjdGlvbltfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVdXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibGluZS1jaGFydC1pbnRlcmFjdGl2ZS12aWV3Iix0ZW1wbGF0ZVVybDoiLi9saW5lX2NoYXJ0X2ludGVyYWN0aXZlX3ZpZXcubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9saW5lX2NoYXJ0X2ludGVyYWN0aXZlX3ZpZXcuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxwcm92aWRlcnM6W3twcm92aWRlOkxGLHVzZUZhY3Rvcnk6anV0LGRlcHM6W3BMXX1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWd9LHt0eXBlOkxGfV19KSx7ZG90c0NvbnRhaW5lcjpbe3R5cGU6WmEsYXJnczpbImRvdHMiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0sb3ZlcmxheTpbe3R5cGU6WmEsYXJnczpbZ0xdfV0sc2VyaWVzRGF0YTpbe3R5cGU6eHl9XSxzZXJpZXNNZXRhZGF0YU1hcDpbe3R5cGU6eHl9XSx2aWV3RXh0ZW50Olt7dHlwZTp4eX1dLHhTY2FsZTpbe3R5cGU6eHl9XSx5U2NhbGU6W3t0eXBlOnh5fV0sZG9tRGltOlt7dHlwZTp4eX1dLHRvb2x0aXBPcmlnaW5FbDpbe3R5cGU6eHl9XSx0b29sdGlwVGVtcGxhdGU6W3t0eXBlOnh5fV0sb25WaWV3RXh0ZW50Q2hhbmdlOlt7dHlwZTpPeX1dLG9uVmlld0V4dGVudFJlc2V0Olt7dHlwZTpPeX1dLHNob3dab29tSW5zdHJ1Y3Rpb246W3t0eXBlOlB5LGFyZ3M6WyJjbGFzcy5zaG93LXpvb20taW5zdHJ1Y3Rpb24iXX1dfSk7Y29uc3QgV3V0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7ZnVuY3Rpb24gWXV0KHQsZSl7aWYoMSZ0JiYocWkoKSxSbSgwLCJnIiwxNyksUm0oMSwidGV4dCIpLGt1KDIpLEFtKCksUm0oMywidGl0bGUiKSxrdSg0KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPVltKCk7cmMoMSksZHUoImZvbnQiLG4uYXhpc0ZvbnQpLGpwKCJ4IixuLnRleHRYUG9zaXRpb24odC52YWx1ZSkpKCJ5IixuLnRleHRZUG9zaXRpb24odC52YWx1ZSkpLHJjKDEpLER1KCIgIix0LnRpY2tGb3JtYXR0ZWRTdHJpbmcsIiAiKSxyYygyKSxTdShuLmdldEZvcm1hdHRlcigpLmZvcm1hdExvbmcodC52YWx1ZSkpfX1mdW5jdGlvbiBxdXQodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiwyMCksUm0oMSwic3BhbiIpLGt1KDIpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49ZS5pbmRleCxvPWUubGFzdCxpPVltKDIpO2R1KCJsZWZ0IixpLmdldE1ham9yWFBvc2l0aW9uKHQpLCJweCIpKCJ3aWR0aCIsaS5nZXRNYWpvcldpZHRoU3RyaW5nKHQsbyxpLm1ham9yVGlja3NbbisxXSkpKCJib3R0b20iLGkuZ2V0TWFqb3JZUG9zaXRpb24odCksInB4IikoImhlaWdodCIsaS5nZXRNYWpvckhlaWdodFN0cmluZyh0LG8saS5tYWpvclRpY2tzW24rMV0pKSgiZm9udCIsaS5heGlzRm9udCkscHUoIm1ham9yLWxhYmVsIiwhMCkoImxhc3QiLG8pLERtKCJ0aXRsZSIsaS5nZXRGb3JtYXR0ZXIoKS5mb3JtYXRMb25nKHQuc3RhcnQpKSxyYygyKSxTdSh0LnRpY2tGb3JtYXR0ZWRTdHJpbmcpfX1mdW5jdGlvbiBadXQodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDE4KSxRcCgxLHF1dCwzLDE2LCJzcGFuIiwxOSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRG0oIm5nRm9yT2YiLHQubWFqb3JUaWNrcykoIm5nRm9yVHJhY2tCeSIsdC50cmFja0J5TWFqb3JUaWNrKX19Y2xhc3MgWHV0e2NvbnN0cnVjdG9yKCl7dGhpcy5vblZpZXdFeHRlbnRDaGFuZ2U9bmV3IExoLHRoaXMuZWRpdE1lbnVPcGVuZWQ9ITEsdGhpcy5tYWpvclRpY2tzPVtdLHRoaXMubWlub3JUaWNrcz1bXX1uZ09uQ2hhbmdlcygpe2xldCB0PW51bGw7Y29uc3QgZT1rdXQoIngiPT09dGhpcy5heGlzP3RoaXMuZG9tRGltLndpZHRoOnRoaXMuZG9tRGltLmhlaWdodCx0aGlzLmdyaWRDb3VudCk7dD10aGlzLnNjYWxlIGluc3RhbmNlb2YgdGl0PyhmdW5jdGlvbiBuKHQsZSxvLGkpe2NvbnN0W2Escl09aSxzPU1hdGguYWJzKHItYSk7aWYocz4uMDAxKXJldHVybiBHdXQodCxlLG8saSk7Y29uc3QgbD10LnRpY2tzKFthLHJdLG8pLGM9dC50aWNrcyhbYSxyXSwyKSxkPVtdO2xldCBwPShmdW5jdGlvbiBtKHQpe2NvbnN0IGU9dC50b0V4cG9uZW50aWFsKCkuc3BsaXQoImUtIiwyKTtyZXR1cm4gMj09PWUubGVuZ3RoP051bWJlcihlWzFdKS0xOjB9KShzKTtzPDEmJmMuZXZlcnkoKHQ9Pntjb25zdCBlPU1hdGguYWJzKHQpO3JldHVybiBlPj0wJiZlPDF9KSkmJihwKz0xKTtjb25zdCB1PW5ldyBNYXA7Zm9yKGNvbnN0IHQgb2YgYyl7Y29uc3RbbixvPSIiXT1TdHJpbmcodCkuc3BsaXQoIi4iLDIpLGk9TnVtYmVyKG4rIi4iK28uc2xpY2UoMCxwKSk7dS5zZXQoaSx7c3RhcnQ6aSx0aWNrRm9ybWF0dGVkU3RyaW5nOjA9PT1pPyLigJQiOmUuZm9ybWF0UmVhZGFibGUoaSl9KX1jb25zdCBmPTEwKk1hdGgucG93KDEwLC1wKTtmb3IoY29uc3QgdCBvZiBsKWZvcihjb25zdCBuIG9mWy4uLnUua2V5cygpXS5yZXZlcnNlKCkpe2NvbnN0IG89dC1uO2lmKG8+PTAmJm88Zil7aWYoMD09PW4pZC5wdXNoKHt2YWx1ZTp0LHRpY2tGb3JtYXR0ZWRTdHJpbmc6ZS5mb3JtYXRUaWNrKHQpfSk7ZWxzZXtjb25zdCBlPVN0cmluZyh0KS5zbGljZShTdHJpbmcobikubGVuZ3RoKTtkLnB1c2goe3ZhbHVlOnQsdGlja0Zvcm1hdHRlZFN0cmluZzpg4oCmJHtlfHwiMCJ9YH0pfWJyZWFrfX1yZXR1cm57bWFqb3I6QXJyYXkuZnJvbSh1LnZhbHVlcygpKSxtaW5vcjpkfX0pKHRoaXMuc2NhbGUsdGhpcy5nZXRGb3JtYXR0ZXIoKSxlLHRoaXMuYXhpc0V4dGVudCk6dGhpcy5zY2FsZSBpbnN0YW5jZW9mIG5pdD8oZnVuY3Rpb24gbyh0LGUsbixpKXtjb25zdFthLHJdPWk7bGV0IHM9dC50aWNrcyhpLDIpO2lmKHItYT49ODY0ZTV8fHMubGVuZ3RoPjIpcmV0dXJuIEd1dCh0LGUsbixpKTtjb25zdCBsPXQudGlja3MoaSxuKTtyZXR1cm57bWFqb3I6cy5tYXAoKHQ9Pih7c3RhcnQ6dCx0aWNrRm9ybWF0dGVkU3RyaW5nOmUuZm9ybWF0U2hvcnQodCl9KSkpLG1pbm9yOmwubWFwKCh0PT4oe3ZhbHVlOnQsdGlja0Zvcm1hdHRlZFN0cmluZzplLmZvcm1hdFRpY2sodCl9KSkpfX0pKHRoaXMuc2NhbGUsdGhpcy5nZXRGb3JtYXR0ZXIoKSxlLHRoaXMuYXhpc0V4dGVudCk6R3V0KHRoaXMuc2NhbGUsdGhpcy5nZXRGb3JtYXR0ZXIoKSxlLHRoaXMuYXhpc0V4dGVudCksdGhpcy5tYWpvclRpY2tzPXQubWFqb3IsdGhpcy5taW5vclRpY2tzPShmdW5jdGlvbiBpKHQsZSxuLG8sYT01KXtpZighdC5sZW5ndGh8fCFXdXQpcmV0dXJuIHQ7Y29uc3Qgcj0ieCI9PT1uPzE6LTE7bGV0IHM9bnVsbDtyZXR1cm4gdC5maWx0ZXIoKHQ9Pntjb25zdCBpPWUodCk7V3V0LmZvbnQ9bztjb25zdCBsPVd1dC5tZWFzdXJlVGV4dCh0LnRpY2tGb3JtYXR0ZWRTdHJpbmcpLGM9IngiPT09bj9sLndpZHRoOmwuYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQtbC5hY3R1YWxCb3VuZGluZ0JveERlc2NlbnQ7cmV0dXJuIG51bGw9PT1zPyEoaStyKmM8MHx8KHM9aStyKmMsMCkpOiEocioocytyKmEtaSk+MHx8KHM9aStyKmMsMCkpfSkpfSkodC5taW5vciwodD0+dGhpcy5nZXREb21Qb3ModC52YWx1ZSkpLHRoaXMuYXhpcywiMTFweCBSb2JvdG8sIHNhbnMtc2VyaWYiKX1nZXRGb3JtYXR0ZXIoKXt2YXIgdDtyZXR1cm4gbnVsbCE9PSh0PXRoaXMuY3VzdG9tRm9ybWF0dGVyKSYmdm9pZCAwIT09dD90OnRoaXMuc2NhbGUuZGVmYXVsdEZvcm1hdHRlcn10cmFja0J5TWlub3JUaWNrKHQpe3JldHVybiB0LnZhbHVlfXRyYWNrQnlNYWpvclRpY2sodCl7cmV0dXJuIHQuc3RhcnR9Z2V0RG9tUG9zKHQpe3JldHVybiB0aGlzLnNjYWxlLmZvcndhcmQodGhpcy5heGlzRXh0ZW50LHd1dCh0aGlzLmRvbURpbSx0aGlzLmF4aXMpLHQpfXRleHRYUG9zaXRpb24odCl7cmV0dXJuIngiPT09dGhpcy5heGlzP1N0cmluZyh0aGlzLmdldERvbVBvcyh0KSk6IjEwMCUifXRleHRZUG9zaXRpb24odCl7cmV0dXJuIngiPT09dGhpcy5heGlzPyIiOlN0cmluZyh0aGlzLmdldERvbVBvcyh0KSl9Z2V0TWFqb3JYUG9zaXRpb24odCl7cmV0dXJuInkiPT09dGhpcy5heGlzPzA6TWF0aC5taW4odGhpcy5kb21EaW0ud2lkdGgsTWF0aC5tYXgoMCx0aGlzLmdldERvbVBvcyh0LnN0YXJ0KSkpfWdldE1ham9yV2lkdGhTdHJpbmcodCxlLG4pe3JldHVybiJ5Ij09PXRoaXMuYXhpcz8iIjooZXx8IW4/dGhpcy5kb21EaW0ud2lkdGg6dGhpcy5nZXRNYWpvclhQb3NpdGlvbihuKSktdGhpcy5nZXRNYWpvclhQb3NpdGlvbih0KSsicHgifWdldE1ham9yWVBvc2l0aW9uKHQpe3JldHVybiJ4Ij09PXRoaXMuYXhpcz8wOnRoaXMuZG9tRGltLmhlaWdodC1NYXRoLm1pbih0aGlzLmRvbURpbS5oZWlnaHQsTWF0aC5tYXgoMCx0aGlzLmdldERvbVBvcyh0LnN0YXJ0KSkpfWdldE1ham9ySGVpZ2h0U3RyaW5nKHQsZSxuKXtyZXR1cm4ieCI9PT10aGlzLmF4aXM/IiI6KGV8fCFuP3RoaXMuZG9tRGltLmhlaWdodDp0aGlzLmdldE1ham9yWVBvc2l0aW9uKG4pKS10aGlzLmdldE1ham9yWVBvc2l0aW9uKHQpKyJweCJ9a2V5ZG93blByZXZlbnRDbG9zZSh0KXsiRXNjYXBlIiE9PXQua2V5JiZ0LnN0b3BQcm9wYWdhdGlvbigpfWV4dGVudENoYW5nZWQodCxlKXtsZXQgbj1OdW1iZXIodCksbz1OdW1iZXIoZSk7aWYobzxuKXtjb25zdCB0PW47bj1vLG89dH1OdW1iZXIuaXNGaW5pdGUobikmJk51bWJlci5pc0Zpbml0ZShvKSYmdGhpcy5vblZpZXdFeHRlbnRDaGFuZ2UuZW1pdChbbixvXSl9b25BeGlzVXBkYXRlTWVudU9wZW4odCxlLG4pe3QudmFsdWU9U3RyaW5nKG5bMF0pLGUudmFsdWU9U3RyaW5nKG5bMV0pLHQuZm9jdXMoKX1zZXRFZGl0TWVudU9wZW5lZCh0KXt0aGlzLmVkaXRNZW51T3BlbmVkPXR9fVh1dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WHV0KX0sWHV0Lsm1Y21wPXRvKHt0eXBlOlh1dCxzZWxlY3RvcnM6W1sibGluZS1jaGFydC1heGlzIl1dLGlucHV0czp7YXhpc0V4dGVudDoiYXhpc0V4dGVudCIsYXhpczoiYXhpcyIsc2NhbGU6InNjYWxlIixncmlkQ291bnQ6ImdyaWRDb3VudCIsZG9tRGltOiJkb21EaW0iLGN1c3RvbUZvcm1hdHRlcjoiY3VzdG9tRm9ybWF0dGVyIn0sb3V0cHV0czp7b25WaWV3RXh0ZW50Q2hhbmdlOiJvblZpZXdFeHRlbnRDaGFuZ2UifSxmZWF0dXJlczpbQm9dLGRlY2xzOjI2LHZhcnM6MTMsY29uc3RzOltbMSwibGluZSJdLFsxLCJtaW5vciJdLFsxLCJ0aWNrcyJdLFsiY2xhc3MiLCJtaW5vci10aWNrLWxhYmVsIiw0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInRpdGxlIiwiQ2xpY2sgdG8gbWFudWFsbHkgc2V0IG1pbiAmIG1heCB2YWx1ZXMiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIiwibWVudU9wZW5lZCIsIm1lbnVDbG9zZWQiXSxbIm1hdE1lbnVUcmlnZ2VyIiwibWF0TWVudVRyaWdnZXIiXSxbInN2Z0ljb24iLCJlZGl0XzI0cHgiXSxbImNsYXNzIiwibWFqb3IgdGlja3MiLDQsIm5nSWYiXSxbInhQb3NpdGlvbiIsImJlZm9yZSIsMywieVBvc2l0aW9uIl0sWyJtYW51YWxDb250cm9sIiwibWF0TWVudSJdLFsxLCJleHRlbnQtZWRpdC1pbnB1dCIsMywiY2xpY2siLCJrZXlkb3duIl0sWyJ0eXBlIiwibnVtYmVyIiwzLCJ2YWx1ZSJdLFsibWluSW5wdXQiLCIiXSxbIm1heElucHV0IiwiIl0sWzEsImV4dGVudC1lZGl0LWNvbnRyb2wiLDMsImtleWRvd24iXSxbIm1hdC1yYWlzZWQtYnV0dG9uIiwiIiwiY29sb3IiLCJwcmltYXJ5IiwxLCJleHRlbnQtZWRpdC1jaGFuZ2UiLDMsImNsaWNrIl0sWyJtYXQtc3Ryb2tlZC1idXR0b24iLCIiLDEsImV4dGVudC1lZGl0LWNhbmNlbCIsMywiY2xpY2siXSxbMSwibWlub3ItdGljay1sYWJlbCJdLFsxLCJtYWpvciIsInRpY2tzIl0sWzMsIm1ham9yLWxhYmVsIiwibGFzdCIsImxlZnQiLCJ3aWR0aCIsImJvdHRvbSIsImhlaWdodCIsImZvbnQiLCJ0aXRsZSIsNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWzMsInRpdGxlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiKSxUbSgxLCJkaXYiLDApLFJtKDIsImRpdiIsMSkscWkoKSxSbSgzLCJzdmciLDIpLFFwKDQsWXV0LDUsNiwiZyIsMyksQW0oKSxaaSgpLFJtKDUsImJ1dHRvbiIsNCw1KSxWbSgibWVudU9wZW5lZCIsKGZ1bmN0aW9uIGUoKXtoaSh0KTtjb25zdCBvPSRwKDE1KSxpPSRwKDIwKTtyZXR1cm4gbi5vbkF4aXNVcGRhdGVNZW51T3BlbihvLGksbi5heGlzRXh0ZW50KSxuLnNldEVkaXRNZW51T3BlbmVkKCEwKX0pKSgibWVudUNsb3NlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5zZXRFZGl0TWVudU9wZW5lZCghMSl9KSksVG0oNywibWF0LWljb24iLDYpLEFtKCksQW0oKSxRcCg4LFp1dCwyLDIsImRpdiIsNyksQW0oKSxSbSg5LCJtYXQtbWVudSIsOCw5KSxSbSgxMSwiZGl2IiwxMCksVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ua2V5ZG93blByZXZlbnRDbG9zZShlKX0pKSxSbSgxMiwibGFiZWwiKSxrdSgxMywibWluIiksQW0oKSxUbSgxNCwiaW5wdXQiLDExLDEyKSxBbSgpLFJtKDE2LCJkaXYiLDEwKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpfSkpKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5rZXlkb3duUHJldmVudENsb3NlKGUpfSkpLFJtKDE3LCJsYWJlbCIpLGt1KDE4LCJtYXgiKSxBbSgpLFRtKDE5LCJpbnB1dCIsMTEsMTMpLEFtKCksUm0oMjEsImRpdiIsMTQpLFZtKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5rZXlkb3duUHJldmVudENsb3NlKGUpfSkpLFJtKDIyLCJidXR0b24iLDE1KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7aGkodCk7Y29uc3Qgbz0kcCgxNSksaT0kcCgyMCksYT0kcCg2KTtyZXR1cm4gbi5leHRlbnRDaGFuZ2VkKG8udmFsdWUsaS52YWx1ZSksYS5jbG9zZU1lbnUoKX0pKSxrdSgyMywiIENoYW5nZSAiKSxBbSgpLFJtKDI0LCJidXR0b24iLDE2KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLCRwKDYpLmNsb3NlTWVudSgpfSkpLGt1KDI1LCIgQ2FuY2VsICIpLEFtKCksQW0oKSxBbSgpfWlmKDImZSl7Y29uc3QgdD0kcCgxMCk7ZnUobi5heGlzKyItYXhpcyBheGlzIikscmMoNCksRG0oIm5nRm9yT2YiLG4ubWlub3JUaWNrcykoIm5nRm9yVHJhY2tCeSIsbi50cmFja0J5TWlub3JUaWNrKSxyYygxKSxwdSgiZXh0ZW50LWVkaXQtYnV0dG9uIiwhMCkoImV4dGVudC1lZGl0LW1lbnUtb3BlbmVkIixuLmVkaXRNZW51T3BlbmVkKSxEbSgibWF0TWVudVRyaWdnZXJGb3IiLHQpLHJjKDMpLERtKCJuZ0lmIixuLm1ham9yVGlja3MubGVuZ3RoKSxyYygxKSxEbSgieVBvc2l0aW9uIiwieSI9PT1uLmF4aXM/ImFib3ZlIjoiYmVsb3ciKSxyYyg1KSxEbSgidmFsdWUiLG4uYXhpc0V4dGVudFswXSkscmMoNSksRG0oInZhbHVlIixuLmF4aXNFeHRlbnRbMV0pfX0sZGlyZWN0aXZlczpbbE0sWEgsZVksRFcsZE0sS1ddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17Y29udGFpbjpzdHJpY3Q7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbn0ubWFqb3ItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmaWxsOmN1cnJlbnRDb2xvcjtmb250LXNpemU6MTFweDt1c2VyLXNlbGVjdDpub25lfS5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ubWFqb3JbX25nY29udGVudC0lQ09NUCVdLCAubWlub3JbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAwO292ZXJmbG93OmhpZGRlbn0ubGluZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojYWFhO2ZsZXg6MCAwIDFweDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH0udGlja3NbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV17ZmxleC1kaXJlY3Rpb246Y29sdW1ufS54LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLmxpbmVbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1ib3R0b206M3B4fS54LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgdGV4dFtfbmdjb250ZW50LSVDT01QJV17ZG9taW5hbnQtYmFzZWxpbmU6dGV4dC1iZWZvcmUtZWRnZTt0ZXh0LWFuY2hvcjptaWRkbGV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAudGlja3NbX25nY29udGVudC0lQ09NUCVdey13ZWJraXQtbWFzay1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwMDAwIDAlLCAjMDAwIDEwJSwgIzAwMCA5MCUsICMwMDAwIDEwMCUpO21hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDAwMCAwJSwgIzAwMCAxMCUsICMwMDAgOTAlLCAjMDAwMCAxMDAlKX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDo1cHh9LnktYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkb21pbmFudC1iYXNlbGluZTpjZW50cmFsO3RleHQtYW5jaG9yOmVuZH0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aWNrc1tfbmdjb250ZW50LSVDT01QJV17LXdlYmtpdC1tYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwMDAwIDAlLCAjMDAwIDEwJSwgIzAwMCA5MCUsICMwMDAwIDEwMCUpO21hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzAwMDAgMCUsICMwMDAgMTAlLCAjMDAwIDkwJSwgIzAwMDAgMTAwJSl9LmV4dGVudC1lZGl0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZWVlO2Rpc3BsYXk6bm9uZTtmb250LXNpemU6MDtoZWlnaHQ6MjRweDtsaW5lLWhlaWdodDoyNHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjVweDt0b3A6NXB4O3dpZHRoOjI0cHh9LmV4dGVudC1lZGl0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICBtYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjE2cHg7d2lkdGg6MTZweDtsaW5lLWhlaWdodDoxNnB4fS5leHRlbnQtZWRpdC1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2NvbHVtbi1nYXA6NXB4O2Rpc3BsYXk6Z3JpZDtmb250LXNpemU6MTJweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MzBweCBtaW5tYXgoYXV0bywgMTAwcHgpO2hlaWdodDozMHB4O21hcmdpbjoxMHB4IDIwcHh9LmV4dGVudC1lZGl0LWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2NvbG9yOmluaGVyaXR9LmV4dGVudC1lZGl0LWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21hcmdpbjoxMHB4IDIwcHh9LmV4dGVudC1lZGl0LWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDoxLjQ7bWFyZ2luLWxlZnQ6NXB4O3BhZGRpbmc6MCAxMHB4fS5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlciAgIC5leHRlbnQtZWRpdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAuZXh0ZW50LWVkaXQtbWVudS1vcGVuZWRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5pdGlhbH0ubWFqb3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtjb250YWluOnN0cmljdH0ubWFqb3JbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7d2hpdGUtc3BhY2U6bm93cmFwfS5tYWpvcltfbmdjb250ZW50LSVDT01QJV0gICAubWFqb3ItbGFiZWxbX25nY29udGVudC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV17bWF4LXdpZHRoOjEwMCV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAubWFqb3ItbGFiZWxbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjOWU5ZTllO3BhZGRpbmc6MCA1cHh9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAubWFqb3ItbGFiZWwubGFzdFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOWU5ZTllfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOWU5ZTllO2hlaWdodDoxMDAlO3BhZGRpbmc6NXB4IDA7d2lkdGg6MTAwJX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYWpvci1sYWJlbC5sYXN0W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjOWU5ZTllfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSA+IHNwYW5bX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWHV0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImxpbmUtY2hhcnQtYXhpcyIsdGVtcGxhdGVVcmw6ImxpbmVfY2hhcnRfYXhpc192aWV3Lm5nLmh0bWwiLHN0eWxlVXJsczpbImxpbmVfY2hhcnRfYXhpc192aWV3LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse2F4aXNFeHRlbnQ6W3t0eXBlOnh5fV0sYXhpczpbe3R5cGU6eHl9XSxzY2FsZTpbe3R5cGU6eHl9XSxncmlkQ291bnQ6W3t0eXBlOnh5fV0sZG9tRGltOlt7dHlwZTp4eX1dLGN1c3RvbUZvcm1hdHRlcjpbe3R5cGU6eHl9XSxvblZpZXdFeHRlbnRDaGFuZ2U6W3t0eXBlOk95fV19KTtjb25zdCBLdXQ9WyJzZXJpZXNWaWV3Il0sSnV0PVsieEF4aXMiXSxRdXQ9WyJ5QXhpcyJdLCR1dD1bImNoYXJ0RWwiXTtmdW5jdGlvbiB0ZnQodCxlKXtpZigxJnQmJlRtKDAsImxpbmUtY2hhcnQtZ3JpZC12aWV3IiwxNSksMiZ0KXtjb25zdCB0PVltKCk7RG0oInZpZXdFeHRlbnQiLHQudmlld0JveCkoInhTY2FsZSIsdC54U2NhbGUpKCJ5U2NhbGUiLHQueVNjYWxlKSgieEdyaWRDb3VudCIsdC5YX0dSSURfQ09VTlQpKCJ5R3JpZENvdW50Iix0LllfR1JJRF9DT1VOVCkoImRvbURpbSIsdC5kb21EaW1lbnNpb25zLm1haW4pfX1mdW5jdGlvbiBlZnQodCxlKXsxJnQmJihxaSgpLFRtKDAsInN2ZyIsbnVsbCwxNikpfWZ1bmN0aW9uIG5mdCh0LGUpezEmdCYmVG0oMCwiY2FudmFzIixudWxsLDE2KX1mdW5jdGlvbiBvZnQodCxlKXtpZigxJnQmJihObSgwKSxRcCgxLGVmdCwyLDAsInN2ZyIsNSksUXAoMixuZnQsMiwwLCJjYW52YXMiLDUpLHptKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLERtKCJuZ0lmIix0LmdldFJlbmRlcmVyVHlwZSgpPT09dC5SZW5kZXJlclR5cGUuU1ZHKSxyYygxKSxEbSgibmdJZiIsdC5nZXRSZW5kZXJlclR5cGUoKT09PXQuUmVuZGVyZXJUeXBlLldFQkdMKX19ZnVuY3Rpb24gaWZ0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwibGluZS1jaGFydC1pbnRlcmFjdGl2ZS12aWV3IiwxNyksVm0oIm9uVmlld0V4dGVudENoYW5nZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKCkub25WaWV3Qm94Q2hhbmdlZChuKX0pKSgib25WaWV3RXh0ZW50UmVzZXQiLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkudmlld0JveFJlc2V0KCl9KSksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oKSxlPSRwKDEpO0RtKCJzZXJpZXNEYXRhIix0LnNlcmllc0RhdGEpKCJzZXJpZXNNZXRhZGF0YU1hcCIsdC5zZXJpZXNNZXRhZGF0YU1hcCkoInZpZXdFeHRlbnQiLHQudmlld0JveCkoInhTY2FsZSIsdC54U2NhbGUpKCJ5U2NhbGUiLHQueVNjYWxlKSgidG9vbHRpcE9yaWdpbkVsIixlKSgiZG9tRGltIix0LmRvbURpbWVuc2lvbnMubWFpbikoInRvb2x0aXBUZW1wbGF0ZSIsdC50b29sdGlwVGVtcGxhdGUpfX1jb25zdCBhZnQ9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJue3hTY2FsZTp0LHlTY2FsZTplLGRvbURpbWVuc2lvbjpuLHZpZXdFeHRlbnQ6b319O2Z1bmN0aW9uIHJmdCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMTgpLEltKDEsMTkpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLERtKCJuZ1RlbXBsYXRlT3V0bGV0Iix0LmN1c3RvbVZpc1RlbXBsYXRlKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLE9oKDIsYWZ0LHQueFNjYWxlLHQueVNjYWxlLHQuZG9tRGltZW5zaW9ucy5tYWluLHQudmlld0JveCkpfX1mdW5jdGlvbiBzZnQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJsaW5lLWNoYXJ0LWF4aXMiLDIwKSxWbSgib25WaWV3RXh0ZW50Q2hhbmdlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vblZpZXdCb3hDaGFuZ2VkRnJvbUF4aXMobiwieSIpfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7RG0oImF4aXNFeHRlbnQiLHQudmlld0JveC55KSgiY3VzdG9tRm9ybWF0dGVyIix0LmN1c3RvbVlGb3JtYXR0ZXIpKCJkb21EaW0iLHQuZG9tRGltZW5zaW9ucy55QXhpcykoImdyaWRDb3VudCIsdC5ZX0dSSURfQ09VTlQpKCJzY2FsZSIsdC55U2NhbGUpfX1mdW5jdGlvbiBsZnQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJsaW5lLWNoYXJ0LWF4aXMiLDIxKSxWbSgib25WaWV3RXh0ZW50Q2hhbmdlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5vblZpZXdCb3hDaGFuZ2VkRnJvbUF4aXMobiwieCIpfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7RG0oImF4aXNFeHRlbnQiLHQudmlld0JveC54KSgiY3VzdG9tRm9ybWF0dGVyIix0LmN1c3RvbVhGb3JtYXR0ZXIpKCJkb21EaW0iLHQuZG9tRGltZW5zaW9ucy54QXhpcykoImdyaWRDb3VudCIsdC5YX0dSSURfQ09VTlQpKCJzY2FsZSIsdC54U2NhbGUpfX1jb25zdCBjZnQ9ZnVuY3Rpb24odCxlLG4sbyxpKXtyZXR1cm57eFNjYWxlOnQseVNjYWxlOmUsZG9tRGltZW5zaW9uOm4sdmlld0V4dGVudDpvLGZvcm1hdHRlcjppfX07ZnVuY3Rpb24gZGZ0KHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwxOCksSW0oMSwxOSksQW0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRG0oIm5nVGVtcGxhdGVPdXRsZXQiLHQuY3VzdG9tWEF4aXNUZW1wbGF0ZSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixQaCgyLGNmdCx0LnhTY2FsZSx0LnlTY2FsZSx0LmRvbURpbWVuc2lvbnMueEF4aXMsdC52aWV3Qm94LHQuY3VzdG9tWEZvcm1hdHRlcnx8dC54U2NhbGUuZGVmYXVsdEZvcm1hdHRlcikpfX1mdW5jdGlvbiBwZnQodCxlKXsxJnQmJihSbSgwLCJkaXYiLDIyKSxUbSgxLCJzcGFuIiwyMyksQW0oKSl9Y29uc3QgbWZ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJue2NvbnRhaW5lcjohMCwiZGFyay1tb2RlIjp0LCJsaW5lLW9ubHktbW9kZSI6ZX19LHVmdD17eDpbMCwxXSx5OlswLDFdfTtjbGFzcyBmZnR7Y29uc3RydWN0b3IodCl7dGhpcy5jaGFuZ2VEZXRlY3Rvcj10LHRoaXMuUmVuZGVyZXJUeXBlPUsyLHRoaXMudXNlRGFya01vZGU9ITEsdGhpcy5wcmVmZXJyZWRSZW5kZXJlclR5cGU9SzIuV0VCR0wsdGhpcy54U2NhbGVUeXBlPUoyLkxJTkVBUix0aGlzLnlTY2FsZVR5cGU9SjIuTElORUFSLHRoaXMubGluZU9ubHk9ITEsdGhpcy5vblZpZXdCb3hPdmVycmlkZGVuPW5ldyBCKDEpLHRoaXMuaWdub3JlWU91dGxpZXJzPSExLHRoaXMuWV9HUklEX0NPVU5UPTYsdGhpcy5YX0dSSURfQ09VTlQ9MTAsdGhpcy54U2NhbGU9JG90KHRoaXMueFNjYWxlVHlwZSksdGhpcy55U2NhbGU9JG90KHRoaXMueFNjYWxlVHlwZSksdGhpcy52aWV3Qm94PXVmdCx0aGlzLmRvbURpbWVuc2lvbnM9e21haW46e3dpZHRoOjAsaGVpZ2h0OjB9LHhBeGlzOnt3aWR0aDowLGhlaWdodDowfSx5QXhpczp7d2lkdGg6MCxoZWlnaHQ6MH19LHRoaXMuc2hvd0NoYXJ0UmVuZGVyZXJFbGVtZW50PSEwLHRoaXMubGluZUNoYXJ0PW51bGwsdGhpcy5pc0RhdGFVcGRhdGVkPSExLHRoaXMuaXNNZXRhZGF0YVVwZGF0ZWQ9ITEsdGhpcy5pc0ZpeGVkVmlld0JveFVwZGF0ZWQ9ITEsdGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuPSExLHRoaXMudXNlRGFya01vZGVVcGRhdGVkPSExLHRoaXMuaXNWaWV3Qm94Q2hhbmdlZD0hMCx0aGlzLnNjYWxlVXBkYXRlZD0hMCx0aGlzLmlzUmVuZGVyaW5nQ29udGV4dExvc3Q9ITF9bmdPbkluaXQoKXt0aGlzLm9uVmlld0JveE92ZXJyaWRkZW4ubmV4dCh0aGlzLmlzVmlld0JveE92ZXJyaWRkZW4pfW5nT25DaGFuZ2VzKHQpe3QueFNjYWxlVHlwZSYmKHRoaXMueFNjYWxlPSRvdCh0aGlzLnhTY2FsZVR5cGUpLHRoaXMuc2NhbGVVcGRhdGVkPSEwKSx0LnlTY2FsZVR5cGUmJih0aGlzLnlTY2FsZT0kb3QodGhpcy55U2NhbGVUeXBlKSx0aGlzLnNjYWxlVXBkYXRlZD0hMCksdC5zZXJpZXNEYXRhJiYodGhpcy5pc0RhdGFVcGRhdGVkPSEwKSx0LmZpeGVkVmlld0JveCYmKHRoaXMuaXNGaXhlZFZpZXdCb3hVcGRhdGVkPSEwKSx0LnNlcmllc01ldGFkYXRhTWFwJiYodGhpcy5pc01ldGFkYXRhVXBkYXRlZD0hMCksdC51c2VEYXJrTW9kZSYmKHRoaXMudXNlRGFya01vZGVVcGRhdGVkPSEwKSx0aGlzLnNjYWxlVXBkYXRlZCYmdGhpcy5zZXRJc1ZpZXdCb3hPdmVycmlkZGVuKCExKSx0aGlzLmlzVmlld0JveENoYW5nZWQ9dGhpcy5pc1ZpZXdCb3hDaGFuZ2VkfHx0aGlzLnNjYWxlVXBkYXRlZHx8IXRoaXMuaXNWaWV3Qm94T3ZlcnJpZGRlbiYmdGhpcy5zaG91bGRVcGRhdGVEZWZhdWx0Vmlld0JveCh0KSx0aGlzLnVwZGF0ZUxpbmVDaGFydCgpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuaW5pdGlhbGl6ZUNoYXJ0KCksdGhpcy51cGRhdGVMaW5lQ2hhcnQoKSx0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKX1yZWNvdmVyUmVuZGVyZXJJZk5lZWRlZCgpe3RoaXMuaXNSZW5kZXJpbmdDb250ZXh0TG9zdCYmIXRoaXMuZGlzYWJsZVVwZGF0ZSYmKHRoaXMuc2hvd0NoYXJ0UmVuZGVyZXJFbGVtZW50PSExLHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuc2hvd0NoYXJ0UmVuZGVyZXJFbGVtZW50PSEwLHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuaW5pdGlhbGl6ZUNoYXJ0KCksdGhpcy5zY2FsZVVwZGF0ZWQ9ITAsdGhpcy5pc01ldGFkYXRhVXBkYXRlZD0hMCx0aGlzLmlzRGF0YVVwZGF0ZWQ9ITAsdGhpcy51c2VEYXJrTW9kZVVwZGF0ZWQ9ITAsdGhpcy5pc0ZpeGVkVmlld0JveFVwZGF0ZWQ9ITAsdGhpcy5pc1ZpZXdCb3hDaGFuZ2VkPSEwLHRoaXMuaXNSZW5kZXJpbmdDb250ZXh0TG9zdD0hMSl9b25WaWV3UmVzaXplKCl7dGhpcy5saW5lQ2hhcnQmJih0aGlzLnJlYWRBbmRVcGRhdGVEb21EaW1lbnNpb25zKCksdGhpcy5saW5lQ2hhcnQucmVzaXplKHRoaXMuZG9tRGltZW5zaW9ucy5tYWluKSx0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKSl9c2hvdWxkVXBkYXRlRGVmYXVsdFZpZXdCb3godCl7aWYodC54U2NhbGVUeXBlfHx0LnlTY2FsZVR5cGV8fHQuaWdub3JlWU91dGxpZXJzKXJldHVybiEwO2lmKHQuc2VyaWVzRGF0YSlyZXR1cm4hMDtjb25zdCBlPXQuc2VyaWVzTWV0YWRhdGFNYXA7aWYoZSl7Y29uc3QgdD1lLnByZXZpb3VzVmFsdWU7aWYoT2JqZWN0LmtleXModGhpcy5zZXJpZXNNZXRhZGF0YU1hcCkubGVuZ3RoIT09T2JqZWN0LmtleXMobnVsbCE9dD90Ont9KS5sZW5ndGgpcmV0dXJuITA7Zm9yKGNvbnN0W2Usbl1vZiBPYmplY3QuZW50cmllcyh0aGlzLnNlcmllc01ldGFkYXRhTWFwKSl7Y29uc3Qgbz10JiZ0W2VdO2lmKCFvfHxuLnZpc2libGUhPT1vLnZpc2libGUpcmV0dXJuITB9fXJldHVybiExfW9uQ29udGV4dExvc3QoKXt0aGlzLmlzUmVuZGVyaW5nQ29udGV4dExvc3Q9ITAsdGhpcy5saW5lQ2hhcnQmJih0aGlzLmxpbmVDaGFydC5kaXNwb3NlKCksdGhpcy5saW5lQ2hhcnQ9bnVsbCl9dHJpZ2dlckNvbnRleHRMb3N0Rm9yVGVzdCgpe3RoaXMub25Db250ZXh0TG9zdCgpfWdldExpbmVDaGFydEZvclRlc3QoKXtyZXR1cm4gdGhpcy5saW5lQ2hhcnR9aW5pdGlhbGl6ZUNoYXJ0KCl7dGhpcy5saW5lQ2hhcnQmJnRoaXMubGluZUNoYXJ0LmRpc3Bvc2UoKTtjb25zdCB0PXRoaXMuZ2V0UmVuZGVyZXJUeXBlKCksZT17b25EcmF3RW5kOigpPT57fSxvbkNvbnRleHRMb3N0OnRoaXMub25Db250ZXh0TG9zdC5iaW5kKHRoaXMpfTtsZXQgbj1udWxsO3N3aXRjaCh0aGlzLnJlYWRBbmRVcGRhdGVEb21EaW1lbnNpb25zKCksdCl7Y2FzZSBLMi5TVkc6bj17dHlwZTpLMi5TVkcsY29udGFpbmVyOnRoaXMuY2hhcnRFbC5uYXRpdmVFbGVtZW50LGNhbGxiYWNrczplLGRvbURpbWVuc2lvbjp0aGlzLmRvbURpbWVuc2lvbnMubWFpbix1c2VEYXJrTW9kZTp0aGlzLnVzZURhcmtNb2RlfTticmVhaztjYXNlIEsyLldFQkdMOm49e3R5cGU6SzIuV0VCR0wsY29udGFpbmVyOnRoaXMuY2hhcnRFbC5uYXRpdmVFbGVtZW50LGRldmljZVBpeGVsUmF0aW86d2luZG93LmRldmljZVBpeGVsUmF0aW8sY2FsbGJhY2tzOmUsZG9tRGltZW5zaW9uOnRoaXMuZG9tRGltZW5zaW9ucy5tYWluLHVzZURhcmtNb2RlOnRoaXMudXNlRGFya01vZGV9O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGA8bGluZS1jaGFydD4gZG9lcyBub3QgeWV0IHN1cHBvcnQgcmVuZGVyZXJUeXBlOiAke3R9YCl9Y29uc3Qgbz10IT09SzIuU1ZHJiZpaXQoKTt0aGlzLmxpbmVDaGFydD1uZXcobz9QdXQ6eHV0KShuKX1uZ09uRGVzdHJveSgpe3RoaXMubGluZUNoYXJ0JiZ0aGlzLmxpbmVDaGFydC5kaXNwb3NlKCl9Z2V0UmVuZGVyZXJUeXBlKCl7cmV0dXJuKGZ1bmN0aW9uIHQoZSl7c3dpdGNoKGUpe2Nhc2UgSzIuU1ZHOnJldHVybiBLMi5TVkc7Y2FzZSBLMi5XRUJHTDpyZXR1cm4oZnVuY3Rpb24gdCgpe3JldHVybiBvaXR9KSgpP0syLldFQkdMOksyLlNWRztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5rbm93biByZW5kZXJlclR5cGU6ICR7ZX1gKX19KSh0aGlzLnByZWZlcnJlZFJlbmRlcmVyVHlwZSl9cmVhZEFuZFVwZGF0ZURvbURpbWVuc2lvbnMoKXt0aGlzLmRvbURpbWVuc2lvbnM9e21haW46e3dpZHRoOnRoaXMuc2VyaWVzVmlldy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoLGhlaWdodDp0aGlzLnNlcmllc1ZpZXcubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHR9LHhBeGlzOnt3aWR0aDp0aGlzLnhBeGlzLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgsaGVpZ2h0OnRoaXMueEF4aXMubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHR9LHlBeGlzOnt3aWR0aDp0aGlzLnlBeGlzLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgsaGVpZ2h0OnRoaXMueUF4aXMubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHR9fX11cGRhdGVMaW5lQ2hhcnQoKXt2YXIgdCxlO2lmKHRoaXMucmVjb3ZlclJlbmRlcmVySWZOZWVkZWQoKSx0aGlzLmxpbmVDaGFydCYmIXRoaXMuZGlzYWJsZVVwZGF0ZSl7aWYodGhpcy5zY2FsZVVwZGF0ZWQmJih0aGlzLnNjYWxlVXBkYXRlZD0hMSx0aGlzLmxpbmVDaGFydC5zZXRYU2NhbGVUeXBlKHRoaXMueFNjYWxlVHlwZSksdGhpcy5saW5lQ2hhcnQuc2V0WVNjYWxlVHlwZSh0aGlzLnlTY2FsZVR5cGUpKSx0aGlzLmlzTWV0YWRhdGFVcGRhdGVkJiYodGhpcy5pc01ldGFkYXRhVXBkYXRlZD0hMSx0aGlzLmxpbmVDaGFydC5zZXRNZXRhZGF0YSh0aGlzLnNlcmllc01ldGFkYXRhTWFwKSksdGhpcy5pc0RhdGFVcGRhdGVkJiYodGhpcy5pc0RhdGFVcGRhdGVkPSExLHRoaXMubGluZUNoYXJ0LnNldERhdGEodGhpcy5zZXJpZXNEYXRhKSksdGhpcy51c2VEYXJrTW9kZVVwZGF0ZWQmJih0aGlzLnVzZURhcmtNb2RlVXBkYXRlZD0hMSx0aGlzLmxpbmVDaGFydC5zZXRVc2VEYXJrTW9kZSh0aGlzLnVzZURhcmtNb2RlKSksIXRoaXMuaXNWaWV3Qm94T3ZlcnJpZGRlbiYmdGhpcy5maXhlZFZpZXdCb3gpdGhpcy52aWV3Qm94PXRoaXMuZml4ZWRWaWV3Qm94O2Vsc2UgaWYoIXRoaXMuaXNWaWV3Qm94T3ZlcnJpZGRlbiYmdGhpcy5pc1ZpZXdCb3hDaGFuZ2VkKXtjb25zdCBuPShmdW5jdGlvbiBvKHQsZSxuLGksYSl7bGV0IHI9bnVsbCxzPW51bGwsbD1bXTtmb3IoY29uc3R7aWQ6bixwb2ludHM6b31vZiB0KXtjb25zdCB0PWVbbl07aWYodCYmIXQuYXV4JiZ0LnZpc2libGUpZm9yKGxldCB0PTA7dDxvLmxlbmd0aDt0Kyspe2NvbnN0e3g6ZSx5Om59PW9bdF07aShlKSYmKHI9bnVsbD09PXJ8fGU8cj9lOnIscz1udWxsPT09c3x8ZT5zP2U6cyksYShuKSYmbC5wdXNoKG4pfX1sLnNvcnQoYzUpO2xldCBjPWxbMF0sZD1sW2wubGVuZ3RoLTFdO3JldHVybiBuJiZsLmxlbmd0aD4yJiYoYz1sW01hdGguY2VpbCguMDUqKGwubGVuZ3RoLTEpKV0sZD1sW01hdGguZmxvb3IoLjk1KihsLmxlbmd0aC0xKSldKSx7eDpudWxsIT09ciYmbnVsbCE9PXM/W3Isc106dm9pZCAwLHk6dm9pZCAwIT09YyYmdm9pZCAwIT09ZD9bYyxkXTp2b2lkIDB9fSkodGhpcy5zZXJpZXNEYXRhLHRoaXMuc2VyaWVzTWV0YWRhdGFNYXAsdGhpcy5pZ25vcmVZT3V0bGllcnMsdGhpcy54U2NhbGUuaXNTYWZlTnVtYmVyLHRoaXMueVNjYWxlLmlzU2FmZU51bWJlcik7dGhpcy52aWV3Qm94PXt4OnRoaXMueFNjYWxlLm5pY2VEb21haW4obnVsbCE9PSh0PW4ueCkmJnZvaWQgMCE9PXQ/dDp1ZnQueCkseTp0aGlzLnlTY2FsZS5uaWNlRG9tYWluKG51bGwhPT0oZT1uLnkpJiZ2b2lkIDAhPT1lP2U6dWZ0LnkpfX0odGhpcy5pc0ZpeGVkVmlld0JveFVwZGF0ZWR8fHRoaXMuaXNWaWV3Qm94Q2hhbmdlZCkmJih0aGlzLmlzRml4ZWRWaWV3Qm94VXBkYXRlZD0hMSx0aGlzLmlzVmlld0JveENoYW5nZWQ9ITEsdGhpcy5saW5lQ2hhcnQuc2V0Vmlld0JveCh0aGlzLnZpZXdCb3gpKX19b25WaWV3Qm94Q2hhbmdlZCh7ZGF0YUV4dGVudDp0fSl7dGhpcy5zZXRJc1ZpZXdCb3hPdmVycmlkZGVuKCEwKSx0aGlzLmlzVmlld0JveENoYW5nZWQ9ITAsdGhpcy52aWV3Qm94PXQsdGhpcy51cGRhdGVMaW5lQ2hhcnQoKX12aWV3Qm94UmVzZXQoKXt0aGlzLnNldElzVmlld0JveE92ZXJyaWRkZW4oITEpLHRoaXMuaXNWaWV3Qm94Q2hhbmdlZD0hMCx0aGlzLnVwZGF0ZUxpbmVDaGFydCgpfXNldElzVmlld0JveE92ZXJyaWRkZW4odCl7Y29uc3QgZT10aGlzLmlzVmlld0JveE92ZXJyaWRkZW47dGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuPXQsZSE9PXQmJnRoaXMub25WaWV3Qm94T3ZlcnJpZGRlbi5uZXh0KHQpfWdldElzVmlld0JveE92ZXJyaWRkZW4oKXtyZXR1cm4gdGhpcy5vblZpZXdCb3hPdmVycmlkZGVufW9uVmlld0JveENoYW5nZWRGcm9tQXhpcyh0LGUpe2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMudmlld0JveCkse1tlXTp0fSk7dGhpcy5vblZpZXdCb3hDaGFuZ2VkKHtkYXRhRXh0ZW50Om59KX19ZmZ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmZnQpKFNtKFVnKSl9LGZmdC7JtWNtcD10byh7dHlwZTpmZnQsc2VsZWN0b3JzOltbImxpbmUtY2hhcnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaChLdXQsNyxoZyksUWgoSnV0LDcsaGcpLFFoKFF1dCw3LGhnKSxRaCgkdXQsNSxoZykpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uc2VyaWVzVmlldz10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi54QXhpcz10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi55QXhpcz10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5jaGFydEVsPXQuZmlyc3QpfX0saW5wdXRzOntjdXN0b21WaXNUZW1wbGF0ZToiY3VzdG9tVmlzVGVtcGxhdGUiLGN1c3RvbVhBeGlzVGVtcGxhdGU6ImN1c3RvbVhBeGlzVGVtcGxhdGUiLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSIscHJlZmVycmVkUmVuZGVyZXJUeXBlOiJwcmVmZXJyZWRSZW5kZXJlclR5cGUiLHNlcmllc0RhdGE6InNlcmllc0RhdGEiLGZpeGVkVmlld0JveDoiZml4ZWRWaWV3Qm94IixzZXJpZXNNZXRhZGF0YU1hcDoic2VyaWVzTWV0YWRhdGFNYXAiLHhTY2FsZVR5cGU6InhTY2FsZVR5cGUiLHlTY2FsZVR5cGU6InlTY2FsZVR5cGUiLGN1c3RvbVhGb3JtYXR0ZXI6ImN1c3RvbVhGb3JtYXR0ZXIiLGN1c3RvbVlGb3JtYXR0ZXI6ImN1c3RvbVlGb3JtYXR0ZXIiLHRvb2x0aXBUZW1wbGF0ZToidG9vbHRpcFRlbXBsYXRlIixsaW5lT25seToibGluZU9ubHkiLGRpc2FibGVVcGRhdGU6ImRpc2FibGVVcGRhdGUiLGlnbm9yZVlPdXRsaWVyczoiaWdub3JlWU91dGxpZXJzIn0sZmVhdHVyZXM6W0JvXSxkZWNsczoxNix2YXJzOjEzLGNvbnN0czpbWyJkZXRlY3RSZXNpemUiLCIiLCJjZGtPdmVybGF5T3JpZ2luIiwiIiwzLCJuZ0NsYXNzIiwicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLCJvblJlc2l6ZSJdLFsib3ZlcmxheVRhcmdldCIsImNka092ZXJsYXlPcmlnaW4iXSxbMSwic2VyaWVzLXZpZXciXSxbInNlcmllc1ZpZXciLCIiXSxbMywidmlld0V4dGVudCIsInhTY2FsZSIsInlTY2FsZSIsInhHcmlkQ291bnQiLCJ5R3JpZENvdW50IiwiZG9tRGltIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMywic2VyaWVzRGF0YSIsInNlcmllc01ldGFkYXRhTWFwIiwidmlld0V4dGVudCIsInhTY2FsZSIsInlTY2FsZSIsInRvb2x0aXBPcmlnaW5FbCIsImRvbURpbSIsInRvb2x0aXBUZW1wbGF0ZSIsIm9uVmlld0V4dGVudENoYW5nZSIsIm9uVmlld0V4dGVudFJlc2V0Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImN1c3RvbS12aXMiLDQsIm5nSWYiXSxbMSwieS1heGlzIl0sWyJ5QXhpcyIsIiJdLFsiYXhpcyIsInkiLDMsImF4aXNFeHRlbnQiLCJjdXN0b21Gb3JtYXR0ZXIiLCJkb21EaW0iLCJncmlkQ291bnQiLCJzY2FsZSIsIm9uVmlld0V4dGVudENoYW5nZSIsNCwibmdJZiJdLFsxLCJ4LWF4aXMiXSxbInhBeGlzIiwiIl0sWyJheGlzIiwieCIsMywiYXhpc0V4dGVudCIsImN1c3RvbUZvcm1hdHRlciIsImRvbURpbSIsImdyaWRDb3VudCIsInNjYWxlIiwib25WaWV3RXh0ZW50Q2hhbmdlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRvdCIsNCwibmdJZiJdLFszLCJ2aWV3RXh0ZW50IiwieFNjYWxlIiwieVNjYWxlIiwieEdyaWRDb3VudCIsInlHcmlkQ291bnQiLCJkb21EaW0iXSxbImNoYXJ0RWwiLCIiXSxbMywic2VyaWVzRGF0YSIsInNlcmllc01ldGFkYXRhTWFwIiwidmlld0V4dGVudCIsInhTY2FsZSIsInlTY2FsZSIsInRvb2x0aXBPcmlnaW5FbCIsImRvbURpbSIsInRvb2x0aXBUZW1wbGF0ZSIsIm9uVmlld0V4dGVudENoYW5nZSIsIm9uVmlld0V4dGVudFJlc2V0Il0sWzEsImN1c3RvbS12aXMiXSxbMywibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il0sWyJheGlzIiwieSIsMywiYXhpc0V4dGVudCIsImN1c3RvbUZvcm1hdHRlciIsImRvbURpbSIsImdyaWRDb3VudCIsInNjYWxlIiwib25WaWV3RXh0ZW50Q2hhbmdlIl0sWyJheGlzIiwieCIsMywiYXhpc0V4dGVudCIsImN1c3RvbUZvcm1hdHRlciIsImRvbURpbSIsImdyaWRDb3VudCIsInNjYWxlIiwib25WaWV3RXh0ZW50Q2hhbmdlIl0sWzEsImRvdCJdLFsxLCJyZWN0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDAsMSksVm0oIm9uUmVzaXplIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVmlld1Jlc2l6ZSgpfSkpLFJtKDIsImRpdiIsMiwzKSxRcCg0LHRmdCwxLDYsImxpbmUtY2hhcnQtZ3JpZC12aWV3Iiw0KSxRcCg1LG9mdCwzLDIsIm5nLWNvbnRhaW5lciIsNSksUXAoNixpZnQsMSw4LCJsaW5lLWNoYXJ0LWludGVyYWN0aXZlLXZpZXciLDYpLFFwKDcscmZ0LDIsNywiZGl2Iiw3KSxBbSgpLFJtKDgsImRpdiIsOCw5KSxRcCgxMCxzZnQsMSw1LCJsaW5lLWNoYXJ0LWF4aXMiLDEwKSxBbSgpLFJtKDExLCJkaXYiLDExLDEyKSxRcCgxMyxsZnQsMSw1LCJsaW5lLWNoYXJ0LWF4aXMiLDEzKSxRcCgxNCxkZnQsMiw4LCJkaXYiLDcpLEFtKCksUXAoMTUscGZ0LDIsMCwiZGl2IiwxNCksQW0oKSksMiZlJiYoRG0oIm5nQ2xhc3MiLHZoKDEwLG1mdCxuLnVzZURhcmtNb2RlLG4ubGluZU9ubHkpKSgicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLDApLHJjKDQpLERtKCJuZ0lmIiwhbi5saW5lT25seSkscmMoMSksRG0oIm5nSWYiLG4uc2hvd0NoYXJ0UmVuZGVyZXJFbGVtZW50KSxyYygxKSxEbSgibmdJZiIsIW4ubGluZU9ubHkpLHJjKDEpLERtKCJuZ0lmIixuLmN1c3RvbVZpc1RlbXBsYXRlKSxyYygzKSxEbSgibmdJZiIsIW4ubGluZU9ubHkpLHJjKDMpLERtKCJuZ0lmIiwhbi5saW5lT25seSkscmMoMSksRG0oIm5nSWYiLG4uY3VzdG9tWEF4aXNUZW1wbGF0ZSkscmMoMSksRG0oIm5nSWYiLCFuLmxpbmVPbmx5KSl9LGRpcmVjdGl2ZXM6W29KLGZMLGFNLGRNLEV1dCxVdXQsTU0sWHV0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2NvbnRhaW46c3RyaWN0O2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6aW5oZXJpdDtkaXNwbGF5OmdyaWQ7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCU7Z3JpZC10ZW1wbGF0ZS1hcmVhczoieWF4aXMgc2VyaWVzIiAiZG90IHhheGlzIjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6NTBweCAxZnI7Z3JpZC1hdXRvLXJvd3M6MWZyIDMwcHh9LmNvbnRhaW5lci5kYXJrLW1vZGVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmZmZ9LmNvbnRhaW5lci5saW5lLW9ubHktbW9kZVtfbmdjb250ZW50LSVDT01QJV17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjAgMWZyO2dyaWQtYXV0by1yb3dzOjFmciAwfS5zZXJpZXMtdmlld1tfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOnNlcmllcztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59LnNlcmllcy12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jdXN0b20tdmlzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNlcmllcy12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNhbnZhc1tfbmdjb250ZW50LSVDT01QJV0sIC5zZXJpZXMtdmlld1tfbmdjb250ZW50LSVDT01QJV0gICBzdmdbX25nY29udGVudC0lQ09NUCVdLCAuc2VyaWVzLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgbGluZS1jaGFydC1ncmlkLXZpZXdbX25nY29udGVudC0lQ09NUCVdLCAuc2VyaWVzLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgbGluZS1jaGFydC1pbnRlcmFjdGl2ZS12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0uc2VyaWVzLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgLmN1c3RvbS12aXNbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAuY3VzdG9tLXZpc1tfbmdjb250ZW50LSVDT01QJV0sIC55LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLmN1c3RvbS12aXNbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTstd2Via2l0LW1hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDAwMCAwJSwgIzAwMCAxMCUsICMwMDAgOTAlLCAjMDAwMCAxMDAlKTttYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwMDAgMCUsICMwMDAgMTAlLCAjMDAwIDkwJSwgIzAwMDAgMTAwJSl9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICBsaW5lLWNoYXJ0LWF4aXNbX25nY29udGVudC0lQ09NUCVdLCAueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmUtY2hhcnQtYXhpc1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOnhheGlzO3Bvc2l0aW9uOnJlbGF0aXZlfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVde2dyaWQtYXJlYTp5YXhpc30uZG90W19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2Rpc3BsYXk6ZmxleDtncmlkLWFyZWE6ZG90O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZG90W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MXB4O3dpZHRoOjFweDtiYWNrZ3JvdW5kLWNvbG9yOiNhYWF9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGZmdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJsaW5lLWNoYXJ0Iix0ZW1wbGF0ZVVybDoibGluZV9jaGFydF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsibGluZV9jaGFydF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlVnfV19KSx7c2VyaWVzVmlldzpbe3R5cGU6WmEsYXJnczpbInNlcmllc1ZpZXciLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0seEF4aXM6W3t0eXBlOlphLGFyZ3M6WyJ4QXhpcyIse3N0YXRpYzohMCxyZWFkOmhnfV19XSx5QXhpczpbe3R5cGU6WmEsYXJnczpbInlBeGlzIix7c3RhdGljOiEwLHJlYWQ6aGd9XX1dLGNoYXJ0RWw6W3t0eXBlOlphLGFyZ3M6WyJjaGFydEVsIix7c3RhdGljOiExLHJlYWQ6aGd9XX1dLGN1c3RvbVZpc1RlbXBsYXRlOlt7dHlwZTp4eX1dLGN1c3RvbVhBeGlzVGVtcGxhdGU6W3t0eXBlOnh5fV0sdXNlRGFya01vZGU6W3t0eXBlOnh5fV0scHJlZmVycmVkUmVuZGVyZXJUeXBlOlt7dHlwZTp4eX1dLHNlcmllc0RhdGE6W3t0eXBlOnh5fV0sZml4ZWRWaWV3Qm94Olt7dHlwZTp4eX1dLHNlcmllc01ldGFkYXRhTWFwOlt7dHlwZTp4eX1dLHhTY2FsZVR5cGU6W3t0eXBlOnh5fV0seVNjYWxlVHlwZTpbe3R5cGU6eHl9XSxjdXN0b21YRm9ybWF0dGVyOlt7dHlwZTp4eX1dLGN1c3RvbVlGb3JtYXR0ZXI6W3t0eXBlOnh5fV0sdG9vbHRpcFRlbXBsYXRlOlt7dHlwZTp4eX1dLGxpbmVPbmx5Olt7dHlwZTp4eX1dLGRpc2FibGVVcGRhdGU6W3t0eXBlOnh5fV0saWdub3JlWU91dGxpZXJzOlt7dHlwZTp4eX1dfSk7Y2xhc3MgZ2Z0e31nZnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGdmdCl9LGdmdC7JtWNtcD10byh7dHlwZTpnZnQsc2VsZWN0b3JzOltbInZpcy1zZWxlY3RlZC10aW1lLWNsaXBwZWQiXV0saW5wdXRzOntzZWxlY3RlZFRpbWU6InNlbGVjdGVkVGltZSJ9LGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJzdmdJY29uIiwiaW5mb19vdXRsaW5lXzI0cHgiLCJ0aXRsZSIsIkxpbmtlZCBzdGVwIGlzIG5vdCBmb3VuZCBpbiB0aGlzIHZpc3VhbGl6YXRpb24uIFdlIGhpZ2hsaWdodGVkIHRoZSBjbG9zZXN0IHN0ZXAgZm9yIHlvdS4iXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmVG0oMCwibWF0LWljb24iLDApfSxkaXJlY3RpdmVzOltEV10sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtjb2xvcjojZDMyZjJmO2hlaWdodDoxZW07bGluZS1oZWlnaHQ6MDt3aWR0aDoxZW19Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVde2NvbG9yOiNkMzJmMmZ9W19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnZnQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZCIsdGVtcGxhdGU6J1xuICAgIDxtYXQtaWNvblxuICAgICAgc3ZnSWNvbj0iaW5mb19vdXRsaW5lXzI0cHgiXG4gICAgICB0aXRsZT0iTGlua2VkIHN0ZXAgaXMgbm90IGZvdW5kIGluIHRoaXMgdmlzdWFsaXphdGlvbi4gV2UgaGlnaGxpZ2h0ZWQgdGhlIGNsb3Nlc3Qgc3RlcCBmb3IgeW91LiJcbiAgICA+PC9tYXQtaWNvbj5cbiAgJyxzdHlsZVVybHM6WyJ2aXNfc2VsZWN0ZWRfdGltZV9jbGlwcGVkX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtzZWxlY3RlZFRpbWU6W3t0eXBlOnh5fV19KTtjbGFzcyBoZnR7fWZ1bmN0aW9uIGJmdCh0LGUpezEmdCYmVG0oMCwidmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZCIpfWZ1bmN0aW9uIHlmdCh0LGUpezEmdCYmVG0oMCwibWF0LXNwaW5uZXIiLDIzKX1mdW5jdGlvbiBfZnQodCxlKXsxJnQmJihSbSgwLCJ0aCIpLGt1KDEsIlNtb290aGVkIiksQW0oKSl9ZnVuY3Rpb24gQ2Z0KHQsZSl7aWYoMSZ0JiYoUm0oMCwidGQiKSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKS4kaW1wbGljaXQsZT1ZbSgyKTtyYygxKSxEdSgiICIsZS52YWx1ZUZvcm1hdHRlci5mb3JtYXRTaG9ydCh0LnBvaW50LnkpLCIgIil9fWZ1bmN0aW9uIE1mdCh0LGUpe2lmKDEmdCYmKE5tKDApLFJtKDEsInRyIiwyNyksUm0oMiwidGQiLDI4KSxUbSgzLCJzcGFuIiksQW0oKSxSbSg0LCJ0ZCIsMSksa3UoNSksQW0oKSxRcCg2LENmdCwyLDEsInRkIiwzKSxSbSg3LCJ0ZCIpLGt1KDgpLEFtKCksUm0oOSwidGQiKSxrdSgxMCksQW0oKSxSbSgxMSwidGQiKSxrdSgxMiksQWgoMTMsImRhdGUiKSxBbSgpLFJtKDE0LCJ0ZCIpLGt1KDE1KSxBbSgpLEFtKCksem0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7cmMoMSkscHUoImNsb3Nlc3QiLHQubWV0YWRhdGEuY2xvc2VzdCkscmMoMiksZHUoImJhY2tncm91bmQtY29sb3IiLHQubWV0YWRhdGEuY29sb3IpLHJjKDIpLFN1KHQubWV0YWRhdGEuZGlzcGxheU5hbWUpLHJjKDEpLERtKCJuZ0lmIixuLnNtb290aGluZ0VuYWJsZWQpLHJjKDIpLFN1KG4udmFsdWVGb3JtYXR0ZXIuZm9ybWF0U2hvcnQodC5wb2ludC52YWx1ZSkpLHJjKDIpLFN1KG4uc3RlcEZvcm1hdHRlci5mb3JtYXRTaG9ydCh0LnBvaW50LnN0ZXApKSxyYygyKSxTdShOaCgxMywxMCx0LnBvaW50LndhbGxUaW1lLCJzaG9ydCIpKSxyYygzKSxEdSgiICIsbi5yZWxhdGl2ZVhGb3JtYXR0ZXIuZm9ybWF0UmVhZGFibGUodC5wb2ludC5yZWxhdGl2ZVRpbWVJbk1zKSwiICIpfX1mdW5jdGlvbiB2ZnQodCxlKXtpZigxJnQmJihSbSgwLCJ0YWJsZSIsMjQpLFJtKDEsInRoZWFkIiksUm0oMiwidHIiKSxUbSgzLCJ0aCIsMjUpLFJtKDQsInRoIiksa3UoNSwiUnVuIiksQW0oKSxRcCg2LF9mdCwyLDAsInRoIiwzKSxSbSg3LCJ0aCIpLGt1KDgsIlZhbHVlIiksQW0oKSxSbSg5LCJ0aCIpLGt1KDEwLCJTdGVwIiksQW0oKSxSbSgxMSwidGgiKSxrdSgxMiwiVGltZSIpLEFtKCksUm0oMTMsInRoIiksa3UoMTQsIlJlbGF0aXZlIiksQW0oKSxBbSgpLEFtKCksUm0oMTUsInRib2R5IiksUXAoMTYsTWZ0LDE2LDEzLCJuZy1jb250YWluZXIiLDI2KSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1lLmRhdGEsbj1lLmN1cnNvckxvY2F0aW9uSW5EYXRhQ29vcmQsbz1ZbSgpO3JjKDYpLERtKCJuZ0lmIixvLnNtb290aGluZ0VuYWJsZWQpLHJjKDEwKSxEbSgibmdGb3JPZiIsby5nZXRDdXJzb3JBd2FyZVRvb2x0aXBEYXRhKHQsbikpKCJuZ0ZvclRyYWNrQnkiLG8udHJhY2tCeVRvb2x0aXBEYXR1bSl9fWhmdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aGZ0KX0saGZ0Lsm1Y21wPXRvKHt0eXBlOmhmdCxzZWxlY3RvcnM6W1sibGlua2VkLXRpbWUtZm9iIl1dLGlucHV0czp7c3RlcDoic3RlcCJ9LGRlY2xzOjMsdmFyczozLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJzcGFuIiksa3UoMSksQWgoMiwibnVtYmVyIiksQW0oKSksMiZlJiYocmMoMSksU3UoVGgoMiwxLG4uc3RlcCkpKX0scGlwZXM6W0ZNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrfXNwYW5bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2UwZTBlMDtib3JkZXItcmFkaXVzOjI1cHg7Y29sb3I6aW5oZXJpdDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTFweDtwYWRkaW5nOjJweCA1cHh9c3Bhbltfbmdjb250ZW50LSVDT01QJV06aG92ZXIsIHNwYW5bX25nY29udGVudC0lQ09NUCVdOmFjdGl2ZXtib3JkZXItY29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojNjE2MTYxO2JvcmRlci1jb2xvcjojOGU5OGEzfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIHNwYW5bX25nY29udGVudC0lQ09NUCVdOmhvdmVyLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlciwgYm9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV06YWN0aXZlLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXTphY3RpdmV7Ym9yZGVyLWNvbG9yOiNlZWV9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGhmdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJsaW5rZWQtdGltZS1mb2IiLHRlbXBsYXRlOiI8c3Bhbj57eyBzdGVwIHwgbnVtYmVyIH19PC9zcGFuPiIsc3R5bGVVcmxzOlsibGlua2VkX3RpbWVfZm9iX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtzdGVwOlt7dHlwZTp4eX1dfSk7Y29uc3QgeGZ0PWZ1bmN0aW9uKHQpe3JldHVyblswLHRdfSxPZnQ9ZnVuY3Rpb24oKXtyZXR1cm57Im91dC1vZi1zZWxlY3RlZC10aW1lIjohMCxlbmQ6ITAscmFuZ2U6ITB9fTtmdW5jdGlvbiBQZnQodCxlKXtpZigxJnQmJlRtKDAsImRpdiIsMjkpLDImdCl7Y29uc3QgdD1ZbSgyKSxlPXQudmlld0V4dGVudCxuPXQuZG9tRGltZW5zaW9uLG89dC54U2NhbGUsaT1ZbSgpO2R1KCJsZWZ0IixvLmZvcndhcmQoZS54LE1oKDMseGZ0LG4ud2lkdGgpLGkuc2VsZWN0ZWRUaW1lLmVuZFN0ZXApKyJweCIpLERtKCJuZ0NsYXNzIixDaCg1LE9mdCkpfX1jb25zdCB3ZnQ9ZnVuY3Rpb24odCl7cmV0dXJuW3QsMF19LGtmdD1mdW5jdGlvbih0KXtyZXR1cm57Im91dC1vZi1zZWxlY3RlZC10aW1lIjohMCxzdGFydDohMCxyYW5nZTp0fX07ZnVuY3Rpb24gU2Z0KHQsZSl7aWYoMSZ0JiYoTm0oMCksVG0oMSwiZGl2IiwyOSksUXAoMixQZnQsMSw2LCJkaXYiLDMwKSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oKSxlPXQudmlld0V4dGVudCxuPXQuZG9tRGltZW5zaW9uLG89dC54U2NhbGUsaT1ZbSgpO3JjKDEpLGR1KCJyaWdodCIsby5mb3J3YXJkKGUueCxNaCg0LHdmdCxuLndpZHRoKSxpLnNlbGVjdGVkVGltZS5zdGFydFN0ZXApKyJweCIpLERtKCJuZ0NsYXNzIixNaCg2LGtmdCwhIWkuc2VsZWN0ZWRUaW1lLmVuZFN0ZXApKSxyYygxKSxEbSgibmdJZiIsaS5zZWxlY3RlZFRpbWUuZW5kU3RlcCl9fWZ1bmN0aW9uIERmdCh0LGUpezEmdCYmUXAoMCxTZnQsMyw4LCJuZy1jb250YWluZXIiLDMpLDImdCYmRG0oIm5nSWYiLFltKCkuc2VsZWN0ZWRUaW1lKX1mdW5jdGlvbiBFZnQodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDMxKSxUbSgxLCJsaW5rZWQtdGltZS1mb2IiLDMyKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oMiksZT10LnZpZXdFeHRlbnQsbj10LmRvbURpbWVuc2lvbixvPXQueFNjYWxlLGk9WW0oKTtkdSgidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrby5mb3J3YXJkKGUueCxNaCgzLHhmdCxuLndpZHRoKSxpLnNlbGVjdGVkVGltZS5lbmRTdGVwKSsicHgsIDApIikscmMoMSksRG0oInN0ZXAiLGkuc2VsZWN0ZWRUaW1lLmVuZFN0ZXApfX1mdW5jdGlvbiBSZnQodCxlKXtpZigxJnQmJihObSgwKSxSbSgxLCJkaXYiLDMxKSxUbSgyLCJsaW5rZWQtdGltZS1mb2IiLDMyKSxBbSgpLFFwKDMsRWZ0LDIsNSwiZGl2IiwzMyksem0oKSksMiZ0KXtjb25zdCB0PVltKCksZT10LnZpZXdFeHRlbnQsbj10LmRvbURpbWVuc2lvbixvPXQueFNjYWxlLGk9WW0oKTtyYygxKSxkdSgidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrby5mb3J3YXJkKGUueCxNaCg0LHhmdCxuLndpZHRoKSxpLnNlbGVjdGVkVGltZS5zdGFydFN0ZXApKyJweCwgMCkiKSxyYygxKSxEbSgic3RlcCIsaS5zZWxlY3RlZFRpbWUuc3RhcnRTdGVwKSxyYygxKSxEbSgibmdJZiIsaS5zZWxlY3RlZFRpbWUuZW5kU3RlcCl9fWZ1bmN0aW9uIEFmdCh0LGUpezEmdCYmUXAoMCxSZnQsNCw2LCJuZy1jb250YWluZXIiLDMpLDImdCYmRG0oIm5nSWYiLFltKCkuc2VsZWN0ZWRUaW1lKX1jbGFzcyBUZnR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlZj10LHRoaXMuZGlhbG9nPWUsdGhpcy5EYXRhTG9hZFN0YXRlPXlFLHRoaXMuUmVuZGVyZXJUeXBlPUsyLHRoaXMuU2NhbGVUeXBlPUoyLHRoaXMub25GdWxsU2l6ZVRvZ2dsZT1uZXcgTGgsdGhpcy5vblBpbkNsaWNrZWQ9bmV3IExoLHRoaXMueVNjYWxlVHlwZT1KMi5MSU5FQVIsdGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuPSExLHRoaXMucmVsYXRpdmVYRm9ybWF0dGVyPVhvdCx0aGlzLnZhbHVlRm9ybWF0dGVyPUlvdCx0aGlzLnN0ZXBGb3JtYXR0ZXI9TG90fXRvZ2dsZVlTY2FsZVR5cGUoKXt0aGlzLnlTY2FsZVR5cGU9dGhpcy55U2NhbGVUeXBlPT09SjIuTElORUFSP0oyLkxPRzEwOkoyLkxJTkVBUn1yZXNldERvbWFpbigpe3RoaXMubGluZUNoYXJ0JiZ0aGlzLmxpbmVDaGFydC52aWV3Qm94UmVzZXQoKX10cmFja0J5VG9vbHRpcERhdHVtKHQsZSl7cmV0dXJuIGUuaWR9Z2V0Q3VzdG9tWEZvcm1hdHRlcigpe3N3aXRjaCh0aGlzLnhBeGlzVHlwZSl7Y2FzZSB5QS5SRUxBVElWRTpyZXR1cm4gWG90O2Nhc2UgeUEuU1RFUDpyZXR1cm4gVW90O2Nhc2UgeUEuV0FMTF9USU1FOmRlZmF1bHQ6cmV0dXJufX1nZXRDdXJzb3JBd2FyZVRvb2x0aXBEYXRhKHQsZSl7Y29uc3Qgbj10Lm1hcCgodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHttZXRhZGF0YTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5tZXRhZGF0YSkse2Nsb3Nlc3Q6ITEsZGlzdFNxVG9DdXJzb3I6TWF0aC5oeXBvdCh0LnBvaW50LngtZS54LHQucG9pbnQueS1lLnkpfSl9KSkpO2xldCBvPTEvMCxpPTA7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspbz5uW3RdLm1ldGFkYXRhLmRpc3RTcVRvQ3Vyc29yJiYobz1uW3RdLm1ldGFkYXRhLmRpc3RTcVRvQ3Vyc29yLGk9dCk7c3dpdGNoKG4ubGVuZ3RoJiYobltpXS5tZXRhZGF0YS5jbG9zZXN0PSEwKSx0aGlzLnRvb2x0aXBTb3J0KXtjYXNlIGJBLkRFRkFVTFQ6cmV0dXJuIG47Y2FzZSBiQS5BU0NFTkRJTkc6cmV0dXJuIG4uc29ydCgoKHQsZSk9PnQucG9pbnQueS1lLnBvaW50LnkpKTtjYXNlIGJBLkRFU0NFTkRJTkc6cmV0dXJuIG4uc29ydCgoKHQsZSk9PmUucG9pbnQueS10LnBvaW50LnkpKTtjYXNlIGJBLk5FQVJFU1Q6cmV0dXJuIG4uc29ydCgoKHQsZSk9PnQubWV0YWRhdGEuZGlzdFNxVG9DdXJzb3ItZS5tZXRhZGF0YS5kaXN0U3FUb0N1cnNvcikpfX1vcGVuRGF0YURvd25sb2FkRGlhbG9nKCl7dGhpcy5kaWFsb2cub3Blbih0aGlzLkRhdGFEb3dubG9hZENvbXBvbmVudCx7ZGF0YTp7Y2FyZElkOnRoaXMuY2FyZElkfX0pfX1UZnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRmdCkoU20oaGcpLFNtKG9XKSl9LFRmdC7JtWNtcD10byh7dHlwZTpUZnQsc2VsZWN0b3JzOltbInNjYWxhci1jYXJkLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoZmZ0LDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4ubGluZUNoYXJ0PXQuZmlyc3QpfX0saW5wdXRzOntjYXJkSWQ6ImNhcmRJZCIsY2hhcnRNZXRhZGF0YU1hcDoiY2hhcnRNZXRhZGF0YU1hcCIsRGF0YURvd25sb2FkQ29tcG9uZW50OiJEYXRhRG93bmxvYWRDb21wb25lbnQiLGRhdGFTZXJpZXM6ImRhdGFTZXJpZXMiLGlnbm9yZU91dGxpZXJzOiJpZ25vcmVPdXRsaWVycyIsaXNDYXJkVmlzaWJsZToiaXNDYXJkVmlzaWJsZSIsaXNQaW5uZWQ6ImlzUGlubmVkIixsb2FkU3RhdGU6ImxvYWRTdGF0ZSIsc2hvd0Z1bGxTaXplOiJzaG93RnVsbFNpemUiLHNtb290aGluZ0VuYWJsZWQ6InNtb290aGluZ0VuYWJsZWQiLHRhZzoidGFnIix0aXRsZToidGl0bGUiLHRvb2x0aXBTb3J0OiJ0b29sdGlwU29ydCIseEF4aXNUeXBlOiJ4QXhpc1R5cGUiLHhTY2FsZVR5cGU6InhTY2FsZVR5cGUiLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSIsc2VsZWN0ZWRUaW1lOiJzZWxlY3RlZFRpbWUifSxvdXRwdXRzOntvbkZ1bGxTaXplVG9nZ2xlOiJvbkZ1bGxTaXplVG9nZ2xlIixvblBpbkNsaWNrZWQ6Im9uUGluQ2xpY2tlZCJ9LGRlY2xzOjM0LHZhcnM6MjYsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZSxuLG8saTtyZXR1cm4gdD0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiRml0IGxpbmUgY2hhcnQgZG9tYWlucyB0byBkYXRhIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0aGF0IHJlc2V0cyBsaW5lIGNoYXJ0IGRvbWFpbiB0byB0aGUgZGF0YeKQn2U2OGE1NTI5NDFhYjQyN2E5OWU3NDM3ZTA4NDQzZjMwYWM3MWNjZDbikJ8zODMwNjQ2NTIxMDU4MjY4NTU4OkZpdCBsaW5lIGNoYXJ0IGRvbWFpbnMgdG8gZGF0YWAsZT0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiUGluIGNhcmQiKTokbG9jYWxpemVgOkEgYnV0dG9uIHRvIHBpbiBhIGNhcmQu4pCfZTY2NWRjNzEyYmQ1ZjE4ZDRkZmEzYTI5ZTEyNWQ1NjVjYzUxZTJmNuKQnzcyODQ2MDY0MjYyMzQzNzUzNDQ6UGluIGNhcmRgLG49InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIlRvZ2dsZSBmdWxsIHNpemUgbW9kZSIpOiRsb2NhbGl6ZWA6QSBidXR0b24gb24gbGluZSBjaGFydCB0aGF0IHRvZ2dsZXMgZnVsbCBzaXplIG1vZGUu4pCfZmM4Zjc2N2QwYjlmOTMwMTg3YTFiYWUzNDQ3N2FkMjg3MzZlY2UzM+KQnzkxNTcyMTU2MzYzODkyNjU5NzpUb2dnbGUgZnVsbCBzaXplIG1vZGVgLG89InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIk1vcmUgbGluZSBjaGFydCBvcHRpb25zIik6JGxvY2FsaXplYDpBbiBvdmVyZmxvdyBtZW51IGJ1dHRvbiB0aGF0IG9wZW5zIG1vcmUgbGluZSBjaGFydCBvcHRpb25z4pCfYjI2MGZhYjk0NmEzMDc3Y2UyMGZkMjhlMzM2OTc5ZjU4NjcyMGU4ZOKQnzg3ODA1Mzc0MDIxMDMzNjQzNTpNb3JlIGxpbmUgY2hhcnQgb3B0aW9uc2AsaT0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiVG9nZ2xlIFktYXhpcyBsb2cgc2NhbGUgb24gbGluZSBjaGFydCIpOiRsb2NhbGl6ZWA6QSBidXR0b24gdGhhdCB0b2dnbGVzIGxvZyBzY2FsZSBvbiB5LWF4aXMgb24gYSBsaW5lIGNoYXJ04pCfZmU5MWY5NmFiOWIzYmFjYTVhNDg5MTNmMmIwZmFlODQ0ODNkOTNlM+KQnzMzNzQ2NDU2MjA2Mzg4ODM5MjY6VG9nZ2xlIFktYXhpcyBsb2cgc2NhbGUgb24gbGluZSBjaGFydGAsW1sxLCJoZWFkaW5nIl0sWzEsIm5hbWUiXSxbMSwidGFnIiwzLCJ0aXRsZSIsInZhbHVlIl0sWzQsIm5nSWYiXSxbMSwiY29udHJvbHMiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywiZGlzYWJsZWQiLCJ0aXRsZSIsImNsaWNrIl0sWyJzdmdJY29uIiwic2V0dGluZ3Nfb3ZlcnNjYW5fMjRweCJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwxLCJwaW4tYnV0dG9uIiwzLCJjbGljayJdLFszLCJzdmdJY29uIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixuLCJ0aXRsZSIsIlRvZ2dsZSBmdWxsIHNpemUgbW9kZSIsMywiY2xpY2siXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLG8sInRpdGxlIiwiTW9yZSBsaW5lIGNoYXJ0IG9wdGlvbnMiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIl0sWyJzdmdJY29uIiwibW9yZV92ZXJ0XzI0cHgiXSxbIm1lbnUiLCJtYXRNZW51Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwiYXJpYS1sYWJlbCIsaSwzLCJjbGljayJdLFsic3ZnSWNvbiIsImxpbmVfd2VpZ2h0XzI0cHgiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJhcmlhLWxhYmVsIiwiT3BlbiBkaWFsb2cgdG8gZG93bmxvYWQgZGF0YSIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJnZXRfYXBwXzI0cHgiXSxbMSwiY2hhcnQtY29udGFpbmVyIl0sWyJkaWFtZXRlciIsIjE4Iiw0LCJuZ0lmIl0sWzMsImRpc2FibGVVcGRhdGUiLCJwcmVmZXJyZWRSZW5kZXJlclR5cGUiLCJzZXJpZXNEYXRhIiwic2VyaWVzTWV0YWRhdGFNYXAiLCJ4U2NhbGVUeXBlIiwieVNjYWxlVHlwZSIsImN1c3RvbVhGb3JtYXR0ZXIiLCJpZ25vcmVZT3V0bGllcnMiLCJ0b29sdGlwVGVtcGxhdGUiLCJ1c2VEYXJrTW9kZSIsImN1c3RvbVZpc1RlbXBsYXRlIiwiY3VzdG9tWEF4aXNUZW1wbGF0ZSIsIm9uVmlld0JveE92ZXJyaWRkZW4iXSxbInRvb2x0aXAiLCIiXSxbImxpbmVDaGFydEN1c3RvbVZpcyIsIiJdLFsibGluZUNoYXJ0Q3VzdG9tWEF4aXNWaXMiLCIiXSxbImRpYW1ldGVyIiwiMTgiXSxbMSwidG9vbHRpcCJdLFsxLCJjaXJjbGUtaGVhZGVyIl0sWzQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsxLCJ0b29sdGlwLXJvdyJdLFsxLCJ0b29sdGlwLXJvdy1jaXJjbGUiXSxbMywibmdDbGFzcyJdLFszLCJuZ0NsYXNzIiwibGVmdCIsNCwibmdJZiJdLFsxLCJsaW5rZWQtdGltZS1mb2ItY29udGFpbmVyIl0sWzEsInNlbGVjdGVkLXRpbWUtZm9iIiwzLCJzdGVwIl0sWyJjbGFzcyIsImxpbmtlZC10aW1lLWZvYi1jb250YWluZXIiLDMsInRyYW5zZm9ybSIsNCwibmdJZiJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFJtKDAsImRpdiIsMCksUm0oMSwic3BhbiIsMSksVG0oMiwidGItdHJ1bmNhdGVkLXBhdGgiLDIpLFFwKDMsYmZ0LDEsMCwidmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZCIsMyksQW0oKSxSbSg0LCJzcGFuIiw0KSxSbSg1LCJidXR0b24iLDUpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5yZXNldERvbWFpbigpfSkpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxUbSg4LCJtYXQtaWNvbiIsNiksQW0oKSxSbSg5LCJidXR0b24iLDcpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblBpbkNsaWNrZWQuZW1pdCghbi5pc1Bpbm5lZCl9KSksVG0oMTAsIm1hdC1pY29uIiw4KSxBbSgpLFJtKDExLCJidXR0b24iLDkpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkZ1bGxTaXplVG9nZ2xlLmVtaXQoKX0pKSxUbSgxMiwibWF0LWljb24iLDgpLEFtKCksUm0oMTMsImJ1dHRvbiIsMTApLFRtKDE0LCJtYXQtaWNvbiIsMTEpLEFtKCksUm0oMTUsIm1hdC1tZW51IixudWxsLDEyKSxSbSgxNywiYnV0dG9uIiwxMyksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnRvZ2dsZVlTY2FsZVR5cGUoKX0pKSxUbSgxOCwibWF0LWljb24iLDE0KSxSbSgxOSwic3BhbiIpLGt1KDIwLCJUb2dnbGUgWS1heGlzIGxvZyBzY2FsZSIpLEFtKCksQW0oKSxSbSgyMSwiYnV0dG9uIiwxNSksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9wZW5EYXRhRG93bmxvYWREaWFsb2coKX0pKSxUbSgyMiwibWF0LWljb24iLDE2KSxSbSgyMywic3BhbiIpLGt1KDI0LCJEb3dubG9hZCBkYXRhIiksQW0oKSxBbSgpLEFtKCksQW0oKSxBbSgpLFJtKDI1LCJkaXYiLDE3KSxRcCgyNix5ZnQsMSwwLCJtYXQtc3Bpbm5lciIsMTgpLFJtKDI3LCJsaW5lLWNoYXJ0IiwxOSksVm0oIm9uVmlld0JveE92ZXJyaWRkZW4iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmlzVmlld0JveE92ZXJyaWRkZW49ZX0pKSxBbSgpLFFwKDI4LHZmdCwxNywzLCJuZy10ZW1wbGF0ZSIsbnVsbCwyMCxpYiksQW0oKSxRcCgzMCxEZnQsMSwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwyMSxpYiksUXAoMzIsQWZ0LDEsMSwibmctdGVtcGxhdGUiLG51bGwsMjIsaWIpKSwyJmUpe2NvbnN0IHQ9JHAoMTYpLGU9JHAoMjkpLG89JHAoMzEpLGk9JHAoMzMpO3JjKDIpLEttKCJ0aXRsZSIsbi50YWcpLEttKCJ2YWx1ZSIsbi50aXRsZSkscmMoMSksRG0oIm5nSWYiLG4uc2VsZWN0ZWRUaW1lJiZuLnNlbGVjdGVkVGltZS5jbGlwcGVkKSxyYygyKSxEbSgiZGlzYWJsZWQiLCFuLmxpbmVDaGFydHx8IVRoKDYsMjIsbi5saW5lQ2hhcnQuZ2V0SXNWaWV3Qm94T3ZlcnJpZGRlbigpKSkoInRpdGxlIixuLmxpbmVDaGFydCYmVGgoNywyNCxuLmxpbmVDaGFydC5nZXRJc1ZpZXdCb3hPdmVycmlkZGVuKCkpPyJMaW5lIGNoYXJ0IGlzIGFscmVhZHkgZml0dGVkIHRvIGRhdGEuIFdoZW4gZGF0YSB1cGRhdGVzLCB0aGUgbGluZSBjaGFydCB3aWxsIGF1dG8gZml0IHRvIGl0cyBkb21haW4uIjoiRml0IGxpbmUgY2hhcnQgZG9tYWlucyB0byBkYXRhIikscmMoNCksanAoInRpdGxlIixuLmlzUGlubmVkPyJVbnBpbiBjYXJkIjoiUGluIGNhcmQiKSxyYygxKSxEbSgic3ZnSWNvbiIsbi5pc1Bpbm5lZD8ia2VlcF8yNHB4Ijoia2VlcF9vdXRsaW5lXzI0cHgiKSxyYygyKSxEbSgic3ZnSWNvbiIsbi5zaG93RnVsbFNpemU/ImZ1bGxzY3JlZW5fZXhpdF8yNHB4IjoiZnVsbHNjcmVlbl8yNHB4IikscmMoMSksRG0oIm1hdE1lbnVUcmlnZ2VyRm9yIix0KSxyYygxMyksRG0oIm5nSWYiLG4ubG9hZFN0YXRlPT09bi5EYXRhTG9hZFN0YXRlLkxPQURJTkcpLHJjKDEpLERtKCJkaXNhYmxlVXBkYXRlIiwhbi5pc0NhcmRWaXNpYmxlKSgicHJlZmVycmVkUmVuZGVyZXJUeXBlIixuLlJlbmRlcmVyVHlwZS5XRUJHTCkoInNlcmllc0RhdGEiLG4uZGF0YVNlcmllcykoInNlcmllc01ldGFkYXRhTWFwIixuLmNoYXJ0TWV0YWRhdGFNYXApKCJ4U2NhbGVUeXBlIixuLnhTY2FsZVR5cGUpKCJ5U2NhbGVUeXBlIixuLnlTY2FsZVR5cGUpKCJjdXN0b21YRm9ybWF0dGVyIixuLmdldEN1c3RvbVhGb3JtYXR0ZXIoKSkoImlnbm9yZVlPdXRsaWVycyIsbi5pZ25vcmVPdXRsaWVycykoInRvb2x0aXBUZW1wbGF0ZSIsZSkoInVzZURhcmtNb2RlIixuLnVzZURhcmtNb2RlKSgiY3VzdG9tVmlzVGVtcGxhdGUiLG8pKCJjdXN0b21YQXhpc1RlbXBsYXRlIixpKX19LGRpcmVjdGl2ZXM6W3oyLGRNLFhILERXLGVZLEtXLFdXLGZmdCxnZnQsbzEsbE0sYU0saGZ0XSxwaXBlczpbd00sUk1dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6YXV0bztwYWRkaW5nOjE2cHg7cGFkZGluZy10b3A6NHB4fS5oZWFkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxNHB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbi1ib3R0b206NHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5oZWFkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpncmlkO2dhcDo1cHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOmF1dG8gYXV0b30uaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV0gICB2aXMtc2VsZWN0ZWQtdGltZS1jbGlwcGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MS4yZW07bGluZS1oZWlnaHQ6MH0udGFnW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW59LnBpbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxOHB4fS5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleC1zaHJpbms6MDttYXJnaW4tcmlnaHQ6LTEycHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uY2hhcnQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjF9LmNoYXJ0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICBtYXQtc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTFweDt0b3A6MTFweH0uY2hhcnQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmUtY2hhcnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCV9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1zcGFjaW5nOjRweDtmb250LXNpemU6MTNweH0udG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpsZWZ0fS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLXJvd1tfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwfS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLXJvdy1jaXJjbGVbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2hlaWdodDoxMnB4O3dpZHRoOjEycHh9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtcm93LWNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0gPiBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMHB4O3dpZHRoOjEwcHh9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLmNsb3Nlc3RbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtcm93LWNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0gPiBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6I2ZmZjtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmfS5vdXQtb2Ytc2VsZWN0ZWQtdGltZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjAgZGFzaGVkIGN1cnJlbnRDb2xvcjtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZX0ub3V0LW9mLXNlbGVjdGVkLXRpbWUuc3RhcnRbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yaWdodC13aWR0aDoycHg7bWFyZ2luLWxlZnQ6LTFweH0ub3V0LW9mLXNlbGVjdGVkLXRpbWUuc3RhcnQucmFuZ2VbX25nY29udGVudC0lQ09NUCVde2xlZnQ6MH0ub3V0LW9mLXNlbGVjdGVkLXRpbWUuZW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdC13aWR0aDoycHg7bWFyZ2luLXJpZ2h0Oi0xcHg7cmlnaHQ6MH0ub3V0LW9mLXNlbGVjdGVkLXRpbWUucmFuZ2VbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm91dC1vZi1zZWxlY3RlZC10aW1lLnJhbmdlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm91dC1vZi1zZWxlY3RlZC10aW1lLnJhbmdlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjQpfS5saW5rZWQtdGltZS1mb2ItY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jaztsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9bGlua2VkLXRpbWUtZm9iW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVGZ0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InNjYWxhci1jYXJkLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6InNjYWxhcl9jYXJkX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyJzY2FsYXJfY2FyZF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpvV31dfSkse2NhcmRJZDpbe3R5cGU6eHl9XSxjaGFydE1ldGFkYXRhTWFwOlt7dHlwZTp4eX1dLERhdGFEb3dubG9hZENvbXBvbmVudDpbe3R5cGU6eHl9XSxkYXRhU2VyaWVzOlt7dHlwZTp4eX1dLGlnbm9yZU91dGxpZXJzOlt7dHlwZTp4eX1dLGlzQ2FyZFZpc2libGU6W3t0eXBlOnh5fV0saXNQaW5uZWQ6W3t0eXBlOnh5fV0sbG9hZFN0YXRlOlt7dHlwZTp4eX1dLHNob3dGdWxsU2l6ZTpbe3R5cGU6eHl9XSxzbW9vdGhpbmdFbmFibGVkOlt7dHlwZTp4eX1dLHRhZzpbe3R5cGU6eHl9XSx0aXRsZTpbe3R5cGU6eHl9XSx0b29sdGlwU29ydDpbe3R5cGU6eHl9XSx4QXhpc1R5cGU6W3t0eXBlOnh5fV0seFNjYWxlVHlwZTpbe3R5cGU6eHl9XSx1c2VEYXJrTW9kZTpbe3R5cGU6eHl9XSxzZWxlY3RlZFRpbWU6W3t0eXBlOnh5fV0sb25GdWxsU2l6ZVRvZ2dsZTpbe3R5cGU6T3l9XSxvblBpbkNsaWNrZWQ6W3t0eXBlOk95fV0sbGluZUNoYXJ0Olt7dHlwZTpaYSxhcmdzOltmZnRdfV19KTtjbGFzcyBOZnR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlZj10LHRoaXMuY2RrU2Nyb2xsYWJsZT1lLHRoaXMub25WaXNpYmlsaXR5Q2hhbmdlPW5ldyBMaCx0aGlzLm5nVW5zdWJzY3JpYmUkPW5ldyBJLHRoaXMub25FdmVudCQ9bmV3IEl9bmdPbkluaXQoKXtjb25zdCB0PW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigodD0+e3RoaXMub25FdmVudCQubmV4dCh0KX0pLHtyb290OnRoaXMuY2RrU2Nyb2xsYWJsZT90aGlzLmNka1Njcm9sbGFibGUuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQ6bnVsbCxyb290TWFyZ2luOnRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJNYXJnaW59KTt0Lm9ic2VydmUodGhpcy5yZWYubmF0aXZlRWxlbWVudCksdGhpcy5uZ1Vuc3Vic2NyaWJlJC5zdWJzY3JpYmUoKCgpPT57dC51bm9ic2VydmUodGhpcy5yZWYubmF0aXZlRWxlbWVudCl9KSksdGhpcy5vbkV2ZW50JC5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKHQ9Pntjb25zdCBlPXQuc2xpY2UoLTEpWzBdO3RoaXMub25WaXNpYmlsaXR5Q2hhbmdlLmVtaXQoe3Zpc2libGU6ZS5pc0ludGVyc2VjdGluZ30pfSkpfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlJC5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpfXdhaXRGb3JFdmVudEZvclRlc3RPbmx5KCl7cmV0dXJuIG5ldyBQcm9taXNlKCh0PT50aGlzLm9uRXZlbnQkLnBpcGUoYmUoMSkpLnN1YnNjcmliZSgoKCk9Pnt0KCl9KSkpKX19ZnVuY3Rpb24gemZ0KHQsZSl7cmV0dXJuIHQubGVuZ3RoPT09ZS5sZW5ndGgmJnQuZXZlcnkoKCh0LG4pPT57Y29uc3Qgbz1lW25dLGk9dC5wb2ludHMsYT1vLnBvaW50cztyZXR1cm4gdC5ydW5JZD09PW8ucnVuSWQmJmkubGVuZ3RoPT09YS5sZW5ndGgmJmkuZXZlcnkoKCh0LGUpPT57Y29uc3Qgbj1hW2VdO3JldHVybiB0Lng9PT1uLngmJnQueT09PW4ueX0pKX0pKX1OZnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE5mdCkoU20oaGcpLFNtKG1GLDgpKX0sTmZ0Lsm1ZGlyPWxvKHt0eXBlOk5mdCxzZWxlY3RvcnM6W1siIiwib2JzZXJ2ZUludGVyc2VjdGlvbiIsIiJdXSxpbnB1dHM6e2ludGVyc2VjdGlvbk9ic2VydmVyTWFyZ2luOiJpbnRlcnNlY3Rpb25PYnNlcnZlck1hcmdpbiJ9LG91dHB1dHM6e29uVmlzaWJpbGl0eUNoYW5nZToib25WaXNpYmlsaXR5Q2hhbmdlIn19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE5mdCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJbb2JzZXJ2ZUludGVyc2VjdGlvbl0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOm1GLGRlY29yYXRvcnM6W3t0eXBlOlNyfV19XX0pLHtpbnRlcnNlY3Rpb25PYnNlcnZlck1hcmdpbjpbe3R5cGU6eHl9XSxvblZpc2liaWxpdHlDaGFuZ2U6W3t0eXBlOk95fV19KTtjbGFzcyBJZnR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuRGF0YURvd25sb2FkQ29tcG9uZW50PWw1LHRoaXMuZnVsbFdpZHRoQ2hhbmdlZD1uZXcgTGgsdGhpcy5mdWxsSGVpZ2h0Q2hhbmdlZD1uZXcgTGgsdGhpcy5waW5TdGF0ZUNoYW5nZWQ9bmV3IExoLHRoaXMuaXNWaXNpYmxlPSExLHRoaXMudXNlRGFya01vZGUkPXRoaXMuc3RvcmUuc2VsZWN0KEpEKSx0aGlzLmlnbm9yZU91dGxpZXJzJD10aGlzLnN0b3JlLnNlbGVjdChBVCksdGhpcy50b29sdGlwU29ydCQ9dGhpcy5zdG9yZS5zZWxlY3QoUlQpLHRoaXMueEF4aXNUeXBlJD10aGlzLnN0b3JlLnNlbGVjdChUVCksdGhpcy54U2NhbGVUeXBlJD10aGlzLnN0b3JlLnNlbGVjdChUVCkucGlwZShJdCgodD0+e3N3aXRjaCh0KXtjYXNlIHlBLlNURVA6Y2FzZSB5QS5SRUxBVElWRTpyZXR1cm4gSjIuTElORUFSO2Nhc2UgeUEuV0FMTF9USU1FOnJldHVybiBKMi5USU1FO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHhBeGlzVHlwZSBmb3IgbGluZSBjaGFydC4gJHt0fWApfX0pKSksdGhpcy5zY2FsYXJTbW9vdGhpbmckPXRoaXMuc3RvcmUuc2VsZWN0KHpUKSx0aGlzLnNtb290aGluZ0VuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KHpUKS5waXBlKEl0KCh0PT50PjApKSksdGhpcy5zaG93RnVsbFNpemU9ITEsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBJfW9uVmlzaWJpbGl0eUNoYW5nZSh7dmlzaWJsZTp0fSl7dGhpcy5pc1Zpc2libGU9dH1pc1NjYWxhckNhcmRNZXRhZGF0YSh0KXtjb25zdHtwbHVnaW46ZX09dDtyZXR1cm4gZT09PWhBLlNDQUxBUlN9b25GdWxsU2l6ZVRvZ2dsZSgpe3RoaXMuc2hvd0Z1bGxTaXplPSF0aGlzLnNob3dGdWxsU2l6ZSx0aGlzLmZ1bGxXaWR0aENoYW5nZWQuZW1pdCh0aGlzLnNob3dGdWxsU2l6ZSksdGhpcy5mdWxsSGVpZ2h0Q2hhbmdlZC5lbWl0KHRoaXMuc2hvd0Z1bGxTaXplKX1uZ09uSW5pdCgpe2NvbnN0IHQ9dGhpcy5zdG9yZS5zZWxlY3QoeVQsdGhpcy5jYXJkSWQpLnBpcGUoY2UoKHQ9PiEhdCYmdGhpcy5pc1NjYWxhckNhcmRNZXRhZGF0YSh0KSkpLEl0KCh0PT50KSkpO2Z1bmN0aW9uIGUodCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFsic21vb3RoZWQiLHRdKX1jb25zdCBuPXRoaXMuc3RvcmUuc2VsZWN0KGhULHRoaXMuY2FyZElkKS5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSksY2UoKHQ9PkJvb2xlYW4odCkpKSxJdCgodD0+dCkpLEFlKDEpKS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KFRUKSksSXQoKChbdCxlXSk9Pk9iamVjdC5rZXlzKHQpLm1hcCgobj0+KHtydW5JZDpuLHBvaW50czp0aGlzLnN0ZXBTZXJpZXNUb0xpbmVTZXJpZXModFtuXSxlKX0pKSkpKSxNZSh6ZnQpKS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KElUKSksSWUodGhpcy5uZ1Vuc3Vic2NyaWJlKSxJdCgoKFt0LGVdKT0+ZT8oZnVuY3Rpb24gbih0KXt2YXIgZTtjb25zdCBuPVtdO2Zvcihjb25zdCBvIG9mIHQpe2NvbnN0IHQ9W107bGV0IGk9TnVtYmVyLmlzRmluaXRlKG51bGw9PT0oZT1vLnBvaW50c1swXSl8fHZvaWQgMD09PWU/dm9pZCAwOmUueCk/by5wb2ludHNbMF0ueDotMS8wLGE9W107Zm9yKGNvbnN0IGUgb2Ygby5wb2ludHMpTnVtYmVyLmlzRmluaXRlKGUueCk/KGUueDxpJiYodC5wdXNoKHtzZXJpZXNJZDpKU09OLnN0cmluZ2lmeShbby5ydW5JZCx0Lmxlbmd0aF0pLHJ1bklkOm8ucnVuSWQscG9pbnRzOmF9KSxhPVtdKSxhLnB1c2goZSksaT1lLngpOmEucHVzaChlKTt0LnB1c2goe3Nlcmllc0lkOkpTT04uc3RyaW5naWZ5KFtvLnJ1bklkLHQubGVuZ3RoXSkscnVuSWQ6by5ydW5JZCxwb2ludHM6YX0pO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKW4ucHVzaChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdFtlXSkse3BhcnRpdGlvbkluZGV4OmUscGFydGl0aW9uU2l6ZTp0Lmxlbmd0aH0pKX1yZXR1cm4gbn0pKHQpOnQubWFwKCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3Nlcmllc0lkOnQucnVuSWQscGFydGl0aW9uSW5kZXg6MCxwYXJ0aXRpb25TaXplOjF9KSkpKSksSXQoKHQ9PnQubWFwKCh0PT57dmFyIGU7Y29uc3Qgbj1udWxsPT09KGU9dC5wb2ludHNbMF0pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLndhbGxUaW1lO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BvaW50czp0LnBvaW50cy5tYXAoKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cmVsYXRpdmVUaW1lSW5Nczp0LndhbGxUaW1lLW59KSkpfSl9KSkpKSxmZSh0aGlzLnN0b3JlLnNlbGVjdChUVCkpLEl0KCgoW3QsZV0pPT50Lm1hcCgodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwb2ludHM6dC5wb2ludHMubWFwKCh0PT57bGV0IG47c3dpdGNoKGUpe2Nhc2UgeUEuUkVMQVRJVkU6bj10LnJlbGF0aXZlVGltZUluTXM7YnJlYWs7Y2FzZSB5QS5XQUxMX1RJTUU6bj10LndhbGxUaW1lO2JyZWFrO2Nhc2UgeUEuU1RFUDpkZWZhdWx0Om49dC5zdGVwfXJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3g6bn0pfSkpfSkpKSkpLEFlKDEpKTt0aGlzLmRhdGFTZXJpZXMkPW4ucGlwZShmZSh0aGlzLnN0b3JlLnNlbGVjdCh6VCkpLHplKCgoW3Qsbl0pPT57Y29uc3Qgbz10Lm1hcCgoKHtzZXJpZXNJZDp0LHBvaW50czplfSk9Pih7aWQ6dCxwb2ludHM6ZX0pKSk7cmV0dXJuIG48PTA/RXQobyk6Q3QoKGZ1bmN0aW9uIGkodCxlKXt2YXIgbjtyZXR1cm4gZ0EodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtOdW1iZXIuaXNGaW5pdGUoZSl8fChlPTApLGU9TWF0aC5tYXgoMCxNYXRoLm1pbihlLDEpKTtjb25zdCBvPVtdO2Zvcihjb25zdCBpIG9mIHQpe2NvbnN0IHQ9bnVsbD09PShuPWkucG9pbnRzWzBdKXx8dm9pZCAwPT09bj92b2lkIDA6bi55O2lmKGkucG9pbnRzLmV2ZXJ5KChlPT5lLnk9PXQpKSl7by5wdXNoKGkpO2NvbnRpbnVlfWxldCBhPWkucG9pbnRzLmxlbmd0aD4wPzA6TmFOLHI9MDtjb25zdCBzPWkucG9pbnRzLm1hcCgodD0+e2NvbnN0IG49dC55O2lmKE51bWJlci5pc0Zpbml0ZShuKSl7YT1hKmUrKDEtZSkqbixyKys7Y29uc3Qgbz0xPT09ZT8xOjEtTWF0aC5wb3coZSxyKTtyZXR1cm57eDp0LngseTphL299fXJldHVybnt4OnQueCx5Om59fSkpO28ucHVzaCh7aWQ6aS5pZCxwb2ludHM6c30pfXJldHVybiBvfSkpfSkobyxuKSkucGlwZShJdCgodD0+e2NvbnN0IG49by5tYXAoKChuLG8pPT4oe2lkOmUobi5pZCkscG9pbnRzOnRbb10ucG9pbnRzLm1hcCgoKHt5OnR9LGUpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbi5wb2ludHNbZV0pLHt5OnR9KSkpfSkpKTtyZXR1cm5bLi4ubywuLi5uXX0pKSl9KSksTmUoW10pKSx0aGlzLnNlbGVjdGVkVGltZSQ9V3QoW24sdGhpcy5zdG9yZS5zZWxlY3QoWVQpLHRoaXMuc3RvcmUuc2VsZWN0KFRUKV0pLnBpcGUoSXQoKChbdCxlLG5dKT0+e2lmKG4hPT15QS5TVEVQfHwhZSlyZXR1cm4gbnVsbDtsZXQgbz0xLzAsaT0tMS8wO2Zvcihjb25zdHtwb2ludHM6ZX1vZiB0KWZvcihjb25zdCB0IG9mIGUpbz1vPnQueD90Lng6byxpPWk8dC54P3QueDppO3JldHVybiBIMihlLG8saSl9KSkpLHRoaXMuY2hhcnRNZXRhZGF0YU1hcCQ9bi5waXBlKHplKCh0PT5XdCh0Lm1hcCgodD0+dGhpcy5nZXRSdW5EaXNwbGF5TmFtZSh0LnJ1bklkKS5waXBlKEl0KChlPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2Rpc3BsYXlOYW1lOmV9KSkpKSkpKSkpLGZlKHRoaXMuc3RvcmUuc2VsZWN0KE5OKSx0aGlzLnN0b3JlLnNlbGVjdCh6TiksdGhpcy5zdG9yZS5zZWxlY3QoelQpKSxnZSgwKSxJdCgoKFt0LG4sbyxpXSk9Pnt2YXIgYTtjb25zdCByPXt9LHM9aT4wO2Zvcihjb25zdCBlIG9mIHQpe2NvbnN0e3Nlcmllc0lkOnQscnVuSWQ6aSxkaXNwbGF5TmFtZTpzLHBhcnRpdGlvbkluZGV4OmwscGFydGl0aW9uU2l6ZTpjfT1lO3JbdF09e3R5cGU6UTIuT1JJR0lOQUwsaWQ6dCxkaXNwbGF5TmFtZTpjPjE/YCR7c306ICR7bH1gOnMsdmlzaWJsZTpCb29sZWFuKG4mJm4uZ2V0KGkpKSxjb2xvcjpudWxsIT09KGE9b1tpXSkmJnZvaWQgMCE9PWE/YToiI2ZmZiIsYXV4OiExLG9wYWNpdHk6MX19aWYoIXMpcmV0dXJuIHI7Zm9yKGNvbnN0W3Qsbl1vZiBPYmplY3QuZW50cmllcyhyKSl7Y29uc3Qgbz1lKHQpO3Jbb109T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDpvLHR5cGU6UTIuREVSSVZFRCxhdXg6ITEsb3JpZ2luYWxTZXJpZXNJZDp0fSksbi5hdXg9ITAsbi5vcGFjaXR5PS4yNX1yZXR1cm4gcn0pKSxOZSh7fSkpLHRoaXMubG9hZFN0YXRlJD10aGlzLnN0b3JlLnNlbGVjdChnVCx0aGlzLmNhcmRJZCksdGhpcy50YWckPXQucGlwZShJdCgodD0+dC50YWcpKSksdGhpcy50aXRsZSQ9dGhpcy50YWckLnBpcGUoSXQoKHQ9PmYyKHQsdGhpcy5ncm91cE5hbWUpKSkpLHRoaXMuaXNQaW5uZWQkPXRoaXMuc3RvcmUuc2VsZWN0KHdULHRoaXMuY2FyZElkKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9Z2V0UnVuRGlzcGxheU5hbWUodCl7cmV0dXJuIFd0KFt0aGlzLnN0b3JlLnNlbGVjdChyTix7cnVuSWQ6dH0pLHRoaXMuc3RvcmUuc2VsZWN0KHpTKSx0aGlzLnN0b3JlLnNlbGVjdChzTix7cnVuSWQ6dH0pXSkucGlwZShJdCgoKFtlLG4sb10pPT5JMih0LG8sZT9uW2VdOm51bGwpKSkpfXN0ZXBTZXJpZXNUb0xpbmVTZXJpZXModCxlKXtjb25zdCBuPWU9PT15QS5TVEVQO3JldHVybiB0Lm1hcCgodD0+e2NvbnN0IGU9MWUzKnQud2FsbFRpbWU7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7eDpuP3Quc3RlcDplLHk6dC52YWx1ZSx3YWxsVGltZTplLHJlbGF0aXZlVGltZUluTXM6MH0pfSkpfX1mdW5jdGlvbiBIZnQodCxlLG4pe2NvbnN0IG89W10se2xlZnQ6aSxyaWdodDphfT1lLHI9KGEtaSkvbjtsZXQgcz0wLGw9MDtmb3IobGV0IGU9MDtlPG47ZSsrKXtjb25zdCBhPWkrZSpyLGM9YStyLGQ9ZT09PW4tMTtsZXQgcD1sO2ZvcihsPTA7czx0Lmxlbmd0aDspe2NvbnN0IGU9dFtzXSxuPUZmdChlLGEsYywhZCk7aWYocCs9bi5jdXJyLGwrPW4ubmV4dCxlLngrZS5keD5jKWJyZWFrO3MrK31vLnB1c2goe3g6YSxkeDpyLHk6cH0pfXJldHVybiBvfWZ1bmN0aW9uIEZmdCh0LGUsbixvKXtjb25zdCBpPXQueCxhPXQueCt0LmR4O2lmKGk+bnx8YTxlKXJldHVybntjdXJyOjAsbmV4dDowfTtpZigwPT09dC5keClyZXR1cm4gbyYmYT09PW4/e2N1cnI6LjUqdC55LG5leHQ6LjUqdC55fTp7Y3Vycjp0LnksbmV4dDowfTtjb25zdCByPU1hdGgubWluKGEsbiktTWF0aC5tYXgoaSxlKTtyZXR1cm57Y3Vycjp0Lnkqci90LmR4LG5leHQ6MH19SWZ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJZnQpKFNtKEl3KSl9LElmdC7JtWNtcD10byh7dHlwZTpJZnQsc2VsZWN0b3JzOltbInNjYWxhci1jYXJkIl1dLGlucHV0czp7RGF0YURvd25sb2FkQ29tcG9uZW50OiJEYXRhRG93bmxvYWRDb21wb25lbnQiLGNhcmRJZDoiY2FyZElkIixncm91cE5hbWU6Imdyb3VwTmFtZSJ9LG91dHB1dHM6e2Z1bGxXaWR0aENoYW5nZWQ6ImZ1bGxXaWR0aENoYW5nZWQiLGZ1bGxIZWlnaHRDaGFuZ2VkOiJmdWxsSGVpZ2h0Q2hhbmdlZCIscGluU3RhdGVDaGFuZ2VkOiJwaW5TdGF0ZUNoYW5nZWQifSxkZWNsczoxNCx2YXJzOjQzLGNvbnN0czpbWyJvYnNlcnZlSW50ZXJzZWN0aW9uIiwiIiwzLCJjYXJkSWQiLCJjaGFydE1ldGFkYXRhTWFwIiwiRGF0YURvd25sb2FkQ29tcG9uZW50IiwiZGF0YVNlcmllcyIsImlnbm9yZU91dGxpZXJzIiwiaXNDYXJkVmlzaWJsZSIsImlzUGlubmVkIiwibG9hZFN0YXRlIiwic2hvd0Z1bGxTaXplIiwic21vb3RoaW5nRW5hYmxlZCIsInRhZyIsInRpdGxlIiwidG9vbHRpcFNvcnQiLCJ4QXhpc1R5cGUiLCJ4U2NhbGVUeXBlIiwidXNlRGFya01vZGUiLCJzZWxlY3RlZFRpbWUiLCJvbkZ1bGxTaXplVG9nZ2xlIiwib25QaW5DbGlja2VkIiwib25WaXNpYmlsaXR5Q2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJzY2FsYXItY2FyZC1jb21wb25lbnQiLDApLFZtKCJvbkZ1bGxTaXplVG9nZ2xlIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRnVsbFNpemVUb2dnbGUoKX0pKSgib25QaW5DbGlja2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5waW5TdGF0ZUNoYW5nZWQuZW1pdChlKX0pKSgib25WaXNpYmlsaXR5Q2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblZpc2liaWxpdHlDaGFuZ2UoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxBaCg4LCJhc3luYyIpLEFoKDksImFzeW5jIiksQWgoMTAsImFzeW5jIiksQWgoMTEsImFzeW5jIiksQWgoMTIsImFzeW5jIiksQWgoMTMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgiY2FyZElkIixuLmNhcmRJZCkoImNoYXJ0TWV0YWRhdGFNYXAiLFRoKDEsMTcsbi5jaGFydE1ldGFkYXRhTWFwJCkpKCJEYXRhRG93bmxvYWRDb21wb25lbnQiLG4uRGF0YURvd25sb2FkQ29tcG9uZW50KSgiZGF0YVNlcmllcyIsVGgoMiwxOSxuLmRhdGFTZXJpZXMkKSkoImlnbm9yZU91dGxpZXJzIixUaCgzLDIxLG4uaWdub3JlT3V0bGllcnMkKSkoImlzQ2FyZFZpc2libGUiLG4uaXNWaXNpYmxlKSgiaXNQaW5uZWQiLFRoKDQsMjMsbi5pc1Bpbm5lZCQpKSgibG9hZFN0YXRlIixUaCg1LDI1LG4ubG9hZFN0YXRlJCkpKCJzaG93RnVsbFNpemUiLG4uc2hvd0Z1bGxTaXplKSgic21vb3RoaW5nRW5hYmxlZCIsVGgoNiwyNyxuLnNtb290aGluZ0VuYWJsZWQkKSkoInRhZyIsVGgoNywyOSxuLnRhZyQpKSgidGl0bGUiLFRoKDgsMzEsbi50aXRsZSQpKSgidG9vbHRpcFNvcnQiLFRoKDksMzMsbi50b29sdGlwU29ydCQpKSgieEF4aXNUeXBlIixUaCgxMCwzNSxuLnhBeGlzVHlwZSQpKSgieFNjYWxlVHlwZSIsVGgoMTEsMzcsbi54U2NhbGVUeXBlJCkpKCJ1c2VEYXJrTW9kZSIsVGgoMTIsMzksbi51c2VEYXJrTW9kZSQpKSgic2VsZWN0ZWRUaW1lIixUaCgxMyw0MSxuLnNlbGVjdGVkVGltZSQpKX0sZGlyZWN0aXZlczpbVGZ0LE5mdF0scGlwZXM6W3dNXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSWZ0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InNjYWxhci1jYXJkIix0ZW1wbGF0ZTonXG4gICAgPHNjYWxhci1jYXJkLWNvbXBvbmVudFxuICAgICAgW2NhcmRJZF09ImNhcmRJZCJcbiAgICAgIFtjaGFydE1ldGFkYXRhTWFwXT0iY2hhcnRNZXRhZGF0YU1hcCQgfCBhc3luYyJcbiAgICAgIFtEYXRhRG93bmxvYWRDb21wb25lbnRdPSJEYXRhRG93bmxvYWRDb21wb25lbnQiXG4gICAgICBbZGF0YVNlcmllc109ImRhdGFTZXJpZXMkIHwgYXN5bmMiXG4gICAgICBbaWdub3JlT3V0bGllcnNdPSJpZ25vcmVPdXRsaWVycyQgfCBhc3luYyJcbiAgICAgIFtpc0NhcmRWaXNpYmxlXT0iaXNWaXNpYmxlIlxuICAgICAgW2lzUGlubmVkXT0iaXNQaW5uZWQkIHwgYXN5bmMiXG4gICAgICBbbG9hZFN0YXRlXT0ibG9hZFN0YXRlJCB8IGFzeW5jIlxuICAgICAgW3Nob3dGdWxsU2l6ZV09InNob3dGdWxsU2l6ZSJcbiAgICAgIFtzbW9vdGhpbmdFbmFibGVkXT0ic21vb3RoaW5nRW5hYmxlZCQgfCBhc3luYyJcbiAgICAgIFt0YWddPSJ0YWckIHwgYXN5bmMiXG4gICAgICBbdGl0bGVdPSJ0aXRsZSQgfCBhc3luYyJcbiAgICAgIFt0b29sdGlwU29ydF09InRvb2x0aXBTb3J0JCB8IGFzeW5jIlxuICAgICAgW3hBeGlzVHlwZV09InhBeGlzVHlwZSQgfCBhc3luYyJcbiAgICAgIFt4U2NhbGVUeXBlXT0ieFNjYWxlVHlwZSQgfCBhc3luYyJcbiAgICAgIFt1c2VEYXJrTW9kZV09InVzZURhcmtNb2RlJCB8IGFzeW5jIlxuICAgICAgW3NlbGVjdGVkVGltZV09InNlbGVjdGVkVGltZSQgfCBhc3luYyJcbiAgICAgIChvbkZ1bGxTaXplVG9nZ2xlKT0ib25GdWxsU2l6ZVRvZ2dsZSgpIlxuICAgICAgKG9uUGluQ2xpY2tlZCk9InBpblN0YXRlQ2hhbmdlZC5lbWl0KCRldmVudCkiXG4gICAgICBvYnNlcnZlSW50ZXJzZWN0aW9uXG4gICAgICAob25WaXNpYmlsaXR5Q2hhbmdlKT0ib25WaXNpYmlsaXR5Q2hhbmdlKCRldmVudCkiXG4gICAgPjwvc2NhbGFyLWNhcmQtY29tcG9uZW50PlxuICAnLHN0eWxlczpbIlxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSkse0RhdGFEb3dubG9hZENvbXBvbmVudDpbe3R5cGU6eHl9XSxjYXJkSWQ6W3t0eXBlOnh5fV0sZ3JvdXBOYW1lOlt7dHlwZTp4eX1dLGZ1bGxXaWR0aENoYW5nZWQ6W3t0eXBlOk95fV0sZnVsbEhlaWdodENoYW5nZWQ6W3t0eXBlOk95fV0scGluU3RhdGVDaGFuZ2VkOlt7dHlwZTpPeX1dfSk7Y29uc3QgTGZ0PVsibWFpbiJdLEJmdD1bInhBeGlzIl0sVmZ0PVsieUF4aXMiXSxqZnQ9WyJjb250ZW50Il0sVWZ0PVsiaGlzdG9ncmFtcyJdO2Z1bmN0aW9uIEdmdCh0LGUpe2lmKDEmdCYmKHFpKCksUm0oMCwiZyIpLFJtKDEsInRleHQiKSxrdSgyKSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO2R1KCJ0cmFuc2Zvcm0iLHQuZ2V0Q3NzVHJhbnNsYXRlUHgodC50b29sdGlwRGF0YS54QXhpcy5wb3NpdGlvbiw5KSkscmMoMiksU3UodC50b29sdGlwRGF0YS54QXhpcy5sYWJlbCl9fWZ1bmN0aW9uIFdmdCh0LGUpe2lmKDEmdCYmKHFpKCksUm0oMCwiZyIpLFJtKDEsInRleHQiKSxrdSgyKSxBbSgpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO2R1KCJ0cmFuc2Zvcm0iLHQuZ2V0R3JvdXBUcmFuc2Zvcm0odC50b29sdGlwRGF0YS5jbG9zZXN0RGF0dW0pKSxyYygxKSxqcCgieSIsdC50b29sdGlwRGF0YS55QXhpcy5wb3NpdGlvbikscmMoMSksRHUoIiAiLHQudG9vbHRpcERhdGEueUF4aXMubGFiZWwsIiAiKX19ZnVuY3Rpb24gWWZ0KHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2IiwxNiksVG0oMSwibGlua2VkLXRpbWUtZm9iIiwxNyksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO2R1KCJ0cmFuc2Zvcm0iLHQuZ2V0Q3NzVHJhbnNsYXRlUHgoMCx0LnNjYWxlcy50ZW1wb3JhbFNjYWxlKHQubGlua2VkVGltZS5lbmRTdGVwKSkpLHJjKDEpLERtKCJzdGVwIix0LmxpbmtlZFRpbWUuZW5kU3RlcCl9fWZ1bmN0aW9uIHFmdCh0LGUpe2lmKDEmdCYmKHFpKCksWmkoKSxObSgwKSxSbSgxLCJkaXYiLDE2KSxUbSgyLCJsaW5rZWQtdGltZS1mb2IiLDE3KSxBbSgpLFFwKDMsWWZ0LDIsMywiZGl2IiwxOCksem0oKSksMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksZHUoInRyYW5zZm9ybSIsdC5nZXRDc3NUcmFuc2xhdGVQeCgwLHQuc2NhbGVzLnRlbXBvcmFsU2NhbGUodC5saW5rZWRUaW1lLnN0YXJ0U3RlcCkpKSxyYygxKSxEbSgic3RlcCIsdC5saW5rZWRUaW1lLnN0YXJ0U3RlcCkscmMoMSksRG0oIm5nSWYiLHQubGlua2VkVGltZS5lbmRTdGVwKX19ZnVuY3Rpb24gWmZ0KHQsZSl7aWYoMSZ0JiYocWkoKSxSbSgwLCJnIiksVG0oMSwibGluZSIsMTkpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtkdSgidHJhbnNmb3JtIixZbSgpLmdldENzc1RyYW5zbGF0ZVB4KDAsdCkpfX1mdW5jdGlvbiBYZnQodCxlKXsxJnQmJihxaSgpLFRtKDAsImxpbmUiLDIyKSl9ZnVuY3Rpb24gS2Z0KHQsZSl7aWYoMSZ0JiYocWkoKSxUbSgwLCJjaXJjbGUiLDIzKSksMiZ0KXtjb25zdCB0PVltKCkuJGltcGxpY2l0LGU9WW0oKTtkdSgidHJhbnNmb3JtIixlLmdldENzc1RyYW5zbGF0ZVB4KGUuZ2V0VWlDb29yZEZyb21CaW5Gb3JDb250ZW50KGUuZ2V0Q2xvc2VzdEJpbkZyb21CaW5Db29yZGluYXRlKHQsZS50b29sdGlwRGF0YS54UG9zaXRpb25JbkJpbkNvb3JkKSkueCxlLmdldFVpQ29vcmRGcm9tQmluRm9yQ29udGVudChlLmdldENsb3Nlc3RCaW5Gcm9tQmluQ29vcmRpbmF0ZSh0LGUudG9vbHRpcERhdGEueFBvc2l0aW9uSW5CaW5Db29yZCkpLnkpKX19ZnVuY3Rpb24gSmZ0KHQsZSl7aWYoMSZ0JiYocWkoKSxSbSgwLCJnIiksUXAoMSxYZnQsMSwwLCJsaW5lIiwyMCksVG0oMiwicGF0aCIpLFFwKDMsS2Z0LDEsMiwiY2lyY2xlIiwyMSksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oKTtkdSgidHJhbnNmb3JtIixuLmdldEdyb3VwVHJhbnNmb3JtKHQpKSgiY29sb3IiLG4uZ2V0SGlzdG9ncmFtRmlsbCh0KSkscHUoImhpc3RvZ3JhbSIsITApKCJuby1jb2xvciIsIW4uaXNEYXR1bUluTGlua2VkVGltZVJhbmdlKHQpKSxyYygxKSxEbSgibmdJZiIsbi5tb2RlPT09bi5IaXN0b2dyYW1Nb2RlLk9GRlNFVCkscmMoMSksanAoImQiLG4uZ2V0SGlzdG9ncmFtUGF0aCh0KSkscmMoMSksRG0oIm5nSWYiLG4udG9vbHRpcERhdGEpfX1mdW5jdGlvbiBRZnQodCxlKXtpZigxJnQmJihxaSgpLFRtKDAsImNpcmNsZSIsMjMpKSwyJnQpe2NvbnN0IHQ9WW0oMik7anAoImN4Iix0LmdldFVpQ29vcmRGcm9tQmluRm9yQ29udGVudCh0LnRvb2x0aXBEYXRhLmNsb3Nlc3RCaW4pLngpKCJjeSIsdC5nZXRVaUNvb3JkRnJvbUJpbkZvckNvbnRlbnQodC50b29sdGlwRGF0YS5jbG9zZXN0QmluKS55KX19ZnVuY3Rpb24gJGZ0KHQsZSl7aWYoMSZ0JiYocWkoKSxSbSgwLCJnIiw0KSxSbSgxLCJnIiksVG0oMiwicGF0aCIpLFFwKDMsUWZ0LDEsMiwiY2lyY2xlIiwyNCksQW0oKSxSbSg0LCJnIiwyNSksUm0oNSwidGV4dCIsMjYpLGt1KDYpLEFtKCksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxkdSgidHJhbnNmb3JtIix0LmdldEdyb3VwVHJhbnNmb3JtKHQudG9vbHRpcERhdGEuY2xvc2VzdERhdHVtKSkscmMoMSksanAoImQiLHQuZ2V0SGlzdG9ncmFtUGF0aCh0LnRvb2x0aXBEYXRhLmNsb3Nlc3REYXR1bSkpLHJjKDEpLERtKCJuZ0lmIix0LnRvb2x0aXBEYXRhLmNsb3Nlc3RCaW4pLHJjKDEpLGR1KCJ0cmFuc2Zvcm0iLHQuZ2V0Q3NzVHJhbnNsYXRlUHgodC50b29sdGlwRGF0YS52YWx1ZS5wb3NpdGlvbi54LHQudG9vbHRpcERhdGEudmFsdWUucG9zaXRpb24ueSkpLHJjKDIpLFN1KHQudG9vbHRpcERhdGEudmFsdWUubGFiZWwpfX1jbGFzcyB0Z3R7Y29uc3RydWN0b3IodCl7dGhpcy5jaGFuZ2VEZXRlY3Rvcj10LHRoaXMubW9kZT1wRS5PRkZTRVQsdGhpcy50aW1lUHJvcGVydHk9ZEUuU1RFUCx0aGlzLmxpbmtlZFRpbWU9bnVsbCx0aGlzLkhpc3RvZ3JhbU1vZGU9cEUsdGhpcy5UaW1lUHJvcGVydHk9ZEUsdGhpcy50b29sdGlwRGF0YT1udWxsLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgSSx0aGlzLmxheW91dD17aGlzdG9ncmFtSGVpZ2h0OjAsY29udGVudENsaWVudFJlY3Q6e2hlaWdodDowLHdpZHRoOjB9fSx0aGlzLnNjYWxlcz1udWxsLHRoaXMuZm9ybWF0dGVycz17YmluTnVtYmVyOkV0dCgiLjN+cyIpLGNvdW50OkV0dCgiLjNuIiksd2FsbFRpbWU6V2V0KCIlbS8lZCAlWCIpLHN0ZXA6RXR0KCIuMGYiKSxyZWxhdGl2ZTp0PT5FdHQoIi4xciIpKHQvMzZlNSkrImgifSx0aGlzLmRvbVZpc2libGU9ITF9bmdPbkNoYW5nZXMoKXt0aGlzLnVwZGF0ZUNoYXJ0SWZWaXNpYmxlKCl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfW5nQWZ0ZXJWaWV3SW5pdCgpe29lKHRoaXMubWFpbi5uYXRpdmVFbGVtZW50LCJtb3VzZW1vdmUiLHtwYXNzaXZlOiEwfSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHQ9PnRoaXMub25Nb3VzZU1vdmUodCkpKX1nZXRDc3NUcmFuc2xhdGVQeCh0LGUpe3JldHVybmB0cmFuc2xhdGUoJHt0fXB4LCAke2V9cHgpYH1nZXRDbG9zZXN0QmluRnJvbUJpbkNvb3JkaW5hdGUodCxlKXtpZighdC5iaW5zLmxlbmd0aClyZXR1cm57eDowLGR4OjAseTowfTtjb25zdCBuPXQuYmluc1swXSxvPXQuYmlucy5zbGljZSgtMSlbMF07cmV0dXJuIGU8bi54P246ZT49by54K28uZHg/bzp0LmJpbnMuZmluZCgodD0+dC54PD1lJiZlPHQueCt0LmR4KSl9Z2V0VWlDb29yZEZyb21CaW5Gb3JDb250ZW50KHQpe3JldHVybiB0aGlzLnNjYWxlcz97eDp0aGlzLnNjYWxlcy5iaW5TY2FsZShvZ3QodCkpLHk6dGhpcy5zY2FsZXMuY291bnRTY2FsZSh0LnkpfTp7eDowLHk6MH19Z2V0SGlzdG9ncmFtUGF0aCh0KXtpZighdGhpcy5zY2FsZXN8fCF0LmJpbnMubGVuZ3RoKXJldHVybiIiO2NvbnN0IGU9dGhpcy5zY2FsZXMuYmluU2NhbGUsbj10aGlzLnNjYWxlcy5jb3VudFNjYWxlLG89dC5iaW5zWzBdLGk9dC5iaW5zLnNsaWNlKC0xKVswXSxhPVtgTSR7ZShvZ3QobykpfSwke24oMCl9YF07Zm9yKGNvbnN0IG8gb2YgdC5iaW5zKWEucHVzaChgTCR7ZShvZ3QobykpfSwke24oby55KX1gKTtyZXR1cm4gYS5wdXNoKGBMJHtlKG9ndChpKSl9LCR7bigwKX1gKSxhLmpvaW4oIiIpfXRyYWNrQnlXYWxsVGltZSh0KXtyZXR1cm4gdC53YWxsVGltZX1nZXRHcm91cFRyYW5zZm9ybSh0KXtyZXR1cm4gdGhpcy5zY2FsZXMmJnRoaXMubW9kZSE9PXBFLk9WRVJMQVk/dGhpcy5nZXRDc3NUcmFuc2xhdGVQeCgwLHRoaXMuc2NhbGVzLnRlbXBvcmFsU2NhbGUodGhpcy5nZXRUaW1lVmFsdWUodCkpKToiIn1pc0xpbmtlZFRpbWVFbmFibGVkKHQpe3JldHVybiBCb29sZWFuKHRoaXMubW9kZT09PXBFLk9GRlNFVCYmdGhpcy50aW1lUHJvcGVydHk9PT1kRS5TVEVQJiZ0aGlzLnNjYWxlcyYmdCl9aXNEYXR1bUluTGlua2VkVGltZVJhbmdlKHQpe3JldHVybiF0aGlzLmlzTGlua2VkVGltZUVuYWJsZWQodGhpcy5saW5rZWRUaW1lKXx8KG51bGw9PT10aGlzLmxpbmtlZFRpbWUuZW5kU3RlcD90aGlzLmxpbmtlZFRpbWUuc3RhcnRTdGVwPT09dC5zdGVwOnRoaXMubGlua2VkVGltZS5zdGFydFN0ZXA8PXQuc3RlcCYmdGhpcy5saW5rZWRUaW1lLmVuZFN0ZXA+PXQuc3RlcCl9Z2V0SGlzdG9ncmFtRmlsbCh0KXtyZXR1cm4gdGhpcy5zY2FsZXM/dGhpcy5zY2FsZXMuZDNDb2xvclNjYWxlKHRoaXMuZ2V0VGltZVZhbHVlKHQpKToiIn1nZXRHcmlkVGlja1lMb2NzKCl7aWYoIXRoaXMuc2NhbGVzfHx0aGlzLm1vZGU9PT1wRS5PRkZTRVQpcmV0dXJuW107Y29uc3QgdD10aGlzLnNjYWxlcy5jb3VudFNjYWxlO3JldHVybiB0LnRpY2tzKCkubWFwKChlPT50KGUpKSl9b25SZXNpemUoKXt0aGlzLnVwZGF0ZUNsaWVudFJlY3RzKCksdGhpcy51cGRhdGVDaGFydElmVmlzaWJsZSgpfW9uVmlzaWJpbGl0eUNoYW5nZSh7dmlzaWJsZTp0fSl7dGhpcy5kb21WaXNpYmxlPXQsdCYmKHRoaXMudXBkYXRlQ2xpZW50UmVjdHMoKSx0aGlzLnVwZGF0ZUNoYXJ0SWZWaXNpYmxlKCkpfWdldFRpbWVWYWx1ZSh0KXtzd2l0Y2godGhpcy50aW1lUHJvcGVydHkpe2Nhc2UgZEUuV0FMTF9USU1FOnJldHVybiB0LndhbGxUaW1lO2Nhc2UgZEUuU1RFUDpyZXR1cm4gdC5zdGVwO2Nhc2UgZEUuUkVMQVRJVkU6cmV0dXJuIHQud2FsbFRpbWUtdGhpcy5kYXRhWzBdLndhbGxUaW1lfX11cGRhdGVDbGllbnRSZWN0cygpe3RoaXMuY29udGVudCYmKHRoaXMubGF5b3V0LmNvbnRlbnRDbGllbnRSZWN0PXRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMubGF5b3V0Lmhpc3RvZ3JhbUhlaWdodD10aGlzLmxheW91dC5jb250ZW50Q2xpZW50UmVjdC5oZWlnaHQvMi41KX11cGRhdGVDaGFydElmVmlzaWJsZSgpe3RoaXMuZG9tVmlzaWJsZSYmKHRoaXMuc2NhbGVzPXRoaXMuY29tcHV0ZVNjYWxlcyh0aGlzLmRhdGEpLHRoaXMucmVuZGVyWEF4aXMoKSx0aGlzLnJlbmRlcllBeGlzKCksdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCkpfWNvbXB1dGVTY2FsZXModCl7Y29uc3R7d2lkdGg6ZSxoZWlnaHQ6bn09dGhpcy5sYXlvdXQuY29udGVudENsaWVudFJlY3Qse21pbjpvLG1heDppfT1uZ3QodCwodD0+KGZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gdC5yZWR1Y2UoKCh0LGUpPT5NYXRoLm1pbih0LG4oZSkpKSwxLzApfSkodC5iaW5zLCh0PT50LngpKSksKHQ9PmVndCh0LmJpbnMsKCh7eDp0LGR4OmV9KT0+dCtlKSkpKSxhPWVndCh0LCh0PT5lZ3QodC5iaW5zLCgoe3k6dH0pPT50KSkpKSxyPWVldCgpLmRvbWFpbihbbyxpXSkubmljZSgpLHM9dGhpcy5tb2RlIT09cEUuT1ZFUkxBWSYmdGhpcy50aW1lUHJvcGVydHk9PWRFLldBTExfVElNRT9mb3QoKTplZXQoKSxsPXQubWFwKCh0PT50aGlzLmdldFRpbWVWYWx1ZSh0KSkpLHttaW46YyxtYXg6ZH09bmd0KGwsKHQ9PnQpKSxwPVtjLGRdO3MuZG9tYWluKHApO2NvbnN0IG09ZWV0KCk7bS5kb21haW4oWzAsYV0pO2NvbnN0IHU9UzcodGhpcy5jb2xvcnx8IiMwMDAiKSxmPWVldCgpO3JldHVybiBmLmRvbWFpbihwKSxyLnJhbmdlKFswLGVdKSxmLnJhbmdlKFt1LmJyaWdodGVyKCksdS5kYXJrZXIoKV0pLGYuaW50ZXJwb2xhdGUobTgpLHRoaXMubW9kZT09PXBFLk9WRVJMQVk/KHMucmFuZ2UoW24sbl0pLG0ucmFuZ2UoW24sMF0pKToocy5yYW5nZShbbi0odGhpcy5tb2RlPT09cEUuT0ZGU0VUP24tdGhpcy5sYXlvdXQuaGlzdG9ncmFtSGVpZ2h0OjApLG5dKSxtLnJhbmdlKFswLC10aGlzLmxheW91dC5oaXN0b2dyYW1IZWlnaHRdKSkse2JpblNjYWxlOnIsZDNDb2xvclNjYWxlOmYsY291bnRTY2FsZTptLHRlbXBvcmFsU2NhbGU6c319cmVuZGVyWEF4aXMoKXtpZighdGhpcy5zY2FsZXMpcmV0dXJuO2NvbnN0e3dpZHRoOnR9PXRoaXMubGF5b3V0LmNvbnRlbnRDbGllbnRSZWN0LGU9ejUodGhpcy5zY2FsZXMuYmluU2NhbGUpLnRpY2tzKE1hdGgubWF4KDIsdC8yMCkpO2UudGlja0Zvcm1hdCh0aGlzLmZvcm1hdHRlcnMuYmluTnVtYmVyKSxlKEo0KHRoaXMueEF4aXMubmF0aXZlRWxlbWVudCkpfWdldFlBeGlzRm9ybWF0dGVyKCl7aWYodGhpcy5tb2RlPT09cEUuT1ZFUkxBWSlyZXR1cm4gdGhpcy5mb3JtYXR0ZXJzLmNvdW50O3N3aXRjaCh0aGlzLnRpbWVQcm9wZXJ0eSl7Y2FzZSBkRS5XQUxMX1RJTUU6cmV0dXJuIHRoaXMuZm9ybWF0dGVycy53YWxsVGltZTtjYXNlIGRFLlNURVA6cmV0dXJuIHRoaXMuZm9ybWF0dGVycy5zdGVwO2Nhc2UgZEUuUkVMQVRJVkU6cmV0dXJuIHRoaXMuZm9ybWF0dGVycy5yZWxhdGl2ZTtkZWZhdWx0OnRocm93IFJhbmdlRXJyb3IoYFkgYXhpcyBmb3JtYXR0ZXIgZm9yICR7dGhpcy50aW1lUHJvcGVydHl9IG11c3QgYmUgaW1wbGVtZW50ZWRgKX19cmVuZGVyWUF4aXMoKXtpZighdGhpcy5zY2FsZXMpcmV0dXJuO2NvbnN0IHQ9dGhpcy5tb2RlPT09cEUuT1ZFUkxBWT90aGlzLnNjYWxlcy5jb3VudFNjYWxlOnRoaXMuc2NhbGVzLnRlbXBvcmFsU2NhbGUse2hlaWdodDplfT10aGlzLmxheW91dC5jb250ZW50Q2xpZW50UmVjdCxuPU41KHQpLnRpY2tzKE1hdGgubWF4KDIsZS8xNSkpO24udGlja0Zvcm1hdCh0aGlzLmdldFlBeGlzRm9ybWF0dGVyKCkpLG4oSjQodGhpcy55QXhpcy5uYXRpdmVFbGVtZW50KSl9ZmluZENsb3Nlc3REYXR1bUluZGV4KHQpe2xldCBlPXQudGFyZ2V0LG49ZTtmb3IoO2UmJmUhPT10aGlzLmhpc3RvZ3JhbXMubmF0aXZlRWxlbWVudDspbj1lLGU9ZS5wYXJlbnRFbGVtZW50O3JldHVybiBlP0FycmF5LmZyb20oZS5jaGlsZHJlbikuaW5kZXhPZihuKTotMX1vbk1vdXNlTW92ZUZvclRlc3RPbmx5KHQpe3JldHVybiB0aGlzLm9uTW91c2VNb3ZlKHQpfW9uTW91c2VNb3ZlKHQpe2lmKCF0aGlzLnNjYWxlcylyZXR1cm47Y29uc3QgZT10Lm9mZnNldFgsbj10Lm9mZnNldFksbz10aGlzLmZpbmRDbG9zZXN0RGF0dW1JbmRleCh0KTtpZihvPDApcmV0dXJuO2NvbnN0IGk9dGhpcy5zY2FsZXMuYmluU2NhbGUuaW52ZXJ0KGUpLGE9dGhpcy5kYXRhW29dLHI9dGhpcy5nZXRDbG9zZXN0QmluRnJvbUJpbkNvb3JkaW5hdGUoYSxpKTt0aGlzLnRvb2x0aXBEYXRhPXt2YWx1ZTp7cG9zaXRpb246e3g6ZSx5Om59LGxhYmVsOnRoaXMubW9kZT09PXBFLk9GRlNFVD90aGlzLmZvcm1hdHRlcnMuY291bnQoci55KTpgU3RlcDogJHt0aGlzLmZvcm1hdHRlcnMuc3RlcChhLnN0ZXApfWB9LHhBeGlzOntwb3NpdGlvbjp0aGlzLmdldFVpQ29vcmRGcm9tQmluRm9yQ29udGVudChyKS54LGxhYmVsOnRoaXMuZm9ybWF0dGVycy5iaW5OdW1iZXIob2d0KHIpKX0seUF4aXM6e3Bvc2l0aW9uOnRoaXMuc2NhbGVzLmNvdW50U2NhbGUodGhpcy5tb2RlPT09cEUuT0ZGU0VUPzA6ci55KSxsYWJlbDp0aGlzLm1vZGU9PT1wRS5PRkZTRVQ/dGhpcy5nZXRZQXhpc0Zvcm1hdHRlcigpKHRoaXMuZ2V0VGltZVZhbHVlKGEpKTp0aGlzLmZvcm1hdHRlcnMuYmluTnVtYmVyKHIueSl9LHhQb3NpdGlvbkluQmluQ29vcmQ6aSxjbG9zZXN0RGF0dW06YSxjbG9zZXN0QmluOnJ9LHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpfX1mdW5jdGlvbiBlZ3QodCxlKXtyZXR1cm4gdC5yZWR1Y2UoKCh0LG4pPT5NYXRoLm1heCh0LGUobikpKSwtMS8wKX1mdW5jdGlvbiBuZ3QodCxlLG4pe258fChuPWUpO2xldCBvPTEvMCxpPS0xLzA7Zm9yKGNvbnN0IGEgb2YgdClvPU1hdGgubWluKG8sZShhKSksaT1NYXRoLm1heChpLG4oYSkpO3JldHVybnttaW46byxtYXg6aX19ZnVuY3Rpb24gb2d0KHQpe3JldHVybiB0LngrLjUqdC5keH1mdW5jdGlvbiBpZ3QodCxlKXsxJnQmJlRtKDAsInZpcy1zZWxlY3RlZC10aW1lLWNsaXBwZWQiKX1mdW5jdGlvbiBhZ3QodCxlKXsxJnQmJihSbSgwLCJzcGFuIiwxNCksVG0oMSwibWF0LXNwaW5uZXIiLDE1KSxBbSgpKX10Z3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHRndCkoU20oVWcpKX0sdGd0Lsm1Y21wPXRvKHt0eXBlOnRndCxzZWxlY3RvcnM6W1sidGItaGlzdG9ncmFtIl1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUWgoTGZ0LDUpLFFoKEJmdCw1KSxRaChWZnQsNSksUWgoamZ0LDUpLFFoKFVmdCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5tYWluPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLnhBeGlzPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLnlBeGlzPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLmNvbnRlbnQ9dC5maXJzdCksSmgodD10YigpKSYmKG4uaGlzdG9ncmFtcz10LmZpcnN0KX19LGlucHV0czp7bW9kZToibW9kZSIsdGltZVByb3BlcnR5OiJ0aW1lUHJvcGVydHkiLGNvbG9yOiJjb2xvciIsZGF0YToiZGF0YSIsbGlua2VkVGltZToibGlua2VkVGltZSJ9LGZlYXR1cmVzOltCb10sZGVjbHM6MjIsdmFyczoxNyxjb25zdHM6W1siZGV0ZWN0UmVzaXplIiwiIiwib2JzZXJ2ZUludGVyc2VjdGlvbiIsIiIsMywib25SZXNpemUiLCJvblZpc2liaWxpdHlDaGFuZ2UiXSxbIm1haW4iLCIiXSxbMSwiYXhpcyIsIngtYXhpcyJdLFsieEF4aXMiLCIiXSxbMSwidG9vbHRpcCJdLFszLCJ0cmFuc2Zvcm0iLDQsIm5nSWYiXSxbMSwiYXhpcyIsInktYXhpcyJdLFsieUF4aXMiLCIiXSxbNCwibmdJZiJdLFsxLCJjb250ZW50Il0sWyJjb250ZW50IiwiIl0sWzEsImdyaWQiXSxbMywidHJhbnNmb3JtIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImhpc3RvZ3JhbXMiLCIiXSxbMywidHJhbnNmb3JtIiwiaGlzdG9ncmFtIiwibm8tY29sb3IiLCJjb2xvciIsNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWyJjbGFzcyIsInRvb2x0aXAiLDQsIm5nSWYiXSxbMSwibGlua2VkLXRpbWUiXSxbMSwibGlua2VkLXRpbWUtZm9iIiwzLCJzdGVwIl0sWyJjbGFzcyIsImxpbmtlZC10aW1lIiwzLCJ0cmFuc2Zvcm0iLDQsIm5nSWYiXSxbIngyIiwiMTAwJSIsMSwidGljayJdLFsiY2xhc3MiLCJiYXNlbGluZSIsIngyIiwiMTAwJSIsNCwibmdJZiJdLFsiciIsIjIiLDMsInRyYW5zZm9ybSIsNCwibmdJZiJdLFsieDIiLCIxMDAlIiwxLCJiYXNlbGluZSJdLFsiciIsIjIiXSxbInIiLCIyIiw0LCJuZ0lmIl0sWzEsInZhbHVlLWxhYmVsIl0sWyJ4IiwiMyIsInkiLCItMyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwLDEpLFZtKCJvblJlc2l6ZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlc2l6ZSgpfSkpKCJvblZpc2liaWxpdHlDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uVmlzaWJpbGl0eUNoYW5nZShlKX0pKSxxaSgpLFJtKDIsInN2ZyIsMiksVG0oMywiZyIsbnVsbCwzKSxSbSg1LCJnIiw0KSxRcCg2LEdmdCwzLDMsImciLDUpLEFtKCksQW0oKSxaaSgpLFJtKDcsImRpdiIsNikscWkoKSxSbSg4LCJzdmciKSxUbSg5LCJnIixudWxsLDcpLFJtKDExLCJnIiw0KSxRcCgxMixXZnQsMyw0LCJnIiw1KSxBbSgpLEFtKCksUXAoMTMscWZ0LDQsNCwibmctY29udGFpbmVyIiw4KSxBbSgpLFJtKDE0LCJzdmciLDksMTApLFJtKDE2LCJnIiwxMSksUXAoMTcsWmZ0LDIsMiwiZyIsMTIpLEFtKCksUm0oMTgsImciLG51bGwsMTMpLFFwKDIwLEpmdCw0LDExLCJnIiwxNCksQW0oKSxRcCgyMSwkZnQsNyw3LCJnIiwxNSksQW0oKSxBbSgpKSwyJmUmJihmdSgibWFpbiAiK24ubW9kZSsiICIrbi50aW1lUHJvcGVydHkpLHJjKDYpLERtKCJuZ0lmIixuLnRvb2x0aXBEYXRhKSxyYyg1KSxkdSgidHJhbnNmb3JtIixuLmdldENzc1RyYW5zbGF0ZVB4KDksMCkpLHJjKDEpLERtKCJuZ0lmIixuLnRvb2x0aXBEYXRhKSxyYygxKSxEbSgibmdJZiIsbi5pc0xpbmtlZFRpbWVFbmFibGVkKG4ubGlua2VkVGltZSkpLHJjKDQpLERtKCJuZ0Zvck9mIixuLmdldEdyaWRUaWNrWUxvY3MoKSkscmMoMSkscHUoImhpc3RvZ3JhbXMiLCEwKSgibGlua2VkLXRpbWUtZW5hYmxlZCIsbi5saW5rZWRUaW1lKSgibGlua2VkLXRpbWUtc2luZ2xlLXN0ZXAiLG4ubGlua2VkVGltZSYmIW4ubGlua2VkVGltZS5lbmRTdGVwKSxyYygyKSxEbSgibmdGb3JPZiIsbi5kYXRhKSgibmdGb3JUcmFja0J5IixuLnRyYWNrQnlXYWxsVGltZSkscmMoMSksRG0oIm5nSWYiLG4udG9vbHRpcERhdGEpKX0sZGlyZWN0aXZlczpbb0osTmZ0LGRNLGxNLGhmdF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXSwgLm1haW5bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9W19uZ2hvc3QtJUNPTVAlXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzoxMHB4fS5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1hcmVhczoiY29udGVudCB5LWF4aXMiICJ4LWF4aXMgLiI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciA1MHB4O2dyaWQtdGVtcGxhdGUtcm93czoxZnIgMzBweH0ubWFpbi53YWxsX3RpbWVbX25nY29udGVudC0lQ09NUCVde2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgNzVweH0udG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0sIC5iYXNlbGluZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzAwMH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5iYXNlbGluZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5iYXNlbGluZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2ZmZn0ubGlua2VkLXRpbWUtZm9iW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRleHRbX25nY29udGVudC0lQ09NUCVdLCAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxMHB4fS5saW5rZWQtdGltZS1mb2JbX25nY29udGVudC0lQ09NUCVdICAgdGV4dFtfbmdjb250ZW50LSVDT01QJV0sIC5saW5rZWQtdGltZS1mb2JbX25nY29udGVudC0lQ09NUCVdICAgY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgdGV4dFtfbmdjb250ZW50LSVDT01QJV0sIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNpcmNsZVtfbmdjb250ZW50LSVDT01QJV17ZmlsbDpjdXJyZW50Q29sb3J9LmxpbmtlZC10aW1lLWZvYltfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2RvbWluYW50LWJhc2VsaW5lOmlkZW9ncmFwaGljO3RleHQtYW5jaG9yOnN0YXJ0fS5saW5rZWQtdGltZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7bGVmdDo5cHg7dG9wOjA7aGVpZ2h0OjEwMCU7cmlnaHQ6MH0ubGlua2VkLXRpbWVbX25nY29udGVudC0lQ09NUCVdICAgLmxpbmtlZC10aW1lLWZvYltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgIHtjb2xvcjojNjE2MTYxO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAge2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmRvbWFpbiwgLmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgICAudGljayB0ZXh0e2Rpc3BsYXk6bm9uZX0uYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrOm50aC1jaGlsZCgybisxKSB0ZXh0e2Rpc3BsYXk6aW5pdGlhbH1zdmdbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7cG9pbnRlci1ldmVudHM6dmlzaWJsZVBhaW50ZWR9c3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmVbX25nY29udGVudC0lQ09NUCVdLCBzdmdbX25nY29udGVudC0lQ09NUCVdICAgY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXSwgc3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lfXN2Z1tfbmdjb250ZW50LSVDT01QJV0gICBnW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWxsLWNoYW5nZTp0cmFuc2Zvcm19LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOngtYXhpc30ueC1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtkb21pbmFudC1iYXNlbGluZTpoYW5naW5nO3RleHQtYW5jaG9yOm1pZGRsZX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLWFyZWE6eS1heGlzOy13ZWJraXQtbWFzay1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDAwMCAwJSwgIzAwMCAxMCUsICMwMDAgOTAlLCAjMDAwMCAxMDAlKTttYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwMDAwIDAlLCAjMDAwIDEwJSwgIzAwMCA5MCUsICMwMDAwIDEwMCUpfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2RvbWluYW50LWJhc2VsaW5lOm1pZGRsZTt0ZXh0LWFuY2hvcjpzdGFydH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAudGlja1tfbmdjb250ZW50LSVDT01QJV0sIC5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLnRpY2sgbGluZXtzdHJva2U6I2RkZH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAudGlja1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2U6IzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrIGxpbmUsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLnRpY2sgbGluZXtzdHJva2U6IzU1NX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOmNvbnRlbnR9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLnRpY2tbX25nY29udGVudC0lQ09NUCVde3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWRhc2hhcnJheToyfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0sIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBhdGhbX25nY29udGVudC0lQ09NUCVde2ZpbGw6Y3VycmVudENvbG9yO3N0cm9rZS1vcGFjaXR5Oi42O3N0cm9rZS13aWR0aDoxcHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuNikpO3N0cm9rZTojZmZmO3dpbGwtY2hhbmdlOnRyYW5zZm9ybX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuYmFzZWxpbmVbX25nY29udGVudC0lQ09NUCVde3N0cm9rZS1vcGFjaXR5Oi4xO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlOmN1cnJlbnRDb2xvcjt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBhdGhbX25nY29udGVudC0lQ09NUCVde3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlOmN1cnJlbnRDb2xvcjtmaWxsOnRyYW5zcGFyZW50fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uby1jb2xvcltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyMjEsMjIxLDIyMSwuNCkgIWltcG9ydGFudH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAubm8tY29sb3JbX25nY29udGVudC0lQ09NUCVdICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlLW9wYWNpdHk6LjJ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLm5vLWNvbG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLm5vLWNvbG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDUxLDUxLDUxLC40KSAhaW1wb3J0YW50fS5vZmZzZXRbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmhpc3RvZ3JhbXNbX25nY29udGVudC0lQ09NUCVdICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlOiNmZmZ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9mZnNldFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuaGlzdG9ncmFtc1tfbmdjb250ZW50LSVDT01QJV0gICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9mZnNldFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuaGlzdG9ncmFtc1tfbmdjb250ZW50LSVDT01QJV0gICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2U6IzU1NX0ub2Zmc2V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oaXN0b2dyYW1zLmxpbmtlZC10aW1lLXNpbmdsZS1zdGVwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtfbmdjb250ZW50LSVDT01QJV06bm90KC5uby1jb2xvcikgICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2U6IzAwMH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub2Zmc2V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oaXN0b2dyYW1zLmxpbmtlZC10aW1lLXNpbmdsZS1zdGVwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtfbmdjb250ZW50LSVDT01QJV06bm90KC5uby1jb2xvcikgICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9mZnNldFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuaGlzdG9ncmFtcy5saW5rZWQtdGltZS1zaW5nbGUtc3RlcFtfbmdjb250ZW50LSVDT01QJV0gICBbX25nY29udGVudC0lQ09NUCVdOm5vdCgubm8tY29sb3IpICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlOiNmZmZ9Lm92ZXJsYXlbX25nY29udGVudC0lQ09NUCVdICAgLngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrIGxpbmV7ZGlzcGxheTpub25lfS5vdmVybGF5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBhdGhbX25nY29udGVudC0lQ09NUCVde2ZpbGwtb3BhY2l0eTowO3N0cm9rZTpjdXJyZW50Q29sb3J9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdLCAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBjaXJjbGVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0ubWFpbltfbmdjb250ZW50LSVDT01QJV06aG92ZXIgICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBjaXJjbGVbX25nY29udGVudC0lQ09NUCVdLCAubWFpbltfbmdjb250ZW50LSVDT01QJV06aG92ZXIgICAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9ja30nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodGd0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRiLWhpc3RvZ3JhbSIsdGVtcGxhdGVVcmw6Imhpc3RvZ3JhbV9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiaGlzdG9ncmFtX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VWd9XX0pLHttYWluOlt7dHlwZTpaYSxhcmdzOlsibWFpbiJdfV0seEF4aXM6W3t0eXBlOlphLGFyZ3M6WyJ4QXhpcyJdfV0seUF4aXM6W3t0eXBlOlphLGFyZ3M6WyJ5QXhpcyJdfV0sY29udGVudDpbe3R5cGU6WmEsYXJnczpbImNvbnRlbnQiXX1dLGhpc3RvZ3JhbXM6W3t0eXBlOlphLGFyZ3M6WyJoaXN0b2dyYW1zIl19XSxtb2RlOlt7dHlwZTp4eX1dLHRpbWVQcm9wZXJ0eTpbe3R5cGU6eHl9XSxjb2xvcjpbe3R5cGU6eHl9XSxkYXRhOlt7dHlwZTp4eX1dLGxpbmtlZFRpbWU6W3t0eXBlOnh5fV19KTtjb25zdCByZ3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm57c3RhcnRTdGVwOnQsZW5kU3RlcDplfX07ZnVuY3Rpb24gc2d0KHQsZSl7aWYoMSZ0JiZUbSgwLCJ0Yi1oaXN0b2dyYW0iLDE2KSwyJnQpe2NvbnN0IHQ9WW0oKTtEbSgiZGF0YSIsdC5kYXRhKSgibW9kZSIsdC5tb2RlKSgidGltZVByb3BlcnR5Iix0LnRpbWVQcm9wZXJ0eSh0LnhBeGlzVHlwZSkpKCJjb2xvciIsdC5ydW5Db2xvclNjYWxlKHQucnVuSWQpKSgibGlua2VkVGltZSIsdC5zZWxlY3RlZFRpbWU/dmgoNSxyZ3QsdC5zZWxlY3RlZFRpbWUuc3RhcnRTdGVwLHQuc2VsZWN0ZWRUaW1lLmVuZFN0ZXApOm51bGwpfX1mdW5jdGlvbiBsZ3QodCxlKXsxJnQmJihSbSgwLCJkaXYiLDE4KSxrdSgxLCIgRGF0YSBmYWlsZWQgdG8gbG9hZC4gIiksQW0oKSl9ZnVuY3Rpb24gY2d0KHQsZSl7aWYoMSZ0JiZRcCgwLGxndCwyLDAsImRpdiIsMTcpLDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJuZ0lmIix0LmxvYWRTdGF0ZT09PXQuRGF0YUxvYWRTdGF0ZS5GQUlMRUQpfX1jb25zdCBkZ3Q9ZnVuY3Rpb24odCl7cmV0dXJue2JhY2tncm91bmRDb2xvcjp0fX07Y2xhc3MgcGd0e2NvbnN0cnVjdG9yKCl7dGhpcy5EYXRhTG9hZFN0YXRlPXlFLHRoaXMub25GdWxsU2l6ZVRvZ2dsZT1uZXcgTGgsdGhpcy5vblBpbkNsaWNrZWQ9bmV3IExofXRpbWVQcm9wZXJ0eSh0KXtzd2l0Y2godCl7Y2FzZSB5QS5TVEVQOnJldHVybiBkRS5TVEVQO2Nhc2UgeUEuV0FMTF9USU1FOnJldHVybiBkRS5XQUxMX1RJTUU7Y2FzZSB5QS5SRUxBVElWRTpyZXR1cm4gZEUuUkVMQVRJVkU7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgeEF4aXNUeXBlIGZvciBoaXN0b2dyYW0gdGltZSBwcm9wZXJ0eS4iKX19fXBndC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cGd0KX0scGd0Lsm1Y21wPXRvKHt0eXBlOnBndCxzZWxlY3RvcnM6W1siaGlzdG9ncmFtLWNhcmQtY29tcG9uZW50Il1dLGlucHV0czp7bG9hZFN0YXRlOiJsb2FkU3RhdGUiLHRpdGxlOiJ0aXRsZSIsdGFnOiJ0YWciLHJ1bklkOiJydW5JZCIsZGF0YToiZGF0YSIsbW9kZToibW9kZSIseEF4aXNUeXBlOiJ4QXhpc1R5cGUiLHJ1bkNvbG9yU2NhbGU6InJ1bkNvbG9yU2NhbGUiLHNob3dGdWxsU2l6ZToic2hvd0Z1bGxTaXplIixpc1Bpbm5lZDoiaXNQaW5uZWQiLHNlbGVjdGVkVGltZToic2VsZWN0ZWRUaW1lIn0sb3V0cHV0czp7b25GdWxsU2l6ZVRvZ2dsZToib25GdWxsU2l6ZVRvZ2dsZSIsb25QaW5DbGlja2VkOiJvblBpbkNsaWNrZWQifSxkZWNsczoxNix2YXJzOjEzLGNvbnN0czpmdW5jdGlvbigpe2xldCB0LGU7cmV0dXJuIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIlBpbiBjYXJkIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0byBwaW4gYSBjYXJkLuKQn2U2NjVkYzcxMmJkNWYxOGQ0ZGZhM2EyOWUxMjVkNTY1Y2M1MWUyZjbikJ83Mjg0NjA2NDI2MjM0Mzc1MzQ0OlBpbiBjYXJkYCxlPSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJUb2dnbGUgZnVsbCBzaXplIG1vZGUiKTokbG9jYWxpemVgOkEgYnV0dG9uIG9uIGEgaGlzdG9ncmFtIGNhcmQgdGhhdCB0b2dnbGVzIGZ1bGwgc2l6ZSBtb2RlLuKQn2ZjOGY3NjdkMGI5ZjkzMDE4N2ExYmFlMzQ0NzdhZDI4NzM2ZWNlMzPikJ85MTU3MjE1NjM2Mzg5MjY1OTc6VG9nZ2xlIGZ1bGwgc2l6ZSBtb2RlYCxbWzEsImhlYWRpbmciXSxbMSwidGFnIl0sWzMsInRpdGxlIiwidmFsdWUiXSxbNCwibmdJZiJdLFsxLCJydW4iXSxbMSwiZG90IiwzLCJuZ1N0eWxlIl0sWzEsInJ1bi10ZXh0IiwzLCJydW5JZCJdLFsxLCJjb250cm9scyJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwxLCJwaW4tYnV0dG9uIiwzLCJjbGljayJdLFszLCJzdmdJY29uIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixlLCJ0aXRsZSIsIlRvZ2dsZSBmdWxsIHNpemUgbW9kZSIsMywiY2xpY2siXSxbImNsYXNzIiwic3Bpbm5lciIsNCwibmdJZiJdLFszLCJkYXRhIiwibW9kZSIsInRpbWVQcm9wZXJ0eSIsImNvbG9yIiwibGlua2VkVGltZSIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub0RhdGEiLCIiXSxbMSwic3Bpbm5lciJdLFsiZGlhbWV0ZXIiLCIxOCJdLFszLCJkYXRhIiwibW9kZSIsInRpbWVQcm9wZXJ0eSIsImNvbG9yIiwibGlua2VkVGltZSJdLFsiY2xhc3MiLCJlbXB0eS1tZXNzYWdlIiw0LCJuZ0lmIl0sWzEsImVtcHR5LW1lc3NhZ2UiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsImRpdiIsMSksVG0oMiwidGItdHJ1bmNhdGVkLXBhdGgiLDIpLFFwKDMsaWd0LDEsMCwidmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZCIsMyksQW0oKSxSbSg0LCJkaXYiLDQpLFRtKDUsInNwYW4iLDUpLFRtKDYsImNhcmQtcnVuLW5hbWUiLDYpLEFtKCksUm0oNywic3BhbiIsNyksUm0oOCwiYnV0dG9uIiw4KSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25QaW5DbGlja2VkLmVtaXQoIW4uaXNQaW5uZWQpfSkpLFRtKDksIm1hdC1pY29uIiw5KSxBbSgpLFJtKDEwLCJidXR0b24iLDEwKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25GdWxsU2l6ZVRvZ2dsZS5lbWl0KCl9KSksVG0oMTEsIm1hdC1pY29uIiw5KSxBbSgpLEFtKCksUXAoMTIsYWd0LDIsMCwic3BhbiIsMTEpLEFtKCksUXAoMTMsc2d0LDEsOCwidGItaGlzdG9ncmFtIiwxMiksUXAoMTQsY2d0LDEsMSwibmctdGVtcGxhdGUiLG51bGwsMTMsaWIpKSwyJmUpe2NvbnN0IHQ9JHAoMTUpO3JjKDIpLERtKCJ0aXRsZSIsbi50YWcpKCJ2YWx1ZSIsbi50aXRsZSkscmMoMSksRG0oIm5nSWYiLG4uc2VsZWN0ZWRUaW1lJiZuLnNlbGVjdGVkVGltZS5jbGlwcGVkKSxyYygyKSxEbSgibmdTdHlsZSIsTWgoMTEsZGd0LG4ucnVuQ29sb3JTY2FsZShuLnJ1bklkKSkpLHJjKDEpLERtKCJydW5JZCIsbi5ydW5JZCkscmMoMiksanAoInRpdGxlIixuLmlzUGlubmVkPyJVbnBpbiBjYXJkIjoiUGluIGNhcmQiKSxyYygxKSxEbSgic3ZnSWNvbiIsbi5pc1Bpbm5lZD8ia2VlcF8yNHB4Ijoia2VlcF9vdXRsaW5lXzI0cHgiKSxyYygyKSxEbSgic3ZnSWNvbiIsbi5zaG93RnVsbFNpemU/ImZ1bGxzY3JlZW5fZXhpdF8yNHB4IjoiZnVsbHNjcmVlbl8yNHB4IikscmMoMSksRG0oIm5nSWYiLG4ubG9hZFN0YXRlPT09bi5EYXRhTG9hZFN0YXRlLkxPQURJTkcpLHJjKDEpLERtKCJuZ0lmIixuLmRhdGEmJm4uZGF0YS5sZW5ndGgpKCJuZ0lmRWxzZSIsdCl9fSxkaXJlY3RpdmVzOlt6MixkTSxDTSxMMixYSCxEVyxnZnQsbzEsdGd0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG87cGFkZGluZzoxNnB4O3BhZGRpbmctdG9wOjRweH0uaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWFyZWFzOiJ0YWcgY29udHJvbHMiICJydW4gc3Bpbm5lciI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciBhdXRvO2ZvbnQtc2l6ZToxNHB4O21hcmdpbi1ib3R0b206NHB4fS50YWdbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7Z2FwOjVweDtncmlkLWFyZWE6dGFnO292ZXJmbG93OmhpZGRlbn0udGFnW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHZpcy1zZWxlY3RlZC10aW1lLWNsaXBwZWRbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjB9LnBpbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxOHB4fS5ydW5bX25nY29udGVudC0lQ09NUCVde2dyaWQtYXJlYTpydW47ZGlzcGxheTpmbGV4O3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6MTNweH0ucnVuW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kb3RbX25nY29udGVudC0lQ09NUCVde2ZsZXg6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxM3B4O2hlaWdodDoxM3B4O2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbi1yaWdodDo0cHh9LnJ1bltfbmdjb250ZW50LSVDT01QJV0gICAucnVuLXRleHRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO21heC13aWR0aDoxMjBweH0uY29udHJvbHNbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7d2hpdGUtc3BhY2U6bm93cmFwO2dyaWQtYXJlYTpjb250cm9scztqdXN0aWZ5LXNlbGY6ZmxleC1lbmQ7ZmxleC1zaHJpbms6MDttYXJnaW4tcmlnaHQ6LTEycHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2dyaWQtYXJlYTpzcGlubmVyO2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmV9bWF0LXNwaW5uZXJbX25nY29udGVudC0lQ09NUCVde3RvcDowO3JpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGV9dGItaGlzdG9ncmFtW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWdyb3c6MTtvdmVyZmxvdzpoaWRkZW59LmVtcHR5LW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MWVtO2ZvbnQtc2l6ZToxM3B4fSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwZ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiaGlzdG9ncmFtLWNhcmQtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiaGlzdG9ncmFtX2NhcmRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbImhpc3RvZ3JhbV9jYXJkX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtsb2FkU3RhdGU6W3t0eXBlOnh5fV0sdGl0bGU6W3t0eXBlOnh5fV0sdGFnOlt7dHlwZTp4eX1dLHJ1bklkOlt7dHlwZTp4eX1dLGRhdGE6W3t0eXBlOnh5fV0sbW9kZTpbe3R5cGU6eHl9XSx4QXhpc1R5cGU6W3t0eXBlOnh5fV0scnVuQ29sb3JTY2FsZTpbe3R5cGU6eHl9XSxzaG93RnVsbFNpemU6W3t0eXBlOnh5fV0saXNQaW5uZWQ6W3t0eXBlOnh5fV0sc2VsZWN0ZWRUaW1lOlt7dHlwZTp4eX1dLG9uRnVsbFNpemVUb2dnbGU6W3t0eXBlOk95fV0sb25QaW5DbGlja2VkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgbWd0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmZ1bGxXaWR0aENoYW5nZWQ9bmV3IExoLHRoaXMuZnVsbEhlaWdodENoYW5nZWQ9bmV3IExoLHRoaXMucGluU3RhdGVDaGFuZ2VkPW5ldyBMaCx0aGlzLm1vZGUkPXRoaXMuc3RvcmUuc2VsZWN0KE5UKSx0aGlzLnhBeGlzVHlwZSQ9dGhpcy5zdG9yZS5zZWxlY3QoVFQpLHRoaXMuc2hvd0Z1bGxTaXplPSExfWlzSGlzdG9ncmFtQ2FyZE1ldGFkYXRhKHQpe2NvbnN0e3BsdWdpbjplfT10O3JldHVybiBlPT09aEEuSElTVE9HUkFNU31vbkZ1bGxTaXplVG9nZ2xlKCl7dGhpcy5zaG93RnVsbFNpemU9IXRoaXMuc2hvd0Z1bGxTaXplLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZC5lbWl0KHRoaXMuc2hvd0Z1bGxTaXplKSx0aGlzLmZ1bGxIZWlnaHRDaGFuZ2VkLmVtaXQodGhpcy5zaG93RnVsbFNpemUpfW5nT25Jbml0KCl7Y29uc3QgdD10aGlzLnN0b3JlLnNlbGVjdCh5VCx0aGlzLmNhcmRJZCkucGlwZShjZSgodD0+ISF0JiZ0aGlzLmlzSGlzdG9ncmFtQ2FyZE1ldGFkYXRhKHQpKSksSXQoKHQ9PnQpKSksZT1XdChbdCx0aGlzLnN0b3JlLnNlbGVjdChoVCx0aGlzLmNhcmRJZCldKTt0aGlzLmRhdGEkPWUucGlwZShJdCgoKFt0LGVdKT0+e2NvbnN0IG49dC5ydW5JZDtyZXR1cm4gZSYmZS5oYXNPd25Qcm9wZXJ0eShuKT8oZnVuY3Rpb24gbyh0LGU9MzApe2lmKCF0Lmxlbmd0aHx8ZTwxKXJldHVybltdO2NvbnN0IG49KGZ1bmN0aW9uIG8odCl7bGV0IGU9bnVsbCxuPW51bGw7Zm9yKGNvbnN0e2JpbnM6b31vZiB0KXtpZighby5sZW5ndGgpY29udGludWU7Y29uc3QgdD1vW28ubGVuZ3RoLTFdLGk9b1swXS54LGE9dC54K3QuZHg7KG51bGw9PT1lfHxpPGUpJiYoZT1pKSwobnVsbD09PW58fGE+bikmJihuPWEpfXJldHVybiBudWxsPT09ZXx8bnVsbD09PW4/bnVsbDp7bGVmdDplLHJpZ2h0Om59fSkodCk7cmV0dXJuIG4mJm4ubGVmdD09PW4ucmlnaHQmJihuLnJpZ2h0PTEuMSpuLnJpZ2h0KzEsbi5sZWZ0PW4ubGVmdC8xLjEtMSksdC5tYXAoKHQ9Pih7c3RlcDp0LnN0ZXAsd2FsbFRpbWU6dC53YWxsVGltZSxiaW5zOm4/SGZ0KHQuYmlucyxuLGUpOltdfSkpKX0pKGVbbl0ubWFwKCh0PT57Y29uc3R7d2FsbFRpbWU6ZSxzdGVwOm59PXQ7cmV0dXJue3dhbGxUaW1lOmUsc3RlcDpuLGJpbnM6dC5iaW5zLm1hcCgodD0+KHt4OnQubWluLGR4OnQubWF4LXQubWluLHk6dC5jb3VudH0pKSl9fSkpKTpbXX0pKSksdGhpcy5zZWxlY3RlZFRpbWUkPXRoaXMuc3RvcmUuc2VsZWN0KFlUKS5waXBlKGZlKHRoaXMuZGF0YSQpLEl0KCgoW3QsZV0pPT57aWYoIXQpcmV0dXJuIG51bGw7bGV0IG49MS8wLG89LTEvMDtmb3IoY29uc3QgdCBvZiBlKW49TWF0aC5taW4odC5zdGVwLG4pLG89TWF0aC5tYXgodC5zdGVwLG8pO3JldHVybiBIMih0LG4sbyl9KSkpLHRoaXMubG9hZFN0YXRlJD10aGlzLnN0b3JlLnNlbGVjdChnVCx0aGlzLmNhcmRJZCksdGhpcy50YWckPXQucGlwZShJdCgodD0+dC50YWcpKSksdGhpcy50aXRsZSQ9dGhpcy50YWckLnBpcGUoSXQoKHQ9PmYyKHQsdGhpcy5ncm91cE5hbWUpKSkpLHRoaXMucnVuSWQkPXQucGlwZShJdCgodD0+dC5ydW5JZCkpKSx0aGlzLmlzUGlubmVkJD10aGlzLnN0b3JlLnNlbGVjdCh3VCx0aGlzLmNhcmRJZCl9fWZ1bmN0aW9uIHVndCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImltYWdlLWNhcmQiLDYpLFZtKCJmdWxsV2lkdGhDaGFuZ2VkIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25GdWxsV2lkdGhDaGFuZ2VkKG4pfSkpKCJwaW5TdGF0ZUNoYW5nZWQiLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKDIpLm9uUGluU3RhdGVDaGFuZ2VkKCl9KSksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oMik7RG0oImNhcmRJZCIsdC5jYXJkSWQpKCJncm91cE5hbWUiLHQuZ3JvdXBOYW1lKSgicnVuQ29sb3JTY2FsZSIsdC5ydW5Db2xvclNjYWxlKX19ZnVuY3Rpb24gZmd0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwic2NhbGFyLWNhcmQiLDcpLFZtKCJmdWxsV2lkdGhDaGFuZ2VkIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25GdWxsV2lkdGhDaGFuZ2VkKG4pfSkpKCJmdWxsSGVpZ2h0Q2hhbmdlZCIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uRnVsbEhlaWdodENoYW5nZWQobil9KSkoInBpblN0YXRlQ2hhbmdlZCIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oMikub25QaW5TdGF0ZUNoYW5nZWQoKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgiY2FyZElkIix0LmNhcmRJZCkoImdyb3VwTmFtZSIsdC5ncm91cE5hbWUpfX1mdW5jdGlvbiBnZ3QodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJoaXN0b2dyYW0tY2FyZCIsOCksVm0oImZ1bGxXaWR0aENoYW5nZWQiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgyKS5vbkZ1bGxXaWR0aENoYW5nZWQobil9KSkoImZ1bGxIZWlnaHRDaGFuZ2VkIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25GdWxsSGVpZ2h0Q2hhbmdlZChuKX0pKSgicGluU3RhdGVDaGFuZ2VkIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgyKS5vblBpblN0YXRlQ2hhbmdlZCgpfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJjYXJkSWQiLHQuY2FyZElkKSgiZ3JvdXBOYW1lIix0Lmdyb3VwTmFtZSkoInJ1bkNvbG9yU2NhbGUiLHQucnVuQ29sb3JTY2FsZSl9fWZ1bmN0aW9uIGhndCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgyKTtyYygxKSxEdSgiUGxhY2Vob2xkZXIgZXJyb3IgZm9yOiAiLHQuY2FyZElkLCIiKX19ZnVuY3Rpb24gYmd0KHQsZSl7aWYoMSZ0JiYoTm0oMCwxKSxRcCgxLHVndCwxLDMsImltYWdlLWNhcmQiLDIpLFFwKDIsZmd0LDEsMiwic2NhbGFyLWNhcmQiLDMpLFFwKDMsZ2d0LDEsMywiaGlzdG9ncmFtLWNhcmQiLDQpLFFwKDQsaGd0LDIsMSwiZGl2Iiw1KSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtEbSgibmdTd2l0Y2giLHQucGx1Z2luVHlwZSkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5UeXBlLklNQUdFUykscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5UeXBlLlNDQUxBUlMpLHJjKDEpLERtKCJuZ1N3aXRjaENhc2UiLHQuUGx1Z2luVHlwZS5ISVNUT0dSQU1TKX19bWd0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxtZ3QpKFNtKEl3KSl9LG1ndC7JtWNtcD10byh7dHlwZTptZ3Qsc2VsZWN0b3JzOltbImhpc3RvZ3JhbS1jYXJkIl1dLGlucHV0czp7Y2FyZElkOiJjYXJkSWQiLGdyb3VwTmFtZToiZ3JvdXBOYW1lIixydW5Db2xvclNjYWxlOiJydW5Db2xvclNjYWxlIn0sb3V0cHV0czp7ZnVsbFdpZHRoQ2hhbmdlZDoiZnVsbFdpZHRoQ2hhbmdlZCIsZnVsbEhlaWdodENoYW5nZWQ6ImZ1bGxIZWlnaHRDaGFuZ2VkIixwaW5TdGF0ZUNoYW5nZWQ6InBpblN0YXRlQ2hhbmdlZCJ9LGRlY2xzOjEwLHZhcnM6MjksY29uc3RzOltbMywibG9hZFN0YXRlIiwidGl0bGUiLCJ0YWciLCJydW5JZCIsImRhdGEiLCJtb2RlIiwieEF4aXNUeXBlIiwicnVuQ29sb3JTY2FsZSIsInNob3dGdWxsU2l6ZSIsImlzUGlubmVkIiwic2VsZWN0ZWRUaW1lIiwib25GdWxsU2l6ZVRvZ2dsZSIsIm9uUGluQ2xpY2tlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiaGlzdG9ncmFtLWNhcmQtY29tcG9uZW50IiwwKSxWbSgib25GdWxsU2l6ZVRvZ2dsZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkZ1bGxTaXplVG9nZ2xlKCl9KSkoIm9uUGluQ2xpY2tlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ucGluU3RhdGVDaGFuZ2VkLmVtaXQoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxBaCg4LCJhc3luYyIpLEFoKDksImFzeW5jIiksQW0oKSksMiZlJiZEbSgibG9hZFN0YXRlIixUaCgxLDExLG4ubG9hZFN0YXRlJCkpKCJ0aXRsZSIsVGgoMiwxMyxuLnRpdGxlJCkpKCJ0YWciLFRoKDMsMTUsbi50YWckKSkoInJ1bklkIixUaCg0LDE3LG4ucnVuSWQkKSkoImRhdGEiLFRoKDUsMTksbi5kYXRhJCkpKCJtb2RlIixUaCg2LDIxLG4ubW9kZSQpKSgieEF4aXNUeXBlIixUaCg3LDIzLG4ueEF4aXNUeXBlJCkpKCJydW5Db2xvclNjYWxlIixuLnJ1bkNvbG9yU2NhbGUpKCJzaG93RnVsbFNpemUiLG4uc2hvd0Z1bGxTaXplKSgiaXNQaW5uZWQiLFRoKDgsMjUsbi5pc1Bpbm5lZCQpKSgic2VsZWN0ZWRUaW1lIixUaCg5LDI3LG4uc2VsZWN0ZWRUaW1lJCkpfSxkaXJlY3RpdmVzOltwZ3RdLHBpcGVzOlt3TV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG1ndCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJoaXN0b2dyYW0tY2FyZCIsdGVtcGxhdGU6J1xuICAgIDxoaXN0b2dyYW0tY2FyZC1jb21wb25lbnRcbiAgICAgIFtsb2FkU3RhdGVdPSJsb2FkU3RhdGUkIHwgYXN5bmMiXG4gICAgICBbdGl0bGVdPSJ0aXRsZSQgfCBhc3luYyJcbiAgICAgIFt0YWddPSJ0YWckIHwgYXN5bmMiXG4gICAgICBbcnVuSWRdPSJydW5JZCQgfCBhc3luYyJcbiAgICAgIFtkYXRhXT0iZGF0YSQgfCBhc3luYyJcbiAgICAgIFttb2RlXT0ibW9kZSQgfCBhc3luYyJcbiAgICAgIFt4QXhpc1R5cGVdPSJ4QXhpc1R5cGUkIHwgYXN5bmMiXG4gICAgICBbcnVuQ29sb3JTY2FsZV09InJ1bkNvbG9yU2NhbGUiXG4gICAgICBbc2hvd0Z1bGxTaXplXT0ic2hvd0Z1bGxTaXplIlxuICAgICAgW2lzUGlubmVkXT0iaXNQaW5uZWQkIHwgYXN5bmMiXG4gICAgICBbc2VsZWN0ZWRUaW1lXT0ic2VsZWN0ZWRUaW1lJCB8IGFzeW5jIlxuICAgICAgKG9uRnVsbFNpemVUb2dnbGUpPSJvbkZ1bGxTaXplVG9nZ2xlKCkiXG4gICAgICAob25QaW5DbGlja2VkKT0icGluU3RhdGVDaGFuZ2VkLmVtaXQoJGV2ZW50KSJcbiAgICA+PC9oaXN0b2dyYW0tY2FyZC1jb21wb25lbnQ+XG4gICcsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7Y2FyZElkOlt7dHlwZTp4eX1dLGdyb3VwTmFtZTpbe3R5cGU6eHl9XSxydW5Db2xvclNjYWxlOlt7dHlwZTp4eX1dLGZ1bGxXaWR0aENoYW5nZWQ6W3t0eXBlOk95fV0sZnVsbEhlaWdodENoYW5nZWQ6W3t0eXBlOk95fV0scGluU3RhdGVDaGFuZ2VkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgeWd0e2NvbnN0cnVjdG9yKCl7dGhpcy5QbHVnaW5UeXBlPWhBLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZD1uZXcgTGgsdGhpcy5mdWxsSGVpZ2h0Q2hhbmdlZD1uZXcgTGgsdGhpcy5waW5TdGF0ZUNoYW5nZWQ9bmV3IExofW9uRnVsbFdpZHRoQ2hhbmdlZCh0KXt0aGlzLmZ1bGxXaWR0aENoYW5nZWQuZW1pdCh0KX1vbkZ1bGxIZWlnaHRDaGFuZ2VkKHQpe3RoaXMuZnVsbEhlaWdodENoYW5nZWQuZW1pdCh0KX1vblBpblN0YXRlQ2hhbmdlZCgpe3RoaXMucGluU3RhdGVDaGFuZ2VkLmVtaXQoKX19eWd0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5Z3QpfSx5Z3QuybVjbXA9dG8oe3R5cGU6eWd0LHNlbGVjdG9yczpbWyJjYXJkLXZpZXctY29tcG9uZW50Il1dLGlucHV0czp7aXNFdmVyVmlzaWJsZToiaXNFdmVyVmlzaWJsZSIsY2FyZElkOiJjYXJkSWQiLGdyb3VwTmFtZToiZ3JvdXBOYW1lIixwbHVnaW5UeXBlOiJwbHVnaW5UeXBlIixydW5Db2xvclNjYWxlOiJydW5Db2xvclNjYWxlIn0sb3V0cHV0czp7ZnVsbFdpZHRoQ2hhbmdlZDoiZnVsbFdpZHRoQ2hhbmdlZCIsZnVsbEhlaWdodENoYW5nZWQ6ImZ1bGxIZWlnaHRDaGFuZ2VkIixwaW5TdGF0ZUNoYW5nZWQ6InBpblN0YXRlQ2hhbmdlZCJ9LGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWzMsIm5nU3dpdGNoIiw0LCJuZ0lmIl0sWzMsIm5nU3dpdGNoIl0sWzMsImNhcmRJZCIsImdyb3VwTmFtZSIsInJ1bkNvbG9yU2NhbGUiLCJmdWxsV2lkdGhDaGFuZ2VkIiwicGluU3RhdGVDaGFuZ2VkIiw0LCJuZ1N3aXRjaENhc2UiXSxbMywiY2FyZElkIiwiZ3JvdXBOYW1lIiwiZnVsbFdpZHRoQ2hhbmdlZCIsImZ1bGxIZWlnaHRDaGFuZ2VkIiwicGluU3RhdGVDaGFuZ2VkIiw0LCJuZ1N3aXRjaENhc2UiXSxbMywiY2FyZElkIiwiZ3JvdXBOYW1lIiwicnVuQ29sb3JTY2FsZSIsImZ1bGxXaWR0aENoYW5nZWQiLCJmdWxsSGVpZ2h0Q2hhbmdlZCIsInBpblN0YXRlQ2hhbmdlZCIsNCwibmdTd2l0Y2hDYXNlIl0sWzQsIm5nU3dpdGNoRGVmYXVsdCJdLFszLCJjYXJkSWQiLCJncm91cE5hbWUiLCJydW5Db2xvclNjYWxlIiwiZnVsbFdpZHRoQ2hhbmdlZCIsInBpblN0YXRlQ2hhbmdlZCJdLFszLCJjYXJkSWQiLCJncm91cE5hbWUiLCJmdWxsV2lkdGhDaGFuZ2VkIiwiZnVsbEhlaWdodENoYW5nZWQiLCJwaW5TdGF0ZUNoYW5nZWQiXSxbMywiY2FyZElkIiwiZ3JvdXBOYW1lIiwicnVuQ29sb3JTY2FsZSIsImZ1bGxXaWR0aENoYW5nZWQiLCJmdWxsSGVpZ2h0Q2hhbmdlZCIsInBpblN0YXRlQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZRcCgwLGJndCw1LDQsIm5nLWNvbnRhaW5lciIsMCksMiZlJiZEbSgibmdJZiIsbi5pc0V2ZXJWaXNpYmxlKX0sZGlyZWN0aXZlczpbZE0sZk0sZ00saE0sWDIsSWZ0LG1ndF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh5Z3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiY2FyZC12aWV3LWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6ImNhcmRfdmlld19jb21wb25lbnQubmcuaHRtbCIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7aXNFdmVyVmlzaWJsZTpbe3R5cGU6eHl9XSxjYXJkSWQ6W3t0eXBlOnh5fV0sZ3JvdXBOYW1lOlt7dHlwZTp4eX1dLHBsdWdpblR5cGU6W3t0eXBlOnh5fV0scnVuQ29sb3JTY2FsZTpbe3R5cGU6eHl9XSxmdWxsV2lkdGhDaGFuZ2VkOlt7dHlwZTpPeX1dLGZ1bGxIZWlnaHRDaGFuZ2VkOlt7dHlwZTpPeX1dLHBpblN0YXRlQ2hhbmdlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIF9ndHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5pc0V2ZXJWaXNpYmxlPSExLHRoaXMuc2hvd0Z1bGxXaWR0aD0hMSx0aGlzLnNob3dGdWxsSGVpZ2h0PSExLHRoaXMucnVuQ29sb3JTY2FsZSQ9dGhpcy5zdG9yZS5zZWxlY3Qoek4pLnBpcGUoQmUoMzUwLHZvaWQgMCx7bGVhZGluZzohMCx0cmFpbGluZzohMH0pLEl0KCh0PT5lPT50Lmhhc093blByb3BlcnR5KGUpP3RbZV06IiNmZmYiKSkpfW9uVmlzaWJpbGl0eUNoYW5nZSh7dmlzaWJsZTp0fSl7dGhpcy5pc0V2ZXJWaXNpYmxlPXRoaXMuaXNFdmVyVmlzaWJsZXx8dH1vbkZ1bGxXaWR0aENoYW5nZWQodCl7dGhpcy5zaG93RnVsbFdpZHRoPXR9b25GdWxsSGVpZ2h0Q2hhbmdlZCh0KXt0aGlzLnNob3dGdWxsSGVpZ2h0PXR9b25QaW5TdGF0ZUNoYW5nZWQoKXt0aGlzLnN0b3JlLnNlbGVjdCh3VCx0aGlzLmNhcmRJZCkucGlwZShiZSgxKSxWZSh0aGlzLnN0b3JlLnNlbGVjdChTVCkpKS5zdWJzY3JpYmUoKChbdCxlXSk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKG9SKHtjYXJkSWQ6dGhpcy5jYXJkSWQsY2FuQ3JlYXRlTmV3UGluczplLHdhc1Bpbm5lZDp0fSkpfSkpfX1mdW5jdGlvbiBDZ3QodCxlKXsxJnQmJkltKDApfWZ1bmN0aW9uIE1ndCh0LGUpe2lmKDEmdCYmVG0oMCwiY2FyZC12aWV3Iiw0KSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgpO0RtKCJjYXJkSWQiLHQuY2FyZElkKSgiZ3JvdXBOYW1lIixuLmdyb3VwTmFtZSkoInBsdWdpblR5cGUiLHQucGx1Z2luKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcikoImNhcmRMYXp5TG9hZGVyIix0LmNhcmRJZCl9fWZ1bmN0aW9uIHZndCh0LGUpezEmdCYmSW0oMCl9ZnVuY3Rpb24geGd0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwxMyksVm0oImNsaWNrIiwoZnVuY3Rpb24gZShuKXtoaSh0KTtjb25zdCBvPVltKDMpO3JldHVybiBvLmhhbmRsZVBhZ2VDaGFuZ2Uoby5wYWdlSW5kZXgtMSxuLnRhcmdldCl9KSksa3UoMSwiIFByZXZpb3VzICIpLEFtKCl9MiZ0JiZEbSgiZGlzYWJsZWQiLDA9PT1ZbSgzKS5wYWdlSW5kZXgpfWZ1bmN0aW9uIE9ndCh0LGUpezEmdCYmVG0oMCwibWF0LWljb24iLDE3KX1mdW5jdGlvbiBQZ3QodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiwxOCl9ZnVuY3Rpb24gd2d0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiYnV0dG9uIiwxNCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgzKS5ncm91cEV4cGFuc2lvblRvZ2dsZWQuZW1pdCgpfSkpLFFwKDEsT2d0LDEsMCwibWF0LWljb24iLDE1KSxRcCgyLFBndCwxLDAsIm5nLXRlbXBsYXRlIixudWxsLDE2LGliKSxBbSgpfWlmKDImdCl7Y29uc3QgdD0kcCgzKSxlPVltKDMpO3JjKDEpLERtKCJuZ0lmIixlLmlzR3JvdXBFeHBhbmRlZCkoIm5nSWZFbHNlIix0KX19ZnVuY3Rpb24ga2d0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwic3BhbiIsMjEpLFJtKDEsImlucHV0IiwyMiksVm0oImlucHV0IiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oNCkub25QYWdpbmF0aW9uSW5wdXRDaGFuZ2Uobil9KSkoImNoYW5nZSIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDQpLm9uUGFnaW5hdGlvbklucHV0Q2hhbmdlKG4pfSkpLEFtKCksa3UoMiksQW0oKX1pZigyJnQpe2NvbnN0IHQ9WW0oNCk7cmMoMSksRG0oInZhbHVlIix0LnBhZ2VJbmRleCsxKSgibWF4Iix0Lm51bVBhZ2VzKSxyYygxKSxEdSgiIG9mICIsdC5udW1QYWdlcywiIil9fWZ1bmN0aW9uIFNndCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsInNwYW4iKSxRcCgxLGtndCwzLDMsInNwYW4iLDE5KSxSbSgyLCJidXR0b24iLDIwKSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKG4pe2hpKHQpO2NvbnN0IG89WW0oMyk7cmV0dXJuIG8uaGFuZGxlUGFnZUNoYW5nZShvLnBhZ2VJbmRleCsxLG4udGFyZ2V0KX0pKSxrdSgzLCIgTmV4dCAiKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpLmlzQm90dG9tQ29udHJvbCxlPVltKCk7cmMoMSksRG0oIm5nSWYiLGUuc2hvd1BhZ2luYXRpb25JbnB1dCh0KSkscmMoMSksRG0oImRpc2FibGVkIixlLnBhZ2VJbmRleCsxPj1lLm51bVBhZ2VzKX19ZnVuY3Rpb24gRGd0KHQsZSl7aWYoMSZ0JiYoUm0oMCwiZGl2Iiw2KSxSbSgxLCJzcGFuIiw3KSxRcCgyLHhndCwyLDEsImJ1dHRvbiIsOCksQW0oKSxSbSgzLCJzcGFuIiw5KSxRcCg0LHdndCw0LDIsImJ1dHRvbiIsMTApLEFtKCksUm0oNSwic3BhbiIsMTEpLFFwKDYsU2d0LDQsMiwic3BhbiIsMTIpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKCkuaXNCb3R0b21Db250cm9sLGU9WW0oKTtyYygyKSxEbSgibmdJZiIsZS5zaG93UGFnaW5hdGlvbkNvbnRyb2xzKSxyYygyKSxEbSgibmdJZiIsZS5zaG93RXhwYW5kKHQpKSxyYygyKSxEbSgibmdJZiIsZS5zaG93UGFnaW5hdGlvbkNvbnRyb2xzKX19ZnVuY3Rpb24gRWd0KHQsZSl7aWYoMSZ0JiZRcCgwLERndCw3LDMsImRpdiIsNSksMiZ0KXtjb25zdCB0PWUuaXNCb3R0b21Db250cm9sLG49WW0oKTtEbSgibmdJZiIsbi5zaG93UGFnaW5hdGlvbkNvbnRyb2xzfHxuLnNob3dFeHBhbmQodCkpfX1fZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fF9ndCkoU20oSXcpKX0sX2d0Lsm1Y21wPXRvKHt0eXBlOl9ndCxzZWxlY3RvcnM6W1siY2FyZC12aWV3Il1dLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnB1KCJmdWxsLXdpZHRoIixuLnNob3dGdWxsV2lkdGgpKCJmdWxsLWhlaWdodCIsbi5zaG93RnVsbEhlaWdodCl9LGlucHV0czp7Y2FyZElkOiJjYXJkSWQiLGdyb3VwTmFtZToiZ3JvdXBOYW1lIixwbHVnaW5UeXBlOiJwbHVnaW5UeXBlIn0sZGVjbHM6Mix2YXJzOjcsY29uc3RzOltbIm9ic2VydmVJbnRlcnNlY3Rpb24iLCIiLCJpbnRlcnNlY3Rpb25PYnNlcnZlck1hcmdpbiIsIjIwMHB4IDIwMHB4IDIwMHB4IDIwMHB4IiwzLCJpc0V2ZXJWaXNpYmxlIiwiY2FyZElkIiwiZ3JvdXBOYW1lIiwicGx1Z2luVHlwZSIsInJ1bkNvbG9yU2NhbGUiLCJmdWxsV2lkdGhDaGFuZ2VkIiwiZnVsbEhlaWdodENoYW5nZWQiLCJwaW5TdGF0ZUNoYW5nZWQiLCJvblZpc2liaWxpdHlDaGFuZ2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImNhcmQtdmlldy1jb21wb25lbnQiLDApLFZtKCJmdWxsV2lkdGhDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkZ1bGxXaWR0aENoYW5nZWQoZSl9KSkoImZ1bGxIZWlnaHRDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkZ1bGxIZWlnaHRDaGFuZ2VkKGUpfSkpKCJwaW5TdGF0ZUNoYW5nZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25QaW5TdGF0ZUNoYW5nZWQoKX0pKSgib25WaXNpYmlsaXR5Q2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblZpc2liaWxpdHlDaGFuZ2UoZSl9KSksQWgoMSwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJpc0V2ZXJWaXNpYmxlIixuLmlzRXZlclZpc2libGUpKCJjYXJkSWQiLG4uY2FyZElkKSgiZ3JvdXBOYW1lIixuLmdyb3VwTmFtZSkoInBsdWdpblR5cGUiLG4ucGx1Z2luVHlwZSkoInJ1bkNvbG9yU2NhbGUiLFRoKDEsNSxuLnJ1bkNvbG9yU2NhbGUkKSl9LGRpcmVjdGl2ZXM6W3lndCxOZnRdLHBpcGVzOlt3TV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoX2d0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6ImNhcmQtdmlldyIsdGVtcGxhdGU6J1xuICAgIDxjYXJkLXZpZXctY29tcG9uZW50XG4gICAgICBbaXNFdmVyVmlzaWJsZV09ImlzRXZlclZpc2libGUiXG4gICAgICBbY2FyZElkXT0iY2FyZElkIlxuICAgICAgW2dyb3VwTmFtZV09Imdyb3VwTmFtZSJcbiAgICAgIFtwbHVnaW5UeXBlXT0icGx1Z2luVHlwZSJcbiAgICAgIFtydW5Db2xvclNjYWxlXT0icnVuQ29sb3JTY2FsZSQgfCBhc3luYyJcbiAgICAgIChmdWxsV2lkdGhDaGFuZ2VkKT0ib25GdWxsV2lkdGhDaGFuZ2VkKCRldmVudCkiXG4gICAgICAoZnVsbEhlaWdodENoYW5nZWQpPSJvbkZ1bGxIZWlnaHRDaGFuZ2VkKCRldmVudCkiXG4gICAgICAocGluU3RhdGVDaGFuZ2VkKT0ib25QaW5TdGF0ZUNoYW5nZWQoKSJcbiAgICAgIG9ic2VydmVJbnRlcnNlY3Rpb25cbiAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyTWFyZ2luPSIyMDBweCAyMDBweCAyMDBweCAyMDBweCJcbiAgICAgIChvblZpc2liaWxpdHlDaGFuZ2UpPSJvblZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KSJcbiAgICA+XG4gICAgPC9jYXJkLXZpZXctY29tcG9uZW50PlxuICAnLHN0eWxlVXJsczpbImNhcmRfdmlld19jb250YWluZXIuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7Y2FyZElkOlt7dHlwZTp4eX1dLGdyb3VwTmFtZTpbe3R5cGU6eHl9XSxwbHVnaW5UeXBlOlt7dHlwZTp4eX1dLHNob3dGdWxsV2lkdGg6W3t0eXBlOlB5LGFyZ3M6WyJjbGFzcy5mdWxsLXdpZHRoIl19XSxzaG93RnVsbEhlaWdodDpbe3R5cGU6UHksYXJnczpbImNsYXNzLmZ1bGwtaGVpZ2h0Il19XX0pO2NvbnN0IFJndD1mdW5jdGlvbigpe3JldHVybntpc0JvdHRvbUNvbnRyb2w6ITF9fSxBZ3Q9ZnVuY3Rpb24oKXtyZXR1cm57aXNCb3R0b21Db250cm9sOiEwfX07Y2xhc3MgVGd0e2NvbnN0cnVjdG9yKHQpe3RoaXMuY2RrU2Nyb2xsYWJsZT10LHRoaXMuUGx1Z2luVHlwZT1oQSx0aGlzLnBhZ2VJbmRleENoYW5nZWQ9bmV3IExoLHRoaXMuZ3JvdXBFeHBhbnNpb25Ub2dnbGVkPW5ldyBMaH1zaG93RXhwYW5kKHQpe3JldHVybiEhdCYmdGhpcy5pc0dyb3VwRXhwYW5kYWJsZX1zaG93UGFnaW5hdGlvbklucHV0KHQpe3JldHVybiB0fWhhbmRsZVBhZ2VDaGFuZ2UodCxlKXtjb25zdCBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO3NldFRpbWVvdXQoKCgpPT57dGhpcy5zY3JvbGxUb0tlZXBUYXJnZXRQb3NpdGlvbihlLG4pfSksMCksdGhpcy5wYWdlSW5kZXhDaGFuZ2VkLmVtaXQodCl9c2Nyb2xsVG9LZWVwVGFyZ2V0UG9zaXRpb24odCxlKXt2YXIgbjtjb25zdCBvPW51bGw9PT0obj10aGlzLmNka1Njcm9sbGFibGUpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50O28mJm8uc2Nyb2xsVG8oMCx0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcC1lK28uc2Nyb2xsVG9wKX10cmFja0J5Q2FyZHModCxlKXtyZXR1cm4gZS5jYXJkSWR9b25QYWdpbmF0aW9uSW5wdXRDaGFuZ2UodCl7Y29uc3QgZT10LnRhcmdldDtpZigiaW5wdXQiPT09dC50eXBlJiYiIj09PWUudmFsdWUpcmV0dXJuO2NvbnN0IG49TnVtYmVyKGUudmFsdWUpLTEsbz1NYXRoLm1pbihNYXRoLm1heCgwLG4pLHRoaXMubnVtUGFnZXMtMSk7ZS52YWx1ZSE9PVN0cmluZyhvKzEpJiYoZS52YWx1ZT1TdHJpbmcobysxKSksdGhpcy5oYW5kbGVQYWdlQ2hhbmdlKG8sZSl9fVRndC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VGd0KShTbShtRiw4KSl9LFRndC7JtWNtcD10byh7dHlwZTpUZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtY2FyZC1ncmlkLWNvbXBvbmVudCJdXSxpbnB1dHM6e2lzR3JvdXBFeHBhbmRhYmxlOiJpc0dyb3VwRXhwYW5kYWJsZSIsaXNHcm91cEV4cGFuZGVkOiJpc0dyb3VwRXhwYW5kZWQiLGdyb3VwTmFtZToiZ3JvdXBOYW1lIixwYWdlSW5kZXg6InBhZ2VJbmRleCIsbnVtUGFnZXM6Im51bVBhZ2VzIixjYXJkSWRzV2l0aE1ldGFkYXRhOiJjYXJkSWRzV2l0aE1ldGFkYXRhIixjYXJkT2JzZXJ2ZXI6ImNhcmRPYnNlcnZlciIsc2hvd1BhZ2luYXRpb25Db250cm9sczoic2hvd1BhZ2luYXRpb25Db250cm9scyJ9LG91dHB1dHM6e3BhZ2VJbmRleENoYW5nZWQ6InBhZ2VJbmRleENoYW5nZWQiLGdyb3VwRXhwYW5zaW9uVG9nZ2xlZDoiZ3JvdXBFeHBhbnNpb25Ub2dnbGVkIn0sZGVjbHM6Nix2YXJzOjgsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZSxuO3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJQcmV2aW91cyBwYWdlIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0aGF0IHNldHMgYSBncm91cCB0byB0aGUgcHJldmlvdXMgcGFnZS7ikJ81NzVlNzgyZmQyN2YyZWU3MGEwMzRhNzc1ZWZlOWFkMTYyNDcyMjUw4pCfMzYyOTk2MDU0NDg3NTM2MDA0NjpQcmV2aW91cyBwYWdlYCxlPSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJFeHBhbmQgZ3JvdXAiKTokbG9jYWxpemVgOkEgYnV0dG9uIHRoYXQgYWxsb3dzIHVzZXIgdG8gZXhwYW5kIGEgdGFnIGdyb3VwLuKQn2ZmYWExMTQ3MWI4NzhhNmRmZmUyZTY4YzZmMzcwNjRhOWUwNzQ4NTPikJ81Mzg2MDU0MzI1Mjc0Nzc5MjU4OkV4cGFuZCBncm91cGAsbj0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiTmV4dCBwYWdlIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0aGF0IHNldHMgYSBncm91cCB0byB0aGUgbmV4dCBwYWdlLuKQn2NlM2NlZmIxY2QwMDk5YWE1MDAzZGRhMTZlYzllYjIxZmQ4YmE3ODnikJ8zMzM3MzAxNjk0MjEwMjg3NTk1Ok5leHQgcGFnZWAsW1s0LCJuZ1RlbXBsYXRlT3V0bGV0IiwibmdUZW1wbGF0ZU91dGxldENvbnRleHQiXSxbMSwiY2FyZC1ncmlkIl0sWzMsImNhcmRJZCIsImdyb3VwTmFtZSIsInBsdWdpblR5cGUiLCJjYXJkT2JzZXJ2ZXIiLCJjYXJkTGF6eUxvYWRlciIsNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWyJncm91cENvbnRyb2xzIiwiIl0sWzMsImNhcmRJZCIsImdyb3VwTmFtZSIsInBsdWdpblR5cGUiLCJjYXJkT2JzZXJ2ZXIiLCJjYXJkTGF6eUxvYWRlciJdLFsiY2xhc3MiLCJncm91cC1jb250cm9scyIsNCwibmdJZiJdLFsxLCJncm91cC1jb250cm9scyJdLFsxLCJwcmV2LWNvbnRhaW5lciJdLFsiY2xhc3MiLCJwcmV2IHBhZ2luYXRpb24tYnV0dG9uIiwibWF0LWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywiZGlzYWJsZWQiLCJjbGljayIsNCwibmdJZiJdLFsxLCJleHBhbmQtY29udGFpbmVyIl0sWyJjbGFzcyIsImV4cGFuZC1ncm91cC1idXR0b24iLCJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixlLDMsImNsaWNrIiw0LCJuZ0lmIl0sWzEsImlucHV0LWFuZC1uZXh0LWNvbnRhaW5lciJdLFs0LCJuZ0lmIl0sWyJtYXQtYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwxLCJwcmV2IiwicGFnaW5hdGlvbi1idXR0b24iLDMsImRpc2FibGVkIiwiY2xpY2siXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGUsMSwiZXhwYW5kLWdyb3VwLWJ1dHRvbiIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJleHBhbmRfbGVzc18yNHB4Iiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImV4cGFuZE1vcmUiLCIiXSxbInN2Z0ljb24iLCJleHBhbmRfbGVzc18yNHB4Il0sWyJzdmdJY29uIiwiZXhwYW5kX21vcmVfMjRweCJdLFsiY2xhc3MiLCJwYWdpbmF0aW9uLWlucHV0Iiw0LCJuZ0lmIl0sWyJtYXQtYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsbiwxLCJuZXh0IiwicGFnaW5hdGlvbi1idXR0b24iLDMsImRpc2FibGVkIiwiY2xpY2siXSxbMSwicGFnaW5hdGlvbi1pbnB1dCJdLFsidHlwZSIsIm51bWJlciIsIm1pbiIsIjEiLDMsInZhbHVlIiwibWF4IiwiaW5wdXQiLCJjaGFuZ2UiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRcCgwLENndCwxLDAsIm5nLWNvbnRhaW5lciIsMCksUm0oMSwiZGl2IiwxKSxRcCgyLE1ndCwxLDUsImNhcmQtdmlldyIsMiksQW0oKSxRcCgzLHZndCwxLDAsIm5nLWNvbnRhaW5lciIsMCksUXAoNCxFZ3QsMSwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwzLGliKSksMiZlKXtjb25zdCB0PSRwKDUpO0RtKCJuZ1RlbXBsYXRlT3V0bGV0Iix0KSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLENoKDYsUmd0KSkscmMoMiksRG0oIm5nRm9yT2YiLG4uY2FyZElkc1dpdGhNZXRhZGF0YSkoIm5nRm9yVHJhY2tCeSIsbi50cmFja0J5Q2FyZHMpLHJjKDEpLERtKCJuZ1RlbXBsYXRlT3V0bGV0Iix0KSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLENoKDcsQWd0KSl9fSxkaXJlY3RpdmVzOltNTSxsTSxfZ3QsbTIsZE0sWEgsRFddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17Y29udGFpbjpjb250ZW50fS5jYXJkLWdyaWRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDMzNXB4LCBhdXRvKSk7Z2FwOjE2cHg7cGFkZGluZzoxNnB4fWNhcmQtdmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250YWluOnN0cmljdDtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjMyMHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIGNhcmQtdmlld1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIGNhcmQtdmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjNTU1fWNhcmQtdmlldy5mdWxsLXdpZHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtjb250YWluOmxheW91dCBwYWludDtncmlkLWNvbHVtbi1zdGFydDoxO2dyaWQtY29sdW1uLWVuZDotMX1jYXJkLXZpZXcuZnVsbC1oZWlnaHRbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6NDgwcHh9Lmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2Rpc3BsYXk6Z3JpZDthbGlnbi1pdGVtczpjZW50ZXI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnIgMWZyO2dhcDoxNnB4O3BhZGRpbmc6MCAxNnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Lmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXTpmaXJzdC1vZi10eXBle3BhZGRpbmctdG9wOjE2cHh9Lmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXTpsYXN0LW9mLXR5cGV7cGFkZGluZy1ib3R0b206MTZweH0ucHJldi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2p1c3RpZnktc2VsZjpmbGV4LXN0YXJ0fS5leHBhbmQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtqdXN0aWZ5LXNlbGY6Y2VudGVyfS5pbnB1dC1hbmQtbmV4dC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2p1c3RpZnktc2VsZjpmbGV4LWVuZH0ucGFnaW5hdGlvbi1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjE2cHh9LnBhZ2luYXRpb24taW5wdXRbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBzb2xpZCBjdXJyZW50Q29sb3I7Y29sb3I6aW5oZXJpdDtmb250OmluaGVyaXR9LmV4cGFuZC1ncm91cC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAucGFnaW5hdGlvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5leHBhbmQtZ3JvdXAtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmV4cGFuZC1ncm91cC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5wYWdpbmF0aW9uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5wYWdpbmF0aW9uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmV4cGFuZC1ncm91cC1idXR0b25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVkLCAucGFnaW5hdGlvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVke2NvbG9yOiM3NTc1NzV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmV4cGFuZC1ncm91cC1idXR0b25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVkLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZXhwYW5kLWdyb3VwLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV06ZGlzYWJsZWR7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAucGFnaW5hdGlvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVkLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAucGFnaW5hdGlvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVke2NvbG9yOiM2MTYxNjF9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFRndCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLWNhcmQtZ3JpZC1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL2NhcmRfZ3JpZF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9jYXJkX2dyaWRfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTptRixkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfV19KSx7aXNHcm91cEV4cGFuZGFibGU6W3t0eXBlOnh5fV0saXNHcm91cEV4cGFuZGVkOlt7dHlwZTp4eX1dLGdyb3VwTmFtZTpbe3R5cGU6eHl9XSxwYWdlSW5kZXg6W3t0eXBlOnh5fV0sbnVtUGFnZXM6W3t0eXBlOnh5fV0sY2FyZElkc1dpdGhNZXRhZGF0YTpbe3R5cGU6eHl9XSxjYXJkT2JzZXJ2ZXI6W3t0eXBlOnh5fV0sc2hvd1BhZ2luYXRpb25Db250cm9sczpbe3R5cGU6eHl9XSxwYWdlSW5kZXhDaGFuZ2VkOlt7dHlwZTpPeX1dLGdyb3VwRXhwYW5zaW9uVG9nZ2xlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIE5ndHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5ncm91cE5hbWU9bnVsbCx0aGlzLmdyb3VwTmFtZSQ9bmV3IEYobnVsbCksdGhpcy5wYWdlSW5kZXgkPW5ldyBGKDApLHRoaXMuaXRlbXMkPW5ldyBGKFtdKSx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEksdGhpcy5udW1QYWdlcyQ9V3QoW3RoaXMuaXRlbXMkLHRoaXMuc3RvcmUuc2VsZWN0KFJOKV0pLnBpcGUoSXQoKChbdCxlXSk9Pk1hdGguY2VpbCh0Lmxlbmd0aC9lKSkpKSx0aGlzLmlzR3JvdXBFeHBhbmRlZCQ9dGhpcy5ncm91cE5hbWUkLnBpcGUoemUoKHQ9Pm51bGwhPT10P3RoaXMuc3RvcmUuc2VsZWN0KFZULHQpOkV0KCEwKSkpKSx0aGlzLnNob3dQYWdpbmF0aW9uQ29udHJvbHMkPVd0KFt0aGlzLm51bVBhZ2VzJCx0aGlzLnN0b3JlLnNlbGVjdChSTiksdGhpcy5pc0dyb3VwRXhwYW5kZWQkXSkucGlwZShJdCgoKFt0LGUsbl0pPT4hKHQ8PTEpJiYoZTw9M3x8bikpKSksdGhpcy5pc0dyb3VwRXhwYW5kYWJsZSQ9V3QoW3RoaXMuaXRlbXMkLHRoaXMuc3RvcmUuc2VsZWN0KFJOKV0pLnBpcGUoSXQoKChbdCxlXSk9PiEobnVsbD09PXRoaXMuZ3JvdXBOYW1lfHxlPD0zfHx0Lmxlbmd0aDw9MykpKSksdGhpcy5ub3JtYWxpemVkUGFnZUluZGV4JD1XdChbdGhpcy5wYWdlSW5kZXgkLHRoaXMubnVtUGFnZXMkXSkucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpLEZlKCgoW3QsZV0pPT57MCE9PWUmJih0Pj1lP3RoaXMucGFnZUluZGV4JC5uZXh0KGUtMSk6dDwwJiZ0aGlzLnBhZ2VJbmRleCQubmV4dCgwKSl9KSksSXQoKChbdCxlXSk9Pk1hdGgubWluKE1hdGgubWF4KHQsMCksZS0xKSkpLEFlKDEpKSx0aGlzLnBhZ2VkSXRlbXMkPVd0KFt0aGlzLml0ZW1zJCx0aGlzLnN0b3JlLnNlbGVjdChSTiksdGhpcy5ub3JtYWxpemVkUGFnZUluZGV4JCx0aGlzLmlzR3JvdXBFeHBhbmRlZCRdKS5waXBlKEl0KCgoW3QsZSxuLG9dKT0+e2NvbnN0IGk9ZSpuLGE9ZSpuK01hdGgubWluKG8/ZTozLGUpO3JldHVybiB0LnNsaWNlKGksYSl9KSkpfW5nT25DaGFuZ2VzKHQpe3QuY2FyZElkc1dpdGhNZXRhZGF0YSYmdGhpcy5pdGVtcyQubmV4dCh0aGlzLmNhcmRJZHNXaXRoTWV0YWRhdGEpLHQuZ3JvdXBOYW1lJiZ0aGlzLmdyb3VwTmFtZSQubmV4dCh0aGlzLmdyb3VwTmFtZSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfW9uUGFnZUluZGV4Q2hhbmdlZCh0KXt0aGlzLnBhZ2VJbmRleCQubmV4dCh0KX1vbkdyb3VwRXhwYW5zaW9uVG9nZ2xlZCgpe2lmKG51bGw9PT10aGlzLmdyb3VwTmFtZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YXJpYW50IGVycm9yOiBleHBhbnNpb24gY2Fubm90IGJlIHRvZ2dsZWQgd2hlbiBncm91cE5hbWUgaXMgbnVsbCIpO3RoaXMuc3RvcmUuZGlzcGF0Y2goblIoe3RhZ0dyb3VwOnRoaXMuZ3JvdXBOYW1lfSkpfX1mdW5jdGlvbiB6Z3QodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiw4KSxrdSgxKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEdSgiIix0LmNhcmRJZHNXaXRoTWV0YWRhdGEubGVuZ3RoLCIgY2FyZHMiKX19ZnVuY3Rpb24gSWd0KHQsZSl7MSZ0JiYoUm0oMCwic3BhbiIsOSksa3UoMSwiTmV3IGNhcmQgcGlubmVkIiksQW0oKSksMiZ0JiZqcCgiZGF0YS1pZCIsZS4kaW1wbGljaXQpfWZ1bmN0aW9uIEhndCh0LGUpe2lmKDEmdCYmVG0oMCwibWV0cmljcy1jYXJkLWdyaWQiLDEwKSwyJnQpe2NvbnN0IHQ9WW0oKTtEbSgiY2FyZElkc1dpdGhNZXRhZGF0YSIsdC5jYXJkSWRzV2l0aE1ldGFkYXRhKSgiY2FyZE9ic2VydmVyIix0LmNhcmRPYnNlcnZlcil9fWZ1bmN0aW9uIEZndCh0LGUpezEmdCYmKFJtKDAsImRpdiIsMTEpLGt1KDEsIlBpbiBjYXJkcyBmb3IgYSBxdWljayB2aWV3IGFuZCBjb21wYXJpc29uIiksQW0oKSl9Tmd0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxOZ3QpKFNtKEl3KSl9LE5ndC7JtWNtcD10byh7dHlwZTpOZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtY2FyZC1ncmlkIl1dLGlucHV0czp7Z3JvdXBOYW1lOiJncm91cE5hbWUiLGNhcmRJZHNXaXRoTWV0YWRhdGE6ImNhcmRJZHNXaXRoTWV0YWRhdGEiLGNhcmRPYnNlcnZlcjoiY2FyZE9ic2VydmVyIn0sZmVhdHVyZXM6W0JvXSxkZWNsczo3LHZhcnM6MjAsY29uc3RzOltbMywiaXNHcm91cEV4cGFuZGFibGUiLCJpc0dyb3VwRXhwYW5kZWQiLCJncm91cE5hbWUiLCJwYWdlSW5kZXgiLCJudW1QYWdlcyIsInNob3dQYWdpbmF0aW9uQ29udHJvbHMiLCJjYXJkSWRzV2l0aE1ldGFkYXRhIiwiY2FyZE9ic2VydmVyIiwicGFnZUluZGV4Q2hhbmdlZCIsImdyb3VwRXhwYW5zaW9uVG9nZ2xlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWV0cmljcy1jYXJkLWdyaWQtY29tcG9uZW50IiwwKSxWbSgicGFnZUluZGV4Q2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25QYWdlSW5kZXhDaGFuZ2VkKGUpfSkpKCJncm91cEV4cGFuc2lvblRvZ2dsZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Hcm91cEV4cGFuc2lvblRvZ2dsZWQoKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBaCg0LCJhc3luYyIpLEFoKDUsImFzeW5jIiksQWgoNiwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJpc0dyb3VwRXhwYW5kYWJsZSIsVGgoMSw4LG4uaXNHcm91cEV4cGFuZGFibGUkKSkoImlzR3JvdXBFeHBhbmRlZCIsVGgoMiwxMCxuLmlzR3JvdXBFeHBhbmRlZCQpKSgiZ3JvdXBOYW1lIixuLmdyb3VwTmFtZSkoInBhZ2VJbmRleCIsVGgoMywxMixuLm5vcm1hbGl6ZWRQYWdlSW5kZXgkKSkoIm51bVBhZ2VzIixUaCg0LDE0LG4ubnVtUGFnZXMkKSkoInNob3dQYWdpbmF0aW9uQ29udHJvbHMiLFRoKDUsMTYsbi5zaG93UGFnaW5hdGlvbkNvbnRyb2xzJCkpKCJjYXJkSWRzV2l0aE1ldGFkYXRhIixUaCg2LDE4LG4ucGFnZWRJdGVtcyQpKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcil9LGRpcmVjdGl2ZXM6W1RndF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE5ndCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLWNhcmQtZ3JpZCIsdGVtcGxhdGU6J1xuICAgIDxtZXRyaWNzLWNhcmQtZ3JpZC1jb21wb25lbnRcbiAgICAgIFtpc0dyb3VwRXhwYW5kYWJsZV09ImlzR3JvdXBFeHBhbmRhYmxlJCB8IGFzeW5jIlxuICAgICAgW2lzR3JvdXBFeHBhbmRlZF09ImlzR3JvdXBFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFtncm91cE5hbWVdPSJncm91cE5hbWUiXG4gICAgICBbcGFnZUluZGV4XT0ibm9ybWFsaXplZFBhZ2VJbmRleCQgfCBhc3luYyJcbiAgICAgIFtudW1QYWdlc109Im51bVBhZ2VzJCB8IGFzeW5jIlxuICAgICAgW3Nob3dQYWdpbmF0aW9uQ29udHJvbHNdPSJzaG93UGFnaW5hdGlvbkNvbnRyb2xzJCB8IGFzeW5jIlxuICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJwYWdlZEl0ZW1zJCB8IGFzeW5jIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICAgIChwYWdlSW5kZXhDaGFuZ2VkKT0ib25QYWdlSW5kZXhDaGFuZ2VkKCRldmVudCkiXG4gICAgICAoZ3JvdXBFeHBhbnNpb25Ub2dnbGVkKT0ib25Hcm91cEV4cGFuc2lvblRvZ2dsZWQoKSJcbiAgICA+XG4gICAgPC9tZXRyaWNzLWNhcmQtZ3JpZC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7Z3JvdXBOYW1lOlt7dHlwZTp4eX1dLGNhcmRJZHNXaXRoTWV0YWRhdGE6W3t0eXBlOnh5fV0sY2FyZE9ic2VydmVyOlt7dHlwZTp4eX1dfSk7Y2xhc3MgTGd0e31MZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExndCl9LExndC7JtWNtcD10byh7dHlwZTpMZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtcGlubmVkLXZpZXctY29tcG9uZW50Il1dLGlucHV0czp7Y2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIiLGNhcmRJZHNXaXRoTWV0YWRhdGE6ImNhcmRJZHNXaXRoTWV0YWRhdGEiLG5ld0NhcmRQaW5uZWRJZHM6Im5ld0NhcmRQaW5uZWRJZHMifSxkZWNsczoxMCx2YXJzOjQsY29uc3RzOltbMSwiZ3JvdXAtdG9vbGJhciJdLFsic3ZnSWNvbiIsImtlZXBfMjRweCJdLFsxLCJncm91cC10ZXh0Il0sWyJhcmlhLXJvbGUiLCJoZWFkaW5nIiwiYXJpYS1sZXZlbCIsIjMiLDEsImdyb3VwLXRpdGxlIl0sWyJjbGFzcyIsImdyb3VwLWNhcmQtY291bnQiLDQsIm5nSWYiXSxbImNsYXNzIiwibmV3LWNhcmQtcGlubmVkIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywiY2FyZElkc1dpdGhNZXRhZGF0YSIsImNhcmRPYnNlcnZlciIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJlbXB0eVBpbm5lZFZpZXciLCIiXSxbMSwiZ3JvdXAtY2FyZC1jb3VudCJdLFsxLCJuZXctY2FyZC1waW5uZWQiXSxbMywiY2FyZElkc1dpdGhNZXRhZGF0YSIsImNhcmRPYnNlcnZlciJdLFsxLCJlbXB0eS1tZXNzYWdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFRtKDEsIm1hdC1pY29uIiwxKSxSbSgyLCJzcGFuIiwyKSxSbSgzLCJzcGFuIiwzKSxrdSg0LCJQaW5uZWQiKSxBbSgpLFFwKDUsemd0LDIsMSwic3BhbiIsNCksUXAoNixJZ3QsMiwxLCJzcGFuIiw1KSxBbSgpLEFtKCksUXAoNyxIZ3QsMSwyLCJtZXRyaWNzLWNhcmQtZ3JpZCIsNiksUXAoOCxGZ3QsMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw3LGliKSksMiZlKXtjb25zdCB0PSRwKDkpO3JjKDUpLERtKCJuZ0lmIixuLmNhcmRJZHNXaXRoTWV0YWRhdGEubGVuZ3RoPjEpLHJjKDEpLERtKCJuZ0Zvck9mIixuLm5ld0NhcmRQaW5uZWRJZHMpLHJjKDEpLERtKCJuZ0lmIixuLmNhcmRJZHNXaXRoTWV0YWRhdGEubGVuZ3RoKSgibmdJZkVsc2UiLHQpfX0sZGlyZWN0aXZlczpbRFcsZE0sbE0sTmd0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTpmbGV4O2ZsZXg6bm9uZTtoZWlnaHQ6NDJweDttYXJnaW4tYm90dG9tOi0xcHg7cGFkZGluZzowIDE2cHg7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MTtib3gtc2hhZG93OjBweCAycHggNHB4IDBweCByZ2JhKDAsMCwwLC4xNSl9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym94LXNoYWRvdzowcHggMnB4IDRweCAwcHggcmdiYSgyNTUsMjU1LDI1NSwuMTUpfW1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZsZXg6bm9uZTttYXJnaW4tcmlnaHQ6NXB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5ncm91cC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6YmFzZWxpbmU7Z2FwOjZweH0uZ3JvdXAtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0uZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmVtcHR5LW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7Zm9udC1zaXplOjEzcHg7Zm9udC1zdHlsZTppdGFsaWM7cGFkZGluZzoxNnB4O3RleHQtYWxpZ246Y2VudGVyfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5lbXB0eS1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmVtcHR5LW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5uZXctY2FyZC1waW5uZWRbX25nY29udGVudC0lQ09NUCVde2FuaW1hdGlvbjpwaW5uZWQtdmlldy1mYWRlLW91dCAzcyBsaW5lYXI7YmFja2dyb3VuZDojZjQ0MzM2O2JvcmRlci1yYWRpdXM6NXB4O2NvbG9yOiNmZmY7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEzcHg7b3BhY2l0eTowO3BhZGRpbmc6M3B4IDVweH1Aa2V5ZnJhbWVzIHBpbm5lZC12aWV3LWZhZGUtb3V0e2Zyb217b3BhY2l0eToxfTY2JXtvcGFjaXR5Oi45OX10b3tvcGFjaXR5OjB9fSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMZ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1waW5uZWQtdmlldy1jb21wb25lbnQiLHRlbXBsYXRlOidcbiAgICA8ZGl2IGNsYXNzPSJncm91cC10b29sYmFyIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPSJrZWVwXzI0cHgiPjwvbWF0LWljb24+XG4gICAgICA8c3BhbiBjbGFzcz0iZ3JvdXAtdGV4dCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJncm91cC10aXRsZSIgYXJpYS1yb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIzIlxuICAgICAgICAgID5QaW5uZWQ8L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3BhbiAqbmdJZj0iY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGggPiAxIiBjbGFzcz0iZ3JvdXAtY2FyZC1jb3VudCJcbiAgICAgICAgICA+e3sgY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGggfX0gY2FyZHM8L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0Zvcj0ibGV0IGlkIG9mIG5ld0NhcmRQaW5uZWRJZHMiXG4gICAgICAgICAgW2F0dHIuZGF0YS1pZF09ImlkIlxuICAgICAgICAgIGNsYXNzPSJuZXctY2FyZC1waW5uZWQiXG4gICAgICAgICAgPk5ldyBjYXJkIHBpbm5lZDwvc3BhblxuICAgICAgICA+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPG1ldHJpY3MtY2FyZC1ncmlkXG4gICAgICAqbmdJZj0iY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGg7IGVsc2UgZW1wdHlQaW5uZWRWaWV3IlxuICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJjYXJkSWRzV2l0aE1ldGFkYXRhIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICA+PC9tZXRyaWNzLWNhcmQtZ3JpZD5cbiAgICA8bmctdGVtcGxhdGUgI2VtcHR5UGlubmVkVmlldz5cbiAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LW1lc3NhZ2UiPlBpbiBjYXJkcyBmb3IgYSBxdWljayB2aWV3IGFuZCBjb21wYXJpc29uPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgJyxzdHlsZVVybHM6WyJwaW5uZWRfdmlld19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7Y2FyZE9ic2VydmVyOlt7dHlwZTp4eX1dLGNhcmRJZHNXaXRoTWV0YWRhdGE6W3t0eXBlOnh5fV0sbmV3Q2FyZFBpbm5lZElkczpbe3R5cGU6eHl9XX0pO2NsYXNzIEJndHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5jYXJkSWRzV2l0aE1ldGFkYXRhJD10aGlzLnN0b3JlLnNlbGVjdChQVCkucGlwZShOZShbXSkpLHRoaXMubmV3Q2FyZFBpbm5lZElkcyQ9dGhpcy5zdG9yZS5zZWxlY3QoUFQpLnBpcGUoVGUoMSksSXQoKHQ9PnQubWFwKCh0PT50LmNhcmRJZCkpKSksRGUoKSxJdCgoKFt0LGVdKT0+e2NvbnN0IG49bmV3IFNldCh0KSxvPW5ldyBTZXQoZSk7Zm9yKGNvbnN0IHQgb2YgbylpZighbi5oYXModCkpcmV0dXJuIERhdGUubm93KCk7cmV0dXJuIG51bGx9KSksTmUobnVsbCksRGUoKSxJdCgoKFt0LGVdKT0+bnVsbD09PXQmJm51bGw9PT1lP251bGw6bnVsbD09PWU/W3RdOltlXSkpLGNlKCh0PT5udWxsIT09dCkpLEl0KCh0PT5bdFswXV0pKSl9fUJndC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Qmd0KShTbShJdykpfSxCZ3QuybVjbXA9dG8oe3R5cGU6Qmd0LHNlbGVjdG9yczpbWyJtZXRyaWNzLXBpbm5lZC12aWV3Il1dLGlucHV0czp7Y2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifSxkZWNsczozLHZhcnM6Nyxjb25zdHM6W1szLCJjYXJkSWRzV2l0aE1ldGFkYXRhIiwibmV3Q2FyZFBpbm5lZElkcyIsImNhcmRPYnNlcnZlciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwibWV0cmljcy1waW5uZWQtdmlldy1jb21wb25lbnQiLDApLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSksMiZlJiZEbSgiY2FyZElkc1dpdGhNZXRhZGF0YSIsVGgoMSwzLG4uY2FyZElkc1dpdGhNZXRhZGF0YSQpKSgibmV3Q2FyZFBpbm5lZElkcyIsVGgoMiw1LG4ubmV3Q2FyZFBpbm5lZElkcyQpKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcil9LGRpcmVjdGl2ZXM6W0xndF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJndCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLXBpbm5lZC12aWV3Iix0ZW1wbGF0ZTonXG4gICAgPG1ldHJpY3MtcGlubmVkLXZpZXctY29tcG9uZW50XG4gICAgICBbY2FyZElkc1dpdGhNZXRhZGF0YV09ImNhcmRJZHNXaXRoTWV0YWRhdGEkIHwgYXN5bmMiXG4gICAgICBbbmV3Q2FyZFBpbm5lZElkc109Im5ld0NhcmRQaW5uZWRJZHMkIHwgYXN5bmMiXG4gICAgICBbY2FyZE9ic2VydmVyXT0iY2FyZE9ic2VydmVyIlxuICAgID48L21ldHJpY3MtcGlubmVkLXZpZXctY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSkse2NhcmRPYnNlcnZlcjpbe3R5cGU6eHl9XX0pO2NvbnN0IFZndD1adyhNVCxOTiwoKHQsZSk9PnQuZmlsdGVyKCh0PT4heEEodC5wbHVnaW4pfHxCb29sZWFuKGUmJmUuZ2V0KHQucnVuSWQpKSkpKSksamd0PVp3KFZndCwodD0+dC5zb3J0KCgodCxlKT0+ZzIodC50YWcsZS50YWcpKSkpKTtmdW5jdGlvbiBVZ3QodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiw2KSxrdSgxKSxBaCgyLCJudW1iZXIiKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKS4kaW1wbGljaXQ7cmMoMSksRHUoIiIsVGgoMiwxLHQuaXRlbXMubGVuZ3RoKSwiIGNhcmRzIil9fWZ1bmN0aW9uIEdndCh0LGUpe2lmKDEmdCYmKFJtKDAsImRpdiIsMSksUm0oMSwiZGl2IiwyKSxSbSgyLCJzcGFuIiksUm0oMywic3BhbiIsMyksa3UoNCksQW0oKSxRcCg1LFVndCwzLDMsInNwYW4iLDQpLEFtKCksQW0oKSxUbSg2LCJtZXRyaWNzLWNhcmQtZ3JpZCIsNSksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oKTtyYygzKSxLbSgidGl0bGUiLHQuZ3JvdXBOYW1lKSxyYygxKSxTdSh0Lmdyb3VwTmFtZSkscmMoMSksRG0oIm5nSWYiLHQuaXRlbXMubGVuZ3RoPjEpLHJjKDEpLERtKCJjYXJkSWRzV2l0aE1ldGFkYXRhIix0Lml0ZW1zKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcikoImdyb3VwTmFtZSIsdC5ncm91cE5hbWUpfX1jbGFzcyBXZ3R7Y29uc3RydWN0b3IoKXt0aGlzLlBsdWdpblR5cGU9aEF9dHJhY2tCeUdyb3VwKHQsZSl7cmV0dXJuIGUuZ3JvdXBOYW1lfX1XZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFdndCl9LFdndC7JtWNtcD10byh7dHlwZTpXZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtY2FyZC1ncm91cHMtY29tcG9uZW50Il1dLGlucHV0czp7Y2FyZEdyb3VwczoiY2FyZEdyb3VwcyIsY2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifSxkZWNsczoxLHZhcnM6Mixjb25zdHM6W1siY2xhc3MiLCJjYXJkLWdyb3VwIiw0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbMSwiY2FyZC1ncm91cCJdLFsxLCJncm91cC10b29sYmFyIl0sWyJhcmlhLXJvbGUiLCJoZWFkaW5nIiwiYXJpYS1sZXZlbCIsIjMiLDEsImdyb3VwLXRpdGxlIiwzLCJ0aXRsZSJdLFsiY2xhc3MiLCJncm91cC1jYXJkLWNvdW50Iiw0LCJuZ0lmIl0sWzMsImNhcmRJZHNXaXRoTWV0YWRhdGEiLCJjYXJkT2JzZXJ2ZXIiLCJncm91cE5hbWUiXSxbMSwiZ3JvdXAtY2FyZC1jb3VudCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZRcCgwLEdndCw3LDYsImRpdiIsMCksMiZlJiZEbSgibmdGb3JPZiIsbi5jYXJkR3JvdXBzKSgibmdGb3JUcmFja0J5IixuLnRyYWNrQnlHcm91cCl9LGRpcmVjdGl2ZXM6W2xNLGRNLE5ndF0scGlwZXM6W0ZNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTpmbGV4O2ZsZXg6bm9uZTtoZWlnaHQ6NDJweDttYXJnaW4tYm90dG9tOi0xcHg7cGFkZGluZzowIDE2cHg7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MTtib3gtc2hhZG93OjBweCAycHggNHB4IDBweCByZ2JhKDAsMCwwLC4xNSl9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym94LXNoYWRvdzowcHggMnB4IDRweCAwcHggcmdiYSgyNTUsMjU1LDI1NSwuMTUpfVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgI2ViZWJlYjt0b3A6LTFweH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgIzU1NX0uY2FyZC1ncm91cFtfbmdjb250ZW50LSVDT01QJV06Zmlyc3Qtb2YtdHlwZSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOm5vbmV9Lmdyb3VwLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojNjE2MTYxO21hcmdpbi1sZWZ0OjZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jYXJkLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoV2d0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtY2FyZC1ncm91cHMtY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPGRpdlxuICAgICAgKm5nRm9yPSJsZXQgZ3JvdXAgb2YgY2FyZEdyb3VwczsgdHJhY2tCeTogdHJhY2tCeUdyb3VwIlxuICAgICAgY2xhc3M9ImNhcmQtZ3JvdXAiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz0iZ3JvdXAtdG9vbGJhciI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz0iZ3JvdXAtdGl0bGUiXG4gICAgICAgICAgICBhcmlhLXJvbGU9ImhlYWRpbmciXG4gICAgICAgICAgICBhcmlhLWxldmVsPSIzIlxuICAgICAgICAgICAgdGl0bGU9Int7IGdyb3VwLmdyb3VwTmFtZSB9fSJcbiAgICAgICAgICAgID57eyBncm91cC5ncm91cE5hbWUgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9Imdyb3VwLml0ZW1zLmxlbmd0aCA+IDEiIGNsYXNzPSJncm91cC1jYXJkLWNvdW50IlxuICAgICAgICAgICAgPnt7IGdyb3VwLml0ZW1zLmxlbmd0aCB8IG51bWJlciB9fSBjYXJkczwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8bWV0cmljcy1jYXJkLWdyaWRcbiAgICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJncm91cC5pdGVtcyJcbiAgICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICAgICAgW2dyb3VwTmFtZV09Imdyb3VwLmdyb3VwTmFtZSJcbiAgICAgID48L21ldHJpY3MtY2FyZC1ncmlkPlxuICAgIDwvZGl2PlxuICAnLHN0eWxlVXJsczpbImNhcmRfZ3JvdXBzX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtjYXJkR3JvdXBzOlt7dHlwZTp4eX1dLGNhcmRPYnNlcnZlcjpbe3R5cGU6eHl9XX0pO2NsYXNzIFlndHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5jYXJkR3JvdXBzJD10aGlzLnN0b3JlLnNlbGVjdChqZ3QpLnBpcGUoZmUodGhpcy5zdG9yZS5zZWxlY3QocVQpKSxJdCgoKFt0LGVdKT0+ZS5zaXplP3QuZmlsdGVyKCh0PT5lLmhhcyh0LnBsdWdpbikpKTp0KSksSXQoKHQ9PihmdW5jdGlvbiBlKHQpe2NvbnN0IGU9bmV3IE1hcCxuPXQuc2xpY2UoKS5zb3J0KCgodCxlKT0+ZzIodC50YWcsZS50YWcpKSk7Zm9yKGNvbnN0IHQgb2Ygbil7Y29uc3Qgbj10LnRhZy5zcGxpdCgiLyIsMSlbMF07ZS5oYXMobil8fGUuc2V0KG4se2dyb3VwTmFtZTpuLGl0ZW1zOltdfSksZS5nZXQobikuaXRlbXMucHVzaCh0KX1yZXR1cm5bLi4uZS52YWx1ZXMoKV19KSh0KSkpKX19ZnVuY3Rpb24gcWd0KHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDEpLER1KCIgYW5kICIsdC5nZXRQbHVnaW5UeXBlRmlsdGVyU3RyaW5nKHQucGx1Z2luVHlwZXMpLCIgdmlzdWFsaXphdGlvbiBmaWx0ZXIiKX19WWd0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxZZ3QpKFNtKEl3KSl9LFlndC7JtWNtcD10byh7dHlwZTpZZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtY2FyZC1ncm91cHMiXV0saW5wdXRzOntjYXJkT2JzZXJ2ZXI6ImNhcmRPYnNlcnZlciJ9LGRlY2xzOjIsdmFyczo0LGNvbnN0czpbWzMsImNhcmRHcm91cHMiLCJjYXJkT2JzZXJ2ZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsIm1ldHJpY3MtY2FyZC1ncm91cHMtY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpKSwyJmUmJkRtKCJjYXJkR3JvdXBzIixUaCgxLDIsbi5jYXJkR3JvdXBzJCkpKCJjYXJkT2JzZXJ2ZXIiLG4uY2FyZE9ic2VydmVyKX0sZGlyZWN0aXZlczpbV2d0XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWWd0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtY2FyZC1ncm91cHMiLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy1jYXJkLWdyb3Vwcy1jb21wb25lbnRcbiAgICAgIFtjYXJkR3JvdXBzXT0iY2FyZEdyb3VwcyQgfCBhc3luYyJcbiAgICAgIFtjYXJkT2JzZXJ2ZXJdPSJjYXJkT2JzZXJ2ZXIiXG4gICAgPjwvbWV0cmljcy1jYXJkLWdyb3Vwcy1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7Y2FyZE9ic2VydmVyOlt7dHlwZTp4eX1dfSk7Y2xhc3MgWmd0e2NvbnN0cnVjdG9yKCl7dGhpcy5QbHVnaW5UeXBlPWhBLHRoaXMubGlzdEZvcm1hdHRlcj1uZXcgSW50bC5MaXN0Rm9ybWF0KHZvaWQgMCx7c3R5bGU6ImxvbmciLHR5cGU6ImRpc2p1bmN0aW9uIn0pfWdldFBsdWdpblR5cGVGaWx0ZXJTdHJpbmcodCl7Y29uc3QgZT1bLi4udF0ubWFwKCh0PT57c3dpdGNoKHQpe2Nhc2UgaEEuU0NBTEFSUzpyZXR1cm4ic2NhbGFyIjtjYXNlIGhBLklNQUdFUzpyZXR1cm4iaW1hZ2UiO2Nhc2UgaEEuSElTVE9HUkFNUzpyZXR1cm4iaGlzdG9ncmFtIjtkZWZhdWx0OnRocm93IG5ldyBSYW5nZUVycm9yKGBQbGVhc2UgaW1wbGVtZW50IGh1bWFuIHJlYWRhYmxlIG5hbWUgZm9yIHBsdWdpbiB0eXBlOiAke3R9YCl9fSkpO3JldHVybiB0aGlzLmxpc3RGb3JtYXR0ZXIuZm9ybWF0KGUpfX1aZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFpndCl9LFpndC7JtWNtcD10byh7dHlwZTpaZ3Qsc2VsZWN0b3JzOltbIm1ldHJpY3MtZW1wdHktdGFnLW1hdGNoLWNvbXBvbmVudCJdXSxpbnB1dHM6e3BsdWdpblR5cGVzOiJwbHVnaW5UeXBlcyIsdGFnRmlsdGVyUmVnZXg6InRhZ0ZpbHRlclJlZ2V4Iix0YWdDb3VudHM6InRhZ0NvdW50cyJ9LGRlY2xzOjYsdmFyczo1LGNvbnN0czpbWzQsIm5nSWYiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKGt1KDAsIk5vIG1hdGNoZXMgZm9yIHRhZyBmaWx0ZXIgIiksUm0oMSwiY29kZSIpLGt1KDIpLEFtKCksUXAoMyxxZ3QsMiwxLCJzcGFuIiwwKSxrdSg0KSxBaCg1LCJudW1iZXIiKSksMiZlJiYocmMoMiksRHUoIi8iLG4udGFnRmlsdGVyUmVnZXgsIi8iKSxyYygxKSxEbSgibmdJZiIsbi5wbHVnaW5UeXBlcy5zaXplKSxyYygxKSxEdSgiIG91dCBvZiAiLFRoKDUsMyxuLnRhZ0NvdW50cyksIiB0YWdzLiIpKX0sZGlyZWN0aXZlczpbZE1dLHBpcGVzOltGTV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChaZ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1lbXB0eS10YWctbWF0Y2gtY29tcG9uZW50Iix0ZW1wbGF0ZTonTm8gbWF0Y2hlcyBmb3IgdGFnIGZpbHRlciA8Y29kZT4ve3sgdGFnRmlsdGVyUmVnZXggfX0vPC9jb2RlXG4gICAgPjxzcGFuICpuZ0lmPSJwbHVnaW5UeXBlcy5zaXplIj5cbiAgICAgIGFuZCB7eyBnZXRQbHVnaW5UeXBlRmlsdGVyU3RyaW5nKHBsdWdpblR5cGVzKSB9fSB2aXN1YWxpemF0aW9uXG4gICAgICBmaWx0ZXI8L3NwYW5cbiAgICA+XG4gICAgb3V0IG9mIHt7IHRhZ0NvdW50cyB8IG51bWJlciB9fSB0YWdzLicsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cGx1Z2luVHlwZXM6W3t0eXBlOnh5fV0sdGFnRmlsdGVyUmVnZXg6W3t0eXBlOnh5fV0sdGFnQ291bnRzOlt7dHlwZTp4eX1dfSk7Y2xhc3MgWGd0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnBsdWdpblR5cGVzJD10aGlzLnN0b3JlLnNlbGVjdChxVCksdGhpcy50YWdGaWx0ZXJSZWdleCQ9dGhpcy5zdG9yZS5zZWxlY3QoQlQpLHRoaXMudGFnQ291bnRzJD10aGlzLnN0b3JlLnNlbGVjdChqZ3QpLnBpcGUoSXQoKHQ9Pm5ldyBTZXQodC5tYXAoKCh7dGFnOnR9KT0+dCkpKS5zaXplKSkpfX1mdW5jdGlvbiBLZ3QodCxlKXtpZigxJnQmJihSbSgwLCJzcGFuIiw2KSxrdSgxKSxBaCgyLCJudW1iZXIiKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEdSgiIixUaCgyLDEsdC5jYXJkSWRzV2l0aE1ldGFkYXRhLmxlbmd0aCksIiBjYXJkcyIpfX1mdW5jdGlvbiBKZ3QodCxlKXsxJnQmJlRtKDAsIm1ldHJpY3MtZW1wdHktdGFnLW1hdGNoIiw3KX1YZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhndCkoU20oSXcpKX0sWGd0Lsm1Y21wPXRvKHt0eXBlOlhndCxzZWxlY3RvcnM6W1sibWV0cmljcy1lbXB0eS10YWctbWF0Y2giXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywicGx1Z2luVHlwZXMiLCJ0YWdGaWx0ZXJSZWdleCIsInRhZ0NvdW50cyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwibWV0cmljcy1lbXB0eS10YWctbWF0Y2gtY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSksMiZlJiZEbSgicGx1Z2luVHlwZXMiLFRoKDEsMyxuLnBsdWdpblR5cGVzJCkpKCJ0YWdGaWx0ZXJSZWdleCIsVGgoMiw1LG4udGFnRmlsdGVyUmVnZXgkKSkoInRhZ0NvdW50cyIsVGgoMyw3LG4udGFnQ291bnRzJCkpfSxkaXJlY3RpdmVzOltaZ3RdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYZ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1lbXB0eS10YWctbWF0Y2giLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy1lbXB0eS10YWctbWF0Y2gtY29tcG9uZW50XG4gICAgICBbcGx1Z2luVHlwZXNdPSJwbHVnaW5UeXBlcyQgfCBhc3luYyJcbiAgICAgIFt0YWdGaWx0ZXJSZWdleF09InRhZ0ZpbHRlclJlZ2V4JCB8IGFzeW5jIlxuICAgICAgW3RhZ0NvdW50c109InRhZ0NvdW50cyQgfCBhc3luYyJcbiAgICA+PC9tZXRyaWNzLWVtcHR5LXRhZy1tYXRjaC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjbGFzcyBRZ3R7fVFndC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UWd0KX0sUWd0Lsm1Y21wPXRvKHt0eXBlOlFndCxzZWxlY3RvcnM6W1sibWV0cmljcy1maWx0ZXJlZC12aWV3LWNvbXBvbmVudCJdXSxpbnB1dHM6e2lzRW1wdHlNYXRjaDoiaXNFbXB0eU1hdGNoIixjYXJkT2JzZXJ2ZXI6ImNhcmRPYnNlcnZlciIsY2FyZElkc1dpdGhNZXRhZGF0YToiY2FyZElkc1dpdGhNZXRhZGF0YSJ9LGRlY2xzOjcsdmFyczo0LGNvbnN0czpbWzEsImdyb3VwLXRvb2xiYXIiXSxbMSwiZ3JvdXAtdGV4dCJdLFsiYXJpYS1yb2xlIiwiaGVhZGluZyIsImFyaWEtbGV2ZWwiLCIzIiwxLCJncm91cC10aXRsZSJdLFsiY2xhc3MiLCJncm91cC1jYXJkLWNvdW50Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIndhcm4iLDQsIm5nSWYiXSxbMywiY2FyZElkc1dpdGhNZXRhZGF0YSIsImNhcmRPYnNlcnZlciJdLFsxLCJncm91cC1jYXJkLWNvdW50Il0sWzEsIndhcm4iXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksUm0oMSwic3BhbiIsMSksUm0oMiwic3BhbiIsMiksa3UoMywiVGFncyBtYXRjaGluZyBmaWx0ZXIiKSxBbSgpLFFwKDQsS2d0LDMsMywic3BhbiIsMyksQW0oKSxBbSgpLFFwKDUsSmd0LDEsMCwibWV0cmljcy1lbXB0eS10YWctbWF0Y2giLDQpLFRtKDYsIm1ldHJpY3MtY2FyZC1ncmlkIiw1KSksMiZlJiYocmMoNCksRG0oIm5nSWYiLG4uY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGg+MSkscmMoMSksRG0oIm5nSWYiLG4uaXNFbXB0eU1hdGNoKSxyYygxKSxEbSgiY2FyZElkc1dpdGhNZXRhZGF0YSIsbi5jYXJkSWRzV2l0aE1ldGFkYXRhKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcikpfSxkaXJlY3RpdmVzOltkTSxOZ3QsWGd0XSxwaXBlczpbRk1dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7ZmxleDpub25lO2hlaWdodDo0MnB4O21hcmdpbi1ib3R0b206LTFweDtwYWRkaW5nOjAgMTZweDtwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRleDoxO2JveC1zaGFkb3c6MHB4IDJweCA0cHggMHB4IHJnYmEoMCwwLDAsLjE1KX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjBweCAycHggNHB4IDBweCByZ2JhKDI1NSwyNTUsMjU1LC4xNSl9Lmdyb3VwLXRleHRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpiYXNlbGluZX0uZ3JvdXAtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0uZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2MTYxNjE7bWFyZ2luLWxlZnQ6NnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jYXJkLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfW1ldHJpY3MtZW1wdHktdGFnLW1hdGNoW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtc3R5bGU6aXRhbGljO3BhZGRpbmc6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIG1ldHJpY3MtZW1wdHktdGFnLW1hdGNoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWV0cmljcy1lbXB0eS10YWctbWF0Y2hbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChRZ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1maWx0ZXJlZC12aWV3LWNvbXBvbmVudCIsdGVtcGxhdGU6J1xuICAgIDxkaXYgY2xhc3M9Imdyb3VwLXRvb2xiYXIiPlxuICAgICAgPHNwYW4gY2xhc3M9Imdyb3VwLXRleHQiPlxuICAgICAgICA8c3BhbiBjbGFzcz0iZ3JvdXAtdGl0bGUiIGFyaWEtcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMyJcbiAgICAgICAgICA+VGFncyBtYXRjaGluZyBmaWx0ZXI8L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3BhbiAqbmdJZj0iY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGggPiAxIiBjbGFzcz0iZ3JvdXAtY2FyZC1jb3VudCJcbiAgICAgICAgICA+e3sgY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGggfCBudW1iZXIgfX0gY2FyZHM8L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxtZXRyaWNzLWVtcHR5LXRhZy1tYXRjaFxuICAgICAgKm5nSWY9ImlzRW1wdHlNYXRjaCJcbiAgICAgIGNsYXNzPSJ3YXJuIlxuICAgID48L21ldHJpY3MtZW1wdHktdGFnLW1hdGNoPlxuICAgIDxtZXRyaWNzLWNhcmQtZ3JpZFxuICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJjYXJkSWRzV2l0aE1ldGFkYXRhIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICA+PC9tZXRyaWNzLWNhcmQtZ3JpZD5cbiAgJyxzdHlsZVVybHM6WyJmaWx0ZXJlZF92aWV3X2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtpc0VtcHR5TWF0Y2g6W3t0eXBlOnh5fV0sY2FyZE9ic2VydmVyOlt7dHlwZTp4eX1dLGNhcmRJZHNXaXRoTWV0YWRhdGE6W3t0eXBlOnh5fV19KTtjbGFzcyAkZ3R7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuY2FyZElkc1dpdGhNZXRhZGF0YSQ9dGhpcy5zdG9yZS5zZWxlY3Qoamd0KS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KHFUKSksSXQoKChbdCxlXSk9PmUuc2l6ZT90LmZpbHRlcigodD0+ZS5oYXModC5wbHVnaW4pKSk6dCkpLGZlKHRoaXMuc3RvcmUuc2VsZWN0KEJUKSksZ2UoMjAwKSxJdCgoKFt0LGVdKT0+e3RyeXtyZXR1cm57Y2FyZExpc3Q6dCxyZWdleDpuZXcgUmVnRXhwKGUsImkiKX19Y2F0Y2goZSl7cmV0dXJue2NhcmRMaXN0OnQscmVnZXg6bnVsbH19fSkpLGNlKCgoe3JlZ2V4OnR9KT0+bnVsbCE9PXQpKSxJdCgoKHtjYXJkTGlzdDp0LHJlZ2V4OmV9KT0+dC5maWx0ZXIoKCh7dGFnOnR9KT0+ZS50ZXN0KHQpKSkpKSxNZSgoKHQsZSk9PnQubGVuZ3RoPT09ZS5sZW5ndGgmJnQuZXZlcnkoKCh0LG4pPT50LmNhcmRJZD09PWVbbl0uY2FyZElkKSkpKSxFZSgpLE5lKFtdKSksdGhpcy5pc0VtcHR5TWF0Y2gkPXRoaXMuY2FyZElkc1dpdGhNZXRhZGF0YSQucGlwZShmZSh0aGlzLnN0b3JlLnNlbGVjdChqZ3QpKSxJdCgoKFt0LGVdKT0+Qm9vbGVhbihlLmxlbmd0aCkmJjA9PT10Lmxlbmd0aCkpKX19ZnVuY3Rpb24gdGh0KHQsZSl7aWYoMSZ0JiYoUm0oMCwibWF0LW9wdGlvbiIsMiksa3UoMSksQW0oKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0O0RtKCJ2YWx1ZSIsdC52YWx1ZSkoImRpc2FibGVkIix0LmRpc2FibGVkKSxyYygxKSxEdSgiICIsdC5kaXNwbGF5VGV4dCwiICIpfX0kZ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fCRndCkoU20oSXcpKX0sJGd0Lsm1Y21wPXRvKHt0eXBlOiRndCxzZWxlY3RvcnM6W1sibWV0cmljcy1maWx0ZXJlZC12aWV3Il1dLGlucHV0czp7Y2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifSxkZWNsczozLHZhcnM6Nyxjb25zdHM6W1szLCJpc0VtcHR5TWF0Y2giLCJjYXJkSWRzV2l0aE1ldGFkYXRhIiwiY2FyZE9ic2VydmVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJtZXRyaWNzLWZpbHRlcmVkLXZpZXctY29tcG9uZW50IiwwKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIikpLDImZSYmRG0oImlzRW1wdHlNYXRjaCIsVGgoMSwzLG4uaXNFbXB0eU1hdGNoJCkpKCJjYXJkSWRzV2l0aE1ldGFkYXRhIixUaCgyLDUsbi5jYXJkSWRzV2l0aE1ldGFkYXRhJCkpKCJjYXJkT2JzZXJ2ZXIiLG4uY2FyZE9ic2VydmVyKX0sZGlyZWN0aXZlczpbUWd0XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoJGd0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtZmlsdGVyZWQtdmlldyIsdGVtcGxhdGU6J1xuICAgIDxtZXRyaWNzLWZpbHRlcmVkLXZpZXctY29tcG9uZW50XG4gICAgICBbaXNFbXB0eU1hdGNoXT0iaXNFbXB0eU1hdGNoJCB8IGFzeW5jIlxuICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJjYXJkSWRzV2l0aE1ldGFkYXRhJCB8IGFzeW5jIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICA+PC9tZXRyaWNzLWZpbHRlcmVkLXZpZXctY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSkse2NhcmRPYnNlcnZlcjpbe3R5cGU6eHl9XX0pO2NsYXNzIGVodHtjb25zdHJ1Y3Rvcigpe3RoaXMudmFsdWU9IiIsdGhpcy5vcHRpb25zPVtdLHRoaXMuc2VsZWN0aW9uQ2hhbmdlPW5ldyBMaH19ZnVuY3Rpb24gbmh0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwibWF0LXNsaWRlciIsMjYpLFZtKCJpbnB1dCIsKGZ1bmN0aW9uIGUobil7cmV0dXJuIGhpKHQpLFltKDIpLm9uU3RlcFN0YXJ0Q2hhbmdlZChuLnZhbHVlKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgyKTtEbSgiZGlzYWJsZWQiLCF0LnNlbGVjdFRpbWVFbmFibGVkKSgibWluIix0LnN0ZXBNaW5NYXgubWluKSgibWF4Iix0LnN0ZXBNaW5NYXgubWF4KSgic3RlcCIsMSkoInZhbHVlIixudWxsPT10LnNlbGVjdGVkVGltZT9udWxsOnQuc2VsZWN0ZWRUaW1lLnN0YXJ0LnN0ZXApKCJ0aHVtYkxhYmVsIiwhMCl9fWZ1bmN0aW9uIG9odCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsInRiLXJhbmdlLWlucHV0IiwyNyksVm0oInZhbHVlIiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oMikub25TdGVwUmFuZ2VDaGFuZ2VkKG4pfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJtaW4iLHQuc3RlcE1pbk1heC5taW4pKCJtYXgiLHQuc3RlcE1pbk1heC5tYXgpKCJsb3dlclZhbHVlIixudWxsPT10LnNlbGVjdGVkVGltZT9udWxsOnQuc2VsZWN0ZWRUaW1lLnN0YXJ0LnN0ZXApKCJ1cHBlclZhbHVlIixudWxsPT10LnNlbGVjdGVkVGltZXx8bnVsbD09dC5zZWxlY3RlZFRpbWUuZW5kP251bGw6dC5zZWxlY3RlZFRpbWUuZW5kLnN0ZXApLGpwKCJkaXNhYmxlZCIsIXQuc2VsZWN0VGltZUVuYWJsZWQpfX1mdW5jdGlvbiBpaHQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDIxKSxSbSgxLCJsYWJlbCIpLGt1KDIsIkxpbmsgdmlzdWFsaXphdGlvbiBieSBzdGVwIiksQW0oKSxSbSgzLCJkaXYiLDIyKSxSbSg0LCJkaXYiKSxSbSg1LCJtYXQtY2hlY2tib3giLDE1KSxWbSgiY2hhbmdlIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLnNlbGVjdFRpbWVFbmFibGVUb2dnbGVkLmVtaXQoKX0pKSxrdSg2LCJFbmFibGVkIiksQW0oKSxBbSgpLFJtKDcsImRpdiIpLFJtKDgsIm1hdC1jaGVja2JveCIsMTUpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkudXNlUmFuZ2VTZWxlY3RUaW1lVG9nZ2xlZC5lbWl0KCl9KSksa3UoOSwiVXNlIHJhbmdlIiksQW0oKSxBbSgpLFJtKDEwLCJkaXYiLDIzKSxRcCgxMSxuaHQsMSw2LCJtYXQtc2xpZGVyIiwyNCksUXAoMTIsb2h0LDEsNSwibmctdGVtcGxhdGUiLG51bGwsMjUsaWIpLEFtKCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD0kcCgxMyksZT1ZbSgpO3JjKDUpLERtKCJjaGVja2VkIixlLnNlbGVjdFRpbWVFbmFibGVkKSxyYygzKSxEbSgiY2hlY2tlZCIsZS51c2VSYW5nZVNlbGVjdFRpbWUpLHJjKDMpLERtKCJuZ0lmIiwhZS51c2VSYW5nZVNlbGVjdFRpbWUpKCJuZ0lmRWxzZSIsdCl9fWZ1bmN0aW9uIGFodCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsInNlY3Rpb24iLDI4KSxSbSgxLCJoMyIsMSksa3UoMiwiSW1hZ2VzIiksQW0oKSxSbSgzLCJkaXYiLDI5KSxSbSg0LCJkaXYiLDMwKSxrdSg1LCJCcmlnaHRuZXNzIiksQW0oKSxSbSg2LCJkaXYiLDkpLFJtKDcsIm1hdC1zbGlkZXIiLDMxKSxWbSgiaW5wdXQiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLmltYWdlQnJpZ2h0bmVzc1NsaWRlckNoYW5nZWQkLmVtaXQobi52YWx1ZSl9KSksQW0oKSxSbSg4LCJidXR0b24iLDMyKSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkuaW1hZ2VCcmlnaHRuZXNzUmVzZXQuZW1pdCgpfSkpLFRtKDksIm1hdC1pY29uIiwzMyksQW0oKSxBbSgpLEFtKCksUm0oMTAsImRpdiIsMzQpLFJtKDExLCJkaXYiLDM1KSxrdSgxMiwiQ29udHJhc3QiKSxBbSgpLFJtKDEzLCJkaXYiLDkpLFJtKDE0LCJtYXQtc2xpZGVyIiwzNiksVm0oImlucHV0IiwoZnVuY3Rpb24gZShuKXtyZXR1cm4gaGkodCksWW0oKS5pbWFnZUNvbnRyYXN0U2xpZGVyQ2hhbmdlZCQuZW1pdChuLnZhbHVlKX0pKSxBbSgpLFJtKDE1LCJidXR0b24iLDM3KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkuaW1hZ2VDb250cmFzdFJlc2V0LmVtaXQoKX0pKSxUbSgxNiwibWF0LWljb24iLDMzKSxBbSgpLEFtKCksQW0oKSxSbSgxNywiZGl2IiwzOCksUm0oMTgsIm1hdC1jaGVja2JveCIsMTUpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKG4pe3JldHVybiBoaSh0KSxZbSgpLmltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkLmVtaXQobi5jaGVja2VkKX0pKSxrdSgxOSwiU2hvdyBhY3R1YWwgaW1hZ2Ugc2l6ZSIpLEFtKCksQW0oKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO3JjKDcpLERtKCJtYXgiLDJlMykoIm1pbiIsMCkoInN0ZXAiLDEwKSgidmFsdWUiLHQuaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaSkoInRodW1iTGFiZWwiLCEwKSgiZGlzcGxheVdpdGgiLHQuZm9ybWF0TWlsbGlUb1plcm90aCkscmMoNyksRG0oIm1heCIsNWUzKSgibWluIiwwKSgic3RlcCIsMTApKCJ2YWx1ZSIsdC5pbWFnZUNvbnRyYXN0SW5NaWxsaSkoInRodW1iTGFiZWwiLCEwKSgiZGlzcGxheVdpdGgiLHQuZm9ybWF0TWlsbGlUb1plcm90aCkscmMoNCksRG0oImNoZWNrZWQiLHQuaW1hZ2VTaG93QWN0dWFsU2l6ZSl9fWVodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZWh0KX0sZWh0Lsm1Y21wPXRvKHt0eXBlOmVodCxzZWxlY3RvcnM6W1sidGItZHJvcGRvd24iXV0saW5wdXRzOnt2YWx1ZToidmFsdWUiLG9wdGlvbnM6Im9wdGlvbnMifSxvdXRwdXRzOntzZWxlY3Rpb25DaGFuZ2U6InNlbGVjdGlvbkNoYW5nZSJ9LGRlY2xzOjIsdmFyczoyLGNvbnN0czpbWzMsInZhbHVlIiwic2VsZWN0aW9uQ2hhbmdlIl0sWzMsInZhbHVlIiwiZGlzYWJsZWQiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJ2YWx1ZSIsImRpc2FibGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtYXQtc2VsZWN0IiwwKSxWbSgic2VsZWN0aW9uQ2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5zZWxlY3Rpb25DaGFuZ2UuZW1pdChlLnZhbHVlKX0pKSxRcCgxLHRodCwyLDMsIm1hdC1vcHRpb24iLDEpLEFtKCkpLDImZSYmKERtKCJ2YWx1ZSIsbi52YWx1ZSkscmMoMSksRG0oIm5nRm9yT2YiLG4ub3B0aW9ucykpfSxkaXJlY3RpdmVzOltBRyxsTSxCSF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9bWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjOGU5OGEzO2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjZweH1tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1c3tvdXRsaW5lLWNvbG9yOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtvdXRsaW5lLXN0eWxlOmF1dG99ICAubWF0LXNlbGVjdC1wYW5lbHttYXgtd2lkdGg6NzB2d30gIG1hdC1vcHRpb24ubWF0LW9wdGlvbntoZWlnaHQ6YXV0b30gIC5tYXQtb3B0aW9uLXRleHR7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtYnJlYWs6YnJlYWstYWxsfSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChlaHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGItZHJvcGRvd24iLHRlbXBsYXRlOidcbiAgICA8bWF0LXNlbGVjdFxuICAgICAgW3ZhbHVlXT0idmFsdWUiXG4gICAgICAoc2VsZWN0aW9uQ2hhbmdlKT0ic2VsZWN0aW9uQ2hhbmdlLmVtaXQoJGV2ZW50LnZhbHVlKSJcbiAgICA+XG4gICAgICA8bWF0LW9wdGlvblxuICAgICAgICAqbmdGb3I9ImxldCBvcHRpb24gb2Ygb3B0aW9ucyJcbiAgICAgICAgW3ZhbHVlXT0ib3B0aW9uLnZhbHVlIlxuICAgICAgICBbZGlzYWJsZWRdPSJvcHRpb24uZGlzYWJsZWQiXG4gICAgICA+XG4gICAgICAgIHt7IG9wdGlvbi5kaXNwbGF5VGV4dCB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgJyxzdHlsZVVybHM6WyJkcm9wZG93bl9jb21wb25lbnQuY3NzIl19XX1dLG51bGwse3ZhbHVlOlt7dHlwZTp4eX1dLG9wdGlvbnM6W3t0eXBlOnh5fV0sc2VsZWN0aW9uQ2hhbmdlOlt7dHlwZTpPeX1dfSk7Y2xhc3Mgcmh0e2NvbnN0cnVjdG9yKHQpe3RoaXMubG9jYWxlPXQsdGhpcy5zZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZD1uZXcgTGgsdGhpcy51c2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkPW5ldyBMaCx0aGlzLnNlbGVjdFRpbWVDaGFuZ2VkPW5ldyBMaCx0aGlzLlRvb2x0aXBTb3J0RHJvcGRvd25PcHRpb25zPVt7dmFsdWU6YkEuREVGQVVMVCxkaXNwbGF5VGV4dDoiRGVmYXVsdCJ9LHt2YWx1ZTpiQS5BU0NFTkRJTkcsZGlzcGxheVRleHQ6IkFzY2VuZGluZyJ9LHt2YWx1ZTpiQS5ERVNDRU5ESU5HLGRpc3BsYXlUZXh0OiJEZXNjZW5kaW5nIn0se3ZhbHVlOmJBLk5FQVJFU1QsZGlzcGxheVRleHQ6Ik5lYXJlc3QifV0sdGhpcy50b29sdGlwU29ydENoYW5nZWQ9bmV3IExoLHRoaXMuaWdub3JlT3V0bGllcnNDaGFuZ2VkPW5ldyBMaCx0aGlzLlhBeGlzVHlwZT15QSx0aGlzLlhBeGlzVHlwZURyb3Bkb3duT3B0aW9ucz1be3ZhbHVlOnlBLlNURVAsZGlzcGxheVRleHQ6IlN0ZXAifSx7dmFsdWU6eUEuUkVMQVRJVkUsZGlzcGxheVRleHQ6IlJlbGF0aXZlIn0se3ZhbHVlOnlBLldBTExfVElNRSxkaXNwbGF5VGV4dDoiV2FsbCJ9XSx0aGlzLnhBeGlzVHlwZUNoYW5nZWQ9bmV3IExoLHRoaXMuSGlzdG9ncmFtTW9kZURyb3Bkb3duT3B0aW9ucz1be3ZhbHVlOnBFLk9GRlNFVCxkaXNwbGF5VGV4dDoiT2Zmc2V0In0se3ZhbHVlOnBFLk9WRVJMQVksZGlzcGxheVRleHQ6Ik92ZXJsYXkifV0sdGhpcy5oaXN0b2dyYW1Nb2RlQ2hhbmdlZD1uZXcgTGgsdGhpcy5NQVhfU01PT1RISU5HX1ZBTFVFPS45OTksdGhpcy5NQVhfU01PT1RISU5HX1NMSURFUl9WQUxVRT0uOTksdGhpcy5zY2FsYXJTbW9vdGhpbmdDb250cm9sQ2hhbmdlZCQ9bmV3IExoLHRoaXMuc2NhbGFyU21vb3RoaW5nQ2hhbmdlZD10aGlzLnNjYWxhclNtb290aGluZ0NvbnRyb2xDaGFuZ2VkJC5waXBlKGRlKDI1MCkpLHRoaXMuc2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQ9bmV3IExoLHRoaXMuaW1hZ2VCcmlnaHRuZXNzU2xpZGVyQ2hhbmdlZCQ9bmV3IExoLHRoaXMuaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQ9dGhpcy5pbWFnZUJyaWdodG5lc3NTbGlkZXJDaGFuZ2VkJC5waXBlKGRlKDI1MCkpLHRoaXMuaW1hZ2VCcmlnaHRuZXNzUmVzZXQ9bmV3IExoLHRoaXMuaW1hZ2VDb250cmFzdFNsaWRlckNoYW5nZWQkPW5ldyBMaCx0aGlzLmltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZD10aGlzLmltYWdlQ29udHJhc3RTbGlkZXJDaGFuZ2VkJC5waXBlKGRlKDI1MCkpLHRoaXMuaW1hZ2VDb250cmFzdFJlc2V0PW5ldyBMaCx0aGlzLmltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkPW5ldyBMaH1vblNjYWxhclNtb290aGluZ0lucHV0KHQpe2NvbnN0IGU9dC50YXJnZXQ7aWYoIWUudmFsdWUpcmV0dXJuO2NvbnN0IG49TWF0aC5taW4oTWF0aC5tYXgoMCxwYXJzZUZsb2F0KGUudmFsdWUpKSwuOTk5KTtuIT09cGFyc2VGbG9hdChlLnZhbHVlKSYmKGUudmFsdWU9U3RyaW5nKG4pKSx0aGlzLnNjYWxhclNtb290aGluZ0NvbnRyb2xDaGFuZ2VkJC5lbWl0KG4pfWZvcm1hdE1pbGxpVG9aZXJvdGgodCl7cmV0dXJuIFFDKHQvMWUzLHRoaXMubG9jYWxlfHwiZW4tVVMiLCIxLjAtMiIpfW9uU3RlcFN0YXJ0Q2hhbmdlZCh0KXt0aGlzLnNlbGVjdFRpbWVDaGFuZ2VkLmVtaXQoe3N0YXJ0OntzdGVwOnR9LGVuZDpudWxsfSl9b25TdGVwUmFuZ2VDaGFuZ2VkKHtsb3dlclZhbHVlOnQsdXBwZXJWYWx1ZTplfSl7dGhpcy5zZWxlY3RUaW1lQ2hhbmdlZC5lbWl0KHtzdGFydDp7c3RlcDp0fSxlbmQ6e3N0ZXA6ZX19KX19cmh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxyaHQpKFNtKFd5KSl9LHJodC7JtWNtcD10byh7dHlwZTpyaHQsc2VsZWN0b3JzOltbIm1ldHJpY3MtZGFzaGJvYXJkLXNldHRpbmdzLWNvbXBvbmVudCJdXSxpbnB1dHM6e2lzTGlua2VkVGltZUZlYXR1cmVFbmFibGVkOiJpc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCIsc2VsZWN0VGltZUVuYWJsZWQ6InNlbGVjdFRpbWVFbmFibGVkIix1c2VSYW5nZVNlbGVjdFRpbWU6InVzZVJhbmdlU2VsZWN0VGltZSIsc2VsZWN0ZWRUaW1lOiJzZWxlY3RlZFRpbWUiLHN0ZXBNaW5NYXg6InN0ZXBNaW5NYXgiLGlzSW1hZ2VTdXBwb3J0RW5hYmxlZDoiaXNJbWFnZVN1cHBvcnRFbmFibGVkIix0b29sdGlwU29ydDoidG9vbHRpcFNvcnQiLGlnbm9yZU91dGxpZXJzOiJpZ25vcmVPdXRsaWVycyIseEF4aXNUeXBlOiJ4QXhpc1R5cGUiLGhpc3RvZ3JhbU1vZGU6Imhpc3RvZ3JhbU1vZGUiLHNjYWxhclNtb290aGluZzoic2NhbGFyU21vb3RoaW5nIixzY2FsYXJQYXJ0aXRpb25YOiJzY2FsYXJQYXJ0aXRpb25YIixpbWFnZUJyaWdodG5lc3NJbk1pbGxpOiJpbWFnZUJyaWdodG5lc3NJbk1pbGxpIixpbWFnZUNvbnRyYXN0SW5NaWxsaToiaW1hZ2VDb250cmFzdEluTWlsbGkiLGltYWdlU2hvd0FjdHVhbFNpemU6ImltYWdlU2hvd0FjdHVhbFNpemUifSxvdXRwdXRzOntzZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZDoic2VsZWN0VGltZUVuYWJsZVRvZ2dsZWQiLHVzZVJhbmdlU2VsZWN0VGltZVRvZ2dsZWQ6InVzZVJhbmdlU2VsZWN0VGltZVRvZ2dsZWQiLHNlbGVjdFRpbWVDaGFuZ2VkOiJzZWxlY3RUaW1lQ2hhbmdlZCIsdG9vbHRpcFNvcnRDaGFuZ2VkOiJ0b29sdGlwU29ydENoYW5nZWQiLGlnbm9yZU91dGxpZXJzQ2hhbmdlZDoiaWdub3JlT3V0bGllcnNDaGFuZ2VkIix4QXhpc1R5cGVDaGFuZ2VkOiJ4QXhpc1R5cGVDaGFuZ2VkIixoaXN0b2dyYW1Nb2RlQ2hhbmdlZDoiaGlzdG9ncmFtTW9kZUNoYW5nZWQiLHNjYWxhclNtb290aGluZ0NoYW5nZWQ6InNjYWxhclNtb290aGluZ0NoYW5nZWQiLHNjYWxhclBhcnRpdGlvblhUb2dnbGVkOiJzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCIsaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQ6ImltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkIixpbWFnZUJyaWdodG5lc3NSZXNldDoiaW1hZ2VCcmlnaHRuZXNzUmVzZXQiLGltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZDoiaW1hZ2VDb250cmFzdEluTWlsbGlDaGFuZ2VkIixpbWFnZUNvbnRyYXN0UmVzZXQ6ImltYWdlQ29udHJhc3RSZXNldCIsaW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQ6ImltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkIn0sZGVjbHM6MzYsdmFyczoxNyxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdCxlO3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJSZXNldCBicmlnaHRuZXNzIik6JGxvY2FsaXplYDpBIGJ1dHRvbiB0byByZXNldCB0aGUgaW1hZ2UgYnJpZ2h0bmVzcyBzZXR0aW5n4pCfYzQ4MmIzYTQ3ZWEwOTc1ZmE4YmUwMWFmYjNmYmVjOWI3NjYyOGJkN+KQnzExODkxNjE4NTcyNDAzNzgzOTU6UmVzZXQgYnJpZ2h0bmVzc2AsZT0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiUmVzZXQgY29udHJhc3QiKTokbG9jYWxpemVgOkEgYnV0dG9uIHRvIHJlc2V0IHRoZSBpbWFnZSBjb250cmFzdCBzZXR0aW5n4pCfZWQ3MTJhOGI5MjcwNDFiZTE1MjUyYjI5ZWI1MjFlYmIxMzc0YmFkOOKQnzUzNzA3MDMzNDI5MjM2MTE5NTU6UmVzZXQgY29udHJhc3RgLFtbMSwiZ2VuZXJhbCJdLFsxLCJzZWN0aW9uLXRpdGxlIl0sWzEsImNvbnRyb2wtcm93IiwieC1heGlzLXR5cGUiXSxbImlkIiwieC1heGlzLXR5cGUtbGFiZWwiLDEsImNvbnRyb2wtbmFtZSJdLFszLCJ2YWx1ZSIsIm9wdGlvbnMiLCJzZWxlY3Rpb25DaGFuZ2UiXSxbImNsYXNzIiwiY29udHJvbC1yb3cgbGlua2VkLXRpbWUiLDQsIm5nSWYiXSxbMSwic2NhbGFycyJdLFsxLCJjb250cm9sLXJvdyIsInNjYWxhcnMtc21vb3RoaW5nIl0sWyJpZCIsInNjYWxhcnMtc21vb3RoaW5nLWxhYmVsIiwxLCJjb250cm9sLW5hbWUiXSxbMSwic2xpZGVyLXJvdyJdLFsiYXJpYS1sYWJlbGxlZGJ5Iiwic2NhbGFycy1zbW9vdGhpbmctbGFiZWwiLCJjb2xvciIsInByaW1hcnkiLDMsIm1heCIsIm1pbiIsInN0ZXAiLCJ2YWx1ZSIsInRodW1iTGFiZWwiLCJpbnB1dCJdLFsiYXJpYS1sYWJlbGxlZGJ5Iiwic2NhbGFycy1zbW9vdGhpbmctbGFiZWwiLCJ0eXBlIiwibnVtYmVyIiwibWluIiwiMCIsInN0ZXAiLCIwLjAwMSIsMSwic2xpZGVyLWlucHV0IiwzLCJtYXgiLCJ2YWx1ZSIsImlucHV0Il0sWzEsImNvbnRyb2wtcm93IiwidG9vbHRpcC1zb3J0Il0sWzEsImNvbnRyb2wtbmFtZSJdLFsxLCJjb250cm9sLXJvdyIsInNjYWxhcnMtaWdub3JlLW91dGxpZXJzIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbMSwiY29udHJvbC1yb3ciLCJzY2FsYXJzLXBhcnRpdGlvbi14Il0sWyJzdmdJY29uIiwiaGVscF9vdXRsaW5lXzI0cHgiLCJ0aXRsZSIsIk5vbi1tb25vdG9uaWMgc3RlcHMgY2FuIG9jY3VyIHdoZW4gcmV1c2luZyBhIGxvZ2RpciB3aXRoIG11bHRpcGxlIHN1bW1hcnkgd3JpdGVycyBhbmQgb3ZlcmxhcHBpbmcgc3RlcHMuIExpbmUgY2hhcnRzLCB3aXRob3V0IHRoaXMgb3B0aW9uIGVuYWJsZWQsIGNhbiBhcHBlYXIgemlnIHphZ2dlZC4gVGhpcyBpcyBjb21tb24gd2hlbiByZXN0YXJ0aW5nIGZyb20gYSBjaGVja3BvaW50LlxuXG5XaGVuIGVuYWJsZWQsIGEgbm9uLW1vbm90b25pYyB0aW1lIHNlcmllcyBjb21wb3NlZCBvZiBOIG1vbm90b25pYyBwaWVjZXMgd2lsbCBiZSBzaG93biBhcyBOIG1vbm90b25pYyBsaW5lcy4iLDEsImluZm8iXSxbMSwiSGlzdG9ncmFtcyJdLFsxLCJjb250cm9sLXJvdyIsImhpc3RvZ3JhbS1tb2RlIl0sWyJjbGFzcyIsImltYWdlIiw0LCJuZ0lmIl0sWzEsImNvbnRyb2wtcm93IiwibGlua2VkLXRpbWUiXSxbMSwiY29udHJvbHMiXSxbMSwic3RlcC1zZWxlY3RvciJdLFsiY29sb3IiLCJwcmltYXJ5IiwzLCJkaXNhYmxlZCIsIm1pbiIsIm1heCIsInN0ZXAiLCJ2YWx1ZSIsInRodW1iTGFiZWwiLCJpbnB1dCIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJyYW5nZSIsIiJdLFsiY29sb3IiLCJwcmltYXJ5IiwzLCJkaXNhYmxlZCIsIm1pbiIsIm1heCIsInN0ZXAiLCJ2YWx1ZSIsInRodW1iTGFiZWwiLCJpbnB1dCJdLFszLCJtaW4iLCJtYXgiLCJsb3dlclZhbHVlIiwidXBwZXJWYWx1ZSIsInZhbHVlIl0sWzEsImltYWdlIl0sWzEsImNvbnRyb2wtcm93IiwiaW1hZ2UtYnJpZ2h0bmVzcyJdLFsiaWQiLCJpbWFnZS1icmlnaHRuZXNzLWxhYmVsIiwxLCJjb250cm9sLW5hbWUiXSxbImFyaWEtbGFiZWxsZWRieSIsImltYWdlLWJyaWdodG5lc3MtbGFiZWwiLCJjb2xvciIsInByaW1hcnkiLDMsIm1heCIsIm1pbiIsInN0ZXAiLCJ2YWx1ZSIsInRodW1iTGFiZWwiLCJkaXNwbGF5V2l0aCIsImlucHV0Il0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LCJ0aXRsZSIsIlJlc2V0IGJyaWdodG5lc3MiLDEsInJlc2V0LWJ1dHRvbiIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJzZXR0aW5nc19iYWNrdXBfcmVzdG9yZV8yNHB4Il0sWzEsImNvbnRyb2wtcm93IiwiaW1hZ2UtY29udHJhc3QiXSxbImlkIiwiaW1hZ2UtY29uc3RyYXN0LWxhYmVsIiwxLCJjb250cm9sLW5hbWUiXSxbImFyaWEtbGFiZWxsZWRieSIsImltYWdlLWNvbnN0cmFzdC1sYWJlbCIsImNvbG9yIiwicHJpbWFyeSIsMywibWF4IiwibWluIiwic3RlcCIsInZhbHVlIiwidGh1bWJMYWJlbCIsImRpc3BsYXlXaXRoIiwiaW5wdXQiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGUsInRpdGxlIiwiUmVzZXQgY29udHJhc3QiLDEsInJlc2V0LWJ1dHRvbiIsMywiY2xpY2siXSxbMSwiY29udHJvbC1yb3ciLCJpbWFnZS1zaG93LWFjdHVhbC1zaXplIl1dfSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwic2VjdGlvbiIsMCksUm0oMSwiaDMiLDEpLGt1KDIsIkdlbmVyYWwiKSxBbSgpLFJtKDMsImRpdiIsMiksUm0oNCwiZGl2IiwzKSxrdSg1LCJIb3Jpem9udGFsIEF4aXMiKSxBbSgpLFJtKDYsInRiLWRyb3Bkb3duIiw0KSxWbSgic2VsZWN0aW9uQ2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi54QXhpc1R5cGVDaGFuZ2VkLmVtaXQoZSl9KSksQW0oKSxBbSgpLFFwKDcsaWh0LDE0LDQsImRpdiIsNSksQW0oKSxSbSg4LCJzZWN0aW9uIiw2KSxSbSg5LCJoMyIsMSksa3UoMTAsIlNjYWxhcnMiKSxBbSgpLFJtKDExLCJkaXYiLDcpLFJtKDEyLCJkaXYiLDgpLGt1KDEzLCJTbW9vdGhpbmciKSxBbSgpLFJtKDE0LCJkaXYiLDkpLFJtKDE1LCJtYXQtc2xpZGVyIiwxMCksVm0oImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5zY2FsYXJTbW9vdGhpbmdDb250cm9sQ2hhbmdlZCQuZW1pdChlLnZhbHVlKX0pKSxBbSgpLFJtKDE2LCJpbnB1dCIsMTEpLFZtKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TY2FsYXJTbW9vdGhpbmdJbnB1dChlKX0pKSxBbSgpLEFtKCksQW0oKSxSbSgxNywiZGl2IiwxMiksUm0oMTgsImRpdiIsMTMpLGt1KDE5LCJUb29sdGlwIHNvcnRpbmcgbWV0aG9kIiksQW0oKSxSbSgyMCwidGItZHJvcGRvd24iLDQpLFZtKCJzZWxlY3Rpb25DaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLnRvb2x0aXBTb3J0Q2hhbmdlZC5lbWl0KGUpfSkpLEFtKCksQW0oKSxSbSgyMSwiZGl2IiwxNCksUm0oMjIsIm1hdC1jaGVja2JveCIsMTUpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmlnbm9yZU91dGxpZXJzQ2hhbmdlZC5lbWl0KGUuY2hlY2tlZCl9KSksa3UoMjMsIklnbm9yZSBvdXRsaWVycyBpbiBjaGFydCBzY2FsaW5nIiksQW0oKSxBbSgpLFJtKDI0LCJkaXYiLDE2KSxSbSgyNSwibWF0LWNoZWNrYm94IiwxNSksVm0oImNoYW5nZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5zY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZC5lbWl0KCl9KSksa3UoMjYsIlBhcnRpdGlvbiBub24tbW9ub3RvbmljIFggYXhpcyIpLEFtKCksVG0oMjcsIm1hdC1pY29uIiwxNyksQW0oKSxBbSgpLFJtKDI4LCJzZWN0aW9uIiwxOCksUm0oMjksImgzIiwxKSxrdSgzMCwiSGlzdG9ncmFtcyIpLEFtKCksUm0oMzEsImRpdiIsMTkpLFJtKDMyLCJkaXYiLDEzKSxrdSgzMywiTW9kZSIpLEFtKCksUm0oMzQsInRiLWRyb3Bkb3duIiw0KSxWbSgic2VsZWN0aW9uQ2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oaXN0b2dyYW1Nb2RlQ2hhbmdlZC5lbWl0KGUpfSkpLEFtKCksQW0oKSxBbSgpLFFwKDM1LGFodCwyMCwxMywic2VjdGlvbiIsMjApKSwyJmUmJihyYyg2KSxEbSgidmFsdWUiLG4ueEF4aXNUeXBlKSgib3B0aW9ucyIsbi5YQXhpc1R5cGVEcm9wZG93bk9wdGlvbnMpLHJjKDEpLERtKCJuZ0lmIixuLmlzTGlua2VkVGltZUZlYXR1cmVFbmFibGVkJiZuLnhBeGlzVHlwZT09bi5YQXhpc1R5cGUuU1RFUCkscmMoOCksRG0oIm1heCIsbi5NQVhfU01PT1RISU5HX1NMSURFUl9WQUxVRSkoIm1pbiIsMCkoInN0ZXAiLC4wMSkoInZhbHVlIixuLnNjYWxhclNtb290aGluZykoInRodW1iTGFiZWwiLCEwKSxyYygxKSxEbSgibWF4IixuLk1BWF9TTU9PVEhJTkdfVkFMVUUpKCJ2YWx1ZSIsbi5zY2FsYXJTbW9vdGhpbmcpLHJjKDQpLERtKCJ2YWx1ZSIsbi50b29sdGlwU29ydCkoIm9wdGlvbnMiLG4uVG9vbHRpcFNvcnREcm9wZG93bk9wdGlvbnMpLHJjKDIpLERtKCJjaGVja2VkIixuLmlnbm9yZU91dGxpZXJzKSxyYygzKSxEbSgiY2hlY2tlZCIsbi5zY2FsYXJQYXJ0aXRpb25YKSxyYyg5KSxEbSgidmFsdWUiLG4uaGlzdG9ncmFtTW9kZSkoIm9wdGlvbnMiLG4uSGlzdG9ncmFtTW9kZURyb3Bkb3duT3B0aW9ucykscmMoMSksRG0oIm5nSWYiLG4uaXNJbWFnZVN1cHBvcnRFbmFibGVkKSl9LGRpcmVjdGl2ZXM6W2VodCxkTSxSWCxPWSxEVyxEMSxYSF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZvbnQtc2l6ZToxMnB4fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO3BhZGRpbmc6MTZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBzZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0uc2VjdGlvbi10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzIxMjEyMTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0Om5vcm1hbDttYXJnaW46MCAwIDEycHggMH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuc2VjdGlvbi10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zZWN0aW9uLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmZmfXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRyb2wtcm93W19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MTJweH0uY29udHJvbC1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tYm90dG9tOjhweH0uc2xpZGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MjhweH0uc2xpZGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICAucmVzZXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDo2cHh9LnNsaWRlci1yb3dbX25nY29udGVudC0lQ09NUCVdICAgLnNsaWRlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O2JvcmRlcjoxcHggc29saWQgIzhlOThhMztib3JkZXItcmFkaXVzOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJpdDtoZWlnaHQ6MTAwJTttYXJnaW4tbGVmdDoxMnB4O3BhZGRpbmc6MCA0cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnNsaWRlci1yb3dbX25nY29udGVudC0lQ09NUCVdICAgLnNsaWRlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zbGlkZXItaW5wdXRbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjojNDI1MDY2fS5zY2FsYXJzLXNtb290aGluZ1tfbmdjb250ZW50LSVDT01QJV0gICAuc2xpZGVyLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4Om5vbmU7d2lkdGg6NWVtfS5zY2FsYXJzLXBhcnRpdGlvbi14W19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS5zY2FsYXJzLXBhcnRpdGlvbi14W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTVweDttYXJnaW4tbGVmdDo1cHg7d2lkdGg6MTVweH1tYXQtc2xpZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4OjE7bWFyZ2luLWxlZnQ6LThweDttYXJnaW4tcmlnaHQ6LThweH10Yi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9ja30ubGlua2VkLXRpbWVbX25nY29udGVudC0lQ09NUCVdICAgLnN0ZXAtc2VsZWN0b3JbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MCAxMHB4fS5saW5rZWQtdGltZVtfbmdjb250ZW50LSVDT01QJV0gICBtYXQtc2xpZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmxpbmtlZC10aW1lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRiLXJhbmdlLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5saW5rZWQtdGltZVtfbmdjb250ZW50LSVDT01QJV0gICAuY29udHJvbHNbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6NXB4fSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChyaHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3MtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoic2V0dGluZ3Nfdmlld19jb21wb25lbnQubmcuaHRtbCIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaCxzdHlsZVVybHM6WyJzZXR0aW5nc192aWV3X2NvbXBvbmVudC5jc3MiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltXeV19XX1dfSkse2lzTGlua2VkVGltZUZlYXR1cmVFbmFibGVkOlt7dHlwZTp4eX1dLHNlbGVjdFRpbWVFbmFibGVkOlt7dHlwZTp4eX1dLHVzZVJhbmdlU2VsZWN0VGltZTpbe3R5cGU6eHl9XSxzZWxlY3RlZFRpbWU6W3t0eXBlOnh5fV0sc3RlcE1pbk1heDpbe3R5cGU6eHl9XSxzZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZDpbe3R5cGU6T3l9XSx1c2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkOlt7dHlwZTpPeX1dLHNlbGVjdFRpbWVDaGFuZ2VkOlt7dHlwZTpPeX1dLGlzSW1hZ2VTdXBwb3J0RW5hYmxlZDpbe3R5cGU6eHl9XSx0b29sdGlwU29ydDpbe3R5cGU6eHl9XSx0b29sdGlwU29ydENoYW5nZWQ6W3t0eXBlOk95fV0saWdub3JlT3V0bGllcnM6W3t0eXBlOnh5fV0saWdub3JlT3V0bGllcnNDaGFuZ2VkOlt7dHlwZTpPeX1dLHhBeGlzVHlwZTpbe3R5cGU6eHl9XSx4QXhpc1R5cGVDaGFuZ2VkOlt7dHlwZTpPeX1dLGhpc3RvZ3JhbU1vZGU6W3t0eXBlOnh5fV0saGlzdG9ncmFtTW9kZUNoYW5nZWQ6W3t0eXBlOk95fV0sc2NhbGFyU21vb3RoaW5nOlt7dHlwZTp4eX1dLHNjYWxhclNtb290aGluZ0NoYW5nZWQ6W3t0eXBlOk95fV0sc2NhbGFyUGFydGl0aW9uWDpbe3R5cGU6eHl9XSxzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZDpbe3R5cGU6T3l9XSxpbWFnZUJyaWdodG5lc3NJbk1pbGxpOlt7dHlwZTp4eX1dLGltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkOlt7dHlwZTpPeX1dLGltYWdlQnJpZ2h0bmVzc1Jlc2V0Olt7dHlwZTpPeX1dLGltYWdlQ29udHJhc3RJbk1pbGxpOlt7dHlwZTp4eX1dLGltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZDpbe3R5cGU6T3l9XSxpbWFnZUNvbnRyYXN0UmVzZXQ6W3t0eXBlOk95fV0saW1hZ2VTaG93QWN0dWFsU2l6ZTpbe3R5cGU6eHl9XSxpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIHNodHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5pc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoaUUpLHRoaXMuc2VsZWN0VGltZUVuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KGpUKSx0aGlzLnVzZVJhbmdlU2VsZWN0VGltZSQ9dGhpcy5zdG9yZS5zZWxlY3QoVVQpLHRoaXMuc2VsZWN0ZWRUaW1lJD10aGlzLnN0b3JlLnNlbGVjdChXVCksdGhpcy5zdGVwTWluTWF4JD10aGlzLnN0b3JlLnNlbGVjdChHVCksdGhpcy5pc0ltYWdlU3VwcG9ydEVuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KHFEKS5waXBlKGNlKEJvb2xlYW4pLGJlKDEpLFZlKHRoaXMuc3RvcmUuc2VsZWN0KG9FKSksSXQoKChbLHRdKT0+dCkpKSx0aGlzLnRvb2x0aXBTb3J0JD10aGlzLnN0b3JlLnNlbGVjdChSVCksdGhpcy5pZ25vcmVPdXRsaWVycyQ9dGhpcy5zdG9yZS5zZWxlY3QoQVQpLHRoaXMueEF4aXNUeXBlJD10aGlzLnN0b3JlLnNlbGVjdChUVCksdGhpcy5oaXN0b2dyYW1Nb2RlJD10aGlzLnN0b3JlLnNlbGVjdChOVCksdGhpcy5zY2FsYXJTbW9vdGhpbmckPXRoaXMuc3RvcmUuc2VsZWN0KHpUKSx0aGlzLnNjYWxhclBhcnRpdGlvblgkPXRoaXMuc3RvcmUuc2VsZWN0KElUKSx0aGlzLmltYWdlQnJpZ2h0bmVzc0luTWlsbGkkPXRoaXMuc3RvcmUuc2VsZWN0KEhUKSx0aGlzLmltYWdlQ29udHJhc3RJbk1pbGxpJD10aGlzLnN0b3JlLnNlbGVjdChGVCksdGhpcy5pbWFnZVNob3dBY3R1YWxTaXplJD10aGlzLnN0b3JlLnNlbGVjdChMVCl9b25Ub29sdGlwU29ydENoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChMRSh7c29ydDp0fSkpfW9uSWdub3JlT3V0bGllcnNDaGFuZ2VkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChCRSgpKX1vblhBeGlzVHlwZUNoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChWRSh7eEF4aXNUeXBlOnR9KSl9b25IaXN0b2dyYW1Nb2RlQ2hhbmdlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKFhFKHtoaXN0b2dyYW1Nb2RlOnR9KSl9b25TY2FsYXJTbW9vdGhpbmdDaGFuZ2VkKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goakUoe3Ntb290aGluZzp0fSkpfW9uU2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFVFKCkpfW9uSW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChHRSh7YnJpZ2h0bmVzc0luTWlsbGk6dH0pKX1vbkltYWdlQnJpZ2h0bmVzc1Jlc2V0KCl7dGhpcy5zdG9yZS5kaXNwYXRjaChZRSgpKX1vbkltYWdlQ29udHJhc3RSZXNldCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2gocUUoKSl9b25JbWFnZUNvbnRyYXN0SW5NaWxsaUNoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChXRSh7Y29udHJhc3RJbk1pbGxpOnR9KSl9b25JbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goWkUoKSl9b25TZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2gobFIoKSl9b25Vc2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChjUigpKX1vblNlbGVjdFRpbWVDaGFuZ2VkKHQpe3ZhciBlO3RoaXMuc3RvcmUuZGlzcGF0Y2goclIoe3N0YXJ0U3RlcDp0LnN0YXJ0LnN0ZXAsZW5kU3RlcDpudWxsPT09KGU9dC5lbmQpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnN0ZXB9KSl9fXNodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8c2h0KShTbShJdykpfSxzaHQuybVjbXA9dG8oe3R5cGU6c2h0LHNlbGVjdG9yczpbWyJtZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncyJdXSxkZWNsczoxNix2YXJzOjQ1LGNvbnN0czpbWzMsImlzSW1hZ2VTdXBwb3J0RW5hYmxlZCIsInRvb2x0aXBTb3J0IiwiaWdub3JlT3V0bGllcnMiLCJ4QXhpc1R5cGUiLCJoaXN0b2dyYW1Nb2RlIiwic2NhbGFyU21vb3RoaW5nIiwic2NhbGFyUGFydGl0aW9uWCIsImltYWdlQnJpZ2h0bmVzc0luTWlsbGkiLCJpbWFnZUNvbnRyYXN0SW5NaWxsaSIsImltYWdlU2hvd0FjdHVhbFNpemUiLCJpc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCIsInNlbGVjdFRpbWVFbmFibGVkIiwic2VsZWN0ZWRUaW1lIiwidXNlUmFuZ2VTZWxlY3RUaW1lIiwic3RlcE1pbk1heCIsInRvb2x0aXBTb3J0Q2hhbmdlZCIsImlnbm9yZU91dGxpZXJzQ2hhbmdlZCIsInhBeGlzVHlwZUNoYW5nZWQiLCJoaXN0b2dyYW1Nb2RlQ2hhbmdlZCIsInNjYWxhclNtb290aGluZ0NoYW5nZWQiLCJzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCIsImltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkIiwiaW1hZ2VCcmlnaHRuZXNzUmVzZXQiLCJpbWFnZUNvbnRyYXN0SW5NaWxsaUNoYW5nZWQiLCJpbWFnZUNvbnRyYXN0UmVzZXQiLCJpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCIsInNlbGVjdFRpbWVFbmFibGVUb2dnbGVkIiwidXNlUmFuZ2VTZWxlY3RUaW1lVG9nZ2xlZCIsInNlbGVjdFRpbWVDaGFuZ2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncy1jb21wb25lbnQiLDApLFZtKCJ0b29sdGlwU29ydENoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uVG9vbHRpcFNvcnRDaGFuZ2VkKGUpfSkpKCJpZ25vcmVPdXRsaWVyc0NoYW5nZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25JZ25vcmVPdXRsaWVyc0NoYW5nZWQoKX0pKSgieEF4aXNUeXBlQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25YQXhpc1R5cGVDaGFuZ2VkKGUpfSkpKCJoaXN0b2dyYW1Nb2RlQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25IaXN0b2dyYW1Nb2RlQ2hhbmdlZChlKX0pKSgic2NhbGFyU21vb3RoaW5nQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TY2FsYXJTbW9vdGhpbmdDaGFuZ2VkKGUpfSkpKCJzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblNjYWxhclBhcnRpdGlvblhUb2dnbGVkKCl9KSkoImltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkKGUpfSkpKCJpbWFnZUJyaWdodG5lc3NSZXNldCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkltYWdlQnJpZ2h0bmVzc1Jlc2V0KCl9KSkoImltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25JbWFnZUNvbnRyYXN0SW5NaWxsaUNoYW5nZWQoZSl9KSkoImltYWdlQ29udHJhc3RSZXNldCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkltYWdlQ29udHJhc3RSZXNldCgpfSkpKCJpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkKCl9KSkoInNlbGVjdFRpbWVFbmFibGVUb2dnbGVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uU2VsZWN0VGltZUVuYWJsZVRvZ2dsZWQoKX0pKSgidXNlUmFuZ2VTZWxlY3RUaW1lVG9nZ2xlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblVzZVJhbmdlU2VsZWN0VGltZVRvZ2dsZWQoKX0pKSgic2VsZWN0VGltZUNoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uU2VsZWN0VGltZUNoYW5nZWQoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxBaCg4LCJhc3luYyIpLEFoKDksImFzeW5jIiksQWgoMTAsImFzeW5jIiksQWgoMTEsImFzeW5jIiksQWgoMTIsImFzeW5jIiksQWgoMTMsImFzeW5jIiksQWgoMTQsImFzeW5jIiksQWgoMTUsImFzeW5jIiksQW0oKSksMiZlJiZEbSgiaXNJbWFnZVN1cHBvcnRFbmFibGVkIixUaCgxLDE1LG4uaXNJbWFnZVN1cHBvcnRFbmFibGVkJCkpKCJ0b29sdGlwU29ydCIsVGgoMiwxNyxuLnRvb2x0aXBTb3J0JCkpKCJpZ25vcmVPdXRsaWVycyIsVGgoMywxOSxuLmlnbm9yZU91dGxpZXJzJCkpKCJ4QXhpc1R5cGUiLFRoKDQsMjEsbi54QXhpc1R5cGUkKSkoImhpc3RvZ3JhbU1vZGUiLFRoKDUsMjMsbi5oaXN0b2dyYW1Nb2RlJCkpKCJzY2FsYXJTbW9vdGhpbmciLFRoKDYsMjUsbi5zY2FsYXJTbW9vdGhpbmckKSkoInNjYWxhclBhcnRpdGlvblgiLFRoKDcsMjcsbi5zY2FsYXJQYXJ0aXRpb25YJCkpKCJpbWFnZUJyaWdodG5lc3NJbk1pbGxpIixUaCg4LDI5LG4uaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaSQpKSgiaW1hZ2VDb250cmFzdEluTWlsbGkiLFRoKDksMzEsbi5pbWFnZUNvbnRyYXN0SW5NaWxsaSQpKSgiaW1hZ2VTaG93QWN0dWFsU2l6ZSIsVGgoMTAsMzMsbi5pbWFnZVNob3dBY3R1YWxTaXplJCkpKCJpc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCIsVGgoMTEsMzUsbi5pc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCQpKSgic2VsZWN0VGltZUVuYWJsZWQiLFRoKDEyLDM3LG4uc2VsZWN0VGltZUVuYWJsZWQkKSkoInNlbGVjdGVkVGltZSIsVGgoMTMsMzksbi5zZWxlY3RlZFRpbWUkKSkoInVzZVJhbmdlU2VsZWN0VGltZSIsVGgoMTQsNDEsbi51c2VSYW5nZVNlbGVjdFRpbWUkKSkoInN0ZXBNaW5NYXgiLFRoKDE1LDQzLG4uc3RlcE1pbk1heCQpKX0sZGlyZWN0aXZlczpbcmh0XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoc2h0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtZGFzaGJvYXJkLXNldHRpbmdzIix0ZW1wbGF0ZTonXG4gICAgPG1ldHJpY3MtZGFzaGJvYXJkLXNldHRpbmdzLWNvbXBvbmVudFxuICAgICAgW2lzSW1hZ2VTdXBwb3J0RW5hYmxlZF09ImlzSW1hZ2VTdXBwb3J0RW5hYmxlZCQgfCBhc3luYyJcbiAgICAgIFt0b29sdGlwU29ydF09InRvb2x0aXBTb3J0JCB8IGFzeW5jIlxuICAgICAgKHRvb2x0aXBTb3J0Q2hhbmdlZCk9Im9uVG9vbHRpcFNvcnRDaGFuZ2VkKCRldmVudCkiXG4gICAgICBbaWdub3JlT3V0bGllcnNdPSJpZ25vcmVPdXRsaWVycyQgfCBhc3luYyJcbiAgICAgIChpZ25vcmVPdXRsaWVyc0NoYW5nZWQpPSJvbklnbm9yZU91dGxpZXJzQ2hhbmdlZCgpIlxuICAgICAgW3hBeGlzVHlwZV09InhBeGlzVHlwZSQgfCBhc3luYyJcbiAgICAgICh4QXhpc1R5cGVDaGFuZ2VkKT0ib25YQXhpc1R5cGVDaGFuZ2VkKCRldmVudCkiXG4gICAgICBbaGlzdG9ncmFtTW9kZV09Imhpc3RvZ3JhbU1vZGUkIHwgYXN5bmMiXG4gICAgICAoaGlzdG9ncmFtTW9kZUNoYW5nZWQpPSJvbkhpc3RvZ3JhbU1vZGVDaGFuZ2VkKCRldmVudCkiXG4gICAgICBbc2NhbGFyU21vb3RoaW5nXT0ic2NhbGFyU21vb3RoaW5nJCB8IGFzeW5jIlxuICAgICAgKHNjYWxhclNtb290aGluZ0NoYW5nZWQpPSJvblNjYWxhclNtb290aGluZ0NoYW5nZWQoJGV2ZW50KSJcbiAgICAgIFtzY2FsYXJQYXJ0aXRpb25YXT0ic2NhbGFyUGFydGl0aW9uWCQgfCBhc3luYyJcbiAgICAgIChzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCk9Im9uU2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQoKSJcbiAgICAgIFtpbWFnZUJyaWdodG5lc3NJbk1pbGxpXT0iaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaSQgfCBhc3luYyJcbiAgICAgIChpbWFnZUJyaWdodG5lc3NJbk1pbGxpQ2hhbmdlZCk9Im9uSW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQoJGV2ZW50KSJcbiAgICAgIChpbWFnZUJyaWdodG5lc3NSZXNldCk9Im9uSW1hZ2VCcmlnaHRuZXNzUmVzZXQoKSJcbiAgICAgIFtpbWFnZUNvbnRyYXN0SW5NaWxsaV09ImltYWdlQ29udHJhc3RJbk1pbGxpJCB8IGFzeW5jIlxuICAgICAgKGltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZCk9Im9uSW1hZ2VDb250cmFzdEluTWlsbGlDaGFuZ2VkKCRldmVudCkiXG4gICAgICAoaW1hZ2VDb250cmFzdFJlc2V0KT0ib25JbWFnZUNvbnRyYXN0UmVzZXQoKSJcbiAgICAgIFtpbWFnZVNob3dBY3R1YWxTaXplXT0iaW1hZ2VTaG93QWN0dWFsU2l6ZSQgfCBhc3luYyJcbiAgICAgIChpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCk9Im9uSW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQoKSJcbiAgICAgIFtpc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZF09ImlzTGlua2VkVGltZUZlYXR1cmVFbmFibGVkJCB8IGFzeW5jIlxuICAgICAgW3NlbGVjdFRpbWVFbmFibGVkXT0ic2VsZWN0VGltZUVuYWJsZWQkIHwgYXN5bmMiXG4gICAgICBbc2VsZWN0ZWRUaW1lXT0ic2VsZWN0ZWRUaW1lJCB8IGFzeW5jIlxuICAgICAgW3VzZVJhbmdlU2VsZWN0VGltZV09InVzZVJhbmdlU2VsZWN0VGltZSQgfCBhc3luYyJcbiAgICAgIFtzdGVwTWluTWF4XT0ic3RlcE1pbk1heCQgfCBhc3luYyJcbiAgICAgIChzZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZCk9Im9uU2VsZWN0VGltZUVuYWJsZVRvZ2dsZWQoKSJcbiAgICAgICh1c2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkKT0ib25Vc2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkKCkiXG4gICAgICAoc2VsZWN0VGltZUNoYW5nZWQpPSJvblNlbGVjdFRpbWVDaGFuZ2VkKCRldmVudCkiXG4gICAgPlxuICAgIDwvbWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3MtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgbGh0e31mdW5jdGlvbiBjaHQodCxlKXsxJnQmJlRtKDAsIm1ldHJpY3MtZmlsdGVyZWQtdmlldyIsOSksMiZ0JiZEbSgiY2FyZE9ic2VydmVyIixZbSgpLmNhcmRPYnNlcnZlcil9ZnVuY3Rpb24gZGh0KHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwxMiksVG0oMSwibWF0LXNwaW5uZXIiLDEzKSxBbSgpKX1mdW5jdGlvbiBwaHQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDE0KSxSbSgxLCJkaXYiLDE1KSxSbSgyLCJoMiIsMTYpLGt1KDMsIlNldHRpbmdzIiksQW0oKSxSbSg0LCJidXR0b24iLDE3KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkub25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZC5lbWl0KCl9KSksVG0oNSwibWF0LWljb24iLDE4KSxBbSgpLEFtKCksVG0oNiwibWV0cmljcy1kYXNoYm9hcmQtcmlnaHQtcGFuZSIpLEFtKCl9fWxodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bGh0KX0sbGh0Lsm1Y21wPXRvKHt0eXBlOmxodCxzZWxlY3RvcnM6W1sibWV0cmljcy1kYXNoYm9hcmQtcmlnaHQtcGFuZSJdXSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZUbSgwLCJtZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncyIpfSxkaXJlY3RpdmVzOltzaHRdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobGh0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtZGFzaGJvYXJkLXJpZ2h0LXBhbmUiLHRlbXBsYXRlOiI8bWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3M+PC9tZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncz4iLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwsbnVsbCk7Y29uc3QgbWh0PWZ1bmN0aW9uKHQpe3JldHVybntjaGVja2VkOnQsInNldHRpbmdzLWJ1dHRvbiI6ITB9fTtjbGFzcyB1aHR7Y29uc3RydWN0b3IodCl7dGhpcy5ob3N0PXQsdGhpcy5vblNldHRpbmdzQnV0dG9uQ2xpY2tlZD1uZXcgTGgsdGhpcy5vbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkPW5ldyBMaCx0aGlzLm9uUGx1Z2luVHlwZVRvZ2dsZWQ9bmV3IExoLHRoaXMub25QbHVnaW5UeXBlQWxsVG9nZ2xlZD1uZXcgTGgsdGhpcy5QbHVnaW5UeXBlPWhBLHRoaXMuY2FyZE9ic2VydmVyPW5ldyBwMih0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwiNjAwcHggMHB4IDYwMHB4IDBweCIpfX11aHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHVodCkoU20oaGcpKX0sdWh0Lsm1Y21wPXRvKHt0eXBlOnVodCxzZWxlY3RvcnM6W1sibWV0cmljcy1tYWluLXZpZXctY29tcG9uZW50Il1dLGlucHV0czp7c2hvd0ZpbHRlcmVkVmlldzoic2hvd0ZpbHRlcmVkVmlldyIsaXNTaWRlcGFuZU9wZW46ImlzU2lkZXBhbmVPcGVuIixmaWx0ZXJlZFBsdWdpblR5cGVzOiJmaWx0ZXJlZFBsdWdpblR5cGVzIixpbml0aWFsVGFnc0xvYWRpbmc6ImluaXRpYWxUYWdzTG9hZGluZyJ9LG91dHB1dHM6e29uU2V0dGluZ3NCdXR0b25DbGlja2VkOiJvblNldHRpbmdzQnV0dG9uQ2xpY2tlZCIsb25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZDoib25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZCIsb25QbHVnaW5UeXBlVG9nZ2xlZDoib25QbHVnaW5UeXBlVG9nZ2xlZCIsb25QbHVnaW5UeXBlQWxsVG9nZ2xlZDoib25QbHVnaW5UeXBlQWxsVG9nZ2xlZCJ9LGRlY2xzOjIyLHZhcnM6MjEsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZTtyZXR1cm4gdD0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiVG9nZ2xlIHNldHRpbmdzIHNpZGUgcGFuZSIpOiRsb2NhbGl6ZWA6TGFiZWwgb24gYSB0b29sYmFyIGJ1dHRvbiB0byB0b2dnbGUgdGhlIHNldHRpbmdzIHNpZGUgcGFuZS7ikJ9kMzUxNmRiNmJiZTY4NjBhNTViZWFiNjZlNDk2OWRhYzYyNWI4ZDcy4pCfNzY1OTI4NTQ0NTU4MDgzODkyNTpUb2dnbGUgc2V0dGluZ3Mgc2lkZSBwYW5lYCxlPSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJDbG9zZSBzaWRlIHBhbmUiKTokbG9jYWxpemVgOkxhYmVsIG9uIGEgYnV0dG9uIHRvIGNsb3NlIHRoZSBzZXR0aW5ncyBzaWRlIHBhbmUu4pCfMDQ1MjFkYzBiNmE2NWNmNWMzODI5NDRjOWE4YjRiODQ0YTNlOTU5OOKQnzgxNTY3NjY5OTc3NDcxNjU4NzE6Q2xvc2Ugc2lkZSBwYW5lYCxbWzEsInRvb2xiYXIiXSxbIm11bHRpcGxlIiwiIiwiYXBwZWFyYW5jZSIsInN0YW5kYXJkIiwxLCJmaWx0ZXItdmlldyJdLFszLCJjaGVja2VkIiwiY2xpY2siXSxbMSwicmlnaHQtaXRlbXMiXSxbIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywibmdDbGFzcyIsImNsaWNrIl0sWyJzdmdJY29uIiwic2V0dGluZ3NfMjRweCJdLFsxLCJzcGxpdC1jb250ZW50Il0sWyJjZGtTY3JvbGxhYmxlIiwiIl0sWzMsImNhcmRPYnNlcnZlciIsNCwibmdJZiJdLFszLCJjYXJkT2JzZXJ2ZXIiXSxbImNsYXNzIiwibG9hZGluZy1jb250YWluZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwic2lkZWJhciIsNCwibmdJZiJdLFsxLCJsb2FkaW5nLWNvbnRhaW5lciJdLFsiZGlhbWV0ZXIiLCIzNiJdLFsxLCJzaWRlYmFyIl0sWzEsImhlYWRlciJdLFsxLCJ0aXRsZSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNsb3NlXzI0cHgiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDApLFRtKDEsIm1ldHJpY3MtdGFnLWZpbHRlciIpLFJtKDIsIm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIiwxKSxSbSgzLCJtYXQtYnV0dG9uLXRvZ2dsZSIsMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGx1Z2luVHlwZUFsbFRvZ2dsZWQuZW1pdCgpfSkpLGt1KDQsIiBBbGwgIiksQW0oKSxSbSg1LCJtYXQtYnV0dG9uLXRvZ2dsZSIsMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGx1Z2luVHlwZVRvZ2dsZWQuZW1pdChuLlBsdWdpblR5cGUuU0NBTEFSUyl9KSksa3UoNiwiIFNjYWxhcnMgIiksQW0oKSxSbSg3LCJtYXQtYnV0dG9uLXRvZ2dsZSIsMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGx1Z2luVHlwZVRvZ2dsZWQuZW1pdChuLlBsdWdpblR5cGUuSU1BR0VTKX0pKSxrdSg4LCIgSW1hZ2UgIiksQW0oKSxSbSg5LCJtYXQtYnV0dG9uLXRvZ2dsZSIsMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGx1Z2luVHlwZVRvZ2dsZWQuZW1pdChuLlBsdWdpblR5cGUuSElTVE9HUkFNUyl9KSksa3UoMTAsIiBIaXN0b2dyYW0gIiksQW0oKSxBbSgpLFJtKDExLCJkaXYiLDMpLFJtKDEyLCJidXR0b24iLDQpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblNldHRpbmdzQnV0dG9uQ2xpY2tlZC5lbWl0KCl9KSksVG0oMTMsIm1hdC1pY29uIiw1KSxrdSgxNCwiIFNldHRpbmdzICIpLEFtKCksQW0oKSxBbSgpLFJtKDE1LCJkaXYiLDYpLFJtKDE2LCJkaXYiLDcpLFFwKDE3LGNodCwxLDEsIm1ldHJpY3MtZmlsdGVyZWQtdmlldyIsOCksVG0oMTgsIm1ldHJpY3MtcGlubmVkLXZpZXciLDkpLFFwKDE5LGRodCwyLDAsImRpdiIsMTApLFRtKDIwLCJtZXRyaWNzLWNhcmQtZ3JvdXBzIiw5KSxBbSgpLFFwKDIxLHBodCw3LDAsImRpdiIsMTEpLEFtKCkpLDImZSYmKHJjKDMpLERtKCJjaGVja2VkIiwwPT09bi5maWx0ZXJlZFBsdWdpblR5cGVzLnNpemUpLHJjKDIpLERtKCJjaGVja2VkIixuLmZpbHRlcmVkUGx1Z2luVHlwZXMuaGFzKG4uUGx1Z2luVHlwZS5TQ0FMQVJTKSkscmMoMiksRG0oImNoZWNrZWQiLG4uZmlsdGVyZWRQbHVnaW5UeXBlcy5oYXMobi5QbHVnaW5UeXBlLklNQUdFUykpLHJjKDIpLERtKCJjaGVja2VkIixuLmZpbHRlcmVkUGx1Z2luVHlwZXMuaGFzKG4uUGx1Z2luVHlwZS5ISVNUT0dSQU1TKSkscmMoMyksRG0oIm5nQ2xhc3MiLE1oKDE5LG1odCxuLmlzU2lkZXBhbmVPcGVuKSksanAoImFyaWEtcHJlc3NlZCIsbi5pc1NpZGVwYW5lT3BlbikscmMoNCkscHUoIm1haW4iLCEwKSgiZmlsdGVyLXZpZXciLG4uc2hvd0ZpbHRlcmVkVmlldykscmMoMSksRG0oIm5nSWYiLG4uc2hvd0ZpbHRlcmVkVmlldykscmMoMSksZHUoImRpc3BsYXkiLG4uc2hvd0ZpbHRlcmVkVmlldz8ibm9uZSI6IiIpLERtKCJjYXJkT2JzZXJ2ZXIiLG4uY2FyZE9ic2VydmVyKSxyYygxKSxEbSgibmdJZiIsbi5pbml0aWFsVGFnc0xvYWRpbmcpLHJjKDEpLGR1KCJkaXNwbGF5IixuLnNob3dGaWx0ZXJlZFZpZXc/Im5vbmUiOiIiKSxEbSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcikscmMoMSksRG0oIm5nSWYiLG4uaXNTaWRlcGFuZU9wZW4pKX0sZGlyZWN0aXZlczpbeDIsRTIsQTIsWEgsYU0sRFcsbUYsZE0sQmd0LFlndCwkZ3QsbzEsbGh0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LnRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZmxleDpub25lO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDE2cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0udG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBtZXRyaWNzLXRhZy1maWx0ZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxIDEwMHB4fS50b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yaWdodC1pdGVtc1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlYmViZWI7bWFyZ2luLWxlZnQ6MTZweDtwYWRkaW5nLWxlZnQ6MTZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICAucmlnaHQtaXRlbXNbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICAucmlnaHQtaXRlbXNbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjNTU1fS5maWx0ZXItdmlld1tfbmdjb250ZW50LSVDT01QJV17ZmxleDpub25lO21hcmdpbi1yaWdodDo1cHh9LmZpbHRlci12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MjVweDtmb250LXNpemU6MTJweH0uZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgbWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVdICAgICAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudHtsaW5lLWhlaWdodDoyNXB4fS5zcGxpdC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7b3ZlcmZsb3cteTphdXRvO2ZsZXg6MX0ubWFpbltfbmdjb250ZW50LSVDT01QJV0sIC5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtjb250YWluOnN0cmljdDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87d2lsbC1jaGFuZ2U6dHJhbnNmb3JtLHNjcm9sbC1wb3NpdGlvbn0ubWFpbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjVmNmY3O2ZsZXg6MSAxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm1haW5bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAubWFpbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojM2EzYTNhfS5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1ldHJpY3MtZmlsdGVyZWQtdmlld1tfbmdjb250ZW50LSVDT01QJV0sIC5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1ldHJpY3MtcGlubmVkLXZpZXdbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWJ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm1haW5bX25nY29udGVudC0lQ09NUCVdICAgbWV0cmljcy1maWx0ZXJlZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm1haW5bX25nY29udGVudC0lQ09NUCVdICAgbWV0cmljcy1maWx0ZXJlZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1ldHJpY3MtcGlubmVkLXZpZXdbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAubWFpbltfbmdjb250ZW50LSVDT01QJV0gICBtZXRyaWNzLXBpbm5lZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fS5tYWluLmZpbHRlci12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW59Lm1haW4uZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgbWV0cmljcy1maWx0ZXJlZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtjb250YWluOmNvbnRlbnQ7b3ZlcmZsb3c6YXV0bzt3aWxsLWNoYW5nZTp0cmFuc2Zvcm0sc2Nyb2xsLXBvc2l0aW9ufS5sb2FkaW5nLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbjoyMHB4IDB9LnNpZGViYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZWJlYmViO2ZsZXg6MCAwIDI1MHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnNpZGViYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjNTU1fS5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtoZWlnaHQ6NDJweDtwYWRkaW5nOjAgMTZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0gICAuaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnNpZGViYXJbX25nY29udGVudC0lQ09NUCVdICAgLmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0uc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0gICAuaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0Om5vcm1hbDttYXJnaW46MH1bX25naG9zdC0lQ09NUCVdICAgLnNldHRpbmdzLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTtkaXNwbGF5OmlubGluZS1mbGV4fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zZXR0aW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfVtfbmdob3N0LSVDT01QJV0gICAuc2V0dGluZ3MtYnV0dG9uLmNoZWNrZWRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2UwZTBlMDtib3JkZXItY29sb3I6I2UwZTBlMH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2V0dGluZ3MtYnV0dG9uLmNoZWNrZWRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzIxMjEyMX1bX25naG9zdC0lQ09NUCVdICAgLnNldHRpbmdzLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAgIC5tYXQtYnV0dG9uLXdyYXBwZXJ7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9W19uZ2hvc3QtJUNPTVAlXSAgIC5zZXR0aW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDo0cHh9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHVodCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLW1haW4tdmlldy1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJtYWluX3ZpZXdfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIm1haW5fdmlld19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfV19KSx7c2hvd0ZpbHRlcmVkVmlldzpbe3R5cGU6eHl9XSxpc1NpZGVwYW5lT3Blbjpbe3R5cGU6eHl9XSxmaWx0ZXJlZFBsdWdpblR5cGVzOlt7dHlwZTp4eX1dLGluaXRpYWxUYWdzTG9hZGluZzpbe3R5cGU6eHl9XSxvblNldHRpbmdzQnV0dG9uQ2xpY2tlZDpbe3R5cGU6T3l9XSxvbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkOlt7dHlwZTpPeX1dLG9uUGx1Z2luVHlwZVRvZ2dsZWQ6W3t0eXBlOk95fV0sb25QbHVnaW5UeXBlQWxsVG9nZ2xlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIGZodHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5pc1NpZGVwYW5lT3BlbiQ9dGhpcy5zdG9yZS5zZWxlY3QoWFQpLHRoaXMuaW5pdGlhbFRhZ3NMb2FkaW5nJD10aGlzLnN0b3JlLnNlbGVjdCh1VCkucGlwZShIZSgodD0+bnVsbD09PXQubGFzdExvYWRlZFRpbWVJbk1zKSwhMCksSXQoKHQ9PnQuc3RhdGU9PT15RS5MT0FESU5HJiZudWxsPT09dC5sYXN0TG9hZGVkVGltZUluTXMpKSksdGhpcy5zaG93RmlsdGVyZWRWaWV3JD10aGlzLnN0b3JlLnNlbGVjdChCVCkucGlwZShJdCgodD0+dC5sZW5ndGg+MCkpKSx0aGlzLmZpbHRlcmVkUGx1Z2luVHlwZXMkPXRoaXMuc3RvcmUuc2VsZWN0KHFUKX1vblNldHRpbmdzQnV0dG9uQ2xpY2tlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goekUoKSl9b25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goTkUoKSl9b25QbHVnaW5WaXNpYmlsaXR5VG9nZ2xlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKGlSKHtwbHVnaW46dH0pKX1vblNob3dBbGxQbHVnaW5zKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChhUigpKX19Zmh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmaHQpKFNtKEl3KSl9LGZodC7JtWNtcD10byh7dHlwZTpmaHQsc2VsZWN0b3JzOltbIm1ldHJpY3MtbWFpbi12aWV3Il1dLGRlY2xzOjUsdmFyczoxMixjb25zdHM6W1szLCJzaG93RmlsdGVyZWRWaWV3IiwiaXNTaWRlcGFuZU9wZW4iLCJpbml0aWFsVGFnc0xvYWRpbmciLCJmaWx0ZXJlZFBsdWdpblR5cGVzIiwib25TZXR0aW5nc0J1dHRvbkNsaWNrZWQiLCJvbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkIiwib25QbHVnaW5UeXBlVG9nZ2xlZCIsIm9uUGx1Z2luVHlwZUFsbFRvZ2dsZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsIm1ldHJpY3MtbWFpbi12aWV3LWNvbXBvbmVudCIsMCksVm0oIm9uU2V0dGluZ3NCdXR0b25DbGlja2VkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uU2V0dGluZ3NCdXR0b25DbGlja2VkKCl9KSkoIm9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZCgpfSkpKCJvblBsdWdpblR5cGVUb2dnbGVkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblBsdWdpblZpc2liaWxpdHlUb2dnbGVkKGUpfSkpKCJvblBsdWdpblR5cGVBbGxUb2dnbGVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uU2hvd0FsbFBsdWdpbnMoKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQWgoMywiYXN5bmMiKSxBaCg0LCJhc3luYyIpLEFtKCkpLDImZSYmRG0oInNob3dGaWx0ZXJlZFZpZXciLFRoKDEsNCxuLnNob3dGaWx0ZXJlZFZpZXckKSkoImlzU2lkZXBhbmVPcGVuIixUaCgyLDYsbi5pc1NpZGVwYW5lT3BlbiQpKSgiaW5pdGlhbFRhZ3NMb2FkaW5nIixUaCgzLDgsbi5pbml0aWFsVGFnc0xvYWRpbmckKSkoImZpbHRlcmVkUGx1Z2luVHlwZXMiLFRoKDQsMTAsbi5maWx0ZXJlZFBsdWdpblR5cGVzJCkpfSxkaXJlY3RpdmVzOlt1aHRdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChmaHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1tYWluLXZpZXciLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy1tYWluLXZpZXctY29tcG9uZW50XG4gICAgICBbc2hvd0ZpbHRlcmVkVmlld109InNob3dGaWx0ZXJlZFZpZXckIHwgYXN5bmMiXG4gICAgICBbaXNTaWRlcGFuZU9wZW5dPSJpc1NpZGVwYW5lT3BlbiQgfCBhc3luYyJcbiAgICAgIFtpbml0aWFsVGFnc0xvYWRpbmddPSJpbml0aWFsVGFnc0xvYWRpbmckIHwgYXN5bmMiXG4gICAgICBbZmlsdGVyZWRQbHVnaW5UeXBlc109ImZpbHRlcmVkUGx1Z2luVHlwZXMkIHwgYXN5bmMiXG4gICAgICAob25TZXR0aW5nc0J1dHRvbkNsaWNrZWQpPSJvblNldHRpbmdzQnV0dG9uQ2xpY2tlZCgpIlxuICAgICAgKG9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQpPSJvbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkKCkiXG4gICAgICAob25QbHVnaW5UeXBlVG9nZ2xlZCk9Im9uUGx1Z2luVmlzaWJpbGl0eVRvZ2dsZWQoJGV2ZW50KSJcbiAgICAgIChvblBsdWdpblR5cGVBbGxUb2dnbGVkKT0ib25TaG93QWxsUGx1Z2lucygpIlxuICAgID48L21ldHJpY3MtbWFpbi12aWV3LWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IGdodD1uZXcgR2EoIltNZXRyaWNzXSBNRVRSSUNTX1Byb21vIE1lc3NhZ2UgQ29tcG9uZW50Iik7ZnVuY3Rpb24gaGh0KHQsZSl7MSZ0JiYoTm0oMCksWG0oMSksem0oKSl9Y2xhc3MgYmh0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy52aWV3Q29udGFpbmVyUmVmPXQsdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9ZX1uZ09uSW5pdCgpe2lmKHRoaXMuY3VzdG9taXphYmxlQ29tcG9uZW50KXtjb25zdCB0PXRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuY3VzdG9taXphYmxlQ29tcG9uZW50LmNvbnN0cnVjdG9yKTt0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHQpfX19Ymh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxiaHQpKFNtKGVoKSxTbSh1ZykpfSxiaHQuybVjbXA9dG8oe3R5cGU6Ymh0LHNlbGVjdG9yczpbWyJ0Yi1jdXN0b21pemF0aW9uIl1dLGlucHV0czp7Y3VzdG9taXphYmxlQ29tcG9uZW50OiJjdXN0b21pemFibGVDb21wb25lbnQifSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIl0sZGVjbHM6MSx2YXJzOjEsY29uc3RzOltbNCwibmdJZiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoWm0oKSxRcCgwLGhodCwyLDAsIm5nLWNvbnRhaW5lciIsMCkpLDImZSYmRG0oIm5nSWYiLCFuLmN1c3RvbWl6YWJsZUNvbXBvbmVudCl9LGRpcmVjdGl2ZXM6W2RNXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGJodCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ0Yi1jdXN0b21pemF0aW9uIix0ZW1wbGF0ZTonXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj0iIWN1c3RvbWl6YWJsZUNvbXBvbmVudCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTplaH0se3R5cGU6dWd9XX0pLHtjdXN0b21pemFibGVDb21wb25lbnQ6W3t0eXBlOnh5fV19KTtjbGFzcyB5aHR7Y29uc3RydWN0b3IodCl7dGhpcy5jdXN0b21Qcm9tb01lc3NhZ2U9dCx0aGlzLm9uRGlzbWlzcz1uZXcgTGgsdGhpcy5vbkdvVG9TY2FsYXJzPW5ldyBMaH19eWh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5aHQpKFNtKGdodCw4KSl9LHlodC7JtWNtcD10byh7dHlwZTp5aHQsc2VsZWN0b3JzOltbIm1ldHJpY3MtcHJvbW8tbm90aWNlLWNvbXBvbmVudCJdXSxvdXRwdXRzOntvbkRpc21pc3M6Im9uRGlzbWlzcyIsb25Hb1RvU2NhbGFyczoib25Hb1RvU2NhbGFycyJ9LGRlY2xzOjcsdmFyczoxLGNvbnN0czpbWzEsIm1lc3NhZ2UiLDMsImN1c3RvbWl6YWJsZUNvbXBvbmVudCJdLFsxLCJnby10by1zY2FsYXJzIiwzLCJjbGljayJdLFsxLCJkaXNtaXNzIiwzLCJjbGljayJdLFsiaW5saW5lIiwiIiwic3ZnSWNvbiIsImNsb3NlXzI0cHgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsInRiLWN1c3RvbWl6YXRpb24iLDApLGt1KDEsIiBXZWxjb21lIHRvIG5ldyBkZWZhdWx0IGV4cGVyaWVuY2Ugb2YgVGVuc29yQm9hcmQuIFRpbWUgU2VyaWVzIGxldHMgeW91IHZpZXcgYWxsIHZpc3VhbGl6YXRpb25zIGF0IG9uY2UsIHB1dCB0aGVtIHNpZGUtYnktc2lkZSB3aXRoIHBpbnMsIGFuZCBjdXN0b21pemUgY29sb3JzLiBTY2FsYXJzIGFuZCBvdGhlciBwbHVnaW5zIGFyZSBzdGlsbCBhdmFpbGFibGUuICIpLFJtKDIsImJ1dHRvbiIsMSksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uR29Ub1NjYWxhcnMuZW1pdCgpfSkpLGt1KDMsIiBHbyB0byBTY2FsYXJzIHBsdWdpbiIpLEFtKCksa3UoNCwiLlxuIiksQW0oKSxSbSg1LCJidXR0b24iLDIpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkRpc21pc3MuZW1pdCgpfSkpLFRtKDYsIm1hdC1pY29uIiwzKSxBbSgpKSwyJmUmJkRtKCJjdXN0b21pemFibGVDb21wb25lbnQiLG4uY3VzdG9tUHJvbW9NZXNzYWdlKX0sZGlyZWN0aXZlczpbYmh0LERXXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmb250LXNpemU6MTRweDtnYXA6NXB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2xpbmUtaGVpZ2h0OjIwcHg7cGFkZGluZzo1cHggMTBweH1idXR0b25bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7Y29sb3I6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjtmb250OmluaGVyaXQ7cGFkZGluZzowfWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX10Yi1jdXN0b21pemF0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzE5NzZkMn0uZGlzbWlzc1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24tc2VsZjpiYXNlbGluZTtmbGV4Om5vbmU7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeWh0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtcHJvbW8tbm90aWNlLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Im1ldHJpY3NfcHJvbW9fbm90aWNlX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyJtZXRyaWNzX3Byb21vX25vdGljZV9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlFhLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltnaHRdfV19XX0pLHtvbkRpc21pc3M6W3t0eXBlOk95fV0sb25Hb1RvU2NhbGFyczpbe3R5cGU6T3l9XX0pO2NsYXNzIF9odHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXR9b25EaXNtaXNzKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChkUigpKX1vbkdvVG9TY2FsYXJzKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChwUigpKX19ZnVuY3Rpb24gQ2h0KHQsZSl7MSZ0JiZUbSgwLCJtZXRyaWNzLXByb21vLW5vdGljZSIsMyl9X2h0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfaHQpKFNtKEl3KSl9LF9odC7JtWNtcD10byh7dHlwZTpfaHQsc2VsZWN0b3JzOltbIm1ldHJpY3MtcHJvbW8tbm90aWNlIl1dLGRlY2xzOjEsdmFyczowLGNvbnN0czpbWzMsIm9uRGlzbWlzcyIsIm9uR29Ub1NjYWxhcnMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsIm1ldHJpY3MtcHJvbW8tbm90aWNlLWNvbXBvbmVudCIsMCksVm0oIm9uRGlzbWlzcyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkRpc21pc3MoKX0pKSgib25Hb1RvU2NhbGFycyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkdvVG9TY2FsYXJzKCl9KSksQW0oKSl9LGRpcmVjdGl2ZXM6W3lodF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChfaHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1wcm9tby1ub3RpY2UiLHRlbXBsYXRlOic8bWV0cmljcy1wcm9tby1ub3RpY2UtY29tcG9uZW50XG4gICAgKG9uRGlzbWlzcyk9Im9uRGlzbWlzcygpIlxuICAgIChvbkdvVG9TY2FsYXJzKT0ib25Hb1RvU2NhbGFycygpIlxuICA+PC9tZXRyaWNzLXByb21vLW5vdGljZS1jb21wb25lbnQ+JyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIE1odHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5pc0J1dHRlckJhckVuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KGFFKS5waXBlKGZlKHRoaXMuc3RvcmUuc2VsZWN0KFpUKSksSXQoKChbdCxlXSk9PnQmJmUpKSl9fU1odC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TWh0KShTbShJdykpfSxNaHQuybVjbXA9dG8oe3R5cGU6TWh0LHNlbGVjdG9yczpbWyJtZXRyaWNzLWRhc2hib2FyZCJdXSxkZWNsczo1LHZhcnM6Myxjb25zdHM6W1siY2xhc3MiLCJub3RpY2UiLDQsIm5nSWYiXSxbInNpZGViYXIiLCIiXSxbIm1haW4iLCIiXSxbMSwibm90aWNlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihRcCgwLENodCwxLDAsIm1ldHJpY3MtcHJvbW8tbm90aWNlIiwwKSxBaCgxLCJhc3luYyIpLFJtKDIsInRiLWRhc2hib2FyZC1sYXlvdXQiKSxUbSgzLCJydW5zLXNlbGVjdG9yIiwxKSxUbSg0LCJtZXRyaWNzLW1haW4tdmlldyIsMiksQW0oKSksMiZlJiZEbSgibmdJZiIsVGgoMSwxLG4uaXNCdXR0ZXJCYXJFbmFibGVkJCkpfSxkaXJlY3RpdmVzOltkTSxNUSxjMixmaHQsX2h0XSxwaXBlczpbd01dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDtvdmVyZmxvdzpoaWRkZW59Lm5vdGljZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNDUsMTU3LC44NSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ZmZWIzYjtjb2xvcjojMjEyMTIxO2Rpc3BsYXk6YmxvY2s7ZmxleDowIDB9dGItZGFzaGJvYXJkLWxheW91dFtfbmdjb250ZW50LSVDT01QJV17ZmxleDoxIDE7b3ZlcmZsb3c6aGlkZGVufW5hdltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yaWdodDoxcHggc29saWQgI2ViZWJlYjtmbGV4Om5vbmU7d2lkdGg6MzQwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgbmF2W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbmF2W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzA7Ym9yZGVyLXJpZ2h0LWNvbG9yOiM1NTV9bWV0cmljcy1tYWluLXZpZXdbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChNaHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1kYXNoYm9hcmQiLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy1wcm9tby1ub3RpY2VcbiAgICAgICpuZ0lmPSJpc0J1dHRlckJhckVuYWJsZWQkIHwgYXN5bmMiXG4gICAgICBjbGFzcz0ibm90aWNlIlxuICAgID48L21ldHJpY3MtcHJvbW8tbm90aWNlPlxuICAgIDx0Yi1kYXNoYm9hcmQtbGF5b3V0PlxuICAgICAgPHJ1bnMtc2VsZWN0b3Igc2lkZWJhcj48L3J1bnMtc2VsZWN0b3I+XG4gICAgICA8bWV0cmljcy1tYWluLXZpZXcgbWFpbj48L21ldHJpY3MtbWFpbi12aWV3PlxuICAgIDwvdGItZGFzaGJvYXJkLWxheW91dD5cbiAgJyxzdHlsZVVybHM6WyJtZXRyaWNzX2NvbnRhaW5lci5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIHZodHt9dmh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx2aHQpfSx2aHQuybVtb2Q9YW8oe3R5cGU6dmh0fSksdmh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sRVcsSkhdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodmh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltNUV0sZXhwb3J0czpbTVFdLGltcG9ydHM6W1dNLEVXLEpIXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHZodCx7ZGVjbGFyYXRpb25zOltNUV0saW1wb3J0czpbV00sRVcsSkhdLGV4cG9ydHM6W01RXX0pO2NsYXNzIHhodHt9eGh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4aHQpfSx4aHQuybVtb2Q9YW8oe3R5cGU6eGh0fSkseGh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeGh0LFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbV01dLGRlY2xhcmF0aW9uczpbYmh0XSxleHBvcnRzOltiaHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oeGh0LHtkZWNsYXJhdGlvbnM6W2JodF0saW1wb3J0czpbV01dLGV4cG9ydHM6W2JodF19KTtjbGFzcyBPaHR7fU9odC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8T2h0KX0sT2h0Lsm1bW9kPWFvKHt0eXBlOk9odH0pLE9odC7JtWluaj12bih7aW1wb3J0czpbW1dNLFkwLEVXXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKE9odCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbcTBdLGV4cG9ydHM6W3EwXSxpbXBvcnRzOltXTSxZMCxFV119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhPaHQse2RlY2xhcmF0aW9uczpbcTBdLGltcG9ydHM6W1dNLFkwLEVXXSxleHBvcnRzOltxMF19KTtjbGFzcyBQaHR7fVBodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UGh0KX0sUGh0Lsm1bW9kPWFvKHt0eXBlOlBodH0pLFBodC7JtWluaj12bih7aW1wb3J0czpbW1dNXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFBodCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1dNXSxleHBvcnRzOltEMV0sZGVjbGFyYXRpb25zOltEMV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhQaHQse2RlY2xhcmF0aW9uczpbRDFdLGltcG9ydHM6W1dNXSxleHBvcnRzOltEMV19KTtjbGFzcyB3aHR7fXdodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8d2h0KX0sd2h0Lsm1bW9kPWFvKHt0eXBlOndodH0pLHdodC7JtWluaj12bih7aW1wb3J0czpbW3kzLFdNLE9odCxUVixKSCxTWSxkVyxCWSxFVyxvWSxlJCxpMSx1JCx3MCxQaHQsSkxdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgod2h0LFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbeTMsV00sT2h0LFRWLEpILFNZLGRXLEJZLEVXLG9ZLGUkLGkxLHUkLHcwLFBodCxKTF0sZXhwb3J0czpbczJdLGVudHJ5Q29tcG9uZW50czpbaDFdLGRlY2xhcmF0aW9uczpbZzEsaDEsUDEsdzEsbzIsczJdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8od2h0LHtkZWNsYXJhdGlvbnM6W2cxLGgxLFAxLHcxLG8yLHMyXSxpbXBvcnRzOlt5MyxXTSxPaHQsVFYsSkgsU1ksZFcsQlksRVcsb1ksZSQsaTEsdSQsdzAsUGh0LEpMXSxleHBvcnRzOltzMl19KTtjbGFzcyBraHR7fWtodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8a2h0KX0sa2h0Lsm1bW9kPWFvKHt0eXBlOmtodH0pLGtodC7JtWluaj12bih7aW1wb3J0czpbW1dNLHdodF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChraHQsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltXTSx3aHRdLGV4cG9ydHM6W2MyXSxkZWNsYXJhdGlvbnM6W2wyLGMyXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKGtodCx7ZGVjbGFyYXRpb25zOltsMixjMl0saW1wb3J0czpbV00sd2h0XSxleHBvcnRzOltjMl19KTtjbGFzcyBTaHR7fVNodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U2h0KX0sU2h0Lsm1bW9kPWFvKHt0eXBlOlNodH0pLFNodC7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChTaHQsW3t0eXBlOkF5LGFyZ3M6W3tleHBvcnRzOltOZnRdLGRlY2xhcmF0aW9uczpbTmZ0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFNodCx7ZGVjbGFyYXRpb25zOltOZnRdLGV4cG9ydHM6W05mdF19KTtjbGFzcyBEaHR7fURodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RGh0KX0sRGh0Lsm1bW9kPWFvKHt0eXBlOkRodH0pLERodC7JtWluaj12bih7aW1wb3J0czpbW1dNXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKERodCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbaGZ0XSxleHBvcnRzOltoZnRdLGltcG9ydHM6W1dNXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKERodCx7ZGVjbGFyYXRpb25zOltoZnRdLGltcG9ydHM6W1dNXSxleHBvcnRzOltoZnRdfSk7Y2xhc3MgRWh0e31FaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEVodCl9LEVodC7JtW1vZD1hbyh7dHlwZTpFaHR9KSxFaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxWSixTaHQsRGh0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEVodCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbdGd0XSxleHBvcnRzOlt0Z3RdLGltcG9ydHM6W1dNLFZKLFNodCxEaHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oRWh0LHtkZWNsYXJhdGlvbnM6W3RndF0saW1wb3J0czpbV00sVkosU2h0LERodF0sZXhwb3J0czpbdGd0XX0pO2NsYXNzIFJodHt9Umh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxSaHQpfSxSaHQuybVtb2Q9YW8oe3R5cGU6Umh0fSksUmh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUmh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOlt6Ml0sZXhwb3J0czpbejJdLGltcG9ydHM6W1dNXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFJodCx7ZGVjbGFyYXRpb25zOlt6Ml0saW1wb3J0czpbV01dLGV4cG9ydHM6W3oyXX0pO2NsYXNzIEFodHt9QWh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBaHQpfSxBaHQuybVtb2Q9YW8oe3R5cGU6QWh0fSksQWh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQWh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltMMixGMl0sZXhwb3J0czpbTDJdLGltcG9ydHM6W1dNXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEFodCx7ZGVjbGFyYXRpb25zOltMMixGMl0saW1wb3J0czpbV01dLGV4cG9ydHM6W0wyXX0pO2NsYXNzIFRodHt9VGh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUaHQpfSxUaHQuybVtb2Q9YW8oe3R5cGU6VGh0fSksVGh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sRVddXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoVGh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltnZnRdLGV4cG9ydHM6W2dmdF0saW1wb3J0czpbV00sRVddfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVGh0LHtkZWNsYXJhdGlvbnM6W2dmdF0saW1wb3J0czpbV00sRVddLGV4cG9ydHM6W2dmdF19KTtjbGFzcyBOaHR7fU5odC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Tmh0KX0sTmh0Lsm1bW9kPWFvKHt0eXBlOk5odH0pLE5odC7JtWluaj12bih7aW1wb3J0czpbW1dNLEVodCxKSCxFVyxpMSxBaHQsUmh0LFRodF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChOaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W21ndCxwZ3RdLGV4cG9ydHM6W21ndF0saW1wb3J0czpbV00sRWh0LEpILEVXLGkxLEFodCxSaHQsVGh0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKE5odCx7ZGVjbGFyYXRpb25zOlttZ3QscGd0XSxpbXBvcnRzOltXTSxFaHQsSkgsRVcsaTEsQWh0LFJodCxUaHRdLGV4cG9ydHM6W21ndF19KTtjbGFzcyB6aHR7fXpodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8emh0KX0semh0Lsm1bW9kPWFvKHt0eXBlOnpodH0pLHpodC7JtWluaj12bih7aW1wb3J0czpbW1dNLEpILEVXLGkxLHpYLEFodCxSaHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoemh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltYMixaMl0sZXhwb3J0czpbWDJdLGltcG9ydHM6W1dNLEpILEVXLGkxLHpYLEFodCxSaHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oemh0LHtkZWNsYXJhdGlvbnM6W1gyLFoyXSxpbXBvcnRzOltXTSxKSCxFVyxpMSx6WCxBaHQsUmh0XSxleHBvcnRzOltYMl19KTtjbGFzcyBJaHR7fUlodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SWh0KX0sSWh0Lsm1bW9kPWFvKHt0eXBlOklodH0pLElodC7JtWluaj12bih7aW1wb3J0czpbW1dNLHlMLEpILEVXLEJZLG9ZXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElodCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbWHV0LFV1dCxFdXRdLGV4cG9ydHM6W1h1dCxVdXQsRXV0XSxpbXBvcnRzOltXTSx5TCxKSCxFVyxCWSxvWV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhJaHQse2RlY2xhcmF0aW9uczpbWHV0LFV1dCxFdXRdLGltcG9ydHM6W1dNLHlMLEpILEVXLEJZLG9ZXSxleHBvcnRzOltYdXQsVXV0LEV1dF19KTtjbGFzcyBIaHR7fUhodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SGh0KX0sSGh0Lsm1bW9kPWFvKHt0eXBlOkhodH0pLEhodC7JtWluaj12bih7aW1wb3J0czpbW1dNLHlMLElodCxWSl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChIaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2ZmdF0sZXhwb3J0czpbZmZ0XSxpbXBvcnRzOltXTSx5TCxJaHQsVkpdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oSGh0LHtkZWNsYXJhdGlvbnM6W2ZmdF0saW1wb3J0czpbV00seUwsSWh0LFZKXSxleHBvcnRzOltmZnRdfSk7Y2xhc3MgRmh0e31GaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEZodCl9LEZodC7JtW1vZD1hbyh7dHlwZTpGaHR9KSxGaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjRyxKSCxkVyxCWSxURyxlVF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChGaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2w1LHM1XSxleHBvcnRzOltsNV0saW1wb3J0czpbV00sY0csSkgsZFcsQlksVEcsZVRdLGVudHJ5Q29tcG9uZW50czpbbDVdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oRmh0LHtkZWNsYXJhdGlvbnM6W2w1LHM1XSxpbXBvcnRzOltXTSxjRyxKSCxkVyxCWSxURyxlVF0sZXhwb3J0czpbbDVdfSk7Y2xhc3MgTGh0e31MaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExodCl9LExodC7JtW1vZD1hbyh7dHlwZTpMaHR9KSxMaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxGaHQsU2h0LEhodCxEaHQsSkgsRVcsb1ksaTEsVkosUmh0LFRodF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChMaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0lmdCxUZnRdLGV4cG9ydHM6W0lmdF0saW1wb3J0czpbV00sRmh0LFNodCxIaHQsRGh0LEpILEVXLG9ZLGkxLFZKLFJodCxUaHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oTGh0LHtkZWNsYXJhdGlvbnM6W0lmdCxUZnRdLGltcG9ydHM6W1dNLEZodCxTaHQsSGh0LERodCxKSCxFVyxvWSxpMSxWSixSaHQsVGh0XSxleHBvcnRzOltJZnRdfSk7Y2xhc3MgQmh0e31CaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJodCl9LEJodC7JtW1vZD1hbyh7dHlwZTpCaHR9KSxCaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSx6aHQsTGh0LE5odCxTaHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoQmh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOlttMix5Z3QsX2d0XSxleHBvcnRzOlttMixfZ3RdLGltcG9ydHM6W1dNLHpodCxMaHQsTmh0LFNodF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhCaHQse2RlY2xhcmF0aW9uczpbbTIseWd0LF9ndF0saW1wb3J0czpbV00semh0LExodCxOaHQsU2h0XSxleHBvcnRzOlttMixfZ3RdfSk7Y2xhc3MgVmh0e31WaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZodCl9LFZodC7JtW1vZD1hbyh7dHlwZTpWaHR9KSxWaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxUR11dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2VodF0sZXhwb3J0czpbZWh0XSxpbXBvcnRzOltXTSxUR119XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhWaHQse2RlY2xhcmF0aW9uczpbZWh0XSxpbXBvcnRzOltXTSxUR10sZXhwb3J0czpbZWh0XX0pO2NsYXNzIGpodHt9amh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxqaHQpfSxqaHQuybVtb2Q9YW8oe3R5cGU6amh0fSksamh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sVmh0LEpILFQyLFNZLEVXLFRHLHpYLHRULFBodF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChqaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2xodCxyaHQsc2h0XSxleHBvcnRzOltsaHRdLGltcG9ydHM6W1dNLFZodCxKSCxUMixTWSxFVyxURyx6WCx0VCxQaHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oamh0LHtkZWNsYXJhdGlvbnM6W2xodCxyaHQsc2h0XSxpbXBvcnRzOltXTSxWaHQsSkgsVDIsU1ksRVcsVEcselgsdFQsUGh0XSxleHBvcnRzOltsaHRdfSk7Y2xhc3MgVWh0e31VaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVodCl9LFVodC7JtW1vZD1hbyh7dHlwZTpVaHR9KSxVaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tCaHQsV00sT2h0LFkwLEpILFQyLEVXLEJZLGkxLGpodCxfRl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVaHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1RndCxOZ3QsV2d0LFlndCxaZ3QsWGd0LFFndCwkZ3QsdWh0LGZodCx2Mix4MixMZ3QsQmd0XSxleHBvcnRzOltmaHRdLGltcG9ydHM6W0JodCxXTSxPaHQsWTAsSkgsVDIsRVcsQlksaTEsamh0LF9GXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFVodCx7ZGVjbGFyYXRpb25zOltUZ3QsTmd0LFdndCxZZ3QsWmd0LFhndCxRZ3QsJGd0LHVodCxmaHQsdjIseDIsTGd0LEJndF0saW1wb3J0czpbQmh0LFdNLE9odCxZMCxKSCxUMixFVyxCWSxpMSxqaHQsX0ZdLGV4cG9ydHM6W2ZodF19KTtjbGFzcyBHaHR7fWZ1bmN0aW9uIFdodCgpe3JldHVyblt7YWN0aW9uQ3JlYXRvcjpvUixhbGVydEZyb21BY3Rpb246dD0+e2NvbnN0e3dhc1Bpbm5lZDplLGNhbkNyZWF0ZU5ld1BpbnM6bn09dDtyZXR1cm4gZXx8bj9udWxsOntsb2NhbGl6ZWRNZXNzYWdlOiJNYXggcGluIGxpbWl0IGV4Y2VlZGVkLiBSZW1vdmUgZXhpc3RpbmcgcGlucyBiZWZvcmUgYWRkaW5nIG1vcmUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9pc3N1ZXMvNDI0MiJ9fX1dfWZ1bmN0aW9uIFlodCgpe3JldHVybiBadyh6VCwodD0+KHtzY2FsYXJTbW9vdGhpbmc6dH0pKSl9ZnVuY3Rpb24gcWh0KCl7cmV0dXJuIFp3KEFULCh0PT4oe2lnbm9yZU91dGxpZXJzOnR9KSkpfWZ1bmN0aW9uIFpodCgpe3JldHVybiBadyhSVCwodD0+KHt0b29sdGlwU29ydFN0cmluZzpTdHJpbmcodCl9KSkpfWZ1bmN0aW9uIFhodCgpe3JldHVybiBadyhaVCwodD0+KHt0aW1lU2VyaWVzUHJvbW90aW9uRGlzbWlzc2VkOiF0fSkpKX1mdW5jdGlvbiBLaHQoKXtyZXR1cm4gWncoWFQsKHQ9Pih7dGltZVNlcmllc1NldHRpbmdzUGFuZU9wZW5lZDp0fSkpKX1HaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEdodCl9LEdodC7JtW1vZD1hbyh7dHlwZTpHaHR9KSxHaHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSx4aHQsdmh0LFVodCxFVyxqaHQsa2h0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEdodCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbTWh0LHlodCxfaHRdLGV4cG9ydHM6W01odF0saW1wb3J0czpbV00seGh0LHZodCxVaHQsRVcsamh0LGtodF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhHaHQse2RlY2xhcmF0aW9uczpbTWh0LHlodCxfaHRdLGltcG9ydHM6W1dNLHhodCx2aHQsVWh0LEVXLGpodCxraHRdLGV4cG9ydHM6W01odF19KTtjbGFzcyBKaHR7fUpodC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Smh0KX0sSmh0Lsm1bW9kPWFvKHt0eXBlOkpodH0pLEpodC7JtWluaj12bih7cHJvdmlkZXJzOlt7cHJvdmlkZTptUSx1c2VGYWN0b3J5OmZRLGRlcHM6W3VRXX0se3Byb3ZpZGU6dVEsdXNlVmFsdWU6cFR9XSxpbXBvcnRzOltbV00sQlMsRVIsd3EuZm9yUGx1Z2luKF9BLE1odCksZVQsR2h0LGRrLmZvckZlYXR1cmUoZFQsclEsbVEpLFdrLmZvckZlYXR1cmUoW3BRXSksQVIucmVnaXN0ZXJBbGVydEFjdGlvbnMoV2h0KSxxUy5kZWZpbmVHbG9iYWxTZXR0aW5nKFlodCkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhxaHQpLHFTLmRlZmluZUdsb2JhbFNldHRpbmcoWmh0KSxxUy5kZWZpbmVHbG9iYWxTZXR0aW5nKFhodCkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhLaHQpXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEpodCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1dNLEJTLEVSLHdxLmZvclBsdWdpbihfQSxNaHQpLGVULEdodCxkay5mb3JGZWF0dXJlKGRULHJRLG1RKSxXay5mb3JGZWF0dXJlKFtwUV0pLEFSLnJlZ2lzdGVyQWxlcnRBY3Rpb25zKFdodCkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhZaHQpLHFTLmRlZmluZUdsb2JhbFNldHRpbmcocWh0KSxxUy5kZWZpbmVHbG9iYWxTZXR0aW5nKFpodCkscVMuZGVmaW5lR2xvYmFsU2V0dGluZyhYaHQpLHFTLmRlZmluZUdsb2JhbFNldHRpbmcoS2h0KV0scHJvdmlkZXJzOlt7cHJvdmlkZTptUSx1c2VGYWN0b3J5OmZRLGRlcHM6W3VRXX0se3Byb3ZpZGU6dVEsdXNlVmFsdWU6cFR9XSxlbnRyeUNvbXBvbmVudHM6W01odF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhKaHQse2ltcG9ydHM6W1dNLEJTLEVSLHdxLGVULEdodCxjayxHayxBUixxUyxxUyxxUyxxUyxxU119KTtjb25zdCBRaHQ9Im5wbWkiO3ZhciAkaHQsdGJ0LGVidCxuYnQ7IShmdW5jdGlvbih0KXt0W3QuQU5EPTBdPSJBTkQifSkoJGh0fHwoJGh0PXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5NRVRSSUM9MF09Ik1FVFJJQyIsdFt0Lk9QRVJBVE9SPTFdPSJPUEVSQVRPUiJ9KSh0YnR8fCh0YnQ9e30pKSwoZnVuY3Rpb24odCl7dFt0LkRFRkFVTFQ9MF09IkRFRkFVTFQiLHRbdC5FTUJFRERJTkdTPTFdPSJFTUJFRERJTkdTIn0pKGVidHx8KGVidD17fSkpLChmdW5jdGlvbih0KXt0W3QuREVTQ0VORElORz0wXT0iREVTQ0VORElORyIsdFt0LkFTQ0VORE5HPTFdPSJBU0NFTkRORyIsdFt0LlNJTUlMQVI9Ml09IlNJTUlMQVIiLHRbdC5ESVNTSU1JTEFSPTNdPSJESVNTSU1JTEFSIn0pKG5idHx8KG5idD17fSkpO2NsYXNzIG9idHt9b2J0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxvYnQpfSxvYnQuybVjbXA9dG8oe3R5cGU6b2J0LHNlbGVjdG9yczpbWyJucG1pLWluYWN0aXZlLXZpZXciXV0sZGVjbHM6Nix2YXJzOjAsY29uc3RzOltbMSwiY29udGFpbmVyIl0sWzEsInRpdGxlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiKSxSbSgxLCJkaXYiLDApLFJtKDIsImRpdiIsMSksa3UoMywiblBNSSBpcyBpbmFjdGl2ZSBiZWNhdXNlIG5vIGRhdGEgaXMgYXZhaWxhYmxlLiIpLEFtKCksUm0oNCwiZGl2Iiksa3UoNSwiIFRvIHVzZSB0aGUgblBNSSwgY2FsY3VsYXRlIG5QTUkgdmFsdWVzLCBhbmQgbG9nIHRoZW0gdXNpbmcgdGhlIHN1bW1hcnkgd3JpdGVyLiAiKSxBbSgpLEFtKCksQW0oKSl9LHN0eWxlczpbIi5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LWZhbWlseTogUm9ib3RvO1xuICBmb250LXNpemU6IDE1cHg7XG4gIHBhZGRpbmc6IDUwcHg7XG59XG5cbi50aXRsZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXNpemU6IDEzNSU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xufSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChvYnQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1pbmFjdGl2ZS12aWV3Iix0ZW1wbGF0ZVVybDoiLi9pbmFjdGl2ZV9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9pbmFjdGl2ZV9jb21wb25lbnQuY3NzIl19XX1dLG51bGwsbnVsbCk7Y29uc3QgaWJ0PUt3KFFodCksYWJ0PVp3KGlidCwodD0+dC5wbHVnaW5EYXRhTG9hZGVkLnN0YXRlKSkscmJ0PVp3KGlidCwodD0+dC5hbm5vdGF0aW9uRGF0YSkpLHNidD1adyhpYnQsKHQ9PnQucnVuVG9NZXRyaWNzKSksbGJ0PVp3KGlidCwodD0+dC5lbWJlZGRpbmdEYXRhU2V0KSksY2J0PVp3KGlidCwodD0+dC5zZWxlY3RlZEFubm90YXRpb25zKSksZGJ0PVp3KGlidCwodD0+dC5mbGFnZ2VkQW5ub3RhdGlvbnMpKSxwYnQ9WncoaWJ0LCh0PT50LmhpZGRlbkFubm90YXRpb25zKSksbWJ0PVp3KGlidCwodD0+dC5hbm5vdGF0aW9uc1JlZ2V4KSksdWJ0PVp3KGlidCwodD0+dC5tZXRyaWNzUmVnZXgpKSxmYnQ9WncoaWJ0LCh0PT50Lm1ldHJpY0FyaXRobWV0aWMpKSxnYnQ9WncoaWJ0LCh0PT50Lm1ldHJpY0ZpbHRlcnMpKSxoYnQ9WncoaWJ0LCh0PT50LnNvcnQpKSxiYnQ9WncoaWJ0LCh0PT50LnBjRXhwYW5kZWQpKSx5YnQ9WncoaWJ0LCh0PT50LmFubm90YXRpb25zRXhwYW5kZWQpKSxfYnQ9WncoaWJ0LCh0PT50LnNpZGViYXJFeHBhbmRlZCkpLENidD1adyhpYnQsKHQ9PnQuc2hvd0NvdW50cykpLE1idD1adyhpYnQsKHQ9PnQuc2hvd0hpZGRlbkFubm90YXRpb25zKSksdmJ0PVp3KGlidCwodD0+dC52aWV3QWN0aXZlKSkseGJ0PVp3KGlidCwodD0+dC5zaWRlYmFyV2lkdGgpKSxPYnQ9WncoaWJ0LCh0PT50LmVtYmVkZGluZ3NNZXRyaWMpKSxQYnQ9WncoaWJ0LCh0PT50LmVtYmVkZGluZ3NTaWRlYmFyV2lkdGgpKSx3YnQ9WncoaWJ0LCh0PT50LmVtYmVkZGluZ3NTaWRlYmFyRXhwYW5kZWQpKSxrYnQ9SlAoIltOUE1JXSBuUE1JIExvYWRlZCIpLFNidD1KUCgiW05QTUldIG5QTUkgUGx1Z2luIERhdGEgUmVxdWVzdGVkIiksRGJ0PUpQKCJbTlBNSV0gblBNSSBQbHVnaW4gRGF0YSBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxFYnQ9SlAoIltOUE1JXSBuUE1JIFBsdWdpbiBEYXRhIFJlcXVlc3QgRmFpbGVkIiksUmJ0PUpQKCJbTlBNSV0gQWRkaW5nL1JlbW92aW5nIEFubm90YXRpb25zIHRvL2Zyb20gU2VsZWN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxBYnQ9SlAoIltOUE1JXSBBbm5vdGF0aW9ucyBTZXQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxUYnQ9SlAoIltOUE1JXSBDbGVhcmluZyB0aGUgQW5ub3RhdGlvbiBTZWxlY3Rpb24iKSxOYnQ9SlAoIltOUE1JXSBBZGRpbmcvUmVtb3ZpbmcgQW5ub3RhdGlvbnMgdG8vZnJvbSBGbGFnZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksemJ0PUpQKCJbTlBNSV0gQWRkaW5nL1JlbW92aW5nIEFubm90YXRpb25zIHRvL2Zyb20gSGlkZGVuIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksSWJ0PUpQKCJbTlBNSV0gQW5ub3RhdGlvbnMgUmVnZXggQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEhidD1KUCgiW05QTUldIE1ldHJpY3MgUmVnZXggQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEZidD1KUCgiW05QTUldIE1ldHJpYyBGaWx0ZXIgQWRkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxMYnQ9SlAoIltOUE1JXSBNZXRyaWMgRmlsdGVyIFJlbW92ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxCYnQ9SlAoIltOUE1JXSBNZXRyaWMgRmlsdGVyIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxWYnQ9SlAoIltOUE1JXSBBbm5vdGF0aW9uIFNvcnQgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGpidD1KUCgiW05QTUldIFNpbWlsYXJpdHkgU29ydCBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksVWJ0PUpQKCJbTlBNSV0gVG9nZ2xlIFBDIEV4cGFuZGVkIiksR2J0PUpQKCJbTlBNSV0gVG9nZ2xlIEFubm90YXRpb25zIEV4cGFuZGVkIiksV2J0PUpQKCJbTlBNSV0gVG9nZ2xlIFNpZGViYXIgRXhwYW5kZWQiKSxZYnQ9SlAoIltOUE1JXSBTaG93IENvdW50cyBUb2dnbGVkIikscWJ0PUpQKCJbTlBNSV0gU2hvdyBIaWRkZW4gQW5ub3RhdGlvbnMgVG9nZ2xlZCIpLFpidD1KUCgiW05QTUldIEVtYmVkZGluZ3MgVmlldyBUb2dnbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksWGJ0PUpQKCJbTlBNSV0gU2lkZWJhciBXaWR0aCBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksS2J0PUpQKCJbTlBNSV0gRW1iZWRkaW5ncyBTaWRlYmFyIFdpZHRoIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxKYnQ9SlAoIltOUE1JXSBUb2dnbGUgRW1iZWRkaW5ncyBTaWRlYmFyIEV4cGFuZGVkIiksUWJ0PUpQKCJbTlBNSV0gQ2hhbmdlIEVtYmVkZGluZyBEYXRhU2V0Iix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSk7ZnVuY3Rpb24gJGJ0KHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoImNvdW50QCIpfWZ1bmN0aW9uIHR5dCh0KXtyZXR1cm4gdC5zdGFydHNXaXRoKCJuUE1JQCIpfHx0LnN0YXJ0c1dpdGgoIm5QTUlfZGlmZkAiKX1mdW5jdGlvbiBleXQodCl7cmV0dXJuIHQuc3RhcnRzV2l0aCgiblBNSUAiKX1mdW5jdGlvbiBueXQodCl7cmV0dXJuIHQuc3BsaXQoIkAiLDIpWzFdfWNvbnN0IG95dD15ayh7cGx1Z2luRGF0YUxvYWRlZDp7c3RhdGU6eUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0sYW5ub3RhdGlvbkRhdGE6e30scnVuVG9NZXRyaWNzOnt9LHNlbGVjdGVkQW5ub3RhdGlvbnM6W10sZmxhZ2dlZEFubm90YXRpb25zOltdLGhpZGRlbkFubm90YXRpb25zOltdLGFubm90YXRpb25zUmVnZXg6IiIsbWV0cmljc1JlZ2V4OiIiLG1ldHJpY0FyaXRobWV0aWM6W10sbWV0cmljRmlsdGVyczp7fSxzb3J0OnttZXRyaWM6IiIsb3JkZXI6bmJ0LkRFU0NFTkRJTkd9LHBjRXhwYW5kZWQ6ITAsYW5ub3RhdGlvbnNFeHBhbmRlZDohMCxzaWRlYmFyRXhwYW5kZWQ6ITAsc2hvd0NvdW50czohMCxzaG93SGlkZGVuQW5ub3RhdGlvbnM6ITEsc2lkZWJhcldpZHRoOjMwMCx2aWV3QWN0aXZlOmVidC5ERUZBVUxULGVtYmVkZGluZ3NNZXRyaWM6IiIsZW1iZWRkaW5nc1NpZGViYXJXaWR0aDo1MDAsZW1iZWRkaW5nc1NpZGViYXJFeHBhbmRlZDohMH0sYmsoU2J0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BsdWdpbkRhdGFMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucGx1Z2luRGF0YUxvYWRlZCkse3N0YXRlOnlFLkxPQURJTkd9KX0pKSksYmsoRWJ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BsdWdpbkRhdGFMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucGx1Z2luRGF0YUxvYWRlZCkse3N0YXRlOnlFLkZBSUxFRH0pfSkpKSxiayhEYnQsKCh0LHthbm5vdGF0aW9uRGF0YTplLG1ldHJpY3M6bixlbWJlZGRpbmdEYXRhU2V0Om99KT0+e2NvbnN0IGk9e307Zm9yKGNvbnN0IHQgaW4gbil7aVt0XT1bXTtmb3IoY29uc3QgZSBvZiBuW3RdKXR5dChlKSYmaVt0XS5wdXNoKGUpfXJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3J1blRvTWV0cmljczppLGFubm90YXRpb25EYXRhOmUsZW1iZWRkaW5nRGF0YVNldDpvLHBsdWdpbkRhdGFMb2FkZWQ6e3N0YXRlOnlFLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6RGF0ZS5ub3coKX19KX0pKSxiayhSYnQsKCh0LHthbm5vdGF0aW9uczplfSk9Pntjb25zdCBuPW5ldyBTZXQoWy4uLnQuc2VsZWN0ZWRBbm5vdGF0aW9ucywuLi5lXSk7aWYobi5zaXplPT09dC5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aClmb3IoY29uc3QgdCBvZiBlKW4uZGVsZXRlKHQpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NlbGVjdGVkQW5ub3RhdGlvbnM6Wy4uLm5dfSl9KSksYmsoQWJ0LCgodCx7YW5ub3RhdGlvbnM6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NlbGVjdGVkQW5ub3RhdGlvbnM6ZX0pKSksYmsoVGJ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NlbGVjdGVkQW5ub3RhdGlvbnM6W119KSkpLGJrKE5idCwoKHQse2Fubm90YXRpb25zOmV9KT0+e2NvbnN0IG49bmV3IFNldChbLi4udC5mbGFnZ2VkQW5ub3RhdGlvbnMsLi4uZV0pO2lmKG4uc2l6ZT09PXQuZmxhZ2dlZEFubm90YXRpb25zLmxlbmd0aClmb3IoY29uc3QgdCBvZiBlKW4uZGVsZXRlKHQpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2ZsYWdnZWRBbm5vdGF0aW9uczpbLi4ubl0sc2VsZWN0ZWRBbm5vdGF0aW9uczpbXX0pfSkpLGJrKHpidCwoKHQse2Fubm90YXRpb25zOmV9KT0+e2NvbnN0IG49bmV3IFNldChbLi4udC5oaWRkZW5Bbm5vdGF0aW9ucywuLi5lXSk7aWYobi5zaXplPT09dC5oaWRkZW5Bbm5vdGF0aW9ucy5sZW5ndGgpZm9yKGNvbnN0IHQgb2YgZSluLmRlbGV0ZSh0KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtoaWRkZW5Bbm5vdGF0aW9uczpbLi4ubl0sc2VsZWN0ZWRBbm5vdGF0aW9uczpbXX0pfSkpLGJrKElidCwoKHQse3JlZ2V4OmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHthbm5vdGF0aW9uc1JlZ2V4OmV9KSkpLGJrKEhidCwoKHQse3JlZ2V4OmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHttZXRyaWNzUmVnZXg6ZX0pKSksYmsoRmJ0LCgodCx7bWV0cmljOmV9KT0+e2lmKHQubWV0cmljRmlsdGVyc1tlXSlyZXR1cm4gdDtjb25zdCBuPVtdO3JldHVybiAwIT09dC5tZXRyaWNBcml0aG1ldGljLmxlbmd0aCYmbi5wdXNoKHtraW5kOnRidC5PUEVSQVRPUixvcGVyYXRvcjokaHQuQU5EfSksbi5wdXNoKHtraW5kOnRidC5NRVRSSUMsbWV0cmljOmV9KSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse21ldHJpY0FyaXRobWV0aWM6Wy4uLnQubWV0cmljQXJpdGhtZXRpYywuLi5uXSxtZXRyaWNGaWx0ZXJzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0Lm1ldHJpY0ZpbHRlcnMpLHtbZV06e21heDoxLG1pbjotMSxpbmNsdWRlTmFOOiExfX0pLHNvcnQ6e21ldHJpYzplLG9yZGVyOm5idC5ERVNDRU5ESU5HfX0pfSkpLGJrKExidCwoKHQse21ldHJpYzplfSk9PntpZighdC5tZXRyaWNGaWx0ZXJzW2VdKXJldHVybiB0O2xldCBuPTAsbz0wLGk9Mjtjb25zdCBhPWZBKHQubWV0cmljRmlsdGVycyxbInN5bWJvbCI9PXR5cGVvZiBlP2U6ZSsiIl0pO2Zvcihjb25zdCBvIGluIHQubWV0cmljQXJpdGhtZXRpYyl7Y29uc3QgaT10Lm1ldHJpY0FyaXRobWV0aWNbb107aS5raW5kPT09dGJ0Lk1FVFJJQyYmaS5tZXRyaWM9PT1lJiYobj1wYXJzZUludChvKSl9cmV0dXJuIDAhPT1uJiYobz1uLTEsaT1uKzEpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bWV0cmljQXJpdGhtZXRpYzpbLi4udC5tZXRyaWNBcml0aG1ldGljLnNsaWNlKDAsbyksLi4udC5tZXRyaWNBcml0aG1ldGljLnNsaWNlKGkpXSxtZXRyaWNGaWx0ZXJzOmF9KX0pKSxiayhCYnQsKCh0LHttZXRyaWM6ZSxtYXg6bixtaW46byxpbmNsdWRlTmFOOml9KT0+dC5tZXRyaWNGaWx0ZXJzW2VdP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bWV0cmljRmlsdGVyczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5tZXRyaWNGaWx0ZXJzKSx7W2VdOnttYXg6bixtaW46byxpbmNsdWRlTmFOOml9fSl9KTp0KSksYmsoVmJ0LCgodCx7bWV0cmljOmV9KT0+e2NvbnN0IG49e21ldHJpYzplLG9yZGVyOm5idC5ERVNDRU5ESU5HfTtyZXR1cm4gdC5zb3J0Lm1ldHJpYz09PWUmJnQuc29ydC5vcmRlcj09PW5idC5ERVNDRU5ESU5HJiYobi5vcmRlcj1uYnQuQVNDRU5ETkcpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c29ydDpufSl9KSksYmsoamJ0LCgodCx7YW5ub3RhdGlvbjplfSk9Pntjb25zdCBuPXttZXRyaWM6ZSxvcmRlcjpuYnQuU0lNSUxBUn07cmV0dXJuIHQuc29ydC5tZXRyaWM9PT1lJiZ0LnNvcnQub3JkZXI9PT1uYnQuU0lNSUxBUiYmKG4ub3JkZXI9bmJ0LkRJU1NJTUlMQVIpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c29ydDpufSl9KSksYmsoVWJ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BjRXhwYW5kZWQ6IXQucGNFeHBhbmRlZH0pKSksYmsoR2J0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2Fubm90YXRpb25zRXhwYW5kZWQ6IXQuYW5ub3RhdGlvbnNFeHBhbmRlZH0pKSksYmsoV2J0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NpZGViYXJFeHBhbmRlZDohdC5zaWRlYmFyRXhwYW5kZWR9KSkpLGJrKFlidCwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzaG93Q291bnRzOiF0LnNob3dDb3VudHN9KSkpLGJrKHFidCwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzaG93SGlkZGVuQW5ub3RhdGlvbnM6IXQuc2hvd0hpZGRlbkFubm90YXRpb25zfSkpKSxiayhaYnQsKCh0LHttZXRyaWM6ZX0pPT57bGV0IG49ZWJ0LkVNQkVERElOR1Msbz1lO3JldHVybiBlPT09dC5lbWJlZGRpbmdzTWV0cmljJiYobj1lYnQuREVGQVVMVCxvPSIiKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3ZpZXdBY3RpdmU6bixlbWJlZGRpbmdzTWV0cmljOm99KX0pKSxiayhYYnQsKCh0LHtzaWRlYmFyV2lkdGg6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NpZGViYXJXaWR0aDplfSkpKSxiayhLYnQsKCh0LHtzaWRlYmFyV2lkdGg6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2VtYmVkZGluZ3NTaWRlYmFyV2lkdGg6ZX0pKSksYmsoSmJ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2VtYmVkZGluZ3NTaWRlYmFyRXhwYW5kZWQ6IXQuZW1iZWRkaW5nc1NpZGViYXJFeHBhbmRlZH0pKSksYmsoUWJ0LCgodCx7ZGF0YVNldDplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZW1iZWRkaW5nRGF0YVNldDplfSkpKSk7ZnVuY3Rpb24gaXl0KHQsZSl7cmV0dXJuIG95dCh0LGUpfWZ1bmN0aW9uIGF5dCh0LGUpezEmdCYmVG0oMCwibWF0LWljb24iLDcpfWZ1bmN0aW9uIHJ5dCh0LGUpe2lmKDEmdCYmKFJtKDAsIm1hdC1vcHRpb24iLDgpLGt1KDEpLEFtKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtEbSgidmFsdWUiLHQpLHJjKDEpLFN1KHQpfX1jbGFzcyBzeXR7Y29uc3RydWN0b3IoKXt0aGlzLm9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZT1uZXcgTGgsdGhpcy5vbkFkZEZpbHRlcj1uZXcgTGh9b25PcHRpb25TZWxlY3RlZCh0LGUpe3RoaXMub25BZGRGaWx0ZXIuZW1pdCh0Lm9wdGlvbi52YWx1ZSksZS52YWx1ZT0iIn19c3l0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxzeXQpfSxzeXQuybVjbXA9dG8oe3R5cGU6c3l0LHNlbGVjdG9yczpbWyJtZXRyaWMtc2VhcmNoLWNvbXBvbmVudCJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgidmFsaWQiLG4uaXNSZWdleEZpbHRlclZhbGlkKX0saW5wdXRzOntjb21wbGV0aW9uczoiY29tcGxldGlvbnMiLHJlZ2V4RmlsdGVyVmFsdWU6InJlZ2V4RmlsdGVyVmFsdWUiLGlzUmVnZXhGaWx0ZXJWYWxpZDoiaXNSZWdleEZpbHRlclZhbGlkIn0sb3V0cHV0czp7b25SZWdleEZpbHRlclZhbHVlQ2hhbmdlOiJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLG9uQWRkRmlsdGVyOiJvbkFkZEZpbHRlciJ9LGRlY2xzOjcsdmFyczo0LGNvbnN0czpbWyJzdmdJY29uIiwic2VhcmNoXzI0cHgiXSxbIm1hdElucHV0IiwiIiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwicGxhY2Vob2xkZXIiLCJBZGQgTWV0cmljIEZpbHRlciIsMywidmFsdWUiLCJtYXRBdXRvY29tcGxldGUiLCJpbnB1dCJdLFsibWF0SW5wdXQiLCIiXSxbInN2Z0ljb24iLCJlcnJvcl8yNHB4IiwiY2xhc3MiLCJlcnJvci1pY29uIiwibWF0VG9vbHRpcCIsIkludmFsaWQgcmVnZXggZmlsdGVyLiBUaGUgcmVzdWx0IG1heSBiZSBzdGFsZS4iLDQsIm5nSWYiXSxbImF1dG9BY3RpdmVGaXJzdE9wdGlvbiIsIiIsMywib3B0aW9uU2VsZWN0ZWQiXSxbImZpbHRlck1hdGNoZXMiLCJtYXRBdXRvY29tcGxldGUiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsic3ZnSWNvbiIsImVycm9yXzI0cHgiLCJtYXRUb29sdGlwIiwiSW52YWxpZCByZWdleCBmaWx0ZXIuIFRoZSByZXN1bHQgbWF5IGJlIHN0YWxlLiIsMSwiZXJyb3ItaWNvbiJdLFszLCJ2YWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlKXtjb25zdCB0PUhtKCk7VG0oMCwibWF0LWljb24iLDApLFJtKDEsImlucHV0IiwxLDIpLFZtKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25SZWdleEZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoZS50YXJnZXQudmFsdWUpfSkpLEFtKCksUXAoMyxheXQsMSwwLCJtYXQtaWNvbiIsMyksUm0oNCwibWF0LWF1dG9jb21wbGV0ZSIsNCw1KSxWbSgib3B0aW9uU2VsZWN0ZWQiLChmdW5jdGlvbiBlKG8pe2hpKHQpO2NvbnN0IGk9JHAoMik7cmV0dXJuIG4ub25PcHRpb25TZWxlY3RlZChvLGkpfSkpLFFwKDYscnl0LDIsMiwibWF0LW9wdGlvbiIsNiksQW0oKX1pZigyJmUpe2NvbnN0IHQ9JHAoNSk7cmMoMSksRG0oInZhbHVlIixuLnJlZ2V4RmlsdGVyVmFsdWUpKCJtYXRBdXRvY29tcGxldGUiLHQpLHJjKDIpLERtKCJuZ0lmIiwhbi5pc1JlZ2V4RmlsdGVyVmFsaWQpLHJjKDMpLERtKCJuZ0Zvck9mIixuLmNvbXBsZXRpb25zKX19LGRpcmVjdGl2ZXM6W0RXLExZLFcwLGRNLEgwLGxNLEJIXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17ZmxleDpub25lO21hcmdpbi1yaWdodDo1cHh9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cGFkZGluZzowIDEwcHg7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOi45ZW19W19uZ2hvc3QtJUNPTVAlXTpub3QoLnZhbGlkKXtjb2xvcjojYzYyODI4fVtfbmdob3N0LSVDT01QJV06bm90KC52YWxpZCkgICBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17Y2FyZXQtY29sb3I6Y3VycmVudENvbG9yfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChzeXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljLXNlYXJjaC1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL21ldHJpY19zZWFyY2hfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vbWV0cmljX3NlYXJjaF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7Y29tcGxldGlvbnM6W3t0eXBlOnh5fV0scmVnZXhGaWx0ZXJWYWx1ZTpbe3R5cGU6eHl9XSxpc1JlZ2V4RmlsdGVyVmFsaWQ6W3t0eXBlOlB5LGFyZ3M6WyJjbGFzcy52YWxpZCJdfSx7dHlwZTp4eX1dLG9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZTpbe3R5cGU6T3l9XSxvbkFkZEZpbHRlcjpbe3R5cGU6T3l9XX0pO2NsYXNzIGx5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5tZXRyaWNzUmVnZXgkPXRoaXMuc3RvcmUuc2VsZWN0KHVidCksdGhpcy5hY3RpdmVSdW5zJD10aGlzLnN0b3JlLnBpcGUoRncoTk4pKS5waXBlKEl0KCh0PT50P0FycmF5LmZyb20odC5lbnRyaWVzKCkpLmZpbHRlcigodD0+dFsxXSkpLm1hcCgodD0+dFswXSkpOltdKSkpLHRoaXMubWV0cmljc0ZvckFjdGl2ZVJ1bnMkPVd0KHRoaXMuYWN0aXZlUnVucyQsdGhpcy5zdG9yZS5zZWxlY3Qoc2J0KSkucGlwZShJdCgoKFt0LGVdKT0+e2NvbnN0IG49bmV3IFNldDtmb3IoY29uc3QgbyBvZiB0KWlmKGVbb10pZm9yKGNvbnN0IHQgb2YgZVtvXSluLmFkZCh0KTtyZXR1cm5bLi4ubl19KSkpLHRoaXMuaXNNZXRyaWNzRmlsdGVyVmFsaWQkPXRoaXMubWV0cmljc1JlZ2V4JC5waXBlKEl0KCh0PT57dHJ5e3JldHVybiBCb29sZWFuKG5ldyBSZWdFeHAodCkpfWNhdGNoKHQpe3JldHVybiExfX0pKSksdGhpcy5tZXRyaWNGaWx0ZXJLZXlzJD10aGlzLnN0b3JlLnBpcGUoRncoZ2J0KSkucGlwZShJdCgodD0+T2JqZWN0LmtleXModCkpKSksdGhpcy5jb21wbGV0aW9ucyQ9V3QodGhpcy5tZXRyaWNzRm9yQWN0aXZlUnVucyQsdGhpcy5tZXRyaWNzUmVnZXgkLHRoaXMubWV0cmljRmlsdGVyS2V5cyQpLnBpcGUoSXQoKChbdCxlLG5dKT0+e2NvbnN0IG89dC5maWx0ZXIoKHQ9PiFuLmluY2x1ZGVzKHQpKSk7dHJ5e2NvbnN0IHQ9bmV3IFJlZ0V4cChlLCJpIik7cmV0dXJuIG8uZmlsdGVyKChlPT50LnRlc3QoZSkpKS5zb3J0KCl9Y2F0Y2godCl7cmV0dXJuW119fSkpKX1vbkZpbHRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKEhidCh7cmVnZXg6dH0pKX1vbkFkZEZpbHRlcih0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKEZidCh7bWV0cmljOnR9KSksdGhpcy5zdG9yZS5kaXNwYXRjaChIYnQoe3JlZ2V4OiIifSkpfX1mdW5jdGlvbiBjeXQodCxlLG4pe2NvbnN0IG89W1tlLC4uLm5dXTtpZighbi5sZW5ndGh8fCF0Lmxlbmd0aClyZXR1cm4iZGF0YTp0ZXh0L2NzdjtjaGFyc2V0PXV0Zi04LCIrby5tYXAoKHQ9PnQuam9pbigiLCIpKSkuam9pbigiXG4iKTtjb25zdCBpPW4ubWFwKCh0PT5ueXQodCkpKTtmb3IoY29uc3RbbixhXW9mIHQpe2NvbnN0IHQ9YS5maWx0ZXIoKHQ9PnQucnVuPT09ZSkpO2lmKHQubGVuZ3RoKXtjb25zdCBlPVtuXTtmb3IoY29uc3QgbiBvZiBpKXtjb25zdCBvPXQuZmluZCgodD0+dC5tZXRyaWM9PT1uKSk7ZS5wdXNoKHZvaWQgMD09PW8/Im51bGwiOmAke28ublBNSVZhbHVlfWApfW8ucHVzaChlKX19cmV0dXJuImRhdGE6dGV4dC9jc3Y7Y2hhcnNldD11dGYtOCwiK28ubWFwKCh0PT50LmpvaW4oIiwiKSkpLmpvaW4oIlxuIil9bHl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxseXQpKFNtKEl3KSl9LGx5dC7JtWNtcD10byh7dHlwZTpseXQsc2VsZWN0b3JzOltbIm5wbWktbWV0cmljLXNlYXJjaCJdXSxkZWNsczo0LHZhcnM6OSxjb25zdHM6W1szLCJyZWdleEZpbHRlclZhbHVlIiwiY29tcGxldGlvbnMiLCJpc1JlZ2V4RmlsdGVyVmFsaWQiLCJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLCJvbkFkZEZpbHRlciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWV0cmljLXNlYXJjaC1jb21wb25lbnQiLDApLFZtKCJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uRmlsdGVyQ2hhbmdlKGUpfSkpKCJvbkFkZEZpbHRlciIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25BZGRGaWx0ZXIoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgicmVnZXhGaWx0ZXJWYWx1ZSIsVGgoMSwzLG4ubWV0cmljc1JlZ2V4JCkpKCJjb21wbGV0aW9ucyIsVGgoMiw1LG4uY29tcGxldGlvbnMkKSkoImlzUmVnZXhGaWx0ZXJWYWxpZCIsVGgoMyw3LG4uaXNNZXRyaWNzRmlsdGVyVmFsaWQkKSl9LGRpcmVjdGl2ZXM6W3N5dF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGx5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLW1ldHJpYy1zZWFyY2giLHRlbXBsYXRlOidcbiAgICA8bWV0cmljLXNlYXJjaC1jb21wb25lbnRcbiAgICAgIFtyZWdleEZpbHRlclZhbHVlXT0ibWV0cmljc1JlZ2V4JCB8IGFzeW5jIlxuICAgICAgW2NvbXBsZXRpb25zXT0iY29tcGxldGlvbnMkIHwgYXN5bmMiXG4gICAgICBbaXNSZWdleEZpbHRlclZhbGlkXT0iaXNNZXRyaWNzRmlsdGVyVmFsaWQkIHwgYXN5bmMiXG4gICAgICAob25SZWdleEZpbHRlclZhbHVlQ2hhbmdlKT0ib25GaWx0ZXJDaGFuZ2UoJGV2ZW50KSJcbiAgICAgIChvbkFkZEZpbHRlcik9Im9uQWRkRmlsdGVyKCRldmVudCkiXG4gICAgPjwvbWV0cmljLXNlYXJjaC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjb25zdCBkeXQ9ZnVuY3Rpb24odCl7cmV0dXJueyJhY3RpdmUtYnV0dG9uIjp0fX07Y2xhc3MgcHl0e2Rvd25sb2FkUmVzdWx0cygpe2Zvcihjb25zdCB0IG9mIHRoaXMucnVucyl7Y29uc3QgZT1jeXQodGhpcy5mbGFnZ2VkRGF0YSx0LHRoaXMubWV0cmljcyksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7bi5zZXRBdHRyaWJ1dGUoImhyZWYiLGUpLG4uc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsYHJlcG9ydF8ke3R9LmNzdmApLG4uY2xpY2soKX19fXB5dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cHl0KX0scHl0Lsm1Y21wPXRvKHt0eXBlOnB5dCxzZWxlY3RvcnM6W1sicmVzdWx0cy1kb3dubG9hZC1jb21wb25lbnQiXV0saW5wdXRzOntudW1GbGFnZ2VkQW5ub3RhdGlvbnM6Im51bUZsYWdnZWRBbm5vdGF0aW9ucyIscnVuczoicnVucyIsZmxhZ2dlZERhdGE6ImZsYWdnZWREYXRhIixtZXRyaWNzOiJtZXRyaWNzIn0sZGVjbHM6NCx2YXJzOjUsY29uc3RzOltbIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiIsInRpdGxlIiwiRXhwb3J0IENTViByZXBvcnRzIG9mIGFsbCBmbGFnZ2VkIGFubm90YXRpb25zLiBXaWxsIGdlbmVyYXRlIG9uZSBDU1YgcGVyIGFjdGl2ZSBydW4uIiwzLCJkaXNhYmxlZCIsIm5nQ2xhc3MiLCJjbGljayJdLFsxLCJidXR0b24tY29udGVudHMiXSxbInN2Z0ljb24iLCJnZXRfYXBwXzI0cHgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImJ1dHRvbiIsMCksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmRvd25sb2FkUmVzdWx0cygpfSkpLFJtKDEsInNwYW4iLDEpLFRtKDIsIm1hdC1pY29uIiwyKSxrdSgzKSxBbSgpLEFtKCkpLDImZSYmKERtKCJkaXNhYmxlZCIsMD09PW4ubnVtRmxhZ2dlZEFubm90YXRpb25zKSgibmdDbGFzcyIsTWgoMyxkeXQsbi5udW1GbGFnZ2VkQW5ub3RhdGlvbnM+MCkpLHJjKDMpLER1KCIgRmxhZ2dlZCBSb3dzICgiLG4ubnVtRmxhZ2dlZEFubm90YXRpb25zLCIpICIpKX0sZGlyZWN0aXZlczpbWEgsYU0sRFddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5hY3RpdmUtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2NvbG9yOiNmZmZ9LmJ1dHRvbi1jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9bWF0LWljb25bX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDo2cHh9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHB5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJyZXN1bHRzLWRvd25sb2FkLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vcmVzdWx0c19kb3dubG9hZF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9yZXN1bHRzX2Rvd25sb2FkX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtudW1GbGFnZ2VkQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0scnVuczpbe3R5cGU6eHl9XSxmbGFnZ2VkRGF0YTpbe3R5cGU6eHl9XSxtZXRyaWNzOlt7dHlwZTp4eX1dfSk7Y2xhc3MgbXl0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmZsYWdnZWRBbm5vdGF0aW9ucyQ9dGhpcy5zdG9yZS5zZWxlY3QoZGJ0KSx0aGlzLm51bUZsYWdnZWRBbm5vdGF0aW9ucyQ9dGhpcy5mbGFnZ2VkQW5ub3RhdGlvbnMkLnBpcGUoSXQoKHQ9PnQubGVuZ3RoKSkpLHRoaXMuYWN0aXZlUnVucyQ9dGhpcy5zdG9yZS5zZWxlY3QoTk4pLnBpcGUoSXQoKHQ9PnQ/QXJyYXkuZnJvbSh0LmVudHJpZXMoKSkuZmlsdGVyKCh0PT50WzFdKSkubWFwKCh0PT50WzBdKSk6W10pKSksdGhpcy5mbGFnZ2VkRGF0YSQ9V3QoW3RoaXMuc3RvcmUuc2VsZWN0KHJidCksdGhpcy5mbGFnZ2VkQW5ub3RhdGlvbnMkXSkucGlwZShJdCgoKFt0LGVdKT0+e2NvbnN0IG49bmV3IFNldChlKTtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkuZmlsdGVyKCh0PT5uLmhhcyh0WzBdKSkpfSkpKSx0aGlzLm1ldHJpY3MkPVd0KFt0aGlzLnN0b3JlLnNlbGVjdChzYnQpLHRoaXMuYWN0aXZlUnVucyQsdGhpcy5zdG9yZS5zZWxlY3QoZ2J0KV0pLnBpcGUoSXQoKChbdCxlLG5dKT0+e2xldCBvPU9iamVjdC5rZXlzKG4pO2Zvcihjb25zdCBuIG9mIGUpdFtuXSYmKG89by5jb25jYXQodFtuXS5maWx0ZXIoKHQ9PmV5dCh0KSkpKSk7cmV0dXJuIG89Wy4uLm5ldyBTZXQobyldLG99KSkpfX1teXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG15dCkoU20oSXcpKX0sbXl0Lsm1Y21wPXRvKHt0eXBlOm15dCxzZWxlY3RvcnM6W1sibnBtaS1yZXN1bHRzLWRvd25sb2FkIl1dLGRlY2xzOjUsdmFyczoxMixjb25zdHM6W1szLCJudW1GbGFnZ2VkQW5ub3RhdGlvbnMiLCJydW5zIiwiZmxhZ2dlZERhdGEiLCJtZXRyaWNzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJyZXN1bHRzLWRvd25sb2FkLWNvbXBvbmVudCIsMCksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSksMiZlJiZEbSgibnVtRmxhZ2dlZEFubm90YXRpb25zIixUaCgxLDQsbi5udW1GbGFnZ2VkQW5ub3RhdGlvbnMkKSkoInJ1bnMiLFRoKDIsNixuLmFjdGl2ZVJ1bnMkKSkoImZsYWdnZWREYXRhIixUaCgzLDgsbi5mbGFnZ2VkRGF0YSQpKSgibWV0cmljcyIsVGgoNCwxMCxuLm1ldHJpY3MkKSl9LGRpcmVjdGl2ZXM6W3B5dF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKG15dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLXJlc3VsdHMtZG93bmxvYWQiLHRlbXBsYXRlOidcbiAgICA8cmVzdWx0cy1kb3dubG9hZC1jb21wb25lbnRcbiAgICAgIFtudW1GbGFnZ2VkQW5ub3RhdGlvbnNdPSJudW1GbGFnZ2VkQW5ub3RhdGlvbnMkIHwgYXN5bmMiXG4gICAgICBbcnVuc109ImFjdGl2ZVJ1bnMkIHwgYXN5bmMiXG4gICAgICBbZmxhZ2dlZERhdGFdPSJmbGFnZ2VkRGF0YSQgfCBhc3luYyJcbiAgICAgIFttZXRyaWNzXT0ibWV0cmljcyQgfCBhc3luYyJcbiAgICA+PC9yZXN1bHRzLWRvd25sb2FkLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IHV5dD1uZXcgR2EoIk1hdENoaXBSZW1vdmUiKSxmeXQ9bmV3IEdhKCJNYXRDaGlwQXZhdGFyIiksZ3l0PW5ldyBHYSgiTWF0Q2hpcFRyYWlsaW5nSWNvbiIpLGh5dD0kSShKSShRSShjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSksInByaW1hcnkiKSwtMSk7Y2xhc3MgYnl0e31ieXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGJ5dCl9LGJ5dC7JtWRpcj1sbyh7dHlwZTpieXQsc2VsZWN0b3JzOltbIm1hdC1jaGlwLWF2YXRhciJdLFsiIiwibWF0Q2hpcEF2YXRhciIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1jaGlwLWF2YXRhciJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6Znl0LHVzZUV4aXN0aW5nOmJ5dH1dKV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGJ5dCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJtYXQtY2hpcC1hdmF0YXIsIFttYXRDaGlwQXZhdGFyXSIsaG9zdDp7Y2xhc3M6Im1hdC1jaGlwLWF2YXRhciJ9LHByb3ZpZGVyczpbe3Byb3ZpZGU6Znl0LHVzZUV4aXN0aW5nOmJ5dH1dfV19XSxudWxsLG51bGwpO2NsYXNzIHl5dHt9eXl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5eXQpfSx5eXQuybVkaXI9bG8oe3R5cGU6eXl0LHNlbGVjdG9yczpbWyJtYXQtY2hpcC10cmFpbGluZy1pY29uIl0sWyIiLCJtYXRDaGlwVHJhaWxpbmdJY29uIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LWNoaXAtdHJhaWxpbmctaWNvbiJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6Z3l0LHVzZUV4aXN0aW5nOnl5dH1dKV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHl5dCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJtYXQtY2hpcC10cmFpbGluZy1pY29uLCBbbWF0Q2hpcFRyYWlsaW5nSWNvbl0iLGhvc3Q6e2NsYXNzOiJtYXQtY2hpcC10cmFpbGluZy1pY29uIn0scHJvdmlkZXJzOlt7cHJvdmlkZTpneXQsdXNlRXhpc3Rpbmc6eXl0fV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgX3l0IGV4dGVuZHMgaHl0e2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyl7c3VwZXIodCksdGhpcy5fbmdab25lPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9aSx0aGlzLl9oYXNGb2N1cz0hMSx0aGlzLmNoaXBMaXN0U2VsZWN0YWJsZT0hMCx0aGlzLl9jaGlwTGlzdE11bHRpcGxlPSExLHRoaXMuX2NoaXBMaXN0RGlzYWJsZWQ9ITEsdGhpcy5fc2VsZWN0ZWQ9ITEsdGhpcy5fc2VsZWN0YWJsZT0hMCx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl9yZW1vdmFibGU9ITAsdGhpcy5fb25Gb2N1cz1uZXcgSSx0aGlzLl9vbkJsdXI9bmV3IEksdGhpcy5zZWxlY3Rpb25DaGFuZ2U9bmV3IExoLHRoaXMuZGVzdHJveWVkPW5ldyBMaCx0aGlzLnJlbW92ZWQ9bmV3IExoLHRoaXMuX2FkZEhvc3RDbGFzc05hbWUoKSx0aGlzLl9jaGlwUmlwcGxlVGFyZ2V0PWEuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fY2hpcFJpcHBsZVRhcmdldC5jbGFzc0xpc3QuYWRkKCJtYXQtY2hpcC1yaXBwbGUiKSx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY2hpcFJpcHBsZVRhcmdldCksdGhpcy5fY2hpcFJpcHBsZT1uZXcgUEgodGhpcyxlLHRoaXMuX2NoaXBSaXBwbGVUYXJnZXQsbiksdGhpcy5fY2hpcFJpcHBsZS5zZXR1cFRyaWdnZXJFdmVudHModCksdGhpcy5yaXBwbGVDb25maWc9b3x8e30sdGhpcy5fYW5pbWF0aW9uc0Rpc2FibGVkPSJOb29wQW5pbWF0aW9ucyI9PT1yLHRoaXMudGFiSW5kZXg9bnVsbCE9cyYmcGFyc2VJbnQocyl8fC0xfWdldCByaXBwbGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHx0aGlzLmRpc2FibGVSaXBwbGV8fHRoaXMuX2FuaW1hdGlvbnNEaXNhYmxlZHx8ISF0aGlzLnJpcHBsZUNvbmZpZy5kaXNhYmxlZH1nZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWR9c2V0IHNlbGVjdGVkKHQpe2NvbnN0IGU9eXoodCk7ZSE9PXRoaXMuX3NlbGVjdGVkJiYodGhpcy5fc2VsZWN0ZWQ9ZSx0aGlzLl9kaXNwYXRjaFNlbGVjdGlvbkNoYW5nZSgpKX1nZXQgdmFsdWUoKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fdmFsdWU/dGhpcy5fdmFsdWU6dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50fXNldCB2YWx1ZSh0KXt0aGlzLl92YWx1ZT10fWdldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGFibGUmJnRoaXMuY2hpcExpc3RTZWxlY3RhYmxlfXNldCBzZWxlY3RhYmxlKHQpe3RoaXMuX3NlbGVjdGFibGU9eXoodCl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2NoaXBMaXN0RGlzYWJsZWR8fHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD15eih0KX1nZXQgcmVtb3ZhYmxlKCl7cmV0dXJuIHRoaXMuX3JlbW92YWJsZX1zZXQgcmVtb3ZhYmxlKHQpe3RoaXMuX3JlbW92YWJsZT15eih0KX1nZXQgYXJpYVNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuc2VsZWN0YWJsZSYmKHRoaXMuX2NoaXBMaXN0TXVsdGlwbGV8fHRoaXMuc2VsZWN0ZWQpP3RoaXMuc2VsZWN0ZWQudG9TdHJpbmcoKTpudWxsfV9hZGRIb3N0Q2xhc3NOYW1lKCl7Y29uc3QgdD0ibWF0LWJhc2ljLWNoaXAiLGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2UuaGFzQXR0cmlidXRlKHQpfHxlLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PXQ/ZS5jbGFzc0xpc3QuYWRkKHQpOmUuY2xhc3NMaXN0LmFkZCgibWF0LXN0YW5kYXJkLWNoaXAiKX1uZ09uRGVzdHJveSgpe3RoaXMuZGVzdHJveWVkLmVtaXQoe2NoaXA6dGhpc30pLHRoaXMuX2NoaXBSaXBwbGUuX3JlbW92ZVRyaWdnZXJFdmVudHMoKX1zZWxlY3QoKXt0aGlzLl9zZWxlY3RlZHx8KHRoaXMuX3NlbGVjdGVkPSEwLHRoaXMuX2Rpc3BhdGNoU2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWRlc2VsZWN0KCl7dGhpcy5fc2VsZWN0ZWQmJih0aGlzLl9zZWxlY3RlZD0hMSx0aGlzLl9kaXNwYXRjaFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1zZWxlY3RWaWFJbnRlcmFjdGlvbigpe3RoaXMuX3NlbGVjdGVkfHwodGhpcy5fc2VsZWN0ZWQ9ITAsdGhpcy5fZGlzcGF0Y2hTZWxlY3Rpb25DaGFuZ2UoITApLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX10b2dnbGVTZWxlY3RlZCh0PSExKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5fZGlzcGF0Y2hTZWxlY3Rpb25DaGFuZ2UodCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5zZWxlY3RlZH1mb2N1cygpe3RoaXMuX2hhc0ZvY3VzfHwodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCksdGhpcy5fb25Gb2N1cy5uZXh0KHtjaGlwOnRoaXN9KSksdGhpcy5faGFzRm9jdXM9ITB9cmVtb3ZlKCl7dGhpcy5yZW1vdmFibGUmJnRoaXMucmVtb3ZlZC5lbWl0KHtjaGlwOnRoaXN9KX1faGFuZGxlQ2xpY2sodCl7dGhpcy5kaXNhYmxlZD90LnByZXZlbnREZWZhdWx0KCk6dC5zdG9wUHJvcGFnYXRpb24oKX1faGFuZGxlS2V5ZG93bih0KXtpZighdGhpcy5kaXNhYmxlZClzd2l0Y2godC5rZXlDb2RlKXtjYXNlIDQ2OmNhc2UgODp0aGlzLnJlbW92ZSgpLHQucHJldmVudERlZmF1bHQoKTticmVhaztjYXNlIGZ6OnRoaXMuc2VsZWN0YWJsZSYmdGhpcy50b2dnbGVTZWxlY3RlZCghMCksdC5wcmV2ZW50RGVmYXVsdCgpfX1fYmx1cigpe3RoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGJlKDEpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fbmdab25lLnJ1bigoKCk9Pnt0aGlzLl9oYXNGb2N1cz0hMSx0aGlzLl9vbkJsdXIubmV4dCh7Y2hpcDp0aGlzfSl9KSl9KSl9X2Rpc3BhdGNoU2VsZWN0aW9uQ2hhbmdlKHQ9ITEpe3RoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoe3NvdXJjZTp0aGlzLGlzVXNlcklucHV0OnQsc2VsZWN0ZWQ6dGhpcy5fc2VsZWN0ZWR9KX19X3l0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfeXQpKFNtKGhnKSxTbShhXyksU20od3opLFNtKHdILDgpLFNtKFVnKSxTbShaXyksU20oVlAsOCksTmEoInRhYmluZGV4IikpfSxfeXQuybVkaXI9bG8oe3R5cGU6X3l0LHNlbGVjdG9yczpbWyJtYXQtYmFzaWMtY2hpcCJdLFsiIiwibWF0LWJhc2ljLWNoaXAiLCIiXSxbIm1hdC1jaGlwIl0sWyIiLCJtYXQtY2hpcCIsIiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJigkaChvLGZ5dCw1KSwkaChvLGd5dCw1KSwkaChvLHV5dCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5hdmF0YXI9dC5maXJzdCksSmgodD10YigpKSYmKG4udHJhaWxpbmdJY29uPXQuZmlyc3QpLEpoKHQ9dGIoKSkmJihuLnJlbW92ZUljb249dC5maXJzdCl9fSxob3N0QXR0cnM6WyJyb2xlIiwib3B0aW9uIiwxLCJtYXQtY2hpcCIsIm1hdC1mb2N1cy1pbmRpY2F0b3IiXSxob3N0VmFyczoxNCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlQ2xpY2soZSl9KSkoImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVLZXlkb3duKGUpfSkpKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5mb2N1cygpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9ibHVyKCl9KSksMiZlJiYoanAoInRhYmluZGV4IixuLmRpc2FibGVkP251bGw6bi50YWJJbmRleCkoImRpc2FibGVkIixuLmRpc2FibGVkfHxudWxsKSgiYXJpYS1kaXNhYmxlZCIsbi5kaXNhYmxlZC50b1N0cmluZygpKSgiYXJpYS1zZWxlY3RlZCIsbi5hcmlhU2VsZWN0ZWQpLHB1KCJtYXQtY2hpcC1zZWxlY3RlZCIsbi5zZWxlY3RlZCkoIm1hdC1jaGlwLXdpdGgtYXZhdGFyIixuLmF2YXRhcikoIm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbiIsbi50cmFpbGluZ0ljb258fG4ucmVtb3ZlSWNvbikoIm1hdC1jaGlwLWRpc2FibGVkIixuLmRpc2FibGVkKSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLG4uX2FuaW1hdGlvbnNEaXNhYmxlZCkpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsdGFiSW5kZXg6InRhYkluZGV4IixzZWxlY3RlZDoic2VsZWN0ZWQiLHZhbHVlOiJ2YWx1ZSIsc2VsZWN0YWJsZToic2VsZWN0YWJsZSIsZGlzYWJsZWQ6ImRpc2FibGVkIixyZW1vdmFibGU6InJlbW92YWJsZSJ9LG91dHB1dHM6e3NlbGVjdGlvbkNoYW5nZToic2VsZWN0aW9uQ2hhbmdlIixkZXN0cm95ZWQ6ImRlc3Ryb3llZCIscmVtb3ZlZDoicmVtb3ZlZCJ9LGV4cG9ydEFzOlsibWF0Q2hpcCJdLGZlYXR1cmVzOlt4cF19KSxfeXQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoZ30se3R5cGU6YV99LHt0eXBlOnd6fSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W3dIXX1dfSx7dHlwZTpVZ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W1pfXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX1dLF95dC5wcm9wRGVjb3JhdG9ycz17YXZhdGFyOlt7dHlwZTpxYSxhcmdzOltmeXRdfV0sdHJhaWxpbmdJY29uOlt7dHlwZTpxYSxhcmdzOltneXRdfV0scmVtb3ZlSWNvbjpbe3R5cGU6cWEsYXJnczpbdXl0XX1dLHNlbGVjdGVkOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLHNlbGVjdGFibGU6W3t0eXBlOnh5fV0sZGlzYWJsZWQ6W3t0eXBlOnh5fV0scmVtb3ZhYmxlOlt7dHlwZTp4eX1dLHNlbGVjdGlvbkNoYW5nZTpbe3R5cGU6T3l9XSxkZXN0cm95ZWQ6W3t0eXBlOk95fV0scmVtb3ZlZDpbe3R5cGU6T3l9XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChfeXQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWJhc2ljLWNoaXAsIFttYXQtYmFzaWMtY2hpcF0sIG1hdC1jaGlwLCBbbWF0LWNoaXBdIixpbnB1dHM6WyJjb2xvciIsImRpc2FibGVSaXBwbGUiLCJ0YWJJbmRleCJdLGV4cG9ydEFzOiJtYXRDaGlwIixob3N0OntjbGFzczoibWF0LWNoaXAgbWF0LWZvY3VzLWluZGljYXRvciIsIlthdHRyLnRhYmluZGV4XSI6ImRpc2FibGVkID8gbnVsbCA6IHRhYkluZGV4Iixyb2xlOiJvcHRpb24iLCJbY2xhc3MubWF0LWNoaXAtc2VsZWN0ZWRdIjoic2VsZWN0ZWQiLCJbY2xhc3MubWF0LWNoaXAtd2l0aC1hdmF0YXJdIjoiYXZhdGFyIiwiW2NsYXNzLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbl0iOiJ0cmFpbGluZ0ljb24gfHwgcmVtb3ZlSWNvbiIsIltjbGFzcy5tYXQtY2hpcC1kaXNhYmxlZF0iOiJkaXNhYmxlZCIsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOiJfYW5pbWF0aW9uc0Rpc2FibGVkIiwiW2F0dHIuZGlzYWJsZWRdIjoiZGlzYWJsZWQgfHwgbnVsbCIsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiZGlzYWJsZWQudG9TdHJpbmcoKSIsIlthdHRyLmFyaWEtc2VsZWN0ZWRdIjoiYXJpYVNlbGVjdGVkIiwiKGNsaWNrKSI6Il9oYW5kbGVDbGljaygkZXZlbnQpIiwiKGtleWRvd24pIjoiX2hhbmRsZUtleWRvd24oJGV2ZW50KSIsIihmb2N1cykiOiJmb2N1cygpIiwiKGJsdXIpIjoiX2JsdXIoKSJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOmFffSx7dHlwZTp3en0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOlt3SF19XX0se3R5cGU6VWd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltaX119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOmphLGFyZ3M6WyJ0YWJpbmRleCJdfV19XX0pLHtzZWxlY3Rpb25DaGFuZ2U6W3t0eXBlOk95fV0sZGVzdHJveWVkOlt7dHlwZTpPeX1dLHJlbW92ZWQ6W3t0eXBlOk95fV0sc2VsZWN0ZWQ6W3t0eXBlOnh5fV0sdmFsdWU6W3t0eXBlOnh5fV0sc2VsZWN0YWJsZTpbe3R5cGU6eHl9XSxkaXNhYmxlZDpbe3R5cGU6eHl9XSxyZW1vdmFibGU6W3t0eXBlOnh5fV0sYXZhdGFyOlt7dHlwZTpxYSxhcmdzOltmeXRdfV0sdHJhaWxpbmdJY29uOlt7dHlwZTpxYSxhcmdzOltneXRdfV0scmVtb3ZlSWNvbjpbe3R5cGU6cWEsYXJnczpbdXl0XX1dfSk7Y2xhc3MgQ3l0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fcGFyZW50Q2hpcD10LCJCVVRUT04iPT09ZS5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lJiZlLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ0eXBlIiwiYnV0dG9uIil9X2hhbmRsZUNsaWNrKHQpe2NvbnN0IGU9dGhpcy5fcGFyZW50Q2hpcDtlLnJlbW92YWJsZSYmIWUuZGlzYWJsZWQmJmUucmVtb3ZlKCksdC5zdG9wUHJvcGFnYXRpb24oKX19Q3l0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDeXQpKFNtKF95dCksU20oaGcpKX0sQ3l0Lsm1ZGlyPWxvKHt0eXBlOkN5dCxzZWxlY3RvcnM6W1siIiwibWF0Q2hpcFJlbW92ZSIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1jaGlwLXJlbW92ZSIsIm1hdC1jaGlwLXRyYWlsaW5nLWljb24iXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlQ2xpY2soZSl9KSl9LGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6dXl0LHVzZUV4aXN0aW5nOkN5dH1dKV19KSxDeXQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpfeXR9LHt0eXBlOmhnfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChDeXQsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoiW21hdENoaXBSZW1vdmVdIixob3N0OntjbGFzczoibWF0LWNoaXAtcmVtb3ZlIG1hdC1jaGlwLXRyYWlsaW5nLWljb24iLCIoY2xpY2spIjoiX2hhbmRsZUNsaWNrKCRldmVudCkifSxwcm92aWRlcnM6W3twcm92aWRlOnV5dCx1c2VFeGlzdGluZzpDeXR9XX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOl95dH0se3R5cGU6aGd9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgTXl0PW5ldyBHYSgibWF0LWNoaXBzLWRlZmF1bHQtb3B0aW9ucyIpLHZ5dD10SChjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI9dCx0aGlzLl9wYXJlbnRGb3JtPWUsdGhpcy5fcGFyZW50Rm9ybUdyb3VwPW4sdGhpcy5uZ0NvbnRyb2w9b319KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IHh5dD0wO2NsYXNzIE95dHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc291cmNlPXQsdGhpcy52YWx1ZT1lfX1jbGFzcyBQeXQgZXh0ZW5kcyB2eXR7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscil7c3VwZXIoYSxvLGksciksdGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fZGlyPW4sdGhpcy5jb250cm9sVHlwZT0ibWF0LWNoaXAtbGlzdCIsdGhpcy5fbGFzdERlc3Ryb3llZENoaXBJbmRleD1udWxsLHRoaXMuX2Rlc3Ryb3llZD1uZXcgSSx0aGlzLl91aWQ9Im1hdC1jaGlwLWxpc3QtIit4eXQrKyx0aGlzLl90YWJJbmRleD0wLHRoaXMuX3VzZXJUYWJJbmRleD1udWxsLHRoaXMuX29uVG91Y2hlZD0oKT0+e30sdGhpcy5fb25DaGFuZ2U9KCk9Pnt9LHRoaXMuX211bHRpcGxlPSExLHRoaXMuX2NvbXBhcmVXaXRoPSh0LGUpPT50PT09ZSx0aGlzLl9yZXF1aXJlZD0hMSx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLmFyaWFPcmllbnRhdGlvbj0iaG9yaXpvbnRhbCIsdGhpcy5fc2VsZWN0YWJsZT0hMCx0aGlzLmNoYW5nZT1uZXcgTGgsdGhpcy52YWx1ZUNoYW5nZT1uZXcgTGgsdGhpcy5uZ0NvbnRyb2wmJih0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yPXRoaXMpfWdldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLm11bHRpcGxlP3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkOnRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkWzBdfWdldCByb2xlKCl7cmV0dXJuIHRoaXMuZW1wdHk/bnVsbDoibGlzdGJveCJ9Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuX211bHRpcGxlfXNldCBtdWx0aXBsZSh0KXt0aGlzLl9tdWx0aXBsZT15eih0KSx0aGlzLl9zeW5jQ2hpcHNTdGF0ZSgpfWdldCBjb21wYXJlV2l0aCgpe3JldHVybiB0aGlzLl9jb21wYXJlV2l0aH1zZXQgY29tcGFyZVdpdGgodCl7dGhpcy5fY29tcGFyZVdpdGg9dCx0aGlzLl9zZWxlY3Rpb25Nb2RlbCYmdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLl92YWx1ZX1zZXQgdmFsdWUodCl7dGhpcy53cml0ZVZhbHVlKHQpLHRoaXMuX3ZhbHVlPXR9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2NoaXBJbnB1dD90aGlzLl9jaGlwSW5wdXQuaWQ6dGhpcy5fdWlkfWdldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLl9yZXF1aXJlZH1zZXQgcmVxdWlyZWQodCl7dGhpcy5fcmVxdWlyZWQ9eXoodCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfWdldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLl9jaGlwSW5wdXQ/dGhpcy5fY2hpcElucHV0LnBsYWNlaG9sZGVyOnRoaXMuX3BsYWNlaG9sZGVyfXNldCBwbGFjZWhvbGRlcih0KXt0aGlzLl9wbGFjZWhvbGRlcj10LHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1nZXQgZm9jdXNlZCgpe3JldHVybiB0aGlzLl9jaGlwSW5wdXQmJnRoaXMuX2NoaXBJbnB1dC5mb2N1c2VkfHx0aGlzLl9oYXNGb2N1c2VkQ2hpcCgpfWdldCBlbXB0eSgpe3JldHVybighdGhpcy5fY2hpcElucHV0fHx0aGlzLl9jaGlwSW5wdXQuZW1wdHkpJiYoIXRoaXMuY2hpcHN8fDA9PT10aGlzLmNoaXBzLmxlbmd0aCl9Z2V0IHNob3VsZExhYmVsRmxvYXQoKXtyZXR1cm4hdGhpcy5lbXB0eXx8dGhpcy5mb2N1c2VkfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLm5nQ29udHJvbD8hIXRoaXMubmdDb250cm9sLmRpc2FibGVkOnRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD15eih0KSx0aGlzLl9zeW5jQ2hpcHNTdGF0ZSgpfWdldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGFibGV9c2V0IHNlbGVjdGFibGUodCl7dGhpcy5fc2VsZWN0YWJsZT15eih0KSx0aGlzLmNoaXBzJiZ0aGlzLmNoaXBzLmZvckVhY2goKHQ9PnQuY2hpcExpc3RTZWxlY3RhYmxlPXRoaXMuX3NlbGVjdGFibGUpKX1zZXQgdGFiSW5kZXgodCl7dGhpcy5fdXNlclRhYkluZGV4PXQsdGhpcy5fdGFiSW5kZXg9dH1nZXQgY2hpcFNlbGVjdGlvbkNoYW5nZXMoKXtyZXR1cm4gcmUoLi4udGhpcy5jaGlwcy5tYXAoKHQ9PnQuc2VsZWN0aW9uQ2hhbmdlKSkpfWdldCBjaGlwRm9jdXNDaGFuZ2VzKCl7cmV0dXJuIHJlKC4uLnRoaXMuY2hpcHMubWFwKCh0PT50Ll9vbkZvY3VzKSkpfWdldCBjaGlwQmx1ckNoYW5nZXMoKXtyZXR1cm4gcmUoLi4udGhpcy5jaGlwcy5tYXAoKHQ9PnQuX29uQmx1cikpKX1nZXQgY2hpcFJlbW92ZUNoYW5nZXMoKXtyZXR1cm4gcmUoLi4udGhpcy5jaGlwcy5tYXAoKHQ9PnQuZGVzdHJveWVkKSkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2tleU1hbmFnZXI9bmV3IGVJKHRoaXMuY2hpcHMpLndpdGhXcmFwKCkud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oKS53aXRoSG9tZUFuZEVuZCgpLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5fZGlyP3RoaXMuX2Rpci52YWx1ZToibHRyIiksdGhpcy5fZGlyJiZ0aGlzLl9kaXIuY2hhbmdlLnBpcGUoSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCh0PT50aGlzLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odCkpKSx0aGlzLl9rZXlNYW5hZ2VyLnRhYk91dC5waXBlKEllKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9hbGxvd0ZvY3VzRXNjYXBlKCl9KSksdGhpcy5jaGlwcy5jaGFuZ2VzLnBpcGUoTmUobnVsbCksSWUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuZGlzYWJsZWQmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57dGhpcy5fc3luY0NoaXBzU3RhdGUoKX0pKSx0aGlzLl9yZXNldENoaXBzKCksdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpLHRoaXMuX3VwZGF0ZVRhYkluZGV4KCksdGhpcy5fdXBkYXRlRm9jdXNGb3JEZXN0cm95ZWRDaGlwcygpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pKX1uZ09uSW5pdCgpe3RoaXMuX3NlbGVjdGlvbk1vZGVsPW5ldyBvRih0aGlzLm11bHRpcGxlLHZvaWQgMCwhMSksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfW5nRG9DaGVjaygpe3RoaXMubmdDb250cm9sJiYodGhpcy51cGRhdGVFcnJvclN0YXRlKCksdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQhPT10aGlzLl9kaXNhYmxlZCYmKHRoaXMuZGlzYWJsZWQ9ISF0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCkpfW5nT25EZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkLm5leHQoKSx0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKSx0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuX2Ryb3BTdWJzY3JpcHRpb25zKCl9cmVnaXN0ZXJJbnB1dCh0KXt0aGlzLl9jaGlwSW5wdXQ9dCx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLW1hdC1jaGlwLWlucHV0Iix0LmlkKX1zZXREZXNjcmliZWRCeUlkcyh0KXt0aGlzLl9hcmlhRGVzY3JpYmVkYnk9dC5qb2luKCIgIil9d3JpdGVWYWx1ZSh0KXt0aGlzLmNoaXBzJiZ0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKHQsITEpfXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLl9vblRvdWNoZWQ9dH1zZXREaXNhYmxlZFN0YXRlKHQpe3RoaXMuZGlzYWJsZWQ9dCx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9b25Db250YWluZXJDbGljayh0KXt0aGlzLl9vcmlnaW5hdGVzRnJvbUNoaXAodCl8fHRoaXMuZm9jdXMoKX1mb2N1cyh0KXt0aGlzLmRpc2FibGVkfHx0aGlzLl9jaGlwSW5wdXQmJnRoaXMuX2NoaXBJbnB1dC5mb2N1c2VkfHwodGhpcy5jaGlwcy5sZW5ndGg+MD8odGhpcy5fa2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpOih0aGlzLl9mb2N1c0lucHV0KHQpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSkpfV9mb2N1c0lucHV0KHQpe3RoaXMuX2NoaXBJbnB1dCYmdGhpcy5fY2hpcElucHV0LmZvY3VzKHQpfV9rZXlkb3duKHQpe2NvbnN0IGU9dC50YXJnZXQ7ZSYmZS5jbGFzc0xpc3QuY29udGFpbnMoIm1hdC1jaGlwIikmJih0aGlzLl9rZXlNYW5hZ2VyLm9uS2V5ZG93bih0KSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpfV91cGRhdGVUYWJJbmRleCgpe3RoaXMuX3RhYkluZGV4PXRoaXMuX3VzZXJUYWJJbmRleHx8KDA9PT10aGlzLmNoaXBzLmxlbmd0aD8tMTowKX1fdXBkYXRlRm9jdXNGb3JEZXN0cm95ZWRDaGlwcygpe2lmKG51bGwhPXRoaXMuX2xhc3REZXN0cm95ZWRDaGlwSW5kZXgpaWYodGhpcy5jaGlwcy5sZW5ndGgpe2NvbnN0IHQ9TWF0aC5taW4odGhpcy5fbGFzdERlc3Ryb3llZENoaXBJbmRleCx0aGlzLmNoaXBzLmxlbmd0aC0xKTt0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odCl9ZWxzZSB0aGlzLmZvY3VzKCk7dGhpcy5fbGFzdERlc3Ryb3llZENoaXBJbmRleD1udWxsfV9pc1ZhbGlkSW5kZXgodCl7cmV0dXJuIHQ+PTAmJnQ8dGhpcy5jaGlwcy5sZW5ndGh9X3NldFNlbGVjdGlvbkJ5VmFsdWUodCxlPSEwKXtpZih0aGlzLl9jbGVhclNlbGVjdGlvbigpLHRoaXMuY2hpcHMuZm9yRWFjaCgodD0+dC5kZXNlbGVjdCgpKSksQXJyYXkuaXNBcnJheSh0KSl0LmZvckVhY2goKHQ9PnRoaXMuX3NlbGVjdFZhbHVlKHQsZSkpKSx0aGlzLl9zb3J0VmFsdWVzKCk7ZWxzZXtjb25zdCBuPXRoaXMuX3NlbGVjdFZhbHVlKHQsZSk7biYmZSYmdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKG4pfX1fc2VsZWN0VmFsdWUodCxlPSEwKXtjb25zdCBuPXRoaXMuY2hpcHMuZmluZCgoZT0+bnVsbCE9ZS52YWx1ZSYmdGhpcy5fY29tcGFyZVdpdGgoZS52YWx1ZSx0KSkpO3JldHVybiBuJiYoZT9uLnNlbGVjdFZpYUludGVyYWN0aW9uKCk6bi5zZWxlY3QoKSx0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QobikpLG59X2luaXRpYWxpemVTZWxlY3Rpb24oKXtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+eyh0aGlzLm5nQ29udHJvbHx8dGhpcy5fdmFsdWUpJiYodGhpcy5fc2V0U2VsZWN0aW9uQnlWYWx1ZSh0aGlzLm5nQ29udHJvbD90aGlzLm5nQ29udHJvbC52YWx1ZTp0aGlzLl92YWx1ZSwhMSksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX0pKX1fY2xlYXJTZWxlY3Rpb24odCl7dGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKSx0aGlzLmNoaXBzLmZvckVhY2goKGU9PntlIT09dCYmZS5kZXNlbGVjdCgpfSkpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1fc29ydFZhbHVlcygpe3RoaXMuX211bHRpcGxlJiYodGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKSx0aGlzLmNoaXBzLmZvckVhY2goKHQ9Pnt0LnNlbGVjdGVkJiZ0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QodCl9KSksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX1fcHJvcGFnYXRlQ2hhbmdlcyh0KXtsZXQgZT1udWxsO2U9QXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkKT90aGlzLnNlbGVjdGVkLm1hcCgodD0+dC52YWx1ZSkpOnRoaXMuc2VsZWN0ZWQ/dGhpcy5zZWxlY3RlZC52YWx1ZTp0LHRoaXMuX3ZhbHVlPWUsdGhpcy5jaGFuZ2UuZW1pdChuZXcgT3l0KHRoaXMsZSkpLHRoaXMudmFsdWVDaGFuZ2UuZW1pdChlKSx0aGlzLl9vbkNoYW5nZShlKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1fYmx1cigpe3RoaXMuX2hhc0ZvY3VzZWRDaGlwKCl8fHRoaXMuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSgtMSksdGhpcy5kaXNhYmxlZHx8KHRoaXMuX2NoaXBJbnB1dD9zZXRUaW1lb3V0KCgoKT0+e3RoaXMuZm9jdXNlZHx8dGhpcy5fbWFya0FzVG91Y2hlZCgpfSkpOnRoaXMuX21hcmtBc1RvdWNoZWQoKSl9X21hcmtBc1RvdWNoZWQoKXt0aGlzLl9vblRvdWNoZWQoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9X2FsbG93Rm9jdXNFc2NhcGUoKXstMSE9PXRoaXMuX3RhYkluZGV4JiYodGhpcy5fdGFiSW5kZXg9LTEsc2V0VGltZW91dCgoKCk9Pnt0aGlzLl90YWJJbmRleD10aGlzLl91c2VyVGFiSW5kZXh8fDAsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSkpfV9yZXNldENoaXBzKCl7dGhpcy5fZHJvcFN1YnNjcmlwdGlvbnMoKSx0aGlzLl9saXN0ZW5Ub0NoaXBzRm9jdXMoKSx0aGlzLl9saXN0ZW5Ub0NoaXBzU2VsZWN0aW9uKCksdGhpcy5fbGlzdGVuVG9DaGlwc1JlbW92ZWQoKX1fZHJvcFN1YnNjcmlwdGlvbnMoKXt0aGlzLl9jaGlwRm9jdXNTdWJzY3JpcHRpb24mJih0aGlzLl9jaGlwRm9jdXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9jaGlwRm9jdXNTdWJzY3JpcHRpb249bnVsbCksdGhpcy5fY2hpcEJsdXJTdWJzY3JpcHRpb24mJih0aGlzLl9jaGlwQmx1clN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2NoaXBCbHVyU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMuX2NoaXBTZWxlY3Rpb25TdWJzY3JpcHRpb24mJih0aGlzLl9jaGlwU2VsZWN0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fY2hpcFNlbGVjdGlvblN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLl9jaGlwUmVtb3ZlU3Vic2NyaXB0aW9uJiYodGhpcy5fY2hpcFJlbW92ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2NoaXBSZW1vdmVTdWJzY3JpcHRpb249bnVsbCl9X2xpc3RlblRvQ2hpcHNTZWxlY3Rpb24oKXt0aGlzLl9jaGlwU2VsZWN0aW9uU3Vic2NyaXB0aW9uPXRoaXMuY2hpcFNlbGVjdGlvbkNoYW5nZXMuc3Vic2NyaWJlKCh0PT57dC5zb3VyY2Uuc2VsZWN0ZWQ/dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0KHQuc291cmNlKTp0aGlzLl9zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdCh0LnNvdXJjZSksdGhpcy5tdWx0aXBsZXx8dGhpcy5jaGlwcy5mb3JFYWNoKCh0PT57IXRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQodCkmJnQuc2VsZWN0ZWQmJnQuZGVzZWxlY3QoKX0pKSx0LmlzVXNlcklucHV0JiZ0aGlzLl9wcm9wYWdhdGVDaGFuZ2VzKCl9KSl9X2xpc3RlblRvQ2hpcHNGb2N1cygpe3RoaXMuX2NoaXBGb2N1c1N1YnNjcmlwdGlvbj10aGlzLmNoaXBGb2N1c0NoYW5nZXMuc3Vic2NyaWJlKCh0PT57bGV0IGU9dGhpcy5jaGlwcy50b0FycmF5KCkuaW5kZXhPZih0LmNoaXApO3RoaXMuX2lzVmFsaWRJbmRleChlKSYmdGhpcy5fa2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKGUpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pKSx0aGlzLl9jaGlwQmx1clN1YnNjcmlwdGlvbj10aGlzLmNoaXBCbHVyQ2hhbmdlcy5zdWJzY3JpYmUoKCgpPT57dGhpcy5fYmx1cigpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pKX1fbGlzdGVuVG9DaGlwc1JlbW92ZWQoKXt0aGlzLl9jaGlwUmVtb3ZlU3Vic2NyaXB0aW9uPXRoaXMuY2hpcFJlbW92ZUNoYW5nZXMuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10LmNoaXAsbj10aGlzLmNoaXBzLnRvQXJyYXkoKS5pbmRleE9mKHQuY2hpcCk7dGhpcy5faXNWYWxpZEluZGV4KG4pJiZlLl9oYXNGb2N1cyYmKHRoaXMuX2xhc3REZXN0cm95ZWRDaGlwSW5kZXg9bil9KSl9X29yaWdpbmF0ZXNGcm9tQ2hpcCh0KXtsZXQgZT10LnRhcmdldDtmb3IoO2UmJmUhPT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7KXtpZihlLmNsYXNzTGlzdC5jb250YWlucygibWF0LWNoaXAiKSlyZXR1cm4hMDtlPWUucGFyZW50RWxlbWVudH1yZXR1cm4hMX1faGFzRm9jdXNlZENoaXAoKXtyZXR1cm4gdGhpcy5jaGlwcyYmdGhpcy5jaGlwcy5zb21lKCh0PT50Ll9oYXNGb2N1cykpfV9zeW5jQ2hpcHNTdGF0ZSgpe3RoaXMuY2hpcHMmJnRoaXMuY2hpcHMuZm9yRWFjaCgodD0+e3QuX2NoaXBMaXN0RGlzYWJsZWQ9dGhpcy5fZGlzYWJsZWQsdC5fY2hpcExpc3RNdWx0aXBsZT10aGlzLm11bHRpcGxlfSkpfX1QeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFB5dCkoU20oaGcpLFNtKFVnKSxTbShISSw4KSxTbShpVSw4KSxTbShQVSw4KSxTbShiSCksU20oTWosMTApKX0sUHl0Lsm1Y21wPXRvKHt0eXBlOlB5dCxzZWxlY3RvcnM6W1sibWF0LWNoaXAtbGlzdCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJiRoKG8sX3l0LDUpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uY2hpcHM9dCl9fSxob3N0QXR0cnM6WzEsIm1hdC1jaGlwLWxpc3QiXSxob3N0VmFyczoxNSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmVm0oImZvY3VzIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmZvY3VzKCl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2JsdXIoKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2tleWRvd24oZSl9KSksMiZlJiYoVHUoImlkIixuLl91aWQpLGpwKCJ0YWJpbmRleCIsbi5kaXNhYmxlZD9udWxsOm4uX3RhYkluZGV4KSgiYXJpYS1kZXNjcmliZWRieSIsbi5fYXJpYURlc2NyaWJlZGJ5fHxudWxsKSgiYXJpYS1yZXF1aXJlZCIsbi5yb2xlP24ucmVxdWlyZWQ6bnVsbCkoImFyaWEtZGlzYWJsZWQiLG4uZGlzYWJsZWQudG9TdHJpbmcoKSkoImFyaWEtaW52YWxpZCIsbi5lcnJvclN0YXRlKSgiYXJpYS1tdWx0aXNlbGVjdGFibGUiLG4ubXVsdGlwbGUpKCJyb2xlIixuLnJvbGUpKCJhcmlhLW9yaWVudGF0aW9uIixuLmFyaWFPcmllbnRhdGlvbikscHUoIm1hdC1jaGlwLWxpc3QtZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJtYXQtY2hpcC1saXN0LWludmFsaWQiLG4uZXJyb3JTdGF0ZSkoIm1hdC1jaGlwLWxpc3QtcmVxdWlyZWQiLG4ucmVxdWlyZWQpKX0saW5wdXRzOnthcmlhT3JpZW50YXRpb246WyJhcmlhLW9yaWVudGF0aW9uIiwiYXJpYU9yaWVudGF0aW9uIl0sbXVsdGlwbGU6Im11bHRpcGxlIixjb21wYXJlV2l0aDoiY29tcGFyZVdpdGgiLHZhbHVlOiJ2YWx1ZSIscmVxdWlyZWQ6InJlcXVpcmVkIixwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIiLGRpc2FibGVkOiJkaXNhYmxlZCIsc2VsZWN0YWJsZToic2VsZWN0YWJsZSIsdGFiSW5kZXg6InRhYkluZGV4IixlcnJvclN0YXRlTWF0Y2hlcjoiZXJyb3JTdGF0ZU1hdGNoZXIifSxvdXRwdXRzOntjaGFuZ2U6ImNoYW5nZSIsdmFsdWVDaGFuZ2U6InZhbHVlQ2hhbmdlIn0sZXhwb3J0QXM6WyJtYXRDaGlwTGlzdCJdLGZlYXR1cmVzOltwZyhbe3Byb3ZpZGU6YlYsdXNlRXhpc3Rpbmc6UHl0fV0pLHhwXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIl0sZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbMSwibWF0LWNoaXAtbGlzdC13cmFwcGVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihabSgpLFJtKDAsImRpdiIsMCksWG0oMSksQW0oKSl9LHN0eWxlczpbJy5tYXQtY2hpcHtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO2JvcmRlcjpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5tYXQtc3RhbmRhcmQtY2hpcHt0cmFuc2l0aW9uOmJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtkaXNwbGF5OmlubGluZS1mbGV4O3BhZGRpbmc6N3B4IDEycHg7Ym9yZGVyLXJhZGl1czoxNnB4O2FsaWduLWl0ZW1zOmNlbnRlcjtjdXJzb3I6ZGVmYXVsdDttaW4taGVpZ2h0OjMycHg7aGVpZ2h0OjFweH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXN0YW5kYXJkLWNoaXB7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29ue3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHh9Lm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlcnt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOmluaGVyaXQ7b3BhY2l0eTowO2NvbnRlbnQ6IiI7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5tYXQtc3RhbmRhcmQtY2hpcDpob3Zlcjo6YWZ0ZXJ7b3BhY2l0eTouMTJ9Lm1hdC1zdGFuZGFyZC1jaGlwOmZvY3Vze291dGxpbmU6bm9uZX0ubWF0LXN0YW5kYXJkLWNoaXA6Zm9jdXM6OmFmdGVye29wYWNpdHk6LjE2fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zdGFuZGFyZC1jaGlwe291dGxpbmU6c29saWQgMXB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zdGFuZGFyZC1jaGlwOmZvY3Vze291dGxpbmU6ZG90dGVkIDJweH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQ6OmFmdGVye29wYWNpdHk6MH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQgLm1hdC1jaGlwLXJlbW92ZSwubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQgLm1hdC1jaGlwLXRyYWlsaW5nLWljb257Y3Vyc29yOmRlZmF1bHR9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi5tYXQtY2hpcC13aXRoLWF2YXRhciwubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC1hdmF0YXJ7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowfS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb24ubWF0LWNoaXAtd2l0aC1hdmF0YXJ7cGFkZGluZy1yaWdodDo4cHg7cGFkZGluZy1sZWZ0OjB9W2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb24ubWF0LWNoaXAtd2l0aC1hdmF0YXJ7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjB9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbntwYWRkaW5nLXRvcDo3cHg7cGFkZGluZy1ib3R0b206N3B4O3BhZGRpbmctcmlnaHQ6OHB4O3BhZGRpbmctbGVmdDoxMnB4fVtkaXI9cnRsXSAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC10cmFpbGluZy1pY29ue3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDoxMnB4fS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjEycHh9W2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjEycHh9Lm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1hdmF0YXJ7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0OjRweH1bZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1hdmF0YXJ7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDo0cHh9Lm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUsLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29ue3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Y3Vyc29yOnBvaW50ZXJ9Lm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUsLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29ue21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH1bZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUsW2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0OjB9Lm1hdC1jaGlwLXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtvdmVyZmxvdzpoaWRkZW59Lm1hdC1jaGlwLWxpc3Qtd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46LTRweH0ubWF0LWNoaXAtbGlzdC13cmFwcGVyIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50LC5tYXQtY2hpcC1saXN0LXdyYXBwZXIgLm1hdC1zdGFuZGFyZC1jaGlwe21hcmdpbjo0cHh9Lm1hdC1jaGlwLWxpc3Qtc3RhY2tlZCAubWF0LWNoaXAtbGlzdC13cmFwcGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5tYXQtY2hpcC1saXN0LXN0YWNrZWQgLm1hdC1jaGlwLWxpc3Qtd3JhcHBlciAubWF0LXN0YW5kYXJkLWNoaXB7d2lkdGg6MTAwJX0ubWF0LWNoaXAtYXZhdGFye2JvcmRlci1yYWRpdXM6NTAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW47b2JqZWN0LWZpdDpjb3Zlcn1pbnB1dC5tYXQtY2hpcC1pbnB1dHt3aWR0aDoxNTBweDttYXJnaW46NHB4O2ZsZXg6MSAwIDE1MHB4fVxuJ10sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksUHl0LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aGd9LHt0eXBlOlVnfSx7dHlwZTpISSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTppVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpQVSxkZWNvcmF0b3JzOlt7dHlwZTpTcn1dfSx7dHlwZTpiSH0se3R5cGU6TWosZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOkRyfV19XSxQeXQucHJvcERlY29yYXRvcnM9e2Vycm9yU3RhdGVNYXRjaGVyOlt7dHlwZTp4eX1dLG11bHRpcGxlOlt7dHlwZTp4eX1dLGNvbXBhcmVXaXRoOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLHJlcXVpcmVkOlt7dHlwZTp4eX1dLHBsYWNlaG9sZGVyOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dLGFyaWFPcmllbnRhdGlvbjpbe3R5cGU6eHksYXJnczpbImFyaWEtb3JpZW50YXRpb24iXX1dLHNlbGVjdGFibGU6W3t0eXBlOnh5fV0sdGFiSW5kZXg6W3t0eXBlOnh5fV0sY2hhbmdlOlt7dHlwZTpPeX1dLHZhbHVlQ2hhbmdlOlt7dHlwZTpPeX1dLGNoaXBzOlt7dHlwZTpZYSxhcmdzOltfeXQse2Rlc2NlbmRhbnRzOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChQeXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LWNoaXAtbGlzdCIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9Im1hdC1jaGlwLWxpc3Qtd3JhcHBlciI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PicsZXhwb3J0QXM6Im1hdENoaXBMaXN0Iixob3N0OnsiW2F0dHIudGFiaW5kZXhdIjoiZGlzYWJsZWQgPyBudWxsIDogX3RhYkluZGV4IiwiW2F0dHIuYXJpYS1kZXNjcmliZWRieV0iOiJfYXJpYURlc2NyaWJlZGJ5IHx8IG51bGwiLCJbYXR0ci5hcmlhLXJlcXVpcmVkXSI6InJvbGUgPyByZXF1aXJlZCA6IG51bGwiLCJbYXR0ci5hcmlhLWRpc2FibGVkXSI6ImRpc2FibGVkLnRvU3RyaW5nKCkiLCJbYXR0ci5hcmlhLWludmFsaWRdIjoiZXJyb3JTdGF0ZSIsIlthdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXSI6Im11bHRpcGxlIiwiW2F0dHIucm9sZV0iOiJyb2xlIiwiW2NsYXNzLm1hdC1jaGlwLWxpc3QtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbY2xhc3MubWF0LWNoaXAtbGlzdC1pbnZhbGlkXSI6ImVycm9yU3RhdGUiLCJbY2xhc3MubWF0LWNoaXAtbGlzdC1yZXF1aXJlZF0iOiJyZXF1aXJlZCIsIlthdHRyLmFyaWEtb3JpZW50YXRpb25dIjoiYXJpYU9yaWVudGF0aW9uIixjbGFzczoibWF0LWNoaXAtbGlzdCIsIihmb2N1cykiOiJmb2N1cygpIiwiKGJsdXIpIjoiX2JsdXIoKSIsIihrZXlkb3duKSI6Il9rZXlkb3duKCRldmVudCkiLCJbaWRdIjoiX3VpZCJ9LHByb3ZpZGVyczpbe3Byb3ZpZGU6YlYsdXNlRXhpc3Rpbmc6UHl0fV0sZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsc3R5bGVzOlsnLm1hdC1jaGlwe3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7Ym9yZGVyOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9Lm1hdC1zdGFuZGFyZC1jaGlwe3RyYW5zaXRpb246Ym94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO2Rpc3BsYXk6aW5saW5lLWZsZXg7cGFkZGluZzo3cHggMTJweDtib3JkZXItcmFkaXVzOjE2cHg7YWxpZ24taXRlbXM6Y2VudGVyO2N1cnNvcjpkZWZhdWx0O21pbi1oZWlnaHQ6MzJweDtoZWlnaHQ6MXB4fS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtc3RhbmRhcmQtY2hpcHt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb257d2lkdGg6MThweDtoZWlnaHQ6MThweH0ubWF0LXN0YW5kYXJkLWNoaXA6OmFmdGVye3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtvcGFjaXR5OjA7Y29udGVudDoiIjtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAyMDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Lm1hdC1zdGFuZGFyZC1jaGlwOmhvdmVyOjphZnRlcntvcGFjaXR5Oi4xMn0ubWF0LXN0YW5kYXJkLWNoaXA6Zm9jdXN7b3V0bGluZTpub25lfS5tYXQtc3RhbmRhcmQtY2hpcDpmb2N1czo6YWZ0ZXJ7b3BhY2l0eTouMTZ9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXN0YW5kYXJkLWNoaXB7b3V0bGluZTpzb2xpZCAxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXN0YW5kYXJkLWNoaXA6Zm9jdXN7b3V0bGluZTpkb3R0ZWQgMnB4fS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZDo6YWZ0ZXJ7b3BhY2l0eTowfS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZCAubWF0LWNoaXAtcmVtb3ZlLC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbntjdXJzb3I6ZGVmYXVsdH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC10cmFpbGluZy1pY29uLm1hdC1jaGlwLXdpdGgtYXZhdGFyLC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjB9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLXJpZ2h0OjhweDtwYWRkaW5nLWxlZnQ6MH1bZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6MH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC10cmFpbGluZy1pY29ue3BhZGRpbmctdG9wOjdweDtwYWRkaW5nLWJvdHRvbTo3cHg7cGFkZGluZy1yaWdodDo4cHg7cGFkZGluZy1sZWZ0OjEycHh9W2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb257cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjEycHh9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtYXZhdGFye3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MTJweH1bZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtYXZhdGFye3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MTJweH0ubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLWF2YXRhcnt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLWxlZnQ6NHB4fVtkaXI9cnRsXSAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLWF2YXRhcnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjRweH0ubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZSwubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb257d2lkdGg6MThweDtoZWlnaHQ6MThweDtjdXJzb3I6cG9pbnRlcn0ubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZSwubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb257bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfVtkaXI9cnRsXSAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZSxbZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29ue21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLWxlZnQ6MH0ubWF0LWNoaXAtcmlwcGxle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czppbmhlcml0O292ZXJmbG93OmhpZGRlbn0ubWF0LWNoaXAtbGlzdC13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC13cmFwOndyYXA7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjotNHB4fS5tYXQtY2hpcC1saXN0LXdyYXBwZXIgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQsLm1hdC1jaGlwLWxpc3Qtd3JhcHBlciAubWF0LXN0YW5kYXJkLWNoaXB7bWFyZ2luOjRweH0ubWF0LWNoaXAtbGlzdC1zdGFja2VkIC5tYXQtY2hpcC1saXN0LXdyYXBwZXJ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lm1hdC1jaGlwLWxpc3Qtc3RhY2tlZCAubWF0LWNoaXAtbGlzdC13cmFwcGVyIC5tYXQtc3RhbmRhcmQtY2hpcHt3aWR0aDoxMDAlfS5tYXQtY2hpcC1hdmF0YXJ7Ym9yZGVyLXJhZGl1czo1MCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjtvYmplY3QtZml0OmNvdmVyfWlucHV0Lm1hdC1jaGlwLWlucHV0e3dpZHRoOjE1MHB4O21hcmdpbjo0cHg7ZmxleDoxIDAgMTUwcHh9XG4nXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhnfSx7dHlwZTpVZ30se3R5cGU6SEksZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6aVUsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6UFUsZGVjb3JhdG9yczpbe3R5cGU6U3J9XX0se3R5cGU6Ykh9LHt0eXBlOk1qLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTpEcn1dfV19KSx7YXJpYU9yaWVudGF0aW9uOlt7dHlwZTp4eSxhcmdzOlsiYXJpYS1vcmllbnRhdGlvbiJdfV0sY2hhbmdlOlt7dHlwZTpPeX1dLHZhbHVlQ2hhbmdlOlt7dHlwZTpPeX1dLG11bHRpcGxlOlt7dHlwZTp4eX1dLGNvbXBhcmVXaXRoOlt7dHlwZTp4eX1dLHZhbHVlOlt7dHlwZTp4eX1dLHJlcXVpcmVkOlt7dHlwZTp4eX1dLHBsYWNlaG9sZGVyOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dLHNlbGVjdGFibGU6W3t0eXBlOnh5fV0sdGFiSW5kZXg6W3t0eXBlOnh5fV0sZXJyb3JTdGF0ZU1hdGNoZXI6W3t0eXBlOnh5fV0sY2hpcHM6W3t0eXBlOllhLGFyZ3M6W195dCx7ZGVzY2VuZGFudHM6ITB9XX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgd3l0PTA7Y2xhc3Mga3l0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2RlZmF1bHRPcHRpb25zPWUsdGhpcy5mb2N1c2VkPSExLHRoaXMuX2FkZE9uQmx1cj0hMSx0aGlzLnNlcGFyYXRvcktleUNvZGVzPXRoaXMuX2RlZmF1bHRPcHRpb25zLnNlcGFyYXRvcktleUNvZGVzLHRoaXMuY2hpcEVuZD1uZXcgTGgsdGhpcy5wbGFjZWhvbGRlcj0iIix0aGlzLmlkPSJtYXQtY2hpcC1saXN0LWlucHV0LSIrd3l0KyssdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5pbnB1dEVsZW1lbnQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50fXNldCBjaGlwTGlzdCh0KXt0JiYodGhpcy5fY2hpcExpc3Q9dCx0aGlzLl9jaGlwTGlzdC5yZWdpc3RlcklucHV0KHRoaXMpKX1nZXQgYWRkT25CbHVyKCl7cmV0dXJuIHRoaXMuX2FkZE9uQmx1cn1zZXQgYWRkT25CbHVyKHQpe3RoaXMuX2FkZE9uQmx1cj15eih0KX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR8fHRoaXMuX2NoaXBMaXN0JiZ0aGlzLl9jaGlwTGlzdC5kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9eXoodCl9Z2V0IGVtcHR5KCl7cmV0dXJuIXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlfW5nT25DaGFuZ2VzKCl7dGhpcy5fY2hpcExpc3Quc3RhdGVDaGFuZ2VzLm5leHQoKX1uZ09uRGVzdHJveSgpe3RoaXMuY2hpcEVuZC5jb21wbGV0ZSgpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZT10aGlzLmVtcHR5fV9rZXlkb3duKHQpe2lmKHQpe2lmKDkhPT10LmtleUNvZGV8fGJ6KHQsInNoaWZ0S2V5Iil8fHRoaXMuX2NoaXBMaXN0Ll9hbGxvd0ZvY3VzRXNjYXBlKCksOD09PXQua2V5Q29kZSYmdGhpcy5fZm9jdXNMYXN0Q2hpcE9uQmFja3NwYWNlKXJldHVybiB0aGlzLl9jaGlwTGlzdC5fa2V5TWFuYWdlci5zZXRMYXN0SXRlbUFjdGl2ZSgpLHZvaWQgdC5wcmV2ZW50RGVmYXVsdCgpO3RoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZT0hMX10aGlzLl9lbWl0Q2hpcEVuZCh0KX1fa2V5dXAodCl7IXRoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZSYmOD09PXQua2V5Q29kZSYmdGhpcy5lbXB0eSYmKHRoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZT0hMCx0LnByZXZlbnREZWZhdWx0KCkpfV9ibHVyKCl7dGhpcy5hZGRPbkJsdXImJnRoaXMuX2VtaXRDaGlwRW5kKCksdGhpcy5mb2N1c2VkPSExLHRoaXMuX2NoaXBMaXN0LmZvY3VzZWR8fHRoaXMuX2NoaXBMaXN0Ll9ibHVyKCksdGhpcy5fY2hpcExpc3Quc3RhdGVDaGFuZ2VzLm5leHQoKX1fZm9jdXMoKXt0aGlzLmZvY3VzZWQ9ITAsdGhpcy5fZm9jdXNMYXN0Q2hpcE9uQmFja3NwYWNlPXRoaXMuZW1wdHksdGhpcy5fY2hpcExpc3Quc3RhdGVDaGFuZ2VzLm5leHQoKX1fZW1pdENoaXBFbmQodCl7IXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlJiZ0JiZ0aGlzLl9jaGlwTGlzdC5fa2V5ZG93bih0KSx0JiYhdGhpcy5faXNTZXBhcmF0b3JLZXkodCl8fCh0aGlzLmNoaXBFbmQuZW1pdCh7aW5wdXQ6dGhpcy5pbnB1dEVsZW1lbnQsdmFsdWU6dGhpcy5pbnB1dEVsZW1lbnQudmFsdWUsY2hpcElucHV0OnRoaXN9KSxudWxsPT10fHx0LnByZXZlbnREZWZhdWx0KCkpfV9vbklucHV0KCl7dGhpcy5fY2hpcExpc3Quc3RhdGVDaGFuZ2VzLm5leHQoKX1mb2N1cyh0KXt0aGlzLmlucHV0RWxlbWVudC5mb2N1cyh0KX1jbGVhcigpe3RoaXMuaW5wdXRFbGVtZW50LnZhbHVlPSIiLHRoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZT0hMH1faXNTZXBhcmF0b3JLZXkodCl7cmV0dXJuIWJ6KHQpJiZuZXcgU2V0KHRoaXMuc2VwYXJhdG9yS2V5Q29kZXMpLmhhcyh0LmtleUNvZGUpfX1reXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGt5dCkoU20oaGcpLFNtKE15dCkpfSxreXQuybVkaXI9bG8oe3R5cGU6a3l0LHNlbGVjdG9yczpbWyJpbnB1dCIsIm1hdENoaXBJbnB1dEZvciIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1jaGlwLWlucHV0IiwibWF0LWlucHV0LWVsZW1lbnQiXSxob3N0VmFyczo1LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2tleWRvd24oZSl9KSkoImtleXVwIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5fa2V5dXAoZSl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2JsdXIoKX0pKSgiZm9jdXMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2ZvY3VzKCl9KSkoImlucHV0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbklucHV0KCl9KSksMiZlJiYoVHUoImlkIixuLmlkKSxqcCgiZGlzYWJsZWQiLG4uZGlzYWJsZWR8fG51bGwpKCJwbGFjZWhvbGRlciIsbi5wbGFjZWhvbGRlcnx8bnVsbCkoImFyaWEtaW52YWxpZCIsbi5fY2hpcExpc3QmJm4uX2NoaXBMaXN0Lm5nQ29udHJvbD9uLl9jaGlwTGlzdC5uZ0NvbnRyb2wuaW52YWxpZDpudWxsKSgiYXJpYS1yZXF1aXJlZCIsbi5fY2hpcExpc3QmJm4uX2NoaXBMaXN0LnJlcXVpcmVkfHxudWxsKSl9LGlucHV0czp7c2VwYXJhdG9yS2V5Q29kZXM6WyJtYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2RlcyIsInNlcGFyYXRvcktleUNvZGVzIl0scGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIixpZDoiaWQiLGNoaXBMaXN0OlsibWF0Q2hpcElucHV0Rm9yIiwiY2hpcExpc3QiXSxhZGRPbkJsdXI6WyJtYXRDaGlwSW5wdXRBZGRPbkJsdXIiLCJhZGRPbkJsdXIiXSxkaXNhYmxlZDoiZGlzYWJsZWQifSxvdXRwdXRzOntjaGlwRW5kOiJtYXRDaGlwSW5wdXRUb2tlbkVuZCJ9LGV4cG9ydEFzOlsibWF0Q2hpcElucHV0IiwibWF0Q2hpcElucHV0Rm9yIl0sZmVhdHVyZXM6W0JvXX0pLGt5dC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbTXl0XX1dfV0sa3l0LnByb3BEZWNvcmF0b3JzPXtjaGlwTGlzdDpbe3R5cGU6eHksYXJnczpbIm1hdENoaXBJbnB1dEZvciJdfV0sYWRkT25CbHVyOlt7dHlwZTp4eSxhcmdzOlsibWF0Q2hpcElucHV0QWRkT25CbHVyIl19XSxzZXBhcmF0b3JLZXlDb2Rlczpbe3R5cGU6eHksYXJnczpbIm1hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzIl19XSxjaGlwRW5kOlt7dHlwZTpPeSxhcmdzOlsibWF0Q2hpcElucHV0VG9rZW5FbmQiXX1dLHBsYWNlaG9sZGVyOlt7dHlwZTp4eX1dLGlkOlt7dHlwZTp4eX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGt5dCxbe3R5cGU6Q3ksYXJnczpbe3NlbGVjdG9yOiJpbnB1dFttYXRDaGlwSW5wdXRGb3JdIixleHBvcnRBczoibWF0Q2hpcElucHV0LCBtYXRDaGlwSW5wdXRGb3IiLGhvc3Q6e2NsYXNzOiJtYXQtY2hpcC1pbnB1dCBtYXQtaW5wdXQtZWxlbWVudCIsIihrZXlkb3duKSI6Il9rZXlkb3duKCRldmVudCkiLCIoa2V5dXApIjoiX2tleXVwKCRldmVudCkiLCIoYmx1cikiOiJfYmx1cigpIiwiKGZvY3VzKSI6Il9mb2N1cygpIiwiKGlucHV0KSI6Il9vbklucHV0KCkiLCJbaWRdIjoiaWQiLCJbYXR0ci5kaXNhYmxlZF0iOiJkaXNhYmxlZCB8fCBudWxsIiwiW2F0dHIucGxhY2Vob2xkZXJdIjoicGxhY2Vob2xkZXIgfHwgbnVsbCIsIlthdHRyLmFyaWEtaW52YWxpZF0iOiJfY2hpcExpc3QgJiYgX2NoaXBMaXN0Lm5nQ29udHJvbCA/IF9jaGlwTGlzdC5uZ0NvbnRyb2wuaW52YWxpZCA6IG51bGwiLCJbYXR0ci5hcmlhLXJlcXVpcmVkXSI6Il9jaGlwTGlzdCAmJiBfY2hpcExpc3QucmVxdWlyZWQgfHwgbnVsbCJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aGd9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTprcixhcmdzOltNeXRdfV19XX0pLHtzZXBhcmF0b3JLZXlDb2Rlczpbe3R5cGU6eHksYXJnczpbIm1hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzIl19XSxjaGlwRW5kOlt7dHlwZTpPeSxhcmdzOlsibWF0Q2hpcElucHV0VG9rZW5FbmQiXX1dLHBsYWNlaG9sZGVyOlt7dHlwZTp4eX1dLGlkOlt7dHlwZTp4eX1dLGNoaXBMaXN0Olt7dHlwZTp4eSxhcmdzOlsibWF0Q2hpcElucHV0Rm9yIl19XSxhZGRPbkJsdXI6W3t0eXBlOnh5LGFyZ3M6WyJtYXRDaGlwSW5wdXRBZGRPbkJsdXIiXX1dLGRpc2FibGVkOlt7dHlwZTp4eX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBTeXQ9W1B5dCxfeXQsa3l0LEN5dCxieXQseXl0XSxEeXQ9e3NlcGFyYXRvcktleUNvZGVzOlttel19O2NsYXNzIEV5dHt9RXl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxFeXQpfSxFeXQuybVtb2Q9YW8oe3R5cGU6RXl0fSksRXl0Lsm1aW5qPXZuKHtwcm92aWRlcnM6W2JILHtwcm92aWRlOk15dCx1c2VWYWx1ZTpEeXR9XSxpbXBvcnRzOltbWEldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoRXl0LFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbWEldLGV4cG9ydHM6U3l0LGRlY2xhcmF0aW9uczpTeXQscHJvdmlkZXJzOltiSCx7cHJvdmlkZTpNeXQsdXNlVmFsdWU6RHl0fV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhFeXQse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltQeXQsX3l0LGt5dCxDeXQsYnl0LHl5dF19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bWEldfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1B5dCxfeXQsa3l0LEN5dCxieXQseXl0XX19KTtjb25zdCBSeXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm57ImVtYmVkZGluZy1zZWxlY3RlZCI6dCwiZW1iZWRkaW5nLXVuc2VsZWN0ZWQiOmV9fTtmdW5jdGlvbiBBeXQodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJtYXQtaWNvbiIsNSksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe2hpKHQpO2NvbnN0IG49WW0oKTtyZXR1cm4gbi5vblNlbGVjdC5lbWl0KG4ubWV0cmljKX0pKSxBbSgpfWlmKDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJuZ0NsYXNzIix2aCgxLFJ5dCx0LmVtYmVkZGluZ3NNZXRyaWM9PT10Lm1ldHJpYyx0LmVtYmVkZGluZ3NNZXRyaWMhPT10Lm1ldHJpYykpfX1jb25zdCBUeXQ9ZnVuY3Rpb24odCl7cmV0dXJue3dpZHRoOnR9fSxOeXQ9ZnVuY3Rpb24odCl7cmV0dXJueyJ2YWx1ZS1pbnZhbGlkIjp0fX07Y2xhc3Mgenl0e2NvbnN0cnVjdG9yKCl7dGhpcy5vblJlbW92ZT1uZXcgTGgsdGhpcy5vblNlbGVjdD1uZXcgTGgsdGhpcy5vbkZpbHRlckNoYW5nZT1uZXcgTGgsdGhpcy5mb2N1c01pbj0hMSx0aGlzLmZvY3VzTWF4PSExLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgSX1uZ09uSW5pdCgpe3RoaXMubWluRm9ybUNvbnRyb2w9bmV3ICRqKHRoaXMuZmlsdGVyVmFsdWVzLm1pbixbcVYucmVxdWlyZWQscVYubWluKC0xKSxxVi5tYXgoMSksdGhpcy5taW5WYWx1ZVZhbGlkYXRvci5iaW5kKHRoaXMpXSksdGhpcy5tYXhGb3JtQ29udHJvbD1uZXcgJGoodGhpcy5maWx0ZXJWYWx1ZXMubWF4LFtxVi5yZXF1aXJlZCxxVi5taW4oLTEpLHFWLm1heCgxKSx0aGlzLm1heFZhbHVlVmFsaWRhdG9yLmJpbmQodGhpcyldKSx0aGlzLm1pbkZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKEllKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLm1pbkZvcm1Db250cm9sLnZhbGlkJiZ0aGlzLm1heEZvcm1Db250cm9sLnZhbGlkJiZ0aGlzLm9uRmlsdGVyQ2hhbmdlLmVtaXQoe21pbjpwYXJzZUZsb2F0KHRoaXMubWluRm9ybUNvbnRyb2wudmFsdWUpLG1heDpwYXJzZUZsb2F0KHRoaXMubWF4Rm9ybUNvbnRyb2wudmFsdWUpfSl9KSksdGhpcy5tYXhGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShJZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5taW5Gb3JtQ29udHJvbC52YWxpZCYmdGhpcy5tYXhGb3JtQ29udHJvbC52YWxpZCYmdGhpcy5vbkZpbHRlckNoYW5nZS5lbWl0KHttaW46cGFyc2VGbG9hdCh0aGlzLm1pbkZvcm1Db250cm9sLnZhbHVlKSxtYXg6cGFyc2VGbG9hdCh0aGlzLm1heEZvcm1Db250cm9sLnZhbHVlKX0pfSkpfW5nT25DaGFuZ2VzKHQpe3RoaXMubWluRm9ybUNvbnRyb2wmJnRoaXMubWF4Rm9ybUNvbnRyb2wmJih0aGlzLm1pbkZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuZmlsdGVyVmFsdWVzLm1pbix7ZW1pdEV2ZW50OiExfSksdGhpcy5tYXhGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZpbHRlclZhbHVlcy5tYXgse2VtaXRFdmVudDohMX0pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9bWluVmFsdWVWYWxpZGF0b3IodCl7cmV0dXJuIHRoaXMubWF4Rm9ybUNvbnRyb2wmJiJOYU4iIT09dC52YWx1ZT9pc05hTihwYXJzZUZsb2F0KHQudmFsdWUpKT97dmFsdWU6InRoZSBzdHJpbmcgeW91IGVudGVyZWQgaXMgbmVpdGhlciBOYU4gbm9yIGEgbnVtYmVyIn06cGFyc2VGbG9hdCh0LnZhbHVlKT5wYXJzZUZsb2F0KHRoaXMubWF4Rm9ybUNvbnRyb2wudmFsdWUpP3t2YWx1ZToidGhlIG51bWJlciB5b3UgZW50ZXJlZCBpcyBsYXJnZXIgdGhhbiB0aGUgbWF4IHZhbHVlIn06bnVsbDpudWxsfW1heFZhbHVlVmFsaWRhdG9yKHQpe3JldHVybiB0aGlzLm1pbkZvcm1Db250cm9sPyJOYU4iPT09dGhpcy5taW5Gb3JtQ29udHJvbC52YWx1ZSYmIk5hTiI9PT10LnZhbHVlP251bGw6aXNOYU4ocGFyc2VGbG9hdCh0LnZhbHVlKSk/e3ZhbHVlOiJ0aGUgc3RyaW5nIHlvdSBlbnRlcmVkIGlzIG5laXRoZXIgTmFOIG5vciBhIG51bWJlciJ9OnQudmFsdWU8dGhpcy5taW5Gb3JtQ29udHJvbC52YWx1ZT97dmFsdWU6InRoZSBudW1iZXIgeW91IGVudGVyZWQgaXMgc21hbGxlciB0aGFuIHRoZSBtaW4gdmFsdWUifTpudWxsOm51bGx9Z2V0RXJyb3JEZXNjcmlwdGlvbih0KXtpZih0KXtjb25zdCBlPU9iamVjdC5rZXlzKHQpWzBdO3JldHVybiJyZXF1aXJlZCI9PT1lPyJ5b3UgZGlkIG5vdCBlbnRlciBhbnl0aGluZyI6Im1pbiI9PT1lPyJ0aGUgbnVtYmVyIG11c3QgYmUgYXQgbGVhc3QgLTEuMCI6Im1heCI9PT1lPyJ0aGUgbnVtYmVyIGlzIGJpZ2dlciB0aGFuIDEuMCI6dFtlXX1yZXR1cm4iIn19enl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx6eXQpfSx6eXQuybVjbXA9dG8oe3R5cGU6enl0LHNlbGVjdG9yczpbWyJtZXRyaWMtYXJpdGhtZXRpYy1lbGVtZW50LWNvbXBvbmVudCJdXSxpbnB1dHM6e21ldHJpYzoibWV0cmljIixmaWx0ZXJWYWx1ZXM6ImZpbHRlclZhbHVlcyIsaGFzRW1iZWRkaW5nc0RhdGE6Imhhc0VtYmVkZGluZ3NEYXRhIixlbWJlZGRpbmdzTWV0cmljOiJlbWJlZGRpbmdzTWV0cmljIn0sb3V0cHV0czp7b25SZW1vdmU6Im9uUmVtb3ZlIixvblNlbGVjdDoib25TZWxlY3QiLG9uRmlsdGVyQ2hhbmdlOiJvbkZpbHRlckNoYW5nZSJ9LGZlYXR1cmVzOltCb10sZGVjbHM6MTAsdmFyczoyMixjb25zdHM6W1sxLCJmaWx0ZXItY2hpcCIsMywicmVtb3ZlZCJdLFsiY2xhc3MiLCJlbWJlZGRpbmdzLWJ1dHRvbiIsInN2Z0ljb24iLCJncm91cF93b3JrXzI0cHgiLDMsIm5nQ2xhc3MiLCJjbGljayIsNCwibmdJZiJdLFsxLCJtZXRyaWMtYXJpdGhtZXRpYy1lbGVtZW50LXJhbmdlIiwzLCJrZXlkb3duIl0sWyJtYXRJbnB1dCIsIiIsMSwiaW5wdXQtZmllbGQiLDMsInZhbHVlIiwibWF0VG9vbHRpcCIsIm1hdFRvb2x0aXBEaXNhYmxlZCIsIm5nU3R5bGUiLCJuZ0NsYXNzIiwiZm9ybUNvbnRyb2wiLCJmb2N1cyIsImZvY3Vzb3V0Il0sWyJtYXRDaGlwUmVtb3ZlIiwiIiwic3ZnSWNvbiIsImNhbmNlbF8yNHB4Il0sWyJzdmdJY29uIiwiZ3JvdXBfd29ya18yNHB4IiwxLCJlbWJlZGRpbmdzLWJ1dHRvbiIsMywibmdDbGFzcyIsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtYXQtY2hpcCIsMCksVm0oInJlbW92ZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZW1vdmUuZW1pdChuLm1ldHJpYyl9KSksUXAoMSxBeXQsMSw0LCJtYXQtaWNvbiIsMSksa3UoMiksUm0oMywiZGl2IiwyKSxWbSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCl9KSksa3UoNCwiIFsgIiksUm0oNSwiaW5wdXQiLDMpLFZtKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5mb2N1c01pbj0hMH0pKSgiZm9jdXNvdXQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uZm9jdXNNaW49ITF9KSksQW0oKSxrdSg2LCIgOyAiKSxSbSg3LCJpbnB1dCIsMyksVm0oImZvY3VzIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmZvY3VzTWF4PSEwfSkpKCJmb2N1c291dCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5mb2N1c01heD0hMX0pKSxBbSgpLGt1KDgsIiBdICIpLEFtKCksVG0oOSwibWF0LWljb24iLDQpLEFtKCkpLDImZSYmKHJjKDEpLERtKCJuZ0lmIixuLmhhc0VtYmVkZGluZ3NEYXRhKSxyYygxKSxEdSgiICIsbi5tZXRyaWMsIiAiKSxyYygzKSxEbSgidmFsdWUiLG4uZmlsdGVyVmFsdWVzLm1pbikoIm1hdFRvb2x0aXAiLG4uZ2V0RXJyb3JEZXNjcmlwdGlvbihuLm1pbkZvcm1Db250cm9sLmVycm9ycykpKCJtYXRUb29sdGlwRGlzYWJsZWQiLCFuLm1pbkZvcm1Db250cm9sLmludmFsaWQpKCJuZ1N0eWxlIixNaCgxNCxUeXQsbi5mb2N1c01pbj8iMTAwcHgiOm4ubWluRm9ybUNvbnRyb2wudmFsdWUudG9TdHJpbmcoKS5sZW5ndGgrImNoIikpKCJuZ0NsYXNzIixNaCgxNixOeXQsIW4ubWluRm9ybUNvbnRyb2wudmFsaWQpKSgiZm9ybUNvbnRyb2wiLG4ubWluRm9ybUNvbnRyb2wpLHJjKDIpLERtKCJ2YWx1ZSIsbi5maWx0ZXJWYWx1ZXMubWF4KSgibWF0VG9vbHRpcCIsbi5nZXRFcnJvckRlc2NyaXB0aW9uKG4ubWF4Rm9ybUNvbnRyb2wuZXJyb3JzKSkoIm1hdFRvb2x0aXBEaXNhYmxlZCIsIW4ubWF4Rm9ybUNvbnRyb2wuaW52YWxpZCkoIm5nU3R5bGUiLE1oKDE4LFR5dCxuLmZvY3VzTWF4PyIxMDBweCI6bi5tYXhGb3JtQ29udHJvbC52YWx1ZS50b1N0cmluZygpLmxlbmd0aCsiY2giKSkoIm5nQ2xhc3MiLE1oKDIwLE55dCwhbi5tYXhGb3JtQ29udHJvbC52YWxpZCkpKCJmb3JtQ29udHJvbCIsbi5tYXhGb3JtQ29udHJvbCkpfSxkaXJlY3RpdmVzOltfeXQsZE0sVlYsRlEsQ00sYU0seGoseFUsRFcsQ3l0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmlsdGVyLWNoaXBbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7bWFyZ2luLWxlZnQ6NXB4fS5tZXRyaWMtYXJpdGhtZXRpYy1lbGVtZW50LXJhbmdlW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2ZvbnQtc2l6ZTouOGVtO2hlaWdodDozMHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bGluZS1oZWlnaHQ6MzBweDtwYWRkaW5nOjAgNXB4O21hcmdpbi1sZWZ0OjVweH0uaW5wdXQtZmllbGRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxLjFlbTt0cmFuc2l0aW9uOndpZHRoIDFzfS5pbnB1dC1maWVsZFtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xMik7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lfS52YWx1ZS1pbnZhbGlkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZjQ0MzM2fS5lbWJlZGRpbmctc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmNTdjMDA7b3BhY2l0eToxfS5lbWJlZGRpbmctdW5zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNH0uZW1iZWRkaW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7bWFyZ2luLXJpZ2h0OjhweDtjdXJzb3I6cG9pbnRlcn0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoenl0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpYy1hcml0aG1ldGljLWVsZW1lbnQtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9tZXRyaWNfYXJpdGhtZXRpY19lbGVtZW50X2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL21ldHJpY19hcml0aG1ldGljX2VsZW1lbnRfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse21ldHJpYzpbe3R5cGU6eHl9XSxmaWx0ZXJWYWx1ZXM6W3t0eXBlOnh5fV0saGFzRW1iZWRkaW5nc0RhdGE6W3t0eXBlOnh5fV0sZW1iZWRkaW5nc01ldHJpYzpbe3R5cGU6eHl9XSxvblJlbW92ZTpbe3R5cGU6T3l9XSxvblNlbGVjdDpbe3R5cGU6T3l9XSxvbkZpbHRlckNoYW5nZTpbe3R5cGU6T3l9XX0pO2NsYXNzIEl5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5maWx0ZXJWYWx1ZXMkPXRoaXMuc3RvcmUucGlwZShGdyhnYnQpKS5waXBlKEl0KCh0PT57Y29uc3QgZT10W3RoaXMubWV0cmljXTtyZXR1cm4gZT97bWluOmUuaW5jbHVkZU5hTj8iTmFOIjp0aGlzLnJvdW5kVG9UaHJlZURlY2ltYWxQb2ludHMoZS5taW4pLG1heDplLm1heDxlLm1pbj8iTmFOIjp0aGlzLnJvdW5kVG9UaHJlZURlY2ltYWxQb2ludHMoZS5tYXgpfTp7bWluOi0xLG1heDoxfX0pKSksdGhpcy5oYXNFbWJlZGRpbmdzRGF0YSQ9dGhpcy5zdG9yZS5waXBlKEZ3KGxidCkpLnBpcGUoSXQoKHQ9PnZvaWQgMCE9PXQpKSksdGhpcy5lbWJlZGRpbmdzTWV0cmljJD10aGlzLnN0b3JlLnBpcGUoRncoT2J0KSl9cmVtb3ZlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goTGJ0KHttZXRyaWM6dH0pKX1zZWxlY3QodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChaYnQoe21ldHJpYzp0fSkpfWZpbHRlckNoYW5nZSh0KXtjb25zdCBlPWlzTmFOKHQubWluKT8tMTp0Lm1pbixuPWlzTmFOKHQubWF4KT8tMjp0Lm1heCxvPWlzTmFOKHQubWluKTt0aGlzLnN0b3JlLmRpc3BhdGNoKEJidCh7bWV0cmljOnRoaXMubWV0cmljLG1heDpuLG1pbjplLGluY2x1ZGVOYU46b30pKX1yb3VuZFRvVGhyZWVEZWNpbWFsUG9pbnRzKHQpe3JldHVybiBNYXRoLnJvdW5kKDFlMyoodCtOdW1iZXIuRVBTSUxPTikpLzFlM319SXl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJeXQpKFNtKEl3KSl9LEl5dC7JtWNtcD10byh7dHlwZTpJeXQsc2VsZWN0b3JzOltbIm5wbWktbWV0cmljLWFyaXRobWV0aWMtZWxlbWVudCJdXSxpbnB1dHM6e21ldHJpYzoibWV0cmljIn0sZGVjbHM6NCx2YXJzOjEwLGNvbnN0czpbWzMsIm1ldHJpYyIsImZpbHRlclZhbHVlcyIsImhhc0VtYmVkZGluZ3NEYXRhIiwiZW1iZWRkaW5nc01ldHJpYyIsIm9uUmVtb3ZlIiwib25TZWxlY3QiLCJvbkZpbHRlckNoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWV0cmljLWFyaXRobWV0aWMtZWxlbWVudC1jb21wb25lbnQiLDApLFZtKCJvblJlbW92ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ucmVtb3ZlKGUpfSkpKCJvblNlbGVjdCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uc2VsZWN0KGUpfSkpKCJvbkZpbHRlckNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uZmlsdGVyQ2hhbmdlKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFtKCkpLDImZSYmRG0oIm1ldHJpYyIsbi5tZXRyaWMpKCJmaWx0ZXJWYWx1ZXMiLFRoKDEsNCxuLmZpbHRlclZhbHVlcyQpKSgiaGFzRW1iZWRkaW5nc0RhdGEiLFRoKDIsNixuLmhhc0VtYmVkZGluZ3NEYXRhJCkpKCJlbWJlZGRpbmdzTWV0cmljIixUaCgzLDgsbi5lbWJlZGRpbmdzTWV0cmljJCkpfSxkaXJlY3RpdmVzOlt6eXRdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChJeXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1tZXRyaWMtYXJpdGhtZXRpYy1lbGVtZW50Iix0ZW1wbGF0ZTonXG4gICAgPG1ldHJpYy1hcml0aG1ldGljLWVsZW1lbnQtY29tcG9uZW50XG4gICAgICBbbWV0cmljXT0ibWV0cmljIlxuICAgICAgW2ZpbHRlclZhbHVlc109ImZpbHRlclZhbHVlcyQgfCBhc3luYyJcbiAgICAgIFtoYXNFbWJlZGRpbmdzRGF0YV09Imhhc0VtYmVkZGluZ3NEYXRhJCB8IGFzeW5jIlxuICAgICAgW2VtYmVkZGluZ3NNZXRyaWNdPSJlbWJlZGRpbmdzTWV0cmljJCB8IGFzeW5jIlxuICAgICAgKG9uUmVtb3ZlKT0icmVtb3ZlKCRldmVudCkiXG4gICAgICAob25TZWxlY3QpPSJzZWxlY3QoJGV2ZW50KSJcbiAgICAgIChvbkZpbHRlckNoYW5nZSk9ImZpbHRlckNoYW5nZSgkZXZlbnQpIlxuICAgID48L21ldHJpYy1hcml0aG1ldGljLWVsZW1lbnQtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSkse21ldHJpYzpbe3R5cGU6eHl9XX0pO2NsYXNzIEh5dHtjb25zdHJ1Y3Rvcigpe3RoaXMuT3BlcmF0b3I9JGh0fX1mdW5jdGlvbiBGeXQodCxlKXsxJnQmJlRtKDAsIm5wbWktbWV0cmljLWFyaXRobWV0aWMtZWxlbWVudCIsNCksMiZ0JiZEbSgibWV0cmljIixZbSgpLiRpbXBsaWNpdC5tZXRyaWMpfWZ1bmN0aW9uIEx5dCh0LGUpezEmdCYmVG0oMCwibnBtaS1tZXRyaWMtYXJpdGhtZXRpYy1vcGVyYXRvciIsNSksMiZ0JiZEbSgib3BlcmF0b3IiLFltKCkuJGltcGxpY2l0Lm9wZXJhdG9yKX1mdW5jdGlvbiBCeXQodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiKSxRcCgxLEZ5dCwxLDEsIm5wbWktbWV0cmljLWFyaXRobWV0aWMtZWxlbWVudCIsMiksUXAoMixMeXQsMSwxLCJucG1pLW1ldHJpYy1hcml0aG1ldGljLW9wZXJhdG9yIiwzKSxBbSgpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1ZbSgpO3JjKDEpLERtKCJuZ0lmIix0LmtpbmQ9PT1uLkFyaXRobWV0aWNLaW5kLk1FVFJJQykscmMoMSksRG0oIm5nSWYiLHQua2luZD09PW4uQXJpdGhtZXRpY0tpbmQuT1BFUkFUT1IpfX1IeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEh5dCl9LEh5dC7JtWNtcD10byh7dHlwZTpIeXQsc2VsZWN0b3JzOltbIm5wbWktbWV0cmljLWFyaXRobWV0aWMtb3BlcmF0b3IiXV0saW5wdXRzOntvcGVyYXRvcjoib3BlcmF0b3IifSxkZWNsczoyLHZhcnM6MSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibWF0LWNoaXAiKSxrdSgxKSxBbSgpKSwyJmUmJihyYygxKSxEdSgiICIsbi5vcGVyYXRvcj09PW4uT3BlcmF0b3IuQU5EPyImIjoiIiwiICIpKX0sZGlyZWN0aXZlczpbX3l0XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEh5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLW1ldHJpYy1hcml0aG1ldGljLW9wZXJhdG9yIix0ZW1wbGF0ZToiXG4gICAgPG1hdC1jaGlwPlxuICAgICAge3sgb3BlcmF0b3IgPT09IE9wZXJhdG9yLkFORCA/ICcmJyA6ICcnIH19XG4gICAgPC9tYXQtY2hpcD5cbiAgIixjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHtvcGVyYXRvcjpbe3R5cGU6eHl9XX0pO2NsYXNzIFZ5dHtjb25zdHJ1Y3Rvcigpe3RoaXMuQXJpdGhtZXRpY0tpbmQ9dGJ0fX1WeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZ5dCl9LFZ5dC7JtWNtcD10byh7dHlwZTpWeXQsc2VsZWN0b3JzOltbIm1ldHJpYy1hcml0aG1ldGljLWNvbXBvbmVudCJdXSxpbnB1dHM6e21ldHJpY0FyaXRobWV0aWM6Im1ldHJpY0FyaXRobWV0aWMifSxkZWNsczoyLHZhcnM6Mixjb25zdHM6W1szLCJzZWxlY3RhYmxlIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJtZXRyaWMiLDQsIm5nSWYiXSxbMywib3BlcmF0b3IiLDQsIm5nSWYiXSxbMywibWV0cmljIl0sWzMsIm9wZXJhdG9yIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtYXQtY2hpcC1saXN0IiwwKSxRcCgxLEJ5dCwzLDIsImRpdiIsMSksQW0oKSksMiZlJiYoRG0oInNlbGVjdGFibGUiLCExKSxyYygxKSxEbSgibmdGb3JPZiIsbi5tZXRyaWNBcml0aG1ldGljKSl9LGRpcmVjdGl2ZXM6W1B5dCxsTSxkTSxJeXQsSHl0XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWeXQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljLWFyaXRobWV0aWMtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9tZXRyaWNfYXJpdGhtZXRpY19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9tZXRyaWNfYXJpdGhtZXRpY19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7bWV0cmljQXJpdGhtZXRpYzpbe3R5cGU6eHl9XX0pO2NsYXNzIGp5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5tZXRyaWNBcml0aG1ldGljJD10aGlzLnN0b3JlLnBpcGUoRncoZmJ0KSl9fWp5dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8anl0KShTbShJdykpfSxqeXQuybVjbXA9dG8oe3R5cGU6anl0LHNlbGVjdG9yczpbWyJucG1pLW1ldHJpYy1hcml0aG1ldGljIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsIm1ldHJpY0FyaXRobWV0aWMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsIm1ldHJpYy1hcml0aG1ldGljLWNvbXBvbmVudCIsMCksQWgoMSwiYXN5bmMiKSksMiZlJiZEbSgibWV0cmljQXJpdGhtZXRpYyIsVGgoMSwxLG4ubWV0cmljQXJpdGhtZXRpYyQpKX0sZGlyZWN0aXZlczpbVnl0XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoanl0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktbWV0cmljLWFyaXRobWV0aWMiLHRlbXBsYXRlOidcbiAgICA8bWV0cmljLWFyaXRobWV0aWMtY29tcG9uZW50XG4gICAgICBbbWV0cmljQXJpdGhtZXRpY109Im1ldHJpY0FyaXRobWV0aWMkIHwgYXN5bmMiXG4gICAgPjwvbWV0cmljLWFyaXRobWV0aWMtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgVXl0e31mdW5jdGlvbiBHeXQodCxlLG4pe2lmKG4pcmV0dXJuIHQ7Y29uc3Qgbz1PYmplY3QuYXNzaWduKHt9LHQpO3JldHVybiBlLmZvckVhY2goKHQ9PmRlbGV0ZSBvW3RdKSksb31VeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFV5dCl9LFV5dC7JtWNtcD10byh7dHlwZTpVeXQsc2VsZWN0b3JzOltbIm5wbWktZGF0YS1zZWxlY3Rpb24iXV0sZGVjbHM6NCx2YXJzOjAsY29uc3RzOltbMSwiZGF0YS1zZWxlY3Rpb24iXSxbMSwibWV0cmljcy1zZWxlY3RvciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxUbSgxLCJucG1pLW1ldHJpYy1zZWFyY2giLDEpLFRtKDIsIm5wbWktcmVzdWx0cy1kb3dubG9hZCIpLEFtKCksVG0oMywibnBtaS1tZXRyaWMtYXJpdGhtZXRpYyIpKX0sZGlyZWN0aXZlczpbbHl0LG15dCxqeXRdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO3BhZGRpbmc6MTBweCAyMHB4fS5kYXRhLXNlbGVjdGlvbltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubWV0cmljcy1zZWxlY3Rvcltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxIDF9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFV5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLWRhdGEtc2VsZWN0aW9uIix0ZW1wbGF0ZVVybDoiLi9kYXRhX3NlbGVjdGlvbl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9kYXRhX3NlbGVjdGlvbl9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCxudWxsKTtjb25zdCBXeXQ9WyJjaGFydCJdO2NsYXNzIFl5dHtjb25zdHJ1Y3Rvcigpe3RoaXMub25SZW1vdmU9bmV3IExoLHRoaXMub25VcGRhdGVGaWx0ZXI9bmV3IExoLHRoaXMuaGVpZ2h0PTMwMCx0aGlzLmNoYXJ0V2lkdGg9MCx0aGlzLmNoYXJ0SGVpZ2h0PTAsdGhpcy5kcmF3SGVpZ2h0PTAsdGhpcy5kcmF3V2lkdGg9MCx0aGlzLm1hcmdpbj17dG9wOjIwLHJpZ2h0OjEwLGJvdHRvbToyMCxsZWZ0OjEwfSx0aGlzLmRyYXdNYXJnaW49e3RvcDowLHJpZ2h0OjAsYm90dG9tOjIwLGxlZnQ6MjB9LHRoaXMuYnJ1c2g9KGZ1bmN0aW9uIHQoKXtyZXR1cm4oZnVuY3Rpb24gdChlKXt2YXIgbixvPW90dCxpPW50dCxhPWl0dCxyPSEwLHM9SDUoInN0YXJ0IiwiYnJ1c2giLCJlbmQiKSxsPTY7ZnVuY3Rpb24gYyh0KXt2YXIgbj10LnByb3BlcnR5KCJfX2JydXNoIixoKS5zZWxlY3RBbGwoIi5vdmVybGF5IikuZGF0YShbZXR0KCJvdmVybGF5IildKTtuLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJvdmVybGF5IikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5hdHRyKCJjdXJzb3IiLEs5Lm92ZXJsYXkpLm1lcmdlKG4pLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9YXR0KHRoaXMpLmV4dGVudDtKNCh0aGlzKS5hdHRyKCJ4Iix0WzBdWzBdKS5hdHRyKCJ5Iix0WzBdWzFdKS5hdHRyKCJ3aWR0aCIsdFsxXVswXS10WzBdWzBdKS5hdHRyKCJoZWlnaHQiLHRbMV1bMV0tdFswXVsxXSl9KSksdC5zZWxlY3RBbGwoIi5zZWxlY3Rpb24iKS5kYXRhKFtldHQoInNlbGVjdGlvbiIpXSkuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsInNlbGVjdGlvbiIpLmF0dHIoImN1cnNvciIsSzkuc2VsZWN0aW9uKS5hdHRyKCJmaWxsIiwiIzc3NyIpLmF0dHIoImZpbGwtb3BhY2l0eSIsLjMpLmF0dHIoInN0cm9rZSIsIiNmZmYiKS5hdHRyKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIik7dmFyIG89dC5zZWxlY3RBbGwoIi5oYW5kbGUiKS5kYXRhKGUuaGFuZGxlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pKTtvLmV4aXQoKS5yZW1vdmUoKSxvLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLChmdW5jdGlvbih0KXtyZXR1cm4iaGFuZGxlIGhhbmRsZS0tIit0LnR5cGV9KSkuYXR0cigiY3Vyc29yIiwoZnVuY3Rpb24odCl7cmV0dXJuIEs5W3QudHlwZV19KSksdC5lYWNoKGQpLmF0dHIoImZpbGwiLCJub25lIikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5vbigibW91c2Vkb3duLmJydXNoIix1KS5maWx0ZXIoYSkub24oInRvdWNoc3RhcnQuYnJ1c2giLHUpLm9uKCJ0b3VjaG1vdmUuYnJ1c2giLGYpLm9uKCJ0b3VjaGVuZC5icnVzaCB0b3VjaGNhbmNlbC5icnVzaCIsZykuc3R5bGUoInRvdWNoLWFjdGlvbiIsIm5vbmUiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpfWZ1bmN0aW9uIGQoKXt2YXIgdD1KNCh0aGlzKSxlPWF0dCh0aGlzKS5zZWxlY3Rpb247ZT8odC5zZWxlY3RBbGwoIi5zZWxlY3Rpb24iKS5zdHlsZSgiZGlzcGxheSIsbnVsbCkuYXR0cigieCIsZVswXVswXSkuYXR0cigieSIsZVswXVsxXSkuYXR0cigid2lkdGgiLGVbMV1bMF0tZVswXVswXSkuYXR0cigiaGVpZ2h0IixlWzFdWzFdLWVbMF1bMV0pLHQuc2VsZWN0QWxsKCIuaGFuZGxlIikuc3R5bGUoImRpc3BsYXkiLG51bGwpLmF0dHIoIngiLChmdW5jdGlvbih0KXtyZXR1cm4iZSI9PT10LnR5cGVbdC50eXBlLmxlbmd0aC0xXT9lWzFdWzBdLWwvMjplWzBdWzBdLWwvMn0pKS5hdHRyKCJ5IiwoZnVuY3Rpb24odCl7cmV0dXJuInMiPT09dC50eXBlWzBdP2VbMV1bMV0tbC8yOmVbMF1bMV0tbC8yfSkpLmF0dHIoIndpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIm4iPT09dC50eXBlfHwicyI9PT10LnR5cGU/ZVsxXVswXS1lWzBdWzBdK2w6bH0pKS5hdHRyKCJoZWlnaHQiLChmdW5jdGlvbih0KXtyZXR1cm4iZSI9PT10LnR5cGV8fCJ3Ij09PXQudHlwZT9lWzFdWzFdLWVbMF1bMV0rbDpsfSkpKTp0LnNlbGVjdEFsbCgiLnNlbGVjdGlvbiwuaGFuZGxlIikuc3R5bGUoImRpc3BsYXkiLCJub25lIikuYXR0cigieCIsbnVsbCkuYXR0cigieSIsbnVsbCkuYXR0cigid2lkdGgiLG51bGwpLmF0dHIoImhlaWdodCIsbnVsbCl9ZnVuY3Rpb24gcCh0LGUsbil7dmFyIG89dC5fX2JydXNoLmVtaXR0ZXI7cmV0dXJuIW98fG4mJm8uY2xlYW4/bmV3IG0odCxlLG4pOm99ZnVuY3Rpb24gbSh0LGUsbil7dGhpcy50aGF0PXQsdGhpcy5hcmdzPWUsdGhpcy5zdGF0ZT10Ll9fYnJ1c2gsdGhpcy5hY3RpdmU9MCx0aGlzLmNsZWFuPW59ZnVuY3Rpb24gdSgpe2lmKCghbnx8TDQudG91Y2hlcykmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdCxvLGEscyxsLGMsbSx1LGYsZyxoLGI9dGhpcyx5PUw0LnRhcmdldC5fX2RhdGFfXy50eXBlLF89InNlbGVjdGlvbiI9PT0ociYmTDQubWV0YUtleT95PSJvdmVybGF5Ijp5KT9WOTpyJiZMNC5hbHRLZXk/Rzk6VTksQz1lPT09WDk/bnVsbDokOVt5XSxNPWU9PT1aOT9udWxsOnR0dFt5XSx2PWF0dChiKSx4PXYuZXh0ZW50LE89di5zZWxlY3Rpb24sUD14WzBdWzBdLHc9eFswXVsxXSxrPXhbMV1bMF0sUz14WzFdWzFdLEQ9MCxFPTAsUj1DJiZNJiZyJiZMNC5zaGlmdEtleSxBPUw0LnRvdWNoZXM/cTkoTDQuY2hhbmdlZFRvdWNoZXNbMF0uaWRlbnRpZmllcik6dDYsVD1BKGIpLE49VCx6PXAoYixhcmd1bWVudHMsITApLmJlZm9yZXN0YXJ0KCk7Im92ZXJsYXkiPT09eT8oTyYmKGY9ITApLHYuc2VsZWN0aW9uPU89W1t0PWU9PT1YOT9QOlRbMF0sYT1lPT09Wjk/dzpUWzFdXSxbbD1lPT09WDk/azp0LG09ZT09PVo5P1M6YV1dKToodD1PWzBdWzBdLGE9T1swXVsxXSxsPU9bMV1bMF0sbT1PWzFdWzFdKSxvPXQscz1hLGM9bCx1PW07dmFyIEk9SjQoYikuYXR0cigicG9pbnRlci1ldmVudHMiLCJub25lIiksSD1JLnNlbGVjdEFsbCgiLm92ZXJsYXkiKS5hdHRyKCJjdXJzb3IiLEs5W3ldKTtpZihMNC50b3VjaGVzKXoubW92ZWQ9TCx6LmVuZGVkPVY7ZWxzZXt2YXIgRj1KNChMNC52aWV3KS5vbigibW91c2Vtb3ZlLmJydXNoIixMLCEwKS5vbigibW91c2V1cC5icnVzaCIsViwhMCk7ciYmRi5vbigia2V5ZG93bi5icnVzaCIsaiwhMCkub24oImtleXVwLmJydXNoIixVLCEwKSxuNihMNC52aWV3KX1IOSgpLEk4KGIpLGQuY2FsbChiKSx6LnN0YXJ0KCl9ZnVuY3Rpb24gTCgpe3ZhciB0PUEoYik7IVJ8fGd8fGh8fChNYXRoLmFicyh0WzBdLU5bMF0pPk1hdGguYWJzKHRbMV0tTlsxXSk/aD0hMDpnPSEwKSxOPXQsZj0hMCxGOSgpLEIoKX1mdW5jdGlvbiBCKCl7dmFyIGU7c3dpdGNoKEQ9TlswXS1UWzBdLEU9TlsxXS1UWzFdLF8pe2Nhc2Ugajk6Y2FzZSBWOTpDJiYoRD1NYXRoLm1heChQLXQsTWF0aC5taW4oay1sLEQpKSxvPXQrRCxjPWwrRCksTSYmKEU9TWF0aC5tYXgody1hLE1hdGgubWluKFMtbSxFKSkscz1hK0UsdT1tK0UpO2JyZWFrO2Nhc2UgVTk6QzwwPyhEPU1hdGgubWF4KFAtdCxNYXRoLm1pbihrLXQsRCkpLG89dCtELGM9bCk6Qz4wJiYoRD1NYXRoLm1heChQLWwsTWF0aC5taW4oay1sLEQpKSxvPXQsYz1sK0QpLE08MD8oRT1NYXRoLm1heCh3LWEsTWF0aC5taW4oUy1hLEUpKSxzPWErRSx1PW0pOk0+MCYmKEU9TWF0aC5tYXgody1tLE1hdGgubWluKFMtbSxFKSkscz1hLHU9bStFKTticmVhaztjYXNlIEc5OkMmJihvPU1hdGgubWF4KFAsTWF0aC5taW4oayx0LUQqQykpLGM9TWF0aC5tYXgoUCxNYXRoLm1pbihrLGwrRCpDKSkpLE0mJihzPU1hdGgubWF4KHcsTWF0aC5taW4oUyxhLUUqTSkpLHU9TWF0aC5tYXgodyxNYXRoLm1pbihTLG0rRSpNKSkpfWM8byYmKEMqPS0xLGU9dCx0PWwsbD1lLGU9byxvPWMsYz1lLHkgaW4gSjkmJkguYXR0cigiY3Vyc29yIixLOVt5PUo5W3ldXSkpLHU8cyYmKE0qPS0xLGU9YSxhPW0sbT1lLGU9cyxzPXUsdT1lLHkgaW4gUTkmJkguYXR0cigiY3Vyc29yIixLOVt5PVE5W3ldXSkpLHYuc2VsZWN0aW9uJiYoTz12LnNlbGVjdGlvbiksZyYmKG89T1swXVswXSxjPU9bMV1bMF0pLGgmJihzPU9bMF1bMV0sdT1PWzFdWzFdKSxPWzBdWzBdPT09byYmT1swXVsxXT09PXMmJk9bMV1bMF09PT1jJiZPWzFdWzFdPT09dXx8KHYuc2VsZWN0aW9uPVtbbyxzXSxbYyx1XV0sZC5jYWxsKGIpLHouYnJ1c2goKSl9ZnVuY3Rpb24gVigpe2lmKEg5KCksTDQudG91Y2hlcyl7aWYoTDQudG91Y2hlcy5sZW5ndGgpcmV0dXJuO24mJmNsZWFyVGltZW91dChuKSxuPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7bj1udWxsfSksNTAwKX1lbHNlIG82KEw0LnZpZXcsZiksRi5vbigia2V5ZG93bi5icnVzaCBrZXl1cC5icnVzaCBtb3VzZW1vdmUuYnJ1c2ggbW91c2V1cC5icnVzaCIsbnVsbCk7SS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLEguYXR0cigiY3Vyc29yIixLOS5vdmVybGF5KSx2LnNlbGVjdGlvbiYmKE89di5zZWxlY3Rpb24pLHJ0dChPKSYmKHYuc2VsZWN0aW9uPW51bGwsZC5jYWxsKGIpKSx6LmVuZCgpfWZ1bmN0aW9uIGooKXtzd2l0Y2goTDQua2V5Q29kZSl7Y2FzZSAxNjpSPUMmJk07YnJlYWs7Y2FzZSAxODpfPT09VTkmJihDJiYobD1jLUQqQyx0PW8rRCpDKSxNJiYobT11LUUqTSxhPXMrRSpNKSxfPUc5LEIoKSk7YnJlYWs7Y2FzZSAzMjpfIT09VTkmJl8hPT1HOXx8KEM8MD9sPWMtRDpDPjAmJih0PW8tRCksTTwwP209dS1FOk0+MCYmKGE9cy1FKSxfPWo5LEguYXR0cigiY3Vyc29yIixLOS5zZWxlY3Rpb24pLEIoKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59RjkoKX1mdW5jdGlvbiBVKCl7c3dpdGNoKEw0LmtleUNvZGUpe2Nhc2UgMTY6UiYmKGc9aD1SPSExLEIoKSk7YnJlYWs7Y2FzZSAxODpfPT09RzkmJihDPDA/bD1jOkM+MCYmKHQ9byksTTwwP209dTpNPjAmJihhPXMpLF89VTksQigpKTticmVhaztjYXNlIDMyOl89PT1qOSYmKEw0LmFsdEtleT8oQyYmKGw9Yy1EKkMsdD1vK0QqQyksTSYmKG09dS1FKk0sYT1zK0UqTSksXz1HOSk6KEM8MD9sPWM6Qz4wJiYodD1vKSxNPDA/bT11Ok0+MCYmKGE9cyksXz1VOSksSC5hdHRyKCJjdXJzb3IiLEs5W3ldKSxCKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufUY5KCl9fWZ1bmN0aW9uIGYoKXtwKHRoaXMsYXJndW1lbnRzKS5tb3ZlZCgpfWZ1bmN0aW9uIGcoKXtwKHRoaXMsYXJndW1lbnRzKS5lbmRlZCgpfWZ1bmN0aW9uIGgoKXt2YXIgdD10aGlzLl9fYnJ1c2h8fHtzZWxlY3Rpb246bnVsbH07cmV0dXJuIHQuZXh0ZW50PVk5KG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKSx0LmRpbT1lLHR9cmV0dXJuIGMubW92ZT1mdW5jdGlvbih0LG4pe3Quc2VsZWN0aW9uP3Qub24oInN0YXJ0LmJydXNoIiwoZnVuY3Rpb24oKXtwKHRoaXMsYXJndW1lbnRzKS5iZWZvcmVzdGFydCgpLnN0YXJ0KCl9KSkub24oImludGVycnVwdC5icnVzaCBlbmQuYnJ1c2giLChmdW5jdGlvbigpe3AodGhpcyxhcmd1bWVudHMpLmVuZCgpfSkpLnR3ZWVuKCJicnVzaCIsKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxvPXQuX19icnVzaCxpPXAodCxhcmd1bWVudHMpLGE9by5zZWxlY3Rpb24scj1lLmlucHV0KCJmdW5jdGlvbiI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOm4sby5leHRlbnQpLHM9WjcoYSxyKTtmdW5jdGlvbiBsKGUpe28uc2VsZWN0aW9uPTE9PT1lJiZudWxsPT09cj9udWxsOnMoZSksZC5jYWxsKHQpLGkuYnJ1c2goKX1yZXR1cm4gbnVsbCE9PWEmJm51bGwhPT1yP2w6bCgxKX0pKTp0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxvPWFyZ3VtZW50cyxpPXQuX19icnVzaCxhPWUuaW5wdXQoImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseSh0LG8pOm4saS5leHRlbnQpLHI9cCh0LG8pLmJlZm9yZXN0YXJ0KCk7STgodCksaS5zZWxlY3Rpb249bnVsbD09PWE/bnVsbDphLGQuY2FsbCh0KSxyLnN0YXJ0KCkuYnJ1c2goKS5lbmQoKX0pKX0sYy5jbGVhcj1mdW5jdGlvbih0KXtjLm1vdmUodCxudWxsKX0sbS5wcm90b3R5cGU9e2JlZm9yZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLnN0YXRlLmVtaXR0ZXI9dGhpcyx0aGlzLnN0YXJ0aW5nPSEwKSx0aGlzfSxzdGFydDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0aW5nPyh0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdCgic3RhcnQiKSk6dGhpcy5lbWl0KCJicnVzaCIpLHRoaXN9LGJydXNoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1pdCgiYnJ1c2giKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXshKGZ1bmN0aW9uIG4odCxlLG8saSl7dmFyIGE9TDQ7dC5zb3VyY2VFdmVudD1MNCxMND10O3RyeXtlLmFwcGx5KG8saSl9ZmluYWxseXtMND1hfX0pKG5ldyBJOShjLHQsZS5vdXRwdXQodGhpcy5zdGF0ZS5zZWxlY3Rpb24pKSxzLmFwcGx5LHMsW3QsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sYy5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp6OShZOSh0KSksYyk6b30sYy5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp6OSghIXQpLGMpOml9LGMudG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ejkoISF0KSxjKTphfSxjLmhhbmRsZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9K3QsYyk6bH0sYy5rZXlNb2RpZmllcnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ISF0LGMpOnJ9LGMub249ZnVuY3Rpb24oKXt2YXIgdD1zLm9uLmFwcGx5KHMsYXJndW1lbnRzKTtyZXR1cm4gdD09PXM/Yzp0fSxjfSkoWDkpfSkoKSx0aGlzLm1heEJpblNpemU9MCx0aGlzLmFyZWE9KGZ1bmN0aW9uIGUoKXt2YXIgdD14b3QsZT1udWxsLG49Q290KDApLG89T290LGk9Q290KCEwKSxhPW51bGwscj12b3Qscz1udWxsO2Z1bmN0aW9uIGwobCl7dmFyIGMsZCxwLG0sdSxmPWwubGVuZ3RoLGc9ITEsaD1uZXcgQXJyYXkoZiksYj1uZXcgQXJyYXkoZik7Zm9yKG51bGw9PWEmJihzPXIodT1tdHQoKSkpLGM9MDtjPD1mOysrYyl7aWYoIShjPGYmJmkobT1sW2NdLGMsbCkpPT09ZylpZihnPSFnKWQ9YyxzLmFyZWFTdGFydCgpLHMubGluZVN0YXJ0KCk7ZWxzZXtmb3Iocy5saW5lRW5kKCkscy5saW5lU3RhcnQoKSxwPWMtMTtwPj1kOy0tcClzLnBvaW50KGhbcF0sYltwXSk7cy5saW5lRW5kKCkscy5hcmVhRW5kKCl9ZyYmKGhbY109K3QobSxjLGwpLGJbY109K24obSxjLGwpLHMucG9pbnQoZT8rZShtLGMsbCk6aFtjXSxvPytvKG0sYyxsKTpiW2NdKSl9aWYodSlyZXR1cm4gcz1udWxsLHUrIiJ8fG51bGx9ZnVuY3Rpb24gYygpe3JldHVybiBQb3QoKS5kZWZpbmVkKGkpLmN1cnZlKHIpLmNvbnRleHQoYSl9cmV0dXJuIGwueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOkNvdCgrbiksZT1udWxsLGwpOnR9LGwueDA9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpDb3QoK2UpLGwpOnR9LGwueDE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bnVsbD09dD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Q290KCt0KSxsKTplfSxsLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpDb3QoK3QpLG89bnVsbCxsKTpufSxsLnkwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Q290KCt0KSxsKTpufSxsLnkxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OkNvdCgrdCksbCk6b30sbC5saW5lWDA9bC5saW5lWTA9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngodCkueShuKX0sbC5saW5lWTE9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngodCkueShvKX0sbC5saW5lWDE9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngoZSkueShuKX0sbC5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Q290KCEhdCksbCk6aX0sbC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG51bGwhPWEmJihzPXIoYSkpLGwpOnJ9LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9hPXM9bnVsbDpzPXIoYT10KSxsKTphfSxsfSkoKS54MChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54U2NhbGVOdW0oLXQubGVuZ3RoKX0uYmluZCh0aGlzKSkueDEoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueFNjYWxlTnVtKHQubGVuZ3RoKX0uYmluZCh0aGlzKSkueShmdW5jdGlvbih0KXtyZXR1cm4gdC54MD09PS0xLzA/dGhpcy5jaGFydEhlaWdodC10aGlzLmRyYXdNYXJnaW4udG9wOnRoaXMueVNjYWxlKCh0LngxK3QueDApLzIpfS5iaW5kKHRoaXMpKS5jdXJ2ZShEb3QpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMudXBkYXRlRGltZW5zaW9ucygpLHRoaXMuc3ZnPUo0KHRoaXMuY2hhcnRDb250YWluZXIubmF0aXZlRWxlbWVudCkuc2VsZWN0KCJzdmciKSx0aGlzLm1haW5Db250YWluZXI9dGhpcy5zdmcuYXBwZW5kKCJnIikuYXR0cigidHJhbnNmb3JtIixgdHJhbnNsYXRlKCR7dGhpcy5tYXJnaW4ubGVmdH0sICR7dGhpcy5tYXJnaW4udG9wfSlgKSx0aGlzLmRyYXdDb250YWluZXI9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke3RoaXMuZHJhd01hcmdpbi5sZWZ0fSwgJHt0aGlzLmRyYXdNYXJnaW4udG9wfSlgKSx0aGlzLmRvdHNHcm91cD10aGlzLmRyYXdDb250YWluZXIuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJkb3RzR3JvdXAiKSx0aGlzLnlBeGlzR3JvdXA9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiYXhpcyBheGlzLS15IiksdGhpcy54QXhpc0dyb3VwPXRoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImF4aXMgYXhpcy0teCIpLHRoaXMubWlzY0dyb3VwPXRoaXMuZHJhd0NvbnRhaW5lci5hcHBlbmQoImciKSx0aGlzLnhTY2FsZT1WdHQoKS5wYWRkaW5nKC4wNSksdGhpcy54QXhpcz16NSh0aGlzLnhTY2FsZSksdGhpcy55U2NhbGU9ZWV0KCkucmFuZ2UoW3RoaXMuZHJhd0hlaWdodCwwXSksdGhpcy55QXhpcz0oZnVuY3Rpb24gdChlKXtyZXR1cm4gVDUoNCxlKX0pKHRoaXMueVNjYWxlKSx0aGlzLnhTY2FsZU51bT1lZXQoKSx0aGlzLmluaXRpYWxpemVCcnVzaCgpLHRoaXMuZHJhd01pc2MoKSx0aGlzLnJlZHJhdygpfW5nT25DaGFuZ2VzKHQpe3RoaXMuc3ZnJiZ0aGlzLnJlZHJhdygpfXJlZHJhdygpe3RoaXMudXBkYXRlRGltZW5zaW9ucygpLHRoaXMuc2V0TWF4QmluU2l6ZSgpLHRoaXMudXBkYXRlQXhlcygpLHRoaXMuZHJhdygpfXVwZGF0ZURpbWVuc2lvbnMoKXt0aGlzLmNoYXJ0V2lkdGg9dGhpcy53aWR0aC10aGlzLm1hcmdpbi5sZWZ0LXRoaXMubWFyZ2luLnJpZ2h0LHRoaXMuZHJhd1dpZHRoPXRoaXMuY2hhcnRXaWR0aC10aGlzLmRyYXdNYXJnaW4ubGVmdC10aGlzLmRyYXdNYXJnaW4ucmlnaHQsdGhpcy5jaGFydEhlaWdodD10aGlzLmhlaWdodC10aGlzLm1hcmdpbi50b3AtdGhpcy5tYXJnaW4uYm90dG9tLHRoaXMuZHJhd0hlaWdodD10aGlzLmNoYXJ0SGVpZ2h0LXRoaXMuZHJhd01hcmdpbi50b3AtdGhpcy5kcmF3TWFyZ2luLmJvdHRvbX1zZXRNYXhCaW5TaXplKCl7T2JqZWN0LnZhbHVlcyh0aGlzLmNoYXJ0RGF0YS52aW9saW5EYXRhKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10Lm1hcCgodD0+dC5sZW5ndGgpKSxuPU1hdGgubWF4KC4uLmUpO3RoaXMubWF4QmluU2l6ZT1NYXRoLm1heChuLHRoaXMubWF4QmluU2l6ZSl9KSl9dXBkYXRlQXhlcygpe3RoaXMueFNjYWxlLnJhbmdlKFswLHRoaXMuZHJhd1dpZHRoXSkuZG9tYWluKE9iamVjdC5rZXlzKHRoaXMuY2hhcnREYXRhLnZpb2xpbkRhdGEpKSx0aGlzLnlTY2FsZS5kb21haW4oW3RoaXMuY2hhcnREYXRhLmV4dHJlbWVzLm1pbix0aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5tYXhdKSx0aGlzLnhTY2FsZU51bS5yYW5nZShbMCx0aGlzLnhTY2FsZS5iYW5kd2lkdGgoKV0pLmRvbWFpbihbLXRoaXMubWF4QmluU2l6ZSx0aGlzLm1heEJpblNpemVdKX1pbml0aWFsaXplQnJ1c2goKXt0aGlzLmJydXNoLm9uKCJlbmQiLHRoaXMuYnJ1c2hNb3ZlZC5iaW5kKHRoaXMpKX1kcmF3KCl7dGhpcy5kcmF3QXhlcygpLHRoaXMuZHJhd1Bsb3QoKSx0aGlzLnJlZnJlc2hNaXNjKCksdGhpcy5yZWZyZXNoQnJ1c2goKX1kcmF3QXhlcygpe3RoaXMueUF4aXNHcm91cC5hdHRyKCJ0cmFuc2Zvcm0iLGB0cmFuc2xhdGUoJHt0aGlzLmRyYXdNYXJnaW4ubGVmdH0sXG4gICAgICAke3RoaXMuZHJhd01hcmdpbi50b3B9KWApLmNhbGwodGhpcy55QXhpcyksdGhpcy54QXhpc0dyb3VwLmF0dHIoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke3RoaXMuZHJhd01hcmdpbi5sZWZ0fSxcbiAgICAgICR7dGhpcy5kcmF3TWFyZ2luLnRvcCt0aGlzLmNoYXJ0SGVpZ2h0fSlgKS5jYWxsKHRoaXMueEF4aXMpfWRyYXdQbG90KCl7Y29uc3QgdD10aGlzLmRvdHNHcm91cC5zZWxlY3RBbGwoIi52aW9saW4tcGxvdCIpLmRhdGEoT2JqZWN0LmVudHJpZXModGhpcy5jaGFydERhdGEudmlvbGluRGF0YSkpO3QuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInZpb2xpbi1wbG90Iikuc3R5bGUoInN0cm9rZSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29sb3JTY2FsZSh0WzBdKX0uYmluZCh0aGlzKSkuc3R5bGUoImZpbGwiLGZ1bmN0aW9uKHQpe3JldHVybmAke3RoaXMuY29sb3JTY2FsZSh0WzBdKX0zM2B9LmJpbmQodGhpcykpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuYHRyYW5zbGF0ZSgke3RoaXMueFNjYWxlKHRbMF0pfSwgMClgfS5iaW5kKHRoaXMpKS5kYXR1bSgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMV19KSkuYXR0cigiZCIsdGhpcy5hcmVhKSx0LmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuYHRyYW5zbGF0ZSgke3RoaXMueFNjYWxlKHRbMF0pfSwgMClgfS5iaW5kKHRoaXMpKS5kYXR1bSgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMV19KSkuYXR0cigiZCIsdGhpcy5hcmVhKSx0LmV4aXQoKS5yZW1vdmUoKX1kcmF3TWlzYygpe3RoaXMuemVyb0xpbmU9dGhpcy5taXNjR3JvdXAuYXBwZW5kKCJsaW5lIikuc3R5bGUoInN0cm9rZSIsImJsYWNrIikuYXR0cigieDEiLDApLmF0dHIoInkxIix0aGlzLnlTY2FsZSgwKSkuYXR0cigieDIiLHRoaXMuZHJhd1dpZHRoKS5hdHRyKCJ5MiIsdGhpcy55U2NhbGUoMCkpLHRoaXMubmFuVGV4dD10aGlzLm1pc2NHcm91cC5hcHBlbmQoInRleHQiKS5zdHlsZSgiZmlsbCIsImJsYWNrIikudGV4dCgiTmFOIikuYXR0cigiZm9udC1zaXplIiwiMTBweCIpLmF0dHIoInRleHQtYW5jaG9yIiwiZW5kIikuYXR0cigiYWxpZ25tZW50LWJhc2VsaW5lIiwibWlkZGxlIikuYXR0cigieCIsLTUpLmF0dHIoInkiLHRoaXMuY2hhcnRIZWlnaHQtdGhpcy5kcmF3TWFyZ2luLnRvcCksdGhpcy5uYW5MaW5lPXRoaXMubWlzY0dyb3VwLmFwcGVuZCgibGluZSIpLnN0eWxlKCJzdHJva2UiLCJncmV5Iikuc3R5bGUoInN0cm9rZS1kYXNoYXJyYXkiLCIzLCAzIikuYXR0cigieDEiLDApLmF0dHIoInkxIix0aGlzLmNoYXJ0SGVpZ2h0LXRoaXMuZHJhd01hcmdpbi50b3ApLmF0dHIoIngyIix0aGlzLmRyYXdXaWR0aCkuYXR0cigieTIiLHRoaXMuY2hhcnRIZWlnaHQtdGhpcy5kcmF3TWFyZ2luLnRvcCl9cmVmcmVzaE1pc2MoKXt0aGlzLnplcm9MaW5lLmF0dHIoInkxIix0aGlzLnlTY2FsZSgwKSkuYXR0cigieDIiLHRoaXMuZHJhd1dpZHRoKS5hdHRyKCJ5MiIsdGhpcy55U2NhbGUoMCkpLHRoaXMubmFuVGV4dC5hdHRyKCJ5Iix0aGlzLmNoYXJ0SGVpZ2h0LXRoaXMuZHJhd01hcmdpbi50b3ApLHRoaXMubmFuTGluZS5hdHRyKCJ5MSIsdGhpcy5kcmF3SGVpZ2h0K3RoaXMuZHJhd01hcmdpbi50b3ApLmF0dHIoIngyIix0aGlzLmRyYXdXaWR0aCkuYXR0cigieTIiLHRoaXMuZHJhd0hlaWdodCt0aGlzLmRyYXdNYXJnaW4udG9wKX1yZWZyZXNoQnJ1c2goKXt0aGlzLmJydXNoLmV4dGVudChbWzAsMF0sW3RoaXMuZHJhd1dpZHRoLHRoaXMuZHJhd0hlaWdodCt0aGlzLm1hcmdpbi50b3BdXSk7Y29uc3QgdD1bMCx0aGlzLmRyYXdIZWlnaHQrdGhpcy5tYXJnaW4udG9wXTtpZih0aGlzLmZpbHRlci5tYXg8dGhpcy5maWx0ZXIubWluKXRbMF09dGhpcy5maWx0ZXIuaW5jbHVkZU5hTj90aGlzLnlTY2FsZSh0aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5taW4pOnRbMV07ZWxzZXtpZighdGhpcy5maWx0ZXIuaW5jbHVkZU5hTil7Y29uc3QgZT1NYXRoLm1heCh0aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5taW4sdGhpcy5maWx0ZXIubWluKTt0WzFdPXRoaXMueVNjYWxlKGUpfWNvbnN0IGU9TWF0aC5taW4odGhpcy5jaGFydERhdGEuZXh0cmVtZXMubWF4LHRoaXMuZmlsdGVyLm1heCk7dFswXT10aGlzLnlTY2FsZShlKX10aGlzLmRyYXdDb250YWluZXIuY2FsbCh0aGlzLmJydXNoKS5jYWxsKHRoaXMuYnJ1c2gubW92ZSx0KX1icnVzaE1vdmVkKCl7aWYoIUw0KXJldHVybjtpZighTDQuc291cmNlRXZlbnQpcmV0dXJuO2NvbnN0IHQ9TDQuc2VsZWN0aW9uO2lmKHQpe2xldCBlPSExLG49LTIsbz10aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5taW47dFswXTw9dGhpcy5kcmF3SGVpZ2h0K3RoaXMubWFyZ2luLnRvcCYmdFsxXT49dGhpcy5kcmF3SGVpZ2h0JiYoZT0hMCksdFswXTx0aGlzLmRyYXdIZWlnaHQmJihuPXRoaXMueVNjYWxlLmludmVydCh0WzBdKSksdFsxXTx0aGlzLmRyYXdIZWlnaHQmJihvPXRoaXMueVNjYWxlLmludmVydCh0WzFdKSksdGhpcy5vblVwZGF0ZUZpbHRlci5lbWl0KHttYXg6bixtaW46byxpbmNsdWRlTmFOOmV9KX1lbHNlIHRoaXMub25VcGRhdGVGaWx0ZXIuZW1pdCh7bWF4OjEsbWluOi0xLGluY2x1ZGVOYU46ITB9KX19WXl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxZeXQpfSxZeXQuybVjbXA9dG8oe3R5cGU6WXl0LHNlbGVjdG9yczpbWyJ2aW9saW4tZmlsdGVyLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoV3l0LDcsaGcpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uY2hhcnRDb250YWluZXI9dC5maXJzdCl9fSxpbnB1dHM6e21ldHJpY05hbWU6Im1ldHJpY05hbWUiLGZpbHRlcjoiZmlsdGVyIixjaGFydERhdGE6ImNoYXJ0RGF0YSIsd2lkdGg6IndpZHRoIixjb2xvclNjYWxlOiJjb2xvclNjYWxlIn0sb3V0cHV0czp7b25SZW1vdmU6Im9uUmVtb3ZlIixvblVwZGF0ZUZpbHRlcjoib25VcGRhdGVGaWx0ZXIifSxmZWF0dXJlczpbQm9dLGRlY2xzOjksdmFyczoxLGNvbnN0czpmdW5jdGlvbigpe2xldCB0O3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJSZW1vdmUgRmlsdGVyIik6JGxvY2FsaXplYDpMYWJlbCBmb3IgYSBidXR0b24gdGhhdCByZW1vdmVzIGEgbWV0cmljIGZpbHRlci7ikJ9hNmJmYWQ1OGJiMzYzZDVjODkxZDBhNTQ3NGIxZDc3ZWY5MGEzNGRh4pCfODQ1NDk2MTc5Nzc2MjkwNzYyNDpSZW1vdmUgRmlsdGVyYCxbWzEsImNoYXJ0LWNvbnRhaW5lciJdLFsidGl0bGUiLCJTaG93cyB0aGUgblBNSSB2YWx1ZSBkaXN0cmlidXRpb24gcGVyIHJ1bi4gUmFuZ2VzIG9mIHNlbGVjdGVkIHZhbHVlcyBjYW4gYmUgbWFuaXB1bGF0ZWQgYnkgbW9kaWZ5aW5nIHRoZSBncmV5IGJveC4iLDEsImNoYXJ0LWhlYWQiXSxbMSwiY2hhcnQtaGVhZGluZyJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNsZWFyXzI0cHgiXSxbMSwiY2hhcnQiXSxbImNoYXJ0IiwiIl0sWzEsImRyYXctYXJlYSJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksUm0oMSwiZGl2IiwxKSxSbSgyLCJkaXYiLDIpLGt1KDMpLEFtKCksUm0oNCwiYnV0dG9uIiwzKSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZW1vdmUuZW1pdCgpfSkpLFRtKDUsIm1hdC1pY29uIiw0KSxBbSgpLEFtKCksUm0oNiwiZGl2Iiw1LDYpLHFpKCksVG0oOCwic3ZnIiw3KSxBbSgpLEFtKCkpLDImZSYmKHJjKDMpLFN1KG4ubWV0cmljTmFtZSkpfSxkaXJlY3RpdmVzOltYSCxEV10sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LmNoYXJ0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRkZW59LmNoYXJ0W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MzAwcHg7d2lkdGg6MTAwJX0uY2hhcnQtaGVhZFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uY2hhcnQtaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy10b3A6MTBweH0uZHJhdy1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5zdHJva2VkLWxpbmVbX25nY29udGVudC0lQ09NUCVde3N0cm9rZTpyZ2JhKDAsMCwwLC4xMik7c3Ryb2tlLWRhc2hhcnJheTozIDN9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFl5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJ2aW9saW4tZmlsdGVyLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vdmlvbGluX2ZpbHRlcl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi92aW9saW5fZmlsdGVyX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHttZXRyaWNOYW1lOlt7dHlwZTp4eX1dLGZpbHRlcjpbe3R5cGU6eHl9XSxjaGFydERhdGE6W3t0eXBlOnh5fV0sd2lkdGg6W3t0eXBlOnh5fV0sY29sb3JTY2FsZTpbe3R5cGU6eHl9XSxvblJlbW92ZTpbe3R5cGU6T3l9XSxvblVwZGF0ZUZpbHRlcjpbe3R5cGU6T3l9XSxjaGFydENvbnRhaW5lcjpbe3R5cGU6WmEsYXJnczpbImNoYXJ0Iix7c3RhdGljOiEwLHJlYWQ6aGd9XX1dfSk7Y2xhc3MgcXl0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmFjdGl2ZVJ1bnMkPXRoaXMuc3RvcmUucGlwZShGdyhOTikpLnBpcGUoSXQoKHQ9PnQ/QXJyYXkuZnJvbSh0LmVudHJpZXMoKSkuZmlsdGVyKCh0PT50WzFdKSkubWFwKCh0PT50WzBdKSk6W10pKSksdGhpcy52aXNpYmxlQW5ub3RhdGlvbnMkPVd0KFt0aGlzLnN0b3JlLnNlbGVjdChyYnQpLHRoaXMuc3RvcmUuc2VsZWN0KHBidCksdGhpcy5zdG9yZS5zZWxlY3QoTWJ0KV0pLnBpcGUoSXQoKChbdCxlLG5dKT0+R3l0KHQsZSxuKSkpKSx0aGlzLmNoYXJ0V2lkdGgkPXRoaXMuc3RvcmUucGlwZShGdyh4YnQpKS5waXBlKEl0KCh0PT5NYXRoLm1heCgxNTAsdCkpKSksdGhpcy5ydW5Db2xvclNjYWxlJD10aGlzLnN0b3JlLnNlbGVjdCh6TikucGlwZShJdCgodD0+ZT0+e2lmKCF0Lmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcihgW0NvbG9yIHNjYWxlXSB1bmtub3duIHJ1bklkOiAke2V9LmApO3JldHVybiB0W2VdfSkpKX1uZ09uSW5pdCgpe3RoaXMuY2hhcnREYXRhJD1XdChbdGhpcy52aXNpYmxlQW5ub3RhdGlvbnMkLHRoaXMuYWN0aXZlUnVucyRdKS5waXBlKEl0KCgoW3QsZV0pPT4oZnVuY3Rpb24gbih0LGUsbyl7Y29uc3QgaT17fSxhPXt9LHI9bmV3IFNldChlKSxzPW55dChvKSxsPXttYXg6LTEsbWluOjF9O09iamVjdC52YWx1ZXModCkuZm9yRWFjaCgodD0+e3QuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5ydW47aWYoci5oYXMoZSkmJnQubWV0cmljPT09cylpZihudWxsPT09dC5uUE1JVmFsdWUpYVtlXT9hW2VdLnB1c2gobnVsbCk6YVtlXT1bbnVsbF07ZWxzZXtjb25zdCBuPXQublBNSVZhbHVlO2wubWF4PWwubWF4PG4/bjpsLm1heCxsLm1pbj1sLm1pbj5uP246bC5taW4saVt0LnJ1bl0/aVtlXS5wdXNoKG4pOmlbZV09W25dfX0pKX0pKTtjb25zdCBjPXt9LGQ9TzUoKS5kb21haW4oW2wubWluLGwubWF4XSkudmFsdWUoKHQ9PnQpKSxwPU81KCkuZG9tYWluKFstMS8wLDEvMF0pLnRocmVzaG9sZHMoMCkudmFsdWUoKHQ9PnQpKTtmb3IoY29uc3QgdCBvZiByKWlmKGNbdF09ZChpW3RdKSxhW3RdKXtjb25zdCBlPXAoYVt0XSk7Y1t0XS51bnNoaWZ0KGVbMF0pfXJldHVybnt2aW9saW5EYXRhOmMsZXh0cmVtZXM6bH19KSh0LGUsdGhpcy5tZXRyaWNOYW1lKSkpKX1yZW1vdmVNZXRyaWMoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKExidCh7bWV0cmljOnRoaXMubWV0cmljTmFtZX0pKX11cGRhdGVGaWx0ZXIodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChCYnQoT2JqZWN0LmFzc2lnbih7bWV0cmljOnRoaXMubWV0cmljTmFtZX0sdCkpKX19ZnVuY3Rpb24gWnl0KHQsZSl7aWYoMSZ0JiZUbSgwLCJucG1pLXZpb2xpbi1maWx0ZXIiLDgpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtEbSgibWV0cmljTmFtZSIsdFswXSkoImZpbHRlciIsdFsxXSl9fWZ1bmN0aW9uIFh5dCh0LGUpezEmdCYmKFJtKDAsImRpdiIsOSksUm0oMSwic3BhbiIsMTApLGt1KDIsIiBZb3UgY2FuIGFkZCBtb3JlIGZpbHRlcnMgYXQgdGhlIHRvcC4gIiksQW0oKSxBbSgpKX1xeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHF5dCkoU20oSXcpKX0scXl0Lsm1Y21wPXRvKHt0eXBlOnF5dCxzZWxlY3RvcnM6W1sibnBtaS12aW9saW4tZmlsdGVyIl1dLGlucHV0czp7bWV0cmljTmFtZToibWV0cmljTmFtZSIsZmlsdGVyOiJmaWx0ZXIifSxkZWNsczo0LHZhcnM6MTEsY29uc3RzOltbMywibWV0cmljTmFtZSIsImZpbHRlciIsImNoYXJ0RGF0YSIsIndpZHRoIiwiY29sb3JTY2FsZSIsIm9uUmVtb3ZlIiwib25VcGRhdGVGaWx0ZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsInZpb2xpbi1maWx0ZXItY29tcG9uZW50IiwwKSxWbSgib25SZW1vdmUiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ucmVtb3ZlTWV0cmljKCl9KSkoIm9uVXBkYXRlRmlsdGVyIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi51cGRhdGVGaWx0ZXIoZSl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgibWV0cmljTmFtZSIsbi5tZXRyaWNOYW1lKSgiZmlsdGVyIixuLmZpbHRlcikoImNoYXJ0RGF0YSIsVGgoMSw1LG4uY2hhcnREYXRhJCkpKCJ3aWR0aCIsVGgoMiw3LG4uY2hhcnRXaWR0aCQpKSgiY29sb3JTY2FsZSIsVGgoMyw5LG4ucnVuQ29sb3JTY2FsZSQpKX0sZGlyZWN0aXZlczpbWXl0XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocXl0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktdmlvbGluLWZpbHRlciIsdGVtcGxhdGU6J1xuICAgIDx2aW9saW4tZmlsdGVyLWNvbXBvbmVudFxuICAgICAgW21ldHJpY05hbWVdPSJtZXRyaWNOYW1lIlxuICAgICAgW2ZpbHRlcl09ImZpbHRlciJcbiAgICAgIFtjaGFydERhdGFdPSJjaGFydERhdGEkIHwgYXN5bmMiXG4gICAgICBbd2lkdGhdPSJjaGFydFdpZHRoJCB8IGFzeW5jIlxuICAgICAgW2NvbG9yU2NhbGVdPSJydW5Db2xvclNjYWxlJCB8IGFzeW5jIlxuICAgICAgKG9uUmVtb3ZlKT0icmVtb3ZlTWV0cmljKCkiXG4gICAgICAob25VcGRhdGVGaWx0ZXIpPSJ1cGRhdGVGaWx0ZXIoJGV2ZW50KSJcbiAgICA+PC92aW9saW4tZmlsdGVyLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLHttZXRyaWNOYW1lOlt7dHlwZTp4eX1dLGZpbHRlcjpbe3R5cGU6eHl9XX0pO2NsYXNzIEt5dHtjb25zdHJ1Y3Rvcigpe3RoaXMudG9nZ2xlU2lkZWJhckV4cGFuZGVkPW5ldyBMaH19S3l0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxLeXQpfSxLeXQuybVjbXA9dG8oe3R5cGU6S3l0LHNlbGVjdG9yczpbWyJ2aW9saW4tZmlsdGVycy1jb21wb25lbnQiXV0saW5wdXRzOntzaWRlYmFyRXhwYW5kZWQ6InNpZGViYXJFeHBhbmRlZCIsbWV0cmljRmlsdGVyczoibWV0cmljRmlsdGVycyJ9LG91dHB1dHM6e3RvZ2dsZVNpZGViYXJFeHBhbmRlZDoidG9nZ2xlU2lkZWJhckV4cGFuZGVkIn0sZGVjbHM6OSx2YXJzOjIsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIkV4cGFuZC9IaWRlIFNpZGViYXIiKTokbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IGV4cGFuZHMvaGlkZXMgdGhlIHNpZGViYXIu4pCfNDhjMjk5MDNjZTg4MWFiNjEwODhmOGQ0OWQ4MjcyMDM3MTZhYWVkNOKQnzQ2NTg2MDI5OTE5NzAyNjAyMTU6RXhwYW5kL0hpZGUgU2lkZWJhcmAsW1sxLCJmaWx0ZXJzLXRvb2xiYXIiXSxbMSwiZmlsdGVycy10aXRsZSJdLFsxLCJzaWRlLXRvZ2dsZSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNoZXZyb25fbGVmdF8yNHB4Il0sWzEsImZpbHRlcnMiXSxbMywibWV0cmljTmFtZSIsImZpbHRlciIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsImZpbHRlcnMtaGludCIsNCwibmdJZiJdLFszLCJtZXRyaWNOYW1lIiwiZmlsdGVyIl0sWzEsImZpbHRlcnMtaGludCJdLFsxLCJmaWx0ZXJzLWhpbnQtdGV4dCJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCksUm0oMSwiaDMiLDEpLGt1KDIsIkFjdGl2ZSBGaWx0ZXJzIiksQW0oKSxSbSgzLCJkaXYiLDIpLFJtKDQsImJ1dHRvbiIsMyksVm0oImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnRvZ2dsZVNpZGViYXJFeHBhbmRlZC5lbWl0KCl9KSksVG0oNSwibWF0LWljb24iLDQpLEFtKCksQW0oKSxBbSgpLFJtKDYsImRpdiIsNSksUXAoNyxaeXQsMSwyLCJucG1pLXZpb2xpbi1maWx0ZXIiLDYpLEFtKCksUXAoOCxYeXQsMywwLCJkaXYiLDcpKSwyJmUmJihyYyg3KSxEbSgibmdGb3JPZiIsbi5tZXRyaWNGaWx0ZXJzKSxyYygxKSxEbSgibmdJZiIsMD09PW4ubWV0cmljRmlsdGVycy5sZW5ndGgpKX0sZGlyZWN0aXZlczpbWEgsRFcsbE0sZE0scXl0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LmZpbHRlcnMtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2hlaWdodDo0MnB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MCAxMHB4fS5maWx0ZXJzLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LnNpZGUtdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4O2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjMwcHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDozMHB4fS5maWx0ZXJzW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdy15OmF1dG99LmZpbHRlcnMtaGludFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDJweDtwYWRkaW5nOjAgMTZweH0uZmlsdGVycy1oaW50LXRleHRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoS3l0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InZpb2xpbi1maWx0ZXJzLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vdmlvbGluX2ZpbHRlcnNfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vdmlvbGluX2ZpbHRlcnNfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse3NpZGViYXJFeHBhbmRlZDpbe3R5cGU6eHl9XSxtZXRyaWNGaWx0ZXJzOlt7dHlwZTp4eX1dLHRvZ2dsZVNpZGViYXJFeHBhbmRlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIEp5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5zaWRlYmFyRXhwYW5kZWQkPXRoaXMuc3RvcmUuc2VsZWN0KF9idCksdGhpcy5tZXRyaWNGaWx0ZXJzJD10aGlzLnN0b3JlLnNlbGVjdChnYnQpLnBpcGUoSXQoKHQ9Pk9iamVjdC5lbnRyaWVzKHQpKSkpfW9uVG9nZ2xlU2lkZWJhckV4cGFuZGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChXYnQoKSl9fWZ1bmN0aW9uIFF5dCh0LGUsbil7cmV0dXJuIHQubGVuZ3RoIT1lLmxlbmd0aD9uOmUubWFwKCgoZSxuKT0+ZS10W25dKSkubWFwKCh0PT5NYXRoLnBvdyh0LDIpKSkucmVkdWNlKCgodCxlKT0+dCtlKSwwKX1KeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEp5dCkoU20oSXcpKX0sSnl0Lsm1Y21wPXRvKHt0eXBlOkp5dCxzZWxlY3RvcnM6W1sibnBtaS12aW9saW4tZmlsdGVycyJdXSxkZWNsczozLHZhcnM6Nixjb25zdHM6W1szLCJzaWRlYmFyRXhwYW5kZWQiLCJtZXRyaWNGaWx0ZXJzIiwidG9nZ2xlU2lkZWJhckV4cGFuZGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJ2aW9saW4tZmlsdGVycy1jb21wb25lbnQiLDApLFZtKCJ0b2dnbGVTaWRlYmFyRXhwYW5kZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub2dnbGVTaWRlYmFyRXhwYW5kZWQoKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQW0oKSksMiZlJiZEbSgic2lkZWJhckV4cGFuZGVkIixUaCgxLDIsbi5zaWRlYmFyRXhwYW5kZWQkKSkoIm1ldHJpY0ZpbHRlcnMiLFRoKDIsNCxuLm1ldHJpY0ZpbHRlcnMkKSl9LGRpcmVjdGl2ZXM6W0t5dF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEp5dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLXZpb2xpbi1maWx0ZXJzIix0ZW1wbGF0ZTonXG4gICAgPHZpb2xpbi1maWx0ZXJzLWNvbXBvbmVudFxuICAgICAgW3NpZGViYXJFeHBhbmRlZF09InNpZGViYXJFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFttZXRyaWNGaWx0ZXJzXT0ibWV0cmljRmlsdGVycyQgfCBhc3luYyJcbiAgICAgICh0b2dnbGVTaWRlYmFyRXhwYW5kZWQpPSJvblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpIlxuICAgID48L3Zpb2xpbi1maWx0ZXJzLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0ICR5dD1bInRodW1iQ29udGFpbmVyIl0sdF90PVsidG9nZ2xlQmFyIl0sZV90PVsiaW5wdXQiXSxuX3Q9ZnVuY3Rpb24odCl7cmV0dXJue2VudGVyRHVyYXRpb246dH19LG9fdD1uZXcgR2EoIm1hdC1zbGlkZS10b2dnbGUtZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+KHtkaXNhYmxlVG9nZ2xlVmFsdWU6ITF9KX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IGlfdD0wO2NvbnN0IGFfdD17cHJvdmlkZTpJVix1c2VFeGlzdGluZzpxZSgoKCk9PmxfdCkpLG11bHRpOiEwfTtjbGFzcyByX3R7Y29uc3RydWN0b3IodCxlKXt0aGlzLnNvdXJjZT10LHRoaXMuY2hlY2tlZD1lfX1jb25zdCBzX3Q9JEkoSkkoUUkoS0koY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZWxlbWVudFJlZj10fX0pKSkpO2NsYXNzIGxfdCBleHRlbmRzIHNfdHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSl7c3VwZXIodCksdGhpcy5fZm9jdXNNb25pdG9yPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9bix0aGlzLmRlZmF1bHRzPWksdGhpcy5fb25DaGFuZ2U9dD0+e30sdGhpcy5fb25Ub3VjaGVkPSgpPT57fSx0aGlzLl91bmlxdWVJZD0ibWF0LXNsaWRlLXRvZ2dsZS0iKyArK2lfdCx0aGlzLl9yZXF1aXJlZD0hMSx0aGlzLl9jaGVja2VkPSExLHRoaXMubmFtZT1udWxsLHRoaXMuaWQ9dGhpcy5fdW5pcXVlSWQsdGhpcy5sYWJlbFBvc2l0aW9uPSJhZnRlciIsdGhpcy5hcmlhTGFiZWw9bnVsbCx0aGlzLmFyaWFMYWJlbGxlZGJ5PW51bGwsdGhpcy5jaGFuZ2U9bmV3IExoLHRoaXMudG9nZ2xlQ2hhbmdlPW5ldyBMaCx0aGlzLnRhYkluZGV4PXBhcnNlSW50KG8pfHwwLHRoaXMuY29sb3I9dGhpcy5kZWZhdWx0Q29sb3I9aS5jb2xvcnx8ImFjY2VudCIsdGhpcy5fbm9vcEFuaW1hdGlvbnM9Ik5vb3BBbmltYXRpb25zIj09PWF9Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuX3JlcXVpcmVkfXNldCByZXF1aXJlZCh0KXt0aGlzLl9yZXF1aXJlZD15eih0KX1nZXQgY2hlY2tlZCgpe3JldHVybiB0aGlzLl9jaGVja2VkfXNldCBjaGVja2VkKHQpe3RoaXMuX2NoZWNrZWQ9eXoodCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9Z2V0IGlucHV0SWQoKXtyZXR1cm5gJHt0aGlzLmlkfHx0aGlzLl91bmlxdWVJZH0taW5wdXRgfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsITApLnN1YnNjcmliZSgodD0+eyJrZXlib2FyZCI9PT10fHwicHJvZ3JhbSI9PT10P3RoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk6dHx8UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9PnRoaXMuX29uVG91Y2hlZCgpKSl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZil9X29uQ2hhbmdlRXZlbnQodCl7dC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnRvZ2dsZUNoYW5nZS5lbWl0KCksdGhpcy5kZWZhdWx0cy5kaXNhYmxlVG9nZ2xlVmFsdWU/dGhpcy5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZD10aGlzLmNoZWNrZWQ6KHRoaXMuY2hlY2tlZD10aGlzLl9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGVja2VkLHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpKX1fb25JbnB1dENsaWNrKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9d3JpdGVWYWx1ZSh0KXt0aGlzLmNoZWNrZWQ9ISF0fXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLl9vblRvdWNoZWQ9dH1zZXREaXNhYmxlZFN0YXRlKHQpe3RoaXMuZGlzYWJsZWQ9dCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1mb2N1cyh0LGUpe2U/dGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2lucHV0RWxlbWVudCxlLHQpOnRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKHQpfXRvZ2dsZSgpe3RoaXMuY2hlY2tlZD0hdGhpcy5jaGVja2VkLHRoaXMuX29uQ2hhbmdlKHRoaXMuY2hlY2tlZCl9X2VtaXRDaGFuZ2VFdmVudCgpe3RoaXMuX29uQ2hhbmdlKHRoaXMuY2hlY2tlZCksdGhpcy5jaGFuZ2UuZW1pdChuZXcgcl90KHRoaXMsdGhpcy5jaGVja2VkKSl9X29uTGFiZWxUZXh0Q2hhbmdlKCl7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpfX1sX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxfdCkoU20oaGcpLFNtKFNJKSxTbShVZyksTmEoInRhYmluZGV4IiksU20ob190KSxTbShWUCw4KSl9LGxfdC7JtWNtcD10byh7dHlwZTpsX3Qsc2VsZWN0b3JzOltbIm1hdC1zbGlkZS10b2dnbGUiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihRaCgkeXQsNSksUWgodF90LDUpLFFoKGVfdCw1KSksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5fdGh1bWJFbD10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5fdGh1bWJCYXJFbD10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5faW5wdXRFbGVtZW50PXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtc2xpZGUtdG9nZ2xlIl0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJihUdSgiaWQiLG4uaWQpLGpwKCJ0YWJpbmRleCIsbi5kaXNhYmxlZD9udWxsOi0xKSgiYXJpYS1sYWJlbCIsbnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbnVsbCkscHUoIm1hdC1jaGVja2VkIixuLmNoZWNrZWQpKCJtYXQtZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJtYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLWJlZm9yZSIsImJlZm9yZSI9PW4ubGFiZWxQb3NpdGlvbikoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIixuLl9ub29wQW5pbWF0aW9ucykpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsY29sb3I6ImNvbG9yIix0YWJJbmRleDoidGFiSW5kZXgiLG5hbWU6Im5hbWUiLGlkOiJpZCIsbGFiZWxQb3NpdGlvbjoibGFiZWxQb3NpdGlvbiIsYXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLGFyaWFMYWJlbGxlZGJ5OlsiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYUxhYmVsbGVkYnkiXSxyZXF1aXJlZDoicmVxdWlyZWQiLGNoZWNrZWQ6ImNoZWNrZWQiLGFyaWFEZXNjcmliZWRieTpbImFyaWEtZGVzY3JpYmVkYnkiLCJhcmlhRGVzY3JpYmVkYnkiXX0sb3V0cHV0czp7Y2hhbmdlOiJjaGFuZ2UiLHRvZ2dsZUNoYW5nZToidG9nZ2xlQ2hhbmdlIn0sZXhwb3J0QXM6WyJtYXRTbGlkZVRvZ2dsZSJdLGZlYXR1cmVzOltwZyhbYV90XSkseHBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczoxNix2YXJzOjIwLGNvbnN0czpbWzEsIm1hdC1zbGlkZS10b2dnbGUtbGFiZWwiXSxbImxhYmVsIiwiIl0sWzEsIm1hdC1zbGlkZS10b2dnbGUtYmFyIl0sWyJ0b2dnbGVCYXIiLCIiXSxbInR5cGUiLCJjaGVja2JveCIsInJvbGUiLCJzd2l0Y2giLDEsIm1hdC1zbGlkZS10b2dnbGUtaW5wdXQiLCJjZGstdmlzdWFsbHktaGlkZGVuIiwzLCJpZCIsInJlcXVpcmVkIiwidGFiSW5kZXgiLCJjaGVja2VkIiwiZGlzYWJsZWQiLCJjaGFuZ2UiLCJjbGljayJdLFsiaW5wdXQiLCIiXSxbMSwibWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXIiXSxbInRodW1iQ29udGFpbmVyIiwiIl0sWzEsIm1hdC1zbGlkZS10b2dnbGUtdGh1bWIiXSxbIm1hdC1yaXBwbGUiLCIiLDEsIm1hdC1zbGlkZS10b2dnbGUtcmlwcGxlIiwibWF0LWZvY3VzLWluZGljYXRvciIsMywibWF0UmlwcGxlVHJpZ2dlciIsIm1hdFJpcHBsZURpc2FibGVkIiwibWF0UmlwcGxlQ2VudGVyZWQiLCJtYXRSaXBwbGVSYWRpdXMiLCJtYXRSaXBwbGVBbmltYXRpb24iXSxbMSwibWF0LXJpcHBsZS1lbGVtZW50IiwibWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZSJdLFsxLCJtYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnQiLDMsImNka09ic2VydmVDb250ZW50Il0sWyJsYWJlbENvbnRlbnQiLCIiXSxbMiwiZGlzcGxheSIsIm5vbmUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFptKCksUm0oMCwibGFiZWwiLDAsMSksUm0oMiwiZGl2IiwyLDMpLFJtKDQsImlucHV0Iiw0LDUpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9vbkNoYW5nZUV2ZW50KGUpfSkpKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uSW5wdXRDbGljayhlKX0pKSxBbSgpLFJtKDYsImRpdiIsNiw3KSxUbSg4LCJkaXYiLDgpLFJtKDksImRpdiIsOSksVG0oMTAsImRpdiIsMTApLEFtKCksQW0oKSxBbSgpLFJtKDExLCJzcGFuIiwxMSwxMiksVm0oImNka09ic2VydmVDb250ZW50IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbkxhYmVsVGV4dENoYW5nZSgpfSkpLFJtKDEzLCJzcGFuIiwxMyksa3UoMTQsIsKgIiksQW0oKSxYbSgxNSksQW0oKSxBbSgpKSwyJmUpe2NvbnN0IHQ9JHAoMSksZT0kcCgxMik7anAoImZvciIsbi5pbnB1dElkKSxyYygyKSxwdSgibWF0LXNsaWRlLXRvZ2dsZS1iYXItbm8tc2lkZS1tYXJnaW4iLCFlLnRleHRDb250ZW50fHwhZS50ZXh0Q29udGVudC50cmltKCkpLHJjKDIpLERtKCJpZCIsbi5pbnB1dElkKSgicmVxdWlyZWQiLG4ucmVxdWlyZWQpKCJ0YWJJbmRleCIsbi50YWJJbmRleCkoImNoZWNrZWQiLG4uY2hlY2tlZCkoImRpc2FibGVkIixuLmRpc2FibGVkKSxqcCgibmFtZSIsbi5uYW1lKSgiYXJpYS1jaGVja2VkIixuLmNoZWNrZWQudG9TdHJpbmcoKSkoImFyaWEtbGFiZWwiLG4uYXJpYUxhYmVsKSgiYXJpYS1sYWJlbGxlZGJ5IixuLmFyaWFMYWJlbGxlZGJ5KSgiYXJpYS1kZXNjcmliZWRieSIsbi5hcmlhRGVzY3JpYmVkYnkpLHJjKDUpLERtKCJtYXRSaXBwbGVUcmlnZ2VyIix0KSgibWF0UmlwcGxlRGlzYWJsZWQiLG4uZGlzYWJsZVJpcHBsZXx8bi5kaXNhYmxlZCkoIm1hdFJpcHBsZUNlbnRlcmVkIiwhMCkoIm1hdFJpcHBsZVJhZGl1cyIsMjApKCJtYXRSaXBwbGVBbmltYXRpb24iLE1oKDE4LG5fdCxuLl9ub29wQW5pbWF0aW9ucz8wOjE1MCkpfX0sZGlyZWN0aXZlczpba0gsanpdLHN0eWxlczpbIi5tYXQtc2xpZGUtdG9nZ2xle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoyNHB4O21heC13aWR0aDoxMDAlO2xpbmUtaGVpZ2h0OjI0cHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxNnB4LCAwLCAwKX1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTZweCwgMCwgMCl9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWRpc2FibGVke29wYWNpdHk6LjM4fS5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbCwubWF0LXNsaWRlLXRvZ2dsZS5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye2N1cnNvcjpkZWZhdWx0fS5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleDoxO2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXJ9Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudHt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1zbGlkZS10b2dnbGUtbGFiZWwtYmVmb3JlIC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVse29yZGVyOjF9Lm1hdC1zbGlkZS10b2dnbGUtbGFiZWwtYmVmb3JlIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntvcmRlcjoyfVtkaXI9cnRsXSAubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtYmFyLC5tYXQtc2xpZGUtdG9nZ2xlLWJhcnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0OjB9W2Rpcj1ydGxdIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciwubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtYmFye21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH0ubWF0LXNsaWRlLXRvZ2dsZS1iYXItbm8tc2lkZS1tYXJnaW57bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0ubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7dG9wOi0zcHg7bGVmdDowO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2l0aW9uOmFsbCA4MG1zIGxpbmVhcjt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye3RyYW5zaXRpb246bm9uZX1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye2xlZnQ6YXV0bztyaWdodDowfS5tYXQtc2xpZGUtdG9nZ2xlLXRodW1ie2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7Ym9yZGVyLXJhZGl1czo1MCV9Lm1hdC1zbGlkZS10b2dnbGUtYmFye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjM2cHg7aGVpZ2h0OjE0cHg7ZmxleC1zaHJpbms6MDtib3JkZXItcmFkaXVzOjhweH0ubWF0LXNsaWRlLXRvZ2dsZS1pbnB1dHtib3R0b206MDtsZWZ0OjEwcHh9W2Rpcj1ydGxdIC5tYXQtc2xpZGUtdG9nZ2xlLWlucHV0e2xlZnQ6YXV0bztyaWdodDoxMHB4fS5tYXQtc2xpZGUtdG9nZ2xlLWJhciwubWF0LXNsaWRlLXRvZ2dsZS10aHVtYnt0cmFuc2l0aW9uOmFsbCA4MG1zIGxpbmVhcjt0cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQtY29sb3I7dHJhbnNpdGlvbi1kZWxheTo1MG1zfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIsLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1ie3RyYW5zaXRpb246bm9uZX0ubWF0LXNsaWRlLXRvZ2dsZSAubWF0LXNsaWRlLXRvZ2dsZS1yaXBwbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoNTAlIC0gMjBweCk7bGVmdDpjYWxjKDUwJSAtIDIwcHgpO2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1zbGlkZS10b2dnbGUgLm1hdC1zbGlkZS10b2dnbGUtcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxlKXtvcGFjaXR5Oi4xMn0ubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RyYW5zZm9ybTpub25lfS5tYXQtc2xpZGUtdG9nZ2xlLWJhcjpob3ZlciAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5Oi4wNH0ubWF0LXNsaWRlLXRvZ2dsZTpub3QoLm1hdC1kaXNhYmxlZCkuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGV7b3BhY2l0eTouMTJ9Lm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1zbGlkZS10b2dnbGUubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcjpob3ZlciAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5OjB9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LXNsaWRlLXRvZ2dsZS1iYXI6aG92ZXIgLm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGV7ZGlzcGxheTpub25lfX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JvcmRlcjoxcHggc29saWR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlLXRvZ2dsZS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7b3V0bGluZToycHggZG90dGVkO291dGxpbmUtb2Zmc2V0OjVweH1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGxfdC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmhnfSx7dHlwZTpTSX0se3R5cGU6VWd9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpqYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbb190XX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6U3J9LHt0eXBlOmtyLGFyZ3M6W1ZQXX1dfV0sbF90LnByb3BEZWNvcmF0b3JzPXtfdGh1bWJFbDpbe3R5cGU6WmEsYXJnczpbInRodW1iQ29udGFpbmVyIl19XSxfdGh1bWJCYXJFbDpbe3R5cGU6WmEsYXJnczpbInRvZ2dsZUJhciJdfV0sbmFtZTpbe3R5cGU6eHl9XSxpZDpbe3R5cGU6eHl9XSxsYWJlbFBvc2l0aW9uOlt7dHlwZTp4eX1dLGFyaWFMYWJlbDpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWwiXX1dLGFyaWFMYWJlbGxlZGJ5Olt7dHlwZTp4eSxhcmdzOlsiYXJpYS1sYWJlbGxlZGJ5Il19XSxhcmlhRGVzY3JpYmVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSxyZXF1aXJlZDpbe3R5cGU6eHl9XSxjaGVja2VkOlt7dHlwZTp4eX1dLGNoYW5nZTpbe3R5cGU6T3l9XSx0b2dnbGVDaGFuZ2U6W3t0eXBlOk95fV0sX2lucHV0RWxlbWVudDpbe3R5cGU6WmEsYXJnczpbImlucHV0Il19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChsX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXNsaWRlLXRvZ2dsZSIsZXhwb3J0QXM6Im1hdFNsaWRlVG9nZ2xlIixob3N0OntjbGFzczoibWF0LXNsaWRlLXRvZ2dsZSIsIltpZF0iOiJpZCIsIlthdHRyLnRhYmluZGV4XSI6ImRpc2FibGVkID8gbnVsbCA6IC0xIiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJudWxsIiwiW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSI6Im51bGwiLCJbY2xhc3MubWF0LWNoZWNrZWRdIjoiY2hlY2tlZCIsIltjbGFzcy5tYXQtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbY2xhc3MubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmVdIjonbGFiZWxQb3NpdGlvbiA9PSAiYmVmb3JlIicsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOiJfbm9vcEFuaW1hdGlvbnMifSx0ZW1wbGF0ZTonPGxhYmVsIFthdHRyLmZvcl09ImlucHV0SWQiIGNsYXNzPSJtYXQtc2xpZGUtdG9nZ2xlLWxhYmVsIiAjbGFiZWw+XG4gIDxkaXYgI3RvZ2dsZUJhciBjbGFzcz0ibWF0LXNsaWRlLXRvZ2dsZS1iYXIiXG4gICAgICAgW2NsYXNzLm1hdC1zbGlkZS10b2dnbGUtYmFyLW5vLXNpZGUtbWFyZ2luXT0iIWxhYmVsQ29udGVudC50ZXh0Q29udGVudCB8fCAhbGFiZWxDb250ZW50LnRleHRDb250ZW50LnRyaW0oKSI+XG5cbiAgICA8aW5wdXQgI2lucHV0IGNsYXNzPSJtYXQtc2xpZGUtdG9nZ2xlLWlucHV0IGNkay12aXN1YWxseS1oaWRkZW4iIHR5cGU9ImNoZWNrYm94IlxuICAgICAgICAgICByb2xlPSJzd2l0Y2giXG4gICAgICAgICAgIFtpZF09ImlucHV0SWQiXG4gICAgICAgICAgIFtyZXF1aXJlZF09InJlcXVpcmVkIlxuICAgICAgICAgICBbdGFiSW5kZXhdPSJ0YWJJbmRleCJcbiAgICAgICAgICAgW2NoZWNrZWRdPSJjaGVja2VkIlxuICAgICAgICAgICBbZGlzYWJsZWRdPSJkaXNhYmxlZCJcbiAgICAgICAgICAgW2F0dHIubmFtZV09Im5hbWUiXG4gICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09ImNoZWNrZWQudG9TdHJpbmcoKSJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09ImFyaWFMYWJlbCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT0iYXJpYUxhYmVsbGVkYnkiXG4gICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPSJhcmlhRGVzY3JpYmVkYnkiXG4gICAgICAgICAgIChjaGFuZ2UpPSJfb25DaGFuZ2VFdmVudCgkZXZlbnQpIlxuICAgICAgICAgICAoY2xpY2spPSJfb25JbnB1dENsaWNrKCRldmVudCkiPlxuXG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXIiICN0aHVtYkNvbnRhaW5lcj5cbiAgICAgIDxkaXYgY2xhc3M9Im1hdC1zbGlkZS10b2dnbGUtdGh1bWIiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlLXRvZ2dsZS1yaXBwbGUgbWF0LWZvY3VzLWluZGljYXRvciIgbWF0LXJpcHBsZVxuICAgICAgICAgICBbbWF0UmlwcGxlVHJpZ2dlcl09ImxhYmVsIlxuICAgICAgICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJkaXNhYmxlUmlwcGxlIHx8IGRpc2FibGVkIlxuICAgICAgICAgICBbbWF0UmlwcGxlQ2VudGVyZWRdPSJ0cnVlIlxuICAgICAgICAgICBbbWF0UmlwcGxlUmFkaXVzXT0iMjAiXG4gICAgICAgICAgIFttYXRSaXBwbGVBbmltYXRpb25dPSJ7ZW50ZXJEdXJhdGlvbjogX25vb3BBbmltYXRpb25zID8gMCA6IDE1MH0iPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9Im1hdC1yaXBwbGUtZWxlbWVudCBtYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxlIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG4gIDxzcGFuIGNsYXNzPSJtYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnQiICNsYWJlbENvbnRlbnQgKGNka09ic2VydmVDb250ZW50KT0iX29uTGFiZWxUZXh0Q2hhbmdlKCkiPlxuICAgIFx4M2MhLS0gQWRkIGFuIGludmlzaWJsZSBzcGFuIHNvIEpBV1MgY2FuIHJlYWQgdGhlIGxhYmVsIC0tXHgzZVxuICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmUiPiZuYnNwOzwvc3Bhbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvc3Bhbj5cbjwvbGFiZWw+XG4nLHByb3ZpZGVyczpbYV90XSxpbnB1dHM6WyJkaXNhYmxlZCIsImRpc2FibGVSaXBwbGUiLCJjb2xvciIsInRhYkluZGV4Il0sZW5jYXBzdWxhdGlvbjpIbi5Ob25lLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2gsc3R5bGVzOlsiLm1hdC1zbGlkZS10b2dnbGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjI0cHg7bWF4LXdpZHRoOjEwMCU7bGluZS1oZWlnaHQ6MjRweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDE2cHgsIDAsIDApfVtkaXI9cnRsXSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xNnB4LCAwLCAwKX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtZGlzYWJsZWR7b3BhY2l0eTouMzh9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1zbGlkZS10b2dnbGUtbGFiZWx7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2Rpc3BsYXk6ZmxleDtmbGV4OjE7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcn0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50e3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtbGFiZWx7b3JkZXI6MX0ubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtYmFye29yZGVyOjJ9W2Rpcj1ydGxdIC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLWJlZm9yZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIsLm1hdC1zbGlkZS10b2dnbGUtYmFye21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLWxlZnQ6MH1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUtYmFyLC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLWJlZm9yZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfS5tYXQtc2xpZGUtdG9nZ2xlLWJhci1uby1zaWRlLW1hcmdpbnttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfS5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDt0b3A6LTNweDtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YWxsIDgwbXMgbGluZWFyO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7dHJhbnNpdGlvbjpub25lfVtkaXI9cnRsXSAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7bGVmdDphdXRvO3JpZ2h0OjB9Lm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtib3JkZXItcmFkaXVzOjUwJX0ubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzZweDtoZWlnaHQ6MTRweDtmbGV4LXNocmluazowO2JvcmRlci1yYWRpdXM6OHB4fS5tYXQtc2xpZGUtdG9nZ2xlLWlucHV0e2JvdHRvbTowO2xlZnQ6MTBweH1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUtaW5wdXR7bGVmdDphdXRvO3JpZ2h0OjEwcHh9Lm1hdC1zbGlkZS10b2dnbGUtYmFyLC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1ie3RyYW5zaXRpb246YWxsIDgwbXMgbGluZWFyO3RyYW5zaXRpb24tcHJvcGVydHk6YmFja2dyb3VuZC1jb2xvcjt0cmFuc2l0aW9uLWRlbGF5OjUwbXN9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciwuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7dHJhbnNpdGlvbjpub25lfS5tYXQtc2xpZGUtdG9nZ2xlIC5tYXQtc2xpZGUtdG9nZ2xlLXJpcHBsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYyg1MCUgLSAyMHB4KTtsZWZ0OmNhbGMoNTAlIC0gMjBweCk7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LXNsaWRlLXRvZ2dsZSAubWF0LXNsaWRlLXRvZ2dsZS1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGUpe29wYWNpdHk6LjEyfS5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxle3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dHJhbnNmb3JtOm5vbmV9Lm1hdC1zbGlkZS10b2dnbGUtYmFyOmhvdmVyIC5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6LjA0fS5tYXQtc2xpZGUtdG9nZ2xlOm5vdCgubWF0LWRpc2FibGVkKS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5Oi4xMn0ubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LXNsaWRlLXRvZ2dsZS5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyOmhvdmVyIC5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6MH1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtc2xpZGUtdG9nZ2xlLWJhcjpob3ZlciAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtkaXNwbGF5Om5vbmV9fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7Ym9yZGVyOjFweCBzb2xpZH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGUtdG9nZ2xlLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntvdXRsaW5lOjJweCBkb3R0ZWQ7b3V0bGluZS1vZmZzZXQ6NXB4fVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpoZ30se3R5cGU6U0l9LHt0eXBlOlVnfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6amEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOmtyLGFyZ3M6W29fdF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOlNyfSx7dHlwZTprcixhcmdzOltWUF19XX1dfSkse25hbWU6W3t0eXBlOnh5fV0saWQ6W3t0eXBlOnh5fV0sbGFiZWxQb3NpdGlvbjpbe3R5cGU6eHl9XSxhcmlhTGFiZWw6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6eHksYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0sY2hhbmdlOlt7dHlwZTpPeX1dLHRvZ2dsZUNoYW5nZTpbe3R5cGU6T3l9XSxyZXF1aXJlZDpbe3R5cGU6eHl9XSxjaGVja2VkOlt7dHlwZTp4eX1dLF90aHVtYkVsOlt7dHlwZTpaYSxhcmdzOlsidGh1bWJDb250YWluZXIiXX1dLF90aHVtYkJhckVsOlt7dHlwZTpaYSxhcmdzOlsidG9nZ2xlQmFyIl19XSxhcmlhRGVzY3JpYmVkYnk6W3t0eXBlOnh5LGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSxfaW5wdXRFbGVtZW50Olt7dHlwZTpaYSxhcmdzOlsiaW5wdXQiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBjX3Q9e3Byb3ZpZGU6R1YsdXNlRXhpc3Rpbmc6cWUoKCgpPT5kX3QpKSxtdWx0aTohMH07Y2xhc3MgZF90IGV4dGVuZHMgS1V7fWRfdC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9QWEoZF90KSkpKG58fGRfdCl9fSkoKSxkX3QuybVkaXI9bG8oe3R5cGU6ZF90LHNlbGVjdG9yczpbWyJtYXQtc2xpZGUtdG9nZ2xlIiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIm1hdC1zbGlkZS10b2dnbGUiLCJyZXF1aXJlZCIsIiIsImZvcm1Db250cm9sIiwiIl0sWyJtYXQtc2xpZGUtdG9nZ2xlIiwicmVxdWlyZWQiLCIiLCJuZ01vZGVsIiwiIl1dLGZlYXR1cmVzOltwZyhbY190XSkseHBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkX3QsW3t0eXBlOkN5LGFyZ3M6W3tzZWxlY3RvcjoibWF0LXNsaWRlLXRvZ2dsZVtyZXF1aXJlZF1bZm9ybUNvbnRyb2xOYW1lXSxcbiAgICAgICAgICAgICBtYXQtc2xpZGUtdG9nZ2xlW3JlcXVpcmVkXVtmb3JtQ29udHJvbF0sIG1hdC1zbGlkZS10b2dnbGVbcmVxdWlyZWRdW25nTW9kZWxdIixwcm92aWRlcnM6W2NfdF19XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBwX3R7fXBfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cF90KX0scF90Lsm1bW9kPWFvKHt0eXBlOnBfdH0pLHBfdC7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwX3QsW3t0eXBlOkF5LGFyZ3M6W3tleHBvcnRzOltkX3RdLGRlY2xhcmF0aW9uczpbZF90XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHBfdCx7ZGVjbGFyYXRpb25zOltkX3RdLGV4cG9ydHM6W2RfdF19KTtjbGFzcyBtX3R7fWZ1bmN0aW9uIHVfdCh0LGUpezEmdCYmVG0oMCwibWF0LWljb24iLDMpfW1fdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bV90KX0sbV90Lsm1bW9kPWFvKHt0eXBlOm1fdH0pLG1fdC7JtWluaj12bih7aW1wb3J0czpbW3BfdCxTSCxYSSxVel0scF90LFhJXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobV90LFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbcF90LFNILFhJLFV6XSxleHBvcnRzOltwX3QsbF90LFhJXSxkZWNsYXJhdGlvbnM6W2xfdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhtX3Qse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltsX3RdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3BfdCxTSCxYSSxVel19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bcF90LGxfdCxYSV19fSk7Y2xhc3MgZl90e2NvbnN0cnVjdG9yKCl7dGhpcy5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2U9bmV3IExofX1mX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGZfdCl9LGZfdC7JtWNtcD10byh7dHlwZTpmX3Qsc2VsZWN0b3JzOltbIm5wbWktYW5ub3RhdGlvbnMtc2VhcmNoLWNvbXBvbmVudCJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZwdSgidmFsaWQiLG4uaXNSZWdleEZpbHRlclZhbGlkKX0saW5wdXRzOntyZWdleEZpbHRlclZhbHVlOiJyZWdleEZpbHRlclZhbHVlIixpc1JlZ2V4RmlsdGVyVmFsaWQ6ImlzUmVnZXhGaWx0ZXJWYWxpZCJ9LG91dHB1dHM6e29uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZToib25SZWdleEZpbHRlclZhbHVlQ2hhbmdlIn0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbInN2Z0ljb24iLCJzZWFyY2hfMjRweCJdLFsiYXV0b2NvbXBsZXRlIiwib2ZmIiwicGxhY2Vob2xkZXIiLCJGaWx0ZXIgQW5ub3RhdGlvbnMiLDMsInZhbHVlIiwiaW5wdXQiXSxbInN2Z0ljb24iLCJlcnJvcl8yNHB4IiwiY2xhc3MiLCJlcnJvci1pY29uIiwibWF0VG9vbHRpcCIsIkludmFsaWQgcmVnZXggZmlsdGVyLiBUaGUgcmVzdWx0IG1heSBiZSBzdGFsZS4iLDQsIm5nSWYiXSxbInN2Z0ljb24iLCJlcnJvcl8yNHB4IiwibWF0VG9vbHRpcCIsIkludmFsaWQgcmVnZXggZmlsdGVyLiBUaGUgcmVzdWx0IG1heSBiZSBzdGFsZS4iLDEsImVycm9yLWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsIm1hdC1pY29uIiwwKSxSbSgxLCJpbnB1dCIsMSksVm0oImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChlLnRhcmdldC52YWx1ZSl9KSksQW0oKSxRcCgyLHVfdCwxLDAsIm1hdC1pY29uIiwyKSksMiZlJiYocmMoMSksRG0oInZhbHVlIixuLnJlZ2V4RmlsdGVyVmFsdWUpLHJjKDEpLERtKCJuZ0lmIiwhbi5pc1JlZ2V4RmlsdGVyVmFsaWQpKX0sZGlyZWN0aXZlczpbRFcsZE1dLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV06bm90KC52YWxpZCl7Y29sb3I6I2M2MjgyOH1bX25naG9zdC0lQ09NUCVdOm5vdCgudmFsaWQpICAgaW5wdXRbX25nY29udGVudC0lQ09NUCVde2NhcmV0LWNvbG9yOmN1cnJlbnRDb2xvcn1bX25naG9zdC0lQ09NUCVdOm5vdCgudmFsaWQpICAgLmVycm9yLWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNjNjI4Mjg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZl90LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktYW5ub3RhdGlvbnMtc2VhcmNoLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vYW5ub3RhdGlvbnNfc2VhcmNoX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2Fubm90YXRpb25zX3NlYXJjaF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cmVnZXhGaWx0ZXJWYWx1ZTpbe3R5cGU6eHl9XSxvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2U6W3t0eXBlOk95fV0saXNSZWdleEZpbHRlclZhbGlkOlt7dHlwZTpQeSxhcmdzOlsiY2xhc3MudmFsaWQiXX0se3R5cGU6eHl9XX0pO2NsYXNzIGdfdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hbm5vdGF0aW9uc0ZpbHRlciQ9dGhpcy5zdG9yZS5zZWxlY3QobWJ0KSx0aGlzLmlzQW5ub3RhdGlvbnNGaWx0ZXJWYWxpZCQ9dGhpcy5hbm5vdGF0aW9uc0ZpbHRlciQucGlwZShJdCgodD0+e3RyeXtyZXR1cm4gbmV3IFJlZ0V4cCh0KSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KSkpfWZpbHRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKElidCh7cmVnZXg6dH0pKX19ZnVuY3Rpb24gaF90KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Tm0oMCksUm0oMSwiYnV0dG9uIiw1KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7aGkodCk7Y29uc3Qgbj1ZbSgpO3JldHVybiBuLm9uRmxhZ0Fubm90YXRpb25zLmVtaXQobi5zZWxlY3RlZEFubm90YXRpb25zKX0pKSxUbSgyLCJtYXQtaWNvbiIsNiksQW0oKSxSbSgzLCJidXR0b24iLDcpLFZtKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtoaSh0KTtjb25zdCBuPVltKCk7cmV0dXJuIG4ub25IaWRlQW5ub3RhdGlvbnMuZW1pdChuLnNlbGVjdGVkQW5ub3RhdGlvbnMpfSkpLFRtKDQsIm1hdC1pY29uIiw4KSxBbSgpLHptKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRG0oImRpc2FibGVkIiwwPT09dC5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aCkscmMoMiksRG0oImRpc2FibGVkIiwwPT09dC5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aCl9fWZ1bmN0aW9uIGJfdCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO05tKDApLFJtKDEsIm1hdC1zbGlkZS10b2dnbGUiLDkpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkub25Ub2dnbGVTaG93Q291bnRzLmVtaXQoKX0pKSxrdSgyLCIgU2FtcGxlIENvdW50ICIpLEFtKCksUm0oMywibWF0LXNsaWRlLXRvZ2dsZSIsMTApLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7cmV0dXJuIGhpKHQpLFltKCkub25Ub2dnbGVTaG93SGlkZGVuLmVtaXQoKX0pKSxrdSg0LCIgU2hvdyBIaWRkZW4gIiksQW0oKSxUbSg1LCJucG1pLWFubm90YXRpb25zLXNlYXJjaCIpLHptKCl9aWYoMiZ0KXtjb25zdCB0PVltKCk7cmMoMSksRG0oImNoZWNrZWQiLHQuc2hvd0NvdW50cykscmMoMiksRG0oImNoZWNrZWQiLHQuc2hvd0hpZGRlbil9fWdfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Z190KShTbShJdykpfSxnX3QuybVjbXA9dG8oe3R5cGU6Z190LHNlbGVjdG9yczpbWyJucG1pLWFubm90YXRpb25zLXNlYXJjaCJdXSxkZWNsczozLHZhcnM6Nixjb25zdHM6W1szLCJyZWdleEZpbHRlclZhbHVlIiwiaXNSZWdleEZpbHRlclZhbGlkIiwib25SZWdleEZpbHRlclZhbHVlQ2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJucG1pLWFubm90YXRpb25zLXNlYXJjaC1jb21wb25lbnQiLDApLFZtKCJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmZpbHRlckNoYW5nZShlKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQW0oKSksMiZlJiZEbSgicmVnZXhGaWx0ZXJWYWx1ZSIsVGgoMSwyLG4uYW5ub3RhdGlvbnNGaWx0ZXIkKSkoImlzUmVnZXhGaWx0ZXJWYWxpZCIsVGgoMiw0LG4uaXNBbm5vdGF0aW9uc0ZpbHRlclZhbGlkJCkpfSxkaXJlY3RpdmVzOltmX3RdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChnX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1hbm5vdGF0aW9ucy1zZWFyY2giLHRlbXBsYXRlOidcbiAgICA8bnBtaS1hbm5vdGF0aW9ucy1zZWFyY2gtY29tcG9uZW50XG4gICAgICBbcmVnZXhGaWx0ZXJWYWx1ZV09ImFubm90YXRpb25zRmlsdGVyJCB8IGFzeW5jIlxuICAgICAgW2lzUmVnZXhGaWx0ZXJWYWxpZF09ImlzQW5ub3RhdGlvbnNGaWx0ZXJWYWxpZCQgfCBhc3luYyJcbiAgICAgIChvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UpPSJmaWx0ZXJDaGFuZ2UoJGV2ZW50KSJcbiAgICA+PC9ucG1pLWFubm90YXRpb25zLXNlYXJjaC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjbGFzcyB5X3R7Y29uc3RydWN0b3IoKXt0aGlzLm9uRmxhZ0Fubm90YXRpb25zPW5ldyBMaCx0aGlzLm9uSGlkZUFubm90YXRpb25zPW5ldyBMaCx0aGlzLm9uVG9nZ2xlRXhwYW5kZWQ9bmV3IExoLHRoaXMub25Ub2dnbGVTaG93Q291bnRzPW5ldyBMaCx0aGlzLm9uVG9nZ2xlU2hvd0hpZGRlbj1uZXcgTGh9fXlfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eV90KX0seV90Lsm1Y21wPXRvKHt0eXBlOnlfdCxzZWxlY3RvcnM6W1sibnBtaS1hbm5vdGF0aW9ucy1saXN0LXRvb2xiYXItY29tcG9uZW50Il1dLGlucHV0czp7bnVtQW5ub3RhdGlvbnM6Im51bUFubm90YXRpb25zIixleHBhbmRlZDoiZXhwYW5kZWQiLHNlbGVjdGVkQW5ub3RhdGlvbnM6InNlbGVjdGVkQW5ub3RhdGlvbnMiLGFubm90YXRpb25zRXhwYW5kZWQ6ImFubm90YXRpb25zRXhwYW5kZWQiLHNob3dDb3VudHM6InNob3dDb3VudHMiLHNob3dIaWRkZW46InNob3dIaWRkZW4ifSxvdXRwdXRzOntvbkZsYWdBbm5vdGF0aW9uczoib25GbGFnQW5ub3RhdGlvbnMiLG9uSGlkZUFubm90YXRpb25zOiJvbkhpZGVBbm5vdGF0aW9ucyIsb25Ub2dnbGVFeHBhbmRlZDoib25Ub2dnbGVFeHBhbmRlZCIsb25Ub2dnbGVTaG93Q291bnRzOiJvblRvZ2dsZVNob3dDb3VudHMiLG9uVG9nZ2xlU2hvd0hpZGRlbjoib25Ub2dnbGVTaG93SGlkZGVuIn0sZGVjbHM6Nyx2YXJzOjQsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZSxuO3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJIaWRlcy9TaG93cyB0aGUgQW5ub3RhdGlvbnMgTGlzdCIpOiRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgaGlkZXMvc2hvd3MgdGhlIGFubm90YXRpb25zIGxpc3Qu4pCfYjM2MDNiYTMzZTUzMDhkZDhjNWU4MDVlNTA4YjJmNzIzM2RmODlkNOKQnzczMzYzNzQ0MTMwNTYzNDI0OTI6SGlkZXMvU2hvd3MgdGhlIEFubm90YXRpb25zIExpc3RgLGU9InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIkZsYWcgU2VsZWN0ZWQgQW5ub3RhdGlvbnMiKTokbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IGZsYWdzIHNlbGVjdGVkIGFubm90YXRpb25zLuKQnzU2OTJhZDg4MzEwMzhhOTBjNTg2M2ExZTlhZGY5NzQ4Y2FjM2NhZDjikJ8yMjQ0MDk5ODkxMzEzMzM2NTk1OkZsYWcgU2VsZWN0ZWQgQW5ub3RhdGlvbnNgLG49InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGU/Z29vZy5nZXRNc2coIkhpZGUgU2VsZWN0ZWQgQW5ub3RhdGlvbnMiKTokbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IGhpZGVzIHNlbGVjdGVkIGFubm90YXRpb25zLuKQnzAzNDJjZGIzMzU4ZmE4ZTNmYTI3MjIwYTgyNThhNzI4NzQzMGI3MGbikJ81NDYyODMyMzkxMDkyMDg3NDg1OkhpZGUgU2VsZWN0ZWQgQW5ub3RhdGlvbnNgLFtbMSwiYW5ub3RhdGlvbnMtdGl0bGUtY29udGFpbmVyIl0sWzEsImFubm90YXRpb25zLXRpdGxlIl0sWzQsIm5nSWYiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMSwiZXhwYW5kLWJ1dHRvbiIsMywiY2xpY2siXSxbMywic3ZnSWNvbiJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwidGl0bGUiLCJGbGFnZ2luZyBhbm5vdGF0aW9ucyBhZGRzIHRoZW0gdG8geW91ciBpbnZlc3RpZ2F0aW9uIHJlc3VsdHMsIHdoaWNoIGNhbiBsYXRlciBiZSBleHBvcnRlZC4iLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInN2Z0ljb24iLCJmbGFnXzI0cHgiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLG4sInRpdGxlIiwiUmVtb3Zpbmcgbm9uLWNyaXRpY2FsIGFubm90YXRpb25zIHVuY2x1dHRlcnMgdGhlIHZpZXcuIFJlbW92ZWQgYW5ub3RhdGlvbnMgYXJlIHJlbW92ZWQgZnJvbSBhbGwgdmlzdWFsaXphdGlvbnMuIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzdmdJY29uIiwidmlzaWJpbGl0eV9vZmZfMjRweCJdLFsidGl0bGUiLCJIaWRlcyBhbmQgc2hvd3MgdGhlIHNhbXBsZSBjb3VudCB3aGVyZSBhcHBsaWNhYmxlIChob3cgbWFueSBzYW1wbGVzIGJlbG9uZyB0byBhIGNhdGVnb3J5KS4iLDEsInNob3ctdG9nZ2xlIiwzLCJjaGVja2VkIiwiY2hhbmdlIl0sWyJ0aXRsZSIsIkhpZGVzIGFuZCBzaG93cyBoaWRkZW4gYW5ub3RhdGlvbnMgaW4gYWxsIHZpc3VhbGl6YXRpb25zLiIsMSwic2hvdy10b2dnbGUiLDMsImNoZWNrZWQiLCJjaGFuZ2UiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsImgzIiwxKSxrdSgyKSxBbSgpLFFwKDMsaF90LDUsMiwibmctY29udGFpbmVyIiwyKSxBbSgpLFFwKDQsYl90LDYsMiwibmctY29udGFpbmVyIiwyKSxSbSg1LCJidXR0b24iLDMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvZ2dsZUV4cGFuZGVkLmVtaXQoKX0pKSxUbSg2LCJtYXQtaWNvbiIsNCksQW0oKSksMiZlJiYocmMoMiksRHUoIkFubm90YXRpb25zICgiLG4ubnVtQW5ub3RhdGlvbnMsIikiKSxyYygxKSxEbSgibmdJZiIsbi5leHBhbmRlZCkscmMoMSksRG0oIm5nSWYiLG4uZXhwYW5kZWQpLHJjKDIpLERtKCJzdmdJY29uIixuLmV4cGFuZGVkPyJleHBhbmRfbGVzc18yNHB4IjoiZXhwYW5kX21vcmVfMjRweCIpKX0sZGlyZWN0aXZlczpbZE0sWEgsRFcsbF90LGdfdF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7cGFkZGluZzowIDE2cHg7d2lkdGg6MTAwJX0uYW5ub3RhdGlvbnMtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lO2ZvbnQtc2l6ZTouOWVtO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nLXJpZ2h0OjEwcHh9LmFubm90YXRpb25zLXRpdGxlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwO2ZsZXg6MSAxO2hlaWdodDo0MnB4fS5zaG93LXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOi45ZW07bWFyZ2luLXJpZ2h0Oi44ZW19J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHlfdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLWFubm90YXRpb25zLWxpc3QtdG9vbGJhci1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL2Fubm90YXRpb25zX2xpc3RfdG9vbGJhcl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9hbm5vdGF0aW9uc19saXN0X3Rvb2xiYXJfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse251bUFubm90YXRpb25zOlt7dHlwZTp4eX1dLGV4cGFuZGVkOlt7dHlwZTp4eX1dLHNlbGVjdGVkQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0sYW5ub3RhdGlvbnNFeHBhbmRlZDpbe3R5cGU6eHl9XSxzaG93Q291bnRzOlt7dHlwZTp4eX1dLHNob3dIaWRkZW46W3t0eXBlOnh5fV0sb25GbGFnQW5ub3RhdGlvbnM6W3t0eXBlOk95fV0sb25IaWRlQW5ub3RhdGlvbnM6W3t0eXBlOk95fV0sb25Ub2dnbGVFeHBhbmRlZDpbe3R5cGU6T3l9XSxvblRvZ2dsZVNob3dDb3VudHM6W3t0eXBlOk95fV0sb25Ub2dnbGVTaG93SGlkZGVuOlt7dHlwZTpPeX1dfSk7Y2xhc3MgX190e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnNlbGVjdGVkQW5ub3RhdGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KGNidCksdGhpcy5hbm5vdGF0aW9uc0V4cGFuZGVkJD10aGlzLnN0b3JlLnNlbGVjdCh5YnQpLHRoaXMuc2hvd0NvdW50cyQ9dGhpcy5zdG9yZS5zZWxlY3QoQ2J0KSx0aGlzLnNob3dIaWRkZW4kPXRoaXMuc3RvcmUuc2VsZWN0KE1idCksdGhpcy5hbm5vdGF0aW9uc0ZpbHRlciQ9dGhpcy5zdG9yZS5zZWxlY3QobWJ0KSx0aGlzLmlzQW5ub3RhdGlvbnNGaWx0ZXJWYWxpZCQ9dGhpcy5hbm5vdGF0aW9uc0ZpbHRlciQucGlwZShJdCgodD0+e3RyeXtyZXR1cm4gQm9vbGVhbihuZXcgUmVnRXhwKHQpKX1jYXRjaCh0KXtyZXR1cm4hMX19KSkpfWZpbHRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKElidCh7cmVnZXg6dH0pKX1mbGFnQW5ub3RhdGlvbnModCl7dGhpcy5zdG9yZS5kaXNwYXRjaChOYnQoe2Fubm90YXRpb25zOnR9KSl9aGlkZUFubm90YXRpb25zKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goemJ0KHthbm5vdGF0aW9uczp0fSkpfXRvZ2dsZUV4cGFuZGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChHYnQoKSl9dG9nZ2xlU2hvd0NvdW50cygpe3RoaXMuc3RvcmUuZGlzcGF0Y2goWWJ0KCkpfXRvZ2dsZVNob3dIaWRkZW4oKXt0aGlzLnN0b3JlLmRpc3BhdGNoKHFidCgpKX19X190Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfX3QpKFNtKEl3KSl9LF9fdC7JtWNtcD10byh7dHlwZTpfX3Qsc2VsZWN0b3JzOltbIm5wbWktYW5ub3RhdGlvbnMtbGlzdC10b29sYmFyIl1dLGlucHV0czp7bnVtQW5ub3RhdGlvbnM6Im51bUFubm90YXRpb25zIixleHBhbmRlZDoiZXhwYW5kZWQifSxkZWNsczo1LHZhcnM6MTQsY29uc3RzOltbMywibnVtQW5ub3RhdGlvbnMiLCJleHBhbmRlZCIsInNlbGVjdGVkQW5ub3RhdGlvbnMiLCJhbm5vdGF0aW9uc0V4cGFuZGVkIiwic2hvd0NvdW50cyIsInNob3dIaWRkZW4iLCJvbkZsYWdBbm5vdGF0aW9ucyIsIm9uSGlkZUFubm90YXRpb25zIiwib25Ub2dnbGVFeHBhbmRlZCIsIm9uVG9nZ2xlU2hvd0NvdW50cyIsIm9uVG9nZ2xlU2hvd0hpZGRlbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwibnBtaS1hbm5vdGF0aW9ucy1saXN0LXRvb2xiYXItY29tcG9uZW50IiwwKSxWbSgib25GbGFnQW5ub3RhdGlvbnMiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmZsYWdBbm5vdGF0aW9ucyhlKX0pKSgib25IaWRlQW5ub3RhdGlvbnMiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmhpZGVBbm5vdGF0aW9ucyhlKX0pKSgib25Ub2dnbGVFeHBhbmRlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi50b2dnbGVFeHBhbmRlZCgpfSkpKCJvblRvZ2dsZVNob3dDb3VudHMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4udG9nZ2xlU2hvd0NvdW50cygpfSkpKCJvblRvZ2dsZVNob3dIaWRkZW4iLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4udG9nZ2xlU2hvd0hpZGRlbigpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQW0oKSksMiZlJiZEbSgibnVtQW5ub3RhdGlvbnMiLG4ubnVtQW5ub3RhdGlvbnMpKCJleHBhbmRlZCIsbi5leHBhbmRlZCkoInNlbGVjdGVkQW5ub3RhdGlvbnMiLFRoKDEsNixuLnNlbGVjdGVkQW5ub3RhdGlvbnMkKSkoImFubm90YXRpb25zRXhwYW5kZWQiLFRoKDIsOCxuLmFubm90YXRpb25zRXhwYW5kZWQkKSkoInNob3dDb3VudHMiLFRoKDMsMTAsbi5zaG93Q291bnRzJCkpKCJzaG93SGlkZGVuIixUaCg0LDEyLG4uc2hvd0hpZGRlbiQpKX0sZGlyZWN0aXZlczpbeV90XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoX190LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktYW5ub3RhdGlvbnMtbGlzdC10b29sYmFyIix0ZW1wbGF0ZTonXG4gICAgPG5wbWktYW5ub3RhdGlvbnMtbGlzdC10b29sYmFyLWNvbXBvbmVudFxuICAgICAgW251bUFubm90YXRpb25zXT0ibnVtQW5ub3RhdGlvbnMiXG4gICAgICBbZXhwYW5kZWRdPSJleHBhbmRlZCJcbiAgICAgIFtzZWxlY3RlZEFubm90YXRpb25zXT0ic2VsZWN0ZWRBbm5vdGF0aW9ucyQgfCBhc3luYyJcbiAgICAgIFthbm5vdGF0aW9uc0V4cGFuZGVkXT0iYW5ub3RhdGlvbnNFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFtzaG93Q291bnRzXT0ic2hvd0NvdW50cyQgfCBhc3luYyJcbiAgICAgIFtzaG93SGlkZGVuXT0ic2hvd0hpZGRlbiQgfCBhc3luYyJcbiAgICAgIChvbkZsYWdBbm5vdGF0aW9ucyk9ImZsYWdBbm5vdGF0aW9ucygkZXZlbnQpIlxuICAgICAgKG9uSGlkZUFubm90YXRpb25zKT0iaGlkZUFubm90YXRpb25zKCRldmVudCkiXG4gICAgICAob25Ub2dnbGVFeHBhbmRlZCk9InRvZ2dsZUV4cGFuZGVkKCkiXG4gICAgICAob25Ub2dnbGVTaG93Q291bnRzKT0idG9nZ2xlU2hvd0NvdW50cygpIlxuICAgICAgKG9uVG9nZ2xlU2hvd0hpZGRlbik9InRvZ2dsZVNob3dIaWRkZW4oKSJcbiAgICA+PC9ucG1pLWFubm90YXRpb25zLWxpc3QtdG9vbGJhci1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7bnVtQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0sZXhwYW5kZWQ6W3t0eXBlOnh5fV19KTtjb25zdCBDX3Q9WyJnbHlwaCJdO2NsYXNzIE1fdHtuZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN2Zz1KNCh0aGlzLmdseXBoU1ZHLm5hdGl2ZUVsZW1lbnQpLHRoaXMubWFpbkNvbnRhaW5lcj10aGlzLnN2Zy5hcHBlbmQoImciKSx0aGlzLmRyYXcoKX1kcmF3KCl7ImNpcmNsZSI9PXRoaXMuc2hhcGU/dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiY2lyY2xlIikuYXR0cigiZmlsbCIsdGhpcy5jb2xvcikuYXR0cigic3Ryb2tlIiwiYmxhY2siKS5hdHRyKCJjeCIsNSkuYXR0cigiY3kiLDUpLmF0dHIoInIiLDUpOiJiYXIiPT10aGlzLnNoYXBlP3RoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoInJlY3QiKS5hdHRyKCJmaWxsIix0aGlzLmNvbG9yKS5hdHRyKCJ4IiwwKS5hdHRyKCJ5IiwwKS5hdHRyKCJ3aWR0aCIsMTApLmF0dHIoImhlaWdodCIsMTApOiJydW5JbmRpY2F0b3IiPT10aGlzLnNoYXBlJiZ0aGlzLm1haW5Db250YWluZXIuYXBwZW5kKCJnIikuYXBwZW5kKCJwYXRoIikuYXR0cigiZmlsbCIsdGhpcy5jb2xvcikuYXR0cigic3Ryb2tlIiwiYmxhY2siKS5hdHRyKCJkIiwiTSAyIDAgTCAxMCAwIEwgNyA1IEwgMTAgMTAgTCAyIDEwIFoiKX19TV90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxNX3QpfSxNX3QuybVjbXA9dG8oe3R5cGU6TV90LHNlbGVjdG9yczpbWyJucG1pLWxlZ2VuZC1lbGVtZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZRaChDX3QsNyxoZyksMiZlKXtsZXQgdDtKaCh0PXRiKCkpJiYobi5nbHlwaFNWRz10LmZpcnN0KX19LGlucHV0czp7dGV4dDoidGV4dCIsY29sb3I6ImNvbG9yIixzaGFwZToic2hhcGUifSxkZWNsczo0LHZhcnM6MSxjb25zdHM6W1sxLCJnbHlwaCJdLFsiZ2x5cGgiLCIiXSxbMSwibGVnZW5kLWVsZW1lbnQtdGl0bGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHFpKCksVG0oMCwic3ZnIiwwLDEpLFppKCksUm0oMiwiZGl2IiwyKSxrdSgzKSxBbSgpKSwyJmUmJihyYygzKSxTdShuLnRleHQpKX0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3BhZGRpbmctcmlnaHQ6MTBweH0ubGVnZW5kLWVsZW1lbnQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTouOGVtO3BhZGRpbmctbGVmdDo1cHh9LmdseXBoW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMHB4O2hlaWdodDoxMHB4fSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChNX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1sZWdlbmQtZWxlbWVudCIsdGVtcGxhdGVVcmw6Ii4vbGVnZW5kX2VsZW1lbnRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vbGVnZW5kX2VsZW1lbnRfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse3RleHQ6W3t0eXBlOnh5fV0sY29sb3I6W3t0eXBlOnh5fV0sc2hhcGU6W3t0eXBlOnh5fV0sZ2x5cGhTVkc6W3t0eXBlOlphLGFyZ3M6WyJnbHlwaCIse3N0YXRpYzohMCxyZWFkOmhnfV19XX0pO2NsYXNzIHZfdHt9ZnVuY3Rpb24geF90KHQsZSl7aWYoMSZ0JiZUbSgwLCJtYXQtaWNvbiIsOCksMiZ0KXtjb25zdCB0PVltKDIpO0RtKCJzdmdJY29uIix0LnNvcnQub3JkZXI9PT10LlNvcnRPcmRlci5ERVNDRU5ESU5HPyJhcnJvd19kb3dud2FyZF8yNHB4IjoiYXJyb3dfdXB3YXJkXzI0cHgiKSgibmdDbGFzcyIsdC5zb3J0Lm9yZGVyPT09dC5Tb3J0T3JkZXIuREVTQ0VORElORz8iZG93bi1pY29uIjoidXAtaWNvbiIpfX1mdW5jdGlvbiBPX3QodCxlKXtpZigxJnQpe2NvbnN0IHQ9SG0oKTtSbSgwLCJkaXYiLDQpLFJtKDEsImRpdiIsNSksUm0oMiwiZGl2Iiw2KSxWbSgiY2xpY2siLChmdW5jdGlvbiBlKCl7Y29uc3Qgbj1oaSh0KS4kaW1wbGljaXQ7cmV0dXJuIFltKCkub25DaGFuZ2VTb3J0LmVtaXQobil9KSksa3UoMyksUXAoNCx4X3QsMSwyLCJtYXQtaWNvbiIsNyksQW0oKSxBbSgpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oKTtyYygzKSxEdSgiICIsbi5zdHJpcE1ldHJpYyh0KSwiICIpLHJjKDEpLERtKCJuZ0lmIix0PT09bi5zb3J0Lm1ldHJpYyl9fXZfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dl90KX0sdl90Lsm1Y21wPXRvKHt0eXBlOnZfdCxzZWxlY3RvcnM6W1sibnBtaS1hbm5vdGF0aW9ucy1saXN0LWxlZ2VuZCJdXSxkZWNsczo0LHZhcnM6MCxjb25zdHM6W1sidGV4dCIsInJ1biBpbmRpY2F0b3IiLCJjb2xvciIsInJnYigwLDAsMCkiLCJzaGFwZSIsInJ1bkluZGljYXRvciJdLFsidGV4dCIsInBvc2l0aXZlIGNvcnJlbGF0aW9uIiwiY29sb3IiLCJyZ2IoMTA5LCAxNzQsIDIxMykiLCJzaGFwZSIsImJhciJdLFsidGV4dCIsIm5lZ2F0aXZlIGNvcnJlbGF0aW9uIiwiY29sb3IiLCJyZ2IoMjQ5LCAxMDUsIDc2KSIsInNoYXBlIiwiYmFyIl0sWyJ0ZXh0Iiwic2FtcGxlIGNvdW50IiwiY29sb3IiLCJyZ2IoMTUxLCAxNTEsIDE1MSkiLCJzaGFwZSIsImNpcmNsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwibnBtaS1sZWdlbmQtZWxlbWVudCIsMCksVG0oMSwibnBtaS1sZWdlbmQtZWxlbWVudCIsMSksVG0oMiwibnBtaS1sZWdlbmQtZWxlbWVudCIsMiksVG0oMywibnBtaS1sZWdlbmQtZWxlbWVudCIsMykpfSxkaXJlY3RpdmVzOltNX3RdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O3BhZGRpbmc6MCAxNnB4fSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh2X3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1hbm5vdGF0aW9ucy1saXN0LWxlZ2VuZCIsdGVtcGxhdGVVcmw6Ii4vbGVnZW5kX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2xlZ2VuZF9jb21wb25lbnQuY3NzIl19XX1dLG51bGwsbnVsbCk7Y2xhc3MgUF90e2NvbnN0cnVjdG9yKCl7dGhpcy5vbkNoYW5nZVNvcnQ9bmV3IExoLHRoaXMub25BbGxBbm5vdGF0aW9uc1RvZ2dsZWQ9bmV3IExoLHRoaXMuU29ydE9yZGVyPW5idH1zdHJpcE1ldHJpYyh0KXtyZXR1cm4gbnl0KHQpfX1QX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFBfdCl9LFBfdC7JtWNtcD10byh7dHlwZTpQX3Qsc2VsZWN0b3JzOltbIm5wbWktYW5ub3RhdGlvbnMtbGlzdC1oZWFkZXItY29tcG9uZW50Il1dLGlucHV0czp7bnVtQW5ub3RhdGlvbnM6Im51bUFubm90YXRpb25zIixzZWxlY3RlZEFubm90YXRpb25zOiJzZWxlY3RlZEFubm90YXRpb25zIixhY3RpdmVNZXRyaWNzOiJhY3RpdmVNZXRyaWNzIixzb3J0OiJzb3J0In0sb3V0cHV0czp7b25DaGFuZ2VTb3J0OiJvbkNoYW5nZVNvcnQiLG9uQWxsQW5ub3RhdGlvbnNUb2dnbGVkOiJvbkFsbEFubm90YXRpb25zVG9nZ2xlZCJ9LGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWzEsInRvZ2dsZS1hbGwtY29udGFpbmVyIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbMSwiYW5ub3RhdGlvbnMtaGVhZGVyLWNvbnRhaW5lcnMiXSxbImNsYXNzIiwiaGVhZGVyLWNvbHVtbiIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImhlYWRlci1jb2x1bW4iXSxbMSwiaGVhZGVyLWNvbnRhaW5lciJdLFsidGFiaW5kZXgiLCIwIiwicm9sZSIsImJ1dHRvbiIsInRpdGxlIiwiQ2hhbmdlIHRoZSBzb3J0IGJ5IGNsaWNraW5nIGFueSBvZiB0aGUgbWV0cmljcy4iLDEsImhlYWRlci1jbGlja2FibGUiLDMsImNsaWNrIl0sWyJjbGFzcyIsInNvcnQtaWNvbiIsMywic3ZnSWNvbiIsIm5nQ2xhc3MiLDQsIm5nSWYiXSxbMSwic29ydC1pY29uIiwzLCJzdmdJY29uIiwibmdDbGFzcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJtYXQtY2hlY2tib3giLDEpLFZtKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uQWxsQW5ub3RhdGlvbnNUb2dnbGVkLmVtaXQoZS5jaGVja2VkKX0pKSxBbSgpLEFtKCksUm0oMiwiZGl2IiwyKSxRcCgzLE9fdCw1LDIsImRpdiIsMyksQW0oKSksMiZlJiYocmMoMSksRG0oImNoZWNrZWQiLG4uc2VsZWN0ZWRBbm5vdGF0aW9ucy5sZW5ndGg9PT1uLm51bUFubm90YXRpb25zKSxyYygyKSxEbSgibmdGb3JPZiIsbi5hY3RpdmVNZXRyaWNzKSl9LGRpcmVjdGl2ZXM6W09ZLGxNLGRNLERXLGFNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2hlaWdodDoyOHB4O2FsaWduLWl0ZW1zOmZsZXgtZW5kO21hcmdpbi10b3A6OHB4fS5hbm5vdGF0aW9ucy1oZWFkZXItY29udGFpbmVyc1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZTouOWVtO2ZvbnQtd2VpZ2h0OjUwMDtmbGV4LWdyb3c6MX0uaGVhZGVyLWNvbHVtbltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxIDF9LmhlYWRlci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oZWFkZXItY2xpY2thYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7b3V0bGluZTpub25lfS50b2dnbGUtYWxsLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWxlZnQ6MTBweDt3aWR0aDo5MHB4fS5zb3J0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxNnB4fSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChQX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1hbm5vdGF0aW9ucy1saXN0LWhlYWRlci1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL2hlYWRlcl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9oZWFkZXJfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse251bUFubm90YXRpb25zOlt7dHlwZTp4eX1dLHNlbGVjdGVkQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0sYWN0aXZlTWV0cmljczpbe3R5cGU6eHl9XSxzb3J0Olt7dHlwZTp4eX1dLG9uQ2hhbmdlU29ydDpbe3R5cGU6T3l9XSxvbkFsbEFubm90YXRpb25zVG9nZ2xlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIHdfdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5zZWxlY3RlZEFubm90YXRpb25zJD10aGlzLnN0b3JlLnNlbGVjdChjYnQpLHRoaXMuYW5ub3RhdGlvblNvcnQkPXRoaXMuc3RvcmUuc2VsZWN0KGhidCl9Y2hhbmdlU29ydCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKFZidCh7bWV0cmljOnR9KSl9YWxsQW5ub3RhdGlvbnNUb2dnbGVkKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goQWJ0KHQ/e2Fubm90YXRpb25zOk9iamVjdC5rZXlzKHRoaXMuYW5ub3RhdGlvbnMpfTp7YW5ub3RhdGlvbnM6W119KSl9fXdfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8d190KShTbShJdykpfSx3X3QuybVjbXA9dG8oe3R5cGU6d190LHNlbGVjdG9yczpbWyJucG1pLWFubm90YXRpb25zLWxpc3QtaGVhZGVyIl1dLGlucHV0czp7bnVtQW5ub3RhdGlvbnM6Im51bUFubm90YXRpb25zIixhbm5vdGF0aW9uczoiYW5ub3RhdGlvbnMiLGFjdGl2ZU1ldHJpY3M6ImFjdGl2ZU1ldHJpY3MifSxkZWNsczozLHZhcnM6OCxjb25zdHM6W1szLCJudW1Bbm5vdGF0aW9ucyIsInNlbGVjdGVkQW5ub3RhdGlvbnMiLCJzb3J0IiwiYWN0aXZlTWV0cmljcyIsIm9uQ2hhbmdlU29ydCIsIm9uQWxsQW5ub3RhdGlvbnNUb2dnbGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJucG1pLWFubm90YXRpb25zLWxpc3QtaGVhZGVyLWNvbXBvbmVudCIsMCksVm0oIm9uQ2hhbmdlU29ydCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uY2hhbmdlU29ydChlKX0pKSgib25BbGxBbm5vdGF0aW9uc1RvZ2dsZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmFsbEFubm90YXRpb25zVG9nZ2xlZChlKX0pKSxBaCgxLCJhc3luYyIpLEFoKDIsImFzeW5jIiksQW0oKSksMiZlJiZEbSgibnVtQW5ub3RhdGlvbnMiLG4ubnVtQW5ub3RhdGlvbnMpKCJzZWxlY3RlZEFubm90YXRpb25zIixUaCgxLDQsbi5zZWxlY3RlZEFubm90YXRpb25zJCkpKCJzb3J0IixUaCgyLDYsbi5hbm5vdGF0aW9uU29ydCQpKSgiYWN0aXZlTWV0cmljcyIsbi5hY3RpdmVNZXRyaWNzKX0sZGlyZWN0aXZlczpbUF90XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgod190LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktYW5ub3RhdGlvbnMtbGlzdC1oZWFkZXIiLHRlbXBsYXRlOidcbiAgICA8bnBtaS1hbm5vdGF0aW9ucy1saXN0LWhlYWRlci1jb21wb25lbnRcbiAgICAgIFtudW1Bbm5vdGF0aW9uc109Im51bUFubm90YXRpb25zIlxuICAgICAgW3NlbGVjdGVkQW5ub3RhdGlvbnNdPSJzZWxlY3RlZEFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW3NvcnRdPSJhbm5vdGF0aW9uU29ydCQgfCBhc3luYyJcbiAgICAgIFthY3RpdmVNZXRyaWNzXT0iYWN0aXZlTWV0cmljcyJcbiAgICAgIChvbkNoYW5nZVNvcnQpPSJjaGFuZ2VTb3J0KCRldmVudCkiXG4gICAgICAob25BbGxBbm5vdGF0aW9uc1RvZ2dsZWQpPSJhbGxBbm5vdGF0aW9uc1RvZ2dsZWQoJGV2ZW50KSJcbiAgICA+PC9ucG1pLWFubm90YXRpb25zLWxpc3QtaGVhZGVyLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLHtudW1Bbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxhbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxhY3RpdmVNZXRyaWNzOlt7dHlwZTp4eX1dfSk7Y29uc3Qga190PVsiY2hhcnQiXSxTX3Q9WyJoaW50Q2xpcCJdO2Z1bmN0aW9uIERfdCh0LGUpezEmdCYmVG0oMCwibWF0LWljb24iLDEyKX1mdW5jdGlvbiBFX3QodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiwxMyl9ZnVuY3Rpb24gUl90KHQsZSl7aWYoMSZ0JiZUbSgwLCJtYXQtaWNvbiIsMTQpLDImdCl7Y29uc3QgdD1ZbSgpO0RtKCJzdmdJY29uIix0LnNvcnQub3JkZXI9PT10LlNvcnRPcmRlci5TSU1JTEFSPyJhcnJvd19kb3dud2FyZF8yNHB4IjoiYXJyb3dfdXB3YXJkXzI0cHgiKSgibmdDbGFzcyIsdC5zb3J0Lm9yZGVyPT09dC5Tb3J0T3JkZXIuU0lNSUxBUj8iZG93bi1pY29uIjoidXAtaWNvbiIpfX1jbGFzcyBBX3R7Y29uc3RydWN0b3IoKXt0aGlzLnNlbGVjdGVkPSExLHRoaXMub25TaG93U2ltaWxhckFubm90YXRpb25zPW5ldyBMaCx0aGlzLlNvcnRPcmRlcj1uYnQsdGhpcy53aWR0aD0xMCx0aGlzLmNoYXJ0V2lkdGg9MTAsdGhpcy5jaGFydEhlaWdodD0xMCx0aGlzLm1heERvdFJhZGl1cz0xMCx0aGlzLmNvdW50RG90T2Zmc2V0PTcwLHRoaXMuY291bnRUZXh0UGFkZGluZz0yLHRoaXMubWFyZ2luPXt0b3A6MCxyaWdodDowLGJvdHRvbTowLGxlZnQ6MTAwfSx0aGlzLnN0cm9rZUNvbG9yPSIjZmZmIix0aGlzLnRleHRDbGFzcz0iZGVmYXVsdC10ZXh0Iix0aGlzLnJ1bnM9W119b25SZXNpemUodCl7dGhpcy5yZWRyYXcoKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN2Zz1KNCh0aGlzLmFubm90YXRpb25Db250YWluZXIubmF0aXZlRWxlbWVudCkuc2VsZWN0KCJzdmciKSx0aGlzLnhTY2FsZT1VdHQoKS5wYWRkaW5nKDApLHRoaXMueVNjYWxlPVV0dCgpLnBhZGRpbmcoMCksdGhpcy5zaXplU2NhbGU9ZWV0KCkuZG9tYWluKFswLDFdKSx0aGlzLmNvdW50U2l6ZVNjYWxlPWVldCgpLnJhbmdlKFsyLHRoaXMubWF4RG90UmFkaXVzXSksdGhpcy5tYWluQ29udGFpbmVyPXRoaXMuc3ZnLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke3RoaXMubWFyZ2luLmxlZnR9LCAke3RoaXMubWFyZ2luLnRvcH0pYCksdGhpcy5iYXJzR3JvdXA9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLHRoaXMuY291bnREb3RzR3JvdXA9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLHRoaXMudGV4dHNHcm91cD10aGlzLm1haW5Db250YWluZXIuYXBwZW5kKCJnIiksdGhpcy5jb3VudFRleHRzR3JvdXA9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLHRoaXMucnVuSGludEdyb3VwPXRoaXMuc3ZnLmFwcGVuZCgiZyIpLHRoaXMucmVkcmF3KCl9bmdPbkNoYW5nZXModCl7dGhpcy5zdmcmJnRoaXMucmVkcmF3KCl9cmVkcmF3KCl7dGhpcy5zZWxlY3RlZD10aGlzLnNlbGVjdGVkQW5ub3RhdGlvbnMuaW5jbHVkZXModGhpcy5hbm5vdGF0aW9uKSx0aGlzLnVwZGF0ZURpbWVuc2lvbnMoKSx0aGlzLnNldFRleHRDbGFzcygpLHRoaXMudXBkYXRlQXhlcygpLHRoaXMuZHJhdygpfXVwZGF0ZURpbWVuc2lvbnMoKXtjb25zdCB0PW5ldyBTZXQ7dGhpcy5kYXRhLmZvckVhY2goKGU9Pnt0LmFkZChlLnJ1bil9KSksdGhpcy5ydW5zPVsuLi50XSx0aGlzLnN2Zy5zdHlsZSgiaGVpZ2h0Iix0aGlzLm51bUFjdGl2ZVJ1bnMqdGhpcy5ydW5IZWlnaHQrInB4IiksdGhpcy5jaGFydEhlaWdodD10aGlzLnJ1bnMubGVuZ3RoKnRoaXMucnVuSGVpZ2h0LXRoaXMubWFyZ2luLnRvcC10aGlzLm1hcmdpbi5ib3R0b20sdGhpcy53aWR0aD10aGlzLmFubm90YXRpb25Db250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aHx8MTAsdGhpcy5jaGFydFdpZHRoPXRoaXMud2lkdGgtdGhpcy5tYXJnaW4ubGVmdC10aGlzLm1hcmdpbi5yaWdodH1zZXRUZXh0Q2xhc3MoKXt0aGlzLnRleHRDbGFzcz0iZGVmYXVsdC10ZXh0Iix0aGlzLmZsYWdnZWRBbm5vdGF0aW9ucy5pbmNsdWRlcyh0aGlzLmFubm90YXRpb24pP3RoaXMudGV4dENsYXNzPSJmbGFnLXRleHQiOnRoaXMuaGlkZGVuQW5ub3RhdGlvbnMuaW5jbHVkZXModGhpcy5hbm5vdGF0aW9uKSYmKHRoaXMudGV4dENsYXNzPSJoaWRkZW4tdGV4dCIpfXVwZGF0ZUF4ZXMoKXt0aGlzLnhTY2FsZS5yYW5nZVJvdW5kKFswLHRoaXMuY2hhcnRXaWR0aC10aGlzLmNoYXJ0V2lkdGgvdGhpcy5hY3RpdmVNZXRyaWNzLmxlbmd0aF0pLmRvbWFpbih0aGlzLmFjdGl2ZU1ldHJpY3MubWFwKCh0PT5ueXQodCkpKSksdGhpcy55U2NhbGUucmFuZ2VSb3VuZChbMCx0aGlzLmNoYXJ0SGVpZ2h0LXRoaXMucnVuSGVpZ2h0XSkuZG9tYWluKHRoaXMucnVucyksdGhpcy5zaXplU2NhbGUucmFuZ2UoWzAsdGhpcy5jaGFydFdpZHRoL3RoaXMuYWN0aXZlTWV0cmljcy5sZW5ndGhdKSx0aGlzLmNvdW50U2l6ZVNjYWxlLmRvbWFpbihbMCx0aGlzLm1heENvdW50XSl9ZHJhdygpe3RoaXMuZHJhd1J1bkluZGljYXRvcnMoKSx0aGlzLmRyYXdSdW5IaW50VGV4dHMoKSx0aGlzLmRyYXdCYXJzKCksdGhpcy5kcmF3VGV4dHMoKSx0aGlzLnNob3dDb3VudHM/KHRoaXMuZHJhd0NvdW50RG90cygpLHRoaXMuZHJhd0NvdW50VGV4dHMoKSk6KHRoaXMuY291bnREb3RzR3JvdXAuc2VsZWN0QWxsKCIuY291bnQtZG90IikucmVtb3ZlKCksdGhpcy5jb3VudFRleHRzR3JvdXAuc2VsZWN0QWxsKCIuY291bnQtYmFja2dyb3VuZC10ZXh0IikucmVtb3ZlKCksdGhpcy5jb3VudFRleHRzR3JvdXAuc2VsZWN0QWxsKCIuY291bnQtdGV4dCIpLnJlbW92ZSgpKX1kcmF3UnVuSW5kaWNhdG9ycygpe0o0KHRoaXMuY2xpcFBhdGhFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLnNlbGVjdCgicmVjdCIpLmF0dHIoIndpZHRoIix0aGlzLm1hcmdpbi5sZWZ0LTMwKS5hdHRyKCJoZWlnaHQiLHRoaXMuY2hhcnRIZWlnaHQpO2NvbnN0IHQ9dGhpcy5ydW5IaW50R3JvdXAuc2VsZWN0QWxsKCIuaGludCIpLmRhdGEodGhpcy5ydW5zKSxlPXQuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImhpbnQiKTtlLmFwcGVuZCgicGF0aCIpLmF0dHIoImQiLCJNIDAgMCBMIDE1IDAgTCAxMCAxMCBMIDE1IDIwIEwgMCAyMCBaIiksZS5tZXJnZSh0KS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3JldHVybmB0cmFuc2xhdGUoMTAsICR7dGhpcy55U2NhbGUodCkrNX0pYH0uYmluZCh0aGlzKSkuYXR0cigiZmlsbCIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29sb3JTY2FsZSh0KX0uYmluZCh0aGlzKSksdC5leGl0KCkucmVtb3ZlKCl9ZHJhd1J1bkhpbnRUZXh0cygpe2NvbnN0IHQ9dGhpcy5ydW5IaW50R3JvdXAuc2VsZWN0QWxsKCIuaGludC10ZXh0IikuZGF0YSh0aGlzLnJ1bnMpO3QuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5hdHRyKCJ4IiwyNSkuYXR0cigiZm9udC1zaXplIiwiMTBweCIpLmF0dHIoImFsaWdubWVudC1iYXNlbGluZSIsIm1pZGRsZSIpLmF0dHIoImNsaXAtcGF0aCIsInVybCgjaGludC1jbGlwKSIpLm1lcmdlKHQpLmF0dHIoInkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnlTY2FsZSh0KSsxNX0uYmluZCh0aGlzKSkuYXR0cigiY2xhc3MiLGBoaW50LXRleHQgJHt0aGlzLnRleHRDbGFzc31gKS50ZXh0KCh0PT57dmFyIGU7cmV0dXJuKG51bGw9PT0oZT10aGlzLnJ1bklkVG9SdW5zLmdldCh0KSl8fHZvaWQgMD09PWU/dm9pZCAwOmUubmFtZSl8fCIifSkpLHQuZXhpdCgpLnJlbW92ZSgpfWRyYXdCYXJzKCl7Y29uc3QgdD10aGlzLmJhcnNHcm91cC5zZWxlY3RBbGwoIi5iYXIiKS5kYXRhKHRoaXMuZGF0YSk7dC5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiYmFyIikuYXR0cigiaGVpZ2h0IiwyMCkubWVyZ2UodCkuYXR0cigiZmlsbCIsKHQ9Pm51bGw9PT10Lm5QTUlWYWx1ZT8iIjp0Lm5QTUlWYWx1ZT49MD9ib3QodC5uUE1JVmFsdWUpOl9vdCgtMSp0Lm5QTUlWYWx1ZSkpKS5hdHRyKCJ4IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54U2NhbGUodC5tZXRyaWMpfS5iaW5kKHRoaXMpKS5hdHRyKCJ5IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy55U2NhbGUodC5ydW4pKzV9LmJpbmQodGhpcykpLmF0dHIoIndpZHRoIixmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09PXQublBNSVZhbHVlPzA6dGhpcy5zaXplU2NhbGUoTWF0aC5hYnModC5uUE1JVmFsdWUpKX0uYmluZCh0aGlzKSksdC5leGl0KCkucmVtb3ZlKCl9ZHJhd0NvdW50RG90cygpe2NvbnN0IHQ9dGhpcy5jb3VudERvdHNHcm91cC5zZWxlY3RBbGwoIi5jb3VudC1kb3QiKS5kYXRhKHRoaXMuZGF0YSk7dC5lbnRlcigpLmFwcGVuZCgiY2lyY2xlIikuYXR0cigiY2xhc3MiLCJjb3VudC1kb3QiKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLm1lcmdlKHQpLmF0dHIoImZpbGwiLGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dC5jb3VudFZhbHVlPyIiOnlvdCh0LmNvdW50VmFsdWUvdGhpcy5tYXhDb3VudCl9LmJpbmQodGhpcykpLmF0dHIoImN4IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54U2NhbGUodC5tZXRyaWMpK3RoaXMuY291bnREb3RPZmZzZXR9LmJpbmQodGhpcykpLmF0dHIoImN5IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy55U2NhbGUodC5ydW4pK3RoaXMucnVuSGVpZ2h0LzJ9LmJpbmQodGhpcykpLmF0dHIoInIiLGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dC5jb3VudFZhbHVlPzA6dGhpcy5jb3VudFNpemVTY2FsZSh0LmNvdW50VmFsdWUpfS5iaW5kKHRoaXMpKSx0LmV4aXQoKS5yZW1vdmUoKX1kcmF3VGV4dHMoKXtjb25zdCB0PXRoaXMudGV4dHNHcm91cC5zZWxlY3RBbGwoIi5ucG1pLWJhY2tncm91bmQtdGV4dCIpLmRhdGEodGhpcy5kYXRhKTt0LmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuYXR0cigiY2xhc3MiLCJucG1pLWJhY2tncm91bmQtdGV4dCIpLmF0dHIoInN0cm9rZS13aWR0aCIsMykuYXR0cigic3Ryb2tlLWxpbmVqb2luIiwicm91bmQiKS5hdHRyKCJzdHJva2UiLHRoaXMuc3Ryb2tlQ29sb3IpLmF0dHIoImZvbnQtc2l6ZSIsIjEzcHgiKS5hdHRyKCJhbGlnbm1lbnQtYmFzZWxpbmUiLCJtaWRkbGUiKS5tZXJnZSh0KS5hdHRyKCJ4IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54U2NhbGUodC5tZXRyaWMpKzV9LmJpbmQodGhpcykpLmF0dHIoInkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnlTY2FsZSh0LnJ1bikrdGhpcy5ydW5IZWlnaHQvMn0uYmluZCh0aGlzKSkudGV4dCgodD0+bnVsbD09PXQublBNSVZhbHVlPyJudWxsIjpNYXRoLnJvdW5kKDFlMyoodC5uUE1JVmFsdWUrTnVtYmVyLkVQU0lMT04pKS8xZTMpKSx0LmV4aXQoKS5yZW1vdmUoKTtjb25zdCBlPXRoaXMudGV4dHNHcm91cC5zZWxlY3RBbGwoIi5ucG1pLXRleHQiKS5kYXRhKHRoaXMuZGF0YSk7ZS5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIiwibnBtaS10ZXh0IikuYXR0cigiZm9udC1zaXplIiwiMTNweCIpLmF0dHIoImFsaWdubWVudC1iYXNlbGluZSIsIm1pZGRsZSIpLm1lcmdlKGUpLmF0dHIoIngiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnhTY2FsZSh0Lm1ldHJpYykrNX0uYmluZCh0aGlzKSkuYXR0cigieSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueVNjYWxlKHQucnVuKSt0aGlzLnJ1bkhlaWdodC8yfS5iaW5kKHRoaXMpKS50ZXh0KCh0PT5udWxsPT09dC5uUE1JVmFsdWU/Im51bGwiOk1hdGgucm91bmQoMWUzKih0Lm5QTUlWYWx1ZStOdW1iZXIuRVBTSUxPTikpLzFlMykpLGUuZXhpdCgpLnJlbW92ZSgpfWRyYXdDb3VudFRleHRzKCl7Y29uc3QgdD10aGlzLmNvdW50VGV4dHNHcm91cC5zZWxlY3RBbGwoIi5jb3VudC1iYWNrZ3JvdW5kLXRleHQiKS5kYXRhKHRoaXMuZGF0YSk7dC5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIiwiY291bnQtYmFja2dyb3VuZC10ZXh0IikuYXR0cigic3Ryb2tlLXdpZHRoIiwzKS5hdHRyKCJzdHJva2UtbGluZWpvaW4iLCJyb3VuZCIpLmF0dHIoInN0cm9rZSIsdGhpcy5zdHJva2VDb2xvcikuYXR0cigiZm9udC1zaXplIiwiMTBweCIpLmF0dHIoImFsaWdubWVudC1iYXNlbGluZSIsIm1pZGRsZSIpLm1lcmdlKHQpLmF0dHIoIngiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnhTY2FsZSh0Lm1ldHJpYykrdGhpcy5jb3VudERvdE9mZnNldCt0aGlzLmNvdW50VGV4dFBhZGRpbmcrdGhpcy5tYXhEb3RSYWRpdXN9LmJpbmQodGhpcykpLmF0dHIoInkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnlTY2FsZSh0LnJ1bikrdGhpcy5ydW5IZWlnaHQvMn0uYmluZCh0aGlzKSkudGV4dCgodD0+bnVsbD09PXQuY291bnRWYWx1ZT8iIjpJbnRsLk51bWJlckZvcm1hdCgpLmZvcm1hdCh0LmNvdW50VmFsdWUpKSksdC5leGl0KCkucmVtb3ZlKCk7Y29uc3QgZT10aGlzLmNvdW50VGV4dHNHcm91cC5zZWxlY3RBbGwoIi5jb3VudC10ZXh0IikuZGF0YSh0aGlzLmRhdGEpO2UuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5hdHRyKCJjbGFzcyIsImNvdW50LXRleHQiKS5hdHRyKCJmb250LXNpemUiLCIxMHB4IikuYXR0cigiYWxpZ25tZW50LWJhc2VsaW5lIiwibWlkZGxlIikubWVyZ2UoZSkuYXR0cigieCIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueFNjYWxlKHQubWV0cmljKSt0aGlzLmNvdW50RG90T2Zmc2V0K3RoaXMuY291bnRUZXh0UGFkZGluZyt0aGlzLm1heERvdFJhZGl1c30uYmluZCh0aGlzKSkuYXR0cigieSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueVNjYWxlKHQucnVuKSt0aGlzLnJ1bkhlaWdodC8yfS5iaW5kKHRoaXMpKS50ZXh0KCh0PT5udWxsPT09dC5jb3VudFZhbHVlPyIiOkludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0KHQuY291bnRWYWx1ZSkpKSxlLmV4aXQoKS5yZW1vdmUoKX1zaW1pbGFyaXR5U29ydCh0KXt0aGlzLmhhc0VtYmVkZGluZyYmKHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vblNob3dTaW1pbGFyQW5ub3RhdGlvbnMuZW1pdCgpKX19QV90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBX3QpfSxBX3QuybVjbXA9dG8oe3R5cGU6QV90LHNlbGVjdG9yczpbWyJhbm5vdGF0aW9uLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKGtfdCw3LGhnKSxRaChTX3QsNyxoZykpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uYW5ub3RhdGlvbkNvbnRhaW5lcj10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5jbGlwUGF0aEVsZW1lbnQ9dC5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgicmVzaXplIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVzaXplKCl9KSwhMSxvbCksMiZlJiZwdSgic2VsZWN0ZWQtcm93IixuLnNlbGVjdGVkKX0saW5wdXRzOntkYXRhOiJkYXRhIixtYXhDb3VudDoibWF4Q291bnQiLHNlbGVjdGVkQW5ub3RhdGlvbnM6InNlbGVjdGVkQW5ub3RhdGlvbnMiLGZsYWdnZWRBbm5vdGF0aW9uczoiZmxhZ2dlZEFubm90YXRpb25zIixoaWRkZW5Bbm5vdGF0aW9uczoiaGlkZGVuQW5ub3RhdGlvbnMiLGFjdGl2ZU1ldHJpY3M6ImFjdGl2ZU1ldHJpY3MiLG51bUFjdGl2ZVJ1bnM6Im51bUFjdGl2ZVJ1bnMiLHNob3dDb3VudHM6InNob3dDb3VudHMiLGFubm90YXRpb246ImFubm90YXRpb24iLHJ1bkhlaWdodDoicnVuSGVpZ2h0IixoYXNFbWJlZGRpbmc6Imhhc0VtYmVkZGluZyIsc29ydDoic29ydCIsc2lkZWJhcldpZHRoOiJzaWRlYmFyV2lkdGgiLGNvbG9yU2NhbGU6ImNvbG9yU2NhbGUiLHJ1bklkVG9SdW5zOiJydW5JZFRvUnVucyJ9LG91dHB1dHM6e29uU2hvd1NpbWlsYXJBbm5vdGF0aW9uczoib25TaG93U2ltaWxhckFubm90YXRpb25zIn0sZmVhdHVyZXM6W0JvXSxkZWNsczoxNCx2YXJzOjEwLGNvbnN0czpbWzEsImFubm90YXRpb24tdGl0bGUiXSxbMSwiYW5ub3RhdGlvbi1jaGVja2JveCIsMywiY2hlY2tlZCIsImNsaWNrIl0sWzEsImFubm90YXRpb24tYnV0dG9uIiwzLCJuZ0NsYXNzIiwiY2xpY2siXSxbImNsYXNzIiwiZmxhZ2dlZC1pY29uIiwic3ZnSWNvbiIsImZsYWdfMjRweCIsNCwibmdJZiJdLFsiY2xhc3MiLCJoaWRkZW4taWNvbiIsInN2Z0ljb24iLCJ2aXNpYmlsaXR5X29mZl8yNHB4Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImFubm90YXRpb24taWNvbiIsMywic3ZnSWNvbiIsIm5nQ2xhc3MiLDQsIm5nSWYiXSxbMSwiY2hhcnQtZGl2Il0sWyJjaGFydCIsIiJdLFsxLCJjaGFydC1zdmciXSxbImlkIiwiaGludC1jbGlwIl0sWyJoaW50Q2xpcCIsIiJdLFsieCIsIjAiLCJ5IiwiMCJdLFsic3ZnSWNvbiIsImZsYWdfMjRweCIsMSwiZmxhZ2dlZC1pY29uIl0sWyJzdmdJY29uIiwidmlzaWJpbGl0eV9vZmZfMjRweCIsMSwiaGlkZGVuLWljb24iXSxbMSwiYW5ub3RhdGlvbi1pY29uIiwzLCJzdmdJY29uIiwibmdDbGFzcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZGl2IiwwKSxSbSgxLCJtYXQtY2hlY2tib3giLDEpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUucHJldmVudERlZmF1bHQoKX0pKSxBbSgpLFJtKDIsImJ1dHRvbiIsMiksVm0oImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5zaW1pbGFyaXR5U29ydChlKX0pKSxrdSgzKSxBbSgpLFFwKDQsRF90LDEsMCwibWF0LWljb24iLDMpLFFwKDUsRV90LDEsMCwibWF0LWljb24iLDQpLFFwKDYsUl90LDEsMiwibWF0LWljb24iLDUpLEFtKCksUm0oNywiZGl2Iiw2LDcpLHFpKCksUm0oOSwic3ZnIiw4KSxSbSgxMCwiZGVmcyIpLFJtKDExLCJjbGlwUGF0aCIsOSwxMCksVG0oMTMsInJlY3QiLDExKSxBbSgpLEFtKCksQW0oKSxBbSgpKSwyJmUmJihwdSgiZmxhZ2dlZC1hbm5vdGF0aW9uIixuLmZsYWdnZWRBbm5vdGF0aW9ucy5pbmNsdWRlcyhuLmFubm90YXRpb24pKSgiaGlkZGVuLWFubm90YXRpb24iLG4uaGlkZGVuQW5ub3RhdGlvbnMuaW5jbHVkZXMobi5hbm5vdGF0aW9uKSYmIW4uZmxhZ2dlZEFubm90YXRpb25zLmluY2x1ZGVzKG4uYW5ub3RhdGlvbikpLHJjKDEpLERtKCJjaGVja2VkIixuLnNlbGVjdGVkQW5ub3RhdGlvbnMuaW5jbHVkZXMobi5hbm5vdGF0aW9uKSkscmMoMSksRG0oIm5nQ2xhc3MiLG4uaGFzRW1iZWRkaW5nPyJjbGlja2FibGUtYW5ub3RhdGlvbiI6IiIpLHJjKDEpLER1KCIgIixuLmFubm90YXRpb24sIiAiKSxyYygxKSxEbSgibmdJZiIsbi5mbGFnZ2VkQW5ub3RhdGlvbnMuaW5jbHVkZXMobi5hbm5vdGF0aW9uKSkscmMoMSksRG0oIm5nSWYiLG4uaGlkZGVuQW5ub3RhdGlvbnMuaW5jbHVkZXMobi5hbm5vdGF0aW9uKSkscmMoMSksRG0oIm5nSWYiLG4uYW5ub3RhdGlvbj09PW4uc29ydC5tZXRyaWMpKX0sZGlyZWN0aXZlczpbT1ksYU0sZE0sRFddLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudHtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50e2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnR7Zm9udC1zaXplOjI0cHh9Lm1hdC1oMSwubWF0LWhlYWRsaW5lLC5tYXQtdHlwb2dyYXBoeSBoMXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMiwubWF0LXRpdGxlLC5tYXQtdHlwb2dyYXBoeSBoMntmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMywubWF0LXN1YmhlYWRpbmctMiwubWF0LXR5cG9ncmFwaHkgaDN7Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDQsLm1hdC1zdWJoZWFkaW5nLTEsLm1hdC10eXBvZ3JhcGh5IGg0e2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1LC5tYXQtdHlwb2dyYXBoeSBoNXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNiwubWF0LXR5cG9ncmFwaHkgaDZ7Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmcsLm1hdC1ib2R5LTJ7Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5LC5tYXQtYm9keS0xLC5tYXQtdHlwb2dyYXBoeXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHkgcCwubWF0LWJvZHktMSBwLC5tYXQtdHlwb2dyYXBoeSBwe21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsLC5tYXQtY2FwdGlvbntmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNCwubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTR7Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zLC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktM3tmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yLC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMntmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMSwubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTF7Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcntmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbiwubWF0LXJhaXNlZC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbiwubWF0LXN0cm9rZWQtYnV0dG9uLC5tYXQtZmxhdC1idXR0b24sLm1hdC1mYWIsLm1hdC1taW5pLWZhYntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJke2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGV7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxle2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZSwubWF0LWNhcmQtY29udGVudHtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVse2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwe2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sLm1hdC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb257Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbHtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsLC5tYXQtZm9vdGVyLWNlbGx7Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5e2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCwubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b257Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoe2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50e2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZHtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcntwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb257Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uLC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbntoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcnt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWx7dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC13cmFwcGVye3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcnttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtbGFiZWx7dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlciwubWF0LWdyaWQtdGlsZS1mb290ZXJ7Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZSwubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLC5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnR7bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvciwubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b257Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2Vye2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnR7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWwsLm1hdC1zdGVwcGVyLWhvcml6b250YWx7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcntmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9ye2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXB7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLWxpbmt7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXIsLm1hdC10b29sYmFyIGgxLC5tYXQtdG9vbGJhciBoMiwubWF0LXRvb2xiYXIgaDMsLm1hdC10b29sYmFyIGg0LC5tYXQtdG9vbGJhciBoNSwubWF0LXRvb2xiYXIgaDZ7Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwe2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0e2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb257Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVte2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb257Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVte2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb257Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtc3ViaGVhZGVye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb257Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWx7Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbntsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGUsLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGU6bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWR7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50e3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1yaXBwbGUtZWxlbWVudHtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW57Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyLC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcntwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJ7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXI6ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcntkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5le3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9we2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCwuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3h7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja3twb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5ne3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3h7cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7LyohKi99QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7LyohKi99LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9ye3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcntwb3NpdGlvbjpyZWxhdGl2ZX06aG9zdHtwYWRkaW5nLXRvcDo1cHh9LmFubm90YXRpb24tdGl0bGV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmb250LXNpemU6MTNweDtoZWlnaHQ6MjBweDtwYWRkaW5nOjAgMTBweDt1c2VyLXNlbGVjdDpub25lfS5zZWxlY3RlZC1yb3d7YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwO2Rpc3BsYXk6YmxvY2t9LmZsYWdnZWQtYW5ub3RhdGlvbntjb2xvcjojZjU3YzAwfS5oaWRkZW4tYW5ub3RhdGlvbntjb2xvcjojNzU3NTc1fS5hbm5vdGF0aW9uLWNoZWNrYm94e3BhZGRpbmctcmlnaHQ6NXB4fS5mbGFnZ2VkLWljb257dHJhbnNmb3JtOnNjYWxlKDAuNil9LmhpZGRlbi1pY29ue3RyYW5zZm9ybTpzY2FsZSgwLjYpfS5hbm5vdGF0aW9uLWljb257dHJhbnNmb3JtOnNjYWxlKDAuNil9LmNoYXJ0LWRpdntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmVifS5jaGFydC1zdmd7d2lkdGg6MTAwJTt1c2VyLXNlbGVjdDpub25lfS5kZWZhdWx0LXRleHR7ZmlsbDojMDAwfS5mbGFnLXRleHR7ZmlsbDojZjU3YzAwfS5oaWRkZW4tdGV4dHtmaWxsOiM3NTc1NzV9LmNsaWNrYWJsZS1hbm5vdGF0aW9ue2N1cnNvcjpwb2ludGVyfWJ1dHRvbnthbGw6dW5zZXR9XG4nXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEFfdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJhbm5vdGF0aW9uLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vYW5ub3RhdGlvbl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9hbm5vdGF0aW9uX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNoLGVuY2Fwc3VsYXRpb246SG4uTm9uZX1dfV0sbnVsbCx7ZGF0YTpbe3R5cGU6eHl9XSxtYXhDb3VudDpbe3R5cGU6eHl9XSxzZWxlY3RlZEFubm90YXRpb25zOlt7dHlwZTp4eX1dLGZsYWdnZWRBbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxoaWRkZW5Bbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxhY3RpdmVNZXRyaWNzOlt7dHlwZTp4eX1dLG51bUFjdGl2ZVJ1bnM6W3t0eXBlOnh5fV0sc2hvd0NvdW50czpbe3R5cGU6eHl9XSxhbm5vdGF0aW9uOlt7dHlwZTp4eX1dLHJ1bkhlaWdodDpbe3R5cGU6eHl9XSxoYXNFbWJlZGRpbmc6W3t0eXBlOnh5fV0sc29ydDpbe3R5cGU6eHl9XSxzaWRlYmFyV2lkdGg6W3t0eXBlOnh5fV0sY29sb3JTY2FsZTpbe3R5cGU6eHl9XSxydW5JZFRvUnVuczpbe3R5cGU6eHl9XSxhbm5vdGF0aW9uQ29udGFpbmVyOlt7dHlwZTpaYSxhcmdzOlsiY2hhcnQiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0sY2xpcFBhdGhFbGVtZW50Olt7dHlwZTpaYSxhcmdzOlsiaGludENsaXAiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0sc2VsZWN0ZWQ6W3t0eXBlOlB5LGFyZ3M6WyJjbGFzcy5zZWxlY3RlZC1yb3ciXX1dLG9uUmVzaXplOlt7dHlwZTp3eSxhcmdzOlsid2luZG93OnJlc2l6ZSJdfV0sb25TaG93U2ltaWxhckFubm90YXRpb25zOlt7dHlwZTpPeX1dfSk7Y2xhc3MgVF90e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnNvcnQkPXRoaXMuc3RvcmUuc2VsZWN0KGhidCksdGhpcy5mbGFnZ2VkQW5ub3RhdGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KGRidCksdGhpcy5oaWRkZW5Bbm5vdGF0aW9ucyQ9dGhpcy5zdG9yZS5zZWxlY3QocGJ0KSx0aGlzLnNlbGVjdGVkQW5ub3RhdGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KGNidCksdGhpcy5zaG93Q291bnRzJD10aGlzLnN0b3JlLnNlbGVjdChDYnQpLHRoaXMuc2lkZWJhcldpZHRoJD10aGlzLnN0b3JlLnNlbGVjdCh4YnQpLHRoaXMucnVuQ29sb3JTY2FsZSQ9dGhpcy5zdG9yZS5zZWxlY3Qoek4pLnBpcGUoSXQoKHQ9PmU9PntpZighdC5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRXJyb3IoYFtDb2xvciBzY2FsZV0gdW5rbm93biBydW5JZDogJHtlfS5gKTtyZXR1cm4gdFtlXX0pKSksdGhpcy5ydW5JZFRvUnVucyQ9dGhpcy5zdG9yZS5zZWxlY3QoZE4pfXNob3dTaW1pbGFyQW5ub3RhdGlvbnMoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKGpidCh7YW5ub3RhdGlvbjp0aGlzLmFubm90YXRpb259KSl9fWZ1bmN0aW9uIE5fdCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsIm5wbWktYW5ub3RhdGlvbiIsNSksVm0oImNsaWNrIiwoZnVuY3Rpb24gZShuKXtjb25zdCBvPWhpKHQpLiRpbXBsaWNpdDtyZXR1cm4gWW0oMikucm93Q2xpY2tlZChuLG8pfSkpLEFtKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49WW0oMik7RG0oImRhdGEiLG4uYW5ub3RhdGlvbnNbdF0pKCJhY3RpdmVNZXRyaWNzIixuLmFjdGl2ZU1ldHJpY3MpKCJudW1BY3RpdmVSdW5zIixuLm51bUFjdGl2ZVJ1bnMpKCJtYXhDb3VudCIsbi5tYXhDb3VudCkoImFubm90YXRpb24iLHQpKCJydW5IZWlnaHQiLG4ucnVuSGVpZ2h0KSgiaGFzRW1iZWRkaW5nIixuLmVtYmVkZGluZ0RhdGEmJnZvaWQgMCE9PW4uZW1iZWRkaW5nRGF0YVt0XSl9fWZ1bmN0aW9uIHpfdCh0LGUpe2lmKDEmdCYmKE5tKDApLFRtKDEsIm5wbWktYW5ub3RhdGlvbnMtbGlzdC1sZWdlbmQiKSxUbSgyLCJucG1pLWFubm90YXRpb25zLWxpc3QtaGVhZGVyIiwyKSxSbSgzLCJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQiLDMpLFFwKDQsTl90LDEsNywibnBtaS1hbm5vdGF0aW9uIiw0KSxBbSgpLHptKCkpLDImdCl7Y29uc3QgdD1ZbSgpO3JjKDIpLERtKCJhbm5vdGF0aW9ucyIsdC5hbm5vdGF0aW9ucykoIm51bUFubm90YXRpb25zIix0Lm51bUFubm90YXRpb25zKSgiYWN0aXZlTWV0cmljcyIsdC5hY3RpdmVNZXRyaWNzKSxyYygxKSxLbSgiaXRlbVNpemUiLHQubnVtQWN0aXZlUnVucyp0LnJ1bkhlaWdodCsyNSkscmMoMSksRG0oImNka1ZpcnR1YWxGb3JPZiIsdC5zb3J0ZWRBbm5vdGF0aW9ucyl9fVRfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VF90KShTbShJdykpfSxUX3QuybVjbXA9dG8oe3R5cGU6VF90LHNlbGVjdG9yczpbWyJucG1pLWFubm90YXRpb24iXV0saW5wdXRzOntkYXRhOiJkYXRhIixtYXhDb3VudDoibWF4Q291bnQiLGFjdGl2ZU1ldHJpY3M6ImFjdGl2ZU1ldHJpY3MiLG51bUFjdGl2ZVJ1bnM6Im51bUFjdGl2ZVJ1bnMiLGFubm90YXRpb246ImFubm90YXRpb24iLHJ1bkhlaWdodDoicnVuSGVpZ2h0IixoYXNFbWJlZGRpbmc6Imhhc0VtYmVkZGluZyJ9LGRlY2xzOjksdmFyczozMSxjb25zdHM6W1szLCJkYXRhIiwibWF4Q291bnQiLCJhY3RpdmVNZXRyaWNzIiwibnVtQWN0aXZlUnVucyIsImFubm90YXRpb24iLCJydW5IZWlnaHQiLCJoYXNFbWJlZGRpbmciLCJzb3J0Iiwic2VsZWN0ZWRBbm5vdGF0aW9ucyIsImZsYWdnZWRBbm5vdGF0aW9ucyIsImhpZGRlbkFubm90YXRpb25zIiwic2hvd0NvdW50cyIsInNpZGViYXJXaWR0aCIsImNvbG9yU2NhbGUiLCJydW5JZFRvUnVucyIsIm9uU2hvd1NpbWlsYXJBbm5vdGF0aW9ucyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiYW5ub3RhdGlvbi1jb21wb25lbnQiLDApLFZtKCJvblNob3dTaW1pbGFyQW5ub3RhdGlvbnMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uc2hvd1NpbWlsYXJBbm5vdGF0aW9ucygpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQWgoNSwiYXN5bmMiKSxBaCg2LCJhc3luYyIpLEFoKDcsImFzeW5jIiksQWgoOCwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJkYXRhIixuLmRhdGEpKCJtYXhDb3VudCIsbi5tYXhDb3VudCkoImFjdGl2ZU1ldHJpY3MiLG4uYWN0aXZlTWV0cmljcykoIm51bUFjdGl2ZVJ1bnMiLG4ubnVtQWN0aXZlUnVucykoImFubm90YXRpb24iLG4uYW5ub3RhdGlvbikoInJ1bkhlaWdodCIsbi5ydW5IZWlnaHQpKCJoYXNFbWJlZGRpbmciLG4uaGFzRW1iZWRkaW5nKSgic29ydCIsVGgoMSwxNSxuLnNvcnQkKSkoInNlbGVjdGVkQW5ub3RhdGlvbnMiLFRoKDIsMTcsbi5zZWxlY3RlZEFubm90YXRpb25zJCkpKCJmbGFnZ2VkQW5ub3RhdGlvbnMiLFRoKDMsMTksbi5mbGFnZ2VkQW5ub3RhdGlvbnMkKSkoImhpZGRlbkFubm90YXRpb25zIixUaCg0LDIxLG4uaGlkZGVuQW5ub3RhdGlvbnMkKSkoInNob3dDb3VudHMiLFRoKDUsMjMsbi5zaG93Q291bnRzJCkpKCJzaWRlYmFyV2lkdGgiLFRoKDYsMjUsbi5zaWRlYmFyV2lkdGgkKSkoImNvbG9yU2NhbGUiLFRoKDcsMjcsbi5ydW5Db2xvclNjYWxlJCkpKCJydW5JZFRvUnVucyIsVGgoOCwyOSxuLnJ1bklkVG9SdW5zJCkpfSxkaXJlY3RpdmVzOltBX3RdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChUX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1hbm5vdGF0aW9uIix0ZW1wbGF0ZTonXG4gICAgPGFubm90YXRpb24tY29tcG9uZW50XG4gICAgICBbZGF0YV09ImRhdGEiXG4gICAgICBbbWF4Q291bnRdPSJtYXhDb3VudCJcbiAgICAgIFthY3RpdmVNZXRyaWNzXT0iYWN0aXZlTWV0cmljcyJcbiAgICAgIFtudW1BY3RpdmVSdW5zXT0ibnVtQWN0aXZlUnVucyJcbiAgICAgIFthbm5vdGF0aW9uXT0iYW5ub3RhdGlvbiJcbiAgICAgIFtydW5IZWlnaHRdPSJydW5IZWlnaHQiXG4gICAgICBbaGFzRW1iZWRkaW5nXT0iaGFzRW1iZWRkaW5nIlxuICAgICAgW3NvcnRdPSJzb3J0JCB8IGFzeW5jIlxuICAgICAgW3NlbGVjdGVkQW5ub3RhdGlvbnNdPSJzZWxlY3RlZEFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW2ZsYWdnZWRBbm5vdGF0aW9uc109ImZsYWdnZWRBbm5vdGF0aW9ucyQgfCBhc3luYyJcbiAgICAgIFtoaWRkZW5Bbm5vdGF0aW9uc109ImhpZGRlbkFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW3Nob3dDb3VudHNdPSJzaG93Q291bnRzJCB8IGFzeW5jIlxuICAgICAgW3NpZGViYXJXaWR0aF09InNpZGViYXJXaWR0aCQgfCBhc3luYyJcbiAgICAgIFtjb2xvclNjYWxlXT0icnVuQ29sb3JTY2FsZSQgfCBhc3luYyJcbiAgICAgIFtydW5JZFRvUnVuc109InJ1bklkVG9SdW5zJCB8IGFzeW5jIlxuICAgICAgKG9uU2hvd1NpbWlsYXJBbm5vdGF0aW9ucyk9InNob3dTaW1pbGFyQW5ub3RhdGlvbnMoKSJcbiAgICA+PC9hbm5vdGF0aW9uLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLHtkYXRhOlt7dHlwZTp4eX1dLG1heENvdW50Olt7dHlwZTp4eX1dLGFjdGl2ZU1ldHJpY3M6W3t0eXBlOnh5fV0sbnVtQWN0aXZlUnVuczpbe3R5cGU6eHl9XSxhbm5vdGF0aW9uOlt7dHlwZTp4eX1dLHJ1bkhlaWdodDpbe3R5cGU6eHl9XSxoYXNFbWJlZGRpbmc6W3t0eXBlOnh5fV19KTtjbGFzcyBJX3R7Y29uc3RydWN0b3IoKXt0aGlzLm9uUm93Q2xpY2s9bmV3IExoLHRoaXMucnVuSGVpZ2h0PTMwfXJvd0NsaWNrZWQodCxlKXtpZih0LnNoaWZ0S2V5KXtsZXQgdD10aGlzLnNvcnRlZEFubm90YXRpb25zLmluZGV4T2YoZSk7aWYoMD09PXRoaXMuc2VsZWN0ZWRBbm5vdGF0aW9ucy5sZW5ndGgpdGhpcy5vblJvd0NsaWNrLmVtaXQodGhpcy5zb3J0ZWRBbm5vdGF0aW9ucy5zbGljZSgwLHQrMSkpO2Vsc2V7Y29uc3QgZT10aGlzLnNvcnRlZEFubm90YXRpb25zLmluZGV4T2YodGhpcy5zZWxlY3RlZEFubm90YXRpb25zW3RoaXMuc2VsZWN0ZWRBbm5vdGF0aW9ucy5sZW5ndGgtMV0pO3RoaXMub25Sb3dDbGljay5lbWl0KGU8dD90aGlzLnNvcnRlZEFubm90YXRpb25zLnNsaWNlKGUsdCsxKTp0aGlzLnNvcnRlZEFubm90YXRpb25zLnNsaWNlKHQsZSsxKSl9fWVsc2UgdGhpcy5vblJvd0NsaWNrLmVtaXQoW2VdKX19SV90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJX3QpfSxJX3QuybVjbXA9dG8oe3R5cGU6SV90LHNlbGVjdG9yczpbWyJhbm5vdGF0aW9ucy1saXN0LWNvbXBvbmVudCJdXSxpbnB1dHM6e2Fubm90YXRpb25zOiJhbm5vdGF0aW9ucyIsZW1iZWRkaW5nRGF0YToiZW1iZWRkaW5nRGF0YSIsYW5ub3RhdGlvbnNFeHBhbmRlZDoiYW5ub3RhdGlvbnNFeHBhbmRlZCIsbnVtQW5ub3RhdGlvbnM6Im51bUFubm90YXRpb25zIixhbm5vdGF0aW9uU29ydDoiYW5ub3RhdGlvblNvcnQiLGFjdGl2ZU1ldHJpY3M6ImFjdGl2ZU1ldHJpY3MiLG51bUFjdGl2ZVJ1bnM6Im51bUFjdGl2ZVJ1bnMiLHNvcnRlZEFubm90YXRpb25zOiJzb3J0ZWRBbm5vdGF0aW9ucyIsc2VsZWN0ZWRBbm5vdGF0aW9uczoic2VsZWN0ZWRBbm5vdGF0aW9ucyIsbWF4Q291bnQ6Im1heENvdW50In0sb3V0cHV0czp7b25Sb3dDbGljazoib25Sb3dDbGljayJ9LGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsIm51bUFubm90YXRpb25zIiwiZXhwYW5kZWQiXSxbNCwibmdJZiJdLFszLCJhbm5vdGF0aW9ucyIsIm51bUFubm90YXRpb25zIiwiYWN0aXZlTWV0cmljcyJdLFsibWluQnVmZmVyUHgiLCIzMDAiLCJtYXhCdWZmZXJQeCIsIjYwMCIsMSwiYW5ub3RhdGlvbi1yb3dzIiwzLCJpdGVtU2l6ZSJdLFszLCJkYXRhIiwiYWN0aXZlTWV0cmljcyIsIm51bUFjdGl2ZVJ1bnMiLCJtYXhDb3VudCIsImFubm90YXRpb24iLCJydW5IZWlnaHQiLCJoYXNFbWJlZGRpbmciLCJjbGljayIsNCwiY2RrVmlydHVhbEZvciIsImNka1ZpcnR1YWxGb3JPZiJdLFszLCJkYXRhIiwiYWN0aXZlTWV0cmljcyIsIm51bUFjdGl2ZVJ1bnMiLCJtYXhDb3VudCIsImFubm90YXRpb24iLCJydW5IZWlnaHQiLCJoYXNFbWJlZGRpbmciLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoVG0oMCwibnBtaS1hbm5vdGF0aW9ucy1saXN0LXRvb2xiYXIiLDApLFFwKDEsel90LDUsNSwibmctY29udGFpbmVyIiwxKSksMiZlJiYoRG0oIm51bUFubm90YXRpb25zIixuLm51bUFubm90YXRpb25zKSgiZXhwYW5kZWQiLG4uYW5ub3RhdGlvbnNFeHBhbmRlZCkscmMoMSksRG0oIm5nSWYiLG4uYW5ub3RhdGlvbnNFeHBhbmRlZCkpfSxkaXJlY3RpdmVzOltfX3QsZE0sdl90LHdfdCxnRixkRixiRixUX3RdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDpjYWxjKDEwMCUgLSAycHgpO3dpZHRoOmNhbGMoMTAwJSAtIDJweCl9LmFubm90YXRpb24tcm93c1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4OjEgMTtvdmVyZmxvdy15OmF1dG99J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKElfdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJhbm5vdGF0aW9ucy1saXN0LWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vYW5ub3RhdGlvbnNfbGlzdF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9hbm5vdGF0aW9uc19saXN0X2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSxudWxsLHthbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxlbWJlZGRpbmdEYXRhOlt7dHlwZTp4eX1dLGFubm90YXRpb25zRXhwYW5kZWQ6W3t0eXBlOnh5fV0sbnVtQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0sYW5ub3RhdGlvblNvcnQ6W3t0eXBlOnh5fV0sYWN0aXZlTWV0cmljczpbe3R5cGU6eHl9XSxudW1BY3RpdmVSdW5zOlt7dHlwZTp4eX1dLHNvcnRlZEFubm90YXRpb25zOlt7dHlwZTp4eX1dLHNlbGVjdGVkQW5ub3RhdGlvbnM6W3t0eXBlOnh5fV0sbWF4Q291bnQ6W3t0eXBlOnh5fV0sb25Sb3dDbGljazpbe3R5cGU6T3l9XX0pO2NsYXNzIEhfdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hbm5vdGF0aW9uc0V4cGFuZGVkJD10aGlzLnN0b3JlLnBpcGUoRncoeWJ0KSksdGhpcy5hY3RpdmVSdW5zJD10aGlzLnN0b3JlLnBpcGUoRncoTk4pKS5waXBlKEl0KCh0PT50P0FycmF5LmZyb20odC5lbnRyaWVzKCkpLmZpbHRlcigodD0+dFsxXSkpLm1hcCgodD0+dFswXSkpOltdKSkpLHRoaXMuZW1iZWRkaW5nRGF0YSQ9dGhpcy5zdG9yZS5waXBlKEZ3KGxidCkpLHRoaXMubnVtQWN0aXZlUnVucyQ9dGhpcy5hY3RpdmVSdW5zJC5waXBlKEl0KCh0PT50Lmxlbmd0aCkpKSx0aGlzLmFjdGl2ZU1ldHJpY3MkPVd0KFt0aGlzLnN0b3JlLnNlbGVjdChzYnQpLHRoaXMuYWN0aXZlUnVucyQsdGhpcy5zdG9yZS5zZWxlY3QoZ2J0KV0pLnBpcGUoSXQoKChbdCxlLG5dKT0+e2xldCBvPVtdO2Zvcihjb25zdCBuIG9mIGUpdFtuXSYmKG89by5jb25jYXQodFtuXS5maWx0ZXIoKHQ9PmV5dCh0KSkpKSk7cmV0dXJuIG89Wy4uLm5ldyBTZXQoWy4uLk9iamVjdC5rZXlzKG4pLC4uLm9dKV0sb30pKSksdGhpcy52aXNpYmxlQW5ub3RhdGlvbnMkPVd0KFt0aGlzLnN0b3JlLnNlbGVjdChyYnQpLHRoaXMuc3RvcmUuc2VsZWN0KHBidCksdGhpcy5zdG9yZS5zZWxlY3QoTWJ0KV0pLnBpcGUoSXQoKChbdCxlLG5dKT0+R3l0KHQsZSxuKSkpKSx0aGlzLmZpbHRlcmVkQW5ub3RhdGlvbnMkPVd0KFt0aGlzLnZpc2libGVBbm5vdGF0aW9ucyQsdGhpcy5zdG9yZS5zZWxlY3QoZmJ0KSx0aGlzLnN0b3JlLnNlbGVjdChnYnQpLHRoaXMuYWN0aXZlUnVucyQsdGhpcy5hY3RpdmVNZXRyaWNzJCx0aGlzLnN0b3JlLnNlbGVjdChtYnQpXSkucGlwZShJdCgoKFt0LGUsbixvLGksYV0pPT4oZnVuY3Rpb24gcih0LGUsbixvLGksYSl7Y29uc3Qgcj17fSxzPW5ldyBTZXQoZSksbD1uZXcgU2V0KGkubWFwKCh0PT5ueXQodCkpKSksYz1uZXcgUmVnRXhwKGEsImkiKTtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkuZm9yRWFjaCgodD0+e2lmKCFjLnRlc3QodFswXSkpcmV0dXJuO2xldCBlPXRbMV07ZT1lLmZpbHRlcigodD0+cy5oYXModC5ydW4pJiZsLmhhcyh0Lm1ldHJpYykpKSwoZnVuY3Rpb24gaSh0LGUsbil7cmV0dXJuIHQuZXZlcnkoKHQ9PntpZih0LmtpbmQ9PT10YnQuT1BFUkFUT1IpcmV0dXJuITA7Y29uc3Qgbz1lW3QubWV0cmljXTtyZXR1cm4gdm9pZCAwPT09b3x8bi5zb21lKChlPT5lLm1ldHJpYz09PW55dCh0Lm1ldHJpYykmJihudWxsPT09ZS5uUE1JVmFsdWU/by5pbmNsdWRlTmFOOmUublBNSVZhbHVlPD1vLm1heCYmZS5uUE1JVmFsdWU+PW8ubWluKSkpfSkpfSkobixvLGUpJiYwIT09ZS5sZW5ndGgmJihyW3RbMF1dPWUpfSkpLHJ9KSh0LG8sZSxuLGksYSkpKSkucGlwZShFZSgpKSx0aGlzLm51bUFubm90YXRpb25zJD10aGlzLmZpbHRlcmVkQW5ub3RhdGlvbnMkLnBpcGUoSXQoKHQ9Pk9iamVjdC5rZXlzKHQpLmxlbmd0aCkpKSx0aGlzLnNvcnRlZEFubm90YXRpb25zJD1XdChbdGhpcy5maWx0ZXJlZEFubm90YXRpb25zJCx0aGlzLnN0b3JlLnBpcGUoRncoaGJ0KSksdGhpcy5lbWJlZGRpbmdEYXRhJF0pLnBpcGUoSXQoKChbdCxlLG5dKT0+KGZ1bmN0aW9uIG8odCxlLG4pe2NvbnN0IG89T2JqZWN0LmtleXModCksaT1lLm9yZGVyPT09bmJ0LkRJU1NJTUlMQVJ8fGUub3JkZXI9PT1uYnQuU0lNSUxBUjtyZXR1cm4iIj09PWUubWV0cmljfHwodm9pZCAwPT09bnx8dm9pZCAwPT09bi5wb2ludHNbZS5tZXRyaWNdKSYmaT9vOihmdW5jdGlvbiBzKHQsZSxuKXtyZXR1cm4gdC5zb3J0KG4/KHQsbik9PmVbdF0tZVtuXToodCxuKT0+ZVtuXS1lW3RdKX0pKG8saT8oZnVuY3Rpb24gYSh0LGUsbil7Y29uc3Qgbz17fTtsZXQgaT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksYT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7bi5vcmRlcj09PW5idC5TSU1JTEFSJiYoaT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksYT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO2Zvcihjb25zdCByIG9mIHQpb1tyXT1yPT09bi5tZXRyaWM/aTp2b2lkIDA9PT1lLnBvaW50c1tyXT9hOmUucG9pbnRzW3JdLnZlY3Rvcj9ReXQoZS5wb2ludHNbbi5tZXRyaWNdLnZlY3RvcixlLnBvaW50c1tyXS52ZWN0b3IsYSk6YTtyZXR1cm4gb30pKG8sbixlKTooZnVuY3Rpb24gcih0LGUsbil7Y29uc3Qgbz1ueXQobi5tZXRyaWMpLGk9e307aWYobi5vcmRlcj09PW5idC5ERVNDRU5ESU5HKWZvcihjb25zdCBuIG9mIHQpaVtuXT1NYXRoLm1heCguLi5lW25dLmZpbHRlcigodD0+dC5tZXRyaWM9PT1vKSkubWFwKCh0PT5udWxsPT09dC5uUE1JVmFsdWU/LTEvMDp0Lm5QTUlWYWx1ZSkpKTtlbHNlIGZvcihjb25zdCBuIG9mIHQpaVtuXT1NYXRoLm1pbiguLi5lW25dLmZpbHRlcigodD0+dC5tZXRyaWM9PT1vKSkubWFwKCh0PT5udWxsPT09dC5uUE1JVmFsdWU/MS8wOnQublBNSVZhbHVlKSkpO3JldHVybiBpfSkobyx0LGUpLGUub3JkZXI9PT1uYnQuQVNDRU5ETkd8fGUub3JkZXI9PT1uYnQuU0lNSUxBUil9KSh0LGUsbikpKSksdGhpcy5zZWxlY3RlZEFubm90YXRpb25zJD10aGlzLnN0b3JlLnBpcGUoRncoY2J0KSksdGhpcy5tYXhDb3VudCQ9dGhpcy5maWx0ZXJlZEFubm90YXRpb25zJC5waXBlKEl0KCh0PT57bGV0IGU9MDtyZXR1cm4gT2JqZWN0LnZhbHVlcyh0KS5mb3JFYWNoKCh0PT57dC5mb3JFYWNoKCh0PT57dC5jb3VudFZhbHVlJiYoZT1NYXRoLm1heChlLHQuY291bnRWYWx1ZSkpfSkpfSkpLGV9KSkpfXJvd0NsaWNrZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChSYnQoe2Fubm90YXRpb25zOnR9KSl9fUhfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SF90KShTbShJdykpfSxIX3QuybVjbXA9dG8oe3R5cGU6SF90LHNlbGVjdG9yczpbWyJucG1pLWFubm90YXRpb25zLWxpc3QiXV0sZGVjbHM6MTAsdmFyczoyNyxjb25zdHM6W1szLCJhbm5vdGF0aW9ucyIsImVtYmVkZGluZ0RhdGEiLCJhbm5vdGF0aW9uc0V4cGFuZGVkIiwibnVtQW5ub3RhdGlvbnMiLCJhY3RpdmVNZXRyaWNzIiwibnVtQWN0aXZlUnVucyIsInNvcnRlZEFubm90YXRpb25zIiwic2VsZWN0ZWRBbm5vdGF0aW9ucyIsIm1heENvdW50Iiwib25Sb3dDbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiYW5ub3RhdGlvbnMtbGlzdC1jb21wb25lbnQiLDApLFZtKCJvblJvd0NsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5yb3dDbGlja2VkKGUpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFoKDQsImFzeW5jIiksQWgoNSwiYXN5bmMiKSxBaCg2LCJhc3luYyIpLEFoKDcsImFzeW5jIiksQWgoOCwiYXN5bmMiKSxBaCg5LCJhc3luYyIpLEFtKCkpLDImZSYmRG0oImFubm90YXRpb25zIixUaCgxLDksbi5maWx0ZXJlZEFubm90YXRpb25zJCkpKCJlbWJlZGRpbmdEYXRhIixUaCgyLDExLG4uZW1iZWRkaW5nRGF0YSQpKSgiYW5ub3RhdGlvbnNFeHBhbmRlZCIsVGgoMywxMyxuLmFubm90YXRpb25zRXhwYW5kZWQkKSkoIm51bUFubm90YXRpb25zIixUaCg0LDE1LG4ubnVtQW5ub3RhdGlvbnMkKSkoImFjdGl2ZU1ldHJpY3MiLFRoKDUsMTcsbi5hY3RpdmVNZXRyaWNzJCkpKCJudW1BY3RpdmVSdW5zIixUaCg2LDE5LG4ubnVtQWN0aXZlUnVucyQpKSgic29ydGVkQW5ub3RhdGlvbnMiLFRoKDcsMjEsbi5zb3J0ZWRBbm5vdGF0aW9ucyQpKSgic2VsZWN0ZWRBbm5vdGF0aW9ucyIsVGgoOCwyMyxuLnNlbGVjdGVkQW5ub3RhdGlvbnMkKSkoIm1heENvdW50IixUaCg5LDI1LG4ubWF4Q291bnQkKSl9LGRpcmVjdGl2ZXM6W0lfdF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEhfdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLWFubm90YXRpb25zLWxpc3QiLHRlbXBsYXRlOidcbiAgICA8YW5ub3RhdGlvbnMtbGlzdC1jb21wb25lbnRcbiAgICAgIFthbm5vdGF0aW9uc109ImZpbHRlcmVkQW5ub3RhdGlvbnMkIHwgYXN5bmMiXG4gICAgICBbZW1iZWRkaW5nRGF0YV09ImVtYmVkZGluZ0RhdGEkIHwgYXN5bmMiXG4gICAgICBbYW5ub3RhdGlvbnNFeHBhbmRlZF09ImFubm90YXRpb25zRXhwYW5kZWQkIHwgYXN5bmMiXG4gICAgICBbbnVtQW5ub3RhdGlvbnNdPSJudW1Bbm5vdGF0aW9ucyQgfCBhc3luYyJcbiAgICAgIFthY3RpdmVNZXRyaWNzXT0iYWN0aXZlTWV0cmljcyQgfCBhc3luYyJcbiAgICAgIFtudW1BY3RpdmVSdW5zXT0ibnVtQWN0aXZlUnVucyQgfCBhc3luYyJcbiAgICAgIFtzb3J0ZWRBbm5vdGF0aW9uc109InNvcnRlZEFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW3NlbGVjdGVkQW5ub3RhdGlvbnNdPSJzZWxlY3RlZEFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW21heENvdW50XT0ibWF4Q291bnQkIHwgYXN5bmMiXG4gICAgICAob25Sb3dDbGljayk9InJvd0NsaWNrZWQoJGV2ZW50KSJcbiAgICA+PC9hbm5vdGF0aW9ucy1saXN0LWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NvbnN0IEZfdD1bImNoYXJ0Il07Y2xhc3MgTF90e2NvbnN0cnVjdG9yKCl7dGhpcy53aWR0aD0wLHRoaXMuY2hhcnRXaWR0aD0wLHRoaXMuaGVpZ2h0PTMwMCx0aGlzLm1hcmdpbj17dG9wOjIwLHJpZ2h0OjQwLGJvdHRvbToyMCxsZWZ0OjQwfSx0aGlzLmNoYXJ0SGVpZ2h0PXRoaXMuaGVpZ2h0LXRoaXMubWFyZ2luLnRvcC10aGlzLm1hcmdpbi5ib3R0b219b25SZXNpemUodCl7dGhpcy5yZWRyYXcoKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN2Zz1KNCh0aGlzLnN2Z0VsZW1lbnQubmF0aXZlRWxlbWVudCksdGhpcy5tYWluQ29udGFpbmVyPXRoaXMuc3ZnLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke3RoaXMubWFyZ2luLmxlZnR9LCAke3RoaXMubWFyZ2luLnRvcH0pYCksdGhpcy5jb29yZGluYXRlc0dyb3VwPXRoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoImciKSx0aGlzLmxhYmVsc0dyb3VwPXRoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoImciKSx0aGlzLmF4aXNHcm91cD10aGlzLm1haW5Db250YWluZXIuYXBwZW5kKCJnIiksdGhpcy54U2NhbGU9VXR0KCkucGFkZGluZyguMSksdGhpcy55U2NhbGU9ZWV0KCkucmFuZ2UoW3RoaXMuY2hhcnRIZWlnaHQsMF0pLHRoaXMueUF4aXM9TjUodGhpcy55U2NhbGUpLHRoaXMucmVkcmF3KCl9bmdPbkNoYW5nZXModCl7dGhpcy5zdmcmJnRoaXMucmVkcmF3KCl9cmVkcmF3KCl7dGhpcy51cGRhdGVEaW1lbnNpb25zKCksdGhpcy51cGRhdGVBeGVzKCksdGhpcy5kcmF3KCl9dXBkYXRlRGltZW5zaW9ucygpe3RoaXMud2lkdGg9dGhpcy5zdmdFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGh8fDEwLHRoaXMuY2hhcnRXaWR0aD10aGlzLndpZHRoLXRoaXMubWFyZ2luLmxlZnQtdGhpcy5tYXJnaW4ucmlnaHR9dXBkYXRlQXhlcygpe3RoaXMueFNjYWxlLnJhbmdlUm91bmQoWzAsdGhpcy5jaGFydFdpZHRoXSkuZG9tYWluKHRoaXMuYWN0aXZlTWV0cmljcyksdGhpcy55U2NhbGUuZG9tYWluKFt0aGlzLmNvb3JkaW5hdGVEYXRhLmV4dHJlbWVzLm1pbix0aGlzLmNvb3JkaW5hdGVEYXRhLmV4dHJlbWVzLm1heF0pfWRyYXcoKXt0aGlzLmRyYXdBeGVzKCksdGhpcy5kcmF3QXhpc0xhYmVscygpLHRoaXMuZHJhd0Nvb3JkaW5hdGVzKCksdGhpcy5kcmF3TGFiZWxzKCl9ZHJhd0F4ZXMoKXtjb25zdCB0PXRoaXMuYXhpc0dyb3VwLnNlbGVjdEFsbCgiLmF4aXMteSIpLmRhdGEodGhpcy5hY3RpdmVNZXRyaWNzKTt0LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJheGlzLXkiKS5tZXJnZSh0KS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3JldHVybmB0cmFuc2xhdGUoJHt0aGlzLnhTY2FsZSh0KX0sIDApYH0uYmluZCh0aGlzKSkuY2FsbCh0aGlzLnlBeGlzKSx0LmV4aXQoKS5yZW1vdmUoKX1kcmF3QXhpc0xhYmVscygpe2NvbnN0IHQ9dGhpcy5heGlzR3JvdXAuc2VsZWN0QWxsKCIuYXhpcy1iZy10ZXh0IikuZGF0YSh0aGlzLmFjdGl2ZU1ldHJpY3MpO3QuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5hdHRyKCJjbGFzcyIsImF4aXMtYmctdGV4dCIpLmF0dHIoImZvbnQtc2l6ZSIsIjEzcHgiKS5hdHRyKCJzdHJva2Utd2lkdGgiLDIpLmF0dHIoInN0cm9rZS1saW5lam9pbiIsInJvdW5kIikuYXR0cigic3Ryb2tlIiwid2hpdGUiKS5tZXJnZSh0KS50ZXh0KCh0PT50KSkuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXtyZXR1cm5gdHJhbnNsYXRlKCR7dGhpcy54U2NhbGUodCktNX0sICR7dGhpcy55U2NhbGUodGhpcy5jb29yZGluYXRlRGF0YS5leHRyZW1lcy5taW4pfSkgcm90YXRlKC05MClgfS5iaW5kKHRoaXMpKSx0LmV4aXQoKS5yZW1vdmUoKTtjb25zdCBlPXRoaXMuYXhpc0dyb3VwLnNlbGVjdEFsbCgiLmF4aXMtdGV4dCIpLmRhdGEodGhpcy5hY3RpdmVNZXRyaWNzKTtlLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZm9udC1zaXplIiwiMTNweCIpLmF0dHIoImNsYXNzIiwiYXhpcy10ZXh0IikubWVyZ2UoZSkudGV4dCgodD0+dCkpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuYHRyYW5zbGF0ZSgke3RoaXMueFNjYWxlKHQpLTV9LCAke3RoaXMueVNjYWxlKHRoaXMuY29vcmRpbmF0ZURhdGEuZXh0cmVtZXMubWluKX0pIHJvdGF0ZSgtOTApYH0uYmluZCh0aGlzKSksZS5leGl0KCkucmVtb3ZlKCl9ZHJhd0Nvb3JkaW5hdGVzKCl7Y29uc3QgdD10aGlzLmNvb3JkaW5hdGVzR3JvdXAuc2VsZWN0QWxsKCIuY29vcmQiKS5kYXRhKHRoaXMuY29vcmRpbmF0ZURhdGEuY29vcmRpbmF0ZXMpO3QuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsImNvb3JkIikuYXR0cigiZmlsbCIsIm5vbmUiKS5tZXJnZSh0KS5hdHRyKCJkIix0aGlzLnBhdGguYmluZCh0aGlzKSkuYXR0cigic3Ryb2tlIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jb2xvclNjYWxlKHQucnVuSWQpfS5iaW5kKHRoaXMpKSx0LmV4aXQoKS5yZW1vdmUoKTtjb25zdCBlPXRoaXMuY29vcmRpbmF0ZXNHcm91cC5zZWxlY3RBbGwoIi5oaWRkZW5Db29yZCIpLmRhdGEodGhpcy5jb29yZGluYXRlRGF0YS5jb29yZGluYXRlcyk7ZS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiaGlkZGVuQ29vcmQiKS5hdHRyKCJzdHJva2Utd2lkdGgiLCIxMHB4IikuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJzdHJva2UiLCJyZ2JhKDAsIDAsIDAsIDAuMCkiKS5vbigibW91c2VvdmVyIix0aGlzLmhhbmRsZUNvb3JkaW5hdGVNb3VzZU92ZXIuYmluZCh0aGlzKSkub24oIm1vdXNlb3V0Iix0aGlzLmhhbmRsZUNvb3JkaW5hdGVNb3VzZU91dC5iaW5kKHRoaXMpKS5tZXJnZShlKS5hdHRyKCJkIix0aGlzLnBhdGguYmluZCh0aGlzKSksZS5leGl0KCkucmVtb3ZlKCl9cGF0aCh0KXtyZXR1cm4gdC52YWx1ZXMuc29ydCgoKHQsZSk9PnRoaXMuYWN0aXZlTWV0cmljcy5pbmRleE9mKHQubWV0cmljKS10aGlzLmFjdGl2ZU1ldHJpY3MuaW5kZXhPZihlLm1ldHJpYykpKSxQb3QoKSh0LnZhbHVlcy5tYXAoZnVuY3Rpb24odCl7bGV0IGU9dGhpcy55U2NhbGUodC5uUE1JVmFsdWUpO3JldHVyblt0aGlzLnhTY2FsZSh0Lm1ldHJpYyksZV19LmJpbmQodGhpcykpKX1oYW5kbGVDb29yZGluYXRlTW91c2VPdmVyKHQsZSl7dGhpcy5sYWJlbHNHcm91cC5zZWxlY3RBbGwoIi5jb29yZGluYXRlLWxhYmVsIikuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4hKGUuYW5ub3RhdGlvbj09PXQuYW5ub3RhdGlvbil9KSkuc3R5bGUoIm9wYWNpdHkiLC4xKSx0aGlzLmNvb3JkaW5hdGVzR3JvdXAuc2VsZWN0QWxsKCIuY29vcmQiKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiEoZS5hbm5vdGF0aW9uPT09dC5hbm5vdGF0aW9uKX0pKS5zdHlsZSgib3BhY2l0eSIsLjEpfWhhbmRsZUNvb3JkaW5hdGVNb3VzZU91dCgpe3RoaXMubGFiZWxzR3JvdXAuc2VsZWN0QWxsKCIuY29vcmRpbmF0ZS1sYWJlbCIpLnN0eWxlKCJvcGFjaXR5IiwxKSx0aGlzLmNvb3JkaW5hdGVzR3JvdXAuc2VsZWN0QWxsKCIuY29vcmQiKS5zdHlsZSgib3BhY2l0eSIsMSl9ZHJhd0xhYmVscygpe2NvbnN0IHQ9MzAvdGhpcy54U2NhbGUuc3RlcCgpLGU9dGhpcy5jb29yZGluYXRlRGF0YS5jb29yZGluYXRlcy5sZW5ndGg8MzA/dGhpcy5jb29yZGluYXRlRGF0YS5jb29yZGluYXRlczpbXSxuPXRoaXMubGFiZWxzR3JvdXAuc2VsZWN0QWxsKCIuY29vcmRpbmF0ZS1sYWJlbCIpLmRhdGEoZSk7bi5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIiwiY29vcmRpbmF0ZS1sYWJlbCIpLmF0dHIoImZvbnQtc2l6ZSIsIjEwcHgiKS5tZXJnZShuKS50ZXh0KChmdW5jdGlvbih0KXtyZXR1cm4gdC5hbm5vdGF0aW9ufSkpLmF0dHIoIngiLHRoaXMueFNjYWxlKHRoaXMuYWN0aXZlTWV0cmljc1swXSkrMzApLmF0dHIoInkiLGZ1bmN0aW9uKGUpe2NvbnN0IG49dGhpcy55U2NhbGUoZS52YWx1ZXNbMF0ublBNSVZhbHVlP2UudmFsdWVzWzBdLm5QTUlWYWx1ZTowKSxvPXRoaXMueVNjYWxlKGUudmFsdWVzWzFdLm5QTUlWYWx1ZT9lLnZhbHVlc1sxXS5uUE1JVmFsdWU6MCk7cmV0dXJuKDEtdCkqbit0Km99LmJpbmQodGhpcykpLG4uZXhpdCgpLnJlbW92ZSgpfX1MX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExfdCl9LExfdC7JtWNtcD10byh7dHlwZTpMX3Qsc2VsZWN0b3JzOltbInBhcmFsbGVsLWNvb3JkaW5hdGVzLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmUWgoRl90LDcsaGcpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4uc3ZnRWxlbWVudD10LmZpcnN0KX19LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZWbSgicmVzaXplIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlc2l6ZShlKX0pLCExLG9sKX0saW5wdXRzOnthY3RpdmVNZXRyaWNzOiJhY3RpdmVNZXRyaWNzIixjb29yZGluYXRlRGF0YToiY29vcmRpbmF0ZURhdGEiLHNpZGViYXJXaWR0aDoic2lkZWJhcldpZHRoIixjb2xvclNjYWxlOiJjb2xvclNjYWxlIn0sZmVhdHVyZXM6W0JvXSxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1sxLCJwYy1jaGFydCJdLFsiY2hhcnQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHFpKCksVG0oMCwic3ZnIiwwLDEpKX0sc3R5bGVzOlsiLnBjLWNoYXJ0W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MzAwcHg7d2lkdGg6MTAwJX0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoTF90LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InBhcmFsbGVsLWNvb3JkaW5hdGVzLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vcGFyYWxsZWxfY29vcmRpbmF0ZXNfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vcGFyYWxsZWxfY29vcmRpbmF0ZXNfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse2FjdGl2ZU1ldHJpY3M6W3t0eXBlOnh5fV0sY29vcmRpbmF0ZURhdGE6W3t0eXBlOnh5fV0sc2lkZWJhcldpZHRoOlt7dHlwZTp4eX1dLGNvbG9yU2NhbGU6W3t0eXBlOnh5fV0sc3ZnRWxlbWVudDpbe3R5cGU6WmEsYXJnczpbImNoYXJ0Iix7c3RhdGljOiEwLHJlYWQ6aGd9XX1dLG9uUmVzaXplOlt7dHlwZTp3eSxhcmdzOlsid2luZG93OnJlc2l6ZSIsWyIkZXZlbnQiXV19XX0pO2NsYXNzIEJfdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hY3RpdmVSdW5zJD10aGlzLnN0b3JlLnBpcGUoRncoTk4pKS5waXBlKEl0KCh0PT50P0FycmF5LmZyb20odC5lbnRyaWVzKCkpLmZpbHRlcigodD0+dFsxXSkpLm1hcCgodD0+dFswXSkpOltdKSkpLHRoaXMuYWN0aXZlTWV0cmljcyQ9V3QodGhpcy5zdG9yZS5zZWxlY3Qoc2J0KSx0aGlzLmFjdGl2ZVJ1bnMkLHRoaXMuc3RvcmUuc2VsZWN0KGdidCkpLnBpcGUoSXQoKChbdCxlLG5dKT0+e2xldCBvPVtdO2Zvcihjb25zdCBuIG9mIGUpdFtuXSYmKG89by5jb25jYXQodFtuXS5maWx0ZXIoKHQ9PmV5dCh0KSkpKSk7cmV0dXJuIG89Wy4uLm5ldyBTZXQoWy4uLk9iamVjdC5rZXlzKG4pLC4uLm9dKV0sby5tYXAoKHQ9Pm55dCh0KSkpfSkpKSx0aGlzLmNvb3JkaW5hdGVEYXRhJD1XdChbdGhpcy5zdG9yZS5zZWxlY3QocmJ0KSx0aGlzLnN0b3JlLnNlbGVjdChjYnQpLHRoaXMuYWN0aXZlUnVucyQsdGhpcy5hY3RpdmVNZXRyaWNzJF0pLnBpcGUoSXQoKChbdCxlLG4sb10pPT4oZnVuY3Rpb24gaSh0LGUsbixvKXtjb25zdCBpPVtdLGE9e21heDotMSxtaW46MX0scj1uZXcgU2V0KG4pLHM9bmV3IFNldChvKTtyZXR1cm4gMD09PXIuc2l6ZXx8MD09PXMuc2l6ZXx8MD09PU9iamVjdC5rZXlzKHQpLmxlbmd0aD97Y29vcmRpbmF0ZXM6W10sZXh0cmVtZXM6e21pbjotMSxtYXg6MX19OihlLmZvckVhY2goKGU9Pntjb25zdCBuPXt9O3RbZV0uZm9yRWFjaCgodD0+e3IuaGFzKHQucnVuKSYmcy5oYXModC5tZXRyaWMpJiYoblt0LnJ1bl0/blt0LnJ1bl0ucHVzaCh0KTpuW3QucnVuXT1bdF0sbnVsbCE9PXQublBNSVZhbHVlPyhhLm1heD1NYXRoLm1heChhLm1heCx0Lm5QTUlWYWx1ZSksYS5taW49TWF0aC5taW4oYS5taW4sdC5uUE1JVmFsdWUpKTooYS5tYXg9TWF0aC5tYXgoYS5tYXgsMCksYS5taW49TWF0aC5taW4oYS5taW4sMCkpKX0pKTtmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhuKSlpLnB1c2goe2Fubm90YXRpb246ZSxydW5JZDp0LHZhbHVlczpuW3RdfSl9KSksYS5tYXg8YS5taW4mJihhLm1heD0xLGEubWluPS0xKSx7Y29vcmRpbmF0ZXM6aSxleHRyZW1lczphfSl9KSh0LGUsbixvKSkpKSx0aGlzLnNpZGViYXJXaWR0aCQ9dGhpcy5zdG9yZS5zZWxlY3QoeGJ0KSx0aGlzLnJ1bkNvbG9yU2NhbGUkPXRoaXMuc3RvcmUuc2VsZWN0KHpOKS5waXBlKEl0KCh0PT5lPT57aWYoIXQuaGFzT3duUHJvcGVydHkoZSkpdGhyb3cgbmV3IEVycm9yKGBbQ29sb3Igc2NhbGVdIHVua25vd24gcnVuSWQ6ICR7ZX0uYCk7cmV0dXJuIHRbZV19KSkpfX1mdW5jdGlvbiBWX3QodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiw5KX1mdW5jdGlvbiBqX3QodCxlKXsxJnQmJlRtKDAsIm1hdC1pY29uIiwxMCl9ZnVuY3Rpb24gVV90KHQsZSl7MSZ0JiZUbSgwLCJucG1pLXBhcmFsbGVsLWNvb3JkaW5hdGVzIil9Ql90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCX3QpKFNtKEl3KSl9LEJfdC7JtWNtcD10byh7dHlwZTpCX3Qsc2VsZWN0b3JzOltbIm5wbWktcGFyYWxsZWwtY29vcmRpbmF0ZXMiXV0sZGVjbHM6NSx2YXJzOjEyLGNvbnN0czpbWzMsImFjdGl2ZU1ldHJpY3MiLCJjb29yZGluYXRlRGF0YSIsInNpZGViYXJXaWR0aCIsImNvbG9yU2NhbGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFRtKDAsInBhcmFsbGVsLWNvb3JkaW5hdGVzLWNvbXBvbmVudCIsMCksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSksMiZlJiZEbSgiYWN0aXZlTWV0cmljcyIsVGgoMSw0LG4uYWN0aXZlTWV0cmljcyQpKSgiY29vcmRpbmF0ZURhdGEiLFRoKDIsNixuLmNvb3JkaW5hdGVEYXRhJCkpKCJzaWRlYmFyV2lkdGgiLFRoKDMsOCxuLnNpZGViYXJXaWR0aCQpKSgiY29sb3JTY2FsZSIsVGgoNCwxMCxuLnJ1bkNvbG9yU2NhbGUkKSl9LGRpcmVjdGl2ZXM6W0xfdF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEJfdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLXBhcmFsbGVsLWNvb3JkaW5hdGVzIix0ZW1wbGF0ZTonXG4gICAgPHBhcmFsbGVsLWNvb3JkaW5hdGVzLWNvbXBvbmVudFxuICAgICAgW2FjdGl2ZU1ldHJpY3NdPSJhY3RpdmVNZXRyaWNzJCB8IGFzeW5jIlxuICAgICAgW2Nvb3JkaW5hdGVEYXRhXT0iY29vcmRpbmF0ZURhdGEkIHwgYXN5bmMiXG4gICAgICBbc2lkZWJhcldpZHRoXT0ic2lkZWJhcldpZHRoJCB8IGFzeW5jIlxuICAgICAgW2NvbG9yU2NhbGVdPSJydW5Db2xvclNjYWxlJCB8IGFzeW5jIlxuICAgID48L3BhcmFsbGVsLWNvb3JkaW5hdGVzLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIEdfdHtjb25zdHJ1Y3Rvcigpe3RoaXMub25DbGVhclNlbGVjdGVkQW5ub3RhdGlvbnM9bmV3IExoLHRoaXMub25Ub2dnbGVFeHBhbmRlZD1uZXcgTGh9fUdfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8R190KX0sR190Lsm1Y21wPXRvKHt0eXBlOkdfdCxzZWxlY3RvcnM6W1sic2VsZWN0ZWQtYW5ub3RhdGlvbnMtY29tcG9uZW50Il1dLGlucHV0czp7cGNFeHBhbmRlZDoicGNFeHBhbmRlZCIsc2VsZWN0ZWRBbm5vdGF0aW9uczoic2VsZWN0ZWRBbm5vdGF0aW9ucyJ9LG91dHB1dHM6e29uQ2xlYXJTZWxlY3RlZEFubm90YXRpb25zOiJvbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucyIsb25Ub2dnbGVFeHBhbmRlZDoib25Ub2dnbGVFeHBhbmRlZCJ9LGRlY2xzOjExLHZhcnM6NCxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdCxlO3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJDbGVhciBBbm5vdGF0aW9uIFNlbGVjdGlvbiIpOiRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgY2xlYXJzIHRoZSBhbm5vdGF0aW9uIHNlbGVjdGlvbi7ikJ8yYjUyMjg5ZjJjNGI3ZjViMTgyZWQyM2M5MTU0NzIyZWNkNDZhMmQ04pCfMjQ5NDY2MDUyMDM0MTMwODgzMDpDbGVhciBBbm5vdGF0aW9uIFNlbGVjdGlvbmAsZT0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiRXhwYW5kL0hpZGUgU2VsZWN0ZWQgQW5ub3RhdGlvbnMiKTokbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IGV4cGFuZHMgb3IgaGlkZXMgc2VsZWN0ZWQgYW5ub3RhdGlvbnMu4pCfOGY0YWQzMDVjMTllMzY1NWYzMTg5ZTNlMjY0ZTgzZmI3NmY3YmI5NeKQnzU2NzA3OTc3ODQwNzA5NTIwOTU6RXhwYW5kL0hpZGUgU2VsZWN0ZWQgQW5ub3RhdGlvbnNgLFtbMSwicGMtY29udGFpbmVyIl0sWzEsInBjLXRvb2xiYXIiXSxbMSwicGMtdGl0bGUiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsInRpdGxlIiwiRGVzZWxlY3RzIGFsbCBzZWxlY3RlZCBhbm5vdGF0aW9ucy4iLDEsImNsZWFyLWJ1dHRvbiIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsic3ZnSWNvbiIsImNsZWFyXzI0cHgiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGUsMSwiZXhwYW5kLWJ1dHRvbiIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJleHBhbmRfbGVzc18yNHB4IiwiY2xhc3MiLCJleHBhbmQtbGVzcy1pY29uIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vdEV4cGFuZGVkIiwiIl0sWzQsIm5nSWYiXSxbInN2Z0ljb24iLCJleHBhbmRfbGVzc18yNHB4IiwxLCJleHBhbmQtbGVzcy1pY29uIl0sWyJzdmdJY29uIiwiZXhwYW5kX21vcmVfMjRweCIsMSwiZXhwYW5kLWljb24iXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihSbSgwLCJkaXYiLDApLFJtKDEsImRpdiIsMSksUm0oMiwiaDMiLDIpLGt1KDMsIlNlbGVjdGVkIEFubm90YXRpb25zIiksQW0oKSxSbSg0LCJidXR0b24iLDMpLFZtKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucy5lbWl0KCl9KSksVG0oNSwibWF0LWljb24iLDQpLEFtKCksUm0oNiwiYnV0dG9uIiw1KSxWbSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub2dnbGVFeHBhbmRlZC5lbWl0KCl9KSksUXAoNyxWX3QsMSwwLCJtYXQtaWNvbiIsNiksUXAoOCxqX3QsMSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw3LGliKSxBbSgpLEFtKCksUXAoMTAsVV90LDEsMCwibnBtaS1wYXJhbGxlbC1jb29yZGluYXRlcyIsOCksQW0oKSksMiZlKXtjb25zdCB0PSRwKDkpO3JjKDQpLERtKCJkaXNhYmxlZCIsMD09PW4uc2VsZWN0ZWRBbm5vdGF0aW9ucy5sZW5ndGgpLHJjKDMpLERtKCJuZ0lmIixuLnBjRXhwYW5kZWQpKCJuZ0lmRWxzZSIsdCkscmMoMyksRG0oIm5nSWYiLG4ucGNFeHBhbmRlZCl9fSxkaXJlY3RpdmVzOltYSCxEVyxkTSxCX3RdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5wYy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlYmViZWJ9LnBjLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDJweDtwYWRkaW5nOjAgMTZweH0ucGMtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtkaXNwbGF5OmlubGluZTtmbGV4OjEgMX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoR190LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InNlbGVjdGVkLWFubm90YXRpb25zLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vc2VsZWN0ZWRfYW5ub3RhdGlvbnNfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vc2VsZWN0ZWRfYW5ub3RhdGlvbnNfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse3BjRXhwYW5kZWQ6W3t0eXBlOnh5fV0sc2VsZWN0ZWRBbm5vdGF0aW9uczpbe3R5cGU6eHl9XSxvbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9uczpbe3R5cGU6T3l9XSxvblRvZ2dsZUV4cGFuZGVkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgV190e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnBjRXhwYW5kZWQkPXRoaXMuc3RvcmUucGlwZShGdyhiYnQpKSx0aGlzLnNlbGVjdGVkQW5ub3RhdGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KGNidCl9Y2xlYXJTZWxlY3RlZEFubm90YXRpb25zKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChUYnQoKSl9dG9nZ2xlRXhwYW5kZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFVidCgpKX19ZnVuY3Rpb24gWV90KHQsZSl7MSZ0JiYoUm0oMCwiZGl2Iiw2KSxSbSgxLCJkaXYiLDcpLFRtKDIsIm5wbWktdmlvbGluLWZpbHRlcnMiLDgpLFJtKDMsImRpdiIsOSksVG0oNCwicnVucy1zZWxlY3RvciIpLEFtKCksQW0oKSxBbSgpKSwyJnQmJmR1KCJ3aWR0aCIsWW0oKS5zaWRlYmFyV2lkdGgsInB4Iil9ZnVuY3Rpb24gcV90KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwxMCksVm0oIm1vdXNlZG93biIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5yZXNpemVHcmFiYmVkLmVtaXQoKX0pKSxBbSgpfX1mdW5jdGlvbiBaX3QodCxlKXsxJnQmJihSbSgwLCJkaXYiLDExKSxUbSgxLCJucG1pLWFubm90YXRpb25zLWxpc3QiLDEyKSxUbSgyLCJucG1pLXNlbGVjdGVkLWFubm90YXRpb25zIiksQW0oKSl9ZnVuY3Rpb24gWF90KHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwxMyksa3UoMSwiWW91IG5lZWQgdG8gc2VsZWN0IGF0IGxlYXN0IG9uZSBydW4uIiksQW0oKSl9ZnVuY3Rpb24gS190KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwxNCksUm0oMSwiYnV0dG9uIiwxNSksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLnRvZ2dsZVNpZGViYXJFeHBhbmRlZC5lbWl0KCl9KSksVG0oMiwibWF0LWljb24iLDE2KSxBbSgpLEFtKCl9fVdfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8V190KShTbShJdykpfSxXX3QuybVjbXA9dG8oe3R5cGU6V190LHNlbGVjdG9yczpbWyJucG1pLXNlbGVjdGVkLWFubm90YXRpb25zIl1dLGRlY2xzOjMsdmFyczo2LGNvbnN0czpbWzMsInBjRXhwYW5kZWQiLCJzZWxlY3RlZEFubm90YXRpb25zIiwib25DbGVhclNlbGVjdGVkQW5ub3RhdGlvbnMiLCJvblRvZ2dsZUV4cGFuZGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJzZWxlY3RlZC1hbm5vdGF0aW9ucy1jb21wb25lbnQiLDApLFZtKCJvbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5jbGVhclNlbGVjdGVkQW5ub3RhdGlvbnMoKX0pKSgib25Ub2dnbGVFeHBhbmRlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi50b2dnbGVFeHBhbmRlZCgpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBbSgpKSwyJmUmJkRtKCJwY0V4cGFuZGVkIixUaCgxLDIsbi5wY0V4cGFuZGVkJCkpKCJzZWxlY3RlZEFubm90YXRpb25zIixUaCgyLDQsbi5zZWxlY3RlZEFubm90YXRpb25zJCkpfSxkaXJlY3RpdmVzOltHX3RdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXX3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1zZWxlY3RlZC1hbm5vdGF0aW9ucyIsdGVtcGxhdGU6J1xuICAgIDxzZWxlY3RlZC1hbm5vdGF0aW9ucy1jb21wb25lbnRcbiAgICAgIFtwY0V4cGFuZGVkXT0icGNFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFtzZWxlY3RlZEFubm90YXRpb25zXT0ic2VsZWN0ZWRBbm5vdGF0aW9ucyQgfCBhc3luYyJcbiAgICAgIChvbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucyk9ImNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucygpIlxuICAgICAgKG9uVG9nZ2xlRXhwYW5kZWQpPSJ0b2dnbGVFeHBhbmRlZCgpIlxuICAgID48L3NlbGVjdGVkLWFubm90YXRpb25zLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246em4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO2NsYXNzIEpfdHtjb25zdHJ1Y3Rvcigpe3RoaXMudG9nZ2xlU2lkZWJhckV4cGFuZGVkPW5ldyBMaCx0aGlzLnJlc2l6ZVRyaWdnZXJlZD1uZXcgTGgsdGhpcy5yZXNpemVHcmFiYmVkPW5ldyBMaCx0aGlzLnJlc2l6ZVJlbGVhc2VkPW5ldyBMaH19Sl90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxKX3QpfSxKX3QuybVjbXA9dG8oe3R5cGU6Sl90LHNlbGVjdG9yczpbWyJtYWluLWNvbXBvbmVudCJdXSxpbnB1dHM6e3J1bkFjdGl2ZToicnVuQWN0aXZlIixzaWRlYmFyRXhwYW5kZWQ6InNpZGViYXJFeHBhbmRlZCIsc2lkZWJhcldpZHRoOiJzaWRlYmFyV2lkdGgifSxvdXRwdXRzOnt0b2dnbGVTaWRlYmFyRXhwYW5kZWQ6InRvZ2dsZVNpZGViYXJFeHBhbmRlZCIscmVzaXplVHJpZ2dlcmVkOiJyZXNpemVUcmlnZ2VyZWQiLHJlc2l6ZUdyYWJiZWQ6InJlc2l6ZUdyYWJiZWQiLHJlc2l6ZVJlbGVhc2VkOiJyZXNpemVSZWxlYXNlZCJ9LGRlY2xzOjgsdmFyczo1LGNvbnN0czpmdW5jdGlvbigpe2xldCB0O3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlP2dvb2cuZ2V0TXNnKCJUb2dnbGUgU2lkZWJhciIpOiRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgdG9nZ2xlcyB0aGUgc2lkZWJhci7ikJ9mNjNiNTc5MzJkMTc5Y2NhNjJhYzlmY2FlNjNkZDdmNWU2ZmEzODlm4pCfNDQ4NTAwOTM0NzQ0NDcwNDg3ODpUb2dnbGUgU2lkZWJhcmAsW1sxLCJjb250ZW50IiwzLCJtb3VzZXVwIiwibW91c2Vtb3ZlIl0sWyJjbGFzcyIsInNpZGViYXItY29udGFpbmVyIiwzLCJ3aWR0aCIsNCwibmdJZiJdLFsiY2xhc3MiLCJncmFiYmVyIiwzLCJtb3VzZWRvd24iLDQsIm5nSWYiXSxbImNsYXNzIiwiYW5hbHlzaXMtY29udGFpbmVyIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vUnVuIiwiIl0sWyJjbGFzcyIsInNpZGUtdG9nZ2xlIiw0LCJuZ0lmIl0sWzEsInNpZGViYXItY29udGFpbmVyIl0sWzEsInNpZGViYXItY29udGVudHMiXSxbMSwidmlvbGluLWZpbHRlcnMiXSxbMSwicnVuLXNlbGVjdG9yIl0sWzEsImdyYWJiZXIiLDMsIm1vdXNlZG93biJdLFsxLCJhbmFseXNpcy1jb250YWluZXIiXSxbMSwiYW5ub3RhdGlvbnMtbGlzdCJdLFsxLCJub1J1biJdLFsxLCJzaWRlLXRvZ2dsZSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNoZXZyb25fcmlnaHRfMjRweCJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFRtKDAsIm5wbWktZGF0YS1zZWxlY3Rpb24iKSxSbSgxLCJkaXYiLDApLFZtKCJtb3VzZXVwIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnJlc2l6ZVJlbGVhc2VkLmVtaXQoKX0pKSgibW91c2Vtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5yZXNpemVUcmlnZ2VyZWQuZW1pdChlKX0pKSxRcCgyLFlfdCw1LDIsImRpdiIsMSksUXAoMyxxX3QsMSwwLCJkaXYiLDIpLFFwKDQsWl90LDMsMCwiZGl2IiwzKSxRcCg1LFhfdCwyLDAsIm5nLXRlbXBsYXRlIixudWxsLDQsaWIpLEFtKCksUXAoNyxLX3QsMywwLCJkaXYiLDUpKSwyJmUpe2NvbnN0IHQ9JHAoNik7cmMoMiksRG0oIm5nSWYiLG4uc2lkZWJhckV4cGFuZGVkKSxyYygxKSxEbSgibmdJZiIsbi5zaWRlYmFyRXhwYW5kZWQpLHJjKDEpLERtKCJuZ0lmIiwhMD09PW4ucnVuQWN0aXZlKSgibmdJZkVsc2UiLHQpLHJjKDMpLERtKCJuZ0lmIiwhbi5zaWRlYmFyRXhwYW5kZWQpfX0sZGlyZWN0aXZlczpbVXl0LGRNLEp5dCxjMixIX3QsV190LFhILERXXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4OjE7bWluLWhlaWdodDowcHg7d2lkdGg6MTAwJX0uc2lkZWJhci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0uc2lkZWJhci1jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MTUwcHh9LmFuYWx5c2lzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTtmbGV4OjEgMX0ucnVuLXNlbGVjdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXttYXgtaGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0udmlvbGluLWZpbHRlcnNbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6MHB4O3dpZHRoOjEwMCV9LnNpZGUtdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDozMHB4O2hlaWdodDozMHB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTBweDtib3R0b206MTBweDtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7Ym9yZGVyLXJhZGl1czozcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5ncmFiYmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtjb250ZW50OiIiO2N1cnNvcjpldy1yZXNpemU7aGVpZ2h0OjEwMCU7d2lkdGg6M3B4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0uYW5ub3RhdGlvbnMtbGlzdFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTttaW4taGVpZ2h0OjBweDtmbGV4OjEgMX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoSl90LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im1haW4tY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9tYWluX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL21haW5fY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwse3J1bkFjdGl2ZTpbe3R5cGU6eHl9XSxzaWRlYmFyRXhwYW5kZWQ6W3t0eXBlOnh5fV0sc2lkZWJhcldpZHRoOlt7dHlwZTp4eX1dLHRvZ2dsZVNpZGViYXJFeHBhbmRlZDpbe3R5cGU6T3l9XSxyZXNpemVUcmlnZ2VyZWQ6W3t0eXBlOk95fV0scmVzaXplR3JhYmJlZDpbe3R5cGU6T3l9XSxyZXNpemVSZWxlYXNlZDpbe3R5cGU6T3l9XX0pO2NsYXNzIFFfdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5ydW5BY3RpdmUkPXRoaXMuc3RvcmUucGlwZShGdyhOTikpLnBpcGUoSXQoKHQ9PiEhdCYmWy4uLnQudmFsdWVzKCldLmluY2x1ZGVzKCEwKSkpKSx0aGlzLnNpZGViYXJFeHBhbmRlZCQ9dGhpcy5zdG9yZS5waXBlKEZ3KF9idCkpLHRoaXMuc2lkZWJhcldpZHRoJD10aGlzLnN0b3JlLnBpcGUoRncoeGJ0KSksdGhpcy5yZXNpemluZz0hMX1vblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goV2J0KCkpfW9uUmVzaXplVHJpZ2dlcmVkKHQpe3RoaXMucmVzaXppbmcmJnRoaXMuc3RvcmUuZGlzcGF0Y2goWGJ0KHtzaWRlYmFyV2lkdGg6dC5jbGllbnRYfSkpfW9uUmVzaXplR3JhYmJlZCgpe3RoaXMucmVzaXppbmc9ITB9b25SZXNpemVSZWxlYXNlZCgpe3RoaXMucmVzaXppbmc9ITF9fWZ1bmN0aW9uICRfdCh0LGUpezEmdCYmKFJtKDAsImRpdiIsNiksUm0oMSwiZGl2Iiw3KSxSbSgyLCJkaXYiLDgpLFRtKDMsInJ1bnMtc2VsZWN0b3IiKSxBbSgpLEFtKCksQW0oKSksMiZ0JiZkdSgid2lkdGgiLFltKCkuc2lkZWJhcldpZHRoLCJweCIpfWZ1bmN0aW9uIHRDdCh0LGUpe2lmKDEmdCl7Y29uc3QgdD1IbSgpO1JtKDAsImRpdiIsOSksVm0oIm1vdXNlZG93biIsKGZ1bmN0aW9uIGUoKXtyZXR1cm4gaGkodCksWW0oKS5yZXNpemVHcmFiYmVkLmVtaXQoKX0pKSxBbSgpfX1mdW5jdGlvbiBlQ3QodCxlKXsxJnQmJihSbSgwLCJkaXYiLDEwKSxUbSgxLCJucG1pLWFubm90YXRpb25zLWxpc3QiLDExKSxUbSgyLCJucG1pLXNlbGVjdGVkLWFubm90YXRpb25zIiksQW0oKSl9ZnVuY3Rpb24gbkN0KHQsZSl7MSZ0JiYoUm0oMCwiZGl2IiwxMiksa3UoMSwiWW91IG5lZWQgdG8gc2VsZWN0IGF0IGxlYXN0IG9uZSBydW4uIiksQW0oKSl9ZnVuY3Rpb24gb0N0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PUhtKCk7Um0oMCwiZGl2IiwxMyksUm0oMSwiYnV0dG9uIiwxNCksVm0oImNsaWNrIiwoZnVuY3Rpb24gZSgpe3JldHVybiBoaSh0KSxZbSgpLnRvZ2dsZVNpZGViYXJFeHBhbmRlZC5lbWl0KCl9KSksVG0oMiwibWF0LWljb24iLDE1KSxBbSgpLEFtKCl9fVFfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UV90KShTbShJdykpfSxRX3QuybVjbXA9dG8oe3R5cGU6UV90LHNlbGVjdG9yczpbWyJucG1pLW1haW4iXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywicnVuQWN0aXZlIiwic2lkZWJhckV4cGFuZGVkIiwic2lkZWJhcldpZHRoIiwidG9nZ2xlU2lkZWJhckV4cGFuZGVkIiwicmVzaXplVHJpZ2dlcmVkIiwicmVzaXplR3JhYmJlZCIsInJlc2l6ZVJlbGVhc2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihSbSgwLCJtYWluLWNvbXBvbmVudCIsMCksVm0oInRvZ2dsZVNpZGViYXJFeHBhbmRlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpfSkpKCJyZXNpemVUcmlnZ2VyZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUmVzaXplVHJpZ2dlcmVkKGUpfSkpKCJyZXNpemVHcmFiYmVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVzaXplR3JhYmJlZCgpfSkpKCJyZXNpemVSZWxlYXNlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlc2l6ZVJlbGVhc2VkKCl9KSksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQW0oKSksMiZlJiZEbSgicnVuQWN0aXZlIixUaCgxLDMsbi5ydW5BY3RpdmUkKSkoInNpZGViYXJFeHBhbmRlZCIsVGgoMiw1LG4uc2lkZWJhckV4cGFuZGVkJCkpKCJzaWRlYmFyV2lkdGgiLFRoKDMsNyxuLnNpZGViYXJXaWR0aCQpKX0sZGlyZWN0aXZlczpbSl90XSxwaXBlczpbd01dLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUV90LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6Im5wbWktbWFpbiIsdGVtcGxhdGU6J1xuICAgIDxtYWluLWNvbXBvbmVudFxuICAgICAgW3J1bkFjdGl2ZV09InJ1bkFjdGl2ZSQgfCBhc3luYyJcbiAgICAgIFtzaWRlYmFyRXhwYW5kZWRdPSJzaWRlYmFyRXhwYW5kZWQkIHwgYXN5bmMiXG4gICAgICBbc2lkZWJhcldpZHRoXT0ic2lkZWJhcldpZHRoJCB8IGFzeW5jIlxuICAgICAgKHRvZ2dsZVNpZGViYXJFeHBhbmRlZCk9Im9uVG9nZ2xlU2lkZWJhckV4cGFuZGVkKCkiXG4gICAgICAocmVzaXplVHJpZ2dlcmVkKT0ib25SZXNpemVUcmlnZ2VyZWQoJGV2ZW50KSJcbiAgICAgIChyZXNpemVHcmFiYmVkKT0ib25SZXNpemVHcmFiYmVkKCkiXG4gICAgICAocmVzaXplUmVsZWFzZWQpPSJvblJlc2l6ZVJlbGVhc2VkKCkiXG4gICAgPjwvbWFpbi1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSxudWxsKTtjbGFzcyBpQ3R7Y29uc3RydWN0b3IoKXt0aGlzLnRvZ2dsZVNpZGViYXJFeHBhbmRlZD1uZXcgTGgsdGhpcy5yZXNpemVUcmlnZ2VyZWQ9bmV3IExoLHRoaXMucmVzaXplR3JhYmJlZD1uZXcgTGgsdGhpcy5yZXNpemVSZWxlYXNlZD1uZXcgTGh9fWlDdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aUN0KX0saUN0Lsm1Y21wPXRvKHt0eXBlOmlDdCxzZWxlY3RvcnM6W1siZW1iZWRkaW5ncy1jb21wb25lbnQiXV0saW5wdXRzOntydW5BY3RpdmU6InJ1bkFjdGl2ZSIsc2lkZWJhckV4cGFuZGVkOiJzaWRlYmFyRXhwYW5kZWQiLHNpZGViYXJXaWR0aDoic2lkZWJhcldpZHRoIn0sb3V0cHV0czp7dG9nZ2xlU2lkZWJhckV4cGFuZGVkOiJ0b2dnbGVTaWRlYmFyRXhwYW5kZWQiLHJlc2l6ZVRyaWdnZXJlZDoicmVzaXplVHJpZ2dlcmVkIixyZXNpemVHcmFiYmVkOiJyZXNpemVHcmFiYmVkIixyZXNpemVSZWxlYXNlZDoicmVzaXplUmVsZWFzZWQifSxkZWNsczo4LHZhcnM6NSxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gdD0idW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZT9nb29nLmdldE1zZygiVG9nZ2xlIFNpZGViYXIiKTokbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IHRvZ2dsZXMgdGhlIHNpZGViYXIu4pCfZjYzYjU3OTMyZDE3OWNjYTYyYWM5ZmNhZTYzZGQ3ZjVlNmZhMzg5ZuKQnzQ0ODUwMDkzNDc0NDQ3MDQ4Nzg6VG9nZ2xlIFNpZGViYXJgLFtbMSwiY29udGVudCIsMywibW91c2V1cCIsIm1vdXNlbW92ZSJdLFsiY2xhc3MiLCJzaWRlYmFyLWNvbnRhaW5lciIsMywid2lkdGgiLDQsIm5nSWYiXSxbImNsYXNzIiwiZ3JhYmJlciIsMywibW91c2Vkb3duIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImFuYWx5c2lzLWNvbnRhaW5lciIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub1J1biIsIiJdLFsiY2xhc3MiLCJzaWRlLXRvZ2dsZSIsNCwibmdJZiJdLFsxLCJzaWRlYmFyLWNvbnRhaW5lciJdLFsxLCJzaWRlYmFyLWNvbnRlbnRzIl0sWzEsInJ1bi1zZWxlY3RvciJdLFsxLCJncmFiYmVyIiwzLCJtb3VzZWRvd24iXSxbMSwiYW5hbHlzaXMtY29udGFpbmVyIl0sWzEsImFubm90YXRpb25zLWxpc3QiXSxbMSwibm9SdW4iXSxbMSwic2lkZS10b2dnbGUiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywiY2xpY2siXSxbInN2Z0ljb24iLCJjaGV2cm9uX3JpZ2h0XzI0cHgiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihUbSgwLCJucG1pLWRhdGEtc2VsZWN0aW9uIiksUm0oMSwiZGl2IiwwKSxWbSgibW91c2V1cCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5yZXNpemVSZWxlYXNlZC5lbWl0KCl9KSkoIm1vdXNlbW92ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ucmVzaXplVHJpZ2dlcmVkLmVtaXQoZSl9KSksUXAoMiwkX3QsNCwyLCJkaXYiLDEpLFFwKDMsdEN0LDEsMCwiZGl2IiwyKSxRcCg0LGVDdCwzLDAsImRpdiIsMyksUXAoNSxuQ3QsMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LGliKSxBbSgpLFFwKDcsb0N0LDMsMCwiZGl2Iiw1KSksMiZlKXtjb25zdCB0PSRwKDYpO3JjKDIpLERtKCJuZ0lmIixuLnNpZGViYXJFeHBhbmRlZCkscmMoMSksRG0oIm5nSWYiLG4uc2lkZWJhckV4cGFuZGVkKSxyYygxKSxEbSgibmdJZiIsITA9PT1uLnJ1bkFjdGl2ZSkoIm5nSWZFbHNlIix0KSxyYygzKSxEbSgibmdJZiIsIW4uc2lkZWJhckV4cGFuZGVkKX19LGRpcmVjdGl2ZXM6W1V5dCxkTSxjMixIX3QsV190LFhILERXXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4OjE7bWluLWhlaWdodDowcHg7d2lkdGg6MTAwJX0uc2lkZWJhci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0uc2lkZWJhci1jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MTUwcHh9LmFuYWx5c2lzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTtmbGV4OjEgMX0ucnVuLXNlbGVjdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXttYXgtaGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uc2lkZS10b2dnbGVbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMHB4O2JvdHRvbToxMHB4O2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjtib3JkZXItcmFkaXVzOjNweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmdyYWJiZXJbX25nY29udGVudC0lQ09NUCVde2NvbnRlbnQ6IiI7Y3Vyc29yOmV3LXJlc2l6ZTtoZWlnaHQ6MTAwJTt3aWR0aDozcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5hbm5vdGF0aW9ucy1saXN0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO21pbi1oZWlnaHQ6MHB4O2ZsZXg6MSAxfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChpQ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoiZW1iZWRkaW5ncy1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL2VtYmVkZGluZ3NfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vZW1iZWRkaW5nc19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cnVuQWN0aXZlOlt7dHlwZTp4eX1dLHNpZGViYXJFeHBhbmRlZDpbe3R5cGU6eHl9XSxzaWRlYmFyV2lkdGg6W3t0eXBlOnh5fV0sdG9nZ2xlU2lkZWJhckV4cGFuZGVkOlt7dHlwZTpPeX1dLHJlc2l6ZVRyaWdnZXJlZDpbe3R5cGU6T3l9XSxyZXNpemVHcmFiYmVkOlt7dHlwZTpPeX1dLHJlc2l6ZVJlbGVhc2VkOlt7dHlwZTpPeX1dfSk7Y2xhc3MgYUN0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnJ1bkFjdGl2ZSQ9dGhpcy5zdG9yZS5waXBlKEZ3KE5OKSkucGlwZShJdCgodD0+ISF0JiZbLi4udC52YWx1ZXMoKV0uaW5jbHVkZXMoITApKSkpLHRoaXMuc2lkZWJhckV4cGFuZGVkJD10aGlzLnN0b3JlLnBpcGUoRncod2J0KSksdGhpcy5zaWRlYmFyV2lkdGgkPXRoaXMuc3RvcmUucGlwZShGdyhQYnQpKSx0aGlzLnJlc2l6aW5nPSExfW9uVG9nZ2xlU2lkZWJhckV4cGFuZGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChKYnQoKSl9b25SZXNpemVUcmlnZ2VyZWQodCl7dGhpcy5yZXNpemluZyYmdGhpcy5zdG9yZS5kaXNwYXRjaChLYnQoe3NpZGViYXJXaWR0aDp0LmNsaWVudFh9KSl9b25SZXNpemVHcmFiYmVkKCl7dGhpcy5yZXNpemluZz0hMH1vblJlc2l6ZVJlbGVhc2VkKCl7dGhpcy5yZXNpemluZz0hMX19ZnVuY3Rpb24gckN0KHQsZSl7MSZ0JiZUbSgwLCJucG1pLWluYWN0aXZlLXZpZXciKX1mdW5jdGlvbiBzQ3QodCxlKXsxJnQmJlRtKDAsIm5wbWktbWFpbiIpfWZ1bmN0aW9uIGxDdCh0LGUpezEmdCYmVG0oMCwibnBtaS1lbWJlZGRpbmdzIil9ZnVuY3Rpb24gY0N0KHQsZSl7aWYoMSZ0JiYoUXAoMCxzQ3QsMSwwLCJucG1pLW1haW4iLDMpLFFwKDEsbEN0LDEsMCwibnBtaS1lbWJlZGRpbmdzIiwzKSksMiZ0KXtjb25zdCB0PVltKCk7RG0oIm5nSWYiLHQuYWN0aXZlVmlldz09PXQuVmlld0FjdGl2ZS5ERUZBVUxUKSxyYygxKSxEbSgibmdJZiIsdC5hY3RpdmVWaWV3PT09dC5WaWV3QWN0aXZlLkVNQkVERElOR1MpfX1hQ3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGFDdCkoU20oSXcpKX0sYUN0Lsm1Y21wPXRvKHt0eXBlOmFDdCxzZWxlY3RvcnM6W1sibnBtaS1lbWJlZGRpbmdzIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsInJ1bkFjdGl2ZSIsInNpZGViYXJFeHBhbmRlZCIsInNpZGViYXJXaWR0aCIsInRvZ2dsZVNpZGViYXJFeHBhbmRlZCIsInJlc2l6ZVRyaWdnZXJlZCIsInJlc2l6ZUdyYWJiZWQiLCJyZXNpemVSZWxlYXNlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoUm0oMCwiZW1iZWRkaW5ncy1jb21wb25lbnQiLDApLFZtKCJ0b2dnbGVTaWRlYmFyRXhwYW5kZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub2dnbGVTaWRlYmFyRXhwYW5kZWQoKX0pKSgicmVzaXplVHJpZ2dlcmVkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlc2l6ZVRyaWdnZXJlZChlKX0pKSgicmVzaXplR3JhYmJlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlc2l6ZUdyYWJiZWQoKX0pKSgicmVzaXplUmVsZWFzZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZXNpemVSZWxlYXNlZCgpfSkpLEFoKDEsImFzeW5jIiksQWgoMiwiYXN5bmMiKSxBaCgzLCJhc3luYyIpLEFtKCkpLDImZSYmRG0oInJ1bkFjdGl2ZSIsVGgoMSwzLG4ucnVuQWN0aXZlJCkpKCJzaWRlYmFyRXhwYW5kZWQiLFRoKDIsNSxuLnNpZGViYXJFeHBhbmRlZCQpKSgic2lkZWJhcldpZHRoIixUaCgzLDcsbi5zaWRlYmFyV2lkdGgkKSl9LGRpcmVjdGl2ZXM6W2lDdF0scGlwZXM6W3dNXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGFDdCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJucG1pLWVtYmVkZGluZ3MiLHRlbXBsYXRlOidcbiAgICA8ZW1iZWRkaW5ncy1jb21wb25lbnRcbiAgICAgIFtydW5BY3RpdmVdPSJydW5BY3RpdmUkIHwgYXN5bmMiXG4gICAgICBbc2lkZWJhckV4cGFuZGVkXT0ic2lkZWJhckV4cGFuZGVkJCB8IGFzeW5jIlxuICAgICAgW3NpZGViYXJXaWR0aF09InNpZGViYXJXaWR0aCQgfCBhc3luYyJcbiAgICAgICh0b2dnbGVTaWRlYmFyRXhwYW5kZWQpPSJvblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpIlxuICAgICAgKHJlc2l6ZVRyaWdnZXJlZCk9Im9uUmVzaXplVHJpZ2dlcmVkKCRldmVudCkiXG4gICAgICAocmVzaXplR3JhYmJlZCk9Im9uUmVzaXplR3JhYmJlZCgpIlxuICAgICAgKHJlc2l6ZVJlbGVhc2VkKT0ib25SZXNpemVSZWxlYXNlZCgpIlxuICAgID48L2VtYmVkZGluZ3MtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd31dfSksbnVsbCk7Y2xhc3MgZEN0e2NvbnN0cnVjdG9yKCl7dGhpcy5WaWV3QWN0aXZlPWVidH19ZEN0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkQ3QpfSxkQ3QuybVjbXA9dG8oe3R5cGU6ZEN0LHNlbGVjdG9yczpbWyJucG1pLWNvbXBvbmVudCJdXSxpbnB1dHM6e3J1bnM6InJ1bnMiLGFjdGl2ZVZpZXc6ImFjdGl2ZVZpZXcifSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1sxLCJucG1pLWNvbnRhaW5lciJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImRhdGFBdmFpbGFibGUiLCIiXSxbNCwibmdJZiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoUm0oMCwiZGl2IiwwKSxRcCgxLHJDdCwxLDAsIm5wbWktaW5hY3RpdmUtdmlldyIsMSksUXAoMixjQ3QsMiwyLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLGliKSxBbSgpKSwyJmUpe2NvbnN0IHQ9JHAoMyk7cmMoMSksRG0oIm5nSWYiLDA9PT1uLnJ1bnMuc2l6ZSkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W2RNLG9idCxRX3QsYUN0XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJX0ubnBtaS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkQ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL25wbWlfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vbnBtaV9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCx7cnVuczpbe3R5cGU6eHl9XSxhY3RpdmVWaWV3Olt7dHlwZTp4eX1dfSk7Y2xhc3MgcEN0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnJ1bnMkPXRoaXMuc3RvcmUucGlwZShGdyhOTikpLHRoaXMuYWN0aXZlVmlldyQ9dGhpcy5zdG9yZS5waXBlKEZ3KHZidCkpfW5nT25Jbml0KCl7dGhpcy5zdG9yZS5kaXNwYXRjaChrYnQoKSl9fXBDdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cEN0KShTbShJdykpfSxwQ3QuybVjbXA9dG8oe3R5cGU6cEN0LHNlbGVjdG9yczpbWyJucG1pIl1dLGRlY2xzOjMsdmFyczo2LGNvbnN0czpbWzMsInJ1bnMiLCJhY3RpdmVWaWV3Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJucG1pLWNvbXBvbmVudCIsMCksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpKSwyJmUmJkRtKCJydW5zIixUaCgxLDIsbi5ydW5zJCkpKCJhY3RpdmVWaWV3IixUaCgyLDQsbi5hY3RpdmVWaWV3JCkpfSxkaXJlY3RpdmVzOltkQ3RdLHBpcGVzOlt3TV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChwQ3QsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoibnBtaSIsdGVtcGxhdGU6J1xuICAgIDxucG1pLWNvbXBvbmVudFxuICAgICAgW3J1bnNdPSJydW5zJCB8IGFzeW5jIlxuICAgICAgW2FjdGl2ZVZpZXddPSJhY3RpdmVWaWV3JCB8IGFzeW5jIlxuICAgID48L25wbWktY29tcG9uZW50PlxuICAnfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SXd9XX0pLG51bGwpO3ZhciBtQ3Q9e30sdUN0PXt9LGZDdD17fSxnQ3Q9e30saEN0PVF2JiZRdi5fX3ZhbHVlc3x8ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdLG49MDtyZXR1cm4gZT9lLmNhbGwodCk6e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCYmbj49dC5sZW5ndGgmJih0PXZvaWQgMCkse3ZhbHVlOnQmJnRbbisrXSxkb25lOiF0fX19fTtmdW5jdGlvbiBiQ3QodCxlKXtyZXR1cm4gTWF0aC5mbG9vcihlKCkqdCl9ZnVuY3Rpb24geUN0KHQpe2Zvcih2YXIgZT1bXSxuPTA7bjx0O24rKyllLnB1c2godm9pZCAwKTtyZXR1cm4gZX1mdW5jdGlvbiBfQ3QodCxlKXtyZXR1cm4geUN0KHQpLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gZX0pKX1mdW5jdGlvbiBDQ3QodCl7cmV0dXJuIF9DdCh0LDApfWZ1bmN0aW9uIE1DdCh0KXtyZXR1cm4gdC5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZ0N0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxnQ3QudGF1UmFuZEludD1iQ3QsZ0N0LnRhdVJhbmQ9ZnVuY3Rpb24gdkN0KHQpe3JldHVybiB0KCl9LGdDdC5ub3JtPWZ1bmN0aW9uIHhDdCh0KXt2YXIgZSxuLG89MDt0cnl7Zm9yKHZhciBpPWhDdCh0KSxhPWkubmV4dCgpOyFhLmRvbmU7YT1pLm5leHQoKSlvKz1NYXRoLnBvdyhhLnZhbHVlLDIpfWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1yZXR1cm4gTWF0aC5zcXJ0KG8pfSxnQ3QuZW1wdHk9eUN0LGdDdC5yYW5nZT1mdW5jdGlvbiBPQ3QodCl7cmV0dXJuIHlDdCh0KS5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSl9LGdDdC5maWxsZWQ9X0N0LGdDdC56ZXJvcz1DQ3QsZ0N0Lm9uZXM9ZnVuY3Rpb24gUEN0KHQpe3JldHVybiBfQ3QodCwxKX0sZ0N0LmxpbmVhcj1mdW5jdGlvbiB3Q3QodCxlLG4pe3JldHVybiB5Q3QobikubWFwKChmdW5jdGlvbihvLGkpe3JldHVybiB0K2kqKChlLXQpLyhuLTEpKX0pKX0sZ0N0LnN1bT1NQ3QsZ0N0Lm1lYW49ZnVuY3Rpb24ga0N0KHQpe3JldHVybiBNQ3QodCkvdC5sZW5ndGh9LGdDdC5tYXg9ZnVuY3Rpb24gU0N0KHQpe2Zvcih2YXIgZT0wLG49MDtuPHQubGVuZ3RoO24rKyllPXRbbl0+ZT90W25dOmU7cmV0dXJuIGV9LGdDdC5tYXgyZD1mdW5jdGlvbiBEQ3QodCl7Zm9yKHZhciBlPTAsbj0wO248dC5sZW5ndGg7bisrKWZvcih2YXIgbz0wO288dFtuXS5sZW5ndGg7bysrKWU9dFtuXVtvXT5lP3Rbbl1bb106ZTtyZXR1cm4gZX0sZ0N0LnJlamVjdGlvblNhbXBsZT1mdW5jdGlvbiBFQ3QodCxlLG4pe2Zvcih2YXIgbz1DQ3QodCksaT0wO2k8dDtpKyspZm9yKHZhciBhPSEwO2E7KXtmb3IodmFyIHI9YkN0KGUsbikscz0hMSxsPTA7bDxpO2wrKylpZihyPT09b1tsXSl7cz0hMDticmVha31zfHwoYT0hMSksb1tpXT1yfXJldHVybiBvfSxnQ3QucmVzaGFwZTJkPWZ1bmN0aW9uIFJDdCh0LGUsbil7dmFyIG89W10saT0wO2lmKHQubGVuZ3RoIT09ZSpuKXRocm93IG5ldyBFcnJvcigiQXJyYXkgZGltZW5zaW9ucyBtdXN0IG1hdGNoIGlucHV0IGxlbmd0aC4iKTtmb3IodmFyIGE9MDthPGU7YSsrKXtmb3IodmFyIHI9W10scz0wO3M8bjtzKyspci5wdXNoKHRbaV0pLGkrPTE7by5wdXNoKHIpfXJldHVybiBvfTt2YXIgQUN0PVF2JiZRdi5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZihudWxsIT10KWZvcih2YXIgbiBpbiB0KU9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlLmRlZmF1bHQ9dCxlfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZkN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgVEN0PUFDdChnQ3QpO2Z1bmN0aW9uIE5DdCh0LGUpe3ZhciBuPWZ1bmN0aW9uKG4pe3JldHVybiBUQ3QuZW1wdHkodCkubWFwKChmdW5jdGlvbigpe3JldHVybiBUQ3QuZmlsbGVkKGUsbil9KSl9LG89W107cmV0dXJuIG8ucHVzaChuKC0xKSksby5wdXNoKG4oMS8wKSksby5wdXNoKG4oMCkpLG99ZnVuY3Rpb24gekN0KHQsZSxuLG8saSl7ZT1NYXRoLmZsb29yKGUpO3ZhciBhPXRbMF1bZV07aWYobj49dFsxXVtlXVswXSlyZXR1cm4gMDtmb3IodmFyIHI9MDtyPGEubGVuZ3RoO3IrKylpZihvPT09YVtyXSlyZXR1cm4gMDtyZXR1cm4gSUN0KHQsZSxuLG8saSl9ZnVuY3Rpb24gSUN0KHQsZSxuLG8saSl7dmFyIGE9dFswXVtlXSxyPXRbMV1bZV0scz10WzJdW2VdO2lmKG4+PXJbMF0pcmV0dXJuIDA7clswXT1uLGFbMF09byxzWzBdPWk7Zm9yKHZhciBsPTAsYz0wOzspe3ZhciBkPTIqbCsxLHA9ZCsxLG09dFswXVswXS5sZW5ndGg7aWYoZD49bSlicmVhaztpZihwPj1tKXtpZighKHJbZF0+bikpYnJlYWs7Yz1kfWVsc2UgaWYocltkXT49cltwXSl7aWYoIShuPHJbZF0pKWJyZWFrO2M9ZH1lbHNle2lmKCEobjxyW3BdKSlicmVhaztjPXB9cltsXT1yW2NdLGFbbF09YVtjXSxzW2xdPXNbY10sbD1jfXJldHVybiByW2xdPW4sYVtsXT1vLHNbbF09aSwxfWZ1bmN0aW9uIEhDdCh0LGUsbixvKXtmb3IoOzIqbysxPG47KXt2YXIgaT0yKm8rMSxhPWkrMSxyPW87aWYodFtyXTx0W2ldJiYocj1pKSxhPG4mJnRbcl08dFthXSYmKHI9YSkscj09PW8pYnJlYWs7dmFyIHM9dFtvXTt0W29dPXRbcl0sdFtyXT1zO3ZhciBsPWVbb107ZVtvXT1lW3JdLGVbcl09bCxvPXJ9fWZDdC5tYWtlSGVhcD1OQ3QsZkN0LnJlamVjdGlvblNhbXBsZT1mdW5jdGlvbiBGQ3QodCxlLG4pe2Zvcih2YXIgbz1UQ3QuemVyb3ModCksaT0wO2k8dDtpKyspe2Zvcih2YXIgYT0hMCxyPTA7YTspe3I9VEN0LnRhdVJhbmRJbnQoZSxuKTtmb3IodmFyIHM9ITEsbD0wO2w8aTtsKyspaWYocj09PW9bbF0pe3M9ITA7YnJlYWt9c3x8KGE9ITEpfW9baV09cn1yZXR1cm4gb30sZkN0LmhlYXBQdXNoPXpDdCxmQ3QudW5jaGVja2VkSGVhcFB1c2g9SUN0LGZDdC5idWlsZENhbmRpZGF0ZXM9ZnVuY3Rpb24gTEN0KHQsZSxuLG8saSl7Zm9yKHZhciBhPU5DdChlLG8pLHI9MDtyPGU7cisrKWZvcih2YXIgcz0wO3M8bjtzKyspaWYoISh0WzBdW3JdW3NdPDApKXt2YXIgbD10WzBdW3JdW3NdLGM9dFsyXVtyXVtzXSxkPVRDdC50YXVSYW5kKGkpO3pDdChhLHIsZCxsLGMpLHpDdChhLGwsZCxyLGMpLHRbMl1bcl1bc109MH1yZXR1cm4gYX0sZkN0LmRlaGVhcFNvcnQ9ZnVuY3Rpb24gQkN0KHQpe2Zvcih2YXIgZT10WzBdLG49dFsxXSxvPTA7bzxlLmxlbmd0aDtvKyspZm9yKHZhciBpPWVbb10sYT1uW29dLHI9MDtyPGkubGVuZ3RoLTE7cisrKXt2YXIgcz1pLmxlbmd0aC1yLTEsbD1hLmxlbmd0aC1yLTEsYz1pWzBdO2lbMF09aVtzXSxpW3NdPWM7dmFyIGQ9YVswXTthWzBdPWFbbF0sYVtsXT1kLEhDdChhLGksbCwwKX1yZXR1cm57aW5kaWNlczplLHdlaWdodHM6bn19LGZDdC5zbWFsbGVzdEZsYWdnZWQ9ZnVuY3Rpb24gVkN0KHQsZSl7Zm9yKHZhciBuPXRbMF1bZV0sbz10WzFdW2VdLGk9dFsyXVtlXSxhPTEvMCxyPS0xLHM9MDtzPm4ubGVuZ3RoO3MrKykxPT09aVtzXSYmb1tzXTxhJiYoYT1vW3NdLHI9cyk7cmV0dXJuIHI+PTA/KGlbcl09MCxNYXRoLmZsb29yKG5bcl0pKTotMX07dmFyIGpDdCxVQ3Q9e30sR0N0PVF2JiZRdi5fX3JlYWR8fGZ1bmN0aW9uKHQsZSl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFuKXJldHVybiB0O3ZhciBvLGksYT1uLmNhbGwodCkscj1bXTt0cnl7Zm9yKDsodm9pZCAwPT09ZXx8ZS0tID4wKSYmIShvPWEubmV4dCgpKS5kb25lOylyLnB1c2goby52YWx1ZSl9Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49YS5yZXR1cm4pJiZuLmNhbGwoYSl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiByfSxXQ3Q9UXYmJlF2Ll9fdmFsdWVzfHxmdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl0sbj0wO3JldHVybiBlP2UuY2FsbCh0KTp7bmV4dDpmdW5jdGlvbigpe3JldHVybiB0JiZuPj10Lmxlbmd0aCYmKHQ9dm9pZCAwKSx7dmFsdWU6dCYmdFtuKytdLGRvbmU6IXR9fX19LFlDdD1RdiYmUXYuX19pbXBvcnRTdGFyfHxmdW5jdGlvbih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYobnVsbCE9dClmb3IodmFyIG4gaW4gdClPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKTtyZXR1cm4gZS5kZWZhdWx0PXQsZX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFVDdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHFDdD1ZQ3QoZ0N0KSxaQ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixvKXtpZih0aGlzLmVudHJpZXM9bmV3IE1hcCx0aGlzLm5Sb3dzPTAsdGhpcy5uQ29scz0wLHQubGVuZ3RoIT09ZS5sZW5ndGh8fHQubGVuZ3RoIT09bi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJyb3dzLCBjb2xzIGFuZCB2YWx1ZXMgYXJyYXlzIG11c3QgYWxsIGhhdmUgdGhlIHNhbWUgbGVuZ3RoIik7dGhpcy5uUm93cz1vWzBdLHRoaXMubkNvbHM9b1sxXTtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIGE9dFtpXSxyPWVbaV07dGhpcy5jaGVja0RpbXMoYSxyKTt2YXIgcz10aGlzLm1ha2VLZXkoYSxyKTt0aGlzLmVudHJpZXMuc2V0KHMse3ZhbHVlOm5baV0scm93OmEsY29sOnJ9KX19cmV0dXJuIHQucHJvdG90eXBlLm1ha2VLZXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCsiOiIrZX0sdC5wcm90b3R5cGUuY2hlY2tEaW1zPWZ1bmN0aW9uKHQsZSl7aWYoISh0PHRoaXMublJvd3MmJmU8dGhpcy5uQ29scykpdGhyb3cgbmV3IEVycm9yKCJyb3cgYW5kL29yIGNvbCBzcGVjaWZpZWQgb3V0c2lkZSBvZiBtYXRyaXggZGltZW5zaW9ucyIpfSx0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlLG4pe3RoaXMuY2hlY2tEaW1zKHQsZSk7dmFyIG89dGhpcy5tYWtlS2V5KHQsZSk7dGhpcy5lbnRyaWVzLmhhcyhvKT90aGlzLmVudHJpZXMuZ2V0KG8pLnZhbHVlPW46dGhpcy5lbnRyaWVzLnNldChvLHt2YWx1ZTpuLHJvdzp0LGNvbDplfSl9LHQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUsbil7dm9pZCAwPT09biYmKG49MCksdGhpcy5jaGVja0RpbXModCxlKTt2YXIgbz10aGlzLm1ha2VLZXkodCxlKTtyZXR1cm4gdGhpcy5lbnRyaWVzLmhhcyhvKT90aGlzLmVudHJpZXMuZ2V0KG8pLnZhbHVlOm59LHQucHJvdG90eXBlLmdldEFsbD1mdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD0hMCk7dmFyIGU9W107cmV0dXJuIHRoaXMuZW50cmllcy5mb3JFYWNoKChmdW5jdGlvbih0KXtlLnB1c2godCl9KSksdCYmZS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LnJvdz09PWUucm93P3QuY29sLWUuY29sOnQucm93LWUucm93fSkpLGV9LHQucHJvdG90eXBlLmdldERpbXM9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5uUm93cyx0aGlzLm5Db2xzXX0sdC5wcm90b3R5cGUuZ2V0Um93cz1mdW5jdGlvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuZW50cmllcywoZnVuY3Rpb24odCl7cmV0dXJuIEdDdCh0LDIpWzFdLnJvd30pKX0sdC5wcm90b3R5cGUuZ2V0Q29scz1mdW5jdGlvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuZW50cmllcywoZnVuY3Rpb24odCl7cmV0dXJuIEdDdCh0LDIpWzFdLmNvbH0pKX0sdC5wcm90b3R5cGUuZ2V0VmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5lbnRyaWVzLChmdW5jdGlvbih0KXtyZXR1cm4gR0N0KHQsMilbMV0udmFsdWV9KSl9LHQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCl7dGhpcy5lbnRyaWVzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUudmFsdWUsZS5yb3csZS5jb2wpfSkpfSx0LnByb3RvdHlwZS5tYXA9ZnVuY3Rpb24oZSl7dmFyIG49W107dGhpcy5lbnRyaWVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe24ucHVzaChlKHQudmFsdWUsdC5yb3csdC5jb2wpKX0pKTt2YXIgbz1bdGhpcy5uUm93cyx0aGlzLm5Db2xzXTtyZXR1cm4gbmV3IHQodGhpcy5nZXRSb3dzKCksdGhpcy5nZXRDb2xzKCksbixvKX0sdC5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1xQ3QuZW1wdHkodGhpcy5uUm93cykubWFwKChmdW5jdGlvbigpe3JldHVybiBxQ3QuemVyb3ModC5uQ29scyl9KSk7cmV0dXJuIHRoaXMuZW50cmllcy5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3Qucm93XVt0LmNvbF09dC52YWx1ZX0pKSxlfSx0fSkoKTtVQ3QuU3BhcnNlTWF0cml4PVpDdCxVQ3QudHJhbnNwb3NlPWZ1bmN0aW9uIFhDdCh0KXt2YXIgZT1bXSxuPVtdLG89W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCxpLGEpe2UucHVzaChpKSxuLnB1c2goYSksby5wdXNoKHQpfSkpLG5ldyBaQ3QobixlLG8sW3QubkNvbHMsdC5uUm93c10pfSxVQ3QuaWRlbnRpdHk9ZnVuY3Rpb24gS0N0KHQpe2Zvcih2YXIgZT1HQ3QodCwxKVswXSxuPW5ldyBaQ3QoW10sW10sW10sdCksbz0wO288ZTtvKyspbi5zZXQobyxvLDEpO3JldHVybiBufSxVQ3QucGFpcndpc2VNdWx0aXBseT1mdW5jdGlvbiBKQ3QodCxlKXtyZXR1cm4gYU10KHQsZSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCplfSkpfSxVQ3QuYWRkPWZ1bmN0aW9uIFFDdCh0LGUpe3JldHVybiBhTXQodCxlLChmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9KSl9LFVDdC5zdWJ0cmFjdD1mdW5jdGlvbiAkQ3QodCxlKXtyZXR1cm4gYU10KHQsZSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpfSxVQ3QubWF4aW11bT1mdW5jdGlvbiB0TXQodCxlKXtyZXR1cm4gYU10KHQsZSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdD5lP3Q6ZX0pKX0sVUN0Lm11bHRpcGx5U2NhbGFyPWZ1bmN0aW9uIGVNdCh0LGUpe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQqZX0pKX0sVUN0LmVsaW1pbmF0ZVplcm9zPWZ1bmN0aW9uIG5NdCh0KXtmb3IodmFyIGU9bmV3IFNldCxuPXQuZ2V0VmFsdWVzKCksbz10LmdldFJvd3MoKSxpPXQuZ2V0Q29scygpLGE9MDthPG4ubGVuZ3RoO2ErKykwPT09blthXSYmZS5hZGQoYSk7dmFyIHI9ZnVuY3Rpb24odCxuKXtyZXR1cm4hZS5oYXMobil9LHM9bi5maWx0ZXIociksbD1vLmZpbHRlcihyKSxjPWkuZmlsdGVyKHIpO3JldHVybiBuZXcgWkN0KGwsYyxzLHQuZ2V0RGltcygpKX0sVUN0Lm5vcm1hbGl6ZT1mdW5jdGlvbiBvTXQodCxlKXt2YXIgbixvO3ZvaWQgMD09PWUmJihlPSJsMiIpO3ZhciBpPWlNdFtlXSxhPW5ldyBNYXA7dC5mb3JFYWNoKChmdW5jdGlvbih0LGUsbil7dmFyIG89YS5nZXQoZSl8fFtdO28ucHVzaChuKSxhLnNldChlLG8pfSkpO3ZhciByPW5ldyBaQ3QoW10sW10sW10sdC5nZXREaW1zKCkpLHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPWEuZ2V0KGUpLnNvcnQoKSxvPW4ubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gdC5nZXQoZSxuKX0pKSxzPWkobyksbD0wO2w8cy5sZW5ndGg7bCsrKXIuc2V0KGUsbltsXSxzW2xdKX07dHJ5e2Zvcih2YXIgbD1XQ3QoYS5rZXlzKCkpLGM9bC5uZXh0KCk7IWMuZG9uZTtjPWwubmV4dCgpKXMoYy52YWx1ZSl9Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7YyYmIWMuZG9uZSYmKG89bC5yZXR1cm4pJiZvLmNhbGwobCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiByfTt2YXIgaU10PSgoakN0PXt9KS5tYXg9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPS0xLzAsbj0wO248dC5sZW5ndGg7bisrKWU9dFtuXT5lP3Rbbl06ZTtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0L2V9KSl9LGpDdC5sMT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTA7bjx0Lmxlbmd0aDtuKyspZSs9dFtuXTtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0L2V9KSl9LGpDdC5sMj1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTA7bjx0Lmxlbmd0aDtuKyspZSs9TWF0aC5wb3codFtuXSwyKTtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3codCwyKS9lKX0pKX0sakN0KTtmdW5jdGlvbiBhTXQodCxlLG4pe2Zvcih2YXIgbz1uZXcgU2V0LGk9W10sYT1bXSxyPVtdLHM9ZnVuY3Rpb24obyxzKXtpLnB1c2gobyksYS5wdXNoKHMpO3ZhciBsPW4odC5nZXQobyxzKSxlLmdldChvLHMpKTtyLnB1c2gobCl9LGw9dC5nZXRWYWx1ZXMoKSxjPXQuZ2V0Um93cygpLGQ9dC5nZXRDb2xzKCkscD0wO3A8bC5sZW5ndGg7cCsrKW8uYWRkKChnPWNbcF0pKyI6IisoaD1kW3BdKSkscyhnLGgpO3ZhciBtPWUuZ2V0VmFsdWVzKCksdT1lLmdldFJvd3MoKSxmPWUuZ2V0Q29scygpO2ZvcihwPTA7cDxtLmxlbmd0aDtwKyspe3ZhciBnLGg7by5oYXMoKGc9dVtwXSkrIjoiKyhoPWZbcF0pKXx8cyhnLGgpfXJldHVybiBuZXcgWkN0KGksYSxyLFt0Lm5Sb3dzLHQubkNvbHNdKX1VQ3QuZ2V0Q1NSPWZ1bmN0aW9uIHJNdCh0KXt2YXIgZT1bXTt0LmZvckVhY2goKGZ1bmN0aW9uKHQsbixvKXtlLnB1c2goe3ZhbHVlOnQscm93Om4sY29sOm99KX0pKSxlLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQucm93PT09ZS5yb3c/dC5jb2wtZS5jb2w6dC5yb3ctZS5yb3d9KSk7Zm9yKHZhciBuPVtdLG89W10saT1bXSxhPS0xLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIHM9ZVtyXSxsPXMucm93LGM9cy5jb2wsZD1zLnZhbHVlO2whPT1hJiYoYT1sLGkucHVzaChyKSksbi5wdXNoKGMpLG8ucHVzaChkKX1yZXR1cm57aW5kaWNlczpuLHZhbHVlczpvLGluZHB0cjppfX07dmFyIHNNdD17fSxsTXQ9e30sY010PVF2JiZRdi5fX3JlYWR8fGZ1bmN0aW9uKHQsZSl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFuKXJldHVybiB0O3ZhciBvLGksYT1uLmNhbGwodCkscj1bXTt0cnl7Zm9yKDsodm9pZCAwPT09ZXx8ZS0tID4wKSYmIShvPWEubmV4dCgpKS5kb25lOylyLnB1c2goby52YWx1ZSl9Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49YS5yZXR1cm4pJiZuLmNhbGwoYSl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiByfSxkTXQ9UXYmJlF2Ll9fc3ByZWFkfHxmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0PXQuY29uY2F0KGNNdChhcmd1bWVudHNbZV0pKTtyZXR1cm4gdH0scE10PVF2JiZRdi5fX3ZhbHVlc3x8ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdLG49MDtyZXR1cm4gZT9lLmNhbGwodCk6e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCYmbj49dC5sZW5ndGgmJih0PXZvaWQgMCkse3ZhbHVlOnQmJnRbbisrXSxkb25lOiF0fX19fSxtTXQ9UXYmJlF2Ll9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24odCl7aWYodCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPXt9O2lmKG51bGwhPXQpZm9yKHZhciBuIGluIHQpT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGUuZGVmYXVsdD10LGV9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShsTXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB1TXQsZk10PW1NdChnQ3QpO2Z1bmN0aW9uIGdNdCh0LGUsbixvLGkpe2lmKHZvaWQgMD09PW4mJihuPTMwKSxlLmxlbmd0aD5uKXt2YXIgYT0oZnVuY3Rpb24gcih0LGUsbil7Zm9yKHZhciBvPXRbMF0ubGVuZ3RoLGk9Zk10LnRhdVJhbmRJbnQoZS5sZW5ndGgsbiksYT1mTXQudGF1UmFuZEludChlLmxlbmd0aCxuKSxyPWVbaV0scz1lW2E9KGErPWk9PT1hPzE6MCklZS5sZW5ndGhdLGw9MCxjPWZNdC56ZXJvcyhvKSxkPTA7ZDxjLmxlbmd0aDtkKyspY1tkXT10W3JdW2RdLXRbc11bZF0sbC09Y1tkXSoodFtyXVtkXSt0W3NdW2RdKS8yO3ZhciBwPTAsbT0wLHU9Zk10Lnplcm9zKGUubGVuZ3RoKTtmb3IoZD0wO2Q8ZS5sZW5ndGg7ZCsrKXtmb3IodmFyIGY9bCxnPTA7ZzxvO2crKylmKz1jW2ddKnRbZVtkXV1bZ107MD09PWY/KHVbZF09Zk10LnRhdVJhbmRJbnQoMixuKSwwPT09dVtkXT9wKz0xOm0rPTEpOmY+MD8odVtkXT0wLHArPTEpOih1W2RdPTEsbSs9MSl9dmFyIGg9Zk10Lnplcm9zKHApLGI9Zk10Lnplcm9zKG0pO2ZvcihwPTAsbT0wLGQ9MDtkPHUubGVuZ3RoO2QrKykwPT09dVtkXT8oaFtwXT1lW2RdLHArPTEpOihiW21dPWVbZF0sbSs9MSk7cmV0dXJue2luZGljZXNMZWZ0OmgsaW5kaWNlc1JpZ2h0OmIsaHlwZXJwbGFuZTpjLG9mZnNldDpsfX0pKHQsZSxpKSxzPWEuaW5kaWNlc1JpZ2h0LGw9YS5oeXBlcnBsYW5lLGM9YS5vZmZzZXQ7cmV0dXJue2xlZnRDaGlsZDpnTXQodCxhLmluZGljZXNMZWZ0LG4sbysxLGkpLHJpZ2h0Q2hpbGQ6Z010KHQscyxuLG8rMSxpKSxpc0xlYWY6ITEsaHlwZXJwbGFuZTpsLG9mZnNldDpjfX1yZXR1cm57aW5kaWNlczplLGlzTGVhZjohMH19ZnVuY3Rpb24gaE10KHQsZSxuLG8saSxhLHIpe3ZhciBzO2lmKHQuaXNMZWFmKXJldHVybiBvW2FdWzBdPS1yLChzPWlbcl0pLnNwbGljZS5hcHBseShzLGRNdChbMCx0LmluZGljZXMubGVuZ3RoXSx0LmluZGljZXMpKSx7bm9kZU51bTphLGxlYWZOdW06cis9MX07ZVthXT10Lmh5cGVycGxhbmUsblthXT10Lm9mZnNldCxvW2FdWzBdPWErMTt2YXIgbD1hLGM9aE10KHQubGVmdENoaWxkLGUsbixvLGksYSsxLHIpO3JldHVybiByPWMubGVhZk51bSxvW2xdWzFdPShhPWMubm9kZU51bSkrMSx7bm9kZU51bTooYz1oTXQodC5yaWdodENoaWxkLGUsbixvLGksYSsxLHIpKS5ub2RlTnVtLGxlYWZOdW06Yy5sZWFmTnVtfX1mdW5jdGlvbiBiTXQodCl7cmV0dXJuIHQuaXNMZWFmPzE6MStiTXQodC5sZWZ0Q2hpbGQpK2JNdCh0LnJpZ2h0Q2hpbGQpfWZ1bmN0aW9uIHlNdCh0KXtyZXR1cm4gdC5pc0xlYWY/MTp5TXQodC5sZWZ0Q2hpbGQpK3lNdCh0LnJpZ2h0Q2hpbGQpfWZ1bmN0aW9uIF9NdCh0LGUsbixvKXtmb3IodmFyIGk9ZSxhPTA7YTxuLmxlbmd0aDthKyspaSs9dFthXSpuW2FdO3JldHVybiAwPT09aT9mTXQudGF1UmFuZEludCgyLG8pOmk+MD8wOjF9bE10LkZsYXRUcmVlPXVNdD1mdW5jdGlvbiB1TXQodCxlLG4sbyl7dGhpcy5oeXBlcnBsYW5lcz10LHRoaXMub2Zmc2V0cz1lLHRoaXMuY2hpbGRyZW49bix0aGlzLmluZGljZXM9b30sbE10Lm1ha2VGb3Jlc3Q9ZnVuY3Rpb24gQ010KHQsZSxuLG8pe3ZhciBpPU1hdGgubWF4KDEwLGUpO3JldHVybiBmTXQucmFuZ2UobikubWFwKChmdW5jdGlvbihlLG4pe3JldHVybihmdW5jdGlvbiBhKHQsZSxuLG8pe3JldHVybiB2b2lkIDA9PT1lJiYoZT0zMCksZ010KHQsZk10LnJhbmdlKHQubGVuZ3RoKSxlLG4sbyl9KSh0LGksbixvKX0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybihmdW5jdGlvbiBlKHQsbil7dmFyIG89Yk10KHQpLGk9eU10KHQpLGE9Zk10LnJhbmdlKG8pLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gZk10Lnplcm9zKHQuaHlwZXJwbGFuZT90Lmh5cGVycGxhbmUubGVuZ3RoOjApfSkpLHI9Zk10Lnplcm9zKG8pLHM9Zk10LnJhbmdlKG8pLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm5bLTEsLTFdfSkpLGw9Zk10LnJhbmdlKGkpLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gZk10LnJhbmdlKG4pLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4tMX0pKX0pKTtyZXR1cm4gaE10KHQsYSxyLHMsbCwwLDApLG5ldyB1TXQoYSxyLHMsbCl9KSh0LGkpfSkpfSxsTXQubWFrZUxlYWZBcnJheT1mdW5jdGlvbiBNTXQodCl7dmFyIGUsbjtpZih0Lmxlbmd0aD4wKXt2YXIgbz1bXTt0cnl7Zm9yKHZhciBpPXBNdCh0KSxhPWkubmV4dCgpOyFhLmRvbmU7YT1pLm5leHQoKSlvLnB1c2guYXBwbHkobyxkTXQoYS52YWx1ZS5pbmRpY2VzKSl9Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7YSYmIWEuZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fXJldHVybiBvfXJldHVybltbLTFdXX0sbE10LnNlYXJjaEZsYXRUcmVlPWZ1bmN0aW9uIHZNdCh0LGUsbil7Zm9yKHZhciBvPTA7ZS5jaGlsZHJlbltvXVswXT4wOylvPTA9PT1fTXQoZS5oeXBlcnBsYW5lc1tvXSxlLm9mZnNldHNbb10sdCxuKT9lLmNoaWxkcmVuW29dWzBdOmUuY2hpbGRyZW5bb11bMV07cmV0dXJuIGUuaW5kaWNlc1stMSplLmNoaWxkcmVuW29dWzBdXX07dmFyIHhNdD1RdiYmUXYuX192YWx1ZXN8fGZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXSxuPTA7cmV0dXJuIGU/ZS5jYWxsKHQpOntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJm4+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W24rK10sZG9uZTohdH19fX0sT010PVF2JiZRdi5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZihudWxsIT10KWZvcih2YXIgbiBpbiB0KU9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlLmRlZmF1bHQ9dCxlfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoc010LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgUE10PU9NdChmQ3QpLHdNdD1PTXQoVUN0KSxrTXQ9T010KGxNdCksU010PU9NdChnQ3QpO3NNdC5tYWtlTk5EZXNjZW50PWZ1bmN0aW9uIERNdCh0LGUpe3JldHVybiBmdW5jdGlvbiBuKG8saSxhLHIscyxsLGMsZCl7dm9pZCAwPT09ciYmKHI9MTApLHZvaWQgMD09PXMmJihzPTUwKSx2b2lkIDA9PT1sJiYobD0uMDAxKSx2b2lkIDA9PT1jJiYoYz0uNSksdm9pZCAwPT09ZCYmKGQ9ITApO2Zvcih2YXIgcD1vLmxlbmd0aCxtPVBNdC5tYWtlSGVhcChvLmxlbmd0aCxhKSx1PTA7dTxvLmxlbmd0aDt1KyspZm9yKHZhciBmPVBNdC5yZWplY3Rpb25TYW1wbGUoYSxvLmxlbmd0aCxlKSxnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPXQob1t1XSxvW2ZbZ11dKTtQTXQuaGVhcFB1c2gobSx1LGgsZltnXSwxKSxQTXQuaGVhcFB1c2gobSxmW2ddLGgsdSwxKX1pZihkKWZvcih2YXIgYj0wO2I8aS5sZW5ndGg7YisrKWZvcih1PTA7dTxpW2JdLmxlbmd0aCYmIShpW2JdW3VdPDApO3UrKylmb3IoZz11KzE7ZzxpW2JdLmxlbmd0aCYmIShpW2JdW2ddPDApO2crKyloPXQob1tpW2JdW3VdXSxvW2lbYl1bZ11dKSxQTXQuaGVhcFB1c2gobSxpW2JdW3VdLGgsaVtiXVtnXSwxKSxQTXQuaGVhcFB1c2gobSxpW2JdW2ddLGgsaVtiXVt1XSwxKTtmb3IoYj0wO2I8cjtiKyspe3ZhciB5PVBNdC5idWlsZENhbmRpZGF0ZXMobSxwLGEscyxlKSxfPTA7Zm9yKHU9MDt1PHA7dSsrKWZvcihnPTA7ZzxzO2crKyl7dmFyIEM9TWF0aC5mbG9vcih5WzBdW3VdW2ddKTtpZighKEM8MHx8U010LnRhdVJhbmQoZSk8YykpZm9yKHZhciBNPTA7TTxzO00rKyl7dmFyIHY9TWF0aC5mbG9vcih5WzBdW3VdW01dKTt2PDB8fCF5WzJdW3VdW2ddJiYheVsyXVt1XVtNXXx8KGg9dChvW0NdLG9bdl0pLF8rPVBNdC5oZWFwUHVzaChtLEMsaCx2LDEpLF8rPVBNdC5oZWFwUHVzaChtLHYsaCxDLDEpKX19aWYoXzw9bCphKm8ubGVuZ3RoKWJyZWFrfXJldHVybiBQTXQuZGVoZWFwU29ydChtKX19LHNNdC5tYWtlSW5pdGlhbGl6YXRpb25zPWZ1bmN0aW9uIEVNdCh0KXtyZXR1cm57aW5pdEZyb21SYW5kb206ZnVuY3Rpb24gZShuLG8saSxhLHIpe2Zvcih2YXIgcz0wO3M8aS5sZW5ndGg7cysrKWZvcih2YXIgbD1TTXQucmVqZWN0aW9uU2FtcGxlKG4sby5sZW5ndGgsciksYz0wO2M8bC5sZW5ndGg7YysrKWlmKCEobFtjXTwwKSl7dmFyIGQ9dChvW2xbY11dLGlbc10pO1BNdC5oZWFwUHVzaChhLHMsZCxsW2NdLDEpfX0saW5pdEZyb21UcmVlOmZ1bmN0aW9uIG4oZSxvLGksYSxyKXtmb3IodmFyIHM9MDtzPGkubGVuZ3RoO3MrKylmb3IodmFyIGw9a010LnNlYXJjaEZsYXRUcmVlKGlbc10sZSxyKSxjPTA7YzxsLmxlbmd0aDtjKyspe2lmKGxbY108MClyZXR1cm47dmFyIGQ9dChvW2xbY11dLGlbc10pO1BNdC5oZWFwUHVzaChhLHMsZCxsW2NdLDEpfX19fSxzTXQubWFrZUluaXRpYWxpemVkTk5TZWFyY2g9ZnVuY3Rpb24gUk10KHQpe3JldHVybiBmdW5jdGlvbiBlKG4sbyxpLGEpe2Zvcih2YXIgcixzLGw9d010LmdldENTUihvKSxjPWwuaW5kaWNlcyxkPWwuaW5kcHRyLHA9MDtwPGEubGVuZ3RoO3ArKylmb3IodmFyIG09bmV3IFNldChpWzBdW3BdKTs7KXt2YXIgdT1QTXQuc21hbGxlc3RGbGFnZ2VkKGkscCk7aWYoLTE9PT11KWJyZWFrO3ZhciBmPWMuc2xpY2UoZFt1XSxkW3UrMV0pO3RyeXtmb3IodmFyIGc9eE10KGYpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgYj1oLnZhbHVlO2lmKGIhPT11JiYtMSE9PWImJiFtLmhhcyhiKSl7dmFyIHk9dChuW2JdLGFbcF0pO1BNdC51bmNoZWNrZWRIZWFwUHVzaChpLHAseSxiLDEpLG0uYWRkKGIpfX19Y2F0Y2godCl7cj17ZXJyb3I6dH19ZmluYWxseXt0cnl7aCYmIWguZG9uZSYmKHM9Zy5yZXR1cm4pJiZzLmNhbGwoZyl9ZmluYWxseXtpZihyKXRocm93IHIuZXJyb3J9fX1yZXR1cm4gaX19LHNNdC5pbml0aWFsaXplU2VhcmNoPWZ1bmN0aW9uIEFNdCh0LGUsbixvLGksYSxyKXt2YXIgcyxsLGM9UE10Lm1ha2VIZWFwKG4ubGVuZ3RoLG8pO2lmKGkobyxlLG4sYyxyKSx0KXRyeXtmb3IodmFyIGQ9eE10KHQpLHA9ZC5uZXh0KCk7IXAuZG9uZTtwPWQubmV4dCgpKWEocC52YWx1ZSxlLG4sYyxyKX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtwJiYhcC5kb25lJiYobD1kLnJldHVybikmJmwuY2FsbChkKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19cmV0dXJuIGN9O2NvbnN0IFRNdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIE5NdCh0KXtyZXR1cm4gVE10LmNhbGwodCkuZW5kc1dpdGgoIkFycmF5XSIpfWZ1bmN0aW9uIHpNdCh0LGUsbil7bGV0IG89MDtjb25zdCBpPW4oZSk7Zm9yKGxldCBlPTA7ZTx0LngubGVuZ3RoO2UrKylvKz1NYXRoLmFicyh0LnlbZV0taSh0LnhbZV0pKTtyZXR1cm4gb31jb25zdCBJTXQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBITXQodCl7cmV0dXJuIElNdC5jYWxsKHQpLmVuZHNXaXRoKCJBcnJheV0iKX1mdW5jdGlvbiBGTXQodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2lmKCFITXQodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW5wdXQgbXVzdCBiZSBhbiBhcnJheSIpO2lmKDA9PT10Lmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnB1dCBtdXN0IG5vdCBiZSBlbXB0eSIpO3ZhciBuPWUuZnJvbUluZGV4LG89dm9pZCAwPT09bj8wOm4saT1lLnRvSW5kZXgsYT12b2lkIDA9PT1pP3QubGVuZ3RoOmk7aWYobzwwfHxvPj10Lmxlbmd0aHx8IU51bWJlci5pc0ludGVnZXIobykpdGhyb3cgbmV3IEVycm9yKCJmcm9tSW5kZXggbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgc21hbGxlciB0aGFuIGxlbmd0aCIpO2lmKGE8PW98fGE+dC5sZW5ndGh8fCFOdW1iZXIuaXNJbnRlZ2VyKGEpKXRocm93IG5ldyBFcnJvcigidG9JbmRleCBtdXN0IGJlIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIGZyb21JbmRleCBhbmQgYXQgbW9zdCBlcXVhbCB0byBsZW5ndGgiKTtmb3IodmFyIHI9dFtvXSxzPW8rMTtzPGE7cysrKXRbc10+ciYmKHI9dFtzXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gTE10KHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZighSE10KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImlucHV0IG11c3QgYmUgYW4gYXJyYXkiKTtpZigwPT09dC5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW5wdXQgbXVzdCBub3QgYmUgZW1wdHkiKTt2YXIgbj1lLmZyb21JbmRleCxvPXZvaWQgMD09PW4/MDpuLGk9ZS50b0luZGV4LGE9dm9pZCAwPT09aT90Lmxlbmd0aDppO2lmKG88MHx8bz49dC5sZW5ndGh8fCFOdW1iZXIuaXNJbnRlZ2VyKG8pKXRocm93IG5ldyBFcnJvcigiZnJvbUluZGV4IG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHNtYWxsZXIgdGhhbiBsZW5ndGgiKTtpZihhPD1vfHxhPnQubGVuZ3RofHwhTnVtYmVyLmlzSW50ZWdlcihhKSl0aHJvdyBuZXcgRXJyb3IoInRvSW5kZXggbXVzdCBiZSBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBmcm9tSW5kZXggYW5kIGF0IG1vc3QgZXF1YWwgdG8gbGVuZ3RoIik7Zm9yKHZhciByPXRbb10scz1vKzE7czxhO3MrKyl0W3NdPHImJihyPXRbc10pO3JldHVybiByfWZ1bmN0aW9uIEJNdCh0KXt2YXIgZSxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZighSE10KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImlucHV0IG11c3QgYmUgYW4gYXJyYXkiKTtpZigwPT09dC5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW5wdXQgbXVzdCBub3QgYmUgZW1wdHkiKTtpZih2b2lkIDAhPT1uLm91dHB1dCl7aWYoIUhNdChuLm91dHB1dCkpdGhyb3cgbmV3IFR5cGVFcnJvcigib3V0cHV0IG9wdGlvbiBtdXN0IGJlIGFuIGFycmF5IGlmIHNwZWNpZmllZCIpO2U9bi5vdXRwdXR9ZWxzZSBlPW5ldyBBcnJheSh0Lmxlbmd0aCk7dmFyIG89TE10KHQpLGk9Rk10KHQpO2lmKG89PT1pKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW5pbXVtIGFuZCBtYXhpbXVtIGlucHV0IHZhbHVlcyBhcmUgZXF1YWwuIENhbm5vdCByZXNjYWxlIGEgY29uc3RhbnQgYXJyYXkiKTt2YXIgYT1uLm1pbixyPXZvaWQgMD09PWE/bi5hdXRvTWluTWF4P286MDphLHM9bi5tYXgsbD12b2lkIDA9PT1zP24uYXV0b01pbk1heD9pOjE6cztpZihyPj1sKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gb3B0aW9uIG11c3QgYmUgc21hbGxlciB0aGFuIG1heCBvcHRpb24iKTtmb3IodmFyIGM9KGwtcikvKGktbyksZD0wO2Q8dC5sZW5ndGg7ZCsrKWVbZF09KHRbZF0tbykqYytyO3JldHVybiBlfWNvbnN0IFZNdD0iICIucmVwZWF0KDIpLGpNdD0iICIucmVwZWF0KDQpO2Z1bmN0aW9uIFVNdCh0LGU9e30pe2NvbnN0e21heFJvd3M6bj0xNSxtYXhDb2x1bW5zOm89MTAsbWF4TnVtU2l6ZTppPTh9PWU7cmV0dXJuYCR7dC5jb25zdHJ1Y3Rvci5uYW1lfSB7XG4ke1ZNdH1bXG4ke2pNdH0keyhmdW5jdGlvbiBhKHQsZSxuLG8pe2NvbnN0e3Jvd3M6aSxjb2x1bW5zOmF9PXQscj1NYXRoLm1pbihpLGUpLHM9TWF0aC5taW4oYSxuKSxsPVtdO2ZvcihsZXQgZT0wO2U8cjtlKyspe2xldCBuPVtdO2ZvcihsZXQgaT0wO2k8cztpKyspbi5wdXNoKEdNdCh0LmdldChlLGkpLG8pKTtsLnB1c2goYCR7bi5qb2luKCIgIil9YCl9cmV0dXJuIHMhPT1hJiYobFtsLmxlbmd0aC0xXSs9YCAuLi4gJHthLW59IG1vcmUgY29sdW1uc2ApLHIhPT1pJiZsLnB1c2goYC4uLiAke2ktZX0gbW9yZSByb3dzYCksbC5qb2luKGBcbiR7ak10fWApfSkodCxuLG8saSl9XG4ke1ZNdH1dXG4ke1ZNdH1yb3dzOiAke3Qucm93c31cbiR7Vk10fWNvbHVtbnM6ICR7dC5jb2x1bW5zfVxufWB9ZnVuY3Rpb24gR010KHQsZSl7Y29uc3Qgbj1TdHJpbmcodCk7aWYobi5sZW5ndGg8PWUpcmV0dXJuIG4ucGFkRW5kKGUsIiAiKTtjb25zdCBvPXQudG9QcmVjaXNpb24oZS0yKTtpZihvLmxlbmd0aDw9ZSlyZXR1cm4gbztjb25zdCBpPXQudG9FeHBvbmVudGlhbChlLTIpLGE9aS5pbmRleE9mKCJlIikscj1pLnNsaWNlKGEpO3JldHVybiBpLnNsaWNlKDAsZS1yLmxlbmd0aCkrcn1mdW5jdGlvbiBXTXQodCxlLG4pe2lmKGU8MHx8ZT4obj90LnJvd3M6dC5yb3dzLTEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJSb3cgaW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gWU10KHQsZSxuKXtpZihlPDB8fGU+KG4/dC5jb2x1bW5zOnQuY29sdW1ucy0xKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ29sdW1uIGluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIHFNdCh0LGUpe2lmKGUudG8xREFycmF5JiYoZT1lLnRvMURBcnJheSgpKSxlLmxlbmd0aCE9PXQuY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidmVjdG9yIHNpemUgbXVzdCBiZSB0aGUgc2FtZSBhcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMiKTtyZXR1cm4gZX1mdW5jdGlvbiBaTXQodCxlKXtpZihlLnRvMURBcnJheSYmKGU9ZS50bzFEQXJyYXkoKSksZS5sZW5ndGghPT10LnJvd3MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInZlY3RvciBzaXplIG11c3QgYmUgdGhlIHNhbWUgYXMgdGhlIG51bWJlciBvZiByb3dzIik7cmV0dXJuIGV9ZnVuY3Rpb24gWE10KHQsZSl7aWYoIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoInVuZXhwZWN0ZWQgdHlwZSBmb3Igcm93IGluZGljZXMiKTtpZihlLnNvbWUoKGU9PmU8MHx8ZT49dC5yb3dzKSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInJvdyBpbmRpY2VzIGFyZSBvdXQgb2YgcmFuZ2UiKTtyZXR1cm4gQXJyYXkuaXNBcnJheShlKXx8KGU9QXJyYXkuZnJvbShlKSksZX1mdW5jdGlvbiBLTXQodCxlKXtpZigib2JqZWN0IiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigidW5leHBlY3RlZCB0eXBlIGZvciBjb2x1bW4gaW5kaWNlcyIpO2lmKGUuc29tZSgoZT0+ZTwwfHxlPj10LmNvbHVtbnMpKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiY29sdW1uIGluZGljZXMgYXJlIG91dCBvZiByYW5nZSIpO3JldHVybiBBcnJheS5pc0FycmF5KGUpfHwoZT1BcnJheS5mcm9tKGUpKSxlfWZ1bmN0aW9uIEpNdCh0LGUsbixvLGkpe2lmKDUhPT1hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJleHBlY3RlZCA0IGFyZ3VtZW50cyIpO2lmKCRNdCgic3RhcnRSb3ciLGUpLCRNdCgiZW5kUm93IixuKSwkTXQoInN0YXJ0Q29sdW1uIixvKSwkTXQoImVuZENvbHVtbiIsaSksZT5ufHxvPml8fGU8MHx8ZT49dC5yb3dzfHxuPDB8fG4+PXQucm93c3x8bzwwfHxvPj10LmNvbHVtbnN8fGk8MHx8aT49dC5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJTdWJtYXRyaXggaW5kaWNlcyBhcmUgb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gUU10KHQsZT0wKXtsZXQgbj1bXTtmb3IobGV0IG89MDtvPHQ7bysrKW4ucHVzaChlKTtyZXR1cm4gbn1mdW5jdGlvbiAkTXQodCxlKXtpZigibnVtYmVyIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0fSBtdXN0IGJlIGEgbnVtYmVyYCl9ZnVuY3Rpb24gdHZ0KHQpe2lmKHQuaXNFbXB0eSgpKXRocm93IG5ldyBFcnJvcigiRW1wdHkgbWF0cml4IGhhcyBubyBlbGVtZW50cyB0byBpbmRleCIpfWNsYXNzIGV2dHtzdGF0aWMgZnJvbTFEQXJyYXkodCxlLG4pe2lmKHQqZSE9PW4ubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJkYXRhIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCBnaXZlbiBkaW1lbnNpb25zIik7bGV0IG89bmV3IGl2dCh0LGUpO2ZvcihsZXQgaT0wO2k8dDtpKyspZm9yKGxldCB0PTA7dDxlO3QrKylvLnNldChpLHQsbltpKmUrdF0pO3JldHVybiBvfXN0YXRpYyByb3dWZWN0b3IodCl7bGV0IGU9bmV3IGl2dCgxLHQubGVuZ3RoKTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyllLnNldCgwLG4sdFtuXSk7cmV0dXJuIGV9c3RhdGljIGNvbHVtblZlY3Rvcih0KXtsZXQgZT1uZXcgaXZ0KHQubGVuZ3RoLDEpO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWUuc2V0KG4sMCx0W25dKTtyZXR1cm4gZX1zdGF0aWMgemVyb3ModCxlKXtyZXR1cm4gbmV3IGl2dCh0LGUpfXN0YXRpYyBvbmVzKHQsZSl7cmV0dXJuIG5ldyBpdnQodCxlKS5maWxsKDEpfXN0YXRpYyByYW5kKHQsZSxuPXt9KXtpZigib2JqZWN0IiE9dHlwZW9mIG4pdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIpO2NvbnN0e3JhbmRvbTpvPU1hdGgucmFuZG9tfT1uO2xldCBpPW5ldyBpdnQodCxlKTtmb3IobGV0IG49MDtuPHQ7bisrKWZvcihsZXQgdD0wO3Q8ZTt0KyspaS5zZXQobix0LG8oKSk7cmV0dXJuIGl9c3RhdGljIHJhbmRJbnQodCxlLG49e30pe2lmKCJvYmplY3QiIT10eXBlb2Ygbil0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Y29uc3R7bWluOm89MCxtYXg6aT0xZTMscmFuZG9tOmE9TWF0aC5yYW5kb219PW47aWYoIU51bWJlci5pc0ludGVnZXIobykpdGhyb3cgbmV3IFR5cGVFcnJvcigibWluIG11c3QgYmUgYW4gaW50ZWdlciIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGkpKXRocm93IG5ldyBUeXBlRXJyb3IoIm1heCBtdXN0IGJlIGFuIGludGVnZXIiKTtpZihvPj1pKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Iik7bGV0IHI9aS1vLHM9bmV3IGl2dCh0LGUpO2ZvcihsZXQgbj0wO248dDtuKyspZm9yKGxldCB0PTA7dDxlO3QrKyl7bGV0IGU9bytNYXRoLnJvdW5kKGEoKSpyKTtzLnNldChuLHQsZSl9cmV0dXJuIHN9c3RhdGljIGV5ZSh0LGUsbil7dm9pZCAwPT09ZSYmKGU9dCksdm9pZCAwPT09biYmKG49MSk7bGV0IG89TWF0aC5taW4odCxlKSxpPXRoaXMuemVyb3ModCxlKTtmb3IobGV0IHQ9MDt0PG87dCsrKWkuc2V0KHQsdCxuKTtyZXR1cm4gaX1zdGF0aWMgZGlhZyh0LGUsbil7bGV0IG89dC5sZW5ndGg7dm9pZCAwPT09ZSYmKGU9byksdm9pZCAwPT09biYmKG49ZSk7bGV0IGk9TWF0aC5taW4obyxlLG4pLGE9dGhpcy56ZXJvcyhlLG4pO2ZvcihsZXQgZT0wO2U8aTtlKyspYS5zZXQoZSxlLHRbZV0pO3JldHVybiBhfXN0YXRpYyBtaW4odCxlKXt0PXRoaXMuY2hlY2tNYXRyaXgodCksZT10aGlzLmNoZWNrTWF0cml4KGUpO2xldCBuPXQucm93cyxvPXQuY29sdW1ucyxpPW5ldyBpdnQobixvKTtmb3IobGV0IGE9MDthPG47YSsrKWZvcihsZXQgbj0wO248bztuKyspaS5zZXQoYSxuLE1hdGgubWluKHQuZ2V0KGEsbiksZS5nZXQoYSxuKSkpO3JldHVybiBpfXN0YXRpYyBtYXgodCxlKXt0PXRoaXMuY2hlY2tNYXRyaXgodCksZT10aGlzLmNoZWNrTWF0cml4KGUpO2xldCBuPXQucm93cyxvPXQuY29sdW1ucyxpPW5ldyB0aGlzKG4sbyk7Zm9yKGxldCBhPTA7YTxuO2ErKylmb3IobGV0IG49MDtuPG87bisrKWkuc2V0KGEsbixNYXRoLm1heCh0LmdldChhLG4pLGUuZ2V0KGEsbikpKTtyZXR1cm4gaX1zdGF0aWMgY2hlY2tNYXRyaXgodCl7cmV0dXJuIGV2dC5pc01hdHJpeCh0KT90Om5ldyBpdnQodCl9c3RhdGljIGlzTWF0cml4KHQpe3JldHVybiBudWxsIT10JiYiTWF0cml4Ij09PXQua2xhc3N9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5yb3dzKnRoaXMuY29sdW1uc31hcHBseSh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXQuY2FsbCh0aGlzLGUsbik7cmV0dXJuIHRoaXN9dG8xREFycmF5KCl7bGV0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0LnB1c2godGhpcy5nZXQoZSxuKSk7cmV0dXJuIHR9dG8yREFycmF5KCl7bGV0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKXt0LnB1c2goW10pO2ZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0W2VdLnB1c2godGhpcy5nZXQoZSxuKSl9cmV0dXJuIHR9dG9KU09OKCl7cmV0dXJuIHRoaXMudG8yREFycmF5KCl9aXNSb3dWZWN0b3IoKXtyZXR1cm4gMT09PXRoaXMucm93c31pc0NvbHVtblZlY3Rvcigpe3JldHVybiAxPT09dGhpcy5jb2x1bW5zfWlzVmVjdG9yKCl7cmV0dXJuIDE9PT10aGlzLnJvd3N8fDE9PT10aGlzLmNvbHVtbnN9aXNTcXVhcmUoKXtyZXR1cm4gdGhpcy5yb3dzPT09dGhpcy5jb2x1bW5zfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMucm93c3x8MD09PXRoaXMuY29sdW1uc31pc1N5bW1ldHJpYygpe2lmKHRoaXMuaXNTcXVhcmUoKSl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8PXQ7ZSsrKWlmKHRoaXMuZ2V0KHQsZSkhPT10aGlzLmdldChlLHQpKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWlzRWNoZWxvbkZvcm0oKXtsZXQgdD0wLGU9MCxuPS0xLG89ITAsaT0hMTtmb3IoO3Q8dGhpcy5yb3dzJiZvOyl7Zm9yKGU9MCxpPSExO2U8dGhpcy5jb2x1bW5zJiYhMT09PWk7KTA9PT10aGlzLmdldCh0LGUpP2UrKzoxPT09dGhpcy5nZXQodCxlKSYmZT5uPyhpPSEwLG49ZSk6KG89ITEsaT0hMCk7dCsrfXJldHVybiBvfWlzUmVkdWNlZEVjaGVsb25Gb3JtKCl7bGV0IHQ9MCxlPTAsbj0tMSxvPSEwLGk9ITE7Zm9yKDt0PHRoaXMucm93cyYmbzspe2ZvcihlPTAsaT0hMTtlPHRoaXMuY29sdW1ucyYmITE9PT1pOykwPT09dGhpcy5nZXQodCxlKT9lKys6MT09PXRoaXMuZ2V0KHQsZSkmJmU+bj8oaT0hMCxuPWUpOihvPSExLGk9ITApO2ZvcihsZXQgbj1lKzE7bjx0aGlzLnJvd3M7bisrKTAhPT10aGlzLmdldCh0LG4pJiYobz0hMSk7dCsrfXJldHVybiBvfWVjaGVsb25Gb3JtKCl7bGV0IHQ9dGhpcy5jbG9uZSgpLGU9MCxuPTA7Zm9yKDtlPHQucm93cyYmbjx0LmNvbHVtbnM7KXtsZXQgbz1lO2ZvcihsZXQgaT1lO2k8dC5yb3dzO2krKyl0LmdldChpLG4pPnQuZ2V0KG8sbikmJihvPWkpO2lmKDA9PT10LmdldChvLG4pKW4rKztlbHNle3Quc3dhcFJvd3MoZSxvKTtsZXQgaT10LmdldChlLG4pO2ZvcihsZXQgbz1uO288dC5jb2x1bW5zO28rKyl0LnNldChlLG8sdC5nZXQoZSxvKS9pKTtmb3IobGV0IG89ZSsxO288dC5yb3dzO28rKyl7bGV0IGk9dC5nZXQobyxuKS90LmdldChlLG4pO3Quc2V0KG8sbiwwKTtmb3IobGV0IGE9bisxO2E8dC5jb2x1bW5zO2ErKyl0LnNldChvLGEsdC5nZXQobyxhKS10LmdldChlLGEpKmkpfWUrKyxuKyt9fXJldHVybiB0fXJlZHVjZWRFY2hlbG9uRm9ybSgpe2xldCB0PXRoaXMuZWNoZWxvbkZvcm0oKSxlPXQuY29sdW1ucyxuPXQucm93cyxvPW4tMTtmb3IoO28+PTA7KWlmKDA9PT10Lm1heFJvdyhvKSlvLS07ZWxzZXtsZXQgaT0wLGE9ITE7Zm9yKDtpPG4mJiExPT09YTspMT09PXQuZ2V0KG8saSk/YT0hMDppKys7Zm9yKGxldCBuPTA7bjxvO24rKyl7bGV0IGE9dC5nZXQobixpKTtmb3IobGV0IHI9aTtyPGU7cisrKXtsZXQgZT10LmdldChuLHIpLWEqdC5nZXQobyxyKTt0LnNldChuLHIsZSl9fW8tLX1yZXR1cm4gdH1zZXQoKXt0aHJvdyBuZXcgRXJyb3IoInNldCBtZXRob2QgaXMgdW5pbXBsZW1lbnRlZCIpfWdldCgpe3Rocm93IG5ldyBFcnJvcigiZ2V0IG1ldGhvZCBpcyB1bmltcGxlbWVudGVkIil9cmVwZWF0KHQ9e30pe2lmKCJvYmplY3QiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Y29uc3R7cm93czplPTEsY29sdW1uczpuPTF9PXQ7aWYoIU51bWJlci5pc0ludGVnZXIoZSl8fGU8PTApdGhyb3cgbmV3IFR5cGVFcnJvcigicm93cyBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKG4pfHxuPD0wKXRocm93IG5ldyBUeXBlRXJyb3IoImNvbHVtbnMgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIiKTtsZXQgbz1uZXcgaXZ0KHRoaXMucm93cyplLHRoaXMuY29sdW1ucypuKTtmb3IobGV0IHQ9MDt0PGU7dCsrKWZvcihsZXQgZT0wO2U8bjtlKyspby5zZXRTdWJNYXRyaXgodGhpcyx0aGlzLnJvd3MqdCx0aGlzLmNvbHVtbnMqZSk7cmV0dXJuIG99ZmlsbCh0KXtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0KTtyZXR1cm4gdGhpc31uZWcoKXtyZXR1cm4gdGhpcy5tdWxTKC0xKX1nZXRSb3codCl7V010KHRoaXMsdCk7bGV0IGU9W107Zm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKWUucHVzaCh0aGlzLmdldCh0LG4pKTtyZXR1cm4gZX1nZXRSb3dWZWN0b3IodCl7cmV0dXJuIGl2dC5yb3dWZWN0b3IodGhpcy5nZXRSb3codCkpfXNldFJvdyh0LGUpe1dNdCh0aGlzLHQpLGU9cU10KHRoaXMsZSk7Zm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbixlW25dKTtyZXR1cm4gdGhpc31zd2FwUm93cyh0LGUpe1dNdCh0aGlzLHQpLFdNdCh0aGlzLGUpO2ZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl7bGV0IG89dGhpcy5nZXQodCxuKTt0aGlzLnNldCh0LG4sdGhpcy5nZXQoZSxuKSksdGhpcy5zZXQoZSxuLG8pfXJldHVybiB0aGlzfWdldENvbHVtbih0KXtZTXQodGhpcyx0KTtsZXQgZT1bXTtmb3IobGV0IG49MDtuPHRoaXMucm93cztuKyspZS5wdXNoKHRoaXMuZ2V0KG4sdCkpO3JldHVybiBlfWdldENvbHVtblZlY3Rvcih0KXtyZXR1cm4gaXZ0LmNvbHVtblZlY3Rvcih0aGlzLmdldENvbHVtbih0KSl9c2V0Q29sdW1uKHQsZSl7WU10KHRoaXMsdCksZT1aTXQodGhpcyxlKTtmb3IobGV0IG49MDtuPHRoaXMucm93cztuKyspdGhpcy5zZXQobix0LGVbbl0pO3JldHVybiB0aGlzfXN3YXBDb2x1bW5zKHQsZSl7WU10KHRoaXMsdCksWU10KHRoaXMsZSk7Zm9yKGxldCBuPTA7bjx0aGlzLnJvd3M7bisrKXtsZXQgbz10aGlzLmdldChuLHQpO3RoaXMuc2V0KG4sdCx0aGlzLmdldChuLGUpKSx0aGlzLnNldChuLGUsbyl9cmV0dXJuIHRoaXN9YWRkUm93VmVjdG9yKHQpe3Q9cU10KHRoaXMsdCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldChlLG4sdGhpcy5nZXQoZSxuKSt0W25dKTtyZXR1cm4gdGhpc31zdWJSb3dWZWN0b3IodCl7dD1xTXQodGhpcyx0KTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0aGlzLmdldChlLG4pLXRbbl0pO3JldHVybiB0aGlzfW11bFJvd1ZlY3Rvcih0KXt0PXFNdCh0aGlzLHQpO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQoZSxuLHRoaXMuZ2V0KGUsbikqdFtuXSk7cmV0dXJuIHRoaXN9ZGl2Um93VmVjdG9yKHQpe3Q9cU10KHRoaXMsdCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldChlLG4sdGhpcy5nZXQoZSxuKS90W25dKTtyZXR1cm4gdGhpc31hZGRDb2x1bW5WZWN0b3IodCl7dD1aTXQodGhpcyx0KTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0aGlzLmdldChlLG4pK3RbZV0pO3JldHVybiB0aGlzfXN1YkNvbHVtblZlY3Rvcih0KXt0PVpNdCh0aGlzLHQpO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQoZSxuLHRoaXMuZ2V0KGUsbiktdFtlXSk7cmV0dXJuIHRoaXN9bXVsQ29sdW1uVmVjdG9yKHQpe3Q9Wk10KHRoaXMsdCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldChlLG4sdGhpcy5nZXQoZSxuKSp0W2VdKTtyZXR1cm4gdGhpc31kaXZDb2x1bW5WZWN0b3IodCl7dD1aTXQodGhpcyx0KTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0aGlzLmdldChlLG4pL3RbZV0pO3JldHVybiB0aGlzfW11bFJvdyh0LGUpe1dNdCh0aGlzLHQpO2ZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldCh0LG4sdGhpcy5nZXQodCxuKSplKTtyZXR1cm4gdGhpc31tdWxDb2x1bW4odCxlKXtZTXQodGhpcyx0KTtmb3IobGV0IG49MDtuPHRoaXMucm93cztuKyspdGhpcy5zZXQobix0LHRoaXMuZ2V0KG4sdCkqZSk7cmV0dXJuIHRoaXN9bWF4KCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIE5hTjtsZXQgdD10aGlzLmdldCgwLDApO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5nZXQoZSxuKT50JiYodD10aGlzLmdldChlLG4pKTtyZXR1cm4gdH1tYXhJbmRleCgpe3R2dCh0aGlzKTtsZXQgdD10aGlzLmdldCgwLDApLGU9WzAsMF07Zm9yKGxldCBuPTA7bjx0aGlzLnJvd3M7bisrKWZvcihsZXQgbz0wO288dGhpcy5jb2x1bW5zO28rKyl0aGlzLmdldChuLG8pPnQmJih0PXRoaXMuZ2V0KG4sbyksZVswXT1uLGVbMV09byk7cmV0dXJuIGV9bWluKCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIE5hTjtsZXQgdD10aGlzLmdldCgwLDApO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5nZXQoZSxuKTx0JiYodD10aGlzLmdldChlLG4pKTtyZXR1cm4gdH1taW5JbmRleCgpe3R2dCh0aGlzKTtsZXQgdD10aGlzLmdldCgwLDApLGU9WzAsMF07Zm9yKGxldCBuPTA7bjx0aGlzLnJvd3M7bisrKWZvcihsZXQgbz0wO288dGhpcy5jb2x1bW5zO28rKyl0aGlzLmdldChuLG8pPHQmJih0PXRoaXMuZ2V0KG4sbyksZVswXT1uLGVbMV09byk7cmV0dXJuIGV9bWF4Um93KHQpe2lmKFdNdCh0aGlzLHQpLHRoaXMuaXNFbXB0eSgpKXJldHVybiBOYU47bGV0IGU9dGhpcy5nZXQodCwwKTtmb3IobGV0IG49MTtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5nZXQodCxuKT5lJiYoZT10aGlzLmdldCh0LG4pKTtyZXR1cm4gZX1tYXhSb3dJbmRleCh0KXtXTXQodGhpcyx0KSx0dnQodGhpcyk7bGV0IGU9dGhpcy5nZXQodCwwKSxuPVt0LDBdO2ZvcihsZXQgbz0xO288dGhpcy5jb2x1bW5zO28rKyl0aGlzLmdldCh0LG8pPmUmJihlPXRoaXMuZ2V0KHQsbyksblsxXT1vKTtyZXR1cm4gbn1taW5Sb3codCl7aWYoV010KHRoaXMsdCksdGhpcy5pc0VtcHR5KCkpcmV0dXJuIE5hTjtsZXQgZT10aGlzLmdldCh0LDApO2ZvcihsZXQgbj0xO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLmdldCh0LG4pPGUmJihlPXRoaXMuZ2V0KHQsbikpO3JldHVybiBlfW1pblJvd0luZGV4KHQpe1dNdCh0aGlzLHQpLHR2dCh0aGlzKTtsZXQgZT10aGlzLmdldCh0LDApLG49W3QsMF07Zm9yKGxldCBvPTE7bzx0aGlzLmNvbHVtbnM7bysrKXRoaXMuZ2V0KHQsbyk8ZSYmKGU9dGhpcy5nZXQodCxvKSxuWzFdPW8pO3JldHVybiBufW1heENvbHVtbih0KXtpZihZTXQodGhpcyx0KSx0aGlzLmlzRW1wdHkoKSlyZXR1cm4gTmFOO2xldCBlPXRoaXMuZ2V0KDAsdCk7Zm9yKGxldCBuPTE7bjx0aGlzLnJvd3M7bisrKXRoaXMuZ2V0KG4sdCk+ZSYmKGU9dGhpcy5nZXQobix0KSk7cmV0dXJuIGV9bWF4Q29sdW1uSW5kZXgodCl7WU10KHRoaXMsdCksdHZ0KHRoaXMpO2xldCBlPXRoaXMuZ2V0KDAsdCksbj1bMCx0XTtmb3IobGV0IG89MTtvPHRoaXMucm93cztvKyspdGhpcy5nZXQobyx0KT5lJiYoZT10aGlzLmdldChvLHQpLG5bMF09byk7cmV0dXJuIG59bWluQ29sdW1uKHQpe2lmKFlNdCh0aGlzLHQpLHRoaXMuaXNFbXB0eSgpKXJldHVybiBOYU47bGV0IGU9dGhpcy5nZXQoMCx0KTtmb3IobGV0IG49MTtuPHRoaXMucm93cztuKyspdGhpcy5nZXQobix0KTxlJiYoZT10aGlzLmdldChuLHQpKTtyZXR1cm4gZX1taW5Db2x1bW5JbmRleCh0KXtZTXQodGhpcyx0KSx0dnQodGhpcyk7bGV0IGU9dGhpcy5nZXQoMCx0KSxuPVswLHRdO2ZvcihsZXQgbz0xO288dGhpcy5yb3dzO28rKyl0aGlzLmdldChvLHQpPGUmJihlPXRoaXMuZ2V0KG8sdCksblswXT1vKTtyZXR1cm4gbn1kaWFnKCl7bGV0IHQ9TWF0aC5taW4odGhpcy5yb3dzLHRoaXMuY29sdW1ucyksZT1bXTtmb3IobGV0IG49MDtuPHQ7bisrKWUucHVzaCh0aGlzLmdldChuLG4pKTtyZXR1cm4gZX1ub3JtKHQ9ImZyb2Jlbml1cyIpe2xldCBlPTA7aWYoIm1heCI9PT10KXJldHVybiB0aGlzLm1heCgpO2lmKCJmcm9iZW5pdXMiPT09dCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyllKz10aGlzLmdldCh0LG4pKnRoaXMuZ2V0KHQsbik7cmV0dXJuIE1hdGguc3FydChlKX10aHJvdyBuZXcgUmFuZ2VFcnJvcihgdW5rbm93biBub3JtIHR5cGU6ICR7dH1gKX1jdW11bGF0aXZlU3VtKCl7bGV0IHQ9MDtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXQrPXRoaXMuZ2V0KGUsbiksdGhpcy5zZXQoZSxuLHQpO3JldHVybiB0aGlzfWRvdCh0KXtldnQuaXNNYXRyaXgodCkmJih0PXQudG8xREFycmF5KCkpO2xldCBlPXRoaXMudG8xREFycmF5KCk7aWYoZS5sZW5ndGghPT10Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidmVjdG9ycyBkbyBub3QgaGF2ZSB0aGUgc2FtZSBzaXplIik7bGV0IG49MDtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyluKz1lW29dKnRbb107cmV0dXJuIG59bW11bCh0KXt0PWl2dC5jaGVja01hdHJpeCh0KTtsZXQgZT10aGlzLnJvd3Msbj10aGlzLmNvbHVtbnMsbz10LmNvbHVtbnMsaT1uZXcgaXZ0KGUsbyksYT1uZXcgRmxvYXQ2NEFycmF5KG4pO2ZvcihsZXQgcj0wO3I8bztyKyspe2ZvcihsZXQgZT0wO2U8bjtlKyspYVtlXT10LmdldChlLHIpO2ZvcihsZXQgdD0wO3Q8ZTt0Kyspe2xldCBlPTA7Zm9yKGxldCBvPTA7bzxuO28rKyllKz10aGlzLmdldCh0LG8pKmFbb107aS5zZXQodCxyLGUpfX1yZXR1cm4gaX1zdHJhc3NlbjJ4Mih0KXt0PWl2dC5jaGVja01hdHJpeCh0KTtsZXQgZT1uZXcgaXZ0KDIsMik7Y29uc3Qgbj10aGlzLmdldCgwLDApLG89dC5nZXQoMCwwKSxpPXRoaXMuZ2V0KDAsMSksYT10LmdldCgwLDEpLHI9dGhpcy5nZXQoMSwwKSxzPXQuZ2V0KDEsMCksbD10aGlzLmdldCgxLDEpLGM9dC5nZXQoMSwxKSxkPShuK2wpKihvK2MpLHA9KHIrbCkqbyxtPW4qKGEtYyksdT1sKihzLW8pLGY9KG4raSkqYyxnPW0rZixoPXArdSxiPWQtcCttKyhyLW4pKihvK2EpO3JldHVybiBlLnNldCgwLDAsZCt1LWYrKGktbCkqKHMrYykpLGUuc2V0KDAsMSxnKSxlLnNldCgxLDAsaCksZS5zZXQoMSwxLGIpLGV9c3RyYXNzZW4zeDModCl7dD1pdnQuY2hlY2tNYXRyaXgodCk7bGV0IGU9bmV3IGl2dCgzLDMpO2NvbnN0IG49dGhpcy5nZXQoMCwwKSxvPXRoaXMuZ2V0KDAsMSksaT10aGlzLmdldCgwLDIpLGE9dGhpcy5nZXQoMSwwKSxyPXRoaXMuZ2V0KDEsMSkscz10aGlzLmdldCgxLDIpLGw9dGhpcy5nZXQoMiwwKSxjPXRoaXMuZ2V0KDIsMSksZD10aGlzLmdldCgyLDIpLHA9dC5nZXQoMCwwKSxtPXQuZ2V0KDAsMSksdT10LmdldCgwLDIpLGY9dC5nZXQoMSwwKSxnPXQuZ2V0KDEsMSksaD10LmdldCgxLDIpLGI9dC5nZXQoMiwwKSx5PXQuZ2V0KDIsMSksXz10LmdldCgyLDIpLEM9KG4tYSkqKC1tK2cpLE09KC1uK2ErcikqKHAtbStnKSx2PShhK3IpKigtcCttKSx4PW4qcCxPPSgtbitsK2MpKihwLXUraCksUD0oLW4rbCkqKHUtaCksdz0obCtjKSooLXArdSksaz0oLWkrYytkKSooZytiLXkpLFM9KGktZCkqKGcteSksRD1pKmIsRT0oYytkKSooLWIreSksUj0oLWkrcitzKSooaCtiLV8pLEE9KGktcykqKGgtXyksVD0ocitzKSooLWIrXyksTj0obitvK2ktYS1yLWMtZCkqZytNK3YreCtrK0QrRSx6PXgrTyt3KyhuK28raS1yLXMtbC1jKSpoK0QrUitULEk9QytyKigtcCttK2YtZy1oLWIrXykrTSt4K0QrUitBLEg9QytNK3YreCtzKnksRj1EK1IrQStUK2EqdSxMPXgrTytQK2MqKC1wK3UrZi1nLWgtYit5KStrK1MrRCxCPWsrUytEK0UrbCptLFY9eCtPK1ArdytkKl87cmV0dXJuIGUuc2V0KDAsMCx4K0QrbypmKSxlLnNldCgwLDEsTiksZS5zZXQoMCwyLHopLGUuc2V0KDEsMCxJKSxlLnNldCgxLDEsSCksZS5zZXQoMSwyLEYpLGUuc2V0KDIsMCxMKSxlLnNldCgyLDEsQiksZS5zZXQoMiwyLFYpLGV9bW11bFN0cmFzc2VuKHQpe3Q9aXZ0LmNoZWNrTWF0cml4KHQpO2xldCBlPXRoaXMuY2xvbmUoKSxuPWUucm93cyxvPWUuY29sdW1ucyxpPXQucm93cyxhPXQuY29sdW1ucztmdW5jdGlvbiByKHQsZSxuKXtpZih0LnJvd3M9PT1lJiZ0LmNvbHVtbnM9PT1uKXJldHVybiB0O3tsZXQgbz1ldnQuemVyb3MoZSxuKTtyZXR1cm4gbz1vLnNldFN1Yk1hdHJpeCh0LDAsMCksb319byE9PWkmJmNvbnNvbGUud2FybihgTXVsdGlwbHlpbmcgJHtufSB4ICR7b30gYW5kICR7aX0geCAke2F9IG1hdHJpeDogZGltZW5zaW9ucyBkbyBub3QgbWF0Y2guYCk7bGV0IHM9TWF0aC5tYXgobixpKSxsPU1hdGgubWF4KG8sYSk7cmV0dXJuIGU9cihlLHMsbCksKGZ1bmN0aW9uIHQoZSxuLG8saSl7aWYobzw9NTEyfHxpPD01MTIpcmV0dXJuIGUubW11bChuKTtvJTI9PTEmJmklMj09MT8oZT1yKGUsbysxLGkrMSksbj1yKG4sbysxLGkrMSkpOm8lMj09MT8oZT1yKGUsbysxLGkpLG49cihuLG8rMSxpKSk6aSUyPT0xJiYoZT1yKGUsbyxpKzEpLG49cihuLG8saSsxKSk7bGV0IGE9cGFyc2VJbnQoZS5yb3dzLzIsMTApLHM9cGFyc2VJbnQoZS5jb2x1bW5zLzIsMTApLGw9ZS5zdWJNYXRyaXgoMCxhLTEsMCxzLTEpLGM9bi5zdWJNYXRyaXgoMCxhLTEsMCxzLTEpLGQ9ZS5zdWJNYXRyaXgoMCxhLTEscyxlLmNvbHVtbnMtMSkscD1uLnN1Yk1hdHJpeCgwLGEtMSxzLG4uY29sdW1ucy0xKSxtPWUuc3ViTWF0cml4KGEsZS5yb3dzLTEsMCxzLTEpLHU9bi5zdWJNYXRyaXgoYSxuLnJvd3MtMSwwLHMtMSksZj1lLnN1Yk1hdHJpeChhLGUucm93cy0xLHMsZS5jb2x1bW5zLTEpLGc9bi5zdWJNYXRyaXgoYSxuLnJvd3MtMSxzLG4uY29sdW1ucy0xKSxoPXQoZXZ0LmFkZChsLGYpLGV2dC5hZGQoYyxnKSxhLHMpLGI9dChldnQuYWRkKG0sZiksYyxhLHMpLHk9dChsLGV2dC5zdWIocCxnKSxhLHMpLF89dChmLGV2dC5zdWIodSxjKSxhLHMpLEM9dChldnQuYWRkKGwsZCksZyxhLHMpLE09dChldnQuc3ViKG0sbCksZXZ0LmFkZChjLHApLGEscyksdj10KGV2dC5zdWIoZCxmKSxldnQuYWRkKHUsZyksYSxzKSx4PWV2dC5hZGQoaCxfKTt4LnN1YihDKSx4LmFkZCh2KTtsZXQgTz1ldnQuYWRkKHksQyksUD1ldnQuYWRkKGIsXyksdz1ldnQuc3ViKGgsYik7dy5hZGQoeSksdy5hZGQoTSk7bGV0IGs9ZXZ0Lnplcm9zKDIqeC5yb3dzLDIqeC5jb2x1bW5zKTtyZXR1cm4gaz1rLnNldFN1Yk1hdHJpeCh4LDAsMCksaz1rLnNldFN1Yk1hdHJpeChPLHgucm93cywwKSxrPWsuc2V0U3ViTWF0cml4KFAsMCx4LmNvbHVtbnMpLGs9ay5zZXRTdWJNYXRyaXgodyx4LnJvd3MseC5jb2x1bW5zKSxrLnN1Yk1hdHJpeCgwLG8tMSwwLGktMSl9KShlLHQ9cih0LHMsbCkscyxsKX1zY2FsZVJvd3ModD17fSl7aWYoIm9iamVjdCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtjb25zdHttaW46ZT0wLG1heDpuPTF9PXQ7aWYoIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJtaW4gbXVzdCBiZSBhIG51bWJlciIpO2lmKCFOdW1iZXIuaXNGaW5pdGUobikpdGhyb3cgbmV3IFR5cGVFcnJvcigibWF4IG11c3QgYmUgYSBudW1iZXIiKTtpZihlPj1uKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Iik7bGV0IG89bmV3IGl2dCh0aGlzLnJvd3MsdGhpcy5jb2x1bW5zKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0Kyspe2NvbnN0IGk9dGhpcy5nZXRSb3codCk7aS5sZW5ndGg+MCYmQk10KGkse21pbjplLG1heDpuLG91dHB1dDppfSksby5zZXRSb3codCxpKX1yZXR1cm4gb31zY2FsZUNvbHVtbnModD17fSl7aWYoIm9iamVjdCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtjb25zdHttaW46ZT0wLG1heDpuPTF9PXQ7aWYoIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJtaW4gbXVzdCBiZSBhIG51bWJlciIpO2lmKCFOdW1iZXIuaXNGaW5pdGUobikpdGhyb3cgbmV3IFR5cGVFcnJvcigibWF4IG11c3QgYmUgYSBudW1iZXIiKTtpZihlPj1uKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Iik7bGV0IG89bmV3IGl2dCh0aGlzLnJvd3MsdGhpcy5jb2x1bW5zKTtmb3IobGV0IHQ9MDt0PHRoaXMuY29sdW1uczt0Kyspe2NvbnN0IGk9dGhpcy5nZXRDb2x1bW4odCk7aS5sZW5ndGgmJkJNdChpLHttaW46ZSxtYXg6bixvdXRwdXQ6aX0pLG8uc2V0Q29sdW1uKHQsaSl9cmV0dXJuIG99ZmxpcFJvd3MoKXtjb25zdCB0PU1hdGguY2VpbCh0aGlzLmNvbHVtbnMvMik7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dDtuKyspe2xldCB0PXRoaXMuZ2V0KGUsbiksbz10aGlzLmdldChlLHRoaXMuY29sdW1ucy0xLW4pO3RoaXMuc2V0KGUsbixvKSx0aGlzLnNldChlLHRoaXMuY29sdW1ucy0xLW4sdCl9cmV0dXJuIHRoaXN9ZmxpcENvbHVtbnMoKXtjb25zdCB0PU1hdGguY2VpbCh0aGlzLnJvd3MvMik7Zm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKWZvcihsZXQgbj0wO248dDtuKyspe2xldCB0PXRoaXMuZ2V0KG4sZSksbz10aGlzLmdldCh0aGlzLnJvd3MtMS1uLGUpO3RoaXMuc2V0KG4sZSxvKSx0aGlzLnNldCh0aGlzLnJvd3MtMS1uLGUsdCl9cmV0dXJuIHRoaXN9a3JvbmVja2VyUHJvZHVjdCh0KXt0PWl2dC5jaGVja01hdHJpeCh0KTtsZXQgZT10aGlzLnJvd3Msbj10aGlzLmNvbHVtbnMsbz10LnJvd3MsaT10LmNvbHVtbnMsYT1uZXcgaXZ0KGUqbyxuKmkpO2ZvcihsZXQgcj0wO3I8ZTtyKyspZm9yKGxldCBlPTA7ZTxuO2UrKylmb3IobGV0IG49MDtuPG87bisrKWZvcihsZXQgcz0wO3M8aTtzKyspYS5zZXQobypyK24saSplK3MsdGhpcy5nZXQocixlKSp0LmdldChuLHMpKTtyZXR1cm4gYX1rcm9uZWNrZXJTdW0odCl7aWYodD1pdnQuY2hlY2tNYXRyaXgodCksIXRoaXMuaXNTcXVhcmUoKXx8IXQuaXNTcXVhcmUoKSl0aHJvdyBuZXcgRXJyb3IoIktyb25lY2tlciBTdW0gbmVlZHMgdHdvIFNxdWFyZSBNYXRyaWNlcyIpO2xldCBlPXRoaXMucm93cyxuPXQucm93cyxvPXRoaXMua3JvbmVja2VyUHJvZHVjdChpdnQuZXllKG4sbikpLGk9aXZ0LmV5ZShlLGUpLmtyb25lY2tlclByb2R1Y3QodCk7cmV0dXJuIG8uYWRkKGkpfXRyYW5zcG9zZSgpe2xldCB0PW5ldyBpdnQodGhpcy5jb2x1bW5zLHRoaXMucm93cyk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0LnNldChuLGUsdGhpcy5nZXQoZSxuKSk7cmV0dXJuIHR9c29ydFJvd3ModD1udnQpe2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKyl0aGlzLnNldFJvdyhlLHRoaXMuZ2V0Um93KGUpLnNvcnQodCkpO3JldHVybiB0aGlzfXNvcnRDb2x1bW5zKHQ9bnZ0KXtmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXRDb2x1bW4oZSx0aGlzLmdldENvbHVtbihlKS5zb3J0KHQpKTtyZXR1cm4gdGhpc31zdWJNYXRyaXgodCxlLG4sbyl7Sk10KHRoaXMsdCxlLG4sbyk7bGV0IGk9bmV3IGl2dChlLXQrMSxvLW4rMSk7Zm9yKGxldCBhPXQ7YTw9ZTthKyspZm9yKGxldCBlPW47ZTw9bztlKyspaS5zZXQoYS10LGUtbix0aGlzLmdldChhLGUpKTtyZXR1cm4gaX1zdWJNYXRyaXhSb3codCxlLG4pe2lmKHZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PW4mJihuPXRoaXMuY29sdW1ucy0xKSxlPm58fGU8MHx8ZT49dGhpcy5jb2x1bW5zfHxuPDB8fG4+PXRoaXMuY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXJndW1lbnQgb3V0IG9mIHJhbmdlIik7bGV0IG89bmV3IGl2dCh0Lmxlbmd0aCxuLWUrMSk7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspZm9yKGxldCBhPWU7YTw9bjthKyspe2lmKHRbaV08MHx8dFtpXT49dGhpcy5yb3dzKXRocm93IG5ldyBSYW5nZUVycm9yKGBSb3cgaW5kZXggb3V0IG9mIHJhbmdlOiAke3RbaV19YCk7by5zZXQoaSxhLWUsdGhpcy5nZXQodFtpXSxhKSl9cmV0dXJuIG99c3ViTWF0cml4Q29sdW1uKHQsZSxuKXtpZih2b2lkIDA9PT1lJiYoZT0wKSx2b2lkIDA9PT1uJiYobj10aGlzLnJvd3MtMSksZT5ufHxlPDB8fGU+PXRoaXMucm93c3x8bjwwfHxuPj10aGlzLnJvd3MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkFyZ3VtZW50IG91dCBvZiByYW5nZSIpO2xldCBvPW5ldyBpdnQobi1lKzEsdC5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKWZvcihsZXQgYT1lO2E8PW47YSsrKXtpZih0W2ldPDB8fHRbaV0+PXRoaXMuY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgQ29sdW1uIGluZGV4IG91dCBvZiByYW5nZTogJHt0W2ldfWApO28uc2V0KGEtZSxpLHRoaXMuZ2V0KGEsdFtpXSkpfXJldHVybiBvfXNldFN1Yk1hdHJpeCh0LGUsbil7aWYoKHQ9aXZ0LmNoZWNrTWF0cml4KHQpKS5pc0VtcHR5KCkpcmV0dXJuIHRoaXM7Sk10KHRoaXMsZSxlK3Qucm93cy0xLG4sbit0LmNvbHVtbnMtMSk7Zm9yKGxldCBvPTA7bzx0LnJvd3M7bysrKWZvcihsZXQgaT0wO2k8dC5jb2x1bW5zO2krKyl0aGlzLnNldChlK28sbitpLHQuZ2V0KG8saSkpO3JldHVybiB0aGlzfXNlbGVjdGlvbih0LGUpe2xldCBuPShmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm57cm93OlhNdCh0LGUpLGNvbHVtbjpLTXQodCxuKX19KSh0aGlzLHQsZSksaT1uZXcgaXZ0KHQubGVuZ3RoLGUubGVuZ3RoKTtmb3IobGV0IHQ9MDt0PG4ucm93Lmxlbmd0aDt0Kyspe2xldCBlPW4ucm93W3RdO2ZvcihsZXQgbz0wO288bi5jb2x1bW4ubGVuZ3RoO28rKylpLnNldCh0LG8sdGhpcy5nZXQoZSxuLmNvbHVtbltvXSkpfXJldHVybiBpfXRyYWNlKCl7bGV0IHQ9TWF0aC5taW4odGhpcy5yb3dzLHRoaXMuY29sdW1ucyksZT0wO2ZvcihsZXQgbj0wO248dDtuKyspZSs9dGhpcy5nZXQobixuKTtyZXR1cm4gZX1jbG9uZSgpe2xldCB0PW5ldyBpdnQodGhpcy5yb3dzLHRoaXMuY29sdW1ucyk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0LnNldChlLG4sdGhpcy5nZXQoZSxuKSk7cmV0dXJuIHR9c3VtKHQpe3N3aXRjaCh0KXtjYXNlInJvdyI6cmV0dXJuKGZ1bmN0aW9uIGUodCl7bGV0IGU9UU10KHQucm93cyk7Zm9yKGxldCBuPTA7bjx0LnJvd3M7KytuKWZvcihsZXQgbz0wO288dC5jb2x1bW5zOysrbyllW25dKz10LmdldChuLG8pO3JldHVybiBlfSkodGhpcyk7Y2FzZSJjb2x1bW4iOnJldHVybihmdW5jdGlvbiBuKHQpe2xldCBlPVFNdCh0LmNvbHVtbnMpO2ZvcihsZXQgbj0wO248dC5yb3dzOysrbilmb3IobGV0IG89MDtvPHQuY29sdW1uczsrK28pZVtvXSs9dC5nZXQobixvKTtyZXR1cm4gZX0pKHRoaXMpO2Nhc2Ugdm9pZCAwOnJldHVybihmdW5jdGlvbiBvKHQpe2xldCBlPTA7Zm9yKGxldCBuPTA7bjx0LnJvd3M7bisrKWZvcihsZXQgbz0wO288dC5jb2x1bW5zO28rKyllKz10LmdldChuLG8pO3JldHVybiBlfSkodGhpcyk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgb3B0aW9uOiAke3R9YCl9fXByb2R1Y3QodCl7c3dpdGNoKHQpe2Nhc2Uicm93IjpyZXR1cm4oZnVuY3Rpb24gZSh0KXtsZXQgZT1RTXQodC5yb3dzLDEpO2ZvcihsZXQgbj0wO248dC5yb3dzOysrbilmb3IobGV0IG89MDtvPHQuY29sdW1uczsrK28pZVtuXSo9dC5nZXQobixvKTtyZXR1cm4gZX0pKHRoaXMpO2Nhc2UiY29sdW1uIjpyZXR1cm4oZnVuY3Rpb24gbih0KXtsZXQgZT1RTXQodC5jb2x1bW5zLDEpO2ZvcihsZXQgbj0wO248dC5yb3dzOysrbilmb3IobGV0IG89MDtvPHQuY29sdW1uczsrK28pZVtvXSo9dC5nZXQobixvKTtyZXR1cm4gZX0pKHRoaXMpO2Nhc2Ugdm9pZCAwOnJldHVybihmdW5jdGlvbiBvKHQpe2xldCBlPTE7Zm9yKGxldCBuPTA7bjx0LnJvd3M7bisrKWZvcihsZXQgbz0wO288dC5jb2x1bW5zO28rKyllKj10LmdldChuLG8pO3JldHVybiBlfSkodGhpcyk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgb3B0aW9uOiAke3R9YCl9fW1lYW4odCl7Y29uc3QgZT10aGlzLnN1bSh0KTtzd2l0Y2godCl7Y2FzZSJyb3ciOmZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKyllW3RdLz10aGlzLmNvbHVtbnM7cmV0dXJuIGU7Y2FzZSJjb2x1bW4iOmZvcihsZXQgdD0wO3Q8dGhpcy5jb2x1bW5zO3QrKyllW3RdLz10aGlzLnJvd3M7cmV0dXJuIGU7Y2FzZSB2b2lkIDA6cmV0dXJuIGUvdGhpcy5zaXplO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9wdGlvbjogJHt0fWApfX12YXJpYW5jZSh0LGU9e30pe2lmKCJvYmplY3QiPT10eXBlb2YgdCYmKGU9dCx0PXZvaWQgMCksIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtjb25zdHt1bmJpYXNlZDpuPSEwLG1lYW46bz10aGlzLm1lYW4odCl9PWU7aWYoImJvb2xlYW4iIT10eXBlb2Ygbil0aHJvdyBuZXcgVHlwZUVycm9yKCJ1bmJpYXNlZCBtdXN0IGJlIGEgYm9vbGVhbiIpO3N3aXRjaCh0KXtjYXNlInJvdyI6aWYoIUFycmF5LmlzQXJyYXkobykpdGhyb3cgbmV3IFR5cGVFcnJvcigibWVhbiBtdXN0IGJlIGFuIGFycmF5Iik7cmV0dXJuKGZ1bmN0aW9uIGUodCxuLG8pe2NvbnN0IGk9dC5yb3dzLGE9dC5jb2x1bW5zLHI9W107Zm9yKGxldCBlPTA7ZTxpO2UrKyl7bGV0IGk9MCxzPTAsbD0wO2ZvcihsZXQgbj0wO248YTtuKyspbD10LmdldChlLG4pLW9bZV0saSs9bCxzKz1sKmw7ci5wdXNoKG4/KHMtaSppL2EpLyhhLTEpOihzLWkqaS9hKS9hKX1yZXR1cm4gcn0pKHRoaXMsbixvKTtjYXNlImNvbHVtbiI6aWYoIUFycmF5LmlzQXJyYXkobykpdGhyb3cgbmV3IFR5cGVFcnJvcigibWVhbiBtdXN0IGJlIGFuIGFycmF5Iik7cmV0dXJuKGZ1bmN0aW9uIGkodCxlLG4pe2NvbnN0IG89dC5yb3dzLGk9dC5jb2x1bW5zLGE9W107Zm9yKGxldCByPTA7cjxpO3IrKyl7bGV0IGk9MCxzPTAsbD0wO2ZvcihsZXQgZT0wO2U8bztlKyspbD10LmdldChlLHIpLW5bcl0saSs9bCxzKz1sKmw7YS5wdXNoKGU/KHMtaSppL28pLyhvLTEpOihzLWkqaS9vKS9vKX1yZXR1cm4gYX0pKHRoaXMsbixvKTtjYXNlIHZvaWQgMDppZigibnVtYmVyIiE9dHlwZW9mIG8pdGhyb3cgbmV3IFR5cGVFcnJvcigibWVhbiBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuKGZ1bmN0aW9uIGEodCxlLG4pe2NvbnN0IG89dC5yb3dzLGk9dC5jb2x1bW5zLGE9byppO2xldCByPTAscz0wLGw9MDtmb3IobGV0IGU9MDtlPG87ZSsrKWZvcihsZXQgbz0wO288aTtvKyspbD10LmdldChlLG8pLW4scis9bCxzKz1sKmw7cmV0dXJuIGU/KHMtcipyL2EpLyhhLTEpOihzLXIqci9hKS9hfSkodGhpcyxuLG8pO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9wdGlvbjogJHt0fWApfX1zdGFuZGFyZERldmlhdGlvbih0LGUpeyJvYmplY3QiPT10eXBlb2YgdCYmKGU9dCx0PXZvaWQgMCk7Y29uc3Qgbj10aGlzLnZhcmlhbmNlKHQsZSk7aWYodm9pZCAwPT09dClyZXR1cm4gTWF0aC5zcXJ0KG4pO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKW5bdF09TWF0aC5zcXJ0KG5bdF0pO3JldHVybiBufWNlbnRlcih0LGU9e30pe2lmKCJvYmplY3QiPT10eXBlb2YgdCYmKGU9dCx0PXZvaWQgMCksIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtjb25zdHtjZW50ZXI6bj10aGlzLm1lYW4odCl9PWU7c3dpdGNoKHQpe2Nhc2Uicm93IjppZighQXJyYXkuaXNBcnJheShuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJjZW50ZXIgbXVzdCBiZSBhbiBhcnJheSIpO3JldHVybihmdW5jdGlvbiBlKHQsbil7Zm9yKGxldCBlPTA7ZTx0LnJvd3M7ZSsrKWZvcihsZXQgbz0wO288dC5jb2x1bW5zO28rKyl0LnNldChlLG8sdC5nZXQoZSxvKS1uW2VdKX0pKHRoaXMsbiksdGhpcztjYXNlImNvbHVtbiI6aWYoIUFycmF5LmlzQXJyYXkobikpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2VudGVyIG11c3QgYmUgYW4gYXJyYXkiKTtyZXR1cm4oZnVuY3Rpb24gbyh0LGUpe2ZvcihsZXQgbj0wO248dC5yb3dzO24rKylmb3IobGV0IG89MDtvPHQuY29sdW1ucztvKyspdC5zZXQobixvLHQuZ2V0KG4sbyktZVtvXSl9KSh0aGlzLG4pLHRoaXM7Y2FzZSB2b2lkIDA6aWYoIm51bWJlciIhPXR5cGVvZiBuKXRocm93IG5ldyBUeXBlRXJyb3IoImNlbnRlciBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuKGZ1bmN0aW9uIGkodCxlKXtmb3IobGV0IG49MDtuPHQucm93cztuKyspZm9yKGxldCBvPTA7bzx0LmNvbHVtbnM7bysrKXQuc2V0KG4sbyx0LmdldChuLG8pLWUpfSkodGhpcyxuKSx0aGlzO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9wdGlvbjogJHt0fWApfX1zY2FsZSh0LGU9e30pe2lmKCJvYmplY3QiPT10eXBlb2YgdCYmKGU9dCx0PXZvaWQgMCksIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtsZXQgbj1lLnNjYWxlO3N3aXRjaCh0KXtjYXNlInJvdyI6aWYodm9pZCAwPT09biluPShmdW5jdGlvbiBlKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjx0LnJvd3M7bisrKXtsZXQgbz0wO2ZvcihsZXQgZT0wO2U8dC5jb2x1bW5zO2UrKylvKz1NYXRoLnBvdyh0LmdldChuLGUpLDIpLyh0LmNvbHVtbnMtMSk7ZS5wdXNoKE1hdGguc3FydChvKSl9cmV0dXJuIGV9KSh0aGlzKTtlbHNlIGlmKCFBcnJheS5pc0FycmF5KG4pKXRocm93IG5ldyBUeXBlRXJyb3IoInNjYWxlIG11c3QgYmUgYW4gYXJyYXkiKTtyZXR1cm4oZnVuY3Rpb24gbyh0LGUpe2ZvcihsZXQgbj0wO248dC5yb3dzO24rKylmb3IobGV0IG89MDtvPHQuY29sdW1ucztvKyspdC5zZXQobixvLHQuZ2V0KG4sbykvZVtuXSl9KSh0aGlzLG4pLHRoaXM7Y2FzZSJjb2x1bW4iOmlmKHZvaWQgMD09PW4pbj0oZnVuY3Rpb24gaSh0KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248dC5jb2x1bW5zO24rKyl7bGV0IG89MDtmb3IobGV0IGU9MDtlPHQucm93cztlKyspbys9TWF0aC5wb3codC5nZXQoZSxuKSwyKS8odC5yb3dzLTEpO2UucHVzaChNYXRoLnNxcnQobykpfXJldHVybiBlfSkodGhpcyk7ZWxzZSBpZighQXJyYXkuaXNBcnJheShuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJzY2FsZSBtdXN0IGJlIGFuIGFycmF5Iik7cmV0dXJuKGZ1bmN0aW9uIGEodCxlKXtmb3IobGV0IG49MDtuPHQucm93cztuKyspZm9yKGxldCBvPTA7bzx0LmNvbHVtbnM7bysrKXQuc2V0KG4sbyx0LmdldChuLG8pL2Vbb10pfSkodGhpcyxuKSx0aGlzO2Nhc2Ugdm9pZCAwOmlmKHZvaWQgMD09PW4pbj0oZnVuY3Rpb24gcih0KXtjb25zdCBlPXQuc2l6ZS0xO2xldCBuPTA7Zm9yKGxldCBvPTA7bzx0LmNvbHVtbnM7bysrKWZvcihsZXQgaT0wO2k8dC5yb3dzO2krKyluKz1NYXRoLnBvdyh0LmdldChpLG8pLDIpL2U7cmV0dXJuIE1hdGguc3FydChuKX0pKHRoaXMpO2Vsc2UgaWYoIm51bWJlciIhPXR5cGVvZiBuKXRocm93IG5ldyBUeXBlRXJyb3IoInNjYWxlIG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4oZnVuY3Rpb24gcyh0LGUpe2ZvcihsZXQgbj0wO248dC5yb3dzO24rKylmb3IobGV0IG89MDtvPHQuY29sdW1ucztvKyspdC5zZXQobixvLHQuZ2V0KG4sbykvZSl9KSh0aGlzLG4pLHRoaXM7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgb3B0aW9uOiAke3R9YCl9fXRvU3RyaW5nKHQpe3JldHVybiBVTXQodGhpcyx0KX19ZnVuY3Rpb24gbnZ0KHQsZSl7cmV0dXJuIHQtZX1ldnQucHJvdG90eXBlLmtsYXNzPSJNYXRyaXgiLCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiYoZXZ0LnByb3RvdHlwZVtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpXT1mdW5jdGlvbiBvdnQoKXtyZXR1cm4gVU10KHRoaXMpfSksZXZ0LnJhbmRvbT1ldnQucmFuZCxldnQucmFuZG9tSW50PWV2dC5yYW5kSW50LGV2dC5kaWFnb25hbD1ldnQuZGlhZyxldnQucHJvdG90eXBlLmRpYWdvbmFsPWV2dC5wcm90b3R5cGUuZGlhZyxldnQuaWRlbnRpdHk9ZXZ0LmV5ZSxldnQucHJvdG90eXBlLm5lZ2F0ZT1ldnQucHJvdG90eXBlLm5lZyxldnQucHJvdG90eXBlLnRlbnNvclByb2R1Y3Q9ZXZ0LnByb3RvdHlwZS5rcm9uZWNrZXJQcm9kdWN0O2NsYXNzIGl2dCBleHRlbmRzIGV2dHtjb25zdHJ1Y3Rvcih0LGUpe2lmKHN1cGVyKCksaXZ0LmlzTWF0cml4KHQpKXJldHVybiB0LmNsb25lKCk7aWYoTnVtYmVyLmlzSW50ZWdlcih0KSYmdD49MCl7aWYodGhpcy5kYXRhPVtdLCEoTnVtYmVyLmlzSW50ZWdlcihlKSYmZT49MCkpdGhyb3cgbmV3IFR5cGVFcnJvcigibkNvbHVtbnMgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIiKTtmb3IobGV0IG49MDtuPHQ7bisrKXRoaXMuZGF0YS5wdXNoKG5ldyBGbG9hdDY0QXJyYXkoZSkpfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBvciBhbiBhcnJheSIpO3tjb25zdCBuPXQ7aWYoIm51bWJlciIhPXR5cGVvZihlPSh0PW4ubGVuZ3RoKT9uWzBdLmxlbmd0aDowKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEYXRhIG11c3QgYmUgYSAyRCBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50Iik7dGhpcy5kYXRhPVtdO2ZvcihsZXQgbz0wO288dDtvKyspe2lmKG5bb10ubGVuZ3RoIT09ZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5jb25zaXN0ZW50IGFycmF5IGRpbWVuc2lvbnMiKTt0aGlzLmRhdGEucHVzaChGbG9hdDY0QXJyYXkuZnJvbShuW29dKSl9fX10aGlzLnJvd3M9dCx0aGlzLmNvbHVtbnM9ZX1zZXQodCxlLG4pe3JldHVybiB0aGlzLmRhdGFbdF1bZV09bix0aGlzfWdldCh0LGUpe3JldHVybiB0aGlzLmRhdGFbdF1bZV19cmVtb3ZlUm93KHQpe3JldHVybiBXTXQodGhpcyx0KSx0aGlzLmRhdGEuc3BsaWNlKHQsMSksdGhpcy5yb3dzLT0xLHRoaXN9YWRkUm93KHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXQsdD10aGlzLnJvd3MpLFdNdCh0aGlzLHQsITApLGU9RmxvYXQ2NEFycmF5LmZyb20ocU10KHRoaXMsZSkpLHRoaXMuZGF0YS5zcGxpY2UodCwwLGUpLHRoaXMucm93cys9MSx0aGlzfXJlbW92ZUNvbHVtbih0KXtZTXQodGhpcyx0KTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspe2NvbnN0IG49bmV3IEZsb2F0NjRBcnJheSh0aGlzLmNvbHVtbnMtMSk7Zm9yKGxldCBvPTA7bzx0O28rKyluW29dPXRoaXMuZGF0YVtlXVtvXTtmb3IobGV0IG89dCsxO288dGhpcy5jb2x1bW5zO28rKyluW28tMV09dGhpcy5kYXRhW2VdW29dO3RoaXMuZGF0YVtlXT1ufXJldHVybiB0aGlzLmNvbHVtbnMtPTEsdGhpc31hZGRDb2x1bW4odCxlKXt2b2lkIDA9PT1lJiYoZT10LHQ9dGhpcy5jb2x1bW5zKSxZTXQodGhpcyx0LCEwKSxlPVpNdCh0aGlzLGUpO2ZvcihsZXQgbj0wO248dGhpcy5yb3dzO24rKyl7Y29uc3Qgbz1uZXcgRmxvYXQ2NEFycmF5KHRoaXMuY29sdW1ucysxKTtsZXQgaT0wO2Zvcig7aTx0O2krKylvW2ldPXRoaXMuZGF0YVtuXVtpXTtmb3Iob1tpKytdPWVbbl07aTx0aGlzLmNvbHVtbnMrMTtpKyspb1tpXT10aGlzLmRhdGFbbl1baS0xXTt0aGlzLmRhdGFbbl09b31yZXR1cm4gdGhpcy5jb2x1bW5zKz0xLHRoaXN9fSEoZnVuY3Rpb24gYXZ0KHQsZSl7dC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuYWRkUyhlKTp0aGlzLmFkZE0oZSl9LHQucHJvdG90eXBlLmFkZFM9ZnVuY3Rpb24gdChlKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbix0aGlzLmdldCh0LG4pK2UpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5hZGRNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpK24uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0LmFkZD1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLmFkZChvKX0sdC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuc3ViUyhlKTp0aGlzLnN1Yk0oZSl9LHQucHJvdG90eXBlLnN1YlM9ZnVuY3Rpb24gdChlKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbix0aGlzLmdldCh0LG4pLWUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5zdWJNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpLW4uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0LnN1Yj1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLnN1YihvKX0sdC5wcm90b3R5cGUuc3VidHJhY3Q9dC5wcm90b3R5cGUuc3ViLHQucHJvdG90eXBlLnN1YnRyYWN0Uz10LnByb3RvdHlwZS5zdWJTLHQucHJvdG90eXBlLnN1YnRyYWN0TT10LnByb3RvdHlwZS5zdWJNLHQuc3VidHJhY3Q9dC5zdWIsdC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMubXVsUyhlKTp0aGlzLm11bE0oZSl9LHQucHJvdG90eXBlLm11bFM9ZnVuY3Rpb24gdChlKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbix0aGlzLmdldCh0LG4pKmUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5tdWxNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpKm4uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0Lm11bD1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLm11bChvKX0sdC5wcm90b3R5cGUubXVsdGlwbHk9dC5wcm90b3R5cGUubXVsLHQucHJvdG90eXBlLm11bHRpcGx5Uz10LnByb3RvdHlwZS5tdWxTLHQucHJvdG90eXBlLm11bHRpcGx5TT10LnByb3RvdHlwZS5tdWxNLHQubXVsdGlwbHk9dC5tdWwsdC5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uIHQoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuZGl2UyhlKTp0aGlzLmRpdk0oZSl9LHQucHJvdG90eXBlLmRpdlM9ZnVuY3Rpb24gdChlKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbix0aGlzLmdldCh0LG4pL2UpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5kaXZNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpL24uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0LmRpdj1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLmRpdihvKX0sdC5wcm90b3R5cGUuZGl2aWRlPXQucHJvdG90eXBlLmRpdix0LnByb3RvdHlwZS5kaXZpZGVTPXQucHJvdG90eXBlLmRpdlMsdC5wcm90b3R5cGUuZGl2aWRlTT10LnByb3RvdHlwZS5kaXZNLHQuZGl2aWRlPXQuZGl2LHQucHJvdG90eXBlLm1vZD1mdW5jdGlvbiB0KGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZT90aGlzLm1vZFMoZSk6dGhpcy5tb2RNKGUpfSx0LnByb3RvdHlwZS5tb2RTPWZ1bmN0aW9uIHQoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldCh0LG4sdGhpcy5nZXQodCxuKSVlKTtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUubW9kTT1mdW5jdGlvbiB0KG4pe2lmKG49ZS5jaGVja01hdHJpeChuKSx0aGlzLnJvd3MhPT1uLnJvd3N8fHRoaXMuY29sdW1ucyE9PW4uY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTWF0cmljZXMgZGltZW5zaW9ucyBtdXN0IGJlIGVxdWFsIik7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsdGhpcy5nZXQodCxlKSVuLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC5tb2Q9ZnVuY3Rpb24gdChuLG8pe3JldHVybiBuZXcgZShuKS5tb2Qobyl9LHQucHJvdG90eXBlLm1vZHVsdXM9dC5wcm90b3R5cGUubW9kLHQucHJvdG90eXBlLm1vZHVsdXNTPXQucHJvdG90eXBlLm1vZFMsdC5wcm90b3R5cGUubW9kdWx1c009dC5wcm90b3R5cGUubW9kTSx0Lm1vZHVsdXM9dC5tb2QsdC5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuYW5kUyhlKTp0aGlzLmFuZE0oZSl9LHQucHJvdG90eXBlLmFuZFM9ZnVuY3Rpb24gdChlKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbix0aGlzLmdldCh0LG4pJmUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5hbmRNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpJm4uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0LmFuZD1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLmFuZChvKX0sdC5wcm90b3R5cGUub3I9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5vclMoZSk6dGhpcy5vck0oZSl9LHQucHJvdG90eXBlLm9yUz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbil8ZSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLm9yTT1mdW5jdGlvbiB0KG4pe2lmKG49ZS5jaGVja01hdHJpeChuKSx0aGlzLnJvd3MhPT1uLnJvd3N8fHRoaXMuY29sdW1ucyE9PW4uY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTWF0cmljZXMgZGltZW5zaW9ucyBtdXN0IGJlIGVxdWFsIik7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsdGhpcy5nZXQodCxlKXxuLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC5vcj1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLm9yKG8pfSx0LnByb3RvdHlwZS54b3I9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy54b3JTKGUpOnRoaXMueG9yTShlKX0sdC5wcm90b3R5cGUueG9yUz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbileZSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLnhvck09ZnVuY3Rpb24gdChuKXtpZihuPWUuY2hlY2tNYXRyaXgobiksdGhpcy5yb3dzIT09bi5yb3dzfHx0aGlzLmNvbHVtbnMhPT1uLmNvbHVtbnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk1hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCIpO2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLHRoaXMuZ2V0KHQsZSlebi5nZXQodCxlKSk7cmV0dXJuIHRoaXN9LHQueG9yPWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikueG9yKG8pfSx0LnByb3RvdHlwZS5sZWZ0U2hpZnQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5sZWZ0U2hpZnRTKGUpOnRoaXMubGVmdFNoaWZ0TShlKX0sdC5wcm90b3R5cGUubGVmdFNoaWZ0Uz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbik8PGUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5sZWZ0U2hpZnRNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpPDxuLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC5sZWZ0U2hpZnQ9ZnVuY3Rpb24gdChuLG8pe3JldHVybiBuZXcgZShuKS5sZWZ0U2hpZnQobyl9LHQucHJvdG90eXBlLnNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0UyhlKTp0aGlzLnNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnRNKGUpfSx0LnByb3RvdHlwZS5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0Uz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbik+PmUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0TT1mdW5jdGlvbiB0KG4pe2lmKG49ZS5jaGVja01hdHJpeChuKSx0aGlzLnJvd3MhPT1uLnJvd3N8fHRoaXMuY29sdW1ucyE9PW4uY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTWF0cmljZXMgZGltZW5zaW9ucyBtdXN0IGJlIGVxdWFsIik7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsdGhpcy5nZXQodCxlKT4+bi5nZXQodCxlKSk7cmV0dXJuIHRoaXN9LHQuc2lnblByb3BhZ2F0aW5nUmlnaHRTaGlmdD1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLnNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnQobyl9LHQucHJvdG90eXBlLnJpZ2h0U2hpZnQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5yaWdodFNoaWZ0UyhlKTp0aGlzLnJpZ2h0U2hpZnRNKGUpfSx0LnByb3RvdHlwZS5yaWdodFNoaWZ0Uz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbik+Pj5lKTtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUucmlnaHRTaGlmdE09ZnVuY3Rpb24gdChuKXtpZihuPWUuY2hlY2tNYXRyaXgobiksdGhpcy5yb3dzIT09bi5yb3dzfHx0aGlzLmNvbHVtbnMhPT1uLmNvbHVtbnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk1hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCIpO2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLHRoaXMuZ2V0KHQsZSk+Pj5uLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC5yaWdodFNoaWZ0PWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikucmlnaHRTaGlmdChvKX0sdC5wcm90b3R5cGUuemVyb0ZpbGxSaWdodFNoaWZ0PXQucHJvdG90eXBlLnJpZ2h0U2hpZnQsdC5wcm90b3R5cGUuemVyb0ZpbGxSaWdodFNoaWZ0Uz10LnByb3RvdHlwZS5yaWdodFNoaWZ0Uyx0LnByb3RvdHlwZS56ZXJvRmlsbFJpZ2h0U2hpZnRNPXQucHJvdG90eXBlLnJpZ2h0U2hpZnRNLHQuemVyb0ZpbGxSaWdodFNoaWZ0PXQucmlnaHRTaGlmdCx0LnByb3RvdHlwZS5ub3Q9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLH50aGlzLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC5ub3Q9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikubm90KCl9LHQucHJvdG90eXBlLmFicz1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5hYnModGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmFicz1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5hYnMoKX0sdC5wcm90b3R5cGUuYWNvcz1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5hY29zKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5hY29zPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmFjb3MoKX0sdC5wcm90b3R5cGUuYWNvc2g9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguYWNvc2godGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmFjb3NoPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmFjb3NoKCl9LHQucHJvdG90eXBlLmFzaW49ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguYXNpbih0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuYXNpbj1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5hc2luKCl9LHQucHJvdG90eXBlLmFzaW5oPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmFzaW5oKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5hc2luaD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5hc2luaCgpfSx0LnByb3RvdHlwZS5hdGFuPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmF0YW4odGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmF0YW49ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuYXRhbigpfSx0LnByb3RvdHlwZS5hdGFuaD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5hdGFuaCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuYXRhbmg9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuYXRhbmgoKX0sdC5wcm90b3R5cGUuY2JydD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5jYnJ0KHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5jYnJ0PWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmNicnQoKX0sdC5wcm90b3R5cGUuY2VpbD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5jZWlsKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5jZWlsPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmNlaWwoKX0sdC5wcm90b3R5cGUuY2x6MzI9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguY2x6MzIodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmNsejMyPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmNsejMyKCl9LHQucHJvdG90eXBlLmNvcz1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5jb3ModGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmNvcz1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5jb3MoKX0sdC5wcm90b3R5cGUuY29zaD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5jb3NoKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5jb3NoPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmNvc2goKX0sdC5wcm90b3R5cGUuZXhwPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmV4cCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuZXhwPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmV4cCgpfSx0LnByb3RvdHlwZS5leHBtMT1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5leHBtMSh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuZXhwbTE9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuZXhwbTEoKX0sdC5wcm90b3R5cGUuZmxvb3I9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguZmxvb3IodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmZsb29yPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmZsb29yKCl9LHQucHJvdG90eXBlLmZyb3VuZD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5mcm91bmQodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmZyb3VuZD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5mcm91bmQoKX0sdC5wcm90b3R5cGUubG9nPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmxvZyh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQubG9nPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmxvZygpfSx0LnByb3RvdHlwZS5sb2cxcD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5sb2cxcCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQubG9nMXA9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikubG9nMXAoKX0sdC5wcm90b3R5cGUubG9nMTA9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGgubG9nMTAodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmxvZzEwPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmxvZzEwKCl9LHQucHJvdG90eXBlLmxvZzI9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGgubG9nMih0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQubG9nMj1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5sb2cyKCl9LHQucHJvdG90eXBlLnJvdW5kPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLnJvdW5kKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5yb3VuZD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5yb3VuZCgpfSx0LnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLnNpZ24odGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LnNpZ249ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuc2lnbigpfSx0LnByb3RvdHlwZS5zaW49ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguc2luKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5zaW49ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuc2luKCl9LHQucHJvdG90eXBlLnNpbmg9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguc2luaCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuc2luaD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5zaW5oKCl9LHQucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguc3FydCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuc3FydD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5zcXJ0KCl9LHQucHJvdG90eXBlLnRhbj1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC50YW4odGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LnRhbj1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS50YW4oKX0sdC5wcm90b3R5cGUudGFuaD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC50YW5oKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC50YW5oPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLnRhbmgoKX0sdC5wcm90b3R5cGUudHJ1bmM9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGgudHJ1bmModGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LnRydW5jPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLnRydW5jKCl9LHQucG93PWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikucG93KG8pfSx0LnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5wb3dTKGUpOnRoaXMucG93TShlKX0sdC5wcm90b3R5cGUucG93Uz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLE1hdGgucG93KHRoaXMuZ2V0KHQsbiksZSkpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5wb3dNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLnBvdyh0aGlzLmdldCh0LGUpLG4uZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc319KShldnQsaXZ0KTtjbGFzcyBydnQgZXh0ZW5kcyBldnR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRhdGE9dCx0aGlzLnJvd3M9dC5sZW5ndGgsdGhpcy5jb2x1bW5zPXRbMF0ubGVuZ3RofXNldCh0LGUsbil7cmV0dXJuIHRoaXMuZGF0YVt0XVtlXT1uLHRoaXN9Z2V0KHQsZSl7cmV0dXJuIHRoaXMuZGF0YVt0XVtlXX19Y2xhc3Mgc3Z0e2NvbnN0cnVjdG9yKHQpe2xldCBlLG4sbyxpLGEscixzLGwsYyxkPSh0PXJ2dC5jaGVja01hdHJpeCh0KSkuY2xvbmUoKSxwPWQucm93cyxtPWQuY29sdW1ucyx1PW5ldyBGbG9hdDY0QXJyYXkocCksZj0xO2ZvcihlPTA7ZTxwO2UrKyl1W2VdPWU7Zm9yKGw9bmV3IEZsb2F0NjRBcnJheShwKSxuPTA7bjxtO24rKyl7Zm9yKGU9MDtlPHA7ZSsrKWxbZV09ZC5nZXQoZSxuKTtmb3IoZT0wO2U8cDtlKyspe2ZvcihjPU1hdGgubWluKGUsbiksYT0wLG89MDtvPGM7bysrKWErPWQuZ2V0KGUsbykqbFtvXTtsW2VdLT1hLGQuc2V0KGUsbixsW2VdKX1mb3IoaT1uLGU9bisxO2U8cDtlKyspTWF0aC5hYnMobFtlXSk+TWF0aC5hYnMobFtpXSkmJihpPWUpO2lmKGkhPT1uKXtmb3Iobz0wO288bTtvKyspcj1kLmdldChpLG8pLGQuc2V0KGksbyxkLmdldChuLG8pKSxkLnNldChuLG8scik7cz11W2ldLHVbaV09dVtuXSx1W25dPXMsZj0tZn1pZihuPHAmJjAhPT1kLmdldChuLG4pKWZvcihlPW4rMTtlPHA7ZSsrKWQuc2V0KGUsbixkLmdldChlLG4pL2QuZ2V0KG4sbikpfXRoaXMuTFU9ZCx0aGlzLnBpdm90VmVjdG9yPXUsdGhpcy5waXZvdFNpZ249Zn1pc1Npbmd1bGFyKCl7bGV0IHQ9dGhpcy5MVSxlPXQuY29sdW1ucztmb3IobGV0IG49MDtuPGU7bisrKWlmKDA9PT10LmdldChuLG4pKXJldHVybiEwO3JldHVybiExfXNvbHZlKHQpe3Q9aXZ0LmNoZWNrTWF0cml4KHQpO2xldCBlPXRoaXMuTFU7aWYoZS5yb3dzIT09dC5yb3dzKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBtYXRyaXggZGltZW5zaW9ucyIpO2lmKHRoaXMuaXNTaW5ndWxhcigpKXRocm93IG5ldyBFcnJvcigiTFUgbWF0cml4IGlzIHNpbmd1bGFyIik7bGV0IG4sbyxpLGE9dC5jb2x1bW5zLHI9dC5zdWJNYXRyaXhSb3codGhpcy5waXZvdFZlY3RvciwwLGEtMSkscz1lLmNvbHVtbnM7Zm9yKGk9MDtpPHM7aSsrKWZvcihuPWkrMTtuPHM7bisrKWZvcihvPTA7bzxhO28rKylyLnNldChuLG8sci5nZXQobixvKS1yLmdldChpLG8pKmUuZ2V0KG4saSkpO2ZvcihpPXMtMTtpPj0wO2ktLSl7Zm9yKG89MDtvPGE7bysrKXIuc2V0KGksbyxyLmdldChpLG8pL2UuZ2V0KGksaSkpO2ZvcihuPTA7bjxpO24rKylmb3Iobz0wO288YTtvKyspci5zZXQobixvLHIuZ2V0KG4sbyktci5nZXQoaSxvKSplLmdldChuLGkpKX1yZXR1cm4gcn1nZXQgZGV0ZXJtaW5hbnQoKXtsZXQgdD10aGlzLkxVO2lmKCF0LmlzU3F1YXJlKCkpdGhyb3cgbmV3IEVycm9yKCJNYXRyaXggbXVzdCBiZSBzcXVhcmUiKTtsZXQgZT10aGlzLnBpdm90U2lnbixuPXQuY29sdW1ucztmb3IobGV0IG89MDtvPG47bysrKWUqPXQuZ2V0KG8sbyk7cmV0dXJuIGV9Z2V0IGxvd2VyVHJpYW5ndWxhck1hdHJpeCgpe2xldCB0PXRoaXMuTFUsZT10LnJvd3Msbj10LmNvbHVtbnMsbz1uZXcgaXZ0KGUsbik7Zm9yKGxldCBpPTA7aTxlO2krKylmb3IobGV0IGU9MDtlPG47ZSsrKW8uc2V0KGksZSxpPmU/dC5nZXQoaSxlKTppPT09ZT8xOjApO3JldHVybiBvfWdldCB1cHBlclRyaWFuZ3VsYXJNYXRyaXgoKXtsZXQgdD10aGlzLkxVLGU9dC5yb3dzLG49dC5jb2x1bW5zLG89bmV3IGl2dChlLG4pO2ZvcihsZXQgaT0wO2k8ZTtpKyspZm9yKGxldCBlPTA7ZTxuO2UrKylvLnNldChpLGUsaTw9ZT90LmdldChpLGUpOjApO3JldHVybiBvfWdldCBwaXZvdFBlcm11dGF0aW9uVmVjdG9yKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5waXZvdFZlY3Rvcil9fWZ1bmN0aW9uIGx2dCh0LGUpe2xldCBuPTA7cmV0dXJuIE1hdGguYWJzKHQpPk1hdGguYWJzKGUpPyhuPWUvdCxNYXRoLmFicyh0KSpNYXRoLnNxcnQoMStuKm4pKTowIT09ZT8obj10L2UsTWF0aC5hYnMoZSkqTWF0aC5zcXJ0KDErbipuKSk6MH1jbGFzcyBjdnR7Y29uc3RydWN0b3IodCl7bGV0IGUsbixvLGksYT0odD1ydnQuY2hlY2tNYXRyaXgodCkpLmNsb25lKCkscj10LnJvd3Mscz10LmNvbHVtbnMsbD1uZXcgRmxvYXQ2NEFycmF5KHMpO2ZvcihvPTA7bzxzO28rKyl7bGV0IHQ9MDtmb3IoZT1vO2U8cjtlKyspdD1sdnQodCxhLmdldChlLG8pKTtpZigwIT09dCl7Zm9yKGEuZ2V0KG8sbyk8MCYmKHQ9LXQpLGU9bztlPHI7ZSsrKWEuc2V0KGUsbyxhLmdldChlLG8pL3QpO2ZvcihhLnNldChvLG8sYS5nZXQobyxvKSsxKSxuPW8rMTtuPHM7bisrKXtmb3IoaT0wLGU9bztlPHI7ZSsrKWkrPWEuZ2V0KGUsbykqYS5nZXQoZSxuKTtmb3IoaT0taS9hLmdldChvLG8pLGU9bztlPHI7ZSsrKWEuc2V0KGUsbixhLmdldChlLG4pK2kqYS5nZXQoZSxvKSl9fWxbb109LXR9dGhpcy5RUj1hLHRoaXMuUmRpYWc9bH1zb2x2ZSh0KXt0PWl2dC5jaGVja01hdHJpeCh0KTtsZXQgZT10aGlzLlFSLG49ZS5yb3dzO2lmKHQucm93cyE9PW4pdGhyb3cgbmV3IEVycm9yKCJNYXRyaXggcm93IGRpbWVuc2lvbnMgbXVzdCBhZ3JlZSIpO2lmKCF0aGlzLmlzRnVsbFJhbmsoKSl0aHJvdyBuZXcgRXJyb3IoIk1hdHJpeCBpcyByYW5rIGRlZmljaWVudCIpO2xldCBvLGksYSxyLHM9dC5jb2x1bW5zLGw9dC5jbG9uZSgpLGM9ZS5jb2x1bW5zO2ZvcihhPTA7YTxjO2ErKylmb3IoaT0wO2k8cztpKyspe2ZvcihyPTAsbz1hO288bjtvKyspcis9ZS5nZXQobyxhKSpsLmdldChvLGkpO2ZvcihyPS1yL2UuZ2V0KGEsYSksbz1hO288bjtvKyspbC5zZXQobyxpLGwuZ2V0KG8saSkrciplLmdldChvLGEpKX1mb3IoYT1jLTE7YT49MDthLS0pe2ZvcihpPTA7aTxzO2krKylsLnNldChhLGksbC5nZXQoYSxpKS90aGlzLlJkaWFnW2FdKTtmb3Iobz0wO288YTtvKyspZm9yKGk9MDtpPHM7aSsrKWwuc2V0KG8saSxsLmdldChvLGkpLWwuZ2V0KGEsaSkqZS5nZXQobyxhKSl9cmV0dXJuIGwuc3ViTWF0cml4KDAsYy0xLDAscy0xKX1pc0Z1bGxSYW5rKCl7bGV0IHQ9dGhpcy5RUi5jb2x1bW5zO2ZvcihsZXQgZT0wO2U8dDtlKyspaWYoMD09PXRoaXMuUmRpYWdbZV0pcmV0dXJuITE7cmV0dXJuITB9Z2V0IHVwcGVyVHJpYW5ndWxhck1hdHJpeCgpe2xldCB0LGUsbj10aGlzLlFSLG89bi5jb2x1bW5zLGk9bmV3IGl2dChvLG8pO2Zvcih0PTA7dDxvO3QrKylmb3IoZT0wO2U8bztlKyspaS5zZXQodCxlLHQ8ZT9uLmdldCh0LGUpOnQ9PT1lP3RoaXMuUmRpYWdbdF06MCk7cmV0dXJuIGl9Z2V0IG9ydGhvZ29uYWxNYXRyaXgoKXtsZXQgdCxlLG4sbyxpPXRoaXMuUVIsYT1pLnJvd3Mscj1pLmNvbHVtbnMscz1uZXcgaXZ0KGEscik7Zm9yKG49ci0xO24+PTA7bi0tKXtmb3IodD0wO3Q8YTt0Kyspcy5zZXQodCxuLDApO2ZvcihzLnNldChuLG4sMSksZT1uO2U8cjtlKyspaWYoMCE9PWkuZ2V0KG4sbikpe2ZvcihvPTAsdD1uO3Q8YTt0Kyspbys9aS5nZXQodCxuKSpzLmdldCh0LGUpO2ZvcihvPS1vL2kuZ2V0KG4sbiksdD1uO3Q8YTt0Kyspcy5zZXQodCxlLHMuZ2V0KHQsZSkrbyppLmdldCh0LG4pKX19cmV0dXJuIHN9fWNsYXNzIGR2dHtjb25zdHJ1Y3Rvcih0LGU9e30pe2lmKCh0PXJ2dC5jaGVja01hdHJpeCh0KSkuaXNFbXB0eSgpKXRocm93IG5ldyBFcnJvcigiTWF0cml4IG11c3QgYmUgbm9uLWVtcHR5Iik7bGV0IG49dC5yb3dzLG89dC5jb2x1bW5zO2NvbnN0e2NvbXB1dGVMZWZ0U2luZ3VsYXJWZWN0b3JzOmk9ITAsY29tcHV0ZVJpZ2h0U2luZ3VsYXJWZWN0b3JzOmE9ITAsYXV0b1RyYW5zcG9zZTpyPSExfT1lO2xldCBzLGw9Qm9vbGVhbihpKSxjPUJvb2xlYW4oYSksZD0hMTtpZihuPG8paWYocil7cz10LnRyYW5zcG9zZSgpLG49cy5yb3dzLG89cy5jb2x1bW5zLGQ9ITA7bGV0IGU9bDtsPWMsYz1lfWVsc2Ugcz10LmNsb25lKCksY29uc29sZS53YXJuKCJDb21wdXRpbmcgU1ZEIG9uIGEgbWF0cml4IHdpdGggbW9yZSBjb2x1bW5zIHRoYW4gcm93cy4gQ29uc2lkZXIgZW5hYmxpbmcgYXV0b1RyYW5zcG9zZSIpO2Vsc2Ugcz10LmNsb25lKCk7bGV0IHA9TWF0aC5taW4obixvKSxtPU1hdGgubWluKG4rMSxvKSx1PW5ldyBGbG9hdDY0QXJyYXkobSksZj1uZXcgaXZ0KG4scCksZz1uZXcgaXZ0KG8sbyksaD1uZXcgRmxvYXQ2NEFycmF5KG8pLGI9bmV3IEZsb2F0NjRBcnJheShuKSx5PW5ldyBGbG9hdDY0QXJyYXkobSk7Zm9yKGxldCB0PTA7dDxtO3QrKyl5W3RdPXQ7bGV0IF89TWF0aC5taW4obi0xLG8pLEM9TWF0aC5tYXgoMCxNYXRoLm1pbihvLTIsbikpLE09TWF0aC5tYXgoXyxDKTtmb3IobGV0IHQ9MDt0PE07dCsrKXtpZih0PF8pe3VbdF09MDtmb3IobGV0IGU9dDtlPG47ZSsrKXVbdF09bHZ0KHVbdF0scy5nZXQoZSx0KSk7aWYoMCE9PXVbdF0pe3MuZ2V0KHQsdCk8MCYmKHVbdF09LXVbdF0pO2ZvcihsZXQgZT10O2U8bjtlKyspcy5zZXQoZSx0LHMuZ2V0KGUsdCkvdVt0XSk7cy5zZXQodCx0LHMuZ2V0KHQsdCkrMSl9dVt0XT0tdVt0XX1mb3IobGV0IGU9dCsxO2U8bztlKyspe2lmKHQ8XyYmMCE9PXVbdF0pe2xldCBvPTA7Zm9yKGxldCBpPXQ7aTxuO2krKylvKz1zLmdldChpLHQpKnMuZ2V0KGksZSk7bz0tby9zLmdldCh0LHQpO2ZvcihsZXQgaT10O2k8bjtpKyspcy5zZXQoaSxlLHMuZ2V0KGksZSkrbypzLmdldChpLHQpKX1oW2VdPXMuZ2V0KHQsZSl9aWYobCYmdDxfKWZvcihsZXQgZT10O2U8bjtlKyspZi5zZXQoZSx0LHMuZ2V0KGUsdCkpO2lmKHQ8Qyl7aFt0XT0wO2ZvcihsZXQgZT10KzE7ZTxvO2UrKyloW3RdPWx2dChoW3RdLGhbZV0pO2lmKDAhPT1oW3RdKXtoW3QrMV08MCYmKGhbdF09MC1oW3RdKTtmb3IobGV0IGU9dCsxO2U8bztlKyspaFtlXS89aFt0XTtoW3QrMV0rPTF9aWYoaFt0XT0taFt0XSx0KzE8biYmMCE9PWhbdF0pe2ZvcihsZXQgZT10KzE7ZTxuO2UrKyliW2VdPTA7Zm9yKGxldCBlPXQrMTtlPG47ZSsrKWZvcihsZXQgbj10KzE7bjxvO24rKyliW2VdKz1oW25dKnMuZ2V0KGUsbik7Zm9yKGxldCBlPXQrMTtlPG87ZSsrKXtsZXQgbz0taFtlXS9oW3QrMV07Zm9yKGxldCBpPXQrMTtpPG47aSsrKXMuc2V0KGksZSxzLmdldChpLGUpK28qYltpXSl9fWlmKGMpZm9yKGxldCBlPXQrMTtlPG87ZSsrKWcuc2V0KGUsdCxoW2VdKX19bGV0IHY9TWF0aC5taW4obyxuKzEpO2lmKF88byYmKHVbX109cy5nZXQoXyxfKSksbjx2JiYodVt2LTFdPTApLEMrMTx2JiYoaFtDXT1zLmdldChDLHYtMSkpLGhbdi0xXT0wLGwpe2ZvcihsZXQgdD1fO3Q8cDt0Kyspe2ZvcihsZXQgZT0wO2U8bjtlKyspZi5zZXQoZSx0LDApO2Yuc2V0KHQsdCwxKX1mb3IobGV0IHQ9Xy0xO3Q+PTA7dC0tKWlmKDAhPT11W3RdKXtmb3IobGV0IGU9dCsxO2U8cDtlKyspe2xldCBvPTA7Zm9yKGxldCBpPXQ7aTxuO2krKylvKz1mLmdldChpLHQpKmYuZ2V0KGksZSk7bz0tby9mLmdldCh0LHQpO2ZvcihsZXQgaT10O2k8bjtpKyspZi5zZXQoaSxlLGYuZ2V0KGksZSkrbypmLmdldChpLHQpKX1mb3IobGV0IGU9dDtlPG47ZSsrKWYuc2V0KGUsdCwtZi5nZXQoZSx0KSk7Zi5zZXQodCx0LDErZi5nZXQodCx0KSk7Zm9yKGxldCBlPTA7ZTx0LTE7ZSsrKWYuc2V0KGUsdCwwKX1lbHNle2ZvcihsZXQgZT0wO2U8bjtlKyspZi5zZXQoZSx0LDApO2Yuc2V0KHQsdCwxKX19aWYoYylmb3IobGV0IHQ9by0xO3Q+PTA7dC0tKXtpZih0PEMmJjAhPT1oW3RdKWZvcihsZXQgZT10KzE7ZTxvO2UrKyl7bGV0IG49MDtmb3IobGV0IGk9dCsxO2k8bztpKyspbis9Zy5nZXQoaSx0KSpnLmdldChpLGUpO249LW4vZy5nZXQodCsxLHQpO2ZvcihsZXQgaT10KzE7aTxvO2krKylnLnNldChpLGUsZy5nZXQoaSxlKStuKmcuZ2V0KGksdCkpfWZvcihsZXQgZT0wO2U8bztlKyspZy5zZXQoZSx0LDApO2cuc2V0KHQsdCwxKX1sZXQgeD12LTEsTz1OdW1iZXIuRVBTSUxPTjtmb3IoO3Y+MDspe2xldCB0LGU7Zm9yKHQ9di0yO3Q+PS0xJiYtMSE9PXQ7dC0tKXtjb25zdCBlPU51bWJlci5NSU5fVkFMVUUrTypNYXRoLmFicyh1W3RdK01hdGguYWJzKHVbdCsxXSkpO2lmKE1hdGguYWJzKGhbdF0pPD1lfHxOdW1iZXIuaXNOYU4oaFt0XSkpe2hbdF09MDticmVha319aWYodD09PXYtMillPTQ7ZWxzZXtsZXQgbjtmb3Iobj12LTE7bj49dCYmbiE9PXQ7bi0tKXtsZXQgZT0obiE9PXY/TWF0aC5hYnMoaFtuXSk6MCkrKG4hPT10KzE/TWF0aC5hYnMoaFtuLTFdKTowKTtpZihNYXRoLmFicyh1W25dKTw9TyplKXt1W25dPTA7YnJlYWt9fW49PT10P2U9MzpuPT09di0xP2U9MTooZT0yLHQ9bil9c3dpdGNoKHQrKyxlKXtjYXNlIDE6e2xldCBlPWhbdi0yXTtoW3YtMl09MDtmb3IobGV0IG49di0yO24+PXQ7bi0tKXtsZXQgaT1sdnQodVtuXSxlKSxhPXVbbl0vaSxyPWUvaTtpZih1W25dPWksbiE9PXQmJihlPS1yKmhbbi0xXSxoW24tMV09YSpoW24tMV0pLGMpZm9yKGxldCB0PTA7dDxvO3QrKylpPWEqZy5nZXQodCxuKStyKmcuZ2V0KHQsdi0xKSxnLnNldCh0LHYtMSwtcipnLmdldCh0LG4pK2EqZy5nZXQodCx2LTEpKSxnLnNldCh0LG4saSl9YnJlYWt9Y2FzZSAyOntsZXQgZT1oW3QtMV07aFt0LTFdPTA7Zm9yKGxldCBvPXQ7bzx2O28rKyl7bGV0IGk9bHZ0KHVbb10sZSksYT11W29dL2kscj1lL2k7aWYodVtvXT1pLGU9LXIqaFtvXSxoW29dPWEqaFtvXSxsKWZvcihsZXQgZT0wO2U8bjtlKyspaT1hKmYuZ2V0KGUsbykrcipmLmdldChlLHQtMSksZi5zZXQoZSx0LTEsLXIqZi5nZXQoZSxvKSthKmYuZ2V0KGUsdC0xKSksZi5zZXQoZSxvLGkpfWJyZWFrfWNhc2UgMzp7Y29uc3QgZT1NYXRoLm1heChNYXRoLmFicyh1W3YtMV0pLE1hdGguYWJzKHVbdi0yXSksTWF0aC5hYnMoaFt2LTJdKSxNYXRoLmFicyh1W3RdKSxNYXRoLmFicyhoW3RdKSksaT11W3YtMV0vZSxhPXVbdi0yXS9lLHI9aFt2LTJdL2Uscz11W3RdL2UsZD1oW3RdL2UscD0oKGEraSkqKGEtaSkrcipyKS8yLG09aSpyKihpKnIpO2xldCBiPTA7MD09PXAmJjA9PT1tfHwoYj1wPDA/MC1NYXRoLnNxcnQocCpwK20pOk1hdGguc3FydChwKnArbSksYj1tLyhwK2IpKTtsZXQgeT0ocytpKSoocy1pKStiLF89cypkO2ZvcihsZXQgZT10O2U8di0xO2UrKyl7bGV0IGk9bHZ0KHksXyk7MD09PWkmJihpPU51bWJlci5NSU5fVkFMVUUpO2xldCBhPXkvaSxyPV8vaTtpZihlIT09dCYmKGhbZS0xXT1pKSx5PWEqdVtlXStyKmhbZV0saFtlXT1hKmhbZV0tcip1W2VdLF89cip1W2UrMV0sdVtlKzFdPWEqdVtlKzFdLGMpZm9yKGxldCB0PTA7dDxvO3QrKylpPWEqZy5nZXQodCxlKStyKmcuZ2V0KHQsZSsxKSxnLnNldCh0LGUrMSwtcipnLmdldCh0LGUpK2EqZy5nZXQodCxlKzEpKSxnLnNldCh0LGUsaSk7aWYoaT1sdnQoeSxfKSwwPT09aSYmKGk9TnVtYmVyLk1JTl9WQUxVRSksYT15L2kscj1fL2ksdVtlXT1pLHk9YSpoW2VdK3IqdVtlKzFdLHVbZSsxXT0tcipoW2VdK2EqdVtlKzFdLF89cipoW2UrMV0saFtlKzFdPWEqaFtlKzFdLGwmJmU8bi0xKWZvcihsZXQgdD0wO3Q8bjt0KyspaT1hKmYuZ2V0KHQsZSkrcipmLmdldCh0LGUrMSksZi5zZXQodCxlKzEsLXIqZi5nZXQodCxlKSthKmYuZ2V0KHQsZSsxKSksZi5zZXQodCxlLGkpfWhbdi0yXT15O2JyZWFrfWNhc2UgNDppZih1W3RdPD0wJiYodVt0XT11W3RdPDA/LXVbdF06MCxjKSlmb3IobGV0IGU9MDtlPD14O2UrKylnLnNldChlLHQsLWcuZ2V0KGUsdCkpO2Zvcig7dDx4JiYhKHVbdF0+PXVbdCsxXSk7KXtsZXQgZT11W3RdO2lmKHVbdF09dVt0KzFdLHVbdCsxXT1lLGMmJnQ8by0xKWZvcihsZXQgbj0wO248bztuKyspZT1nLmdldChuLHQrMSksZy5zZXQobix0KzEsZy5nZXQobix0KSksZy5zZXQobix0LGUpO2lmKGwmJnQ8bi0xKWZvcihsZXQgbz0wO288bjtvKyspZT1mLmdldChvLHQrMSksZi5zZXQobyx0KzEsZi5nZXQobyx0KSksZi5zZXQobyx0LGUpO3QrK312LS19fWlmKGQpe2xldCB0PWc7Zz1mLGY9dH10aGlzLm09bix0aGlzLm49byx0aGlzLnM9dSx0aGlzLlU9Zix0aGlzLlY9Z31zb2x2ZSh0KXtsZXQgZT10LG49dGhpcy50aHJlc2hvbGQsbz10aGlzLnMubGVuZ3RoLGk9aXZ0Lnplcm9zKG8sbyk7Zm9yKGxldCB0PTA7dDxvO3QrKylNYXRoLmFicyh0aGlzLnNbdF0pPD1uP2kuc2V0KHQsdCwwKTppLnNldCh0LHQsMS90aGlzLnNbdF0pO2xldCBhPXRoaXMuVSxyPXRoaXMucmlnaHRTaW5ndWxhclZlY3RvcnMscz1yLm1tdWwoaSksbD1yLnJvd3MsYz1hLnJvd3MsZD1pdnQuemVyb3MobCxjKTtmb3IobGV0IHQ9MDt0PGw7dCsrKWZvcihsZXQgZT0wO2U8YztlKyspe2xldCBuPTA7Zm9yKGxldCBpPTA7aTxvO2krKyluKz1zLmdldCh0LGkpKmEuZ2V0KGUsaSk7ZC5zZXQodCxlLG4pfXJldHVybiBkLm1tdWwoZSl9c29sdmVGb3JEaWFnb25hbCh0KXtyZXR1cm4gdGhpcy5zb2x2ZShpdnQuZGlhZyh0KSl9aW52ZXJzZSgpe2xldCB0PXRoaXMuVixlPXRoaXMudGhyZXNob2xkLG49dC5yb3dzLG89dC5jb2x1bW5zLGk9bmV3IGl2dChuLHRoaXMucy5sZW5ndGgpO2ZvcihsZXQgYT0wO2E8bjthKyspZm9yKGxldCBuPTA7bjxvO24rKylNYXRoLmFicyh0aGlzLnNbbl0pPmUmJmkuc2V0KGEsbix0LmdldChhLG4pL3RoaXMuc1tuXSk7bGV0IGE9dGhpcy5VLHI9YS5yb3dzLHM9YS5jb2x1bW5zLGw9bmV3IGl2dChuLHIpO2ZvcihsZXQgdD0wO3Q8bjt0KyspZm9yKGxldCBlPTA7ZTxyO2UrKyl7bGV0IG49MDtmb3IobGV0IG89MDtvPHM7bysrKW4rPWkuZ2V0KHQsbykqYS5nZXQoZSxvKTtsLnNldCh0LGUsbil9cmV0dXJuIGx9Z2V0IGNvbmRpdGlvbigpe3JldHVybiB0aGlzLnNbMF0vdGhpcy5zW01hdGgubWluKHRoaXMubSx0aGlzLm4pLTFdfWdldCBub3JtMigpe3JldHVybiB0aGlzLnNbMF19Z2V0IHJhbmsoKXtsZXQgdD1NYXRoLm1heCh0aGlzLm0sdGhpcy5uKSp0aGlzLnNbMF0qTnVtYmVyLkVQU0lMT04sZT0wLG49dGhpcy5zO2ZvcihsZXQgbz0wLGk9bi5sZW5ndGg7bzxpO28rKyluW29dPnQmJmUrKztyZXR1cm4gZX1nZXQgZGlhZ29uYWwoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnMpfWdldCB0aHJlc2hvbGQoKXtyZXR1cm4gTnVtYmVyLkVQU0lMT04vMipNYXRoLm1heCh0aGlzLm0sdGhpcy5uKSp0aGlzLnNbMF19Z2V0IGxlZnRTaW5ndWxhclZlY3RvcnMoKXtyZXR1cm4gdGhpcy5VfWdldCByaWdodFNpbmd1bGFyVmVjdG9ycygpe3JldHVybiB0aGlzLlZ9Z2V0IGRpYWdvbmFsTWF0cml4KCl7cmV0dXJuIGl2dC5kaWFnKHRoaXMucyl9fWZ1bmN0aW9uIHB2dCh0LGUsbixvLGkpe2xldCBhPWl2dC5leWUoZS5sZW5ndGgsZS5sZW5ndGgsbipvKm8pO2NvbnN0IHI9aShlKTtsZXQgcz1uZXcgRmxvYXQ2NEFycmF5KHQueC5sZW5ndGgpO2ZvcihsZXQgZT0wO2U8dC54Lmxlbmd0aDtlKyspc1tlXT1yKHQueFtlXSk7bGV0IGw9KGZ1bmN0aW9uIGModCxlLG4sbyxpKXtjb25zdCBhPW4ubGVuZ3RoLHI9dC54Lmxlbmd0aDtsZXQgcz1uZXcgQXJyYXkoYSk7Zm9yKGxldCBsPTA7bDxhO2wrKyl7c1tsXT1uZXcgQXJyYXkocik7bGV0IGE9bi5zbGljZSgpO2FbbF0rPW87bGV0IGM9aShhKTtmb3IobGV0IG49MDtuPHI7bisrKXNbbF1bbl09ZVtuXS1jKHQueFtuXSl9cmV0dXJuIG5ldyBpdnQocyl9KSh0LHMsZSxvLGkpLGQ9KGZ1bmN0aW9uIHAodCxlKXtjb25zdCBuPXQueC5sZW5ndGg7bGV0IG89bmV3IEFycmF5KG4pO2ZvcihsZXQgaT0wO2k8bjtpKyspb1tpXT1bdC55W2ldLWVbaV1dO3JldHVybiBuZXcgaXZ0KG8pfSkodCxzKSxtPShmdW5jdGlvbiB1KHQsZT0hMSl7cmV0dXJuIHQ9cnZ0LmNoZWNrTWF0cml4KHQpLGU/bmV3IGR2dCh0KS5pbnZlcnNlKCk6KGZ1bmN0aW9uIG4odCxlLG89ITEpe3JldHVybiB0PXJ2dC5jaGVja01hdHJpeCh0KSxlPXJ2dC5jaGVja01hdHJpeChlKSxvP25ldyBkdnQodCkuc29sdmUoZSk6dC5pc1NxdWFyZSgpP25ldyBzdnQodCkuc29sdmUoZSk6bmV3IGN2dCh0KS5zb2x2ZShlKX0pKHQsaXZ0LmV5ZSh0LnJvd3MpKX0pKGEuYWRkKGwubW11bChsLnRyYW5zcG9zZSgpKSkpO3JldHVybihlPShlPW5ldyBpdnQoW2VdKSkuc3ViKG0ubW11bChsKS5tbXVsKGQpLm11bChvKS50cmFuc3Bvc2UoKSkpLnRvMURBcnJheSgpfXZhciBtdnQ9JHYoT2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsZGVmYXVsdDpmdW5jdGlvbiB1dnQodCxlLG49e30pe2xldHttYXhJdGVyYXRpb25zOm89MTAwLGdyYWRpZW50RGlmZmVyZW5jZTppPS4xLGRhbXBpbmc6YT0wLGVycm9yVG9sZXJhbmNlOnI9LjAxLG1pblZhbHVlczpzLG1heFZhbHVlczpsLGluaXRpYWxWYWx1ZXM6Y309bjtpZihhPD0wKXRocm93IG5ldyBFcnJvcigiVGhlIGRhbXBpbmcgb3B0aW9uIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTtpZighdC54fHwhdC55KXRocm93IG5ldyBFcnJvcigiVGhlIGRhdGEgcGFyYW1ldGVyIG11c3QgaGF2ZSB4IGFuZCB5IGVsZW1lbnRzIik7aWYoIU5NdCh0LngpfHx0LngubGVuZ3RoPDJ8fCFOTXQodC55KXx8dC55Lmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcigiVGhlIGRhdGEgcGFyYW1ldGVyIGVsZW1lbnRzIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBtb3JlIHRoYW4gMiBwb2ludHMiKTtpZih0LngubGVuZ3RoIT09dC55Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBkYXRhIHBhcmFtZXRlciBlbGVtZW50cyBtdXN0IGhhdmUgdGhlIHNhbWUgc2l6ZSIpO2xldCBkPWN8fG5ldyBBcnJheShlLmxlbmd0aCkuZmlsbCgxKSxwPWQubGVuZ3RoO2lmKGw9bHx8bmV3IEFycmF5KHApLmZpbGwoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLHM9c3x8bmV3IEFycmF5KHApLmZpbGwoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpLGwubGVuZ3RoIT09cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJtaW5WYWx1ZXMgYW5kIG1heFZhbHVlcyBtdXN0IGJlIHRoZSBzYW1lIHNpemUiKTtpZighTk10KGQpKXRocm93IG5ldyBFcnJvcigiaW5pdGlhbFZhbHVlcyBtdXN0IGJlIGFuIGFycmF5Iik7bGV0IG0sdT16TXQodCxkLGUpLGY9dTw9cjtmb3IobT0wO208byYmIWY7bSsrKXtkPXB2dCh0LGQsYSxpLGUpO2ZvcihsZXQgdD0wO3Q8cDt0KyspZFt0XT1NYXRoLm1pbihNYXRoLm1heChzW3RdLGRbdF0pLGxbdF0pO2lmKHU9ek10KHQsZCxlKSxpc05hTih1KSlicmVhaztmPXU8PXJ9cmV0dXJue3BhcmFtZXRlclZhbHVlczpkLHBhcmFtZXRlckVycm9yOnUsaXRlcmF0aW9uczptfX19KSksZnZ0PVF2JiZRdi5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihpLGEpe2Z1bmN0aW9uIHIodCl7dHJ5e2woby5uZXh0KHQpKX1jYXRjaCh0KXthKHQpfX1mdW5jdGlvbiBzKHQpe3RyeXtsKG8udGhyb3codCkpfWNhdGNoKHQpe2EodCl9fWZ1bmN0aW9uIGwodCl7dC5kb25lP2kodC52YWx1ZSk6bmV3IG4oKGZ1bmN0aW9uKGUpe2UodC52YWx1ZSl9KSkudGhlbihyLHMpfWwoKG89by5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pKX0sZ3Z0PVF2JiZRdi5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24odCxlKXt2YXIgbixvLGksYSxyPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmlbMF0pdGhyb3cgaVsxXTtyZXR1cm4gaVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBhPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksYTtmdW5jdGlvbiBzKGEpe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4oZnVuY3Rpb24gbChhKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3I7KXRyeXtpZihuPTEsbyYmKGk9MiZhWzBdP28ucmV0dXJuOmFbMF0/by50aHJvd3x8KChpPW8ucmV0dXJuKSYmaS5jYWxsKG8pLDApOm8ubmV4dCkmJiEoaT1pLmNhbGwobyxhWzFdKSkuZG9uZSlyZXR1cm4gaTtzd2l0Y2gobz0wLGkmJihhPVsyJmFbMF0saS52YWx1ZV0pLGFbMF0pe2Nhc2UgMDpjYXNlIDE6aT1hO2JyZWFrO2Nhc2UgNDpyZXR1cm4gci5sYWJlbCsrLHt2YWx1ZTphWzFdLGRvbmU6ITF9O2Nhc2UgNTpyLmxhYmVsKyssbz1hWzFdLGE9WzBdO2NvbnRpbnVlO2Nhc2UgNzphPXIub3BzLnBvcCgpLHIudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGk9KGk9ci50cnlzKS5sZW5ndGg+MCYmaVtpLmxlbmd0aC0xXSl8fDYhPT1hWzBdJiYyIT09YVswXSkpe3I9MDtjb250aW51ZX1pZigzPT09YVswXSYmKCFpfHxhWzFdPmlbMF0mJmFbMV08aVszXSkpe3IubGFiZWw9YVsxXTticmVha31pZig2PT09YVswXSYmci5sYWJlbDxpWzFdKXtyLmxhYmVsPWlbMV0saT1hO2JyZWFrfWlmKGkmJnIubGFiZWw8aVsyXSl7ci5sYWJlbD1pWzJdLHIub3BzLnB1c2goYSk7YnJlYWt9aVsyXSYmci5vcHMucG9wKCksci50cnlzLnBvcCgpO2NvbnRpbnVlfWE9ZS5jYWxsKHQscil9Y2F0Y2godCl7YT1bNix0XSxvPTB9ZmluYWxseXtuPWk9MH1pZig1JmFbMF0pdGhyb3cgYVsxXTtyZXR1cm57dmFsdWU6YVswXT9hWzFdOnZvaWQgMCxkb25lOiEwfX0pKFthLHNdKX19fSxodnQ9UXYmJlF2Ll9fcmVhZHx8ZnVuY3Rpb24odCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIHQ7dmFyIG8saSxhPW4uY2FsbCh0KSxyPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1lfHxlLS0gPjApJiYhKG89YS5uZXh0KCkpLmRvbmU7KXIucHVzaChvLnZhbHVlKX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtvJiYhby5kb25lJiYobj1hLnJldHVybikmJm4uY2FsbChhKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIHJ9LGJ2dD1RdiYmUXYuX19zcHJlYWR8fGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQ9dC5jb25jYXQoaHZ0KGFyZ3VtZW50c1tlXSkpO3JldHVybiB0fSx5dnQ9UXYmJlF2Ll9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24odCl7aWYodCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPXt9O2lmKG51bGwhPXQpZm9yKHZhciBuIGluIHQpT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGUuZGVmYXVsdD10LGV9LF92dD1RdiYmUXYuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh1Q3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBDdnQ9eXZ0KGZDdCksTXZ0PXl2dChVQ3QpLHZ2dD15dnQoc010KSx4dnQ9eXZ0KGxNdCksT3Z0PXl2dChnQ3QpLFB2dD1fdnQobXZ0KSx3dnQ9MWUtNSxrdnQ9LjAwMSxTdnQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2b2lkIDA9PT10JiYodD17fSk7dmFyIGU9dGhpczt0aGlzLmxlYXJuaW5nUmF0ZT0xLHRoaXMubG9jYWxDb25uZWN0aXZpdHk9MSx0aGlzLm1pbkRpc3Q9LjEsdGhpcy5uQ29tcG9uZW50cz0yLHRoaXMubkVwb2Nocz0wLHRoaXMubk5laWdoYm9ycz0xNSx0aGlzLm5lZ2F0aXZlU2FtcGxlUmF0ZT01LHRoaXMucmFuZG9tPU1hdGgucmFuZG9tLHRoaXMucmVwdWxzaW9uU3RyZW5ndGg9MSx0aGlzLnNldE9wTWl4UmF0aW89MSx0aGlzLnNwcmVhZD0xLHRoaXMudHJhbnNmb3JtUXVldWVTaXplPTQsdGhpcy50YXJnZXRNZXRyaWM9ImNhdGVnb3JpY2FsIix0aGlzLnRhcmdldFdlaWdodD0uNSx0aGlzLnRhcmdldE5OZWlnaGJvcnM9dGhpcy5uTmVpZ2hib3JzLHRoaXMuZGlzdGFuY2VGbj1EdnQsdGhpcy5pc0luaXRpYWxpemVkPSExLHRoaXMucnBGb3Jlc3Q9W10sdGhpcy5lbWJlZGRpbmc9W10sdGhpcy5vcHRpbWl6YXRpb25TdGF0ZT1uZXcgUnZ0O3ZhciBuPWZ1bmN0aW9uKG4pe3ZvaWQgMCE9PXRbbl0mJihlW25dPXRbbl0pfTtuKCJkaXN0YW5jZUZuIiksbigibGVhcm5pbmdSYXRlIiksbigibG9jYWxDb25uZWN0aXZpdHkiKSxuKCJtaW5EaXN0IiksbigibkNvbXBvbmVudHMiKSxuKCJuRXBvY2hzIiksbigibk5laWdoYm9ycyIpLG4oIm5lZ2F0aXZlU2FtcGxlUmF0ZSIpLG4oInJhbmRvbSIpLG4oInJlcHVsc2lvblN0cmVuZ3RoIiksbigic2V0T3BNaXhSYXRpbyIpLG4oInNwcmVhZCIpLG4oInRyYW5zZm9ybVF1ZXVlU2l6ZSIpfXJldHVybiB0LnByb3RvdHlwZS5maXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUZpdCh0KSx0aGlzLm9wdGltaXplTGF5b3V0KCksdGhpcy5lbWJlZGRpbmd9LHQucHJvdG90eXBlLmZpdEFzeW5jPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPWZ1bmN0aW9uKCl7cmV0dXJuITB9KSxmdnQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3JldHVybiBndnQodGhpcywoZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pbml0aWFsaXplRml0KHQpLFs0LHRoaXMub3B0aW1pemVMYXlvdXRBc3luYyhlKV07Y2FzZSAxOnJldHVybiBuLnNlbnQoKSxbMix0aGlzLmVtYmVkZGluZ119fSkpfSkpfSx0LnByb3RvdHlwZS5zZXRTdXBlcnZpc2VkUHJvamVjdGlvbj1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KSx0aGlzLlk9dCx0aGlzLnRhcmdldE1ldHJpYz1lLnRhcmdldE1ldHJpY3x8dGhpcy50YXJnZXRNZXRyaWMsdGhpcy50YXJnZXRXZWlnaHQ9ZS50YXJnZXRXZWlnaHR8fHRoaXMudGFyZ2V0V2VpZ2h0LHRoaXMudGFyZ2V0Tk5laWdoYm9ycz1lLnRhcmdldE5OZWlnaGJvcnN8fHRoaXMudGFyZ2V0Tk5laWdoYm9yc30sdC5wcm90b3R5cGUuc2V0UHJlY29tcHV0ZWRLTk49ZnVuY3Rpb24odCxlKXt0aGlzLmtubkluZGljZXM9dCx0aGlzLmtubkRpc3RhbmNlcz1lfSx0LnByb3RvdHlwZS5pbml0aWFsaXplRml0PWZ1bmN0aW9uKHQpe2lmKHQubGVuZ3RoPD10aGlzLm5OZWlnaGJvcnMpdGhyb3cgbmV3IEVycm9yKCJOb3QgZW5vdWdoIGRhdGEgcG9pbnRzICgiK3QubGVuZ3RoKyIpIHRvIGNyZWF0ZSBuTmVpZ2hib3JzOiAiK3RoaXMubk5laWdoYm9ycysiLiAgQWRkIG1vcmUgZGF0YSBwb2ludHMgb3IgYWRqdXN0IHRoZSBjb25maWd1cmF0aW9uLiIpO2lmKHRoaXMuWD09PXQmJnRoaXMuaXNJbml0aWFsaXplZClyZXR1cm4gdGhpcy5nZXRORXBvY2hzKCk7aWYodGhpcy5YPXQsIXRoaXMua25uSW5kaWNlcyYmIXRoaXMua25uRGlzdGFuY2VzKXt2YXIgZT10aGlzLm5lYXJlc3ROZWlnaGJvcnModCk7dGhpcy5rbm5JbmRpY2VzPWUua25uSW5kaWNlcyx0aGlzLmtubkRpc3RhbmNlcz1lLmtubkRpc3RhbmNlc310aGlzLmdyYXBoPXRoaXMuZnV6enlTaW1wbGljaWFsU2V0KHQsdGhpcy5uTmVpZ2hib3JzLHRoaXMuc2V0T3BNaXhSYXRpbyksdGhpcy5tYWtlU2VhcmNoRm5zKCksdGhpcy5zZWFyY2hHcmFwaD10aGlzLm1ha2VTZWFyY2hHcmFwaCh0KSx0aGlzLnByb2Nlc3NHcmFwaEZvclN1cGVydmlzZWRQcm9qZWN0aW9uKCk7dmFyIG49dGhpcy5pbml0aWFsaXplU2ltcGxpY2lhbFNldEVtYmVkZGluZygpLG89bi50YWlsLGk9bi5lcG9jaHNQZXJTYW1wbGU7cmV0dXJuIHRoaXMub3B0aW1pemF0aW9uU3RhdGUuaGVhZD1uLmhlYWQsdGhpcy5vcHRpbWl6YXRpb25TdGF0ZS50YWlsPW8sdGhpcy5vcHRpbWl6YXRpb25TdGF0ZS5lcG9jaHNQZXJTYW1wbGU9aSx0aGlzLmluaXRpYWxpemVPcHRpbWl6YXRpb24oKSx0aGlzLnByZXBhcmVGb3JPcHRpbWl6YXRpb25Mb29wKCksdGhpcy5pc0luaXRpYWxpemVkPSEwLHRoaXMuZ2V0TkVwb2NocygpfSx0LnByb3RvdHlwZS5tYWtlU2VhcmNoRm5zPWZ1bmN0aW9uKCl7dmFyIHQ9dnZ0Lm1ha2VJbml0aWFsaXphdGlvbnModGhpcy5kaXN0YW5jZUZuKSxlPXQuaW5pdEZyb21SYW5kb207dGhpcy5pbml0RnJvbVRyZWU9dC5pbml0RnJvbVRyZWUsdGhpcy5pbml0RnJvbVJhbmRvbT1lLHRoaXMuc2VhcmNoPXZ2dC5tYWtlSW5pdGlhbGl6ZWROTlNlYXJjaCh0aGlzLmRpc3RhbmNlRm4pfSx0LnByb3RvdHlwZS5tYWtlU2VhcmNoR3JhcGg9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMua25uSW5kaWNlcyxuPXRoaXMua25uRGlzdGFuY2VzLG89bmV3IE12dC5TcGFyc2VNYXRyaXgoW10sW10sW10sW3QubGVuZ3RoLHQubGVuZ3RoXSksaT0wO2k8ZS5sZW5ndGg7aSsrKWZvcih2YXIgYT1lW2ldLHI9bltpXSxzPTA7czxhLmxlbmd0aDtzKyspe3ZhciBsPXJbc107bD4wJiZvLnNldChpLGFbc10sbCl9dmFyIGM9TXZ0LnRyYW5zcG9zZShvKTtyZXR1cm4gTXZ0Lm1heGltdW0obyxjKX0sdC5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLlg7aWYodm9pZCAwPT09bnx8MD09PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiTm8gZGF0YSBoYXMgYmVlbiBmaXQuIik7dmFyIG89TWF0aC5mbG9vcih0aGlzLm5OZWlnaGJvcnMqdGhpcy50cmFuc2Zvcm1RdWV1ZVNpemUpO289TWF0aC5taW4obi5sZW5ndGgsbyk7dmFyIGk9dnZ0LmluaXRpYWxpemVTZWFyY2godGhpcy5ycEZvcmVzdCxuLHQsbyx0aGlzLmluaXRGcm9tUmFuZG9tLHRoaXMuaW5pdEZyb21UcmVlLHRoaXMucmFuZG9tKSxhPXRoaXMuc2VhcmNoKG4sdGhpcy5zZWFyY2hHcmFwaCxpLHQpLHI9Q3Z0LmRlaGVhcFNvcnQoYSkscz1yLmluZGljZXMsbD1yLndlaWdodHM7cz1zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoMCxlLm5OZWlnaGJvcnMpfSkpLGw9bC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNsaWNlKDAsZS5uTmVpZ2hib3JzKX0pKTt2YXIgYz1NYXRoLm1heCgwLHRoaXMubG9jYWxDb25uZWN0aXZpdHktMSksZD10aGlzLnNtb290aEtOTkRpc3RhbmNlKGwsdGhpcy5uTmVpZ2hib3JzLGMpLHA9dGhpcy5jb21wdXRlTWVtYmVyc2hpcFN0cmVuZ3RocyhzLGwsZC5zaWdtYXMsZC5yaG9zKSxtPW5ldyBNdnQuU3BhcnNlTWF0cml4KHAucm93cyxwLmNvbHMscC52YWxzLFt0Lmxlbmd0aCxuLmxlbmd0aF0pLHU9TXZ0Lm5vcm1hbGl6ZShtLCJsMSIpLGY9TXZ0LmdldENTUih1KSxnPXQubGVuZ3RoLGg9SHZ0KE92dC5yZXNoYXBlMmQoZi5pbmRpY2VzLGcsdGhpcy5uTmVpZ2hib3JzKSxPdnQucmVzaGFwZTJkKGYudmFsdWVzLGcsdGhpcy5uTmVpZ2hib3JzKSx0aGlzLmVtYmVkZGluZyksYj10aGlzLm5FcG9jaHM/dGhpcy5uRXBvY2hzLzM6bS5uUm93czw9MWU0PzEwMDozMCx5PW0uZ2V0VmFsdWVzKCkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBlPnQ/ZTp0fSksMCk7bT1tLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQ8eS9iPzA6dH0pKSxtPU12dC5lbGltaW5hdGVaZXJvcyhtKTt2YXIgXz10aGlzLm1ha2VFcG9jaHNQZXJTYW1wbGUobS5nZXRWYWx1ZXMoKSxiKSxDPW0uZ2V0Um93cygpLE09bS5nZXRDb2xzKCk7cmV0dXJuIHRoaXMuYXNzaWduT3B0aW1pemF0aW9uU3RhdGVQYXJhbWV0ZXJzKHtoZWFkRW1iZWRkaW5nOmgsdGFpbEVtYmVkZGluZzp0aGlzLmVtYmVkZGluZyxoZWFkOkMsdGFpbDpNLGN1cnJlbnRFcG9jaDowLG5FcG9jaHM6YixuVmVydGljZXM6bS5nZXREaW1zKClbMV0sZXBvY2hzUGVyU2FtcGxlOl99KSx0aGlzLnByZXBhcmVGb3JPcHRpbWl6YXRpb25Mb29wKCksdGhpcy5vcHRpbWl6ZUxheW91dCgpfSx0LnByb3RvdHlwZS5wcm9jZXNzR3JhcGhGb3JTdXBlcnZpc2VkUHJvamVjdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuWTtpZih0KXtpZih0Lmxlbmd0aCE9PXRoaXMuWC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJMZW5ndGggb2YgWCBhbmQgeSBtdXN0IGJlIGVxdWFsIik7ImNhdGVnb3JpY2FsIj09PXRoaXMudGFyZ2V0TWV0cmljJiYodGhpcy5ncmFwaD10aGlzLmNhdGVnb3JpY2FsU2ltcGxpY2lhbFNldEludGVyc2VjdGlvbih0aGlzLmdyYXBoLHQsdGhpcy50YXJnZXRXZWlnaHQ8MT8xLygxLXRoaXMudGFyZ2V0V2VpZ2h0KSoyLjU6MWUxMikpfX0sdC5wcm90b3R5cGUuc3RlcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW1pemF0aW9uU3RhdGUuY3VycmVudEVwb2NoO3JldHVybiB0PHRoaXMuZ2V0TkVwb2NocygpJiZ0aGlzLm9wdGltaXplTGF5b3V0U3RlcCh0KSx0aGlzLm9wdGltaXphdGlvblN0YXRlLmN1cnJlbnRFcG9jaH0sdC5wcm90b3R5cGUuZ2V0RW1iZWRkaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1iZWRkaW5nfSx0LnByb3RvdHlwZS5uZWFyZXN0TmVpZ2hib3JzPWZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcy5uTmVpZ2hib3JzLG89dnZ0Lm1ha2VOTkRlc2NlbnQodGhpcy5kaXN0YW5jZUZuLHRoaXMucmFuZG9tKSxpPTUrTWF0aC5mbG9vciguNT09KGU9TWF0aC5wb3codC5sZW5ndGgsLjUpLzIwKT8wOk1hdGgucm91bmQoZSkpLGE9TWF0aC5tYXgoNSxNYXRoLmZsb29yKE1hdGgucm91bmQoKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmxvZyh0KS9NYXRoLmxvZygyKX0pKHQubGVuZ3RoKSkpKTt0aGlzLnJwRm9yZXN0PXh2dC5tYWtlRm9yZXN0KHQsbixpLHRoaXMucmFuZG9tKTt2YXIgcj1vKHQseHZ0Lm1ha2VMZWFmQXJyYXkodGhpcy5ycEZvcmVzdCksbixhKTtyZXR1cm57a25uSW5kaWNlczpyLmluZGljZXMsa25uRGlzdGFuY2VzOnIud2VpZ2h0c319LHQucHJvdG90eXBlLmZ1enp5U2ltcGxpY2lhbFNldD1mdW5jdGlvbih0LGUsbil7dm9pZCAwPT09biYmKG49MSk7dmFyIG89dGhpcyxpPW8ua25uSW5kaWNlcyxhPXZvaWQgMD09PWk/W106aSxyPW8ua25uRGlzdGFuY2VzLHM9dm9pZCAwPT09cj9bXTpyLGw9dGhpcy5zbW9vdGhLTk5EaXN0YW5jZShzLGUsby5sb2NhbENvbm5lY3Rpdml0eSksYz10aGlzLmNvbXB1dGVNZW1iZXJzaGlwU3RyZW5ndGhzKGEscyxsLnNpZ21hcyxsLnJob3MpLGQ9bmV3IE12dC5TcGFyc2VNYXRyaXgoYy5yb3dzLGMuY29scyxjLnZhbHMsW3QubGVuZ3RoLHQubGVuZ3RoXSkscD1NdnQudHJhbnNwb3NlKGQpLG09TXZ0LnBhaXJ3aXNlTXVsdGlwbHkoZCxwKSx1PU12dC5zdWJ0cmFjdChNdnQuYWRkKGQscCksbSksZj1NdnQubXVsdGlwbHlTY2FsYXIodSxuKSxnPU12dC5tdWx0aXBseVNjYWxhcihtLDEtbik7cmV0dXJuIE12dC5hZGQoZixnKX0sdC5wcm90b3R5cGUuY2F0ZWdvcmljYWxTaW1wbGljaWFsU2V0SW50ZXJzZWN0aW9uPWZ1bmN0aW9uKHQsZSxuLG8pe3ZvaWQgMD09PW8mJihvPTEpO3ZhciBpPXp2dCh0LGUsbyxuKTtyZXR1cm4gSXZ0KGk9TXZ0LmVsaW1pbmF0ZVplcm9zKGkpKX0sdC5wcm90b3R5cGUuc21vb3RoS05ORGlzdGFuY2U9ZnVuY3Rpb24odCxlLG4sbyxpKXt2b2lkIDA9PT1uJiYobj0xKSx2b2lkIDA9PT1vJiYobz02NCksdm9pZCAwPT09aSYmKGk9MSk7Zm9yKHZhciBhPU1hdGgubG9nKGUpL01hdGgubG9nKDIpKmkscj1PdnQuemVyb3ModC5sZW5ndGgpLHM9T3Z0Lnplcm9zKHQubGVuZ3RoKSxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciBjPTAsZD0xLzAscD0xLG09dFtsXSx1PW0uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdD4wfSkpO2lmKHUubGVuZ3RoPj1uKXt2YXIgZj1NYXRoLmZsb29yKG4pLGc9bi1mO2Y+MD8ocltsXT11W2YtMV0sZz53dnQmJihyW2xdKz1nKih1W2ZdLXVbZi0xXSkpKTpyW2xdPWcqdVswXX1lbHNlIHUubGVuZ3RoPjAmJihyW2xdPU92dC5tYXgodSkpO2Zvcih2YXIgaD0wO2g8bztoKyspe2Zvcih2YXIgYj0wLHk9MTt5PHRbbF0ubGVuZ3RoO3krKyl7dmFyIF89dFtsXVt5XS1yW2xdO2IrPV8+MD9NYXRoLmV4cCgtXy9wKToxfWlmKE1hdGguYWJzKGItYSk8d3Z0KWJyZWFrO2I+YT9wPShjKyhkPXApKS8yOihjPXAsZD09PTEvMD9wKj0yOnA9KGMrZCkvMil9aWYoc1tsXT1wLHJbbF0+MCl7dmFyIEM9T3Z0Lm1lYW4obSk7c1tsXTxrdnQqQyYmKHNbbF09a3Z0KkMpfWVsc2V7dmFyIE09T3Z0Lm1lYW4odC5tYXAoT3Z0Lm1lYW4pKTtzW2xdPGt2dCpNJiYoc1tsXT1rdnQqTSl9fXJldHVybntzaWdtYXM6cyxyaG9zOnJ9fSx0LnByb3RvdHlwZS5jb21wdXRlTWVtYmVyc2hpcFN0cmVuZ3Rocz1mdW5jdGlvbih0LGUsbixvKXtmb3IodmFyIGk9dC5sZW5ndGgsYT10WzBdLmxlbmd0aCxyPU92dC56ZXJvcyhpKmEpLHM9T3Z0Lnplcm9zKGkqYSksbD1PdnQuemVyb3MoaSphKSxjPTA7YzxpO2MrKylmb3IodmFyIGQ9MDtkPGE7ZCsrKXt2YXIgcD0wOy0xIT09dFtjXVtkXSYmKHA9dFtjXVtkXT09PWM/MDplW2NdW2RdLW9bY108PTA/MTpNYXRoLmV4cCgtKGVbY11bZF0tb1tjXSkvbltjXSkscltjKmErZF09YyxzW2MqYStkXT10W2NdW2RdLGxbYyphK2RdPXApfXJldHVybntyb3dzOnIsY29sczpzLHZhbHM6bH19LHQucHJvdG90eXBlLmluaXRpYWxpemVTaW1wbGljaWFsU2V0RW1iZWRkaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT10aGlzLmdldE5FcG9jaHMoKSxuPXRoaXMubkNvbXBvbmVudHMsbz10aGlzLmdyYXBoLmdldFZhbHVlcygpLGk9MCxhPTA7YTxvLmxlbmd0aDthKyspaTxvW2FdJiYoaT1vW2FdKTt2YXIgcj10aGlzLmdyYXBoLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQ8aS9lPzA6dH0pKTt0aGlzLmVtYmVkZGluZz1PdnQuemVyb3Moci5uUm93cykubWFwKChmdW5jdGlvbigpe3JldHVybiBPdnQuemVyb3MobikubWFwKChmdW5jdGlvbigpe3JldHVybiAyMCpPdnQudGF1UmFuZCh0LnJhbmRvbSktMTB9KSl9KSk7dmFyIHM9W10sbD1bXSxjPVtdLGQ9ci5nZXRBbGwoKTtmb3IoYT0wO2E8ZC5sZW5ndGg7YSsrKXt2YXIgcD1kW2FdO3AudmFsdWUmJihzLnB1c2gocC52YWx1ZSksYy5wdXNoKHAucm93KSxsLnB1c2gocC5jb2wpKX1yZXR1cm57aGVhZDpsLHRhaWw6YyxlcG9jaHNQZXJTYW1wbGU6dGhpcy5tYWtlRXBvY2hzUGVyU2FtcGxlKHMsZSl9fSx0LnByb3RvdHlwZS5tYWtlRXBvY2hzUGVyU2FtcGxlPWZ1bmN0aW9uKHQsZSl7dmFyIG49T3Z0LmZpbGxlZCh0Lmxlbmd0aCwtMSksbz1PdnQubWF4KHQpLGk9dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0L28qZX0pKTtyZXR1cm4gaS5mb3JFYWNoKChmdW5jdGlvbih0LG8pe3Q+MCYmKG5bb109ZS9pW29dKX0pKSxufSx0LnByb3RvdHlwZS5hc3NpZ25PcHRpbWl6YXRpb25TdGF0ZVBhcmFtZXRlcnM9ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLm9wdGltaXphdGlvblN0YXRlLHQpfSx0LnByb3RvdHlwZS5wcmVwYXJlRm9yT3B0aW1pemF0aW9uTG9vcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10LnJlcHVsc2lvblN0cmVuZ3RoLG49dC5sZWFybmluZ1JhdGUsbz10Lm5lZ2F0aXZlU2FtcGxlUmF0ZSxpPXRoaXMub3B0aW1pemF0aW9uU3RhdGUsYT1pLmVwb2Noc1BlclNhbXBsZSxyPWkuaGVhZEVtYmVkZGluZyxzPXJbMF0ubGVuZ3RoLGw9ci5sZW5ndGg9PT1pLnRhaWxFbWJlZGRpbmcubGVuZ3RoLGM9YS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0L299KSksZD1idnQoYykscD1idnQoYSk7dGhpcy5hc3NpZ25PcHRpbWl6YXRpb25TdGF0ZVBhcmFtZXRlcnMoe2Vwb2NoT2ZOZXh0U2FtcGxlOnAsZXBvY2hPZk5leHROZWdhdGl2ZVNhbXBsZTpkLGVwb2Noc1Blck5lZ2F0aXZlU2FtcGxlOmMsbW92ZU90aGVyOmwsaW5pdGlhbEFscGhhOm4sYWxwaGE6bixnYW1tYTplLGRpbTpzfSl9LHQucHJvdG90eXBlLmluaXRpYWxpemVPcHRpbWl6YXRpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVtYmVkZGluZyxlPXRoaXMuZW1iZWRkaW5nLG49dGhpcy5vcHRpbWl6YXRpb25TdGF0ZSxvPW4uaGVhZCxpPW4udGFpbCxhPW4uZXBvY2hzUGVyU2FtcGxlLHI9dGhpcy5nZXRORXBvY2hzKCkscz10aGlzLmdyYXBoLm5Db2xzLGw9TnZ0KHRoaXMuc3ByZWFkLHRoaXMubWluRGlzdCk7dGhpcy5hc3NpZ25PcHRpbWl6YXRpb25TdGF0ZVBhcmFtZXRlcnMoe2hlYWRFbWJlZGRpbmc6dCx0YWlsRW1iZWRkaW5nOmUsaGVhZDpvLHRhaWw6aSxlcG9jaHNQZXJTYW1wbGU6YSxhOmwuYSxiOmwuYixuRXBvY2hzOnIsblZlcnRpY2VzOnN9KX0sdC5wcm90b3R5cGUub3B0aW1pemVMYXlvdXRTdGVwPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLm9wdGltaXphdGlvblN0YXRlLG49ZS5oZWFkLG89ZS50YWlsLGk9ZS5oZWFkRW1iZWRkaW5nLGE9ZS50YWlsRW1iZWRkaW5nLHI9ZS5lcG9jaHNQZXJTYW1wbGUscz1lLmVwb2NoT2ZOZXh0U2FtcGxlLGw9ZS5lcG9jaE9mTmV4dE5lZ2F0aXZlU2FtcGxlLGM9ZS5lcG9jaHNQZXJOZWdhdGl2ZVNhbXBsZSxkPWUubW92ZU90aGVyLHA9ZS5pbml0aWFsQWxwaGEsbT1lLmFscGhhLHU9ZS5nYW1tYSxmPWUuYSxnPWUuYixoPWUuZGltLGI9ZS5uRXBvY2hzLHk9ZS5uVmVydGljZXMsXz0wO188ci5sZW5ndGg7XysrKWlmKCEoc1tfXT50KSl7dmFyIEM9bltfXSxNPWlbQ10sdj1hW29bX11dLHg9VHZ0KE0sdiksTz0wO3g+MCYmKE89LTIqZipnKk1hdGgucG93KHgsZy0xKSxPLz1mKk1hdGgucG93KHgsZykrMSk7Zm9yKHZhciBQPTA7UDxoO1ArKyl7dmFyIHc9QXZ0KE8qKE1bUF0tdltQXSksNCk7TVtQXSs9dyptLGQmJih2W1BdKz0tdyptKX1zW19dKz1yW19dO2Zvcih2YXIgaz1NYXRoLmZsb29yKCh0LWxbX10pL2NbX10pLFM9MDtTPGs7UysrKXt2YXIgRD1PdnQudGF1UmFuZEludCh5LHRoaXMucmFuZG9tKSxFPWFbRF0sUj1UdnQoTSxFKSxBPTA7aWYoUj4wKUE9Mip1KmcsQS89KC4wMDErUikqKGYqTWF0aC5wb3coUixnKSsxKTtlbHNlIGlmKEM9PT1EKWNvbnRpbnVlO2ZvcihQPTA7UDxoO1ArKyl3PTQsQT4wJiYodz1BdnQoQSooTVtQXS1FW1BdKSw0KSksTVtQXSs9dyptfWxbX10rPWsqY1tfXX1yZXR1cm4gZS5hbHBoYT1wKigxLXQvYiksZS5jdXJyZW50RXBvY2grPTEsaX0sdC5wcm90b3R5cGUub3B0aW1pemVMYXlvdXRBc3luYz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB2b2lkIDA9PT10JiYodD1mdW5jdGlvbigpe3JldHVybiEwfSksbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4sbyl7dmFyIGk9ZnVuY3Rpb24oKXtyZXR1cm4gZnZ0KGUsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZSxhLHIscyxsO3JldHVybiBndnQodGhpcywoZnVuY3Rpb24oYyl7dHJ5e2lmKGE9KGU9dGhpcy5vcHRpbWl6YXRpb25TdGF0ZSkubkVwb2Nocyx0aGlzLmVtYmVkZGluZz10aGlzLm9wdGltaXplTGF5b3V0U3RlcChlLmN1cnJlbnRFcG9jaCkscz0hMT09PXQocj10aGlzLm9wdGltaXphdGlvblN0YXRlLmN1cnJlbnRFcG9jaCksbD1yPT09YSxzfHxsKXJldHVyblsyLG4obCldO3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGkoKX0pLDApfWNhdGNoKHQpe28odCl9cmV0dXJuWzJdfSkpfSkpfTtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBpKCl9KSwwKX0pKX0sdC5wcm90b3R5cGUub3B0aW1pemVMYXlvdXQ9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0pO2Zvcih2YXIgZT0hMSxuPVtdOyFlOyl7dmFyIG89dGhpcy5vcHRpbWl6YXRpb25TdGF0ZSxpPW8ubkVwb2NocztuPXRoaXMub3B0aW1pemVMYXlvdXRTdGVwKG8uY3VycmVudEVwb2NoKTt2YXIgYT10aGlzLm9wdGltaXphdGlvblN0YXRlLmN1cnJlbnRFcG9jaCxyPSExPT09dChhKTtlPWE9PT1pfHxyfXJldHVybiBufSx0LnByb3RvdHlwZS5nZXRORXBvY2hzPWZ1bmN0aW9uKCl7aWYodGhpcy5uRXBvY2hzPjApcmV0dXJuIHRoaXMubkVwb2Noczt2YXIgdD10aGlzLmdyYXBoLm5Sb3dzO3JldHVybiB0PD0yNTAwPzUwMDp0PD01ZTM/NDAwOnQ8PTc1MDA/MzAwOjIwMH0sdH0pKCk7ZnVuY3Rpb24gRHZ0KHQsZSl7Zm9yKHZhciBuPTAsbz0wO288dC5sZW5ndGg7bysrKW4rPU1hdGgucG93KHRbb10tZVtvXSwyKTtyZXR1cm4gTWF0aC5zcXJ0KG4pfXVDdC5VTUFQPVN2dCx1Q3QuZXVjbGlkZWFuPUR2dCx1Q3QuY29zaW5lPWZ1bmN0aW9uIEV2dCh0LGUpe2Zvcih2YXIgbj0wLG89MCxpPTAsYT0wO2E8dC5sZW5ndGg7YSsrKW4rPXRbYV0qZVthXSxvKz1NYXRoLnBvdyh0W2FdLDIpLGkrPU1hdGgucG93KGVbYV0sMik7cmV0dXJuIDA9PT1vJiYwPT09aT8wOjA9PT1vfHwwPT09aT8xOjEtbi9NYXRoLnNxcnQobyppKX07dmFyIFJ2dD1mdW5jdGlvbiBSdnQoKXt0aGlzLmN1cnJlbnRFcG9jaD0wLHRoaXMuaGVhZEVtYmVkZGluZz1bXSx0aGlzLnRhaWxFbWJlZGRpbmc9W10sdGhpcy5oZWFkPVtdLHRoaXMudGFpbD1bXSx0aGlzLmVwb2Noc1BlclNhbXBsZT1bXSx0aGlzLmVwb2NoT2ZOZXh0U2FtcGxlPVtdLHRoaXMuZXBvY2hPZk5leHROZWdhdGl2ZVNhbXBsZT1bXSx0aGlzLmVwb2Noc1Blck5lZ2F0aXZlU2FtcGxlPVtdLHRoaXMubW92ZU90aGVyPSEwLHRoaXMuaW5pdGlhbEFscGhhPTEsdGhpcy5hbHBoYT0xLHRoaXMuZ2FtbWE9MSx0aGlzLmE9MS41NzY5NDM0NjAzMTEzMDc3LHRoaXMuYj0uODk1MDYwODc3OTEwOTczMyx0aGlzLmRpbT0yLHRoaXMubkVwb2Nocz01MDAsdGhpcy5uVmVydGljZXM9MH07ZnVuY3Rpb24gQXZ0KHQsZSl7cmV0dXJuIHQ+ZT9lOnQ8LWU/LWU6dH1mdW5jdGlvbiBUdnQodCxlKXtmb3IodmFyIG49MCxvPTA7bzx0Lmxlbmd0aDtvKyspbis9TWF0aC5wb3codFtvXS1lW29dLDIpO3JldHVybiBufWZ1bmN0aW9uIE52dCh0LGUpe3ZhciBuPU92dC5saW5lYXIoMCwzKnQsMzAwKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0PGU/MTp0fSkpLG89T3Z0Lnplcm9zKG4ubGVuZ3RoKS5tYXAoKGZ1bmN0aW9uKG8saSl7cmV0dXJuIG5baV0+PWU/TWF0aC5leHAoLShuW2ldLWUpL3QpOm99KSksaT1QdnQuZGVmYXVsdCh7eDpuLHk6b30sKGZ1bmN0aW9uKHQpe3ZhciBlPWh2dCh0LDIpLG49ZVswXSxvPWVbMV07cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiAxLygxK24qTWF0aC5wb3codCwyKm8pKX19KSx7ZGFtcGluZzoxLjUsaW5pdGlhbFZhbHVlczpbLjUsLjVdLGdyYWRpZW50RGlmZmVyZW5jZTouMSxtYXhJdGVyYXRpb25zOjEwMCxlcnJvclRvbGVyYW5jZTouMDF9KS5wYXJhbWV0ZXJWYWx1ZXMsYT1odnQoaSwyKTtyZXR1cm57YTphWzBdLGI6YVsxXX19ZnVuY3Rpb24genZ0KHQsZSxuLG8pe3JldHVybiB2b2lkIDA9PT1uJiYobj0xKSx2b2lkIDA9PT1vJiYobz01KSx0Lm1hcCgoZnVuY3Rpb24odCxpLGEpe3JldHVybi0xPT09ZVtpXXx8LTE9PT1lW2FdP3QqTWF0aC5leHAoLW4pOmVbaV0hPT1lW2FdP3QqTWF0aC5leHAoLW8pOnR9KSl9ZnVuY3Rpb24gSXZ0KHQpe3Q9TXZ0Lm5vcm1hbGl6ZSh0LCJtYXgiKTt2YXIgZT1NdnQudHJhbnNwb3NlKHQpLG49TXZ0LnBhaXJ3aXNlTXVsdGlwbHkoZSx0KTtyZXR1cm4gdD1NdnQuYWRkKHQsTXZ0LnN1YnRyYWN0KGUsbikpLE12dC5lbGltaW5hdGVaZXJvcyh0KX1mdW5jdGlvbiBIdnQodCxlLG4pe2Zvcih2YXIgbz1PdnQuemVyb3ModC5sZW5ndGgpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE92dC56ZXJvcyhuWzBdLmxlbmd0aCl9KSksaT0wO2k8dC5sZW5ndGg7aSsrKWZvcih2YXIgYT0wO2E8dFswXS5sZW5ndGg7YSsrKWZvcih2YXIgcj0wO3I8blswXS5sZW5ndGg7cisrKW9baV1bcl0rPWVbaV1bYV0qblt0W2ldW2FdXVtyXTtyZXR1cm4gb31mdW5jdGlvbiBGdnQodCl7bGV0IGUsbixvPXQubGVuZ3RoO2Zvcig7bzspbj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqby0tKSxlPXRbb10sdFtvXT10W25dLHRbbl09ZTtyZXR1cm4gdH1mdW5jdGlvbiBMdnQodCxlKXtyZXR1cm5gJHtlfS8ke3R9YH11Q3QuZmluZEFCUGFyYW1zPU52dCx1Q3QuZmFzdEludGVyc2VjdGlvbj16dnQsdUN0LnJlc2V0TG9jYWxDb25uZWN0aXZpdHk9SXZ0LHVDdC5pbml0VHJhbnNmb3JtPUh2dCxPYmplY3QuZGVmaW5lUHJvcGVydHkobUN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxtQ3QuVU1BUD11Q3QuVU1BUDtjbGFzcyBCdnR7Y29uc3RydWN0b3IodCl7dGhpcy5odHRwPXQsdGhpcy5odHRwUGF0aFByZWZpeD0iZGF0YS9wbHVnaW4vbnBtaSJ9ZmV0Y2hEYXRhKHQpe3JldHVybiAkdCh0aGlzLmZldGNoQW5ub3RhdGlvbnModCksdGhpcy5mZXRjaE1ldHJpY3ModCksdGhpcy5mZXRjaFZhbHVlcyh0KSx0aGlzLmZldGNoRW1iZWRkaW5ncyh0KSkucGlwZShJdCgoKFt0LGUsbixvXSk9Pntjb25zdCBpPXt9LGE9e307bGV0IHIscz0wO2Zvcihjb25zdCByIG9mIE9iamVjdC5rZXlzKHQpKWZvcihjb25zdCBsIGluIHRbcl0pe2NvbnN0IGM9dFtyXVtsXTtPYmplY3Qua2V5cyhvKS5sZW5ndGgmJiFhW2NdJiZvW3JdW2xdJiZvW3JdW2xdLnNvbWUoKHQ9PjAhPT10KSkmJihhW2NdPXt2ZWN0b3I6b1tyXVtsXSxpbmRleDpzLG5hbWU6Y30scys9MSk7Y29uc3QgZD1uZXcgTWFwO2Zvcihjb25zdCB0IGluIGVbcl0pe2NvbnN0IG89ZVtyXVt0XSxpPW55dChvKTtsZXQgYT1kLmdldChpKTthfHwoYT17blBNSVZhbHVlOm51bGwsY291bnRWYWx1ZTpudWxsLGFubm90YXRpb246YyxtZXRyaWM6aSxydW46cn0sZC5zZXQoaSxhKSksJGJ0KG8pP2EuY291bnRWYWx1ZT1uW3JdW2xdW3RdOnR5dChvKSYmKGEublBNSVZhbHVlPW5bcl1bbF1bdF0pfWlbY109Wy4uLmlbY10/aVtjXTpbXSwuLi5kLnZhbHVlcygpXX1yZXR1cm4gT2JqZWN0LmtleXMoYSkubGVuZ3RoJiYocj0oZnVuY3Rpb24gbCh0KXtjb25zdCBlPU9iamVjdC5rZXlzKHQpO3JldHVybntwb2ludHM6dCxwb2ludEtleXM6ZSxzaHVmZmxlZERhdGFJbmRpY2VzOkZ2dCgobj1lLmxlbmd0aCxbLi4ubmV3IEFycmF5KG4pXS5tYXAoKCh0LGUpPT5lKSkpKSxoYXNVbWFwUnVuOiExfTt2YXIgbn0pKGEpKSx7YW5ub3RhdGlvbkRhdGE6aSxtZXRyaWNzOmUsZW1iZWRkaW5nRGF0YVNldDpyfX0pKSxwZSgodD0+dCBpbnN0YW5jZW9mIHhEJiY0MDA8PXQuc3RhdHVzJiZ0LnN0YXR1czw1MDA/RXQoe2Fubm90YXRpb25EYXRhOnt9LG1ldHJpY3M6e30sZW1iZWRkaW5nRGF0YVNldDp2b2lkIDB9KTpSdCh0KSkpKX1mZXRjaEFubm90YXRpb25zKHQpe3JldHVybiAkdCh0Lm1hcCgodD0+dGhpcy5odHRwLmdldChgL2V4cGVyaW1lbnQvJHt0fS8ke3RoaXMuaHR0cFBhdGhQcmVmaXh9L2Fubm90YXRpb25zYCkucGlwZShJdCgoZT0+KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHQpLm1hcCgoKFt0LG5dKT0+W0x2dCh0LGUpLG5dKSkpfSkoZSx0KSkpKSkpKS5waXBlKEl0KCh0PT57bGV0IGU9e307Zm9yKGNvbnN0IG4gb2YgdCllPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSxuKTtyZXR1cm4gZX0pKSl9ZmV0Y2hNZXRyaWNzKHQpe3JldHVybiAkdCh0Lm1hcCgodD0+dGhpcy5odHRwLmdldChgL2V4cGVyaW1lbnQvJHt0fS8ke3RoaXMuaHR0cFBhdGhQcmVmaXh9L21ldHJpY3NgKS5waXBlKEl0KChlPT4oZnVuY3Rpb24gbih0LGUpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModCkubWFwKCgoW3Qsbl0pPT5bTHZ0KHQsZSksbl0pKSl9KShlLHQpKSkpKSkpLnBpcGUoSXQoKHQ9PntsZXQgZT17fTtmb3IoY29uc3QgbiBvZiB0KWU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLG4pO3JldHVybiBlfSkpKX1mZXRjaFZhbHVlcyh0KXtyZXR1cm4gJHQodC5tYXAoKHQ9PnRoaXMuaHR0cC5nZXQoYC9leHBlcmltZW50LyR7dH0vJHt0aGlzLmh0dHBQYXRoUHJlZml4fS92YWx1ZXNgKS5waXBlKEl0KChlPT4oZnVuY3Rpb24gbih0LGUpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModCkubWFwKCgoW3Qsbl0pPT5bTHZ0KHQsZSksbl0pKSl9KShlLHQpKSkpKSkpLnBpcGUoSXQoKHQ9PntsZXQgZT17fTtmb3IoY29uc3QgbiBvZiB0KWU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLG4pO3JldHVybiBlfSkpKX1mZXRjaEVtYmVkZGluZ3ModCl7cmV0dXJuICR0KHQubWFwKCh0PT50aGlzLmh0dHAuZ2V0KGAvZXhwZXJpbWVudC8ke3R9LyR7dGhpcy5odHRwUGF0aFByZWZpeH0vZW1iZWRkaW5nc2ApLnBpcGUoSXQoKGU9PihmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0KS5tYXAoKChbdCxuXSk9PltMdnQodCxlKSxuXSkpKX0pKGUsdCkpKSkpKSkucGlwZShJdCgodD0+e2xldCBlPXt9O2Zvcihjb25zdCBuIG9mIHQpZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSksbik7cmV0dXJuIGV9KSkpfX1CdnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJ2dCkodnIobEUpKX0sQnZ0Lsm1cHJvdj1Nbih7dG9rZW46QnZ0LGZhY3Rvcnk6QnZ0Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChCdnQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmxFfV19KSxudWxsKTtjbGFzcyBWdnR7fVZ2dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VnZ0KX0sVnZ0Lsm1bW9kPWFvKHt0eXBlOlZ2dH0pLFZ2dC7JtWluaj12bih7cHJvdmlkZXJzOltCdnRdLGltcG9ydHM6W1tjRV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChWdnQsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltjRV0scHJvdmlkZXJzOltCdnRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oVnZ0LHtpbXBvcnRzOltjRV19KTtjbGFzcyBqdnR7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5kYXRhU291cmNlPW4sdGhpcy5sb2FkRGF0YSQ9TWsoKCgpPT5yZSh0aGlzLmxvYWRQbHVnaW5EYXRhKCkpLnBpcGUoSXQoKCgpPT4oe30pKSkpKSx7ZGlzcGF0Y2g6ITF9KX1sb2FkUGx1Z2luRGF0YSgpe3JldHVybiB0aGlzLmFjdGlvbnMkLnBpcGUoRGsoa2J0KSxWZSh0aGlzLnN0b3JlLnNlbGVjdChhYnQpLHRoaXMuc3RvcmUuc2VsZWN0KFRTKSksY2UoKChbLHQsZV0pPT50IT09eUUuTE9BRElORyYmbnVsbCE9PWUpKSxGZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goU2J0KCkpKSksWnQoKChbLCx0XSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaERhdGEodCkucGlwZShGZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goRGJ0KHQpKX0pKSxJdCgoKCk9Pnt9KSkscGUoKCgpPT4odGhpcy5zdG9yZS5kaXNwYXRjaChFYnQoKSkscnQpKSkpKSkpfX1qdnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGp2dCkodnIoU2spLHZyKEl3KSx2cihCdnQpKX0sanZ0Lsm1cHJvdj1Nbih7dG9rZW46anZ0LGZhY3Rvcnk6anZ0Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChqdnQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlNrfSx7dHlwZTpJd30se3R5cGU6QnZ0fV19KSxudWxsKTtjbGFzcyBVdnR7fVV2dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VXZ0KX0sVXZ0Lsm1bW9kPWFvKHt0eXBlOlV2dH0pLFV2dC7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChVdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W29idF0sZXhwb3J0czpbb2J0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFV2dCx7ZGVjbGFyYXRpb25zOltvYnRdLGV4cG9ydHM6W29idF19KTtjbGFzcyBHdnR7fUd2dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8R3Z0KX0sR3Z0Lsm1bW9kPWFvKHt0eXBlOkd2dH0pLEd2dC7JtWluaj12bih7aW1wb3J0czpbW1dNLEVXLEJZLFkwXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEd2dCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbc3l0LGx5dF0saW1wb3J0czpbV00sRVcsQlksWTBdLGV4cG9ydHM6W2x5dF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhHdnQse2RlY2xhcmF0aW9uczpbc3l0LGx5dF0saW1wb3J0czpbV00sRVcsQlksWTBdLGV4cG9ydHM6W2x5dF19KTtjbGFzcyBXdnR7fVd2dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8V3Z0KX0sV3Z0Lsm1bW9kPWFvKHt0eXBlOld2dH0pLFd2dC7JtWluaj12bih7aW1wb3J0czpbW1dNLGNHLGRHLEVXLEV5dCxWUV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3p5dCxJeXRdLGltcG9ydHM6W1dNLGNHLGRHLEVXLEV5dCxWUV0sZXhwb3J0czpbSXl0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFd2dCx7ZGVjbGFyYXRpb25zOlt6eXQsSXl0XSxpbXBvcnRzOltXTSxjRyxkRyxFVyxFeXQsVlFdLGV4cG9ydHM6W0l5dF19KTtjbGFzcyBZdnR7fVl2dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WXZ0KX0sWXZ0Lsm1bW9kPWFvKHt0eXBlOll2dH0pLFl2dC7JtWluaj12bih7aW1wb3J0czpbW1dNLEV5dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChZdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0h5dF0saW1wb3J0czpbV00sRXl0XSxleHBvcnRzOltIeXRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oWXZ0LHtkZWNsYXJhdGlvbnM6W0h5dF0saW1wb3J0czpbV00sRXl0XSxleHBvcnRzOltIeXRdfSk7Y2xhc3MgcXZ0e31xdnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHF2dCl9LHF2dC7JtW1vZD1hbyh7dHlwZTpxdnR9KSxxdnQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxFeXQsV3Z0LFl2dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChxdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1Z5dCxqeXRdLGltcG9ydHM6W1dNLEV5dCxXdnQsWXZ0XSxleHBvcnRzOltqeXRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8ocXZ0LHtkZWNsYXJhdGlvbnM6W1Z5dCxqeXRdLGltcG9ydHM6W1dNLEV5dCxXdnQsWXZ0XSxleHBvcnRzOltqeXRdfSk7Y2xhc3MgWnZ0e31adnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFp2dCl9LFp2dC7JtW1vZD1hbyh7dHlwZTpadnR9KSxadnQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxFVyxKSF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChadnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3B5dCxteXRdLGltcG9ydHM6W1dNLEVXLEpIXSxleHBvcnRzOltteXRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oWnZ0LHtkZWNsYXJhdGlvbnM6W3B5dCxteXRdLGltcG9ydHM6W1dNLEVXLEpIXSxleHBvcnRzOltteXRdfSk7Y2xhc3MgWHZ0e31YdnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFh2dCl9LFh2dC7JtW1vZD1hbyh7dHlwZTpYdnR9KSxYdnQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxHdnQscXZ0LFp2dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChYdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1V5dF0saW1wb3J0czpbV00sR3Z0LHF2dCxadnRdLGV4cG9ydHM6W1V5dF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhYdnQse2RlY2xhcmF0aW9uczpbVXl0XSxpbXBvcnRzOltXTSxHdnQscXZ0LFp2dF0sZXhwb3J0czpbVXl0XX0pO2NsYXNzIEt2dHt9S3Z0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxLdnQpfSxLdnQuybVtb2Q9YW8oe3R5cGU6S3Z0fSksS3Z0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sY0csSkgsRVddXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoS3Z0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltZeXQscXl0XSxpbXBvcnRzOltXTSxjRyxKSCxFV10sZXhwb3J0czpbcXl0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKEt2dCx7ZGVjbGFyYXRpb25zOltZeXQscXl0XSxpbXBvcnRzOltXTSxjRyxKSCxFV10sZXhwb3J0czpbcXl0XX0pO2NsYXNzIEp2dHt9SnZ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxKdnQpfSxKdnQuybVtb2Q9YW8oe3R5cGU6SnZ0fSksSnZ0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sY0csRVcsSkgsS3Z0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKEp2dCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbS3l0LEp5dF0saW1wb3J0czpbV00sY0csRVcsSkgsS3Z0XSxleHBvcnRzOltKeXRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oSnZ0LHtkZWNsYXJhdGlvbnM6W0t5dCxKeXRdLGltcG9ydHM6W1dNLGNHLEVXLEpILEt2dF0sZXhwb3J0czpbSnl0XX0pO2NsYXNzIFF2dHt9UXZ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxRdnQpfSxRdnQuybVtb2Q9YW8oe3R5cGU6UXZ0fSksUXZ0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sY0csRVcsQlldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoUXZ0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltmX3QsZ190XSxpbXBvcnRzOltXTSxjRyxFVyxCWV0sZXhwb3J0czpbZ190XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKFF2dCx7ZGVjbGFyYXRpb25zOltmX3QsZ190XSxpbXBvcnRzOltXTSxjRyxFVyxCWV0sZXhwb3J0czpbZ190XX0pO2NsYXNzICR2dHt9JHZ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHwkdnQpfSwkdnQuybVtb2Q9YW8oe3R5cGU6JHZ0fSksJHZ0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sY0csRVcsSkgsbV90LFF2dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCgkdnQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3lfdCxfX3RdLGltcG9ydHM6W1dNLGNHLEVXLEpILG1fdCxRdnRdLGV4cG9ydHM6W19fdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybygkdnQse2RlY2xhcmF0aW9uczpbeV90LF9fdF0saW1wb3J0czpbV00sY0csRVcsSkgsbV90LFF2dF0sZXhwb3J0czpbX190XX0pO2NsYXNzIHR4dHt9dHh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0eHQpfSx0eHQuybVtb2Q9YW8oe3R5cGU6dHh0fSksdHh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sY0csU1ksRVddXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgodHh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltQX3Qsd190XSxpbXBvcnRzOltXTSxjRyxTWSxFV10sZXhwb3J0czpbd190XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHR4dCx7ZGVjbGFyYXRpb25zOltQX3Qsd190XSxpbXBvcnRzOltXTSxjRyxTWSxFV10sZXhwb3J0czpbd190XX0pO2NsYXNzIGV4dHt9ZXh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxleHQpfSxleHQuybVtb2Q9YW8oe3R5cGU6ZXh0fSksZXh0Lsm1aW5qPXZuKHtpbXBvcnRzOltbV01dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZXh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltNX3RdLGltcG9ydHM6W1dNXSxleHBvcnRzOltNX3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZXh0LHtkZWNsYXJhdGlvbnM6W01fdF0saW1wb3J0czpbV01dLGV4cG9ydHM6W01fdF19KTtjbGFzcyBueHR7fW54dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bnh0KX0sbnh0Lsm1bW9kPWFvKHt0eXBlOm54dH0pLG54dC7JtWluaj12bih7aW1wb3J0czpbW2V4dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChueHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3ZfdF0saW1wb3J0czpbZXh0XSxleHBvcnRzOlt2X3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8obnh0LHtkZWNsYXJhdGlvbnM6W3ZfdF0saW1wb3J0czpbZXh0XSxleHBvcnRzOlt2X3RdfSk7Y2xhc3Mgb3h0e31veHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG94dCl9LG94dC7JtW1vZD1hbyh7dHlwZTpveHR9KSxveHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjRyxTWSxFVyxKSF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChveHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1RfdCxBX3RdLGltcG9ydHM6W1dNLGNHLFNZLEVXLEpIXSxleHBvcnRzOltUX3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8ob3h0LHtkZWNsYXJhdGlvbnM6W1RfdCxBX3RdLGltcG9ydHM6W1dNLGNHLFNZLEVXLEpIXSxleHBvcnRzOltUX3RdfSk7Y2xhc3MgaXh0e31peHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGl4dCl9LGl4dC7JtW1vZD1hbyh7dHlwZTppeHR9KSxpeHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSwkdnQsdHh0LG54dCxfRixveHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoaXh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltJX3QsSF90XSxpbXBvcnRzOltXTSwkdnQsdHh0LG54dCxfRixveHRdLGV4cG9ydHM6W0hfdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhpeHQse2RlY2xhcmF0aW9uczpbSV90LEhfdF0saW1wb3J0czpbV00sJHZ0LHR4dCxueHQsX0Ysb3h0XSxleHBvcnRzOltIX3RdfSk7Y2xhc3MgYXh0e31heHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGF4dCl9LGF4dC7JtW1vZD1hbyh7dHlwZTpheHR9KSxheHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChheHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0xfdCxCX3RdLGltcG9ydHM6W1dNXSxleHBvcnRzOltCX3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oYXh0LHtkZWNsYXJhdGlvbnM6W0xfdCxCX3RdLGltcG9ydHM6W1dNXSxleHBvcnRzOltCX3RdfSk7Y2xhc3Mgcnh0e31yeHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHJ4dCl9LHJ4dC7JtW1vZD1hbyh7dHlwZTpyeHR9KSxyeHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxFVyxKSCxheHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgocnh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltHX3QsV190XSxpbXBvcnRzOltXTSxFVyxKSCxheHRdLGV4cG9ydHM6W1dfdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhyeHQse2RlY2xhcmF0aW9uczpbR190LFdfdF0saW1wb3J0czpbV00sRVcsSkgsYXh0XSxleHBvcnRzOltXX3RdfSk7Y2xhc3Mgc3h0e31zeHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHN4dCl9LHN4dC7JtW1vZD1hbyh7dHlwZTpzeHR9KSxzeHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjRyxTWSxFVyxraHQsWHZ0LEpILEp2dCxpeHQscnh0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHN4dCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbSl90LFFfdF0saW1wb3J0czpbV00sY0csU1ksRVcsa2h0LFh2dCxKSCxKdnQsaXh0LHJ4dF0sZXhwb3J0czpbUV90XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHN4dCx7ZGVjbGFyYXRpb25zOltKX3QsUV90XSxpbXBvcnRzOltXTSxjRyxTWSxFVyxraHQsWHZ0LEpILEp2dCxpeHQscnh0XSxleHBvcnRzOltRX3RdfSk7Y2xhc3MgbHh0e31seHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGx4dCl9LGx4dC7JtW1vZD1hbyh7dHlwZTpseHR9KSxseHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxjRyxTWSxFVyxraHQsWHZ0LEpILGl4dCxyeHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgobHh0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltpQ3QsYUN0XSxpbXBvcnRzOltXTSxjRyxTWSxFVyxraHQsWHZ0LEpILGl4dCxyeHRdLGV4cG9ydHM6W2FDdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhseHQse2RlY2xhcmF0aW9uczpbaUN0LGFDdF0saW1wb3J0czpbV00sY0csU1ksRVcsa2h0LFh2dCxKSCxpeHQscnh0XSxleHBvcnRzOlthQ3RdfSk7Y2xhc3MgY3h0e31jeHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGN4dCl9LGN4dC7JtW1vZD1hbyh7dHlwZTpjeHR9KSxjeHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxVdnQsc3h0LGx4dCxWdnQsZGsuZm9yRmVhdHVyZShRaHQsaXl0KSxXay5mb3JGZWF0dXJlKFtqdnRdKSx3cS5mb3JQbHVnaW4oIm5wbWkiLHBDdCldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoY3h0LFt7dHlwZTpBeSxhcmdzOlt7ZGVjbGFyYXRpb25zOltkQ3QscEN0XSxpbXBvcnRzOltXTSxVdnQsc3h0LGx4dCxWdnQsZGsuZm9yRmVhdHVyZShRaHQsaXl0KSxXay5mb3JGZWF0dXJlKFtqdnRdKSx3cS5mb3JQbHVnaW4oIm5wbWkiLHBDdCldLGV4cG9ydHM6W3BDdF0sZW50cnlDb21wb25lbnRzOltwQ3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oY3h0LHtkZWNsYXJhdGlvbnM6W2RDdCxwQ3RdLGltcG9ydHM6W1dNLFV2dCxzeHQsbHh0LFZ2dCxjayxHayx3cV0sZXhwb3J0czpbcEN0XX0pO2NsYXNzIGR4dHt9ZHh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkeHQpfSxkeHQuybVjbXA9dG8oe3R5cGU6ZHh0LHNlbGVjdG9yczpbWyJ0ZXh0LWRhc2hib2FyZCJdXSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZrdSgwLCIgVGhpcyBpcyB0aGUgdGV4dCBkYXNoYm9hcmQgIil9LGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoZHh0LFt7dHlwZTpNeSxhcmdzOlt7c2VsZWN0b3I6InRleHQtZGFzaGJvYXJkIix0ZW1wbGF0ZToiIFRoaXMgaXMgdGhlIHRleHQgZGFzaGJvYXJkICIsY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sbnVsbCxudWxsKTtjbGFzcyBweHR7fXB4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cHh0KX0scHh0Lsm1bW9kPWFvKHt0eXBlOnB4dH0pLHB4dC7JtWluaj12bih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChweHQsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2R4dF0sZXhwb3J0czpbZHh0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHB4dCx7ZGVjbGFyYXRpb25zOltkeHRdLGV4cG9ydHM6W2R4dF19KTtjbGFzcyBteHR7fW14dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bXh0KX0sbXh0Lsm1cHJvdj1Nbih7dG9rZW46bXh0LGZhY3Rvcnk6bXh0Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChteHQsW3t0eXBlOmltfV0sbnVsbCxudWxsKTtjbGFzcyB1eHR7Y29uc3RydWN0b3IodCl7dGhpcy5odHRwPXQsdGhpcy5odHRwUGF0aFByZWZpeD0iZGF0YS9wbHVnaW4vdGV4dF92MiJ9ZmV0Y2hSdW5Ub1RhZygpe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi90YWdzIikucGlwZShJdCgodD0+e2NvbnN0IGU9bmV3IE1hcDtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkuZm9yRWFjaCgoKFt0LG5dKT0+e2Uuc2V0KHQsbil9KSksZX0pKSl9ZmV0Y2hUZXh0RGF0YSh0LGUpe2NvbnN0IG49bmV3IFVSTFNlYXJjaFBhcmFtcyh7cnVuOnQsdGFnOmV9KTtyZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4K2AvdGV4dD8ke24udG9TdHJpbmcoKX1gKS5waXBlKEl0KCh0PT50Lm1hcCgodD0+KHtvcmlnaW5hbFNoYXBlOnQub3JpZ2luYWxfc2hhcGUsc3RlcDp0LnN0ZXAsc3RyaW5nQXJyYXk6dC5zdHJpbmdfYXJyYXksd2FsbFRpbWVJbk1zOjFlMyp0LndhbGxfdGltZSx0cnVuY2F0ZWQ6dC50cnVuY2F0ZWR9KSkpKSkpfX11eHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHV4dCkodnIobEUpKX0sdXh0Lsm1cHJvdj1Nbih7dG9rZW46dXh0LGZhY3Rvcnk6dXh0Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaCh1eHQsW3t0eXBlOmltfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmxFfV19KSxudWxsKTtjbGFzcyBmeHR7fWZ4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Znh0KX0sZnh0Lsm1bW9kPWFvKHt0eXBlOmZ4dH0pLGZ4dC7JtWluaj12bih7cHJvdmlkZXJzOlt1eHQse3Byb3ZpZGU6bXh0LHVzZUV4aXN0aW5nOnV4dH1dLGltcG9ydHM6W1tjRV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChmeHQsW3t0eXBlOkF5LGFyZ3M6W3tpbXBvcnRzOltjRV0scHJvdmlkZXJzOlt1eHQse3Byb3ZpZGU6bXh0LHVzZUV4aXN0aW5nOnV4dH1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oZnh0LHtpbXBvcnRzOltjRV19KTtjb25zdCBneHQ9SlAoIltUZXh0XSBUZXh0IFBsdWdpbiBMb2FkZWQiKSxoeHQ9SlAoIltUZXh0XSBSdW5zIFRvIFRhZyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxieHQ9SlAoIltUZXh0XSBUYWcgR3JvdXAgVmlzaWJpbGl0eSBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSkseXh0PUpQKCJbVGV4dF0gVGV4dCBEYXRhIExvYWRlZCBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxfeHQ9InRleHQiLEN4dD1LdyhfeHQpO1p3KEN4dCwodD0+dC5ydW5Ub1RhZ3MpKTtjb25zdCBNeHQ9WncoQ3h0LCh0PT57Y29uc3QgZT1uZXcgU2V0LG49bmV3IFNldDtmb3IoY29uc3QgbyBvZiB0LnZpc2libGVSdW5UYWdzLnZhbHVlcygpKWZvcihjb25zdCB0IG9mIG8pe2NvbnN0IG89SlNPTi5zdHJpbmdpZnkodCk7ZS5oYXMobyl8fChlLmFkZChvKSxuLmFkZCh0KSl9cmV0dXJuWy4uLm5dfSkpLHZ4dD1adyhDeHQsKCh0LGUpPT57Y29uc3Qgbj10LmRhdGEuZ2V0KGUucnVuKTtyZXR1cm4gbiYmbi5nZXQoZS50YWcpfHxudWxsfSkpO2NsYXNzIHh4dHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5hY3Rpb25zJD10LHRoaXMuc3RvcmU9ZSx0aGlzLmRhdGFTb3VyY2U9bix0aGlzLmxvYWRSdW5Ub1RhZ3MkPU1rKCgoKT0+dGhpcy5hY3Rpb25zJC5waXBlKERrKGd4dCksemUoKCgpPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hSdW5Ub1RhZygpLnBpcGUoRmUoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKGh4dCh7cnVuVG9UYWdzOnR9KSl9KSksSXQoKCgpPT57fSkpKSkpKSkse2Rpc3BhdGNoOiExfSksdGhpcy5sb2FkRGF0YSQ9TWsoKCgpPT5yZSh0aGlzLmFjdGlvbnMkLnBpcGUoRGsoYnh0KSx6ZSgoKHt2aXNpYmxlVGV4dENhcmRzOnR9KT0+JHQodC5tYXAoKCh7cnVuOnQsdGFnOmV9KT0+dGhpcy5zdG9yZS5zZWxlY3Qodnh0LHtydW46dCx0YWc6ZX0pLnBpcGUoKGZ1bmN0aW9uIG4odCxlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPj0yO3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gby5waXBlKHQ/Y2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQoZSxuLG8pfSkpOncsU2UoMSksbj9oZShlKTp4ZSgoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHp0fSkpKX19KSgpLEl0KChuPT4oe3J1bjp0LHRhZzplLHRleHREYXRhOm59KSkpKSkpKS5waXBlKEl0KCh0PT50LmZpbHRlcigoKHt0ZXh0RGF0YTp0fSk9Pm51bGw9PT10KSkubWFwKCgoe3J1bjp0LHRhZzplfSk9Pih7cnVuOnQsdGFnOmV9KSkpKSkpKSkpLHRoaXMuYWN0aW9ucyQucGlwZShEayh2RSx4RSksVmUodGhpcy5zdG9yZS5zZWxlY3QoTXh0KSksSXQoKChbLHRdKT0+dCkpKSkucGlwZShadCgodD0+JHQodC5tYXAoKHQ9PnRoaXMuZmV0Y2hUZXh0RGF0YSh0KSkpKSkpKSkse2Rpc3BhdGNoOiExfSl9ZmV0Y2hUZXh0RGF0YSh0KXtjb25zdHtydW46ZSx0YWc6bn09dDtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoVGV4dERhdGEoZSxuKS5waXBlKEZlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaCh5eHQoe3J1bjplLHRhZzpuLHN0ZXBEYXRhOnR9KSl9KSksSXQoKCgpPT57fSkpKX19eHh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4eHQpKHZyKFNrKSx2cihJdyksdnIobXh0KSl9LHh4dC7JtXByb3Y9TW4oe3Rva2VuOnh4dCxmYWN0b3J5Onh4dC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoeHh0LFt7dHlwZTppbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTa30se3R5cGU6SXd9LHt0eXBlOm14dH1dfSksbnVsbCk7Y29uc3QgT3h0PXlrKHtydW5Ub1RhZ3M6bmV3IE1hcChbWyJydW4xIixbImEvYiIsImEvYyJdXSxbInJ1bjIiLFsiYS9iIiwiYS9kIl1dLFsicnVuMyIsWyJjIiwiYS9iIl1dXSksZGF0YTpuZXcgTWFwKFtbInJ1bjEiLG5ldyBNYXAoW1siYS9iIixbe29yaWdpbmFsU2hhcGU6WzNdLHN0ZXA6MCxzdHJpbmdBcnJheTpbWyJmb28iLCJiYXIiLCJiYXoiXV0sd2FsbFRpbWVJbk1zOjE1Nzc4NjU2ZTUsdHJ1bmNhdGVkOiExfSx7b3JpZ2luYWxTaGFwZTpbM10sc3RlcDoxLHN0cmluZ0FycmF5OltbImZvbyIsImJheiJdXSx3YWxsVGltZUluTXM6MTU3Nzg2NTYwMWUzLHRydW5jYXRlZDohMX1dXSxbImEvYyIsW3tvcmlnaW5hbFNoYXBlOlszXSxzdGVwOjAsc3RyaW5nQXJyYXk6W1siV2UgY29uZHVjdGVkIGFuIGV4cGVyaW1lbnQgYW5kIGZvdW5kIHRoZSBmb2xsb3dpbmcgZGF0YTpcblxuUG91bmRzIG9mIGNob2NvbGF0ZSB8IEhhcHBpbmVzc1xuLS0tfC0tLVxuMCB8IDFcbjEgfCA0XG4yIHwgOVxuMyB8IDE2XG40IHwgMjVcbjUgfCAzNlxuNiB8IDQ5XG43IHwgNjRcbjggfCA4MVxuOSB8IDEwMFxuMTAgfCAxMjEiXV0sd2FsbFRpbWVJbk1zOjE1Nzc4NjU2ZTUsdHJ1bmNhdGVkOiExfSx7b3JpZ2luYWxTaGFwZTpbM10sc3RlcDoxLHN0cmluZ0FycmF5OltbIsOXIiwiKiowKioiLCIqKjEqKiIsIioqMioqIiwiKiozKioiLCIqKjQqKiIsIioqNSoqIl0sWyIqKjAqKiIsIjAiLCIwIiwiMCIsIjAiLCIwIiwiMCJdLFsiKioxKioiLCIwIiwiMSIsIjIiLCIzIiwiNCIsIjUiXSxbIioqMioqIiwiMCIsIjIiLCI0IiwiNiIsIjgiLCIxMCJdLFsiKiozKioiLCIwIiwiMyIsIjYiLCI5IiwiMTIiLCIxNSJdLFsiKio0KioiLCIwIiwiNCIsIjgiLCIxMiIsIjE2IiwiMjAiXSxbIioqNSoqIiwiMCIsIjUiLCIxMCIsIjE1IiwiMjAiLCIyNSJdXSx3YWxsVGltZUluTXM6MTU3Nzg2NTYwMWUzLHRydW5jYXRlZDohMX1dXV0pXV0pLHZpc2libGVSdW5UYWdzOm5ldyBNYXB9KTtmdW5jdGlvbiBQeHQodCxlKXtyZXR1cm4gT3h0KHQsZSl9Y2xhc3Mgd3h0e313eHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHd4dCl9LHd4dC7JtW1vZD1hbyh7dHlwZTp3eHR9KSx3eHQuybVpbmo9dm4oe2ltcG9ydHM6W1tXTSxweHQsd3EuZm9yUGx1Z2luKCJ0ZXh0X3YyIixkeHQpLGZ4dCxkay5mb3JGZWF0dXJlKF94dCxQeHQpLFdrLmZvckZlYXR1cmUoW3h4dF0pXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHd4dCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W1dNLHB4dCx3cS5mb3JQbHVnaW4oInRleHRfdjIiLGR4dCksZnh0LGRrLmZvckZlYXR1cmUoX3h0LFB4dCksV2suZm9yRmVhdHVyZShbeHh0XSldLGVudHJ5Q29tcG9uZW50czpbZHh0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnJvKHd4dCx7aW1wb3J0czpbV00scHh0LHdxLGZ4dCxjayxHa119KTtjbGFzcyBreHR7fXZhciBTeHQ7a3h0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxreHQpfSxreHQuybVtb2Q9YW8oe3R5cGU6a3h0fSksa3h0Lsm1aW5qPXZuKHtpbXBvcnRzOltbS0osSmh0LGN4dCx3eHRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoa3h0LFt7dHlwZTpBeSxhcmdzOlt7aW1wb3J0czpbS0osSmh0LGN4dCx3eHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8oa3h0LHtpbXBvcnRzOltLSixKaHQsY3h0LHd4dF19KSwoZnVuY3Rpb24odCl7dC5DVVNUT01fRUxFTUVOVD0iQ1VTVE9NX0VMRU1FTlQiLHQuSUZSQU1FPSJJRlJBTUUiLHQuTkdfQ09NUE9ORU5UPSJOR19DT01QT05FTlQiLHQuTk9ORT0iTk9ORSJ9KShTeHR8fChTeHQ9e30pKTtjb25zdCBEeHQ9WyJwbHVnaW5Db250YWluZXIiXSxFeHQ9WyJuZ1BsdWdpbkNvbnRhaW5lciJdO2Z1bmN0aW9uIFJ4dCh0LGUpezEmdCYmSW0oMCl9ZnVuY3Rpb24gQXh0KHQsZSl7aWYoMSZ0JiYoTm0oMCksUXAoMSxSeHQsMSwwLCJuZy1jb250YWluZXIiLDkpLHptKCkpLDImdCl7Y29uc3QgdD1ZbSgyKSxlPSRwKDYpO3JjKDEpLERtKCJuZ1RlbXBsYXRlT3V0bGV0Iix0LmVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGU/dC5lbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlOmUpfX1mdW5jdGlvbiBUeHQodCxlKXsxJnQmJkltKDApfWZ1bmN0aW9uIE54dCh0LGUpe2lmKDEmdCYmKE5tKDApLFFwKDEsVHh0LDEsMCwibmctY29udGFpbmVyIiw5KSx6bSgpKSwyJnQpe2NvbnN0IHQ9WW0oMiksZT0kcCg2KTtyYygxKSxEbSgibmdUZW1wbGF0ZU91dGxldCIsdC5lbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGU/dC5lbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGU6ZSl9fWZ1bmN0aW9uIHp4dCh0LGUpe2lmKDEmdCYmKE5tKDApLFJtKDEsImgzIiwxMCksa3UoMiwiIFRoZXJl4oCZcyBubyBkYXNoYm9hcmQgYnkgdGhlIG5hbWUgb2Yg4oCcIiksUm0oMywiY29kZSIpLGt1KDQpLEFtKCksa3UoNSwi4oCdLiAiKSxBbSgpLFJtKDYsInAiKSxrdSg3LCJZb3UgY2FuIHNlbGVjdCBhIGRhc2hib2FyZCBmcm9tIHRoZSBsaXN0IGFib3ZlLiIpLEFtKCksUm0oOCwicCIpLEltKDksMTEpLEFtKCksem0oKSksMiZ0KXtjb25zdCB0PVltKDIpLGU9JHAoOCk7cmMoNCksU3UodC5hY3RpdmVQbHVnaW5JZCkscmMoNSksRG0oIm5nVGVtcGxhdGVPdXRsZXQiLGUpfX1mdW5jdGlvbiBJeHQodCxlKXtpZigxJnQmJihObSgwKSxSbSgxLCJoMyIsMTIpLGt1KDIsIiBObyBkYXNoYm9hcmRzIGFyZSBhY3RpdmUgZm9yIHRoZSBjdXJyZW50IGRhdGEgc2V0LiAiKSxBbSgpLFJtKDMsInAiKSxrdSg0LCJQcm9iYWJsZSBjYXVzZXM6IiksQW0oKSxSbSg1LCJ1bCIpLFJtKDYsImxpIiksa3UoNywiWW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuIiksQW0oKSxSbSg4LCJsaSIpLGt1KDksIlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLiIpLEFtKCksQW0oKSxrdSgxMCwiIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZSAiKSxSbSgxMSwiYSIsMTMpLGt1KDEyLCJSRUFETUUiKSxBbSgpLGt1KDEzLCIgYW5kIHBlcmhhcHMgdGhlICIpLFJtKDE0LCJhIiwxNCksa3UoMTUsIlRlbnNvckJvYXJkIHR1dG9yaWFsIiksQW0oKSxrdSgxNiwiLiAiKSxSbSgxNywicCIpLGt1KDE4LCIgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUgIiksUm0oMTksImEiLDE1KSxrdSgyMCwidGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtcyIpLEFtKCksa3UoMjEsIiBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4gIiksQW0oKSxSbSgyMiwicCIpLEltKDIzLDExKSxBbSgpLHptKCkpLDImdCl7WW0oMik7Y29uc3QgdD0kcCg4KTtyYygyMyksRG0oIm5nVGVtcGxhdGVPdXRsZXQiLHQpfX1mdW5jdGlvbiBIeHQodCxlKXtpZigxJnQmJihSbSgwLCJkaXYiLDYpLFJtKDEsImRpdiIsNyksUXAoMixBeHQsMiwxLCJuZy1jb250YWluZXIiLDgpLFFwKDMsTnh0LDIsMSwibmctY29udGFpbmVyIiw4KSxRcCg0LHp4dCwxMCwyLCJuZy1jb250YWluZXIiLDgpLFFwKDUsSXh0LDI0LDEsIm5nLWNvbnRhaW5lciIsOCksQW0oKSxBbSgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtEbSgibmdTd2l0Y2giLHQucGx1Z2luTG9hZFN0YXRlKSxyYygyKSxEbSgibmdTd2l0Y2hDYXNlIix0LlBsdWdpbkxvYWRTdGF0ZS5FTlZJUk9OTUVOVF9GQUlMVVJFX05PVF9GT1VORCkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5Mb2FkU3RhdGUuRU5WSVJPTk1FTlRfRkFJTFVSRV9VTktOT1dOKSxyYygxKSxEbSgibmdTd2l0Y2hDYXNlIix0LlBsdWdpbkxvYWRTdGF0ZS5VTktOT1dOX1BMVUdJTl9JRCkscmMoMSksRG0oIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5Mb2FkU3RhdGUuTk9fRU5BQkxFRF9QTFVHSU5TKX19ZnVuY3Rpb24gRnh0KHQsZSl7aWYoMSZ0JiYoUm0oMCwiaDMiLDE2KSxrdSgxLCJEYXRhIGNvdWxkIG5vdCBiZSBsb2FkZWQuIiksQW0oKSxSbSgyLCJwIiksa3UoMywiVGhlIFRlbnNvckJvYXJkIHNlcnZlciBtYXkgYmUgZG93biBvciBpbmFjY2Vzc2libGUuIiksQW0oKSxSbSg0LCJwIiksSW0oNSwxMSksQW0oKSksMiZ0KXtZbSgpO2NvbnN0IHQ9JHAoOCk7cmMoNSksRG0oIm5nVGVtcGxhdGVPdXRsZXQiLHQpfX1mdW5jdGlvbiBMeHQodCxlKXtpZigxJnQmJihSbSgwLCJwIiwxOSksUm0oMSwiaSIpLGt1KDIsIkxvZyBkaXJlY3Rvcnk6ICIpLFJtKDMsInNwYW4iKSxrdSg0KSxBbSgpLEFtKCksQW0oKSksMiZ0KXtjb25zdCB0PVltKDIpO3JjKDQpLFN1KHQuZGF0YUxvY2F0aW9uKX19ZnVuY3Rpb24gQnh0KHQsZSl7aWYoMSZ0JiYoUm0oMCwic3BhbiIsMTcpLGt1KDEpLEFoKDIsImRhdGUiKSxBbSgpLFFwKDMsTHh0LDUsMSwicCIsMTgpKSwyJnQpe2NvbnN0IHQ9WW0oKTtyYygxKSxEdSgiTGFzdCByZWxvYWQ6ICIsTmgoMiwyLHQubGFzdFVwZGF0ZWQsIm1lZGl1bSIpLCIiKSxyYygyKSxEbSgibmdJZiIsdC5kYXRhTG9jYXRpb24pfX1jb25zdCBWeHQ9ZnVuY3Rpb24odCl7cmV0dXJue3BsdWdpbnM6ITAsImlzLWZpcnN0LXBhcnR5LXBsdWdpbiI6dH19O3ZhciBqeHQ7IShmdW5jdGlvbih0KXt0W3QuRU5WSVJPTk1FTlRfRkFJTFVSRV9OT1RfRk9VTkQ9MF09IkVOVklST05NRU5UX0ZBSUxVUkVfTk9UX0ZPVU5EIix0W3QuRU5WSVJPTk1FTlRfRkFJTFVSRV9VTktOT1dOPTFdPSJFTlZJUk9OTUVOVF9GQUlMVVJFX1VOS05PV04iLHRbdC5OT19FTkFCTEVEX1BMVUdJTlM9Ml09Ik5PX0VOQUJMRURfUExVR0lOUyIsdFt0LlVOS05PV05fUExVR0lOX0lEPTNdPSJVTktOT1dOX1BMVUdJTl9JRCIsdFt0LkxPQURFRD00XT0iTE9BREVEIix0W3QuTE9BRElORz01XT0iTE9BRElORyJ9KShqeHR8fChqeHQ9e30pKTtjbGFzcyBVeHR7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPXQsdGhpcy5wbHVnaW5SZWdpc3RyeT1lLHRoaXMucGx1Z2luQXBpSG9zdD1uLHRoaXMuUGx1Z2luTG9hZFN0YXRlPWp4dCx0aGlzLkxvYWRpbmdNZWNoYW5pc21UeXBlPVN4dCx0aGlzLnBsdWdpbkluc3RhbmNlcz1uZXcgTWFwfW5nT25DaGFuZ2VzKHQpe3ZhciBlO2lmKCF0aGlzLmlzRmVhdHVyZUZsYWdzTG9hZGVkfHwhdGhpcy5hY3RpdmVLbm93blBsdWdpbnx8dGhpcy5zZXR0aW5nc0xvYWRTdGF0ZT09PXlFLk5PVF9MT0FERUR8fHRoaXMuc2V0dGluZ3NMb2FkU3RhdGU9PT15RS5MT0FESU5HKXJldHVybjtjb25zdCBuPUJvb2xlYW4odGhpcy5hY3RpdmVLbm93blBsdWdpbiYmIXRoaXMucGx1Z2luSW5zdGFuY2VzLmhhcyh0aGlzLmFjdGl2ZUtub3duUGx1Z2luLmlkKSk7aWYodC5hY3RpdmVLbm93blBsdWdpbnx8dC5pc0ZlYXR1cmVGbGFnc0xvYWRlZHx8dC5zZXR0aW5nc0xvYWRTdGF0ZSl7Y29uc3Qgbz1udWxsPT09KGU9dC5hY3RpdmVLbm93blBsdWdpbil8fHZvaWQgMD09PWU/dm9pZCAwOmUucHJldmlvdXNWYWx1ZTtpZihvJiZvLmlkIT09dGhpcy5hY3RpdmVLbm93blBsdWdpbi5pZCYmdGhpcy5oaWRlUGx1Z2luKG8pLG4pe2NvbnN0IHQ9dGhpcy5jcmVhdGVQbHVnaW4odGhpcy5hY3RpdmVLbm93blBsdWdpbik7dCYmdGhpcy5wbHVnaW5JbnN0YW5jZXMuc2V0KHRoaXMuYWN0aXZlS25vd25QbHVnaW4uaWQsdCl9ZWxzZSB0aGlzLnNob3dQbHVnaW4odGhpcy5hY3RpdmVLbm93blBsdWdpbil9KG58fHQubGFzdFVwZGF0ZWQpJiZ0aGlzLnJlbG9hZCh0aGlzLmFjdGl2ZUtub3duUGx1Z2luLG4pfWhpZGVQbHVnaW4odCl7aWYoIXRoaXMucGx1Z2luSW5zdGFuY2VzLmhhcyh0LmlkKSlyZXR1cm47Y29uc3QgZT10aGlzLnBsdWdpbkluc3RhbmNlcy5nZXQodC5pZCk7T2JqZWN0LmFzc2lnbihlLnN0eWxlLHttYXhIZWlnaHQ6MCxvdmVyZmxvdzoiaGlkZGVuIix2aXNpYmlsaXR5OiJoaWRkZW4iLHBvc2l0aW9uOiJhYnNvbHV0ZSJ9KX1zaG93UGx1Z2luKHQpe2lmKCF0aGlzLnBsdWdpbkluc3RhbmNlcy5oYXModC5pZCkpcmV0dXJuO2NvbnN0IGU9dGhpcy5wbHVnaW5JbnN0YW5jZXMuZ2V0KHQuaWQpO09iamVjdC5hc3NpZ24oZS5zdHlsZSx7bWF4SGVpZ2h0Om51bGwsb3ZlcmZsb3c6bnVsbCx2aXNpYmlsaXR5Om51bGwscG9zaXRpb246bnVsbH0pfWNyZWF0ZVBsdWdpbih0KXtsZXQgZT1udWxsO3N3aXRjaCh0LmxvYWRpbmdfbWVjaGFuaXNtLnR5cGUpe2Nhc2UgU3h0LkNVU1RPTV9FTEVNRU5UOmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0LmxvYWRpbmdfbWVjaGFuaXNtLmVsZW1lbnRfbmFtZSksZS5yZWxvYWRPblJlYWR5PSExLGUuZmVhdHVyZUZsYWdzPXRoaXMuZmVhdHVyZUZsYWdzLHRoaXMucGx1Z2luc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGUpO2JyZWFrO2Nhc2UgU3h0LklGUkFNRTppZighdGhpcy5wbHVnaW5BcGlIb3N0KXRocm93IEVycm9yKGBJRlJBTUUtYmFzZWQgcGx1Z2lucyBub3Qgc3VwcG9ydGVkOiAke3QuaWR9YCk7ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxlLnNldEF0dHJpYnV0ZSgic3JjIixgZGF0YS9wbHVnaW5fZW50cnkuaHRtbD9uYW1lPSR7dC5pZH1gKSx0aGlzLnBsdWdpbkFwaUhvc3QucmVnaXN0ZXJQbHVnaW5JZnJhbWUoZSx0LmlkKSx0aGlzLnBsdWdpbnNDb250YWluZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChlKTticmVhaztjYXNlIFN4dC5OR19DT01QT05FTlQ6Y29uc3Qgbj10aGlzLnBsdWdpblJlZ2lzdHJ5LmdldENvbXBvbmVudCh0LmlkKTtpZihuKXtjb25zdCB0PXRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KG4pO2U9dGhpcy5uZ1BsdWdpbkNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodCkubG9jYXRpb24ubmF0aXZlRWxlbWVudH1lbHNlIGNvbnNvbGUuZXJyb3IoYE5vIHJlZ2lzdGVyZWQgQW5ndWxhciBjb21wb25lbnQgZm9yIHBsdWdpbjogJHt0LmlkfWApO2JyZWFrO2Nhc2UgU3h0Lk5PTkU6YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJVbmV4cGVjdGVkIHBsdWdpbiIpfXJldHVybiBlfXJlbG9hZCh0LGUpe2lmKCFlJiZ0LmRpc2FibGVfcmVsb2FkKXJldHVybjtjb25zdCBuPXRoaXMucGx1Z2luSW5zdGFuY2VzLmdldCh0LmlkKTtuJiZuLnJlbG9hZCYmbi5yZWxvYWQoKX19VXh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxVeHQpKFNtKHVnKSxTbSh3cSksU20oc3osOCkpfSxVeHQuybVjbXA9dG8oe3R5cGU6VXh0LHNlbGVjdG9yczpbWyJwbHVnaW5zLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFFoKER4dCw3LGhnKSxRaChFeHQsNyxlaCkpLDImZSl7bGV0IHQ7SmgodD10YigpKSYmKG4ucGx1Z2luc0NvbnRhaW5lcj10LmZpcnN0KSxKaCh0PXRiKCkpJiYobi5uZ1BsdWdpbkNvbnRhaW5lcj10LmZpcnN0KX19LGlucHV0czp7YWN0aXZlUGx1Z2luSWQ6ImFjdGl2ZVBsdWdpbklkIixhY3RpdmVLbm93blBsdWdpbjoiYWN0aXZlS25vd25QbHVnaW4iLHBsdWdpbkxvYWRTdGF0ZToicGx1Z2luTG9hZFN0YXRlIixkYXRhTG9jYXRpb246ImRhdGFMb2NhdGlvbiIsaXNGZWF0dXJlRmxhZ3NMb2FkZWQ6ImlzRmVhdHVyZUZsYWdzTG9hZGVkIixzZXR0aW5nc0xvYWRTdGF0ZToic2V0dGluZ3NMb2FkU3RhdGUiLGZlYXR1cmVGbGFnczoiZmVhdHVyZUZsYWdzIixsYXN0VXBkYXRlZDoibGFzdFVwZGF0ZWQiLGVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGU6ImVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGUiLGVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZToiZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlIn0sZmVhdHVyZXM6W0JvXSxkZWNsczo5LHZhcnM6NCxjb25zdHM6W1szLCJuZ0NsYXNzIl0sWyJwbHVnaW5Db250YWluZXIiLCIiXSxbIm5nUGx1Z2luQ29udGFpbmVyIiwiIl0sWyJjbGFzcyIsIndhcm5pbmciLDMsIm5nU3dpdGNoIiw0LCJuZ0lmIl0sWyJlbnZpcm9ubWVudEZhaWx1cmVEZWZhdWx0VGVtcGxhdGUiLCIiXSxbImRhdGVBbmREYXRhTG9jYXRpb24iLCIiXSxbMSwid2FybmluZyIsMywibmdTd2l0Y2giXSxbMSwid2FybmluZy1tZXNzYWdlIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFs0LCJuZ1RlbXBsYXRlT3V0bGV0Il0sWzEsInVua25vd24tcGx1Z2luIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiXSxbMSwibm8tYWN0aXZlLXBsdWdpbiJdLFsiaHJlZiIsImh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCJdLFsiaHJlZiIsImh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiXSxbImhyZWYiLCJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIl0sWzEsImVudmlyb25tZW50LW5vdC1sb2FkZWQiXSxbMSwibGFzdC1yZWxvYWQtdGltZSJdLFsiY2xhc3MiLCJkYXRhLWxvY2F0aW9uIiw0LCJuZ0lmIl0sWzEsImRhdGEtbG9jYXRpb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFJtKDAsImRpdiIsMCwxKSxJbSgyLG51bGwsMiksQW0oKSxRcCg0LEh4dCw2LDUsImRpdiIsMyksUXAoNSxGeHQsNiwxLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LGliKSxRcCg3LEJ4dCw0LDUsIm5nLXRlbXBsYXRlIixudWxsLDUsaWIpKSwyJmUmJihEbSgibmdDbGFzcyIsTWgoMixWeHQsKG51bGw9PW4uYWN0aXZlS25vd25QbHVnaW4/bnVsbDpuLmFjdGl2ZUtub3duUGx1Z2luLmxvYWRpbmdfbWVjaGFuaXNtLnR5cGUpIT09bi5Mb2FkaW5nTWVjaGFuaXNtVHlwZS5JRlJBTUUpKSxyYyg0KSxEbSgibmdJZiIsbi5wbHVnaW5Mb2FkU3RhdGUhPT1uLlBsdWdpbkxvYWRTdGF0ZS5MT0FERUQmJm4ucGx1Z2luTG9hZFN0YXRlIT09bi5QbHVnaW5Mb2FkU3RhdGUuTE9BRElORykpfSxkaXJlY3RpdmVzOlthTSxkTSxmTSxnTSxNTV0scGlwZXM6W1JNXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMjEyMTIxO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmV9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnBsdWdpbnMuaXMtZmlyc3QtcGFydHktcGx1Z2luW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzA7Y29sb3I6I2ZmZn0ucGx1Z2luc1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmV9Lndhcm5pbmdbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6I2ZmZjtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAud2FybmluZ1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC53YXJuaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiMzMDMwMzB9Lndhcm5pbmctbWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzIxMjEyMTttYXJnaW46ODBweCBhdXRvIDA7bWF4LXdpZHRoOjU0MHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC53YXJuaW5nLW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAud2FybmluZy1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmZmfS5sYXN0LXJlbG9hZC10aW1lW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXN0eWxlOml0YWxpY30ucGx1Z2luc1tfbmdjb250ZW50LSVDT01QJV0gICAgIGlmcmFtZXtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFV4dCxbe3R5cGU6TXksYXJnczpbe3NlbGVjdG9yOiJwbHVnaW5zLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vcGx1Z2luc19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsicGx1Z2luc19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnVnfSx7dHlwZTp3cX0se3R5cGU6c3osZGVjb3JhdG9yczpbe3R5cGU6U3J9XX1dfSkse3BsdWdpbnNDb250YWluZXI6W3t0eXBlOlphLGFyZ3M6WyJwbHVnaW5Db250YWluZXIiLHtzdGF0aWM6ITAscmVhZDpoZ31dfV0sbmdQbHVnaW5Db250YWluZXI6W3t0eXBlOlphLGFyZ3M6WyJuZ1BsdWdpbkNvbnRhaW5lciIse3N0YXRpYzohMCxyZWFkOmVofV19XSxhY3RpdmVQbHVnaW5JZDpbe3R5cGU6eHl9XSxhY3RpdmVLbm93blBsdWdpbjpbe3R5cGU6eHl9XSxwbHVnaW5Mb2FkU3RhdGU6W3t0eXBlOnh5fV0sZGF0YUxvY2F0aW9uOlt7dHlwZTp4eX1dLGlzRmVhdHVyZUZsYWdzTG9hZGVkOlt7dHlwZTp4eX1dLHNldHRpbmdzTG9hZFN0YXRlOlt7dHlwZTp4eX1dLGZlYXR1cmVGbGFnczpbe3R5cGU6eHl9XSxsYXN0VXBkYXRlZDpbe3R5cGU6eHl9XSxlbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlOlt7dHlwZTp4eX1dLGVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZTpbe3R5cGU6eHl9XX0pO2NvbnN0IEd4dD1adyh2UixNUiwoKHQsZSk9PmUmJnRbZV0/T2JqZWN0LmFzc2lnbih7aWQ6ZX0sdFtlXSk6bnVsbCkpO2NsYXNzIFd4dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hY3RpdmVLbm93blBsdWdpbiQ9dGhpcy5zdG9yZS5zZWxlY3QoR3h0KSx0aGlzLmFjdGl2ZVBsdWdpbklkJD10aGlzLnN0b3JlLnNlbGVjdChNUiksdGhpcy5wbHVnaW5Mb2FkU3RhdGUkPVd0KHRoaXMuYWN0aXZlS25vd25QbHVnaW4kLHRoaXMuYWN0aXZlUGx1Z2luSWQkLHRoaXMuc3RvcmUuc2VsZWN0KGJSKSkucGlwZShJdCgoKFt0LGUsbl0pPT5udWxsIT09bi5mYWlsdXJlQ29kZT9uLmZhaWx1cmVDb2RlPT09bUUuTk9UX0ZPVU5EP2p4dC5FTlZJUk9OTUVOVF9GQUlMVVJFX05PVF9GT1VORDpqeHQuRU5WSVJPTk1FTlRfRkFJTFVSRV9VTktOT1dOOm51bGwhPT10P2p4dC5MT0FERUQ6bnVsbD09PW4ubGFzdExvYWRlZFRpbWVJbk1zJiZuLnN0YXRlPT09eUUuTE9BRElORz9qeHQuTE9BRElORzplP2p4dC5VTktOT1dOX1BMVUdJTl9JRDpqeHQuTk9fRU5BQkxFRF9QTFVHSU5TKSkpLHRoaXMubGFzdExvYWRlZFRpbWVJbk1zJD10aGlzLnN0b3JlLnNlbGVjdChDUiksdGhpcy5kYXRhTG9jYXRpb24kPXRoaXMuc3RvcmUuc2VsZWN0KHhSKS5waXBlKEl0KCh0PT50LmRhdGFfbG9jYXRpb24pKSksdGhpcy5pc0ZlYXR1cmVGbGFnc0xvYWRlZCQ9dGhpcy5zdG9yZS5zZWxlY3QocUQpLHRoaXMuZmVhdHVyZUZsYWdzJD10aGlzLnN0b3JlLnNlbGVjdChaRCksdGhpcy5zZXR0aW5nc0xvYWRTdGF0ZSQ9dGhpcy5zdG9yZS5zZWxlY3QoU04pfX1XeHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFd4dCkoU20oSXcpKX0sV3h0Lsm1Y21wPXRvKHt0eXBlOld4dCxzZWxlY3RvcnM6W1sicGx1Z2lucyJdXSxpbnB1dHM6e2Vudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGU6ImVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGUiLGVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZToiZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlIn0sZGVjbHM6OSx2YXJzOjI2LGNvbnN0czpbWzMsImFjdGl2ZUtub3duUGx1Z2luIiwiYWN0aXZlUGx1Z2luSWQiLCJkYXRhTG9jYXRpb24iLCJsYXN0VXBkYXRlZCIsInBsdWdpbkxvYWRTdGF0ZSIsImlzRmVhdHVyZUZsYWdzTG9hZGVkIiwic2V0dGluZ3NMb2FkU3RhdGUiLCJmZWF0dXJlRmxhZ3MiLCJlbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlIiwiZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJwbHVnaW5zLWNvbXBvbmVudCIsMCksQWgoMSwiYXN5bmMiKSxBaCgyLCJhc3luYyIpLEFoKDMsImFzeW5jIiksQWgoNCwiYXN5bmMiKSxBaCg1LCJhc3luYyIpLEFoKDYsImFzeW5jIiksQWgoNywiYXN5bmMiKSxBaCg4LCJhc3luYyIpKSwyJmUmJkRtKCJhY3RpdmVLbm93blBsdWdpbiIsVGgoMSwxMCxuLmFjdGl2ZUtub3duUGx1Z2luJCkpKCJhY3RpdmVQbHVnaW5JZCIsVGgoMiwxMixuLmFjdGl2ZVBsdWdpbklkJCkpKCJkYXRhTG9jYXRpb24iLFRoKDMsMTQsbi5kYXRhTG9jYXRpb24kKSkoImxhc3RVcGRhdGVkIixUaCg0LDE2LG4ubGFzdExvYWRlZFRpbWVJbk1zJCkpKCJwbHVnaW5Mb2FkU3RhdGUiLFRoKDUsMTgsbi5wbHVnaW5Mb2FkU3RhdGUkKSkoImlzRmVhdHVyZUZsYWdzTG9hZGVkIixUaCg2LDIwLG4uaXNGZWF0dXJlRmxhZ3NMb2FkZWQkKSkoInNldHRpbmdzTG9hZFN0YXRlIixUaCg3LDIyLG4uc2V0dGluZ3NMb2FkU3RhdGUkKSkoImZlYXR1cmVGbGFncyIsVGgoOCwyNCxuLmZlYXR1cmVGbGFncyQpKSgiZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZSIsbi5lbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlKSgiZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlIixuLmVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZSl9LHN0eWxlczpbInBsdWdpbnMtY29tcG9uZW50W19uZ2NvbnRlbnQtJUNPTVAlXSB7IGhlaWdodDogMTAwJTsgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChXeHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoicGx1Z2lucyIsdGVtcGxhdGU6J1xuICAgIDxwbHVnaW5zLWNvbXBvbmVudFxuICAgICAgW2FjdGl2ZUtub3duUGx1Z2luXT0iYWN0aXZlS25vd25QbHVnaW4kIHwgYXN5bmMiXG4gICAgICBbYWN0aXZlUGx1Z2luSWRdPSJhY3RpdmVQbHVnaW5JZCQgfCBhc3luYyJcbiAgICAgIFtkYXRhTG9jYXRpb25dPSJkYXRhTG9jYXRpb24kIHwgYXN5bmMiXG4gICAgICBbbGFzdFVwZGF0ZWRdPSJsYXN0TG9hZGVkVGltZUluTXMkIHwgYXN5bmMiXG4gICAgICBbcGx1Z2luTG9hZFN0YXRlXT0icGx1Z2luTG9hZFN0YXRlJCB8IGFzeW5jIlxuICAgICAgW2lzRmVhdHVyZUZsYWdzTG9hZGVkXT0iaXNGZWF0dXJlRmxhZ3NMb2FkZWQkIHwgYXN5bmMiXG4gICAgICBbc2V0dGluZ3NMb2FkU3RhdGVdPSJzZXR0aW5nc0xvYWRTdGF0ZSQgfCBhc3luYyJcbiAgICAgIFtmZWF0dXJlRmxhZ3NdPSJmZWF0dXJlRmxhZ3MkIHwgYXN5bmMiXG4gICAgICBbZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZV09ImVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGUiXG4gICAgICBbZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlXT0iZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlIlxuICAgID48L3BsdWdpbnMtY29tcG9uZW50PlxuICAnLHN0eWxlczpbInBsdWdpbnMtY29tcG9uZW50IHsgaGVpZ2h0OiAxMDAlOyB9Il0sY2hhbmdlRGV0ZWN0aW9uOnpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkl3fV19KSx7ZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZTpbe3R5cGU6eHl9XSxlbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGU6W3t0eXBlOnh5fV19KTtjbGFzcyBZeHR7fVl4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WXh0KX0sWXh0Lsm1bW9kPWFvKHt0eXBlOll4dH0pLFl4dC7JtWluaj12bih7aW1wb3J0czpbW0VSLFdNLHdxXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKFl4dCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbV3h0LFV4dF0sZXhwb3J0czpbV3h0XSxpbXBvcnRzOltFUixXTSx3cV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhZeHQse2RlY2xhcmF0aW9uczpbV3h0LFV4dF0saW1wb3J0czpbRVIsV00sd3FdLGV4cG9ydHM6W1d4dF19KSxlbyhXeHQsW1V4dF0sW3dNXSk7Y2xhc3MgcXh0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zdG9yZT10LHRoaXMuZG9jdW1lbnQ9ZSx0aGlzLm9uVmlzaWJpbGl0eUNoYW5nZT10aGlzLm9uVmlzaWJpbGl0eUNoYW5nZUltcGwuYmluZCh0aGlzKSx0aGlzLnJlbG9hZEVuYWJsZWQkPXRoaXMuc3RvcmUucGlwZShGdyhETikpLHRoaXMucmVsb2FkUGVyaW9kSW5NcyQ9dGhpcy5zdG9yZS5waXBlKEZ3KEVOKSksdGhpcy5yZWxvYWRUaW1lcklkPW51bGwsdGhpcy5taXNzZWRBdXRvUmVsb2FkPSExfW5nT25Jbml0KCl7dGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLm9uVmlzaWJpbGl0eUNoYW5nZSksV3QodGhpcy5yZWxvYWRFbmFibGVkJC5waXBlKE1lKCkpLHRoaXMucmVsb2FkUGVyaW9kSW5NcyQucGlwZShNZSgpKSkuc3Vic2NyaWJlKCgoW3QsZV0pPT57dGhpcy5jYW5jZWxMb2FkKCksdCYmdGhpcy5sb2FkKGUpfSkpfW9uVmlzaWJpbGl0eUNoYW5nZUltcGwoKXsidmlzaWJsZSI9PT10aGlzLmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSYmdGhpcy5taXNzZWRBdXRvUmVsb2FkJiYodGhpcy5taXNzZWRBdXRvUmVsb2FkPSExLHRoaXMuc3RvcmUuZGlzcGF0Y2goeEUoKSkpfWxvYWQodCl7dGhpcy5yZWxvYWRUaW1lcklkPXNldFRpbWVvdXQoKCgpPT57InZpc2libGUiPT09dGhpcy5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU/dGhpcy5zdG9yZS5kaXNwYXRjaCh4RSgpKTp0aGlzLm1pc3NlZEF1dG9SZWxvYWQ9ITAsdGhpcy5sb2FkKHQpfSksdCl9Y2FuY2VsTG9hZCgpe251bGwhPT10aGlzLnJlbG9hZFRpbWVySWQmJmNsZWFyVGltZW91dCh0aGlzLnJlbG9hZFRpbWVySWQpLHRoaXMucmVsb2FkVGltZXJJZD1udWxsfW5nT25EZXN0cm95KCl7dGhpcy5jYW5jZWxMb2FkKCksdGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLm9uVmlzaWJpbGl0eUNoYW5nZSl9fXF4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cXh0KShTbShJdyksU20oWl8pKX0scXh0Lsm1Y21wPXRvKHt0eXBlOnF4dCxzZWxlY3RvcnM6W1sicmVsb2FkZXIiXV0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChxeHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoicmVsb2FkZXIiLHRlbXBsYXRlOiIiLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpJd30se3R5cGU6RG9jdW1lbnQsZGVjb3JhdG9yczpbe3R5cGU6a3IsYXJnczpbWl9dfV19XX0pLG51bGwpO2NsYXNzIFp4dHt9Wnh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxaeHQpfSxaeHQuybVjbXA9dG8oe3R5cGU6Wnh0LHNlbGVjdG9yczpbWyJ0ZW5zb3Jib2FyZC13cmFwcGVyLWNvbXBvbmVudCJdXSxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1sxLCJwbHVnaW5zIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihUbSgwLCJwbHVnaW5zIiwwKSxUbSgxLCJyZWxvYWRlciIpKX0sZGlyZWN0aXZlczpbV3h0LHF4dF0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnBsdWdpbnNbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZmxleDogMSAxO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChaeHQsW3t0eXBlOk15LGFyZ3M6W3tzZWxlY3RvcjoidGVuc29yYm9hcmQtd3JhcHBlci1jb21wb25lbnQiLHRlbXBsYXRlOidcbiAgICA8cGx1Z2lucyBjbGFzcz0icGx1Z2lucyI+PC9wbHVnaW5zPlxuICAgIDxyZWxvYWRlcj48L3JlbG9hZGVyPlxuICAnLHN0eWxlczpbIlxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5wbHVnaW5zIHtcbiAgICAgICAgZmxleDogMSAxO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjp6bi5PblB1c2h9XX1dLG51bGwsbnVsbCk7Y2xhc3MgWHh0e31YeHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFh4dCl9LFh4dC7JtXByb3Y9TW4oe3Rva2VuOlh4dCxmYWN0b3J5Olh4dC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmaGgoWHh0LFt7dHlwZTppbX1dLG51bGwsbnVsbCk7Y29uc3QgS3h0PSJzbW9vdGhpbmciLEp4dD0icnVuQ29sb3JHcm91cCIsUXh0PSJ0YWdGaWx0ZXIiLCR4dD0icmVnZXg6IjtsZXQgdE90PWNsYXNzIGV4dGVuZHMgWHh0e2dldE1ldHJpY3NQaW5uZWRDYXJkcyh0KXtyZXR1cm4gV3QoW3Quc2VsZWN0KFBUKSx0LnNlbGVjdChrVCldKS5waXBlKEl0KCgoW3QsZV0pPT57aWYoIXQubGVuZ3RoJiYhZS5sZW5ndGgpcmV0dXJuW107Y29uc3Qgbj1bLi4udC5tYXAoKCh7cGx1Z2luOnQsdGFnOmUsc2FtcGxlOm4scnVuSWQ6b30pPT57Y29uc3QgaT17cGx1Z2luOnQsdGFnOmV9O3JldHVybiB4QSh0KSYmKGkucnVuSWQ9byksTUEodCkmJihpLnNhbXBsZT1uKSxpfSkpLC4uLmVdO3JldHVyblt7a2V5OiJwaW5uZWRDYXJkcyIsdmFsdWU6SlNPTi5zdHJpbmdpZnkobil9XX0pKSl9Z2V0RmVhdHVyZUZsYWdTdGF0ZXModCl7cmV0dXJuIFd0KFt0LnNlbGVjdCgkRCksdC5zZWxlY3QoWEQpXSkucGlwZShJdCgoKFt0LGVdKT0+e2NvbnN0IG49dC5tYXAoKHQ9Pih7a2V5Ok5BLHZhbHVlOnR9KSkpO3JldHVybiJib29sZWFuIj09dHlwZW9mIGUuZW5hYmxlZENvbG9yR3JvdXAmJm4ucHVzaCh7a2V5OklBLHZhbHVlOlN0cmluZyhlLmVuYWJsZWRDb2xvckdyb3VwKX0pLCJib29sZWFuIj09dHlwZW9mIGUuZW5hYmxlZENvbG9yR3JvdXBCeVJlZ2V4JiZuLnB1c2goe2tleTpIQSx2YWx1ZTpTdHJpbmcoZS5lbmFibGVkQ29sb3JHcm91cEJ5UmVnZXgpfSksbn0pKSl9c2VyaWFsaXplU3RhdGVUb1F1ZXJ5UGFyYW1zKHQpe3JldHVybiBXdChbdGhpcy5nZXRNZXRyaWNzUGlubmVkQ2FyZHModCksdC5zZWxlY3QoQlQpLnBpcGUoSXQoKHQ9PnQ/W3trZXk6UXh0LHZhbHVlOnR9XTpbXSkpKSx0aGlzLmdldEZlYXR1cmVGbGFnU3RhdGVzKHQpLHQuc2VsZWN0KEVUKS5waXBlKEl0KCh0PT5OdW1iZXIuaXNGaW5pdGUodC5zY2FsYXJTbW9vdGhpbmcpP1t7a2V5Okt4dCx2YWx1ZTpTdHJpbmcodC5zY2FsYXJTbW9vdGhpbmcpfV06W10pKSksdC5zZWxlY3QodU4pLnBpcGUoSXQoKHQ9PntpZighdClyZXR1cm5bXTtsZXQgZTtzd2l0Y2godC5rZXkpe2Nhc2UgdE4uRVhQRVJJTUVOVDplPSJleHBlcmltZW50IjticmVhaztjYXNlIHROLlJVTjplPSJydW4iO2JyZWFrO2Nhc2UgdE4uUkVHRVg6ZT1gcmVnZXg6JHt0LnJlZ2V4U3RyaW5nfWA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgUmFuZ2VFcnJvcigiU2VyaWFsaXphdGlvbiBub3QgaW1wbGVtZW50ZWQiKX1yZXR1cm5be2tleTpKeHQsdmFsdWU6ZX1dfSkpKV0pLnBpcGUoSXQoKHQ9PnQuZmxhdCgpKSkpfWRlc2VyaWFsaXplUXVlcnlQYXJhbXModCl7bGV0IGU9bnVsbCxuPW51bGwsbz1udWxsLGk9bnVsbDtmb3IoY29uc3R7a2V5OmEsdmFsdWU6cn1vZiB0KXN3aXRjaChhKXtjYXNlInBpbm5lZENhcmRzIjplPWVPdChyKTticmVhaztjYXNlIEt4dDpuPU51bWJlcihyKTticmVhaztjYXNlIEp4dDpzd2l0Y2gocil7Y2FzZSJleHBlcmltZW50IjppPXtrZXk6dE4uRVhQRVJJTUVOVH07YnJlYWs7Y2FzZSJydW4iOmk9e2tleTp0Ti5SVU59fWlmKHIuc3RhcnRzV2l0aCgkeHQpKXtjb25zdCB0PXIuc2xpY2UoJHh0Lmxlbmd0aCk7aT17a2V5OnROLlJFR0VYLHJlZ2V4U3RyaW5nOnR9fWJyZWFrO2Nhc2UgUXh0Om89cn1yZXR1cm57bWV0cmljczp7cGlubmVkQ2FyZHM6ZXx8W10sc21vb3RoaW5nOm4sdGFnRmlsdGVyOm99LHJ1bnM6e2dyb3VwQnk6aX19fX07ZnVuY3Rpb24gZU90KHQpe2xldCBlO3RyeXtlPUpTT04ucGFyc2UodCl9Y2F0Y2godCl7cmV0dXJuIG51bGx9aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIG51bGw7Y29uc3Qgbj1bXTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPSJzdHJpbmciPT10eXBlb2YgdC5ydW5JZCxpPSJudW1iZXIiPT10eXBlb2YgdC5zYW1wbGUsYT0ic3RyaW5nIj09dHlwZW9mIHQudGFnLHI9ZXx8dm9pZCAwPT09dC5ydW5JZCxzPWl8fHZvaWQgMD09PXQuc2FtcGxlO2lmKCEoInN0cmluZyI9PXR5cGVvZiB0LnBsdWdpbiYmYSYmciYmcykpY29udGludWU7aWYoKG89dC5wbHVnaW4pIT09aEEuU0NBTEFSUyYmbyE9PWhBLkhJU1RPR1JBTVMmJm8hPT1oQS5JTUFHRVMpY29udGludWU7aWYoIXQudGFnKWNvbnRpbnVlO2lmKHhBKHQucGx1Z2luKSl7aWYoIXQucnVuSWQpY29udGludWV9ZWxzZSBpZih0LnJ1bklkKWNvbnRpbnVlO2lmKGkpe2lmKCFNQSh0LnBsdWdpbikpY29udGludWU7aWYoIU51bWJlci5pc0ludGVnZXIodC5zYW1wbGUpfHx0LnNhbXBsZTwwKWNvbnRpbnVlfWNvbnN0IGw9e3BsdWdpbjp0LnBsdWdpbix0YWc6dC50YWd9O2UmJihsLnJ1bklkPXQucnVuSWQpLGkmJihsLnNhbXBsZT10LnNhbXBsZSksbi5wdXNoKGwpfXZhciBvO3JldHVybiBufWZ1bmN0aW9uIG5PdCgpe3JldHVyblt7cm91dGVLaW5kOlprLkVYUEVSSU1FTlQscGF0aDoiLyIsbmdDb21wb25lbnQ6Wnh0LGRlZmF1bHRSb3V0ZTohMCxkZWVwTGlua1Byb3ZpZGVyOm5ldyB0T3R9XX1mdW5jdGlvbiBvT3QodCl7cmV0dXJuKGUsbik9Pntjb25zdCBvPXQoZSxuKTtyZXR1cm4gY29uc29sZS5ncm91cENvbGxhcHNlZChuLnR5cGUpLGNvbnNvbGUubG9nKCJwcmV2IHN0YXRlIixlKSxjb25zb2xlLmxvZygiYWN0aW9uIixuKSxjb25zb2xlLmxvZygibmV4dCBzdGF0ZSIsbyksY29uc29sZS5ncm91cEVuZCgpLG99fWZ1bmN0aW9uIGlPdCgpe3JldHVybiB5XygpP29PdDp0PT4oZSxuKT0+dChlLG4pfXRPdD0oZnVuY3Rpb24gYU90KHQsZSxuLG8pe3ZhciBpLGE9YXJndW1lbnRzLmxlbmd0aCxyPWE8Mz9lOm51bGw9PT1vP289T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLG4pOm87aWYoIm9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYiZnVuY3Rpb24iPT10eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSlyPVJlZmxlY3QuZGVjb3JhdGUodCxlLG4sbyk7ZWxzZSBmb3IodmFyIHM9dC5sZW5ndGgtMTtzPj0wO3MtLSkoaT10W3NdKSYmKHI9KGE8Mz9pKHIpOmE+Mz9pKGUsbixyKTppKGUsbikpfHxyKTtyZXR1cm4gYT4zJiZyJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHIpLHJ9KShbaW0oKV0sdE90KTtjb25zdCByT3Q9bmV3IEdhKCJSb290IHJlZHVjZXJzIHRva2VuIix7ZmFjdG9yeTooKT0+KHt9KX0pO2NsYXNzIHNPdHt9c090Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxzT3QpfSxzT3QuybVtb2Q9YW8oe3R5cGU6c090fSksc090Lsm1aW5qPXZuKHtwcm92aWRlcnM6W3twcm92aWRlOmJ3LHVzZUZhY3Rvcnk6aU90LG11bHRpOiEwfV0saW1wb3J0czpbW2RrLmZvclJvb3Qock90LHtydW50aW1lQ2hlY2tzOntzdHJpY3RTdGF0ZUltbXV0YWJpbGl0eTohMCxzdHJpY3RBY3Rpb25JbW11dGFiaWxpdHk6ITAsc3RyaWN0QWN0aW9uU2VyaWFsaXphYmlsaXR5OiExLHN0cmljdFN0YXRlU2VyaWFsaXphYmlsaXR5OiExfX0pLFdrLmZvclJvb3QoW10pXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKHNPdCxbe3R5cGU6QXksYXJnczpbe2ltcG9ydHM6W2RrLmZvclJvb3Qock90LHtydW50aW1lQ2hlY2tzOntzdHJpY3RTdGF0ZUltbXV0YWJpbGl0eTohMCxzdHJpY3RBY3Rpb25JbW11dGFiaWxpdHk6ITAsc3RyaWN0QWN0aW9uU2VyaWFsaXphYmlsaXR5OiExLHN0cmljdFN0YXRlU2VyaWFsaXphYmlsaXR5OiExfX0pLFdrLmZvclJvb3QoW10pXSxwcm92aWRlcnM6W3twcm92aWRlOmJ3LHVzZUZhY3Rvcnk6aU90LG11bHRpOiEwfV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhzT3Qse2ltcG9ydHM6W2xrLFVrXX0pO2NsYXNzIGxPdHt9bE90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsT3QpfSxsT3QuybVtb2Q9YW8oe3R5cGU6bE90fSksbE90Lsm1aW5qPXZuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJmhoKGxPdCxbe3R5cGU6QXksYXJnczpbe2RlY2xhcmF0aW9uczpbcXh0XSxleHBvcnRzOltxeHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmcm8obE90LHtkZWNsYXJhdGlvbnM6W3F4dF0sZXhwb3J0czpbcXh0XX0pO2NsYXNzIGNPdHt9Y090Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjT3QpfSxjT3QuybVtb2Q9YW8oe3R5cGU6Y090fSksY090Lsm1aW5qPXZuKHtpbXBvcnRzOltbV00sWXh0LGxPdF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChjT3QsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1p4dF0saW1wb3J0czpbV00sWXh0LGxPdF0sZXhwb3J0czpbWnh0XSxlbnRyeUNvbXBvbmVudHM6W1p4dF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhjT3Qse2RlY2xhcmF0aW9uczpbWnh0XSxpbXBvcnRzOltXTSxZeHQsbE90XSxleHBvcnRzOltaeHRdfSk7Y2xhc3MgZE90e31kT3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGRPdCl9LGRPdC7JtW1vZD1hbyh7dHlwZTpkT3QsYm9vdHN0cmFwOlthcV19KSxkT3QuybVpbmo9dm4oe2ltcG9ydHM6W1t0VCxVdixaUCxCUyxzcSxQUy5yZWdpc3RlclJvdXRlcyhuT3QpLEpMLEtMLGxxLGNPdCxFUixncSxkcSx2cSxhQSx4cSxwcSxyRCxzeixZeHQsS04sQ3Esc090LGt4dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZoaChkT3QsW3t0eXBlOkF5LGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2FxXSxpbXBvcnRzOlt0VCxVdixaUCxCUyxzcSxQUy5yZWdpc3RlclJvdXRlcyhuT3QpLEpMLEtMLGxxLGNPdCxFUixncSxkcSx2cSxhQSx4cSxwcSxyRCxzeixZeHQsS04sQ3Esc090LGt4dF0sYm9vdHN0cmFwOlthcV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZybyhkT3Qse2RlY2xhcmF0aW9uczpbYXFdLGltcG9ydHM6W3RULFV2LFpQLEJTLHNxLFBTLEpMLEtMLGxxLGNPdCxFUixncSxkcSx2cSxhQSx4cSxwcSxyRCxzeixZeHQsS04sQ3Esc090LGt4dF19KSwibG9hZGluZyIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP0Z2KCkuYm9vdHN0cmFwTW9kdWxlKGRPdCk6d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCgoKT0+e0Z2KCkuYm9vdHN0cmFwTW9kdWxlKGRPdCl9KSksKGZ1bmN0aW9uIHBPdCgpe2lmKGJfKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGVuYWJsZSBwcm9kIG1vZGUgYWZ0ZXIgcGxhdGZvcm0gc2V0dXAuIik7KHZvaWQgMD09PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJihqbi5uZ0Rldk1vZGU9ITEpLGhfPSExfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKCl9KSgpOwo=", + "headers": [ + [ + "content-type", + "application/javascript; charset=utf-8" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + } + } + }, + "id": "_wpQGXu9aONh", + "outputId": "8edb7bb8-0907-4f1f-ee6e-459cc4b3c8dc" + }, + "outputs": [ + { + "data": { + "application/javascript": "\n (async () => {\n const url = new URL(await google.colab.kernel.proxyPort(6006, {'cache': true}));\n url.searchParams.set('tensorboardColab', 'true');\n const iframe = document.createElement('iframe');\n iframe.src = url;\n iframe.setAttribute('width', '100%');\n iframe.setAttribute('height', '800');\n iframe.setAttribute('frameborder', 0);\n document.body.appendChild(iframe);\n })();\n ", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# load tensorboard in colab\n", + "%load_ext tensorboard\n", + "\n", + "# see curves in tensorboard\n", + "%tensorboard --logdir ./tutorial_exps" + ] }, - "bf1e5d0665a141ac9c2085062ba77801": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } + { + "cell_type": "markdown", + "metadata": { + "id": "MfQ-yspZLuuI" + }, + "source": [ + "From the tensorboard, we can observe that changes of loss and learning rate. We can see the losses of each branch gradually decrease as the training goes by.\n", + "\n", + "## Test the Trained Detector\n", + "\n", + "After finetuning the detector, let's visualize the prediction results!" + ] }, - "c3018c8715924d2b83d817cc6c448a2d": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_b9b75e2d894e467289cb83070b8bb998", - "IPY_MODEL_767c8f4fbc924027885851365ceb6292" + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 443 + }, + "id": "_MuZurfGLq0p", + "outputId": "d035aec4-6bad-4e04-d105-d9557f058140" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/content/mmdetection/mmdet/datasets/utils.py:69: UserWarning: \"ImageToTensor\" pipeline is replaced by \"DefaultFormatBundle\" for batch inference. It is recommended to manually replace it in the test data pipeline in your config file.\n", + " 'data pipeline in your config file.', UserWarning)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } ], - "layout": "IPY_MODEL_aca1c388eeca4c87b5b6306302630303" - } + "source": [ + "img = mmcv.imread('kitti_tiny/training/image_2/000068.jpeg')\n", + "\n", + "model.cfg = cfg\n", + "result = inference_detector(model, img)\n", + "show_result_pyplot(model, img, result)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "F1L8o3rtc37M" + }, + "source": [ + "## What to Do Next?\n", + "\n", + "So far, we have learnt how to test and train a two-stage detector using MMDetection. To further explore MMDetection, you could do several other things as shown below:\n", + "\n", + "- Try single-stage detectors, e.g., [RetinaNet](https://github.com/open-mmlab/mmdetection/tree/master/configs/retinanet) and [SSD](https://github.com/open-mmlab/mmdetection/tree/master/configs/ssd) in [MMDetection model zoo](https://github.com/open-mmlab/mmdetection/blob/master/docs/en/model_zoo.md). Single-stage detectors are more commonly used than two-stage detectors in industry.\n", + "- Try anchor-free detectors, e.g., [FCOS](https://github.com/open-mmlab/mmdetection/tree/master/configs/fcos) and [RepPoints](https://github.com/open-mmlab/mmdetection/tree/master/configs/reppoints) in [MMDetection model zoo](https://github.com/open-mmlab/mmdetection/blob/master/docs/en/model_zoo.md). Anchor-free detector is a new trend in the object detection community.\n", + "- Try 3D object detection using [MMDetection3D](https://github.com/open-mmlab/mmdetection3d), also one of the OpenMMLab projects. In MMDetection3D, not only can you try all the methods supported in MMDetection but also some 3D object detectors.\n" + ] } - } - } - }, - "nbformat": 4, - "nbformat_minor": 1 + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "collapsed_sections": [], + "name": "object_detection", + "provenance": [], + "toc_visible": true + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.7" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/docs/en/useful_tools.md b/docs/en/useful_tools.md index 921e48a7990..c3942472eb7 100644 --- a/docs/en/useful_tools.md +++ b/docs/en/useful_tools.md @@ -10,7 +10,7 @@ Apart from training/testing scripts, We provide lots of useful tools under the python tools/analysis_tools/analyze_logs.py plot_curve [--keys ${KEYS}] [--title ${TITLE}] [--legend ${LEGEND}] [--backend ${BACKEND}] [--style ${STYLE}] [--out ${OUT_FILE}] ``` -![loss curve image](../resources/loss_curve.png) +![loss curve image](../../resources/loss_curve.png) Examples: diff --git a/docs/zh_cn/tutorials/onnx2tensorrt.md b/docs/zh_cn/tutorials/onnx2tensorrt.md index 3f30f0a3cc8..3839b3a2ea9 100644 --- a/docs/zh_cn/tutorials/onnx2tensorrt.md +++ b/docs/zh_cn/tutorials/onnx2tensorrt.md @@ -1,4 +1,107 @@ # 教程 9: ONNX 到 TensorRT 的模型转换(实验性支持) -> ## [尝试使用新的 MMDeploy 來部署你的模型](https://mmdeploy.readthedocs.io/) +> ## [尝试使用新的 MMDeploy 来部署你的模型](https://mmdeploy.readthedocs.io/) + + + +- [教程 9: ONNX 到 TensorRT 的模型转换(实验性支持)](#教程-9-onnx-到-tensorrt-的模型转换实验性支持) + - [如何将模型从 ONNX 转换为 TensorRT](#如何将模型从-onnx-转换为-tensorrt) + - [先决条件](#先决条件) + - [用法](#用法) + - [如何评估导出的模型](#如何评估导出的模型) + - [支持转换为 TensorRT 的模型列表](#支持转换为-tensorrt-的模型列表) + - [提醒](#提醒) + - [常见问题](#常见问题) + + + +## 如何将模型从 ONNX 转换为 TensorRT + +### 先决条件 + +1. 请参考 [get_started.md](https://mmdetection.readthedocs.io/en/latest/get_started.html) 从源码安装 MMCV 和 MMDetection。 +2. 请参考 [ONNXRuntime in mmcv](https://mmcv.readthedocs.io/en/latest/deployment/onnxruntime_op.html) 和 [TensorRT plugin in mmcv](https://github.com/open-mmlab/mmcv/blob/master/docs/en/deployment/tensorrt_plugin.md/) 安装支持 ONNXRuntime 自定义操作和 TensorRT 插件的 `mmcv-full`。 +3. 使用工具 [pytorch2onnx](https://mmdetection.readthedocs.io/en/latest/tutorials/pytorch2onnx.html) 将模型从 PyTorch 转换为 ONNX。 + +### 用法 + +```bash +python tools/deployment/onnx2tensorrt.py \ + ${CONFIG} \ + ${MODEL} \ + --trt-file ${TRT_FILE} \ + --input-img ${INPUT_IMAGE_PATH} \ + --shape ${INPUT_IMAGE_SHAPE} \ + --min-shape ${MIN_IMAGE_SHAPE} \ + --max-shape ${MAX_IMAGE_SHAPE} \ + --workspace-size {WORKSPACE_SIZE} \ + --show \ + --verify \ +``` + +所有参数的说明: + +- `config`: 模型配置文件的路径。 +- `model`: ONNX 模型文件的路径。 +- `--trt-file`: 输出 TensorRT 引擎文件的路径。如果未指定,它将被设置为 `tmp.trt`。 +- `--input-img`: 用于追踪和转换的输入图像的路径。默认情况下,它将设置为 `demo/demo.jpg`。 +- `--shape`: 模型输入的高度和宽度。如果未指定,它将设置为 `400 600`。 +- `--min-shape`: 模型输入的最小高度和宽度。如果未指定,它将被设置为与 `--shape` 相同。 +- `--max-shape`: 模型输入的最大高度和宽度。如果未指定,它将被设置为与 `--shape` 相同。 +- `--workspace-size`: 构建 TensorRT 引擎所需的 GPU 工作空间大小(以 GiB 为单位)。如果未指定,它将设置为 `1` GiB。 +- `--show`: 确定是否显示模型的输出。如果未指定,它将设置为 `False`。 +- `--verify`: 确定是否在 ONNXRuntime 和 TensorRT 之间验证模型的正确性。如果未指定,它将设置为 `False`。 +- `--verbose`: 确定是否打印日志消息。它对调试很有用。如果未指定,它将设置为 `False`。 + +例子: + +```bash +python tools/deployment/onnx2tensorrt.py \ + configs/retinanet/retinanet_r50_fpn_1x_coco.py \ + checkpoints/retinanet_r50_fpn_1x_coco.onnx \ + --trt-file checkpoints/retinanet_r50_fpn_1x_coco.trt \ + --input-img demo/demo.jpg \ + --shape 400 600 \ + --show \ + --verify \ +``` + +## 如何评估导出的模型 + +我们准备了一个工具 `tools/deplopyment/test.py` 来评估 TensorRT 模型。 + +请参阅以下链接以获取更多信息。 + +- [如何评估导出的模型](pytorch2onnx.md#how-to-evaluate-the-exported-models) +- [结果和模型](pytorch2onnx.md#results-and-models) + +## 支持转换为 TensorRT 的模型列表 + +下表列出了确定可转换为 TensorRT 的模型。 + +| Model | Config | Dynamic Shape | Batch Inference | Note | +| :----------: | :--------------------------------------------------: | :-----------: | :-------------: | :---: | +| SSD | `configs/ssd/ssd300_coco.py` | Y | Y | | +| FSAF | `configs/fsaf/fsaf_r50_fpn_1x_coco.py` | Y | Y | | +| FCOS | `configs/fcos/fcos_r50_caffe_fpn_4x4_1x_coco.py` | Y | Y | | +| YOLOv3 | `configs/yolo/yolov3_d53_mstrain-608_273e_coco.py` | Y | Y | | +| RetinaNet | `configs/retinanet/retinanet_r50_fpn_1x_coco.py` | Y | Y | | +| Faster R-CNN | `configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py` | Y | Y | | +| Cascade R-CNN| `configs/cascade_rcnn/cascade_rcnn_r50_fpn_1x_coco.py` | Y | Y | | +| Mask R-CNN | `configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py` | Y | Y | | +| Cascade Mask R-CNN | `configs/cascade_rcnn/cascade_mask_rcnn_r50_fpn_1x_coco.py` | Y | Y | | +| PointRend | `configs/point_rend/point_rend_r50_caffe_fpn_mstrain_1x_coco.py` | Y | Y | | + +注意: + +- *以上所有模型通过 Pytorch==1.6.0, onnx==1.7.0 与 TensorRT-7.2.1.6.Ubuntu-16.04.x86_64-gnu.cuda-10.2.cudnn8.0 测试* + +## 提醒 + +- 如果您在上面列出的模型中遇到任何问题,请创建 issue,我们会尽快处理。对于未包含在列表中的模型,由于资源有限,我们可能无法在此提供太多帮助。请尝试深入挖掘并自行调试。 +- 由于此功能是实验性的,并且可能会快速更改,因此请始终尝试使用最新的 `mmcv` 和 `mmdetecion`。 + +## 常见问题 + +- 空 diff --git a/mmdet/models/necks/fpn.py b/mmdet/models/necks/fpn.py index 9f601386549..f57b8effe65 100644 --- a/mmdet/models/necks/fpn.py +++ b/mmdet/models/necks/fpn.py @@ -15,8 +15,8 @@ class FPN(BaseModule): Detection `_. Args: - in_channels (List[int]): Number of input channels per scale. - out_channels (int): Number of output channels (used at each scale) + in_channels (list[int]): Number of input channels per scale. + out_channels (int): Number of output channels (used at each scale). num_outs (int): Number of output scales. start_level (int): Index of the start input backbone level used to build the feature pyramid. Default: 0. @@ -29,7 +29,7 @@ class FPN(BaseModule): Only the following options are allowed - 'on_input': Last feat map of neck inputs (i.e. backbone feature). - - 'on_lateral': Last feature map after lateral convs. + - 'on_lateral': Last feature map after lateral convs. - 'on_output': The last output feature map after fpn convs. relu_before_extra_convs (bool): Whether to apply relu before the extra conv. Default: False. @@ -37,10 +37,10 @@ class FPN(BaseModule): Default: False. conv_cfg (dict): Config dict for convolution layer. Default: None. norm_cfg (dict): Config dict for normalization layer. Default: None. - act_cfg (str): Config dict for activation layer in ConvModule. + act_cfg (dict): Config dict for activation layer in ConvModule. Default: None. upsample_cfg (dict): Config dict for interpolate layer. - Default: `dict(mode='nearest')` + Default: dict(mode='nearest'). init_cfg (dict or list[dict], optional): Initialization config dict. Example: diff --git a/tools/test.py b/tools/test.py index 9e007ac3976..dfbc425869e 100644 --- a/tools/test.py +++ b/tools/test.py @@ -143,7 +143,11 @@ def main(): if cfg.get('cudnn_benchmark', False): torch.backends.cudnn.benchmark = True - cfg.model.pretrained = None + if 'pretrained' in cfg.model: + cfg.model.pretrained = None + elif 'init_cfg' in cfg.model.backbone: + cfg.model.backbone.init_cfg = None + if cfg.model.get('neck'): if isinstance(cfg.model.neck, list): for neck_cfg in cfg.model.neck: From dac0187576514f30c39e8bb3de2cde9bf919c1d7 Mon Sep 17 00:00:00 2001 From: "PJLAB\\huanghaian" <1286304229@qq.com> Date: Mon, 28 Mar 2022 11:36:57 +0800 Subject: [PATCH 10/10] Fix pointrend missing get_uncertainty function bug --- mmdet/models/roi_heads/mask_heads/mask_point_head.py | 5 +++-- mmdet/models/utils/__init__.py | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mmdet/models/roi_heads/mask_heads/mask_point_head.py b/mmdet/models/roi_heads/mask_heads/mask_point_head.py index c022f1fdbc7..c77c46d2c6f 100644 --- a/mmdet/models/roi_heads/mask_heads/mask_point_head.py +++ b/mmdet/models/roi_heads/mask_heads/mask_point_head.py @@ -8,7 +8,8 @@ from mmcv.runner import BaseModule from mmdet.models.builder import HEADS, build_loss -from mmdet.models.utils import get_uncertain_point_coords_with_randomness +from mmdet.models.utils import (get_uncertain_point_coords_with_randomness, + get_uncertainty) @HEADS.register_module() @@ -230,7 +231,7 @@ def get_roi_rel_points_test(self, mask_pred, pred_label, cfg): most uncertain points from the [mask_height, mask_width] grid . """ num_points = cfg.subdivision_num_points - uncertainty_map = self._get_uncertainty(mask_pred, pred_label) + uncertainty_map = get_uncertainty(mask_pred, pred_label) num_rois, _, mask_height, mask_width = uncertainty_map.shape # During ONNX exporting, the type of each elements of 'shape' is diff --git a/mmdet/models/utils/__init__.py b/mmdet/models/utils/__init__.py index 6d9c4057a39..e74ba89e8c2 100644 --- a/mmdet/models/utils/__init__.py +++ b/mmdet/models/utils/__init__.py @@ -10,7 +10,8 @@ from .misc import interpolate_as, sigmoid_geometric_mean from .normed_predictor import NormedConv2d, NormedLinear from .panoptic_gt_processing import preprocess_panoptic_gt -from .point_sample import get_uncertain_point_coords_with_randomness +from .point_sample import (get_uncertain_point_coords_with_randomness, + get_uncertainty) from .positional_encoding import (LearnedPositionalEncoding, SinePositionalEncoding) from .res_layer import ResLayer, SimplifiedBasicBlock @@ -29,5 +30,5 @@ 'adaptive_avg_pool2d', 'AdaptiveAvgPool2d', 'PatchEmbed', 'nchw_to_nlc', 'nlc_to_nchw', 'pvt_convert', 'sigmoid_geometric_mean', 'preprocess_panoptic_gt', 'DyReLU', - 'get_uncertain_point_coords_with_randomness' + 'get_uncertain_point_coords_with_randomness', 'get_uncertainty' ]